[
  {
    "path": ".editorconfig",
    "content": "# editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.json]\nindent_size = 2\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".eslintrc",
    "content": "{\n  \"parserOptions\": {\n    \"ecmaVersion\": 8,\n    \"ecmaFeatures\": {\n      \"experimentalObjectRestSpread\": true,\n      \"jsx\": false\n    },\n    \"sourceType\": \"module\"\n  },\n\n  \"env\": {\n    \"es6\": true,\n    \"node\": true\n  },\n\n  \"plugins\": [\n    \"import\",\n    \"node\",\n    \"promise\",\n    \"standard\"\n  ],\n\n  \"globals\": {\n    \"document\": true,\n    \"navigator\": true,\n    \"window\": true,\n    \"customElements\": true,\n    \"alert\": true,\n    \"uwg\": true,\n    \"DatArchive\": true,\n    \"location\": true,\n    \"beaker\": true,\n    \"prompt\": true,\n    \"CSSStyleSheet\": true,\n    \"confirm\": true,\n    \"fetch\": true,\n    \"HTMLElement\": true,\n    \"CustomEvent\": true,\n    \"localStorage\": true,\n    \"FileReader\": true,\n    \"Blob\": true\n  },\n\n  \"rules\": {\n    \"accessor-pairs\": \"error\",\n    \"arrow-spacing\": [\"error\", { \"before\": true, \"after\": true }],\n    \"block-spacing\": [\"error\", \"always\"],\n    \"brace-style\": [\"off\", \"1tbs\", { \"allowSingleLine\": true }],\n    \"camelcase\": \"off\",\n    \"comma-dangle\": [\"error\", {\n      \"arrays\": \"never\",\n      \"objects\": \"never\",\n      \"imports\": \"never\",\n      \"exports\": \"never\",\n      \"functions\": \"never\"\n    }],\n    \"comma-spacing\": [\"error\", { \"before\": false, \"after\": true }],\n    \"comma-style\": [\"error\", \"last\"],\n    \"constructor-super\": \"error\",\n    \"curly\": [\"error\", \"multi-line\"],\n    \"dot-location\": [\"error\", \"property\"],\n    \"eol-last\": \"off\",\n    \"eqeqeq\": \"off\",\n    \"func-call-spacing\": [\"error\", \"never\"],\n    \"generator-star-spacing\": [\"error\", { \"before\": true, \"after\": true }],\n    \"handle-callback-err\": \"off\",\n    \"indent\": \"off\",\n    \"key-spacing\": [\"error\", { \"beforeColon\": false, \"afterColon\": true }],\n    \"keyword-spacing\": [\"error\", { \"before\": true, \"after\": true }],\n    \"new-cap\": [\"error\", { \"newIsCap\": true, \"capIsNew\": false }],\n    \"new-parens\": \"error\",\n    \"no-array-constructor\": \"error\",\n    \"no-caller\": \"error\",\n    \"no-class-assign\": \"error\",\n    \"no-compare-neg-zero\": \"error\",\n    \"no-cond-assign\": \"error\",\n    \"no-const-assign\": \"error\",\n    \"no-constant-condition\": [\"error\", { \"checkLoops\": false }],\n    \"no-control-regex\": \"off\",\n    \"no-debugger\": \"error\",\n    \"no-delete-var\": \"error\",\n    \"no-dupe-args\": \"error\",\n    \"no-dupe-class-members\": \"error\",\n    \"no-dupe-keys\": \"error\",\n    \"no-duplicate-case\": \"error\",\n    \"no-empty-character-class\": \"error\",\n    \"no-empty-pattern\": \"error\",\n    \"no-eval\": \"error\",\n    \"no-ex-assign\": \"error\",\n    \"no-extend-native\": \"error\",\n    \"no-extra-bind\": \"error\",\n    \"no-extra-boolean-cast\": \"error\",\n    \"no-extra-parens\": [\"error\", \"functions\"],\n    \"no-fallthrough\": \"error\",\n    \"no-floating-decimal\": \"error\",\n    \"no-func-assign\": \"error\",\n    \"no-global-assign\": \"error\",\n    \"no-implied-eval\": \"error\",\n    \"no-inner-declarations\": \"off\",\n    \"no-invalid-regexp\": \"error\",\n    \"no-irregular-whitespace\": \"error\",\n    \"no-iterator\": \"error\",\n    \"no-label-var\": \"error\",\n    \"no-labels\": [\"error\", { \"allowLoop\": false, \"allowSwitch\": false }],\n    \"no-lone-blocks\": \"error\",\n    \"no-mixed-operators\": \"off\",\n    \"no-mixed-spaces-and-tabs\": \"error\",\n    \"no-multi-spaces\": \"off\",\n    \"no-multi-str\": \"error\",\n    \"no-multiple-empty-lines\": [\"error\", { \"max\": 1, \"maxEOF\": 0 }],\n    \"no-negated-in-lhs\": \"error\",\n    \"no-new\": \"off\",\n    \"no-new-func\": \"error\",\n    \"no-new-object\": \"error\",\n    \"no-new-require\": \"error\",\n    \"no-new-symbol\": \"error\",\n    \"no-new-wrappers\": \"error\",\n    \"no-obj-calls\": \"error\",\n    \"no-octal\": \"error\",\n    \"no-octal-escape\": \"error\",\n    \"no-path-concat\": \"error\",\n    \"no-proto\": \"error\",\n    \"no-redeclare\": \"error\",\n    \"no-regex-spaces\": \"error\",\n    \"no-return-assign\": [\"error\", \"except-parens\"],\n    \"no-return-await\": \"off\",\n    \"no-self-assign\": \"error\",\n    \"no-self-compare\": \"error\",\n    \"no-sequences\": \"error\",\n    \"no-shadow-restricted-names\": \"error\",\n    \"no-sparse-arrays\": \"error\",\n    \"no-tabs\": \"error\",\n    \"no-template-curly-in-string\": \"error\",\n    \"no-this-before-super\": \"error\",\n    \"no-throw-literal\": \"error\",\n    \"no-trailing-spaces\": \"error\",\n    \"no-undef\": \"error\",\n    \"no-undef-init\": \"off\",\n    \"no-unexpected-multiline\": \"error\",\n    \"no-unmodified-loop-condition\": \"error\",\n    \"no-unneeded-ternary\": [\"off\", { \"defaultAssignment\": false }],\n    \"no-unreachable\": \"error\",\n    \"no-unsafe-finally\": \"error\",\n    \"no-unsafe-negation\": \"error\",\n    \"no-unused-expressions\": [\"error\", { \"allowShortCircuit\": true, \"allowTernary\": true, \"allowTaggedTemplates\": true }],\n    \"no-unused-vars\": [\"off\", { \"vars\": \"all\", \"args\": \"none\", \"ignoreRestSiblings\": true }],\n    \"no-use-before-define\": [\"error\", { \"functions\": false, \"classes\": false, \"variables\": false }],\n    \"no-useless-call\": \"error\",\n    \"no-useless-computed-key\": \"error\",\n    \"no-useless-constructor\": \"error\",\n    \"no-useless-escape\": \"off\",\n    \"no-useless-rename\": \"error\",\n    \"no-useless-return\": \"off\",\n    \"no-whitespace-before-property\": \"error\",\n    \"no-with\": \"error\",\n    \"object-property-newline\": [\"error\", { \"allowMultiplePropertiesPerLine\": true }],\n    \"one-var\": [\"error\", { \"initialized\": \"never\" }],\n    \"operator-linebreak\": [\"off\", \"after\", { \"overrides\": { \"?\": \"before\", \":\": \"before\" } }],\n    \"padded-blocks\": [\"error\", { \"blocks\": \"never\", \"switches\": \"never\", \"classes\": \"never\" }],\n    \"prefer-promise-reject-errors\": \"off\",\n    \"quotes\": [\"error\", \"single\", { \"avoidEscape\": true, \"allowTemplateLiterals\": true }],\n    \"rest-spread-spacing\": [\"error\", \"never\"],\n    \"semi\": [\"error\", \"never\"],\n    \"semi-spacing\": [\"error\", { \"before\": false, \"after\": true }],\n    \"space-before-blocks\": [\"error\", \"always\"],\n    \"space-before-function-paren\": [\"error\", \"always\"],\n    \"space-in-parens\": [\"error\", \"never\"],\n    \"space-infix-ops\": \"off\",\n    \"space-unary-ops\": [\"error\", { \"words\": true, \"nonwords\": false }],\n    \"spaced-comment\": [\"off\", \"always\", {\n      \"line\": { \"markers\": [\"*package\", \"!\", \"/\", \",\"] },\n      \"block\": { \"balanced\": true, \"markers\": [\"*package\", \"!\", \",\", \":\", \"::\", \"flow-include\"], \"exceptions\": [\"*\"] }\n    }],\n    \"symbol-description\": \"error\",\n    \"template-curly-spacing\": [\"error\", \"never\"],\n    \"template-tag-spacing\": [\"error\", \"never\"],\n    \"unicode-bom\": [\"error\", \"never\"],\n    \"use-isnan\": \"error\",\n    \"valid-typeof\": [\"error\", { \"requireStringLiterals\": true }],\n    \"wrap-iife\": [\"error\", \"any\", { \"functionPrototypeMethods\": true }],\n    \"yield-star-spacing\": [\"error\", \"both\"],\n    \"yoda\": [\"error\", \"never\"],\n\n    \"import/export\": \"error\",\n    \"import/first\": \"off\",\n    \"import/no-duplicates\": \"error\",\n    \"import/no-webpack-loader-syntax\": \"error\",\n\n    \"node/no-deprecated-api\": \"error\",\n    \"node/process-exit-as-throw\": \"error\",\n\n    \"promise/param-names\": \"off\",\n\n    \"standard/array-bracket-even-spacing\": [\"error\", \"either\"],\n    \"standard/computed-property-even-spacing\": [\"error\", \"even\"],\n    \"standard/no-callback-literal\": \"off\",\n    \"standard/object-curly-even-spacing\": \"off\"\n  }\n}"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!-- If you have a general question, use the discussions at https://github.com/beakerbrowser/beaker/discussions instead. -->\n\n<!-- NOTE -- Please don't open issues which might indicate that laws (such as copyright) might be broken in your use of our software. While you may be operating within your legal rights with the content, it's hard for us to know at a glance, and so for simplicity it's best to steer clear of legal issues such as copyrighted material. -->\n\n**Describe the Bug**\n<!-- A clear and concise description of what the bug is. -->\n\n**To Reproduce**\n<!-- Steps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n-->\n\n**Expected Behavior**\n<!-- A clear and concise description of what you expected to happen. -->\n\n**Screenshots**\n<!-- If applicable, add screenshots to help explain your problem. -->\n\n**Environment**\n - OS: <!-- e.g. Windows 10 -->\n - Beaker Version: <!-- e.g. 1.0.0-prerelease.3 -->\n\n**Additional Context**\n<!-- Add any other context about the problem here. -->\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: feature request\nassignees: ''\n\n---\n\n<!-- If you have a general question, use the discussions at https://github.com/beakerbrowser/beaker/discussions instead. -->\n\n<!-- NOTE -- Please don't open issues which might indicate that laws (such as copyright) might be broken in your use of our software. While you may be operating within your legal rights with the content, it's hard for us to know at a glance, and so for simplicity it's best to steer clear of legal issues such as copyrighted material. -->\n\n**Is Your Feature Request Related to a Problem? Please Describe**\n<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->\n\n**Solution You'd Like**\n<!-- A clear and concise description of what you want to happen. -->\n\n**Alternatives You've Considered**\n<!-- A clear and concise description of any alternative solutions or features you've considered. -->\n\n**Additional Context**\n<!-- Add any other context or screenshots about the feature request here. -->\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\n*.log\n.DS_Store\n.vscode\nThumbs.db\n*.autogenerated\n/dist/\n/tmp/\n*.build.js\n*.build.js.map\napp/stylesheets/*.css\napp/stylesheets/builtin-pages/*.css\npackage-lock.json\napp/package-lock.json\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Code of Conduct\n\n## 1. Purpose\n\nA primary goal of Beaker is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).\n\nThis code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.\n\nWe invite all those who participate in Beaker to help us create safe and positive experiences for everyone.\n\n## 2. Open Source Citizenship\n\nA supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.\n\nCommunities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.\n\nIf you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.\n\n## 3. Expected Behavior\n\nThe following behaviors are expected and requested of all community members:\n\n*   Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.\n*   Exercise consideration and respect in your speech and actions.\n*   Attempt collaboration before conflict.\n*   Refrain from demeaning, discriminatory, or harassing behavior and speech.\n*   Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.\n*   Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.\n\n## 4. Unacceptable Behavior\n\nThe following behaviors are considered harassment and are unacceptable within our community:\n\n*   Violence, threats of violence or violent language directed against another person.\n*   Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.\n*   Posting or displaying sexually explicit or violent material.\n*   Posting or threatening to post other people’s personally identifying information (\"doxing\").\n*   Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.\n*   Inappropriate photography or recording.\n*   Inappropriate physical contact. You should have someone’s consent before touching them.\n*   Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.\n*   Deliberate intimidation, stalking or following (online or in person).\n*   Advocating for, or encouraging, any of the above behavior.\n*   Sustained disruption of community events, including talks and presentations.\n\n## 5. Consequences of Unacceptable Behavior\n\nUnacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.\n\nAnyone asked to stop unacceptable behavior is expected to comply immediately.\n\nIf a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).\n\n## 6. Reporting Guidelines\n\nIf you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. pfrazee@gmail.com.\n\n\n\nAdditionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.\n\n## 7. Addressing Grievances\n\nIf you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify the Beaker maintainers with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.\n\n\n\n## 8. Scope\n\nWe expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business.\n\nThis code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.\n\n## 9. Contact info\n\npfrazee@gmail.com\n\n## 10. License and attribution\n\nThis Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).\n\nPortions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).\n\nRetrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/)\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contribute\n\n## Introduction\n\nThanks for considering contributing to Beaker!\n\nWe welcome any type of contribution, not only code. You can help with\n- **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open)\n- **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ...\n- **Code**: take a look at the [open issues](https://github.com/beakerbrowser/beaker/issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.\n- **Money**: we welcome financial contributions in full transparency on our [open collective](https://opencollective.com/beaker).\n\nLooking to work on Beaker? [Watch this video](https://www.youtube.com/watch?v=YuE9OO-ZDYo) and take a look at [the build notes](./build-notes.md).\n\n## Building from source\n\nRequires node 12 or higher.\n\nIn Linux (and in some cases macOS) you need libtool, m4, and automake:\n\n```bash\nsudo apt-get install libtool m4 make g++  # debian/ubuntu\nsudo dnf install libtool m4 make gcc-c++  # fedora\n```\n\nIn Windows, you'll need to install [Python 2.7](https://www.python.org/downloads/release/python-2711/), Visual Studio 2015 or 2017, and [Git](https://git-scm.com/download/win). (You might try [windows-build-tools](https://www.npmjs.com/package/windows-build-tools).) Then run:\n\n```powershell\nnpm config set python c:/python27\nnpm config set msvs_version 2015\nnpm install -g node-gyp\nnpm install -g gulp\n```\n\nTo build:\n\n```bash\ngit clone https://github.com/beakerbrowser/beaker.git\ncd beaker/scripts\nnpm install\nnpm run rebuild # see https://github.com/electron/electron/issues/5851\nnpm start\n```\n\nIf you pull latest from the repo and get weird module errors, do:\n\n```bash\nnpm run burnthemall\n```\n\nThis invokes [the mad king](http://nerdist.com/wp-content/uploads/2016/05/the-mad-king-game-of-thrones.jpg), who will torch your `node_modules/`, and do the full install/rebuild process for you.\n`npm start` should work afterwards.\n\nIf you're doing development, `npm run watch` to have assets build automatically.\n\n### Debugging\n\nTo debug the background process start electron with the `--inspect` argument pointing to the `app` directory, e.g. `script/node_modules/.bin/electron --inspect app`.  You can then attach an external debugger (e.g. Chrome devtools).\n\nTo debug the shell window itself (i.e. the beaker browser chrome), press `CmdOrCtrl+alt+shift+I` to open the devtools.\n\nTo debug a built-in pages (e.g. the Settings or Library pages), press `CmdOrCtrl+shift+I` to open the devtools.\n\n## Submitting code\n\nAny code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it. The pull request should also contain tests, if applicable. For example, a PR that changes a part of the Beaker UI will likely not need tests, but a PR that updates Beaker's networking stack would.\n\n## Code review process\n\nThe bigger the pull request, the longer it will take to review and merge. Try to break down large pull requests in smaller chunks that are easier to review and merge.\n\nIt is also always helpful to have some context for your pull request. What was the purpose? Why does it matter to you?\n\n## Financial contributions\n\nWe also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/beaker).\nAnyone can file an expense. If the expense makes sense for the development of the community, it will be \"merged\" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.\n\n## Questions\n\nIf you have any questions, create an [issue](https://github.com/beakerbrowser/beaker/issues) (protip: do a quick search first to see if someone else didn't ask the same question before!).\n\nYou can also reach us at [@BeakerBrowser](https://twitter.com/beakerbrowser) on Twitter, in #beakerbrowser on freenode, or hello@beaker.opencollective.com.\n\n## Credits\n\n### Contributors\n\nThank you to all the people who have already contributed to beaker!\n<a href=\"/beakerbrowser/beaker/graphs/contributors\"><img src=\"https://opencollective.com/beaker/contributors.svg?width=890\" />\n\n\n### Backers\n\nThank you to all our backers! [[Become a backer](https://opencollective.com/beaker#backer)]\n\n<a href=\"https://opencollective.com/beaker#backers\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/backers.svg?width=890\"></a>\n\n\n### Sponsors\n\nThank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/beaker#sponsor))\n\n<a href=\"https://opencollective.com/beaker/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/beaker/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/beaker/sponsor/9/avatar.svg\"></a>\n\n<!-- This `CONTRIBUTING.md` is based on @nayafia's template https://github.com/nayafia/contributing-template -->\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Blue Link Labs\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "Beaker Browser\n======\n\n# [This project is now archived.](./archive-notice.md)\n\nBeaker was an experimental peer-to-peer Web browser. It adds new APIs for building hostless applications while remaining compatible with the rest of the Web. [Visit the website.](https://beakerbrowser.com/)\n\n## Table of Contents\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installing](#installing)\n  - [Binaries](#binaries)\n  - [Building from source](#building-from-source)\n- [Documentation](#documentation)\n  - [Env Vars](#env-vars)\n- [Vulnerability disclosure](#vulnerability-disclosure)\n- [Known issues](#known-issues)\n  - [tmux](#tmux)\n- [Contributors](#contributors)\n  - [Backers](#backers)\n  - [Sponsors](#sponsors)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## Installing\n\n### Binaries\n\n**Visit the [Releases Page](https://github.com/beakerbrowser/beaker/releases) to find the installer you need.**\n\n### Building from source\n\nRequires node 12 or higher.\n\nIn Linux (and in some cases macOS) you need libtool, m4, autoconf, and automake:\n\n```bash\nsudo apt-get install libtool m4 make g++ autoconf # debian/ubuntu\nsudo dnf install libtool m4 make gcc-c++ libXScrnSaver  # fedora\nbrew install libtool autoconf automake # macos\n```\n\nIn Windows, you'll need to install [Python 2.7](https://www.python.org/downloads/release/python-2711/), Visual Studio 2015 or 2017, and [Git](https://git-scm.com/download/win). (You might try [windows-build-tools](https://www.npmjs.com/package/windows-build-tools).) Then run:\n\n```powershell\nnpm config set python c:/python27\nnpm config set msvs_version 2017\nnpm install -g node-gyp\nnpm install -g gulp\n```\n\nTo build:\n\n```bash\ngit clone https://github.com/beakerbrowser/beaker.git\ncd beaker/scripts\nnpm install # don't worry about v8 api errors building native modules - rebuild will fix\nnpm run rebuild # needed after each install. see https://github.com/electron/electron/issues/5851\nnpm start\n```\n\nIf you pull latest from the repo and get weird module errors, do:\n\n```bash\nnpm run burnthemall\n```\n\nThis invokes [the mad king](http://nerdist.com/wp-content/uploads/2016/05/the-mad-king-game-of-thrones.jpg), who will torch your `node_modules/`, and do the full install/rebuild process for you.\n(We chose that command name when GoT was still cool.)\n`npm start` should work afterward.\n\nIf you're doing development, `npm run watch` to have assets build automatically.\n\n## [Documentation](https://docs.beakerbrowser.com)\n\n### Env Vars\n\n- `DEBUG`: which log systems to output? A comma-separated string. Can be `beaker`, `dat`, `bittorrent-dht`, `dns-discovery`, `hypercore-protocol`. Specify `*` for all.\n- `BEAKER_OPEN_URL`: open the given URL on load, rather than the previous session or default tab.\n- `BEAKER_USER_DATA_PATH`: override the user-data path, therefore changing where data is read/written. Useful for testing. For default value see `userData` in the [electron docs](https://electron.atom.io/docs/api/app/#appgetpathname).\n- `BEAKER_DAT_QUOTA_DEFAULT_BYTES_ALLOWED`: override the default max-quota for bytes allowed to be written by a dat site. Useful for testing. Default value is `'500mb'`. This can be a Number or a String. Check [bytes.parse](https://github.com/visionmedia/bytes.js/tree/a4b9af2bf289175f12b3538eb172f2489844b1ec#bytesparsestringnumber-value-numbernull) for supported units and abbreviations.\n\n## Vulnerability disclosure\n\nSee [SECURITY.md](./SECURITY.md) for reporting security issues and vulnerabilities.\n\n## Known issues\n\n### tmux\n\nLaunching from tmux is known to cause issues with GUI apps in macOS. On Beaker, it may cause the application to hang during startup.\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).\n[![](https://opencollective.com/beaker/contributors.svg?width=890)](https://github.com/beakerbrowser/beaker/graphs/contributors)\n\n## License\n\nMIT License (MIT)\n\nCopyright (c) 2018 Blue Link Labs\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# SECURITY\n\n## How to report a vulnerability\n\nIf you believe you've discovered a security issue related to Beaker Browser, please email us at support@beakerbrowser.com with a full description of the vulnerability. We ask that you please keep the details private until we've had a chance to resolve the issue.\n\n## Public notification\n\nThe Beaker team will coordinate public nofication of the vulnerability with you. To protect users, we ask that you do not share details of the vulnerability with the public until we've had time to research and address the issue.\n"
  },
  {
    "path": "app/README.md",
    "content": "# App\n\n- `/main.js` - Electron entrypoint\n- `/assets` - Static assets such as images, fonts, etc\n- `/bg` - Electron main process code (background)\n- `/fg` - Beaker's frontend/UI code (foreground)\n- `/userland` - Frontend code that runs in the userland environment"
  },
  {
    "path": "app/assets/css/syntax-highlight.css",
    "content": "/*\ngithub.com style (c) Vasily Polovnyov <vast@whiteants.net>\n*/\n\n.hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0.5em;\n  color: #333;\n  background: #f8f8f8;\n}\n\n.hljs-comment,\n.hljs-quote {\n  color: #998;\n  font-style: italic;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-subst {\n  color: #9C27B0;\n  font-weight: bold;\n}\n\n.hljs-number,\n.hljs-literal,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag .hljs-attr {\n  color: #388E3C;\n}\n\n.hljs-string,\n.hljs-doctag {\n  color: #d14;\n}\n\n.hljs-title,\n.hljs-section,\n.hljs-selector-id {\n  color: #900;\n  font-weight: bold;\n}\n\n.hljs-subst {\n  font-weight: normal;\n}\n\n.hljs-type,\n.hljs-class .hljs-title {\n  color: #458;\n  font-weight: bold;\n}\n\n.hljs-tag,\n.hljs-name,\n.hljs-attribute {\n  color: #000080;\n  font-weight: normal;\n}\n\n.hljs-regexp,\n.hljs-link {\n  color: #009926;\n}\n\n.hljs-symbol,\n.hljs-bullet {\n  color: #990073;\n}\n\n.hljs-built_in,\n.hljs-builtin-name {\n  color: #1976D2;\n}\n\n.hljs-meta {\n  color: #999;\n  font-weight: bold;\n}\n\n.hljs-deletion {\n  background: #fdd;\n}\n\n.hljs-addition {\n  background: #dfd;\n}\n\n.hljs-emphasis {\n  font-style: italic;\n}\n\n.hljs-strong {\n  font-weight: bold;\n}\n"
  },
  {
    "path": "app/assets/js/ace-1.3.3/ace.js",
    "content": "(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = \"ace\",e=function(){return this}();!e&&typeof window!=\"undefined\"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!=\"undefined\")return;var t=function(e,n,r){if(typeof e!=\"string\"){t.original?t.original.apply(this,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t==\"string\"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)===\"[object Array]\"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n(\"\",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf(\"!\")!==-1){var n=t.split(\"!\");return i(e,n[0])+\"!\"+i(e,n[1])}if(t.charAt(0)==\".\"){var r=e.split(\"/\").slice(0,-1).join(\"/\");t=r+\"/\"+t;while(t.indexOf(\".\")!==-1&&s!=t){var s=t;t=t.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s==\"function\"){var o={},u={id:r,uri:\"\",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function o(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.extended?\"x\":\"\")+(e.sticky?\"y\":\"\")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,\"\")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,\"\"),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e==\"string\"&&t){!i&&t.length>1&&u(t,\"\")>-1&&(a=RegExp(this.source,r.replace.call(o(this),\"g\",\"\")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\\x0b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(e,t,n){\"use strict\";e(\"./regexp\"),e(\"./es5-shim\")}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=\"http://www.w3.org/1999/xhtml\";t.buildDom=function s(e,t,n){if(typeof e==\"string\"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e;if(typeof e[0]!=\"string\"||!e[0]){var i=[];for(var o=0;o<e.length;o++){var u=s(e[o],t,n);u&&i.push(u)}return i}var a=document.createElement(e[0]),f=e[1],l=1;f&&typeof f==\"object\"&&!Array.isArray(f)&&(l=2);for(var o=l;o<e.length;o++)s(e[o],a,n);return l==2&&Object.keys(f).forEach(function(e){var t=f[e];e===\"class\"?a.className=Array.isArray(t)?t.join(\" \"):t:typeof t==\"function\"||e==\"value\"?a[e]=t:e===\"ref\"?n&&(n[t]=a):t!=null&&a.setAttribute(e,t)}),t&&t.appendChild(a),a},t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName(\"head\")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className+\"\").split(/\\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=\" \"+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(\" \")},t.toggleCssClass=function(e,t){var n=e.className.split(/\\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(\" \"),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(r=t.querySelectorAll(\"style\"))while(n<r.length)if(r[n++].id===e)return!0},t.importCssString=function(n,r,i){var s=i&&i.getRootNode?i.getRootNode():i||document,o=s.ownerDocument||s;if(r&&t.hasCssString(r,s))return null;r&&(n+=\"\\n/*# sourceURL=ace/css/\"+r+\" */\");var u=t.createElement(\"style\");u.appendChild(o.createTextNode(n)),r&&(u.id=r),s==o&&(s=t.getDocumentHead(o)),s.appendChild(u)},t.importCssStylsheet=function(e,n){t.buildDom(\"link\",{rel:\"stylesheet\",href:e},t.getDocumentHead(n))},t.scrollbarWidth=function(e){var n=t.createElement(\"ace_inner\");n.style.width=\"100%\",n.style.minWidth=\"0px\",n.style.height=\"200px\",n.style.display=\"block\";var r=t.createElement(\"ace_outer\"),i=r.style;i.position=\"absolute\",i.left=\"-10000px\",i.overflow=\"hidden\",i.width=\"200px\",i.minWidth=\"0px\",i.height=\"150px\",i.display=\"block\",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow=\"scroll\";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},typeof document==\"undefined\"&&(t.importCssString=function(){}),t.computedStyle=function(e,t){return window.getComputedStyle(e,\"\")||{}},t.HAS_CSS_ANIMATION=!1;if(typeof document!=\"undefined\"){var i=document.createElement(\"div\");typeof i.style.animationName!=\"undefined\"&&(t.HAS_CSS_ANIMATION=!0)}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";e(\"./fixoldbrowsers\");var r=e(\"./oop\"),i=function(){var e={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,\"super\":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",\"-13\":\"NumpadEnter\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",111:\"/\",106:\"*\"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e[\"return\"],e.escape=e.esc,e.del=e[\"delete\"],e[173]=\"-\",function(){var t=[\"cmd\",\"ctrl\",\"alt\",\"shift\"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join(\"-\")+\"-\"}(),e.KEY_MODS[0]=\"\",e.KEY_MODS[-1]=\"input-\",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!=\"string\"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!=\"object\")return;var r=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r==\"win\",t.isMac=r==\"mac\",t.isLinux=r==\"linux\",t.isIE=navigator.appName==\"Microsoft Internet Explorer\"||navigator.appName.indexOf(\"MSAppHost\")>=0?parseFloat((i.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=i.match(/ Gecko\\/\\d+/),t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)==\"[object Opera]\",t.isWebKit=parseFloat(i.split(\"WebKit/\")[1])||undefined,t.isChrome=parseFloat(i.split(\" Chrome/\")[1])||undefined,t.isAIR=i.indexOf(\"AdobeAIR\")>=0,t.isIPad=i.indexOf(\"iPad\")>=0,t.isChromeOS=i.indexOf(\" CrOS \")>=0,t.isIOS=/iPad|iPhone|iPod/.test(i)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState(\"OS\")||t.getModifierState(\"Win\"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f=\"location\"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f=\"location\"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e(\"./keys\"),i=e(\"./useragent\"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent(\"on\"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent(\"on\"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type==\"dblclick\"?0:e.type==\"contextmenu\"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,\"mousemove\",n,!0),t.removeListener(document,\"mouseup\",i,!0),t.removeListener(document,\"dragstart\",i,!0)}return t.addListener(document,\"mousemove\",n,!0),t.addListener(document,\"mouseup\",i,!0),t.addListener(document,\"dragstart\",i,!0),i},t.addTouchMoveListener=function(e,n){var r,i;t.addListener(e,\"touchstart\",function(e){var t=e.touches,n=t[0];r=n.clientX,i=n.clientY}),t.addListener(e,\"touchmove\",function(e){var t=e.touches;if(t.length>1)return;var s=t[0];e.wheelX=r-s.clientX,e.wheelY=i-s.clientY,r=s.clientX,i=s.clientY,n(e)})},t.addMouseWheelListener=function(e,n){\"onmousewheel\"in e?t.addListener(e,\"mousewheel\",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):\"onwheel\"in e?t.addListener(e,\"wheel\",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,\"DOMMouseScroll\",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s](\"mousedown\",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s](\"mousedown\",e),r[s](l[o],e)}var o=0,u,a,f,l={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,\"mousedown\",c),i.isOldIE&&t.addListener(e,\"dblclick\",h)})};var u=!i.isMac||!i.isOpera||\"KeyboardEvent\"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!(\"KeyboardEvent\"in window)){var o=null;r(e,\"keydown\",function(e){o=e.keyCode}),r(e,\"keypress\",function(e){return a(n,e,o)})}else{var u=null;r(e,\"keydown\",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,\"keypress\",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,\"keyup\",function(e){s[e.keyCode]=null}),s||(f(),r(window,\"focus\",f))}};if(typeof window==\"object\"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r=\"zero-timeout-message-\"+l;t.addListener(n,\"message\",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,\"message\",i),e())}),n.postMessage(r,\"*\")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window==\"object\"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/keyboard/textinput_ios\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/dom\"),o=e(\"../lib/lang\"),u=e(\"../lib/keys\"),a=u.KEY_MODS,f=i.isChrome<18,l=i.isIE,c=function(e,t){function x(e){if(m)return;m=!0;if(k)t=0,n=e?0:c.value.length-1;else var t=4,n=5;try{c.setSelectionRange(t,n)}catch(r){}m=!1}function T(){if(m)return;c.value=h,i.isWebKit&&S.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){g&&(c.style.cssText=g,g=\"\"),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}var n=this,c=s.createElement(\"textarea\");c.className=i.isIOS?\"ace_text-input ace_text-input-ios\":\"ace_text-input\",i.isTouchPad&&c.setAttribute(\"x-palm-disable-auto-cap\",!0),c.setAttribute(\"wrap\",\"off\"),c.setAttribute(\"autocorrect\",\"off\"),c.setAttribute(\"autocapitalize\",\"off\"),c.setAttribute(\"spellcheck\",!1),c.style.opacity=\"0\",e.insertBefore(c,e.firstChild);var h=\"\\n aaaa a\\n\",p=!1,d=!1,v=!1,m=!1,g=\"\",y=!0;try{var b=document.activeElement===c}catch(w){}r.addListener(c,\"blur\",function(e){t.onBlur(e),b=!1}),r.addListener(c,\"focus\",function(e){b=!0,t.onFocus(e),x()}),this.focus=function(){if(g)return c.focus();c.style.position=\"fixed\",c.focus()},this.blur=function(){c.blur()},this.isFocused=function(){return b};var E=o.delayedCall(function(){b&&x(y)}),S=o.delayedCall(function(){m||(c.value=h,b&&x())});i.isWebKit||t.addEventListener(\"changeSelection\",function(){t.selection.isEmpty()!=y&&(y=!y,E.schedule())}),T(),b&&t.onFocus();var N=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length},C=function(e){N(c)?(t.selectAll(),x()):k&&x(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){if(c.selectionStart===4&&c.selectionEnd===5)return;k&&(e=k(e),k=null),v?(x(),e&&t.onPaste(e),v=!1):e==h.substr(0)&&c.selectionStart===4?L?t.execCommand(\"del\",{source:\"ace\"}):t.execCommand(\"backspace\",{source:\"ace\"}):p||(e.substring(0,9)==h&&e.length>h.length?e=e.substr(9):e.substr(0,4)==h.substr(0,4)?e=e.substr(4,e.length-h.length+1):e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e!=h.charAt(0)&&e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),p&&(p=!1),L&&(L=!1)},O=function(e){if(m)return;var t=c.value;A(t),T()},M=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||f)return;var i=l||n?\"Text\":\"text/plain\";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return M(e,t,!0)}},_=function(e,n){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i.isIOS&&(d=n,c.value=\"\\n aa\"+s+\"a a\\n\",c.setSelectionRange(4,4+s.length),p={value:s}),n?t.onCut():t.onCopy(),i.isIOS||r.preventDefault(e)):(p=!0,c.value=s,c.select(),setTimeout(function(){p=!1,T(),x(),n?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var n=M(e);typeof n==\"string\"?(n&&t.onPaste(n,e),i.isIE&&setTimeout(x),r.preventDefault(e)):(c.value=\"\",v=!0)};r.addCommandKeyListener(c,t.onCommandKey.bind(t)),r.addListener(c,\"select\",C),r.addListener(c,\"input\",O),r.addListener(c,\"cut\",D),r.addListener(c,\"copy\",P),r.addListener(c,\"paste\",H);var B=function(e){if(m||!t.onCompositionStart||t.$readOnly)return;m={},m.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on(\"mousedown\",F),m.canUndo&&!t.selection.isEmpty()&&(t.insert(\"\"),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!m||!t.onCompositionUpdate||t.$readOnly)return;var e=c.value.replace(/\\x01/g,\"\");if(m.lastValue===e)return;t.onCompositionUpdate(e),m.lastValue&&t.undo(),m.canUndo&&(m.lastValue=e);if(m.lastValue){var n=t.selection.getRange();t.insert(m.lastValue),t.session.markUndoGroup(),m.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var n=m;m=!1;var r=setTimeout(function(){r=null;var e=c.value.replace(/\\x01/g,\"\");if(m)return;e==n.lastValue?T():!n.lastValue&&e&&(T(),A(e))});k=function(i){return r&&clearTimeout(r),i=i.replace(/\\x01/g,\"\"),i==n.lastValue?\"\":(n.lastValue&&r&&t.undo(),i)},t.onCompositionEnd(),t.removeListener(\"mousedown\",F),e.type==\"compositionend\"&&n.range&&t.selection.setRange(n.range);var s=!!i.isChrome&&i.isChrome>=53||!!i.isWebKit&&i.isWebKit>=603;s&&O()},I=o.delayedCall(j,50);r.addListener(c,\"compositionstart\",B),r.addListener(c,\"compositionupdate\",function(){I.schedule()}),r.addListener(c,\"keyup\",function(){I.schedule()}),r.addListener(c,\"keydown\",function(){I.schedule()}),r.addListener(c,\"compositionend\",F),this.getElement=function(){return c},this.setReadOnly=function(e){c.readOnly=e},this.onContextMenu=function(e){L=!0,x(t.selection.isEmpty()),t._emit(\"nativecontextmenu\",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,n){g||(g=c.style.cssText),c.style.cssText=(n?\"z-index:100000;\":\"\")+\"height:\"+c.style.height+\";\"+(i.isIE?\"opacity:0.1;\":\"\");var o=t.container.getBoundingClientRect(),u=s.computedStyle(t.container),a=o.top+(parseInt(u.borderTopWidth)||0),f=o.left+(parseInt(o.borderLeftWidth)||0),l=o.bottom-a-c.clientHeight-2,h=function(e){c.style.left=e.clientX-f-2+\"px\",c.style.top=Math.min(e.clientY-a-2,l)+\"px\"};h(e);if(e.type!=\"mousedown\")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(c,\"mouseup\",U),r.addListener(c,\"mousedown\",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,\"contextmenu\",U),r.addListener(c,\"contextmenu\",U);if(i.isIOS){var z=null,W=!1;e.addEventListener(\"keydown\",function(e){z&&clearTimeout(z),W=!0}),e.addEventListener(\"keyup\",function(e){z=setTimeout(function(){W=!1},100)});var X=function(e){if(document.activeElement!==c)return;if(W)return;if(d)return setTimeout(function(){d=!1},100);var n=c.selectionStart,r=c.selectionEnd;c.setSelectionRange(4,5);if(n==r)switch(n){case 0:t.onCommandKey(null,0,u.up);break;case 1:t.onCommandKey(null,0,u.home);break;case 2:t.onCommandKey(null,a.option,u.left);break;case 4:t.onCommandKey(null,0,u.left);break;case 5:t.onCommandKey(null,0,u.right);break;case 7:t.onCommandKey(null,a.option,u.right);break;case 8:t.onCommandKey(null,0,u.end);break;case 9:t.onCommandKey(null,0,u.down)}else{switch(r){case 6:t.onCommandKey(null,a.shift,u.right);break;case 7:t.onCommandKey(null,a.shift|a.option,u.right);break;case 8:t.onCommandKey(null,a.shift,u.end);break;case 9:t.onCommandKey(null,a.shift,u.down)}switch(n){case 0:t.onCommandKey(null,a.shift,u.up);break;case 1:t.onCommandKey(null,a.shift,u.home);break;case 2:t.onCommandKey(null,a.shift|a.option,u.left);break;case 3:t.onCommandKey(null,a.shift,u.left)}}};document.addEventListener(\"selectionchange\",X),t.on(\"destroy\",function(){document.removeEventListener(\"selectionchange\",X)})}};t.TextInput=c}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/dom\"),o=e(\"../lib/lang\"),u=i.isChrome<18,a=i.isIE,f=i.isChrome>63,l=e(\"./textinput_ios\").TextInput,c=function(e,t){function T(e){e=y?!1:e;if(v)return;v=!0;if(L)var t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}v=!1}function N(){if(v)return;n.value=c,i.isWebKit&&x.schedule()}function U(){clearTimeout(R),R=setTimeout(function(){m&&(n.style.cssText=m,m=\"\"),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(i.isIOS)return l.call(this,e,t);var n=s.createElement(\"textarea\");n.className=\"ace_text-input\",n.setAttribute(\"wrap\",\"off\"),n.setAttribute(\"autocorrect\",\"off\"),n.setAttribute(\"autocapitalize\",\"off\"),n.setAttribute(\"spellcheck\",!1),n.style.opacity=\"0\",e.insertBefore(n,e.firstChild);var c=i.isIE?\"\\x01\\x01\":\"\\u2028\\u2028\",h=i.isIE?/\\x01/g:/\\u2028/g,p=!1,d=!1,v=!1,m=\"\",g=!0,y=!1,b=!1;try{var w=document.activeElement===n}catch(E){}r.addListener(n,\"blur\",function(e){t.onBlur(e),w=!1}),r.addListener(n,\"focus\",function(e){w=!0,t.onFocus(e),T()}),this.$focusScroll=!1,this.focus=function(){if(m||f||this.$focusScroll==\"browser\")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position=\"fixed\",n.style.top=\"0px\";var t=n.getBoundingClientRect().top!=0,r=[];if(t){var i=n.parentElement;while(i&&i.nodeType==1)r.push(i),i.setAttribute(\"ace_nocontext\",!0),!i.parentElement&&i.getRootNode?i=i.getRootNode().host:i=i.parentElement}n.focus({preventScroll:!0}),t&&r.forEach(function(e){e.removeAttribute(\"ace_nocontext\")}),setTimeout(function(){n.style.position=\"\",n.style.top==\"0px\"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return w};var S=o.delayedCall(function(){w&&T(g)}),x=o.delayedCall(function(){v||(n.value=c,w&&T())});i.isWebKit||t.addEventListener(\"changeSelection\",function(){t.selection.isEmpty()!=g&&(g=!g,S.schedule())}),N(),w&&t.onFocus();var C=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length},k=function(e){p?p=!1:C(n)?(t.selectAll(),T()):L&&T(t.selection.isEmpty())},L=null;this.setInputHandler=function(e){L=e},this.getInputHandler=function(){return L};var A=!1,O=function(e){L&&(e=L(e),L=null),d?(T(),e&&t.onPaste(e),d=!1):e==c.charAt(0)?A?t.execCommand(\"del\",{source:\"ace\"}):t.execCommand(\"backspace\",{source:\"ace\"}):(e.substring(0,2)==c?e=e.substr(2):e.charAt(0)==c.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==c.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==c.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),A&&(A=!1)},M=function(e){if(v)return;var t=n.value;O(t),N()},_=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?\"Text\":\"text/plain\";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return _(e,t,!0)}},D=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);_(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(p=!0,n.value=s,n.select(),setTimeout(function(){p=!1,N(),T(),i?t.onCut():t.onCopy()}))},P=function(e){D(e,!0)},H=function(e){D(e,!1)},B=function(e){var s=_(e);typeof s==\"string\"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(T),r.preventDefault(e)):(n.value=\"\",d=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,\"select\",k),r.addListener(n,\"input\",M),r.addListener(n,\"cut\",P),r.addListener(n,\"copy\",H),r.addListener(n,\"paste\",B),(!(\"oncut\"in n)||!(\"oncopy\"in n)||!(\"onpaste\"in n))&&r.addListener(e,\"keydown\",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:H(e);break;case 86:B(e);break;case 88:P(e)}});var j=function(e){if(v||!t.onCompositionStart||t.$readOnly)return;v={},v.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(F,0),t.on(\"mousedown\",I),v.canUndo&&!t.selection.isEmpty()&&(t.insert(\"\"),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},F=function(){if(!v||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(h,\"\");if(v.lastValue===e)return;t.onCompositionUpdate(e),v.lastValue&&t.undo(),v.canUndo&&(v.lastValue=e);if(v.lastValue){var r=t.selection.getRange();t.insert(v.lastValue),t.session.markUndoGroup(),v.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},I=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=v;v=!1;var s=setTimeout(function(){s=null;var e=n.value.replace(h,\"\");if(v)return;e==r.lastValue?N():!r.lastValue&&e&&(N(),O(e))});L=function(n){return s&&clearTimeout(s),n=n.replace(h,\"\"),n==r.lastValue?\"\":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener(\"mousedown\",I),e.type==\"compositionend\"&&r.range&&t.selection.setRange(r.range);var o=i.isIE||i.isChrome&&i.isChrome>=53||i.isWebKit&&i.isWebKit>=603;o&&M()},q=o.delayedCall(F,50);r.addListener(n,\"compositionstart\",j),r.addListener(n,\"compositionupdate\",function(){q.schedule()}),r.addListener(n,\"keyup\",function(){q.schedule()}),r.addListener(n,\"keydown\",function(){q.schedule()}),r.addListener(n,\"compositionend\",I),this.getElement=function(){return n},this.setCommandMode=function(e){b=e,n.readOnly=!1},this.setReadOnly=function(e){b||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){y=e},this.onContextMenu=function(e){A=!0,T(t.selection.isEmpty()),t._emit(\"nativecontextmenu\",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){m||(m=n.style.cssText),n.style.cssText=(o?\"z-index:100000;\":\"\")+\"height:\"+n.style.height+\";\"+(i.isIE?\"opacity:0.1;\":\"\");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+\"px\",n.style.top=Math.min(e.clientY-f-2,c)+\"px\"};h(e);if(e.type!=\"mousedown\")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(R),i.isWin&&r.capture(t.container,h,U)},this.onContextMenuClose=U;var R,z=function(e){t.textInput.onContextMenu(e),U()};r.addListener(n,\"mouseup\",z),r.addListener(n,\"mousedown\",function(e){e.preventDefault(),U()}),r.addListener(t.renderer.scroller,\"contextmenu\",z),r.addListener(n,\"contextmenu\",z)};t.TextInput=c}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function a(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(e)),t.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(e)),t.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(e)),t.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(e)),t.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(e)),t.setDefaultHandler(\"touchmove\",this.onTouchMove.bind(e));var n=[\"select\",\"startSelect\",\"selectEnd\",\"selectAllEnd\",\"selectByWordsEnd\",\"selectByLinesEnd\",\"dragWait\",\"dragWaitEnd\",\"focusWait\"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,\"getLineRange\"),e.selectByWords=this.extendSelectionBy.bind(e,\"getWordRange\")}function f(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function l(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=0,u=250;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var o=r.getSelectionRange(),u=o.isEmpty();(u||i==1)&&r.selection.moveToPosition(n),i==2&&(r.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimeout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState(\"focusWait\"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle(\"ace_selecting\"),this.setState(\"select\")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=l(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=l(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle(\"ace_selecting\"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState(\"select\")):(i=n.selection.getWordRange(t.row,t.column),this.setState(\"selectByWords\")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState(\"selectByLines\");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState(\"selectAll\")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,s=i?e.wheelX/i:n.vx,o=i?e.wheelY/i:n.vy;i<u&&(s=(s+n.vx)/2,o=(o+n.vy)/2);var a=Math.abs(s/o),f=!1;a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<u){var l=Math.abs(s)<=1.1*Math.abs(n.vx)&&Math.abs(o)<=1.1*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=s,n.vy=o;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){this.editor._emit(\"mousewheel\",e)}}).call(a.prototype),t.DefaultHandlers=a}),ace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\");(function(){this.$init=function(){return this.$element=i.createElement(\"div\"),this.$element.className=\"ace_tooltip\",this.$element.style.display=\"none\",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+\"px\",this.getElement().style.top=t+\"px\"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display=\"block\",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display=\"none\",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"],function(e,t,n){\"use strict\";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join(\"<br/>\"),i.setHtml(f),i.show(),t._signal(\"showGutterTooltip\",i),t.on(\"mousewheel\",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+\"px\",v.top=d.bottom+\"px\"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal(\"hideGutterTooltip\",i),t.removeEventListener(\"mousewheel\",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler(\"guttermousedown\",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i==\"foldWidgets\")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState(\"selectByLines\"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler(\"guttermousemove\",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,\"ace_fold-widget\"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,\"mouseout\",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on(\"changeSession\",c)}function a(e){o.call(this,e)}var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/event\"),o=e(\"../tooltip\").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,\"ace_selection\",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,\"mousemove\",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,\"mousemove\",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e==\"text/plain\"||e==\"Text\"})}function _(e){var t=[\"copy\",\"copymove\",\"all\",\"uninitialized\"],n=[\"move\",\"copymove\",\"linkmove\",\"all\",\"uninitialized\"],r=s.isMac?e.altKey:e.ctrlKey,i=\"uninitialized\";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o=\"none\";return r&&t.indexOf(i)>=0?o=\"copy\":n.indexOf(i)>=0?o=\"move\":t.indexOf(i)>=0&&(o=\"copy\"),o}var t=e.editor,n=r.createElement(\"img\");n.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",s.isOpera&&(n.style.cssText=\"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\");var f=[\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"dragReadyEnd\",\"onMouseDrag\"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener(\"mousedown\",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?\"copy\":\"copyMove\",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData(\"Text\",t.session.getTextRange()),w=!0,this.setState(\"drag\")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n==\"move\"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case\"move\":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case\"copy\":m=t.moveText(m,g,!0)}else{var r=n.getData(\"Text\");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,\"dragstart\",this.onDragStart.bind(e)),i.addListener(c,\"dragend\",this.onDragEnd.bind(e)),i.addListener(c,\"dragenter\",this.onDragEnter.bind(e)),i.addListener(c,\"dragover\",this.onDragOver.bind(e)),i.addListener(c,\"dragleave\",this.onDragLeave.bind(e)),i.addListener(c,\"drop\",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\"),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle(\"ace_dragging\");var n=s.isWin?\"default\":\"move\";e.renderer.setCursorStyle(n),this.setState(\"dragReady\")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state==\"dragReady\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state===\"dragWait\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;\"unselectable\"in o&&(o.unselectable=\"on\");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState(\"dragWait\")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"./dom\");t.get=function(e,t){var n=new XMLHttpRequest;n.open(\"GET\",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement(\"script\");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState==\"loaded\"||i.readyState==\"complete\")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement(\"a\");return t.href=e,t.href}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"no use strict\";function o(e){typeof console!=\"undefined\"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console==\"object\"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e(\"./oop\"),i=e(\"./event_emitter\").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(!e){var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}else Array.isArray(e)||(t=e,e=Object.keys(t));return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this[\"$\"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option \"'+e+'\"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this[\"$\"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this[\"$\"+e]:o('misspelled option \"'+e+'\"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r==\"string\"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,\"initialValue\"in r&&(e[\"$\"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];\"value\"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"],function(e,t,n){\"no use strict\";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s=\"\",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName(\"script\");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute(\"src\");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf(\"data-ace-\")===0&&(i[l(y.name.replace(/^data-ace-/,\"\"))]=y.value)}var b=d.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!=\"undefined\"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./lib/net\"),o=e(\"./lib/app_config\").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!=\"undefined\"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split(\"/\");t=t||n[n.length-2]||\"\";var r=t==\"snippets\"?\"/\":\"-\",i=n[n.length-1];if(t==\"worker\"&&r==\"-\"){var s=new RegExp(\"^\"+t+\"[\\\\-_]|[\\\\-_]\"+t+\"$\",\"g\");i=i.replace(s,\"\")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+\"Path\"];return o==null?o=a.basePath:r==\"/\"&&(t=r=\"\"),o&&o.slice(-1)!=\"/\"&&(o+=\"/\"),o+t+r+i+this.get(\"suffix\")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit(\"load.module\",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get(\"packaged\"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"./default_handlers\").DefaultHandlers,o=e(\"./default_gutter_handler\").GutterHandler,u=e(\"./mouse_event\").MouseEvent,a=e(\"./dragdrop_handler\").DragdropHandler,f=e(\"../config\"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,\"click\",this.onMouseEvent.bind(this,\"click\")),r.addListener(u,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,\"onMouseEvent\"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,\"mousewheel\")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,\"touchmove\"));var f=e.renderer.$gutter;r.addListener(f,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),r.addListener(f,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),r.addListener(f,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),r.addListener(f,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\")),r.addListener(u,\"mousedown\",n),r.addListener(f,\"mousedown\",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,\"mousedown\",n),r.addListener(e.renderer.scrollBarH.element,\"mousedown\",n)),e.on(\"mousemove\",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle(\"default\"):s.setCursorStyle(\"\")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor,s=this.editor.renderer;s.$keepTextAreaAtCursor&&(s.$keepTextAreaAtCursor=null);var o=this,a=function(e){if(!e)return;if(i.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new u(e,o.editor),o.$mouseMoved=!0},f=function(e){n.off(\"beforeEndOperation\",c),clearInterval(h),l(),o[o.state+\"End\"]&&o[o.state+\"End\"](e),o.state=\"\",s.$keepTextAreaAtCursor==null&&(s.$keepTextAreaAtCursor=!0,s.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent(\"mouseup\",e)},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type==\"dblclick\")return setTimeout(function(){f(e)});var c=function(e){n.curOp.command.name&&n.curOp.selectionChanged&&(o[o.state+\"End\"]&&o[o.state+\"End\"](),o.state=\"\",o.releaseMouse())};n.on(\"beforeEndOperation\",c),o.$onCaptureMouseMove=a,o.releaseMouse=r.capture(this.editor.container,a,f);var h=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!=\"contextmenu\")return;this.editor.off(\"nativecontextmenu\",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on(\"nativecontextmenu\",e)}}).call(l.prototype),f.defineOptions(l.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function i(e){e.on(\"click\",function(t){var n=t.getDocumentPosition(),i=e.session,s=i.getFoldAt(n.row,n.column,1);s&&(t.getAccelKey()?i.removeFold(s):i.expandFold(s),t.stop());var o=t.domEvent&&t.domEvent.target;o&&r.hasCssClass(o,\"ace_inline_button\")&&r.hasCssClass(o,\"ace_toggle_wrap\")&&(i.setOption(\"wrap\",!0),e.renderer.scrollCursorIntoView())}),e.on(\"gutterclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on(\"gutterdblclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold(\"...\",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}var r=e(\"../lib/dom\");t.FoldHandler=i}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"../lib/keys\"),i=e(\"../lib/event\"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e==\"function\"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||\"\"}).filter(Boolean).join(\" \")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command==\"null\"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:\"insertstring\"},o=u.exec(\"insertstring\",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal(\"keyboardActivity\",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\\u0591-\\u05f4]/.test(e)?y:g:n==6?/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(e)?A:/[\\u0660-\\u0669\\u066b-\\u066c]/.test(e)?w:t==1642?L:/[\\u06f0-\\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>=\"\\u064b\"&&e<=\"\\u0655\"}var r=[\"\\u0621\",\"\\u0641\"],i=[\"\\u063a\",\"\\u064a\"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT=\"\\u00b7\",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(\"\"),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]===\"\\u0644\"&&/\\u0622|\\u0623|\\u0625|\\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T)&&(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),ace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";var r=e(\"./lib/bidiutil\"),i=e(\"./lib/lang\"),s=e(\"./lib/useragent\"),o=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,u=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL=\"\\u00ac\",this.showInvisibles=!0,this.isRtlDir=!1,this.line=\"\",this.wrapIndent=0,this.isLastRow=!1,this.EOF=\"\\u00b6\",this.seenBidi=!1};(function(){this.isBidiRow=function(e,t,n){return this.seenBidi?(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action==\"insert\"&&o.test(e.lines.join(\"\\n\"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e);if(this.session.$useWrapMode){var n=this.session.$wrapData[e];n&&(t===undefined&&(t=this.getSplitIndex()),t>0&&n.length?(this.wrapIndent=n.indent,this.line=t<n.length?this.line.substring(n[t-1],n[n.length-1]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[t]))}var s=this.session,o=0,u;this.line=this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g,function(e,t){return e===\"\t\"||s.isFullWidth(e.charCodeAt(0))?(u=e===\"\t\"?s.getScreenTabSize(t+o):2,o+=u-1,i.stringRepeat(r.DOT,u)):e})},this.updateBidiMap=function(){var e=[],t=this.isLastRow?this.EOF:this.EOL,n=this.line+(this.showInvisibles?t:r.DOT);r.hasBidiCharacters(n,e)?this.bidiMap=r.doBidiReorder(n,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(!this.seenBidi)return;if(this.characterWidth===e.$characterSize.width)return;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth(\"\\u05d4\");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=s.isChrome?n:n*.45,this.charWidths[r.B]=0,this.currentRow=null},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setTextDir=function(e){this.isRtlDir=e},this.getPosLeft=function(e){e-=this.wrapIndent;var t=r.getVisualFromLogicalIdx(e>0?e-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;e===0&&n[t]%2!==0&&t++;for(var s=0;s<t;s++)i+=this.charWidths[n[s]];return e!==0&&n[t]%2===0&&(i+=this.charWidths[n[t]]),this.wrapIndent&&(i+=this.wrapIndent*this.charWidths[r.L]),i},this.getSelections=function(e,t){var n=this.bidiMap,i=n.bidiLevels,s,o=this.wrapIndent*this.charWidths[r.L],u=[],a=Math.min(e,t)-this.wrapIndent,f=Math.max(e,t)-this.wrapIndent,l=!1,c=!1,h=0;for(var p,d=0;d<i.length;d++)p=n.logicalFromVisual[d],s=i[d],l=p>=a&&p<f,l&&!c?h=o:!l&&c&&u.push({left:h,width:o-h}),o+=this.charWidths[s],c=l;return l&&d===i.length&&u.push({left:h,width:o-h}),u},this.offsetToCol=function(e){var t=0,e=Math.max(e,0),n=0,i=0,s=this.bidiMap.bidiLevels,o=this.charWidths[s[i]];this.wrapIndent&&(e-=this.wrapIndent*this.charWidths[r.L]);while(e>n+o/2){n+=o;if(i===s.length-1){o=0;break}o=this.charWidths[s[++i]]}return i>0&&s[i-1]%2!==0&&s[i]%2===0?(e<n&&i--,t=this.bidiMap.logicalFromVisual[i]):i>0&&s[i-1]%2===0&&s[i]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[i]:this.bidiMap.logicalFromVisual[i-1]):this.isRtlDir&&i===s.length-1&&o===0&&s[i-1]%2===0||!this.isRtlDir&&i===0&&s[i]%2!==0?t=1+this.bidiMap.logicalFromVisual[i]:(i>0&&s[i-1]%2!==0&&o!==0&&i--,t=this.bidiMap.logicalFromVisual[i]),t+this.wrapIndent}}).call(u.prototype),t.BidiHandler=u}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on(\"change\",function(e){t.$cursorChanged=!0,t.$silent||t._emit(\"changeCursor\"),!t.$isEmpty&&!t.$silent&&t._emit(\"changeSelection\"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on(\"change\",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit(\"changeSelection\")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit(\"changeCursor\"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit(\"changeSelection\")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t==\"undefined\"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e==\"number\"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(\" \").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(r)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(s)&&(t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0);if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\\s*$/.test(r));/^\\s+/.test(r)||(r=\"\"),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\\s*$/.test(r));t=r.length,/\\s+$/.test(r)||(r=\"\")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var i=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||e>0)&&i.row++,this.moveCursorTo(i.row,i.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\\uDC00-\\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"./config\"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:\"text\"},o=\"g\",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o=\"gi\");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp(\"(?:(\"+l+\")|(.))\")).exec(\"a\").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError(\"number of classes and regexp groups doesn't match\",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token==\"function\"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\\\\d/.test(f.regex)?l=f.regex.replace(/\\\\([0-9]+)/g,function(e,t){return\"\\\\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!=\"string\"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push(\"$\")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp(\"(\"+r.join(\")|(\")+\")|($)\",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n==\"string\")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return\"text\";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(e,t){return t?\"(?:\":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf(\"(?=\")!=-1){var n=0,r=!1,i={};e.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(e,t,s,o,u,a){return r?r=u!=\"]\":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!=\"^\"&&(e=\"^\"+e),e.charAt(e.length-1)!=\"$\"&&(e+=\"$\"),new RegExp(e,(t||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(e,t){if(t&&typeof t!=\"string\"){var n=t.slice(0);t=n[0],t===\"#tmp\"&&(n.shift(),t=n.shift())}else var n=[];var r=t||\"start\",s=this.states[r];s||(r=\"start\",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:\"\"};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next==\"string\"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError(\"state doesn't exist\",r),r=\"start\",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p==\"string\")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:\"\"};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError(\"infinite loop with in ace tokenizer\",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:\"overflow\"};r=\"start\",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift(\"#tmp\",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\"),i=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next==\"string\"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e==\"function\"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?\"push\":\"unshift\"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!=\"start\"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||\"start\"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+\".end\",regex:a.end||a.start,next:\"pop\"}),a.token=a.token+\".start\",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!=\"string\"&&(c=c[0]||\"\"),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l==\"pop\"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a==\"string\"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||\"text\",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||\"|\");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e==\"function\")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c={'\"':'\"',\"'\":\"'\"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add(\"braces\",\"insertion\",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s==\"{\"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==\"\"&&c!==\"{\"&&r.getWrapBehavioursEnabled())return p(l,c,\"{\",\"}\");if(d.isSaneInsertion(r,i))return/[\\]\\}\\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,\"}\"),{text:\"{}\",selection:[1,1]}):(d.recordMaybeInsert(r,i,\"{\"),{text:\"{\",selection:[1,1]})}else if(s==\"}\"){h(r);var v=a.substring(u.column,u.column+1);if(v==\"}\"){var m=i.$findOpeningBracket(\"}\",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(s==\"\\n\"||s==\"\\r\\n\"){h(r);var g=\"\";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat(\"}\",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v===\"}\"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},\"}\");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:\"\\n\"+w+\"\\n\"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return p(s,o,\"(\",\")\");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return p(s,o,\"[\",\"]\");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==\"\"&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d==\"\\\\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\\s;,.})\\]\\\\]/.test(v))return null;w=!0}return{text:w?o+o:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o<r.length;o+=2)s.push(i+=r[o]),r[o+1]&&s.push(45,i+=r[o+1]);t.wordChars=String.fromCharCode.apply(null,s)}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../tokenizer\").Tokenizer,i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./behaviour/cstyle\").CstyleBehaviour,o=e(\"../unicode\"),u=e(\"../lib/lang\"),a=e(\"../token_iterator\").TokenIterator,f=e(\"../range\").Range,l=function(){this.HighlightRules=i};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp(\"^[\"+o.wordChars+\"\\\\$_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+o.wordChars+\"\\\\$_]|\\\\s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart=\"\",this.blockComment=\"\",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp(\"^(\\\\s*)(?:\"+u.escapeRegExp(c)+\")\"),d=new RegExp(\"(?:\"+u.escapeRegExp(h)+\")\\\\s*$\"),v=function(e,t){if(g(e,t))return;if(!s||/\\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type===\"comment\")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join(\"|\"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp(\"^(\\\\s*)(?:\"+p+\") ?\"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==\" \"&&s--,i.removeInLine(t,r,s)},y=c+\" \",v=function(e,t){if(!s||/\\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==\" \")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==\" \")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=[\"toggleBlockComment\",\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\",\"getCompletions\"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!=\"string\"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token==\"string\")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token==\"object\")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\\(.+?\\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:\"keyword\"}})},this.$id=\"ace/mode/text\"}).call(l.prototype),t.Mode=l}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal(\"change\",e))},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal(\"update\",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action==\"remove\")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||\"start\"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+\"\"!=r.state+\"\"?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+\"\"==e+\"\")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:\"\");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e(\"../range\").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:\"after\"};if(r===0)return{fold:n,kind:\"inside\"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind==\"inside\"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind==\"inside\")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+\": [\"];return this.folds.forEach(function(t){e.push(\"  \"+t.toString())}),e.push(\"]\"),e.join(\"\\n\")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener(\"change\",this.onChange),this.session=null},this.$onChange=function(e){var t=e.start,n=e.end,r=t.row,i=n.row,s=this.ranges;for(var o=0,u=s.length;o<u;o++){var a=s[o];if(a.end.row>=r)break}if(e.action==\"insert\"){var f=i-r,l=-t.column+n.column;for(;o<u;o++){var a=s[o];if(a.start.row>r)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column!=t.column||!this.$insertRight)&&(a.start.column+=l,a.start.row+=f);if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$insertRight)continue;a.end.column==t.column&&l>0&&o<u-1&&a.end.column>a.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;o<u;o++){var a=s[o];if(a.start.row>i)break;a.end.row<i&&(a.end.row=r,a.end.column=t.column);if(a.start.row<i||a.start.row==i&&a.start.column<=n.colum)a.start.row=r,a.start.column=t.column;if(a.end.row==i)if(a.end.column<=n.column){if(f||a.end.column>t.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;if(a.start.row==i)if(a.start.column<=n.column){if(f||a.start.column>t.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f}}if(f!=0&&o<u)for(;o<u;o++){var a=s[o];a.start.row+=f,a.end.row+=f}}}).call(s.prototype),t.RangeList=s}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e(\"../range\").Range,i=e(\"../range_list\").RangeList,s=e(\"../lib/oop\"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal(\"changeFold\",{data:o,action:\"add\"}),o}throw new Error(\"The range has to be at least 2 characters width\")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal(\"changeFold\",{data:e,action:\"remove\"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e==\"number\"?n=new r(e,0,e,this.getLine(e).length):\"row\"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o=\"\";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u=\"...\";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+\"..\"}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u==\"comment\"&&(u+=\"|doc-start\");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!=\"start\")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold(\"...\",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error(\"invalid fold style: \"+e+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle==e)return;this.$foldStyle=e,e==\"manual\"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off(\"change\",this.$updateFoldWidgets),this.off(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets),this._signal(\"changeAnnotation\");if(!e||this.$foldStyle==\"manual\"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets),this.on(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s==\"start\"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=\" ace_invalid\")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n===\"end\"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold(\"...\",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold(\"...\",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action==\"remove\")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e(\"../range\").Range,i=e(\"./fold_line\").FoldLine,s=e(\"./fold\").Fold,o=e(\"../token_iterator\").TokenIterator;t.Folding=u}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n==\"\")return null;var r=n.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\").replace(/\\b(?:end)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\").replace(/\\b(?:start|begin)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e(\"../token_iterator\").TokenIterator,i=e(\"../range\").Range;t.BracketMatch=s}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./bidihandler\").BidiHandler,o=e(\"./config\"),u=e(\"./lib/event_emitter\").EventEmitter,a=e(\"./selection\").Selection,f=e(\"./mode/text\").Mode,l=e(\"./range\").Range,c=e(\"./document\").Document,h=e(\"./background_tokenizer\").BackgroundTokenizer,p=e(\"./search_highlight\").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id=\"session\"+ ++d.$uid,this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!=\"object\"||!e.getLine)e=new c(e);this.$bidiHandler=new s(this),this.setDocument(e),this.selection=new a(this),o.resetOptions(this),this.setMode(t),o._signal(\"session\",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=e,e.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:\"removeFolds\",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal(\"change\",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(e){this.setOption(\"useSoftTabs\",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption(\"tabSize\",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption(\"navigateWithinSoftTabs\",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption(\"overwrite\",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=\"\"),this.$decorations[e]+=\" \"+t,this._signal(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||\"\").replace(\" \"+t,\"\"),this._signal(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]=\"ace_breakpoint\";this._signal(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal(\"changeBreakpoint\",{})},this.setBreakpoint=function(e,t){t===undefined&&(t=\"ace_breakpoint\"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||\"line\",renderer:typeof n==\"function\"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal(\"changeFrontMarker\")):(this.$backMarkers[i]=s,this._signal(\"changeBackMarker\")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal(\"changeFrontMarker\")):(this.$backMarkers[n]=e,this._signal(\"changeBackMarker\")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;delete n[e],this._signal(t.inFront?\"changeFrontMarker\":\"changeBackMarker\")},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!=\"number\"&&(n=t,t=e),n||(n=\"ace_step\");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,\"fullLine\",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r?\\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine=\"\\n\"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\\s+$/.test(n.slice(t-1,t+1)))var i=/\\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \\t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption(\"useWorker\",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e==\"object\"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||\"ace/mode/text\";this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule([\"mode\",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener(\"update\",r)}if(!this.bgTokenizer){this.bgTokenizer=new h(n);var i=this;this.bgTokenizer.addEventListener(\"update\",function(e){i._signal(\"tokenizerUpdate\",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit(\"changeMode\"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn(\"Could not load worker\",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal(\"changeScrollTop\",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal(\"changeScrollLeft\",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action==\"insert\"||r.action==\"remove\"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;n<e.length;n++){var r=e[n];(r.action==\"insert\"||r.action==\"remove\")&&this.doc.applyDelta(r)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t){function n(e){return t?e.action!==\"insert\":e.action===\"insert\"}var r,i,s;for(var o=0;o<e.length;o++){var u=e[o];if(!u.start)continue;if(!r){n(u)?(r=l.fromPoints(u.start,u.end),s=!0):(r=l.fromPoints(u.start,u.start),s=!1);continue}n(u)?(i=u.start,r.compare(i.row,i.column)==-1&&r.setStart(i),i=u.end,r.compare(i.row,i.column)==1&&r.setEnd(i),s=!0):(i=u.start,r.compare(i.row,i.column)==-1&&(r=l.fromPoints(u.start,u.start)),s=!1)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=\" \")break;o<r&&s.charAt(o)==\"\t\"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal(\"changeWrapMode\")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n===\"remove\"){this[t?\"$wrapData\":\"$rowLengthCache\"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n===\"remove\"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(f,t),r=n.length;n.join(\"\").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),o.length||(b=g(),o.indent=b),l+=r,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t==\"undefined\")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d=\"\";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===\"\t\"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=m}.call(d.prototype),e(\"./edit_session/folding\").Folding.call(d.prototype),e(\"./edit_session/bracket_match\").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,\"session\",{wrap:{set:function(e){!e||e==\"off\"?e=!1:e==\"free\"?e=!0:e==\"printMargin\"?e=-1:typeof e==\"string\"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e==\"number\"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?\"printMargin\":this.getWrapLimitRange().min?this.$wrap:\"free\":\"off\"},handlesSet:!0},wrapMethod:{set:function(e){e=e==\"auto\"?this.$mode.type!=\"text\":e!=\"text\",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:\"auto\"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal(\"changeTabSize\")},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";function u(e,t){function n(e){return/\\w/.test(e)||t.regExp?\"\\\\b\":\"\"}return n(e[0])+e+n(e[e.length-1])}var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split(\"\");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join(\"\")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?\"gm\":\"gmi\";e.$isMultiLine=!t&&/[\\n\\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?\"end\":\"start\"]:e.selection.getRange()),o.start&&(o=o[i!=r?\"end\":\"start\"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0)return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function o(e,t){this.platform=t||(i.isMac?\"mac\":\"win\"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e(\"../lib/keys\"),i=e(\"../lib/useragent\"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e==\"object\"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e==\"string\"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e==\"object\"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t==\"function\")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split(\"|\").forEach(function(e){var r=\"\";if(e.indexOf(\" \")!=-1){var i=e.split(/\\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?\" \":\"\")+n,this._addCommandToBinding(r,\"chainKeys\")},this),r+=\" \"}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!=\"number\"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n==\"string\")return this.bindKey(n,t);typeof n==\"function\"&&(n={exec:n});if(typeof n!=\"object\")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]==\"shift\")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!=\"undefined\"&&console.error(\"invalid modifier \"+t[o]+\" in \"+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=\" \"+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o==\"chainKeys\"||o[o.length-1]==\"chainKeys\")return e.$keyChain=e.$keyChain||i,{command:\"null\"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=\"\"}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||\"\"}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../keyboard/hash_handler\").MultiHashHandler,s=e(\"../lib/event_emitter\").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e==\"string\"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit(\"exec\",i),this._signal(\"afterExec\",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t==\"string\"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!=\"string\"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t){return{win:e,mac:t}}var r=e(\"../lib/lang\"),i=e(\"../config\"),s=e(\"../range\").Range;t.commands=[{name:\"showSettingsMenu\",bindKey:o(\"Ctrl-,\",\"Command-,\"),exec:function(e){i.loadModule(\"ace/ext/settings_menu\",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:\"goToNextError\",bindKey:o(\"Alt-E\",\"F4\"),exec:function(e){i.loadModule(\"./ext/error_marker\",function(t){t.showErrorMarker(e,1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"goToPreviousError\",bindKey:o(\"Alt-Shift-E\",\"Shift-F4\"),exec:function(e){i.loadModule(\"./ext/error_marker\",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"selectall\",bindKey:o(\"Ctrl-A\",\"Command-A\"),exec:function(e){e.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:o(null,\"Ctrl-L\"),exec:function(e){e.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:o(\"Ctrl-L\",\"Command-L\"),exec:function(e,t){typeof t!=\"number\"&&(t=parseInt(prompt(\"Enter line number:\"),10)),isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:\"fold\",bindKey:o(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"unfold\",bindKey:o(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleFoldWidget\",bindKey:o(\"F2\",\"F2\"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleParentFoldWidget\",bindKey:o(\"Alt-F2\",\"Alt-F2\"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"foldall\",bindKey:o(null,\"Ctrl-Command-Option-0\"),exec:function(e){e.session.foldAll()},scrollIntoView:\"center\",readOnly:!0},{name:\"foldOther\",bindKey:o(\"Alt-0\",\"Command-Option-0\"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:\"center\",readOnly:!0},{name:\"unfoldall\",bindKey:o(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(e){e.session.unfold()},scrollIntoView:\"center\",readOnly:!0},{name:\"findnext\",bindKey:o(\"Ctrl-K\",\"Command-G\"),exec:function(e){e.findNext()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"findprevious\",bindKey:o(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(e){e.findPrevious()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"selectOrFindNext\",bindKey:o(\"Alt-K\",\"Ctrl-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:\"selectOrFindPrevious\",bindKey:o(\"Alt-Shift-K\",\"Ctrl-Shift-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:\"find\",bindKey:o(\"Ctrl-F\",\"Command-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:o(\"Ctrl-Shift-Home\",\"Command-Shift-Home|Command-Shift-Up\"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotostart\",bindKey:o(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(e){e.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectup\",bindKey:o(\"Shift-Up\",\"Shift-Up|Ctrl-Shift-P\"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golineup\",bindKey:o(\"Up\",\"Up|Ctrl-P\"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttoend\",bindKey:o(\"Ctrl-Shift-End\",\"Command-Shift-End|Command-Shift-Down\"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotoend\",bindKey:o(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(e){e.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectdown\",bindKey:o(\"Shift-Down\",\"Shift-Down|Ctrl-Shift-N\"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golinedown\",bindKey:o(\"Down\",\"Down|Ctrl-N\"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordleft\",bindKey:o(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordleft\",bindKey:o(\"Ctrl-Left\",\"Option-Left\"),exec:function(e){e.navigateWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolinestart\",bindKey:o(\"Alt-Shift-Left\",\"Command-Shift-Left|Ctrl-Shift-A\"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolinestart\",bindKey:o(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(e){e.navigateLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectleft\",bindKey:o(\"Shift-Left\",\"Shift-Left|Ctrl-Shift-B\"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoleft\",bindKey:o(\"Left\",\"Left|Ctrl-B\"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordright\",bindKey:o(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordright\",bindKey:o(\"Ctrl-Right\",\"Option-Right\"),exec:function(e){e.navigateWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolineend\",bindKey:o(\"Alt-Shift-Right\",\"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolineend\",bindKey:o(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(e){e.navigateLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectright\",bindKey:o(\"Shift-Right\",\"Shift-Right\"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoright\",bindKey:o(\"Right\",\"Right|Ctrl-F\"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(e){e.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:o(null,\"Option-PageDown\"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:o(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(e){e.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:o(null,\"Option-PageUp\"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:o(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:o(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"togglerecording\",bindKey:o(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:\"replaymacro\",bindKey:o(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:\"jumptomatching\",bindKey:o(\"Ctrl-P\",\"Ctrl-P\"),exec:function(e){e.jumpToMatching()},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"selecttomatching\",bindKey:o(\"Ctrl-Shift-P\",\"Ctrl-Shift-P\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"expandToMatching\",bindKey:o(\"Ctrl-Shift-M\",\"Ctrl-Shift-M\"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"passKeysToBrowser\",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:\"copy\",exec:function(e){},readOnly:!0},{name:\"cut\",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit(\"cut\",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"paste\",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:\"cursor\"},{name:\"removeline\",bindKey:o(\"Ctrl-D\",\"Command-D\"),exec:function(e){e.removeLines()},scrollIntoView:\"cursor\",multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:o(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(e){e.duplicateSelection()},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:o(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(e){e.sortLines()},scrollIntoView:\"selection\",multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:o(\"Ctrl-/\",\"Command-/\"),exec:function(e){e.toggleCommentLines()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"toggleBlockComment\",bindKey:o(\"Ctrl-Shift-/\",\"Command-Shift-/\"),exec:function(e){e.toggleBlockComment()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"modifyNumberUp\",bindKey:o(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(e){e.modifyNumber(1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:o(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:o(\"Ctrl-H\",\"Command-Option-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e,!0)})}},{name:\"undo\",bindKey:o(\"Ctrl-Z\",\"Command-Z\"),exec:function(e){e.undo()}},{name:\"redo\",bindKey:o(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(e){e.redo()}},{name:\"copylinesup\",bindKey:o(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(e){e.copyLinesUp()},scrollIntoView:\"cursor\"},{name:\"movelinesup\",bindKey:o(\"Alt-Up\",\"Option-Up\"),exec:function(e){e.moveLinesUp()},scrollIntoView:\"cursor\"},{name:\"copylinesdown\",bindKey:o(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(e){e.copyLinesDown()},scrollIntoView:\"cursor\"},{name:\"movelinesdown\",bindKey:o(\"Alt-Down\",\"Option-Down\"),exec:function(e){e.moveLinesDown()},scrollIntoView:\"cursor\"},{name:\"del\",bindKey:o(\"Delete\",\"Delete|Ctrl-D|Shift-Delete\"),exec:function(e){e.remove(\"right\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"backspace\",bindKey:o(\"Shift-Backspace|Backspace\",\"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(e){e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"cut_or_delete\",bindKey:o(\"Shift-Delete\",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolinestart\",bindKey:o(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(e){e.removeToLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolineend\",bindKey:o(\"Alt-Delete\",\"Ctrl-K|Command-Delete\"),exec:function(e){e.removeToLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolinestarthard\",bindKey:o(\"Ctrl-Shift-Backspace\",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolineendhard\",bindKey:o(\"Ctrl-Shift-Delete\",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordleft\",bindKey:o(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(e){e.removeWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordright\",bindKey:o(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(e){e.removeWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"outdent\",bindKey:o(\"Shift-Tab\",\"Shift-Tab\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"indent\",bindKey:o(\"Tab\",\"Tab\"),exec:function(e){e.indent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"blockoutdent\",bindKey:o(\"Ctrl-[\",\"Ctrl-[\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"blockindent\",bindKey:o(\"Ctrl-]\",\"Ctrl-]\"),exec:function(e){e.blockIndent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"insertstring\",exec:function(e,t){e.insert(t)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"inserttext\",exec:function(e,t){e.insert(r.stringRepeat(t.text||\"\",t.times||1))},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"splitline\",bindKey:o(null,\"Ctrl-O\"),exec:function(e){e.splitLine()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"transposeletters\",bindKey:o(\"Alt-Shift-X\",\"Ctrl-T\"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:\"cursor\"},{name:\"touppercase\",bindKey:o(\"Ctrl-U\",\"Ctrl-U\"),exec:function(e){e.toUpperCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"tolowercase\",bindKey:o(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(e){e.toLowerCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"expandtoline\",bindKey:o(\"Ctrl-Shift-L\",\"Command-Shift-L\"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"joinlines\",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\\n\\s*/,\" \").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=\" \"+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:\"forEach\",readOnly:!0},{name:\"invertSelection\",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:\"none\"}]}),ace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";n.exports={lineMode:!1}}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/clipboard\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/lang\"),o=e(\"./lib/useragent\"),u=e(\"./keyboard/textinput\").TextInput,a=e(\"./mouse/mouse_handler\").MouseHandler,f=e(\"./mouse/fold_handler\").FoldHandler,l=e(\"./keyboard/keybinding\").KeyBinding,c=e(\"./edit_session\").EditSession,h=e(\"./search\").Search,p=e(\"./range\").Range,d=e(\"./lib/event_emitter\").EventEmitter,v=e(\"./commands/command_manager\").CommandManager,m=e(\"./commands/default_commands\").commands,g=e(\"./config\"),y=e(\"./token_iterator\").TokenIterator,b=e(\"./clipboard\"),w=function(e,t,n){var r=e.getContainerElement();this.container=r,this.renderer=e,this.id=\"editor\"+ ++w.$uid,this.commands=new v(o.isMac?\"mac\":\"win\",m),typeof document==\"object\"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on(\"exec\",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal(\"input\",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on(\"change\",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new c(\"\")),g.resetOptions(this),n&&this.setOptions(n),g._signal(\"editor\",this)};w.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){this.commands.on(\"exec\",this.startOperation.bind(this),!0),this.commands.on(\"afterExec\",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on(\"change\",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on(\"changeSelection\",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal(\"beforeEndOperation\");var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case\"center-animate\":n=\"animate\";case\"center\":this.renderer.scrollCursorIntoView(null,.5);break;case\"animate\":case\"cursor\":this.renderer.scrollCursorIntoView();break;case\"selectionPart\":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n==\"animate\"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=[\"backspace\",\"del\",\"insertstring\"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name==\"insertstring\"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\\s/.test(i)||/\\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!=\"always\"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e==\"string\"&&e!=\"ace\"){this.$keybindingId=e;var n=this;g.loadModule([\"keybinding\",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off(\"change\",this.$onDocumentChange),this.session.off(\"changeMode\",this.$onChangeMode),this.session.off(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.off(\"changeTabSize\",this.$onChangeTabSize),this.session.off(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.off(\"changeWrapMode\",this.$onChangeWrapMode),this.session.off(\"changeFold\",this.$onChangeFold),this.session.off(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.off(\"changeBackMarker\",this.$onChangeBackMarker),this.session.off(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.off(\"changeAnnotation\",this.$onChangeAnnotation),this.session.off(\"changeOverwrite\",this.$onCursorChange),this.session.off(\"changeScrollTop\",this.$onScrollTopChange),this.session.off(\"changeScrollLeft\",this.$onScrollLeftChange);var n=this.session.getSelection();n.off(\"changeCursor\",this.$onCursorChange),n.off(\"changeSelection\",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on(\"change\",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal(\"changeSession\",{session:e,oldSession:t}),this.curOp=null,t&&t._signal(\"changeEditor\",{oldEditor:this}),e&&e._signal(\"changeEditor\",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption(\"fontSize\")||i.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption(\"fontSize\",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,\"ace_bracket\",\"text\"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf(\"tag-open\")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value==\"<\"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),t.$tagHighlight||(t.$tagHighlight=t.addMarker(l,\"ace_bracket\",\"text\"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.isFocused()||e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal(\"change\",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!=\"line\"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,\"ace_active-line\",\"screenLine\"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal(\"changeBackMarker\"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,\"ace_selection\",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\\w\\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;i<r.length;i++){var s=r[i];if(i&&r[i-1].start.row==s.start.row)continue;e+=this.session.getLine(s.start.row)+t}}var o={text:e};return this._signal(\"copy\",o),b.lineMode=n?o.text:\"\",o.text},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec(\"paste\",this,n)},this.$handlePaste=function(e){typeof e==\"string\"&&(e={text:e}),this._signal(\"paste\",e);var t=e.text,n=t==b.lineMode,r=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?r.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){r.insert({row:e.start.row,column:0},t)});else{var i=t.split(/\\r\\n|\\r|\\n/),s=this.selection.rangeList.ranges;if(i.length>s.length||i.length<2||!i[1])return this.commands.exec(\"insertstring\",this,t);for(var o=s.length;o--;){var u=s[o];u.isEmpty()||r.remove(u),r.insert(u.start,i[o])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),\"insertion\",this,n,e);s&&(e!==s.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=s.text)}e==\"\t\"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf(\"\\n\")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e==\"\\n\"||e==\"\\r\\n\"){var u=n.getLine(i.row);if(i.column>u.search(/\\S|$/)){var a=u.substr(i.column).search(/\\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption(\"scrollSpeed\",e)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(e){this.setOption(\"dragDelay\",e)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(e){this.setOption(\"selectionStyle\",e)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(e){this.setOption(\"highlightActiveLine\",e)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(e){this.setOption(\"highlightSelectedWord\",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption(\"readOnly\",e)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(e){this.setOption(\"behavioursEnabled\",e)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(e){this.setOption(\"wrapBehavioursEnabled\",e)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(e){this.setOption(\"showFoldWidgets\",e)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(e){this.selection.isEmpty()&&(e==\"left\"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,\"deletion\",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]==\"\\n\"){var o=n.getLine(t.end.row);/^\\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(\" \",f);else{var f=a%u;while(i[t.start.column-1]==\" \"&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=\"\t\"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,\"\t\")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(\".\")>=0?s.start+s.value.indexOf(\".\")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={\")\":\"(\",\"(\":\"(\",\"]\":\"[\",\"[\":\"[\",\"{\":\"{\",\"}\":\"{\"};do{if(s.value.match(/[{}()\\[\\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+\".\"+s.type.replace(\"rparen\",\"lparen\"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case\"(\":case\"[\":case\"{\":a[l]++;break;case\")\":case\"]\":case\"}\":a[l]--,a[l]===-1&&(o=\"bracket\",u=!0)}}else s.type.indexOf(\"tag-name\")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value===\"<\"?a[s.value]++:i.value===\"</\"&&a[s.value]--,a[s.value]===-1&&(o=\"tag\",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o===\"bracket\"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o===\"tag\"){if(!s||s.type.indexOf(\"tag-name\")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf(\"tag-close\")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf(\"tag-name\")!==-1&&(i.value===\"<\"?a[v]++:i.value===\"</\"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf(\"tag-name\")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e==\"string\"||e instanceof RegExp?t.needle=e:typeof e==\"object\"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal(\"destroy\",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var i=this.$scrollAnchor;i.style.cssText=\"position:absolute\",this.container.insertBefore(i,this.container.firstChild);var s=this.on(\"changeSelection\",function(){r=!0}),o=this.renderer.on(\"beforeRender\",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on(\"afterRender\",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+\"px\",i.style.left=s.left+\"px\",i.style.height=o.lineHeight+\"px\",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off(\"changeSelection\",s),this.renderer.off(\"afterRender\",u),this.renderer.off(\"beforeRender\",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||\"ace\",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!=\"wide\",i.setCssClass(t.element,\"ace_slim-cursors\",/slim/.test(e))}}.call(w.prototype),g.defineOptions(w.prototype,\"editor\",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal(\"changeSelectionStyle\",{data:e})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:[\"ace\",\"slim\",\"smooth\",\"wide\"],initialValue:\"ace\"},mergeUndoDeltas:{values:[!1,!0,\"always\"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},hScrollBarAlwaysVisible:\"renderer\",vScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showLineNumbers:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",maxLines:\"renderer\",minLines:\"renderer\",scrollPastEnd:\"renderer\",fixedWidthGutter:\"renderer\",theme:\"renderer\",hasCssTransforms:\"renderer\",maxPixelHeight:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",dragEnabled:\"$mouseHandler\",focusTimeout:\"$mouseHandler\",tooltipFollowsMouse:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",navigateWithinSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",indentedSoftWrap:\"session\",foldStyle:\"session\",mode:\"session\"}),t.Editor=w}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n<t-1){var i=d(e[n],e[n+1]);e[n]=i[0],e[n+1]=i[1],n++}return!0}}}function a(e){var t=e.action==\"insert\",n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),s=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var o in this.marks){var a=this.marks[o],f=u(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:u(a,r);if(l>0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join(\"\\n\");var t=\"\";e.action?(t=e.action==\"insert\"?\"+\":\"-\",t+=\"[\"+e.lines+\"]\"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join(\"\\n\"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=\"\t(\"+(e.id||e.rev)+\")\";return t}function h(e){return e.start.row+\":\"+e.start.column+\"=>\"+e.end.row+\":\"+e.end.column}function p(e,t){var n=e.action==\"insert\",r=t.action==\"insert\";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r<t.length;r++)if(!p(e[n],t[r])){while(n<e.length){while(r--)p(t[r],e[n]);r=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function v(e,t){var n=e.action==\"insert\",r=t.action==\"insert\";if(n&&r)o(e.start,t.start)<0?m(t,e,1):m(e,t,1);else if(n&&!r)o(e.start,t.end)>=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i],o=v(s,t);t=o[0],o.length!=2&&(o[2]?(r.splice(i+1,1,o[1],o[2]),i++):o[1]||(r.splice(i,1),i--))}r.length||e.splice(n,1)}return e}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];for(var i=0;i<r.length;i++)b(e,r[i])}}var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,n){if(this.$fromUndo)return;if(e==this.$lastDelta)return;if(t===!1||!this.lastDeltas)this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev;if(e.action==\"remove\"||e.action==\"insert\")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id<t&&(i.ignore=!0)}this.lastDeltas=null},this.getSelection=function(e,t){var n=this.selections;for(var r=n.length;r--;){var i=n[r];if(i.rev<e)return t&&(i=n[r+1]),i}},this.getRevision=function(){return this.$rev},this.getDeltas=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack,r=null,i=0;for(var s=n.length;s--;){var o=n[s][0];o.id<t&&!r&&(r=s+1);if(o.id<=e){i=s+1;break}}return n.slice(i,r)},this.getChangedRanges=function(e,t){t==null&&(t=this.$rev+1)},this.getChangedLines=function(e,t){t==null&&(t=this.$rev+1)},this.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(!i(n,n.length))return;e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var r=n.pop(),s=null;return r&&r.length&&(s=e.undoChanges(r,t),this.$redoStack.push(r),this.$syncRev()),this.$fromUndo=!1,s},this.redo=function(e,t){this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0;if(this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var r=this.$redoStack.pop(),i=null;return r&&(i=e.redoChanges(r,t),this.$undoStack.push(r),this.$syncRev()),this.$fromUndo=!1,i},this.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+\"\\n---\\n\"+c(this.$redoStack)}}).call(r.prototype);var s=e(\"./range\").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/lang\"),o=e(\"../lib/event_emitter\").EventEmitter,u=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=e,e&&e.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||\"\",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u==\"error\"?i.className=\" ace_error\":u==\"warning\"&&i.className!=\" ace_error\"?i.className=\" ace_warning\":u==\"info\"&&!i.className&&(i.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action==\"remove\")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement(\"div\"),p.textNode=document.createTextNode(\"\"),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m=\"ace_gutter-cell \";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+\"px\";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement(\"span\"),p.element.appendChild(p.foldWidget));var m=\"ace_fold-widget ace_\"+y;y==\"start\"&&v==o&&v<s.end.row?m+=\" ace_closed\":m+=\" ace_open\",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+\"px\";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!==p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+\"px\";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer=\"\",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return\"\"},getText:function(){return\"\"}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,\"ace_folding-enabled\"):r.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return\"markers\";if(this.$showFoldWidgets&&e.x>n.right-t.right)return\"foldWidgets\"}}).call(u.prototype),t.Gutter=u}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../lib/dom\"),s=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*e.characterWidth);r.renderer(t,i,o,s,e)}else r.type==\"fullLine\"?this.drawFullLineMarker(t,i,r.clazz,e):r.type==\"screenLine\"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type==\"text\"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,r.clazz+\" ace_start\"+\" ace_br15\",e):this.drawSingleLineMarker(t,i,r.clazz+\" ace_start\"+\" ace_br15\",e)}this.element.innerHTML=t.join(\"\")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=null,v=new r(l,n.start.column,l,h);for(;l<=f;l++)v.start.row=v.end.row=l,v.start.column=l==a?n.start.column:u.getRowWrapIndent(l),v.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,d=i+(l==a?\" ace_start\":\"\")+\" ace_br\"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(t,v,d,s,l==f?0:1,o):this.drawSingleLineMarker(t,v,d,s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o,u,a;i=i||\"\";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+\" ace_br1 ace_start\",r,null,i)}else o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth,e.push(\"<div class='\",n,\" ace_br1 ace_start' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",a,\"px;\",i,\"'></div>\");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+\" ace_br12\",r,null,i)}else{var l=t.end.column*r.characterWidth;o=r.lineHeight,u=this.$getTop(t.end.row,r),e.push(\"<div class='\",n,\" ace_br12' style='\",\"height:\",o,\"px;\",\"width:\",l,\"px;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\")}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);e.push(\"<div class='\",n,c?\" ace_br\"+c:\"\",\"' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"width:\",u,\"px;\",\"top:\",a,\"px;\",\"left:\",f,\"px;\",s||\"\",\"'></div>\")},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(t){e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"width:\",t.width+(i||0),\"px;\",\"top:\",u,\"px;\",\"left:\",a+t.left,\"px;\",s||\"\",\"'></div>\")})},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")}}).call(s.prototype),t.Marker=s}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/useragent\"),u=e(\"../lib/event_emitter\").EventEmitter,a=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR=\"\\u00b6\",this.EOL_CHAR_LF=\"\\u00ac\",this.EOL_CHAR_CRLF=\"\\u00a4\",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR=\"\\u2014\",this.SPACE_CHAR=\"\\u00b7\",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()==\"\\n\"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding=\"0 \"+e+\"px\"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on(\"changeCharacterSize\",function(e){this._signal(\"changeCharacterSize\",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push(\"<span class='ace_invisible ace_invisible_tab'>\"+s.stringRepeat(this.TAB_CHAR,n)+\"</span>\"):t.push(s.stringRepeat(\" \",n));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var r=\"ace_indent-guide\",i=\"\",o=\"\";if(this.showInvisibles){r+=\" ace_invisible\",i=\" ace_invisible_space\",o=\" ace_invisible_tab\";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(\" \",this.tabSize),a=u;this.$tabStrings[\" \"]=\"<span class='\"+r+i+\"'>\"+u+\"</span>\",this.$tabStrings[\"\t\"]=\"<span class='\"+r+o+\"'>\"+a+\"</span>\"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+\"px\",l.innerHTML=c.join(\"\")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement(\"div\"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join(\"\");if(this.$useLineGroups())a.className=\"ace_line_group\",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+\"px\";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push(\"<div class='ace_line_group' style='height:\",e.lineHeight*this.session.getRowLength(i),\"px'>\"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push(\"</div>\"),i++}this.element.innerHTML=t.join(\"\")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?\"<span class='ace_invisible ace_invisible_space'>\"+s.stringRepeat(i.SPACE_CHAR,e.length)+\"</span>\":e;if(e==\"&\")return\"&#38;\";if(e==\"<\")return\"&#60;\";if(e==\">\")return\"&#62;\";if(e==\"\t\"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e==\"\\u3000\"){var f=i.showInvisibles?\"ace_cjk ace_invisible ace_invisible_space\":\"ace_cjk\",l=i.showInvisibles?i.SPACE_CHAR:\"\";return t+=1,\"<span class='\"+f+\"' style='width:\"+i.config.characterWidth*2+\"px'>\"+l+\"</span>\"}return r?\"<span class='ace_invisible ace_invisible_space ace_invalid'>\"+i.SPACE_CHAR+\"</span>\":(t+=1,\"<span class='ace_cjk' style='width:\"+i.config.characterWidth*2+\"px'>\"+e+\"</span>\")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f=\"ace_\"+n.type.replace(/\\./g,\" ace_\"),l=\"\";n.type==\"fold\"&&(l=\" style='width:\"+n.value.length*this.config.characterWidth+\"px;' \"),e.push(\"<span class='\",f,\"'\",l,\">\",a,\"</span>\")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==\" \"?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[\" \"],r/this.tabSize)),t.substr(r)):t[0]==\"\t\"?(e.push(s.stringRepeat(this.$tabStrings[\"\t\"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push(\"</div>\",\"<div class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),e.push(s.stringRepeat(\"\\u00a0\",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++){r=t[s],i=r.value;if(n+i.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,i);n=this.$renderToken(e,n,r,i)}},this.$renderOverflowMessage=function(e,t,n,r){this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t)),e.push(\"<span style='position:absolute;right:0' class='ace_inline_button ace_keyword ace_toggle_wrap'>&lt;click to see more...&gt;</span>\")},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push(\"<div class='ace_line' style='height:\",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),\"px'>\");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push(\"<span class='ace_invisible ace_invisible_eol'>\",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"</span>\")),n||e.push(\"</div>\")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:\"fold\",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i,s=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",e.appendChild(this.element),i===undefined&&(i=!(\"opacity\"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,\"ace_hidden-cursors\"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?\"\":\"hidden\"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?\"\":\"0\"},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+\"ms\";setTimeout(function(){r.addCssClass(this.element,\"ace_animate-blinking\")}.bind(this))},this.$stopCssAnimation=function(){r.removeCssClass(this.element,\"ace_animate-blinking\")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,\"ace_smooth-blinking\",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement(\"div\");return e.className=\"ace_cursor\",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&r.removeCssClass(this.element,\"ace_smooth-blinking\"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+\"px\",o.top=s.top+\"px\",o.width=e.characterWidth+\"px\",o.height=e.lineHeight+\"px\")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,\"ace_overwrite-cursors\"):r.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/event\"),o=e(\"./lib/event_emitter\").EventEmitter,u=32768,a=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_scrollbar ace_scrollbar\"+this.classSuffix,this.inner=i.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,\"scroll\",this.onScroll.bind(this)),s.addListener(this.element,\"mousedown\",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?\"\":\"none\",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+\"px\",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix=\"-v\",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit(\"scroll\",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+\"px\"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+\"px\"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+\"px\"};r.inherits(l,a),function(){this.classSuffix=\"-h\",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit(\"scroll\",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+\"px\"},this.setInnerWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"./lib/event\"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(this.changes){var t=this;r.nextFrame(function(e){var n=t.changes;n&&(r.blockIdle(100),t.changes=0,t.onRender(n)),t.changes&&t.schedule()})}}}).call(i.prototype),t.RenderLoop=i}),ace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/event\"),u=e(\"../lib/useragent\"),a=e(\"../lib/event_emitter\").EventEmitter,f=256,l=typeof ResizeObserver==\"function\",c=200,h=t.FontMetrics=function(e){this.el=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.innerHTML=s.stringRepeat(\"X\",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height=\"auto\",e.left=e.top=\"0px\",e.visibility=\"hidden\",e.position=\"absolute\",e.whiteSpace=\"pre\",u.isIE<8?e[\"font-family\"]=\"inherit\":e.font=\"inherit\",e.overflow=t?\"hidden\":\"visible\"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight=\"bold\";var t=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit(\"changeCharacterSize\",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){var n=t[0].contentRect;e.checkForSizeChanges({height:n.height,width:n.width/f})}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return[\"div\",{style:\"position: absolute;top:\"+e+\"px;left:\"+t+\"px;\"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./config\"),o=e(\"./lib/useragent\"),u=e(\"./layer/gutter\").Gutter,a=e(\"./layer/marker\").Marker,f=e(\"./layer/text\").Text,l=e(\"./layer/cursor\").Cursor,c=e(\"./scrollbar\").HScrollBar,h=e(\"./scrollbar\").VScrollBar,p=e(\"./renderloop\").RenderLoop,d=e(\"./layer/font_metrics\").FontMetrics,v=e(\"./lib/event_emitter\").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \\'Monaco\\', \\'Menlo\\', \\'Ubuntu Mono\\', \\'Consolas\\', \\'source-code-pro\\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \\'\\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}[ace_nocontext=true] {transform: none!important;filter: none!important;perspective: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\");}.ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}';i.importCssString(m,\"ace_editor.css\");var g=function(e,t){var n=this;this.container=e||i.createElement(\"div\"),i.addCssClass(this.container,\"ace_editor\"),this.setTheme(t),this.$gutter=i.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.$gutter.setAttribute(\"aria-hidden\",!0),this.scroller=i.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=i.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener(\"changeCharacterSize\",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal(\"changeCharacterSize\",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off(\"changeNewLineMode\",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on(\"changeNewLineMode\",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+\"px\",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+\"px\",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+\"px\",this.scroller.style.bottom=this.scrollBarH.getHeight()+\"px\";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal(\"resize\",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption(\"animatedScroll\",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption(\"showInvisibles\",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(e){this.setOption(\"displayIndentGuides\",e)},this.setShowPrintMargin=function(e){this.setOption(\"showPrintMargin\",e)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(e){this.setOption(\"printMarginColumn\",e)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(e){return this.setOption(\"showGutter\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=t+\"px\"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement(\"div\");e.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=i.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+\"px\",t.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){var e=this.textarea.style;if(!this.$keepTextAreaAtCursor){e.left=\"-100px\";return}var t=this.layerConfig,n=this.$cursorLayer.$pixelPos.top,r=this.$cursorLayer.$pixelPos.left;n-=t.offset;var i=this.lineHeight;if(n<0||n>t.height-i){e.top=e.left=\"0\";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\\x01+/,\"\");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}r-=this.scrollLeft,r>this.$size.scrollerWidth-s&&(r=this.$size.scrollerWidth-s),r+=this.gutterWidth,e.height=i+\"px\",e.width=s+\"px\",e.left=Math.min(r,this.$size.scrollerWidth-s)+\"px\",e.top=Math.min(n,this.$size.height-i)+\"px\"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption(\"hScrollBarAlwaysVisible\",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption(\"vScrollBarAlwaysVisible\",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal(\"beforeRender\"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+\"px\",this.content.style.marginTop=-n.offset+\"px\",this.content.style.width=n.width+2*this.$padding+\"px\",this.content.style.height=n.minHeight+\"px\"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+\"px\",this.scroller.className=this.scrollLeft<=0?\"ace_scroller\":\"ace_scroller ace_scroll-left\");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal(\"afterRender\");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal(\"afterRender\")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+\"px\",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal(\"autosize\")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal(\"scrollbarVisibilityChanged\"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:w?Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e==\"number\"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){i.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error(\"couldn't load module \"+e+\" or it didn't call define\");r.$id&&(n.$themeId=r.$id),i.importCssString(r.cssText,r.cssClass,n.container),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s=\"padding\"in r?r.padding:\"padding\"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,\"ace_dark\",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent(\"themeLoaded\",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent(\"themeChange\",{theme:e});if(!e||typeof e==\"string\"){var r=e||this.$options.theme.initialValue;s.loadModule([\"theme\",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.attachToShadowRoot=function(){i.importCssString(m,\"ace_editor.css\",this.container)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e==\"number\"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?\"block\":\"none\",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e==\"number\"&&(e+=\"px\"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:\"./theme/textmate\",handlesSet:!0},hasCssTransforms:{}}),t.VirtualRenderer=g}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"],function(e,t,n){\"use strict\";function u(e){var t=\"importScripts('\"+i.qualifyURL(e)+\"');\";try{return new Blob([t],{type:\"application/javascript\"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob(\"application/javascript\")}}function a(e){if(typeof Worker==\"undefined\")return{postMessage:function(){},terminate:function(){}};var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}var r=e(\"../lib/oop\"),i=e(\"../lib/net\"),s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../config\"),f=function(t,n,r,i,s){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get(\"packaged\")||!e.toUrl)i=i||o.moduleUrl(n,\"worker\");else{var u=this.$normalizePath;i=i||u(e.toUrl(\"ace/worker/worker.js\",null,\"_\"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}this.$worker=a(i),s&&this.send(\"importScripts\",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case\"event\":this._signal(t.name,{data:t.data});break;case\"call\":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case\"error\":this.reportError(t.data);break;case\"log\":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal(\"terminate\",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off(\"change\",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call(\"setValue\",[e.getValue()]),e.on(\"change\",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action==\"insert\"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call(\"setValue\",[this.$doc.getValue()]):this.emit(\"change\",{data:e})}}).call(f.prototype);var l=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:\"call\",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:\"event\",name:e,data:t})},o.loadModule([\"worker\",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};l.prototype=f.prototype,t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/oop\"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action===\"insert\"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action===\"insert\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action===\"remove\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",e)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?\"block\":\"add\":n&&l.$blockSelectEnabled&&(S=\"block\");else if(a&&!n){S=\"add\";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S=\"block\");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S==\"add\"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once(\"mouseup\",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.inVirtualSelectionMode=!1})}else if(S==\"block\"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers()};h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\");t.onMouseDown=o}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(e,t,n){t.defaultCommands=[{name:\"addCursorAbove\",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelow\",exec:function(e){e.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreBefore\",exec:function(e){e.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreAfter\",exec:function(e){e.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextBefore\",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextAfter\",exec:function(e){e.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"splitIntoLines\",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readOnly:!0},{name:\"alignCursors\",exec:function(e){e.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"},scrollIntoView:\"cursor\"},{name:\"findAll\",exec:function(e){e.findAll()},bindKey:{win:\"Ctrl-Alt-K\",mac:\"Ctrl-Alt-G\"},scrollIntoView:\"cursor\",readOnly:!0}],t.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:\"cursor\",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e(\"../keyboard/hash_handler\").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on(\"changeSession\",e.$multiselectOnSessionChange),e.on(\"mousedown\",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(\"\"),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,\"keydown\",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor(\"crosshair\"),n=!0):n&&r()}),u.addListener(t,\"keyup\",r),u.addListener(t,\"blur\",r)}var r=e(\"./range_list\").RangeList,i=e(\"./range\").Range,s=e(\"./selection\").Selection,o=e(\"./mouse/multi_select_handler\").onMouseDown,u=e(\"./lib/event\"),a=e(\"./lib/lang\"),f=e(\"./commands/multi_select_commands\");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e(\"./search\").Search,c=new l,p=e(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal(\"addRange\",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal(\"removeRange\",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);var p;for(var d=c;d<=h;d++){var m=i.fromPoints(this.session.screenToDocumentPosition(d,o,a),this.session.screenToDocumentPosition(d,u,f));if(m.isEmpty()){if(p&&v(m.end,p))break;p=m.end}m.cursor=s?m.start:m.end,r.push(m)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,\"ace_selection\",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit(\"changeSelection\")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction==\"forEach\"?r=n.forEachSelection(t,e.args):t.multiSelectAction==\"forEachLine\"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction==\"single\"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e=\"\";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e=\"\")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join(\"\\n\")+\"\\n\"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(\" \",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(\" \",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off(\"addRange\",this.$onAddRange),n.multiSelect.off(\"removeRange\",this.$onRemoveRange),n.multiSelect.off(\"multiSelect\",this.$onMultiSelect),n.multiSelect.off(\"singleSelect\",this.$onSingleSelect),n.multiSelect.lead.off(\"change\",this.$checkMultiselectChange),n.multiSelect.anchor.off(\"change\",this.$checkMultiselectChange)),t&&(t.multiSelect.on(\"addRange\",this.$onAddRange),t.multiSelect.on(\"removeRange\",this.$onRemoveRange),t.multiSelect.on(\"multiSelect\",this.$onMultiSelect),t.multiSelect.on(\"singleSelect\",this.$onSingleSelect),t.multiSelect.lead.on(\"change\",this.$checkMultiselectChange),t.multiSelect.anchor.on(\"change\",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e(\"./config\").defineOptions(d.prototype,\"editor\",{enableMultiselect:{set:function(e){m(this),e?(this.on(\"changeSession\",this.$multiselectOnSessionChange),this.on(\"mousedown\",o)):(this.off(\"changeSession\",this.$multiselectOnSessionChange),this.off(\"mousedown\",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../range\").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?\"start\":t==\"markbeginend\"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?\"end\":\"\"},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a==\"start\"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.$id=\"ace/theme/textmate\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on(\"change\",this.updateOnChange),this.session.on(\"changeFold\",this.updateOnFold),this.session.on(\"changeEditor\",this.$onChangeEditor)}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./range\").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on(\"beforeRender\",this.measureWidgets),e.renderer.on(\"afterRender\",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off(\"beforeRender\",this.measureWidgets),t.renderer.off(\"afterRender\",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action==\"add\";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action==\"remove\"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement(\"div\"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,\"ace_lineWidgetContainer\"),e.el.style.position=\"absolute\",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit(\"changeFold\",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+\"px\";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+\"px\";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+\"px\",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+\"px\"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+\"px\":u.el.style.right=\"\"}}}).call(o.prototype),t.LineWidgets=o}),ace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?\"unshift\":\"push\"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e(\"../line_widgets\").LineWidgets,i=e(\"../lib/dom\"),s=e(\"../range\").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type==\"errorMarker\"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!=\"number\"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:[\"Looks good!\"],className:\"ace_ok\"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement(\"div\"),type:\"errorMarker\"},p=h.el.appendChild(i.createElement(\"div\")),d=h.el.appendChild(i.createElement(\"div\"));d.className=\"error_widget_arrow \"+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+\"px\",h.el.className=\"error_widget_wrapper\",p.className=\"error_widget \"+l.className,p.innerHTML=l.text.join(\"<br>\"),p.appendChild(i.createElement(\"div\"));var m=function(e,t,n){if(t===0&&(n===\"esc\"||n===\"return\"))return h.destroy(),{command:\"null\"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off(\"changeSelection\",h.destroy),e.off(\"changeSession\",h.destroy),e.off(\"mouseup\",h.destroy),e.off(\"change\",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on(\"changeSelection\",h.destroy),e.on(\"changeSession\",h.destroy),e.on(\"mouseup\",h.destroy),e.on(\"change\",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(\"    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }\",\"\")}),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/dom\"),i=e(\"./lib/event\"),s=e(\"./range\").Range,o=e(\"./editor\").Editor,u=e(\"./edit_session\").EditSession,a=e(\"./undomanager\").UndoManager,f=e(\"./virtual_renderer\").VirtualRenderer;e(\"./worker/worker_client\"),e(\"./keyboard/hash_handler\"),e(\"./placeholder\"),e(\"./multi_select\"),e(\"./mode/folding/fold_mode\"),e(\"./theme/textmate\"),e(\"./ext/error_marker\"),t.config=e(\"./config\"),t.require=e,typeof define==\"function\"&&(t.define=define),t.edit=function(e,n){if(typeof e==\"string\"){var s=e;e=document.getElementById(s);if(!e)throw new Error(\"ace.edit can't find div #\"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u=\"\";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement(\"pre\"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML=\"\");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,\"resize\",h.onResize),c.on(\"destroy\",function(){i.removeListener(window,\"resize\",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=\"1.3.3\"});\n            (function() {\n                ace.require([\"ace/ace\"], function(a) {\n                    if (a) {\n                        a.config.init(true);\n                        a.define = ace.define;\n                    }\n                    if (!window.ace)\n                        window.ace = a;\n                    for (var key in a) if (a.hasOwnProperty(key))\n                        window.ace[key] = a[key];\n                    window.ace[\"default\"] = window.ace;\n                    if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                        module.exports = window.ace;\n                    }\n                });\n            })();\n        "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-elastic_tabstops_lite.js",
    "content": "ace.define(\"ace/ext/elastic_tabstops_lite\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=function(e){this.$editor=e;var t=this,n=[],r=!1;this.onAfterExec=function(){r=!1,t.processRows(n),n=[]},this.onExec=function(){r=!0},this.onChange=function(e){r&&(n.indexOf(e.start.row)==-1&&n.push(e.start.row),e.end.row!=e.start.row&&n.push(e.end.row))}};(function(){this.processRows=function(e){this.$inChange=!0;var t=[];for(var n=0,r=e.length;n<r;n++){var i=e[n];if(t.indexOf(i)>-1)continue;var s=this.$findCellWidthsForBlock(i),o=this.$setBlockCellWidthsToMax(s.cellWidths),u=s.firstRow;for(var a=0,f=o.length;a<f;a++){var l=o[a];t.push(u),this.$adjustRow(u,l),u++}}this.$inChange=!1},this.$findCellWidthsForBlock=function(e){var t=[],n,r=e;while(r>=0){n=this.$cellWidthsForRow(r);if(n.length==0)break;t.unshift(n),r--}var i=r+1;r=e;var s=this.$editor.session.getLength();while(r<s-1){r++,n=this.$cellWidthsForRow(r);if(n.length==0)break;t.push(n)}return{cellWidths:t,firstRow:i}},this.$cellWidthsForRow=function(e){var t=this.$selectionColumnsForRow(e),n=[-1].concat(this.$tabsForRow(e)),r=n.map(function(e){return 0}).slice(1),i=this.$editor.session.getLine(e);for(var s=0,o=n.length-1;s<o;s++){var u=n[s]+1,a=n[s+1],f=this.$rightmostSelectionInCell(t,a),l=i.substring(u,a);r[s]=Math.max(l.replace(/\\s+$/g,\"\").length,f-u)}return r},this.$selectionColumnsForRow=function(e){var t=[],n=this.$editor.getCursorPosition();return this.$editor.session.getSelection().isEmpty()&&e==n.row&&t.push(n.column),t},this.$setBlockCellWidthsToMax=function(e){var t=!0,n,r,i,s=this.$izip_longest(e);for(var o=0,u=s.length;o<u;o++){var a=s[o];if(!a.push){console.error(a);continue}a.push(NaN);for(var f=0,l=a.length;f<l;f++){var c=a[f];t&&(n=f,i=0,t=!1);if(isNaN(c)){r=f;for(var h=n;h<r;h++)e[h][o]=i;t=!0}i=Math.max(i,c)}}return e},this.$rightmostSelectionInCell=function(e,t){var n=0;if(e.length){var r=[];for(var i=0,s=e.length;i<s;i++)e[i]<=t?r.push(i):r.push(0);n=Math.max.apply(Math,r)}return n},this.$tabsForRow=function(e){var t=[],n=this.$editor.session.getLine(e),r=/\\t/g,i;while((i=r.exec(n))!=null)t.push(i.index);return t},this.$adjustRow=function(e,t){var n=this.$tabsForRow(e);if(n.length==0)return;var r=0,i=-1,s=this.$izip(t,n);for(var o=0,u=s.length;o<u;o++){var a=s[o][0],f=s[o][1];i+=1+a,f+=r;var l=i-f;if(l==0)continue;var c=this.$editor.session.getLine(e).substr(0,f),h=c.replace(/\\s*$/g,\"\"),p=c.length-h.length;l>0&&(this.$editor.session.getDocument().insertInLine({row:e,column:f+1},Array(l+1).join(\" \")+\"\t\"),this.$editor.session.getDocument().removeInLine(e,f,f+1),r+=l),l<0&&p>=-l&&(this.$editor.session.getDocument().removeInLine(e,f+l,f),r+=l)}},this.$izip_longest=function(e){if(!e[0])return[];var t=e[0].length,n=e.length;for(var r=1;r<n;r++){var i=e[r].length;i>t&&(t=i)}var s=[];for(var o=0;o<t;o++){var u=[];for(var r=0;r<n;r++)e[r][o]===\"\"?u.push(NaN):u.push(e[r][o]);s.push(u)}return s},this.$izip=function(e,t){var n=e.length>=t.length?t.length:e.length,r=[];for(var i=0;i<n;i++){var s=[e[i],t[i]];r.push(s)}return r}}).call(r.prototype),t.ElasticTabstopsLite=r;var i=e(\"../editor\").Editor;e(\"../config\").defineOptions(i.prototype,\"editor\",{useElasticTabstops:{set:function(e){e?(this.elasticTabstops||(this.elasticTabstops=new r(this)),this.commands.on(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.on(\"exec\",this.elasticTabstops.onExec),this.on(\"change\",this.elasticTabstops.onChange)):this.elasticTabstops&&(this.commands.removeListener(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.removeListener(\"exec\",this.elasticTabstops.onExec),this.removeListener(\"change\",this.elasticTabstops.onChange))}}})});\n                (function() {\n                    ace.require([\"ace/ext/elastic_tabstops_lite\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-error_marker.js",
    "content": ";\n                (function() {\n                    ace.require([\"ace/ext/error_marker\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-keybinding_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 100000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {vertical-align: middle;}.ace_optionsMenuEntry button[ace_selected_button=true] {background: #e7e7e7;box-shadow: 1px 0px 2px 0px #adadad inset;border-color: #adadad;}.ace_optionsMenuEntry button {background: white;border: 1px solid lightgray;margin: 0px;}.ace_optionsMenuEntry button:hover{background: #f0f0f0;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/keys\");n.exports.getEditorKeybordShortcuts=function(e){var t=r.KEY_MODS,n=[],i={};return e.keyBinding.$handlers.forEach(function(e){var t=e.commandKeyBinding;for(var r in t){var s=r.replace(/(^|-)\\w/g,function(e){return e.toUpperCase()}),o=t[r];Array.isArray(o)||(o=[o]),o.forEach(function(e){typeof e!=\"string\"&&(e=e.name),i[e]?i[e].key+=\"|\"+s:(i[e]={key:s,command:e},n.push(i[e]))})}}),n}}),ace.define(\"ace/ext/keybinding_menu\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/ext/menu_tools/overlay_page\",\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\"],function(e,t,n){\"use strict\";function i(t){if(!document.getElementById(\"kbshortcutmenu\")){var n=e(\"./menu_tools/overlay_page\").overlayPage,r=e(\"./menu_tools/get_editor_keyboard_shortcuts\").getEditorKeybordShortcuts,i=r(t),s=document.createElement(\"div\"),o=i.reduce(function(e,t){return e+'<div class=\"ace_optionsMenuEntry\"><span class=\"ace_optionsMenuCommand\">'+t.command+\"</span> : \"+'<span class=\"ace_optionsMenuKey\">'+t.key+\"</span></div>\"},\"\");s.id=\"kbshortcutmenu\",s.innerHTML=\"<h1>Keyboard Shortcuts</h1>\"+o+\"</div>\",n(t,s,\"0\",\"0\",\"0\",null)}}var r=e(\"ace/editor\").Editor;n.exports.init=function(e){r.prototype.showKeyboardShortcuts=function(){i(this)},e.commands.addCommands([{name:\"showKeyboardShortcuts\",bindKey:{win:\"Ctrl-Alt-h\",mac:\"Command-Alt-h\"},exec:function(e,t){e.showKeyboardShortcuts()}}])}});\n                (function() {\n                    ace.require([\"ace/ext/keybinding_menu\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-language_tools.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/lang\"),o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=e(\"./keyboard/hash_handler\").HashHandler,f=e(\"./tokenizer\").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\\n\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:e},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+t(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(\",\")},next:\"start\"},{regex:\"/(\"+t(\"/\")+\"+)/(?:(\"+t(\"/\")+\"*)/)(\\\\w*):?\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],\"\"},next:\"start\"},{regex:\"`\"+t(\"`\")+\"*`\",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),\"\"},next:\"start\"},{regex:\"\\\\?\",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:\"start\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:\"/(\"+t(\"/\")+\"+)/\",token:\"regex\"},{regex:\"\",onMatch:function(e,t,n){n.inFormatString=!0},next:\"start\"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+\"__\"]||{})[n]}if(/^\\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,\"\");if(!e)return;var r=e.session;switch(t){case\"CURRENT_WORD\":var i=r.getWordRange();case\"SELECTION\":case\"SELECTED_TEXT\":return r.getTextRange(i);case\"CURRENT_LINE\":return r.getLine(e.getCursorPosition().row);case\"PREV_LINE\":return r.getLine(e.getCursorPosition().row-1);case\"LINE_INDEX\":return e.getCursorPosition().column;case\"LINE_NUMBER\":return e.getCursorPosition().row+1;case\"SOFT_TABS\":return r.getUseSoftTabs()?\"YES\":\"NO\";case\"TAB_SIZE\":return r.getTabSize();case\"FILENAME\":case\"FILEPATH\":return\"\";case\"FULLNAME\":return\"Ace\"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||\"\":this.$getDefaultValue(e,t)||\"\"},this.tmStrFormat=function(e,t,n){var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,\"\"));var s=this.tokenizeTmSnippet(t.fmt,\"formatString\"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t=\"E\";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"object\"){e[r]=\"\";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u==\"string\"&&(i.changeCase==\"u\"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t==\"U\"?e[r]=i.toUpperCase():t==\"L\"&&(e[r]=i.toLowerCase())}return e.join(\"\")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"string\")n.push(i);else{if(typeof i!=\"object\")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column)),t=t.replace(/\\r/g,\"\");var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e==\"\\n\"?e+s:typeof e==\"string\"?e.replace(/\\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value=\"\");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e==\"object\"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!=\"object\")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value==\"string\"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b=\"\";o.forEach(function(e){if(typeof e==\"string\"){var t=e.split(\"\\n\");t.length>1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal(\"registerSnippets\",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener(\"change\",this.$onChange),this.editor.removeListener(\"changeSelection\",this.$onChangeSelection),this.editor.removeListener(\"changeSession\",this.$onChangeSession),this.editor.commands.removeListener(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]==\"r\",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e(\"./lib/dom\").importCssString(\".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}\"),t.snippetManager=new c;var m=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../virtual_renderer\").VirtualRenderer,i=e(\"../editor\").Editor,s=e(\"../range\").Range,o=e(\"../lib/event\"),u=e(\"../lib/lang\"),a=e(\"../lib/dom\"),f=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n},l=function(e){var t=a.createElement(\"div\"),n=new f(t);e&&e.appendChild(t),t.style.display=\"none\",n.renderer.content.style.cursor=\"default\",n.renderer.setStyle(\"ace_autocomplete\"),n.setOption(\"displayIndentGuides\",!1),n.setOption(\"dragDelay\",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(\"\"),n.session.$searchHighlight.clazz=\"ace_highlight-marker\",n.on(\"mousedown\",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),c.start.row=c.end.row=t.row,e.stop()});var i,l=new s(-1,0,-1,Infinity),c=new s(-1,0,-1,Infinity);c.id=n.session.addMarker(c,\"ace_active-line\",\"fullLine\"),n.setSelectOnHover=function(e){e?l.id&&(n.session.removeMarker(l.id),l.id=null):l.id=n.session.addMarker(l,\"ace_line-hover\",\"fullLine\")},n.setSelectOnHover(!1),n.on(\"mousemove\",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;l.start.row!=t&&(l.id||n.setRow(t),p(t))}),n.renderer.on(\"beforeRender\",function(){if(i&&l.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;l.id||n.setRow(e),p(e,!0)}}),n.renderer.on(\"afterRender\",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];if(r==t.selectedNode)return;t.selectedNode&&a.removeCssClass(t.selectedNode,\"ace_selected\"),t.selectedNode=r,r&&a.addCssClass(r,\"ace_selected\")});var h=function(){p(-1)},p=function(e,t){e!==l.start.row&&(l.start.row=l.end.row=e,t||n.session._emit(\"changeBackMarker\"),n._emit(\"changeHoverMarker\"))};n.getHoveredRow=function(){return l.start.row},o.addListener(n.container,\"mouseout\",h),n.on(\"hide\",h),n.on(\"changeSelection\",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t==\"string\"?t:t&&t.value||\"\"};var d=n.session.bgTokenizer;return d.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;typeof t==\"string\"&&(t={value:t}),t.caption||(t.caption=t.value||t.name);var i=-1,s,o;for(var u=0;u<t.caption.length;u++)o=t.caption[u],s=t.matchMask&1<<u?1:0,i!==s?(r.push({type:t.className||\"\"+(s?\"completion-highlight\":\"\"),value:o}),i=s):r[r.length-1].value+=o;if(t.meta){var a=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth,f=t.meta;f.length+t.caption.length>a-2&&(f=f.substr(0,a-t.caption.length-3)+\"\\u2026\"),r.push({type:\"rightAlignedText\",value:f})}return r},d.$updateOnChange=r,d.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.isOpen=!1,n.isTopdown=!1,n.autoSelect=!0,n.data=[],n.setData=function(e){n.setValue(u.stringRepeat(\"\\n\",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return c.start.row},n.setRow=function(e){e=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,e)),c.start.row!=e&&(n.selection.clearSelection(),c.start.row=c.end.row=e||0,n.session._emit(\"changeBackMarker\"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal(\"select\"))},n.on(\"changeSelection\",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display=\"none\",this._signal(\"hide\"),n.isOpen=!1},n.show=function(e,t,r){var s=this.container,o=window.innerHeight,u=window.innerWidth,a=this.renderer,f=a.$maxLines*t*1.4,l=e.top+this.$borderSize,c=l>o/2&&!r;c&&l+t+f>o?(a.$maxPixelHeight=l-2*this.$borderSize,s.style.top=\"\",s.style.bottom=o-l+\"px\",n.isTopdown=!1):(l+=t,a.$maxPixelHeight=o-l-.2*t,s.style.top=l+\"px\",s.style.bottom=\"\",n.isTopdown=!0),s.style.display=\"\",this.renderer.$textLayer.checkForSizeChanges();var h=e.left;h+s.offsetWidth>u&&(h=u-s.offsetWidth),s.style.left=h+\"px\",this._signal(\"show\"),i=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};a.importCssString(\".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover {    position: absolute;    z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller {   background: none;   border: none;   box-shadow: none;}.ace_rightAlignedText {    color: gray;    display: inline-block;    position: absolute;    right: 4px;    text-align: right;    z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #000;    text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete {    width: 280px;    z-index: 200000;    background: #fbfbfb;    color: #444;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;}\"),t.AcePopup=l}),ace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\\$\\-\\u00A2-\\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join(\"\")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i},t.getCompletionPrefix=function(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=this.retrievePrecedingIdentifier(n,t.column,e))}.bind(this))}.bind(this)),r||this.retrievePrecedingIdentifier(n,t.column)}}),ace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\"],function(e,t,n){\"use strict\";var r=e(\"./keyboard/hash_handler\").HashHandler,i=e(\"./autocomplete/popup\").AcePopup,s=e(\"./autocomplete/util\"),o=e(\"./lib/event\"),u=e(\"./lib/lang\"),a=e(\"./lib/dom\"),f=e(\"./snippets\").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=u.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=u.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new i(document.body||document.documentElement),this.popup.on(\"click\",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on(\"show\",this.tooltipTimer.bind(null,null)),this.popup.on(\"select\",this.tooltipTimer.bind(null,null)),this.popup.on(\"changeHoverMarker\",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.autoSelect=this.autoSelect,this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;this.popup.setRow(this.autoSelect?0:-1);if(!n){this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var i=r.layerConfig.lineHeight,s=r.$cursorLayer.getPixelPosition(this.base,!0);s.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();s.top+=o.top-r.layerConfig.offset,s.left+=o.left-e.renderer.scrollLeft,s.left+=r.gutterWidth,this.popup.show(s,i)}else n&&!t&&this.detach()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off(\"changeSelection\",this.changeListener),this.editor.off(\"blur\",this.blurListener),this.editor.off(\"mousedown\",this.mousedownListener),this.editor.off(\"mousewheel\",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(e.relatedTarget),i=this.popup&&this.popup.container;t!=n&&t.parentNode!=i&&!r&&t!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case\"up\":t=t<=0?n:t-1;break;case\"down\":t=t>=n?-1:t+1;break;case\"start\":t=0;break;case\"end\":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText){var n=this.editor.selection.getAllRanges();for(var r=0,i;i=n[r];r++)i.start.column-=this.completions.filterText.length,this.editor.session.remove(i)}e.snippet?f.insertSnippet(this.editor,e.snippet):this.editor.execCommand(\"insertstring\",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo(\"up\")},Down:function(e){e.completer.goTo(\"down\")},\"Ctrl-Up|Ctrl-Home\":function(e){e.completer.goTo(\"start\")},\"Ctrl-Down|Ctrl-End\":function(e){e.completer.goTo(\"end\")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},\"Shift-Return\":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo(\"down\")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=s.getCompletionPrefix(e);this.base=n.doc.createAnchor(r.row,r.column-i.length),this.base.$insertRight=!0;var o=[],u=e.completers.length;return e.completers.forEach(function(a,f){a.getCompletions(e,n,r,i,function(n,r){!n&&r&&(o=o.concat(r)),t(null,{prefix:s.getCompletionPrefix(e),matches:o,finished:--u===0})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on(\"changeSelection\",this.changeListener),e.on(\"blur\",this.blurListener),e.on(\"mousedown\",this.mousedownListener),e.on(\"mousewheel\",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;this.completions.setFilter(n);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==n&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,n,e);return}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var i=function(){if(!n.finished)return;return this.detach()}.bind(this),s=n.prefix,o=n&&n.matches;if(!o||!o.length)return i();if(s.indexOf(n.prefix)!==0||r!=this.gatherCompletionsId)return;this.completions=new c(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(s);var u=this.completions.filtered;if(!u.length)return i();if(u.length==1&&u[0].value==s&&!u[0].snippet)return i();if(this.autoInsert&&u.length==1&&n.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,s,e)}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),typeof r==\"string\"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=a.createElement(\"div\"),this.tooltipNode.className=\"ace_tooltip ace_doc-tooltip\",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents=\"auto\",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,t.style.display=\"block\",window.innerWidth-r.right<320?r.left<320?n.isTopdown?(t.style.top=r.bottom+\"px\",t.style.left=r.left+\"px\",t.style.right=\"\",t.style.bottom=\"\"):(t.style.top=n.container.offsetTop-t.offsetHeight+\"px\",t.style.left=r.left+\"px\",t.style.right=\"\",t.style.bottom=\"\"):(t.style.right=window.innerWidth-r.left+\"px\",t.style.left=\"\"):(t.style.left=r.right+1+\"px\",t.style.right=\"\")},this.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)},this.onTooltipClick=function(e){var t=e.target;while(t&&t!=this.tooltipNode){if(t.nodeName==\"A\"&&t.href){t.rel=\"noreferrer\",t.target=\"_blank\";break}t=t.parentNode}}}).call(l.prototype),l.startCommand={name:\"startAutocomplete\",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:\"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"};var c=function(e,t){this.all=e,this.filtered=e,this.filterText=t||\"\",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.value||o.caption||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else{var p;if((p=u.toLowerCase().indexOf(i))>-1)for(var d=p;d<p+i.length;d++)f|=1<<d;else for(var v=0;v<t.length;v++){var m=u.indexOf(i[v],a+1),g=u.indexOf(r[v],a+1);c=m>=0?g<0||m<g?m:g:g;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h),f|=1<<c,a=c}}o.matchMask=f,o.exactMatch=l?0:1,o.score=(o.score||0)-l,n.push(o)}return n}}).call(c.prototype),t.Autocomplete=l,t.FilteredList=c}),ace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e(\"../range\").Range,i=/[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:\"local\"}}))}}),ace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../snippets\").snippetManager,i=e(\"../autocomplete\").Autocomplete,s=e(\"../config\"),o=e(\"../lib/lang\"),u=e(\"../autocomplete/util\"),a=e(\"../autocomplete/text_completer\"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);i(null,o)}},l={getCompletions:function(e,t,n,i,s){var o=r.snippetMap,u=[];r.getActiveScopes(e).forEach(function(e){var t=o[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;u.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+\"\\u21e5 \":\"snippet\",type:\"snippet\"})}},this),s(null,u)},getDocTooltip:function(e){e.type==\"snippet\"&&!e.docHTML&&(e.docHTML=[\"<b>\",o.escapeHTML(e.caption),\"</b>\",\"<hr></hr>\",o.escapeHTML(e.snippet)].join(\"\"))}},c=[l,a,f];t.setCompleters=function(e){c.length=0,e&&c.push.apply(c,e)},t.addCompleter=function(e){c.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=l;var h={name:\"expandSnippet\",exec:function(e){return r.expandWithTab(e)},bindKey:\"Tab\"},p=function(e,t){d(t.session.$mode)},d=function(e){var t=e.$id;r.files||(r.files={}),v(t),e.modes&&e.modes.forEach(d)},v=function(e){if(!e||r.files[e])return;var t=e.replace(\"mode\",\"snippets\");r.files[e]={},s.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v(\"ace/mode/\"+e)})))})},m=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name===\"backspace\")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name===\"insertstring\"){var r=u.getCompletionPrefix(t);r&&!n&&(t.completer||(t.completer=new i),t.completer.autoInsert=!1,t.completer.showPopup(t))}},g=e(\"../editor\").Editor;e(\"../config\").defineOptions(g.prototype,\"editor\",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.on(\"afterExec\",m)):this.commands.removeListener(\"afterExec\",m)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on(\"changeMode\",p),p(null,this)):(this.commands.removeCommand(h),this.off(\"changeMode\",p))},value:!1}})});\n                (function() {\n                    ace.require([\"ace/ext/language_tools\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-linking.js",
    "content": "ace.define(\"ace/ext/linking\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){function i(e){var n=e.editor,r=e.getAccelKey();if(r){var n=e.editor,i=e.getDocumentPosition(),s=n.session,o=s.getTokenAt(i.row,i.column);t.previousLinkingHover&&t.previousLinkingHover!=o&&n._emit(\"linkHoverOut\"),n._emit(\"linkHover\",{position:i,token:o}),t.previousLinkingHover=o}else t.previousLinkingHover&&(n._emit(\"linkHoverOut\"),t.previousLinkingHover=!1)}function s(e){var t=e.getAccelKey(),n=e.getButton();if(n==0&&t){var r=e.editor,i=e.getDocumentPosition(),s=r.session,o=s.getTokenAt(i.row,i.column);r._emit(\"linkClick\",{position:i,token:o})}}var r=e(\"ace/editor\").Editor;e(\"../config\").defineOptions(r.prototype,\"editor\",{enableLinking:{set:function(e){e?(this.on(\"click\",s),this.on(\"mousemove\",i)):(this.off(\"click\",s),this.off(\"mousemove\",i))},value:!1}}),t.previousLinkingHover=!1});\n                (function() {\n                    ace.require([\"ace/ext/linking\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-modelist.js",
    "content": "ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],ASL:[\"dsl|asl\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],Bro:[\"bro\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],Csound_Document:[\"csd\"],Csound_Orchestra:[\"orc\"],Csound_Score:[\"sco\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Drools:[\"drl\"],Edifact:[\"edi\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr|fth|4th\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],GraphQLSchema:[\"gql\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],Haskell_Cabal:[\"cabal\"],haXe:[\"hx\"],Hjson:[\"hjson\"],HTML:[\"html|htm|xhtml|vue|we|wpy\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade|pug\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSSM:[\"jssm|jssm_state\"],JSX:[\"jsx\"],Julia:[\"jl\"],Kotlin:[\"kt|kts\"],LaTeX:[\"tex|latex|ltx|bib\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MIXAL:[\"mixal\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Pig:[\"pig\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml|asp\"],RDoc:[\"Rd\"],Red:[\"red|reds\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],TSX:[\"tsx\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",Csound_Document:\"Csound Document\",Csound_Orchestra:\"Csound\",Csound_Score:\"Csound Score\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}});\n                (function() {\n                    ace.require([\"ace/ext/modelist\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-options.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 100000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {vertical-align: middle;}.ace_optionsMenuEntry button[ace_selected_button=true] {background: #e7e7e7;box-shadow: 1px 0px 2px 0px #adadad inset;border-color: #adadad;}.ace_optionsMenuEntry button {background: white;border: 1px solid lightgray;margin: 0px;}.ace_optionsMenuEntry button:hover{background: #f0f0f0;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],ASL:[\"dsl|asl\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],Bro:[\"bro\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],Csound_Document:[\"csd\"],Csound_Orchestra:[\"orc\"],Csound_Score:[\"sco\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Drools:[\"drl\"],Edifact:[\"edi\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr|fth|4th\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],GraphQLSchema:[\"gql\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],Haskell_Cabal:[\"cabal\"],haXe:[\"hx\"],Hjson:[\"hjson\"],HTML:[\"html|htm|xhtml|vue|we|wpy\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade|pug\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSSM:[\"jssm|jssm_state\"],JSX:[\"jsx\"],Julia:[\"jl\"],Kotlin:[\"kt|kts\"],LaTeX:[\"tex|latex|ltx|bib\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MIXAL:[\"mixal\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Pig:[\"pig\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml|asp\"],RDoc:[\"Rd\"],Red:[\"red|reds\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],TSX:[\"tsx\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",Csound_Document:\"Csound Document\",Csound_Orchestra:\"Csound\",Csound_Score:\"Csound Score\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}}),ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Dracula\",\"\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"Gruvbox\",\"gruvbox\",\"dark\"],[\"Green on Black\",\"gob\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})}),ace.define(\"ace/ext/options\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/overlay_page\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/ext/modelist\",\"ace/ext/themelist\"],function(e,t,n){\"use strict\";var r=e(\"./menu_tools/overlay_page\").overlayPage,i=e(\"../lib/dom\"),s=e(\"../lib/oop\"),o=e(\"../lib/event_emitter\").EventEmitter,u=i.buildDom,a=e(\"./modelist\"),f=e(\"./themelist\"),l={Bright:[],Dark:[]};f.themes.forEach(function(e){l[e.isDark?\"Dark\":\"Bright\"].push({caption:e.caption,value:e.theme})});var c=a.modes.map(function(e){return{caption:e.caption,value:e.mode}}),h={Main:{Mode:{path:\"mode\",type:\"select\",items:c},Theme:{path:\"theme\",type:\"select\",items:l},Keybinding:{type:\"buttonBar\",path:\"keyboardHandler\",items:[{caption:\"Ace\",value:null},{caption:\"Vim\",value:\"ace/keyboard/vim\"},{caption:\"Emacs\",value:\"ace/keyboard/emacs\"}]},\"Font Size\":{path:\"fontSize\",type:\"number\",defaultValue:12,defaults:[{caption:\"12px\",value:12},{caption:\"24px\",value:24}]},\"Soft Wrap\":{type:\"buttonBar\",path:\"wrap\",items:[{caption:\"Off\",value:\"off\"},{caption:\"Free\",value:\"free\"},{caption:\"80\",value:\"80\"},{caption:\"40\",value:\"40\"}]},\"Cursor Style\":{path:\"cursorStyle\",items:[{caption:\"Ace\",value:\"ace\"},{caption:\"Slim\",value:\"slim\"},{caption:\"Smooth\",value:\"smooth\"},{caption:\"Smooth And Slim\",value:\"smooth slim\"},{caption:\"Wide\",value:\"wide\"}]},Folding:{path:\"foldStyle\",items:[{caption:\"Manual\",value:\"manual\"},{caption:\"Mark begin\",value:\"markbegin\"},{caption:\"Mark begin and end\",value:\"markbeginend\"}]},\"Soft Tabs\":[{path:\"useSoftTabs\"},{path:\"tabSize\",type:\"number\",values:[2,3,4,8,16]}],Overscroll:{type:\"buttonBar\",path:\"scrollPastEnd\",items:[{caption:\"None\",value:0},{caption:\"Half\",value:.5},{caption:\"Full\",value:1}]}},More:{\"Atomic soft tabs\":{path:\"navigateWithinSoftTabs\"},\"Enable Behaviours\":{path:\"behavioursEnabled\"},\"Full Line Selection\":{type:\"checkbox\",values:\"text|line\",path:\"selectionStyle\"},\"Highlight Active Line\":{path:\"highlightActiveLine\"},\"Show Invisibles\":{path:\"showInvisibles\"},\"Show Indent Guides\":{path:\"displayIndentGuides\"},\"Persistent Scrollbar\":[{path:\"hScrollBarAlwaysVisible\"},{path:\"vScrollBarAlwaysVisible\"}],\"Animate scrolling\":{path:\"animatedScroll\"},\"Show Gutter\":{path:\"showGutter\"},\"Show Print Margin\":[{path:\"showPrintMargin\"},{type:\"number\",path:\"printMarginColumn\"}],\"Highlight selected word\":{path:\"highlightSelectedWord\"},\"Fade Fold Widgets\":{path:\"fadeFoldWidgets\"},\"Merge Undo Deltas\":{path:\"mergeUndoDeltas\",items:[{caption:\"Always\",value:\"always\"},{caption:\"Never\",value:\"false\"},{caption:\"Timed\",value:\"true\"}]},\"Elastic Tabstops\":{path:\"useElasticTabstops\"},\"Incremental Search\":{path:\"useIncrementalSearch\"},\"Read-only\":{path:\"readOnly\"},\"Copy without selection\":{path:\"copyWithEmptySelection\"},\"Live Autocompletion\":{path:\"enableLiveAutocompletion\"}}},p=function(e,t){this.editor=e,this.container=t||document.createElement(\"div\"),this.groups=[],this.options={}};(function(){s.implement(this,o),this.add=function(e){e.Main&&s.mixin(h.Main,e.Main),e.More&&s.mixin(h.More,e.More)},this.render=function(){this.container.innerHTML=\"\",u([\"table\",{id:\"controls\"},this.renderOptionGroup(h.Main),[\"tr\",null,[\"td\",{colspan:2},[\"table\",{id:\"more-controls\"},this.renderOptionGroup(h.More)]]]],this.container)},this.renderOptionGroup=function(e){return Object.keys(e).map(function(t,n){var r=e[t];return r.position||(r.position=n/1e4),r.label||(r.label=t),r}).sort(function(e,t){return e.position-t.position}).map(function(e){return this.renderOption(e.label,e)},this)},this.renderOptionControl=function(e,t){var n=this;if(Array.isArray(t))return t.map(function(t){return n.renderOptionControl(e,t)});var r,i=n.getOption(t);t.values&&t.type!=\"checkbox\"&&(typeof t.values==\"string\"&&(t.values=t.values.split(\"|\")),t.items=t.values.map(function(e){return{value:e,name:e}}));if(t.type==\"buttonBar\")r=[\"div\",t.items.map(function(e){return[\"button\",{value:e.value,ace_selected_button:i==e.value,onclick:function(){n.setOption(t,e.value);var r=this.parentNode.querySelectorAll(\"[ace_selected_button]\");for(var i=0;i<r.length;i++)r[i].removeAttribute(\"ace_selected_button\");this.setAttribute(\"ace_selected_button\",!0)}},e.desc||e.caption||e.name]})];else if(t.type==\"number\")r=[\"input\",{type:\"number\",value:i||t.defaultValue,style:\"width:3em\",oninput:function(){n.setOption(t,parseInt(this.value))}}],t.defaults&&(r=[r,t.defaults.map(function(e){return[\"button\",{onclick:function(){var t=this.parentNode.firstChild;t.value=e.value,t.oninput()}},e.caption]})]);else if(t.items){var s=function(e){return e.map(function(e){return[\"option\",{value:e.value||e.name},e.desc||e.caption||e.name]})},o=Array.isArray(t.items)?s(t.items):Object.keys(t.items).map(function(e){return[\"optgroup\",{label:e},s(t.items[e])]});r=[\"select\",{id:e,value:i,onchange:function(){n.setOption(t,this.value)}},o]}else typeof t.values==\"string\"&&(t.values=t.values.split(\"|\")),t.values&&(i=i==t.values[1]),r=[\"input\",{type:\"checkbox\",id:e,checked:i||null,onchange:function(){var e=this.checked;t.values&&(e=t.values[e?1:0]),n.setOption(t,e)}}],t.type==\"checkedNumber\"&&(r=[r,[]]);return r},this.renderOption=function(e,t){if(t.path&&!t.onchange&&!this.editor.$options[t.path])return;this.options[t.path]=t;var n=\"-\"+t.path,r=this.renderOptionControl(n,t);return[\"tr\",{\"class\":\"ace_optionsMenuEntry\"},[\"td\",[\"label\",{\"for\":n},e]],[\"td\",r]]},this.setOption=function(e,t){typeof e==\"string\"&&(e=this.options[e]),t==\"false\"&&(t=!1),t==\"true\"&&(t=!0),t==\"null\"&&(t=null),t==\"undefined\"&&(t=undefined),typeof t==\"string\"&&parseFloat(t).toString()==t&&(t=parseFloat(t)),e.onchange?e.onchange(t):this.editor.setOption(e.path,t),this._signal(\"setOption\",{name:e.path,value:t})},this.getOption=function(e){return e.getValue?e.getValue():this.editor.getOption(e.path)}}).call(p.prototype),t.OptionPanel=p});\n                (function() {\n                    ace.require([\"ace/ext/options\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-searchbox.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/lang\"),s=e(\"../lib/event\"),o='.ace_search {background-color: #ddd;color: #666;border: 1px solid #cbcbcb;border-top: 0 none;overflow: hidden;margin: 0;padding: 4px 6px 0 4px;position: absolute;top: 0;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {margin: 0 20px 4px 0;overflow: hidden;line-height: 1.9;}.ace_replace_form {margin-right: 0;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {border-radius: 3px 0 0 3px;background-color: white;color: black;border: 1px solid #cbcbcb;border-right: 0 none;box-sizing: border-box!important;outline: 0;padding: 0;font-size: inherit;margin: 0;line-height: inherit;padding: 0 6px;min-width: 17em;vertical-align: top;}.ace_searchbtn {border: 1px solid #cbcbcb;line-height: inherit;display: inline-block;padding: 0 6px;background: #fff;border-right: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;margin: 0;position: relative;box-sizing: content-box!important;color: #666;}.ace_searchbtn:last-child {border-radius: 0 3px 3px 0;border-right: 1px solid #cbcbcb;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn:hover {background-color: #eef1f6;}.ace_searchbtn.prev, .ace_searchbtn.next {padding: 0px 0.7em}.ace_searchbtn.prev:after, .ace_searchbtn.next:after {content: \"\";border: solid 2px #888;width: 0.5em;height: 0.5em;border-width:  2px 0 0 2px;display:inline-block;transform: rotate(-45deg);}.ace_searchbtn.next:after {border-width: 0 2px 2px 0 ;}.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;font: 16px/16px Arial;padding: 0;height: 14px;width: 14px;top: 9px;right: 7px;position: absolute;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;box-sizing:    border-box!important;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;clear: both;}.ace_search_counter {float: left;font-family: arial;padding: 0 8px;}',u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/keys\"),f=999;r.importCssString(o,\"ace_searchbox\");var l='<div class=\"ace_search right\">    <span action=\"hide\" class=\"ace_searchbtn_close\"></span>    <div class=\"ace_search_form\">        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>        <span action=\"findPrev\" class=\"ace_searchbtn prev\"></span>        <span action=\"findNext\" class=\"ace_searchbtn next\"></span>        <span action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</span>    </div>    <div class=\"ace_replace_form\">        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>        <span action=\"replaceAndFindNext\" class=\"ace_searchbtn\">Replace</span>        <span action=\"replaceAll\" class=\"ace_searchbtn\">All</span>    </div>    <div class=\"ace_search_options\">        <span action=\"toggleReplace\" class=\"ace_button\" title=\"Toggle Replace mode\"            style=\"float:left;margin-top:-2px;padding:0 5px;\">+</span>        <span class=\"ace_search_counter\"></span>        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>        <span action=\"searchInSelection\" class=\"ace_button\" title=\"Search In Selection\">S</span>    </div></div>'.replace(/> +/g,\">\"),c=function(e,t,n){var i=r.createElement(\"div\");i.innerHTML=l,this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOption=e.querySelector(\"[action=searchInSelection]\"),this.replaceOption=e.querySelector(\"[action=toggleReplace]\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\"),this.searchCounter=e.querySelector(\".ace_search_counter\")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,\"mousedown\",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var n=e.target||e.srcElement,r=n.getAttribute(\"action\");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:\"Esc\",name:\"closeSearchBar\",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({\"Ctrl-f|Command-f\":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?\"\":\"none\",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},\"Ctrl-H|Command-Option-F\":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},\"Ctrl-G|Command-G\":function(e){e.findNext()},\"Ctrl-Shift-G|Command-Shift-G\":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},\"Shift-Return\":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},\"Alt-Return\":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:\"toggleRegexpMode\",bindKey:{win:\"Alt-R|Alt-/\",mac:\"Ctrl-Alt-R|Ctrl-Alt-/\"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:\"toggleCaseSensitive\",bindKey:{win:\"Alt-C|Alt-I\",mac:\"Ctrl-Alt-R|Ctrl-Alt-I\"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:\"toggleWholeWords\",bindKey:{win:\"Alt-B|Alt-W\",mac:\"Ctrl-Alt-B|Ctrl-Alt-W\"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:\"toggleReplace\",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:\"searchInSelection\",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,\"ace_active-line\"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){r.setCssClass(this.replaceOption,\"checked\",this.searchRange),r.setCssClass(this.searchOption,\"checked\",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?\"-\":\"+\",r.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?\"\":\"none\",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",s),this.editor._emit(\"findSearchBox\",{match:!s}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,r=0;if(t){var i=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),s=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(s-=e.session.doc.positionToIndex(this.searchRange.start));var o=t.lastIndex=0,u;while(u=t.exec(i)){n++,o=u.index,o<=s&&r++;if(n>f)break;if(!u[0]){t.lastIndex=o+=1;if(o>=i.length)break}}}this.searchCounter.textContent=r+\" of \"+(n>f?f+\"+\":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",t),this.editor._emit(\"findSearchBox\",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off(\"changeSession\",this.setSession),this.element.style.display=\"none\",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on(\"changeSession\",this.setSession),this.element.style.display=\"\",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){var n=e.searchBox||new c(e);n.show(e.session.getTextRange(),t)}});\n                (function() {\n                    ace.require([\"ace/ext/searchbox\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-settings_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 100000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {vertical-align: middle;}.ace_optionsMenuEntry button[ace_selected_button=true] {background: #e7e7e7;box-shadow: 1px 0px 2px 0px #adadad inset;border-color: #adadad;}.ace_optionsMenuEntry button {background: white;border: 1px solid lightgray;margin: 0px;}.ace_optionsMenuEntry button:hover{background: #f0f0f0;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],ASL:[\"dsl|asl\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],Bro:[\"bro\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],Csound_Document:[\"csd\"],Csound_Orchestra:[\"orc\"],Csound_Score:[\"sco\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Drools:[\"drl\"],Edifact:[\"edi\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr|fth|4th\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],GraphQLSchema:[\"gql\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],Haskell_Cabal:[\"cabal\"],haXe:[\"hx\"],Hjson:[\"hjson\"],HTML:[\"html|htm|xhtml|vue|we|wpy\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade|pug\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSSM:[\"jssm|jssm_state\"],JSX:[\"jsx\"],Julia:[\"jl\"],Kotlin:[\"kt|kts\"],LaTeX:[\"tex|latex|ltx|bib\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MIXAL:[\"mixal\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Pig:[\"pig\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml|asp\"],RDoc:[\"Rd\"],Red:[\"red|reds\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],TSX:[\"tsx\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",Csound_Document:\"Csound Document\",Csound_Orchestra:\"Csound\",Csound_Score:\"Csound Score\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}}),ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Dracula\",\"\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"Gruvbox\",\"gruvbox\",\"dark\"],[\"Green on Black\",\"gob\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})}),ace.define(\"ace/ext/options\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/overlay_page\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/ext/modelist\",\"ace/ext/themelist\"],function(e,t,n){\"use strict\";var r=e(\"./menu_tools/overlay_page\").overlayPage,i=e(\"../lib/dom\"),s=e(\"../lib/oop\"),o=e(\"../lib/event_emitter\").EventEmitter,u=i.buildDom,a=e(\"./modelist\"),f=e(\"./themelist\"),l={Bright:[],Dark:[]};f.themes.forEach(function(e){l[e.isDark?\"Dark\":\"Bright\"].push({caption:e.caption,value:e.theme})});var c=a.modes.map(function(e){return{caption:e.caption,value:e.mode}}),h={Main:{Mode:{path:\"mode\",type:\"select\",items:c},Theme:{path:\"theme\",type:\"select\",items:l},Keybinding:{type:\"buttonBar\",path:\"keyboardHandler\",items:[{caption:\"Ace\",value:null},{caption:\"Vim\",value:\"ace/keyboard/vim\"},{caption:\"Emacs\",value:\"ace/keyboard/emacs\"}]},\"Font Size\":{path:\"fontSize\",type:\"number\",defaultValue:12,defaults:[{caption:\"12px\",value:12},{caption:\"24px\",value:24}]},\"Soft Wrap\":{type:\"buttonBar\",path:\"wrap\",items:[{caption:\"Off\",value:\"off\"},{caption:\"Free\",value:\"free\"},{caption:\"80\",value:\"80\"},{caption:\"40\",value:\"40\"}]},\"Cursor Style\":{path:\"cursorStyle\",items:[{caption:\"Ace\",value:\"ace\"},{caption:\"Slim\",value:\"slim\"},{caption:\"Smooth\",value:\"smooth\"},{caption:\"Smooth And Slim\",value:\"smooth slim\"},{caption:\"Wide\",value:\"wide\"}]},Folding:{path:\"foldStyle\",items:[{caption:\"Manual\",value:\"manual\"},{caption:\"Mark begin\",value:\"markbegin\"},{caption:\"Mark begin and end\",value:\"markbeginend\"}]},\"Soft Tabs\":[{path:\"useSoftTabs\"},{path:\"tabSize\",type:\"number\",values:[2,3,4,8,16]}],Overscroll:{type:\"buttonBar\",path:\"scrollPastEnd\",items:[{caption:\"None\",value:0},{caption:\"Half\",value:.5},{caption:\"Full\",value:1}]}},More:{\"Atomic soft tabs\":{path:\"navigateWithinSoftTabs\"},\"Enable Behaviours\":{path:\"behavioursEnabled\"},\"Full Line Selection\":{type:\"checkbox\",values:\"text|line\",path:\"selectionStyle\"},\"Highlight Active Line\":{path:\"highlightActiveLine\"},\"Show Invisibles\":{path:\"showInvisibles\"},\"Show Indent Guides\":{path:\"displayIndentGuides\"},\"Persistent Scrollbar\":[{path:\"hScrollBarAlwaysVisible\"},{path:\"vScrollBarAlwaysVisible\"}],\"Animate scrolling\":{path:\"animatedScroll\"},\"Show Gutter\":{path:\"showGutter\"},\"Show Print Margin\":[{path:\"showPrintMargin\"},{type:\"number\",path:\"printMarginColumn\"}],\"Highlight selected word\":{path:\"highlightSelectedWord\"},\"Fade Fold Widgets\":{path:\"fadeFoldWidgets\"},\"Merge Undo Deltas\":{path:\"mergeUndoDeltas\",items:[{caption:\"Always\",value:\"always\"},{caption:\"Never\",value:\"false\"},{caption:\"Timed\",value:\"true\"}]},\"Elastic Tabstops\":{path:\"useElasticTabstops\"},\"Incremental Search\":{path:\"useIncrementalSearch\"},\"Read-only\":{path:\"readOnly\"},\"Copy without selection\":{path:\"copyWithEmptySelection\"},\"Live Autocompletion\":{path:\"enableLiveAutocompletion\"}}},p=function(e,t){this.editor=e,this.container=t||document.createElement(\"div\"),this.groups=[],this.options={}};(function(){s.implement(this,o),this.add=function(e){e.Main&&s.mixin(h.Main,e.Main),e.More&&s.mixin(h.More,e.More)},this.render=function(){this.container.innerHTML=\"\",u([\"table\",{id:\"controls\"},this.renderOptionGroup(h.Main),[\"tr\",null,[\"td\",{colspan:2},[\"table\",{id:\"more-controls\"},this.renderOptionGroup(h.More)]]]],this.container)},this.renderOptionGroup=function(e){return Object.keys(e).map(function(t,n){var r=e[t];return r.position||(r.position=n/1e4),r.label||(r.label=t),r}).sort(function(e,t){return e.position-t.position}).map(function(e){return this.renderOption(e.label,e)},this)},this.renderOptionControl=function(e,t){var n=this;if(Array.isArray(t))return t.map(function(t){return n.renderOptionControl(e,t)});var r,i=n.getOption(t);t.values&&t.type!=\"checkbox\"&&(typeof t.values==\"string\"&&(t.values=t.values.split(\"|\")),t.items=t.values.map(function(e){return{value:e,name:e}}));if(t.type==\"buttonBar\")r=[\"div\",t.items.map(function(e){return[\"button\",{value:e.value,ace_selected_button:i==e.value,onclick:function(){n.setOption(t,e.value);var r=this.parentNode.querySelectorAll(\"[ace_selected_button]\");for(var i=0;i<r.length;i++)r[i].removeAttribute(\"ace_selected_button\");this.setAttribute(\"ace_selected_button\",!0)}},e.desc||e.caption||e.name]})];else if(t.type==\"number\")r=[\"input\",{type:\"number\",value:i||t.defaultValue,style:\"width:3em\",oninput:function(){n.setOption(t,parseInt(this.value))}}],t.defaults&&(r=[r,t.defaults.map(function(e){return[\"button\",{onclick:function(){var t=this.parentNode.firstChild;t.value=e.value,t.oninput()}},e.caption]})]);else if(t.items){var s=function(e){return e.map(function(e){return[\"option\",{value:e.value||e.name},e.desc||e.caption||e.name]})},o=Array.isArray(t.items)?s(t.items):Object.keys(t.items).map(function(e){return[\"optgroup\",{label:e},s(t.items[e])]});r=[\"select\",{id:e,value:i,onchange:function(){n.setOption(t,this.value)}},o]}else typeof t.values==\"string\"&&(t.values=t.values.split(\"|\")),t.values&&(i=i==t.values[1]),r=[\"input\",{type:\"checkbox\",id:e,checked:i||null,onchange:function(){var e=this.checked;t.values&&(e=t.values[e?1:0]),n.setOption(t,e)}}],t.type==\"checkedNumber\"&&(r=[r,[]]);return r},this.renderOption=function(e,t){if(t.path&&!t.onchange&&!this.editor.$options[t.path])return;this.options[t.path]=t;var n=\"-\"+t.path,r=this.renderOptionControl(n,t);return[\"tr\",{\"class\":\"ace_optionsMenuEntry\"},[\"td\",[\"label\",{\"for\":n},e]],[\"td\",r]]},this.setOption=function(e,t){typeof e==\"string\"&&(e=this.options[e]),t==\"false\"&&(t=!1),t==\"true\"&&(t=!0),t==\"null\"&&(t=null),t==\"undefined\"&&(t=undefined),typeof t==\"string\"&&parseFloat(t).toString()==t&&(t=parseFloat(t)),e.onchange?e.onchange(t):this.editor.setOption(e.path,t),this._signal(\"setOption\",{name:e.path,value:t})},this.getOption=function(e){return e.getValue?e.getValue():this.editor.getOption(e.path)}}).call(p.prototype),t.OptionPanel=p}),ace.define(\"ace/ext/settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/options\",\"ace/ext/menu_tools/overlay_page\",\"ace/editor\"],function(e,t,n){\"use strict\";function s(e){if(!document.getElementById(\"ace_settingsmenu\")){var t=new r(e);t.render(),t.container.id=\"ace_settingsmenu\",i(e,t.container,\"0\",\"0\",\"0\"),t.container.querySelector(\"select,input,button,checkbox\").focus()}}var r=e(\"ace/ext/options\").OptionPanel,i=e(\"./menu_tools/overlay_page\").overlayPage;n.exports.init=function(t){var n=e(\"ace/editor\").Editor;n.prototype.showSettingsMenu=function(){s(this)}}});\n                (function() {\n                    ace.require([\"ace/ext/settings_menu\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-static_highlight.js",
    "content": "ace.define(\"ace/ext/static_highlight\",[\"require\",\"exports\",\"module\",\"ace/edit_session\",\"ace/layer/text\",\"ace/config\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../edit_session\").EditSession,i=e(\"../layer/text\").Text,s=\".ace_static_highlight {font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;font-size: 12px;white-space: pre-wrap}.ace_static_highlight .ace_gutter {width: 2em;text-align: right;padding: 0 3px 0 0;margin-right: 3px;}.ace_static_highlight.ace_show_gutter .ace_line {padding-left: 2.6em;}.ace_static_highlight .ace_line { position: relative; }.ace_static_highlight .ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;top: 0;bottom: 0;left: 0;position: absolute;}.ace_static_highlight .ace_gutter-cell:before {content: counter(ace_line, decimal);counter-increment: ace_line;}.ace_static_highlight {counter-reset: ace_line;}\",o=e(\"../config\"),u=e(\"../lib/dom\"),a=function(){this.config={}};a.prototype=i.prototype;var f=function(e,t,n){var r=e.className.match(/lang-(\\w+)/),i=t.mode||r&&\"ace/mode/\"+r[1];if(!i)return!1;var s=t.theme||\"ace/theme/textmate\",o=\"\",a=[];if(e.firstElementChild){var l=0;for(var c=0;c<e.childNodes.length;c++){var h=e.childNodes[c];h.nodeType==3?(l+=h.data.length,o+=h.data):a.push(l,h)}}else o=e.textContent,t.trim&&(o=o.trim());f.render(o,i,s,t.firstLineNumber,!t.showGutter,function(t){u.importCssString(t.css,\"ace_highlight\"),e.innerHTML=t.html;var r=e.firstChild.firstChild;for(var i=0;i<a.length;i+=2){var s=t.session.doc.indexToPosition(a[i]),o=a[i+1],f=r.children[s.row];f&&f.appendChild(o)}n&&n()})};f.render=function(e,t,n,i,s,u){function h(){var r=f.renderSync(e,t,n,i,s);return u?u(r):r}var a=1,l=r.prototype.$modes;typeof n==\"string\"&&(a++,o.loadModule([\"theme\",n],function(e){n=e,--a||h()}));var c;return t&&typeof t==\"object\"&&!t.getTokenizer&&(c=t,t=c.path),typeof t==\"string\"&&(a++,o.loadModule([\"mode\",t],function(e){if(!l[t]||c)l[t]=new e.Mode(c);t=l[t],--a||h()})),--a||h()},f.renderSync=function(e,t,n,i,o){i=parseInt(i||1,10);var u=new r(\"\");u.setUseWorker(!1),u.setMode(t);var f=new a;f.setSession(u),u.setValue(e);var l=[],c=u.getLength();for(var h=0;h<c;h++)l.push(\"<div class='ace_line'>\"),o||l.push(\"<span class='ace_gutter ace_gutter-cell' unselectable='on'></span>\"),f.$renderLine(l,h,!0,!1),l.push(\"\\n</div>\");var p=\"<div class='\"+n.cssClass+\"'>\"+\"<div class='ace_static_highlight\"+(o?\"\":\" ace_show_gutter\")+\"' style='counter-reset:ace_line \"+(i-1)+\"'>\"+l.join(\"\")+\"</div>\"+\"</div>\";return f.destroy(),{css:s+n.cssText,html:p,session:u}},n.exports=f,n.exports.highlight=f});\n                (function() {\n                    ace.require([\"ace/ext/static_highlight\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-statusbar.js",
    "content": "ace.define(\"ace/ext/statusbar\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"ace/lib/dom\"),i=e(\"ace/lib/lang\"),s=function(e,t){this.element=r.createElement(\"div\"),this.element.className=\"ace_status-indicator\",this.element.style.cssText=\"display: inline-block;\",t.appendChild(this.element);var n=i.delayedCall(function(){this.updateStatus(e)}.bind(this)).schedule.bind(null,100);e.on(\"changeStatus\",n),e.on(\"changeSelection\",n),e.on(\"keyboardActivity\",n)};(function(){this.updateStatus=function(e){function n(e,n){e&&t.push(e,n||\"|\")}var t=[];n(e.keyBinding.getStatusText(e)),e.commands.recording&&n(\"REC\");var r=e.selection,i=r.lead;if(!r.isEmpty()){var s=e.getSelectionRange();n(\"(\"+(s.end.row-s.start.row)+\":\"+(s.end.column-s.start.column)+\")\",\" \")}n(i.row+\":\"+i.column,\" \"),r.rangeCount&&n(\"[\"+r.rangeCount+\"]\",\" \"),t.pop(),this.element.textContent=t.join(\"\")}}).call(s.prototype),t.StatusBar=s});\n                (function() {\n                    ace.require([\"ace/ext/statusbar\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-textarea.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.$id=\"ace/theme/textmate\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/ext/textarea\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/net\",\"ace/ace\",\"ace/theme/textmate\"],function(e,t,n){\"use strict\";function a(e,t){for(var n in t)e.style[n]=t[n]}function f(e,t){if(e.type!=\"textarea\")throw new Error(\"Textarea required!\");var n=e.parentNode,i=document.createElement(\"div\"),s=function(){var t=\"position:relative;\";[\"margin-top\",\"margin-left\",\"margin-right\",\"margin-bottom\"].forEach(function(n){t+=n+\":\"+u(e,i,n)+\";\"});var n=u(e,i,\"width\")||e.clientWidth+\"px\",r=u(e,i,\"height\")||e.clientHeight+\"px\";t+=\"height:\"+r+\";width:\"+n+\";\",t+=\"display:inline-block;\",i.setAttribute(\"style\",t)};r.addListener(window,\"resize\",s),s(),n.insertBefore(i,e.nextSibling);while(n!==document){if(n.tagName.toUpperCase()===\"FORM\"){var o=n.onsubmit;n.onsubmit=function(n){e.value=t(),o&&o.call(this,n)};break}n=n.parentNode}return i}function l(t,n,r){s.loadScript(t,function(){e([n],r)})}function c(e,t,n,r,i){function u(e){return e===\"true\"||e==1}var s=e.getSession(),o=e.renderer;return e.setDisplaySettings=function(t){t==null&&(t=n.style.display==\"none\"),t?(n.style.display=\"block\",n.hideButton.focus(),e.on(\"focus\",function r(){e.removeListener(\"focus\",r),n.style.display=\"none\"})):e.focus()},e.$setOption=e.setOption,e.$getOption=e.getOption,e.setOption=function(t,n){switch(t){case\"mode\":e.$setOption(\"mode\",\"ace/mode/\"+n);break;case\"theme\":e.$setOption(\"theme\",\"ace/theme/\"+n);break;case\"keybindings\":switch(n){case\"vim\":e.setKeyboardHandler(\"ace/keyboard/vim\");break;case\"emacs\":e.setKeyboardHandler(\"ace/keyboard/emacs\");break;default:e.setKeyboardHandler(null)}break;case\"wrap\":case\"fontSize\":e.$setOption(t,n);break;default:e.$setOption(t,u(n))}},e.getOption=function(t){switch(t){case\"mode\":return e.$getOption(\"mode\").substr(\"ace/mode/\".length);case\"theme\":return e.$getOption(\"theme\").substr(\"ace/theme/\".length);case\"keybindings\":var n=e.getKeyboardHandler();switch(n&&n.$id){case\"ace/keyboard/vim\":return\"vim\";case\"ace/keyboard/emacs\":return\"emacs\";default:return\"ace\"}break;default:return e.$getOption(t)}},e.setOptions(i),e}function h(e,n,i){function f(e,t,n,r){if(!n){e.push(\"<input type='checkbox' title='\",t,\"' \",r+\"\"==\"true\"?\"checked='true'\":\"\",\"'></input>\");return}e.push(\"<select title='\"+t+\"'>\");for(var i in n)e.push(\"<option value='\"+i+\"' \"),r==i&&e.push(\" selected \"),e.push(\">\",n[i],\"</option>\");e.push(\"</select>\")}var s=null,o={mode:\"Mode:\",wrap:\"Soft Wrap:\",theme:\"Theme:\",fontSize:\"Font Size:\",showGutter:\"Display Gutter:\",keybindings:\"Keyboard\",showPrintMargin:\"Show Print Margin:\",useSoftTabs:\"Use Soft Tabs:\",showInvisibles:\"Show Invisibles\"},u={mode:{text:\"Plain\",javascript:\"JavaScript\",xml:\"XML\",html:\"HTML\",css:\"CSS\",scss:\"SCSS\",python:\"Python\",php:\"PHP\",java:\"Java\",ruby:\"Ruby\",c_cpp:\"C/C++\",coffee:\"CoffeeScript\",json:\"json\",perl:\"Perl\",clojure:\"Clojure\",ocaml:\"OCaml\",csharp:\"C#\",haxe:\"haXe\",svg:\"SVG\",textile:\"Textile\",groovy:\"Groovy\",liquid:\"Liquid\",Scala:\"Scala\"},theme:{clouds:\"Clouds\",clouds_midnight:\"Clouds Midnight\",cobalt:\"Cobalt\",crimson_editor:\"Crimson Editor\",dawn:\"Dawn\",gob:\"Green on Black\",eclipse:\"Eclipse\",idle_fingers:\"Idle Fingers\",kr_theme:\"Kr Theme\",merbivore:\"Merbivore\",merbivore_soft:\"Merbivore Soft\",mono_industrial:\"Mono Industrial\",monokai:\"Monokai\",pastel_on_dark:\"Pastel On Dark\",solarized_dark:\"Solarized Dark\",solarized_light:\"Solarized Light\",textmate:\"Textmate\",twilight:\"Twilight\",vibrant_ink:\"Vibrant Ink\"},showGutter:s,fontSize:{\"10px\":\"10px\",\"11px\":\"11px\",\"12px\":\"12px\",\"14px\":\"14px\",\"16px\":\"16px\"},wrap:{off:\"Off\",40:\"40\",80:\"80\",free:\"Free\"},keybindings:{ace:\"ace\",vim:\"vim\",emacs:\"emacs\"},showPrintMargin:s,useSoftTabs:s,showInvisibles:s},a=[];a.push(\"<table><tr><th>Setting</th><th>Value</th></tr>\");for(var l in t.defaultOptions)a.push(\"<tr><td>\",o[l],\"</td>\"),a.push(\"<td>\"),f(a,l,u[l],i.getOption(l)),a.push(\"</td></tr>\");a.push(\"</table>\"),e.innerHTML=a.join(\"\");var c=function(e){var t=e.currentTarget;i.setOption(t.title,t.value)},h=function(e){var t=e.currentTarget;i.setOption(t.title,t.checked)},p=e.getElementsByTagName(\"select\");for(var d=0;d<p.length;d++)p[d].onchange=c;var v=e.getElementsByTagName(\"input\");for(var d=0;d<v.length;d++)v[d].onclick=h;var m=document.createElement(\"input\");m.type=\"button\",m.value=\"Hide\",r.addListener(m,\"click\",function(){i.setDisplaySettings(!1)}),e.appendChild(m),e.hideButton=m}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/net\"),o=e(\"../ace\");e(\"../theme/textmate\"),n.exports=t=o;var u=function(e,t,n){var r=e.style[n];r||(window.getComputedStyle?r=window.getComputedStyle(e,\"\").getPropertyValue(n):r=e.currentStyle[n]);if(!r||r==\"auto\"||r==\"intrinsic\")r=t.style[n];return r};t.transformTextarea=function(e,n){var s=e.autofocus||document.activeElement==e,u,l=f(e,function(){return u.getValue()});e.style.display=\"none\",l.style.background=\"white\";var p=document.createElement(\"div\");a(p,{top:\"0px\",left:\"0px\",right:\"0px\",bottom:\"0px\",border:\"1px solid gray\",position:\"absolute\"}),l.appendChild(p);var d=document.createElement(\"div\");a(d,{position:\"absolute\",right:\"0px\",bottom:\"0px\",cursor:\"nw-resize\",border:\"solid 9px\",borderColor:\"lightblue gray gray #ceade6\",zIndex:101});var v=document.createElement(\"div\"),m={top:\"0px\",left:\"20%\",right:\"0px\",bottom:\"0px\",position:\"absolute\",padding:\"5px\",zIndex:100,color:\"white\",display:\"none\",overflow:\"auto\",fontSize:\"14px\",boxShadow:\"-5px 2px 3px gray\"};i.isOldIE?m.backgroundColor=\"#333\":m.backgroundColor=\"rgba(0, 0, 0, 0.6)\",a(v,m),l.appendChild(v),n=n||t.defaultOptions;var g=o.edit(p);u=g.getSession(),u.setValue(e.value||e.innerHTML),s&&g.focus(),l.appendChild(d),c(g,p,v,o,n),h(v,d,g);var y=\"\";return r.addListener(d,\"mousemove\",function(e){var t=this.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;n+r<(t.width+t.height)/2?(this.style.cursor=\"pointer\",y=\"toggle\"):(y=\"resize\",this.style.cursor=\"nw-resize\")}),r.addListener(d,\"mousedown\",function(e){e.preventDefault();if(y==\"toggle\"){g.setDisplaySettings();return}l.style.zIndex=1e5;var t=l.getBoundingClientRect(),n=t.width+t.left-e.clientX,i=t.height+t.top-e.clientY;r.capture(d,function(e){l.style.width=e.clientX-t.left+n+\"px\",l.style.height=e.clientY-t.top+i+\"px\",g.resize()},function(){})}),g},t.defaultOptions={mode:\"javascript\",theme:\"textmate\",wrap:\"off\",fontSize:\"12px\",showGutter:\"false\",keybindings:\"ace\",showPrintMargin:\"false\",useSoftTabs:\"true\",showInvisibles:\"false\"}});\n                (function() {\n                    ace.require([\"ace/ext/textarea\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-themelist.js",
    "content": "ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Dracula\",\"\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"Gruvbox\",\"gruvbox\",\"dark\"],[\"Green on Black\",\"gob\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})});\n                (function() {\n                    ace.require([\"ace/ext/themelist\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/ext-whitespace.js",
    "content": "ace.define(\"ace/ext/whitespace\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\");t.$detectIndentation=function(e,t){function c(e){var t=0;for(var r=e;r<n.length;r+=e)t+=n[r]||0;return t}var n=[],r=[],i=0,s=0,o=Math.min(e.length,1e3);for(var u=0;u<o;u++){var a=e[u];if(!/^\\s*[^*+\\-\\s]/.test(a))continue;if(a[0]==\"\t\")i++,s=-Number.MAX_VALUE;else{var f=a.match(/^ */)[0].length;if(f&&a[f]!=\"\t\"){var l=f-s;l>0&&!(s%l)&&!(f%l)&&(r[l]=(r[l]||0)+1),n[f]=(n[f]||0)+1}s=f}while(u<o&&a[a.length-1]==\"\\\\\")a=e[u++]}var h=r.reduce(function(e,t){return e+t},0),p={score:0,length:0},d=0;for(var u=1;u<12;u++){var v=c(u);u==1?(d=v,v=n[1]?.9:.8,n.length||(v=0)):v/=d,r[u]&&(v+=r[u]/h),v>p.score&&(p={score:v,length:u})}if(p.score&&p.score>1.4)var m=p.length;if(i>d+1){if(m==1||d<i/4||p.score<1.8)m=undefined;return{ch:\"\t\",length:m}}if(d>i+1)return{ch:\" \",length:m}},t.detectIndentation=function(e){var n=e.getLines(0,1e3),r=t.$detectIndentation(n)||{};return r.ch&&e.setUseSoftTabs(r.ch==\" \"),r.length&&e.setTabSize(r.length),r},t.trimTrailingSpace=function(e,t){var n=e.getDocument(),r=n.getAllLines(),i=t&&t.trimEmpty?-1:0,s=[],o=-1;t&&t.keepCursorPosition&&(e.selection.rangeCount?e.selection.rangeList.ranges.forEach(function(e,t,n){var r=n[t+1];if(r&&r.cursor.row==e.cursor.row)return;s.push(e.cursor)}):s.push(e.selection.getCursor()),o=0);var u=s[o]&&s[o].row;for(var a=0,f=r.length;a<f;a++){var l=r[a],c=l.search(/\\s+$/);a==u&&(c<s[o].column&&c>i&&(c=s[o].column),o++,u=s[o]?s[o].row:-1),c>i&&n.removeInLine(a,c,l.length)}},t.convertIndentation=function(e,t,n){var i=e.getTabString()[0],s=e.getTabSize();n||(n=s),t||(t=i);var o=t==\"\t\"?t:r.stringRepeat(t,n),u=e.doc,a=u.getAllLines(),f={},l={};for(var c=0,h=a.length;c<h;c++){var p=a[c],d=p.match(/^\\s*/)[0];if(d){var v=e.$getStringScreenWidth(d)[0],m=Math.floor(v/s),g=v%s,y=f[m]||(f[m]=r.stringRepeat(o,m));y+=l[g]||(l[g]=r.stringRepeat(\" \",g)),y!=d&&(u.removeInLine(c,0,d.length),u.insertInLine({row:c,column:0},y))}}e.setTabSize(n),e.setUseSoftTabs(t==\" \")},t.$parseStringArg=function(e){var t={};/t/.test(e)?t.ch=\"\t\":/s/.test(e)&&(t.ch=\" \");var n=e.match(/\\d+/);return n&&(t.length=parseInt(n[0],10)),t},t.$parseArg=function(e){return e?typeof e==\"string\"?t.$parseStringArg(e):typeof e.text==\"string\"?t.$parseStringArg(e.text):e:{}},t.commands=[{name:\"detectIndentation\",exec:function(e){t.detectIndentation(e.session)}},{name:\"trimTrailingSpace\",exec:function(e){t.trimTrailingSpace(e.session)}},{name:\"convertIndentation\",exec:function(e,n){var r=t.$parseArg(n);t.convertIndentation(e.session,r.ch,r.length)}},{name:\"setIndentation\",exec:function(e,n){var r=t.$parseArg(n);r.length&&e.session.setTabSize(r.length),r.ch&&e.session.setUseSoftTabs(r.ch==\" \")}}]});\n                (function() {\n                    ace.require([\"ace/ext/whitespace\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/files",
    "content": "ace.js\next-elastic_tabstops_lite.js\next-error_marker.js\next-linking.js\next-modelist.js\next-options.js\next-searchbox.js\next-settings_menu.js\next-split.js\next-static_highlight.js\next-textarea.js\next-whitespace.js\nmode-coffee.js\nmode-css.js\nmode-diff.js\nmode-dockerfile.js\nmode-ejs.js\nmode-gitignore.js\nmode-glsl.js\nmode-hjson.js\nmode-html.js\nmode-ini.js\nmode-jade.js\nmode-javascript.js\nmode-json.js\nmode-jsoniq.js\nmode-jsp.js\nmode-jssm.js\nmode-jsx.js\nmode-less.js\nmode-makefile.js\nmode-markdown.js\nmode-plain_text.js\nmode-sass.js\nmode-scheme.js\nmode-scss.js\nmode-sh.js\nmode-sjs.js\nmode-sparql.js\nmode-sql.js\nmode-stylus.js\nmode-svg.js\nmode-text.js\nmode-toml.js\nmode-tsx.js\nmode-typescript.js\nmode-xml.js\nmode-yaml.js\ntheme-ambiance.js\ntheme-chaos.js\ntheme-chrome.js\ntheme-clouds.js\ntheme-clouds_midnight.js\ntheme-cobalt.js\ntheme-crimson_editor.js\ntheme-dawn.js\ntheme-dracula.js\ntheme-dreamweaver.js\ntheme-eclipse.js\ntheme-github.js\ntheme-gob.js\ntheme-gruvbox.js\ntheme-idle_fingers.js\ntheme-iplastic.js\ntheme-katzenmilch.js\ntheme-kr_theme.js\ntheme-kuroir.js\ntheme-merbivore.js\ntheme-merbivore_soft.js\ntheme-mono_industrial.js\ntheme-monokai.js\ntheme-pastel_on_dark.js\ntheme-solarized_dark.js\ntheme-solarized_light.js\ntheme-sqlserver.js\ntheme-terminal.js\ntheme-textmate.js\ntheme-tomorrow.js\ntheme-tomorrow_night.js\ntheme-tomorrow_night_blue.js\ntheme-tomorrow_night_bright.js\ntheme-tomorrow_night_eighties.js\ntheme-twilight.js\ntheme-vibrant_ink.js\ntheme-xcode.js\nworker-coffee.js\nworker-css.js\nworker-html.js\nworker-javascript.js\nworker-json.js\nworker-lua.js\nworker-php.js\nworker-xml.js\nworker-xquery.js\n"
  },
  {
    "path": "app/assets/js/ace-1.3.3/keybinding-emacs.js",
    "content": "ace.define(\"ace/occur\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/edit_session\",\"ace/search_highlight\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function a(){}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./edit_session\").EditSession,u=e(\"./search_highlight\").SearchHighlight;r.inherits(a,s),function(){this.enter=function(e,t){if(!t.needle)return!1;var n=e.getCursorPosition();this.displayOccurContent(e,t);var r=this.originalToOccurPosition(e.session,n);return e.moveCursorToPosition(r),!0},this.exit=function(e,t){var n=t.translatePosition&&e.getCursorPosition(),r=n&&this.occurToOriginalPosition(e.session,n);return this.displayOriginalContent(e),r&&e.moveCursorToPosition(r),!0},this.highlight=function(e,t){var n=e.$occurHighlight=e.$occurHighlight||e.addDynamicMarker(new u(null,\"ace_occur-highlight\",\"text\"));n.setRegexp(t),e._emit(\"changeBackMarker\")},this.displayOccurContent=function(e,t){this.$originalSession=e.session;var n=this.matchingLines(e.session,t),r=n.map(function(e){return e.content}),i=new o(r.join(\"\\n\"));i.$occur=this,i.$occurMatchingLines=n,e.setSession(i),this.$useEmacsStyleLineStart=this.$originalSession.$useEmacsStyleLineStart,i.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart,this.highlight(i,t.re),i._emit(\"changeBackMarker\")},this.displayOriginalContent=function(e){e.setSession(this.$originalSession),this.$originalSession.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart},this.originalToOccurPosition=function(e,t){var n=e.$occurMatchingLines,r={row:0,column:0};if(!n)return r;for(var i=0;i<n.length;i++)if(n[i].row===t.row)return{row:i,column:t.column};return r},this.occurToOriginalPosition=function(e,t){var n=e.$occurMatchingLines;return!n||!n[t.row]?t:{row:n[t.row].row,column:t.column}},this.matchingLines=function(e,t){t=r.mixin({},t);if(!e||!t.needle)return[];var n=new s;return n.set(t),n.findAll(e).reduce(function(t,n){var r=n.start.row,i=t[t.length-1];return i&&i.row===r?t:t.concat({row:r,content:e.getLine(r)})},[])}}.call(a.prototype);var f=e(\"./lib/dom\");f.importCssString(\".ace_occur-highlight {\\n    border-radius: 4px;\\n    background-color: rgba(87, 255, 8, 0.25);\\n    position: absolute;\\n    z-index: 4;\\n    box-sizing: border-box;\\n    box-shadow: 0 0 4px rgb(91, 255, 50);\\n}\\n.ace_dark .ace_occur-highlight {\\n    background-color: rgb(80, 140, 85);\\n    box-shadow: 0 0 4px rgb(60, 120, 70);\\n}\\n\",\"incremental-occur-highlighting\"),t.Occur=a}),ace.define(\"ace/commands/occur_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/occur\",\"ace/keyboard/hash_handler\",\"ace/lib/oop\"],function(e,t,n){function f(){}var r=e(\"../config\"),i=e(\"../occur\").Occur,s={name:\"occur\",exec:function(e,t){var n=!!e.session.$occur,r=(new i).enter(e,t);r&&!n&&f.installIn(e)},readOnly:!0},o=[{name:\"occurexit\",bindKey:\"esc|Ctrl-G\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0},{name:\"occuraccept\",bindKey:\"enter\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{translatePosition:!0}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0}],u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/oop\");a.inherits(f,u),function(){this.isOccurHandler=!0,this.attach=function(e){u.call(this,o,e.commands.platform),this.$editor=e};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){var s=e.call(this,t,n,r,i);return s&&s.command?s:undefined}}.call(f.prototype),f.installIn=function(e){var t=new this;e.keyBinding.addKeyboardHandler(t),e.commands.addCommands(o)},f.uninstallFrom=function(e){e.commands.removeCommands(o);var t=e.getKeyboardHandler();t.isOccurHandler&&e.keyBinding.removeKeyboardHandler(t)},t.occurStartCommand=s}),ace.define(\"ace/commands/incremental_search_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/commands/occur_commands\"],function(e,t,n){function u(e){this.$iSearch=e}var r=e(\"../config\"),i=e(\"../lib/oop\"),s=e(\"../keyboard/hash_handler\").HashHandler,o=e(\"./occur_commands\").occurStartCommand;t.iSearchStartCommands=[{name:\"iSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e,t){r.loadModule([\"core\",\"ace/incremental_search\"],function(n){var r=n.iSearch=n.iSearch||new n.IncrementalSearch;r.activate(e,t.backwards),t.jumpToFirstMatch&&r.next(t)})},readOnly:!0},{name:\"iSearchBackwards\",exec:function(e,t){e.execCommand(\"iSearch\",{backwards:!0})},readOnly:!0},{name:\"iSearchAndGo\",bindKey:{win:\"Ctrl-K\",mac:\"Command-G\"},exec:function(e,t){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,useCurrentOrPrevSearch:!0})},readOnly:!0},{name:\"iSearchBackwardsAndGo\",bindKey:{win:\"Ctrl-Shift-K\",mac:\"Command-Shift-G\"},exec:function(e){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,backwards:!0,useCurrentOrPrevSearch:!0})},readOnly:!0}],t.iSearchCommands=[{name:\"restartSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e){e.cancelSearch(!0)}},{name:\"searchForward\",bindKey:{win:\"Ctrl-S|Ctrl-K\",mac:\"Ctrl-S|Command-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,e.next(t)}},{name:\"searchBackward\",bindKey:{win:\"Ctrl-R|Ctrl-Shift-K\",mac:\"Ctrl-R|Command-Shift-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,t.backwards=!0,e.next(t)}},{name:\"extendSearchTerm\",exec:function(e,t){e.addString(t)}},{name:\"extendSearchTermSpace\",bindKey:\"space\",exec:function(e){e.addString(\" \")}},{name:\"shrinkSearchTerm\",bindKey:\"backspace\",exec:function(e){e.removeChar()}},{name:\"confirmSearch\",bindKey:\"return\",exec:function(e){e.deactivate()}},{name:\"cancelSearch\",bindKey:\"esc|Ctrl-G\",exec:function(e){e.deactivate(!0)}},{name:\"occurisearch\",bindKey:\"Ctrl-O\",exec:function(e){var t=i.mixin({},e.$options);e.deactivate(),o.exec(e.$editor,t)}},{name:\"yankNextWord\",bindKey:\"Ctrl-w\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorWordRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"yankNextChar\",bindKey:\"Ctrl-Alt-y\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"recenterTopBottom\",bindKey:\"Ctrl-l\",exec:function(e){e.$editor.execCommand(\"recenterTopBottom\")}},{name:\"selectAllMatches\",bindKey:\"Ctrl-space\",exec:function(e){var t=e.$editor,n=t.session.$isearchHighlight,r=n&&n.cache?n.cache.reduce(function(e,t){return e.concat(t?t:[])},[]):[];e.deactivate(!1),r.forEach(t.selection.addRange.bind(t.selection))}},{name:\"searchAsRegExp\",bindKey:\"Alt-r\",exec:function(e){e.convertNeedleToRegExp()}}].map(function(e){return e.readOnly=!0,e.isIncrementalSearchCommand=!0,e.scrollIntoView=\"animate-cursor\",e}),i.inherits(u,s),function(){this.attach=function(e){var n=this.$iSearch;s.call(this,t.iSearchCommands,e.commands.platform),this.$commandExecHandler=e.commands.addEventListener(\"exec\",function(t){if(!t.command.isIncrementalSearchCommand)return n.deactivate();t.stopPropagation(),t.preventDefault();var r=e.session.getScrollTop(),i=t.command.exec(n,t.args||{});return e.renderer.scrollCursorIntoView(null,.5),e.renderer.animateScrolling(r),i})},this.detach=function(e){if(!this.$commandExecHandler)return;e.commands.removeEventListener(\"exec\",this.$commandExecHandler),delete this.$commandExecHandler};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){if((n===1||n===8)&&r===\"v\"||n===1&&r===\"y\")return null;var s=e.call(this,t,n,r,i);if(s.command)return s;if(n==-1){var o=this.commands.extendSearchTerm;if(o)return{command:o,args:r}}return!1}}.call(u.prototype),t.IncrementalSearchKeyboardHandler=u}),ace.define(\"ace/incremental_search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/search_highlight\",\"ace/commands/incremental_search_commands\",\"ace/lib/dom\",\"ace/commands/command_manager\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";function f(){this.$options={wrap:!1,skipCurrent:!1},this.$keyboardHandler=new a(this)}function l(e){return e instanceof RegExp}function c(e){var t=String(e),n=t.indexOf(\"/\"),r=t.lastIndexOf(\"/\");return{expression:t.slice(n+1,r),flags:t.slice(r+1)}}function h(e,t){try{return new RegExp(e,t)}catch(n){return e}}function p(e){return h(e.expression,e.flags)}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./search_highlight\").SearchHighlight,u=e(\"./commands/incremental_search_commands\"),a=u.IncrementalSearchKeyboardHandler;r.inherits(f,s),function(){this.activate=function(e,t){this.$editor=e,this.$startPos=this.$currentPos=e.getCursorPosition(),this.$options.needle=\"\",this.$options.backwards=t,e.keyBinding.addKeyboardHandler(this.$keyboardHandler),this.$originalEditorOnPaste=e.onPaste,e.onPaste=this.onPaste.bind(this),this.$mousedownHandler=e.addEventListener(\"mousedown\",this.onMouseDown.bind(this)),this.selectionFix(e),this.statusMessage(!0)},this.deactivate=function(e){this.cancelSearch(e);var t=this.$editor;t.keyBinding.removeKeyboardHandler(this.$keyboardHandler),this.$mousedownHandler&&(t.removeEventListener(\"mousedown\",this.$mousedownHandler),delete this.$mousedownHandler),t.onPaste=this.$originalEditorOnPaste,this.message(\"\")},this.selectionFix=function(e){e.selection.isEmpty()&&!e.session.$emacsMark&&e.clearSelection()},this.highlight=function(e){var t=this.$editor.session,n=t.$isearchHighlight=t.$isearchHighlight||t.addDynamicMarker(new o(null,\"ace_isearch-result\",\"text\"));n.setRegexp(e),t._emit(\"changeBackMarker\")},this.cancelSearch=function(e){var t=this.$editor;return this.$prevNeedle=this.$options.needle,this.$options.needle=\"\",e?(t.moveCursorToPosition(this.$startPos),this.$currentPos=this.$startPos):t.pushEmacsMark&&t.pushEmacsMark(this.$startPos,!1),this.highlight(null),i.fromPoints(this.$currentPos,this.$currentPos)},this.highlightAndFindWithNeedle=function(e,t){if(!this.$editor)return null;var n=this.$options;t&&(n.needle=t.call(this,n.needle||\"\")||\"\");if(n.needle.length===0)return this.statusMessage(!0),this.cancelSearch(!0);n.start=this.$currentPos;var r=this.$editor.session,s=this.find(r),o=this.$editor.emacsMark?!!this.$editor.emacsMark():!this.$editor.selection.isEmpty();return s&&(n.backwards&&(s=i.fromPoints(s.end,s.start)),this.$editor.selection.setRange(i.fromPoints(o?this.$startPos:s.end,s.end)),e&&(this.$currentPos=s.end),this.highlight(n.re)),this.statusMessage(s),s},this.addString=function(e){return this.highlightAndFindWithNeedle(!1,function(t){if(!l(t))return t+e;var n=c(t);return n.expression+=e,p(n)})},this.removeChar=function(e){return this.highlightAndFindWithNeedle(!1,function(e){if(!l(e))return e.substring(0,e.length-1);var t=c(e);return t.expression=t.expression.substring(0,t.expression.length-1),p(t)})},this.next=function(e){return e=e||{},this.$options.backwards=!!e.backwards,this.$currentPos=this.$editor.getCursorPosition(),this.highlightAndFindWithNeedle(!0,function(t){return e.useCurrentOrPrevSearch&&t.length===0?this.$prevNeedle||\"\":t})},this.onMouseDown=function(e){return this.deactivate(),!0},this.onPaste=function(e){this.addString(e)},this.convertNeedleToRegExp=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?e:h(e,\"ig\")})},this.convertNeedleToString=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?c(e).expression:e})},this.statusMessage=function(e){var t=this.$options,n=\"\";n+=t.backwards?\"reverse-\":\"\",n+=\"isearch: \"+t.needle,n+=e?\"\":\" (not found)\",this.message(n)},this.message=function(e){this.$editor.showCommandLine?(this.$editor.showCommandLine(e),this.$editor.focus()):console.log(e)}}.call(f.prototype),t.IncrementalSearch=f;var d=e(\"./lib/dom\");d.importCssString&&d.importCssString(\".ace_marker-layer .ace_isearch-result {  position: absolute;  z-index: 6;  box-sizing: border-box;}div.ace_isearch-result {  border-radius: 4px;  background-color: rgba(255, 200, 0, 0.5);  box-shadow: 0 0 4px rgb(255, 200, 0);}.ace_dark div.ace_isearch-result {  background-color: rgb(100, 110, 160);  box-shadow: 0 0 4px rgb(80, 90, 140);}\",\"incremental-search-highlighting\");var v=e(\"./commands/command_manager\");(function(){this.setupIncrementalSearch=function(e,t){if(this.usesIncrementalSearch==t)return;this.usesIncrementalSearch=t;var n=u.iSearchStartCommands,r=t?\"addCommands\":\"removeCommands\";this[r](n)}}).call(v.CommandManager.prototype);var m=e(\"./editor\").Editor;e(\"./config\").defineOptions(m.prototype,\"editor\",{useIncrementalSearch:{set:function(e){this.keyBinding.$handlers.forEach(function(t){t.setupIncrementalSearch&&t.setupIncrementalSearch(this,e)}),this._emit(\"incrementalSearchSettingChanged\",{isEnabled:e})}}})}),ace.define(\"ace/keyboard/emacs\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/incremental_search\",\"ace/commands/incremental_search_commands\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\");e(\"../incremental_search\");var i=e(\"../commands/incremental_search_commands\"),s=e(\"./hash_handler\").HashHandler;t.handler=new s,t.handler.isEmacs=!0,t.handler.$id=\"ace/keyboard/emacs\";var o=!1,u,a;t.handler.attach=function(e){o||(o=!0,r.importCssString(\"            .emacs-mode .ace_cursor{                border: 1px rgba(50,250,50,0.8) solid!important;                box-sizing: border-box!important;                background-color: rgba(0,250,0,0.9);                opacity: 0.5;            }            .emacs-mode .ace_hidden-cursors .ace_cursor{                opacity: 1;                background-color: transparent;            }            .emacs-mode .ace_overwrite-cursors .ace_cursor {                opacity: 1;                background-color: transparent;                border-width: 0 0 2px 2px !important;            }            .emacs-mode .ace_text-layer {                z-index: 4            }            .emacs-mode .ace_cursor-layer {                z-index: 2            }\",\"emacsMode\")),u=e.session.$selectLongWords,e.session.$selectLongWords=!0,a=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.$emacsMark=null,e.session.$emacsMarkRing=e.session.$emacsMarkRing||[],e.emacsMark=function(){return this.session.$emacsMark},e.setEmacsMark=function(e){this.session.$emacsMark=e},e.pushEmacsMark=function(e,t){var n=this.session.$emacsMark;n&&this.session.$emacsMarkRing.push(n),!e||t?this.setEmacsMark(e):this.session.$emacsMarkRing.push(e)},e.popEmacsMark=function(){var e=this.emacsMark();return e?(this.setEmacsMark(null),e):this.session.$emacsMarkRing.pop()},e.getLastEmacsMark=function(e){return this.session.$emacsMark||this.session.$emacsMarkRing.slice(-1)[0]},e.emacsMarkForSelection=function(e){var t=this.selection,n=this.multiSelect?this.multiSelect.getAllRanges().length:1,r=t.index||0,i=this.session.$emacsMarkRing,s=i.length-(n-r),o=i[s]||t.anchor;return e&&i.splice(s,1,\"row\"in e&&\"column\"in e?e:undefined),o},e.on(\"click\",l),e.on(\"changeSession\",f),e.renderer.$blockCursor=!0,e.setStyle(\"emacs-mode\"),e.commands.addCommands(d),t.handler.platform=e.commands.platform,e.$emacsModeHandler=this,e.addEventListener(\"copy\",this.onCopy),e.addEventListener(\"paste\",this.onPaste)},t.handler.detach=function(e){e.renderer.$blockCursor=!1,e.session.$selectLongWords=u,e.session.$useEmacsStyleLineStart=a,e.removeEventListener(\"click\",l),e.removeEventListener(\"changeSession\",f),e.unsetStyle(\"emacs-mode\"),e.commands.removeCommands(d),e.removeEventListener(\"copy\",this.onCopy),e.removeEventListener(\"paste\",this.onPaste),e.$emacsModeHandler=null};var f=function(e){e.oldSession&&(e.oldSession.$selectLongWords=u,e.oldSession.$useEmacsStyleLineStart=a),u=e.session.$selectLongWords,e.session.$selectLongWords=!0,a=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.hasOwnProperty(\"$emacsMark\")||(e.session.$emacsMark=null),e.session.hasOwnProperty(\"$emacsMarkRing\")||(e.session.$emacsMarkRing=[])},l=function(e){e.editor.session.$emacsMark=null},c=e(\"../lib/keys\").KEY_MODS,h={C:\"ctrl\",S:\"shift\",M:\"alt\",CMD:\"command\"},p=[\"C-S-M-CMD\",\"S-M-CMD\",\"C-M-CMD\",\"C-S-CMD\",\"C-S-M\",\"M-CMD\",\"S-CMD\",\"S-M\",\"C-CMD\",\"C-M\",\"C-S\",\"CMD\",\"M\",\"S\",\"C\"];p.forEach(function(e){var t=0;e.split(\"-\").forEach(function(e){t|=c[h[e]]}),h[t]=e.toLowerCase()+\"-\"}),t.handler.onCopy=function(e,n){if(n.$handlesEmacsOnCopy)return;n.$handlesEmacsOnCopy=!0,t.handler.commands.killRingSave.exec(n),n.$handlesEmacsOnCopy=!1},t.handler.onPaste=function(e,t){t.pushEmacsMark(t.getCursorPosition())},t.handler.bindKey=function(e,t){typeof e==\"object\"&&(e=e[this.platform]);if(!e)return;var n=this.commandKeyBinding;e.split(\"|\").forEach(function(e){e=e.toLowerCase(),n[e]=t;var r=e.split(\" \").slice(0,-1);r.reduce(function(e,t,n){var r=e[n-1]?e[n-1]+\" \":\"\";return e.concat([r+t])},[]).forEach(function(e){n[e]||(n[e]=\"null\")})},this)},t.handler.getStatusText=function(e,t){var n=\"\";return t.count&&(n+=t.count),t.keyChain&&(n+=\" \"+t.keyChain),n},t.handler.handleKeyboard=function(e,t,n,r){if(r===-1)return undefined;var i=e.editor;i._signal(\"changeStatus\");if(t==-1){i.pushEmacsMark();if(e.count){var s=(new Array(e.count+1)).join(n);return e.count=null,{command:\"insertstring\",args:s}}}var o=h[t];if(o==\"c-\"||e.count){var u=parseInt(n[n.length-1]);if(typeof u==\"number\"&&!isNaN(u))return e.count=Math.max(e.count,0)||0,e.count=10*e.count+u,{command:\"null\"}}o&&(n=o+n),e.keyChain&&(n=e.keyChain+=\" \"+n);var a=this.commandKeyBinding[n];e.keyChain=a==\"null\"?n:\"\";if(!a)return undefined;if(a===\"null\")return{command:\"null\"};if(a===\"universalArgument\")return e.count=-4,{command:\"null\"};var f;typeof a!=\"string\"&&(f=a.args,a.command&&(a=a.command),a===\"goorselect\"&&(a=i.emacsMark()?f[1]:f[0],f=null));if(typeof a==\"string\"){(a===\"insertstring\"||a===\"splitline\"||a===\"togglecomment\")&&i.pushEmacsMark(),a=this.commands[a]||i.commands.commands[a];if(!a)return undefined}!a.readOnly&&!a.isYank&&(e.lastCommand=null),!a.readOnly&&i.emacsMark()&&i.setEmacsMark(null);if(e.count){var u=e.count;e.count=0;if(!a||!a.handlesCount)return{args:f,command:{exec:function(e,t){for(var n=0;n<u;n++)a.exec(e,t)},multiSelectAction:a.multiSelectAction}};f||(f={}),typeof f==\"object\"&&(f.count=u)}return{command:a,args:f}},t.emacsKeys={\"Up|C-p\":{command:\"goorselect\",args:[\"golineup\",\"selectup\"]},\"Down|C-n\":{command:\"goorselect\",args:[\"golinedown\",\"selectdown\"]},\"Left|C-b\":{command:\"goorselect\",args:[\"gotoleft\",\"selectleft\"]},\"Right|C-f\":{command:\"goorselect\",args:[\"gotoright\",\"selectright\"]},\"C-Left|M-b\":{command:\"goorselect\",args:[\"gotowordleft\",\"selectwordleft\"]},\"C-Right|M-f\":{command:\"goorselect\",args:[\"gotowordright\",\"selectwordright\"]},\"Home|C-a\":{command:\"goorselect\",args:[\"gotolinestart\",\"selecttolinestart\"]},\"End|C-e\":{command:\"goorselect\",args:[\"gotolineend\",\"selecttolineend\"]},\"C-Home|S-M-,\":{command:\"goorselect\",args:[\"gotostart\",\"selecttostart\"]},\"C-End|S-M-.\":{command:\"goorselect\",args:[\"gotoend\",\"selecttoend\"]},\"S-Up|S-C-p\":\"selectup\",\"S-Down|S-C-n\":\"selectdown\",\"S-Left|S-C-b\":\"selectleft\",\"S-Right|S-C-f\":\"selectright\",\"S-C-Left|S-M-b\":\"selectwordleft\",\"S-C-Right|S-M-f\":\"selectwordright\",\"S-Home|S-C-a\":\"selecttolinestart\",\"S-End|S-C-e\":\"selecttolineend\",\"S-C-Home\":\"selecttostart\",\"S-C-End\":\"selecttoend\",\"C-l\":\"recenterTopBottom\",\"M-s\":\"centerselection\",\"M-g\":\"gotoline\",\"C-x C-p\":\"selectall\",\"C-Down\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"C-Up\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"PageDown|C-v\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"PageUp|M-v\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"S-C-Down\":\"selectpagedown\",\"S-C-Up\":\"selectpageup\",\"C-s\":\"iSearch\",\"C-r\":\"iSearchBackwards\",\"M-C-s\":\"findnext\",\"M-C-r\":\"findprevious\",\"S-M-5\":\"replace\",Backspace:\"backspace\",\"Delete|C-d\":\"del\",\"Return|C-m\":{command:\"insertstring\",args:\"\\n\"},\"C-o\":\"splitline\",\"M-d|C-Delete\":{command:\"killWord\",args:\"right\"},\"C-Backspace|M-Backspace|M-Delete\":{command:\"killWord\",args:\"left\"},\"C-k\":\"killLine\",\"C-y|S-Delete\":\"yank\",\"M-y\":\"yankRotate\",\"C-g\":\"keyboardQuit\",\"C-w|C-S-W\":\"killRegion\",\"M-w\":\"killRingSave\",\"C-Space\":\"setMark\",\"C-x C-x\":\"exchangePointAndMark\",\"C-t\":\"transposeletters\",\"M-u\":\"touppercase\",\"M-l\":\"tolowercase\",\"M-/\":\"autocomplete\",\"C-u\":\"universalArgument\",\"M-;\":\"togglecomment\",\"C-/|C-x u|S-C--|C-z\":\"undo\",\"S-C-/|S-C-x u|C--|S-C-z\":\"redo\",\"C-x r\":\"selectRectangularRegion\",\"M-x\":{command:\"focusCommandLine\",args:\"M-x \"}},t.handler.bindKeys(t.emacsKeys),t.handler.addCommands({recenterTopBottom:function(e){var t=e.renderer,n=t.$cursorLayer.getPixelPosition(),r=t.$size.scrollerHeight-t.lineHeight,i=t.scrollTop;Math.abs(n.top-i)<2?i=n.top-r:Math.abs(n.top-i-r*.5)<2?i=n.top:i=n.top-r*.5,e.session.setScrollTop(i)},selectRectangularRegion:function(e){e.multiSelect.toggleBlockSelection()},setMark:{exec:function(e,t){function u(){var t=e.popEmacsMark();t&&e.moveCursorToPosition(t)}if(t&&t.count){e.inMultiSelectMode?e.forEachSelection(u):u(),u();return}var n=e.emacsMark(),r=e.selection.getAllRanges(),i=r.map(function(e){return{row:e.start.row,column:e.start.column}}),s=!0,o=r.every(function(e){return e.isEmpty()});if(s&&(n||!o)){e.inMultiSelectMode?e.forEachSelection({exec:e.clearSelection.bind(e)}):e.clearSelection(),n&&e.pushEmacsMark(null);return}if(!n){i.forEach(function(t){e.pushEmacsMark(t)}),e.setEmacsMark(i[i.length-1]);return}},readOnly:!0,handlesCount:!0},exchangePointAndMark:{exec:function(t,n){var r=t.selection;if(!n.count&&!r.isEmpty()){r.setSelectionRange(r.getRange(),!r.isBackwards());return}if(n.count){var i={row:r.lead.row,column:r.lead.column};r.clearSelection(),r.moveCursorToPosition(t.emacsMarkForSelection(i))}else r.selectToPosition(t.emacsMarkForSelection())},readOnly:!0,handlesCount:!0,multiSelectAction:\"forEach\"},killWord:{exec:function(e,n){e.clearSelection(),n==\"left\"?e.selection.selectWordLeft():e.selection.selectWordRight();var r=e.getSelectionRange(),i=e.session.getTextRange(r);t.killRing.add(i),e.session.remove(r),e.clearSelection()},multiSelectAction:\"forEach\"},killLine:function(e){e.pushEmacsMark(null),e.clearSelection();var n=e.getSelectionRange(),r=e.session.getLine(n.start.row);n.end.column=r.length,r=r.substr(n.start.column);var i=e.session.getFoldLine(n.start.row);i&&n.end.row!=i.end.row&&(n.end.row=i.end.row,r=\"x\"),/^\\s*$/.test(r)&&(n.end.row++,r=e.session.getLine(n.end.row),n.end.column=/^\\s*$/.test(r)?r.length:0);var s=e.session.getTextRange(n);e.prevOp.command==this?t.killRing.append(s):t.killRing.add(s),e.session.remove(n),e.clearSelection()},yank:function(e){e.onPaste(t.killRing.get()||\"\"),e.keyBinding.$data.lastCommand=\"yank\"},yankRotate:function(e){if(e.keyBinding.$data.lastCommand!=\"yank\")return;e.undo(),e.session.$emacsMarkRing.pop(),e.onPaste(t.killRing.rotate()),e.keyBinding.$data.lastCommand=\"yank\"},killRegion:{exec:function(e){t.killRing.add(e.getCopyText()),e.commands.byName.cut.exec(e),e.setEmacsMark(null)},readOnly:!0,multiSelectAction:\"forEach\"},killRingSave:{exec:function(e){e.$handlesEmacsOnCopy=!0;var n=e.session.$emacsMarkRing.slice(),r=[];t.killRing.add(e.getCopyText()),setTimeout(function(){function t(){var t=e.selection,n=t.getRange(),i=t.isBackwards()?n.end:n.start;r.push({row:i.row,column:i.column}),t.clearSelection()}e.$handlesEmacsOnCopy=!1,e.inMultiSelectMode?e.forEachSelection({exec:t}):t(),e.session.$emacsMarkRing=n.concat(r.reverse())},0)},readOnly:!0},keyboardQuit:function(e){e.selection.clearSelection(),e.setEmacsMark(null),e.keyBinding.$data.count=null},focusCommandLine:function(e,t){e.showCommandLine&&e.showCommandLine(t)}}),t.handler.addCommands(i.iSearchStartCommands);var d=t.handler.commands;d.yank.isYank=!0,d.yankRotate.isYank=!0,t.killRing={$data:[],add:function(e){e&&this.$data.push(e),this.$data.length>30&&this.$data.shift()},append:function(e){var t=this.$data.length-1,n=this.$data[t]||\"\";e&&(n+=e),n&&(this.$data[t]=n)},get:function(e){return e=e||1,this.$data.slice(this.$data.length-e,this.$data.length).reverse().join(\"\\n\")},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}});\n                (function() {\n                    ace.require([\"ace/keyboard/emacs\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/keybinding-vim.js",
    "content": "ace.define(\"ace/keyboard/vim\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/keys\",\"ace/lib/event\",\"ace/search\",\"ace/lib/useragent\",\"ace/search_highlight\",\"ace/commands/multi_select_commands\",\"ace/mode/text\",\"ace/multi_select\"],function(e,t,n){\"use strict\";function r(){function t(e){return typeof e!=\"object\"?e+\"\":\"line\"in e?e.line+\":\"+e.ch:\"anchor\"in e?t(e.anchor)+\"->\"+t(e.head):Array.isArray(e)?\"[\"+e.map(function(e){return t(e)})+\"]\":JSON.stringify(e)}var e=\"\";for(var n=0;n<arguments.length;n++){var r=arguments[n],i=t(r);e+=i+\"  \"}console.log(e)}function m(e){return{row:e.line,column:e.ch}}function g(e){return new E(e.row,e.column)}function x(e){e.setOption(\"disableInput\",!0),e.setOption(\"showCursorWhenSelecting\",!1),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),e.on(\"cursorActivity\",Gn),tt(e),v.on(e.getInputField(),\"paste\",M(e))}function T(e){e.setOption(\"disableInput\",!1),e.off(\"cursorActivity\",Gn),v.off(e.getInputField(),\"paste\",M(e)),e.state.vim=null}function N(e,t){this==v.keyMap.vim&&v.rmClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&T(e)}function C(e,t){this==v.keyMap.vim&&v.addClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&x(e)}function k(e,t){if(!t)return undefined;if(this[e])return this[e];var n=O(e);if(!n)return!1;var r=v.Vim.findKey(t,n);return typeof r==\"function\"&&v.signal(t,\"vim-keypress\",n),r}function O(e){if(e.charAt(0)==\"'\")return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(t.length==1&&t[0].length==1)return!1;if(t.length==2&&t[0]==\"Shift\"&&n.length==1)return!1;var r=!1;for(var i=0;i<t.length;i++){var s=t[i];s in L?t[i]=L[s]:r=!0,s in A&&(t[i]=A[s])}return r?(X(n)&&(t[t.length-1]=n.toLowerCase()),\"<\"+t.join(\"-\")+\">\"):!1}function M(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(St(e.getCursor(),0,1)),yt.enterInsertMode(e,{},t))}),t.onPasteFn}function H(e,t){var n=[];for(var r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}function R(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function U(e){return/^[a-z]$/.test(e)}function z(e){return\"()[]{}\".indexOf(e)!=-1}function W(e){return _.test(e)}function X(e){return/^[A-Z]$/.test(e)}function V(e){return/^\\s*$/.test(e)}function $(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function K(e,t,n,r,i){if(t===undefined&&!i)throw Error(\"defaultValue is required unless callback is provided\");n||(n=\"string\"),J[e]={type:n,defaultValue:t,callback:i};if(r)for(var s=0;s<r.length;s++)J[r[s]]=J[e];t&&Q(e,t)}function Q(e,t,n,r){var i=J[e];r=r||{};var s=r.scope;if(!i)return new Error(\"Unknown option: \"+e);if(i.type==\"boolean\"){if(t&&t!==!0)return new Error(\"Invalid argument: \"+e+\"=\"+t);t!==!1&&(t=!0)}i.callback?(s!==\"local\"&&i.callback(t,undefined),s!==\"global\"&&n&&i.callback(t,n)):(s!==\"local\"&&(i.value=i.type==\"boolean\"?!!t:t),s!==\"global\"&&n&&(n.state.vim.options[e]={value:t}))}function G(e,t,n){var r=J[e];n=n||{};var i=n.scope;if(!r)return new Error(\"Unknown option: \"+e);if(r.callback){var s=t&&r.callback(undefined,t);if(i!==\"global\"&&s!==undefined)return s;if(i!==\"local\")return r.callback();return}var s=i!==\"global\"&&t&&t.state.vim.options[e];return(s||i!==\"local\"&&r||{}).value}function et(){this.latestRegister=undefined,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=undefined,this.lastInsertModeChanges=Z()}function tt(e){return e.state.vim||(e.state.vim={inputState:new ot,lastEditInputState:undefined,lastEditActionCommand:undefined,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:undefined,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function rt(){nt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:undefined,jumpList:Y(),macroModeState:new et,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:\"\"},registerController:new lt({}),searchHistoryController:new ct,exCommandHistoryController:new ct};for(var e in J){var t=J[e];t.value=t.defaultValue}}function ot(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function ut(e,t){e.state.vim.inputState=new ot,v.signal(e,\"vim-command-done\",t)}function at(e,t,n){this.clear(),this.keyBuffer=[e||\"\"],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function ft(e,t){var n=nt.registerController.registers;if(!e||e.length!=1)throw Error(\"Register name must be 1 character\");n[e]=t,q.push(e)}function lt(e){this.registers=e,this.unnamedRegister=e['\"']=new at,e[\".\"]=new at,e[\":\"]=new at,e[\"/\"]=new at}function ct(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function dt(e,t){pt[e]=t}function vt(e,t){var n=[];for(var r=0;r<t;r++)n.push(e);return n}function gt(e,t){mt[e]=t}function bt(e,t){yt[e]=t}function wt(e,t,n){var r=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=Pt(e,r)-1;i=n?i+1:i;var s=Math.min(Math.max(0,t.ch),i);return E(r,s)}function Et(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function St(e,t,n){return typeof t==\"object\"&&(n=t.ch,t=t.line),E(e.line+t,e.ch+n)}function xt(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function Tt(e,t,n,r){var i,s=[],o=[];for(var u=0;u<t.length;u++){var a=t[u];if(n==\"insert\"&&a.context!=\"insert\"||a.context&&a.context!=n||r.operator&&a.type==\"action\"||!(i=Nt(e,a.keys)))continue;i==\"partial\"&&s.push(a),i==\"full\"&&o.push(a)}return{partial:s.length&&s,full:o.length&&o}}function Nt(e,t){if(t.slice(-11)==\"<character>\"){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?\"full\":i.indexOf(r)==0?\"partial\":!1}return e==t?\"full\":t.indexOf(e)==0?\"partial\":!1}function Ct(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case\"<CR>\":n=\"\\n\";break;case\"<Space>\":n=\" \";break;default:n=\"\"}return n}function kt(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function Lt(e){return E(e.line,e.ch)}function At(e,t){return e.ch==t.ch&&e.line==t.line}function Ot(e,t){return e.line<t.line?!0:e.line==t.line&&e.ch<t.ch?!0:!1}function Mt(e,t){return arguments.length>2&&(t=Mt.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?e:t}function _t(e,t){return arguments.length>2&&(t=_t.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?t:e}function Dt(e,t,n){var r=Ot(e,t),i=Ot(t,n);return r&&i}function Pt(e,t){return e.getLine(t).length}function Ht(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function Bt(e){return e.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g,\"\\\\$1\")}function jt(e,t,n){var r=Pt(e,t),i=(new Array(n-r+1)).join(\" \");e.setCursor(E(t,r)),e.replaceRange(i,e.getCursor())}function Ft(e,t){var n=[],r=e.listSelections(),i=Lt(e.clipPos(t)),s=!At(t,i),o=e.getCursor(\"head\"),u=qt(r,o),a=At(r[u].head,r[u].anchor),f=r.length-1,l=f-u>u?f:0,c=r[l].anchor,h=Math.min(c.line,i.line),p=Math.max(c.line,i.line),d=c.ch,v=i.ch,m=r[l].head.ch-d,g=v-d;m>0&&g<=0?(d++,s||v--):m<0&&g>=0?(d--,a||v++):m<0&&g==-1&&(d--,v++);for(var y=h;y<=p;y++){var b={anchor:new E(y,d),head:new E(y,v)};n.push(b)}return e.setSelections(n),t.ch=v,c.ch=d,c}function It(e,t,n){var r=[];for(var i=0;i<n;i++){var s=St(t,i,0);r.push({anchor:s,head:s})}e.setSelections(r,0)}function qt(e,t,n){for(var r=0;r<e.length;r++){var i=n!=\"head\"&&At(e[r].anchor,t),s=n!=\"anchor\"&&At(e[r].head,t);if(i||s)return r}return-1}function Rt(e,t){var n=t.lastSelection,r=function(){var t=e.listSelections(),n=t[0],r=t[t.length-1],i=Ot(n.anchor,n.head)?n.anchor:n.head,s=Ot(r.anchor,r.head)?r.head:r.anchor;return[i,s]},i=function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var s=i.width,o=i.height;r=E(t.line+o,t.ch+s);var u=[];for(var a=t.line;a<r.line;a++){var f=E(a,t.ch),l=E(a,r.ch),c={anchor:f,head:l};u.push(c)}e.setSelections(u)}else{var h=n.anchorMark.find(),p=n.headMark.find(),d=p.line-h.line,v=p.ch-h.ch;r={line:r.line+d,ch:d?r.ch:v+r.ch},n.visualLine&&(t=E(t.line,0),r=E(r.line,Pt(e,r.line))),e.setSelection(t,r)}return[t,r]};return t.visualMode?r():i()}function Ut(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:Lt(n),head:Lt(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function zt(e,t,n){var r=e.state.vim.sel,i=r.head,s=r.anchor,o;return Ot(n,t)&&(o=n,n=t,t=o),Ot(i,s)?(i=Mt(t,i),s=_t(s,n)):(s=Mt(t,s),i=_t(i,n),i=St(i,0,-1),i.ch==-1&&i.line!=e.firstLine()&&(i=E(i.line-1,Pt(e,i.line-1)))),[s,i]}function Wt(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?\"line\":r.visualBlock?\"block\":\"char\",i=Xt(e,t,n);e.setSelections(i.ranges,i.primary),Yn(e)}function Xt(e,t,n,r){var i=Lt(t.head),s=Lt(t.anchor);if(n==\"char\"){var o=!r&&!Ot(t.head,t.anchor)?1:0,u=Ot(t.head,t.anchor)?1:0;return i=St(t.head,0,o),s=St(t.anchor,0,u),{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"line\"){if(!Ot(t.head,t.anchor)){s.ch=0;var a=e.lastLine();i.line>a&&(i.line=a),i.ch=Pt(e,i.line)}else i.ch=0,s.ch=Pt(e,s.line);return{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"block\"){var f=Math.min(s.line,i.line),l=Math.min(s.ch,i.ch),c=Math.max(s.line,i.line),h=Math.max(s.ch,i.ch)+1,p=c-f+1,d=i.line==f?0:p-1,v=[];for(var m=0;m<p;m++)v.push({anchor:E(f+m,l),head:E(f+m,h)});return{ranges:v,primary:d}}}function Vt(e){var t=e.getCursor(\"head\");return e.getSelection().length==1&&(t=Mt(t,e.getCursor(\"anchor\"))),t}function $t(e,t){var n=e.state.vim;t!==!1&&e.setCursor(wt(e,n.sel.head)),Ut(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.fakeCursor&&n.fakeCursor.clear()}function Jt(e,t,n){var r=e.getRange(t,n);if(/\\n\\s*$/.test(r)){var i=r.split(\"\\n\");i.pop();var s;for(var s=i.pop();i.length>0&&s&&V(s);s=i.pop())n.line--,n.ch=0;s?(n.line--,n.ch=Pt(e,n.line)):n.ch=0}}function Kt(e,t,n){t.ch=0,n.ch=0,n.line++}function Qt(e){if(!e)return 0;var t=e.search(/\\S/);return t==-1?e.length:t}function Gt(e,t,n,r,i){var s=Vt(e),o=e.getLine(s.line),u=s.ch,a=i?D[0]:P[0];while(!a(o.charAt(u))){u++;if(u>=o.length)return null}r?a=P[0]:(a=D[0],a(o.charAt(u))||(a=D[1]));var f=u,l=u;while(a(o.charAt(f))&&f<o.length)f++;while(a(o.charAt(l))&&l>=0)l--;l++;if(t){var c=f;while(/\\s/.test(o.charAt(f))&&f<o.length)f++;if(c==f){var h=l;while(/\\s/.test(o.charAt(l-1))&&l>0)l--;l||(l=h)}}return{start:E(s.line,l),end:E(s.line,f)}}function Yt(e,t,n){At(t,n)||nt.jumpList.add(e,t,n)}function Zt(e,t){nt.lastCharacterSearch.increment=e,nt.lastCharacterSearch.forward=t.forward,nt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function nn(e,t,n,r){var i=Lt(e.getCursor()),s=n?1:-1,o=n?e.lineCount():-1,u=i.ch,a=i.line,f=e.getLine(a),l={lineText:f,nextCh:f.charAt(u),lastCh:null,index:u,symb:r,reverseSymb:(n?{\")\":\"(\",\"}\":\"{\"}:{\"(\":\")\",\"{\":\"}\"})[r],forward:n,depth:0,curMoveThrough:!1},c=en[r];if(!c)return i;var h=tn[c].init,p=tn[c].isComplete;h&&h(l);while(a!==o&&t){l.index+=s,l.nextCh=l.lineText.charAt(l.index);if(!l.nextCh){a+=s,l.lineText=e.getLine(a)||\"\";if(s>0)l.index=0;else{var d=l.lineText.length;l.index=d>0?d-1:0}l.nextCh=l.lineText.charAt(l.index)}p(l)&&(i.line=a,i.ch=l.index,t--)}return l.nextCh||l.curMoveThrough?E(a,l.index):i}function rn(e,t,n,r,i){var s=t.line,o=t.ch,u=e.getLine(s),a=n?1:-1,f=r?P:D;if(i&&u==\"\"){s+=a,u=e.getLine(s);if(!R(e,s))return null;o=n?0:u.length}for(;;){if(i&&u==\"\")return{from:0,to:0,line:s};var l=a>0?u.length:-1,c=l,h=l;while(o!=l){var p=!1;for(var d=0;d<f.length&&!p;++d)if(f[d](u.charAt(o))){c=o;while(o!=l&&f[d](u.charAt(o)))o+=a;h=o,p=c!=h;if(c==t.ch&&s==t.line&&h==c+a)continue;return{from:Math.min(c,h+1),to:Math.max(c,h),line:s}}p||(o+=a)}s+=a;if(!R(e,s))return null;u=e.getLine(s),o=a>0?0:u.length}}function sn(e,t,n,r,i,s){var o=Lt(t),u=[];(r&&!i||!r&&i)&&n++;var a=!r||!i;for(var f=0;f<n;f++){var l=rn(e,t,r,s,a);if(!l){var c=Pt(e,e.lastLine());u.push(r?{line:e.lastLine(),from:c,to:c}:{line:0,from:0,to:0});break}u.push(l),t=E(l.line,r?l.to-1:l.from)}var h=u.length!=n,p=u[0],d=u.pop();return r&&!i?(!h&&(p.from!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.from)):r&&i?E(d.line,d.to-1):!r&&i?(!h&&(p.to!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.to)):E(d.line,d.from)}function on(e,t,n,r){var i=e.getCursor(),s=i.ch,o;for(var u=0;u<t;u++){var a=e.getLine(i.line);o=fn(s,a,r,n,!0);if(o==-1)return null;s=o}return E(e.getCursor().line,o)}function un(e,t){var n=e.getCursor().line;return wt(e,E(n,t-1))}function an(e,t,n,r){if(!$(n,I))return;t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r)}function fn(e,t,n,r,i){var s;return r?(s=t.indexOf(n,e+1),s!=-1&&!i&&(s-=1)):(s=t.lastIndexOf(n,e-1),s!=-1&&!i&&(s+=1)),s}function ln(e,t,n,r,i){function c(t){return!/\\S/.test(e.getLine(t))}function h(e,t,n){return n?c(e)!=c(e+t):!c(e)&&c(e+t)}function p(t){r=r>0?1:-1;var n=e.ace.session.getFoldLine(t);n&&t+r>n.start.row&&t+r<n.end.row&&(r=(r>0?n.end.row:n.start.row)-t)}var s=t.line,o=e.firstLine(),u=e.lastLine(),a,f,l=s;if(r){while(o<=l&&l<=u&&n>0)p(l),h(l,r)&&n--,l+=r;return new E(l,0)}var d=e.state.vim;if(d.visualLine&&h(s,1,!0)){var v=d.sel.anchor;h(v.line,-1,!0)&&(!i||v.line!=s)&&(s+=1)}var m=c(s);for(l=s;l<=u&&n;l++)h(l,1,!0)&&(!i||c(l)!=m)&&n--;f=new E(l,0),l>u&&!m?m=!0:i=!1;for(l=s;l>o;l--)if(!i||c(l)==m||l==s)if(h(l,-1,!0))break;return a=new E(l,0),{start:a,end:f}}function cn(e,t,n,r){var i=t,s,o,u={\"(\":/[()]/,\")\":/[()]/,\"[\":/[[\\]]/,\"]\":/[[\\]]/,\"{\":/[{}]/,\"}\":/[{}]/}[n],a={\"(\":\"(\",\")\":\"(\",\"[\":\"[\",\"]\":\"[\",\"{\":\"{\",\"}\":\"{\"}[n],f=e.getLine(i.line).charAt(i.ch),l=f===a?1:0;s=e.scanForBracket(E(i.line,i.ch+l),-1,null,{bracketRegex:u}),o=e.scanForBracket(E(i.line,i.ch+l),1,null,{bracketRegex:u});if(!s||!o)return{start:i,end:i};s=s.pos,o=o.pos;if(s.line==o.line&&s.ch>o.ch||s.line>o.line){var c=s;s=o,o=c}return r?o.ch+=1:s.ch+=1,{start:s,end:o}}function hn(e,t,n,r){var i=Lt(t),s=e.getLine(i.line),o=s.split(\"\"),u,a,f,l,c=o.indexOf(n);i.ch<c?i.ch=c:c<i.ch&&o[i.ch]==n&&(a=i.ch,--i.ch);if(o[i.ch]==n&&!a)u=i.ch+1;else for(f=i.ch;f>-1&&!u;f--)o[f]==n&&(u=f+1);if(u&&!a)for(f=u,l=o.length;f<l&&!a;f++)o[f]==n&&(a=f);return!u||!a?{start:i,end:i}:(r&&(--u,++a),{start:E(i.line,u),end:E(i.line,a)})}function pn(){}function dn(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new pn)}function vn(e,t,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1,onClose:function(){e.state.vim.status=\"\",e.ace.renderer.$loop.schedule(e.ace.renderer.CHANGE_CURSOR)}}):r(prompt(n,\"\"))}function mn(e){return yn(e,\"/\")}function gn(e){return bn(e,\"/\")}function yn(e,t){var n=bn(e,t)||[];if(!n.length)return[];var r=[];if(n[0]!==0)return;for(var i=0;i<n.length;i++)typeof n[i]==\"number\"&&r.push(e.substring(n[i]+1,n[i+1]));return r}function bn(e,t){t||(t=\"/\");var n=!1,r=[];for(var i=0;i<e.length;i++){var s=e.charAt(i);!n&&s==t&&r.push(i),n=!n&&s==\"\\\\\"}return r}function wn(e){var t=\"|(){\",n=\"}\",r=!1,i=[];for(var s=-1;s<e.length;s++){var o=e.charAt(s)||\"\",u=e.charAt(s+1)||\"\",a=u&&t.indexOf(u)!=-1;r?((o!==\"\\\\\"||!a)&&i.push(o),r=!1):o===\"\\\\\"?(r=!0,u&&n.indexOf(u)!=-1&&(a=!0),(!a||u===\"\\\\\")&&i.push(o)):(i.push(o),a&&u!==\"\\\\\"&&i.push(\"\\\\\"))}return i.join(\"\")}function Sn(e){var t=!1,n=[];for(var r=-1;r<e.length;r++){var i=e.charAt(r)||\"\",s=e.charAt(r+1)||\"\";En[i+s]?(n.push(En[i+s]),r++):t?(n.push(i),t=!1):i===\"\\\\\"?(t=!0,W(s)||s===\"$\"?n.push(\"$\"):s!==\"/\"&&s!==\"\\\\\"&&n.push(\"\\\\\")):(i===\"$\"&&n.push(\"$\"),n.push(i),s===\"/\"&&n.push(\"\\\\\"))}return n.join(\"\")}function Tn(e){var t=new v.StringStream(e),n=[];while(!t.eol()){while(t.peek()&&t.peek()!=\"\\\\\")n.push(t.next());var r=!1;for(var i in xn)if(t.match(i,!0)){r=!0,n.push(xn[i]);break}r||n.push(t.next())}return n.join(\"\")}function Nn(e,t,n){var r=nt.registerController.getRegister(\"/\");r.setText(e);if(e instanceof RegExp)return e;var i=gn(e),s,o;if(!i.length)s=e;else{s=e.substring(0,i[0]);var u=e.substring(i[0]);o=u.indexOf(\"i\")!=-1}if(!s)return null;G(\"pcre\")||(s=wn(s)),n&&(t=/^[^A-Z]*$/.test(s));var a=new RegExp(s,t||o?\"i\":undefined);return a}function Cn(e,t){e.openNotification?e.openNotification('<span style=\"color: red\">'+t+\"</span>\",{bottom:!0,duration:5e3}):alert(t)}function kn(e,t){var n='<span style=\"font-family: monospace; white-space: pre\">'+(e||\"\")+'<input type=\"text\"></span>';return t&&(n+=' <span style=\"color: #888\">'+t+\"</span>\"),n}function An(e,t){var n=(t.prefix||\"\")+\" \"+(t.desc||\"\"),r=kn(t.prefix,t.desc);vn(e,r,n,t.onClose,t)}function On(e,t){if(e instanceof RegExp&&t instanceof RegExp){var n=[\"global\",\"multiline\",\"ignoreCase\",\"source\"];for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function Mn(e,t,n,r){if(!t)return;var i=dn(e),s=Nn(t,!!n,!!r);if(!s)return;return Dn(e,s),On(s,i.getQuery())?s:(i.setQuery(s),s)}function _n(e){if(e.source.charAt(0)==\"^\")var t=!0;return{token:function(n){if(t&&!n.sol()){n.skipToEnd();return}var r=n.match(e,!1);if(r){if(r[0].length==0)return n.next(),\"searching\";if(!n.sol()){n.backUp(1);if(!e.exec(n.next()+r[0]))return n.next(),null}return n.match(e),\"searching\"}while(!n.eol()){n.next();if(n.match(e,!1))break}},query:e}}function Dn(e,t){var n=dn(e),r=n.getOverlay();if(!r||t!=r.query)r&&e.removeOverlay(r),r=_n(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r)}function Pn(e,t,n,r){return r===undefined&&(r=1),e.operation(function(){var i=e.getCursor(),s=e.getSearchCursor(n,i);for(var o=0;o<r;o++){var u=s.find(t);o==0&&u&&At(s.from(),i)&&(u=s.find(t));if(!u){s=e.getSearchCursor(n,t?E(e.lastLine()):E(e.firstLine(),0));if(!s.find(t))return}}return s.from()})}function Hn(e){var t=dn(e);e.removeOverlay(dn(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Bn(e,t,n){return typeof e!=\"number\"&&(e=e.line),t instanceof Array?$(e,t):n?e>=t&&e<=n:e==t}function jn(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function Fn(e,t,n){var r=t.marks[n];return r&&r.find()}function Un(e,t,n,r,i,s,o,u,a){function c(){e.operation(function(){while(!f)h(),p();d()})}function h(){var t=e.getRange(s.from(),s.to()),n=t.replace(o,u);s.replace(n)}function p(){while(s.findNext()&&Bn(s.from(),r,i)){if(!n&&l&&s.from().line==l.line)continue;e.scrollIntoView(s.from(),30),e.setSelection(s.from(),s.to()),l=s.from(),f=!1;return}f=!0}function d(t){t&&t(),e.focus();if(l){e.setCursor(l);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=l.ch}a&&a()}function m(t,n,r){v.e_stop(t);var i=v.keyName(t);switch(i){case\"Y\":h(),p();break;case\"N\":p();break;case\"A\":var s=a;a=undefined,e.operation(c),a=s;break;case\"L\":h();case\"Q\":case\"Esc\":case\"Ctrl-C\":case\"Ctrl-[\":d(r)}return f&&d(r),!0}e.state.vim.exMode=!0;var f=!1,l=s.from();p();if(f){Cn(e,\"No matches for \"+o.source);return}if(!t){c(),a&&a();return}An(e,{prefix:\"replace with <strong>\"+u+\"</strong> (y/n/a/q/l)\",onKeyDown:m})}function zn(e){var t=e.state.vim,n=nt.macroModeState,r=nt.registerController.getRegister(\".\"),i=n.isPlaying,s=n.lastInsertModeChanges,o=[];if(!i){var u=s.inVisualBlock&&t.lastSelection?t.lastSelection.visualBlock.height:1,a=s.changes,o=[],f=0;while(f<a.length)o.push(a[f]),a[f]instanceof er?f++:f+=u;s.changes=o,e.off(\"change\",Qn),v.off(e.getInputField(),\"keydown\",tr)}!i&&t.insertModeRepeat>1&&(nr(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption(\"keyMap\",\"vim\"),e.setOption(\"disableInput\",!0),e.toggleOverwrite(!1),r.setText(s.changes.join(\"\")),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.isRecording&&Jn(n)}function Wn(e){b.unshift(e)}function Xn(e,t,n,r,i){var s={keys:e,type:t};s[t]=n,s[t+\"Args\"]=r;for(var o in i)s[o]=i[o];Wn(s)}function Vn(e,t,n,r){var i=nt.registerController.getRegister(r);if(r==\":\"){i.keyBuffer[0]&&Rn.processCommand(e,i.keyBuffer[0]),n.isPlaying=!1;return}var s=i.keyBuffer,o=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var u=0;u<s.length;u++){var a=s[u],f,l;while(a){f=/<\\w+-.+?>|<\\w+>|./.exec(a),l=f[0],a=a.substring(f.index+l.length),v.Vim.handleKey(e,l,\"macro\");if(t.insertMode){var c=i.insertModeChanges[o++].changes;nt.macroModeState.lastInsertModeChanges.changes=c,rr(e,c,1),zn(e)}}}n.isPlaying=!1}function $n(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushText(t)}function Jn(e){if(e.isPlaying)return;var t=e.latestRegister,n=nt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}function Kn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}function Qn(e,t){var n=nt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)while(t){r.expectCursorActivityForChange=!0;if(t.origin==\"+input\"||t.origin==\"paste\"||t.origin===undefined){var i=t.text.join(\"\\n\");r.maybeReset&&(r.changes=[],r.maybeReset=!1),e.state.overwrite&&!/\\n/.test(i)?r.changes.push([i]):r.changes.push(i)}t=t.next}}function Gn(e){var t=e.state.vim;if(t.insertMode){var n=nt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.maybeReset=!0}else e.curOp.isVimOp||Zn(e,t);t.visualMode&&Yn(e)}function Yn(e){var t=e.state.vim,n=wt(e,Lt(t.sel.head)),r=St(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:\"cm-animate-fat-cursor\"})}function Zn(e,t){var n=e.getCursor(\"anchor\"),r=e.getCursor(\"head\");t.visualMode&&!e.somethingSelected()?$t(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,v.signal(e,\"vim-mode-change\",{mode:\"visual\"}));if(t.visualMode){var i=Ot(r,n)?0:-1,s=Ot(r,n)?-1:0;r=St(r,0,i),n=St(n,0,s),t.sel={anchor:n,head:r},an(e,t,\"<\",Mt(r,n)),an(e,t,\">\",_t(r,n))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}function er(e){this.keyName=e}function tr(e){function i(){return n.maybeReset&&(n.changes=[],n.maybeReset=!1),n.changes.push(new er(r)),!0}var t=nt.macroModeState,n=t.lastInsertModeChanges,r=v.keyName(e);if(!r)return;(r.indexOf(\"Delete\")!=-1||r.indexOf(\"Backspace\")!=-1)&&v.lookupKey(r,\"vim-insert\",i)}function nr(e,t,n,r){function u(){s?ht.processAction(e,t,t.lastEditActionCommand):ht.evalInput(e,t)}function a(n){if(i.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=i.lastInsertModeChanges;rr(e,r.changes,n)}}var i=nt.macroModeState;i.isPlaying=!0;var s=!!t.lastEditActionCommand,o=t.inputState;t.inputState=t.lastEditInputState;if(s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var f=0;f<n;f++)u(),a(1);else r||u(),a(n);t.inputState=o,t.insertMode&&!r&&zn(e),i.isPlaying=!1}function rr(e,t,n){function r(t){return typeof t==\"string\"?v.commands[t](e):t(e),!0}var i=e.getCursor(\"head\"),s=nt.macroModeState.lastInsertModeChanges.inVisualBlock;if(s){var o=e.state.vim,u=o.lastSelection,a=xt(u.anchor,u.head);It(e,i,a.line+1),n=e.listSelections().length,e.setCursor(i)}for(var f=0;f<n;f++){s&&e.setCursor(St(i,f,0));for(var l=0;l<t.length;l++){var c=t[l];if(c instanceof er)v.lookupKey(c.keyName,\"vim-insert\",r);else if(typeof c==\"string\"){var h=e.getCursor();e.replaceRange(c,h,h)}else{var p=e.getCursor(),d=St(p,0,c[0].length);e.replaceRange(c[0],p,d)}}}s&&e.setCursor(St(i,0,1))}function sr(e,t,n){t.length>1&&t[0]==\"n\"&&(t=t.replace(\"numpad\",\"\")),t=ir[t]||t;var r=\"\";return n.ctrlKey&&(r+=\"C-\"),n.altKey&&(r+=\"A-\"),n.shiftKey&&(r+=\"S-\"),r+=t,r.length>1&&(r=\"<\"+r+\">\"),r}function ur(e){var t=new e.constructor;return Object.keys(e).forEach(function(n){var r=e[n];Array.isArray(r)?r=r.slice():r&&typeof r==\"object\"&&r.constructor!=Object&&(r=ur(r)),t[n]=r}),e.sel&&(t.sel={head:e.sel.head&&Lt(e.sel.head),anchor:e.sel.anchor&&Lt(e.sel.anchor)}),t}function ar(e,t,n){var r=!1,i=S.maybeInitVimState_(e),s=i.visualBlock||i.wasInVisualBlock;i.wasInVisualBlock&&!e.ace.inMultiSelectMode?i.wasInVisualBlock=!1:e.ace.inMultiSelectMode&&i.visualBlock&&(i.wasInVisualBlock=!0);if(t==\"<Esc>\"&&!i.insertMode&&!i.visualMode&&e.ace.inMultiSelectMode)e.ace.exitMultiSelectMode();else if(s||!e.ace.inMultiSelectMode||e.ace.inVirtualSelectionMode)r=S.handleKey(e,t,n);else{var o=ur(i);e.operation(function(){e.ace.forEachSelection(function(){var i=e.ace.selection;e.state.vim.lastHPos=i.$desiredColumn==null?i.lead.column:i.$desiredColumn;var s=e.getCursor(\"head\"),u=e.getCursor(\"anchor\"),a=Ot(s,u)?0:-1,f=Ot(s,u)?-1:0;s=St(s,0,a),u=St(u,0,f),e.state.vim.sel.head=s,e.state.vim.sel.anchor=u,r=or(e,t,n),i.$desiredColumn=e.state.vim.lastHPos==-1?null:e.state.vim.lastHPos,e.virtualSelectionMode()&&(e.state.vim=ur(o))}),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1)},!0)}return r}function cr(e,t){t.off(\"beforeEndOperation\",cr);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var i=e(\"../range\").Range,s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../lib/dom\"),u=e(\"../lib/oop\"),a=e(\"../lib/keys\"),f=e(\"../lib/event\"),l=e(\"../search\").Search,c=e(\"../lib/useragent\"),h=e(\"../search_highlight\").SearchHighlight,p=e(\"../commands/multi_select_commands\"),d=e(\"../mode/text\").Mode.prototype.tokenRe;e(\"../multi_select\");var v=function(e){this.ace=e,this.state={},this.marks={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on(\"change\",this.onChange),this.ace.on(\"changeSelection\",this.onSelectionChange),this.ace.on(\"beforeEndOperation\",this.onBeforeEndOperation)};v.Pos=function(e,t){if(!(this instanceof E))return new E(e,t);this.line=e,this.ch=t},v.defineOption=function(e,t,n){},v.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert(\"\\n\")}},v.keyMap={},v.addClass=v.rmClass=function(){},v.e_stop=v.e_preventDefault=f.stopEvent,v.keyName=function(e){var t=a[e.keyCode]||e.key||\"\";return t.length==1&&(t=t.toUpperCase()),t=f.getModifierString(e).replace(/(^|-)\\w/g,function(e){return e.toUpperCase()})+t,t},v.keyMap[\"default\"]=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&t.ace.execCommand(n)!==!1}},v.lookupKey=function hr(e,t,n){typeof t==\"string\"&&(t=v.keyMap[t]);var r=typeof t==\"function\"?t(e):t[e];if(r===!1)return\"nothing\";if(r===\"...\")return\"multi\";if(r!=null&&n(r))return\"handled\";if(t.fallthrough){if(!Array.isArray(t.fallthrough))return hr(e,t.fallthrough,n);for(var i=0;i<t.fallthrough.length;i++){var s=hr(e,t.fallthrough[i],n);if(s)return s}}},v.signal=function(e,t,n){return e._signal(t,n)},v.on=f.addListener,v.off=f.removeListener,v.isWordChar=function(e){return e<\"\"?/^\\w$/.test(e):(d.lastIndex=0,d.test(e))},function(){u.implement(v.prototype,s),this.destroy=function(){this.ace.off(\"change\",this.onChange),this.ace.off(\"changeSelection\",this.onSelectionChange),this.ace.off(\"beforeEndOperation\",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){var t={text:e.action[0]==\"i\"?e.lines:[]},n=this.curOp=this.curOp||{};n.changeHandlers||(n.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice());if(this.virtualSelectionMode())return;n.lastChange?n.lastChange.next=n.lastChange=t:n.lastChange=n.change=t,this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(p.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation();if(!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:\"vim\",scrollIntoView:\"cursor\"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&this.ace.curOp.command.name==\"vim\"&&(this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal(\"change\",e.change,e),e&&e.cursorActivity&&this.signal(\"cursorActivity\",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+\"Handlers\"]:(this._eventRegistry||{})[e];if(!r)return;r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){typeof e==\"object\"&&(t=e.ch,e=e.line),this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.session.unfold({row:e,column:t}),this.ace.selection.moveTo(e,t)},this.getCursor=function(e){var t=this.ace.selection,n=e==\"anchor\"?t.isEmpty()?t.lead:t.anchor:e==\"head\"||!e?t.lead:t.getRange()[e];return g(n)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor(\"anchor\"),head:this.getCursor(\"head\")}]:t.map(function(e){return{anchor:this.clipPos(g(e.cursor==e.end?e.start:e.end)),head:this.clipPos(g(e.cursor))}},this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,r=e.map(function(e){var t=m(e.anchor),n=m(e.head),r=i.comparePoints(t,n)<0?new i.fromPoints(t,n):new i.fromPoints(n,t);return r.cursor=i.comparePoints(r.start,n)?r.end:r.start,r});if(this.ace.inVirtualSelectionMode){this.ace.selection.fromOrientedRange(r[0]);return}t?r[t]&&r.push(r.splice(t,1)[0]):r=r.reverse(),n.toSingleRange(r[0].clone());var s=this.ace.session;for(var o=0;o<r.length;o++){var u=s.$clipRangeToDocument(r[o]);n.addRange(u)}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&n.origin==\"*mouse\"&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){var t=this.ace.session.$clipPositionToDocument(e.line,e.ch);return g(t)},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t=e.action==\"insert\",n=e.start,r=e.end,s=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var u in this.marks){var a=this.marks[u],f=i.comparePoints(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias=-1;continue}f=1}var l=t?f:i.comparePoints(a,r);if(l>0){a.row+=s,a.column+=a.row==r.row?o:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return g(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);if(!n||!n.insertLeft)r.$insertRight=!0;return this.marks[r.id]=r,r},this.moveH=function(e,t){if(t==\"char\"){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if(n==\"page\"){var i=this.ace.renderer,s=i.layerConfig;t*=Math.floor(s.height/s.lineHeight),n=\"line\"}if(n==\"line\"){var o=this.ace.session.documentToScreenPosition(e.line,e.ch);r!=null&&(o.column=r),o.row+=t,o.row=Math.min(Math.max(0,o.row),this.ace.session.getScreenLength()-1);var u=this.ace.session.screenToDocumentPosition(o.row,o.column);return g(u)}debugger},this.charCoords=function(e,t){if(t==\"div\"||!t){var n=this.ace.session.documentToScreenPosition(e.line,e.ch);return{left:n.column,top:n.row}}if(t==\"local\"){var r=this.ace.renderer,n=this.ace.session.documentToScreenPosition(e.line,e.ch),i=r.layerConfig.lineHeight,s=r.layerConfig.characterWidth,o=i*n.row;return{left:n.column*s,top:o,bottom:o+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if(t==\"local\"){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),i=Math.max(0,Math.floor(e.left/n.characterWidth)),s=n.session.screenToDocumentPosition(r,i);return g(s)}if(t==\"div\")throw\"not implemented\"},this.getSearchCursor=function(e,t,n){var r=!1,i=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,i=!0);var s=new l;t.ch==undefined&&(t.ch=Number.MAX_VALUE);var o={row:t.line,column:t.ch},u=this,a=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){s.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:i,start:a||o});var n=s.find(u.ace.session);return n&&n.isEmpty()&&u.getLine(n.start.row).length==n.start.column&&(s.$options.start=n,n=s.find(u.ace.session)),a=n,a},from:function(){return a&&g(a.start)},to:function(){return a&&g(a.end)},replace:function(e){a&&(a.end=u.ace.session.doc.replace(a,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,t!=null&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),e!=null&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){if(e){var n=this.ace.renderer,r={top:0,bottom:t};n.scrollCursorIntoView(m(e),n.lineHeight*2/n.$size.scrollerHeight,r)}},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new i(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){return n||(n=t),this.ace.session.replace(new i(t.line,t.ch,n.line,n.ch),e)},this.replaceSelections=function(e){var t=this.ace.selection;if(this.ace.inVirtualSelectionMode){this.ace.session.replace(t.getRange(),e[0]||\"\");return}t.inVirtualSelectionMode=!0;var n=t.rangeList.ranges;n.length||(n=[this.ace.multiSelect.getRange()]);for(var r=n.length;r--;)this.ace.session.replace(n[r],e[r]||\"\");t.inVirtualSelectionMode=!1},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map(function(e){return this.getRange(e.anchor,e.head)},this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.containter};var t={indentWithTabs:\"useSoftTabs\",indentUnit:\"tabSize\",tabSize:\"tabSize\",firstLineNumber:\"firstLineNumber\",readOnly:\"readOnly\"};this.setOption=function(e,n){this.state[e]=n;switch(e){case\"indentWithTabs\":e=t[e],n=!n;break;default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e,n){var r=t[e];r&&(n=this.ace.getOption(r));switch(e){case\"indentWithTabs\":return e=t[e],!n}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new h(null,\"ace_highlight-marker\",\"text\"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off(\"change\",t.updateOnChange),t.session.off(\"changeEditor\",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){var n=e.start.row;n==e.end.row?t.cache[n]=undefined:t.cache.splice(n,t.cache.length)},t.session.on(\"changeEditor\",t.destroy),t.session.on(\"change\",t.updateOnChange)}var r=new RegExp(e.query.source,\"gmi\");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?\"string\":\"\"},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(m(e));return{to:t&&g(t)}},this.indentLine=function(e,t){t===!0?this.ace.session.indentRows(e,e,\"\t\"):t===!1&&this.ace.session.outdentRows(new i(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(m(e))},this.posFromIndex=function(e){return g(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.textInput.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,r){var i=r.bracketRegex.source;if(t==1)var s=this.ace.session.$findClosingBracket(i.slice(1,2),m(e),/paren|text/);else var s=this.ace.session.$findOpeningBracket(i.slice(-2,-1),{row:e.line,column:e.ch+1},/paren|text/);return s&&{pos:g(s)}},this.refresh=function(){return this.ace.resize(!0)},this.getMode=function(){return{name:this.getOption(\"mode\")}}}.call(v.prototype);var y=v.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};y.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if(typeof e==\"string\")var n=t==e;else var n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){var t=this.pos;while(this.eat(e));return this.pos>t},eatSpace:function(){var e=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw\"not implemented\"},indentation:function(){throw\"not implemented\"},match:function(e,t,n){if(typeof e!=\"string\"){var s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}var r=function(e){return n?e.toLowerCase():e},i=this.string.substr(this.pos,e.length);if(r(i)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},v.defineExtension=function(e,t){v.prototype[e]=t},o.importCssString(\".normal-mode .ace_cursor{  border: 1px solid red;  background-color: red;  opacity: 0.5;}.normal-mode .ace_hidden-cursors .ace_cursor{  background-color: transparent;}.ace_dialog {  position: absolute;  left: 0; right: 0;  background: white;  z-index: 15;  padding: .1em .8em;  overflow: hidden;  color: #333;}.ace_dialog-top {  border-bottom: 1px solid #eee;  top: 0;}.ace_dialog-bottom {  border-top: 1px solid #eee;  bottom: 0;}.ace_dialog input {  border: none;  outline: none;  background: transparent;  width: 20em;  color: inherit;  font-family: monospace;}\",\"vimMode\"),function(){function e(e,t,n){var r=e.ace.container,i;return i=r.appendChild(document.createElement(\"div\")),n?i.className=\"ace_dialog ace_dialog-bottom\":i.className=\"ace_dialog ace_dialog-top\",typeof t==\"string\"?i.innerHTML=t:i.appendChild(t),i}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}v.defineExtension(\"openDialog\",function(n,r,i){function a(e){if(typeof e==\"string\")f.value=e;else{if(o)return;o=!0,s.parentNode.removeChild(s),u.focus(),i.onClose&&i.onClose(s)}}if(this.virtualSelectionMode())return;i||(i={}),t(this,null);var s=e(this,n,i.bottom),o=!1,u=this,f=s.getElementsByTagName(\"input\")[0],l;if(f)i.value&&(f.value=i.value,i.selectValueOnOpen!==!1&&f.select()),i.onInput&&v.on(f,\"input\",function(e){i.onInput(e,f.value,a)}),i.onKeyUp&&v.on(f,\"keyup\",function(e){i.onKeyUp(e,f.value,a)}),v.on(f,\"keydown\",function(e){if(i&&i.onKeyDown&&i.onKeyDown(e,f.value,a))return;if(e.keyCode==27||i.closeOnEnter!==!1&&e.keyCode==13)f.blur(),v.e_stop(e),a();e.keyCode==13&&r(f.value)}),i.closeOnBlur!==!1&&v.on(f,\"blur\",a),f.focus();else if(l=s.getElementsByTagName(\"button\")[0])v.on(l,\"click\",function(){a(),u.focus()}),i.closeOnBlur!==!1&&v.on(l,\"blur\",a),l.focus();return a}),v.defineExtension(\"openNotification\",function(n,r){function a(){if(s)return;s=!0,clearTimeout(o),i.parentNode.removeChild(i)}if(this.virtualSelectionMode())return;t(this,a);var i=e(this,n,r&&r.bottom),s=!1,o,u=r&&typeof r.duration!=\"undefined\"?r.duration:5e3;return v.on(i,\"click\",function(e){v.e_preventDefault(e),a()}),u&&(o=setTimeout(a,u)),a})}();var b=[{keys:\"<Left>\",type:\"keyToKey\",toKeys:\"h\"},{keys:\"<Right>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<Up>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<Down>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<Space>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<BS>\",type:\"keyToKey\",toKeys:\"h\",context:\"normal\"},{keys:\"<C-Space>\",type:\"keyToKey\",toKeys:\"W\"},{keys:\"<C-BS>\",type:\"keyToKey\",toKeys:\"B\",context:\"normal\"},{keys:\"<S-Space>\",type:\"keyToKey\",toKeys:\"w\"},{keys:\"<S-BS>\",type:\"keyToKey\",toKeys:\"b\",context:\"normal\"},{keys:\"<C-n>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<C-p>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"cl\",context:\"normal\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"c\",context:\"visual\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"cc\",context:\"normal\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"VdO\",context:\"visual\"},{keys:\"<Home>\",type:\"keyToKey\",toKeys:\"0\"},{keys:\"<End>\",type:\"keyToKey\",toKeys:\"$\"},{keys:\"<PageUp>\",type:\"keyToKey\",toKeys:\"<C-b>\"},{keys:\"<PageDown>\",type:\"keyToKey\",toKeys:\"<C-f>\"},{keys:\"<CR>\",type:\"keyToKey\",toKeys:\"j^\",context:\"normal\"},{keys:\"<Ins>\",type:\"action\",action:\"toggleOverwrite\",context:\"insert\"},{keys:\"H\",type:\"motion\",motion:\"moveToTopLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"M\",type:\"motion\",motion:\"moveToMiddleLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"L\",type:\"motion\",motion:\"moveToBottomLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"h\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!1}},{keys:\"l\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!0}},{keys:\"j\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,linewise:!0}},{keys:\"k\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,linewise:!0}},{keys:\"gj\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!0}},{keys:\"gk\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!1}},{keys:\"w\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1}},{keys:\"W\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:\"e\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:\"E\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"b\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1}},{keys:\"B\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:\"ge\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:\"gE\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"{\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"}\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"<C-f>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!0}},{keys:\"<C-b>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!1}},{keys:\"<C-d>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:\"<C-u>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:\"gg\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"G\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"0\",type:\"motion\",motion:\"moveToStartOfLine\"},{keys:\"^\",type:\"motion\",motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"+\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0}},{keys:\"-\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,toFirstChar:!0}},{keys:\"_\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:\"$\",type:\"motion\",motion:\"moveToEol\",motionArgs:{inclusive:!0}},{keys:\"%\",type:\"motion\",motion:\"moveToMatchedSymbol\",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:\"f<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"F<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!1}},{keys:\"t<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"T<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!1}},{keys:\";\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!0}},{keys:\",\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!1}},{keys:\"'<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0,linewise:!0}},{keys:\"`<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0}},{keys:\"]`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0}},{keys:\"[`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1}},{keys:\"]'\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0,linewise:!0}},{keys:\"['\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1,linewise:!0}},{keys:\"]p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:\"[p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:\"]<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"[<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"|\",type:\"motion\",motion:\"moveToColumn\"},{keys:\"o\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",context:\"visual\"},{keys:\"O\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",motionArgs:{sameLine:!0},context:\"visual\"},{keys:\"d\",type:\"operator\",operator:\"delete\"},{keys:\"y\",type:\"operator\",operator:\"yank\"},{keys:\"c\",type:\"operator\",operator:\"change\"},{keys:\">\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!0}},{keys:\"<\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!1}},{keys:\"g~\",type:\"operator\",operator:\"changeCase\"},{keys:\"gu\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},isEdit:!0},{keys:\"gU\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},isEdit:!0},{keys:\"n\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"N\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"x\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:\"X\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:\"D\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"D\",type:\"operator\",operator:\"delete\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"Y\",type:\"operatorMotion\",operator:\"yank\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"Y\",type:\"operator\",operator:\"yank\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"C\",type:\"operatorMotion\",operator:\"change\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"C\",type:\"operator\",operator:\"change\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"~\",type:\"operatorMotion\",operator:\"changeCase\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:\"normal\"},{keys:\"~\",type:\"operator\",operator:\"changeCase\",context:\"visual\"},{keys:\"<C-w>\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1},context:\"insert\"},{keys:\"<C-i>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!0}},{keys:\"<C-o>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!1}},{keys:\"<C-e>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!0,linewise:!0}},{keys:\"<C-y>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!1,linewise:!0}},{keys:\"a\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"charAfter\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"eol\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"endOfSelectedArea\"},context:\"visual\"},{keys:\"i\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"inplace\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"firstNonBlank\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"startOfSelectedArea\"},context:\"visual\"},{keys:\"o\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:\"normal\"},{keys:\"O\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:\"normal\"},{keys:\"v\",type:\"action\",action:\"toggleVisualMode\"},{keys:\"V\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{linewise:!0}},{keys:\"<C-v>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"<C-q>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"gv\",type:\"action\",action:\"reselectLastSelection\"},{keys:\"J\",type:\"action\",action:\"joinLines\",isEdit:!0},{keys:\"p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:\"P\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:\"r<character>\",type:\"action\",action:\"replace\",isEdit:!0},{keys:\"@<character>\",type:\"action\",action:\"replayMacro\"},{keys:\"q<character>\",type:\"action\",action:\"enterMacroRecordMode\"},{keys:\"R\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{replace:!0}},{keys:\"u\",type:\"action\",action:\"undo\",context:\"normal\"},{keys:\"u\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},context:\"visual\",isEdit:!0},{keys:\"U\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},context:\"visual\",isEdit:!0},{keys:\"<C-r>\",type:\"action\",action:\"redo\"},{keys:\"m<character>\",type:\"action\",action:\"setMark\"},{keys:'\"<character>',type:\"action\",action:\"setRegister\"},{keys:\"zz\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"}},{keys:\"z.\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"zt\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"}},{keys:\"z<CR>\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"z-\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"}},{keys:\"zb\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\".\",type:\"action\",action:\"repeatLastEdit\"},{keys:\"<C-a>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:\"<C-x>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:\"<C-t>\",type:\"action\",action:\"indent\",actionArgs:{indentRight:!0},context:\"insert\"},{keys:\"<C-d>\",type:\"action\",action:\"indent\",actionArgs:{indentRight:!1},context:\"insert\"},{keys:\"a<character>\",type:\"motion\",motion:\"textObjectManipulation\"},{keys:\"i<character>\",type:\"motion\",motion:\"textObjectManipulation\",motionArgs:{textObjectInner:!0}},{keys:\"/\",type:\"search\",searchArgs:{forward:!0,querySrc:\"prompt\",toJumplist:!0}},{keys:\"?\",type:\"search\",searchArgs:{forward:!1,querySrc:\"prompt\",toJumplist:!0}},{keys:\"*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"g*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\"g#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\":\",type:\"ex\"}],w=[{name:\"colorscheme\",shortName:\"colo\"},{name:\"map\"},{name:\"imap\",shortName:\"im\"},{name:\"nmap\",shortName:\"nm\"},{name:\"vmap\",shortName:\"vm\"},{name:\"unmap\"},{name:\"write\",shortName:\"w\"},{name:\"undo\",shortName:\"u\"},{name:\"redo\",shortName:\"red\"},{name:\"set\",shortName:\"se\"},{name:\"set\",shortName:\"se\"},{name:\"setlocal\",shortName:\"setl\"},{name:\"setglobal\",shortName:\"setg\"},{name:\"sort\",shortName:\"sor\"},{name:\"substitute\",shortName:\"s\",possiblyAsync:!0},{name:\"nohlsearch\",shortName:\"noh\"},{name:\"yank\",shortName:\"y\"},{name:\"delmarks\",shortName:\"delm\"},{name:\"registers\",shortName:\"reg\",excludeFromCommandHistory:!0},{name:\"global\",shortName:\"g\"}],E=v.Pos,S=function(){return st};v.defineOption(\"vimMode\",!1,function(e,t,n){t&&e.getOption(\"keyMap\")!=\"vim\"?e.setOption(\"keyMap\",\"vim\"):!t&&n!=v.Init&&/^vim/.test(e.getOption(\"keyMap\"))&&e.setOption(\"keyMap\",\"default\")});var L={Shift:\"S\",Ctrl:\"C\",Alt:\"A\",Cmd:\"D\",Mod:\"A\"},A={Enter:\"CR\",Backspace:\"BS\",Delete:\"Del\",Insert:\"Ins\"},_=/[\\d]/,D=[v.isWordChar,function(e){return e&&!v.isWordChar(e)&&!/\\s/.test(e)}],P=[function(e){return/\\S/.test(e)}],B=H(65,26),j=H(97,26),F=H(48,10),I=[].concat(B,j,F,[\"<\",\">\"]),q=[].concat(B,j,F,[\"-\",'\"',\".\",\":\",\"/\"]),J={};K(\"filetype\",undefined,\"string\",[\"ft\"],function(e,t){if(t===undefined)return;if(e===undefined){var n=t.getOption(\"mode\");return n==\"null\"?\"\":n}var n=e==\"\"?\"null\":e;t.setOption(\"mode\",n)});var Y=function(){function s(s,o,u){function l(n){var r=++t%e,o=i[r];o&&o.clear(),i[r]=s.setBookmark(n)}var a=t%e,f=i[a];if(f){var c=f.find();c&&!At(c,o)&&l(o)}else l(o);l(u),n=t,r=t-e+1,r<0&&(r=0)}function o(s,o){t+=o,t>n?t=n:t<r&&(t=r);var u=i[(e+t)%e];if(u&&!u.find()){var a=o>0?1:-1,f,l=s.getCursor();do{t+=a,u=i[(e+t)%e];if(u&&(f=u.find())&&!At(l,f))break}while(t<n&&t>r)}return u}var e=100,t=-1,n=0,r=0,i=new Array(e);return{cachedCursor:undefined,add:s,move:o}},Z=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};et.prototype={exitMacroRecordMode:function(){var e=nt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=undefined,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=nt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog(\"(recording)[\"+t+\"]\",null,{bottom:!0})),this.isRecording=!0)}};var nt,it,st={buildKeyMap:function(){},getRegisterController:function(){return nt.registerController},resetVimGlobalState_:rt,getVimGlobalState_:function(){return nt},maybeInitVimState_:tt,suppressErrorLogging:!1,InsertModeKey:er,map:function(e,t,n){Rn.map(e,t,n)},unmap:function(e,t){Rn.unmap(e,t)},setOption:Q,getOption:G,defineOption:K,defineEx:function(e,t,n){if(!t)t=e;else if(e.indexOf(t)!==0)throw new Error('(Vim.defineEx) \"'+t+'\" is not a prefix of \"'+e+'\", command not registered');qn[e]=n,Rn.commandMap_[t]={name:e,shortName:t,type:\"api\"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if(typeof r==\"function\")return r()},findKey:function(e,t,n){function i(){var r=nt.macroModeState;if(r.isRecording){if(t==\"q\")return r.exitMacroRecordMode(),ut(e),!0;n!=\"mapping\"&&$n(r,t)}}function s(){if(t==\"<Esc>\")return ut(e),r.visualMode?$t(e):r.insertMode&&zn(e),!0}function o(n){var r;while(n)r=/<\\w+-.+?>|<\\w+>|./.exec(n),t=r[0],n=n.substring(r.index+t.length),v.Vim.handleKey(e,t,\"mapping\")}function u(){if(s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t,i=t.length==1,o=ht.matchCommand(n,b,r.inputState,\"insert\");while(n.length>1&&o.type!=\"full\"){var n=r.inputState.keyBuffer=n.slice(1),u=ht.matchCommand(n,b,r.inputState,\"insert\");u.type!=\"none\"&&(o=u)}if(o.type==\"none\")return ut(e),!1;if(o.type==\"partial\")return it&&window.clearTimeout(it),it=window.setTimeout(function(){r.insertMode&&r.inputState.keyBuffer&&ut(e)},G(\"insertModeEscKeysTimeout\")),!i;it&&window.clearTimeout(it);if(i){var a=e.listSelections();for(var f=0;f<a.length;f++){var l=a[f].head;e.replaceRange(\"\",St(l,0,-(n.length-1)),l,\"+input\")}nt.macroModeState.lastInsertModeChanges.changes.pop()}return ut(e),o.command}function a(){if(i()||s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t;if(/^[1-9]\\d*$/.test(n))return!0;var o=/^(\\d*)(.*)$/.exec(n);if(!o)return ut(e),!1;var u=r.visualMode?\"visual\":\"normal\",a=ht.matchCommand(o[2]||o[1],b,r.inputState,u);if(a.type==\"none\")return ut(e),!1;if(a.type==\"partial\")return!0;r.inputState.keyBuffer=\"\";var o=/^(\\d*)(.*)$/.exec(n);return o[1]&&o[1]!=\"0\"&&r.inputState.pushRepeatDigit(o[1]),a.command}var r=tt(e),f;return r.insertMode?f=u():f=a(),f===!1?undefined:f===!0?function(){return!0}:function(){if((f.operator||f.isEdit)&&e.getOption(\"readOnly\"))return;return e.operation(function(){e.curOp.isVimOp=!0;try{f.type==\"keyToKey\"?o(f.toKeys):ht.processCommand(e,r,f)}catch(t){throw e.state.vim=undefined,tt(e),v.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Rn.processCommand(e,t)},defineMotion:dt,defineAction:bt,defineOperator:gt,mapCommand:Xn,_mapCommand:Wn,defineRegister:ft,exitVisualMode:$t,exitInsertMode:zn};ot.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},ot.prototype.getRepeat=function(){var e=0;if(this.prefixRepeat.length>0||this.motionRepeat.length>0)e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(\"\"),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(\"\"),10));return e},at.prototype={setText:function(e,t,n){this.keyBuffer=[e||\"\"],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push(\"\\n\"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(Z(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join(\"\")}},lt.prototype={pushText:function(e,t,n,r,i){r&&n.charAt(n.length-1)!==\"\\n\"&&(n+=\"\\n\");var s=this.isValidRegister(e)?this.getRegister(e):null;if(!s){switch(t){case\"yank\":this.registers[0]=new at(n,r,i);break;case\"delete\":case\"change\":n.indexOf(\"\\n\")==-1?this.registers[\"-\"]=new at(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new at(n,r))}this.unnamedRegister.setText(n,r,i);return}var o=X(e);o?s.pushText(n,r):s.setText(n,r,i),this.unnamedRegister.setText(s.toString(),r)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new at),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&$(e,q)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(\"\"+(e-1))}},ct.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;this.initialPrefix===null&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r){var s=n[i];for(var o=0;o<=s.length;o++)if(this.initialPrefix==s.substring(0,o))return this.iterator=i,s}if(i>=n.length)return this.iterator=n.length,this.initialPrefix;if(i<0)return e},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var ht={matchCommand:function(e,t,n,r){var i=Tt(e,t,r,n);if(!i.full&&!i.partial)return{type:\"none\"};if(!i.full&&i.partial)return{type:\"partial\"};var s;for(var o=0;o<i.full.length;o++){var u=i.full[o];s||(s=u)}if(s.keys.slice(-11)==\"<character>\"){var a=Ct(e);if(/<C-.>/.test(a))return{type:\"none\"};n.selectedCharacter=a}return{type:\"full\",command:s}},processCommand:function(e,t,n){t.inputState.repeatOverride=n.repeatOverride;switch(n.type){case\"motion\":this.processMotion(e,t,n);break;case\"operator\":this.processOperator(e,t,n);break;case\"operatorMotion\":this.processOperatorMotion(e,t,n);break;case\"action\":this.processAction(e,t,n);break;case\"search\":this.processSearch(e,t,n);break;case\"ex\":case\"keyToEx\":this.processEx(e,t,n);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=Et(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator){r.motion=\"expandToLine\",r.motionArgs={linewise:!0},this.evalInput(e,t);return}ut(e)}r.operator=n.operator,r.operatorArgs=Et(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=Et(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),s=!!i,o=Et(n.actionArgs)||{};r.selectedCharacter&&(o.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),o.repeat=i||1,o.repeatIsExplicit=s,o.registerName=r.registerName,ut(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),yt[n.action](e,o,t)},processSearch:function(e,t,n){function a(r,i,s){nt.searchHistoryController.pushInput(r),nt.searchHistoryController.reset();try{Mn(e,r,i,s)}catch(o){Cn(e,\"Invalid regex: \"+r),ut(e);return}ht.processMotion(e,t,{type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function f(t){e.scrollTo(u.left,u.top),a(t,!0,!0);var n=nt.macroModeState;n.isRecording&&Kn(n,t)}function l(t,n,i){var s=v.keyName(t),o,a;s==\"Up\"||s==\"Down\"?(o=s==\"Up\"?!0:!1,a=t.target?t.target.selectionEnd:0,n=nt.searchHistoryController.nextMatch(n,o)||\"\",i(n),a&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(a,t.target.value.length))):s!=\"Left\"&&s!=\"Right\"&&s!=\"Ctrl\"&&s!=\"Alt\"&&s!=\"Shift\"&&nt.searchHistoryController.reset();var f;try{f=Mn(e,n,!0,!0)}catch(t){}f?e.scrollIntoView(Pn(e,!r,f),30):(Hn(e),e.scrollTo(u.left,u.top))}function c(t,n,r){var i=v.keyName(t);i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\"?(nt.searchHistoryController.pushInput(n),nt.searchHistoryController.reset(),Mn(e,o),Hn(e),e.scrollTo(u.left,u.top),v.e_stop(t),ut(e),r(),e.focus()):i==\"Up\"||i==\"Down\"?v.e_stop(t):i==\"Ctrl-U\"&&(v.e_stop(t),r(\"\"))}if(!e.getSearchCursor)return;var r=n.searchArgs.forward,i=n.searchArgs.wholeWordOnly;dn(e).setReversed(!r);var s=r?\"/\":\"?\",o=dn(e).getQuery(),u=e.getScrollInfo();switch(n.searchArgs.querySrc){case\"prompt\":var h=nt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();a(p,!0,!1)}else An(e,{onClose:f,prefix:s,desc:Ln,onKeyUp:l,onKeyDown:c});break;case\"wordUnderCursor\":var d=Gt(e,!1,!0,!1,!0),m=!0;d||(d=Gt(e,!1,!0,!1,!1),m=!1);if(!d)return;var p=e.getLine(d.start.line).substring(d.start.ch,d.end.ch);m&&i?p=\"\\\\b\"+p+\"\\\\b\":p=Bt(p),nt.jumpList.cachedCursor=e.getCursor(),e.setCursor(d.start),a(p,!0,!1)}},processEx:function(e,t,n){function r(t){nt.exCommandHistoryController.pushInput(t),nt.exCommandHistoryController.reset(),Rn.processCommand(e,t)}function i(t,n,r){var i=v.keyName(t),s,o;if(i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\")nt.exCommandHistoryController.pushInput(n),nt.exCommandHistoryController.reset(),v.e_stop(t),ut(e),r(),e.focus();i==\"Up\"||i==\"Down\"?(v.e_stop(t),s=i==\"Up\"?!0:!1,o=t.target?t.target.selectionEnd:0,n=nt.exCommandHistoryController.nextMatch(n,s)||\"\",r(n),o&&t.target&&(t.target.selectionEnd=t.target.selectionStart=Math.min(o,t.target.value.length))):i==\"Ctrl-U\"?(v.e_stop(t),r(\"\")):i!=\"Left\"&&i!=\"Right\"&&i!=\"Ctrl\"&&i!=\"Alt\"&&i!=\"Shift\"&&nt.exCommandHistoryController.reset()}n.type==\"keyToEx\"?Rn.processCommand(e,n.exArgs.input):t.visualMode?An(e,{onClose:r,prefix:\":\",value:\"'<,'>\",onKeyDown:i,selectValueOnOpen:!1}):An(e,{onClose:r,prefix:\":\",onKeyDown:i})},evalInput:function(e,t){var n=t.inputState,r=n.motion,i=n.motionArgs||{},s=n.operator,o=n.operatorArgs||{},u=n.registerName,a=t.sel,f=Lt(t.visualMode?wt(e,a.head):e.getCursor(\"head\")),l=Lt(t.visualMode?wt(e,a.anchor):e.getCursor(\"anchor\")),c=Lt(f),h=Lt(l),p,d,v;s&&this.recordLastEdit(t,n),n.repeatOverride!==undefined?v=n.repeatOverride:v=n.getRepeat();if(v>0&&i.explicitRepeat)i.repeatIsExplicit=!0;else if(i.noRepeat||!i.explicitRepeat&&v===0)v=1,i.repeatIsExplicit=!1;n.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter=n.selectedCharacter),i.repeat=v,ut(e);if(r){var m=pt[r](e,f,i,t);t.lastMotion=pt[r];if(!m)return;if(i.toJumplist){!s&&e.ace.curOp!=null&&(e.ace.curOp.command.scrollIntoView=\"center-animate\");var g=nt.jumpList,y=g.cachedCursor;y?(Yt(e,y,m),delete g.cachedCursor):Yt(e,f,m)}m instanceof Array?(d=m[0],p=m[1]):p=m,p||(p=Lt(f));if(t.visualMode){if(!t.visualBlock||p.ch!==Infinity)p=wt(e,p,t.visualBlock);d&&(d=wt(e,d,!0)),d=d||h,a.anchor=d,a.head=p,Wt(e),an(e,t,\"<\",Ot(d,p)?d:p),an(e,t,\">\",Ot(d,p)?p:d)}else s||(p=wt(e,p),e.setCursor(p.line,p.ch))}if(s){if(o.lastSel){d=h;var b=o.lastSel,w=Math.abs(b.head.line-b.anchor.line),S=Math.abs(b.head.ch-b.anchor.ch);b.visualLine?p=E(h.line+w,h.ch):b.visualBlock?p=E(h.line+w,h.ch+S):b.head.line==b.anchor.line?p=E(h.line,h.ch+S):p=E(h.line+w,h.ch),t.visualMode=!0,t.visualLine=b.visualLine,t.visualBlock=b.visualBlock,a=t.sel={anchor:d,head:p},Wt(e)}else t.visualMode&&(o.lastSel={anchor:Lt(a.anchor),head:Lt(a.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var x,T,N,C,k;if(t.visualMode){x=Mt(a.head,a.anchor),T=_t(a.head,a.anchor),N=t.visualLine||o.linewise,C=t.visualBlock?\"block\":N?\"line\":\"char\",k=Xt(e,{anchor:x,head:T},C);if(N){var L=k.ranges;if(C==\"block\")for(var A=0;A<L.length;A++)L[A].head.ch=Pt(e,L[A].head.line);else C==\"line\"&&(L[0].head=E(L[0].head.line+1,0))}}else{x=Lt(d||h),T=Lt(p||c);if(Ot(T,x)){var O=x;x=T,T=O}N=i.linewise||o.linewise,N?Kt(e,x,T):i.forward&&Jt(e,x,T),C=\"char\";var M=!i.inclusive||N;k=Xt(e,{anchor:x,head:T},C,M)}e.setSelections(k.ranges,k.primary),t.lastMotion=null,o.repeat=v,o.registerName=u,o.linewise=N;var _=mt[s](e,o,k.ranges,h,p);t.visualMode&&$t(e,_!=null),_&&e.setCursor(_)}},recordLastEdit:function(e,t,n){var r=nt.macroModeState;if(r.isPlaying)return;e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1}},pt={moveToTopLine:function(e,t,n){var r=jn(e).top+n.repeat-1;return E(r,Qt(e.getLine(r)))},moveToMiddleLine:function(e){var t=jn(e),n=Math.floor((t.top+t.bottom)*.5);return E(n,Qt(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=jn(e).bottom-n.repeat+1;return E(r,Qt(e.getLine(r)))},expandToLine:function(e,t,n){var r=t;return E(r.line+n.repeat-1,Infinity)},findNext:function(e,t,n){var r=dn(e),i=r.getQuery();if(!i)return;var s=!n.forward;return s=r.isReversed()?!s:s,Dn(e,i),Pn(e,s,i,n.repeat)},goToMark:function(e,t,n,r){var i=Fn(e,r,n.selectedCharacter);return i?n.linewise?{line:i.line,ch:Qt(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[wt(e,E(i.anchor.line,i.head.ch)),wt(e,E(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){var i=t;for(var s=0;s<n.repeat;s++){var o=i;for(var u in r.marks){if(!U(u))continue;var a=r.marks[u].find(),f=n.forward?Ot(a,o):Ot(o,a);if(f)continue;if(n.linewise&&a.line==o.line)continue;var l=At(o,i),c=n.forward?Dt(o,a,i):Dt(i,a,o);if(l||c)i=a}}return n.linewise&&(i=E(i.line,Qt(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,s=n.forward?r.ch+i:r.ch-i;return E(r.line,s)},moveByLines:function(e,t,n,r){var i=t,s=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:s=r.lastHPos;break;default:r.lastHPos=s}var o=n.repeat+(n.repeatOffset||0),u=n.forward?i.line+o:i.line-o,a=e.firstLine(),f=e.lastLine();if(u<a&&i.line==a)return this.moveToStartOfLine(e,t,n,r);if(u>f&&i.line==f)return this.moveToEol(e,t,n,r);var l=e.ace.session.getFoldLine(u);return l&&(n.forward?u>l.start.row&&(u=l.end.row+1):u=l.start.row),n.toFirstChar&&(s=Qt(e.getLine(u)),r.lastHPos=s),r.lastHSPos=e.charCoords(E(u,s),\"div\").left,E(u,s)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,\"div\").left}var s=n.repeat,o=e.findPosV(i,n.forward?s:-s,\"line\",r.lastHSPos);if(o.hitSide)if(n.forward)var u=e.charCoords(o,\"div\"),a={top:u.top+8,left:r.lastHSPos},o=e.coordsChar(a,\"div\");else{var f=e.charCoords(E(e.firstLine(),0),\"div\");f.left=r.lastHSPos,o=e.coordsChar(f,\"div\")}return r.lastHPos=o.ch,o},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,\"page\")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return ln(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),s=null,o=n.repeat;o||(o=i.clientHeight/(2*e.defaultTextHeight()));var u=e.charCoords(t,\"local\");n.repeat=o;var s=pt.moveByDisplayLines(e,t,n,r);if(!s)return null;var a=e.charCoords(s,\"local\");return e.scrollTo(null,i.top+a.top-u.top),s},moveByWords:function(e,t,n){return sn(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=on(e,r,n.forward,n.selectedCharacter),s=n.forward?-1:1;return Zt(s,n),i?(i.ch+=s,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return Zt(0,n),on(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var r=n.repeat;return nn(e,r,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,\"div\").left,un(e,i)},moveToEol:function(e,t,n,r){var i=t;r.lastHPos=Infinity;var s=E(i.line+n.repeat-1,Infinity),o=e.clipPos(s);return o.ch--,r.lastHSPos=e.charCoords(o,\"div\").left,s},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return E(n.line,Qt(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n=t,r=n.line,i=n.ch,s=e.getLine(r),o;do{o=s.charAt(i++);if(o&&z(o)){var u=e.getTokenTypeAt(E(r,i));if(u!==\"string\"&&u!==\"comment\")break}}while(o);if(o){var a=e.findMatchingBracket(E(r,i));return a.to}return n},moveToStartOfLine:function(e,t){return E(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption(\"firstLineNumber\")),E(r,Qt(e.getLine(r)))},textObjectManipulation:function(e,t,n,r){var i={\"(\":\")\",\")\":\"(\",\"{\":\"}\",\"}\":\"{\",\"[\":\"]\",\"]\":\"[\"},s={\"'\":!0,'\"':!0},o=n.selectedCharacter;o==\"b\"?o=\"(\":o==\"B\"&&(o=\"{\");var u=!n.textObjectInner,a;if(i[o])a=cn(e,t,o,u);else if(s[o])a=hn(e,t,o,u);else if(o===\"W\")a=Gt(e,u,!0,!0);else if(o===\"w\")a=Gt(e,u,!0,!1);else{if(o!==\"p\")return null;a=ln(e,t,n.repeat,0,u),n.linewise=!0;if(r.visualMode)r.visualLine||(r.visualLine=!0);else{var f=r.inputState.operatorArgs;f&&(f.linewise=!0),a.end.line--}}return e.state.vim.visualMode?zt(e,a.start,a.end):[a.start,a.end]},repeatLastCharacterSearch:function(e,t,n){var r=nt.lastCharacterSearch,i=n.repeat,s=n.forward===r.forward,o=(r.increment?1:0)*(s?-1:1);e.moveH(-o,\"char\"),n.inclusive=s?!0:!1;var u=on(e,i,s,r.selectedCharacter);return u?(u.ch+=o,u):(e.moveH(o,\"char\"),t)}},mt={change:function(e,t,n){var r,i,s=e.state.vim;nt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock;if(!s.visualMode){var o=n[0].anchor,u=n[0].head;i=e.getRange(o,u);var a=s.lastEditInputState||{};if(a.motion==\"moveByWords\"&&!V(i)){var f=/\\s+$/.exec(i);f&&a.motionArgs&&a.motionArgs.forward&&(u=St(u,0,-f[0].length),i=i.slice(0,-f[0].length))}var l=new E(o.line-1,Number.MAX_VALUE),c=e.firstLine()==e.lastLine();u.line>e.lastLine()&&t.linewise&&!c?e.replaceRange(\"\",l,u):e.replaceRange(\"\",o,u),t.linewise&&(c||(e.setCursor(l),v.commands.newlineAndIndent(e)),o.ch=Number.MAX_VALUE),r=o}else{i=e.getSelection();var h=vt(\"\",n.length);e.replaceSelections(h),r=Mt(n[0].head,n[0].anchor)}nt.registerController.pushText(t.registerName,\"change\",i,t.linewise,n.length>1),yt.enterInsertMode(e,{head:r},e.state.vim)},\"delete\":function(e,t,n){var r,i,s=e.state.vim;if(!s.visualBlock){var o=n[0].anchor,u=n[0].head;t.linewise&&u.line!=e.firstLine()&&o.line==e.lastLine()&&o.line==u.line-1&&(o.line==e.firstLine()?o.ch=0:o=E(o.line-1,Pt(e,o.line-1))),i=e.getRange(o,u),e.replaceRange(\"\",o,u),r=o,t.linewise&&(r=pt.moveToFirstNonWhiteSpaceCharacter(e,o))}else{i=e.getSelection();var a=vt(\"\",n.length);e.replaceSelections(a),r=n[0].anchor}nt.registerController.pushText(t.registerName,\"delete\",i,t.linewise,s.visualBlock);var f=s.insertMode;return wt(e,r,f)},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,s=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,o=r.visualMode?t.repeat:1;t.linewise&&s--;for(var u=i;u<=s;u++)for(var a=0;a<o;a++)e.indentLine(u,t.indentRight);return pt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){var s=e.getSelections(),o=[],u=t.toLower;for(var a=0;a<s.length;a++){var f=s[a],l=\"\";if(u===!0)l=f.toLowerCase();else if(u===!1)l=f.toUpperCase();else for(var c=0;c<f.length;c++){var h=f.charAt(c);l+=X(h)?h.toLowerCase():h.toUpperCase()}o.push(l)}return e.replaceSelections(o),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?pt.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:Mt(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,s=e.getSelection(),o=i.visualMode?Mt(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return nt.registerController.pushText(t.registerName,\"yank\",s,t.linewise,i.visualBlock),o}},yt={jumpListWalk:function(e,t,n){if(n.visualMode)return;var r=t.repeat,i=t.forward,s=nt.jumpList,o=s.move(e,i?r:-r),u=o?o.find():undefined;u=u?u:e.getCursor(),e.setCursor(u),e.ace.curOp.command.scrollIntoView=\"center-animate\"},scroll:function(e,t,n){if(n.visualMode)return;var r=t.repeat||1,i=e.defaultTextHeight(),s=e.getScrollInfo().top,o=i*r,u=t.forward?s+o:s-o,a=Lt(e.getCursor()),f=e.charCoords(a,\"local\");if(t.forward)u>f.top?(a.line+=(u-f.top)/i,a.line=Math.ceil(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.top)):e.scrollTo(null,u);else{var l=u+e.getScrollInfo().clientHeight;l<f.bottom?(a.line-=(f.bottom-l)/i,a.line=Math.floor(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,u)}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(E(n,0),\"local\"),i=e.getScrollInfo().clientHeight,s=r.top,o=r.bottom-s;switch(t.position){case\"center\":s=s-i/2+o;break;case\"bottom\":s=s-i+o*1.4;break;case\"top\":s+=o*.4}e.scrollTo(null,s)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,s=nt.macroModeState;r==\"@\"&&(r=s.latestRegister);while(i--)Vn(e,n,s,r)},enterMacroRecordMode:function(e,t){var n=nt.macroModeState,r=t.selectedCharacter;nt.registerController.isValidRegister(r)&&n.enterMacroRecordMode(e,r)},toggleOverwrite:function(e){e.state.overwrite?(e.toggleOverwrite(!1),e.setOption(\"keyMap\",\"vim-insert\"),v.signal(e,\"vim-mode-change\",{mode:\"insert\"})):(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),v.signal(e,\"vim-mode-change\",{mode:\"replace\"}))},enterInsertMode:function(e,t,n){if(e.getOption(\"readOnly\"))return;n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,s=t.head||e.getCursor(\"head\"),o=e.listSelections().length;if(r==\"eol\")s=E(s.line,Pt(e,s.line));else if(r==\"charAfter\")s=St(s,0,1);else if(r==\"firstNonBlank\")s=pt.moveToFirstNonWhiteSpaceCharacter(e,s);else if(r==\"startOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line<i.anchor.line?s=i.head:s=E(i.anchor.line,0);else if(r==\"endOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch+1,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line>=i.anchor.line?s=St(i.head,0,1):s=E(i.anchor.line,0);else if(r==\"inplace\"&&n.visualMode)return;e.setOption(\"disableInput\",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),v.signal(e,\"vim-mode-change\",{mode:\"replace\"})):(e.toggleOverwrite(!1),e.setOption(\"keyMap\",\"vim-insert\"),v.signal(e,\"vim-mode-change\",{mode:\"insert\"})),nt.macroModeState.isPlaying||(e.on(\"change\",Qn),v.on(e.getInputField(),\"keydown\",tr)),n.visualMode&&$t(e),It(e,s,o)},toggleVisualMode:function(e,t,n){var r=t.repeat,i=e.getCursor(),s;n.visualMode?n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e)):$t(e):(n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,s=wt(e,E(i.line,i.ch+r-1),!0),n.sel={anchor:i,head:s},v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)))},reselectLastSelection:function(e,t,n){var r=n.lastSelection;n.visualMode&&Ut(e,n);if(r){var i=r.anchorMark.find(),s=r.headMark.find();if(!i||!s)return;n.sel={anchor:i,head:s},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)),v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"})}},joinLines:function(e,t,n){var r,i;if(n.visualMode){r=e.getCursor(\"anchor\"),i=e.getCursor(\"head\");if(Ot(i,r)){var s=i;i=r,r=s}i.ch=Pt(e,i.line)-1}else{var o=Math.max(t.repeat,2);r=e.getCursor(),i=wt(e,E(r.line+o-1,Infinity))}var u=0;for(var a=r.line;a<i.line;a++){u=Pt(e,r.line);var s=E(r.line+1,Pt(e,r.line+1)),f=e.getRange(r,s);f=f.replace(/\\n\\s*/g,\" \"),e.replaceRange(f,r,s)}var l=E(r.line,u);n.visualMode&&$t(e,!1),e.setCursor(l)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=Lt(e.getCursor());if(r.line===e.firstLine()&&!t.after)e.replaceRange(\"\\n\",E(e.firstLine(),0)),e.setCursor(e.firstLine(),0);else{r.line=t.after?r.line:r.line-1,r.ch=Pt(e,r.line),e.setCursor(r);var i=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;i(e)}this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=Lt(e.getCursor()),i=nt.registerController.getRegister(t.registerName),s=i.toString();if(!s)return;if(t.matchIndent){var o=e.getOption(\"tabSize\"),u=function(e){var t=e.split(\"\t\").length-1,n=e.split(\" \").length-1;return t*o+n*1},a=e.getLine(e.getCursor().line),f=u(a.match(/^\\s*/)[0]),l=s.replace(/\\n$/,\"\"),c=s!==l,h=u(s.match(/^\\s*/)[0]),s=l.replace(/^\\s*/gm,function(t){var n=f+(u(t)-h);if(n<0)return\"\";if(e.getOption(\"indentWithTabs\")){var r=Math.floor(n/o);return Array(r+1).join(\"\t\")}return Array(n+1).join(\" \")});s+=c?\"\\n\":\"\"}if(t.repeat>1)var s=Array(t.repeat+1).join(s);var p=i.linewise,d=i.blockwise;if(p&&!d)n.visualMode?s=n.visualLine?s.slice(0,-1):\"\\n\"+s.slice(0,s.length-1)+\"\\n\":t.after?(s=\"\\n\"+s.slice(0,s.length-1),r.ch=Pt(e,r.line)):r.ch=0;else{if(d){s=s.split(\"\\n\");for(var v=0;v<s.length;v++)s[v]=s[v]==\"\"?\" \":s[v]}r.ch+=t.after?1:0}var m,g;if(n.visualMode){n.lastPastedText=s;var y,b=Rt(e,n),w=b[0],S=b[1],x=e.getSelection(),T=e.listSelections(),N=(new Array(T.length)).join(\"1\").split(\"1\");n.lastSelection&&(y=n.lastSelection.headMark.find()),nt.registerController.unnamedRegister.setText(x),d?(e.replaceSelections(N),S=E(w.line+s.length-1,w.ch),e.setCursor(w),Ft(e,S),e.replaceSelections(s),m=w):n.visualBlock?(e.replaceSelections(N),e.setCursor(w),e.replaceRange(s,w,w),m=w):(e.replaceRange(s,w,S),m=e.posFromIndex(e.indexFromPos(w)+s.length-1)),y&&(n.lastSelection.headMark=e.setBookmark(y)),p&&(m.ch=0)}else if(d){e.setCursor(r);for(var v=0;v<s.length;v++){var C=r.line+v;C>e.lastLine()&&e.replaceRange(\"\\n\",E(C,0));var k=Pt(e,C);k<r.ch&&jt(e,C,r.ch)}e.setCursor(r),Ft(e,E(r.line+s.length-1,r.ch)),e.replaceSelections(s),m=r}else e.replaceRange(s,r),p&&t.after?m=E(r.line+1,Qt(e.getLine(r.line+1))):p&&!t.after?m=E(r.line,Qt(e.getLine(r.line))):!p&&t.after?(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length-1)):(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length));n.visualMode&&$t(e,!1),e.setCursor(m)},undo:function(e,t){e.operation(function(){kt(e,v.commands.undo,t.repeat)(),e.setCursor(e.getCursor(\"anchor\"))})},redo:function(e,t){kt(e,v.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){var r=t.selectedCharacter;an(e,n,r,e.getCursor())},replace:function(e,t,n){var r=t.selectedCharacter,i=e.getCursor(),s,o,u=e.listSelections();if(n.visualMode)i=e.getCursor(\"start\"),o=e.getCursor(\"end\");else{var a=e.getLine(i.line);s=i.ch+t.repeat,s>a.length&&(s=a.length),o=E(i.line,s)}if(r==\"\\n\")n.visualMode||e.replaceRange(\"\",i,o),(v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent)(e);else{var f=e.getRange(i,o);f=f.replace(/[^\\n]/g,r);if(n.visualBlock){var l=(new Array(e.getOption(\"tabSize\")+1)).join(\" \");f=e.getSelection(),f=f.replace(/\\t/g,l).replace(/[^\\n]/g,r).split(\"\\n\"),e.replaceSelections(f)}else e.replaceRange(f,i,o);n.visualMode?(i=Ot(u[0].anchor,u[0].head)?u[0].anchor:u[0].head,e.setCursor(i),$t(e,!1)):e.setCursor(St(o,0,-1))}},incrementNumberToken:function(e,t){var n=e.getCursor(),r=e.getLine(n.line),i=/(-?)(?:(0x)([\\da-f]+)|(0b|0|)(\\d+))/gi,s,o,u,a;while((s=i.exec(r))!==null){o=s.index,u=o+s[0].length;if(n.ch<u)break}if(!t.backtrack&&u<=n.ch)return;if(!s)return;var f=s[2]||s[4],l=s[3]||s[5],c=t.increase?1:-1,h={\"0b\":2,0:8,\"\":10,\"0x\":16}[f.toLowerCase()],p=parseInt(s[1]+l,h)+c*t.repeat;a=p.toString(h);var d=f?(new Array(l.length-a.length+1+s[1].length)).join(\"0\"):\"\";a.charAt(0)===\"-\"?a=\"-\"+f+d+a.substr(1):a=f+d+a;var v=E(n.line,o),m=E(n.line,u);e.replaceRange(a,v,m),e.setCursor(E(n.line,o+a.length-1))},repeatLastEdit:function(e,t,n){var r=n.lastEditInputState;if(!r)return;var i=t.repeat;i&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=i:i=n.lastEditInputState.repeatOverride||i,nr(e,n,i,!1)},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:zn},en={\"(\":\"bracket\",\")\":\"bracket\",\"{\":\"bracket\",\"}\":\"bracket\",\"[\":\"section\",\"]\":\"section\",\"*\":\"comment\",\"/\":\"comment\",m:\"method\",M:\"method\",\"#\":\"preprocess\"},tn={bracket:{isComplete:function(e){if(e.nextCh===e.symb){e.depth++;if(e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?\"]\":\"[\")===e.symb?\"{\":\"}\"},isComplete:function(e){return e.index===0&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t=e.lastCh===\"*\"&&e.nextCh===\"/\";return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb=e.symb===\"m\"?\"{\":\"}\",e.reverseSymb=e.symb===\"{\"?\"}\":\"{\"},isComplete:function(e){return e.nextCh===e.symb?!0:!1}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if(e.nextCh===\"#\"){var t=e.lineText.match(/#(\\w+)/)[1];if(t===\"endif\"){if(e.forward&&e.depth===0)return!0;e.depth++}else if(t===\"if\"){if(!e.forward&&e.depth===0)return!0;e.depth--}if(t===\"else\"&&e.depth===0)return!0}return!1}}};K(\"pcre\",!0,\"boolean\"),pn.prototype={getQuery:function(){return nt.query},setQuery:function(e){nt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return nt.isReversed},setReversed:function(e){nt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var En={\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},xn={\"\\\\/\":\"/\",\"\\\\\\\\\":\"\\\\\",\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},Ln=\"(Javascript regexp)\",In=function(){this.buildCommandMap_()};In.prototype={processCommand:function(e,t,n){var r=this;e.operation(function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)})},_processCommand:function(e,t,n){var r=e.state.vim,i=nt.registerController.getRegister(\":\"),s=i.toString();r.visualMode&&$t(e);var o=new v.StringStream(t);i.setText(t);var u=n||{};u.input=t;try{this.parseInput_(e,o,u)}catch(a){throw Cn(e,a),a}var f,l;if(!u.commandName)u.line!==undefined&&(l=\"move\");else{f=this.matchCommand_(u.commandName);if(f){l=f.name,f.excludeFromCommandHistory&&i.setText(s),this.parseCommandArgs_(o,u,f);if(f.type==\"exToKey\"){for(var c=0;c<f.toKeys.length;c++)v.Vim.handleKey(e,f.toKeys[c],\"mapping\");return}if(f.type==\"exToEx\"){this.processCommand(e,f.toInput);return}}}if(!l){Cn(e,'Not an editor command \":'+t+'\"');return}try{qn[l](e,u),(!f||!f.possiblyAsync)&&u.callback&&u.callback()}catch(a){throw Cn(e,a),a}},parseInput_:function(e,t,n){t.eatWhile(\":\"),t.eat(\"%\")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),n.line!==undefined&&t.eat(\",\")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\\w+)/);return r?n.commandName=r[1]:n.commandName=t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case\".\":return this.parseLineSpecOffset_(t,e.getCursor().line);case\"$\":return this.parseLineSpecOffset_(t,e.lastLine());case\"'\":var r=t.next(),i=Fn(e,e.state.vim,r);if(!i)throw new Error(\"Mark not set\");return this.parseLineSpecOffset_(t,i.line);case\"-\":case\"+\":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return t.backUp(1),undefined}},parseLineSpecOffset_:function(e,t){var n=e.match(/^([+-])?(\\d+)/);if(n){var r=parseInt(n[2],10);n[1]==\"-\"?t-=r:t+=r}return t},parseCommandArgs_:function(e,t,n){if(e.eol())return;t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\\s+/,i=Ht(t.argString).split(r);i.length&&i[0]&&(t.args=i)},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(r.name.indexOf(e)===0)return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<w.length;e++){var t=w[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n){if(e!=\":\"&&e.charAt(0)==\":\"){if(n)throw Error(\"Mode not supported for ex mappings\");var r=e.substring(1);t!=\":\"&&t.charAt(0)==\":\"?this.commandMap_[r]={name:r,type:\"exToEx\",toInput:t.substring(1),user:!0}:this.commandMap_[r]={name:r,type:\"exToKey\",toKeys:t,user:!0}}else if(t!=\":\"&&t.charAt(0)==\":\"){var i={keys:e,type:\"keyToEx\",exArgs:{input:t.substring(1)}};n&&(i.context=n),b.unshift(i)}else{var i={keys:e,type:\"keyToKey\",toKeys:t};n&&(i.context=n),b.unshift(i)}},unmap:function(e,t){if(e!=\":\"&&e.charAt(0)==\":\"){if(t)throw Error(\"Mode not supported for ex mappings\");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user){delete this.commandMap_[n];return}}else{var r=e;for(var i=0;i<b.length;i++)if(r==b[i].keys&&b[i].context===t){b.splice(i,1);return}}}};var qn={colorscheme:function(e,t){if(!t.args||t.args.length<1){Cn(e,e.getOption(\"theme\"));return}e.setOption(\"theme\",t.args[0])},map:function(e,t,n){var r=t.args;if(!r||r.length<2){e&&Cn(e,\"Invalid mapping: \"+t.input);return}Rn.map(r[0],r[1],n)},imap:function(e,t){this.map(e,t,\"insert\")},nmap:function(e,t){this.map(e,t,\"normal\")},vmap:function(e,t){this.map(e,t,\"visual\")},unmap:function(e,t,n){var r=t.args;if(!r||r.length<1){e&&Cn(e,\"No such mapping: \"+t.input);return}Rn.unmap(r[0],n)},move:function(e,t){ht.processCommand(e,e.state.vim,{type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1){e&&Cn(e,\"Invalid mapping: \"+t.input);return}var i=n[0].split(\"=\"),s=i[0],o=i[1],u=!1;if(s.charAt(s.length-1)==\"?\"){if(o)throw Error(\"Trailing characters: \"+t.argString);s=s.substring(0,s.length-1),u=!0}o===undefined&&s.substring(0,2)==\"no\"&&(s=s.substring(2),o=!1);var a=J[s]&&J[s].type==\"boolean\";a&&o==undefined&&(o=!0);if(!a&&o===undefined||u){var f=G(s,e,r);f instanceof Error?Cn(e,f.message):f===!0||f===!1?Cn(e,\" \"+(f?\"\":\"no\")+s):Cn(e,\"  \"+s+\"=\"+f)}else{var l=Q(s,o,e,r);l instanceof Error&&Cn(e,l.message)}},setlocal:function(e,t){t.setCfg={scope:\"local\"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:\"global\"},this.set(e,t)},registers:function(e,t){var n=t.args,r=nt.registerController.registers,i=\"----------Registers----------<br><br>\";if(!n)for(var s in r){var o=r[s].toString();o.length&&(i+='\"'+s+\"    \"+o+\"<br>\")}else{var s;n=n.join(\"\");for(var u=0;u<n.length;u++){s=n.charAt(u);if(!nt.registerController.isValidRegister(s))continue;var a=r[s]||new at;i+='\"'+s+\"    \"+a.toString()+\"<br>\"}}Cn(e,i)},sort:function(e,t){function u(){if(t.argString){var e=new v.StringStream(t.argString);e.eat(\"!\")&&(n=!0);if(e.eol())return;if(!e.eatSpace())return\"Invalid arguments\";var u=e.match(/([dinuox]+)?\\s*(\\/.+\\/)?\\s*/);if(!u&&!e.eol())return\"Invalid arguments\";if(u[1]){r=u[1].indexOf(\"i\")!=-1,i=u[1].indexOf(\"u\")!=-1;var a=u[1].indexOf(\"d\")!=-1||u[1].indexOf(\"n\")!=-1&&1,f=u[1].indexOf(\"x\")!=-1&&1,l=u[1].indexOf(\"o\")!=-1&&1;if(a+f+l>1)return\"Invalid arguments\";s=a&&\"decimal\"||f&&\"hex\"||l&&\"octal\"}u[2]&&(o=new RegExp(u[2].substr(1,u[2].length-2),r?\"i\":\"\"))}}function S(e,t){if(n){var i;i=e,e=t,t=i}r&&(e=e.toLowerCase(),t=t.toLowerCase());var o=s&&d.exec(e),u=s&&d.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),m),u=parseInt((u[1]+u[2]).toLowerCase(),m),o-u):e<t?-1:1}function x(e,t){if(n){var i;i=e,e=t,t=i}return r&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}var n,r,i,s,o,a=u();if(a){Cn(e,a+\": \"+t.argString);return}var f=t.line||e.firstLine(),l=t.lineEnd||t.line||e.lastLine();if(f==l)return;var c=E(f,0),h=E(l,Pt(e,l)),p=e.getRange(c,h).split(\"\\n\"),d=o?o:s==\"decimal\"?/(-?)([\\d]+)/:s==\"hex\"?/(-?)(?:0x)?([0-9a-f]+)/i:s==\"octal\"?/([0-7]+)/:null,m=s==\"decimal\"?10:s==\"hex\"?16:s==\"octal\"?8:null,g=[],y=[];if(s||o)for(var b=0;b<p.length;b++){var w=o?p[b].match(o):null;w&&w[0]!=\"\"?g.push(w):!o&&d.exec(p[b])?g.push(p[b]):y.push(p[b])}else y=p;g.sort(o?x:S);if(o)for(var b=0;b<g.length;b++)g[b]=g[b].input;else s||y.sort(S);p=n?g.concat(y):y.concat(g);if(i){var T=p,N;p=[];for(var b=0;b<T.length;b++)T[b]!=N&&p.push(T[b]),N=T[b]}e.replaceRange(p.join(\"\\n\"),c,h)},global:function(e,t){var n=t.argString;if(!n){Cn(e,\"Regular Expression missing from global\");return}var r=t.line!==undefined?t.line:e.firstLine(),i=t.lineEnd||t.line||e.lastLine(),s=mn(n),o=n,u;s.length&&(o=s[0],u=s.slice(1,s.length).join(\"/\"));if(o)try{Mn(e,o,!0,!0)}catch(a){Cn(e,\"Invalid regex: \"+o);return}var f=dn(e).getQuery(),l=[],c=\"\";for(var h=r;h<=i;h++){var p=f.test(e.getLine(h));p&&(l.push(h+1),c+=e.getLine(h)+\"<br>\")}if(!u){Cn(e,c);return}var d=0,v=function(){if(d<l.length){var t=l[d]+u;Rn.processCommand(e,t,{callback:v})}d++};v()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error(\"Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.\");var n=t.argString,r=n?yn(n,n[0]):[],i,s=\"\",o,u,a,f=!1,l=!1;if(r.length)i=r[0],s=r[1],i&&i[i.length-1]===\"$\"&&(i=i.slice(0,i.length-1)+\"\\\\n\",s=s?s+\"\\n\":\"\\n\"),s!==undefined&&(G(\"pcre\")?s=Tn(s):s=Sn(s),nt.lastSubstituteReplacePart=s),o=r[2]?r[2].split(\" \"):[];else if(n&&n.length){Cn(e,\"Substitutions should be of the form :s/pattern/replace/\");return}o&&(u=o[0],a=parseInt(o[1]),u&&(u.indexOf(\"c\")!=-1&&(f=!0,u.replace(\"c\",\"\")),u.indexOf(\"g\")!=-1&&(l=!0,u.replace(\"g\",\"\")),i=i.replace(/\\//g,\"\\\\/\")+\"/\"+u));if(i)try{Mn(e,i,!0,!0)}catch(c){Cn(e,\"Invalid regex: \"+i);return}s=s||nt.lastSubstituteReplacePart;if(s===undefined){Cn(e,\"No previous substitute regular expression\");return}var h=dn(e),p=h.getQuery(),d=t.line!==undefined?t.line:e.getCursor().line,v=t.lineEnd||d;d==e.firstLine()&&v==e.lastLine()&&(v=Infinity),a&&(d=v,v=d+a-1);var m=wt(e,E(d,0)),g=e.getSearchCursor(p,m);Un(e,f,l,d,v,g,p,s,t.callback)},redo:v.commands.redo,undo:v.commands.undo,write:function(e){v.commands.save?v.commands.save(e):e.save&&e.save()},nohlsearch:function(e){Hn(e)},yank:function(e){var t=Lt(e.getCursor()),n=t.line,r=e.getLine(n);nt.registerController.pushText(\"0\",\"yank\",r,!0,!0)},delmarks:function(e,t){if(!t.argString||!Ht(t.argString)){Cn(e,\"Argument required\");return}var n=e.state.vim,r=new v.StringStream(Ht(t.argString));while(!r.eol()){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1)){Cn(e,\"Invalid argument: \"+t.argString.substring(i));return}var s=r.next();if(r.match(\"-\",!0)){if(!r.match(/[a-zA-Z]/,!1)){Cn(e,\"Invalid argument: \"+t.argString.substring(i));return}var o=s,u=r.next();if(!(U(o)&&U(u)||X(o)&&X(u))){Cn(e,\"Invalid argument: \"+o+\"-\");return}var a=o.charCodeAt(0),f=u.charCodeAt(0);if(a>=f){Cn(e,\"Invalid argument: \"+t.argString.substring(i));return}for(var l=0;l<=f-a;l++){var c=String.fromCharCode(a+l);delete n.marks[c]}}else delete n.marks[s]}}},Rn=new In;v.keyMap.vim={attach:C,detach:N,call:k},K(\"insertModeEscKeysTimeout\",200,\"number\"),v.keyMap[\"vim-insert\"]={\"Ctrl-N\":\"autocomplete\",\"Ctrl-P\":\"autocomplete\",Enter:function(e){var t=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;t(e)},fallthrough:[\"default\"],attach:C,detach:N,call:k},v.keyMap[\"vim-replace\"]={Backspace:\"goCharLeft\",fallthrough:[\"vim-insert\"],attach:C,detach:N,call:k},rt(),v.Vim=S(),S=v.Vim;var ir={\"return\":\"CR\",backspace:\"BS\",\"delete\":\"Del\",esc:\"Esc\",left:\"Left\",right:\"Right\",up:\"Up\",down:\"Down\",space:\"Space\",home:\"Home\",end:\"End\",pageup:\"PageUp\",pagedown:\"PageDown\",enter:\"CR\"},or=S.handleKey.bind(S);S.handleKey=function(e,t,n){return e.operation(function(){return or(e,t,n)},!0)},t.CodeMirror=v;var fr=S.maybeInitVimState_;t.handler={$id:\"ace/keyboard/vim\",drawCursor:function(e,t,n,r,s){var o=this.state.vim||{},u=n.characterWidth,a=n.lineHeight,f=t.top,l=t.left;if(!o.insertMode){var c=r.cursor?i.comparePoints(r.cursor,r.start)<=0:s.selection.isBackwards()||s.selection.isEmpty();!c&&l>u&&(l-=u)}!o.insertMode&&o.status&&(a/=2,f+=a),e.left=l+\"px\",e.top=f+\"px\",e.width=u+\"px\",e.height=a+\"px\"},handleKeyboard:function(e,t,n,r,i){var s=e.editor,o=s.state.cm,u=fr(o);if(r==-1)return;u.insertMode||(t==-1?(n.charCodeAt(0)>255&&e.inputKey&&(n=e.inputKey,n&&e.inputHash==4&&(n=n.toUpperCase())),e.inputChar=n):t==4||t==0?e.inputKey==n&&e.inputHash==t&&e.inputChar?(n=e.inputChar,t=-1):(e.inputChar=null,e.inputKey=n,e.inputHash=t):e.inputChar=e.inputKey=null);if(n==\"c\"&&t==1&&!c.isMac&&s.getCopyText())return s.once(\"copy\",function(){s.selection.clearSelection()}),{command:\"null\",passEvent:!0};if(n==\"esc\"&&!u.insertMode&&!u.visualMode&&!o.ace.inMultiSelectMode){var a=dn(o),f=a.getOverlay();f&&o.removeOverlay(f)}if(t==-1||t&1||t===0&&n.length>1){var l=u.insertMode,h=sr(t,n,i||{});u.status==null&&(u.status=\"\");var p=ar(o,h,\"user\");u=fr(o),p&&u.status!=null?u.status+=h:u.status==null&&(u.status=\"\"),o._signal(\"changeStatus\");if(!p&&(t!=-1||l))return;return{command:\"null\",passEvent:!p}}},attach:function(e){function n(){var n=fr(t).insertMode;t.ace.renderer.setStyle(\"normal-mode\",!n),e.textInput.setCommandMode(!n),e.renderer.$keepTextAreaAtCursor=n,e.renderer.$blockCursor=!n}e.state||(e.state={});var t=new v(e);e.state.cm=t,e.$vimModeHandler=this,v.keyMap.vim.attach(t),fr(t).status=null,t.on(\"vim-command-done\",function(){if(t.virtualSelectionMode())return;fr(t).status=null,t.ace._signal(\"changeStatus\"),t.ace.session.markUndoGroup()}),t.on(\"changeStatus\",function(){t.ace.renderer.updateCursor(),t.ace._signal(\"changeStatus\")}),t.on(\"vim-mode-change\",function(){if(t.virtualSelectionMode())return;n(),t._signal(\"changeStatus\")}),n(),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(t),this.updateMacCompositionHandlers(e,!0)},detach:function(e){var t=e.state.cm;v.keyMap.vim.detach(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle(\"normal-mode\",!1),e.textInput.setCommandMode(!1),e.renderer.$keepTextAreaAtCursor=!0,this.updateMacCompositionHandlers(e,!1)},getStatusText:function(e){var t=e.state.cm,n=fr(t);if(n.insertMode)return\"INSERT\";var r=\"\";return n.visualMode&&(r+=\"VISUAL\",n.visualLine&&(r+=\" LINE\"),n.visualBlock&&(r+=\" BLOCK\")),n.status&&(r+=(r?\" \":\"\")+n.status),r},updateMacCompositionHandlers:function(e,t){var n=function(t){var n=e.state.cm,r=fr(n);if(!r.insertMode){var i=this.textInput.getElement();i.blur(),i.focus(),i.value=t}else this.onCompositionUpdateOrig(t)},r=function(t){var n=e.state.cm,r=fr(n);r.insertMode&&this.onCompositionStartOrig(t)};t?e.onCompositionUpdateOrig||(e.onCompositionUpdateOrig=e.onCompositionUpdate,e.onCompositionUpdate=n,e.onCompositionStartOrig=e.onCompositionStart,e.onCompositionStart=r):e.onCompositionUpdateOrig&&(e.onCompositionUpdate=e.onCompositionUpdateOrig,e.onCompositionUpdateOrig=null,e.onCompositionStart=e.onCompositionStartOrig,e.onCompositionStartOrig=null)}};var lr={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?\"\\u00b7\":\"\"))+\"\"},getWidth:function(e,t,n){return e.getLength().toString().length*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on(\"changeSelection\",this.update)},detach:function(e){e.renderer.$gutterLayer.$renderer=null,e.off(\"changeSelection\",this.update)}};S.defineOption({name:\"wrap\",set:function(e,t){t&&t.ace.setOption(\"wrap\",e)},type:\"boolean\"},!1),S.defineEx(\"write\",\"w\",function(){console.log(\":write is not implemented\")}),b.push({keys:\"zc\",type:\"action\",action:\"fold\",actionArgs:{open:!1}},{keys:\"zC\",type:\"action\",action:\"fold\",actionArgs:{open:!1,all:!0}},{keys:\"zo\",type:\"action\",action:\"fold\",actionArgs:{open:!0}},{keys:\"zO\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"za\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0}},{keys:\"zA\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0,all:!0}},{keys:\"zf\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"zd\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"<C-A-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAbove\"}},{keys:\"<C-A-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelow\"}},{keys:\"<C-A-S-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAboveSkipCurrent\"}},{keys:\"<C-A-S-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelowSkipCurrent\"}},{keys:\"<C-A-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreBefore\"}},{keys:\"<C-A-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreAfter\"}},{keys:\"<C-A-S-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextBefore\"}},{keys:\"<C-A-S-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextAfter\"}}),yt.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on(\"beforeEndOperation\",cr):cr(null,e.ace)},yt.fold=function(e,t,n){e.ace.execCommand([\"toggleFoldWidget\",\"toggleFoldWidget\",\"foldOther\",\"unfoldall\"][(t.all?2:0)+(t.open?1:0)])},t.handler.defaultKeymap=b,t.handler.actions=yt,t.Vim=S,S.map(\"Y\",\"yy\",\"normal\")});\n                (function() {\n                    ace.require([\"ace/keyboard/vim\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-abap.js",
    "content": "ace.define(\"ace/mode/abap_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"ADD ALIAS ALIASES ASCENDING ASSERT ASSIGN ASSIGNING AT BACK CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY DATA DEFINE DEFINITION DEFERRED DELETE DESCENDING DESCRIBE DETAIL DIVIDE DO ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT FETCH FIELDS FORM FORMAT FREE FROM FUNCTION GENERATE GET HIDE IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION LEAVE LIKE LINE LOAD LOCAL LOOP MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY ON OVERLAY OPTIONAL OTHERS PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURN RETURNING ROLLBACK SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES UNASSIGN ULINE UNPACK UPDATE WHEN WHILE WINDOW WRITE OCCURS STRUCTURE OBJECT PROPERTY CASTING APPEND RAISING VALUE COLOR CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT ID NUMBER FOR TITLE OUTPUT WITH EXIT USING INTO WHERE GROUP BY HAVING ORDER BY SINGLE APPENDING CORRESPONDING FIELDS OF TABLE LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN\",\"constant.language\":\"TRUE FALSE NULL SPACE\",\"support.type\":\"c n i p f d t x string xstring decfloat16 decfloat34\",\"keyword.operator\":\"abs sign ceil floor trunc frac acos asin atan cos sin tan abapOperator cosh sinh tanh exp log log10 sqrt strlen xstrlen charlen numofchar dbmaxlen lines\"},\"text\",!0,\" \"),t=\"WITH\\\\W+(?:HEADER\\\\W+LINE|FRAME|KEY)|NO\\\\W+STANDARD\\\\W+PAGE\\\\W+HEADING|EXIT\\\\W+FROM\\\\W+STEP\\\\W+LOOP|BEGIN\\\\W+OF\\\\W+(?:BLOCK|LINE)|BEGIN\\\\W+OF|END\\\\W+OF\\\\W+(?:BLOCK|LINE)|END\\\\W+OF|NO\\\\W+INTERVALS|RESPECTING\\\\W+BLANKS|SEPARATED\\\\W+BY|USING\\\\W+(?:EDIT\\\\W+MASK)|WHERE\\\\W+(?:LINE)|RADIOBUTTON\\\\W+GROUP|REF\\\\W+TO|(?:PUBLIC|PRIVATE|PROTECTED)(?:\\\\W+SECTION)?|DELETING\\\\W+(?:TRAILING|LEADING)(?:ALL\\\\W+OCCURRENCES)|(?:FIRST|LAST)\\\\W+OCCURRENCE|INHERITING\\\\W+FROM|LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|IS\\\\W+(?:NOT\\\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)\";this.$rules={start:[{token:\"string\",regex:\"`\",next:\"string\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"doc.comment\",regex:/^\\*.+/},{token:\"comment\",regex:/\".+$/},{token:\"invalid\",regex:\"\\\\.{2,}\"},{token:\"keyword.operator\",regex:/\\W[\\-+%=<>*]\\W|\\*\\*|[~:,\\.&$]|->*?|=>/},{token:\"paren.lparen\",regex:\"[\\\\[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+\\\\b\"},{token:\"variable.parameter\",regex:/sy|pa?\\d\\d\\d\\d\\|t\\d\\d\\d\\.|innnn/},{token:\"keyword\",regex:t},{token:\"variable.parameter\",regex:/\\w+-\\w+(?:-\\w+)*/},{token:e,regex:\"\\\\b\\\\w+\\\\b\"},{caseInsensitive:!0}],qstring:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}],string:[{token:\"constant.language.escape\",regex:\"``\"},{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.AbapHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/abap\",[\"require\",\"exports\",\"module\",\"ace/mode/abap_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function a(){this.HighlightRules=r,this.foldingRules=new i}var r=e(\"./abap_highlight_rules\").AbapHighlightRules,i=e(\"./folding/coffee\").FoldMode,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"../lib/oop\");u.inherits(a,o),function(){this.lineCommentStart='\"',this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.$id=\"ace/mode/abap\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/abap\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-abc.js",
    "content": "ace.define(\"ace/mode/abc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"zupfnoter.information.comment.line.percentage\",\"information.keyword\",\"in formation.keyword.embedded\"],regex:\"(%%%%)(hn\\\\.[a-z]*)(.*)\",comment:\"Instruction Comment\"},{token:[\"information.comment.line.percentage\",\"information.keyword.embedded\"],regex:\"(%%)(.*)\",comment:\"Instruction Comment\"},{token:\"comment.line.percentage\",regex:\"%.*\",comment:\"Comments\"},{token:\"barline.keyword.operator\",regex:\"[\\\\[:]*[|:][|\\\\]:]*(?:\\\\[?[0-9]+)?|\\\\[[0-9]+\",comment:\"Bar lines\"},{token:[\"information.keyword.embedded\",\"information.argument.string.unquoted\"],regex:\"(\\\\[[A-Za-z]:)([^\\\\]]*\\\\])\",comment:\"embedded Header lines\"},{token:[\"information.keyword\",\"information.argument.string.unquoted\"],regex:\"^([A-Za-z]:)([^%\\\\\\\\]*)\",comment:\"Header lines\"},{token:[\"text\",\"entity.name.function\",\"string.unquoted\",\"text\"],regex:\"(\\\\[)([A-Z]:)(.*?)(\\\\])\",comment:\"Inline fields\"},{token:[\"accent.constant.language\",\"pitch.constant.numeric\",\"duration.constant.numeric\"],regex:\"([\\\\^=_]*)([A-Ga-gz][,']*)([0-9]*/*[><0-9]*)\",comment:\"Notes\"},{token:\"zupfnoter.jumptarget.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\:.*?[\\\\\"!]',comment:\"Zupfnoter jumptarget\"},{token:\"zupfnoter.goto.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\@.*?[\\\\\"!]',comment:\"Zupfnoter goto\"},{token:\"zupfnoter.annotation.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\!.*?[\\\\\"!]',comment:\"Zupfnoter annoation\"},{token:\"zupfnoter.annotationref.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\#.*?[\\\\\"!]',comment:\"Zupfnoter annotation reference\"},{token:\"chordname.string.quoted\",regex:'[\\\\\"!]\\\\^.*?[\\\\\"!]',comment:\"abc chord\"},{token:\"string.quoted\",regex:'[\\\\\"!].*?[\\\\\"!]',comment:\"abc annotation\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"abc\"],name:\"ABC\",scopeName:\"text.abcnotation\"},r.inherits(s,i),t.ABCHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/abc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/abc_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./abc_highlight_rules\").ABCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/abc\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/abc\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-actionscript.js",
    "content": "ace.define(\"ace/mode/actionscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"support.class.actionscript.2\",regex:\"\\\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\\\b\"},{token:\"support.function.actionscript.2\",regex:\"\\\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\\\b\"},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\\\b\"},{token:\"keyword.control.actionscript.2\",regex:\"\\\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\\\b\"},{token:\"storage.type.actionscript.2\",regex:\"\\\\b(?:Boolean|Number|String|Void)\\\\b\"},{token:\"constant.language.actionscript.2\",regex:\"\\\\b(?:null|undefined|true|false)\\\\b\"},{token:\"constant.numeric.actionscript.2\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:'\"',push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.actionscript.2\"}]},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.actionscript.2\"}]},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\\\b\"},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.actionscript.2\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.actionscript.2\"}]},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.actionscript.2\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.actionscript.2\"}]},{token:\"keyword.operator.actionscript.2\",regex:\"\\\\binstanceof\\\\b\"},{token:\"keyword.operator.symbolic.actionscript.2\",regex:\"[-!%&*+=/?:]\"},{token:[\"meta.preprocessor.actionscript.2\",\"punctuation.definition.preprocessor.actionscript.2\",\"meta.preprocessor.actionscript.2\"],regex:\"^([ \\\\t]*)(#)([a-zA-Z]+)\"},{token:[\"storage.type.function.actionscript.2\",\"meta.function.actionscript.2\",\"entity.name.function.actionscript.2\",\"meta.function.actionscript.2\",\"punctuation.definition.parameters.begin.actionscript.2\"],regex:\"\\\\b(function)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()\",push:[{token:\"punctuation.definition.parameters.end.actionscript.2\",regex:\"\\\\)\",next:\"pop\"},{token:\"variable.parameter.function.actionscript.2\",regex:\"[^,)$]+\"},{defaultToken:\"meta.function.actionscript.2\"}]},{token:[\"storage.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"entity.name.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"storage.modifier.extends.actionscript.2\",\"meta.class.actionscript.2\",\"entity.other.inherited-class.actionscript.2\"],regex:\"\\\\b(class)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*)(?:(\\\\s+)(extends)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*))?\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"as\"],keyEquivalent:\"^~A\",name:\"ActionScript\",scopeName:\"source.actionscript.2\"},r.inherits(s,i),t.ActionScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/actionscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/actionscript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./actionscript_highlight_rules\").ActionScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/actionscript\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/actionscript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ada.js",
    "content": "ace.define(\"ace/mode/ada_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|body|private|then|if|procedure|type|case|in|protected|constant|interface|until||is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.AdaHighlightRules=s}),ace.define(\"ace/mode/ada\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ada_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ada_highlight_rules\").AdaHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/ada\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/ada\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-apache_conf.js",
    "content": "ace.define(\"ace/mode/apache_conf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.comment.apacheconf\",\"comment.line.hash.ini\",\"comment.line.hash.ini\"],regex:\"^((?:\\\\s)*)(#)(.*$)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"text\",\"string.value.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\\\s)(.+?))?(>)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(>)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.replacement.apacheconf\",\"text\"],regex:\"(Rewrite(?:Rule|Cond))(\\\\s+)(.+?)(\\\\s+)(.+?)($|\\\\s)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectMatch)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(Redirect)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(ScriptAliasMatch|AliasMatch)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)(\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:\"keyword.core.apacheconf\",regex:\"\\\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\\\b\"},{token:\"keyword.mpm.apacheconf\",regex:\"\\\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\\\b\"},{token:\"keyword.access.apacheconf\",regex:\"\\\\b(?:Allow|Deny|Order)\\\\b\"},{token:\"keyword.actions.apacheconf\",regex:\"\\\\b(?:Action|Script)\\\\b\"},{token:\"keyword.alias.apacheconf\",regex:\"\\\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\\\b\"},{token:\"keyword.auth.apacheconf\",regex:\"\\\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\\\b\"},{token:\"keyword.auth_anon.apacheconf\",regex:\"\\\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\\\b\"},{token:\"keyword.auth_dbm.apacheconf\",regex:\"\\\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\\\b\"},{token:\"keyword.auth_digest.apacheconf\",regex:\"\\\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\\\b\"},{token:\"keyword.auth_ldap.apacheconf\",regex:\"\\\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\\\b\"},{token:\"keyword.autoindex.apacheconf\",regex:\"\\\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\\\b\"},{token:\"keyword.cache.apacheconf\",regex:\"\\\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\\\b\"},{token:\"keyword.cern_meta.apacheconf\",regex:\"\\\\b(?:MetaDir|MetaFiles|MetaSuffix)\\\\b\"},{token:\"keyword.cgi.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\\\b\"},{token:\"keyword.cgid.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\\\b\"},{token:\"keyword.charset_lite.apacheconf\",regex:\"\\\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\\\b\"},{token:\"keyword.dav.apacheconf\",regex:\"\\\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\\\b\"},{token:\"keyword.deflate.apacheconf\",regex:\"\\\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\\\b\"},{token:\"keyword.dir.apacheconf\",regex:\"\\\\b(?:DirectoryIndex|DirectorySlash)\\\\b\"},{token:\"keyword.disk_cache.apacheconf\",regex:\"\\\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\\\b\"},{token:\"keyword.dumpio.apacheconf\",regex:\"\\\\b(?:DumpIOInput|DumpIOOutput)\\\\b\"},{token:\"keyword.env.apacheconf\",regex:\"\\\\b(?:PassEnv|SetEnv|UnsetEnv)\\\\b\"},{token:\"keyword.expires.apacheconf\",regex:\"\\\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\\\b\"},{token:\"keyword.ext_filter.apacheconf\",regex:\"\\\\b(?:ExtFilterDefine|ExtFilterOptions)\\\\b\"},{token:\"keyword.file_cache.apacheconf\",regex:\"\\\\b(?:CacheFile|MMapFile)\\\\b\"},{token:\"keyword.headers.apacheconf\",regex:\"\\\\b(?:Header|RequestHeader)\\\\b\"},{token:\"keyword.imap.apacheconf\",regex:\"\\\\b(?:ImapBase|ImapDefault|ImapMenu)\\\\b\"},{token:\"keyword.include.apacheconf\",regex:\"\\\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\\\b\"},{token:\"keyword.isapi.apacheconf\",regex:\"\\\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\\\b\"},{token:\"keyword.ldap.apacheconf\",regex:\"\\\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\\\b\"},{token:\"keyword.log.apacheconf\",regex:\"\\\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\\\b\"},{token:\"keyword.mem_cache.apacheconf\",regex:\"\\\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\\\b\"},{token:\"keyword.mime.apacheconf\",regex:\"\\\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\\\b\"},{token:\"keyword.misc.apacheconf\",regex:\"\\\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\\\b\"},{token:\"keyword.negotiation.apacheconf\",regex:\"\\\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\\\b\"},{token:\"keyword.nw_ssl.apacheconf\",regex:\"\\\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\\\b\"},{token:\"keyword.proxy.apacheconf\",regex:\"\\\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\\\b\"},{token:\"keyword.rewrite.apacheconf\",regex:\"\\\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\\\b\"},{token:\"keyword.setenvif.apacheconf\",regex:\"\\\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\\\b\"},{token:\"keyword.so.apacheconf\",regex:\"\\\\b(?:LoadFile|LoadModule)\\\\b\"},{token:\"keyword.ssl.apacheconf\",regex:\"\\\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\\\b\"},{token:\"keyword.usertrack.apacheconf\",regex:\"\\\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\\\b\"},{token:\"keyword.vhost_alias.apacheconf\",regex:\"\\\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\\\b\"},{token:[\"keyword.php.apacheconf\",\"text\",\"entity.property.apacheconf\",\"text\",\"string.value.apacheconf\",\"text\"],regex:\"\\\\b(php_value|php_flag)\\\\b(?:(\\\\s+)(.+?)(?:(\\\\s+)(.+?))?)?(\\\\s)\"},{token:[\"punctuation.variable.apacheconf\",\"variable.env.apacheconf\",\"variable.misc.apacheconf\",\"punctuation.variable.apacheconf\"],regex:\"(%\\\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\\\})\"},{token:[\"entity.mime-type.apacheconf\",\"text\"],regex:\"\\\\b((?:text|image|application|video|audio)/.+?)(\\\\s)\"},{token:\"entity.helper.apacheconf\",regex:\"\\\\b(?:from|unset|set|on|off)\\\\b\",caseInsensitive:!0},{token:\"constant.integer.apacheconf\",regex:\"\\\\b\\\\d+\\\\b\"},{token:[\"text\",\"punctuation.definition.flag.apacheconf\",\"string.flag.apacheconf\",\"punctuation.definition.flag.apacheconf\",\"text\"],regex:\"(\\\\s)(\\\\[)(.*?)(\\\\])(\\\\s)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"conf\",\"CONF\",\"htaccess\",\"HTACCESS\",\"htgroups\",\"HTGROUPS\",\"htpasswd\",\"HTPASSWD\",\".htaccess\",\".HTACCESS\",\".htgroups\",\".HTGROUPS\",\".htpasswd\",\".HTPASSWD\"],name:\"Apache Conf\",scopeName:\"source.apacheconf\"},r.inherits(s,i),t.ApacheConfHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/apache_conf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/apache_conf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./apache_conf_highlight_rules\").ApacheConfHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/apache_conf\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/apache_conf\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-applescript.js",
    "content": "ace.define(\"ace/mode/applescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"about|above|after|against|and|around|as|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|try|until|where|while|whose|with|without\",t=\"AppleScript|false|linefeed|return|pi|quote|result|space|tab|true\",n=\"activate|beep|count|delay|launch|log|offset|read|round|run|say|summarize|write\",r=\"alias|application|boolean|class|constant|date|file|integer|list|number|real|record|string|text|character|characters|contents|day|frontmost|id|item|length|month|name|paragraph|paragraphs|rest|reverse|running|time|version|weekday|word|words|year\",i=this.createKeywordMapper({\"support.function\":n,\"constant.language\":t,\"support.type\":r,keyword:e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\(\\\\*\",next:\"comment\"},{token:\"string\",regex:'\".*?\"'},{token:\"support.type\",regex:\"\\\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\\\b\"},{token:\"support.function\",regex:\"\\\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\\\b|^\\\\s*return\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(text item delimiters|current application|missing value)\\\\b\"},{token:\"keyword\",regex:\"\\\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\\\b\"},{token:i,regex:\"[a-zA-Z][a-zA-Z0-9_]*\\\\b\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\)\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.AppleScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/applescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/applescript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./applescript_highlight_rules\").AppleScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"(*\",end:\"*)\"},this.$id=\"ace/mode/applescript\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/applescript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-asciidoc.js",
    "content": "ace.define(\"ace/mode/asciidoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){function t(e){var t=/\\w/.test(e)?\"\\\\b\":\"(?:\\\\B|^)\";return t+e+\"[^\"+e+\"].*?\"+e+\"(?![\\\\w*])\"}var e=\"[a-zA-Z\\u00a1-\\uffff]+\\\\b\";this.$rules={start:[{token:\"empty\",regex:/$/},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"literalBlock\"},{token:\"string\",regex:/^\\+{4,}\\s*$/,next:\"passthroughBlock\"},{token:\"keyword\",regex:/^={4,}\\s*$/},{token:\"text\",regex:/^\\s*$/},{token:\"empty\",regex:\"\",next:\"dissallowDelimitedBlock\"}],dissallowDelimitedBlock:[{include:\"paragraphEnd\"},{token:\"comment\",regex:\"^//.+$\"},{token:\"keyword\",regex:\"^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\"},{include:\"listStart\"},{token:\"literal\",regex:/^\\s+.+$/,next:\"indentedBlock\"},{token:\"empty\",regex:\"\",next:\"text\"}],paragraphEnd:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"commentBlock\"},{token:\"tableBlock\",regex:/^\\s*[|!]=+\\s*$/,next:\"tableBlock\"},{token:\"keyword\",regex:/^(?:--|''')\\s*$/,next:\"start\"},{token:\"option\",regex:/^\\[.*\\]\\s*$/,next:\"start\"},{token:\"pageBreak\",regex:/^>{3,}$/,next:\"start\"},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"titleUnderline\",regex:/^(?:={2,}|-{2,}|~{2,}|\\^{2,}|\\+{2,})\\s*$/,next:\"start\"},{token:\"singleLineTitle\",regex:/^={1,5}\\s+\\S.*$/,next:\"start\"},{token:\"otherBlock\",regex:/^(?:\\*{2,}|_{2,})\\s*$/,next:\"start\"},{token:\"optionalTitle\",regex:/^\\.[^.\\s].+$/,next:\"start\"}],listStart:[{token:\"keyword\",regex:/^\\s*(?:\\d+\\.|[a-zA-Z]\\.|[ixvmIXVM]+\\)|\\*{1,5}|-|\\.{1,5})\\s/,next:\"listText\"},{token:\"meta.tag\",regex:/^.+(?::{2,4}|;;)(?: |$)/,next:\"listText\"},{token:\"support.function.list.callout\",regex:/^(?:<\\d+>|\\d+>|>) /,next:\"text\"},{token:\"keyword\",regex:/^\\+\\s*$/,next:\"start\"}],text:[{token:[\"link\",\"variable.language\"],regex:/((?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+)(\\[.*?\\])/},{token:\"link\",regex:/(?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+/},{token:\"link\",regex:/\\b[\\w\\.\\/\\-]+@[\\w\\.\\/\\-]+\\b/},{include:\"macros\"},{include:\"paragraphEnd\"},{token:\"literal\",regex:/\\+{3,}/,next:\"smallPassthrough\"},{token:\"escape\",regex:/\\((?:C|TM|R)\\)|\\.{3}|->|<-|=>|<=|&#(?:\\d+|x[a-fA-F\\d]+);|(?: |^)--(?=\\s+\\S)/},{token:\"escape\",regex:/\\\\[_*'`+#]|\\\\{2}[_*'`+#]{2}/},{token:\"keyword\",regex:/\\s\\+$/},{token:\"text\",regex:e},{token:[\"keyword\",\"string\",\"keyword\"],regex:/(<<[\\w\\d\\-$]+,)(.*?)(>>|$)/},{token:\"keyword\",regex:/<<[\\w\\d\\-$]+,?|>>/},{token:\"constant.character\",regex:/\\({2,3}.*?\\){2,3}/},{token:\"keyword\",regex:/\\[\\[.+?\\]\\]/},{token:\"support\",regex:/^\\[{3}[\\w\\d =\\-]+\\]{3}/},{include:\"quotes\"},{token:\"empty\",regex:/^\\s*$/,next:\"start\"}],listText:[{include:\"listStart\"},{include:\"text\"}],indentedBlock:[{token:\"literal\",regex:/^[\\s\\w].+$/,next:\"indentedBlock\"},{token:\"literal\",regex:\"\",next:\"start\"}],listingBlock:[{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],literalBlock:[{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],passthroughBlock:[{token:\"literal\",regex:/^\\+{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"},{token:\"literal\",regex:\".\"}],smallPassthrough:[{token:\"literal\",regex:/[+]{3,}/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:/^\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"}],commentBlock:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"doc.comment\",regex:\"^.*$\"}],tableBlock:[{token:\"tableBlock\",regex:/^\\s*\\|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"innerTableBlock\"},{token:\"tableBlock\",regex:/\\|/},{include:\"text\",noEscape:!0}],innerTableBlock:[{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"tableBlock\"},{token:\"tableBlock\",regex:/^\\s*|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/!/}],macros:[{token:\"macro\",regex:/{[\\w\\-$]+}/},{token:[\"text\",\"string\",\"text\",\"constant.character\",\"text\"],regex:/({)([\\w\\-$]+)(:)?(.+)?(})/},{token:[\"text\",\"markup.list.macro\",\"keyword\",\"string\"],regex:/(\\w+)(footnote(?:ref)?::?)([^\\s\\[]+)?(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\",\"string\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]*::?)([^\\s\\[]+)(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]+::?)(\\[.*?\\])/},{token:\"keyword\",regex:/^:.+?:(?= |$)/}],quotes:[{token:\"string.italic\",regex:/__[^_\\s].*?__/},{token:\"string.italic\",regex:t(\"_\")},{token:\"keyword.bold\",regex:/\\*\\*[^*\\s].*?\\*\\*/},{token:\"keyword.bold\",regex:t(\"\\\\*\")},{token:\"literal\",regex:t(\"\\\\+\")},{token:\"literal\",regex:/\\+\\+[^+\\s].*?\\+\\+/},{token:\"literal\",regex:/\\$\\$.+?\\$\\$/},{token:\"literal\",regex:t(\"`\")},{token:\"keyword\",regex:t(\"^\")},{token:\"keyword\",regex:t(\"~\")},{token:\"keyword\",regex:/##?/},{token:\"keyword\",regex:/(?:\\B|^)``|\\b''/}]};var n={macro:\"constant.character\",tableBlock:\"doc.comment\",titleUnderline:\"markup.heading\",singleLineTitle:\"markup.heading\",pageBreak:\"string\",option:\"string.regexp\",otherBlock:\"markup.list\",literal:\"support.function\",optionalTitle:\"constant.numeric\",escape:\"constant.language.escape\",link:\"markup.underline.list\"};for(var r in this.$rules){var i=this.$rules[r];for(var s=i.length;s--;){var o=i[s];if(o.include||typeof o==\"string\"){var u=[s,1].concat(this.$rules[o.include||o]);o.noEscape&&(u=u.filter(function(e){return!e.next})),i.splice.apply(i,u)}else o.token in n&&(o.token=n[o.token])}}};r.inherits(s,i),t.AsciidocHighlightRules=s}),ace.define(\"ace/mode/folding/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:\\|={10,}|[\\.\\/=\\-~^+]{4,}\\s*$|={1,5} )/,this.singleLineHeadingRe=/^={1,5}(?=\\s+\\S)/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"=\"?this.singleLineHeadingRe.test(r)?\"start\":e.getLine(n-1).length!=e.getLine(n).length?\"\":\"start\":e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\"?\"end\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type}function d(){var t=f.value.match(p);if(t)return t[0].length;var r=c.indexOf(f.value[0])+1;return r==1&&e.getLine(n-1).length!=e.getLine(n).length?Infinity:r}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;var f,c=[\"=\",\"-\",\"~\",\"^\",\"+\"],h=\"markup.heading\",p=this.singleLineHeadingRe;if(l(n)==h){var v=d();while(++n<o){if(l(n)!=h)continue;var m=d();if(m<=v)break}var g=f&&f.value.match(this.singleLineHeadingRe);a=g?n-1:n-2;if(a>u)while(a>u&&(!l(a)||f.value[0]==\"[\"))a--;if(a>u){var y=e.getLine(a).length;return new s(u,i,a,y)}}else{var b=e.bgTokenizer.getState(n);if(b==\"dissallowDelimitedBlock\"){while(n-->0)if(e.bgTokenizer.getState(n).lastIndexOf(\"Block\")==-1)break;a=n+1;if(a<u){var y=e.getLine(n).length;return new s(a,5,u,i-5)}}else{while(++n<o)if(e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\")break;a=n;if(a>u){var y=e.getLine(n).length;return new s(u,5,a,y-5)}}}}}.call(o.prototype)}),ace.define(\"ace/mode/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/asciidoc_highlight_rules\",\"ace/mode/folding/asciidoc\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./asciidoc_highlight_rules\").AsciidocHighlightRules,o=e(\"./folding/asciidoc\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^((?:.+)?)([-+*][ ]+)/.exec(t);return r?(new Array(r[1].length+1)).join(\" \")+r[2]:\"\"}return this.$getIndent(t)},this.$id=\"ace/mode/asciidoc\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/asciidoc\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-asl.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/asl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"Default|DefinitionBlock|Device|Method|Else|ElseIf|For|Function|If|Include|Method|Return|Scope|Switch|Case|While|Break|BreakPoint|Continue|NoOp|Wait\",t=\"Add|And|Decrement|Divide|Increment|Index|LAnd|LEqual|LGreater|LGreaterEqual|LLess|LLessEqual|LNot|LNotEqual|LOr|Mod|Multiply|NAnd|NOr|Not|Or|RefOf|Revision|ShiftLeft|ShiftRight|Subtract|XOr|DerefOf\",n=\"AccessAs|Acquire|Alias|BankField|Buffer|Concatenate|ConcatenateResTemplate|CondRefOf|Connection|CopyObject|CreateBitField|CreateByteField|CreateDWordField|CreateField|CreateQWordField|CreateWordField|DataTableRegion|Debug|DMA|DWordIO|DWordMemory|DWordSpace|EisaId|EISAID|EndDependentFn|Event|ExtendedIO|ExtendedMemory|ExtendedSpace|External|Fatal|Field|FindSetLeftBit|FindSetRightBit|FixedDMA|FixedIO|Fprintf|FromBCD|GpioInt|GpioIo|I2CSerialBusV2|IndexField|Interrupt|IO|IRQ|IRQNoFlags|Load|LoadTable|Match|Memory32|Memory32Fixed|Mid|Mutex|Name|Notify|Offset|ObjectType|OperationRegion|Package|PowerResource|Printf|QWordIO|QWordMemory|QWordSpace|RawDataBuffer|Register|Release|Reset|ResourceTemplate|Signal|SizeOf|Sleep|SPISerialBusV2|Stall|StartDependentFn|StartDependentFnNoPri|Store|ThermalZone|Timer|ToBCD|ToBuffer|ToDecimalString|ToInteger|ToPLD|ToString|ToUUID|UARTSerialBusV2|Unicode|Unload|VendorLong|VendorShort|WordBusNumber|WordIO|WordSpace\",r=\"AttribQuick|AttribSendReceive|AttribByte|AttribBytes|AttribRawBytes|AttribRawProcessBytes|AttribWord|AttribBlock|AttribProcessCall|AttribBlockProcessCall|AnyAcc|ByteAcc|WordAcc|DWordAcc|QWordAcc|BufferAcc|AddressRangeMemory|AddressRangeReserved|AddressRangeNVS|AddressRangeACPI|RegionSpaceKeyword|FFixedHW|PCC|AddressingMode7Bit|AddressingMode10Bit|DataBitsFive|DataBitsSix|DataBitsSeven|DataBitsEight|DataBitsNine|BusMaster|NotBusMaster|ClockPhaseFirst|ClockPhaseSecond|ClockPolarityLow|ClockPolarityHigh|SubDecode|PosDecode|BigEndianing|LittleEndian|FlowControlNone|FlowControlXon|FlowControlHardware|Edge|Level|ActiveHigh|ActiveLow|ActiveBoth|Decode16|Decode10|IoRestrictionNone|IoRestrictionInputOnly|IoRestrictionOutputOnly|IoRestrictionNoneAndPreserve|Lock|NoLock|MTR|MEQ|MLE|MLT|MGE|MGT|MaxFixed|MaxNotFixed|Cacheable|WriteCombining|Prefetchable|NonCacheable|MinFixed|MinNotFixed|ParityTypeNone|ParityTypeSpace|ParityTypeMark|ParityTypeOdd|ParityTypeEven|PullDefault|PullUp|PullDown|PullNone|PolarityHigh|PolarityLow|ISAOnlyRanges|NonISAOnlyRanges|EntireRange|ReadWrite|ReadOnly|UserDefRegionSpace|SystemIO|SystemMemory|PCI_Config|EmbeddedControl|SMBus|SystemCMOS|PciBarTarget|IPMI|GeneralPurposeIO|GenericSerialBus|ResourceConsumer|ResourceProducer|Serialized|NotSerialized|Shared|Exclusive|SharedAndWake|ExclusiveAndWake|ControllerInitiated|DeviceInitiated|StopBitsZero|StopBitsOne|StopBitsOnePlusHalf|StopBitsTwo|Width8Bit|Width16Bit|Width32Bit|Width64Bit|Width128Bit|Width256Bit|SparseTranslation|DenseTranslation|TypeTranslation|TypeStatic|Preserve|WriteAsOnes|WriteAsZeros|Transfer8|Transfer16|Transfer8_16|ThreeWireMode|FourWireMode\",s=\"UnknownObj|IntObj|StrObj|BuffObj|PkgObj|FieldUnitObj|DeviceObj|EventObj|MethodObj|MutexObj|OpRegionObj|PowerResObj|ProcessorObj|ThermalZoneObj|BuffFieldObj|DDBHandleObj\",o=\"__FILE__|__PATH__|__LINE__|__DATE__|__IASL__\",u=\"Memory24|Processor\",a=this.createKeywordMapper({keyword:e,\"keyword.operator\":t,\"function.buildin\":n,\"constant.language\":o,\"storage.type\":s,\"constant.character\":r,\"invalid.deprecated\":u},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\[\",next:\"ignoredfield\"},{token:\"variable\",regex:\"\\\\Local[0-7]|\\\\Arg[0-6]\"},{token:\"keyword\",regex:\"#\\\\s*(?:define|elif|else|endif|error|if|ifdef|ifndef|include|includebuffer|line|pragma|undef|warning)\\\\b\",next:\"directive\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"constant.character\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/(One(s)?|Zero|True|False|[0-9]+)\\b/},{token:a,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"/|!|\\\\$|%|&|\\\\||\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|\\\\^|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\|=\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],ignoredfield:[{token:\"comment\",regex:\"\\\\]\",next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>*s\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]*s',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.ASLHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/asl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/asl_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./asl_highlight_rules\").ASLHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/asl\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/asl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-assembly_x86.js",
    "content": "ace.define(\"ace/mode/assembly_x86_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control.assembly\",regex:\"\\\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\\\b\",caseInsensitive:!0},{token:\"variable.parameter.register.assembly\",regex:\"\\\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\\\b\",caseInsensitive:!0},{token:\"constant.character.decimal.assembly\",regex:\"\\\\b[0-9]+\\\\b\"},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b0x[A-F0-9]+\\\\b\",caseInsensitive:!0},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b[A-F0-9]+h\\\\b\",caseInsensitive:!0},{token:\"string.assembly\",regex:/'([^\\\\']|\\\\.)*'/},{token:\"string.assembly\",regex:/\"([^\\\\\"]|\\\\.)*\"/},{token:\"support.function.directive.assembly\",regex:\"^\\\\[\",push:[{token:\"support.function.directive.assembly\",regex:\"\\\\]$\",next:\"pop\"},{defaultToken:\"support.function.directive.assembly\"}]},{token:[\"support.function.directive.assembly\",\"support.function.directive.assembly\",\"entity.name.function.assembly\"],regex:\"(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)\"},{token:\"support.function.directive.assembly\",regex:\"^endstruc\\\\b\"},{token:[\"support.function.directive.assembly\",\"entity.name.function.assembly\",\"support.function.directive.assembly\",\"constant.character.assembly\"],regex:\"^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)\"},{token:\"support.function.directive.assembly\",regex:\"^%endmacro\"},{token:[\"text\",\"support.function.directive.assembly\",\"text\",\"entity.name.function.assembly\"],regex:\"(\\\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\\\$\\\\$|\\\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)\",caseInsensitive:!0},{token:\"support.function.directive.assembly\",regex:\"\\\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\\\b\",caseInsensitive:!0},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%%[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%\\\\$[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?:\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?\\\\b\"},{token:\"comment.assembly\",regex:\";.*$\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"asm\"],name:\"Assembly x86\",scopeName:\"source.assembly\"},r.inherits(s,i),t.AssemblyX86HighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/assembly_x86\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/assembly_x86_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./assembly_x86_highlight_rules\").AssemblyX86HighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=[\";\",\"#\"],this.$id=\"ace/mode/assembly_x86\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/assembly_x86\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-autohotkey.js",
    "content": "ace.define(\"ace/mode/autohotkey_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters\",t=\"AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR\";this.$rules={start:[{token:\"comment.line.ahk\",regex:\"(?:^| );.*$\"},{token:\"comment.block.ahk\",regex:\"/\\\\*\",push:[{token:\"comment.block.ahk\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.ahk\"}]},{token:\"doc.comment.ahk\",regex:\"#cs\",push:[{token:\"doc.comment.ahk\",regex:\"#ce\",next:\"pop\"},{defaultToken:\"doc.comment.ahk\"}]},{token:\"keyword.command.ahk\",regex:\"(?:\\\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.ahk\",regex:\"(?:\\\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\\\b\",caseInsensitive:!0},{token:\"support.function.ahk\",regex:\"(?:\\\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\\\b\",caseInsensitive:!0},{token:\"variable.predefined.ahk\",regex:\"(?:\\\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\\\b\",caseInsensitive:!0},{token:\"support.constant.ahk\",regex:\"(?:\\\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\\\b\",caseInsensitive:!0},{token:\"variable.parameter\",regex:\"(?:\\\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\\\b\",caseInsensitive:!0},{keywordMap:{\"constant.language\":e},regex:\"\\\\w+\\\\b\"},{keywordMap:{\"variable.function\":t},regex:\"@\\\\w+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword.operator.ahk\",regex:\"=|==|<>|:=|<|>|\\\\*|\\\\/|\\\\+|:|\\\\?|\\\\-\"},{token:\"punctuation.ahk\",regex:\"#|`|::|,|\\\\{|\\\\}|\\\\(|\\\\)|\\\\%\"},{token:[\"punctuation.quote.double\",\"string.quoted.ahk\",\"punctuation.quote.double\"],regex:'(\")((?:[^\"]|\"\")*)(\")'},{token:[\"label.ahk\",\"punctuation.definition.label.ahk\"],regex:\"^([^: ]+)(:)(?!:)\"}]},this.normalizeRules()};s.metaData={name:\"AutoHotKey\",scopeName:\"source.ahk\",fileTypes:[\"ahk\"],foldingStartMarker:\"^\\\\s*/\\\\*|^(?![^{]*?;|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|;|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"^\\\\s*\\\\*/|^\\\\s*\\\\}\"},r.inherits(s,i),t.AutoHotKeyHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/autohotkey\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/autohotkey_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./autohotkey_highlight_rules\").AutoHotKeyHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/autohotkey\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/autohotkey\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-batchfile.js",
    "content": "ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.command.dosbatch\",regex:\"\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.statement.dosbatch\",regex:\"\\\\b(?:goto|call|exit)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.if.dosbatch\",regex:\"\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.dosbatch\",regex:\"\\\\b(?:if|else)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.repeat.dosbatch\",regex:\"\\\\bfor\\\\b\",caseInsensitive:!0},{token:\"keyword.operator.dosbatch\",regex:\"\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b\"},{token:[\"doc.comment\",\"comment\"],regex:\"(?:^|\\\\b)(rem)($|\\\\s.*$)\",caseInsensitive:!0},{token:\"comment.line.colons.dosbatch\",regex:\"::.*$\"},{include:\"variable\"},{token:\"punctuation.definition.string.begin.shell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.shell\",regex:'\"',next:\"pop\"},{include:\"variable\"},{defaultToken:\"string.quoted.double.dosbatch\"}]},{token:\"keyword.operator.pipe.dosbatch\",regex:\"[|]\"},{token:\"keyword.operator.redirect.shell\",regex:\"&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>\"}],variable:[{token:\"constant.numeric\",regex:\"%%\\\\w+|%[*\\\\d]|%\\\\w+%\"},{token:\"constant.numeric\",regex:\"%~\\\\d+\"},{token:[\"markup.list\",\"constant.other\",\"markup.list\"],regex:\"(%)(\\\\w+)(%?)\"}]},this.normalizeRules()};s.metaData={name:\"Batch File\",scopeName:\"source.dosbatch\",fileTypes:[\"bat\"]},r.inherits(s,i),t.BatchFileHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./batchfile_highlight_rules\").BatchFileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"::\",this.blockComment=\"\",this.$id=\"ace/mode/batchfile\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/batchfile\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-bro.js",
    "content": "ace.define(\"ace/mode/bro_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"punctuation.definition.comment.bro\",regex:/#/,push:[{token:\"comment.line.number-sign.bro\",regex:/$/,next:\"pop\"},{defaultToken:\"comment.line.number-sign.bro\"}]},{token:\"keyword.control.bro\",regex:/\\b(?:break|case|continue|else|for|if|return|switch|next|when|timeout|schedule)\\b/},{token:[\"meta.function.bro\",\"meta.function.bro\",\"storage.type.bro\",\"meta.function.bro\",\"entity.name.function.bro\",\"meta.function.bro\"],regex:/^(\\s*)(?:function|hook|event)(\\s*)(.*)(\\s*\\()(.*)(\\).*$)/},{token:\"storage.type.bro\",regex:/\\b(?:bool|enum|double|int|count|port|addr|subnet|any|file|interval|time|string|table|vector|set|record|pattern|hook)\\b/},{token:\"storage.modifier.bro\",regex:/\\b(?:global|const|redef|local|&(?:optional|rotate_interval|rotate_size|add_func|del_func|expire_func|expire_create|expire_read|expire_write|persistent|synchronized|encrypt|mergeable|priority|group|type_column|log|error_handler))\\b/},{token:\"keyword.operator.bro\",regex:/\\s*(?:\\||&&|(?:>|<|!)=?|==)\\s*|\\b!?in\\b/},{token:\"constant.language.bro\",regex:/\\b(?:T|F)\\b/},{token:\"constant.numeric.bro\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:\\/(?:tcp|udp|icmp)|\\s*(?:u?sec|min|hr|day)s?)?\\b/},{token:\"punctuation.definition.string.begin.bro\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.bro\",regex:/\"/,next:\"pop\"},{include:\"#string_escaped_char\"},{include:\"#string_placeholder\"},{defaultToken:\"string.quoted.double.bro\"}]},{token:\"punctuation.definition.string.begin.bro\",regex:/\\//,push:[{token:\"punctuation.definition.string.end.bro\",regex:/\\//,next:\"pop\"},{include:\"#string_escaped_char\"},{include:\"#string_placeholder\"},{defaultToken:\"string.quoted.regex.bro\"}]},{token:[\"meta.preprocessor.bro.load\",\"keyword.other.special-method.bro\"],regex:/^(\\s*)(\\@load(?:-sigs)?)\\b/,push:[{token:[],regex:/(?=\\#)|$/,next:\"pop\"},{defaultToken:\"meta.preprocessor.bro.load\"}]},{token:[\"meta.preprocessor.bro.if\",\"keyword.other.special-method.bro\",\"meta.preprocessor.bro.if\"],regex:/^(\\s*)(\\@endif|\\@if(?:n?def)?)(.*$)/,push:[{token:[],regex:/$/,next:\"pop\"},{defaultToken:\"meta.preprocessor.bro.if\"}]}],\"#disabled\":[{token:\"text\",regex:/^\\s*\\@if(?:n?def)?\\b.*$/,push:[{token:\"text\",regex:/^\\s*\\@endif\\b.*$/,next:\"pop\"},{include:\"#disabled\"},{include:\"#pragma-mark\"}],comment:\"eat nested preprocessor ifdefs\"}],\"#preprocessor-rule-other\":[{token:[\"text\",\"meta.preprocessor.bro\",\"meta.preprocessor.bro\",\"text\"],regex:/^(\\s*)(@if)((?:n?def)?)\\b(.*?)(?:(?=)|$)/,push:[{token:[\"text\",\"meta.preprocessor.bro\",\"text\"],regex:/^(\\s*)(@endif)\\b(.*$)/,next:\"pop\"},{include:\"$base\"}]}],\"#string_escaped_char\":[{token:\"constant.character.escape.bro\",regex:/\\\\(?:\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2})/},{token:\"invalid.illegal.unknown-escape.bro\",regex:/\\\\./}],\"#string_placeholder\":[{token:\"constant.other.placeholder.bro\",regex:/%(?:\\d+\\$)?[#0\\- +']*[,;:_]?(?:-?\\d+|\\*(?:-?\\d+\\$)?)?(?:\\.(?:-?\\d+|\\*(?:-?\\d+\\$)?)?)?(?:hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]/},{token:\"invalid.illegal.placeholder.bro\",regex:/%/}]},this.normalizeRules()};s.metaData={fileTypes:[\"bro\"],foldingStartMarker:\"^(\\\\@if(n?def)?)\",foldingStopMarker:\"^\\\\@endif\",keyEquivalent:\"@B\",name:\"Bro\",scopeName:\"source.bro\"},r.inherits(s,i),t.BroHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/bro\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/bro_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./bro_highlight_rules\").BroHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/bro\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/bro\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-c9search.js",
    "content": "ace.define(\"ace/mode/c9search_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function o(e,t){try{return new RegExp(e,t)}catch(n){}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{tokenNames:[\"c9searchresults.constant.numeric\",\"c9searchresults.text\",\"c9searchresults.text\",\"c9searchresults.keyword\"],regex:/(^\\s+[0-9]+)(:)(\\d*\\s?)([^\\r\\n]+)/,onMatch:function(e,t,n){var r=this.splitRegex.exec(e),i=this.tokenNames,s=[{type:i[0],value:r[1]},{type:i[1],value:r[2]}];r[3]&&(r[3]==\" \"?s[1]={type:i[1],value:r[2]+\" \"}:s.push({type:i[1],value:r[3]}));var o=n[1],u=r[4],a,f=0;if(o&&o.exec){o.lastIndex=0;while(a=o.exec(u)){var l=u.substring(f,a.index);f=o.lastIndex,l&&s.push({type:i[2],value:l});if(a[0])s.push({type:i[3],value:a[0]});else if(!l)break}}return f<u.length&&s.push({type:i[2],value:u.substr(f)}),s}},{regex:\"^Searching for [^\\\\r\\\\n]*$\",onMatch:function(e,t,n){var r=e.split(\"\\x01\");if(r.length<3)return\"text\";var s,u,a=0,f=[{value:r[a++]+\"'\",type:\"text\"},{value:u=r[a++],type:\"text\"},{value:\"'\"+r[a++],type:\"text\"}];r[2]!==\" in\"&&f.push({value:\"'\"+r[a++]+\"'\",type:\"text\"},{value:r[a++],type:\"text\"}),f.push({value:\" \"+r[a++]+\" \",type:\"text\"}),r[a+1]?(s=r[a+1],f.push({value:\"(\"+r[a+1]+\")\",type:\"text\"}),a+=1):a-=1;while(a++<r.length)r[a]&&f.push({value:r[a],type:\"text\"});u&&(/regex/.test(s)||(u=i.escapeRegExp(u)),/whole/.test(s)&&(u=\"\\\\b\"+u+\"\\\\b\"));var l=u&&o(\"(\"+u+\")\",/ sensitive/.test(s)?\"g\":\"ig\");return l&&(n[0]=t,n[1]=l),f}},{regex:\"^(?=Found \\\\d+ matches)\",token:\"text\",next:\"numbers\"},{token:\"string\",regex:\"^\\\\S:?[^:]+\",next:\"numbers\"}],numbers:[{regex:\"\\\\d+\",token:\"constant.numeric\"},{regex:\"$\",token:\"text\",next:\"start\"}]},this.normalizeRules()};r.inherits(u,s),t.C9SearchHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^(\\S.*:|Searching for.*)$/,this.foldingStopMarker=/^(\\s+|Found.*)$/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getAllLines(n),s=r[n],o=/^(Found.*|Searching for.*)$/,u=/^(\\S.*:|\\s*)$/,a=o.test(s)?o:u,f=n,l=n;if(this.foldingStartMarker.test(s)){for(var c=n+1,h=e.getLength();c<h;c++)if(a.test(r[c]))break;l=c}else if(this.foldingStopMarker.test(s)){for(var c=n-1;c>=0;c--){s=r[c];if(a.test(s))break}f=c}if(f!=l){var p=s.length;return a===o&&(p=s.search(/\\(Found[^)]+\\)$|$/)),new i(f,p,l,0)}}}.call(o.prototype)}),ace.define(\"ace/mode/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c9search_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/c9search\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c9search_highlight_rules\").C9SearchHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/c9search\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c9search\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/c9search\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-c_cpp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/c_cpp\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-cirru.js",
    "content": "ace.define(\"ace/mode/cirru_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"comment.line.double-dash\",regex:/--/,next:\"comment\"},{token:\"storage.modifier\",regex:/\\(/},{token:\"storage.modifier\",regex:/,/,next:\"line\"},{token:\"support.function\",regex:/[^\\(\\)\"\\s]+/,next:\"line\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"},{token:\"storage.modifier\",regex:/\\)/}],comment:[{token:\"comment.line.double-dash\",regex:/ +[^\\n]+/,next:\"start\"}],string:[{token:\"string.quoted.double\",regex:/\"/,next:\"line\"},{token:\"constant.character.escape\",regex:/\\\\/,next:\"escape\"},{token:\"string.quoted.double\",regex:/[^\\\\\"]+/}],escape:[{token:\"constant.character.escape\",regex:/./,next:\"string\"}],line:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"markup.raw\",regex:/^\\s*/,next:\"start\"},{token:\"storage.modifier\",regex:/\\$/,next:\"start\"},{token:\"variable.parameter\",regex:/[^\\(\\)\"\\s]+/},{token:\"storage.modifier\",regex:/\\(/,next:\"start\"},{token:\"storage.modifier\",regex:/\\)/},{token:\"markup.raw\",regex:/^ */,next:\"start\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"}]}};r.inherits(s,i),t.CirruHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/cirru\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cirru_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cirru_highlight_rules\").CirruHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/cirru\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/cirru\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-clojure.js",
    "content": "ace.define(\"ace/mode/clojure_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > &gt; >= &gt;= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap\",t=\"throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!\",n=\"true false nil\",r=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"support.function\":e},\"identifier\",!1,\" \");this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:\"keyword\",regex:\"[\\\\(|\\\\)]\"},{token:\"keyword\",regex:\"[\\\\'\\\\(]\"},{token:\"keyword\",regex:\"[\\\\[|\\\\]]\"},{token:\"keyword\",regex:\"[\\\\{|\\\\}|\\\\#\\\\{|\\\\#\\\\}]\"},{token:\"keyword\",regex:\"[\\\\&]\"},{token:\"keyword\",regex:\"[\\\\#\\\\^\\\\{]\"},{token:\"keyword\",regex:\"[\\\\%]\"},{token:\"keyword\",regex:\"[@]\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"[!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+||=|!=|<=|>=|<>|<|>|!|&&]\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant\",regex:/:[^()\\[\\]{}'\"\\^%`,;\\s]+/},{token:\"string.regexp\",regex:'/#\"(?:\\\\.|(?:\\\\\")|[^\"\"\\n])*\"/g'}],string:[{token:\"constant.language.escape\",regex:\"\\\\\\\\.|\\\\\\\\$\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"}]}};r.inherits(s,i),t.ClojureHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/clojure\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/clojure_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./clojure_highlight_rules\").ClojureHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"defn\",\"defn-\",\"defmacro\",\"def\",\"deftest\",\"testing\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/clojure\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/clojure\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-cobol.js",
    "content": "ace.define(\"ace/mode/cobol_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\*.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.CobolHighlightRules=s}),ace.define(\"ace/mode/cobol\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cobol_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cobol_highlight_rules\").CobolHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"*\",this.$id=\"ace/mode/cobol\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/cobol\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-coffee.js",
    "content": "ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes|yield|export|import|default\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|function|var|void|with|enum|implements|interface|let|package|private|protected|public|static\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/coffee\",[\"require\",\"exports\",\"module\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/worker/worker_client\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function l(){this.HighlightRules=r,this.$outdent=new i,this.foldingRules=new s}var r=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"./folding/coffee\").FoldMode,o=e(\"../range\").Range,u=e(\"./text\").Mode,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"../lib/oop\");f.inherits(l,u),function(){var e=/(?:[({[=:]|[-=]>|\\b(?:else|try|(?:swi|ca)tch(?:\\s+[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*)?|finally))\\s*$|^\\s*(else\\b\\s*)?(?:if|for|while|loop)\\b(?!.*\\bthen\\b)/;this.lineCommentStart=\"#\",this.blockComment={start:\"###\",end:\"###\"},this.getNextLineIndent=function(t,n,r){var i=this.$getIndent(n),s=this.getTokenizer().getLineTokens(n,t).tokens;return(!s.length||s[s.length-1].type!==\"comment\")&&t===\"start\"&&e.test(n)&&(i+=r),i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/coffee_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/coffee\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/coffee\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-coldfusion.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/coldfusion_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this),this.$rules.tag[2].token=function(e,t){var n=t.slice(0,2)==\"cf\"?\"keyword\":\"meta.tag\";return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",n+\".tag-name.xml\"]};var e=Object.keys(this.$rules).filter(function(e){return/^(js|css)-/.test(e)});this.embedRules({cfmlComment:[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"},{regex:\"--->\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},\"\",[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"}],[\"comment\",\"start\",\"tag_whitespace\",\"cdata\"].concat(e)),this.$rules.cfTag=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"pop\"}];var t={token:function(e,t){return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"keyword.tag-name.xml\"]},regex:\"(</?)(cf[-_a-zA-Z0-9:.]+)\",push:\"cfTag\"};e.forEach(function(e){this.$rules[e].unshift(t)},this),this.embedTagRules((new i({jsx:!1})).getRules(),\"cfjs-\",\"cfscript\"),this.normalizeRules()};r.inherits(o,s),t.ColdfusionHighlightRules=o}),ace.define(\"ace/mode/coldfusion\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html\",\"ace/mode/coldfusion_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html\").Mode,o=e(\"./coldfusion_highlight_rules\").ColdfusionHighlightRules,u=\"cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)\".split(\"|\"),a=function(){s.call(this),this.HighlightRules=o};r.inherits(a,s),function(){this.voidElements=r.mixin(i.arrayToMap(u),this.voidElements),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/coldfusion\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/coldfusion\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-csharp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|partial|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))?'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.usingRe=/^\\s*using \\S/,this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);if(!r){var i=e.getLine(n);if(/^\\s*#region\\b/.test(i))return\"start\";var s=this.usingRe;if(s.test(i)){var o=e.getLine(n-1),u=e.getLine(n+1);if(!s.test(o)&&s.test(u))return\"start\"}}return r},this.getFoldWidgetRange=function(e,t,n){var r=this.getFoldWidgetRangeBase(e,t,n);if(r)return r;var i=e.getLine(n);if(this.usingRe.test(i))return this.getUsingStatementBlock(e,i,n);if(/^\\s*#region\\b/.test(i))return this.getRegionBlock(e,i,n)},this.getUsingStatementBlock=function(e,t,n){var r=t.match(this.usingRe)[0].length-1,s=e.getLength(),o=n,u=n;while(++n<s){t=e.getLine(n);if(/^\\s*$/.test(t))continue;if(!this.usingRe.test(t))break;u=n}if(u>o){var a=e.getLine(u).length;return new i(o,r,u,a)}},this.getRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csharp_highlight_rules\").CSharpHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/csharp\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/csharp\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/csharp\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-csound_document.js",
    "content": "ace.define(\"ace/mode/csound_preprocessor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.semicolonComments={token:\"comment.line.semicolon.csound\",regex:\";.*$\"},this.comments=[{token:\"punctuation.definition.comment.begin.csound\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.end.csound\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.csound\"}]},{token:\"comment.line.double-slash.csound\",regex:\"//.*$\"},this.semicolonComments],this.macroUses=[{token:[\"entity.name.function.preprocessor.csound\",\"punctuation.definition.macro-parameter-value-list.begin.csound\"],regex:/(\\$[A-Z_a-z]\\w*\\.?)(\\()/,next:\"macro parameter value list\"},{token:\"entity.name.function.preprocessor.csound\",regex:/\\$[A-Z_a-z]\\w*(?:\\.|\\b)/}],this.numbers=[{token:\"constant.numeric.float.csound\",regex:/(?:\\d+[Ee][+-]?\\d+)|(?:\\d+\\.\\d*|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?/},{token:[\"storage.type.number.csound\",\"constant.numeric.integer.hexadecimal.csound\"],regex:/(0[Xx])([0-9A-Fa-f]+)/},{token:\"constant.numeric.integer.decimal.csound\",regex:/\\d+/}],this.bracedStringContents=[{token:\"constant.character.escape.csound\",regex:/\\\\(?:[\\\\abnrt\"]|[0-7]{1,3})/},{token:\"constant.character.placeholder.csound\",regex:/%[#0\\- +]*\\d*(?:\\.\\d+)?[diuoxXfFeEgGaAcs]/},{token:\"constant.character.escape.csound\",regex:/%%/}],this.quotedStringContents=[this.macroUses,this.bracedStringContents];var e=[this.comments,{token:\"keyword.preprocessor.csound\",regex:/#(?:e(?:nd(?:if)?|lse)\\b|##)|@@?[ \\t]*\\d+/},{token:\"keyword.preprocessor.csound\",regex:/#include/,push:[this.comments,{token:\"string.csound\",regex:/([^ \\t])(?:.*?\\1)/,next:\"pop\"}]},{token:\"keyword.preprocessor.csound\",regex:/#[ \\t]*define/,next:\"define directive\"},{token:\"keyword.preprocessor.csound\",regex:/#(?:ifn?def|undef)\\b/,next:\"macro directive\"},this.macroUses];this.$rules={start:e,\"define directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.begin.csound\",regex:/\\(/,next:\"macro parameter name list\"},{token:\"punctuation.definition.macro.begin.csound\",regex:/#/,next:\"macro body\"}],\"macro parameter name list\":[{token:\"variable.parameter.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.end.csound\",regex:/\\)/,next:\"define directive\"}],\"macro body\":[{token:\"constant.character.escape.csound\",regex:/\\\\#/},{token:\"punctuation.definition.macro.end.csound\",regex:/#/,next:\"start\"},e],\"macro directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"macro parameter value list\":[{token:\"punctuation.definition.macro-parameter-value-list.end.csound\",regex:/\\)/,next:\"start\"},{token:\"punctuation.definition.string.begin.csound\",regex:/\"/,next:\"macro parameter value quoted string\"},this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),{token:\"punctuation.macro-parameter-value-separator.csound\",regex:\"[#']\"}],\"macro parameter value quoted string\":[{token:\"constant.character.escape.csound\",regex:/\\\\[#'()]/},{token:\"invalid.illegal.csound\",regex:/[#'()]/},{token:\"punctuation.definition.string.end.csound\",regex:/\"/,next:\"macro parameter value list\"},this.quotedStringContents,{defaultToken:\"string.quoted.csound\"}],\"macro parameter value parenthetical\":[{token:\"constant.character.escape.csound\",regex:/\\\\\\)/},this.popRule({token:\"punctuation.macro-parameter-value-parenthetical.end.csound\",regex:/\\)/}),this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),e]}};r.inherits(s,i),function(){this.pushRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){r.length===0&&r.push(n);if(Array.isArray(e.next))for(var s=0;s<e.next.length;s++)r.push(e.next[s]);else r.push(e.next);return this.next=r[r.length-1],e.token},get next(){return Array.isArray(e.next)?e.next[e.next.length-1]:e.next},set next(t){if(Array.isArray(e.next)){var n=e.next[e.next.length-1],r=n.length-1,i=t.length-1;if(i>r)while(r>=0&&i>=0){if(n.charAt(r)!==t.charAt(i)){var s=t.substr(0,i);for(var o=0;o<e.next.length;o++)e.next[o]=s+e.next[o];break}r--,i--}}else e.next=t},get token(){return e.token}}},this.popRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){return r.pop(),e.next?(r.push(e.next),this.next=r[r.length-1]):this.next=r.length>1?r[r.length-1]:r.pop(),e.token}}}}.call(s.prototype),t.CsoundPreprocessorHighlightRules=s}),ace.define(\"ace/mode/csound_score_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/csound_preprocessor_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./csound_preprocessor_highlight_rules\").CsoundPreprocessorHighlightRules,s=function(){i.call(this),this.quotedStringContents.push({token:\"invalid.illegal.csound-score\",regex:/[^\"]*$/});var e=this.$rules.start;e.push({token:\"keyword.control.csound-score\",regex:/[abCdefiqstvxy]/},{token:\"invalid.illegal.csound-score\",regex:/w/},{token:\"constant.numeric.language.csound-score\",regex:/z/},{token:[\"keyword.control.csound-score\",\"constant.numeric.integer.decimal.csound-score\"],regex:/([nNpP][pP])(\\d+)/},{token:\"keyword.other.csound-score\",regex:/[mn]/,push:[{token:\"empty\",regex:/$/,next:\"pop\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/}]},{token:\"keyword.preprocessor.csound-score\",regex:/r\\b/,next:\"repeat section\"},this.numbers,{token:\"keyword.operator.csound-score\",regex:\"[!+\\\\-*/^%&|<>#~.]\"},this.pushRule({token:\"punctuation.definition.string.begin.csound-score\",regex:/\"/,next:\"quoted string\"}),this.pushRule({token:\"punctuation.braced-loop.begin.csound-score\",regex:/{/,next:\"loop after left brace\"})),this.addRules({\"repeat section\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"repeat section before label\"}],\"repeat section before label\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"quoted string\":[this.popRule({token:\"punctuation.definition.string.end.csound-score\",regex:/\"/}),this.quotedStringContents,{defaultToken:\"string.quoted.csound-score\"}],\"loop after left brace\":[this.popRule({token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"loop after repeat count\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after repeat count\":[this.popRule({token:\"entity.name.function.preprocessor.csound-score\",regex:/[A-Z_a-z]\\w*\\b/,next:\"loop after macro name\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after macro name\":[e,this.popRule({token:\"punctuation.braced-loop.end.csound-score\",regex:/}/})]}),this.normalizeRules()};r.inherits(s,i),t.CsoundScoreHighlightRules=s}),ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"string.start\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"string.end\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"string\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"variable.language\":\"self|cls\",\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/csound_orchestra_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/mode/csound_preprocessor_highlight_rules\",\"ace/mode/csound_score_highlight_rules\",\"ace/mode/lua_highlight_rules\",\"ace/mode/python_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\"),i=e(\"../lib/oop\"),s=e(\"./csound_preprocessor_highlight_rules\").CsoundPreprocessorHighlightRules,o=e(\"./csound_score_highlight_rules\").CsoundScoreHighlightRules,u=e(\"./lua_highlight_rules\").LuaHighlightRules,a=e(\"./python_highlight_rules\").PythonHighlightRules,f=function(){s.call(this);var e=[\"ATSadd\",\"ATSaddnz\",\"ATSbufread\",\"ATScross\",\"ATSinfo\",\"ATSinterpread\",\"ATSpartialtap\",\"ATSread\",\"ATSreadnz\",\"ATSsinnoi\",\"FLbox\",\"FLbutBank\",\"FLbutton\",\"FLcloseButton\",\"FLcolor\",\"FLcolor2\",\"FLcount\",\"FLexecButton\",\"FLgetsnap\",\"FLgroup\",\"FLgroupEnd\",\"FLgroup_end\",\"FLhide\",\"FLhvsBox\",\"FLhvsBoxSetValue\",\"FLjoy\",\"FLkeyIn\",\"FLknob\",\"FLlabel\",\"FLloadsnap\",\"FLmouse\",\"FLpack\",\"FLpackEnd\",\"FLpack_end\",\"FLpanel\",\"FLpanelEnd\",\"FLpanel_end\",\"FLprintk\",\"FLprintk2\",\"FLroller\",\"FLrun\",\"FLsavesnap\",\"FLscroll\",\"FLscrollEnd\",\"FLscroll_end\",\"FLsetAlign\",\"FLsetBox\",\"FLsetColor\",\"FLsetColor2\",\"FLsetFont\",\"FLsetPosition\",\"FLsetSize\",\"FLsetSnapGroup\",\"FLsetText\",\"FLsetTextColor\",\"FLsetTextSize\",\"FLsetTextType\",\"FLsetVal\",\"FLsetVal_i\",\"FLsetVali\",\"FLsetsnap\",\"FLshow\",\"FLslidBnk\",\"FLslidBnk2\",\"FLslidBnk2Set\",\"FLslidBnk2Setk\",\"FLslidBnkGetHandle\",\"FLslidBnkSet\",\"FLslidBnkSetk\",\"FLslider\",\"FLtabs\",\"FLtabsEnd\",\"FLtabs_end\",\"FLtext\",\"FLupdate\",\"FLvalue\",\"FLvkeybd\",\"FLvslidBnk\",\"FLvslidBnk2\",\"FLxyin\",\"JackoAudioIn\",\"JackoAudioInConnect\",\"JackoAudioOut\",\"JackoAudioOutConnect\",\"JackoFreewheel\",\"JackoInfo\",\"JackoInit\",\"JackoMidiInConnect\",\"JackoMidiOut\",\"JackoMidiOutConnect\",\"JackoNoteOut\",\"JackoOn\",\"JackoTransport\",\"K35_hpf\",\"K35_lpf\",\"MixerClear\",\"MixerGetLevel\",\"MixerReceive\",\"MixerSend\",\"MixerSetLevel\",\"MixerSetLevel_i\",\"OSCinit\",\"OSClisten\",\"OSCraw\",\"OSCsend\",\"S\",\"STKBandedWG\",\"STKBeeThree\",\"STKBlowBotl\",\"STKBlowHole\",\"STKBowed\",\"STKBrass\",\"STKClarinet\",\"STKDrummer\",\"STKFMVoices\",\"STKFlute\",\"STKHevyMetl\",\"STKMandolin\",\"STKModalBar\",\"STKMoog\",\"STKPercFlut\",\"STKPlucked\",\"STKResonate\",\"STKRhodey\",\"STKSaxofony\",\"STKShakers\",\"STKSimple\",\"STKSitar\",\"STKStifKarp\",\"STKTubeBell\",\"STKVoicForm\",\"STKWhistle\",\"STKWurley\",\"a\",\"abs\",\"active\",\"adsr\",\"adsyn\",\"adsynt\",\"adsynt2\",\"aftouch\",\"alpass\",\"alwayson\",\"ampdb\",\"ampdbfs\",\"ampmidi\",\"ampmidid\",\"areson\",\"aresonk\",\"atone\",\"atonek\",\"atonex\",\"babo\",\"balance\",\"bamboo\",\"barmodel\",\"bbcutm\",\"bbcuts\",\"betarand\",\"bexprnd\",\"bformdec1\",\"bformenc1\",\"binit\",\"biquad\",\"biquada\",\"birnd\",\"bpf\",\"bqrez\",\"buchla\",\"butbp\",\"butbr\",\"buthp\",\"butlp\",\"butterbp\",\"butterbr\",\"butterhp\",\"butterlp\",\"button\",\"buzz\",\"c2r\",\"cabasa\",\"cauchy\",\"cauchyi\",\"cbrt\",\"ceil\",\"cell\",\"cent\",\"centroid\",\"ceps\",\"cepsinv\",\"chanctrl\",\"changed\",\"changed2\",\"chani\",\"chano\",\"chebyshevpoly\",\"checkbox\",\"chn_S\",\"chn_a\",\"chn_k\",\"chnclear\",\"chnexport\",\"chnget\",\"chngetks\",\"chnmix\",\"chnparams\",\"chnset\",\"chnsetks\",\"chuap\",\"clear\",\"clfilt\",\"clip\",\"clockoff\",\"clockon\",\"cmp\",\"cmplxprod\",\"comb\",\"combinv\",\"compilecsd\",\"compileorc\",\"compilestr\",\"compress\",\"compress2\",\"connect\",\"control\",\"convle\",\"convolve\",\"copya2ftab\",\"copyf2array\",\"cos\",\"cosh\",\"cosinv\",\"cosseg\",\"cossegb\",\"cossegr\",\"cps2pch\",\"cpsmidi\",\"cpsmidib\",\"cpsmidinn\",\"cpsoct\",\"cpspch\",\"cpstmid\",\"cpstun\",\"cpstuni\",\"cpsxpch\",\"cpumeter\",\"cpuprc\",\"cross2\",\"crossfm\",\"crossfmi\",\"crossfmpm\",\"crossfmpmi\",\"crosspm\",\"crosspmi\",\"crunch\",\"ctlchn\",\"ctrl14\",\"ctrl21\",\"ctrl7\",\"ctrlinit\",\"cuserrnd\",\"dam\",\"date\",\"dates\",\"db\",\"dbamp\",\"dbfsamp\",\"dcblock\",\"dcblock2\",\"dconv\",\"dct\",\"dctinv\",\"delay\",\"delay1\",\"delayk\",\"delayr\",\"delayw\",\"deltap\",\"deltap3\",\"deltapi\",\"deltapn\",\"deltapx\",\"deltapxw\",\"denorm\",\"diff\",\"diode_ladder\",\"directory\",\"diskgrain\",\"diskin\",\"diskin2\",\"dispfft\",\"display\",\"distort\",\"distort1\",\"divz\",\"doppler\",\"dot\",\"downsamp\",\"dripwater\",\"dssiactivate\",\"dssiaudio\",\"dssictls\",\"dssiinit\",\"dssilist\",\"dumpk\",\"dumpk2\",\"dumpk3\",\"dumpk4\",\"duserrnd\",\"dust\",\"dust2\",\"envlpx\",\"envlpxr\",\"ephasor\",\"eqfil\",\"evalstr\",\"event\",\"event_i\",\"exciter\",\"exitnow\",\"exp\",\"expcurve\",\"expon\",\"exprand\",\"exprandi\",\"expseg\",\"expsega\",\"expsegb\",\"expsegba\",\"expsegr\",\"fareylen\",\"fareyleni\",\"faustaudio\",\"faustcompile\",\"faustctl\",\"faustgen\",\"fft\",\"fftinv\",\"ficlose\",\"filebit\",\"filelen\",\"filenchnls\",\"filepeak\",\"filescal\",\"filesr\",\"filevalid\",\"fillarray\",\"filter2\",\"fin\",\"fini\",\"fink\",\"fiopen\",\"flanger\",\"flashtxt\",\"flooper\",\"flooper2\",\"floor\",\"fluidAllOut\",\"fluidCCi\",\"fluidCCk\",\"fluidControl\",\"fluidEngine\",\"fluidLoad\",\"fluidNote\",\"fluidOut\",\"fluidProgramSelect\",\"fluidSetInterpMethod\",\"fmanal\",\"fmax\",\"fmb3\",\"fmbell\",\"fmin\",\"fmmetal\",\"fmod\",\"fmpercfl\",\"fmrhode\",\"fmvoice\",\"fmwurlie\",\"fof\",\"fof2\",\"fofilter\",\"fog\",\"fold\",\"follow\",\"follow2\",\"foscil\",\"foscili\",\"fout\",\"fouti\",\"foutir\",\"foutk\",\"fprintks\",\"fprints\",\"frac\",\"fractalnoise\",\"framebuffer\",\"freeverb\",\"ftchnls\",\"ftconv\",\"ftcps\",\"ftfree\",\"ftgen\",\"ftgenonce\",\"ftgentmp\",\"ftlen\",\"ftload\",\"ftloadk\",\"ftlptim\",\"ftmorf\",\"ftom\",\"ftresize\",\"ftresizei\",\"ftsamplebank\",\"ftsave\",\"ftsavek\",\"ftsr\",\"gain\",\"gainslider\",\"gauss\",\"gaussi\",\"gausstrig\",\"gbuzz\",\"genarray\",\"genarray_i\",\"gendy\",\"gendyc\",\"gendyx\",\"getcfg\",\"getcol\",\"getftargs\",\"getrow\",\"getseed\",\"gogobel\",\"grain\",\"grain2\",\"grain3\",\"granule\",\"guiro\",\"harmon\",\"harmon2\",\"harmon3\",\"harmon4\",\"hdf5read\",\"hdf5write\",\"hilbert\",\"hilbert2\",\"hrtfearly\",\"hrtfmove\",\"hrtfmove2\",\"hrtfreverb\",\"hrtfstat\",\"hsboscil\",\"hvs1\",\"hvs2\",\"hvs3\",\"hypot\",\"i\",\"ihold\",\"imagecreate\",\"imagefree\",\"imagegetpixel\",\"imageload\",\"imagesave\",\"imagesetpixel\",\"imagesize\",\"in\",\"in32\",\"inch\",\"inh\",\"init\",\"initc14\",\"initc21\",\"initc7\",\"inleta\",\"inletf\",\"inletk\",\"inletkid\",\"inletv\",\"ino\",\"inq\",\"inrg\",\"ins\",\"insglobal\",\"insremot\",\"int\",\"integ\",\"interp\",\"invalue\",\"inx\",\"inz\",\"jacktransport\",\"jitter\",\"jitter2\",\"joystick\",\"jspline\",\"k\",\"la_i_add_mc\",\"la_i_add_mr\",\"la_i_add_vc\",\"la_i_add_vr\",\"la_i_assign_mc\",\"la_i_assign_mr\",\"la_i_assign_t\",\"la_i_assign_vc\",\"la_i_assign_vr\",\"la_i_conjugate_mc\",\"la_i_conjugate_mr\",\"la_i_conjugate_vc\",\"la_i_conjugate_vr\",\"la_i_distance_vc\",\"la_i_distance_vr\",\"la_i_divide_mc\",\"la_i_divide_mr\",\"la_i_divide_vc\",\"la_i_divide_vr\",\"la_i_dot_mc\",\"la_i_dot_mc_vc\",\"la_i_dot_mr\",\"la_i_dot_mr_vr\",\"la_i_dot_vc\",\"la_i_dot_vr\",\"la_i_get_mc\",\"la_i_get_mr\",\"la_i_get_vc\",\"la_i_get_vr\",\"la_i_invert_mc\",\"la_i_invert_mr\",\"la_i_lower_solve_mc\",\"la_i_lower_solve_mr\",\"la_i_lu_det_mc\",\"la_i_lu_det_mr\",\"la_i_lu_factor_mc\",\"la_i_lu_factor_mr\",\"la_i_lu_solve_mc\",\"la_i_lu_solve_mr\",\"la_i_mc_create\",\"la_i_mc_set\",\"la_i_mr_create\",\"la_i_mr_set\",\"la_i_multiply_mc\",\"la_i_multiply_mr\",\"la_i_multiply_vc\",\"la_i_multiply_vr\",\"la_i_norm1_mc\",\"la_i_norm1_mr\",\"la_i_norm1_vc\",\"la_i_norm1_vr\",\"la_i_norm_euclid_mc\",\"la_i_norm_euclid_mr\",\"la_i_norm_euclid_vc\",\"la_i_norm_euclid_vr\",\"la_i_norm_inf_mc\",\"la_i_norm_inf_mr\",\"la_i_norm_inf_vc\",\"la_i_norm_inf_vr\",\"la_i_norm_max_mc\",\"la_i_norm_max_mr\",\"la_i_print_mc\",\"la_i_print_mr\",\"la_i_print_vc\",\"la_i_print_vr\",\"la_i_qr_eigen_mc\",\"la_i_qr_eigen_mr\",\"la_i_qr_factor_mc\",\"la_i_qr_factor_mr\",\"la_i_qr_sym_eigen_mc\",\"la_i_qr_sym_eigen_mr\",\"la_i_random_mc\",\"la_i_random_mr\",\"la_i_random_vc\",\"la_i_random_vr\",\"la_i_size_mc\",\"la_i_size_mr\",\"la_i_size_vc\",\"la_i_size_vr\",\"la_i_subtract_mc\",\"la_i_subtract_mr\",\"la_i_subtract_vc\",\"la_i_subtract_vr\",\"la_i_t_assign\",\"la_i_trace_mc\",\"la_i_trace_mr\",\"la_i_transpose_mc\",\"la_i_transpose_mr\",\"la_i_upper_solve_mc\",\"la_i_upper_solve_mr\",\"la_i_vc_create\",\"la_i_vc_set\",\"la_i_vr_create\",\"la_i_vr_set\",\"la_k_a_assign\",\"la_k_add_mc\",\"la_k_add_mr\",\"la_k_add_vc\",\"la_k_add_vr\",\"la_k_assign_a\",\"la_k_assign_f\",\"la_k_assign_mc\",\"la_k_assign_mr\",\"la_k_assign_t\",\"la_k_assign_vc\",\"la_k_assign_vr\",\"la_k_conjugate_mc\",\"la_k_conjugate_mr\",\"la_k_conjugate_vc\",\"la_k_conjugate_vr\",\"la_k_current_f\",\"la_k_current_vr\",\"la_k_distance_vc\",\"la_k_distance_vr\",\"la_k_divide_mc\",\"la_k_divide_mr\",\"la_k_divide_vc\",\"la_k_divide_vr\",\"la_k_dot_mc\",\"la_k_dot_mc_vc\",\"la_k_dot_mr\",\"la_k_dot_mr_vr\",\"la_k_dot_vc\",\"la_k_dot_vr\",\"la_k_f_assign\",\"la_k_get_mc\",\"la_k_get_mr\",\"la_k_get_vc\",\"la_k_get_vr\",\"la_k_invert_mc\",\"la_k_invert_mr\",\"la_k_lower_solve_mc\",\"la_k_lower_solve_mr\",\"la_k_lu_det_mc\",\"la_k_lu_det_mr\",\"la_k_lu_factor_mc\",\"la_k_lu_factor_mr\",\"la_k_lu_solve_mc\",\"la_k_lu_solve_mr\",\"la_k_mc_set\",\"la_k_mr_set\",\"la_k_multiply_mc\",\"la_k_multiply_mr\",\"la_k_multiply_vc\",\"la_k_multiply_vr\",\"la_k_norm1_mc\",\"la_k_norm1_mr\",\"la_k_norm1_vc\",\"la_k_norm1_vr\",\"la_k_norm_euclid_mc\",\"la_k_norm_euclid_mr\",\"la_k_norm_euclid_vc\",\"la_k_norm_euclid_vr\",\"la_k_norm_inf_mc\",\"la_k_norm_inf_mr\",\"la_k_norm_inf_vc\",\"la_k_norm_inf_vr\",\"la_k_norm_max_mc\",\"la_k_norm_max_mr\",\"la_k_qr_eigen_mc\",\"la_k_qr_eigen_mr\",\"la_k_qr_factor_mc\",\"la_k_qr_factor_mr\",\"la_k_qr_sym_eigen_mc\",\"la_k_qr_sym_eigen_mr\",\"la_k_random_mc\",\"la_k_random_mr\",\"la_k_random_vc\",\"la_k_random_vr\",\"la_k_subtract_mc\",\"la_k_subtract_mr\",\"la_k_subtract_vc\",\"la_k_subtract_vr\",\"la_k_t_assign\",\"la_k_trace_mc\",\"la_k_trace_mr\",\"la_k_upper_solve_mc\",\"la_k_upper_solve_mr\",\"la_k_vc_set\",\"la_k_vr_set\",\"lenarray\",\"lfo\",\"limit\",\"limit1\",\"line\",\"linen\",\"linenr\",\"lineto\",\"link_beat_force\",\"link_beat_get\",\"link_beat_request\",\"link_create\",\"link_enable\",\"link_is_enabled\",\"link_metro\",\"link_peers\",\"link_tempo_get\",\"link_tempo_set\",\"linlin\",\"linrand\",\"linseg\",\"linsegb\",\"linsegr\",\"liveconv\",\"locsend\",\"locsig\",\"log\",\"log10\",\"log2\",\"logbtwo\",\"logcurve\",\"loopseg\",\"loopsegp\",\"looptseg\",\"loopxseg\",\"lorenz\",\"loscil\",\"loscil3\",\"loscilx\",\"lowpass2\",\"lowres\",\"lowresx\",\"lpf18\",\"lpform\",\"lpfreson\",\"lphasor\",\"lpinterp\",\"lposcil\",\"lposcil3\",\"lposcila\",\"lposcilsa\",\"lposcilsa2\",\"lpread\",\"lpreson\",\"lpshold\",\"lpsholdp\",\"lpslot\",\"lua_exec\",\"lua_iaopcall\",\"lua_iaopcall_off\",\"lua_ikopcall\",\"lua_ikopcall_off\",\"lua_iopcall\",\"lua_iopcall_off\",\"lua_opdef\",\"mac\",\"maca\",\"madsr\",\"mags\",\"mandel\",\"mandol\",\"maparray\",\"maparray_i\",\"marimba\",\"massign\",\"max\",\"max_k\",\"maxabs\",\"maxabsaccum\",\"maxaccum\",\"maxalloc\",\"maxarray\",\"mclock\",\"mdelay\",\"median\",\"mediank\",\"metro\",\"mfb\",\"midglobal\",\"midiarp\",\"midic14\",\"midic21\",\"midic7\",\"midichannelaftertouch\",\"midichn\",\"midicontrolchange\",\"midictrl\",\"mididefault\",\"midifilestatus\",\"midiin\",\"midinoteoff\",\"midinoteoncps\",\"midinoteonkey\",\"midinoteonoct\",\"midinoteonpch\",\"midion\",\"midion2\",\"midiout\",\"midiout_i\",\"midipgm\",\"midipitchbend\",\"midipolyaftertouch\",\"midiprogramchange\",\"miditempo\",\"midremot\",\"min\",\"minabs\",\"minabsaccum\",\"minaccum\",\"minarray\",\"mincer\",\"mirror\",\"mode\",\"modmatrix\",\"monitor\",\"moog\",\"moogladder\",\"moogladder2\",\"moogvcf\",\"moogvcf2\",\"moscil\",\"mp3bitrate\",\"mp3in\",\"mp3len\",\"mp3nchnls\",\"mp3scal\",\"mp3scal_check\",\"mp3scal_load\",\"mp3scal_load2\",\"mp3scal_play\",\"mp3scal_play2\",\"mp3sr\",\"mpulse\",\"mrtmsg\",\"mtof\",\"mton\",\"multitap\",\"mute\",\"mvchpf\",\"mvclpf1\",\"mvclpf2\",\"mvclpf3\",\"mvclpf4\",\"mxadsr\",\"nchnls_hw\",\"nestedap\",\"nlalp\",\"nlfilt\",\"nlfilt2\",\"noise\",\"noteoff\",\"noteon\",\"noteondur\",\"noteondur2\",\"notnum\",\"nreverb\",\"nrpn\",\"nsamp\",\"nstance\",\"nstrnum\",\"ntom\",\"ntrpol\",\"nxtpow2\",\"octave\",\"octcps\",\"octmidi\",\"octmidib\",\"octmidinn\",\"octpch\",\"olabuffer\",\"oscbnk\",\"oscil\",\"oscil1\",\"oscil1i\",\"oscil3\",\"oscili\",\"oscilikt\",\"osciliktp\",\"oscilikts\",\"osciln\",\"oscils\",\"oscilx\",\"out\",\"out32\",\"outc\",\"outch\",\"outh\",\"outiat\",\"outic\",\"outic14\",\"outipat\",\"outipb\",\"outipc\",\"outkat\",\"outkc\",\"outkc14\",\"outkpat\",\"outkpb\",\"outkpc\",\"outleta\",\"outletf\",\"outletk\",\"outletkid\",\"outletv\",\"outo\",\"outq\",\"outq1\",\"outq2\",\"outq3\",\"outq4\",\"outrg\",\"outs\",\"outs1\",\"outs2\",\"outvalue\",\"outx\",\"outz\",\"p\",\"p5gconnect\",\"p5gdata\",\"pan\",\"pan2\",\"pareq\",\"part2txt\",\"partials\",\"partikkel\",\"partikkelget\",\"partikkelset\",\"partikkelsync\",\"passign\",\"paulstretch\",\"pcauchy\",\"pchbend\",\"pchmidi\",\"pchmidib\",\"pchmidinn\",\"pchoct\",\"pchtom\",\"pconvolve\",\"pcount\",\"pdclip\",\"pdhalf\",\"pdhalfy\",\"peak\",\"pgmassign\",\"pgmchn\",\"phaser1\",\"phaser2\",\"phasor\",\"phasorbnk\",\"phs\",\"pindex\",\"pinker\",\"pinkish\",\"pitch\",\"pitchac\",\"pitchamdf\",\"planet\",\"platerev\",\"plltrack\",\"pluck\",\"poisson\",\"pol2rect\",\"polyaft\",\"polynomial\",\"port\",\"portk\",\"poscil\",\"poscil3\",\"pow\",\"powershape\",\"powoftwo\",\"pows\",\"prealloc\",\"prepiano\",\"print\",\"print_type\",\"printf\",\"printf_i\",\"printk\",\"printk2\",\"printks\",\"printks2\",\"prints\",\"product\",\"pset\",\"ptable\",\"ptable3\",\"ptablei\",\"ptableiw\",\"ptablew\",\"ptrack\",\"puts\",\"pvadd\",\"pvbufread\",\"pvcross\",\"pvinterp\",\"pvoc\",\"pvread\",\"pvs2array\",\"pvs2tab\",\"pvsadsyn\",\"pvsanal\",\"pvsarp\",\"pvsbandp\",\"pvsbandr\",\"pvsbin\",\"pvsblur\",\"pvsbuffer\",\"pvsbufread\",\"pvsbufread2\",\"pvscale\",\"pvscent\",\"pvsceps\",\"pvscross\",\"pvsdemix\",\"pvsdiskin\",\"pvsdisp\",\"pvsenvftw\",\"pvsfilter\",\"pvsfread\",\"pvsfreeze\",\"pvsfromarray\",\"pvsftr\",\"pvsftw\",\"pvsfwrite\",\"pvsgain\",\"pvsgendy\",\"pvshift\",\"pvsifd\",\"pvsin\",\"pvsinfo\",\"pvsinit\",\"pvslock\",\"pvsmaska\",\"pvsmix\",\"pvsmooth\",\"pvsmorph\",\"pvsosc\",\"pvsout\",\"pvspitch\",\"pvstanal\",\"pvstencil\",\"pvstrace\",\"pvsvoc\",\"pvswarp\",\"pvsynth\",\"pwd\",\"pyassign\",\"pyassigni\",\"pyassignt\",\"pycall\",\"pycall1\",\"pycall1i\",\"pycall1t\",\"pycall2\",\"pycall2i\",\"pycall2t\",\"pycall3\",\"pycall3i\",\"pycall3t\",\"pycall4\",\"pycall4i\",\"pycall4t\",\"pycall5\",\"pycall5i\",\"pycall5t\",\"pycall6\",\"pycall6i\",\"pycall6t\",\"pycall7\",\"pycall7i\",\"pycall7t\",\"pycall8\",\"pycall8i\",\"pycall8t\",\"pycalli\",\"pycalln\",\"pycallni\",\"pycallt\",\"pyeval\",\"pyevali\",\"pyevalt\",\"pyexec\",\"pyexeci\",\"pyexect\",\"pyinit\",\"pylassign\",\"pylassigni\",\"pylassignt\",\"pylcall\",\"pylcall1\",\"pylcall1i\",\"pylcall1t\",\"pylcall2\",\"pylcall2i\",\"pylcall2t\",\"pylcall3\",\"pylcall3i\",\"pylcall3t\",\"pylcall4\",\"pylcall4i\",\"pylcall4t\",\"pylcall5\",\"pylcall5i\",\"pylcall5t\",\"pylcall6\",\"pylcall6i\",\"pylcall6t\",\"pylcall7\",\"pylcall7i\",\"pylcall7t\",\"pylcall8\",\"pylcall8i\",\"pylcall8t\",\"pylcalli\",\"pylcalln\",\"pylcallni\",\"pylcallt\",\"pyleval\",\"pylevali\",\"pylevalt\",\"pylexec\",\"pylexeci\",\"pylexect\",\"pylrun\",\"pylruni\",\"pylrunt\",\"pyrun\",\"pyruni\",\"pyrunt\",\"qinf\",\"qnan\",\"r2c\",\"rand\",\"randh\",\"randi\",\"random\",\"randomh\",\"randomi\",\"rbjeq\",\"readclock\",\"readf\",\"readfi\",\"readk\",\"readk2\",\"readk3\",\"readk4\",\"readks\",\"readscore\",\"readscratch\",\"rect2pol\",\"release\",\"remoteport\",\"remove\",\"repluck\",\"reson\",\"resonk\",\"resonr\",\"resonx\",\"resonxk\",\"resony\",\"resonz\",\"resyn\",\"reverb\",\"reverb2\",\"reverbsc\",\"rewindscore\",\"rezzy\",\"rfft\",\"rifft\",\"rms\",\"rnd\",\"rnd31\",\"round\",\"rspline\",\"rtclock\",\"s16b14\",\"s32b14\",\"samphold\",\"sandpaper\",\"sc_lag\",\"sc_lagud\",\"sc_phasor\",\"sc_trig\",\"scale\",\"scalearray\",\"scanhammer\",\"scans\",\"scantable\",\"scanu\",\"schedkwhen\",\"schedkwhennamed\",\"schedule\",\"schedwhen\",\"scoreline\",\"scoreline_i\",\"seed\",\"sekere\",\"select\",\"semitone\",\"sense\",\"sensekey\",\"seqtime\",\"seqtime2\",\"serialBegin\",\"serialEnd\",\"serialFlush\",\"serialPrint\",\"serialRead\",\"serialWrite\",\"serialWrite_i\",\"setcol\",\"setctrl\",\"setksmps\",\"setrow\",\"setscorepos\",\"sfilist\",\"sfinstr\",\"sfinstr3\",\"sfinstr3m\",\"sfinstrm\",\"sfload\",\"sflooper\",\"sfpassign\",\"sfplay\",\"sfplay3\",\"sfplay3m\",\"sfplaym\",\"sfplist\",\"sfpreset\",\"shaker\",\"shiftin\",\"shiftout\",\"signalflowgraph\",\"signum\",\"sin\",\"sinh\",\"sininv\",\"sinsyn\",\"sleighbells\",\"slicearray\",\"slider16\",\"slider16f\",\"slider16table\",\"slider16tablef\",\"slider32\",\"slider32f\",\"slider32table\",\"slider32tablef\",\"slider64\",\"slider64f\",\"slider64table\",\"slider64tablef\",\"slider8\",\"slider8f\",\"slider8table\",\"slider8tablef\",\"sliderKawai\",\"sndloop\",\"sndwarp\",\"sndwarpst\",\"sockrecv\",\"sockrecvs\",\"socksend\",\"socksend_k\",\"socksends\",\"sorta\",\"sortd\",\"soundin\",\"space\",\"spat3d\",\"spat3di\",\"spat3dt\",\"spdist\",\"splitrig\",\"sprintf\",\"sprintfk\",\"spsend\",\"sqrt\",\"squinewave\",\"statevar\",\"stix\",\"strcat\",\"strcatk\",\"strchar\",\"strchark\",\"strcmp\",\"strcmpk\",\"strcpy\",\"strcpyk\",\"strecv\",\"streson\",\"strfromurl\",\"strget\",\"strindex\",\"strindexk\",\"strlen\",\"strlenk\",\"strlower\",\"strlowerk\",\"strrindex\",\"strrindexk\",\"strset\",\"strsub\",\"strsubk\",\"strtod\",\"strtodk\",\"strtol\",\"strtolk\",\"strupper\",\"strupperk\",\"stsend\",\"subinstr\",\"subinstrinit\",\"sum\",\"sumarray\",\"svfilter\",\"syncgrain\",\"syncloop\",\"syncphasor\",\"system\",\"system_i\",\"tab\",\"tab2pvs\",\"tab_i\",\"tabifd\",\"table\",\"table3\",\"table3kt\",\"tablecopy\",\"tablefilter\",\"tablefilteri\",\"tablegpw\",\"tablei\",\"tableicopy\",\"tableigpw\",\"tableikt\",\"tableimix\",\"tableiw\",\"tablekt\",\"tablemix\",\"tableng\",\"tablera\",\"tableseg\",\"tableshuffle\",\"tableshufflei\",\"tablew\",\"tablewa\",\"tablewkt\",\"tablexkt\",\"tablexseg\",\"tabmorph\",\"tabmorpha\",\"tabmorphak\",\"tabmorphi\",\"tabplay\",\"tabrec\",\"tabsum\",\"tabw\",\"tabw_i\",\"tambourine\",\"tan\",\"tanh\",\"taninv\",\"taninv2\",\"tb0\",\"tb0_init\",\"tb1\",\"tb10\",\"tb10_init\",\"tb11\",\"tb11_init\",\"tb12\",\"tb12_init\",\"tb13\",\"tb13_init\",\"tb14\",\"tb14_init\",\"tb15\",\"tb15_init\",\"tb1_init\",\"tb2\",\"tb2_init\",\"tb3\",\"tb3_init\",\"tb4\",\"tb4_init\",\"tb5\",\"tb5_init\",\"tb6\",\"tb6_init\",\"tb7\",\"tb7_init\",\"tb8\",\"tb8_init\",\"tb9\",\"tb9_init\",\"tbvcf\",\"tempest\",\"tempo\",\"temposcal\",\"tempoval\",\"timedseq\",\"timeinstk\",\"timeinsts\",\"timek\",\"times\",\"tival\",\"tlineto\",\"tone\",\"tonek\",\"tonex\",\"tradsyn\",\"trandom\",\"transeg\",\"transegb\",\"transegr\",\"trcross\",\"trfilter\",\"trhighest\",\"trigger\",\"trigseq\",\"trirand\",\"trlowest\",\"trmix\",\"trscale\",\"trshift\",\"trsplit\",\"turnoff\",\"turnoff2\",\"turnon\",\"tvconv\",\"unirand\",\"unwrap\",\"upsamp\",\"urandom\",\"urd\",\"vactrol\",\"vadd\",\"vadd_i\",\"vaddv\",\"vaddv_i\",\"vaget\",\"valpass\",\"vaset\",\"vbap\",\"vbapg\",\"vbapgmove\",\"vbaplsinit\",\"vbapmove\",\"vbapz\",\"vbapzmove\",\"vcella\",\"vco\",\"vco2\",\"vco2ft\",\"vco2ift\",\"vco2init\",\"vcomb\",\"vcopy\",\"vcopy_i\",\"vdel_k\",\"vdelay\",\"vdelay3\",\"vdelayk\",\"vdelayx\",\"vdelayxq\",\"vdelayxs\",\"vdelayxw\",\"vdelayxwq\",\"vdelayxws\",\"vdivv\",\"vdivv_i\",\"vecdelay\",\"veloc\",\"vexp\",\"vexp_i\",\"vexpseg\",\"vexpv\",\"vexpv_i\",\"vibes\",\"vibr\",\"vibrato\",\"vincr\",\"vlimit\",\"vlinseg\",\"vlowres\",\"vmap\",\"vmirror\",\"vmult\",\"vmult_i\",\"vmultv\",\"vmultv_i\",\"voice\",\"vosim\",\"vphaseseg\",\"vport\",\"vpow\",\"vpow_i\",\"vpowv\",\"vpowv_i\",\"vpvoc\",\"vrandh\",\"vrandi\",\"vsubv\",\"vsubv_i\",\"vtaba\",\"vtabi\",\"vtabk\",\"vtable1k\",\"vtablea\",\"vtablei\",\"vtablek\",\"vtablewa\",\"vtablewi\",\"vtablewk\",\"vtabwa\",\"vtabwi\",\"vtabwk\",\"vwrap\",\"waveset\",\"websocket\",\"weibull\",\"wgbow\",\"wgbowedbar\",\"wgbrass\",\"wgclar\",\"wgflute\",\"wgpluck\",\"wgpluck2\",\"wguide1\",\"wguide2\",\"wiiconnect\",\"wiidata\",\"wiirange\",\"wiisend\",\"window\",\"wrap\",\"writescratch\",\"wterrain\",\"xadsr\",\"xin\",\"xout\",\"xscanmap\",\"xscans\",\"xscansmap\",\"xscanu\",\"xtratim\",\"xyscale\",\"zacl\",\"zakinit\",\"zamod\",\"zar\",\"zarg\",\"zaw\",\"zawm\",\"zdf_1pole\",\"zdf_1pole_mode\",\"zdf_2pole\",\"zdf_2pole_mode\",\"zdf_ladder\",\"zfilter2\",\"zir\",\"ziw\",\"ziwm\",\"zkcl\",\"zkmod\",\"zkr\",\"zkw\",\"zkwm\"],t=[\"array\",\"bformdec\",\"bformenc\",\"copy2ftab\",\"copy2ttab\",\"hrtfer\",\"ktableseg\",\"lentab\",\"maxtab\",\"mintab\",\"scalet\",\"sndload\",\"soundout\",\"soundouts\",\"specaddm\",\"specdiff\",\"specdisp\",\"specfilt\",\"spechist\",\"specptrk\",\"specscal\",\"specsum\",\"spectrum\",\"sumtab\",\"tabgen\",\"tabmap\",\"tabmap_i\",\"tabslice\",\"vbap16\",\"vbap4\",\"vbap4move\",\"vbap8\",\"vbap8move\",\"xyin\"];e=r.arrayToMap(e),t=r.arrayToMap(t),this.lineContinuations=[{token:\"constant.character.escape.line-continuation.csound\",regex:/\\\\$/},this.pushRule({token:\"constant.character.escape.line-continuation.csound\",regex:/\\\\/,next:\"line continuation\"})],this.comments.push(this.lineContinuations),this.quotedStringContents.push(this.lineContinuations,{token:\"invalid.illegal\",regex:/[^\"\\\\]*$/});var n=this.$rules.start;n.splice(1,0,{token:[\"text.csound\",\"entity.name.label.csound\",\"entity.punctuation.label.csound\",\"text.csound\"],regex:/^([ \\t]*)(\\w+)(:)([ \\t]+|$)/}),n.push(this.pushRule({token:\"keyword.function.csound\",regex:/\\binstr\\b/,next:\"instrument numbers and identifiers\"}),this.pushRule({token:\"keyword.function.csound\",regex:/\\bopcode\\b/,next:\"after opcode keyword\"}),{token:\"keyword.other.csound\",regex:/\\bend(?:in|op)\\b/},{token:\"variable.language.csound\",regex:/\\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\\b/},this.numbers,{token:\"keyword.operator.csound\",regex:\"\\\\+=|-=|\\\\*=|/=|<<|>>|<=|>=|==|!=|&&|\\\\|\\\\||[~\\u00ac]|[=!+\\\\-*/^%&|<>#?:]\"},this.pushRule({token:\"punctuation.definition.string.begin.csound\",regex:/\"/,next:\"quoted string\"}),this.pushRule({token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"braced string\"}),{token:\"keyword.control.csound\",regex:/\\b(?:do|else(?:if)?|end(?:if|until)|fi|i(?:f|then)|kthen|od|r(?:ir)?eturn|then|until|while)\\b/},this.pushRule({token:\"keyword.control.csound\",regex:/\\b[ik]?goto\\b/,next:\"goto before label\"}),this.pushRule({token:\"keyword.control.csound\",regex:/\\b(?:r(?:einit|igoto)|tigoto)\\b/,next:\"goto before label\"}),this.pushRule({token:\"keyword.control.csound\",regex:/\\bc(?:g|in?|k|nk?)goto\\b/,next:[\"goto before label\",\"goto before argument\"]}),this.pushRule({token:\"keyword.control.csound\",regex:/\\btimout\\b/,next:[\"goto before label\",\"goto before argument\",\"goto before argument\"]}),this.pushRule({token:\"keyword.control.csound\",regex:/\\bloop_[gl][et]\\b/,next:[\"goto before label\",\"goto before argument\",\"goto before argument\",\"goto before argument\"]}),this.pushRule({token:\"support.function.csound\",regex:/\\b(?:readscore|scoreline(?:_i)?)\\b/,next:\"Csound score opcode\"}),this.pushRule({token:\"support.function.csound\",regex:/\\bpyl?run[it]?\\b(?!$)/,next:\"Python opcode\"}),this.pushRule({token:\"support.function.csound\",regex:/\\blua_(?:exec|opdef)\\b(?!$)/,next:\"Lua opcode\"}),{token:\"support.variable.csound\",regex:/\\bp\\d+\\b/},{regex:/\\b([A-Z_a-z]\\w*)(?:(:)([A-Za-z]))?\\b/,onMatch:function(n,r,i,s){var o=n.split(this.splitRegex),u=o[1],a;return e.hasOwnProperty(u)?a=\"support.function.csound\":t.hasOwnProperty(u)&&(a=\"invalid.deprecated.csound\"),a?o[2]?[{type:a,value:u},{type:\"punctuation.type-annotation.csound\",value:o[2]},{type:\"type-annotation.storage.type.csound\",value:o[3]}]:a:\"text.csound\"}}),this.$rules[\"macro parameter value list\"].splice(2,0,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"macro parameter value braced string\"}),this.addRules({\"macro parameter value braced string\":[{token:\"constant.character.escape.csound\",regex:/\\\\[#'()]/},{token:\"invalid.illegal.csound.csound\",regex:/[#'()]/},{token:\"punctuation.definition.string.end.csound\",regex:/}}/,next:\"macro parameter value list\"},{defaultToken:\"string.braced.csound\"}],\"instrument numbers and identifiers\":[this.comments,{token:\"entity.name.function.csound\",regex:/\\d+|[A-Z_a-z]\\w*/},this.popRule({token:\"empty\",regex:/$/})],\"after opcode keyword\":[this.comments,this.popRule({token:\"empty\",regex:/$/}),this.popRule({token:\"entity.name.function.opcode.csound\",regex:/[A-Z_a-z]\\w*/,next:\"opcode type signatures\"})],\"opcode type signatures\":[this.comments,this.popRule({token:\"empty\",regex:/$/}),{token:\"storage.type.csound\",regex:/\\b(?:0|[afijkKoOpPStV\\[\\]]+)/}],\"quoted string\":[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/\"/}),this.quotedStringContents,{defaultToken:\"string.quoted.csound\"}],\"braced string\":[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/}}/}),this.bracedStringContents,{defaultToken:\"string.braced.csound\"}],\"goto before argument\":[this.popRule({token:\"text.csound\",regex:/,/}),n],\"goto before label\":[{token:\"text.csound\",regex:/\\s+/},this.comments,this.popRule({token:\"entity.name.label.csound\",regex:/\\w+/}),this.popRule({token:\"empty\",regex:/(?!\\w)/})],\"Csound score opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"csound-score-start\"},this.popRule({token:\"empty\",regex:/$/})],\"Python opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"python-start\"},this.popRule({token:\"empty\",regex:/$/})],\"Lua opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"lua-start\"},this.popRule({token:\"empty\",regex:/$/})],\"line continuation\":[this.popRule({token:\"empty\",regex:/$/}),this.semicolonComments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}]});var i=[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/}}/})];this.embedRules(o,\"csound-score-\",i),this.embedRules(a,\"python-\",i),this.embedRules(u,\"lua-\",i),this.normalizeRules()};i.inherits(f,s),t.CsoundOrchestraHighlightRules=f}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/csound_document_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/csound_orchestra_highlight_rules\",\"ace/mode/csound_score_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./csound_orchestra_highlight_rules\").CsoundOrchestraHighlightRules,s=e(\"./csound_score_highlight_rules\").CsoundScoreHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=e(\"./text_highlight_rules\").TextHighlightRules,a=function(){this.$rules={start:[{token:[\"meta.tag.punctuation.tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:/(<)(CsoundSynthesi[sz]er)(>)/,next:\"synthesizer\"},{defaultToken:\"text.csound-document\"}],synthesizer:[{token:[\"meta.tag.punctuation.end-tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(</)(CsoundSynthesi[sz]er)(>)\",next:\"start\"},{token:[\"meta.tag.punctuation.tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(<)(CsInstruments)(>)\",next:\"csound-start\"},{token:[\"meta.tag.punctuation.tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(<)(CsScore)(>)\",next:\"csound-score-start\"},{token:[\"meta.tag.punctuation.tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(<)([Hh][Tt][Mm][Ll])(>)\",next:\"html-start\"}]},this.embedRules(i,\"csound-\",[{token:[\"meta.tag.punctuation.end-tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(</)(CsInstruments)(>)\",next:\"synthesizer\"}]),this.embedRules(s,\"csound-score-\",[{token:[\"meta.tag.punctuation.end-tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(</)(CsScore)(>)\",next:\"synthesizer\"}]),this.embedRules(o,\"html-\",[{token:[\"meta.tag.punctuation.end-tag-open.csound-document\",\"entity.name.tag.begin.csound-document\",\"meta.tag.punctuation.tag-close.csound-document\"],regex:\"(</)([Hh][Tt][Mm][Ll])(>)\",next:\"synthesizer\"}]),this.normalizeRules()};r.inherits(a,u),t.CsoundDocumentHighlightRules=a}),ace.define(\"ace/mode/csound_document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csound_document_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csound_document_highlight_rules\").CsoundDocumentHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/csound_document\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-csound_orchestra.js",
    "content": "ace.define(\"ace/mode/csound_preprocessor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.semicolonComments={token:\"comment.line.semicolon.csound\",regex:\";.*$\"},this.comments=[{token:\"punctuation.definition.comment.begin.csound\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.end.csound\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.csound\"}]},{token:\"comment.line.double-slash.csound\",regex:\"//.*$\"},this.semicolonComments],this.macroUses=[{token:[\"entity.name.function.preprocessor.csound\",\"punctuation.definition.macro-parameter-value-list.begin.csound\"],regex:/(\\$[A-Z_a-z]\\w*\\.?)(\\()/,next:\"macro parameter value list\"},{token:\"entity.name.function.preprocessor.csound\",regex:/\\$[A-Z_a-z]\\w*(?:\\.|\\b)/}],this.numbers=[{token:\"constant.numeric.float.csound\",regex:/(?:\\d+[Ee][+-]?\\d+)|(?:\\d+\\.\\d*|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?/},{token:[\"storage.type.number.csound\",\"constant.numeric.integer.hexadecimal.csound\"],regex:/(0[Xx])([0-9A-Fa-f]+)/},{token:\"constant.numeric.integer.decimal.csound\",regex:/\\d+/}],this.bracedStringContents=[{token:\"constant.character.escape.csound\",regex:/\\\\(?:[\\\\abnrt\"]|[0-7]{1,3})/},{token:\"constant.character.placeholder.csound\",regex:/%[#0\\- +]*\\d*(?:\\.\\d+)?[diuoxXfFeEgGaAcs]/},{token:\"constant.character.escape.csound\",regex:/%%/}],this.quotedStringContents=[this.macroUses,this.bracedStringContents];var e=[this.comments,{token:\"keyword.preprocessor.csound\",regex:/#(?:e(?:nd(?:if)?|lse)\\b|##)|@@?[ \\t]*\\d+/},{token:\"keyword.preprocessor.csound\",regex:/#include/,push:[this.comments,{token:\"string.csound\",regex:/([^ \\t])(?:.*?\\1)/,next:\"pop\"}]},{token:\"keyword.preprocessor.csound\",regex:/#[ \\t]*define/,next:\"define directive\"},{token:\"keyword.preprocessor.csound\",regex:/#(?:ifn?def|undef)\\b/,next:\"macro directive\"},this.macroUses];this.$rules={start:e,\"define directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.begin.csound\",regex:/\\(/,next:\"macro parameter name list\"},{token:\"punctuation.definition.macro.begin.csound\",regex:/#/,next:\"macro body\"}],\"macro parameter name list\":[{token:\"variable.parameter.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.end.csound\",regex:/\\)/,next:\"define directive\"}],\"macro body\":[{token:\"constant.character.escape.csound\",regex:/\\\\#/},{token:\"punctuation.definition.macro.end.csound\",regex:/#/,next:\"start\"},e],\"macro directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"macro parameter value list\":[{token:\"punctuation.definition.macro-parameter-value-list.end.csound\",regex:/\\)/,next:\"start\"},{token:\"punctuation.definition.string.begin.csound\",regex:/\"/,next:\"macro parameter value quoted string\"},this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),{token:\"punctuation.macro-parameter-value-separator.csound\",regex:\"[#']\"}],\"macro parameter value quoted string\":[{token:\"constant.character.escape.csound\",regex:/\\\\[#'()]/},{token:\"invalid.illegal.csound\",regex:/[#'()]/},{token:\"punctuation.definition.string.end.csound\",regex:/\"/,next:\"macro parameter value list\"},this.quotedStringContents,{defaultToken:\"string.quoted.csound\"}],\"macro parameter value parenthetical\":[{token:\"constant.character.escape.csound\",regex:/\\\\\\)/},this.popRule({token:\"punctuation.macro-parameter-value-parenthetical.end.csound\",regex:/\\)/}),this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),e]}};r.inherits(s,i),function(){this.pushRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){r.length===0&&r.push(n);if(Array.isArray(e.next))for(var s=0;s<e.next.length;s++)r.push(e.next[s]);else r.push(e.next);return this.next=r[r.length-1],e.token},get next(){return Array.isArray(e.next)?e.next[e.next.length-1]:e.next},set next(t){if(Array.isArray(e.next)){var n=e.next[e.next.length-1],r=n.length-1,i=t.length-1;if(i>r)while(r>=0&&i>=0){if(n.charAt(r)!==t.charAt(i)){var s=t.substr(0,i);for(var o=0;o<e.next.length;o++)e.next[o]=s+e.next[o];break}r--,i--}}else e.next=t},get token(){return e.token}}},this.popRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){return r.pop(),e.next?(r.push(e.next),this.next=r[r.length-1]):this.next=r.length>1?r[r.length-1]:r.pop(),e.token}}}}.call(s.prototype),t.CsoundPreprocessorHighlightRules=s}),ace.define(\"ace/mode/csound_score_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/csound_preprocessor_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./csound_preprocessor_highlight_rules\").CsoundPreprocessorHighlightRules,s=function(){i.call(this),this.quotedStringContents.push({token:\"invalid.illegal.csound-score\",regex:/[^\"]*$/});var e=this.$rules.start;e.push({token:\"keyword.control.csound-score\",regex:/[abCdefiqstvxy]/},{token:\"invalid.illegal.csound-score\",regex:/w/},{token:\"constant.numeric.language.csound-score\",regex:/z/},{token:[\"keyword.control.csound-score\",\"constant.numeric.integer.decimal.csound-score\"],regex:/([nNpP][pP])(\\d+)/},{token:\"keyword.other.csound-score\",regex:/[mn]/,push:[{token:\"empty\",regex:/$/,next:\"pop\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/}]},{token:\"keyword.preprocessor.csound-score\",regex:/r\\b/,next:\"repeat section\"},this.numbers,{token:\"keyword.operator.csound-score\",regex:\"[!+\\\\-*/^%&|<>#~.]\"},this.pushRule({token:\"punctuation.definition.string.begin.csound-score\",regex:/\"/,next:\"quoted string\"}),this.pushRule({token:\"punctuation.braced-loop.begin.csound-score\",regex:/{/,next:\"loop after left brace\"})),this.addRules({\"repeat section\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"repeat section before label\"}],\"repeat section before label\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"quoted string\":[this.popRule({token:\"punctuation.definition.string.end.csound-score\",regex:/\"/}),this.quotedStringContents,{defaultToken:\"string.quoted.csound-score\"}],\"loop after left brace\":[this.popRule({token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"loop after repeat count\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after repeat count\":[this.popRule({token:\"entity.name.function.preprocessor.csound-score\",regex:/[A-Z_a-z]\\w*\\b/,next:\"loop after macro name\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after macro name\":[e,this.popRule({token:\"punctuation.braced-loop.end.csound-score\",regex:/}/})]}),this.normalizeRules()};r.inherits(s,i),t.CsoundScoreHighlightRules=s}),ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"string.start\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"string.end\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"string\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"variable.language\":\"self|cls\",\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/csound_orchestra_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/mode/csound_preprocessor_highlight_rules\",\"ace/mode/csound_score_highlight_rules\",\"ace/mode/lua_highlight_rules\",\"ace/mode/python_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\"),i=e(\"../lib/oop\"),s=e(\"./csound_preprocessor_highlight_rules\").CsoundPreprocessorHighlightRules,o=e(\"./csound_score_highlight_rules\").CsoundScoreHighlightRules,u=e(\"./lua_highlight_rules\").LuaHighlightRules,a=e(\"./python_highlight_rules\").PythonHighlightRules,f=function(){s.call(this);var e=[\"ATSadd\",\"ATSaddnz\",\"ATSbufread\",\"ATScross\",\"ATSinfo\",\"ATSinterpread\",\"ATSpartialtap\",\"ATSread\",\"ATSreadnz\",\"ATSsinnoi\",\"FLbox\",\"FLbutBank\",\"FLbutton\",\"FLcloseButton\",\"FLcolor\",\"FLcolor2\",\"FLcount\",\"FLexecButton\",\"FLgetsnap\",\"FLgroup\",\"FLgroupEnd\",\"FLgroup_end\",\"FLhide\",\"FLhvsBox\",\"FLhvsBoxSetValue\",\"FLjoy\",\"FLkeyIn\",\"FLknob\",\"FLlabel\",\"FLloadsnap\",\"FLmouse\",\"FLpack\",\"FLpackEnd\",\"FLpack_end\",\"FLpanel\",\"FLpanelEnd\",\"FLpanel_end\",\"FLprintk\",\"FLprintk2\",\"FLroller\",\"FLrun\",\"FLsavesnap\",\"FLscroll\",\"FLscrollEnd\",\"FLscroll_end\",\"FLsetAlign\",\"FLsetBox\",\"FLsetColor\",\"FLsetColor2\",\"FLsetFont\",\"FLsetPosition\",\"FLsetSize\",\"FLsetSnapGroup\",\"FLsetText\",\"FLsetTextColor\",\"FLsetTextSize\",\"FLsetTextType\",\"FLsetVal\",\"FLsetVal_i\",\"FLsetVali\",\"FLsetsnap\",\"FLshow\",\"FLslidBnk\",\"FLslidBnk2\",\"FLslidBnk2Set\",\"FLslidBnk2Setk\",\"FLslidBnkGetHandle\",\"FLslidBnkSet\",\"FLslidBnkSetk\",\"FLslider\",\"FLtabs\",\"FLtabsEnd\",\"FLtabs_end\",\"FLtext\",\"FLupdate\",\"FLvalue\",\"FLvkeybd\",\"FLvslidBnk\",\"FLvslidBnk2\",\"FLxyin\",\"JackoAudioIn\",\"JackoAudioInConnect\",\"JackoAudioOut\",\"JackoAudioOutConnect\",\"JackoFreewheel\",\"JackoInfo\",\"JackoInit\",\"JackoMidiInConnect\",\"JackoMidiOut\",\"JackoMidiOutConnect\",\"JackoNoteOut\",\"JackoOn\",\"JackoTransport\",\"K35_hpf\",\"K35_lpf\",\"MixerClear\",\"MixerGetLevel\",\"MixerReceive\",\"MixerSend\",\"MixerSetLevel\",\"MixerSetLevel_i\",\"OSCinit\",\"OSClisten\",\"OSCraw\",\"OSCsend\",\"S\",\"STKBandedWG\",\"STKBeeThree\",\"STKBlowBotl\",\"STKBlowHole\",\"STKBowed\",\"STKBrass\",\"STKClarinet\",\"STKDrummer\",\"STKFMVoices\",\"STKFlute\",\"STKHevyMetl\",\"STKMandolin\",\"STKModalBar\",\"STKMoog\",\"STKPercFlut\",\"STKPlucked\",\"STKResonate\",\"STKRhodey\",\"STKSaxofony\",\"STKShakers\",\"STKSimple\",\"STKSitar\",\"STKStifKarp\",\"STKTubeBell\",\"STKVoicForm\",\"STKWhistle\",\"STKWurley\",\"a\",\"abs\",\"active\",\"adsr\",\"adsyn\",\"adsynt\",\"adsynt2\",\"aftouch\",\"alpass\",\"alwayson\",\"ampdb\",\"ampdbfs\",\"ampmidi\",\"ampmidid\",\"areson\",\"aresonk\",\"atone\",\"atonek\",\"atonex\",\"babo\",\"balance\",\"bamboo\",\"barmodel\",\"bbcutm\",\"bbcuts\",\"betarand\",\"bexprnd\",\"bformdec1\",\"bformenc1\",\"binit\",\"biquad\",\"biquada\",\"birnd\",\"bpf\",\"bqrez\",\"buchla\",\"butbp\",\"butbr\",\"buthp\",\"butlp\",\"butterbp\",\"butterbr\",\"butterhp\",\"butterlp\",\"button\",\"buzz\",\"c2r\",\"cabasa\",\"cauchy\",\"cauchyi\",\"cbrt\",\"ceil\",\"cell\",\"cent\",\"centroid\",\"ceps\",\"cepsinv\",\"chanctrl\",\"changed\",\"changed2\",\"chani\",\"chano\",\"chebyshevpoly\",\"checkbox\",\"chn_S\",\"chn_a\",\"chn_k\",\"chnclear\",\"chnexport\",\"chnget\",\"chngetks\",\"chnmix\",\"chnparams\",\"chnset\",\"chnsetks\",\"chuap\",\"clear\",\"clfilt\",\"clip\",\"clockoff\",\"clockon\",\"cmp\",\"cmplxprod\",\"comb\",\"combinv\",\"compilecsd\",\"compileorc\",\"compilestr\",\"compress\",\"compress2\",\"connect\",\"control\",\"convle\",\"convolve\",\"copya2ftab\",\"copyf2array\",\"cos\",\"cosh\",\"cosinv\",\"cosseg\",\"cossegb\",\"cossegr\",\"cps2pch\",\"cpsmidi\",\"cpsmidib\",\"cpsmidinn\",\"cpsoct\",\"cpspch\",\"cpstmid\",\"cpstun\",\"cpstuni\",\"cpsxpch\",\"cpumeter\",\"cpuprc\",\"cross2\",\"crossfm\",\"crossfmi\",\"crossfmpm\",\"crossfmpmi\",\"crosspm\",\"crosspmi\",\"crunch\",\"ctlchn\",\"ctrl14\",\"ctrl21\",\"ctrl7\",\"ctrlinit\",\"cuserrnd\",\"dam\",\"date\",\"dates\",\"db\",\"dbamp\",\"dbfsamp\",\"dcblock\",\"dcblock2\",\"dconv\",\"dct\",\"dctinv\",\"delay\",\"delay1\",\"delayk\",\"delayr\",\"delayw\",\"deltap\",\"deltap3\",\"deltapi\",\"deltapn\",\"deltapx\",\"deltapxw\",\"denorm\",\"diff\",\"diode_ladder\",\"directory\",\"diskgrain\",\"diskin\",\"diskin2\",\"dispfft\",\"display\",\"distort\",\"distort1\",\"divz\",\"doppler\",\"dot\",\"downsamp\",\"dripwater\",\"dssiactivate\",\"dssiaudio\",\"dssictls\",\"dssiinit\",\"dssilist\",\"dumpk\",\"dumpk2\",\"dumpk3\",\"dumpk4\",\"duserrnd\",\"dust\",\"dust2\",\"envlpx\",\"envlpxr\",\"ephasor\",\"eqfil\",\"evalstr\",\"event\",\"event_i\",\"exciter\",\"exitnow\",\"exp\",\"expcurve\",\"expon\",\"exprand\",\"exprandi\",\"expseg\",\"expsega\",\"expsegb\",\"expsegba\",\"expsegr\",\"fareylen\",\"fareyleni\",\"faustaudio\",\"faustcompile\",\"faustctl\",\"faustgen\",\"fft\",\"fftinv\",\"ficlose\",\"filebit\",\"filelen\",\"filenchnls\",\"filepeak\",\"filescal\",\"filesr\",\"filevalid\",\"fillarray\",\"filter2\",\"fin\",\"fini\",\"fink\",\"fiopen\",\"flanger\",\"flashtxt\",\"flooper\",\"flooper2\",\"floor\",\"fluidAllOut\",\"fluidCCi\",\"fluidCCk\",\"fluidControl\",\"fluidEngine\",\"fluidLoad\",\"fluidNote\",\"fluidOut\",\"fluidProgramSelect\",\"fluidSetInterpMethod\",\"fmanal\",\"fmax\",\"fmb3\",\"fmbell\",\"fmin\",\"fmmetal\",\"fmod\",\"fmpercfl\",\"fmrhode\",\"fmvoice\",\"fmwurlie\",\"fof\",\"fof2\",\"fofilter\",\"fog\",\"fold\",\"follow\",\"follow2\",\"foscil\",\"foscili\",\"fout\",\"fouti\",\"foutir\",\"foutk\",\"fprintks\",\"fprints\",\"frac\",\"fractalnoise\",\"framebuffer\",\"freeverb\",\"ftchnls\",\"ftconv\",\"ftcps\",\"ftfree\",\"ftgen\",\"ftgenonce\",\"ftgentmp\",\"ftlen\",\"ftload\",\"ftloadk\",\"ftlptim\",\"ftmorf\",\"ftom\",\"ftresize\",\"ftresizei\",\"ftsamplebank\",\"ftsave\",\"ftsavek\",\"ftsr\",\"gain\",\"gainslider\",\"gauss\",\"gaussi\",\"gausstrig\",\"gbuzz\",\"genarray\",\"genarray_i\",\"gendy\",\"gendyc\",\"gendyx\",\"getcfg\",\"getcol\",\"getftargs\",\"getrow\",\"getseed\",\"gogobel\",\"grain\",\"grain2\",\"grain3\",\"granule\",\"guiro\",\"harmon\",\"harmon2\",\"harmon3\",\"harmon4\",\"hdf5read\",\"hdf5write\",\"hilbert\",\"hilbert2\",\"hrtfearly\",\"hrtfmove\",\"hrtfmove2\",\"hrtfreverb\",\"hrtfstat\",\"hsboscil\",\"hvs1\",\"hvs2\",\"hvs3\",\"hypot\",\"i\",\"ihold\",\"imagecreate\",\"imagefree\",\"imagegetpixel\",\"imageload\",\"imagesave\",\"imagesetpixel\",\"imagesize\",\"in\",\"in32\",\"inch\",\"inh\",\"init\",\"initc14\",\"initc21\",\"initc7\",\"inleta\",\"inletf\",\"inletk\",\"inletkid\",\"inletv\",\"ino\",\"inq\",\"inrg\",\"ins\",\"insglobal\",\"insremot\",\"int\",\"integ\",\"interp\",\"invalue\",\"inx\",\"inz\",\"jacktransport\",\"jitter\",\"jitter2\",\"joystick\",\"jspline\",\"k\",\"la_i_add_mc\",\"la_i_add_mr\",\"la_i_add_vc\",\"la_i_add_vr\",\"la_i_assign_mc\",\"la_i_assign_mr\",\"la_i_assign_t\",\"la_i_assign_vc\",\"la_i_assign_vr\",\"la_i_conjugate_mc\",\"la_i_conjugate_mr\",\"la_i_conjugate_vc\",\"la_i_conjugate_vr\",\"la_i_distance_vc\",\"la_i_distance_vr\",\"la_i_divide_mc\",\"la_i_divide_mr\",\"la_i_divide_vc\",\"la_i_divide_vr\",\"la_i_dot_mc\",\"la_i_dot_mc_vc\",\"la_i_dot_mr\",\"la_i_dot_mr_vr\",\"la_i_dot_vc\",\"la_i_dot_vr\",\"la_i_get_mc\",\"la_i_get_mr\",\"la_i_get_vc\",\"la_i_get_vr\",\"la_i_invert_mc\",\"la_i_invert_mr\",\"la_i_lower_solve_mc\",\"la_i_lower_solve_mr\",\"la_i_lu_det_mc\",\"la_i_lu_det_mr\",\"la_i_lu_factor_mc\",\"la_i_lu_factor_mr\",\"la_i_lu_solve_mc\",\"la_i_lu_solve_mr\",\"la_i_mc_create\",\"la_i_mc_set\",\"la_i_mr_create\",\"la_i_mr_set\",\"la_i_multiply_mc\",\"la_i_multiply_mr\",\"la_i_multiply_vc\",\"la_i_multiply_vr\",\"la_i_norm1_mc\",\"la_i_norm1_mr\",\"la_i_norm1_vc\",\"la_i_norm1_vr\",\"la_i_norm_euclid_mc\",\"la_i_norm_euclid_mr\",\"la_i_norm_euclid_vc\",\"la_i_norm_euclid_vr\",\"la_i_norm_inf_mc\",\"la_i_norm_inf_mr\",\"la_i_norm_inf_vc\",\"la_i_norm_inf_vr\",\"la_i_norm_max_mc\",\"la_i_norm_max_mr\",\"la_i_print_mc\",\"la_i_print_mr\",\"la_i_print_vc\",\"la_i_print_vr\",\"la_i_qr_eigen_mc\",\"la_i_qr_eigen_mr\",\"la_i_qr_factor_mc\",\"la_i_qr_factor_mr\",\"la_i_qr_sym_eigen_mc\",\"la_i_qr_sym_eigen_mr\",\"la_i_random_mc\",\"la_i_random_mr\",\"la_i_random_vc\",\"la_i_random_vr\",\"la_i_size_mc\",\"la_i_size_mr\",\"la_i_size_vc\",\"la_i_size_vr\",\"la_i_subtract_mc\",\"la_i_subtract_mr\",\"la_i_subtract_vc\",\"la_i_subtract_vr\",\"la_i_t_assign\",\"la_i_trace_mc\",\"la_i_trace_mr\",\"la_i_transpose_mc\",\"la_i_transpose_mr\",\"la_i_upper_solve_mc\",\"la_i_upper_solve_mr\",\"la_i_vc_create\",\"la_i_vc_set\",\"la_i_vr_create\",\"la_i_vr_set\",\"la_k_a_assign\",\"la_k_add_mc\",\"la_k_add_mr\",\"la_k_add_vc\",\"la_k_add_vr\",\"la_k_assign_a\",\"la_k_assign_f\",\"la_k_assign_mc\",\"la_k_assign_mr\",\"la_k_assign_t\",\"la_k_assign_vc\",\"la_k_assign_vr\",\"la_k_conjugate_mc\",\"la_k_conjugate_mr\",\"la_k_conjugate_vc\",\"la_k_conjugate_vr\",\"la_k_current_f\",\"la_k_current_vr\",\"la_k_distance_vc\",\"la_k_distance_vr\",\"la_k_divide_mc\",\"la_k_divide_mr\",\"la_k_divide_vc\",\"la_k_divide_vr\",\"la_k_dot_mc\",\"la_k_dot_mc_vc\",\"la_k_dot_mr\",\"la_k_dot_mr_vr\",\"la_k_dot_vc\",\"la_k_dot_vr\",\"la_k_f_assign\",\"la_k_get_mc\",\"la_k_get_mr\",\"la_k_get_vc\",\"la_k_get_vr\",\"la_k_invert_mc\",\"la_k_invert_mr\",\"la_k_lower_solve_mc\",\"la_k_lower_solve_mr\",\"la_k_lu_det_mc\",\"la_k_lu_det_mr\",\"la_k_lu_factor_mc\",\"la_k_lu_factor_mr\",\"la_k_lu_solve_mc\",\"la_k_lu_solve_mr\",\"la_k_mc_set\",\"la_k_mr_set\",\"la_k_multiply_mc\",\"la_k_multiply_mr\",\"la_k_multiply_vc\",\"la_k_multiply_vr\",\"la_k_norm1_mc\",\"la_k_norm1_mr\",\"la_k_norm1_vc\",\"la_k_norm1_vr\",\"la_k_norm_euclid_mc\",\"la_k_norm_euclid_mr\",\"la_k_norm_euclid_vc\",\"la_k_norm_euclid_vr\",\"la_k_norm_inf_mc\",\"la_k_norm_inf_mr\",\"la_k_norm_inf_vc\",\"la_k_norm_inf_vr\",\"la_k_norm_max_mc\",\"la_k_norm_max_mr\",\"la_k_qr_eigen_mc\",\"la_k_qr_eigen_mr\",\"la_k_qr_factor_mc\",\"la_k_qr_factor_mr\",\"la_k_qr_sym_eigen_mc\",\"la_k_qr_sym_eigen_mr\",\"la_k_random_mc\",\"la_k_random_mr\",\"la_k_random_vc\",\"la_k_random_vr\",\"la_k_subtract_mc\",\"la_k_subtract_mr\",\"la_k_subtract_vc\",\"la_k_subtract_vr\",\"la_k_t_assign\",\"la_k_trace_mc\",\"la_k_trace_mr\",\"la_k_upper_solve_mc\",\"la_k_upper_solve_mr\",\"la_k_vc_set\",\"la_k_vr_set\",\"lenarray\",\"lfo\",\"limit\",\"limit1\",\"line\",\"linen\",\"linenr\",\"lineto\",\"link_beat_force\",\"link_beat_get\",\"link_beat_request\",\"link_create\",\"link_enable\",\"link_is_enabled\",\"link_metro\",\"link_peers\",\"link_tempo_get\",\"link_tempo_set\",\"linlin\",\"linrand\",\"linseg\",\"linsegb\",\"linsegr\",\"liveconv\",\"locsend\",\"locsig\",\"log\",\"log10\",\"log2\",\"logbtwo\",\"logcurve\",\"loopseg\",\"loopsegp\",\"looptseg\",\"loopxseg\",\"lorenz\",\"loscil\",\"loscil3\",\"loscilx\",\"lowpass2\",\"lowres\",\"lowresx\",\"lpf18\",\"lpform\",\"lpfreson\",\"lphasor\",\"lpinterp\",\"lposcil\",\"lposcil3\",\"lposcila\",\"lposcilsa\",\"lposcilsa2\",\"lpread\",\"lpreson\",\"lpshold\",\"lpsholdp\",\"lpslot\",\"lua_exec\",\"lua_iaopcall\",\"lua_iaopcall_off\",\"lua_ikopcall\",\"lua_ikopcall_off\",\"lua_iopcall\",\"lua_iopcall_off\",\"lua_opdef\",\"mac\",\"maca\",\"madsr\",\"mags\",\"mandel\",\"mandol\",\"maparray\",\"maparray_i\",\"marimba\",\"massign\",\"max\",\"max_k\",\"maxabs\",\"maxabsaccum\",\"maxaccum\",\"maxalloc\",\"maxarray\",\"mclock\",\"mdelay\",\"median\",\"mediank\",\"metro\",\"mfb\",\"midglobal\",\"midiarp\",\"midic14\",\"midic21\",\"midic7\",\"midichannelaftertouch\",\"midichn\",\"midicontrolchange\",\"midictrl\",\"mididefault\",\"midifilestatus\",\"midiin\",\"midinoteoff\",\"midinoteoncps\",\"midinoteonkey\",\"midinoteonoct\",\"midinoteonpch\",\"midion\",\"midion2\",\"midiout\",\"midiout_i\",\"midipgm\",\"midipitchbend\",\"midipolyaftertouch\",\"midiprogramchange\",\"miditempo\",\"midremot\",\"min\",\"minabs\",\"minabsaccum\",\"minaccum\",\"minarray\",\"mincer\",\"mirror\",\"mode\",\"modmatrix\",\"monitor\",\"moog\",\"moogladder\",\"moogladder2\",\"moogvcf\",\"moogvcf2\",\"moscil\",\"mp3bitrate\",\"mp3in\",\"mp3len\",\"mp3nchnls\",\"mp3scal\",\"mp3scal_check\",\"mp3scal_load\",\"mp3scal_load2\",\"mp3scal_play\",\"mp3scal_play2\",\"mp3sr\",\"mpulse\",\"mrtmsg\",\"mtof\",\"mton\",\"multitap\",\"mute\",\"mvchpf\",\"mvclpf1\",\"mvclpf2\",\"mvclpf3\",\"mvclpf4\",\"mxadsr\",\"nchnls_hw\",\"nestedap\",\"nlalp\",\"nlfilt\",\"nlfilt2\",\"noise\",\"noteoff\",\"noteon\",\"noteondur\",\"noteondur2\",\"notnum\",\"nreverb\",\"nrpn\",\"nsamp\",\"nstance\",\"nstrnum\",\"ntom\",\"ntrpol\",\"nxtpow2\",\"octave\",\"octcps\",\"octmidi\",\"octmidib\",\"octmidinn\",\"octpch\",\"olabuffer\",\"oscbnk\",\"oscil\",\"oscil1\",\"oscil1i\",\"oscil3\",\"oscili\",\"oscilikt\",\"osciliktp\",\"oscilikts\",\"osciln\",\"oscils\",\"oscilx\",\"out\",\"out32\",\"outc\",\"outch\",\"outh\",\"outiat\",\"outic\",\"outic14\",\"outipat\",\"outipb\",\"outipc\",\"outkat\",\"outkc\",\"outkc14\",\"outkpat\",\"outkpb\",\"outkpc\",\"outleta\",\"outletf\",\"outletk\",\"outletkid\",\"outletv\",\"outo\",\"outq\",\"outq1\",\"outq2\",\"outq3\",\"outq4\",\"outrg\",\"outs\",\"outs1\",\"outs2\",\"outvalue\",\"outx\",\"outz\",\"p\",\"p5gconnect\",\"p5gdata\",\"pan\",\"pan2\",\"pareq\",\"part2txt\",\"partials\",\"partikkel\",\"partikkelget\",\"partikkelset\",\"partikkelsync\",\"passign\",\"paulstretch\",\"pcauchy\",\"pchbend\",\"pchmidi\",\"pchmidib\",\"pchmidinn\",\"pchoct\",\"pchtom\",\"pconvolve\",\"pcount\",\"pdclip\",\"pdhalf\",\"pdhalfy\",\"peak\",\"pgmassign\",\"pgmchn\",\"phaser1\",\"phaser2\",\"phasor\",\"phasorbnk\",\"phs\",\"pindex\",\"pinker\",\"pinkish\",\"pitch\",\"pitchac\",\"pitchamdf\",\"planet\",\"platerev\",\"plltrack\",\"pluck\",\"poisson\",\"pol2rect\",\"polyaft\",\"polynomial\",\"port\",\"portk\",\"poscil\",\"poscil3\",\"pow\",\"powershape\",\"powoftwo\",\"pows\",\"prealloc\",\"prepiano\",\"print\",\"print_type\",\"printf\",\"printf_i\",\"printk\",\"printk2\",\"printks\",\"printks2\",\"prints\",\"product\",\"pset\",\"ptable\",\"ptable3\",\"ptablei\",\"ptableiw\",\"ptablew\",\"ptrack\",\"puts\",\"pvadd\",\"pvbufread\",\"pvcross\",\"pvinterp\",\"pvoc\",\"pvread\",\"pvs2array\",\"pvs2tab\",\"pvsadsyn\",\"pvsanal\",\"pvsarp\",\"pvsbandp\",\"pvsbandr\",\"pvsbin\",\"pvsblur\",\"pvsbuffer\",\"pvsbufread\",\"pvsbufread2\",\"pvscale\",\"pvscent\",\"pvsceps\",\"pvscross\",\"pvsdemix\",\"pvsdiskin\",\"pvsdisp\",\"pvsenvftw\",\"pvsfilter\",\"pvsfread\",\"pvsfreeze\",\"pvsfromarray\",\"pvsftr\",\"pvsftw\",\"pvsfwrite\",\"pvsgain\",\"pvsgendy\",\"pvshift\",\"pvsifd\",\"pvsin\",\"pvsinfo\",\"pvsinit\",\"pvslock\",\"pvsmaska\",\"pvsmix\",\"pvsmooth\",\"pvsmorph\",\"pvsosc\",\"pvsout\",\"pvspitch\",\"pvstanal\",\"pvstencil\",\"pvstrace\",\"pvsvoc\",\"pvswarp\",\"pvsynth\",\"pwd\",\"pyassign\",\"pyassigni\",\"pyassignt\",\"pycall\",\"pycall1\",\"pycall1i\",\"pycall1t\",\"pycall2\",\"pycall2i\",\"pycall2t\",\"pycall3\",\"pycall3i\",\"pycall3t\",\"pycall4\",\"pycall4i\",\"pycall4t\",\"pycall5\",\"pycall5i\",\"pycall5t\",\"pycall6\",\"pycall6i\",\"pycall6t\",\"pycall7\",\"pycall7i\",\"pycall7t\",\"pycall8\",\"pycall8i\",\"pycall8t\",\"pycalli\",\"pycalln\",\"pycallni\",\"pycallt\",\"pyeval\",\"pyevali\",\"pyevalt\",\"pyexec\",\"pyexeci\",\"pyexect\",\"pyinit\",\"pylassign\",\"pylassigni\",\"pylassignt\",\"pylcall\",\"pylcall1\",\"pylcall1i\",\"pylcall1t\",\"pylcall2\",\"pylcall2i\",\"pylcall2t\",\"pylcall3\",\"pylcall3i\",\"pylcall3t\",\"pylcall4\",\"pylcall4i\",\"pylcall4t\",\"pylcall5\",\"pylcall5i\",\"pylcall5t\",\"pylcall6\",\"pylcall6i\",\"pylcall6t\",\"pylcall7\",\"pylcall7i\",\"pylcall7t\",\"pylcall8\",\"pylcall8i\",\"pylcall8t\",\"pylcalli\",\"pylcalln\",\"pylcallni\",\"pylcallt\",\"pyleval\",\"pylevali\",\"pylevalt\",\"pylexec\",\"pylexeci\",\"pylexect\",\"pylrun\",\"pylruni\",\"pylrunt\",\"pyrun\",\"pyruni\",\"pyrunt\",\"qinf\",\"qnan\",\"r2c\",\"rand\",\"randh\",\"randi\",\"random\",\"randomh\",\"randomi\",\"rbjeq\",\"readclock\",\"readf\",\"readfi\",\"readk\",\"readk2\",\"readk3\",\"readk4\",\"readks\",\"readscore\",\"readscratch\",\"rect2pol\",\"release\",\"remoteport\",\"remove\",\"repluck\",\"reson\",\"resonk\",\"resonr\",\"resonx\",\"resonxk\",\"resony\",\"resonz\",\"resyn\",\"reverb\",\"reverb2\",\"reverbsc\",\"rewindscore\",\"rezzy\",\"rfft\",\"rifft\",\"rms\",\"rnd\",\"rnd31\",\"round\",\"rspline\",\"rtclock\",\"s16b14\",\"s32b14\",\"samphold\",\"sandpaper\",\"sc_lag\",\"sc_lagud\",\"sc_phasor\",\"sc_trig\",\"scale\",\"scalearray\",\"scanhammer\",\"scans\",\"scantable\",\"scanu\",\"schedkwhen\",\"schedkwhennamed\",\"schedule\",\"schedwhen\",\"scoreline\",\"scoreline_i\",\"seed\",\"sekere\",\"select\",\"semitone\",\"sense\",\"sensekey\",\"seqtime\",\"seqtime2\",\"serialBegin\",\"serialEnd\",\"serialFlush\",\"serialPrint\",\"serialRead\",\"serialWrite\",\"serialWrite_i\",\"setcol\",\"setctrl\",\"setksmps\",\"setrow\",\"setscorepos\",\"sfilist\",\"sfinstr\",\"sfinstr3\",\"sfinstr3m\",\"sfinstrm\",\"sfload\",\"sflooper\",\"sfpassign\",\"sfplay\",\"sfplay3\",\"sfplay3m\",\"sfplaym\",\"sfplist\",\"sfpreset\",\"shaker\",\"shiftin\",\"shiftout\",\"signalflowgraph\",\"signum\",\"sin\",\"sinh\",\"sininv\",\"sinsyn\",\"sleighbells\",\"slicearray\",\"slider16\",\"slider16f\",\"slider16table\",\"slider16tablef\",\"slider32\",\"slider32f\",\"slider32table\",\"slider32tablef\",\"slider64\",\"slider64f\",\"slider64table\",\"slider64tablef\",\"slider8\",\"slider8f\",\"slider8table\",\"slider8tablef\",\"sliderKawai\",\"sndloop\",\"sndwarp\",\"sndwarpst\",\"sockrecv\",\"sockrecvs\",\"socksend\",\"socksend_k\",\"socksends\",\"sorta\",\"sortd\",\"soundin\",\"space\",\"spat3d\",\"spat3di\",\"spat3dt\",\"spdist\",\"splitrig\",\"sprintf\",\"sprintfk\",\"spsend\",\"sqrt\",\"squinewave\",\"statevar\",\"stix\",\"strcat\",\"strcatk\",\"strchar\",\"strchark\",\"strcmp\",\"strcmpk\",\"strcpy\",\"strcpyk\",\"strecv\",\"streson\",\"strfromurl\",\"strget\",\"strindex\",\"strindexk\",\"strlen\",\"strlenk\",\"strlower\",\"strlowerk\",\"strrindex\",\"strrindexk\",\"strset\",\"strsub\",\"strsubk\",\"strtod\",\"strtodk\",\"strtol\",\"strtolk\",\"strupper\",\"strupperk\",\"stsend\",\"subinstr\",\"subinstrinit\",\"sum\",\"sumarray\",\"svfilter\",\"syncgrain\",\"syncloop\",\"syncphasor\",\"system\",\"system_i\",\"tab\",\"tab2pvs\",\"tab_i\",\"tabifd\",\"table\",\"table3\",\"table3kt\",\"tablecopy\",\"tablefilter\",\"tablefilteri\",\"tablegpw\",\"tablei\",\"tableicopy\",\"tableigpw\",\"tableikt\",\"tableimix\",\"tableiw\",\"tablekt\",\"tablemix\",\"tableng\",\"tablera\",\"tableseg\",\"tableshuffle\",\"tableshufflei\",\"tablew\",\"tablewa\",\"tablewkt\",\"tablexkt\",\"tablexseg\",\"tabmorph\",\"tabmorpha\",\"tabmorphak\",\"tabmorphi\",\"tabplay\",\"tabrec\",\"tabsum\",\"tabw\",\"tabw_i\",\"tambourine\",\"tan\",\"tanh\",\"taninv\",\"taninv2\",\"tb0\",\"tb0_init\",\"tb1\",\"tb10\",\"tb10_init\",\"tb11\",\"tb11_init\",\"tb12\",\"tb12_init\",\"tb13\",\"tb13_init\",\"tb14\",\"tb14_init\",\"tb15\",\"tb15_init\",\"tb1_init\",\"tb2\",\"tb2_init\",\"tb3\",\"tb3_init\",\"tb4\",\"tb4_init\",\"tb5\",\"tb5_init\",\"tb6\",\"tb6_init\",\"tb7\",\"tb7_init\",\"tb8\",\"tb8_init\",\"tb9\",\"tb9_init\",\"tbvcf\",\"tempest\",\"tempo\",\"temposcal\",\"tempoval\",\"timedseq\",\"timeinstk\",\"timeinsts\",\"timek\",\"times\",\"tival\",\"tlineto\",\"tone\",\"tonek\",\"tonex\",\"tradsyn\",\"trandom\",\"transeg\",\"transegb\",\"transegr\",\"trcross\",\"trfilter\",\"trhighest\",\"trigger\",\"trigseq\",\"trirand\",\"trlowest\",\"trmix\",\"trscale\",\"trshift\",\"trsplit\",\"turnoff\",\"turnoff2\",\"turnon\",\"tvconv\",\"unirand\",\"unwrap\",\"upsamp\",\"urandom\",\"urd\",\"vactrol\",\"vadd\",\"vadd_i\",\"vaddv\",\"vaddv_i\",\"vaget\",\"valpass\",\"vaset\",\"vbap\",\"vbapg\",\"vbapgmove\",\"vbaplsinit\",\"vbapmove\",\"vbapz\",\"vbapzmove\",\"vcella\",\"vco\",\"vco2\",\"vco2ft\",\"vco2ift\",\"vco2init\",\"vcomb\",\"vcopy\",\"vcopy_i\",\"vdel_k\",\"vdelay\",\"vdelay3\",\"vdelayk\",\"vdelayx\",\"vdelayxq\",\"vdelayxs\",\"vdelayxw\",\"vdelayxwq\",\"vdelayxws\",\"vdivv\",\"vdivv_i\",\"vecdelay\",\"veloc\",\"vexp\",\"vexp_i\",\"vexpseg\",\"vexpv\",\"vexpv_i\",\"vibes\",\"vibr\",\"vibrato\",\"vincr\",\"vlimit\",\"vlinseg\",\"vlowres\",\"vmap\",\"vmirror\",\"vmult\",\"vmult_i\",\"vmultv\",\"vmultv_i\",\"voice\",\"vosim\",\"vphaseseg\",\"vport\",\"vpow\",\"vpow_i\",\"vpowv\",\"vpowv_i\",\"vpvoc\",\"vrandh\",\"vrandi\",\"vsubv\",\"vsubv_i\",\"vtaba\",\"vtabi\",\"vtabk\",\"vtable1k\",\"vtablea\",\"vtablei\",\"vtablek\",\"vtablewa\",\"vtablewi\",\"vtablewk\",\"vtabwa\",\"vtabwi\",\"vtabwk\",\"vwrap\",\"waveset\",\"websocket\",\"weibull\",\"wgbow\",\"wgbowedbar\",\"wgbrass\",\"wgclar\",\"wgflute\",\"wgpluck\",\"wgpluck2\",\"wguide1\",\"wguide2\",\"wiiconnect\",\"wiidata\",\"wiirange\",\"wiisend\",\"window\",\"wrap\",\"writescratch\",\"wterrain\",\"xadsr\",\"xin\",\"xout\",\"xscanmap\",\"xscans\",\"xscansmap\",\"xscanu\",\"xtratim\",\"xyscale\",\"zacl\",\"zakinit\",\"zamod\",\"zar\",\"zarg\",\"zaw\",\"zawm\",\"zdf_1pole\",\"zdf_1pole_mode\",\"zdf_2pole\",\"zdf_2pole_mode\",\"zdf_ladder\",\"zfilter2\",\"zir\",\"ziw\",\"ziwm\",\"zkcl\",\"zkmod\",\"zkr\",\"zkw\",\"zkwm\"],t=[\"array\",\"bformdec\",\"bformenc\",\"copy2ftab\",\"copy2ttab\",\"hrtfer\",\"ktableseg\",\"lentab\",\"maxtab\",\"mintab\",\"scalet\",\"sndload\",\"soundout\",\"soundouts\",\"specaddm\",\"specdiff\",\"specdisp\",\"specfilt\",\"spechist\",\"specptrk\",\"specscal\",\"specsum\",\"spectrum\",\"sumtab\",\"tabgen\",\"tabmap\",\"tabmap_i\",\"tabslice\",\"vbap16\",\"vbap4\",\"vbap4move\",\"vbap8\",\"vbap8move\",\"xyin\"];e=r.arrayToMap(e),t=r.arrayToMap(t),this.lineContinuations=[{token:\"constant.character.escape.line-continuation.csound\",regex:/\\\\$/},this.pushRule({token:\"constant.character.escape.line-continuation.csound\",regex:/\\\\/,next:\"line continuation\"})],this.comments.push(this.lineContinuations),this.quotedStringContents.push(this.lineContinuations,{token:\"invalid.illegal\",regex:/[^\"\\\\]*$/});var n=this.$rules.start;n.splice(1,0,{token:[\"text.csound\",\"entity.name.label.csound\",\"entity.punctuation.label.csound\",\"text.csound\"],regex:/^([ \\t]*)(\\w+)(:)([ \\t]+|$)/}),n.push(this.pushRule({token:\"keyword.function.csound\",regex:/\\binstr\\b/,next:\"instrument numbers and identifiers\"}),this.pushRule({token:\"keyword.function.csound\",regex:/\\bopcode\\b/,next:\"after opcode keyword\"}),{token:\"keyword.other.csound\",regex:/\\bend(?:in|op)\\b/},{token:\"variable.language.csound\",regex:/\\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\\b/},this.numbers,{token:\"keyword.operator.csound\",regex:\"\\\\+=|-=|\\\\*=|/=|<<|>>|<=|>=|==|!=|&&|\\\\|\\\\||[~\\u00ac]|[=!+\\\\-*/^%&|<>#?:]\"},this.pushRule({token:\"punctuation.definition.string.begin.csound\",regex:/\"/,next:\"quoted string\"}),this.pushRule({token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"braced string\"}),{token:\"keyword.control.csound\",regex:/\\b(?:do|else(?:if)?|end(?:if|until)|fi|i(?:f|then)|kthen|od|r(?:ir)?eturn|then|until|while)\\b/},this.pushRule({token:\"keyword.control.csound\",regex:/\\b[ik]?goto\\b/,next:\"goto before label\"}),this.pushRule({token:\"keyword.control.csound\",regex:/\\b(?:r(?:einit|igoto)|tigoto)\\b/,next:\"goto before label\"}),this.pushRule({token:\"keyword.control.csound\",regex:/\\bc(?:g|in?|k|nk?)goto\\b/,next:[\"goto before label\",\"goto before argument\"]}),this.pushRule({token:\"keyword.control.csound\",regex:/\\btimout\\b/,next:[\"goto before label\",\"goto before argument\",\"goto before argument\"]}),this.pushRule({token:\"keyword.control.csound\",regex:/\\bloop_[gl][et]\\b/,next:[\"goto before label\",\"goto before argument\",\"goto before argument\",\"goto before argument\"]}),this.pushRule({token:\"support.function.csound\",regex:/\\b(?:readscore|scoreline(?:_i)?)\\b/,next:\"Csound score opcode\"}),this.pushRule({token:\"support.function.csound\",regex:/\\bpyl?run[it]?\\b(?!$)/,next:\"Python opcode\"}),this.pushRule({token:\"support.function.csound\",regex:/\\blua_(?:exec|opdef)\\b(?!$)/,next:\"Lua opcode\"}),{token:\"support.variable.csound\",regex:/\\bp\\d+\\b/},{regex:/\\b([A-Z_a-z]\\w*)(?:(:)([A-Za-z]))?\\b/,onMatch:function(n,r,i,s){var o=n.split(this.splitRegex),u=o[1],a;return e.hasOwnProperty(u)?a=\"support.function.csound\":t.hasOwnProperty(u)&&(a=\"invalid.deprecated.csound\"),a?o[2]?[{type:a,value:u},{type:\"punctuation.type-annotation.csound\",value:o[2]},{type:\"type-annotation.storage.type.csound\",value:o[3]}]:a:\"text.csound\"}}),this.$rules[\"macro parameter value list\"].splice(2,0,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"macro parameter value braced string\"}),this.addRules({\"macro parameter value braced string\":[{token:\"constant.character.escape.csound\",regex:/\\\\[#'()]/},{token:\"invalid.illegal.csound.csound\",regex:/[#'()]/},{token:\"punctuation.definition.string.end.csound\",regex:/}}/,next:\"macro parameter value list\"},{defaultToken:\"string.braced.csound\"}],\"instrument numbers and identifiers\":[this.comments,{token:\"entity.name.function.csound\",regex:/\\d+|[A-Z_a-z]\\w*/},this.popRule({token:\"empty\",regex:/$/})],\"after opcode keyword\":[this.comments,this.popRule({token:\"empty\",regex:/$/}),this.popRule({token:\"entity.name.function.opcode.csound\",regex:/[A-Z_a-z]\\w*/,next:\"opcode type signatures\"})],\"opcode type signatures\":[this.comments,this.popRule({token:\"empty\",regex:/$/}),{token:\"storage.type.csound\",regex:/\\b(?:0|[afijkKoOpPStV\\[\\]]+)/}],\"quoted string\":[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/\"/}),this.quotedStringContents,{defaultToken:\"string.quoted.csound\"}],\"braced string\":[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/}}/}),this.bracedStringContents,{defaultToken:\"string.braced.csound\"}],\"goto before argument\":[this.popRule({token:\"text.csound\",regex:/,/}),n],\"goto before label\":[{token:\"text.csound\",regex:/\\s+/},this.comments,this.popRule({token:\"entity.name.label.csound\",regex:/\\w+/}),this.popRule({token:\"empty\",regex:/(?!\\w)/})],\"Csound score opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"csound-score-start\"},this.popRule({token:\"empty\",regex:/$/})],\"Python opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"python-start\"},this.popRule({token:\"empty\",regex:/$/})],\"Lua opcode\":[this.comments,{token:\"punctuation.definition.string.begin.csound\",regex:/{{/,next:\"lua-start\"},this.popRule({token:\"empty\",regex:/$/})],\"line continuation\":[this.popRule({token:\"empty\",regex:/$/}),this.semicolonComments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}]});var i=[this.popRule({token:\"punctuation.definition.string.end.csound\",regex:/}}/})];this.embedRules(o,\"csound-score-\",i),this.embedRules(a,\"python-\",i),this.embedRules(u,\"lua-\",i),this.normalizeRules()};i.inherits(f,s),t.CsoundOrchestraHighlightRules=f}),ace.define(\"ace/mode/csound_orchestra\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csound_orchestra_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csound_orchestra_highlight_rules\").CsoundOrchestraHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"/*\",end:\"*/\"}}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/csound_orchestra\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-csound_score.js",
    "content": "ace.define(\"ace/mode/csound_preprocessor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.semicolonComments={token:\"comment.line.semicolon.csound\",regex:\";.*$\"},this.comments=[{token:\"punctuation.definition.comment.begin.csound\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.end.csound\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.csound\"}]},{token:\"comment.line.double-slash.csound\",regex:\"//.*$\"},this.semicolonComments],this.macroUses=[{token:[\"entity.name.function.preprocessor.csound\",\"punctuation.definition.macro-parameter-value-list.begin.csound\"],regex:/(\\$[A-Z_a-z]\\w*\\.?)(\\()/,next:\"macro parameter value list\"},{token:\"entity.name.function.preprocessor.csound\",regex:/\\$[A-Z_a-z]\\w*(?:\\.|\\b)/}],this.numbers=[{token:\"constant.numeric.float.csound\",regex:/(?:\\d+[Ee][+-]?\\d+)|(?:\\d+\\.\\d*|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?/},{token:[\"storage.type.number.csound\",\"constant.numeric.integer.hexadecimal.csound\"],regex:/(0[Xx])([0-9A-Fa-f]+)/},{token:\"constant.numeric.integer.decimal.csound\",regex:/\\d+/}],this.bracedStringContents=[{token:\"constant.character.escape.csound\",regex:/\\\\(?:[\\\\abnrt\"]|[0-7]{1,3})/},{token:\"constant.character.placeholder.csound\",regex:/%[#0\\- +]*\\d*(?:\\.\\d+)?[diuoxXfFeEgGaAcs]/},{token:\"constant.character.escape.csound\",regex:/%%/}],this.quotedStringContents=[this.macroUses,this.bracedStringContents];var e=[this.comments,{token:\"keyword.preprocessor.csound\",regex:/#(?:e(?:nd(?:if)?|lse)\\b|##)|@@?[ \\t]*\\d+/},{token:\"keyword.preprocessor.csound\",regex:/#include/,push:[this.comments,{token:\"string.csound\",regex:/([^ \\t])(?:.*?\\1)/,next:\"pop\"}]},{token:\"keyword.preprocessor.csound\",regex:/#[ \\t]*define/,next:\"define directive\"},{token:\"keyword.preprocessor.csound\",regex:/#(?:ifn?def|undef)\\b/,next:\"macro directive\"},this.macroUses];this.$rules={start:e,\"define directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.begin.csound\",regex:/\\(/,next:\"macro parameter name list\"},{token:\"punctuation.definition.macro.begin.csound\",regex:/#/,next:\"macro body\"}],\"macro parameter name list\":[{token:\"variable.parameter.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/},{token:\"punctuation.definition.macro-parameter-name-list.end.csound\",regex:/\\)/,next:\"define directive\"}],\"macro body\":[{token:\"constant.character.escape.csound\",regex:/\\\\#/},{token:\"punctuation.definition.macro.end.csound\",regex:/#/,next:\"start\"},e],\"macro directive\":[this.comments,{token:\"entity.name.function.preprocessor.csound\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"macro parameter value list\":[{token:\"punctuation.definition.macro-parameter-value-list.end.csound\",regex:/\\)/,next:\"start\"},{token:\"punctuation.definition.string.begin.csound\",regex:/\"/,next:\"macro parameter value quoted string\"},this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),{token:\"punctuation.macro-parameter-value-separator.csound\",regex:\"[#']\"}],\"macro parameter value quoted string\":[{token:\"constant.character.escape.csound\",regex:/\\\\[#'()]/},{token:\"invalid.illegal.csound\",regex:/[#'()]/},{token:\"punctuation.definition.string.end.csound\",regex:/\"/,next:\"macro parameter value list\"},this.quotedStringContents,{defaultToken:\"string.quoted.csound\"}],\"macro parameter value parenthetical\":[{token:\"constant.character.escape.csound\",regex:/\\\\\\)/},this.popRule({token:\"punctuation.macro-parameter-value-parenthetical.end.csound\",regex:/\\)/}),this.pushRule({token:\"punctuation.macro-parameter-value-parenthetical.begin.csound\",regex:/\\(/,next:\"macro parameter value parenthetical\"}),e]}};r.inherits(s,i),function(){this.pushRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){r.length===0&&r.push(n);if(Array.isArray(e.next))for(var s=0;s<e.next.length;s++)r.push(e.next[s]);else r.push(e.next);return this.next=r[r.length-1],e.token},get next(){return Array.isArray(e.next)?e.next[e.next.length-1]:e.next},set next(t){if(Array.isArray(e.next)){var n=e.next[e.next.length-1],r=n.length-1,i=t.length-1;if(i>r)while(r>=0&&i>=0){if(n.charAt(r)!==t.charAt(i)){var s=t.substr(0,i);for(var o=0;o<e.next.length;o++)e.next[o]=s+e.next[o];break}r--,i--}}else e.next=t},get token(){return e.token}}},this.popRule=function(e){return{regex:e.regex,onMatch:function(t,n,r,i){return r.pop(),e.next?(r.push(e.next),this.next=r[r.length-1]):this.next=r.length>1?r[r.length-1]:r.pop(),e.token}}}}.call(s.prototype),t.CsoundPreprocessorHighlightRules=s}),ace.define(\"ace/mode/csound_score_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/csound_preprocessor_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./csound_preprocessor_highlight_rules\").CsoundPreprocessorHighlightRules,s=function(){i.call(this),this.quotedStringContents.push({token:\"invalid.illegal.csound-score\",regex:/[^\"]*$/});var e=this.$rules.start;e.push({token:\"keyword.control.csound-score\",regex:/[abCdefiqstvxy]/},{token:\"invalid.illegal.csound-score\",regex:/w/},{token:\"constant.numeric.language.csound-score\",regex:/z/},{token:[\"keyword.control.csound-score\",\"constant.numeric.integer.decimal.csound-score\"],regex:/([nNpP][pP])(\\d+)/},{token:\"keyword.other.csound-score\",regex:/[mn]/,push:[{token:\"empty\",regex:/$/,next:\"pop\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/}]},{token:\"keyword.preprocessor.csound-score\",regex:/r\\b/,next:\"repeat section\"},this.numbers,{token:\"keyword.operator.csound-score\",regex:\"[!+\\\\-*/^%&|<>#~.]\"},this.pushRule({token:\"punctuation.definition.string.begin.csound-score\",regex:/\"/,next:\"quoted string\"}),this.pushRule({token:\"punctuation.braced-loop.begin.csound-score\",regex:/{/,next:\"loop after left brace\"})),this.addRules({\"repeat section\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"repeat section before label\"}],\"repeat section before label\":[{token:\"empty\",regex:/$/,next:\"start\"},this.comments,{token:\"entity.name.label.csound-score\",regex:/[A-Z_a-z]\\w*/,next:\"start\"}],\"quoted string\":[this.popRule({token:\"punctuation.definition.string.end.csound-score\",regex:/\"/}),this.quotedStringContents,{defaultToken:\"string.quoted.csound-score\"}],\"loop after left brace\":[this.popRule({token:\"constant.numeric.integer.decimal.csound-score\",regex:/\\d+/,next:\"loop after repeat count\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after repeat count\":[this.popRule({token:\"entity.name.function.preprocessor.csound-score\",regex:/[A-Z_a-z]\\w*\\b/,next:\"loop after macro name\"}),this.comments,{token:\"invalid.illegal.csound\",regex:/\\S.*/}],\"loop after macro name\":[e,this.popRule({token:\"punctuation.braced-loop.end.csound-score\",regex:/}/})]}),this.normalizeRules()};r.inherits(s,i),t.CsoundScoreHighlightRules=s}),ace.define(\"ace/mode/csound_score\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csound_score_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csound_score_highlight_rules\").CsoundScoreHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"/*\",end:\"*/\"}}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/csound_score\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-csp.js",
    "content": "ace.define(\"ace/mode/csp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"constant.language\":\"child-src|connect-src|default-src|font-src|frame-src|img-src|manifest-src|media-src|object-src|script-src|style-src|worker-src|base-uri|plugin-types|sandbox|disown-opener|form-action|frame-ancestors|report-uri|report-to|upgrade-insecure-requests|block-all-mixed-content|require-sri-for|reflected-xss|referrer|policy-uri\",variable:\"'none'|'self'|'unsafe-inline'|'unsafe-eval'|'strict-dynamic'|'unsafe-hashed-attributes'\"},\"identifier\",!0);this.$rules={start:[{token:\"string.link\",regex:/https?:[^;\\s]*/},{token:\"operator.punctuation\",regex:/;/},{token:e,regex:/[^\\s;]+/}]}};r.inherits(s,i),t.CspHighlightRules=s}),ace.define(\"ace/mode/csp\",[\"require\",\"exports\",\"module\",\"ace/mode/text\",\"ace/mode/csp_highlight_rules\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./text\").Mode,i=e(\"./csp_highlight_rules\").CspHighlightRules,s=e(\"../lib/oop\"),o=function(){this.HighlightRules=i};s.inherits(o,r),function(){this.$id=\"ace/mode/csp\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/csp\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-css.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c});\n                (function() {\n                    ace.require([\"ace/mode/css\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-curly.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/curly_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this),this.$rules.start.unshift({token:\"variable\",regex:\"{{\",push:\"curly-start\"}),this.$rules[\"curly-start\"]=[{token:\"variable\",regex:\"}}\",next:\"pop\"}],this.normalizeRules()};r.inherits(s,i),t.CurlyHighlightRules=s}),ace.define(\"ace/mode/curly\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/html\",\"ace/mode/curly_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./folding/html\").FoldMode,u=e(\"./curly_highlight_rules\").CurlyHighlightRules,a=function(){i.call(this),this.HighlightRules=u,this.$outdent=new s,this.foldingRules=new o};r.inherits(a,i),function(){this.$id=\"ace/mode/curly\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/curly\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-d.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/d_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters\",t=\"break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|return|switch|while|catch|try|throw|finally|version|assert|unittest|with\",n=\"auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|cfloat|creal|cdouble|cent|ifloat|ireal|idouble|int|long|short|void|uint|ulong|ushort|ucent|function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object\",r=\"abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|ref|immutable|lazy|nothrow|override|package|pragma|private|protected|public|pure|scope|shared|__gshared|synchronized|static|volatile\",s=\"class|struct|union|template|interface|enum|macro\",o={token:\"constant.language.escape\",regex:\"\\\\\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\\\"\\\\?0abfnrtv\\\\\\\\])|(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))\"},u=\"null|true|false|__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__\",a=\"/|/\\\\=|&|&\\\\=|&&|\\\\|\\\\|\\\\=|\\\\|\\\\||\\\\-|\\\\-\\\\=|\\\\-\\\\-|\\\\+|\\\\+\\\\=|\\\\+\\\\+|\\\\<|\\\\<\\\\=|\\\\<\\\\<|\\\\<\\\\<\\\\=|\\\\<\\\\>|\\\\<\\\\>\\\\=|\\\\>|\\\\>\\\\=|\\\\>\\\\>\\\\=|\\\\>\\\\>\\\\>\\\\=|\\\\>\\\\>|\\\\>\\\\>\\\\>|\\\\!|\\\\!\\\\=|\\\\!\\\\<\\\\>|\\\\!\\\\<\\\\>\\\\=|\\\\!\\\\<|\\\\!\\\\<\\\\=|\\\\!\\\\>|\\\\!\\\\>\\\\=|\\\\?|\\\\$|\\\\=|\\\\=\\\\=|\\\\*|\\\\*\\\\=|%|%\\\\=|\\\\^|\\\\^\\\\=|\\\\^\\\\^|\\\\^\\\\^\\\\=|~|~\\\\=|\\\\=\\\\>|#\",f=this.$keywords=this.createKeywordMapper({\"keyword.modifier\":r,\"keyword.control\":t,\"keyword.type\":n,keyword:e,\"keyword.storage\":s,punctation:\"\\\\.|\\\\,|;|\\\\.\\\\.|\\\\.\\\\.\\\\.\",\"keyword.operator\":a,\"constant.language\":u},\"identifier\"),l=\"[a-zA-Z_\\u00a1-\\uffff][a-zA-Z\\\\d_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"star-comment\"},{token:\"comment.shebang\",regex:\"^\\\\s*#!.*\"},{token:\"comment\",regex:\"\\\\/\\\\+\",next:\"plus-comment\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[\\\\[\\\\(\\\\{\\\\<]+)',next:\"operator-heredoc-string\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[a-zA-Z_]+)$',next:\"identifier-heredoc-string\"},{token:\"string\",regex:'[xr]?\"',next:\"quote-string\"},{token:\"string\",regex:\"[xr]?`\",next:\"backtick-string\"},{token:\"string\",regex:\"[xr]?['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?['][cdw]?\"},{token:[\"keyword\",\"text\",\"paren.lparen\"],regex:/(asm)(\\s*)({)/,next:\"d-asm\"},{token:[\"keyword\",\"text\",\"paren.lparen\",\"constant.language\"],regex:\"(__traits)(\\\\s*)(\\\\()(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.module\"],regex:\"(import|module)(\\\\s+)((?:\"+l+\"\\\\.?)*)\"},{token:[\"keyword.storage\",\"text\",\"entity.name.type\"],regex:\"(\"+s+\")(\\\\s*)(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.storage\",\"text\"],regex:\"(alias|typedef)(\\\\s*)(\"+l+\")(\\\\s*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d[\\\\d_]*(?:(?:\\\\.[\\\\d_]*)?(?:[eE][+-]?[\\\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"entity.other.attribute-name\",regex:\"@\"+l},{token:f,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:a},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.|\\\\:\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],\"star-comment\":[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"plus-comment\":[{token:\"comment\",regex:\"\\\\+\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"quote-string\":[o,{token:\"string\",regex:'\"[cdw]?',next:\"start\"},{defaultToken:\"string\"}],\"backtick-string\":[o,{token:\"string\",regex:\"`[cdw]?\",next:\"start\"},{defaultToken:\"string\"}],\"operator-heredoc-string\":[{onMatch:function(e,t,n){e=e.substring(e.length-2,e.length-1);var r={\">\":\"<\",\"]\":\"[\",\")\":\"(\",\"}\":\"{\"};return Object.keys(r).indexOf(e)!=-1&&(e=r[e]),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'(?:[\\\\]\\\\)}>]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"identifier-heredoc-string\":[{onMatch:function(e,t,n){return e=e.substring(0,e.length-1),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'^(?:[A-Za-z_][a-zA-Z0-9]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"d-asm\":[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"keyword.instruction\",regex:\"[a-zA-Z]+\",next:\"d-asm-instruction\"},{token:\"text\",regex:\"\\\\s+\"}],\"d-asm-instruction\":[{token:\"constant.language\",regex:/AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i},{token:\"identifier\",regex:\"[a-zA-Z]+\"},{token:\"string\",regex:'\".*\"'},{token:\"comment\",regex:\"//.*$\"},{token:\"constant.numeric\",regex:\"[0-9.xA-F]+\"},{token:\"punctuation.operator\",regex:\"\\\\,\"},{token:\"punctuation.operator\",regex:\";\",next:\"d-asm\"},{token:\"text\",regex:\"\\\\s+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};o.metaData={comment:\"D language\",fileTypes:[\"d\",\"di\"],firstLineMatch:\"^#!.*\\\\b[glr]?dmd\\\\b.\",foldingStartMarker:\"(?x)/\\\\*\\\\*(?!\\\\*)|^(?![^{]*?//|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|//|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"(?<!\\\\*)\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~D\",name:\"D\",scopeName:\"source.d\"},r.inherits(o,s),t.DHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/d\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/d_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./d_highlight_rules\").DHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/d\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/d\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-dart.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/dart_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"true|false|null\",t=\"this|super\",n=\"try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await\",r=\"abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum\",s=\"static|final|const\",o=\"void|bool|num|int|double|dynamic|var|String\",u=this.createKeywordMapper({\"constant.language.dart\":e,\"variable.language.dart\":t,\"keyword.control.dart\":n,\"keyword.declaration.dart\":r,\"storage.modifier.dart\":s,\"storage.type.primitive.dart\":o},\"identifier\"),a={defaultToken:\"string\"};this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"meta.preprocessor.script.dart\"],regex:\"^(#!.*)$\"},{token:\"keyword.other.import.dart\",regex:\"(?:\\\\b)(?:library|import|export|part|of|show|hide)(?:\\\\b)\"},{token:[\"keyword.other.import.dart\",\"text\"],regex:\"(?:\\\\b)(prefix)(\\\\s*:)\"},{regex:\"\\\\bas\\\\b\",token:\"keyword.cast.dart\"},{regex:\"\\\\?|:\",token:\"keyword.control.ternary.dart\"},{regex:\"(?:\\\\b)(is\\\\!?)(?:\\\\b)\",token:[\"keyword.operator.dart\"]},{regex:\"(<<|>>>?|~|\\\\^|\\\\||&)\",token:[\"keyword.operator.bitwise.dart\"]},{regex:\"((?:&|\\\\^|\\\\||<<|>>>?)=)\",token:[\"keyword.operator.assignment.bitwise.dart\"]},{regex:\"(===?|!==?|<=?|>=?)\",token:[\"keyword.operator.comparison.dart\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.dart\"]},{regex:\"=\",token:\"keyword.operator.assignment.dart\"},{token:\"string\",regex:\"'''\",next:\"qdoc\"},{token:\"string\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{regex:\"(\\\\-\\\\-|\\\\+\\\\+)\",token:[\"keyword.operator.increment-decrement.dart\"]},{regex:\"(\\\\-|\\\\+|\\\\*|\\\\/|\\\\~\\\\/|%)\",token:[\"keyword.operator.arithmetic.dart\"]},{regex:\"(!|&&|\\\\|\\\\|)\",token:[\"keyword.operator.logical.dart\"]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"start\"},a],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"start\"},a],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"start\"},a],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"start\"},a]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.DartHighlightRules=o}),ace.define(\"ace/mode/dart\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/dart_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./dart_highlight_rules\").DartHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/dart\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/dart\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-diff.js",
    "content": "ace.define(\"ace/mode/diff_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{regex:\"^(?:\\\\*{15}|={67}|-{3}|\\\\+{3})$\",token:\"punctuation.definition.separator.diff\",name:\"keyword\"},{regex:\"^(@@)(\\\\s*.+?\\\\s*)(@@)(.*)$\",token:[\"constant\",\"constant.numeric\",\"constant\",\"comment.doc.tag\"]},{regex:\"^(\\\\d+)([,\\\\d]+)(a|d|c)(\\\\d+)([,\\\\d]+)(.*)$\",token:[\"constant.numeric\",\"punctuation.definition.range.diff\",\"constant.function\",\"constant.numeric\",\"punctuation.definition.range.diff\",\"invalid\"],name:\"meta.\"},{regex:\"^(\\\\-{3}|\\\\+{3}|\\\\*{3})( .+)$\",token:[\"constant.numeric\",\"meta.tag\"]},{regex:\"^([!+>])(.*?)(\\\\s*)$\",token:[\"support.constant\",\"text\",\"invalid\"]},{regex:\"^([<\\\\-])(.*?)(\\\\s*)$\",token:[\"support.function\",\"string\",\"invalid\"]},{regex:\"^(diff)(\\\\s+--\\\\w+)?(.+?)( .+)?$\",token:[\"variable\",\"variable\",\"keyword\",\"variable\"]},{regex:\"^Index.+$\",token:\"variable\"},{regex:\"^\\\\s+$\",token:\"text\"},{regex:\"\\\\s*$\",token:\"invalid\"},{defaultToken:\"invisible\",caseInsensitive:!0}]}};r.inherits(s,i),t.DiffHighlightRules=s}),ace.define(\"ace/mode/folding/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(e,t){this.regExpList=e,this.flag=t,this.foldingStartMarker=RegExp(\"^(\"+e.join(\"|\")+\")\",this.flag)};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i={row:n,column:r.length},o=this.regExpList;for(var u=1;u<=o.length;u++){var a=RegExp(\"^(\"+o.slice(0,u).join(\"|\")+\")\",this.flag);if(a.test(r))break}for(var f=e.getLength();++n<f;){r=e.getLine(n);if(a.test(r))break}if(n==i.row+1)return;return s.fromPoints(i,{row:n-1,column:r.length})}}.call(o.prototype)}),ace.define(\"ace/mode/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/diff_highlight_rules\",\"ace/mode/folding/diff\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./diff_highlight_rules\").DiffHighlightRules,o=e(\"./folding/diff\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o([\"diff\",\"index\",\"\\\\+{3}\",\"@@|\\\\*{5}\"],\"i\")};r.inherits(u,i),function(){this.$id=\"ace/mode/diff\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/diff\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-django.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/django\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant\",regex:\"[0-9]+\"},{token:\"variable\",regex:\"[-_a-zA-Z0-9:]+\"}],tag:[{token:\"entity.name.function\",regex:\"[a-zA-Z][_a-zA-Z0-9]*\",next:\"start\"}]}};r.inherits(u,o);var a=function(){this.$rules=(new s).getRules();for(var e in this.$rules)this.$rules[e].unshift({token:\"comment.line\",regex:\"\\\\{#.*?#\\\\}\"},{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*comment\\\\s*\\\\%\\\\}\",merge:!0,next:\"django-comment\"},{token:\"constant.language\",regex:\"\\\\{\\\\{\",next:\"django-start\"},{token:\"constant.language\",regex:\"\\\\{\\\\%\",next:\"django-tag\"}),this.embedRules(u,\"django-\",[{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*endcomment\\\\s*\\\\%\\\\}\",merge:!0,next:\"start\"},{token:\"constant.language\",regex:\"\\\\%\\\\}\",next:\"start\"},{token:\"constant.language\",regex:\"\\\\}\\\\}\",next:\"start\"}])};r.inherits(a,s);var f=function(){i.call(this),this.HighlightRules=a};r.inherits(f,i),function(){this.$id=\"ace/mode/django\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/django\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-dockerfile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"(?==))\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/dockerfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh_highlight_rules\").ShHighlightRules,s=function(){i.call(this);var e=this.$rules.start;for(var t=0;t<e.length;t++)if(e[t].token==\"variable.language\"){e.splice(t,0,{token:\"constant.language\",regex:\"(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY|LABEL)\\\\b)\",caseInsensitive:!0});break}};r.inherits(s,i),t.DockerfileHighlightRules=s}),ace.define(\"ace/mode/dockerfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh\",\"ace/mode/dockerfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh\").Mode,s=e(\"./dockerfile_highlight_rules\").DockerfileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/dockerfile\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/dockerfile\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-dot.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/dot_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,u=function(){var e=i.arrayToMap(\"strict|node|edge|graph|digraph|subgraph\".split(\"|\")),t=i.arrayToMap(\"damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z\".split(\"|\"));this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/#.*$/},{token:\"comment\",merge:!0,regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/[+\\-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?\\b/},{token:\"keyword.operator\",regex:/\\+|=|\\->/},{token:\"punctuation.operator\",regex:/,|;/},{token:\"paren.lparen\",regex:/[\\[{]/},{token:\"paren.rparen\",regex:/[\\]}]/},{token:\"comment\",regex:/^#!.*$/},{token:function(n){return e.hasOwnProperty(n.toLowerCase())?\"keyword\":t.hasOwnProperty(n.toLowerCase())?\"variable\":\"text\"},regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\",merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\",merge:!0},{token:\"string\",regex:\"'|$\",next:\"start\",merge:!0}]}};r.inherits(u,s),t.DotHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/dot\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matching_brace_outdent\",\"ace/mode/dot_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./dot_highlight_rules\").DotHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=o,this.$outdent=new s,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/dot\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/dot\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-drools.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/drools_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/java_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,u=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][\\\\.a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",f=function(){var e=\"date|effective|expires|lock|on|active|no|loop|auto|focus|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct|dialect|salience|enabled|attributes|extends|template|function|contains|matches|eval|excludes|soundslike|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert|modify|static|public|protected|private|abstract|native|transient|volatile|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str\",t=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":\"null\",\"support.class\":t,\"support.function\":\"retract|update|modify|insert\"},\"identifier\"),r=function(){return[{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"}]},i=function(e){return[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},o.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:e},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"}]},f=function(e){return[{token:\"comment.block\",regex:\"\\\\*\\\\/\",next:e},{defaultToken:\"comment.block\"}]},l=function(){return[{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}]};this.$rules={start:[].concat(i(\"block.comment\"),[{token:\"entity.name.type\",regex:\"@[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(package)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],regex:\"(import)(\\\\s+)(function)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(import)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\",\"text\",\"variable\"],regex:\"(global)(\\\\s+)(\"+a+\")(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],regex:\"(declare)(\\\\s+)(trait)(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(declare)(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(extends)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\"],regex:\"(rule)(\\\\s+)\",next:\"asset.name\"}],r(),[{token:[\"variable.other\",\"text\",\"text\"],regex:\"(\"+u+\")(\\\\s*)(:)\"},{token:[\"keyword\",\"text\"],regex:\"(query)(\\\\s+)\",next:\"asset.name\"},{token:[\"keyword\",\"text\"],regex:\"(when)(\\\\s*)\"},{token:[\"keyword\",\"text\"],regex:\"(then)(\\\\s*)\",next:\"java-start\"},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/}],l()),\"block.comment\":f(\"start\"),\"asset.name\":[{token:\"entity.name\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"entity.name\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"entity.name\",regex:u},{regex:\"\",token:\"empty\",next:\"start\"}]},this.embedRules(o,\"doc-\",[o.getEndRule(\"start\")]),this.embedRules(s,\"java-\",[{token:\"support.function\",regex:\"\\\\b(insert|modify|retract|update)\\\\b\"},{token:\"keyword\",regex:\"\\\\bend\\\\b\",next:\"start\"}])};r.inherits(f,i),t.DroolsHighlightRules=f}),ace.define(\"ace/mode/folding/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,s),function(){this.foldingStartMarker=/\\b(rule|declare|query|when|then)\\b/,this.foldingStopMarker=/\\bend\\b/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),s=r.match(this.foldingStartMarker);if(s){var u=s.index;if(s[1]){var a={row:n,column:r.length},f=new o(e,a.row,a.column),l=\"end\",c=f.getCurrentToken();c.value==\"when\"&&(l=\"then\");while(c){if(c.value==l)return i.fromPoints(a,{row:f.getCurrentTokenRow(),column:f.getCurrentTokenColumn()});c=f.stepForward()}}}}}.call(u.prototype)}),ace.define(\"ace/mode/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/drools_highlight_rules\",\"ace/mode/folding/drools\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./drools_highlight_rules\").DroolsHighlightRules,o=e(\"./folding/drools\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/drools\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/drools\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-edifact.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/edifact_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"UNH\",t=\"ADR|AGR|AJT|ALC|ALI|APP|APR|ARD|ARR|ASI|ATT|AUT|BAS|BGM|BII|BUS|CAV|CCD|CCI|CDI|CDS|CDV|CED|CIN|CLA|CLI|CMP|CNI|CNT|COD|COM|COT|CPI|CPS|CPT|CST|CTA|CUX|DAM|DFN|DGS|DII|DIM|DLI|DLM|DMS|DOC|DRD|DSG|DSI|DTM|EDT|EFI|ELM|ELU|ELV|EMP|EQA|EQD|EQN|ERC|ERP|EVE|FCA|FII|FNS|FNT|FOR|FSQ|FTX|GDS|GEI|GID|GIN|GIR|GOR|GPO|GRU|HAN|HYN|ICD|IDE|IFD|IHC|IMD|IND|INP|INV|IRQ|LAN|LIN|LOC|MEA|MEM|MKS|MOA|MSG|MTD|NAD|NAT|PAC|PAI|PAS|PCC|PCD|PCI|PDI|PER|PGI|PIA|PNA|POC|PRC|PRI|PRV|PSD|PTY|PYT|QRS|QTY|QUA|QVR|RCS|REL|RFF|RJL|RNG|ROD|RSL|RTE|SAL|SCC|SCD|SEG|SEL|SEQ|SFI|SGP|SGU|SPR|SPS|STA|STC|STG|STS|TAX|TCC|TDT|TEM|TMD|TMP|TOD|TPL|TRU|TSR|UNB|UNZ|UNT|UGH|UGT|UNS|VLI\",e=\"UNH\",n=\"null|Infinity|NaN|undefined\",r=\"\",s=\"BY|SE|ON|INV|JP|UNOA\",o=this.createKeywordMapper({\"variable.language\":\"this\",keyword:s,\"entity.name.segment\":t,\"entity.name.header\":e,\"constant.language\":n,\"support.function\":r},\"identifier\");this.$rules={start:[{token:\"punctuation.operator\",regex:\"\\\\+.\\\\+\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+\"},{token:\"punctuation.operator\",regex:\"\\\\:|'\"},{token:\"identifier\",regex:\"\\\\:D\\\\:\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};o.metaData={fileTypes:[\"edi\"],keyEquivalent:\"^~E\",name:\"Edifact\",scopeName:\"source.edifact\"},r.inherits(o,s),t.EdifactHighlightRules=o}),ace.define(\"ace/mode/edifact\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/edifact_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./edifact_highlight_rules\").EdifactHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/edifact\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/edifact\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-eiffel.js",
    "content": "ace.define(\"ace/mode/eiffel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"across|agent|alias|all|attached|as|assign|attribute|check|class|convert|create|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|Precursor|redefine|rename|require|rescue|retry|select|separate|some|then|undefine|until|variant|when\",t=\"and|implies|or|xor\",n=\"Void\",r=\"True|False\",i=\"Current|Result\",s=this.createKeywordMapper({\"constant.language\":n,\"constant.language.boolean\":r,\"variable.language\":i,\"keyword.operator\":t,keyword:e},\"identifier\",!0),o=/(?:[^\"%\\b\\f\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)+?/;this.$rules={start:[{token:\"string.quoted.other\",regex:/\"\\[/,next:\"aligned_verbatim_string\"},{token:\"string.quoted.other\",regex:/\"\\{/,next:\"non-aligned_verbatim_string\"},{token:\"string.quoted.double\",regex:/\"(?:[^%\\b\\f\\n\\r\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)*?\"/},{token:\"comment.line.double-dash\",regex:/--.*/},{token:\"constant.character\",regex:/'(?:[^%\\b\\f\\n\\r\\t\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)'/},{token:\"constant.numeric\",regex:/\\b0(?:[xX][\\da-fA-F](?:_*[\\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\\b/},{token:\"constant.numeric\",regex:/(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?[eE][+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/},{token:\"paren.lparen\",regex:/[\\[({]|<<|\\|\\(/},{token:\"paren.rparen\",regex:/[\\])}]|>>|\\|\\)/},{token:\"keyword.operator\",regex:/:=|->|\\.(?=\\w)|[;,:?]/},{token:\"keyword.operator\",regex:/\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/]?|[><\\/]=?|[-+*^=~]/},{token:function(e){var t=s(e);return t===\"identifier\"&&e===e.toUpperCase()&&(t=\"entity.name.type\"),t},regex:/[a-zA-Z][a-zA-Z\\d_]*\\b/},{token:\"text\",regex:/\\s+/}],aligned_verbatim_string:[{token:\"string\",regex:/]\"/,next:\"start\"},{token:\"string\",regex:o}],\"non-aligned_verbatim_string\":[{token:\"string.quoted.other\",regex:/}\"/,next:\"start\"},{token:\"string.quoted.other\",regex:o}]}};r.inherits(s,i),t.EiffelHighlightRules=s}),ace.define(\"ace/mode/eiffel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/eiffel_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./eiffel_highlight_rules\").EiffelHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/eiffel\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/eiffel\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ejs.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=t.instanceVariable={token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},h=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(h,i),t.RubyHighlightRules=h}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/ejs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=function(e,t){i.call(this),e||(e=\"(?:<%|<\\\\?|{{)\"),t||(t=\"(?:%>|\\\\?>|}})\");for(var n in this.$rules)this.$rules[n].unshift({token:\"markup.list.meta.tag\",regex:e+\"(?![>}])[-=]?\",push:\"ejs-start\"});this.embedRules((new s({jsx:!1})).getRules(),\"ejs-\",[{token:\"markup.list.meta.tag\",regex:\"-?\"+t,next:\"pop\"},{token:\"comment\",regex:\"//.*?\"+t,next:\"pop\"}]),this.normalizeRules()};r.inherits(o,i),t.EjsHighlightRules=o;var r=e(\"../lib/oop\"),u=e(\"./html\").Mode,a=e(\"./javascript\").Mode,f=e(\"./css\").Mode,l=e(\"./ruby\").Mode,c=function(){u.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":a,\"css-\":f,\"ejs-\":a})};r.inherits(c,u),function(){this.$id=\"ace/mode/ejs\"}.call(c.prototype),t.Mode=c});\n                (function() {\n                    ace.require([\"ace/mode/ejs\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-elixir.js",
    "content": "ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/elixir\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-elm.js",
    "content": "ace.define(\"ace/mode/elm_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:\"as|case|class|data|default|deriving|do|else|export|foreign|hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|open|then|type|where|_|port|\\u03bb\"},\"identifier\"),t=/\\\\(\\d+|['\"\\\\&trnbvf])/,n=/[a-z_]/.source,r=/[A-Z]/.source,i=/[a-z_A-Z0-9']/.source;this.$rules={start:[{token:\"string.start\",regex:'\"',next:\"string\"},{token:\"string.character\",regex:\"'(?:\"+t.source+\"|.)'?\"},{regex:/0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\\d+(\\.\\d+)?([eE][-+]?\\d*)?/,token:\"constant.numeric\"},{token:\"comment\",regex:\"--.*\"},{token:\"keyword\",regex:/\\.\\.|\\||:|=|\\\\|\"|->|<-|\\u2192/},{token:\"keyword.operator\",regex:/[-!#$%&*+.\\/<=>?@\\\\^|~:\\u03BB\\u2192]+/},{token:\"operator.punctuation\",regex:/[,;`]/},{regex:r+i+\"+\\\\.?\",token:function(e){return e[e.length-1]==\".\"?\"entity.name.function\":\"constant.language\"}},{regex:\"^\"+n+i+\"+\",token:function(e){return\"constant.language\"}},{token:e,regex:\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"},{regex:\"{-#?\",token:\"comment.start\",onMatch:function(e,t,n){return this.next=e.length==2?\"blockComment\":\"docComment\",this.token}},{token:\"variable.language\",regex:/\\[markdown\\|/,next:\"markdown\"},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/}],markdown:[{regex:/\\|\\]/,next:\"start\"},{defaultToken:\"string\"}],blockComment:[{regex:\"{-\",token:\"comment.start\",push:\"blockComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}],docComment:[{regex:\"{-\",token:\"comment.start\",push:\"docComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"doc.comment\"}],string:[{token:\"constant.language.escape\",regex:t},{token:\"text\",regex:/\\\\(\\s|$)/,next:\"stringGap\"},{token:\"string.end\",regex:'\"',next:\"start\"},{defaultToken:\"string\"}],stringGap:[{token:\"text\",regex:/\\\\/,next:\"string\"},{token:\"error\",regex:\"\",next:\"start\"}]},this.normalizeRules()};r.inherits(s,i),t.ElmHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/elm\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elm_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elm_highlight_rules\").ElmHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"{-\",end:\"-}\",nestable:!0},this.$id=\"ace/mode/elm\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/elm\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-erlang.js",
    "content": "ace.define(\"ace/mode/erlang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#module-directive\"},{include:\"#import-export-directive\"},{include:\"#behaviour-directive\"},{include:\"#record-directive\"},{include:\"#define-directive\"},{include:\"#macro-directive\"},{include:\"#directive\"},{include:\"#function\"},{include:\"#everything-else\"}],\"#atom\":[{token:\"punctuation.definition.symbol.begin.erlang\",regex:\"'\",push:[{token:\"punctuation.definition.symbol.end.erlang\",regex:\"'\",next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"constant.other.symbol.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.atom.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{defaultToken:\"constant.other.symbol.quoted.single.erlang\"}]},{token:\"constant.other.symbol.unquoted.erlang\",regex:\"[a-z][a-zA-Z\\\\d@_]*\"}],\"#behaviour-directive\":[{token:[\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.behaviour.erlang\",\"keyword.control.directive.behaviour.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.behaviour.erlang\",\"entity.name.type.class.behaviour.definition.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(behaviour)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#binary\":[{token:\"punctuation.definition.binary.begin.erlang\",regex:\"<<\",push:[{token:\"punctuation.definition.binary.end.erlang\",regex:\">>\",next:\"pop\"},{token:[\"punctuation.separator.binary.erlang\",\"punctuation.separator.value-size.erlang\"],regex:\"(,)|(:)\"},{include:\"#internal-type-specifiers\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.binary.erlang\"}]}],\"#character\":[{token:[\"punctuation.definition.character.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\$)(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.character.erlang\",\"constant.character.erlang\"],regex:\"(\\\\$)(\\\\S)\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$.?\"}],\"#comment\":[{token:\"punctuation.definition.comment.erlang\",regex:\"%.*$\",push_:[{token:\"comment.line.percentage.erlang\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.percentage.erlang\"}]}],\"#define-directive\":[{token:[\"meta.directive.define.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.define.erlang\",\"keyword.control.directive.define.erlang\",\"meta.directive.define.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.define.erlang\",\"entity.name.function.macro.definition.erlang\",\"meta.directive.define.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]},{token:\"meta.directive.define.erlang\",regex:\"(?=^\\\\s*-\\\\s*define\\\\s*\\\\(\\\\s*[a-zA-Z\\\\d@_]+\\\\s*\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{token:[\"text\",\"punctuation.section.directive.begin.erlang\",\"text\",\"keyword.control.directive.define.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\",\"text\",\"entity.name.function.macro.definition.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"text\",\"punctuation.separator.parameters.erlang\"],regex:\"(\\\\))(\\\\s*)(,)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.define.erlang\",regex:\"\\\\|\\\\||\\\\||:|;|,|\\\\.|->\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]}],\"#directive\":[{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\(?)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\)?)(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.erlang\"}]},{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\.)\"}],\"#everything-else\":[{include:\"#comment\"},{include:\"#record-usage\"},{include:\"#macro-usage\"},{include:\"#expression\"},{include:\"#keyword\"},{include:\"#textual-operator\"},{include:\"#function-call\"},{include:\"#tuple\"},{include:\"#list\"},{include:\"#binary\"},{include:\"#parenthesized-expression\"},{include:\"#character\"},{include:\"#number\"},{include:\"#atom\"},{include:\"#string\"},{include:\"#symbolic-operator\"},{include:\"#variable\"}],\"#expression\":[{token:\"keyword.control.if.erlang\",regex:\"\\\\bif\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.if.erlang\"}]},{token:\"keyword.control.case.erlang\",regex:\"\\\\bcase\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.case.erlang\"}]},{token:\"keyword.control.receive.erlang\",regex:\"\\\\breceive\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.receive.erlang\"}]},{token:[\"keyword.control.fun.erlang\",\"text\",\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"\\\\b(fun)(\\\\s*)(?:([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(/)\"},{token:\"keyword.control.fun.erlang\",regex:\"\\\\bfun\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\bend\\\\b)\",next:\"pop\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.expression.fun.erlang\"}]},{token:\"keyword.control.try.erlang\",regex:\"\\\\btry\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.try.erlang\"}]},{token:\"keyword.control.begin.erlang\",regex:\"\\\\bbegin\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.begin.erlang\"}]},{token:\"keyword.control.query.erlang\",regex:\"\\\\bquery\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.query.erlang\"}]}],\"#function\":[{token:[\"meta.function.erlang\",\"entity.name.function.definition.erlang\",\"meta.function.erlang\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\",push:[{token:\"punctuation.terminator.function.erlang\",regex:\"\\\\.\",next:\"pop\"},{token:[\"text\",\"entity.name.function.erlang\",\"text\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\.)\",next:\"pop\"},{include:\"#parenthesized-expression\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.function.erlang\"}]}],\"#function-call\":[{token:\"meta.function-call.erlang\",regex:\"(?=(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*(?:\\\\(|:\\\\s*(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*\\\\())\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.guard.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:(erlang)(\\\\s*)(:)(\\\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{defaultToken:\"meta.function-call.erlang\"}]}],\"#import-export-directive\":[{token:[\"meta.directive.import.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.import.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.import.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.import.erlang\",\"entity.name.type.class.module.erlang\",\"meta.directive.import.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(import)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.import.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.import.erlang\"}]},{token:[\"meta.directive.export.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.export.erlang\",\"keyword.control.directive.export.erlang\",\"meta.directive.export.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(export)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.export.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.export.erlang\"}]}],\"#internal-expression-punctuation\":[{token:[\"punctuation.separator.clause-head-body.erlang\",\"punctuation.separator.clauses.erlang\",\"punctuation.separator.expressions.erlang\"],regex:\"(->)|(;)|(,)\"}],\"#internal-function-list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:[\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(/)\",push:[{token:\"punctuation.separator.list.erlang\",regex:\",|(?=\\\\])\",next:\"pop\"},{include:\"#everything-else\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.function.erlang\"}]}],\"#internal-function-parts\":[{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clause-head-body.erlang\",regex:\"->\",next:\"pop\"},{token:\"punctuation.definition.parameters.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.guards.erlang\",regex:\",|;\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.expressions.erlang\",regex:\",\"},{include:\"#everything-else\"}],\"#internal-record-body\":[{token:\"punctuation.definition.class.record.begin.erlang\",regex:\"\\\\{\",push:[{token:\"meta.structure.record.erlang\",regex:\"(?=\\\\})\",next:\"pop\"},{token:[\"variable.other.field.erlang\",\"variable.language.omitted.field.erlang\",\"text\",\"keyword.operator.assignment.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')|(_))(\\\\s*)(=|::)\",push:[{token:\"punctuation.separator.class.record.erlang\",regex:\",|(?=\\\\})\",next:\"pop\"},{include:\"#everything-else\"}]},{token:[\"variable.other.field.erlang\",\"text\",\"punctuation.separator.class.record.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)((?:,)?)\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.record.erlang\"}]}],\"#internal-type-specifiers\":[{token:\"punctuation.separator.value-type.erlang\",regex:\"/\",push:[{token:\"text\",regex:\"(?=,|:|>>)\",next:\"pop\"},{token:[\"storage.type.erlang\",\"storage.modifier.signedness.erlang\",\"storage.modifier.endianness.erlang\",\"storage.modifier.unit.erlang\",\"punctuation.separator.type-specifiers.erlang\"],regex:\"(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)\"}]}],\"#keyword\":[{token:\"keyword.control.erlang\",regex:\"\\\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\\\b\"}],\"#list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:\"punctuation.separator.list.erlang\",regex:\"\\\\||\\\\|\\\\||,\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.erlang\"}]}],\"#macro-directive\":[{token:[\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifdef.erlang\",\"keyword.control.directive.ifdef.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifdef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifdef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifndef.erlang\",\"keyword.control.directive.ifndef.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifndef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifndef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.undef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.undef.erlang\",\"keyword.control.directive.undef.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.undef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.undef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(undef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#macro-usage\":[{token:[\"keyword.operator.macro.erlang\",\"meta.macro-usage.erlang\",\"entity.name.function.macro.erlang\"],regex:\"(\\\\?\\\\??)(\\\\s*)([a-zA-Z\\\\d@_]+)\"}],\"#module-directive\":[{token:[\"meta.directive.module.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.module.erlang\",\"keyword.control.directive.module.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.module.erlang\",\"entity.name.type.class.module.definition.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.module.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(module)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#number\":[{token:\"text\",regex:\"(?=\\\\d)\",push:[{token:\"text\",regex:\"(?!\\\\d)\",next:\"pop\"},{token:[\"constant.numeric.float.erlang\",\"punctuation.separator.integer-float.erlang\",\"constant.numeric.float.erlang\",\"punctuation.separator.float-exponent.erlang\"],regex:\"(\\\\d+)(\\\\.)(\\\\d+)((?:[eE][\\\\+\\\\-]?\\\\d+)?)\"},{token:[\"constant.numeric.integer.binary.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.binary.erlang\"],regex:\"(2)(#)([0-1]+)\"},{token:[\"constant.numeric.integer.base-3.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-3.erlang\"],regex:\"(3)(#)([0-2]+)\"},{token:[\"constant.numeric.integer.base-4.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-4.erlang\"],regex:\"(4)(#)([0-3]+)\"},{token:[\"constant.numeric.integer.base-5.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-5.erlang\"],regex:\"(5)(#)([0-4]+)\"},{token:[\"constant.numeric.integer.base-6.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-6.erlang\"],regex:\"(6)(#)([0-5]+)\"},{token:[\"constant.numeric.integer.base-7.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-7.erlang\"],regex:\"(7)(#)([0-6]+)\"},{token:[\"constant.numeric.integer.octal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.octal.erlang\"],regex:\"(8)(#)([0-7]+)\"},{token:[\"constant.numeric.integer.base-9.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-9.erlang\"],regex:\"(9)(#)([0-8]+)\"},{token:[\"constant.numeric.integer.decimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.decimal.erlang\"],regex:\"(10)(#)(\\\\d+)\"},{token:[\"constant.numeric.integer.base-11.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-11.erlang\"],regex:\"(11)(#)([\\\\daA]+)\"},{token:[\"constant.numeric.integer.base-12.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-12.erlang\"],regex:\"(12)(#)([\\\\da-bA-B]+)\"},{token:[\"constant.numeric.integer.base-13.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-13.erlang\"],regex:\"(13)(#)([\\\\da-cA-C]+)\"},{token:[\"constant.numeric.integer.base-14.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-14.erlang\"],regex:\"(14)(#)([\\\\da-dA-D]+)\"},{token:[\"constant.numeric.integer.base-15.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-15.erlang\"],regex:\"(15)(#)([\\\\da-eA-E]+)\"},{token:[\"constant.numeric.integer.hexadecimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.hexadecimal.erlang\"],regex:\"(16)(#)([\\\\da-fA-F]+)\"},{token:[\"constant.numeric.integer.base-17.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-17.erlang\"],regex:\"(17)(#)([\\\\da-gA-G]+)\"},{token:[\"constant.numeric.integer.base-18.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-18.erlang\"],regex:\"(18)(#)([\\\\da-hA-H]+)\"},{token:[\"constant.numeric.integer.base-19.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-19.erlang\"],regex:\"(19)(#)([\\\\da-iA-I]+)\"},{token:[\"constant.numeric.integer.base-20.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-20.erlang\"],regex:\"(20)(#)([\\\\da-jA-J]+)\"},{token:[\"constant.numeric.integer.base-21.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-21.erlang\"],regex:\"(21)(#)([\\\\da-kA-K]+)\"},{token:[\"constant.numeric.integer.base-22.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-22.erlang\"],regex:\"(22)(#)([\\\\da-lA-L]+)\"},{token:[\"constant.numeric.integer.base-23.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-23.erlang\"],regex:\"(23)(#)([\\\\da-mA-M]+)\"},{token:[\"constant.numeric.integer.base-24.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-24.erlang\"],regex:\"(24)(#)([\\\\da-nA-N]+)\"},{token:[\"constant.numeric.integer.base-25.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-25.erlang\"],regex:\"(25)(#)([\\\\da-oA-O]+)\"},{token:[\"constant.numeric.integer.base-26.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-26.erlang\"],regex:\"(26)(#)([\\\\da-pA-P]+)\"},{token:[\"constant.numeric.integer.base-27.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-27.erlang\"],regex:\"(27)(#)([\\\\da-qA-Q]+)\"},{token:[\"constant.numeric.integer.base-28.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-28.erlang\"],regex:\"(28)(#)([\\\\da-rA-R]+)\"},{token:[\"constant.numeric.integer.base-29.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-29.erlang\"],regex:\"(29)(#)([\\\\da-sA-S]+)\"},{token:[\"constant.numeric.integer.base-30.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-30.erlang\"],regex:\"(30)(#)([\\\\da-tA-T]+)\"},{token:[\"constant.numeric.integer.base-31.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-31.erlang\"],regex:\"(31)(#)([\\\\da-uA-U]+)\"},{token:[\"constant.numeric.integer.base-32.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-32.erlang\"],regex:\"(32)(#)([\\\\da-vA-V]+)\"},{token:[\"constant.numeric.integer.base-33.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-33.erlang\"],regex:\"(33)(#)([\\\\da-wA-W]+)\"},{token:[\"constant.numeric.integer.base-34.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-34.erlang\"],regex:\"(34)(#)([\\\\da-xA-X]+)\"},{token:[\"constant.numeric.integer.base-35.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-35.erlang\"],regex:\"(35)(#)([\\\\da-yA-Y]+)\"},{token:[\"constant.numeric.integer.base-36.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-36.erlang\"],regex:\"(36)(#)([\\\\da-zA-Z]+)\"},{token:\"invalid.illegal.integer.erlang\",regex:\"\\\\d+#[\\\\da-zA-Z]+\"},{token:\"constant.numeric.integer.decimal.erlang\",regex:\"\\\\d+\"}]}],\"#parenthesized-expression\":[{token:\"punctuation.section.expression.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.section.expression.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.parenthesized\"}]}],\"#record-directive\":[{token:[\"meta.directive.record.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.record.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.record.erlang\",\"entity.name.type.class.record.definition.erlang\",\"meta.directive.record.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(record)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.class.record.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\})(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.directive.record.erlang\"}]}],\"#record-usage\":[{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\",\"meta.record-usage.erlang\",\"punctuation.separator.record-field.erlang\",\"meta.record-usage.erlang\",\"variable.other.field.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\.)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\"},{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\",push:[{token:\"punctuation.definition.class.record.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.record-usage.erlang\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.erlang\",regex:'\"',push:[{token:\"punctuation.definition.string.end.erlang\",regex:'\"',next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.string.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)(?:((?:\\\\-)?)(\\\\d+)|(\\\\*))?(?:(\\\\.)(?:(\\\\d+)|(\\\\*)))?(?:(\\\\.)(?:(\\\\*)|(.)))?([~cfegswpWPBX#bx\\\\+ni])\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)((?:\\\\*)?)((?:\\\\d+)?)([~du\\\\-#fsacl])\"},{token:\"invalid.illegal.string.erlang\",regex:\"~.?\"},{defaultToken:\"string.quoted.double.erlang\"}]}],\"#symbolic-operator\":[{token:\"keyword.operator.symbolic.erlang\",regex:\"\\\\+\\\\+|\\\\+|--|-|\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::\"}],\"#textual-operator\":[{token:\"keyword.operator.textual.erlang\",regex:\"\\\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\b\"}],\"#tuple\":[{token:\"punctuation.definition.tuple.begin.erlang\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tuple.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{token:\"punctuation.separator.tuple.erlang\",regex:\",\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.tuple.erlang\"}]}],\"#variable\":[{token:[\"variable.other.erlang\",\"variable.language.omitted.erlang\"],regex:\"(_[a-zA-Z\\\\d@_]+|[A-Z][a-zA-Z\\\\d@_]*)|(_)\"}]},this.normalizeRules()};s.metaData={comment:\"The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp\",fileTypes:[\"erl\",\"hrl\"],keyEquivalent:\"^~E\",name:\"Erlang\",scopeName:\"source.erlang\"},r.inherits(s,i),t.ErlangHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/erlang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/erlang_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./erlang_highlight_rules\").ErlangHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment=null,this.$id=\"ace/mode/erlang\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/erlang\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-forth.js",
    "content": "ace.define(\"ace/mode/forth_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#forth\"}],\"#comment\":[{token:\"comment.line.double-dash.forth\",regex:\"(?:^|\\\\s)--\\\\s.*$\",comment:\"line comments for iForth\"},{token:\"comment.line.backslash.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[\\\\s\\\\S]*$\",comment:\"ANSI line comment\"},{token:\"comment.line.backslash-g.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[Gg] .*$\",comment:\"gForth line comment\"},{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\(\\\\*(?=\\\\s|$)\",push:[{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\*\\\\)(?=\\\\s|$)\",next:\"pop\"},{defaultToken:\"comment.block.forth\"}],comment:\"multiline comments for iForth\"},{token:\"comment.block.documentation.forth\",regex:\"\\\\bDOC\\\\b\",caseInsensitive:!0,push:[{token:\"comment.block.documentation.forth\",regex:\"\\\\bENDDOC\\\\b\",caseInsensitive:!0,next:\"pop\"},{defaultToken:\"comment.block.documentation.forth\"}],comment:\"documentation comments for iForth\"},{token:\"comment.line.parentheses.forth\",regex:\"(?:^|\\\\s)\\\\.?\\\\( [^)]*\\\\)\",comment:\"ANSI line comment\"}],\"#constant\":[{token:\"constant.language.forth\",regex:\"(?:^|\\\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"constant.numeric.forth\",regex:\"(?:^|\\\\s)[$#%]?[-+]?[0-9]+(?:\\\\.[0-9]*e-?[0-9]+|\\\\.?[0-9a-fA-F]*)(?=\\\\s|$)\"},{token:\"constant.character.forth\",regex:\"(?:^|\\\\s)(?:[&^]\\\\S|(?:\\\"|')\\\\S(?:\\\"|'))(?=\\\\s|$)\"}],\"#forth\":[{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{include:\"#word-def\"}],\"#storage\":[{token:\"storage.type.forth\",regex:\"(?:^|\\\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\\\s|$)\",caseInsensitive:!0}],\"#string\":[{token:\"string.quoted.double.forth\",regex:'(ABORT\" |BREAK\" |\\\\.\" |C\" |0\"|S\\\\\\\\?\" )([^\"]+\")',caseInsensitive:!0},{token:\"string.unquoted.forth\",regex:\"(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\\\S+(?=\\\\s|$)\",caseInsensitive:!0}],\"#variable\":[{token:\"variable.language.forth\",regex:\"\\\\b(?:I|J)\\\\b\",caseInsensitive:!0}],\"#word\":[{token:\"keyword.control.immediate.forth\",regex:\"(?:^|\\\\s)\\\\[(?:\\\\?DO|\\\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\\\](?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.immediate.forth\",regex:\"(?:^|\\\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT'S|])(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.control.compile-only.forth\",regex:'(?:^|\\\\s)(?:-DO|\\\\-LOOP|\\\\?DO|\\\\?LEAVE|\\\\+DO|\\\\+LOOP|ABORT\\\\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\\\-DO|U\\\\+DO|UNTIL|WHILE)(?=\\\\s|$)',caseInsensitive:!0},{token:\"keyword.other.compile-only.forth\",regex:\"(?:^|\\\\s)(?:\\\\?DUP-0=-IF|\\\\?DUP-IF|\\\\)|\\\\[|\\\\['\\\\]|\\\\[CHAR\\\\]|\\\\[COMPILE\\\\]|\\\\[IS\\\\]|\\\\[TO\\\\]|<COMPILATION|<INTERPRETATION|ASSERT\\\\(|ASSERT0\\\\(|ASSERT1\\\\(|ASSERT2\\\\(|ASSERT3\\\\(|COMPILATION>|DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.non-immediate.forth\",regex:\"(?:^|\\\\s)(?:'|<IS>|<TO>|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.warning.forth\",regex:'(?:^|\\\\s)(?:~~|BREAK:|BREAK\"|DBG)(?=\\\\s|$)',caseInsensitive:!0}],\"#word-def\":[{token:[\"keyword.other.compile-only.forth\",\"keyword.other.compile-only.forth\",\"meta.block.forth\",\"entity.name.function.forth\"],regex:\"(:NONAME)|(^:|\\\\s:)(\\\\s)(\\\\S+)(?=\\\\s|$)\",caseInsensitive:!0,push:[{token:\"keyword.other.compile-only.forth\",regex:\";(?:CODE)?\",caseInsensitive:!0,next:\"pop\"},{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{defaultToken:\"meta.block.forth\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"frt\",\"fs\",\"ldr\",\"fth\",\"4th\"],foldingStartMarker:\"/\\\\*\\\\*|\\\\{\\\\s*$\",foldingStopMarker:\"\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~F\",name:\"Forth\",scopeName:\"source.forth\"},r.inherits(s,i),t.ForthHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/forth\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/forth_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./forth_highlight_rules\").ForthHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/forth\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/forth\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-fortran.js",
    "content": "ace.define(\"ace/mode/fortran_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"call|case|contains|continue|cycle|do|else|elseif|end|enddo|endif|function|if|implicit|in|include|inout|intent|module|none|only|out|print|program|return|select|status|stop|subroutine|return|then|use|while|write|CALL|CASE|CONTAINS|CONTINUE|CYCLE|DO|ELSE|ELSEIF|END|ENDDO|ENDIF|FUNCTION|IF|IMPLICIT|IN|INCLUDE|INOUT|INTENT|MODULE|NONE|ONLY|OUT|PRINT|PROGRAM|RETURN|SELECT|STATUS|STOP|SUBROUTINE|RETURN|THEN|USE|WHILE|WRITE\",t=\"and|or|not|eq|ne|gt|ge|lt|le|AND|OR|NOT|EQ|NE|GT|GE|LT|LE\",n=\"true|false|TRUE|FALSE\",r=\"abs|achar|acos|acosh|adjustl|adjustr|aimag|aint|all|allocate|anint|any|asin|asinh|associated|atan|atan2|atanh|bessel_j0|bessel_j1|bessel_jn|bessel_y0|bessel_y1|bessel_yn|bge|bgt|bit_size|ble|blt|btest|ceiling|char|cmplx|conjg|cos|cosh|count|cpu_time|cshift|date_and_time|dble|deallocate|digits|dim|dot_product|dprod|dshiftl|dshiftr|dsqrt|eoshift|epsilon|erf|erfc|erfc_scaled|exp|float|floor|format|fraction|gamma|input|len|lge|lgt|lle|llt|log|log10|maskl|maskr|matmul|max|maxloc|maxval|merge|min|minloc|minval|mod|modulo|nint|not|norm2|null|nullify|pack|parity|popcnt|poppar|precision|present|product|radix|random_number|random_seed|range|repeat|reshape|round|rrspacing|same_type_as|scale|scan|selected_char_kind|selected_int_kind|selected_real_kind|set_exponent|shape|shifta|shiftl|shiftr|sign|sin|sinh|size|sngl|spacing|spread|sqrt|sum|system_clock|tan|tanh|tiny|trailz|transfer|transpose|trim|ubound|unpack|verify|ABS|ACHAR|ACOS|ACOSH|ADJUSTL|ADJUSTR|AIMAG|AINT|ALL|ALLOCATE|ANINT|ANY|ASIN|ASINH|ASSOCIATED|ATAN|ATAN2|ATANH|BESSEL_J0|BESSEL_J1|BESSEL_JN|BESSEL_Y0|BESSEL_Y1|BESSEL_YN|BGE|BGT|BIT_SIZE|BLE|BLT|BTEST|CEILING|CHAR|CMPLX|CONJG|COS|COSH|COUNT|CPU_TIME|CSHIFT|DATE_AND_TIME|DBLE|DEALLOCATE|DIGITS|DIM|DOT_PRODUCT|DPROD|DSHIFTL|DSHIFTR|DSQRT|EOSHIFT|EPSILON|ERF|ERFC|ERFC_SCALED|EXP|FLOAT|FLOOR|FORMAT|FRACTION|GAMMA|INPUT|LEN|LGE|LGT|LLE|LLT|LOG|LOG10|MASKL|MASKR|MATMUL|MAX|MAXLOC|MAXVAL|MERGE|MIN|MINLOC|MINVAL|MOD|MODULO|NINT|NOT|NORM2|NULL|NULLIFY|PACK|PARITY|POPCNT|POPPAR|PRECISION|PRESENT|PRODUCT|RADIX|RANDOM_NUMBER|RANDOM_SEED|RANGE|REPEAT|RESHAPE|ROUND|RRSPACING|SAME_TYPE_AS|SCALE|SCAN|SELECTED_CHAR_KIND|SELECTED_INT_KIND|SELECTED_REAL_KIND|SET_EXPONENT|SHAPE|SHIFTA|SHIFTL|SHIFTR|SIGN|SIN|SINH|SIZE|SNGL|SPACING|SPREAD|SQRT|SUM|SYSTEM_CLOCK|TAN|TANH|TINY|TRAILZ|TRANSFER|TRANSPOSE|TRIM|UBOUND|UNPACK|VERIFY\",i=\"logical|character|integer|real|type|LOGICAL|CHARACTER|INTEGER|REAL|TYPE\",s=\"allocatable|dimension|intent|parameter|pointer|target|private|public|ALLOCATABLE|DIMENSION|INTENT|PARAMETER|POINTER|TARGET|PRIVATE|PUBLIC\",o=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":r,\"constant.language\":n,keyword:e,\"keyword.operator\":t,\"storage.type\":i,\"storage.modifier\":s},\"identifier\"),u=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",a=\"(?:(?:[1-9]\\\\d*)|(?:0))\",f=\"(?:0[oO]?[0-7]+)\",l=\"(?:0[xX][\\\\dA-Fa-f]+)\",c=\"(?:0[bB][01]+)\",h=\"(?:\"+a+\"|\"+f+\"|\"+l+\"|\"+c+\")\",p=\"(?:[eE][+-]?\\\\d+)\",d=\"(?:\\\\.\\\\d+)\",v=\"(?:\\\\d+)\",m=\"(?:(?:\"+v+\"?\"+d+\")|(?:\"+v+\"\\\\.))\",g=\"(?:(?:\"+m+\"|\"+v+\")\"+p+\")\",y=\"(?:\"+g+\"|\"+m+\")\",b=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"!.*$\"},{token:\"string\",regex:u+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:u+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:u+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:u+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+y+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:y},{token:\"constant.numeric\",regex:h+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:h+\"\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|define|undef|INCLUDE|IMPORT|DEFINE|UNDEF)\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|ifdef|else|elseif|ifndef|ENDIF|IFDEF|ELSE|ELSEIF|IFNDEF)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.FortranHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/fortran\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/fortran_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./fortran_highlight_rules\").FortranHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"!\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={\"return\":1,\"break\":1,\"continue\":1,RETURN:1,BREAK:1,CONTINUE:1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/fortran\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/fortran\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ftl.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ftl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"\\\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|upper_case|word_list|xhtml|xml\",t=\"c|round|floor|ceiling\",n=\"iso_[a-z_]+\",r=\"first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk\",i=\"keys|values\",s=\"children|parent|root|ancestors|node_name|node_type|node_namespace\",o=\"byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|eval|has_content|interpret|is_[a-z_]+|namespacenew\",u=e+t+n+r+i+s+o,a=\"default|exists|if_exists|web_safe\",f=\"data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|now|output_encoding|template_name|url_escaping_charset|vars|version\",l=\"gt|gte|lt|lte|as|in|using\",c=\"true|false\",h=\"encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|attributes\";this.$rules={start:[{token:\"constant.character.entity\",regex:/&[^;]+;/},{token:\"support.function\",regex:\"\\\\?(\"+u+\")\"},{token:\"support.function.deprecated\",regex:\"\\\\?(\"+a+\")\"},{token:\"language.variable\",regex:\"\\\\.(?:\"+f+\")\"},{token:\"constant.language\",regex:\"\\\\b(\"+c+\")\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\b(?:\"+l+\")\\\\b\"},{token:\"entity.other.attribute-name\",regex:h},{token:\"string\",regex:/['\"]/,next:\"qstring\"},{token:function(e){return e.match(\"^[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?$\")?\"constant.numeric\":\"variable\"},regex:/[\\w.+\\-]+/},{token:\"keyword.operator\",regex:\"!|\\\\.|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qstring:[{token:\"constant.character.escape\",regex:'\\\\\\\\[nrtvef\\\\\\\\\"$]'},{token:\"string\",regex:/['\"]/,next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(o,s);var u=function(){i.call(this);var e=\"assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|setting|stop|switch|t|visit\",t=[{token:\"comment\",regex:\"<#--\",next:\"ftl-dcomment\"},{token:\"string.interpolated\",regex:\"\\\\${\",push:\"ftl-start\"},{token:\"keyword.function\",regex:\"</?#(\"+e+\")\",push:\"ftl-start\"},{token:\"keyword.other\",regex:\"</?@[a-zA-Z\\\\.]+\",push:\"ftl-start\"}],n=[{token:\"keyword\",regex:\"/?>\",next:\"pop\"},{token:\"string.interpolated\",regex:\"}\",next:\"pop\"}];for(var r in this.$rules)this.$rules[r].unshift.apply(this.$rules[r],t);this.embedRules(o,\"ftl-\",n,[\"start\"]),this.addRules({\"ftl-dcomment\":[{token:\"comment\",regex:\"-->\",next:\"pop\"},{defaultToken:\"comment\"}]}),this.normalizeRules()};r.inherits(u,i),t.FtlHighlightRules=u}),ace.define(\"ace/mode/ftl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ftl_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ftl_highlight_rules\").FtlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/ftl\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/ftl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-gcode.js",
    "content": "ace.define(\"ace/mode/gcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL\",t=\"PI\",n=\"ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\(.*\\\\)\"},{token:\"comment\",regex:\"([N])([0-9]+)\"},{token:\"string\",regex:\"([G])([0-9]+\\\\.?[0-9]?)\"},{token:\"string\",regex:\"([M])([0-9]+\\\\.?[0-9]?)\"},{token:\"constant.numeric\",regex:\"([-+]?([0-9]*\\\\.?[0-9]+\\\\.?))|(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\"},{token:r,regex:\"[A-Z]\"},{token:\"keyword.operator\",regex:\"EQ|LT|GT|NE|GE|LE|OR|XOR\"},{token:\"paren.lparen\",regex:\"[\\\\[]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.GcodeHighlightRules=s}),ace.define(\"ace/mode/gcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gcode_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gcode_highlight_rules\").GcodeHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/gcode\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/gcode\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-gherkin.js",
    "content": "ace.define(\"ace/mode/gherkin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\",o=function(){var e=[{name:\"en\",labels:\"Feature|Background|Scenario(?: Outline)?|Examples\",keywords:\"Given|When|Then|And|But\"}],t=e.map(function(e){return e.labels}).join(\"|\"),n=e.map(function(e){return e.keywords}).join(\"|\");this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:(?:[1-9]\\\\d*)|(?:0))\"},{token:\"comment\",regex:\"#.*$\"},{token:\"keyword\",regex:\"(?:\"+t+\"):|(?:\"+n+\")\\\\b\"},{token:\"keyword\",regex:\"\\\\*\"},{token:\"string\",regex:'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"text\",regex:\"^\\\\s*(?=@[\\\\w])\",next:[{token:\"text\",regex:\"\\\\s+\"},{token:\"variable.parameter\",regex:\"@[\\\\w]+\"},{token:\"empty\",regex:\"\",next:\"start\"}]},{token:\"comment\",regex:\"<[^>]+>\"},{token:\"comment\",regex:\"\\\\|(?=.)\",next:\"table-item\"},{token:\"comment\",regex:\"\\\\|$\",next:\"start\"}],qqstring3:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],\"table-item\":[{token:\"comment\",regex:/$/,next:\"start\"},{token:\"comment\",regex:/\\|/},{token:\"string\",regex:/\\\\./},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(o,i),t.GherkinHighlightRules=o}),ace.define(\"ace/mode/gherkin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gherkin_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gherkin_highlight_rules\").GherkinHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gherkin\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=\"  \",s=this.getTokenizer().getLineTokens(t,e),o=s.tokens;return console.log(e),t.match(\"[ ]*\\\\|\")&&(r+=\"| \"),o.length&&o[o.length-1].type==\"comment\"?r:(e==\"start\"&&(t.match(\"Scenario:|Feature:|Scenario Outline:|Background:\")?r+=i:t.match(\"(Given|Then).+(:)$|Examples:\")?r+=i:t.match(\"\\\\*.+\")&&(r+=\"* \")),r)}}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/gherkin\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-gitignore.js",
    "content": "ace.define(\"ace/mode/gitignore_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:/^\\s*#.*$/},{token:\"keyword\",regex:/^\\s*!.*$/}]},this.normalizeRules()};s.metaData={fileTypes:[\"gitignore\"],name:\"Gitignore\"},r.inherits(s,i),t.GitignoreHighlightRules=s}),ace.define(\"ace/mode/gitignore\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gitignore_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gitignore_highlight_rules\").GitignoreHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gitignore\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/gitignore\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-glsl.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/glsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,s=function(){var e=\"attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct\",t=\"radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token==\"function\"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s}),ace.define(\"ace/mode/glsl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/glsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./glsl_highlight_rules\").glslHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.$id=\"ace/mode/glsl\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/glsl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-gobstones.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/gobstones_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return\",t=\"False|True\",n=\"Poner|Sacar|Mover|IrAlBorde|VaciarTablero|nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|minDir|maxDir|minColor|maxColor\",r=\"Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste\",s=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n,\"support.type\":r},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{token:\"comment\",regex:\"#.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:True|False)\\\\b\"},{token:\"keyword.operator\",regex:\":=|\\\\.\\\\.|,|;|\\\\|\\\\||\\\\/\\\\/|\\\\+|\\\\-|\\\\^|\\\\*|>|<|>=|=>|==|&&\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GobstonesHighlightRules=o}),ace.define(\"ace/mode/gobstones\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/gobstones_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./gobstones_highlight_rules\").GobstonesHighlightRules,o=function(){i.call(this),this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/gobstones\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/gobstones\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-golang.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var\",t=\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\",n=\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\",r=\"nil|true|false|iota\",s=this.createKeywordMapper({keyword:e,\"constant.language\":r,\"support.function\":n,\"support.type\":t},\"\"),o=\"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g,\"[a-fA-F\\\\d]\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/\"(?:[^\"\\\\]|\\\\.)*?\"/},{token:\"string\",regex:\"`\",next:\"bqstring\"},{token:\"constant.numeric\",regex:\"'(?:[^\\\\'\\ud800-\\udbff]|[\\ud800-\\udbff][\\udc00-\\udfff]|\"+o.replace('\"',\"\")+\")'\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:\"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"},{token:function(e){return e[e.length-1]==\"(\"?[{type:s(e.slice(0,-1))||\"support.function\",value:e.slice(0,-1)},{type:\"paren.lparen\",value:e.slice(-1)}]:s(e)||\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],bqstring:[{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GolangHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./golang_highlight_rules\").GolangHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a,this.$behaviour=new u};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/golang\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/golang\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-graphqlschema.js",
    "content": "ace.define(\"ace/mode/graphqlschema_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"type|interface|union|enum|schema|input|implements|extends|scalar\",t=\"Int|Float|String|ID|Boolean\",n=this.createKeywordMapper({keyword:e,\"storage.type\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}]},this.normalizeRules()};r.inherits(s,i),t.GraphQLSchemaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/graphqlschema\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/graphqlschema_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./graphqlschema_highlight_rules\").GraphQLSchemaHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/graphqlschema\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/graphqlschema\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-groovy.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/groovy_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"qqstring\"},{token:\"string\",regex:\"'''\",next:\"qstring\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\?:|\\\\?\\\\.|\\\\*\\\\.|<=>|=~|==~|\\\\.@|\\\\*\\\\.@|\\\\.&|as|in|is|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"constant.language.escape\",regex:/\\$[\\w\\d]+/},{token:\"constant.language.escape\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"{3,5}',next:\"start\"},{token:\"string\",regex:\".+?\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"string\",regex:\"'{3,5}\",next:\"start\"},{token:\"string\",regex:\".+?\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GroovyHighlightRules=o}),ace.define(\"ace/mode/groovy\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/groovy_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./groovy_highlight_rules\").GroovyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/groovy\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/groovy\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-haml.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=t.instanceVariable={token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},h=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(h,i),t.RubyHighlightRules=h}),ace.define(\"ace/mode/haml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\"),o=s.RubyHighlightRules,u=function(){i.call(this),this.$rules={start:[{token:\"comment.block\",regex:/^\\/$/,next:\"comment\"},{token:\"comment.block\",regex:/^\\-#$/,next:\"comment\"},{token:\"comment.line\",regex:/\\/\\s*.*/},{token:\"comment.line\",regex:/-#\\s*.*/},{token:\"keyword.other.doctype\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},s.qString,s.qqString,s.tString,{token:\"meta.tag.haml\",regex:/(%[\\w:\\-]+)/},{token:\"keyword.attribute-name.class.haml\",regex:/\\.[\\w-]+/},{token:\"keyword.attribute-name.id.haml\",regex:/#[\\w-]+/,next:\"element_class\"},s.constantNumericHex,s.constantNumericFloat,s.constantOtherSymbol,{token:\"text\",regex:/=|-|~/,next:\"embedded_ruby\"}],element_class:[{token:\"keyword.attribute-name.class.haml\",regex:/\\.[\\w-]+/},{token:\"punctuation.section\",regex:/\\{/,next:\"element_attributes\"},s.constantOtherSymbol,{token:\"empty\",regex:\"$|(?!\\\\.|#|\\\\{|\\\\[|=|-|~|\\\\/])\",next:\"start\"}],element_attributes:[s.constantOtherSymbol,s.qString,s.qqString,s.tString,s.constantNumericHex,s.constantNumericFloat,{token:\"punctuation.section\",regex:/$|\\}/,next:\"start\"}],embedded_ruby:[s.constantNumericHex,s.constantNumericFloat,s.instanceVariable,s.qString,s.qqString,s.tString,{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},{token:(new o).getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:[\"keyword\",\"text\",\"text\"],regex:\"(?:do|\\\\{)(?: \\\\|[^|]+\\\\|)?$\",next:\"start\"},{token:[\"text\"],regex:\"^$\",next:\"start\"},{token:[\"text\"],regex:\"^(?!.*\\\\|\\\\s*$)\",next:\"start\"}],comment:[{token:\"comment.block\",regex:/^$/,next:\"start\"},{token:\"comment.block\",regex:/\\s+.*/}]},this.normalizeRules()};r.inherits(u,i),t.HamlHighlightRules=u}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/haml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haml_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haml_highlight_rules\").HamlHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/haml\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/haml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-handlebars.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/handlebars_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function s(e,t){return t.splice(0,3),t.shift()||\"start\"}var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){i.call(this);var e={regex:\"(?={{)\",push:\"handlebars\"};for(var t in this.$rules)this.$rules[t].unshift(e);this.$rules.handlebars=[{token:\"comment.start\",regex:\"{{!--\",push:[{token:\"comment.end\",regex:\"--}}\",next:s},{defaultToken:\"comment\"}]},{token:\"comment.start\",regex:\"{{!\",push:[{token:\"comment.end\",regex:\"}}\",next:s},{defaultToken:\"comment\"}]},{token:\"support.function\",regex:\"{{{\",push:[{token:\"support.function\",regex:\"}}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]},{token:\"storage.type.start\",regex:\"{{[#\\\\^/&]?\",push:[{token:\"storage.type.end\",regex:\"}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]}],this.normalizeRules()};r.inherits(o,i),t.HandlebarsHighlightRules=o}),ace.define(\"ace/mode/behaviour/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour/xml\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour/xml\").XmlBehaviour,s=function(){i.call(this)};r.inherits(s,i),t.HtmlBehaviour=s}),ace.define(\"ace/mode/handlebars\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/handlebars_highlight_rules\",\"ace/mode/behaviour/html\",\"ace/mode/folding/html\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./handlebars_highlight_rules\").HandlebarsHighlightRules,o=e(\"./behaviour/html\").HtmlBehaviour,u=e(\"./folding/html\").FoldMode,a=function(){i.call(this),this.HighlightRules=s,this.$behaviour=new o};r.inherits(a,i),function(){this.blockComment={start:\"{{!--\",end:\"--}}\"},this.$id=\"ace/mode/handlebars\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/handlebars\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-haskell.js",
    "content": "ace.define(\"ace/mode/haskell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.entity.haskell\",\"keyword.operator.function.infix.haskell\",\"punctuation.definition.entity.haskell\"],regex:\"(`)([a-zA-Z_']*?)(`)\",comment:\"In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10]).\"},{token:\"constant.language.unit.haskell\",regex:\"\\\\(\\\\)\"},{token:\"constant.language.empty-list.haskell\",regex:\"\\\\[\\\\]\"},{token:\"keyword.other.haskell\",regex:\"\\\\b(module|signature)\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{include:\"#module_name\"},{include:\"#module_exports\"},{token:\"invalid\",regex:\"[a-z]+\"},{defaultToken:\"meta.declaration.module.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\bclass\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{token:\"support.class.prelude.haskell\",regex:\"\\\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\\\b\"},{token:\"entity.other.inherited-class.haskell\",regex:\"[A-Z][A-Za-z_']*\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{defaultToken:\"meta.declaration.class.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\binstance\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b|$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.declaration.instance.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"import\",push:[{token:\"meta.import.haskell\",regex:\"$|;|^\",next:\"pop\"},{token:\"keyword.other.haskell\",regex:\"qualified|as|hiding\"},{include:\"#module_name\"},{include:\"#module_exports\"},{defaultToken:\"meta.import.haskell\"}]},{token:[\"keyword.other.haskell\",\"meta.deriving.haskell\"],regex:\"(deriving)(\\\\s*\\\\()\",push:[{token:\"meta.deriving.haskell\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.other.inherited-class.haskell\",regex:\"\\\\b[A-Z][a-zA-Z_']*\"},{defaultToken:\"meta.deriving.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\\\b\"},{token:\"keyword.operator.haskell\",regex:\"\\\\binfix[lr]?\\\\b\"},{token:\"keyword.control.haskell\",regex:\"\\\\b(?:do|if|then|else)\\\\b\"},{token:\"constant.numeric.float.haskell\",regex:\"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\b\",comment:\"Floats are always decimal\"},{token:\"constant.numeric.haskell\",regex:\"\\\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\\\b\"},{token:[\"meta.preprocessor.c\",\"punctuation.definition.preprocessor.c\",\"meta.preprocessor.c\"],regex:\"^(\\\\s*)(#)(\\\\s*\\\\w+)\",comment:'In addition to Haskell\\'s \"native\" syntax, GHC permits the C preprocessor to be run on a source file.'},{include:\"#pragma\"},{token:\"punctuation.definition.string.begin.haskell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.haskell\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.haskell\",regex:\"\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&])\"},{token:\"constant.character.escape.octal.haskell\",regex:\"\\\\\\\\o[0-7]+|\\\\\\\\x[0-9A-Fa-f]+|\\\\\\\\[0-9]+\"},{token:\"constant.character.escape.control.haskell\",regex:\"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]\"},{defaultToken:\"string.quoted.double.haskell\"}]},{token:[\"punctuation.definition.string.begin.haskell\",\"string.quoted.single.haskell\",\"constant.character.escape.haskell\",\"constant.character.escape.octal.haskell\",\"constant.character.escape.hexadecimal.haskell\",\"constant.character.escape.control.haskell\",\"punctuation.definition.string.end.haskell\"],regex:\"(')(?:([\\\\ -\\\\[\\\\]-~])|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x[0-9A-Fa-f]+)|(\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(')\"},{token:[\"meta.function.type-declaration.haskell\",\"entity.name.function.haskell\",\"meta.function.type-declaration.haskell\",\"keyword.other.double-colon.haskell\"],regex:\"^(\\\\s*)([a-z_][a-zA-Z0-9_']*|\\\\([|!%$+\\\\-.,=</>]+\\\\))(\\\\s*)(::)\",push:[{token:\"meta.function.type-declaration.haskell\",regex:\"$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.function.type-declaration.haskell\"}]},{token:\"support.constant.haskell\",regex:\"\\\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\\\(\\\\)|\\\\[\\\\])\\\\b\"},{token:\"constant.other.haskell\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{include:\"#comments\"},{token:\"support.function.prelude.haskell\",regex:\"\\\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\\\b\"},{include:\"#infix_op\"},{token:\"keyword.operator.haskell\",regex:\"[|!%$?~+:\\\\-.=</>\\\\\\\\]+\",comment:\"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"}],\"#block_comment\":[{token:\"punctuation.definition.comment.haskell\",regex:\"\\\\{-(?!#)\",push:[{include:\"#block_comment\"},{token:\"punctuation.definition.comment.haskell\",regex:\"-\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.haskell\"}]}],\"#comments\":[{token:\"punctuation.definition.comment.haskell\",regex:\"--.*\",push_:[{token:\"comment.line.double-dash.haskell\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.haskell\"}]},{include:\"#block_comment\"}],\"#infix_op\":[{token:\"entity.name.function.infix.haskell\",regex:\"\\\\([|!%$+:\\\\-.=</>]+\\\\)|\\\\(,+\\\\)\"}],\"#module_exports\":[{token:\"meta.declaration.exports.haskell\",regex:\"\\\\(\",push:[{token:\"meta.declaration.exports.haskell.end\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.name.function.haskell\",regex:\"\\\\b[a-z][a-zA-Z_']*\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][A-Za-z_']*\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"},{include:\"#infix_op\"},{token:\"meta.other.unknown.haskell\",regex:\"\\\\(.*?\\\\)\",comment:\"So named because I don't know what to call this.\"},{defaultToken:\"meta.declaration.exports.haskell.end\"}]}],\"#module_name\":[{token:\"support.other.module.haskell\",regex:\"[A-Z][A-Za-z._']*\"}],\"#pragma\":[{token:\"meta.preprocessor.haskell\",regex:\"\\\\{-#\",push:[{token:\"meta.preprocessor.haskell\",regex:\"#-\\\\}\",next:\"pop\"},{token:\"keyword.other.preprocessor.haskell\",regex:\"\\\\b(?:LANGUAGE|UNPACK|INLINE)\\\\b\"},{defaultToken:\"meta.preprocessor.haskell\"}]}],\"#type_signature\":[{token:[\"meta.class-constraint.haskell\",\"entity.other.inherited-class.haskell\",\"meta.class-constraint.haskell\",\"variable.other.generic-type.haskell\",\"meta.class-constraint.haskell\",\"keyword.other.big-arrow.haskell\"],regex:\"(\\\\(\\\\s*)([A-Z][A-Za-z]*)(\\\\s+)([a-z][A-Za-z_']*)(\\\\)\\\\s*)(=>)\"},{include:\"#pragma\"},{token:\"keyword.other.arrow.haskell\",regex:\"->\"},{token:\"keyword.other.big-arrow.haskell\",regex:\"=>\"},{token:\"support.type.prelude.haskell\",regex:\"\\\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\\\b\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][a-zA-Z0-9_']*\\\\b\"},{token:\"support.constant.unit.haskell\",regex:\"\\\\(\\\\)\"},{include:\"#comments\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"hs\"],keyEquivalent:\"^~H\",name:\"Haskell\",scopeName:\"source.haskell\"},r.inherits(s,i),t.HaskellHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haskell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haskell_highlight_rules\").HaskellHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/haskell\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/haskell\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-haskell_cabal.js",
    "content": "ace.define(\"ace/mode/haskell_cabal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"^\\\\s*--.*$\"},{token:[\"keyword\"],regex:/^(\\s*\\w.*?)(:(?:\\s+|$))/},{token:\"constant.numeric\",regex:/[\\d_]+(?:(?:[\\.\\d_]*)?)/},{token:\"constant.language.boolean\",regex:\"(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"},{token:\"markup.heading\",regex:/^(\\w.*)$/}]}};r.inherits(s,i),t.CabalHighlightRules=s}),ace.define(\"ace/mode/folding/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.isHeading=function(e,t){var n=\"markup.heading\",r=e.getTokens(t)[0];return t==0||r&&r.type.lastIndexOf(n,0)===0},this.getFoldWidget=function(e,t,n){if(this.isHeading(e,n))return\"start\";if(t===\"markbeginend\"&&!/^\\s*$/.test(e.getLine(n))){var r=e.getLength();while(++n<r)if(!/^\\s*$/.test(e.getLine(n)))break;if(n==r||this.isHeading(e,n))return\"end\"}return\"\"},this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(this.isHeading(e,n)){while(++n<o)if(this.isHeading(e,n)){n--;break}a=n;if(a>u)while(a>u&&/^\\s*$/.test(e.getLine(a)))a--;if(a>u){var f=e.getLine(a).length;return new s(u,i,a,f)}}else if(this.getFoldWidget(e,t,n)===\"end\"){var a=n,f=e.getLine(a).length;while(--n>=0)if(this.isHeading(e,n))break;var r=e.getLine(n),i=r.length;return new s(n,i,a,f)}}}.call(o.prototype)}),ace.define(\"ace/mode/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_cabal_highlight_rules\",\"ace/mode/folding/haskell_cabal\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haskell_cabal_highlight_rules\").CabalHighlightRules,o=e(\"./folding/haskell_cabal\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/haskell_cabal\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/haskell_cabal\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-haxe.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/haxe_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std\",t=\"null|true|false\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.HaxeHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haxe\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haxe_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haxe_highlight_rules\").HaxeHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/haxe\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/haxe\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-hjson.js",
    "content": "ace.define(\"ace/mode/hjson_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{include:\"#rootObject\"},{include:\"#value\"}],\"#array\":[{token:\"paren.lparen\",regex:/\\[/,push:[{token:\"paren.rparen\",regex:/\\]/,next:\"pop\"},{include:\"#value\"},{include:\"#comments\"},{token:\"text\",regex:/,|$/},{token:\"invalid.illegal\",regex:/[^\\s\\]]/},{defaultToken:\"array\"}]}],\"#comments\":[{token:[\"comment.punctuation\",\"comment.line\"],regex:/(#)(.*$)/},{token:\"comment.punctuation\",regex:/\\/\\*/,push:[{token:\"comment.punctuation\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block\"}]},{token:[\"comment.punctuation\",\"comment.line\"],regex:/(\\/\\/)(.*$)/}],\"#constant\":[{token:\"constant\",regex:/\\b(?:true|false|null)\\b/}],\"#keyname\":[{token:\"keyword\",regex:/(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*(?=:)/}],\"#mstring\":[{token:\"string\",regex:/'''/,push:[{token:\"string\",regex:/'''/,next:\"pop\"},{defaultToken:\"string\"}]}],\"#number\":[{token:\"constant.numeric\",regex:/-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?/,comment:\"handles integer and decimal numbers\"}],\"#object\":[{token:\"paren.lparen\",regex:/\\{/,push:[{token:\"paren.rparen\",regex:/\\}/,next:\"pop\"},{include:\"#keyname\"},{include:\"#value\"},{token:\"text\",regex:/:/},{token:\"text\",regex:/,/},{defaultToken:\"paren\"}]}],\"#rootObject\":[{token:\"paren\",regex:/(?=\\s*(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*:)/,push:[{token:\"paren.rparen\",regex:/---none---/,next:\"pop\"},{include:\"#keyname\"},{include:\"#value\"},{token:\"text\",regex:/:/},{token:\"text\",regex:/,/},{defaultToken:\"paren\"}]}],\"#string\":[{token:\"string\",regex:/\"/,push:[{token:\"string\",regex:/\"/,next:\"pop\"},{token:\"constant.language.escape\",regex:/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/},{token:\"invalid.illegal\",regex:/\\\\./},{defaultToken:\"string\"}]}],\"#ustring\":[{token:\"string\",regex:/\\b[^:,0-9\\-\\{\\[\\}\\]\\s].*$/}],\"#value\":[{include:\"#constant\"},{include:\"#number\"},{include:\"#string\"},{include:\"#array\"},{include:\"#object\"},{include:\"#comments\"},{include:\"#mstring\"},{include:\"#ustring\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"hjson\"],foldingStartMarker:\"(?x:     # turn on extended mode\\n              ^    # a line beginning with\\n              \\\\s*    # some optional space\\n              [{\\\\[]  # the start of an object or array\\n              (?!    # but not followed by\\n              .*   # whatever\\n              [}\\\\]]  # and the close of an object or array\\n              ,?   # an optional comma\\n              \\\\s*  # some optional space\\n              $    # at the end of the line\\n              )\\n              |    # ...or...\\n              [{\\\\[]  # the start of an object or array\\n              \\\\s*    # some optional space\\n              $    # at the end of the line\\n            )\",foldingStopMarker:\"(?x:   # turn on extended mode\\n             ^    # a line beginning with\\n             \\\\s*  # some optional space\\n             [}\\\\]]  # and the close of an object or array\\n             )\",keyEquivalent:\"^~J\",name:\"Hjson\",scopeName:\"source.hjson\"},r.inherits(s,i),t.HjsonHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/hjson\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/hjson_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./hjson_highlight_rules\").HjsonHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/hjson\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/hjson\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-html.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v});\n                (function() {\n                    ace.require([\"ace/mode/html\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-html_elixir.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/html_elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/elixir_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.eex\",regex:\"<%#\",push:[{token:\"comment.end.eex\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.elixir_tag\",regex:\"<%+(?!>)[-=]?\",push:\"elixir-start\"}],t=[{token:\"support.elixir_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"elixir-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlElixirHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u}),ace.define(\"ace/mode/html_elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_elixir_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/elixir\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_elixir_highlight_rules\").HtmlElixirHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./elixir\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"elixir-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_elixir\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/html_elixir\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-html_ruby.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=t.instanceVariable={token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},h=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(h,i),t.RubyHighlightRules=h}),ace.define(\"ace/mode/html_ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.erb\",regex:\"<%#\",push:[{token:\"comment.end.erb\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.ruby_tag\",regex:\"<%+(?!>)[-=]?\",push:\"ruby-start\"}],t=[{token:\"support.ruby_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"ruby-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlRubyHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/html_ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_ruby_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_ruby_highlight_rules\").HtmlRubyHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./ruby\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"ruby-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_ruby\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/html_ruby\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ini.js",
    "content": "ace.define(\"ace/mode/ini_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(?:[\\\\\\\\0abtrn;#=:]|x[a-fA-F\\\\d]{4})\",o=function(){this.$rules={start:[{token:\"punctuation.definition.comment.ini\",regex:\"#.*\",push_:[{token:\"comment.line.number-sign.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.ini\"}]},{token:\"punctuation.definition.comment.ini\",regex:\";.*\",push_:[{token:\"comment.line.semicolon.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.semicolon.ini\"}]},{token:[\"keyword.other.definition.ini\",\"text\",\"punctuation.separator.key-value.ini\"],regex:\"\\\\b([a-zA-Z0-9_.-]+)\\\\b(\\\\s*)(=)\"},{token:[\"punctuation.definition.entity.ini\",\"constant.section.group-title.ini\",\"punctuation.definition.entity.ini\"],regex:\"^(\\\\[)(.*?)(\\\\])\"},{token:\"punctuation.definition.string.begin.ini\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.ini\",regex:\"'\",next:\"pop\"},{token:\"constant.language.escape\",regex:s},{defaultToken:\"string.quoted.single.ini\"}]},{token:\"punctuation.definition.string.begin.ini\",regex:'\"',push:[{token:\"constant.language.escape\",regex:s},{token:\"punctuation.definition.string.end.ini\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.ini\"}]}]},this.normalizeRules()};o.metaData={fileTypes:[\"ini\",\"conf\"],keyEquivalent:\"^~I\",name:\"Ini\",scopeName:\"source.ini\"},r.inherits(o,i),t.IniHighlightRules=o}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ini_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ini_highlight_rules\").IniHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment=null,this.$id=\"ace/mode/ini\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/ini\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-io.js",
    "content": "ace.define(\"ace/mode/io_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"text\",\"meta.empty-parenthesis.io\"],regex:\"(\\\\()(\\\\))\",comment:\"we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob\"},{token:[\"text\",\"meta.comma-parenthesis.io\"],regex:\"(\\\\,)(\\\\))\",comment:\"We want to do the same for ,) -- Seckar; same as above -- Rob\"},{token:\"keyword.control.io\",regex:\"\\\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\\\b\"},{token:\"punctuation.definition.comment.io\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.io\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"//\",push:[{token:\"comment.line.double-slash.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"#\",push:[{token:\"comment.line.number-sign.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.io\"}]},{token:\"variable.language.io\",regex:\"\\\\b(?:self|sender|target|proto|protos|parent)\\\\b\",comment:\"I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob\"},{token:\"keyword.operator.io\",regex:\"<=|>=|=|:=|\\\\*|\\\\||\\\\|\\\\||\\\\+|-|/|&|&&|>|<|\\\\?|@|@@|\\\\b(?:and|or)\\\\b\"},{token:\"constant.other.io\",regex:\"\\\\bGL[\\\\w_]+\\\\b\"},{token:\"support.class.io\",regex:\"\\\\b[A-Z](?:\\\\w+)?\\\\b\"},{token:\"support.function.io\",regex:\"\\\\b(?:clone|call|init|method|list|vector|block|\\\\w+(?=\\\\s*\\\\())\\\\b\"},{token:\"support.function.open-gl.io\",regex:\"\\\\bgl(?:u|ut)?[A-Z]\\\\w+\\\\b\"},{token:\"punctuation.definition.string.begin.io\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.triple.io\"}]},{token:\"punctuation.definition.string.begin.io\",regex:'\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.io\"}]},{token:\"constant.numeric.io\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"variable.other.global.io\",regex:\"Lobby\\\\b\"},{token:\"constant.language.io\",regex:\"\\\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"io\"],keyEquivalent:\"^~I\",name:\"Io\",scopeName:\"source.io\"},r.inherits(s,i),t.IoHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/io\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/io_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./io_highlight_rules\").IoHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/io\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/io\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jack.js",
    "content": "ace.define(\"ace/mode/jack_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"string\",regex:'\"',next:\"string2\"},{token:\"string\",regex:\"'\",next:\"string1\"},{token:\"constant.numeric\",regex:\"-?0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"(?:0|[-+]?[1-9][0-9]*)\\\\b\"},{token:\"constant.binary\",regex:\"<[0-9A-Fa-f][0-9A-Fa-f](\\\\s+[0-9A-Fa-f][0-9A-Fa-f])*>\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"constant.language.null\",regex:\"null\\\\b\"},{token:\"storage.type\",regex:\"(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\\\b\"},{token:\"keyword\",regex:\"(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\\\b\"},{token:\"language.builtin\",regex:\"(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\\\?|i-any\\\\?|i-collect|i-zip|i-merge|i-each)\\\\b\"},{token:\"comment\",regex:\"--.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"storage.form\",regex:\"@[a-z]+\"},{token:\"constant.other.symbol\",regex:\":+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"variable\",regex:\"[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"keyword.operator\",regex:\"\\\\|\\\\||\\\\^\\\\^|&&|!=|==|<=|<|>=|>|\\\\+|-|\\\\*|\\\\/|\\\\^|\\\\%|\\\\#|\\\\!\"},{token:\"text\",regex:\"\\\\s+\"}],string1:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"'\",next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}],string2:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JackHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jack\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jack_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jack_highlight_rules\").JackHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"--\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jack\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/jack\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jade.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s|$)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{defaultToken:\"support.function\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unquote\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes|yield|export|import|default\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|function|var|void|with|enum|implements|interface|let|package|private|protected|public|static\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/jade_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/scss_highlight_rules\",\"ace/mode/less_highlight_rules\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";function l(e,t){return{token:\"entity.name.function.jade\",regex:\"^\\\\s*\\\\:\"+e,next:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,o=e(\"./scss_highlight_rules\").ScssHighlightRules,u=e(\"./less_highlight_rules\").LessHighlightRules,a=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,f=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={start:[{token:\"keyword.control.import.include.jade\",regex:\"\\\\s*\\\\binclude\\\\b\"},{token:\"keyword.other.doctype.jade\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\//,next:\"comment_block\"},l(\"markdown\",\"markdown-\"),l(\"sass\",\"sass-\"),l(\"less\",\"less-\"),l(\"coffee\",\"coffee-\"),{token:[\"storage.type.function.jade\",\"entity.name.function.jade\",\"punctuation.definition.parameters.begin.jade\",\"variable.parameter.function.jade\",\"punctuation.definition.parameters.end.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)(\\\\s*\\\\()(.*?)(\\\\))\"},{token:[\"storage.type.function.jade\",\"entity.name.function.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)\"},{token:\"source.js.embedded.jade\",regex:\"^\\\\s*(?:-|=|!=)\",next:\"js-start\"},{token:\"string.interpolated.jade\",regex:\"[#!]\\\\{[^\\\\}]+\\\\}\"},{token:\"meta.tag.any.jade\",regex:/^\\s*(?!\\w+:)(?:[\\w-]+|(?=\\.|#)])/,next:\"tag_single\"},{token:\"suport.type.attribute.id.jade\",regex:\"#\\\\w+\"},{token:\"suport.type.attribute.class.jade\",regex:\"\\\\.\\\\w+\"},{token:\"punctuation\",regex:\"\\\\s*(?:\\\\()\",next:\"tag_attributes\"}],comment_block:[{regex:/^\\s*(?:\\/\\/)?/,onMatch:function(e,t,n){return e.length<=n[1]?e.slice(-1)==\"/\"?(n[1]=e.length-2,this.next=\"\",\"comment\"):(n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}],tag_single:[{token:\"entity.other.attribute-name.class.jade\",regex:\"\\\\.[\\\\w-]+\"},{token:\"entity.other.attribute-name.id.jade\",regex:\"#[\\\\w-]+\"},{token:[\"text\",\"punctuation\"],regex:\"($)|((?!\\\\.|#|=|-))\",next:\"start\"}],tag_attributes:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"entity.other.attribute-name.jade\",\"punctuation\"],regex:\"([a-zA-Z:\\\\.-]+)(=)?\",next:\"attribute_strings\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],attribute_strings:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:\"(?=\\\\S)\",next:\"tag_attributes\"}],qqstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"tag_attributes\"}],qstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"tag_attributes\"}]},this.embedRules(f,\"js-\",[{token:\"text\",regex:\".$\",next:\"start\"}])};r.inherits(c,i),t.JadeHighlightRules=c}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/jade\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jade_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jade_highlight_rules\").JadeHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/jade\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/jade\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-java.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/java\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/java\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/java\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-javascript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/javascript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-json.js",
    "content": "ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"text\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./json_highlight_rules\").JsonHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/json_worker\",\"JsonWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/json\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/json\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jsoniq.js",
    "content": "ace.define(\"ace/mode/xquery/jsoniq_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function o(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(s)return s(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return o(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var s=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)o(i[u]);return o(i[0])}({\"/node_modules/xqlint/lib/lexers/JSONiqTokenizer.js\":[function(e,t,n){var r=n.JSONiqTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 80:f(80);break;case 94:f(94);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 143:f(143);break;case 150:f(150);break;case 163:f(163);break;case 183:f(183);break;case 189:f(189);break;case 214:f(214);break;case 224:f(224);break;case 225:f(225);break;case 241:f(241);break;case 242:f(242);break;case 251:f(251);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 17:f(17);break;case 68:f(68);break;case 71:f(71);break;case 72:f(72);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 91:f(91);break;case 92:f(92);break;case 101:f(101);break;case 103:f(103);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 111:f(111);break;case 116:f(116);break;case 117:f(117);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 127:f(127);break;case 129:f(129);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 151:f(151);break;case 157:f(157);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 168:f(168);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 180:f(180);break;case 182:f(182);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 216:f(216);break;case 217:f(217);break;case 218:f(218);break;case 222:f(222);break;case 227:f(227);break;case 233:f(233);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 248:f(248);break;case 252:f(252);break;case 254:f(254);break;case 258:f(258);break;case 264:f(264);break;case 268:f(268);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 260:f(260);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 28:f(28);break;case 68:f(68);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 92:f(92);break;case 103:f(103);break;case 107:f(107);break;case 111:f(111);break;case 116:f(116);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 218:f(218);break;case 222:f(222);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 264:f(264);break;case 268:f(268);break;case 71:f(71);break;case 72:f(72);break;case 80:f(80);break;case 91:f(91);break;case 94:f(94);break;case 101:f(101);break;case 106:f(106);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 117:f(117);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 127:f(127);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 143:f(143);break;case 150:f(150);break;case 151:f(151);break;case 157:f(157);break;case 163:f(163);break;case 168:f(168);break;case 180:f(180);break;case 182:f(182);break;case 183:f(183);break;case 189:f(189);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 214:f(214);break;case 216:f(216);break;case 217:f(217);break;case 224:f(224);break;case 225:f(225);break;case 227:f(227);break;case 233:f(233);break;case 241:f(241);break;case 242:f(242);break;case 248:f(248);break;case 251:f(251);break;case 254:f(254);break;case 258:f(258);break;case 260:f(260);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=30)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 58:f(58);break;case 57:f(57);break;case 59:f(59);break;case 43:f(43);break;case 45:f(45);break;case 44:f(44);break;case 37:f(37);break;case 41:f(41);break;case 277:f(277);break;case 274:f(274);break;case 42:f(42);break;case 46:f(46);break;case 52:f(52);break;case 65:f(65);break;case 66:f(66);break;case 49:f(49);break;case 51:f(51);break;case 56:f(56);break;case 54:f(54);break;case 36:f(36);break;case 276:f(276);break;case 40:f(40);break;case 5:f(5);break;case 4:f(4);break;case 6:f(6);break;case 15:f(15);break;case 16:f(16);break;case 18:f(18);break;case 19:f(19);break;case 20:f(20);break;case 8:f(8);break;case 9:f(9);break;case 7:f(7);break;case 35:f(35);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 61:f(61);break;case 53:f(53);break;case 29:f(29);break;case 60:f(60);break;case 37:f(37);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 25:f(25);break;case 9:f(9);break;case 10:f(10);break;case 58:f(58);break;case 57:f(57);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;default:f(35)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 23:f(23);break;case 27:f(27);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 22:f(22);break;case 26:f(26);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 14:f(14);break;case 67:f(67);break;default:f(35)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 12:f(12);break;case 50:f(50);break;default:f(35)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 13:f(13);break;case 62:f(62);break;case 63:f(63);break;default:f(35)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 11:f(11);break;case 38:f(38);break;case 39:f(39);break;default:f(35)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 55:f(55);break;case 44:f(44);break;case 32:f(32);break;default:f(35)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(6);switch(y){case 33:f(33);break;case 34:f(34);break;case 55:f(55);break;case 44:f(44);break;default:f(35)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(5);switch(y){case 3:f(3);break;case 2:f(2);break;case 1:f(1);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 21:f(21);break;case 31:f(31);break;case 23:f(23);break;case 24:f(24);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<279;i+=32){var s=i,o=(i>>5)*2066+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,37,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37,37,37,37,37,37,37,37,37,37,37,37,31,31,37,37,37,37,37,37,37,66,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,37,31,37,31,31,37],r.INITIAL=[1,2,49155,57348,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,17408,19288,17439,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19074,36169,17439,36866,17466,36890,36866,22314,19105,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22182,19288,19121,36866,17466,18345,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19273,19552,19304,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19332,17423,19363,36866,17466,17537,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,18614,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19391,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19427,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36154,19288,19457,36866,17466,17740,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22780,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22375,22197,18469,36866,17466,36890,36866,21991,24018,22987,17556,17575,22288,17486,17509,17525,18373,21331,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,19485,19501,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19537,22390,19568,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19596,19611,19457,36866,17466,36890,36866,18246,19627,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22242,20553,19457,36866,17466,36890,36866,18648,30477,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36472,19288,19457,36866,17466,17809,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,21770,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19643,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19672,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20538,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,17975,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22345,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19726,19742,21529,24035,23112,26225,23511,27749,27397,24035,34360,24035,24036,23114,35166,23114,23114,19758,23511,35247,23511,23511,28447,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,19821,23511,23511,23511,23511,23512,19441,36539,24035,24035,24035,24035,19846,19869,23114,23114,23114,28618,32187,19892,23511,23511,23511,34585,20402,36647,24035,24035,24036,23114,33757,23114,23114,23029,20271,23511,27070,23511,23511,30562,24035,24035,29274,26576,23114,23114,31118,23036,29695,23511,23511,32431,23634,30821,24035,23110,19913,23114,23467,31261,23261,34299,19932,24035,32609,19965,35389,19984,27689,19830,29391,29337,20041,22643,35619,33728,20062,20121,20166,35100,26145,20211,23008,19876,20208,20227,25670,20132,26578,27685,20141,20243,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36094,19288,19457,36866,17466,21724,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22735,19552,20287,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22750,19288,21529,24035,23112,28056,23511,29483,28756,24035,24035,24035,24036,23114,23114,23114,23114,20327,23511,23511,23511,23511,31156,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,20371,23511,23511,23511,23511,27443,20395,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,29457,29700,23511,23511,23511,23511,33444,20402,24035,24035,24035,24036,23114,23114,23114,23114,28350,20421,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,20447,20475,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20523,22257,20569,20783,21715,17603,20699,20837,20614,20630,21149,20670,21405,17486,17509,17525,18373,19179,20695,20716,20732,20755,19194,18042,21641,20592,20779,20598,21412,17470,17591,20896,17468,17619,20799,20700,21031,20744,20699,20828,18075,21259,20581,20853,18048,20868,20884,17756,17784,17800,17825,17854,21171,21200,20931,20947,21378,20955,20971,18086,20645,21002,20986,18178,17960,18012,18381,18064,29176,21044,21438,21018,21122,21393,21060,21844,21094,20654,17493,18150,18166,18214,25967,20763,21799,21110,21830,21138,21246,21301,18336,18361,21165,21187,20812,21216,21232,21287,21317,18553,21347,21363,21428,21454,21271,21483,21499,21515,21575,21467,18712,21591,21633,21078,18189,18198,20679,21657,21701,21074,21687,21740,21756,21786,21815,21860,21876,21892,21946,21962,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36457,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,36813,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,21981,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,22151,22007,18884,17900,17922,17944,18178,17960,18012,18381,18064,27898,17884,18890,17906,17928,22042,25022,18130,36931,36963,17493,18150,18166,22070,22112,25026,18134,36935,18262,18278,18294,18320,18336,18361,22142,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36109,19288,18469,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22167,19288,19457,36866,17466,17768,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22227,36487,22273,36866,17466,36890,36866,19316,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18749,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,22304,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19580,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22330,19089,19457,36866,17466,18721,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22765,19347,19457,36866,17466,36890,36866,18114,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34541,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,22540,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29908,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22561,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,23837,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22584,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36442,19288,21605,24035,23112,28137,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,31568,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22690,19288,19457,36866,17466,36890,36866,21991,27584,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,22659,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22360,19552,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22675,22811,19457,36866,17466,36890,36866,19133,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22827,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36064,19288,22865,22881,32031,22897,22913,22956,29939,24035,24035,24035,23003,23114,23114,23114,23024,22420,23511,23511,23511,23052,29116,23073,29268,24035,25563,26915,23106,23131,23114,23114,23159,23181,23197,23248,23511,23511,23282,23305,22493,32364,24035,33472,30138,26325,31770,33508,27345,33667,23114,23321,23473,23351,35793,36576,23511,23375,22500,24145,24035,29197,20192,24533,23440,23114,19017,23459,22839,23489,23510,23511,33563,23528,32076,25389,24035,26576,23561,23583,23114,32683,22516,23622,23655,23511,23634,35456,37144,23110,23683,34153,20499,32513,25824,23705,24035,24035,23111,23114,19874,27078,33263,19830,24035,23112,19872,27741,23266,24036,23114,30243,20507,32241,20150,31862,27464,35108,23727,23007,35895,34953,26578,27685,20141,24569,31691,19787,33967,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36427,19552,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,27027,26576,23114,23114,23114,31471,23756,22468,23511,23511,23511,34687,23772,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,23788,24035,24035,24035,21559,23828,23114,23114,23114,25086,22839,23853,23511,23511,23511,23876,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,31761,23909,23953,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36049,19288,21605,30825,23112,23987,23511,24003,31001,27617,24034,24035,24036,24052,24089,23114,23114,22420,24109,24168,23511,23511,29116,24188,27609,20017,29516,24035,26576,24222,19968,23114,24252,33811,22468,24270,33587,23511,24320,27443,22493,24035,24035,24035,24035,24339,23113,23114,23114,23114,28128,28618,29700,23511,23511,23511,28276,34564,20402,24035,24035,32929,24036,23114,23114,23114,24357,23029,22839,23511,23511,23511,24377,25645,24035,34112,24035,26576,23114,26643,23114,32683,22516,23511,25638,23511,23711,24035,24395,27809,23114,24414,20499,24432,30917,23628,24035,30680,23111,23114,30233,27078,25748,24452,24035,23112,19872,27741,23266,24036,23114,24475,19829,26577,26597,26154,24519,24556,24596,23007,20046,20132,26578,24634,20141,24569,31691,24679,24727,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36412,19288,21605,19943,34861,32618,26027,29483,32016,32050,36233,24776,35574,24801,24819,32671,31289,22420,24868,24886,20087,26849,29116,19803,24035,24035,24035,36228,26576,23114,23114,23114,24981,33811,22468,23511,23511,23511,29028,27443,22493,24923,27965,24035,24035,32797,24946,23443,23114,23114,29636,24997,22849,28252,23511,23511,23511,25042,25110,24035,24035,34085,24036,25133,23114,23114,25152,23029,22839,25169,23511,36764,23511,25645,30403,24035,25186,26576,31806,24093,25212,32683,22516,32713,26245,34293,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,32406,23111,23114,28676,30944,27689,25234,24035,23112,19872,37063,23266,24036,23114,30243,20379,26100,29218,20211,30105,25257,25284,23007,20046,20132,26578,27685,20141,24569,24834,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36034,19288,21671,25314,25072,25330,25346,25362,29939,29951,35288,29984,23812,27216,25405,25424,30456,22584,26292,25461,25480,31592,29116,25516,34963,25545,27007,25579,33937,25614,25661,25686,34872,25702,25718,25734,25769,25795,25811,25840,22493,26533,25856,24035,25876,30763,27481,25909,23114,28987,25936,25954,29700,25983,23511,31412,26043,26063,22568,29241,29592,26116,31216,35383,26170,34783,26194,26221,22839,26241,26261,22477,26283,26308,27306,31035,24655,26576,29854,33386,26341,32683,22516,32153,30926,26361,19996,26381,35463,26397,26424,34646,26478,35605,31386,26494,35567,31964,22940,23689,25218,30309,32289,19830,33605,23112,32109,27733,27084,24496,35886,35221,26525,36602,26549,26558,26574,26594,26613,26629,26666,26700,26578,27685,23740,24285,31691,26733,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36397,19552,18991,25887,28117,32618,26776,29483,29939,26802,24035,24035,24036,28664,23114,23114,23114,22420,30297,23511,23511,23511,29116,19803,24035,24035,24035,25559,26576,23114,23114,23114,30525,33811,22468,23511,23511,23511,28725,27443,22493,24035,24035,27249,24035,24035,23113,23114,23114,26827,23114,28618,29700,23511,23511,26845,23511,34564,20402,24035,24035,26979,24036,23114,23114,23114,24974,23029,22839,23511,23511,23511,26865,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,33305,24035,25598,23114,19874,34253,27689,19830,24035,23112,19872,27741,23266,24036,23114,26886,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,26931,24569,26439,26947,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36019,19288,26995,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,27043,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,27061,23511,23511,23511,23511,23512,24694,24035,24035,29978,24035,24035,23113,23114,33114,23114,23114,30010,29700,23511,35913,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,27155,26576,23114,23114,30447,23036,29695,23511,23511,30935,20099,24152,25529,27100,34461,27121,22625,29156,26009,27137,30422,31903,31655,28870,27171,32439,31731,19830,27232,22612,27265,26786,25494,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,20342,27288,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,27322,27339,28020,27361,27382,29939,24035,24035,32581,24036,23114,23114,23114,27425,22420,23511,23511,23511,27442,28306,19803,24035,24035,24035,24035,26710,23114,23114,23114,23114,32261,22468,23511,23511,23511,23511,35719,24694,29510,24035,24035,24035,24035,26717,23114,23114,23114,23114,28618,32217,23511,23511,23511,23511,34585,20402,24035,24035,24035,27459,23114,23114,23114,36252,23029,20271,23511,23511,23511,28840,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,27480,34483,28401,29761,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36382,19288,21605,27497,27517,28504,28898,27569,29939,29401,27600,27323,27633,19025,27662,23114,27705,22420,20483,27721,23511,27765,28306,19803,23540,24035,24610,27781,27805,26650,23114,28573,32990,25920,22468,26870,23511,26684,34262,34737,25057,34622,24035,24035,23971,24206,27825,27847,23114,23114,27865,27885,35766,27914,23511,23511,32766,32844,27934,28795,26909,27955,26092,27988,25445,28005,28036,28052,21965,23511,32196,19897,28072,28102,36534,21541,23801,28153,28180,28197,28221,23036,32695,28251,28268,28292,23667,34825,23930,24580,28322,28344,31627,28366,25996,23628,24035,24035,23111,23114,19874,27078,27689,35625,33477,33359,27674,28393,33992,24036,23114,30243,19829,28417,28433,28463,23008,19876,20208,23007,20046,20132,28489,28520,20141,24569,31691,19787,28550,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,28589,24035,24035,24035,24035,28608,23114,23114,23114,23114,28618,20431,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36004,19288,28634,31951,28565,28702,28718,28741,32544,20175,28792,32086,20105,28811,29059,29862,28856,22420,28886,30354,23359,28922,28306,28952,23888,26320,36506,24035,29331,28968,36609,23114,29003,31661,27061,30649,27366,23511,29023,27918,24694,24035,24035,23893,33094,30867,23113,23114,23114,29044,34184,30010,29700,23511,23511,29081,29102,34585,20402,27789,24035,24035,24036,23114,29132,23114,23114,23029,20271,23511,29153,23511,23511,30562,30174,24035,24035,27409,25438,23114,23114,29172,36668,31332,23511,23511,29192,30144,24035,23110,30203,23114,23467,31544,23261,23628,24035,22545,23111,23114,29213,27078,27689,29234,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,29257,23008,19876,20208,28768,29290,29320,34776,29353,20141,22435,29378,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36367,19288,21605,34616,19006,32618,31497,31507,36216,20184,24035,34393,29424,34668,23114,34900,29447,22420,30360,23511,37089,29473,28306,19803,29499,24398,24035,24035,26576,31799,29532,29550,23114,33811,22468,32298,29571,31184,23511,23512,37127,36628,29589,24035,24135,24035,23113,29608,23114,27831,29634,28618,29652,30037,23511,24172,29671,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,29555,29690,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,29719,24035,23110,29738,23114,23467,34035,29756,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,29777,34364,28181,30243,29799,31920,27272,27185,23008,31126,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29828,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35989,19552,19687,35139,28649,29878,29894,29924,29939,23224,23085,31969,24036,35173,24752,24803,23114,22420,31190,30318,24870,23511,28306,29967,23967,24035,24035,24035,26576,3e4,23114,23114,23114,33811,22468,30026,23511,23511,23511,23512,26078,24035,24035,24035,30053,37137,30071,23114,23114,33368,25136,28618,30723,23511,23511,37096,31356,34585,20402,30092,30127,30160,24036,35740,30219,24960,30259,23029,20271,34042,30285,30342,30376,23289,30055,30400,30419,30438,32640,33532,33514,30472,18792,26267,24323,23057,30493,23639,20008,30196,33188,30517,20075,23511,30541,23628,30578,33928,28776,30594,19874,30610,30637,19830,30677,27646,19872,25779,23266,23232,35016,30243,30696,29812,30712,30746,27206,30779,30807,23007,33395,20132,26578,27685,31703,22928,31691,19787,31079,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36352,19288,23335,30841,26131,30888,30904,30986,29939,24035,24704,31017,20025,23114,26178,31051,31095,22420,23511,22524,31142,31172,28534,31206,35497,25196,24035,28592,24503,23114,31239,31285,23114,31305,31321,31355,31372,31407,23511,30556,24694,24035,27501,19805,24035,24035,23113,23114,31428,24066,23114,28618,29700,23511,31837,18809,23511,34585,31448,24035,24035,24035,23090,23114,23114,23114,23114,31619,35038,23511,23511,23511,23511,33714,24035,33085,24035,29431,23114,31467,23114,23143,31487,23511,31523,23511,35195,36783,24035,30111,23567,23114,23467,31543,31560,23628,24035,24035,23111,23114,19874,30953,31584,34508,24035,31608,26345,37055,23266,31643,31677,31719,31747,31786,31822,26898,23008,19876,31859,23007,20046,20132,26578,27685,20141,24569,31691,31878,31936,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35974,19288,21605,27972,35663,31985,29655,32001,36715,24785,25893,23545,31912,19853,19916,25938,24540,22420,31843,29674,29573,32735,28936,19803,24035,24035,32047,24035,26576,23114,23114,27544,23114,33811,22468,23511,23511,32161,23511,23512,32066,24035,33313,24035,24035,24035,23113,27426,32102,23114,23114,28618,32125,23511,32144,23511,23511,33569,20402,24035,27045,24035,24036,23114,23114,28328,23114,30076,32177,23511,23511,30384,23511,30562,24035,24035,24035,26576,23114,23114,23114,23595,32212,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,22635,25753,32233,32257,32277,19829,26577,26597,20211,23008,19876,32322,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,32352,35285,32380,34196,33016,30661,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,32404,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,32422,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,30269,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,19949,24035,23111,32455,19874,31269,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36337,19552,19209,21617,26509,32475,32491,32529,29939,24035,32578,25241,32597,23114,32634,29007,32656,22420,23511,32729,26365,32751,28306,32788,32882,24035,24035,32813,36727,23114,33182,23114,27553,33235,32829,23511,32706,23511,28906,28377,26962,32881,32904,32898,32920,24035,32953,23114,32977,26408,23114,28164,33006,23511,33039,35774,23511,32306,20402,33076,30872,24035,24036,25408,33110,28979,23114,23029,20271,35835,33130,33054,23511,30562,33148,24035,24035,33167,23114,23114,33775,23036,20459,23511,23511,25464,24646,24035,24035,22446,23114,23114,25627,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,31391,33204,33220,33251,33287,26577,26597,20211,33329,19876,33345,23007,20046,20132,26578,27685,28473,22599,31691,33411,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35959,19288,21907,27243,29843,32618,33427,31507,29939,33460,34090,24035,24036,33493,24416,33530,23114,22420,33548,24379,33585,23511,28306,19803,33603,24202,24035,24035,25593,33749,28205,23114,23114,32388,22468,33853,33060,23511,23511,31339,33621,24035,24035,34397,24618,30757,33663,23114,23114,33683,35684,28618,26678,23511,23511,32506,33699,34585,20402,24035,32562,26973,24036,23114,23114,33377,33773,23029,20271,23511,23511,30621,23511,23860,24035,33791,21553,26576,36558,23114,33809,23036,32857,26047,23511,33827,23634,24035,24035,23110,23114,23114,31252,23511,33845,23628,24035,24459,23111,23114,33869,27078,30791,29783,24035,24742,19872,33895,23266,26462,19710,33879,33919,26577,26597,24123,24930,21930,20208,30501,33953,25268,20252,33983,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36322,19552,23390,33634,35154,34008,34024,34058,35544,34106,34128,26811,33151,34144,34169,34212,23114,34228,34244,34278,34315,23511,34331,34347,34380,34413,24035,24663,26576,34429,34453,34477,29534,33811,22468,34499,34524,34557,25170,34580,35436,23937,34601,24035,24341,26453,23113,34638,34662,23114,24236,28618,34684,34703,34729,23511,35352,34753,34799,24035,34815,32558,34848,34888,35814,34923,23165,29137,23606,30326,30730,34939,33023,30562,36848,34979,24035,24847,34996,23114,23114,35032,29695,35054,23511,23511,35091,33296,35124,24296,28235,24361,36276,32772,35067,35189,27301,30855,24852,22452,35211,35237,35316,25500,35270,23405,24304,35304,29362,24036,23114,35332,19829,26577,26597,20211,23008,19876,20208,35368,28823,23920,32336,35405,20141,24569,31691,35421,35479,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35944,22795,21605,33647,35877,35513,30962,35529,34073,35557,24035,24035,20405,31107,23114,23114,23114,35590,34713,23511,23511,23511,35641,19803,29408,32937,25298,24035,35657,23115,27849,24760,35679,26205,22468,23511,35700,24907,24901,35075,31893,34980,24035,24035,24035,24035,23113,35009,23114,23114,23114,28618,35716,30970,23511,23511,23511,34585,23215,24035,24035,24035,24036,35735,23114,23114,23114,27105,35756,35790,23511,23511,23511,35254,35446,24035,24035,31223,35809,23114,23114,23036,36825,35830,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,31031,20355,19872,33903,23266,24036,23114,28686,19829,26577,26597,20211,23008,23424,20208,24711,31065,24486,26578,27685,20141,19773,35851,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36307,19288,21605,35494,19702,32618,33437,31507,29939,25117,24035,27939,24036,27869,23114,26829,23114,22420,23494,23511,33132,23511,28306,19803,24035,34832,24035,24035,26576,23114,25153,23114,23114,33811,22468,23511,23511,35911,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35929,19288,21605,25860,23112,36185,23511,36201,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,26748,24035,24035,24035,24035,24035,36249,23114,23114,23114,23114,28618,28835,23511,23511,23511,23511,34585,20402,24035,27151,24035,26760,23114,27989,23114,23114,36268,20271,23511,24436,23511,29703,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36292,19288,21605,36503,21922,32618,34534,31507,36522,24035,33793,24035,35864,23114,23114,36555,23417,22420,23511,23511,36574,26020,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,36592,24035,24035,36625,24035,24035,23113,23114,32961,23114,23114,29618,29700,23511,29086,23511,23511,34585,20402,36644,24035,24035,24036,29740,23114,23114,23114,29065,36663,31527,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,31451,23112,36684,23511,36700,29939,24035,24035,24035,30185,23114,23114,23114,27526,22420,23511,23511,23511,32865,28306,19803,36743,24035,27017,24035,26576,27535,23114,31432,23114,33811,22468,33271,23511,32128,23511,23512,24694,24035,27196,24035,24035,24035,23113,32459,23114,23114,23114,28618,29700,33829,36762,23511,23511,34585,20402,24035,36746,24035,29722,23114,23114,34437,23114,34907,20271,23511,23511,18801,23511,23206,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,36837,24035,24035,33739,23114,23114,25094,23511,23261,23628,24035,36780,23111,24073,19874,27078,35344,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22720,19288,36799,36866,17466,36890,36864,21991,22211,22987,17556,17575,22288,17486,17509,17525,18373,17631,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22705,19288,19457,36866,17466,36890,36866,19375,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36124,19288,36951,36866,17466,36890,36866,21991,22404,22987,17556,17575,22288,17486,17509,17525,18373,18567,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36979,36995,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18027,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,21529,24035,23112,23033,23511,31507,25377,24035,24035,24035,24036,23114,23114,23114,23114,37040,23511,23511,23511,23511,28086,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,37079,23511,23511,23511,23511,23512,34766,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,37112,37160,18469,36866,17466,36890,36866,17656,37174,22987,17556,17575,22288,17486,17509,17525,18373,18537,22984,17553,17572,22285,18780,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,53264,18,49172,57366,24,8192,28,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,0,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,127011,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,3002368,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2576384,2215936,2215936,2215936,2416640,2424832,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2543616,2215936,2215936,2215936,2215936,2215936,2629632,2215936,2617344,2215936,2215936,2215936,2215936,2215936,2215936,2691072,2215936,2707456,2215936,2715648,2215936,2723840,2764800,2215936,2215936,2797568,2215936,2822144,2215936,2215936,2854912,2215936,2215936,2215936,2912256,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,180224,0,0,2174976,0,0,2170880,2617344,2170880,2170880,2170880,2170880,2170880,2170880,2691072,2170880,2707456,2170880,2715648,2170880,2723840,2764800,2170880,2170880,2797568,2170880,2170880,2797568,2170880,2822144,2170880,2170880,2854912,2170880,2170880,2170880,2912256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2609152,2215936,2215936,2215936,2215936,2215936,2215936,2654208,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,184599,280,0,2174976,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,544,0,546,0,0,2179072,0,0,0,552,0,0,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2158592,2158592,2232320,2232320,0,2240512,2240512,0,0,0,644,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2711552,2170880,2170880,2170880,2170880,2170880,2760704,2768896,2789376,2813952,2170880,2170880,2170880,2875392,2904064,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,167936,0,0,0,0,2174976,0,0,2215936,2215936,2514944,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2592768,2215936,2215936,2215936,2215936,2215936,2215936,2215936,32768,0,0,0,0,0,2174976,32768,0,2633728,2215936,2215936,2215936,2215936,2215936,2215936,2711552,2215936,2215936,2215936,2215936,2215936,2760704,2768896,2789376,2813952,2215936,2215936,2215936,2875392,2904064,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,65819,2215936,2215936,3031040,2215936,3055616,2215936,2215936,2215936,2215936,3092480,2215936,2215936,3125248,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2170880,2170880,2494464,2170880,2170880,0,0,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2641920,2170880,2170880,2170880,2699264,2170880,2727936,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3026944,2170880,2170880,3063808,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,2379776,2215936,2523136,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2596864,2215936,2621440,2215936,2215936,2641920,2215936,2215936,0,0,0,0,0,0,2179072,548,0,0,0,0,287,2170880,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2215936,2215936,2699264,2215936,2727936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2879488,2215936,2916352,2215936,2215936,0,0,0,0,188416,0,2179072,0,0,0,0,0,287,2170880,0,2171019,2171019,2171019,2400395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3031179,2171019,3055755,2171019,2171019,2215936,3133440,2215936,2215936,2215936,3162112,2215936,2215936,3182592,3186688,2215936,0,0,0,0,0,0,0,0,0,0,2171019,2171019,2171019,2171019,2171019,2171019,2523275,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2597003,2171019,2621579,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,4337664,28,2170880,2170880,2170880,2629632,2170880,2170880,2170880,2170880,2719744,2744320,2170880,2170880,2170880,2834432,2838528,2170880,2908160,2170880,2170880,2936832,2215936,2215936,2215936,2215936,2719744,2744320,2215936,2215936,2215936,2834432,2838528,2215936,2908160,2215936,2215936,2936832,2215936,2215936,2985984,2215936,2994176,2215936,2215936,3014656,2215936,3059712,3076096,3088384,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2445312,2215936,2465792,2473984,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171019,2171019,2494603,2171019,2171019,2215936,2215936,2215936,3215360,0,0,0,0,0,0,0,0,0,0,0,0,0,2379776,2170880,2170880,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3016168,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,124,124,0,128,128,2170880,2170880,2170880,3215360,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2535424,2539520,2170880,2170880,2588672,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,0,2387968,2392064,2170880,2170880,2433024,2170880,2170880,2170880,3170304,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,2215936,2215936,2215936,2535424,2539520,2215936,2215936,2588672,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,136,0,2215936,2215936,2920448,2215936,2215936,2215936,2990080,2215936,2215936,2215936,2215936,3051520,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3108864,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3026944,2215936,2215936,3063808,2215936,2215936,3112960,2215936,2215936,2215936,3170304,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2537049,2539520,2170880,2170880,2588672,2170880,2170880,2170880,1508,2170880,2170880,2170880,1512,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2686976,2748416,2170880,2170880,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3121152,2170880,2170880,3145728,3158016,3166208,2170880,2420736,2428928,2170880,2478080,2170880,2170880,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2646016,2670592,0,0,3145728,3158016,3166208,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,0,2170880,2215936,2215936,2580480,2215936,2605056,2637824,2215936,2215936,2686976,2748416,2215936,2215936,2215936,2924544,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,286,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2387968,2392064,2170880,2170880,2433024,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,1625,2170880,2170880,2580480,2170880,2605056,2637824,2170880,647,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2686976,0,0,2748416,2170880,2170880,0,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,0,0,28,28,2170880,3141632,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2170880,2420736,2428928,2752512,2756608,0,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2170880,3141632,2170880,2170880,2490368,2215936,2490368,2215936,2215936,2215936,2547712,2555904,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,245760,0,3129344,2170880,2170880,2490368,2170880,2170880,2170880,0,0,2547712,2555904,2170880,2170880,2170880,0,0,0,0,0,0,0,0,0,2220032,0,0,45056,0,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2158592,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1482,97,97,97,97,97,97,97,1354,97,97,97,97,97,97,97,97,1148,97,97,97,97,97,97,97,2584576,2170880,2170880,1512,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2170880,2850816,2170880,2170880,2170880,3022848,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,287,2170880,2215936,3022848,2170880,2441216,2170880,2527232,0,0,2170880,2600960,2170880,0,2850816,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2596864,2170880,2621440,2170880,2170880,2641920,2170880,2170880,2170880,3022848,2170880,2519040,2170880,2170880,2170880,2170880,2170880,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2170880,2170880,2170880,2514944,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2519040,0,2024,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,2024,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,2170880,2215936,2650112,2965504,2215936,0,0,2170880,2650112,2965504,2170880,2551808,2170880,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,141,45,45,67,67,67,67,67,224,67,67,238,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,0,2551808,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2977792,2977792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53264,18,49172,57366,24,8192,29,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,49172,0,0,0,24,24,24,0,28,28,28,28,102432,127,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,0,0,0,2220032,110630,0,0,0,114730,106539,136,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,4256099,4256099,24,24,0,28,28,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,0,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,2170880,2547712,2555904,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2215936,2215936,543,543,545,545,0,0,2179072,0,550,551,551,0,287,2171166,2171166,18,0,0,0,0,0,0,0,0,2220032,0,0,645,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,149,2584576,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2519040,0,0,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,0,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,53264,18,49172,57366,24,155648,28,102432,155648,155687,114730,106539,0,0,155648,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,0,0,2220032,0,94208,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,208896,18,278528,24,24,0,28,28,53264,18,159765,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,0,28,139394,28,28,102432,131,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,32768,53264,0,18,18,24,24,0,28,28,0,546,0,0,2183168,0,0,552,832,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2170880,2170880,2170880,2170880,2654208,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,1084,0,1088,0,1092,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,937,0,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,644,0,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,826,0,828,0,0,2183168,0,0,830,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2170880,2170880,2633728,2170880,2170880,2170880,2170880,2170880,2170880,2711552,2170880,2170880,2170880,2170880,2170880,2760704,53264,18,49172,57366,24,8192,28,172066,172032,110630,172066,106539,0,0,172032,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,102432,0,98304,0,0,2220032,110630,0,0,0,0,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,45056,0,0,0,53264,18,49172,57366,25,8192,30,102432,0,110630,114730,106539,0,0,176219,53264,18,18,49172,0,57366,0,124,124,124,0,128,128,128,128,102432,128,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,546,0,0,2183168,0,65536,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2646016,2670592,2752512,2756608,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,65536,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,143,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,67,1824,67,1826,67,67,67,67,17,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,120,121,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,67,67,37139,37139,24853,24853,0,0,2179072,548,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,45,45,2033,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,0,369,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,978,0,546,70179,0,2183168,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1013,67,67,67,67,67,67,67,67,67,67,473,67,67,67,67,483,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,97,97,1359,97,97,97,67,67,1584,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,1659,45,45,45,45,45,45,45,45,45,1667,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,45,1668,45,45,45,45,67,67,1694,67,67,67,67,67,67,67,67,67,67,67,67,67,774,67,67,1713,97,97,97,97,97,97,97,0,97,97,1723,97,97,97,97,0,45,45,45,45,45,45,1538,45,45,45,45,45,1559,45,45,1561,45,45,45,45,45,45,45,687,45,45,45,45,45,45,45,45,448,45,45,45,45,45,45,67,67,67,67,1771,1772,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,97,67,67,67,67,67,1821,67,67,67,67,67,67,1827,67,67,67,0,0,0,0,0,0,97,97,1614,97,97,97,97,97,603,97,97,605,97,97,608,97,97,97,97,0,1532,45,45,45,45,45,45,45,45,45,45,450,45,45,45,45,67,67,97,97,97,97,97,97,0,0,1839,97,97,97,97,0,0,97,97,97,97,97,45,45,45,45,45,45,45,67,67,67,67,67,67,67,97,1883,97,1885,97,0,1888,0,97,97,0,97,97,1848,97,97,97,97,1852,45,45,45,45,45,45,45,384,391,45,45,45,45,45,45,45,385,45,45,45,45,45,45,45,45,1237,45,45,45,45,45,45,67,0,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,1951,45,45,45,45,45,45,45,45,67,67,67,67,1963,97,2023,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,1994,67,1995,67,67,67,67,67,67,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,0,0,0,0,2220032,110630,0,0,0,114730,106539,137,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2793472,2805760,2170880,2830336,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,67,67,37139,37139,24853,24853,0,0,281,549,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,2031,2032,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1769,67,0,546,70179,549,549,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,1858,45,641,0,0,0,0,41606,926,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,456,67,0,0,0,1313,0,0,0,1096,1319,0,0,0,0,97,97,97,97,97,97,97,97,1110,97,97,97,97,67,67,67,67,1301,1476,0,0,0,0,1307,1478,0,0,0,0,0,0,0,0,97,97,97,97,1486,97,1487,97,1313,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,67,67,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,97,45,1853,45,1855,45,45,45,45,53264,18,49172,57366,26,8192,31,102432,0,110630,114730,106539,0,0,225368,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,18,49172,163840,57366,0,24,24,229376,0,28,28,28,229376,102432,0,0,0,0,2220167,110630,0,0,0,114730,106539,0,2171019,2171019,2171019,2171019,2592907,2171019,2171019,2171019,2171019,2633867,2171019,2171019,2171019,2171019,2171019,2171019,2654347,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3117195,2171019,2171019,2171019,2171019,2240641,0,0,0,0,0,0,0,0,368,0,140,2171019,2171019,2171019,2416779,2424971,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2617483,2171019,2171019,2642059,2171019,2171019,2171019,2699403,2171019,2728075,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3215499,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2171019,2822283,2171019,2171019,2855051,2171019,2171019,2171019,2912395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3002507,2171019,2171019,2215936,2215936,2494464,2215936,2215936,2215936,2171166,2171166,2416926,2425118,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2576670,2171166,2617630,2171166,2171166,2171166,2171166,2171166,2171166,2691358,2171166,2707742,2171166,2715934,2171166,2724126,2765086,2171166,2171166,2797854,2171166,2822430,2171166,2171166,2855198,2171166,2171166,2171166,2912542,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2793758,2806046,2171166,2830622,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3109150,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2543902,2171166,2171166,2171166,2171166,2171166,2629918,2793611,2805899,2171019,2830475,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,0,546,0,0,2183168,0,0,552,0,2171166,2171166,2171166,2400542,2171166,2171166,2171166,0,2171166,2171166,2171166,0,2171166,2920734,2171166,2171166,2171166,2990366,2171166,2171166,2171166,2171166,3117342,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,0,53264,0,18,18,4329472,2232445,0,2240641,4337664,2711691,2171019,2171019,2171019,2171019,2171019,2760843,2769035,2789515,2814091,2171019,2171019,2171019,2875531,2904203,2171019,2171019,3092619,2171019,2171019,3125387,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3199115,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2793472,2805760,2215936,2830336,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2494464,2170880,2170880,2171166,2171166,2634014,2171166,2171166,2171166,2171166,2171166,2171166,2711838,2171166,2171166,2171166,2171166,2171166,2760990,2769182,2789662,2814238,2171166,2171166,2171166,2875678,2904350,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3199262,2171166,0,0,0,0,0,0,0,0,0,2379915,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2445451,2171019,2465931,2474123,2171019,2171019,3113099,2171019,2171019,3133579,2171019,2171019,2171019,3162251,2171019,2171019,3182731,3186827,2171019,2379776,2879627,2171019,2916491,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3027083,2171019,2171019,3063947,2699550,2171166,2728222,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2879774,2171166,2916638,2171166,2171166,2171166,2171166,2171166,2609438,2171166,2171166,2171166,2171166,2171166,2171166,2654494,2171166,2171166,2171166,2171166,2171166,2445598,2171166,2466078,2474270,2171166,2171166,2171166,2171166,2171166,2171166,2523422,2171019,2437259,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2543755,2171019,2171019,2171019,2584715,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2908299,2171019,2171019,2936971,2171019,2171019,2986123,2171019,2994315,2171019,2171019,3014795,2171019,3059851,3076235,3088523,2171166,2171166,2986270,2171166,2994462,2171166,2171166,3014942,2171166,3059998,3076382,3088670,2171166,2171166,2171166,2171166,2171166,2171166,3027230,2171166,2171166,3064094,2171166,2171166,3113246,2171166,2171166,3133726,2506891,2171019,2171019,2171019,2535563,2539659,2171019,2171019,2588811,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2691211,2171019,2707595,2171019,2715787,2171019,2723979,2764939,2171019,2171019,2797707,2215936,2215936,3170304,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2453790,2457886,2171166,2171166,2171166,2486558,2171166,2171166,2507038,2171166,2171166,2171166,2535710,2539806,2171166,2171166,2588958,2171166,2171166,2171166,2171166,2515230,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2593054,2171166,2171166,2171166,2171166,3051806,2171166,2171166,2171166,2171166,2171166,2171166,3170590,0,2388107,2392203,2171019,2171019,2433163,2171019,2461835,2171019,2171019,2171019,2510987,2171019,2171019,2171019,2171019,2580619,2171019,2605195,2637963,2171019,2171019,2171019,2920587,2171019,2171019,2171019,2990219,2171019,2171019,2171019,2171019,3051659,2171019,2171019,2171019,2453643,2457739,2171019,2171019,2171019,2171019,2171019,2171019,2515083,2171019,2171019,2171019,2171019,2646155,2670731,2752651,2756747,2846859,2961547,2171019,2998411,2171019,3010699,2171019,2171019,2687115,2748555,2171019,2171019,2171019,2924683,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3121291,2171019,2171019,2171019,3170443,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,3145867,3158155,3166347,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,553,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2388254,2392350,2171166,2171166,2433310,2171166,2461982,2171166,2171166,2171166,2511134,2171166,2171166,0,2171166,2171166,2580766,2171166,2605342,2638110,2171166,2171166,2171166,2171166,3031326,2171166,3055902,2171166,2171166,2171166,2171166,3092766,2171166,2171166,3125534,2171166,2171166,2171166,3162398,2171166,2171166,3182878,3186974,2171166,0,0,0,2171019,2171019,2171019,2171019,3109003,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2171166,2687262,0,0,2748702,2171166,2171166,0,2171166,2924830,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2597150,2171166,2621726,2171166,2171166,2642206,2171166,2171166,2171166,2171166,3121438,2171166,2171166,3146014,3158302,3166494,2171019,2420875,2429067,2171019,2478219,2171019,2171019,2171019,2171019,2547851,2556043,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3129483,2215936,2171019,3141771,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2171166,2421022,2429214,2171166,2478366,2171166,2171166,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2646302,2670878,0,0,0,0,37,110630,0,0,0,114730,106539,0,45,45,45,45,45,1405,1406,45,45,45,45,1409,45,45,45,45,45,1415,45,45,45,45,45,45,45,45,45,45,1238,45,45,45,45,67,2752798,2756894,0,2847006,2961694,2171166,2998558,2171166,3010846,2171166,2171166,2171166,3141918,2171019,2171019,2490507,3129344,2171166,2171166,2490654,2171166,2171166,2171166,0,0,2547998,2556190,2171166,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,167,45,45,45,45,185,187,45,45,198,45,45,0,2171166,2171166,2171166,2171166,2171166,2171166,3129630,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2576523,2171019,2171019,2171019,2171019,2171019,2609291,2171019,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2171166,2171166,2494750,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,147,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,3002654,2171166,2171166,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2175257,0,0,2584862,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2171166,2171019,2441355,2171019,2527371,2171019,2601099,2171019,2850955,2171019,2171019,2171019,3022987,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,69632,287,2170880,2215936,3022848,2171166,2441502,2171166,2527518,0,0,2171166,2601246,2171166,0,2851102,2171166,2171166,2171166,2171166,2720030,2744606,2171166,2171166,2171166,2834718,2838814,2171166,2908446,2171166,2171166,2937118,3023134,2171019,2519179,2171019,2171019,2171019,2171019,2171019,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,3215646,0,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2486411,2171019,2171019,2171019,2629771,2171019,2171019,2171019,2171019,2719883,2744459,2171019,2171019,2171019,2834571,2838667,2171019,2519326,0,0,2171166,2171166,0,2171166,2171166,2171166,2396299,2171019,2171019,2171019,2171019,3018891,2396160,2215936,2215936,2215936,2215936,3018752,2396446,0,0,2171166,2171166,2171166,2171166,3019038,2171019,2650251,2965643,2171019,2215936,2650112,2965504,2215936,0,0,2171166,2650398,2965790,2171166,2551947,2171019,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,144,45,45,67,67,67,67,67,228,67,67,67,67,67,67,67,67,67,1929,97,97,97,97,0,0,0,2552094,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2977931,2977792,2978078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,1321,97,131072,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,28,28,0,140,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2584576,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,140,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3002368,2170880,2170880,2215936,2215936,2494464,2215936,2215936,2215936,2215936,2215936,2215936,3215360,544,0,0,0,544,0,546,0,0,0,546,0,0,2183168,0,0,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,0,2170880,2170880,2170880,0,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,552,0,0,0,552,0,287,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,644,0,2215936,2215936,3170304,544,0,546,0,552,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,140,0,0,53264,18,49172,57366,24,8192,28,102432,249856,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,151640,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640,53264,18,49172,57366,24,8192,28,102432,253952,110630,114730,106539,0,0,32856,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,192512,53264,18,18,49172,0,57366,0,2232445,184320,2232445,0,2240641,2240641,184320,2240641,102432,0,0,0,221184,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3108864,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,0,0,0,45056,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,127,127,53264,18,49172,258071,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,204800,53264,18,49172,57366,24,27,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,33,0,33,33,33,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,0,0,0,0,0,0,0,0,0,0,139,2170880,2170880,2170880,2416640,67,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,0,0,97,97,0,97,97,97,45,2030,45,45,45,45,67,1573,67,67,67,67,67,67,67,67,67,67,67,1699,67,67,67,67,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,97,97,97,1355,97,97,97,1358,97,97,97,641,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,45,1187,45,45,45,45,45,0,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,592,97,97,97,97,97,97,97,97,97,97,1531,45,45,45,45,45,45,45,45,45,45,45,45,1680,45,45,45,641,0,924,0,925,41606,0,0,0,0,45,45,45,45,45,45,1186,45,45,45,45,45,45,67,67,37139,37139,24853,24853,0,70179,282,0,0,65820,65820,369,287,97,0,0,97,97,0,97,2028,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1767,67,67,67,0,0,0,0,0,0,1612,97,97,97,97,97,97,0,1785,97,97,97,97,97,97,0,0,97,97,97,97,1790,97,0,0,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,241664,2387968,2392064,2170880,2170880,2433024,53264,19,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,274432,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,270336,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,1134711,53264,18,49172,57366,24,8192,28,102432,0,1126440,1126440,1126440,0,0,1126400,53264,18,49172,57366,24,8192,28,102432,36,110630,114730,106539,0,0,217088,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,94,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,96,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,24666,53264,18,18,49172,0,57366,0,24,24,24,126,28,28,28,28,102432,53264,122,123,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,2170880,2170880,4256099,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1319,0,0,0,0,97,97,97,97,97,97,97,1109,97,97,97,97,1113,132,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,146,150,45,45,45,45,45,175,45,180,45,186,45,189,45,45,203,67,256,67,67,270,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,293,297,97,97,97,97,97,322,97,327,97,333,97,0,0,97,2026,0,2027,97,97,45,45,45,45,45,45,67,67,67,1685,67,67,67,67,67,67,67,1690,67,336,97,97,350,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,2424832,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2617344,2170880,45,439,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,525,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,97,622,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,1527,369,648,45,45,45,45,45,45,45,45,45,659,45,45,45,45,408,45,45,45,45,45,45,45,45,45,45,45,1239,45,45,45,67,729,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,762,67,746,67,67,67,67,67,67,67,67,67,759,67,67,67,67,0,0,0,1477,0,1086,0,0,0,1479,0,1090,67,67,796,67,67,799,67,67,67,67,67,67,67,67,67,67,67,67,1291,67,67,67,811,67,67,67,67,67,816,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,833,97,97,97,97,97,97,97,97,1380,0,0,0,45,45,45,45,45,1185,45,45,45,45,45,45,45,386,45,45,45,45,45,45,45,45,1810,45,45,45,45,45,45,67,97,97,844,97,97,97,97,97,97,97,97,97,857,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,45,45,97,97,97,894,97,97,897,97,97,97,97,97,97,97,97,97,0,0,0,1382,45,45,45,97,909,97,97,97,97,97,914,97,97,97,97,97,97,97,923,67,67,1079,67,67,67,67,67,37689,1085,25403,1089,66365,1093,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,148,1114,97,97,97,97,97,97,1122,97,97,97,97,97,97,97,97,97,606,97,97,97,97,97,97,97,97,97,97,1173,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,145,45,45,67,67,67,67,67,1762,67,67,67,1766,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,1934,67,67,1255,67,67,67,67,67,67,67,67,67,67,67,67,67,1035,67,67,67,67,67,67,1297,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,97,1327,97,97,97,97,97,97,97,97,97,97,97,97,33344,97,97,97,1335,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,97,97,1377,97,97,97,97,97,97,0,1179,0,45,45,45,45,670,45,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,67,67,1438,67,67,1442,67,67,67,67,67,67,67,67,67,67,67,67,1592,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,0,0,1305,0,0,0,0,0,1311,0,0,0,1317,0,0,0,0,0,0,0,97,97,1322,97,97,1491,97,97,1495,97,97,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,1551,45,1553,45,1504,97,97,97,97,97,97,97,97,97,97,1513,97,97,97,97,0,45,45,45,45,1536,45,45,45,45,1540,45,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,67,67,67,1700,67,67,67,97,1648,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,1541,0,97,97,97,97,0,1940,0,97,97,97,97,97,97,45,45,2011,45,45,45,2015,67,67,2017,67,67,67,2021,97,67,67,812,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,97,97,910,97,97,97,97,97,97,97,97,97,97,97,923,0,0,0,45,45,45,45,1184,45,45,45,45,1188,45,45,45,45,1414,45,45,45,1417,45,1419,45,45,45,45,45,443,45,45,45,45,45,45,453,45,45,67,67,67,67,1244,67,67,67,67,1248,67,67,67,67,67,67,67,0,37139,24853,0,0,0,282,41098,65820,97,1324,97,97,97,97,1328,97,97,97,97,97,97,97,97,97,0,0,930,45,45,45,45,97,97,97,97,1378,97,97,97,97,0,1179,0,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,45,975,45,45,45,45,67,67,1923,67,1925,67,67,1927,67,97,97,97,97,97,0,0,97,97,97,97,1985,45,45,45,45,45,45,1560,45,45,45,45,45,45,45,45,45,946,45,45,950,45,45,45,0,97,97,97,1939,0,0,0,97,1943,97,97,1945,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,990,45,45,45,67,257,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,337,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,370,2170880,2170880,2170880,2416640,401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,459,461,67,67,67,67,67,67,67,67,475,67,480,67,67,67,67,67,67,1054,67,67,67,67,67,67,67,67,67,67,1698,67,67,67,67,67,484,67,67,487,67,67,67,67,67,67,67,67,67,67,67,67,67,1459,67,67,97,556,558,97,97,97,97,97,97,97,97,572,97,577,97,97,0,0,1896,97,97,97,97,97,97,1903,45,45,45,45,983,45,45,45,45,988,45,45,45,45,45,45,1195,45,45,45,45,45,45,45,45,45,45,1549,45,45,45,45,45,581,97,97,584,97,97,97,97,97,97,97,97,97,97,97,97,97,1153,97,97,369,0,45,45,45,45,45,45,45,45,45,45,45,662,45,45,45,684,45,45,45,45,45,45,45,45,45,45,45,45,1004,45,45,45,67,67,67,749,67,67,67,67,67,67,67,67,67,761,67,67,67,67,67,67,1068,67,67,67,1071,67,67,67,67,1076,794,795,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,544,97,97,97,97,847,97,97,97,97,97,97,97,97,97,859,97,0,0,2025,97,20480,97,97,2029,45,45,45,45,45,45,67,67,67,1575,67,67,67,67,67,67,67,67,67,1775,67,67,67,97,97,97,97,892,893,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1515,97,993,994,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,992,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,67,1607,67,67,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,97,97,596,97,45,1556,1557,45,45,45,45,45,45,45,45,45,45,45,45,45,45,696,45,1596,1597,67,67,67,67,67,67,67,67,67,67,67,67,67,67,499,67,97,97,97,1621,97,97,97,97,97,97,97,97,97,97,97,97,97,1346,97,97,97,97,1740,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,45,45,67,97,97,97,97,97,97,1836,0,97,97,97,97,97,0,0,97,97,97,1984,97,45,45,45,45,45,45,1808,45,45,45,45,45,45,45,45,67,739,67,67,67,67,67,744,45,45,1909,45,45,45,45,45,45,45,67,1917,67,1918,67,67,67,67,67,67,1247,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,1922,67,67,67,67,67,67,67,97,1930,97,1931,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,1576,67,67,67,67,1580,67,67,0,97,97,1938,97,0,0,0,97,97,97,97,97,97,45,45,45,699,45,45,45,704,45,45,45,45,45,45,45,45,987,45,45,45,45,45,45,45,67,67,97,97,97,97,0,0,97,97,97,2006,97,97,97,97,0,45,1533,45,45,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,722,723,45,45,45,45,45,45,2045,67,67,67,2047,0,0,97,97,97,2051,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,409,45,45,45,45,45,45,45,45,45,1957,45,67,67,67,67,67,1836,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,45,67,67,67,1761,67,67,67,1764,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,45,45,420,45,45,422,45,45,425,45,45,45,45,45,45,45,387,45,45,45,45,397,45,45,45,67,460,67,67,67,67,67,67,67,67,67,67,67,67,67,67,515,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,97,0,2039,97,97,97,97,97,45,45,45,45,1426,45,45,45,67,67,67,67,67,67,67,67,67,1689,67,67,67,97,557,97,97,97,97,97,97,97,97,97,97,97,97,97,97,612,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,896,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,97,45,939,45,45,45,45,943,45,45,45,45,45,45,45,45,45,45,1916,67,67,67,67,67,45,67,67,67,67,67,67,67,1015,67,67,67,67,1019,67,67,67,67,67,67,1271,67,67,67,67,67,67,1277,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,67,67,67,804,67,67,67,67,67,1077,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2543616,2170880,2170880,2170880,2170880,2170880,2629632,1169,97,1171,97,97,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,936,45,45,67,67,214,67,220,67,67,233,67,243,67,248,67,67,67,67,67,67,1298,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,1617,97,0,0,0,45,45,45,1183,45,45,45,45,45,45,45,45,45,393,45,45,45,45,45,45,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,1281,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,776,1323,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,907,45,1412,45,45,45,45,45,45,45,1418,45,45,45,45,45,45,686,45,45,45,690,45,45,695,45,45,67,67,67,67,67,1465,67,67,67,67,67,67,67,67,67,67,67,97,97,97,1712,97,97,97,97,1741,97,97,97,45,45,45,45,45,45,45,45,45,426,45,45,45,45,45,45,67,67,67,1924,67,67,67,67,67,97,97,97,97,97,0,0,97,97,1983,97,97,45,45,1987,45,1988,45,0,97,97,97,97,0,0,0,1942,97,97,97,97,97,45,45,45,700,45,45,45,45,45,45,45,45,45,45,711,45,45,153,45,45,166,45,176,45,181,45,45,188,191,196,45,204,255,258,263,67,271,67,67,0,37139,24853,0,0,0,282,41098,65820,97,97,97,294,97,300,97,97,313,97,323,97,328,97,97,335,338,343,97,351,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,41098,0,140,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,45,1411,67,67,486,67,67,67,67,67,67,67,67,67,67,67,67,67,1251,67,67,501,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,67,67,67,67,1443,67,67,67,67,67,67,67,67,67,67,1263,67,67,67,67,67,97,97,583,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1526,97,598,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,0,97,97,1796,97,97,97,97,97,97,97,45,45,45,45,45,1744,45,45,45,369,0,651,45,653,45,654,45,656,45,45,45,660,45,45,45,45,1558,45,45,45,45,45,45,45,45,1566,45,45,681,45,683,45,45,45,45,45,45,45,45,691,692,694,45,45,45,716,45,45,45,45,45,45,45,45,45,45,45,45,709,45,45,712,45,714,45,45,45,718,45,45,45,45,45,45,45,726,45,45,45,733,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,747,67,67,67,67,67,67,67,67,67,760,67,67,67,0,0,0,0,0,0,97,1613,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,67,764,67,67,67,67,768,67,770,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,1977,67,778,779,781,67,67,67,67,67,67,788,789,67,67,792,793,67,67,67,813,67,67,67,67,67,67,67,67,67,824,37689,544,25403,546,70179,0,0,66365,66365,552,0,836,97,838,97,839,97,841,97,97,97,845,97,97,97,97,97,97,97,97,97,858,97,97,0,1728,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,1802,45,97,97,862,97,97,97,97,866,97,868,97,97,97,97,97,97,0,0,97,97,1788,97,97,97,0,0,97,97,876,877,879,97,97,97,97,97,97,886,887,97,97,890,891,97,97,97,97,97,97,97,899,97,97,97,903,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,1646,97,97,97,97,911,97,97,97,97,97,97,97,97,97,922,923,45,955,45,957,45,45,45,45,45,45,45,45,45,45,45,45,195,45,45,45,45,45,981,982,45,45,45,45,45,45,989,45,45,45,45,45,170,45,45,45,45,45,45,45,45,45,45,411,45,45,45,45,45,67,1023,67,67,67,67,67,67,1031,67,1033,67,67,67,67,67,67,67,817,819,67,67,67,67,67,37689,544,67,1065,67,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,1078,67,67,1081,1082,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2437406,2171166,2171166,97,1115,97,1117,97,97,97,97,97,97,1125,97,1127,97,97,97,0,97,97,97,0,97,97,97,97,1644,97,97,97,0,97,97,97,0,97,97,1642,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,97,316,97,97,97,97,97,97,97,97,97,1159,97,97,97,97,97,97,97,97,97,97,97,97,97,1502,97,97,97,97,97,1172,97,97,1175,1176,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,935,45,45,45,1233,45,45,45,1236,45,45,45,45,45,45,45,67,67,67,67,67,67,1873,67,67,45,45,1218,45,45,45,1223,45,45,45,45,45,45,45,1230,45,45,67,67,215,219,222,67,230,67,67,244,246,249,67,67,67,67,67,67,1882,97,97,97,97,0,0,0,97,97,97,97,97,97,45,1904,45,1905,45,67,67,67,67,67,1258,67,1260,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,67,67,67,1283,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,67,818,67,67,67,67,67,67,37689,544,67,67,1295,67,67,67,67,67,67,67,67,0,0,0,0,0,0,2174976,0,0,97,97,97,1326,97,97,97,97,97,97,97,97,97,97,97,97,97,1514,97,97,97,97,97,1338,97,1340,97,97,97,97,97,97,97,97,97,97,97,1500,97,97,1503,97,1363,97,97,97,97,97,97,97,1370,97,97,97,97,97,97,97,563,97,97,97,97,97,97,578,97,1375,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,685,45,45,45,45,45,45,45,45,45,45,45,1003,45,45,45,45,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1778,97,97,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,609,97,97,97,45,1542,45,45,45,45,45,45,45,1548,45,45,45,45,45,1554,45,1570,1571,45,67,67,67,67,67,67,1578,67,67,67,67,67,67,67,1055,67,67,67,67,67,1061,67,67,1582,67,67,67,67,67,67,67,1588,67,67,67,67,67,1594,67,67,67,67,67,97,2038,0,97,97,97,97,97,2044,45,45,45,995,45,45,45,45,1e3,45,45,45,45,45,45,45,1809,45,1811,45,45,45,45,45,67,1610,1611,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,1618,1647,1649,97,97,97,1652,97,1654,1655,97,0,45,45,45,1658,45,45,67,67,216,67,67,67,67,234,67,67,67,67,252,254,1845,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,945,45,947,45,45,45,45,45,67,67,67,67,67,1881,97,97,97,97,97,0,0,0,97,97,97,97,97,1902,45,45,45,45,45,45,1908,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1921,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,0,97,1937,97,97,1940,0,0,97,97,97,97,97,97,1947,1948,1949,45,45,45,1952,45,1954,45,45,45,45,1959,1960,1961,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,67,67,67,757,67,67,67,67,67,67,1964,67,1966,67,67,67,67,1971,1972,1973,97,0,0,0,97,97,1104,97,97,97,97,97,97,97,97,97,97,884,97,97,97,889,97,97,1978,97,0,0,1981,97,97,97,97,45,45,45,45,45,45,736,45,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,45,67,67,67,67,0,2049,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,933,45,45,45,45,1234,45,45,45,45,45,45,45,45,45,45,67,97,97,288,97,97,97,97,97,97,317,97,97,97,97,97,97,0,0,97,1787,97,97,97,97,0,0,45,45,378,45,45,45,45,45,390,45,45,45,45,45,45,45,424,45,45,45,431,433,45,45,45,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,67,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,97,97,632,97,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,97,97,855,97,97,97,97,67,97,97,97,97,97,97,1837,0,97,97,97,97,97,0,0,0,1897,97,97,97,97,97,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,97,2010,45,45,45,45,45,45,2016,67,67,67,67,67,67,2022,45,2046,67,67,67,0,0,2050,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,932,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,45,45,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,701,702,45,45,705,706,45,45,45,45,45,45,703,45,45,45,45,45,45,45,45,45,719,45,45,45,45,45,725,45,45,45,369,649,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1216,25403,546,70179,0,0,66365,66365,552,834,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,97,1799,97,97,45,45,45,1569,45,45,45,1572,67,67,67,67,67,67,67,67,67,67,67,0,0,0,1306,0,67,67,67,1598,67,67,67,67,67,67,67,67,1606,67,67,1609,97,97,97,1650,97,97,1653,97,97,97,0,45,45,1657,45,45,45,1206,45,45,45,45,45,45,45,45,45,45,45,45,1421,45,45,45,1703,67,67,67,67,67,67,67,67,67,67,97,97,1711,97,97,0,1895,0,97,97,97,97,97,97,45,45,45,45,45,958,45,960,45,45,45,45,45,45,45,45,1913,45,45,1915,67,67,67,67,67,67,67,466,67,67,67,67,67,67,481,67,45,1749,45,45,45,45,45,45,45,45,1755,45,45,45,45,45,173,45,45,45,45,45,45,45,45,45,45,974,45,45,45,45,45,67,67,67,67,67,1773,67,67,67,67,67,67,67,97,97,97,97,1886,0,0,0,97,97,67,2035,2036,67,67,97,0,0,97,2041,2042,97,97,45,45,45,45,1662,45,45,45,45,45,45,45,45,45,45,45,1397,45,45,45,45,151,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,437,205,45,67,67,67,218,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,67,97,97,97,97,298,97,97,97,97,97,97,97,97,97,97,97,870,97,97,97,97,97,97,97,97,352,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,365,0,41098,0,140,45,45,45,45,45,1427,45,45,67,67,67,67,67,67,67,1435,520,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1037,617,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,923,45,1232,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,1919,67,1759,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1021,45,154,45,162,45,45,45,45,45,45,45,45,45,45,45,45,964,45,45,45,206,45,67,67,67,67,221,67,229,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,67,67,755,67,67,67,67,67,67,67,67,785,67,67,67,67,67,67,67,67,802,67,67,67,807,67,67,67,97,97,97,97,353,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,366,0,0,0,140,2170880,2170880,2170880,2416640,402,45,45,45,45,45,45,45,410,45,45,45,45,45,45,45,674,45,45,45,45,45,45,45,45,389,45,394,45,45,398,45,45,45,45,441,45,45,45,45,45,447,45,45,45,454,45,45,67,67,67,67,67,67,67,67,67,67,67,1768,67,67,67,67,67,488,67,67,67,67,67,67,67,496,67,67,67,67,67,67,67,1774,67,67,67,67,67,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,97,97,67,67,523,67,67,527,67,67,67,67,67,533,67,67,67,540,97,97,97,585,97,97,97,97,97,97,97,593,97,97,97,97,97,97,1784,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,0,0,18,18,24,24,0,28,28,97,97,620,97,97,624,97,97,97,97,97,630,97,97,97,637,713,45,45,45,45,45,45,721,45,45,45,45,45,45,45,45,1197,45,45,45,45,45,45,45,45,730,732,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1581,67,45,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,67,775,67,67,67,67,1066,67,67,67,67,67,67,67,67,67,67,67,67,479,67,67,67,67,67,67,1080,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,287,0,0,0,287,0,2379776,2170880,2170880,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,97,920,97,97,0,0,0,0,45,1181,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,45,1219,45,45,45,45,45,45,1226,45,45,45,45,45,45,959,45,45,45,45,45,45,45,45,45,184,45,45,45,45,202,45,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1266,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1279,67,67,67,67,67,272,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,67,1286,67,67,67,67,67,67,67,67,67,1293,67,67,67,1296,67,67,67,67,67,67,67,0,0,0,0,0,281,94,0,0,97,97,97,1366,97,97,97,97,97,97,97,97,97,1373,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,0,97,1376,97,97,97,97,97,97,97,0,0,0,45,45,1384,45,45,67,208,67,67,67,67,67,67,237,67,67,67,67,67,67,67,1069,1070,67,67,67,67,67,67,67,0,37140,24854,0,0,0,0,41098,65821,45,1423,45,45,45,45,45,45,67,67,1431,67,67,67,67,67,67,67,1083,37689,0,25403,0,66365,0,0,0,1436,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1830,67,1452,1453,67,67,67,67,1456,67,67,67,67,67,67,67,67,67,771,67,67,67,67,67,67,1461,67,67,67,1464,67,1466,67,67,67,67,67,67,1470,67,67,67,67,67,67,1587,67,67,67,67,67,67,67,67,1595,1489,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1129,97,1505,1506,97,97,97,97,1510,97,97,97,97,97,97,97,97,97,1163,1164,97,97,97,97,97,1516,97,97,97,1519,97,1521,97,97,97,97,97,97,1525,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,67,67,67,1600,67,67,67,67,67,67,67,67,67,67,67,1301,0,0,0,1307,97,97,1620,97,97,97,97,97,97,97,1627,97,97,97,97,97,97,913,97,97,97,97,919,97,97,97,0,97,97,97,1781,97,97,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,1792,1860,45,1862,1863,45,1865,45,67,67,67,67,67,67,67,67,1875,67,1877,1878,67,1880,67,97,97,97,97,97,1887,0,1889,97,97,18,0,139621,0,0,0,0,0,0,364,237568,0,367,0,97,1893,0,0,0,97,1898,1899,97,1901,97,45,45,45,45,45,2014,45,67,67,67,67,67,2020,67,97,1989,45,1990,45,45,45,67,67,67,67,67,67,1996,67,1997,67,67,67,67,67,273,67,0,37139,24853,0,0,0,0,41098,65820,67,67,97,97,97,97,0,0,97,97,2005,0,97,2007,97,97,18,0,139621,0,0,0,642,0,133,364,0,0,367,41606,0,97,97,2056,2057,0,2059,45,67,0,97,45,67,0,97,45,45,67,209,67,67,67,223,67,67,67,67,67,67,67,67,67,786,67,67,67,791,67,67,45,45,940,45,45,45,45,45,45,45,45,45,45,45,45,45,45,727,45,45,67,67,67,67,67,67,67,67,1016,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,142,45,45,67,210,67,67,67,225,67,67,239,67,67,67,250,67,67,67,67,67,464,67,67,67,67,67,476,67,67,67,67,67,67,67,1709,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,1843,0,67,259,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,289,97,97,97,303,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,97,339,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,0,358,0,0,0,0,0,0,41098,0,140,45,45,45,45,45,1953,45,1955,45,45,45,67,67,67,67,67,67,67,1687,1688,67,67,67,67,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1203,45,458,67,67,67,67,67,67,67,67,67,470,477,67,67,67,67,67,67,67,1970,97,97,97,1974,0,0,0,97,1103,97,97,97,97,97,97,97,97,97,97,97,1372,97,97,97,97,67,522,67,67,67,67,67,67,67,67,67,67,67,536,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,1701,67,555,97,97,97,97,97,97,97,97,97,567,574,97,97,97,97,97,301,97,309,97,97,97,97,97,97,97,97,97,900,97,97,97,905,97,97,97,619,97,97,97,97,97,97,97,97,97,97,97,633,97,97,18,0,139621,0,0,362,0,0,0,364,0,0,367,41606,369,649,45,45,45,45,45,45,45,45,45,45,45,45,663,664,67,67,67,67,750,751,67,67,67,67,758,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,67,1057,1058,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,67,67,67,67,67,67,512,67,67,67,97,97,97,97,895,97,97,97,97,97,97,97,97,97,97,97,902,97,97,97,97,67,67,1051,67,67,67,67,67,67,67,67,67,67,67,1062,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1302,0,0,0,1308,97,97,97,97,1145,97,97,97,97,97,97,97,97,97,97,97,1139,97,97,97,97,1156,97,97,97,97,97,97,1161,97,97,97,97,97,1166,97,97,18,640,139621,0,641,0,0,0,0,364,0,0,367,41606,67,67,67,67,1257,67,67,67,67,67,67,67,67,67,67,67,0,0,1305,0,0,97,97,1337,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1630,97,67,1474,67,67,0,0,0,0,0,0,0,0,0,0,0,0,0,2380062,2171166,2171166,97,1529,97,97,0,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,45,45,67,67,67,67,1707,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1891,1739,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,1198,45,1200,45,45,45,45,97,97,1894,0,0,97,97,97,97,97,97,45,45,45,45,45,672,45,45,45,45,45,45,45,45,45,45,45,1420,45,45,45,45,67,67,1965,67,1967,67,67,67,97,97,97,97,0,1976,0,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,97,97,1979,0,0,97,1982,97,97,97,1986,45,45,45,45,45,735,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,1770,67,67,2e3,97,97,97,2002,0,97,97,97,0,97,97,97,97,97,97,1798,97,97,97,45,45,45,2034,67,67,67,67,97,0,0,2040,97,97,97,97,45,45,45,45,1752,45,45,45,1753,1754,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,675,45,45,45,45,45,45,438,45,45,45,45,45,445,45,45,45,45,45,45,45,45,67,1430,67,67,67,67,67,67,67,67,67,524,67,67,67,67,67,531,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1096,97,97,97,621,97,97,97,97,97,628,97,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,665,45,45,45,45,45,45,45,45,45,676,45,45,45,45,45,942,45,45,45,45,45,45,45,45,45,45,707,708,45,45,45,45,763,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,809,810,67,67,67,67,783,67,67,67,67,67,67,67,67,67,67,67,0,1303,0,0,0,97,861,97,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,45,45,956,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,67,67,67,67,1027,67,67,67,67,1032,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1097,1064,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,67,1098,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,331,97,97,97,97,1158,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,1309,0,0,0,1315,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1374,97,45,45,1543,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1240,67,67,1583,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1252,67,97,97,97,1635,97,97,97,0,97,97,97,97,97,97,97,97,1800,97,45,45,45,97,97,1793,97,97,97,97,97,97,97,97,97,97,45,45,45,1743,45,45,45,1746,45,0,97,97,97,97,97,1851,97,45,45,45,45,1856,45,45,45,45,1864,45,45,67,67,1869,67,67,67,67,1874,67,0,97,97,45,67,2058,97,45,67,0,97,45,67,0,97,45,45,67,211,67,67,67,67,67,67,240,67,67,67,67,67,67,67,1444,67,67,67,67,67,67,67,67,67,509,67,67,67,67,67,67,67,67,67,268,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,290,97,97,97,305,97,97,319,97,97,97,330,97,97,18,640,139621,0,641,0,0,0,0,364,0,643,367,41606,97,97,348,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,45,45,380,45,45,45,45,45,45,395,45,45,45,400,369,0,45,45,45,45,45,45,45,45,658,45,45,45,45,45,972,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,745,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,67,67,37689,1086,25403,1090,66365,1094,0,0,97,843,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,1121,97,97,97,97,1126,97,97,97,97,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1400,45,67,67,67,1011,67,67,67,67,67,67,67,67,67,67,67,0,1304,0,0,0,1190,45,45,1193,1194,45,45,45,45,45,1199,45,1201,45,45,45,45,1911,45,45,45,45,45,67,67,67,67,67,67,67,1579,67,67,67,67,45,1205,45,45,45,45,45,45,45,45,1211,45,45,45,45,45,984,45,45,45,45,45,45,45,45,45,45,45,1550,45,45,45,45,45,1217,45,45,45,45,45,45,1225,45,45,45,45,1229,45,45,45,1388,45,45,45,45,45,45,1396,45,45,45,45,45,444,45,45,45,45,45,45,45,45,45,67,67,1574,67,67,67,67,67,67,67,67,67,67,1590,67,67,67,67,67,1254,67,67,67,67,67,1259,67,1261,67,67,67,67,1265,67,67,67,67,67,67,1708,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,0,0,67,67,67,67,1285,67,67,67,67,1289,67,67,67,67,67,67,67,67,37689,1087,25403,1091,66365,1095,0,0,97,97,97,97,1339,97,1341,97,97,97,97,1345,97,97,97,97,97,561,97,97,97,97,97,573,97,97,97,97,97,97,1717,97,0,97,97,97,97,97,97,97,591,97,97,97,97,97,97,97,97,97,1329,97,97,97,97,97,97,97,97,97,97,1351,97,97,97,97,97,97,1357,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,568,97,97,97,97,97,97,97,1365,97,97,97,97,1369,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1399,45,45,45,1413,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1669,45,1422,45,45,1425,45,45,1428,45,1429,67,67,67,67,67,67,67,67,1468,67,67,67,67,67,67,67,67,529,67,67,67,67,67,67,539,67,67,1475,67,0,0,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,97,97,1530,97,0,45,45,1534,45,45,45,45,45,45,45,45,1956,45,45,67,67,67,67,67,67,67,67,67,1599,67,67,1601,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,67,1632,97,1634,0,97,97,97,1640,97,97,97,1643,97,97,1645,97,97,97,97,97,912,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,1660,1661,45,45,45,45,1665,1666,45,45,45,45,45,1670,1692,1693,67,67,67,67,67,1697,67,67,67,67,67,67,67,1702,97,97,1714,1715,97,97,97,97,0,1721,1722,97,97,97,97,97,97,1353,97,97,97,97,97,97,97,97,1362,1726,97,0,0,97,97,97,0,97,97,97,1734,97,97,97,97,97,848,849,97,97,97,97,856,97,97,97,97,97,354,0,53264,0,18,18,24,24,0,28,28,45,45,1750,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1681,45,0,1846,97,97,97,97,97,97,45,45,1854,45,45,45,45,1859,67,67,67,1879,67,67,97,97,1884,97,97,0,0,0,97,97,97,1105,97,97,97,97,97,97,97,97,97,97,1344,97,97,97,1347,97,1892,97,0,0,0,97,97,97,1900,97,97,45,45,45,45,45,997,45,45,45,45,45,45,45,45,45,45,1002,45,45,1005,1006,45,67,67,67,67,67,1926,67,67,1928,97,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,1737,97,0,97,97,97,97,0,0,0,97,97,1944,97,97,1946,45,45,45,1544,45,45,45,45,45,45,45,45,45,45,45,45,190,45,45,45,152,155,45,163,45,45,177,179,182,45,45,45,193,197,45,45,45,1672,45,45,45,45,45,1677,45,1679,45,45,45,45,996,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,67,260,264,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,295,299,302,97,310,97,97,324,326,329,97,97,97,0,97,97,1639,0,1641,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,97,97,97,1523,97,97,97,97,97,97,97,97,1719,97,97,97,97,97,97,97,97,1720,97,97,97,97,97,97,97,312,97,97,97,97,97,97,97,97,1123,97,97,97,97,97,97,97,340,344,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,373,375,419,45,45,45,45,45,45,45,45,45,428,45,45,435,45,45,45,1751,45,45,45,45,45,45,45,45,45,45,45,45,1410,45,45,45,67,67,67,505,67,67,67,67,67,67,67,67,67,514,67,67,67,67,67,67,1969,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,0,97,2064,2065,0,2066,45,521,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,465,67,67,67,474,67,67,67,67,67,67,67,1467,67,67,67,67,67,67,67,67,67,97,97,97,97,97,1933,0,97,97,97,602,97,97,97,97,97,97,97,97,97,611,97,97,18,640,139621,358,641,0,0,0,0,364,0,0,367,0,618,97,97,97,97,97,97,97,97,97,97,631,97,97,97,97,97,881,97,97,97,97,97,97,97,97,97,97,569,97,97,97,97,97,369,0,45,652,45,45,45,45,45,657,45,45,45,45,45,45,1235,45,45,45,45,45,45,45,45,67,67,67,1432,67,67,67,67,67,67,67,766,67,67,67,67,67,67,67,67,773,67,67,67,0,1305,0,1311,0,1317,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,97,0,97,97,97,1724,97,97,97,777,67,67,782,67,67,67,67,67,67,67,67,67,67,67,67,535,67,67,67,67,67,67,67,814,67,67,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,0,97,837,97,97,97,97,97,97,1496,97,97,97,97,97,97,97,97,97,97,918,97,97,97,97,0,842,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1168,97,97,97,97,864,97,97,97,97,97,97,97,97,871,97,97,97,0,1637,97,97,0,97,97,97,97,97,97,97,97,97,97,1801,45,45,97,875,97,97,880,97,97,97,97,97,97,97,97,97,97,97,1151,1152,97,97,97,67,67,67,1040,67,67,67,67,67,67,67,67,67,67,67,67,790,67,67,67,1180,0,649,45,45,45,45,45,45,45,45,45,45,45,45,45,200,45,45,67,67,67,1454,67,67,67,67,67,67,67,67,67,67,67,67,806,67,67,67,0,0,0,1481,0,1094,0,0,97,1483,97,97,97,97,97,97,304,97,97,318,97,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,97,97,1332,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,1633,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,1381,0,0,45,45,45,45,97,97,1727,0,97,97,97,0,97,97,97,97,97,97,97,97,626,97,97,97,97,97,97,636,45,45,1760,67,67,67,67,67,67,67,1765,67,67,67,67,67,67,67,1299,67,67,67,0,0,0,0,0,0,97,97,97,97,1616,97,97,1803,45,45,45,45,1807,45,45,45,45,45,1813,45,45,45,67,67,1684,67,67,67,67,67,67,67,67,67,67,67,822,67,67,37689,544,67,67,1818,67,67,67,67,1822,67,67,67,67,67,1828,67,67,67,67,67,97,0,0,97,97,97,97,97,45,45,45,2012,2013,45,45,67,67,67,2018,2019,67,67,97,67,97,97,97,1833,97,97,0,0,97,97,1840,97,97,0,0,97,97,97,0,97,97,1733,97,1735,97,97,97,0,97,97,97,1849,97,97,97,45,45,45,45,45,1857,45,45,45,1910,45,1912,45,45,1914,45,67,67,67,67,67,67,67,67,67,67,1017,67,67,1020,67,45,1861,45,45,45,45,45,67,67,67,67,67,1872,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,67,1446,67,67,67,67,67,1876,67,67,67,67,67,97,97,97,97,97,0,0,0,1890,97,97,97,97,97,1134,97,97,97,97,97,97,97,97,97,97,570,97,97,97,97,580,1935,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1906,45,67,67,67,67,2048,0,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,931,45,45,45,45,45,45,1674,45,1676,45,45,45,45,45,45,45,446,45,45,45,45,45,45,45,67,67,67,67,1871,67,67,67,67,0,97,97,45,67,0,97,2060,2061,0,2063,45,67,0,97,45,45,156,45,45,45,45,45,45,45,45,45,192,45,45,45,45,1673,45,45,45,45,45,45,45,45,45,45,45,429,45,45,45,45,67,67,67,269,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,349,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,374,45,45,67,67,213,217,67,67,67,67,67,242,67,247,67,253,45,45,698,45,45,45,45,45,45,45,45,45,45,45,45,45,399,45,45,0,0,0,0,925,41606,0,929,0,0,45,45,45,45,45,45,1391,45,45,1395,45,45,45,45,45,45,423,45,45,45,45,45,45,45,436,45,67,67,67,67,1041,67,1043,67,67,67,67,67,67,67,67,67,67,1776,67,67,97,97,97,1099,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,888,97,97,97,1131,97,97,97,97,1135,97,1137,97,97,97,97,97,97,97,1497,97,97,97,97,97,97,97,97,97,883,97,97,97,97,97,97,1310,0,0,0,1316,0,0,0,0,1100,0,0,0,97,97,97,97,97,1107,97,97,97,97,97,97,97,97,1343,97,97,97,97,97,97,1348,0,0,1317,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,1112,97,45,1804,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1868,67,1870,67,67,67,67,67,1817,67,67,1819,67,67,67,67,67,67,67,67,67,67,67,67,823,67,37689,544,67,97,1832,97,97,1834,97,0,0,97,97,97,97,97,0,0,97,97,97,0,1732,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,97,1177,0,0,925,0,0,0,0,97,97,97,97,0,0,1941,97,97,97,97,97,97,45,45,45,1991,1992,45,67,67,67,67,67,67,67,67,67,1998,134,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,941,45,45,944,45,45,45,45,45,45,952,45,45,207,67,67,67,67,67,226,67,67,67,67,67,67,67,67,67,820,67,67,67,67,37689,544,369,650,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1682,25403,546,70179,0,0,66365,66365,552,835,97,97,97,97,97,97,97,1522,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,1725,67,67,67,1695,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,1036,67,67,67,265,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,296,97,97,97,97,314,97,97,97,97,332,334,97,97,97,97,97,1146,1147,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,97,97,345,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,372,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,1213,45,45,45,45,404,406,45,45,45,45,45,45,45,45,45,45,45,45,45,434,45,45,45,440,45,45,45,45,45,45,45,45,451,452,45,45,45,67,1683,67,67,67,1686,67,67,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,490,492,67,67,67,67,67,67,67,67,67,67,67,1447,67,67,1450,67,67,67,67,67,526,67,67,67,67,67,67,67,67,537,538,67,67,67,67,67,506,67,67,508,67,67,511,67,67,67,67,0,1476,0,0,0,0,0,1478,0,0,0,0,0,0,0,0,97,97,1484,97,97,97,97,97,97,865,97,97,97,97,97,97,97,97,97,97,1499,97,97,97,97,97,97,97,97,97,587,589,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,97,97,97,97,623,97,97,97,97,97,97,97,97,634,635,97,97,97,97,97,1160,97,97,97,97,97,97,97,97,97,97,97,1628,97,97,97,97,369,0,45,45,45,45,45,655,45,45,45,45,45,45,45,45,999,45,1001,45,45,45,45,45,45,45,45,715,45,45,45,720,45,45,45,45,45,45,45,45,728,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,840,97,97,97,97,97,1174,97,97,97,97,0,0,925,0,0,0,0,0,0,0,1100,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,97,938,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,680,45,968,45,970,45,973,45,45,45,45,45,45,45,45,45,45,962,45,45,45,45,45,979,45,45,45,45,45,985,45,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,688,45,45,45,45,45,45,45,1007,1008,67,67,67,67,67,1014,67,67,67,67,67,67,67,67,67,1045,67,67,67,67,67,67,67,1038,67,67,67,67,67,67,1044,67,1046,67,1049,67,67,67,67,67,67,800,67,67,67,67,67,67,808,67,67,0,0,0,1102,97,97,97,97,97,1108,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,97,1371,97,97,97,97,97,97,97,97,1132,97,97,97,97,97,97,1138,97,1140,97,1143,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,45,1191,45,45,45,45,45,1196,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,991,45,67,67,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,1048,67,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,97,1386,45,1387,45,45,45,45,45,45,45,45,45,45,45,45,45,455,45,457,45,45,1424,45,45,45,45,45,67,67,67,67,1433,67,1434,67,67,67,67,67,767,67,67,67,67,67,67,67,67,67,67,67,1591,67,1593,67,67,45,45,1805,45,45,45,45,45,45,45,45,45,1814,45,45,1816,67,67,67,67,1820,67,67,67,67,67,67,67,67,67,1829,67,67,67,67,67,815,67,67,67,67,821,67,67,67,37689,544,67,1831,97,97,97,97,1835,0,0,97,97,97,97,97,0,0,97,97,97,1731,97,97,97,97,97,97,97,97,97,853,97,97,97,97,97,97,0,97,97,97,97,1850,97,97,45,45,45,45,45,45,45,45,1547,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,961,45,45,45,45,965,45,967,1907,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1920,0,1936,97,97,97,0,0,0,97,97,97,97,97,97,45,45,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,67,67,97,97,97,97,0,0,28672,97,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,2054,97,97,291,97,97,97,97,97,97,320,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,97,12288,0,925,926,1179,0,45,377,45,45,45,381,45,45,392,45,45,396,45,45,45,45,971,45,45,45,45,45,45,45,45,45,45,45,45,1756,45,45,45,67,67,67,67,463,67,67,67,467,67,67,478,67,67,482,67,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,1472,67,502,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1460,67,97,97,97,97,560,97,97,97,564,97,97,575,97,97,579,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,930,97,599,97,97,97,97,97,97,97,97,97,97,97,97,97,97,872,97,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1758,0,362,0,0,925,41606,0,0,0,0,45,45,934,45,45,45,164,168,174,178,45,45,45,45,45,194,45,45,45,165,45,45,45,45,45,45,45,45,45,199,45,45,45,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,67,1060,67,67,67,67,67,67,1052,1053,67,67,67,67,67,67,67,67,67,67,1063,97,1157,97,97,97,97,97,97,97,97,97,97,97,97,1167,97,97,97,97,97,1379,97,97,97,0,0,0,45,1383,45,45,45,1806,45,45,45,45,45,45,1812,45,45,45,45,67,67,67,67,67,1577,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,1282,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1471,67,45,1402,45,45,45,45,45,45,45,45,45,45,45,45,45,45,417,45,67,1462,67,67,67,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,1517,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1128,97,97,97,97,1636,97,97,97,0,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,1705,67,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,1842,0,0,1779,97,97,97,1782,97,0,0,97,97,97,97,97,97,0,0,97,97,97,1789,97,97,0,0,0,97,1847,97,97,97,97,97,45,45,45,45,45,45,45,45,1675,45,45,45,45,45,45,45,45,737,738,67,740,67,741,67,743,67,67,67,67,67,67,1968,67,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,2062,97,45,67,0,97,45,67,67,97,97,2001,97,0,0,2004,97,97,0,97,97,97,97,1797,97,97,97,97,97,45,45,45,67,261,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,292,97,97,97,97,311,315,321,325,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,97,97,1330,97,97,1333,1334,97,341,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,363,364,0,367,41098,369,140,45,45,45,45,1221,45,45,45,45,45,45,45,45,45,45,45,413,45,45,416,45,376,45,45,45,45,382,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,45,45,403,45,45,45,45,45,45,45,45,45,45,414,45,45,45,418,67,67,67,462,67,67,67,67,468,67,67,67,67,67,67,67,67,1602,67,1604,67,67,67,67,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,500,67,67,67,67,67,1067,67,67,67,67,67,1072,67,67,67,67,67,67,274,0,37139,24853,0,0,0,0,41098,65820,67,67,504,67,67,67,67,67,67,67,510,67,67,67,517,519,541,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,554,97,97,97,559,97,97,97,97,565,97,97,97,97,97,97,97,1718,0,97,97,97,97,97,97,97,898,97,97,97,97,97,97,906,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,597,97,97,97,97,97,1520,97,97,97,97,97,97,97,97,97,97,0,45,1656,45,45,45,97,97,601,97,97,97,97,97,97,97,607,97,97,97,614,616,638,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,369,0,45,45,45,45,45,45,45,45,45,45,661,45,45,45,407,45,45,45,45,45,45,45,45,45,45,45,45,45,1815,45,67,45,667,45,45,45,45,45,45,45,45,45,45,678,45,45,45,421,45,45,45,45,45,45,45,45,45,45,45,45,976,977,45,45,45,682,45,45,45,45,45,45,45,45,45,45,693,45,45,697,67,67,748,67,67,67,67,754,67,67,67,67,67,67,67,67,67,1274,67,67,67,67,67,67,67,67,765,67,67,67,67,769,67,67,67,67,67,67,67,67,67,1589,67,67,67,67,67,67,67,67,780,67,67,784,67,67,67,67,67,67,67,67,67,67,67,1777,67,97,97,97,97,97,97,846,97,97,97,97,852,97,97,97,97,97,97,97,1742,45,45,45,45,45,45,45,1747,97,97,97,863,97,97,97,97,867,97,97,97,97,97,97,97,308,97,97,97,97,97,97,97,97,97,97,12288,1178,925,0,1179,0,97,97,97,878,97,97,882,97,97,97,97,97,97,97,97,97,97,12288,0,925,0,1179,0,908,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,0,954,45,45,45,45,45,45,45,45,45,45,963,45,45,966,45,45,157,45,45,171,45,45,45,45,45,45,45,45,45,45,948,45,45,45,45,45,1022,67,67,1026,67,67,67,1030,67,67,67,67,67,67,67,67,67,1603,1605,67,67,67,1608,67,67,67,1039,67,67,1042,67,67,67,67,67,67,67,67,67,67,471,67,67,67,67,67,0,1100,0,97,97,97,97,97,97,97,97,97,97,97,97,97,904,97,97,97,97,1116,97,97,1120,97,97,97,1124,97,97,97,97,97,97,562,97,97,97,571,97,97,97,97,97,97,97,97,97,1133,97,97,1136,97,97,97,97,97,97,97,97,915,917,97,97,97,97,97,0,97,1170,97,97,97,97,97,97,97,97,0,0,925,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,45,1993,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,1278,67,0,0,0,45,45,1182,45,45,45,45,45,45,45,45,45,1189,1204,45,45,45,1207,45,45,1209,45,1210,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,45,689,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,236,67,67,67,67,67,67,67,801,67,67,67,805,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,1249,67,67,67,67,67,67,507,67,67,67,67,67,67,67,67,67,67,1300,0,0,0,0,0,1267,67,67,1269,67,1270,67,67,67,67,67,67,67,67,67,1280,97,1349,97,1350,97,97,97,97,97,97,97,97,97,1360,97,97,97,0,1980,97,97,97,97,97,45,45,45,45,45,45,673,45,45,45,45,677,45,45,45,45,1401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,953,67,1437,67,1440,67,67,67,67,1445,67,67,67,1448,67,67,67,67,67,67,1029,67,67,67,67,67,67,67,67,67,67,1825,67,67,67,67,67,1473,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,1320,0,834,97,97,97,97,1490,97,1493,97,97,97,97,1498,97,97,97,1501,97,97,97,0,97,1638,97,0,97,97,97,97,97,97,97,97,916,97,97,97,97,97,97,0,1528,97,97,97,0,45,45,45,1535,45,45,45,45,45,45,45,1867,67,67,67,67,67,67,67,67,67,97,97,97,97,1932,0,0,1555,45,45,45,45,45,45,45,45,45,45,45,45,45,1567,45,45,158,45,45,172,45,45,45,183,45,45,45,45,201,45,45,67,212,67,67,67,67,231,235,241,245,67,67,67,67,67,67,493,67,67,67,67,67,67,67,67,67,67,472,67,67,67,67,67,97,97,97,97,1651,97,97,97,97,97,0,45,45,45,45,45,45,45,1539,45,45,45,67,1704,67,1706,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,1841,97,0,1844,97,97,97,97,1716,97,97,97,0,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1385,1748,45,45,45,45,45,45,45,45,45,45,45,45,45,1757,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,97,97,1780,97,97,97,0,0,1786,97,97,97,97,97,0,0,97,97,1730,0,97,97,97,97,97,1736,97,1738,67,97,97,97,97,97,97,0,1838,97,97,97,97,97,0,0,97,1729,97,0,97,97,97,97,97,97,97,97,1162,97,97,97,1165,97,97,97,45,1950,45,45,45,45,45,45,45,45,1958,67,67,67,1962,67,67,67,67,67,1246,67,67,67,67,67,67,67,67,67,67,67,97,1710,97,97,97,1999,67,97,97,97,97,0,2003,97,97,97,0,97,97,2008,2009,45,67,67,67,67,0,0,97,97,97,97,45,2052,67,2053,0,0,0,0,925,41606,0,0,930,0,45,45,45,45,45,45,1392,45,1394,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,45,1563,1565,45,45,45,1568,0,97,2055,45,67,0,97,45,67,0,97,45,67,28672,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,679,45,45,67,67,266,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,346,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,362,0,364,0,367,41098,369,140,371,45,45,45,379,45,45,45,388,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,449,45,45,45,45,45,67,67,542,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,97,97,97,97,1622,97,97,97,97,97,97,97,1629,97,97,0,1794,1795,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1745,45,45,97,639,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,45,731,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,251,67,67,67,67,67,798,67,67,67,67,67,67,67,67,67,67,67,67,1073,67,67,67,860,97,97,97,97,97,97,97,97,97,97,97,97,97,97,873,0,0,1101,97,97,97,97,97,97,97,97,97,97,97,97,97,921,97,0,67,67,67,67,1245,67,67,67,67,67,67,67,67,67,67,67,67,1250,67,67,1253,0,0,1312,0,0,0,1318,0,0,0,0,0,0,97,97,97,97,1106,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,97,1155,97,97,1325,97,97,97,97,97,97,97,97,97,97,97,97,97,1141,97,97,67,67,1439,67,1441,67,67,67,67,67,67,67,67,67,67,67,67,1264,67,67,67,97,97,1492,97,1494,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,97,67,67,67,2037,67,97,0,0,97,97,97,2043,97,45,45,45,442,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,232,67,67,67,67,67,67,67,67,1823,67,67,67,67,67,67,67,67,97,97,97,97,1975,0,0,97,874,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1142,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,65,86,117,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,63,84,115,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,61,82,113,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,59,80,111,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,57,78,109,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,55,76,107,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,53,74,105,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,51,72,103,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,49,70,101,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,47,68,99,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,45,67,97,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,213085,53264,18,49172,57366,24,8192,28,102432,0,0,0,44,0,0,32863,53264,18,49172,57366,24,8192,28,102432,0,41,41,41,0,0,1138688,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,89,53264,18,18,49172,0,57366,0,24,24,24,0,127,127,127,127,102432,67,262,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,342,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,360,0,0,364,0,367,41098,369,140,45,45,45,45,717,45,45,45,45,45,45,45,45,45,45,45,412,45,45,45,45,45,67,1009,67,67,67,67,67,67,67,67,67,67,67,67,67,1292,67,67,1294,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,1615,97,97,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,66,87,118,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,64,85,116,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,62,83,114,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,60,81,112,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,58,79,110,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,56,77,108,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,54,75,106,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,52,73,104,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,50,71,102,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,48,69,100,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,46,67,98,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,233472,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,69724,53264,18,18,49172,0,57366,262144,24,24,24,0,28,28,28,28,102432,45,45,161,45,45,45,45,45,45,45,45,45,45,45,45,45,710,45,45,28,139621,359,0,0,0,364,0,367,41098,369,140,45,45,45,45,1389,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,45,67,503,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1449,67,67,97,600,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1154,97,0,0,0,0,925,41606,927,0,0,0,45,45,45,45,45,45,1866,67,67,67,67,67,67,67,67,67,67,772,67,67,67,67,67,45,45,969,45,45,45,45,45,45,45,45,45,45,45,45,45,951,45,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,45,0,0,0,1314,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1488,67,67,267,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,347,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,361,0,0,364,0,367,41098,369,140,45,45,45,45,734,45,45,45,67,67,67,67,67,742,67,67,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,1214,45,45,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1361,97,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,45,45,0,0,0,0,2220032,0,0,1130496,0,0,0,0,2170880,2171020,2170880,2170880,18,0,0,131072,0,0,0,90112,0,2220032,0,0,0,0,0,0,0,0,97,97,97,1485,97,97,97,97,0,45,45,45,45,45,1537,45,45,45,45,45,1390,45,1393,45,45,45,45,1398,45,45,45,2170880,2171167,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,0,0,0,0,0,2183168,0,0,0,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2721252,2744320,2170880,2170880,2170880,2834432,2840040,2170880,2908160,2170880,2170880,2936832,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3014656,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,0,0,0,0,2220032,0,0,0,1142784,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3215360,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,543,0,545,0,0,2183168,0,0,831,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,2170880,2170880,3092480,2170880,2170880,3125248,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,0,0,0,67,67,37139,37139,24853,24853,0,0,0,0,0,65820,65820,0,287,97,97,97,97,97,1783,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,1791,0,0,546,70179,0,0,0,0,552,0,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,97,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,0,0,147456,0,0,0,0,925,41606,0,928,0,0,45,45,45,45,45,45,998,45,45,45,45,45,45,45,45,45,1562,45,1564,45,45,45,45,0,2158592,2158592,0,0,0,0,2232320,2232320,2232320,0,2240512,2240512,2240512,2240512,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640],r.EXPECTED=[291,300,304,341,315,309,305,295,319,323,327,329,296,333,337,339,342,346,350,294,356,360,312,367,352,371,363,375,379,383,387,391,395,726,399,405,518,684,405,405,405,405,808,405,405,405,512,405,405,405,431,405,405,406,405,405,404,405,405,405,405,405,405,405,908,631,410,415,405,414,419,608,405,429,602,405,435,443,405,441,641,478,405,447,451,450,456,643,461,460,762,679,465,469,741,473,477,482,486,492,932,931,523,498,504,720,405,510,596,405,516,941,580,522,929,527,590,589,897,939,534,538,547,551,555,559,563,567,571,969,575,708,690,689,579,584,634,405,594,731,405,600,882,405,606,895,786,452,612,405,615,620,876,624,628,638,647,651,655,659,663,667,676,683,688,695,694,791,405,699,437,405,706,714,405,712,825,870,405,718,724,769,768,823,730,735,745,751,422,755,759,425,766,902,810,587,775,888,887,405,773,992,405,779,962,405,785,781,986,790,795,797,506,500,499,801,805,814,820,829,833,837,841,845,849,853,857,861,616,865,869,868,488,405,874,816,405,880,738,405,886,892,543,405,901,906,913,912,918,494,541,922,926,936,945,949,953,957,530,966,973,960,702,701,405,979,981,405,985,747,405,990,998,914,405,996,1004,672,975,974,1014,1002,1008,670,1012,405,405,405,405,405,401,1018,1022,1026,1106,1071,1111,1111,1111,1082,1145,1030,1101,1034,1038,1106,1106,1106,1106,1046,1206,1052,1106,1072,1111,1111,1042,1134,1065,1111,1112,1056,1160,1207,1062,1204,1208,1069,1106,1106,1106,1076,1111,1207,1161,1122,1205,1064,1094,1106,1106,1107,1111,1111,1111,1078,1086,1207,1092,1098,1046,1058,1106,1106,1110,1111,1111,1116,1120,1161,1126,1202,1104,1106,1145,1146,1129,1138,1088,1151,1048,1157,1153,1132,1141,1165,1107,1111,1172,1179,1109,1183,1175,1143,1147,1187,1108,1191,1195,1144,1199,1168,1212,1216,1220,1224,1228,1232,1236,1557,1247,1241,1241,1038,1434,1241,1241,1241,1241,1254,1275,1617,1241,1280,1287,1241,1241,1241,1287,1241,2114,1291,1241,1243,1241,2049,1824,2094,2095,1520,1309,1241,1241,1302,1241,1321,1311,1241,1241,1313,1778,1325,1336,1241,1241,1325,1330,1353,1241,1241,1695,1354,1241,1241,1241,1294,1686,1331,1241,1696,1368,1241,1338,1370,1241,1392,1399,1364,2017,1406,2016,1405,1716,1406,1407,1422,1417,1421,1241,1241,1241,1349,1426,1241,1774,1756,1241,1773,1241,1241,1345,1964,1812,1432,1241,1241,1345,1993,1459,1241,1241,1241,1395,1848,1767,1465,1241,1241,1394,1847,1242,1477,1241,1241,1428,1241,1445,1492,1241,1241,1438,1241,1499,1241,1241,1241,1455,1241,1818,1448,1241,1250,1241,2026,1623,1449,1241,1612,1616,1241,1614,1241,1257,1241,1241,1985,1292,1586,1512,1241,1517,2050,1526,1674,1519,1524,1647,2051,1532,1537,1551,1544,1550,1555,1561,1571,1578,1584,1590,1591,1653,1595,1602,1606,1610,1634,1628,1640,1633,1645,1241,1241,1241,1469,1241,1970,1651,1241,1270,1241,1241,1819,1449,1241,1293,1664,1241,1241,1481,1485,1574,1672,1241,1241,1513,1317,1487,1684,1241,1241,1533,1299,1694,1241,1241,1295,1241,1241,1241,1546,1700,1241,1241,1707,1241,1713,1241,1849,1715,1241,1720,1241,1276,1267,1241,1241,2107,1657,1864,1241,1881,1241,1326,1292,1241,1685,1358,1724,1338,1241,1363,1362,1342,1340,1361,1339,1833,1372,1360,1833,1833,1342,1343,1835,1341,1731,1738,1344,1241,1745,1241,1379,1241,1241,2092,1241,1388,1761,1754,1241,1386,1241,1400,1760,1241,1241,1241,1598,1734,1241,1241,1241,1635,1645,1241,1780,1766,1241,1241,1332,1771,1241,1241,1629,2079,1241,1242,1784,1241,1241,1680,1639,2063,1790,1241,1241,1741,1241,1241,1800,1241,1241,1762,1473,1241,1806,1241,1241,1786,1240,1709,1241,1241,1241,1668,1811,1241,1940,1241,1401,1974,1241,1408,1413,1382,1241,1816,1241,1241,1802,2086,1811,1241,1817,1945,1823,2095,2095,2047,2094,2046,2080,1241,1409,1312,1376,2096,2048,1241,1241,1807,1241,1241,1241,2035,1241,1241,1828,1241,2057,2061,1241,1241,1843,1241,2059,1241,1241,1241,1690,1847,1241,1241,1241,1703,2102,1848,1241,1241,1853,1292,1848,1241,2016,1857,1241,2002,1868,1241,1436,1241,1241,1271,1305,1241,1874,1241,1241,1884,2037,1892,1241,1890,1241,1461,1241,1241,1795,1241,1241,1891,1241,1878,1241,1888,1241,1888,1905,1896,2087,1912,1903,1241,1911,1906,1916,1905,2027,1863,1925,2088,1859,1861,1922,1927,1931,1935,1494,1241,1241,1918,1907,1939,1917,1944,1949,1241,1241,1451,1955,1241,1241,1241,1796,1727,2061,1241,1241,1899,1241,1660,1968,1241,1241,1951,1678,1978,1241,1241,1241,1839,1241,1241,1984,1982,1241,1488,1241,1241,1624,1450,1989,1241,1241,1241,1870,1995,1292,1241,1241,1958,1261,1241,1996,1241,1241,1241,2039,2008,1241,1241,1750,2e3,1241,1256,2001,1960,1241,1564,1241,1504,1241,1241,1442,1241,1241,1564,1528,1263,1241,1508,1241,1241,1468,1498,2006,1540,2015,1539,2014,1748,2013,1539,1831,2014,2012,1500,1567,2022,2021,1241,1580,1241,1241,2033,2037,1791,2045,2031,1241,1621,1241,1641,2044,1241,1241,1241,2093,1241,1241,2055,1241,1241,2067,1241,1283,1241,1241,1241,2101,2071,1241,1241,1241,2073,1848,2040,1241,1241,1241,2077,1241,1241,2106,1241,1241,2084,1241,2111,1241,1241,1381,1380,1241,1241,1241,2100,1241,2129,2118,2122,2126,2197,2133,3010,2825,2145,2698,2156,2226,2160,2161,2165,2174,2293,2194,2630,2201,2203,2152,3019,2226,2263,2209,2213,2218,2269,2292,2269,2269,2184,2226,2238,2148,2151,3017,2245,2214,2269,2269,2185,2226,2292,2269,2291,2269,2269,2269,2292,2205,3019,2226,2226,2160,2160,2160,2261,2160,2160,2160,2262,2276,2160,2160,2277,2216,2283,2216,2269,2269,2268,2269,2267,2269,2269,2269,2271,2568,2292,2269,2293,2269,2182,2190,2269,2186,2226,2226,2226,2226,2227,2160,2160,2160,2160,2263,2160,2275,2277,2282,2215,2217,2269,2269,2291,2269,2269,2293,2291,2269,2220,2269,2295,2294,2269,2269,2305,2233,2262,2278,2218,2269,2234,2226,2226,2228,2160,2160,2160,2289,2220,2294,2294,2269,2269,2304,2269,2160,2160,2287,2269,2269,2305,2269,2269,2312,2269,2269,2225,2226,2160,2287,2289,2219,2304,2295,2314,2234,2226,2314,2269,2226,2226,2160,2288,2219,2222,2304,2296,2269,2224,2160,2160,2269,2302,2294,2314,2224,2226,2288,2220,2294,2269,2290,2269,2269,2293,2269,2269,2269,2269,2270,2221,2313,2225,2227,2160,2300,2269,2225,2261,2309,2234,2229,2223,2318,2318,2318,2328,2336,2340,2344,2350,2637,2712,2358,2362,2372,2135,2378,2398,2135,2135,2135,2135,2136,2417,2241,2135,2378,2135,2135,2980,2984,2135,3006,2135,2135,2135,2945,2931,2425,2400,2135,2135,2135,2954,2135,2481,2433,2135,2135,2988,2824,2135,2135,2482,2434,2135,2135,2440,2445,2452,2135,2135,2998,3002,2961,2441,2446,2453,2463,2974,2135,2135,2135,2140,2642,2709,2459,2470,2465,2135,2135,3005,2135,2135,2987,2823,2458,2469,2464,2975,2135,2135,2135,2353,2488,2447,2324,2974,2135,2409,2459,2448,2135,2961,2487,2446,2476,2323,2973,2135,2135,2135,2354,2476,2974,2135,2135,2135,2957,2135,2135,2960,2135,2135,2135,2363,2409,2459,2474,2465,2487,2571,2973,2135,2135,2168,2973,2135,2135,2135,2959,2135,2135,2135,2506,2135,2957,2488,2170,2135,2135,2135,2960,2135,2818,2493,2135,2135,3033,2135,2135,2135,2934,2819,2494,2135,2135,2135,2976,2780,2499,2135,2135,2135,3e3,2968,2135,2935,2135,2135,2135,2364,2507,2135,2135,2934,2135,2135,2780,2492,2507,2135,2135,2506,2780,2135,2135,2782,2780,2135,2782,2135,2783,2374,2514,2135,2135,2135,3007,2530,2974,2135,2135,2135,3008,2135,2135,2134,2135,2526,2531,2975,2135,2135,3042,2581,2575,2956,2135,2135,2135,2394,2135,2508,2535,2840,2844,2495,2135,2135,2136,2684,2537,2842,2846,2135,2136,2561,2581,2551,2536,2841,2845,2975,3043,2582,2843,2555,2135,3040,3044,2538,2844,2975,2135,2135,2253,2644,2672,2542,2554,2135,2135,2346,2873,2551,2555,2135,2135,2135,2381,2559,2565,2538,2553,2135,2560,2914,2576,2590,2135,2135,2135,2408,2136,2596,2624,2135,2135,2135,2409,2135,2618,2597,3008,2135,2135,2380,2956,2601,2135,2135,2135,2410,2620,2624,2135,2136,2383,2135,2135,2783,2623,2135,2135,2393,2888,2136,2621,3008,2135,2618,2618,2622,2135,2135,2405,2414,2619,2384,2624,2135,2136,2950,2135,2138,2135,2139,2135,2604,2623,2135,2140,2878,2665,2957,2622,2135,2135,2428,2762,2606,2612,2135,2135,2501,2586,2604,3038,2135,2604,3036,2387,2958,2386,2135,2141,2135,2421,2387,2385,2135,2385,2384,2384,2135,2386,2628,2384,2135,2135,2501,2596,2591,2135,2135,2135,2400,2135,2634,2135,2135,2559,2580,2575,2648,2135,2135,2135,2429,2649,2135,2135,2135,2435,2654,2658,2135,2135,2135,2436,2649,2178,2659,2135,2135,2595,2601,2669,2677,2135,2135,2616,2957,2879,2665,2691,2135,2363,2367,2900,2878,2664,2690,2975,2877,2643,2670,2974,2671,2975,2135,2135,2619,2608,2669,2673,2135,2135,2653,2177,2672,2135,2135,2135,2486,2168,2251,2255,2695,2974,2709,2135,2135,2135,2487,2169,2399,2716,2975,2135,2363,2770,2776,2640,2717,2135,2135,2729,2135,2135,2641,2718,2135,2135,2135,2505,2135,2640,2257,2974,2135,2727,2975,2135,2365,2332,2895,2957,2135,2959,2135,2365,2749,2754,2959,2958,2958,2135,2380,2793,2799,2135,2735,2738,2135,2381,2135,2135,2940,2974,2135,2744,2135,2135,2739,2519,2976,2745,2135,2135,2135,2509,2755,2135,2135,2135,2510,2772,2778,2135,2135,2740,2520,2135,2771,2777,2135,2135,2759,2750,2792,2798,2135,2135,2781,2392,2779,2135,2135,2135,2521,2135,2679,2248,2135,2135,2681,2480,2135,2135,2786,3e3,2135,2679,2683,2135,2135,2416,2135,2135,2135,2525,2135,2730,2135,2135,2135,2560,2581,2135,2805,2135,2135,2804,2962,2832,2974,2135,2382,2135,2135,2958,2135,2135,2960,2135,2829,2833,2975,2961,2965,2969,2973,2968,2972,2135,2135,2135,2641,2135,2515,2966,2970,2851,2478,2135,2135,2808,2135,2809,2135,2135,2135,2722,2852,2479,2135,2135,2815,2135,2135,2766,2853,2480,2135,2857,2479,2135,2388,2723,2135,2364,2331,2894,2858,2480,2135,2135,2850,2478,2135,2135,2135,2806,2864,2135,2399,2256,2974,2865,2135,2135,2862,2135,2135,2135,2685,2807,2865,2135,2135,2807,2863,2135,2135,2135,2686,2884,2807,2135,2809,2807,2135,2135,2807,2806,2705,2810,2808,2700,2869,2702,2702,2702,2704,2883,2135,2135,2135,2730,2884,2135,2135,2135,2731,2321,2546,2135,2135,2876,2255,2889,2322,2547,2135,2401,2135,2135,2135,2949,2367,2893,2544,2973,2906,2973,2135,2135,2877,2663,2368,2901,2907,2974,2366,2899,2905,2972,2920,2974,2135,2135,2911,2900,2920,2363,2913,2918,2465,2941,2975,2135,2135,2924,2928,2974,2945,2931,2135,2135,2135,2765,2136,2955,2135,2135,2939,2931,2380,2135,2135,2380,2135,2135,2135,2780,2507,2137,2135,2137,2135,2139,2135,2806,2810,2135,2135,2135,2992,2135,2135,2962,2966,2970,2974,2135,2135,2787,3014,2135,2521,2993,2135,2135,2135,2803,2135,2135,2135,2618,2607,2997,3001,2135,2135,2963,2967,2971,2975,2135,2135,2791,2797,2135,3009,2999,3003,2787,3001,2135,2135,2964,2968,2785,2999,3003,2135,2135,2135,2804,2785,2999,3004,2135,2135,2135,2807,2135,2135,3023,2135,2135,2135,2811,2135,2135,3027,2135,2135,2135,2837,2968,3028,2135,2135,2135,2875,2135,2784,3029,2135,2408,2457,2446,0,14,0,-2120220672,1610612736,-2074083328,-2002780160,-2111830528,1073872896,1342177280,1075807216,4096,16384,2048,8192,0,8192,0,0,0,0,1,0,0,0,2,0,-2145386496,8388608,1073741824,0,2147483648,2147483648,2097152,2097152,2097152,536870912,0,0,134217728,33554432,1536,268435456,268435456,268435456,268435456,128,256,32,0,65536,131072,524288,16777216,268435456,2147483648,1572864,1835008,640,32768,65536,262144,1048576,2097152,196608,196800,196608,196608,0,131072,131072,131072,196608,196624,196608,196624,196608,196608,128,4096,16384,16384,2048,0,4,0,0,2147483648,2097152,0,1024,32,32,0,65536,1572864,1048576,32768,32768,32768,32768,196608,196608,196608,64,64,196608,196608,131072,131072,131072,131072,268435456,268435456,64,196736,196608,196608,196608,131072,196608,196608,16384,4,4,4,2,32,32,65536,1048576,12582912,1073741824,0,0,2,8,16,96,2048,32768,0,0,131072,268435456,268435456,268435456,256,256,196608,196672,196608,196608,196608,196608,4,0,256,256,256,256,32,32,32768,32,32,32,32,32768,268435456,268435456,268435456,196608,196608,196608,196624,196608,196608,196608,16,16,16,268435456,196608,64,64,64,196608,196608,196608,196672,268435456,64,64,196608,196608,16,196608,196608,196608,268435456,64,196608,131072,262144,4194304,25165824,33554432,134217728,268435456,268435456,196608,262152,8,256,512,3072,16384,200,-1073741816,8392713,40,8392718,520,807404072,40,520,100663304,0,0,-540651761,-540651761,257589048,0,262144,0,0,3,8,256,0,4,6,4100,8388612,0,0,0,3,4,8,256,512,1024,0,2097152,0,0,-537854471,-537854471,0,100663296,0,0,1,2,0,0,0,16384,0,0,0,96,14336,0,0,0,7,8,234881024,0,0,0,8,0,0,0,0,262144,0,0,16,64,384,512,0,1,1,0,12582912,0,0,0,0,33554432,67108864,-606084144,-606084144,-606084138,0,0,28,32,768,1966080,-608174080,0,0,0,14,35056,16,64,896,24576,98304,98304,131072,262144,524288,1048576,4194304,25165824,1048576,62914560,134217728,-805306368,0,384,512,16384,65536,131072,262144,29360128,33554432,134217728,268435456,1073741824,2147483648,262144,524288,1048576,29360128,33554432,524288,1048576,16777216,33554432,134217728,268435456,1073741824,0,0,0,123856,1966080,0,64,384,16384,65536,131072,16384,65536,524288,268435456,2147483648,0,0,524288,2147483648,0,0,1,16,0,256,524288,0,0,0,25,96,128,-537854471,0,0,0,32,7404800,-545259520,0,0,0,60,0,249,64768,1048576,6291456,6291456,25165824,100663296,402653184,1073741824,96,128,1280,2048,4096,57344,6291456,57344,6291456,8388608,16777216,33554432,201326592,1342177280,2147483648,0,57344,6291456,8388608,100663296,134217728,2147483648,0,0,0,1,8,16,64,128,64,128,256,1024,131072,131072,131072,262144,524288,16777216,57344,6291456,8388608,67108864,134217728,64,256,1024,2048,4096,57344,64,256,0,24576,32768,6291456,67108864,134217728,0,1,64,256,24576,32768,4194304,32768,4194304,67108864,0,0,64,256,0,0,24576,32768,0,16384,4194304,67108864,64,16384,0,0,1,64,256,16384,4194304,67108864,0,0,0,16384,0,16384,16384,0,-470447874,-470447874,-470447874,0,0,128,0,0,8,96,2048,32768,262144,8388608,35056,1376256,-471859200,0,0,14,16,224,2048,32768,2097152,4194304,8388608,-486539264,0,96,128,2048,32768,262144,2097152,262144,2097152,8388608,33554432,536870912,1073741824,2147483648,0,1610612736,2147483648,0,0,1,524288,1048576,12582912,0,0,0,151311,264503296,2097152,8388608,33554432,1610612736,2147483648,262144,8388608,33554432,536870912,67108864,4194304,0,4194304,0,4194304,4194304,0,0,524288,8388608,536870912,1073741824,2147483648,1,4097,8388609,96,2048,32768,1073741824,2147483648,0,96,2048,2147483648,0,0,96,2048,0,0,1,12582912,0,0,0,0,1641895695,1641895695,0,0,0,249,7404800,15,87808,1835008,1639972864,0,768,5120,16384,65536,1835008,1835008,12582912,16777216,1610612736,0,3,4,8,768,4096,65536,0,0,256,512,786432,8,256,512,4096,16384,1835008,16384,1835008,12582912,1610612736,0,0,0,256,0,0,0,4,8,16,32,1,2,8,256,16384,524288,16384,524288,1048576,12582912,1610612736,0,0,0,8388608,0,0,0,524288,4194304,0,0,0,8388608,-548662288,-548662288,-548662288,0,0,256,16384,65536,520093696,-1073741824,0,0,0,16777216,0,16,32,960,4096,4980736,520093696,1073741824,0,32,896,4096,57344,1048576,6291456,8388608,16777216,100663296,134217728,268435456,2147483648,0,512,786432,4194304,33554432,134217728,268435456,0,786432,4194304,134217728,268435456,0,524288,4194304,268435456,0,0,0,0,0,4194304,4194304,-540651761,0,0,0,2,4,8,16,96,128,264503296,-805306368,0,0,0,8,256,512,19456,131072,3072,16384,131072,262144,8388608,16777216,512,1024,2048,16384,131072,262144,131072,262144,8388608,33554432,201326592,268435456,0,3,4,256,1024,2048,57344,16384,131072,8388608,33554432,134217728,268435456,0,3,256,1024,16384,131072,33554432,134217728,1073741824,2147483648,0,0,256,524288,2147483648,0,3,256,33554432,134217728,1073741824,0,1,2,33554432,1,2,134217728,1073741824,0,1,2,134217728,0,0,0,64,0,0,0,16,32,896,4096,786432,4194304,16777216,33554432,201326592,268435456,1073741824,2147483648,0,0,0,15,0,4980736,4980736,4980736,70460,70460,3478332,0,0,1008,4984832,520093696,60,4864,65536,0,0,0,12,16,32,256,512,4096,65536,0,0,0,67108864,0,0,0,12,0,256,512,65536,0,0,1024,512,131072,131072,4,16,32,65536,0,4,16,32,0,0,0,4,16,0,0,16384,67108864,0,0,1,24,96,128,256,1024],r.TOKEN=[\"(0)\",\"JSONChar\",\"JSONCharRef\",\"JSONPredefinedCharRef\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$$'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],\"/node_modules/xqlint/lib/lexers/jsoniq_lexer.js\":[function(e,t,n){\"use strict\";var r=e(\"./JSONiqTokenizer\").JSONiqTokenizer,i=e(\"./lexer\").Lexer,s=\"NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"JSONPredefinedCharRef\",token:\"constant.language.escape\"},{name:\"JSONCharRef\",token:\"constant.language.escape\"},{name:\"JSONChar\",token:\"string\"}]};n.JSONiqLexer=function(){return new i(r,d)}},{\"./JSONiqTokenizer\":\"/node_modules/xqlint/lib/lexers/JSONiqTokenizer.js\",\"./lexer\":\"/node_modules/xqlint/lib/lexers/lexer.js\"}],\"/node_modules/xqlint/lib/lexers/lexer.js\":[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}]},{},[\"/node_modules/xqlint/lib/lexers/jsoniq_lexer.js\"])}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsoniq\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/jsoniq_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/jsoniq_lexer\").JSONiqLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/jsoniq\"}.call(h.prototype),t.Mode=h});\n                (function() {\n                    ace.require([\"ace/mode/jsoniq\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jsp.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/jsp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this);var e=\"request|response|out|session|application|config|pageContext|page|Exception\",t=\"page|include|taglib\",n=[{token:\"comment\",regex:\"<%--\",push:\"jsp-dcomment\"},{token:\"meta.tag\",regex:\"<%@?|<%=?|<%!?|<jsp:[^>]+>\",push:\"jsp-start\"}],r=[{token:\"meta.tag\",regex:\"%>|<\\\\/jsp:[^>]+>\",next:\"pop\"},{token:\"variable.language\",regex:e},{token:\"keyword\",regex:t}];for(var o in this.$rules)this.$rules[o].unshift.apply(this.$rules[o],n);this.embedRules(s,\"jsp-\",r,[\"start\"]),this.addRules({\"jsp-dcomment\":[{token:\"comment\",regex:\".*?--%>\",next:\"pop\"}]}),this.normalizeRules()};r.inherits(o,i),t.JspHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsp_highlight_rules\").JspHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.$id=\"ace/mode/jsp\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/jsp\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jssm.js",
    "content": "ace.define(\"ace/mode/jssm_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"punctuation.definition.comment.mn\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.mn\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.jssm\"}],comment:\"block comment\"},{token:\"comment.line.jssm\",regex:/\\/\\//,push:[{token:\"comment.line.jssm\",regex:/$/,next:\"pop\"},{defaultToken:\"comment.line.jssm\"}],comment:\"block comment\"},{token:\"entity.name.function\",regex:/\\${/,push:[{token:\"entity.name.function\",regex:/}/,next:\"pop\"},{defaultToken:\"keyword.other\"}],comment:\"js outcalls\"},{token:\"constant.numeric\",regex:/[0-9]*\\.[0-9]*\\.[0-9]*/,comment:\"semver\"},{token:\"constant.language.jssmLanguage\",regex:/graph_layout\\s*:/,comment:\"jssm language tokens\"},{token:\"constant.language.jssmLanguage\",regex:/machine_name\\s*:/,comment:\"jssm language tokens\"},{token:\"constant.language.jssmLanguage\",regex:/machine_version\\s*:/,comment:\"jssm language tokens\"},{token:\"constant.language.jssmLanguage\",regex:/jssm_version\\s*:/,comment:\"jssm language tokens\"},{token:\"keyword.control.transition.jssmArrow.legal_legal\",regex:/<->/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.legal_none\",regex:/<-/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.none_legal\",regex:/->/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.main_main\",regex:/<=>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.none_main\",regex:/=>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.main_none\",regex:/<=/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.forced_forced\",regex:/<~>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.none_forced\",regex:/~>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.forced_none\",regex:/<~/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.legal_main\",regex:/<-=>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.main_legal\",regex:/<=->/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.legal_forced\",regex:/<-~>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.forced_legal\",regex:/<~->/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.main_forced\",regex:/<=~>/,comment:\"transitions\"},{token:\"keyword.control.transition.jssmArrow.forced_main\",regex:/<~=>/,comment:\"transitions\"},{token:\"constant.numeric.jssmProbability\",regex:/[0-9]+%/,comment:\"edge probability annotation\"},{token:\"constant.character.jssmAction\",regex:/\\'[^']*\\'/,comment:\"action annotation\"},{token:\"entity.name.tag.jssmLabel.doublequoted\",regex:/\\\"[^\"]*\\\"/,comment:\"jssm label annotation\"},{token:\"entity.name.tag.jssmLabel.atom\",regex:/[a-zA-Z0-9_.+&()#@!?,]/,comment:\"jssm label annotation\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"jssm\",\"jssm_state\"],name:\"JSSM\",scopeName:\"source.jssm\"},r.inherits(s,i),t.JSSMHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jssm\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jssm_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jssm_highlight_rules\").JSSMHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/jssm\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/jssm\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-jsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=i.arrayToMap(\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert\".split(\"|\")),t=i.arrayToMap(\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\".split(\"|\")),n=i.arrayToMap(\"debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__\".split(\"|\")),r=\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:[\"storage.type\",\"text\",\"entity.name.function\"],regex:\"(function)(\\\\s+)(\"+r+\")\"},{token:function(r){return r==\"this\"?\"variable.language\":r==\"function\"?\"storage.type\":e.hasOwnProperty(r)||n.hasOwnProperty(r)?\"keyword\":t.hasOwnProperty(r)?\"constant.language\":/^_?[A-Z][a-zA-Z0-9_]*$/.test(r)?\"language.support.class\":\"identifier\"},regex:r},{token:\"keyword.operator\",regex:\"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.JsxHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";function f(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a}var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsx_highlight_rules\").JsxHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode;r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jsx\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/jsx\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-julia.js",
    "content": "ace.define(\"ace/mode/julia_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#function_decl\"},{include:\"#function_call\"},{include:\"#type_decl\"},{include:\"#keyword\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#string\"},{include:\"#comment\"}],\"#bracket\":[{token:\"keyword.bracket.julia\",regex:\"\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}|,\"}],\"#comment\":[{token:[\"punctuation.definition.comment.julia\",\"comment.line.number-sign.julia\"],regex:\"(#)(?!\\\\{)(.*$)\"}],\"#function_call\":[{token:[\"support.function.julia\",\"text\"],regex:\"([a-zA-Z0-9_]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*\\\\()\"}],\"#function_decl\":[{token:[\"keyword.other.julia\",\"meta.function.julia\",\"entity.name.function.julia\",\"meta.function.julia\",\"text\"],regex:\"(function|macro)(\\\\s*)([a-zA-Z0-9_\\\\{]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*)([(\\\\\\\\{])\"}],\"#keyword\":[{token:\"keyword.other.julia\",regex:\"\\\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\\\b\"},{token:\"keyword.control.julia\",regex:\"\\\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\\\b\"},{token:\"storage.modifier.variable.julia\",regex:\"\\\\b(?:global|local|const|export|import|importall|using)\\\\b\"},{token:\"variable.macro.julia\",regex:\"@[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"}],\"#number\":[{token:\"constant.numeric.julia\",regex:\"\\\\b0(?:x|X)[0-9a-fA-F]*|(?:\\\\b[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]*)?(?:im)?|\\\\bInf(?:32)?\\\\b|\\\\bNaN(?:32)?\\\\b|\\\\btrue\\\\b|\\\\bfalse\\\\b\"}],\"#operator\":[{token:\"keyword.operator.update.julia\",regex:\"=|:=|\\\\+=|-=|\\\\*=|/=|//=|\\\\.//=|\\\\.\\\\*=|\\\\\\\\=|\\\\.\\\\\\\\=|^=|\\\\.^=|%=|\\\\|=|&=|\\\\$=|<<=|>>=\"},{token:\"keyword.operator.ternary.julia\",regex:\"\\\\?|:\"},{token:\"keyword.operator.boolean.julia\",regex:\"\\\\|\\\\||&&|!\"},{token:\"keyword.operator.arrow.julia\",regex:\"->|<-|-->\"},{token:\"keyword.operator.relation.julia\",regex:\">|<|>=|<=|==|!=|\\\\.>|\\\\.<|\\\\.>=|\\\\.>=|\\\\.==|\\\\.!=|\\\\.=|\\\\.!|<:|:>\"},{token:\"keyword.operator.range.julia\",regex:\":\"},{token:\"keyword.operator.shift.julia\",regex:\"<<|>>\"},{token:\"keyword.operator.bitwise.julia\",regex:\"\\\\||\\\\&|~\"},{token:\"keyword.operator.arithmetic.julia\",regex:\"\\\\+|-|\\\\*|\\\\.\\\\*|/|\\\\./|//|\\\\.//|%|\\\\.%|\\\\\\\\|\\\\.\\\\\\\\|\\\\^|\\\\.\\\\^\"},{token:\"keyword.operator.isa.julia\",regex:\"::\"},{token:\"keyword.operator.dots.julia\",regex:\"\\\\.(?=[a-zA-Z])|\\\\.\\\\.+\"},{token:\"keyword.operator.interpolation.julia\",regex:\"\\\\$#?(?=.)\"},{token:[\"variable\",\"keyword.operator.transposed-variable.julia\"],regex:\"([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+)((?:'|\\\\.')*\\\\.?')\"},{token:\"text\",regex:\"\\\\[|\\\\(\"},{token:[\"text\",\"keyword.operator.transposed-matrix.julia\"],regex:\"([\\\\]\\\\)])((?:'|\\\\.')*\\\\.?')\"}],\"#string\":[{token:\"punctuation.definition.string.begin.julia\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"'\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.single.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"',next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\\\\b[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*',next:\"pop\"},{include:\"#string_custom_escaped_char\"},{defaultToken:\"string.quoted.custom-double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:\"`\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"`\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.backtick.julia\"}]}],\"#string_custom_escaped_char\":[{token:\"constant.character.escape.julia\",regex:'\\\\\\\\\"'}],\"#string_escaped_char\":[{token:\"constant.character.escape.julia\",regex:\"\\\\\\\\(?:\\\\\\\\|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)\"}],\"#type_decl\":[{token:[\"keyword.control.type.julia\",\"meta.type.julia\",\"entity.name.type.julia\",\"entity.other.inherited-class.julia\",\"punctuation.separator.inheritance.julia\",\"entity.other.inherited-class.julia\"],regex:\"(type|immutable)(\\\\s+)([a-zA-Z0-9_]+)(?:(\\\\s*)(<:)(\\\\s*[.a-zA-Z0-9_:]+))?\"},{token:[\"other.typed-variable.julia\",\"support.type.julia\"],regex:\"([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"jl\"],firstLineMatch:\"^#!.*\\\\bjulia\\\\s*$\",foldingStartMarker:\"^\\\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\\\b(?!.*\\\\bend\\\\b).*$\",foldingStopMarker:\"^\\\\s*(?:end)\\\\b.*$\",name:\"Julia\",scopeName:\"source.julia\"},r.inherits(s,i),t.JuliaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/julia\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/julia_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./julia_highlight_rules\").JuliaHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment=\"\",this.$id=\"ace/mode/julia\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/julia\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-kotlin.js",
    "content": "ace.define(\"ace/mode/kotlin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{token:[\"text\",\"keyword.other.kotlin\",\"text\",\"entity.name.package.kotlin\",\"text\"],regex:/^(\\s*)(package)\\b(?:(\\s*)([^ ;$]+)(\\s*))?/},{include:\"#imports\"},{include:\"#statements\"}],\"#classes\":[{token:\"text\",regex:/(?=\\s*(?:companion|class|object|interface))/,push:[{token:\"text\",regex:/}|(?=$)/,next:\"pop\"},{token:[\"keyword.other.kotlin\",\"text\"],regex:/\\b((?:companion\\s*)?)(class|object|interface)\\b/,push:[{token:\"text\",regex:/(?=<|{|\\(|:)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\bobject\\b/},{token:\"entity.name.type.class.kotlin\",regex:/\\w+/}]},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?={|$)/,next:\"pop\"},{token:\"entity.other.inherited-class.kotlin\",regex:/\\w+/},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]}]}],\"#comments\":[{token:\"punctuation.definition.comment.kotlin\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.kotlin\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.kotlin\"}]},{token:[\"text\",\"punctuation.definition.comment.kotlin\",\"comment.line.double-slash.kotlin\"],regex:/(\\s*)(\\/\\/)(.*$)/}],\"#constants\":[{token:\"constant.language.kotlin\",regex:/\\b(?:true|false|null|this|super)\\b/},{token:\"constant.numeric.kotlin\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\b/},{token:\"constant.other.kotlin\",regex:/\\b[A-Z][A-Z0-9_]+\\b/}],\"#expressions\":[{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]},{include:\"#types\"},{include:\"#strings\"},{include:\"#constants\"},{include:\"#comments\"},{include:\"#keywords\"}],\"#functions\":[{token:\"text\",regex:/(?=\\s*fun)/,push:[{token:\"text\",regex:/}|(?=$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\bfun\\b/,push:[{token:\"text\",regex:/(?=\\()/,next:\"pop\"},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:[\"text\",\"entity.name.function.kotlin\"],regex:/((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?={|=|$)/,next:\"pop\"},{include:\"#types\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/(?=\\})/,next:\"pop\"},{include:\"#statements\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{include:\"#expressions\"}]}]}],\"#generics\":[{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?=,|>)/,next:\"pop\"},{include:\"#types\"}]},{include:\"#keywords\"},{token:\"storage.type.generic.kotlin\",regex:/\\w+/}],\"#getters-and-setters\":[{token:[\"entity.name.function.kotlin\",\"text\"],regex:/\\b(get)\\b(\\s*\\(\\s*\\))/,push:[{token:\"text\",regex:/\\}|(?=\\bset\\b)|$/,next:\"pop\"},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$|\\bset\\b)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#expressions\"}]}]},{token:[\"entity.name.function.kotlin\",\"text\"],regex:/\\b(set)\\b(\\s*)(?=\\()/,push:[{token:\"text\",regex:/\\}|(?=\\bget\\b)|$/,next:\"pop\"},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$|\\bset\\b)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#expressions\"}]}]}],\"#imports\":[{token:[\"text\",\"keyword.other.kotlin\",\"text\",\"keyword.other.kotlin\"],regex:/^(\\s*)(import)(\\s+[^ $]+\\s+)((?:as)?)/}],\"#keywords\":[{token:\"storage.modifier.kotlin\",regex:/\\b(?:var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\\b/},{token:\"keyword.control.catch-exception.kotlin\",regex:/\\b(?:try|catch|finally|throw)\\b/},{token:\"keyword.control.kotlin\",regex:/\\b(?:if|else|while|for|do|return|when|where|break|continue)\\b/},{token:\"keyword.operator.kotlin\",regex:/\\b(?:in|is|as|assert)\\b/},{token:\"keyword.operator.comparison.kotlin\",regex:/==|!=|===|!==|<=|>=|<|>/},{token:\"keyword.operator.assignment.kotlin\",regex:/=/},{token:\"keyword.operator.declaration.kotlin\",regex:/:/},{token:\"keyword.operator.dot.kotlin\",regex:/\\./},{token:\"keyword.operator.increment-decrement.kotlin\",regex:/\\-\\-|\\+\\+/},{token:\"keyword.operator.arithmetic.kotlin\",regex:/\\-|\\+|\\*|\\/|%/},{token:\"keyword.operator.arithmetic.assign.kotlin\",regex:/\\+=|\\-=|\\*=|\\/=/},{token:\"keyword.operator.logical.kotlin\",regex:/!|&&|\\|\\|/},{token:\"keyword.operator.range.kotlin\",regex:/\\.\\./},{token:\"punctuation.terminator.kotlin\",regex:/;/}],\"#namespaces\":[{token:\"keyword.other.kotlin\",regex:/\\bnamespace\\b/},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]}],\"#parameters\":[{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?=,|\\)|=)/,next:\"pop\"},{include:\"#types\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=,|\\))/,next:\"pop\"},{include:\"#expressions\"}]},{include:\"#keywords\"},{token:\"variable.parameter.function.kotlin\",regex:/\\w+/}],\"#statements\":[{include:\"#namespaces\"},{include:\"#typedefs\"},{include:\"#classes\"},{include:\"#functions\"},{include:\"#variables\"},{include:\"#getters-and-setters\"},{include:\"#expressions\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.kotlin\",regex:/\"\"\"/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/\"\"\"/,next:\"pop\"},{token:\"variable.parameter.template.kotlin\",regex:/\\$\\w+|\\$\\{[^\\}]+\\}/},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.third.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/\"/,next:\"pop\"},{token:\"variable.parameter.template.kotlin\",regex:/\\$\\w+|\\$\\{[^\\}]+\\}/},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.double.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/'/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.single.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/`/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quoted.single.kotlin\"}]}],\"#typedefs\":[{token:\"text\",regex:/(?=\\s*type)/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\btype\\b/},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{include:\"#expressions\"}]}],\"#types\":[{token:\"storage.type.buildin.kotlin\",regex:/\\b(?:Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b/},{token:\"storage.type.buildin.array.kotlin\",regex:/\\b(?:IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\\b/},{token:[\"storage.type.buildin.collection.kotlin\",\"text\"],regex:/\\b(Array|List|Map)(<\\b)/,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#types\"},{include:\"#keywords\"}]},{token:\"text\",regex:/\\w+</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#types\"},{include:\"#keywords\"}]},{token:[\"keyword.operator.tuple.kotlin\",\"text\"],regex:/(#)(\\()/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#types\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/->/}],\"#variables\":[{token:\"text\",regex:/(?=\\s*(?:var|val))/,push:[{token:\"text\",regex:/(?=:|=|$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\b(?:var|val)\\b/,push:[{token:\"text\",regex:/(?=:|=|$)/,next:\"pop\"},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:[\"text\",\"entity.name.variable.kotlin\"],regex:/((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?==|$)/,next:\"pop\"},{include:\"#types\"},{include:\"#getters-and-setters\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{include:\"#expressions\"},{include:\"#getters-and-setters\"}]}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"kt\",\"kts\"],name:\"Kotlin\",scopeName:\"source.Kotlin\"},r.inherits(s,i),t.KotlinHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/kotlin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/kotlin_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./kotlin_highlight_rules\").KotlinHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new o};r.inherits(a,i),function(){this.$id=\"ace/mode/kotlin\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/kotlin\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-latex.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\begin)({)(verbatim)(})\",next:\"verbatim\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\begin)({)(lstlisting)(})\",next:\"lstlisting\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)([\\\\w*]*)(})\"},{token:\"storage.type\",regex:/\\\\verb\\b\\*?/,next:[{token:[\"keyword.operator\",\"string\",\"keyword.operator\"],regex:\"(.)(.*?)(\\\\1|$)|\",next:\"start\"}]},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}],verbatim:[{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\end)({)(verbatim)(})\",next:\"start\"},{defaultToken:\"text\"}],lstlisting:[{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\end)({)(lstlisting)(})\",next:\"start\"},{defaultToken:\"text\"}]},this.normalizeRules()};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/folding/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u={\"\\\\subparagraph\":1,\"\\\\paragraph\":2,\"\\\\subsubsubsection\":3,\"\\\\subsubsection\":4,\"\\\\subsection\":5,\"\\\\section\":6,\"\\\\chapter\":7,\"\\\\part\":8,\"\\\\begin\":9,\"\\\\end\":10},a=t.FoldMode=function(){};r.inherits(a,i),function(){this.foldingStartMarker=/^\\s*\\\\(begin)|\\s*\\\\(part|chapter|(?:sub)*(?:section|paragraph))\\b|{\\s*$/,this.foldingStopMarker=/^\\s*\\\\(end)\\b|^\\s*}/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):i[2]?this.latexSection(e,n,i[0].length-1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.latexBlock=function(e,t,n,r){var i={\"\\\\begin\":1,\"\\\\end\":-1},u=new o(e,t,n),a=u.getCurrentToken();if(!a||a.type!=\"storage.type\"&&a.type!=\"constant.character.escape\")return;var f=a.value,l=i[f],c=function(){var e=u.stepForward(),t=e.type==\"lparen\"?u.stepForward().value:\"\";return l===-1&&(u.stepBackward(),t&&u.stepBackward()),t},h=[c()],p=l===-1?u.getCurrentTokenColumn():e.getLine(t).length,d=t;u.step=l===-1?u.stepBackward:u.stepForward;while(a=u.step()){if(!a||a.type!=\"storage.type\"&&a.type!=\"constant.character.escape\")continue;var v=i[a.value];if(!v)continue;var m=c();if(v===l)h.unshift(m);else if(h.shift()!==m||!h.length)break}if(h.length)return;l==1&&(u.stepBackward(),u.stepBackward());if(r)return u.getCurrentTokenRange();var t=u.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,d,p):new s(d,p,t,u.getCurrentTokenColumn())},this.latexSection=function(e,t,n){var r=new o(e,t,n),i=r.getCurrentToken();if(!i||i.type!=\"storage.type\")return;var a=u[i.value]||0,f=0,l=t;while(i=r.stepForward()){if(i.type!==\"storage.type\")continue;var c=u[i.value]||0;if(c>=9){f||(l=r.getCurrentTokenRow()-1),f+=c==9?1:-1;if(f<0)break}else if(c>=a)break}f||(l=r.getCurrentTokenRow()-1);while(l>t&&!/\\S/.test(e.getLine(l)))l--;return new s(t,e.getLine(t).length,l,e.getLine(l).length)}}.call(a.prototype)}),ace.define(\"ace/mode/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/latex_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/latex\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./latex_highlight_rules\").LatexHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/latex\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new o({braces:!0})};r.inherits(a,i),function(){this.type=\"text\",this.lineCommentStart=\"%\",this.$id=\"ace/mode/latex\",this.getMatching=function(e,t,n){t==undefined&&(t=e.selection.lead),typeof t==\"object\"&&(n=t.column,t=t.row);var r=e.getTokenAt(t,n);if(!r)return;if(r.value==\"\\\\begin\"||r.value==\"\\\\end\")return this.foldingRules.latexBlock(e,t,n,!0)}}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/latex\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-less.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/less\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/less_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/css_completions\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./less_highlight_rules\").LessHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./css_completions\").CssCompletions,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.$completer=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(\"ruleset\",t,n,r)},this.$id=\"ace/mode/less\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/less\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-liquid.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/liquid_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this);var e=\"date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split\",t=\"capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow\",n=\"forloop|tablerowloop\",r=\"assign\",i=this.createKeywordMapper({\"variable.language\":n,keyword:t,\"support.function\":e,\"keyword.definition\":r},\"identifier\");for(var o in this.$rules)this.$rules[o].unshift({token:\"variable\",regex:\"{%\",push:\"liquid-start\"},{token:\"variable\",regex:\"{{\",push:\"liquid-start\"});this.addRules({\"liquid-start\":[{token:\"variable\",regex:\"}}\",next:\"pop\"},{token:\"variable\",regex:\"%}\",next:\"pop\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"/|\\\\*|\\\\-|\\\\+|=|!=|\\\\?\\\\:\"},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}]}),this.normalizeRules()};r.inherits(o,i),t.LiquidHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/liquid\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/liquid_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./liquid_highlight_rules\").LiquidHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/liquid\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/liquid\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-lisp.js",
    "content": "ace.define(\"ace/mode/lisp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq|neq|and|or\",n=\"null|nil\",r=\"cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.lisp\",\"text\",\"entity.name.function.lisp\"],regex:\"(?:\\\\b(?:(defun|defmethod|defmacro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:[\"punctuation.definition.constant.character.lisp\",\"constant.character.lisp\"],regex:\"(#)((?:\\\\w|[\\\\\\\\+-=<>'\\\"&#])+)\"},{token:[\"punctuation.definition.variable.lisp\",\"variable.other.global.lisp\",\"punctuation.definition.variable.lisp\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.lisp\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}]}};r.inherits(s,i),t.LispHighlightRules=s}),ace.define(\"ace/mode/lisp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lisp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lisp_highlight_rules\").LispHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\";\",this.$id=\"ace/mode/lisp\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/lisp\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-livescript.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/livescript\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/text\"],function(e,t,n){function u(e,t){function n(){}return n.prototype=(e.superclass=t).prototype,(e.prototype=new n).constructor=e,typeof t.extended==\"function\"&&t.extended(e),e}function a(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,i,s,o;r=\"(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*\",t.Mode=i=function(t){function o(){var t;this.$tokenizer=new(e(\"../tokenizer\").Tokenizer)(o.Rules);if(t=e(\"../mode/matching_brace_outdent\"))this.$outdent=new t.MatchingBraceOutdent;this.$id=\"ace/mode/livescript\",this.$behaviour=new(e(\"./behaviour/cstyle\").CstyleBehaviour)}var n,i=u((a(o,t).displayName=\"LiveScriptMode\",o),t).prototype,s=o;return n=RegExp(\"(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*\"+r+\")?))\\\\s*$\"),i.getNextLineIndent=function(e,t,r){var i,s;return i=this.$getIndent(t),s=this.$tokenizer.getLineTokens(t,e).tokens,(!s.length||s[s.length-1].type!==\"comment\")&&e===\"start\"&&n.test(t)&&(i+=r),i},i.lineCommentStart=\"#\",i.blockComment={start:\"###\",end:\"###\"},i.checkOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.checkOutdent(t,n):void 8},i.autoOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.autoOutdent(t,n):void 8},o}(e(\"../mode/text\").Mode),s=\"(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))\",o={defaultToken:\"string\"},i.Rules={start:[{token:\"keyword\",regex:\"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)\"+s},{token:\"constant.language\",regex:\"(?:true|false|yes|no|on|off|null|void|undefined)\"+s},{token:\"invalid.illegal\",regex:\"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)\"+s},{token:\"language.support.class\",regex:\"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)\"+s},{token:\"language.support.function\",regex:\"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)\"+s},{token:\"variable.language\",regex:\"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)\"+s},{token:\"identifier\",regex:r+\"\\\\s*:(?![:=])\"},{token:\"variable\",regex:r},{token:\"keyword.operator\",regex:\"(?:\\\\.{3}|\\\\s+\\\\?)\"},{token:\"keyword.variable\",regex:\"(?:@+|::|\\\\.\\\\.)\",next:\"key\"},{token:\"keyword.operator\",regex:\"\\\\.\\\\s*\",next:\"key\"},{token:\"string\",regex:\"\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*\"},{token:\"string.doc\",regex:\"'''\",next:\"qdoc\"},{token:\"string.doc\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"`\",next:\"js\"},{token:\"string\",regex:\"<\\\\[\",next:\"words\"},{token:\"string.regex\",regex:\"//\",next:\"heregex\"},{token:\"comment.doc\",regex:\"/\\\\*\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:\"string.regex\",regex:\"\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}\",next:\"key\"},{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)\"},{token:\"lparen\",regex:\"[({[]\"},{token:\"rparen\",regex:\"[)}\\\\]]\",next:\"key\"},{token:\"keyword.operator\",regex:\"[\\\\^!|&%+\\\\-]+\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?//[gimy$?]{0,4}\",next:\"start\"},{token:\"string.regex\",regex:\"\\\\s*#{\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{defaultToken:\"string.regex\"}],key:[{token:\"keyword.operator\",regex:\"[.?@!]+\"},{token:\"identifier\",regex:r,next:\"start\"},{token:\"text\",regex:\"\",next:\"start\"}],comment:[{token:\"comment.doc\",regex:\".*?\\\\*/\",next:\"start\"},{defaultToken:\"comment.doc\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"key\"},o],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"key\"},o],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"key\"},o],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"key\"},o],js:[{token:\"string\",regex:\"[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`\",next:\"key\"},o],words:[{token:\"string\",regex:\".*?\\\\]>\",next:\"key\"},o]}});\n                (function() {\n                    ace.require([\"ace/mode/livescript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-logiql.js",
    "content": "ace.define(\"ace/mode/logiql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.block\",regex:\"/\\\\*\",push:[{token:\"comment.block\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block\"}]},{token:\"comment.single\",regex:\"//.*\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d+)?(?:[eE][+-]?\\\\d+)?[fd]?\"},{token:\"string\",regex:'\"',push:[{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"constant.language\",regex:\"\\\\b(true|false)\\\\b\"},{token:\"entity.name.type.logicblox\",regex:\"`[a-zA-Z_:]+(\\\\d|\\\\a)*\\\\b\"},{token:\"keyword.start\",regex:\"->\",comment:\"Constraint\"},{token:\"keyword.start\",regex:\"-->\",comment:\"Level 1 Constraint\"},{token:\"keyword.start\",regex:\"<-\",comment:\"Rule\"},{token:\"keyword.start\",regex:\"<--\",comment:\"Level 1 Rule\"},{token:\"keyword.end\",regex:\"\\\\.\",comment:\"Terminator\"},{token:\"keyword.other\",regex:\"!\",comment:\"Negation\"},{token:\"keyword.other\",regex:\",\",comment:\"Conjunction\"},{token:\"keyword.other\",regex:\";\",comment:\"Disjunction\"},{token:\"keyword.operator\",regex:\"<=|>=|!=|<|>\",comment:\"Equality\"},{token:\"keyword.other\",regex:\"@\",comment:\"Equality\"},{token:\"keyword.operator\",regex:\"\\\\+|-|\\\\*|/\",comment:\"Arithmetic operations\"},{token:\"keyword\",regex:\"::\",comment:\"Colon colon\"},{token:\"support.function\",regex:\"\\\\b(agg\\\\s*<<)\",push:[{include:\"$self\"},{token:\"support.function\",regex:\">>\",next:\"pop\"}]},{token:\"storage.modifier\",regex:\"\\\\b(lang:[\\\\w:]*)\"},{token:[\"storage.type\",\"text\"],regex:\"(export|sealed|clauses|block|alias|alias_all)(\\\\s*\\\\()(?=`)\"},{token:\"entity.name\",regex:\"[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\\\(|\\\\[))\"},{token:\"variable.parameter\",regex:\"([a-zA-Z][a-zA-Z_0-9]*|_)\\\\s*(?=(,|\\\\.|<-|->|\\\\)|\\\\]|=))\"}]},this.normalizeRules()};r.inherits(s,i),t.LogiQLHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/logiql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/logiql_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/token_iterator\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./logiql_highlight_rules\").LogiQLHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=e(\"../token_iterator\").TokenIterator,a=e(\"../range\").Range,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=s,this.foldingRules=new o,this.$outdent=new l,this.$behaviour=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(/comment|string/.test(o))return r;if(s.length&&s[s.length-1].type==\"comment.single\")return r;var u=t.match();return/(-->|<--|<-|->|{)\\s*$/.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)?!0:n!==\"\\n\"&&n!==\"\\r\\n\"?!1:/^\\s+/.test(t)?!0:!1},this.autoOutdent=function(e,t,n){if(this.$outdent.autoOutdent(t,n))return;var r=t.getLine(n),i=r.match(/^\\s+/),s=r.lastIndexOf(\".\")+1;if(!i||!n||!s)return 0;var o=t.getLine(n+1),u=this.getMatching(t,{row:n,column:s});if(!u||u.start.row==n)return 0;s=i[0].length;var f=this.$getIndent(t.getLine(u.start.row));t.replace(new a(n+1,0,n+1,s),f)},this.getMatching=function(e,t,n){t==undefined&&(t=e.selection.lead),typeof t==\"object\"&&(n=t.column,t=t.row);var r=e.getTokenAt(t,n),i=\"keyword.start\",s=\"keyword.end\",o;if(!r)return;if(r.type==i){var f=new u(e,t,n);f.step=f.stepForward}else{if(r.type!=s)return;var f=new u(e,t,n);f.step=f.stepBackward}while(o=f.step())if(o.type==i||o.type==s)break;if(!o||o.type==r.type)return;var l=f.getCurrentTokenColumn(),t=f.getCurrentTokenRow();return new a(t,l,t,l+o.value.length)},this.$id=\"ace/mode/logiql\"}.call(c.prototype),t.Mode=c});\n                (function() {\n                    ace.require([\"ace/mode/logiql\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-lsl.js",
    "content": "ace.define(\"ace/mode/lsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=this.createKeywordMapper({\"constant.language.float.lsl\":\"DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI\",\"constant.language.integer.lsl\":\"ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_BODY_SHAPE_TYPE|OBJECT_CHARACTER_TIME|OBJECT_CLICK_ACTION|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_HOVER_HEIGHT|OBJECT_LAST_OWNER_ID|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASS_ALWAYS|PASS_IF_NOT_HANDLED|PASS_NEVER|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR\",\"constant.language.integer.boolean.lsl\":\"FALSE|TRUE\",\"constant.language.quaternion.lsl\":\"ZERO_ROTATION\",\"constant.language.string.lsl\":\"EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED\",\"constant.language.vector.lsl\":\"TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR\",\"invalid.broken.lsl\":\"LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH\",\"invalid.deprecated.lsl\":\"ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect\",\"invalid.illegal.lsl\":\"event\",\"invalid.unimplemented.lsl\":\"CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_EXPERIENCE|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera\",\"reserved.godmode.lsl\":\"llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask\",\"reserved.log.lsl\":\"print\",\"keyword.control.lsl\":\"do|else|for|if|jump|return|while\",\"storage.type.lsl\":\"float|integer|key|list|quaternion|rotation|string|vector\",\"support.function.lsl\":\"llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetAttachedList|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64\",\"support.function.event.lsl\":\"at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result\"},\"identifier\");this.$rules={start:[{token:\"comment.line.double-slash.lsl\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.block.begin.lsl\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.quoted.double.lsl\",start:'\"',end:'\"',next:[{token:\"constant.character.escape.lsl\",regex:/\\\\[tn\"\\\\]/}]},{token:\"constant.numeric.lsl\",regex:\"(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\\\b\"},{token:\"entity.name.state.lsl\",regex:\"\\\\b((state)\\\\s+[A-Za-z_]\\\\w*|default)\\\\b\"},{token:e,regex:\"\\\\b[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"support.function.user-defined.lsl\",regex:/\\b([a-zA-Z_]\\w*)(?=\\(.*?\\))/},{token:\"keyword.operator.lsl\",regex:\"\\\\+\\\\+|\\\\-\\\\-|<<|>>|&&?|\\\\|\\\\|?|\\\\^|~|[!%<>=*+\\\\-\\\\/]=?\"},{token:\"invalid.illegal.keyword.operator.lsl\",regex:\":=?\"},{token:\"punctuation.operator.lsl\",regex:\"\\\\,|\\\\;\"},{token:\"paren.lparen.lsl\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen.lsl\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text.lsl\",regex:\"\\\\s+\"}],comment:[{token:\"comment.block.end.lsl\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment.block.lsl\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.LSLHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/lsl\",[\"require\",\"exports\",\"module\",\"ace/mode/lsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/text\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./lsl_highlight_rules\").LSLHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../lib/oop\"),l=function(){this.HighlightRules=r,this.$outdent=new i,this.$behaviour=new u,this.foldingRules=new a};f.inherits(l,o),function(){this.lineCommentStart=[\"//\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type===\"comment.block.lsl\")return r;if(e===\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/lsl\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/lsl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-lua.js",
    "content": "ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"string.start\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"string.end\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"string\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<=f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/lua\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-luapage.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"string.start\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"string.end\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"string\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<=f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/luapage_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/lua_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=function(){i.call(this);var e=[{token:\"keyword\",regex:\"<\\\\%\\\\=?\",push:\"lua-start\"},{token:\"keyword\",regex:\"<\\\\?lua\\\\=?\",push:\"lua-start\"}],t=[{token:\"keyword\",regex:\"\\\\%>\",next:\"pop\"},{token:\"keyword\",regex:\"\\\\?>\",next:\"pop\"}];this.embedRules(s,\"lua-\",t,[\"start\"]);for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.normalizeRules()};r.inherits(o,i),t.LuaPageHighlightRules=o}),ace.define(\"ace/mode/luapage\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/lua\",\"ace/mode/luapage_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./lua\").Mode,o=e(\"./luapage_highlight_rules\").LuaPageHighlightRules,u=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"lua-\":s})};r.inherits(u,i),function(){this.$id=\"ace/mode/luapage\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/luapage\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-lucene.js",
    "content": "ace.define(\"ace/mode/lucene_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){this.$rules={start:[{token:\"constant.character.negation\",regex:\"[\\\\-]\"},{token:\"constant.character.interro\",regex:\"[\\\\?]\"},{token:\"constant.character.asterisk\",regex:\"[\\\\*]\"},{token:\"constant.character.proximity\",regex:\"~[0-9]+\\\\b\"},{token:\"keyword.operator\",regex:\"(?:AND|OR|NOT)\\\\b\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"keyword\",regex:\"[\\\\S]+:\"},{token:\"string\",regex:'\".*?\"'},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}),ace.define(\"ace/mode/lucene\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lucene_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lucene_highlight_rules\").LuceneHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/lucene\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/lucene\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-makefile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"(?==))\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/makefile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./sh_highlight_rules\"),o=function(){var e=this.createKeywordMapper({keyword:s.reservedKeywords,\"support.function.builtin\":s.languageConstructs,\"invalid.deprecated\":\"debugger\"},\"string\");this.$rules={start:[{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"shell-start\"},{token:\"punctuation.definition.comment.makefile\",regex:/#(?=.)/,next:\"comment\"},{token:[\"keyword.control.makefile\"],regex:\"^(?:\\\\s*\\\\b)(\\\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\\\b)\"},{token:[\"entity.name.function.makefile\",\"text\"],regex:\"^([^\\\\t ]+(?:\\\\s[^\\\\t ]+)*:)(\\\\s*.*)\"}],comment:[{token:\"punctuation.definition.comment.makefile\",regex:/.+\\\\/},{token:\"punctuation.definition.comment.makefile\",regex:\".+\",next:\"start\"}],\"shell-start\":[{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:\"\\\\w+\"},{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"start\"}]}};r.inherits(o,i),t.MakefileHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/makefile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/makefile_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./makefile_highlight_rules\").MakefileHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$indentWithTabs=!0,this.$id=\"ace/mode/makefile\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/makefile\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-markdown.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s|$)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{defaultToken:\"support.function\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/folding/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"`\"?e.bgTokenizer.getState(n)==\"start\"?\"end\":\"start\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e==\"=\"?6:e==\"-\"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]==\"`\"){if(e.bgTokenizer.getState(n)!==\"start\"){while(++n<o){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(u,i,n,0)}while(n-->0){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(n,r.length,u,0)}var f,c=\"markup.heading\";if(l(n)){var p=h();while(++n<o){if(!l(n))continue;var d=h();if(d>=p)break}a=n-(!f||[\"=\",\"-\"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define(\"ace/mode/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/xml\",\"ace/mode/html\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/folding/markdown\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript\").Mode,o=e(\"./xml\").Mode,u=e(\"./html\").Mode,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./folding/markdown\").FoldMode,l=function(){this.HighlightRules=a,this.createModeDelegates({\"js-\":s,\"xml-\":o,\"html-\":u}),this.foldingRules=new f,this.$behaviour=this.$defaultBehaviour};r.inherits(l,i),function(){this.type=\"text\",this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^(\\s*)(?:([-+*])|(\\d+)\\.)(\\s+)/.exec(t);if(!r)return\"\";var i=r[2];return i||(i=parseInt(r[3],10)+1+\".\"),r[1]+i+r[4]}return this.$getIndent(t)},this.$id=\"ace/mode/markdown\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/markdown\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-mask.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s|$)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{defaultToken:\"support.function\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/mask_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/css_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function N(){function t(e,t,n){var r=\"js-\"+e+\"-\",i=e===\"block\"?[\"start\"]:[\"start\",\"no_regex\"];s(o,r,t,i,n)}function n(){s(u,\"css-block-\",/\\}/)}function r(){s(a,\"md-multiline-\",/(\"\"\"|''')/,[])}function i(){s(f,\"html-multiline-\",/(\"\"\"|''')/)}function s(t,n,r,i,s){var o=\"pop\",u=i||[\"start\"];u.length===0&&(u=null),/block|multiline/.test(n)&&(o=n+\"end\",e.$rules[o]=[k(\"empty\",\"\",\"start\")]),e.embedRules(t,n,[k(s||w,r,o)],u,u==null?!0:!1)}this.$rules={start:[k(\"comment\",\"\\\\/\\\\/.*$\"),k(\"comment\",\"\\\\/\\\\*\",[k(\"comment\",\".*?\\\\*\\\\/\",\"start\"),k(\"comment\",\".+\")]),C.string(\"'''\"),C.string('\"\"\"'),C.string('\"'),C.string(\"'\"),C.syntax(/(markdown|md)\\b/,\"md-multiline\",\"multiline\"),C.syntax(/html\\b/,\"html-multiline\",\"multiline\"),C.syntax(/(slot|event)\\b/,\"js-block\",\"block\"),C.syntax(/style\\b/,\"css-block\",\"block\"),C.syntax(/var\\b/,\"js-statement\",\"attr\"),C.tag(),k(b,\"[[({>]\"),k(w,\"[\\\\])};]\",\"start\"),{caseInsensitive:!0}]};var e=this;t(\"interpolation\",/\\]/,w+\".\"+g),t(\"statement\",/\\)|}|;/),t(\"block\",/\\}/),n(),r(),i(),this.normalizeRules()}function k(e,t,n){var r,i,s;return arguments.length===4?(r=n,i=arguments[3]):typeof n==\"string\"?i=n:r=n,typeof e==\"function\"&&(s=e,e=\"empty\"),{token:e,regex:t,push:r,next:i,onMatch:s}}t.MaskHighlightRules=N;var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./css_highlight_rules\").CssHighlightRules,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./html_highlight_rules\").HtmlHighlightRules,l=\"keyword.support.constant.language\",c=\"support.function.markup.bold\",h=\"keyword\",p=\"constant.language\",d=\"keyword.control.markup.italic\",v=\"support.variable.class\",m=\"keyword.operator\",g=\"markup.italic\",y=\"markup.bold\",b=\"paren.lparen\",w=\"paren.rparen\",E,S,x,T;(function(){E=i.arrayToMap(\"log\".split(\"|\")),x=i.arrayToMap(\":dualbind|:bind|:import|slot|event|style|html|markdown|md\".split(\"|\")),S=i.arrayToMap(\"debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import\".split(\"|\")),T=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\"))})(),r.inherits(N,s);var C={string:function(e,t){var n=k(\"string.start\",e,[k(b+\".\"+g,/~\\[/,C.interpolation()),k(\"string.end\",e,\"pop\"),{defaultToken:\"string\"}],t);if(e.length===1){var r=k(\"string.escape\",\"\\\\\\\\\"+e);n.push.unshift(r)}return n},interpolation:function(){return[k(d,/\\s*\\w*\\s*:/),\"js-interpolation-start\"]},tagHead:function(e){return k(v,e,[k(v,/[\\w\\-_]+/),k(b+\".\"+g,/~\\[/,C.interpolation()),C.goUp()])},tag:function(){return{token:\"tag\",onMatch:function(e){return void 0!==S[e]?h:void 0!==x[e]?p:void 0!==E[e]?\"support.function\":void 0!==T[e.toLowerCase()]?l:c},regex:/([@\\w\\-_:+]+)|((^|\\s)(?=\\s*(\\.|#)))/,push:[C.tagHead(/\\./),C.tagHead(/#/),C.expression(),C.attribute(),k(b,/[;>{]/,\"pop\")]}},syntax:function(e,t,n){return{token:p,regex:e,push:{attr:[t+\"-start\",k(m,/;/,\"start\")],multiline:[C.tagHead(/\\./),C.tagHead(/#/),C.attribute(),C.expression(),k(b,/[>\\{]/),k(m,/;/,\"start\"),k(b,/'''|\"\"\"/,[t+\"-start\"])],block:[C.tagHead(/\\./),C.tagHead(/#/),C.attribute(),C.expression(),k(b,/\\{/,[t+\"-start\"])]}[n]}},attribute:function(){return k(function(e){return/^x\\-/.test(e)?v+\".\"+y:v},/[\\w_-]+/,[k(m,/\\s*=\\s*/,[C.string('\"'),C.string(\"'\"),C.word(),C.goUp()]),C.goUp()])},expression:function(){return k(b,/\\(/,[\"js-statement-start\"])},word:function(){return k(\"string\",/[\\w-_]+/)},goUp:function(){return k(\"text\",\"\",\"pop\")},goStart:function(){return k(\"text\",\"\",\"start\")}}}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mask\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mask_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mask_highlight_rules\").MaskHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/mask\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/mask\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-matlab.js",
    "content": "ace.define(\"ace/mode/matlab_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while\",t=\"true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout\",n=\"abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztestadapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog\",r=\"cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse\",i=this.createKeywordMapper({\"storage.type\":r,\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"string\",regex:\"'\",stateName:\"qstring\",next:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]},{token:\"text\",regex:\"\\\\s+\"},{regex:\"\",next:\"noQstring\"}],noQstring:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{token:\"comment\",regex:\"%[^\\r\\n]*\"},{token:\"string\",regex:'\"',stateName:\"qqstring\",next:[{token:\"constant.language.escape\",regex:/\\\\./},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\",next:\"start\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\",next:\"start\"},{token:\"paren.lparen\",regex:\"[({\\\\[]\",next:\"start\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"},{token:\"text\",regex:\"$\",next:\"start\"}],blockComment:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{regex:\"^\\\\s*%}\\\\s*$\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.MatlabHighlightRules=s}),ace.define(\"ace/mode/matlab\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matlab_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matlab_highlight_rules\").MatlabHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"%{\",end:\"%}\"},this.$id=\"ace/mode/matlab\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/matlab\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-maze.js",
    "content": "ace.define(\"ace/mode/maze_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control\",regex:/##|``/,comment:\"Wall\"},{token:\"entity.name.tag\",regex:/\\.\\./,comment:\"Path\"},{token:\"keyword.control\",regex:/<>/,comment:\"Splitter\"},{token:\"entity.name.tag\",regex:/\\*[\\*A-Za-z0-9]/,comment:\"Signal\"},{token:\"constant.numeric\",regex:/[0-9]{2}/,comment:\"Pause\"},{token:\"keyword.control\",regex:/\\^\\^/,comment:\"Start\"},{token:\"keyword.control\",regex:/\\(\\)/,comment:\"Hole\"},{token:\"support.function\",regex:/>>/,comment:\"Out\"},{token:\"support.function\",regex:/>\\//,comment:\"Ln Out\"},{token:\"support.function\",regex:/<</,comment:\"In\"},{token:\"keyword.control\",regex:/--/,comment:\"One use\"},{token:\"constant.language\",regex:/%[LRUDNlrudn]/,comment:\"Direction\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"string.quoted.double\",\"string.quoted.single\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(?:([-+*\\/]=)( *)((?:-)?)([0-9]+)|(=)( *)(?:((?:-)?)([0-9]+)|(\"[^\"]*\")|('[^']*')))/,comment:\"Assignment function\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"entity.name.tag\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(IF|if)( *)(?:([<>]=?|==)( *)((?:-)?)([0-9]+)|(\\*[\\*A-Za-z0-9]))( *)(THEN|then)( *)(%[LRUDNlrudn])(?:( *)(ELSE|else)( *)(%[LRUDNlrudn]))?/,comment:\"Equality Function\"},{token:\"entity.name.function\",regex:/[A-Za-z][A-Za-z0-9]/,comment:\"Function cell\"},{token:\"comment.line.double-slash\",regex:/ *\\/\\/.*/,comment:\"Comment\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"mz\"],name:\"Maze\",scopeName:\"source.maze\"},r.inherits(s,i),t.MazeHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/maze\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/maze_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./maze_highlight_rules\").MazeHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/maze\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/maze\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-mel.js",
    "content": "ace.define(\"ace/mode/mel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"storage.type.mel\",regex:\"\\\\b(matrix|string|vector|float|int|void)\\\\b\"},{caseInsensitive:!0,token:\"support.function.mel\",regex:\"\\\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\\\b\"},{caseInsensitive:!0,token:\"support.constant.mel\",regex:\"\\\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\\\b\"},{caseInsensitive:!0,token:\"keyword.control.mel\",regex:\"\\\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\\\b\"},{token:\"keyword.other.mel\",regex:\"\\\\b(global)\\\\b\"},{caseInsensitive:!0,token:\"constant.language.mel\",regex:\"\\\\b(null|undefined)\\\\b\"},{token:\"constant.numeric.mel\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.mel\",regex:'\"',push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.mel\"}]},{token:[\"variable.other.mel\",\"punctuation.definition.variable.mel\"],regex:\"(\\\\$)([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*?\\\\b)\"},{token:\"punctuation.definition.string.begin.mel\",regex:\"'\",push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.mel\"}]},{token:\"constant.language.mel\",regex:\"\\\\b(false|true|yes|no|on|off)\\\\b\"},{token:\"punctuation.definition.comment.mel\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.mel\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.mel\"}]},{token:[\"comment.line.double-slash.mel\",\"punctuation.definition.comment.mel\"],regex:\"(//)(.*$\\\\n?)\"},{caseInsensitive:!0,token:\"keyword.operator.mel\",regex:\"\\\\b(instanceof)\\\\b\"},{token:\"keyword.operator.symbolic.mel\",regex:\"[-\\\\!\\\\%\\\\&\\\\*\\\\+\\\\=\\\\/\\\\?\\\\:]\"},{token:[\"meta.preprocessor.mel\",\"punctuation.definition.preprocessor.mel\"],regex:\"(^[ \\\\t]*)((?:#)[a-zA-Z]+)\"},{token:[\"meta.function.mel\",\"keyword.other.mel\",\"storage.type.mel\",\"entity.name.function.mel\",\"punctuation.section.function.mel\"],regex:\"(global\\\\s*)?(proc\\\\s*)(\\\\w+\\\\s*\\\\[?\\\\]?\\\\s+|\\\\s+)([A-Za-z_][A-Za-z0-9_\\\\.]*)(\\\\s*\\\\()\",push:[{include:\"$self\"},{token:\"punctuation.section.function.mel\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"meta.function.mel\"}]}]},this.normalizeRules()};r.inherits(s,i),t.MELHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mel_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mel_highlight_rules\").MELHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mel\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/mel\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-mixal.js",
    "content": "ace.define(\"ace/mode/mixal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=function(e){return e&&e.search(/^[A-Z\\u0394\\u03a0\\u03a30-9]{1,10}$/)>-1&&e.search(/[A-Z\\u0394\\u03a0\\u03a3]/)>-1},t=function(e){return e&&[\"NOP\",\"ADD\",\"FADD\",\"SUB\",\"FSUB\",\"MUL\",\"FMUL\",\"DIV\",\"FDIV\",\"NUM\",\"CHAR\",\"HLT\",\"SLA\",\"SRA\",\"SLAX\",\"SRAX\",\"SLC\",\"SRC\",\"MOVE\",\"LDA\",\"LD1\",\"LD2\",\"LD3\",\"LD4\",\"LD5\",\"LD6\",\"LDX\",\"LDAN\",\"LD1N\",\"LD2N\",\"LD3N\",\"LD4N\",\"LD5N\",\"LD6N\",\"LDXN\",\"STA\",\"ST1\",\"ST2\",\"ST3\",\"ST4\",\"ST5\",\"ST6\",\"STX\",\"STJ\",\"STZ\",\"JBUS\",\"IOC\",\"IN\",\"OUT\",\"JRED\",\"JMP\",\"JSJ\",\"JOV\",\"JNOV\",\"JL\",\"JE\",\"JG\",\"JGE\",\"JNE\",\"JLE\",\"JAN\",\"JAZ\",\"JAP\",\"JANN\",\"JANZ\",\"JANP\",\"J1N\",\"J1Z\",\"J1P\",\"J1NN\",\"J1NZ\",\"J1NP\",\"J2N\",\"J2Z\",\"J2P\",\"J2NN\",\"J2NZ\",\"J2NP\",\"J3N\",\"J3Z\",\"J3P\",\"J3NN\",\"J3NZ\",\"J3NP\",\"J4N\",\"J4Z\",\"J4P\",\"J4NN\",\"J4NZ\",\"J4NP\",\"J5N\",\"J5Z\",\"J5P\",\"J5NN\",\"J5NZ\",\"J5NP\",\"J6N\",\"J6Z\",\"J6P\",\"J6NN\",\"J6NZ\",\"J6NP\",\"JXAN\",\"JXZ\",\"JXP\",\"JXNN\",\"JXNZ\",\"JXNP\",\"INCA\",\"DECA\",\"ENTA\",\"ENNA\",\"INC1\",\"DEC1\",\"ENT1\",\"ENN1\",\"INC2\",\"DEC2\",\"ENT2\",\"ENN2\",\"INC3\",\"DEC3\",\"ENT3\",\"ENN3\",\"INC4\",\"DEC4\",\"ENT4\",\"ENN4\",\"INC5\",\"DEC5\",\"ENT5\",\"ENN5\",\"INC6\",\"DEC6\",\"ENT6\",\"ENN6\",\"INCX\",\"DECX\",\"ENTX\",\"ENNX\",\"CMPA\",\"FCMP\",\"CMP1\",\"CMP2\",\"CMP3\",\"CMP4\",\"CMP5\",\"CMP6\",\"CMPX\",\"EQU\",\"ORIG\",\"CON\",\"ALF\",\"END\"].indexOf(e)>-1},n=function(e){return e&&e.search(/[^ A-Z\\u0394\\u03a0\\u03a30-9.,()+*/=$<>@;:'-]/)==-1};this.$rules={start:[{token:\"comment.line.character\",regex:/^ *\\*.*$/},{token:function(t,r,i,s,o,u){return[e(t)?\"variable.other\":\"invalid.illegal\",\"text\",\"keyword.control\",\"text\",n(o)?\"text\":\"invalid.illegal\",\"comment.line.character\"]},regex:/^(\\S+)?( +)(ALF)(  )(.{5})(\\s+.*)?$/},{token:function(t,r,i,s,o,u){return[e(t)?\"variable.other\":\"invalid.illegal\",\"text\",\"keyword.control\",\"text\",n(o)?\"text\":\"invalid.illegal\",\"comment.line.character\"]},regex:/^(\\S+)?( +)(ALF)( )(\\S.{4})(\\s+.*)?$/},{token:function(n,r,i,s){return[e(n)?\"variable.other\":\"invalid.illegal\",\"text\",t(i)?\"keyword.control\":\"invalid.illegal\",\"comment.line.character\"]},regex:/^(\\S+)?( +)(\\S+)(?:\\s*)$/},{token:function(r,i,s,o,u,a){return[e(r)?\"variable.other\":\"invalid.illegal\",\"text\",t(s)?\"keyword.control\":\"invalid.illegal\",\"text\",n(u)?\"text\":\"invalid.illegal\",\"comment.line.character\"]},regex:/^(\\S+)?( +)(\\S+)( +)(\\S+)(\\s+.*)?$/},{defaultToken:\"text\"}]}};r.inherits(s,i),t.MixalHighlightRules=s}),ace.define(\"ace/mode/mixal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mixal_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mixal_highlight_rules\").MixalHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/mixal\",this.lineCommentStart=\"*\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/mixal\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-mushcode.js",
    "content": "ace.define(\"ace/mode/mushcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"@if|@ifelse|@switch|@halt|@dolist|@create|@scent|@sound|@touch|@ataste|@osound|@ahear|@aahear|@amhear|@otouch|@otaste|@drop|@odrop|@adrop|@dropfail|@odropfail|@smell|@oemit|@emit|@pemit|@parent|@clone|@taste|whisper|page|say|pose|semipose|teach|touch|taste|smell|listen|look|move|go|home|follow|unfollow|desert|dismiss|@tel\",t=\"=#0\",n=\"default|edefault|eval|get_eval|get|grep|grepi|hasattr|hasattrp|hasattrval|hasattrpval|lattr|nattr|poss|udefault|ufun|u|v|uldefault|xget|zfun|band|bnand|bnot|bor|bxor|shl|shr|and|cand|cor|eq|gt|gte|lt|lte|nand|neq|nor|not|or|t|xor|con|entrances|exit|followers|home|lcon|lexits|loc|locate|lparent|lsearch|next|num|owner|parent|pmatch|rloc|rnum|room|where|zone|worn|held|carried|acos|asin|atan|ceil|cos|e|exp|fdiv|fmod|floor|log|ln|pi|power|round|sin|sqrt|tan|aposs|andflags|conn|commandssent|controls|doing|elock|findable|flags|fullname|hasflag|haspower|hastype|hidden|idle|isbaker|lock|lstats|money|who|name|nearby|obj|objflags|photo|poll|powers|pendingtext|receivedtext|restarts|restarttime|subj|shortestpath|tmoney|type|visible|cat|element|elements|extract|filter|filterbool|first|foreach|fold|grab|graball|index|insert|itemize|items|iter|last|ldelete|map|match|matchall|member|mix|munge|pick|remove|replace|rest|revwords|setdiff|setinter|setunion|shuffle|sort|sortby|splice|step|wordpos|words|add|lmath|max|mean|median|min|mul|percent|sign|stddev|sub|val|bound|abs|inc|dec|dist2d|dist3d|div|floordiv|mod|modulo|remainder|vadd|vdim|vdot|vmag|vmax|vmin|vmul|vsub|vunit|regedit|regeditall|regeditalli|regediti|regmatch|regmatchi|regrab|regraball|regraballi|regrabi|regrep|regrepi|after|alphamin|alphamax|art|before|brackets|capstr|case|caseall|center|containsfansi|comp|decompose|decrypt|delete|edit|encrypt|escape|if|ifelse|lcstr|left|lit|ljust|merge|mid|ostrlen|pos|repeat|reverse|right|rjust|scramble|secure|space|spellnum|squish|strcat|strmatch|strinsert|stripansi|stripfansi|strlen|switch|switchall|table|tr|trim|ucstr|unsafe|wrap|ctitle|cwho|channels|clock|cflags|ilev|itext|inum|convsecs|convutcsecs|convtime|ctime|etimefmt|isdaylight|mtime|secs|msecs|starttime|time|timefmt|timestring|utctime|atrlock|clone|create|cook|dig|emit|lemit|link|oemit|open|pemit|remit|set|tel|wipe|zemit|fbcreate|fbdestroy|fbwrite|fbclear|fbcopy|fbcopyto|fbclip|fbdump|fbflush|fbhset|fblist|fbstats|qentries|qentry|play|ansi|break|c|asc|die|isdbref|isint|isnum|isletters|linecoords|localize|lnum|nameshort|null|objeval|r|rand|s|setq|setr|soundex|soundslike|valid|vchart|vchart2|vlabel|@@|bakerdays|bodybuild|box|capall|catalog|children|ctrailer|darttime|debt|detailbar|exploredroom|fansitoansi|fansitoxansi|fullbar|halfbar|isdarted|isnewbie|isword|lambda|lobjects|lplayers|lthings|lvexits|lvobjects|lvplayers|lvthings|newswrap|numsuffix|playerson|playersthisweek|randomad|randword|realrandword|replacechr|second|splitamount|strlenall|text|third|tofansi|totalac|unique|getaddressroom|listpropertycomm|listpropertyres|lotowner|lotrating|lotratingcount|lotvalue|boughtproduct|companyabb|companyicon|companylist|companyname|companyowners|companyvalue|employees|invested|productlist|productname|productowners|productrating|productratingcount|productsoldat|producttype|ratedproduct|soldproduct|topproducts|totalspentonproduct|totalstock|transfermoney|uniquebuyercount|uniqueproductsbought|validcompany|deletepicture|fbsave|getpicturesecurity|haspicture|listpictures|picturesize|replacecolor|rgbtocolor|savepicture|setpicturesecurity|showpicture|piechart|piechartlabel|createmaze|drawmaze|drawwireframe\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\";this.$rules={start:[{token:\"variable\",regex:\"%[0-9]{1}\"},{token:\"variable\",regex:\"%q[0-9A-Za-z]{1}\"},{token:\"variable\",regex:\"%[a-zA-Z]{1}\"},{token:\"variable.language\",regex:\"%[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|#|%|<<|>>|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.MushCodeRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/mushcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mushcode_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mushcode_highlight_rules\").MushCodeRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\"),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/mushcode\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/mushcode\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-mysql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/mysql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function i(e){var t=e.start,n=e.escape;return{token:\"string.start\",regex:t,next:[{token:\"constant.language.escape\",regex:n},{token:\"string.end\",next:\"start\",regex:t},{defaultToken:\"string\"}]}}var e=\"alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat\",t=\"by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",n=\"charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee\",r=this.createKeywordMapper({\"support.function\":t,keyword:e,constant:\"false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat\",\"variable.language\":n},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"(?:-- |#).*$\"},i({start:'\"',escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),i({start:\"'\",escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),s.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.buildin\",regex:\"`[^`]*`\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.MysqlHighlightRules=u}),ace.define(\"ace/mode/mysql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mysql_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./mysql_highlight_rules\").MysqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=[\"--\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mysql\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/mysql\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-nix.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/nix_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"true|false\",t=\"with|import|if|else|then|inherit\",n=\"let|in|rec\",r=this.createKeywordMapper({\"constant.language.nix\":e,\"keyword.control.nix\":t,\"keyword.declaration.nix\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/#.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"(==|!=|<=?|>=?)\",token:[\"keyword.operator.comparison.nix\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.nix\"]},{regex:\"=\",token:\"keyword.operator.assignment.nix\"},{token:\"string\",regex:\"''\",next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',push:\"qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{regex:\"}\",token:function(e,t,n){return n[1]&&n[1].charAt(0)==\"q\"?\"constant.language.escape\":\"text\"},next:\"pop\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqdoc:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"''\",next:\"pop\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(s,i),t.NixHighlightRules=s}),ace.define(\"ace/mode/nix\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/nix_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./nix_highlight_rules\").NixHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nix\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/nix\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-nsis.js",
    "content": "ace.define(\"ace/mode/nsis_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.compiler.nsis\",regex:/^\\s*!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|pragma|finalize|getdllversion|gettlbversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\\b/,caseInsensitive:!0},{token:\"keyword.command.nsis\",regex:/^\\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEDllCharacteristics|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\\b/,caseInsensitive:!0},{token:\"keyword.control.nsis\",regex:/^\\s*!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\\b/,caseInsensitive:!0},{token:\"keyword.plugin.nsis\",regex:/^\\s*\\w+::\\w+/,caseInsensitive:!0},{token:\"keyword.operator.comparison.nsis\",regex:/[!<>]?=|<>|<|>/},{token:\"support.function.nsis\",regex:/(?:\\b|^\\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|PageEx|PageExEnd)\\b/,caseInsensitive:!0},{token:\"support.library.nsis\",regex:/\\${[\\w\\.:-]+}/},{token:\"constant.nsis\",regex:/\\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\\b/,caseInsensitive:!0},{token:\"constant.library.nsis\",regex:/\\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsDomainController|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/},{token:\"constant.language.boolean.true.nsis\",regex:/\\b(?:true|on)\\b/},{token:\"constant.language.boolean.false.nsis\",regex:/\\b(?:false|off)\\b/},{token:\"constant.language.option.nsis\",regex:/(?:\\b|^\\s*)(?:(?:un\\.)?components|(?:un\\.)?custom|(?:un\\.)?directory|(?:un\\.)?instfiles|(?:un\\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\\b/,caseInsensitive:!0},{token:\"constant.language.slash-option.nsis\",regex:/\\b\\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\\b/,caseInsensitive:!0},{token:\"constant.numeric.nsis\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\\.[0-9]+)?)\\b/},{token:\"entity.name.function.nsis\",regex:/\\$\\([\\w\\.:-]+\\)/},{token:\"storage.type.function.nsis\",regex:/\\$\\w+/},{token:\"punctuation.definition.string.begin.nsis\",regex:/`/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/`/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.back.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/\"/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.double.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/'/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.single.nsis\"}]},{token:[\"punctuation.definition.comment.nsis\",\"comment.line.nsis\"],regex:/(;|#)(.*$)/},{token:\"punctuation.definition.comment.nsis\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.nsis\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.nsis\"}]},{token:\"text\",regex:/(?:!include|!insertmacro)\\b/}]},this.normalizeRules()};s.metaData={comment:\"\\n\ttodo: - highlight functions\\n\t\",fileTypes:[\"nsi\",\"nsh\"],name:\"NSIS\",scopeName:\"source.nsis\"},r.inherits(s,i),t.NSISHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/nsis\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/nsis_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./nsis_highlight_rules\").NSISHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=[\";\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nsis\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/nsis\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-objectivec.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/objectivec_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./c_cpp_highlight_rules\"),o=s.c_cppHighlightRules,u=function(){var e=\"\\\\\\\\(?:[abefnrtv'\\\"?\\\\\\\\]|[0-3]\\\\d{1,2}|[4-7]\\\\d?|222|x[a-zA-Z0-9]+)\",t=[{regex:\"\\\\b_cmd\\\\b\",token:\"variable.other.selector.objc\"},{regex:\"\\\\b(?:self|super)\\\\b\",token:\"variable.language.objc\"}],n=new o,r=n.getRules();this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:[\"storage.type.objc\",\"punctuation.definition.storage.type.objc\",\"entity.name.type.objc\",\"text\",\"entity.other.inherited-class.objc\"],regex:\"(@)(interface|protocol)(?!.+;)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*:\\\\s*)([A-Za-z]+)\"},{token:[\"storage.type.objc\"],regex:\"(@end)\"},{token:[\"storage.type.objc\",\"entity.name.type.objc\",\"entity.other.inherited-class.objc\"],regex:\"(@implementation)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*?::\\\\s*(?:[A-Za-z][A-Za-z0-9]*))?\"},{token:\"string.begin.objc\",regex:'@\"',next:\"constant_NSString\"},{token:\"storage.type.objc\",regex:\"\\\\bid\\\\s*<\",next:\"protocol_list\"},{token:\"keyword.control.macro.objc\",regex:\"\\\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.control.exception.objc\"],regex:\"(@)(try|catch|finally|throw)\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.other.objc\"],regex:\"(@)(defs|encode)\\\\b\"},{token:[\"storage.type.id.objc\",\"text\"],regex:\"(\\\\bid\\\\b)(\\\\s|\\\\n)?\"},{token:\"storage.type.objc\",regex:\"\\\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"storage.type.objc\"],regex:\"(@)(class|protocol)\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"punctuation\"],regex:\"(@selector)(\\\\s*\\\\()\",next:\"selectors\"},{token:[\"punctuation.definition.storage.modifier.objc\",\"storage.modifier.objc\"],regex:\"(@)(synchronized|public|private|protected|package)\\\\b\"},{token:\"constant.language.objc\",regex:\"\\\\bYES|NO|Nil|nil\\\\b\"},{token:\"support.variable.foundation\",regex:\"\\\\bNSApp\\\\b\"},{token:[\"support.function.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\\\b)\"},{token:[\"support.function.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\\\b)\"},{token:[\"support.class.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\\\b)\"},{token:[\"support.class.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.type.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.class.quartz\"],regex:\"(?:\\\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\\\b)\"},{token:[\"support.type.quartz\"],regex:\"(?:\\\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\\\b)\"},{token:[\"support.type.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa\"],regex:\"(?:\\\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\\\b)\"},{token:[\"support.constant.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\\\b)\"},{token:\"support.function.C99.c\",regex:s.cFunctions},{token:n.getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.section.scope.begin.objc\",regex:\"\\\\[\",next:\"bracketed_content\"},{token:\"meta.function.objc\",regex:\"^(?:-|\\\\+)\\\\s*\"}],constant_NSString:[{token:\"constant.character.escape.objc\",regex:e},{token:\"invalid.illegal.unknown-escape.objc\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"punctuation.definition.string.end\",regex:'\"',next:\"start\"}],protocol_list:[{token:\"punctuation.section.scope.end.objc\",regex:\">\",next:\"start\"},{token:\"support.other.protocol.objc\",regex:\"\\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\\b\"}],selectors:[{token:\"support.function.any-method.name-of-parameter.objc\",regex:\"\\\\b(?:[a-zA-Z_:][\\\\w]*)+\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],bracketed_content:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:[\"support.function.any-method.objc\"],regex:\"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)\",next:\"start\"},{token:\"support.function.any-method.objc\",regex:\"\\\\w+(?::|(?=]))\",next:\"start\"}],bracketed_strings:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:\"keyword.operator.logical.predicate.cocoa\",regex:\"\\\\b(?:AND|OR|NOT|IN)\\\\b\"},{token:[\"invalid.illegal.unknown-method.objc\",\"punctuation.separator.arguments.objc\"],regex:\"\\\\b(\\\\w+)(:)\"},{regex:\"\\\\b(?:ALL|ANY|SOME|NONE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\b\",token:\"keyword.operator.comparison.predicate.cocoa\"},{regex:\"\\\\bC(?:ASEINSENSITIVE|I)\\\\b\",token:\"keyword.other.modifier.predicate.cocoa\"},{regex:\"\\\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\b\",token:\"keyword.other.predicate.cocoa\"},{regex:e,token:\"constant.character.escape.objc\"},{regex:\"\\\\\\\\.\",token:\"invalid.illegal.unknown-escape.objc\"},{token:\"string\",regex:'[^\"\\\\\\\\]'},{token:\"punctuation.definition.string.end.objc\",regex:'\"',next:\"predicates\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],methods:[{token:\"meta.function.objc\",regex:\"(?=\\\\{|#)|;\",next:\"start\"}]};for(var u in r)this.$rules[u]?this.$rules[u].push&&this.$rules[u].push.apply(this.$rules[u],r[u]):this.$rules[u]=r[u];this.$rules.bracketed_content=this.$rules.bracketed_content.concat(this.$rules.start,t),this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(u,o),t.ObjectiveCHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/objectivec\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/objectivec_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./objectivec_highlight_rules\").ObjectiveCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/objectivec\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/objectivec\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ocaml.js",
    "content": "ace.define(\"ace/mode/ocaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with\",t=\"true|false\",n=\"abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\"),i=\"(?:(?:[1-9]\\\\d*)|(?:0))\",s=\"(?:0[oO]?[0-7]+)\",o=\"(?:0[xX][\\\\dA-Fa-f]+)\",u=\"(?:0[bB][01]+)\",a=\"(?:\"+i+\"|\"+s+\"|\"+o+\"|\"+u+\")\",f=\"(?:[eE][+-]?\\\\d+)\",l=\"(?:\\\\.\\\\d+)\",c=\"(?:\\\\d+)\",h=\"(?:(?:\"+c+\"?\"+l+\")|(?:\"+c+\"\\\\.))\",p=\"(?:(?:\"+h+\"|\"+c+\")\"+f+\")\",d=\"(?:\"+p+\"|\"+h+\")\";this.$rules={start:[{token:\"comment\",regex:\"\\\\(\\\\*.*?\\\\*\\\\)\\\\s*?$\"},{token:\"comment\",regex:\"\\\\(\\\\*.*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"'.'\"},{token:\"string\",regex:'\"',next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+d+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:d},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+\\\\.|\\\\-\\\\.|\\\\*\\\\.|\\\\/\\\\.|#|;;|\\\\+|\\\\-|\\\\*|\\\\*\\\\*\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|<-|=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\)\",next:\"start\"},{defaultToken:\"comment\"}],qstring:[{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.OcamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/ocaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ocaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ocaml_highlight_rules\").OcamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour,this.$outdent=new o};r.inherits(a,i);var f=/(?:[({[=:]|[-=]>|\\b(?:else|try|with))\\s*$/;(function(){this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,a=/^\\s*\\(\\*(.*)\\*\\)/;for(i=n;i<=r;i++)if(!a.test(t.getLine(i))){o=!1;break}var f=new u(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(a)[1]:\"(*\"+s+\"*)\")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return(!i.length||i[i.length-1].type!==\"comment\")&&e===\"start\"&&f.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/ocaml\"}).call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/ocaml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-pascal.js",
    "content": "ace.define(\"ace/mode/pascal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"keyword.control.pascal\",regex:\"\\\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\\\b\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.prototype.pascal\",\"entity.name.function.prototype.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?(?=(?:\\\\(.*?\\\\))?;\\\\s*(?:attribute|forward|external))\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.function.pascal\",\"entity.name.function.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?\"},{token:\"constant.numeric.pascal\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"punctuation.definition.comment.pascal\",regex:\"--.*$\",push_:[{token:\"comment.line.double-dash.pascal.one\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.pascal.two\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.pascal.two\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\(\\\\*\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\*\\\\)\",next:\"pop\"},{defaultToken:\"comment.block.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.pascal.two\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:'\"',push:[{token:\"constant.character.escape.pascal\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.pascal\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.pascal\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:\"'\",push:[{token:\"constant.character.escape.apostrophe.pascal\",regex:\"''\"},{token:\"punctuation.definition.string.end.pascal\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.pascal\"}]},{token:\"keyword.operator\",regex:\"[+\\\\-;,/*%]|:=|=\"}]},this.normalizeRules()};r.inherits(s,i),t.PascalHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/pascal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pascal_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./pascal_highlight_rules\").PascalHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=[\"--\",\"//\"],this.blockComment=[{start:\"(*\",end:\"*)\"},{start:\"{\",end:\"}\"}],this.$id=\"ace/mode/pascal\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/pascal\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-perl.js",
    "content": "ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/perl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/perl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./perl_highlight_rules\").PerlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u({start:\"^=(begin|item)\\\\b\",end:\"^=(cut)\\\\b\"}),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.blockComment=[{start:\"=begin\",end:\"=cut\",lineStartOnly:!0},{start:\"=item\",end:\"=cut\",lineStartOnly:!0}],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/perl\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/perl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-pgsql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"variable.language\":\"self|cls\",\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"text\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/pgsql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/perl_highlight_rules\",\"ace/mode/python_highlight_rules\",\"ace/mode/json_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./perl_highlight_rules\").PerlHighlightRules,a=e(\"./python_highlight_rules\").PythonHighlightRules,f=e(\"./json_highlight_rules\").JsonHighlightRules,l=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone\",t=\"RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|json_object_field|json_object_field_text|json_object_keys|json_out|json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|range_after|range_before|range_cmp|range_contained_by|range_contains|range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\",!0),r=[{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"variable.language\",regex:'\".*?\"'},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|!!|!~|!~\\\\*|!~~|!~~\\\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\\\&|\\\\&\\\\&|\\\\&<|\\\\&<\\\\||\\\\&>|\\\\*|\\\\+|\\\\-|/|<|<#>|<\\\\->|<<|<<=|<<\\\\||<=|<>|<\\\\?>|<@|<\\\\^|=|>|>=|>>|>>=|>\\\\^|\\\\?#|\\\\?\\\\-|\\\\?\\\\-\\\\||\\\\?\\\\||\\\\?\\\\|\\\\||@|@\\\\-@|@>|@@|@@@|\\\\^|\\\\||\\\\|\\\\&>|\\\\|/|\\\\|>>|\\\\|\\\\||\\\\|\\\\|/|~|~\\\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}];this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"keyword.statementBegin\",regex:\"[a-zA-Z]+\",next:\"statement\"},{token:\"support.buildin\",regex:\"^\\\\\\\\[\\\\S]+.*$\"}],statement:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentStatement\"},{token:\"statementEnd\",regex:\";\",next:\"start\"},{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"perl-start\"},{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"python-start\"},{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"json-start\"},{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"javascript-start\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$$\",next:\"dollarSql\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarStatementString\"}].concat(r),dollarSql:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentDollarSql\"},{token:\"string\",regex:\"^\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSqlString\"}].concat(r),comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],commentStatement:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"statement\"},{defaultToken:\"comment\"}],commentDollarSql:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"dollarSql\"},{defaultToken:\"comment\"}],dollarStatementString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\".+\"}],dollarSqlString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSql\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.embedRules(u,\"perl-\",[{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"statement\"}]),this.embedRules(a,\"python-\",[{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"statement\"}]),this.embedRules(f,\"json-\",[{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"statement\"}]),this.embedRules(l,\"javascript-\",[{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"statement\"}])};r.inherits(c,o),t.PgsqlHighlightRules=c}),ace.define(\"ace/mode/pgsql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pgsql_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./pgsql_highlight_rules\").PgsqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){return e==\"start\"||e==\"keyword.statementEnd\"?\"\":this.$getIndent(t)},this.$id=\"ace/mode/pgsql\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/pgsql\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-php.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/php_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./html_highlight_rules\").HtmlHighlightRules,a=function(){var e=s,t=i.arrayToMap(\"abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|class_uses|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_declared_traits|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_affected_rows|mysqli_autocommit|mysqli_bind_param|mysqli_bind_result|mysqli_cache_stats|mysqli_change_user|mysqli_character_set_name|mysqli_client_encoding|mysqli_close|mysqli_commit|mysqli_connect|mysqli_connect_errno|mysqli_connect_error|mysqli_data_seek|mysqli_debug|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_dump_debug_info|mysqli_embedded_server_end|mysqli_embedded_server_start|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_errno|mysqli_error|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_fetch_all|mysqli_fetch_array|mysqli_fetch_assoc|mysqli_fetch_field|mysqli_fetch_field_direct|mysqli_fetch_fields|mysqli_fetch_lengths|mysqli_fetch_object|mysqli_fetch_row|mysqli_field_count|mysqli_field_seek|mysqli_field_tell|mysqli_free_result|mysqli_get_charset|mysqli_get_client_info|mysqli_get_client_stats|mysqli_get_client_version|mysqli_get_connection_stats|mysqli_get_host_info|mysqli_get_metadata|mysqli_get_proto_info|mysqli_get_server_info|mysqli_get_server_version|mysqli_get_warnings|mysqli_info|mysqli_init|mysqli_insert_id|mysqli_kill|mysqli_link_construct|mysqli_master_query|mysqli_more_results|mysqli_multi_query|mysqli_next_result|mysqli_num_fields|mysqli_num_rows|mysqli_options|mysqli_param_count|mysqli_ping|mysqli_poll|mysqli_prepare|mysqli_query|mysqli_real_connect|mysqli_real_escape_string|mysqli_real_query|mysqli_reap_async_query|mysqli_refresh|mysqli_report|mysqli_result|mysqli_rollback|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_select_db|mysqli_send_long_data|mysqli_send_query|mysqli_set_charset|mysqli_set_local_infile_default|mysqli_set_local_infile_handler|mysqli_set_opt|mysqli_slave_query|mysqli_sqlstate|mysqli_ssl_set|mysqli_stat|mysqli_stmt|mysqli_stmt_affected_rows|mysqli_stmt_attr_get|mysqli_stmt_attr_set|mysqli_stmt_bind_param|mysqli_stmt_bind_result|mysqli_stmt_close|mysqli_stmt_data_seek|mysqli_stmt_errno|mysqli_stmt_error|mysqli_stmt_execute|mysqli_stmt_fetch|mysqli_stmt_field_count|mysqli_stmt_free_result|mysqli_stmt_get_result|mysqli_stmt_get_warnings|mysqli_stmt_init|mysqli_stmt_insert_id|mysqli_stmt_next_result|mysqli_stmt_num_rows|mysqli_stmt_param_count|mysqli_stmt_prepare|mysqli_stmt_reset|mysqli_stmt_result_metadata|mysqli_stmt_send_long_data|mysqli_stmt_sqlstate|mysqli_stmt_store_result|mysqli_store_result|mysqli_thread_id|mysqli_thread_safe|mysqli_use_result|mysqli_warning|mysqli_warning_count|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|trait_exists|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type\".split(\"|\")),n=i.arrayToMap(\"abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|trait|try|use|var|while|xor\".split(\"|\")),r=i.arrayToMap(\"die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset\".split(\"|\")),o=i.arrayToMap(\"true|TRUE|false|FALSE|null|NULL|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__\".split(\"|\")),u=i.arrayToMap(\"$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv\".split(\"|\")),a=i.arrayToMap(\"key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase\".split(\"|\")),f=i.arrayToMap(\"cfunction|old_function\".split(\"|\")),l=i.arrayToMap([]);this.$rules={start:[{token:\"comment\",regex:/(?:#|\\/\\/)(?:[^?]|\\?[^>])*/},e.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/][gimy]*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\\\b\"},{token:[\"keyword\",\"text\",\"support.class\"],regex:\"\\\\b(new)(\\\\s+)(\\\\w+)\"},{token:[\"support.class\",\"keyword.operator\"],regex:\"\\\\b(\\\\w+)(::)\"},{token:\"constant.language\",regex:\"\\\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\\\b\"},{token:function(e){return n.hasOwnProperty(e)?\"keyword\":o.hasOwnProperty(e)?\"constant.language\":u.hasOwnProperty(e)?\"variable.language\":l.hasOwnProperty(e)?\"invalid.illegal\":t.hasOwnProperty(e)?\"support.function\":e==\"debugger\"?\"invalid.deprecated\":e.match(/^(\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*|self|parent)$/)?\"variable\":\"identifier\"},regex:/[a-zA-Z_$\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{onMatch:function(e,t,n){e=e.substr(3);if(e[0]==\"'\"||e[0]=='\"')e=e.slice(1,-1);return n.unshift(this.next,e),\"markup.list\"},regex:/<<<(?:\\w+|'\\w+'|\"\\w+\")$/,next:\"heredoc\"},{token:\"keyword.operator\",regex:\"::|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|\\\\.=|=|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|/=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:/[,;]/},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],heredoc:[{onMatch:function(e,t,n){return n[1]!=e?\"string\":(n.shift(),n.shift(),\"markup.list\")},regex:\"^\\\\w+(?=;?$)\",next:\"start\"},{token:\"string\",regex:\".*\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:'\\\\\\\\(?:[nrtvef\\\\\\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'},{token:\"variable\",regex:/\\$[\\w]+(?:\\[[\\w\\]+]|[=\\-]>\\w+)?/},{token:\"variable\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(a,o);var f=function(){u.call(this);var e=[{token:\"support.php_tag\",regex:\"<\\\\?(?:php|=)?\",push:\"php-start\"}],t=[{token:\"support.php_tag\",regex:\"\\\\?>\",next:\"pop\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(a,\"php-\",t,[\"start\"]),this.normalizeRules()};r.inherits(f,u),t.PhpHighlightRules=f,t.PhpLangHighlightRules=a}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/php_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function s(e,t){return e.type.lastIndexOf(t)>-1}var r={abs:[\"int abs(int number)\",\"Return the absolute value of the number\"],acos:[\"float acos(float number)\",\"Return the arc cosine of the number in radians\"],acosh:[\"float acosh(float number)\",\"Returns the inverse hyperbolic cosine of the number, i.e. the value whose hyperbolic cosine is number\"],addGlob:[\"bool addGlob(string pattern[,int flags [, array options]])\",\"Add files matching the glob pattern. See php's glob for the pattern syntax.\"],addPattern:[\"bool addPattern(string pattern[, string path [, array options]])\",\"Add files matching the pcre pattern. See php's pcre for the pattern syntax.\"],addcslashes:[\"string addcslashes(string str, string charlist)\",\"Escapes all chars mentioned in charlist with backslash. It creates octal representations if asked to backslash characters with 8th bit set or with ASCII<32 (except '\\\\n', '\\\\r', '\\\\t' etc...)\"],addslashes:[\"string addslashes(string str)\",\"Escapes single quote, double quotes and backslash characters in a string with backslashes\"],apache_child_terminate:[\"bool apache_child_terminate(void)\",\"Terminate apache process after this request\"],apache_get_modules:[\"array apache_get_modules(void)\",\"Get a list of loaded Apache modules\"],apache_get_version:[\"string apache_get_version(void)\",\"Fetch Apache version\"],apache_getenv:[\"bool apache_getenv(string variable [, bool walk_to_top])\",\"Get an Apache subprocess_env variable\"],apache_lookup_uri:[\"object apache_lookup_uri(string URI)\",\"Perform a partial request of the given URI to obtain information about it\"],apache_note:[\"string apache_note(string note_name [, string note_value])\",\"Get and set Apache request notes\"],apache_request_auth_name:[\"string apache_request_auth_name()\",\"\"],apache_request_auth_type:[\"string apache_request_auth_type()\",\"\"],apache_request_discard_request_body:[\"long apache_request_discard_request_body()\",\"\"],apache_request_err_headers_out:[\"array apache_request_err_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all headers that go out in case of an error or a subrequest\"],apache_request_headers:[\"array apache_request_headers(void)\",\"Fetch all HTTP request headers\"],apache_request_headers_in:[\"array apache_request_headers_in()\",\"* fetch all incoming request headers\"],apache_request_headers_out:[\"array apache_request_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all outgoing request headers\"],apache_request_is_initial_req:[\"bool apache_request_is_initial_req()\",\"\"],apache_request_log_error:[\"boolean apache_request_log_error(string message, [long facility])\",\"\"],apache_request_meets_conditions:[\"long apache_request_meets_conditions()\",\"\"],apache_request_remote_host:[\"int apache_request_remote_host([int type])\",\"\"],apache_request_run:[\"long apache_request_run()\",\"This is a wrapper for ap_sub_run_req and ap_destory_sub_req.  It takes      sub_request, runs it, destroys it, and returns it's status.\"],apache_request_satisfies:[\"long apache_request_satisfies()\",\"\"],apache_request_server_port:[\"int apache_request_server_port()\",\"\"],apache_request_set_etag:[\"void apache_request_set_etag()\",\"\"],apache_request_set_last_modified:[\"void apache_request_set_last_modified()\",\"\"],apache_request_some_auth_required:[\"bool apache_request_some_auth_required()\",\"\"],apache_request_sub_req_lookup_file:[\"object apache_request_sub_req_lookup_file(string file)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_sub_req_lookup_uri:[\"object apache_request_sub_req_lookup_uri(string uri)\",\"Returns sub-request for the specified uri.  You would     need to run it yourself with run()\"],apache_request_sub_req_method_uri:[\"object apache_request_sub_req_method_uri(string method, string uri)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_update_mtime:[\"long apache_request_update_mtime([int dependency_mtime])\",\"\"],apache_reset_timeout:[\"bool apache_reset_timeout(void)\",\"Reset the Apache write timer\"],apache_response_headers:[\"array apache_response_headers(void)\",\"Fetch all HTTP response headers\"],apache_setenv:[\"bool apache_setenv(string variable, string value [, bool walk_to_top])\",\"Set an Apache subprocess_env variable\"],array_change_key_case:[\"array array_change_key_case(array input [, int case=CASE_LOWER])\",\"Retuns an array with all string keys lowercased [or uppercased]\"],array_chunk:[\"array array_chunk(array input, int size [, bool preserve_keys])\",\"Split array into chunks\"],array_combine:[\"array array_combine(array keys, array values)\",\"Creates an array by using the elements of the first parameter as keys and the elements of the second as the corresponding values\"],array_count_values:[\"array array_count_values(array input)\",\"Return the value as key and the frequency of that value in input as value\"],array_diff:[\"array array_diff(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments.\"],array_diff_assoc:[\"array array_diff_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal\"],array_diff_key:[\"array array_diff_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. This function is like array_diff() but works on the keys instead of the values. The associativity is preserved.\"],array_diff_uassoc:[\"array array_diff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Elements are compared by user supplied function.\"],array_diff_ukey:[\"array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved.\"],array_fill:[\"array array_fill(int start_key, int num, mixed val)\",\"Create an array containing num elements starting with index start_key each initialized to val\"],array_fill_keys:[\"array array_fill_keys(array keys, mixed val)\",\"Create an array using the elements of the first parameter as keys each initialized to val\"],array_filter:[\"array array_filter(array input [, mixed callback])\",\"Filters elements from the array via the callback.\"],array_flip:[\"array array_flip(array input)\",\"Return array with key <-> value flipped\"],array_intersect:[\"array array_intersect(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments\"],array_intersect_assoc:[\"array array_intersect_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check\"],array_intersect_key:[\"array array_intersect_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). Equivalent of array_intersect_assoc() but does not do compare of the data.\"],array_intersect_uassoc:[\"array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check and they are compared by using an user-supplied callback.\"],array_intersect_ukey:[\"array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). The comparison of the keys is performed by a user supplied function. Equivalent of array_intersect_uassoc() but does not do compare of the data.\"],array_key_exists:[\"bool array_key_exists(mixed key, array search)\",\"Checks if the given key or index exists in the array\"],array_keys:[\"array array_keys(array input [, mixed search_value[, bool strict]])\",\"Return just the keys from the input array, optionally only for the specified search_value\"],array_map:[\"array array_map(mixed callback, array input1 [, array input2 ,...])\",\"Applies the callback to the elements in given arrays.\"],array_merge:[\"array array_merge(array arr1, array arr2 [, array ...])\",\"Merges elements from passed arrays into one array\"],array_merge_recursive:[\"array array_merge_recursive(array arr1, array arr2 [, array ...])\",\"Recursively merges elements from passed arrays into one array\"],array_multisort:[\"bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]], ...])\",\"Sort multiple arrays at once similar to how ORDER BY clause works in SQL\"],array_pad:[\"array array_pad(array input, int pad_size, mixed pad_value)\",\"Returns a copy of input array padded with pad_value to size pad_size\"],array_pop:[\"mixed array_pop(array stack)\",\"Pops an element off the end of the array\"],array_product:[\"mixed array_product(array input)\",\"Returns the product of the array entries\"],array_push:[\"int array_push(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the end of the array\"],array_rand:[\"mixed array_rand(array input [, int num_req])\",\"Return key/keys for random entry/entries in the array\"],array_reduce:[\"mixed array_reduce(array input, mixed callback [, mixed initial])\",\"Iteratively reduce the array to a single value via the callback.\"],array_replace:[\"array array_replace(array arr1, array arr2 [, array ...])\",\"Replaces elements from passed arrays into one array\"],array_replace_recursive:[\"array array_replace_recursive(array arr1, array arr2 [, array ...])\",\"Recursively replaces elements from passed arrays into one array\"],array_reverse:[\"array array_reverse(array input [, bool preserve keys])\",\"Return input as a new array with the order of the entries reversed\"],array_search:[\"mixed array_search(mixed needle, array haystack [, bool strict])\",\"Searches the array for a given value and returns the corresponding key if successful\"],array_shift:[\"mixed array_shift(array stack)\",\"Pops an element off the beginning of the array\"],array_slice:[\"array array_slice(array input, int offset [, int length [, bool preserve_keys]])\",\"Returns elements specified by offset and length\"],array_splice:[\"array array_splice(array input, int offset [, int length [, array replacement]])\",\"Removes the elements designated by offset and length and replace them with supplied array\"],array_sum:[\"mixed array_sum(array input)\",\"Returns the sum of the array entries\"],array_udiff:[\"array array_udiff(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments. Elements are compared by user supplied function.\"],array_udiff_assoc:[\"array array_udiff_assoc(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys are compared by user supplied function.\"],array_udiff_uassoc:[\"array array_udiff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func, callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys and elements are compared by user supplied functions.\"],array_uintersect:[\"array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback.\"],array_uintersect_assoc:[\"array array_uintersect_assoc(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Data is compared by using an user-supplied callback.\"],array_uintersect_uassoc:[\"array array_uintersect_uassoc(array arr1, array arr2 [, array ...], callback data_compare_func, callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Both data and keys are compared by using user-supplied callbacks.\"],array_unique:[\"array array_unique(array input [, int sort_flags])\",\"Removes duplicate values from array\"],array_unshift:[\"int array_unshift(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the beginning of the array\"],array_values:[\"array array_values(array input)\",\"Return just the values from the input array\"],array_walk:[\"bool array_walk(array input, string funcname [, mixed userdata])\",\"Apply a user function to every member of an array\"],array_walk_recursive:[\"bool array_walk_recursive(array input, string funcname [, mixed userdata])\",\"Apply a user function recursively to every member of an array\"],arsort:[\"bool arsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order and maintain index association\"],asin:[\"float asin(float number)\",\"Returns the arc sine of the number in radians\"],asinh:[\"float asinh(float number)\",\"Returns the inverse hyperbolic sine of the number, i.e. the value whose hyperbolic sine is number\"],asort:[\"bool asort(array &array_arg [, int sort_flags])\",\"Sort an array and maintain index association\"],assert:[\"int assert(string|bool assertion)\",\"Checks if assertion is false\"],assert_options:[\"mixed assert_options(int what [, mixed value])\",\"Set/get the various assert flags\"],atan:[\"float atan(float number)\",\"Returns the arc tangent of the number in radians\"],atan2:[\"float atan2(float y, float x)\",\"Returns the arc tangent of y/x, with the resulting quadrant determined by the signs of y and x\"],atanh:[\"float atanh(float number)\",\"Returns the inverse hyperbolic tangent of the number, i.e. the value whose hyperbolic tangent is number\"],attachIterator:[\"void attachIterator(Iterator iterator[, mixed info])\",\"Attach a new iterator\"],base64_decode:[\"string base64_decode(string str[, bool strict])\",\"Decodes string using MIME base64 algorithm\"],base64_encode:[\"string base64_encode(string str)\",\"Encodes string using MIME base64 algorithm\"],base_convert:[\"string base_convert(string number, int frombase, int tobase)\",\"Converts a number in a string from any base <= 36 to any base <= 36\"],basename:[\"string basename(string path [, string suffix])\",\"Returns the filename component of the path\"],bcadd:[\"string bcadd(string left_operand, string right_operand [, int scale])\",\"Returns the sum of two arbitrary precision numbers\"],bccomp:[\"int bccomp(string left_operand, string right_operand [, int scale])\",\"Compares two arbitrary precision numbers\"],bcdiv:[\"string bcdiv(string left_operand, string right_operand [, int scale])\",\"Returns the quotient of two arbitrary precision numbers (division)\"],bcmod:[\"string bcmod(string left_operand, string right_operand)\",\"Returns the modulus of the two arbitrary precision operands\"],bcmul:[\"string bcmul(string left_operand, string right_operand [, int scale])\",\"Returns the multiplication of two arbitrary precision numbers\"],bcpow:[\"string bcpow(string x, string y [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another\"],bcpowmod:[\"string bcpowmod(string x, string y, string mod [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous\"],bcscale:[\"bool bcscale(int scale)\",\"Sets default scale parameter for all bc math functions\"],bcsqrt:[\"string bcsqrt(string operand [, int scale])\",\"Returns the square root of an arbitray precision number\"],bcsub:[\"string bcsub(string left_operand, string right_operand [, int scale])\",\"Returns the difference between two arbitrary precision numbers\"],bin2hex:[\"string bin2hex(string data)\",\"Converts the binary representation of data to hex\"],bind_textdomain_codeset:[\"string bind_textdomain_codeset (string domain, string codeset)\",\"Specify the character encoding in which the messages from the DOMAIN message catalog will be returned.\"],bindec:[\"int bindec(string binary_number)\",\"Returns the decimal equivalent of the binary number\"],bindtextdomain:[\"string bindtextdomain(string domain_name, string dir)\",\"Bind to the text domain domain_name, looking for translations in dir. Returns the current domain\"],birdstep_autocommit:[\"bool birdstep_autocommit(int index)\",\"\"],birdstep_close:[\"bool birdstep_close(int id)\",\"\"],birdstep_commit:[\"bool birdstep_commit(int index)\",\"\"],birdstep_connect:[\"int birdstep_connect(string server, string user, string pass)\",\"\"],birdstep_exec:[\"int birdstep_exec(int index, string exec_str)\",\"\"],birdstep_fetch:[\"bool birdstep_fetch(int index)\",\"\"],birdstep_fieldname:[\"string birdstep_fieldname(int index, int col)\",\"\"],birdstep_fieldnum:[\"int birdstep_fieldnum(int index)\",\"\"],birdstep_freeresult:[\"bool birdstep_freeresult(int index)\",\"\"],birdstep_off_autocommit:[\"bool birdstep_off_autocommit(int index)\",\"\"],birdstep_result:[\"mixed birdstep_result(int index, mixed col)\",\"\"],birdstep_rollback:[\"bool birdstep_rollback(int index)\",\"\"],bzcompress:[\"string bzcompress(string source [, int blocksize100k [, int workfactor]])\",\"Compresses a string into BZip2 encoded data\"],bzdecompress:[\"string bzdecompress(string source [, int small])\",\"Decompresses BZip2 compressed data\"],bzerrno:[\"int bzerrno(resource bz)\",\"Returns the error number\"],bzerror:[\"array bzerror(resource bz)\",\"Returns the error number and error string in an associative array\"],bzerrstr:[\"string bzerrstr(resource bz)\",\"Returns the error string\"],bzopen:[\"resource bzopen(string|int file|fp, string mode)\",\"Opens a new BZip2 stream\"],bzread:[\"string bzread(resource bz[, int length])\",\"Reads up to length bytes from a BZip2 stream, or 1024 bytes if length is not specified\"],cal_days_in_month:[\"int cal_days_in_month(int calendar, int month, int year)\",\"Returns the number of days in a month for a given year and calendar\"],cal_from_jd:[\"array cal_from_jd(int jd, int calendar)\",\"Converts from Julian Day Count to a supported calendar and return extended information\"],cal_info:[\"array cal_info([int calendar])\",\"Returns information about a particular calendar\"],cal_to_jd:[\"int cal_to_jd(int calendar, int month, int day, int year)\",\"Converts from a supported calendar to Julian Day Count\"],call_user_func:[\"mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],call_user_func_array:[\"mixed call_user_func_array(string function_name, array parameters)\",\"Call a user function which is the first parameter with the arguments contained in array\"],call_user_method:[\"mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])\",\"Call a user method on a specific object or class\"],call_user_method_array:[\"mixed call_user_method_array(string method_name, mixed object, array params)\",\"Call a user method on a specific object or class using a parameter array\"],ceil:[\"float ceil(float number)\",\"Returns the next highest integer value of the number\"],chdir:[\"bool chdir(string directory)\",\"Change the current directory\"],checkdate:[\"bool checkdate(int month, int day, int year)\",\"Returns true(1) if it is a valid date in gregorian calendar\"],chgrp:[\"bool chgrp(string filename, mixed group)\",\"Change file group\"],chmod:[\"bool chmod(string filename, int mode)\",\"Change file mode\"],chown:[\"bool chown (string filename, mixed user)\",\"Change file owner\"],chr:[\"string chr(int ascii)\",\"Converts ASCII code to a character\"],chroot:[\"bool chroot(string directory)\",\"Change root directory\"],chunk_split:[\"string chunk_split(string str [, int chunklen [, string ending]])\",\"Returns split line\"],class_alias:[\"bool class_alias(string user_class_name , string alias_name [, bool autoload])\",\"Creates an alias for user defined class\"],class_exists:[\"bool class_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],class_implements:[\"array class_implements(mixed what [, bool autoload ])\",\"Return all classes and interfaces implemented by SPL\"],class_parents:[\"array class_parents(object instance [, boolean autoload = true])\",\"Return an array containing the names of all parent classes\"],clearstatcache:[\"void clearstatcache([bool clear_realpath_cache[, string filename]])\",\"Clear file stat cache\"],closedir:[\"void closedir([resource dir_handle])\",\"Close directory connection identified by the dir_handle\"],closelog:[\"bool closelog(void)\",\"Close connection to system logger\"],collator_asort:[\"bool collator_asort( Collator $coll, array(string) $arr )\",\"* Sort array using specified collator, maintaining index association.\"],collator_compare:[\"int collator_compare( Collator $coll, string $str1, string $str2 )\",\"* Compare two strings.\"],collator_create:[\"Collator collator_create( string $locale )\",\"* Create collator.\"],collator_get_attribute:[\"int collator_get_attribute( Collator $coll, int $attr )\",\"* Get collation attribute value.\"],collator_get_error_code:[\"int collator_get_error_code( Collator $coll )\",\"* Get collator's last error code.\"],collator_get_error_message:[\"string collator_get_error_message( Collator $coll )\",\"* Get text description for collator's last error code.\"],collator_get_locale:[\"string collator_get_locale( Collator $coll, int $type )\",\"* Gets the locale name of the collator.\"],collator_get_sort_key:[\"bool collator_get_sort_key( Collator $coll, string $str )\",\"* Get a sort key for a string from a Collator. }}}\"],collator_get_strength:[\"int collator_get_strength(Collator coll)\",\"* Returns the current collation strength.\"],collator_set_attribute:[\"bool collator_set_attribute( Collator $coll, int $attr, int $val )\",\"* Set collation attribute.\"],collator_set_strength:[\"bool collator_set_strength(Collator coll, int strength)\",\"* Set the collation strength.\"],collator_sort:[\"bool collator_sort(  Collator $coll, array(string) $arr [, int $sort_flags] )\",\"* Sort array using specified collator.\"],collator_sort_with_sort_keys:[\"bool collator_sort_with_sort_keys( Collator $coll, array(string) $arr )\",\"* Equivalent to standard PHP sort using Collator.  * Uses ICU ucol_getSortKey for performance.\"],com_create_guid:[\"string com_create_guid()\",\"Generate a globally unique identifier (GUID)\"],com_event_sink:[\"bool com_event_sink(object comobject, object sinkobject [, mixed sinkinterface])\",\"Connect events from a COM object to a PHP object\"],com_get_active_object:[\"object com_get_active_object(string progid [, int code_page ])\",\"Returns a handle to an already running instance of a COM object\"],com_load_typelib:[\"bool com_load_typelib(string typelib_name [, int case_insensitive])\",\"Loads a Typelibrary and registers its constants\"],com_message_pump:[\"bool com_message_pump([int timeoutms])\",\"Process COM messages, sleeping for up to timeoutms milliseconds\"],com_print_typeinfo:[\"bool com_print_typeinfo(object comobject | string typelib, string dispinterface, bool wantsink)\",\"Print out a PHP class definition for a dispatchable interface\"],compact:[\"array compact(mixed var_names [, mixed ...])\",\"Creates a hash containing variables and their values\"],compose_locale:[\"static string compose_locale($array)\",\"* Creates a locale by combining the parts of locale-ID passed  * }}}\"],confirm_extname_compiled:[\"string confirm_extname_compiled(string arg)\",\"Return a string to confirm that the module is compiled in\"],connection_aborted:[\"int connection_aborted(void)\",\"Returns true if client disconnected\"],connection_status:[\"int connection_status(void)\",\"Returns the connection status bitfield\"],constant:[\"mixed constant(string const_name)\",\"Given the name of a constant this function will return the constant's associated value\"],convert_cyr_string:[\"string convert_cyr_string(string str, string from, string to)\",\"Convert from one Cyrillic character set to another\"],convert_uudecode:[\"string convert_uudecode(string data)\",\"decode a uuencoded string\"],convert_uuencode:[\"string convert_uuencode(string data)\",\"uuencode a string\"],copy:[\"bool copy(string source_file, string destination_file [, resource context])\",\"Copy a file\"],cos:[\"float cos(float number)\",\"Returns the cosine of the number in radians\"],cosh:[\"float cosh(float number)\",\"Returns the hyperbolic cosine of the number, defined as (exp(number) + exp(-number))/2\"],count:[\"int count(mixed var [, int mode])\",\"Count the number of elements in a variable (usually an array)\"],count_chars:[\"mixed count_chars(string input [, int mode])\",\"Returns info about what characters are used in input\"],crc32:[\"string crc32(string str)\",\"Calculate the crc32 polynomial of a string\"],create_function:[\"string create_function(string args, string code)\",\"Creates an anonymous function, and returns its name (funny, eh?)\"],crypt:[\"string crypt(string str [, string salt])\",\"Hash a string\"],ctype_alnum:[\"bool ctype_alnum(mixed c)\",\"Checks for alphanumeric character(s)\"],ctype_alpha:[\"bool ctype_alpha(mixed c)\",\"Checks for alphabetic character(s)\"],ctype_cntrl:[\"bool ctype_cntrl(mixed c)\",\"Checks for control character(s)\"],ctype_digit:[\"bool ctype_digit(mixed c)\",\"Checks for numeric character(s)\"],ctype_graph:[\"bool ctype_graph(mixed c)\",\"Checks for any printable character(s) except space\"],ctype_lower:[\"bool ctype_lower(mixed c)\",\"Checks for lowercase character(s)\"],ctype_print:[\"bool ctype_print(mixed c)\",\"Checks for printable character(s)\"],ctype_punct:[\"bool ctype_punct(mixed c)\",\"Checks for any printable character which is not whitespace or an alphanumeric character\"],ctype_space:[\"bool ctype_space(mixed c)\",\"Checks for whitespace character(s)\"],ctype_upper:[\"bool ctype_upper(mixed c)\",\"Checks for uppercase character(s)\"],ctype_xdigit:[\"bool ctype_xdigit(mixed c)\",\"Checks for character(s) representing a hexadecimal digit\"],curl_close:[\"void curl_close(resource ch)\",\"Close a cURL session\"],curl_copy_handle:[\"resource curl_copy_handle(resource ch)\",\"Copy a cURL handle along with all of it's preferences\"],curl_errno:[\"int curl_errno(resource ch)\",\"Return an integer containing the last error number\"],curl_error:[\"string curl_error(resource ch)\",\"Return a string contain the last error for the current session\"],curl_exec:[\"bool curl_exec(resource ch)\",\"Perform a cURL session\"],curl_getinfo:[\"mixed curl_getinfo(resource ch [, int option])\",\"Get information regarding a specific transfer\"],curl_init:[\"resource curl_init([string url])\",\"Initialize a cURL session\"],curl_multi_add_handle:[\"int curl_multi_add_handle(resource mh, resource ch)\",\"Add a normal cURL handle to a cURL multi handle\"],curl_multi_close:[\"void curl_multi_close(resource mh)\",\"Close a set of cURL handles\"],curl_multi_exec:[\"int curl_multi_exec(resource mh, int &still_running)\",\"Run the sub-connections of the current cURL handle\"],curl_multi_getcontent:[\"string curl_multi_getcontent(resource ch)\",\"Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set\"],curl_multi_info_read:[\"array curl_multi_info_read(resource mh [, long msgs_in_queue])\",\"Get information about the current transfers\"],curl_multi_init:[\"resource curl_multi_init(void)\",\"Returns a new cURL multi handle\"],curl_multi_remove_handle:[\"int curl_multi_remove_handle(resource mh, resource ch)\",\"Remove a multi handle from a set of cURL handles\"],curl_multi_select:[\"int curl_multi_select(resource mh[, double timeout])\",'Get all the sockets associated with the cURL extension, which can then be \"selected\"'],curl_setopt:[\"bool curl_setopt(resource ch, int option, mixed value)\",\"Set an option for a cURL transfer\"],curl_setopt_array:[\"bool curl_setopt_array(resource ch, array options)\",\"Set an array of option for a cURL transfer\"],curl_version:[\"array curl_version([int version])\",\"Return cURL version information.\"],current:[\"mixed current(array array_arg)\",\"Return the element currently pointed to by the internal array pointer\"],date:[\"string date(string format [, long timestamp])\",\"Format a local date/time\"],date_add:[\"DateTime date_add(DateTime object, DateInterval interval)\",\"Adds an interval to the current date in object.\"],date_create:[\"DateTime date_create([string time[, DateTimeZone object]])\",\"Returns new DateTime object\"],date_create_from_format:[\"DateTime date_create_from_format(string format, string time[, DateTimeZone object])\",\"Returns new DateTime object formatted according to the specified format\"],date_date_set:[\"DateTime date_date_set(DateTime object, long year, long month, long day)\",\"Sets the date.\"],date_default_timezone_get:[\"string date_default_timezone_get()\",\"Gets the default timezone used by all date/time functions in a script\"],date_default_timezone_set:[\"bool date_default_timezone_set(string timezone_identifier)\",\"Sets the default timezone used by all date/time functions in a script\"],date_diff:[\"DateInterval date_diff(DateTime object [, bool absolute])\",\"Returns the difference between two DateTime objects.\"],date_format:[\"string date_format(DateTime object, string format)\",\"Returns date formatted according to given format\"],date_get_last_errors:[\"array date_get_last_errors()\",\"Returns the warnings and errors found while parsing a date/time string.\"],date_interval_create_from_date_string:[\"DateInterval date_interval_create_from_date_string(string time)\",\"Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string\"],date_interval_format:[\"string date_interval_format(DateInterval object, string format)\",\"Formats the interval.\"],date_isodate_set:[\"DateTime date_isodate_set(DateTime object, long year, long week[, long day])\",\"Sets the ISO date.\"],date_modify:[\"DateTime date_modify(DateTime object, string modify)\",\"Alters the timestamp.\"],date_offset_get:[\"long date_offset_get(DateTime object)\",\"Returns the DST offset.\"],date_parse:[\"array date_parse(string date)\",\"Returns associative array with detailed info about given date\"],date_parse_from_format:[\"array date_parse_from_format(string format, string date)\",\"Returns associative array with detailed info about given date\"],date_sub:[\"DateTime date_sub(DateTime object, DateInterval interval)\",\"Subtracts an interval to the current date in object.\"],date_sun_info:[\"array date_sun_info(long time, float latitude, float longitude)\",\"Returns an array with information about sun set/rise and twilight begin/end\"],date_sunrise:[\"mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunrise for a given day and location\"],date_sunset:[\"mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunset for a given day and location\"],date_time_set:[\"DateTime date_time_set(DateTime object, long hour, long minute[, long second])\",\"Sets the time.\"],date_timestamp_get:[\"long date_timestamp_get(DateTime object)\",\"Gets the Unix timestamp.\"],date_timestamp_set:[\"DateTime date_timestamp_set(DateTime object, long unixTimestamp)\",\"Sets the date and time based on an Unix timestamp.\"],date_timezone_get:[\"DateTimeZone date_timezone_get(DateTime object)\",\"Return new DateTimeZone object relative to give DateTime\"],date_timezone_set:[\"DateTime date_timezone_set(DateTime object, DateTimeZone object)\",\"Sets the timezone for the DateTime object.\"],datefmt_create:[\"IntlDateFormatter datefmt_create(string $locale, long date_type, long time_type[, string $timezone_str, long $calendar, string $pattern] )\",\"* Create formatter.\"],datefmt_format:[\"string datefmt_format( [mixed]int $args or array $args )\",\"* Format the time value as a string. }}}\"],datefmt_get_calendar:[\"string datefmt_get_calendar( IntlDateFormatter $mf )\",\"* Get formatter calendar.\"],datefmt_get_datetype:[\"string datefmt_get_datetype( IntlDateFormatter $mf )\",\"* Get formatter datetype.\"],datefmt_get_error_code:[\"int datefmt_get_error_code( IntlDateFormatter $nf )\",\"* Get formatter's last error code.\"],datefmt_get_error_message:[\"string datefmt_get_error_message( IntlDateFormatter $coll )\",\"* Get text description for formatter's last error code.\"],datefmt_get_locale:[\"string datefmt_get_locale(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_get_pattern:[\"string datefmt_get_pattern( IntlDateFormatter $mf )\",\"* Get formatter pattern.\"],datefmt_get_timetype:[\"string datefmt_get_timetype( IntlDateFormatter $mf )\",\"* Get formatter timetype.\"],datefmt_get_timezone_id:[\"string datefmt_get_timezone_id( IntlDateFormatter $mf )\",\"* Get formatter timezone_id.\"],datefmt_isLenient:[\"string datefmt_isLenient(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_localtime:[\"integer datefmt_localtime( IntlDateFormatter $fmt, string $text_to_parse[, int $parse_pos ])\",\"* Parse the string $value to a localtime array  }}}\"],datefmt_parse:[\"integer datefmt_parse( IntlDateFormatter $fmt, string $text_to_parse [, int $parse_pos] )\",\"* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}\"],datefmt_setLenient:[\"string datefmt_setLenient(IntlDateFormatter $mf)\",\"* Set formatter lenient.\"],datefmt_set_calendar:[\"bool datefmt_set_calendar( IntlDateFormatter $mf, int $calendar )\",\"* Set formatter calendar.\"],datefmt_set_pattern:[\"bool datefmt_set_pattern( IntlDateFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],datefmt_set_timezone_id:[\"boolean datefmt_set_timezone_id( IntlDateFormatter $mf,$timezone_id)\",\"* Set formatter timezone_id.\"],dba_close:[\"void dba_close(resource handle)\",\"Closes database\"],dba_delete:[\"bool dba_delete(string key, resource handle)\",\"Deletes the entry associated with key    If inifile: remove all other key lines\"],dba_exists:[\"bool dba_exists(string key, resource handle)\",\"Checks, if the specified key exists\"],dba_fetch:[\"string dba_fetch(string key, [int skip ,] resource handle)\",\"Fetches the data associated with key\"],dba_firstkey:[\"string dba_firstkey(resource handle)\",\"Resets the internal key pointer and returns the first key\"],dba_handlers:[\"array dba_handlers([bool full_info])\",\"List configured database handlers\"],dba_insert:[\"bool dba_insert(string key, string value, resource handle)\",\"If not inifile: Insert value as key, return false, if key exists already     If inifile: Add vakue as key (next instance of key)\"],dba_key_split:[\"array|false dba_key_split(string key)\",\"Splits an inifile key into an array of the form array(0=>group,1=>value_name) but returns false if input is false or null\"],dba_list:[\"array dba_list()\",\"List opened databases\"],dba_nextkey:[\"string dba_nextkey(resource handle)\",\"Returns the next key\"],dba_open:[\"resource dba_open(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode\"],dba_optimize:[\"bool dba_optimize(resource handle)\",\"Optimizes (e.g. clean up, vacuum) database\"],dba_popen:[\"resource dba_popen(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode persistently\"],dba_replace:[\"bool dba_replace(string key, string value, resource handle)\",\"Inserts value as key, replaces key, if key exists already    If inifile: remove all other key lines\"],dba_sync:[\"bool dba_sync(resource handle)\",\"Synchronizes database\"],dcgettext:[\"string dcgettext(string domain_name, string msgid, long category)\",\"Return the translation of msgid for domain_name and category, or msgid unaltered if a translation does not exist\"],dcngettext:[\"string dcngettext (string domain, string msgid1, string msgid2, int n, int category)\",\"Plural version of dcgettext()\"],debug_backtrace:[\"array debug_backtrace([bool provide_object])\",\"Return backtrace as array\"],debug_print_backtrace:[\"void debug_print_backtrace(void) */\",\"ZEND_FUNCTION(debug_print_backtrace) {  zend_execute_data *ptr, *skip;  int lineno;  char *function_name;  char *filename;  char *class_name = NULL;  char *call_type;  char *include_filename = NULL;  zval *arg_array = NULL;  int indent = 0;   if (zend_parse_parameters_none() == FAILURE) {   return;  }   ptr = EG(current_execute_data);   /* skip debug_backtrace()\"],debug_zval_dump:[\"void debug_zval_dump(mixed var)\",\"Dumps a string representation of an internal zend value to output.\"],decbin:[\"string decbin(int decimal_number)\",\"Returns a string containing a binary representation of the number\"],dechex:[\"string dechex(int decimal_number)\",\"Returns a string containing a hexadecimal representation of the given number\"],decoct:[\"string decoct(int decimal_number)\",\"Returns a string containing an octal representation of the given number\"],define:[\"bool define(string constant_name, mixed value, boolean case_insensitive=false)\",\"Define a new constant\"],define_syslog_variables:[\"void define_syslog_variables(void)\",\"Initializes all syslog-related variables\"],defined:[\"bool defined(string constant_name)\",\"Check whether a constant exists\"],deg2rad:[\"float deg2rad(float number)\",\"Converts the number in degrees to the radian equivalent\"],dgettext:[\"string dgettext(string domain_name, string msgid)\",\"Return the translation of msgid for domain_name, or msgid unaltered if a translation does not exist\"],die:[\"void die([mixed status])\",\"Output a message and terminate the current script\"],dir:[\"object dir(string directory[, resource context])\",\"Directory class with properties, handle and class and methods read, rewind and close\"],dirname:[\"string dirname(string path)\",\"Returns the directory name component of the path\"],disk_free_space:[\"float disk_free_space(string path)\",\"Get free disk space for filesystem that path is on\"],disk_total_space:[\"float disk_total_space(string path)\",\"Get total disk space for filesystem that path is on\"],display_disabled_function:[\"void display_disabled_function(void)\",\"Dummy function which displays an error when a disabled function is called.\"],dl:[\"int dl(string extension_filename)\",\"Load a PHP extension at runtime\"],dngettext:[\"string dngettext (string domain, string msgid1, string msgid2, int count)\",\"Plural version of dgettext()\"],dns_check_record:[\"bool dns_check_record(string host [, string type])\",\"Check DNS records corresponding to a given Internet host name or IP address\"],dns_get_mx:[\"bool dns_get_mx(string hostname, array mxhosts [, array weight])\",\"Get MX records corresponding to a given Internet host name\"],dns_get_record:[\"array|false dns_get_record(string hostname [, int type[, array authns, array addtl]])\",\"Get any Resource Record corresponding to a given Internet host name\"],dom_attr_is_id:[\"boolean dom_attr_is_id();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-isId Since: DOM Level 3\"],dom_characterdata_append_data:[\"void dom_characterdata_append_data(string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-32791A2F Since:\"],dom_characterdata_delete_data:[\"void dom_characterdata_delete_data(int offset, int count);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-7C603781 Since:\"],dom_characterdata_insert_data:[\"void dom_characterdata_insert_data(int offset, string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3EDB695F Since:\"],dom_characterdata_replace_data:[\"void dom_characterdata_replace_data(int offset, int count, string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-E5CBA7FB Since:\"],dom_characterdata_substring_data:[\"string dom_characterdata_substring_data(int offset, int count);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6531BCCF Since:\"],dom_document_adopt_node:[\"DOMNode dom_document_adopt_node(DOMNode source);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-adoptNode Since: DOM Level 3\"],dom_document_create_attribute:[\"DOMAttr dom_document_create_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1084891198 Since:\"],dom_document_create_attribute_ns:[\"DOMAttr dom_document_create_attribute_ns(string namespaceURI, string qualifiedName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-DocCrAttrNS Since: DOM Level 2\"],dom_document_create_cdatasection:[\"DOMCdataSection dom_document_create_cdatasection(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D26C0AF8 Since:\"],dom_document_create_comment:[\"DOMComment dom_document_create_comment(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1334481328 Since:\"],dom_document_create_document_fragment:[\"DOMDocumentFragment dom_document_create_document_fragment();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-35CB04B5 Since:\"],dom_document_create_element:[\"DOMElement dom_document_create_element(string tagName [, string value]);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-2141741547 Since:\"],dom_document_create_element_ns:[\"DOMElement dom_document_create_element_ns(string namespaceURI, string qualifiedName [,string value]);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-DocCrElNS Since: DOM Level 2\"],dom_document_create_entity_reference:[\"DOMEntityReference dom_document_create_entity_reference(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-392B75AE Since:\"],dom_document_create_processing_instruction:[\"DOMProcessingInstruction dom_document_create_processing_instruction(string target, string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-135944439 Since:\"],dom_document_create_text_node:[\"DOMText dom_document_create_text_node(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1975348127 Since:\"],dom_document_get_element_by_id:[\"DOMElement dom_document_get_element_by_id(string elementId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getElBId Since: DOM Level 2\"],dom_document_get_elements_by_tag_name:[\"DOMNodeList dom_document_get_elements_by_tag_name(string tagname);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C9094 Since:\"],dom_document_get_elements_by_tag_name_ns:[\"DOMNodeList dom_document_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getElBTNNS Since: DOM Level 2\"],dom_document_import_node:[\"DOMNode dom_document_import_node(DOMNode importedNode, boolean deep);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Core-Document-importNode Since: DOM Level 2\"],dom_document_load:[\"DOMNode dom_document_load(string source [, int options]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-load Since: DOM Level 3\"],dom_document_load_html:[\"DOMNode dom_document_load_html(string source);\",\"Since: DOM extended\"],dom_document_load_html_file:[\"DOMNode dom_document_load_html_file(string source);\",\"Since: DOM extended\"],dom_document_loadxml:[\"DOMNode dom_document_loadxml(string source [, int options]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-loadXML Since: DOM Level 3\"],dom_document_normalize_document:[\"void dom_document_normalize_document();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-normalizeDocument Since: DOM Level 3\"],dom_document_relaxNG_validate_file:[\"boolean dom_document_relaxNG_validate_file(string filename); */\",\"PHP_FUNCTION(dom_document_relaxNG_validate_file) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_relaxNG_validate_file\"],dom_document_relaxNG_validate_xml:[\"boolean dom_document_relaxNG_validate_xml(string source); */\",\"PHP_FUNCTION(dom_document_relaxNG_validate_xml) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_relaxNG_validate_xml\"],dom_document_rename_node:[\"DOMNode dom_document_rename_node(node n, string namespaceURI, string qualifiedName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-renameNode Since: DOM Level 3\"],dom_document_save:[\"int dom_document_save(string file);\",\"Convenience method to save to file\"],dom_document_save_html:[\"string dom_document_save_html();\",\"Convenience method to output as html\"],dom_document_save_html_file:[\"int dom_document_save_html_file(string file);\",\"Convenience method to save to file as html\"],dom_document_savexml:[\"string dom_document_savexml([node n]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-saveXML Since: DOM Level 3\"],dom_document_schema_validate:[\"boolean dom_document_schema_validate(string source); */\",\"PHP_FUNCTION(dom_document_schema_validate_xml) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_schema_validate\"],dom_document_schema_validate_file:[\"boolean dom_document_schema_validate_file(string filename); */\",\"PHP_FUNCTION(dom_document_schema_validate_file) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_schema_validate_file\"],dom_document_validate:[\"boolean dom_document_validate();\",\"Since: DOM extended\"],dom_document_xinclude:[\"int dom_document_xinclude([int options])\",\"Substitutues xincludes in a DomDocument\"],dom_domconfiguration_can_set_parameter:[\"boolean dom_domconfiguration_can_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-canSetParameter Since:\"],dom_domconfiguration_get_parameter:[\"domdomuserdata dom_domconfiguration_get_parameter(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-getParameter Since:\"],dom_domconfiguration_set_parameter:[\"dom_void dom_domconfiguration_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-property Since:\"],dom_domerrorhandler_handle_error:[\"dom_boolean dom_domerrorhandler_handle_error(domerror error);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-ERRORS-DOMErrorHandler-handleError Since:\"],dom_domimplementation_create_document:[\"DOMDocument dom_domimplementation_create_document(string namespaceURI, string qualifiedName, DOMDocumentType doctype);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocument Since: DOM Level 2\"],dom_domimplementation_create_document_type:[\"DOMDocumentType dom_domimplementation_create_document_type(string qualifiedName, string publicId, string systemId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocType Since: DOM Level 2\"],dom_domimplementation_get_feature:[\"DOMNode dom_domimplementation_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementation3-getFeature Since: DOM Level 3\"],dom_domimplementation_has_feature:[\"boolean dom_domimplementation_has_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-5CED94D7 Since:\"],dom_domimplementationlist_item:[\"domdomimplementation dom_domimplementationlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementationList-item Since:\"],dom_domimplementationsource_get_domimplementation:[\"domdomimplementation dom_domimplementationsource_get_domimplementation(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpl Since:\"],dom_domimplementationsource_get_domimplementations:[\"domimplementationlist dom_domimplementationsource_get_domimplementations(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpls Since:\"],dom_domstringlist_item:[\"domstring dom_domstringlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMStringList-item Since:\"],dom_element_get_attribute:[\"string dom_element_get_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9 Since:\"],dom_element_get_attribute_node:[\"DOMAttr dom_element_get_attribute_node(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8 Since:\"],dom_element_get_attribute_node_ns:[\"DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS Since: DOM Level 2\"],dom_element_get_attribute_ns:[\"string dom_element_get_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS Since: DOM Level 2\"],dom_element_get_elements_by_tag_name:[\"DOMNodeList dom_element_get_elements_by_tag_name(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D Since:\"],dom_element_get_elements_by_tag_name_ns:[\"DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942 Since: DOM Level 2\"],dom_element_has_attribute:[\"boolean dom_element_has_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr Since: DOM Level 2\"],dom_element_has_attribute_ns:[\"boolean dom_element_has_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS Since: DOM Level 2\"],dom_element_remove_attribute:[\"void dom_element_remove_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9 Since:\"],dom_element_remove_attribute_node:[\"DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198 Since:\"],dom_element_remove_attribute_ns:[\"void dom_element_remove_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2\"],dom_element_set_attribute:[\"void dom_element_set_attribute(string name, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082 Since:\"],dom_element_set_attribute_node:[\"DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154 Since:\"],dom_element_set_attribute_node_ns:[\"DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS Since: DOM Level 2\"],dom_element_set_attribute_ns:[\"void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS Since: DOM Level 2\"],dom_element_set_id_attribute:[\"void dom_element_set_id_attribute(string name, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr Since: DOM Level 3\"],dom_element_set_id_attribute_node:[\"void dom_element_set_id_attribute_node(attr idAttr, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode Since: DOM Level 3\"],dom_element_set_id_attribute_ns:[\"void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS Since: DOM Level 3\"],dom_import_simplexml:[\"somNode dom_import_simplexml(sxeobject node)\",\"Get a simplexml_element object from dom to allow for processing\"],dom_namednodemap_get_named_item:[\"DOMNode dom_namednodemap_get_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since:\"],dom_namednodemap_get_named_item_ns:[\"DOMNode dom_namednodemap_get_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getNamedItemNS Since: DOM Level 2\"],dom_namednodemap_item:[\"DOMNode dom_namednodemap_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 Since:\"],dom_namednodemap_remove_named_item:[\"DOMNode dom_namednodemap_remove_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D58B193 Since:\"],dom_namednodemap_remove_named_item_ns:[\"DOMNode dom_namednodemap_remove_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-removeNamedItemNS Since: DOM Level 2\"],dom_namednodemap_set_named_item:[\"DOMNode dom_namednodemap_set_named_item(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1025163788 Since:\"],dom_namednodemap_set_named_item_ns:[\"DOMNode dom_namednodemap_set_named_item_ns(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-setNamedItemNS Since: DOM Level 2\"],dom_namelist_get_name:[\"string dom_namelist_get_name(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getName Since:\"],dom_namelist_get_namespace_uri:[\"string dom_namelist_get_namespace_uri(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getNamespaceURI Since:\"],dom_node_append_child:[\"DomNode dom_node_append_child(DomNode newChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-184E7107 Since:\"],dom_node_clone_node:[\"DomNode dom_node_clone_node(boolean deep);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3A0ED0A4 Since:\"],dom_node_compare_document_position:[\"short dom_node_compare_document_position(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-compareDocumentPosition Since: DOM Level 3\"],dom_node_get_feature:[\"DomNode dom_node_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getFeature Since: DOM Level 3\"],dom_node_get_user_data:[\"mixed dom_node_get_user_data(string key);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getUserData Since: DOM Level 3\"],dom_node_has_attributes:[\"boolean dom_node_has_attributes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-NodeHasAttrs Since: DOM Level 2\"],dom_node_has_child_nodes:[\"boolean dom_node_has_child_nodes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-810594187 Since:\"],dom_node_insert_before:[\"domnode dom_node_insert_before(DomNode newChild, DomNode refChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-952280727 Since:\"],dom_node_is_default_namespace:[\"boolean dom_node_is_default_namespace(string namespaceURI);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace Since: DOM Level 3\"],dom_node_is_equal_node:[\"boolean dom_node_is_equal_node(DomNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isEqualNode Since: DOM Level 3\"],dom_node_is_same_node:[\"boolean dom_node_is_same_node(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isSameNode Since: DOM Level 3\"],dom_node_is_supported:[\"boolean dom_node_is_supported(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Level-2-Core-Node-supports Since: DOM Level 2\"],dom_node_lookup_namespace_uri:[\"string dom_node_lookup_namespace_uri(string prefix);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI Since: DOM Level 3\"],dom_node_lookup_prefix:[\"string dom_node_lookup_prefix(string namespaceURI);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-lookupNamespacePrefix Since: DOM Level 3\"],dom_node_normalize:[\"void dom_node_normalize();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-normalize Since:\"],dom_node_remove_child:[\"DomNode dom_node_remove_child(DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1734834066 Since:\"],dom_node_replace_child:[\"DomNode dom_node_replace_child(DomNode newChild, DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-785887307 Since:\"],dom_node_set_user_data:[\"mixed dom_node_set_user_data(string key, mixed data, userdatahandler handler);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-setUserData Since: DOM Level 3\"],dom_nodelist_item:[\"DOMNode dom_nodelist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 Since:\"],dom_string_extend_find_offset16:[\"int dom_string_extend_find_offset16(int offset32);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset16 Since:\"],dom_string_extend_find_offset32:[\"int dom_string_extend_find_offset32(int offset16);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset32 Since:\"],dom_text_is_whitespace_in_element_content:[\"boolean dom_text_is_whitespace_in_element_content();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-isWhitespaceInElementContent Since: DOM Level 3\"],dom_text_replace_whole_text:[\"DOMText dom_text_replace_whole_text(string content);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-replaceWholeText Since: DOM Level 3\"],dom_text_split_text:[\"DOMText dom_text_split_text(int offset);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-38853C1D Since:\"],dom_userdatahandler_handle:[\"dom_void dom_userdatahandler_handle(short operation, string key, domobject data, node src, node dst);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-handleUserDataEvent Since:\"],dom_xpath_evaluate:[\"mixed dom_xpath_evaluate(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_evaluate) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_EVALUATE); } /* }}} end dom_xpath_evaluate\"],dom_xpath_query:[\"DOMNodeList dom_xpath_query(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_query) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_QUERY); } /* }}} end dom_xpath_query\"],dom_xpath_register_ns:[\"boolean dom_xpath_register_ns(string prefix, string uri); */\",'PHP_FUNCTION(dom_xpath_register_ns) {  zval *id;  xmlXPathContextPtr ctxp;  int prefix_len, ns_uri_len;  dom_xpath_object *intern;  unsigned char *prefix, *ns_uri;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Oss\", &id, dom_xpath_class_entry, &prefix, &prefix_len, &ns_uri, &ns_uri_len) == FAILURE) {   return;  }   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   ctxp = (xmlXPathContextPtr) intern->ptr;  if (ctxp == NULL) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid XPath Context\");   RETURN_FALSE;  }   if (xmlXPathRegisterNs(ctxp, prefix, ns_uri) != 0) {   RETURN_FALSE  }  RETURN_TRUE; } /* }}}'],dom_xpath_register_php_functions:[\"void dom_xpath_register_php_functions() */\",'PHP_FUNCTION(dom_xpath_register_php_functions) {  zval *id;  dom_xpath_object *intern;  zval *array_value, **entry, *new_string;  int  name_len = 0;  char *name;   DOM_GET_THIS(id);    if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"a\",  &array_value) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   zend_hash_internal_pointer_reset(Z_ARRVAL_P(array_value));    while (zend_hash_get_current_data(Z_ARRVAL_P(array_value), (void **)&entry) == SUCCESS) {    SEPARATE_ZVAL(entry);    convert_to_string_ex(entry);     MAKE_STD_ZVAL(new_string);    ZVAL_LONG(new_string,1);       zend_hash_update(intern->registered_phpfunctions, Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &new_string, sizeof(zval*), NULL);    zend_hash_move_forward(Z_ARRVAL_P(array_value));   }   intern->registerPhpFunctions = 2;   RETURN_TRUE;   } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s\",  &name, &name_len) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);      MAKE_STD_ZVAL(new_string);   ZVAL_LONG(new_string,1);   zend_hash_update(intern->registered_phpfunctions, name, name_len + 1, &new_string, sizeof(zval*), NULL);   intern->registerPhpFunctions = 2;     } else {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   intern->registerPhpFunctions = 1;  }   } /* }}} end dom_xpath_register_php_functions'],each:[\"array each(array arr)\",\"Return the currently pointed key..value pair in the passed array, and advance the pointer to the next element\"],easter_date:[\"int easter_date([int year])\",\"Return the timestamp of midnight on Easter of a given year (defaults to current year)\"],easter_days:[\"int easter_days([int year, [int method]])\",\"Return the number of days after March 21 that Easter falls on for a given year (defaults to current year)\"],echo:[\"void echo(string arg1 [, string ...])\",\"Output one or more strings\"],empty:[\"bool empty( mixed var )\",\"Determine whether a variable is empty\"],enchant_broker_describe:[\"array enchant_broker_describe(resource broker)\",\"Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo()\"],enchant_broker_dict_exists:[\"bool enchant_broker_dict_exists(resource broker, string tag)\",\"Whether a dictionary exists or not. Using non-empty tag\"],enchant_broker_free:[\"boolean enchant_broker_free(resource broker)\",\"Destroys the broker object and its dictionnaries\"],enchant_broker_free_dict:[\"resource enchant_broker_free_dict(resource dict)\",\"Free the dictionary resource\"],enchant_broker_get_dict_path:[\"string enchant_broker_get_dict_path(resource broker, int dict_type)\",\"Get the directory path for a given backend, works with ispell and myspell\"],enchant_broker_get_error:[\"string enchant_broker_get_error(resource broker)\",\"Returns the last error of the broker\"],enchant_broker_init:[\"resource enchant_broker_init()\",\"create a new broker object capable of requesting\"],enchant_broker_list_dicts:[\"string enchant_broker_list_dicts(resource broker)\",\"Lists the dictionaries available for the given broker\"],enchant_broker_request_dict:[\"resource enchant_broker_request_dict(resource broker, string tag)\",'create a new dictionary using tag, the non-empty language tag you wish to request  a dictionary for (\"en_US\", \"de_DE\", ...)'],enchant_broker_request_pwl_dict:[\"resource enchant_broker_request_pwl_dict(resource broker, string filename)\",\"creates a dictionary using a PWL file. A PWL file is personal word file one word per line. It must exist before the call.\"],enchant_broker_set_dict_path:[\"bool enchant_broker_set_dict_path(resource broker, int dict_type, string value)\",\"Set the directory path for a given backend, works with ispell and myspell\"],enchant_broker_set_ordering:[\"bool enchant_broker_set_ordering(resource broker, string tag, string ordering)\",\"Declares a preference of dictionaries to use for the language  described/referred to by 'tag'. The ordering is a comma delimited  list of provider names. As a special exception, the \\\"*\\\" tag can  be used as a language tag to declare a default ordering for any  language that does not explictly declare an ordering.\"],enchant_dict_add_to_personal:[\"void enchant_dict_add_to_personal(resource dict, string word)\",\"add 'word' to personal word list\"],enchant_dict_add_to_session:[\"void enchant_dict_add_to_session(resource dict, string word)\",\"add 'word' to this spell-checking session\"],enchant_dict_check:[\"bool enchant_dict_check(resource dict, string word)\",\"If the word is correctly spelled return true, otherwise return false\"],enchant_dict_describe:[\"array enchant_dict_describe(resource dict)\",\"Describes an individual dictionary 'dict'\"],enchant_dict_get_error:[\"string enchant_dict_get_error(resource dict)\",\"Returns the last error of the current spelling-session\"],enchant_dict_is_in_session:[\"bool enchant_dict_is_in_session(resource dict, string word)\",\"whether or not 'word' exists in this spelling-session\"],enchant_dict_quick_check:[\"bool enchant_dict_quick_check(resource dict, string word [, array &suggestions])\",\"If the word is correctly spelled return true, otherwise return false, if suggestions variable     is provided, fill it with spelling alternatives.\"],enchant_dict_store_replacement:[\"void enchant_dict_store_replacement(resource dict, string mis, string cor)\",\"add a correction for 'mis' using 'cor'.  Notes that you replaced @mis with @cor, so it's possibly more likely  that future occurrences of @mis will be replaced with @cor. So it might  bump @cor up in the suggestion list.\"],enchant_dict_suggest:[\"array enchant_dict_suggest(resource dict, string word)\",\"Will return a list of values if any of those pre-conditions are not met.\"],end:[\"mixed end(array array_arg)\",\"Advances array argument's internal pointer to the last element and return it\"],ereg:[\"int ereg(string pattern, string string [, array registers])\",\"Regular expression match\"],ereg_replace:[\"string ereg_replace(string pattern, string replacement, string string)\",\"Replace regular expression\"],eregi:[\"int eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match\"],eregi_replace:[\"string eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression\"],error_get_last:[\"array error_get_last()\",\"Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet.\"],error_log:[\"bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])\",\"Send an error message somewhere\"],error_reporting:[\"int error_reporting([int new_error_level])\",\"Return the current error_reporting level, and if an argument was passed - change to the new level\"],escapeshellarg:[\"string escapeshellarg(string arg)\",\"Quote and escape an argument for use in a shell command\"],escapeshellcmd:[\"string escapeshellcmd(string command)\",\"Escape shell metacharacters\"],exec:[\"string exec(string command [, array &output [, int &return_value]])\",\"Execute an external program\"],exif_imagetype:[\"int exif_imagetype(string imagefile)\",\"Get the type of an image\"],exif_read_data:[\"array exif_read_data(string filename [, sections_needed [, sub_arrays[, read_thumbnail]]])\",\"Reads header data from the JPEG/TIFF image filename and optionally reads the internal thumbnails\"],exif_tagname:[\"string exif_tagname(index)\",\"Get headername for index or false if not defined\"],exif_thumbnail:[\"string exif_thumbnail(string filename [, &width, &height [, &imagetype]])\",\"Reads the embedded thumbnail\"],exit:[\"void exit([mixed status])\",\"Output a message and terminate the current script\"],exp:[\"float exp(float number)\",\"Returns e raised to the power of the number\"],explode:[\"array explode(string separator, string str [, int limit])\",\"Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.\"],expm1:[\"float expm1(float number)\",\"Returns exp(number) - 1, computed in a way that accurate even when the value of number is close to zero\"],extension_loaded:[\"bool extension_loaded(string extension_name)\",\"Returns true if the named extension is loaded\"],extract:[\"int extract(array var_array [, int extract_type [, string prefix]])\",\"Imports variables into symbol table from an array\"],ezmlm_hash:[\"int ezmlm_hash(string addr)\",\"Calculate EZMLM list hash value.\"],fclose:[\"bool fclose(resource fp)\",\"Close an open file pointer\"],feof:[\"bool feof(resource fp)\",\"Test for end-of-file on a file pointer\"],fflush:[\"bool fflush(resource fp)\",\"Flushes output\"],fgetc:[\"string fgetc(resource fp)\",\"Get a character from file pointer\"],fgetcsv:[\"array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]])\",\"Get line from file pointer and parse for CSV fields\"],fgets:[\"string fgets(resource fp[, int length])\",\"Get a line from file pointer\"],fgetss:[\"string fgetss(resource fp [, int length [, string allowable_tags]])\",\"Get a line from file pointer and strip HTML tags\"],file:[\"array file(string filename [, int flags[, resource context]])\",\"Read entire file into an array\"],file_exists:[\"bool file_exists(string filename)\",\"Returns true if filename exists\"],file_get_contents:[\"string file_get_contents(string filename [, bool use_include_path [, resource context [, long offset [, long maxlen]]]])\",\"Read the entire file into a string\"],file_put_contents:[\"int file_put_contents(string file, mixed data [, int flags [, resource context]])\",\"Write/Create a file with contents data and return the number of bytes written\"],fileatime:[\"int fileatime(string filename)\",\"Get last access time of file\"],filectime:[\"int filectime(string filename)\",\"Get inode modification time of file\"],filegroup:[\"int filegroup(string filename)\",\"Get file group\"],fileinode:[\"int fileinode(string filename)\",\"Get file inode\"],filemtime:[\"int filemtime(string filename)\",\"Get last modification time of file\"],fileowner:[\"int fileowner(string filename)\",\"Get file owner\"],fileperms:[\"int fileperms(string filename)\",\"Get file permissions\"],filesize:[\"int filesize(string filename)\",\"Get file size\"],filetype:[\"string filetype(string filename)\",\"Get file type\"],filter_has_var:[\"mixed filter_has_var(constant type, string variable_name)\",\"* Returns true if the variable with the name 'name' exists in source.\"],filter_input:[\"mixed filter_input(constant type, string variable_name [, long filter [, mixed options]])\",\"* Returns the filtered variable 'name'* from source `type`.\"],filter_input_array:[\"mixed filter_input_array(constant type, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],filter_var:[\"mixed filter_var(mixed variable [, long filter [, mixed options]])\",\"* Returns the filtered version of the vriable.\"],filter_var_array:[\"mixed filter_var_array(array data, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],finfo_buffer:[\"string finfo_buffer(resource finfo, char *string [, int options [, resource context]])\",\"Return infromation about a string buffer.\"],finfo_close:[\"resource finfo_close(resource finfo)\",\"Close fileinfo resource.\"],finfo_file:[\"string finfo_file(resource finfo, char *file_name [, int options [, resource context]])\",\"Return information about a file.\"],finfo_open:[\"resource finfo_open([int options [, string arg]])\",\"Create a new fileinfo resource.\"],finfo_set_flags:[\"bool finfo_set_flags(resource finfo, int options)\",\"Set libmagic configuration options.\"],floatval:[\"float floatval(mixed var)\",\"Get the float value of a variable\"],flock:[\"bool flock(resource fp, int operation [, int &wouldblock])\",\"Portable file locking\"],floor:[\"float floor(float number)\",\"Returns the next lowest integer value from the number\"],flush:[\"void flush(void)\",\"Flush the output buffer\"],fmod:[\"float fmod(float x, float y)\",\"Returns the remainder of dividing x by y as a float\"],fnmatch:[\"bool fnmatch(string pattern, string filename [, int flags])\",\"Match filename against pattern\"],fopen:[\"resource fopen(string filename, string mode [, bool use_include_path [, resource context]])\",\"Open a file or a URL and return a file pointer\"],forward_static_call:[\"mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],fpassthru:[\"int fpassthru(resource fp)\",\"Output all remaining data from a file pointer\"],fprintf:[\"int fprintf(resource stream, string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string into a stream\"],fputcsv:[\"int fputcsv(resource fp, array fields [, string delimiter [, string enclosure]])\",\"Format line as CSV and write to file pointer\"],fread:[\"string fread(resource fp, int length)\",\"Binary-safe file read\"],frenchtojd:[\"int frenchtojd(int month, int day, int year)\",\"Converts a french republic calendar date to julian day count\"],fscanf:[\"mixed fscanf(resource stream, string format [, string ...])\",\"Implements a mostly ANSI compatible fscanf()\"],fseek:[\"int fseek(resource fp, int offset [, int whence])\",\"Seek on a file pointer\"],fsockopen:[\"resource fsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open Internet or Unix domain socket connection\"],fstat:[\"array fstat(resource fp)\",\"Stat() on a filehandle\"],ftell:[\"int ftell(resource fp)\",\"Get file pointer's read/write position\"],ftok:[\"int ftok(string pathname, string proj)\",\"Convert a pathname and a project identifier to a System V IPC key\"],ftp_alloc:[\"bool ftp_alloc(resource stream, int size[, &response])\",\"Attempt to allocate space on the remote FTP server\"],ftp_cdup:[\"bool ftp_cdup(resource stream)\",\"Changes to the parent directory\"],ftp_chdir:[\"bool ftp_chdir(resource stream, string directory)\",\"Changes directories\"],ftp_chmod:[\"int ftp_chmod(resource stream, int mode, string filename)\",\"Sets permissions on a file\"],ftp_close:[\"bool ftp_close(resource stream)\",\"Closes the FTP stream\"],ftp_connect:[\"resource ftp_connect(string host [, int port [, int timeout]])\",\"Opens a FTP stream\"],ftp_delete:[\"bool ftp_delete(resource stream, string file)\",\"Deletes a file\"],ftp_exec:[\"bool ftp_exec(resource stream, string command)\",\"Requests execution of a program on the FTP server\"],ftp_fget:[\"bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server and writes it to an open file\"],ftp_fput:[\"bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server\"],ftp_get:[\"bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server and writes it to a local file\"],ftp_get_option:[\"mixed ftp_get_option(resource stream, int option)\",\"Gets an FTP option\"],ftp_login:[\"bool ftp_login(resource stream, string username, string password)\",\"Logs into the FTP server\"],ftp_mdtm:[\"int ftp_mdtm(resource stream, string filename)\",\"Returns the last modification time of the file, or -1 on error\"],ftp_mkdir:[\"string ftp_mkdir(resource stream, string directory)\",\"Creates a directory and returns the absolute path for the new directory or false on error\"],ftp_nb_continue:[\"int ftp_nb_continue(resource stream)\",\"Continues retrieving/sending a file nbronously\"],ftp_nb_fget:[\"int ftp_nb_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server asynchronly and writes it to an open file\"],ftp_nb_fput:[\"int ftp_nb_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server nbronly\"],ftp_nb_get:[\"int ftp_nb_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server nbhronly and writes it to a local file\"],ftp_nb_put:[\"int ftp_nb_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_nlist:[\"array ftp_nlist(resource stream, string directory)\",\"Returns an array of filenames in the given directory\"],ftp_pasv:[\"bool ftp_pasv(resource stream, bool pasv)\",\"Turns passive mode on or off\"],ftp_put:[\"bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_pwd:[\"string ftp_pwd(resource stream)\",\"Returns the present working directory\"],ftp_raw:[\"array ftp_raw(resource stream, string command)\",\"Sends a literal command to the FTP server\"],ftp_rawlist:[\"array ftp_rawlist(resource stream, string directory [, bool recursive])\",\"Returns a detailed listing of a directory as an array of output lines\"],ftp_rename:[\"bool ftp_rename(resource stream, string src, string dest)\",\"Renames the given file to a new path\"],ftp_rmdir:[\"bool ftp_rmdir(resource stream, string directory)\",\"Removes a directory\"],ftp_set_option:[\"bool ftp_set_option(resource stream, int option, mixed value)\",\"Sets an FTP option\"],ftp_site:[\"bool ftp_site(resource stream, string cmd)\",\"Sends a SITE command to the server\"],ftp_size:[\"int ftp_size(resource stream, string filename)\",\"Returns the size of the file, or -1 on error\"],ftp_ssl_connect:[\"resource ftp_ssl_connect(string host [, int port [, int timeout]])\",\"Opens a FTP-SSL stream\"],ftp_systype:[\"string ftp_systype(resource stream)\",\"Returns the system type identifier\"],ftruncate:[\"bool ftruncate(resource fp, int size)\",\"Truncate file to 'size' length\"],func_get_arg:[\"mixed func_get_arg(int arg_num)\",\"Get the $arg_num'th argument that was passed to the function\"],func_get_args:[\"array func_get_args()\",\"Get an array of the arguments that were passed to the function\"],func_num_args:[\"int func_num_args(void)\",\"Get the number of arguments that were passed to the function\"],function_exists:[\"bool function_exists(string function_name)\",\"Checks if the function exists\"],fwrite:[\"int fwrite(resource fp, string str [, int length])\",\"Binary-safe file write\"],gc_collect_cycles:[\"int gc_collect_cycles(void)\",\"Forces collection of any existing garbage cycles.    Returns number of freed zvals\"],gc_disable:[\"void gc_disable(void)\",\"Deactivates the circular reference collector\"],gc_enable:[\"void gc_enable(void)\",\"Activates the circular reference collector\"],gc_enabled:[\"void gc_enabled(void)\",\"Returns status of the circular reference collector\"],gd_info:[\"array gd_info()\",\"\"],getKeywords:[\"static array getKeywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)  * }}}\"],get_browser:[\"mixed get_browser([string browser_name [, bool return_array]])\",\"Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array.\"],get_called_class:[\"string get_called_class()\",'Retrieves the \"Late Static Binding\" class name'],get_cfg_var:[\"mixed get_cfg_var(string option_name)\",\"Get the value of a PHP configuration option\"],get_class:[\"string get_class([object object])\",\"Retrieves the class name\"],get_class_methods:[\"array get_class_methods(mixed class)\",\"Returns an array of method names for class or class instance.\"],get_class_vars:[\"array get_class_vars(string class_name)\",\"Returns an array of default properties of the class.\"],get_current_user:[\"string get_current_user(void)\",\"Get the name of the owner of the current PHP script\"],get_declared_classes:[\"array get_declared_classes()\",\"Returns an array of all declared classes.\"],get_declared_interfaces:[\"array get_declared_interfaces()\",\"Returns an array of all declared interfaces.\"],get_defined_constants:[\"array get_defined_constants([bool categorize])\",\"Return an array containing the names and values of all defined constants\"],get_defined_functions:[\"array get_defined_functions(void)\",\"Returns an array of all defined functions\"],get_defined_vars:[\"array get_defined_vars(void)\",\"Returns an associative array of names and values of all currently defined variable names (variables in the current scope)\"],get_display_language:[\"static string get_display_language($locale[, $in_locale = null])\",\"* gets the language for the $locale in $in_locale or default_locale\"],get_display_name:[\"static string get_display_name($locale[, $in_locale = null])\",\"* gets the name for the $locale in $in_locale or default_locale\"],get_display_region:[\"static string get_display_region($locale, $in_locale = null)\",\"* gets the region for the $locale in $in_locale or default_locale\"],get_display_script:[\"static string get_display_script($locale, $in_locale = null)\",\"* gets the script for the $locale in $in_locale or default_locale\"],get_extension_funcs:[\"array get_extension_funcs(string extension_name)\",\"Returns an array with the names of functions belonging to the named extension\"],get_headers:[\"array get_headers(string url[, int format])\",\"fetches all the headers sent by the server in response to a HTTP request\"],get_html_translation_table:[\"array get_html_translation_table([int table [, int quote_style]])\",\"Returns the internal translation table used by htmlspecialchars and htmlentities\"],get_include_path:[\"string get_include_path()\",\"Get the current include_path configuration option\"],get_included_files:[\"array get_included_files(void)\",\"Returns an array with the file names that were include_once()'d\"],get_loaded_extensions:[\"array get_loaded_extensions([bool zend_extensions])\",\"Return an array containing names of loaded extensions\"],get_magic_quotes_gpc:[\"int get_magic_quotes_gpc(void)\",\"Get the current active configuration setting of magic_quotes_gpc\"],get_magic_quotes_runtime:[\"int get_magic_quotes_runtime(void)\",\"Get the current active configuration setting of magic_quotes_runtime\"],get_meta_tags:[\"array get_meta_tags(string filename [, bool use_include_path])\",\"Extracts all meta tag content attributes from a file and returns an array\"],get_object_vars:[\"array get_object_vars(object obj)\",\"Returns an array of object properties\"],get_parent_class:[\"string get_parent_class([mixed object])\",\"Retrieves the parent class name for object or class or current scope.\"],get_resource_type:[\"string get_resource_type(resource res)\",\"Get the resource type name for a given resource\"],getallheaders:[\"array getallheaders(void)\",\"\"],getcwd:[\"mixed getcwd(void)\",\"Gets the current directory\"],getdate:[\"array getdate([int timestamp])\",\"Get date/time information\"],getenv:[\"string getenv(string varname)\",\"Get the value of an environment variable\"],gethostbyaddr:[\"string gethostbyaddr(string ip_address)\",\"Get the Internet host name corresponding to a given IP address\"],gethostbyname:[\"string gethostbyname(string hostname)\",\"Get the IP address corresponding to a given Internet host name\"],gethostbynamel:[\"array gethostbynamel(string hostname)\",\"Return a list of IP addresses that a given hostname resolves to.\"],gethostname:[\"string gethostname()\",\"Get the host name of the current machine\"],getimagesize:[\"array getimagesize(string imagefile [, array info])\",\"Get the size of an image as 4-element array\"],getlastmod:[\"int getlastmod(void)\",\"Get time of last page modification\"],getmygid:[\"int getmygid(void)\",\"Get PHP script owner's GID\"],getmyinode:[\"int getmyinode(void)\",\"Get the inode of the current script being parsed\"],getmypid:[\"int getmypid(void)\",\"Get current process ID\"],getmyuid:[\"int getmyuid(void)\",\"Get PHP script owner's UID\"],getopt:[\"array getopt(string options [, array longopts])\",\"Get options from the command line argument list\"],getprotobyname:[\"int getprotobyname(string name)\",\"Returns protocol number associated with name as per /etc/protocols\"],getprotobynumber:[\"string getprotobynumber(int proto)\",\"Returns protocol name associated with protocol number proto\"],getrandmax:[\"int getrandmax(void)\",\"Returns the maximum value a random number can have\"],getrusage:[\"array getrusage([int who])\",\"Returns an array of usage statistics\"],getservbyname:[\"int getservbyname(string service, string protocol)\",'Returns port associated with service. Protocol must be \"tcp\" or \"udp\"'],getservbyport:[\"string getservbyport(int port, string protocol)\",'Returns service name associated with port. Protocol must be \"tcp\" or \"udp\"'],gettext:[\"string gettext(string msgid)\",\"Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist\"],gettimeofday:[\"array gettimeofday([bool get_as_float])\",\"Returns the current time as array\"],gettype:[\"string gettype(mixed var)\",\"Returns the type of the variable\"],glob:[\"array glob(string pattern [, int flags])\",\"Find pathnames matching a pattern\"],gmdate:[\"string gmdate(string format [, long timestamp])\",\"Format a GMT date/time\"],gmmktime:[\"int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a GMT date\"],gmp_abs:[\"resource gmp_abs(resource a)\",\"Calculates absolute value\"],gmp_add:[\"resource gmp_add(resource a, resource b)\",\"Add a and b\"],gmp_and:[\"resource gmp_and(resource a, resource b)\",\"Calculates logical AND of a and b\"],gmp_clrbit:[\"void gmp_clrbit(resource &a, int index)\",\"Clears bit in a\"],gmp_cmp:[\"int gmp_cmp(resource a, resource b)\",\"Compares two numbers\"],gmp_com:[\"resource gmp_com(resource a)\",\"Calculates one's complement of a\"],gmp_div_q:[\"resource gmp_div_q(resource a, resource b [, int round])\",\"Divide a by b, returns quotient only\"],gmp_div_qr:[\"array gmp_div_qr(resource a, resource b [, int round])\",\"Divide a by b, returns quotient and reminder\"],gmp_div_r:[\"resource gmp_div_r(resource a, resource b [, int round])\",\"Divide a by b, returns reminder only\"],gmp_divexact:[\"resource gmp_divexact(resource a, resource b)\",\"Divide a by b using exact division algorithm\"],gmp_fact:[\"resource gmp_fact(int a)\",\"Calculates factorial function\"],gmp_gcd:[\"resource gmp_gcd(resource a, resource b)\",\"Computes greatest common denominator (gcd) of a and b\"],gmp_gcdext:[\"array gmp_gcdext(resource a, resource b)\",\"Computes G, S, and T, such that AS + BT = G = `gcd' (A, B)\"],gmp_hamdist:[\"int gmp_hamdist(resource a, resource b)\",\"Calculates hamming distance between a and b\"],gmp_init:[\"resource gmp_init(mixed number [, int base])\",\"Initializes GMP number\"],gmp_intval:[\"int gmp_intval(resource gmpnumber)\",\"Gets signed long value of GMP number\"],gmp_invert:[\"resource gmp_invert(resource a, resource b)\",\"Computes the inverse of a modulo b\"],gmp_jacobi:[\"int gmp_jacobi(resource a, resource b)\",\"Computes Jacobi symbol\"],gmp_legendre:[\"int gmp_legendre(resource a, resource b)\",\"Computes Legendre symbol\"],gmp_mod:[\"resource gmp_mod(resource a, resource b)\",\"Computes a modulo b\"],gmp_mul:[\"resource gmp_mul(resource a, resource b)\",\"Multiply a and b\"],gmp_neg:[\"resource gmp_neg(resource a)\",\"Negates a number\"],gmp_nextprime:[\"resource gmp_nextprime(resource a)\",\"Finds next prime of a\"],gmp_or:[\"resource gmp_or(resource a, resource b)\",\"Calculates logical OR of a and b\"],gmp_perfect_square:[\"bool gmp_perfect_square(resource a)\",\"Checks if a is an exact square\"],gmp_popcount:[\"int gmp_popcount(resource a)\",\"Calculates the population count of a\"],gmp_pow:[\"resource gmp_pow(resource base, int exp)\",\"Raise base to power exp\"],gmp_powm:[\"resource gmp_powm(resource base, resource exp, resource mod)\",\"Raise base to power exp and take result modulo mod\"],gmp_prob_prime:[\"int gmp_prob_prime(resource a[, int reps])\",'Checks if a is \"probably prime\"'],gmp_random:[\"resource gmp_random([int limiter])\",\"Gets random number\"],gmp_scan0:[\"int gmp_scan0(resource a, int start)\",\"Finds first zero bit\"],gmp_scan1:[\"int gmp_scan1(resource a, int start)\",\"Finds first non-zero bit\"],gmp_setbit:[\"void gmp_setbit(resource &a, int index[, bool set_clear])\",\"Sets or clear bit in a\"],gmp_sign:[\"int gmp_sign(resource a)\",\"Gets the sign of the number\"],gmp_sqrt:[\"resource gmp_sqrt(resource a)\",\"Takes integer part of square root of a\"],gmp_sqrtrem:[\"array gmp_sqrtrem(resource a)\",\"Square root with remainder\"],gmp_strval:[\"string gmp_strval(resource gmpnumber [, int base])\",\"Gets string representation of GMP number\"],gmp_sub:[\"resource gmp_sub(resource a, resource b)\",\"Subtract b from a\"],gmp_testbit:[\"bool gmp_testbit(resource a, int index)\",\"Tests if bit is set in a\"],gmp_xor:[\"resource gmp_xor(resource a, resource b)\",\"Calculates logical exclusive OR of a and b\"],gmstrftime:[\"string gmstrftime(string format [, int timestamp])\",\"Format a GMT/UCT time/date according to locale settings\"],grapheme_extract:[\"string grapheme_extract(string str, int size[, int extract_type[, int start[, int next]]])\",\"Function to extract a sequence of default grapheme clusters\"],grapheme_stripos:[\"int grapheme_stripos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another, ignoring case differences\"],grapheme_stristr:[\"string grapheme_stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_strlen:[\"int grapheme_strlen(string str)\",\"Get number of graphemes in a string\"],grapheme_strpos:[\"int grapheme_strpos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another\"],grapheme_strripos:[\"int grapheme_strripos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another, ignoring case\"],grapheme_strrpos:[\"int grapheme_strrpos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another\"],grapheme_strstr:[\"string grapheme_strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_substr:[\"string grapheme_substr(string str, int start [, int length])\",\"Returns part of a string\"],gregoriantojd:[\"int gregoriantojd(int month, int day, int year)\",\"Converts a gregorian calendar date to julian day count\"],gzcompress:[\"string gzcompress(string data [, int level])\",\"Gzip-compress a string\"],gzdeflate:[\"string gzdeflate(string data [, int level])\",\"Gzip-compress a string\"],gzencode:[\"string gzencode(string data [, int level [, int encoding_mode]])\",\"GZ encode a string\"],gzfile:[\"array gzfile(string filename [, int use_include_path])\",\"Read und uncompress entire .gz-file into an array\"],gzinflate:[\"string gzinflate(string data [, int length])\",\"Unzip a gzip-compressed string\"],gzopen:[\"resource gzopen(string filename, string mode [, int use_include_path])\",\"Open a .gz-file and return a .gz-file pointer\"],gzuncompress:[\"string gzuncompress(string data [, int length])\",\"Unzip a gzip-compressed string\"],hash:[\"string hash(string algo, string data[, bool raw_output = false])\",\"Generate a hash of a given input string Returns lowercase hexits by default\"],hash_algos:[\"array hash_algos(void)\",\"Return a list of registered hashing algorithms\"],hash_copy:[\"resource hash_copy(resource context)\",\"Copy hash resource\"],hash_file:[\"string hash_file(string algo, string filename[, bool raw_output = false])\",\"Generate a hash of a given file Returns lowercase hexits by default\"],hash_final:[\"string hash_final(resource context[, bool raw_output=false])\",\"Output resulting digest\"],hash_hmac:[\"string hash_hmac(string algo, string data, string key[, bool raw_output = false])\",\"Generate a hash of a given input string with a key using HMAC Returns lowercase hexits by default\"],hash_hmac_file:[\"string hash_hmac_file(string algo, string filename, string key[, bool raw_output = false])\",\"Generate a hash of a given file with a key using HMAC Returns lowercase hexits by default\"],hash_init:[\"resource hash_init(string algo[, int options, string key])\",\"Initialize a hashing context\"],hash_update:[\"bool hash_update(resource context, string data)\",\"Pump data into the hashing algorithm\"],hash_update_file:[\"bool hash_update_file(resource context, string filename[, resource context])\",\"Pump data into the hashing algorithm from a file\"],hash_update_stream:[\"int hash_update_stream(resource context, resource handle[, integer length])\",\"Pump data into the hashing algorithm from an open stream\"],header:[\"void header(string header [, bool replace, [int http_response_code]])\",\"Sends a raw HTTP header\"],header_remove:[\"void header_remove([string name])\",\"Removes an HTTP header previously set using header()\"],headers_list:[\"array headers_list(void)\",\"Return list of headers to be sent / already sent\"],headers_sent:[\"bool headers_sent([string &$file [, int &$line]])\",\"Returns true if headers have already been sent, false otherwise\"],hebrev:[\"string hebrev(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text\"],hebrevc:[\"string hebrevc(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text with newline conversion\"],hexdec:[\"int hexdec(string hexadecimal_number)\",\"Returns the decimal equivalent of the hexadecimal number\"],highlight_file:[\"bool highlight_file(string file_name [, bool return] )\",\"Syntax highlight a source file\"],highlight_string:[\"bool highlight_string(string string [, bool return] )\",\"Syntax highlight a string or optionally return it\"],html_entity_decode:[\"string html_entity_decode(string string [, int quote_style][, string charset])\",\"Convert all HTML entities to their applicable characters\"],htmlentities:[\"string htmlentities(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert all applicable characters to HTML entities\"],htmlspecialchars:[\"string htmlspecialchars(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert special characters to HTML entities\"],htmlspecialchars_decode:[\"string htmlspecialchars_decode(string string [, int quote_style])\",\"Convert special HTML entities back to characters\"],http_build_query:[\"string http_build_query(mixed formdata [, string prefix [, string arg_separator]])\",\"Generates a form-encoded query string from an associative array or object.\"],hypot:[\"float hypot(float num1, float num2)\",\"Returns sqrt(num1*num1 + num2*num2)\"],ibase_add_user:[\"bool ibase_add_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Add a user to security database\"],ibase_affected_rows:[\"int ibase_affected_rows( [ resource link_identifier ] )\",\"Returns the number of rows affected by the previous INSERT, UPDATE or DELETE statement\"],ibase_backup:[\"mixed ibase_backup(resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])\",\"Initiates a backup task in the service manager and returns immediately\"],ibase_blob_add:[\"bool ibase_blob_add(resource blob_handle, string data)\",\"Add data into created blob\"],ibase_blob_cancel:[\"bool ibase_blob_cancel(resource blob_handle)\",\"Cancel creating blob\"],ibase_blob_close:[\"string ibase_blob_close(resource blob_handle)\",\"Close blob\"],ibase_blob_create:[\"resource ibase_blob_create([resource link_identifier])\",\"Create blob for adding data\"],ibase_blob_echo:[\"bool ibase_blob_echo([ resource link_identifier, ] string blob_id)\",\"Output blob contents to browser\"],ibase_blob_get:[\"string ibase_blob_get(resource blob_handle, int len)\",\"Get len bytes data from open blob\"],ibase_blob_import:[\"string ibase_blob_import([ resource link_identifier, ] resource file)\",\"Create blob, copy file in it, and close it\"],ibase_blob_info:[\"array ibase_blob_info([ resource link_identifier, ] string blob_id)\",\"Return blob length and other useful info\"],ibase_blob_open:[\"resource ibase_blob_open([ resource link_identifier, ] string blob_id)\",\"Open blob for retrieving data parts\"],ibase_close:[\"bool ibase_close([resource link_identifier])\",\"Close an InterBase connection\"],ibase_commit:[\"bool ibase_commit( resource link_identifier )\",\"Commit transaction\"],ibase_commit_ret:[\"bool ibase_commit_ret( resource link_identifier )\",\"Commit transaction and retain the transaction context\"],ibase_connect:[\"resource ibase_connect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a connection to an InterBase database\"],ibase_db_info:[\"string ibase_db_info(resource service_handle, string db, int action [, int argument])\",\"Request statistics about a database\"],ibase_delete_user:[\"bool ibase_delete_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Delete a user from security database\"],ibase_drop_db:[\"bool ibase_drop_db([resource link_identifier])\",\"Drop an InterBase database\"],ibase_errcode:[\"int ibase_errcode(void)\",\"Return error code\"],ibase_errmsg:[\"string ibase_errmsg(void)\",\"Return error message\"],ibase_execute:[\"mixed ibase_execute(resource query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a previously prepared query\"],ibase_fetch_assoc:[\"array ibase_fetch_assoc(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_fetch_object:[\"object ibase_fetch_object(resource result [, int fetch_flags])\",\"Fetch a object from the results of a query\"],ibase_fetch_row:[\"array ibase_fetch_row(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_field_info:[\"array ibase_field_info(resource query_result, int field_number)\",\"Get information about a field\"],ibase_free_event_handler:[\"bool ibase_free_event_handler(resource event)\",\"Frees the event handler set by ibase_set_event_handler()\"],ibase_free_query:[\"bool ibase_free_query(resource query)\",\"Free memory used by a query\"],ibase_free_result:[\"bool ibase_free_result(resource result)\",\"Free the memory used by a result\"],ibase_gen_id:[\"int ibase_gen_id(string generator [, int increment [, resource link_identifier ]])\",\"Increments the named generator and returns its new value\"],ibase_maintain_db:[\"bool ibase_maintain_db(resource service_handle, string db, int action [, int argument])\",\"Execute a maintenance command on the database server\"],ibase_modify_user:[\"bool ibase_modify_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Modify a user in security database\"],ibase_name_result:[\"bool ibase_name_result(resource result, string name)\",\"Assign a name to a result for use with ... WHERE CURRENT OF <name> statements\"],ibase_num_fields:[\"int ibase_num_fields(resource query_result)\",\"Get the number of fields in result\"],ibase_num_params:[\"int ibase_num_params(resource query)\",\"Get the number of params in a prepared query\"],ibase_num_rows:[\"int ibase_num_rows( resource result_identifier )\",\"Return the number of rows that are available in a result\"],ibase_param_info:[\"array ibase_param_info(resource query, int field_number)\",\"Get information about a parameter\"],ibase_pconnect:[\"resource ibase_pconnect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a persistent connection to an InterBase database\"],ibase_prepare:[\"resource ibase_prepare(resource link_identifier[, string query [, resource trans_identifier ]])\",\"Prepare a query for later execution\"],ibase_query:[\"mixed ibase_query([resource link_identifier, [ resource link_identifier, ]] string query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a query\"],ibase_restore:[\"mixed ibase_restore(resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])\",\"Initiates a restore task in the service manager and returns immediately\"],ibase_rollback:[\"bool ibase_rollback( resource link_identifier )\",\"Rollback transaction\"],ibase_rollback_ret:[\"bool ibase_rollback_ret( resource link_identifier )\",\"Rollback transaction and retain the transaction context\"],ibase_server_info:[\"string ibase_server_info(resource service_handle, int action)\",\"Request information about a database server\"],ibase_service_attach:[\"resource ibase_service_attach(string host, string dba_username, string dba_password)\",\"Connect to the service manager\"],ibase_service_detach:[\"bool ibase_service_detach(resource service_handle)\",\"Disconnect from the service manager\"],ibase_set_event_handler:[\"resource ibase_set_event_handler([resource link_identifier,] callback handler, string event [, string event [, ...]])\",\"Register the callback for handling each of the named events\"],ibase_trans:[\"resource ibase_trans([int trans_args [, resource link_identifier [, ... ], int trans_args [, resource link_identifier [, ... ]] [, ...]]])\",\"Start a transaction over one or several databases\"],ibase_wait_event:[\"string ibase_wait_event([resource link_identifier,] string event [, string event [, ...]])\",\"Waits for any one of the passed Interbase events to be posted by the database, and returns its name\"],iconv:[\"string iconv(string in_charset, string out_charset, string str)\",\"Returns str converted to the out_charset character set\"],iconv_get_encoding:[\"mixed iconv_get_encoding([string type])\",\"Get internal encoding and output encoding for ob_iconv_handler()\"],iconv_mime_decode:[\"string iconv_mime_decode(string encoded_string [, int mode, string charset])\",\"Decodes a mime header field\"],iconv_mime_decode_headers:[\"array iconv_mime_decode_headers(string headers [, int mode, string charset])\",\"Decodes multiple mime header fields\"],iconv_mime_encode:[\"string iconv_mime_encode(string field_name, string field_value [, array preference])\",\"Composes a mime header field with field_name and field_value in a specified scheme\"],iconv_set_encoding:[\"bool iconv_set_encoding(string type, string charset)\",\"Sets internal encoding and output encoding for ob_iconv_handler()\"],iconv_strlen:[\"int iconv_strlen(string str [, string charset])\",\"Returns the character count of str\"],iconv_strpos:[\"int iconv_strpos(string haystack, string needle [, int offset [, string charset]])\",\"Finds position of first occurrence of needle within part of haystack beginning with offset\"],iconv_strrpos:[\"int iconv_strrpos(string haystack, string needle [, string charset])\",\"Finds position of last occurrence of needle within part of haystack beginning with offset\"],iconv_substr:[\"string iconv_substr(string str, int offset, [int length, string charset])\",\"Returns specified part of a string\"],idate:[\"int idate(string format [, int timestamp])\",\"Format a local time/date as integer\"],idn_to_ascii:[\"int idn_to_ascii(string domain[, int options])\",\"Converts an Unicode domain to ASCII representation, as defined in the IDNA RFC\"],idn_to_utf8:[\"int idn_to_utf8(string domain[, int options])\",\"Converts an ASCII representation of the domain to Unicode (UTF-8), as defined in the IDNA RFC\"],ignore_user_abort:[\"int ignore_user_abort([string value])\",\"Set whether we want to ignore a user abort event or not\"],image2wbmp:[\"bool image2wbmp(resource im [, string filename [, int threshold]])\",\"Output WBMP image to browser or file\"],image_type_to_extension:[\"string image_type_to_extension(int imagetype [, bool include_dot])\",\"Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],image_type_to_mime_type:[\"string image_type_to_mime_type(int imagetype)\",\"Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],imagealphablending:[\"bool imagealphablending(resource im, bool on)\",\"Turn alpha blending mode on or off for the given image\"],imageantialias:[\"bool imageantialias(resource im, bool on)\",\"Should antialiased functions used or not\"],imagearc:[\"bool imagearc(resource im, int cx, int cy, int w, int h, int s, int e, int col)\",\"Draw a partial ellipse\"],imagechar:[\"bool imagechar(resource im, int font, int x, int y, string c, int col)\",\"Draw a character\"],imagecharup:[\"bool imagecharup(resource im, int font, int x, int y, string c, int col)\",\"Draw a character rotated 90 degrees counter-clockwise\"],imagecolorallocate:[\"int imagecolorallocate(resource im, int red, int green, int blue)\",\"Allocate a color for an image\"],imagecolorallocatealpha:[\"int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)\",\"Allocate a color with an alpha level.  Works for true color and palette based images\"],imagecolorat:[\"int imagecolorat(resource im, int x, int y)\",\"Get the index of the color of a pixel\"],imagecolorclosest:[\"int imagecolorclosest(resource im, int red, int green, int blue)\",\"Get the index of the closest color to the specified color\"],imagecolorclosestalpha:[\"int imagecolorclosestalpha(resource im, int red, int green, int blue, int alpha)\",\"Find the closest matching colour with alpha transparency\"],imagecolorclosesthwb:[\"int imagecolorclosesthwb(resource im, int red, int green, int blue)\",\"Get the index of the color which has the hue, white and blackness nearest to the given color\"],imagecolordeallocate:[\"bool imagecolordeallocate(resource im, int index)\",\"De-allocate a color for an image\"],imagecolorexact:[\"int imagecolorexact(resource im, int red, int green, int blue)\",\"Get the index of the specified color\"],imagecolorexactalpha:[\"int imagecolorexactalpha(resource im, int red, int green, int blue, int alpha)\",\"Find exact match for colour with transparency\"],imagecolormatch:[\"bool imagecolormatch(resource im1, resource im2)\",\"Makes the colors of the palette version of an image more closely match the true color version\"],imagecolorresolve:[\"int imagecolorresolve(resource im, int red, int green, int blue)\",\"Get the index of the specified color or its closest possible alternative\"],imagecolorresolvealpha:[\"int imagecolorresolvealpha(resource im, int red, int green, int blue, int alpha)\",\"Resolve/Allocate a colour with an alpha level.  Works for true colour and palette based images\"],imagecolorset:[\"void imagecolorset(resource im, int col, int red, int green, int blue)\",\"Set the color for the specified palette index\"],imagecolorsforindex:[\"array imagecolorsforindex(resource im, int col)\",\"Get the colors for an index\"],imagecolorstotal:[\"int imagecolorstotal(resource im)\",\"Find out the number of colors in an image's palette\"],imagecolortransparent:[\"int imagecolortransparent(resource im [, int col])\",\"Define a color as transparent\"],imageconvolution:[\"resource imageconvolution(resource src_im, array matrix3x3, double div, double offset)\",\"Apply a 3x3 convolution matrix, using coefficient div and offset\"],imagecopy:[\"bool imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)\",\"Copy part of an image\"],imagecopymerge:[\"bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopymergegray:[\"bool imagecopymergegray(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopyresampled:[\"bool imagecopyresampled(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image using resampling to help ensure clarity\"],imagecopyresized:[\"bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image\"],imagecreate:[\"resource imagecreate(int x_size, int y_size)\",\"Create a new image\"],imagecreatefromgd:[\"resource imagecreatefromgd(string filename)\",\"Create a new image from GD file or URL\"],imagecreatefromgd2:[\"resource imagecreatefromgd2(string filename)\",\"Create a new image from GD2 file or URL\"],imagecreatefromgd2part:[\"resource imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height)\",\"Create a new image from a given part of GD2 file or URL\"],imagecreatefromgif:[\"resource imagecreatefromgif(string filename)\",\"Create a new image from GIF file or URL\"],imagecreatefromjpeg:[\"resource imagecreatefromjpeg(string filename)\",\"Create a new image from JPEG file or URL\"],imagecreatefrompng:[\"resource imagecreatefrompng(string filename)\",\"Create a new image from PNG file or URL\"],imagecreatefromstring:[\"resource imagecreatefromstring(string image)\",\"Create a new image from the image stream in the string\"],imagecreatefromwbmp:[\"resource imagecreatefromwbmp(string filename)\",\"Create a new image from WBMP file or URL\"],imagecreatefromxbm:[\"resource imagecreatefromxbm(string filename)\",\"Create a new image from XBM file or URL\"],imagecreatefromxpm:[\"resource imagecreatefromxpm(string filename)\",\"Create a new image from XPM file or URL\"],imagecreatetruecolor:[\"resource imagecreatetruecolor(int x_size, int y_size)\",\"Create a new true color image\"],imagedashedline:[\"bool imagedashedline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a dashed line\"],imagedestroy:[\"bool imagedestroy(resource im)\",\"Destroy an image\"],imageellipse:[\"bool imageellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefill:[\"bool imagefill(resource im, int x, int y, int col)\",\"Flood fill\"],imagefilledarc:[\"bool imagefilledarc(resource im, int cx, int cy, int w, int h, int s, int e, int col, int style)\",\"Draw a filled partial ellipse\"],imagefilledellipse:[\"bool imagefilledellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefilledpolygon:[\"bool imagefilledpolygon(resource im, array point, int num_points, int col)\",\"Draw a filled polygon\"],imagefilledrectangle:[\"bool imagefilledrectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a filled rectangle\"],imagefilltoborder:[\"bool imagefilltoborder(resource im, int x, int y, int border, int col)\",\"Flood fill to specific color\"],imagefilter:[\"bool imagefilter(resource src_im, int filtertype, [args] )\",\"Applies Filter an image using a custom angle\"],imagefontheight:[\"int imagefontheight(int font)\",\"Get font height\"],imagefontwidth:[\"int imagefontwidth(int font)\",\"Get font width\"],imageftbbox:[\"array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])\",\"Give the bounding box of a text using fonts via freetype2\"],imagefttext:[\"array imagefttext(resource im, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo])\",\"Write text to the image using fonts via freetype2\"],imagegammacorrect:[\"bool imagegammacorrect(resource im, float inputgamma, float outputgamma)\",\"Apply a gamma correction to a GD image\"],imagegd:[\"bool imagegd(resource im [, string filename])\",\"Output GD image to browser or file\"],imagegd2:[\"bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])\",\"Output GD2 image to browser or file\"],imagegif:[\"bool imagegif(resource im [, string filename])\",\"Output GIF image to browser or file\"],imagegrabscreen:[\"resource imagegrabscreen()\",\"Grab a screenshot\"],imagegrabwindow:[\"resource imagegrabwindow(int window_handle [, int client_area])\",\"Grab a window or its client area using a windows handle (HWND property in COM instance)\"],imageinterlace:[\"int imageinterlace(resource im [, int interlace])\",\"Enable or disable interlace\"],imageistruecolor:[\"bool imageistruecolor(resource im)\",\"return true if the image uses truecolor\"],imagejpeg:[\"bool imagejpeg(resource im [, string filename [, int quality]])\",\"Output JPEG image to browser or file\"],imagelayereffect:[\"bool imagelayereffect(resource im, int effect)\",\"Set the alpha blending flag to use the bundled libgd layering effects\"],imageline:[\"bool imageline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a line\"],imageloadfont:[\"int imageloadfont(string filename)\",\"Load a new font\"],imagepalettecopy:[\"void imagepalettecopy(resource dst, resource src)\",\"Copy the palette from the src image onto the dst image\"],imagepng:[\"bool imagepng(resource im [, string filename])\",\"Output PNG image to browser or file\"],imagepolygon:[\"bool imagepolygon(resource im, array point, int num_points, int col)\",\"Draw a polygon\"],imagepsbbox:[\"array imagepsbbox(string text, resource font, int size [, int space, int tightness, float angle])\",\"Return the bounding box needed by a string if rasterized\"],imagepscopyfont:[\"int imagepscopyfont(int font_index)\",\"Make a copy of a font for purposes like extending or reenconding\"],imagepsencodefont:[\"bool imagepsencodefont(resource font_index, string filename)\",\"To change a fonts character encoding vector\"],imagepsextendfont:[\"bool imagepsextendfont(resource font_index, float extend)\",\"Extend or or condense (if extend < 1) a font\"],imagepsfreefont:[\"bool imagepsfreefont(resource font_index)\",\"Free memory used by a font\"],imagepsloadfont:[\"resource imagepsloadfont(string pathname)\",\"Load a new font from specified file\"],imagepsslantfont:[\"bool imagepsslantfont(resource font_index, float slant)\",\"Slant a font\"],imagepstext:[\"array imagepstext(resource image, string text, resource font, int size, int foreground, int background, int xcoord, int ycoord [, int space [, int tightness [, float angle [, int antialias])\",\"Rasterize a string over an image\"],imagerectangle:[\"bool imagerectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a rectangle\"],imagerotate:[\"resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])\",\"Rotate an image using a custom angle\"],imagesavealpha:[\"bool imagesavealpha(resource im, bool on)\",\"Include alpha channel to a saved image\"],imagesetbrush:[\"bool imagesetbrush(resource image, resource brush)\",'Set the brush image to $brush when filling $image with the \"IMG_COLOR_BRUSHED\" color'],imagesetpixel:[\"bool imagesetpixel(resource im, int x, int y, int col)\",\"Set a single pixel\"],imagesetstyle:[\"bool imagesetstyle(resource im, array styles)\",\"Set the line drawing styles for use with imageline and IMG_COLOR_STYLED.\"],imagesetthickness:[\"bool imagesetthickness(resource im, int thickness)\",\"Set line thickness for drawing lines, ellipses, rectangles, polygons etc.\"],imagesettile:[\"bool imagesettile(resource image, resource tile)\",'Set the tile image to $tile when filling $image with the \"IMG_COLOR_TILED\" color'],imagestring:[\"bool imagestring(resource im, int font, int x, int y, string str, int col)\",\"Draw a string horizontally\"],imagestringup:[\"bool imagestringup(resource im, int font, int x, int y, string str, int col)\",\"Draw a string vertically - rotated 90 degrees counter-clockwise\"],imagesx:[\"int imagesx(resource im)\",\"Get image width\"],imagesy:[\"int imagesy(resource im)\",\"Get image height\"],imagetruecolortopalette:[\"void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)\",\"Convert a true colour image to a palette based image with a number of colours, optionally using dithering.\"],imagettfbbox:[\"array imagettfbbox(float size, float angle, string font_file, string text)\",\"Give the bounding box of a text using TrueType fonts\"],imagettftext:[\"array imagettftext(resource im, float size, float angle, int x, int y, int col, string font_file, string text)\",\"Write text to the image using a TrueType font\"],imagetypes:[\"int imagetypes(void)\",\"Return the types of images supported in a bitfield - 1=GIF, 2=JPEG, 4=PNG, 8=WBMP, 16=XPM\"],imagewbmp:[\"bool imagewbmp(resource im [, string filename, [, int foreground]])\",\"Output WBMP image to browser or file\"],imagexbm:[\"int imagexbm(int im, string filename [, int foreground])\",\"Output XBM image to browser or file\"],imap_8bit:[\"string imap_8bit(string text)\",\"Convert an 8-bit string to a quoted-printable string\"],imap_alerts:[\"array imap_alerts(void)\",\"Returns an array of all IMAP alerts that have been generated since the last page load or since the last imap_alerts() call, whichever came last. The alert stack is cleared after imap_alerts() is called.\"],imap_append:[\"bool imap_append(resource stream_id, string folder, string message [, string options [, string internal_date]])\",\"Append a new message to a specified mailbox\"],imap_base64:[\"string imap_base64(string text)\",\"Decode BASE64 encoded text\"],imap_binary:[\"string imap_binary(string text)\",\"Convert an 8bit string to a base64 string\"],imap_body:[\"string imap_body(resource stream_id, int msg_no [, int options])\",\"Read the message body\"],imap_bodystruct:[\"object imap_bodystruct(resource stream_id, int msg_no, string section)\",\"Read the structure of a specified body section of a specific message\"],imap_check:[\"object imap_check(resource stream_id)\",\"Get mailbox properties\"],imap_clearflag_full:[\"bool imap_clearflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Clears flags on messages\"],imap_close:[\"bool imap_close(resource stream_id [, int options])\",\"Close an IMAP stream\"],imap_createmailbox:[\"bool imap_createmailbox(resource stream_id, string mailbox)\",\"Create a new mailbox\"],imap_delete:[\"bool imap_delete(resource stream_id, int msg_no [, int options])\",\"Mark a message for deletion\"],imap_deletemailbox:[\"bool imap_deletemailbox(resource stream_id, string mailbox)\",\"Delete a mailbox\"],imap_errors:[\"array imap_errors(void)\",\"Returns an array of all IMAP errors generated since the last page load, or since the last imap_errors() call, whichever came last. The error stack is cleared after imap_errors() is called.\"],imap_expunge:[\"bool imap_expunge(resource stream_id)\",\"Permanently delete all messages marked for deletion\"],imap_fetch_overview:[\"array imap_fetch_overview(resource stream_id, string sequence [, int options])\",\"Read an overview of the information in the headers of the given message sequence\"],imap_fetchbody:[\"string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])\",\"Get a specific body section\"],imap_fetchheader:[\"string imap_fetchheader(resource stream_id, int msg_no [, int options])\",\"Get the full unfiltered header for a message\"],imap_fetchstructure:[\"object imap_fetchstructure(resource stream_id, int msg_no [, int options])\",\"Read the full structure of a message\"],imap_gc:[\"bool imap_gc(resource stream_id, int flags)\",\"This function garbage collects (purges) the cache of entries of a specific type.\"],imap_get_quota:[\"array imap_get_quota(resource stream_id, string qroot)\",\"Returns the quota set to the mailbox account qroot\"],imap_get_quotaroot:[\"array imap_get_quotaroot(resource stream_id, string mbox)\",\"Returns the quota set to the mailbox account mbox\"],imap_getacl:[\"array imap_getacl(resource stream_id, string mailbox)\",\"Gets the ACL for a given mailbox\"],imap_getmailboxes:[\"array imap_getmailboxes(resource stream_id, string ref, string pattern)\",\"Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter\"],imap_getsubscribed:[\"array imap_getsubscribed(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes, in the same format as imap_getmailboxes()\"],imap_headerinfo:[\"object imap_headerinfo(resource stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])\",\"Read the headers of the message\"],imap_headers:[\"array imap_headers(resource stream_id)\",\"Returns headers for all messages in a mailbox\"],imap_last_error:[\"string imap_last_error(void)\",\"Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call.\"],imap_list:[\"array imap_list(resource stream_id, string ref, string pattern)\",\"Read the list of mailboxes\"],imap_listscan:[\"array imap_listscan(resource stream_id, string ref, string pattern, string content)\",\"Read list of mailboxes containing a certain string\"],imap_lsub:[\"array imap_lsub(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes\"],imap_mail:[\"bool imap_mail(string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])\",\"Send an email message\"],imap_mail_compose:[\"string imap_mail_compose(array envelope, array body)\",\"Create a MIME message based on given envelope and body sections\"],imap_mail_copy:[\"bool imap_mail_copy(resource stream_id, string msglist, string mailbox [, int options])\",\"Copy specified message to a mailbox\"],imap_mail_move:[\"bool imap_mail_move(resource stream_id, string sequence, string mailbox [, int options])\",\"Move specified message to a mailbox\"],imap_mailboxmsginfo:[\"object imap_mailboxmsginfo(resource stream_id)\",\"Returns info about the current mailbox\"],imap_mime_header_decode:[\"array imap_mime_header_decode(string str)\",\"Decode mime header element in accordance with RFC 2047 and return array of objects containing 'charset' encoding and decoded 'text'\"],imap_msgno:[\"int imap_msgno(resource stream_id, int unique_msg_id)\",\"Get the sequence number associated with a UID\"],imap_mutf7_to_utf8:[\"string imap_mutf7_to_utf8(string in)\",\"Decode a modified UTF-7 string to UTF-8\"],imap_num_msg:[\"int imap_num_msg(resource stream_id)\",\"Gives the number of messages in the current mailbox\"],imap_num_recent:[\"int imap_num_recent(resource stream_id)\",\"Gives the number of recent messages in current mailbox\"],imap_open:[\"resource imap_open(string mailbox, string user, string password [, int options [, int n_retries]])\",\"Open an IMAP stream to a mailbox\"],imap_ping:[\"bool imap_ping(resource stream_id)\",\"Check if the IMAP stream is still active\"],imap_qprint:[\"string imap_qprint(string text)\",\"Convert a quoted-printable string to an 8-bit string\"],imap_renamemailbox:[\"bool imap_renamemailbox(resource stream_id, string old_name, string new_name)\",\"Rename a mailbox\"],imap_reopen:[\"bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]])\",\"Reopen an IMAP stream to a new mailbox\"],imap_rfc822_parse_adrlist:[\"array imap_rfc822_parse_adrlist(string address_string, string default_host)\",\"Parses an address string\"],imap_rfc822_parse_headers:[\"object imap_rfc822_parse_headers(string headers [, string default_host])\",\"Parse a set of mail headers contained in a string, and return an object similar to imap_headerinfo()\"],imap_rfc822_write_address:[\"string imap_rfc822_write_address(string mailbox, string host, string personal)\",\"Returns a properly formatted email address given the mailbox, host, and personal info\"],imap_savebody:['bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = \"\"[, int options = 0]])',\"Save a specific body section to a file\"],imap_search:[\"array imap_search(resource stream_id, string criteria [, int options [, string charset]])\",\"Return a list of messages matching the given criteria\"],imap_set_quota:[\"bool imap_set_quota(resource stream_id, string qroot, int mailbox_size)\",\"Will set the quota for qroot mailbox\"],imap_setacl:[\"bool imap_setacl(resource stream_id, string mailbox, string id, string rights)\",\"Sets the ACL for a given mailbox\"],imap_setflag_full:[\"bool imap_setflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Sets flags on messages\"],imap_sort:[\"array imap_sort(resource stream_id, int criteria, int reverse [, int options [, string search_criteria [, string charset]]])\",\"Sort an array of message headers, optionally including only messages that meet specified criteria.\"],imap_status:[\"object imap_status(resource stream_id, string mailbox, int options)\",\"Get status info from a mailbox\"],imap_subscribe:[\"bool imap_subscribe(resource stream_id, string mailbox)\",\"Subscribe to a mailbox\"],imap_thread:[\"array imap_thread(resource stream_id [, int options])\",\"Return threaded by REFERENCES tree\"],imap_timeout:[\"mixed imap_timeout(int timeout_type [, int timeout])\",\"Set or fetch imap timeout\"],imap_uid:[\"int imap_uid(resource stream_id, int msg_no)\",\"Get the unique message id associated with a standard sequential message number\"],imap_undelete:[\"bool imap_undelete(resource stream_id, int msg_no [, int flags])\",\"Remove the delete flag from a message\"],imap_unsubscribe:[\"bool imap_unsubscribe(resource stream_id, string mailbox)\",\"Unsubscribe from a mailbox\"],imap_utf7_decode:[\"string imap_utf7_decode(string buf)\",\"Decode a modified UTF-7 string\"],imap_utf7_encode:[\"string imap_utf7_encode(string buf)\",\"Encode a string in modified UTF-7\"],imap_utf8:[\"string imap_utf8(string mime_encoded_text)\",\"Convert a mime-encoded text to UTF-8\"],imap_utf8_to_mutf7:[\"string imap_utf8_to_mutf7(string in)\",\"Encode a UTF-8 string to modified UTF-7\"],implode:[\"string implode([string glue,] array pieces)\",\"Joins array elements placing glue string between items and return one string\"],import_request_variables:[\"bool import_request_variables(string types [, string prefix])\",\"Import GET/POST/Cookie variables into the global scope\"],in_array:[\"bool in_array(mixed needle, array haystack [, bool strict])\",\"Checks if the given value exists in the array\"],include:[\"bool include(string path)\",\"Includes and evaluates the specified file\"],include_once:[\"bool include_once(string path)\",\"Includes and evaluates the specified file\"],inet_ntop:[\"string inet_ntop(string in_addr)\",\"Converts a packed inet address to a human readable IP address string\"],inet_pton:[\"string inet_pton(string ip_address)\",\"Converts a human readable IP address to a packed binary string\"],ini_get:[\"string ini_get(string varname)\",\"Get a configuration option\"],ini_get_all:[\"array ini_get_all([string extension[, bool details = true]])\",\"Get all configuration options\"],ini_restore:[\"void ini_restore(string varname)\",\"Restore the value of a configuration option specified by varname\"],ini_set:[\"string ini_set(string varname, string newvalue)\",\"Set a configuration option, returns false on error and the old value of the configuration option on success\"],interface_exists:[\"bool interface_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],intl_error_name:[\"string intl_error_name()\",\"* Return a string for a given error code.  * The string will be the same as the name of the error code constant.\"],intl_get_error_code:[\"int intl_get_error_code()\",\"* Get code of the last occured error.\"],intl_get_error_message:[\"string intl_get_error_message()\",\"* Get text description of the last occured error.\"],intl_is_failure:[\"bool intl_is_failure()\",\"* Check whether the given error code indicates a failure.  * Returns true if it does, and false if the code  * indicates success or a warning.\"],intval:[\"int intval(mixed var [, int base])\",\"Get the integer value of a variable using the optional base for the conversion\"],ip2long:[\"int ip2long(string ip_address)\",\"Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address\"],iptcembed:[\"array iptcembed(string iptcdata, string jpeg_file_name [, int spool])\",\"Embed binary IPTC data into a JPEG image.\"],iptcparse:[\"array iptcparse(string iptcdata)\",\"Parse binary IPTC-data into associative array\"],is_a:[\"bool is_a(object object, string class_name)\",\"Returns true if the object is of this class or has this class as one of its parents\"],is_array:[\"bool is_array(mixed var)\",\"Returns true if variable is an array\"],is_bool:[\"bool is_bool(mixed var)\",\"Returns true if variable is a boolean\"],is_callable:[\"bool is_callable(mixed var [, bool syntax_only [, string callable_name]])\",\"Returns true if var is callable.\"],is_dir:[\"bool is_dir(string filename)\",\"Returns true if file is directory\"],is_executable:[\"bool is_executable(string filename)\",\"Returns true if file is executable\"],is_file:[\"bool is_file(string filename)\",\"Returns true if file is a regular file\"],is_finite:[\"bool is_finite(float val)\",\"Returns whether argument is finite\"],is_float:[\"bool is_float(mixed var)\",\"Returns true if variable is float point\"],is_infinite:[\"bool is_infinite(float val)\",\"Returns whether argument is infinite\"],is_link:[\"bool is_link(string filename)\",\"Returns true if file is symbolic link\"],is_long:[\"bool is_long(mixed var)\",\"Returns true if variable is a long (integer)\"],is_nan:[\"bool is_nan(float val)\",\"Returns whether argument is not a number\"],is_null:[\"bool is_null(mixed var)\",\"Returns true if variable is null\"],is_numeric:[\"bool is_numeric(mixed value)\",\"Returns true if value is a number or a numeric string\"],is_object:[\"bool is_object(mixed var)\",\"Returns true if variable is an object\"],is_readable:[\"bool is_readable(string filename)\",\"Returns true if file can be read\"],is_resource:[\"bool is_resource(mixed var)\",\"Returns true if variable is a resource\"],is_scalar:[\"bool is_scalar(mixed value)\",\"Returns true if value is a scalar\"],is_string:[\"bool is_string(mixed var)\",\"Returns true if variable is a string\"],is_subclass_of:[\"bool is_subclass_of(object object, string class_name)\",\"Returns true if the object has this class as one of its parents\"],is_uploaded_file:[\"bool is_uploaded_file(string path)\",\"Check if file was created by rfc1867 upload\"],is_writable:[\"bool is_writable(string filename)\",\"Returns true if file can be written\"],isset:[\"bool isset(mixed var [, mixed var])\",\"Determine whether a variable is set\"],iterator_apply:[\"int iterator_apply(Traversable it, mixed function [, mixed params])\",\"Calls a function for every element in an iterator\"],iterator_count:[\"int iterator_count(Traversable it)\",\"Count the elements in an iterator\"],iterator_to_array:[\"array iterator_to_array(Traversable it [, bool use_keys = true])\",\"Copy the iterator into an array\"],jddayofweek:[\"mixed jddayofweek(int juliandaycount [, int mode])\",\"Returns name or number of day of week from julian day count\"],jdmonthname:[\"string jdmonthname(int juliandaycount, int mode)\",\"Returns name of month for julian day count\"],jdtofrench:[\"string jdtofrench(int juliandaycount)\",\"Converts a julian day count to a french republic calendar date\"],jdtogregorian:[\"string jdtogregorian(int juliandaycount)\",\"Converts a julian day count to a gregorian calendar date\"],jdtojewish:[\"string jdtojewish(int juliandaycount [, bool hebrew [, int fl]])\",\"Converts a julian day count to a jewish calendar date\"],jdtojulian:[\"string jdtojulian(int juliandaycount)\",\"Convert a julian day count to a julian calendar date\"],jdtounix:[\"int jdtounix(int jday)\",\"Convert Julian Day to UNIX timestamp\"],jewishtojd:[\"int jewishtojd(int month, int day, int year)\",\"Converts a jewish calendar date to a julian day count\"],join:[\"string join(array src, string glue)\",\"An alias for implode\"],jpeg2wbmp:[\"bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert JPEG image to WBMP image\"],json_decode:[\"mixed json_decode(string json [, bool assoc [, long depth]])\",\"Decodes the JSON representation into a PHP value\"],json_encode:[\"string json_encode(mixed data [, int options])\",\"Returns the JSON representation of a value\"],json_last_error:[\"int json_last_error()\",\"Returns the error code of the last json_decode().\"],juliantojd:[\"int juliantojd(int month, int day, int year)\",\"Converts a julian calendar date to julian day count\"],key:[\"mixed key(array array_arg)\",\"Return the key of the element currently pointed to by the internal array pointer\"],krsort:[\"bool krsort(array &array_arg [, int sort_flags])\",\"Sort an array by key value in reverse order\"],ksort:[\"bool ksort(array &array_arg [, int sort_flags])\",\"Sort an array by key\"],lcfirst:[\"string lcfirst(string str)\",\"Make a string's first character lowercase\"],lcg_value:[\"float lcg_value()\",\"Returns a value from the combined linear congruential generator\"],lchgrp:[\"bool lchgrp(string filename, mixed group)\",\"Change symlink group\"],ldap_8859_to_t61:[\"string ldap_8859_to_t61(string value)\",\"Translate 8859 characters to t61 characters\"],ldap_add:[\"bool ldap_add(resource link, string dn, array entry)\",\"Add entries to LDAP directory\"],ldap_bind:[\"bool ldap_bind(resource link [, string dn [, string password]])\",\"Bind to LDAP directory\"],ldap_compare:[\"bool ldap_compare(resource link, string dn, string attr, string value)\",\"Determine if an entry has a specific value for one of its attributes\"],ldap_connect:[\"resource ldap_connect([string host [, int port [, string wallet [, string wallet_passwd [, int authmode]]]]])\",\"Connect to an LDAP server\"],ldap_count_entries:[\"int ldap_count_entries(resource link, resource result)\",\"Count the number of entries in a search result\"],ldap_delete:[\"bool ldap_delete(resource link, string dn)\",\"Delete an entry from a directory\"],ldap_dn2ufn:[\"string ldap_dn2ufn(string dn)\",\"Convert DN to User Friendly Naming format\"],ldap_err2str:[\"string ldap_err2str(int errno)\",\"Convert error number to error string\"],ldap_errno:[\"int ldap_errno(resource link)\",\"Get the current ldap error number\"],ldap_error:[\"string ldap_error(resource link)\",\"Get the current ldap error string\"],ldap_explode_dn:[\"array ldap_explode_dn(string dn, int with_attrib)\",\"Splits DN into its component parts\"],ldap_first_attribute:[\"string ldap_first_attribute(resource link, resource result_entry)\",\"Return first attribute\"],ldap_first_entry:[\"resource ldap_first_entry(resource link, resource result)\",\"Return first result id\"],ldap_first_reference:[\"resource ldap_first_reference(resource link, resource result)\",\"Return first reference\"],ldap_free_result:[\"bool ldap_free_result(resource result)\",\"Free result memory\"],ldap_get_attributes:[\"array ldap_get_attributes(resource link, resource result_entry)\",\"Get attributes from a search result entry\"],ldap_get_dn:[\"string ldap_get_dn(resource link, resource result_entry)\",\"Get the DN of a result entry\"],ldap_get_entries:[\"array ldap_get_entries(resource link, resource result)\",\"Get all result entries\"],ldap_get_option:[\"bool ldap_get_option(resource link, int option, mixed retval)\",\"Get the current value of various session-wide parameters\"],ldap_get_values_len:[\"array ldap_get_values_len(resource link, resource result_entry, string attribute)\",\"Get all values with lengths from a result entry\"],ldap_list:[\"resource ldap_list(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Single-level search\"],ldap_mod_add:[\"bool ldap_mod_add(resource link, string dn, array entry)\",\"Add attribute values to current\"],ldap_mod_del:[\"bool ldap_mod_del(resource link, string dn, array entry)\",\"Delete attribute values\"],ldap_mod_replace:[\"bool ldap_mod_replace(resource link, string dn, array entry)\",\"Replace attribute values with new ones\"],ldap_next_attribute:[\"string ldap_next_attribute(resource link, resource result_entry)\",\"Get the next attribute in result\"],ldap_next_entry:[\"resource ldap_next_entry(resource link, resource result_entry)\",\"Get next result entry\"],ldap_next_reference:[\"resource ldap_next_reference(resource link, resource reference_entry)\",\"Get next reference\"],ldap_parse_reference:[\"bool ldap_parse_reference(resource link, resource reference_entry, array referrals)\",\"Extract information from reference entry\"],ldap_parse_result:[\"bool ldap_parse_result(resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)\",\"Extract information from result\"],ldap_read:[\"resource ldap_read(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Read an entry\"],ldap_rename:[\"bool ldap_rename(resource link, string dn, string newrdn, string newparent, bool deleteoldrdn);\",\"Modify the name of an entry\"],ldap_sasl_bind:[\"bool ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]])\",\"Bind to LDAP directory using SASL\"],ldap_search:[\"resource ldap_search(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Search LDAP tree under base_dn\"],ldap_set_option:[\"bool ldap_set_option(resource link, int option, mixed newval)\",\"Set the value of various session-wide parameters\"],ldap_set_rebind_proc:[\"bool ldap_set_rebind_proc(resource link, string callback)\",\"Set a callback function to do re-binds on referral chasing.\"],ldap_sort:[\"bool ldap_sort(resource link, resource result, string sortfilter)\",\"Sort LDAP result entries\"],ldap_start_tls:[\"bool ldap_start_tls(resource link)\",\"Start TLS\"],ldap_t61_to_8859:[\"string ldap_t61_to_8859(string value)\",\"Translate t61 characters to 8859 characters\"],ldap_unbind:[\"bool ldap_unbind(resource link)\",\"Unbind from LDAP directory\"],leak:[\"void leak(int num_bytes=3)\",\"Cause an intentional memory leak, for testing/debugging purposes\"],levenshtein:[\"int levenshtein(string str1, string str2[, int cost_ins, int cost_rep, int cost_del])\",\"Calculate Levenshtein distance between two strings\"],libxml_clear_errors:[\"void libxml_clear_errors()\",\"Clear last error from libxml\"],libxml_disable_entity_loader:[\"bool libxml_disable_entity_loader([boolean disable])\",\"Disable/Enable ability to load external entities\"],libxml_get_errors:[\"object libxml_get_errors()\",\"Retrieve array of errors\"],libxml_get_last_error:[\"object libxml_get_last_error()\",\"Retrieve last error from libxml\"],libxml_set_streams_context:[\"void libxml_set_streams_context(resource streams_context)\",\"Set the streams context for the next libxml document load or write\"],libxml_use_internal_errors:[\"bool libxml_use_internal_errors([boolean use_errors])\",\"Disable libxml errors and allow user to fetch error information as needed\"],link:[\"int link(string target, string link)\",\"Create a hard link\"],linkinfo:[\"int linkinfo(string filename)\",\"Returns the st_dev field of the UNIX C stat structure describing the link\"],litespeed_request_headers:[\"array litespeed_request_headers(void)\",\"Fetch all HTTP request headers\"],litespeed_response_headers:[\"array litespeed_response_headers(void)\",\"Fetch all HTTP response headers\"],locale_accept_from_http:[\"string locale_accept_from_http(string $http_accept)\",null],locale_canonicalize:[\"static string locale_canonicalize(Locale $loc, string $locale)\",\"* @param string $locale The locale string to canonicalize\"],locale_filter_matches:[\"boolean locale_filter_matches(string $langtag, string $locale[, bool $canonicalize])\",\"* Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm\"],locale_get_all_variants:[\"static array locale_get_all_variants($locale)\",\"* gets an array containing the list of variants, or null\"],locale_get_default:[\"static string locale_get_default( )\",\"Get default locale\"],locale_get_keywords:[\"static array locale_get_keywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)\"],locale_get_primary_language:[\"static string locale_get_primary_language($locale)\",\"* gets the primary language for the $locale\"],locale_get_region:[\"static string locale_get_region($locale)\",\"* gets the region for the $locale\"],locale_get_script:[\"static string locale_get_script($locale)\",\"* gets the script for the $locale\"],locale_lookup:[\"string locale_lookup(array $langtag, string $locale[, bool $canonicalize[, string $default = null]])\",\"* Searchs the items in $langtag for the best match to the language * range\"],locale_set_default:[\"static string locale_set_default( string $locale )\",\"Set default locale\"],localeconv:[\"array localeconv(void)\",\"Returns numeric formatting information based on the current locale\"],localtime:[\"array localtime([int timestamp [, bool associative_array]])\",\"Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array\"],log:[\"float log(float number, [float base])\",\"Returns the natural logarithm of the number, or the base log if base is specified\"],log10:[\"float log10(float number)\",\"Returns the base-10 logarithm of the number\"],log1p:[\"float log1p(float number)\",\"Returns log(1 + number), computed in a way that accurate even when the value of number is close to zero\"],long2ip:[\"string long2ip(int proper_address)\",\"Converts an (IPv4) Internet network address into a string in Internet standard dotted format\"],lstat:[\"array lstat(string filename)\",\"Give information about a file or symbolic link\"],ltrim:[\"string ltrim(string str [, string character_mask])\",\"Strips whitespace from the beginning of a string\"],mail:[\"int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"Send an email message\"],max:[\"mixed max(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the highest value in an array or a series of arguments\"],mb_check_encoding:[\"bool mb_check_encoding([string var[, string encoding]])\",\"Check if the string is valid for the specified encoding\"],mb_convert_case:[\"string mb_convert_case(string sourcestring, int mode [, string encoding])\",\"Returns a case-folded version of sourcestring\"],mb_convert_encoding:[\"string mb_convert_encoding(string str, string to-encoding [, mixed from-encoding])\",\"Returns converted string in desired encoding\"],mb_convert_kana:[\"string mb_convert_kana(string str [, string option] [, string encoding])\",\"Conversion between full-width character and half-width character (Japanese)\"],mb_convert_variables:[\"string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])\",\"Converts the string resource in variables to desired encoding\"],mb_decode_mimeheader:[\"string mb_decode_mimeheader(string string)\",'Decodes the MIME \"encoded-word\" in the string'],mb_decode_numericentity:[\"string mb_decode_numericentity(string string, array convmap [, string encoding])\",\"Converts HTML numeric entities to character code\"],mb_detect_encoding:[\"string mb_detect_encoding(string str [, mixed encoding_list [, bool strict]])\",\"Encodings of the given string is returned (as a string)\"],mb_detect_order:[\"bool|array mb_detect_order([mixed encoding-list])\",\"Sets the current detect_order or Return the current detect_order as a array\"],mb_encode_mimeheader:[\"string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])\",'Converts the string to MIME \"encoded-word\" in the format of =?charset?(B|Q)?encoded_string?='],mb_encode_numericentity:[\"string mb_encode_numericentity(string string, array convmap [, string encoding])\",\"Converts specified characters to HTML numeric entities\"],mb_encoding_aliases:[\"array mb_encoding_aliases(string encoding)\",\"Returns an array of the aliases of a given encoding name\"],mb_ereg:[\"int mb_ereg(string pattern, string string [, array registers])\",\"Regular expression match for multibyte string\"],mb_ereg_match:[\"bool mb_ereg_match(string pattern, string string [,string option])\",\"Regular expression match for multibyte string\"],mb_ereg_replace:[\"string mb_ereg_replace(string pattern, string replacement, string string [, string option])\",\"Replace regular expression for multibyte string\"],mb_ereg_search:[\"bool mb_ereg_search([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_getpos:[\"int mb_ereg_search_getpos(void)\",\"Get search start position\"],mb_ereg_search_getregs:[\"array mb_ereg_search_getregs(void)\",\"Get matched substring of the last time\"],mb_ereg_search_init:[\"bool mb_ereg_search_init(string string [, string pattern[, string option]])\",\"Initialize string and regular expression for search.\"],mb_ereg_search_pos:[\"array mb_ereg_search_pos([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_regs:[\"array mb_ereg_search_regs([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_setpos:[\"bool mb_ereg_search_setpos(int position)\",\"Set search start position\"],mb_eregi:[\"int mb_eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match for multibyte string\"],mb_eregi_replace:[\"string mb_eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression for multibyte string\"],mb_get_info:[\"mixed mb_get_info([string type])\",\"Returns the current settings of mbstring\"],mb_http_input:[\"mixed mb_http_input([string type])\",\"Returns the input encoding\"],mb_http_output:[\"string mb_http_output([string encoding])\",\"Sets the current output_encoding or returns the current output_encoding as a string\"],mb_internal_encoding:[\"string mb_internal_encoding([string encoding])\",\"Sets the current internal encoding or Returns the current internal encoding as a string\"],mb_language:[\"string mb_language([string language])\",\"Sets the current language or Returns the current language as a string\"],mb_list_encodings:[\"mixed mb_list_encodings()\",\"Returns an array of all supported entity encodings\"],mb_output_handler:[\"string mb_output_handler(string contents, int status)\",\"Returns string in output buffer converted to the http_output encoding\"],mb_parse_str:[\"bool mb_parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],mb_preferred_mime_name:[\"string mb_preferred_mime_name(string encoding)\",\"Return the preferred MIME name (charset) as a string\"],mb_regex_encoding:[\"string mb_regex_encoding([string encoding])\",\"Returns the current encoding for regex as a string.\"],mb_regex_set_options:[\"string mb_regex_set_options([string options])\",\"Set or get the default options for mbregex functions\"],mb_send_mail:[\"int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"*  Sends an email message with MIME scheme\"],mb_split:[\"array mb_split(string pattern, string string [, int limit])\",\"split multibyte string into array by regular expression\"],mb_strcut:[\"string mb_strcut(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_strimwidth:[\"string mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]])\",\"Trim the string in terminal width\"],mb_stripos:[\"int mb_stripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of first occurrence of a string within another, case insensitive\"],mb_stristr:[\"string mb_stristr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another, case insensitive\"],mb_strlen:[\"int mb_strlen(string str [, string encoding])\",\"Get character numbers of a string\"],mb_strpos:[\"int mb_strpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of first occurrence of a string within another\"],mb_strrchr:[\"string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another\"],mb_strrichr:[\"string mb_strrichr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another, case insensitive\"],mb_strripos:[\"int mb_strripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of last occurrence of a string within another, case insensitive\"],mb_strrpos:[\"int mb_strrpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of last occurrence of a string within another\"],mb_strstr:[\"string mb_strstr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another\"],mb_strtolower:[\"string mb_strtolower(string sourcestring [, string encoding])\",\"*  Returns a lowercased version of sourcestring\"],mb_strtoupper:[\"string mb_strtoupper(string sourcestring [, string encoding])\",\"*  Returns a uppercased version of sourcestring\"],mb_strwidth:[\"int mb_strwidth(string str [, string encoding])\",\"Gets terminal width of a string\"],mb_substitute_character:[\"mixed mb_substitute_character([mixed substchar])\",\"Sets the current substitute_character or returns the current substitute_character\"],mb_substr:[\"string mb_substr(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_substr_count:[\"int mb_substr_count(string haystack, string needle [, string encoding])\",\"Count the number of substring occurrences\"],mcrypt_cbc:[\"string mcrypt_cbc(int cipher, string key, string data, int mode, string iv)\",\"CBC crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_cfb:[\"string mcrypt_cfb(int cipher, string key, string data, int mode, string iv)\",\"CFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_create_iv:[\"string mcrypt_create_iv(int size, int source)\",\"Create an initialization vector (IV)\"],mcrypt_decrypt:[\"string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_ecb:[\"string mcrypt_ecb(int cipher, string key, string data, int mode, string iv)\",\"ECB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_enc_get_algorithms_name:[\"string mcrypt_enc_get_algorithms_name(resource td)\",\"Returns the name of the algorithm specified by the descriptor td\"],mcrypt_enc_get_block_size:[\"int mcrypt_enc_get_block_size(resource td)\",\"Returns the block size of the cipher specified by the descriptor td\"],mcrypt_enc_get_iv_size:[\"int mcrypt_enc_get_iv_size(resource td)\",\"Returns the size of the IV in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_key_size:[\"int mcrypt_enc_get_key_size(resource td)\",\"Returns the maximum supported key size in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_modes_name:[\"string mcrypt_enc_get_modes_name(resource td)\",\"Returns the name of the mode specified by the descriptor td\"],mcrypt_enc_get_supported_key_sizes:[\"array mcrypt_enc_get_supported_key_sizes(resource td)\",\"This function decrypts the crypttext\"],mcrypt_enc_is_block_algorithm:[\"bool mcrypt_enc_is_block_algorithm(resource td)\",\"Returns TRUE if the alrogithm is a block algorithms\"],mcrypt_enc_is_block_algorithm_mode:[\"bool mcrypt_enc_is_block_algorithm_mode(resource td)\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_enc_is_block_mode:[\"bool mcrypt_enc_is_block_mode(resource td)\",\"Returns TRUE if the mode outputs blocks\"],mcrypt_enc_self_test:[\"int mcrypt_enc_self_test(resource td)\",\"This function runs the self test on the algorithm specified by the descriptor td\"],mcrypt_encrypt:[\"string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_generic:[\"string mcrypt_generic(resource td, string data)\",\"This function encrypts the plaintext\"],mcrypt_generic_deinit:[\"bool mcrypt_generic_deinit(resource td)\",\"This function terminates encrypt specified by the descriptor td\"],mcrypt_generic_init:[\"int mcrypt_generic_init(resource td, string key, string iv)\",\"This function initializes all buffers for the specific module\"],mcrypt_get_block_size:[\"int mcrypt_get_block_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_get_cipher_name:[\"string mcrypt_get_cipher_name(string cipher)\",\"Get the key size of cipher\"],mcrypt_get_iv_size:[\"int mcrypt_get_iv_size(string cipher, string module)\",\"Get the IV size of cipher (Usually the same as the blocksize)\"],mcrypt_get_key_size:[\"int mcrypt_get_key_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_list_algorithms:[\"array mcrypt_list_algorithms([string lib_dir])\",'List all algorithms in \"module_dir\"'],mcrypt_list_modes:[\"array mcrypt_list_modes([string lib_dir])\",'List all modes \"module_dir\"'],mcrypt_module_close:[\"bool mcrypt_module_close(resource td)\",\"Free the descriptor td\"],mcrypt_module_get_algo_block_size:[\"int mcrypt_module_get_algo_block_size(string algorithm [, string lib_dir])\",\"Returns the block size of the algorithm\"],mcrypt_module_get_algo_key_size:[\"int mcrypt_module_get_algo_key_size(string algorithm [, string lib_dir])\",\"Returns the maximum supported key size of the algorithm\"],mcrypt_module_get_supported_key_sizes:[\"array mcrypt_module_get_supported_key_sizes(string algorithm [, string lib_dir])\",\"This function decrypts the crypttext\"],mcrypt_module_is_block_algorithm:[\"bool mcrypt_module_is_block_algorithm(string algorithm [, string lib_dir])\",\"Returns TRUE if the algorithm is a block algorithm\"],mcrypt_module_is_block_algorithm_mode:[\"bool mcrypt_module_is_block_algorithm_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_module_is_block_mode:[\"bool mcrypt_module_is_block_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode outputs blocks of bytes\"],mcrypt_module_open:[\"resource mcrypt_module_open(string cipher, string cipher_directory, string mode, string mode_directory)\",\"Opens the module of the algorithm and the mode to be used\"],mcrypt_module_self_test:[\"bool mcrypt_module_self_test(string algorithm [, string lib_dir])\",'Does a self test of the module \"module\"'],mcrypt_ofb:[\"string mcrypt_ofb(int cipher, string key, string data, int mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],md5:[\"string md5(string str, [ bool raw_output])\",\"Calculate the md5 hash of a string\"],md5_file:[\"string md5_file(string filename [, bool raw_output])\",\"Calculate the md5 hash of given filename\"],mdecrypt_generic:[\"string mdecrypt_generic(resource td, string data)\",\"This function decrypts the plaintext\"],memory_get_peak_usage:[\"int memory_get_peak_usage([real_usage])\",\"Returns the peak allocated by PHP memory\"],memory_get_usage:[\"int memory_get_usage([real_usage])\",\"Returns the allocated by PHP memory\"],metaphone:[\"string metaphone(string text[, int phones])\",\"Break english phrases down into their phonemes\"],method_exists:[\"bool method_exists(object object, string method)\",\"Checks if the class method exists\"],mhash:[\"string mhash(int hash, string data [, string key])\",\"Hash data with hash\"],mhash_count:[\"int mhash_count(void)\",\"Gets the number of available hashes\"],mhash_get_block_size:[\"int mhash_get_block_size(int hash)\",\"Gets the block size of hash\"],mhash_get_hash_name:[\"string mhash_get_hash_name(int hash)\",\"Gets the name of hash\"],mhash_keygen_s2k:[\"string mhash_keygen_s2k(int hash, string input_password, string salt, int bytes)\",\"Generates a key using hash functions\"],microtime:[\"mixed microtime([bool get_as_float])\",\"Returns either a string or a float containing the current time in seconds and microseconds\"],mime_content_type:[\"string mime_content_type(string filename|resource stream)\",\"Return content-type for file\"],min:[\"mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the lowest value in an array or a series of arguments\"],mkdir:[\"bool mkdir(string pathname [, int mode [, bool recursive [, resource context]]])\",\"Create a directory\"],mktime:[\"int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a date\"],money_format:[\"string money_format(string format , float value)\",\"Convert monetary value(s) to string\"],move_uploaded_file:[\"bool move_uploaded_file(string path, string new_path)\",\"Move a file if and only if it was created by an upload\"],msg_get_queue:[\"resource msg_get_queue(int key [, int perms])\",\"Attach to a message queue\"],msg_queue_exists:[\"bool msg_queue_exists(int key)\",\"Check whether a message queue exists\"],msg_receive:[\"mixed msg_receive(resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed message [, bool unserialize=true [, int flags=0 [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_remove_queue:[\"bool msg_remove_queue(resource queue)\",\"Destroy the queue\"],msg_send:[\"bool msg_send(resource queue, int msgtype, mixed message [, bool serialize=true [, bool blocking=true [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_set_queue:[\"bool msg_set_queue(resource queue, array data)\",\"Set information for a message queue\"],msg_stat_queue:[\"array msg_stat_queue(resource queue)\",\"Returns information about a message queue\"],msgfmt_create:[\"MessageFormatter msgfmt_create( string $locale, string $pattern )\",\"* Create formatter.\"],msgfmt_format:[\"mixed msgfmt_format( MessageFormatter $nf, array $args )\",\"* Format a message.\"],msgfmt_format_message:[\"mixed msgfmt_format_message( string $locale, string $pattern, array $args )\",\"* Format a message.\"],msgfmt_get_error_code:[\"int msgfmt_get_error_code( MessageFormatter $nf )\",\"* Get formatter's last error code.\"],msgfmt_get_error_message:[\"string msgfmt_get_error_message( MessageFormatter $coll )\",\"* Get text description for formatter's last error code.\"],msgfmt_get_locale:[\"string msgfmt_get_locale(MessageFormatter $mf)\",\"* Get formatter locale.\"],msgfmt_get_pattern:[\"string msgfmt_get_pattern( MessageFormatter $mf )\",\"* Get formatter pattern.\"],msgfmt_parse:[\"array msgfmt_parse( MessageFormatter $nf, string $source )\",\"* Parse a message.\"],msgfmt_set_pattern:[\"bool msgfmt_set_pattern( MessageFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],mssql_bind:[\"bool mssql_bind(resource stmt, string param_name, mixed var, int type [, bool is_output [, bool is_null [, int maxlen]]])\",\"Adds a parameter to a stored procedure or a remote stored procedure\"],mssql_close:[\"bool mssql_close([resource conn_id])\",\"Closes a connection to a MS-SQL server\"],mssql_connect:[\"int mssql_connect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a connection to a MS-SQL server\"],mssql_data_seek:[\"bool mssql_data_seek(resource result_id, int offset)\",\"Moves the internal row pointer of the MS-SQL result associated with the specified result identifier to pointer to the specified row number\"],mssql_execute:[\"mixed mssql_execute(resource stmt [, bool skip_results = false])\",\"Executes a stored procedure on a MS-SQL server database\"],mssql_fetch_array:[\"array mssql_fetch_array(resource result_id [, int result_type])\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_assoc:[\"array mssql_fetch_assoc(resource result_id)\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_batch:[\"int mssql_fetch_batch(resource result_index)\",\"Returns the next batch of records\"],mssql_fetch_field:[\"object mssql_fetch_field(resource result_id [, int offset])\",\"Gets information about certain fields in a query result\"],mssql_fetch_object:[\"object mssql_fetch_object(resource result_id)\",\"Returns a pseudo-object of the current row in the result set specified by result_id\"],mssql_fetch_row:[\"array mssql_fetch_row(resource result_id)\",\"Returns an array of the current row in the result set specified by result_id\"],mssql_field_length:[\"int mssql_field_length(resource result_id [, int offset])\",\"Get the length of a MS-SQL field\"],mssql_field_name:[\"string mssql_field_name(resource result_id [, int offset])\",\"Returns the name of the field given by offset in the result set given by result_id\"],mssql_field_seek:[\"bool mssql_field_seek(resource result_id, int offset)\",\"Seeks to the specified field offset\"],mssql_field_type:[\"string mssql_field_type(resource result_id [, int offset])\",\"Returns the type of a field\"],mssql_free_result:[\"bool mssql_free_result(resource result_index)\",\"Free a MS-SQL result index\"],mssql_free_statement:[\"bool mssql_free_statement(resource result_index)\",\"Free a MS-SQL statement index\"],mssql_get_last_message:[\"string mssql_get_last_message(void)\",\"Gets the last message from the MS-SQL server\"],mssql_guid_string:[\"string mssql_guid_string(string binary [,bool short_format])\",\"Converts a 16 byte binary GUID to a string\"],mssql_init:[\"int mssql_init(string sp_name [, resource conn_id])\",\"Initializes a stored procedure or a remote stored procedure\"],mssql_min_error_severity:[\"void mssql_min_error_severity(int severity)\",\"Sets the lower error severity\"],mssql_min_message_severity:[\"void mssql_min_message_severity(int severity)\",\"Sets the lower message severity\"],mssql_next_result:[\"bool mssql_next_result(resource result_id)\",\"Move the internal result pointer to the next result\"],mssql_num_fields:[\"int mssql_num_fields(resource mssql_result_index)\",\"Returns the number of fields fetched in from the result id specified\"],mssql_num_rows:[\"int mssql_num_rows(resource mssql_result_index)\",\"Returns the number of rows fetched in from the result id specified\"],mssql_pconnect:[\"int mssql_pconnect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a persistent connection to a MS-SQL server\"],mssql_query:[\"resource mssql_query(string query [, resource conn_id [, int batch_size]])\",\"Perform an SQL query on a MS-SQL server database\"],mssql_result:[\"string mssql_result(resource result_id, int row, mixed field)\",\"Returns the contents of one cell from a MS-SQL result set\"],mssql_rows_affected:[\"int mssql_rows_affected(resource conn_id)\",\"Returns the number of records affected by the query\"],mssql_select_db:[\"bool mssql_select_db(string database_name [, resource conn_id])\",\"Select a MS-SQL database\"],mt_getrandmax:[\"int mt_getrandmax(void)\",\"Returns the maximum value a random number from Mersenne Twister can have\"],mt_rand:[\"int mt_rand([int min, int max])\",\"Returns a random number from Mersenne Twister\"],mt_srand:[\"void mt_srand([int seed])\",\"Seeds Mersenne Twister random number generator\"],mysql_affected_rows:[\"int mysql_affected_rows([int link_identifier])\",\"Gets number of affected rows in previous MySQL operation\"],mysql_client_encoding:[\"string mysql_client_encoding([int link_identifier])\",\"Returns the default character set for the current connection\"],mysql_close:[\"bool mysql_close([int link_identifier])\",\"Close a MySQL connection\"],mysql_connect:[\"resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])\",\"Opens a connection to a MySQL Server\"],mysql_create_db:[\"bool mysql_create_db(string database_name [, int link_identifier])\",\"Create a MySQL database\"],mysql_data_seek:[\"bool mysql_data_seek(resource result, int row_number)\",\"Move internal result pointer\"],mysql_db_query:[\"resource mysql_db_query(string database_name, string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_drop_db:[\"bool mysql_drop_db(string database_name [, int link_identifier])\",\"Drops (delete) a MySQL database\"],mysql_errno:[\"int mysql_errno([int link_identifier])\",\"Returns the number of the error message from previous MySQL operation\"],mysql_error:[\"string mysql_error([int link_identifier])\",\"Returns the text of the error message from previous MySQL operation\"],mysql_escape_string:[\"string mysql_escape_string(string to_be_escaped)\",\"Escape string for mysql query\"],mysql_fetch_array:[\"array mysql_fetch_array(resource result [, int result_type])\",\"Fetch a result row as an array (associative, numeric or both)\"],mysql_fetch_assoc:[\"array mysql_fetch_assoc(resource result)\",\"Fetch a result row as an associative array\"],mysql_fetch_field:[\"object mysql_fetch_field(resource result [, int field_offset])\",\"Gets column information from a result and return as an object\"],mysql_fetch_lengths:[\"array mysql_fetch_lengths(resource result)\",\"Gets max data size of each column in a result\"],mysql_fetch_object:[\"object mysql_fetch_object(resource result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysql_fetch_row:[\"array mysql_fetch_row(resource result)\",\"Gets a result row as an enumerated array\"],mysql_field_flags:[\"string mysql_field_flags(resource result, int field_offset)\",\"Gets the flags associated with the specified field in a result\"],mysql_field_len:[\"int mysql_field_len(resource result, int field_offset)\",\"Returns the length of the specified field\"],mysql_field_name:[\"string mysql_field_name(resource result, int field_index)\",\"Gets the name of the specified field in a result\"],mysql_field_seek:[\"bool mysql_field_seek(resource result, int field_offset)\",\"Sets result pointer to a specific field offset\"],mysql_field_table:[\"string mysql_field_table(resource result, int field_offset)\",\"Gets name of the table the specified field is in\"],mysql_field_type:[\"string mysql_field_type(resource result, int field_offset)\",\"Gets the type of the specified field in a result\"],mysql_free_result:[\"bool mysql_free_result(resource result)\",\"Free result memory\"],mysql_get_client_info:[\"string mysql_get_client_info(void)\",\"Returns a string that represents the client library version\"],mysql_get_host_info:[\"string mysql_get_host_info([int link_identifier])\",\"Returns a string describing the type of connection in use, including the server host name\"],mysql_get_proto_info:[\"int mysql_get_proto_info([int link_identifier])\",\"Returns the protocol version used by current connection\"],mysql_get_server_info:[\"string mysql_get_server_info([int link_identifier])\",\"Returns a string that represents the server version number\"],mysql_info:[\"string mysql_info([int link_identifier])\",\"Returns a string containing information about the most recent query\"],mysql_insert_id:[\"int mysql_insert_id([int link_identifier])\",\"Gets the ID generated from the previous INSERT operation\"],mysql_list_dbs:[\"resource mysql_list_dbs([int link_identifier])\",\"List databases available on a MySQL server\"],mysql_list_fields:[\"resource mysql_list_fields(string database_name, string table_name [, int link_identifier])\",\"List MySQL result fields\"],mysql_list_processes:[\"resource mysql_list_processes([int link_identifier])\",\"Returns a result set describing the current server threads\"],mysql_list_tables:[\"resource mysql_list_tables(string database_name [, int link_identifier])\",\"List tables in a MySQL database\"],mysql_num_fields:[\"int mysql_num_fields(resource result)\",\"Gets number of fields in a result\"],mysql_num_rows:[\"int mysql_num_rows(resource result)\",\"Gets number of rows in a result\"],mysql_pconnect:[\"resource mysql_pconnect([string hostname[:port][:/path/to/socket] [, string username [, string password [, int flags]]]])\",\"Opens a persistent connection to a MySQL Server\"],mysql_ping:[\"bool mysql_ping([int link_identifier])\",\"Ping a server connection. If no connection then reconnect.\"],mysql_query:[\"resource mysql_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_real_escape_string:[\"string mysql_real_escape_string(string to_be_escaped [, int link_identifier])\",\"Escape special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysql_result:[\"mixed mysql_result(resource result, int row [, mixed field])\",\"Gets result data\"],mysql_select_db:[\"bool mysql_select_db(string database_name [, int link_identifier])\",\"Selects a MySQL database\"],mysql_set_charset:[\"bool mysql_set_charset(string csname [, int link_identifier])\",\"sets client character set\"],mysql_stat:[\"string mysql_stat([int link_identifier])\",\"Returns a string containing status information\"],mysql_thread_id:[\"int mysql_thread_id([int link_identifier])\",\"Returns the thread id of current connection\"],mysql_unbuffered_query:[\"resource mysql_unbuffered_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL, without fetching and buffering the result rows\"],mysqli_affected_rows:[\"mixed mysqli_affected_rows(object link)\",\"Get number of affected rows in previous MySQL operation\"],mysqli_autocommit:[\"bool mysqli_autocommit(object link, bool mode)\",\"Turn auto commit on or of\"],mysqli_cache_stats:[\"array mysqli_cache_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_change_user:[\"bool mysqli_change_user(object link, string user, string password, string database)\",\"Change logged-in user of the active connection\"],mysqli_character_set_name:[\"string mysqli_character_set_name(object link)\",\"Returns the name of the character set used for this connection\"],mysqli_close:[\"bool mysqli_close(object link)\",\"Close connection\"],mysqli_commit:[\"bool mysqli_commit(object link)\",\"Commit outstanding actions and close transaction\"],mysqli_connect:[\"object mysqli_connect([string hostname [,string username [,string passwd [,string dbname [,int port [,string socket]]]]]])\",\"Open a connection to a mysql server\"],mysqli_connect_errno:[\"int mysqli_connect_errno(void)\",\"Returns the numerical value of the error message from last connect command\"],mysqli_connect_error:[\"string mysqli_connect_error(void)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_data_seek:[\"bool mysqli_data_seek(object result, int offset)\",\"Move internal result pointer\"],mysqli_debug:[\"void mysqli_debug(string debug)\",\"\"],mysqli_dump_debug_info:[\"bool mysqli_dump_debug_info(object link)\",\"\"],mysqli_embedded_server_end:[\"void mysqli_embedded_server_end(void)\",\"\"],mysqli_embedded_server_start:[\"bool mysqli_embedded_server_start(bool start, array arguments, array groups)\",\"initialize and start embedded server\"],mysqli_errno:[\"int mysqli_errno(object link)\",\"Returns the numerical value of the error message from previous MySQL operation\"],mysqli_error:[\"string mysqli_error(object link)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_fetch_all:[\"mixed mysqli_fetch_all (object result [,int resulttype])\",\"Fetches all result rows as an associative array, a numeric array, or both\"],mysqli_fetch_array:[\"mixed mysqli_fetch_array (object result [,int resulttype])\",\"Fetch a result row as an associative array, a numeric array, or both\"],mysqli_fetch_assoc:[\"mixed mysqli_fetch_assoc (object result)\",\"Fetch a result row as an associative array\"],mysqli_fetch_field:[\"mixed mysqli_fetch_field (object result)\",\"Get column information from a result and return as an object\"],mysqli_fetch_field_direct:[\"mixed mysqli_fetch_field_direct (object result, int offset)\",\"Fetch meta-data for a single field\"],mysqli_fetch_fields:[\"mixed mysqli_fetch_fields (object result)\",\"Return array of objects containing field meta-data\"],mysqli_fetch_lengths:[\"mixed mysqli_fetch_lengths (object result)\",\"Get the length of each output in a result\"],mysqli_fetch_object:[\"mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysqli_fetch_row:[\"array mysqli_fetch_row (object result)\",\"Get a result row as an enumerated array\"],mysqli_field_count:[\"int mysqli_field_count(object link)\",\"Fetch the number of fields returned by the last query for the given link\"],mysqli_field_seek:[\"int mysqli_field_seek(object result, int fieldnr)\",\"Set result pointer to a specified field offset\"],mysqli_field_tell:[\"int mysqli_field_tell(object result)\",\"Get current field offset of result pointer\"],mysqli_free_result:[\"void mysqli_free_result(object result)\",\"Free query result memory for the given result handle\"],mysqli_get_charset:[\"object mysqli_get_charset(object link)\",\"returns a character set object\"],mysqli_get_client_info:[\"string mysqli_get_client_info(void)\",\"Get MySQL client info\"],mysqli_get_client_stats:[\"array mysqli_get_client_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_client_version:[\"int mysqli_get_client_version(void)\",\"Get MySQL client info\"],mysqli_get_connection_stats:[\"array mysqli_get_connection_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_host_info:[\"string mysqli_get_host_info (object link)\",\"Get MySQL host info\"],mysqli_get_proto_info:[\"int mysqli_get_proto_info(object link)\",\"Get MySQL protocol information\"],mysqli_get_server_info:[\"string mysqli_get_server_info(object link)\",\"Get MySQL server info\"],mysqli_get_server_version:[\"int mysqli_get_server_version(object link)\",\"Return the MySQL version for the server referenced by the given link\"],mysqli_get_warnings:[\"object mysqli_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_get_warnings) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &mysql_link, mysqli_link_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   if (mysql_warning_count(mysql->mysql)) {   w = php_get_warnings(mysql->mysql TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);  } /* }}}'],mysqli_info:[\"string mysqli_info(object link)\",\"Get information about the most recent query\"],mysqli_init:[\"resource mysqli_init(void)\",\"Initialize mysqli and return a resource for use with mysql_real_connect\"],mysqli_insert_id:[\"mixed mysqli_insert_id(object link)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_kill:[\"bool mysqli_kill(object link, int processid)\",\"Kill a mysql process on the server\"],mysqli_link_construct:[\"object mysqli_link_construct()\",\"\"],mysqli_more_results:[\"bool mysqli_more_results(object link)\",\"check if there any more query results from a multi query\"],mysqli_multi_query:[\"bool mysqli_multi_query(object link, string query)\",\"allows to execute multiple queries\"],mysqli_next_result:[\"bool mysqli_next_result(object link)\",\"read next result from multi_query\"],mysqli_num_fields:[\"int mysqli_num_fields(object result)\",\"Get number of fields in result\"],mysqli_num_rows:[\"mixed mysqli_num_rows(object result)\",\"Get number of rows in result\"],mysqli_options:[\"bool mysqli_options(object link, int flags, mixed values)\",\"Set options\"],mysqli_ping:[\"bool mysqli_ping(object link)\",\"Ping a server connection or reconnect if there is no connection\"],mysqli_poll:[\"int mysqli_poll(array read, array write, array error, long sec [, long usec])\",\"Poll connections\"],mysqli_prepare:[\"mixed mysqli_prepare(object link, string query)\",\"Prepare a SQL statement for execution\"],mysqli_query:[\"mixed mysqli_query(object link, string query [,int resultmode]) */\",'PHP_FUNCTION(mysqli_query) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQL_RES    *result;  char    *query = NULL;  unsigned int   query_len;  unsigned long   resultmode = MYSQLI_STORE_RESULT;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Os|l\", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {   return;  }   if (!query_len) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Empty query\");   RETURN_FALSE;  }  if ((resultmode & ~MYSQLI_ASYNC) != MYSQLI_USE_RESULT && (resultmode & ~MYSQLI_ASYNC) != MYSQLI_STORE_RESULT) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid value for resultmode\");   RETURN_FALSE;  }   MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   MYSQLI_DISABLE_MQ;   #ifdef MYSQLI_USE_MYSQLND  if (resultmode & MYSQLI_ASYNC) {   if (mysqli_async_query(mysql->mysql, query, query_len)) {    MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);    RETURN_FALSE;   }   mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC;   RETURN_TRUE;  } #endif   if (mysql_real_query(mysql->mysql, query, query_len)) {   MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);   RETURN_FALSE;  }   if (!mysql_field_count(mysql->mysql)) {   /* no result set - not a SELECT'],mysqli_real_connect:[\"bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]])\",\"Open a connection to a mysql server\"],mysqli_real_escape_string:[\"string mysqli_real_escape_string(object link, string escapestr)\",\"Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysqli_real_query:[\"bool mysqli_real_query(object link, string query)\",\"Binary-safe version of mysql_query()\"],mysqli_reap_async_query:[\"int mysqli_reap_async_query(object link)\",\"Poll connections\"],mysqli_refresh:[\"bool mysqli_refresh(object link, long options)\",\"Flush tables or caches, or reset replication server information\"],mysqli_report:[\"bool mysqli_report(int flags)\",\"sets report level\"],mysqli_rollback:[\"bool mysqli_rollback(object link)\",\"Undo actions from current transaction\"],mysqli_select_db:[\"bool mysqli_select_db(object link, string dbname)\",\"Select a MySQL database\"],mysqli_set_charset:[\"bool mysqli_set_charset(object link, string csname)\",\"sets client character set\"],mysqli_set_local_infile_default:[\"void mysqli_set_local_infile_default(object link)\",\"unsets user defined handler for load local infile command\"],mysqli_set_local_infile_handler:[\"bool mysqli_set_local_infile_handler(object link, callback read_func)\",\"Set callback functions for LOAD DATA LOCAL INFILE\"],mysqli_sqlstate:[\"string mysqli_sqlstate(object link)\",\"Returns the SQLSTATE error from previous MySQL operation\"],mysqli_ssl_set:[\"bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])\",\"\"],mysqli_stat:[\"mixed mysqli_stat(object link)\",\"Get current system status\"],mysqli_stmt_affected_rows:[\"mixed mysqli_stmt_affected_rows(object stmt)\",\"Return the number of rows affected in the last query for the given link\"],mysqli_stmt_attr_get:[\"int mysqli_stmt_attr_get(object stmt, long attr)\",\"\"],mysqli_stmt_attr_set:[\"int mysqli_stmt_attr_set(object stmt, long attr, long mode)\",\"\"],mysqli_stmt_bind_param:[\"bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....])\",\"Bind variables to a prepared statement as parameters\"],mysqli_stmt_bind_result:[\"bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...])\",\"Bind variables to a prepared statement for result storage\"],mysqli_stmt_close:[\"bool mysqli_stmt_close(object stmt)\",\"Close statement\"],mysqli_stmt_data_seek:[\"void mysqli_stmt_data_seek(object stmt, int offset)\",\"Move internal result pointer\"],mysqli_stmt_errno:[\"int mysqli_stmt_errno(object stmt)\",\"\"],mysqli_stmt_error:[\"string mysqli_stmt_error(object stmt)\",\"\"],mysqli_stmt_execute:[\"bool mysqli_stmt_execute(object stmt)\",\"Execute a prepared statement\"],mysqli_stmt_fetch:[\"mixed mysqli_stmt_fetch(object stmt)\",\"Fetch results from a prepared statement into the bound variables\"],mysqli_stmt_field_count:[\"int mysqli_stmt_field_count(object stmt) {\",\"Return the number of result columns for the given statement\"],mysqli_stmt_free_result:[\"void mysqli_stmt_free_result(object stmt)\",\"Free stored result memory for the given statement handle\"],mysqli_stmt_get_result:[\"object mysqli_stmt_get_result(object link)\",\"Buffer result set on client\"],mysqli_stmt_get_warnings:[\"object mysqli_stmt_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_stmt_get_warnings) {  MY_STMT    *stmt;  zval    *stmt_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, \"mysqli_stmt\", MYSQLI_STATUS_VALID);   if (mysqli_stmt_warning_count(stmt->stmt)) {   w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}'],mysqli_stmt_init:[\"mixed mysqli_stmt_init(object link)\",\"Initialize statement object\"],mysqli_stmt_insert_id:[\"mixed mysqli_stmt_insert_id(object stmt)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_stmt_next_result:[\"bool mysqli_stmt_next_result(object link)\",\"read next result from multi_query\"],mysqli_stmt_num_rows:[\"mixed mysqli_stmt_num_rows(object stmt)\",\"Return the number of rows in statements result set\"],mysqli_stmt_param_count:[\"int mysqli_stmt_param_count(object stmt)\",\"Return the number of parameter for the given statement\"],mysqli_stmt_prepare:[\"bool mysqli_stmt_prepare(object stmt, string query)\",\"prepare server side statement with query\"],mysqli_stmt_reset:[\"bool mysqli_stmt_reset(object stmt)\",\"reset a prepared statement\"],mysqli_stmt_result_metadata:[\"mixed mysqli_stmt_result_metadata(object stmt)\",\"return result set from statement\"],mysqli_stmt_send_long_data:[\"bool mysqli_stmt_send_long_data(object stmt, int param_nr, string data)\",\"\"],mysqli_stmt_sqlstate:[\"string mysqli_stmt_sqlstate(object stmt)\",\"\"],mysqli_stmt_store_result:[\"bool mysqli_stmt_store_result(stmt)\",\"\"],mysqli_store_result:[\"object mysqli_store_result(object link)\",\"Buffer result set on client\"],mysqli_thread_id:[\"int mysqli_thread_id(object link)\",\"Return the current thread ID\"],mysqli_thread_safe:[\"bool mysqli_thread_safe(void)\",\"Return whether thread safety is given or not\"],mysqli_use_result:[\"mixed mysqli_use_result(object link)\",\"Directly retrieve query results - do not buffer results on client side\"],mysqli_warning_count:[\"int mysqli_warning_count (object link)\",\"Return number of warnings from the last query for the given link\"],natcasesort:[\"void natcasesort(array &array_arg)\",\"Sort an array using case-insensitive natural sort\"],natsort:[\"void natsort(array &array_arg)\",\"Sort an array using natural sort\"],next:[\"mixed next(array array_arg)\",\"Move array argument's internal pointer to the next element and return it\"],ngettext:[\"string ngettext(string MSGID1, string MSGID2, int N)\",\"Plural version of gettext()\"],nl2br:[\"string nl2br(string str [, bool is_xhtml])\",\"Converts newlines to HTML line breaks\"],nl_langinfo:[\"string nl_langinfo(int item)\",\"Query language and locale information\"],normalizer_is_normalize:[\"bool normalizer_is_normalize( string $input [, string $form = FORM_C] )\",\"* Test if a string is in a given normalization form.\"],normalizer_normalize:[\"string normalizer_normalize( string $input [, string $form = FORM_C] )\",\"* Normalize a string.\"],nsapi_request_headers:[\"array nsapi_request_headers(void)\",\"Get all headers from the request\"],nsapi_response_headers:[\"array nsapi_response_headers(void)\",\"Get all headers from the response\"],nsapi_virtual:[\"bool nsapi_virtual(string uri)\",\"Perform an NSAPI sub-request\"],number_format:[\"string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]])\",\"Formats a number with grouped thousands\"],numfmt_create:[\"NumberFormatter numfmt_create( string $locale, int style[, string $pattern ] )\",\"* Create number formatter.\"],numfmt_format:[\"mixed numfmt_format( NumberFormatter $nf, mixed $num[, int type] )\",\"* Format a number.\"],numfmt_format_currency:[\"mixed numfmt_format_currency( NumberFormatter $nf, double $num, string $currency )\",\"* Format a number as currency.\"],numfmt_get_attribute:[\"mixed numfmt_get_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_get_error_code:[\"int numfmt_get_error_code( NumberFormatter $nf )\",\"* Get formatter's last error code.\"],numfmt_get_error_message:[\"string numfmt_get_error_message( NumberFormatter $nf )\",\"* Get text description for formatter's last error code.\"],numfmt_get_locale:[\"string numfmt_get_locale( NumberFormatter $nf[, int type] )\",\"* Get formatter locale.\"],numfmt_get_pattern:[\"string numfmt_get_pattern( NumberFormatter $nf )\",\"* Get formatter pattern.\"],numfmt_get_symbol:[\"string numfmt_get_symbol( NumberFormatter $nf, int $attr )\",\"* Get formatter symbol value.\"],numfmt_get_text_attribute:[\"string numfmt_get_text_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_parse:[\"mixed numfmt_parse( NumberFormatter $nf, string $str[, int $type, int &$position ])\",\"* Parse a number.\"],numfmt_parse_currency:[\"double numfmt_parse_currency( NumberFormatter $nf, string $str, string $&currency[, int $&position] )\",\"* Parse a number as currency.\"],numfmt_parse_message:[\"array numfmt_parse_message( string $locale, string $pattern, string $source )\",\"* Parse a message.\"],numfmt_set_attribute:[\"bool numfmt_set_attribute( NumberFormatter $nf, int $attr, mixed $value )\",\"* Get formatter attribute value.\"],numfmt_set_pattern:[\"bool numfmt_set_pattern( NumberFormatter $nf, string $pattern )\",\"* Set formatter pattern.\"],numfmt_set_symbol:[\"bool numfmt_set_symbol( NumberFormatter $nf, int $attr, string $symbol )\",\"* Set formatter symbol value.\"],numfmt_set_text_attribute:[\"bool numfmt_set_text_attribute( NumberFormatter $nf, int $attr, string $value )\",\"* Get formatter attribute value.\"],ob_clean:[\"bool ob_clean(void)\",\"Clean (delete) the current output buffer\"],ob_end_clean:[\"bool ob_end_clean(void)\",\"Clean the output buffer, and delete current output buffer\"],ob_end_flush:[\"bool ob_end_flush(void)\",\"Flush (send) the output buffer, and delete current output buffer\"],ob_flush:[\"bool ob_flush(void)\",\"Flush (send) contents of the output buffer. The last buffer content is sent to next buffer\"],ob_get_clean:[\"bool ob_get_clean(void)\",\"Get current buffer contents and delete current output buffer\"],ob_get_contents:[\"string ob_get_contents(void)\",\"Return the contents of the output buffer\"],ob_get_flush:[\"bool ob_get_flush(void)\",\"Get current buffer contents, flush (send) the output buffer, and delete current output buffer\"],ob_get_length:[\"int ob_get_length(void)\",\"Return the length of the output buffer\"],ob_get_level:[\"int ob_get_level(void)\",\"Return the nesting level of the output buffer\"],ob_get_status:[\"false|array ob_get_status([bool full_status])\",\"Return the status of the active or all output buffers\"],ob_gzhandler:[\"string ob_gzhandler(string str, int mode)\",\"Encode str based on accept-encoding setting - designed to be called from ob_start()\"],ob_iconv_handler:[\"string ob_iconv_handler(string contents, int status)\",\"Returns str in output buffer converted to the iconv.output_encoding character set\"],ob_implicit_flush:[\"void ob_implicit_flush([int flag])\",\"Turn implicit flush on/off and is equivalent to calling flush() after every output call\"],ob_list_handlers:[\"false|array ob_list_handlers()\",\"*  List all output_buffers in an array\"],ob_start:[\"bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])\",\"Turn on Output Buffering (specifying an optional output handler).\"],oci_bind_array_by_name:[\"bool oci_bind_array_by_name(resource stmt, string name, array &var, int max_table_length [, int max_item_length [, int type ]])\",\"Bind a PHP array to an Oracle PL/SQL type by name\"],oci_bind_by_name:[\"bool oci_bind_by_name(resource stmt, string name, mixed &var, [, int maxlength [, int type]])\",\"Bind a PHP variable to an Oracle placeholder by name\"],oci_cancel:[\"bool oci_cancel(resource stmt)\",\"Cancel reading from a cursor\"],oci_close:[\"bool oci_close(resource connection)\",\"Disconnect from database\"],oci_collection_append:[\"bool oci_collection_append(string value)\",\"Append an object to the collection\"],oci_collection_assign:[\"bool oci_collection_assign(object from)\",\"Assign a collection from another existing collection\"],oci_collection_element_assign:[\"bool oci_collection_element_assign(int index, string val)\",\"Assign element val to collection at index ndx\"],oci_collection_element_get:[\"string oci_collection_element_get(int ndx)\",\"Retrieve the value at collection index ndx\"],oci_collection_max:[\"int oci_collection_max()\",\"Return the max value of a collection. For a varray this is the maximum length of the array\"],oci_collection_size:[\"int oci_collection_size()\",\"Return the size of a collection\"],oci_collection_trim:[\"bool oci_collection_trim(int num)\",\"Trim num elements from the end of a collection\"],oci_commit:[\"bool oci_commit(resource connection)\",\"Commit the current context\"],oci_connect:[\"resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_define_by_name:[\"bool oci_define_by_name(resource stmt, string name, mixed &var [, int type])\",\"Define a PHP variable to an Oracle column by name\"],oci_error:[\"array oci_error([resource stmt|connection|global])\",\"Return the last error of stmt|connection|global. If no error happened returns false.\"],oci_execute:[\"bool oci_execute(resource stmt [, int mode])\",\"Execute a parsed statement\"],oci_fetch:[\"bool oci_fetch(resource stmt)\",\"Prepare a new row of data for reading\"],oci_fetch_all:[\"int oci_fetch_all(resource stmt, array &output[, int skip[, int maxrows[, int flags]]])\",\"Fetch all rows of result data into an array\"],oci_fetch_array:[\"array oci_fetch_array( resource stmt [, int mode ])\",\"Fetch a result row as an array\"],oci_fetch_assoc:[\"array oci_fetch_assoc( resource stmt )\",\"Fetch a result row as an associative array\"],oci_fetch_object:[\"object oci_fetch_object( resource stmt )\",\"Fetch a result row as an object\"],oci_fetch_row:[\"array oci_fetch_row( resource stmt )\",\"Fetch a result row as an enumerated array\"],oci_field_is_null:[\"bool oci_field_is_null(resource stmt, int col)\",\"Tell whether a column is NULL\"],oci_field_name:[\"string oci_field_name(resource stmt, int col)\",\"Tell the name of a column\"],oci_field_precision:[\"int oci_field_precision(resource stmt, int col)\",\"Tell the precision of a column\"],oci_field_scale:[\"int oci_field_scale(resource stmt, int col)\",\"Tell the scale of a column\"],oci_field_size:[\"int oci_field_size(resource stmt, int col)\",\"Tell the maximum data size of a column\"],oci_field_type:[\"mixed oci_field_type(resource stmt, int col)\",\"Tell the data type of a column\"],oci_field_type_raw:[\"int oci_field_type_raw(resource stmt, int col)\",\"Tell the raw oracle data type of a column\"],oci_free_collection:[\"bool oci_free_collection()\",\"Deletes collection object\"],oci_free_descriptor:[\"bool oci_free_descriptor()\",\"Deletes large object description\"],oci_free_statement:[\"bool oci_free_statement(resource stmt)\",\"Free all resources associated with a statement\"],oci_internal_debug:[\"void oci_internal_debug(int onoff)\",\"Toggle internal debugging output for the OCI extension\"],oci_lob_append:[\"bool oci_lob_append( object lob )\",\"Appends data from a LOB to another LOB\"],oci_lob_close:[\"bool oci_lob_close()\",\"Closes lob descriptor\"],oci_lob_copy:[\"bool oci_lob_copy( object lob_to, object lob_from [, int length ] )\",\"Copies data from a LOB to another LOB\"],oci_lob_eof:[\"bool oci_lob_eof()\",\"Checks if EOF is reached\"],oci_lob_erase:[\"int oci_lob_erase( [ int offset [, int length ] ] )\",\"Erases a specified portion of the internal LOB, starting at a specified offset\"],oci_lob_export:[\"bool oci_lob_export([string filename [, int start [, int length]]])\",\"Writes a large object into a file\"],oci_lob_flush:[\"bool oci_lob_flush( [ int flag ] )\",\"Flushes the LOB buffer\"],oci_lob_import:[\"bool oci_lob_import( string filename )\",\"Loads file into a LOB\"],oci_lob_is_equal:[\"bool oci_lob_is_equal( object lob1, object lob2 )\",\"Tests to see if two LOB/FILE locators are equal\"],oci_lob_load:[\"string oci_lob_load()\",\"Loads a large object\"],oci_lob_read:[\"string oci_lob_read( int length )\",\"Reads particular part of a large object\"],oci_lob_rewind:[\"bool oci_lob_rewind()\",\"Rewind pointer of a LOB\"],oci_lob_save:[\"bool oci_lob_save( string data [, int offset ])\",\"Saves a large object\"],oci_lob_seek:[\"bool oci_lob_seek( int offset [, int whence ])\",\"Moves the pointer of a LOB\"],oci_lob_size:[\"int oci_lob_size()\",\"Returns size of a large object\"],oci_lob_tell:[\"int oci_lob_tell()\",\"Tells LOB pointer position\"],oci_lob_truncate:[\"bool oci_lob_truncate( [ int length ])\",\"Truncates a LOB\"],oci_lob_write:[\"int oci_lob_write( string string [, int length ])\",\"Writes data to current position of a LOB\"],oci_lob_write_temporary:[\"bool oci_lob_write_temporary(string var [, int lob_type])\",\"Writes temporary blob\"],oci_new_collection:[\"object oci_new_collection(resource connection, string tdo [, string schema])\",\"Initialize a new collection\"],oci_new_connect:[\"resource oci_new_connect(string user, string pass [, string db])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_new_cursor:[\"resource oci_new_cursor(resource connection)\",\"Return a new cursor (Statement-Handle) - use this to bind ref-cursors!\"],oci_new_descriptor:[\"object oci_new_descriptor(resource connection [, int type])\",\"Initialize a new empty descriptor LOB/FILE (LOB is default)\"],oci_num_fields:[\"int oci_num_fields(resource stmt)\",\"Return the number of result columns in a statement\"],oci_num_rows:[\"int oci_num_rows(resource stmt)\",\"Return the row count of an OCI statement\"],oci_parse:[\"resource oci_parse(resource connection, string query)\",\"Parse a query and return a statement\"],oci_password_change:[\"bool oci_password_change(resource connection, string username, string old_password, string new_password)\",\"Changes the password of an account\"],oci_pconnect:[\"resource oci_pconnect(string user, string pass [, string db [, string charset ]])\",\"Connect to an Oracle database using a persistent connection and log on. Returns a new session.\"],oci_result:[\"string oci_result(resource stmt, mixed column)\",\"Return a single column of result data\"],oci_rollback:[\"bool oci_rollback(resource connection)\",\"Rollback the current context\"],oci_server_version:[\"string oci_server_version(resource connection)\",\"Return a string containing server version information\"],oci_set_action:[\"bool oci_set_action(resource connection, string value)\",\"Sets the action attribute on the connection\"],oci_set_client_identifier:[\"bool oci_set_client_identifier(resource connection, string value)\",\"Sets the client identifier attribute on the connection\"],oci_set_client_info:[\"bool oci_set_client_info(resource connection, string value)\",\"Sets the client info attribute on the connection\"],oci_set_edition:[\"bool oci_set_edition(string value)\",\"Sets the edition attribute for all subsequent connections created\"],oci_set_module_name:[\"bool oci_set_module_name(resource connection, string value)\",\"Sets the module attribute on the connection\"],oci_set_prefetch:[\"bool oci_set_prefetch(resource stmt, int prefetch_rows)\",\"Sets the number of rows to be prefetched on execute to prefetch_rows for stmt\"],oci_statement_type:[\"string oci_statement_type(resource stmt)\",\"Return the query type of an OCI statement\"],ocifetchinto:[\"int ocifetchinto(resource stmt, array &output [, int mode])\",\"Fetch a row of result data into an array\"],ocigetbufferinglob:[\"bool ocigetbufferinglob()\",\"Returns current state of buffering for a LOB\"],ocisetbufferinglob:[\"bool ocisetbufferinglob( boolean flag )\",\"Enables/disables buffering for a LOB\"],octdec:[\"int octdec(string octal_number)\",\"Returns the decimal equivalent of an octal string\"],odbc_autocommit:[\"mixed odbc_autocommit(resource connection_id [, int OnOff])\",\"Toggle autocommit mode or get status\"],odbc_binmode:[\"bool odbc_binmode(int result_id, int mode)\",\"Handle binary column data\"],odbc_close:[\"void odbc_close(resource connection_id)\",\"Close an ODBC connection\"],odbc_close_all:[\"void odbc_close_all(void)\",\"Close all ODBC connections\"],odbc_columnprivileges:[\"resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column)\",\"Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table\"],odbc_columns:[\"resource odbc_columns(resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])\",\"Returns a result identifier that can be used to fetch a list of column names in specified tables\"],odbc_commit:[\"bool odbc_commit(resource connection_id)\",\"Commit an ODBC transaction\"],odbc_connect:[\"resource odbc_connect(string DSN, string user, string password [, int cursor_option])\",\"Connect to a datasource\"],odbc_cursor:[\"string odbc_cursor(resource result_id)\",\"Get cursor name\"],odbc_data_source:[\"array odbc_data_source(resource connection_id, int fetch_type)\",\"Return information about the currently connected data source\"],odbc_error:[\"string odbc_error([resource connection_id])\",\"Get the last error code\"],odbc_errormsg:[\"string odbc_errormsg([resource connection_id])\",\"Get the last error message\"],odbc_exec:[\"resource odbc_exec(resource connection_id, string query [, int flags])\",\"Prepare and execute an SQL statement\"],odbc_execute:[\"bool odbc_execute(resource result_id [, array parameters_array])\",\"Execute a prepared statement\"],odbc_fetch_array:[\"array odbc_fetch_array(int result [, int rownumber])\",\"Fetch a result row as an associative array\"],odbc_fetch_into:[\"int odbc_fetch_into(resource result_id, array &result_array, [, int rownumber])\",\"Fetch one result row into an array\"],odbc_fetch_object:[\"object odbc_fetch_object(int result [, int rownumber])\",\"Fetch a result row as an object\"],odbc_fetch_row:[\"bool odbc_fetch_row(resource result_id [, int row_number])\",\"Fetch a row\"],odbc_field_len:[\"int odbc_field_len(resource result_id, int field_number)\",\"Get the length (precision) of a column\"],odbc_field_name:[\"string odbc_field_name(resource result_id, int field_number)\",\"Get a column name\"],odbc_field_num:[\"int odbc_field_num(resource result_id, string field_name)\",\"Return column number\"],odbc_field_scale:[\"int odbc_field_scale(resource result_id, int field_number)\",\"Get the scale of a column\"],odbc_field_type:[\"string odbc_field_type(resource result_id, int field_number)\",\"Get the datatype of a column\"],odbc_foreignkeys:[\"resource odbc_foreignkeys(resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)\",\"Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table\"],odbc_free_result:[\"bool odbc_free_result(resource result_id)\",\"Free resources associated with a result\"],odbc_gettypeinfo:[\"resource odbc_gettypeinfo(resource connection_id [, int data_type])\",\"Returns a result identifier containing information about data types supported by the data source\"],odbc_longreadlen:[\"bool odbc_longreadlen(int result_id, int length)\",\"Handle LONG columns\"],odbc_next_result:[\"bool odbc_next_result(resource result_id)\",\"Checks if multiple results are avaiable\"],odbc_num_fields:[\"int odbc_num_fields(resource result_id)\",\"Get number of columns in a result\"],odbc_num_rows:[\"int odbc_num_rows(resource result_id)\",\"Get number of rows in a result\"],odbc_pconnect:[\"resource odbc_pconnect(string DSN, string user, string password [, int cursor_option])\",\"Establish a persistent connection to a datasource\"],odbc_prepare:[\"resource odbc_prepare(resource connection_id, string query)\",\"Prepares a statement for execution\"],odbc_primarykeys:[\"resource odbc_primarykeys(resource connection_id, string qualifier, string owner, string table)\",\"Returns a result identifier listing the column names that comprise the primary key for a table\"],odbc_procedurecolumns:[\"resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column])\",\"Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures\"],odbc_procedures:[\"resource odbc_procedures(resource connection_id [, string qualifier, string owner, string name])\",\"Returns a result identifier containg the list of procedure names in a datasource\"],odbc_result:[\"mixed odbc_result(resource result_id, mixed field)\",\"Get result data\"],odbc_result_all:[\"int odbc_result_all(resource result_id [, string format])\",\"Print result as HTML table\"],odbc_rollback:[\"bool odbc_rollback(resource connection_id)\",\"Rollback a transaction\"],odbc_setoption:[\"bool odbc_setoption(resource conn_id|result_id, int which, int option, int value)\",\"Sets connection or statement options\"],odbc_specialcolumns:[\"resource odbc_specialcolumns(resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)\",\"Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction\"],odbc_statistics:[\"resource odbc_statistics(resource connection_id, string qualifier, string owner, string name, int unique, int accuracy)\",\"Returns a result identifier that contains statistics about a single table and the indexes associated with the table\"],odbc_tableprivileges:[\"resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name)\",\"Returns a result identifier containing a list of tables and the privileges associated with each table\"],odbc_tables:[\"resource odbc_tables(resource connection_id [, string qualifier [, string owner [, string name [, string table_types]]]])\",\"Call the SQLTables function\"],opendir:[\"mixed opendir(string path[, resource context])\",\"Open a directory and return a dir_handle\"],openlog:[\"bool openlog(string ident, int option, int facility)\",\"Open connection to system logger\"],openssl_csr_export:[\"bool openssl_csr_export(resource csr, string &out [, bool notext=true])\",\"Exports a CSR to file or a var\"],openssl_csr_export_to_file:[\"bool openssl_csr_export_to_file(resource csr, string outfilename [, bool notext=true])\",\"Exports a CSR to file\"],openssl_csr_get_public_key:[\"mixed openssl_csr_get_public_key(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_get_subject:[\"mixed openssl_csr_get_subject(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_new:[\"bool openssl_csr_new(array dn, resource &privkey [, array configargs [, array extraattribs]])\",\"Generates a privkey and CSR\"],openssl_csr_sign:[\"resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, long days [, array config_args [, long serial]])\",\"Signs a cert with another CERT\"],openssl_decrypt:[\"string openssl_decrypt(string data, string method, string password [, bool raw_input=false])\",\"Takes raw or base64 encoded string and dectupt it using given method and key\"],openssl_dh_compute_key:[\"string openssl_dh_compute_key(string pub_key, resource dh_key)\",\"Computes shared sicret for public value of remote DH key and local DH key\"],openssl_digest:[\"string openssl_digest(string data, string method [, bool raw_output=false])\",\"Computes digest hash value for given data using given method, returns raw or binhex encoded string\"],openssl_encrypt:[\"string openssl_encrypt(string data, string method, string password [, bool raw_output=false])\",\"Encrypts given data with given method and key, returns raw or base64 encoded string\"],openssl_error_string:[\"mixed openssl_error_string(void)\",\"Returns a description of the last error, and alters the index of the error messages. Returns false when the are no more messages\"],openssl_get_cipher_methods:[\"array openssl_get_cipher_methods([bool aliases = false])\",\"Return array of available cipher methods\"],openssl_get_md_methods:[\"array openssl_get_md_methods([bool aliases = false])\",\"Return array of available digest methods\"],openssl_open:[\"bool openssl_open(string data, &string opendata, string ekey, mixed privkey)\",\"Opens data\"],openssl_pkcs12_export:[\"bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS12 to a var\"],openssl_pkcs12_export_to_file:[\"bool openssl_pkcs12_export_to_file(mixed x509, string filename, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS to file\"],openssl_pkcs12_read:[\"bool openssl_pkcs12_read(string PKCS12, array &certs, string pass)\",\"Parses a PKCS12 to an array\"],openssl_pkcs7_decrypt:[\"bool openssl_pkcs7_decrypt(string infilename, string outfilename, mixed recipcert [, mixed recipkey])\",\"Decrypts the S/MIME message in the file name infilename and output the results to the file name outfilename.  recipcert is a CERT for one of the recipients. recipkey specifies the private key matching recipcert, if recipcert does not include the key\"],openssl_pkcs7_encrypt:[\"bool openssl_pkcs7_encrypt(string infile, string outfile, mixed recipcerts, array headers [, long flags [, long cipher]])\",\"Encrypts the message in the file named infile with the certificates in recipcerts and output the result to the file named outfile\"],openssl_pkcs7_sign:[\"bool openssl_pkcs7_sign(string infile, string outfile, mixed signcert, mixed signkey, array headers [, long flags [, string extracertsfilename]])\",\"Signs the MIME message in the file named infile with signcert/signkey and output the result to file name outfile. headers lists plain text headers to exclude from the signed portion of the message, and should include to, from and subject as a minimum\"],openssl_pkcs7_verify:[\"bool openssl_pkcs7_verify(string filename, long flags [, string signerscerts [, array cainfo [, string extracerts [, string content]]]])\",\"Verifys that the data block is intact, the signer is who they say they are, and returns the CERTs of the signers\"],openssl_pkey_export:[\"bool openssl_pkey_export(mixed key, &mixed out [, string passphrase [, array config_args]])\",\"Gets an exportable representation of a key into a string or file\"],openssl_pkey_export_to_file:[\"bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)\",\"Gets an exportable representation of a key into a file\"],openssl_pkey_free:[\"void openssl_pkey_free(int key)\",\"Frees a key\"],openssl_pkey_get_details:[\"resource openssl_pkey_get_details(resource key)\",\"returns an array with the key details (bits, pkey, type)\"],openssl_pkey_get_private:[\"int openssl_pkey_get_private(string key [, string passphrase])\",\"Gets private keys\"],openssl_pkey_get_public:[\"int openssl_pkey_get_public(mixed cert)\",\"Gets public key from X.509 certificate\"],openssl_pkey_new:[\"resource openssl_pkey_new([array configargs])\",\"Generates a new private key\"],openssl_private_decrypt:[\"bool openssl_private_decrypt(string data, string &decrypted, mixed key [, int padding])\",\"Decrypts data with private key\"],openssl_private_encrypt:[\"bool openssl_private_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with private key\"],openssl_public_decrypt:[\"bool openssl_public_decrypt(string data, string &crypted, resource key [, int padding])\",\"Decrypts data with public key\"],openssl_public_encrypt:[\"bool openssl_public_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with public key\"],openssl_random_pseudo_bytes:[\"string openssl_random_pseudo_bytes(integer length [, &bool returned_strong_result])\",\"Returns a string of the length specified filled with random pseudo bytes\"],openssl_seal:[\"int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys)\",\"Seals data\"],openssl_sign:[\"bool openssl_sign(string data, &string signature, mixed key[, mixed method])\",\"Signs data\"],openssl_verify:[\"int openssl_verify(string data, string signature, mixed key[, mixed method])\",\"Verifys data\"],openssl_x509_check_private_key:[\"bool openssl_x509_check_private_key(mixed cert, mixed key)\",\"Checks if a private key corresponds to a CERT\"],openssl_x509_checkpurpose:[\"int openssl_x509_checkpurpose(mixed x509cert, int purpose, array cainfo [, string untrustedfile])\",\"Checks the CERT to see if it can be used for the purpose in purpose. cainfo holds information about trusted CAs\"],openssl_x509_export:[\"bool openssl_x509_export(mixed x509, string &out [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_export_to_file:[\"bool openssl_x509_export_to_file(mixed x509, string outfilename [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_free:[\"void openssl_x509_free(resource x509)\",\"Frees X.509 certificates\"],openssl_x509_parse:[\"array openssl_x509_parse(mixed x509 [, bool shortnames=true])\",\"Returns an array of the fields/values of the CERT\"],openssl_x509_read:[\"resource openssl_x509_read(mixed cert)\",\"Reads X.509 certificates\"],ord:[\"int ord(string character)\",\"Returns ASCII value of character\"],output_add_rewrite_var:[\"bool output_add_rewrite_var(string name, string value)\",\"Add URL rewriter values\"],output_reset_rewrite_vars:[\"bool output_reset_rewrite_vars(void)\",\"Reset(clear) URL rewriter values\"],pack:[\"string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Takes one or more arguments and packs them into a binary string according to the format argument\"],parse_ini_file:[\"array parse_ini_file(string filename [, bool process_sections [, int scanner_mode]])\",\"Parse configuration file\"],parse_ini_string:[\"array parse_ini_string(string ini_string [, bool process_sections [, int scanner_mode]])\",\"Parse configuration string\"],parse_locale:[\"static array parse_locale($locale)\",\"* parses a locale-id into an array the different parts of it\"],parse_str:[\"void parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],parse_url:[\"mixed parse_url(string url, [int url_component])\",\"Parse a URL and return its components\"],passthru:[\"void passthru(string command [, int &return_value])\",\"Execute an external program and display raw output\"],pathinfo:[\"array pathinfo(string path[, int options])\",\"Returns information about a certain string\"],pclose:[\"int pclose(resource fp)\",\"Close a file pointer opened by popen()\"],pcnlt_sigwaitinfo:[\"int pcnlt_sigwaitinfo(array set[, array &siginfo])\",\"Synchronously wait for queued signals\"],pcntl_alarm:[\"int pcntl_alarm(int seconds)\",\"Set an alarm clock for delivery of a signal\"],pcntl_exec:[\"bool pcntl_exec(string path [, array args [, array envs]])\",\"Executes specified program in current process space as defined by exec(2)\"],pcntl_fork:[\"int pcntl_fork(void)\",\"Forks the currently running process following the same behavior as the UNIX fork() system call\"],pcntl_getpriority:[\"int pcntl_getpriority([int pid [, int process_identifier]])\",\"Get the priority of any process\"],pcntl_setpriority:[\"bool pcntl_setpriority(int priority [, int pid [, int process_identifier]])\",\"Change the priority of any process\"],pcntl_signal:[\"bool pcntl_signal(int signo, callback handle [, bool restart_syscalls])\",\"Assigns a system signal handler to a PHP function\"],pcntl_signal_dispatch:[\"bool pcntl_signal_dispatch()\",\"Dispatch signals to signal handlers\"],pcntl_sigprocmask:[\"bool pcntl_sigprocmask(int how, array set[, array &oldset])\",\"Examine and change blocked signals\"],pcntl_sigtimedwait:[\"int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])\",\"Wait for queued signals\"],pcntl_wait:[\"int pcntl_wait(int &status)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_waitpid:[\"int pcntl_waitpid(int pid, int &status, int options)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_wexitstatus:[\"int pcntl_wexitstatus(int status)\",\"Returns the status code of a child's exit\"],pcntl_wifexited:[\"bool pcntl_wifexited(int status)\",\"Returns true if the child status code represents a successful exit\"],pcntl_wifsignaled:[\"bool pcntl_wifsignaled(int status)\",\"Returns true if the child status code represents a process that was terminated due to a signal\"],pcntl_wifstopped:[\"bool pcntl_wifstopped(int status)\",\"Returns true if the child status code represents a stopped process (WUNTRACED must have been used with waitpid)\"],pcntl_wstopsig:[\"int pcntl_wstopsig(int status)\",\"Returns the number of the signal that caused the process to stop who's status code is passed\"],pcntl_wtermsig:[\"int pcntl_wtermsig(int status)\",\"Returns the number of the signal that terminated the process who's status code is passed\"],pdo_drivers:[\"array pdo_drivers()\",\"Return array of available PDO drivers\"],pfsockopen:[\"resource pfsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open persistent Internet or Unix domain socket connection\"],pg_affected_rows:[\"int pg_affected_rows(resource result)\",\"Returns the number of affected tuples\"],pg_cancel_query:[\"bool pg_cancel_query(resource connection)\",\"Cancel request\"],pg_client_encoding:[\"string pg_client_encoding([resource connection])\",\"Get the current client encoding\"],pg_close:[\"bool pg_close([resource connection])\",\"Close a PostgreSQL connection\"],pg_connect:[\"resource pg_connect(string connection_string[, int connect_type] | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a PostgreSQL connection\"],pg_connection_busy:[\"bool pg_connection_busy(resource connection)\",\"Get connection is busy or not\"],pg_connection_reset:[\"bool pg_connection_reset(resource connection)\",\"Reset connection (reconnect)\"],pg_connection_status:[\"int pg_connection_status(resource connnection)\",\"Get connection status\"],pg_convert:[\"array pg_convert(resource db, string table, array values[, int options])\",\"Check and convert values for PostgreSQL SQL statement\"],pg_copy_from:[\"bool pg_copy_from(resource connection, string table_name , array rows [, string delimiter [, string null_as]])\",\"Copy table from array\"],pg_copy_to:[\"array pg_copy_to(resource connection, string table_name [, string delimiter [, string null_as]])\",\"Copy table to array\"],pg_dbname:[\"string pg_dbname([resource connection])\",\"Get the database name\"],pg_delete:[\"mixed pg_delete(resource db, string table, array ids[, int options])\",\"Delete records has ids (id=>value)\"],pg_end_copy:[\"bool pg_end_copy([resource connection])\",\"Sync with backend. Completes the Copy command\"],pg_escape_bytea:[\"string pg_escape_bytea([resource connection,] string data)\",\"Escape binary for bytea type\"],pg_escape_string:[\"string pg_escape_string([resource connection,] string data)\",\"Escape string for text/char type\"],pg_execute:[\"resource pg_execute([resource connection,] string stmtname, array params)\",\"Execute a prepared query\"],pg_fetch_all:[\"array pg_fetch_all(resource result)\",\"Fetch all rows into array\"],pg_fetch_all_columns:[\"array pg_fetch_all_columns(resource result [, int column_number])\",\"Fetch all rows into array\"],pg_fetch_array:[\"array pg_fetch_array(resource result [, int row [, int result_type]])\",\"Fetch a row as an array\"],pg_fetch_assoc:[\"array pg_fetch_assoc(resource result [, int row])\",\"Fetch a row as an assoc array\"],pg_fetch_object:[\"object pg_fetch_object(resource result [, int row [, string class_name [, NULL|array ctor_params]]])\",\"Fetch a row as an object\"],pg_fetch_result:[\"mixed pg_fetch_result(resource result, [int row_number,] mixed field_name)\",\"Returns values from a result identifier\"],pg_fetch_row:[\"array pg_fetch_row(resource result [, int row [, int result_type]])\",\"Get a row as an enumerated array\"],pg_field_is_null:[\"int pg_field_is_null(resource result, [int row,] mixed field_name_or_number)\",\"Test if a field is NULL\"],pg_field_name:[\"string pg_field_name(resource result, int field_number)\",\"Returns the name of the field\"],pg_field_num:[\"int pg_field_num(resource result, string field_name)\",\"Returns the field number of the named field\"],pg_field_prtlen:[\"int pg_field_prtlen(resource result, [int row,] mixed field_name_or_number)\",\"Returns the printed length\"],pg_field_size:[\"int pg_field_size(resource result, int field_number)\",\"Returns the internal size of the field\"],pg_field_table:[\"mixed pg_field_table(resource result, int field_number[, bool oid_only])\",\"Returns the name of the table field belongs to, or table's oid if oid_only is true\"],pg_field_type:[\"string pg_field_type(resource result, int field_number)\",\"Returns the type name for the given field\"],pg_field_type_oid:[\"string pg_field_type_oid(resource result, int field_number)\",\"Returns the type oid for the given field\"],pg_free_result:[\"bool pg_free_result(resource result)\",\"Free result memory\"],pg_get_notify:[\"array pg_get_notify([resource connection[, result_type]])\",\"Get asynchronous notification\"],pg_get_pid:[\"int pg_get_pid([resource connection)\",\"Get backend(server) pid\"],pg_get_result:[\"resource pg_get_result(resource connection)\",\"Get asynchronous query result\"],pg_host:[\"string pg_host([resource connection])\",\"Returns the host name associated with the connection\"],pg_insert:[\"mixed pg_insert(resource db, string table, array values[, int options])\",\"Insert values (filed=>value) to table\"],pg_last_error:[\"string pg_last_error([resource connection])\",\"Get the error message string\"],pg_last_notice:[\"string pg_last_notice(resource connection)\",\"Returns the last notice set by the backend\"],pg_last_oid:[\"string pg_last_oid(resource result)\",\"Returns the last object identifier\"],pg_lo_close:[\"bool pg_lo_close(resource large_object)\",\"Close a large object\"],pg_lo_create:[\"mixed pg_lo_create([resource connection],[mixed large_object_oid])\",\"Create a large object\"],pg_lo_export:[\"bool pg_lo_export([resource connection, ] int objoid, string filename)\",\"Export large object direct to filesystem\"],pg_lo_import:[\"int pg_lo_import([resource connection, ] string filename [, mixed oid])\",\"Import large object direct from filesystem\"],pg_lo_open:[\"resource pg_lo_open([resource connection,] int large_object_oid, string mode)\",\"Open a large object and return fd\"],pg_lo_read:[\"string pg_lo_read(resource large_object [, int len])\",\"Read a large object\"],pg_lo_read_all:[\"int pg_lo_read_all(resource large_object)\",\"Read a large object and send straight to browser\"],pg_lo_seek:[\"bool pg_lo_seek(resource large_object, int offset [, int whence])\",\"Seeks position of large object\"],pg_lo_tell:[\"int pg_lo_tell(resource large_object)\",\"Returns current position of large object\"],pg_lo_unlink:[\"bool pg_lo_unlink([resource connection,] string large_object_oid)\",\"Delete a large object\"],pg_lo_write:[\"int pg_lo_write(resource large_object, string buf [, int len])\",\"Write a large object\"],pg_meta_data:[\"array pg_meta_data(resource db, string table)\",\"Get meta_data\"],pg_num_fields:[\"int pg_num_fields(resource result)\",\"Return the number of fields in the result\"],pg_num_rows:[\"int pg_num_rows(resource result)\",\"Return the number of rows in the result\"],pg_options:[\"string pg_options([resource connection])\",\"Get the options associated with the connection\"],pg_parameter_status:[\"string|false pg_parameter_status([resource connection,] string param_name)\",\"Returns the value of a server parameter\"],pg_pconnect:[\"resource pg_pconnect(string connection_string | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a persistent PostgreSQL connection\"],pg_ping:[\"bool pg_ping([resource connection])\",\"Ping database. If connection is bad, try to reconnect.\"],pg_port:[\"int pg_port([resource connection])\",\"Return the port number associated with the connection\"],pg_prepare:[\"resource pg_prepare([resource connection,] string stmtname, string query)\",\"Prepare a query for future execution\"],pg_put_line:[\"bool pg_put_line([resource connection,] string query)\",\"Send null-terminated string to backend server\"],pg_query:[\"resource pg_query([resource connection,] string query)\",\"Execute a query\"],pg_query_params:[\"resource pg_query_params([resource connection,] string query, array params)\",\"Execute a query\"],pg_result_error:[\"string pg_result_error(resource result)\",\"Get error message associated with result\"],pg_result_error_field:[\"string pg_result_error_field(resource result, int fieldcode)\",\"Get error message field associated with result\"],pg_result_seek:[\"bool pg_result_seek(resource result, int offset)\",\"Set internal row offset\"],pg_result_status:[\"mixed pg_result_status(resource result[, long result_type])\",\"Get status of query result\"],pg_select:[\"mixed pg_select(resource db, string table, array ids[, int options])\",\"Select records that has ids (id=>value)\"],pg_send_execute:[\"bool pg_send_execute(resource connection, string stmtname, array params)\",\"Executes prevriously prepared stmtname asynchronously\"],pg_send_prepare:[\"bool pg_send_prepare(resource connection, string stmtname, string query)\",\"Asynchronously prepare a query for future execution\"],pg_send_query:[\"bool pg_send_query(resource connection, string query)\",\"Send asynchronous query\"],pg_send_query_params:[\"bool pg_send_query_params(resource connection, string query, array params)\",\"Send asynchronous parameterized query\"],pg_set_client_encoding:[\"int pg_set_client_encoding([resource connection,] string encoding)\",\"Set client encoding\"],pg_set_error_verbosity:[\"int pg_set_error_verbosity([resource connection,] int verbosity)\",\"Set error verbosity\"],pg_trace:[\"bool pg_trace(string filename [, string mode [, resource connection]])\",\"Enable tracing a PostgreSQL connection\"],pg_transaction_status:[\"int pg_transaction_status(resource connnection)\",\"Get transaction status\"],pg_tty:[\"string pg_tty([resource connection])\",\"Return the tty name associated with the connection\"],pg_unescape_bytea:[\"string pg_unescape_bytea(string data)\",\"Unescape binary for bytea type\"],pg_untrace:[\"bool pg_untrace([resource connection])\",\"Disable tracing of a PostgreSQL connection\"],pg_update:[\"mixed pg_update(resource db, string table, array fields, array ids[, int options])\",\"Update table using values (field=>value) and ids (id=>value)\"],pg_version:[\"array pg_version([resource connection])\",\"Returns an array with client, protocol and server version (when available)\"],php_egg_logo_guid:[\"string php_egg_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_ini_loaded_file:[\"string php_ini_loaded_file(void)\",\"Return the actual loaded ini filename\"],php_ini_scanned_files:[\"string php_ini_scanned_files(void)\",\"Return comma-separated string of .ini files parsed from the additional ini dir\"],php_logo_guid:[\"string php_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_real_logo_guid:[\"string php_real_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_sapi_name:[\"string php_sapi_name(void)\",\"Return the current SAPI module name\"],php_snmpv3:[\"void php_snmpv3(INTERNAL_FUNCTION_PARAMETERS, int st)\",\"* * Generic SNMPv3 object fetcher * From here is passed on the the common internal object fetcher. * * st=SNMP_CMD_GET   snmp3_get() - query an agent and return a single value. * st=SNMP_CMD_GETNEXT   snmp3_getnext() - query an agent and return the next single value. * st=SNMP_CMD_WALK   snmp3_walk() - walk the mib and return a single dimensional array  *                       containing the values. * st=SNMP_CMD_REALWALK   snmp3_real_walk() - walk the mib and return an  *                            array of oid,value pairs. * st=SNMP_CMD_SET  snmp3_set() - query an agent and set a single value *\"],php_strip_whitespace:[\"string php_strip_whitespace(string file_name)\",\"Return source with stripped comments and whitespace\"],php_uname:[\"string php_uname(void)\",\"Return information about the system PHP was built on\"],phpcredits:[\"void phpcredits([int flag])\",\"Prints the list of people who've contributed to the PHP project\"],phpinfo:[\"void phpinfo([int what])\",\"Output a page of useful information about PHP and the current request\"],phpversion:[\"string phpversion([string extension])\",\"Return the current PHP version\"],pi:[\"float pi(void)\",\"Returns an approximation of pi\"],png2wbmp:[\"bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert PNG image to WBMP image\"],popen:[\"resource popen(string command, string mode)\",\"Execute a command and open either a read or a write pipe to it\"],posix_access:[\"bool posix_access(string file [, int mode])\",\"Determine accessibility of a file (POSIX.1 5.6.3)\"],posix_ctermid:[\"string posix_ctermid(void)\",\"Generate terminal path name (POSIX.1, 4.7.1)\"],posix_get_last_error:[\"int posix_get_last_error(void)\",\"Retrieve the error number set by the last posix function which failed.\"],posix_getcwd:[\"string posix_getcwd(void)\",\"Get working directory pathname (POSIX.1, 5.2.2)\"],posix_getegid:[\"int posix_getegid(void)\",\"Get the current effective group id (POSIX.1, 4.2.1)\"],posix_geteuid:[\"int posix_geteuid(void)\",\"Get the current effective user id (POSIX.1, 4.2.1)\"],posix_getgid:[\"int posix_getgid(void)\",\"Get the current group id (POSIX.1, 4.2.1)\"],posix_getgrgid:[\"array posix_getgrgid(long gid)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgrnam:[\"array posix_getgrnam(string groupname)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgroups:[\"array posix_getgroups(void)\",\"Get supplementary group id's (POSIX.1, 4.2.3)\"],posix_getlogin:[\"string posix_getlogin(void)\",\"Get user name (POSIX.1, 4.2.4)\"],posix_getpgid:[\"int posix_getpgid(void)\",\"Get the process group id of the specified process (This is not a POSIX function, but a SVR4ism, so we compile conditionally)\"],posix_getpgrp:[\"int posix_getpgrp(void)\",\"Get current process group id (POSIX.1, 4.3.1)\"],posix_getpid:[\"int posix_getpid(void)\",\"Get the current process id (POSIX.1, 4.1.1)\"],posix_getppid:[\"int posix_getppid(void)\",\"Get the parent process id (POSIX.1, 4.1.1)\"],posix_getpwnam:[\"array posix_getpwnam(string groupname)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getpwuid:[\"array posix_getpwuid(long uid)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getrlimit:[\"array posix_getrlimit(void)\",\"Get system resource consumption limits (This is not a POSIX function, but a BSDism and a SVR4ism. We compile conditionally)\"],posix_getsid:[\"int posix_getsid(void)\",\"Get process group id of session leader (This is not a POSIX function, but a SVR4ism, so be compile conditionally)\"],posix_getuid:[\"int posix_getuid(void)\",\"Get the current user id (POSIX.1, 4.2.1)\"],posix_initgroups:[\"bool posix_initgroups(string name, int base_group_id)\",\"Calculate the group access list for the user specified in name.\"],posix_isatty:[\"bool posix_isatty(int fd)\",\"Determine if filedesc is a tty (POSIX.1, 4.7.1)\"],posix_kill:[\"bool posix_kill(int pid, int sig)\",\"Send a signal to a process (POSIX.1, 3.3.2)\"],posix_mkfifo:[\"bool posix_mkfifo(string pathname, int mode)\",\"Make a FIFO special file (POSIX.1, 5.4.2)\"],posix_mknod:[\"bool posix_mknod(string pathname, int mode [, int major [, int minor]])\",\"Make a special or ordinary file (POSIX.1)\"],posix_setegid:[\"bool posix_setegid(long uid)\",\"Set effective group id\"],posix_seteuid:[\"bool posix_seteuid(long uid)\",\"Set effective user id\"],posix_setgid:[\"bool posix_setgid(int uid)\",\"Set group id (POSIX.1, 4.2.2)\"],posix_setpgid:[\"bool posix_setpgid(int pid, int pgid)\",\"Set process group id for job control (POSIX.1, 4.3.3)\"],posix_setsid:[\"int posix_setsid(void)\",\"Create session and set process group id (POSIX.1, 4.3.2)\"],posix_setuid:[\"bool posix_setuid(long uid)\",\"Set user id (POSIX.1, 4.2.2)\"],posix_strerror:[\"string posix_strerror(int errno)\",\"Retrieve the system error message associated with the given errno.\"],posix_times:[\"array posix_times(void)\",\"Get process times (POSIX.1, 4.5.2)\"],posix_ttyname:[\"string posix_ttyname(int fd)\",\"Determine terminal device name (POSIX.1, 4.7.2)\"],posix_uname:[\"array posix_uname(void)\",\"Get system name (POSIX.1, 4.4.1)\"],pow:[\"number pow(number base, number exponent)\",\"Returns base raised to the power of exponent. Returns integer result when possible\"],preg_filter:[\"mixed preg_filter(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement and only return matches.\"],preg_grep:[\"array preg_grep(string regex, array input [, int flags])\",\"Searches array and returns entries which match regex\"],preg_last_error:[\"int preg_last_error()\",\"Returns the error code of the last regexp execution.\"],preg_match:[\"int preg_match(string pattern, string subject [, array &subpatterns [, int flags [, int offset]]])\",\"Perform a Perl-style regular expression match\"],preg_match_all:[\"int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]])\",\"Perform a Perl-style global regular expression match\"],preg_quote:[\"string preg_quote(string str [, string delim_char])\",\"Quote regular expression characters plus an optional character\"],preg_replace:[\"mixed preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement.\"],preg_replace_callback:[\"mixed preg_replace_callback(mixed regex, mixed callback, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement using replacement callback.\"],preg_split:[\"array preg_split(string pattern, string subject [, int limit [, int flags]])\",\"Split string into an array using a perl-style regular expression as a delimiter\"],prev:[\"mixed prev(array array_arg)\",\"Move array argument's internal pointer to the previous element and return it\"],print:[\"int print(string arg)\",\"Output a string\"],print_r:[\"mixed print_r(mixed var [, bool return])\",\"Prints out or returns information about the specified variable\"],printf:[\"int printf(string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string\"],proc_close:[\"int proc_close(resource process)\",\"close a process opened by proc_open\"],proc_get_status:[\"array proc_get_status(resource process)\",\"get information about a process opened by proc_open\"],proc_nice:[\"bool proc_nice(int priority)\",\"Change the priority of the current process\"],proc_open:[\"resource proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])\",\"Run a process with more control over it's file descriptors\"],proc_terminate:[\"bool proc_terminate(resource process [, long signal])\",\"kill a process opened by proc_open\"],property_exists:[\"bool property_exists(mixed object_or_class, string property_name)\",\"Checks if the object or class has a property\"],pspell_add_to_personal:[\"bool pspell_add_to_personal(int pspell, string word)\",\"Adds a word to a personal list\"],pspell_add_to_session:[\"bool pspell_add_to_session(int pspell, string word)\",\"Adds a word to the current session\"],pspell_check:[\"bool pspell_check(int pspell, string word)\",\"Returns true if word is valid\"],pspell_clear_session:[\"bool pspell_clear_session(int pspell)\",\"Clears the current session\"],pspell_config_create:[\"int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])\",\"Create a new config to be used later to create a manager\"],pspell_config_data_dir:[\"bool pspell_config_data_dir(int conf, string directory)\",\"location of language data files\"],pspell_config_dict_dir:[\"bool pspell_config_dict_dir(int conf, string directory)\",\"location of the main word list\"],pspell_config_ignore:[\"bool pspell_config_ignore(int conf, int ignore)\",\"Ignore words <= n chars\"],pspell_config_mode:[\"bool pspell_config_mode(int conf, long mode)\",\"Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS)\"],pspell_config_personal:[\"bool pspell_config_personal(int conf, string personal)\",\"Use a personal dictionary for this config\"],pspell_config_repl:[\"bool pspell_config_repl(int conf, string repl)\",\"Use a personal dictionary with replacement pairs for this config\"],pspell_config_runtogether:[\"bool pspell_config_runtogether(int conf, bool runtogether)\",\"Consider run-together words as valid components\"],pspell_config_save_repl:[\"bool pspell_config_save_repl(int conf, bool save)\",\"Save replacement pairs when personal list is saved for this config\"],pspell_new:[\"int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary\"],pspell_new_config:[\"int pspell_new_config(int config)\",\"Load a dictionary based on the given config\"],pspell_new_personal:[\"int pspell_new_personal(string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary with a personal wordlist\"],pspell_save_wordlist:[\"bool pspell_save_wordlist(int pspell)\",\"Saves the current (personal) wordlist\"],pspell_store_replacement:[\"bool pspell_store_replacement(int pspell, string misspell, string correct)\",\"Notify the dictionary of a user-selected replacement\"],pspell_suggest:[\"array pspell_suggest(int pspell, string word)\",\"Returns array of suggestions\"],putenv:[\"bool putenv(string setting)\",\"Set the value of an environment variable\"],quoted_printable_decode:[\"string quoted_printable_decode(string str)\",\"Convert a quoted-printable string to an 8 bit string\"],quoted_printable_encode:[\"string quoted_printable_encode(string str) */\",'PHP_FUNCTION(quoted_printable_encode) {  char *str, *new_str;  int str_len;  size_t new_str_len;   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &str, &str_len) != SUCCESS) {   return;  }   if (!str_len) {   RETURN_EMPTY_STRING();  }   new_str = (char *)php_quot_print_encode((unsigned char *)str, (size_t)str_len, &new_str_len);  RETURN_STRINGL(new_str, new_str_len, 0); } /* }}}'],quotemeta:[\"string quotemeta(string str)\",\"Quotes meta characters\"],rad2deg:[\"float rad2deg(float number)\",\"Converts the radian number to the equivalent number in degrees\"],rand:[\"int rand([int min, int max])\",\"Returns a random number\"],range:[\"array range(mixed low, mixed high[, int step])\",\"Create an array containing the range of integers or characters from low to high (inclusive)\"],rawurldecode:[\"string rawurldecode(string str)\",\"Decodes URL-encodes string\"],rawurlencode:[\"string rawurlencode(string str)\",\"URL-encodes string\"],readdir:[\"string readdir([resource dir_handle])\",\"Read directory entry from dir_handle\"],readfile:[\"int readfile(string filename [, bool use_include_path[, resource context]])\",\"Output a file or a URL\"],readgzfile:[\"int readgzfile(string filename [, int use_include_path])\",\"Output a .gz-file\"],readline:[\"string readline([string prompt])\",\"Reads a line\"],readline_add_history:[\"bool readline_add_history(string prompt)\",\"Adds a line to the history\"],readline_callback_handler_install:[\"void readline_callback_handler_install(string prompt, mixed callback)\",\"Initializes the readline callback interface and terminal, prints the prompt and returns immediately\"],readline_callback_handler_remove:[\"bool readline_callback_handler_remove()\",\"Removes a previously installed callback handler and restores terminal settings\"],readline_callback_read_char:[\"void readline_callback_read_char()\",\"Informs the readline callback interface that a character is ready for input\"],readline_clear_history:[\"bool readline_clear_history(void)\",\"Clears the history\"],readline_completion_function:[\"bool readline_completion_function(string funcname)\",\"Readline completion function?\"],readline_info:[\"mixed readline_info([string varname [, string newvalue]])\",\"Gets/sets various internal readline variables.\"],readline_list_history:[\"array readline_list_history(void)\",\"Lists the history\"],readline_on_new_line:[\"void readline_on_new_line(void)\",\"Inform readline that the cursor has moved to a new line\"],readline_read_history:[\"bool readline_read_history([string filename])\",\"Reads the history\"],readline_redisplay:[\"void readline_redisplay(void)\",\"Ask readline to redraw the display\"],readline_write_history:[\"bool readline_write_history([string filename])\",\"Writes the history\"],readlink:[\"string readlink(string filename)\",\"Return the target of a symbolic link\"],realpath:[\"string realpath(string path)\",\"Return the resolved path\"],realpath_cache_get:[\"bool realpath_cache_get()\",\"Get current size of realpath cache\"],realpath_cache_size:[\"bool realpath_cache_size()\",\"Get current size of realpath cache\"],recode_file:[\"bool recode_file(string request, resource input, resource output)\",\"Recode file input into file output according to request\"],recode_string:[\"string recode_string(string request, string str)\",\"Recode string str according to request string\"],register_shutdown_function:[\"void register_shutdown_function(string function_name)\",\"Register a user-level function to be called on request termination\"],register_tick_function:[\"bool register_tick_function(string function_name [, mixed arg [, mixed ... ]])\",\"Registers a tick callback function\"],rename:[\"bool rename(string old_name, string new_name[, resource context])\",\"Rename a file\"],require:[\"bool require(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],require_once:[\"bool require_once(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],reset:[\"mixed reset(array array_arg)\",\"Set array argument's internal pointer to the first element and return it\"],restore_error_handler:[\"void restore_error_handler(void)\",\"Restores the previously defined error handler function\"],restore_exception_handler:[\"void restore_exception_handler(void)\",\"Restores the previously defined exception handler function\"],restore_include_path:[\"void restore_include_path()\",\"Restore the value of the include_path configuration option\"],rewind:[\"bool rewind(resource fp)\",\"Rewind the position of a file pointer\"],rewinddir:[\"void rewinddir([resource dir_handle])\",\"Rewind dir_handle back to the start\"],rmdir:[\"bool rmdir(string dirname[, resource context])\",\"Remove a directory\"],round:[\"float round(float number [, int precision [, int mode]])\",\"Returns the number rounded to specified precision\"],rsort:[\"bool rsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order\"],rtrim:[\"string rtrim(string str [, string character_mask])\",\"Removes trailing whitespace\"],scandir:[\"array scandir(string dir [, int sorting_order [, resource context]])\",\"List files & directories inside the specified path\"],sem_acquire:[\"bool sem_acquire(resource id)\",\"Acquires the semaphore with the given id, blocking if necessary\"],sem_get:[\"resource sem_get(int key [, int max_acquire [, int perm [, int auto_release]])\",\"Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously\"],sem_release:[\"bool sem_release(resource id)\",\"Releases the semaphore with the given id\"],sem_remove:[\"bool sem_remove(resource id)\",\"Removes semaphore from Unix systems\"],serialize:[\"string serialize(mixed variable)\",\"Returns a string representation of variable (which can later be unserialized)\"],session_cache_expire:[\"int session_cache_expire([int new_cache_expire])\",\"Return the current cache expire. If new_cache_expire is given, the current cache_expire is replaced with new_cache_expire\"],session_cache_limiter:[\"string session_cache_limiter([string new_cache_limiter])\",\"Return the current cache limiter. If new_cache_limited is given, the current cache_limiter is replaced with new_cache_limiter\"],session_decode:[\"bool session_decode(string data)\",\"Deserializes data and reinitializes the variables\"],session_destroy:[\"bool session_destroy(void)\",\"Destroy the current session and all data associated with it\"],session_encode:[\"string session_encode(void)\",\"Serializes the current setup and returns the serialized representation\"],session_get_cookie_params:[\"array session_get_cookie_params(void)\",\"Return the session cookie parameters\"],session_id:[\"string session_id([string newid])\",\"Return the current session id. If newid is given, the session id is replaced with newid\"],session_is_registered:[\"bool session_is_registered(string varname)\",\"Checks if a variable is registered in session\"],session_module_name:[\"string session_module_name([string newname])\",\"Return the current module name used for accessing session data. If newname is given, the module name is replaced with newname\"],session_name:[\"string session_name([string newname])\",\"Return the current session name. If newname is given, the session name is replaced with newname\"],session_regenerate_id:[\"bool session_regenerate_id([bool delete_old_session])\",\"Update the current session id with a newly generated one. If delete_old_session is set to true, remove the old session.\"],session_register:[\"bool session_register(mixed var_names [, mixed ...])\",\"Adds varname(s) to the list of variables which are freezed at the session end\"],session_save_path:[\"string session_save_path([string newname])\",\"Return the current save path passed to module_name. If newname is given, the save path is replaced with newname\"],session_set_cookie_params:[\"void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly]]]])\",\"Set session cookie parameters\"],session_set_save_handler:[\"void session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)\",\"Sets user-level functions\"],session_start:[\"bool session_start(void)\",\"Begin session - reinitializes freezed variables, registers browsers etc\"],session_unregister:[\"bool session_unregister(string varname)\",\"Removes varname from the list of variables which are freezed at the session end\"],session_unset:[\"void session_unset(void)\",\"Unset all registered variables\"],session_write_close:[\"void session_write_close(void)\",\"Write session data and end session\"],set_error_handler:[\"string set_error_handler(string error_handler [, int error_types])\",\"Sets a user-defined error handler function.  Returns the previously defined error handler, or false on error\"],set_exception_handler:[\"string set_exception_handler(callable exception_handler)\",\"Sets a user-defined exception handler function.  Returns the previously defined exception handler, or false on error\"],set_include_path:[\"string set_include_path(string new_include_path)\",\"Sets the include_path configuration option\"],set_magic_quotes_runtime:[\"bool set_magic_quotes_runtime(int new_setting)\",\"Set the current active configuration setting of magic_quotes_runtime and return previous\"],set_time_limit:[\"bool set_time_limit(int seconds)\",\"Sets the maximum time a script can run\"],setcookie:[\"bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie\"],setlocale:[\"string setlocale(mixed category, string locale [, string ...])\",\"Set locale information\"],setrawcookie:[\"bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie with no url encoding of the value\"],settype:[\"bool settype(mixed var, string type)\",\"Set the type of the variable\"],sha1:[\"string sha1(string str [, bool raw_output])\",\"Calculate the sha1 hash of a string\"],sha1_file:[\"string sha1_file(string filename [, bool raw_output])\",\"Calculate the sha1 hash of given filename\"],shell_exec:[\"string shell_exec(string cmd)\",\"Execute command via shell and return complete output as string\"],shm_attach:[\"int shm_attach(int key [, int memsize [, int perm]])\",\"Creates or open a shared memory segment\"],shm_detach:[\"bool shm_detach(resource shm_identifier)\",\"Disconnects from shared memory segment\"],shm_get_var:[\"mixed shm_get_var(resource id, int variable_key)\",\"Returns a variable from shared memory\"],shm_has_var:[\"bool shm_has_var(resource id, int variable_key)\",\"Checks whether a specific entry exists\"],shm_put_var:[\"bool shm_put_var(resource shm_identifier, int variable_key, mixed variable)\",\"Inserts or updates a variable in shared memory\"],shm_remove:[\"bool shm_remove(resource shm_identifier)\",\"Removes shared memory from Unix systems\"],shm_remove_var:[\"bool shm_remove_var(resource id, int variable_key)\",\"Removes variable from shared memory\"],shmop_close:[\"void shmop_close (int shmid)\",\"closes a shared memory segment\"],shmop_delete:[\"bool shmop_delete (int shmid)\",\"mark segment for deletion\"],shmop_open:[\"int shmop_open (int key, string flags, int mode, int size)\",\"gets and attaches a shared memory segment\"],shmop_read:[\"string shmop_read (int shmid, int start, int count)\",\"reads from a shm segment\"],shmop_size:[\"int shmop_size (int shmid)\",\"returns the shm size\"],shmop_write:[\"int shmop_write (int shmid, string data, int offset)\",\"writes to a shared memory segment\"],shuffle:[\"bool shuffle(array array_arg)\",\"Randomly shuffle the contents of an array\"],similar_text:[\"int similar_text(string str1, string str2 [, float percent])\",\"Calculates the similarity between two strings\"],simplexml_import_dom:[\"simplemxml_element simplexml_import_dom(domNode node [, string class_name])\",\"Get a simplexml_element object from dom to allow for processing\"],simplexml_load_file:[\"simplemxml_element simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a filename and return a simplexml_element object to allow for processing\"],simplexml_load_string:[\"simplemxml_element simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a string and return a simplexml_element object to allow for processing\"],sin:[\"float sin(float number)\",\"Returns the sine of the number in radians\"],sinh:[\"float sinh(float number)\",\"Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2\"],sleep:[\"void sleep(int seconds)\",\"Delay for a given number of seconds\"],smfi_addheader:[\"bool smfi_addheader(string headerf, string headerv)\",\"Adds a header to the current message.\"],smfi_addrcpt:[\"bool smfi_addrcpt(string rcpt)\",\"Add a recipient to the message envelope.\"],smfi_chgheader:[\"bool smfi_chgheader(string headerf, string headerv)\",\"Changes a header's value for the current message.\"],smfi_delrcpt:[\"bool smfi_delrcpt(string rcpt)\",\"Removes the named recipient from the current message's envelope.\"],smfi_getsymval:[\"string smfi_getsymval(string macro)\",\"Returns the value of the given macro or NULL if the macro is not defined.\"],smfi_replacebody:[\"bool smfi_replacebody(string body)\",\"Replaces the body of the current message. If called more than once,    subsequent calls result in data being appended to the new body.\"],smfi_setflags:[\"void smfi_setflags(long flags)\",\"Sets the flags describing the actions the filter may take.\"],smfi_setreply:[\"bool smfi_setreply(string rcode, string xcode, string message)\",\"Directly set the SMTP error reply code for this connection.    This code will be used on subsequent error replies resulting from actions taken by this filter.\"],smfi_settimeout:[\"void smfi_settimeout(long timeout)\",\"Sets the number of seconds libmilter will wait for an MTA connection before timing out a socket.\"],snmp2_get:[\"string snmp2_get(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_getnext:[\"string snmp2_getnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_real_walk:[\"array snmp2_real_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmp2_set:[\"int snmp2_set(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmp2_walk:[\"array snmp2_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],snmp3_get:[\"int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_getnext:[\"int snmp3_getnext(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_real_walk:[\"int snmp3_real_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_set:[\"int snmp3_set(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_walk:[\"int snmp3_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp_get_quick_print:[\"bool snmp_get_quick_print(void)\",\"Return the current status of quick_print\"],snmp_get_valueretrieval:[\"int snmp_get_valueretrieval()\",\"Return the method how the SNMP values will be returned\"],snmp_read_mib:[\"int snmp_read_mib(string filename)\",\"Reads and parses a MIB file into the active MIB tree.\"],snmp_set_enum_print:[\"void snmp_set_enum_print(int enum_print)\",\"Return all values that are enums with their enum value instead of the raw integer\"],snmp_set_oid_output_format:[\"void snmp_set_oid_output_format(int oid_format)\",\"Set the OID output format.\"],snmp_set_quick_print:[\"void snmp_set_quick_print(int quick_print)\",\"Return all objects including their respective object id withing the specified one\"],snmp_set_valueretrieval:[\"void snmp_set_valueretrieval(int method)\",\"Specify the method how the SNMP values will be returned\"],snmpget:[\"string snmpget(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmpgetnext:[\"string snmpgetnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmprealwalk:[\"array snmprealwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmpset:[\"int snmpset(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmpwalk:[\"array snmpwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],socket_accept:[\"resource socket_accept(resource socket)\",\"Accepts a connection on the listening socket fd\"],socket_bind:[\"bool socket_bind(resource socket, string addr [, int port])\",\"Binds an open socket to a listening port, port is only specified in AF_INET family.\"],socket_clear_error:[\"void socket_clear_error([resource socket])\",\"Clears the error on the socket or the last error code.\"],socket_close:[\"void socket_close(resource socket)\",\"Closes a file descriptor\"],socket_connect:[\"bool socket_connect(resource socket, string addr [, int port])\",\"Opens a connection to addr:port on the socket specified by socket\"],socket_create:[\"resource socket_create(int domain, int type, int protocol)\",\"Creates an endpoint for communication in the domain specified by domain, of type specified by type\"],socket_create_listen:[\"resource socket_create_listen(int port[, int backlog])\",\"Opens a socket on port to accept connections\"],socket_create_pair:[\"bool socket_create_pair(int domain, int type, int protocol, array &fd)\",\"Creates a pair of indistinguishable sockets and stores them in fds.\"],socket_get_option:[\"mixed socket_get_option(resource socket, int level, int optname)\",\"Gets socket options for the socket\"],socket_getpeername:[\"bool socket_getpeername(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_getsockname:[\"bool socket_getsockname(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_last_error:[\"int socket_last_error([resource socket])\",\"Returns the last socket error (either the last used or the provided socket resource)\"],socket_listen:[\"bool socket_listen(resource socket[, int backlog])\",\"Sets the maximum number of connections allowed to be waited for on the socket specified by fd\"],socket_read:[\"string socket_read(resource socket, int length [, int type])\",\"Reads a maximum of length bytes from socket\"],socket_recv:[\"int socket_recv(resource socket, string &buf, int len, int flags)\",\"Receives data from a connected socket\"],socket_recvfrom:[\"int socket_recvfrom(resource socket, string &buf, int len, int flags, string &name [, int &port])\",\"Receives data from a socket, connected or not\"],socket_select:[\"int socket_select(array &read_fds, array &write_fds, array &except_fds, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets mentioned with a timeout specified by tv_sec and tv_usec\"],socket_send:[\"int socket_send(resource socket, string buf, int len, int flags)\",\"Sends data to a connected socket\"],socket_sendto:[\"int socket_sendto(resource socket, string buf, int len, int flags, string addr [, int port])\",\"Sends a message to a socket, whether it is connected or not\"],socket_set_block:[\"bool socket_set_block(resource socket)\",\"Sets blocking mode on a socket resource\"],socket_set_nonblock:[\"bool socket_set_nonblock(resource socket)\",\"Sets nonblocking mode on a socket resource\"],socket_set_option:[\"bool socket_set_option(resource socket, int level, int optname, int|array optval)\",\"Sets socket options for the socket\"],socket_shutdown:[\"bool socket_shutdown(resource socket[, int how])\",\"Shuts down a socket for receiving, sending, or both.\"],socket_strerror:[\"string socket_strerror(int errno)\",\"Returns a string describing an error\"],socket_write:[\"int socket_write(resource socket, string buf[, int length])\",\"Writes the buffer to the socket resource, length is optional\"],solid_fetch_prev:[\"bool solid_fetch_prev(resource result_id)\",\"\"],sort:[\"bool sort(array &array_arg [, int sort_flags])\",\"Sort an array\"],soundex:[\"string soundex(string str)\",\"Calculate the soundex key of a string\"],spl_autoload:[\"void spl_autoload(string class_name [, string file_extensions])\",\"Default implementation for __autoload()\"],spl_autoload_call:[\"void spl_autoload_call(string class_name)\",\"Try all registerd autoload function to load the requested class\"],spl_autoload_extensions:[\"string spl_autoload_extensions([string file_extensions])\",\"Register and return default file extensions for spl_autoload\"],spl_autoload_functions:[\"false|array spl_autoload_functions()\",\"Return all registered __autoload() functionns\"],spl_autoload_register:['bool spl_autoload_register([mixed autoload_function = \"spl_autoload\" [, throw = true [, prepend]]])',\"Register given function as __autoload() implementation\"],spl_autoload_unregister:[\"bool spl_autoload_unregister(mixed autoload_function)\",\"Unregister given function as __autoload() implementation\"],spl_classes:[\"array spl_classes()\",\"Return an array containing the names of all clsses and interfaces defined in SPL\"],spl_object_hash:[\"string spl_object_hash(object obj)\",\"Return hash id for given object\"],split:[\"array split(string pattern, string string [, int limit])\",\"Split string into array by regular expression\"],spliti:[\"array spliti(string pattern, string string [, int limit])\",\"Split string into array by regular expression case-insensitive\"],sprintf:[\"string sprintf(string format [, mixed arg1 [, mixed ...]])\",\"Return a formatted string\"],sql_regcase:[\"string sql_regcase(string string)\",\"Make regular expression for case insensitive match\"],sqlite_array_query:[\"array sqlite_array_query(resource db, string query [ , int result_type [, bool decode_binary]])\",\"Executes a query against a given database and returns an array of arrays.\"],sqlite_busy_timeout:[\"void sqlite_busy_timeout(resource db, int ms)\",\"Set busy timeout duration. If ms <= 0, all busy handlers are disabled.\"],sqlite_changes:[\"int sqlite_changes(resource db)\",\"Returns the number of rows that were changed by the most recent SQL statement.\"],sqlite_close:[\"void sqlite_close(resource db)\",\"Closes an open sqlite database.\"],sqlite_column:[\"mixed sqlite_column(resource result, mixed index_or_name [, bool decode_binary])\",\"Fetches a column from the current row of a result set.\"],sqlite_create_aggregate:[\"bool sqlite_create_aggregate(resource db, string funcname, mixed step_func, mixed finalize_func[, long num_args])\",\"Registers an aggregate function for queries.\"],sqlite_create_function:[\"bool sqlite_create_function(resource db, string funcname, mixed callback[, long num_args])\",'Registers a \"regular\" function for queries.'],sqlite_current:[\"array sqlite_current(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the current row from a result set as an array.\"],sqlite_error_string:[\"string sqlite_error_string(int error_code)\",\"Returns the textual description of an error code.\"],sqlite_escape_string:[\"string sqlite_escape_string(string item)\",\"Escapes a string for use as a query parameter.\"],sqlite_exec:[\"boolean sqlite_exec(string query, resource db[, string &error_message])\",\"Executes a result-less query against a given database\"],sqlite_factory:[\"object sqlite_factory(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database and creates an object for it. Will create the database if it does not exist.\"],sqlite_fetch_all:[\"array sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]])\",\"Fetches all rows from a result set as an array of arrays.\"],sqlite_fetch_array:[\"array sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the next row from a result set as an array.\"],sqlite_fetch_column_types:[\"resource sqlite_fetch_column_types(string table_name, resource db [, int result_type])\",\"Return an array of column types from a particular table.\"],sqlite_fetch_object:[\"object sqlite_fetch_object(resource result [, string class_name [, NULL|array ctor_params [, bool decode_binary]]])\",\"Fetches the next row from a result set as an object.\"],sqlite_fetch_single:[\"string sqlite_fetch_single(resource result [, bool decode_binary])\",\"Fetches the first column of a result set as a string.\"],sqlite_field_name:[\"string sqlite_field_name(resource result, int field_index)\",\"Returns the name of a particular field of a result set.\"],sqlite_has_prev:[\"bool sqlite_has_prev(resource result)\",\"* Returns whether a previous row is available.\"],sqlite_key:[\"int sqlite_key(resource result)\",\"Return the current row index of a buffered result.\"],sqlite_last_error:[\"int sqlite_last_error(resource db)\",\"Returns the error code of the last error for a database.\"],sqlite_last_insert_rowid:[\"int sqlite_last_insert_rowid(resource db)\",\"Returns the rowid of the most recently inserted row.\"],sqlite_libencoding:[\"string sqlite_libencoding()\",\"Returns the encoding (iso8859 or UTF-8) of the linked SQLite library.\"],sqlite_libversion:[\"string sqlite_libversion()\",\"Returns the version of the linked SQLite library.\"],sqlite_next:[\"bool sqlite_next(resource result)\",\"Seek to the next row number of a result set.\"],sqlite_num_fields:[\"int sqlite_num_fields(resource result)\",\"Returns the number of fields in a result set.\"],sqlite_num_rows:[\"int sqlite_num_rows(resource result)\",\"Returns the number of rows in a buffered result set.\"],sqlite_open:[\"resource sqlite_open(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database. Will create the database if it does not exist.\"],sqlite_popen:[\"resource sqlite_popen(string filename [, int mode [, string &error_message]])\",\"Opens a persistent handle to a SQLite database. Will create the database if it does not exist.\"],sqlite_prev:[\"bool sqlite_prev(resource result)\",\"* Seek to the previous row number of a result set.\"],sqlite_query:[\"resource sqlite_query(string query, resource db [, int result_type [, string &error_message]])\",\"Executes a query against a given database and returns a result handle.\"],sqlite_rewind:[\"bool sqlite_rewind(resource result)\",\"Seek to the first row number of a buffered result set.\"],sqlite_seek:[\"bool sqlite_seek(resource result, int row)\",\"Seek to a particular row number of a buffered result set.\"],sqlite_single_query:[\"array sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]])\",\"Executes a query and returns either an array for one single column or the value of the first row.\"],sqlite_udf_decode_binary:[\"string sqlite_udf_decode_binary(string data)\",\"Decode binary encoding on a string parameter passed to an UDF.\"],sqlite_udf_encode_binary:[\"string sqlite_udf_encode_binary(string data)\",\"Apply binary encoding (if required) to a string to return from an UDF.\"],sqlite_unbuffered_query:[\"resource sqlite_unbuffered_query(string query, resource db [ , int result_type [, string &error_message]])\",\"Executes a query that does not prefetch and buffer all data.\"],sqlite_valid:[\"bool sqlite_valid(resource result)\",\"Returns whether more rows are available.\"],sqrt:[\"float sqrt(float number)\",\"Returns the square root of the number\"],srand:[\"void srand([int seed])\",\"Seeds random number generator\"],sscanf:[\"mixed sscanf(string str, string format [, string ...])\",\"Implements an ANSI C compatible sscanf\"],stat:[\"array stat(string filename)\",\"Give information about a file\"],str_getcsv:[\"array str_getcsv(string input[, string delimiter[, string enclosure[, string escape]]])\",\"Parse a CSV string into an array\"],str_ireplace:[\"mixed str_ireplace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace / case-insensitive\"],str_pad:[\"string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])\",\"Returns input string padded on the left or right to specified length with pad_string\"],str_repeat:[\"string str_repeat(string input, int mult)\",\"Returns the input string repeat mult times\"],str_replace:[\"mixed str_replace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace\"],str_rot13:[\"string str_rot13(string str)\",\"Perform the rot13 transform on a string\"],str_shuffle:[\"void str_shuffle(string str)\",\"Shuffles string. One permutation of all possible is created\"],str_split:[\"array str_split(string str [, int split_length])\",\"Convert a string to an array. If split_length is specified, break the string down into chunks each split_length characters long.\"],str_word_count:[\"mixed str_word_count(string str, [int format [, string charlist]])\",'Counts the number of words inside a string. If format of 1 is specified,     then the function will return an array containing all the words     found inside the string. If format of 2 is specified, then the function     will return an associated array where the position of the word is the key     and the word itself is the value.          For the purpose of this function, \\'word\\' is defined as a locale dependent     string containing alphabetic characters, which also may contain, but not start     with \"\\'\" and \"-\" characters.'],strcasecmp:[\"int strcasecmp(string str1, string str2)\",\"Binary safe case-insensitive string comparison\"],strchr:[\"string strchr(string haystack, string needle)\",\"An alias for strstr\"],strcmp:[\"int strcmp(string str1, string str2)\",\"Binary safe string comparison\"],strcoll:[\"int strcoll(string str1, string str2)\",\"Compares two strings using the current locale\"],strcspn:[\"int strcspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters not found in mask. If start or/and length is provide works like strcspn(substr($s,$start,$len),$bad_chars)\"],stream_bucket_append:[\"void stream_bucket_append(resource brigade, resource bucket)\",\"Append bucket to brigade\"],stream_bucket_make_writeable:[\"object stream_bucket_make_writeable(resource brigade)\",\"Return a bucket object from the brigade for operating on\"],stream_bucket_new:[\"resource stream_bucket_new(resource stream, string buffer)\",\"Create a new bucket for use on the current stream\"],stream_bucket_prepend:[\"void stream_bucket_prepend(resource brigade, resource bucket)\",\"Prepend bucket to brigade\"],stream_context_create:[\"resource stream_context_create([array options[, array params]])\",\"Create a file context and optionally set parameters\"],stream_context_get_default:[\"resource stream_context_get_default([array options])\",\"Get a handle on the default file/stream context and optionally set parameters\"],stream_context_get_options:[\"array stream_context_get_options(resource context|resource stream)\",\"Retrieve options for a stream/wrapper/context\"],stream_context_get_params:[\"array stream_context_get_params(resource context|resource stream)\",\"Get parameters of a file context\"],stream_context_set_default:[\"resource stream_context_set_default(array options)\",\"Set default file/stream context, returns the context as a resource\"],stream_context_set_option:[\"bool stream_context_set_option(resource context|resource stream, string wrappername, string optionname, mixed value)\",\"Set an option for a wrapper\"],stream_context_set_params:[\"bool stream_context_set_params(resource context|resource stream, array options)\",\"Set parameters for a file context\"],stream_copy_to_stream:[\"long stream_copy_to_stream(resource source, resource dest [, long maxlen [, long pos]])\",\"Reads up to maxlen bytes from source stream and writes them to dest stream.\"],stream_filter_append:[\"resource stream_filter_append(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Append a filter to a stream\"],stream_filter_prepend:[\"resource stream_filter_prepend(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Prepend a filter to a stream\"],stream_filter_register:[\"bool stream_filter_register(string filtername, string classname)\",\"Registers a custom filter handler class\"],stream_filter_remove:[\"bool stream_filter_remove(resource stream_filter)\",\"Flushes any data in the filter's internal buffer, removes it from the chain, and frees the resource\"],stream_get_contents:[\"string stream_get_contents(resource source [, long maxlen [, long offset]])\",\"Reads all remaining bytes (or up to maxlen bytes) from a stream and returns them as a string.\"],stream_get_filters:[\"array stream_get_filters(void)\",\"Returns a list of registered filters\"],stream_get_line:[\"string stream_get_line(resource stream, int maxlen [, string ending])\",\"Read up to maxlen bytes from a stream or until the ending string is found\"],stream_get_meta_data:[\"array stream_get_meta_data(resource fp)\",\"Retrieves header/meta data from streams/file pointers\"],stream_get_transports:[\"array stream_get_transports()\",\"Retrieves list of registered socket transports\"],stream_get_wrappers:[\"array stream_get_wrappers()\",\"Retrieves list of registered stream wrappers\"],stream_is_local:[\"bool stream_is_local(resource stream|string url)\",\"\"],stream_resolve_include_path:[\"string stream_resolve_include_path(string filename)\",\"Determine what file will be opened by calls to fopen() with a relative path\"],stream_select:[\"int stream_select(array &read_streams, array &write_streams, array &except_streams, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets of streams with a timeout specified by tv_sec and tv_usec\"],stream_set_blocking:[\"bool stream_set_blocking(resource socket, int mode)\",\"Set blocking/non-blocking mode on a socket or stream\"],stream_set_timeout:[\"bool stream_set_timeout(resource stream, int seconds [, int microseconds])\",\"Set timeout on stream read to seconds + microseonds\"],stream_set_write_buffer:[\"int stream_set_write_buffer(resource fp, int buffer)\",\"Set file write buffer\"],stream_socket_accept:[\"resource stream_socket_accept(resource serverstream, [ double timeout [, string &peername ]])\",\"Accept a client connection from a server socket\"],stream_socket_client:[\"resource stream_socket_client(string remoteaddress [, long &errcode [, string &errstring [, double timeout [, long flags [, resource context]]]]])\",\"Open a client connection to a remote address\"],stream_socket_enable_crypto:[\"int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]])\",\"Enable or disable a specific kind of crypto on the stream\"],stream_socket_get_name:[\"string stream_socket_get_name(resource stream, bool want_peer)\",\"Returns either the locally bound or remote name for a socket stream\"],stream_socket_pair:[\"array stream_socket_pair(int domain, int type, int protocol)\",\"Creates a pair of connected, indistinguishable socket streams\"],stream_socket_recvfrom:[\"string stream_socket_recvfrom(resource stream, long amount [, long flags [, string &remote_addr]])\",\"Receives data from a socket stream\"],stream_socket_sendto:[\"long stream_socket_sendto(resouce stream, string data [, long flags [, string target_addr]])\",\"Send data to a socket stream.  If target_addr is specified it must be in dotted quad (or [ipv6]) format\"],stream_socket_server:[\"resource stream_socket_server(string localaddress [, long &errcode [, string &errstring [, long flags [, resource context]]]])\",\"Create a server socket bound to localaddress\"],stream_socket_shutdown:[\"int stream_socket_shutdown(resource stream, int how)\",\"causes all or part of a full-duplex connection on the socket associated  with stream to be shut down.  If how is SHUT_RD,  further receptions will  be disallowed. If how is SHUT_WR, further transmissions will be disallowed.  If how is SHUT_RDWR,  further  receptions and transmissions will be  disallowed.\"],stream_supports_lock:[\"bool stream_supports_lock(resource stream)\",\"Tells whether the stream supports locking through flock().\"],stream_wrapper_register:[\"bool stream_wrapper_register(string protocol, string classname[, integer flags])\",\"Registers a custom URL protocol handler class\"],stream_wrapper_restore:[\"bool stream_wrapper_restore(string protocol)\",\"Restore the original protocol handler, overriding if necessary\"],stream_wrapper_unregister:[\"bool stream_wrapper_unregister(string protocol)\",\"Unregister a wrapper for the life of the current request.\"],strftime:[\"string strftime(string format [, int timestamp])\",\"Format a local time/date according to locale settings\"],strip_tags:[\"string strip_tags(string str [, string allowable_tags])\",\"Strips HTML and PHP tags from a string\"],stripcslashes:[\"string stripcslashes(string str)\",\"Strips backslashes from a string. Uses C-style conventions\"],stripos:[\"int stripos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another, case insensitive\"],stripslashes:[\"string stripslashes(string str)\",\"Strips backslashes from a string\"],stristr:[\"string stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another, case insensitive\"],strlen:[\"int strlen(string str)\",\"Get string length\"],strnatcasecmp:[\"int strnatcasecmp(string s1, string s2)\",\"Returns the result of case-insensitive string comparison using 'natural' algorithm\"],strnatcmp:[\"int strnatcmp(string s1, string s2)\",\"Returns the result of string comparison using 'natural' algorithm\"],strncasecmp:[\"int strncasecmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strncmp:[\"int strncmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strpbrk:[\"array strpbrk(string haystack, string char_list)\",\"Search a string for any of a set of characters\"],strpos:[\"int strpos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another\"],strptime:[\"string strptime(string timestamp, string format)\",\"Parse a time/date generated with strftime()\"],strrchr:[\"string strrchr(string haystack, string needle)\",\"Finds the last occurrence of a character in a string within another\"],strrev:[\"string strrev(string str)\",\"Reverse a string\"],strripos:[\"int strripos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strrpos:[\"int strrpos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strspn:[\"int strspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters found in mask. If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)\"],strstr:[\"string strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],strtok:[\"string strtok([string str,] string token)\",\"Tokenize a string\"],strtolower:[\"string strtolower(string str)\",\"Makes a string lowercase\"],strtotime:[\"int strtotime(string time [, int now ])\",\"Convert string representation of date and time to a timestamp\"],strtoupper:[\"string strtoupper(string str)\",\"Makes a string uppercase\"],strtr:[\"string strtr(string str, string from[, string to])\",\"Translates characters in str using given translation tables\"],strval:[\"string strval(mixed var)\",\"Get the string value of a variable\"],substr:[\"string substr(string str, int start [, int length])\",\"Returns part of a string\"],substr_compare:[\"int substr_compare(string main_str, string str, int offset [, int length [, bool case_sensitivity]])\",\"Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters\"],substr_count:[\"int substr_count(string haystack, string needle [, int offset [, int length]])\",\"Returns the number of times a substring occurs in the string\"],substr_replace:[\"mixed substr_replace(mixed str, mixed repl, mixed start [, mixed length])\",\"Replaces part of a string with another string\"],sybase_affected_rows:[\"int sybase_affected_rows([resource link_id])\",\"Get number of affected rows in last query\"],sybase_close:[\"bool sybase_close([resource link_id])\",\"Close Sybase connection\"],sybase_connect:[\"int sybase_connect([string host [, string user [, string password [, string charset [, string appname [, bool new]]]]]])\",\"Open Sybase server connection\"],sybase_data_seek:[\"bool sybase_data_seek(resource result, int offset)\",\"Move internal row pointer\"],sybase_deadlock_retry_count:[\"void sybase_deadlock_retry_count(int retry_count)\",\"Sets deadlock retry count\"],sybase_fetch_array:[\"array sybase_fetch_array(resource result)\",\"Fetch row as array\"],sybase_fetch_assoc:[\"array sybase_fetch_assoc(resource result)\",\"Fetch row as array without numberic indices\"],sybase_fetch_field:[\"object sybase_fetch_field(resource result [, int offset])\",\"Get field information\"],sybase_fetch_object:[\"object sybase_fetch_object(resource result [, mixed object])\",\"Fetch row as object\"],sybase_fetch_row:[\"array sybase_fetch_row(resource result)\",\"Get row as enumerated array\"],sybase_field_seek:[\"bool sybase_field_seek(resource result, int offset)\",\"Set field offset\"],sybase_free_result:[\"bool sybase_free_result(resource result)\",\"Free result memory\"],sybase_get_last_message:[\"string sybase_get_last_message(void)\",\"Returns the last message from server (over min_message_severity)\"],sybase_min_client_severity:[\"void sybase_min_client_severity(int severity)\",\"Sets minimum client severity\"],sybase_min_server_severity:[\"void sybase_min_server_severity(int severity)\",\"Sets minimum server severity\"],sybase_num_fields:[\"int sybase_num_fields(resource result)\",\"Get number of fields in result\"],sybase_num_rows:[\"int sybase_num_rows(resource result)\",\"Get number of rows in result\"],sybase_pconnect:[\"int sybase_pconnect([string host [, string user [, string password [, string charset [, string appname]]]]])\",\"Open persistent Sybase connection\"],sybase_query:[\"int sybase_query(string query [, resource link_id])\",\"Send Sybase query\"],sybase_result:[\"string sybase_result(resource result, int row, mixed field)\",\"Get result data\"],sybase_select_db:[\"bool sybase_select_db(string database [, resource link_id])\",\"Select Sybase database\"],sybase_set_message_handler:[\"bool sybase_set_message_handler(mixed error_func [, resource connection])\",\"Set the error handler, to be called when a server message is raised.     If error_func is NULL the handler will be deleted\"],sybase_unbuffered_query:[\"int sybase_unbuffered_query(string query [, resource link_id])\",\"Send Sybase query\"],symlink:[\"int symlink(string target, string link)\",\"Create a symbolic link\"],sys_get_temp_dir:[\"string sys_get_temp_dir()\",\"Returns directory path used for temporary files\"],sys_getloadavg:[\"array sys_getloadavg()\",\"\"],syslog:[\"bool syslog(int priority, string message)\",\"Generate a system log message\"],system:[\"int system(string command [, int &return_value])\",\"Execute an external program and display output\"],tan:[\"float tan(float number)\",\"Returns the tangent of the number in radians\"],tanh:[\"float tanh(float number)\",\"Returns the hyperbolic tangent of the number, defined as sinh(number)/cosh(number)\"],tempnam:[\"string tempnam(string dir, string prefix)\",\"Create a unique filename in a directory\"],textdomain:[\"string textdomain(string domain)\",'Set the textdomain to \"domain\". Returns the current domain'],tidy_access_count:[\"int tidy_access_count()\",\"Returns the Number of Tidy accessibility warnings encountered for specified document.\"],tidy_clean_repair:[\"boolean tidy_clean_repair()\",\"Execute configured cleanup and repair operations on parsed markup\"],tidy_config_count:[\"int tidy_config_count()\",\"Returns the Number of Tidy configuration errors encountered for specified document.\"],tidy_diagnose:[\"boolean tidy_diagnose()\",\"Run configured diagnostics on parsed and repaired markup.\"],tidy_error_count:[\"int tidy_error_count()\",\"Returns the Number of Tidy errors encountered for specified document.\"],tidy_get_body:[\"TidyNode tidy_get_body(resource tidy)\",\"Returns a TidyNode Object starting from the <BODY> tag of the tidy parse tree\"],tidy_get_config:[\"array tidy_get_config()\",\"Get current Tidy configuarion\"],tidy_get_error_buffer:[\"string tidy_get_error_buffer([boolean detailed])\",\"Return warnings and errors which occured parsing the specified document\"],tidy_get_head:[\"TidyNode tidy_get_head()\",\"Returns a TidyNode Object starting from the <HEAD> tag of the tidy parse tree\"],tidy_get_html:[\"TidyNode tidy_get_html()\",\"Returns a TidyNode Object starting from the <HTML> tag of the tidy parse tree\"],tidy_get_html_ver:[\"int tidy_get_html_ver()\",\"Get the Detected HTML version for the specified document.\"],tidy_get_opt_doc:[\"string tidy_get_opt_doc(tidy resource, string optname)\",\"Returns the documentation for the given option name\"],tidy_get_output:[\"string tidy_get_output()\",\"Return a string representing the parsed tidy markup\"],tidy_get_release:[\"string tidy_get_release()\",\"Get release date (version) for Tidy library\"],tidy_get_root:[\"TidyNode tidy_get_root()\",\"Returns a TidyNode Object representing the root of the tidy parse tree\"],tidy_get_status:[\"int tidy_get_status()\",\"Get status of specfied document.\"],tidy_getopt:[\"mixed tidy_getopt(string option)\",\"Returns the value of the specified configuration option for the tidy document.\"],tidy_is_xhtml:[\"boolean tidy_is_xhtml()\",\"Indicates if the document is a XHTML document.\"],tidy_is_xml:[\"boolean tidy_is_xml()\",\"Indicates if the document is a generic (non HTML/XHTML) XML document.\"],tidy_parse_file:[\"boolean tidy_parse_file(string file [, mixed config_options [, string encoding [, bool use_include_path]]])\",\"Parse markup in file or URI\"],tidy_parse_string:[\"bool tidy_parse_string(string input [, mixed config_options [, string encoding]])\",\"Parse a document stored in a string\"],tidy_repair_file:[\"boolean tidy_repair_file(string filename [, mixed config_file [, string encoding [, bool use_include_path]]])\",\"Repair a file using an optionally provided configuration file\"],tidy_repair_string:[\"boolean tidy_repair_string(string data [, mixed config_file [, string encoding]])\",\"Repair a string using an optionally provided configuration file\"],tidy_warning_count:[\"int tidy_warning_count()\",\"Returns the Number of Tidy warnings encountered for specified document.\"],time:[\"int time(void)\",\"Return current UNIX timestamp\"],time_nanosleep:[\"mixed time_nanosleep(long seconds, long nanoseconds)\",\"Delay for a number of seconds and nano seconds\"],time_sleep_until:[\"mixed time_sleep_until(float timestamp)\",\"Make the script sleep until the specified time\"],timezone_abbreviations_list:[\"array timezone_abbreviations_list()\",\"Returns associative array containing dst, offset and the timezone name\"],timezone_identifiers_list:[\"array timezone_identifiers_list([long what[, string country]])\",\"Returns numerically index array with all timezone identifiers.\"],timezone_location_get:[\"array timezone_location_get()\",\"Returns location information for a timezone, including country code, latitude/longitude and comments\"],timezone_name_from_abbr:[\"string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]])\",\"Returns the timezone name from abbrevation\"],timezone_name_get:[\"string timezone_name_get(DateTimeZone object)\",\"Returns the name of the timezone.\"],timezone_offset_get:[\"long timezone_offset_get(DateTimeZone object, DateTime object)\",\"Returns the timezone offset.\"],timezone_open:[\"DateTimeZone timezone_open(string timezone)\",\"Returns new DateTimeZone object\"],timezone_transitions_get:[\"array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]])\",\"Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone.\"],timezone_version_get:[\"array timezone_version_get()\",\"Returns the Olson database version number.\"],tmpfile:[\"resource tmpfile(void)\",\"Create a temporary file that will be deleted automatically after use\"],token_get_all:[\"array token_get_all(string source)\",\"\"],token_name:[\"string token_name(int type)\",\"\"],touch:[\"bool touch(string filename [, int time [, int atime]])\",\"Set modification time of file\"],trigger_error:[\"void trigger_error(string messsage [, int error_type])\",\"Generates a user-level error/warning/notice message\"],trim:[\"string trim(string str [, string character_mask])\",\"Strips whitespace from the beginning and end of a string\"],uasort:[\"bool uasort(array array_arg, string cmp_function)\",\"Sort an array with a user-defined comparison function and maintain index association\"],ucfirst:[\"string ucfirst(string str)\",\"Make a string's first character lowercase\"],ucwords:[\"string ucwords(string str)\",\"Uppercase the first character of every word in a string\"],uksort:[\"bool uksort(array array_arg, string cmp_function)\",\"Sort an array by keys using a user-defined comparison function\"],umask:[\"int umask([int mask])\",\"Return or change the umask\"],uniqid:[\"string uniqid([string prefix [, bool more_entropy]])\",\"Generates a unique ID\"],unixtojd:[\"int unixtojd([int timestamp])\",\"Convert UNIX timestamp to Julian Day\"],unlink:[\"bool unlink(string filename[, context context])\",\"Delete a file\"],unpack:[\"array unpack(string format, string input)\",\"Unpack binary string into named array elements according to format argument\"],unregister_tick_function:[\"void unregister_tick_function(string function_name)\",\"Unregisters a tick callback function\"],unserialize:[\"mixed unserialize(string variable_representation)\",\"Takes a string representation of variable and recreates it\"],unset:[\"void unset (mixed var [, mixed var])\",\"Unset a given variable\"],urldecode:[\"string urldecode(string str)\",\"Decodes URL-encoded string\"],urlencode:[\"string urlencode(string str)\",\"URL-encodes string\"],usleep:[\"void usleep(int micro_seconds)\",\"Delay for a given number of micro seconds\"],usort:[\"bool usort(array array_arg, string cmp_function)\",\"Sort an array by values using a user-defined comparison function\"],utf8_decode:[\"string utf8_decode(string data)\",\"Converts a UTF-8 encoded string to ISO-8859-1\"],utf8_encode:[\"string utf8_encode(string data)\",\"Encodes an ISO-8859-1 string to UTF-8\"],var_dump:[\"void var_dump(mixed var)\",\"Dumps a string representation of variable to output\"],var_export:[\"mixed var_export(mixed var [, bool return])\",\"Outputs or returns a string representation of a variable\"],variant_abs:[\"mixed variant_abs(mixed left)\",\"Returns the absolute value of a variant\"],variant_add:[\"mixed variant_add(mixed left, mixed right)\",'\"Adds\" two variant values together and returns the result'],variant_and:[\"mixed variant_and(mixed left, mixed right)\",\"performs a bitwise AND operation between two variants and returns the result\"],variant_cast:[\"object variant_cast(object variant, int type)\",\"Convert a variant into a new variant object of another type\"],variant_cat:[\"mixed variant_cat(mixed left, mixed right)\",\"concatenates two variant values together and returns the result\"],variant_cmp:[\"int variant_cmp(mixed left, mixed right [, int lcid [, int flags]])\",\"Compares two variants\"],variant_date_from_timestamp:[\"object variant_date_from_timestamp(int timestamp)\",\"Returns a variant date representation of a unix timestamp\"],variant_date_to_timestamp:[\"int variant_date_to_timestamp(object variant)\",\"Converts a variant date/time value to unix timestamp\"],variant_div:[\"mixed variant_div(mixed left, mixed right)\",\"Returns the result from dividing two variants\"],variant_eqv:[\"mixed variant_eqv(mixed left, mixed right)\",\"Performs a bitwise equivalence on two variants\"],variant_fix:[\"mixed variant_fix(mixed left)\",\"Returns the integer part ? of a variant\"],variant_get_type:[\"int variant_get_type(object variant)\",\"Returns the VT_XXX type code for a variant\"],variant_idiv:[\"mixed variant_idiv(mixed left, mixed right)\",\"Converts variants to integers and then returns the result from dividing them\"],variant_imp:[\"mixed variant_imp(mixed left, mixed right)\",\"Performs a bitwise implication on two variants\"],variant_int:[\"mixed variant_int(mixed left)\",\"Returns the integer portion of a variant\"],variant_mod:[\"mixed variant_mod(mixed left, mixed right)\",\"Divides two variants and returns only the remainder\"],variant_mul:[\"mixed variant_mul(mixed left, mixed right)\",\"multiplies the values of the two variants and returns the result\"],variant_neg:[\"mixed variant_neg(mixed left)\",\"Performs logical negation on a variant\"],variant_not:[\"mixed variant_not(mixed left)\",\"Performs bitwise not negation on a variant\"],variant_or:[\"mixed variant_or(mixed left, mixed right)\",\"Performs a logical disjunction on two variants\"],variant_pow:[\"mixed variant_pow(mixed left, mixed right)\",\"Returns the result of performing the power function with two variants\"],variant_round:[\"mixed variant_round(mixed left, int decimals)\",\"Rounds a variant to the specified number of decimal places\"],variant_set:[\"void variant_set(object variant, mixed value)\",\"Assigns a new value for a variant object\"],variant_set_type:[\"void variant_set_type(object variant, int type)\",'Convert a variant into another type.  Variant is modified \"in-place\"'],variant_sub:[\"mixed variant_sub(mixed left, mixed right)\",\"subtracts the value of the right variant from the left variant value and returns the result\"],variant_xor:[\"mixed variant_xor(mixed left, mixed right)\",\"Performs a logical exclusion on two variants\"],version_compare:[\"int version_compare(string ver1, string ver2 [, string oper])\",'Compares two \"PHP-standardized\" version number strings'],vfprintf:[\"int vfprintf(resource stream, string format, array args)\",\"Output a formatted string into a stream\"],virtual:[\"bool virtual(string filename)\",\"Perform an Apache sub-request\"],vprintf:[\"int vprintf(string format, array args)\",\"Output a formatted string\"],vsprintf:[\"string vsprintf(string format, array args)\",\"Return a formatted string\"],wddx_add_vars:[\"int wddx_add_vars(resource packet_id,  mixed var_names [, mixed ...])\",\"Serializes given variables and adds them to packet given by packet_id\"],wddx_deserialize:[\"mixed wddx_deserialize(mixed packet)\",\"Deserializes given packet and returns a PHP value\"],wddx_packet_end:[\"string wddx_packet_end(resource packet_id)\",\"Ends specified WDDX packet and returns the string containing the packet\"],wddx_packet_start:[\"resource wddx_packet_start([string comment])\",\"Starts a WDDX packet with optional comment and returns the packet id\"],wddx_serialize_value:[\"string wddx_serialize_value(mixed var [, string comment])\",\"Creates a new packet and serializes the given value\"],wddx_serialize_vars:[\"string wddx_serialize_vars(mixed var_name [, mixed ...])\",\"Creates a new packet and serializes given variables into a struct\"],wordwrap:[\"string wordwrap(string str [, int width [, string break [, boolean cut]]])\",\"Wraps buffer to selected number of characters using string break char\"],xml_error_string:[\"string xml_error_string(int code)\",\"Get XML parser error string\"],xml_get_current_byte_index:[\"int xml_get_current_byte_index(resource parser)\",\"Get current byte index for an XML parser\"],xml_get_current_column_number:[\"int xml_get_current_column_number(resource parser)\",\"Get current column number for an XML parser\"],xml_get_current_line_number:[\"int xml_get_current_line_number(resource parser)\",\"Get current line number for an XML parser\"],xml_get_error_code:[\"int xml_get_error_code(resource parser)\",\"Get XML parser error code\"],xml_parse:[\"int xml_parse(resource parser, string data [, int isFinal])\",\"Start parsing an XML document\"],xml_parse_into_struct:[\"int xml_parse_into_struct(resource parser, string data, array &values [, array &index ])\",\"Parsing a XML document\"],xml_parser_create:[\"resource xml_parser_create([string encoding])\",\"Create an XML parser\"],xml_parser_create_ns:[\"resource xml_parser_create_ns([string encoding [, string sep]])\",\"Create an XML parser\"],xml_parser_free:[\"int xml_parser_free(resource parser)\",\"Free an XML parser\"],xml_parser_get_option:[\"int xml_parser_get_option(resource parser, int option)\",\"Get options from an XML parser\"],xml_parser_set_option:[\"int xml_parser_set_option(resource parser, int option, mixed value)\",\"Set options in an XML parser\"],xml_set_character_data_handler:[\"int xml_set_character_data_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_default_handler:[\"int xml_set_default_handler(resource parser, string hdl)\",\"Set up default handler\"],xml_set_element_handler:[\"int xml_set_element_handler(resource parser, string shdl, string ehdl)\",\"Set up start and end element handlers\"],xml_set_end_namespace_decl_handler:[\"int xml_set_end_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_external_entity_ref_handler:[\"int xml_set_external_entity_ref_handler(resource parser, string hdl)\",\"Set up external entity reference handler\"],xml_set_notation_decl_handler:[\"int xml_set_notation_decl_handler(resource parser, string hdl)\",\"Set up notation declaration handler\"],xml_set_object:[\"int xml_set_object(resource parser, object &obj)\",\"Set up object which should be used for callbacks\"],xml_set_processing_instruction_handler:[\"int xml_set_processing_instruction_handler(resource parser, string hdl)\",\"Set up processing instruction (PI) handler\"],xml_set_start_namespace_decl_handler:[\"int xml_set_start_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_unparsed_entity_decl_handler:[\"int xml_set_unparsed_entity_decl_handler(resource parser, string hdl)\",\"Set up unparsed entity declaration handler\"],xmlrpc_decode:[\"array xmlrpc_decode(string xml [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_decode_request:[\"array xmlrpc_decode_request(string xml, string& method [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_encode:[\"string xmlrpc_encode(mixed value)\",\"Generates XML for a PHP value\"],xmlrpc_encode_request:[\"string xmlrpc_encode_request(string method, mixed params [, array output_options])\",\"Generates XML for a method request\"],xmlrpc_get_type:[\"string xmlrpc_get_type(mixed value)\",\"Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings\"],xmlrpc_is_fault:[\"bool xmlrpc_is_fault(array)\",\"Determines if an array value represents an XMLRPC fault.\"],xmlrpc_parse_method_descriptions:[\"array xmlrpc_parse_method_descriptions(string xml)\",\"Decodes XML into a list of method descriptions\"],xmlrpc_server_add_introspection_data:[\"int xmlrpc_server_add_introspection_data(resource server, array desc)\",\"Adds introspection documentation\"],xmlrpc_server_call_method:[\"mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])\",\"Parses XML requests and call methods\"],xmlrpc_server_create:[\"resource xmlrpc_server_create(void)\",\"Creates an xmlrpc server\"],xmlrpc_server_destroy:[\"int xmlrpc_server_destroy(resource server)\",\"Destroys server resources\"],xmlrpc_server_register_introspection_callback:[\"bool xmlrpc_server_register_introspection_callback(resource server, string function)\",\"Register a PHP function to generate documentation\"],xmlrpc_server_register_method:[\"bool xmlrpc_server_register_method(resource server, string method_name, string function)\",\"Register a PHP function to handle method matching method_name\"],xmlrpc_set_type:[\"bool xmlrpc_set_type(string value, string type)\",\"Sets xmlrpc type, base64 or datetime, for a PHP string value\"],xmlwriter_end_attribute:[\"bool xmlwriter_end_attribute(resource xmlwriter)\",\"End attribute - returns FALSE on error\"],xmlwriter_end_cdata:[\"bool xmlwriter_end_cdata(resource xmlwriter)\",\"End current CDATA - returns FALSE on error\"],xmlwriter_end_comment:[\"bool xmlwriter_end_comment(resource xmlwriter)\",\"Create end comment - returns FALSE on error\"],xmlwriter_end_document:[\"bool xmlwriter_end_document(resource xmlwriter)\",\"End current document - returns FALSE on error\"],xmlwriter_end_dtd:[\"bool xmlwriter_end_dtd(resource xmlwriter)\",\"End current DTD - returns FALSE on error\"],xmlwriter_end_dtd_attlist:[\"bool xmlwriter_end_dtd_attlist(resource xmlwriter)\",\"End current DTD AttList - returns FALSE on error\"],xmlwriter_end_dtd_element:[\"bool xmlwriter_end_dtd_element(resource xmlwriter)\",\"End current DTD element - returns FALSE on error\"],xmlwriter_end_dtd_entity:[\"bool xmlwriter_end_dtd_entity(resource xmlwriter)\",\"End current DTD Entity - returns FALSE on error\"],xmlwriter_end_element:[\"bool xmlwriter_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_end_pi:[\"bool xmlwriter_end_pi(resource xmlwriter)\",\"End current PI - returns FALSE on error\"],xmlwriter_flush:[\"mixed xmlwriter_flush(resource xmlwriter [,bool empty])\",\"Output current buffer\"],xmlwriter_full_end_element:[\"bool xmlwriter_full_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_open_memory:[\"resource xmlwriter_open_memory()\",\"Create new xmlwriter using memory for string output\"],xmlwriter_open_uri:[\"resource xmlwriter_open_uri(resource xmlwriter, string source)\",\"Create new xmlwriter using source uri for output\"],xmlwriter_output_memory:[\"string xmlwriter_output_memory(resource xmlwriter [,bool flush])\",\"Output current buffer as string\"],xmlwriter_set_indent:[\"bool xmlwriter_set_indent(resource xmlwriter, bool indent)\",\"Toggle indentation on/off - returns FALSE on error\"],xmlwriter_set_indent_string:[\"bool xmlwriter_set_indent_string(resource xmlwriter, string indentString)\",\"Set string used for indenting - returns FALSE on error\"],xmlwriter_start_attribute:[\"bool xmlwriter_start_attribute(resource xmlwriter, string name)\",\"Create start attribute - returns FALSE on error\"],xmlwriter_start_attribute_ns:[\"bool xmlwriter_start_attribute_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced attribute - returns FALSE on error\"],xmlwriter_start_cdata:[\"bool xmlwriter_start_cdata(resource xmlwriter)\",\"Create start CDATA tag - returns FALSE on error\"],xmlwriter_start_comment:[\"bool xmlwriter_start_comment(resource xmlwriter)\",\"Create start comment - returns FALSE on error\"],xmlwriter_start_document:[\"bool xmlwriter_start_document(resource xmlwriter, string version, string encoding, string standalone)\",\"Create document tag - returns FALSE on error\"],xmlwriter_start_dtd:[\"bool xmlwriter_start_dtd(resource xmlwriter, string name, string pubid, string sysid)\",\"Create start DTD tag - returns FALSE on error\"],xmlwriter_start_dtd_attlist:[\"bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)\",\"Create start DTD AttList - returns FALSE on error\"],xmlwriter_start_dtd_element:[\"bool xmlwriter_start_dtd_element(resource xmlwriter, string name)\",\"Create start DTD element - returns FALSE on error\"],xmlwriter_start_dtd_entity:[\"bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam)\",\"Create start DTD Entity - returns FALSE on error\"],xmlwriter_start_element:[\"bool xmlwriter_start_element(resource xmlwriter, string name)\",\"Create start element tag - returns FALSE on error\"],xmlwriter_start_element_ns:[\"bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced element tag - returns FALSE on error\"],xmlwriter_start_pi:[\"bool xmlwriter_start_pi(resource xmlwriter, string target)\",\"Create start PI tag - returns FALSE on error\"],xmlwriter_text:[\"bool xmlwriter_text(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xmlwriter_write_attribute:[\"bool xmlwriter_write_attribute(resource xmlwriter, string name, string content)\",\"Write full attribute - returns FALSE on error\"],xmlwriter_write_attribute_ns:[\"bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content)\",\"Write full namespaced attribute - returns FALSE on error\"],xmlwriter_write_cdata:[\"bool xmlwriter_write_cdata(resource xmlwriter, string content)\",\"Write full CDATA tag - returns FALSE on error\"],xmlwriter_write_comment:[\"bool xmlwriter_write_comment(resource xmlwriter, string content)\",\"Write full comment tag - returns FALSE on error\"],xmlwriter_write_dtd:[\"bool xmlwriter_write_dtd(resource xmlwriter, string name, string pubid, string sysid, string subset)\",\"Write full DTD tag - returns FALSE on error\"],xmlwriter_write_dtd_attlist:[\"bool xmlwriter_write_dtd_attlist(resource xmlwriter, string name, string content)\",\"Write full DTD AttList tag - returns FALSE on error\"],xmlwriter_write_dtd_element:[\"bool xmlwriter_write_dtd_element(resource xmlwriter, string name, string content)\",\"Write full DTD element tag - returns FALSE on error\"],xmlwriter_write_dtd_entity:[\"bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, int pe [, string pubid [, string sysid [, string ndataid]]]])\",\"Write full DTD Entity tag - returns FALSE on error\"],xmlwriter_write_element:[\"bool xmlwriter_write_element(resource xmlwriter, string name[, string content])\",\"Write full element tag - returns FALSE on error\"],xmlwriter_write_element_ns:[\"bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content])\",\"Write full namesapced element tag - returns FALSE on error\"],xmlwriter_write_pi:[\"bool xmlwriter_write_pi(resource xmlwriter, string target, string content)\",\"Write full PI tag - returns FALSE on error\"],xmlwriter_write_raw:[\"bool xmlwriter_write_raw(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xsl_xsltprocessor_get_parameter:[\"string xsl_xsltprocessor_get_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_has_exslt_support:[\"bool xsl_xsltprocessor_has_exslt_support();\",\"\"],xsl_xsltprocessor_import_stylesheet:[\"void xsl_xsltprocessor_import_stylesheet(domdocument doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_register_php_functions:[\"void xsl_xsltprocessor_register_php_functions([mixed $restrict]);\",\"\"],xsl_xsltprocessor_remove_parameter:[\"bool xsl_xsltprocessor_remove_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_set_parameter:[\"bool xsl_xsltprocessor_set_parameter(string namespace, mixed name [, string value]);\",\"\"],xsl_xsltprocessor_set_profiling:[\"bool xsl_xsltprocessor_set_profiling(string filename) */\",'PHP_FUNCTION(xsl_xsltprocessor_set_profiling) {  zval *id;  xsl_object *intern;  char *filename = NULL;  int filename_len;  DOM_GET_THIS(id);   if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s!\", &filename, &filename_len) == SUCCESS) {   intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);   if (intern->profiling) {    efree(intern->profiling);   }   if (filename != NULL) {    intern->profiling = estrndup(filename,filename_len);   } else {    intern->profiling = NULL;   }   RETURN_TRUE;  } else {   WRONG_PARAM_COUNT;  } } /* }}} end xsl_xsltprocessor_set_profiling'],xsl_xsltprocessor_transform_to_doc:[\"domdocument xsl_xsltprocessor_transform_to_doc(domnode doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_transform_to_uri:[\"int xsl_xsltprocessor_transform_to_uri(domdocument doc, string uri);\",\"\"],xsl_xsltprocessor_transform_to_xml:[\"string xsl_xsltprocessor_transform_to_xml(domdocument doc);\",\"\"],zend_logo_guid:[\"string zend_logo_guid(void)\",\"Return the special ID used to request the Zend logo in phpinfo screens\"],zend_version:[\"string zend_version(void)\",\"Get the version of the Zend Engine\"],zip_close:[\"void zip_close(resource zip)\",\"Close a Zip archive\"],zip_entry_close:[\"void zip_entry_close(resource zip_ent)\",\"Close a zip entry\"],zip_entry_compressedsize:[\"int zip_entry_compressedsize(resource zip_entry)\",\"Return the compressed size of a ZZip entry\"],zip_entry_compressionmethod:[\"string zip_entry_compressionmethod(resource zip_entry)\",\"Return a string containing the compression method used on a particular entry\"],zip_entry_filesize:[\"int zip_entry_filesize(resource zip_entry)\",\"Return the actual filesize of a ZZip entry\"],zip_entry_name:[\"string zip_entry_name(resource zip_entry)\",\"Return the name given a ZZip entry\"],zip_entry_open:[\"bool zip_entry_open(resource zip_dp, resource zip_entry [, string mode])\",\"Open a Zip File, pointed by the resource entry\"],zip_entry_read:[\"mixed zip_entry_read(resource zip_entry [, int len])\",\"Read from an open directory entry\"],zip_open:[\"resource zip_open(string filename)\",\"Create new zip using source uri for output\"],zip_read:[\"resource zip_read(resource zip)\",\"Returns the next file in the archive\"],zlib_get_coding_type:[\"string zlib_get_coding_type(void)\",\"Returns the coding type used for output compression\"]},i={$_COOKIE:{type:\"array\"},$_ENV:{type:\"array\"},$_FILES:{type:\"array\"},$_GET:{type:\"array\"},$_POST:{type:\"array\"},$_REQUEST:{type:\"array\"},$_SERVER:{type:\"array\",value:{DOCUMENT_ROOT:1,GATEWAY_INTERFACE:1,HTTP_ACCEPT:1,HTTP_ACCEPT_CHARSET:1,HTTP_ACCEPT_ENCODING:1,HTTP_ACCEPT_LANGUAGE:1,HTTP_CONNECTION:1,HTTP_HOST:1,HTTP_REFERER:1,HTTP_USER_AGENT:1,PATH_TRANSLATED:1,PHP_SELF:1,QUERY_STRING:1,REMOTE_ADDR:1,REMOTE_PORT:1,REQUEST_METHOD:1,REQUEST_URI:1,SCRIPT_FILENAME:1,SCRIPT_NAME:1,SERVER_ADMIN:1,SERVER_NAME:1,SERVER_PORT:1,SERVER_PROTOCOL:1,SERVER_SIGNATURE:1,SERVER_SOFTWARE:1}},$_SESSION:{type:\"array\"},$GLOBALS:{type:\"array\"}},o=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(i.type===\"support.php_tag\"&&i.value===\"<?\")return this.getTagCompletions(e,t,n,r);if(i.type===\"identifier\"){if(i.index>0){var o=t.getTokenAt(n.row,i.start);if(o.type===\"support.php_tag\")return this.getTagCompletions(e,t,n,r)}return this.getFunctionCompletions(e,t,n,r)}if(s(i,\"variable\"))return this.getVariableCompletions(e,t,n,r);var u=t.getLine(n.row).substr(0,n.column);return i.type===\"string\"&&/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i.test(u)?this.getArrayKeyCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return[{caption:\"php\",value:\"php\",meta:\"php tag\",score:Number.MAX_VALUE},{caption:\"=\",value:\"=\",meta:\"php tag\",score:Number.MAX_VALUE}]},this.getFunctionCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\"($0)\",meta:\"php function\",score:Number.MAX_VALUE,docHTML:r[e][1]}})},this.getVariableCompletions=function(e,t,n,r){var s=Object.keys(i);return s.map(function(e){return{caption:e,value:e,meta:\"php variable\",score:Number.MAX_VALUE}})},this.getArrayKeyCompletions=function(e,t,n,r){var s=t.getLine(n.row).substr(0,n.column),o=s.match(/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i)[1];if(!i[o])return[];var u=[];return i[o].type===\"array\"&&i[o].value&&(u=Object.keys(i[o].value)),u.map(function(e){return{caption:e,value:e,meta:\"php array key\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.PhpCompletions=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/php\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/php_highlight_rules\",\"ace/mode/php_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/php_completions\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/unicode\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./php_highlight_rules\").PhpHighlightRules,o=e(\"./php_highlight_rules\").PhpLangHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=e(\"../worker/worker_client\").WorkerClient,l=e(\"./php_completions\").PhpCompletions,c=e(\"./behaviour/cstyle\").CstyleBehaviour,h=e(\"./folding/cstyle\").FoldMode,p=e(\"../unicode\"),d=e(\"./html\").Mode,v=e(\"./javascript\").Mode,m=e(\"./css\").Mode,g=function(e){this.HighlightRules=o,this.$outdent=new u,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new h};r.inherits(g,i),function(){this.tokenRe=new RegExp(\"^[\"+p.wordChars+\"_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+p.wordChars+\"_]|\\\\s])+\",\"g\"),this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[:]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o!=\"doc-start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.$id=\"ace/mode/php-inline\"}.call(g.prototype);var y=function(e){if(e&&e.inline){var t=new g;return t.createWorker=this.createWorker,t.inlinePhp=!0,t}d.call(this),this.HighlightRules=s,this.createModeDelegates({\"js-\":v,\"css-\":m,\"php-\":g}),this.foldingRules.subModes[\"php-\"]=new h};r.inherits(y,d),function(){this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/php_worker\",\"PhpWorker\");return t.attachToDocument(e.getDocument()),this.inlinePhp&&t.call(\"setOptions\",[{inline:!0}]),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/php\"}.call(y.prototype),t.Mode=y});\n                (function() {\n                    ace.require([\"ace/mode/php\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-pig.js",
    "content": "ace.define(\"ace/mode/pig_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.block.pig\",regex:/\\/\\*/,push:[{token:\"comment.block.pig\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.pig\"}]},{token:\"comment.line.double-dash.asciidoc\",regex:/--.*$/},{token:\"keyword.control.pig\",regex:/\\b(?:ASSERT|LOAD|STORE|DUMP|FILTER|DISTINCT|FOREACH|GENERATE|STREAM|JOIN|COGROUP|GROUP|CROSS|ORDER|LIMIT|UNION|SPLIT|DESCRIBE|EXPLAIN|ILLUSTRATE|AS|BY|INTO|USING|LIMIT|PARALLEL|OUTER|INNER|DEFAULT|LEFT|SAMPLE|RANK|CUBE|ALL|KILL|QUIT|MAPREDUCE|ASC|DESC|THROUGH|SHIP|CACHE|DECLARE|CASE|WHEN|THEN|END|IN|PARTITION|FULL|IMPORT|IF|ONSCHEMA|INPUT|OUTPUT)\\b/,caseInsensitive:!0},{token:\"storage.datatypes.pig\",regex:/\\b(?:int|long|float|double|chararray|bytearray|boolean|datetime|biginteger|bigdecimal|tuple|bag|map)\\b/,caseInsensitive:!0},{token:\"support.function.storage.pig\",regex:/\\b(?:PigStorage|BinStorage|BinaryStorage|PigDump|HBaseStorage|JsonLoader|JsonStorage|AvroStorage|TextLoader|PigStreaming|TrevniStorage|AccumuloStorage)\\b/},{token:\"support.function.udf.pig\",regex:/\\b(?:DIFF|TOBAG|TOMAP|TOP|TOTUPLE|RANDOM|FLATTEN|flatten|CUBE|ROLLUP|IsEmpty|ARITY|PluckTuple|SUBTRACT|BagToString)\\b/},{token:\"support.function.udf.math.pig\",regex:/\\b(?:ABS|ACOS|ASIN|ATAN|CBRT|CEIL|COS|COSH|EXP|FLOOR|LOG|LOG10|ROUND|ROUND_TO|SIN|SINH|SQRT|TAN|TANH|AVG|COUNT|COUNT_STAR|MAX|MIN|SUM|COR|COV)\\b/},{token:\"support.function.udf.string.pig\",regex:/\\b(?:CONCAT|INDEXOF|LAST_INDEX_OF|LCFIRST|LOWER|REGEX_EXTRACT|REGEX_EXTRACT_ALL|REPLACE|SIZE|STRSPLIT|SUBSTRING|TOKENIZE|TRIM|UCFIRST|UPPER|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\\b/},{token:\"support.function.udf.datetime.pig\",regex:/\\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\\b/},{token:\"support.function.command.pig\",regex:/\\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\\b/},{token:\"variable.pig\",regex:/\\$[a_zA-Z0-9_]+/},{token:\"constant.language.pig\",regex:/\\b(?:NULL|true|false|stdin|stdout|stderr)\\b/,caseInsensitive:!0},{token:\"constant.numeric.pig\",regex:/\\b\\d+(?:\\.\\d+)?\\b/},{token:\"keyword.operator.comparison.pig\",regex:/!=|==|<|>|<=|>=|\\b(?:MATCHES|IS|OR|AND|NOT)\\b/,caseInsensitive:!0},{token:\"keyword.operator.arithmetic.pig\",regex:/\\+|\\-|\\*|\\/|\\%|\\?|:|::|\\.\\.|#/},{token:\"string.quoted.double.pig\",regex:/\"/,push:[{token:\"string.quoted.double.pig\",regex:/\"/,next:\"pop\"},{token:\"constant.character.escape.pig\",regex:/\\\\./},{defaultToken:\"string.quoted.double.pig\"}]},{token:\"string.quoted.single.pig\",regex:/'/,push:[{token:\"string.quoted.single.pig\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.pig\",regex:/\\\\./},{defaultToken:\"string.quoted.single.pig\"}]},{todo:{token:[\"text\",\"keyword.parameter.pig\",\"text\",\"storage.type.parameter.pig\"],regex:/^(\\s*)(set)(\\s+)(\\S+)/,caseInsensitive:!0,push:[{token:\"text\",regex:/$/,next:\"pop\"},{include:\"$self\"}]}},{token:[\"text\",\"keyword.alias.pig\",\"text\",\"storage.type.alias.pig\"],regex:/(\\s*)(DEFINE|DECLARE|REGISTER)(\\s+)(\\S+)/,caseInsensitive:!0,push:[{token:\"text\",regex:/;?$/,next:\"pop\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"pig\"],name:\"Pig\",scopeName:\"source.pig\"},r.inherits(s,i),t.PigHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/pig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pig_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./pig_highlight_rules\").PigHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/pig\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/pig\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-plain_text.js",
    "content": "ace.define(\"ace/mode/plain_text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./behaviour\").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return\"\"},this.$id=\"ace/mode/plain_text\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/plain_text\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-powershell.js",
    "content": "ace.define(\"ace/mode/powershell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"begin|break|catch|continue|data|do|dynamicparam|else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in|inlinescript|hidden|parallel|param|process|return|sequence|switch|throw|trap|try|until|while|workflow\",t=\"Get-AppBackgroundTask|Start-AppBackgroundTask|Unregister-AppBackgroundTask|Disable-AppBackgroundTaskDiagnosticLog|Enable-AppBackgroundTaskDiagnosticLog|Set-AppBackgroundTaskResourcePolicy|Get-AppLockerFileInformation|Get-AppLockerPolicy|New-AppLockerPolicy|Set-AppLockerPolicy|Test-AppLockerPolicy|Get-AppxLastError|Get-AppxLog|Add-AppxPackage|Add-AppxVolume|Dismount-AppxVolume|Get-AppxDefaultVolume|Get-AppxPackage|Get-AppxPackageManifest|Get-AppxVolume|Mount-AppxVolume|Move-AppxPackage|Remove-AppxPackage|Remove-AppxVolume|Set-AppxDefaultVolume|Clear-AssignedAccess|Get-AssignedAccess|Set-AssignedAccess|Add-BitLockerKeyProtector|Backup-BitLockerKeyProtector|Clear-BitLockerAutoUnlock|Disable-BitLocker|Disable-BitLockerAutoUnlock|Enable-BitLocker|Enable-BitLockerAutoUnlock|Get-BitLockerVolume|Lock-BitLocker|Remove-BitLockerKeyProtector|Resume-BitLocker|Suspend-BitLocker|Unlock-BitLocker|Add-BitsFile|Complete-BitsTransfer|Get-BitsTransfer|Remove-BitsTransfer|Resume-BitsTransfer|Set-BitsTransfer|Start-BitsTransfer|Suspend-BitsTransfer|Add-BCDataCacheExtension|Clear-BCCache|Disable-BC|Disable-BCDowngrading|Disable-BCServeOnBattery|Enable-BCDistributed|Enable-BCDowngrading|Enable-BCHostedClient|Enable-BCHostedServer|Enable-BCLocal|Enable-BCServeOnBattery|Export-BCCachePackage|Export-BCSecretKey|Get-BCClientConfiguration|Get-BCContentServerConfiguration|Get-BCDataCache|Get-BCDataCacheExtension|Get-BCHashCache|Get-BCHostedCacheServerConfiguration|Get-BCNetworkConfiguration|Get-BCStatus|Import-BCCachePackage|Import-BCSecretKey|Publish-BCFileContent|Publish-BCWebContent|Remove-BCDataCacheExtension|Reset-BC|Set-BCAuthentication|Set-BCCache|Set-BCDataCacheEntryMaxAge|Set-BCMinSMBLatency|Set-BCSecretKey|Export-BinaryMiLog|Get-CimAssociatedInstance|Get-CimClass|Get-CimInstance|Get-CimSession|Import-BinaryMiLog|Invoke-CimMethod|New-CimInstance|New-CimSession|New-CimSessionOption|Register-CimIndicationEvent|Remove-CimInstance|Remove-CimSession|Set-CimInstance|ConvertFrom-CIPolicy|Add-SignerRule|Edit-CIPolicyRule|Get-CIPolicy|Get-CIPolicyInfo|Get-SystemDriver|Merge-CIPolicy|New-CIPolicy|New-CIPolicyRule|Remove-CIPolicyRule|Set-CIPolicyVersion|Set-HVCIOptions|Set-RuleOption|Add-MpPreference|Get-MpComputerStatus|Get-MpPreference|Get-MpThreat|Get-MpThreatCatalog|Get-MpThreatDetection|Remove-MpPreference|Remove-MpThreat|Set-MpPreference|Start-MpScan|Start-MpWDOScan|Update-MpSignature|Disable-DAManualEntryPointSelection|Enable-DAManualEntryPointSelection|Get-DAClientExperienceConfiguration|Get-DAEntryPointTableItem|New-DAEntryPointTableItem|Remove-DAEntryPointTableItem|Rename-DAEntryPointTableItem|Reset-DAClientExperienceConfiguration|Reset-DAEntryPointTableItem|Set-DAClientExperienceConfiguration|Set-DAEntryPointTableItem|Add-ProvisionedAppxPackage|Apply-WindowsUnattend|Get-ProvisionedAppxPackage|Remove-ProvisionedAppxPackage|Add-AppxProvisionedPackage|Add-WindowsCapability|Add-WindowsDriver|Add-WindowsImage|Add-WindowsPackage|Clear-WindowsCorruptMountPoint|Disable-WindowsOptionalFeature|Dismount-WindowsImage|Enable-WindowsOptionalFeature|Expand-WindowsCustomDataImage|Expand-WindowsImage|Export-WindowsDriver|Export-WindowsImage|Get-AppxProvisionedPackage|Get-WIMBootEntry|Get-WindowsCapability|Get-WindowsDriver|Get-WindowsEdition|Get-WindowsImage|Get-WindowsImageContent|Get-WindowsOptionalFeature|Get-WindowsPackage|Mount-WindowsImage|New-WindowsCustomImage|New-WindowsImage|Optimize-WindowsImage|Remove-AppxProvisionedPackage|Remove-WindowsCapability|Remove-WindowsDriver|Remove-WindowsImage|Remove-WindowsPackage|Repair-WindowsImage|Save-WindowsImage|Set-AppXProvisionedDataFile|Set-WindowsEdition|Set-WindowsProductKey|Split-WindowsImage|Update-WIMBootEntry|Use-WindowsUnattend|Add-DnsClientNrptRule|Clear-DnsClientCache|Get-DnsClient|Get-DnsClientCache|Get-DnsClientGlobalSetting|Get-DnsClientNrptGlobal|Get-DnsClientNrptPolicy|Get-DnsClientNrptRule|Get-DnsClientServerAddress|Register-DnsClient|Remove-DnsClientNrptRule|Set-DnsClient|Set-DnsClientGlobalSetting|Set-DnsClientNrptGlobal|Set-DnsClientNrptRule|Set-DnsClientServerAddress|Resolve-DnsName|Add-EtwTraceProvider|Get-AutologgerConfig|Get-EtwTraceProvider|Get-EtwTraceSession|New-AutologgerConfig|New-EtwTraceSession|Remove-AutologgerConfig|Remove-EtwTraceProvider|Remove-EtwTraceSession|Send-EtwTraceSession|Set-AutologgerConfig|Set-EtwTraceProvider|Set-EtwTraceSession|Get-WinAcceptLanguageFromLanguageListOptOut|Get-WinCultureFromLanguageListOptOut|Get-WinDefaultInputMethodOverride|Get-WinHomeLocation|Get-WinLanguageBarOption|Get-WinSystemLocale|Get-WinUILanguageOverride|Get-WinUserLanguageList|New-WinUserLanguageList|Set-Culture|Set-WinAcceptLanguageFromLanguageListOptOut|Set-WinCultureFromLanguageListOptOut|Set-WinDefaultInputMethodOverride|Set-WinHomeLocation|Set-WinLanguageBarOption|Set-WinSystemLocale|Set-WinUILanguageOverride|Set-WinUserLanguageList|Connect-IscsiTarget|Disconnect-IscsiTarget|Get-IscsiConnection|Get-IscsiSession|Get-IscsiTarget|Get-IscsiTargetPortal|New-IscsiTargetPortal|Register-IscsiSession|Remove-IscsiTargetPortal|Set-IscsiChapSecret|Unregister-IscsiSession|Update-IscsiTarget|Update-IscsiTargetPortal|Get-IseSnippet|Import-IseSnippet|New-IseSnippet|Add-KdsRootKey|Clear-KdsCache|Get-KdsConfiguration|Get-KdsRootKey|Set-KdsConfiguration|Test-KdsRootKey|Compress-Archive|Expand-Archive|Export-Counter|Get-Counter|Get-WinEvent|Import-Counter|New-WinEvent|Start-Transcript|Stop-Transcript|Add-Computer|Add-Content|Checkpoint-Computer|Clear-Content|Clear-EventLog|Clear-Item|Clear-ItemProperty|Clear-RecycleBin|Complete-Transaction|Convert-Path|Copy-Item|Copy-ItemProperty|Debug-Process|Disable-ComputerRestore|Enable-ComputerRestore|Get-ChildItem|Get-Clipboard|Get-ComputerRestorePoint|Get-Content|Get-ControlPanelItem|Get-EventLog|Get-HotFix|Get-Item|Get-ItemProperty|Get-ItemPropertyValue|Get-Location|Get-Process|Get-PSDrive|Get-PSProvider|Get-Service|Get-Transaction|Get-WmiObject|Invoke-Item|Invoke-WmiMethod|Join-Path|Limit-EventLog|Move-Item|Move-ItemProperty|New-EventLog|New-Item|New-ItemProperty|New-PSDrive|New-Service|New-WebServiceProxy|Pop-Location|Push-Location|Register-WmiEvent|Remove-Computer|Remove-EventLog|Remove-Item|Remove-ItemProperty|Remove-PSDrive|Remove-WmiObject|Rename-Computer|Rename-Item|Rename-ItemProperty|Reset-ComputerMachinePassword|Resolve-Path|Restart-Computer|Restart-Service|Restore-Computer|Resume-Service|Set-Clipboard|Set-Content|Set-Item|Set-ItemProperty|Set-Location|Set-Service|Set-WmiInstance|Show-ControlPanelItem|Show-EventLog|Split-Path|Start-Process|Start-Service|Start-Transaction|Stop-Computer|Stop-Process|Stop-Service|Suspend-Service|Test-ComputerSecureChannel|Test-Connection|Test-Path|Undo-Transaction|Use-Transaction|Wait-Process|Write-EventLog|Export-ODataEndpointProxy|ConvertFrom-SecureString|ConvertTo-SecureString|Get-Acl|Get-AuthenticodeSignature|Get-CmsMessage|Get-Credential|Get-ExecutionPolicy|Get-PfxCertificate|Protect-CmsMessage|Set-Acl|Set-AuthenticodeSignature|Set-ExecutionPolicy|Unprotect-CmsMessage|ConvertFrom-SddlString|Format-Hex|Get-FileHash|Import-PowerShellDataFile|New-Guid|New-TemporaryFile|Add-Member|Add-Type|Clear-Variable|Compare-Object|ConvertFrom-Csv|ConvertFrom-Json|ConvertFrom-String|ConvertFrom-StringData|Convert-String|ConvertTo-Csv|ConvertTo-Html|ConvertTo-Json|ConvertTo-Xml|Debug-Runspace|Disable-PSBreakpoint|Disable-RunspaceDebug|Enable-PSBreakpoint|Enable-RunspaceDebug|Export-Alias|Export-Clixml|Export-Csv|Export-FormatData|Export-PSSession|Format-Custom|Format-List|Format-Table|Format-Wide|Get-Alias|Get-Culture|Get-Date|Get-Event|Get-EventSubscriber|Get-FormatData|Get-Host|Get-Member|Get-PSBreakpoint|Get-PSCallStack|Get-Random|Get-Runspace|Get-RunspaceDebug|Get-TraceSource|Get-TypeData|Get-UICulture|Get-Unique|Get-Variable|Group-Object|Import-Alias|Import-Clixml|Import-Csv|Import-LocalizedData|Import-PSSession|Invoke-Expression|Invoke-RestMethod|Invoke-WebRequest|Measure-Command|Measure-Object|New-Alias|New-Event|New-Object|New-TimeSpan|New-Variable|Out-File|Out-GridView|Out-Printer|Out-String|Read-Host|Register-EngineEvent|Register-ObjectEvent|Remove-Event|Remove-PSBreakpoint|Remove-TypeData|Remove-Variable|Select-Object|Select-String|Select-Xml|Send-MailMessage|Set-Alias|Set-Date|Set-PSBreakpoint|Set-TraceSource|Set-Variable|Show-Command|Sort-Object|Start-Sleep|Tee-Object|Trace-Command|Unblock-File|Unregister-Event|Update-FormatData|Update-List|Update-TypeData|Wait-Debugger|Wait-Event|Write-Debug|Write-Error|Write-Host|Write-Information|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Connect-WSMan|Disable-WSManCredSSP|Disconnect-WSMan|Enable-WSManCredSSP|Get-WSManCredSSP|Get-WSManInstance|Invoke-WSManAction|New-WSManInstance|New-WSManSessionOption|Remove-WSManInstance|Set-WSManInstance|Set-WSManQuickConfig|Test-WSMan|Debug-MMAppPrelaunch|Disable-MMAgent|Enable-MMAgent|Get-MMAgent|Set-MMAgent|Add-DtcClusterTMMapping|Get-Dtc|Get-DtcAdvancedHostSetting|Get-DtcAdvancedSetting|Get-DtcClusterDefault|Get-DtcClusterTMMapping|Get-DtcDefault|Get-DtcLog|Get-DtcNetworkSetting|Get-DtcTransaction|Get-DtcTransactionsStatistics|Get-DtcTransactionsTraceSession|Get-DtcTransactionsTraceSetting|Install-Dtc|Remove-DtcClusterTMMapping|Reset-DtcLog|Set-DtcAdvancedHostSetting|Set-DtcAdvancedSetting|Set-DtcClusterDefault|Set-DtcClusterTMMapping|Set-DtcDefault|Set-DtcLog|Set-DtcNetworkSetting|Set-DtcTransaction|Set-DtcTransactionsTraceSession|Set-DtcTransactionsTraceSetting|Start-Dtc|Start-DtcTransactionsTraceSession|Stop-Dtc|Stop-DtcTransactionsTraceSession|Test-Dtc|Uninstall-Dtc|Write-DtcTransactionsTraceSession|Complete-DtcDiagnosticTransaction|Join-DtcDiagnosticResourceManager|New-DtcDiagnosticTransaction|Receive-DtcDiagnosticTransaction|Send-DtcDiagnosticTransaction|Start-DtcDiagnosticResourceManager|Stop-DtcDiagnosticResourceManager|Undo-DtcDiagnosticTransaction|Disable-NetAdapter|Disable-NetAdapterBinding|Disable-NetAdapterChecksumOffload|Disable-NetAdapterEncapsulatedPacketTaskOffload|Disable-NetAdapterIPsecOffload|Disable-NetAdapterLso|Disable-NetAdapterPacketDirect|Disable-NetAdapterPowerManagement|Disable-NetAdapterQos|Disable-NetAdapterRdma|Disable-NetAdapterRsc|Disable-NetAdapterRss|Disable-NetAdapterSriov|Disable-NetAdapterVmq|Enable-NetAdapter|Enable-NetAdapterBinding|Enable-NetAdapterChecksumOffload|Enable-NetAdapterEncapsulatedPacketTaskOffload|Enable-NetAdapterIPsecOffload|Enable-NetAdapterLso|Enable-NetAdapterPacketDirect|Enable-NetAdapterPowerManagement|Enable-NetAdapterQos|Enable-NetAdapterRdma|Enable-NetAdapterRsc|Enable-NetAdapterRss|Enable-NetAdapterSriov|Enable-NetAdapterVmq|Get-NetAdapter|Get-NetAdapterAdvancedProperty|Get-NetAdapterBinding|Get-NetAdapterChecksumOffload|Get-NetAdapterEncapsulatedPacketTaskOffload|Get-NetAdapterHardwareInfo|Get-NetAdapterIPsecOffload|Get-NetAdapterLso|Get-NetAdapterPacketDirect|Get-NetAdapterPowerManagement|Get-NetAdapterQos|Get-NetAdapterRdma|Get-NetAdapterRsc|Get-NetAdapterRss|Get-NetAdapterSriov|Get-NetAdapterSriovVf|Get-NetAdapterStatistics|Get-NetAdapterVmq|Get-NetAdapterVmqQueue|Get-NetAdapterVPort|New-NetAdapterAdvancedProperty|Remove-NetAdapterAdvancedProperty|Rename-NetAdapter|Reset-NetAdapterAdvancedProperty|Restart-NetAdapter|Set-NetAdapter|Set-NetAdapterAdvancedProperty|Set-NetAdapterBinding|Set-NetAdapterChecksumOffload|Set-NetAdapterEncapsulatedPacketTaskOffload|Set-NetAdapterIPsecOffload|Set-NetAdapterLso|Set-NetAdapterPacketDirect|Set-NetAdapterPowerManagement|Set-NetAdapterQos|Set-NetAdapterRdma|Set-NetAdapterRsc|Set-NetAdapterRss|Set-NetAdapterSriov|Set-NetAdapterVmq|Get-NetConnectionProfile|Set-NetConnectionProfile|Add-NetEventNetworkAdapter|Add-NetEventPacketCaptureProvider|Add-NetEventProvider|Add-NetEventVmNetworkAdapter|Add-NetEventVmSwitch|Add-NetEventWFPCaptureProvider|Get-NetEventNetworkAdapter|Get-NetEventPacketCaptureProvider|Get-NetEventProvider|Get-NetEventSession|Get-NetEventVmNetworkAdapter|Get-NetEventVmSwitch|Get-NetEventWFPCaptureProvider|New-NetEventSession|Remove-NetEventNetworkAdapter|Remove-NetEventPacketCaptureProvider|Remove-NetEventProvider|Remove-NetEventSession|Remove-NetEventVmNetworkAdapter|Remove-NetEventVmSwitch|Remove-NetEventWFPCaptureProvider|Set-NetEventPacketCaptureProvider|Set-NetEventProvider|Set-NetEventSession|Set-NetEventWFPCaptureProvider|Start-NetEventSession|Stop-NetEventSession|Add-NetLbfoTeamMember|Add-NetLbfoTeamNic|Get-NetLbfoTeam|Get-NetLbfoTeamMember|Get-NetLbfoTeamNic|New-NetLbfoTeam|Remove-NetLbfoTeam|Remove-NetLbfoTeamMember|Remove-NetLbfoTeamNic|Rename-NetLbfoTeam|Set-NetLbfoTeam|Set-NetLbfoTeamMember|Set-NetLbfoTeamNic|Add-NetNatExternalAddress|Add-NetNatStaticMapping|Get-NetNat|Get-NetNatExternalAddress|Get-NetNatGlobal|Get-NetNatSession|Get-NetNatStaticMapping|New-NetNat|Remove-NetNat|Remove-NetNatExternalAddress|Remove-NetNatStaticMapping|Set-NetNat|Set-NetNatGlobal|Get-NetQosPolicy|New-NetQosPolicy|Remove-NetQosPolicy|Set-NetQosPolicy|Copy-NetFirewallRule|Copy-NetIPsecMainModeCryptoSet|Copy-NetIPsecMainModeRule|Copy-NetIPsecPhase1AuthSet|Copy-NetIPsecPhase2AuthSet|Copy-NetIPsecQuickModeCryptoSet|Copy-NetIPsecRule|Disable-NetFirewallRule|Disable-NetIPsecMainModeRule|Disable-NetIPsecRule|Enable-NetFirewallRule|Enable-NetIPsecMainModeRule|Enable-NetIPsecRule|Find-NetIPsecRule|Get-NetFirewallAddressFilter|Get-NetFirewallApplicationFilter|Get-NetFirewallInterfaceFilter|Get-NetFirewallInterfaceTypeFilter|Get-NetFirewallPortFilter|Get-NetFirewallProfile|Get-NetFirewallRule|Get-NetFirewallSecurityFilter|Get-NetFirewallServiceFilter|Get-NetFirewallSetting|Get-NetIPsecDospSetting|Get-NetIPsecMainModeCryptoSet|Get-NetIPsecMainModeRule|Get-NetIPsecMainModeSA|Get-NetIPsecPhase1AuthSet|Get-NetIPsecPhase2AuthSet|Get-NetIPsecQuickModeCryptoSet|Get-NetIPsecQuickModeSA|Get-NetIPsecRule|New-NetFirewallRule|New-NetIPsecDospSetting|New-NetIPsecMainModeCryptoSet|New-NetIPsecMainModeRule|New-NetIPsecPhase1AuthSet|New-NetIPsecPhase2AuthSet|New-NetIPsecQuickModeCryptoSet|New-NetIPsecRule|Open-NetGPO|Remove-NetFirewallRule|Remove-NetIPsecDospSetting|Remove-NetIPsecMainModeCryptoSet|Remove-NetIPsecMainModeRule|Remove-NetIPsecMainModeSA|Remove-NetIPsecPhase1AuthSet|Remove-NetIPsecPhase2AuthSet|Remove-NetIPsecQuickModeCryptoSet|Remove-NetIPsecQuickModeSA|Remove-NetIPsecRule|Rename-NetFirewallRule|Rename-NetIPsecMainModeCryptoSet|Rename-NetIPsecMainModeRule|Rename-NetIPsecPhase1AuthSet|Rename-NetIPsecPhase2AuthSet|Rename-NetIPsecQuickModeCryptoSet|Rename-NetIPsecRule|Save-NetGPO|Set-NetFirewallAddressFilter|Set-NetFirewallApplicationFilter|Set-NetFirewallInterfaceFilter|Set-NetFirewallInterfaceTypeFilter|Set-NetFirewallPortFilter|Set-NetFirewallProfile|Set-NetFirewallRule|Set-NetFirewallSecurityFilter|Set-NetFirewallServiceFilter|Set-NetFirewallSetting|Set-NetIPsecDospSetting|Set-NetIPsecMainModeCryptoSet|Set-NetIPsecMainModeRule|Set-NetIPsecPhase1AuthSet|Set-NetIPsecPhase2AuthSet|Set-NetIPsecQuickModeCryptoSet|Set-NetIPsecRule|Show-NetFirewallRule|Show-NetIPsecRule|Sync-NetIPsecRule|Update-NetIPsecRule|Get-DAPolicyChange|New-NetIPsecAuthProposal|New-NetIPsecMainModeCryptoProposal|New-NetIPsecQuickModeCryptoProposal|Add-NetSwitchTeamMember|Get-NetSwitchTeam|Get-NetSwitchTeamMember|New-NetSwitchTeam|Remove-NetSwitchTeam|Remove-NetSwitchTeamMember|Rename-NetSwitchTeam|Find-NetRoute|Get-NetCompartment|Get-NetIPAddress|Get-NetIPConfiguration|Get-NetIPInterface|Get-NetIPv4Protocol|Get-NetIPv6Protocol|Get-NetNeighbor|Get-NetOffloadGlobalSetting|Get-NetPrefixPolicy|Get-NetRoute|Get-NetTCPConnection|Get-NetTCPSetting|Get-NetTransportFilter|Get-NetUDPEndpoint|Get-NetUDPSetting|New-NetIPAddress|New-NetNeighbor|New-NetRoute|New-NetTransportFilter|Remove-NetIPAddress|Remove-NetNeighbor|Remove-NetRoute|Remove-NetTransportFilter|Set-NetIPAddress|Set-NetIPInterface|Set-NetIPv4Protocol|Set-NetIPv6Protocol|Set-NetNeighbor|Set-NetOffloadGlobalSetting|Set-NetRoute|Set-NetTCPSetting|Set-NetUDPSetting|Test-NetConnection|Get-DAConnectionStatus|Get-NCSIPolicyConfiguration|Reset-NCSIPolicyConfiguration|Set-NCSIPolicyConfiguration|Disable-NetworkSwitchEthernetPort|Disable-NetworkSwitchFeature|Disable-NetworkSwitchVlan|Enable-NetworkSwitchEthernetPort|Enable-NetworkSwitchFeature|Enable-NetworkSwitchVlan|Get-NetworkSwitchEthernetPort|Get-NetworkSwitchFeature|Get-NetworkSwitchGlobalData|Get-NetworkSwitchVlan|New-NetworkSwitchVlan|Remove-NetworkSwitchEthernetPortIPAddress|Remove-NetworkSwitchVlan|Restore-NetworkSwitchConfiguration|Save-NetworkSwitchConfiguration|Set-NetworkSwitchEthernetPortIPAddress|Set-NetworkSwitchPortMode|Set-NetworkSwitchPortProperty|Set-NetworkSwitchVlanProperty|Add-NetIPHttpsCertBinding|Disable-NetDnsTransitionConfiguration|Disable-NetIPHttpsProfile|Disable-NetNatTransitionConfiguration|Enable-NetDnsTransitionConfiguration|Enable-NetIPHttpsProfile|Enable-NetNatTransitionConfiguration|Get-Net6to4Configuration|Get-NetDnsTransitionConfiguration|Get-NetDnsTransitionMonitoring|Get-NetIPHttpsConfiguration|Get-NetIPHttpsState|Get-NetIsatapConfiguration|Get-NetNatTransitionConfiguration|Get-NetNatTransitionMonitoring|Get-NetTeredoConfiguration|Get-NetTeredoState|New-NetIPHttpsConfiguration|New-NetNatTransitionConfiguration|Remove-NetIPHttpsCertBinding|Remove-NetIPHttpsConfiguration|Remove-NetNatTransitionConfiguration|Rename-NetIPHttpsConfiguration|Reset-Net6to4Configuration|Reset-NetDnsTransitionConfiguration|Reset-NetIPHttpsConfiguration|Reset-NetIsatapConfiguration|Reset-NetTeredoConfiguration|Set-Net6to4Configuration|Set-NetDnsTransitionConfiguration|Set-NetIPHttpsConfiguration|Set-NetIsatapConfiguration|Set-NetNatTransitionConfiguration|Set-NetTeredoConfiguration|Find-Package|Find-PackageProvider|Get-Package|Get-PackageProvider|Get-PackageSource|Import-PackageProvider|Install-Package|Install-PackageProvider|Register-PackageSource|Save-Package|Set-PackageSource|Uninstall-Package|Unregister-PackageSource|Clear-PcsvDeviceLog|Get-PcsvDevice|Get-PcsvDeviceLog|Restart-PcsvDevice|Set-PcsvDeviceBootConfiguration|Set-PcsvDeviceNetworkConfiguration|Set-PcsvDeviceUserPassword|Start-PcsvDevice|Stop-PcsvDevice|AfterAll|AfterEach|Assert-MockCalled|Assert-VerifiableMocks|BeforeAll|BeforeEach|Context|Describe|Get-MockDynamicParameters|Get-TestDriveItem|In|InModuleScope|Invoke-Mock|Invoke-Pester|It|Mock|New-Fixture|Set-DynamicParameterVariables|Setup|Should|Add-CertificateEnrollmentPolicyServer|Export-Certificate|Export-PfxCertificate|Get-Certificate|Get-CertificateAutoEnrollmentPolicy|Get-CertificateEnrollmentPolicyServer|Get-CertificateNotificationTask|Get-PfxData|Import-Certificate|Import-PfxCertificate|New-CertificateNotificationTask|New-SelfSignedCertificate|Remove-CertificateEnrollmentPolicyServer|Remove-CertificateNotificationTask|Set-CertificateAutoEnrollmentPolicy|Switch-Certificate|Test-Certificate|Disable-PnpDevice|Enable-PnpDevice|Get-PnpDevice|Get-PnpDeviceProperty|Find-DscResource|Find-Module|Find-Script|Get-InstalledModule|Get-InstalledScript|Get-PSRepository|Install-Module|Install-Script|New-ScriptFileInfo|Publish-Module|Publish-Script|Register-PSRepository|Save-Module|Save-Script|Set-PSRepository|Test-ScriptFileInfo|Uninstall-Module|Uninstall-Script|Unregister-PSRepository|Update-Module|Update-ModuleManifest|Update-Script|Update-ScriptFileInfo|Add-Printer|Add-PrinterDriver|Add-PrinterPort|Get-PrintConfiguration|Get-Printer|Get-PrinterDriver|Get-PrinterPort|Get-PrinterProperty|Get-PrintJob|Read-PrinterNfcTag|Remove-Printer|Remove-PrinterDriver|Remove-PrinterPort|Remove-PrintJob|Rename-Printer|Restart-PrintJob|Resume-PrintJob|Set-PrintConfiguration|Set-Printer|Set-PrinterProperty|Suspend-PrintJob|Write-PrinterNfcTag|Configuration|Disable-DscDebug|Enable-DscDebug|Get-DscConfiguration|Get-DscConfigurationStatus|Get-DscLocalConfigurationManager|Get-DscResource|New-DscChecksum|Remove-DscConfigurationDocument|Restore-DscConfiguration|Stop-DscConfiguration|Invoke-DscResource|Publish-DscConfiguration|Set-DscLocalConfigurationManager|Start-DscConfiguration|Test-DscConfiguration|Update-DscConfiguration|Disable-PSTrace|Disable-PSWSManCombinedTrace|Disable-WSManTrace|Enable-PSTrace|Enable-PSWSManCombinedTrace|Enable-WSManTrace|Get-LogProperties|Set-LogProperties|Start-Trace|Stop-Trace|PSConsoleHostReadline|Get-PSReadlineKeyHandler|Get-PSReadlineOption|Remove-PSReadlineKeyHandler|Set-PSReadlineKeyHandler|Set-PSReadlineOption|Add-JobTrigger|Disable-JobTrigger|Disable-ScheduledJob|Enable-JobTrigger|Enable-ScheduledJob|Get-JobTrigger|Get-ScheduledJob|Get-ScheduledJobOption|New-JobTrigger|New-ScheduledJobOption|Register-ScheduledJob|Remove-JobTrigger|Set-JobTrigger|Set-ScheduledJob|Set-ScheduledJobOption|Unregister-ScheduledJob|New-PSWorkflowSession|New-PSWorkflowExecutionOption|Invoke-AsWorkflow|Disable-ScheduledTask|Enable-ScheduledTask|Export-ScheduledTask|Get-ClusteredScheduledTask|Get-ScheduledTask|Get-ScheduledTaskInfo|New-ScheduledTask|New-ScheduledTaskAction|New-ScheduledTaskPrincipal|New-ScheduledTaskSettingsSet|New-ScheduledTaskTrigger|Register-ClusteredScheduledTask|Register-ScheduledTask|Set-ClusteredScheduledTask|Set-ScheduledTask|Start-ScheduledTask|Stop-ScheduledTask|Unregister-ClusteredScheduledTask|Unregister-ScheduledTask|Confirm-SecureBootUEFI|Format-SecureBootUEFI|Get-SecureBootPolicy|Get-SecureBootUEFI|Set-SecureBootUEFI|Block-SmbShareAccess|Close-SmbOpenFile|Close-SmbSession|Disable-SmbDelegation|Enable-SmbDelegation|Get-SmbBandwidthLimit|Get-SmbClientConfiguration|Get-SmbClientNetworkInterface|Get-SmbConnection|Get-SmbDelegation|Get-SmbMapping|Get-SmbMultichannelConnection|Get-SmbMultichannelConstraint|Get-SmbOpenFile|Get-SmbServerConfiguration|Get-SmbServerNetworkInterface|Get-SmbSession|Get-SmbShare|Get-SmbShareAccess|Grant-SmbShareAccess|New-SmbMapping|New-SmbMultichannelConstraint|New-SmbShare|Remove-SmbBandwidthLimit|Remove-SmbMapping|Remove-SmbMultichannelConstraint|Remove-SmbShare|Revoke-SmbShareAccess|Set-SmbBandwidthLimit|Set-SmbClientConfiguration|Set-SmbPathAcl|Set-SmbServerConfiguration|Set-SmbShare|Unblock-SmbShareAccess|Update-SmbMultichannelConnection|Move-SmbClient|Get-SmbWitnessClient|Move-SmbWitnessClient|Get-StartApps|Export-StartLayout|Import-StartLayout|Disable-PhysicalDiskIndication|Disable-StorageDiagnosticLog|Enable-PhysicalDiskIndication|Enable-StorageDiagnosticLog|Flush-Volume|Get-DiskSNV|Get-PhysicalDiskSNV|Get-StorageEnclosureSNV|Initialize-Volume|Write-FileSystemCache|Add-InitiatorIdToMaskingSet|Add-PartitionAccessPath|Add-PhysicalDisk|Add-TargetPortToMaskingSet|Add-VirtualDiskToMaskingSet|Block-FileShareAccess|Clear-Disk|Clear-FileStorageTier|Clear-StorageDiagnosticInfo|Connect-VirtualDisk|Debug-FileShare|Debug-StorageSubSystem|Debug-Volume|Disable-PhysicalDiskIdentification|Disable-StorageEnclosureIdentification|Disable-StorageHighAvailability|Disconnect-VirtualDisk|Dismount-DiskImage|Enable-PhysicalDiskIdentification|Enable-StorageEnclosureIdentification|Enable-StorageHighAvailability|Format-Volume|Get-DedupProperties|Get-Disk|Get-DiskImage|Get-DiskStorageNodeView|Get-FileIntegrity|Get-FileShare|Get-FileShareAccessControlEntry|Get-FileStorageTier|Get-InitiatorId|Get-InitiatorPort|Get-MaskingSet|Get-OffloadDataTransferSetting|Get-Partition|Get-PartitionSupportedSize|Get-PhysicalDisk|Get-PhysicalDiskStorageNodeView|Get-ResiliencySetting|Get-StorageAdvancedProperty|Get-StorageDiagnosticInfo|Get-StorageEnclosure|Get-StorageEnclosureStorageNodeView|Get-StorageEnclosureVendorData|Get-StorageFaultDomain|Get-StorageFileServer|Get-StorageFirmwareInformation|Get-StorageHealthAction|Get-StorageHealthReport|Get-StorageHealthSetting|Get-StorageJob|Get-StorageNode|Get-StoragePool|Get-StorageProvider|Get-StorageReliabilityCounter|Get-StorageSetting|Get-StorageSubSystem|Get-StorageTier|Get-StorageTierSupportedSize|Get-SupportedClusterSizes|Get-SupportedFileSystems|Get-TargetPort|Get-TargetPortal|Get-VirtualDisk|Get-VirtualDiskSupportedSize|Get-Volume|Get-VolumeCorruptionCount|Get-VolumeScrubPolicy|Grant-FileShareAccess|Hide-VirtualDisk|Initialize-Disk|Mount-DiskImage|New-FileShare|New-MaskingSet|New-Partition|New-StorageFileServer|New-StoragePool|New-StorageSubsystemVirtualDisk|New-StorageTier|New-VirtualDisk|New-VirtualDiskClone|New-VirtualDiskSnapshot|New-Volume|Optimize-StoragePool|Optimize-Volume|Register-StorageSubsystem|Remove-FileShare|Remove-InitiatorId|Remove-InitiatorIdFromMaskingSet|Remove-MaskingSet|Remove-Partition|Remove-PartitionAccessPath|Remove-PhysicalDisk|Remove-StorageFileServer|Remove-StorageHealthSetting|Remove-StoragePool|Remove-StorageTier|Remove-TargetPortFromMaskingSet|Remove-VirtualDisk|Remove-VirtualDiskFromMaskingSet|Rename-MaskingSet|Repair-FileIntegrity|Repair-VirtualDisk|Repair-Volume|Reset-PhysicalDisk|Reset-StorageReliabilityCounter|Resize-Partition|Resize-StorageTier|Resize-VirtualDisk|Revoke-FileShareAccess|Set-Disk|Set-FileIntegrity|Set-FileShare|Set-FileStorageTier|Set-InitiatorPort|Set-Partition|Set-PhysicalDisk|Set-ResiliencySetting|Set-StorageFileServer|Set-StorageHealthSetting|Set-StoragePool|Set-StorageProvider|Set-StorageSetting|Set-StorageSubSystem|Set-StorageTier|Set-VirtualDisk|Set-Volume|Set-VolumeScrubPolicy|Show-VirtualDisk|Start-StorageDiagnosticLog|Stop-StorageDiagnosticLog|Stop-StorageJob|Unblock-FileShareAccess|Unregister-StorageSubsystem|Update-Disk|Update-HostStorageCache|Update-StorageFirmware|Update-StoragePool|Update-StorageProviderCache|Write-VolumeCache|Disable-TlsCipherSuite|Disable-TlsSessionTicketKey|Enable-TlsCipherSuite|Enable-TlsSessionTicketKey|Export-TlsSessionTicketKey|Get-TlsCipherSuite|New-TlsSessionTicketKey|Get-TroubleshootingPack|Invoke-TroubleshootingPack|Clear-Tpm|ConvertTo-TpmOwnerAuth|Disable-TpmAutoProvisioning|Enable-TpmAutoProvisioning|Get-Tpm|Get-TpmEndorsementKeyInfo|Get-TpmSupportedFeature|Import-TpmOwnerAuth|Initialize-Tpm|Set-TpmOwnerAuth|Unblock-Tpm|Add-VpnConnection|Add-VpnConnectionRoute|Add-VpnConnectionTriggerApplication|Add-VpnConnectionTriggerDnsConfiguration|Add-VpnConnectionTriggerTrustedNetwork|Get-VpnConnection|Get-VpnConnectionTrigger|New-EapConfiguration|New-VpnServerAddress|Remove-VpnConnection|Remove-VpnConnectionRoute|Remove-VpnConnectionTriggerApplication|Remove-VpnConnectionTriggerDnsConfiguration|Remove-VpnConnectionTriggerTrustedNetwork|Set-VpnConnection|Set-VpnConnectionIPsecConfiguration|Set-VpnConnectionProxy|Set-VpnConnectionTriggerDnsConfiguration|Set-VpnConnectionTriggerTrustedNetwork|Add-OdbcDsn|Disable-OdbcPerfCounter|Disable-WdacBidTrace|Enable-OdbcPerfCounter|Enable-WdacBidTrace|Get-OdbcDriver|Get-OdbcDsn|Get-OdbcPerfCounter|Get-WdacBidTrace|Remove-OdbcDsn|Set-OdbcDriver|Set-OdbcDsn|Get-WindowsDeveloperLicense|Show-WindowsDeveloperLicenseRegistration|Unregister-WindowsDeveloperLicense|Disable-WindowsErrorReporting|Enable-WindowsErrorReporting|Get-WindowsErrorReporting|Get-WindowsSearchSetting|Set-WindowsSearchSetting|Get-WindowsUpdateLog\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\"),r=\"eq|ne|gt|lt|le|ge|like|notlike|match|notmatch|contains|notcontains|in|notin|band|bor|bxor|bnot|ceq|cne|cgt|clt|cle|cge|clike|cnotlike|cmatch|cnotmatch|ccontains|cnotcontains|cin|cnotin|ieq|ine|igt|ilt|ile|ige|ilike|inotlike|imatch|inotmatch|icontains|inotcontains|iin|inotin|and|or|xor|not|split|join|replace|f|csplit|creplace|isplit|ireplace|is|isnot|as|shl|shr\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment.start\",regex:\"<#\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"[$](?:[Tt]rue|[Ff]alse)\\\\b\"},{token:\"constant.language\",regex:\"[$][Nn]ull\\\\b\"},{token:\"variable.instance\",regex:\"[$][a-zA-Z][a-zA-Z0-9_]*\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\-(?:\"+r+\")\"},{token:\"keyword.operator\",regex:\"&|\\\\+|\\\\-|\\\\*|\\\\/|\\\\%|\\\\=|\\\\>|\\\\&|\\\\!|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"#>\",next:\"start\"},{token:\"doc.comment.tag\",regex:\"^\\\\.\\\\w+\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.PowershellHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/powershell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/powershell_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./powershell_highlight_rules\").PowershellHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a({start:\"^\\\\s*(<#)\",end:\"^[#\\\\s]>\\\\s*$\"})};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"<#\",end:\"#>\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/powershell\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/powershell\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-praat.js",
    "content": "ace.define(\"ace/mode/praat_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"if|then|else|elsif|elif|endif|fi|endfor|endproc|while|endwhile|repeat|until|select|plus|minus|assert|asserterror\",t=\"macintosh|windows|unix|praatVersion|praatVersion\\\\$pi|undefined|newline\\\\$|tab\\\\$|shellDirectory\\\\$|homeDirectory\\\\$|preferencesDirectory\\\\$|temporaryDirectory\\\\$|defaultDirectory\\\\$\",n=\"clearinfo|endSendPraat\",r=\"writeInfo|writeInfoLine|appendInfo|appendInfoLine|info\\\\$|writeFile|writeFileLine|appendFile|appendFileLine|abs|round|floor|ceiling|min|max|imin|imax|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|exp|ln|lnBeta|lnGamma|log10|log2|sinh|cosh|tanh|arcsinh|arccosh|arctanh|sigmoid|invSigmoid|erf|erfc|random(?:Uniform|Integer|Gauss|Poisson|Binomial)|gaussP|gaussQ|invGaussQ|incompleteGammaP|incompleteBeta|chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|fisherP|fisherQ|invFisherQ|binomialP|binomialQ|invBinomialP|invBinomialQ|hertzToBark|barkToHerz|hertzToMel|melToHertz|hertzToSemitones|semitonesToHerz|erb|hertzToErb|erbToHertz|phonToDifferenceLimens|differenceLimensToPhon|soundPressureToPhon|beta|beta2|besselI|besselK|numberOfColumns|numberOfRows|selected|selected\\\\$|numberOfSelected|variableExists|index|rindex|startsWith|endsWith|index_regex|rindex_regex|replace_regex\\\\$|length|extractWord\\\\$|extractLine\\\\$|extractNumber|left\\\\$|right\\\\$|mid\\\\$|replace\\\\$|date\\\\$|fixed\\\\$|percent\\\\$|zero#|linear#|randomUniform#|randomInteger#|randomGauss#|beginPause|endPause|demoShow|demoWindowTitle|demoInput|demoWaitForInput|demoClicked|demoClickedIn|demoX|demoY|demoKeyPressed|demoKey\\\\$|demoExtraControlKeyPressed|demoShiftKeyPressed|demoCommandKeyPressed|demoOptionKeyPressed|environment\\\\$|chooseReadFile\\\\$|chooseDirectory\\\\$|createDirectory|fileReadable|deleteFile|selectObject|removeObject|plusObject|minusObject|runScript|exitScript|beginSendPraat|endSendPraat|objectsAreIdentical\",i=\"Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|ClassificationTable|Cochleagram|Collection|Configuration|Confusion|ContingencyTable|Corpus|Correlation|Covariance|CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|Discriminant|Dissimilarity|Distance|Distributions|DurationTier|EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|FormantTier|GaussianMixture|HMM|HMM_Observation|HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|Transition|VocalTract|Weight|WordList\";this.$rules={start:[{token:\"string.interpolated\",regex:/'((?:\\.?[a-z][a-zA-Z0-9_.]*)(?:\\$|#|:[0-9]+)?)'/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\"],regex:/(^\\s*)(?:(\\.?[a-z][a-zA-Z0-9_.]*\\$?\\s+)(=)(\\s+))?(stopwatch)/},{token:[\"text\",\"keyword\",\"text\",\"string\"],regex:/(^\\s*)(print(?:line|tab)?|echo|exit|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\\s+)(.*)/},{token:[\"text\",\"keyword\"],regex:\"(^\\\\s*)(\"+n+\")$\"},{token:[\"text\",\"keyword.operator\",\"text\"],regex:/(\\s+)((?:\\+|-|\\/|\\*|<|>)=?|==?|!=|%|\\^|\\||and|or|not)(\\s+)/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:(\\.?[a-z][a-zA-Z0-9_.]*\\$?\\s+)(=)(\\s+))?(?:((?:no)?warn|(?:unix_)?nocheck|noprogress)(\\s+))?((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)((?:no(?:warn|check))?)(\\s*)(\\b(?:editor(?::?)|endeditor)\\b)/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:(demo)?(\\s+))((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/^(\\s*)(?:(demo)(\\s+))?(10|12|14|16|24)$/},{token:[\"text\",\"support.function\",\"text\"],regex:/(\\s*)(do\\$?)(\\s*:\\s*|\\s*\\(\\s*)/},{token:\"entity.name.type\",regex:\"(\"+i+\")\"},{token:\"variable.language\",regex:\"(\"+t+\")\"},{token:[\"support.function\",\"text\"],regex:\"((?:\"+r+\")\\\\$?)(\\\\s*(?::|\\\\())\"},{token:\"keyword\",regex:/(\\bfor\\b)/,next:\"for\"},{token:\"keyword\",regex:\"(\\\\b(?:\"+e+\")\\\\b)\"},{token:\"string\",regex:/\"[^\"]*\"/},{token:\"string\",regex:/\"[^\"]*$/,next:\"brokenstring\"},{token:[\"text\",\"keyword\",\"text\",\"entity.name.section\"],regex:/(^\\s*)(\\bform\\b)(\\s+)(.*)/,next:\"form\"},{token:\"constant.numeric\",regex:/\\b[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:/(procedure)(\\s+)([^:\\s]+)/},{token:[\"entity.name.function\",\"text\"],regex:/(@\\S+)(:|\\s*\\()/},{token:[\"text\",\"keyword\",\"text\",\"entity.name.function\"],regex:/(^\\s*)(call)(\\s+)(\\S+)/},{token:\"comment\",regex:/(^\\s*#|;).*$/},{token:\"text\",regex:/\\s+/}],form:[{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:optionmenu|choice)\\s+)(\\S+:\\s+)([0-9]+)/},{token:[\"keyword\",\"constant.numeric\"],regex:/((?:option|button)\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/((?:option|button)\\s+)(.*)/},{token:[\"keyword\",\"text\",\"string\"],regex:/((?:sentence|text)\\s+)(\\S+\\s*)(.*)/},{token:[\"keyword\",\"text\",\"string\",\"invalid.illegal\"],regex:/(word\\s+)(\\S+\\s*)(\\S+)?(\\s.*)?/},{token:[\"keyword\",\"text\",\"constant.language\"],regex:/(boolean\\s+)(\\S+\\s*)(0|1|\"?(?:yes|no)\"?)/},{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:real|natural|positive|integer)\\s+)(\\S+\\s*)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/(comment\\s+)(.*)/},{token:\"keyword\",regex:\"endform\",next:\"start\"}],\"for\":[{token:[\"keyword\",\"text\",\"constant.numeric\",\"text\"],regex:/(from|to)(\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?)(\\s*)/},{token:[\"keyword\",\"text\"],regex:/(from|to)(\\s+\\S+\\s*)/},{token:\"text\",regex:/$/,next:\"start\"}],brokenstring:[{token:[\"text\",\"string\"],regex:/(\\s*\\.{3})([^\"]*)/},{token:\"string\",regex:/\"/,next:\"start\"}]}};r.inherits(s,i),t.PraatHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/praat\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/praat_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./praat_highlight_rules\").PraatHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/praat\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/praat\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-prolog.js",
    "content": "ace.define(\"ace/mode/prolog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comment\"},{include:\"#basic_fact\"},{include:\"#rule\"},{include:\"#directive\"},{include:\"#fact\"}],\"#atom\":[{token:\"constant.other.atom.prolog\",regex:\"\\\\b[a-z][a-zA-Z0-9_]*\\\\b\"},{token:\"constant.numeric.prolog\",regex:\"-?\\\\d+(?:\\\\.\\\\d+)?\"},{include:\"#string\"}],\"#basic_elem\":[{include:\"#comment\"},{include:\"#statement\"},{include:\"#constants\"},{include:\"#operators\"},{include:\"#builtins\"},{include:\"#list\"},{include:\"#atom\"},{include:\"#variable\"}],\"#basic_fact\":[{token:[\"entity.name.function.fact.basic.prolog\",\"punctuation.end.fact.basic.prolog\"],regex:\"([a-z]\\\\w*)(\\\\.)\"}],\"#builtins\":[{token:\"support.function.builtin.prolog\",regex:\"\\\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\\\b\"}],\"#comment\":[{token:[\"punctuation.definition.comment.prolog\",\"comment.line.percentage.prolog\"],regex:\"(%)(.*$)\"},{token:\"punctuation.definition.comment.prolog\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.prolog\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.prolog\"}]}],\"#constants\":[{token:\"constant.language.prolog\",regex:\"\\\\b(?:true|false|yes|no)\\\\b\"}],\"#directive\":[{token:\"keyword.operator.directive.prolog\",regex:\":-\",push:[{token:\"meta.directive.prolog\",regex:\"\\\\.\",next:\"pop\"},{include:\"#comment\"},{include:\"#statement\"},{defaultToken:\"meta.directive.prolog\"}]}],\"#expr\":[{include:\"#comments\"},{token:\"meta.expression.prolog\",regex:\"\\\\(\",push:[{token:\"meta.expression.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#expr\"},{defaultToken:\"meta.expression.prolog\"}]},{token:\"keyword.control.cutoff.prolog\",regex:\"!\"},{token:\"punctuation.control.and.prolog\",regex:\",\"},{token:\"punctuation.control.or.prolog\",regex:\";\"},{include:\"#basic_elem\"}],\"#fact\":[{token:[\"entity.name.function.fact.prolog\",\"punctuation.begin.fact.parameters.prolog\"],regex:\"([a-z]\\\\w*)(\\\\()(?!.*:-)\",push:[{token:[\"punctuation.end.fact.parameters.prolog\",\"punctuation.end.fact.prolog\"],regex:\"(\\\\))(\\\\.?)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.fact.prolog\"}]}],\"#list\":[{token:\"punctuation.begin.list.prolog\",regex:\"\\\\[(?=.*\\\\])\",push:[{token:\"punctuation.end.list.prolog\",regex:\"\\\\]\",next:\"pop\"},{include:\"#comment\"},{token:\"punctuation.separator.list.prolog\",regex:\",\"},{token:\"punctuation.concat.list.prolog\",regex:\"\\\\|\",push:[{token:\"meta.list.concat.prolog\",regex:\"(?=\\\\s*\\\\])\",next:\"pop\"},{include:\"#basic_elem\"},{defaultToken:\"meta.list.concat.prolog\"}]},{include:\"#basic_elem\"},{defaultToken:\"meta.list.prolog\"}]}],\"#operators\":[{token:\"keyword.operator.prolog\",regex:\"\\\\\\\\\\\\+|\\\\bnot\\\\b|\\\\bis\\\\b|->|[><]|[><\\\\\\\\:=]?=|(?:=\\\\\\\\|\\\\\\\\=)=\"}],\"#parameter\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.parameter.prolog\",regex:\"\\\\b[A-Z_]\\\\w*\\\\b\"},{token:\"punctuation.separator.parameters.prolog\",regex:\",\"},{include:\"#basic_elem\"},{token:\"text\",regex:\"[^\\\\s]\"}],\"#rule\":[{token:\"meta.rule.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"punctuation.rule.end.prolog\",regex:\"\\\\.\",next:\"pop\"},{token:\"meta.rule.signature.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"meta.rule.signature.prolog\",regex:\"(?=:-)\",next:\"pop\"},{token:\"entity.name.function.rule.prolog\",regex:\"[a-z]\\\\w*(?=\\\\(|\\\\s*:-)\"},{token:\"punctuation.rule.parameters.begin.prolog\",regex:\"\\\\(\",push:[{token:\"punctuation.rule.parameters.end.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.rule.parameters.prolog\"}]},{defaultToken:\"meta.rule.signature.prolog\"}]},{token:\"keyword.operator.definition.prolog\",regex:\":-\",push:[{token:\"meta.rule.definition.prolog\",regex:\"(?=\\\\.)\",next:\"pop\"},{include:\"#comment\"},{include:\"#expr\"},{defaultToken:\"meta.rule.definition.prolog\"}]},{defaultToken:\"meta.rule.prolog\"}]}],\"#statement\":[{token:\"meta.statement.prolog\",regex:\"(?=[a-z]\\\\w*\\\\()\",push:[{token:\"punctuation.end.statement.parameters.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#builtins\"},{include:\"#atom\"},{token:\"punctuation.begin.statement.parameters.prolog\",regex:\"\\\\(\",push:[{token:\"meta.statement.parameters.prolog\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.statement.prolog\",regex:\",\"},{include:\"#basic_elem\"},{defaultToken:\"meta.statement.parameters.prolog\"}]},{defaultToken:\"meta.statement.prolog\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.prolog\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.prolog\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.prolog\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.quote.prolog\",regex:\"''\"},{defaultToken:\"string.quoted.single.prolog\"}]}],\"#variable\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.other.prolog\",regex:\"\\\\b[A-Z_][a-zA-Z0-9_]*\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"plg\",\"prolog\"],foldingStartMarker:\"(%\\\\s*region \\\\w*)|([a-z]\\\\w*.*:- ?)\",foldingStopMarker:\"(%\\\\s*end(\\\\s*region)?)|(?=\\\\.)\",keyEquivalent:\"^~P\",name:\"Prolog\",scopeName:\"source.prolog\"},r.inherits(s,i),t.PrologHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/prolog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/prolog_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./prolog_highlight_rules\").PrologHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/prolog\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/prolog\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-properties.js",
    "content": "ace.define(\"ace/mode/properties_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=/\\\\u[0-9a-fA-F]{4}|\\\\/;this.$rules={start:[{token:\"comment\",regex:/[!#].*$/},{token:\"keyword\",regex:/[=:]$/},{token:\"keyword\",regex:/[=:]/,next:\"value\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"variable\"}],value:[{regex:/\\\\$/,token:\"string\",next:\"value\"},{regex:/$/,token:\"string\",next:\"start\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PropertiesHighlightRules=s}),ace.define(\"ace/mode/properties\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/properties_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./properties_highlight_rules\").PropertiesHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/properties\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/properties\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-protobuf.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source,l=\"%\"+/(\\d+\\$)?/.source+/[#0\\- +']*/.source+/[,;:_]?/.source+/((-?\\d+)|\\*(-?\\d+\\$)?)?/.source+/(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source+/(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source+/(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:l},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/protobuf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes\",t=\"message|required|optional|repeated|package|import|option|enum\",n=this.createKeywordMapper({\"keyword.declaration.protobuf\":t,\"support.type\":e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"=\",token:\"keyword.operator.assignment.protobuf\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.ProtobufHighlightRules=s}),ace.define(\"ace/mode/protobuf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/protobuf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./protobuf_highlight_rules\").ProtobufHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.foldingRules=new o,this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/protobuf\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/protobuf\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-python.js",
    "content": "ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"variable.language\":\"self|cls\",\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./python_highlight_rules\").PythonHighlightRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\"),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/python\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/python\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-r.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/r\",[\"require\",\"exports\",\"module\",\"ace/unicode\",\"ace/range\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/r_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../unicode\"),i=e(\"../range\").Range,s=e(\"../lib/oop\"),o=e(\"./text\").Mode,u=e(\"./text_highlight_rules\").TextHighlightRules,a=e(\"./r_highlight_rules\").RHighlightRules,f=e(\"./matching_brace_outdent\").MatchingBraceOutdent,l=function(){this.HighlightRules=a,this.$outdent=new f,this.$behaviour=this.$defaultBehaviour};s.inherits(l,o),function(){this.lineCommentStart=\"#\",this.tokenRe=new RegExp(\"^[\"+r.wordChars+\"._]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+r.wordChars+\"._]|s])+\",\"g\"),this.$id=\"ace/mode/r\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/r\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-razor.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|partial|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))?'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/razor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/csharp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=e(\"./csharp_highlight_rules\").CSharpHighlightRules,a=\"razor-block-\",f=function(){u.call(this);var e=function(e,t){return typeof t==\"function\"?t(e):t},t=\"in-braces\";this.$rules.start.unshift({regex:\"[\\\\[({]\",onMatch:function(e,n,r){var i=/razor-[^\\-]+-/.exec(n)[0];return r.unshift(e),r.unshift(i+t),this.next=i+t,\"paren.lparen\"}},{start:\"@\\\\*\",end:\"\\\\*@\",token:\"comment\"});var n={\"{\":\"}\",\"[\":\"]\",\"(\":\")\"};this.$rules[t]=i.deepCopy(this.$rules.start),this.$rules[t].unshift({regex:\"[\\\\])}]\",onMatch:function(t,r,i){var s=i[1];return n[s]!==t?\"invalid.illegal\":(i.shift(),i.shift(),this.next=e(t,i[0])||\"start\",\"paren.rparen\")}})};r.inherits(f,u);var l=function(){o.call(this);var e={regex:\"@[({]|@functions{\",onMatch:function(e,t,n){return n.unshift(e),n.unshift(\"razor-block-start\"),this.next=\"razor-block-start\",\"punctuation.block.razor\"}},t={\"@{\":\"}\",\"@(\":\")\",\"@functions{\":\"}\"},n={regex:\"[})]\",onMatch:function(e,n,r){var i=r[1];return t[i]!==e?\"invalid.illegal\":(r.shift(),r.shift(),this.next=r.shift()||\"start\",\"punctuation.block.razor\")}},r={regex:\"@(?![{(])\",onMatch:function(e,t,n){return n.unshift(\"razor-short-start\"),this.next=\"razor-short-start\",\"punctuation.short.razor\"}},i={token:\"\",regex:\"(?=[^A-Za-z_\\\\.()\\\\[\\\\]])\",next:\"pop\"},s={regex:\"@(?=if)\",onMatch:function(e,t,n){return n.unshift(function(e){return e!==\"}\"?\"start\":n.shift()||\"start\"}),this.next=\"razor-block-start\",\"punctuation.control.razor\"}},u=[{start:\"@\\\\*\",end:\"\\\\*@\",token:\"comment\"},{token:[\"meta.directive.razor\",\"text\",\"identifier\"],regex:\"^(\\\\s*@model)(\\\\s+)(.+)$\"},e,r];for(var a in this.$rules)this.$rules[a].unshift.apply(this.$rules[a],u);this.embedRules(f,\"razor-block-\",[n],[\"start\"]),this.embedRules(f,\"razor-short-\",[i],[\"start\"]),this.normalizeRules()};r.inherits(l,o),t.RazorHighlightRules=l,t.RazorLangHighlightRules=f}),ace.define(\"ace/mode/razor_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../token_iterator\").TokenIterator,i=[\"abstract\",\"as\",\"base\",\"bool\",\"break\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"else\",\"enum\",\"event\",\"explicit\",\"extern\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"goto\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"is\",\"lock\",\"long\",\"namespace\",\"new\",\"null\",\"object\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"struct\",\"switch\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"void\",\"volatile\",\"while\"],s=[\"Html\",\"Model\",\"Url\",\"Layout\"],o=function(){};(function(){this.getCompletions=function(e,t,n,r){if(e.lastIndexOf(\"razor-short-start\")==-1&&e.lastIndexOf(\"razor-block-start\")==-1)return[];var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e.lastIndexOf(\"razor-short-start\")!=-1)return this.getShortStartCompletions(e,t,n,r);if(e.lastIndexOf(\"razor-block-start\")!=-1)return this.getKeywordCompletions(e,t,n,r)},this.getShortStartCompletions=function(e,t,n,r){return s.map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})},this.getKeywordCompletions=function(e,t,n,r){return s.concat(i).map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.RazorCompletions=o}),ace.define(\"ace/mode/razor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/razor_highlight_rules\",\"ace/mode/razor_completions\",\"ace/mode/html_completions\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./razor_highlight_rules\").RazorHighlightRules,o=e(\"./razor_completions\").RazorCompletions,u=e(\"./html_completions\").HtmlCompletions,a=function(){i.call(this),this.$highlightRules=new s,this.$completer=new o,this.$htmlCompleter=new u};r.inherits(a,i),function(){this.getCompletions=function(e,t,n,r){var i=this.$completer.getCompletions(e,t,n,r),s=this.$htmlCompleter.getCompletions(e,t,n,r);return i.concat(s)},this.createWorker=function(e){return null},this.$id=\"ace/mode/razor\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/razor\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-rdoc.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\begin)({)(verbatim)(})\",next:\"verbatim\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\begin)({)(lstlisting)(})\",next:\"lstlisting\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)([\\\\w*]*)(})\"},{token:\"storage.type\",regex:/\\\\verb\\b\\*?/,next:[{token:[\"keyword.operator\",\"string\",\"keyword.operator\"],regex:\"(.)(.*?)(\\\\1|$)|\",next:\"start\"}]},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}],verbatim:[{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\end)({)(verbatim)(})\",next:\"start\"},{defaultToken:\"text\"}],lstlisting:[{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\end)({)(lstlisting)(})\",next:\"start\"},{defaultToken:\"text\"}]},this.normalizeRules()};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/rdoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/latex_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./latex_highlight_rules\"),u=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:\"text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\s+\"},{token:\"nospell.text\",regex:\"\\\\w+\"}]}};r.inherits(u,s),t.RDocHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/rdoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rdoc_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rdoc_highlight_rules\").RDocHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(e){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/rdoc\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/rdoc\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-red.js",
    "content": "ace.define(\"ace/mode/red_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"\";this.$rules={start:[{token:\"keyword.operator\",regex:/\\s([\\-+%/=<>*]|(?:\\*\\*\\|\\/\\/|==|>>>?|<>|<<|=>|<=|=\\?))(\\s|(?=:))/},{token:\"string.email\",regex:/\\w[-\\w._]*\\@\\w[-\\w._]*/},{token:\"value.time\",regex:/\\b\\d+:\\d+(:\\d+)?/},{token:\"string.url\",regex:/\\w[-\\w_]*\\:(\\/\\/)?\\w[-\\w._]*(:\\d+)?/},{token:\"value.date\",regex:/(\\b\\d{1,4}[-/]\\d{1,2}[-/]\\d{1,2}|\\d{1,2}[-/]\\d{1,2}[-/]\\d{1,4})\\b/},{token:\"value.tuple\",regex:/\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(\\.\\d{1,3}){0,9}/},{token:\"value.pair\",regex:/[+-]?\\d+x[-+]?\\d+/},{token:\"value.binary\",regex:/\\b2#{([01]{8})+}/},{token:\"value.binary\",regex:/\\b64#{([\\w/=+])+}/},{token:\"value.binary\",regex:/(16)?#{([\\dabcdefABCDEF][\\dabcdefABCDEF])*}/},{token:\"value.issue\",regex:/#\\w[-\\w'*.]*/},{token:\"value.numeric\",regex:/[+-]?\\d['\\d]*(?:\\.\\d+)?e[-+]?\\d{1,3}\\%?(?!\\w)/},{token:\"invalid.illegal\",regex:/[+-]?\\d['\\d]*(?:\\.\\d+)?\\%?[a-zA-Z]/},{token:\"value.numeric\",regex:/[+-]?\\d['\\d]*(?:\\.\\d+)?\\%?(?![a-zA-Z])/},{token:\"value.character\",regex:/#\"(\\^[-@/_~^\"HKLM\\[]|.)\"/},{token:\"string.file\",regex:/%[-\\w\\.\\/]+/},{token:\"string.tag\",regex:/</,next:\"tag\"},{token:\"string\",regex:/\"/,next:\"string\"},{token:\"string.other\",regex:\"{\",next:\"string.other\"},{token:\"comment\",regex:\"comment [{]\",next:\"comment\"},{token:\"comment\",regex:/;.+$/},{token:\"paren.map-start\",regex:\"#\\\\(\"},{token:\"paren.block-start\",regex:\"[\\\\[]\"},{token:\"paren.block-end\",regex:\"[\\\\]]\"},{token:\"paren.parens-start\",regex:\"[(]\"},{token:\"paren.parens-end\",regex:\"\\\\)\"},{token:\"keyword\",regex:\"/local|/external\"},{token:\"keyword.preprocessor\",regex:\"#(if|either|switch|case|include|do|macrolocal|reset|process|trace)\"},{token:\"constant.datatype!\",regex:\"(?:datatype|unset|none|logic|block|paren|string|file|url|char|integer|float|word|set-word|lit-word|get-word|refinement|issue|native|action|op|function|path|lit-path|set-path|get-path|routine|bitset|point|object|typeset|error|vector|hash|pair|percent|tuple|map|binary|time|tag|email|handle|date|image|event|series|any-type|number|any-object|scalar|any-string|any-word|any-function|any-block|any-list|any-path|immediate|all-word|internal|external|default)!(?![-!?\\\\w~])\"},{token:\"keyword.function\",regex:\"\\\\b(?:collect|quote|on-parse-event|math|last|source|expand|show|context|object|input|quit|dir|make-dir|cause-error|error\\\\?|none\\\\?|block\\\\?|any-list\\\\?|word\\\\?|char\\\\?|any-string\\\\?|series\\\\?|binary\\\\?|attempt|url\\\\?|string\\\\?|suffix\\\\?|file\\\\?|object\\\\?|body-of|first|second|third|mod|clean-path|dir\\\\?|to-red-file|normalize-dir|list-dir|pad|empty\\\\?|dirize|offset\\\\?|what-dir|expand-directives|load|split-path|change-dir|to-file|path-thru|save|load-thru|View|float\\\\?|to-float|charset|\\\\?|probe|set-word\\\\?|q|words-of|replace|repend|react|function\\\\?|spec-of|unset\\\\?|halt|op\\\\?|any-function\\\\?|to-paren|tag\\\\?|routine|class-of|size-text|draw|handle\\\\?|link-tabs-to-parent|link-sub-to-parent|on-face-deep-change*|update-font-faces|do-actor|do-safe|do-events|pair\\\\?|foreach-face|hex-to-rgb|issue\\\\?|alter|path\\\\?|typeset\\\\?|datatype\\\\?|set-flag|layout|extract|image\\\\?|get-word\\\\?|to-logic|to-set-word|to-block|center-face|dump-face|request-font|request-file|request-dir|rejoin|ellipsize-at|any-block\\\\?|any-object\\\\?|map\\\\?|keys-of|a-an|also|parse-func-spec|help-string|what|routine\\\\?|action\\\\?|native\\\\?|refinement\\\\?|common-substr|red-complete-file|red-complete-path|unview|comment|\\\\?\\\\?|fourth|fifth|values-of|bitset\\\\?|email\\\\?|get-path\\\\?|hash\\\\?|integer\\\\?|lit-path\\\\?|lit-word\\\\?|logic\\\\?|paren\\\\?|percent\\\\?|set-path\\\\?|time\\\\?|tuple\\\\?|date\\\\?|vector\\\\?|any-path\\\\?|any-word\\\\?|number\\\\?|immediate\\\\?|scalar\\\\?|all-word\\\\?|to-bitset|to-binary|to-char|to-email|to-get-path|to-get-word|to-hash|to-integer|to-issue|to-lit-path|to-lit-word|to-map|to-none|to-pair|to-path|to-percent|to-refinement|to-set-path|to-string|to-tag|to-time|to-typeset|to-tuple|to-unset|to-url|to-word|to-image|to-date|parse-trace|modulo|eval-set-path|extract-boot-args|flip-exe-flag|split|do-file|exists-thru\\\\?|read-thru|do-thru|cos|sin|tan|acos|asin|atan|atan2|sqrt|clear-reactions|dump-reactions|react\\\\?|within\\\\?|overlap\\\\?|distance\\\\?|face\\\\?|metrics\\\\?|get-scroller|insert-event-func|remove-event-func|set-focus|help|fetch-help|about|ls|ll|pwd|cd|red-complete-input|matrix)(?![-!?\\\\w~])\"},{token:\"keyword.action\",regex:\"\\\\b(?:to|remove|copy|insert|change|clear|move|poke|put|random|reverse|sort|swap|take|trim|add|subtract|divide|multiply|make|reflect|form|mold|modify|absolute|negate|power|remainder|round|even\\\\?|odd\\\\?|and~|complement|or~|xor~|append|at|back|find|skip|tail|head|head\\\\?|index\\\\?|length\\\\?|next|pick|select|tail\\\\?|delete|read|write)(?![-_!?\\\\w~])\"},{token:\"keyword.native\",regex:\"\\\\b(?:not|any|set|uppercase|lowercase|checksum|try|catch|browse|throw|all|as|remove-each|func|function|does|has|do|reduce|compose|get|print|prin|equal\\\\?|not-equal\\\\?|strict-equal\\\\?|lesser\\\\?|greater\\\\?|lesser-or-equal\\\\?|greater-or-equal\\\\?|same\\\\?|type\\\\?|stats|bind|in|parse|union|unique|intersect|difference|exclude|complement\\\\?|dehex|negative\\\\?|positive\\\\?|max|min|shift|to-hex|sine|cosine|tangent|arcsine|arccosine|arctangent|arctangent2|NaN\\\\?|zero\\\\?|log-2|log-10|log-e|exp|square-root|construct|value\\\\?|as-pair|extend|debase|enbase|to-local-file|wait|unset|new-line|new-line\\\\?|context\\\\?|set-env|get-env|list-env|now|sign\\\\?|call|size\\\\?)(?![-!?\\\\w~])\"},{token:\"keyword\",regex:\"\\\\b(?:Red(?=\\\\s+\\\\[)|object|context|make|self|keep)(?![-!?\\\\w~])\"},{token:\"variable.language\",regex:\"this\"},{token:\"keyword.control\",regex:\"(?:while|if|return|case|unless|either|until|loop|repeat|forever|foreach|forall|switch|break|continue|exit)(?![-!?\\\\w~])\"},{token:\"constant.language\",regex:\"\\\\b(?:true|false|on|off|yes|none|no)(?![-!?\\\\w~])\"},{token:\"constant.numeric\",regex:/\\bpi(?![^-_])/},{token:\"constant.character\",regex:\"\\\\b(space|tab|newline|cr|lf)(?![-!?\\\\w~])\"},{token:\"keyword.operator\",regex:\"s(or|and|xor|is)s\"},{token:\"variable.get-path\",regex:/:\\w[-\\w'*.?!]*(\\/\\w[-\\w'*.?!]*)(\\/\\w[-\\w'*.?!]*)*/},{token:\"variable.set-path\",regex:/\\w[-\\w'*.?!]*(\\/\\w[-\\w'*.?!]*)(\\/\\w[-\\w'*.?!]*)*:/},{token:\"variable.lit-path\",regex:/'\\w[-\\w'*.?!]*(\\/\\w[-\\w'*.?!]*)(\\/\\w[-\\w'*.?!]*)*/},{token:\"variable.path\",regex:/\\w[-\\w'*.?!]*(\\/\\w[-\\w'*.?!]*)(\\/\\w[-\\w'*.?!]*)*/},{token:\"variable.refinement\",regex:/\\/\\w[-\\w'*.?!]*/},{token:\"keyword.view.style\",regex:\"\\\\b(?:window|base|button|text|field|area|check|radio|progress|slider|camera|text-list|drop-list|drop-down|panel|group-box|tab-panel|h1|h2|h3|h4|h5|box|image|init)(?![-!?\\\\w~])\"},{token:\"keyword.view.event\",regex:\"\\\\b(?:detect|on-detect|time|on-time|drawing|on-drawing|scroll|on-scroll|down|on-down|up|on-up|mid-down|on-mid-down|mid-up|on-mid-up|alt-down|on-alt-down|alt-up|on-alt-up|aux-down|on-aux-down|aux-up|on-aux-up|wheel|on-wheel|drag-start|on-drag-start|drag|on-drag|drop|on-drop|click|on-click|dbl-click|on-dbl-click|over|on-over|key|on-key|key-down|on-key-down|key-up|on-key-up|ime|on-ime|focus|on-focus|unfocus|on-unfocus|select|on-select|change|on-change|enter|on-enter|menu|on-menu|close|on-close|move|on-move|resize|on-resize|moving|on-moving|resizing|on-resizing|zoom|on-zoom|pan|on-pan|rotate|on-rotate|two-tap|on-two-tap|press-tap|on-press-tap|create|on-create|created|on-created)(?![-!?\\\\w~])\"},{token:\"keyword.view.option\",regex:\"\\\\b(?:all-over|center|color|default|disabled|down|flags|focus|font|font-color|font-name|font-size|hidden|hint|left|loose|name|no-border|now|rate|react|select|size|space)(?![-!?\\\\w~])\"},{token:\"constant.other.colour\",regex:\"\\\\b(?:Red|white|transparent|black|gray|aqua|beige|blue|brick|brown|coal|coffee|crimson|cyan|forest|gold|green|ivory|khaki|leaf|linen|magenta|maroon|mint|navy|oldrab|olive|orange|papaya|pewter|pink|purple|reblue|rebolor|sienna|silver|sky|snow|tanned|teal|violet|water|wheat|yello|yellow|glass)(?![-!?\\\\w~])\"},{token:\"variable.get-word\",regex:/\\:\\w[-\\w'*.?!]*/},{token:\"variable.set-word\",regex:/\\w[-\\w'*.?!]*\\:/},{token:\"variable.lit-word\",regex:/'\\w[-\\w'*.?!]*/},{token:\"variable.word\",regex:/\\b\\w+[-\\w'*.!?]*/},{caseInsensitive:!0}],string:[{token:\"string\",regex:/\"/,next:\"start\"},{defaultToken:\"string\"}],\"string.other\":[{token:\"string.other\",regex:/}/,next:\"start\"},{defaultToken:\"string.other\"}],tag:[{token:\"string.tag\",regex:/>/,next:\"start\"},{defaultToken:\"string.tag\"}],comment:[{token:\"comment\",regex:/}/,next:\"start\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.RedHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/red\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/red_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./red_highlight_rules\").RedHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=function(){this.HighlightRules=s,this.foldingRules=new o,this.$outdent=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"comment {\",end:\"}\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\[\\(]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/red\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/red\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-redshift.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"text\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/redshift_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/json_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./json_highlight_rules\").JsonHighlightRules,a=function(){var e=\"aes128|aes256|all|allowoverwrite|analyse|analyze|and|any|array|as|asc|authorization|backup|between|binary|blanksasnull|both|bytedict|bzip2|case|cast|check|collate|column|constraint|create|credentials|cross|current_date|current_time|current_timestamp|current_user|current_user_id|default|deferrable|deflate|defrag|delta|delta32k|desc|disable|distinct|do|else|emptyasnull|enable|encode|encrypt|encryption|end|except|explicit|false|for|foreign|freeze|from|full|globaldict256|globaldict64k|grant|group|gzip|having|identity|ignore|ilike|in|initially|inner|intersect|into|is|isnull|join|leading|left|like|limit|localtime|localtimestamp|lun|luns|lzo|lzop|minus|mostly13|mostly32|mostly8|natural|new|not|notnull|null|nulls|off|offline|offset|old|on|only|open|or|order|outer|overlaps|parallel|partition|percent|permissions|placing|primary|raw|readratio|recover|references|rejectlog|resort|restore|right|select|session_user|similar|some|sysdate|system|table|tag|tdes|text255|text32k|then|timestamp|to|top|trailing|true|truncatecolumns|union|unique|user|using|verbose|wallet|when|where|with|without\",t=\"current_schema|current_schemas|has_database_privilege|has_schema_privilege|has_table_privilege|age|current_time|current_timestamp|localtime|isfinite|now|ascii|get_bit|get_byte|octet_length|set_bit|set_byte|to_ascii|avg|count|listagg|max|min|stddev_samp|stddev_pop|sum|var_samp|var_pop|bit_and|bit_or|bool_and|bool_or|avg|count|cume_dist|dense_rank|first_value|last_value|lag|lead|listagg|max|median|min|nth_value|ntile|percent_rank|percentile_cont|percentile_disc|rank|ratio_to_report|row_number|case|coalesce|decode|greatest|least|nvl|nvl2|nullif|add_months|age|convert_timezone|current_date|timeofday|current_time|current_timestamp|date_cmp|date_cmp_timestamp|date_part_year|dateadd|datediff|date_part|date_trunc|extract|getdate|interval_cmp|isfinite|last_day|localtime|localtimestamp|months_between|next_day|now|sysdate|timestamp_cmp|timestamp_cmp_date|trunc|abs|acos|asin|atan|atan2|cbrt|ceiling|ceil|checksum|cos|cot|degrees|dexp|dlog1|dlog10|exp|floor|ln|log|mod|pi|power|radians|random|round|sin|sign|sqrt|tan|trunc|ascii|bpcharcmp|btrim|bttext_pattern_cmp|char_length|character_length|charindex|chr|concat|crc32|func_sha1|get_bit|get_byte|initcap|left|right|len|length|lower|lpad|rpad|ltrim|md5|octet_length|position|quote_ident|quote_literal|regexp_count|regexp_instr|regexp_replace|regexp_substr|repeat|replace|replicate|reverse|rtrim|set_bit|set_byte|split_part|strpos|strtol|substring|textlen|to_ascii|to_hex|translate|trim|upper|json_array_length|json_extract_array_element_text|json_extract_path_text|cast|convert|to_char|to_date|to_number|current_database|current_schema|current_schemas|current_user|current_user_id|has_database_privilege|has_schema_privilege|has_table_privilege|pg_backend_pid|pg_last_copy_count|pg_last_copy_id|pg_last_query_id|pg_last_unload_count|session_user|slice_num|user|version\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\",!0),r=[{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"variable.language\",regex:'\".*?\"'},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|!!|!~|!~\\\\*|!~~|!~~\\\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\\\&|\\\\&\\\\&|\\\\&<|\\\\&<\\\\||\\\\&>|\\\\*|\\\\+|\\\\-|/|<|<#>|<\\\\->|<<|<<=|<<\\\\||<=|<>|<\\\\?>|<@|<\\\\^|=|>|>=|>>|>>=|>\\\\^|\\\\?#|\\\\?\\\\-|\\\\?\\\\-\\\\||\\\\?\\\\||\\\\?\\\\|\\\\||@|@\\\\-@|@>|@@|@@@|\\\\^|\\\\||\\\\|\\\\&>|\\\\|/|\\\\|>>|\\\\|\\\\||\\\\|\\\\|/|~|~\\\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}];this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"keyword.statementBegin\",regex:\"^[a-zA-Z]+\",next:\"statement\"},{token:\"support.buildin\",regex:\"^\\\\\\\\[\\\\S]+.*$\"}],statement:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentStatement\"},{token:\"statementEnd\",regex:\";\",next:\"start\"},{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"json-start\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$$\",next:\"dollarSql\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarStatementString\"}].concat(r),dollarSql:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentDollarSql\"},{token:\"string\",regex:\"^\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSqlString\"}].concat(r),comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],commentStatement:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"statement\"},{token:\"comment\",regex:\".+\"}],commentDollarSql:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"dollarSql\"},{token:\"comment\",regex:\".+\"}],dollarStatementString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\".+\"}],dollarSqlString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSql\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.embedRules(u,\"json-\",[{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"statement\"}])};r.inherits(a,o),t.RedshiftHighlightRules=a}),ace.define(\"ace/mode/redshift\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/redshift_highlight_rules\",\"ace/range\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./redshift_highlight_rules\").RedshiftHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){return e==\"start\"||e==\"keyword.statementEnd\"?\"\":this.$getIndent(t)},this.$id=\"ace/mode/redshift\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/redshift\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-rhtml.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/rhtml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/r_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./r_highlight_rules\").RHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this),this.$rules.start.unshift({token:\"support.function.codebegin\",regex:\"^<!--\\\\s*begin.rcode\\\\s*(?:.*)\",next:\"r-start\"}),this.embedRules(i,\"r-\",[{token:\"support.function.codeend\",regex:\"^\\\\s*end.rcode\\\\s*-->\",next:\"start\"}],[\"start\"]),this.normalizeRules()};r.inherits(u,o),t.RHtmlHighlightRules=u}),ace.define(\"ace/mode/rhtml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/rhtml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./rhtml_highlight_rules\").RHtmlHighlightRules,o=function(e,t){i.call(this),this.$session=t,this.HighlightRules=s};r.inherits(o,i),function(){this.insertChunkInfo={value:\"<!--begin.rcode\\n\\nend.rcode-->\\n\",position:{row:0,column:15}},this.getLanguageMode=function(e){return this.$session.getState(e.row).match(/^r-/)?\"R\":\"HTML\"},this.$id=\"ace/mode/rhtml\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/rhtml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-rst.js",
    "content": "ace.define(\"ace/mode/rst_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e={title:\"markup.heading\",list:\"markup.heading\",table:\"constant\",directive:\"keyword.operator\",entity:\"string\",link:\"markup.underline.list\",bold:\"markup.bold\",italic:\"markup.italic\",literal:\"support.function\",comment:\"comment\"},t=\"(^|\\\\s|[\\\"'(<\\\\[{\\\\-/:])\",n=\"(?:$|(?=\\\\s|[\\\\\\\\.,;!?\\\\-/:\\\"')>\\\\]}]))\";this.$rules={start:[{token:e.title,regex:\"(^)([\\\\=\\\\-`:\\\\.'\\\"~\\\\^_\\\\*\\\\+#])(\\\\2{2,}\\\\s*$)\"},{token:[\"text\",e.directive,e.literal],regex:\"(^\\\\s*\\\\.\\\\. )([^: ]+::)(.*$)\",next:\"codeblock\"},{token:e.directive,regex:\"::$\",next:\"codeblock\"},{token:[e.entity,e.link],regex:\"(^\\\\.\\\\. _[^:]+:)(.*$)\"},{token:[e.entity,e.link],regex:\"(^__ )(https?://.*$)\"},{token:e.entity,regex:\"^\\\\.\\\\. \\\\[[^\\\\]]+\\\\] \"},{token:e.comment,regex:\"^\\\\.\\\\. .*$\",next:\"comment\"},{token:e.list,regex:\"^\\\\s*[\\\\*\\\\+-] \"},{token:e.list,regex:\"^\\\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\. \"},{token:e.list,regex:\"^\\\\s*\\\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\) \"},{token:e.table,regex:\"^={2,}(?: +={2,})+$\"},{token:e.table,regex:\"^\\\\+-{2,}(?:\\\\+-{2,})+\\\\+$\"},{token:e.table,regex:\"^\\\\+={2,}(?:\\\\+={2,})+\\\\+$\"},{token:[\"text\",e.literal],regex:t+\"(``)(?=\\\\S)\",next:\"code\"},{token:[\"text\",e.bold],regex:t+\"(\\\\*\\\\*)(?=\\\\S)\",next:\"bold\"},{token:[\"text\",e.italic],regex:t+\"(\\\\*)(?=\\\\S)\",next:\"italic\"},{token:e.entity,regex:\"\\\\|[\\\\w\\\\-]+?\\\\|\"},{token:e.entity,regex:\":[\\\\w-:]+:`\\\\S\",next:\"entity\"},{token:[\"text\",e.entity],regex:t+\"(_`)(?=\\\\S)\",next:\"entity\"},{token:e.entity,regex:\"_[A-Za-z0-9\\\\-]+?\"},{token:[\"text\",e.link],regex:t+\"(`)(?=\\\\S)\",next:\"link\"},{token:e.link,regex:\"[A-Za-z0-9\\\\-]+?__?\"},{token:e.link,regex:\"\\\\[[^\\\\]]+?\\\\]_\"},{token:e.link,regex:\"https?://\\\\S+\"},{token:e.table,regex:\"\\\\|\"}],codeblock:[{token:e.literal,regex:\"^ +.+$\",next:\"codeblock\"},{token:e.literal,regex:\"^$\",next:\"codeblock\"},{token:\"empty\",regex:\"\",next:\"start\"}],code:[{token:e.literal,regex:\"\\\\S``\"+n,next:\"start\"},{defaultToken:e.literal}],bold:[{token:e.bold,regex:\"\\\\S\\\\*\\\\*\"+n,next:\"start\"},{defaultToken:e.bold}],italic:[{token:e.italic,regex:\"\\\\S\\\\*\"+n,next:\"start\"},{defaultToken:e.italic}],entity:[{token:e.entity,regex:\"\\\\S`\"+n,next:\"start\"},{defaultToken:e.entity}],link:[{token:e.link,regex:\"\\\\S`__?\"+n,next:\"start\"},{defaultToken:e.link}],comment:[{token:e.comment,regex:\"^ +.+$\",next:\"comment\"},{token:e.comment,regex:\"^$\",next:\"comment\"},{token:\"empty\",regex:\"\",next:\"start\"}]}};r.inherits(o,s),t.RSTHighlightRules=o}),ace.define(\"ace/mode/rst\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rst_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rst_highlight_rules\").RSTHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.type=\"text\",this.$id=\"ace/mode/rst\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/rst\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-ruby.js",
    "content": "ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=t.instanceVariable={token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},h=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(h,i),t.RubyHighlightRules=h}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/ruby\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-rust.js",
    "content": "ace.define(\"ace/mode/rust_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=/\\\\(?:[nrt0'\"\\\\]|x[\\da-fA-F]{2}|u\\{[\\da-fA-F]{6}\\})/.source,o=function(){this.$rules={start:[{token:\"variable.other.source.rust\",regex:\"'[a-zA-Z_][a-zA-Z0-9_]*(?![\\\\'])\"},{token:\"string.quoted.single.source.rust\",regex:\"'(?:[^'\\\\\\\\]|\"+s+\")'\"},{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-1,t),\"string.quoted.raw.source.rust\"},regex:/r#*\"/,next:[{onMatch:function(e,t,n){var r=\"string.quoted.raw.source.rust\";return e.length>=n[1]?(e.length>n[1]&&(r=\"invalid\"),n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",r},regex:/\"#*/,next:\"start\"},{defaultToken:\"string.quoted.raw.source.rust\"}]},{token:\"string.quoted.double.source.rust\",regex:'\"',push:[{token:\"string.quoted.double.source.rust\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.source.rust\",regex:s},{defaultToken:\"string.quoted.double.source.rust\"}]},{token:[\"keyword.source.rust\",\"text\",\"entity.name.function.source.rust\"],regex:\"\\\\b(fn)(\\\\s+)([a-zA-Z_][a-zA-Z0-9_]*)\"},{token:\"support.constant\",regex:\"\\\\b[a-zA-Z_][\\\\w\\\\d]*::\"},{token:\"keyword.source.rust\",regex:\"\\\\b(?:abstract|alignof|as|become|box|break|catch|continue|const|crate|default|do|dyn|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\\\b\"},{token:\"storage.type.source.rust\",regex:\"\\\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|u128|f16|f32|f64|i8|i16|i32|i64|i128|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\\\b\"},{token:\"variable.language.source.rust\",regex:\"\\\\bself\\\\b\"},{token:\"comment.line.doc.source.rust\",regex:\"//!.*$\"},{token:\"comment.line.double-dash.source.rust\",regex:\"//.*$\"},{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",stateName:\"comment\",push:[{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",push:\"comment\"},{token:\"comment.end.block.source.rust\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.source.rust\"}]},{token:\"keyword.operator\",regex:/\\$|[-=]>|[-+%^=!&|<>]=?|[*/](?![*/])=?/},{token:\"punctuation.operator\",regex:/[?:,;.]/},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"constant.language.source.rust\",regex:\"\\\\b(?:true|false|Some|None|Ok|Err)\\\\b\"},{token:\"support.constant.source.rust\",regex:\"\\\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\\\b\"},{token:\"meta.preprocessor.source.rust\",regex:\"\\\\b\\\\w\\\\(\\\\w\\\\)*!|#\\\\[[\\\\w=\\\\(\\\\)_]+\\\\]\\\\b\"},{token:\"constant.numeric.source.rust\",regex:/\\b(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\\.))(?:[iu](?:size|8|16|32|64|128))?\\b/},{token:\"constant.numeric.source.rust\",regex:/\\b(?:[0-9][0-9_]*)(?:\\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\\b/}]},this.normalizeRules()};o.metaData={fileTypes:[\"rs\",\"rc\"],foldingStartMarker:\"^.*\\\\bfn\\\\s*(\\\\w+\\\\s*)?\\\\([^\\\\)]*\\\\)(\\\\s*\\\\{[^\\\\}]*)?\\\\s*$\",foldingStopMarker:\"^\\\\s*\\\\}\",name:\"Rust\",scopeName:\"source.rust\"},r.inherits(o,i),t.RustHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/rust\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rust_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rust_highlight_rules\").RustHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$quotes={'\"':'\"'},this.$id=\"ace/mode/rust\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/rust\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sass.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unquote\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/sass_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/scss_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=function(){s.call(this);var e=this.$rules.start;e[1].token==\"comment\"&&(e.splice(1,1,{onMatch:function(e,t,n){return n.unshift(this.next,-1,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\*/,next:\"comment\"},{token:\"error.invalid\",regex:\"/\\\\*|[{;}]\"},{token:\"support.type\",regex:/^\\s*:[\\w\\-]+\\s/}),this.$rules.comment=[{regex:/^\\s*/,onMatch:function(e,t,n){return n[1]===-1&&(n[1]=Math.max(n[2],e.length-1)),e.length<=n[1]?(n.shift(),n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}])};r.inherits(o,s),t.SassHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/sass\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sass_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sass_highlight_rules\").SassHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/sass\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/sass\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-scad.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/scad_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"module|if|else|for\",\"constant.language\":\"NULL\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant\",regex:\"<[a-zA-Z0-9.]+>\"},{token:\"keyword\",regex:\"(?:use|include)\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.scadHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scad\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scad_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scad_highlight_rules\").scadHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scad\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/scad\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-scala.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/scala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"case|default|do|else|for|if|match|while|throw|return|try|trye|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|null|override|package|private|protected|sealed|super|this|trait|type|val|var|with|assert|assume|require|print|println|printf|readLine|readBoolean|readByte|readShort|readChar|readInt|readLong|readFloat|readDouble\",t=\"true|false\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Int|Long|Nothing|App|Application|BufferedIterator|BigDecimal|BigInt|Console|Either|Enumeration|Equiv|Fractional|Function|IndexedSeq|Integral|Iterator|Map|Numeric|Nil|NotNull|Ordered|Ordering|PartialFunction|PartialOrdering|Product|Proxy|Range|Responder|Seq|Serializable|Set|Specializable|Stream|StringContext|Symbol|Traversable|TraversableOnce|Tuple|Vector|Pair|Triple\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"tstring\"},{token:\"string\",regex:'\"(?=.)',next:\"string\"},{token:\"symbol.constant\",regex:\"'[\\\\w\\\\d_]+\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],string:[{token:\"escape\",regex:'\\\\\\\\\"'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string.invalid\",regex:'[^\"\\\\\\\\]*$',next:\"start\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'}],tstring:[{token:\"string\",regex:'\"{3,5}',next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.ScalaHighlightRules=o}),ace.define(\"ace/mode/scala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/scala_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./scala_highlight_rules\").ScalaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/scala\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/scala\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-scheme.js",
    "content": "ace.define(\"ace/mode/scheme_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq?|eqv?|equal?|and|or|not|null?\",n=\"#t|#f\",r=\"cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.scheme\",\"text\",\"entity.name.function.scheme\"],regex:\"(?:\\\\b(?:(define|define-syntax|define-macro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:\"punctuation.definition.constant.character.scheme\",regex:\"#:\\\\S+\"},{token:[\"punctuation.definition.variable.scheme\",\"variable.other.global.scheme\",\"punctuation.definition.variable.scheme\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"#[xXoObB][0-9a-fA-F]+\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\"},{token:i,regex:\"[a-zA-Z_#][a-zA-Z0-9_\\\\-\\\\?\\\\!\\\\*]*\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.scheme\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}]}};r.inherits(s,i),t.SchemeHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/scheme\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scheme_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scheme_highlight_rules\").SchemeHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"define\",\"lambda\",\"define-macro\",\"define-syntax\",\"syntax-rules\",\"define-record-type\",\"define-structure\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scheme\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/scheme\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-scss.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unquote\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scss\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scss_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scss\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/scss\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sh.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"(?==))\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/sh\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sjs.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/sjs_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=new i({noES6:!0}),t=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",n=function(e){return e.isContextAware=!0,e},r=function(e){return{token:e.token,regex:e.regex,next:n(function(t,n){return n.length===0&&n.unshift(t),n.unshift(e.next),e.next})}},s=function(e){return{token:e.token,regex:e.regex,next:n(function(e,t){return t.shift(),t[0]||\"start\"})}};this.$rules=e.$rules,this.$rules.no_regex=[{token:\"keyword\",regex:\"(waitfor|or|and|collapse|spawn|retract)\\\\b\"},{token:\"keyword.operator\",regex:\"(->|=>|\\\\.\\\\.)\"},{token:\"variable.language\",regex:\"(hold|default)\\\\b\"},r({token:\"string\",regex:\"`\",next:\"bstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),{token:[\"paren.lparen\",\"text\",\"paren.rparen\"],regex:\"(\\\\{)(\\\\s*)(\\\\|)\",next:\"block_arguments\"}].concat(this.$rules.no_regex),this.$rules.block_arguments=[{token:\"paren.rparen\",regex:\"\\\\|\",next:\"no_regex\"}].concat(this.$rules.function_arguments),this.$rules.bstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"bstring\"},r({token:\"paren.lparen\",regex:\"\\\\$\\\\{\",next:\"string_interp\"}),r({token:\"paren.lparen\",regex:\"\\\\$\",next:\"bstring_interp_single\"}),s({token:\"string\",regex:\"`\"}),{defaultToken:\"string\"}],this.$rules.qqstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},r({token:\"paren.lparen\",regex:\"#\\\\{\",next:\"string_interp\"}),s({token:\"string\",regex:'\"'}),{defaultToken:\"string\"}];var o=[];for(var u=0;u<this.$rules.no_regex.length;u++){var a=this.$rules.no_regex[u],f=String(a.token);f.indexOf(\"paren\")==-1&&(!a.next||a.next.isContextAware)&&o.push(a)}this.$rules.string_interp=[s({token:\"paren.rparen\",regex:\"\\\\}\"}),r({token:\"paren.lparen\",regex:\"{\",next:\"string_interp\"})].concat(o),this.$rules.bstring_interp_single=[{token:[\"identifier\",\"paren.lparen\"],regex:\"(\\\\w+)(\\\\()\",next:\"bstring_interp_single_call\"},s({token:\"identifier\",regex:\"\\\\w*\"})],this.$rules.bstring_interp_single_call=[r({token:\"paren.lparen\",regex:\"\\\\(\",next:\"bstring_interp_single_call\"}),s({token:\"paren.rparen\",regex:\"\\\\)\"})].concat(o)};r.inherits(o,s),t.SJSHighlightRules=o}),ace.define(\"ace/mode/sjs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/sjs_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./sjs_highlight_rules\").SJSHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/sjs\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/sjs\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-smarty.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/smarty_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#comments\"},{include:\"#blocks\"}],\"#blocks\":[{token:\"punctuation.section.embedded.begin.smarty\",regex:\"\\\\{%?\",push:[{token:\"punctuation.section.embedded.end.smarty\",regex:\"%?\\\\}\",next:\"pop\"},{include:\"#strings\"},{include:\"#variables\"},{include:\"#lang\"},{defaultToken:\"source.smarty\"}]}],\"#comments\":[{token:[\"punctuation.definition.comment.smarty\",\"comment.block.smarty\"],regex:\"(\\\\{%?)(\\\\*)\",push:[{token:\"comment.block.smarty\",regex:\"\\\\*%?\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.smarty\"}]}],\"#lang\":[{token:\"keyword.operator.smarty\",regex:\"(?:!=|!|<=|>=|<|>|===|==|%|&&|\\\\|\\\\|)|\\\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\\\b\"},{token:\"constant.language.smarty\",regex:\"\\\\b(?:TRUE|FALSE|true|false)\\\\b\"},{token:\"keyword.control.smarty\",regex:\"\\\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\\\b\"},{token:\"variable.parameter.smarty\",regex:\"\\\\b[a-zA-Z]+=\"},{token:\"support.function.built-in.smarty\",regex:\"\\\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\\\b\"},{token:\"support.function.variable-modifier.smarty\",regex:\"\\\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.smarty\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.smarty\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.smarty\"}]},{token:\"punctuation.definition.string.begin.smarty\",regex:'\"',push:[{token:\"punctuation.definition.string.end.smarty\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.smarty\"}]}],\"#variables\":[{token:[\"punctuation.definition.variable.smarty\",\"variable.other.global.smarty\"],regex:\"\\\\b(\\\\$)(Smarty\\\\.)\"},{token:[\"punctuation.definition.variable.smarty\",\"variable.other.smarty\"],regex:\"(\\\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"variable.other.property.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"meta.function-call.object.smarty\",\"punctuation.definition.variable.smarty\",\"variable.other.smarty\",\"punctuation.definition.variable.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\\\()(.*?)(\\\\))\"}]},t=e.start;for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],t);Object.keys(e).forEach(function(t){this.$rules[t]||(this.$rules[t]=e[t])},this),this.normalizeRules()};s.metaData={fileTypes:[\"tpl\"],foldingStartMarker:\"\\\\{%?\",foldingStopMarker:\"%?\\\\}\",name:\"Smarty\",scopeName:\"text.html.smarty\"},r.inherits(s,i),t.SmartyHighlightRules=s}),ace.define(\"ace/mode/smarty\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/smarty_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./smarty_highlight_rules\").SmartyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/smarty\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/smarty\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-snippets.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME\";this.$rules={start:[{token:\"constant.language.escape\",regex:/\\\\[\\$}`\\\\]/},{token:\"keyword\",regex:\"\\\\$(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\$\\\\w+\"},{onMatch:function(e,t,n){return n[1]?n[1]++:n.unshift(t,1),this.tokenName},tokenName:\"markup.list\",regex:\"\\\\${\",next:\"varDecl\"},{onMatch:function(e,t,n){return n[1]?(n[1]--,n[1]||n.splice(0,2),this.tokenName):\"text\"},tokenName:\"markup.list\",regex:\"}\"},{token:\"doc.comment\",regex:/^\\${2}-{5,}$/}],varDecl:[{regex:/\\d+\\b/,token:\"constant.numeric\"},{token:\"keyword\",regex:\"(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\w+\"},{regex:/:/,token:\"punctuation.operator\",next:\"start\"},{regex:/\\//,token:\"string.regex\",next:\"regexp\"},{regex:\"\",next:\"start\"}],regexp:[{regex:/\\\\./,token:\"escape\"},{regex:/\\[/,token:\"regex.start\",next:\"charClass\"},{regex:\"/\",token:\"string.regex\",next:\"format\"},{token:\"string.regex\",regex:\".\"}],charClass:[{regex:\"\\\\.\",token:\"escape\"},{regex:\"\\\\]\",token:\"regex.end\",next:\"regexp\"},{token:\"string.regex\",regex:\".\"}],format:[{regex:/\\\\[ulULE]/,token:\"keyword\"},{regex:/\\$\\d+/,token:\"variable\"},{regex:\"/[gim]*:?\",token:\"string.regex\",next:\"start\"},{token:\"string\",regex:\".\"}]}};r.inherits(o,s),t.SnippetHighlightRules=o;var u=function(){this.$rules={start:[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{token:\"invalid\",regex:/^ \\s*/},{token:\"comment\",regex:/^#.*/},{token:\"constant.language.escape\",regex:\"^regex \",next:\"regex\"},{token:\"constant.language.escape\",regex:\"^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\\\b\"}],regex:[{token:\"text\",regex:\"\\\\.\"},{token:\"keyword\",regex:\"/\"},{token:\"empty\",regex:\"$\",next:\"start\"}]},this.embedRules(o,\"sn-\",[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{onMatch:function(e,t,n){return n.splice(n.length),this.tokenName},tokenName:\"text\",regex:\"^(?!\t)\",next:\"start\"}])};r.inherits(u,s),t.SnippetGroupHighlightRules=u;var a=e(\"./folding/coffee\").FoldMode,f=function(){this.HighlightRules=u,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){this.$indentWithTabs=!0,this.lineCommentStart=\"#\",this.$id=\"ace/mode/snippets\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/snippets\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-soy_template.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/soy_template_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#template\"},{include:\"#if\"},{include:\"#comment-line\"},{include:\"#comment-block\"},{include:\"#comment-doc\"},{include:\"#call\"},{include:\"#css\"},{include:\"#param\"},{include:\"#print\"},{include:\"#msg\"},{include:\"#for\"},{include:\"#foreach\"},{include:\"#switch\"},{include:\"#tag\"},{include:\"text.html.basic\"}],\"#call\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.call.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=call|delcall)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.name.tag.soy\",\"variable.parameter.soy\"],regex:\"(call|delcall)(\\\\s+[\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(data)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.call.soy\"}]}],\"#comment-line\":[{token:[\"comment.line.double-slash.soy\",\"comment.line.double-slash.soy\"],regex:\"(//)(.*$)\"}],\"#comment-block\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*(?!\\\\*)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.soy\"}]}],\"#comment-doc\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*\\\\*(?!/)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{token:[\"support.type.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(@param|@param\\\\?)(\\\\s+)(\\\\w+)\"},{defaultToken:\"comment.block.documentation.soy\"}]}],\"#css\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.css.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(css)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"support.constant.soy\",regex:\"\\\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\\\b\"},{defaultToken:\"meta.tag.css.soy\"}]}],\"#for\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.for.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(for)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{token:\"support.function.soy\",regex:\"\\\\brange\\\\b\"},{include:\"#variable\"},{include:\"#number\"},{include:\"#primitive\"},{defaultToken:\"meta.tag.for.soy\"}]}],\"#foreach\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.foreach.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(foreach)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{include:\"#variable\"},{defaultToken:\"meta.tag.foreach.soy\"}]}],\"#function\":[{token:\"support.function.soy\",regex:\"\\\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\\\b\"}],\"#if\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.if.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(if|elseif)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#operator\"},{include:\"#function\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.if.soy\"}]}],\"#namespace\":[{token:[\"entity.name.tag.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(namespace|delpackage)(\\\\s+)([\\\\w\\\\.]+)\"}],\"#number\":[{token:\"constant.numeric\",regex:\"[\\\\d]+\"}],\"#operator\":[{token:\"keyword.operator.soy\",regex:\"==|!=|\\\\band\\\\b|\\\\bor\\\\b|\\\\bnot\\\\b|-|\\\\+|/|\\\\?:\"}],\"#param\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.param.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(param)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b([\\\\w]+)(\\\\s*)((?::)?)\"},{defaultToken:\"meta.tag.param.soy\"}]}],\"#primitive\":[{token:\"constant.language.soy\",regex:\"\\\\b(?:null|false|true)\\\\b\"}],\"#msg\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.msg.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(msg)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(meaning|desc)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.msg.soy\"}]}],\"#print\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.print.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(print)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#print-parameter\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#attribute-lookup\"},{defaultToken:\"meta.tag.print.soy\"}]}],\"#print-parameter\":[{token:\"keyword.operator.soy\",regex:\"\\\\|\"},{token:\"variable.parameter.soy\",regex:\"noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate\"}],\"#special-character\":[{token:\"support.constant.soy\",regex:\"\\\\bsp\\\\b|\\\\bnil\\\\b|\\\\\\\\r|\\\\\\\\n|\\\\\\\\t|\\\\blb\\\\b|\\\\brb\\\\b\"}],\"#string-quoted-double\":[{token:\"string.quoted.double\",regex:'\"[^\"]*\"'}],\"#string-quoted-single\":[{token:\"string.quoted.single\",regex:\"'[^']*'\"}],\"#switch\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.switch.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(switch|case)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#number\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.switch.soy\"}]}],\"#attribute-lookup\":[{token:\"punctuation.definition.attribute-lookup.begin.soy\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.attribute-lookup.end.soy\",regex:\"\\\\]\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"}]}],\"#tag\":[{token:\"punctuation.definition.tag.begin.soy\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#namespace\"},{include:\"#variable\"},{include:\"#special-character\"},{include:\"#tag-simple\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#attribute-lookup\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#print-parameter\"}]}],\"#tag-simple\":[{token:\"entity.name.tag.soy\",regex:\"{{\\\\s*(?:literal|else|ifempty|default)\\\\s*(?=\\\\})\"}],\"#template\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.template.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=template|deltemplate)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:[\"entity.name.tag.soy\",\"text\",\"entity.name.function.soy\"],regex:\"(template|deltemplate)(\\\\s+)([\\\\.\\\\w]+)\",originalRegex:\"(?<=template|deltemplate)\\\\s+([\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(private)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(private)(\\\\s*)(=)(\\\\s*)('true'|'false')\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\"|\"contextual\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)('true'|'false'|'contextual')\"},{defaultToken:\"meta.tag.template.soy\"}]}],\"#variable\":[{token:\"variable.other.soy\",regex:\"\\\\$[\\\\w\\\\.]+\"}]};for(var t in e)this.$rules[t]?this.$rules[t].unshift.apply(this.$rules[t],e[t]):this.$rules[t]=e[t];this.normalizeRules()};s.metaData={comment:\"SoyTemplate\",fileTypes:[\"soy\"],firstLineMatch:\"\\\\{\\\\s*namespace\\\\b\",foldingStartMarker:\"\\\\{\\\\s*template\\\\s+[^\\\\}]*\\\\}\",foldingStopMarker:\"\\\\{\\\\s*/\\\\s*template\\\\s*\\\\}\",name:\"SoyTemplate\",scopeName:\"source.soy\"},r.inherits(s,i),t.SoyTemplateHighlightRules=s}),ace.define(\"ace/mode/soy_template\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/soy_template_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./soy_template_highlight_rules\").SoyTemplateHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/soy_template\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/soy_template\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-space.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/space_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"empty_line\",regex:/ */,next:\"key\"},{token:\"empty_line\",regex:/$/,next:\"key\"}],key:[{token:\"variable\",regex:/\\S+/},{token:\"empty_line\",regex:/$/,next:\"start\"},{token:\"keyword.operator\",regex:/ /,next:\"value\"}],value:[{token:\"keyword.operator\",regex:/$/,next:\"start\"},{token:\"string\",regex:/[^$]/}]}};r.inherits(s,i),t.SpaceHighlightRules=s}),ace.define(\"ace/mode/space\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/coffee\",\"ace/mode/space_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/coffee\").FoldMode,o=e(\"./space_highlight_rules\").SpaceHighlightRules,u=function(){this.HighlightRules=o,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/space\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/space\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sparql.js",
    "content": "ace.define(\"ace/mode/sparql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{include:\"#strings\"},{include:\"#string-language-suffixes\"},{include:\"#string-datatype-suffixes\"},{include:\"#logic-operators\"},{include:\"#relative-urls\"},{include:\"#xml-schema-types\"},{include:\"#rdf-schema-types\"},{include:\"#owl-types\"},{include:\"#qnames\"},{include:\"#keywords\"},{include:\"#built-in-functions\"},{include:\"#variables\"},{include:\"#boolean-literal\"},{include:\"#punctuation-operators\"}],\"#boolean-literal\":[{token:\"constant.language.boolean.sparql\",regex:/true|false/}],\"#built-in-functions\":[{token:\"support.function.sparql\",regex:/[Aa][Bb][Ss]|[Aa][Vv][Gg]|[Bb][Nn][Oo][Dd][Ee]|[Bb][Oo][Uu][Nn][Dd]|[Cc][Ee][Ii][Ll]|[Cc][Oo][Aa][Ll][Ee][Ss][Cc][Ee]|[Cc][Oo][Nn][Cc][Aa][Tt]|[Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss]|[Cc][Oo][Uu][Nn][Tt]|[Dd][Aa][Tt][Aa][Tt][Yy][Pp][Ee]|[Dd][Aa][Yy]|[Ee][Nn][Cc][Oo][Dd][Ee]_[Ff][Oo][Rr]_[Uu][Rr][Ii]|[Ee][Xx][Ii][Ss][Tt][Ss]|[Ff][Ll][Oo][Oo][Rr]|[Gg][Rr][Oo][Uu][Pp]_[Cc][Oo][Nn][Cc][Aa][Tt]|[Hh][Oo][Uu][Rr][Ss]|[Ii][Ff]|[Ii][Rr][Ii]|[Ii][Ss][Bb][Ll][Aa][Nn][Kk]|[Ii][Ss][Ii][Rr][Ii]|[Ii][Ss][Ll][Ii][Tt][Ee][Rr][Aa][Ll]|[Ii][Ss][Nn][Uu][Mm][Ee][Rr][Ii][Cc]|[Ii][Ss][Uu][Rr][Ii]|[Ll][Aa][Nn][Gg]|[Ll][Aa][Nn][Gg][Mm][Aa][Tt][Cc][Hh][Ee][Ss]|[Ll][Cc][Aa][Ss][Ee]|[Mm][Aa][Xx]|[Mm][Dd]5|[Mm][Ii][Nn]|[Mm][Ii][Nn][Uu][Tt][Ee][Ss]|[Mm][Oo][Nn][Tt][Hh]|[Nn][Oo][Ww]|[Rr][Aa][Nn][Dd]|[Rr][Ee][Gg][Ee][Xx]|[Rr][Ee][Pp][Ll][Aa][Cc][Ee]|[Rr][Oo][Uu][Nn][Dd]|[Ss][Aa][Mm][Ee][Tt][Ee][Rr][Mm]|[Ss][Aa][Mm][Pp][Ll][Ee]|[Ss][Ee][Cc][Oo][Nn][Dd][Ss]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Hh][Aa](?:1|256|384|512)|[Ss][Tt][Rr]|[Ss][Tt][Rr][Aa][Ff][Tt][Ee][Rr]|[Ss][Tt][Rr][Bb][Ee][Ff][Oo][Rr][Ee]|[Ss][Tt][Rr][Dd][Tt]|[Ss][Tt][Rr][Ee][Nn][Dd][Ss]|[Ss][Tt][Rr][Ll][Aa][Nn][Gg]|[Ss][Tt][Rr][Ll][Ee][Nn]|[Ss][Tt][Rr][Ss][Tt][Aa][Rr][Tt][Ss]|[Ss][Tt][Rr][Uu][Uu][Ii][Dd]|[Ss][Uu][Bb][Ss][Tt][Rr]|[Ss][Uu][Mm]|[Tt][Ii][Mm][Ee][Zz][Oo][Nn][Ee]|[Tt][Zz]|[Uu][Cc][Aa][Ss][Ee]|[Uu][Rr][Ii]|[Uu][Uu][Ii][Dd]|[Yy][Ee][Aa][Rr]/}],\"#comments\":[{token:[\"punctuation.definition.comment.sparql\",\"comment.line.hash.sparql\"],regex:/(#)(.*$)/}],\"#keywords\":[{token:\"keyword.other.sparql\",regex:/[Aa][Dd][Dd]|[Aa][Ll][Ll]|[Aa][Ss]|[As][Ss][Cc]|[Aa][Ss][Kk]|[Bb][Aa][Ss][Ee]|[Bb][Ii][Nn][Dd]|[Bb][Yy]|[Cc][Ll][Ee][Aa][Rr]|[Cc][Oo][Nn][Ss][Tt][Rr][Uu][Cc][Tt]|[Cc][Oo][Pp][Yy]|[Cc][Rr][Ee][Aa][Tt][Ee]|[Dd][Aa][Tt][Aa]|[Dd][Ee][Ff][Aa][Uu][Ll][Tt]|[Dd][Ee][Ll][Ee][Tt][Ee]|[Dd][Ee][Sc][Cc]|[Dd][Ee][Ss][Cc][Rr][Ii][Bb][Ee]|[Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]|[Dd][Rr][Oo][Pp]|[Ff][Ii][Ll][Tt][Ee][Rr]|[Ff][Rr][Oo][Mm]|[Gg][Rr][Aa][Pp][Hh]|[Gg][Rr][Oo][Uu][Pp]|[Hh][Aa][Vv][Ii][Nn][Gg]|[Ii][Nn][Ss][Ee][Rr][Tt]|[Ll][Ii][Mm][Ii][Tt]|[Ll][Oo][Aa][Dd]|[Mm][Ii][Nn][Uu][Ss]|[Mm][Oo][Vv][Ee]|[Nn][Aa][Mm][Ee][Dd]|[Oo][Ff][Ff][Ss][Ee][Tt]|[Oo][Pp][Tt][Ii][Oo][Nn][Aa][Ll]|[Oo][Rr][Dd][Ee][Rr]|[Pp][Rr][Ee][Ff][Ii][Xx]|[Rr][Ee][Dd][Uu][Cc][Ee][Dd]|[Ss][Ee][Ll][Ee][Cc][Tt]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Ee][Rr][Vv][Ii][Cc][Ee]|[Ss][Ii][Ll][Ee][Nn][Tt]|[Tt][Oo]|[Uu][Nn][Dd][Ee][Ff]|[Uu][Nn][Ii][Oo][Nn]|[Uu][Ss][Ii][Nn][Gg]|[Vv][Aa][Ll][Uu][Ee][Ss]|[Ww][He][Ee][Rr][Ee]|[Ww][Ii][Tt][Hh]/}],\"#logic-operators\":[{token:\"keyword.operator.logical.sparql\",regex:/\\|\\||&&|=|!=|<|>|<=|>=|(?:^|!?\\s)IN(?:!?\\s|$)|(?:^|!?\\s)NOT(?:!?\\s|$)|-|\\+|\\*|\\/|\\!/}],\"#owl-types\":[{token:\"support.type.datatype.owl.sparql\",regex:/owl:[a-zA-Z]+/}],\"#punctuation-operators\":[{token:\"keyword.operator.punctuation.sparql\",regex:/;|,|\\.|\\(|\\)|\\{|\\}|\\|/}],\"#qnames\":[{token:\"entity.name.other.qname.sparql\",regex:/(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/}],\"#rdf-schema-types\":[{token:\"support.type.datatype.rdf.schema.sparql\",regex:/rdfs?:[a-zA-Z]+|(?:^|\\s)a(?:\\s|$)/}],\"#relative-urls\":[{token:\"string.quoted.other.relative.url.sparql\",regex:/</,push:[{token:\"string.quoted.other.relative.url.sparql\",regex:/>/,next:\"pop\"},{defaultToken:\"string.quoted.other.relative.url.sparql\"}]}],\"#string-datatype-suffixes\":[{token:\"keyword.operator.datatype.suffix.sparql\",regex:/\\^\\^/}],\"#string-language-suffixes\":[{token:[\"keyword.operator.language.suffix.sparql\",\"constant.language.suffix.sparql\"],regex:/(?!\")(@)([a-z]+(?:\\-[a-z0-9]+)*)/}],\"#strings\":[{token:\"string.quoted.triple.sparql\",regex:/\"\"\"/,push:[{token:\"string.quoted.triple.sparql\",regex:/\"\"\"/,next:\"pop\"},{defaultToken:\"string.quoted.triple.sparql\"}]},{token:\"string.quoted.double.sparql\",regex:/\"/,push:[{token:\"string.quoted.double.sparql\",regex:/\"/,next:\"pop\"},{token:\"invalid.string.newline\",regex:/$/},{token:\"constant.character.escape.sparql\",regex:/\\\\./},{defaultToken:\"string.quoted.double.sparql\"}]}],\"#variables\":[{token:\"variable.other.sparql\",regex:/(?:\\?|\\$)[-_a-zA-Z0-9]+/}],\"#xml-schema-types\":[{token:\"support.type.datatype.schema.sparql\",regex:/xsd?:[a-z][a-zA-Z]+/}]},this.normalizeRules()};s.metaData={fileTypes:[\"rq\",\"sparql\"],name:\"SPARQL\",scopeName:\"source.sparql\"},r.inherits(s,i),t.SPARQLHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sparql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sparql_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sparql_highlight_rules\").SPARQLHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/sparql\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/sparql\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sql.js",
    "content": "ace.define(\"ace/mode/sql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant\",t=\"true|false\",n=\"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",r=\"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer\",i=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t,\"storage.type\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"string\",regex:\"`.*?`\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define(\"ace/mode/sql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sql_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sql_highlight_rules\").SqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/sql\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/sql\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-sqlserver.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/sqlserver_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME\";e+=\"|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS\";var t=\"OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|DENSE_RANK|NTILE|RANK|ROW_NUMBER@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|CHOOSE|IIF|ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|PATINDEX|TEXTPTR|TEXTVALID|COALESCE|NULLIF\",n=\"BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML\",r=\"sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool\",s=\"ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE\";s+=\"|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT\",s+=\"|LOOP|HASH|MERGE|REMOTE\",s+=\"|TRY|CATCH|THROW\",s+=\"|TYPE\",s=s.split(\"|\"),s=s.filter(function(r,i,s){return e.split(\"|\").indexOf(r)===-1&&t.split(\"|\").indexOf(r)===-1&&n.split(\"|\").indexOf(r)===-1}),s=s.sort().join(\"|\");var o=this.createKeywordMapper({\"constant.language\":e,\"storage.type\":n,\"support.function\":t,\"support.storedprocedure\":r,keyword:s},\"identifier\",!0),u=\"SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT\".split(\"|\"),a=\"READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE\".split(\"|\");for(var f=0;f<a.length;f++)u.push(\"SET TRANSACTION ISOLATION LEVEL \"+a[f]);this.$rules={start:[{token:\"string.start\",regex:\"'\",next:[{token:\"constant.language.escape\",regex:/''/},{token:\"string.end\",next:\"start\",regex:\"'\"},{defaultToken:\"string\"}]},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:o,regex:\"@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b(?!])\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=|\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"punctuation\",regex:\",|;\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}]};for(var f=0;f<u.length;f++)this.$rules.start.unshift({token:\"set.statement\",regex:u[f]});this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules();var l=[],c=function(e,t){e.forEach(function(e){l.push({name:e,value:e,score:0,meta:t})})};c(r.split(\"|\"),\"procedure\"),c(e.split(\"|\"),\"operator\"),c(t.split(\"|\"),\"function\"),c(n.split(\"|\"),\"type\"),c(u,\"statement\"),c(s.split(\"|\"),\"keyword\"),this.completions=l};r.inherits(o,s),t.SqlHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\\bCASE\\b|\\bBEGIN\\b)|^\\s*(\\/\\*)/i,this.startRegionRe=/^\\s*(\\/\\*|--)#?region\\b/,this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.getBeginEndBlock(e,n,o,s[1]);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;return},this.getBeginEndBlock=function(e,t,n,r){var s={row:t,column:n+r.length},o=e.getLength(),u,a=1,f=/(\\bCASE\\b|\\bBEGIN\\b)|(\\bEND\\b)/i;while(++t<o){u=e.getLine(t);var l=f.exec(u);if(!l)continue;l[1]?a++:a--;if(!a)break}var c=t;if(c>s.row)return new i(s.row,s.column,c,u.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sqlserver_highlight_rules\",\"ace/mode/folding/sqlserver\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sqlserver_highlight_rules\").SqlHighlightRules,o=e(\"./folding/sqlserver\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getCompletions=function(e,t,n,r){return t.$mode.$highlightRules.completions},this.$id=\"ace/mode/sql\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/sqlserver\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-stylus.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/stylus_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=this.createKeywordMapper({\"support.type\":s.supportType,\"support.function\":s.supportFunction,\"support.constant\":s.supportConstant,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"entity.name.function.stylus\",\"text\"],regex:\"^([-a-zA-Z_][-\\\\w]*)?(\\\\()\"},{token:[\"entity.other.attribute-name.class.stylus\"],regex:\"\\\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\"},{token:[\"entity.language.stylus\"],regex:\"^ *&\"},{token:[\"variable.language.stylus\"],regex:\"(arguments)\"},{token:[\"keyword.stylus\"],regex:\"@[-\\\\w]+\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:s.pseudoElements},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:s.pseudoClasses},{token:[\"entity.name.tag.stylus\"],regex:\"(?:\\\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\\\b)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation.definition.entity.stylus\",\"entity.other.attribute-name.id.stylus\"],regex:\"(#)([a-zA-Z][a-zA-Z0-9_-]*)\"},{token:\"meta.vendor-prefix.stylus\",regex:\"-webkit-|-moz\\\\-|-ms-|-o-\"},{token:\"keyword.control.stylus\",regex:\"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\\\b\"},{token:\"keyword.operator.stylus\",regex:\"!|~|\\\\+|-|(?:\\\\*)?\\\\*|\\\\/|%|(?:\\\\.)\\\\.\\\\.|<|>|(?:=|:|\\\\?|\\\\+|-|\\\\*|\\\\/|%|<|>)?=|!=\"},{token:\"keyword.operator.stylus\",regex:\"(?:in|is(?:nt)?|not)\\\\b\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:s.numRe},{token:\"keyword\",regex:\"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\\\b\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"}]}};r.inherits(o,i),t.StylusHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/stylus\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/stylus_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./stylus_highlight_rules\").StylusHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/stylus\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/stylus\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-svg.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/svg_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./xml_highlight_rules\").XmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,\"js-\",\"script\"),this.normalizeRules()};r.inherits(o,s),t.SvgHighlightRules=o}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/svg\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/xml\",\"ace/mode/javascript\",\"ace/mode/svg_highlight_rules\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./xml\").Mode,s=e(\"./javascript\").Mode,o=e(\"./svg_highlight_rules\").SvgHighlightRules,u=e(\"./folding/mixed\").FoldMode,a=e(\"./folding/xml\").FoldMode,f=e(\"./folding/cstyle\").FoldMode,l=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":s}),this.foldingRules=new u(new a,{\"js-\":new f})};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/svg\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/svg\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-swift.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/swift_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function t(e,t){var n=t.nestable||t.interpolation,r=t.interpolation&&t.interpolation.nextState||\"start\",s={regex:e+(t.multiline?\"\":\"(?=.)\"),token:\"string.start\"},o=[t.escape&&{regex:t.escape,token:\"character.escape\"},t.interpolation&&{token:\"paren.quasi.start\",regex:i.escapeRegExp(t.interpolation.lead+t.interpolation.open),push:r},t.error&&{regex:t.error,token:\"error.invalid\"},{regex:e+(t.multiline?\"\":\"|$\"),token:\"string.end\",next:n?\"pop\":\"start\"},{defaultToken:\"string\"}].filter(Boolean);n?s.push=o:s.next=o;if(!t.interpolation)return s;var u=t.interpolation.open,a=t.interpolation.close,f={regex:\"[\"+i.escapeRegExp(u+a)+\"]\",onMatch:function(e,t,n){this.next=e==u?this.nextState:\"\";if(e==u&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==a&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.quasi.end\"}return e==u?\"paren.lparen\":\"paren.rparen\"},nextState:r};return[f,s]}function n(){return[{token:\"comment\",regex:\"\\\\/\\\\/(?=.)\",next:[s.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}]},s.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:/\\/\\*/,stateName:\"nested_comment\",push:[s.getTagRule(),{token:\"comment.start\",regex:/\\/\\*/,push:\"nested_comment\"},{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var e=this.createKeywordMapper({\"variable.language\":\"\",keyword:\"__COLUMN__|__FILE__|__FUNCTION__|__LINE__|as|associativity|break|case|class|continue|default|deinit|didSet|do|dynamicType|else|enum|extension|fallthrough|for|func|get|if|import|in|infix|init|inout|is|left|let|let|mutating|new|none|nonmutating|operator|override|postfix|precedence|prefix|protocol|return|right|safe|Self|self|set|struct|subscript|switch|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|convenience|dynamic|final|infix|lazy|mutating|nonmutating|optional|override|postfix|prefix|required|static|guard|defer\",\"storage.type\":\"bool|double|Double|extension|float|Float|int|Int|private|public|string|String\",\"constant.language\":\"false|Infinity|NaN|nil|no|null|null|off|on|super|this|true|undefined|yes\",\"support.function\":\"\"},\"identifier\");this.$rules={start:[t('\"',{escape:/\\\\(?:[0\\\\tnr\"']|u{[a-fA-F1-9]{0,8}})/,interpolation:{lead:\"\\\\\",open:\"(\",close:\")\"},error:/\\\\./,multiline:!1}),n(),{regex:/@[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:\"variable.parameter\"},{regex:/[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:e},{token:\"constant.numeric\",regex:/[+-]?(?:0(?:b[01]+|o[0-7]+|x[\\da-fA-F])|\\d+(?:(?:\\.\\d*)?(?:[PpEe][+-]?\\d+)?)\\b)/},{token:\"keyword.operator\",regex:/--|\\+\\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.HighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/swift\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/swift_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./swift_highlight_rules\").HighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$id=\"ace/mode/swift\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/swift\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-tcl.js",
    "content": "ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/tcl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\"},{token:\"support.function\",regex:\"[\\\\\\\\]$\",next:\"splitlineStart\"},{token:\"text\",regex:/\\\\(?:[\"{}\\[\\]$\\\\])/},{token:\"text\",regex:\"^|[^{][;][^}]|[/\\r/]\",next:\"commandItem\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[ ]*[\"]',next:\"qqstring\"},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"identifier\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"paren.lparen\",regex:\"[[{]\",next:\"commandItem\"},{token:\"paren.lparen\",regex:\"[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],commandItem:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\",next:\"start\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"(?:[:][:])\",next:\"commandItem\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"keyword\",regex:\"[a-zA-Z0-9_/]+\",next:\"start\"}],commentfollow:[{token:\"comment\",regex:\".*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\".+\",next:\"start\"}],splitlineStart:[{token:\"text\",regex:\"^.\",next:\"start\"}],variable:[{token:\"variable.instance\",regex:\"[a-zA-Z_\\\\d]+(?:[(][a-zA-Z_\\\\d]+[)])?\",next:\"start\"},{token:\"variable.instance\",regex:\"{?[a-zA-Z_\\\\d]+}?\",next:\"start\"}],qqstring:[{token:\"string\",regex:'(?:[^\\\\\\\\]|\\\\\\\\.)*?[\"]',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.TclHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tcl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/cstyle\",\"ace/mode/tcl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/cstyle\").FoldMode,o=e(\"./tcl_highlight_rules\").TclHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=function(){this.HighlightRules=o,this.$outdent=new u,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/tcl\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/tcl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-tex.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=function(e){e?this.HighlightRules=s:this.HighlightRules=o,this.$outdent=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"%\",this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.allowAutoInsert=function(){return!1},this.$id=\"ace/mode/tex\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/tex\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-text.js",
    "content": ";\n                (function() {\n                    ace.require([\"ace/mode/text\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-textile.js",
    "content": "ace.define(\"ace/mode/textile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)==\"h\"?\"markup.heading.\"+e.charAt(1):\"markup.heading\"},regex:\"h1|h2|h3|h4|h5|h6|bq|p|bc|pre\",next:\"blocktag\"},{token:\"keyword\",regex:\"[\\\\*]+|[#]+\"},{token:\"text\",regex:\".+\"}],blocktag:[{token:\"keyword\",regex:\"\\\\. \",next:\"start\"},{token:\"keyword\",regex:\"\\\\(\",next:\"blocktagproperties\"}],blocktagproperties:[{token:\"keyword\",regex:\"\\\\)\",next:\"blocktag\"},{token:\"string\",regex:\"[a-zA-Z0-9\\\\-_]+\"},{token:\"keyword\",regex:\"#\"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/textile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/textile_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./textile_highlight_rules\").TextileHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return e==\"intag\"?n:\"\"},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/textile\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/textile\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-toml.js",
    "content": "ace.define(\"ace/mode/toml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"constant.language.boolean\":\"true|false\"},\"identifier\"),t=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment.toml\",regex:/#.*$/},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[\\\\[([^\\\\]]+)\\\\]\\\\])\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[([^\\\\]]+)\\\\])\"},{token:e,regex:t},{token:\"support.date.toml\",regex:\"\\\\d{4}-\\\\d{2}-\\\\d{2}(T)\\\\d{2}:\\\\d{2}:\\\\d{2}(Z)\"},{token:\"constant.numeric.toml\",regex:\"-?\\\\d+(\\\\.?\\\\d+)?\"}],qqstring:[{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"constant.language.escape\",regex:'\\\\\\\\[0tnr\"\\\\\\\\]'},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.TomlHighlightRules=s}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/toml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/toml_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./toml_highlight_rules\").TomlHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/toml\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/toml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-tsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=function(e){var t=[{token:[\"keyword.operator.ts\",\"text\",\"variable.parameter.function.ts\",\"text\"],regex:\"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"},{token:[\"storage.type.variable.ts\",\"text\",\"keyword.other.ts\",\"text\"],regex:\"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"},{token:[\"entity.name.function.ts\",\"paren.lparen\",\"paren.rparen\"],regex:\"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"},{token:[\"variable.parameter.function.ts\",\"text\",\"variable.parameter.function.ts\"],regex:\"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"},{token:[\"keyword.operator.ts\"],regex:\"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"},{token:[\"storage.type.variable.ts\"],regex:\"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"},{token:[\"keyword.operator.ts\",\"storage.type.variable.ts\",\"keyword.operator.ts\",\"storage.type.variable.ts\"],regex:\"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"},{token:\"keyword\",regex:\"(?:super|export|class|extends|import)\\\\b\"}],n=(new i({jsx:(e&&e.jsx)==1})).getRules();n.start=t.concat(n.start),this.$rules=n};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./typescript_highlight_rules\").TypeScriptHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/typescript\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/tsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/typescript\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./typescript\").Mode,s=function(){i.call(this),this.$highlightRuleConfig={jsx:!0}};r.inherits(s,i),function(){this.$id=\"ace/mode/tsx\"}.call(s.prototype),t.Mode=s});\n                (function() {\n                    ace.require([\"ace/mode/tsx\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-turtle.js",
    "content": "ace.define(\"ace/mode/turtle_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{include:\"#strings\"},{include:\"#base-prefix-declarations\"},{include:\"#string-language-suffixes\"},{include:\"#string-datatype-suffixes\"},{include:\"#relative-urls\"},{include:\"#xml-schema-types\"},{include:\"#rdf-schema-types\"},{include:\"#owl-types\"},{include:\"#qnames\"},{include:\"#punctuation-operators\"}],\"#base-prefix-declarations\":[{token:\"keyword.other.prefix.turtle\",regex:/@(?:base|prefix)/}],\"#comments\":[{token:[\"punctuation.definition.comment.turtle\",\"comment.line.hash.turtle\"],regex:/(#)(.*$)/}],\"#owl-types\":[{token:\"support.type.datatype.owl.turtle\",regex:/owl:[a-zA-Z]+/}],\"#punctuation-operators\":[{token:\"keyword.operator.punctuation.turtle\",regex:/;|,|\\.|\\(|\\)|\\[|\\]/}],\"#qnames\":[{token:\"entity.name.other.qname.turtle\",regex:/(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/}],\"#rdf-schema-types\":[{token:\"support.type.datatype.rdf.schema.turtle\",regex:/rdfs?:[a-zA-Z]+|(?:^|\\s)a(?:\\s|$)/}],\"#relative-urls\":[{token:\"string.quoted.other.relative.url.turtle\",regex:/</,push:[{token:\"string.quoted.other.relative.url.turtle\",regex:/>/,next:\"pop\"},{defaultToken:\"string.quoted.other.relative.url.turtle\"}]}],\"#string-datatype-suffixes\":[{token:\"keyword.operator.datatype.suffix.turtle\",regex:/\\^\\^/}],\"#string-language-suffixes\":[{token:[\"keyword.operator.language.suffix.turtle\",\"constant.language.suffix.turtle\"],regex:/(?!\")(@)([a-z]+(?:\\-[a-z0-9]+)*)/}],\"#strings\":[{token:\"string.quoted.triple.turtle\",regex:/\"\"\"/,push:[{token:\"string.quoted.triple.turtle\",regex:/\"\"\"/,next:\"pop\"},{defaultToken:\"string.quoted.triple.turtle\"}]},{token:\"string.quoted.double.turtle\",regex:/\"/,push:[{token:\"string.quoted.double.turtle\",regex:/\"/,next:\"pop\"},{token:\"invalid.string.newline\",regex:/$/},{token:\"constant.character.escape.turtle\",regex:/\\\\./},{defaultToken:\"string.quoted.double.turtle\"}]}],\"#xml-schema-types\":[{token:\"support.type.datatype.xml.schema.turtle\",regex:/xsd?:[a-z][a-zA-Z]+/}]},this.normalizeRules()};s.metaData={fileTypes:[\"ttl\",\"nt\"],name:\"Turtle\",scopeName:\"source.turtle\"},r.inherits(s,i),t.TurtleHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/turtle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/turtle_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./turtle_highlight_rules\").TurtleHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/turtle\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/turtle\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-twig.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/twig_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this);var e=\"autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim\";e=e+\"|end\"+e.replace(/\\|/g,\"|end\");var t=\"abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode\",n=\"attribute|constant|cycle|date|dump|parent|random|range|template_from_string\",r=\"constant|divisibleby|sameas|defined|empty|even|iterable|odd\",i=\"null|none|true|false\",o=\"b-and|b-xor|b-or|in|is|and|or|not\",u=this.createKeywordMapper({\"keyword.control.twig\":e,\"support.function.twig\":[t,n,r].join(\"|\"),\"keyword.operator.twig\":o,\"constant.language.twig\":i},\"identifier\");for(var a in this.$rules)this.$rules[a].unshift({token:\"variable.other.readwrite.local.twig\",regex:\"\\\\{\\\\{-?\",push:\"twig-start\"},{token:\"meta.tag.twig\",regex:\"\\\\{%-?\",push:\"twig-start\"},{token:\"comment.block.twig\",regex:\"\\\\{#-?\",push:\"twig-comment\"});this.$rules[\"twig-comment\"]=[{token:\"comment.block.twig\",regex:\".*-?#\\\\}\",next:\"pop\"}],this.$rules[\"twig-start\"]=[{token:\"variable.other.readwrite.local.twig\",regex:\"-?\\\\}\\\\}\",next:\"pop\"},{token:\"meta.tag.twig\",regex:\"-?%\\\\}\",next:\"pop\"},{token:\"string\",regex:\"'\",next:\"twig-qstring\"},{token:\"string\",regex:'\"',next:\"twig-qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator.assignment\",regex:\"=|~\"},{token:\"keyword.operator.comparison\",regex:\"==|!=|<|>|>=|<=|===\"},{token:\"keyword.operator.arithmetic\",regex:\"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"},{token:\"keyword.operator.other\",regex:\"\\\\.\\\\.|\\\\|\"},{token:\"punctuation.operator\",regex:/\\?|:|,|;|\\./},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}],this.$rules[\"twig-qqstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\\"$#ntr]|#{[^\"}]*}/},{token:\"string\",regex:'\"',next:\"twig-start\"},{defaultToken:\"string\"}],this.$rules[\"twig-qstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\'ntr]}/},{token:\"string\",regex:\"'\",next:\"twig-start\"},{defaultToken:\"string\"}],this.normalizeRules()};r.inherits(u,o),t.TwigHighlightRules=u}),ace.define(\"ace/mode/twig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/twig_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./twig_highlight_rules\").TwigHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){i.call(this),this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.blockComment={start:\"{#\",end:\"#}\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/twig\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/twig\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-typescript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=function(e){var t=[{token:[\"keyword.operator.ts\",\"text\",\"variable.parameter.function.ts\",\"text\"],regex:\"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"},{token:[\"storage.type.variable.ts\",\"text\",\"keyword.other.ts\",\"text\"],regex:\"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"},{token:[\"entity.name.function.ts\",\"paren.lparen\",\"paren.rparen\"],regex:\"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"},{token:[\"variable.parameter.function.ts\",\"text\",\"variable.parameter.function.ts\"],regex:\"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"},{token:[\"keyword.operator.ts\"],regex:\"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"},{token:[\"storage.type.variable.ts\"],regex:\"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"},{token:[\"keyword.operator.ts\",\"storage.type.variable.ts\",\"keyword.operator.ts\",\"storage.type.variable.ts\"],regex:\"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"},{token:\"keyword\",regex:\"(?:super|export|class|extends|import)\\\\b\"}],n=(new i({jsx:(e&&e.jsx)==1})).getRules();n.start=t.concat(n.start),this.$rules=n};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./typescript_highlight_rules\").TypeScriptHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/typescript\"}.call(f.prototype),t.Mode=f});\n                (function() {\n                    ace.require([\"ace/mode/typescript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-vala.js",
    "content": "ace.define(\"ace/mode/vala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.using.vala\",\"keyword.other.using.vala\",\"meta.using.vala\",\"storage.modifier.using.vala\",\"meta.using.vala\",\"punctuation.terminator.vala\"],regex:\"^(\\\\s*)(using)\\\\b(?:(\\\\s*)([^ ;$]+)(\\\\s*)((?:;)?))?\"},{include:\"#code\"}],\"#all-types\":[{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"}],\"#annotations\":[{token:[\"storage.type.annotation.vala\",\"punctuation.definition.annotation-arguments.begin.vala\"],regex:\"(@[^ (]+)(\\\\()\",push:[{token:\"punctuation.definition.annotation-arguments.end.vala\",regex:\"\\\\)\",next:\"pop\"},{token:[\"constant.other.key.vala\",\"text\",\"keyword.operator.assignment.vala\"],regex:\"(\\\\w*)(\\\\s*)(=)\"},{include:\"#code\"},{token:\"punctuation.seperator.property.vala\",regex:\",\"},{defaultToken:\"meta.declaration.annotation.vala\"}]},{token:\"storage.type.annotation.vala\",regex:\"@\\\\w*\"}],\"#anonymous-classes-and-new\":[{token:\"keyword.control.new.vala\",regex:\"\\\\bnew\\\\b\",push_disabled:[{token:\"text\",regex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",next:\"pop\"},{token:[\"storage.type.vala\",\"text\"],regex:\"(\\\\w+)(\\\\s*)(?=\\\\[)\",push:[{token:\"text\",regex:\"}|(?=;|\\\\))\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"text\",regex:\"(?=\\\\w.*\\\\()\",push:[{token:\"text\",regex:\"(?<=\\\\))\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\))\",next:\"pop\"},{include:\"#object-types\"},{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"meta.inner-class.vala\",regex:\"{\",push:[{token:\"meta.inner-class.vala\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.inner-class.vala\"}]}]}],\"#assertions\":[{token:[\"keyword.control.assert.vala\",\"meta.declaration.assertion.vala\"],regex:\"\\\\b(assert|requires|ensures)(\\\\s)\",push:[{token:\"meta.declaration.assertion.vala\",regex:\"$\",next:\"pop\"},{token:\"keyword.operator.assert.expression-seperator.vala\",regex:\":\"},{include:\"#code\"},{defaultToken:\"meta.declaration.assertion.vala\"}]}],\"#class\":[{token:\"meta.class.vala\",regex:\"(?=\\\\w?[\\\\w\\\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\\\s+\\\\w+)\",push:[{token:\"paren.vala\",regex:\"}\",next:\"pop\"},{include:\"#storage-modifiers\"},{include:\"#comments\"},{token:[\"storage.modifier.vala\",\"meta.class.identifier.vala\",\"entity.name.type.class.vala\"],regex:\"(class|(?:@)?interface|enum|struct|namespace)(\\\\s+)([\\\\w\\\\.]+)\"},{token:\"storage.modifier.extends.vala\",regex:\":\",push:[{token:\"meta.definition.class.inherited.classes.vala\",regex:\"(?={|,)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.inherited.classes.vala\"}]},{token:[\"storage.modifier.implements.vala\",\"meta.definition.class.implemented.interfaces.vala\"],regex:\"(,)(\\\\s)\",push:[{token:\"meta.definition.class.implemented.interfaces.vala\",regex:\"(?=\\\\{)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.implemented.interfaces.vala\"}]},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.class.body.vala\"}]},{defaultToken:\"meta.class.vala\"}],comment:\"attempting to put namespace in here.\"}],\"#class-body\":[{include:\"#comments\"},{include:\"#class\"},{include:\"#enums\"},{include:\"#methods\"},{include:\"#annotations\"},{include:\"#storage-modifiers\"},{include:\"#code\"}],\"#code\":[{include:\"#comments\"},{include:\"#class\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{include:\"#assertions\"},{include:\"#parens\"},{include:\"#constants-and-special-vars\"},{include:\"#anonymous-classes-and-new\"},{include:\"#keywords\"},{include:\"#storage-modifiers\"},{include:\"#strings\"},{include:\"#all-types\"}],\"#comments\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\\\\*/\"},{include:\"text.html.javadoc\"},{include:\"#comments-inline\"}],\"#comments-inline\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.vala\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.vala\"}]},{token:[\"text\",\"punctuation.definition.comment.vala\",\"comment.line.double-slash.vala\"],regex:\"(\\\\s*)(//)(.*$)\"}],\"#constants-and-special-vars\":[{token:\"constant.language.vala\",regex:\"\\\\b(?:true|false|null)\\\\b\"},{token:\"variable.language.vala\",regex:\"\\\\b(?:this|base)\\\\b\"},{token:\"constant.numeric.vala\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\\\b\"},{token:[\"keyword.operator.dereference.vala\",\"constant.other.vala\"],regex:\"((?:\\\\.)?)\\\\b([A-Z][A-Z0-9_]+)(?!<|\\\\.class|\\\\s*\\\\w+\\\\s*=)\\\\b\"}],\"#enums\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.enum.vala\",regex:\"\\\\w+\",push:[{token:\"meta.enum.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"}]},{defaultToken:\"meta.enum.vala\"}]}]}],\"#keywords\":[{token:\"keyword.control.catch-exception.vala\",regex:\"\\\\b(?:try|catch|finally|throw)\\\\b\"},{token:\"keyword.control.vala\",regex:\"\\\\?|:|\\\\?\\\\?\"},{token:\"keyword.control.vala\",regex:\"\\\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\\\b\"},{token:\"keyword.operator.vala\",regex:\"\\\\b(?:typeof|is|as)\\\\b\"},{token:\"keyword.operator.comparison.vala\",regex:\"==|!=|<=|>=|<>|<|>\"},{token:\"keyword.operator.assignment.vala\",regex:\"=\"},{token:\"keyword.operator.increment-decrement.vala\",regex:\"\\\\-\\\\-|\\\\+\\\\+\"},{token:\"keyword.operator.arithmetic.vala\",regex:\"\\\\-|\\\\+|\\\\*|\\\\/|%\"},{token:\"keyword.operator.logical.vala\",regex:\"!|&&|\\\\|\\\\|\"},{token:\"keyword.operator.dereference.vala\",regex:\"\\\\.(?=\\\\S)\",originalRegex:\"(?<=\\\\S)\\\\.(?=\\\\S)\"},{token:\"punctuation.terminator.vala\",regex:\";\"},{token:\"keyword.operator.ownership\",regex:\"owned|unowned\"}],\"#methods\":[{token:\"meta.method.vala\",regex:\"(?!new)(?=\\\\w.*\\\\s+)(?=[^=]+\\\\()\",push:[{token:\"paren.vala\",regex:\"}|(?=;)\",next:\"pop\"},{include:\"#storage-modifiers\"},{token:[\"entity.name.function.vala\",\"meta.method.identifier.vala\"],regex:\"([\\\\~\\\\w\\\\.]+)(\\\\s*\\\\()\",push:[{token:\"meta.method.identifier.vala\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameters\"},{defaultToken:\"meta.method.identifier.vala\"}]},{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w.*\\\\s+\\\\w+\\\\s*\\\\()\",push:[{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w+\\\\s*\\\\()\",next:\"pop\"},{include:\"#all-types\"},{defaultToken:\"meta.method.return-type.vala\"}]},{include:\"#throws\"},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"},{defaultToken:\"meta.method.body.vala\"}]},{defaultToken:\"meta.method.vala\"}]}],\"#namespace\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.namespace.vala\",regex:\"\\\\w+\",push:[{token:\"meta.namespace.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"meta.namespace.vala\"}]}],comment:\"This is not quite right. See the class grammar right now\"}],\"#object-types\":[{token:\"storage.type.generic.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\?<\\\\[()\\\\]]\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\">|[^\\\\w\\\\s,\\\\?<\\\\[(?:[,]+)\\\\]]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\[\\\\]<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"storage.type.generic.vala\"}]},{token:\"storage.type.object.array.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*(?=\\\\[)\",push:[{token:\"storage.type.object.array.vala\",regex:\"(?=[^\\\\]\\\\s])\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"storage.type.object.array.vala\"}]},{token:[\"storage.type.vala\",\"keyword.operator.dereference.vala\",\"storage.type.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*\\\\b)\"}],\"#object-types-inherited\":[{token:\"entity.other.inherited-class.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"entity.other.inherited-class.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"entity.other.inherited-class.vala\"}]},{token:[\"entity.other.inherited-class.vala\",\"keyword.operator.dereference.vala\",\"entity.other.inherited-class.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*)\"}],\"#parameters\":[{token:\"storage.modifier.vala\",regex:\"final\"},{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"},{token:\"variable.parameter.vala\",regex:\"\\\\w+\"}],\"#parens\":[{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}],\"#primitive-arrays\":[{token:\"storage.type.primitive.array.vala\",regex:\"\\\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\\\[\\\\])*\\\\b\"}],\"#primitive-types\":[{token:\"storage.type.primitive.vala\",regex:\"\\\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\b\",comment:\"var is not really a primitive, but acts like one in most cases\"}],\"#storage-modifiers\":[{token:\"storage.modifier.vala\",regex:\"\\\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\\\b\",comment:\"Not sure about unsafe and readonly\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.vala\",regex:'@\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.|%[\\\\w\\\\.\\\\-]+|\\\\$(?:\\\\w+|\\\\([\\\\w\\\\s\\\\+\\\\-\\\\*\\\\/]+\\\\))\"},{defaultToken:\"string.quoted.interpolated.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.double.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.vala\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.triple.vala\"}]}],\"#throws\":[{token:\"storage.modifier.vala\",regex:\"throws\",push:[{token:\"meta.throwables.vala\",regex:\"(?={|;)\",next:\"pop\"},{include:\"#object-types\"},{defaultToken:\"meta.throwables.vala\"}]}],\"#values\":[{include:\"#strings\"},{include:\"#object-types\"},{include:\"#constants-and-special-vars\"}]},this.normalizeRules()};s.metaData={comment:\"Based heavily on the Java bundle's language syntax. TODO:\\n* Closures\\n* Delegates\\n* Properties: Better support for properties.\\n* Annotations\\n* Error domains\\n* Named arguments\\n* Array slicing, negative indexes, multidimensional\\n* construct blocks\\n* lock blocks?\\n* regex literals\\n* DocBlock syntax highlighting. (Currently importing javadoc)\\n* Folding rule for comments.\\n\",fileTypes:[\"vala\"],foldingStartMarker:\"(\\\\{\\\\s*(//.*)?$|^\\\\s*// \\\\{\\\\{\\\\{)\",foldingStopMarker:\"^\\\\s*(\\\\}|// \\\\}\\\\}\\\\}$)\",name:\"Vala\",scopeName:\"source.vala\"},r.inherits(s,i),t.ValaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/vala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/vala_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"../tokenizer\").Tokenizer,o=e(\"./vala_highlight_rules\").ValaHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=o,this.$outdent=new l,this.$behaviour=new a,this.foldingRules=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/vala\"}.call(c.prototype),t.Mode=c});\n                (function() {\n                    ace.require([\"ace/mode/vala\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-vbscript.js",
    "content": "ace.define(\"ace/mode/vbscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"keyword.control.asp\":\"If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf\",\"storage.type.asp\":\"Dim|Call|Class|Const|Dim|Redim|Set|Let|Get|New|Randomize|Option|Explicit\",\"storage.modifier.asp\":\"Private|Public|Default\",\"keyword.operator.asp\":\"Mod|And|Not|Or|Xor|as\",\"constant.language.asp\":\"Empty|False|Nothing|Null|True\",\"support.class.asp\":\"Application|ObjectContext|Request|Response|Server|Session\",\"support.class.collection.asp\":\"Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables\",\"support.constant.asp\":\"TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout\",\"support.function.asp\":\"Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex\",\"support.function.event.asp\":\"Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart\",\"support.function.vb.asp\":\"Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year\",\"support.type.vb.asp\":\"vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray\"},\"identifier\",!0);this.$rules={start:[{token:[\"meta.ending-space\"],regex:\"$\"},{token:[null],regex:\"^(?=\\\\t)\",next:\"state_3\"},{token:[null],regex:\"^(?= )\",next:\"state_4\"},{token:[\"text\",\"storage.type.function.asp\",\"text\",\"entity.name.function.asp\",\"text\",\"punctuation.definition.parameters.asp\",\"variable.parameter.function.asp\",\"punctuation.definition.parameters.asp\"],regex:\"^(\\\\s*)(Function|Sub)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()([^)]*)(\\\\))\"},{token:\"punctuation.definition.comment.asp\",regex:\"'|REM(?=\\\\s|$)\",next:\"comment\",caseInsensitive:!0},{token:\"storage.type.asp\",regex:\"On Error Resume Next|On Error GoTo\",caseInsensitive:!0},{token:\"punctuation.definition.string.begin.asp\",regex:'\"',next:\"string\"},{token:[\"punctuation.definition.variable.asp\"],regex:\"(\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b\\\\s*\"},{token:\"constant.numeric.asp\",regex:\"-?\\\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\\\.?[0-9]*)|(?:\\\\.[0-9]+))(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{regex:\"\\\\w+\",token:e},{token:[\"entity.name.function.asp\"],regex:\"(?:(\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b)(?=\\\\(\\\\)?))\"},{token:[\"keyword.operator.asp\"],regex:\"\\\\-|\\\\+|\\\\*\\\\/|\\\\>|\\\\<|\\\\=|\\\\&\"}],state_3:[{token:[\"meta.odd-tab.tabs\",\"meta.even-tab.tabs\"],regex:\"(\\\\t)(\\\\t)?\"},{token:\"meta.leading-space\",regex:\"(?=[^\\\\t])\",next:\"start\"},{token:\"meta.leading-space\",regex:\".\",next:\"state_3\"}],state_4:[{token:[\"meta.odd-tab.spaces\",\"meta.even-tab.spaces\"],regex:\"(  )(  )?\"},{token:\"meta.leading-space\",regex:\"(?=[^ ])\",next:\"start\"},{defaultToken:\"meta.leading-space\"}],comment:[{token:\"comment.line.apostrophe.asp\",regex:\"$|(?=(?:%>))\",next:\"start\"},{defaultToken:\"comment.line.apostrophe.asp\"}],string:[{token:\"constant.character.escape.apostrophe.asp\",regex:'\"\"'},{token:\"string.quoted.double.asp\",regex:'\"',next:\"start\"},{defaultToken:\"string.quoted.double.asp\"}]}};r.inherits(s,i),t.VBScriptHighlightRules=s}),ace.define(\"ace/mode/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vbscript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vbscript_highlight_rules\").VBScriptHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=[\"'\",\"REM\"],this.$id=\"ace/mode/vbscript\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/vbscript\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-velocity.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom\",f=t.supportConstantColor=\"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"ruleset\"},{token:\"paren.rparen\",regex:\"\\\\}\"},{token:\"string\",regex:\"@(?!viewport)\",next:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"keyword\",regex:\"%\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:c},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{include:[\"strings\",\"url\",\"comments\"]},{token:\"paren.lparen\",regex:\"\\\\{\",next:\"start\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"string\",regex:\";\",next:\"start\"},{token:\"keyword\",regex:\"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)\"}],comments:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}]}],ruleset:[{regex:\"-(webkit|ms|moz|o)-\",token:\"text\"},{token:\"punctuation.operator\",regex:\"[:;]\"},{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{include:[\"strings\",\"url\",\"comments\"]},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{include:\"url\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}],url:[{token:\"support.function\",regex:\"(?:url(:?-prefix)?|domain|regexp)\\\\(\",push:[{token:\"support.function\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"string\"}]}],strings:[{token:\"string.start\",regex:\"'\",push:[{token:\"string.end\",regex:\"'|$\",next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'\"',push:[{token:\"string.end\",regex:'\"|$',next:\"pop\"},{include:\"escapes\"},{token:\"constant.language.escape\",regex:/\\\\$/,consumeLineEnd:!0},{defaultToken:\"string\"}]}],escapes:[{token:\"constant.language.escape\",regex:/\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0;\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(/^(\\s+[^;]|\\s*$)/.test(f.substring(s.column)))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}}),this.add(\"!important\",\"insertion\",function(e,t,n,r,i){if(i===\"!\"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\\s*(;|}|$)/.test(o.substring(s.column)))return{text:\"!important\",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,\"for\":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{\"for\":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},section:{},summary:{},u:{},ul:{},\"var\":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/velocity_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=function(){o.call(this);var e=i.arrayToMap(\"true|false|null\".split(\"|\")),t=i.arrayToMap(\"_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool\".split(\"|\")),n=i.arrayToMap(\"$contentRoot|$foreach\".split(\"|\")),r=i.arrayToMap(\"#set|#macro|#include|#parse|#if|#elseif|#else|#foreach|#break|#end|#stop\".split(\"|\"));this.$rules.start.push({token:\"comment\",regex:\"##.*$\"},{token:\"comment.block\",regex:\"#\\\\*\",next:\"vm_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z$#][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}),this.$rules.vm_comment=[{token:\"comment\",regex:\"\\\\*#|-->\",next:\"start\"},{defaultToken:\"comment\"}],this.$rules.vm_start=[{token:\"variable\",regex:\"}\",next:\"pop\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_$][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}];for(var s in this.$rules)this.$rules[s].unshift({token:\"variable\",regex:\"\\\\${\",push:\"vm_start\"});this.normalizeRules()};r.inherits(u,s),t.VelocityHighlightRules=u}),ace.define(\"ace/mode/folding/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"##\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"##\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"##\"&&s[i]==\"##\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"##\"&&o[i]==\"##\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/velocity_highlight_rules\",\"ace/mode/folding/velocity\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./velocity_highlight_rules\").VelocityHighlightRules,o=e(\"./folding/velocity\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"##\",this.blockComment={start:\"#*\",end:\"*#\"},this.$id=\"ace/mode/velocity\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/velocity\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-verilog.js",
    "content": "ace.define(\"ace/mode/verilog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xorbegin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|macromodule|module|primitive|repeat|specify|table|task|while\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"//.*$\"},{token:\"comment.start\",regex:\"/\\\\*\",next:[{token:\"comment.end\",regex:\"\\\\*/\",next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string.start\",regex:'\"',next:[{token:\"constant.language.escape\",regex:/\\\\(?:[ntvfa\\\\\"]|[0-7]{1,3}|\\x[a-fA-F\\d]{1,2}|)/,consumeLineEnd:!0},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"'^[']'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.VerilogHighlightRules=s}),ace.define(\"ace/mode/verilog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/verilog_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./verilog_highlight_rules\").VerilogHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"'},this.$id=\"ace/mode/verilog\"}.call(u.prototype),t.Mode=u});\n                (function() {\n                    ace.require([\"ace/mode/verilog\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-vhdl.js",
    "content": "ace.define(\"ace/mode/vhdl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"access|after|ailas|all|architecture|assert|attribute|begin|block|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|file|for|function|generate|generic|guarded|if|impure|in|inertial|inout|is|label|linkage|literal|loop|mapnew|next|of|on|open|others|out|port|process|pure|range|record|reject|report|return|select|shared|subtype|then|to|transport|type|unaffected|united|until|wait|when|while|with\",t=\"bit|bit_vector|boolean|character|integer|line|natural|positive|real|register|severity|signal|signed|std_logic|std_logic_vector|string||text|time|unsigned|variable\",n=\"array|constant\",r=\"abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|srasrl|xnor|xor\",i=\"true|false|null\",s=this.createKeywordMapper({\"keyword.operator\":r,keyword:e,\"constant.language\":i,\"storage.modifier\":n,\"storage.type\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword\",regex:\"\\\\s*(?:library|package|use)\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"&|\\\\*|\\\\+|\\\\-|\\\\/|<|=|>|\\\\||=>|\\\\*\\\\*|:=|\\\\/=|>=|<=|<>\"},{token:\"punctuation.operator\",regex:\"\\\\'|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.VHDLHighlightRules=s}),ace.define(\"ace/mode/vhdl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vhdl_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vhdl_highlight_rules\").VHDLHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/vhdl\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/vhdl\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-wollok.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"from(?=\\\\s*('|\\\"))\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"storage.type\",regex:/=>/},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",consumeLineEnd:!0},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$quotes={'\"':'\"',\"'\":\"'\",\"`\":\"`\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/wollok_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"test|describe|package|inherits|false|import|else|or|class|and|not|native|override|program|self|try|const|var|catch|object|super|throw|if|null|return|true|new|constructor|method|mixin\",t=\"null|assert|console\",n=\"Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range|StackTraceElement\",r=this.createKeywordMapper({\"variable.language\":\"self\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"===|&&|\\\\*=|\\\\.\\\\.|\\\\*\\\\*|#|!|%|\\\\*|\\\\?:|\\\\+|\\\\/|,|\\\\+=|\\\\-|\\\\.\\\\.<|!==|:|\\\\/=|\\\\?\\\\.|\\\\+\\\\+|>|=|<|>=|=>|==|\\\\]|\\\\[|\\\\-=|\\\\->|\\\\||\\\\-\\\\-|<>|!=|%=|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.WollokHighlightRules=o}),ace.define(\"ace/mode/wollok\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/wollok_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./wollok_highlight_rules\").WollokHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/wollok\"}.call(o.prototype),t.Mode=o});\n                (function() {\n                    ace.require([\"ace/mode/wollok\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-xml.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.start.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],processing_instruction:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:t},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.end.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:t},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l});\n                (function() {\n                    ace.require([\"ace/mode/xml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-xquery.js",
    "content": "ace.define(\"ace/mode/xquery/xquery_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function o(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(s)return s(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return o(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var s=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)o(i[u]);return o(i[0])}({\"/node_modules/xqlint/lib/lexers/XQueryTokenizer.js\":[function(e,t,n){var r=n.XQueryTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 77:f(77);break;case 91:f(91);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 140:f(140);break;case 147:f(147);break;case 160:f(160);break;case 180:f(180);break;case 186:f(186);break;case 211:f(211);break;case 221:f(221);break;case 222:f(222);break;case 238:f(238);break;case 239:f(239);break;case 248:f(248);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 14:f(14);break;case 65:f(65);break;case 68:f(68);break;case 69:f(69);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 88:f(88);break;case 89:f(89);break;case 98:f(98);break;case 100:f(100);break;case 103:f(103);break;case 104:f(104);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 113:f(113);break;case 114:f(114);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 148:f(148);break;case 154:f(154);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 165:f(165);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 177:f(177);break;case 179:f(179);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 213:f(213);break;case 214:f(214);break;case 215:f(215);break;case 219:f(219);break;case 224:f(224);break;case 230:f(230);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 245:f(245);break;case 249:f(249);break;case 251:f(251);break;case 255:f(255);break;case 261:f(261);break;case 265:f(265);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 257:f(257);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 26:f(26);break;case 65:f(65);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 89:f(89);break;case 100:f(100);break;case 104:f(104);break;case 108:f(108);break;case 113:f(113);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 126:f(126);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 215:f(215);break;case 219:f(219);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 249:f(249);break;case 261:f(261);break;case 265:f(265);break;case 68:f(68);break;case 69:f(69);break;case 77:f(77);break;case 88:f(88);break;case 91:f(91);break;case 98:f(98);break;case 103:f(103);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 114:f(114);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 124:f(124);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 140:f(140);break;case 147:f(147);break;case 148:f(148);break;case 154:f(154);break;case 160:f(160);break;case 165:f(165);break;case 177:f(177);break;case 179:f(179);break;case 180:f(180);break;case 186:f(186);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 211:f(211);break;case 213:f(213);break;case 214:f(214);break;case 221:f(221);break;case 222:f(222);break;case 224:f(224);break;case 230:f(230);break;case 238:f(238);break;case 239:f(239);break;case 245:f(245);break;case 248:f(248);break;case 251:f(251);break;case 255:f(255);break;case 257:f(257);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=28)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 55:f(55);break;case 54:f(54);break;case 56:f(56);break;case 40:f(40);break;case 42:f(42);break;case 41:f(41);break;case 35:f(35);break;case 38:f(38);break;case 274:f(274);break;case 271:f(271);break;case 39:f(39);break;case 43:f(43);break;case 49:f(49);break;case 62:f(62);break;case 63:f(63);break;case 46:f(46);break;case 48:f(48);break;case 53:f(53);break;case 51:f(51);break;case 34:f(34);break;case 273:f(273);break;case 2:f(2);break;case 1:f(1);break;case 3:f(3);break;case 12:f(12);break;case 13:f(13);break;case 15:f(15);break;case 16:f(16);break;case 17:f(17);break;case 5:f(5);break;case 6:f(6);break;case 4:f(4);break;case 33:f(33);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 58:f(58);break;case 50:f(50);break;case 27:f(27);break;case 57:f(57);break;case 35:f(35);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 23:f(23);break;case 6:f(6);break;case 7:f(7);break;case 55:f(55);break;case 54:f(54);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;default:f(33)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 20:f(20);break;case 25:f(25);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 19:f(19);break;case 24:f(24);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 11:f(11);break;case 64:f(64);break;default:f(33)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 9:f(9);break;case 47:f(47);break;default:f(33)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 10:f(10);break;case 59:f(59);break;case 60:f(60);break;default:f(33)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 8:f(8);break;case 36:f(36);break;case 37:f(37);break;default:f(33)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 52:f(52);break;case 41:f(41);break;case 30:f(30);break;default:f(33)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(5);switch(y){case 31:f(31);break;case 32:f(32);break;case 52:f(52);break;case 41:f(41);break;default:f(33)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(6);switch(y){case 18:f(18);break;case 29:f(29);break;case 19:f(19);break;case 21:f(21);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 18:f(18);break;case 29:f(29);break;case 20:f(20);break;case 22:f(22);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<276;i+=32){var s=i,o=(i>>5)*2062+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35,35,35,35,35,35,35,35,35,35,35,35,31,31,35,35,35,35,35,35,35,65,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,35,31,35,31,31,35],r.INITIAL=[1,2,36867,45060,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22908,18836,17152,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18579,21711,17152,19008,19233,20367,19008,28684,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20116,18836,18637,19008,19233,21267,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18763,18778,18794,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18821,22923,18906,19008,19233,17431,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18937,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19054,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,18953,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21843,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21696,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22429,20131,18720,19008,19233,20367,19008,17173,23559,36437,17330,17349,18921,17189,17208,17281,20355,18087,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,21242,19111,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19024,18836,18609,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19081,22444,18987,19008,19233,20367,19008,19065,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21992,22007,18987,19008,19233,20367,19008,18690,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22414,18836,18987,19008,19233,30651,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19138,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19280,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,19172,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21783,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19218,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21651,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19249,19265,19307,18888,27857,30536,24401,31444,23357,18888,19351,18888,18890,27211,19370,27211,27211,19392,24401,31911,24401,24401,25467,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,17994,24060,18888,18888,18888,18890,19468,27211,27211,27211,27211,19484,35367,19520,24401,24401,24401,19628,18888,29855,18888,18888,23086,27211,19538,27211,27211,30756,24012,24401,19560,24401,24401,26750,18888,18888,19327,27855,27211,27211,19580,17590,24017,24401,24401,19600,25665,18888,18888,28518,27211,27212,24016,19620,19868,28435,25722,18889,19644,27211,32888,35852,19868,31018,19694,19376,19717,22215,19735,22098,19751,35203,19776,19797,19817,19840,25783,31738,24135,19701,19856,31015,23516,31008,28311,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21768,18836,19307,18888,27857,27904,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,19888,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22399,18836,19918,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21666,18836,19307,18888,27857,27525,24401,29183,21467,18888,18888,18888,18890,27211,27211,27211,27211,19946,24401,24401,24401,24401,32382,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19998,24401,24401,24401,24401,31500,18467,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,20021,24401,24401,24401,24401,24401,34271,18888,18888,18888,18888,23086,27211,27211,27211,27211,32926,29908,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,20050,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20101,19039,20191,20412,20903,17569,20309,20872,25633,20623,20505,20218,20242,17189,17208,17281,20355,20265,20306,20328,20383,22490,20796,20619,21354,20654,20410,20956,21232,20765,17421,20535,17192,18127,22459,20312,25531,22470,20309,20428,18964,20466,20491,21342,21070,20521,20682,17714,18326,17543,17559,17585,22497,20559,19504,20279,20575,20290,20475,20604,20639,20226,20670,17661,21190,17703,21176,17730,19494,20698,20711,22480,21046,21116,18971,21130,20727,20755,17675,17753,17832,17590,25518,20394,20781,20831,20202,20847,21401,17292,17934,17979,18549,20863,20588,25542,20888,20919,18072,18117,20935,20972,21032,21062,21086,18239,21102,18563,21146,21162,21206,18351,20949,20902,18340,21222,21258,21283,18360,20249,17405,21295,21311,21327,20739,20343,21370,21386,21417,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21977,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,21452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,21504,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,36501,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,28674,21946,17617,36473,18223,17237,17477,19152,17860,17892,17675,17753,17832,21575,21534,17481,19156,17864,18731,17918,36551,17292,17934,21560,30628,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21798,18836,21612,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21636,18836,18987,19008,19233,17902,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21753,19096,21903,19008,19233,20367,19008,19291,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17379,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,21931,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18280,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21962,18594,18987,19008,19233,22043,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21681,21858,18987,19008,19233,20367,19008,21544,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,32319,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,22231,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,31678,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,33588,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,35019,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22248,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22324,18836,22059,18888,27857,30501,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,34365,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22354,18836,18987,19008,19233,20367,19008,17173,27086,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,19930,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22309,22513,18987,19008,19233,20367,19008,19122,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,22544,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22608,18836,22988,23004,27585,23020,23036,23067,22087,18888,18888,18888,23083,27211,27211,27211,23102,22121,24401,24401,24401,23122,31386,26154,19674,18888,28119,28232,19424,23705,27211,27211,23142,23173,23189,23212,24401,24401,23246,34427,31693,23262,18888,23290,23308,27783,27620,23327,35263,35107,33383,23346,18193,23393,32748,23968,24401,23414,35153,23463,18888,33913,23442,23482,27211,27211,23532,23552,21431,23575,24401,24401,23604,26095,23635,23657,18888,33482,23685,33251,27211,22187,18851,23721,35536,24401,18887,23750,32641,27211,23769,23787,20080,33012,24384,25659,18888,18889,27211,27211,19719,23889,23803,31018,18890,27211,31833,19406,19447,23086,23330,19828,28224,31826,23823,26917,34978,23850,26493,25782,23878,23914,23516,31008,22105,19419,27963,19659,29781,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22623,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,28909,25783,27211,27211,27211,34048,23933,22164,24401,24401,24401,28409,23949,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,26583,18888,18888,18888,35585,23984,27211,27211,27211,24005,22201,24033,24401,24401,24401,24052,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,26496,24076,24126,24151,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22638,18836,22059,19678,27857,24185,24401,24201,24217,26592,18888,18888,18890,24252,24268,27211,27211,22121,24287,24303,24401,24401,30613,19781,35432,36007,32649,18888,25783,24322,28966,23771,27211,35072,22164,24358,32106,26829,24400,31500,31693,18888,18888,18888,24801,18890,27211,27211,27211,27211,24418,19484,24401,24401,24401,24401,20167,31181,18888,18888,18888,27833,23086,27211,27211,33540,27211,30756,21431,24401,24401,22972,24401,26095,18888,36131,18888,27855,27211,24440,27211,22187,22968,24401,24459,24401,31699,28454,18888,34528,34570,35779,24478,24402,24494,25659,18888,36228,27211,27211,24515,30981,23734,31018,18890,27211,31833,19406,19447,23086,23330,24538,31017,27856,31741,30059,23377,24563,19837,25782,19760,31015,23516,25374,22105,19419,29793,24579,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22653,18836,22059,25756,19982,34097,23196,29183,24614,24110,23641,24673,26103,24697,24443,24713,28558,22121,24748,24462,24764,23398,30613,18888,18888,18888,18888,24798,25783,27211,27211,27211,34232,35072,22164,24401,24401,24401,33302,31500,22559,24106,24232,18888,18888,34970,24817,30411,27211,27211,32484,19484,29750,35127,24401,24401,19872,31181,24852,18888,18888,24871,29221,27211,27211,32072,27211,30756,34441,24401,24401,31571,24401,26095,33141,27802,27011,27855,25295,25607,24888,22187,22968,19195,34593,24906,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,33663,27211,27211,24924,24947,23588,31018,18890,27211,31833,22135,19447,23086,23330,19828,30904,31042,24972,19840,25e3,31738,30898,25782,19760,31015,23516,31008,22105,19419,25016,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22668,18836,25041,25057,31320,25073,25089,25105,22087,34796,24236,36138,34870,34125,25121,23106,35497,22248,36613,25137,30671,27365,30613,25153,26447,25199,25233,22574,23274,25249,25265,25281,25318,25344,25360,25400,25428,25452,26731,25504,31693,23669,25558,27407,25575,28599,25934,25599,27211,28180,27304,25623,25839,25649,24401,34820,25681,25698,22586,27775,30190,25745,25778,25799,25817,28995,33569,30756,21518,33443,25837,25855,25893,26095,31254,26677,30136,27855,25930,25950,27211,22187,22968,25966,25986,24401,23428,27763,36330,26959,26002,26029,26045,26085,26119,26170,26203,26222,26239,30527,26372,26274,28404,31018,33757,27211,34262,26316,36729,26345,26366,35337,31017,26388,26407,30954,26350,33861,26434,26463,26479,26512,23516,33189,26531,26547,27963,31293,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22683,18836,26568,26181,26608,34097,26643,29183,22087,26669,18888,18888,18890,26693,27211,27211,27211,22121,26720,24401,24401,24401,30613,18888,18888,18888,18888,26774,25783,27211,27211,27211,26619,35072,22164,24401,24401,24401,21596,31500,31693,18888,18888,33978,18888,18890,27211,27211,25801,27211,27211,19484,24401,24401,24401,26792,24401,31181,18888,18888,18888,35464,23086,27211,27211,27211,26809,30756,21431,24401,24401,24401,26828,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,31948,18889,35707,27211,19719,26845,19868,31018,18890,27211,31833,19406,19447,23086,23330,26905,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,24984,31088,19419,26945,27651,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22698,18836,26999,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23051,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,27033,24401,24401,24401,24401,24036,31693,18888,18888,27056,18888,18890,27211,27211,30320,27211,27211,27075,24401,24401,29032,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,33986,27855,27211,27211,27102,17590,24017,24401,24401,27123,27144,36254,27162,27210,27228,28500,18187,34842,33426,27244,35980,27277,27302,27320,36048,34013,20999,31882,21478,27895,27356,30287,27381,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,26329,30087,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,27406,27423,27445,35294,27461,22087,18888,18888,30140,18890,27211,27211,27989,27211,22121,24401,24401,25682,24401,18866,18888,18888,18888,18888,18888,34042,27211,27211,27211,27211,29700,22164,24401,24401,24401,24401,27128,31693,27477,18888,18888,18888,18890,27194,27211,27211,27211,27211,19484,35299,24401,24401,24401,24401,19628,18888,18888,18888,27059,23086,27211,27211,27211,33366,30756,24012,24401,24401,24401,35044,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,20815,27211,30818,19960,33969,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22713,18836,22059,27496,27516,27541,35231,27557,22087,29662,26292,23292,27573,24836,27601,27211,27636,22121,35544,27686,24401,27721,18866,18888,27799,18888,27818,22071,27853,32260,27211,26013,27873,27920,22164,29419,24401,29946,33413,26742,27751,26881,18888,18888,27261,36776,27936,27211,27211,27211,27988,28005,28031,28052,24401,24401,28069,28088,28135,25488,28152,26069,28167,27211,28340,24657,28196,30756,31523,24401,28212,34176,36174,24956,28248,28266,28290,21488,33077,28327,28356,17590,20986,23126,28391,28425,28102,28451,28470,28490,28516,28534,20034,33728,25868,25659,18888,18889,27211,27211,19719,23889,19868,30241,28274,28553,28574,19406,28590,23086,23330,19828,19452,28615,28660,26147,25783,31738,19837,25782,19760,29613,35958,29276,22105,19419,27963,23157,28700,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,22528,18888,18888,18888,18888,18890,27333,27211,27211,27211,27211,19484,30853,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22728,18836,28747,28782,28817,28841,28857,28880,28896,24161,28943,32011,36261,27340,28961,29492,28982,29011,24522,29027,25436,29048,23051,27500,29090,29110,30713,18888,23512,29130,25183,27211,29155,28927,27033,29173,23230,24401,29199,35373,31693,18888,18888,25583,32629,29218,27211,27211,31461,30692,29237,27075,24401,24401,24401,29262,29302,19628,18888,34329,18888,18888,23086,27211,29329,27211,27211,30756,24012,35933,24401,24401,24401,27705,31612,18888,18888,29346,29374,27211,35650,17590,21436,29393,24401,25970,18887,33895,18888,27211,32528,27212,24016,32769,19868,25659,18888,26889,27211,27211,29412,23889,24371,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31768,19840,25783,31738,19837,29435,29508,31102,29550,29606,22105,30300,29462,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22743,18836,22059,29629,29473,34097,33285,29183,29651,27254,18888,29678,33329,32535,27211,29694,29716,22121,19202,24401,32742,29741,18866,26776,33921,28474,18888,18888,25783,29766,27211,29809,27211,35072,22164,35825,24401,29828,24401,24036,36769,25217,18888,18888,29848,18890,27211,29871,27211,26258,27211,29894,24401,29929,24401,36587,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,29725,29962,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18473,18888,18888,19584,27211,27212,24016,29982,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19902,19447,32052,19544,19828,29998,30097,30031,19840,25783,30047,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,30075,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22758,18836,30121,30156,30206,30257,30273,30336,22087,35624,32837,25762,18890,29878,34934,26812,27211,22121,24931,23223,29202,24401,18866,34373,30352,18888,18888,18888,23447,24828,27211,27211,27211,35072,30370,35052,24401,24401,24401,24036,29523,18888,18888,27146,18888,31308,30386,27211,27211,30405,30558,19484,30427,24401,24401,29938,35686,19628,28766,30447,34506,35614,23086,28731,30482,30517,30552,30756,24012,20156,30574,30598,30667,26283,33464,28945,27670,30687,32915,33504,25328,17590,23963,20450,33837,21016,32397,26300,30708,30729,27885,30748,21588,36373,30779,26653,24628,33220,32514,30806,31835,25412,25906,26515,18890,28825,31833,26133,19447,28304,31730,23834,26057,30869,30885,32181,30920,30942,32797,25782,30970,31015,23516,31008,30997,31034,27963,19659,29450,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22773,18836,31058,31074,32463,31125,31141,31197,22087,18888,29534,35471,36738,27211,24342,31213,24424,22121,24401,20175,31229,31917,27736,31245,34334,27175,18888,29094,27286,27211,31278,31336,27211,31355,31371,24401,31402,31418,24401,31437,31693,18888,31619,32841,18888,18890,27211,27211,31460,31477,27211,19484,24401,24401,31497,36581,24401,33020,18888,18888,18888,18888,30007,27211,27211,27211,27211,31516,32310,24401,24401,24401,24401,31539,18888,28762,18888,24651,35740,27211,27211,28644,31565,35796,24401,24401,19318,32188,18888,24334,28366,27212,29966,29832,19868,25659,18888,18889,27211,27211,19719,31587,19868,31635,32435,33693,30105,31663,20005,31715,31757,31784,31812,30015,31851,31878,25783,31898,19837,25782,19760,31015,23516,31008,22105,19419,27963,31933,30221,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22788,18836,22059,25729,30466,31968,24306,31984,32e3,32807,35160,27017,29590,34941,19801,29377,33700,22121,27040,30431,29396,28864,29565,18888,18888,18888,32027,18888,25783,27211,27211,23698,27211,35072,22164,24401,24401,30845,24401,24036,32045,18888,26929,18888,18888,18890,27211,31481,32068,27211,27211,32088,24401,33058,32122,24401,24401,33736,18888,18888,33162,18888,23086,27211,27211,29484,27211,28375,32144,24401,24401,33831,24401,26750,18888,18888,18888,27855,27211,27211,27211,36704,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,33107,22171,33224,24271,32169,31017,27856,31741,19840,25783,31738,30234,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,32204,32232,32252,32677,33295,29074,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23619,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,32276,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,32299,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,33886,18889,36065,27211,19719,35326,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22803,18836,32335,31647,34666,32351,32367,32417,22087,18888,32433,19335,32451,27211,32479,27107,32500,22121,24401,32551,20085,32572,18866,22287,23753,18888,18888,32602,32665,27211,32693,27211,26972,32713,32729,24401,32764,24401,25877,32785,34768,18888,27390,32823,24594,24855,32857,24890,32878,32904,27211,32942,32977,24401,33e3,29313,24401,30790,26206,27666,33904,18888,23086,36353,27211,33036,27211,30756,24012,32153,24401,33056,24401,35861,18888,18888,30354,27972,27211,27211,33800,17590,20145,24401,24401,34638,20811,18888,18888,33074,27211,27212,36167,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,34616,24169,33093,33123,33157,27856,31741,23862,26552,34302,19837,25782,19760,31015,23516,31008,33178,19973,27963,23497,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22818,18836,33205,28113,33240,34097,33275,29183,22087,33318,35438,18888,18890,33345,26391,33382,27211,22121,33399,28072,33442,24401,18866,22232,18888,33459,18888,18888,33480,33498,25175,27211,27211,26704,22164,24775,35239,24401,24401,25914,29580,18888,18888,31109,25211,33520,33539,27211,27211,33556,36284,19484,33585,24401,24401,33604,32556,19628,18888,18888,31262,33658,23086,27211,27211,33679,27211,30756,24012,24401,24401,33716,24401,26854,27480,18888,33752,27855,33259,34701,27211,17590,32102,24782,23807,24401,18887,18888,18888,27211,27211,27212,33773,36105,19868,25659,18888,23368,27211,29157,19719,23889,34454,29286,18890,33794,25302,33816,19447,34079,33853,31862,31017,27856,31741,33877,28920,33937,19837,30461,34002,22276,36041,34029,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22833,18836,34064,32616,34113,34141,34157,34192,34208,32216,36013,31549,31952,34224,34248,34287,29330,34350,34389,34413,34481,26793,18866,26187,29635,22293,18888,36654,25783,34522,34544,34566,25821,35072,22164,34586,34609,34632,19604,24036,36644,36674,24681,18888,32401,34654,31339,34682,34698,27211,34717,34753,28053,34812,34836,24401,33619,19628,34858,32236,34906,24598,33523,27612,34890,34922,24732,29246,36717,33634,34465,32984,34168,26750,34957,18888,18888,34994,35010,27211,33040,17590,29913,35035,24401,36304,25482,30171,35883,35068,35088,26627,20441,31173,35123,35143,35176,24640,30492,29358,19719,35192,35219,25384,28801,35255,35279,32586,34496,23086,23330,29061,31017,27856,31741,19840,25783,31738,24547,25164,35315,31796,35353,34316,22105,19419,27963,24091,28630,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22848,18836,22059,34782,34088,35389,21008,35405,35421,35454,18888,18888,23466,35487,27211,27211,27211,35513,31154,24401,24401,24401,35560,18888,26863,36664,35601,24872,25783,30389,23536,26250,35647,35666,22164,19522,19564,30582,35682,27697,35575,29114,18888,18888,18888,18890,27211,35702,27211,27211,27211,35723,24401,35527,24401,24401,24401,19628,30184,18888,18888,18888,23086,35739,27211,27211,27211,29139,22938,24401,24401,24401,24401,23898,35756,18888,18888,25025,35778,27211,27211,17590,20064,35795,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,23917,18890,34550,31833,22262,19447,23086,23330,26418,31017,27856,31741,19840,25783,35812,19837,27187,35841,33135,23516,31008,22105,22148,28712,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22863,18836,22059,35877,28723,34097,31164,29183,22087,26758,18888,22592,18890,23989,27211,29812,27211,22121,33778,24401,31421,24401,18866,18888,18888,26872,18888,18888,25783,27211,30732,27211,27211,35072,22164,24401,24908,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22878,18836,22059,27837,27857,35899,24401,35915,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31602,18888,18888,18888,18888,26223,27211,27211,27211,27211,27211,19484,35931,24401,24401,24401,24401,19628,18888,28136,18888,18888,35949,27211,32862,27211,32697,30756,24012,24401,32283,24401,32128,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22893,18836,22059,35974,34882,34097,33960,29183,35996,18888,23311,18888,36029,27211,27211,36064,36081,22121,24401,24401,36104,33950,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,36121,18888,25559,18888,18888,18890,27211,27211,30313,27211,27211,36154,24401,24401,34397,24401,24401,19628,28250,18888,18888,18888,23086,30926,27211,27211,27211,26983,24012,33642,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,19354,27857,36190,24401,36206,22087,18888,18888,18888,18007,27211,27211,27211,24724,22121,24401,24401,24401,30827,18866,18888,36222,18888,28795,18888,25783,35100,27211,27429,27211,35072,22164,30836,24401,24499,24401,24036,31693,18888,36244,18888,18888,18890,27211,36088,27211,27211,27211,19484,24401,28036,24401,24401,24401,19628,18888,18888,35631,18888,35762,27211,27211,36277,27211,34730,24012,24401,24401,36300,24401,36320,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,25712,18888,18888,36346,27211,27212,19184,24402,19868,25659,32029,18889,27211,33359,19719,23889,36369,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22384,18836,36389,19008,19233,20367,36434,17173,17595,36437,17330,17349,18921,17189,17208,17281,20355,36453,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22369,18836,18987,19008,19233,20367,19008,21737,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21813,18836,36489,19008,19233,20367,19008,17173,17737,36437,17330,17349,18921,17189,17208,17281,20355,17768,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20543,22022,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,36517,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,19307,18888,27857,30756,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,36567,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,36603,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,36629,36690,18720,19008,19233,20367,19008,17454,17595,36437,17330,17349,18921,17189,17208,17281,20355,17223,17308,17327,17346,18918,36754,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,0,94242,0,118820,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2482176,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,27,27,27,2207744,2404352,2412544,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3104768,2605056,2207744,2207744,2207744,2207744,2207744,2207744,2678784,2207744,2695168,2207744,2703360,2207744,2711552,2752512,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,0,2158592,2158592,3170304,3174400,2158592,0,139,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2158592,2158592,2158592,2863104,2891776,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2785280,2207744,2809856,2207744,2207744,2842624,2207744,2207744,2207744,2899968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2473984,2207744,2207744,2494464,2207744,2207744,2207744,2523136,2158592,2404352,2412544,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2605056,2158592,2158592,2158592,2158592,2158592,2158592,2678784,2158592,2695168,2158592,2703360,2158592,2711552,2752512,2158592,2158592,2785280,2158592,2158592,2785280,2158592,2809856,2158592,2158592,2842624,2158592,2158592,2158592,2899968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,18,0,0,0,0,0,0,0,2211840,0,0,641,0,2158592,0,0,0,0,0,0,0,0,2211840,0,0,32768,0,2158592,0,2158592,2158592,2158592,2383872,2158592,2158592,2158592,2158592,3006464,2383872,2207744,2207744,2207744,2207744,2158877,2158877,2158877,2158877,0,0,0,2158877,2572573,2158877,2158877,0,2207744,2207744,2596864,2207744,2207744,2207744,2207744,2207744,2207744,2641920,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,167936,0,0,2162688,0,0,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,0,0,2146304,2146304,2224128,2224128,2232320,2232320,2232320,641,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2531328,2158592,2158592,2158592,2158592,2158592,2617344,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,2158592,2502656,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2158592,2158592,2158592,2158592,2158592,2699264,2158592,2158592,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2207744,2863104,2891776,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3018752,2207744,3043328,2207744,2207744,2207744,2207744,3080192,2207744,2207744,3112960,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,172310,279,0,2162688,0,0,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2158592,2158592,2158592,2404352,2412544,2158592,2510848,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2584576,2158592,2609152,2158592,2158592,2629632,2158592,2158592,2158592,2686976,2158592,2715648,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2158592,2158592,3170304,3174400,2158592,2367488,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,0,2207744,2207744,2207744,2433024,2207744,2453504,2461696,2207744,2207744,2207744,2207744,2207744,2207744,2510848,2207744,2207744,2207744,2207744,2207744,2531328,2207744,2207744,2207744,2207744,2207744,2617344,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,1508,2715648,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2867200,2207744,2904064,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2580480,2207744,2207744,2207744,2207744,2621440,2207744,2207744,2207744,3149824,2207744,2207744,3170304,3174400,2207744,0,0,0,0,0,0,0,0,0,0,138,2158592,2158592,2158592,2404352,2412544,2707456,2732032,2207744,2207744,2207744,2822144,2826240,2207744,2895872,2207744,2207744,2924544,2207744,2207744,2973696,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,285,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3186688,2158592,2207744,2207744,2158592,2158592,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2158592,0,0,2535424,2543616,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2990080,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2572288,2981888,2207744,2207744,3002368,2207744,3047424,3063808,3076096,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3203072,2708960,2732032,2158592,2158592,2158592,2822144,2827748,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2981888,2158592,2158592,3002368,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2981888,2158592,2158592,3003876,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,20480,0,0,0,0,0,2162688,20480,0,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2908160,2527232,2207744,2207744,2576384,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2908160,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,286,2158592,2158592,0,0,2158592,2158592,2158592,2158592,2633728,2658304,0,0,2740224,2744320,0,2834432,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,0,0,29315,0,0,0,0,45,45,45,45,45,933,45,45,45,45,442,45,45,45,45,45,45,45,45,45,67,67,2494464,2158592,2158592,2158592,2524757,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,1504,2158592,2498560,2158592,2158592,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,2736128,2158592,2158592,0,2158592,2912256,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3108864,2158592,2158592,3133440,3145728,3153920,2375680,2379776,2207744,2207744,2420736,2207744,2449408,2207744,2207744,2207744,2498560,2207744,2207744,2207744,2207744,2568192,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,551,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,2020,2158592,2592768,2625536,2207744,2207744,2674688,2736128,2207744,2207744,2207744,2912256,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,542,0,544,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,641,0,0,0,0,0,0,2367488,2158592,2498560,2158592,2158592,1621,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,1608,97,97,97,97,97,97,97,97,97,97,1107,97,97,1110,97,97,3133440,3145728,3153920,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3014656,2158592,2158592,3051520,2158592,2158592,3100672,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2416640,2207744,2465792,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2633728,2658304,2740224,2744320,2834432,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,32768,0,0,0,0,0,0,2367488,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2158592,2158592,2478080,2158592,2158592,2158592,2535424,2543616,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3117056,2207744,2207744,2478080,2207744,2207744,2207744,2207744,2699264,2207744,2207744,2207744,2207744,2207744,2748416,2756608,2777088,2801664,2207744,2207744,2158877,2158877,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,0,0,2535709,2543901,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2990365,2158877,2158877,2158730,2158730,2158730,2158730,2158730,2572426,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158592,2158592,2478080,2207744,2207744,2990080,2207744,2207744,2158592,2158592,2482176,2158592,2158592,0,0,0,2158592,2158592,2158592,0,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,3010560,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158592,2428928,2158592,2514944,0,0,2158592,2588672,2158592,0,2838528,2158592,2158592,2158592,3010560,2158592,2506752,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,0,29315,922,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,1539,45,3006464,2383872,0,2020,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,2207744,0,0,2158592,2637824,2953216,2158592,2539520,2158592,2539520,2207744,0,0,2539520,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,0,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2965504,2965504,2965504,0,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2474269,2158877,2158877,0,0,2158877,2158877,2158877,2158877,2634013,2658589,0,0,2740509,2744605,0,2834717,40976,18,36884,45078,24,28,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,36884,0,0,0,24,24,24,27,27,27,27,90143,0,0,86016,0,0,2211840,102439,0,0,0,98347,0,2158592,2158592,2158592,2158592,2158592,3158016,0,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,0,94242,0,0,0,2211840,102439,0,0,106538,98347,135,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2158592,2158592,2158592,2596864,2158592,2158592,2158592,2158592,2158592,2158592,2641920,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2494464,2158592,2158592,2158592,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,0,27,27,0,2158592,2498560,2158592,2158592,0,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2494464,2158592,2158592,2158592,3006464,2383872,0,0,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,40976,18,36884,45078,24,27,147488,94242,147456,147488,106538,98347,0,0,147456,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,81920,0,94242,0,0,0,2211840,0,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2428928,2158592,2514944,2158592,2588672,2158592,2838528,2158592,2158592,40976,18,151573,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,1487,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,0,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,130,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,3096576,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,644,2207744,2207744,2207744,3186688,2207744,0,1080,0,1084,0,1088,0,0,0,0,0,0,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2531466,2158730,2158730,2158730,2158730,2158730,2617482,0,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2158592,2818048,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,159779,159744,102439,159779,98347,0,0,159744,40976,18,18,36884,0,45078,0,2224253,172032,2224253,2232448,2232448,172032,2232448,90143,0,0,2170880,0,0,550,829,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,124,124,127,127,127,40976,18,36884,45078,25,29,90143,94242,0,102439,106538,98347,0,0,163931,40976,18,18,36884,0,45078,249856,24,24,24,27,27,27,27,90143,0,0,2170880,0,0,827,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,4243810,4243810,24,24,27,27,27,2207744,0,0,0,0,0,0,2166784,0,0,0,0,57344,286,2158592,2158592,2158592,2158592,2707456,2732032,2158592,2158592,2158592,2822144,2826240,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,53248,0,0,0,0,0,97,97,97,97,97,1613,97,97,97,97,97,97,1495,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,2207744,0,0,0,0,0,0,2166784,546,0,0,0,0,286,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,17,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,120,121,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,2170880,0,53248,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,196608,18,266240,24,24,27,27,27,0,94242,0,0,0,38,102439,0,0,106538,98347,0,45,45,45,45,45,45,45,1535,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,424,45,45,45,45,45,45,45,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,199,45,45,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1766,67,67,67,1767,67,24850,24850,12564,12564,0,0,2166784,546,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,743,57889,0,2170880,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1856,45,1858,1859,67,67,67,1009,67,67,67,67,67,67,67,67,67,67,67,1021,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,0,2367773,2158877,2158877,2158877,2158877,2158877,2158877,2699549,2158877,2158877,2158877,2158877,2158877,2748701,2756893,2777373,2801949,97,1115,97,97,97,97,97,97,97,97,97,97,97,97,97,97,857,97,67,67,67,67,67,1258,67,67,67,67,67,67,67,67,67,67,67,1826,67,97,97,97,97,97,97,1338,97,97,97,97,97,97,97,97,97,97,97,97,97,870,97,97,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1579,67,67,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,97,904,905,97,97,97,97,1620,97,97,97,97,97,97,97,97,97,97,97,0,921,0,0,0,0,0,0,45,1679,67,67,67,1682,67,67,67,67,67,67,67,67,67,1690,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,189,45,45,45,1748,45,45,45,1749,1750,45,45,45,45,45,45,45,45,67,67,67,67,1959,67,67,67,67,1768,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,1791,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1802,67,1817,67,67,67,67,67,67,1823,67,67,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,1848,45,45,45,45,45,45,45,45,45,45,45,659,45,45,45,45,45,45,45,1863,67,67,67,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,1878,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,67,67,67,67,97,97,97,97,0,0,0,1973,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1165,97,1167,67,24850,24850,12564,12564,0,0,2166784,0,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,1789,97,0,94242,0,0,0,2211840,102439,0,0,106538,98347,136,2158592,2158592,2158592,2158592,2158592,3158016,229376,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,67,24850,24850,12564,12564,0,0,280,547,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,1788,97,97,0,97,2024,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,235,67,67,67,67,67,57889,547,547,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,1799,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1092,0,0,0,0,0,97,97,97,97,1612,97,97,97,97,1616,97,1297,1472,0,0,0,0,1303,1474,0,0,0,0,1309,1476,0,0,0,0,97,97,97,1481,97,97,97,97,97,97,1488,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,97,607,97,97,97,97,40976,18,36884,45078,26,30,90143,94242,0,102439,106538,98347,0,0,213080,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,143448,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,0,0,0,97,97,97,97,1482,97,1483,97,97,97,97,97,97,1326,97,97,1329,1330,97,97,97,97,97,97,1159,1160,97,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,0,94242,0,0,0,2211974,102439,0,0,106538,98347,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2474122,2158730,2158730,2494602,2158730,2158730,2158730,2809994,2158730,2158730,2842762,2158730,2158730,2158730,2900106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3014794,2158730,2158730,3051658,2158730,2158730,3100810,2158730,2158730,2158730,2158730,3096714,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,2207744,541,541,543,543,0,0,2166784,0,548,549,549,0,286,2158877,2158877,2158877,2863389,2892061,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3186973,2158877,0,0,0,0,0,0,0,0,2367626,2158877,2404637,2412829,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2564381,2158877,2158877,2605341,2158877,2158877,2158877,2158877,2158877,2158877,2679069,2158877,2695453,2158877,2703645,2158877,2711837,2752797,2158877,0,2158877,2158877,2158877,2384010,2158730,2158730,2158730,2158730,3006602,2383872,2207744,2207744,2207744,2207744,2207744,2207744,3096576,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,0,2158877,2785565,2158877,2810141,2158877,2158877,2842909,2158877,2158877,2158877,2900253,2158877,2158877,2158877,2158877,2158877,2531613,2158877,2158877,2158877,2158877,2158877,2617629,2158877,2158877,2158877,2158877,2158730,2818186,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3105053,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,0,0,0,0,0,97,97,97,1611,97,97,97,97,97,97,97,1496,97,97,1499,97,97,97,97,97,2441354,2445450,2158730,2158730,2158730,2158730,2158730,2158730,2502794,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2433162,2158730,2453642,2461834,2158730,2158730,2158730,2158730,2158730,2158730,2580618,2158730,2158730,2158730,2158730,2621578,2158730,2158730,2158730,2158730,2158730,2158730,2699402,2158730,2158730,2158730,2158730,2678922,2158730,2695306,2158730,2703498,2158730,2711690,2752650,2158730,2158730,2785418,2158730,2158730,2158730,3113098,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3186826,2158730,2207744,2207744,2207744,2207744,2781184,2793472,2207744,2818048,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,541,0,543,2158877,2502941,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2580765,2158877,2158877,2158877,2158877,2621725,2158877,3019037,2158877,3043613,2158877,2158877,2158877,2158877,3080477,2158877,2158877,3113245,2158877,2158877,2158877,2158877,0,2158877,2908445,2158877,2158877,2158877,2978077,2158877,2158877,2158877,2158877,3039517,2158877,2158730,2510986,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2584714,2158730,2609290,2158730,2158730,2629770,2158730,2158730,2158730,2388106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2605194,2158730,2158730,2158730,2158730,2687114,2158730,2715786,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2867338,2158730,2904202,2158730,2158730,2158730,2642058,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2781322,2793610,2158730,3121290,2158730,2158730,2158730,3149962,2158730,2158730,3170442,3174538,2158730,2367488,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2441216,2445312,2207744,2207744,2207744,2207744,2207744,2207744,2502656,2158877,2433309,2158877,2453789,2461981,2158877,2158877,2158877,2158877,2158877,2158877,2511133,2158877,2158877,2158877,2158877,2584861,2158877,2609437,2158877,2158877,2629917,2158877,2158877,2158877,2687261,2158877,2715933,2158877,2158730,2158730,2973834,2158730,2982026,2158730,2158730,3002506,2158730,3047562,3063946,3076234,2158730,2158730,2158730,2158730,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158877,2507037,0,0,2158877,2158730,2158730,2158730,3203210,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2564096,2207744,2207744,2207744,2707741,2732317,2158877,2158877,2158877,2822429,2826525,2158877,2896157,2158877,2158877,2924829,2158877,2158877,2973981,2158877,18,0,0,0,0,0,0,0,2211840,0,0,642,0,2158592,0,45,1529,45,45,45,45,45,45,45,45,45,45,45,45,45,1755,45,67,67,2982173,2158877,2158877,3002653,2158877,3047709,3064093,3076381,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3203357,2523274,2527370,2158730,2158730,2576522,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2908298,2494749,2158877,2158877,2158877,2523421,2527517,2158877,2158877,2576669,2158877,2158877,2158877,2158877,2158877,2158877,0,40976,0,18,18,4321280,2224253,2232448,4329472,2232448,2158730,2498698,2158730,2158730,2158730,2158730,2568330,2158730,2592906,2625674,2158730,2158730,2674826,2736266,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2158730,2912394,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3109002,2158730,2158730,3133578,3145866,3154058,2375680,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375965,2380061,2158877,2158877,2421021,2158877,2449693,2158877,2158877,2158877,3117341,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3104906,2158730,2158730,2158730,2158730,2158730,2158730,2158877,2498845,2158877,2158877,0,2158877,2158877,2568477,2158877,2593053,2625821,2158877,2158877,2674973,0,0,0,0,97,97,1480,97,97,97,97,97,1485,97,97,97,0,97,97,1729,97,1731,97,97,97,97,97,97,97,311,97,97,97,97,97,97,97,97,1520,97,97,1523,97,97,1526,97,2736413,2158877,2158877,0,2158877,2912541,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3109149,2158877,2158877,3014941,2158877,2158877,3051805,2158877,2158877,3100957,2158877,2158877,3121437,2158877,2158877,2158877,3150109,3133725,3146013,3154205,2158730,2408586,2416778,2158730,2465930,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3018890,2158730,3043466,2158730,2158730,2158730,2158730,3080330,2633866,2658442,2740362,2744458,2834570,2949258,2158730,2986122,2158730,2998410,2158730,2158730,2158730,3129482,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158877,2408733,2416925,2158877,2466077,2158877,2158877,3170589,3174685,2158877,0,0,0,2158730,2158730,2158730,2158730,2158730,2424970,2158730,2158730,2158730,2158730,2707594,2732170,2158730,2158730,2158730,2822282,2826378,2158730,2896010,2158730,2158730,2924682,2949405,2158877,2986269,2158877,2998557,2158877,2158877,2158877,3129629,2158730,2158730,2478218,2158730,2158730,2158730,2535562,2543754,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3117194,2207744,2207744,2478080,2207744,2207744,2207744,2207744,3014656,2207744,2207744,3051520,2207744,2207744,3100672,2207744,2207744,3121152,2207744,2207744,2207744,2207744,2207744,2584576,2207744,2609152,2207744,2207744,2629632,2207744,2207744,2207744,2686976,2207744,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158877,2158877,2478365,0,2158877,2158877,2158877,2158877,2158877,2158877,2158730,2158730,2482314,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,823,0,825,2158730,2158730,2158730,2990218,2158730,2158730,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,135,0,2207744,2207744,2990080,2207744,2207744,2158877,2158877,2482461,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,2158877,2158730,2429066,2158730,2515082,2158730,2588810,2158730,2838666,2158730,2158730,2158730,3010698,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158877,2429213,2158877,2515229,0,0,2158877,2588957,2158877,0,2838813,2158877,2158877,2158877,3010845,2158730,2506890,2158730,2158730,2158730,2748554,2756746,2777226,2801802,2158730,2158730,2158730,2863242,2891914,2158730,2158730,2158730,2158730,2158730,2158730,2564234,2158730,2158730,2158730,2158730,2158730,2597002,2158730,2158730,2158730,3006464,2384157,0,0,2158877,2158877,2158877,2158877,3006749,2158730,2637962,2953354,2158730,2207744,2637824,2953216,2207744,0,0,2158877,2638109,2953501,2158877,2539658,2158730,2539520,2207744,0,0,2539805,2158877,2158730,2158730,2158730,2977930,2158730,2158730,2158730,2158730,3039370,2158730,2158730,2158730,2158730,2158730,2158730,3158154,2207744,0,2158877,2158730,2207744,0,2158877,2158730,2207744,0,2158877,2965642,2965504,2965789,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,97,1484,97,97,97,97,2158592,18,0,122880,0,0,0,77824,0,2211840,0,0,0,0,2158592,0,356,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,45,1751,45,45,45,45,45,45,45,67,67,1427,67,67,67,67,67,1432,67,67,67,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,122880,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,1322,550,0,286,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,4329472,27,27,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,542,0,0,0,542,0,544,0,0,0,544,0,550,0,0,0,0,0,97,97,1610,97,97,97,97,97,97,97,97,898,97,97,97,97,97,97,97,0,94242,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,94242,237568,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,192512,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,94,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,96,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,12378,40976,18,18,36884,0,45078,0,24,24,24,126,126,126,126,90143,0,0,2170880,0,0,0,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,20480,40976,0,18,18,24,24,27,27,27,40976,18,36884,45078,24,27,90143,94242,241664,102439,106538,98347,0,0,20568,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,200797,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,0,0,44,0,0,20575,40976,18,36884,45078,24,27,90143,94242,0,41,41,41,0,0,1126400,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,89,40976,18,18,36884,0,45078,0,24,24,24,27,131201,27,27,90143,0,0,2170880,0,0,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,208896,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,0,0,0,0,0,0,2367488,32768,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2433024,2158592,2453504,2461696,2158592,2158592,2158592,2158592,2158592,2158592,2510848,2158592,2158592,2158592,2158592,40976,18,36884,245783,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,221184,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,180224,40976,18,18,36884,155648,45078,0,24,24,217088,27,27,27,217088,90143,0,0,2170880,0,0,828,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,233472,0,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,718,45,45,45,45,45,45,45,45,45,727,131427,0,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,45,1808,45,45,45,45,67,67,67,67,67,67,67,97,97,0,0,97,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,0,0,97,97,97,97,97,97,1787,0,97,97,0,97,97,97,45,45,45,45,2029,45,67,67,67,67,2033,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,97,45,1798,45,45,1800,45,45,0,1472,0,0,0,0,0,1474,0,0,0,0,0,1476,0,0,0,0,1315,0,0,0,0,97,97,97,97,1320,97,97,0,0,97,97,97,97,1786,97,0,0,97,97,0,1790,1527,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,663,67,24850,24850,12564,12564,0,57889,281,0,0,53531,53531,367,286,97,97,0,0,97,97,97,1785,97,97,0,0,97,97,0,97,97,1979,97,97,45,45,1983,45,1984,45,45,45,45,45,652,45,45,45,45,45,45,45,45,45,45,690,45,45,694,45,45,40976,19,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,262144,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,46,67,98,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,45,67,97,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,258048,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,1122423,40976,18,36884,45078,24,27,90143,94242,0,1114152,1114152,1114152,0,0,1114112,40976,18,36884,45078,24,27,90143,94242,37,102439,106538,98347,0,0,204800,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,57436,40976,18,36884,45078,24,27,33,33,0,33,33,33,0,0,0,40976,18,18,36884,0,45078,0,124,124,124,127,127,127,127,90143,0,0,2170880,0,0,550,0,2158877,2158877,2158877,2388253,2158877,2158877,2158877,2158877,2158877,2781469,2793757,2158877,2818333,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2867485,2158877,2904349,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3096861,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2441501,2445597,2158877,2158877,2158877,2158877,2158877,40976,122,123,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,936,2158592,4243810,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,935,45,45,45,715,45,45,45,45,45,45,45,723,45,45,45,45,45,1182,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,45,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,47,68,99,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,48,69,100,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,49,70,101,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,50,71,102,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,51,72,103,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,52,73,104,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,53,74,105,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,54,75,106,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,55,76,107,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,56,77,108,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,57,78,109,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,58,79,110,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,59,80,111,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,60,81,112,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,61,82,113,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,62,83,114,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,63,84,115,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,64,85,116,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,65,86,117,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,66,87,118,40976,18,36884,45078,24,27,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,0,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1314,0,0,0,0,0,0,97,97,97,97,97,1321,97,18,131427,0,0,0,0,0,0,362,0,0,365,0,367,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1360,97,97,131,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,145,149,45,45,45,45,45,174,45,179,45,185,45,188,45,45,202,67,255,67,67,269,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,292,296,97,97,97,97,97,321,97,326,97,332,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,646,335,97,97,349,97,97,0,40976,0,18,18,24,24,27,27,27,437,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,523,67,67,67,67,67,67,67,67,67,67,67,67,511,67,67,67,97,97,97,620,97,97,97,97,97,97,97,97,97,97,97,97,97,1501,1502,97,793,67,67,796,67,67,67,67,67,67,67,67,67,67,808,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,2052,67,67,67,67,813,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,830,97,97,97,97,97,97,97,97,97,315,97,97,97,97,97,97,841,97,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,589,97,97,97,97,97,97,97,97,97,867,97,97,97,97,97,97,97,891,97,97,894,97,97,97,97,97,97,97,97,97,97,906,45,937,45,45,940,45,45,45,45,45,45,948,45,45,45,45,45,734,735,67,737,67,738,67,740,67,67,67,45,967,45,45,45,45,45,45,45,45,45,45,45,45,45,45,435,45,45,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,67,67,67,67,67,25398,1081,13112,1085,54074,1089,0,0,0,0,0,0,363,0,28809,0,139,45,45,45,45,45,45,1674,45,45,45,45,45,45,45,45,67,1913,67,1914,67,67,67,1918,67,67,97,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,630,97,97,97,97,97,1169,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,45,1534,45,45,45,45,45,1538,45,45,45,45,1233,45,45,45,45,45,45,67,67,67,67,67,67,67,67,742,67,45,45,1191,45,45,45,45,45,45,45,45,45,45,45,45,45,454,67,67,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,1251,67,0,0,97,97,97,97,45,45,67,67,2050,0,97,97,45,45,45,732,45,45,67,67,67,67,67,67,67,67,67,67,67,67,97,97,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,772,67,67,67,1293,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,368,2158592,2158592,2158592,2404352,2412544,1323,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,1737,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,1373,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,647,45,45,1387,45,45,1391,45,45,45,45,45,45,45,45,45,45,410,45,45,45,45,45,1400,45,45,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,941,45,943,45,45,45,45,45,45,951,45,67,1438,67,67,67,67,67,67,67,67,67,67,1447,67,67,67,67,67,67,782,67,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,97,1491,97,97,97,97,97,97,97,97,97,97,1500,97,97,97,0,97,97,97,97,97,97,97,97,97,97,1736,97,45,45,1541,45,45,45,45,45,45,45,45,45,45,45,45,45,677,45,45,67,1581,67,67,67,67,67,67,67,67,67,67,67,67,67,67,791,792,67,67,67,67,1598,67,1600,67,67,67,67,67,67,67,67,1472,97,97,97,1727,97,97,97,97,97,97,97,97,97,97,97,97,97,1513,97,97,67,67,97,1879,97,1881,97,0,1884,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,1842,97,97,67,67,67,67,67,97,97,97,97,1928,0,0,0,97,97,97,97,97,97,45,45,45,45,45,1903,45,45,45,67,67,67,67,97,97,97,97,1971,0,0,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1381,45,45,45,45,1976,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1747,809,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,97,907,97,97,97,97,97,97,97,97,97,97,97,638,0,0,0,0,1478,97,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,67,67,67,67,1244,67,67,67,67,67,67,67,67,67,67,67,477,67,67,67,67,67,67,1294,67,67,67,67,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1324,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,0,1374,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,945,45,45,45,45,45,45,45,45,1908,45,45,1910,45,67,67,67,67,67,67,67,67,1919,67,0,0,97,97,97,97,45,2048,67,2049,0,0,97,2051,45,45,45,939,45,45,45,45,45,45,45,45,45,45,45,45,397,45,45,45,1921,67,67,1923,67,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1947,45,1935,0,0,0,97,1939,97,97,1941,97,45,45,45,45,45,45,382,389,45,45,45,45,45,45,45,45,1810,45,45,1812,67,67,67,67,67,256,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,336,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,45,371,373,45,45,45,955,45,45,45,45,45,45,45,45,45,45,45,45,413,45,45,45,457,459,67,67,67,67,67,67,67,67,473,67,478,67,67,482,67,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,97,1828,97,554,556,97,97,97,97,97,97,97,97,570,97,575,97,97,579,97,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,330,97,97,67,746,67,67,67,67,67,67,67,67,67,758,67,67,67,67,67,67,67,1575,67,67,67,67,67,67,67,67,493,67,67,67,67,67,67,67,97,97,844,97,97,97,97,97,97,97,97,97,856,97,97,97,0,97,97,97,97,97,97,97,97,1735,97,97,97,0,97,97,97,97,97,97,97,1642,97,1644,97,97,890,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,67,67,67,67,1065,1066,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,67,67,67,496,67,67,97,97,1505,97,97,97,97,97,97,97,97,97,97,97,97,97,593,97,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,1617,97,97,1635,0,1637,97,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,67,67,1704,67,67,67,67,97,97,97,97,97,97,97,97,97,565,572,97,97,97,97,97,97,97,97,1832,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,1946,45,45,67,67,67,67,67,97,1926,97,1927,97,0,0,0,97,97,1934,2043,0,0,97,97,97,2047,45,45,67,67,0,1832,97,97,45,45,45,981,45,45,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,131427,0,0,0,0,362,0,365,28809,367,139,45,45,372,45,45,45,45,1661,1662,45,45,45,45,45,1666,45,45,45,45,45,1673,45,1675,45,45,45,45,45,45,45,67,1426,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,67,67,45,418,45,45,420,45,45,423,45,45,45,45,45,45,45,45,959,45,45,962,45,45,45,45,458,67,67,67,67,67,67,67,67,67,67,67,67,67,67,483,67,67,67,67,504,67,67,506,67,67,509,67,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,555,97,97,97,97,97,97,97,97,97,97,97,97,97,97,580,97,97,97,97,601,97,97,603,97,97,606,97,97,97,97,97,97,848,97,97,97,97,97,97,97,97,97,1498,97,97,97,97,97,97,45,45,714,45,45,45,45,45,45,45,45,45,45,45,45,45,989,990,45,67,67,67,67,67,1011,67,67,67,67,1015,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,467,67,67,67,67,67,67,67,45,45,1179,45,45,45,45,45,45,45,45,45,45,45,45,45,1003,1004,67,1217,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,728,67,1461,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,97,1516,97,97,97,97,97,97,97,97,97,97,97,97,97,97,871,97,67,67,67,1705,67,67,67,97,97,97,97,97,97,97,97,97,567,97,97,97,97,97,97,97,97,97,97,1715,97,97,97,97,97,97,97,97,97,0,0,0,45,45,1380,45,45,45,45,45,67,67,97,97,97,97,97,0,0,0,97,1887,97,97,0,0,97,97,97,0,97,97,97,97,97,2006,45,45,1907,45,45,45,45,45,67,67,67,67,67,67,67,67,67,1920,67,97,0,2035,97,97,97,97,97,45,45,45,45,67,67,67,1428,67,67,67,67,67,67,1435,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,146,45,152,45,45,165,45,175,45,180,45,45,187,190,195,45,203,254,257,262,67,270,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,293,97,299,97,97,312,97,322,97,327,97,97,334,337,342,97,350,97,97,0,40976,0,18,18,24,24,27,27,27,67,484,67,67,67,67,67,67,67,67,67,67,67,67,67,499,97,581,97,97,97,97,97,97,97,97,97,97,97,97,97,596,648,45,650,45,651,45,653,45,45,45,657,45,45,45,45,45,45,1954,67,67,67,1958,67,67,67,67,67,67,67,768,67,67,67,67,67,67,67,67,769,67,67,67,67,67,67,67,680,45,45,45,45,45,45,45,45,688,689,691,45,45,45,45,45,983,45,45,45,45,45,45,45,45,45,45,947,45,45,45,45,952,45,45,698,699,45,45,702,703,45,45,45,45,45,45,45,711,744,67,67,67,67,67,67,67,67,67,757,67,67,67,67,761,67,67,67,67,765,67,767,67,67,67,67,67,67,67,67,775,776,778,67,67,67,67,67,67,785,786,67,67,789,790,67,67,67,67,67,67,1442,67,67,67,67,67,67,67,67,67,97,97,97,1775,97,97,97,67,67,67,67,67,798,67,67,67,802,67,67,67,67,67,67,67,67,1465,67,67,1468,67,67,1471,67,67,810,67,67,67,67,67,67,67,67,67,821,25398,542,13112,544,57889,0,0,54074,54074,550,0,833,97,835,97,836,97,838,97,97,0,0,97,97,97,2002,97,97,97,97,97,45,45,45,45,45,1740,45,45,45,1744,45,45,45,97,842,97,97,97,97,97,97,97,97,97,855,97,97,97,97,0,1717,1718,97,97,97,97,97,1722,97,0,0,859,97,97,97,97,863,97,865,97,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,873,874,876,97,97,97,97,97,97,883,884,97,97,887,888,97,18,131427,0,0,0,0,0,0,362,225280,0,365,0,367,0,45,45,45,1531,45,45,45,45,45,45,45,45,45,45,45,1199,45,45,45,45,45,97,97,908,97,97,97,97,97,97,97,97,97,919,638,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2425117,2158877,2158877,2158877,2158877,2158877,2158877,2597149,2158877,2158877,2158877,2158877,2158877,2158877,2642205,2158877,2158877,2158877,2158877,2158877,3158301,0,2375818,2379914,2158730,2158730,2420874,2158730,2449546,2158730,2158730,953,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,965,978,45,45,45,45,45,45,985,45,45,45,45,45,45,45,45,971,45,45,45,45,45,45,45,67,67,67,67,67,1027,67,1029,67,67,67,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,1077,1078,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,366,0,139,2158730,2158730,2158730,2404490,2412682,1113,97,97,97,97,97,97,1121,97,1123,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1540,1155,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,1168,97,97,1171,1172,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,1533,45,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,183,45,45,45,45,201,45,45,45,1219,45,45,45,45,45,45,45,1226,45,45,45,45,45,168,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1046,67,67,1254,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,806,807,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,1351,97,97,97,1354,97,97,97,1359,97,97,97,0,97,97,97,97,1640,97,97,97,97,97,97,97,897,97,97,97,902,97,97,97,97,97,97,97,97,1366,97,97,97,97,97,97,97,1371,97,97,97,0,97,97,97,1730,97,97,97,97,97,97,97,97,915,97,97,97,97,0,360,0,67,67,67,1440,67,67,67,67,67,67,67,67,67,67,67,67,1017,67,1019,67,67,67,67,67,1453,67,67,67,67,67,67,67,67,67,67,1459,97,97,97,1493,97,97,97,97,97,97,97,97,97,97,97,97,97,1525,97,97,97,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,1514,67,67,67,67,1584,67,67,67,67,67,1590,67,67,67,67,67,67,67,783,67,67,67,788,67,67,67,67,67,67,67,67,67,1599,1601,67,67,67,1604,67,1606,1607,67,1472,0,1474,0,1476,0,97,97,97,97,97,97,1614,97,97,97,97,45,45,1850,45,45,45,45,1855,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,1229,97,1618,97,97,97,97,97,97,97,1625,97,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,447,45,45,45,45,45,67,67,1633,97,97,0,97,97,97,97,97,97,97,97,1643,1645,97,97,0,0,97,97,1784,97,97,97,0,0,97,97,0,97,1894,1895,97,1897,97,45,45,45,45,45,45,45,45,45,656,45,45,45,45,45,45,97,1648,97,1650,1651,97,0,45,45,45,1654,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,658,45,45,45,45,664,45,45,1659,45,45,45,45,45,45,45,45,45,45,45,45,45,1187,45,45,1669,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1005,67,67,1681,67,67,67,67,67,67,67,1686,67,67,67,67,67,67,67,784,67,67,67,67,67,67,67,67,1055,67,67,67,67,1060,67,67,97,97,1713,97,0,97,97,97,97,97,97,97,97,97,0,0,0,1378,45,45,45,45,45,45,45,408,45,45,45,45,45,45,45,45,1547,45,1549,45,45,45,45,45,97,97,1780,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,2027,2028,45,45,67,67,2031,2032,67,45,45,1804,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1917,67,67,67,67,67,67,67,1819,67,67,67,67,67,67,67,67,97,97,97,1708,97,97,97,97,97,45,45,1862,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,67,1877,97,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,1839,0,0,97,97,97,97,1936,0,0,97,97,97,97,97,97,1943,1944,1945,45,45,45,45,670,45,45,45,45,674,45,45,45,45,678,45,1948,45,1950,45,45,45,45,1955,1956,1957,67,67,67,1960,67,1962,67,67,67,67,1967,1968,1969,97,0,0,0,97,97,1974,97,0,1936,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1906,0,1977,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,1746,45,45,45,45,2011,67,67,2013,67,67,67,2017,97,97,0,0,2021,97,8192,97,97,2025,45,45,45,45,45,45,67,67,67,67,67,1916,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,140,45,45,45,1180,45,45,45,45,1184,45,45,45,45,45,45,45,387,45,392,45,45,396,45,45,399,45,45,67,207,67,67,67,67,67,67,236,67,67,67,67,67,67,67,800,67,67,67,67,67,67,67,67,67,1603,67,67,67,67,67,0,97,97,287,97,97,97,97,97,97,316,97,97,97,97,97,97,0,45,45,45,45,45,45,45,1656,1657,45,376,45,45,45,45,45,388,45,45,45,45,45,45,45,45,1406,45,45,45,45,45,45,45,67,67,67,67,462,67,67,67,67,67,474,67,67,67,67,67,67,67,817,67,67,67,67,25398,542,13112,544,97,97,97,97,559,97,97,97,97,97,571,97,97,97,97,97,97,896,97,97,97,900,97,97,97,97,97,97,912,914,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,45,391,45,45,45,45,45,45,45,45,713,45,45,45,45,45,45,45,45,45,45,45,45,45,45,662,45,1140,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,636,67,67,1283,67,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,1363,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,889,97,97,97,1714,0,97,97,97,97,97,97,97,97,97,0,0,926,45,45,45,45,45,45,45,45,672,45,45,45,45,45,45,45,45,686,45,45,45,45,45,45,45,45,944,45,45,45,45,45,45,45,45,1676,45,45,45,45,45,45,67,97,97,97,1833,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1902,45,45,45,45,45,957,45,45,45,45,961,45,963,45,45,45,67,97,2034,0,97,97,97,97,97,2040,45,45,45,2042,67,67,67,67,67,67,1574,67,67,67,67,67,1578,67,67,67,67,67,67,799,67,67,67,804,67,67,67,67,67,67,67,1298,0,0,0,1304,0,0,0,1310,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,1414,45,45,45,45,45,45,45,45,45,45,428,45,45,45,45,45,57889,0,0,54074,54074,550,831,97,97,97,97,97,97,97,97,97,568,97,97,97,97,578,97,45,45,968,45,45,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,67,67,67,67,67,25398,1082,13112,1086,54074,1090,0,0,0,0,0,0,364,0,0,0,139,2158592,2158592,2158592,2404352,2412544,67,67,67,67,1464,67,67,67,67,67,67,67,67,67,67,67,510,67,67,67,67,97,97,97,97,1519,97,97,97,97,97,97,97,97,97,97,97,918,97,0,0,0,0,1528,45,45,45,45,45,45,45,45,45,45,45,45,45,45,976,45,1554,45,45,45,45,45,45,45,45,1562,45,45,1565,45,45,45,45,683,45,45,45,687,45,45,692,45,45,45,45,45,1953,45,67,67,67,67,67,67,67,67,67,1014,67,67,67,67,67,67,1568,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,1594,97,97,1649,97,97,97,0,45,45,1653,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,45,45,1670,45,1672,45,45,45,45,45,45,45,45,45,45,67,736,67,67,67,67,67,741,67,67,67,1680,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,67,1692,67,67,67,67,67,67,67,1697,67,1699,67,67,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,468,475,67,67,67,67,67,67,1769,67,67,67,67,67,67,67,97,97,97,97,97,97,97,624,97,97,97,97,97,97,634,97,97,1792,97,97,97,97,97,97,97,45,45,45,45,45,45,45,958,45,45,45,45,45,45,964,45,150,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,977,204,45,67,67,67,217,67,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,67,67,67,67,271,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,351,97,0,40976,0,18,18,24,24,27,27,27,45,45,938,45,45,45,45,45,45,45,45,45,45,45,45,45,1398,45,45,45,153,45,161,45,45,45,45,45,45,45,45,45,45,45,45,660,661,45,45,205,45,67,67,67,67,220,67,228,67,67,67,67,67,67,67,0,0,0,0,0,280,94,0,0,67,67,67,67,67,272,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,352,97,0,40976,0,18,18,24,24,27,27,27,45,439,45,45,45,45,45,445,45,45,45,452,45,45,67,67,212,216,67,67,67,67,67,241,67,246,67,252,67,67,486,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,1245,67,67,67,67,67,67,67,67,1013,67,67,1016,67,67,67,67,67,521,67,67,525,67,67,67,67,67,531,67,67,67,538,67,0,0,2046,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,1418,45,45,1421,97,97,583,97,97,97,97,97,97,97,591,97,97,97,97,97,97,913,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,1384,97,618,97,97,622,97,97,97,97,97,628,97,97,97,635,97,18,131427,0,0,0,639,0,132,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,932,45,45,45,45,45,1544,45,45,45,45,45,1550,45,45,45,45,45,1194,45,1196,45,45,45,45,45,45,45,45,999,45,45,45,45,45,67,67,45,45,667,45,45,45,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,696,45,45,45,701,45,45,45,45,45,45,45,45,710,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,194,45,45,45,729,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,805,67,67,67,67,67,67,67,1587,67,1589,67,67,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,0,0,0,0,0,0,2162968,0,0,67,67,67,67,67,814,816,67,67,67,67,67,25398,542,13112,544,67,67,1008,67,67,67,67,67,67,67,67,67,67,67,1020,67,0,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,45,67,67,67,67,1429,67,1430,67,67,67,67,67,1062,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,1076,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,97,97,97,97,1102,97,97,97,97,97,97,97,97,97,97,97,1124,97,1126,97,97,1114,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1112,97,97,1156,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,97,97,1170,97,97,97,97,0,921,0,0,0,0,0,0,45,45,45,45,1532,45,45,45,45,1536,45,45,45,45,45,172,45,45,45,45,45,45,45,45,45,45,706,45,45,709,45,45,1177,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,1204,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,45,45,1232,45,45,45,45,45,45,45,67,1237,67,67,67,67,67,67,1053,1054,67,67,67,67,67,67,1061,67,67,1282,67,67,67,67,67,67,67,67,67,1289,67,67,67,1292,97,97,97,97,1339,97,97,97,97,97,97,1344,97,97,97,97,45,1849,45,1851,45,45,45,45,45,45,45,45,721,45,45,45,45,45,726,45,1385,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1188,45,45,1401,1402,45,45,45,45,1405,45,45,45,45,45,45,45,45,1752,45,45,45,45,45,67,67,1410,45,45,45,1413,45,1415,45,45,45,45,45,45,1419,45,45,45,45,1806,45,45,45,45,45,45,67,67,67,67,67,67,67,97,97,2019,0,97,67,67,67,1452,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,1259,67,67,67,67,67,67,1264,67,67,1460,67,1462,67,67,67,67,67,67,1466,67,67,67,67,67,67,67,67,1588,67,67,67,67,67,67,67,0,1300,0,0,0,1306,0,0,0,97,97,97,1506,97,97,97,97,97,97,97,97,1512,97,97,97,0,1728,97,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,1515,97,1517,97,97,97,97,97,97,1521,97,97,97,97,97,97,0,45,1652,45,45,45,1655,45,45,45,45,45,1542,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,1553,45,45,45,1556,45,45,45,45,45,45,45,45,45,45,45,45,45,693,45,45,45,67,67,67,67,1572,67,67,67,67,1576,67,67,67,67,67,67,67,67,1602,67,67,1605,67,67,67,0,67,1582,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1580,67,67,1596,67,67,67,67,67,67,67,67,67,67,67,67,67,0,542,0,544,67,67,67,67,1759,67,67,67,67,67,67,67,67,67,67,67,533,67,67,67,67,67,67,67,1770,67,67,67,67,67,97,97,97,97,97,97,1777,97,97,97,1793,97,97,97,97,97,45,45,45,45,45,45,45,998,45,45,1001,1002,45,45,67,67,45,1861,45,67,67,67,67,67,67,67,67,1871,67,1873,1874,67,0,97,45,67,0,97,45,67,16384,97,45,67,97,0,0,0,1473,0,1082,0,0,0,1475,0,1086,0,0,0,1477,1876,67,97,97,97,97,97,1883,0,1885,97,97,97,1889,0,0,0,286,0,0,0,286,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,126,126,126,2053,0,2055,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,2039,97,45,45,45,45,67,67,67,67,67,226,67,67,67,67,67,67,67,67,1246,67,67,1249,1250,67,67,67,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,141,45,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,1186,45,45,1189,45,45,155,45,45,45,45,45,45,45,45,45,191,45,45,45,45,700,45,45,45,45,45,45,45,45,45,45,45,1753,45,45,45,67,67,45,45,67,208,67,67,67,222,67,67,67,67,67,67,67,67,67,1764,67,67,67,67,67,67,67,258,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,288,97,97,97,302,97,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,338,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,370,45,45,45,45,716,45,45,45,45,45,722,45,45,45,45,45,45,1912,67,67,67,67,67,67,67,67,67,819,67,67,25398,542,13112,544,45,403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1409,45,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,67,771,67,67,67,67,520,67,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,1271,67,67,67,1274,67,67,67,1279,67,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,553,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,97,1138,97,97,97,97,617,97,97,97,97,97,97,97,97,97,97,97,631,97,97,97,0,1834,97,97,97,97,97,0,0,0,97,97,97,97,97,353,0,40976,0,18,18,24,24,27,27,27,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,682,45,45,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,67,67,747,748,67,67,67,67,755,67,67,67,67,67,67,67,0,0,0,1302,0,0,0,1308,0,67,794,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1701,67,97,97,97,845,846,97,97,97,97,853,97,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,97,892,97,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,45,992,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,1239,67,67,67,1063,67,67,67,67,67,1068,67,67,67,67,67,67,67,0,0,1301,0,0,0,1307,0,0,97,1141,97,97,97,97,97,97,97,97,97,97,97,1152,97,97,0,0,97,97,2001,0,97,2003,97,97,97,45,45,45,1739,45,45,45,1742,45,45,45,45,45,97,97,97,97,1157,97,97,97,97,97,1162,97,97,97,97,97,97,1145,97,97,97,97,97,1151,97,97,97,1253,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,539,45,1423,45,45,67,67,67,67,67,67,67,1431,67,67,67,67,67,67,67,1695,67,67,67,67,67,1700,67,1702,67,67,1439,67,67,67,67,67,67,67,67,67,67,67,67,67,514,67,67,97,97,1492,97,97,97,97,97,97,97,97,97,97,97,97,97,611,97,97,1703,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,852,97,97,97,97,97,97,45,1949,45,1951,45,45,45,67,67,67,67,67,67,67,1961,67,0,97,45,67,0,97,2060,2061,0,2062,45,67,97,0,0,2036,97,97,97,97,45,45,45,45,67,67,67,67,67,223,67,67,237,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,507,67,67,67,67,67,67,67,1963,67,67,67,97,97,97,97,0,1972,0,97,97,97,1975,0,921,29315,0,0,0,0,45,45,45,931,45,45,45,45,45,407,45,45,45,45,45,45,45,45,45,417,45,45,1989,67,67,67,67,67,67,67,67,67,67,67,1996,97,18,131427,0,0,360,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,930,45,45,45,45,45,45,444,45,45,45,45,45,45,45,67,67,97,97,1998,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,1985,45,1986,45,45,45,156,45,45,170,45,45,45,45,45,45,45,45,45,45,675,45,45,45,45,679,131427,0,358,0,0,362,0,365,28809,367,139,45,45,45,45,45,381,45,45,45,45,45,45,45,45,45,400,45,45,419,45,45,45,45,45,45,45,45,45,45,45,45,436,67,67,67,67,67,505,67,67,67,67,67,67,67,67,67,67,820,67,25398,542,13112,544,67,67,522,67,67,67,67,67,529,67,67,67,67,67,67,67,0,1299,0,0,0,1305,0,0,0,97,97,619,97,97,97,97,97,626,97,97,97,97,97,97,97,1105,97,97,97,97,1109,97,97,97,67,67,67,67,749,67,67,67,67,67,67,67,67,67,760,67,0,97,45,67,2058,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,2041,67,67,67,67,67,780,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,97,97,97,878,97,97,97,97,97,97,97,97,97,97,97,97,97,1629,97,0,45,979,45,45,45,45,984,45,45,45,45,45,45,45,45,45,1198,45,45,45,45,45,45,67,1023,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,470,67,67,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1094,0,0,0,1092,1315,0,0,0,0,97,97,97,97,97,97,97,97,97,1486,97,1489,97,97,97,1117,97,97,97,97,1122,97,97,97,97,97,97,97,1146,97,97,97,97,97,97,97,97,881,97,97,97,886,97,97,97,1311,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1615,97,97,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,97,1847,97,45,45,45,45,1852,45,45,45,45,45,45,45,1235,45,45,45,67,67,67,67,67,1868,67,67,67,1872,67,67,67,67,67,97,97,97,97,1882,0,0,0,97,97,97,97,0,1891,67,67,67,67,67,97,97,97,97,97,1929,0,0,97,97,97,97,97,97,45,1900,45,1901,45,45,45,1905,45,67,2054,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,2037,2038,97,97,45,45,45,45,67,67,67,67,1867,67,67,67,67,67,67,67,67,67,1774,97,97,97,97,97,97,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,142,45,45,45,1412,45,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,157,45,45,171,45,45,45,182,45,45,45,45,200,45,45,45,1543,45,45,45,45,45,45,45,45,1551,45,45,45,45,1181,45,45,45,45,45,45,45,45,45,45,45,1211,45,45,45,1214,45,45,45,67,209,67,67,67,224,67,67,238,67,67,67,249,67,0,97,2056,2057,0,2059,45,67,0,97,45,67,97,0,0,1937,97,97,97,97,97,97,45,45,45,45,45,45,1741,45,45,45,45,45,45,67,67,67,267,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,289,97,97,97,304,97,97,318,97,97,97,329,97,97,0,0,97,1783,97,97,97,97,0,0,97,97,0,97,97,97,45,2026,45,45,45,45,67,2030,67,67,67,67,67,67,1041,67,67,67,67,67,67,67,67,67,1044,67,67,67,67,67,67,97,97,347,97,97,97,0,40976,0,18,18,24,24,27,27,27,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1420,45,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,840,67,1007,67,67,67,67,67,67,67,67,67,67,67,67,67,67,759,67,67,67,67,67,67,67,1052,67,67,67,67,67,67,67,67,67,67,1031,67,67,67,67,67,97,97,97,1101,97,97,97,97,97,97,97,97,97,97,97,97,592,97,97,97,1190,45,45,45,45,45,1195,45,1197,45,45,45,45,1201,45,45,45,45,1952,45,45,67,67,67,67,67,67,67,67,67,67,67,67,250,67,67,67,1255,67,1257,67,67,67,67,1261,67,67,67,67,67,67,67,67,1685,67,67,67,67,67,67,67,0,24851,12565,0,0,0,0,28809,53532,67,67,1267,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,0,0,0,0,0,0,2162688,0,0,1281,67,67,67,67,1285,67,67,67,67,67,67,67,67,67,67,1070,67,67,67,67,67,1335,97,1337,97,97,97,97,1341,97,97,97,97,97,97,97,97,882,97,97,97,97,97,97,97,1347,97,97,97,97,97,97,1353,97,97,97,97,97,97,1361,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,0,544,0,550,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2158592,2990080,2158592,2158592,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,53530,97,97,97,1365,97,97,97,97,97,97,97,97,97,97,97,97,608,97,97,97,45,45,1424,45,1425,67,67,67,67,67,67,67,67,67,67,67,1058,67,67,67,67,45,1555,45,45,1557,45,45,45,45,45,45,45,45,45,45,45,707,45,45,45,45,67,67,1570,67,67,67,67,67,67,67,67,67,67,67,67,67,773,67,67,1595,67,67,1597,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,139,2158592,2158592,2158592,2404352,2412544,97,97,97,1636,97,97,97,1639,97,97,1641,97,97,97,97,97,97,1173,0,921,0,0,0,0,0,0,45,67,67,67,1693,67,67,67,67,67,67,67,1698,67,67,67,67,67,67,67,1773,67,97,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,880,97,97,97,97,97,97,97,97,1106,97,97,97,97,97,97,97,1860,45,45,67,67,1865,67,67,67,67,1870,67,67,67,67,1875,67,67,97,97,1880,97,97,0,0,0,97,97,1888,97,0,0,0,1938,97,97,97,97,97,45,45,45,45,45,45,1854,45,45,45,45,45,45,45,1909,45,45,1911,67,67,67,67,67,67,67,67,67,67,1248,67,67,67,67,67,67,1922,67,67,1924,97,97,97,97,97,0,0,0,97,97,97,97,97,1898,45,45,45,45,45,45,1904,45,45,67,67,67,67,97,97,97,97,0,0,16384,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,1724,2008,2009,45,45,67,67,67,2014,2015,67,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,45,2022,0,2023,97,97,45,45,45,45,45,45,67,67,67,67,67,67,1869,67,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,147,151,154,45,162,45,45,176,178,181,45,45,45,192,196,45,45,45,45,2012,67,67,67,67,67,67,2018,97,0,0,97,1978,97,97,97,1982,45,45,45,45,45,45,45,45,45,972,973,45,45,45,45,45,67,259,263,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,294,298,301,97,309,97,97,323,325,328,97,97,97,97,97,560,97,97,97,569,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,339,343,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,67,67,503,67,67,67,67,67,67,67,67,67,512,67,67,519,97,97,600,97,97,97,97,97,97,97,97,97,609,97,97,616,45,649,45,45,45,45,45,654,45,45,45,45,45,45,45,45,1393,45,45,45,45,45,45,45,45,1209,45,45,45,45,45,45,45,67,763,67,67,67,67,67,67,67,67,770,67,67,67,774,67,0,2045,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,994,45,45,45,45,45,45,45,45,45,45,67,67,213,67,219,67,67,232,67,242,67,247,67,67,67,779,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,67,811,67,67,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,834,97,97,97,97,97,839,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,645,97,97,861,97,97,97,97,97,97,97,97,868,97,97,97,872,97,97,877,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,97,97,97,97,909,97,97,97,97,97,97,97,97,97,0,0,0,18,18,24,24,27,27,27,1036,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,1033,67,67,67,97,97,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,0,67,67,67,1295,67,67,67,0,0,0,0,0,0,0,0,0,97,1317,97,97,97,97,97,97,1375,97,97,97,0,0,0,45,1379,45,45,45,45,45,45,422,45,45,45,429,431,45,45,45,45,0,1090,0,0,97,1479,97,97,97,97,97,97,97,97,97,97,1357,97,97,97,97,97,97,97,97,97,1716,97,97,97,97,97,97,97,97,97,1723,0,921,29315,0,0,0,0,45,929,45,45,45,45,45,45,45,1392,45,45,45,45,45,45,45,45,45,960,45,45,45,45,45,45,97,97,97,1738,45,45,45,45,45,45,45,1743,45,45,45,45,166,45,45,45,45,184,186,45,45,197,45,45,97,1779,0,0,97,97,97,97,97,97,0,0,97,97,0,97,18,131427,0,638,0,0,0,0,362,0,640,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,1537,45,45,45,45,45,1803,45,45,45,45,45,1809,45,45,45,67,67,67,1814,67,67,67,67,67,67,1821,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,0,0,67,67,67,1818,67,67,67,67,67,1824,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,1890,0,1829,97,97,0,0,97,97,1836,97,97,0,0,0,97,97,97,97,1981,45,45,45,45,45,45,45,45,45,1987,1845,97,97,97,45,45,45,45,45,1853,45,45,45,1857,45,45,45,67,1864,67,1866,67,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,1710,1711,67,67,97,97,97,97,97,0,0,0,1886,97,97,97,0,0,97,97,97,97,1838,0,0,0,97,1843,97,0,1893,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1745,45,45,67,67,67,67,67,97,97,97,97,97,0,0,1931,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,67,2044,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1660,45,45,45,45,45,45,45,45,45,45,45,45,453,45,455,67,67,67,67,268,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,348,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,359,0,0,362,0,365,28809,367,139,45,45,45,45,45,421,45,45,45,45,45,45,45,434,45,45,695,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1667,45,0,921,29315,0,925,0,0,45,45,45,45,45,45,45,45,45,1811,45,67,67,67,67,67,67,1037,67,1039,67,67,67,67,67,67,67,67,67,67,67,67,1277,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1095,0,0,0,1096,97,97,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,97,1131,97,1133,97,97,97,97,97,97,97,97,97,97,1370,97,97,97,97,97,1312,0,0,0,0,1096,0,0,0,97,97,97,97,97,97,97,1327,97,97,97,97,97,1332,97,97,97,1830,97,0,0,97,97,97,97,97,0,0,0,97,97,97,1896,97,97,45,45,45,45,45,45,45,45,45,1548,45,45,45,45,45,45,133,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,380,45,45,45,45,45,45,45,45,45,45,401,45,45,158,45,45,45,45,45,45,45,45,45,45,45,45,45,1200,45,45,45,45,206,67,67,67,67,67,225,67,67,67,67,67,67,67,67,754,67,67,67,67,67,67,67,57889,0,0,54074,54074,550,832,97,97,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,67,67,67,67,67,25398,1083,13112,1087,54074,1091,0,0,0,0,0,0,1316,0,831,97,97,97,97,97,97,97,1174,921,0,1175,0,0,0,0,45,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,148,67,67,264,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,295,97,97,97,97,313,97,97,97,97,331,333,97,18,131427,356,638,0,0,0,0,362,0,0,365,0,367,0,45,45,1530,45,45,45,45,45,45,45,45,45,45,45,45,988,45,45,45,97,344,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,402,404,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1756,67,438,45,45,45,45,45,45,45,45,449,450,45,45,45,67,67,214,218,221,67,229,67,67,243,245,248,67,67,67,67,67,488,490,67,67,67,67,67,67,67,67,67,67,67,1071,67,1073,67,67,67,67,67,524,67,67,67,67,67,67,67,67,535,536,67,67,67,67,67,67,1683,1684,67,67,67,67,1688,1689,67,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,97,97,97,585,587,97,97,97,97,97,97,97,97,97,97,97,1163,97,97,97,97,97,97,97,621,97,97,97,97,97,97,97,97,632,633,97,97,0,0,1782,97,97,97,97,97,0,0,97,97,0,97,712,45,45,45,717,45,45,45,45,45,45,45,45,725,45,45,45,163,167,173,177,45,45,45,45,45,193,45,45,45,45,982,45,45,45,45,45,45,987,45,45,45,45,45,1558,45,1560,45,45,45,45,45,45,45,45,704,705,45,45,45,45,45,45,45,45,731,45,45,45,67,67,67,67,67,739,67,67,67,67,67,67,273,0,24850,12564,0,0,0,0,28809,53531,67,67,67,764,67,67,67,67,67,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,812,67,67,67,67,818,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,97,97,97,97,837,97,97,97,97,97,602,97,97,97,97,97,97,97,97,97,97,1137,97,97,97,97,97,97,97,97,97,862,97,97,97,97,97,97,97,97,97,97,97,1627,97,97,97,0,97,97,97,97,910,97,97,97,97,916,97,97,97,0,0,0,97,97,1940,97,97,1942,45,45,45,45,45,45,385,45,45,45,45,395,45,45,45,45,966,45,969,45,45,45,45,45,45,45,45,45,45,975,45,45,45,406,45,45,45,45,45,45,45,45,45,45,45,45,974,45,45,45,67,67,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,67,67,1040,67,1042,67,1045,67,67,67,67,67,67,67,97,1706,97,97,97,1709,97,97,97,67,67,67,67,1051,67,67,67,67,67,1057,67,67,67,67,67,67,67,1443,67,67,1446,67,67,67,67,67,67,67,1297,0,0,0,1303,0,0,0,1309,67,67,67,67,1079,25398,0,13112,0,54074,0,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,1098,97,97,97,97,97,1104,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,1128,97,97,97,97,97,97,1134,97,1136,97,1139,97,97,97,97,97,97,1622,97,97,97,97,97,97,97,97,0,921,0,0,0,1176,0,646,45,67,67,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,67,97,1348,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1127,97,67,1569,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1448,1449,67,1816,67,67,67,67,67,67,67,67,67,1825,67,67,1827,97,97,0,1781,97,97,97,97,97,97,0,0,97,97,0,97,97,97,1831,0,0,97,97,97,97,97,0,0,0,97,97,97,1980,97,45,45,45,45,45,45,45,45,45,45,1395,45,45,45,45,45,97,1846,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,45,45,2010,45,67,67,67,67,67,2016,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,2007,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,143,45,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,67,1813,67,67,1815,45,45,67,210,67,67,67,67,67,67,239,67,67,67,67,67,67,67,1454,67,67,67,67,67,67,67,67,67,1445,67,67,67,67,67,67,97,97,290,97,97,97,97,97,97,319,97,97,97,97,97,97,303,97,97,317,97,97,97,97,97,97,305,97,97,97,97,97,97,97,97,97,899,97,97,97,97,97,97,375,45,45,45,379,45,45,390,45,45,394,45,45,45,45,45,443,45,45,45,45,45,45,45,45,67,67,67,67,67,461,67,67,67,465,67,67,476,67,67,480,67,67,67,67,67,67,1694,67,67,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,500,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,97,97,97,558,97,97,97,562,97,97,573,97,97,577,97,97,97,97,97,895,97,97,97,97,97,97,903,97,97,97,0,97,97,1638,97,97,97,97,97,97,97,97,1646,597,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1334,45,681,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1396,45,45,1399,45,45,730,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1434,67,67,67,67,67,67,750,67,67,67,67,67,67,67,67,67,67,1456,67,67,67,67,67,45,45,993,45,45,45,45,45,45,45,45,45,45,45,67,67,1238,67,67,1006,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1280,1048,1049,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,67,1286,67,67,67,67,67,67,67,1291,67,97,97,1100,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,920,97,97,1142,1143,97,97,97,97,97,97,97,97,97,97,1153,97,97,97,97,97,1158,97,97,97,1161,97,97,97,97,1166,97,97,97,97,97,1325,97,97,97,97,97,97,97,97,97,97,1328,97,97,97,97,97,97,97,45,1218,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,67,67,67,67,67,1269,67,67,67,67,67,67,67,67,1278,67,67,67,67,67,67,1761,67,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,97,97,1349,97,97,97,97,97,97,97,97,1358,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,0,921,0,0,926,0,0,0,45,45,1411,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1754,45,45,67,67,1301,0,1307,0,1313,97,97,97,97,97,97,97,97,97,97,97,21054,97,97,97,97,67,1757,67,67,67,1760,67,67,67,67,67,67,67,67,67,67,1467,67,67,67,67,67,1778,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,67,67,67,67,67,1820,67,1822,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1933,97,1892,97,97,97,97,97,97,1899,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,673,45,45,45,45,45,45,45,67,67,67,67,67,1925,97,97,97,97,0,0,0,97,97,97,97,97,623,97,97,97,97,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,1796,97,45,45,45,45,45,45,45,970,45,45,45,45,45,45,45,45,1417,45,45,45,45,45,45,45,67,1964,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,97,97,1721,97,97,0,0,1997,97,0,0,2e3,97,97,0,97,97,97,97,97,45,45,45,45,733,45,67,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,144,45,45,45,1805,45,1807,45,45,45,45,45,67,67,67,67,67,67,231,67,67,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,45,45,67,211,67,67,67,67,230,234,240,244,67,67,67,67,67,67,464,67,67,67,67,67,67,479,67,67,67,260,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,291,97,97,97,97,310,314,320,324,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,1355,97,97,97,97,97,97,1362,340,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,360,0,362,0,365,28809,367,139,369,45,45,45,374,67,67,460,67,67,67,67,466,67,67,67,67,67,67,67,67,801,67,67,67,67,67,67,67,67,67,487,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,67,1772,67,67,97,97,97,97,97,97,97,0,921,922,1175,0,0,0,0,45,67,502,67,67,67,67,67,67,67,508,67,67,67,515,517,67,67,67,67,67,97,97,97,97,97,0,0,0,1932,97,97,0,1999,97,97,97,0,97,97,2004,2005,97,45,45,45,45,1193,45,45,45,45,45,45,45,45,45,45,45,676,45,45,45,45,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,552,97,97,97,97,97,1377,0,0,45,45,45,45,45,45,45,45,655,45,45,45,45,45,45,45,97,97,557,97,97,97,97,563,97,97,97,97,97,97,97,97,1135,97,97,97,97,97,97,97,97,97,584,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,911,97,97,97,97,97,97,97,638,0,0,0,0,1315,0,0,0,0,97,97,97,1319,97,97,97,0,97,97,97,97,97,97,1733,97,97,97,97,97,97,1340,97,97,97,1343,97,97,1345,97,1346,97,599,97,97,97,97,97,97,97,605,97,97,97,612,614,97,97,97,97,97,1794,97,97,97,45,45,45,45,45,45,45,1207,45,45,45,45,45,45,1213,45,45,745,67,67,67,67,751,67,67,67,67,67,67,67,67,67,67,1577,67,67,67,67,67,762,67,67,67,67,766,67,67,67,67,67,67,67,67,67,67,1765,67,67,67,67,67,777,67,67,781,67,67,67,67,67,67,67,67,67,67,67,67,1592,1593,67,67,97,843,97,97,97,97,849,97,97,97,97,97,97,97,97,97,1510,97,97,97,97,97,97,97,860,97,97,97,97,864,97,97,97,97,97,97,97,97,97,1797,45,45,45,45,1801,45,97,875,97,97,879,97,97,97,97,97,97,97,97,97,97,97,1522,97,97,97,97,97,991,45,45,45,45,996,45,45,45,45,45,45,45,45,67,67,215,67,67,67,67,233,67,67,67,67,251,253,1022,67,67,67,1026,67,67,67,67,67,67,67,67,67,67,1035,67,67,1038,67,67,67,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,67,1064,67,67,67,1067,67,67,67,67,1072,67,67,67,67,67,67,1296,0,0,0,0,0,0,0,0,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,1096,0,921,29315,0,0,0,0,928,45,45,45,45,45,934,45,45,45,164,45,45,45,45,45,45,45,45,45,198,45,45,45,378,45,45,45,45,45,45,393,45,45,45,398,45,97,97,1116,97,97,97,1120,97,97,97,97,97,97,97,97,97,1147,1148,97,97,97,97,97,97,97,1129,97,97,1132,97,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,0,45,1178,45,45,45,45,45,45,45,45,45,1185,45,45,45,45,441,45,45,45,45,45,45,451,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,1260,67,67,67,1263,67,67,1265,1203,45,45,1205,45,1206,45,45,45,45,45,45,45,45,45,1216,67,1266,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,492,67,67,67,67,67,67,67,67,67,471,67,67,67,67,481,67,45,1386,45,1389,45,45,45,45,1394,45,45,45,1397,45,45,45,45,995,45,997,45,45,45,45,45,45,45,67,67,67,67,1915,67,67,67,67,67,1422,45,45,45,67,67,67,67,67,67,67,67,67,1433,67,1436,67,67,67,67,1441,67,67,67,1444,67,67,67,67,67,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,97,1494,97,97,97,1497,97,97,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,67,1571,67,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,67,67,1583,67,67,67,67,67,67,67,67,1591,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,97,1634,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1125,97,97,97,1647,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,1183,45,45,45,45,45,45,45,45,45,409,45,45,45,45,45,45,1658,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1668,1712,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,1835,97,97,97,97,0,0,0,97,97,1844,97,97,1726,0,97,97,97,97,97,1732,97,1734,97,97,97,97,97,300,97,308,97,97,97,97,97,97,97,97,866,97,97,97,97,97,97,97,67,67,67,1758,67,67,67,1762,67,67,67,67,67,67,67,67,1043,67,67,67,67,67,67,67,67,67,67,67,67,1771,67,67,67,97,97,97,97,97,1776,97,97,97,97,297,97,97,97,97,97,97,97,97,97,97,97,1108,97,97,97,97,67,67,67,1966,97,97,97,1970,0,0,0,97,97,97,97,0,97,97,97,1720,97,97,97,97,97,0,0,97,97,97,1837,97,0,1840,1841,97,97,97,1988,45,67,67,67,67,67,67,67,67,67,1994,1995,67,97,97,97,97,97,1103,97,97,97,97,97,97,97,97,97,97,917,97,97,0,0,0,67,67,265,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,345,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,361,362,0,365,28809,367,139,45,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,411,45,45,414,45,45,45,45,377,45,45,45,386,45,45,45,45,45,45,45,45,45,1223,45,45,45,45,45,45,45,45,45,426,45,45,433,45,45,45,67,67,67,67,67,463,67,67,67,472,67,67,67,67,67,67,67,527,67,67,67,67,67,67,537,67,540,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,564,97,97,97,97,97,97,97,637,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,927,45,45,45,45,45,45,45,45,45,1234,45,45,45,45,67,67,67,67,1240,45,697,45,45,45,45,45,45,45,45,45,45,708,45,45,45,45,1221,45,45,45,45,1225,45,45,45,45,45,45,384,45,45,45,45,45,45,45,45,45,1210,45,45,45,45,45,45,67,67,795,67,67,67,67,67,67,67,67,67,67,67,67,67,1470,67,67,67,67,67,67,67,815,67,67,67,67,67,67,25398,542,13112,544,97,97,97,893,97,97,97,97,97,97,97,97,97,97,97,97,1164,97,97,97,67,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,1687,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,1097,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1450,45,45,1388,45,1390,45,45,45,45,45,45,45,45,45,45,45,1236,67,67,67,67,67,1437,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1472,1490,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1503,67,67,67,67,67,97,97,97,97,97,0,1930,0,97,97,97,97,97,847,97,97,97,97,97,97,97,97,97,858,67,67,1965,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,1719,97,97,97,97,97,97,0,0,0,45,45,45,45,1382,45,1383,45,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,1563,45,45,45,45,45,67,261,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,341,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,1099,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1333,97,1230,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1992,67,1993,67,67,67,97,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,1665,45,45,45,45,45,131427,357,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,684,45,45,45,45,45,45,45,45,45,45,412,45,45,45,416,45,45,45,440,45,45,45,45,45,45,45,45,45,45,45,67,67,1990,67,1991,67,67,67,67,67,67,67,97,97,1707,97,97,97,97,97,97,501,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,67,67,67,526,67,67,67,67,67,67,67,67,67,67,1030,67,1032,67,67,67,67,598,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1632,0,921,29315,923,0,0,0,45,45,45,45,45,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,425,45,45,45,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1093,0,0,0,0,0,97,1609,97,97,97,97,97,97,97,97,97,1369,97,97,97,1372,97,97,67,67,266,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,346,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,665,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1677,45,45,45,45,67,45,45,954,45,956,45,45,45,45,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,448,45,45,45,45,67,456,67,67,67,67,67,1270,67,67,67,67,67,67,67,67,67,67,1069,67,67,67,67,67,67,97,97,97,1350,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,97,97,97,97,97,1376,0,0,0,45,45,45,45,45,45,45,45,1559,1561,45,45,45,1564,45,1566,1567,45,67,67,67,67,67,1573,67,67,67,67,67,67,67,67,67,67,1247,67,67,67,67,67,1252,97,1725,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1628,97,1630,0,0,94242,0,0,0,2211840,0,1118208,0,0,0,0,2158592,2158731,2158592,2158592,2158592,3117056,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3018752,2158592,3043328,2158592,2158592,2158592,2158592,3080192,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158878,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2605056,2158592,2158592,2207744,0,542,0,544,0,0,2166784,0,0,0,550,0,0,2158592,2158592,2686976,2158592,2715648,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2867200,2158592,2904064,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,0,2211840,0,0,1130496,0,0,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,139,0,0,0,139,0,2367488,2207744,0,0,0,0,176128,0,2166784,0,0,0,0,0,286,2158592,2158592,3170304,3174400,2158592,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,1508,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,2158592,2158592,2158592,2158592,3158016,67,24850,24850,12564,12564,0,0,0,0,0,53531,53531,0,286,97,97,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,1154,57889,0,0,0,0,550,0,97,97,97,97,97,97,97,97,97,561,97,97,97,97,97,97,576,97,97,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,0,0,139264,0,921,29315,0,0,926,0,45,45,45,45,45,45,45,45,45,719,720,45,45,45,45,45,45,45,45,685,45,45,45,45,45,45,45,45,45,942,45,45,946,45,45,45,950,45,45,0,2146304,2146304,0,0,0,0,2224128,2224128,2224128,2232320,2232320,2232320,2232320,0,0,1301,0,0,0,0,0,1307,0,0,0,0,0,1313,0,0,0,0,0,0,0,97,97,1318,97,97,97,97,97,97,1795,97,97,45,45,45,45,45,45,45,446,45,45,45,45,45,45,67,67,2158592,2146304,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,924,0,0,45,45,45,45,45,45,45,45,45,1e3,45,45,45,45,67,67],r.EXPECTED=[290,300,304,353,296,309,305,319,315,324,328,352,354,334,338,330,320,345,349,293,358,362,341,366,312,370,374,378,382,386,390,394,398,737,402,634,439,604,634,634,634,634,408,634,634,634,404,634,634,634,457,634,634,963,634,634,413,634,634,634,634,634,634,634,663,418,422,903,902,426,431,548,634,437,521,919,443,615,409,449,455,624,731,751,634,461,465,672,470,469,474,481,485,477,489,493,629,542,497,505,603,602,991,648,510,804,634,515,958,526,525,530,768,634,546,552,711,710,593,558,562,618,566,570,574,578,582,586,590,608,612,660,822,821,634,622,596,444,628,533,724,633,640,653,647,652,536,1008,451,450,445,657,670,676,685,689,693,697,701,704,707,715,719,798,815,634,723,762,996,634,728,969,730,735,908,634,741,679,889,511,747,634,750,755,499,666,499,501,759,772,776,780,634,787,784,797,802,809,808,427,814,1006,517,634,519,853,634,813,850,793,634,819,826,833,832,837,843,847,857,861,863,867,871,875,879,883,643,887,539,980,979,634,893,944,634,900,896,634,907,933,506,912,917,828,433,636,635,554,961,923,930,927,937,941,634,634,634,974,948,952,985,913,968,967,743,634,973,839,634,978,599,634,984,989,765,444,995,1e3,634,1003,790,955,1012,681,634,634,634,634,634,414,1016,1020,1024,1085,1027,1090,1090,1046,1080,1137,1108,1215,1049,1032,1039,1085,1085,1085,1085,1058,1062,1068,1085,1086,1090,1090,1091,1072,1064,1107,1090,1090,1090,1118,1123,1138,1078,1074,1084,1085,1085,1085,1087,1090,1062,1052,1060,1114,1062,1104,1085,1085,1090,1090,1028,1122,1063,1128,1139,1127,1158,1085,1085,1151,1090,1090,1090,1095,1090,1132,1073,1136,1143,1061,1150,1085,1155,1098,1101,1146,1162,1169,1101,1185,1151,1090,1110,1173,1054,1087,1109,1177,1165,1089,1204,1184,1107,1189,1193,1088,1197,1180,1201,1208,1042,1212,1219,1223,1227,1231,1235,1245,1777,1527,1686,1686,1238,1686,1254,1686,1686,1686,1294,1669,1686,1686,1686,1322,1625,1534,1268,1624,1275,1281,1443,1292,1300,1686,1686,1686,1350,1826,1306,1686,1686,1240,2032,1317,1321,1686,1686,1253,1686,1326,1686,1686,1686,1418,1709,1446,1686,1686,1686,1492,1686,1295,1447,1686,1686,1258,1686,1736,1686,1686,1520,1355,1686,1288,1348,1361,1686,1359,1686,1364,1498,1368,1302,1362,1381,1389,1395,1486,1686,1371,1377,1370,1686,1375,1382,1384,1402,1408,1385,1383,1619,1413,1423,1428,1433,1686,1686,1270,1686,1338,1686,1440,1686,1686,1686,1499,1465,1686,1686,1686,1639,1473,1884,1686,1686,1293,1864,1686,1686,1296,1321,1483,1686,1686,1686,1646,1686,1748,1496,1686,1418,1675,1686,1418,1702,1686,1418,1981,1686,1429,1409,1427,1504,1692,1686,1686,1313,1448,1651,1508,1686,1686,1340,1686,1903,1686,1686,1435,1513,1686,1283,1287,1519,1686,1524,1363,1568,1938,1539,1566,1579,1479,1533,1538,1553,1544,1552,1557,1563,1574,1557,1583,1589,1590,1759,1594,1603,1607,1611,1686,1436,1514,1686,1434,1656,1686,1434,1680,1686,1453,1686,1686,1686,1559,1617,1686,1770,1418,1623,1769,1629,1686,1515,1335,1686,1285,1686,1671,1921,1650,1686,1686,1344,1308,1666,1686,1686,1686,1659,1685,1686,1686,1686,1686,1241,1686,1686,1844,1691,1686,1630,1977,1970,1362,1686,1686,1686,1693,1698,1686,1686,1686,1697,1686,1764,1715,1686,1634,1638,1686,1599,1585,1686,1271,1686,1269,1686,1721,1686,1686,1354,1686,1801,1686,1799,1686,1640,1686,1686,1461,1686,1686,1732,1686,1944,1686,1740,1686,1746,1415,1396,1686,1598,1547,1417,1597,1416,1577,1546,1397,1577,1547,1548,1570,1398,1753,1686,1652,1509,1686,1686,1686,1757,1686,1419,1686,1763,1418,1768,1781,1686,1686,1686,1705,1686,2048,1792,1686,1686,1686,1735,1686,1797,1686,1686,1404,1686,1639,1815,1686,1686,1418,2017,1820,1686,1686,1803,1686,1686,1686,1736,1489,1686,1686,1825,1338,1260,1263,1686,1686,1785,1686,1686,1728,1686,1686,1749,1497,1830,1830,1262,1248,1261,1329,1260,1264,1329,1248,1249,1259,1540,1849,1842,1686,1686,1835,1686,1686,1816,1686,1686,1831,1882,1848,1686,1686,1686,1774,2071,1854,1686,1686,1469,1884,1686,1821,1859,1686,1686,1350,1883,1686,1686,1686,1781,1391,1875,1686,1686,1613,1644,1686,1686,1889,1686,1686,1662,1884,1686,1885,1890,1686,1686,1686,1894,1686,1686,1678,1686,1907,1686,1686,1529,1914,1686,1838,1686,1686,1881,1686,1686,1872,1876,1836,1919,1686,1837,1692,1910,1686,1925,1928,1742,1686,1811,1811,1930,1810,1929,1935,1928,1900,1942,1867,1868,1931,1035,1788,1948,1952,1956,1960,1964,1686,1976,1686,1686,1686,2065,1686,1992,2037,1686,1686,1998,2009,1972,2002,1686,1686,1686,2077,1300,2023,1686,1686,1686,1807,2031,1686,1686,1686,1860,1500,2032,1686,1686,1686,2083,1686,2036,1686,1277,1276,2042,1877,1686,1686,2041,1686,1686,2027,2037,2012,1686,2012,1855,1850,1686,2046,1686,1686,2054,1996,1686,1897,1309,2059,2052,1686,2058,1686,1686,2081,1686,1717,1477,1686,1331,1686,1686,1687,1686,1860,1681,1686,1686,1686,1966,1724,1686,1686,1686,1984,2015,1686,1686,1686,1988,1686,2063,1686,1686,1686,2005,1686,1727,1686,1686,1711,1457,2069,1686,1686,1686,2019,2075,1686,1686,1915,1686,1686,1793,1874,1686,1686,1491,1362,1449,1686,1686,1460,2098,2087,2091,2095,2184,2102,2113,2780,2117,2134,2142,2281,2146,2146,2146,2304,2296,2181,2639,2591,2872,2592,2873,2313,2195,2200,2281,2146,2273,2226,2204,2152,2219,2276,2167,2177,2276,2235,2276,2276,2230,2281,2276,2296,2276,2293,2276,2276,2276,2276,2234,2276,2311,2314,2210,2199,2217,2222,2276,2276,2276,2240,2276,2294,2276,2276,2173,2276,2198,2281,2281,2281,2281,2282,2146,2146,2146,2146,2205,2146,2204,2248,2276,2235,2276,2297,2276,2276,2276,2277,2256,2281,2283,2146,2146,2146,2275,2276,2295,2276,2276,2293,2146,2304,2264,2269,2221,2276,2276,2276,2293,2295,2276,2276,2276,2295,2263,2205,2268,2220,2172,2276,2276,2276,2296,2276,2276,2296,2294,2276,2276,2278,2281,2281,2280,2281,2281,2281,2283,2206,2223,2276,2276,2279,2281,2281,2146,2273,2276,2276,2281,2281,2281,2276,2292,2276,2298,2225,2276,2298,2169,2224,2292,2298,2171,2229,2281,2281,2171,2236,2281,2281,2281,2146,2275,2225,2292,2299,2276,2229,2281,2146,2276,2290,2297,2283,2146,2146,2274,2224,2227,2298,2225,2297,2276,2230,2170,2230,2282,2146,2147,2151,2156,2288,2276,2230,2303,2308,2236,2284,2228,2318,2318,2318,2326,2335,2339,2343,2349,2416,2693,2357,2592,2109,2592,2592,2162,2943,2823,2646,2592,2361,2592,2122,2592,2592,2122,2470,2592,2592,2592,2109,2107,2592,2592,2592,2123,2592,2592,2592,2125,2592,2413,2592,2592,2592,2127,2592,2592,2414,2592,2592,2592,2130,2952,2592,2594,2592,2592,2212,2609,2252,2592,2592,2592,2446,2434,2592,2592,2592,2212,2446,2450,2456,2431,2435,2592,2592,2243,2478,2448,2439,2946,2592,2592,2592,2368,2809,2813,2450,2441,2212,2812,2449,2440,2947,2592,2592,2592,2345,2451,2457,2948,2592,2124,2592,2592,2650,2823,2449,2455,2946,2592,2128,2592,2592,2649,2952,2592,2810,2448,2461,2991,2467,2592,2592,2329,2817,2474,2990,2466,2592,2592,2373,2447,2992,2469,2592,2592,2592,2373,2447,2477,2468,2592,2592,2353,2469,2592,2495,2592,2592,2415,2483,2592,2415,2496,2592,2592,2352,2592,2592,2352,2352,2469,2592,2592,2363,2331,2494,2592,2592,2592,2375,2592,2375,2415,2504,2592,2592,2367,2372,2503,2592,2592,2592,2389,2418,2415,2592,2592,2373,2592,2592,2592,2593,2732,2417,2415,2592,2417,2520,2592,2592,2592,2390,2521,2521,2592,2592,2592,2401,2599,2585,2526,2531,2120,2592,2212,2426,2450,2463,2948,2592,2592,2592,2213,2389,2527,2532,2121,2542,2551,2105,2592,2213,2592,2592,2592,2558,2538,2544,2553,2557,2537,2543,2552,2421,2572,2576,2546,2543,2547,2592,2592,2373,2615,2575,2545,2105,2592,2244,2479,2592,2129,2592,2592,2628,2690,2469,2562,2566,2592,2592,2592,2415,2928,2934,2401,2570,2574,2564,2572,2585,2590,2592,2592,2585,2965,2592,2592,2592,2445,2251,2592,2592,2592,2474,2592,2609,2892,2592,2362,2592,2592,2138,2851,2159,2592,2592,2592,2509,2888,2892,2592,2592,2592,2490,2418,2891,2592,2592,2376,2592,2592,2374,2592,2889,2388,2592,2373,2373,2890,2592,2592,2387,2592,2887,2505,2892,2592,2373,2610,2388,2592,2592,2376,2373,2592,2887,2891,2592,2374,2592,2592,2608,2159,2614,2620,2592,2592,2394,2594,2887,2399,2592,2887,2397,2508,2374,2507,2592,2375,2592,2592,2592,2595,2508,2506,2592,2506,2505,2505,2592,2507,2637,2505,2592,2592,2401,2661,2592,2643,2592,2592,2417,2592,2655,2592,2592,2592,2510,2414,2656,2592,2592,2592,2516,2592,2593,2660,2665,2880,2592,2592,2592,2522,2767,2666,2881,2592,2592,2420,2571,2696,2592,2592,2592,2580,2572,2686,2632,2698,2592,2383,2514,2592,2163,2932,2465,2685,2631,2697,2592,2388,2592,2592,2212,2604,2671,2632,2678,2592,2401,2405,2409,2592,2592,2592,2679,2592,2592,2592,2592,2108,2677,2591,2592,2592,2592,2419,2592,2683,2187,2191,2469,2671,2189,2467,2592,2401,2629,2633,2702,2468,2592,2592,2421,2536,2703,2469,2592,2592,2422,2573,2593,2672,2467,2592,2402,2406,2592,2402,2979,2592,2592,2626,2673,2467,2592,2446,2259,2947,2592,2377,2709,2592,2592,2522,2862,2713,2468,2592,2592,2581,2572,2562,2374,2374,2592,2376,2721,2724,2592,2592,2624,2373,2731,2592,2592,2592,2626,2732,2592,2592,2592,2755,2656,2726,2736,2741,2592,2486,2593,2381,2592,2727,2737,2742,2715,2747,2753,2592,2498,2469,2873,2743,2592,2592,2592,2791,2759,2763,2592,2592,2627,2704,2592,2592,2522,2789,2593,2761,2753,2592,2498,2863,2592,2592,2767,2592,2592,2592,2792,2789,2592,2592,2592,2803,2126,2592,2592,2592,2811,2122,2592,2592,2592,2834,2777,2592,2592,2592,2848,2936,2591,2489,2797,2592,2592,2670,2631,2490,2798,2592,2592,2592,2963,2807,2592,2592,2592,2965,2838,2592,2592,2592,2975,2330,2818,2829,2592,2498,2939,2592,2498,2592,2791,2331,2819,2830,2592,2592,2592,2982,2834,2817,2828,2106,2592,2592,2592,2405,2405,2817,2828,2592,2592,2415,2849,2842,2592,2522,2773,2592,2522,2868,2592,2580,2600,2586,2137,2850,2843,2592,2592,2855,2937,2844,2592,2592,2592,2987,2936,2591,2592,2592,2684,2630,2592,2856,2938,2592,2592,2860,2939,2592,2592,2872,2592,2861,2591,2592,2592,2887,2616,2592,2867,2592,2592,2708,2592,2498,2469,2498,2497,2785,2773,2499,2783,2770,2877,2877,2877,2772,2592,2592,2345,2885,2592,2592,2592,2715,2762,2515,2896,2592,2592,2715,2917,2516,2897,2592,2592,2592,2901,2906,2911,2592,2592,2956,2960,2715,2902,2907,2912,2593,2916,2920,2820,2922,2822,2592,2592,2715,2927,2921,2821,2106,2592,2592,2974,2408,2321,2821,2106,2592,2592,2983,2592,2593,2404,2408,2592,2592,2717,2749,2716,2928,2322,2822,2593,2926,2919,2820,2934,2823,2592,2592,2592,2651,2824,2592,2592,2592,2130,2952,2592,2592,2592,2592,2964,2592,2592,2716,2748,2592,2969,2592,2592,2716,2918,2368,2970,2592,2592,2592,2403,2407,2592,2592,2787,2211,2404,2409,2592,2592,2802,2837,2987,2592,2592,2592,2809,2427,2592,2793,2592,2592,2809,2447,1073741824,2147483648,539754496,542375936,402653184,554434560,571736064,545521856,268451840,335544320,268693630,512,2048,256,1024,0,1024,0,1073741824,2147483648,0,0,0,8388608,0,0,1073741824,1073741824,0,2147483648,537133056,4194304,1048576,268435456,-1073741824,0,0,0,1048576,0,0,0,1572864,0,0,0,4194304,0,134217728,16777216,0,0,32,64,98304,0,33554432,8388608,192,67108864,67108864,67108864,67108864,16,32,4,0,8192,196608,196608,229376,80,4096,524288,8388608,0,0,32,128,256,24576,24600,24576,24576,2,24576,24576,24576,24584,24592,24576,24578,24576,24578,24576,24576,16,512,2048,2048,256,4096,32768,1048576,4194304,67108864,134217728,268435456,262144,134217728,0,128,128,64,16384,16384,16384,67108864,32,32,4,4,4096,262144,134217728,0,0,0,2,0,8192,131072,131072,4096,4096,4096,4096,24576,24576,24576,8,8,24576,24576,16384,16384,16384,24576,24584,24576,24576,24576,16384,24576,536870912,262144,0,0,32,2048,8192,4,4096,4096,4096,786432,8388608,16777216,0,128,16384,16384,16384,32768,65536,2097152,32,32,32,32,4,4,4,4,4,4096,67108864,67108864,67108864,24576,24576,24576,24576,0,16384,16384,16384,16384,67108864,67108864,8,67108864,24576,8,8,8,24576,24576,24576,24578,24576,24576,24576,2,2,2,16384,67108864,67108864,67108864,32,67108864,8,8,24576,2048,2147483648,536870912,262144,262144,262144,67108864,8,24576,16384,32768,1048576,4194304,25165824,67108864,24576,32770,2,4,112,512,98304,524288,50,402653186,1049090,1049091,10,66,100925514,10,66,12582914,0,0,-1678194207,-1678194207,-1041543218,0,32768,0,0,32,65536,268435456,1,1,513,1048577,0,12582912,0,0,0,4,1792,0,0,0,7,29360128,0,0,0,8,0,0,0,12,1,1,0,0,-604102721,-604102721,4194304,8388608,0,0,0,31,925600,997981306,997981306,997981306,0,0,2048,8388608,0,0,1,2,4,32,64,512,8192,0,0,0,245760,997720064,0,0,0,32,0,0,0,3,12,16,32,8,112,3072,12288,16384,32768,65536,131072,7864320,16777216,973078528,0,0,65536,131072,3670016,4194304,16777216,33554432,2,8,48,2048,8192,16384,32768,65536,131072,524288,131072,524288,3145728,4194304,16777216,33554432,65536,131072,2097152,4194304,16777216,33554432,134217728,268435456,536870912,0,0,0,1024,0,8,48,2048,8192,65536,33554432,268435456,536870912,65536,268435456,536870912,0,0,32768,0,0,126,623104,65011712,0,32,65536,536870912,0,0,65536,524288,0,32,65536,0,0,0,2048,0,0,0,15482,245760,-604102721,0,0,0,18913,33062912,925600,-605028352,0,0,0,65536,31,8096,131072,786432,3145728,3145728,12582912,50331648,134217728,268435456,160,256,512,7168,131072,786432,131072,786432,1048576,2097152,12582912,16777216,268435456,1073741824,2147483648,12582912,16777216,33554432,268435456,1073741824,2147483648,3,12,16,160,256,7168,786432,1048576,12582912,16777216,268435456,1073741824,0,8,16,32,128,256,512,7168,786432,1048576,2097152,0,1,2,8,16,7168,786432,1048576,8388608,16777216,16777216,1073741824,0,0,0,0,1,0,0,8,32,128,256,7168,8,32,0,3072,0,8,32,3072,4096,524288,8,32,0,0,3072,4096,0,2048,524288,8388608,8,2048,0,0,1,12,256,4096,32768,262144,1048576,4194304,67108864,0,2048,0,2048,2048,1073741824,-58805985,-58805985,-58805985,0,0,262144,0,0,32,4194304,16777216,134217728,4382,172032,-58982400,0,0,2,28,256,4096,8192,8192,32768,131072,262144,524288,1,2,12,256,4096,0,0,4194304,67108864,134217728,805306368,1073741824,0,0,1,2,12,16,256,4096,1048576,67108864,134217728,268435456,0,512,1048576,4194304,201326592,1879048192,0,0,12,256,4096,134217728,268435456,536870912,12,256,268435456,536870912,0,12,256,0,0,1,32,64,512,0,0,205236961,205236961,0,0,0,1,96,640,1,10976,229376,204996608,0,640,2048,8192,229376,1572864,1572864,2097152,201326592,0,0,0,64,512,2048,229376,1572864,201326592,1572864,201326592,0,0,1,4382,0,1,32,2048,65536,131072,1572864,201326592,131072,1572864,134217728,0,0,524288,524288,0,0,0,-68582786,-68582786,-68582786,0,0,2097152,524288,0,524288,0,0,65536,131072,1572864,0,0,2,4,0,0,65011712,-134217728,0,0,0,0,2,4,120,512,-268435456,0,0,0,2,8,48,64,2048,8192,98304,524288,2097152,4194304,25165824,33554432,134217728,268435456,2147483648,0,0,25165824,33554432,134217728,1879048192,2147483648,0,0,4,112,512,622592,65011712,134217728,-268435456,16777216,33554432,134217728,1610612736,0,0,0,64,98304,524288,4194304,16777216,33554432,0,98304,524288,16777216,33554432,0,65536,524288,33554432,536870912,1073741824,0,65536,524288,536870912,1073741824,0,0,65536,524288,536870912,0,524288,0,524288,524288,1048576,2086666240,2147483648,0,-1678194207,0,0,0,8,32,2048,524288,8388608,0,0,33062912,436207616,2147483648,0,0,32,64,2432,16384,32768,32768,524288,3145728,4194304,25165824,25165824,167772160,268435456,2147483648,0,32,64,384,2048,16384,32768,1048576,2097152,4194304,25165824,32,64,128,256,2048,16384,2048,16384,1048576,4194304,16777216,33554432,134217728,536870912,1073741824,0,0,2048,16384,4194304,16777216,33554432,134217728,805306368,0,0,16777216,134217728,268435456,2147483648,0,622592,622592,622592,8807,8807,434791,0,0,16777216,0,0,0,7,608,8192,0,0,0,3,4,96,512,32,64,8192,0,0,16777216,134217728,0,0,2,4,8192,16384,65536,2097152,33554432,268435456],r.TOKEN=[\"(0)\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"QuotChar\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],\"/node_modules/xqlint/lib/lexers/lexer.js\":[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}],\"/node_modules/xqlint/lib/lexers/xquery_lexer.js\":[function(e,t,n){\"use strict\";var r=e(\"./XQueryTokenizer\").XQueryTokenizer,i=e(\"./lexer\").Lexer,s=\"after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning|append|json|position|strict\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotChar\",token:\"string\"}]};n.XQueryLexer=function(){return new i(r,d)}},{\"./XQueryTokenizer\":\"/node_modules/xqlint/lib/lexers/XQueryTokenizer.js\",\"./lexer\":\"/node_modules/xqlint/lib/lexers/lexer.js\"}]},{},[\"/node_modules/xqlint/lib/lexers/xquery_lexer.js\"])}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e&&e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,\"attribute-value\"))return;a.stepBackward()}}if(/^\\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:\"></\"+d+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/xquery\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/xquery_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/xquery_lexer\").XQueryLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t.on(\"highlight\",function(t){n.$tokenizer.tokens=t.data.tokens,n.$tokenizer.lines=e.getDocument().getAllLines();var r=Object.keys(n.$tokenizer.tokens);for(var i=0;i<r.length;i++){var s=parseInt(r[i]);delete e.bgTokenizer.lines[s],delete e.bgTokenizer.states[s],e.bgTokenizer.fireUpdateEvent(s,s)}}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/xquery\"}.call(h.prototype),t.Mode=h});\n                (function() {\n                    ace.require([\"ace/mode/xquery\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/mode-yaml.js",
    "content": "ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"list.markup\",regex:/^(?:-{3}|\\.{3})\\s*(?=#|$)/},{token:\"list.markup\",regex:/^\\s*[\\-?](?:$|\\s)/},{token:\"constant\",regex:\"!![\\\\w//]+\"},{token:\"constant.language\",regex:\"[&\\\\*][a-zA-Z0-9-_]+\"},{token:[\"meta.tag\",\"keyword\"],regex:/^(\\s*\\w.*?)(:(?=\\s|$))/},{token:[\"meta.tag\",\"keyword\"],regex:/(\\w+?)(\\s*:(?=\\s|$))/},{token:\"keyword.operator\",regex:\"<<\\\\w*:\\\\w*\"},{token:\"keyword.operator\",regex:\"-\\\\s*(?=[{])\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:/[|>][-+\\d\\s]*$/,onMatch:function(e,t,n,r){var i=/^\\s*/.exec(r)[0];return n.length<1?n.push(this.next):n[0]=\"mlString\",n.length<2?n.push(i.length):n[1]=i.length,this.token},next:\"mlString\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/},{token:\"constant.numeric\",regex:/[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/},{token:\"constant.language.boolean\",regex:\"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:/[^\\s,:\\[\\]\\{\\}]+/}],mlString:[{token:\"indent\",regex:/^\\s*$/},{token:\"indent\",regex:/^\\s*/,onMatch:function(e,t,n){var r=n[1];return r>=e.length?(this.next=\"start\",n.splice(0)):this.next=\"mlString\",this.token},next:\"mlString\"},{token:\"string\",regex:\".+\"}]},this.normalizeRules()};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./yaml_highlight_rules\").YamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/coffee\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=[\"#\",\"//\"],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/yaml\"}.call(a.prototype),t.Mode=a});\n                (function() {\n                    ace.require([\"ace/mode/yaml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/ace-1.3.3/theme-textmate.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.$id=\"ace/theme/textmate\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)});\n                (function() {\n                    ace.require([\"ace/theme/textmate\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "
  },
  {
    "path": "app/assets/js/editor/monaco.js",
    "content": "require.config({ baseUrl: 'beaker://assets/' });\nrequire(['vs/editor/editor.main'], function() {\n  var commonOpts = {\n    renderLineHighlight: 'none',\n    lineNumbersMinChars: 4,\n    automaticLayout: true,\n    fixedOverflowWidgets: true,\n    roundedSelection: false,\n    model: null\n  }\n  window.editor = monaco.editor.create(document.getElementById('editor'), commonOpts)\n  window.diffEditor = monaco.editor.createDiffEditor(document.getElementById('diffEditor'), Object.assign({}, commonOpts, {readOnly: true}))\n  window.dispatchEvent(new Event('editor-created'))\n})"
  },
  {
    "path": "app/assets/js/editor/vs/base/worker/workerMain.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n(function(){\nvar e,t,n=[\"require\",\"exports\",\"vs/editor/common/core/position\",\"vs/base/common/errors\",\"vs/base/common/platform\",\"vs/editor/common/core/range\",\"vs/base/common/diff/diff\",\"vs/base/common/iterator\",\"vs/base/common/lifecycle\",\"vs/base/common/event\",\"vs/base/common/types\",\"vs/base/common/uint\",\"vs/base/common/uri\",\"vs/base/common/arrays\",\"vs/base/common/diff/diffChange\",\"vs/base/common/functional\",\"vs/base/common/hash\",\"vs/base/common/keyCodes\",\"vs/base/common/linkedList\",\"vs/base/common/cancellation\",\"vs/base/common/strings\",\"vs/editor/common/core/characterClassifier\",\"vs/editor/common/core/selection\",\"vs/editor/common/core/token\",\"vs/editor/common/diff/diffComputer\",\"vs/editor/common/model/wordHelper\",\"vs/editor/common/modes/linkComputer\",\"vs/editor/common/modes/supports/inplaceReplaceSupport\",\"vs/editor/common/standalone/standaloneEnums\",\"vs/editor/common/standalone/standaloneBase\",\"vs/editor/common/viewModel/prefixSumComputer\",\"vs/editor/common/model/mirrorTextModel\",\"vs/base/common/worker/simpleWorker\",\"vs/editor/common/standalone/promise-polyfill/polyfill\",\"vs/editor/common/services/editorSimpleWorker\"],r=function(e){\nfor(var t=[],r=0,i=e.length;r<i;r++)t[r]=n[e[r]];return t},i=this,o=\"object\"==typeof global?global:{};!function(e){e.global=i;var t=function(){function t(){this._detected=!1,this._isWindows=!1,this._isNode=!1,this._isElectronRenderer=!1,this._isWebWorker=!1}return Object.defineProperty(t.prototype,\"isWindows\",{get:function(){return this._detect(),this._isWindows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isNode\",{get:function(){return this._detect(),this._isNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isElectronRenderer\",{get:function(){return this._detect(),this._isElectronRenderer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isWebWorker\",{get:function(){return this._detect(),this._isWebWorker},enumerable:!0,configurable:!0}),t.prototype._detect=function(){this._detected||(this._detected=!0,this._isWindows=t._isWindows(),this._isNode=\"undefined\"!=typeof module&&!!module.exports,\nthis._isElectronRenderer=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type,this._isWebWorker=\"function\"==typeof e.global.importScripts)},t._isWindows=function(){return!!(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf(\"Windows\")>=0)||\"undefined\"!=typeof process&&\"win32\"===process.platform},t}();e.Environment=t}(t||(t={})),function(e){var t=function(e,t,n){this.type=e,this.detail=t,this.timestamp=n};e.LoaderEvent=t;var n=function(){function n(e){this._events=[new t(1,\"\",e)]}return n.prototype.record=function(n,r){this._events.push(new t(n,r,e.Utilities.getHighPerformanceTimestamp()))},n.prototype.getEvents=function(){return this._events},n}();e.LoaderEventRecorder=n;var r=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=r}(t||(t={})),function(e){var t=function(){function t(){}\nreturn t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,\"#\"),e){if(/^file:\\/\\/\\//.test(t))return t.substr(8);if(/^file:\\/\\//.test(t))return t.substr(5)}else if(/^file:\\/\\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\\#]*\\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\\/\\/)|(https:\\/\\/)|(file:\\/\\/)|(\\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var n=void 0;for(n in e)e.hasOwnProperty(n)&&t(n,e[n])}},t.isEmpty=function(e){var n=!0;return t.forEachProperty(e,(function(){n=!1})),n},t.recursiveClone=function(e){if(!e||\"object\"!=typeof e)return e;var n=Array.isArray(e)?[]:{};return t.forEachProperty(e,(function(e,r){n[e]=r&&\"object\"==typeof r?t.recursiveClone(r):r})),n},t.generateAnonymousModule=function(){return\"===anonymous\"+t.NEXT_ANONYMOUS_ID+++\"===\"},\nt.isAnonymousModule=function(e){return t.startsWith(e,\"===anonymous\")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&\"function\"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(t||(t={})),function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||\"Unknown Error\");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var n=function(){function n(){}return n.validateConfigurationOptions=function(n){if(\"string\"!=typeof(n=n||{}).baseUrl&&(n.baseUrl=\"\"),\"boolean\"!=typeof n.isBuild&&(n.isBuild=!1),\"object\"!=typeof n.paths&&(n.paths={}),\"object\"!=typeof n.config&&(n.config={}),void 0===n.catchError&&(n.catchError=!1),void 0===n.recordStats&&(n.recordStats=!1),\"string\"!=typeof n.urlArgs&&(n.urlArgs=\"\"),\n\"function\"!=typeof n.onError&&(n.onError=function(e){return\"loading\"===e.phase?(console.error('Loading \"'+e.moduleId+'\" failed'),console.error(e),console.error(\"Here are the modules that depend on it:\"),void console.error(e.neededBy)):\"factory\"===e.phase?(console.error('The factory method of \"'+e.moduleId+'\" has thrown an exception'),void console.error(e)):void 0}),Array.isArray(n.ignoreDuplicateModules)||(n.ignoreDuplicateModules=[]),n.baseUrl.length>0&&(e.Utilities.endsWith(n.baseUrl,\"/\")||(n.baseUrl+=\"/\")),\"string\"!=typeof n.cspNonce&&(n.cspNonce=\"\"),Array.isArray(n.nodeModules)||(n.nodeModules=[]),n.nodeCachedData&&\"object\"==typeof n.nodeCachedData&&(\"string\"!=typeof n.nodeCachedData.seed&&(n.nodeCachedData.seed=\"seed\"),(\"number\"!=typeof n.nodeCachedData.writeDelay||n.nodeCachedData.writeDelay<0)&&(n.nodeCachedData.writeDelay=7e3),!n.nodeCachedData.path||\"string\"!=typeof n.nodeCachedData.path)){var r=t(new Error(\"INVALID cached data configuration, 'path' MUST be set\"));r.phase=\"configuration\",\nn.onError(r),n.nodeCachedData=void 0}return n},n.mergeConfigurationOptions=function(t,r){void 0===t&&(t=null),void 0===r&&(r=null);var i=e.Utilities.recursiveClone(r||{});return e.Utilities.forEachProperty(t,(function(t,n){\"ignoreDuplicateModules\"===t&&void 0!==i.ignoreDuplicateModules?i.ignoreDuplicateModules=i.ignoreDuplicateModules.concat(n):\"paths\"===t&&void 0!==i.paths?e.Utilities.forEachProperty(n,(function(e,t){return i.paths[e]=t})):\"config\"===t&&void 0!==i.config?e.Utilities.forEachProperty(n,(function(e,t){return i.config[e]=t})):i[t]=e.Utilities.recursiveClone(n)})),n.validateConfigurationOptions(i)},n}();e.ConfigurationOptionsUtil=n;var r=function(){function t(e,t){if(this._env=e,this.options=n.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),\"\"===this.options.baseUrl){if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){\nvar r=this.options.nodeRequire.main.filename,i=Math.max(r.lastIndexOf(\"/\"),r.lastIndexOf(\"\\\\\"));this.options.baseUrl=r.substring(0,i+1)}if(this.options.nodeMain&&this._env.isNode){r=this.options.nodeMain,i=Math.max(r.lastIndexOf(\"/\"),r.lastIndexOf(\"\\\\\"));this.options.baseUrl=r.substring(0,i+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e<this.options.ignoreDuplicateModules.length;e++)this.ignoreDuplicateModulesMap[this.options.ignoreDuplicateModules[e]]=!0},t.prototype._createNodeModulesMap=function(){this.nodeModulesMap=Object.create(null);for(var e=0,t=this.options.nodeModules;e<t.length;e++){var n=t[e];this.nodeModulesMap[n]=!0}},t.prototype._createSortedPathsRules=function(){var t=this;this.sortedPathsRules=[],e.Utilities.forEachProperty(this.options.paths,(function(e,n){Array.isArray(n)?t.sortedPathsRules.push({from:e,to:n}):t.sortedPathsRules.push({from:e,to:[n]})})),this.sortedPathsRules.sort((function(e,t){\nreturn t.from.length-e.from.length}))},t.prototype.cloneAndMerge=function(e){return new t(this._env,n.mergeConfigurationOptions(e,this.options))},t.prototype.getOptionsLiteral=function(){return this.options},t.prototype._applyPaths=function(t){for(var n,r=0,i=this.sortedPathsRules.length;r<i;r++)if(n=this.sortedPathsRules[r],e.Utilities.startsWith(t,n.from)){for(var o=[],s=0,u=n.to.length;s<u;s++)o.push(n.to[s]+t.substr(n.from.length));return o}return[t]},t.prototype._addUrlArgsToUrl=function(t){return e.Utilities.containsQueryString(t)?t+\"&\"+this.options.urlArgs:t+\"?\"+this.options.urlArgs},t.prototype._addUrlArgsIfNecessaryToUrl=function(e){return this.options.urlArgs?this._addUrlArgsToUrl(e):e},t.prototype._addUrlArgsIfNecessaryToUrls=function(e){if(this.options.urlArgs)for(var t=0,n=e.length;t<n;t++)e[t]=this._addUrlArgsToUrl(e[t]);return e},t.prototype.moduleIdToPaths=function(t){if(!0===this.nodeModulesMap[t])return this.isBuild()?[\"empty:\"]:[\"node|\"+t];var n,r=t\n;if(e.Utilities.endsWith(r,\".js\")||e.Utilities.isAbsolutePath(r))e.Utilities.endsWith(r,\".js\")||e.Utilities.containsQueryString(r)||(r+=\".js\"),n=[r];else for(var i=0,o=(n=this._applyPaths(r)).length;i<o;i++)this.isBuild()&&\"empty:\"===n[i]||(e.Utilities.isAbsolutePath(n[i])||(n[i]=this.options.baseUrl+n[i]),e.Utilities.endsWith(n[i],\".js\")||e.Utilities.containsQueryString(n[i])||(n[i]=n[i]+\".js\"));return this._addUrlArgsIfNecessaryToUrls(n)},t.prototype.requireToUrl=function(t){var n=t;return e.Utilities.isAbsolutePath(n)||(n=this._applyPaths(n)[0],e.Utilities.isAbsolutePath(n)||(n=this.options.baseUrl+n)),this._addUrlArgsIfNecessaryToUrl(n)},t.prototype.isBuild=function(){return this.options.isBuild},t.prototype.isDuplicateMessageIgnoredFor=function(e){return this.ignoreDuplicateModulesMap.hasOwnProperty(e)},t.prototype.getConfigForModule=function(e){if(this.options.config)return this.options.config[e]},t.prototype.shouldCatchError=function(){return this.options.catchError},\nt.prototype.shouldRecordStats=function(){return this.options.recordStats},t.prototype.onError=function(e){this.options.onError(e)},t}();e.Configuration=r}(t||(t={})),function(e){var t=function(){function e(e){this._env=e,this._scriptLoader=null,this._callbackMap={}}return e.prototype.load=function(e,t,o,s){var u=this;this._scriptLoader||(this._scriptLoader=this._env.isWebWorker?new r:this._env.isNode?new i(this._env):new n);var a={callback:o,errorback:s};this._callbackMap.hasOwnProperty(t)?this._callbackMap[t].push(a):(this._callbackMap[t]=[a],this._scriptLoader.load(e,t,(function(){return u.triggerCallback(t)}),(function(e){return u.triggerErrorback(t,e)})))},e.prototype.triggerCallback=function(e){var t=this._callbackMap[e];delete this._callbackMap[e];for(var n=0;n<t.length;n++)t[n].callback()},e.prototype.triggerErrorback=function(e,t){var n=this._callbackMap[e];delete this._callbackMap[e];for(var r=0;r<n.length;r++)n[r].errorback(t)},e}(),n=function(){function e(){}\nreturn e.prototype.attachListeners=function(e,t,n){var r=function(){e.removeEventListener(\"load\",i),e.removeEventListener(\"error\",o)},i=function(e){r(),t()},o=function(e){r(),n(e)};e.addEventListener(\"load\",i),e.addEventListener(\"error\",o)},e.prototype.load=function(e,t,n,r){var i=document.createElement(\"script\");i.setAttribute(\"async\",\"async\"),i.setAttribute(\"type\",\"text/javascript\"),this.attachListeners(i,n,r),i.setAttribute(\"src\",t);var o=e.getConfig().getOptionsLiteral().cspNonce;o&&i.setAttribute(\"nonce\",o),document.getElementsByTagName(\"head\")[0].appendChild(i)},e}(),r=function(){function e(){}return e.prototype.load=function(e,t,n,r){try{importScripts(t),n()}catch(e){r(e)}},e}(),i=function(){function t(e){this._env=e,this._didInitialize=!1,this._didPatchNodeRequire=!1}return t.prototype._init=function(e){this._didInitialize||(this._didInitialize=!0,this._fs=e(\"fs\"),this._vm=e(\"vm\"),this._path=e(\"path\"),this._crypto=e(\"crypto\"))},t.prototype._initNodeRequire=function(e,t){\nvar n=t.getConfig().getOptionsLiteral().nodeCachedData;if(n&&!this._didPatchNodeRequire){this._didPatchNodeRequire=!0;var r=this,i=e(\"module\");i.prototype._compile=function(e,s){var u,a=i.wrap(e.replace(/^#!.*/,\"\")),l=t.getRecorder(),c=r._getCachedDataPath(n,s),d={filename:s};try{var f=r._fs.readFileSync(c);u=f.slice(0,16),d.cachedData=f.slice(16),l.record(60,c)}catch(e){l.record(61,c)}var h=new r._vm.Script(a,d),p=h.runInThisContext(d),m=r._path.dirname(s),g=function(e){var t=e.constructor,n=function(t){try{return e.require(t)}finally{}};return n.resolve=function(n){return t._resolveFilename(n,e)},n.main=process.mainModule,n.extensions=t._extensions,n.cache=t._cache,n}(this),v=[this.exports,g,this,s,m,process,o,Buffer],_=p.apply(this.exports,v);return r._handleCachedData(h,a,c,!d.cachedData,t),r._verifyCachedData(h,a,c,u,t),_}}},t.prototype.load=function(n,r,i,o){var s=this,u=n.getConfig().getOptionsLiteral(),a=u.nodeRequire||e.global.nodeRequire,l=u.nodeInstrumenter||function(e){return e};this._init(a),\nthis._initNodeRequire(a,n);var c=n.getRecorder();if(/^node\\|/.test(r)){var d=r.split(\"|\"),f=null;try{f=a(d[1])}catch(e){return void o(e)}n.enqueueDefineAnonymousModule([],(function(){return f})),i()}else{r=e.Utilities.fileUriToFilePath(this._env.isWindows,r);var h=this._path.normalize(r),p=this._getElectronRendererScriptPathOrUri(h),m=Boolean(u.nodeCachedData),g=m?this._getCachedDataPath(u.nodeCachedData,r):void 0;this._readSourceAndCachedData(h,g,c,(function(e,r,u,a){if(e)o(e);else{var c;c=r.charCodeAt(0)===t._BOM?t._PREFIX+r.substring(1)+t._SUFFIX:t._PREFIX+r+t._SUFFIX,c=l(c,h);var d={filename:p,cachedData:u},f=s._createAndEvalScript(n,c,d,i,o);s._handleCachedData(f,c,g,m&&!u,n),s._verifyCachedData(f,c,g,a,n)}}))}},t.prototype._createAndEvalScript=function(t,n,r,i,o){var s=t.getRecorder();s.record(31,r.filename);var u=new this._vm.Script(n,r),a=u.runInThisContext(r),l=t.getGlobalAMDDefineFunc(),c=!1,d=function(){return c=!0,l.apply(null,arguments)};return d.amd=l.amd,\na.call(e.global,t.getGlobalAMDRequireFunc(),d,r.filename,this._path.dirname(r.filename)),s.record(32,r.filename),c?i():o(new Error(\"Didn't receive define call in \"+r.filename+\"!\")),u},t.prototype._getElectronRendererScriptPathOrUri=function(e){if(!this._env.isElectronRenderer)return e;var t=e.match(/^([a-z])\\:(.*)/i);return t?\"file:///\"+(t[1].toUpperCase()+\":\"+t[2]).replace(/\\\\/g,\"/\"):\"file://\"+e},t.prototype._getCachedDataPath=function(e,t){var n=this._crypto.createHash(\"md5\").update(t,\"utf8\").update(e.seed,\"utf8\").digest(\"hex\"),r=this._path.basename(t).replace(/\\.js$/,\"\");return this._path.join(e.path,r+\"-\"+n+\".code\")},t.prototype._handleCachedData=function(e,t,n,r,i){var o=this;e.cachedDataRejected?this._fs.unlink(n,(function(r){i.getRecorder().record(62,n),o._createAndWriteCachedData(e,t,n,i),r&&i.getConfig().onError(r)})):r&&this._createAndWriteCachedData(e,t,n,i)},t.prototype._createAndWriteCachedData=function(e,t,n,r){\nvar i=this,o=Math.ceil(r.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,u=0,a=void 0,l=function(){setTimeout((function(){a||(a=i._crypto.createHash(\"md5\").update(t,\"utf8\").digest());var o=e.createCachedData();0===o.length||o.length===s||u>=5||(s=o.length,i._fs.writeFile(n,Buffer.concat([a,o]),(function(e){e&&r.getConfig().onError(e),r.getRecorder().record(63,n),l()})))}),o*Math.pow(4,u++))};l()},t.prototype._readSourceAndCachedData=function(e,t,n,r){if(t){var i=void 0,o=void 0,s=void 0,u=2,a=function(e){e?r(e):0==--u&&r(void 0,i,o,s)};this._fs.readFile(e,{encoding:\"utf8\"},(function(e,t){i=t,a(e)})),this._fs.readFile(t,(function(e,r){!e&&r&&r.length>0?(s=r.slice(0,16),o=r.slice(16),n.record(60,t)):n.record(61,t),a()}))}else this._fs.readFile(e,{encoding:\"utf8\"},r)},t.prototype._verifyCachedData=function(e,t,n,r,i){var o=this;r&&(e.cachedDataRejected||setTimeout((function(){var e=o._crypto.createHash(\"md5\").update(t,\"utf8\").digest()\n;r.equals(e)||(i.getConfig().onError(new Error(\"FAILED TO VERIFY CACHED DATA, deleting stale '\"+n+\"' now, but a RESTART IS REQUIRED\")),o._fs.unlink(n,(function(e){return i.getConfig().onError(e)})))}),Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX=\"(function (require, define, __filename, __dirname) { \",t._SUFFIX=\"\\n});\",t}();e.createScriptLoader=function(e){return new t(e)}}(t||(t={})),function(e){var t=function(){function t(e){var t=e.lastIndexOf(\"/\");this.fromModulePath=-1!==t?e.substr(0,t+1):\"\"}return t._normalizeModuleId=function(e){var t,n=e;for(t=/\\/\\.\\//;t.test(n);)n=n.replace(t,\"/\");for(n=n.replace(/^\\.\\//g,\"\"),t=/\\/(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//;t.test(n);)n=n.replace(t,\"/\");return n=n.replace(/^(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//,\"\")},t.prototype.resolveModule=function(n){var r=n\n;return e.Utilities.isAbsolutePath(r)||(e.Utilities.startsWith(r,\"./\")||e.Utilities.startsWith(r,\"../\"))&&(r=t._normalizeModuleId(this.fromModulePath+r)),r},t.ROOT=new t(\"\"),t}();e.ModuleIdResolver=t;var n=function(){function t(e,t,n,r,i,o){this.id=e,this.strId=t,this.dependencies=n,this._callback=r,this._errorback=i,this.moduleIdResolver=o,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,n){try{return{returnedValue:t.apply(e.global,n),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,n,r,i){return t.isBuild()&&!e.Utilities.isAnonymousModule(n)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(r,i):{returnedValue:r.apply(e.global,i),producedError:null}},t.prototype.complete=function(n,r,i){this._isComplete=!0;var o=null;if(this._callback)if(\"function\"==typeof this._callback){n.record(21,this.strId)\n;var s=t._invokeFactory(r,this.strId,this._callback,i);o=s.producedError,n.record(22,this.strId),o||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(o){var u=e.ensureError(o);u.phase=\"factory\",u.moduleId=this.strId,this.error=u,r.onError(u)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e,!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=n;var r=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId(\"exports\"),this.getModuleId(\"module\"),this.getModuleId(\"require\")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,\nthis._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),i=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=i;var o=function(e,t,n){this.id=e,this.pluginId=t,this.pluginParam=n};e.PluginDependency=o;var s=function(){function s(t,n,i,o,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=n,this._loaderAvailableTimestamp=s,this._defineFunc=i,this._requireFunc=o,this._moduleIdProvider=new r,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},\ns.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var n=function(e){return e.replace(/\\\\/g,\"/\")},r=n(e),i=t.split(/\\n/),o=0;o<i.length;o++){var s=i[o].match(/(.*):(\\d+):(\\d+)\\)?$/);if(s){var u=s[1],a=s[2],l=s[3],c=Math.max(u.lastIndexOf(\" \")+1,u.lastIndexOf(\"(\")+1);if((u=n(u=u.substr(c)))===r){var d={line:parseInt(a,10),col:parseInt(l,10)};return 1===d.line&&(d.col-=\"(function (require, define, __filename, __dirname) { \".length),d}}}throw new Error(\"Could not correlate define call site for needle \"+e)},s.prototype.getBuildInfo=function(){if(!this._config.isBuild())return null;for(var e=[],t=0,n=0,r=this._modules2.length;n<r;n++){var i=this._modules2[n];if(i){var o=this._buildInfoPath[i.id]||null,u=this._buildInfoDefineStack[i.id]||null,a=this._buildInfoDependencies[i.id];e[t++]={id:i.strId,path:o,defineLocation:o&&u?s._findRelevantLocationInStack(o,u):null,\ndependencies:a,shim:null,exports:i.exports}}}return e},s.prototype.getRecorder=function(){return this._recorder||(this._config.shouldRecordStats()?this._recorder=new e.LoaderEventRecorder(this._loaderAvailableTimestamp):this._recorder=e.NullLoaderEventRecorder.INSTANCE),this._recorder},s.prototype.getLoaderEvents=function(){return this.getRecorder().getEvents()},s.prototype.enqueueDefineAnonymousModule=function(e,t){if(null!==this._currentAnnonymousDefineCall)throw new Error(\"Can only have one anonymous define call per script file\");var n=null;this._config.isBuild()&&(n=new Error(\"StackLocation\").stack||null),this._currentAnnonymousDefineCall={stack:n,dependencies:e,callback:t}},s.prototype.defineModule=function(e,r,i,o,s,u){var a=this;void 0===u&&(u=new t(e));var l=this._moduleIdProvider.getModuleId(e);if(this._modules2[l])this._config.isDuplicateMessageIgnoredFor(e)||console.warn(\"Duplicate definition of module '\"+e+\"'\");else{var c=new n(l,e,this._normalizeDependencies(r,u),i,o,u);this._modules2[l]=c,\nthis._config.isBuild()&&(this._buildInfoDefineStack[l]=s,this._buildInfoDependencies[l]=(c.dependencies||[]).map((function(e){return a._moduleIdProvider.getStrModuleId(e.id)}))),this._resolve(c)}},s.prototype._normalizeDependency=function(e,t){if(\"exports\"===e)return i.EXPORTS;if(\"module\"===e)return i.MODULE;if(\"require\"===e)return i.REQUIRE;var n=e.indexOf(\"!\");if(n>=0){var r=t.resolveModule(e.substr(0,n)),s=t.resolveModule(e.substr(n+1)),u=this._moduleIdProvider.getModuleId(r+\"!\"+s),a=this._moduleIdProvider.getModuleId(r);return new o(u,a,s)}return new i(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var n=[],r=0,i=0,o=e.length;i<o;i++)n[r++]=this._normalizeDependency(e[i],t);return n},s.prototype._relativeRequire=function(t,n,r,i){if(\"string\"==typeof n)return this.synchronousRequire(n,t);this.defineModule(e.Utilities.generateAnonymousModule(),n,r,i,null,t)},s.prototype.synchronousRequire=function(e,n){void 0===n&&(n=new t(e))\n;var r=this._normalizeDependency(e,n),i=this._modules2[r.id];if(!i)throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This is the first mention of this module!\");if(!i.isComplete())throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This module has not been resolved completely yet.\");if(i.error)throw i.error;return i.exports},s.prototype.configure=function(t,n){var r=this._config.shouldRecordStats();this._config=n?new e.Configuration(this._env,t):this._config.cloneAndMerge(t),this._config.shouldRecordStats()&&!r&&(this._recorder=null)},s.prototype.getConfig=function(){return this._config},s.prototype._onLoad=function(e){if(null!==this._currentAnnonymousDefineCall){var t=this._currentAnnonymousDefineCall;this._currentAnnonymousDefineCall=null,this.defineModule(this._moduleIdProvider.getStrModuleId(e),t.dependencies,t.callback,null,t.stack)}},s.prototype._createLoadError=function(t,n){\nvar r=this,i=this._moduleIdProvider.getStrModuleId(t),o=(this._inverseDependencies2[t]||[]).map((function(e){return r._moduleIdProvider.getStrModuleId(e)})),s=e.ensureError(n);return s.phase=\"loading\",s.moduleId=i,s.neededBy=o,s},s.prototype._onLoadError=function(e,t){var r=this._createLoadError(e,t);this._modules2[e]||(this._modules2[e]=new n(e,this._moduleIdProvider.getStrModuleId(e),[],(function(){}),(function(){}),null));for(var i=[],o=0,s=this._moduleIdProvider.getMaxModuleId();o<s;o++)i[o]=!1;var u=!1,a=[];for(a.push(e),i[e]=!0;a.length>0;){var l=a.shift(),c=this._modules2[l];c&&(u=c.onDependencyError(r)||u);var d=this._inverseDependencies2[l];if(d)for(o=0,s=d.length;o<s;o++){var f=d[o];i[f]||(a.push(f),i[f]=!0)}}u||this._config.onError(r)},s.prototype._hasDependencyPath=function(e,t){var n=this._modules2[e];if(!n)return!1;for(var r=[],i=0,o=this._moduleIdProvider.getMaxModuleId();i<o;i++)r[i]=!1;var s=[];for(s.push(n),r[e]=!0;s.length>0;){var u=s.shift().dependencies;if(u)for(i=0,o=u.length;i<o;i++){\nvar a=u[i];if(a.id===t)return!0;var l=this._modules2[a.id];l&&!r[a.id]&&(r[a.id]=!0,s.push(l))}}return!1},s.prototype._findCyclePath=function(e,t,n){if(e===t||50===n)return[e];var r=this._modules2[e];if(!r)return null;var i=r.dependencies;if(i)for(var o=0,s=i.length;o<s;o++){var u=this._findCyclePath(i[o].id,t,n+1);if(null!==u)return u.push(e),u}return null},s.prototype._createRequire=function(t){var n=this,r=function(e,r,i){return n._relativeRequire(t,e,r,i)};return r.toUrl=function(e){return n._config.requireToUrl(t.resolveModule(e))},r.getStats=function(){return n.getLoaderEvents()},r.__$__nodeRequire=e.global.nodeRequire,r},s.prototype._loadModule=function(e){var t=this;if(!this._modules2[e]&&!this._knownModules2[e]){this._knownModules2[e]=!0;var n=this._moduleIdProvider.getStrModuleId(e),r=this._config.moduleIdToPaths(n);this._env.isNode&&(-1===n.indexOf(\"/\")||/^@[^\\/]+\\/[^\\/]+$/.test(n))&&r.push(\"node|\"+n);var i=-1,o=function(n){if(++i>=r.length)t._onLoadError(e,n);else{var s=r[i],u=t.getRecorder()\n;if(t._config.isBuild()&&\"empty:\"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);u.record(10,s),t._scriptLoader.load(t,s,(function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),u.record(11,s),t._onLoad(e)}),(function(e){u.record(12,s),o(e)}))}};o(null)}},s.prototype._loadPluginDependency=function(e,n){var r=this;if(!this._modules2[n.id]&&!this._knownModules2[n.id]){this._knownModules2[n.id]=!0;var i=function(e){r.defineModule(r._moduleIdProvider.getStrModuleId(n.id),[],e,null,null)};i.error=function(e){r._config.onError(r._createLoadError(n.id,e))},e.load(n.pluginParam,this._createRequire(t.ROOT),i,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,n=e.dependencies;if(n)for(var r=0,s=n.length;r<s;r++){var u=n[r];if(u!==i.EXPORTS)if(u!==i.MODULE)if(u!==i.REQUIRE){var a=this._modules2[u.id];if(a&&a.isComplete()){if(a.error)return void e.onDependencyError(a.error);e.unresolvedDependenciesCount--\n}else if(this._hasDependencyPath(u.id,e.id)){console.warn(\"There is a dependency cycle between '\"+this._moduleIdProvider.getStrModuleId(u.id)+\"' and '\"+this._moduleIdProvider.getStrModuleId(e.id)+\"'. The cyclic path follows:\");var l=this._findCyclePath(u.id,e.id,0)||[];l.reverse(),l.push(u.id),console.warn(l.map((function(e){return t._moduleIdProvider.getStrModuleId(e)})).join(\" => \\n\")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[u.id]=this._inverseDependencies2[u.id]||[],this._inverseDependencies2[u.id].push(e.id),u instanceof o){var c=this._modules2[u.pluginId];if(c&&c.isComplete()){this._loadPluginDependency(c.exports,u);continue}var d=this._inversePluginDependencies2.get(u.pluginId);d||(d=[],this._inversePluginDependencies2.set(u.pluginId,d)),d.push(u),this._loadModule(u.pluginId)}else this._loadModule(u.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}\n0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,n=this.getRecorder();if(!e.isComplete()){var r=e.dependencies,o=[];if(r)for(var s=0,u=r.length;s<u;s++){var a=r[s];if(a!==i.EXPORTS)if(a!==i.MODULE)if(a!==i.REQUIRE){var l=this._modules2[a.id];o[s]=l?l.exports:null}else o[s]=this._createRequire(e.moduleIdResolver);else o[s]={id:e.strId,config:function(){return t._config.getConfigForModule(e.strId)}};else o[s]=e.exports}e.complete(n,this._config,o);var c=this._inverseDependencies2[e.id];if(this._inverseDependencies2[e.id]=null,c)for(s=0,u=c.length;s<u;s++){var d=c[s],f=this._modules2[d];f.unresolvedDependenciesCount--,0===f.unresolvedDependenciesCount&&this._onModuleComplete(f)}var h=this._inversePluginDependencies2.get(e.id);if(h){this._inversePluginDependencies2.delete(e.id);for(s=0,u=h.length;s<u;s++)this._loadPluginDependency(e.exports,h[s])}}},s}();e.ModuleManager=s}(t||(t={})),function(t){var n=new t.Environment,r=null,i=function(e,t,n){\n\"string\"!=typeof e&&(n=t,t=e,e=null),\"object\"==typeof t&&Array.isArray(t)||(n=t,t=null),t||(t=[\"require\",\"exports\",\"module\"]),e?r.defineModule(e,t,n,null,null):r.enqueueDefineAnonymousModule(t,n)};i.amd={jQuery:!0};var o=function(e,t){void 0===t&&(t=!1),r.configure(e,t)},s=function(){if(1===arguments.length){if(arguments[0]instanceof Object&&!Array.isArray(arguments[0]))return void o(arguments[0]);if(\"string\"==typeof arguments[0])return r.synchronousRequire(arguments[0])}if(2!==arguments.length&&3!==arguments.length||!Array.isArray(arguments[0]))throw new Error(\"Unrecognized require call\");r.defineModule(t.Utilities.generateAnonymousModule(),arguments[0],arguments[1],arguments[2],null)};function u(){if(void 0!==t.global.require||\"undefined\"!=typeof require){var e=t.global.require||require;if(\"function\"==typeof e&&\"function\"==typeof e.resolve){var o=function(t){r.getRecorder().record(33,t);try{return e(t)}finally{r.getRecorder().record(34,t)}};t.global.nodeRequire=o,s.nodeRequire=o,s.__$__nodeRequire=o}}\nn.isNode&&!n.isElectronRenderer?(module.exports=s,require=s):(n.isElectronRenderer||(t.global.define=i),t.global.require=s)}s.config=o,s.getConfig=function(){return r.getConfig().getOptionsLiteral()},s.reset=function(){r=r.reset()},s.getBuildInfo=function(){return r.getBuildInfo()},s.getStats=function(){return r.getLoaderEvents()},s.define=function(){return i.apply(null,arguments)},t.init=u,\"function\"==typeof t.global.define&&t.global.define.amd||(r=new t.ModuleManager(n,t.createScriptLoader(n),i,s,t.Utilities.getHighPerformanceTimestamp()),void 0!==t.global.require&&\"function\"!=typeof t.global.require&&s.config(t.global.require),(e=function(){return i.apply(null,arguments)}).amd=i.amd,\"undefined\"==typeof doNotInitLoader&&u())}(t||(t={})),e(n[13],r([0,1]),(function(e,t){\"use strict\";function n(e,t){return function e(t,n,r,i,o){if(i<=r)return;var s=r+(i-r)/2|0;e(t,n,r,s,o);e(t,n,s+1,i,o);if(n(t[s],t[s+1])<=0)return;!function(e,t,n,r,i,o){for(var s=n,u=r+1,a=n;a<=i;a++)o[a]=e[a]\n;for(a=n;a<=i;a++)s>r?e[a]=o[u++]:u>i?e[a]=o[s++]:t(o[u],o[s])<0?e[a]=o[u++]:e[a]=o[s++]}(t,n,r,s,i,o)}(e,t,0,e.length-1,[]),e}function r(e,t){for(var n=0;n<e.length;n++){if(t(e[n]))return n}return-1}Object.defineProperty(t,\"__esModule\",{value:!0}),t.tail=function(e,t){return void 0===t&&(t=0),e[e.length-(1+t)]},t.tail2=function(e){if(0===e.length)throw new Error(\"Invalid tail call\");return[e.slice(0,e.length-1),e[e.length-1]]},t.equals=function(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var r=0,i=e.length;r<i;r++)if(!n(e[r],t[r]))return!1;return!0},t.binarySearch=function(e,t,n){for(var r=0,i=e.length-1;r<=i;){var o=(r+i)/2|0,s=n(e[o],t);if(s<0)r=o+1;else{if(!(s>0))return o;i=o-1}}return-(r+1)},t.findFirstInSorted=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.mergeSort=n,t.groupBy=function(e,t){for(var r=[],i=void 0,o=0,s=n(e.slice(0),t);o<s.length;o++){\nvar u=s[o];i&&0===t(i[0],u)?i.push(u):(i=[u],r.push(i))}return r},t.coalesce=function(e){return e.filter((function(e){return!!e}))},t.isFalsyOrEmpty=function(e){return!Array.isArray(e)||0===e.length},t.isNonEmptyArray=function(e){return Array.isArray(e)&&e.length>0},t.distinct=function(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var r=t(e);return!n[r]&&(n[r]=!0,!0)}))},t.distinctES6=function(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))},t.fromSet=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.firstIndex=r,t.first=function(e,t,n){void 0===n&&(n=void 0);var i=r(e,t);return i<0?n:e[i]},t.firstOrDefault=function(e,t){return e.length>0?e[0]:t},t.flatten=function(e){var t;return(t=[]).concat.apply(t,e)},t.range=function(e,t){var n=\"number\"==typeof t?e:0;\"number\"==typeof t?n=e:(n=0,t=e);var r=[];if(n<=t)for(var i=n;i<t;i++)r.push(i);else for(i=n;i>t;i--)r.push(i);return r},\nt.arrayInsert=function(e,t,n){var r=e.slice(0,t),i=e.slice(t);return r.concat(n,i)},t.pushToStart=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.find=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(t(r,n,e))return r}},t.asArray=function(e){return Array.isArray(e)?e:[e]}})),e(n[14],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();t.DiffChange=n})),e(n[3],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){\nif(e.stack)throw new Error(e.message+\"\\n\\n\"+e.stack);throw e}),0)}}return e.prototype.emit=function(e){this.listeners.forEach((function(t){t(e)}))},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}();t.ErrorHandler=n,t.errorHandler=new n,t.onUnexpectedError=function(e){i(e)||t.errorHandler.onUnexpectedError(e)},t.onUnexpectedExternalError=function(e){i(e)||t.errorHandler.onUnexpectedExternalError(e)},t.transformErrorForSerialization=function(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e};var r=\"Canceled\";function i(e){return e instanceof Error&&e.name===r&&e.message===r}t.isPromiseCanceledError=i,t.canceled=function(){var e=new Error(r);return e.name=e.message,e},t.illegalArgument=function(e){return e?new Error(\"Illegal argument: \"+e):new Error(\"Illegal argument\")},t.illegalState=function(e){\nreturn e?new Error(\"Illegal state: \"+e):new Error(\"Illegal state\")}})),e(n[15],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.once=function(e){var t,n=this,r=!1;return function(){return r?t:(r=!0,t=e.apply(n,arguments))}}})),e(n[16],r([0,1]),(function(e,t){\"use strict\";function n(e,t){switch(void 0===t&&(t=0),typeof e){case\"object\":return null===e?r(349,t):Array.isArray(e)?(o=e,s=r(104579,s=t),o.reduce((function(e,t){return n(t,e)}),s)):function(e,t){return t=r(181387,t),Object.keys(e).sort().reduce((function(t,r){return t=i(r,t),n(e[r],t)}),t)}(e,t);case\"string\":return i(e,t);case\"boolean\":return function(e,t){return r(e?433:863,t)}(e,t);case\"number\":return r(e,t);case\"undefined\":return r(0,937);default:return r(0,617)}var o,s}function r(e,t){return(t<<5)-t+e|0}function i(e,t){t=r(149417,t);for(var n=0,i=e.length;n<i;n++)t=r(e.charCodeAt(n),t);return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hash=n,t.stringHash=i})),e(n[6],r([0,1,14,16]),(function(e,t,n,r){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.source=e}return e.prototype.getElements=function(){for(var e=this.source,t=new Int32Array(e.length),n=0,r=e.length;n<r;n++)t[n]=e.charCodeAt(n);return t},e}();t.StringDiffSequence=i,t.stringDiff=function(e,t,n){return new a(new i(e),new i(t)).ComputeDiff(n).changes};var o=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}();t.Debug=o;var s=function(){function e(){}return e.Copy=function(e,t,n,r,i){for(var o=0;o<i;o++)n[r+o]=e[t+o]},e.Copy2=function(e,t,n,r,i){for(var o=0;o<i;o++)n[r+o]=e[t+o]},e}();t.MyArray=s;var u=function(){function e(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return e.prototype.MarkNextChange=function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),\nthis.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),a=function(){function e(t,n,r){void 0===r&&(r=null),this.ContinueProcessingPredicate=r;var i=e._getElements(t),o=i[0],s=i[1],u=i[2],a=e._getElements(n),l=a[0],c=a[1],d=a[2];this._hasStrings=u&&d,this._originalStringElements=o,this._originalElementsOrHash=s,\nthis._modifiedStringElements=l,this._modifiedElementsOrHash=c,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e._isStringArray=function(e){return e.length>0&&\"string\"==typeof e[0]},e._getElements=function(t){var n=t.getElements();if(e._isStringArray(n)){for(var i=new Int32Array(n.length),o=0,s=n.length;o<s;o++)i[o]=r.stringHash(n[o],0);return[n,i,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]},e.prototype.ElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])},e.prototype.OriginalElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])},e.prototype.ModifiedElementsAreEqual=function(e,t){\nreturn this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)},e.prototype._ComputeDiff=function(e,t,n,r,i){var o=[!1],s=this.ComputeDiffRecursive(e,t,n,r,o);return i&&(s=this.PrettifyChanges(s)),{quitEarly:o[0],changes:s}},e.prototype.ComputeDiffRecursive=function(e,t,r,i,s){for(s[0]=!1;e<=t&&r<=i&&this.ElementsAreEqual(e,r);)e++,r++;for(;t>=e&&i>=r&&this.ElementsAreEqual(t,i);)t--,i--;if(e>t||r>i){var u=void 0;return r<=i?(o.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),u=[new n.DiffChange(e,0,r,i-r+1)]):e<=t?(o.Assert(r===i+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[new n.DiffChange(e,t-e+1,r,0)]):(o.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),\no.Assert(r===i+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[]),u}var a=[0],l=[0],c=this.ComputeRecursionPoint(e,t,r,i,a,l,s),d=a[0],f=l[0];if(null!==c)return c;if(!s[0]){var h=this.ComputeDiffRecursive(e,d,r,f,s),p=[];return p=s[0]?[new n.DiffChange(d+1,t-(d+1)+1,f+1,i-(f+1)+1)]:this.ComputeDiffRecursive(d+1,t,f+1,i,s),this.ConcatenateChanges(h,p)}return[new n.DiffChange(e,t-e+1,r,i-r+1)]},e.prototype.WALKTRACE=function(e,t,r,i,o,s,a,l,c,d,f,h,p,m,g,v,_,y){var b,C=null,E=new u,S=t,L=r,N=p[0]-v[0]-i,M=-1073741824,w=this.m_forwardHistory.length-1;do{(P=N+e)===S||P<L&&c[P-1]<c[P+1]?(m=(f=c[P+1])-N-i,f<M&&E.MarkNextChange(),M=f,E.AddModifiedElement(f+1,m),N=P+1-e):(m=(f=c[P-1]+1)-N-i,f<M&&E.MarkNextChange(),M=f-1,E.AddOriginalElement(f,m+1),N=P-1-e),w>=0&&(e=(c=this.m_forwardHistory[w])[0],S=1,L=c.length-1)}while(--w>=-1);if(b=E.getReverseChanges(),y[0]){var A=p[0]+1,I=v[0]+1;if(null!==b&&b.length>0){var D=b[b.length-1];A=Math.max(A,D.getOriginalEnd()),I=Math.max(I,D.getModifiedEnd())}\nC=[new n.DiffChange(A,h-A+1,I,g-I+1)]}else{E=new u,S=s,L=a,N=p[0]-v[0]-l,M=1073741824,w=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var P;(P=N+o)===S||P<L&&d[P-1]>=d[P+1]?(m=(f=d[P+1]-1)-N-l,f>M&&E.MarkNextChange(),M=f+1,E.AddOriginalElement(f+1,m+1),N=P+1-o):(m=(f=d[P-1])-N-l,f>M&&E.MarkNextChange(),M=f,E.AddModifiedElement(f+1,m+1),N=P-1-o),w>=0&&(o=(d=this.m_reverseHistory[w])[0],S=1,L=d.length-1)}while(--w>=-1);C=E.getChanges()}return this.ConcatenateChanges(b,C)},e.prototype.ComputeRecursionPoint=function(e,t,r,i,o,u,a){var l=0,c=0,d=0,f=0,h=0,p=0;e--,r--,o[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var m=t-e+(i-r),g=m+1,v=new Int32Array(g),_=new Int32Array(g),y=i-r,b=t-e,C=e-r,E=t-i,S=(b-y)%2==0;v[y]=e,_[b]=t,a[0]=!1;for(var L=1;L<=m/2+1;L++){var N=0,M=0;d=this.ClipDiagonalBound(y-L,L,y,g),f=this.ClipDiagonalBound(y+L,L,y,g);for(var w=d;w<=f;w+=2){c=(l=w===d||w<f&&v[w-1]<v[w+1]?v[w+1]:v[w-1]+1)-(w-y)-C;for(var A=l;l<t&&c<i&&this.ElementsAreEqual(l+1,c+1);)l++,\nc++;if(v[w]=l,l+c>N+M&&(N=l,M=c),!S&&Math.abs(w-b)<=L-1&&l>=_[w])return o[0]=l,u[0]=c,A<=_[w]&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):null}var I=(N-e+(M-r)-L)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(N,I))return a[0]=!0,o[0]=N,u[0]=M,I>0&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):(e++,r++,[new n.DiffChange(e,t-e+1,r,i-r+1)]);h=this.ClipDiagonalBound(b-L,L,b,g),p=this.ClipDiagonalBound(b+L,L,b,g);for(w=h;w<=p;w+=2){c=(l=w===h||w<p&&_[w-1]>=_[w+1]?_[w+1]-1:_[w-1])-(w-b)-E;for(A=l;l>e&&c>r&&this.ElementsAreEqual(l,c);)l--,c--;if(_[w]=l,S&&Math.abs(w-y)<=L&&l<=v[w])return o[0]=l,u[0]=c,A>=v[w]&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):null}if(L<=1447){var D=new Int32Array(f-d+2);D[0]=y-d+1,s.Copy2(v,d,D,1,f-d+1),this.m_forwardHistory.push(D),(D=new Int32Array(p-h+2))[0]=b-h+1,s.Copy2(_,h,D,1,p-h+1),this.m_reverseHistory.push(D)}}return this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a)},\ne.prototype.PrettifyChanges=function(e){for(var t=0;t<e.length;t++){for(var n=e[t],r=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,i=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,o=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<r&&n.modifiedStart+n.modifiedLength<i&&(!o||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var u=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],u)&&(e[t]=u[0],e.splice(t+1,1),t--)}for(t=e.length-1;t>=0;t--){n=e[t],r=0,i=0;if(t>0){var a=e[t-1];a.originalLength>0&&(r=a.originalStart+a.originalLength),a.modifiedLength>0&&(i=a.modifiedStart+a.modifiedLength)}o=n.originalLength>0,s=n.modifiedLength>0;for(var l=0,c=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength),d=1;;d++){var f=n.originalStart-d,h=n.modifiedStart-d\n;if(f<r||h<i)break;if(o&&!this.OriginalElementsAreEqual(f,f+n.originalLength))break;if(s&&!this.ModifiedElementsAreEqual(h,h+n.modifiedLength))break;var p=this._boundaryScore(f,n.originalLength,h,n.modifiedLength);p>c&&(c=p,l=d)}n.originalStart-=l,n.modifiedStart-=l}return e},e.prototype._OriginalIsBoundary=function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._originalStringElements[e])},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._modifiedStringElements[e])},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t\n;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,r){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,r)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var r=new Array(e.length+t.length-1);return s.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],s.Copy(t,1,r,e.length,t.length-1),r}r=new Array(e.length+t.length);return s.Copy(e,0,r,0,e.length),s.Copy(t,0,r,e.length,t.length),r},e.prototype.ChangesOverlap=function(e,t,r){if(o.Assert(e.originalStart<=t.originalStart,\"Left change is not less than or equal to right change\"),o.Assert(e.modifiedStart<=t.modifiedStart,\"Left change is not less than or equal to right change\"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,s=e.originalLength,u=e.modifiedStart,a=e.modifiedLength\n;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new n.DiffChange(i,s,u,a),!0}return r[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,r){if(e>=0&&e<r)return e;var i=t%2==0;return e<0?i===(n%2==0)?0:1:i===((r-n-1)%2==0)?r-1:r-2},e}();t.LcsDiff=a}));var s,u,a=this&&this.__extends||(s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});e(n[7],r([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FIN={done:!0,value:void 0},function(e){var n={next:function(){return t.FIN}};e.empty=function(){return n},e.single=function(e){var n=!1;return{\nnext:function(){return n?t.FIN:(n=!0,{done:!1,value:e})}}},e.fromArray=function(e,n,r){return void 0===n&&(n=0),void 0===r&&(r=e.length),{next:function(){return n>=r?t.FIN:{done:!1,value:e[n++]}}}},e.fromNativeIterator=function(e){return{next:function(){var n=e.next();return n.done?t.FIN:{done:!1,value:n.value}}}},e.from=function(t){return t?Array.isArray(t)?e.fromArray(t):t:e.empty()},e.map=function(e,n){return{next:function(){var r=e.next();return r.done?t.FIN:{done:!1,value:n(r.value)}}}},e.filter=function(e,n){return{next:function(){for(;;){var r=e.next();if(r.done)return t.FIN;if(n(r.value))return{done:!1,value:r.value}}}}},e.forEach=function(e,t){for(var n=e.next();!n.done;n=e.next())t(n.value)},e.collect=function(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY);var n=[];if(0===t)return n;for(var r=0,i=e.next();!i.done&&(n.push(i.value),!(++r>=t));i=e.next());return n},e.concat=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var r=0;return{next:function(){if(r>=e.length)return t.FIN\n;var n=e[r].next();return n.done?(r++,this.next()):n}}},e.chain=function(e){return new r(e)}}(n=t.Iterator||(t.Iterator={}));var r=function(){function e(e){this.it=e}return e.prototype.next=function(){return this.it.next()},e}();t.ChainableIterator=r,t.getSequenceIterator=function(e){return Array.isArray(e)?n.fromArray(e):e||n.empty()};var i=function(){function e(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=e.length),void 0===r&&(r=t-1),this.items=e,this.start=t,this.end=n,this.index=r}return e.prototype.first=function(){return this.index=this.start,this.current()},e.prototype.next=function(){return this.index=Math.min(this.index+1,this.end),this.current()},e.prototype.current=function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]},e}();t.ArrayIterator=i;var o=function(e){function t(t,n,r,i){return void 0===n&&(n=0),void 0===r&&(r=t.length),void 0===i&&(i=n-1),e.call(this,t,n,r,i)||this}return a(t,e),t.prototype.current=function(){return e.prototype.current.call(this)},\nt.prototype.previous=function(){return this.index=Math.max(this.index-1,this.start-1),this.current()},t.prototype.first=function(){return this.index=this.start,this.current()},t.prototype.last=function(){return this.index=this.end-1,this.current()},t.prototype.parent=function(){return null},t}(i);t.ArrayNavigator=o;var s=function(){function e(e,t){this.iterator=e,this.fn=t}return e.prototype.next=function(){return this.fn(this.iterator.next())},e}();t.MappedIterator=s})),e(n[17],r([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},e.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),i=new r,o=new r,s=new r;function u(e,t){var n=!!(2048&e),r=!!(256&e)\n;return new a(2===t?r:n,!!(1024&e),!!(512&e),2===t?n:r,255&e)}!function(){function e(e,t,n,r){void 0===n&&(n=t),void 0===r&&(r=n),i.define(e,t),o.define(e,n),s.define(e,r)}e(0,\"unknown\"),e(1,\"Backspace\"),e(2,\"Tab\"),e(3,\"Enter\"),e(4,\"Shift\"),e(5,\"Ctrl\"),e(6,\"Alt\"),e(7,\"PauseBreak\"),e(8,\"CapsLock\"),e(9,\"Escape\"),e(10,\"Space\"),e(11,\"PageUp\"),e(12,\"PageDown\"),e(13,\"End\"),e(14,\"Home\"),e(15,\"LeftArrow\",\"Left\"),e(16,\"UpArrow\",\"Up\"),e(17,\"RightArrow\",\"Right\"),e(18,\"DownArrow\",\"Down\"),e(19,\"Insert\"),e(20,\"Delete\"),e(21,\"0\"),e(22,\"1\"),e(23,\"2\"),e(24,\"3\"),e(25,\"4\"),e(26,\"5\"),e(27,\"6\"),e(28,\"7\"),e(29,\"8\"),e(30,\"9\"),e(31,\"A\"),e(32,\"B\"),e(33,\"C\"),e(34,\"D\"),e(35,\"E\"),e(36,\"F\"),e(37,\"G\"),e(38,\"H\"),e(39,\"I\"),e(40,\"J\"),e(41,\"K\"),e(42,\"L\"),e(43,\"M\"),e(44,\"N\"),e(45,\"O\"),e(46,\"P\"),e(47,\"Q\"),e(48,\"R\"),e(49,\"S\"),e(50,\"T\"),e(51,\"U\"),e(52,\"V\"),e(53,\"W\"),e(54,\"X\"),e(55,\"Y\"),e(56,\"Z\"),e(57,\"Meta\"),e(58,\"ContextMenu\"),e(59,\"F1\"),e(60,\"F2\"),e(61,\"F3\"),e(62,\"F4\"),e(63,\"F5\"),e(64,\"F6\"),e(65,\"F7\"),e(66,\"F8\"),e(67,\"F9\"),e(68,\"F10\"),\ne(69,\"F11\"),e(70,\"F12\"),e(71,\"F13\"),e(72,\"F14\"),e(73,\"F15\"),e(74,\"F16\"),e(75,\"F17\"),e(76,\"F18\"),e(77,\"F19\"),e(78,\"NumLock\"),e(79,\"ScrollLock\"),e(80,\";\",\";\",\"OEM_1\"),e(81,\"=\",\"=\",\"OEM_PLUS\"),e(82,\",\",\",\",\"OEM_COMMA\"),e(83,\"-\",\"-\",\"OEM_MINUS\"),e(84,\".\",\".\",\"OEM_PERIOD\"),e(85,\"/\",\"/\",\"OEM_2\"),e(86,\"`\",\"`\",\"OEM_3\"),e(110,\"ABNT_C1\"),e(111,\"ABNT_C2\"),e(87,\"[\",\"[\",\"OEM_4\"),e(88,\"\\\\\",\"\\\\\",\"OEM_5\"),e(89,\"]\",\"]\",\"OEM_6\"),e(90,\"'\",\"'\",\"OEM_7\"),e(91,\"OEM_8\"),e(92,\"OEM_102\"),e(93,\"NumPad0\"),e(94,\"NumPad1\"),e(95,\"NumPad2\"),e(96,\"NumPad3\"),e(97,\"NumPad4\"),e(98,\"NumPad5\"),e(99,\"NumPad6\"),e(100,\"NumPad7\"),e(101,\"NumPad8\"),e(102,\"NumPad9\"),e(103,\"NumPad_Multiply\"),e(104,\"NumPad_Add\"),e(105,\"NumPad_Separator\"),e(106,\"NumPad_Subtract\"),e(107,\"NumPad_Decimal\"),e(108,\"NumPad_Divide\")}(),function(e){e.toString=function(e){return i.keyCodeToStr(e)},e.fromString=function(e){return i.strToKeyCode(e)},e.toUserSettingsUS=function(e){return o.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return s.keyCodeToStr(e)},\ne.fromUserSettings=function(e){return o.strToKeyCode(e)||s.strToKeyCode(e)}}(t.KeyCodeUtils||(t.KeyCodeUtils={})),t.KeyChord=function(e,t){return(e|(65535&t)<<16>>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;var n=(65535&e)>>>0,r=(4294901760&e)>>>16;return new l(0!==r?[u(n,t),u(r,t)]:[u(n,t)])},t.createSimpleKeybinding=u;var a=function(){function e(e,t,n,r,i){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}return e.prototype.equals=function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.toChord=function(){return new l([this])},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}()\n;t.SimpleKeybinding=a;var l=function(){function e(e){if(0===e.length)throw n.illegalArgument(\"parts\");this.parts=e}return e.prototype.equals=function(e){if(null===e)return!1;if(this.parts.length!==e.parts.length)return!1;for(var t=0;t<this.parts.length;t++)if(!this.parts[t].equals(e.parts[t]))return!1;return!0},e}();t.ChordKeybinding=l;var c=function(e,t,n,r,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyLabel=i,this.keyAriaLabel=o};t.ResolvedKeybindingPart=c;var d=function(){};t.ResolvedKeybinding=d})),e(n[8],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,r=\"__is_disposable_tracked__\";function i(e){if(n&&e&&e!==a.None)try{e[r]=!0}catch(e){}}function o(e){if(!n)return e;var t=new Error(\"Potentially leaked disposable\").stack;return setTimeout((function(){e[r]||console.log(t)}),3e3),e}function s(e){return Array.isArray(e)?(e.forEach((function(e){e&&(i(e),e.dispose())})),[]):e?(i(e),e.dispose(),e):void 0}t.isDisposable=function(e){\nreturn\"function\"==typeof e.dispose&&0===e.dispose.length},t.dispose=s,t.combinedDisposable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.forEach(i),o({dispose:function(){return s(e)}})},t.toDisposable=function(e){var t=o({dispose:function(){i(t),e()}});return t};var u=function(){function e(){this._toDispose=new Set,this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed||(i(this),this._isDisposed=!0,this.clear())},e.prototype.clear=function(){this._toDispose.forEach((function(e){return e.dispose()})),this._toDispose.clear()},e.prototype.add=function(e){if(!e)return e;if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return i(e),this._isDisposed?console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(e),e},e}();t.DisposableStore=u;var a=function(){function e(){this._store=new u,o(this)}return e.prototype.dispose=function(){\ni(this),this._store.dispose()},e.prototype._register=function(e){if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(e)},e.None=Object.freeze({dispose:function(){}}),e}();t.Disposable=a;var l=function(){function e(){this._isDisposed=!1,o(this)}return Object.defineProperty(e.prototype,\"value\",{get:function(){return this._isDisposed?void 0:this._value},set:function(e){this._isDisposed||e===this._value||(this._value&&this._value.dispose(),e&&i(e),this._value=e)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this.value=void 0},e.prototype.dispose=function(){this._isDisposed=!0,i(this),this._value&&this._value.dispose(),this._value=void 0},e}();t.MutableDisposable=l;var c=function(){function e(e){this.object=e}return e.prototype.dispose=function(){},e}();t.ImmortalReference=c})),e(n[18],r([0,1,7]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){this.element=t,this.next=e.Undefined,\nthis.prev=e.Undefined}return e.Undefined=new e(void 0),e}(),i=function(){function e(){this._first=r.Undefined,this._last=r.Undefined,this._size=0}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return this._first===r.Undefined},e.prototype.clear=function(){this._first=r.Undefined,this._last=r.Undefined,this._size=0},e.prototype.unshift=function(e){return this._insert(e,!1)},e.prototype.push=function(e){return this._insert(e,!0)},e.prototype._insert=function(e,t){var n=this,i=new r(e);if(this._first===r.Undefined)this._first=i,this._last=i;else if(t){var o=this._last;this._last=i,i.prev=o,o.next=i}else{var s=this._first;this._first=i,i.next=s,s.prev=i}this._size+=1;var u=!1;return function(){u||(u=!0,n._remove(i))}},e.prototype.shift=function(){if(this._first!==r.Undefined){var e=this._first.element;return this._remove(this._first),e}},e.prototype.pop=function(){if(this._last!==r.Undefined){\nvar e=this._last.element;return this._remove(this._last),e}},e.prototype._remove=function(e){if(e.prev!==r.Undefined&&e.next!==r.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===r.Undefined&&e.next===r.Undefined?(this._first=r.Undefined,this._last=r.Undefined):e.next===r.Undefined?(this._last=this._last.prev,this._last.next=r.Undefined):e.prev===r.Undefined&&(this._first=this._first.next,this._first.prev=r.Undefined);this._size-=1},e.prototype.iterator=function(){var e,t=this._first;return{next:function(){return t===r.Undefined?n.FIN:(e?e.value=t.element:e={done:!1,value:t.element},t=t.next,e)}}},e.prototype.toArray=function(){for(var e=[],t=this._first;t!==r.Undefined;t=t.next)e.push(t.element);return e},e}();t.LinkedList=i})),e(n[9],r([0,1,3,15,8,18]),(function(e,t,n,r,i,o){\"use strict\";var s;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e){return function(t,n,r){void 0===n&&(n=null);var i,o=!1;return i=e((function(e){if(!o)return i?i.dispose():o=!0,t.call(n,e)\n}),null,r),o&&i.dispose(),i}}function n(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){return n.call(r,t(e))}),null,i)}))}function r(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){t(e),n.call(r,e)}),null,i)}))}function o(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){return t(e)&&n.call(r,e)}),null,i)}))}function s(e,t,r){var i=r;return n(e,(function(e){return i=t(i,e)}))}function u(e){var t,n=new c({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function a(e,t,n,r,i){var o;void 0===n&&(n=100),void 0===r&&(r=!1);var s=void 0,u=void 0,a=0,l=new c({leakWarningThreshold:i,onFirstListenerAdd:function(){o=e((function(e){a++,s=t(s,e),r&&!u&&(l.fire(s),s=void 0),clearTimeout(u),u=setTimeout((function(){var e=s;s=void 0,u=void 0,(!r||a>1)&&l.fire(e),a=0}),n)}))},onLastListenerRemove:function(){o.dispose()}});return l.event}function l(e){var t,n=!0;return o(e,(function(e){\nvar r=n||e!==t;return n=!1,t=e,r}))}e.None=function(){return i.Disposable.None},e.once=t,e.map=n,e.forEach=r,e.filter=o,e.signal=function(e){return e},e.any=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n,r){return void 0===n&&(n=null),i.combinedDisposable.apply(void 0,e.map((function(e){return e((function(e){return t.call(n,e)}),null,r)})))}},e.reduce=s,e.snapshot=u,e.debounce=a,e.stopwatch=function(e){var r=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-r}))},e.latch=l,e.buffer=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=[]);var r=n.slice(),i=e((function(e){r?r.push(e):s.fire(e)})),o=function(){r&&r.forEach((function(e){return s.fire(e)})),r=null},s=new c({onFirstListenerAdd:function(){i||(i=e((function(e){return s.fire(e)})))},onFirstListenerDidAdd:function(){r&&(t?setTimeout(o):o())},onLastListenerRemove:function(){i&&i.dispose(),i=null}});return s.event};var d=function(){function e(e){this.event=e}\nreturn e.prototype.map=function(t){return new e(n(this.event,t))},e.prototype.forEach=function(t){return new e(r(this.event,t))},e.prototype.filter=function(t){return new e(o(this.event,t))},e.prototype.reduce=function(t,n){return new e(s(this.event,t,n))},e.prototype.latch=function(){return new e(l(this.event))},e.prototype.debounce=function(t,n,r,i){return void 0===n&&(n=100),void 0===r&&(r=!1),new e(a(this.event,t,n,r,i))},e.prototype.on=function(e,t,n){return this.event(e,t,n)},e.prototype.once=function(e,n,r){return t(this.event)(e,n,r)},e}();e.chain=function(e){return new d(e)},e.fromNodeEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var r=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return i.fire(n.apply(void 0,e))},i=new c({onFirstListenerAdd:function(){return e.on(t,r)},onLastListenerRemove:function(){return e.removeListener(t,r)}});return i.event},e.fromDOMEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var r=function(){\nfor(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return i.fire(n.apply(void 0,e))},i=new c({onFirstListenerAdd:function(){return e.addEventListener(t,r)},onLastListenerRemove:function(){return e.removeEventListener(t,r)}});return i.event},e.fromPromise=function(e){var t=new c,n=!1;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(s=t.Event||(t.Event={}));var u=-1,l=function(){function e(e,t){void 0===t&&(t=Math.random().toString(18).slice(2,5)),this.customThreshold=e,this.name=t,this._warnCountdown=0}return e.prototype.dispose=function(){this._stacks&&this._stacks.clear()},e.prototype.check=function(e){var t=this,n=u;if(\"number\"==typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var r=(new Error).stack.split(\"\\n\").slice(3).join(\"\\n\"),i=this._stacks.get(r)||0\n;if(this._stacks.set(r,i+1),this._warnCountdown-=1,this._warnCountdown<=0){var o;this._warnCountdown=.5*n;var s=0;this._stacks.forEach((function(e,t){(!o||s<e)&&(o=t,s=e)})),console.warn(\"[\"+this.name+\"] potential listener LEAK detected, having \"+e+\" listeners already. MOST frequent listener (\"+s+\"):\"),console.warn(o)}return function(){var e=t._stacks.get(r)||0;t._stacks.set(r,e-1)}}},e}(),c=function(){function e(e){this._disposed=!1,this._options=e,this._leakageMon=u>0?new l(this._options&&this._options.leakWarningThreshold):void 0}return Object.defineProperty(e.prototype,\"event\",{get:function(){var t=this;return this._event||(this._event=function(n,r,s){t._listeners||(t._listeners=new o.LinkedList);var u=t._listeners.isEmpty();u&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var a,l,c=t._listeners.push(r?[n,r]:n);return u&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),\nt._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,r),t._leakageMon&&(a=t._leakageMon.check(t._listeners.size)),l={dispose:function(){(a&&a(),l.dispose=e._noop,t._disposed)||(c(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},s instanceof i.DisposableStore?s.add(l):Array.isArray(s)&&s.push(l),l}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new o.LinkedList);for(var t=this._listeners.iterator(),r=t.next();!r.done;r=t.next())this._deliveryQueue.push([r.value,e]);for(;this._deliveryQueue.size>0;){var i=this._deliveryQueue.shift(),s=i[0],u=i[1];try{\"function\"==typeof s?s.call(void 0,u):s[0].call(s[1],u)}catch(r){n.onUnexpectedError(r)}}}},e.prototype.dispose=function(){this._listeners&&this._listeners.clear(),this._deliveryQueue&&this._deliveryQueue.clear(),this._leakageMon&&this._leakageMon.dispose(),this._disposed=!0},\ne._noop=function(){},e}();t.Emitter=c;var d=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaused=0,n._eventQueue=new o.LinkedList,n._mergeFn=t&&t.merge,n}return a(t,e),t.prototype.pause=function(){this._isPaused++},t.prototype.resume=function(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){var t=this._eventQueue.toArray();this._eventQueue.clear(),e.prototype.fire.call(this,this._mergeFn(t))}else for(;!this._isPaused&&0!==this._eventQueue.size;)e.prototype.fire.call(this,this._eventQueue.shift())},t.prototype.fire=function(t){this._listeners&&(0!==this._isPaused?this._eventQueue.push(t):e.prototype.fire.call(this,t))},t}(c);t.PauseableEmitter=d;var f=function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new c({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}return Object.defineProperty(e.prototype,\"event\",{get:function(){return this.emitter.event},enumerable:!0,\nconfigurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};this.events.push(n),this.hasListeners&&this.hook(n);return i.toDisposable(r.once((function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)})))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,this.events.forEach((function(t){return e.hook(t)}))},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach((function(t){return e.unhook(t)}))},e.prototype.hook=function(e){var t=this;e.listener=e.event((function(e){return t.emitter.fire(e)}))},e.prototype.unhook=function(e){e.listener&&e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()},e}();t.EventMultiplexer=f;var h=function(){function e(){this.buffers=[]}return e.prototype.wrapEvent=function(e){var t=this;return function(n,r,i){return e((function(e){var i=t.buffers[t.buffers.length-1];i?i.push((function(){return n.call(r,e)})):n.call(r,e)}),void 0,i)\n}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n},e}();t.EventBufferer=h;var p=function(){function e(){var e=this;this.listening=!1,this.inputEvent=s.None,this.inputEventListener=i.Disposable.None,this.emitter=new c({onFirstListenerDidAdd:function(){e.listening=!0,e.inputEventListener=e.inputEvent(e.emitter.fire,e.emitter)},onLastListenerRemove:function(){e.listening=!1,e.inputEventListener.dispose()}}),this.event=this.emitter.event}return Object.defineProperty(e.prototype,\"input\",{set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.inputEventListener.dispose(),this.emitter.dispose()},e}();t.Relay=p})),e(n[19],r([0,1,9]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r,i=Object.freeze((function(e,t){\nvar n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof o||!(!t||\"object\"!=typeof t)&&(\"boolean\"==typeof t.isCancellationRequested&&\"function\"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i})}(r=t.CancellationToken||(t.CancellationToken={}));var o=function(){function e(){this._isCancelled=!1,this._emitter=null}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))},Object.defineProperty(e.prototype,\"isCancellationRequested\",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onCancellationRequested\",{get:function(){return this._isCancelled?i:(this._emitter||(this._emitter=new n.Emitter),\nthis._emitter.event)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)},e}(),s=function(){function e(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}return Object.defineProperty(e.prototype,\"token\",{get:function(){return this._token||(this._token=new o),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token instanceof o&&this._token.cancel():this._token=r.Cancelled},e.prototype.dispose=function(e){void 0===e&&(e=!1),e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof o&&this._token.dispose():this._token=r.None},e}();t.CancellationTokenSource=s})),e(n[4],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var n=!1,r=!1,i=!1,o=!1,s=!1,u=!1,a=void 0,l=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type;if(\"object\"!=typeof navigator||l){if(\"object\"==typeof process){n=\"win32\"===process.platform,r=\"darwin\"===process.platform,i=\"linux\"===process.platform,\"en\",\"en\";var c=process.env.VSCODE_NLS_CONFIG;if(c)try{var d=JSON.parse(c),f=d.availableLanguages[\"*\"];d.locale,f||\"en\",d._translationsConfigFile}catch(e){}o=!0}}else n=(a=navigator.userAgent).indexOf(\"Windows\")>=0,r=a.indexOf(\"Macintosh\")>=0,u=a.indexOf(\"Macintosh\")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,i=a.indexOf(\"Linux\")>=0,s=!0,navigator.language;t.isWindows=n,t.isMacintosh=r,t.isLinux=i,t.isNative=o,t.isWeb=s,t.isIOS=u;var h=\"object\"==typeof self?self:\"object\"==typeof global?global:{};t.globals=h,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals);if(\"function\"==typeof t.globals.postMessage&&!t.globals.importScripts){var e=[]\n;t.globals.addEventListener(\"message\",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void i.callback()}}));var n=0;return function(r){var i=++n;e.push({id:i,callback:r}),t.globals.postMessage({vscodeSetImmediateId:i},\"*\")}}if(\"undefined\"!=typeof process&&\"function\"==typeof process.nextTick)return process.nextTick.bind(process);var r=Promise.resolve();return function(e){return r.then(e)}}(),t.OS=r?2:n?1:3})),e(n[20],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFalsyOrWhitespace=function(e){return!e||\"string\"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n=\"0\");for(var r=\"\"+e,i=[r],o=r.length;o<t;o++)i.push(n);return i.reverse().join(\"\")};var n=/{(\\d+)}/g;function r(e){return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g,\"\\\\$&\")}function i(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e\n;for(var r=0;e.indexOf(t,r)===r;)r+=n;return e.substring(r)}function o(e,t){if(!e||!t)return e;var n=t.length,r=e.length;if(0===n||0===r)return e;for(var i=r,o=-1;-1!==(o=e.lastIndexOf(t,i-1))&&o+n===i;){if(0===o)return\"\";i=o}return e.substring(0,i)}function s(e,t){return e<t?-1:e>t?1:0}function u(e){return e>=97&&e<=122}function a(e){return e>=65&&e<=90}function l(e){return u(e)||a(e)}function c(e,t,n){void 0===n&&(n=e.length);for(var r=0;r<n;r++){var i=e.charCodeAt(r),o=t.charCodeAt(r);if(i!==o)if(l(i)&&l(o)){var s=Math.abs(i-o);if(0!==s&&32!==s)return!1}else if(String.fromCharCode(i).toLowerCase()!==String.fromCharCode(o).toLowerCase())return!1}return!0}function d(e){return 55296<=e&&e<=56319}function f(e){return 56320<=e&&e<=57343}function h(e,t,n){var r=e.charCodeAt(n);if(d(r)&&n+1<t){var i=e.charCodeAt(n+1);if(f(i))return i-56320+(r-55296<<10)+65536}return r}function p(e,t){var n=e.charCodeAt(t-1);if(f(n)&&t>1){var r=e.charCodeAt(t-2);if(d(r))return n-56320+(r-55296<<10)+65536}return n}\nt.format=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return 0===t.length?e:e.replace(n,(function(e,n){var r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case\"&\":return\"&amp;\";default:return e}}))},t.escapeRegExpCharacters=r,t.trim=function(e,t){return void 0===t&&(t=\" \"),o(i(e,t),t)},t.ltrim=i,t.rtrim=o,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.startsWith=function(e,t){if(e.length<t.length)return!1;if(e===t)return!0;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.indexOf(t,n)===n:0===n&&e===t},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error(\"Cannot create regex from empty string\");t||(e=r(e)),n.wholeWord&&(/\\B/.test(e.charAt(0))||(e=\"\\\\b\"+e),\n/\\B/.test(e.charAt(e.length-1))||(e+=\"\\\\b\"));var i=\"\";return n.global&&(i+=\"g\"),n.matchCase||(i+=\"i\"),n.multiline&&(i+=\"m\"),n.unicode&&(i+=\"u\"),new RegExp(e,i)},t.regExpLeadsToEndlessLoop=function(e){return\"^\"!==e.source&&\"^$\"!==e.source&&\"$\"!==e.source&&\"^\\\\s*$\"!==e.source&&!(!e.exec(\"\")||0!==e.lastIndex)},t.regExpFlags=function(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\")},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t<n;t++){var r=e.charCodeAt(t);if(32!==r&&9!==r)return t}return-1},t.getLeadingWhitespace=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length);for(var r=t;r<n;r++){var i=e.charCodeAt(r);if(32!==i&&9!==i)return e.substring(t,r)}return e.substring(t,n)},t.lastNonWhitespaceIndex=function(e,t){void 0===t&&(t=e.length-1);for(var n=t;n>=0;n--){var r=e.charCodeAt(n);if(32!==r&&9!==r)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++){var i=e.charCodeAt(r),o=t.charCodeAt(r)\n;if(i!==o){a(i)&&(i+=32),a(o)&&(o+=32);var l=i-o;if(0!==l)return u(i)&&u(o)?l:s(e.toLowerCase(),t.toLowerCase())}}return e.length<t.length?-1:e.length>t.length?1:0},t.isLowerAsciiLetter=u,t.isUpperAsciiLetter=a,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&c(e,t)},t.startsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&c(e,t,n)},t.commonPrefixLength=function(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return r},t.commonSuffixLength=function(e,t){var n,r=Math.min(e.length,t.length),i=e.length-1,o=t.length-1;for(n=0;n<r;n++)if(e.charCodeAt(i-n)!==t.charCodeAt(o-n))return n;return r},t.isHighSurrogate=d,t.isLowSurrogate=f,t.getNextCodePoint=h,t.nextCharLength=function(e,t){var n=b.getInstance(),r=t,i=e.length,o=h(e,i,t);t+=o>=65536?2:1;for(var s=n.getGraphemeBreakType(o);t<i;){var u=h(e,i,t),a=n.getGraphemeBreakType(u);if(y(s,a))break;t+=u>=65536?2:1,s=a}return t-r},t.prevCharLength=function(e,t){\nvar n=b.getInstance(),r=t,i=p(e,t);t-=i>=65536?2:1;for(var o=n.getGraphemeBreakType(i);t>0;){var s=p(e,t),u=n.getGraphemeBreakType(s);if(y(u,o))break;t-=s>=65536?2:1,o=u}return r-t};var m=/(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;t.containsRTL=function(e){return m.test(e)};var g=/(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE82\\uDE90-\\uDE95])/;t.containsEmoji=function(e){return g.test(e)};var v=/^[\\t\\n\\r\\x20-\\x7E]*$/;function _(e){\nreturn(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function y(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return v.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;t<n;t++)if(_(e.charCodeAt(t)))return!0;return!1},t.isFullWidthCharacter=_,t.isEmojiImprecise=function(e){return e>=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n},\nt.containsUppercaseCharacter=function(e,t){return void 0===t&&(t=!1),!!e&&(t&&(e=e.replace(/\\\\./g,\"\")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return b.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=y;var b=function(){function e(){\nthis._data=JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getGraphemeBreakType=function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,r=1;r<=n;)if(e<t[3*r])r*=2;else{if(!(e>t[3*r+1]))return t[3*r+2];r=2*r+1}return 0},e._INSTANCE=null,e}()})),e(n[10],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n={number:\"number\",string:\"string\",undefined:\"undefined\",object:\"object\",function:\"function\"};function r(e){return typeof e===n.string||e instanceof String}function i(e){return!(typeof e!==n.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function o(e){return typeof e===n.undefined}function s(e){return o(e)||null===e}t.isArray=function(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==n.number||e.constructor!==Array)},t.isString=r,t.isObject=i,t.isNumber=function(e){return(typeof e===n.number||e instanceof Number)&&!isNaN(e)},t.isBoolean=function(e){\nreturn!0===e||!1===e},t.isUndefined=o,t.isUndefinedOrNull=s,t.assertType=function(e,t){if(!e)throw new Error(t?\"Unexpected type, expected '\"+t+\"'\":\"Unexpected type\")};var u=Object.prototype.hasOwnProperty;function a(e){return typeof e===n.function}function l(e,t){if(r(t)){if(typeof e!==t)throw new Error(\"argument does not match constraint: typeof \"+t)}else if(a(t)){try{if(e instanceof t)return}catch(e){}if(!s(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")}}function c(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}t.isEmptyObject=function(e){if(!i(e))return!1;for(var t in e)if(u.call(e,t))return!1;return!0},t.isFunction=a,t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)l(e[r],t[r])},\nt.validateConstraint=l,t.getAllPropertyNames=c,t.getAllMethodNames=function(e){for(var t=[],n=0,r=c(e);n<r.length;n++){var i=r[n];\"function\"==typeof e[i]&&t.push(i)}return t},t.createProxyObject=function(e,t){for(var n=function(e){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},r={},i=0,o=e;i<o.length;i++){var s=o[i];r[s]=n(s)}return r},t.withNullAsUndefined=function(e){return null===e?void 0:e},t.withUndefinedAsNull=function(e){return void 0===e?null:e}})),e(n[11],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toUint8=function(e){return e<0?0:e>255?255:0|e},t.toUint32=function(e){return e<0?0:e>4294967295?4294967295:0|e}})),e(n[12],r([0,1,4]),(function(e,t,n){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0});var i=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var u=\"\",l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,a,c){void 0===c&&(c=!1),\n\"object\"==typeof e?(this.scheme=e.scheme||u,this.authority=e.authority||u,this.path=e.path||u,this.query=e.query||u,this.fragment=e.fragment||u):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||u,this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||u),this.query=r||u,this.fragment=a||u,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')\n}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return v(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=u),void 0===n?n=this.authority:null===n&&(n=u),void 0===r?r=this.path:null===r&&(r=u),void 0===i?i=this.query:null===i&&(i=u),void 0===o?o=this.fragment:null===o&&(o=u),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){\nvoid 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||u,b(n[4]||u),b(n[5]||u),b(n[7]||u),b(n[9]||u),t):new h(u,u,u,u,u)},e.file=function(e){var t=u;if(n.isWindows&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var r=e.indexOf(l,2);-1===r?(t=e.substring(2),e=l):(t=e.substring(2,r),e=e.substring(r)||l)}return new h(\"file\",t,e,u,u)},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),_(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}();t.URI=d;var f=n.isWindows?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return a(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=v(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){\nreturn void 0===e&&(e=!1),e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((r={})[58]=\"%3A\",r[47]=\"%2F\",r[63]=\"%3F\",r[35]=\"%23\",r[91]=\"%5B\",r[93]=\"%5D\",r[64]=\"%40\",r[33]=\"%21\",r[36]=\"%24\",r[38]=\"%26\",r[39]=\"%27\",r[40]=\"%28\",r[41]=\"%29\",r[42]=\"%2A\",r[43]=\"%2B\",r[44]=\"%2C\",r[59]=\"%3B\",r[61]=\"%3D\",r[32]=\"%20\",r);function m(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=p[o]\n;void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function g(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function v(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,n.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}function _(e,t){var n=t?g:m,r=\"\",i=e.scheme,o=e.authority,s=e.path,u=e.query,a=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var c=o.indexOf(\"@\");if(-1!==c){var d=o.substr(0,c);o=o.substr(c+1),-1===(c=d.indexOf(\":\"))?r+=n(d,!1):(r+=n(d.substr(0,c),!1),r+=\":\",r+=n(d.substr(c+1),!1)),r+=\"@\"}\n-1===(c=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,c),!1),r+=o.substr(c))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(f=s.charCodeAt(1))>=65&&f<=90&&(s=\"/\"+String.fromCharCode(f+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var f;(f=s.charCodeAt(0))>=65&&f<=90&&(s=String.fromCharCode(f+32)+\":\"+s.substr(2))}r+=n(s,!0)}return u&&(r+=\"?\",r+=n(u,!1)),a&&(r+=\"#\",r+=t?a:m(a,!1)),r}var y=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function b(e){return e.match(y)?e.replace(y,(function(e){return function e(t){try{return decodeURIComponent(t)}catch(n){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}}(e)})):e}})),e(n[32],r([0,1,3,8,4,10]),(function(e,t,n,r,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=\"$initialize\",u=!1;t.logOnceWebWorkerWarning=function(e){i.isWeb&&(u||(u=!0,\nconsole.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq\")),console.warn(e.message))};var l=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=this,r=String(++this._lastSentReq);return new Promise((function(i,o){n._pendingReplies[r]={resolve:i,reject:o},n._send({vsWorker:n._workerId,req:r,method:e,args:t})}))},e.prototype.handleMessage=function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var r=e;if(!this._pendingReplies[r.seq])return void console.warn(\"Got reply to unknown seq\");var i=this._pendingReplies[r.seq];if(delete this._pendingReplies[r.seq],r.err){var o=r.err\n;return r.err.$isError&&((o=new Error).name=r.err.name,o.message=r.err.message,o.stack=r.err.stack),void i.reject(o)}i.resolve(r.res)}else{var s=e,u=s.req;this._handler.handleMessage(s.method,s.args).then((function(e){t._send({vsWorker:t._workerId,seq:u,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=n.transformErrorForSerialization(e.detail)),t._send({vsWorker:t._workerId,seq:u,res:void 0,err:n.transformErrorForSerialization(e)})}))}},e.prototype._send=function(e){var t=[];if(e.req)for(var n=e,r=0;r<n.args.length;r++)n.args[r]instanceof ArrayBuffer&&t.push(n.args[r]);else(n=e).res instanceof ArrayBuffer&&t.push(n.res);this._handler.sendMessage(e,t)},e}(),c=function(e){function t(t,n,r){var i=e.call(this)||this,u=null;i._worker=i._register(t.create(\"vs/base/common/worker/simpleWorker\",(function(e){i._protocol.handleMessage(e)}),(function(e){u&&u(e)}))),i._protocol=new l({sendMessage:function(e,t){i._worker.postMessage(e,t)},handleMessage:function(e,t){\nif(\"function\"!=typeof r[e])return Promise.reject(new Error(\"Missing method \"+e+\" on main thread host.\"));try{return Promise.resolve(r[e].apply(r,t))}catch(e){return Promise.reject(e)}}}),i._protocol.setWorkerId(i._worker.getId());var a=null;void 0!==self.require&&\"function\"==typeof self.require.getConfig?a=self.require.getConfig():void 0!==self.requirejs&&(a=self.requirejs.s.contexts._.config);var c=o.getAllMethodNames(r);i._onModuleLoaded=i._protocol.sendMessage(s,[i._worker.getId(),JSON.parse(JSON.stringify(a)),n,c]);var d=function(e,t){return i._request(e,t)};return i._lazyProxy=new Promise((function(e,t){u=t,i._onModuleLoaded.then((function(t){e(o.createProxyObject(t,d))}),(function(e){t(e),i._onError(\"Worker failed to load \"+n,e)}))})),i}return a(t,e),t.prototype.getProxyObject=function(){return this._lazyProxy},t.prototype._request=function(e,t){var n=this;return new Promise((function(r,i){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(r,i)}),i)}))},\nt.prototype._onError=function(e,t){console.error(e),console.info(t)},t}(r.Disposable);t.SimpleWorkerClient=c;var d=function(){function e(e,t){var n=this;this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new l({sendMessage:function(t,n){e(t,n)},handleMessage:function(e,t){return n._handleMessage(e,t)}})}return e.prototype.onmessage=function(e){this._protocol.handleMessage(e)},e.prototype._handleMessage=function(e,t){if(e===s)return this.initialize(t[0],t[1],t[2],t[3]);if(!this._requestHandler||\"function\"!=typeof this._requestHandler[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}},e.prototype.initialize=function(e,t,n,r){var i=this;this._protocol.setWorkerId(e);var s=o.createProxyObject(r,(function(e,t){return i._protocol.sendMessage(e,t)}));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(s),\nPromise.resolve(o.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((function(e,t){self.require([n],(function(n){i._requestHandler=n.create(s),i._requestHandler?e(o.getAllMethodNames(i._requestHandler)):t(new Error(\"No RequestHandler!\"))}),t)})))},e}();t.SimpleWorkerServer=d,t.create=function(e){return new d(e,null)}})),e(n[21],r([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){var r=n.toUint8(t);this._defaultValue=r,this._asciiMap=e._createAsciiMap(r),this._map=new Map}return e._createAsciiMap=function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t},e.prototype.set=function(e,t){var r=n.toUint8(t);e>=0&&e<256?this._asciiMap[e]=r:this._map.set(e,r)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=r\n;var i=function(){function e(){this._actual=new r(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=i})),e(n[2],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.with=function(t,n){return void 0===t&&(t=this.lineNumber),void 0===n&&(n=this.column),t===this.lineNumber&&n===this.column?this:new e(t,n)},e.prototype.delta=function(e,t){return void 0===e&&(e=0),void 0===t&&(t=0),this.with(this.lineNumber+e,this.column+t)},e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column},e.prototype.isBeforeOrEqual=function(t){\nreturn e.isBeforeOrEqual(this,t)},e.isBeforeOrEqual=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column},e.compare=function(e,t){var n=0|e.lineNumber,r=0|t.lineNumber;return n===r?(0|e.column)-(0|t.column):n-r},e.prototype.clone=function(){return new e(this.lineNumber,this.column)},e.prototype.toString=function(){return\"(\"+this.lineNumber+\",\"+this.column+\")\"},e.lift=function(t){return new e(t.lineNumber,t.column)},e.isIPosition=function(e){return e&&\"number\"==typeof e.lineNumber&&\"number\"==typeof e.column},e}();t.Position=n})),e(n[5],r([0,1,2]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,r){e>n||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){\nreturn e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))},e.prototype.strictContainsRange=function(t){return e.strictContainsRange(this,t)},e.strictContainsRange=function(e,t){\nreturn!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var r,i,o,s;return n.startLineNumber<t.startLineNumber?(r=n.startLineNumber,i=n.startColumn):n.startLineNumber===t.startLineNumber?(r=n.startLineNumber,i=Math.min(n.startColumn,t.startColumn)):(r=t.startLineNumber,i=t.startColumn),n.endLineNumber>t.endLineNumber?(o=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,s=t.endColumn),new e(r,i,o,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){\nvar r=t.startLineNumber,i=t.startColumn,o=t.endLineNumber,s=t.endColumn,u=n.startLineNumber,a=n.startColumn,l=n.endLineNumber,c=n.endColumn;return r<u?(r=u,i=a):r===u&&(i=Math.max(i,a)),o>l?(o=l,s=c):o===l&&(s=Math.min(s,c)),r>o?null:r===o&&i>s?null:new e(r,i,o,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},e.prototype.toString=function(){return\"[\"+this.startLineNumber+\",\"+this.startColumn+\" -> \"+this.endLineNumber+\",\"+this.endColumn+\"]\"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){\nreturn new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&\"number\"==typeof e.startLineNumber&&\"number\"==typeof e.startColumn&&\"number\"==typeof e.endLineNumber&&\"number\"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)},e.areIntersecting=function(e,t){\nreturn!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)},e.compareRangesUsingStarts=function(e,t){if(e&&t){var n=0|e.startLineNumber,r=0|t.startLineNumber;if(n===r){var i=0|e.startColumn,o=0|t.startColumn;if(i===o){var s=0|e.endLineNumber,u=0|t.endLineNumber;return s===u?(0|e.endColumn)-(0|t.endColumn):s-u}return i-o}return n-r}return(e?1:0)-(t?1:0)},e.compareRangesUsingEnds=function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber},e.spansMultipleLines=function(e){return e.endLineNumber>e.startLineNumber},e}();t.Range=r})),e(n[22],r([0,1,2,5]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,n,r,i){\nvar o=e.call(this,t,n,r,i)||this;return o.selectionStartLineNumber=t,o.selectionStartColumn=n,o.positionLineNumber=r,o.positionColumn=i,o}return a(t,e),t.prototype.toString=function(){return\"[\"+this.selectionStartLineNumber+\",\"+this.selectionStartColumn+\" -> \"+this.positionLineNumber+\",\"+this.positionColumn+\"]\"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1},t.prototype.setEndPosition=function(e,n){return 0===this.getDirection()?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){\nreturn new n.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return 0===this.getDirection()?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0},t.isISelection=function(e){return e&&\"number\"==typeof e.selectionStartLineNumber&&\"number\"==typeof e.selectionStartColumn&&\"number\"==typeof e.positionLineNumber&&\"number\"==typeof e.positionColumn},t.createWithDirection=function(e,n,r,i,o){return 0===o?new t(e,n,r,i):new t(r,i,e,n)},t}(r.Range);t.Selection=i})),e(n[23],r([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this.offset=0|e,this.type=t,this.language=n}return e.prototype.toString=function(){return\"(\"+this.offset+\", \"+this.type+\")\"},e}();t.Token=n;var r=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult=r;var i=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult2=i})),e(n[24],r([0,1,6,20]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=3;function o(e,t,r,i){return new n.LcsDiff(e,t,r).ComputeDiff(i)}var s=function(){function e(e){for(var t=[],n=[],r=0,i=e.length;r<i;r++)t[r]=d(e[r],1),n[r]=f(e[r],1);this.lines=e,this._startColumns=t,this._endColumns=n}return e.prototype.getElements=function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e},e.prototype.getStartLineNumber=function(e){return e+1},e.prototype.getEndLineNumber=function(e){return e+1},\ne.prototype.createCharSequence=function(e,t,n){for(var r=[],i=[],o=[],s=0,a=t;a<=n;a++)for(var l=this.lines[a],c=e?this._startColumns[a]:1,d=e?this._endColumns[a]:l.length+1,f=c;f<d;f++)r[s]=l.charCodeAt(f-1),i[s]=a+1,o[s]=f,s++;return new u(r,i,o)},e}(),u=function(){function e(e,t,n){this._charCodes=e,this._lineNumbers=t,this._columns=n}return e.prototype.getElements=function(){return this._charCodes},e.prototype.getStartLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getStartColumn=function(e){return this._columns[e]},e.prototype.getEndLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getEndColumn=function(e){return this._columns[e]+1},e}(),a=function(){function e(e,t,n,r,i,o,s,u){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=n,this.originalEndColumn=r,this.modifiedStartLineNumber=i,this.modifiedStartColumn=o,this.modifiedEndLineNumber=s,this.modifiedEndColumn=u}return e.createFromDiffChange=function(t,n,r){var i,o,s,u,a,l,c,d\n;return 0===t.originalLength?(i=0,o=0,s=0,u=0):(i=n.getStartLineNumber(t.originalStart),o=n.getStartColumn(t.originalStart),s=n.getEndLineNumber(t.originalStart+t.originalLength-1),u=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(a=0,l=0,c=0,d=0):(a=r.getStartLineNumber(t.modifiedStart),l=r.getStartColumn(t.modifiedStart),c=r.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),d=r.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(i,o,s,u,a,l,c,d)},e}();var l=function(){function e(e,t,n,r,i){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=n,this.modifiedEndLineNumber=r,this.charChanges=i}return e.createFromDiffResult=function(t,n,r,s,u,l,c){var d,f,h,p,m=void 0;if(0===n.originalLength?(d=r.getStartLineNumber(n.originalStart)-1,f=0):(d=r.getStartLineNumber(n.originalStart),f=r.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(h=s.getStartLineNumber(n.modifiedStart)-1,\np=0):(h=s.getStartLineNumber(n.modifiedStart),p=s.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),l&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&u()){var g=r.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),v=s.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),_=o(g,v,u,!0).changes;c&&(_=function(e){if(e.length<=1)return e;for(var t=[e[0]],n=t[0],r=1,o=e.length;r<o;r++){var s=e[r],u=s.originalStart-(n.originalStart+n.originalLength),a=s.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(u,a)<i?(n.originalLength=s.originalStart+s.originalLength-n.originalStart,n.modifiedLength=s.modifiedStart+s.modifiedLength-n.modifiedStart):(t.push(s),n=s)}return t}(_)),m=[];for(var y=0,b=_.length;y<b;y++)m.push(a.createFromDiffChange(_[y],g,v))}return new e(d,f,h,p,m)},e}(),c=function(){function e(e,t,n){this.shouldComputeCharChanges=n.shouldComputeCharChanges,this.shouldPostProcessCharChanges=n.shouldPostProcessCharChanges,\nthis.shouldIgnoreTrimWhitespace=n.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=n.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new s(e),this.modified=new s(t),this.continueLineDiff=h(n.maxComputationTime),this.continueCharDiff=h(0===n.maxComputationTime?0:Math.min(n.maxComputationTime,5e3))}return e.prototype.computeDiff=function(){if(1===this.original.lines.length&&0===this.original.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,\ncharChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=o(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){for(var r=[],i=0,s=t.length;i<s;i++)r.push(l.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[i],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:r}}for(var u=[],a=0,c=0,h=(i=-1,t.length);i<h;i++){for(var p=i+1<h?t[i+1]:null,m=p?p.originalStart:this.originalLines.length,g=p?p.modifiedStart:this.modifiedLines.length;a<m&&c<g;){var v=this.originalLines[a],_=this.modifiedLines[c];if(v!==_){for(var y=d(v,1),b=d(_,1);y>1&&b>1;){if(v.charCodeAt(y-2)!==_.charCodeAt(b-2))break;y--,b--}(y>1||b>1)&&this._pushTrimWhitespaceCharChange(u,a+1,1,y,c+1,1,b)\n;for(var C=f(v,1),E=f(_,1),S=v.length+1,L=_.length+1;C<S&&E<L;){if(v.charCodeAt(C-1)!==v.charCodeAt(E-1))break;C++,E++}(C<S||E<L)&&this._pushTrimWhitespaceCharChange(u,a+1,C,S,c+1,E,L)}a++,c++}p&&(u.push(l.createFromDiffResult(this.shouldIgnoreTrimWhitespace,p,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),a+=p.originalLength,c+=p.modifiedLength)}return{quitEarly:n,changes:u}},e.prototype._pushTrimWhitespaceCharChange=function(e,t,n,r,i,o,s){if(!this._mergeTrimWhitespaceCharChange(e,t,n,r,i,o,s)){var u=void 0;this.shouldComputeCharChanges&&(u=[new a(t,n,t,r,i,o,i,s)]),e.push(new l(t,t,i,i,u))}},e.prototype._mergeTrimWhitespaceCharChange=function(e,t,n,r,i,o,s){var u=e.length;if(0===u)return!1;var l=e[u-1];return 0!==l.originalEndLineNumber&&0!==l.modifiedEndLineNumber&&(l.originalEndLineNumber+1===t&&l.modifiedEndLineNumber+1===i&&(l.originalEndLineNumber=t,l.modifiedEndLineNumber=i,\nthis.shouldComputeCharChanges&&l.charChanges&&l.charChanges.push(new a(t,n,t,r,i,o,i,s)),!0))},e}();function d(e,t){var n=r.firstNonWhitespaceIndex(e);return-1===n?t:n+1}function f(e,t){var n=r.lastNonWhitespaceIndex(e);return-1===n?t:n+2}function h(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}t.DiffComputer=c})),e(n[25],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.USUAL_WORD_SEPARATORS=\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e=\"\");for(var n=\"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\",r=0,i=t.USUAL_WORD_SEPARATORS;r<i.length;r++){var o=i[r];e.indexOf(o)>=0||(n+=\"\\\\\"+o)}return n+=\"\\\\s]+)\",new RegExp(n,\"g\")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var r=\"g\";e.ignoreCase&&(r+=\"i\"),e.multiline&&(r+=\"m\"),e.unicode&&(r+=\"u\"),n=new RegExp(e.source,r)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,n,r){t.lastIndex=0\n;var i=t.exec(n);if(!i)return null;var o=i[0].indexOf(\" \")>=0?function(e,t,n,r){var i,o=e-1-r;for(t.lastIndex=0;i=t.exec(n);){var s=i.index||0;if(s>o)return null;if(t.lastIndex>=o)return{word:i[0],startColumn:r+1+s,endColumn:r+1+t.lastIndex}}return null}(e,t,n,r):function(e,t,n,r){var i,o=e-1-r,s=n.lastIndexOf(\" \",o-1)+1;for(t.lastIndex=s;i=t.exec(n);){var u=i.index||0;if(u<=o&&t.lastIndex>=o)return{word:i[0],startColumn:r+1+u,endColumn:r+1+t.lastIndex}}return null}(e,t,n,r);return t.lastIndex=0,o}})),e(n[26],r([0,1,21]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n){for(var r=new Uint8Array(e*t),i=0,o=e*t;i<o;i++)r[i]=n;this._data=r,this.rows=e,this.cols=t}return e.prototype.get=function(e,t){return this._data[e*this.cols+t]},e.prototype.set=function(e,t,n){this._data[e*this.cols+t]=n},e}();t.Uint8Matrix=r;var i=function(){function e(e){for(var t=0,n=0,i=0,o=e.length;i<o;i++){var s=e[i],u=s[0];(c=s[1])>t&&(t=c),u>n&&(n=u),(d=s[2])>n&&(n=d)}\nvar a=new r(++n,++t,0);for(i=0,o=e.length;i<o;i++){var l=e[i],c=(u=l[0],l[1]),d=l[2];a.set(u,c,d)}this._states=a,this._maxCharCode=t}return e.prototype.nextState=function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)},e}();t.StateMachine=i;var o=null;var s=null;var u=function(){function e(){}return e._createLink=function(e,t,n,r,i){var o=i-1;do{var s=t.charCodeAt(o);if(2!==e.get(s))break;o--}while(o>r);if(r>0){var u=t.charCodeAt(r-1),a=t.charCodeAt(o);(40===u&&41===a||91===u&&93===a||123===u&&125===a)&&o--}return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}},e.computeLinks=function(t,r){void 0===r&&(null===o&&(o=new i([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),r=o);for(var u=function(){if(null===s){s=new n.CharacterClassifier(0)\n;for(var e=0;e<\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".length;e++)s.set(\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".charCodeAt(e),1);for(e=0;e<\".,;\".length;e++)s.set(\".,;\".charCodeAt(e),2)}return s}(),a=[],l=1,c=t.getLineCount();l<=c;l++){for(var d=t.getLineContent(l),f=d.length,h=0,p=0,m=0,g=1,v=!1,_=!1,y=!1;h<f;){var b=!1,C=d.charCodeAt(h);if(13===g){var E=void 0;switch(C){case 40:v=!0,E=0;break;case 41:E=v?0:1;break;case 91:_=!0,E=0;break;case 93:E=_?0:1;break;case 123:y=!0,E=0;break;case 125:E=y?0:1;break;case 39:E=34===m||96===m?0:1;break;case 34:E=39===m||96===m?0:1;break;case 96:E=39===m||34===m?0:1;break;case 42:E=42===m?1:0;break;case 124:E=124===m?1:0;break;default:E=u.get(C)}1===E&&(a.push(e._createLink(u,d,l,p,h)),b=!0)}else if(12===g){E=void 0;91===C?(_=!0,E=0):E=u.get(C),1===E?b=!0:g=13}else 0===(g=r.nextState(g,C))&&(b=!0);b&&(g=1,v=!1,_=!1,y=!1,p=h+1,m=C),h++}13===g&&a.push(e._createLink(u,d,l,p,f))}return a},e}();t.LinkComputer=u,t.computeLinks=function(e){\nreturn e&&\"function\"==typeof e.getLineCount&&\"function\"==typeof e.getLineContent?u.computeLinks(e):[]}})),e(n[27],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._defaultValueSet=[[\"true\",\"false\"],[\"True\",\"False\"],[\"Private\",\"Public\",\"Friend\",\"ReadOnly\",\"Partial\",\"Protected\",\"WriteOnly\"],[\"public\",\"protected\",\"private\"]]}return e.prototype.navigateValueSet=function(e,t,n,r,i){var o;if(e&&t&&(o=this.doNavigateValueSet(t,i)))return{range:e,value:o};if(n&&r&&(o=this.doNavigateValueSet(r,i)))return{range:n,value:o};return null},e.prototype.doNavigateValueSet=function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)},e.prototype.numberReplace=function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(\".\")+1)),r=Number(e),i=parseFloat(e);return isNaN(r)||isNaN(i)||r!==i?null:0!==r||t?(r=Math.floor(r*n),r+=t?n:-n,String(r/n)):null},e.prototype.textReplace=function(e,t){\nreturn this.valueSetsReplace(this._defaultValueSet,e,t)},e.prototype.valueSetsReplace=function(e,t,n){for(var r=null,i=0,o=e.length;null===r&&i<o;i++)r=this.valueSetReplace(e[i],t,n);return r},e.prototype.valueSetReplace=function(e,t,n){var r=e.indexOf(t);return r>=0?((r+=n?1:-1)<0?r=e.length-1:r%=e.length,e[r]):null},e.INSTANCE=new e,e}();t.BasicInplaceReplace=n})),\n/*!\nCopyright (c) 2014 Taylor Hakes\nCopyright (c) 2014 Forbes Lindesay\n */\nu=function(){\"use strict\";function e(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){return t.reject(n)}))}))}var t=setTimeout;function n(){}function r(e){if(!(this instanceof r))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn((function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void s(t.promise,e)}o(t.promise,r)}else(1===e._state?o:s)(t.promise,e._value)}))):e._deferreds.push(t)}function o(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void u(e)\n;if(\"function\"==typeof n)return void l((i=n,o=t,function(){i.apply(o,arguments)}),e)}e._state=1,e._value=t,u(e)}catch(t){s(e,t)}var i,o}function s(e,t){e._state=2,e._value=t,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&r._immediateFn((function(){e._handled||r._unhandledRejectionFn(e._value)}));for(var t=0,n=e._deferreds.length;t<n;t++)i(e,e._deferreds[t]);e._deferreds=null}function a(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}function l(e,t){var n=!1;try{e((function(e){n||(n=!0,o(t,e))}),(function(e){n||(n=!0,s(t,e))}))}catch(e){if(n)return;n=!0,s(t,e)}}r.prototype.catch=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var r=new this.constructor(n);return i(this,new a(e,t,r)),r},r.prototype.finally=e,r.all=function(e){return new r((function(t,n){if(!e||void 0===e.length)throw new TypeError(\"Promise.all accepts an array\");var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);var i=r.length\n;function o(e,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var u=s.then;if(\"function\"==typeof u)return void u.call(s,(function(t){o(e,t)}),n)}r[e]=s,0==--i&&t(r)}catch(e){n(e)}}for(var s=0;s<r.length;s++)o(s,r[s])}))},r.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===r?e:new r((function(t){t(e)}))},r.reject=function(e){return new r((function(t,n){n(e)}))},r.race=function(e){return new r((function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)}))},r._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){t(e,0)},r._unhandledRejectionFn=function(e){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var c=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"unable to locate global object\")}();\"Promise\"in c?c.Promise.prototype.finally||(c.Promise.prototype.finally=e):c.Promise=r},\n\"object\"==typeof exports&&\"undefined\"!=typeof module?u():\"function\"==typeof e&&e.amd?e(\"vs/editor/common/standalone/promise-polyfill/polyfill\",u):u(),e(n[28],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Disabled=1]=\"Disabled\",e[e.Enabled=2]=\"Enabled\"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]=\"KeepWhitespace\",e[e.InsertAsSnippet=4]=\"InsertAsSnippet\"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){e[e.Method=0]=\"Method\",e[e.Function=1]=\"Function\",e[e.Constructor=2]=\"Constructor\",e[e.Field=3]=\"Field\",e[e.Variable=4]=\"Variable\",e[e.Class=5]=\"Class\",e[e.Struct=6]=\"Struct\",e[e.Interface=7]=\"Interface\",e[e.Module=8]=\"Module\",e[e.Property=9]=\"Property\",e[e.Event=10]=\"Event\",e[e.Operator=11]=\"Operator\",e[e.Unit=12]=\"Unit\",e[e.Value=13]=\"Value\",e[e.Constant=14]=\"Constant\",e[e.Enum=15]=\"Enum\",e[e.EnumMember=16]=\"EnumMember\",e[e.Keyword=17]=\"Keyword\",\ne[e.Text=18]=\"Text\",e[e.Color=19]=\"Color\",e[e.File=20]=\"File\",e[e.Reference=21]=\"Reference\",e[e.Customcolor=22]=\"Customcolor\",e[e.Folder=23]=\"Folder\",e[e.TypeParameter=24]=\"TypeParameter\",e[e.Snippet=25]=\"Snippet\"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]=\"Invoke\",e[e.TriggerCharacter=1]=\"TriggerCharacter\",e[e.TriggerForIncompleteCompletions=2]=\"TriggerForIncompleteCompletions\"}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]=\"EXACT\",e[e.ABOVE=1]=\"ABOVE\",e[e.BELOW=2]=\"BELOW\"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]=\"NotSet\",e[e.ContentFlush=1]=\"ContentFlush\",e[e.RecoverFromMarkers=2]=\"RecoverFromMarkers\",e[e.Explicit=3]=\"Explicit\",e[e.Paste=4]=\"Paste\",e[e.Undo=5]=\"Undo\",e[e.Redo=6]=\"Redo\"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"\n}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]=\"None\",e[e.Keep=1]=\"Keep\",e[e.Brackets=2]=\"Brackets\",e[e.Advanced=3]=\"Advanced\",e[e.Full=4]=\"Full\"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]=\"acceptSuggestionOnCommitCharacter\",e[e.acceptSuggestionOnEnter=1]=\"acceptSuggestionOnEnter\",e[e.accessibilitySupport=2]=\"accessibilitySupport\",e[e.accessibilityPageSize=3]=\"accessibilityPageSize\",e[e.ariaLabel=4]=\"ariaLabel\",e[e.autoClosingBrackets=5]=\"autoClosingBrackets\",e[e.autoClosingOvertype=6]=\"autoClosingOvertype\",e[e.autoClosingQuotes=7]=\"autoClosingQuotes\",e[e.autoIndent=8]=\"autoIndent\",e[e.automaticLayout=9]=\"automaticLayout\",e[e.autoSurround=10]=\"autoSurround\",e[e.codeLens=11]=\"codeLens\",e[e.colorDecorators=12]=\"colorDecorators\",e[e.comments=13]=\"comments\",e[e.contextmenu=14]=\"contextmenu\",\ne[e.copyWithSyntaxHighlighting=15]=\"copyWithSyntaxHighlighting\",e[e.cursorBlinking=16]=\"cursorBlinking\",e[e.cursorSmoothCaretAnimation=17]=\"cursorSmoothCaretAnimation\",e[e.cursorStyle=18]=\"cursorStyle\",e[e.cursorSurroundingLines=19]=\"cursorSurroundingLines\",e[e.cursorSurroundingLinesStyle=20]=\"cursorSurroundingLinesStyle\",e[e.cursorWidth=21]=\"cursorWidth\",e[e.disableLayerHinting=22]=\"disableLayerHinting\",e[e.disableMonospaceOptimizations=23]=\"disableMonospaceOptimizations\",e[e.dragAndDrop=24]=\"dragAndDrop\",e[e.emptySelectionClipboard=25]=\"emptySelectionClipboard\",e[e.extraEditorClassName=26]=\"extraEditorClassName\",e[e.fastScrollSensitivity=27]=\"fastScrollSensitivity\",e[e.find=28]=\"find\",e[e.fixedOverflowWidgets=29]=\"fixedOverflowWidgets\",e[e.folding=30]=\"folding\",e[e.foldingStrategy=31]=\"foldingStrategy\",e[e.foldingHighlight=32]=\"foldingHighlight\",e[e.fontFamily=33]=\"fontFamily\",e[e.fontInfo=34]=\"fontInfo\",e[e.fontLigatures=35]=\"fontLigatures\",e[e.fontSize=36]=\"fontSize\",e[e.fontWeight=37]=\"fontWeight\",\ne[e.formatOnPaste=38]=\"formatOnPaste\",e[e.formatOnType=39]=\"formatOnType\",e[e.glyphMargin=40]=\"glyphMargin\",e[e.gotoLocation=41]=\"gotoLocation\",e[e.hideCursorInOverviewRuler=42]=\"hideCursorInOverviewRuler\",e[e.highlightActiveIndentGuide=43]=\"highlightActiveIndentGuide\",e[e.hover=44]=\"hover\",e[e.inDiffEditor=45]=\"inDiffEditor\",e[e.letterSpacing=46]=\"letterSpacing\",e[e.lightbulb=47]=\"lightbulb\",e[e.lineDecorationsWidth=48]=\"lineDecorationsWidth\",e[e.lineHeight=49]=\"lineHeight\",e[e.lineNumbers=50]=\"lineNumbers\",e[e.lineNumbersMinChars=51]=\"lineNumbersMinChars\",e[e.links=52]=\"links\",e[e.matchBrackets=53]=\"matchBrackets\",e[e.minimap=54]=\"minimap\",e[e.mouseStyle=55]=\"mouseStyle\",e[e.mouseWheelScrollSensitivity=56]=\"mouseWheelScrollSensitivity\",e[e.mouseWheelZoom=57]=\"mouseWheelZoom\",e[e.multiCursorMergeOverlapping=58]=\"multiCursorMergeOverlapping\",e[e.multiCursorModifier=59]=\"multiCursorModifier\",e[e.multiCursorPaste=60]=\"multiCursorPaste\",e[e.occurrencesHighlight=61]=\"occurrencesHighlight\",\ne[e.overviewRulerBorder=62]=\"overviewRulerBorder\",e[e.overviewRulerLanes=63]=\"overviewRulerLanes\",e[e.parameterHints=64]=\"parameterHints\",e[e.peekWidgetDefaultFocus=65]=\"peekWidgetDefaultFocus\",e[e.quickSuggestions=66]=\"quickSuggestions\",e[e.quickSuggestionsDelay=67]=\"quickSuggestionsDelay\",e[e.readOnly=68]=\"readOnly\",e[e.renderControlCharacters=69]=\"renderControlCharacters\",e[e.renderIndentGuides=70]=\"renderIndentGuides\",e[e.renderFinalNewline=71]=\"renderFinalNewline\",e[e.renderLineHighlight=72]=\"renderLineHighlight\",e[e.renderValidationDecorations=73]=\"renderValidationDecorations\",e[e.renderWhitespace=74]=\"renderWhitespace\",e[e.revealHorizontalRightPadding=75]=\"revealHorizontalRightPadding\",e[e.roundedSelection=76]=\"roundedSelection\",e[e.rulers=77]=\"rulers\",e[e.scrollbar=78]=\"scrollbar\",e[e.scrollBeyondLastColumn=79]=\"scrollBeyondLastColumn\",e[e.scrollBeyondLastLine=80]=\"scrollBeyondLastLine\",e[e.selectionClipboard=81]=\"selectionClipboard\",e[e.selectionHighlight=82]=\"selectionHighlight\",\ne[e.selectOnLineNumbers=83]=\"selectOnLineNumbers\",e[e.showFoldingControls=84]=\"showFoldingControls\",e[e.showUnused=85]=\"showUnused\",e[e.snippetSuggestions=86]=\"snippetSuggestions\",e[e.smoothScrolling=87]=\"smoothScrolling\",e[e.stopRenderingLineAfter=88]=\"stopRenderingLineAfter\",e[e.suggest=89]=\"suggest\",e[e.suggestFontSize=90]=\"suggestFontSize\",e[e.suggestLineHeight=91]=\"suggestLineHeight\",e[e.suggestOnTriggerCharacters=92]=\"suggestOnTriggerCharacters\",e[e.suggestSelection=93]=\"suggestSelection\",e[e.tabCompletion=94]=\"tabCompletion\",e[e.useTabStops=95]=\"useTabStops\",e[e.wordSeparators=96]=\"wordSeparators\",e[e.wordWrap=97]=\"wordWrap\",e[e.wordWrapBreakAfterCharacters=98]=\"wordWrapBreakAfterCharacters\",e[e.wordWrapBreakBeforeCharacters=99]=\"wordWrapBreakBeforeCharacters\",e[e.wordWrapColumn=100]=\"wordWrapColumn\",e[e.wordWrapMinified=101]=\"wordWrapMinified\",e[e.wrappingIndent=102]=\"wrappingIndent\",e[e.wrappingStrategy=103]=\"wrappingStrategy\",e[e.editorClassName=104]=\"editorClassName\",\ne[e.pixelRatio=105]=\"pixelRatio\",e[e.tabFocusMode=106]=\"tabFocusMode\",e[e.layoutInfo=107]=\"layoutInfo\",e[e.wrappingInfo=108]=\"wrappingInfo\"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]=\"TextDefined\",e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]=\"LF\",e[e.CRLF=1]=\"CRLF\"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Backspace=1]=\"Backspace\",e[e.Tab=2]=\"Tab\",e[e.Enter=3]=\"Enter\",e[e.Shift=4]=\"Shift\",e[e.Ctrl=5]=\"Ctrl\",e[e.Alt=6]=\"Alt\",e[e.PauseBreak=7]=\"PauseBreak\",e[e.CapsLock=8]=\"CapsLock\",e[e.Escape=9]=\"Escape\",e[e.Space=10]=\"Space\",e[e.PageUp=11]=\"PageUp\",e[e.PageDown=12]=\"PageDown\",e[e.End=13]=\"End\",e[e.Home=14]=\"Home\",e[e.LeftArrow=15]=\"LeftArrow\",e[e.UpArrow=16]=\"UpArrow\",e[e.RightArrow=17]=\"RightArrow\",\ne[e.DownArrow=18]=\"DownArrow\",e[e.Insert=19]=\"Insert\",e[e.Delete=20]=\"Delete\",e[e.KEY_0=21]=\"KEY_0\",e[e.KEY_1=22]=\"KEY_1\",e[e.KEY_2=23]=\"KEY_2\",e[e.KEY_3=24]=\"KEY_3\",e[e.KEY_4=25]=\"KEY_4\",e[e.KEY_5=26]=\"KEY_5\",e[e.KEY_6=27]=\"KEY_6\",e[e.KEY_7=28]=\"KEY_7\",e[e.KEY_8=29]=\"KEY_8\",e[e.KEY_9=30]=\"KEY_9\",e[e.KEY_A=31]=\"KEY_A\",e[e.KEY_B=32]=\"KEY_B\",e[e.KEY_C=33]=\"KEY_C\",e[e.KEY_D=34]=\"KEY_D\",e[e.KEY_E=35]=\"KEY_E\",e[e.KEY_F=36]=\"KEY_F\",e[e.KEY_G=37]=\"KEY_G\",e[e.KEY_H=38]=\"KEY_H\",e[e.KEY_I=39]=\"KEY_I\",e[e.KEY_J=40]=\"KEY_J\",e[e.KEY_K=41]=\"KEY_K\",e[e.KEY_L=42]=\"KEY_L\",e[e.KEY_M=43]=\"KEY_M\",e[e.KEY_N=44]=\"KEY_N\",e[e.KEY_O=45]=\"KEY_O\",e[e.KEY_P=46]=\"KEY_P\",e[e.KEY_Q=47]=\"KEY_Q\",e[e.KEY_R=48]=\"KEY_R\",e[e.KEY_S=49]=\"KEY_S\",e[e.KEY_T=50]=\"KEY_T\",e[e.KEY_U=51]=\"KEY_U\",e[e.KEY_V=52]=\"KEY_V\",e[e.KEY_W=53]=\"KEY_W\",e[e.KEY_X=54]=\"KEY_X\",e[e.KEY_Y=55]=\"KEY_Y\",e[e.KEY_Z=56]=\"KEY_Z\",e[e.Meta=57]=\"Meta\",e[e.ContextMenu=58]=\"ContextMenu\",e[e.F1=59]=\"F1\",e[e.F2=60]=\"F2\",e[e.F3=61]=\"F3\",e[e.F4=62]=\"F4\",e[e.F5=63]=\"F5\",e[e.F6=64]=\"F6\",\ne[e.F7=65]=\"F7\",e[e.F8=66]=\"F8\",e[e.F9=67]=\"F9\",e[e.F10=68]=\"F10\",e[e.F11=69]=\"F11\",e[e.F12=70]=\"F12\",e[e.F13=71]=\"F13\",e[e.F14=72]=\"F14\",e[e.F15=73]=\"F15\",e[e.F16=74]=\"F16\",e[e.F17=75]=\"F17\",e[e.F18=76]=\"F18\",e[e.F19=77]=\"F19\",e[e.NumLock=78]=\"NumLock\",e[e.ScrollLock=79]=\"ScrollLock\",e[e.US_SEMICOLON=80]=\"US_SEMICOLON\",e[e.US_EQUAL=81]=\"US_EQUAL\",e[e.US_COMMA=82]=\"US_COMMA\",e[e.US_MINUS=83]=\"US_MINUS\",e[e.US_DOT=84]=\"US_DOT\",e[e.US_SLASH=85]=\"US_SLASH\",e[e.US_BACKTICK=86]=\"US_BACKTICK\",e[e.US_OPEN_SQUARE_BRACKET=87]=\"US_OPEN_SQUARE_BRACKET\",e[e.US_BACKSLASH=88]=\"US_BACKSLASH\",e[e.US_CLOSE_SQUARE_BRACKET=89]=\"US_CLOSE_SQUARE_BRACKET\",e[e.US_QUOTE=90]=\"US_QUOTE\",e[e.OEM_8=91]=\"OEM_8\",e[e.OEM_102=92]=\"OEM_102\",e[e.NUMPAD_0=93]=\"NUMPAD_0\",e[e.NUMPAD_1=94]=\"NUMPAD_1\",e[e.NUMPAD_2=95]=\"NUMPAD_2\",e[e.NUMPAD_3=96]=\"NUMPAD_3\",e[e.NUMPAD_4=97]=\"NUMPAD_4\",e[e.NUMPAD_5=98]=\"NUMPAD_5\",e[e.NUMPAD_6=99]=\"NUMPAD_6\",e[e.NUMPAD_7=100]=\"NUMPAD_7\",e[e.NUMPAD_8=101]=\"NUMPAD_8\",e[e.NUMPAD_9=102]=\"NUMPAD_9\",\ne[e.NUMPAD_MULTIPLY=103]=\"NUMPAD_MULTIPLY\",e[e.NUMPAD_ADD=104]=\"NUMPAD_ADD\",e[e.NUMPAD_SEPARATOR=105]=\"NUMPAD_SEPARATOR\",e[e.NUMPAD_SUBTRACT=106]=\"NUMPAD_SUBTRACT\",e[e.NUMPAD_DECIMAL=107]=\"NUMPAD_DECIMAL\",e[e.NUMPAD_DIVIDE=108]=\"NUMPAD_DIVIDE\",e[e.KEY_IN_COMPOSITION=109]=\"KEY_IN_COMPOSITION\",e[e.ABNT_C1=110]=\"ABNT_C1\",e[e.ABNT_C2=111]=\"ABNT_C2\",e[e.MAX_VALUE=112]=\"MAX_VALUE\"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]=\"Unnecessary\",e[e.Deprecated=2]=\"Deprecated\"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]=\"UNKNOWN\",e[e.TEXTAREA=1]=\"TEXTAREA\",e[e.GUTTER_GLYPH_MARGIN=2]=\"GUTTER_GLYPH_MARGIN\",e[e.GUTTER_LINE_NUMBERS=3]=\"GUTTER_LINE_NUMBERS\",e[e.GUTTER_LINE_DECORATIONS=4]=\"GUTTER_LINE_DECORATIONS\",e[e.GUTTER_VIEW_ZONE=5]=\"GUTTER_VIEW_ZONE\",\ne[e.CONTENT_TEXT=6]=\"CONTENT_TEXT\",e[e.CONTENT_EMPTY=7]=\"CONTENT_EMPTY\",e[e.CONTENT_VIEW_ZONE=8]=\"CONTENT_VIEW_ZONE\",e[e.CONTENT_WIDGET=9]=\"CONTENT_WIDGET\",e[e.OVERVIEW_RULER=10]=\"OVERVIEW_RULER\",e[e.SCROLLBAR=11]=\"SCROLLBAR\",e[e.OVERLAY_WIDGET=12]=\"OVERLAY_WIDGET\",e[e.OUTSIDE_EDITOR=13]=\"OUTSIDE_EDITOR\"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]=\"TOP_RIGHT_CORNER\",e[e.BOTTOM_RIGHT_CORNER=1]=\"BOTTOM_RIGHT_CORNER\",e[e.TOP_CENTER=2]=\"TOP_CENTER\"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]=\"Off\",e[e.On=1]=\"On\",e[e.Relative=2]=\"Relative\",e[e.Interval=3]=\"Interval\",e[e.Custom=4]=\"Custom\"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]=\"None\",e[e.Text=1]=\"Text\",e[e.Blocks=2]=\"Blocks\"}(t.RenderMinimap||(t.RenderMinimap={})),function(e){\ne[e.Smooth=0]=\"Smooth\",e[e.Immediate=1]=\"Immediate\"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]=\"Auto\",e[e.Hidden=2]=\"Hidden\",e[e.Visible=3]=\"Visible\"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]=\"LTR\",e[e.RTL=1]=\"RTL\"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]=\"File\",e[e.Module=1]=\"Module\",e[e.Namespace=2]=\"Namespace\",e[e.Package=3]=\"Package\",e[e.Class=4]=\"Class\",e[e.Method=5]=\"Method\",e[e.Property=6]=\"Property\",e[e.Field=7]=\"Field\",e[e.Constructor=8]=\"Constructor\",e[e.Enum=9]=\"Enum\",e[e.Interface=10]=\"Interface\",e[e.Function=11]=\"Function\",e[e.Variable=12]=\"Variable\",e[e.Constant=13]=\"Constant\",e[e.String=14]=\"String\",e[e.Number=15]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Array=17]=\"Array\",e[e.Object=18]=\"Object\",e[e.Key=19]=\"Key\",e[e.Null=20]=\"Null\",\ne[e.EnumMember=21]=\"EnumMember\",e[e.Struct=22]=\"Struct\",e[e.Event=23]=\"Event\",e[e.Operator=24]=\"Operator\",e[e.TypeParameter=25]=\"TypeParameter\"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]=\"Hidden\",e[e.Blink=1]=\"Blink\",e[e.Smooth=2]=\"Smooth\",e[e.Phase=3]=\"Phase\",e[e.Expand=4]=\"Expand\",e[e.Solid=5]=\"Solid\"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]=\"AlwaysGrowsWhenTypingAtEdges\",e[e.NeverGrowsWhenTypingAtEdges=1]=\"NeverGrowsWhenTypingAtEdges\",e[e.GrowsOnlyWhenTypingBefore=2]=\"GrowsOnlyWhenTypingBefore\",e[e.GrowsOnlyWhenTypingAfter=3]=\"GrowsOnlyWhenTypingAfter\"\n}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]=\"None\",e[e.Same=1]=\"Same\",e[e.Indent=2]=\"Indent\",e[e.DeepIndent=3]=\"DeepIndent\"}(t.WrappingIndent||(t.WrappingIndent={}))})),e(n[29],r([0,1,19,9,17,12,2,5,22,23,28,33]),(function(e,t,n,r,i,o,s,u,a,l,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(){}return e.chord=function(e,t){return i.KeyChord(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();t.KeyMod=d,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.CancellationTokenSource,Emitter:r.Emitter,KeyCode:c.KeyCode,KeyMod:d,Position:s.Position,Range:u.Range,Selection:a.Selection,SelectionDirection:c.SelectionDirection,MarkerSeverity:c.MarkerSeverity,MarkerTag:c.MarkerTag,Uri:o.URI,Token:l.Token}}})),e(n[30],r([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(e,t){this.index=e,this.remainder=t};t.PrefixSumIndexOfResult=r\n;var i=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.insertValues=function(e,t){e=n.toUint32(e);var r=this.values,i=this.prefixSum,o=t.length;return 0!==o&&(this.values=new Uint32Array(r.length+o),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e),e+o),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)},e.prototype.removeValues=function(e,t){e=n.toUint32(e),t=n.toUint32(t);var r=this.values,i=this.prefixSum;if(e>=r.length)return!1;var o=r.length-e;return t>=o&&(t=o),\n0!==t&&(this.values=new Uint32Array(r.length-t),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),\nthis.getTotalValue();for(var t=0,n=this.values.length-1,i=0,o=0,s=0;t<=n;)if(i=t+(n-t)/2|0,e<(s=(o=this.prefixSum[i])-this.values[i]))n=i-1;else{if(!(e>=o))break;t=i+1}return new r(i,e-s)},e}();t.PrefixSumComputer=i})),e(n[31],r([0,1,2,30]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,r){this._uri=e,this._lines=t,this._eol=n,this._versionId=r,this._lineStarts=null}return e.prototype.dispose=function(){this._lines.length=0},e.prototype.getText=function(){return this._lines.join(this._eol)},e.prototype.onEvents=function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);for(var t=0,r=e.changes;t<r.length;t++){var i=r[t];this._acceptDeleteRange(i.range),this._acceptInsertText(new n.Position(i.range.startLineNumber,i.range.startColumn),i.text)}this._versionId=e.versionId},e.prototype._ensureLineStarts=function(){if(!this._lineStarts){\nfor(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new r.PrefixSumComputer(n)}},e.prototype._setLineText=function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}},e.prototype._acceptInsertText=function(e,t){if(0!==t.length){var n=t.split(/\\r\\n|\\r|\\n/);if(1!==n.length){\nn[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);for(var r=new Uint32Array(n.length-1),i=1;i<n.length;i++)this._lines.splice(e.lineNumber+i-1,0,n[i]),r[i-1]=n[i].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,r)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}},e}();t.MirrorTextModel=i}));var l=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{a(r.next(e))}catch(e){o(e)}}function u(e){try{a(r.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,u)}a((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)\n},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,u])}}};e(n[34],r([0,1,13,6,7,4,12,2,5,24,31,25,26,27,29,10]),(function(e,t,n,r,i,o,s,u,d,f,h,p,m,g,v,_){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return a(t,e),Object.defineProperty(t.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"version\",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"eol\",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){return this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=p.getWordAtText(e.column,p.ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return n?new d.Range(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.createWordIterator=function(e){\nvar t,n,r=this,o=0,s=0,u=[],a=function(){if(s<u.length){var l=n.substring(u[s].start,u[s].end);return s+=1,t?t.value=l:t={done:!1,value:l},t}return o>=r._lines.length?i.FIN:(n=r._lines[o],u=r._wordenize(n,e),s=0,o+=1,a())};return{next:a}},t.prototype.getLineWords=function(e,t){for(var n=this._lines[e-1],r=[],i=0,o=this._wordenize(n,t);i<o.length;i++){var s=o[i];r.push({word:n.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}return r},t.prototype._wordenize=function(e,t){var n,r=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)r.push({start:n.index,end:n.index+n[0].length});return r},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,r=e.endLineNumber-1,i=[];i.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;o<r;o++)i.push(this._lines[o]);return i.push(this._lines[r].substring(0,e.endColumn-1)),i.join(t)},\nt.prototype.offsetAt=function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)},t.prototype.positionAt=function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}},t.prototype._validateRange=function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e},t.prototype._validatePosition=function(e){if(!u.Position.isIPosition(e))throw new Error(\"bad position\");var t=e.lineNumber,n=e.column,r=!1;if(t<1)t=1,n=1,r=!0;else if(t>this._lines.length)t=this._lines.length,\nn=this._lines[t-1].length+1,r=!0;else{var i=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>i&&(n=i,r=!0)}return r?{lineNumber:t,column:n}:e},t}(h.MirrorTextModel),b=function(){function t(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}return t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[];return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new y(s.URI.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t.prototype.computeDiff=function(e,t,n,r){return l(this,void 0,void 0,(function(){var i,o,s,u,a,l,d;return c(this,(function(c){return i=this._getModel(e),o=this._getModel(t),\ni&&o?(s=i.getLinesContent(),u=o.getLinesContent(),a=new f.DiffComputer(s,u,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:r}),l=a.computeDiff(),d=!(l.changes.length>0)&&this._modelsAreIdentical(i,o),[2,{quitEarly:l.quitEarly,identical:d,changes:l.changes}]):[2,null]}))}))},t.prototype._modelsAreIdentical=function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1;for(var r=1;r<=n;r++){if(e.getLineContent(r)!==t.getLineContent(r))return!1}return!0},t.prototype.computeMoreMinimalEdits=function(e,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l,f,h,p,m,g,v,_,y,b,C,E,S,L;return c(this,(function(c){if(!(o=this._getModel(e)))return[2,i];for(s=[],u=void 0,i=n.mergeSort(i,(function(e,t){return e.range&&t.range?d.Range.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),a=0,l=i;a<l.length;a++)if(f=l[a],h=f.range,p=f.text,\"number\"==typeof(m=f.eol)&&(u=m),\n(!d.Range.isEmpty(h)||p)&&(g=o.getValueInRange(h),p=p.replace(/\\r\\n|\\n|\\r/g,o.eol),g!==p))if(Math.max(p.length,g.length)>t._diffLimit)s.push({range:h,text:p});else for(v=r.stringDiff(g,p,!1),_=o.offsetAt(d.Range.lift(h).getStartPosition()),y=0,b=v;y<b.length;y++)C=b[y],E=o.positionAt(_+C.originalStart),S=o.positionAt(_+C.originalStart+C.originalLength),L={text:p.substr(C.modifiedStart,C.modifiedLength),range:{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:S.lineNumber,endColumn:S.column}},o.getValueInRange(L.range)!==L.text&&s.push(L);return\"number\"==typeof u&&s.push({eol:u,text:\"\",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),[2,s]}))}))},t.prototype.computeLinks=function(e){return l(this,void 0,void 0,(function(){var t;return c(this,(function(n){return(t=this._getModel(e))?[2,m.computeLinks(t)]:[2,null]}))}))},t.prototype.textualSuggest=function(e,n,r,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l,d,f,h;return c(this,(function(c){\nif(!(o=this._getModel(e)))return[2,null];for(s=[],u=new Set,a=new RegExp(r,i),(l=o.getWordAtPosition(n,a))&&u.add(o.getValueInRange(l)),d=o.createWordIterator(a),f=d.next();!f.done&&u.size<=t._suggestionsLimit;f=d.next())h=f.value,u.has(h)||(u.add(h),isNaN(Number(h))&&s.push(h));return[2,s]}))}))},t.prototype.computeWordRanges=function(e,t,n,r){return l(this,void 0,void 0,(function(){var i,o,s,u,a,l,d,f,h;return c(this,(function(c){if(!(i=this._getModel(e)))return[2,Object.create(null)];for(o=new RegExp(n,r),s=Object.create(null),u=t.startLineNumber;u<t.endLineNumber;u++)for(a=i.getLineWords(u,o),l=0,d=a;l<d.length;l++)f=d[l],isNaN(Number(f.word))&&((h=s[f.word])||(h=[],s[f.word]=h),h.push({startLineNumber:u,startColumn:f.startColumn,endLineNumber:u,endColumn:f.endColumn}));return[2,s]}))}))},t.prototype.navigateValueSet=function(e,t,n,r,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l;return c(this,(function(c){return(o=this._getModel(e))?(s=new RegExp(r,i),t.startColumn===t.endColumn&&(t={\nstartLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),u=o.getValueInRange(t),(a=o.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s))?(l=o.getValueInRange(a),[2,g.BasicInplaceReplace.INSTANCE.navigateValueSet(t,u,a,l,n)]):[2,null]):[2,null]}))}))},t.prototype.loadForeignModule=function(t,n,r){var i=this,o={host:_.createProxyObject(r,(function(e,t){return i._host.fhr(e,t)})),getMirrorModels:function(){return i._getModels()}};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(o,n),Promise.resolve(_.getAllMethodNames(this._foreignModule))):new Promise((function(r,s){e([t],(function(e){i._foreignModule=e.create(o,n),r(_.getAllMethodNames(i._foreignModule))}),s)}))},t.prototype.fmr=function(e,t){if(!this._foreignModule||\"function\"!=typeof this._foreignModule[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{\nreturn Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}},t._diffLimit=1e5,t._suggestionsLimit=1e4,t}();t.EditorSimpleWorker=b,t.create=function(e){return new b(e,null)},\"function\"==typeof importScripts&&(o.globals.monaco=v.createMonacoBaseAPI())})),function(){var e=self.MonacoEnvironment,t=e&&e.baseUrl?e.baseUrl:\"../../../\";\"function\"==typeof self.define&&self.define.amd||importScripts(t+\"vs/loader.js\"),require.config({baseUrl:t,catchError:!0});var n=!0,r=[];self.onmessage=function(e){var t;n?(n=!1,t=e.data,require([t],(function(e){setTimeout((function(){var t=e.create((function(e,t){self.postMessage(e,t)}),null);for(self.onmessage=function(e){return t.onmessage(e.data)};r.length>0;)self.onmessage(r.shift())}),0)}))):r.push(e)}}()}).call(this);\n//# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/abap/abap.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/abap/abap\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"*\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"]]};n.language={defaultToken:\"invalid\",ignoreCase:!0,tokenPostfix:\".abap\",keywords:[\"abstract\",\"add\",\"add-corresponding\",\"adjacent\",\"alias\",\"aliases\",\"all\",\"append\",\"appending\",\"ascending\",\"as\",\"assert\",\"assign\",\"assigned\",\"assigning\",\"association\",\"authority-check\",\"back\",\"begin\",\"binary\",\"block\",\"bound\",\"break-point\",\"by\",\"byte\",\"class\",\"call\",\"cast\",\"changing\",\"check\",\"class-data\",\"class-method\",\"class-methods\",\"clear\",\"close\",\"cnt\",\"collect\",\"commit\",\"cond\",\"character\",\"corresponding\",\"communication\",\"component\",\"compute\",\"concatenate\",\"condense\",\"constants\",\"conv\",\"count\",\"controls\",\"convert\",\"create\",\"currency\",\"data\",\"descending\",\"default\",\"define\",\"deferred\",\"delete\",\"describe\",\"detail\",\"display\",\"divide\",\"divide-corresponding\",\"display-mode\",\"duplicates\",\"deleting\",\"editor-call\",\"end\",\"endexec\",\"endfunction\",\"ending\",\"endmodule\",\"end-of-definition\",\"end-of-page\",\"end-of-selection\",\"end-test-injection\",\"end-test-seam\",\"exit-command\",\"endclass\",\"endmethod\",\"endform\",\"endinterface\",\"endprovide\",\"endselect\",\"endtry\",\"endwhile\",\"enum\",\"event\",\"events\",\"exec\",\"exit\",\"export\",\"exporting\",\"extract\",\"exception\",\"exceptions\",\"field-symbols\",\"field-groups\",\"field\",\"first\",\"fetch\",\"fields\",\"format\",\"frame\",\"free\",\"from\",\"function\",\"find\",\"for\",\"found\",\"function-pool\",\"generate\",\"get\",\"handle\",\"hide\",\"hashed\",\"include\",\"import\",\"importing\",\"index\",\"infotypes\",\"initial\",\"initialization\",\"id\",\"is\",\"in\",\"interface\",\"interfaces\",\"init\",\"input\",\"insert\",\"instance\",\"into\",\"key\",\"left-justified\",\"leave\",\"like\",\"line\",\"line-count\",\"line-size\",\"load\",\"local\",\"log-point\",\"length\",\"left\",\"leading\",\"lower\",\"matchcode\",\"method\",\"mesh\",\"message\",\"message-id\",\"methods\",\"modify\",\"module\",\"move\",\"move-corresponding\",\"multiply\",\"multiply-corresponding\",\"match\",\"new\",\"new-line\",\"new-page\",\"new-section\",\"next\",\"no\",\"no-gap\",\"no-gaps\",\"no-sign\",\"no-zero\",\"non-unique\",\"number\",\"occurrence\",\"object\",\"obligatory\",\"of\",\"output\",\"overlay\",\"optional\",\"others\",\"occurrences\",\"occurs\",\"offset\",\"options\",\"pack\",\"parameters\",\"perform\",\"places\",\"position\",\"print-control\",\"private\",\"program\",\"protected\",\"provide\",\"public\",\"put\",\"radiobutton\",\"raising\",\"ranges\",\"receive\",\"receiving\",\"redefinition\",\"reduce\",\"reference\",\"refresh\",\"regex\",\"reject\",\"results\",\"requested\",\"ref\",\"replace\",\"report\",\"reserve\",\"restore\",\"result\",\"return\",\"returning\",\"right-justified\",\"rollback\",\"read\",\"read-only\",\"rp-provide-from-last\",\"run\",\"scan\",\"screen\",\"scroll\",\"search\",\"select\",\"select-options\",\"selection-screen\",\"stamp\",\"source\",\"subkey\",\"separated\",\"set\",\"shift\",\"single\",\"skip\",\"sort\",\"sorted\",\"split\",\"standard\",\"stamp\",\"starting\",\"start-of-selection\",\"sum\",\"subtract-corresponding\",\"statics\",\"step\",\"stop\",\"structure\",\"submatches\",\"submit\",\"subtract\",\"summary\",\"supplied\",\"suppress\",\"section\",\"syntax-check\",\"syntax-trace\",\"system-call\",\"switch\",\"tables\",\"table\",\"task\",\"testing\",\"test-seam\",\"test-injection\",\"then\",\"time\",\"times\",\"title\",\"titlebar\",\"to\",\"top-of-page\",\"trailing\",\"transfer\",\"transformation\",\"translate\",\"transporting\",\"types\",\"type\",\"type-pool\",\"type-pools\",\"unassign\",\"unique\",\"uline\",\"unpack\",\"update\",\"upper\",\"using\",\"value\",\"when\",\"while\",\"window\",\"write\",\"where\",\"with\",\"work\",\"at\",\"case\",\"catch\",\"continue\",\"do\",\"elseif\",\"else\",\"endat\",\"endcase\",\"enddo\",\"endif\",\"endloop\",\"endon\",\"if\",\"loop\",\"on\",\"raise\",\"try\",\"abs\",\"sign\",\"ceil\",\"floor\",\"trunc\",\"frac\",\"acos\",\"asin\",\"atan\",\"cos\",\"sin\",\"tan\",\"cosh\",\"sinh\",\"tanh\",\"exp\",\"log\",\"log10\",\"sqrt\",\"strlen\",\"xstrlen\",\"charlen\",\"lines\",\"numofchar\",\"dbmaxlen\",\"round\",\"rescale\",\"nmax\",\"nmin\",\"cmax\",\"cmin\",\"boolc\",\"boolx\",\"xsdbool\",\"contains\",\"contains_any_of\",\"contains_any_not_of\",\"matches\",\"line_exists\",\"ipow\",\"char_off\",\"count\",\"count_any_of\",\"count_any_not_of\",\"distance\",\"condense\",\"concat_lines_of\",\"escape\",\"find\",\"find_end\",\"find_any_of\",\"find_any_not_of\",\"insert\",\"match\",\"repeat\",\"replace\",\"reverse\",\"segment\",\"shift_left\",\"shift_right\",\"substring\",\"substring_after\",\"substring_from\",\"substring_before\",\"substring_to\",\"to_upper\",\"to_lower\",\"to_mixed\",\"from_mixed\",\"translate\",\"bit-set\",\"line_index\",\"definition\",\"implementation\",\"public\",\"inheriting\",\"final\"],typeKeywords:[\"abap_bool\",\"string\",\"xstring\",\"any\",\"clike\",\"csequence\",\"numeric\",\"xsequence\",\"c\",\"n\",\"i\",\"p\",\"f\",\"d\",\"t\",\"x\"],operators:[\"+\",\"-\",\"/\",\"*\",\"=\",\"<\",\">\",\"<=\",\">=\",\"<>\",\"><\",\"=<\",\"=>\",\"EQ\",\"NE\",\"GE\",\"LE\",\"CS\",\"CN\",\"CA\",\"CO\",\"CP\",\"NS\",\"NA\",\"NP\"],symbols:/[=><!~?&+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[:,.]/,\"delimiter\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/'/,{token:\"string\",bracket:\"@open\",next:\"@stringquote\"}],[/\\|/,{token:\"string\",bracket:\"@open\",next:\"@stringtemplate\"}],[/\\d+/,\"number\"]],stringtemplate:[[/[^\\\\\\|]+/,\"string\"],[/\\\\\\|/,\"string\"],[/\\|/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],stringquote:[[/[^\\\\']+/,\"string\"],[/'/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\*.*$/,\"comment\"],[/\\\".*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/apex/apex.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/apex/apex\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}};var s=[];[\"abstract\",\"activate\",\"and\",\"any\",\"array\",\"as\",\"asc\",\"assert\",\"autonomous\",\"begin\",\"bigdecimal\",\"blob\",\"boolean\",\"break\",\"bulk\",\"by\",\"case\",\"cast\",\"catch\",\"char\",\"class\",\"collect\",\"commit\",\"const\",\"continue\",\"convertcurrency\",\"decimal\",\"default\",\"delete\",\"desc\",\"do\",\"double\",\"else\",\"end\",\"enum\",\"exception\",\"exit\",\"export\",\"extends\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"from\",\"future\",\"get\",\"global\",\"goto\",\"group\",\"having\",\"hint\",\"if\",\"implements\",\"import\",\"in\",\"inner\",\"insert\",\"instanceof\",\"int\",\"interface\",\"into\",\"join\",\"last_90_days\",\"last_month\",\"last_n_days\",\"last_week\",\"like\",\"limit\",\"list\",\"long\",\"loop\",\"map\",\"merge\",\"native\",\"new\",\"next_90_days\",\"next_month\",\"next_n_days\",\"next_week\",\"not\",\"null\",\"nulls\",\"number\",\"object\",\"of\",\"on\",\"or\",\"outer\",\"override\",\"package\",\"parallel\",\"pragma\",\"private\",\"protected\",\"public\",\"retrieve\",\"return\",\"returning\",\"rollback\",\"savepoint\",\"search\",\"select\",\"set\",\"short\",\"sort\",\"stat\",\"static\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"system\",\"testmethod\",\"then\",\"this\",\"this_month\",\"this_week\",\"throw\",\"throws\",\"today\",\"tolabel\",\"tomorrow\",\"transaction\",\"transient\",\"trigger\",\"true\",\"try\",\"type\",\"undelete\",\"update\",\"upsert\",\"using\",\"virtual\",\"void\",\"volatile\",\"webservice\",\"when\",\"where\",\"while\",\"yesterday\"].forEach((function(e){s.push(e),s.push(e.toUpperCase()),s.push(function(e){return e.charAt(0).toUpperCase()+e.substr(1)}(e))})),t.language={defaultToken:\"\",tokenPostfix:\".apex\",keywords:s,operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@apexdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],apexdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/azcli/azcli.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/azcli/azcli\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\"}},t.language={defaultToken:\"keyword\",ignoreCase:!0,tokenPostfix:\".azcli\",str:/[^#\\s]/,tokenizer:{root:[{include:\"@comment\"},[/\\s-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}],[/^-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}]],type:[{include:\"@comment\"},[/-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":\"key.identifier\"}}],[/@str+\\s*/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}]],comment:[[/#.*$/,{cases:{\"@eos\":{token:\"comment\",next:\"@popall\"}}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/bat/bat.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/bat/bat\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={comments:{lineComment:\"REM\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#region\"),end:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#endregion\")}}},s.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".bat\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)(rem(?:\\s.*|))$/,[\"\",\"comment\"]],[/(\\@?)(@keywords)(?!\\w)/,[{token:\"keyword\"},{token:\"keyword.$2\"}]],[/[ \\t\\r\\n]+/,\"\"],[/setlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/endlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/[a-zA-Z_]\\w*/,\"\"],[/:\\w*/,\"metatag\"],[/%[^%]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],string:[[/[^\\\\\"'%]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/%[\\w ]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/$/,\"string\",\"@popall\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/cameligo/cameligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/cameligo/cameligo\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}]},t.language={defaultToken:\"\",tokenPostfix:\".cameligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"abs\",\"begin\",\"Bytes\",\"Crypto\",\"Current\",\"else\",\"end\",\"failwith\",\"false\",\"fun\",\"if\",\"in\",\"let\",\"let%entry\",\"let%init\",\"List\",\"list\",\"Map\",\"map\",\"match\",\"match%nat\",\"mod\",\"not\",\"operation\",\"Operation\",\"of\",\"Set\",\"set\",\"sender\",\"source\",\"String\",\"then\",\"true\",\"type\",\"with\"],typeKeywords:[\"int\",\"unit\",\"string\",\"tz\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\",\"->\",\"<-\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/clojure/clojure.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/clojure/clojure\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\";;\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}]},t.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".clj\",brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"}],constants:[\"true\",\"false\",\"nil\"],numbers:/^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/,characters:/^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,escapes:/^\\\\(?:[\"'\\\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,specialForms:[\".\",\"catch\",\"def\",\"do\",\"if\",\"monitor-enter\",\"monitor-exit\",\"new\",\"quote\",\"recur\",\"set!\",\"throw\",\"try\",\"var\"],coreSymbols:[\"*\",\"*'\",\"*1\",\"*2\",\"*3\",\"*agent*\",\"*allow-unresolved-vars*\",\"*assert*\",\"*clojure-version*\",\"*command-line-args*\",\"*compile-files*\",\"*compile-path*\",\"*compiler-options*\",\"*data-readers*\",\"*default-data-reader-fn*\",\"*e\",\"*err*\",\"*file*\",\"*flush-on-newline*\",\"*fn-loader*\",\"*in*\",\"*math-context*\",\"*ns*\",\"*out*\",\"*print-dup*\",\"*print-length*\",\"*print-level*\",\"*print-meta*\",\"*print-namespace-maps*\",\"*print-readably*\",\"*read-eval*\",\"*reader-resolver*\",\"*source-path*\",\"*suppress-read*\",\"*unchecked-math*\",\"*use-context-classloader*\",\"*verbose-defrecords*\",\"*warn-on-reflection*\",\"+\",\"+'\",\"-\",\"-'\",\"->\",\"->>\",\"->ArrayChunk\",\"->Eduction\",\"->Vec\",\"->VecNode\",\"->VecSeq\",\"-cache-protocol-fn\",\"-reset-methods\",\"..\",\"/\",\"<\",\"<=\",\"=\",\"==\",\">\",\">=\",\"EMPTY-NODE\",\"Inst\",\"StackTraceElement->vec\",\"Throwable->map\",\"accessor\",\"aclone\",\"add-classpath\",\"add-watch\",\"agent\",\"agent-error\",\"agent-errors\",\"aget\",\"alength\",\"alias\",\"all-ns\",\"alter\",\"alter-meta!\",\"alter-var-root\",\"amap\",\"ancestors\",\"and\",\"any?\",\"apply\",\"areduce\",\"array-map\",\"as->\",\"aset\",\"aset-boolean\",\"aset-byte\",\"aset-char\",\"aset-double\",\"aset-float\",\"aset-int\",\"aset-long\",\"aset-short\",\"assert\",\"assoc\",\"assoc!\",\"assoc-in\",\"associative?\",\"atom\",\"await\",\"await-for\",\"await1\",\"bases\",\"bean\",\"bigdec\",\"bigint\",\"biginteger\",\"binding\",\"bit-and\",\"bit-and-not\",\"bit-clear\",\"bit-flip\",\"bit-not\",\"bit-or\",\"bit-set\",\"bit-shift-left\",\"bit-shift-right\",\"bit-test\",\"bit-xor\",\"boolean\",\"boolean-array\",\"boolean?\",\"booleans\",\"bound-fn\",\"bound-fn*\",\"bound?\",\"bounded-count\",\"butlast\",\"byte\",\"byte-array\",\"bytes\",\"bytes?\",\"case\",\"cast\",\"cat\",\"char\",\"char-array\",\"char-escape-string\",\"char-name-string\",\"char?\",\"chars\",\"chunk\",\"chunk-append\",\"chunk-buffer\",\"chunk-cons\",\"chunk-first\",\"chunk-next\",\"chunk-rest\",\"chunked-seq?\",\"class\",\"class?\",\"clear-agent-errors\",\"clojure-version\",\"coll?\",\"comment\",\"commute\",\"comp\",\"comparator\",\"compare\",\"compare-and-set!\",\"compile\",\"complement\",\"completing\",\"concat\",\"cond\",\"cond->\",\"cond->>\",\"condp\",\"conj\",\"conj!\",\"cons\",\"constantly\",\"construct-proxy\",\"contains?\",\"count\",\"counted?\",\"create-ns\",\"create-struct\",\"cycle\",\"dec\",\"dec'\",\"decimal?\",\"declare\",\"dedupe\",\"default-data-readers\",\"definline\",\"definterface\",\"defmacro\",\"defmethod\",\"defmulti\",\"defn\",\"defn-\",\"defonce\",\"defprotocol\",\"defrecord\",\"defstruct\",\"deftype\",\"delay\",\"delay?\",\"deliver\",\"denominator\",\"deref\",\"derive\",\"descendants\",\"destructure\",\"disj\",\"disj!\",\"dissoc\",\"dissoc!\",\"distinct\",\"distinct?\",\"doall\",\"dorun\",\"doseq\",\"dosync\",\"dotimes\",\"doto\",\"double\",\"double-array\",\"double?\",\"doubles\",\"drop\",\"drop-last\",\"drop-while\",\"eduction\",\"empty\",\"empty?\",\"ensure\",\"ensure-reduced\",\"enumeration-seq\",\"error-handler\",\"error-mode\",\"eval\",\"even?\",\"every-pred\",\"every?\",\"ex-data\",\"ex-info\",\"extend\",\"extend-protocol\",\"extend-type\",\"extenders\",\"extends?\",\"false?\",\"ffirst\",\"file-seq\",\"filter\",\"filterv\",\"find\",\"find-keyword\",\"find-ns\",\"find-protocol-impl\",\"find-protocol-method\",\"find-var\",\"first\",\"flatten\",\"float\",\"float-array\",\"float?\",\"floats\",\"flush\",\"fn\",\"fn?\",\"fnext\",\"fnil\",\"for\",\"force\",\"format\",\"frequencies\",\"future\",\"future-call\",\"future-cancel\",\"future-cancelled?\",\"future-done?\",\"future?\",\"gen-class\",\"gen-interface\",\"gensym\",\"get\",\"get-in\",\"get-method\",\"get-proxy-class\",\"get-thread-bindings\",\"get-validator\",\"group-by\",\"halt-when\",\"hash\",\"hash-combine\",\"hash-map\",\"hash-ordered-coll\",\"hash-set\",\"hash-unordered-coll\",\"ident?\",\"identical?\",\"identity\",\"if-let\",\"if-not\",\"if-some\",\"ifn?\",\"import\",\"in-ns\",\"inc\",\"inc'\",\"indexed?\",\"init-proxy\",\"inst-ms\",\"inst-ms*\",\"inst?\",\"instance?\",\"int\",\"int-array\",\"int?\",\"integer?\",\"interleave\",\"intern\",\"interpose\",\"into\",\"into-array\",\"ints\",\"io!\",\"isa?\",\"iterate\",\"iterator-seq\",\"juxt\",\"keep\",\"keep-indexed\",\"key\",\"keys\",\"keyword\",\"keyword?\",\"last\",\"lazy-cat\",\"lazy-seq\",\"let\",\"letfn\",\"line-seq\",\"list\",\"list*\",\"list?\",\"load\",\"load-file\",\"load-reader\",\"load-string\",\"loaded-libs\",\"locking\",\"long\",\"long-array\",\"longs\",\"loop\",\"macroexpand\",\"macroexpand-1\",\"make-array\",\"make-hierarchy\",\"map\",\"map-entry?\",\"map-indexed\",\"map?\",\"mapcat\",\"mapv\",\"max\",\"max-key\",\"memfn\",\"memoize\",\"merge\",\"merge-with\",\"meta\",\"method-sig\",\"methods\",\"min\",\"min-key\",\"mix-collection-hash\",\"mod\",\"munge\",\"name\",\"namespace\",\"namespace-munge\",\"nat-int?\",\"neg-int?\",\"neg?\",\"newline\",\"next\",\"nfirst\",\"nil?\",\"nnext\",\"not\",\"not-any?\",\"not-empty\",\"not-every?\",\"not=\",\"ns\",\"ns-aliases\",\"ns-imports\",\"ns-interns\",\"ns-map\",\"ns-name\",\"ns-publics\",\"ns-refers\",\"ns-resolve\",\"ns-unalias\",\"ns-unmap\",\"nth\",\"nthnext\",\"nthrest\",\"num\",\"number?\",\"numerator\",\"object-array\",\"odd?\",\"or\",\"parents\",\"partial\",\"partition\",\"partition-all\",\"partition-by\",\"pcalls\",\"peek\",\"persistent!\",\"pmap\",\"pop\",\"pop!\",\"pop-thread-bindings\",\"pos-int?\",\"pos?\",\"pr\",\"pr-str\",\"prefer-method\",\"prefers\",\"primitives-classnames\",\"print\",\"print-ctor\",\"print-dup\",\"print-method\",\"print-simple\",\"print-str\",\"printf\",\"println\",\"println-str\",\"prn\",\"prn-str\",\"promise\",\"proxy\",\"proxy-call-with-super\",\"proxy-mappings\",\"proxy-name\",\"proxy-super\",\"push-thread-bindings\",\"pvalues\",\"qualified-ident?\",\"qualified-keyword?\",\"qualified-symbol?\",\"quot\",\"rand\",\"rand-int\",\"rand-nth\",\"random-sample\",\"range\",\"ratio?\",\"rational?\",\"rationalize\",\"re-find\",\"re-groups\",\"re-matcher\",\"re-matches\",\"re-pattern\",\"re-seq\",\"read\",\"read-line\",\"read-string\",\"reader-conditional\",\"reader-conditional?\",\"realized?\",\"record?\",\"reduce\",\"reduce-kv\",\"reduced\",\"reduced?\",\"reductions\",\"ref\",\"ref-history-count\",\"ref-max-history\",\"ref-min-history\",\"ref-set\",\"refer\",\"refer-clojure\",\"reify\",\"release-pending-sends\",\"rem\",\"remove\",\"remove-all-methods\",\"remove-method\",\"remove-ns\",\"remove-watch\",\"repeat\",\"repeatedly\",\"replace\",\"replicate\",\"require\",\"reset!\",\"reset-meta!\",\"reset-vals!\",\"resolve\",\"rest\",\"restart-agent\",\"resultset-seq\",\"reverse\",\"reversible?\",\"rseq\",\"rsubseq\",\"run!\",\"satisfies?\",\"second\",\"select-keys\",\"send\",\"send-off\",\"send-via\",\"seq\",\"seq?\",\"seqable?\",\"seque\",\"sequence\",\"sequential?\",\"set\",\"set-agent-send-executor!\",\"set-agent-send-off-executor!\",\"set-error-handler!\",\"set-error-mode!\",\"set-validator!\",\"set?\",\"short\",\"short-array\",\"shorts\",\"shuffle\",\"shutdown-agents\",\"simple-ident?\",\"simple-keyword?\",\"simple-symbol?\",\"slurp\",\"some\",\"some->\",\"some->>\",\"some-fn\",\"some?\",\"sort\",\"sort-by\",\"sorted-map\",\"sorted-map-by\",\"sorted-set\",\"sorted-set-by\",\"sorted?\",\"special-symbol?\",\"spit\",\"split-at\",\"split-with\",\"str\",\"string?\",\"struct\",\"struct-map\",\"subs\",\"subseq\",\"subvec\",\"supers\",\"swap!\",\"swap-vals!\",\"symbol\",\"symbol?\",\"sync\",\"tagged-literal\",\"tagged-literal?\",\"take\",\"take-last\",\"take-nth\",\"take-while\",\"test\",\"the-ns\",\"thread-bound?\",\"time\",\"to-array\",\"to-array-2d\",\"trampoline\",\"transduce\",\"transient\",\"tree-seq\",\"true?\",\"type\",\"unchecked-add\",\"unchecked-add-int\",\"unchecked-byte\",\"unchecked-char\",\"unchecked-dec\",\"unchecked-dec-int\",\"unchecked-divide-int\",\"unchecked-double\",\"unchecked-float\",\"unchecked-inc\",\"unchecked-inc-int\",\"unchecked-int\",\"unchecked-long\",\"unchecked-multiply\",\"unchecked-multiply-int\",\"unchecked-negate\",\"unchecked-negate-int\",\"unchecked-remainder-int\",\"unchecked-short\",\"unchecked-subtract\",\"unchecked-subtract-int\",\"underive\",\"unquote\",\"unquote-splicing\",\"unreduced\",\"unsigned-bit-shift-right\",\"update\",\"update-in\",\"update-proxy\",\"uri?\",\"use\",\"uuid?\",\"val\",\"vals\",\"var-get\",\"var-set\",\"var?\",\"vary-meta\",\"vec\",\"vector\",\"vector-of\",\"vector?\",\"volatile!\",\"volatile?\",\"vreset!\",\"vswap!\",\"when\",\"when-first\",\"when-let\",\"when-not\",\"when-some\",\"while\",\"with-bindings\",\"with-bindings*\",\"with-in-str\",\"with-loading-context\",\"with-local-vars\",\"with-meta\",\"with-open\",\"with-out-str\",\"with-precision\",\"with-redefs\",\"with-redefs-fn\",\"xml-seq\",\"zero?\",\"zipmap\"],tokenizer:{root:[{include:\"@whitespace\"},[/@numbers/,\"number\"],[/@characters/,\"string\"],{include:\"@string\"},[/[()\\[\\]{}]/,\"@brackets\"],[/\\/#\"(?:\\.|(?:\")|[^\"\\n])*\"\\/g/,\"regexp\"],[/[#'@^`~]/,\"meta\"],[/@qualifiedSymbols/,{cases:{\"^:.+$\":\"constant\",\"@specialForms\":\"keyword\",\"@coreSymbols\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],whitespace:[[/[\\s,]+/,\"white\"],[/;.*$/,\"comment\"],[/\\(comment\\b/,\"comment\",\"@comment\"]],comment:[[/\\(/,\"comment\",\"@push\"],[/\\)/,\"comment\",\"@pop\"],[/[^()]/,\"comment\"]],string:[[/\"/,\"string\",\"@multiLineString\"]],multiLineString:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/coffee/coffee.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/coffee/coffee\",[\"require\",\"exports\"],(function(e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},r.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".coffee\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\"and\",\"or\",\"is\",\"isnt\",\"not\",\"on\",\"yes\",\"@\",\"no\",\"off\",\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\",\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],symbols:/[=><!~?&%|+\\-*\\/\\^\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/###/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\()(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\=)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\[)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\!)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\&)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\|)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\?)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\{)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\;)(\\s*)(@regEx)/,[\"\",\"\",\"regexp\"]],[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/###/,\"comment\",\"@pop\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/cpp/cpp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/cpp/cpp\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\".cpp\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"abstract\",\"amp\",\"array\",\"auto\",\"bool\",\"break\",\"case\",\"catch\",\"char\",\"class\",\"const\",\"constexpr\",\"const_cast\",\"continue\",\"cpu\",\"decltype\",\"default\",\"delegate\",\"delete\",\"do\",\"double\",\"dynamic_cast\",\"each\",\"else\",\"enum\",\"event\",\"explicit\",\"export\",\"extern\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"friend\",\"gcnew\",\"generic\",\"goto\",\"if\",\"in\",\"initonly\",\"inline\",\"int\",\"interface\",\"interior_ptr\",\"internal\",\"literal\",\"long\",\"mutable\",\"namespace\",\"new\",\"noexcept\",\"nullptr\",\"__nullptr\",\"operator\",\"override\",\"partial\",\"pascal\",\"pin_ptr\",\"private\",\"property\",\"protected\",\"public\",\"ref\",\"register\",\"reinterpret_cast\",\"restrict\",\"return\",\"safe_cast\",\"sealed\",\"short\",\"signed\",\"sizeof\",\"static\",\"static_assert\",\"static_cast\",\"struct\",\"switch\",\"template\",\"this\",\"thread_local\",\"throw\",\"tile_static\",\"true\",\"try\",\"typedef\",\"typeid\",\"typename\",\"union\",\"unsigned\",\"using\",\"virtual\",\"void\",\"volatile\",\"wchar_t\",\"where\",\"while\",\"_asm\",\"_based\",\"_cdecl\",\"_declspec\",\"_fastcall\",\"_if_exists\",\"_if_not_exists\",\"_inline\",\"_multiple_inheritance\",\"_pascal\",\"_single_inheritance\",\"_stdcall\",\"_virtual_inheritance\",\"_w64\",\"__abstract\",\"__alignof\",\"__asm\",\"__assume\",\"__based\",\"__box\",\"__builtin_alignof\",\"__cdecl\",\"__clrcall\",\"__declspec\",\"__delegate\",\"__event\",\"__except\",\"__fastcall\",\"__finally\",\"__forceinline\",\"__gc\",\"__hook\",\"__identifier\",\"__if_exists\",\"__if_not_exists\",\"__inline\",\"__int128\",\"__int16\",\"__int32\",\"__int64\",\"__int8\",\"__interface\",\"__leave\",\"__m128\",\"__m128d\",\"__m128i\",\"__m256\",\"__m256d\",\"__m256i\",\"__m64\",\"__multiple_inheritance\",\"__newslot\",\"__nogc\",\"__noop\",\"__nounwind\",\"__novtordisp\",\"__pascal\",\"__pin\",\"__pragma\",\"__property\",\"__ptr32\",\"__ptr64\",\"__raise\",\"__restrict\",\"__resume\",\"__sealed\",\"__single_inheritance\",\"__stdcall\",\"__super\",\"__thiscall\",\"__try\",\"__try_cast\",\"__typeof\",\"__unaligned\",\"__unhook\",\"__uuidof\",\"__value\",\"__virtual_inheritance\",\"__w64\",\"__wchar_t\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\\\"(?:([^ ()\\\\\\t]*))\\(/,{token:\"string.raw.begin\",next:\"@raw.$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#include/,{token:\"keyword.directive.include\",next:\"@include\"}],[/^\\s*#\\s*\\w+/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],raw:[[/(.*)(\\))(?:([^ ()\\\\\\t]*))(\\\")/,{cases:{\"$3==$S2\":[\"string.raw\",\"string.raw.end\",\"string.raw.end\",{token:\"string.raw.end\",next:\"@pop\"}],\"@default\":[\"string.raw\",\"string.raw\",\"string.raw\",\"string.raw\"]}}],[/.*/,\"string.raw\"]],include:[[/(\\s*)(<)([^<>]*)(>)/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]],[/(\\s*)(\")([^\"]*)(\")/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/csharp/csharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/csharp/csharp\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\".cs\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"extern\",\"alias\",\"using\",\"bool\",\"decimal\",\"sbyte\",\"byte\",\"short\",\"ushort\",\"int\",\"uint\",\"long\",\"ulong\",\"char\",\"float\",\"double\",\"object\",\"dynamic\",\"string\",\"assembly\",\"is\",\"as\",\"ref\",\"out\",\"this\",\"base\",\"new\",\"typeof\",\"void\",\"checked\",\"unchecked\",\"default\",\"delegate\",\"var\",\"const\",\"if\",\"else\",\"switch\",\"case\",\"while\",\"do\",\"for\",\"foreach\",\"in\",\"break\",\"continue\",\"goto\",\"return\",\"throw\",\"try\",\"catch\",\"finally\",\"lock\",\"yield\",\"from\",\"let\",\"where\",\"join\",\"on\",\"equals\",\"into\",\"orderby\",\"ascending\",\"descending\",\"select\",\"group\",\"by\",\"namespace\",\"partial\",\"class\",\"field\",\"event\",\"method\",\"param\",\"property\",\"public\",\"protected\",\"internal\",\"private\",\"abstract\",\"sealed\",\"static\",\"struct\",\"readonly\",\"volatile\",\"virtual\",\"override\",\"params\",\"get\",\"set\",\"add\",\"remove\",\"operator\",\"true\",\"false\",\"implicit\",\"explicit\",\"interface\",\"enum\",\"null\",\"async\",\"await\",\"fixed\",\"sizeof\",\"stackalloc\",\"unsafe\",\"nameof\",\"when\"],namespaceFollows:[\"namespace\",\"using\"],parenFollows:[\"if\",\"for\",\"while\",\"switch\",\"foreach\",\"using\",\"catch\",\"when\"],operators:[\"=\",\"??\",\"||\",\"&&\",\"|\",\"^\",\"&\",\"==\",\"!=\",\"<=\",\">=\",\"<<\",\"+\",\"-\",\"*\",\"/\",\"%\",\"!\",\"~\",\"++\",\"--\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\">>\",\"=>\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@?[a-zA-Z_]\\w*/,{cases:{\"@namespaceFollows\":{token:\"keyword.$0\",next:\"@namespace\"},\"@keywords\":{token:\"keyword.$0\",next:\"@qualified\"},\"@default\":{token:\"identifier\",next:\"@qualified\"}}}],{include:\"@whitespace\"},[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string.quote\",next:\"@pop\"},\"$S2==litinterpstring\":{token:\"string.quote\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?[fFdD]?/,\"number.float\"],[/0[xX][0-9a-fA-F_]+/,\"number.hex\"],[/0[bB][01_]+/,\"number.hex\"],[/[0-9_]+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",next:\"@string\"}],[/\\$\\@\"/,{token:\"string.quote\",next:\"@litinterpstring\"}],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/\\$\"/,{token:\"string.quote\",next:\"@interpolatedstring\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],qualified:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/\\./,\"delimiter\"],[\"\",\"\",\"@pop\"]],namespace:[{include:\"@whitespace\"},[/[A-Z]\\w*/,\"namespace\"],[/[\\.=]/,\"delimiter\"],[\"\",\"\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litinterpstring:[[/[^\"{]+/,\"string\"],[/\"\"/,\"string.escape\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.litinterpstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],interpolatedstring:[[/[^\\\\\"{]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],whitespace:[[/^[ \\t\\v\\f]*#((r)|(load))(?=\\s)/,\"directive.csx\"],[/^[ \\t\\v\\f]*#\\w.*$/,\"namespace.cpp\"],[/[ \\t\\v\\f\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/csp/csp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/csp/csp\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={brackets:[],autoClosingPairs:[],surroundingPairs:[]},e.language={keywords:[],typeKeywords:[],tokenPostfix:\".csp\",operators:[],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,\"string.quote\"],[/connect-src/,\"string.quote\"],[/default-src/,\"string.quote\"],[/font-src/,\"string.quote\"],[/frame-src/,\"string.quote\"],[/img-src/,\"string.quote\"],[/manifest-src/,\"string.quote\"],[/media-src/,\"string.quote\"],[/object-src/,\"string.quote\"],[/script-src/,\"string.quote\"],[/style-src/,\"string.quote\"],[/worker-src/,\"string.quote\"],[/base-uri/,\"string.quote\"],[/plugin-types/,\"string.quote\"],[/sandbox/,\"string.quote\"],[/disown-opener/,\"string.quote\"],[/form-action/,\"string.quote\"],[/frame-ancestors/,\"string.quote\"],[/report-uri/,\"string.quote\"],[/report-to/,\"string.quote\"],[/upgrade-insecure-requests/,\"string.quote\"],[/block-all-mixed-content/,\"string.quote\"],[/require-sri-for/,\"string.quote\"],[/reflected-xss/,\"string.quote\"],[/referrer/,\"string.quote\"],[/policy-uri/,\"string.quote\"],[/'self'/,\"string.quote\"],[/'unsafe-inline'/,\"string.quote\"],[/'unsafe-eval'/,\"string.quote\"],[/'strict-dynamic'/,\"string.quote\"],[/'unsafe-hashed-attributes'/,\"string.quote\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/css/css.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/css/css\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|((::|[@#.!:])?[\\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".css\",ws:\"[ \\t\\n\\r\\f]*\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.bracket\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@strings\"},[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@selectorname\"},[\"[\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}]],selectorbody:[{include:\"@comments\"},[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],selectorname:[[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@name\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"delimiter\"],[\",\",\"delimiter\"]],rulevalue:[{include:\"@comments\"},{include:\"@strings\"},{include:\"@term\"},[\"!important\",\"keyword\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[/[^*/]+/,\"comment\"],[/./,\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"-?(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],keyframedeclaration:[[\"@identifier\",\"attribute.value\"],[\"{\",{token:\"delimiter.bracket\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"attribute.value\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"attribute.value\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string\",next:\"@pop\"}],[/[^\\\\\"]+/,\"string\"],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string\",next:\"@pop\"}],[/[^\\\\']+/,\"string\"],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/dockerfile/dockerfile.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/dockerfile/dockerfile\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},s.language={defaultToken:\"\",tokenPostfix:\".dockerfile\",variable:/\\${?[\\w]+}?/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/(ONBUILD)(\\s+)/,[\"keyword\",\"\"]],[/(ENV)(\\s+)([\\w]+)/,[\"keyword\",\"\",{token:\"variable\",next:\"@arguments\"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:\"keyword\",next:\"@arguments\"}]],arguments:[{include:\"@whitespace\"},{include:\"@strings\"},[/(@variable)/,{cases:{\"@eos\":{token:\"variable\",next:\"@popall\"},\"@default\":\"variable\"}}],[/\\\\/,{cases:{\"@eos\":\"\",\"@default\":\"\"}}],[/./,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],whitespace:[[/\\s+/,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],comment:[[/(^#.*$)/,\"comment\",\"@popall\"]],strings:[[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@stringBody\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/[^\\\\\\$']/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]],dblStringBody:[[/[^\\\\\\$\"]/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/fsharp/fsharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/fsharp/fsharp\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#region\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#region(.*)\\\\*\\\\)\"),end:new RegExp(\"^\\\\s*//\\\\s*#endregion\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#endregion\\\\s*\\\\*\\\\)\")}}},n.language={defaultToken:\"\",tokenPostfix:\".fs\",keywords:[\"abstract\",\"and\",\"atomic\",\"as\",\"assert\",\"asr\",\"base\",\"begin\",\"break\",\"checked\",\"component\",\"const\",\"constraint\",\"constructor\",\"continue\",\"class\",\"default\",\"delegate\",\"do\",\"done\",\"downcast\",\"downto\",\"elif\",\"else\",\"end\",\"exception\",\"eager\",\"event\",\"external\",\"extern\",\"false\",\"finally\",\"for\",\"fun\",\"function\",\"fixed\",\"functor\",\"global\",\"if\",\"in\",\"include\",\"inherit\",\"inline\",\"interface\",\"internal\",\"land\",\"lor\",\"lsl\",\"lsr\",\"lxor\",\"lazy\",\"let\",\"match\",\"member\",\"mod\",\"module\",\"mutable\",\"namespace\",\"method\",\"mixin\",\"new\",\"not\",\"null\",\"of\",\"open\",\"or\",\"object\",\"override\",\"private\",\"parallel\",\"process\",\"protected\",\"pure\",\"public\",\"rec\",\"return\",\"static\",\"sealed\",\"struct\",\"sig\",\"then\",\"to\",\"true\",\"tailcall\",\"trait\",\"try\",\"type\",\"upcast\",\"use\",\"val\",\"void\",\"virtual\",\"volatile\",\"when\",\"while\",\"with\",\"yield\"],symbols:/[=><!~?:&|+\\-*\\^%;\\.,\\/]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[<.*>\\]/,\"annotation\"],[/^#(if|else|endif)/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0x[0-9a-fA-F]+LF/,\"number.float\"],[/0x[0-9a-fA-F]+(@integersuffix)/,\"number.hex\"],[/0b[0-1]+(@integersuffix)/,\"number.bin\"],[/\\d+(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",'@string.\"\"\"'],[/\"/,\"string\",'@string.\"'],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/'[^\\\\']'B?/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\(\\*(?!\\))/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^*(]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"],[/\\(\\*\\)/,\"comment\"],[/\\(/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/(\"\"\"|\"B?)/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/go/go.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/go/go\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".go\",keywords:[\"break\",\"case\",\"chan\",\"const\",\"continue\",\"default\",\"defer\",\"else\",\"fallthrough\",\"for\",\"func\",\"go\",\"goto\",\"if\",\"import\",\"interface\",\"map\",\"package\",\"range\",\"return\",\"select\",\"struct\",\"switch\",\"type\",\"var\",\"bool\",\"true\",\"false\",\"uint8\",\"uint16\",\"uint32\",\"uint64\",\"int8\",\"int16\",\"int32\",\"int64\",\"float32\",\"float64\",\"complex64\",\"complex128\",\"byte\",\"rune\",\"uint\",\"int\",\"uintptr\",\"string\",\"nil\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"&\",\"|\",\"^\",\"<<\",\">>\",\"&^\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\"&^=\",\"&&\",\"||\",\"<-\",\"++\",\"--\",\"==\",\"<\",\">\",\"=\",\"!\",\"!=\",\"<=\",\">=\",\":=\",\"...\",\"(\",\")\",\"\",\"]\",\"{\",\"}\",\",\",\";\",\".\",\":\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex\"],[/0[0-7']*[0-7]/,\"number.octal\"],[/0[bB][0-1']*[0-1]/,\"number.binary\"],[/\\d[\\d']*/,\"number\"],[/\\d/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/`/,\"string\",\"@rawstring\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],rawstring:[[/[^\\`]/,\"string\"],[/`/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/graphql/graphql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/graphql/graphql\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"',notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"'},{open:'\"',close:'\"'}],folding:{offSide:!0}},n.language={defaultToken:\"invalid\",tokenPostfix:\".gql\",keywords:[\"null\",\"true\",\"false\",\"query\",\"mutation\",\"subscription\",\"extend\",\"schema\",\"directive\",\"scalar\",\"type\",\"interface\",\"union\",\"enum\",\"input\",\"implements\",\"fragment\",\"on\"],typeKeywords:[\"Int\",\"Float\",\"String\",\"Boolean\",\"ID\"],directiveLocations:[\"SCHEMA\",\"SCALAR\",\"OBJECT\",\"FIELD_DEFINITION\",\"ARGUMENT_DEFINITION\",\"INTERFACE\",\"UNION\",\"ENUM\",\"ENUM_VALUE\",\"INPUT_OBJECT\",\"INPUT_FIELD_DEFINITION\",\"QUERY\",\"MUTATION\",\"SUBSCRIPTION\",\"FIELD\",\"FRAGMENT_DEFINITION\",\"FRAGMENT_SPREAD\",\"INLINE_FRAGMENT\",\"VARIABLE_DEFINITION\"],operators:[\"=\",\"!\",\"?\",\":\",\"&\",\"|\"],symbols:/[=!?:&|]+/,escapes:/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"key.identifier\"}}],[/[$][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"argument.identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,{token:\"annotation\",log:\"annotation token: $0\"}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"\"\"/,{token:\"string\",next:\"@mlstring\",nextEmbedded:\"markdown\"}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}]],mlstring:[[/[^\"]+/,\"string\"],['\"\"\"',{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/handlebars/handlebars.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/handlebars/handlebars\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco,a=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{{!--\",\"--}}\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{{\",\"}}\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+a.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+a.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:n.languages.IndentAction.Indent}}]},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/\\{/,\"delimiter.html\"],[/[^<{]+/]],doctype:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],handlebarsInSimpleState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\"}],{include:\"handlebarsRoot\"}],handlebarsInEmbeddedState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"handlebarsRoot\"}],handlebarsRoot:[[/\"[^\"]*\"/,\"string.handlebars\"],[/[#/][^\\s}]+/,\"keyword.helper.handlebars\"],[/else\\b/,\"keyword.helper.handlebars\"],[/[\\s]+/],[/[^}]/,\"variable.parameter.handlebars\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/html/html.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/html/html\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco,i=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+i.join(\"|\")+\"))([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+i.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:n.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#endregion\\\\b.*--\\x3e\")}}},t.language={defaultToken:\"\",tokenPostfix:\".html\",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,\"metatag\",\"@doctype\"],[/<!--/,\"comment\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter\",\"tag\",\"\",\"delimiter\"]],[/(<)(script)/,[\"delimiter\",{token:\"tag\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter\",{token:\"tag\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/</,\"delimiter\"],[/[^<]+/]],doctype:[[/[^>]+/,\"metatag.content\"],[/>/,\"metatag\",\"@pop\"]],comment:[[/-->/,\"comment\",\"@pop\"],[/[^-]+/,\"comment.content\"],[/./,\"comment.content\"]],otherTag:[[/\\/?>/,\"delimiter\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/ini/ini.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/ini/ini\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".ini\",escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\\[[^\\]]*\\]/,\"metatag\"],[/(^\\w+)(\\s*)(\\=)/,[\"key\",\"\",\"delimiter\"]],{include:\"@whitespace\"},[/\\d+/,\"number\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*[#;].*$/,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/java/java.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/java/java\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},t.language={defaultToken:\"\",tokenPostfix:\".java\",keywords:[\"abstract\",\"continue\",\"for\",\"new\",\"switch\",\"assert\",\"default\",\"goto\",\"package\",\"synchronized\",\"boolean\",\"do\",\"if\",\"private\",\"this\",\"break\",\"double\",\"implements\",\"protected\",\"throw\",\"byte\",\"else\",\"import\",\"public\",\"throws\",\"case\",\"enum\",\"instanceof\",\"return\",\"transient\",\"catch\",\"extends\",\"int\",\"short\",\"try\",\"char\",\"final\",\"interface\",\"static\",\"void\",\"class\",\"finally\",\"long\",\"strictfp\",\"volatile\",\"const\",\"float\",\"native\",\"super\",\"while\",\"true\",\"false\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/javascript/javascript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/typescript/typescript\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco;t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],onEnterRules:[{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,afterText:/^\\s*\\*\\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:\" * \"}},{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:\" * \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),end:new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")}}},t.language={defaultToken:\"invalid\",tokenPostfix:\".ts\",keywords:[\"abstract\",\"as\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"declare\",\"default\",\"delete\",\"do\",\"else\",\"enum\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"implements\",\"import\",\"in\",\"infer\",\"instanceof\",\"interface\",\"is\",\"keyof\",\"let\",\"module\",\"namespace\",\"never\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"readonly\",\"require\",\"global\",\"return\",\"set\",\"static\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"type\",\"typeof\",\"unique\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[\"any\",\"boolean\",\"number\",\"object\",\"string\",\"undefined\"],operators:[\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"=>\",\"+\",\"-\",\"**\",\"*\",\"/\",\"%\",\"++\",\"--\",\"<<\",\"</\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"??\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"@\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"],[/`/,\"string\",\"@string_backtick\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([gimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],string_single:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]],string_backtick:[[/\\$\\{/,{token:\"delimiter.bracket\",next:\"@bracketCounting\"}],[/[^\\\\`$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/`/,\"string\",\"@pop\"]],bracketCounting:[[/\\{/,\"delimiter.bracket\",\"@bracketCounting\"],[/\\}/,\"delimiter.bracket\",\"@pop\"],{include:\"common\"}]}}})),define(\"vs/basic-languages/javascript/javascript\",[\"require\",\"exports\",\"../typescript/typescript\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});\"undefined\"==typeof monaco?self.monaco:monaco;t.conf=n.conf,t.language={defaultToken:\"invalid\",tokenPostfix:\".js\",keywords:[\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"default\",\"delete\",\"do\",\"else\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"import\",\"in\",\"instanceof\",\"let\",\"new\",\"null\",\"return\",\"set\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"undefined\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[],operators:n.language.operators,symbols:n.language.symbols,escapes:n.language.escapes,digits:n.language.digits,octaldigits:n.language.octaldigits,binarydigits:n.language.binarydigits,hexdigits:n.language.hexdigits,regexpctl:n.language.regexpctl,regexpesc:n.language.regexpesc,tokenizer:n.language.tokenizer}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/kotlin/kotlin.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/kotlin/kotlin\",[\"require\",\"exports\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),i.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},i.language={defaultToken:\"\",tokenPostfix:\".kt\",keywords:[\"as\",\"as?\",\"break\",\"class\",\"continue\",\"do\",\"else\",\"false\",\"for\",\"fun\",\"if\",\"in\",\"!in\",\"interface\",\"is\",\"!is\",\"null\",\"object\",\"package\",\"return\",\"super\",\"this\",\"throw\",\"true\",\"try\",\"typealias\",\"val\",\"var\",\"when\",\"while\",\"by\",\"catch\",\"constructor\",\"delegate\",\"dynamic\",\"field\",\"file\",\"finally\",\"get\",\"import\",\"init\",\"param\",\"property\",\"receiver\",\"set\",\"setparam\",\"where\",\"actual\",\"abstract\",\"annotation\",\"companion\",\"const\",\"crossinline\",\"data\",\"enum\",\"expect\",\"external\",\"final\",\"infix\",\"inline\",\"inner\",\"internal\",\"lateinit\",\"noinline\",\"open\",\"operator\",\"out\",\"override\",\"private\",\"protected\",\"public\",\"reified\",\"sealed\",\"suspend\",\"tailrec\",\"vararg\",\"field\",\"it\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"++\",\"--\",\"&&\",\"||\",\"!\",\"==\",\"!=\",\"===\",\"!==\",\">\",\"<\",\"<=\",\">=\",\"[\",\"]\",\"!!\",\"?.\",\"?:\",\"::\",\"..\",\":\",\"?\",\"->\",\"@\",\";\",\"$\",\"_\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[A-Z][\\w\\$]*/,\"type.identifier\"],[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",\"@multistring\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc\",\"@push\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],multistring:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"\"\"/,\"string\",\"@pop\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/less/less.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/less/less\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".less\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",identifierPlus:\"-?-?([a-zA-Z:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@nestedJSBegin\"},[\"[ \\\\t\\\\r\\\\n]+\",\"\"],{include:\"@comments\"},{include:\"@keyword\"},{include:\"@strings\"},{include:\"@numbers\"},[\"[*_]?[a-zA-Z\\\\-\\\\s]+(?=:.*(;|(\\\\\\\\$)))\",\"attribute.name\",\"@attribute\"],[\"url(\\\\-prefix)?\\\\(\",{token:\"tag\",next:\"@urldeclaration\"}],[\"[{}()\\\\[\\\\]]\",\"@brackets\"],[\"[,:;]\",\"delimiter\"],[\"#@identifierPlus\",\"tag.id\"],[\"&\",\"tag\"],[\"\\\\.@identifierPlus(?=\\\\()\",\"tag.class\",\"@attribute\"],[\"\\\\.@identifierPlus\",\"tag.class\"],[\"@identifierPlus\",\"tag\"],{include:\"@operators\"},[\"@(@identifier(?=[:,\\\\)]))\",\"variable\",\"@attribute\"],[\"@(@identifier)\",\"variable\"],[\"@\",\"key\",\"@atRules\"]],nestedJSBegin:[[\"``\",\"delimiter.backtick\"],[\"`\",{token:\"delimiter.backtick\",next:\"@nestedJSEnd\",nextEmbedded:\"text/javascript\"}]],nestedJSEnd:[[\"`\",{token:\"delimiter.backtick\",next:\"@pop\",nextEmbedded:\"@pop\"}]],operators:[[\"[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~]\",\"operator\"]],keyword:[[\"(@[\\\\s]*import|![\\\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\\\b\",\"keyword\"]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"tag\",next:\"@pop\"}]],attribute:[{include:\"@nestedJSBegin\"},{include:\"@comments\"},{include:\"@strings\"},{include:\"@numbers\"},{include:\"@keyword\"},[\"[a-zA-Z\\\\-]+(?=\\\\()\",\"attribute.value\",\"@attribute\"],[\">\",\"operator\",\"@pop\"],[\"@identifier\",\"attribute.value\"],{include:\"@operators\"},[\"@(@identifier)\",\"variable\"],[\"[)\\\\}]\",\"@brackets\",\"@pop\"],[\"[{}()\\\\[\\\\]>]\",\"@brackets\"],[\"[;]\",\"delimiter\",\"@pop\"],[\"[,=:]\",\"delimiter\"],[\"\\\\s\",\"\"],[\".\",\"attribute.value\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringsEndDoubleQuote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringsEndQuote\"}]],stringsEndDoubleQuote:[['\\\\\\\\\"',\"string\"],['\"',{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],stringsEndQuote:[[\"\\\\\\\\'\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],atRules:[{include:\"@comments\"},{include:\"@strings\"},[\"[()]\",\"delimiter\"],[\"[\\\\{;]\",\"delimiter\",\"@pop\"],[\".\",\"key\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/lua/lua.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/lua/lua\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"--\",blockComment:[\"--[[\",\"]]\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".lua\",keywords:[\"and\",\"break\",\"do\",\"else\",\"elseif\",\"end\",\"false\",\"for\",\"function\",\"goto\",\"if\",\"in\",\"local\",\"nil\",\"not\",\"or\",\"repeat\",\"return\",\"then\",\"true\",\"until\",\"while\"],brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"^\",\"#\",\"==\",\"~=\",\"<=\",\">=\",\"<\",\">\",\"=\",\";\",\":\",\",\",\".\",\"..\",\"...\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/(,)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"delimiter\",\"\",\"key\",\"\",\"delimiter\"]],[/({)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"@brackets\",\"\",\"key\",\"\",\"delimiter\"]],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/--\\[([=]*)\\[/,\"comment\",\"@comment.$1\"],[/--.*$/,\"comment\"]],comment:[[/[^\\]]+/,\"comment\"],[/\\]([=]*)\\]/,{cases:{\"$1==$S2\":{token:\"comment\",next:\"@pop\"},\"@default\":\"comment\"}}],[/./,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/markdown/markdown.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/markdown/markdown\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?endregion\\\\b.*--\\x3e\")}}},t.language={defaultToken:\"\",tokenPostfix:\".md\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,noncontrol:/[^\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,jsescapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],tokenizer:{root:[[/^\\s*\\|/,\"@rematch\",\"@table_header\"],[/^(\\s{0,3})(#+)((?:[^\\\\#]|@escapes)+)((?:#+)?)/,[\"white\",\"keyword\",\"keyword\",\"keyword\"]],[/^\\s*(=+|\\-+)\\s*$/,\"keyword\"],[/^\\s*((\\*[ ]?)+)\\s*$/,\"meta.separator\"],[/^\\s*>+/,\"comment\"],[/^\\s*([\\*\\-+:]|\\d+\\.)\\s/,\"keyword\"],[/^(\\t|[ ]{4})[^ ].*$/,\"string\"],[/^\\s*~~~\\s*((?:\\w|[\\/\\-#])+)?\\s*$/,{token:\"string\",next:\"@codeblock\"}],[/^\\s*```\\s*((?:\\w|[\\/\\-#])+).*$/,{token:\"string\",next:\"@codeblockgh\",nextEmbedded:\"$1\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@codeblock\"}],{include:\"@linecontent\"}],table_header:[{include:\"@table_common\"},[/[^\\|]+/,\"keyword.table.header\"]],table_body:[{include:\"@table_common\"},{include:\"@linecontent\"}],table_common:[[/\\s*[\\-:]+\\s*/,{token:\"keyword\",switchTo:\"table_body\"}],[/^\\s*\\|/,\"keyword.table.left\"],[/^\\s*[^\\|]/,\"@rematch\",\"@pop\"],[/^\\s*$/,\"@rematch\",\"@pop\"],[/\\|/,{cases:{\"@eos\":\"keyword.table.right\",\"@default\":\"keyword.table.middle\"}}]],codeblock:[[/^\\s*~~~\\s*$/,{token:\"string\",next:\"@pop\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblockgh:[[/```\\s*$/,{token:\"variable.source\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^`]+/,\"variable.source\"]],linecontent:[[/&\\w+;/,\"string.escape\"],[/@escapes/,\"escape\"],[/\\b__([^\\\\_]|@escapes|_(?!_))+__\\b/,\"strong\"],[/\\*\\*([^\\\\*]|@escapes|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\b_[^_]+_\\b/,\"emphasis\"],[/\\*([^\\\\*]|@escapes)+\\*/,\"emphasis\"],[/`([^\\\\`]|@escapes)+`/,\"variable\"],[/\\{+[^}]+\\}+/,\"string.target\"],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\]\\([^\\)]+\\))/,[\"string.link\",\"\",\"string.link\"]],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\])/,\"string.link\"],{include:\"html\"}],html:[[/<(\\w+)\\/>/,\"tag\"],[/<(\\w+)/,{cases:{\"@empty\":{token:\"tag\",next:\"@tag.$1\"},\"@default\":{token:\"tag\",next:\"@tag.$1\"}}}],[/<\\/(\\w+)\\s*>/,{token:\"tag\"}],[/<!--/,\"comment\",\"@comment\"]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,\"comment\",\"@pop\"],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],tag:[[/[ \\t\\r\\n]+/,\"white\"],[/(type)(\\s*=\\s*)(\")([^\"]+)(\")/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(type)(\\s*=\\s*)(')([^']+)(')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(\\w+)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\"]],[/\\w+/,\"attribute.name.html\"],[/\\/>/,\"tag\",\"@pop\"],[/>/,{cases:{\"$S2==style\":{token:\"tag\",switchTo:\"embeddedStyle\",nextEmbedded:\"text/css\"},\"$S2==script\":{cases:{$S3:{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"$S3\"},\"@default\":{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"text/javascript\"}}},\"@default\":{token:\"tag\",next:\"@pop\"}}}]],embeddedStyle:[[/[^<]+/,\"\"],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]],embeddedScript:[[/[^<]+/,\"\"],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/mips/mips.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/mips/mips\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t.language={defaultToken:\"\",ignoreCase:!1,tokenPostfix:\".mips\",regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\".data\",\".text\",\"syscall\",\"trap\",\"add\",\"addu\",\"addi\",\"addiu\",\"and\",\"andi\",\"div\",\"divu\",\"mult\",\"multu\",\"nor\",\"or\",\"ori\",\"sll\",\"slv\",\"sra\",\"srav\",\"srl\",\"srlv\",\"sub\",\"subu\",\"xor\",\"xori\",\"lhi\",\"lho\",\"lhi\",\"llo\",\"slt\",\"slti\",\"sltu\",\"sltiu\",\"beq\",\"bgtz\",\"blez\",\"bne\",\"j\",\"jal\",\"jalr\",\"jr\",\"lb\",\"lbu\",\"lh\",\"lhu\",\"lw\",\"li\",\"la\",\"sb\",\"sh\",\"sw\",\"mfhi\",\"mflo\",\"mthi\",\"mtlo\",\"move\"],symbols:/[\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\$[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[.a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/msdax/msdax.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/msdax/msdax\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]}]},T.language={defaultToken:\"\",tokenPostfix:\".msdax\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"VAR\",\"RETURN\",\"NOT\",\"EVALUATE\",\"DATATABLE\",\"ORDER\",\"BY\",\"START\",\"AT\",\"DEFINE\",\"MEASURE\",\"ASC\",\"DESC\",\"IN\",\"BOOLEAN\",\"DOUBLE\",\"INTEGER\",\"DATETIME\",\"CURRENCY\",\"STRING\"],functions:[\"CLOSINGBALANCEMONTH\",\"CLOSINGBALANCEQUARTER\",\"CLOSINGBALANCEYEAR\",\"DATEADD\",\"DATESBETWEEN\",\"DATESINPERIOD\",\"DATESMTD\",\"DATESQTD\",\"DATESYTD\",\"ENDOFMONTH\",\"ENDOFQUARTER\",\"ENDOFYEAR\",\"FIRSTDATE\",\"FIRSTNONBLANK\",\"LASTDATE\",\"LASTNONBLANK\",\"NEXTDAY\",\"NEXTMONTH\",\"NEXTQUARTER\",\"NEXTYEAR\",\"OPENINGBALANCEMONTH\",\"OPENINGBALANCEQUARTER\",\"OPENINGBALANCEYEAR\",\"PARALLELPERIOD\",\"PREVIOUSDAY\",\"PREVIOUSMONTH\",\"PREVIOUSQUARTER\",\"PREVIOUSYEAR\",\"SAMEPERIODLASTYEAR\",\"STARTOFMONTH\",\"STARTOFQUARTER\",\"STARTOFYEAR\",\"TOTALMTD\",\"TOTALQTD\",\"TOTALYTD\",\"ADDCOLUMNS\",\"ADDMISSINGITEMS\",\"ALL\",\"ALLEXCEPT\",\"ALLNOBLANKROW\",\"ALLSELECTED\",\"CALCULATE\",\"CALCULATETABLE\",\"CALENDAR\",\"CALENDARAUTO\",\"CROSSFILTER\",\"CROSSJOIN\",\"CURRENTGROUP\",\"DATATABLE\",\"DETAILROWS\",\"DISTINCT\",\"EARLIER\",\"EARLIEST\",\"EXCEPT\",\"FILTER\",\"FILTERS\",\"GENERATE\",\"GENERATEALL\",\"GROUPBY\",\"IGNORE\",\"INTERSECT\",\"ISONORAFTER\",\"KEEPFILTERS\",\"LOOKUPVALUE\",\"NATURALINNERJOIN\",\"NATURALLEFTOUTERJOIN\",\"RELATED\",\"RELATEDTABLE\",\"ROLLUP\",\"ROLLUPADDISSUBTOTAL\",\"ROLLUPGROUP\",\"ROLLUPISSUBTOTAL\",\"ROW\",\"SAMPLE\",\"SELECTCOLUMNS\",\"SUBSTITUTEWITHINDEX\",\"SUMMARIZE\",\"SUMMARIZECOLUMNS\",\"TOPN\",\"TREATAS\",\"UNION\",\"USERELATIONSHIP\",\"VALUES\",\"SUM\",\"SUMX\",\"PATH\",\"PATHCONTAINS\",\"PATHITEM\",\"PATHITEMREVERSE\",\"PATHLENGTH\",\"AVERAGE\",\"AVERAGEA\",\"AVERAGEX\",\"COUNT\",\"COUNTA\",\"COUNTAX\",\"COUNTBLANK\",\"COUNTROWS\",\"COUNTX\",\"DISTINCTCOUNT\",\"DIVIDE\",\"GEOMEAN\",\"GEOMEANX\",\"MAX\",\"MAXA\",\"MAXX\",\"MEDIAN\",\"MEDIANX\",\"MIN\",\"MINA\",\"MINX\",\"PERCENTILE.EXC\",\"PERCENTILE.INC\",\"PERCENTILEX.EXC\",\"PERCENTILEX.INC\",\"PRODUCT\",\"PRODUCTX\",\"RANK.EQ\",\"RANKX\",\"STDEV.P\",\"STDEV.S\",\"STDEVX.P\",\"STDEVX.S\",\"VAR.P\",\"VAR.S\",\"VARX.P\",\"VARX.S\",\"XIRR\",\"XNPV\",\"DATE\",\"DATEDIFF\",\"DATEVALUE\",\"DAY\",\"EDATE\",\"EOMONTH\",\"HOUR\",\"MINUTE\",\"MONTH\",\"NOW\",\"SECOND\",\"TIME\",\"TIMEVALUE\",\"TODAY\",\"WEEKDAY\",\"WEEKNUM\",\"YEAR\",\"YEARFRAC\",\"CONTAINS\",\"CONTAINSROW\",\"CUSTOMDATA\",\"ERROR\",\"HASONEFILTER\",\"HASONEVALUE\",\"ISBLANK\",\"ISCROSSFILTERED\",\"ISEMPTY\",\"ISERROR\",\"ISEVEN\",\"ISFILTERED\",\"ISLOGICAL\",\"ISNONTEXT\",\"ISNUMBER\",\"ISODD\",\"ISSUBTOTAL\",\"ISTEXT\",\"USERNAME\",\"USERPRINCIPALNAME\",\"AND\",\"FALSE\",\"IF\",\"IFERROR\",\"NOT\",\"OR\",\"SWITCH\",\"TRUE\",\"ABS\",\"ACOS\",\"ACOSH\",\"ACOT\",\"ACOTH\",\"ASIN\",\"ASINH\",\"ATAN\",\"ATANH\",\"BETA.DIST\",\"BETA.INV\",\"CEILING\",\"CHISQ.DIST\",\"CHISQ.DIST.RT\",\"CHISQ.INV\",\"CHISQ.INV.RT\",\"COMBIN\",\"COMBINA\",\"CONFIDENCE.NORM\",\"CONFIDENCE.T\",\"COS\",\"COSH\",\"COT\",\"COTH\",\"CURRENCY\",\"DEGREES\",\"EVEN\",\"EXP\",\"EXPON.DIST\",\"FACT\",\"FLOOR\",\"GCD\",\"INT\",\"ISO.CEILING\",\"LCM\",\"LN\",\"LOG\",\"LOG10\",\"MOD\",\"MROUND\",\"ODD\",\"PERMUT\",\"PI\",\"POISSON.DIST\",\"POWER\",\"QUOTIENT\",\"RADIANS\",\"RAND\",\"RANDBETWEEN\",\"ROUND\",\"ROUNDDOWN\",\"ROUNDUP\",\"SIGN\",\"SIN\",\"SINH\",\"SQRT\",\"SQRTPI\",\"TAN\",\"TANH\",\"TRUNC\",\"BLANK\",\"CONCATENATE\",\"CONCATENATEX\",\"EXACT\",\"FIND\",\"FIXED\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"MID\",\"REPLACE\",\"REPT\",\"RIGHT\",\"SEARCH\",\"SUBSTITUTE\",\"TRIM\",\"UNICHAR\",\"UNICODE\",\"UPPER\",\"VALUE\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},[/[;,.]/,\"delimiter\"],[/[({})]/,\"@brackets\"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{\"@keywords\":\"keyword\",\"@functions\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/\\/\\/+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N\"/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string\",next:\"@string\"}]],string:[[/[^\"]+/,\"string\"],[/\"\"/,\"string\"],[/\"/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/'/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^']+/,\"identifier\"],[/''/,\"identifier\"],[/'/,{token:\"identifier.quote\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/mysql/mysql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/mysql/mysql\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ACCESSIBLE\",\"ACCOUNT\",\"ACTION\",\"ADD\",\"AFTER\",\"AGAINST\",\"AGGREGATE\",\"ALGORITHM\",\"ALL\",\"ALTER\",\"ALWAYS\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"AS\",\"ASC\",\"ASCII\",\"ASENSITIVE\",\"AT\",\"AUTOEXTEND_SIZE\",\"AUTO_INCREMENT\",\"AVG\",\"AVG_ROW_LENGTH\",\"BACKUP\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BIGINT\",\"BINARY\",\"BINLOG\",\"BIT\",\"BLOB\",\"BLOCK\",\"BOOL\",\"BOOLEAN\",\"BOTH\",\"BTREE\",\"BY\",\"BYTE\",\"CACHE\",\"CALL\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CATALOG_NAME\",\"CHAIN\",\"CHANGE\",\"CHANGED\",\"CHANNEL\",\"CHAR\",\"CHARACTER\",\"CHARSET\",\"CHECK\",\"CHECKSUM\",\"CIPHER\",\"CLASS_ORIGIN\",\"CLIENT\",\"CLOSE\",\"COALESCE\",\"CODE\",\"COLLATE\",\"COLLATION\",\"COLUMN\",\"COLUMNS\",\"COLUMN_FORMAT\",\"COLUMN_NAME\",\"COMMENT\",\"COMMIT\",\"COMMITTED\",\"COMPACT\",\"COMPLETION\",\"COMPRESSED\",\"COMPRESSION\",\"CONCURRENT\",\"CONDITION\",\"CONNECTION\",\"CONSISTENT\",\"CONSTRAINT\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONTAINS\",\"CONTEXT\",\"CONTINUE\",\"CONVERT\",\"CPU\",\"CREATE\",\"CROSS\",\"CUBE\",\"CURRENT\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURSOR\",\"CURSOR_NAME\",\"DATA\",\"DATABASE\",\"DATABASES\",\"DATAFILE\",\"DATE\",\"DATETIME\",\"DAY\",\"DAY_HOUR\",\"DAY_MICROSECOND\",\"DAY_MINUTE\",\"DAY_SECOND\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFAULT_AUTH\",\"DEFINER\",\"DELAYED\",\"DELAY_KEY_WRITE\",\"DELETE\",\"DESC\",\"DESCRIBE\",\"DES_KEY_FILE\",\"DETERMINISTIC\",\"DIAGNOSTICS\",\"DIRECTORY\",\"DISABLE\",\"DISCARD\",\"DISK\",\"DISTINCT\",\"DISTINCTROW\",\"DIV\",\"DO\",\"DOUBLE\",\"DROP\",\"DUAL\",\"DUMPFILE\",\"DUPLICATE\",\"DYNAMIC\",\"EACH\",\"ELSE\",\"ELSEIF\",\"ENABLE\",\"ENCLOSED\",\"ENCRYPTION\",\"END\",\"ENDS\",\"ENGINE\",\"ENGINES\",\"ENUM\",\"ERROR\",\"ERRORS\",\"ESCAPE\",\"ESCAPED\",\"EVENT\",\"EVENTS\",\"EVERY\",\"EXCHANGE\",\"EXECUTE\",\"EXISTS\",\"EXIT\",\"EXPANSION\",\"EXPIRE\",\"EXPLAIN\",\"EXPORT\",\"EXTENDED\",\"EXTENT_SIZE\",\"FALSE\",\"FAST\",\"FAULTS\",\"FETCH\",\"FIELDS\",\"FILE\",\"FILE_BLOCK_SIZE\",\"FILTER\",\"FIRST\",\"FIXED\",\"FLOAT\",\"FLOAT4\",\"FLOAT8\",\"FLUSH\",\"FOLLOWS\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FORMAT\",\"FOUND\",\"FROM\",\"FULL\",\"FULLTEXT\",\"FUNCTION\",\"GENERAL\",\"GENERATED\",\"GEOMETRY\",\"GEOMETRYCOLLECTION\",\"GET\",\"GET_FORMAT\",\"GLOBAL\",\"GRANT\",\"GRANTS\",\"GROUP\",\"GROUP_REPLICATION\",\"HANDLER\",\"HASH\",\"HAVING\",\"HELP\",\"HIGH_PRIORITY\",\"HOST\",\"HOSTS\",\"HOUR\",\"HOUR_MICROSECOND\",\"HOUR_MINUTE\",\"HOUR_SECOND\",\"IDENTIFIED\",\"IF\",\"IGNORE\",\"IGNORE_SERVER_IDS\",\"IMPORT\",\"INDEX\",\"INDEXES\",\"INFILE\",\"INITIAL_SIZE\",\"INNER\",\"INOUT\",\"INSENSITIVE\",\"INSERT\",\"INSERT_METHOD\",\"INSTALL\",\"INSTANCE\",\"INT\",\"INT1\",\"INT2\",\"INT3\",\"INT4\",\"INT8\",\"INTEGER\",\"INTERVAL\",\"INTO\",\"INVOKER\",\"IO\",\"IO_AFTER_GTIDS\",\"IO_BEFORE_GTIDS\",\"IO_THREAD\",\"IPC\",\"ISOLATION\",\"ISSUER\",\"ITERATE\",\"JOIN\",\"JSON\",\"KEY\",\"KEYS\",\"KEY_BLOCK_SIZE\",\"KILL\",\"LANGUAGE\",\"LAST\",\"LEADING\",\"LEAVE\",\"LEAVES\",\"LEFT\",\"LESS\",\"LEVEL\",\"LIKE\",\"LIMIT\",\"LINEAR\",\"LINES\",\"LINESTRING\",\"LIST\",\"LOAD\",\"LOCAL\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCK\",\"LOCKS\",\"LOGFILE\",\"LOGS\",\"LONG\",\"LONGBLOB\",\"LONGTEXT\",\"LOOP\",\"LOW_PRIORITY\",\"MASTER\",\"MASTER_AUTO_POSITION\",\"MASTER_BIND\",\"MASTER_CONNECT_RETRY\",\"MASTER_DELAY\",\"MASTER_HEARTBEAT_PERIOD\",\"MASTER_HOST\",\"MASTER_LOG_FILE\",\"MASTER_LOG_POS\",\"MASTER_PASSWORD\",\"MASTER_PORT\",\"MASTER_RETRY_COUNT\",\"MASTER_SERVER_ID\",\"MASTER_SSL\",\"MASTER_SSL_CA\",\"MASTER_SSL_CAPATH\",\"MASTER_SSL_CERT\",\"MASTER_SSL_CIPHER\",\"MASTER_SSL_CRL\",\"MASTER_SSL_CRLPATH\",\"MASTER_SSL_KEY\",\"MASTER_SSL_VERIFY_SERVER_CERT\",\"MASTER_TLS_VERSION\",\"MASTER_USER\",\"MATCH\",\"MAXVALUE\",\"MAX_CONNECTIONS_PER_HOUR\",\"MAX_QUERIES_PER_HOUR\",\"MAX_ROWS\",\"MAX_SIZE\",\"MAX_STATEMENT_TIME\",\"MAX_UPDATES_PER_HOUR\",\"MAX_USER_CONNECTIONS\",\"MEDIUM\",\"MEDIUMBLOB\",\"MEDIUMINT\",\"MEDIUMTEXT\",\"MEMORY\",\"MERGE\",\"MESSAGE_TEXT\",\"MICROSECOND\",\"MIDDLEINT\",\"MIGRATE\",\"MINUTE\",\"MINUTE_MICROSECOND\",\"MINUTE_SECOND\",\"MIN_ROWS\",\"MOD\",\"MODE\",\"MODIFIES\",\"MODIFY\",\"MONTH\",\"MULTILINESTRING\",\"MULTIPOINT\",\"MULTIPOLYGON\",\"MUTEX\",\"MYSQL_ERRNO\",\"NAME\",\"NAMES\",\"NATIONAL\",\"NATURAL\",\"NCHAR\",\"NDB\",\"NDBCLUSTER\",\"NEVER\",\"NEW\",\"NEXT\",\"NO\",\"NODEGROUP\",\"NONBLOCKING\",\"NONE\",\"NO_WAIT\",\"NO_WRITE_TO_BINLOG\",\"NUMBER\",\"NUMERIC\",\"NVARCHAR\",\"OFFSET\",\"OLD_PASSWORD\",\"ON\",\"ONE\",\"ONLY\",\"OPEN\",\"OPTIMIZE\",\"OPTIMIZER_COSTS\",\"OPTION\",\"OPTIONALLY\",\"OPTIONS\",\"OR\",\"ORDER\",\"OUT\",\"OUTER\",\"OUTFILE\",\"OWNER\",\"PACK_KEYS\",\"PAGE\",\"PARSER\",\"PARSE_GCOL_EXPR\",\"PARTIAL\",\"PARTITION\",\"PARTITIONING\",\"PARTITIONS\",\"PASSWORD\",\"PHASE\",\"PLUGIN\",\"PLUGINS\",\"PLUGIN_DIR\",\"POINT\",\"POLYGON\",\"PORT\",\"PRECEDES\",\"PRECISION\",\"PREPARE\",\"PRESERVE\",\"PREV\",\"PRIMARY\",\"PRIVILEGES\",\"PROCEDURE\",\"PROCESSLIST\",\"PROFILE\",\"PROFILES\",\"PROXY\",\"PURGE\",\"QUARTER\",\"QUERY\",\"QUICK\",\"RANGE\",\"READ\",\"READS\",\"READ_ONLY\",\"READ_WRITE\",\"REAL\",\"REBUILD\",\"RECOVER\",\"REDOFILE\",\"REDO_BUFFER_SIZE\",\"REDUNDANT\",\"REFERENCES\",\"REGEXP\",\"RELAY\",\"RELAYLOG\",\"RELAY_LOG_FILE\",\"RELAY_LOG_POS\",\"RELAY_THREAD\",\"RELEASE\",\"RELOAD\",\"REMOVE\",\"RENAME\",\"REORGANIZE\",\"REPAIR\",\"REPEAT\",\"REPEATABLE\",\"REPLACE\",\"REPLICATE_DO_DB\",\"REPLICATE_DO_TABLE\",\"REPLICATE_IGNORE_DB\",\"REPLICATE_IGNORE_TABLE\",\"REPLICATE_REWRITE_DB\",\"REPLICATE_WILD_DO_TABLE\",\"REPLICATE_WILD_IGNORE_TABLE\",\"REPLICATION\",\"REQUIRE\",\"RESET\",\"RESIGNAL\",\"RESTORE\",\"RESTRICT\",\"RESUME\",\"RETURN\",\"RETURNED_SQLSTATE\",\"RETURNS\",\"REVERSE\",\"REVOKE\",\"RIGHT\",\"RLIKE\",\"ROLLBACK\",\"ROLLUP\",\"ROTATE\",\"ROUTINE\",\"ROW\",\"ROWS\",\"ROW_COUNT\",\"ROW_FORMAT\",\"RTREE\",\"SAVEPOINT\",\"SCHEDULE\",\"SCHEMA\",\"SCHEMAS\",\"SCHEMA_NAME\",\"SECOND\",\"SECOND_MICROSECOND\",\"SECURITY\",\"SELECT\",\"SENSITIVE\",\"SEPARATOR\",\"SERIAL\",\"SERIALIZABLE\",\"SERVER\",\"SESSION\",\"SET\",\"SHARE\",\"SHOW\",\"SHUTDOWN\",\"SIGNAL\",\"SIGNED\",\"SIMPLE\",\"SLAVE\",\"SLOW\",\"SMALLINT\",\"SNAPSHOT\",\"SOCKET\",\"SOME\",\"SONAME\",\"SOUNDS\",\"SOURCE\",\"SPATIAL\",\"SPECIFIC\",\"SQL\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"SQL_AFTER_GTIDS\",\"SQL_AFTER_MTS_GAPS\",\"SQL_BEFORE_GTIDS\",\"SQL_BIG_RESULT\",\"SQL_BUFFER_RESULT\",\"SQL_CACHE\",\"SQL_CALC_FOUND_ROWS\",\"SQL_NO_CACHE\",\"SQL_SMALL_RESULT\",\"SQL_THREAD\",\"SQL_TSI_DAY\",\"SQL_TSI_HOUR\",\"SQL_TSI_MINUTE\",\"SQL_TSI_MONTH\",\"SQL_TSI_QUARTER\",\"SQL_TSI_SECOND\",\"SQL_TSI_WEEK\",\"SQL_TSI_YEAR\",\"SSL\",\"STACKED\",\"START\",\"STARTING\",\"STARTS\",\"STATS_AUTO_RECALC\",\"STATS_PERSISTENT\",\"STATS_SAMPLE_PAGES\",\"STATUS\",\"STOP\",\"STORAGE\",\"STORED\",\"STRAIGHT_JOIN\",\"STRING\",\"SUBCLASS_ORIGIN\",\"SUBJECT\",\"SUBPARTITION\",\"SUBPARTITIONS\",\"SUPER\",\"SUSPEND\",\"SWAPS\",\"SWITCHES\",\"TABLE\",\"TABLES\",\"TABLESPACE\",\"TABLE_CHECKSUM\",\"TABLE_NAME\",\"TEMPORARY\",\"TEMPTABLE\",\"TERMINATED\",\"TEXT\",\"THAN\",\"THEN\",\"TIME\",\"TIMESTAMP\",\"TIMESTAMPADD\",\"TIMESTAMPDIFF\",\"TINYBLOB\",\"TINYINT\",\"TINYTEXT\",\"TO\",\"TRAILING\",\"TRANSACTION\",\"TRIGGER\",\"TRIGGERS\",\"TRUE\",\"TRUNCATE\",\"TYPE\",\"TYPES\",\"UNCOMMITTED\",\"UNDEFINED\",\"UNDO\",\"UNDOFILE\",\"UNDO_BUFFER_SIZE\",\"UNICODE\",\"UNINSTALL\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNLOCK\",\"UNSIGNED\",\"UNTIL\",\"UPDATE\",\"UPGRADE\",\"USAGE\",\"USE\",\"USER\",\"USER_RESOURCES\",\"USE_FRM\",\"USING\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"VALIDATION\",\"VALUE\",\"VALUES\",\"VARBINARY\",\"VARCHAR\",\"VARCHARACTER\",\"VARIABLES\",\"VARYING\",\"VIEW\",\"VIRTUAL\",\"WAIT\",\"WARNINGS\",\"WEEK\",\"WEIGHT_STRING\",\"WHEN\",\"WHERE\",\"WHILE\",\"WITH\",\"WITHOUT\",\"WORK\",\"WRAPPER\",\"WRITE\",\"X509\",\"XA\",\"XID\",\"XML\",\"XOR\",\"YEAR\",\"YEAR_MONTH\",\"ZEROFILL\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"ABS\",\"ACOS\",\"ADDDATE\",\"ADDTIME\",\"AES_DECRYPT\",\"AES_ENCRYPT\",\"ANY_VALUE\",\"Area\",\"AsBinary\",\"AsWKB\",\"ASCII\",\"ASIN\",\"AsText\",\"AsWKT\",\"ASYMMETRIC_DECRYPT\",\"ASYMMETRIC_DERIVE\",\"ASYMMETRIC_ENCRYPT\",\"ASYMMETRIC_SIGN\",\"ASYMMETRIC_VERIFY\",\"ATAN\",\"ATAN2\",\"ATAN\",\"AVG\",\"BENCHMARK\",\"BIN\",\"BIT_AND\",\"BIT_COUNT\",\"BIT_LENGTH\",\"BIT_OR\",\"BIT_XOR\",\"Buffer\",\"CAST\",\"CEIL\",\"CEILING\",\"Centroid\",\"CHAR\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CHARSET\",\"COALESCE\",\"COERCIBILITY\",\"COLLATION\",\"COMPRESS\",\"CONCAT\",\"CONCAT_WS\",\"CONNECTION_ID\",\"Contains\",\"CONV\",\"CONVERT\",\"CONVERT_TZ\",\"ConvexHull\",\"COS\",\"COT\",\"COUNT\",\"CRC32\",\"CREATE_ASYMMETRIC_PRIV_KEY\",\"CREATE_ASYMMETRIC_PUB_KEY\",\"CREATE_DH_PARAMETERS\",\"CREATE_DIGEST\",\"Crosses\",\"CURDATE\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURTIME\",\"DATABASE\",\"DATE\",\"DATE_ADD\",\"DATE_FORMAT\",\"DATE_SUB\",\"DATEDIFF\",\"DAY\",\"DAYNAME\",\"DAYOFMONTH\",\"DAYOFWEEK\",\"DAYOFYEAR\",\"DECODE\",\"DEFAULT\",\"DEGREES\",\"DES_DECRYPT\",\"DES_ENCRYPT\",\"Dimension\",\"Disjoint\",\"Distance\",\"ELT\",\"ENCODE\",\"ENCRYPT\",\"EndPoint\",\"Envelope\",\"Equals\",\"EXP\",\"EXPORT_SET\",\"ExteriorRing\",\"EXTRACT\",\"ExtractValue\",\"FIELD\",\"FIND_IN_SET\",\"FLOOR\",\"FORMAT\",\"FOUND_ROWS\",\"FROM_BASE64\",\"FROM_DAYS\",\"FROM_UNIXTIME\",\"GeomCollFromText\",\"GeometryCollectionFromText\",\"GeomCollFromWKB\",\"GeometryCollectionFromWKB\",\"GeometryCollection\",\"GeometryN\",\"GeometryType\",\"GeomFromText\",\"GeometryFromText\",\"GeomFromWKB\",\"GeometryFromWKB\",\"GET_FORMAT\",\"GET_LOCK\",\"GLength\",\"GREATEST\",\"GROUP_CONCAT\",\"GTID_SUBSET\",\"GTID_SUBTRACT\",\"HEX\",\"HOUR\",\"IF\",\"IFNULL\",\"INET_ATON\",\"INET_NTOA\",\"INET6_ATON\",\"INET6_NTOA\",\"INSERT\",\"INSTR\",\"InteriorRingN\",\"Intersects\",\"INTERVAL\",\"IS_FREE_LOCK\",\"IS_IPV4\",\"IS_IPV4_COMPAT\",\"IS_IPV4_MAPPED\",\"IS_IPV6\",\"IS_USED_LOCK\",\"IsClosed\",\"IsEmpty\",\"ISNULL\",\"IsSimple\",\"JSON_APPEND\",\"JSON_ARRAY\",\"JSON_ARRAY_APPEND\",\"JSON_ARRAY_INSERT\",\"JSON_CONTAINS\",\"JSON_CONTAINS_PATH\",\"JSON_DEPTH\",\"JSON_EXTRACT\",\"JSON_INSERT\",\"JSON_KEYS\",\"JSON_LENGTH\",\"JSON_MERGE\",\"JSON_MERGE_PRESERVE\",\"JSON_OBJECT\",\"JSON_QUOTE\",\"JSON_REMOVE\",\"JSON_REPLACE\",\"JSON_SEARCH\",\"JSON_SET\",\"JSON_TYPE\",\"JSON_UNQUOTE\",\"JSON_VALID\",\"LAST_INSERT_ID\",\"LCASE\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LineFromText\",\"LineStringFromText\",\"LineFromWKB\",\"LineStringFromWKB\",\"LineString\",\"LN\",\"LOAD_FILE\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATE\",\"LOG\",\"LOG10\",\"LOG2\",\"LOWER\",\"LPAD\",\"LTRIM\",\"MAKE_SET\",\"MAKEDATE\",\"MAKETIME\",\"MASTER_POS_WAIT\",\"MAX\",\"MBRContains\",\"MBRCoveredBy\",\"MBRCovers\",\"MBRDisjoint\",\"MBREqual\",\"MBREquals\",\"MBRIntersects\",\"MBROverlaps\",\"MBRTouches\",\"MBRWithin\",\"MD5\",\"MICROSECOND\",\"MID\",\"MIN\",\"MINUTE\",\"MLineFromText\",\"MultiLineStringFromText\",\"MLineFromWKB\",\"MultiLineStringFromWKB\",\"MOD\",\"MONTH\",\"MONTHNAME\",\"MPointFromText\",\"MultiPointFromText\",\"MPointFromWKB\",\"MultiPointFromWKB\",\"MPolyFromText\",\"MultiPolygonFromText\",\"MPolyFromWKB\",\"MultiPolygonFromWKB\",\"MultiLineString\",\"MultiPoint\",\"MultiPolygon\",\"NAME_CONST\",\"NOT IN\",\"NOW\",\"NULLIF\",\"NumGeometries\",\"NumInteriorRings\",\"NumPoints\",\"OCT\",\"OCTET_LENGTH\",\"OLD_PASSWORD\",\"ORD\",\"Overlaps\",\"PASSWORD\",\"PERIOD_ADD\",\"PERIOD_DIFF\",\"PI\",\"Point\",\"PointFromText\",\"PointFromWKB\",\"PointN\",\"PolyFromText\",\"PolygonFromText\",\"PolyFromWKB\",\"PolygonFromWKB\",\"Polygon\",\"POSITION\",\"POW\",\"POWER\",\"PROCEDURE ANALYSE\",\"QUARTER\",\"QUOTE\",\"RADIANS\",\"RAND\",\"RANDOM_BYTES\",\"RELEASE_ALL_LOCKS\",\"RELEASE_LOCK\",\"REPEAT\",\"REPLACE\",\"REVERSE\",\"RIGHT\",\"ROUND\",\"ROW_COUNT\",\"RPAD\",\"RTRIM\",\"SCHEMA\",\"SEC_TO_TIME\",\"SECOND\",\"SESSION_USER\",\"SHA1\",\"SHA\",\"SHA2\",\"SIGN\",\"SIN\",\"SLEEP\",\"SOUNDEX\",\"SPACE\",\"SQRT\",\"SRID\",\"ST_Area\",\"ST_AsBinary\",\"ST_AsWKB\",\"ST_AsGeoJSON\",\"ST_AsText\",\"ST_AsWKT\",\"ST_Buffer\",\"ST_Buffer_Strategy\",\"ST_Centroid\",\"ST_Contains\",\"ST_ConvexHull\",\"ST_Crosses\",\"ST_Difference\",\"ST_Dimension\",\"ST_Disjoint\",\"ST_Distance\",\"ST_Distance_Sphere\",\"ST_EndPoint\",\"ST_Envelope\",\"ST_Equals\",\"ST_ExteriorRing\",\"ST_GeoHash\",\"ST_GeomCollFromText\",\"ST_GeometryCollectionFromText\",\"ST_GeomCollFromTxt\",\"ST_GeomCollFromWKB\",\"ST_GeometryCollectionFromWKB\",\"ST_GeometryN\",\"ST_GeometryType\",\"ST_GeomFromGeoJSON\",\"ST_GeomFromText\",\"ST_GeometryFromText\",\"ST_GeomFromWKB\",\"ST_GeometryFromWKB\",\"ST_InteriorRingN\",\"ST_Intersection\",\"ST_Intersects\",\"ST_IsClosed\",\"ST_IsEmpty\",\"ST_IsSimple\",\"ST_IsValid\",\"ST_LatFromGeoHash\",\"ST_Length\",\"ST_LineFromText\",\"ST_LineStringFromText\",\"ST_LineFromWKB\",\"ST_LineStringFromWKB\",\"ST_LongFromGeoHash\",\"ST_MakeEnvelope\",\"ST_MLineFromText\",\"ST_MultiLineStringFromText\",\"ST_MLineFromWKB\",\"ST_MultiLineStringFromWKB\",\"ST_MPointFromText\",\"ST_MultiPointFromText\",\"ST_MPointFromWKB\",\"ST_MultiPointFromWKB\",\"ST_MPolyFromText\",\"ST_MultiPolygonFromText\",\"ST_MPolyFromWKB\",\"ST_MultiPolygonFromWKB\",\"ST_NumGeometries\",\"ST_NumInteriorRing\",\"ST_NumInteriorRings\",\"ST_NumPoints\",\"ST_Overlaps\",\"ST_PointFromGeoHash\",\"ST_PointFromText\",\"ST_PointFromWKB\",\"ST_PointN\",\"ST_PolyFromText\",\"ST_PolygonFromText\",\"ST_PolyFromWKB\",\"ST_PolygonFromWKB\",\"ST_Simplify\",\"ST_SRID\",\"ST_StartPoint\",\"ST_SymDifference\",\"ST_Touches\",\"ST_Union\",\"ST_Validate\",\"ST_Within\",\"ST_X\",\"ST_Y\",\"StartPoint\",\"STD\",\"STDDEV\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"STR_TO_DATE\",\"STRCMP\",\"SUBDATE\",\"SUBSTR\",\"SUBSTRING\",\"SUBSTRING_INDEX\",\"SUBTIME\",\"SUM\",\"SYSDATE\",\"SYSTEM_USER\",\"TAN\",\"TIME\",\"TIME_FORMAT\",\"TIME_TO_SEC\",\"TIMEDIFF\",\"TIMESTAMP\",\"TIMESTAMPADD\",\"TIMESTAMPDIFF\",\"TO_BASE64\",\"TO_DAYS\",\"TO_SECONDS\",\"Touches\",\"TRIM\",\"TRUNCATE\",\"UCASE\",\"UNCOMPRESS\",\"UNCOMPRESSED_LENGTH\",\"UNHEX\",\"UNIX_TIMESTAMP\",\"UpdateXML\",\"UPPER\",\"USER\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"UUID\",\"UUID_SHORT\",\"VALIDATE_PASSWORD_STRENGTH\",\"VALUES\",\"VAR_POP\",\"VAR_SAMP\",\"VARIANCE\",\"VERSION\",\"WAIT_FOR_EXECUTED_GTID_SET\",\"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS\",\"WEEK\",\"WEEKDAY\",\"WEEKOFYEAR\",\"WEIGHT_STRING\",\"Within\",\"X\",\"Y\",\"YEAR\",\"YEARWEEK\"],builtinVariables:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/#+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],complexIdentifiers:[[/`/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^`]+/,\"identifier\"],[/``/,\"identifier\"],[/`/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/objective-c/objective-c.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/objective-c/objective-c\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".objective-c\",keywords:[\"#import\",\"#include\",\"#define\",\"#else\",\"#endif\",\"#if\",\"#ifdef\",\"#ifndef\",\"#ident\",\"#undef\",\"@class\",\"@defs\",\"@dynamic\",\"@encode\",\"@end\",\"@implementation\",\"@interface\",\"@package\",\"@private\",\"@protected\",\"@property\",\"@protocol\",\"@public\",\"@selector\",\"@synthesize\",\"__declspec\",\"assign\",\"auto\",\"BOOL\",\"break\",\"bycopy\",\"byref\",\"case\",\"char\",\"Class\",\"const\",\"copy\",\"continue\",\"default\",\"do\",\"double\",\"else\",\"enum\",\"extern\",\"FALSE\",\"false\",\"float\",\"for\",\"goto\",\"if\",\"in\",\"int\",\"id\",\"inout\",\"IMP\",\"long\",\"nil\",\"nonatomic\",\"NULL\",\"oneway\",\"out\",\"private\",\"public\",\"protected\",\"readwrite\",\"readonly\",\"register\",\"return\",\"SEL\",\"self\",\"short\",\"signed\",\"sizeof\",\"static\",\"struct\",\"super\",\"switch\",\"typedef\",\"TRUE\",\"true\",\"union\",\"unsigned\",\"volatile\",\"void\",\"while\"],decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()<>]/,\"@brackets\"],[/[a-zA-Z@#]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,]|and\\\\b|or\\\\b|not\\\\b]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,\"number.hex\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)[fF]*/,{cases:{\"(\\\\d)*\":\"number\",$0:\"number.float\"}}]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/pascal/pascal.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pascal/pascal\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"{\",\"}\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\{\\\\$REGION(\\\\s\\\\'.*\\\\')?\\\\}\"),end:new RegExp(\"^\\\\s*\\\\{\\\\$ENDREGION\\\\}\")}}},t.language={defaultToken:\"\",tokenPostfix:\".pascal\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"absolute\",\"abstract\",\"all\",\"and_then\",\"array\",\"as\",\"asm\",\"attribute\",\"begin\",\"bindable\",\"case\",\"class\",\"const\",\"contains\",\"default\",\"div\",\"else\",\"end\",\"except\",\"exports\",\"external\",\"far\",\"file\",\"finalization\",\"finally\",\"forward\",\"generic\",\"goto\",\"if\",\"implements\",\"import\",\"in\",\"index\",\"inherited\",\"initialization\",\"interrupt\",\"is\",\"label\",\"library\",\"mod\",\"module\",\"name\",\"near\",\"not\",\"object\",\"of\",\"on\",\"only\",\"operator\",\"or_else\",\"otherwise\",\"override\",\"package\",\"packed\",\"pow\",\"private\",\"program\",\"protected\",\"public\",\"published\",\"interface\",\"implementation\",\"qualified\",\"read\",\"record\",\"resident\",\"requires\",\"resourcestring\",\"restricted\",\"segment\",\"set\",\"shl\",\"shr\",\"specialize\",\"stored\",\"then\",\"threadvar\",\"to\",\"try\",\"type\",\"unit\",\"uses\",\"var\",\"view\",\"virtual\",\"dynamic\",\"overload\",\"reintroduce\",\"with\",\"write\",\"xor\",\"true\",\"false\",\"procedure\",\"function\",\"constructor\",\"destructor\",\"property\",\"break\",\"continue\",\"exit\",\"abort\",\"while\",\"do\",\"for\",\"raise\",\"repeat\",\"until\"],typeKeywords:[\"boolean\",\"double\",\"byte\",\"integer\",\"shortint\",\"char\",\"longint\",\"float\",\"string\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\*\\}]+/,\"comment\"],[/\\}/,\"comment\",\"@pop\"],[/[\\{]/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\{/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/pascaligo/pascaligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pascaligo/pascaligo\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}]},o.language={defaultToken:\"\",tokenPostfix:\".pascaligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"begin\",\"block\",\"case\",\"const\",\"else\",\"end\",\"fail\",\"for\",\"from\",\"function\",\"if\",\"is\",\"nil\",\"of\",\"remove\",\"return\",\"skip\",\"then\",\"type\",\"var\",\"while\",\"with\",\"option\",\"None\",\"transaction\"],typeKeywords:[\"bool\",\"int\",\"list\",\"map\",\"nat\",\"record\",\"string\",\"unit\",\"address\",\"map\",\"mtz\",\"xtz\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/perl/perl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/perl/perl\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},t.language={defaultToken:\"\",tokenPostfix:\".perl\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"__DATA__\",\"else\",\"lock\",\"__END__\",\"elsif\",\"lt\",\"__FILE__\",\"eq\",\"__LINE__\",\"exp\",\"ne\",\"sub\",\"__PACKAGE__\",\"for\",\"no\",\"and\",\"foreach\",\"or\",\"unless\",\"cmp\",\"ge\",\"package\",\"until\",\"continue\",\"gt\",\"while\",\"CORE\",\"if\",\"xor\",\"do\",\"le\",\"__DIE__\",\"__WARN__\"],builtinFunctions:[\"-A\",\"END\",\"length\",\"setpgrp\",\"-B\",\"endgrent\",\"link\",\"setpriority\",\"-b\",\"endhostent\",\"listen\",\"setprotoent\",\"-C\",\"endnetent\",\"local\",\"setpwent\",\"-c\",\"endprotoent\",\"localtime\",\"setservent\",\"-d\",\"endpwent\",\"log\",\"setsockopt\",\"-e\",\"endservent\",\"lstat\",\"shift\",\"-f\",\"eof\",\"map\",\"shmctl\",\"-g\",\"eval\",\"mkdir\",\"shmget\",\"-k\",\"exec\",\"msgctl\",\"shmread\",\"-l\",\"exists\",\"msgget\",\"shmwrite\",\"-M\",\"exit\",\"msgrcv\",\"shutdown\",\"-O\",\"fcntl\",\"msgsnd\",\"sin\",\"-o\",\"fileno\",\"my\",\"sleep\",\"-p\",\"flock\",\"next\",\"socket\",\"-r\",\"fork\",\"not\",\"socketpair\",\"-R\",\"format\",\"oct\",\"sort\",\"-S\",\"formline\",\"open\",\"splice\",\"-s\",\"getc\",\"opendir\",\"split\",\"-T\",\"getgrent\",\"ord\",\"sprintf\",\"-t\",\"getgrgid\",\"our\",\"sqrt\",\"-u\",\"getgrnam\",\"pack\",\"srand\",\"-w\",\"gethostbyaddr\",\"pipe\",\"stat\",\"-W\",\"gethostbyname\",\"pop\",\"state\",\"-X\",\"gethostent\",\"pos\",\"study\",\"-x\",\"getlogin\",\"print\",\"substr\",\"-z\",\"getnetbyaddr\",\"printf\",\"symlink\",\"abs\",\"getnetbyname\",\"prototype\",\"syscall\",\"accept\",\"getnetent\",\"push\",\"sysopen\",\"alarm\",\"getpeername\",\"quotemeta\",\"sysread\",\"atan2\",\"getpgrp\",\"rand\",\"sysseek\",\"AUTOLOAD\",\"getppid\",\"read\",\"system\",\"BEGIN\",\"getpriority\",\"readdir\",\"syswrite\",\"bind\",\"getprotobyname\",\"readline\",\"tell\",\"binmode\",\"getprotobynumber\",\"readlink\",\"telldir\",\"bless\",\"getprotoent\",\"readpipe\",\"tie\",\"break\",\"getpwent\",\"recv\",\"tied\",\"caller\",\"getpwnam\",\"redo\",\"time\",\"chdir\",\"getpwuid\",\"ref\",\"times\",\"CHECK\",\"getservbyname\",\"rename\",\"truncate\",\"chmod\",\"getservbyport\",\"require\",\"uc\",\"chomp\",\"getservent\",\"reset\",\"ucfirst\",\"chop\",\"getsockname\",\"return\",\"umask\",\"chown\",\"getsockopt\",\"reverse\",\"undef\",\"chr\",\"glob\",\"rewinddir\",\"UNITCHECK\",\"chroot\",\"gmtime\",\"rindex\",\"unlink\",\"close\",\"goto\",\"rmdir\",\"unpack\",\"closedir\",\"grep\",\"say\",\"unshift\",\"connect\",\"hex\",\"scalar\",\"untie\",\"cos\",\"index\",\"seek\",\"use\",\"crypt\",\"INIT\",\"seekdir\",\"utime\",\"dbmclose\",\"int\",\"select\",\"values\",\"dbmopen\",\"ioctl\",\"semctl\",\"vec\",\"defined\",\"join\",\"semget\",\"wait\",\"delete\",\"keys\",\"semop\",\"waitpid\",\"DESTROY\",\"kill\",\"send\",\"wantarray\",\"die\",\"last\",\"setgrent\",\"warn\",\"dump\",\"lc\",\"sethostent\",\"write\",\"each\",\"lcfirst\",\"setnetent\"],builtinFileHandlers:[\"ARGV\",\"STDERR\",\"STDOUT\",\"ARGVOUT\",\"STDIN\",\"ENV\"],builtinVariables:[\"$!\",\"$^RE_TRIE_MAXBUF\",\"$LAST_REGEXP_CODE_RESULT\",'$\"',\"$^S\",\"$LIST_SEPARATOR\",\"$#\",\"$^T\",\"$MATCH\",\"$$\",\"$^TAINT\",\"$MULTILINE_MATCHING\",\"$%\",\"$^UNICODE\",\"$NR\",\"$&\",\"$^UTF8LOCALE\",\"$OFMT\",\"$'\",\"$^V\",\"$OFS\",\"$(\",\"$^W\",\"$ORS\",\"$)\",\"$^WARNING_BITS\",\"$OS_ERROR\",\"$*\",\"$^WIDE_SYSTEM_CALLS\",\"$OSNAME\",\"$+\",\"$^X\",\"$OUTPUT_AUTO_FLUSH\",\"$,\",\"$_\",\"$OUTPUT_FIELD_SEPARATOR\",\"$-\",\"$`\",\"$OUTPUT_RECORD_SEPARATOR\",\"$.\",\"$a\",\"$PERL_VERSION\",\"$/\",\"$ACCUMULATOR\",\"$PERLDB\",\"$0\",\"$ARG\",\"$PID\",\"$:\",\"$ARGV\",\"$POSTMATCH\",\"$;\",\"$b\",\"$PREMATCH\",\"$<\",\"$BASETIME\",\"$PROCESS_ID\",\"$=\",\"$CHILD_ERROR\",\"$PROGRAM_NAME\",\"$>\",\"$COMPILING\",\"$REAL_GROUP_ID\",\"$?\",\"$DEBUGGING\",\"$REAL_USER_ID\",\"$@\",\"$EFFECTIVE_GROUP_ID\",\"$RS\",\"$[\",\"$EFFECTIVE_USER_ID\",\"$SUBSCRIPT_SEPARATOR\",\"$\\\\\",\"$EGID\",\"$SUBSEP\",\"$]\",\"$ERRNO\",\"$SYSTEM_FD_MAX\",\"$^\",\"$EUID\",\"$UID\",\"$^A\",\"$EVAL_ERROR\",\"$WARNING\",\"$^C\",\"$EXCEPTIONS_BEING_CAUGHT\",\"$|\",\"$^CHILD_ERROR_NATIVE\",\"$EXECUTABLE_NAME\",\"$~\",\"$^D\",\"$EXTENDED_OS_ERROR\",\"%!\",\"$^E\",\"$FORMAT_FORMFEED\",\"%^H\",\"$^ENCODING\",\"$FORMAT_LINE_BREAK_CHARACTERS\",\"%ENV\",\"$^F\",\"$FORMAT_LINES_LEFT\",\"%INC\",\"$^H\",\"$FORMAT_LINES_PER_PAGE\",\"%OVERLOAD\",\"$^I\",\"$FORMAT_NAME\",\"%SIG\",\"$^L\",\"$FORMAT_PAGE_NUMBER\",\"@+\",\"$^M\",\"$FORMAT_TOP_NAME\",\"@-\",\"$^N\",\"$GID\",\"@_\",\"$^O\",\"$INPLACE_EDIT\",\"@ARGV\",\"$^OPEN\",\"$INPUT_LINE_NUMBER\",\"@INC\",\"$^P\",\"$INPUT_RECORD_SEPARATOR\",\"@LAST_MATCH_START\",\"$^R\",\"$LAST_MATCH_END\",\"$^RE_DEBUG_FLAGS\",\"$LAST_PAREN_MATCH\"],symbols:/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/,quoteLikeOps:[\"qr\",\"m\",\"s\",\"q\",\"qq\",\"qx\",\"qw\",\"tr\",\"y\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/[a-zA-Z\\-_][\\w\\-_]*/,{cases:{\"@keywords\":\"keyword\",\"@builtinFunctions\":\"type.identifier\",\"@builtinFileHandlers\":\"variable.predefined\",\"@quoteLikeOps\":{token:\"@rematch\",next:\"quotedConstructs\"},\"@default\":\"\"}}],[/[\\$@%][*@#?\\+\\-\\$!\\w\\\\\\^><~:;\\.]+/,{cases:{\"@builtinVariables\":\"variable.predefined\",\"@default\":\"variable\"}}],{include:\"@strings\"},{include:\"@dblStrings\"},{include:\"@perldoc\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/[\\/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\\\/|[^\\]\\/]))*[\\/]\\w*\\s*(?=[).,;]|$)/,\"regexp\"],[/@symbols/,\"operators\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/\\\\'/,\"string.escape\"],[/./,\"string\"]],dblStrings:[[/\"/,\"string\",\"@dblStringBody\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],{include:\"@variables\"},[/./,\"string\"]],quotedConstructs:[[/(q|qw|tr|y)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qstring.(.)\"}],[/(q|qw|tr|y)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qstring.[.]\"}],[/(q|qw|tr|y)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qstring.{.}\"}],[/(q|qw|tr|y)\\s*</,{token:\"string.delim\",switchTo:\"@qstring.<.>\"}],[/(q|qw|tr|y)#/,{token:\"string.delim\",switchTo:\"@qstring.#.#\"}],[/(q|qw|tr|y)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(q|qw|tr|y)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(qr|m|s)\\s*\\(/,{token:\"regexp.delim\",switchTo:\"@qregexp.(.)\"}],[/(qr|m|s)\\s*\\[/,{token:\"regexp.delim\",switchTo:\"@qregexp.[.]\"}],[/(qr|m|s)\\s*\\{/,{token:\"regexp.delim\",switchTo:\"@qregexp.{.}\"}],[/(qr|m|s)\\s*</,{token:\"regexp.delim\",switchTo:\"@qregexp.<.>\"}],[/(qr|m|s)#/,{token:\"regexp.delim\",switchTo:\"@qregexp.#.#\"}],[/(qr|m|s)\\s*([^A-Za-z0-9_#\\s])/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qr|m|s)\\s+(\\w)/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qq|qx)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qqstring.(.)\"}],[/(qq|qx)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qqstring.[.]\"}],[/(qq|qx)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qqstring.{.}\"}],[/(qq|qx)\\s*</,{token:\"string.delim\",switchTo:\"@qqstring.<.>\"}],[/(qq|qx)#/,{token:\"string.delim\",switchTo:\"@qqstring.#.#\"}],[/(qq|qx)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}],[/(qq|qx)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}]],qstring:[[/\\\\./,\"string.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"string.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"string.delim\",next:\"@push\"},\"@default\":\"string\"}}]],qregexp:[{include:\"@variables\"},[/\\\\./,\"regexp.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@regexpModifiers\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"@default\":\"regexp\"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:\"regexp.modifier\",next:\"@popall\"}]],qqstring:[{include:\"@variables\"},{include:\"@qstring\"}],heredoc:[[/<<\\s*['\"`]?([\\w\\-]+)['\"`]?/,{token:\"string.heredoc.delimiter\",next:\"@heredocBody.$1\"}]],heredocBody:[[/^([\\w\\-]+)$/,{cases:{\"$1==$S2\":[{token:\"string.heredoc.delimiter\",next:\"@popall\"}],\"@default\":\"string.heredoc\"}}],[/./,\"string.heredoc\"]],perldoc:[[/^=\\w/,\"comment.doc\",\"@perldocBody\"]],perldocBody:[[/^=cut\\b/,\"type.identifier\",\"@popall\"],[/./,\"comment.doc\"]],variables:[[/\\$\\w+/,\"variable\"],[/@\\w+/,\"variable\"],[/%\\w+/,\"variable\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/pgsql/pgsql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pgsql/pgsql\",[\"require\",\"exports\"],(function(_,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},e.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"A\",\"ABORT\",\"ABS\",\"ABSENT\",\"ABSOLUTE\",\"ACCESS\",\"ACCORDING\",\"ACTION\",\"ADA\",\"ADD\",\"ADMIN\",\"AFTER\",\"AGGREGATE\",\"ALL\",\"ALLOCATE\",\"ALSO\",\"ALTER\",\"ALWAYS\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARE\",\"ARRAY\",\"ARRAY_AGG\",\"ARRAY_MAX_CARDINALITY\",\"AS\",\"ASC\",\"ASENSITIVE\",\"ASSERTION\",\"ASSIGNMENT\",\"ASYMMETRIC\",\"AT\",\"ATOMIC\",\"ATTRIBUTE\",\"ATTRIBUTES\",\"AUTHORIZATION\",\"AVG\",\"BACKWARD\",\"BASE64\",\"BEFORE\",\"BEGIN\",\"BEGIN_FRAME\",\"BEGIN_PARTITION\",\"BERNOULLI\",\"BETWEEN\",\"BIGINT\",\"BINARY\",\"BIT\",\"BIT_LENGTH\",\"BLOB\",\"BLOCKED\",\"BOM\",\"BOOLEAN\",\"BOTH\",\"BREADTH\",\"BY\",\"C\",\"CACHE\",\"CALL\",\"CALLED\",\"CARDINALITY\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CAST\",\"CATALOG\",\"CATALOG_NAME\",\"CEIL\",\"CEILING\",\"CHAIN\",\"CHAR\",\"CHARACTER\",\"CHARACTERISTICS\",\"CHARACTERS\",\"CHARACTER_LENGTH\",\"CHARACTER_SET_CATALOG\",\"CHARACTER_SET_NAME\",\"CHARACTER_SET_SCHEMA\",\"CHAR_LENGTH\",\"CHECK\",\"CHECKPOINT\",\"CLASS\",\"CLASS_ORIGIN\",\"CLOB\",\"CLOSE\",\"CLUSTER\",\"COALESCE\",\"COBOL\",\"COLLATE\",\"COLLATION\",\"COLLATION_CATALOG\",\"COLLATION_NAME\",\"COLLATION_SCHEMA\",\"COLLECT\",\"COLUMN\",\"COLUMNS\",\"COLUMN_NAME\",\"COMMAND_FUNCTION\",\"COMMAND_FUNCTION_CODE\",\"COMMENT\",\"COMMENTS\",\"COMMIT\",\"COMMITTED\",\"CONCURRENTLY\",\"CONDITION\",\"CONDITION_NUMBER\",\"CONFIGURATION\",\"CONFLICT\",\"CONNECT\",\"CONNECTION\",\"CONNECTION_NAME\",\"CONSTRAINT\",\"CONSTRAINTS\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONSTRUCTOR\",\"CONTAINS\",\"CONTENT\",\"CONTINUE\",\"CONTROL\",\"CONVERSION\",\"CONVERT\",\"COPY\",\"CORR\",\"CORRESPONDING\",\"COST\",\"COUNT\",\"COVAR_POP\",\"COVAR_SAMP\",\"CREATE\",\"CROSS\",\"CSV\",\"CUBE\",\"CUME_DIST\",\"CURRENT\",\"CURRENT_CATALOG\",\"CURRENT_DATE\",\"CURRENT_DEFAULT_TRANSFORM_GROUP\",\"CURRENT_PATH\",\"CURRENT_ROLE\",\"CURRENT_ROW\",\"CURRENT_SCHEMA\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_TRANSFORM_GROUP_FOR_TYPE\",\"CURRENT_USER\",\"CURSOR\",\"CURSOR_NAME\",\"CYCLE\",\"DATA\",\"DATABASE\",\"DATALINK\",\"DATE\",\"DATETIME_INTERVAL_CODE\",\"DATETIME_INTERVAL_PRECISION\",\"DAY\",\"DB\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFAULTS\",\"DEFERRABLE\",\"DEFERRED\",\"DEFINED\",\"DEFINER\",\"DEGREE\",\"DELETE\",\"DELIMITER\",\"DELIMITERS\",\"DENSE_RANK\",\"DEPENDS\",\"DEPTH\",\"DEREF\",\"DERIVED\",\"DESC\",\"DESCRIBE\",\"DESCRIPTOR\",\"DETERMINISTIC\",\"DIAGNOSTICS\",\"DICTIONARY\",\"DISABLE\",\"DISCARD\",\"DISCONNECT\",\"DISPATCH\",\"DISTINCT\",\"DLNEWCOPY\",\"DLPREVIOUSCOPY\",\"DLURLCOMPLETE\",\"DLURLCOMPLETEONLY\",\"DLURLCOMPLETEWRITE\",\"DLURLPATH\",\"DLURLPATHONLY\",\"DLURLPATHWRITE\",\"DLURLSCHEME\",\"DLURLSERVER\",\"DLVALUE\",\"DO\",\"DOCUMENT\",\"DOMAIN\",\"DOUBLE\",\"DROP\",\"DYNAMIC\",\"DYNAMIC_FUNCTION\",\"DYNAMIC_FUNCTION_CODE\",\"EACH\",\"ELEMENT\",\"ELSE\",\"EMPTY\",\"ENABLE\",\"ENCODING\",\"ENCRYPTED\",\"END\",\"END-EXEC\",\"END_FRAME\",\"END_PARTITION\",\"ENFORCED\",\"ENUM\",\"EQUALS\",\"ESCAPE\",\"EVENT\",\"EVERY\",\"EXCEPT\",\"EXCEPTION\",\"EXCLUDE\",\"EXCLUDING\",\"EXCLUSIVE\",\"EXEC\",\"EXECUTE\",\"EXISTS\",\"EXP\",\"EXPLAIN\",\"EXPRESSION\",\"EXTENSION\",\"EXTERNAL\",\"EXTRACT\",\"FALSE\",\"FAMILY\",\"FETCH\",\"FILE\",\"FILTER\",\"FINAL\",\"FIRST\",\"FIRST_VALUE\",\"FLAG\",\"FLOAT\",\"FLOOR\",\"FOLLOWING\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FORTRAN\",\"FORWARD\",\"FOUND\",\"FRAME_ROW\",\"FREE\",\"FREEZE\",\"FROM\",\"FS\",\"FULL\",\"FUNCTION\",\"FUNCTIONS\",\"FUSION\",\"G\",\"GENERAL\",\"GENERATED\",\"GET\",\"GLOBAL\",\"GO\",\"GOTO\",\"GRANT\",\"GRANTED\",\"GREATEST\",\"GROUP\",\"GROUPING\",\"GROUPS\",\"HANDLER\",\"HAVING\",\"HEADER\",\"HEX\",\"HIERARCHY\",\"HOLD\",\"HOUR\",\"ID\",\"IDENTITY\",\"IF\",\"IGNORE\",\"ILIKE\",\"IMMEDIATE\",\"IMMEDIATELY\",\"IMMUTABLE\",\"IMPLEMENTATION\",\"IMPLICIT\",\"IMPORT\",\"IN\",\"INCLUDING\",\"INCREMENT\",\"INDENT\",\"INDEX\",\"INDEXES\",\"INDICATOR\",\"INHERIT\",\"INHERITS\",\"INITIALLY\",\"INLINE\",\"INNER\",\"INOUT\",\"INPUT\",\"INSENSITIVE\",\"INSERT\",\"INSTANCE\",\"INSTANTIABLE\",\"INSTEAD\",\"INT\",\"INTEGER\",\"INTEGRITY\",\"INTERSECT\",\"INTERSECTION\",\"INTERVAL\",\"INTO\",\"INVOKER\",\"IS\",\"ISNULL\",\"ISOLATION\",\"JOIN\",\"K\",\"KEY\",\"KEY_MEMBER\",\"KEY_TYPE\",\"LABEL\",\"LAG\",\"LANGUAGE\",\"LARGE\",\"LAST\",\"LAST_VALUE\",\"LATERAL\",\"LEAD\",\"LEADING\",\"LEAKPROOF\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LEVEL\",\"LIBRARY\",\"LIKE\",\"LIKE_REGEX\",\"LIMIT\",\"LINK\",\"LISTEN\",\"LN\",\"LOAD\",\"LOCAL\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATION\",\"LOCATOR\",\"LOCK\",\"LOCKED\",\"LOGGED\",\"LOWER\",\"M\",\"MAP\",\"MAPPING\",\"MATCH\",\"MATCHED\",\"MATERIALIZED\",\"MAX\",\"MAXVALUE\",\"MAX_CARDINALITY\",\"MEMBER\",\"MERGE\",\"MESSAGE_LENGTH\",\"MESSAGE_OCTET_LENGTH\",\"MESSAGE_TEXT\",\"METHOD\",\"MIN\",\"MINUTE\",\"MINVALUE\",\"MOD\",\"MODE\",\"MODIFIES\",\"MODULE\",\"MONTH\",\"MORE\",\"MOVE\",\"MULTISET\",\"MUMPS\",\"NAME\",\"NAMES\",\"NAMESPACE\",\"NATIONAL\",\"NATURAL\",\"NCHAR\",\"NCLOB\",\"NESTING\",\"NEW\",\"NEXT\",\"NFC\",\"NFD\",\"NFKC\",\"NFKD\",\"NIL\",\"NO\",\"NONE\",\"NORMALIZE\",\"NORMALIZED\",\"NOT\",\"NOTHING\",\"NOTIFY\",\"NOTNULL\",\"NOWAIT\",\"NTH_VALUE\",\"NTILE\",\"NULL\",\"NULLABLE\",\"NULLIF\",\"NULLS\",\"NUMBER\",\"NUMERIC\",\"OBJECT\",\"OCCURRENCES_REGEX\",\"OCTETS\",\"OCTET_LENGTH\",\"OF\",\"OFF\",\"OFFSET\",\"OIDS\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OPERATOR\",\"OPTION\",\"OPTIONS\",\"OR\",\"ORDER\",\"ORDERING\",\"ORDINALITY\",\"OTHERS\",\"OUT\",\"OUTER\",\"OUTPUT\",\"OVER\",\"OVERLAPS\",\"OVERLAY\",\"OVERRIDING\",\"OWNED\",\"OWNER\",\"P\",\"PAD\",\"PARALLEL\",\"PARAMETER\",\"PARAMETER_MODE\",\"PARAMETER_NAME\",\"PARAMETER_ORDINAL_POSITION\",\"PARAMETER_SPECIFIC_CATALOG\",\"PARAMETER_SPECIFIC_NAME\",\"PARAMETER_SPECIFIC_SCHEMA\",\"PARSER\",\"PARTIAL\",\"PARTITION\",\"PASCAL\",\"PASSING\",\"PASSTHROUGH\",\"PASSWORD\",\"PATH\",\"PERCENT\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"PERCENT_RANK\",\"PERIOD\",\"PERMISSION\",\"PLACING\",\"PLANS\",\"PLI\",\"POLICY\",\"PORTION\",\"POSITION\",\"POSITION_REGEX\",\"POWER\",\"PRECEDES\",\"PRECEDING\",\"PRECISION\",\"PREPARE\",\"PREPARED\",\"PRESERVE\",\"PRIMARY\",\"PRIOR\",\"PRIVILEGES\",\"PROCEDURAL\",\"PROCEDURE\",\"PROGRAM\",\"PUBLIC\",\"QUOTE\",\"RANGE\",\"RANK\",\"READ\",\"READS\",\"REAL\",\"REASSIGN\",\"RECHECK\",\"RECOVERY\",\"RECURSIVE\",\"REF\",\"REFERENCES\",\"REFERENCING\",\"REFRESH\",\"REGR_AVGX\",\"REGR_AVGY\",\"REGR_COUNT\",\"REGR_INTERCEPT\",\"REGR_R2\",\"REGR_SLOPE\",\"REGR_SXX\",\"REGR_SXY\",\"REGR_SYY\",\"REINDEX\",\"RELATIVE\",\"RELEASE\",\"RENAME\",\"REPEATABLE\",\"REPLACE\",\"REPLICA\",\"REQUIRING\",\"RESET\",\"RESPECT\",\"RESTART\",\"RESTORE\",\"RESTRICT\",\"RESULT\",\"RETURN\",\"RETURNED_CARDINALITY\",\"RETURNED_LENGTH\",\"RETURNED_OCTET_LENGTH\",\"RETURNED_SQLSTATE\",\"RETURNING\",\"RETURNS\",\"REVOKE\",\"RIGHT\",\"ROLE\",\"ROLLBACK\",\"ROLLUP\",\"ROUTINE\",\"ROUTINE_CATALOG\",\"ROUTINE_NAME\",\"ROUTINE_SCHEMA\",\"ROW\",\"ROWS\",\"ROW_COUNT\",\"ROW_NUMBER\",\"RULE\",\"SAVEPOINT\",\"SCALE\",\"SCHEMA\",\"SCHEMA_NAME\",\"SCOPE\",\"SCOPE_CATALOG\",\"SCOPE_NAME\",\"SCOPE_SCHEMA\",\"SCROLL\",\"SEARCH\",\"SECOND\",\"SECTION\",\"SECURITY\",\"SELECT\",\"SELECTIVE\",\"SELF\",\"SENSITIVE\",\"SEQUENCE\",\"SEQUENCES\",\"SERIALIZABLE\",\"SERVER\",\"SERVER_NAME\",\"SESSION\",\"SESSION_USER\",\"SET\",\"SETOF\",\"SETS\",\"SHARE\",\"SHOW\",\"SIMILAR\",\"SIMPLE\",\"SIZE\",\"SKIP\",\"SMALLINT\",\"SNAPSHOT\",\"SOME\",\"SOURCE\",\"SPACE\",\"SPECIFIC\",\"SPECIFICTYPE\",\"SPECIFIC_NAME\",\"SQL\",\"SQLCODE\",\"SQLERROR\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"SQRT\",\"STABLE\",\"STANDALONE\",\"START\",\"STATE\",\"STATEMENT\",\"STATIC\",\"STATISTICS\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"STDIN\",\"STDOUT\",\"STORAGE\",\"STRICT\",\"STRIP\",\"STRUCTURE\",\"STYLE\",\"SUBCLASS_ORIGIN\",\"SUBMULTISET\",\"SUBSTRING\",\"SUBSTRING_REGEX\",\"SUCCEEDS\",\"SUM\",\"SYMMETRIC\",\"SYSID\",\"SYSTEM\",\"SYSTEM_TIME\",\"SYSTEM_USER\",\"T\",\"TABLE\",\"TABLES\",\"TABLESAMPLE\",\"TABLESPACE\",\"TABLE_NAME\",\"TEMP\",\"TEMPLATE\",\"TEMPORARY\",\"TEXT\",\"THEN\",\"TIES\",\"TIME\",\"TIMESTAMP\",\"TIMEZONE_HOUR\",\"TIMEZONE_MINUTE\",\"TO\",\"TOKEN\",\"TOP_LEVEL_COUNT\",\"TRAILING\",\"TRANSACTION\",\"TRANSACTIONS_COMMITTED\",\"TRANSACTIONS_ROLLED_BACK\",\"TRANSACTION_ACTIVE\",\"TRANSFORM\",\"TRANSFORMS\",\"TRANSLATE\",\"TRANSLATE_REGEX\",\"TRANSLATION\",\"TREAT\",\"TRIGGER\",\"TRIGGER_CATALOG\",\"TRIGGER_NAME\",\"TRIGGER_SCHEMA\",\"TRIM\",\"TRIM_ARRAY\",\"TRUE\",\"TRUNCATE\",\"TRUSTED\",\"TYPE\",\"TYPES\",\"UESCAPE\",\"UNBOUNDED\",\"UNCOMMITTED\",\"UNDER\",\"UNENCRYPTED\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNLINK\",\"UNLISTEN\",\"UNLOGGED\",\"UNNAMED\",\"UNNEST\",\"UNTIL\",\"UNTYPED\",\"UPDATE\",\"UPPER\",\"URI\",\"USAGE\",\"USER\",\"USER_DEFINED_TYPE_CATALOG\",\"USER_DEFINED_TYPE_CODE\",\"USER_DEFINED_TYPE_NAME\",\"USER_DEFINED_TYPE_SCHEMA\",\"USING\",\"VACUUM\",\"VALID\",\"VALIDATE\",\"VALIDATOR\",\"VALUE\",\"VALUES\",\"VALUE_OF\",\"VARBINARY\",\"VARCHAR\",\"VARIADIC\",\"VARYING\",\"VAR_POP\",\"VAR_SAMP\",\"VERBOSE\",\"VERSION\",\"VERSIONING\",\"VIEW\",\"VIEWS\",\"VOLATILE\",\"WHEN\",\"WHENEVER\",\"WHERE\",\"WHITESPACE\",\"WIDTH_BUCKET\",\"WINDOW\",\"WITH\",\"WITHIN\",\"WITHOUT\",\"WORK\",\"WRAPPER\",\"WRITE\",\"XML\",\"XMLAGG\",\"XMLATTRIBUTES\",\"XMLBINARY\",\"XMLCAST\",\"XMLCOMMENT\",\"XMLCONCAT\",\"XMLDECLARATION\",\"XMLDOCUMENT\",\"XMLELEMENT\",\"XMLEXISTS\",\"XMLFOREST\",\"XMLITERATE\",\"XMLNAMESPACES\",\"XMLPARSE\",\"XMLPI\",\"XMLQUERY\",\"XMLROOT\",\"XMLSCHEMA\",\"XMLSERIALIZE\",\"XMLTABLE\",\"XMLTEXT\",\"XMLVALIDATE\",\"YEAR\",\"YES\",\"ZONE\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"abbrev\",\"abs\",\"acos\",\"acosd\",\"age\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"ascii\",\"asin\",\"asind\",\"atan\",\"atan2\",\"atan2d\",\"atand\",\"avg\",\"bit\",\"bit_and\",\"bit_length\",\"bit_or\",\"bool_and\",\"bool_or\",\"bound_box\",\"box\",\"brin_summarize_new_values\",\"broadcast\",\"btrim\",\"cardinality\",\"cbrt\",\"ceil\",\"ceiling\",\"center\",\"char_length\",\"character_length\",\"chr\",\"circle\",\"clock_timestamp\",\"coalesce\",\"col_description\",\"concat\",\"concat_ws\",\"convert\",\"convert_from\",\"convert_to\",\"corr\",\"cos\",\"cosd\",\"cot\",\"cotd\",\"count\",\"covar_pop\",\"covar_samp\",\"cume_dist\",\"current_catalog\",\"current_database\",\"current_date\",\"current_query\",\"current_role\",\"current_schema\",\"current_schemas\",\"current_setting\",\"current_time\",\"current_timestamp\",\"current_user\",\"currval\",\"cursor_to_xml\",\"date_part\",\"date_trunc\",\"decode\",\"degrees\",\"dense_rank\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"exp\",\"extract\",\"family\",\"first_value\",\"floor\",\"format\",\"format_type\",\"generate_series\",\"generate_subscripts\",\"get_bit\",\"get_byte\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"greatest\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_database_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_schema_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_table_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"initcap\",\"isclosed\",\"isempty\",\"isfinite\",\"isopen\",\"json_agg\",\"json_object\",\"json_object_agg\",\"json_populate_record\",\"json_populate_recordset\",\"json_to_record\",\"json_to_recordset\",\"jsonb_agg\",\"jsonb_object_agg\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lag\",\"last_value\",\"lastval\",\"lead\",\"least\",\"left\",\"length\",\"line\",\"ln\",\"localtime\",\"localtimestamp\",\"log\",\"lower\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"ltrim\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"masklen\",\"max\",\"md5\",\"min\",\"mod\",\"mode\",\"netmask\",\"network\",\"nextval\",\"now\",\"npoints\",\"nth_value\",\"ntile\",\"nullif\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"octet_length\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backend_pid\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_cancel_backend\",\"pg_client_encoding\",\"pg_collation_is_visible\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_xlog_replay_paused\",\"pg_last_committed_xact\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_dir\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_postmaster_start_time\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_rotate_logfile\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_start_backup\",\"pg_stat_file\",\"pg_stop_backup\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_terminate_backend\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_xact_commit_timestamp\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"pi\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"position\",\"power\",\"pqserverversion\",\"query_to_xml\",\"querytree\",\"quote_ident\",\"quote_literal\",\"quote_nullable\",\"radians\",\"radius\",\"random\",\"range_merge\",\"rank\",\"regexp_matches\",\"regexp_replace\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"repeat\",\"replace\",\"reverse\",\"right\",\"round\",\"row_number\",\"row_security_active\",\"row_to_json\",\"rpad\",\"rtrim\",\"scale\",\"session_user\",\"set_bit\",\"set_byte\",\"set_config\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"shobj_description\",\"sign\",\"sin\",\"sind\",\"split_part\",\"sprintf\",\"sqrt\",\"statement_timestamp\",\"stddev\",\"stddev_pop\",\"stddev_samp\",\"string_agg\",\"string_to_array\",\"strip\",\"strpos\",\"substr\",\"substring\",\"sum\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"tan\",\"tand\",\"text\",\"timeofday\",\"timezone\",\"to_ascii\",\"to_char\",\"to_date\",\"to_hex\",\"to_json\",\"to_number\",\"to_regclass\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_timestamp\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"translate\",\"trim\",\"trunc\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_visible_in_snapshot\",\"unnest\",\"upper\",\"upper_inc\",\"upper_inf\",\"user\",\"var_pop\",\"var_samp\",\"variance\",\"version\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/php/php.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/php/php\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:\"(\",close:\")\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*(#|//)region\\\\b\"),end:new RegExp(\"^\\\\s*(#|//)endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<]+/]],doctype:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],phpInSimpleState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\"}],{include:\"phpRoot\"}],phpInEmbeddedState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"phpRoot\"}],phpRoot:[[/[a-zA-Z_]\\w*/,{cases:{\"@phpKeywords\":{token:\"keyword.php\"},\"@phpCompileTimeConstants\":{token:\"constant.php\"},\"@default\":\"identifier.php\"}}],[/[$a-zA-Z_]\\w*/,{cases:{\"@phpPreDefinedVariables\":{token:\"variable.predefined.php\"},\"@default\":\"variable.php\"}}],[/[{}]/,\"delimiter.bracket.php\"],[/[\\[\\]]/,\"delimiter.array.php\"],[/[()]/,\"delimiter.parenthesis.php\"],[/[ \\t\\r\\n]+/],[/(#|\\/\\/)$/,\"comment.php\"],[/(#|\\/\\/)/,\"comment.php\",\"@phpLineComment\"],[/\\/\\*/,\"comment.php\",\"@phpComment\"],[/\"/,\"string.php\",\"@phpDoubleQuoteString\"],[/'/,\"string.php\",\"@phpSingleQuoteString\"],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,\\@]/,\"delimiter.php\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.php\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.php\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.php\"],[/0[0-7']*[0-7]/,\"number.octal.php\"],[/0[bB][0-1']*[0-1]/,\"number.binary.php\"],[/\\d[\\d']*/,\"number.php\"],[/\\d/,\"number.php\"]],phpComment:[[/\\*\\//,\"comment.php\",\"@pop\"],[/[^*]+/,\"comment.php\"],[/./,\"comment.php\"]],phpLineComment:[[/\\?>/,{token:\"@rematch\",next:\"@pop\"}],[/.$/,\"comment.php\",\"@pop\"],[/[^?]+$/,\"comment.php\",\"@pop\"],[/[^?]+/,\"comment.php\"],[/./,\"comment.php\"]],phpDoubleQuoteString:[[/[^\\\\\"]+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/\"/,\"string.php\",\"@pop\"]],phpSingleQuoteString:[[/[^\\\\']+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/'/,\"string.php\",\"@pop\"]]},phpKeywords:[\"abstract\",\"and\",\"array\",\"as\",\"break\",\"callable\",\"case\",\"catch\",\"cfunction\",\"class\",\"clone\",\"const\",\"continue\",\"declare\",\"default\",\"do\",\"else\",\"elseif\",\"enddeclare\",\"endfor\",\"endforeach\",\"endif\",\"endswitch\",\"endwhile\",\"extends\",\"false\",\"final\",\"for\",\"foreach\",\"function\",\"global\",\"goto\",\"if\",\"implements\",\"interface\",\"instanceof\",\"insteadof\",\"namespace\",\"new\",\"null\",\"object\",\"old_function\",\"or\",\"private\",\"protected\",\"public\",\"resource\",\"static\",\"switch\",\"throw\",\"trait\",\"try\",\"true\",\"use\",\"var\",\"while\",\"xor\",\"die\",\"echo\",\"empty\",\"exit\",\"eval\",\"include\",\"include_once\",\"isset\",\"list\",\"require\",\"require_once\",\"return\",\"print\",\"unset\",\"yield\",\"__construct\"],phpCompileTimeConstants:[\"__CLASS__\",\"__DIR__\",\"__FILE__\",\"__LINE__\",\"__NAMESPACE__\",\"__METHOD__\",\"__FUNCTION__\",\"__TRAIT__\"],phpPreDefinedVariables:[\"$GLOBALS\",\"$_SERVER\",\"$_GET\",\"$_POST\",\"$_FILES\",\"$_REQUEST\",\"$_SESSION\",\"$_ENV\",\"$_COOKIE\",\"$php_errormsg\",\"$HTTP_RAW_POST_DATA\",\"$http_response_header\",\"$argc\",\"$argv\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/postiats/postiats.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/postiats/postiats\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t.language={tokenPostfix:\".pats\",defaultToken:\"invalid\",keywords:[\"abstype\",\"abst0ype\",\"absprop\",\"absview\",\"absvtype\",\"absviewtype\",\"absvt0ype\",\"absviewt0ype\",\"as\",\"and\",\"assume\",\"begin\",\"classdec\",\"datasort\",\"datatype\",\"dataprop\",\"dataview\",\"datavtype\",\"dataviewtype\",\"do\",\"end\",\"extern\",\"extype\",\"extvar\",\"exception\",\"fn\",\"fnx\",\"fun\",\"prfn\",\"prfun\",\"praxi\",\"castfn\",\"if\",\"then\",\"else\",\"ifcase\",\"in\",\"infix\",\"infixl\",\"infixr\",\"prefix\",\"postfix\",\"implmnt\",\"implement\",\"primplmnt\",\"primplement\",\"import\",\"let\",\"local\",\"macdef\",\"macrodef\",\"nonfix\",\"symelim\",\"symintr\",\"overload\",\"of\",\"op\",\"rec\",\"sif\",\"scase\",\"sortdef\",\"sta\",\"stacst\",\"stadef\",\"static\",\"staload\",\"dynload\",\"try\",\"tkindef\",\"typedef\",\"propdef\",\"viewdef\",\"vtypedef\",\"viewtypedef\",\"prval\",\"var\",\"prvar\",\"when\",\"where\",\"with\",\"withtype\",\"withprop\",\"withview\",\"withvtype\",\"withviewtype\"],keywords_dlr:[\"$delay\",\"$ldelay\",\"$arrpsz\",\"$arrptrsize\",\"$d2ctype\",\"$effmask\",\"$effmask_ntm\",\"$effmask_exn\",\"$effmask_ref\",\"$effmask_wrt\",\"$effmask_all\",\"$extern\",\"$extkind\",\"$extype\",\"$extype_struct\",\"$extval\",\"$extfcall\",\"$extmcall\",\"$literal\",\"$myfilename\",\"$mylocation\",\"$myfunction\",\"$lst\",\"$lst_t\",\"$lst_vt\",\"$list\",\"$list_t\",\"$list_vt\",\"$rec\",\"$rec_t\",\"$rec_vt\",\"$record\",\"$record_t\",\"$record_vt\",\"$tup\",\"$tup_t\",\"$tup_vt\",\"$tuple\",\"$tuple_t\",\"$tuple_vt\",\"$break\",\"$continue\",\"$raise\",\"$showtype\",\"$vcopyenv_v\",\"$vcopyenv_vt\",\"$tempenver\",\"$solver_assert\",\"$solver_verify\"],keywords_srp:[\"#if\",\"#ifdef\",\"#ifndef\",\"#then\",\"#elif\",\"#elifdef\",\"#elifndef\",\"#else\",\"#endif\",\"#error\",\"#prerr\",\"#print\",\"#assert\",\"#undef\",\"#define\",\"#include\",\"#require\",\"#pragma\",\"#codegen2\",\"#codegen3\"],irregular_keyword_list:[\"val+\",\"val-\",\"val\",\"case+\",\"case-\",\"case\",\"addr@\",\"addr\",\"fold@\",\"free@\",\"fix@\",\"fix\",\"lam@\",\"lam\",\"llam@\",\"llam\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"view+\",\"view-\",\"view@\",\"view\",\"type+\",\"type-\",\"type\",\"vtype+\",\"vtype-\",\"vtype\",\"vt@ype+\",\"vt@ype-\",\"vt@ype\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"prop+\",\"prop-\",\"prop\",\"type+\",\"type-\",\"type\",\"t@ype\",\"t@ype+\",\"t@ype-\",\"abst@ype\",\"abstype\",\"absviewt@ype\",\"absvt@ype\",\"for*\",\"for\",\"while*\",\"while\"],keywords_types:[\"bool\",\"double\",\"byte\",\"int\",\"short\",\"char\",\"void\",\"unit\",\"long\",\"float\",\"string\",\"strptr\"],keywords_effects:[\"0\",\"fun\",\"clo\",\"prf\",\"funclo\",\"cloptr\",\"cloref\",\"ref\",\"ntm\",\"1\"],operators:[\"@\",\"!\",\"|\",\"`\",\":\",\"$\",\".\",\"=\",\"#\",\"~\",\"..\",\"...\",\"=>\",\"=<>\",\"=/=>\",\"=>>\",\"=/=>>\",\"<\",\">\",\"><\",\".<\",\">.\",\".<>.\",\"->\",\"-<>\"],brackets:[{open:\",(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"`(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"%(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'{\",close:\"}\",token:\"delimiter.parenthesis\"},{open:\"@(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"@{\",close:\"}\",token:\"delimiter.brace\"},{open:\"@[\",close:\"]\",token:\"delimiter.square\"},{open:\"#[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\\.[0-9]*@fexponent?/,hexiexp:/\\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\\@?|fold\\@|free\\@|fix\\@?|lam\\@?|llam\\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\\*?|while\\*?/,ESCHAR:/[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,start:\"root\",tokenizer:{root:[{regex:/[ \\t\\r\\n]+/,action:{token:\"\"}},{regex:/\\(\\*\\)/,action:{token:\"invalid\"}},{regex:/\\(\\*/,action:{token:\"comment\",next:\"lexing_COMMENT_block_ml\"}},{regex:/\\(/,action:\"@brackets\"},{regex:/\\)/,action:\"@brackets\"},{regex:/\\[/,action:\"@brackets\"},{regex:/\\]/,action:\"@brackets\"},{regex:/\\{/,action:\"@brackets\"},{regex:/\\}/,action:\"@brackets\"},{regex:/,\\(/,action:\"@brackets\"},{regex:/,/,action:{token:\"delimiter.comma\"}},{regex:/;/,action:{token:\"delimiter.semicolon\"}},{regex:/@\\(/,action:\"@brackets\"},{regex:/@\\[/,action:\"@brackets\"},{regex:/@\\{/,action:\"@brackets\"},{regex:/:</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/\\.@symbolic+/,action:{token:\"identifier.sym\"}},{regex:/\\.@digit*@fexponent@FLOATSP*/,action:{token:\"number.float\"}},{regex:/\\.@digit+/,action:{token:\"number.float\"}},{regex:/\\$@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_dlr\":{token:\"keyword.dlr\"},\"@default\":{token:\"namespace\"}}}},{regex:/\\#@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_srp\":{token:\"keyword.srp\"},\"@default\":{token:\"identifier\"}}}},{regex:/%\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/^%{(#|\\^|\\$)?/,action:{token:\"keyword\",next:\"@lexing_EXTCODE\",nextEmbedded:\"text/javascript\"}},{regex:/^%}/,action:{token:\"keyword\"}},{regex:/'\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/'\\[/,action:{token:\"delimiter.bracket\"}},{regex:/'\\{/,action:{token:\"delimiter.brace\"}},[/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/,[\"string\",\"string.escape\",\"string\"]],[/'[^\\\\']'/,\"string\"],[/\"/,\"string.quote\",\"@lexing_DQUOTE\"],{regex:/`\\(/,action:\"@brackets\"},{regex:/\\\\/,action:{token:\"punctuation\"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:\"keyword\"}},{regex:/@IDENTFST@IDENTRST*[<!\\[]?/,action:{cases:{\"@keywords\":{token:\"keyword\"},\"@keywords_types\":{token:\"type\"},\"@default\":{token:\"identifier\"}}}},{regex:/\\/\\/\\/\\//,action:{token:\"comment\",next:\"@lexing_COMMENT_rest\"}},{regex:/\\/\\/.*$/,action:{token:\"comment\"}},{regex:/\\/\\*/,action:{token:\"comment\",next:\"@lexing_COMMENT_block_c\"}},{regex:/-<|=</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/@symbolic+/,action:{cases:{\"@operators\":\"keyword\",\"@default\":\"operator\"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:\"number.hex\"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:\"number.octal\"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:\"number.decimal\"}},{regex:/@digit+@INTSP*/,action:{token:\"number\"}}],lexing_COMMENT_block_ml:[[/[^\\(\\*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[/\\(\\*/,\"comment.invalid\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"]],lexing_COMMENT_block_c:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],lexing_COMMENT_rest:[[/$/,\"comment\",\"@pop\"],[/.*/,\"comment\"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{\"@keywords_effects\":{token:\"type.effect\"},\"@default\":{token:\"identifier\"}}}},{regex:/,/,action:{token:\"punctuation\"}},{regex:/>/,action:{token:\"@rematch\",next:\"@pop\"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}},{regex:/[^%]+/,action:\"\"}],lexing_DQUOTE:[{regex:/\"/,action:{token:\"string.quote\",next:\"@pop\"}},{regex:/(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/,action:[{token:\"string.escape\"},{token:\"identifier\"},{token:\"string.escape\"}]},{regex:/\\\\$/,action:{token:\"string.escape\"}},{regex:/\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:\"string.escape\"}},{regex:/[^\\\\\"]+/,action:{token:\"string\"}}]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/powerquery/powerquery.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/powerquery/powerquery\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\",\"identifier\"]}]},t.language={defaultToken:\"\",tokenPostfix:\".pq\",ignoreCase:!1,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],operatorKeywords:[\"and\",\"not\",\"or\"],keywords:[\"as\",\"each\",\"else\",\"error\",\"false\",\"if\",\"in\",\"is\",\"let\",\"meta\",\"otherwise\",\"section\",\"shared\",\"then\",\"true\",\"try\",\"type\"],constructors:[\"#binary\",\"#date\",\"#datetime\",\"#datetimezone\",\"#duration\",\"#table\",\"#time\"],constants:[\"#infinity\",\"#nan\",\"#sections\",\"#shared\"],typeKeywords:[\"action\",\"any\",\"anynonnull\",\"none\",\"null\",\"logical\",\"number\",\"time\",\"date\",\"datetime\",\"datetimezone\",\"duration\",\"text\",\"binary\",\"list\",\"record\",\"table\",\"function\"],builtinFunctions:[\"Access.Database\",\"Action.Return\",\"Action.Sequence\",\"Action.Try\",\"ActiveDirectory.Domains\",\"AdoDotNet.DataSource\",\"AdoDotNet.Query\",\"AdobeAnalytics.Cubes\",\"AnalysisServices.Database\",\"AnalysisServices.Databases\",\"AzureStorage.BlobContents\",\"AzureStorage.Blobs\",\"AzureStorage.Tables\",\"Binary.Buffer\",\"Binary.Combine\",\"Binary.Compress\",\"Binary.Decompress\",\"Binary.End\",\"Binary.From\",\"Binary.FromList\",\"Binary.FromText\",\"Binary.InferContentType\",\"Binary.Length\",\"Binary.ToList\",\"Binary.ToText\",\"BinaryFormat.7BitEncodedSignedInteger\",\"BinaryFormat.7BitEncodedUnsignedInteger\",\"BinaryFormat.Binary\",\"BinaryFormat.Byte\",\"BinaryFormat.ByteOrder\",\"BinaryFormat.Choice\",\"BinaryFormat.Decimal\",\"BinaryFormat.Double\",\"BinaryFormat.Group\",\"BinaryFormat.Length\",\"BinaryFormat.List\",\"BinaryFormat.Null\",\"BinaryFormat.Record\",\"BinaryFormat.SignedInteger16\",\"BinaryFormat.SignedInteger32\",\"BinaryFormat.SignedInteger64\",\"BinaryFormat.Single\",\"BinaryFormat.Text\",\"BinaryFormat.Transform\",\"BinaryFormat.UnsignedInteger16\",\"BinaryFormat.UnsignedInteger32\",\"BinaryFormat.UnsignedInteger64\",\"Byte.From\",\"Character.FromNumber\",\"Character.ToNumber\",\"Combiner.CombineTextByDelimiter\",\"Combiner.CombineTextByEachDelimiter\",\"Combiner.CombineTextByLengths\",\"Combiner.CombineTextByPositions\",\"Combiner.CombineTextByRanges\",\"Comparer.Equals\",\"Comparer.FromCulture\",\"Comparer.Ordinal\",\"Comparer.OrdinalIgnoreCase\",\"Csv.Document\",\"Cube.AddAndExpandDimensionColumn\",\"Cube.AddMeasureColumn\",\"Cube.ApplyParameter\",\"Cube.AttributeMemberId\",\"Cube.AttributeMemberProperty\",\"Cube.CollapseAndRemoveColumns\",\"Cube.Dimensions\",\"Cube.DisplayFolders\",\"Cube.Measures\",\"Cube.Parameters\",\"Cube.Properties\",\"Cube.PropertyKey\",\"Cube.ReplaceDimensions\",\"Cube.Transform\",\"Currency.From\",\"DB2.Database\",\"Date.AddDays\",\"Date.AddMonths\",\"Date.AddQuarters\",\"Date.AddWeeks\",\"Date.AddYears\",\"Date.Day\",\"Date.DayOfWeek\",\"Date.DayOfWeekName\",\"Date.DayOfYear\",\"Date.DaysInMonth\",\"Date.EndOfDay\",\"Date.EndOfMonth\",\"Date.EndOfQuarter\",\"Date.EndOfWeek\",\"Date.EndOfYear\",\"Date.From\",\"Date.FromText\",\"Date.IsInCurrentDay\",\"Date.IsInCurrentMonth\",\"Date.IsInCurrentQuarter\",\"Date.IsInCurrentWeek\",\"Date.IsInCurrentYear\",\"Date.IsInNextDay\",\"Date.IsInNextMonth\",\"Date.IsInNextNDays\",\"Date.IsInNextNMonths\",\"Date.IsInNextNQuarters\",\"Date.IsInNextNWeeks\",\"Date.IsInNextNYears\",\"Date.IsInNextQuarter\",\"Date.IsInNextWeek\",\"Date.IsInNextYear\",\"Date.IsInPreviousDay\",\"Date.IsInPreviousMonth\",\"Date.IsInPreviousNDays\",\"Date.IsInPreviousNMonths\",\"Date.IsInPreviousNQuarters\",\"Date.IsInPreviousNWeeks\",\"Date.IsInPreviousNYears\",\"Date.IsInPreviousQuarter\",\"Date.IsInPreviousWeek\",\"Date.IsInPreviousYear\",\"Date.IsInYearToDate\",\"Date.IsLeapYear\",\"Date.Month\",\"Date.MonthName\",\"Date.QuarterOfYear\",\"Date.StartOfDay\",\"Date.StartOfMonth\",\"Date.StartOfQuarter\",\"Date.StartOfWeek\",\"Date.StartOfYear\",\"Date.ToRecord\",\"Date.ToText\",\"Date.WeekOfMonth\",\"Date.WeekOfYear\",\"Date.Year\",\"DateTime.AddZone\",\"DateTime.Date\",\"DateTime.FixedLocalNow\",\"DateTime.From\",\"DateTime.FromFileTime\",\"DateTime.FromText\",\"DateTime.IsInCurrentHour\",\"DateTime.IsInCurrentMinute\",\"DateTime.IsInCurrentSecond\",\"DateTime.IsInNextHour\",\"DateTime.IsInNextMinute\",\"DateTime.IsInNextNHours\",\"DateTime.IsInNextNMinutes\",\"DateTime.IsInNextNSeconds\",\"DateTime.IsInNextSecond\",\"DateTime.IsInPreviousHour\",\"DateTime.IsInPreviousMinute\",\"DateTime.IsInPreviousNHours\",\"DateTime.IsInPreviousNMinutes\",\"DateTime.IsInPreviousNSeconds\",\"DateTime.IsInPreviousSecond\",\"DateTime.LocalNow\",\"DateTime.Time\",\"DateTime.ToRecord\",\"DateTime.ToText\",\"DateTimeZone.FixedLocalNow\",\"DateTimeZone.FixedUtcNow\",\"DateTimeZone.From\",\"DateTimeZone.FromFileTime\",\"DateTimeZone.FromText\",\"DateTimeZone.LocalNow\",\"DateTimeZone.RemoveZone\",\"DateTimeZone.SwitchZone\",\"DateTimeZone.ToLocal\",\"DateTimeZone.ToRecord\",\"DateTimeZone.ToText\",\"DateTimeZone.ToUtc\",\"DateTimeZone.UtcNow\",\"DateTimeZone.ZoneHours\",\"DateTimeZone.ZoneMinutes\",\"Decimal.From\",\"Diagnostics.ActivityId\",\"Diagnostics.Trace\",\"DirectQueryCapabilities.From\",\"Double.From\",\"Duration.Days\",\"Duration.From\",\"Duration.FromText\",\"Duration.Hours\",\"Duration.Minutes\",\"Duration.Seconds\",\"Duration.ToRecord\",\"Duration.ToText\",\"Duration.TotalDays\",\"Duration.TotalHours\",\"Duration.TotalMinutes\",\"Duration.TotalSeconds\",\"Embedded.Value\",\"Error.Record\",\"Excel.CurrentWorkbook\",\"Excel.Workbook\",\"Exchange.Contents\",\"Expression.Constant\",\"Expression.Evaluate\",\"Expression.Identifier\",\"Facebook.Graph\",\"File.Contents\",\"Folder.Contents\",\"Folder.Files\",\"Function.From\",\"Function.Invoke\",\"Function.InvokeAfter\",\"Function.IsDataSource\",\"GoogleAnalytics.Accounts\",\"Guid.From\",\"HdInsight.Containers\",\"HdInsight.Contents\",\"HdInsight.Files\",\"Hdfs.Contents\",\"Hdfs.Files\",\"Informix.Database\",\"Int16.From\",\"Int32.From\",\"Int64.From\",\"Int8.From\",\"ItemExpression.From\",\"Json.Document\",\"Json.FromValue\",\"Lines.FromBinary\",\"Lines.FromText\",\"Lines.ToBinary\",\"Lines.ToText\",\"List.Accumulate\",\"List.AllTrue\",\"List.Alternate\",\"List.AnyTrue\",\"List.Average\",\"List.Buffer\",\"List.Combine\",\"List.Contains\",\"List.ContainsAll\",\"List.ContainsAny\",\"List.Count\",\"List.Covariance\",\"List.DateTimeZones\",\"List.DateTimes\",\"List.Dates\",\"List.Difference\",\"List.Distinct\",\"List.Durations\",\"List.FindText\",\"List.First\",\"List.FirstN\",\"List.Generate\",\"List.InsertRange\",\"List.Intersect\",\"List.IsDistinct\",\"List.IsEmpty\",\"List.Last\",\"List.LastN\",\"List.MatchesAll\",\"List.MatchesAny\",\"List.Max\",\"List.MaxN\",\"List.Median\",\"List.Min\",\"List.MinN\",\"List.Mode\",\"List.Modes\",\"List.NonNullCount\",\"List.Numbers\",\"List.PositionOf\",\"List.PositionOfAny\",\"List.Positions\",\"List.Product\",\"List.Random\",\"List.Range\",\"List.RemoveFirstN\",\"List.RemoveItems\",\"List.RemoveLastN\",\"List.RemoveMatchingItems\",\"List.RemoveNulls\",\"List.RemoveRange\",\"List.Repeat\",\"List.ReplaceMatchingItems\",\"List.ReplaceRange\",\"List.ReplaceValue\",\"List.Reverse\",\"List.Select\",\"List.Single\",\"List.SingleOrDefault\",\"List.Skip\",\"List.Sort\",\"List.StandardDeviation\",\"List.Sum\",\"List.Times\",\"List.Transform\",\"List.TransformMany\",\"List.Union\",\"List.Zip\",\"Logical.From\",\"Logical.FromText\",\"Logical.ToText\",\"MQ.Queue\",\"MySQL.Database\",\"Number.Abs\",\"Number.Acos\",\"Number.Asin\",\"Number.Atan\",\"Number.Atan2\",\"Number.BitwiseAnd\",\"Number.BitwiseNot\",\"Number.BitwiseOr\",\"Number.BitwiseShiftLeft\",\"Number.BitwiseShiftRight\",\"Number.BitwiseXor\",\"Number.Combinations\",\"Number.Cos\",\"Number.Cosh\",\"Number.Exp\",\"Number.Factorial\",\"Number.From\",\"Number.FromText\",\"Number.IntegerDivide\",\"Number.IsEven\",\"Number.IsNaN\",\"Number.IsOdd\",\"Number.Ln\",\"Number.Log\",\"Number.Log10\",\"Number.Mod\",\"Number.Permutations\",\"Number.Power\",\"Number.Random\",\"Number.RandomBetween\",\"Number.Round\",\"Number.RoundAwayFromZero\",\"Number.RoundDown\",\"Number.RoundTowardZero\",\"Number.RoundUp\",\"Number.Sign\",\"Number.Sin\",\"Number.Sinh\",\"Number.Sqrt\",\"Number.Tan\",\"Number.Tanh\",\"Number.ToText\",\"OData.Feed\",\"Odbc.DataSource\",\"Odbc.Query\",\"OleDb.DataSource\",\"OleDb.Query\",\"Oracle.Database\",\"Percentage.From\",\"PostgreSQL.Database\",\"RData.FromBinary\",\"Record.AddField\",\"Record.Combine\",\"Record.Field\",\"Record.FieldCount\",\"Record.FieldNames\",\"Record.FieldOrDefault\",\"Record.FieldValues\",\"Record.FromList\",\"Record.FromTable\",\"Record.HasFields\",\"Record.RemoveFields\",\"Record.RenameFields\",\"Record.ReorderFields\",\"Record.SelectFields\",\"Record.ToList\",\"Record.ToTable\",\"Record.TransformFields\",\"Replacer.ReplaceText\",\"Replacer.ReplaceValue\",\"RowExpression.Column\",\"RowExpression.From\",\"Salesforce.Data\",\"Salesforce.Reports\",\"SapBusinessWarehouse.Cubes\",\"SapHana.Database\",\"SharePoint.Contents\",\"SharePoint.Files\",\"SharePoint.Tables\",\"Single.From\",\"Soda.Feed\",\"Splitter.SplitByNothing\",\"Splitter.SplitTextByAnyDelimiter\",\"Splitter.SplitTextByDelimiter\",\"Splitter.SplitTextByEachDelimiter\",\"Splitter.SplitTextByLengths\",\"Splitter.SplitTextByPositions\",\"Splitter.SplitTextByRanges\",\"Splitter.SplitTextByRepeatedLengths\",\"Splitter.SplitTextByWhitespace\",\"Sql.Database\",\"Sql.Databases\",\"SqlExpression.SchemaFrom\",\"SqlExpression.ToExpression\",\"Sybase.Database\",\"Table.AddColumn\",\"Table.AddIndexColumn\",\"Table.AddJoinColumn\",\"Table.AddKey\",\"Table.AggregateTableColumn\",\"Table.AlternateRows\",\"Table.Buffer\",\"Table.Column\",\"Table.ColumnCount\",\"Table.ColumnNames\",\"Table.ColumnsOfType\",\"Table.Combine\",\"Table.CombineColumns\",\"Table.Contains\",\"Table.ContainsAll\",\"Table.ContainsAny\",\"Table.DemoteHeaders\",\"Table.Distinct\",\"Table.DuplicateColumn\",\"Table.ExpandListColumn\",\"Table.ExpandRecordColumn\",\"Table.ExpandTableColumn\",\"Table.FillDown\",\"Table.FillUp\",\"Table.FilterWithDataTable\",\"Table.FindText\",\"Table.First\",\"Table.FirstN\",\"Table.FirstValue\",\"Table.FromColumns\",\"Table.FromList\",\"Table.FromPartitions\",\"Table.FromRecords\",\"Table.FromRows\",\"Table.FromValue\",\"Table.Group\",\"Table.HasColumns\",\"Table.InsertRows\",\"Table.IsDistinct\",\"Table.IsEmpty\",\"Table.Join\",\"Table.Keys\",\"Table.Last\",\"Table.LastN\",\"Table.MatchesAllRows\",\"Table.MatchesAnyRows\",\"Table.Max\",\"Table.MaxN\",\"Table.Min\",\"Table.MinN\",\"Table.NestedJoin\",\"Table.Partition\",\"Table.PartitionValues\",\"Table.Pivot\",\"Table.PositionOf\",\"Table.PositionOfAny\",\"Table.PrefixColumns\",\"Table.Profile\",\"Table.PromoteHeaders\",\"Table.Range\",\"Table.RemoveColumns\",\"Table.RemoveFirstN\",\"Table.RemoveLastN\",\"Table.RemoveMatchingRows\",\"Table.RemoveRows\",\"Table.RemoveRowsWithErrors\",\"Table.RenameColumns\",\"Table.ReorderColumns\",\"Table.Repeat\",\"Table.ReplaceErrorValues\",\"Table.ReplaceKeys\",\"Table.ReplaceMatchingRows\",\"Table.ReplaceRelationshipIdentity\",\"Table.ReplaceRows\",\"Table.ReplaceValue\",\"Table.ReverseRows\",\"Table.RowCount\",\"Table.Schema\",\"Table.SelectColumns\",\"Table.SelectRows\",\"Table.SelectRowsWithErrors\",\"Table.SingleRow\",\"Table.Skip\",\"Table.Sort\",\"Table.SplitColumn\",\"Table.ToColumns\",\"Table.ToList\",\"Table.ToRecords\",\"Table.ToRows\",\"Table.TransformColumnNames\",\"Table.TransformColumnTypes\",\"Table.TransformColumns\",\"Table.TransformRows\",\"Table.Transpose\",\"Table.Unpivot\",\"Table.UnpivotOtherColumns\",\"Table.View\",\"Table.ViewFunction\",\"TableAction.DeleteRows\",\"TableAction.InsertRows\",\"TableAction.UpdateRows\",\"Tables.GetRelationships\",\"Teradata.Database\",\"Text.AfterDelimiter\",\"Text.At\",\"Text.BeforeDelimiter\",\"Text.BetweenDelimiters\",\"Text.Clean\",\"Text.Combine\",\"Text.Contains\",\"Text.End\",\"Text.EndsWith\",\"Text.Format\",\"Text.From\",\"Text.FromBinary\",\"Text.Insert\",\"Text.Length\",\"Text.Lower\",\"Text.Middle\",\"Text.NewGuid\",\"Text.PadEnd\",\"Text.PadStart\",\"Text.PositionOf\",\"Text.PositionOfAny\",\"Text.Proper\",\"Text.Range\",\"Text.Remove\",\"Text.RemoveRange\",\"Text.Repeat\",\"Text.Replace\",\"Text.ReplaceRange\",\"Text.Select\",\"Text.Split\",\"Text.SplitAny\",\"Text.Start\",\"Text.StartsWith\",\"Text.ToBinary\",\"Text.ToList\",\"Text.Trim\",\"Text.TrimEnd\",\"Text.TrimStart\",\"Text.Upper\",\"Time.EndOfHour\",\"Time.From\",\"Time.FromText\",\"Time.Hour\",\"Time.Minute\",\"Time.Second\",\"Time.StartOfHour\",\"Time.ToRecord\",\"Time.ToText\",\"Type.AddTableKey\",\"Type.ClosedRecord\",\"Type.Facets\",\"Type.ForFunction\",\"Type.ForRecord\",\"Type.FunctionParameters\",\"Type.FunctionRequiredParameters\",\"Type.FunctionReturn\",\"Type.Is\",\"Type.IsNullable\",\"Type.IsOpenRecord\",\"Type.ListItem\",\"Type.NonNullable\",\"Type.OpenRecord\",\"Type.RecordFields\",\"Type.ReplaceFacets\",\"Type.ReplaceTableKeys\",\"Type.TableColumn\",\"Type.TableKeys\",\"Type.TableRow\",\"Type.TableSchema\",\"Type.Union\",\"Uri.BuildQueryString\",\"Uri.Combine\",\"Uri.EscapeDataString\",\"Uri.Parts\",\"Value.Add\",\"Value.As\",\"Value.Compare\",\"Value.Divide\",\"Value.Equals\",\"Value.Firewall\",\"Value.FromText\",\"Value.Is\",\"Value.Metadata\",\"Value.Multiply\",\"Value.NativeQuery\",\"Value.NullableEquals\",\"Value.RemoveMetadata\",\"Value.ReplaceMetadata\",\"Value.ReplaceType\",\"Value.Subtract\",\"Value.Type\",\"ValueAction.NativeStatement\",\"ValueAction.Replace\",\"Variable.Value\",\"Web.Contents\",\"Web.Page\",\"WebAction.Request\",\"Xml.Document\",\"Xml.Tables\"],builtinConstants:[\"BinaryEncoding.Base64\",\"BinaryEncoding.Hex\",\"BinaryOccurrence.Optional\",\"BinaryOccurrence.Repeating\",\"BinaryOccurrence.Required\",\"ByteOrder.BigEndian\",\"ByteOrder.LittleEndian\",\"Compression.Deflate\",\"Compression.GZip\",\"CsvStyle.QuoteAfterDelimiter\",\"CsvStyle.QuoteAlways\",\"Culture.Current\",\"Day.Friday\",\"Day.Monday\",\"Day.Saturday\",\"Day.Sunday\",\"Day.Thursday\",\"Day.Tuesday\",\"Day.Wednesday\",\"ExtraValues.Error\",\"ExtraValues.Ignore\",\"ExtraValues.List\",\"GroupKind.Global\",\"GroupKind.Local\",\"JoinAlgorithm.Dynamic\",\"JoinAlgorithm.LeftHash\",\"JoinAlgorithm.LeftIndex\",\"JoinAlgorithm.PairwiseHash\",\"JoinAlgorithm.RightHash\",\"JoinAlgorithm.RightIndex\",\"JoinAlgorithm.SortMerge\",\"JoinKind.FullOuter\",\"JoinKind.Inner\",\"JoinKind.LeftAnti\",\"JoinKind.LeftOuter\",\"JoinKind.RightAnti\",\"JoinKind.RightOuter\",\"JoinSide.Left\",\"JoinSide.Right\",\"MissingField.Error\",\"MissingField.Ignore\",\"MissingField.UseNull\",\"Number.E\",\"Number.Epsilon\",\"Number.NaN\",\"Number.NegativeInfinity\",\"Number.PI\",\"Number.PositiveInfinity\",\"Occurrence.All\",\"Occurrence.First\",\"Occurrence.Last\",\"Occurrence.Optional\",\"Occurrence.Repeating\",\"Occurrence.Required\",\"Order.Ascending\",\"Order.Descending\",\"Precision.Decimal\",\"Precision.Double\",\"QuoteStyle.Csv\",\"QuoteStyle.None\",\"RelativePosition.FromEnd\",\"RelativePosition.FromStart\",\"RoundingMode.AwayFromZero\",\"RoundingMode.Down\",\"RoundingMode.ToEven\",\"RoundingMode.TowardZero\",\"RoundingMode.Up\",\"SapHanaDistribution.All\",\"SapHanaDistribution.Connection\",\"SapHanaDistribution.Off\",\"SapHanaDistribution.Statement\",\"SapHanaRangeOperator.Equals\",\"SapHanaRangeOperator.GreaterThan\",\"SapHanaRangeOperator.GreaterThanOrEquals\",\"SapHanaRangeOperator.LessThan\",\"SapHanaRangeOperator.LessThanOrEquals\",\"SapHanaRangeOperator.NotEquals\",\"TextEncoding.Ascii\",\"TextEncoding.BigEndianUnicode\",\"TextEncoding.Unicode\",\"TextEncoding.Utf16\",\"TextEncoding.Utf8\",\"TextEncoding.Windows\",\"TraceLevel.Critical\",\"TraceLevel.Error\",\"TraceLevel.Information\",\"TraceLevel.Verbose\",\"TraceLevel.Warning\",\"WebMethod.Delete\",\"WebMethod.Get\",\"WebMethod.Head\",\"WebMethod.Patch\",\"WebMethod.Post\",\"WebMethod.Put\"],builtinTypes:[\"Action.Type\",\"Any.Type\",\"Binary.Type\",\"BinaryEncoding.Type\",\"BinaryOccurrence.Type\",\"Byte.Type\",\"ByteOrder.Type\",\"Character.Type\",\"Compression.Type\",\"CsvStyle.Type\",\"Currency.Type\",\"Date.Type\",\"DateTime.Type\",\"DateTimeZone.Type\",\"Day.Type\",\"Decimal.Type\",\"Double.Type\",\"Duration.Type\",\"ExtraValues.Type\",\"Function.Type\",\"GroupKind.Type\",\"Guid.Type\",\"Int16.Type\",\"Int32.Type\",\"Int64.Type\",\"Int8.Type\",\"JoinAlgorithm.Type\",\"JoinKind.Type\",\"JoinSide.Type\",\"List.Type\",\"Logical.Type\",\"MissingField.Type\",\"None.Type\",\"Null.Type\",\"Number.Type\",\"Occurrence.Type\",\"Order.Type\",\"Password.Type\",\"Percentage.Type\",\"Precision.Type\",\"QuoteStyle.Type\",\"Record.Type\",\"RelativePosition.Type\",\"RoundingMode.Type\",\"SapHanaDistribution.Type\",\"SapHanaRangeOperator.Type\",\"Single.Type\",\"Table.Type\",\"Text.Type\",\"TextEncoding.Type\",\"Time.Type\",\"TraceLevel.Type\",\"Type.Type\",\"Uri.Type\",\"WebMethod.Type\"],tokenizer:{root:[[/#\"[\\w \\.]+\"/,\"identifier.quote\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+([eE][\\-+]?\\d+)?/,\"number\"],[/(#?[a-z]+)\\b/,{cases:{\"@typeKeywords\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@constructors\":\"constructor\",\"@operatorKeywords\":\"operators\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.Type)\\b/,{cases:{\"@builtinTypes\":\"type\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.[A-Z][a-zA-Z0-9]+)\\b/,{cases:{\"@builtinFunctions\":\"keyword.function\",\"@builtinConstants\":\"constant\",\"@default\":\"identifier\"}}],[/\\b([a-zA-Z_][\\w\\.]*)\\b/,\"identifier\"],{include:\"@whitespace\"},{include:\"@comments\"},{include:\"@strings\"},[/[{}()\\[\\]]/,\"@brackets\"],[/([=\\+<>\\-\\*&@\\?\\/!])|([<>]=)|(<>)|(=>)|(\\.\\.\\.)|(\\.\\.)/,\"operators\"],[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],strings:[['\"',\"string\",\"@string\"]],string:[['\"\"',\"string.escape\"],['\"',\"string\",\"@pop\"],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/powershell/powershell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/powershell/powershell\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"#\",blockComment:[\"<#\",\"#>\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},n.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".ps1\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"begin\",\"break\",\"catch\",\"class\",\"continue\",\"data\",\"define\",\"do\",\"dynamicparam\",\"else\",\"elseif\",\"end\",\"exit\",\"filter\",\"finally\",\"for\",\"foreach\",\"from\",\"function\",\"if\",\"in\",\"param\",\"process\",\"return\",\"switch\",\"throw\",\"trap\",\"try\",\"until\",\"using\",\"var\",\"while\",\"workflow\",\"parallel\",\"sequence\",\"inlinescript\",\"configuration\"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\\-*\\/\\^;\\.,]+/,escapes:/`(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\\w-]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/^:\\w*/,\"metatag\"],[/\\$(\\{((global|local|private|script|using):)?[\\w]+\\}|((global|local|private|script|using):)?[\\w]+)/,\"variable\"],[/<#/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\\@\"/,\"string\",'@herestring.\"'],[/\\@'/,\"string\",\"@herestring.'\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\$`]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/`./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/\\$[\\w]+$/,{cases:{'$S2==\"':{token:\"variable\",next:\"@popall\"},\"@default\":{token:\"string\",next:\"@popall\"}}}],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}}}]],herestring:[[/^\\s*([\"'])@/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^\\$`]+/,\"string\"],[/@escapes/,\"string.escape\"],[/`./,\"string.escape.invalid\"],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}]],comment:[[/[^#\\.]+/,\"comment\"],[/#>/,\"comment\",\"@pop\"],[/(\\.)(@helpKeywords)(?!\\w)/,{token:\"comment.keyword.$2\"}],[/[\\.#]/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/pug/pug.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pug/pug\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}],folding:{offSide:!0}},t.language={defaultToken:\"\",tokenPostfix:\".pug\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"append\",\"block\",\"case\",\"default\",\"doctype\",\"each\",\"else\",\"extends\",\"for\",\"if\",\"in\",\"include\",\"mixin\",\"typeof\",\"unless\",\"var\",\"when\"],tags:[\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"keygen\",\"kbd\",\"label\",\"li\",\"link\",\"map\",\"mark\",\"menu\",\"meta\",\"meter\",\"nav\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"tracks\",\"tt\",\"u\",\"ul\",\"video\",\"wbr\"],symbols:/[\\+\\-\\*\\%\\&\\|\\!\\=\\/\\.\\,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)([a-zA-Z_-][\\w-]*)/,{cases:{\"$2@tags\":{cases:{\"@eos\":[\"\",\"tag\"],\"@default\":[\"\",{token:\"tag\",next:\"@tag.$1\"}]}},\"$2@keywords\":[\"\",{token:\"keyword.$2\"}],\"@default\":[\"\",\"\"]}}],[/^(\\s*)(#[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.id\"],\"@default\":[\"\",{token:\"tag.id\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\.[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.class\"],\"@default\":[\"\",{token:\"tag.class\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\|.*)$/,\"\"],{include:\"@whitespace\"},[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\d+/,\"number\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],tag:[[/(\\.)(\\s*$)/,[{token:\"delimiter\",next:\"@blockText.$S2.\"},\"\"]],[/\\s+/,{token:\"\",next:\"@simpleText\"}],[/#[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.id\",next:\"@pop\"},\"@default\":\"tag.id\"}}],[/\\.[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.class\",next:\"@pop\"},\"@default\":\"tag.class\"}}],[/\\(/,{token:\"delimiter.parenthesis\",next:\"@attributeList\"}]],simpleText:[[/[^#]+$/,{token:\"\",next:\"@popall\"}],[/[^#]+/,{token:\"\"}],[/(#{)([^}]*)(})/,{cases:{\"@eos\":[\"interpolation.delimiter\",\"interpolation\",{token:\"interpolation.delimiter\",next:\"@popall\"}],\"@default\":[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]}}],[/#$/,{token:\"\",next:\"@popall\"}],[/#/,\"\"]],attributeList:[[/\\s+/,\"\"],[/(\\w+)(\\s*=\\s*)(\"|')/,[\"attribute.name\",\"delimiter\",{token:\"attribute.value\",next:\"@value.$3\"}]],[/\\w+/,\"attribute.name\"],[/,/,{cases:{\"@eos\":{token:\"attribute.delimiter\",next:\"@popall\"},\"@default\":\"attribute.delimiter\"}}],[/\\)$/,{token:\"delimiter.parenthesis\",next:\"@popall\"}],[/\\)/,{token:\"delimiter.parenthesis\",next:\"@pop\"}]],whitespace:[[/^(\\s*)(\\/\\/.*)$/,{token:\"comment\",next:\"@blockText.$1.comment\"}],[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],blockText:[[/^\\s+.*$/,{cases:{\"($S2\\\\s+.*$)\":{token:\"$S3\"},\"@default\":{token:\"@rematch\",next:\"@popall\"}}}],[/./,{token:\"@rematch\",next:\"@popall\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],string:[[/[^\\\\\"'#]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/(#{)([^}]*)(})/,[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]],[/#/,\"string\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{token:\"string\"}}}]],value:[[/[^\\\\\"']+/,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"attribute.value\",next:\"@pop\"},\"@default\":{token:\"attribute.value\"}}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/python/python.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/python/python\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=\"undefined\"==typeof monaco?self.monaco:monaco;n.conf={comments:{lineComment:\"#\",blockComment:[\"'''\",\"'''\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(\"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$\"),action:{indentAction:t.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".python\",keywords:[\"and\",\"as\",\"assert\",\"break\",\"class\",\"continue\",\"def\",\"del\",\"elif\",\"else\",\"except\",\"exec\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\"is\",\"lambda\",\"None\",\"not\",\"or\",\"pass\",\"print\",\"raise\",\"return\",\"self\",\"try\",\"while\",\"with\",\"yield\",\"int\",\"float\",\"long\",\"complex\",\"hex\",\"abs\",\"all\",\"any\",\"apply\",\"basestring\",\"bin\",\"bool\",\"buffer\",\"bytearray\",\"callable\",\"chr\",\"classmethod\",\"cmp\",\"coerce\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"execfile\",\"file\",\"filter\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"id\",\"input\",\"intern\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"locals\",\"list\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"reversed\",\"range\",\"raw_input\",\"reduce\",\"reload\",\"repr\",\"reversed\",\"round\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"unichr\",\"unicode\",\"vars\",\"xrange\",\"zip\",\"True\",\"False\",\"__dict__\",\"__methods__\",\"__members__\",\"__class__\",\"__bases__\",\"__name__\",\"__mro__\",\"__subclasses__\",\"__init__\",\"__import__\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()]/,\"@brackets\"],[/@[a-zA-Z]\\w*/,\"tag\"],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}]],whitespace:[[/\\s+/,\"white\"],[/(^#.*$)/,\"comment\"],[/'''/,\"string\",\"@endDocString\"],[/\"\"\"/,\"string\",\"@endDblDocString\"]],endDocString:[[/[^']+/,\"string\"],[/\\\\'/,\"string\"],[/'''/,\"string\",\"@popall\"],[/'/,\"string\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string\",\"@popall\"],[/\"/,\"string\"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\\d)+[lL]?/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?[jJ]?[lL]?/,\"number\"]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/r/r.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/r/r\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o.language={defaultToken:\"\",tokenPostfix:\".r\",roxygen:[\"@param\",\"@return\",\"@name\",\"@rdname\",\"@examples\",\"@include\",\"@docType\",\"@S3method\",\"@TODO\",\"@aliases\",\"@alias\",\"@assignee\",\"@author\",\"@callGraphDepth\",\"@callGraph\",\"@callGraphPrimitives\",\"@concept\",\"@exportClass\",\"@exportMethod\",\"@exportPattern\",\"@export\",\"@formals\",\"@format\",\"@importClassesFrom\",\"@importFrom\",\"@importMethodsFrom\",\"@import\",\"@keywords\",\"@method\",\"@nord\",\"@note\",\"@references\",\"@seealso\",\"@setClass\",\"@slot\",\"@source\",\"@title\",\"@usage\"],constants:[\"NULL\",\"FALSE\",\"TRUE\",\"NA\",\"Inf\",\"NaN \",\"NA_integer_\",\"NA_real_\",\"NA_complex_\",\"NA_character_ \",\"T\",\"F\",\"LETTERS\",\"letters\",\"month.abb\",\"month.name\",\"pi\",\"R.version.string\"],keywords:[\"break\",\"next\",\"return\",\"if\",\"else\",\"for\",\"in\",\"repeat\",\"while\",\"array\",\"category\",\"character\",\"complex\",\"double\",\"function\",\"integer\",\"list\",\"logical\",\"matrix\",\"numeric\",\"vector\",\"data.frame\",\"factor\",\"library\",\"require\",\"attach\",\"detach\",\"source\"],special:[\"\\\\n\",\"\\\\r\",\"\\\\t\",\"\\\\b\",\"\\\\a\",\"\\\\f\",\"\\\\v\",\"\\\\'\",'\\\\\"',\"\\\\\\\\\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@numbers\"},{include:\"@strings\"},[/[{}\\[\\]()]/,\"@brackets\"],{include:\"@operators\"},[/#'/,\"comment.doc\",\"@roxygen\"],[/(^#.*$)/,\"comment\"],[/\\s+/,\"white\"],[/[,:;]/,\"delimiter\"],[/@[a-zA-Z]\\w*/,\"tag\"],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],roxygen:[[/@\\w+/,{cases:{\"@roxygen\":\"tag\",\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/\\s+/,{cases:{\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/.*/,{token:\"comment.doc\",next:\"@pop\"}]],numbers:[[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?/,\"number\"]],operators:[[/<{1,2}-/,\"operator\"],[/->{1,2}/,\"operator\"],[/%[^%\\s]+%/,\"operator\"],[/\\*\\*/,\"operator\"],[/%%/,\"operator\"],[/&&/,\"operator\"],[/\\|\\|/,\"operator\"],[/<</,\"operator\"],[/>>/,\"operator\"],[/[-+=&|!<>^~*/:$]/,\"operator\"]],strings:[[/'/,\"string.escape\",\"@stringBody\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/'/,\"string.escape\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/\"/,\"string.escape\",\"@popall\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/razor/razor.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/razor/razor\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"undefined\"==typeof monaco?self.monaco:monaco,o=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+o.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+o.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:r.languages.IndentAction.Indent}}]},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/@@/],[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/[^<@]+/]],doctype:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],razorInSimpleState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\"}]],razorInEmbeddedState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],razorBlockCommentTopLevel:[[/\\*@/,\"@rematch\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorBlockComment:[[/\\*@/,\"comment.cs\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorRootTopLevel:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/[})]/,\"@rematch\",\"@pop\"],{include:\"razorCommon\"}],razorRoot:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/\\}/,\"delimiter.bracket.cs\",\"@pop\"],[/\\)/,\"delimiter.parenthesis.cs\",\"@pop\"],{include:\"razorCommon\"}],razorCommon:[[/[a-zA-Z_]\\w*/,{cases:{\"@razorKeywords\":{token:\"keyword.cs\"},\"@default\":\"identifier.cs\"}}],[/[\\[\\]]/,\"delimiter.array.cs\"],[/[ \\t\\r\\n]+/],[/\\/\\/.*$/,\"comment.cs\"],[/@\\*/,\"comment.cs\",\"@razorBlockComment\"],[/\"([^\"]*)\"/,\"string.cs\"],[/'([^']*)'/,\"string.cs\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(\\w+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<\\/)(\\w+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,]/,\"delimiter.cs\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.cs\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.cs\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.cs\"],[/0[0-7']*[0-7]/,\"number.octal.cs\"],[/0[bB][0-1']*[0-1]/,\"number.binary.cs\"],[/\\d[\\d']*/,\"number.cs\"],[/\\d/,\"number.cs\"]]},razorKeywords:[\"abstract\",\"as\",\"async\",\"await\",\"base\",\"bool\",\"break\",\"by\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"descending\",\"explicit\",\"event\",\"extern\",\"else\",\"enum\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"from\",\"goto\",\"group\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"into\",\"is\",\"lock\",\"long\",\"nameof\",\"new\",\"null\",\"namespace\",\"object\",\"operator\",\"out\",\"override\",\"orderby\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"switch\",\"struct\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"select\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"volatile\",\"void\",\"when\",\"while\",\"where\",\"yield\",\"model\",\"inject\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/redis/redis.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/redis/redis\",[\"require\",\"exports\"],(function(E,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},e.language={defaultToken:\"\",tokenPostfix:\".redis\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"APPEND\",\"AUTH\",\"BGREWRITEAOF\",\"BGSAVE\",\"BITCOUNT\",\"BITFIELD\",\"BITOP\",\"BITPOS\",\"BLPOP\",\"BRPOP\",\"BRPOPLPUSH\",\"CLIENT\",\"KILL\",\"LIST\",\"GETNAME\",\"PAUSE\",\"REPLY\",\"SETNAME\",\"CLUSTER\",\"ADDSLOTS\",\"COUNT-FAILURE-REPORTS\",\"COUNTKEYSINSLOT\",\"DELSLOTS\",\"FAILOVER\",\"FORGET\",\"GETKEYSINSLOT\",\"INFO\",\"KEYSLOT\",\"MEET\",\"NODES\",\"REPLICATE\",\"RESET\",\"SAVECONFIG\",\"SET-CONFIG-EPOCH\",\"SETSLOT\",\"SLAVES\",\"SLOTS\",\"COMMAND\",\"COUNT\",\"GETKEYS\",\"CONFIG\",\"GET\",\"REWRITE\",\"SET\",\"RESETSTAT\",\"DBSIZE\",\"DEBUG\",\"OBJECT\",\"SEGFAULT\",\"DECR\",\"DECRBY\",\"DEL\",\"DISCARD\",\"DUMP\",\"ECHO\",\"EVAL\",\"EVALSHA\",\"EXEC\",\"EXISTS\",\"EXPIRE\",\"EXPIREAT\",\"FLUSHALL\",\"FLUSHDB\",\"GEOADD\",\"GEOHASH\",\"GEOPOS\",\"GEODIST\",\"GEORADIUS\",\"GEORADIUSBYMEMBER\",\"GETBIT\",\"GETRANGE\",\"GETSET\",\"HDEL\",\"HEXISTS\",\"HGET\",\"HGETALL\",\"HINCRBY\",\"HINCRBYFLOAT\",\"HKEYS\",\"HLEN\",\"HMGET\",\"HMSET\",\"HSET\",\"HSETNX\",\"HSTRLEN\",\"HVALS\",\"INCR\",\"INCRBY\",\"INCRBYFLOAT\",\"KEYS\",\"LASTSAVE\",\"LINDEX\",\"LINSERT\",\"LLEN\",\"LPOP\",\"LPUSH\",\"LPUSHX\",\"LRANGE\",\"LREM\",\"LSET\",\"LTRIM\",\"MGET\",\"MIGRATE\",\"MONITOR\",\"MOVE\",\"MSET\",\"MSETNX\",\"MULTI\",\"PERSIST\",\"PEXPIRE\",\"PEXPIREAT\",\"PFADD\",\"PFCOUNT\",\"PFMERGE\",\"PING\",\"PSETEX\",\"PSUBSCRIBE\",\"PUBSUB\",\"PTTL\",\"PUBLISH\",\"PUNSUBSCRIBE\",\"QUIT\",\"RANDOMKEY\",\"READONLY\",\"READWRITE\",\"RENAME\",\"RENAMENX\",\"RESTORE\",\"ROLE\",\"RPOP\",\"RPOPLPUSH\",\"RPUSH\",\"RPUSHX\",\"SADD\",\"SAVE\",\"SCARD\",\"SCRIPT\",\"FLUSH\",\"LOAD\",\"SDIFF\",\"SDIFFSTORE\",\"SELECT\",\"SETBIT\",\"SETEX\",\"SETNX\",\"SETRANGE\",\"SHUTDOWN\",\"SINTER\",\"SINTERSTORE\",\"SISMEMBER\",\"SLAVEOF\",\"SLOWLOG\",\"SMEMBERS\",\"SMOVE\",\"SORT\",\"SPOP\",\"SRANDMEMBER\",\"SREM\",\"STRLEN\",\"SUBSCRIBE\",\"SUNION\",\"SUNIONSTORE\",\"SWAPDB\",\"SYNC\",\"TIME\",\"TOUCH\",\"TTL\",\"TYPE\",\"UNSUBSCRIBE\",\"UNLINK\",\"UNWATCH\",\"WAIT\",\"WATCH\",\"ZADD\",\"ZCARD\",\"ZCOUNT\",\"ZINCRBY\",\"ZINTERSTORE\",\"ZLEXCOUNT\",\"ZRANGE\",\"ZRANGEBYLEX\",\"ZREVRANGEBYLEX\",\"ZRANGEBYSCORE\",\"ZRANK\",\"ZREM\",\"ZREMRANGEBYLEX\",\"ZREMRANGEBYRANK\",\"ZREMRANGEBYSCORE\",\"ZREVRANGE\",\"ZREVRANGEBYSCORE\",\"ZREVRANK\",\"ZSCORE\",\"ZUNIONSTORE\",\"SCAN\",\"SSCAN\",\"HSCAN\",\"ZSCAN\"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/redshift/redshift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/redshift/redshift\",[\"require\",\"exports\"],(function(e,_){\"use strict\";Object.defineProperty(_,\"__esModule\",{value:!0}),_.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},_.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"AES128\",\"AES256\",\"ALL\",\"ALLOWOVERWRITE\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARRAY\",\"AS\",\"ASC\",\"AUTHORIZATION\",\"BACKUP\",\"BETWEEN\",\"BINARY\",\"BLANKSASNULL\",\"BOTH\",\"BYTEDICT\",\"BZIP2\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"CONSTRAINT\",\"CREATE\",\"CREDENTIALS\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURRENT_USER_ID\",\"DEFAULT\",\"DEFERRABLE\",\"DEFLATE\",\"DEFRAG\",\"DELTA\",\"DELTA32K\",\"DESC\",\"DISABLE\",\"DISTINCT\",\"DO\",\"ELSE\",\"EMPTYASNULL\",\"ENABLE\",\"ENCODE\",\"ENCRYPT\",\"ENCRYPTION\",\"END\",\"EXCEPT\",\"EXPLICIT\",\"FALSE\",\"FOR\",\"FOREIGN\",\"FREEZE\",\"FROM\",\"FULL\",\"GLOBALDICT256\",\"GLOBALDICT64K\",\"GRANT\",\"GROUP\",\"GZIP\",\"HAVING\",\"IDENTITY\",\"IGNORE\",\"ILIKE\",\"IN\",\"INITIALLY\",\"INNER\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"LEADING\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LUN\",\"LUNS\",\"LZO\",\"LZOP\",\"MINUS\",\"MOSTLY13\",\"MOSTLY32\",\"MOSTLY8\",\"NATURAL\",\"NEW\",\"NOT\",\"NOTNULL\",\"NULL\",\"NULLS\",\"OFF\",\"OFFLINE\",\"OFFSET\",\"OID\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OR\",\"ORDER\",\"OUTER\",\"OVERLAPS\",\"PARALLEL\",\"PARTITION\",\"PERCENT\",\"PERMISSIONS\",\"PLACING\",\"PRIMARY\",\"RAW\",\"READRATIO\",\"RECOVER\",\"REFERENCES\",\"RESPECT\",\"REJECTLOG\",\"RESORT\",\"RESTORE\",\"RIGHT\",\"SELECT\",\"SESSION_USER\",\"SIMILAR\",\"SNAPSHOT\",\"SOME\",\"SYSDATE\",\"SYSTEM\",\"TABLE\",\"TAG\",\"TDES\",\"TEXT255\",\"TEXT32K\",\"THEN\",\"TIMESTAMP\",\"TO\",\"TOP\",\"TRAILING\",\"TRUE\",\"TRUNCATECOLUMNS\",\"UNION\",\"UNIQUE\",\"USER\",\"USING\",\"VERBOSE\",\"WALLET\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"current_schema\",\"current_schemas\",\"has_database_privilege\",\"has_schema_privilege\",\"has_table_privilege\",\"age\",\"current_time\",\"current_timestamp\",\"localtime\",\"isfinite\",\"now\",\"ascii\",\"get_bit\",\"get_byte\",\"set_bit\",\"set_byte\",\"to_ascii\",\"approximate percentile_disc\",\"avg\",\"count\",\"listagg\",\"max\",\"median\",\"min\",\"percentile_cont\",\"stddev_samp\",\"stddev_pop\",\"sum\",\"var_samp\",\"var_pop\",\"bit_and\",\"bit_or\",\"bool_and\",\"bool_or\",\"cume_dist\",\"first_value\",\"lag\",\"last_value\",\"lead\",\"nth_value\",\"ratio_to_report\",\"dense_rank\",\"ntile\",\"percent_rank\",\"rank\",\"row_number\",\"case\",\"coalesce\",\"decode\",\"greatest\",\"least\",\"nvl\",\"nvl2\",\"nullif\",\"add_months\",\"at time zone\",\"convert_timezone\",\"current_date\",\"date_cmp\",\"date_cmp_timestamp\",\"date_cmp_timestamptz\",\"date_part_year\",\"dateadd\",\"datediff\",\"date_part\",\"date_trunc\",\"extract\",\"getdate\",\"interval_cmp\",\"last_day\",\"months_between\",\"next_day\",\"sysdate\",\"timeofday\",\"timestamp_cmp\",\"timestamp_cmp_date\",\"timestamp_cmp_timestamptz\",\"timestamptz_cmp\",\"timestamptz_cmp_date\",\"timestamptz_cmp_timestamp\",\"timezone\",\"to_timestamp\",\"trunc\",\"abs\",\"acos\",\"asin\",\"atan\",\"atan2\",\"cbrt\",\"ceil\",\"ceiling\",\"checksum\",\"cos\",\"cot\",\"degrees\",\"dexp\",\"dlog1\",\"dlog10\",\"exp\",\"floor\",\"ln\",\"log\",\"mod\",\"pi\",\"power\",\"radians\",\"random\",\"round\",\"sin\",\"sign\",\"sqrt\",\"tan\",\"to_hex\",\"bpcharcmp\",\"btrim\",\"bttext_pattern_cmp\",\"char_length\",\"character_length\",\"charindex\",\"chr\",\"concat\",\"crc32\",\"func_sha1\",\"initcap\",\"left and rights\",\"len\",\"length\",\"lower\",\"lpad and rpads\",\"ltrim\",\"md5\",\"octet_length\",\"position\",\"quote_ident\",\"quote_literal\",\"regexp_count\",\"regexp_instr\",\"regexp_replace\",\"regexp_substr\",\"repeat\",\"replace\",\"replicate\",\"reverse\",\"rtrim\",\"split_part\",\"strpos\",\"strtol\",\"substring\",\"textlen\",\"translate\",\"trim\",\"upper\",\"cast\",\"convert\",\"to_char\",\"to_date\",\"to_number\",\"json_array_length\",\"json_extract_array_element_text\",\"json_extract_path_text\",\"current_setting\",\"pg_cancel_backend\",\"pg_terminate_backend\",\"set_config\",\"current_database\",\"current_user\",\"current_user_id\",\"pg_backend_pid\",\"pg_last_copy_count\",\"pg_last_copy_id\",\"pg_last_query_id\",\"pg_last_unload_count\",\"session_user\",\"slice_num\",\"user\",\"version\",\"abbrev\",\"acosd\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"asind\",\"atan2d\",\"atand\",\"bit\",\"bit_length\",\"bound_box\",\"box\",\"brin_summarize_new_values\",\"broadcast\",\"cardinality\",\"center\",\"circle\",\"clock_timestamp\",\"col_description\",\"concat_ws\",\"convert_from\",\"convert_to\",\"corr\",\"cosd\",\"cotd\",\"covar_pop\",\"covar_samp\",\"current_catalog\",\"current_query\",\"current_role\",\"currval\",\"cursor_to_xml\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"family\",\"format\",\"format_type\",\"generate_series\",\"generate_subscripts\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"isclosed\",\"isempty\",\"isopen\",\"json_agg\",\"json_object\",\"json_object_agg\",\"json_populate_record\",\"json_populate_recordset\",\"json_to_record\",\"json_to_recordset\",\"jsonb_agg\",\"jsonb_object_agg\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lastval\",\"left\",\"line\",\"localtimestamp\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"masklen\",\"mode\",\"netmask\",\"network\",\"nextval\",\"npoints\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_client_encoding\",\"pg_collation_is_visible\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_xlog_replay_paused\",\"pg_last_committed_xact\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_dir\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_postmaster_start_time\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_rotate_logfile\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_start_backup\",\"pg_stat_file\",\"pg_stop_backup\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_xact_commit_timestamp\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"pqserverversion\",\"query_to_xml\",\"querytree\",\"quote_nullable\",\"radius\",\"range_merge\",\"regexp_matches\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"right\",\"row_security_active\",\"row_to_json\",\"rpad\",\"scale\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"shobj_description\",\"sind\",\"sprintf\",\"statement_timestamp\",\"stddev\",\"string_agg\",\"string_to_array\",\"strip\",\"substr\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"tand\",\"text\",\"to_json\",\"to_regclass\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_visible_in_snapshot\",\"unnest\",\"upper_inc\",\"upper_inf\",\"variance\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/restructuredtext/restructuredtext.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/restructuredtext/restructuredtext\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?endregion\\\\b.*--\\x3e\")}}},s.language={defaultToken:\"\",tokenPostfix:\".rst\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],alphanumerics:/[A-Za-z0-9]/,alphanumericsplus:/[A-Za-z0-9-_+:.]/,simpleRefNameWithoutBq:/(?:@alphanumerics@alphanumericsplus*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@simpleRefNameWithoutBq`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefName(?:\\s@simpleRefName)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!\"#$%&'()*+,-./:;<=>?@\\[\\]^_`{|}~]|[\\s])/,precedingChars:/(?:[ -:/'\"<([{])/,followingChars:/(?:[ -.,:;!?/'\")\\]}>]|$)/,punctuation:/(=|-|~|`|#|\"|\\^|\\+|\\*|:|\\.|'|_|\\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,\"keyword\"],[/^\\s*([\\*\\-+‣•]|[a-zA-Z0-9]+\\.|\\([a-zA-Z0-9]+\\)|[a-zA-Z0-9]+\\))\\s/,\"keyword\"],[/([ ]::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],[/(::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],{include:\"@tables\"},{include:\"@explicitMarkupBlocks\"},{include:\"@inlineMarkup\"}],explicitMarkupBlocks:[{include:\"@citations\"},{include:\"@footnotes\"},[/^(\\.\\.\\s)(@simpleRefName)(::\\s)(.*)$/,[{token:\"\",next:\"subsequentLines\"},\"keyword\",\"\",\"\"]],[/^(\\.\\.)(\\s+)(_)(@simpleRefName)(:)(\\s+)(.*)/,[{token:\"\",next:\"hyperlinks\"},\"\",\"\",\"string.link\",\"\",\"\",\"string.link\"]],[/^((?:(?:\\.\\.)(?:\\s+))?)(__)(:)(\\s+)(.*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"\",\"\",\"string.link\"]],[/^(__\\s+)(.+)/,[\"\",\"string.link\"]],[/^(\\.\\.)( \\|)([^| ]+[^|]*[^| ]*)(\\| )(@simpleRefName)(:: .*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"string.link\",\"\",\"keyword\",\"\"],\"@rawBlocks\"],[/(\\|)([^| ]+[^|]*[^| ]*)(\\|_{0,2})/,[\"\",\"string.link\",\"\"]],[/^(\\.\\.)([ ].*)$/,[{token:\"\",next:\"@comments\"},\"comment\"]]],inlineMarkup:[{include:\"@citationsReference\"},{include:\"@footnotesReference\"},[/(@simpleRefName)(_{1,2})/,[\"string.link\",\"\"]],[/(`)([^<`]+\\s+)(<)(.*)(>)(`)(_)/,[\"\",\"string.link\",\"\",\"string.link\",\"\",\"\",\"\"]],[/\\*\\*([^\\\\*]|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\*[^*]+\\*/,\"emphasis\"],[/(``)((?:[^`]|\\`(?!`))+)(``)/,[\"\",\"keyword\",\"\"]],[/(__\\s+)(.+)/,[\"\",\"keyword\"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,[\"\",\"keyword\",\"\",\"\",\"\"]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,[\"\",\"\",\"\",\"keyword\",\"\"]],[/(`)([^`]+)(`)/,\"\"],[/(_`)(@phrase)(`)/,[\"\",\"string.link\",\"\"]]],citations:[[/^(\\.\\.\\s+\\[)((?:@citationName))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],citationsReference:[[/(\\[)(@citationName)(\\]_)/,[\"\",\"string.link\",\"\"]]],footnotes:[[/^(\\.\\.\\s+\\[)((?:[0-9]+))(\\]\\s+.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\"]],[/^(\\.\\.\\s+\\[)((?:#@simpleRefName?))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]],[/^(\\.\\.\\s+\\[)((?:\\*))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],footnotesReference:[[/(\\[)([0-9]+)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(#@simpleRefName?)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(\\*)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]]],blankLineOfLiteralBlocks:[[/^$/,\"\",\"@subsequentLinesOfLiteralBlocks\"],[/^.*$/,\"\",\"@pop\"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,[\"keyword\",\"\"]],[/^(?!blockLiteralStart)/,\"\",\"@popall\"]],subsequentLines:[[/^[\\s]+.*/,\"\"],[/^(?!\\s)/,\"\",\"@pop\"]],hyperlinks:[[/^[\\s]+.*/,\"string.link\"],[/^(?!\\s)/,\"\",\"@pop\"]],comments:[[/^[\\s]+.*/,\"comment\"],[/^(?!\\s)/,\"\",\"@pop\"]],tables:[[/\\+-[+-]+/,\"keyword\"],[/\\+=[+=]+/,\"keyword\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/ruby/ruby.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/ruby/ruby\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\",blockComment:[\"=begin\",\"=end\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],indentationRules:{increaseIndentPattern:new RegExp(\"^\\\\s*((begin|class|(private|protected)\\\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\\\sdo\\\\b)|([^#]*=\\\\s*(case|if|unless)))\\\\b([^#\\\\{;]|(\\\"|'|/).*\\\\4)*(#.*)?$\"),decreaseIndentPattern:new RegExp(\"^\\\\s*([}\\\\]]([,)]?\\\\s*(#|$)|\\\\.[a-zA-Z_]\\\\w*\\\\b)|(end|rescue|ensure|else|elsif|when)\\\\b)\")}},t.language={tokenPostfix:\".ruby\",keywords:[\"__LINE__\",\"__ENCODING__\",\"__FILE__\",\"BEGIN\",\"END\",\"alias\",\"and\",\"begin\",\"break\",\"case\",\"class\",\"def\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"for\",\"false\",\"if\",\"in\",\"module\",\"next\",\"nil\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"self\",\"super\",\"then\",\"true\",\"undef\",\"unless\",\"until\",\"when\",\"while\",\"yield\"],keywordops:[\"::\",\"..\",\"...\",\"?\",\":\",\"=>\"],builtins:[\"require\",\"public\",\"private\",\"include\",\"extend\",\"attr_reader\",\"protected\",\"private_class_method\",\"protected_class_method\",\"new\"],declarations:[\"module\",\"class\",\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],linedecls:[\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],operators:[\"^\",\"&\",\"|\",\"<=>\",\"==\",\"===\",\"!~\",\"=~\",\">\",\">=\",\"<\",\"<=\",\"<<\",\">>\",\"+\",\"-\",\"*\",\"/\",\"%\",\"**\",\"~\",\"+@\",\"-@\",\"[]\",\"[]=\",\"`\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"^=\",\"%=\",\"<<=\",\">>=\",\"&=\",\"&&=\",\"||=\",\"|=\"],brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%\\.]+/,escape:/(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\\s\\n\\r]/,heredelim:/(?:\\w+|'[^']*'|\"[^\"]*\"|`[^`]*`)/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[AzZbBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\\s*)([a-z_]\\w*[!?=]?)/,[\"white\",{cases:{\"for|until|while\":{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@declarations\":{token:\"keyword.$2\",next:\"@root.$2\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}]],[/[a-z_]\\w*[!?=]?/,{cases:{\"if|unless|while|until\":{token:\"keyword.$0x\",next:\"@modifier.$0x\"},for:{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@linedecls\":{token:\"keyword.$0\",next:\"@root.$0\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],[/[A-Z][\\w]*[!?=]?/,\"constructor.identifier\"],[/\\$[\\w]*/,\"global.constant\"],[/@[\\w]*/,\"namespace.instance.identifier\"],[/@@[\\w]*/,\"namespace.class.identifier\"],[/<<[-~](@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/[ \\t\\r\\n]+<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/^<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],{include:\"@whitespace\"},[/\"/,{token:\"string.d.delim\",next:'@dstring.d.\"'}],[/'/,{token:\"string.sq.delim\",next:\"@sstring.sq\"}],[/%([rsqxwW]|Q?)/,{token:\"@rematch\",next:\"pstring\"}],[/`/,{token:\"string.x.delim\",next:\"@dstring.x.`\"}],[/:(\\w|[$@])\\w*[!?=]?/,\"string.s\"],[/:\"/,{token:\"string.s.delim\",next:'@dstring.s.\"'}],[/:'/,{token:\"string.s.delim\",next:\"@sstring.s\"}],[/\\/(?=(\\\\\\/|[^\\/\\n])+\\/)/,{token:\"regexp.delim\",next:\"@regexp\"}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@keywordops\":\"keyword\",\"@operators\":\"operator\",\"@default\":\"\"}}],[/[;,]/,\"delimiter\"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,\"number.hex\"],[/0[_oO][0-7](_?[0-7])*/,\"number.octal\"],[/0[bB][01](_?[01])*/,\"number.binary\"],[/0[dD]@decpart/,\"number\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)/,{cases:{$1:\"number.float\",\"@default\":\"number\"}}]],dodecl:[[/^/,{token:\"\",switchTo:\"@root.$S2\"}],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},do:{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],modifier:[[/^/,\"\",\"@pop\"],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},\"then|else|elsif|do\":{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],sstring:[[/[^\\\\']+/,\"string.$S2\"],[/\\\\\\\\|\\\\'|\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.invalid\"],[/'/,{token:\"string.$S2.delim\",next:\"@pop\"}]],dstring:[[/[^\\\\`\"#]+/,\"string.$S2\"],[/#/,\"string.$S2.escape\",\"@interpolated\"],[/\\\\$/,\"string.$S2.escape\"],[/@escapes/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape.invalid\"],[/[`\"]/,{cases:{\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@pop\"},\"@default\":\"string.$S2\"}}]],heredoc:[[/^(\\s*)(@heredelim)$/,{cases:{\"$2==$S2\":[\"string.heredoc\",{token:\"string.heredoc.delimiter\",next:\"@pop\"}],\"@default\":[\"string.heredoc\",\"string.heredoc\"]}}],[/.*/,\"string.heredoc\"]],interpolated:[[/\\$\\w*/,\"global.constant\",\"@pop\"],[/@\\w*/,\"namespace.class.identifier\",\"@pop\"],[/@@\\w*/,\"namespace.instance.identifier\",\"@pop\"],[/[{]/,{token:\"string.escape.curly\",switchTo:\"@interpolated_compound\"}],[\"\",\"\",\"@pop\"]],interpolated_compound:[[/[}]/,{token:\"string.escape.curly\",next:\"@pop\"}],{include:\"@root\"}],pregexp:[{include:\"@whitespace\"},[/[^\\(\\{\\[\\\\]/,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"~[)}\\\\]]\":\"@brackets.regexp.escape.control\",\"~@regexpctl\":\"regexp.escape.control\",\"@default\":\"regexp\"}}],{include:\"@regexcontrol\"}],regexp:[{include:\"@regexcontrol\"},[/[^\\\\\\/]/,\"regexp\"],[\"/[ixmp]*\",{token:\"regexp.delim\"},\"@pop\"]],regexcontrol:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\",\"@brackets.regexp.escape.control\"]],[/(\\[)(\\^?)/,[\"@brackets.regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?[:=!])/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\"]],[/\\(\\?#/,{token:\"regexp.escape.control\",next:\"@regexpcomment\"}],[/[()]/,\"@brackets.regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/#/,\"regexp.escape\",\"@interpolated\"]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,\"@brackets.regexp.escape.control\",\"@pop\"]],regexpcomment:[[/[^)]+/,\"comment\"],[/\\)/,{token:\"regexp.escape.control\",next:\"@pop\"}]],pstring:[[/%([qws])\\(/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.(.)\"}],[/%([qws])\\[/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.[.]\"}],[/%([qws])\\{/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.{.}\"}],[/%([qws])</,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.<.>\"}],[/%([qws])(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.$2.$2\"}],[/%r\\(/,{token:\"regexp.delim\",switchTo:\"@pregexp.(.)\"}],[/%r\\[/,{token:\"regexp.delim\",switchTo:\"@pregexp.[.]\"}],[/%r\\{/,{token:\"regexp.delim\",switchTo:\"@pregexp.{.}\"}],[/%r</,{token:\"regexp.delim\",switchTo:\"@pregexp.<.>\"}],[/%r(@delim)/,{token:\"regexp.delim\",switchTo:\"@pregexp.$1.$1\"}],[/%(x|W|Q?)\\(/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.(.)\"}],[/%(x|W|Q?)\\[/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.[.]\"}],[/%(x|W|Q?)\\{/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.{.}\"}],[/%(x|W|Q?)</,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.<.>\"}],[/%(x|W|Q?)(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.$2.$2\"}],[/%([rqwsxW]|Q?)./,{token:\"invalid\",next:\"@pop\"}],[/./,{token:\"invalid\",next:\"@pop\"}]],qstring:[[/\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape\"],[/./,{cases:{\"$#==$S4\":{token:\"string.$S2.delim\",next:\"@pop\"},\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@push\"},\"@default\":\"string.$S2\"}}]],qqstring:[[/#/,\"string.$S2.escape\",\"@interpolated\"],{include:\"@qstring\"}],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*=begin\\b/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"]],comment:[[/[^=]+/,\"comment\"],[/^\\s*=begin\\b/,\"comment.invalid\"],[/^\\s*=end\\b.*/,\"comment\",\"@pop\"],[/[=]/,\"comment\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/rust/rust.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/rust/rust\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},t.language={tokenPostfix:\".rust\",defaultToken:\"invalid\",keywords:[\"as\",\"box\",\"break\",\"const\",\"continue\",\"crate\",\"else\",\"enum\",\"extern\",\"false\",\"fn\",\"for\",\"if\",\"impl\",\"in\",\"let\",\"loop\",\"match\",\"mod\",\"move\",\"mut\",\"pub\",\"ref\",\"return\",\"self\",\"static\",\"struct\",\"super\",\"trait\",\"true\",\"type\",\"unsafe\",\"use\",\"where\",\"while\",\"catch\",\"default\",\"union\",\"static\",\"abstract\",\"alignof\",\"become\",\"do\",\"final\",\"macro\",\"offsetof\",\"override\",\"priv\",\"proc\",\"pure\",\"sizeof\",\"typeof\",\"unsized\",\"virtual\",\"yield\"],typeKeywords:[\"Self\",\"m32\",\"m64\",\"m128\",\"f80\",\"f16\",\"f128\",\"int\",\"uint\",\"float\",\"char\",\"bool\",\"u8\",\"u16\",\"u32\",\"u64\",\"f32\",\"f64\",\"i8\",\"i16\",\"i32\",\"i64\",\"str\",\"Option\",\"Either\",\"c_float\",\"c_double\",\"c_void\",\"FILE\",\"fpos_t\",\"DIR\",\"dirent\",\"c_char\",\"c_schar\",\"c_uchar\",\"c_short\",\"c_ushort\",\"c_int\",\"c_uint\",\"c_long\",\"c_ulong\",\"size_t\",\"ptrdiff_t\",\"clock_t\",\"time_t\",\"c_longlong\",\"c_ulonglong\",\"intptr_t\",\"uintptr_t\",\"off_t\",\"dev_t\",\"ino_t\",\"pid_t\",\"mode_t\",\"ssize_t\"],constants:[\"true\",\"false\",\"Some\",\"None\",\"Left\",\"Right\",\"Ok\",\"Err\"],supportConstants:[\"EXIT_FAILURE\",\"EXIT_SUCCESS\",\"RAND_MAX\",\"EOF\",\"SEEK_SET\",\"SEEK_CUR\",\"SEEK_END\",\"_IOFBF\",\"_IONBF\",\"_IOLBF\",\"BUFSIZ\",\"FOPEN_MAX\",\"FILENAME_MAX\",\"L_tmpnam\",\"TMP_MAX\",\"O_RDONLY\",\"O_WRONLY\",\"O_RDWR\",\"O_APPEND\",\"O_CREAT\",\"O_EXCL\",\"O_TRUNC\",\"S_IFIFO\",\"S_IFCHR\",\"S_IFBLK\",\"S_IFDIR\",\"S_IFREG\",\"S_IFMT\",\"S_IEXEC\",\"S_IWRITE\",\"S_IREAD\",\"S_IRWXU\",\"S_IXUSR\",\"S_IWUSR\",\"S_IRUSR\",\"F_OK\",\"R_OK\",\"W_OK\",\"X_OK\",\"STDIN_FILENO\",\"STDOUT_FILENO\",\"STDERR_FILENO\"],supportMacros:[\"format!\",\"print!\",\"println!\",\"panic!\",\"format_args!\",\"unreachable!\",\"write!\",\"writeln!\"],operators:[\"!\",\"!=\",\"%\",\"%=\",\"&\",\"&=\",\"&&\",\"*\",\"*=\",\"+\",\"+=\",\"-\",\"-=\",\"->\",\".\",\"..\",\"...\",\"/\",\"/=\",\":\",\";\",\"<<\",\"<<=\",\"<\",\"<=\",\"=\",\"==\",\"=>\",\">\",\">=\",\">>\",\">>=\",\"@\",\"^\",\"^=\",\"|\",\"|=\",\"||\",\"_\",\"?\",\"#\"],escapes:/\\\\([nrt0\\\"''\\\\]|x\\h{2}|u\\{\\h{1,6}\\})/,delimiters:/[,]/,symbols:/[\\#\\!\\%\\&\\*\\+\\-\\.\\/\\:\\;\\<\\=\\>\\@\\^\\|_\\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{\"@typeKeywords\":\"keyword.type\",\"@keywords\":\"keyword\",\"@supportConstants\":\"keyword\",\"@supportMacros\":\"keyword\",\"@constants\":\"keyword\",\"@default\":\"identifier\"}}],[/\\$/,\"identifier\"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\\'])/,\"identifier\"],[/'\\S'/,\"string.byteliteral\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}],{include:\"@numbers\"},{include:\"@whitespace\"},[/@delimiters/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"delimiter\"}}],[/[{}()\\[\\]<>]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:\"number\"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(\\.[\\d][\\d_]*)?[eE][+-][\\d_]+(@floatSuffixes)?/,{token:\"number\"}],[/\\b(\\d\\.?[\\d_]*)(@floatSuffixes)?\\b/,{token:\"number\"}],[/(0x[\\da-fA-F]+)_?(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(@intSuffixes?)?/,{token:\"number\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/sb/sb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sb/sb\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"'\"},brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"If\",\"EndIf\"],[\"While\",\"EndWhile\"],[\"For\",\"EndFor\"],[\"Sub\",\"EndSub\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]}]},o.language={defaultToken:\"\",tokenPostfix:\".sb\",ignoreCase:!0,brackets:[{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"keyword.tag-if\",open:\"If\",close:\"EndIf\"},{token:\"keyword.tag-while\",open:\"While\",close:\"EndWhile\"},{token:\"keyword.tag-for\",open:\"For\",close:\"EndFor\"},{token:\"keyword.tag-sub\",open:\"Sub\",close:\"EndSub\"}],keywords:[\"Else\",\"ElseIf\",\"EndFor\",\"EndIf\",\"EndSub\",\"EndWhile\",\"For\",\"Goto\",\"If\",\"Step\",\"Sub\",\"Then\",\"To\",\"While\"],tagwords:[\"If\",\"Sub\",\"While\",\"For\"],operators:[\">\",\"<\",\"<>\",\"<=\",\">=\",\"And\",\"Or\",\"+\",\"-\",\"*\",\"/\",\"=\"],identifier:/[a-zA-Z_][\\w]*/,symbols:/[=><:+\\-*\\/%\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/(@identifier)(?=[.])/,\"type\"],[/@identifier/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@operators\":\"operator\",\"@default\":\"variable.name\"}}],[/([.])(@identifier)/,{cases:{$2:[\"delimiter\",\"type.member\"],\"@default\":\"\"}}],[/\\d*\\.\\d+/,\"number.float\"],[/\\d+/,\"number\"],[/[()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"delimiter\"}}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\').*$/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"C?/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/scheme/scheme.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/scheme/scheme\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\";\",blockComment:[\"#|\",\"|#\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".scheme\",brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],keywords:[\"case\",\"do\",\"let\",\"loop\",\"if\",\"else\",\"when\",\"cons\",\"car\",\"cdr\",\"cond\",\"lambda\",\"lambda*\",\"syntax-rules\",\"format\",\"set!\",\"quote\",\"eval\",\"append\",\"list\",\"list?\",\"member?\",\"load\"],constants:[\"#t\",\"#f\"],operators:[\"eq?\",\"eqv?\",\"equal?\",\"and\",\"or\",\"not\",\"null?\"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,\"number.hex\"],[/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?/,\"number.float\"],[/(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)/,[\"keyword\",\"white\",\"variable\"]],{include:\"@whitespace\"},{include:\"@strings\"},[/[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@operators\":\"operators\",\"@default\":\"identifier\"}}]],comment:[[/[^\\|#]+/,\"comment\"],[/#\\|/,\"comment\",\"@push\"],[/\\|#/,\"comment\",\"@pop\"],[/[\\|#]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#\\|/,\"comment\",\"@comment\"],[/;.*$/,\"comment\"]],strings:[[/\"$/,\"string\",\"@popall\"],[/\"(?=.)/,\"string\",\"@multiLineString\"]],multiLineString:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string.escape\"],[/\"/,\"string\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/scss/scss.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/scss/scss\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@$#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".scss\",ws:\"[ \\t\\n\\r\\f]*\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@variabledeclaration\"},{include:\"@warndebug\"},[\"[@](include)\",{token:\"keyword\",next:\"@includedeclaration\"}],[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"[@](function)\",{token:\"keyword\",next:\"@functiondeclaration\"}],[\"[@](mixin)\",{token:\"keyword\",next:\"@mixindeclaration\"}],[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@controlstatement\"},{include:\"@selectorname\"},[\"[&\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}]],selectorbody:[[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],{include:\"@selector\"},[\"[@](extend)\",{token:\"keyword\",next:\"@extendbody\"}],[\"[@](return)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],selectorname:[[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}],[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@variablereference\"},[\"(and\\\\b|or\\\\b|not\\\\b)\",\"operator\"],{include:\"@name\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"operator\"],[\",\",\"delimiter\"],[\"!default\",\"literal\"],[\"\\\\(\",{token:\"delimiter.parenthesis\",next:\"@parenthizedterm\"}]],rulevalue:[{include:\"@term\"},[\"!important\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@nestedproperty\"}],[\"(?=})\",{token:\"\",next:\"@pop\"}]],nestedproperty:[[\"[*_]?@identifier@ws:\",\"attribute.name\",\"@rulevalue\"],{include:\"@comments\"},[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],variabledeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\",\"@declarationbody\"]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],extendbody:[{include:\"@selectorname\"},[\"!optional\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],variablereference:[[\"\\\\$@identifier\",\"variable.ref\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}]],variableinterpolation:[{include:\"@variablereference\"},[\"}\",{token:\"meta\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"number.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"number\",\"@pop\"]],functiondeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@functionbody\"}]],mixindeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],parameterdeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\",\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],includedeclaration:[{include:\"@functioninvocation\"},[\"@identifier\",\"meta\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],keyframedeclaration:[[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],controlstatement:[[\"[@](if|else|for|while|each|media)\",{token:\"keyword.flow\",next:\"@controlstatementdeclaration\"}]],controlstatementdeclaration:[[\"(in|from|through|if|to)\\\\b\",{token:\"keyword.flow\"}],{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],functionbody:[[\"[@](return)\",{token:\"keyword\"}],{include:\"@variabledeclaration\"},{include:\"@term\"},{include:\"@controlstatement\"},[\";\",\"delimiter\"],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"meta\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/shell/shell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/shell/shell\",[\"require\",\"exports\"],(function(e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},r.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".shell\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"then\",\"do\",\"else\",\"elif\",\"while\",\"until\",\"for\",\"in\",\"esac\",\"fi\",\"fin\",\"fil\",\"done\",\"exit\",\"set\",\"unset\",\"export\",\"function\"],builtins:[\"ab\",\"awk\",\"bash\",\"beep\",\"cat\",\"cc\",\"cd\",\"chown\",\"chmod\",\"chroot\",\"clear\",\"cp\",\"curl\",\"cut\",\"diff\",\"echo\",\"find\",\"gawk\",\"gcc\",\"get\",\"git\",\"grep\",\"hg\",\"kill\",\"killall\",\"ln\",\"ls\",\"make\",\"mkdir\",\"openssl\",\"mv\",\"nc\",\"node\",\"npm\",\"ping\",\"ps\",\"restart\",\"rm\",\"rmdir\",\"sed\",\"service\",\"sh\",\"shopt\",\"shred\",\"source\",\"sort\",\"sleep\",\"ssh\",\"start\",\"stop\",\"su\",\"sudo\",\"svn\",\"tee\",\"telnet\",\"top\",\"touch\",\"vi\",\"vim\",\"wall\",\"wc\",\"wget\",\"who\",\"write\",\"yes\",\"zsh\"],symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,tokenizer:{root:[{include:\"@whitespace\"},[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@builtins\":\"type.identifier\",\"@default\":\"\"}}],{include:\"@strings\"},{include:\"@parameters\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/-+\\w+/,\"attribute.name\"],[/@symbols/,\"delimiter\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/./,\"string\"]],heredoc:[[/(<<[-<]?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)/,[\"constants\",\"white\",\"string.heredoc.delimiter\",\"string.heredoc\",\"string.heredoc.delimiter\"]]],parameters:[[/\\$\\d+/,\"variable.predefined\"],[/\\$\\w+/,\"variable\"],[/\\$[*@#?\\-$!0_]/,\"variable\"],[/\\$'/,\"variable\",\"@parameterBodyQuote\"],[/\\$\"/,\"variable\",\"@parameterBodyDoubleQuote\"],[/\\$\\(/,\"variable\",\"@parameterBodyParen\"],[/\\$\\{/,\"variable\",\"@parameterBodyCurlyBrace\"]],parameterBodyQuote:[[/[^#:%*@\\-!_']+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[']/,\"variable\",\"@pop\"]],parameterBodyDoubleQuote:[[/[^#:%*@\\-!_\"]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[\"]/,\"variable\",\"@pop\"]],parameterBodyParen:[[/[^#:%*@\\-!_)]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[)]/,\"variable\",\"@pop\"]],parameterBodyCurlyBrace:[[/[^#:%*@\\-!_}]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[}]/,\"variable\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/solidity/solidity.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/solidity/solidity\",[\"require\",\"exports\"],(function(x,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},e.language={defaultToken:\"\",tokenPostfix:\".sol\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"pragma\",\"solidity\",\"contract\",\"library\",\"using\",\"struct\",\"function\",\"modifier\",\"constructor\",\"address\",\"string\",\"bool\",\"Int\",\"Uint\",\"Byte\",\"Fixed\",\"Ufixed\",\"int\",\"int8\",\"int16\",\"int24\",\"int32\",\"int40\",\"int48\",\"int56\",\"int64\",\"int72\",\"int80\",\"int88\",\"int96\",\"int104\",\"int112\",\"int120\",\"int128\",\"int136\",\"int144\",\"int152\",\"int160\",\"int168\",\"int176\",\"int184\",\"int192\",\"int200\",\"int208\",\"int216\",\"int224\",\"int232\",\"int240\",\"int248\",\"int256\",\"uint\",\"uint8\",\"uint16\",\"uint24\",\"uint32\",\"uint40\",\"uint48\",\"uint56\",\"uint64\",\"uint72\",\"uint80\",\"uint88\",\"uint96\",\"uint104\",\"uint112\",\"uint120\",\"uint128\",\"uint136\",\"uint144\",\"uint152\",\"uint160\",\"uint168\",\"uint176\",\"uint184\",\"uint192\",\"uint200\",\"uint208\",\"uint216\",\"uint224\",\"uint232\",\"uint240\",\"uint248\",\"uint256\",\"byte\",\"bytes\",\"bytes1\",\"bytes2\",\"bytes3\",\"bytes4\",\"bytes5\",\"bytes6\",\"bytes7\",\"bytes8\",\"bytes9\",\"bytes10\",\"bytes11\",\"bytes12\",\"bytes13\",\"bytes14\",\"bytes15\",\"bytes16\",\"bytes17\",\"bytes18\",\"bytes19\",\"bytes20\",\"bytes21\",\"bytes22\",\"bytes23\",\"bytes24\",\"bytes25\",\"bytes26\",\"bytes27\",\"bytes28\",\"bytes29\",\"bytes30\",\"bytes31\",\"bytes32\",\"fixed\",\"fixed0x8\",\"fixed0x16\",\"fixed0x24\",\"fixed0x32\",\"fixed0x40\",\"fixed0x48\",\"fixed0x56\",\"fixed0x64\",\"fixed0x72\",\"fixed0x80\",\"fixed0x88\",\"fixed0x96\",\"fixed0x104\",\"fixed0x112\",\"fixed0x120\",\"fixed0x128\",\"fixed0x136\",\"fixed0x144\",\"fixed0x152\",\"fixed0x160\",\"fixed0x168\",\"fixed0x176\",\"fixed0x184\",\"fixed0x192\",\"fixed0x200\",\"fixed0x208\",\"fixed0x216\",\"fixed0x224\",\"fixed0x232\",\"fixed0x240\",\"fixed0x248\",\"fixed0x256\",\"fixed8x8\",\"fixed8x16\",\"fixed8x24\",\"fixed8x32\",\"fixed8x40\",\"fixed8x48\",\"fixed8x56\",\"fixed8x64\",\"fixed8x72\",\"fixed8x80\",\"fixed8x88\",\"fixed8x96\",\"fixed8x104\",\"fixed8x112\",\"fixed8x120\",\"fixed8x128\",\"fixed8x136\",\"fixed8x144\",\"fixed8x152\",\"fixed8x160\",\"fixed8x168\",\"fixed8x176\",\"fixed8x184\",\"fixed8x192\",\"fixed8x200\",\"fixed8x208\",\"fixed8x216\",\"fixed8x224\",\"fixed8x232\",\"fixed8x240\",\"fixed8x248\",\"fixed16x8\",\"fixed16x16\",\"fixed16x24\",\"fixed16x32\",\"fixed16x40\",\"fixed16x48\",\"fixed16x56\",\"fixed16x64\",\"fixed16x72\",\"fixed16x80\",\"fixed16x88\",\"fixed16x96\",\"fixed16x104\",\"fixed16x112\",\"fixed16x120\",\"fixed16x128\",\"fixed16x136\",\"fixed16x144\",\"fixed16x152\",\"fixed16x160\",\"fixed16x168\",\"fixed16x176\",\"fixed16x184\",\"fixed16x192\",\"fixed16x200\",\"fixed16x208\",\"fixed16x216\",\"fixed16x224\",\"fixed16x232\",\"fixed16x240\",\"fixed24x8\",\"fixed24x16\",\"fixed24x24\",\"fixed24x32\",\"fixed24x40\",\"fixed24x48\",\"fixed24x56\",\"fixed24x64\",\"fixed24x72\",\"fixed24x80\",\"fixed24x88\",\"fixed24x96\",\"fixed24x104\",\"fixed24x112\",\"fixed24x120\",\"fixed24x128\",\"fixed24x136\",\"fixed24x144\",\"fixed24x152\",\"fixed24x160\",\"fixed24x168\",\"fixed24x176\",\"fixed24x184\",\"fixed24x192\",\"fixed24x200\",\"fixed24x208\",\"fixed24x216\",\"fixed24x224\",\"fixed24x232\",\"fixed32x8\",\"fixed32x16\",\"fixed32x24\",\"fixed32x32\",\"fixed32x40\",\"fixed32x48\",\"fixed32x56\",\"fixed32x64\",\"fixed32x72\",\"fixed32x80\",\"fixed32x88\",\"fixed32x96\",\"fixed32x104\",\"fixed32x112\",\"fixed32x120\",\"fixed32x128\",\"fixed32x136\",\"fixed32x144\",\"fixed32x152\",\"fixed32x160\",\"fixed32x168\",\"fixed32x176\",\"fixed32x184\",\"fixed32x192\",\"fixed32x200\",\"fixed32x208\",\"fixed32x216\",\"fixed32x224\",\"fixed40x8\",\"fixed40x16\",\"fixed40x24\",\"fixed40x32\",\"fixed40x40\",\"fixed40x48\",\"fixed40x56\",\"fixed40x64\",\"fixed40x72\",\"fixed40x80\",\"fixed40x88\",\"fixed40x96\",\"fixed40x104\",\"fixed40x112\",\"fixed40x120\",\"fixed40x128\",\"fixed40x136\",\"fixed40x144\",\"fixed40x152\",\"fixed40x160\",\"fixed40x168\",\"fixed40x176\",\"fixed40x184\",\"fixed40x192\",\"fixed40x200\",\"fixed40x208\",\"fixed40x216\",\"fixed48x8\",\"fixed48x16\",\"fixed48x24\",\"fixed48x32\",\"fixed48x40\",\"fixed48x48\",\"fixed48x56\",\"fixed48x64\",\"fixed48x72\",\"fixed48x80\",\"fixed48x88\",\"fixed48x96\",\"fixed48x104\",\"fixed48x112\",\"fixed48x120\",\"fixed48x128\",\"fixed48x136\",\"fixed48x144\",\"fixed48x152\",\"fixed48x160\",\"fixed48x168\",\"fixed48x176\",\"fixed48x184\",\"fixed48x192\",\"fixed48x200\",\"fixed48x208\",\"fixed56x8\",\"fixed56x16\",\"fixed56x24\",\"fixed56x32\",\"fixed56x40\",\"fixed56x48\",\"fixed56x56\",\"fixed56x64\",\"fixed56x72\",\"fixed56x80\",\"fixed56x88\",\"fixed56x96\",\"fixed56x104\",\"fixed56x112\",\"fixed56x120\",\"fixed56x128\",\"fixed56x136\",\"fixed56x144\",\"fixed56x152\",\"fixed56x160\",\"fixed56x168\",\"fixed56x176\",\"fixed56x184\",\"fixed56x192\",\"fixed56x200\",\"fixed64x8\",\"fixed64x16\",\"fixed64x24\",\"fixed64x32\",\"fixed64x40\",\"fixed64x48\",\"fixed64x56\",\"fixed64x64\",\"fixed64x72\",\"fixed64x80\",\"fixed64x88\",\"fixed64x96\",\"fixed64x104\",\"fixed64x112\",\"fixed64x120\",\"fixed64x128\",\"fixed64x136\",\"fixed64x144\",\"fixed64x152\",\"fixed64x160\",\"fixed64x168\",\"fixed64x176\",\"fixed64x184\",\"fixed64x192\",\"fixed72x8\",\"fixed72x16\",\"fixed72x24\",\"fixed72x32\",\"fixed72x40\",\"fixed72x48\",\"fixed72x56\",\"fixed72x64\",\"fixed72x72\",\"fixed72x80\",\"fixed72x88\",\"fixed72x96\",\"fixed72x104\",\"fixed72x112\",\"fixed72x120\",\"fixed72x128\",\"fixed72x136\",\"fixed72x144\",\"fixed72x152\",\"fixed72x160\",\"fixed72x168\",\"fixed72x176\",\"fixed72x184\",\"fixed80x8\",\"fixed80x16\",\"fixed80x24\",\"fixed80x32\",\"fixed80x40\",\"fixed80x48\",\"fixed80x56\",\"fixed80x64\",\"fixed80x72\",\"fixed80x80\",\"fixed80x88\",\"fixed80x96\",\"fixed80x104\",\"fixed80x112\",\"fixed80x120\",\"fixed80x128\",\"fixed80x136\",\"fixed80x144\",\"fixed80x152\",\"fixed80x160\",\"fixed80x168\",\"fixed80x176\",\"fixed88x8\",\"fixed88x16\",\"fixed88x24\",\"fixed88x32\",\"fixed88x40\",\"fixed88x48\",\"fixed88x56\",\"fixed88x64\",\"fixed88x72\",\"fixed88x80\",\"fixed88x88\",\"fixed88x96\",\"fixed88x104\",\"fixed88x112\",\"fixed88x120\",\"fixed88x128\",\"fixed88x136\",\"fixed88x144\",\"fixed88x152\",\"fixed88x160\",\"fixed88x168\",\"fixed96x8\",\"fixed96x16\",\"fixed96x24\",\"fixed96x32\",\"fixed96x40\",\"fixed96x48\",\"fixed96x56\",\"fixed96x64\",\"fixed96x72\",\"fixed96x80\",\"fixed96x88\",\"fixed96x96\",\"fixed96x104\",\"fixed96x112\",\"fixed96x120\",\"fixed96x128\",\"fixed96x136\",\"fixed96x144\",\"fixed96x152\",\"fixed96x160\",\"fixed104x8\",\"fixed104x16\",\"fixed104x24\",\"fixed104x32\",\"fixed104x40\",\"fixed104x48\",\"fixed104x56\",\"fixed104x64\",\"fixed104x72\",\"fixed104x80\",\"fixed104x88\",\"fixed104x96\",\"fixed104x104\",\"fixed104x112\",\"fixed104x120\",\"fixed104x128\",\"fixed104x136\",\"fixed104x144\",\"fixed104x152\",\"fixed112x8\",\"fixed112x16\",\"fixed112x24\",\"fixed112x32\",\"fixed112x40\",\"fixed112x48\",\"fixed112x56\",\"fixed112x64\",\"fixed112x72\",\"fixed112x80\",\"fixed112x88\",\"fixed112x96\",\"fixed112x104\",\"fixed112x112\",\"fixed112x120\",\"fixed112x128\",\"fixed112x136\",\"fixed112x144\",\"fixed120x8\",\"fixed120x16\",\"fixed120x24\",\"fixed120x32\",\"fixed120x40\",\"fixed120x48\",\"fixed120x56\",\"fixed120x64\",\"fixed120x72\",\"fixed120x80\",\"fixed120x88\",\"fixed120x96\",\"fixed120x104\",\"fixed120x112\",\"fixed120x120\",\"fixed120x128\",\"fixed120x136\",\"fixed128x8\",\"fixed128x16\",\"fixed128x24\",\"fixed128x32\",\"fixed128x40\",\"fixed128x48\",\"fixed128x56\",\"fixed128x64\",\"fixed128x72\",\"fixed128x80\",\"fixed128x88\",\"fixed128x96\",\"fixed128x104\",\"fixed128x112\",\"fixed128x120\",\"fixed128x128\",\"fixed136x8\",\"fixed136x16\",\"fixed136x24\",\"fixed136x32\",\"fixed136x40\",\"fixed136x48\",\"fixed136x56\",\"fixed136x64\",\"fixed136x72\",\"fixed136x80\",\"fixed136x88\",\"fixed136x96\",\"fixed136x104\",\"fixed136x112\",\"fixed136x120\",\"fixed144x8\",\"fixed144x16\",\"fixed144x24\",\"fixed144x32\",\"fixed144x40\",\"fixed144x48\",\"fixed144x56\",\"fixed144x64\",\"fixed144x72\",\"fixed144x80\",\"fixed144x88\",\"fixed144x96\",\"fixed144x104\",\"fixed144x112\",\"fixed152x8\",\"fixed152x16\",\"fixed152x24\",\"fixed152x32\",\"fixed152x40\",\"fixed152x48\",\"fixed152x56\",\"fixed152x64\",\"fixed152x72\",\"fixed152x80\",\"fixed152x88\",\"fixed152x96\",\"fixed152x104\",\"fixed160x8\",\"fixed160x16\",\"fixed160x24\",\"fixed160x32\",\"fixed160x40\",\"fixed160x48\",\"fixed160x56\",\"fixed160x64\",\"fixed160x72\",\"fixed160x80\",\"fixed160x88\",\"fixed160x96\",\"fixed168x8\",\"fixed168x16\",\"fixed168x24\",\"fixed168x32\",\"fixed168x40\",\"fixed168x48\",\"fixed168x56\",\"fixed168x64\",\"fixed168x72\",\"fixed168x80\",\"fixed168x88\",\"fixed176x8\",\"fixed176x16\",\"fixed176x24\",\"fixed176x32\",\"fixed176x40\",\"fixed176x48\",\"fixed176x56\",\"fixed176x64\",\"fixed176x72\",\"fixed176x80\",\"fixed184x8\",\"fixed184x16\",\"fixed184x24\",\"fixed184x32\",\"fixed184x40\",\"fixed184x48\",\"fixed184x56\",\"fixed184x64\",\"fixed184x72\",\"fixed192x8\",\"fixed192x16\",\"fixed192x24\",\"fixed192x32\",\"fixed192x40\",\"fixed192x48\",\"fixed192x56\",\"fixed192x64\",\"fixed200x8\",\"fixed200x16\",\"fixed200x24\",\"fixed200x32\",\"fixed200x40\",\"fixed200x48\",\"fixed200x56\",\"fixed208x8\",\"fixed208x16\",\"fixed208x24\",\"fixed208x32\",\"fixed208x40\",\"fixed208x48\",\"fixed216x8\",\"fixed216x16\",\"fixed216x24\",\"fixed216x32\",\"fixed216x40\",\"fixed224x8\",\"fixed224x16\",\"fixed224x24\",\"fixed224x32\",\"fixed232x8\",\"fixed232x16\",\"fixed232x24\",\"fixed240x8\",\"fixed240x16\",\"fixed248x8\",\"ufixed\",\"ufixed0x8\",\"ufixed0x16\",\"ufixed0x24\",\"ufixed0x32\",\"ufixed0x40\",\"ufixed0x48\",\"ufixed0x56\",\"ufixed0x64\",\"ufixed0x72\",\"ufixed0x80\",\"ufixed0x88\",\"ufixed0x96\",\"ufixed0x104\",\"ufixed0x112\",\"ufixed0x120\",\"ufixed0x128\",\"ufixed0x136\",\"ufixed0x144\",\"ufixed0x152\",\"ufixed0x160\",\"ufixed0x168\",\"ufixed0x176\",\"ufixed0x184\",\"ufixed0x192\",\"ufixed0x200\",\"ufixed0x208\",\"ufixed0x216\",\"ufixed0x224\",\"ufixed0x232\",\"ufixed0x240\",\"ufixed0x248\",\"ufixed0x256\",\"ufixed8x8\",\"ufixed8x16\",\"ufixed8x24\",\"ufixed8x32\",\"ufixed8x40\",\"ufixed8x48\",\"ufixed8x56\",\"ufixed8x64\",\"ufixed8x72\",\"ufixed8x80\",\"ufixed8x88\",\"ufixed8x96\",\"ufixed8x104\",\"ufixed8x112\",\"ufixed8x120\",\"ufixed8x128\",\"ufixed8x136\",\"ufixed8x144\",\"ufixed8x152\",\"ufixed8x160\",\"ufixed8x168\",\"ufixed8x176\",\"ufixed8x184\",\"ufixed8x192\",\"ufixed8x200\",\"ufixed8x208\",\"ufixed8x216\",\"ufixed8x224\",\"ufixed8x232\",\"ufixed8x240\",\"ufixed8x248\",\"ufixed16x8\",\"ufixed16x16\",\"ufixed16x24\",\"ufixed16x32\",\"ufixed16x40\",\"ufixed16x48\",\"ufixed16x56\",\"ufixed16x64\",\"ufixed16x72\",\"ufixed16x80\",\"ufixed16x88\",\"ufixed16x96\",\"ufixed16x104\",\"ufixed16x112\",\"ufixed16x120\",\"ufixed16x128\",\"ufixed16x136\",\"ufixed16x144\",\"ufixed16x152\",\"ufixed16x160\",\"ufixed16x168\",\"ufixed16x176\",\"ufixed16x184\",\"ufixed16x192\",\"ufixed16x200\",\"ufixed16x208\",\"ufixed16x216\",\"ufixed16x224\",\"ufixed16x232\",\"ufixed16x240\",\"ufixed24x8\",\"ufixed24x16\",\"ufixed24x24\",\"ufixed24x32\",\"ufixed24x40\",\"ufixed24x48\",\"ufixed24x56\",\"ufixed24x64\",\"ufixed24x72\",\"ufixed24x80\",\"ufixed24x88\",\"ufixed24x96\",\"ufixed24x104\",\"ufixed24x112\",\"ufixed24x120\",\"ufixed24x128\",\"ufixed24x136\",\"ufixed24x144\",\"ufixed24x152\",\"ufixed24x160\",\"ufixed24x168\",\"ufixed24x176\",\"ufixed24x184\",\"ufixed24x192\",\"ufixed24x200\",\"ufixed24x208\",\"ufixed24x216\",\"ufixed24x224\",\"ufixed24x232\",\"ufixed32x8\",\"ufixed32x16\",\"ufixed32x24\",\"ufixed32x32\",\"ufixed32x40\",\"ufixed32x48\",\"ufixed32x56\",\"ufixed32x64\",\"ufixed32x72\",\"ufixed32x80\",\"ufixed32x88\",\"ufixed32x96\",\"ufixed32x104\",\"ufixed32x112\",\"ufixed32x120\",\"ufixed32x128\",\"ufixed32x136\",\"ufixed32x144\",\"ufixed32x152\",\"ufixed32x160\",\"ufixed32x168\",\"ufixed32x176\",\"ufixed32x184\",\"ufixed32x192\",\"ufixed32x200\",\"ufixed32x208\",\"ufixed32x216\",\"ufixed32x224\",\"ufixed40x8\",\"ufixed40x16\",\"ufixed40x24\",\"ufixed40x32\",\"ufixed40x40\",\"ufixed40x48\",\"ufixed40x56\",\"ufixed40x64\",\"ufixed40x72\",\"ufixed40x80\",\"ufixed40x88\",\"ufixed40x96\",\"ufixed40x104\",\"ufixed40x112\",\"ufixed40x120\",\"ufixed40x128\",\"ufixed40x136\",\"ufixed40x144\",\"ufixed40x152\",\"ufixed40x160\",\"ufixed40x168\",\"ufixed40x176\",\"ufixed40x184\",\"ufixed40x192\",\"ufixed40x200\",\"ufixed40x208\",\"ufixed40x216\",\"ufixed48x8\",\"ufixed48x16\",\"ufixed48x24\",\"ufixed48x32\",\"ufixed48x40\",\"ufixed48x48\",\"ufixed48x56\",\"ufixed48x64\",\"ufixed48x72\",\"ufixed48x80\",\"ufixed48x88\",\"ufixed48x96\",\"ufixed48x104\",\"ufixed48x112\",\"ufixed48x120\",\"ufixed48x128\",\"ufixed48x136\",\"ufixed48x144\",\"ufixed48x152\",\"ufixed48x160\",\"ufixed48x168\",\"ufixed48x176\",\"ufixed48x184\",\"ufixed48x192\",\"ufixed48x200\",\"ufixed48x208\",\"ufixed56x8\",\"ufixed56x16\",\"ufixed56x24\",\"ufixed56x32\",\"ufixed56x40\",\"ufixed56x48\",\"ufixed56x56\",\"ufixed56x64\",\"ufixed56x72\",\"ufixed56x80\",\"ufixed56x88\",\"ufixed56x96\",\"ufixed56x104\",\"ufixed56x112\",\"ufixed56x120\",\"ufixed56x128\",\"ufixed56x136\",\"ufixed56x144\",\"ufixed56x152\",\"ufixed56x160\",\"ufixed56x168\",\"ufixed56x176\",\"ufixed56x184\",\"ufixed56x192\",\"ufixed56x200\",\"ufixed64x8\",\"ufixed64x16\",\"ufixed64x24\",\"ufixed64x32\",\"ufixed64x40\",\"ufixed64x48\",\"ufixed64x56\",\"ufixed64x64\",\"ufixed64x72\",\"ufixed64x80\",\"ufixed64x88\",\"ufixed64x96\",\"ufixed64x104\",\"ufixed64x112\",\"ufixed64x120\",\"ufixed64x128\",\"ufixed64x136\",\"ufixed64x144\",\"ufixed64x152\",\"ufixed64x160\",\"ufixed64x168\",\"ufixed64x176\",\"ufixed64x184\",\"ufixed64x192\",\"ufixed72x8\",\"ufixed72x16\",\"ufixed72x24\",\"ufixed72x32\",\"ufixed72x40\",\"ufixed72x48\",\"ufixed72x56\",\"ufixed72x64\",\"ufixed72x72\",\"ufixed72x80\",\"ufixed72x88\",\"ufixed72x96\",\"ufixed72x104\",\"ufixed72x112\",\"ufixed72x120\",\"ufixed72x128\",\"ufixed72x136\",\"ufixed72x144\",\"ufixed72x152\",\"ufixed72x160\",\"ufixed72x168\",\"ufixed72x176\",\"ufixed72x184\",\"ufixed80x8\",\"ufixed80x16\",\"ufixed80x24\",\"ufixed80x32\",\"ufixed80x40\",\"ufixed80x48\",\"ufixed80x56\",\"ufixed80x64\",\"ufixed80x72\",\"ufixed80x80\",\"ufixed80x88\",\"ufixed80x96\",\"ufixed80x104\",\"ufixed80x112\",\"ufixed80x120\",\"ufixed80x128\",\"ufixed80x136\",\"ufixed80x144\",\"ufixed80x152\",\"ufixed80x160\",\"ufixed80x168\",\"ufixed80x176\",\"ufixed88x8\",\"ufixed88x16\",\"ufixed88x24\",\"ufixed88x32\",\"ufixed88x40\",\"ufixed88x48\",\"ufixed88x56\",\"ufixed88x64\",\"ufixed88x72\",\"ufixed88x80\",\"ufixed88x88\",\"ufixed88x96\",\"ufixed88x104\",\"ufixed88x112\",\"ufixed88x120\",\"ufixed88x128\",\"ufixed88x136\",\"ufixed88x144\",\"ufixed88x152\",\"ufixed88x160\",\"ufixed88x168\",\"ufixed96x8\",\"ufixed96x16\",\"ufixed96x24\",\"ufixed96x32\",\"ufixed96x40\",\"ufixed96x48\",\"ufixed96x56\",\"ufixed96x64\",\"ufixed96x72\",\"ufixed96x80\",\"ufixed96x88\",\"ufixed96x96\",\"ufixed96x104\",\"ufixed96x112\",\"ufixed96x120\",\"ufixed96x128\",\"ufixed96x136\",\"ufixed96x144\",\"ufixed96x152\",\"ufixed96x160\",\"ufixed104x8\",\"ufixed104x16\",\"ufixed104x24\",\"ufixed104x32\",\"ufixed104x40\",\"ufixed104x48\",\"ufixed104x56\",\"ufixed104x64\",\"ufixed104x72\",\"ufixed104x80\",\"ufixed104x88\",\"ufixed104x96\",\"ufixed104x104\",\"ufixed104x112\",\"ufixed104x120\",\"ufixed104x128\",\"ufixed104x136\",\"ufixed104x144\",\"ufixed104x152\",\"ufixed112x8\",\"ufixed112x16\",\"ufixed112x24\",\"ufixed112x32\",\"ufixed112x40\",\"ufixed112x48\",\"ufixed112x56\",\"ufixed112x64\",\"ufixed112x72\",\"ufixed112x80\",\"ufixed112x88\",\"ufixed112x96\",\"ufixed112x104\",\"ufixed112x112\",\"ufixed112x120\",\"ufixed112x128\",\"ufixed112x136\",\"ufixed112x144\",\"ufixed120x8\",\"ufixed120x16\",\"ufixed120x24\",\"ufixed120x32\",\"ufixed120x40\",\"ufixed120x48\",\"ufixed120x56\",\"ufixed120x64\",\"ufixed120x72\",\"ufixed120x80\",\"ufixed120x88\",\"ufixed120x96\",\"ufixed120x104\",\"ufixed120x112\",\"ufixed120x120\",\"ufixed120x128\",\"ufixed120x136\",\"ufixed128x8\",\"ufixed128x16\",\"ufixed128x24\",\"ufixed128x32\",\"ufixed128x40\",\"ufixed128x48\",\"ufixed128x56\",\"ufixed128x64\",\"ufixed128x72\",\"ufixed128x80\",\"ufixed128x88\",\"ufixed128x96\",\"ufixed128x104\",\"ufixed128x112\",\"ufixed128x120\",\"ufixed128x128\",\"ufixed136x8\",\"ufixed136x16\",\"ufixed136x24\",\"ufixed136x32\",\"ufixed136x40\",\"ufixed136x48\",\"ufixed136x56\",\"ufixed136x64\",\"ufixed136x72\",\"ufixed136x80\",\"ufixed136x88\",\"ufixed136x96\",\"ufixed136x104\",\"ufixed136x112\",\"ufixed136x120\",\"ufixed144x8\",\"ufixed144x16\",\"ufixed144x24\",\"ufixed144x32\",\"ufixed144x40\",\"ufixed144x48\",\"ufixed144x56\",\"ufixed144x64\",\"ufixed144x72\",\"ufixed144x80\",\"ufixed144x88\",\"ufixed144x96\",\"ufixed144x104\",\"ufixed144x112\",\"ufixed152x8\",\"ufixed152x16\",\"ufixed152x24\",\"ufixed152x32\",\"ufixed152x40\",\"ufixed152x48\",\"ufixed152x56\",\"ufixed152x64\",\"ufixed152x72\",\"ufixed152x80\",\"ufixed152x88\",\"ufixed152x96\",\"ufixed152x104\",\"ufixed160x8\",\"ufixed160x16\",\"ufixed160x24\",\"ufixed160x32\",\"ufixed160x40\",\"ufixed160x48\",\"ufixed160x56\",\"ufixed160x64\",\"ufixed160x72\",\"ufixed160x80\",\"ufixed160x88\",\"ufixed160x96\",\"ufixed168x8\",\"ufixed168x16\",\"ufixed168x24\",\"ufixed168x32\",\"ufixed168x40\",\"ufixed168x48\",\"ufixed168x56\",\"ufixed168x64\",\"ufixed168x72\",\"ufixed168x80\",\"ufixed168x88\",\"ufixed176x8\",\"ufixed176x16\",\"ufixed176x24\",\"ufixed176x32\",\"ufixed176x40\",\"ufixed176x48\",\"ufixed176x56\",\"ufixed176x64\",\"ufixed176x72\",\"ufixed176x80\",\"ufixed184x8\",\"ufixed184x16\",\"ufixed184x24\",\"ufixed184x32\",\"ufixed184x40\",\"ufixed184x48\",\"ufixed184x56\",\"ufixed184x64\",\"ufixed184x72\",\"ufixed192x8\",\"ufixed192x16\",\"ufixed192x24\",\"ufixed192x32\",\"ufixed192x40\",\"ufixed192x48\",\"ufixed192x56\",\"ufixed192x64\",\"ufixed200x8\",\"ufixed200x16\",\"ufixed200x24\",\"ufixed200x32\",\"ufixed200x40\",\"ufixed200x48\",\"ufixed200x56\",\"ufixed208x8\",\"ufixed208x16\",\"ufixed208x24\",\"ufixed208x32\",\"ufixed208x40\",\"ufixed208x48\",\"ufixed216x8\",\"ufixed216x16\",\"ufixed216x24\",\"ufixed216x32\",\"ufixed216x40\",\"ufixed224x8\",\"ufixed224x16\",\"ufixed224x24\",\"ufixed224x32\",\"ufixed232x8\",\"ufixed232x16\",\"ufixed232x24\",\"ufixed240x8\",\"ufixed240x16\",\"ufixed248x8\",\"event\",\"enum\",\"let\",\"mapping\",\"private\",\"public\",\"external\",\"inherited\",\"payable\",\"true\",\"false\",\"var\",\"import\",\"constant\",\"if\",\"else\",\"for\",\"else\",\"for\",\"while\",\"do\",\"break\",\"continue\",\"throw\",\"returns\",\"return\",\"suicide\",\"new\",\"is\",\"this\",\"super\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/sophia/sophia.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sophia/sophia\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t.language={defaultToken:\"\",tokenPostfix:\".aes\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"contract\",\"library\",\"entrypoint\",\"function\",\"stateful\",\"state\",\"hash\",\"signature\",\"tuple\",\"list\",\"address\",\"string\",\"bool\",\"int\",\"record\",\"datatype\",\"type\",\"option\",\"oracle\",\"oracle_query\",\"Call\",\"Bits\",\"Bytes\",\"Oracle\",\"String\",\"Crypto\",\"Address\",\"Auth\",\"Chain\",\"None\",\"Some\",\"bits\",\"bytes\",\"event\",\"let\",\"map\",\"private\",\"public\",\"true\",\"false\",\"var\",\"if\",\"else\",\"throw\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\"::\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/sql/sql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sql/sql\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ABORT_AFTER_WAIT\",\"ABSENT\",\"ABSOLUTE\",\"ACCENT_SENSITIVITY\",\"ACTION\",\"ACTIVATION\",\"ACTIVE\",\"ADD\",\"ADDRESS\",\"ADMIN\",\"AES\",\"AES_128\",\"AES_192\",\"AES_256\",\"AFFINITY\",\"AFTER\",\"AGGREGATE\",\"ALGORITHM\",\"ALL_CONSTRAINTS\",\"ALL_ERRORMSGS\",\"ALL_INDEXES\",\"ALL_LEVELS\",\"ALL_SPARSE_COLUMNS\",\"ALLOW_CONNECTIONS\",\"ALLOW_MULTIPLE_EVENT_LOSS\",\"ALLOW_PAGE_LOCKS\",\"ALLOW_ROW_LOCKS\",\"ALLOW_SINGLE_EVENT_LOSS\",\"ALLOW_SNAPSHOT_ISOLATION\",\"ALLOWED\",\"ALTER\",\"ANONYMOUS\",\"ANSI_DEFAULTS\",\"ANSI_NULL_DEFAULT\",\"ANSI_NULL_DFLT_OFF\",\"ANSI_NULL_DFLT_ON\",\"ANSI_NULLS\",\"ANSI_PADDING\",\"ANSI_WARNINGS\",\"APPEND\",\"APPLICATION\",\"APPLICATION_LOG\",\"ARITHABORT\",\"ARITHIGNORE\",\"AS\",\"ASC\",\"ASSEMBLY\",\"ASYMMETRIC\",\"ASYNCHRONOUS_COMMIT\",\"AT\",\"ATOMIC\",\"ATTACH\",\"ATTACH_REBUILD_LOG\",\"AUDIT\",\"AUDIT_GUID\",\"AUTHENTICATION\",\"AUTHORIZATION\",\"AUTO\",\"AUTO_CLEANUP\",\"AUTO_CLOSE\",\"AUTO_CREATE_STATISTICS\",\"AUTO_SHRINK\",\"AUTO_UPDATE_STATISTICS\",\"AUTO_UPDATE_STATISTICS_ASYNC\",\"AUTOMATED_BACKUP_PREFERENCE\",\"AUTOMATIC\",\"AVAILABILITY\",\"AVAILABILITY_MODE\",\"BACKUP\",\"BACKUP_PRIORITY\",\"BASE64\",\"BATCHSIZE\",\"BEGIN\",\"BEGIN_DIALOG\",\"BIGINT\",\"BINARY\",\"BINDING\",\"BIT\",\"BLOCKERS\",\"BLOCKSIZE\",\"BOUNDING_BOX\",\"BREAK\",\"BROKER\",\"BROKER_INSTANCE\",\"BROWSE\",\"BUCKET_COUNT\",\"BUFFER\",\"BUFFERCOUNT\",\"BULK\",\"BULK_LOGGED\",\"BY\",\"CACHE\",\"CALL\",\"CALLED\",\"CALLER\",\"CAP_CPU_PERCENT\",\"CASCADE\",\"CASE\",\"CATALOG\",\"CATCH\",\"CELLS_PER_OBJECT\",\"CERTIFICATE\",\"CHANGE_RETENTION\",\"CHANGE_TRACKING\",\"CHANGES\",\"CHAR\",\"CHARACTER\",\"CHECK\",\"CHECK_CONSTRAINTS\",\"CHECK_EXPIRATION\",\"CHECK_POLICY\",\"CHECKALLOC\",\"CHECKCATALOG\",\"CHECKCONSTRAINTS\",\"CHECKDB\",\"CHECKFILEGROUP\",\"CHECKIDENT\",\"CHECKPOINT\",\"CHECKTABLE\",\"CLASSIFIER_FUNCTION\",\"CLEANTABLE\",\"CLEANUP\",\"CLEAR\",\"CLOSE\",\"CLUSTER\",\"CLUSTERED\",\"CODEPAGE\",\"COLLATE\",\"COLLECTION\",\"COLUMN\",\"COLUMN_SET\",\"COLUMNS\",\"COLUMNSTORE\",\"COLUMNSTORE_ARCHIVE\",\"COMMIT\",\"COMMITTED\",\"COMPATIBILITY_LEVEL\",\"COMPRESSION\",\"COMPUTE\",\"CONCAT\",\"CONCAT_NULL_YIELDS_NULL\",\"CONFIGURATION\",\"CONNECT\",\"CONSTRAINT\",\"CONTAINMENT\",\"CONTENT\",\"CONTEXT\",\"CONTINUE\",\"CONTINUE_AFTER_ERROR\",\"CONTRACT\",\"CONTRACT_NAME\",\"CONTROL\",\"CONVERSATION\",\"COOKIE\",\"COPY_ONLY\",\"COUNTER\",\"CPU\",\"CREATE\",\"CREATE_NEW\",\"CREATION_DISPOSITION\",\"CREDENTIAL\",\"CRYPTOGRAPHIC\",\"CUBE\",\"CURRENT\",\"CURRENT_DATE\",\"CURSOR\",\"CURSOR_CLOSE_ON_COMMIT\",\"CURSOR_DEFAULT\",\"CYCLE\",\"DATA\",\"DATA_COMPRESSION\",\"DATA_PURITY\",\"DATABASE\",\"DATABASE_DEFAULT\",\"DATABASE_MIRRORING\",\"DATABASE_SNAPSHOT\",\"DATAFILETYPE\",\"DATE\",\"DATE_CORRELATION_OPTIMIZATION\",\"DATEFIRST\",\"DATEFORMAT\",\"DATETIME\",\"DATETIME2\",\"DATETIMEOFFSET\",\"DAY\",\"DAYOFYEAR\",\"DAYS\",\"DB_CHAINING\",\"DBCC\",\"DBREINDEX\",\"DDL_DATABASE_LEVEL_EVENTS\",\"DEADLOCK_PRIORITY\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DECRYPTION\",\"DEFAULT\",\"DEFAULT_DATABASE\",\"DEFAULT_FULLTEXT_LANGUAGE\",\"DEFAULT_LANGUAGE\",\"DEFAULT_SCHEMA\",\"DEFINITION\",\"DELAY\",\"DELAYED_DURABILITY\",\"DELETE\",\"DELETED\",\"DENSITY_VECTOR\",\"DENY\",\"DEPENDENTS\",\"DES\",\"DESC\",\"DESCRIPTION\",\"DESX\",\"DHCP\",\"DIAGNOSTICS\",\"DIALOG\",\"DIFFERENTIAL\",\"DIRECTORY_NAME\",\"DISABLE\",\"DISABLE_BROKER\",\"DISABLED\",\"DISK\",\"DISTINCT\",\"DISTRIBUTED\",\"DOCUMENT\",\"DOUBLE\",\"DROP\",\"DROP_EXISTING\",\"DROPCLEANBUFFERS\",\"DUMP\",\"DURABILITY\",\"DYNAMIC\",\"EDITION\",\"ELEMENTS\",\"ELSE\",\"EMERGENCY\",\"EMPTY\",\"EMPTYFILE\",\"ENABLE\",\"ENABLE_BROKER\",\"ENABLED\",\"ENCRYPTION\",\"END\",\"ENDPOINT\",\"ENDPOINT_URL\",\"ERRLVL\",\"ERROR\",\"ERROR_BROKER_CONVERSATIONS\",\"ERRORFILE\",\"ESCAPE\",\"ESTIMATEONLY\",\"EVENT\",\"EVENT_RETENTION_MODE\",\"EXEC\",\"EXECUTABLE\",\"EXECUTE\",\"EXIT\",\"EXPAND\",\"EXPIREDATE\",\"EXPIRY_DATE\",\"EXPLICIT\",\"EXTENDED_LOGICAL_CHECKS\",\"EXTENSION\",\"EXTERNAL\",\"EXTERNAL_ACCESS\",\"FAIL_OPERATION\",\"FAILOVER\",\"FAILOVER_MODE\",\"FAILURE_CONDITION_LEVEL\",\"FALSE\",\"FAN_IN\",\"FAST\",\"FAST_FORWARD\",\"FETCH\",\"FIELDTERMINATOR\",\"FILE\",\"FILEGROUP\",\"FILEGROWTH\",\"FILELISTONLY\",\"FILENAME\",\"FILEPATH\",\"FILESTREAM\",\"FILESTREAM_ON\",\"FILETABLE_COLLATE_FILENAME\",\"FILETABLE_DIRECTORY\",\"FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME\",\"FILETABLE_NAMESPACE\",\"FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME\",\"FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME\",\"FILLFACTOR\",\"FILTERING\",\"FIRE_TRIGGERS\",\"FIRST\",\"FIRSTROW\",\"FLOAT\",\"FMTONLY\",\"FOLLOWING\",\"FOR\",\"FORCE\",\"FORCE_FAILOVER_ALLOW_DATA_LOSS\",\"FORCE_SERVICE_ALLOW_DATA_LOSS\",\"FORCED\",\"FORCEPLAN\",\"FORCESCAN\",\"FORCESEEK\",\"FOREIGN\",\"FORMATFILE\",\"FORMSOF\",\"FORWARD_ONLY\",\"FREE\",\"FREEPROCCACHE\",\"FREESESSIONCACHE\",\"FREESYSTEMCACHE\",\"FROM\",\"FULL\",\"FULLSCAN\",\"FULLTEXT\",\"FUNCTION\",\"GB\",\"GEOGRAPHY_AUTO_GRID\",\"GEOGRAPHY_GRID\",\"GEOMETRY_AUTO_GRID\",\"GEOMETRY_GRID\",\"GET\",\"GLOBAL\",\"GO\",\"GOTO\",\"GOVERNOR\",\"GRANT\",\"GRIDS\",\"GROUP\",\"GROUP_MAX_REQUESTS\",\"HADR\",\"HASH\",\"HASHED\",\"HAVING\",\"HEADERONLY\",\"HEALTH_CHECK_TIMEOUT\",\"HELP\",\"HIERARCHYID\",\"HIGH\",\"HINT\",\"HISTOGRAM\",\"HOLDLOCK\",\"HONOR_BROKER_PRIORITY\",\"HOUR\",\"HOURS\",\"IDENTITY\",\"IDENTITY_INSERT\",\"IDENTITY_VALUE\",\"IDENTITYCOL\",\"IF\",\"IGNORE_CONSTRAINTS\",\"IGNORE_DUP_KEY\",\"IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX\",\"IGNORE_TRIGGERS\",\"IMAGE\",\"IMMEDIATE\",\"IMPERSONATE\",\"IMPLICIT_TRANSACTIONS\",\"IMPORTANCE\",\"INCLUDE\",\"INCREMENT\",\"INCREMENTAL\",\"INDEX\",\"INDEXDEFRAG\",\"INFINITE\",\"INFLECTIONAL\",\"INIT\",\"INITIATOR\",\"INPUT\",\"INPUTBUFFER\",\"INSENSITIVE\",\"INSERT\",\"INSERTED\",\"INSTEAD\",\"INT\",\"INTEGER\",\"INTO\",\"IO\",\"IP\",\"ISABOUT\",\"ISOLATION\",\"JOB\",\"KB\",\"KEEP\",\"KEEP_CDC\",\"KEEP_NULLS\",\"KEEP_REPLICATION\",\"KEEPDEFAULTS\",\"KEEPFIXED\",\"KEEPIDENTITY\",\"KEEPNULLS\",\"KERBEROS\",\"KEY\",\"KEY_SOURCE\",\"KEYS\",\"KEYSET\",\"KILL\",\"KILOBYTES_PER_BATCH\",\"LABELONLY\",\"LANGUAGE\",\"LAST\",\"LASTROW\",\"LEVEL\",\"LEVEL_1\",\"LEVEL_2\",\"LEVEL_3\",\"LEVEL_4\",\"LIFETIME\",\"LIMIT\",\"LINENO\",\"LIST\",\"LISTENER\",\"LISTENER_IP\",\"LISTENER_PORT\",\"LOAD\",\"LOADHISTORY\",\"LOB_COMPACTION\",\"LOCAL\",\"LOCAL_SERVICE_NAME\",\"LOCK_ESCALATION\",\"LOCK_TIMEOUT\",\"LOGIN\",\"LOGSPACE\",\"LOOP\",\"LOW\",\"MANUAL\",\"MARK\",\"MARK_IN_USE_FOR_REMOVAL\",\"MASTER\",\"MAX_CPU_PERCENT\",\"MAX_DISPATCH_LATENCY\",\"MAX_DOP\",\"MAX_DURATION\",\"MAX_EVENT_SIZE\",\"MAX_FILES\",\"MAX_IOPS_PER_VOLUME\",\"MAX_MEMORY\",\"MAX_MEMORY_PERCENT\",\"MAX_QUEUE_READERS\",\"MAX_ROLLOVER_FILES\",\"MAX_SIZE\",\"MAXDOP\",\"MAXERRORS\",\"MAXLENGTH\",\"MAXRECURSION\",\"MAXSIZE\",\"MAXTRANSFERSIZE\",\"MAXVALUE\",\"MB\",\"MEDIADESCRIPTION\",\"MEDIANAME\",\"MEDIAPASSWORD\",\"MEDIUM\",\"MEMBER\",\"MEMORY_OPTIMIZED\",\"MEMORY_OPTIMIZED_DATA\",\"MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT\",\"MEMORY_PARTITION_MODE\",\"MERGE\",\"MESSAGE\",\"MESSAGE_FORWARD_SIZE\",\"MESSAGE_FORWARDING\",\"MICROSECOND\",\"MILLISECOND\",\"MIN_CPU_PERCENT\",\"MIN_IOPS_PER_VOLUME\",\"MIN_MEMORY_PERCENT\",\"MINUTE\",\"MINUTES\",\"MINVALUE\",\"MIRROR\",\"MIRROR_ADDRESS\",\"MODIFY\",\"MONEY\",\"MONTH\",\"MOVE\",\"MULTI_USER\",\"MUST_CHANGE\",\"NAME\",\"NANOSECOND\",\"NATIONAL\",\"NATIVE_COMPILATION\",\"NCHAR\",\"NEGOTIATE\",\"NESTED_TRIGGERS\",\"NEW_ACCOUNT\",\"NEW_BROKER\",\"NEW_PASSWORD\",\"NEWNAME\",\"NEXT\",\"NO\",\"NO_BROWSETABLE\",\"NO_CHECKSUM\",\"NO_COMPRESSION\",\"NO_EVENT_LOSS\",\"NO_INFOMSGS\",\"NO_TRUNCATE\",\"NO_WAIT\",\"NOCHECK\",\"NOCOUNT\",\"NOEXEC\",\"NOEXPAND\",\"NOFORMAT\",\"NOINDEX\",\"NOINIT\",\"NOLOCK\",\"NON\",\"NON_TRANSACTED_ACCESS\",\"NONCLUSTERED\",\"NONE\",\"NORECOMPUTE\",\"NORECOVERY\",\"NORESEED\",\"NORESET\",\"NOREWIND\",\"NORMAL\",\"NOSKIP\",\"NOTIFICATION\",\"NOTRUNCATE\",\"NOUNLOAD\",\"NOWAIT\",\"NTEXT\",\"NTLM\",\"NUMANODE\",\"NUMERIC\",\"NUMERIC_ROUNDABORT\",\"NVARCHAR\",\"OBJECT\",\"OF\",\"OFF\",\"OFFLINE\",\"OFFSET\",\"OFFSETS\",\"OLD_ACCOUNT\",\"OLD_PASSWORD\",\"ON\",\"ON_FAILURE\",\"ONLINE\",\"ONLY\",\"OPEN\",\"OPEN_EXISTING\",\"OPENTRAN\",\"OPTIMISTIC\",\"OPTIMIZE\",\"OPTION\",\"ORDER\",\"OUT\",\"OUTPUT\",\"OUTPUTBUFFER\",\"OVER\",\"OVERRIDE\",\"OWNER\",\"OWNERSHIP\",\"PAD_INDEX\",\"PAGE\",\"PAGE_VERIFY\",\"PAGECOUNT\",\"PAGLOCK\",\"PARAMETERIZATION\",\"PARSEONLY\",\"PARTIAL\",\"PARTITION\",\"PARTITIONS\",\"PARTNER\",\"PASSWORD\",\"PATH\",\"PER_CPU\",\"PER_NODE\",\"PERCENT\",\"PERMISSION_SET\",\"PERSISTED\",\"PHYSICAL_ONLY\",\"PLAN\",\"POISON_MESSAGE_HANDLING\",\"POOL\",\"POPULATION\",\"PORT\",\"PRECEDING\",\"PRECISION\",\"PRIMARY\",\"PRIMARY_ROLE\",\"PRINT\",\"PRIOR\",\"PRIORITY\",\"PRIORITY_LEVEL\",\"PRIVATE\",\"PRIVILEGES\",\"PROC\",\"PROCCACHE\",\"PROCEDURE\",\"PROCEDURE_NAME\",\"PROCESS\",\"PROFILE\",\"PROPERTY\",\"PROPERTY_DESCRIPTION\",\"PROPERTY_INT_ID\",\"PROPERTY_SET_GUID\",\"PROVIDER\",\"PROVIDER_KEY_NAME\",\"PUBLIC\",\"PUT\",\"QUARTER\",\"QUERY\",\"QUERY_GOVERNOR_COST_LIMIT\",\"QUEUE\",\"QUEUE_DELAY\",\"QUOTED_IDENTIFIER\",\"RAISERROR\",\"RANGE\",\"RAW\",\"RC2\",\"RC4\",\"RC4_128\",\"READ\",\"READ_COMMITTED_SNAPSHOT\",\"READ_ONLY\",\"READ_ONLY_ROUTING_LIST\",\"READ_ONLY_ROUTING_URL\",\"READ_WRITE\",\"READ_WRITE_FILEGROUPS\",\"READCOMMITTED\",\"READCOMMITTEDLOCK\",\"READONLY\",\"READPAST\",\"READTEXT\",\"READUNCOMMITTED\",\"READWRITE\",\"REAL\",\"REBUILD\",\"RECEIVE\",\"RECOMPILE\",\"RECONFIGURE\",\"RECOVERY\",\"RECURSIVE\",\"RECURSIVE_TRIGGERS\",\"REFERENCES\",\"REGENERATE\",\"RELATED_CONVERSATION\",\"RELATED_CONVERSATION_GROUP\",\"RELATIVE\",\"REMOTE\",\"REMOTE_PROC_TRANSACTIONS\",\"REMOTE_SERVICE_NAME\",\"REMOVE\",\"REORGANIZE\",\"REPAIR_ALLOW_DATA_LOSS\",\"REPAIR_FAST\",\"REPAIR_REBUILD\",\"REPEATABLE\",\"REPEATABLEREAD\",\"REPLICA\",\"REPLICATION\",\"REQUEST_MAX_CPU_TIME_SEC\",\"REQUEST_MAX_MEMORY_GRANT_PERCENT\",\"REQUEST_MEMORY_GRANT_TIMEOUT_SEC\",\"REQUIRED\",\"RESAMPLE\",\"RESEED\",\"RESERVE_DISK_SPACE\",\"RESET\",\"RESOURCE\",\"RESTART\",\"RESTORE\",\"RESTRICT\",\"RESTRICTED_USER\",\"RESULT\",\"RESUME\",\"RETAINDAYS\",\"RETENTION\",\"RETURN\",\"RETURNS\",\"REVERT\",\"REVOKE\",\"REWIND\",\"REWINDONLY\",\"ROBUST\",\"ROLE\",\"ROLLBACK\",\"ROLLUP\",\"ROOT\",\"ROUTE\",\"ROW\",\"ROWCOUNT\",\"ROWGUIDCOL\",\"ROWLOCK\",\"ROWS\",\"ROWS_PER_BATCH\",\"ROWTERMINATOR\",\"ROWVERSION\",\"RSA_1024\",\"RSA_2048\",\"RSA_512\",\"RULE\",\"SAFE\",\"SAFETY\",\"SAMPLE\",\"SAVE\",\"SCHEDULER\",\"SCHEMA\",\"SCHEMA_AND_DATA\",\"SCHEMA_ONLY\",\"SCHEMABINDING\",\"SCHEME\",\"SCROLL\",\"SCROLL_LOCKS\",\"SEARCH\",\"SECOND\",\"SECONDARY\",\"SECONDARY_ONLY\",\"SECONDARY_ROLE\",\"SECONDS\",\"SECRET\",\"SECURITY_LOG\",\"SECURITYAUDIT\",\"SELECT\",\"SELECTIVE\",\"SELF\",\"SEND\",\"SENT\",\"SEQUENCE\",\"SERIALIZABLE\",\"SERVER\",\"SERVICE\",\"SERVICE_BROKER\",\"SERVICE_NAME\",\"SESSION\",\"SESSION_TIMEOUT\",\"SET\",\"SETS\",\"SETUSER\",\"SHOW_STATISTICS\",\"SHOWCONTIG\",\"SHOWPLAN\",\"SHOWPLAN_ALL\",\"SHOWPLAN_TEXT\",\"SHOWPLAN_XML\",\"SHRINKDATABASE\",\"SHRINKFILE\",\"SHUTDOWN\",\"SID\",\"SIGNATURE\",\"SIMPLE\",\"SINGLE_BLOB\",\"SINGLE_CLOB\",\"SINGLE_NCLOB\",\"SINGLE_USER\",\"SINGLETON\",\"SIZE\",\"SKIP\",\"SMALLDATETIME\",\"SMALLINT\",\"SMALLMONEY\",\"SNAPSHOT\",\"SORT_IN_TEMPDB\",\"SOURCE\",\"SPARSE\",\"SPATIAL\",\"SPATIAL_WINDOW_MAX_CELLS\",\"SPECIFICATION\",\"SPLIT\",\"SQL\",\"SQL_VARIANT\",\"SQLPERF\",\"STANDBY\",\"START\",\"START_DATE\",\"STARTED\",\"STARTUP_STATE\",\"STAT_HEADER\",\"STATE\",\"STATEMENT\",\"STATIC\",\"STATISTICAL_SEMANTICS\",\"STATISTICS\",\"STATISTICS_INCREMENTAL\",\"STATISTICS_NORECOMPUTE\",\"STATS\",\"STATS_STREAM\",\"STATUS\",\"STATUSONLY\",\"STOP\",\"STOP_ON_ERROR\",\"STOPAT\",\"STOPATMARK\",\"STOPBEFOREMARK\",\"STOPLIST\",\"STOPPED\",\"SUBJECT\",\"SUBSCRIPTION\",\"SUPPORTED\",\"SUSPEND\",\"SWITCH\",\"SYMMETRIC\",\"SYNCHRONOUS_COMMIT\",\"SYNONYM\",\"SYSNAME\",\"SYSTEM\",\"TABLE\",\"TABLERESULTS\",\"TABLESAMPLE\",\"TABLOCK\",\"TABLOCKX\",\"TAKE\",\"TAPE\",\"TARGET\",\"TARGET_RECOVERY_TIME\",\"TB\",\"TCP\",\"TEXT\",\"TEXTIMAGE_ON\",\"TEXTSIZE\",\"THEN\",\"THESAURUS\",\"THROW\",\"TIES\",\"TIME\",\"TIMEOUT\",\"TIMER\",\"TIMESTAMP\",\"TINYINT\",\"TO\",\"TOP\",\"TORN_PAGE_DETECTION\",\"TRACEOFF\",\"TRACEON\",\"TRACESTATUS\",\"TRACK_CAUSALITY\",\"TRACK_COLUMNS_UPDATED\",\"TRAN\",\"TRANSACTION\",\"TRANSFER\",\"TRANSFORM_NOISE_WORDS\",\"TRIGGER\",\"TRIPLE_DES\",\"TRIPLE_DES_3KEY\",\"TRUE\",\"TRUNCATE\",\"TRUNCATEONLY\",\"TRUSTWORTHY\",\"TRY\",\"TSQL\",\"TWO_DIGIT_YEAR_CUTOFF\",\"TYPE\",\"TYPE_WARNING\",\"UNBOUNDED\",\"UNCHECKED\",\"UNCOMMITTED\",\"UNDEFINED\",\"UNIQUE\",\"UNIQUEIDENTIFIER\",\"UNKNOWN\",\"UNLIMITED\",\"UNLOAD\",\"UNSAFE\",\"UPDATE\",\"UPDATETEXT\",\"UPDATEUSAGE\",\"UPDLOCK\",\"URL\",\"USE\",\"USED\",\"USER\",\"USEROPTIONS\",\"USING\",\"VALID_XML\",\"VALIDATION\",\"VALUE\",\"VALUES\",\"VARBINARY\",\"VARCHAR\",\"VARYING\",\"VERIFYONLY\",\"VERSION\",\"VIEW\",\"VIEW_METADATA\",\"VIEWS\",\"VISIBILITY\",\"WAIT_AT_LOW_PRIORITY\",\"WAITFOR\",\"WEEK\",\"WEIGHT\",\"WELL_FORMED_XML\",\"WHEN\",\"WHERE\",\"WHILE\",\"WINDOWS\",\"WITH\",\"WITHIN\",\"WITHOUT\",\"WITNESS\",\"WORK\",\"WORKLOAD\",\"WRITETEXT\",\"XACT_ABORT\",\"XLOCK\",\"XMAX\",\"XMIN\",\"XML\",\"XMLDATA\",\"XMLNAMESPACES\",\"XMLSCHEMA\",\"XQUERY\",\"XSINIL\",\"YEAR\",\"YMAX\",\"YMIN\"],operators:[\"ALL\",\"AND\",\"ANY\",\"BETWEEN\",\"EXISTS\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"SOME\",\"EXCEPT\",\"INTERSECT\",\"UNION\",\"APPLY\",\"CROSS\",\"FULL\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\",\"CONTAINS\",\"FREETEXT\",\"IS\",\"NULL\",\"PIVOT\",\"UNPIVOT\",\"MATCHED\"],builtinFunctions:[\"AVG\",\"CHECKSUM_AGG\",\"COUNT\",\"COUNT_BIG\",\"GROUPING\",\"GROUPING_ID\",\"MAX\",\"MIN\",\"SUM\",\"STDEV\",\"STDEVP\",\"VAR\",\"VARP\",\"CUME_DIST\",\"FIRST_VALUE\",\"LAG\",\"LAST_VALUE\",\"LEAD\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"PERCENT_RANK\",\"COLLATE\",\"COLLATIONPROPERTY\",\"TERTIARY_WEIGHTS\",\"FEDERATION_FILTERING_VALUE\",\"CAST\",\"CONVERT\",\"PARSE\",\"TRY_CAST\",\"TRY_CONVERT\",\"TRY_PARSE\",\"ASYMKEY_ID\",\"ASYMKEYPROPERTY\",\"CERTPROPERTY\",\"CERT_ID\",\"CRYPT_GEN_RANDOM\",\"DECRYPTBYASYMKEY\",\"DECRYPTBYCERT\",\"DECRYPTBYKEY\",\"DECRYPTBYKEYAUTOASYMKEY\",\"DECRYPTBYKEYAUTOCERT\",\"DECRYPTBYPASSPHRASE\",\"ENCRYPTBYASYMKEY\",\"ENCRYPTBYCERT\",\"ENCRYPTBYKEY\",\"ENCRYPTBYPASSPHRASE\",\"HASHBYTES\",\"IS_OBJECTSIGNED\",\"KEY_GUID\",\"KEY_ID\",\"KEY_NAME\",\"SIGNBYASYMKEY\",\"SIGNBYCERT\",\"SYMKEYPROPERTY\",\"VERIFYSIGNEDBYCERT\",\"VERIFYSIGNEDBYASYMKEY\",\"CURSOR_STATUS\",\"DATALENGTH\",\"IDENT_CURRENT\",\"IDENT_INCR\",\"IDENT_SEED\",\"IDENTITY\",\"SQL_VARIANT_PROPERTY\",\"CURRENT_TIMESTAMP\",\"DATEADD\",\"DATEDIFF\",\"DATEFROMPARTS\",\"DATENAME\",\"DATEPART\",\"DATETIME2FROMPARTS\",\"DATETIMEFROMPARTS\",\"DATETIMEOFFSETFROMPARTS\",\"DAY\",\"EOMONTH\",\"GETDATE\",\"GETUTCDATE\",\"ISDATE\",\"MONTH\",\"SMALLDATETIMEFROMPARTS\",\"SWITCHOFFSET\",\"SYSDATETIME\",\"SYSDATETIMEOFFSET\",\"SYSUTCDATETIME\",\"TIMEFROMPARTS\",\"TODATETIMEOFFSET\",\"YEAR\",\"CHOOSE\",\"COALESCE\",\"IIF\",\"NULLIF\",\"ABS\",\"ACOS\",\"ASIN\",\"ATAN\",\"ATN2\",\"CEILING\",\"COS\",\"COT\",\"DEGREES\",\"EXP\",\"FLOOR\",\"LOG\",\"LOG10\",\"PI\",\"POWER\",\"RADIANS\",\"RAND\",\"ROUND\",\"SIGN\",\"SIN\",\"SQRT\",\"SQUARE\",\"TAN\",\"APP_NAME\",\"APPLOCK_MODE\",\"APPLOCK_TEST\",\"ASSEMBLYPROPERTY\",\"COL_LENGTH\",\"COL_NAME\",\"COLUMNPROPERTY\",\"DATABASE_PRINCIPAL_ID\",\"DATABASEPROPERTYEX\",\"DB_ID\",\"DB_NAME\",\"FILE_ID\",\"FILE_IDEX\",\"FILE_NAME\",\"FILEGROUP_ID\",\"FILEGROUP_NAME\",\"FILEGROUPPROPERTY\",\"FILEPROPERTY\",\"FULLTEXTCATALOGPROPERTY\",\"FULLTEXTSERVICEPROPERTY\",\"INDEX_COL\",\"INDEXKEY_PROPERTY\",\"INDEXPROPERTY\",\"OBJECT_DEFINITION\",\"OBJECT_ID\",\"OBJECT_NAME\",\"OBJECT_SCHEMA_NAME\",\"OBJECTPROPERTY\",\"OBJECTPROPERTYEX\",\"ORIGINAL_DB_NAME\",\"PARSENAME\",\"SCHEMA_ID\",\"SCHEMA_NAME\",\"SCOPE_IDENTITY\",\"SERVERPROPERTY\",\"STATS_DATE\",\"TYPE_ID\",\"TYPE_NAME\",\"TYPEPROPERTY\",\"DENSE_RANK\",\"NTILE\",\"RANK\",\"ROW_NUMBER\",\"PUBLISHINGSERVERNAME\",\"OPENDATASOURCE\",\"OPENQUERY\",\"OPENROWSET\",\"OPENXML\",\"CERTENCODED\",\"CERTPRIVATEKEY\",\"CURRENT_USER\",\"HAS_DBACCESS\",\"HAS_PERMS_BY_NAME\",\"IS_MEMBER\",\"IS_ROLEMEMBER\",\"IS_SRVROLEMEMBER\",\"LOGINPROPERTY\",\"ORIGINAL_LOGIN\",\"PERMISSIONS\",\"PWDENCRYPT\",\"PWDCOMPARE\",\"SESSION_USER\",\"SESSIONPROPERTY\",\"SUSER_ID\",\"SUSER_NAME\",\"SUSER_SID\",\"SUSER_SNAME\",\"SYSTEM_USER\",\"USER\",\"USER_ID\",\"USER_NAME\",\"ASCII\",\"CHAR\",\"CHARINDEX\",\"CONCAT\",\"DIFFERENCE\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"LTRIM\",\"NCHAR\",\"PATINDEX\",\"QUOTENAME\",\"REPLACE\",\"REPLICATE\",\"REVERSE\",\"RIGHT\",\"RTRIM\",\"SOUNDEX\",\"SPACE\",\"STR\",\"STUFF\",\"SUBSTRING\",\"UNICODE\",\"UPPER\",\"BINARY_CHECKSUM\",\"CHECKSUM\",\"CONNECTIONPROPERTY\",\"CONTEXT_INFO\",\"CURRENT_REQUEST_ID\",\"ERROR_LINE\",\"ERROR_NUMBER\",\"ERROR_MESSAGE\",\"ERROR_PROCEDURE\",\"ERROR_SEVERITY\",\"ERROR_STATE\",\"FORMATMESSAGE\",\"GETANSINULL\",\"GET_FILESTREAM_TRANSACTION_CONTEXT\",\"HOST_ID\",\"HOST_NAME\",\"ISNULL\",\"ISNUMERIC\",\"MIN_ACTIVE_ROWVERSION\",\"NEWID\",\"NEWSEQUENTIALID\",\"ROWCOUNT_BIG\",\"XACT_STATE\",\"TEXTPTR\",\"TEXTVALID\",\"COLUMNS_UPDATED\",\"EVENTDATA\",\"TRIGGER_NESTLEVEL\",\"UPDATE\",\"CHANGETABLE\",\"CHANGE_TRACKING_CONTEXT\",\"CHANGE_TRACKING_CURRENT_VERSION\",\"CHANGE_TRACKING_IS_COLUMN_IN_MASK\",\"CHANGE_TRACKING_MIN_VALID_VERSION\",\"CONTAINSTABLE\",\"FREETEXTTABLE\",\"SEMANTICKEYPHRASETABLE\",\"SEMANTICSIMILARITYDETAILSTABLE\",\"SEMANTICSIMILARITYTABLE\",\"FILETABLEROOTPATH\",\"GETFILENAMESPACEPATH\",\"GETPATHLOCATOR\",\"PATHNAME\",\"GET_TRANSMISSION_STATUS\"],builtinVariables:[\"@@DATEFIRST\",\"@@DBTS\",\"@@LANGID\",\"@@LANGUAGE\",\"@@LOCK_TIMEOUT\",\"@@MAX_CONNECTIONS\",\"@@MAX_PRECISION\",\"@@NESTLEVEL\",\"@@OPTIONS\",\"@@REMSERVER\",\"@@SERVERNAME\",\"@@SERVICENAME\",\"@@SPID\",\"@@TEXTSIZE\",\"@@VERSION\",\"@@CURSOR_ROWS\",\"@@FETCH_STATUS\",\"@@DATEFIRST\",\"@@PROCID\",\"@@ERROR\",\"@@IDENTITY\",\"@@ROWCOUNT\",\"@@TRANCOUNT\",\"@@CONNECTIONS\",\"@@CPU_BUSY\",\"@@IDLE\",\"@@IO_BUSY\",\"@@PACKET_ERRORS\",\"@@PACK_RECEIVED\",\"@@PACK_SENT\",\"@@TIMETICKS\",\"@@TOTAL_ERRORS\",\"@@TOTAL_READ\",\"@@TOTAL_WRITE\"],pseudoColumns:[\"$ACTION\",\"$IDENTITY\",\"$ROWGUID\",\"$PARTITION\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N'/,{token:\"string\",next:\"@string\"}],[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[[/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i,\"keyword\"],[/BEGIN\\s+TRY\\b/i,{token:\"keyword.try\"}],[/END\\s+TRY\\b/i,{token:\"keyword.try\"}],[/BEGIN\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/END\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/(BEGIN|CASE)\\b/i,{token:\"keyword.block\"}],[/END\\b/i,{token:\"keyword.block\"}],[/WHEN\\b/i,{token:\"keyword.choice\"}],[/THEN\\b/i,{token:\"keyword.choice\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/st/st.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/st/st\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"var\",\"end_var\"],[\"var_input\",\"end_var\"],[\"var_output\",\"end_var\"],[\"var_in_out\",\"end_var\"],[\"var_temp\",\"end_var\"],[\"var_global\",\"end_var\"],[\"var_access\",\"end_var\"],[\"var_external\",\"end_var\"],[\"type\",\"end_type\"],[\"struct\",\"end_struct\"],[\"program\",\"end_program\"],[\"function\",\"end_function\"],[\"function_block\",\"end_function_block\"],[\"action\",\"end_action\"],[\"step\",\"end_step\"],[\"initial_step\",\"end_step\"],[\"transaction\",\"end_transaction\"],[\"configuration\",\"end_configuration\"],[\"tcp\",\"end_tcp\"],[\"recource\",\"end_recource\"],[\"channel\",\"end_channel\"],[\"library\",\"end_library\"],[\"folder\",\"end_folder\"],[\"binaries\",\"end_binaries\"],[\"includes\",\"end_includes\"],[\"sources\",\"end_sources\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"/*\",close:\"*/\"},{open:\"'\",close:\"'\",notIn:[\"string_sq\"]},{open:'\"',close:'\"',notIn:[\"string_dq\"]},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"var\",close:\"end_var\"},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".st\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"end_if\",\"elsif\",\"else\",\"case\",\"of\",\"to\",\"__try\",\"__catch\",\"__finally\",\"do\",\"with\",\"by\",\"while\",\"repeat\",\"end_while\",\"end_repeat\",\"end_case\",\"for\",\"end_for\",\"task\",\"retain\",\"non_retain\",\"constant\",\"with\",\"at\",\"exit\",\"return\",\"interval\",\"priority\",\"address\",\"port\",\"on_channel\",\"then\",\"iec\",\"file\",\"uses\",\"version\",\"packagetype\",\"displayname\",\"copyright\",\"summary\",\"vendor\",\"common_source\",\"from\",\"extends\"],constant:[\"false\",\"true\",\"null\"],defineKeywords:[\"var\",\"var_input\",\"var_output\",\"var_in_out\",\"var_temp\",\"var_global\",\"var_access\",\"var_external\",\"end_var\",\"type\",\"end_type\",\"struct\",\"end_struct\",\"program\",\"end_program\",\"function\",\"end_function\",\"function_block\",\"end_function_block\",\"interface\",\"end_interface\",\"method\",\"end_method\",\"property\",\"end_property\",\"namespace\",\"end_namespace\",\"configuration\",\"end_configuration\",\"tcp\",\"end_tcp\",\"resource\",\"end_resource\",\"channel\",\"end_channel\",\"library\",\"end_library\",\"folder\",\"end_folder\",\"binaries\",\"end_binaries\",\"includes\",\"end_includes\",\"sources\",\"end_sources\",\"action\",\"end_action\",\"step\",\"initial_step\",\"end_step\",\"transaction\",\"end_transaction\"],typeKeywords:[\"int\",\"sint\",\"dint\",\"lint\",\"usint\",\"uint\",\"udint\",\"ulint\",\"real\",\"lreal\",\"time\",\"date\",\"time_of_day\",\"date_and_time\",\"string\",\"bool\",\"byte\",\"word\",\"dword\",\"array\",\"pointer\",\"lword\"],operators:[\"=\",\">\",\"<\",\":\",\":=\",\"<=\",\">=\",\"<>\",\"&\",\"+\",\"-\",\"*\",\"**\",\"MOD\",\"^\",\"or\",\"and\",\"not\",\"xor\",\"abs\",\"acos\",\"asin\",\"atan\",\"cos\",\"exp\",\"expt\",\"ln\",\"log\",\"sin\",\"sqrt\",\"tan\",\"sel\",\"max\",\"min\",\"limit\",\"mux\",\"shl\",\"shr\",\"rol\",\"ror\",\"indexof\",\"sizeof\",\"adr\",\"adrinst\",\"bitadr\",\"is_valid\",\"ref\",\"ref_to\"],builtinVariables:[],builtinFunctions:[\"sr\",\"rs\",\"tp\",\"ton\",\"tof\",\"eq\",\"ge\",\"le\",\"lt\",\"ne\",\"round\",\"trunc\",\"ctd\",\"сtu\",\"ctud\",\"r_trig\",\"f_trig\",\"move\",\"concat\",\"delete\",\"find\",\"insert\",\"left\",\"len\",\"replace\",\"right\",\"rtc\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/(\\.\\.)/,\"delimiter\"],[/\\b(16#[0-9A-Fa-f\\_]*)+\\b/,\"number.hex\"],[/\\b(2#[01\\_]+)+\\b/,\"number.binary\"],[/\\b(8#[0-9\\_]*)+\\b/,\"number.octal\"],[/\\b\\d*\\.\\d+([eE][\\-+]?\\d+)?\\b/,\"number.float\"],[/\\b(L?REAL)#[0-9\\_\\.e]+\\b/,\"number.float\"],[/\\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\\_]+\\b/,\"number\"],[/\\d+/,\"number\"],[/\\b(T|DT|TOD)#[0-9:-_shmyd]+\\b/,\"tag\"],[/\\%(I|Q|M)(X|B|W|D|L)[0-9\\.]+/,\"tag\"],[/\\%(I|Q|M)[0-9\\.]*/,\"tag\"],[/\\b[A-Za-z]{1,6}#[0-9]+\\b/,\"tag\"],[/\\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\\b/,\"predefined\"],[/\\b[A_Za-z]+(_TO_)[A_Za-z]+\\b/,\"predefined\"],[/[;]/,\"delimiter\"],[/[.]/,{token:\"delimiter\",next:\"@params\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@operators\":\"operators\",\"@keywords\":\"keyword\",\"@typeKeywords\":\"type\",\"@defineKeywords\":\"variable\",\"@constant\":\"constant\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_dq\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_sq\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],params:[[/\\b[A-Za-z0-9_]+\\b(?=\\()/,{token:\"identifier\",next:\"@pop\"}],[/\\b[A-Za-z0-9_]+\\b/,\"variable.name\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],comment2:[[/[^\\(*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[\"\\\\*\\\\)\",\"comment\",\"@pop\"],[/[\\(*]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\(\\*/,\"comment\",\"@comment2\"]],string_dq:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],string_sq:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/swift/swift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n/*!---------------------------------------------------------------------------------------------\n *  Copyright (C) David Owens II, owensd.io. All rights reserved.\n *--------------------------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/swift/swift\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},t.language={defaultToken:\"\",tokenPostfix:\".swift\",identifier:/[a-zA-Z_][\\w$]*/,attributes:[\"@autoclosure\",\"@noescape\",\"@noreturn\",\"@NSApplicationMain\",\"@NSCopying\",\"@NSManaged\",\"@objc\",\"@UIApplicationMain\",\"@noreturn\",\"@availability\",\"@IBAction\",\"@IBDesignable\",\"@IBInspectable\",\"@IBOutlet\"],accessmodifiers:[\"public\",\"private\",\"internal\"],keywords:[\"__COLUMN__\",\"__FILE__\",\"__FUNCTION__\",\"__LINE__\",\"as\",\"as!\",\"as?\",\"associativity\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"convenience\",\"default\",\"deinit\",\"didSet\",\"do\",\"dynamic\",\"dynamicType\",\"else\",\"enum\",\"extension\",\"fallthrough\",\"final\",\"for\",\"func\",\"get\",\"guard\",\"if\",\"import\",\"in\",\"infix\",\"init\",\"inout\",\"internal\",\"is\",\"lazy\",\"left\",\"let\",\"mutating\",\"nil\",\"none\",\"nonmutating\",\"operator\",\"optional\",\"override\",\"postfix\",\"precedence\",\"prefix\",\"private\",\"protocol\",\"Protocol\",\"public\",\"repeat\",\"required\",\"return\",\"right\",\"self\",\"Self\",\"set\",\"static\",\"struct\",\"subscript\",\"super\",\"switch\",\"throw\",\"throws\",\"try\",\"try!\",\"Type\",\"typealias\",\"unowned\",\"var\",\"weak\",\"where\",\"while\",\"willSet\",\"FALSE\",\"TRUE\"],symbols:/[=(){}\\[\\].,:;@#\\_&\\-<>`?!+*\\\\\\/]/,operatorstart:/[\\/=\\-+!*%<>&|^~?\\u00A1-\\u00A7\\u00A9\\u00AB\\u00AC\\u00AE\\u00B0-\\u00B1\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7\\u2016-\\u2017\\u2020-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u23FF\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3030]/,operatorend:/[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uE0100-\\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},{include:\"@attribute\"},{include:\"@literal\"},{include:\"@keyword\"},{include:\"@invokedmethod\"},{include:\"@symbol\"}],whitespace:[[/\\s+/,\"white\"],[/\"\"\"/,\"string.quote\",\"@endDblDocString\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string.quote\",\"@popall\"],[/\"/,\"string\"]],symbol:[[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/[.]/,\"delimiter\"],[/@operators/,\"operator\"],[/@symbols/,\"operator\"]],comment:[[/\\/\\/\\/.*$/,\"comment.doc\"],[/\\/\\*\\*/,\"comment.doc\",\"@commentdocbody\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@commentbody\"]],commentdocbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/\\:[a-zA-Z]+\\:/,\"comment.doc.param\"],[/./,\"comment.doc\"]],commentbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment\",\"@pop\"],[/./,\"comment\"]],attribute:[[/\\@@identifier/,{cases:{\"@attributes\":\"keyword.control\",\"@default\":\"\"}}]],literal:[[/\"/,{token:\"string.quote\",next:\"@stringlit\"}],[/0[b]([01]_?)+/,\"number.binary\"],[/0[o]([0-7]_?)+/,\"number.octal\"],[/0[x]([0-9a-fA-F]_?)+([pP][\\-+](\\d_?)+)?/,\"number.hex\"],[/(\\d_?)*\\.(\\d_?)+([eE][\\-+]?(\\d_?)+)?/,\"number.float\"],[/(\\d_?)+/,\"number\"]],stringlit:[[/\\\\\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/@escapes/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}],[/./,\"string\"]],interpolatedexpression:[[/\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/\\)/,{token:\"operator\",next:\"@pop\"}],{include:\"@literal\"},{include:\"@keyword\"},{include:\"@symbol\"}],keyword:[[/`/,{token:\"operator\",next:\"@escapedkeyword\"}],[/@identifier/,{cases:{\"@keywords\":\"keyword\",\"[A-Z][a-zA-Z0-9$]*\":\"type.identifier\",\"@default\":\"identifier\"}}]],escapedkeyword:[[/`/,{token:\"operator\",next:\"@pop\"}],[/./,\"identifier\"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:[\"delimeter\",\"type.identifier\"],\"@default\":\"\"}}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/tcl/tcl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/tcl/tcl\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},t.language={tokenPostfix:\".tcl\",specialFunctions:[\"set\",\"unset\",\"rename\",\"variable\",\"proc\",\"coroutine\",\"foreach\",\"incr\",\"append\",\"lappend\",\"linsert\",\"lreplace\"],mainFunctions:[\"if\",\"then\",\"elseif\",\"else\",\"case\",\"switch\",\"while\",\"for\",\"break\",\"continue\",\"return\",\"package\",\"namespace\",\"catch\",\"exit\",\"eval\",\"expr\",\"uplevel\",\"upvar\"],builtinFunctions:[\"file\",\"info\",\"concat\",\"join\",\"lindex\",\"list\",\"llength\",\"lrange\",\"lsearch\",\"lsort\",\"split\",\"array\",\"parray\",\"binary\",\"format\",\"regexp\",\"regsub\",\"scan\",\"string\",\"subst\",\"dict\",\"cd\",\"clock\",\"exec\",\"glob\",\"pid\",\"pwd\",\"close\",\"eof\",\"fblocked\",\"fconfigure\",\"fcopy\",\"fileevent\",\"flush\",\"gets\",\"open\",\"puts\",\"read\",\"seek\",\"socket\",\"tell\",\"interp\",\"after\",\"auto_execok\",\"auto_load\",\"auto_mkindex\",\"auto_reset\",\"bgerror\",\"error\",\"global\",\"history\",\"load\",\"source\",\"time\",\"trace\",\"unknown\",\"unset\",\"update\",\"vwait\",\"winfo\",\"wm\",\"bind\",\"event\",\"pack\",\"place\",\"grid\",\"font\",\"bell\",\"clipboard\",\"destroy\",\"focus\",\"grab\",\"lower\",\"option\",\"raise\",\"selection\",\"send\",\"tk\",\"tkwait\",\"tk_bisque\",\"tk_focusNext\",\"tk_focusPrev\",\"tk_focusFollowsMouse\",\"tk_popup\",\"tk_setPalette\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],escapes:/\\\\(?:[abfnrtv\\\\\"'\\[\\]\\{\\};\\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\\$+(?:(?:\\:\\:?)?[a-zA-Z_]\\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@specialFunctions\":{token:\"keyword.flow\",next:\"@specialFunc\"},\"@mainFunctions\":\"keyword\",\"@builtinFunctions\":\"variable\",\"@default\":\"operator.scss\"}}],[/\\s+\\-+(?!\\d|\\.)\\w*|{\\*}/,\"metatag\"],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"operator\"],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/\\.(?!\\d|\\.)[\\w\\-]*/,\"operator.sql\"],[/\\d+(\\.\\d+)?/,\"number\"],[/\\d+/,\"number\"],[/;/,\"delimiter\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@dstring\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@sstring\"}]],dstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],sstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]']+/,\"string\"],[/@escapes/,\"string.escape\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#.*\\\\$/,{token:\"comment\",next:\"@newlineComment\"}],[/#.*(?!\\\\)$/,\"comment\"]],newlineComment:[[/.*\\\\$/,\"comment\"],[/.*(?!\\\\)$/,{token:\"comment\",next:\"@pop\"}]],nestedVariable:[[/[^\\{\\}\\$]+/,\"type.identifier\"],[/\\}/,{token:\"identifier\",next:\"@pop\"}]],nestedCall:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\]/,{token:\"@brackets\",next:\"@pop\"}],{include:\"root\"}],specialFunc:[[/\"/,{token:\"string\",next:\"@dstring\"}],[/'/,{token:\"string\",next:\"@sstring\"}],[/\\S+/,{token:\"type\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/twig/twig.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/twig/twig\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{#\",\"#}\"]},brackets:[[\"{#\",\"#}\"],[\"{%\",\"%}\"],[\"{{\",\"}}\"],[\"(\",\")\"],[\"[\",\"]\"],[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{# \",close:\" #}\"},{open:\"{% \",close:\" %}\"},{open:\"{{ \",close:\" }}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}]},e.language={defaultToken:\"\",tokenPostfix:\"\",ignoreCase:!0,keywords:[\"apply\",\"autoescape\",\"block\",\"deprecated\",\"do\",\"embed\",\"extends\",\"flush\",\"for\",\"from\",\"if\",\"import\",\"include\",\"macro\",\"sandbox\",\"set\",\"use\",\"verbatim\",\"with\",\"endapply\",\"endautoescape\",\"endblock\",\"endembed\",\"endfor\",\"endif\",\"endmacro\",\"endsandbox\",\"endset\",\"endwith\",\"true\",\"false\"],tokenizer:{root:[[/\\s+/],[/{#/,\"comment.twig\",\"@commentState\"],[/{%[-~]?/,\"delimiter.twig\",\"@blockState\"],[/{{[-~]?/,\"delimiter.twig\",\"@variableState\"],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<]+/]],commentState:[[/#}/,\"comment.twig\",\"@pop\"],[/./,\"comment.twig\"]],blockState:[[/[-~]?%}/,\"delimiter.twig\",\"@pop\"],[/\\s+/],[/(verbatim)(\\s*)([-~]?%})/,[\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@rawDataState\"}]],{include:\"expression\"}],rawDataState:[[/({%[-~]?)(\\s*)(endverbatim)(\\s*)([-~]?%})/,[\"delimiter.twig\",\"\",\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@popall\"}]],[/./,\"string.twig\"]],variableState:[[/[-~]?}}/,\"delimiter.twig\",\"@pop\"],{include:\"expression\"}],stringState:[[/\"/,\"string.twig\",\"@pop\"],[/#{\\s*/,\"string.twig\",\"@interpolationState\"],[/[^#\"\\\\]*(?:(?:\\\\.|#(?!\\{))[^#\"\\\\]*)*/,\"string.twig\"]],interpolationState:[[/}/,\"string.twig\",\"@pop\"],{include:\"expression\"}],expression:[[/\\s+/],[/\\+|-|\\/{1,2}|%|\\*{1,2}/,\"operators.twig\"],[/(and|or|not|b-and|b-xor|b-or)(\\s+)/,[\"operators.twig\",\"\"]],[/==|!=|<|>|>=|<=/,\"operators.twig\"],[/(starts with|ends with|matches)(\\s+)/,[\"operators.twig\",\"\"]],[/(in)(\\s+)/,[\"operators.twig\",\"\"]],[/(is)(\\s+)/,[\"operators.twig\",\"\"]],[/\\||~|:|\\.{1,2}|\\?{1,2}/,\"operators.twig\"],[/[^\\W\\d][\\w]*/,{cases:{\"@keywords\":\"keyword.twig\",\"@default\":\"variable.twig\"}}],[/\\d+(\\.\\d+)?/,\"number.twig\"],[/\\(|\\)|\\[|\\]|{|}|,/,\"delimiter.twig\"],[/\"([^#\"\\\\]*(?:\\\\.[^#\"\\\\]*)*)\"|\\'([^\\'\\\\]*(?:\\\\.[^\\'\\\\]*)*)\\'/,\"string.twig\"],[/\"/,\"string.twig\",\"@stringState\"],[/=>/,\"operators.twig\"],[/=/,\"operators.twig\"]],doctype:[[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name.html\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter.html\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name.html\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter.html\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/typescript/typescript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/typescript/typescript\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco;t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],onEnterRules:[{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,afterText:/^\\s*\\*\\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:\" * \"}},{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:\" * \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),end:new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")}}},t.language={defaultToken:\"invalid\",tokenPostfix:\".ts\",keywords:[\"abstract\",\"as\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"declare\",\"default\",\"delete\",\"do\",\"else\",\"enum\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"implements\",\"import\",\"in\",\"infer\",\"instanceof\",\"interface\",\"is\",\"keyof\",\"let\",\"module\",\"namespace\",\"never\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"readonly\",\"require\",\"global\",\"return\",\"set\",\"static\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"type\",\"typeof\",\"unique\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[\"any\",\"boolean\",\"number\",\"object\",\"string\",\"undefined\"],operators:[\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"=>\",\"+\",\"-\",\"**\",\"*\",\"/\",\"%\",\"++\",\"--\",\"<<\",\"</\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"??\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"@\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"],[/`/,\"string\",\"@string_backtick\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([gimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],string_single:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]],string_backtick:[[/\\$\\{/,{token:\"delimiter.bracket\",next:\"@bracketCounting\"}],[/[^\\\\`$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/`/,\"string\",\"@pop\"]],bracketCounting:[[/\\{/,\"delimiter.bracket\",\"@bracketCounting\"],[/\\}/,\"delimiter.bracket\",\"@pop\"],{include:\"common\"}]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/vb/vb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/vb/vb\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"'\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"],[\"addhandler\",\"end addhandler\"],[\"class\",\"end class\"],[\"enum\",\"end enum\"],[\"event\",\"end event\"],[\"function\",\"end function\"],[\"get\",\"end get\"],[\"if\",\"end if\"],[\"interface\",\"end interface\"],[\"module\",\"end module\"],[\"namespace\",\"end namespace\"],[\"operator\",\"end operator\"],[\"property\",\"end property\"],[\"raiseevent\",\"end raiseevent\"],[\"removehandler\",\"end removehandler\"],[\"select\",\"end select\"],[\"set\",\"end set\"],[\"structure\",\"end structure\"],[\"sub\",\"end sub\"],[\"synclock\",\"end synclock\"],[\"try\",\"end try\"],[\"while\",\"end while\"],[\"with\",\"end with\"],[\"using\",\"end using\"],[\"do\",\"loop\"],[\"for\",\"next\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"<\",close:\">\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*#Region\\\\b\"),end:new RegExp(\"^\\\\s*#End Region\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".vb\",ignoreCase:!0,brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"},{token:\"keyword.tag-addhandler\",open:\"addhandler\",close:\"end addhandler\"},{token:\"keyword.tag-class\",open:\"class\",close:\"end class\"},{token:\"keyword.tag-enum\",open:\"enum\",close:\"end enum\"},{token:\"keyword.tag-event\",open:\"event\",close:\"end event\"},{token:\"keyword.tag-function\",open:\"function\",close:\"end function\"},{token:\"keyword.tag-get\",open:\"get\",close:\"end get\"},{token:\"keyword.tag-if\",open:\"if\",close:\"end if\"},{token:\"keyword.tag-interface\",open:\"interface\",close:\"end interface\"},{token:\"keyword.tag-module\",open:\"module\",close:\"end module\"},{token:\"keyword.tag-namespace\",open:\"namespace\",close:\"end namespace\"},{token:\"keyword.tag-operator\",open:\"operator\",close:\"end operator\"},{token:\"keyword.tag-property\",open:\"property\",close:\"end property\"},{token:\"keyword.tag-raiseevent\",open:\"raiseevent\",close:\"end raiseevent\"},{token:\"keyword.tag-removehandler\",open:\"removehandler\",close:\"end removehandler\"},{token:\"keyword.tag-select\",open:\"select\",close:\"end select\"},{token:\"keyword.tag-set\",open:\"set\",close:\"end set\"},{token:\"keyword.tag-structure\",open:\"structure\",close:\"end structure\"},{token:\"keyword.tag-sub\",open:\"sub\",close:\"end sub\"},{token:\"keyword.tag-synclock\",open:\"synclock\",close:\"end synclock\"},{token:\"keyword.tag-try\",open:\"try\",close:\"end try\"},{token:\"keyword.tag-while\",open:\"while\",close:\"end while\"},{token:\"keyword.tag-with\",open:\"with\",close:\"end with\"},{token:\"keyword.tag-using\",open:\"using\",close:\"end using\"},{token:\"keyword.tag-do\",open:\"do\",close:\"loop\"},{token:\"keyword.tag-for\",open:\"for\",close:\"next\"}],keywords:[\"AddHandler\",\"AddressOf\",\"Alias\",\"And\",\"AndAlso\",\"As\",\"Async\",\"Boolean\",\"ByRef\",\"Byte\",\"ByVal\",\"Call\",\"Case\",\"Catch\",\"CBool\",\"CByte\",\"CChar\",\"CDate\",\"CDbl\",\"CDec\",\"Char\",\"CInt\",\"Class\",\"CLng\",\"CObj\",\"Const\",\"Continue\",\"CSByte\",\"CShort\",\"CSng\",\"CStr\",\"CType\",\"CUInt\",\"CULng\",\"CUShort\",\"Date\",\"Decimal\",\"Declare\",\"Default\",\"Delegate\",\"Dim\",\"DirectCast\",\"Do\",\"Double\",\"Each\",\"Else\",\"ElseIf\",\"End\",\"EndIf\",\"Enum\",\"Erase\",\"Error\",\"Event\",\"Exit\",\"False\",\"Finally\",\"For\",\"Friend\",\"Function\",\"Get\",\"GetType\",\"GetXMLNamespace\",\"Global\",\"GoSub\",\"GoTo\",\"Handles\",\"If\",\"Implements\",\"Imports\",\"In\",\"Inherits\",\"Integer\",\"Interface\",\"Is\",\"IsNot\",\"Let\",\"Lib\",\"Like\",\"Long\",\"Loop\",\"Me\",\"Mod\",\"Module\",\"MustInherit\",\"MustOverride\",\"MyBase\",\"MyClass\",\"NameOf\",\"Namespace\",\"Narrowing\",\"New\",\"Next\",\"Not\",\"Nothing\",\"NotInheritable\",\"NotOverridable\",\"Object\",\"Of\",\"On\",\"Operator\",\"Option\",\"Optional\",\"Or\",\"OrElse\",\"Out\",\"Overloads\",\"Overridable\",\"Overrides\",\"ParamArray\",\"Partial\",\"Private\",\"Property\",\"Protected\",\"Public\",\"RaiseEvent\",\"ReadOnly\",\"ReDim\",\"RemoveHandler\",\"Resume\",\"Return\",\"SByte\",\"Select\",\"Set\",\"Shadows\",\"Shared\",\"Short\",\"Single\",\"Static\",\"Step\",\"Stop\",\"String\",\"Structure\",\"Sub\",\"SyncLock\",\"Then\",\"Throw\",\"To\",\"True\",\"Try\",\"TryCast\",\"TypeOf\",\"UInteger\",\"ULong\",\"UShort\",\"Using\",\"Variant\",\"Wend\",\"When\",\"While\",\"Widening\",\"With\",\"WithEvents\",\"WriteOnly\",\"Xor\"],tagwords:[\"If\",\"Sub\",\"Select\",\"Try\",\"Class\",\"Enum\",\"Function\",\"Get\",\"Interface\",\"Module\",\"Namespace\",\"Operator\",\"Set\",\"Structure\",\"Using\",\"While\",\"With\",\"Do\",\"Loop\",\"For\",\"Next\",\"Property\",\"Continue\",\"AddHandler\",\"RemoveHandler\",\"Event\",\"RaiseEvent\",\"SyncLock\"],symbols:/[=><!~?;\\.,:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:\"@whitespace\"},[/next(?!\\w)/,{token:\"keyword.tag-for\"}],[/loop(?!\\w)/,{token:\"keyword.tag-do\"}],[/end\\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:\"keyword.tag-$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@tagwords\":{token:\"keyword.tag-$0\"},\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/^\\s*#\\w+/,\"keyword\"],[/\\d*\\d+e([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+(e[\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/&H[0-9a-f]+(@integersuffix)/,\"number.hex\"],[/&0[0-7]+(@integersuffix)/,\"number.octal\"],[/\\d+(@integersuffix)/,\"number\"],[/#.*#/,\"number\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\'|REM(?!\\w)).*$/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"C?/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/xml/xml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/xml/xml\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"<\",\">\"]],autoClosingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}]},t.language={defaultToken:\"\",tokenPostfix:\".xml\",ignoreCase:!0,qualifiedName:/(?:[\\w\\.\\-]+:)?[\\w\\.\\-]+/,tokenizer:{root:[[/[^<&]+/,\"\"],{include:\"@whitespace\"},[/(<)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"tag\",next:\"@tag\"}]],[/(<\\/)(@qualifiedName)(\\s*)(>)/,[{token:\"delimiter\"},{token:\"tag\"},\"\",{token:\"delimiter\"}]],[/(<\\?)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/(<\\!)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/<\\!\\[CDATA\\[/,{token:\"delimiter.cdata\",next:\"@cdata\"}],[/&\\w+;/,\"string.escape\"]],cdata:[[/[^\\]]+/,\"\"],[/\\]\\]>/,{token:\"delimiter.cdata\",next:\"@pop\"}],[/\\]/,\"\"]],tag:[[/[ \\t\\r\\n]+/,\"\"],[/(@qualifiedName)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">?\\/]*|'[^'>?\\/]*)(?=[\\?\\/]\\>)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">]*|'[^'>]*)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/@qualifiedName/,\"attribute.name\"],[/\\?>/,{token:\"delimiter\",next:\"@pop\"}],[/(\\/)(>)/,[{token:\"tag\"},{token:\"delimiter\",next:\"@pop\"}]],[/>/,{token:\"delimiter\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/basic-languages/yaml/yaml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/yaml/yaml\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{offSide:!0}},n.language={tokenPostfix:\".yaml\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"true\",\"True\",\"TRUE\",\"false\",\"False\",\"FALSE\",\"null\",\"Null\",\"Null\",\"~\"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\\.(?:inf|Inf|INF)/,numberNaN:/\\.(?:nan|Nan|NAN)/,numberDate:/\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,escapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/%[^ ]+.*$/,\"meta.directive\"],[/---/,\"operators.directivesEnd\"],[/\\.{3}/,\"operators.documentEnd\"],[/[-?:](?= )/,\"operators\"],{include:\"@anchor\"},{include:\"@tagHandle\"},{include:\"@flowCollections\"},{include:\"@blockStyle\"},[/@numberInteger(?![ \\t]*\\S+)/,\"number\"],[/@numberFloat(?![ \\t]*\\S+)/,\"number.float\"],[/@numberOctal(?![ \\t]*\\S+)/,\"number.octal\"],[/@numberHex(?![ \\t]*\\S+)/,\"number.hex\"],[/@numberInfinity(?![ \\t]*\\S+)/,\"number.infinity\"],[/@numberNaN(?![ \\t]*\\S+)/,\"number.nan\"],[/@numberDate(?![ \\t]*\\S+)/,\"number.date\"],[/(\".*?\"|'.*?'|.*?)([ \\t]*)(:)( |$)/,[\"type\",\"white\",\"operators\",\"white\"]],{include:\"@flowScalars\"},[/.+$/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],object:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\}/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],[/:(?= )/,\"operators\"],[/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/,\"type\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\},]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],array:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\]/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\],]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],multiString:[[/^( +).+$/,\"string\",\"@multiStringContinued.$1\"]],multiStringContinued:[[/^( *).+$/,{cases:{\"$1==$S2\":\"string\",\"@default\":{token:\"@rematch\",next:\"@popall\"}}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"]],comment:[[/#.*$/,\"comment\"]],flowCollections:[[/\\[/,\"@brackets\",\"@array\"],[/\\{/,\"@brackets\",\"@object\"]],flowScalars:[[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'[^']*'/,\"string\"],[/\"/,\"string\",\"@doubleQuotedString\"]],doubleQuotedString:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],blockStyle:[[/[>|][0-9]*[+-]?$/,\"operators\",\"@multiString\"]],flowNumber:[[/@numberInteger(?=[ \\t]*[,\\]\\}])/,\"number\"],[/@numberFloat(?=[ \\t]*[,\\]\\}])/,\"number.float\"],[/@numberOctal(?=[ \\t]*[,\\]\\}])/,\"number.octal\"],[/@numberHex(?=[ \\t]*[,\\]\\}])/,\"number.hex\"],[/@numberInfinity(?=[ \\t]*[,\\]\\}])/,\"number.infinity\"],[/@numberNaN(?=[ \\t]*[,\\]\\}])/,\"number.nan\"],[/@numberDate(?=[ \\t]*[,\\]\\}])/,\"number.date\"]],tagHandle:[[/\\![^ ]*/,\"tag\"]],anchor:[[/[&*][^ ]+/,\"namespace\"]]}}}));"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.css",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/.monaco-action-bar{text-align:right;overflow:hidden;white-space:nowrap}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;width:100%;justify-content:flex-end}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar.reverse .actions-container{flex-direction:row-reverse}.monaco-action-bar .action-item{cursor:pointer;display:inline-block;transition:transform 50ms ease;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar.animated .action-item.active{transform:scale(1.272019649)}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:inline-block}.monaco-action-bar .action-label{font-size:11px;margin-right:4px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar.animated.vertical .action-item.active{transform:translate(5px)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-aria-container{position:absolute;left:-999em}.monaco-custom-checkbox{margin-left:2px;float:left;cursor:pointer;overflow:hidden;opacity:.7;width:20px;height:20px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-custom-checkbox.checked,.monaco-custom-checkbox:hover{opacity:1}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-custom-checkbox.monaco-simple-checkbox.unchecked:not(.checked):before{visibility:hidden}@font-face{font-family:codicon;src:url(../base/browser/ui/codiconLabel/codicon/codicon.ttf) format(\"truetype\")}.codicon[class*=codicon-]{font:normal normal normal 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codicon-add:before,.codicon-gist-new:before,.codicon-plus:before,.codicon-repo-create:before{content:\"\\ea60\"}.codicon-light-bulb:before,.codicon-lightbulb:before{content:\"\\ea61\"}.codicon-repo-delete:before,.codicon-repo:before{content:\"\\ea62\"}.codicon-gist-fork:before,.codicon-repo-forked:before{content:\"\\ea63\"}.codicon-git-pull-request-abandoned:before,.codicon-git-pull-request:before{content:\"\\ea64\"}.codicon-keyboard:before,.codicon-record-keys:before{content:\"\\ea65\"}.codicon-tag-add:before,.codicon-tag-remove:before,.codicon-tag:before{content:\"\\ea66\"}.codicon-person-add:before,.codicon-person-filled:before,.codicon-person-follow:before,.codicon-person-outline:before,.codicon-person:before{content:\"\\ea67\"}.codicon-git-branch-create:before,.codicon-git-branch-delete:before,.codicon-git-branch:before,.codicon-source-control:before{content:\"\\ea68\"}.codicon-mirror-public:before,.codicon-mirror:before{content:\"\\ea69\"}.codicon-star-add:before,.codicon-star-delete:before,.codicon-star-empty:before,.codicon-star:before{content:\"\\ea6a\"}.codicon-comment-add:before,.codicon-comment:before{content:\"\\ea6b\"}.codicon-alert:before,.codicon-warning:before{content:\"\\ea6c\"}.codicon-search-save:before,.codicon-search:before{content:\"\\ea6d\"}.codicon-log-out:before,.codicon-sign-out:before{content:\"\\ea6e\"}.codicon-log-in:before,.codicon-sign-in:before{content:\"\\ea6f\"}.codicon-eye-unwatch:before,.codicon-eye-watch:before,.codicon-eye:before{content:\"\\ea70\"}.codicon-circle-filled:before,.codicon-close-dirty:before,.codicon-debug-breakpoint-disabled:before,.codicon-debug-breakpoint:before,.codicon-debug-hint:before,.codicon-primitive-dot:before{content:\"\\ea71\"}.codicon-primitive-square:before{content:\"\\ea72\"}.codicon-edit:before,.codicon-pencil:before{content:\"\\ea73\"}.codicon-info:before,.codicon-issue-opened:before{content:\"\\ea74\"}.codicon-gist-private:before,.codicon-git-fork-private:before,.codicon-lock:before,.codicon-mirror-private:before{content:\"\\ea75\"}.codicon-close:before,.codicon-remove-close:before,.codicon-x:before{content:\"\\ea76\"}.codicon-repo-sync:before,.codicon-sync:before{content:\"\\ea77\"}.codicon-clone:before,.codicon-desktop-download:before{content:\"\\ea78\"}.codicon-beaker:before,.codicon-microscope:before{content:\"\\ea79\"}.codicon-device-desktop:before,.codicon-vm:before{content:\"\\ea7a\"}.codicon-file-text:before,.codicon-file:before{content:\"\\ea7b\"}.codicon-ellipsis:before,.codicon-kebab-horizontal:before,.codicon-more:before{content:\"\\ea7c\"}.codicon-mail-reply:before,.codicon-reply:before{content:\"\\ea7d\"}.codicon-organization-filled:before,.codicon-organization-outline:before,.codicon-organization:before{content:\"\\ea7e\"}.codicon-file-add:before,.codicon-new-file:before{content:\"\\ea7f\"}.codicon-file-directory-create:before,.codicon-new-folder:before{content:\"\\ea80\"}.codicon-trash:before,.codicon-trashcan:before{content:\"\\ea81\"}.codicon-clock:before,.codicon-history:before{content:\"\\ea82\"}.codicon-file-directory:before,.codicon-folder:before,.codicon-symbol-folder:before{content:\"\\ea83\"}.codicon-github:before,.codicon-logo-github:before,.codicon-mark-github:before{content:\"\\ea84\"}.codicon-console:before,.codicon-repl:before,.codicon-terminal:before{content:\"\\ea85\"}.codicon-symbol-event:before,.codicon-zap:before{content:\"\\ea86\"}.codicon-error:before,.codicon-stop:before{content:\"\\ea87\"}.codicon-symbol-variable:before,.codicon-variable:before{content:\"\\ea88\"}.codicon-array:before,.codicon-symbol-array:before{content:\"\\ea8a\"}.codicon-symbol-module:before,.codicon-symbol-namespace:before,.codicon-symbol-object:before,.codicon-symbol-package:before{content:\"\\ea8b\"}.codicon-symbol-constructor:before,.codicon-symbol-function:before,.codicon-symbol-method:before{content:\"\\ea8c\"}.codicon-symbol-boolean:before,.codicon-symbol-null:before{content:\"\\ea8f\"}.codicon-symbol-number:before,.codicon-symbol-numeric:before{content:\"\\ea90\"}.codicon-symbol-struct:before,.codicon-symbol-structure:before{content:\"\\ea91\"}.codicon-symbol-parameter:before,.codicon-symbol-type-parameter:before{content:\"\\ea92\"}.codicon-symbol-key:before,.codicon-symbol-text:before{content:\"\\ea93\"}.codicon-go-to-file:before,.codicon-symbol-reference:before{content:\"\\ea94\"}.codicon-symbol-enum:before,.codicon-symbol-value:before{content:\"\\ea95\"}.codicon-symbol-ruler:before,.codicon-symbol-unit:before{content:\"\\ea96\"}.codicon-activate-breakpoints:before{content:\"\\ea97\"}.codicon-archive:before{content:\"\\ea98\"}.codicon-arrow-both:before{content:\"\\ea99\"}.codicon-arrow-down:before{content:\"\\ea9a\"}.codicon-arrow-left:before{content:\"\\ea9b\"}.codicon-arrow-right:before{content:\"\\ea9c\"}.codicon-arrow-small-down:before{content:\"\\ea9d\"}.codicon-arrow-small-left:before{content:\"\\ea9e\"}.codicon-arrow-small-right:before{content:\"\\ea9f\"}.codicon-arrow-small-up:before{content:\"\\eaa0\"}.codicon-arrow-up:before{content:\"\\eaa1\"}.codicon-bell:before{content:\"\\eaa2\"}.codicon-bold:before{content:\"\\eaa3\"}.codicon-book:before{content:\"\\eaa4\"}.codicon-bookmark:before{content:\"\\eaa5\"}.codicon-debug-breakpoint-conditional-unverified:before{content:\"\\eaa6\"}.codicon-debug-breakpoint-conditional-disabled:before,.codicon-debug-breakpoint-conditional:before{content:\"\\eaa7\"}.codicon-debug-breakpoint-data-unverified:before{content:\"\\eaa8\"}.codicon-debug-breakpoint-data-disabled:before,.codicon-debug-breakpoint-data:before{content:\"\\eaa9\"}.codicon-debug-breakpoint-log-unverified:before{content:\"\\eaaa\"}.codicon-debug-breakpoint-log-disabled:before,.codicon-debug-breakpoint-log:before{content:\"\\eaab\"}.codicon-briefcase:before{content:\"\\eaac\"}.codicon-broadcast:before{content:\"\\eaad\"}.codicon-browser:before{content:\"\\eaae\"}.codicon-bug:before{content:\"\\eaaf\"}.codicon-calendar:before{content:\"\\eab0\"}.codicon-case-sensitive:before{content:\"\\eab1\"}.codicon-check:before{content:\"\\eab2\"}.codicon-checklist:before{content:\"\\eab3\"}.codicon-chevron-down:before{content:\"\\eab4\"}.codicon-chevron-left:before{content:\"\\eab5\"}.codicon-chevron-right:before{content:\"\\eab6\"}.codicon-chevron-up:before{content:\"\\eab7\"}.codicon-chrome-close:before{content:\"\\eab8\"}.codicon-chrome-maximize:before{content:\"\\eab9\"}.codicon-chrome-minimize:before{content:\"\\eaba\"}.codicon-chrome-restore:before{content:\"\\eabb\"}.codicon-circle-outline:before,.codicon-debug-breakpoint-unverified:before{content:\"\\eabc\"}.codicon-circle-slash:before{content:\"\\eabd\"}.codicon-circuit-board:before{content:\"\\eabe\"}.codicon-clear-all:before{content:\"\\eabf\"}.codicon-clippy:before{content:\"\\eac0\"}.codicon-close-all:before{content:\"\\eac1\"}.codicon-cloud-download:before{content:\"\\eac2\"}.codicon-cloud-upload:before{content:\"\\eac3\"}.codicon-code:before{content:\"\\eac4\"}.codicon-collapse-all:before{content:\"\\eac5\"}.codicon-color-mode:before{content:\"\\eac6\"}.codicon-comment-discussion:before{content:\"\\eac7\"}.codicon-compare-changes:before{content:\"\\eac8\"}.codicon-credit-card:before{content:\"\\eac9\"}.codicon-dash:before{content:\"\\eacc\"}.codicon-dashboard:before{content:\"\\eacd\"}.codicon-database:before{content:\"\\eace\"}.codicon-debug-continue:before{content:\"\\eacf\"}.codicon-debug-disconnect:before{content:\"\\ead0\"}.codicon-debug-pause:before{content:\"\\ead1\"}.codicon-debug-restart:before{content:\"\\ead2\"}.codicon-debug-start:before{content:\"\\ead3\"}.codicon-debug-step-into:before{content:\"\\ead4\"}.codicon-debug-step-out:before{content:\"\\ead5\"}.codicon-debug-step-over:before{content:\"\\ead6\"}.codicon-debug-stop:before{content:\"\\ead7\"}.codicon-debug:before{content:\"\\ead8\"}.codicon-device-camera-video:before{content:\"\\ead9\"}.codicon-device-camera:before{content:\"\\eada\"}.codicon-device-mobile:before{content:\"\\eadb\"}.codicon-diff-added:before{content:\"\\eadc\"}.codicon-diff-ignored:before{content:\"\\eadd\"}.codicon-diff-modified:before{content:\"\\eade\"}.codicon-diff-removed:before{content:\"\\eadf\"}.codicon-diff-renamed:before{content:\"\\eae0\"}.codicon-diff:before{content:\"\\eae1\"}.codicon-discard:before{content:\"\\eae2\"}.codicon-editor-layout:before{content:\"\\eae3\"}.codicon-empty-window:before{content:\"\\eae4\"}.codicon-exclude:before{content:\"\\eae5\"}.codicon-extensions:before{content:\"\\eae6\"}.codicon-eye-closed:before{content:\"\\eae7\"}.codicon-file-binary:before{content:\"\\eae8\"}.codicon-file-code:before{content:\"\\eae9\"}.codicon-file-media:before{content:\"\\eaea\"}.codicon-file-pdf:before{content:\"\\eaeb\"}.codicon-file-submodule:before{content:\"\\eaec\"}.codicon-file-symlink-directory:before{content:\"\\eaed\"}.codicon-file-symlink-file:before{content:\"\\eaee\"}.codicon-file-zip:before{content:\"\\eaef\"}.codicon-files:before{content:\"\\eaf0\"}.codicon-filter:before{content:\"\\eaf1\"}.codicon-flame:before{content:\"\\eaf2\"}.codicon-fold-down:before{content:\"\\eaf3\"}.codicon-fold-up:before{content:\"\\eaf4\"}.codicon-fold:before{content:\"\\eaf5\"}.codicon-folder-active:before{content:\"\\eaf6\"}.codicon-folder-opened:before{content:\"\\eaf7\"}.codicon-gear:before{content:\"\\eaf8\"}.codicon-gift:before{content:\"\\eaf9\"}.codicon-gist-secret:before{content:\"\\eafa\"}.codicon-gist:before{content:\"\\eafb\"}.codicon-git-commit:before{content:\"\\eafc\"}.codicon-git-compare:before{content:\"\\eafd\"}.codicon-git-merge:before{content:\"\\eafe\"}.codicon-github-action:before{content:\"\\eaff\"}.codicon-github-alt:before{content:\"\\eb00\"}.codicon-globe:before{content:\"\\eb01\"}.codicon-grabber:before{content:\"\\eb02\"}.codicon-graph:before{content:\"\\eb03\"}.codicon-gripper:before{content:\"\\eb04\"}.codicon-heart:before{content:\"\\eb05\"}.codicon-home:before{content:\"\\eb06\"}.codicon-horizontal-rule:before{content:\"\\eb07\"}.codicon-hubot:before{content:\"\\eb08\"}.codicon-inbox:before{content:\"\\eb09\"}.codicon-issue-closed:before{content:\"\\eb0a\"}.codicon-issue-reopened:before{content:\"\\eb0b\"}.codicon-issues:before{content:\"\\eb0c\"}.codicon-italic:before{content:\"\\eb0d\"}.codicon-jersey:before{content:\"\\eb0e\"}.codicon-json:before{content:\"\\eb0f\"}.codicon-kebab-vertical:before{content:\"\\eb10\"}.codicon-key:before{content:\"\\eb11\"}.codicon-law:before{content:\"\\eb12\"}.codicon-lightbulb-autofix:before{content:\"\\eb13\"}.codicon-link-external:before{content:\"\\eb14\"}.codicon-link:before{content:\"\\eb15\"}.codicon-list-ordered:before{content:\"\\eb16\"}.codicon-list-unordered:before{content:\"\\eb17\"}.codicon-live-share:before{content:\"\\eb18\"}.codicon-loading:before{content:\"\\eb19\"}.codicon-location:before{content:\"\\eb1a\"}.codicon-mail-read:before{content:\"\\eb1b\"}.codicon-mail:before{content:\"\\eb1c\"}.codicon-markdown:before{content:\"\\eb1d\"}.codicon-megaphone:before{content:\"\\eb1e\"}.codicon-mention:before{content:\"\\eb1f\"}.codicon-milestone:before{content:\"\\eb20\"}.codicon-mortar-board:before{content:\"\\eb21\"}.codicon-move:before{content:\"\\eb22\"}.codicon-multiple-windows:before{content:\"\\eb23\"}.codicon-mute:before{content:\"\\eb24\"}.codicon-no-newline:before{content:\"\\eb25\"}.codicon-note:before{content:\"\\eb26\"}.codicon-octoface:before{content:\"\\eb27\"}.codicon-open-preview:before{content:\"\\eb28\"}.codicon-package:before{content:\"\\eb29\"}.codicon-paintcan:before{content:\"\\eb2a\"}.codicon-pin:before{content:\"\\eb2b\"}.codicon-play:before{content:\"\\eb2c\"}.codicon-plug:before{content:\"\\eb2d\"}.codicon-preserve-case:before{content:\"\\eb2e\"}.codicon-preview:before{content:\"\\eb2f\"}.codicon-project:before{content:\"\\eb30\"}.codicon-pulse:before{content:\"\\eb31\"}.codicon-question:before{content:\"\\eb32\"}.codicon-quote:before{content:\"\\eb33\"}.codicon-radio-tower:before{content:\"\\eb34\"}.codicon-reactions:before{content:\"\\eb35\"}.codicon-references:before{content:\"\\eb36\"}.codicon-refresh:before{content:\"\\eb37\"}.codicon-regex:before{content:\"\\eb38\"}.codicon-remote-explorer:before{content:\"\\eb39\"}.codicon-remote:before{content:\"\\eb3a\"}.codicon-remove:before{content:\"\\eb3b\"}.codicon-replace-all:before{content:\"\\eb3c\"}.codicon-replace:before{content:\"\\eb3d\"}.codicon-repo-clone:before{content:\"\\eb3e\"}.codicon-repo-force-push:before{content:\"\\eb3f\"}.codicon-repo-pull:before{content:\"\\eb40\"}.codicon-repo-push:before{content:\"\\eb41\"}.codicon-report:before{content:\"\\eb42\"}.codicon-request-changes:before{content:\"\\eb43\"}.codicon-rocket:before{content:\"\\eb44\"}.codicon-root-folder-opened:before{content:\"\\eb45\"}.codicon-root-folder:before{content:\"\\eb46\"}.codicon-rss:before{content:\"\\eb47\"}.codicon-ruby:before{content:\"\\eb48\"}.codicon-save-all:before{content:\"\\eb49\"}.codicon-save-as:before{content:\"\\eb4a\"}.codicon-save:before{content:\"\\eb4b\"}.codicon-screen-full:before{content:\"\\eb4c\"}.codicon-screen-normal:before{content:\"\\eb4d\"}.codicon-search-stop:before{content:\"\\eb4e\"}.codicon-server:before{content:\"\\eb50\"}.codicon-settings-gear:before{content:\"\\eb51\"}.codicon-settings:before{content:\"\\eb52\"}.codicon-shield:before{content:\"\\eb53\"}.codicon-smiley:before{content:\"\\eb54\"}.codicon-sort-precedence:before{content:\"\\eb55\"}.codicon-split-horizontal:before{content:\"\\eb56\"}.codicon-split-vertical:before{content:\"\\eb57\"}.codicon-squirrel:before{content:\"\\eb58\"}.codicon-star-full:before{content:\"\\eb59\"}.codicon-star-half:before{content:\"\\eb5a\"}.codicon-symbol-class:before{content:\"\\eb5b\"}.codicon-symbol-color:before{content:\"\\eb5c\"}.codicon-symbol-constant:before{content:\"\\eb5d\"}.codicon-symbol-enum-member:before{content:\"\\eb5e\"}.codicon-symbol-field:before{content:\"\\eb5f\"}.codicon-symbol-file:before{content:\"\\eb60\"}.codicon-symbol-interface:before{content:\"\\eb61\"}.codicon-symbol-keyword:before{content:\"\\eb62\"}.codicon-symbol-misc:before{content:\"\\eb63\"}.codicon-symbol-operator:before{content:\"\\eb64\"}.codicon-symbol-property:before{content:\"\\eb65\"}.codicon-symbol-snippet:before{content:\"\\eb66\"}.codicon-tasklist:before{content:\"\\eb67\"}.codicon-telescope:before{content:\"\\eb68\"}.codicon-text-size:before{content:\"\\eb69\"}.codicon-three-bars:before{content:\"\\eb6a\"}.codicon-thumbsdown:before{content:\"\\eb6b\"}.codicon-thumbsup:before{content:\"\\eb6c\"}.codicon-tools:before{content:\"\\eb6d\"}.codicon-triangle-down:before{content:\"\\eb6e\"}.codicon-triangle-left:before{content:\"\\eb6f\"}.codicon-triangle-right:before{content:\"\\eb70\"}.codicon-triangle-up:before{content:\"\\eb71\"}.codicon-twitter:before{content:\"\\eb72\"}.codicon-unfold:before{content:\"\\eb73\"}.codicon-unlock:before{content:\"\\eb74\"}.codicon-unmute:before{content:\"\\eb75\"}.codicon-unverified:before{content:\"\\eb76\"}.codicon-verified:before{content:\"\\eb77\"}.codicon-versions:before{content:\"\\eb78\"}.codicon-vm-active:before{content:\"\\eb79\"}.codicon-vm-outline:before{content:\"\\eb7a\"}.codicon-vm-running:before{content:\"\\eb7b\"}.codicon-watch:before{content:\"\\eb7c\"}.codicon-whitespace:before{content:\"\\eb7d\"}.codicon-whole-word:before{content:\"\\eb7e\"}.codicon-window:before{content:\"\\eb7f\"}.codicon-word-wrap:before{content:\"\\eb80\"}.codicon-zoom-in:before{content:\"\\eb81\"}.codicon-zoom-out:before{content:\"\\eb82\"}.codicon-list-filter:before{content:\"\\eb83\"}.codicon-list-flat:before{content:\"\\eb84\"}.codicon-list-selection:before,.codicon-selection:before{content:\"\\eb85\"}.codicon-list-tree:before{content:\"\\eb86\"}.codicon-debug-breakpoint-function-unverified:before{content:\"\\eb87\"}.codicon-debug-breakpoint-function-disabled:before,.codicon-debug-breakpoint-function:before{content:\"\\eb88\"}.codicon-debug-stackframe-active:before{content:\"\\eb89\"}.codicon-debug-stackframe-dot:before{content:\"\\eb8a\"}.codicon-debug-stackframe-focused:before,.codicon-debug-stackframe:before{content:\"\\eb8b\"}.codicon-debug-breakpoint-unsupported:before{content:\"\\eb8c\"}.codicon-symbol-string:before{content:\"\\eb8d\"}.codicon-debug-reverse-continue:before{content:\"\\eb8e\"}.codicon-debug-step-back:before{content:\"\\eb8f\"}.codicon-debug-restart-frame:before{content:\"\\eb90\"}.codicon-debug-alternate:before{content:\"\\eb91\"}.codicon-call-incoming:before{content:\"\\eb92\"}.codicon-call-outgoing:before{content:\"\\eb93\"}.codicon-menu:before{content:\"\\eb94\"}.codicon-expand-all:before{content:\"\\eb95\"}.codicon-feedback:before{content:\"\\eb96\"}.codicon-group-by-ref-type:before{content:\"\\eb97\"}.codicon-ungroup-by-ref-type:before{content:\"\\eb98\"}.codicon-debug-alt:before{content:\"\\f101\"}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-animation-spin{animation:codicon-spin 1.5s linear infinite}.context-view{position:absolute;z-index:2500}.monaco-count-badge{padding:3px 5px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.italic>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;padding:0 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after,.monaco-tree.focused .selected .monaco-icon-label,.monaco-tree.focused .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.monaco-tree-row.focused.selected .label-description,.monaco-tree-row.selected .label-description{opacity:.8}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;font-size:inherit}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.wrapper>.input,.monaco-inputbox>.wrapper>.mirror{padding:4px}.monaco-inputbox>.wrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.wrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.wrapper>input{text-overflow:ellipsis}.monaco-inputbox>.wrapper>textarea.input{display:block;-ms-overflow-style:none;scrollbar-width:none;outline:none}.monaco-inputbox>.wrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.wrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.wrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;min-height:34px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);border-radius:3px;box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);background-color:hsla(0,0%,87%,.4);vertical-align:middle;color:#555;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.hc-black .monaco-keybinding>.monaco-keybinding-key,.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);color:#ccc;border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6)}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-list-type-filter{display:flex;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:flex;align-items:center;box-sizing:border-box;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;flex-shrink:0;margin:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter:checked:before{content:\"\\eb83\"!important}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:grab}.monaco-list-type-filter.dragging{cursor:grabbing}.monaco-menu .monaco-action-bar.vertical{margin-left:0;overflow:visible}.monaco-menu .monaco-action-bar.vertical .actions-container{display:block}.monaco-menu .monaco-action-bar.vertical .action-item{padding:0;transform:none;display:flex}.monaco-menu .monaco-action-bar.vertical .action-item.active{transform:none}.monaco-menu .monaco-action-bar.vertical .action-menu-item{flex:1 1 auto;display:flex;height:2em;align-items:center;position:relative}.monaco-menu .monaco-action-bar.vertical .action-label{flex:1 1 auto;text-decoration:none;padding:0 1em;background:none;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .keybinding,.monaco-menu .monaco-action-bar.vertical .submenu-indicator{display:inline-block;flex:2 1 auto;padding:0 1em;text-align:right;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .submenu-indicator{height:100%}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon{font-size:16px!important;display:flex;align-items:center}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon:before{margin-left:auto;margin-right:-20px}.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator{opacity:.4}.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator){display:inline-block;box-sizing:border-box;margin:0}.monaco-menu .monaco-action-bar.vertical .action-item{position:static;overflow:visible}.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu{position:absolute}.monaco-menu .monaco-action-bar.vertical .action-label.separator{padding:.5em 0 0;margin-bottom:.5em;width:100%}.monaco-menu .monaco-action-bar.vertical .action-label.separator.text{padding:.7em 1em .1em;font-weight:700;opacity:1}.monaco-menu .monaco-action-bar.vertical .action-label:hover{color:inherit}.monaco-menu .monaco-action-bar.vertical .menu-item-check{position:absolute;visibility:hidden;width:1em;height:100%}.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check{visibility:visible;display:flex;align-items:center;justify-content:center}.context-view.monaco-menu-container{outline:0;border:none;animation:fadeIn 83ms linear}.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,.context-view.monaco-menu-container .monaco-action-bar.vertical :focus,.context-view.monaco-menu-container :focus{outline:0}.monaco-menu .monaco-action-bar.vertical .action-item{border:thin solid transparent}.hc-black .context-view.monaco-menu-container{box-shadow:none}.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused{background:none}.menubar{display:flex;flex-shrink:1;box-sizing:border-box;height:30px;overflow:hidden;flex-wrap:wrap}.fullscreen .menubar:not(.compact){margin:0;padding:0 5px}.menubar>.menubar-menu-button{align-items:center;box-sizing:border-box;padding:0 8px;cursor:default;-webkit-app-region:no-drag;zoom:1;white-space:nowrap;outline:0}.menubar.compact{flex-shrink:0}.menubar.compact>.menubar-menu-button{width:100%;height:100%;padding:0}.menubar .menubar-menu-items-holder{position:absolute;left:0;opacity:1;z-index:2000}.menubar .menubar-menu-items-holder.monaco-menu-container{outline:0;border:none}.menubar .menubar-menu-items-holder.monaco-menu-container :focus{outline:0}.menubar .toolbar-toggle-more{width:20px;height:100%}.menubar.compact .toolbar-toggle-more{position:absolute;left:0;top:0;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center}.menubar .toolbar-toggle-more{padding:0;vertical-align:sub}.menubar.compact .toolbar-toggle-more:before{content:\"\\eb94\"!important}.monaco-progress-container{width:100%;height:5px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:5px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:linear;transform:translateZ(0)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4950%) scaleX(1)}}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.vertical{cursor:ew-resize;top:0;width:4px;height:100%}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:4px}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash:not(.disabled).orthogonal-end:after,.monaco-sash:not(.disabled).orthogonal-start:before{content:\" \";height:8px;width:8px;z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.orthogonal-start.vertical:before{left:-2px;top:-4px}.monaco-sash.orthogonal-end.vertical:after{left:-2px;bottom:-4px}.monaco-sash.orthogonal-start.horizontal:before{top:-2px;left:-4px}.monaco-sash.orthogonal-end.horizontal:after{top:-2px;right:-4px}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.touch.vertical{width:20px}.monaco-sash.touch.horizontal{height:20px}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled).orthogonal-end:after,.monaco-sash.debug:not(.disabled).orthogonal-start:before{background:red}.monaco-scrollable-element>.scrollbar>.up-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=);cursor:pointer}.monaco-scrollable-element>.scrollbar>.down-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=);cursor:pointer}.monaco-scrollable-element>.scrollbar>.left-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+);cursor:pointer}.monaco-scrollable-element>.scrollbar>.right-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+);cursor:pointer}.hc-black .monaco-scrollable-element>.scrollbar>.up-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.up-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiNFOEU4RTgiLz48L3N2Zz4=)}.hc-black .monaco-scrollable-element>.scrollbar>.down-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.down-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=)}.hc-black .monaco-scrollable-element>.scrollbar>.left-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.left-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+)}.hc-black .monaco-scrollable-element>.scrollbar>.right-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.right-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+)}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:inset 0 6px 6px -6px #ddd}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:inset 6px 0 6px -6px #ddd}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,75%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{box-shadow:none}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.split-view-container>.split-view-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;color:inherit!important;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-loading:before{animation:codicon-spin 1.25s linear infinite}.monaco-quick-open-widget{position:absolute;width:600px;z-index:2000;padding-bottom:6px;left:50%;margin-left:-300px}.monaco-quick-open-widget .monaco-progress-container{position:absolute;left:0;top:38px;z-index:1;height:2px}.monaco-quick-open-widget .monaco-progress-container .progress-bit{height:2px}.monaco-quick-open-widget .quick-open-input{width:588px;border:none;margin:6px}.monaco-quick-open-widget .quick-open-input .monaco-inputbox{width:100%;height:25px}.monaco-quick-open-widget .quick-open-result-count{position:absolute;left:-10000px}.monaco-quick-open-widget .quick-open-tree{line-height:22px}.monaco-quick-open-widget .quick-open-tree .monaco-tree-row>.content>.sub-content{overflow:hidden}.monaco-quick-open-widget.content-changing .quick-open-tree .monaco-scrollable-element .slider{display:none}.monaco-quick-open-widget .quick-open-tree .quick-open-entry{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%}.monaco-quick-open-widget .quick-open-tree .quick-open-entry>.quick-open-row{display:flex;align-items:center}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon{overflow:hidden;width:16px;height:16px;margin-right:4px;display:flex;align-items:center;vertical-align:middle;flex-shrink:0}.monaco-quick-open-widget .quick-open-tree .monaco-icon-label,.monaco-quick-open-widget .quick-open-tree .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .monaco-highlighted-label span{opacity:1}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .monaco-highlighted-label .codicon{vertical-align:sub}.monaco-quick-open-widget .quick-open-tree .quick-open-entry-meta{opacity:.7;line-height:normal}.monaco-quick-open-widget .quick-open-tree .content.has-group-label .quick-open-entry-keybinding{margin-right:8px}.monaco-quick-open-widget .quick-open-tree .quick-open-entry-keybinding .monaco-keybinding-key{vertical-align:text-bottom}.monaco-quick-open-widget .quick-open-tree .results-group{margin-right:18px}.monaco-quick-open-widget .quick-open-tree .focused .monaco-tree-row.focused>.content.has-actions>.results-group,.monaco-quick-open-widget .quick-open-tree .monaco-tree-row.focused>.content.has-actions>.results-group,.monaco-quick-open-widget .quick-open-tree .monaco-tree-row:hover:not(.highlighted)>.content.has-actions>.results-group{margin-right:0}.monaco-quick-open-widget .quick-open-tree .results-group-separator{border-top-width:1px;border-top-style:solid;box-sizing:border-box;margin-left:-11px;padding-left:11px}.monaco-tree .monaco-tree-row>.content.actions{position:relative;display:flex}.monaco-tree .monaco-tree-row>.content.actions>.sub-content{flex:1}.monaco-tree .monaco-tree-row>.content.actions .action-item{margin:0}.monaco-tree .monaco-tree-row>.content.actions>.primary-action-bar{line-height:22px;display:none;padding:0 .8em 0 .4em}.monaco-tree .monaco-tree-row.focused>.content.has-actions>.primary-action-bar{width:0;display:block}.monaco-tree.focused .monaco-tree-row.focused>.content.has-actions>.primary-action-bar,.monaco-tree .monaco-tree-row:hover:not(.highlighted)>.content.has-actions>.primary-action-bar,.monaco-tree .monaco-tree-row>.content.has-actions.more>.primary-action-bar{width:inherit;display:block}.monaco-tree .monaco-tree-row>.content.actions>.primary-action-bar .action-label{margin-right:.4em;margin-top:4px;background-repeat:no-repeat;width:16px;height:16px}.monaco-quick-open-widget .quick-open-tree .monaco-highlighted-label .highlight{font-weight:700}.monaco-tree{height:100%;width:100%;white-space:nowrap;user-select:none;-webkit-user-select:none;-ms-user-select:none;position:relative}.monaco-tree>.monaco-scrollable-element{height:100%}.monaco-tree>.monaco-scrollable-element>.monaco-tree-wrapper{height:100%;width:100%;position:relative}.monaco-tree .monaco-tree-rows{position:absolute;width:100%;height:100%}.monaco-tree .monaco-tree-rows>.monaco-tree-row{box-sizing:border-box;cursor:pointer;overflow:hidden;width:100%;touch-action:none}.monaco-tree .monaco-tree-rows>.monaco-tree-row>.content{position:relative;height:100%}.monaco-tree-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-tree .monaco-tree-rows>.monaco-tree-row.scrolling{display:none}.monaco-tree.highlighted .monaco-tree-rows>.monaco-tree-row:not(.highlighted){opacity:.3}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor .margin-view-overlays .line-numbers{position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{cursor:text;white-space:nowrap}.monaco-editor.hc-black.mac .view-lines,.monaco-editor.vs-dark.mac .view-lines{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;cursor:text;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-diff-editor .diffViewport{box-shadow:inset 0 0 1px 0 #b9b9b9;background:rgba(0,0,0,.1)}.monaco-diff-editor.hc-black .diffViewport,.monaco-diff-editor.vs-dark .diffViewport{background:hsla(0,0%,100%,.1)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .diagonal-fill{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAChJREFUKFNjOH/+fAMDDgCSu3Dhwn9c8gwwBTgNGR4KQP4HhQOhsAIAZCBTkhtqePcAAAAASUVORK5CYII=)}.monaco-editor.vs-dark .diagonal-fill{opacity:.2}.monaco-editor.hc-black .diagonal-fill{background:none}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-cell{display:table-cell}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .bracket-match{box-sizing:border-box}.monaco-menu .monaco-action-bar.vertical .action-label.hover{background-color:#eee}.monaco-editor .codicon-lightbulb,.monaco-editor .lightbulb-glyph{display:flex;align-items:center;justify-content:center;height:16px;width:20px;padding-left:2px}.monaco-editor .codicon-lightbulb:hover,.monaco-editor .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .colorpicker-hover:focus{outline:none}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:216px;line-height:24px;cursor:pointer;color:#fff;flex:1;text-align:center}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-list .monaco-list-row.focused.selected .outline-element-decoration,.monaco-list .monaco-list-row.focused.selected .outline-element .monaco-highlighted-label{color:inherit!important}.monaco-list .outline-element{display:flex;flex:1;flex-flow:row nowrap;align-items:center}.monaco-list .outline-element .monaco-highlighted-label{color:var(--outline-element-color)}.monaco-tree .monaco-tree-row.focused .outline-element .outline-element-detail{visibility:inherit}.monaco-list .outline-element .outline-element-decoration{opacity:.75;font-size:90%;font-weight:600;padding:0 12px 0 5px;margin-left:auto;text-align:center;color:var(--outline-element-color)}.monaco-list .outline-element .outline-element-decoration.bubble{font-family:codicon;font-size:14px;opacity:.4}.monaco-list .outline-element .outline-element-icon{margin-right:4px}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-editor .find-widget{position:absolute;z-index:10;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px))}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:4px 0 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.wrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.wrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:20px;height:20px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .button:not(.disabled):hover{background-color:rgba(0,0,0,.1)}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{opacity:.3;cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{width:2px!important;margin-left:-4px}.monaco-editor.hc-black .find-widget .button:not(.disabled):hover,.monaco-editor.vs-dark .find-widget .button:not(.disabled):hover{background-color:hsla(0,0%,100%,.1)}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .margin-view-overlays .codicon-chevron-down,.monaco-editor .margin-view-overlays .codicon-chevron-right{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-chevron-right,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;margin:.1em .2em 0;content:\"⋯\";display:inline;line-height:1em;cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;-ms-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:\"(\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:\")\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor-hover{cursor:default;position:absolute;overflow:hidden;z-index:50;user-select:text;-webkit-user-select:text;-ms-user-select:text;box-sizing:initial;animation:fadein .1s linear;line-height:1.5em}.monaco-editor-hover.hidden{display:none}.monaco-editor-hover .hover-contents{padding:4px 8px}.monaco-editor-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:500px;word-wrap:break-word}.monaco-editor-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100vw}.monaco-editor-hover p,.monaco-editor-hover ul{margin:8px 0}.monaco-editor-hover code{font-family:var(--monaco-monospace-font)}.monaco-editor-hover hr{margin:4px -10px -6px;height:1px}.monaco-editor-hover p:first-child,.monaco-editor-hover ul:first-child{margin-top:0}.monaco-editor-hover p:last-child,.monaco-editor-hover ul:last-child{margin-bottom:0}.monaco-editor-hover ol,.monaco-editor-hover ul{padding-left:20px}.monaco-editor-hover li>p{margin-bottom:0}.monaco-editor-hover li>ul{margin-top:0}.monaco-editor-hover code{border-radius:3px;padding:0 .4em}.monaco-editor-hover .monaco-tokenized-source{white-space:pre-wrap;word-break:break-all}.monaco-editor-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-editor-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-editor-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-editor-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-editor-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-editor-hover .hover-contents a.code-link:after{content:\")\"}.monaco-editor-hover .hover-contents a.code-link{color:inherit}.monaco-editor-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent}.monaco-editor-hover .hover-contents a.code-link>span,.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:1px 4px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border:8px solid transparent;z-index:1000;position:absolute}.monaco-editor .parameter-hints-widget{z-index:10;display:flex;flex-direction:column;line-height:1.5em}.monaco-editor .parameter-hints-widget>.wrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs .markdown-docs code{font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;opacity:.5;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{font-weight:700;text-decoration:underline}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:center;font-size:13px;margin-left:20px;cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:\"-\";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-item{margin-left:4px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-label{width:16px;height:100%;margin:0;line-height:inherit;background-repeat:no-repeat;background-position:50%}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-label.codicon{margin:0}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .rename-box{z-index:100;color:inherit}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px}.monaco-editor .finish-snippet-placeholder,.monaco-editor .snippet-placeholder{outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{z-index:40;width:430px}.monaco-editor .suggest-widget>.details,.monaco-editor .suggest-widget>.message,.monaco-editor .suggest-widget>.tree{width:100%;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor.hc-black .suggest-widget>.details,.monaco-editor.hc-black .suggest-widget>.message,.monaco-editor.hc-black .suggest-widget>.tree{border-width:2px}.monaco-editor .suggest-widget.docs-side{width:660px}.monaco-editor .suggest-widget.docs-side>.details,.monaco-editor .suggest-widget.docs-side>.tree{width:50%;float:left}.monaco-editor .suggest-widget.docs-side.list-right>.details,.monaco-editor .suggest-widget.docs-side.list-right>.tree{float:right}.monaco-editor .suggest-widget>.details ol,.monaco-editor .suggest-widget>.details ul{padding-left:20px}.monaco-editor .suggest-widget>.details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget>.suggest-status-bar{visibility:hidden;position:absolute;left:0;box-sizing:border-box;display:flex;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid;border-bottom-width:1px;border-bottom-style:solid;padding:1px 8px 1px 4px;box-shadow:0 -.5px 3px #ddd}.monaco-editor .suggest-widget>.suggest-status-bar span{opacity:.7}.monaco-editor .suggest-widget.list-right.docs-side>.suggest-status-bar{left:auto;right:0}.monaco-editor .suggest-widget.docs-side>.suggest-status-bar{width:50%}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:2px;right:2px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:4px;opacity:.4;font-size:90%;text-overflow:ellipsis;overflow:hidden;line-height:17px;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{margin-left:.8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused>.contents>.main>.right.always-show-details>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right.always-show-details>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:0;max-width:45%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right:not(.always-show-details)>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main>.right:not(.always-show-details)>.readMore{display:inline-block}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:50%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-widget .details{display:flex;flex-direction:column;cursor:default}.monaco-editor .suggest-widget .details.no-docs{display:none}.monaco-editor .suggest-widget.docs-below .details{border-top-width:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body{position:absolute;box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;word-break:break-all;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:normal;min-height:calc(1rem + 8px)}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-widget .details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-insert-unexpected{font-style:italic}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{visibility:visible}.monaco-editor .suggest-widget.with-status-bar>.tree{margin-bottom:18px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar span{min-height:18px}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused>.contents>.main>.right:not(.always-show-details)>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .accessibilityHelpWidget{padding:10px;vertical-align:middle;overflow:scroll}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzY0IDQuMDEwNDJINC4wMDc3OUw0LjAwNzc5IDMyLjAyODZINDguMDM2NFY0LjAxMDQyWk00LjAwNzc5IDAuMDA3ODEyNUMxLjc5NzIxIDAuMDA3ODEyNSAwLjAwNTE4Nzk5IDEuNzk5ODQgMC4wMDUxODc5OSA0LjAxMDQyVjMyLjAyODZDMC4wMDUxODc5OSAzNC4yMzkyIDEuNzk3MjEgMzYuMDMxMiA0LjAwNzc5IDM2LjAzMTJINDguMDM2NEM1MC4yNDcgMzYuMDMxMiA1Mi4wMzkgMzQuMjM5MiA1Mi4wMzkgMzIuMDI4NlY0LjAxMDQyQzUyLjAzOSAxLjc5OTg0IDUwLjI0NyAwLjAwNzgxMjUgNDguMDM2NCAwLjAwNzgxMjVINC4wMDc3OVpNOC4wMTA0MiA4LjAxMzAySDEyLjAxM1YxMi4wMTU2SDguMDEwNDJWOC4wMTMwMlpNMjAuMDE4MiA4LjAxMzAySDE2LjAxNTZWMTIuMDE1NkgyMC4wMTgyVjguMDEzMDJaTTI0LjAyMDggOC4wMTMwMkgyOC4wMjM0VjEyLjAxNTZIMjQuMDIwOFY4LjAxMzAyWk0zNi4wMjg2IDguMDEzMDJIMzIuMDI2VjEyLjAxNTZIMzYuMDI4NlY4LjAxMzAyWk00MC4wMzEyIDguMDEzMDJINDQuMDMzOVYxMi4wMTU2SDQwLjAzMTJWOC4wMTMwMlpNMTYuMDE1NiAxNi4wMTgySDguMDEwNDJWMjAuMDIwOEgxNi4wMTU2VjE2LjAxODJaTTIwLjAxODIgMTYuMDE4MkgyNC4wMjA4VjIwLjAyMDhIMjAuMDE4MlYxNi4wMTgyWk0zMi4wMjYgMTYuMDE4MkgyOC4wMjM0VjIwLjAyMDhIMzIuMDI2VjE2LjAxODJaTTQ0LjAzMzkgMTYuMDE4MlYyMC4wMjA4SDM2LjAyODZWMTYuMDE4Mkg0NC4wMzM5Wk0xMi4wMTMgMjQuMDIzNEg4LjAxMDQyVjI4LjAyNkgxMi4wMTNWMjQuMDIzNFpNMTYuMDE1NiAyNC4wMjM0SDM2LjAyODZWMjguMDI2SDE2LjAxNTZWMjQuMDIzNFpNNDQuMDMzOSAyNC4wMjM0SDQwLjAzMTJWMjguMDI2SDQ0LjAzMzlWMjQuMDIzNFoiIGZpbGw9IiM0MjQyNDIiLz4NCjwvZz4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJjbGlwMCI+DQo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPC9zdmc+DQo=) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzY0IDQuMDEwNDJINC4wMDc3OUw0LjAwNzc5IDMyLjAyODZINDguMDM2NFY0LjAxMDQyWk00LjAwNzc5IDAuMDA3ODEyNUMxLjc5NzIxIDAuMDA3ODEyNSAwLjAwNTE4Nzk5IDEuNzk5ODQgMC4wMDUxODc5OSA0LjAxMDQyVjMyLjAyODZDMC4wMDUxODc5OSAzNC4yMzkyIDEuNzk3MjEgMzYuMDMxMiA0LjAwNzc5IDM2LjAzMTJINDguMDM2NEM1MC4yNDcgMzYuMDMxMiA1Mi4wMzkgMzQuMjM5MiA1Mi4wMzkgMzIuMDI4NlY0LjAxMDQyQzUyLjAzOSAxLjc5OTg0IDUwLjI0NyAwLjAwNzgxMjUgNDguMDM2NCAwLjAwNzgxMjVINC4wMDc3OVpNOC4wMTA0MiA4LjAxMzAySDEyLjAxM1YxMi4wMTU2SDguMDEwNDJWOC4wMTMwMlpNMjAuMDE4MiA4LjAxMzAySDE2LjAxNTZWMTIuMDE1NkgyMC4wMTgyVjguMDEzMDJaTTI0LjAyMDggOC4wMTMwMkgyOC4wMjM0VjEyLjAxNTZIMjQuMDIwOFY4LjAxMzAyWk0zNi4wMjg2IDguMDEzMDJIMzIuMDI2VjEyLjAxNTZIMzYuMDI4NlY4LjAxMzAyWk00MC4wMzEyIDguMDEzMDJINDQuMDMzOVYxMi4wMTU2SDQwLjAzMTJWOC4wMTMwMlpNMTYuMDE1NiAxNi4wMTgySDguMDEwNDJWMjAuMDIwOEgxNi4wMTU2VjE2LjAxODJaTTIwLjAxODIgMTYuMDE4MkgyNC4wMjA4VjIwLjAyMDhIMjAuMDE4MlYxNi4wMTgyWk0zMi4wMjYgMTYuMDE4MkgyOC4wMjM0VjIwLjAyMDhIMzIuMDI2VjE2LjAxODJaTTQ0LjAzMzkgMTYuMDE4MlYyMC4wMjA4SDM2LjAyODZWMTYuMDE4Mkg0NC4wMzM5Wk0xMi4wMTMgMjQuMDIzNEg4LjAxMDQyVjI4LjAyNkgxMi4wMTNWMjQuMDIzNFpNMTYuMDE1NiAyNC4wMjM0SDM2LjAyODZWMjguMDI2SDE2LjAxNTZWMjQuMDIzNFpNNDQuMDMzOSAyNC4wMjM0SDQwLjAzMTJWMjguMDI2SDQ0LjAzMzlWMjQuMDIzNFoiIGZpbGw9IiNDNUM1QzUiLz4NCjwvZz4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJjbGlwMCI+DQo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPC9zdmc+DQo=) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;-ms-user-select:text;padding:10px}.tokens-inspect-separator{height:1px;border:0}.monaco-editor .tokens-inspect-widget .tm-token{font-family:monospace}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:monospace;text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:monospace}.monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#0066bf}.vs-dark .monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.vs-dark .monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.hc-black .monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#f38518}.monaco-quick-open-widget{font-size:13px}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,Ubuntu,Droid Sans,sans-serif}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor-hover p{margin:0}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs-dark .view-overlays .current-line,.monaco-editor.vs .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs-dark .cursor,.monaco-editor.vs .cursor{background-color:windowtext!important}.monaco-editor.vs-dark .dnd-target,.monaco-editor.vs .dnd-target{border-color:windowtext!important}.monaco-editor.vs-dark .selected-text,.monaco-editor.vs .selected-text{background-color:highlight!important}.monaco-editor.vs-dark .view-line,.monaco-editor.vs .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .view-line span,.monaco-editor.vs .view-line span{color:windowtext!important}.monaco-editor.vs-dark .view-line span.inline-selected-text,.monaco-editor.vs .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs-dark .view-overlays,.monaco-editor.vs .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong,.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong{border:2px dotted highlight!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .rangeHighlight,.monaco-editor.vs .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs-dark .bracket-match,.monaco-editor.vs .bracket-match{border-color:windowtext!important;background:transparent!important}.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch,.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch{border:2px dotted activeborder!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .find-widget,.monaco-editor.vs .find-widget{border:1px solid windowtext}.monaco-editor.vs-dark .monaco-list .monaco-list-row,.monaco-editor.vs .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused,.monaco-editor.vs .monaco-list .monaco-list-row.focused{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover,.monaco-editor.vs .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row,.monaco-editor.vs .monaco-tree .monaco-tree-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.selected,.monaco-editor.vs .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs .monaco-tree .monaco-tree-row.selected{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row:hover,.monaco-editor.vs .monaco-tree .monaco-tree-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar,.monaco-editor.vs .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs-dark .decorationsOverviewRuler,.monaco-editor.vs .decorationsOverviewRuler{opacity:0}.monaco-editor.vs-dark .minimap,.monaco-editor.vs .minimap{display:none}.monaco-editor.vs-dark .squiggly-d-error,.monaco-editor.vs .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs-dark .squiggly-a-hint,.monaco-editor.vs .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-diff-editor.vs .diffOverviewRuler{display:none}.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert{background:transparent!important}}.context-view .monaco-menu{min-width:130px}.context-view-block{position:fixed;left:0;top:0;z-index:-1;width:100%;height:100%}"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n(function(){\nvar e,t,n=[\"require\",\"exports\",\"vs/base/common/lifecycle\",\"vs/editor/common/core/range\",\"vs/base/common/event\",\"vs/base/common/strings\",\"vs/base/browser/dom\",\"vs/nls\",\"vs/nls!vs/editor/editor.main\",\"vs/css!vs/editor/editor.main\",\"vs/base/common/errors\",\"vs/platform/instantiation/common/instantiation\",\"vs/editor/browser/editorExtensions\",\"vs/editor/common/core/position\",\"vs/platform/theme/common/themeService\",\"vs/base/common/async\",\"vs/base/common/platform\",\"vs/editor/common/modes\",\"vs/platform/contextkey/common/contextkey\",\"vs/base/common/arrays\",\"vs/platform/theme/common/colorRegistry\",\"vs/base/common/types\",\"vs/editor/common/core/selection\",\"vs/editor/common/editorContextKeys\",\"vs/base/browser/browser\",\"vs/base/common/uri\",\"vs/base/common/cancellation\",\"vs/base/common/color\",\"vs/base/browser/fastDomNode\",\"vs/platform/commands/common/commands\",\"vs/editor/common/model/textModel\",\"vs/base/common/objects\",\"vs/editor/browser/services/codeEditorService\",\"vs/editor/common/config/editorOptions\",\"vs/platform/keybinding/common/keybinding\",\"vs/platform/notification/common/notification\",\"vs/base/common/keyCodes\",\"vs/editor/browser/view/viewPart\",\"vs/base/common/map\",\"vs/base/common/resources\",\"vs/editor/common/controller/cursorCommon\",\"vs/editor/common/modes/languageConfigurationRegistry\",\"vs/platform/registry/common/platform\",\"vs/platform/configuration/common/configuration\",\"vs/editor/common/view/editorColorRegistry\",\"vs/base/browser/mouseEvent\",\"vs/base/common/network\",\"vs/base/browser/ui/widget\",\"vs/editor/common/model\",\"vs/editor/common/services/modelService\",\"vs/base/browser/ui/aria/aria\",\"vs/platform/opener/common/opener\",\"vs/base/browser/event\",\"vs/base/browser/ui/scrollbar/scrollableElement\",\"vs/base/common/iterator\",\"vs/base/common/actions\",\"vs/base/browser/keyboardEvent\",\"vs/base/browser/touch\",\"vs/editor/common/core/editOperation\",\"vs/editor/common/standaloneStrings\",\"vs/editor/browser/config/configuration\",\"vs/base/common/filters\",\"vs/editor/common/services/editorWorkerService\",\"vs/editor/common/modes/nullMode\",\"vs/platform/accessibility/common/accessibility\",\"vs/platform/actions/common/actions\",\"vs/platform/contextview/browser/contextView\",\"vs/editor/browser/core/editorState\",\"vs/editor/common/editorCommon\",\"vs/editor/common/viewModel/viewModel\",\"vs/base/browser/ui/actionbar/actionbar\",\"vs/editor/common/services/modeService\",\"vs/platform/markers/common/markers\",\"vs/platform/progress/common/progress\",\"vs/platform/storage/common/storage\",\"vs/base/common/htmlContent\",\"vs/base/common/linkedList\",\"vs/base/common/path\",\"vs/base/browser/globalMouseMoveMonitor\",\"vs/editor/common/core/characterClassifier\",\"vs/editor/common/commands/replaceCommand\",\"vs/editor/common/view/viewEvents\",\"vs/editor/browser/view/dynamicViewOverlay\",\"vs/platform/instantiation/common/extensions\",\"vs/editor/common/services/resolverService\",\"vs/platform/configuration/common/configurationRegistry\",\"vs/platform/keybinding/common/keybindingsRegistry\",\"vs/base/common/collections\",\"vs/base/browser/canIUse\",\"vs/editor/common/controller/wordCharacterClassifier\",\"vs/editor/common/modes/languageConfiguration\",\"vs/editor/common/view/renderingContext\",\"vs/editor/common/viewModel/viewEventHandler\",\"vs/editor/common/core/lineTokens\",\"vs/editor/standalone/common/standaloneThemeService\",\"vs/platform/log/common/log\",\"vs/platform/telemetry/common/telemetry\",\"vs/platform/theme/common/styler\",\"vs/base/browser/dnd\",\"vs/base/browser/ui/tree/tree\",\"vs/base/common/codicons\",\"vs/base/common/decorators\",\"vs/base/common/functional\",\"vs/base/common/range\",\"vs/base/browser/ui/sash/sash\",\"vs/editor/common/config/editorZoom\",\"vs/editor/common/core/stringBuilder\",\"vs/editor/common/core/token\",\"vs/editor/browser/editorBrowser\",\"vs/editor/common/model/wordHelper\",\"vs/editor/common/viewLayout/viewLineRenderer\",\"vs/editor/contrib/codeAction/types\",\"vs/base/common/severity\",\"vs/editor/contrib/gotoSymbol/referencesModel\",\"vs/editor/common/services/textResourceConfigurationService\",\"vs/platform/instantiation/common/serviceCollection\",\"vs/platform/label/common/label\",\"vs/editor/contrib/markdown/markdownRenderer\",\"vs/editor/common/modes/modesRegistry\",\"vs/editor/contrib/codeAction/codeAction\",\"vs/editor/contrib/suggest/suggest\",\"vs/editor/browser/widget/codeEditorWidget\",\"vs/editor/contrib/message/messageController\",\"vs/editor/contrib/peekView/peekView\",\"vs/base/common/assert\",\"vs/base/common/hash\",\"vs/base/common/diff/diff\",\"vs/base/common/idGenerator\",\"vs/base/common/lazy\",\"vs/base/browser/ui/tree/indexTreeModel\",\"vs/base/browser/ui/tree/objectTreeModel\",\"vs/base/common/numbers\",\"vs/base/common/stopwatch\",\"vs/base/browser/ui/highlightedlabel/highlightedLabel\",\"vs/base/browser/formattedTextRenderer\",\"vs/base/browser/ui/scrollbar/scrollbarArrow\",\"vs/base/common/labels\",\"vs/base/parts/tree/browser/treeDefaults\",\"vs/base/browser/ui/checkbox/checkbox\",\"vs/base/browser/ui/iconLabel/iconLabel\",\"vs/base/browser/ui/list/listView\",\"vs/editor/browser/editorDom\",\"vs/editor/common/config/fontInfo\",\"vs/editor/browser/view/viewLayer\",\"vs/editor/common/model/textModelSearch\",\"vs/editor/common/modes/supports\",\"vs/editor/common/modes/supports/richEditBrackets\",\"vs/editor/common/standalone/standaloneEnums\",\"vs/editor/common/viewLayout/lineDecorations\",\"vs/editor/browser/viewParts/glyphMargin/glyphMargin\",\"vs/editor/contrib/folding/foldingRanges\",\"vs/editor/contrib/snippet/snippetParser\",\"vs/base/browser/ui/inputbox/inputBox\",\"vs/base/browser/ui/list/listWidget\",\"vs/base/browser/ui/tree/abstractTree\",\"vs/base/parts/quickopen/browser/quickOpenModel\",\"vs/editor/browser/services/bulkEditService\",\"vs/editor/common/model/tokensStore\",\"vs/editor/common/controller/cursorMoveOperations\",\"vs/editor/common/controller/cursorTypeOperations\",\"vs/editor/common/controller/cursorWordOperations\",\"vs/editor/common/viewModel/splitLinesCollection\",\"vs/platform/clipboard/common/clipboardService\",\"vs/editor/common/config/commonEditorConfig\",\"vs/editor/browser/controller/coreCommands\",\"vs/editor/contrib/parameterHints/provideSignatureHelp\",\"vs/editor/browser/controller/mouseTarget\",\"vs/editor/browser/widget/embeddedCodeEditorWidget\",\"vs/editor/contrib/find/findModel\",\"vs/editor/standalone/browser/quickOpen/editorQuickOpen\",\"vs/platform/list/browser/listService\",\"vs/platform/workspace/common/workspace\",\"vs/editor/standalone/browser/simpleServices\",\"vs/editor/contrib/snippet/snippetController2\",\"vs/base/browser/iframe\",\"vs/base/browser/ui/scrollbar/scrollbarState\",\"vs/base/common/scrollable\",\"vs/base/common/extpath\",\"vs/base/common/glob\",\"vs/base/common/uint\",\"vs/base/common/marshalling\",\"vs/base/browser/ui/scrollbar/abstractScrollbar\",\"vs/base/common/worker/simpleWorker\",\"vs/base/browser/ui/codiconLabel/codiconLabel\",\"vs/css!vs/base/browser/ui/findinput/findInput\",\"vs/editor/browser/config/elementSizeObserver\",\"vs/editor/browser/viewParts/minimap/minimapCharSheet\",\"vs/editor/browser/controller/textAreaState\",\"vs/editor/browser/widget/diffNavigator\",\"vs/editor/browser/controller/textAreaInput\",\"vs/editor/common/editorAction\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase\",\"vs/editor/common/standalone/standaloneBase\",\"vs/editor/common/view/overviewZoneManager\",\"vs/editor/common/viewModel/prefixSumComputer\",\"vs/editor/browser/viewParts/margin/margin\",\"vs/editor/contrib/comment/blockCommentCommand\",\"vs/editor/contrib/folding/syntaxRangeProvider\",\"vs/editor/contrib/format/formattingEdit\",\"vs/editor/contrib/gotoSymbol/link/clickLinkGesture\",\"vs/editor/contrib/hover/hoverOperation\",\"vs/editor/contrib/hover/hoverWidgets\",\"vs/editor/contrib/smartSelect/bracketSelections\",\"vs/editor/standalone/common/monarch/monarchCommon\",\"vs/base/browser/ui/findinput/findInputCheckboxes\",\"vs/base/browser/ui/menu/menu\",\"vs/base/browser/ui/tree/objectTree\",\"vs/base/common/keybindingLabels\",\"vs/platform/files/common/files\",\"vs/platform/instantiation/common/descriptors\",\"vs/editor/common/services/markersDecorationService\",\"vs/editor/common/commands/shiftCommand\",\"vs/editor/common/controller/cursorDeleteOperations\",\"vs/editor/common/controller/cursorMoveCommands\",\"vs/editor/common/modes/textToHtmlTokenizer\",\"vs/editor/common/viewModel/minimapTokensColorTracker\",\"vs/editor/standalone/common/monarch/monarchLexer\",\"vs/platform/keybinding/common/keybindingResolver\",\"vs/platform/layout/browser/layoutService\",\"vs/editor/common/services/editorWorkerServiceImpl\",\"vs/platform/jsonschemas/common/jsonContributionRegistry\",\"vs/editor/contrib/codelens/codelens\",\"vs/editor/contrib/colorPicker/color\",\"vs/editor/contrib/colorPicker/colorDetector\",\"vs/editor/contrib/gotoSymbol/goToSymbol\",\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",\"vs/editor/contrib/wordOperations/wordOperations\",\"vs/editor/browser/viewParts/lines/viewLine\",\"vs/editor/browser/view/viewOutgoingEvents\",\"vs/editor/browser/viewParts/lineNumbers/lineNumbers\",\"vs/editor/browser/widget/diffEditorWidget\",\"vs/editor/contrib/documentSymbols/outlineTree\",\"vs/editor/contrib/find/findController\",\"vs/editor/contrib/codeAction/codeActionCommands\",\"vs/editor/contrib/gotoSymbol/peek/referencesController\",\"vs/editor/contrib/gotoSymbol/goToCommands\",\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/editor/contrib/gotoError/gotoError\",\"vs/editor/standalone/browser/standaloneServices\",\"vs/base/browser/ui/list/list\",\"vs/base/browser/ui/list/splice\",\"vs/base/common/diff/diffChange\",\"vs/base/common/history\",\"vs/base/browser/ui/tree/compressedObjectTreeModel\",\"vs/base/browser/ui/scrollbar/scrollbarVisibilityController\",\"vs/base/common/process\",\"vs/base/browser/ui/list/rangeMap\",\"vs/base/common/search\",\"vs/base/browser/markdownRenderer\",\"vs/base/browser/ui/list/rowCache\",\"vs/base/browser/ui/scrollbar/horizontalScrollbar\",\"vs/base/browser/ui/scrollbar/verticalScrollbar\",\"vs/base/common/mime\",\"vs/base/parts/quickopen/browser/quickOpenViewer\",\"vs/base/parts/tree/browser/tree\",\"vs/base/parts/tree/browser/treeDnd\",\"vs/base/parts/tree/browser/treeModel\",\"vs/base/parts/tree/browser/treeViewModel\",\"vs/base/worker/defaultWorkerFactory\",\"vs/css!vs/base/browser/ui/actionbar/actionbar\",\"vs/css!vs/base/browser/ui/aria/aria\",\"vs/css!vs/base/browser/ui/checkbox/checkbox\",\"vs/css!vs/base/browser/ui/codiconLabel/codicon/codicon\",\"vs/css!vs/base/browser/ui/codiconLabel/codicon/codicon-animations\",\"vs/css!vs/base/browser/ui/contextview/contextview\",\"vs/base/browser/ui/contextview/contextview\",\"vs/css!vs/base/browser/ui/countBadge/countBadge\",\"vs/base/browser/ui/countBadge/countBadge\",\"vs/css!vs/base/browser/ui/iconLabel/iconlabel\",\"vs/css!vs/base/browser/ui/inputbox/inputBox\",\"vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/css!vs/base/browser/ui/list/list\",\"vs/css!vs/base/browser/ui/menu/menu\",\"vs/css!vs/base/browser/ui/progressbar/progressbar\",\"vs/base/browser/ui/progressbar/progressbar\",\"vs/css!vs/base/browser/ui/sash/sash\",\"vs/css!vs/base/browser/ui/scrollbar/media/scrollbars\",\"vs/base/parts/tree/browser/treeView\",\"vs/css!vs/base/browser/ui/splitview/splitview\",\"vs/base/browser/ui/splitview/splitview\",\"vs/css!vs/base/browser/ui/tree/media/tree\",\"vs/css!vs/base/parts/quickopen/browser/quickopen\",\"vs/css!vs/base/parts/tree/browser/tree\",\"vs/base/parts/tree/browser/treeImpl\",\"vs/css!vs/editor/browser/controller/textAreaHandler\",\"vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight\",\"vs/css!vs/editor/browser/viewParts/decorations/decorations\",\"vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin\",\"vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides\",\"vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers\",\"vs/css!vs/editor/browser/viewParts/lines/viewLines\",\"vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations\",\"vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations\",\"vs/css!vs/editor/browser/viewParts/minimap/minimap\",\"vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets\",\"vs/css!vs/editor/browser/viewParts/rulers/rulers\",\"vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration\",\"vs/css!vs/editor/browser/viewParts/selections/selections\",\"vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors\",\"vs/css!vs/editor/browser/widget/media/diffEditor\",\"vs/css!vs/editor/browser/widget/media/diffReview\",\"vs/css!vs/editor/browser/widget/media/editor\",\"vs/css!vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/css!vs/editor/contrib/clipboard/clipboard\",\"vs/css!vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/css!vs/editor/contrib/codelens/codelensWidget\",\"vs/css!vs/editor/contrib/colorPicker/colorPicker\",\"vs/css!vs/editor/contrib/dnd/dnd\",\"vs/css!vs/editor/contrib/documentSymbols/media/outlineTree\",\"vs/css!vs/editor/contrib/documentSymbols/media/symbol-icons\",\"vs/css!vs/editor/contrib/find/findWidget\",\"vs/css!vs/editor/contrib/folding/folding\",\"vs/css!vs/editor/contrib/gotoError/media/gotoErrorWidget\",\"vs/css!vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/css!vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/css!vs/editor/contrib/hover/hover\",\"vs/css!vs/editor/contrib/links/links\",\"vs/css!vs/editor/contrib/message/messageController\",\"vs/css!vs/editor/contrib/parameterHints/parameterHints\",\"vs/css!vs/editor/contrib/peekView/media/peekViewWidget\",\"vs/css!vs/editor/contrib/rename/renameInputField\",\"vs/css!vs/editor/contrib/snippet/snippetSession\",\"vs/css!vs/editor/contrib/suggest/media/suggest\",\"vs/css!vs/editor/contrib/suggest/media/suggestStatusBar\",\"vs/css!vs/editor/contrib/zoneWidget/zoneWidget\",\"vs/css!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp\",\"vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard\",\"vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens\",\"vs/css!vs/editor/standalone/browser/quickOpen/editorQuickOpen\",\"vs/css!vs/editor/standalone/browser/quickOpen/gotoLine\",\"vs/css!vs/editor/standalone/browser/quickOpen/quickOutline\",\"vs/css!vs/editor/standalone/browser/standalone-tokens\",\"vs/css!vs/platform/contextview/browser/contextMenuHandler\",\"vs/editor/browser/config/charWidthReader\",\"vs/editor/browser/services/abstractCodeEditorService\",\"vs/editor/browser/viewParts/minimap/minimapCharRenderer\",\"vs/editor/browser/viewParts/minimap/minimapPreBaked\",\"vs/editor/browser/viewParts/minimap/minimapCharRendererFactory\",\"vs/editor/common/commands/trimTrailingWhitespaceCommand\",\"vs/editor/common/core/rgba\",\"vs/editor/common/commands/surroundSelectionCommand\",\"vs/editor/common/diff/diffComputer\",\"vs/editor/common/model/editStack\",\"vs/editor/common/model/indentationGuesser\",\"vs/editor/common/model/intervalTree\",\"vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase\",\"vs/editor/common/model/textModelEvents\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder\",\"vs/editor/common/modes/abstractMode\",\"vs/editor/common/modes/languageSelector\",\"vs/editor/common/modes/linkComputer\",\"vs/editor/common/modes/supports/characterPair\",\"vs/editor/common/modes/supports/indentRules\",\"vs/editor/common/modes/supports/inplaceReplaceSupport\",\"vs/editor/common/modes/supports/onEnter\",\"vs/editor/common/modes/supports/electricCharacter\",\"vs/editor/common/modes/supports/tokenization\",\"vs/editor/common/modes/tokenizationRegistry\",\"vs/editor/browser/viewParts/lines/rangeUtil\",\"vs/editor/common/view/viewContext\",\"vs/editor/common/view/viewEventDispatcher\",\"vs/editor/common/viewLayout/linesLayout\",\"vs/editor/common/viewLayout/viewLinesViewportData\",\"vs/editor/common/model/mirrorTextModel\",\"vs/editor/common/services/editorSimpleWorker\",\"vs/editor/browser/viewParts/contentWidgets/contentWidgets\",\"vs/editor/browser/viewParts/decorations/decorations\",\"vs/editor/browser/viewParts/linesDecorations/linesDecorations\",\"vs/editor/browser/viewParts/marginDecorations/marginDecorations\",\"vs/editor/browser/viewParts/overlayWidgets/overlayWidgets\",\"vs/editor/browser/viewParts/overviewRuler/overviewRuler\",\"vs/editor/browser/viewParts/viewZones/viewZones\",\"vs/editor/common/viewLayout/viewLayout\",\"vs/editor/contrib/caretOperations/moveCaretCommand\",\"vs/editor/contrib/colorPicker/colorPickerModel\",\"vs/editor/contrib/comment/lineCommentCommand\",\"vs/editor/contrib/dnd/dragAndDropCommand\",\"vs/editor/contrib/find/findState\",\"vs/editor/contrib/find/replaceAllCommand\",\"vs/editor/contrib/find/replacePattern\",\"vs/editor/contrib/folding/foldingModel\",\"vs/editor/contrib/folding/hiddenRangeModel\",\"vs/editor/contrib/folding/intializingRangeProvider\",\"vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand\",\"vs/editor/contrib/indentation/indentUtils\",\"vs/editor/contrib/linesOperations/copyLinesCommand\",\"vs/editor/contrib/linesOperations/sortLinesCommand\",\"vs/editor/contrib/smartSelect/wordSelections\",\"vs/editor/contrib/suggest/completionModel\",\"vs/editor/contrib/suggest/suggestCommitCharacters\",\"vs/editor/contrib/suggest/suggestRangeHighlighter\",\"vs/editor/contrib/suggest/wordDistance\",\"vs/editor/standalone/common/monarch/monarchCompile\",\"vs/nls!vs/base/browser/ui/actionbar/actionbar\",\"vs/nls!vs/base/browser/ui/aria/aria\",\"vs/nls!vs/base/browser/ui/findinput/findInput\",\"vs/nls!vs/base/browser/ui/findinput/findInputCheckboxes\",\"vs/nls!vs/base/browser/ui/findinput/replaceInput\",\"vs/nls!vs/base/browser/ui/inputbox/inputBox\",\"vs/base/browser/ui/findinput/findInput\",\"vs/base/browser/ui/findinput/replaceInput\",\"vs/nls!vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/nls!vs/base/browser/ui/list/listWidget\",\"vs/nls!vs/base/browser/ui/menu/menu\",\"vs/base/browser/contextmenu\",\"vs/nls!vs/base/browser/ui/tree/abstractTree\",\"vs/base/browser/ui/tree/dataTree\",\"vs/base/browser/ui/tree/asyncDataTree\",\"vs/nls!vs/base/common/keybindingLabels\",\"vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/nls!vs/base/common/severity\",\"vs/nls!vs/base/parts/quickopen/browser/quickOpenModel\",\"vs/nls!vs/base/parts/quickopen/browser/quickOpenWidget\",\"vs/base/parts/quickopen/browser/quickOpenWidget\",\"vs/nls!vs/editor/browser/controller/coreCommands\",\"vs/nls!vs/editor/browser/controller/textAreaHandler\",\"vs/nls!vs/editor/browser/widget/codeEditorWidget\",\"vs/nls!vs/editor/browser/widget/diffEditorWidget\",\"vs/nls!vs/editor/browser/widget/diffReview\",\"vs/nls!vs/editor/browser/widget/inlineDiffMargin\",\"vs/editor/browser/widget/inlineDiffMargin\",\"vs/nls!vs/editor/common/config/commonEditorConfig\",\"vs/nls!vs/editor/common/config/editorOptions\",\"vs/editor/common/viewModel/viewModelDecorations\",\"vs/nls!vs/editor/common/modes/modesRegistry\",\"vs/nls!vs/editor/common/standaloneStrings\",\"vs/nls!vs/editor/common/view/editorColorRegistry\",\"vs/nls!vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/nls!vs/editor/contrib/caretOperations/caretOperations\",\"vs/nls!vs/editor/contrib/caretOperations/transpose\",\"vs/nls!vs/editor/contrib/clipboard/clipboard\",\"vs/nls!vs/editor/contrib/codeAction/codeActionCommands\",\"vs/nls!vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/nls!vs/editor/contrib/comment/comment\",\"vs/nls!vs/editor/contrib/contextmenu/contextmenu\",\"vs/nls!vs/editor/contrib/cursorUndo/cursorUndo\",\"vs/nls!vs/editor/contrib/documentSymbols/outlineTree\",\"vs/nls!vs/editor/contrib/find/findController\",\"vs/nls!vs/editor/contrib/find/findWidget\",\"vs/nls!vs/editor/contrib/folding/folding\",\"vs/nls!vs/editor/contrib/fontZoom/fontZoom\",\"vs/nls!vs/editor/contrib/format/format\",\"vs/nls!vs/editor/contrib/format/formatActions\",\"vs/nls!vs/editor/contrib/gotoError/gotoError\",\"vs/nls!vs/editor/contrib/gotoError/gotoErrorWidget\",\"vs/nls!vs/editor/contrib/gotoSymbol/goToCommands\",\"vs/nls!vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesController\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesTree\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/nls!vs/editor/contrib/gotoSymbol/referencesModel\",\"vs/nls!vs/editor/contrib/gotoSymbol/symbolNavigation\",\"vs/nls!vs/editor/contrib/hover/hover\",\"vs/nls!vs/editor/contrib/hover/modesContentHover\",\"vs/nls!vs/editor/contrib/inPlaceReplace/inPlaceReplace\",\"vs/nls!vs/editor/contrib/linesOperations/linesOperations\",\"vs/nls!vs/editor/contrib/links/links\",\"vs/nls!vs/editor/contrib/message/messageController\",\"vs/nls!vs/editor/contrib/multicursor/multicursor\",\"vs/nls!vs/editor/contrib/parameterHints/parameterHints\",\"vs/nls!vs/editor/contrib/parameterHints/parameterHintsWidget\",\"vs/nls!vs/editor/contrib/peekView/peekView\",\"vs/nls!vs/editor/contrib/rename/rename\",\"vs/nls!vs/editor/contrib/rename/renameInputField\",\"vs/nls!vs/editor/contrib/smartSelect/smartSelect\",\"vs/nls!vs/editor/contrib/snippet/snippetVariables\",\"vs/nls!vs/editor/contrib/suggest/suggestController\",\"vs/nls!vs/editor/contrib/suggest/suggestWidget\",\"vs/nls!vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",\"vs/nls!vs/editor/contrib/tokenization/tokenization\",\"vs/nls!vs/editor/contrib/wordHighlighter/wordHighlighter\",\"vs/nls!vs/platform/configuration/common/configurationRegistry\",\"vs/nls!vs/platform/keybinding/common/abstractKeybindingService\",\"vs/nls!vs/platform/list/browser/listService\",\"vs/nls!vs/platform/markers/common/markers\",\"vs/nls!vs/platform/theme/common/colorRegistry\",\"vs/platform/contextkey/common/contextkeys\",\"vs/platform/editor/common/editor\",\"vs/platform/extensions/common/extensions\",\"vs/platform/instantiation/common/graph\",\"vs/editor/common/modes/languageFeatureRegistry\",\"vs/editor/common/model/textModelTokens\",\"vs/editor/common/controller/cursorColumnSelection\",\"vs/editor/common/controller/oneCursor\",\"vs/editor/common/controller/cursorCollection\",\"vs/editor/common/controller/cursor\",\"vs/editor/common/viewModel/monospaceLineBreaksComputer\",\"vs/editor/common/viewModel/viewModelImpl\",\"vs/editor/contrib/documentSymbols/outlineModel\",\"vs/editor/contrib/folding/foldingDecorations\",\"vs/editor/contrib/folding/indentRangeProvider\",\"vs/editor/contrib/linesOperations/moveLinesCommand\",\"vs/editor/contrib/zoneWidget/zoneWidget\",\"vs/editor/standalone/browser/colorizer\",\"vs/editor/contrib/links/getLinks\",\"vs/editor/contrib/quickOpen/quickOpen\",\"vs/editor/contrib/suggest/suggestAlternatives\",\"vs/editor/contrib/suggest/wordContextKey\",\"vs/platform/actions/common/menuService\",\"vs/platform/dialogs/common/dialogs\",\"vs/platform/instantiation/common/instantiationService\",\"vs/platform/keybinding/common/abstractKeybindingService\",\"vs/platform/keybinding/common/baseResolvedKeybinding\",\"vs/platform/keybinding/common/resolvedKeybindingItem\",\"vs/platform/keybinding/common/usLayoutResolvedKeybinding\",\"vs/platform/contextview/browser/contextViewService\",\"vs/editor/common/services/webWorker\",\"vs/platform/markers/common/markerService\",\"vs/editor/browser/services/openerService\",\"vs/editor/contrib/hover/modesGlyphHover\",\"vs/editor/common/services/getIconClasses\",\"vs/editor/browser/view/domLineBreaksComputer\",\"vs/editor/browser/view/viewOverlays\",\"vs/editor/browser/viewParts/viewCursors/viewCursor\",\"vs/editor/common/services/languagesRegistry\",\"vs/editor/common/services/modeServiceImpl\",\"vs/platform/accessibility/common/accessibilityService\",\"vs/platform/configuration/common/configurationModels\",\"vs/platform/contextkey/browser/contextKeyService\",\"vs/platform/browser/contextScopedHistoryWidget\",\"vs/editor/contrib/suggest/suggestMemory\",\"vs/editor/browser/core/keybindingCancellation\",\"vs/editor/browser/view/viewController\",\"vs/editor/contrib/caretOperations/caretOperations\",\"vs/editor/contrib/caretOperations/transpose\",\"vs/editor/contrib/clipboard/clipboard\",\"vs/editor/contrib/codeAction/codeActionMenu\",\"vs/editor/contrib/codeAction/codeActionModel\",\"vs/editor/contrib/codelens/codeLensCache\",\"vs/editor/contrib/comment/comment\",\"vs/editor/contrib/contextmenu/contextmenu\",\"vs/editor/contrib/cursorUndo/cursorUndo\",\"vs/editor/contrib/dnd/dnd\",\"vs/editor/contrib/fontZoom/fontZoom\",\"vs/editor/contrib/format/format\",\"vs/editor/contrib/format/formatActions\",\"vs/editor/contrib/gotoSymbol/symbolNavigation\",\"vs/editor/contrib/hover/getHover\",\"vs/editor/contrib/linesOperations/linesOperations\",\"vs/editor/contrib/parameterHints/parameterHintsModel\",\"vs/editor/contrib/smartSelect/smartSelect\",\"vs/editor/contrib/tokenization/tokenization\",\"vs/editor/contrib/wordPartOperations/wordPartOperations\",\"vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard\",\"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast\",\"vs/editor/standalone/browser/quickOpen/quickOpenEditorWidget\",\"vs/platform/contextview/browser/contextMenuHandler\",\"vs/editor/browser/services/codeEditorServiceImpl\",\"vs/editor/browser/viewParts/editorScrollbar/editorScrollbar\",\"vs/editor/browser/controller/mouseHandler\",\"vs/editor/browser/controller/pointerHandler\",\"vs/editor/browser/viewParts/lines/viewLines\",\"vs/editor/browser/viewParts/minimap/minimap\",\"vs/editor/browser/viewParts/scrollDecoration/scrollDecoration\",\"vs/editor/browser/viewParts/selections/selections\",\"vs/editor/common/services/modelServiceImpl\",\"vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight\",\"vs/editor/browser/viewParts/indentGuides/indentGuides\",\"vs/editor/browser/controller/textAreaHandler\",\"vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler\",\"vs/editor/browser/viewParts/rulers/rulers\",\"vs/editor/browser/viewParts/viewCursors/viewCursors\",\"vs/editor/browser/view/viewImpl\",\"vs/editor/browser/widget/diffReview\",\"vs/editor/common/services/markerDecorationsServiceImpl\",\"vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/editor/contrib/codelens/codelensWidget\",\"vs/editor/contrib/codelens/codelensController\",\"vs/editor/contrib/colorPicker/colorPickerWidget\",\"vs/editor/contrib/find/findDecorations\",\"vs/editor/contrib/find/findOptionsWidget\",\"vs/editor/contrib/find/findWidget\",\"vs/editor/contrib/folding/folding\",\"vs/editor/contrib/gotoSymbol/peek/referencesTree\",\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\",\"vs/editor/contrib/links/links\",\"vs/editor/contrib/codeAction/codeActionUi\",\"vs/editor/contrib/codeAction/codeActionContributions\",\"vs/editor/contrib/multicursor/multicursor\",\"vs/editor/contrib/parameterHints/parameterHintsWidget\",\"vs/editor/contrib/parameterHints/parameterHints\",\"vs/editor/contrib/rename/renameInputField\",\"vs/editor/contrib/rename/rename\",\"vs/editor/contrib/suggest/suggestWidget\",\"vs/editor/contrib/wordHighlighter/wordHighlighter\",\"vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp\",\"vs/editor/standalone/browser/inspectTokens/inspectTokens\",\"vs/editor/standalone/browser/quickOpen/gotoLine\",\"vs/editor/standalone/browser/quickOpen/quickCommand\",\"vs/editor/standalone/browser/quickOpen/quickOutline\",\"vs/editor/standalone/browser/standaloneCodeServiceImpl\",\"vs/editor/standalone/common/themes\",\"vs/editor/standalone/browser/standaloneThemeServiceImpl\",\"vs/platform/contextview/browser/contextMenuService\",\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch\",\"vs/platform/severityIcon/common/severityIcon\",\"vs/editor/contrib/gotoError/gotoErrorWidget\",\"vs/editor/contrib/hover/modesContentHover\",\"vs/editor/contrib/hover/hover\",\"vs/editor/standalone/browser/standaloneCodeEditor\",\"vs/editor/standalone/browser/standaloneEditor\",\"vs/editor/standalone/browser/standaloneLanguages\",\"vs/editor/editor.api\",\"vs/platform/workspaces/common/workspaces\",\"vs/editor/contrib/snippet/snippetVariables\",\"vs/editor/contrib/snippet/snippetSession\",\"vs/editor/contrib/suggest/suggestModel\",\"vs/editor/contrib/suggest/suggestController\",\"vs/editor/editor.all\",\"vs/base/common/marked/marked\",\"vs/base/common/insane/insane\",\"vs/editor/common/standalone/promise-polyfill/polyfill\",\"vs/editor/edcore.main\"],i=function(e){\nfor(var t=[],i=0,o=e.length;i<o;i++)t[i]=n[e[i]];return t};!function(e){var t=function(){function e(){this._pendingLoads=0}return e.prototype.attachListeners=function(e,t,n,i){var o=function(){t.removeEventListener(\"load\",r),t.removeEventListener(\"error\",s)},r=function(e){o(),n()},s=function(e){o(),i(e)};t.addEventListener(\"load\",r),t.addEventListener(\"error\",s)},e.prototype._onLoad=function(e,t){this._pendingLoads--,t()},e.prototype._onLoadError=function(e,t,n){this._pendingLoads--,t(n)},e.prototype._insertLinkNode=function(e){this._pendingLoads++;var t=document.head||document.getElementsByTagName(\"head\")[0],n=t.getElementsByTagName(\"link\")||document.head.getElementsByTagName(\"script\");n.length>0?t.insertBefore(e,n[n.length-1]):t.appendChild(e)},e.prototype.createLinkTag=function(e,t,n,i){var o=this,r=document.createElement(\"link\");r.setAttribute(\"rel\",\"stylesheet\"),r.setAttribute(\"type\",\"text/css\"),r.setAttribute(\"data-name\",e);return this.attachListeners(e,r,(function(){return o._onLoad(e,n)\n}),(function(t){return o._onLoadError(e,i,t)})),r.setAttribute(\"href\",t),r},e.prototype._linkTagExists=function(e,t){var n,i,o,r,s=document.getElementsByTagName(\"link\");for(n=0,i=s.length;n<i;n++)if(o=s[n].getAttribute(\"data-name\"),r=s[n].getAttribute(\"href\"),o===e||r===t)return!0;return!1},e.prototype.load=function(e,t,n,i){if(this._linkTagExists(e,t))n();else{var o=this.createLinkTag(e,t,n,i);this._insertLinkNode(o)}},e}(),n=function(){function e(){this._cssLoader=new t}return e.prototype.load=function(e,t,n){var i=t.toUrl(e+\".css\");this._cssLoader.load(e,i,(function(e){n({})}),(function(e){\"function\"==typeof n.error&&n.error(\"Could not find \"+i+\" or it was empty\")}))},e}();e.CSSPlugin=n,define(\"vs/css\",new n)}(e||(e={})),function(e){var t=function(){function e(){this._detected=!1,this._isPseudo=!1}return Object.defineProperty(e.prototype,\"isPseudo\",{get:function(){return this._detect(),this._isPseudo},enumerable:!0,configurable:!0}),e.prototype._detect=function(){this._detected||(this._detected=!0,\nthis._isPseudo=\"undefined\"!=typeof document&&document.location&&document.location.hash.indexOf(\"pseudo=true\")>=0)},e}();function n(e,t,n){var i;return i=0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0],o=t[i],r=e;return\"string\"==typeof o?r=o:\"number\"!=typeof o&&\"boolean\"!=typeof o&&null!=o||(r=String(o)),r})),n.isPseudo&&(i=\"［\"+i.replace(/[aouei]/g,\"$&$&\")+\"］\"),i}function i(e,t,i){for(var o=[],r=3;r<arguments.length;r++)o[r-3]=arguments[r];return n(i,o,e)}function o(e,t){return function(i,o){var r=Array.prototype.slice.call(arguments,2);return n(e[i],r,t)}}var r=function(){function e(e){var t=this;this._env=e,this.localize=function(e,n){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];return i.apply(void 0,[t._env,e,n].concat(o))}}return e.prototype.setPseudoTranslation=function(e){this._env._isPseudo=e},e.prototype.create=function(e,t){return{localize:o(t[e],this._env)}},e.prototype.load=function(t,n,i,r){var s=this;if(r=r||{},t&&0!==t.length){\nvar a=r[\"vs/nls\"]||{},l=a.availableLanguages?function(e,t){var n=e[t];return n||((n=e[\"*\"])||null)}(a.availableLanguages,t):null,u=\".nls\";null!==l&&l!==e.DEFAULT_TAG&&(u=u+\".\"+l);var d=function(e){Array.isArray(e)?e.localize=o(e,s._env):e.localize=o(e[t],s._env),i(e)};\"function\"==typeof a.loadBundle?a.loadBundle(t,l,(function(e,i){e?n([t+\".nls\"],d):d(i)})):n([t+u],d)}else i({localize:this.localize})},e.DEFAULT_TAG=\"i-default\",e}();e.NLSPlugin=r,define(\"vs/nls\",new r(new t))}(t||(t={})),define(n[98],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.DataTransfers={RESOURCES:\"ResourceURLs\",DOWNLOAD_URL:\"DownloadURL\",FILES:\"Files\",TEXT:\"text/plain\"};var n=function(){function e(e){this.data=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.data},e}();t.DragAndDropData=n,t.StaticDND={CurrentDragAndDropData:void 0}})),define(n[174],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=null\n;function o(e){if(!e.parent||e.parent===e)return null;try{var t=e.location,i=e.parent.location;if(t.protocol!==i.protocol||t.hostname!==i.hostname||t.port!==i.port)return n=!0,null}catch(e){return n=!0,null}return e.parent}function r(e,t){for(var n,i=e.document.getElementsByTagName(\"iframe\"),o=0,r=i.length;o<r;o++)if((n=i[o]).contentWindow===t)return n;return null}var s=function(){function e(){}return e.getSameOriginWindowChain=function(){if(!i){i=[];var e,t=window;do{(e=o(t))?i.push({window:t,iframeElement:r(e,t)}):i.push({window:t,iframeElement:null}),t=e}while(t)}return i.slice(0)},e.hasDifferentOriginAncestor=function(){return i||this.getSameOriginWindowChain(),n},e.getPositionOfChildWindowRelativeToAncestorWindow=function(e,t){if(!t||e===t)return{top:0,left:0};for(var n=0,i=0,o=0,r=this.getSameOriginWindowChain();o<r.length;o++){var s=r[o];if(s.window===t)break;if(!s.iframeElement)break;var a=s.iframeElement.getBoundingClientRect();n+=a.top,i+=a.left}return{top:n,left:i}},e}();t.IframeUtils=s}))\n;var o,r=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});\n/*\nThe MIT License (MIT)\n\nCopyright © 2015 Nicolas Bevacqua\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nlet s;define(n[239],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.TREE=\"tree\",e.FORM=\"form\"}(t.ListAriaRootRole||(t.ListAriaRootRole={}));var n=function(e){function t(t,n){return e.call(this,\"ListError [\"+t+\"] \"+n)||this}return r(t,e),t}(Error);t.ListError=n})),define(n[240],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.spliceables=e}return e.prototype.splice=function(e,t,n){this.spliceables.forEach((function(i){return i.splice(e,t,n)}))},e}();t.CombinedSpliceable=n})),define(n[175],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i,o,r){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(n),this._arrowSize=Math.round(e),this._visibleSize=i,this._scrollSize=o,this._scrollPosition=r,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,\nthis._computedSliderPosition=0,this._refreshComputedValues()}return e.prototype.clone=function(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)},e.prototype.setVisibleSize=function(e){var t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollSize=function(e){var t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollPosition=function(e){var t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)},e._computeValues=function(e,t,n,i,o){var r=Math.max(0,n-e),s=Math.max(0,r-2*t),a=i>0&&i>n;if(!a)return{computedAvailableSize:Math.round(r),computedIsNeeded:a,computedSliderSize:Math.round(s),computedSliderRatio:0,computedSliderPosition:0};var l=Math.round(Math.max(20,Math.floor(n*s/i))),u=(s-l)/(i-n),d=o*u;return{computedAvailableSize:Math.round(r),\ncomputedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:u,computedSliderPosition:Math.round(d)}},e.prototype._refreshComputedValues=function(){var t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition},e.prototype.getArrowSize=function(){return this._arrowSize},e.prototype.getScrollPosition=function(){return this._scrollPosition},e.prototype.getRectangleLargeSize=function(){return this._computedAvailableSize},e.prototype.getRectangleSmallSize=function(){return this._scrollbarSize},e.prototype.isNeeded=function(){return this._computedIsNeeded},e.prototype.getSliderSize=function(){return this._computedSliderSize},e.prototype.getSliderPosition=function(){return this._computedSliderPosition},\ne.prototype.getDesiredScrollPositionFromOffset=function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)},e.prototype.getDesiredScrollPositionFromDelta=function(e){if(!this._computedIsNeeded)return 0;var t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)},e}();t.ScrollbarState=n})),define(n[99],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){function t(t,n){return e.call(this,\"TreeError [\"+t+\"] \"+n)||this}return r(t,e),t}(Error);t.TreeError=n;var i=function(){function e(e){this.fn=e,this._map=new WeakMap}return e.prototype.map=function(e){var t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t},e}();t.WeakMapper=i})),define(n[19],i([0,1]),(function(e,t){\"use strict\";function n(e,t){return function e(t,n,i,o,r){if(o<=i)return;var s=i+(o-i)/2|0;e(t,n,i,s,r);e(t,n,s+1,o,r);if(n(t[s],t[s+1])<=0)return;!function(e,t,n,i,o,r){\nfor(var s=n,a=i+1,l=n;l<=o;l++)r[l]=e[l];for(l=n;l<=o;l++)s>i?e[l]=r[a++]:a>o?e[l]=r[s++]:t(r[a],r[s])<0?e[l]=r[a++]:e[l]=r[s++]}(t,n,i,s,o,r)}(e,t,0,e.length-1,[]),e}function i(e,t){for(var n=0;n<e.length;n++){if(t(e[n]))return n}return-1}Object.defineProperty(t,\"__esModule\",{value:!0}),t.tail=function(e,t){return void 0===t&&(t=0),e[e.length-(1+t)]},t.tail2=function(e){if(0===e.length)throw new Error(\"Invalid tail call\");return[e.slice(0,e.length-1),e[e.length-1]]},t.equals=function(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var i=0,o=e.length;i<o;i++)if(!n(e[i],t[i]))return!1;return!0},t.binarySearch=function(e,t,n){for(var i=0,o=e.length-1;i<=o;){var r=(i+o)/2|0,s=n(e[r],t);if(s<0)i=r+1;else{if(!(s>0))return r;o=r-1}}return-(i+1)},t.findFirstInSorted=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var o=Math.floor((n+i)/2);t(e[o])?i=o:n=o+1}return n},t.mergeSort=n,t.groupBy=function(e,t){\nfor(var i=[],o=void 0,r=0,s=n(e.slice(0),t);r<s.length;r++){var a=s[r];o&&0===t(o[0],a)?o.push(a):(o=[a],i.push(o))}return i},t.coalesce=function(e){return e.filter((function(e){return!!e}))},t.isFalsyOrEmpty=function(e){return!Array.isArray(e)||0===e.length},t.isNonEmptyArray=function(e){return Array.isArray(e)&&e.length>0},t.distinct=function(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var i=t(e);return!n[i]&&(n[i]=!0,!0)}))},t.distinctES6=function(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))},t.fromSet=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.firstIndex=i,t.first=function(e,t,n){void 0===n&&(n=void 0);var o=i(e,t);return o<0?n:e[o]},t.firstOrDefault=function(e,t){return e.length>0?e[0]:t},t.flatten=function(e){var t;return(t=[]).concat.apply(t,e)},t.range=function(e,t){var n=\"number\"==typeof t?e:0;\"number\"==typeof t?n=e:(n=0,t=e);var i=[]\n;if(n<=t)for(var o=n;o<t;o++)i.push(o);else for(o=n;o>t;o--)i.push(o);return i},t.arrayInsert=function(e,t,n){var i=e.slice(0,t),o=e.slice(t);return i.concat(n,o)},t.pushToStart=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.find=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(t(i,n,e))return i}},t.asArray=function(e){return Array.isArray(e)?e:[e]}})),define(n[124],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ok=function(e,t){if(!e)throw new Error(t?\"Assertion failed (\"+t+\")\":\"Assertion Failed\")}})),define(n[100],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=/(\\\\)?\\$\\([a-z0-9\\-]+?(?:~[a-z0-9\\-]*?)?\\)/gi;t.escapeCodicons=function(e){return e.replace(n,(function(e,t){return t?e:\"\\\\\"+e}))};var i=/\\\\\\$\\([a-z0-9\\-]+?(?:~[a-z0-9\\-]*?)?\\)/gi;t.markdownEscapeEscapedCodicons=function(e){return e.replace(i,(function(e){\nreturn\"\\\\\"+e}))};var o=/(\\\\)?\\$\\((([a-z0-9\\-]+?)(?:~([a-z0-9\\-]*?))?)\\)/gi;t.renderCodicons=function(e){return e.replace(o,(function(e,t,n,i,o){return t?\"$(\"+n+\")\":'<span class=\"codicon codicon-'+i+(o?\" codicon-animation-\"+o:\"\")+'\"></span>'}))}})),define(n[87],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=Object.prototype.hasOwnProperty;t.values=function(e){var t=[];for(var i in e)n.call(e,i)&&t.push(e[i]);return t},t.first=function(e){for(var t in e)if(n.call(e,t))return e[t]},t.forEach=function(e,t){var i=function(i){if(n.call(e,i)&&!1===t({key:i,value:e[i]},(function(){delete e[i]})))return{value:void 0}};for(var o in e){var r=i(o);if(\"object\"==typeof r)return r.value}};var i=function(){function e(){this.map=new Map}return e.prototype.add=function(e,t){var n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)},e.prototype.delete=function(e,t){var n=this.map.get(e);n&&(n.delete(t),0===n.size&&this.map.delete(e))},e.prototype.forEach=function(e,t){\nvar n=this.map.get(e);n&&n.forEach(t)},e}();t.SetMap=i})),define(n[27],i([0,1]),(function(e,t){\"use strict\";function n(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,i,o){void 0===o&&(o=1),this.r=0|Math.min(255,Math.max(0,e)),this.g=0|Math.min(255,Math.max(0,t)),this.b=0|Math.min(255,Math.max(0,i)),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a},e}();t.RGBA=i;var o=function(){function e(e,t,i,o){this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.l=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a},e.fromRGBA=function(t){var n=t.r/255,i=t.g/255,o=t.b/255,r=t.a,s=Math.max(n,i,o),a=Math.min(n,i,o),l=0,u=0,d=(a+s)/2,c=s-a;if(c>0){switch(u=Math.min(d<=.5?c/(2*d):c/(2-2*d),1),s){case n:l=(i-o)/c+(i<o?6:0);break;case i:l=(o-n)/c+2;break\n;case o:l=(n-i)/c+4}l*=60,l=Math.round(l)}return new e(l,u,d,r)},e._hue2rgb=function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},e.toRGBA=function(t){var n,o,r,s=t.h/360,a=t.s,l=t.l,u=t.a;if(0===a)n=o=r=l;else{var d=l<.5?l*(1+a):l+a-l*a,c=2*l-d;n=e._hue2rgb(c,d,s+1/3),o=e._hue2rgb(c,d,s),r=e._hue2rgb(c,d,s-1/3)}return new i(Math.round(255*n),Math.round(255*o),Math.round(255*r),u)},e}();t.HSLA=o;var r=function(){function e(e,t,i,o){this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.v=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a},e.fromRGBA=function(t){var n,i=t.r/255,o=t.g/255,r=t.b/255,s=Math.max(i,o,r),a=s-Math.min(i,o,r),l=0===s?0:a/s;return n=0===a?0:s===i?((o-r)/a%6+6)%6:s===o?(r-i)/a+2:(i-o)/a+4,new e(Math.round(60*n),l,s,t.a)},e.toRGBA=function(e){\nvar t=e.h,n=e.s,o=e.v,r=e.a,s=o*n,a=s*(1-Math.abs(t/60%2-1)),l=o-s,u=[0,0,0],d=u[0],c=u[1],h=u[2];return t<60?(d=s,c=a):t<120?(d=a,c=s):t<180?(c=s,h=a):t<240?(c=a,h=s):t<300?(d=a,h=s):t<360&&(d=s,h=a),d=Math.round(255*(d+l)),c=Math.round(255*(c+l)),h=Math.round(255*(h+l)),new i(d,c,h,r)},e}();t.HSVA=r;var s=function(){function e(e){if(!e)throw new Error(\"Color needs a value\");if(e instanceof i)this.rgba=e;else if(e instanceof o)this._hsla=e,this.rgba=o.toRGBA(e);else{if(!(e instanceof r))throw new Error(\"Invalid color ctor argument\");this._hsva=e,this.rgba=r.toRGBA(e)}}return e.fromHex=function(t){return e.Format.CSS.parseHex(t)||e.red},Object.defineProperty(e.prototype,\"hsla\",{get:function(){return this._hsla?this._hsla:o.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hsva\",{get:function(){return this._hsva?this._hsva:r.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),e.prototype.equals=function(e){\nreturn!!e&&i.equals(this.rgba,e.rgba)&&o.equals(this.hsla,e.hsla)&&r.equals(this.hsva,e.hsva)},e.prototype.getRelativeLuminance=function(){return n(.2126*e._relativeLuminanceForComponent(this.rgba.r)+.7152*e._relativeLuminanceForComponent(this.rgba.g)+.0722*e._relativeLuminanceForComponent(this.rgba.b),4)},e._relativeLuminanceForComponent=function(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)},e.prototype.isLighter=function(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128},e.prototype.isLighterThan=function(e){return this.getRelativeLuminance()>e.getRelativeLuminance()},e.prototype.isDarkerThan=function(e){return this.getRelativeLuminance()<e.getRelativeLuminance()},e.prototype.lighten=function(t){return new e(new o(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*t,this.hsla.a))},e.prototype.darken=function(t){return new e(new o(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*t,this.hsla.a))},e.prototype.transparent=function(t){var n=this.rgba,o=n.r,r=n.g,s=n.b,a=n.a\n;return new e(new i(o,r,s,a*t))},e.prototype.isTransparent=function(){return 0===this.rgba.a},e.prototype.isOpaque=function(){return 1===this.rgba.a},e.prototype.opposite=function(){return new e(new i(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))},e.prototype.toString=function(){return\"\"+e.Format.CSS.format(this)},e.getLighterColor=function(e,t,n){if(e.isLighterThan(t))return e;n=n||.5;var i=e.getRelativeLuminance(),o=t.getRelativeLuminance();return n=n*(o-i)/o,e.lighten(n)},e.getDarkerColor=function(e,t,n){if(e.isDarkerThan(t))return e;n=n||.5;var i=e.getRelativeLuminance();return n=n*(i-t.getRelativeLuminance())/i,e.darken(n)},e.white=new e(new i(255,255,255,1)),e.black=new e(new i(0,0,0,1)),e.red=new e(new i(255,0,0,1)),e.blue=new e(new i(0,0,255,1)),e.cyan=new e(new i(0,255,255,1)),e.lightgrey=new e(new i(211,211,211,1)),e.transparent=new e(new i(0,0,0,0)),e}();t.Color=s,function(e){!function(t){!function(t){function n(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}function o(e){\nswitch(e){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:case 65:return 10;case 98:case 66:return 11;case 99:case 67:return 12;case 100:case 68:return 13;case 101:case 69:return 14;case 102:case 70:return 15}return 0}t.formatRGB=function(t){return 1===t.rgba.a?\"rgb(\"+t.rgba.r+\", \"+t.rgba.g+\", \"+t.rgba.b+\")\":e.Format.CSS.formatRGBA(t)},t.formatRGBA=function(e){return\"rgba(\"+e.rgba.r+\", \"+e.rgba.g+\", \"+e.rgba.b+\", \"+ +e.rgba.a.toFixed(2)+\")\"},t.formatHSL=function(t){return 1===t.hsla.a?\"hsl(\"+t.hsla.h+\", \"+(100*t.hsla.s).toFixed(2)+\"%, \"+(100*t.hsla.l).toFixed(2)+\"%)\":e.Format.CSS.formatHSLA(t)},t.formatHSLA=function(e){return\"hsla(\"+e.hsla.h+\", \"+(100*e.hsla.s).toFixed(2)+\"%, \"+(100*e.hsla.l).toFixed(2)+\"%, \"+e.hsla.a.toFixed(2)+\")\"},t.formatHex=function(e){return\"#\"+n(e.rgba.r)+n(e.rgba.g)+n(e.rgba.b)},t.formatHexA=function(t,i){return void 0===i&&(i=!1),\ni&&1===t.rgba.a?e.Format.CSS.formatHex(t):\"#\"+n(t.rgba.r)+n(t.rgba.g)+n(t.rgba.b)+n(Math.round(255*t.rgba.a))},t.format=function(t){return t.isOpaque()?e.Format.CSS.formatHex(t):e.Format.CSS.formatRGBA(t)},t.parseHex=function(t){var n=t.length;if(0===n)return null;if(35!==t.charCodeAt(0))return null;if(7===n){var r=16*o(t.charCodeAt(1))+o(t.charCodeAt(2)),s=16*o(t.charCodeAt(3))+o(t.charCodeAt(4)),a=16*o(t.charCodeAt(5))+o(t.charCodeAt(6));return new e(new i(r,s,a,1))}if(9===n){r=16*o(t.charCodeAt(1))+o(t.charCodeAt(2)),s=16*o(t.charCodeAt(3))+o(t.charCodeAt(4)),a=16*o(t.charCodeAt(5))+o(t.charCodeAt(6));var l=16*o(t.charCodeAt(7))+o(t.charCodeAt(8));return new e(new i(r,s,a,l/255))}if(4===n){r=o(t.charCodeAt(1)),s=o(t.charCodeAt(2)),a=o(t.charCodeAt(3));return new e(new i(16*r+r,16*s+s,16*a+a))}if(5===n){r=o(t.charCodeAt(1)),s=o(t.charCodeAt(2)),a=o(t.charCodeAt(3)),l=o(t.charCodeAt(4));return new e(new i(16*r+r,16*s+s,16*a+a,(16*l+l)/255))}return null}}(t.CSS||(t.CSS={}))}(e.Format||(e.Format={}))\n}(s=t.Color||(t.Color={})),t.Color=s})),define(n[101],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=0;function i(){var e=\"$memoize\"+n++,t=void 0,i=function(n,i,o){var r=null,s=null;if(\"function\"==typeof o.value?(r=\"value\",0!==(s=o.value).length&&console.warn(\"Memoize should only be used in functions with zero parameters\")):\"function\"==typeof o.get&&(r=\"get\",s=o.get),!s)throw new Error(\"not supported\");var a=e+\":\"+i;o[r]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t=this,this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!0,enumerable:!1,writable:!0,value:s.apply(this,e)}),this[a]}};return i.clear=function(){void 0!==t&&Object.getOwnPropertyNames(t).forEach((function(n){0===n.indexOf(e)&&delete t[n]}))},i}t.createMemoizer=i,t.memoize=function(e,t,n){return i()(e,t,n)}})),define(n[241],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){\nthis.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=i}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();t.DiffChange=n})),define(n[10],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){if(e.stack)throw new Error(e.message+\"\\n\\n\"+e.stack);throw e}),0)}}return e.prototype.emit=function(e){this.listeners.forEach((function(t){t(e)}))},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}();t.ErrorHandler=n,t.errorHandler=new n,t.onUnexpectedError=function(e){o(e)||t.errorHandler.onUnexpectedError(e)},t.onUnexpectedExternalError=function(e){o(e)||t.errorHandler.onUnexpectedExternalError(e)},\nt.transformErrorForSerialization=function(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e};var i=\"Canceled\";function o(e){return e instanceof Error&&e.name===i&&e.message===i}t.isPromiseCanceledError=o,t.canceled=function(){var e=new Error(i);return e.name=e.message,e},t.illegalArgument=function(e){return e?new Error(\"Illegal argument: \"+e):new Error(\"Illegal argument\")},t.illegalState=function(e){return e?new Error(\"Illegal state: \"+e):new Error(\"Illegal state\")}})),define(n[102],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.once=function(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}})),define(n[125],i([0,1]),(function(e,t){\"use strict\";function n(e,t){switch(void 0===t&&(t=0),typeof e){case\"object\":return null===e?i(349,t):Array.isArray(e)?(r=e,s=i(104579,s=t),r.reduce((function(e,t){return n(t,e)}),s)):function(e,t){return t=i(181387,t),\nObject.keys(e).sort().reduce((function(t,i){return t=o(i,t),n(e[i],t)}),t)}(e,t);case\"string\":return o(e,t);case\"boolean\":return function(e,t){return i(e?433:863,t)}(e,t);case\"number\":return i(e,t);case\"undefined\":return i(0,937);default:return i(0,617)}var r,s}function i(e,t){return(t<<5)-t+e|0}function o(e,t){t=i(149417,t);for(var n=0,o=e.length;n<o;n++)t=i(e.charCodeAt(n),t);return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hash=n,t.stringHash=o})),define(n[126],i([0,1,241,125]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this.source=e}return e.prototype.getElements=function(){for(var e=this.source,t=new Int32Array(e.length),n=0,i=e.length;n<i;n++)t[n]=e.charCodeAt(n);return t},e}();t.StringDiffSequence=o,t.stringDiff=function(e,t,n){return new l(new o(e),new o(t)).ComputeDiff(n).changes};var r=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}();t.Debug=r;var s=function(){function e(){}\nreturn e.Copy=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},e.Copy2=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},e}();t.MyArray=s;var a=function(){function e(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return e.prototype.MarkNextChange=function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){\nreturn(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),l=function(){function e(t,n,i){void 0===i&&(i=null),this.ContinueProcessingPredicate=i;var o=e._getElements(t),r=o[0],s=o[1],a=o[2],l=e._getElements(n),u=l[0],d=l[1],c=l[2];this._hasStrings=a&&c,this._originalStringElements=r,this._originalElementsOrHash=s,this._modifiedStringElements=u,this._modifiedElementsOrHash=d,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e._isStringArray=function(e){return e.length>0&&\"string\"==typeof e[0]},e._getElements=function(t){var n=t.getElements();if(e._isStringArray(n)){for(var o=new Int32Array(n.length),r=0,s=n.length;r<s;r++)o[r]=i.stringHash(n[r],0);return[n,o,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]},e.prototype.ElementsAreEqual=function(e,t){\nreturn this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])},e.prototype.OriginalElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])},e.prototype.ModifiedElementsAreEqual=function(e,t){return this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)},e.prototype._ComputeDiff=function(e,t,n,i,o){var r=[!1],s=this.ComputeDiffRecursive(e,t,n,i,r);return o&&(s=this.PrettifyChanges(s)),{quitEarly:r[0],changes:s}},e.prototype.ComputeDiffRecursive=function(e,t,i,o,s){for(s[0]=!1;e<=t&&i<=o&&this.ElementsAreEqual(e,i);)e++,i++\n;for(;t>=e&&o>=i&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||i>o){var a=void 0;return i<=o?(r.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),a=[new n.DiffChange(e,0,i,o-i+1)]):e<=t?(r.Assert(i===o+1,\"modifiedStart should only be one more than modifiedEnd\"),a=[new n.DiffChange(e,t-e+1,i,0)]):(r.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),r.Assert(i===o+1,\"modifiedStart should only be one more than modifiedEnd\"),a=[]),a}var l=[0],u=[0],d=this.ComputeRecursionPoint(e,t,i,o,l,u,s),c=l[0],h=u[0];if(null!==d)return d;if(!s[0]){var p=this.ComputeDiffRecursive(e,c,i,h,s),g=[];return g=s[0]?[new n.DiffChange(c+1,t-(c+1)+1,h+1,o-(h+1)+1)]:this.ComputeDiffRecursive(c+1,t,h+1,o,s),this.ConcatenateChanges(p,g)}return[new n.DiffChange(e,t-e+1,i,o-i+1)]},e.prototype.WALKTRACE=function(e,t,i,o,r,s,l,u,d,c,h,p,g,f,m,v,_,y){var C,b=null,S=new a,w=t,E=i,L=g[0]-v[0]-o,D=-1073741824,N=this.m_forwardHistory.length-1;do{(k=L+e)===w||k<E&&d[k-1]<d[k+1]?(f=(h=d[k+1])-L-o,\nh<D&&S.MarkNextChange(),D=h,S.AddModifiedElement(h+1,f),L=k+1-e):(f=(h=d[k-1]+1)-L-o,h<D&&S.MarkNextChange(),D=h-1,S.AddOriginalElement(h,f+1),L=k-1-e),N>=0&&(e=(d=this.m_forwardHistory[N])[0],w=1,E=d.length-1)}while(--N>=-1);if(C=S.getReverseChanges(),y[0]){var x=g[0]+1,I=v[0]+1;if(null!==C&&C.length>0){var M=C[C.length-1];x=Math.max(x,M.getOriginalEnd()),I=Math.max(I,M.getModifiedEnd())}b=[new n.DiffChange(x,p-x+1,I,m-I+1)]}else{S=new a,w=s,E=l,L=g[0]-v[0]-u,D=1073741824,N=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var k;(k=L+r)===w||k<E&&c[k-1]>=c[k+1]?(f=(h=c[k+1]-1)-L-u,h>D&&S.MarkNextChange(),D=h+1,S.AddOriginalElement(h+1,f+1),L=k+1-r):(f=(h=c[k-1])-L-u,h>D&&S.MarkNextChange(),D=h,S.AddModifiedElement(h+1,f+1),L=k-1-r),N>=0&&(r=(c=this.m_reverseHistory[N])[0],w=1,E=c.length-1)}while(--N>=-1);b=S.getChanges()}return this.ConcatenateChanges(C,b)},e.prototype.ComputeRecursionPoint=function(e,t,i,o,r,a,l){var u=0,d=0,c=0,h=0,p=0,g=0;e--,i--,r[0]=0,a[0]=0,this.m_forwardHistory=[],\nthis.m_reverseHistory=[];var f=t-e+(o-i),m=f+1,v=new Int32Array(m),_=new Int32Array(m),y=o-i,C=t-e,b=e-i,S=t-o,w=(C-y)%2==0;v[y]=e,_[C]=t,l[0]=!1;for(var E=1;E<=f/2+1;E++){var L=0,D=0;c=this.ClipDiagonalBound(y-E,E,y,m),h=this.ClipDiagonalBound(y+E,E,y,m);for(var N=c;N<=h;N+=2){d=(u=N===c||N<h&&v[N-1]<v[N+1]?v[N+1]:v[N-1]+1)-(N-y)-b;for(var x=u;u<t&&d<o&&this.ElementsAreEqual(u+1,d+1);)u++,d++;if(v[N]=u,u+d>L+D&&(L=u,D=d),!w&&Math.abs(N-C)<=E-1&&u>=_[N])return r[0]=u,a[0]=d,x<=_[N]&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):null}var I=(L-e+(D-i)-E)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(L,I))return l[0]=!0,r[0]=L,a[0]=D,I>0&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):(e++,i++,[new n.DiffChange(e,t-e+1,i,o-i+1)]);p=this.ClipDiagonalBound(C-E,E,C,m),g=this.ClipDiagonalBound(C+E,E,C,m);for(N=p;N<=g;N+=2){d=(u=N===p||N<g&&_[N-1]>=_[N+1]?_[N+1]-1:_[N-1])-(N-C)-S;for(x=u;u>e&&d>i&&this.ElementsAreEqual(u,d);)u--,d--;if(_[N]=u,\nw&&Math.abs(N-y)<=E&&u<=v[N])return r[0]=u,a[0]=d,x>=v[N]&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):null}if(E<=1447){var M=new Int32Array(h-c+2);M[0]=y-c+1,s.Copy2(v,c,M,1,h-c+1),this.m_forwardHistory.push(M),(M=new Int32Array(g-p+2))[0]=C-p+1,s.Copy2(_,p,M,1,g-p+1),this.m_reverseHistory.push(M)}}return this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l)},e.prototype.PrettifyChanges=function(e){for(var t=0;t<e.length;t++){for(var n=e[t],i=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,r=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<i&&n.modifiedStart+n.modifiedLength<o&&(!r||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var a=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],a)&&(e[t]=a[0],e.splice(t+1,1),t--)}\nfor(t=e.length-1;t>=0;t--){n=e[t],i=0,o=0;if(t>0){var l=e[t-1];l.originalLength>0&&(i=l.originalStart+l.originalLength),l.modifiedLength>0&&(o=l.modifiedStart+l.modifiedLength)}r=n.originalLength>0,s=n.modifiedLength>0;for(var u=0,d=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength),c=1;;c++){var h=n.originalStart-c,p=n.modifiedStart-c;if(h<i||p<o)break;if(r&&!this.OriginalElementsAreEqual(h,h+n.originalLength))break;if(s&&!this.ModifiedElementsAreEqual(p,p+n.modifiedLength))break;var g=this._boundaryScore(h,n.originalLength,p,n.modifiedLength);g>d&&(d=g,u=c)}n.originalStart-=u,n.modifiedStart-=u}return e},e.prototype._OriginalIsBoundary=function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._originalStringElements[e])},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t\n;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._modifiedStringElements[e])},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var i=new Array(e.length+t.length-1);return s.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],s.Copy(t,1,i,e.length,t.length-1),i}i=new Array(e.length+t.length);return s.Copy(e,0,i,0,e.length),s.Copy(t,0,i,e.length,t.length),i},e.prototype.ChangesOverlap=function(e,t,i){\nif(r.Assert(e.originalStart<=t.originalStart,\"Left change is not less than or equal to right change\"),r.Assert(e.modifiedStart<=t.modifiedStart,\"Left change is not less than or equal to right change\"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var o=e.originalStart,s=e.originalLength,a=e.modifiedStart,l=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(l=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new n.DiffChange(o,s,a,l),!0}return i[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,i){if(e>=0&&e<i)return e;var o=t%2==0;return e<0?o===(n%2==0)?0:1:o===((i-n-1)%2==0)?i-1:i-2},e}();t.LcsDiff=l})),define(n[75],i([0,1,19,100]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){var n,i;void 0===e&&(e=\"\"),void 0===t&&(t=!1),this._value=e,\n\"boolean\"==typeof t?(this._isTrusted=t,this._supportThemeIcons=!1):(this._isTrusted=null!==(n=t.isTrusted)&&void 0!==n&&n,this._supportThemeIcons=null!==(i=t.supportThemeIcons)&&void 0!==i&&i)}return Object.defineProperty(e.prototype,\"value\",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isTrusted\",{get:function(){return this._isTrusted},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"supportThemeIcons\",{get:function(){return this._supportThemeIcons},enumerable:!0,configurable:!0}),e.prototype.appendText=function(e){return this._value+=(this._supportThemeIcons?i.escapeCodicons(e):e).replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\").replace(\"\\n\",\"\\n\\n\"),this},e.prototype.appendMarkdown=function(e){return this._value+=e,this},e.prototype.appendCodeblock=function(e,t){return this._value+=\"\\n```\",this._value+=e,this._value+=\"\\n\",this._value+=t,this._value+=\"\\n```\\n\",this},e}();function r(e){\nreturn e instanceof o||!(!e||\"object\"!=typeof e)&&!(\"string\"!=typeof e.value||\"boolean\"!=typeof e.isTrusted&&void 0!==e.isTrusted||\"boolean\"!=typeof e.supportThemeIcons&&void 0!==e.supportThemeIcons)}function s(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}t.MarkdownString=o,t.isEmptyMarkdownString=function e(t){return r(t)?!t.value:!Array.isArray(t)||t.every(e)},t.isMarkdownString=r,t.markedStringsEquals=function(e,t){return!e&&!t||!(!e||!t)&&(Array.isArray(e)&&Array.isArray(t)?n.equals(e,t,s):!(!r(e)||!r(t))&&s(e,t))},t.removeMarkdownEscapes=function(e){return e?e.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!])/g,\"$1\"):e},t.parseHrefAndDimensions=function(e){var t=[],n=e.split(\"|\").map((function(e){return e.trim()}));e=n[0];var i=n[1];if(i){var o=/height=(\\d+)/.exec(i),r=/width=(\\d+)/.exec(i),s=o?o[1]:\"\",a=r?r[1]:\"\",l=isFinite(parseInt(a)),u=isFinite(parseInt(s));l&&t.push('width=\"'+a+'\"'),u&&t.push('height=\"'+s+'\"')}return{href:e,dimensions:t}}\n})),define(n[127],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._prefix=e,this._lastId=0}return e.prototype.nextId=function(){return this._prefix+ ++this._lastId},e}();t.IdGenerator=n,t.defaultGenerator=new n(\"id#\")})),function e(t,n,i){function o(s,a){if(!n[s]){if(!t[s]){var l=\"function\"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var u=new Error(\"Cannot find module '\"+s+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var d=n[s]={exports:{}};t[s][0].call(d.exports,(function(e){return o(t[s][1][e]||e)}),d,d.exports,e,t,n,i)}return n[s].exports}for(var r=\"function\"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(e,t,n){\"use strict\";var i=e(\"./toMap\");t.exports={uris:i([\"background\",\"base\",\"cite\",\"href\",\"longdesc\",\"src\",\"usemap\"])}},{\"./toMap\":10}],2:[function(e,t,n){\"use strict\";t.exports={allowedAttributes:{\"*\":[\"title\",\"accesskey\"],a:[\"href\",\"name\",\"target\",\"aria-label\"],\niframe:[\"allowfullscreen\",\"frameborder\",\"src\"],img:[\"src\",\"alt\",\"title\",\"aria-label\"]},allowedClasses:{},allowedSchemes:[\"http\",\"https\",\"mailto\"],allowedTags:[\"a\",\"abbr\",\"article\",\"b\",\"blockquote\",\"br\",\"caption\",\"code\",\"del\",\"details\",\"div\",\"em\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"ins\",\"kbd\",\"li\",\"main\",\"mark\",\"ol\",\"p\",\"pre\",\"section\",\"span\",\"strike\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"th\",\"thead\",\"tr\",\"u\",\"ul\"],filter:null}},{}],3:[function(e,t,n){\"use strict\";var i=e(\"./toMap\");t.exports={voids:i([\"area\",\"br\",\"col\",\"hr\",\"img\",\"wbr\",\"input\",\"base\",\"basefont\",\"link\",\"meta\"])}},{\"./toMap\":10}],4:[function(e,t,n){\"use strict\";e(\"he\");var i=e(\"assignment\"),o=e(\"./parser\"),r=e(\"./sanitizer\"),a=e(\"./defaults\");function l(e,t,n){var s=[],l=!0===n?t:i({},a,t),u=r(s,l);return o(e,u),s.join(\"\")}l.defaults=a,t.exports=l,s=l},{\"./defaults\":2,\"./parser\":7,\"./sanitizer\":8,assignment:6,he:9}],5:[function(e,t,n){\"use strict\";t.exports=function(e){return\"string\"==typeof e?e.toLowerCase():e}},{}],\n6:[function(e,t,n){\"use strict\";t.exports=function e(t){for(var n,i,o=Array.prototype.slice.call(arguments,1);o.length;)for(i in n=o.shift())n.hasOwnProperty(i)&&(\"[object Object]\"===Object.prototype.toString.call(t[i])?t[i]=e(t[i],n[i]):t[i]=n[i]);return t}},{}],7:[function(e,t,n){\"use strict\";var i=e(\"he\"),o=e(\"./lowercase\"),r=(e(\"./attributes\"),e(\"./elements\")),s=/^<\\s*([\\w:-]+)((?:\\s+[\\w:-]+(?:\\s*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>\\s]+))?)*)\\s*(\\/?)\\s*>/,a=/^<\\s*\\/\\s*([\\w:-]+)[^>]*>/,l=/([\\w:-]+)(?:\\s*=\\s*(?:(?:\"((?:[^\"])*)\")|(?:'((?:[^'])*)')|([^>\\s]+)))?/g,u=/^</,d=/^<\\s*\\//;t.exports=function(e,t){for(var n,c=function(){var e=[];return e.lastItem=function(){return e[e.length-1]},e}(),h=e;e;)p();function p(){n=!0,function(){\"\\x3c!--\"===e.substr(0,4)?(i=e.indexOf(\"--\\x3e\"))>=0&&(t.comment&&t.comment(e.substring(4,i)),e=e.substring(i+3),n=!1):d.test(e)?g(a,m):u.test(e)&&g(s,f);var i;!function(){if(!n)return;var i,o=e.indexOf(\"<\");o>=0?(i=e.substring(0,o),e=e.substring(o)):(i=e,e=\"\");t.chars&&t.chars(i)}()\n}();var i=e===h;h=e,i&&(e=\"\")}function g(t,i){var o=e.match(t);o&&(e=e.substring(o[0].length),o[0].replace(t,i),n=!1)}function f(e,n,s,a){var u={},d=o(n),h=r.voids[d]||!!a;s.replace(l,(function(e,t,n,o,r){u[t]=void 0===n&&void 0===o&&void 0===r?void 0:i.decode(n||o||r||\"\")})),h||c.push(d),t.start&&t.start(d,u,h)}function m(e,n){var i,r=0,s=o(n);if(s)for(r=c.length-1;r>=0&&c[r]!==s;r--);if(r>=0){for(i=c.length-1;i>=r;i--)t.end&&t.end(c[i]);c.length=r}}m()}},{\"./attributes\":1,\"./elements\":3,\"./lowercase\":5,he:9}],8:[function(e,t,n){\"use strict\";var i=e(\"he\"),o=e(\"./lowercase\"),r=e(\"./attributes\"),s=e(\"./elements\");t.exports=function(e,t){var n,a=t||{};return c(),{start:function(e,t,s){var d=o(e);if(n.ignoring)return void u(d);if(-1===(a.allowedTags||[]).indexOf(d))return void u(d);if(a.filter&&!a.filter({tag:d,attrs:t}))return void u(d);l(\"<\"),l(d),Object.keys(t).forEach((function(e){var n=t[e],s=(a.allowedClasses||{})[d]||[],u=(a.allowedAttributes||{})[d]||[];u=u.concat((a.allowedAttributes||{})[\"*\"]||[])\n;var c=o(e);(\"class\"===c&&-1===u.indexOf(c)?(n=n.split(\" \").filter((function(e){return s&&-1!==s.indexOf(e)})).join(\" \").trim()).length:-1!==u.indexOf(c)&&(!0!==r.uris[c]||function(e){var t=e[0];if(\"#\"===t||\"/\"===t)return!0;var n=e.indexOf(\":\");if(-1===n)return!0;var i=e.indexOf(\"?\");if(-1!==i&&n>i)return!0;var o=e.indexOf(\"#\");if(-1!==o&&n>o)return!0;return a.allowedSchemes.some((function(t){return 0===e.indexOf(t+\":\")}))}(n)))&&(l(\" \"),l(e),\"string\"==typeof n&&(l('=\"'),l(i.encode(n)),l('\"')))})),l(s?\"/>\":\">\")},end:function(e){var t=o(e);-1!==(a.allowedTags||[]).indexOf(t)&&!1===n.ignoring?(l(\"</\"),l(t),l(\">\")):d(t)},chars:function(e){!1===n.ignoring&&l(a.transformText?a.transformText(e):e)}};function l(t){e.push(t)}function u(e){s.voids[e]||(!1===n.ignoring?n={ignoring:e,depth:1}:n.ignoring===e&&n.depth++)}function d(e){n.ignoring===e&&--n.depth<=0&&c()}function c(){n={ignoring:!1,depth:0}}}},{\"./attributes\":1,\"./elements\":3,\"./lowercase\":5,he:9}],9:[function(e,t,n){\"use strict\";var i={\"&\":\"&amp;\",\n\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},o={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},r=/(&amp;|&lt;|&gt;|&quot;|&#39;)/g,s=/[&<>\"']/g;function a(e){return i[e]}function l(e){return o[e]}function u(e){return null==e?\"\":String(e).replace(s,a)}function d(e){return null==e?\"\":String(e).replace(r,l)}u.options=d.options={},t.exports={encode:u,escape:u,decode:d,unescape:d,version:\"1.0.0-browser\"}},{}],10:[function(e,t,n){\"use strict\";function i(e,t){return e[t]=!0,e}t.exports=function(e){return e.reduce(i,{})}},{}]},{},[4]),define(\"vs/base/common/insane/insane\",(function(){return{insane:s}})),define(n[54],i([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FIN={done:!0,value:void 0},function(e){var n={next:function(){return t.FIN}};e.empty=function(){return n},e.single=function(e){var n=!1;return{next:function(){return n?t.FIN:(n=!0,{done:!1,value:e})}}},e.fromArray=function(e,n,i){return void 0===n&&(n=0),void 0===i&&(i=e.length),{next:function(){\nreturn n>=i?t.FIN:{done:!1,value:e[n++]}}}},e.fromNativeIterator=function(e){return{next:function(){var n=e.next();return n.done?t.FIN:{done:!1,value:n.value}}}},e.from=function(t){return t?Array.isArray(t)?e.fromArray(t):t:e.empty()},e.map=function(e,n){return{next:function(){var i=e.next();return i.done?t.FIN:{done:!1,value:n(i.value)}}}},e.filter=function(e,n){return{next:function(){for(;;){var i=e.next();if(i.done)return t.FIN;if(n(i.value))return{done:!1,value:i.value}}}}},e.forEach=function(e,t){for(var n=e.next();!n.done;n=e.next())t(n.value)},e.collect=function(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY);var n=[];if(0===t)return n;for(var i=0,o=e.next();!o.done&&(n.push(o.value),!(++i>=t));o=e.next());return n},e.concat=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i=0;return{next:function(){if(i>=e.length)return t.FIN;var n=e[i].next();return n.done?(i++,this.next()):n}}},e.chain=function(e){return new i(e)}}(n=t.Iterator||(t.Iterator={}));var i=function(){function e(e){\nthis.it=e}return e.prototype.next=function(){return this.it.next()},e}();t.ChainableIterator=i,t.getSequenceIterator=function(e){return Array.isArray(e)?n.fromArray(e):e||n.empty()};var o=function(){function e(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=e.length),void 0===i&&(i=t-1),this.items=e,this.start=t,this.end=n,this.index=i}return e.prototype.first=function(){return this.index=this.start,this.current()},e.prototype.next=function(){return this.index=Math.min(this.index+1,this.end),this.current()},e.prototype.current=function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]},e}();t.ArrayIterator=o;var s=function(e){function t(t,n,i,o){return void 0===n&&(n=0),void 0===i&&(i=t.length),void 0===o&&(o=n-1),e.call(this,t,n,i,o)||this}return r(t,e),t.prototype.current=function(){return e.prototype.current.call(this)},t.prototype.previous=function(){return this.index=Math.max(this.index-1,this.start-1),this.current()},t.prototype.first=function(){\nreturn this.index=this.start,this.current()},t.prototype.last=function(){return this.index=this.end-1,this.current()},t.prototype.parent=function(){return null},t}(o);t.ArrayNavigator=s;var a=function(){function e(e,t){this.iterator=e,this.fn=t}return e.prototype.next=function(){return this.fn(this.iterator.next())},e}();t.MappedIterator=a})),define(n[242],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=10),this._initialize(e),this._limit=t,this._onChange()}return e.prototype.add=function(e){this._history.delete(e),this._history.add(e),this._onChange()},e.prototype.next=function(){return this._navigator.next()},e.prototype.previous=function(){return this._navigator.previous()},e.prototype.current=function(){return this._navigator.current()},e.prototype.parent=function(){return null},e.prototype.first=function(){return this._navigator.first()},e.prototype.last=function(){return this._navigator.last()},\ne.prototype.has=function(e){return this._history.has(e)},e.prototype._onChange=function(){this._reduceToLimit();var e=this._elements;this._navigator=new n.ArrayNavigator(e,0,e.length,e.length)},e.prototype._reduceToLimit=function(){var e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))},e.prototype._initialize=function(e){this._history=new Set;for(var t=0,n=e;t<n.length;t++){var i=n[t];this._history.add(i)}},Object.defineProperty(e.prototype,\"_elements\",{get:function(){var e=[];return this._history.forEach((function(t){return e.push(t)})),e},enumerable:!0,configurable:!0}),e}();t.HistoryNavigator=i})),define(n[36],i([0,1,10]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},\ne.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),o=new i,r=new i,s=new i;function a(e,t){var n=!!(2048&e),i=!!(256&e);return new l(2===t?i:n,!!(1024&e),!!(512&e),2===t?n:i,255&e)}!function(){function e(e,t,n,i){void 0===n&&(n=t),void 0===i&&(i=n),o.define(e,t),r.define(e,n),s.define(e,i)}e(0,\"unknown\"),e(1,\"Backspace\"),e(2,\"Tab\"),e(3,\"Enter\"),e(4,\"Shift\"),e(5,\"Ctrl\"),e(6,\"Alt\"),e(7,\"PauseBreak\"),e(8,\"CapsLock\"),e(9,\"Escape\"),e(10,\"Space\"),e(11,\"PageUp\"),e(12,\"PageDown\"),e(13,\"End\"),e(14,\"Home\"),e(15,\"LeftArrow\",\"Left\"),e(16,\"UpArrow\",\"Up\"),e(17,\"RightArrow\",\"Right\"),e(18,\"DownArrow\",\"Down\"),e(19,\"Insert\"),e(20,\"Delete\"),e(21,\"0\"),e(22,\"1\"),e(23,\"2\"),e(24,\"3\"),e(25,\"4\"),e(26,\"5\"),e(27,\"6\"),e(28,\"7\"),e(29,\"8\"),e(30,\"9\"),e(31,\"A\"),e(32,\"B\"),e(33,\"C\"),e(34,\"D\"),e(35,\"E\"),e(36,\"F\"),e(37,\"G\"),e(38,\"H\"),e(39,\"I\"),e(40,\"J\"),e(41,\"K\"),e(42,\"L\"),e(43,\"M\"),e(44,\"N\"),e(45,\"O\"),e(46,\"P\"),e(47,\"Q\"),e(48,\"R\"),e(49,\"S\"),e(50,\"T\"),e(51,\"U\"),e(52,\"V\"),e(53,\"W\"),e(54,\"X\"),e(55,\"Y\"),\ne(56,\"Z\"),e(57,\"Meta\"),e(58,\"ContextMenu\"),e(59,\"F1\"),e(60,\"F2\"),e(61,\"F3\"),e(62,\"F4\"),e(63,\"F5\"),e(64,\"F6\"),e(65,\"F7\"),e(66,\"F8\"),e(67,\"F9\"),e(68,\"F10\"),e(69,\"F11\"),e(70,\"F12\"),e(71,\"F13\"),e(72,\"F14\"),e(73,\"F15\"),e(74,\"F16\"),e(75,\"F17\"),e(76,\"F18\"),e(77,\"F19\"),e(78,\"NumLock\"),e(79,\"ScrollLock\"),e(80,\";\",\";\",\"OEM_1\"),e(81,\"=\",\"=\",\"OEM_PLUS\"),e(82,\",\",\",\",\"OEM_COMMA\"),e(83,\"-\",\"-\",\"OEM_MINUS\"),e(84,\".\",\".\",\"OEM_PERIOD\"),e(85,\"/\",\"/\",\"OEM_2\"),e(86,\"`\",\"`\",\"OEM_3\"),e(110,\"ABNT_C1\"),e(111,\"ABNT_C2\"),e(87,\"[\",\"[\",\"OEM_4\"),e(88,\"\\\\\",\"\\\\\",\"OEM_5\"),e(89,\"]\",\"]\",\"OEM_6\"),e(90,\"'\",\"'\",\"OEM_7\"),e(91,\"OEM_8\"),e(92,\"OEM_102\"),e(93,\"NumPad0\"),e(94,\"NumPad1\"),e(95,\"NumPad2\"),e(96,\"NumPad3\"),e(97,\"NumPad4\"),e(98,\"NumPad5\"),e(99,\"NumPad6\"),e(100,\"NumPad7\"),e(101,\"NumPad8\"),e(102,\"NumPad9\"),e(103,\"NumPad_Multiply\"),e(104,\"NumPad_Add\"),e(105,\"NumPad_Separator\"),e(106,\"NumPad_Subtract\"),e(107,\"NumPad_Decimal\"),e(108,\"NumPad_Divide\")}(),function(e){e.toString=function(e){return o.keyCodeToStr(e)},e.fromString=function(e){\nreturn o.strToKeyCode(e)},e.toUserSettingsUS=function(e){return r.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return s.keyCodeToStr(e)},e.fromUserSettings=function(e){return r.strToKeyCode(e)||s.strToKeyCode(e)}}(t.KeyCodeUtils||(t.KeyCodeUtils={})),t.KeyChord=function(e,t){return(e|(65535&t)<<16>>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;var n=(65535&e)>>>0,i=(4294901760&e)>>>16;return new u(0!==i?[a(n,t),a(i,t)]:[a(n,t)])},t.createSimpleKeybinding=a;var l=function(){function e(e,t,n,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyCode=o}return e.prototype.equals=function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.toChord=function(){return new u([this])},e.prototype.isDuplicateModifierCase=function(){\nreturn this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}();t.SimpleKeybinding=l;var u=function(){function e(e){if(0===e.length)throw n.illegalArgument(\"parts\");this.parts=e}return e.prototype.equals=function(e){if(null===e)return!1;if(this.parts.length!==e.parts.length)return!1;for(var t=0;t<this.parts.length;t++)if(!this.parts[t].equals(e.parts[t]))return!1;return!0},e}();t.ChordKeybinding=u;var d=function(e,t,n,i,o,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyLabel=o,this.keyAriaLabel=r};t.ResolvedKeybindingPart=d;var c=function(){};t.ResolvedKeybinding=c})),define(n[128],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.executor=e,this._didRun=!1}return e.prototype.getValue=function(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value\n},Object.defineProperty(e.prototype,\"rawValue\",{get:function(){return this._value},enumerable:!0,configurable:!0}),e}();t.Lazy=n})),define(n[2],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=\"__is_disposable_tracked__\";function o(e){if(n&&e&&e!==l.None)try{e[i]=!0}catch(e){}}function r(e){if(!n)return e;var t=new Error(\"Potentially leaked disposable\").stack;return setTimeout((function(){e[i]||console.log(t)}),3e3),e}function s(e){return Array.isArray(e)?(e.forEach((function(e){e&&(o(e),e.dispose())})),[]):e?(o(e),e.dispose(),e):void 0}t.isDisposable=function(e){return\"function\"==typeof e.dispose&&0===e.dispose.length},t.dispose=s,t.combinedDisposable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.forEach(o),r({dispose:function(){return s(e)}})},t.toDisposable=function(e){var t=r({dispose:function(){o(t),e()}});return t};var a=function(){function e(){this._toDispose=new Set,this._isDisposed=!1}\nreturn e.prototype.dispose=function(){this._isDisposed||(o(this),this._isDisposed=!0,this.clear())},e.prototype.clear=function(){this._toDispose.forEach((function(e){return e.dispose()})),this._toDispose.clear()},e.prototype.add=function(e){if(!e)return e;if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return o(e),this._isDisposed?console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(e),e},e}();t.DisposableStore=a;var l=function(){function e(){this._store=new a,r(this)}return e.prototype.dispose=function(){o(this),this._store.dispose()},e.prototype._register=function(e){if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(e)},e.None=Object.freeze({dispose:function(){}}),e}();t.Disposable=l;var u=function(){function e(){this._isDisposed=!1,r(this)}return Object.defineProperty(e.prototype,\"value\",{get:function(){\nreturn this._isDisposed?void 0:this._value},set:function(e){this._isDisposed||e===this._value||(this._value&&this._value.dispose(),e&&o(e),this._value=e)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this.value=void 0},e.prototype.dispose=function(){this._isDisposed=!0,o(this),this._value&&this._value.dispose(),this._value=void 0},e}();t.MutableDisposable=u;var d=function(){function e(e){this.object=e}return e.prototype.dispose=function(){},e}();t.ImmortalReference=d})),define(n[76],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}return e.Undefined=new e(void 0),e}(),o=function(){function e(){this._first=i.Undefined,this._last=i.Undefined,this._size=0}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return this._first===i.Undefined},e.prototype.clear=function(){\nthis._first=i.Undefined,this._last=i.Undefined,this._size=0},e.prototype.unshift=function(e){return this._insert(e,!1)},e.prototype.push=function(e){return this._insert(e,!0)},e.prototype._insert=function(e,t){var n=this,o=new i(e);if(this._first===i.Undefined)this._first=o,this._last=o;else if(t){var r=this._last;this._last=o,o.prev=r,r.next=o}else{var s=this._first;this._first=o,o.next=s,s.prev=o}this._size+=1;var a=!1;return function(){a||(a=!0,n._remove(o))}},e.prototype.shift=function(){if(this._first!==i.Undefined){var e=this._first.element;return this._remove(this._first),e}},e.prototype.pop=function(){if(this._last!==i.Undefined){var e=this._last.element;return this._remove(this._last),e}},e.prototype._remove=function(e){if(e.prev!==i.Undefined&&e.next!==i.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===i.Undefined&&e.next===i.Undefined?(this._first=i.Undefined,this._last=i.Undefined):e.next===i.Undefined?(this._last=this._last.prev,\nthis._last.next=i.Undefined):e.prev===i.Undefined&&(this._first=this._first.next,this._first.prev=i.Undefined);this._size-=1},e.prototype.iterator=function(){var e,t=this._first;return{next:function(){return t===i.Undefined?n.FIN:(e?e.value=t.element:e={done:!1,value:t.element},t=t.next,e)}}},e.prototype.toArray=function(){for(var e=[],t=this._first;t!==i.Undefined;t=t.next)e.push(t.element);return e},e}();t.LinkedList=o})),define(n[4],i([0,1,10,102,2,76]),(function(e,t,n,i,o,s){\"use strict\";var a;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e){return function(t,n,i){void 0===n&&(n=null);var o,r=!1;return o=e((function(e){if(!r)return o?o.dispose():r=!0,t.call(n,e)}),null,i),r&&o.dispose(),o}}function n(e,t){return a((function(n,i,o){return void 0===i&&(i=null),e((function(e){return n.call(i,t(e))}),null,o)}))}function i(e,t){return a((function(n,i,o){return void 0===i&&(i=null),e((function(e){t(e),n.call(i,e)}),null,o)}))}function r(e,t){return a((function(n,i,o){\nreturn void 0===i&&(i=null),e((function(e){return t(e)&&n.call(i,e)}),null,o)}))}function s(e,t,i){var o=i;return n(e,(function(e){return o=t(o,e)}))}function a(e){var t,n=new d({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function l(e,t,n,i,o){var r;void 0===n&&(n=100),void 0===i&&(i=!1);var s=void 0,a=void 0,l=0,u=new d({leakWarningThreshold:o,onFirstListenerAdd:function(){r=e((function(e){l++,s=t(s,e),i&&!a&&(u.fire(s),s=void 0),clearTimeout(a),a=setTimeout((function(){var e=s;s=void 0,a=void 0,(!i||l>1)&&u.fire(e),l=0}),n)}))},onLastListenerRemove:function(){r.dispose()}});return u.event}function u(e){var t,n=!0;return r(e,(function(e){var i=n||e!==t;return n=!1,t=e,i}))}e.None=function(){return o.Disposable.None},e.once=t,e.map=n,e.forEach=i,e.filter=r,e.signal=function(e){return e},e.any=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n,i){return void 0===n&&(n=null),\no.combinedDisposable.apply(void 0,e.map((function(e){return e((function(e){return t.call(n,e)}),null,i)})))}},e.reduce=s,e.snapshot=a,e.debounce=l,e.stopwatch=function(e){var i=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-i}))},e.latch=u,e.buffer=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=[]);var i=n.slice(),o=e((function(e){i?i.push(e):s.fire(e)})),r=function(){i&&i.forEach((function(e){return s.fire(e)})),i=null},s=new d({onFirstListenerAdd:function(){o||(o=e((function(e){return s.fire(e)})))},onFirstListenerDidAdd:function(){i&&(t?setTimeout(r):r())},onLastListenerRemove:function(){o&&o.dispose(),o=null}});return s.event};var c=function(){function e(e){this.event=e}return e.prototype.map=function(t){return new e(n(this.event,t))},e.prototype.forEach=function(t){return new e(i(this.event,t))},e.prototype.filter=function(t){return new e(r(this.event,t))},e.prototype.reduce=function(t,n){return new e(s(this.event,t,n))},e.prototype.latch=function(){\nreturn new e(u(this.event))},e.prototype.debounce=function(t,n,i,o){return void 0===n&&(n=100),void 0===i&&(i=!1),new e(l(this.event,t,n,i,o))},e.prototype.on=function(e,t,n){return this.event(e,t,n)},e.prototype.once=function(e,n,i){return t(this.event)(e,n,i)},e}();e.chain=function(e){return new c(e)},e.fromNodeEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.fire(n.apply(void 0,e))},o=new d({onFirstListenerAdd:function(){return e.on(t,i)},onLastListenerRemove:function(){return e.removeListener(t,i)}});return o.event},e.fromDOMEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.fire(n.apply(void 0,e))},o=new d({onFirstListenerAdd:function(){return e.addEventListener(t,i)},onLastListenerRemove:function(){return e.removeEventListener(t,i)}});return o.event},e.fromPromise=function(e){var t=new d,n=!1\n;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(a=t.Event||(t.Event={}));var l=-1,u=function(){function e(e,t){void 0===t&&(t=Math.random().toString(18).slice(2,5)),this.customThreshold=e,this.name=t,this._warnCountdown=0}return e.prototype.dispose=function(){this._stacks&&this._stacks.clear()},e.prototype.check=function(e){var t=this,n=l;if(\"number\"==typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var i=(new Error).stack.split(\"\\n\").slice(3).join(\"\\n\"),o=this._stacks.get(i)||0;if(this._stacks.set(i,o+1),this._warnCountdown-=1,this._warnCountdown<=0){var r;this._warnCountdown=.5*n;var s=0;this._stacks.forEach((function(e,t){(!r||s<e)&&(r=t,s=e)})),console.warn(\"[\"+this.name+\"] potential listener LEAK detected, having \"+e+\" listeners already. MOST frequent listener (\"+s+\"):\"),\nconsole.warn(r)}return function(){var e=t._stacks.get(i)||0;t._stacks.set(i,e-1)}}},e}(),d=function(){function e(e){this._disposed=!1,this._options=e,this._leakageMon=l>0?new u(this._options&&this._options.leakWarningThreshold):void 0}return Object.defineProperty(e.prototype,\"event\",{get:function(){var t=this;return this._event||(this._event=function(n,i,r){t._listeners||(t._listeners=new s.LinkedList);var a=t._listeners.isEmpty();a&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var l,u,d=t._listeners.push(i?[n,i]:n);return a&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),t._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,i),t._leakageMon&&(l=t._leakageMon.check(t._listeners.size)),u={dispose:function(){(l&&l(),u.dispose=e._noop,t._disposed)||(d(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},\nr instanceof o.DisposableStore?r.add(u):Array.isArray(r)&&r.push(u),u}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new s.LinkedList);for(var t=this._listeners.iterator(),i=t.next();!i.done;i=t.next())this._deliveryQueue.push([i.value,e]);for(;this._deliveryQueue.size>0;){var o=this._deliveryQueue.shift(),r=o[0],a=o[1];try{\"function\"==typeof r?r.call(void 0,a):r[0].call(r[1],a)}catch(i){n.onUnexpectedError(i)}}}},e.prototype.dispose=function(){this._listeners&&this._listeners.clear(),this._deliveryQueue&&this._deliveryQueue.clear(),this._leakageMon&&this._leakageMon.dispose(),this._disposed=!0},e._noop=function(){},e}();t.Emitter=d;var c=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaused=0,n._eventQueue=new s.LinkedList,n._mergeFn=t&&t.merge,n}return r(t,e),t.prototype.pause=function(){this._isPaused++},t.prototype.resume=function(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){\nvar t=this._eventQueue.toArray();this._eventQueue.clear(),e.prototype.fire.call(this,this._mergeFn(t))}else for(;!this._isPaused&&0!==this._eventQueue.size;)e.prototype.fire.call(this,this._eventQueue.shift())},t.prototype.fire=function(t){this._listeners&&(0!==this._isPaused?this._eventQueue.push(t):e.prototype.fire.call(this,t))},t}(d);t.PauseableEmitter=c;var h=function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new d({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}return Object.defineProperty(e.prototype,\"event\",{get:function(){return this.emitter.event},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};this.events.push(n),this.hasListeners&&this.hook(n);return o.toDisposable(i.once((function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)})))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,\nthis.events.forEach((function(t){return e.hook(t)}))},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach((function(t){return e.unhook(t)}))},e.prototype.hook=function(e){var t=this;e.listener=e.event((function(e){return t.emitter.fire(e)}))},e.prototype.unhook=function(e){e.listener&&e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()},e}();t.EventMultiplexer=h;var p=function(){function e(){this.buffers=[]}return e.prototype.wrapEvent=function(e){var t=this;return function(n,i,o){return e((function(e){var o=t.buffers[t.buffers.length-1];o?o.push((function(){return n.call(i,e)})):n.call(i,e)}),void 0,o)}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n},e}();t.EventBufferer=p;var g=function(){function e(){var e=this;this.listening=!1,this.inputEvent=a.None,this.inputEventListener=o.Disposable.None,this.emitter=new d({\nonFirstListenerDidAdd:function(){e.listening=!0,e.inputEventListener=e.inputEvent(e.emitter.fire,e.emitter)},onLastListenerRemove:function(){e.listening=!1,e.inputEventListener.dispose()}}),this.event=this.emitter.event}return Object.defineProperty(e.prototype,\"input\",{set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.inputEventListener.dispose(),this.emitter.dispose()},e}();t.Relay=g})),define(n[24],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._zoomLevel=0,this._lastZoomLevelChangeTime=0,this._onDidChangeZoomLevel=new n.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return e.prototype.getZoomLevel=function(){return this._zoomLevel},e.prototype.getTimeSinceLastZoomLevelChanged=function(){return Date.now()-this._lastZoomLevelChangeTime},\ne.prototype.getPixelRatio=function(){var e=document.createElement(\"canvas\").getContext(\"2d\");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)},e.INSTANCE=new e,e}();t.getZoomLevel=function(){return i.INSTANCE.getZoomLevel()},t.getTimeSinceLastZoomLevelChanged=function(){return i.INSTANCE.getTimeSinceLastZoomLevelChanged()},t.onDidChangeZoomLevel=function(e){return i.INSTANCE.onDidChangeZoomLevel(e)},t.getPixelRatio=function(){return i.INSTANCE.getPixelRatio()};var o=navigator.userAgent;t.isIE=o.indexOf(\"Trident\")>=0,t.isEdge=o.indexOf(\"Edge/\")>=0,t.isEdgeOrIE=t.isIE||t.isEdge,t.isFirefox=o.indexOf(\"Firefox\")>=0,t.isWebKit=o.indexOf(\"AppleWebKit\")>=0,t.isChrome=o.indexOf(\"Chrome\")>=0,t.isSafari=!t.isChrome&&o.indexOf(\"Safari\")>=0,t.isWebkitWebView=!t.isChrome&&!t.isSafari&&t.isWebKit,t.isIPad=o.indexOf(\"iPad\")>=0||t.isSafari&&navigator.maxTouchPoints>0,\nt.isEdgeWebView=t.isEdge&&o.indexOf(\"WebView/\")>=0,t.isStandalone=window.matchMedia&&window.matchMedia(\"(display-mode: standalone)\").matches})),define(n[52],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.domEvent=function(e,t,i){var o=function(e){return r.fire(e)},r=new n.Emitter({onFirstListenerAdd:function(){e.addEventListener(t,o,i)},onLastListenerRemove:function(){e.removeEventListener(t,o,i)}});return r.event},t.stop=function(e){return n.Event.map(e,(function(e){return e.preventDefault(),e.stopPropagation(),e}))}}));var a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[129],i([0,1,99,19,4,54]),(function(e,t,n,i,o,r){\"use strict\";function s(e){return\"object\"==typeof e&&\"visibility\"in e&&\"data\"in e}function l(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function u(e){\nreturn\"boolean\"==typeof e.collapsible}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFilterResult=s,t.getVisibleState=l;var d=function(){function e(e,t,n,i){void 0===i&&(i={}),this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new o.EventBufferer,this._onDidChangeCollapseState=new o.Emitter,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new o.Emitter,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new o.Emitter,this.onDidSplice=this._onDidSplice.event,this.collapseByDefault=void 0!==i.collapseByDefault&&i.collapseByDefault,this.filter=i.filter,this.autoExpandSingleChildren=void 0!==i.autoExpandSingleChildren&&i.autoExpandSingleChildren,this.root={parent:void 0,element:n,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visible:!0,filterData:void 0}}\nreturn e.prototype.splice=function(e,t,i,o,s){var l,u=this;if(0===e.length)throw new n.TreeError(this.user,\"Invalid tree location\");for(var d=this.getParentNodeWithListIndex(e),c=d.parentNode,h=d.listIndex,p=d.revealed,g=d.visible,f=[],m=r.Iterator.map(r.Iterator.from(i),(function(e){return u.createTreeNode(e,c,c.visible?1:0,p,f,o)})),v=e[e.length-1],_=0,y=v;y>=0&&y<c.children.length;y--){if((N=c.children[y]).visible){_=N.visibleChildIndex;break}}var C=[],b=0,S=0;r.Iterator.forEach(m,(function(e){C.push(e),S+=e.renderNodeCount,e.visible&&(e.visibleChildIndex=_+b++)}));for(var w=(l=c.children).splice.apply(l,a([v,t],C)),E=0,L=0,D=w;L<D.length;L++){(N=D[L]).visible&&E++}if(0!==E)for(y=v+C.length;y<c.children.length;y++){var N;(N=c.children[y]).visible&&(N.visibleChildIndex-=E)}if(c.visibleChildrenCount+=b-E,p&&g){var x=w.reduce((function(e,t){return e+(t.visible?t.renderNodeCount:0)}),0);this._updateAncestorsRenderNodeCount(c,S-x),this.list.splice(h,x,f)}if(w.length>0&&s){var I=function(e){s(e),\ne.children.forEach(I)};w.forEach(I)}this._onDidSplice.fire({insertedNodes:C,deletedNodes:w})},e.prototype.rerender=function(e){if(0===e.length)throw new n.TreeError(this.user,\"Invalid tree location\");var t=this.getTreeNodeWithListIndex(e),i=t.node,o=t.listIndex;t.revealed&&this.list.splice(o,1,[i])},e.prototype.has=function(e){return this.hasTreeNode(e)},e.prototype.getListIndex=function(e){var t=this.getTreeNodeWithListIndex(e),n=t.listIndex,i=t.visible,o=t.revealed;return i&&o?n:-1},e.prototype.getListRenderCount=function(e){return this.getTreeNode(e).renderNodeCount},e.prototype.isCollapsible=function(e){return this.getTreeNode(e).collapsible},e.prototype.setCollapsible=function(e,t){var n=this,i=this.getTreeNode(e);void 0===t&&(t=!i.collapsible);var o={collapsible:t};return this.eventBufferer.bufferEvents((function(){return n._setCollapseState(e,o)}))},e.prototype.isCollapsed=function(e){return this.getTreeNode(e).collapsed},e.prototype.setCollapsed=function(e,t,n){var i=this,o=this.getTreeNode(e)\n;void 0===t&&(t=!o.collapsed);var r={collapsed:t,recursive:n||!1};return this.eventBufferer.bufferEvents((function(){return i._setCollapseState(e,r)}))},e.prototype._setCollapseState=function(e,t){var n=this.getTreeNodeWithListIndex(e),i=n.node,o=n.listIndex,r=n.revealed,s=this._setListNodeCollapseState(i,o,r,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!u(t)&&i.collapsible&&!i.collapsed&&!t.recursive){for(var l=-1,d=0;d<i.children.length;d++){if(i.children[d].visible){if(l>-1){l=-1;break}l=d}}l>-1&&this._setCollapseState(a(e,[l]),t)}return s},e.prototype._setListNodeCollapseState=function(e,t,n,i){var o=this._setNodeCollapseState(e,i,!1);if(!n||!e.visible||!o)return o;var r=e.renderNodeCount,s=this.updateNodeAfterCollapseChange(e),a=r-(-1===t?0:1);return this.list.splice(t+1,a,s.slice(1)),o},e.prototype._setNodeCollapseState=function(e,t,n){var i;if(e===this.root?i=!1:(u(t)?(i=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(i=e.collapsed!==t.collapsed,\ne.collapsed=t.collapsed):i=!1,i&&this._onDidChangeCollapseState.fire({node:e,deep:n})),!u(t)&&t.recursive)for(var o=0,r=e.children;o<r.length;o++){var s=r[o];i=this._setNodeCollapseState(s,t,!0)||i}return i},e.prototype.expandTo=function(e){var t=this;this.eventBufferer.bufferEvents((function(){for(var n=t.getTreeNode(e);n.parent;)n=n.parent,e=e.slice(0,e.length-1),n.collapsed&&t._setCollapseState(e,{collapsed:!1,recursive:!1})}))},e.prototype.refilter=function(){var e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t)},e.prototype.createTreeNode=function(e,t,n,i,o,s){var a=this,l={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:\"boolean\"==typeof e.collapsible?e.collapsible:void 0!==e.collapsed,collapsed:void 0===e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visible:!0,filterData:void 0},u=this._filterNode(l,n);i&&o.push(l)\n;var d=r.Iterator.from(e.children),c=i&&0!==u&&!l.collapsed,h=r.Iterator.map(d,(function(e){return a.createTreeNode(e,l,u,c,o,s)})),p=0,g=1;return r.Iterator.forEach(h,(function(e){l.children.push(e),g+=e.renderNodeCount,e.visible&&(e.visibleChildIndex=p++)})),l.collapsible=l.collapsible||l.children.length>0,l.visibleChildrenCount=p,l.visible=2===u?p>0:1===u,l.visible?l.collapsed||(l.renderNodeCount=g):(l.renderNodeCount=0,i&&o.pop()),s&&s(l),l},e.prototype.updateNodeAfterCollapseChange=function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterCollapseChange(e,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n},e.prototype._updateNodeAfterCollapseChange=function(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(var n=0,i=e.children;n<i.length;n++){var o=i[n];e.renderNodeCount+=this._updateNodeAfterCollapseChange(o,t)}return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount},e.prototype.updateNodeAfterFilterChange=function(e){\nvar t=e.renderNodeCount,n=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n},e.prototype._updateNodeAfterFilterChange=function(e,t,n,i){var o;if(void 0===i&&(i=!0),e!==this.root){if(0===(o=this._filterNode(e,t)))return e.visible=!1,e.renderNodeCount=0,!1;i&&n.push(e)}var r=n.length;e.renderNodeCount=e===this.root?0:1;var s=!1;if(e.collapsed&&0===o)e.visibleChildrenCount=0;else{for(var a=0,l=0,u=e.children;l<u.length;l++){var d=u[l];s=this._updateNodeAfterFilterChange(d,o,n,i&&!e.collapsed)||s,d.visible&&(d.visibleChildIndex=a++)}e.visibleChildrenCount=a}return e!==this.root&&(e.visible=2===o?s:1===o),e.visible?e.collapsed||(e.renderNodeCount+=n.length-r):(e.renderNodeCount=0,i&&n.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible},e.prototype._updateAncestorsRenderNodeCount=function(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent},e.prototype._filterNode=function(e,t){\nvar n=this.filter?this.filter.filter(e.element,t):1;return\"boolean\"==typeof n?(e.filterData=void 0,n?1:0):s(n)?(e.filterData=n.data,l(n.visibility)):(e.filterData=void 0,l(n))},e.prototype.hasTreeNode=function(e,t){if(void 0===t&&(t=this.root),!e||0===e.length)return!0;var n=e[0],i=e.slice(1);return!(n<0||n>t.children.length)&&this.hasTreeNode(i,t.children[n])},e.prototype.getTreeNode=function(e,t){if(void 0===t&&(t=this.root),!e||0===e.length)return t;var i=e[0],o=e.slice(1);if(i<0||i>t.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");return this.getTreeNode(o,t.children[i])},e.prototype.getTreeNodeWithListIndex=function(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};var t=this.getParentNodeWithListIndex(e),i=t.parentNode,o=t.listIndex,r=t.revealed,s=t.visible,a=e[e.length-1];if(a<0||a>i.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");var l=i.children[a];return{node:l,listIndex:o,revealed:r,visible:s&&l.visible}},\ne.prototype.getParentNodeWithListIndex=function(e,t,i,o,r){void 0===t&&(t=this.root),void 0===i&&(i=0),void 0===o&&(o=!0),void 0===r&&(r=!0);var s=e[0],a=e.slice(1);if(s<0||s>t.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");for(var l=0;l<s;l++)i+=t.children[l].renderNodeCount;return o=o&&!t.collapsed,r=r&&t.visible,0===a.length?{parentNode:t,listIndex:i,revealed:o,visible:r}:this.getParentNodeWithListIndex(a,t.children[s],i+1,o,r)},e.prototype.getNode=function(e){return void 0===e&&(e=[]),this.getTreeNode(e)},e.prototype.getNodeLocation=function(e){for(var t=[],n=e;n.parent;)t.push(n.parent.children.indexOf(n)),n=n.parent;return t.reverse()},e.prototype.getParentNodeLocation=function(e){return 0===e.length?void 0:1===e.length?[]:i.tail2(e)[0]},e}();t.IndexTreeModel=d}));var l=this&&this.__assign||function(){return(l=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e\n}).apply(this,arguments)};a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[130],i([0,1,54,129,99,19]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n){void 0===n&&(n={}),this.user=e,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new i.IndexTreeModel(e,t,null,n),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,n.sorter&&(this.sorter={compare:function(e,t){return n.sorter.compare(e.element,t.element)}}),this.identityProvider=n.identityProvider}return e.prototype.setChildren=function(e,t,n,i){var o=this.getElementLocation(e);this._setChildren(o,this.preserveCollapseState(t),n,i)},e.prototype._setChildren=function(e,t,n,i){\nvar o=this,r=new Set,s=new Set;this.model.splice(a(e,[0]),Number.MAX_VALUE,t,(function(e){if(r.add(e.element),o.nodes.set(e.element,e),o.identityProvider){var t=o.identityProvider.getId(e.element).toString();s.add(t),o.nodesByIdentity.set(t,e)}n&&n(e)}),(function(e){if(r.has(e.element)||o.nodes.delete(e.element),o.identityProvider){var t=o.identityProvider.getId(e.element).toString();s.has(t)||o.nodesByIdentity.delete(t)}i&&i(e)}))},e.prototype.preserveCollapseState=function(e){var t=this,i=e?n.getSequenceIterator(e):n.Iterator.empty();return this.sorter&&(i=n.Iterator.fromArray(r.mergeSort(n.Iterator.collect(i),this.sorter.compare.bind(this.sorter)))),n.Iterator.map(i,(function(e){var n=t.nodes.get(e.element);if(!n&&t.identityProvider){var i=t.identityProvider.getId(e.element).toString();n=t.nodesByIdentity.get(i)}if(!n)return l(l({},e),{children:t.preserveCollapseState(e.children)});var o=\"boolean\"==typeof e.collapsible?e.collapsible:n.collapsible,r=void 0!==e.collapsed?e.collapsed:n.collapsed\n;return l(l({},e),{collapsible:o,collapsed:r,children:t.preserveCollapseState(e.children)})}))},e.prototype.rerender=function(e){var t=this.getElementLocation(e);this.model.rerender(t)},e.prototype.has=function(e){return this.nodes.has(e)},e.prototype.getListIndex=function(e){var t=this.getElementLocation(e);return this.model.getListIndex(t)},e.prototype.getListRenderCount=function(e){var t=this.getElementLocation(e);return this.model.getListRenderCount(t)},e.prototype.isCollapsible=function(e){var t=this.getElementLocation(e);return this.model.isCollapsible(t)},e.prototype.setCollapsible=function(e,t){var n=this.getElementLocation(e);return this.model.setCollapsible(n,t)},e.prototype.isCollapsed=function(e){var t=this.getElementLocation(e);return this.model.isCollapsed(t)},e.prototype.setCollapsed=function(e,t,n){var i=this.getElementLocation(e);return this.model.setCollapsed(i,t,n)},e.prototype.expandTo=function(e){var t=this.getElementLocation(e);this.model.expandTo(t)},e.prototype.refilter=function(){\nthis.model.refilter()},e.prototype.getNode=function(e){if(void 0===e&&(e=null),null===e)return this.model.getNode(this.model.rootRef);var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return t},e.prototype.getNodeLocation=function(e){return e.element},e.prototype.getParentNodeLocation=function(e){if(null===e)throw new o.TreeError(this.user,\"Invalid getParentNodeLocation call\");var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);var n=this.model.getNodeLocation(t),i=this.model.getParentNodeLocation(n);return this.model.getNode(i).element},e.prototype.getElementLocation=function(e){if(null===e)return[];var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return this.model.getNodeLocation(t)},e}();t.ObjectTreeModel=s})),define(n[243],i([0,1,54,4,99,130]),(function(e,t,n,i,o,r){\"use strict\";function s(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},\nchildren:n.Iterator.map(n.Iterator.from(e.children),s),collapsible:e.collapsible,collapsed:e.collapsed}}function a(e){for(var t,i,o=[e.element],r=e.incompressible||!1;t=n.Iterator.from(e.children),1===(i=n.Iterator.collect(t,2)).length&&!(e=i[0]).incompressible;)o.push(e.element);return{element:{elements:o,incompressible:r},children:n.Iterator.map(n.Iterator.concat(n.Iterator.fromArray(i),t),a),collapsible:e.collapsible,collapsed:e.collapsed}}function u(e){return function e(t,i){var o;return void 0===i&&(i=0),o=i<t.element.elements.length-1?n.Iterator.single(e(t,i+1)):n.Iterator.map(n.Iterator.from(t.children),(function(t){return e(t,0)})),0===i&&t.element.incompressible?{element:t.element.elements[i],children:o,incompressible:!0,collapsible:t.collapsible,collapsed:t.collapsed}:{element:t.element.elements[i],children:o,collapsible:t.collapsible,collapsed:t.collapsed}}(e,0)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.compress=a,t.decompress=u;var d=function(){function e(e,t,n){void 0===n&&(n={}),\nthis.user=e,this.nodes=new Map,this.model=new r.ObjectTreeModel(e,t,n),this.enabled=void 0===n.compressionEnabled||n.compressionEnabled}return Object.defineProperty(e.prototype,\"onDidSplice\",{get:function(){return this.model.onDidSplice},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),e.prototype.setChildren=function(e,t){if(null!==e){var i=this.nodes.get(e);if(!i)throw new Error(\"Unknown compressed tree node\");var o=this.model.getNode(i),r=this.model.getParentNodeLocation(i),d=this.model.getNode(r),c=function e(t,i,o){return t.element===i?l(l({},t),{children:o}):l(l({},t),{children:n.Iterator.map(n.Iterator.from(t.children),(function(t){return e(t,i,o)}))})}(u(o),e,n.Iterator.from(t)),h=(this.enabled?a:s)(c),p=d.children.map((function(e){return e===o?h:e}));this._setChildren(d.element,p)}else{var g=n.Iterator.map(n.Iterator.from(t),this.enabled?a:s)\n;this._setChildren(null,g)}},e.prototype.setCompressionEnabled=function(e){if(e!==this.enabled){this.enabled=e;var t=this.model.getNode(),i=n.Iterator.from(t.children),o=n.Iterator.map(i,u),r=n.Iterator.map(o,e?a:s);this._setChildren(null,r)}},e.prototype._setChildren=function(e,t){var n=this,i=new Set;this.model.setChildren(e,t,(function(e){for(var t=0,o=e.element.elements;t<o.length;t++){var r=o[t];i.add(r),n.nodes.set(r,e.element)}}),(function(e){for(var t=0,o=e.element.elements;t<o.length;t++){var r=o[t];i.has(r)||n.nodes.delete(r)}}))},e.prototype.has=function(e){return this.nodes.has(e)},e.prototype.getListIndex=function(e){var t=this.getCompressedNode(e);return this.model.getListIndex(t)},e.prototype.getListRenderCount=function(e){var t=this.getCompressedNode(e);return this.model.getListRenderCount(t)},e.prototype.getNode=function(e){if(void 0===e)return this.model.getNode();var t=this.getCompressedNode(e);return this.model.getNode(t)},e.prototype.getNodeLocation=function(e){\nvar t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]},e.prototype.getParentNodeLocation=function(e){var t=this.getCompressedNode(e),n=this.model.getParentNodeLocation(t);return null===n?null:n.elements[n.elements.length-1]},e.prototype.isCollapsible=function(e){var t=this.getCompressedNode(e);return this.model.isCollapsible(t)},e.prototype.setCollapsible=function(e,t){var n=this.getCompressedNode(e);return this.model.setCollapsible(n,t)},e.prototype.isCollapsed=function(e){var t=this.getCompressedNode(e);return this.model.isCollapsed(t)},e.prototype.setCollapsed=function(e,t,n){var i=this.getCompressedNode(e);return this.model.setCollapsed(i,t,n)},e.prototype.expandTo=function(e){var t=this.getCompressedNode(e);this.model.expandTo(t)},e.prototype.rerender=function(e){var t=this.getCompressedNode(e);this.model.rerender(t)},e.prototype.refilter=function(){this.model.refilter()},e.prototype.getCompressedNode=function(e){if(null===e)return null;var t=this.nodes.get(e)\n;if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return t},e}();t.CompressedObjectTreeModel=d,t.DefaultElementMapper=function(e){return e[e.length-1]};var c=function(){function e(e,t){this.unwrapper=e,this.node=t}return Object.defineProperty(e.prototype,\"element\",{get:function(){return null===this.node.element?null:this.unwrapper(this.node.element)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){var t=this;return this.node.children.map((function(n){return new e(t.unwrapper,n)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{get:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}();var h=function(){function e(e,n,i){var r=this;void 0===i&&(i={}),this.elementMapper=i.elementMapper||t.DefaultElementMapper;var s=function(e){return r.elementMapper(e.elements)};this.nodeMapper=new o.WeakMapper((function(e){return new c(s,e)})),this.model=new d(e,function(e,t){return{splice:function(n,i,o){t.splice(n,i,o.map((function(t){return e.map(t)})))}}}(this.nodeMapper,n),function(e,t){return l(l({},t),{sorter:t.sorter&&{compare:function(e,n){return t.sorter.compare(e.elements[0],n.elements[0])}},\nidentityProvider:t.identityProvider&&{getId:function(n){return t.identityProvider.getId(e(n))}},filter:t.filter&&{filter:function(n,i){return t.filter.filter(e(n),i)}}})}(s,i))}return Object.defineProperty(e.prototype,\"onDidSplice\",{get:function(){var e=this;return i.Event.map(this.model.onDidSplice,(function(t){var n=t.insertedNodes,i=t.deletedNodes;return{insertedNodes:n.map((function(t){return e.nodeMapper.map(t)})),deletedNodes:i.map((function(t){return e.nodeMapper.map(t)}))}}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){var e=this;return i.Event.map(this.model.onDidChangeCollapseState,(function(t){var n=t.node,i=t.deep;return{node:e.nodeMapper.map(n),deep:i}}))},enumerable:!0,configurable:!0}),e.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},e.prototype.setCompressionEnabled=function(e){this.model.setCompressionEnabled(e)},e.prototype.has=function(e){return this.model.has(e)},e.prototype.getListIndex=function(e){\nreturn this.model.getListIndex(e)},e.prototype.getListRenderCount=function(e){return this.model.getListRenderCount(e)},e.prototype.getNode=function(e){return this.nodeMapper.map(this.model.getNode(e))},e.prototype.getNodeLocation=function(e){return e.element},e.prototype.getParentNodeLocation=function(e){return this.model.getParentNodeLocation(e)},e.prototype.isCollapsible=function(e){return this.model.isCollapsible(e)},e.prototype.setCollapsible=function(e,t){return this.model.setCollapsible(e,t)},e.prototype.isCollapsed=function(e){return this.model.isCollapsed(e)},e.prototype.setCollapsed=function(e,t,n){return this.model.setCollapsed(e,t,n)},e.prototype.expandTo=function(e){return this.model.expandTo(e)},e.prototype.rerender=function(e){return this.model.rerender(e)},e.prototype.refilter=function(){return this.model.refilter()},e.prototype.getCompressedTreeNode=function(e){return void 0===e&&(e=null),this.model.getNode(e)},e}();t.CompressibleObjectTreeModel=h}))\n;var u,d=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(o,r){function s(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,i,o,r,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(r){return function(a){return function(r){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:\nif(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]<o[3])){s.label=r[1];break}if(6===r[0]&&s.label<o[1]){s.label=o[1],o=r;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(r);break}o[2]&&s.ops.pop(),s.trys.pop();continue}r=t.call(e,s)}catch(e){r=[6,e],i=0}finally{n=o=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,a])}}};define(n[55],i([0,1,2,4]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,o,r,s){void 0===n&&(n=\"\"),void 0===o&&(o=\"\"),void 0===r&&(r=!0);var a=e.call(this)||this;return a._onDidChange=a._register(new i.Emitter),a.onDidChange=a._onDidChange.event,a._enabled=!0,a._checked=!1,a._id=t,a._label=n,a._cssClass=o,a._enabled=r,a._actionCallback=s,a}return r(t,e),Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"label\",{get:function(){return this._label},set:function(e){\nthis._setLabel(e)},enumerable:!0,configurable:!0}),t.prototype._setLabel=function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))},Object.defineProperty(t.prototype,\"tooltip\",{get:function(){return this._tooltip||\"\"},set:function(e){this._setTooltip(e)},enumerable:!0,configurable:!0}),t.prototype._setTooltip=function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))},Object.defineProperty(t.prototype,\"class\",{get:function(){return this._cssClass},set:function(e){this._setClass(e)},enumerable:!0,configurable:!0}),t.prototype._setClass=function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))},Object.defineProperty(t.prototype,\"enabled\",{get:function(){return this._enabled},set:function(e){this._setEnabled(e)},enumerable:!0,configurable:!0}),t.prototype._setEnabled=function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))},Object.defineProperty(t.prototype,\"checked\",{get:function(){return this._checked},\nset:function(e){this._setChecked(e)},enumerable:!0,configurable:!0}),t.prototype._setChecked=function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))},t.prototype.run=function(e,t){return this._actionCallback?this._actionCallback(e):Promise.resolve(!0)},t}(n.Disposable);t.Action=o;var s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onDidBeforeRun=t._register(new i.Emitter),t.onDidBeforeRun=t._onDidBeforeRun.event,t._onDidRun=t._register(new i.Emitter),t.onDidRun=t._onDidRun.event,t}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:if(!e.enabled)return[2,Promise.resolve(null)];this._onDidBeforeRun.fire({action:e}),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.runAction(e,t)];case 2:return n=o.sent(),this._onDidRun.fire({action:e,result:n}),[3,4];case 3:return i=o.sent(),this._onDidRun.fire({action:e,error:i}),[3,4];case 4:return[2]}}))}))},\nt.prototype.runAction=function(e,t){var n=t?e.run(t):e.run();return Promise.resolve(n)},t}(n.Disposable);t.ActionRunner=s})),define(n[26],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=Object.freeze((function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof r||!(!t||\"object\"!=typeof t)&&(\"boolean\"==typeof t.isCancellationRequested&&\"function\"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o})}(i=t.CancellationToken||(t.CancellationToken={}));var r=function(){function e(){this._isCancelled=!1,this._emitter=null}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))},\nObject.defineProperty(e.prototype,\"isCancellationRequested\",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onCancellationRequested\",{get:function(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)},e}(),s=function(){function e(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}return Object.defineProperty(e.prototype,\"token\",{get:function(){return this._token||(this._token=new r),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token instanceof r&&this._token.cancel():this._token=i.Cancelled},e.prototype.dispose=function(e){void 0===e&&(e=!1),e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),\nthis._token?this._token instanceof r&&this._token.dispose():this._token=i.None},e}();t.CancellationTokenSource=s})),define(n[15],i([0,1,26,10,2]),(function(e,t,n,i,o){\"use strict\";function r(e){var t=new n.CancellationTokenSource,o=e(t.token),r=new Promise((function(e,n){t.token.onCancellationRequested((function(){n(i.canceled())})),Promise.resolve(o).then((function(n){t.dispose(),e(n)}),(function(e){t.dispose(),n(e)}))}));return new(function(){function e(){}return e.prototype.cancel=function(){t.cancel()},e.prototype.then=function(e,t){return r.then(e,t)},e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype.finally=function(e){return r.finally(e)},e}())}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isThenable=function(e){return e&&\"function\"==typeof e.then},t.createCancelablePromise=r,t.raceCancellation=function(e,t,n){return Promise.race([e,new Promise((function(e){return t.onCancellationRequested((function(){return e(n)}))}))])};var s=function(){function e(e){this.defaultDelay=e,\nthis.timeout=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}return e.prototype.trigger=function(e,t){var n=this;return void 0===t&&(t=this.defaultDelay),this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((function(e,t){n.doResolve=e,n.doReject=t})).then((function(){if(n.completionPromise=null,n.doResolve=null,n.task){var e=n.task;return n.task=null,e()}}))),this.timeout=setTimeout((function(){n.timeout=null,n.doResolve&&n.doResolve(null)}),t),this.completionPromise},e.prototype.isTriggered=function(){return null!==this.timeout},e.prototype.cancel=function(){this.cancelTimeout(),this.completionPromise&&(this.doReject&&this.doReject(i.canceled()),this.completionPromise=null)},e.prototype.cancelTimeout=function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},e.prototype.dispose=function(){this.cancelTimeout()},e}();t.Delayer=s,t.timeout=function e(t,n){return n?new Promise((function(e,o){var r=setTimeout(e,t)\n;n.onCancellationRequested((function(){clearTimeout(r),o(i.canceled())}))})):r((function(n){return e(t,n)}))},t.disposableTimeout=function(e,t){void 0===t&&(t=0);var n=setTimeout(e,t);return o.toDisposable((function(){return clearTimeout(n)}))},t.first=function(e,t,n){void 0===t&&(t=function(e){return!!e}),void 0===n&&(n=null);var i=0,o=e.length,r=function(){if(i>=o)return Promise.resolve(n);var s=e[i++];return Promise.resolve(s()).then((function(e){return t(e)?Promise.resolve(e):r()}))};return r()};var a=function(){function e(e,t){this._token=-1,\"function\"==typeof e&&\"number\"==typeof t&&this.setIfNotSet(e,t)}return e.prototype.dispose=function(){this.cancel()},e.prototype.cancel=function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)},e.prototype.cancelAndSet=function(e,t){var n=this;this.cancel(),this._token=setTimeout((function(){n._token=-1,e()}),t)},e.prototype.setIfNotSet=function(e,t){var n=this;-1===this._token&&(this._token=setTimeout((function(){n._token=-1,e()}),t))},e}()\n;t.TimeoutTimer=a;var l=function(){function e(){this._token=-1}return e.prototype.dispose=function(){this.cancel()},e.prototype.cancel=function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)},e.prototype.cancelAndSet=function(e,t){this.cancel(),this._token=setInterval((function(){e()}),t)},e}();t.IntervalTimer=l;var u=function(){function e(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}return e.prototype.dispose=function(){this.cancel(),this.runner=null},e.prototype.cancel=function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)},e.prototype.schedule=function(e){void 0===e&&(e=this.timeout),this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)},e.prototype.isScheduled=function(){return-1!==this.timeoutToken},e.prototype.onTimeout=function(){this.timeoutToken=-1,this.runner&&this.doRun()},e.prototype.doRun=function(){this.runner&&this.runner()},e}();t.RunOnceScheduler=u,function(){\nif(\"function\"!=typeof requestIdleCallback||\"function\"!=typeof cancelIdleCallback){var e=Object.freeze({didTimeout:!0,timeRemaining:function(){return 15}});t.runWhenIdle=function(t){var n=setTimeout((function(){return t(e)})),i=!1;return{dispose:function(){i||(i=!0,clearTimeout(n))}}}}else t.runWhenIdle=function(e,t){var n=requestIdleCallback(e,\"number\"==typeof t?{timeout:t}:void 0),i=!1;return{dispose:function(){i||(i=!0,cancelIdleCallback(n))}}}}();var d=function(){function e(e){var n=this;this._didRun=!1,this._executor=function(){try{n._value=e()}catch(e){n._error=e}finally{n._didRun=!0}},this._handle=t.runWhenIdle((function(){return n._executor()}))}return e.prototype.dispose=function(){this._handle.dispose()},e.prototype.getValue=function(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value},e}();t.IdleValue=d})),define(n[244],i([0,1,15,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){\nfunction t(t,i,o){var r=e.call(this)||this;return r._visibility=t,r._visibleClassName=i,r._invisibleClassName=o,r._domNode=null,r._isVisible=!1,r._isNeeded=!1,r._shouldBeVisible=!1,r._revealTimer=r._register(new n.TimeoutTimer),r}return r(t,e),t.prototype.applyVisibilitySetting=function(e){return 2!==this._visibility&&(3===this._visibility||e)},t.prototype.setShouldBeVisible=function(e){var t=this.applyVisibilitySetting(e);this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())},t.prototype.setIsNeeded=function(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())},t.prototype.setDomNode=function(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)},t.prototype.ensureVisibility=function(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)},t.prototype._reveal=function(){var e=this;this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((function(){\ne._domNode&&e._domNode.setClassName(e._visibleClassName)}),0))},t.prototype._hide=function(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode&&this._domNode.setClassName(this._invisibleClassName+(e?\" fade\":\"\")))},t}(i.Disposable);t.ScrollbarVisibilityController=o})),define(n[38],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.keys=function(e){var t=[];return e.forEach((function(e,n){return t.push(n)})),t};var n=function(){function e(){this._value=\"\",this._pos=0}return e.prototype.reset=function(e){return this._value=e,this._pos=0,this},e.prototype.next=function(){return this._pos+=1,this},e.prototype.hasNext=function(){return this._pos<this._value.length-1},e.prototype.cmp=function(e){return e.charCodeAt(0)-this._value.charCodeAt(this._pos)},e.prototype.value=function(){return this._value[this._pos]},e}();t.StringIterator=n;var i=function(){function e(e){\nvoid 0===e&&(e=!0),this._splitOnBackslash=e}return e.prototype.reset=function(e){return this._value=e.replace(/\\\\$|\\/$/,\"\"),this._from=0,this._to=0,this.next()},e.prototype.hasNext=function(){return this._to<this._value.length},e.prototype.next=function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){var t=this._value.charCodeAt(this._to);if(47===t||this._splitOnBackslash&&92===t){if(!e)break;this._from++}else e=!1}return this},e.prototype.cmp=function(e){for(var t=0,n=e.length,i=this._from;t<n&&i<this._to;){var o=e.charCodeAt(t)-this._value.charCodeAt(i);if(0!==o)return o;t+=1,i+=1}return n===this._to-this._from?0:t<n?-1:1},e.prototype.value=function(){return this._value.substring(this._from,this._to)},e}();t.PathIterator=i;var o=function(){},s=function(){function e(e){this._iter=e}return e.forPaths=function(){return new e(new i)},e.forStrings=function(){return new e(new n)},e.prototype.clear=function(){this._root=void 0},e.prototype.set=function(e,t){var n,i=this._iter.reset(e)\n;for(this._root||(this._root=new o,this._root.segment=i.value()),n=this._root;;){var r=i.cmp(n.segment);if(r>0)n.left||(n.left=new o,n.left.segment=i.value()),n=n.left;else if(r<0)n.right||(n.right=new o,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new o,n.mid.segment=i.value()),n=n.mid}}var s=n.value;return n.value=t,n.key=e,s},e.prototype.get=function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())break;t.next(),n=n.mid}}return n?n.value:void 0},e.prototype.findSubstr=function(e){for(var t=this._iter.reset(e),n=this._root,i=void 0;n;){var o=t.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i},e.prototype.forEach=function(e){this._forEach(this._root,e)},e.prototype._forEach=function(e,t){e&&(this._forEach(e.left,t),e.value&&t(e.value,e.key),this._forEach(e.mid,t),this._forEach(e.right,t))},e}()\n;t.TernarySearchTree=s;var a=function(){function e(){this.map=new Map,this.ignoreCase=!1}return e.prototype.set=function(e,t){this.map.set(this.toKey(e),t)},e.prototype.get=function(e){return this.map.get(this.toKey(e))},e.prototype.toKey=function(e){var t=e.toString();return this.ignoreCase&&(t=t.toLowerCase()),t},e}();t.ResourceMap=a;var l=function(){function e(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0}return e.prototype.clear=function(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0},Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.get=function(e,t){void 0===t&&(t=0);var n=this._map.get(e);if(n)return 0!==t&&this.touch(n,t),n.value},e.prototype.set=function(e,t,n){void 0===n&&(n=0);var i=this._map.get(e);if(i)i.value=t,0!==n&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case 0:this.addItemLast(i);break;case 1:this.addItemFirst(i);break;case 2:default:\nthis.addItemLast(i)}this._map.set(e,i),this._size++}},e.prototype.delete=function(e){return!!this.remove(e)},e.prototype.remove=function(e){var t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value},e.prototype.forEach=function(e,t){for(var n=this._head;n;)t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),n=n.next},e.prototype.trimOld=function(e){if(!(e>=this.size))if(0!==e){for(var t=this._head,n=this.size;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0)}else this.clear()},e.prototype.addItemFirst=function(e){if(this._head||this._tail){if(!this._head)throw new Error(\"Invalid list\");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e},e.prototype.addItemLast=function(e){if(this._head||this._tail){if(!this._tail)throw new Error(\"Invalid list\");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e},e.prototype.removeItem=function(e){if(e===this._head&&e===this._tail)this._head=void 0,\nthis._tail=void 0;else if(e===this._head){if(!e.next)throw new Error(\"Invalid list\");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error(\"Invalid list\");e.previous.next=void 0,this._tail=e.previous}else{var t=e.next,n=e.previous;if(!t||!n)throw new Error(\"Invalid list\");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0},e.prototype.touch=function(e,t){if(!this._head||!this._tail)throw new Error(\"Invalid list\");if(1===t||2===t)if(1===t){if(e===this._head)return;var n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e}else if(2===t){if(e===this._tail)return;n=e.next,i=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e}},e.prototype.toJSON=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),e},e}();t.LinkedMap=l;var u=function(e){\nfunction t(t,n){void 0===n&&(n=1);var i=e.call(this)||this;return i._limit=t,i._ratio=Math.min(Math.max(0,n),1),i}return r(t,e),t.prototype.get=function(t){return e.prototype.get.call(this,t,2)},t.prototype.peek=function(t){return e.prototype.get.call(this,t,0)},t.prototype.set=function(t,n){e.prototype.set.call(this,t,n,2),this.checkTrim()},t.prototype.checkTrim=function(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))},t}(l);t.LRUCache=u})),function(e){\"use strict\";var t={newline:/^\\n+/,code:/^( {4}[^\\n]+\\n*)+/,fences:m,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,heading:/^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,nptable:m,blockquote:/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,list:/^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\nhtml:\"^ {0,3}(?:<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*|<![A-Z][\\\\s\\\\S]*?>\\\\n*|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$))\",def:/^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,table:m,lheading:/^([^\\n]+)\\n *(=|-){2,} *(?:\\n+|$)/,paragraph:/^([^\\n]+(?:\\n(?!hr|heading|lheading| {0,3}>|<\\/?(?:tag)(?: +|\\n|\\/?>)|<(?:script|pre|style|!--))[^\\n]+)*)/,text:/^[^\\n]+/};function n(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||b.defaults,this.rules=t.normal,this.options.pedantic?this.rules=t.pedantic:this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/,\nt._title=/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/,t.def=h(t.def).replace(\"label\",t._label).replace(\"title\",t._title).getRegex(),t.bullet=/(?:[*+-]|\\d{1,9}\\.)/,t.item=/^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/,t.item=h(t.item,\"gm\").replace(/bull/g,t.bullet).getRegex(),t.list=h(t.list).replace(/bull/g,t.bullet).replace(\"hr\",\"\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))\").replace(\"def\",\"\\\\n+(?=\"+t.def.source+\")\").getRegex(),t._tag=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",t._comment=/<!--(?!-?>)[\\s\\S]*?-->/,\nt.html=h(t.html,\"i\").replace(\"comment\",t._comment).replace(\"tag\",t._tag).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),t.paragraph=h(t.paragraph).replace(\"hr\",t.hr).replace(\"heading\",t.heading).replace(\"lheading\",t.lheading).replace(\"tag\",t._tag).getRegex(),t.blockquote=h(t.blockquote).replace(\"paragraph\",t.paragraph).getRegex(),t.normal=v({},t),t.gfm=v({},t.normal,{fences:/^ {0,3}(`{3,}|~{3,})([^`\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\\n]+?) *#* *(?:\\n+|$)/}),t.gfm.paragraph=h(t.paragraph).replace(\"(?!\",\"(?!\"+t.gfm.fences.source.replace(\"\\\\1\",\"\\\\2\")+\"|\"+t.list.source.replace(\"\\\\1\",\"\\\\3\")+\"|\").getRegex(),t.tables=v({},t.gfm,{nptable:/^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,table:/^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/}),t.pedantic=v({},t.normal,{\nhtml:h(\"^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\\\"[^\\\"]*\\\"|'[^']*'|\\\\s[^'\\\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))\").replace(\"comment\",t._comment).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\\r\\n|\\r/g,\"\\n\").replace(/\\t/g,\"    \").replace(/\\u00a0/g,\" \").replace(/\\u2424/g,\"\\n\"),this.token(e,!0)},n.prototype.token=function(e,n){var i,o,r,s,a,l,u,d,c,h,p,g,f,m,v,C;for(e=e.replace(/^ +$/gm,\"\");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:\"space\"})),r=this.rules.code.exec(e))e=e.substring(r[0].length),r=r[0].replace(/^ {4}/gm,\"\"),this.tokens.push({type:\"code\",text:this.options.pedantic?r:y(r,\"\\n\")\n});else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"code\",lang:r[2]?r[2].trim():r[2],text:r[3]||\"\"});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"heading\",depth:r[1].length,text:r[2]});else if((r=this.rules.nptable.exec(e))&&(l={type:\"table\",header:_(r[1].replace(/^ *| *\\| *$/g,\"\")),align:r[2].replace(/^ *|\\| *$/g,\"\").split(/ *\\| */),cells:r[3]?r[3].replace(/\\n$/,\"\").split(\"\\n\"):[]}).header.length===l.align.length){for(e=e.substring(r[0].length),p=0;p<l.align.length;p++)/^ *-+: *$/.test(l.align[p])?l.align[p]=\"right\":/^ *:-+: *$/.test(l.align[p])?l.align[p]=\"center\":/^ *:-+ *$/.test(l.align[p])?l.align[p]=\"left\":l.align[p]=null;for(p=0;p<l.cells.length;p++)l.cells[p]=_(l.cells[p],l.header.length);this.tokens.push(l)}else if(r=this.rules.hr.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"hr\"});else if(r=this.rules.blockquote.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"blockquote_start\"}),\nr=r[0].replace(/^ *> ?/gm,\"\"),this.token(r,n),this.tokens.push({type:\"blockquote_end\"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),u={type:\"list_start\",ordered:m=(s=r[2]).length>1,start:m?+s:\"\",loose:!1},this.tokens.push(u),d=[],i=!1,f=(r=r[0].match(this.rules.item)).length,p=0;p<f;p++)h=(l=r[p]).length,~(l=l.replace(/^ *([*+-]|\\d+\\.) */,\"\")).indexOf(\"\\n \")&&(h-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,\"\"):l.replace(new RegExp(\"^ {1,\"+h+\"}\",\"gm\"),\"\")),p!==f-1&&(a=t.bullet.exec(r[p+1])[0],(s.length>1?1===a.length:a.length>1||this.options.smartLists&&a!==s)&&(e=r.slice(p+1).join(\"\\n\")+e,p=f-1)),o=i||/\\n\\n(?!\\s*$)/.test(l),p!==f-1&&(i=\"\\n\"===l.charAt(l.length-1),o||(o=i)),o&&(u.loose=!0),C=void 0,(v=/^\\[[ xX]\\] /.test(l))&&(C=\" \"!==l[1],l=l.replace(/^\\[[ xX]\\] +/,\"\")),c={type:\"list_item_start\",task:v,checked:C,loose:o},d.push(c),this.tokens.push(c),this.token(l,!1),this.tokens.push({type:\"list_item_end\"});if(u.loose)for(f=d.length,p=0;p<f;p++)d[p].loose=!0;this.tokens.push({\ntype:\"list_end\"})}else if(r=this.rules.html.exec(e))e=e.substring(r[0].length),this.tokens.push({type:this.options.sanitize?\"paragraph\":\"html\",pre:!this.options.sanitizer&&(\"pre\"===r[1]||\"script\"===r[1]||\"style\"===r[1]),text:r[0]});else if(n&&(r=this.rules.def.exec(e)))e=e.substring(r[0].length),r[3]&&(r[3]=r[3].substring(1,r[3].length-1)),g=r[1].toLowerCase().replace(/\\s+/g,\" \"),this.tokens.links[g]||(this.tokens.links[g]={href:r[2],title:r[3]});else if((r=this.rules.table.exec(e))&&(l={type:\"table\",header:_(r[1].replace(/^ *| *\\| *$/g,\"\")),align:r[2].replace(/^ *|\\| *$/g,\"\").split(/ *\\| */),cells:r[3]?r[3].replace(/\\n$/,\"\").split(\"\\n\"):[]}).header.length===l.align.length){for(e=e.substring(r[0].length),p=0;p<l.align.length;p++)/^ *-+: *$/.test(l.align[p])?l.align[p]=\"right\":/^ *:-+: *$/.test(l.align[p])?l.align[p]=\"center\":/^ *:-+ *$/.test(l.align[p])?l.align[p]=\"left\":l.align[p]=null;for(p=0;p<l.cells.length;p++)l.cells[p]=_(l.cells[p].replace(/^ *\\| *| *\\| *$/g,\"\"),l.header.length);this.tokens.push(l)\n}else if(r=this.rules.lheading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"heading\",depth:\"=\"===r[2]?1:2,text:r[1]});else if(n&&(r=this.rules.paragraph.exec(e)))e=e.substring(r[0].length),this.tokens.push({type:\"paragraph\",text:\"\\n\"===r[1].charAt(r[1].length-1)?r[1].slice(0,-1):r[1]});else if(r=this.rules.text.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"text\",text:r[0]});else if(e)throw new Error(\"Infinite loop on byte: \"+e.charCodeAt(0));return this.tokens};var i={escape:/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,autolink:/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,url:m,tag:\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",link:/^!?\\[(label)\\]\\(href(?:\\s+(title))?\\s*\\)/,reflink:/^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,nolink:/^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\nstrong:/^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,em:/^_([^\\s_])_(?!_)|^\\*([^\\s*\"<\\[])\\*(?!\\*)|^_([^\\s][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s\"<\\[][\\s\\S]*?[^\\s*])\\*(?!\\*)|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,code:/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,br:/^( {2,}|\\\\)\\n(?!\\s*$)/,del:m,text:/^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/};function o(e,t){if(this.options=t||b.defaults,this.links=e,this.rules=i.normal,this.renderer=this.options.renderer||new r,this.renderer.options=this.options,!this.links)throw new Error(\"Tokens array requires a `links` property.\");this.options.pedantic?this.rules=i.pedantic:this.options.gfm&&(this.options.breaks?this.rules=i.breaks:this.rules=i.gfm)}function r(e){this.options=e||b.defaults}function s(){}function a(e){this.tokens=[],this.token=null,this.options=e||b.defaults,this.options.renderer=this.options.renderer||new r,\nthis.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new l}function l(){this.seen={}}function d(e,t){if(t){if(d.escapeTest.test(e))return e.replace(d.escapeReplace,(function(e){return d.replacements[e]}))}else if(d.escapeTestNoEncode.test(e))return e.replace(d.escapeReplaceNoEncode,(function(e){return d.replacements[e]}));return e}function c(e){return e.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/gi,(function(e,t){return\"colon\"===(t=t.toLowerCase())?\":\":\"#\"===t.charAt(0)?\"x\"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):\"\"}))}function h(e,t){return e=e.source||e,t=t||\"\",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\\[])\\^/g,\"$1\"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function p(e,t,n){if(e){try{var i=decodeURIComponent(c(n)).replace(/[^\\w:]/g,\"\").toLowerCase()}catch(e){return null}if(0===i.indexOf(\"javascript:\")||0===i.indexOf(\"vbscript:\")||0===i.indexOf(\"data:\"))return null\n}t&&!f.test(n)&&(n=function(e,t){g[\" \"+e]||(/^[^:]+:\\/*[^/]*$/.test(e)?g[\" \"+e]=e+\"/\":g[\" \"+e]=y(e,\"/\",!0));return e=g[\" \"+e],\"//\"===t.slice(0,2)?e.replace(/:[\\s\\S]*/,\":\")+t:\"/\"===t.charAt(0)?e.replace(/(:\\/*[^/]*)[\\s\\S]*/,\"$1\")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,\"%\")}catch(e){return null}return n}i._punctuation=\"!\\\"#$%&'()*+,\\\\-./:;<=>?@\\\\[^_{|}~\",i.em=h(i.em).replace(/punctuation/g,i._punctuation).getRegex(),i._escapes=/\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g,i._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,i._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,i.autolink=h(i.autolink).replace(\"scheme\",i._scheme).replace(\"email\",i._email).getRegex(),i._attribute=/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/,i.tag=h(i.tag).replace(\"comment\",t._comment).replace(\"attribute\",i._attribute).getRegex(),i._label=/(?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]?|`[^`]*`|`(?!`)|[^\\[\\]\\\\`])*?/,\ni._href=/\\s*(<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*)/,i._title=/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/,i.link=h(i.link).replace(\"label\",i._label).replace(\"href\",i._href).replace(\"title\",i._title).getRegex(),i.reflink=h(i.reflink).replace(\"label\",i._label).getRegex(),i.normal=v({},i),i.pedantic=v({},i.normal,{strong:/^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,em:/^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,link:h(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",i._label).getRegex(),reflink:h(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",i._label).getRegex()}),i.gfm=v({},i.normal,{escape:h(i.escape).replace(\"])\",\"~|])\").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\\S)([\\s\\S]*?\\S)~+/,\ntext:/^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/}),i.gfm.url=h(i.gfm.url,\"i\").replace(\"email\",i.gfm._extended_email).getRegex(),i.breaks=v({},i.gfm,{br:h(i.br).replace(\"{2,}\",\"*\").getRegex(),text:h(i.gfm.text).replace(/\\{2,\\}/g,\"*\").getRegex()}),o.rules=i,o.output=function(e,t,n){return new o(t,n).output(e)},o.prototype.output=function(e){for(var t,n,i,r,s,a,l=\"\";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),l+=d(s[1]);else if(s=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(s[0])?this.inLink=!0:this.inLink&&/^<\\/a>/i.test(s[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\\s|>)/i.test(s[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\\/(pre|code|kbd|script)(\\s|>)/i.test(s[0])&&(this.inRawBlock=!1),e=e.substring(s[0].length),\nl+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):d(s[0]):s[0];else if(s=this.rules.link.exec(e)){var u=C(s[2],\"()\");if(u>-1){var c=s[0].length-(s[2].length-u)-(s[3]||\"\").length;s[2]=s[2].substring(0,u),s[0]=s[0].substring(0,c).trim(),s[3]=\"\"}e=e.substring(s[0].length),this.inLink=!0,i=s[2],this.options.pedantic?(t=/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(i))?(i=t[1],r=t[3]):r=\"\":r=s[3]?s[3].slice(1,-1):\"\",i=i.trim().replace(/^<([\\s\\S]*)>$/,\"$1\"),l+=this.outputLink(s,{href:o.escapes(i),title:o.escapes(r)}),this.inLink=!1}else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\\s+/g,\" \"),!(t=this.links[t.toLowerCase()])||!t.href){l+=s[0].charAt(0),e=s[0].substring(1)+e;continue}this.inLink=!0,l+=this.outputLink(s,t),this.inLink=!1}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),l+=this.renderer.strong(this.output(s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),\nl+=this.renderer.em(this.output(s[6]||s[5]||s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),l+=this.renderer.codespan(d(s[2].trim(),!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),l+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),l+=this.renderer.del(this.output(s[1]));else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),i=\"@\"===s[2]?\"mailto:\"+(n=d(this.mangle(s[1]))):n=d(s[1]),l+=this.renderer.link(i,null,n);else if(this.inLink||!(s=this.rules.url.exec(e))){if(s=this.rules.text.exec(e))e=e.substring(s[0].length),this.inRawBlock?l+=this.renderer.text(s[0]):l+=this.renderer.text(d(this.smartypants(s[0])));else if(e)throw new Error(\"Infinite loop on byte: \"+e.charCodeAt(0))}else{if(\"@\"===s[2])i=\"mailto:\"+(n=d(s[0]));else{do{a=s[0],s[0]=this.rules._backpedal.exec(s[0])[0]}while(a!==s[0]);n=d(s[0]),i=\"www.\"===s[1]?\"http://\"+n:n}e=e.substring(s[0].length),l+=this.renderer.link(i,null,n)}return l},\no.escapes=function(e){return e?e.replace(o.rules._escapes,\"$1\"):e},o.prototype.outputLink=function(e,t){var n=t.href,i=t.title?d(t.title):null;return\"!\"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,d(e[1]))},o.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,\"—\").replace(/--/g,\"–\").replace(/(^|[-\\u2014/(\\[{\"\\s])'/g,\"$1‘\").replace(/'/g,\"’\").replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g,\"$1“\").replace(/\"/g,\"”\").replace(/\\.{3}/g,\"…\"):e},o.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n=\"\",i=e.length,o=0;o<i;o++)t=e.charCodeAt(o),Math.random()>.5&&(t=\"x\"+t.toString(16)),n+=\"&#\"+t+\";\";return n},r.prototype.code=function(e,t,n){var i=(t||\"\").match(/\\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,i);null!=o&&o!==e&&(n=!0,e=o)}return i?'<pre><code class=\"'+this.options.langPrefix+d(i,!0)+'\">'+(n?e:d(e,!0))+\"</code></pre>\\n\":\"<pre><code>\"+(n?e:d(e,!0))+\"</code></pre>\"},r.prototype.blockquote=function(e){\nreturn\"<blockquote>\\n\"+e+\"</blockquote>\\n\"},r.prototype.html=function(e){return e},r.prototype.heading=function(e,t,n,i){return this.options.headerIds?\"<h\"+t+' id=\"'+this.options.headerPrefix+i.slug(n)+'\">'+e+\"</h\"+t+\">\\n\":\"<h\"+t+\">\"+e+\"</h\"+t+\">\\n\"},r.prototype.hr=function(){return this.options.xhtml?\"<hr/>\\n\":\"<hr>\\n\"},r.prototype.list=function(e,t,n){var i=t?\"ol\":\"ul\";return\"<\"+i+(t&&1!==n?' start=\"'+n+'\"':\"\")+\">\\n\"+e+\"</\"+i+\">\\n\"},r.prototype.listitem=function(e){return\"<li>\"+e+\"</li>\\n\"},r.prototype.checkbox=function(e){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"'+(this.options.xhtml?\" /\":\"\")+\"> \"},r.prototype.paragraph=function(e){return\"<p>\"+e+\"</p>\\n\"},r.prototype.table=function(e,t){return t&&(t=\"<tbody>\"+t+\"</tbody>\"),\"<table>\\n<thead>\\n\"+e+\"</thead>\\n\"+t+\"</table>\\n\"},r.prototype.tablerow=function(e){return\"<tr>\\n\"+e+\"</tr>\\n\"},r.prototype.tablecell=function(e,t){var n=t.header?\"th\":\"td\";return(t.align?\"<\"+n+' align=\"'+t.align+'\">':\"<\"+n+\">\")+e+\"</\"+n+\">\\n\"},\nr.prototype.strong=function(e){return\"<strong>\"+e+\"</strong>\"},r.prototype.em=function(e){return\"<em>\"+e+\"</em>\"},r.prototype.codespan=function(e){return\"<code>\"+e+\"</code>\"},r.prototype.br=function(){return this.options.xhtml?\"<br/>\":\"<br>\"},r.prototype.del=function(e){return\"<del>\"+e+\"</del>\"},r.prototype.link=function(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<a href=\"'+d(e)+'\"';return t&&(i+=' title=\"'+t+'\"'),i+=\">\"+n+\"</a>\"},r.prototype.image=function(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<img src=\"'+e+'\" alt=\"'+n+'\"';return t&&(i+=' title=\"'+t+'\"'),i+=this.options.xhtml?\"/>\":\">\"},r.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return\"\"+n},s.prototype.br=function(){return\"\"},a.parse=function(e,t){return new a(t).parse(e)},a.prototype.parse=function(e){\nthis.inline=new o(e.links,this.options),this.inlineText=new o(e.links,v({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t=\"\";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;\"text\"===this.peek().type;)e+=\"\\n\"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case\"space\":return\"\";case\"hr\":return this.renderer.hr();case\"heading\":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,c(this.inlineText.output(this.token.text)),this.slugger);case\"code\":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case\"table\":var e,t,n,i,o=\"\",r=\"\";for(n=\"\",e=0;e<this.token.header.length;e++)n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]})\n;for(o+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n=\"\",i=0;i<t.length;i++)n+=this.renderer.tablecell(this.inline.output(t[i]),{header:!1,align:this.token.align[i]});r+=this.renderer.tablerow(n)}return this.renderer.table(o,r);case\"blockquote_start\":for(r=\"\";\"blockquote_end\"!==this.next().type;)r+=this.tok();return this.renderer.blockquote(r);case\"list_start\":r=\"\";for(var s=this.token.ordered,a=this.token.start;\"list_end\"!==this.next().type;)r+=this.tok();return this.renderer.list(r,s,a);case\"list_item_start\":r=\"\";var l=this.token.loose,u=this.token.checked,d=this.token.task;for(this.token.task&&(r+=this.renderer.checkbox(u));\"list_item_end\"!==this.next().type;)r+=l||\"text\"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(r,d,u);case\"html\":return this.renderer.html(this.token.text);case\"paragraph\":return this.renderer.paragraph(this.inline.output(this.token.text));case\"text\":return this.renderer.paragraph(this.parseText());default:\nvar h='Token with \"'+this.token.type+'\" type was not found.';if(!this.options.silent)throw new Error(h);console.log(h)}},l.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g,\"\").replace(/\\s/g,\"-\");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+\"-\"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},d.escapeTest=/[&<>\"']/,d.escapeReplace=/[&<>\"']/g,d.replacements={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},d.escapeTestNoEncode=/[<>\"']|&(?!#?\\w+;)/,d.escapeReplaceNoEncode=/[<>\"']|&(?!#?\\w+;)/g;var g={},f=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function m(){}function v(e){for(var t,n,i=1;i<arguments.length;i++)for(n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function _(e,t){var n=e.replace(/\\|/g,(function(e,t,n){for(var i=!1,o=t;--o>=0&&\"\\\\\"===n[o];)i=!i;return i?\"|\":\" |\"})).split(/ \\|/),i=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(\"\")\n;for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\\\\|/g,\"|\");return n}function y(e,t,n){if(0===e.length)return\"\";for(var i=0;i<e.length;){var o=e.charAt(e.length-i-1);if(o!==t||n){if(o===t||!n)break;i++}else i++}return e.substr(0,e.length-i)}function C(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=0,i=0;i<e.length;i++)if(\"\\\\\"===e[i])i++;else if(e[i]===t[0])n++;else if(e[i]===t[1]&&--n<0)return i;return-1}function b(e,t,i){if(null==e)throw new Error(\"marked(): input parameter is undefined or null\");if(\"string\"!=typeof e)throw new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(e)+\", string expected\");if(i||\"function\"==typeof t){i||(i=t,t=null);var o,r,s=(t=v({},b.defaults,t||{})).highlight,l=0;try{o=n.lex(e,t)}catch(e){return i(e)}r=o.length;var u=function(e){if(e)return t.highlight=s,i(e);var n;try{n=a.parse(o,t)}catch(t){e=t}return t.highlight=s,e?i(e):i(null,n)};if(!s||s.length<3)return u();if(delete t.highlight,!r)return u();for(;l<o.length;l++)!function(e){\n\"code\"!==e.type?--r||u():s(e.text,e.lang,(function(t,n){return t?u(t):null==n||n===e.text?--r||u():(e.text=n,e.escaped=!0,void(--r||u()))}))}(o[l])}else try{return t&&(t=v({},b.defaults,t)),a.parse(n.lex(e,t),t)}catch(e){if(e.message+=\"\\nPlease report this to https://github.com/markedjs/marked.\",(t||b.defaults).silent)return\"<p>An error occurred:</p><pre>\"+d(e.message+\"\",!0)+\"</pre>\";throw e}}m.exec=m,b.options=b.setOptions=function(e){return v(b.defaults,e),b},b.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:\"\",highlight:null,langPrefix:\"language-\",mangle:!0,pedantic:!1,renderer:new r,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},b.defaults=b.getDefaults(),b.Parser=a,b.parser=a.parse,b.Renderer=r,b.TextRenderer=s,b.Lexer=n,b.lexer=n.lex,b.InlineLexer=o,b.inlineLexer=o.output,b.Slugger=l,b.parse=b,u=b}.call(this),define(\"vs/base/common/marked/marked\",(function(){return u})),define(n[131],i([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.clamp=function(e,t,n){return Math.min(Math.max(e,t),n)}})),define(n[16],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=!1,o=!1,r=!1,s=!1,a=!1,l=void 0,u=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type;if(\"object\"!=typeof navigator||u){if(\"object\"==typeof process){n=\"win32\"===process.platform,i=\"darwin\"===process.platform,o=\"linux\"===process.platform,\"en\",\"en\";var d=process.env.VSCODE_NLS_CONFIG;if(d)try{var c=JSON.parse(d),h=c.availableLanguages[\"*\"];c.locale,h||\"en\",c._translationsConfigFile}catch(e){}r=!0}}else n=(l=navigator.userAgent).indexOf(\"Windows\")>=0,i=l.indexOf(\"Macintosh\")>=0,a=l.indexOf(\"Macintosh\")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,o=l.indexOf(\"Linux\")>=0,s=!0,navigator.language;t.isWindows=n,t.isMacintosh=i,t.isLinux=o,t.isNative=r,t.isWeb=s,t.isIOS=a\n;var p=\"object\"==typeof self?self:\"object\"==typeof global?global:{};t.globals=p,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals);if(\"function\"==typeof t.globals.postMessage&&!t.globals.importScripts){var e=[];t.globals.addEventListener(\"message\",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,i=e.length;n<i;n++){var o=e[n];if(o.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void o.callback()}}));var n=0;return function(i){var o=++n;e.push({id:o,callback:i}),t.globals.postMessage({vscodeSetImmediateId:o},\"*\")}}if(\"undefined\"!=typeof process&&\"function\"==typeof process.nextTick)return process.nextTick.bind(process);var i=Promise.resolve();return function(e){return i.then(e)}}(),t.OS=i?2:n?1:3})),define(n[88],i([0,1,24,16]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.BrowserFeatures={clipboard:{\nwriteText:i.isNative||document.queryCommandSupported&&document.queryCommandSupported(\"copy\")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:i.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText),richText:function(){if(n.isIE)return!1;if(n.isEdge){var e=navigator.userAgent.indexOf(\"Edge/\"),t=parseInt(navigator.userAgent.substring(e+5,navigator.userAgent.indexOf(\".\",e)),10);if(!t||t>=12&&t<=16)return!1}return!0}()},keyboard:i.isNative||n.isStandalone?0:navigator.keyboard||n.isSafari?1:2,touch:\"ontouchstart\"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0,pointerEvents:window.PointerEvent&&(\"ontouchstart\"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0)}})),define(n[56],i([0,1,24,36,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=new Array(230),s=new Array(112);!function(){for(var e=0;e<s.length;e++)s[e]=-1;function t(e,t){r[e]=t,\ns[t]=e}t(3,7),t(8,1),t(9,2),t(13,3),t(16,4),t(17,5),t(18,6),t(19,7),t(20,8),t(27,9),t(32,10),t(33,11),t(34,12),t(35,13),t(36,14),t(37,15),t(38,16),t(39,17),t(40,18),t(45,19),t(46,20),t(48,21),t(49,22),t(50,23),t(51,24),t(52,25),t(53,26),t(54,27),t(55,28),t(56,29),t(57,30),t(65,31),t(66,32),t(67,33),t(68,34),t(69,35),t(70,36),t(71,37),t(72,38),t(73,39),t(74,40),t(75,41),t(76,42),t(77,43),t(78,44),t(79,45),t(80,46),t(81,47),t(82,48),t(83,49),t(84,50),t(85,51),t(86,52),t(87,53),t(88,54),t(89,55),t(90,56),t(93,58),t(96,93),t(97,94),t(98,95),t(99,96),t(100,97),t(101,98),t(102,99),t(103,100),t(104,101),t(105,102),t(106,103),t(107,104),t(108,105),t(109,106),t(110,107),t(111,108),t(112,59),t(113,60),t(114,61),t(115,62),t(116,63),t(117,64),t(118,65),t(119,66),t(120,67),t(121,68),t(122,69),t(123,70),t(124,71),t(125,72),t(126,73),t(127,74),t(128,75),t(129,76),t(130,77),t(144,78),t(145,79),t(186,80),t(187,81),t(188,82),t(189,83),t(190,84),t(191,85),t(192,86),t(193,110),t(194,111),t(219,87),t(220,88),t(221,89),t(222,90),\nt(223,91),t(226,92),t(229,109),n.isIE?t(91,57):n.isFirefox?(t(59,80),t(107,81),t(109,83),o.isMacintosh&&t(224,57)):n.isWebKit&&(t(91,57),o.isMacintosh?t(93,57):t(92,57))}();var a=o.isMacintosh?256:2048,l=o.isMacintosh?2048:256,u=function(){function e(e){this._standardKeyboardEventBrand=!0;var t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.keyCode=function(e){if(e.charCode){var t=String.fromCharCode(e.charCode).toUpperCase();return i.KeyCodeUtils.fromString(t)}return r[e.keyCode]||0}(t),this.code=t.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},\ne.prototype.stopPropagation=function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e.prototype.toKeybinding=function(){return this._asRuntimeKeybinding},e.prototype.equals=function(e){return this._asKeybinding===e},e.prototype._computeKeybinding=function(){var e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);var t=0;return this.ctrlKey&&(t|=a),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=l),t|=e},e.prototype._computeRuntimeKeybinding=function(){var e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new i.SimpleKeybinding(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)},e}();t.StandardKeyboardEvent=u})),define(n[45],i([0,1,24,174,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=0===e.button,\nthis.middleButton=1===e.button,this.rightButton=2===e.button,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,\"dblclick\"===e.type&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,\"number\"==typeof e.pageX?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop);var t=i.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(self,e.view);this.posx-=t.left,this.posy-=t.top}return e.prototype.preventDefault=function(){this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardMouseEvent=s;var a=function(e){function t(t){var n=e.call(this,t)||this;return n.dataTransfer=t.dataTransfer,n}return r(t,e),t}(s);t.DragMouseEvent=a;var l=function(){\nfunction e(e,t,i){if(void 0===t&&(t=0),void 0===i&&(i=0),this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t,e){var r=e,s=e;if(void 0!==r.wheelDeltaY)this.deltaY=r.wheelDeltaY/120;else if(void 0!==s.VERTICAL_AXIS&&s.axis===s.VERTICAL_AXIS)this.deltaY=-s.detail/3;else if(\"wheel\"===e.type){(a=e).deltaMode===a.DOM_DELTA_LINE?this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(void 0!==r.wheelDeltaX)n.isSafari&&o.isWindows?this.deltaX=-r.wheelDeltaX/120:this.deltaX=r.wheelDeltaX/120;else if(void 0!==s.HORIZONTAL_AXIS&&s.axis===s.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(\"wheel\"===e.type){var a;(a=e).deltaMode===a.DOM_DELTA_LINE?this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}0===this.deltaY&&0===this.deltaX&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){\nthis.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardWheelEvent=l})),define(n[245],i([0,1,16]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=\"undefined\"==typeof process?{cwd:function(){return\"/\"},env:Object.create(null),get platform(){return n.isWindows?\"win32\":n.isMacintosh?\"darwin\":\"linux\"},nextTick:function(e){return n.setImmediate(e)}}:process;t.cwd=i.cwd,t.env=i.env,t.platform=i.platform})),define(n[77],i([0,1,245]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=65,o=97,s=90,a=122,l=46,u=47,d=92,c=function(e){function t(t,n,i){var o,r=this;\"string\"==typeof n&&0===n.indexOf(\"not \")?(o=\"must not be\",n=n.replace(/^not /,\"\")):o=\"must be\";var s=-1!==t.indexOf(\".\")?\"property\":\"argument\",a='The \"'+t+'\" '+s+\" \"+o+\" of type \"+n;return a+=\". Received type \"+typeof i,(r=e.call(this,a)||this).code=\"ERR_INVALID_ARG_TYPE\",r}return r(t,e),t}(Error);function h(e,t){\nif(\"string\"!=typeof e)throw new c(t,\"string\",e)}function p(e){return e===u||e===d}function g(e){return e===u}function f(e){return e>=i&&e<=s||e>=o&&e<=a}function m(e,t,n,i){for(var o,r=\"\",s=0,a=-1,d=0,c=0;c<=e.length;++c){if(c<e.length)o=e.charCodeAt(c);else{if(i(o))break;o=u}if(i(o)){if(a===c-1||1===d);else if(a!==c-1&&2===d){if(r.length<2||2!==s||r.charCodeAt(r.length-1)!==l||r.charCodeAt(r.length-2)!==l){if(r.length>2){var h=r.lastIndexOf(n);-1===h?(r=\"\",s=0):s=(r=r.slice(0,h)).length-1-r.lastIndexOf(n),a=c,d=0;continue}if(2===r.length||1===r.length){r=\"\",s=0,a=c,d=0;continue}}t&&(r.length>0?r+=n+\"..\":r=\"..\",s=2)}else r.length>0?r+=n+e.slice(a+1,c):r=e.slice(a+1,c),s=c-a-1;a=c,d=0}else o===l&&-1!==d?++d:d=-1}return r}function v(e,t){var n=t.dir||t.root,i=t.base||(t.name||\"\")+(t.ext||\"\");return n?n===t.root?n+i:n+e+i:i}t.win32={resolve:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var i=\"\",o=\"\",r=!1,s=e.length-1;s>=-1;s--){var a=void 0\n;if(s>=0?a=e[s]:i?void 0!==(a=n.env[\"=\"+i]||n.cwd())&&a.slice(0,3).toLowerCase()===i.toLowerCase()+\"\\\\\"||(a=i+\"\\\\\"):a=n.cwd(),h(a,\"path\"),0!==a.length){var l=a.length,u=0,d=\"\",c=!1,g=a.charCodeAt(0);if(l>1)if(p(g))if(c=!0,p(a.charCodeAt(1))){for(var v=2,_=v;v<l&&!p(a.charCodeAt(v));++v);if(v<l&&v!==_){var y=a.slice(_,v);for(_=v;v<l&&p(a.charCodeAt(v));++v);if(v<l&&v!==_){for(_=v;v<l&&!p(a.charCodeAt(v));++v);v===l?(d=\"\\\\\\\\\"+y+\"\\\\\"+a.slice(_),u=v):v!==_&&(d=\"\\\\\\\\\"+y+\"\\\\\"+a.slice(_,v),u=v)}}}else u=1;else f(g)&&58===a.charCodeAt(1)&&(d=a.slice(0,2),u=2,l>2&&p(a.charCodeAt(2))&&(c=!0,u=3));else p(g)&&(u=1,c=!0);if(!(d.length>0&&i.length>0&&d.toLowerCase()!==i.toLowerCase())&&(0===i.length&&d.length>0&&(i=d),r||(o=a.slice(u)+\"\\\\\"+o,r=c),i.length>0&&r))break}}return i+(r?\"\\\\\":\"\")+(o=m(o,!r,\"\\\\\",p))||\".\"},normalize:function(e){h(e,\"path\");var t=e.length;if(0===t)return\".\";var n,i,o=0,r=!1,s=e.charCodeAt(0);if(t>1)if(p(s))if(r=!0,p(e.charCodeAt(1))){for(var a=2,l=a;a<t&&!p(e.charCodeAt(a));++a);if(a<t&&a!==l){\nvar u=e.slice(l,a);for(l=a;a<t&&p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&!p(e.charCodeAt(a));++a);if(a===t)return\"\\\\\\\\\"+u+\"\\\\\"+e.slice(l)+\"\\\\\";a!==l&&(n=\"\\\\\\\\\"+u+\"\\\\\"+e.slice(l,a),o=a)}}}else o=1;else f(s)&&58===e.charCodeAt(1)&&(n=e.slice(0,2),o=2,t>2&&p(e.charCodeAt(2))&&(r=!0,o=3));else if(p(s))return\"\\\\\";return 0!==(i=o<t?m(e.slice(o),!r,\"\\\\\",p):\"\").length||r||(i=\".\"),i.length>0&&p(e.charCodeAt(t-1))&&(i+=\"\\\\\"),void 0===n?r?i.length>0?\"\\\\\"+i:\"\\\\\":i.length>0?i:\"\":r?i.length>0?n+\"\\\\\"+i:n+\"\\\\\":i.length>0?n+i:n},isAbsolute:function(e){h(e,\"path\");var t=e.length;if(0===t)return!1;var n=e.charCodeAt(0);return!!p(n)||!!(f(n)&&t>2&&58===e.charCodeAt(1)&&p(e.charCodeAt(2)))},join:function(){for(var e,n,i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(0===i.length)return\".\";for(var r=0;r<i.length;++r){var s=i[r];h(s,\"path\"),s.length>0&&(void 0===e?e=n=s:e+=\"\\\\\"+s)}if(void 0===e)return\".\";var a=!0,l=0;if(\"string\"==typeof n&&p(n.charCodeAt(0))){++l;var u=n.length;u>1&&p(n.charCodeAt(1))&&(++l,\nu>2&&(p(n.charCodeAt(2))?++l:a=!1))}if(a){for(;l<e.length&&p(e.charCodeAt(l));++l);l>=2&&(e=\"\\\\\"+e.slice(l))}return t.win32.normalize(e)},relative:function(e,n){if(h(e,\"from\"),h(n,\"to\"),e===n)return\"\";var i=t.win32.resolve(e),o=t.win32.resolve(n);if(i===o)return\"\";if((e=i.toLowerCase())===(n=o.toLowerCase()))return\"\";for(var r=0;r<e.length&&e.charCodeAt(r)===d;++r);for(var s=e.length;s-1>r&&e.charCodeAt(s-1)===d;--s);for(var a=s-r,l=0;l<n.length&&n.charCodeAt(l)===d;++l);for(var u=n.length;u-1>l&&n.charCodeAt(u-1)===d;--u);for(var c=u-l,p=a<c?a:c,g=-1,f=0;f<=p;++f){if(f===p){if(c>p){if(n.charCodeAt(l+f)===d)return o.slice(l+f+1);if(2===f)return o.slice(l+f)}a>p&&(e.charCodeAt(r+f)===d?g=f:2===f&&(g=3));break}var m=e.charCodeAt(r+f);if(m!==n.charCodeAt(l+f))break;m===d&&(g=f)}if(f!==p&&-1===g)return o;var v=\"\";for(-1===g&&(g=0),f=r+g+1;f<=s;++f)f!==s&&e.charCodeAt(f)!==d||(0===v.length?v+=\"..\":v+=\"\\\\..\");return v.length>0?v+o.slice(l+g,u):(l+=g,o.charCodeAt(l)===d&&++l,o.slice(l,u))},\ntoNamespacedPath:function(e){if(\"string\"!=typeof e)return e;if(0===e.length)return\"\";var n=t.win32.resolve(e);if(n.length>=3)if(n.charCodeAt(0)===d){if(n.charCodeAt(1)===d){var i=n.charCodeAt(2);if(63!==i&&i!==l)return\"\\\\\\\\?\\\\UNC\\\\\"+n.slice(2)}}else if(f(n.charCodeAt(0))&&58===n.charCodeAt(1)&&n.charCodeAt(2)===d)return\"\\\\\\\\?\\\\\"+n;return e},dirname:function(e){h(e,\"path\");var t=e.length;if(0===t)return\".\";var n=-1,i=-1,o=!0,r=0,s=e.charCodeAt(0);if(t>1)if(p(s)){if(n=r=1,p(e.charCodeAt(1))){for(var a=2,l=a;a<t&&!p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&!p(e.charCodeAt(a));++a);if(a===t)return e;a!==l&&(n=r=a+1)}}}}else f(s)&&58===e.charCodeAt(1)&&(n=r=2,t>2&&p(e.charCodeAt(2))&&(n=r=3));else if(p(s))return e;for(var u=t-1;u>=r;--u)if(p(e.charCodeAt(u))){if(!o){i=u;break}}else o=!1;if(-1===i){if(-1===n)return\".\";i=n}return e.slice(0,i)},basename:function(e,t){void 0!==t&&h(t,\"ext\"),h(e,\"path\");var n,i=0,o=-1,r=!0\n;e.length>=2&&(f(e.charCodeAt(0))&&58===e.charCodeAt(1)&&(i=2));if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return\"\";var s=t.length-1,a=-1;for(n=e.length-1;n>=i;--n){var l=e.charCodeAt(n);if(p(l)){if(!r){i=n+1;break}}else-1===a&&(r=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1==--s&&(o=n):(s=-1,o=a))}return i===o?o=a:-1===o&&(o=e.length),e.slice(i,o)}for(n=e.length-1;n>=i;--n)if(p(e.charCodeAt(n))){if(!r){i=n+1;break}}else-1===o&&(r=!1,o=n+1);return-1===o?\"\":e.slice(i,o)},extname:function(e){h(e,\"path\");var t=0,n=-1,i=0,o=-1,r=!0,s=0;e.length>=2&&58===e.charCodeAt(1)&&f(e.charCodeAt(0))&&(t=i=2);for(var a=e.length-1;a>=t;--a){var u=e.charCodeAt(a);if(p(u)){if(!r){i=a+1;break}}else-1===o&&(r=!1,o=a+1),u===l?-1===n?n=a:1!==s&&(s=1):-1!==n&&(s=-1)}return-1===n||-1===o||0===s||1===s&&n===o-1&&n===i+1?\"\":e.slice(n,o)},format:function(e){if(null===e||\"object\"!=typeof e)throw new c(\"pathObject\",\"Object\",e);return v(\"\\\\\",e)},parse:function(e){h(e,\"path\");var t={root:\"\",dir:\"\",base:\"\",\next:\"\",name:\"\"};if(0===e.length)return t;var n=e.length,i=0,o=e.charCodeAt(0);if(n>1){if(p(o)){if(i=1,p(e.charCodeAt(1))){for(var r=2,s=r;r<n&&!p(e.charCodeAt(r));++r);if(r<n&&r!==s){for(s=r;r<n&&p(e.charCodeAt(r));++r);if(r<n&&r!==s){for(s=r;r<n&&!p(e.charCodeAt(r));++r);r===n?i=r:r!==s&&(i=r+1)}}}}else if(f(o)&&58===e.charCodeAt(1)){if(i=2,!(n>2))return t.root=t.dir=e,t;if(p(e.charCodeAt(2))){if(3===n)return t.root=t.dir=e,t;i=3}}}else if(p(o))return t.root=t.dir=e,t;i>0&&(t.root=e.slice(0,i));for(var a=-1,u=i,d=-1,c=!0,g=e.length-1,m=0;g>=i;--g)if(p(o=e.charCodeAt(g))){if(!c){u=g+1;break}}else-1===d&&(c=!1,d=g+1),o===l?-1===a?a=g:1!==m&&(m=1):-1!==a&&(m=-1);return-1===a||-1===d||0===m||1===m&&a===d-1&&a===u+1?-1!==d&&(t.base=t.name=e.slice(u,d)):(t.name=e.slice(u,a),t.base=e.slice(u,d),t.ext=e.slice(a,d)),t.dir=u>0&&u!==i?e.slice(0,u-1):t.root,t},sep:\"\\\\\",delimiter:\";\",win32:null,posix:null},t.posix={resolve:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]\n;for(var i=\"\",o=!1,r=e.length-1;r>=-1&&!o;r--){var s=void 0;h(s=r>=0?e[r]:n.cwd(),\"path\"),0!==s.length&&(i=s+\"/\"+i,o=s.charCodeAt(0)===u)}return i=m(i,!o,\"/\",g),o?i.length>0?\"/\"+i:\"/\":i.length>0?i:\".\"},normalize:function(e){if(h(e,\"path\"),0===e.length)return\".\";var t=e.charCodeAt(0)===u,n=e.charCodeAt(e.length-1)===u;return 0!==(e=m(e,!t,\"/\",g)).length||t||(e=\".\"),e.length>0&&n&&(e+=\"/\"),t?\"/\"+e:e},isAbsolute:function(e){return h(e,\"path\"),e.length>0&&e.charCodeAt(0)===u},join:function(){for(var e,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];if(0===n.length)return\".\";for(var o=0;o<n.length;++o){var r=arguments[o];h(r,\"path\"),r.length>0&&(void 0===e?e=r:e+=\"/\"+r)}return void 0===e?\".\":t.posix.normalize(e)},relative:function(e,n){if(h(e,\"from\"),h(n,\"to\"),e===n)return\"\";if((e=t.posix.resolve(e))===(n=t.posix.resolve(n)))return\"\";for(var i=1;i<e.length&&e.charCodeAt(i)===u;++i);for(var o=e.length,r=o-i,s=1;s<n.length&&n.charCodeAt(s)===u;++s);for(var a=n.length-s,l=r<a?r:a,d=-1,c=0;c<=l;++c){if(c===l){\nif(a>l){if(n.charCodeAt(s+c)===u)return n.slice(s+c+1);if(0===c)return n.slice(s+c)}else r>l&&(e.charCodeAt(i+c)===u?d=c:0===c&&(d=0));break}var p=e.charCodeAt(i+c);if(p!==n.charCodeAt(s+c))break;p===u&&(d=c)}var g=\"\";for(c=i+d+1;c<=o;++c)c!==o&&e.charCodeAt(c)!==u||(0===g.length?g+=\"..\":g+=\"/..\");return g.length>0?g+n.slice(s+d):(s+=d,n.charCodeAt(s)===u&&++s,n.slice(s))},toNamespacedPath:function(e){return e},dirname:function(e){if(h(e,\"path\"),0===e.length)return\".\";for(var t=e.charCodeAt(0)===u,n=-1,i=!0,o=e.length-1;o>=1;--o)if(e.charCodeAt(o)===u){if(!i){n=o;break}}else i=!1;return-1===n?t?\"/\":\".\":t&&1===n?\"//\":e.slice(0,n)},basename:function(e,t){void 0!==t&&h(t,\"ext\"),h(e,\"path\");var n,i=0,o=-1,r=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return\"\";var s=t.length-1,a=-1;for(n=e.length-1;n>=0;--n){var l=e.charCodeAt(n);if(l===u){if(!r){i=n+1;break}}else-1===a&&(r=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1==--s&&(o=n):(s=-1,o=a))}return i===o?o=a:-1===o&&(o=e.length),\ne.slice(i,o)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===u){if(!r){i=n+1;break}}else-1===o&&(r=!1,o=n+1);return-1===o?\"\":e.slice(i,o)},extname:function(e){h(e,\"path\");for(var t=-1,n=0,i=-1,o=!0,r=0,s=e.length-1;s>=0;--s){var a=e.charCodeAt(s);if(a!==u)-1===i&&(o=!1,i=s+1),a===l?-1===t?t=s:1!==r&&(r=1):-1!==t&&(r=-1);else if(!o){n=s+1;break}}return-1===t||-1===i||0===r||1===r&&t===i-1&&t===n+1?\"\":e.slice(t,i)},format:function(e){if(null===e||\"object\"!=typeof e)throw new c(\"pathObject\",\"Object\",e);return v(\"/\",e)},parse:function(e){h(e,\"path\");var t={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===e.length)return t;var n,i=e.charCodeAt(0)===u;i?(t.root=\"/\",n=1):n=0;for(var o=-1,r=0,s=-1,a=!0,d=e.length-1,c=0;d>=n;--d){var p=e.charCodeAt(d);if(p!==u)-1===s&&(a=!1,s=d+1),p===l?-1===o?o=d:1!==c&&(c=1):-1!==o&&(c=-1);else if(!a){r=d+1;break}}return-1===o||-1===s||0===c||1===c&&o===s-1&&o===r+1?-1!==s&&(t.base=t.name=0===r&&i?e.slice(1,s):e.slice(r,s)):(0===r&&i?(t.name=e.slice(1,o),\nt.base=e.slice(1,s)):(t.name=e.slice(r,o),t.base=e.slice(r,s)),t.ext=e.slice(o,s)),r>0?t.dir=e.slice(0,r-1):i&&(t.dir=\"/\"),t},sep:\"/\",delimiter:\":\",win32:null,posix:null},t.posix.win32=t.win32.win32=t.win32,t.posix.posix=t.win32.posix=t.posix,t.normalize=\"win32\"===n.platform?t.win32.normalize:t.posix.normalize,t.join=\"win32\"===n.platform?t.win32.join:t.posix.join,t.relative=\"win32\"===n.platform?t.win32.relative:t.posix.relative,t.dirname=\"win32\"===n.platform?t.win32.dirname:t.posix.dirname,t.basename=\"win32\"===n.platform?t.win32.basename:t.posix.basename,t.extname=\"win32\"===n.platform?t.win32.extname:t.posix.extname,t.sep=\"win32\"===n.platform?t.win32.sep:t.posix.sep})),define(n[103],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};var n=Math.max(e.start,t.start),i=Math.min(e.end,t.end);return i-n<=0?{start:0,end:0}:{start:n,end:i}}function n(e){return e.end-e.start<=0}e.intersect=t,\ne.isEmpty=n,e.intersects=function(e,i){return!n(t(e,i))},e.relativeComplement=function(e,t){var i=[],o={start:e.start,end:Math.min(t.start,e.end)},r={start:Math.max(t.end,e.start),end:e.end};return n(o)||i.push(o),n(r)||i.push(r),i}}(t.Range||(t.Range={}))})),define(n[246],i([0,1,103]),(function(e,t,n){\"use strict\";function i(e,t){for(var i=[],o=0,r=t;o<r.length;o++){var s=r[o];if(!(e.start>=s.range.end)){if(e.end<s.range.start)break;var a=n.Range.intersect(e,s.range);n.Range.isEmpty(a)||i.push({range:a,size:s.size})}}return i}function o(e,t){return{start:e.start+t,end:e.end+t}}function r(e){for(var t=[],n=null,i=0,o=e;i<o.length;i++){var r=o[i],s=r.range.start,a=r.range.end,l=r.size;n&&l===n.size?n.range.end=a:(n={range:{start:s,end:a},size:l},t.push(n))}return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.groupIntersect=i,t.shift=o,t.consolidate=r;var s=function(){function e(){this.groups=[],this._size=0}return e.prototype.splice=function(e,t,n){void 0===n&&(n=[]);var s=n.length-t,a=i({start:0,end:e\n},this.groups),l=i({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((function(e){return{range:o(e.range,s),size:e.size}})),u=n.map((function(t,n){return{range:{start:e+n,end:e+n+1},size:t.size}}));this.groups=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r(e.reduce((function(e,t){return e.concat(t)}),[]))}(a,u,l),this._size=this.groups.reduce((function(e,t){return e+t.size*(t.range.end-t.range.start)}),0)},Object.defineProperty(e.prototype,\"count\",{get:function(){var e=this.groups.length;return e?this.groups[e-1].range.end:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.indexAt=function(e){if(e<0)return-1;for(var t=0,n=0,i=0,o=this.groups;i<o.length;i++){var r=o[i],s=r.range.end-r.range.start,a=n+s*r.size;if(e<a)return t+Math.floor((e-n)/r.size);t+=s,n=a}return t},e.prototype.indexAfter=function(e){return Math.min(this.indexAt(e)+1,this.count)},\ne.prototype.positionAt=function(e){if(e<0)return-1;for(var t=0,n=0,i=0,o=this.groups;i<o.length;i++){var r=o[i],s=r.range.end-r.range.start,a=n+s;if(e<a)return t+(e-n)*r.size;t+=s*r.size,n=a}return-1},e}();t.RangeMap=s})),define(n[176],i([0,1,4,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n,i,o,r){(e|=0)<0&&(e=0),(n|=0)+e>(t|=0)&&(n=t-e),n<0&&(n=0),(i|=0)<0&&(i=0),(r|=0)+i>(o|=0)&&(r=o-i),r<0&&(r=0),this.width=e,this.scrollWidth=t,this.scrollLeft=n,this.height=i,this.scrollHeight=o,this.scrollTop=r}return e.prototype.equals=function(e){return this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop},e.prototype.withScrollDimensions=function(t){\nreturn new e(void 0!==t.width?t.width:this.width,void 0!==t.scrollWidth?t.scrollWidth:this.scrollWidth,this.scrollLeft,void 0!==t.height?t.height:this.height,void 0!==t.scrollHeight?t.scrollHeight:this.scrollHeight,this.scrollTop)},e.prototype.withScrollPosition=function(t){return new e(this.width,this.scrollWidth,void 0!==t.scrollLeft?t.scrollLeft:this.scrollLeft,this.height,this.scrollHeight,void 0!==t.scrollTop?t.scrollTop:this.scrollTop)},e.prototype.createScrollEvent=function(e){var t=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,r=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:t,scrollWidthChanged:n,scrollLeftChanged:i,heightChanged:o,scrollHeightChanged:r,scrollTopChanged:s}},e}();t.ScrollState=o;var s=function(e){function t(t,i){\nvar r=e.call(this)||this;return r._onScroll=r._register(new n.Emitter),r.onScroll=r._onScroll.event,r._smoothScrollDuration=t,r._scheduleAtNextAnimationFrame=i,r._state=new o(0,0,0,0,0,0),r._smoothScrolling=null,r}return r(t,e),t.prototype.dispose=function(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),e.prototype.dispose.call(this)},t.prototype.setSmoothScrollDuration=function(e){this._smoothScrollDuration=e},t.prototype.validateScrollPosition=function(e){return this._state.withScrollPosition(e)},t.prototype.getScrollDimensions=function(){return this._state},t.prototype.setScrollDimensions=function(e){var t=this._state.withScrollDimensions(e);this._setState(t),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)},t.prototype.getFutureScrollPosition=function(){return this._smoothScrolling?this._smoothScrolling.to:this._state},t.prototype.getCurrentScrollPosition=function(){return this._state},t.prototype.setScrollPositionNow=function(e){\nvar t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t)},t.prototype.setScrollPositionSmooth=function(e){var t=this;if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:void 0===e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:void 0===e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};var n=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===n.scrollLeft&&this._smoothScrolling.to.scrollTop===n.scrollTop)return;var i=this._smoothScrolling.combine(this._state,n,this._smoothScrollDuration);this._smoothScrolling.dispose(),this._smoothScrolling=i}else{n=this._state.withScrollPosition(e);this._smoothScrolling=u.start(this._state,n,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){t._smoothScrolling&&(t._smoothScrolling.animationFrameDisposable=null,\nt._performSmoothScrolling())}))},t.prototype._performSmoothScrolling=function(){var e=this;if(this._smoothScrolling){var t=this._smoothScrolling.tick(),n=this._state.withScrollPosition(t);if(this._setState(n),t.isDone)return this._smoothScrolling.dispose(),void(this._smoothScrolling=null);this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){e._smoothScrolling&&(e._smoothScrolling.animationFrameDisposable=null,e._performSmoothScrolling())}))}},t.prototype._setState=function(e){var t=this._state;t.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(t)))},t}(i.Disposable);t.Scrollable=s;var a=function(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n};function l(e,t){var n=t-e;return function(t){return e+n*(1-function(e){return Math.pow(e,3)}(1-t))}}t.SmoothScrollingUpdate=a;var u=function(){function e(e,t,n,i){this.from=e,this.to=t,this.duration=i,this._startTime=n,this.animationFrameDisposable=null,this._initAnimations()}\nreturn e.prototype._initAnimations=function(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)},e.prototype._initAnimation=function(e,t,n){var i,o,r;if(Math.abs(e-t)>2.5*n){var s=void 0,a=void 0;return e<t?(s=e+.75*n,a=t-.75*n):(s=e-.75*n,a=t+.75*n),i=l(e,s),o=l(a,t),r=.33,function(e){return e<r?i(e/r):o((e-r)/(1-r))}}return l(e,t)},e.prototype.dispose=function(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)},e.prototype.acceptScrollDimensions=function(e){this.to=e.withScrollPosition(this.to),this._initAnimations()},e.prototype.tick=function(){return this._tick(Date.now())},e.prototype._tick=function(e){var t=(e-this._startTime)/this.duration;if(t<1){var n=this.scrollLeft(t),i=this.scrollTop(t);return new a(n,i,!1)}return new a(this.to.scrollLeft,this.to.scrollTop,!0)},e.prototype.combine=function(t,n,i){\nreturn e.start(t,n,i)},e.start=function(t,n,i){return i+=10,new e(t,n,Date.now()-10,i)},e}();t.SmoothScrollingOperation=u})),define(n[132],i([0,1,16]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=n.globals.performance&&\"function\"==typeof n.globals.performance.now,o=function(){function e(e){this._highResolution=i&&e,this._startTime=this._now(),this._stopTime=-1}return e.create=function(t){return void 0===t&&(t=!0),new e(t)},e.prototype.stop=function(){this._stopTime=this._now()},e.prototype.elapsed=function(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime},e.prototype._now=function(){return this._highResolution?n.globals.performance.now():(new Date).getTime()},e}();t.StopWatch=o})),define(n[5],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFalsyOrWhitespace=function(e){return!e||\"string\"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n=\"0\")\n;for(var i=\"\"+e,o=[i],r=i.length;r<t;r++)o.push(n);return o.reverse().join(\"\")};var n=/{(\\d+)}/g;function i(e){return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g,\"\\\\$&\")}function o(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e;for(var i=0;e.indexOf(t,i)===i;)i+=n;return e.substring(i)}function r(e,t){if(!e||!t)return e;var n=t.length,i=e.length;if(0===n||0===i)return e;for(var o=i,r=-1;-1!==(r=e.lastIndexOf(t,o-1))&&r+n===o;){if(0===r)return\"\";o=r}return e.substring(0,o)}function s(e,t){return e<t?-1:e>t?1:0}function a(e){return e>=97&&e<=122}function l(e){return e>=65&&e<=90}function u(e){return a(e)||l(e)}function d(e,t,n){void 0===n&&(n=e.length);for(var i=0;i<n;i++){var o=e.charCodeAt(i),r=t.charCodeAt(i);if(o!==r)if(u(o)&&u(r)){var s=Math.abs(o-r);if(0!==s&&32!==s)return!1}else if(String.fromCharCode(o).toLowerCase()!==String.fromCharCode(r).toLowerCase())return!1}return!0}function c(e){return 55296<=e&&e<=56319}function h(e){return 56320<=e&&e<=57343}function p(e,t,n){\nvar i=e.charCodeAt(n);if(c(i)&&n+1<t){var o=e.charCodeAt(n+1);if(h(o))return o-56320+(i-55296<<10)+65536}return i}function g(e,t){var n=e.charCodeAt(t-1);if(h(n)&&t>1){var i=e.charCodeAt(t-2);if(c(i))return n-56320+(i-55296<<10)+65536}return n}t.format=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return 0===t.length?e:e.replace(n,(function(e,n){var i=parseInt(n,10);return isNaN(i)||i<0||i>=t.length?e:t[i]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case\"&\":return\"&amp;\";default:return e}}))},t.escapeRegExpCharacters=i,t.trim=function(e,t){return void 0===t&&(t=\" \"),r(o(e,t),t)},t.ltrim=o,t.rtrim=r,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.startsWith=function(e,t){if(e.length<t.length)return!1;if(e===t)return!0;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length\n;return n>0?e.indexOf(t,n)===n:0===n&&e===t},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error(\"Cannot create regex from empty string\");t||(e=i(e)),n.wholeWord&&(/\\B/.test(e.charAt(0))||(e=\"\\\\b\"+e),/\\B/.test(e.charAt(e.length-1))||(e+=\"\\\\b\"));var o=\"\";return n.global&&(o+=\"g\"),n.matchCase||(o+=\"i\"),n.multiline&&(o+=\"m\"),n.unicode&&(o+=\"u\"),new RegExp(e,o)},t.regExpLeadsToEndlessLoop=function(e){return\"^\"!==e.source&&\"^$\"!==e.source&&\"$\"!==e.source&&\"^\\\\s*$\"!==e.source&&!(!e.exec(\"\")||0!==e.lastIndex)},t.regExpFlags=function(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\")},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t<n;t++){var i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1},t.getLeadingWhitespace=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length);for(var i=t;i<n;i++){var o=e.charCodeAt(i);if(32!==o&&9!==o)return e.substring(t,i)}return e.substring(t,n)},t.lastNonWhitespaceIndex=function(e,t){\nvoid 0===t&&(t=e.length-1);for(var n=t;n>=0;n--){var i=e.charCodeAt(n);if(32!==i&&9!==i)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++){var o=e.charCodeAt(i),r=t.charCodeAt(i);if(o!==r){l(o)&&(o+=32),l(r)&&(r+=32);var u=o-r;if(0!==u)return a(o)&&a(r)?u:s(e.toLowerCase(),t.toLowerCase())}}return e.length<t.length?-1:e.length>t.length?1:0},t.isLowerAsciiLetter=a,t.isUpperAsciiLetter=l,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&d(e,t)},t.startsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&d(e,t,n)},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.commonSuffixLength=function(e,t){var n,i=Math.min(e.length,t.length),o=e.length-1,r=t.length-1;for(n=0;n<i;n++)if(e.charCodeAt(o-n)!==t.charCodeAt(r-n))return n;return i},t.isHighSurrogate=c,t.isLowSurrogate=h,t.getNextCodePoint=p,t.nextCharLength=function(e,t){\nvar n=C.getInstance(),i=t,o=e.length,r=p(e,o,t);t+=r>=65536?2:1;for(var s=n.getGraphemeBreakType(r);t<o;){var a=p(e,o,t),l=n.getGraphemeBreakType(a);if(y(s,l))break;t+=a>=65536?2:1,s=l}return t-i},t.prevCharLength=function(e,t){var n=C.getInstance(),i=t,o=g(e,t);t-=o>=65536?2:1;for(var r=n.getGraphemeBreakType(o);t>0;){var s=g(e,t),a=n.getGraphemeBreakType(s);if(y(a,r))break;t-=s>=65536?2:1,r=a}return i-t};var f=/(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;t.containsRTL=function(e){return f.test(e)}\n;var m=/(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE82\\uDE90-\\uDE95])/;t.containsEmoji=function(e){return m.test(e)};var v=/^[\\t\\n\\r\\x20-\\x7E]*$/;function _(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function y(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return v.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;t<n;t++)if(_(e.charCodeAt(t)))return!0;return!1},t.isFullWidthCharacter=_,t.isEmojiImprecise=function(e){\nreturn e>=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n=\"\",i=0;i<t;i++)n+=e;return n},t.containsUppercaseCharacter=function(e,t){return void 0===t&&(t=!1),!!e&&(t&&(e=e.replace(/\\\\./g,\"\")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return C.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=y;var C=function(){function e(){\nthis._data=JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getGraphemeBreakType=function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,i=1;i<=n;)if(e<t[3*i])i*=2;else{if(!(e>t[3*i+1]))return t[3*i+2];i=2*i+1}return 0},e._INSTANCE=null,e}()})),define(n[177],i([0,1,5,77]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toSlashes=function(e){return e.replace(/[\\\\/]/g,i.posix.sep)},t.isEqualOrParent=function(e,t,o,r){if(void 0===r&&(r=i.sep),e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(o){if(!n.startsWithIgnoreCase(e,t))return!1;if(t.length===e.length)return!0;var s=t.length;return t.charAt(t.length-1)===r&&s--,e.charAt(s)===r}return t.charAt(t.length-1)!==r&&(t+=r),0===e.indexOf(t)},t.isWindowsDriveLetter=function(e){return e>=65&&e<=90||e>=97&&e<=122}})),define(n[61],i([0,1,38,5]),(function(e,t,n,i){\"use strict\";function o(){\nfor(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n){for(var i=0,o=e.length;i<o;i++){var r=e[i](t,n);if(r)return r}return null}}function r(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}function s(e,t){return function e(t,n,i,o){if(i===t.length)return[];if(o===n.length)return null;if(t[i]===n[o]){var r;return(r=e(t,n,i+1,o+1))?p({start:o,end:o+1},r):null}return e(t,n,i,o+1)}(e.toLowerCase(),t.toLowerCase(),0,0)}function a(e){return 97<=e&&e<=122}function l(e){return 65<=e&&e<=90}function u(e){return 48<=e&&e<=57}function d(e){return 32===e||9===e||10===e||13===e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.or=o,t.matchesPrefix=function(e,t,n){if(!n||n.length<t.length)return null;var o;o=e?i.startsWithIgnoreCase(n,t):0===n.indexOf(t);if(!o)return null;return t.length>0?[{start:0,end:t.length}]:[]}.bind(void 0,!0),t.matchesContiguousSubString=r,t.matchesSubString=s,t.isUpper=l;var c=new Set;function h(e){return a(e)||l(e)||u(e)}\nfunction p(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function g(e,t){for(var n=t;n<e.length;n++){var i=e.charCodeAt(n);if(l(i)||u(i)||n>0&&!h(e.charCodeAt(n-1)))return n}return e.length}function f(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var o=null,r=i+1;for(o=f(e,t,n+1,i+1);!o&&(r=g(t,r))<t.length;)o=f(e,t,n+1,r),r++;return null===o?null:p({start:i,end:i+1},o)}function m(e,t){if(!t)return null;if(0===(t=t.trim()).length)return null;if(!function(e){for(var t=0,n=0,i=0,o=0,r=0;r<e.length;r++)l(i=e.charCodeAt(r))&&t++,a(i)&&n++,d(i)&&o++;return 0!==t&&0!==n||0!==o?t<=5:e.length<=30}(e))return null;if(t.length>60)return null;var n=function(e){for(var t=0,n=0,i=0,o=0,r=0,s=0;s<e.length;s++)l(r=e.charCodeAt(s))&&t++,a(r)&&n++,h(r)&&i++,u(r)&&o++;return{upperPercent:t/e.length,lowerPercent:n/e.length,alphaPercent:i/e.length,numericPercent:o/e.length}}(t);if(!function(e){\nvar t=e.upperPercent,n=e.lowerPercent,i=e.alphaPercent,o=e.numericPercent;return n>.2&&t<.8&&i>.6&&o<.2}(n)){if(!function(e){var t=e.upperPercent;return 0===e.lowerPercent&&t>.6}(n))return null;t=t.toLowerCase()}var i=null,o=0;for(e=e.toLowerCase();o<t.length&&null===(i=f(e,t,0,o));)o=g(t,o+1);return i}\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\".split(\"\").forEach((function(e){return c.add(e.charCodeAt(0))})),t.matchesCamelCase=m;var v=o(t.matchesPrefix,m,r),_=o(t.matchesPrefix,m,s),y=new n.LRUCache(1e4);t.matchesFuzzy=function(e,t,n){if(void 0===n&&(n=!1),\"string\"!=typeof e||\"string\"!=typeof t)return null;var o=y.get(e);o||(o=new RegExp(i.convertSimple2RegExpPattern(e),\"i\"),y.set(e,o));var r=o.exec(t);return r?[{start:r.index,end:r.index+r[0].length}]:n?_(e,t):v(e,t)},t.anyScore=function(e,t,n,i,o,r){var s=M(e,t,0,i,o,0,!0);if(s)return s;for(var a=0,l=0,u=r,d=0;d<t.length&&d<C;++d){var c=o.indexOf(t.charAt(d),u);if(c>=0)l+=1,a+=Math.pow(2,c),u=c+1;else if(0!==a)break}return[l,a,r]},t.createMatches=function(e){\nif(void 0===e)return[];for(var t=e[1].toString(2),n=[],i=e[2];i<C;i++)if(\"1\"===t[t.length-(i+1)]){var o=n[n.length-1];o&&o.end===i?o.end=i+1:n.push({start:i,end:i+1})}return n};var C=128;function b(){for(var e=[],t=[0],n=1;n<=C;n++)t.push(-n);for(n=0;n<=C;n++){var i=t.slice(0);i[0]=-n,e.push(i)}return e}var S=b(),w=b(),E=b(),L=!1;function D(e,t,n,i,o){function r(e,t,n){for(void 0===n&&(n=\" \");e.length<t;)e=n+e;return e}for(var s=\" |   |\"+i.split(\"\").map((function(e){return r(e,3)})).join(\"|\")+\"\\n\",a=0;a<=n;a++)s+=0===a?\" |\":t[a-1]+\"|\",s+=e[a].slice(0,o+1).map((function(e){return r(e.toString(),3)})).join(\"|\")+\"\\n\";return s}function N(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:return!0;default:return!1}}function x(e,t,n){return t[e]!==n[e]}function I(e,t,n,i,o,r){for(;t<n&&o<r;)e[t]===i[o]&&(t+=1),o+=1;return t===n}function M(e,t,n,i,o,r,s){var a=e.length>C?C:e.length,l=i.length>C?C:i.length\n;if(!(n>=a||r>=l||a-n>l-r)&&I(t,n,a,o,r,l)){var u=1,d=1,c=n,h=r;for(u=1,c=n;c<a;u++,c++)for(d=1,h=r;h<l;d++,h++){var p=k(e,t,c,n,i,o,h);w[u][d]=p;var g=S[u-1][d-1]+(p>1?1:p),f=S[u-1][d]+-1,m=S[u][d-1]+-1;m>=f?m>g?(S[u][d]=m,E[u][d]=4):m===g?(S[u][d]=m,E[u][d]=6):(S[u][d]=g,E[u][d]=2):f>g?(S[u][d]=f,E[u][d]=1):f===g?(S[u][d]=f,E[u][d]=3):(S[u][d]=g,E[u][d]=2)}if(L&&function(e,t,n,i){e=e.substr(t),n=n.substr(i),console.log(D(S,e,e.length,n,n.length)),console.log(D(E,e,e.length,n,n.length)),console.log(D(w,e,e.length,n,n.length))}(e,n,i,r),T=0,O=-100,P=r,A=s,function e(t,n,i,o,r){if(T>=10||i<-25)return;var s=0;for(;t>0&&n>0;){var a=w[t][n],l=E[t][n];if(4===l)n-=1,r?i-=5:0!==o&&(i-=1),r=!1,s=0;else{if(!(2&l))return;if(4&l&&e(t,n-1,0!==o?i-1:i,o,r),i+=a,t-=1,n-=1,r=!0,o+=Math.pow(2,n+P),1===a){if(s+=1,0===t&&!A)return}else i+=1+s*(a-1),s=0}}i-=n>=3?9:3*n;T+=1;i>O&&(O=i,R=o)}(u-1,d-1,a===l?1:0,0,!1),0!==T)return[O,R,r]}}function k(e,t,n,i,o,r,s){\nreturn t[n]!==r[s]?-1:s===n-i?e[n]===o[s]?7:5:!x(s,o,r)||0!==s&&x(s-1,o,r)?!N(r,s)||0!==s&&N(r,s-1)?N(r,s-1)||function(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}(r,s-1)?5:1:5:e[n]===o[s]?7:5}t.isPatternInWord=I,function(e){e.Default=Object.freeze([-100,0,0]),e.isDefault=function(e){return!e||-100===e[0]&&0===e[1]&&0===e[2]}}(t.FuzzyScore||(t.FuzzyScore={})),t.fuzzyScore=M;var T=0,R=0,O=0,P=0,A=!1;function F(e,t){if(!(t+1>=e.length)){var n=e[t],i=e[t+1];if(n!==i)return e.slice(0,t)+i+n+e.slice(t+2)}}t.fuzzyScoreGracefulAggressive=function(e,t,n,i,o,r,s){return function(e,t,n,i,o,r,s,a){var l=M(e,t,n,i,o,r,a);if(l&&!s)return l;if(e.length>=3)for(var u=Math.min(7,e.length-1),d=n+1;d<u;d++){var c=F(e,d);if(c){var h=M(c,c.toLowerCase(),n,i,o,r,a);h&&(h[0]-=3,(!l||h[0]>l[0])&&(l=h))}}return l}(e,t,n,i,o,r,!0,s)}})),define(n[178],i([0,1,19,5,177,77,38,15]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var l=\"**\",u=\"/\",d=\"[/\\\\\\\\]\",c=\"[^/\\\\\\\\]\",h=/\\//g;function p(e){switch(e){case 0:return\"\";case 1:return c+\"*?\";default:return\"(?:\"+d+\"|\"+c+\"+\"+d+\"|\"+d+c+\"+)*?\"}}function g(e,t){if(!e)return[];for(var n=[],i=!1,o=!1,r=\"\",s=0,a=e;s<a.length;s++){var l=a[s];switch(l){case t:if(!i&&!o){n.push(r),r=\"\";continue}break;case\"{\":i=!0;break;case\"}\":i=!1;break;case\"[\":o=!0;break;case\"]\":o=!1}r+=l}return r&&n.push(r),n}t.splitGlobAware=g;var f=/^\\*\\*\\/\\*\\.[\\w\\.-]+$/,m=/^\\*\\*\\/([\\w\\.-]+)\\/?$/,v=/^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?)*}$/,_=/^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/,y=/^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/,C=/^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/,b=new s.LRUCache(1e4),S=function(){return!1},w=function(){return null};function E(e,t){if(!e)return w;var o,r,s=(o=(o=\"string\"!=typeof e?e.pattern:e).trim())+\"_\"+!!t.trimForExclusions,a=b.get(s);if(a)return L(a,e);if(f.test(o)){var h=o.substr(4);a=function(e,t){return\"string\"==typeof e&&i.endsWith(e,h)?o:null}\n}else a=(r=m.exec(D(o,t)))?function(e,t){var n=\"/\"+e,o=\"\\\\\"+e,r=function(r,s){return\"string\"!=typeof r?null:s?s===e?t:null:r===e||i.endsWith(r,n)||i.endsWith(r,o)?t:null},s=[e];return r.basenames=s,r.patterns=[t],r.allBasenames=s,r}(r[1],o):(t.trimForExclusions?_:v).test(o)?function(e,t){var i=M(e.slice(1,-1).split(\",\").map((function(e){return E(e,t)})).filter((function(e){return e!==w})),e),o=i.length;if(!o)return w;if(1===o)return i[0];var r=function(t,n){for(var o=0,r=i.length;o<r;o++)if(i[o](t,n))return e;return null},s=n.first(i,(function(e){return!!e.allBasenames}));s&&(r.allBasenames=s.allBasenames);var a=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);a.length&&(r.allPaths=a);return r}(o,t):(r=y.exec(D(o,t)))?N(r[1].substr(1),o,!0):(r=C.exec(D(o,t)))?N(r[1],o,!1):function(e){try{var t=new RegExp(\"^\"+function e(t){if(!t)return\"\";var n=\"\",o=g(t,u);if(o.every((function(e){return e===l})))n=\".*\";else{var r=!1;o.forEach((function(t,s){if(t!==l){\nfor(var a=!1,h=\"\",f=!1,m=\"\",v=0,_=t;v<_.length;v++){var y=_[v];if(\"}\"!==y&&a)h+=y;else if(!f||\"]\"===y&&m)switch(y){case\"{\":a=!0;continue;case\"[\":f=!0;continue;case\"}\":var C=\"(?:\"+g(h,\",\").map((function(t){return e(t)})).join(\"|\")+\")\";n+=C,a=!1,h=\"\";break;case\"]\":n+=\"[\"+m+\"]\",f=!1,m=\"\";break;case\"?\":n+=c;continue;case\"*\":n+=p(1);continue;default:n+=i.escapeRegExpCharacters(y)}else{m+=\"-\"===y?y:\"^\"!==y&&\"!\"!==y||m?y===u?\"\":i.escapeRegExpCharacters(y):\"^\"}}s<o.length-1&&(o[s+1]!==l||s+2<o.length)&&(n+=d),r=!1}else r||(n+=p(2),r=!0)}))}return n}(e)+\"$\");return function(n,i){return t.lastIndex=0,\"string\"==typeof n&&t.test(n)?e:null}}catch(e){return w}}(o);return b.set(s,a),L(a,e)}function L(e,t){return\"string\"==typeof t?e:function(n,i){return o.isEqualOrParent(n,t.base)?e(r.relative(t.base,n),i):null}}function D(e,t){return t.trimForExclusions&&i.endsWith(e,\"/**\")?e.substr(0,e.length-2):e}function N(e,t,n){var o=r.sep!==r.posix.sep?e.replace(h,r.sep):e,s=r.sep+o,a=n?function(e,n){\nreturn\"string\"!=typeof e||e!==o&&!i.endsWith(e,s)?null:t}:function(e,n){return\"string\"==typeof e&&e===o?t:null};return a.allPaths=[(n?\"*/\":\"./\")+e],a}function x(e,t){if(void 0===t&&(t={}),!e)return S;if(\"string\"==typeof e||I(e)){var i=E(e,t);if(i===w)return S;var o=function(e,t){return!!i(e,t)};return i.allBasenames&&(o.allBasenames=i.allBasenames),i.allPaths&&(o.allPaths=i.allPaths),o}return function(e,t){var i=M(Object.getOwnPropertyNames(e).map((function(n){return function(e,t,n){if(!1===t)return w;var i=E(e,n);if(i===w)return w;if(\"boolean\"==typeof t)return i;if(t){var o=t.when;if(\"string\"==typeof o){var r=function(t,n,r,s){if(!s||!i(t,n))return null;var l=s(o.replace(\"$(basename)\",r));return a.isThenable(l)?l.then((function(t){return t?e:null})):l?e:null};return r.requiresSiblings=!0,r}}return i}(n,e[n],t)})).filter((function(e){return e!==w}))),o=i.length;if(!o)return w;if(!i.some((function(e){return!!e.requiresSiblings}))){if(1===o)return i[0];var s=function(e,t){for(var n=0,o=i.length;n<o;n++){\nvar r=i[n](e,t);if(r)return r}return null},l=n.first(i,(function(e){return!!e.allBasenames}));l&&(s.allBasenames=l.allBasenames);var u=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);return u.length&&(s.allPaths=u),s}var d=function(e,t,n){for(var o=void 0,s=0,a=i.length;s<a;s++){var l=i[s];l.requiresSiblings&&n&&(t||(t=r.basename(e)),o||(o=t.substr(0,t.length-r.extname(e).length)));var u=l(e,t,o,n);if(u)return u}return null},c=n.first(i,(function(e){return!!e.allBasenames}));c&&(d.allBasenames=c.allBasenames);var h=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);h.length&&(d.allPaths=h);return d}(e,t)}function I(e){var t=e;return t&&\"string\"==typeof t.base&&\"string\"==typeof t.pattern}function M(e,t){var n=e.filter((function(e){return!!e.basenames}));if(n.length<2)return e;var i,o=n.reduce((function(e,t){var n=t.basenames;return n?e.concat(n):e}),[]);if(t){i=[];for(var r=0,s=o.length;r<s;r++)i.push(t)}else i=n.reduce((function(e,t){var n=t.patterns\n;return n?e.concat(n):e}),[]);var a=function(e,t){if(\"string\"!=typeof e)return null;if(!t){var n=void 0;for(n=e.length;n>0;n--){var r=e.charCodeAt(n-1);if(47===r||92===r)break}t=e.substr(n)}var s=o.indexOf(t);return-1!==s?i[s]:null};a.basenames=o,a.patterns=i,a.allBasenames=o;var l=e.filter((function(e){return!e.basenames}));return l.push(a),l}t.match=function(e,t,n){return!(!e||\"string\"!=typeof t)&&x(e)(t,void 0,n)},t.parse=x,t.isRelativePattern=I})),define(n[247],i([0,1,5]),(function(e,t,n){\"use strict\";function i(e,t){if(e&&\"\"!==e[0]){var i=o(e,t,\"-\"),s=o(e,t,\"_\");return i&&!s?r(e,t,\"-\"):!i&&s?r(e,t,\"_\"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():n.containsUppercaseCharacter(e[0][0])?t[0].toUpperCase()+t.substr(1):t}return t}function o(e,t,n){return-1!==e[0].indexOf(n)&&-1!==t.indexOf(n)&&e[0].split(n).length===t.split(n).length}function r(e,t,n){var o=t.split(n),r=e[0].split(n),s=\"\";return o.forEach((function(e,t){s+=i([r[t]],e)+n})),s.slice(0,-1)}\nObject.defineProperty(t,\"__esModule\",{value:!0}),t.buildReplaceStringWithCasePreserved=i})),define(n[21],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n={number:\"number\",string:\"string\",undefined:\"undefined\",object:\"object\",function:\"function\"};function i(e){return typeof e===n.string||e instanceof String}function o(e){return!(typeof e!==n.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function r(e){return typeof e===n.undefined}function s(e){return r(e)||null===e}t.isArray=function(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==n.number||e.constructor!==Array)},t.isString=i,t.isObject=o,t.isNumber=function(e){return(typeof e===n.number||e instanceof Number)&&!isNaN(e)},t.isBoolean=function(e){return!0===e||!1===e},t.isUndefined=r,t.isUndefinedOrNull=s,t.assertType=function(e,t){if(!e)throw new Error(t?\"Unexpected type, expected '\"+t+\"'\":\"Unexpected type\")};var a=Object.prototype.hasOwnProperty;function l(e){\nreturn typeof e===n.function}function u(e,t){if(i(t)){if(typeof e!==t)throw new Error(\"argument does not match constraint: typeof \"+t)}else if(l(t)){try{if(e instanceof t)return}catch(e){}if(!s(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")}}function d(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}t.isEmptyObject=function(e){if(!o(e))return!1;for(var t in e)if(a.call(e,t))return!1;return!0},t.isFunction=l,t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++)u(e[i],t[i])},t.validateConstraint=u,t.getAllPropertyNames=d,t.getAllMethodNames=function(e){for(var t=[],n=0,i=d(e);n<i.length;n++){var o=i[n];\"function\"==typeof e[o]&&t.push(o)}return t},t.createProxyObject=function(e,t){for(var n=function(e){\nreturn function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},i={},o=0,r=e;o<r.length;o++){var s=r[o];i[s]=n(s)}return i},t.withNullAsUndefined=function(e){return null===e?void 0:e},t.withUndefinedAsNull=function(e){return void 0===e?null:e}})),define(n[31],i([0,1,21]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.deepClone=function e(t){if(!t||\"object\"!=typeof t)return t;if(t instanceof RegExp)return t;var n=Array.isArray(t)?[]:{};return Object.keys(t).forEach((function(i){t[i]&&\"object\"==typeof t[i]?n[i]=e(t[i]):n[i]=t[i]})),n},t.deepFreeze=function(e){if(!e||\"object\"!=typeof e)return e;for(var t=[e];t.length>0;){var n=t.shift();for(var o in Object.freeze(n),n)if(i.call(n,o)){var r=n[o];\"object\"!=typeof r||Object.isFrozen(r)||t.push(r)}}return e};var i=Object.prototype.hasOwnProperty;t.cloneAndChange=function(e,t){return function e(t,o,r){if(n.isUndefinedOrNull(t))return t;var s=o(t);if(void 0!==s)return s;if(n.isArray(t)){\nfor(var a=[],l=0,u=t;l<u.length;l++){var d=u[l];a.push(e(d,o,r))}return a}if(n.isObject(t)){if(r.has(t))throw new Error(\"Cannot clone recursive data-structure\");r.add(t);var c={};for(var h in t)i.call(t,h)&&(c[h]=e(t[h],o,r));return r.delete(t),c}return t}(e,t,new Set)},t.mixin=function e(t,i,o){return void 0===o&&(o=!0),n.isObject(t)?(n.isObject(i)&&Object.keys(i).forEach((function(r){r in t?o&&(n.isObject(t[r])&&n.isObject(i[r])?e(t[r],i[r],o):t[r]=i[r]):t[r]=i[r]})),t):i},t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.forEach((function(t){return Object.keys(t).forEach((function(n){return e[n]=t[n]}))})),e},t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var i,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(i=0;i<t.length;i++)if(!e(t[i],n[i]))return!1}else{var r=[];for(o in t)r.push(o);r.sort();var s=[]\n;for(o in n)s.push(o);if(s.sort(),!e(r,s))return!1;for(i=0;i<r.length;i++)if(!e(t[r[i]],n[r[i]]))return!1}return!0},t.getOrDefault=function(e,t,n){var i=t(e);return void 0===i?n:i}})),define(n[133],i([0,1,31,100,5]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){this.supportCodicons=t,this.text=\"\",this.title=\"\",this.highlights=[],this.didEverRender=!1,this.domNode=document.createElement(\"span\"),this.domNode.className=\"monaco-highlighted-label\",e.appendChild(this.domNode)}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),e.prototype.set=function(t,i,o,r){void 0===i&&(i=[]),void 0===o&&(o=\"\"),t||(t=\"\"),r&&(t=e.escapeNewLines(t,i)),this.didEverRender&&this.text===t&&this.title===o&&n.equals(this.highlights,i)||(Array.isArray(i)||(i=[]),this.text=t,this.title=o,this.highlights=i,this.render())},e.prototype.render=function(){\nfor(var e=\"\",t=0,n=0,r=this.highlights;n<r.length;n++){var s=r[n];if(s.end!==s.start){if(t<s.start){e+=\"<span>\";var a=this.text.substring(t,s.start);e+=this.supportCodicons?i.renderCodicons(o.escape(a)):o.escape(a),e+=\"</span>\",t=s.end}s.extraClasses?e+='<span class=\"highlight '+s.extraClasses+'\">':e+='<span class=\"highlight\">';var l=this.text.substring(s.start,s.end);e+=this.supportCodicons?i.renderCodicons(o.escape(l)):o.escape(l),e+=\"</span>\",t=s.end}}if(t<this.text.length){e+=\"<span>\";l=this.text.substring(t);e+=this.supportCodicons?i.renderCodicons(o.escape(l)):o.escape(l),e+=\"</span>\"}this.domNode.innerHTML=e,this.title?this.domNode.title=this.title:this.domNode.removeAttribute(\"title\"),this.didEverRender=!0},e.escapeNewLines=function(e,t){var n=0,i=0;return e.replace(/\\r\\n|\\r|\\n/g,(function(e,o){i=\"\\r\\n\"===e?-1:0,o+=n;for(var r=0,s=t;r<s.length;r++){var a=s[r];a.end<=o||(a.start>=o&&(a.start+=i),a.end>=o&&(a.end+=i))}return n+=i,\"⏎\"}))},e}();t.HighlightedLabel=r})),\ndefine(n[179],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toUint8=function(e){return e<0?0:e>255?255:0|e},t.toUint32=function(e){return e<0?0:e>4294967295?4294967295:0|e}})),define(n[25],i([0,1,16]),(function(e,t,n){\"use strict\";var i;Object.defineProperty(t,\"__esModule\",{value:!0});var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"\",u=\"/\",d=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,c=function(){function e(e,t,n,i,r,d){void 0===d&&(d=!1),\"object\"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,d),this.authority=t||l,this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||l),this.query=i||l,this.fragment=r||l,function(e,t){\nif(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,d))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return v(this)},enumerable:!0,\nconfigurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,o=e.query,r=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===i?i=this.path:null===i&&(i=l),void 0===o?o=this.query:null===o&&(o=l),void 0===r?r=this.fragment:null===r&&(r=l),t===this.scheme&&n===this.authority&&i===this.path&&o===this.query&&r===this.fragment?this:new p(t,n,i,o,r)},e.parse=function(e,t){void 0===t&&(t=!1);var n=d.exec(e);return n?new p(n[2]||l,C(n[4]||l),C(n[5]||l),C(n[7]||l),C(n[9]||l),t):new p(l,l,l,l,l)},e.file=function(e){var t=l;if(n.isWindows&&(e=e.replace(/\\\\/g,u)),e[0]===u&&e[1]===u){var i=e.indexOf(u,2);-1===i?(t=e.substring(2),e=u):(t=e.substring(2,i),e=e.substring(i)||u)}return new p(\"file\",t,e,l,l)},e.from=function(e){return new p(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),_(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){\nif(t instanceof e)return t;var n=new p(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=c;var h=n.isWindows?1:void 0,p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return r(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=v(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(c),g=((i={})[58]=\"%3A\",i[47]=\"%2F\",i[63]=\"%3F\",i[35]=\"%23\",i[91]=\"%5B\",i[93]=\"%5D\",i[64]=\"%40\",i[33]=\"%21\",\ni[36]=\"%24\",i[38]=\"%26\",i[39]=\"%27\",i[40]=\"%28\",i[41]=\"%29\",i[42]=\"%2A\",i[43]=\"%2B\",i[44]=\"%2C\",i[59]=\"%3B\",i[61]=\"%3D\",i[32]=\"%20\",i);function f(e,t){for(var n=void 0,i=-1,o=0;o<e.length;o++){var r=e.charCodeAt(o);if(r>=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||45===r||46===r||95===r||126===r||t&&47===r)-1!==i&&(n+=encodeURIComponent(e.substring(i,o)),i=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var s=g[r];void 0!==s?(-1!==i&&(n+=encodeURIComponent(e.substring(i,o)),i=-1),n+=s):-1===i&&(i=o)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=g[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function v(e){var t\n;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,n.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}function _(e,t){var n=t?m:f,i=\"\",o=e.scheme,r=e.authority,s=e.path,a=e.query,l=e.fragment;if(o&&(i+=o,i+=\":\"),(r||\"file\"===o)&&(i+=u,i+=u),r){var d=r.indexOf(\"@\");if(-1!==d){var c=r.substr(0,d);r=r.substr(d+1),-1===(d=c.indexOf(\":\"))?i+=n(c,!1):(i+=n(c.substr(0,d),!1),i+=\":\",i+=n(c.substr(d+1),!1)),i+=\"@\"}-1===(d=(r=r.toLowerCase()).indexOf(\":\"))?i+=n(r,!1):(i+=n(r.substr(0,d),!1),i+=r.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}i+=n(s,!0)}\nreturn a&&(i+=\"?\",i+=n(a,!1)),l&&(i+=\"#\",i+=t?l:f(l,!1)),i}var y=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(e){return e.match(y)?e.replace(y,(function(e){return function e(t){try{return decodeURIComponent(t)}catch(n){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}}(e)})):e}})),define(n[180],i([0,1,25]),(function(e,t,n){\"use strict\";function i(e,t){if(void 0===t&&(t=0),!e||t>200)return e;if(\"object\"==typeof e){switch(e.$mid){case 1:return n.URI.revive(e);case 2:return new RegExp(e.source,e.flags)}for(var o in e)Object.hasOwnProperty.call(e,o)&&(e[o]=i(e[o],t+1))}return e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.parse=function(e){var t=JSON.parse(e);return t=i(t)},t.revive=i})),define(n[46],i([0,1,25,16]),(function(e,t,n,i){\"use strict\";var o;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.inMemory=\"inmemory\",e.vscode=\"vscode\",e.internal=\"private\",e.walkThrough=\"walkThrough\",e.walkThroughSnippet=\"walkThroughSnippet\",e.http=\"http\",e.https=\"https\",e.file=\"file\",e.mailto=\"mailto\",\ne.untitled=\"untitled\",e.data=\"data\",e.command=\"command\",e.vscodeRemote=\"vscode-remote\",e.vscodeRemoteResource=\"vscode-remote-resource\",e.userData=\"vscode-userdata\"}(o=t.Schemas||(t.Schemas={}));var r=function(){function e(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema=\"http\",this._delegate=null}return e.prototype.setPreferredWebSchema=function(e){this._preferredWebSchema=e},e.prototype.rewrite=function(e){if(this._delegate)return this._delegate(e);var t=e.authority,r=this._hosts[t];r&&-1!==r.indexOf(\":\")&&(r=\"[\"+r+\"]\");var s=this._ports[t],a=this._connectionTokens[t],l=\"path=\"+encodeURIComponent(e.path);return\"string\"==typeof a&&(l+=\"&tkn=\"+encodeURIComponent(a)),n.URI.from({scheme:i.isWeb?this._preferredWebSchema:o.vscodeRemoteResource,authority:r+\":\"+s,path:\"/vscode-remote-resource\",query:l})},e}();t.RemoteAuthorities=new r}));a=this&&this.__spreadArrays||function(){\nfor(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[6],i([0,1,24,52,56,45,15,10,4,2,16,19,46,88]),(function(e,t,n,i,o,s,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.clearNode=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},t.removeNode=function(e){e.parentNode&&e.parentNode.removeChild(e)},t.isInDOM=function(e){for(;e;){if(e===document.body)return!0;e=e.parentNode||e.host}return!1};var v=new(function(){function e(){this._lastStart=-1,this._lastEnd=-1}return e.prototype._findClassName=function(e,t){var n=e.className;if(n){t=t.trim();var i=n.length,o=t.length;if(0!==o)if(i<o)this._lastStart=-1;else{if(n===t)return this._lastStart=0,void(this._lastEnd=i);for(var r,s=-1;(s=n.indexOf(t,s+1))>=0;){if(r=s+o,(0===s||32===n.charCodeAt(s-1))&&32===n.charCodeAt(r))return this._lastStart=s,void(this._lastEnd=r+1)\n;if(s>0&&32===n.charCodeAt(s-1)&&r===i)return this._lastStart=s-1,void(this._lastEnd=r);if(0===s&&r===i)return this._lastStart=0,void(this._lastEnd=r)}this._lastStart=-1}else this._lastStart=-1}else this._lastStart=-1},e.prototype.hasClass=function(e,t){return this._findClassName(e,t),-1!==this._lastStart},e.prototype.addClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.addClass(e,n)}))}))},e.prototype.addClass=function(e,t){e.className?(this._findClassName(e,t),-1===this._lastStart&&(e.className=e.className+\" \"+t)):e.className=t},e.prototype.removeClass=function(e,t){this._findClassName(e,t),-1!==this._lastStart&&(e.className=e.className.substring(0,this._lastStart)+e.className.substring(this._lastEnd))},e.prototype.removeClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.removeClass(e,n)}))\n}))},e.prototype.toggleClass=function(e,t,n){this._findClassName(e,t),-1===this._lastStart||void 0!==n&&n||this.removeClass(e,t),-1!==this._lastStart||void 0!==n&&!n||this.addClass(e,t)},e}()),_=new(function(){function e(){}return e.prototype.hasClass=function(e,t){return Boolean(t)&&e.classList&&e.classList.contains(t)},e.prototype.addClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.addClass(e,n)}))}))},e.prototype.addClass=function(e,t){t&&e.classList&&e.classList.add(t)},e.prototype.removeClass=function(e,t){t&&e.classList&&e.classList.remove(t)},e.prototype.removeClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.removeClass(e,n)}))}))},e.prototype.toggleClass=function(e,t,n){e.classList&&e.classList.toggle(t,n)},e}()),y=n.isIE?v:_;t.hasClass=y.hasClass.bind(y),\nt.addClass=y.addClass.bind(y),t.addClasses=y.addClasses.bind(y),t.removeClass=y.removeClass.bind(y),t.removeClasses=y.removeClasses.bind(y),t.toggleClass=y.toggleClass.bind(y);var C=function(){function e(e,t,n,i){this._node=e,this._type=t,this._handler=n,this._options=i||!1,this._node.addEventListener(this._type,this._handler,this._options)}return e.prototype.dispose=function(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)},e}();function b(e,t,n,i){return new C(e,t,n,i)}function S(e){return function(t){return e(new s.StandardMouseEvent(t))}}function w(e,n,i){return b(e,p.isIOS&&m.BrowserFeatures.pointerEvents?t.EventType.POINTER_DOWN:t.EventType.MOUSE_DOWN,n,i)}t.addDisposableListener=b,t.addStandardDisposableListener=function(e,t,n,i){var r=n;return\"click\"===t||\"mousedown\"===t?r=S(n):\"keydown\"!==t&&\"keypress\"!==t&&\"keyup\"!==t||(r=function(e){return function(t){return e(new o.StandardKeyboardEvent(t))}}(n)),b(e,t,r,i)},\nt.addStandardDisposableGenericMouseDownListner=function(e,t,n){return w(e,S(t),n)},t.addDisposableGenericMouseDownListner=w,t.addDisposableGenericMouseUpListner=function(e,n,i){return b(e,p.isIOS&&m.BrowserFeatures.pointerEvents?t.EventType.POINTER_UP:t.EventType.MOUSE_UP,n,i)},t.addDisposableNonBubblingMouseOutListener=function(e,t){return b(e,\"mouseout\",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))},t.addDisposableNonBubblingPointerOutListener=function(e,t){return b(e,\"pointerout\",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))};var E=null;var L,D,N,x,I,M=function(){function e(e,t){void 0===t&&(t=0),this._runner=e,this.priority=t,this._canceled=!1}return e.prototype.dispose=function(){this._canceled=!0},e.prototype.execute=function(){if(!this._canceled)try{this._runner()}catch(e){d.onUnexpectedError(e)}},e.sort=function(e,t){return t.priority-e.priority},e}();L=[],D=null,N=!1,x=!1,I=function(){for(N=!1,D=L,L=[],x=!0;D.length>0;)D.sort(M.sort),\nD.shift().execute();x=!1},t.scheduleAtNextAnimationFrame=function(e,t){void 0===t&&(t=0);var n,i=new M(e,t);return L.push(i),N||(N=!0,n=I,E||(E=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout((function(){return e((new Date).getTime())}),0)}),E.call(self,n)),i},t.runAtThisOrScheduleAtNextAnimationFrame=function(e,n){if(x){var i=new M(e,n);return D.push(i),i}return t.scheduleAtNextAnimationFrame(e,n)};var k=16,T=function(e,t){return t},R=function(e){function t(t,n,i,o,r){void 0===o&&(o=T),void 0===r&&(r=k);var s=e.call(this)||this,a=null,l=0,d=s._register(new u.TimeoutTimer),c=function(){l=(new Date).getTime(),i(a),a=null};return s._register(b(t,n,(function(e){a=o(a,e);var t=(new Date).getTime()-l;t>=r?(d.cancel(),c()):d.setIfNotSet(c,r-t)}))),s}return r(t,e),t}(h.Disposable);function O(e){return document.defaultView.getComputedStyle(e,null)}\nt.addDisposableThrottledListener=function(e,t,n,i,o){return new R(e,t,n,i,o)},t.getComputedStyle=O,t.getClientArea=function(e){if(e!==document.body)return new A(e.clientWidth,e.clientHeight);if(p.isIOS&&window.visualViewport){var t=window.visualViewport.width,i=window.visualViewport.height-(n.isStandalone?24:0);return new A(t,i)}if(window.innerWidth&&window.innerHeight)return new A(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new A(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new A(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error(\"Unable to figure out browser width and height\")};var P=function(){function e(){}return e.convertToPixels=function(e,t){return parseFloat(t)||0},e.getDimension=function(t,n,i){var o=O(t),r=\"0\"\n;return o&&(r=o.getPropertyValue?o.getPropertyValue(n):o.getAttribute(i)),e.convertToPixels(t,r)},e.getBorderLeftWidth=function(t){return e.getDimension(t,\"border-left-width\",\"borderLeftWidth\")},e.getBorderRightWidth=function(t){return e.getDimension(t,\"border-right-width\",\"borderRightWidth\")},e.getBorderTopWidth=function(t){return e.getDimension(t,\"border-top-width\",\"borderTopWidth\")},e.getBorderBottomWidth=function(t){return e.getDimension(t,\"border-bottom-width\",\"borderBottomWidth\")},e.getPaddingLeft=function(t){return e.getDimension(t,\"padding-left\",\"paddingLeft\")},e.getPaddingRight=function(t){return e.getDimension(t,\"padding-right\",\"paddingRight\")},e.getPaddingTop=function(t){return e.getDimension(t,\"padding-top\",\"paddingTop\")},e.getPaddingBottom=function(t){return e.getDimension(t,\"padding-bottom\",\"paddingBottom\")},e.getMarginLeft=function(t){return e.getDimension(t,\"margin-left\",\"marginLeft\")},e.getMarginTop=function(t){return e.getDimension(t,\"margin-top\",\"marginTop\")},e.getMarginRight=function(t){\nreturn e.getDimension(t,\"margin-right\",\"marginRight\")},e.getMarginBottom=function(t){return e.getDimension(t,\"margin-bottom\",\"marginBottom\")},e}(),A=function(e,t){this.width=e,this.height=t};function F(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function W(e){return e&&!!e.host&&!!e.mode}function B(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return W(e)?e:null}function V(e){void 0===e&&(e=document.getElementsByTagName(\"head\")[0]);var t=document.createElement(\"style\");return t.type=\"text/css\",t.media=\"screen\",e.appendChild(t),t}t.Dimension=A,t.getTopLeftOffset=function(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var o=W(e)?null:O(e);o&&(i-=\"rtl\"!==o.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=P.getBorderLeftWidth(e),n+=P.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}},t.getDomNodePagePosition=function(e){\nvar n=e.getBoundingClientRect();return{left:n.left+t.StandardWindow.scrollX,top:n.top+t.StandardWindow.scrollY,width:n.width,height:n.height}},t.StandardWindow=new(function(){function e(){}return Object.defineProperty(e.prototype,\"scrollX\",{get:function(){return\"number\"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"scrollY\",{get:function(){return\"number\"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop},enumerable:!0,configurable:!0}),e}()),t.getTotalWidth=function(e){var t=P.getMarginLeft(e)+P.getMarginRight(e);return e.offsetWidth+t},t.getContentWidth=function(e){var t=P.getBorderLeftWidth(e)+P.getBorderRightWidth(e),n=P.getPaddingLeft(e)+P.getPaddingRight(e);return e.offsetWidth-t-n},t.getContentHeight=function(e){var t=P.getBorderTopWidth(e)+P.getBorderBottomWidth(e),n=P.getPaddingTop(e)+P.getPaddingBottom(e);return e.offsetHeight-t-n},\nt.getTotalHeight=function(e){var t=P.getMarginTop(e)+P.getMarginBottom(e);return e.offsetHeight+t},t.isAncestor=F,t.findParentWithClass=function(e,n,i){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(t.hasClass(e,n))return e;if(i)if(\"string\"==typeof i){if(t.hasClass(e,i))return null}else if(e===i)return null;e=e.parentNode}return null},t.isShadowRoot=W,t.isInShadowDOM=function(e){return!!B(e)},t.getShadowRoot=B,t.createStyleSheet=V;var z=null;function H(){return z||(z=V()),z}t.createCSSRule=function(e,t,n){void 0===n&&(n=H()),n&&t&&n.sheet.insertRule(e+\"{\"+t+\"}\",0)},t.removeCSSRulesContainingSelector=function(e,t){if(void 0===t&&(t=H()),t){for(var n=function(e){return e&&e.sheet&&e.sheet.rules?e.sheet.rules:e&&e.sheet&&e.sheet.cssRules?e.sheet.cssRules:[]}(t),i=[],o=0;o<n.length;o++){-1!==n[o].selectorText.indexOf(e)&&i.push(o)}for(o=i.length-1;o>=0;o--)t.sheet.deleteRule(i[o])}},t.isHTMLElement=function(e){\nreturn\"object\"==typeof HTMLElement?e instanceof HTMLElement:e&&\"object\"==typeof e&&1===e.nodeType&&\"string\"==typeof e.nodeName},t.EventType={CLICK:\"click\",DBLCLICK:\"dblclick\",MOUSE_UP:\"mouseup\",MOUSE_DOWN:\"mousedown\",MOUSE_OVER:\"mouseover\",MOUSE_MOVE:\"mousemove\",MOUSE_OUT:\"mouseout\",MOUSE_ENTER:\"mouseenter\",MOUSE_LEAVE:\"mouseleave\",POINTER_UP:\"pointerup\",POINTER_DOWN:\"pointerdown\",POINTER_MOVE:\"pointermove\",CONTEXT_MENU:\"contextmenu\",WHEEL:\"wheel\",KEY_DOWN:\"keydown\",KEY_PRESS:\"keypress\",KEY_UP:\"keyup\",LOAD:\"load\",BEFORE_UNLOAD:\"beforeunload\",UNLOAD:\"unload\",ABORT:\"abort\",ERROR:\"error\",RESIZE:\"resize\",SCROLL:\"scroll\",FULLSCREEN_CHANGE:\"fullscreenchange\",WK_FULLSCREEN_CHANGE:\"webkitfullscreenchange\",SELECT:\"select\",CHANGE:\"change\",SUBMIT:\"submit\",RESET:\"reset\",FOCUS:\"focus\",FOCUS_IN:\"focusin\",FOCUS_OUT:\"focusout\",BLUR:\"blur\",INPUT:\"input\",STORAGE:\"storage\",DRAG_START:\"dragstart\",DRAG:\"drag\",DRAG_ENTER:\"dragenter\",DRAG_LEAVE:\"dragleave\",DRAG_OVER:\"dragover\",DROP:\"drop\",DRAG_END:\"dragend\",\nANIMATION_START:n.isWebKit?\"webkitAnimationStart\":\"animationstart\",ANIMATION_END:n.isWebKit?\"webkitAnimationEnd\":\"animationend\",ANIMATION_ITERATION:n.isWebKit?\"webkitAnimationIteration\":\"animationiteration\"},t.EventHelper={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}},t.saveParentsScrollTop=function(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t},t.restoreParentsScrollTop=function(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode};var K=function(e){function n(n){var o=e.call(this)||this;o._onDidFocus=o._register(new c.Emitter),o.onDidFocus=o._onDidFocus.event,o._onDidBlur=o._register(new c.Emitter),o.onDidBlur=o._onDidBlur.event;var r=F(document.activeElement,n),s=!1,a=function(){s=!1,r||(r=!0,o._onDidFocus.fire())},l=function(){r&&(s=!0,window.setTimeout((function(){s&&(s=!1,r=!1,o._onDidBlur.fire())}),0))}\n;return o._refreshStateHandler=function(){F(document.activeElement,n)!==r&&(r?l():a())},o._register(i.domEvent(n,t.EventType.FOCUS,!0)(a)),o._register(i.domEvent(n,t.EventType.BLUR,!0)(l)),o}return r(n,e),n}(h.Disposable);t.trackFocus=function(e){return new K(e)},t.append=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.forEach((function(t){return e.appendChild(t)})),t[t.length-1]};var U,j=/([\\w\\-]+)?(#([\\w\\-]+))?((.([\\w\\-]+))*)/;function q(e,t,n){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var r=j.exec(t);if(!r)throw new Error(\"Bad use of emmet\");n=l({},n||{});var s,a=r[1]||\"div\";return s=e!==U.HTML?document.createElementNS(e,a):document.createElement(a),r[3]&&(s.id=r[3]),r[4]&&(s.className=r[4].replace(/\\./g,\" \").trim()),Object.keys(n).forEach((function(e){var t=n[e];void 0!==t&&(/^on\\w+$/.test(e)?s[e]=t:\"selected\"===e?t&&s.setAttribute(e,\"true\"):s.setAttribute(e,t))})),g.coalesce(i).forEach((function(e){\ne instanceof Node?s.appendChild(e):s.appendChild(document.createTextNode(e))})),s}function G(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return q.apply(void 0,a([U.HTML,e,t],n))}function Y(e){return e&&f.Schemas.vscodeRemote===e.scheme?f.RemoteAuthorities.rewrite(e):e}!function(e){e.HTML=\"http://www.w3.org/1999/xhtml\",e.SVG=\"http://www.w3.org/2000/svg\"}(U=t.Namespace||(t.Namespace={})),t.$=G,G.SVG=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return q.apply(void 0,a([U.SVG,e,t],n))},t.show=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,i=e;n<i.length;n++){var o=i[n];o.style.display=\"\",o.removeAttribute(\"aria-hidden\")}},t.hide=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,i=e;n<i.length;n++){var o=i[n];o.style.display=\"none\",o.setAttribute(\"aria-hidden\",\"true\")}},t.removeTabIndexAndUpdateFocus=function(e){if(e&&e.hasAttribute(\"tabIndex\")){if(document.activeElement===e){var t=function(e,t){\nfor(;e&&e.nodeType===e.ELEMENT_NODE;){if(e instanceof HTMLElement&&e.hasAttribute(t))return e;e=e.parentNode}return null}(e.parentElement,\"tabIndex\");t&&t.focus()}e.removeAttribute(\"tabindex\")}},t.getElementsByTagName=function(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)},t.computeScreenAwareSize=function(e){var t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio},t.windowOpenNoOpener=function(e){if(p.isNative||n.isEdgeWebView)window.open(e);else{var t=window.open();t&&(t.opener=null,t.location.href=e)}},t.animate=function(e){var n=function(){e(),i=t.scheduleAtNextAnimationFrame(n)},i=t.scheduleAtNextAnimationFrame(n);return h.toDisposable((function(){return i.dispose()}))},f.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href)?\"https\":\"http\"),t.asDomUri=Y,t.asCSSUrl=function(e){return e?\"url('\"+Y(e).toString(!0).replace(/'/g,\"%27\")+\"')\":\"url('')\"}})),define(n[28],i([0,1,6]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.domNode=e,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily=\"\",this._fontWeight=\"\",this._fontSize=-1,this._fontFeatureSettings=\"\",this._lineHeight=-1,this._letterSpacing=-100,this._className=\"\",this._display=\"\",this._position=\"\",this._visibility=\"\",this._backgroundColor=\"\",this._layerHint=!1,this._contain=\"none\"}return e.prototype.setMaxWidth=function(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+\"px\")},e.prototype.setWidth=function(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+\"px\")},e.prototype.setHeight=function(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+\"px\")},e.prototype.setTop=function(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+\"px\")},e.prototype.unsetTop=function(){-1!==this._top&&(this._top=-1,this.domNode.style.top=\"\")},\ne.prototype.setLeft=function(e){this._left!==e&&(this._left=e,this.domNode.style.left=this._left+\"px\")},e.prototype.setBottom=function(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+\"px\")},e.prototype.setRight=function(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+\"px\")},e.prototype.setFontFamily=function(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)},e.prototype.setFontWeight=function(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)},e.prototype.setFontSize=function(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+\"px\")},e.prototype.setFontFeatureSettings=function(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)},e.prototype.setLineHeight=function(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+\"px\")},\ne.prototype.setLetterSpacing=function(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+\"px\")},e.prototype.setClassName=function(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)},e.prototype.toggleClassName=function(e,t){n.toggleClass(this.domNode,e,t),this._className=this.domNode.className},e.prototype.setDisplay=function(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)},e.prototype.setPosition=function(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)},e.prototype.setVisibility=function(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)},e.prototype.setBackgroundColor=function(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)},e.prototype.setLayerHinting=function(e){this._layerHint!==e&&(this._layerHint=e,\nthis.domNode.style.transform=this._layerHint?\"translate3d(0px, 0px, 0px)\":\"\")},e.prototype.setContain=function(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)},e.prototype.setAttribute=function(e,t){this.domNode.setAttribute(e,t)},e.prototype.removeAttribute=function(e){this.domNode.removeAttribute(e)},e.prototype.appendChild=function(e){this.domNode.appendChild(e.domNode)},e.prototype.removeChild=function(e){this.domNode.removeChild(e.domNode)},e}();t.FastDomNode=i,t.createFastDomNode=function(e){return new i(e)}})),define(n[134],i([0,1,6]),(function(e,t,n){\"use strict\";function i(e){var t=e.inline?\"span\":\"div\",n=document.createElement(t);return e.className&&(n.className=e.className),n}Object.defineProperty(t,\"__esModule\",{value:!0}),t.renderText=function(e,t){void 0===t&&(t={});var n=i(t);return n.textContent=e,n},t.renderFormattedText=function(e,t){void 0===t&&(t={});var s=i(t);return function e(t,i,o){var r\n;if(2===i.type)r=document.createTextNode(i.content||\"\");else if(3===i.type)r=document.createElement(\"b\");else if(4===i.type)r=document.createElement(\"i\");else if(5===i.type&&o){var s=document.createElement(\"a\");s.href=\"#\",o.disposeables.add(n.addStandardDisposableListener(s,\"click\",(function(e){o.callback(String(i.index),e)}))),r=s}else 7===i.type?r=document.createElement(\"br\"):1===i.type&&(r=t);r&&t!==r&&t.appendChild(r);r&&Array.isArray(i.children)&&i.children.forEach((function(t){e(r,t,o)}))}(s,function(e){var t={type:1,children:[]},n=0,i=t,s=[],a=new o(e);for(;!a.eos();){var l=a.next(),u=\"\\\\\"===l&&0!==r(a.peek());if(u&&(l=a.next()),u||0===r(l)||l!==a.peek())if(\"\\n\"===l)2===i.type&&(i=s.pop()),i.children.push({type:7});else if(2!==i.type){var d={type:2,content:l};i.children.push(d),s.push(i),i=d}else i.content+=l;else{a.advance(),2===i.type&&(i=s.pop());var c=r(l);if(i.type===c||5===i.type&&6===c)i=s.pop();else{var h={type:c,children:[]};5===c&&(h.index=n,n++),i.children.push(h),s.push(i),i=h}}}\n2===i.type&&(i=s.pop());s.length;return t}(e),t.actionHandler),s},t.createElement=i;var o=function(){function e(e){this.source=e,this.index=0}return e.prototype.eos=function(){return this.index>=this.source.length},e.prototype.next=function(){var e=this.peek();return this.advance(),e},e.prototype.peek=function(){return this.source[this.index]},e.prototype.advance=function(){this.index++},e}();function r(e){switch(e){case\"*\":return 3;case\"_\":return 4;case\"[\":return 5;case\"]\":return 6;default:return 0}}})),define(n[78],i([0,1,6,16,24,174,45,2,88]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.standardMouseMoveMerger=function(e,t){var n=new s.StandardMouseEvent(t);return n.preventDefault(),{leftButton:n.leftButton,buttons:n.buttons,posx:n.posx,posy:n.posy}};var u=function(){function e(){this._hooks=new a.DisposableStore,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}return e.prototype.dispose=function(){\nthis.stopMonitoring(!1),this._hooks.dispose()},e.prototype.stopMonitoring=function(e){if(this.isMonitoring()){this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;var t=this._onStopCallback;this._onStopCallback=null,e&&t&&t()}},e.prototype.isMonitoring=function(){return!!this._mouseMoveEventMerger},e.prototype.startMonitoring=function(e,t,a,u,d){var c=this;if(!this.isMonitoring()){this._mouseMoveEventMerger=a,this._mouseMoveCallback=u,this._onStopCallback=d;var h=r.IframeUtils.getSameOriginWindowChain(),p=i.isIOS&&l.BrowserFeatures.pointerEvents?\"pointermove\":\"mousemove\",g=i.isIOS&&l.BrowserFeatures.pointerEvents?\"pointerup\":\"mouseup\",f=h.map((function(e){return e.window.document})),m=n.getShadowRoot(e);m&&f.unshift(m);for(var v=0,_=f;v<_.length;v++){var y=_[v];this._hooks.add(n.addDisposableThrottledListener(y,p,(function(e){o.isIE||e.buttons===t?c._mouseMoveCallback(e):c.stopMonitoring(!0)}),(function(e,t){return c._mouseMoveEventMerger(e,t)}))),\nthis._hooks.add(n.addDisposableListener(y,g,(function(e){return c.stopMonitoring(!0)})))}if(r.IframeUtils.hasDifferentOriginAncestor()){var C=h[h.length-1];this._hooks.add(n.addDisposableListener(C.window.document,\"mouseout\",(function(e){\"html\"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&c.stopMonitoring(!0)}))),this._hooks.add(n.addDisposableListener(C.window.document,\"mouseover\",(function(e){\"html\"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&c.stopMonitoring(!0)}))),this._hooks.add(n.addDisposableListener(C.window.document.body,\"mouseleave\",(function(e){c.stopMonitoring(!0)})))}}},e}();t.GlobalMouseMoveMonitor=u})),define(n[248],i([0,1,6,134,10,75,127,612,613,180,31,5,25,46,100]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.renderMarkdown=function(e,t){void 0===t&&(t={});var f,m=i.createElement(t),v=function(t){var n;try{n=u.parse(decodeURIComponent(t))}catch(e){}return n?(n=d.cloneAndChange(n,(function(t){\nreturn e.uris&&e.uris[t]?h.URI.revive(e.uris[t]):void 0})),encodeURIComponent(JSON.stringify(n))):t},_=function(t,i){var o=e.uris&&e.uris[t];if(!o)return t;var r=h.URI.revive(o);return h.URI.parse(t).toString()===r.toString()?t:(i&&(r=n.asDomUri(r)),r.query&&(r=r.with({query:v(r.query)})),r.toString(!0))},y=new Promise((function(e){return f=e})),C=new a.Renderer;C.image=function(e,t,n){var i,o=[],s=[];return e&&(e=(i=r.parseHrefAndDimensions(e)).href,o=i.dimensions,e=_(e,!0),s.push('src=\"'+e+'\"')),n&&s.push('alt=\"'+n+'\"'),t&&s.push('title=\"'+t+'\"'),o.length&&(s=s.concat(o)),\"<img \"+s.join(\" \")+\">\"},C.link=function(t,n,i){return t===i&&(i=r.removeMarkdownEscapes(i)),t=_(t,!1),n=r.removeMarkdownEscapes(n),\n!(t=r.removeMarkdownEscapes(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted||t.match(/^command:(\\/\\/\\/)?_workbench\\.downloadResource/i)?i:'<a href=\"#\" data-href=\"'+(t=t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#39;\"))+'\" title=\"'+(n||t)+'\">'+i+\"</a>\"},C.paragraph=function(t){return\"<p>\"+(e.supportThemeIcons?g.renderCodicons(t):t)+\"</p>\"},t.codeBlockRenderer&&(C.code=function(e,n){var i=t.codeBlockRenderer(n,e),o=s.defaultGenerator.nextId(),r=Promise.all([i,y]).then((function(e){var t=e[0],n=m.querySelector('div[data-code=\"'+o+'\"]');n&&(n.innerHTML=t)})).catch((function(e){}));return t.codeBlockRenderCallback&&r.then(t.codeBlockRenderCallback),'<div class=\"code\" data-code=\"'+o+'\">'+c.escape(e)+\"</div>\"});var b=t.actionHandler;b&&b.disposeables.add(n.addStandardDisposableListener(m,\"click\",(function(e){var t=e.target;if(\"A\"===t.tagName||(t=t.parentElement)&&\"A\"===t.tagName)try{var n=t.dataset.href;n&&b.callback(n,e)}catch(e){\no.onUnexpectedError(e)}finally{e.preventDefault()}})));var S={sanitize:!0,renderer:C},w=[p.Schemas.http,p.Schemas.https,p.Schemas.mailto,p.Schemas.data,p.Schemas.file,p.Schemas.vscodeRemote,p.Schemas.vscodeRemoteResource];e.isTrusted&&w.push(p.Schemas.command);var E=a.parse(e.supportThemeIcons?g.markdownEscapeEscapedCodicons(e.value):e.value,S);return m.innerHTML=l.insane(E,{allowedSchemes:w,allowedAttributes:{a:[\"href\",\"name\",\"target\",\"data-href\"],iframe:[\"allowfullscreen\",\"frameborder\",\"src\"],img:[\"src\",\"title\",\"alt\",\"width\",\"height\"],div:[\"class\",\"data-code\"],span:[\"class\"]}}),f(),m}}));var h=this&&this.__decorate||function(e,t,n,i){var o,r=arguments.length,s=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(r<3?o(s):r>3?o(t,n,s):o(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s};define(n[57],i([0,1,19,2,6,101]),(function(e,t,n,i,o,s){\"use strict\";var a\n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Tap=\"-monaco-gesturetap\",e.Change=\"-monaco-gesturechange\",e.Start=\"-monaco-gesturestart\",e.End=\"-monaco-gesturesend\",e.Contextmenu=\"-monaco-gesturecontextmenu\"}(a=t.EventType||(t.EventType={}));var l=function(e){function t(){var t=e.call(this)||this;return t.dispatched=!1,t.activeTouches={},t.handle=null,t.targets=[],t.ignoreTargets=[],t._lastSetTapCountTime=0,t._register(o.addDisposableListener(document,\"touchstart\",(function(e){return t.onTouchStart(e)}))),t._register(o.addDisposableListener(document,\"touchend\",(function(e){return t.onTouchEnd(e)}))),t._register(o.addDisposableListener(document,\"touchmove\",(function(e){return t.onTouchMove(e)}))),t}return r(t,e),t.addTarget=function(e){return t.isTouchDevice()?(t.INSTANCE||(t.INSTANCE=new t),t.INSTANCE.targets.push(e),{dispose:function(){t.INSTANCE.targets=t.INSTANCE.targets.filter((function(t){return t!==e}))}}):i.Disposable.None},t.ignoreTarget=function(e){\nreturn t.isTouchDevice()?(t.INSTANCE||(t.INSTANCE=new t),t.INSTANCE.ignoreTargets.push(e),{dispose:function(){t.INSTANCE.ignoreTargets=t.INSTANCE.ignoreTargets.filter((function(t){return t!==e}))}}):i.Disposable.None},t.isTouchDevice=function(){return\"ontouchstart\"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0},t.prototype.dispose=function(){this.handle&&(this.handle.dispose(),this.handle=null),e.prototype.dispose.call(this)},t.prototype.onTouchStart=function(e){var t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(var n=0,i=e.targetTouches.length;n<i;n++){var o=e.targetTouches.item(n);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};var r=this.newGestureEvent(a.Start,o.target);r.pageX=o.pageX,r.pageY=o.pageY,this.dispatchEvent(r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},\nt.prototype.onTouchEnd=function(e){for(var i=Date.now(),o=Object.keys(this.activeTouches).length,r=function(r,l){var u=e.changedTouches.item(r);if(!s.activeTouches.hasOwnProperty(String(u.identifier)))return console.warn(\"move of an UNKNOWN touch\",u),\"continue\";var d=s.activeTouches[u.identifier],c=Date.now()-d.initialTimeStamp;if(c<t.HOLD_DELAY&&Math.abs(d.initialPageX-n.tail(d.rollingPageX))<30&&Math.abs(d.initialPageY-n.tail(d.rollingPageY))<30)(h=s.newGestureEvent(a.Tap,d.initialTarget)).pageX=n.tail(d.rollingPageX),h.pageY=n.tail(d.rollingPageY),s.dispatchEvent(h);else if(c>=t.HOLD_DELAY&&Math.abs(d.initialPageX-n.tail(d.rollingPageX))<30&&Math.abs(d.initialPageY-n.tail(d.rollingPageY))<30){var h;(h=s.newGestureEvent(a.Contextmenu,d.initialTarget)).pageX=n.tail(d.rollingPageX),h.pageY=n.tail(d.rollingPageY),s.dispatchEvent(h)}else if(1===o){\nvar p=n.tail(d.rollingPageX),g=n.tail(d.rollingPageY),f=n.tail(d.rollingTimestamps)-d.rollingTimestamps[0],m=p-d.rollingPageX[0],v=g-d.rollingPageY[0],_=s.targets.filter((function(e){return d.initialTarget instanceof Node&&e.contains(d.initialTarget)}));s.inertia(_,i,Math.abs(m)/f,m>0?1:-1,p,Math.abs(v)/f,v>0?1:-1,g)}s.dispatchEvent(s.newGestureEvent(a.End,d.initialTarget)),delete s.activeTouches[u.identifier]},s=this,l=0,u=e.changedTouches.length;l<u;l++)r(l);this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},t.prototype.newGestureEvent=function(e,t){var n=document.createEvent(\"CustomEvent\");return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n},t.prototype.dispatchEvent=function(e){var n=this;if(e.type===a.Tap){var i=(new Date).getTime(),o=0;o=i-this._lastSetTapCountTime>t.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=i,e.tapCount=o}else e.type!==a.Change&&e.type!==a.Contextmenu||(this._lastSetTapCountTime=0)\n;for(var r=0;r<this.ignoreTargets.length;r++)if(e.initialTarget instanceof Node&&this.ignoreTargets[r].contains(e.initialTarget))return;this.targets.forEach((function(t){e.initialTarget instanceof Node&&t.contains(e.initialTarget)&&(t.dispatchEvent(e),n.dispatched=!0)}))},t.prototype.inertia=function(e,n,i,r,s,l,u,d){var c=this;this.handle=o.scheduleAtNextAnimationFrame((function(){var o=Date.now(),h=o-n,p=0,g=0,f=!0;i+=t.SCROLL_FRICTION*h,l+=t.SCROLL_FRICTION*h,i>0&&(f=!1,p=r*i*h),l>0&&(f=!1,g=u*l*h);var m=c.newGestureEvent(a.Change);m.translationX=p,m.translationY=g,e.forEach((function(e){return e.dispatchEvent(m)})),f||c.inertia(e,o,i,r,s+p,l,u,d+g)}))},t.prototype.onTouchMove=function(e){for(var t=Date.now(),i=0,o=e.changedTouches.length;i<o;i++){var r=e.changedTouches.item(i);if(this.activeTouches.hasOwnProperty(String(r.identifier))){var s=this.activeTouches[r.identifier],l=this.newGestureEvent(a.Change,s.initialTarget);l.translationX=r.pageX-n.tail(s.rollingPageX),\nl.translationY=r.pageY-n.tail(s.rollingPageY),l.pageX=r.pageX,l.pageY=r.pageY,this.dispatchEvent(l),s.rollingPageX.length>3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(r.pageX),s.rollingPageY.push(r.pageY),s.rollingTimestamps.push(t)}else console.warn(\"end of an UNKNOWN touch\",r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},t.SCROLL_FRICTION=-.005,t.HOLD_DELAY=700,t.CLEAR_TAP_COUNT_TIME=400,h([s.memoize],t,\"isTouchDevice\",null),t}(i.Disposable);t.Gesture=l})),define(n[249],i([0,1,6]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.renderers=e,this.cache=new Map}return e.prototype.alloc=function(e){var t=this.getTemplateCache(e).pop();if(!t){var i=n.$(\".monaco-list-row\");t={domNode:i,templateId:e,templateData:this.getRenderer(e).renderTemplate(i)}}return t},e.prototype.release=function(e){e&&this.releaseRow(e)},e.prototype.releaseRow=function(e){\nvar t=e.domNode,i=e.templateId;t&&(n.removeClass(t,\"scrolling\"),function(e){try{e.parentElement&&e.parentElement.removeChild(e)}catch(e){}}(t)),this.getTemplateCache(i).push(e)},e.prototype.getTemplateCache=function(e){var t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t},e.prototype.dispose=function(){var e=this;this.cache.forEach((function(t,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];e.getRenderer(n).disposeTemplate(r.templateData),r.domNode=null,r.templateData=null}})),this.cache.clear()},e.prototype.getRenderer=function(e){var t=this.renderers.get(e);if(!t)throw new Error(\"No renderer found for \"+e);return t},e}();t.RowCache=i})),define(n[47],i([0,1,6,56,45,2,57]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.onclick=function(e,t){this._register(n.addDisposableListener(e,n.EventType.CLICK,(function(e){return t(new o.StandardMouseEvent(e))})))},\nt.prototype.onmousedown=function(e,t){this._register(n.addDisposableListener(e,n.EventType.MOUSE_DOWN,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onmouseover=function(e,t){this._register(n.addDisposableListener(e,n.EventType.MOUSE_OVER,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onnonbubblingmouseout=function(e,t){this._register(n.addDisposableNonBubblingMouseOutListener(e,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onkeydown=function(e,t){this._register(n.addDisposableListener(e,n.EventType.KEY_DOWN,(function(e){return t(new i.StandardKeyboardEvent(e))})))},t.prototype.onkeyup=function(e,t){this._register(n.addDisposableListener(e,n.EventType.KEY_UP,(function(e){return t(new i.StandardKeyboardEvent(e))})))},t.prototype.oninput=function(e,t){this._register(n.addDisposableListener(e,n.EventType.INPUT,t))},t.prototype.onblur=function(e,t){this._register(n.addDisposableListener(e,n.EventType.BLUR,t))},t.prototype.onfocus=function(e,t){\nthis._register(n.addDisposableListener(e,n.EventType.FOCUS,t))},t.prototype.ignoreGesture=function(e){a.Gesture.ignoreTarget(e)},t}(s.Disposable);t.Widget=l})),define(n[135],i([0,1,78,47,15]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ARROW_IMG_SIZE=11;var s=function(e){function i(i){var r=e.call(this)||this;return r._onActivate=i.onActivate,r.bgDomNode=document.createElement(\"div\"),r.bgDomNode.className=\"arrow-background\",r.bgDomNode.style.position=\"absolute\",r.bgDomNode.style.width=i.bgWidth+\"px\",r.bgDomNode.style.height=i.bgHeight+\"px\",void 0!==i.top&&(r.bgDomNode.style.top=\"0px\"),void 0!==i.left&&(r.bgDomNode.style.left=\"0px\"),void 0!==i.bottom&&(r.bgDomNode.style.bottom=\"0px\"),void 0!==i.right&&(r.bgDomNode.style.right=\"0px\"),r.domNode=document.createElement(\"div\"),r.domNode.className=i.className,r.domNode.style.position=\"absolute\",r.domNode.style.width=t.ARROW_IMG_SIZE+\"px\",r.domNode.style.height=t.ARROW_IMG_SIZE+\"px\",\nvoid 0!==i.top&&(r.domNode.style.top=i.top+\"px\"),void 0!==i.left&&(r.domNode.style.left=i.left+\"px\"),void 0!==i.bottom&&(r.domNode.style.bottom=i.bottom+\"px\"),void 0!==i.right&&(r.domNode.style.right=i.right+\"px\"),r._mouseMoveMonitor=r._register(new n.GlobalMouseMoveMonitor),r.onmousedown(r.bgDomNode,(function(e){return r._arrowMouseDown(e)})),r.onmousedown(r.domNode,(function(e){return r._arrowMouseDown(e)})),r._mousedownRepeatTimer=r._register(new o.IntervalTimer),r._mousedownScheduleRepeatTimer=r._register(new o.TimeoutTimer),r}return r(i,e),i.prototype._arrowMouseDown=function(e){var t=this;this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet((function(){t._mousedownRepeatTimer.cancelAndSet((function(){return t._onActivate()}),1e3/24)}),200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,n.standardMouseMoveMerger,(function(e){}),(function(){t._mousedownRepeatTimer.cancel(),t._mousedownScheduleRepeatTimer.cancel()})),e.preventDefault()},i\n}(i.Widget);t.ScrollbarArrow=s})),define(n[181],i([0,1,6,28,78,135,244,47,16]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t){var n=e.call(this)||this;return n._lazyRender=t.lazyRender,n._host=t.host,n._scrollable=t.scrollable,n._scrollbarState=t.scrollbarState,n._visibilityController=n._register(new a.ScrollbarVisibilityController(t.visibility,\"visible scrollbar \"+t.extraScrollbarClassName,\"invisible scrollbar \"+t.extraScrollbarClassName)),n._visibilityController.setIsNeeded(n._scrollbarState.isNeeded()),n._mouseMoveMonitor=n._register(new o.GlobalMouseMoveMonitor),n._shouldRender=!0,n.domNode=i.createFastDomNode(document.createElement(\"div\")),n.domNode.setAttribute(\"role\",\"presentation\"),n.domNode.setAttribute(\"aria-hidden\",\"true\"),n._visibilityController.setDomNode(n.domNode),n.domNode.setPosition(\"absolute\"),n.onmousedown(n.domNode.domNode,(function(e){return n._domNodeMouseDown(e)})),n}return r(t,e),\nt.prototype._createArrow=function(e){var t=this._register(new s.ScrollbarArrow(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)},t.prototype._createSlider=function(e,t,n,o){var r=this;this.slider=i.createFastDomNode(document.createElement(\"div\")),this.slider.setClassName(\"slider\"),this.slider.setPosition(\"absolute\"),this.slider.setTop(e),this.slider.setLeft(t),\"number\"==typeof n&&this.slider.setWidth(n),\"number\"==typeof o&&this.slider.setHeight(o),this.slider.setLayerHinting(!0),this.slider.setContain(\"strict\"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,(function(e){e.leftButton&&(e.preventDefault(),r._sliderMouseDown(e,(function(){})))})),this.onclick(this.slider.domNode,(function(e){e.leftButton&&e.stopPropagation()}))},t.prototype._onElementSize=function(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,\nthis._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollSize=function(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollPosition=function(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype.beginReveal=function(){this._visibilityController.setShouldBeVisible(!0)},t.prototype.beginHide=function(){this._visibilityController.setShouldBeVisible(!1)},t.prototype.render=function(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),\nthis._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))},t.prototype._domNodeMouseDown=function(e){e.target===this.domNode.domNode&&this._onMouseDown(e)},t.prototype.delegateMouseDown=function(e){var t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),i=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderMousePosition(e);n<=o&&o<=i?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){}))):this._onMouseDown(e)},t.prototype._onMouseDown=function(e){var t,i;if(e.target===this.domNode.domNode&&\"number\"==typeof e.browserEvent.offsetX&&\"number\"==typeof e.browserEvent.offsetY)t=e.browserEvent.offsetX,i=e.browserEvent.offsetY;else{var o=n.getDomNodePagePosition(this.domNode.domNode);t=e.posx-o.left,i=e.posy-o.top}this._setDesiredScrollPositionNow(this._scrollbarState.getDesiredScrollPositionFromOffset(this._mouseDownRelativePosition(t,i))),\ne.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){})))},t.prototype._sliderMouseDown=function(e,t){var n=this,i=this._sliderMousePosition(e),r=this._sliderOrthogonalMousePosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName(\"active\",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){var t=n._sliderOrthogonalMousePosition(e),o=Math.abs(t-r);if(u.isWindows&&o>140)n._setDesiredScrollPositionNow(s.getScrollPosition());else{var a=n._sliderMousePosition(e)-i;n._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(a))}}),(function(){n.slider.toggleClassName(\"active\",!1),n._host.onDragEnd(),t()})),this._host.onDragStart()},t.prototype._setDesiredScrollPositionNow=function(e){var t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)},t}(l.Widget);t.AbstractScrollbar=d})),define(n[250],i([0,1,45,181,135,175]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var a=function(e){function t(t,i,r){var a=this,l=t.getScrollDimensions(),u=t.getCurrentScrollPosition();if(a=e.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new s.ScrollbarState(i.horizontalHasArrows?i.arrowSize:0,2===i.horizontal?0:i.horizontalScrollbarSize,2===i.vertical?0:i.verticalScrollbarSize,l.width,l.scrollWidth,u.scrollLeft),visibility:i.horizontal,extraScrollbarClassName:\"horizontal\",scrollable:t})||this,i.horizontalHasArrows){var d=(i.arrowSize-o.ARROW_IMG_SIZE)/2,c=(i.horizontalScrollbarSize-o.ARROW_IMG_SIZE)/2;a._createArrow({className:\"left-arrow\",top:c,left:d,bottom:void 0,right:void 0,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,1,0))}}),a._createArrow({className:\"right-arrow\",top:c,left:void 0,bottom:void 0,right:d,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,-1,0))}})}\nreturn a._createSlider(Math.floor((i.horizontalScrollbarSize-i.horizontalSliderSize)/2),0,void 0,i.horizontalSliderSize),a}return r(t,e),t.prototype._updateSlider=function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return e},t.prototype._sliderMousePosition=function(e){return e.posx},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posy},t.prototype.writeScrollPosition=function(e,t){e.scrollLeft=t},t}(i.AbstractScrollbar);t.HorizontalScrollbar=a})),\ndefine(n[251],i([0,1,45,181,135,175]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,i,r){var a=this,l=t.getScrollDimensions(),u=t.getCurrentScrollPosition();if(a=e.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new s.ScrollbarState(i.verticalHasArrows?i.arrowSize:0,2===i.vertical?0:i.verticalScrollbarSize,0,l.height,l.scrollHeight,u.scrollTop),visibility:i.vertical,extraScrollbarClassName:\"vertical\",scrollable:t})||this,i.verticalHasArrows){var d=(i.arrowSize-o.ARROW_IMG_SIZE)/2,c=(i.verticalScrollbarSize-o.ARROW_IMG_SIZE)/2;a._createArrow({className:\"up-arrow\",top:d,left:c,bottom:void 0,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,0,1))}}),a._createArrow({className:\"down-arrow\",top:void 0,left:c,bottom:d,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){\nreturn a._host.onMouseWheel(new n.StandardWheelEvent(null,0,-1))}})}return a._createSlider(0,Math.floor((i.verticalScrollbarSize-i.verticalSliderSize)/2),i.verticalSliderSize,void 0),a}return r(t,e),t.prototype._updateSlider=function(e,t){this.slider.setHeight(e),this.slider.setTop(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return t},t.prototype._sliderMousePosition=function(e){return e.posy},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posx},t.prototype.writeScrollPosition=function(e,t){e.scrollTop=t},t}(i.AbstractScrollbar);t.VerticalScrollbar=a\n}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[39],i([0,1,177,77,25,5,46,16]),(function(e,t,n,i,o,r,s,l){\"use strict\";function u(e){return!e||e.scheme!==s.Schemas.file||!l.isLinux}function d(e,t){return e===t||r.equalsIgnoreCase(e,t)}function c(e){return i.posix.basename(e.path)}function h(e){var t,i=e.path;return t=e.authority&&i.length>1&&e.scheme===s.Schemas.file?\"//\"+e.authority+i:l.isWindows&&47===i.charCodeAt(0)&&n.isWindowsDriveLetter(i.charCodeAt(1))&&58===i.charCodeAt(2)?i.substr(1):i,l.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hasToIgnoreCase=u,t.basenameOrAuthority=function(e){return c(e)||e.authority},t.isEqualAuthority=d,t.isEqual=function(e,t,n){if(void 0===n&&(n=u(e)),e===t)return!0;if(!e||!t)return!1;if(e.scheme!==t.scheme||!d(e.authority,t.authority))return!1\n;var i=e.path||\"/\",o=t.path||\"/\";return i===o||n&&r.equalsIgnoreCase(i||\"/\",o||\"/\")},t.basename=c,t.dirname=function(e){if(0===e.path.length)return e;if(e.scheme===s.Schemas.file)return o.URI.file(i.dirname(h(e)));var t=i.posix.dirname(e.path);return e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error('dirname(\"'+e.toString+\")) resulted in a relative path\"),t=\"/\"),e.with({path:t})},t.joinPath=function(e){for(var t,n,r=[],l=1;l<arguments.length;l++)r[l-1]=arguments[l];return n=e.scheme===s.Schemas.file?o.URI.file(i.join.apply(i,a([h(e)],r))).path:(t=i.posix).join.apply(t,a([e.path||\"/\"],r)),e.with({path:n})},t.normalizePath=function(e){return e.path.length?(t=e.scheme===s.Schemas.file?o.URI.file(i.normalize(h(e))).path:i.posix.normalize(e.path),e.with({path:t})):e;var t},t.originalFSPath=h,t.relativePath=function(e,t,o){if(void 0===o&&(o=u(e)),e.scheme===t.scheme&&d(e.authority,t.authority)){if(e.scheme===s.Schemas.file){var r=i.relative(e.path,t.path);return l.isWindows?n.toSlashes(r):r}\nvar a=e.path||\"/\",c=t.path||\"/\";if(o){for(var h=0,p=Math.min(a.length,c.length);h<p&&(a.charCodeAt(h)===c.charCodeAt(h)||a.charAt(h).toLowerCase()===c.charAt(h).toLowerCase());h++);a=c.substr(0,h)+a.substr(h)}return i.posix.relative(a,c)}},function(e){e.META_DATA_LABEL=\"label\",e.META_DATA_DESCRIPTION=\"description\",e.META_DATA_SIZE=\"size\",e.META_DATA_MIME=\"mime\",e.parseMetaData=function(t){var n=new Map;t.path.substring(t.path.indexOf(\";\")+1,t.path.lastIndexOf(\";\")).split(\";\").forEach((function(e){var t=e.split(\":\"),i=t[0],o=t[1];i&&o&&n.set(i,o)}));var i=t.path.substring(0,t.path.indexOf(\";\"));return i&&n.set(e.META_DATA_MIME,i),n}}(t.DataUri||(t.DataUri={}))})),define(n[136],i([0,1,25,77,5,46,16,39]),(function(e,t,n,i,o,r,s,a){\"use strict\";function l(e){return!(!s.isWindows||!e||\":\"!==e[1])}function u(e){return l(e)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getPathLabel=function(e,t,o){if(\"string\"==typeof e&&(e=n.URI.file(e)),o){var d=o.getWorkspaceFolder(e)\n;if(d){var h=o.getWorkspace().folders.length>1,p=void 0;if(p=a.isEqual(d.uri,e)?\"\":a.relativePath(d.uri,e),h){var g=d.name?d.name:a.basename(d.uri);p=p?g+\" • \"+p:g}return p}}if(e.scheme!==r.Schemas.file&&e.scheme!==r.Schemas.untitled)return e.with({query:null,fragment:null}).toString(!0);if(l(e.fsPath))return i.normalize(u(e.fsPath));var f=i.normalize(e.fsPath);return!s.isWindows&&t&&(f=c(f,t.userHome)),f},t.getBaseLabel=function(e){if(e){\"string\"==typeof e&&(e=n.URI.file(e));var t=a.basename(e)||(e.scheme===r.Schemas.file?e.fsPath:e.path);return l(t)?u(t):t}},t.normalizeDriveLetter=u;var d=Object.create(null);function c(e,t){if(s.isWindows||!e||!t)return e;var n=d.original===t?d.normalized:void 0;return n||(n=\"\"+o.rtrim(t,i.posix.sep)+i.posix.sep,d={original:t,normalized:n}),(s.isLinux?o.startsWith(e,n):o.startsWithIgnoreCase(e,n))&&(e=\"~/\"+e.substr(n.length)),e}t.tildify=c})),define(n[252],i([0,1,77,5,178,46,39]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.MIME_TEXT=\"text/plain\",t.MIME_UNKNOWN=\"application/unknown\";var a=[],l=[],u=[];function d(e,t,n){for(var r=null,s=null,a=null,l=n.length-1;l>=0;l--){var u=n[l];if(t===u.filenameLowercase){r=u;break}if(u.filepattern&&(!s||u.filepattern.length>s.filepattern.length)){var d=u.filepatternOnPath?e:t;o.match(u.filepatternLowercase,d)&&(s=u)}u.extension&&(!a||u.extension.length>a.extension.length)&&i.endsWith(t,u.extensionLowercase)&&(a=u)}return r?r.mime:s?s.mime:a?a.mime:null}t.registerTextMime=function(e,t){void 0===t&&(t=!1);var i=function(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(n.posix.sep)>=0}}(e);a.push(i),i.userConfigured?u.push(i):l.push(i),\nt&&!i.userConfigured&&a.forEach((function(e){e.mime===i.mime||e.userConfigured||(i.extension&&e.extension===i.extension&&console.warn(\"Overwriting extension <<\"+i.extension+\">> to now point to mime <<\"+i.mime+\">>\"),i.filename&&e.filename===i.filename&&console.warn(\"Overwriting filename <<\"+i.filename+\">> to now point to mime <<\"+i.mime+\">>\"),i.filepattern&&e.filepattern===i.filepattern&&console.warn(\"Overwriting filepattern <<\"+i.filepattern+\">> to now point to mime <<\"+i.mime+\">>\"),i.firstline&&e.firstline===i.firstline&&console.warn(\"Overwriting firstline <<\"+i.firstline+\">> to now point to mime <<\"+i.mime+\">>\"))}))},t.guessMimeTypes=function(e,o){var c;if(e)switch(e.scheme){case r.Schemas.file:c=e.fsPath;break;case r.Schemas.data:c=s.DataUri.parseMetaData(e).get(s.DataUri.META_DATA_LABEL);break;default:c=e.path}if(!c)return[t.MIME_UNKNOWN];c=c.toLowerCase();var h=n.basename(c),p=d(c,h,u);if(p)return[p,t.MIME_TEXT];var g=d(c,h,l);if(g)return[g,t.MIME_TEXT];if(o){var f=function(e){\ni.startsWithUTF8BOM(e)&&(e=e.substr(1));if(e.length>0)for(var t=a.length-1;t>=0;t--){var n=a[t];if(n.firstline){var o=e.match(n.firstline);if(o&&o.length>0)return n.mime}}return null}(o);if(f)return[f,t.MIME_TEXT]}return[t.MIME_UNKNOWN]}})),define(n[182],i([0,1,10,2,16,21]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=\"$initialize\",l=!1;t.logOnceWebWorkerWarning=function(e){o.isWeb&&(l||(l=!0,console.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq\")),console.warn(e.message))};var u=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=this,i=String(++this._lastSentReq);return new Promise((function(o,r){n._pendingReplies[i]={resolve:o,reject:r},n._send({\nvsWorker:n._workerId,req:i,method:e,args:t})}))},e.prototype.handleMessage=function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var i=e;if(!this._pendingReplies[i.seq])return void console.warn(\"Got reply to unknown seq\");var o=this._pendingReplies[i.seq];if(delete this._pendingReplies[i.seq],i.err){var r=i.err;return i.err.$isError&&((r=new Error).name=i.err.name,r.message=i.err.message,r.stack=i.err.stack),void o.reject(r)}o.resolve(i.res)}else{var s=e,a=s.req;this._handler.handleMessage(s.method,s.args).then((function(e){t._send({vsWorker:t._workerId,seq:a,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=n.transformErrorForSerialization(e.detail)),t._send({vsWorker:t._workerId,seq:a,res:void 0,err:n.transformErrorForSerialization(e)})}))}},e.prototype._send=function(e){var t=[]\n;if(e.req)for(var n=e,i=0;i<n.args.length;i++)n.args[i]instanceof ArrayBuffer&&t.push(n.args[i]);else(n=e).res instanceof ArrayBuffer&&t.push(n.res);this._handler.sendMessage(e,t)},e}(),d=function(e){function t(t,n,i){var o=e.call(this)||this,r=null;o._worker=o._register(t.create(\"vs/base/common/worker/simpleWorker\",(function(e){o._protocol.handleMessage(e)}),(function(e){r&&r(e)}))),o._protocol=new u({sendMessage:function(e,t){o._worker.postMessage(e,t)},handleMessage:function(e,t){if(\"function\"!=typeof i[e])return Promise.reject(new Error(\"Missing method \"+e+\" on main thread host.\"));try{return Promise.resolve(i[e].apply(i,t))}catch(e){return Promise.reject(e)}}}),o._protocol.setWorkerId(o._worker.getId());var l=null;void 0!==self.require&&\"function\"==typeof self.require.getConfig?l=self.require.getConfig():void 0!==self.requirejs&&(l=self.requirejs.s.contexts._.config);var d=s.getAllMethodNames(i);o._onModuleLoaded=o._protocol.sendMessage(a,[o._worker.getId(),JSON.parse(JSON.stringify(l)),n,d])\n;var c=function(e,t){return o._request(e,t)};return o._lazyProxy=new Promise((function(e,t){r=t,o._onModuleLoaded.then((function(t){e(s.createProxyObject(t,c))}),(function(e){t(e),o._onError(\"Worker failed to load \"+n,e)}))})),o}return r(t,e),t.prototype.getProxyObject=function(){return this._lazyProxy},t.prototype._request=function(e,t){var n=this;return new Promise((function(i,o){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(i,o)}),o)}))},t.prototype._onError=function(e,t){console.error(e),console.info(t)},t}(i.Disposable);t.SimpleWorkerClient=d;var c=function(){function e(e,t){var n=this;this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new u({sendMessage:function(t,n){e(t,n)},handleMessage:function(e,t){return n._handleMessage(e,t)}})}return e.prototype.onmessage=function(e){this._protocol.handleMessage(e)},e.prototype._handleMessage=function(e,t){if(e===a)return this.initialize(t[0],t[1],t[2],t[3])\n;if(!this._requestHandler||\"function\"!=typeof this._requestHandler[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}},e.prototype.initialize=function(e,t,n,i){var o=this;this._protocol.setWorkerId(e);var r=s.createProxyObject(i,(function(e,t){return o._protocol.sendMessage(e,t)}));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(r),Promise.resolve(s.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((function(e,t){self.require([n],(function(n){o._requestHandler=n.create(r),o._requestHandler?e(s.getAllMethodNames(o._requestHandler)):t(new Error(\"No RequestHandler!\"))}),t)})))},e}();t.SimpleWorkerServer=c,t.create=function(e){return new c(e,null)}})),define(n[253],i([0,1,21]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.modelProvider=n.isFunction(e.getModel)?e:{getModel:function(){return e}}}return e.prototype.getId=function(e,t){if(!t)return null;var n=this.modelProvider.getModel();return n===t?\"__root__\":n.dataSource.getId(t)},e.prototype.hasChildren=function(e,t){var n=this.modelProvider.getModel();return!!(n&&n===t&&n.entries.length>0)},e.prototype.getChildren=function(e,t){var n=this.modelProvider.getModel();return Promise.resolve(n===t?n.entries:[])},e.prototype.getParent=function(e,t){return Promise.resolve(null)},e}();t.DataSource=i;var o=function(){function e(e){this.modelProvider=e}return e.prototype.getAriaLabel=function(e,t){var n=this.modelProvider.getModel();return n.accessibilityProvider?n.accessibilityProvider.getAriaLabel(t):null},e.prototype.getPosInSet=function(e,t){var n=this.modelProvider.getModel(),i=0;if(n.filter)for(var o=0,r=n.entries;o<r.length;o++){var s=r[o];if(n.filter.isVisible(s)&&i++,s===t)break\n}else i=n.entries.indexOf(t)+1;return String(i)},e.prototype.getSetSize=function(){var e=this.modelProvider.getModel(),t=0;if(e.filter)for(var n=0,i=e.entries;n<i.length;n++){var o=i[n];e.filter.isVisible(o)&&t++}else t=e.entries.length;return String(t)},e}();t.AccessibilityProvider=o;var r=function(){function e(e){this.modelProvider=e}return e.prototype.isVisible=function(e,t){var n=this.modelProvider.getModel();return!n.filter||n.filter.isVisible(t)},e}();t.Filter=r;var s=function(){function e(e,t){this.modelProvider=e,this.styles=t}return e.prototype.updateStyles=function(e){this.styles=e},e.prototype.getHeight=function(e,t){return this.modelProvider.getModel().renderer.getHeight(t)},e.prototype.getTemplateId=function(e,t){return this.modelProvider.getModel().renderer.getTemplateId(t)},e.prototype.renderTemplate=function(e,t,n){return this.modelProvider.getModel().renderer.renderTemplate(t,n,this.styles)},e.prototype.renderElement=function(e,t,n,i){\nthis.modelProvider.getModel().renderer.renderElement(t,n,i,this.styles)},e.prototype.disposeTemplate=function(e,t,n){this.modelProvider.getModel().renderer.disposeTemplate(t,n)},e}();t.Renderer=s})),define(n[254],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this._posx=e,this._posy=t,this._target=n}return e.prototype.preventDefault=function(){},e.prototype.stopPropagation=function(){},Object.defineProperty(e.prototype,\"target\",{get:function(){return this._target},enumerable:!0,configurable:!0}),e}();t.ContextMenuEvent=n;var i=function(e){function t(t){var n=e.call(this,t.posx,t.posy,t.target)||this;return n.originalEvent=t,n}return r(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.MouseContextMenuEvent=i;var o=function(e){function t(t,n,i){var o=e.call(this,t,n,i.target)||this;return o.originalEvent=i,o}return r(t,e),\nt.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.KeyboardContextMenuEvent=o})),define(n[137],i([0,1,16,10,6,36]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){this._arr=[]}return e.prototype.set=function(e,t){this._arr.push({keybinding:r.createKeybinding(e,n.OS),callback:t})},e.prototype.dispatch=function(e){for(var t=this._arr.length-1;t>=0;t--){var n=this._arr[t];if(e.toChord().equals(n.keybinding))return n.callback}return null},e}();t.KeybindingDispatcher=s;var a=function(){function e(e){var t=this;void 0===e&&(e={clickBehavior:0,keyboardSupport:!0,openMode:0}),this.options=e,this.downKeyBindingDispatcher=new s,this.upKeyBindingDispatcher=new s,(\"boolean\"!=typeof e.keyboardSupport||e.keyboardSupport)&&(this.downKeyBindingDispatcher.set(16,(function(e,n){return t.onUp(e,n)})),this.downKeyBindingDispatcher.set(18,(function(e,n){\nreturn t.onDown(e,n)})),this.downKeyBindingDispatcher.set(15,(function(e,n){return t.onLeft(e,n)})),this.downKeyBindingDispatcher.set(17,(function(e,n){return t.onRight(e,n)})),n.isMacintosh&&(this.downKeyBindingDispatcher.set(2064,(function(e,n){return t.onLeft(e,n)})),this.downKeyBindingDispatcher.set(300,(function(e,n){return t.onDown(e,n)})),this.downKeyBindingDispatcher.set(302,(function(e,n){return t.onUp(e,n)}))),this.downKeyBindingDispatcher.set(11,(function(e,n){return t.onPageUp(e,n)})),this.downKeyBindingDispatcher.set(12,(function(e,n){return t.onPageDown(e,n)})),this.downKeyBindingDispatcher.set(14,(function(e,n){return t.onHome(e,n)})),this.downKeyBindingDispatcher.set(13,(function(e,n){return t.onEnd(e,n)})),this.downKeyBindingDispatcher.set(10,(function(e,n){return t.onSpace(e,n)})),this.downKeyBindingDispatcher.set(9,(function(e,n){return t.onEscape(e,n)})),this.upKeyBindingDispatcher.set(3,this.onEnter.bind(this)),this.upKeyBindingDispatcher.set(2051,this.onEnter.bind(this)))}\nreturn e.prototype.onMouseDown=function(e,t,n,i){if(void 0===i&&(i=\"mouse\"),0===this.options.clickBehavior&&(n.leftButton||n.middleButton)){if(n.target){if(n.target.tagName&&\"input\"===n.target.tagName.toLowerCase())return!1;if(o.findParentWithClass(n.target,\"scrollbar\",\"monaco-tree\"))return!1;if(o.findParentWithClass(n.target,\"monaco-action-bar\",\"row\"))return!1}return this.onLeftClick(e,t,n,i)}return!1},e.prototype.onClick=function(e,t,i){return n.isMacintosh&&i.ctrlKey?(i.preventDefault(),i.stopPropagation(),!1):(!i.target||!i.target.tagName||\"input\"!==i.target.tagName.toLowerCase())&&((0!==this.options.clickBehavior||!i.leftButton&&!i.middleButton)&&this.onLeftClick(e,t,i))},e.prototype.onLeftClick=function(e,t,n,o){void 0===o&&(o=\"mouse\");var r=n,s={origin:o,originalEvent:n,didClickOnTwistie:this.isClickOnTwistie(r)};e.getInput()===t?(e.clearFocus(s),e.clearSelection(s)):(n&&r.browserEvent&&\"mousedown\"===r.browserEvent.type&&1===r.browserEvent.detail||n.preventDefault(),n.stopPropagation(),e.domFocus(),\ne.setSelection([t],s),e.setFocus(t,s),this.shouldToggleExpansion(t,r,o)&&(e.isExpanded(t)?e.collapse(t).then(void 0,i.onUnexpectedError):e.expand(t).then(void 0,i.onUnexpectedError)));return!0},e.prototype.shouldToggleExpansion=function(e,t,n){var i=\"mouse\"===n&&2===t.detail;return this.openOnSingleClick||i||this.isClickOnTwistie(t)},Object.defineProperty(e.prototype,\"openOnSingleClick\",{get:function(){return 0===this.options.openMode},enumerable:!0,configurable:!0}),e.prototype.isClickOnTwistie=function(e){var t=e.target;if(!o.hasClass(t,\"content\"))return!1;var n=window.getComputedStyle(t,\":before\");if(\"none\"===n.backgroundImage||\"none\"===n.display)return!1;var i=parseInt(n.width)+parseInt(n.paddingRight);return e.browserEvent.offsetX<=i},e.prototype.onContextMenu=function(e,t,n){return(!n.target||!n.target.tagName||\"input\"!==n.target.tagName.toLowerCase())&&(n&&(n.preventDefault(),n.stopPropagation()),!1)},e.prototype.onTap=function(e,t,n){var i=n.initialTarget\n;return(!i||!i.tagName||\"input\"!==i.tagName.toLowerCase())&&this.onLeftClick(e,t,n,\"touch\")},e.prototype.onKeyDown=function(e,t){return this.onKey(this.downKeyBindingDispatcher,e,t)},e.prototype.onKeyUp=function(e,t){return this.onKey(this.upKeyBindingDispatcher,e,t)},e.prototype.onKey=function(e,t,n){var i=e.dispatch(n.toKeybinding());return!(!i||!i(t,n))&&(n.preventDefault(),n.stopPropagation(),!0)},e.prototype.onUp=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPrevious(1,n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onPageUp=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPreviousPage(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onDown=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNext(1,n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},\ne.prototype.onPageDown=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNextPage(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onHome=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusFirst(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onEnd=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusLast(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onLeft=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var o=e.getFocus();e.collapse(o).then((function(t){if(o&&!t)return e.focusParent(n),e.reveal(e.getFocus())})).then(void 0,i.onUnexpectedError)}return!0},e.prototype.onRight=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var o=e.getFocus()\n;e.expand(o).then((function(t){if(o&&!t)return e.focusFirstChild(n),e.reveal(e.getFocus())})).then(void 0,i.onUnexpectedError)}return!0},e.prototype.onEnter=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())return!1;var i=e.getFocus();return i&&e.setSelection([i],n),!0},e.prototype.onSpace=function(e,t){if(e.getHighlight())return!1;var n=e.getFocus();return n&&e.toggleExpansion(n),!0},e.prototype.onEscape=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?(e.clearHighlight(n),!0):e.getSelection().length?(e.clearSelection(n),!0):!!e.getFocus()&&(e.clearFocus(n),!0)},e}();t.DefaultController=a;var l=function(){function e(){}return e.prototype.getDragURI=function(e,t){return null},e.prototype.onDragStart=function(e,t,n){},e.prototype.onDragOver=function(e,t,n,i){return null},e.prototype.drop=function(e,t,n,i){},e}();t.DefaultDragAndDrop=l;var u=function(){function e(){}return e.prototype.isVisible=function(e,t){return!0},e}();t.DefaultFilter=u\n;var d=function(){function e(){}return e.prototype.getAriaLabel=function(e,t){return null},e}();t.DefaultAccessibilityProvider=d;var c=function(){function e(e,t){this.styleElement=e,this.selectorSuffix=t}return e.prototype.style=function(e){var t=this.selectorSuffix?\".\"+this.selectorSuffix:\"\",n=[];e.listFocusBackground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { background-color: \"+e.listFocusBackground+\"; }\"),e.listFocusForeground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { color: \"+e.listFocusForeground+\"; }\"),e.listActiveSelectionBackground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: \"+e.listActiveSelectionBackground+\"; }\"),e.listActiveSelectionForeground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: \"+e.listActiveSelectionForeground+\"; }\"),\ne.listFocusAndSelectionBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image,\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { background-color: \"+e.listFocusAndSelectionBackground+\"; }\\n\\t\\t\\t\"),e.listFocusAndSelectionForeground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image,\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { color: \"+e.listFocusAndSelectionForeground+\"; }\\n\\t\\t\\t\"),e.listInactiveSelectionBackground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: \"+e.listInactiveSelectionBackground+\"; }\"),e.listInactiveSelectionForeground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: \"+e.listInactiveSelectionForeground+\"; }\"),\ne.listHoverBackground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { background-color: \"+e.listHoverBackground+\"; }\"),e.listHoverForeground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { color: \"+e.listHoverForeground+\"; }\"),e.listDropBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-wrapper.drop-target,\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.drop-target { background-color: \"+e.listDropBackground+\" !important; color: inherit !important; }\\n\\t\\t\\t\"),\ne.listFocusOutline&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; background: #000; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px solid transparent; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) \\t\\t\\t\\t\\t\\t{ border: 1px dotted \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted)  \\t\\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused)  \\t{ border: 1px dashed \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-wrapper.drop-target,\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.drop-target\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px dashed \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\")\n;var i=n.join(\"\\n\");i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i)},e}();t.DefaultTreestyler=c})),define(n[255],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ElementsDragAndDropData=n;var i=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ExternalElementsDragAndDropData=i;var o=function(){function e(){this.types=[],this.files=[]}return e.prototype.update=function(e){e.types&&(this.types=[],Array.prototype.push.apply(this.types,e.types)),e.files&&(this.files=[],Array.prototype.push.apply(this.files,e.files),this.files=this.files.filter((function(e){return e.size||e.type})))},e.prototype.getData=function(){return{types:this.types,files:this.files}},e}();t.DesktopDragAndDropData=o})),\ndefine(n[256],i([0,1,124,10,2,4]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._onDispose=new s.Emitter,this.onDispose=this._onDispose.event,this._item=e}return Object.defineProperty(e.prototype,\"item\",{get:function(){return this._item},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose&&(this._onDispose.fire(),this._onDispose.dispose(),this._onDispose=void 0)},e}();t.LockData=a;var l=function(){function e(){this.locks=Object.create({})}return e.prototype.isLocked=function(e){return!!this.locks[e.id]},e.prototype.run=function(e,t){var n=this,i=this.getLock(e);return i?new Promise((function(o,r){s.Event.once(i.onDispose)((function(){return n.run(e,t).then(o,r)}))})):new Promise((function(i,o){if(e.isDisposed())return o(new Error(\"Item is disposed.\"));var r=n.locks[e.id]=new a(e);return t().then((function(t){return delete n.locks[e.id],r.dispose(),t})).then(i,o)}))},e.prototype.getLock=function(e){var t\n;for(t in this.locks){var n=this.locks[t];if(e.intersects(n.item))return n}return null},e}();t.Lock=l;var u=function(){function e(){this._isDisposed=!1,this._onDidRevealItem=new s.EventMultiplexer,this.onDidRevealItem=this._onDidRevealItem.event,this._onExpandItem=new s.EventMultiplexer,this.onExpandItem=this._onExpandItem.event,this._onDidExpandItem=new s.EventMultiplexer,this.onDidExpandItem=this._onDidExpandItem.event,this._onCollapseItem=new s.EventMultiplexer,this.onCollapseItem=this._onCollapseItem.event,this._onDidCollapseItem=new s.EventMultiplexer,this.onDidCollapseItem=this._onDidCollapseItem.event,this._onDidAddTraitItem=new s.EventMultiplexer,this.onDidAddTraitItem=this._onDidAddTraitItem.event,this._onDidRemoveTraitItem=new s.EventMultiplexer,this.onDidRemoveTraitItem=this._onDidRemoveTraitItem.event,this._onDidRefreshItem=new s.EventMultiplexer,this.onDidRefreshItem=this._onDidRefreshItem.event,this._onRefreshItemChildren=new s.EventMultiplexer,\nthis.onRefreshItemChildren=this._onRefreshItemChildren.event,this._onDidRefreshItemChildren=new s.EventMultiplexer,this.onDidRefreshItemChildren=this._onDidRefreshItemChildren.event,this._onDidDisposeItem=new s.EventMultiplexer,this.onDidDisposeItem=this._onDidDisposeItem.event,this.items={}}return e.prototype.register=function(e){n.ok(!this.isRegistered(e.id),\"item already registered: \"+e.id);var t=o.combinedDisposable(this._onDidRevealItem.add(e.onDidReveal),this._onExpandItem.add(e.onExpand),this._onDidExpandItem.add(e.onDidExpand),this._onCollapseItem.add(e.onCollapse),this._onDidCollapseItem.add(e.onDidCollapse),this._onDidAddTraitItem.add(e.onDidAddTrait),this._onDidRemoveTraitItem.add(e.onDidRemoveTrait),this._onDidRefreshItem.add(e.onDidRefresh),this._onRefreshItemChildren.add(e.onRefreshChildren),this._onDidRefreshItemChildren.add(e.onDidRefreshChildren),this._onDidDisposeItem.add(e.onDidDispose));this.items[e.id]={item:e,disposable:t}},e.prototype.deregister=function(e){\nn.ok(this.isRegistered(e.id),\"item not registered: \"+e.id),this.items[e.id].disposable.dispose(),delete this.items[e.id]},e.prototype.isRegistered=function(e){return this.items.hasOwnProperty(e)},e.prototype.getItem=function(e){var t=this.items[e];return t?t.item:null},e.prototype.dispose=function(){this.items={},this._onDidRevealItem.dispose(),this._onExpandItem.dispose(),this._onDidExpandItem.dispose(),this._onCollapseItem.dispose(),this._onDidCollapseItem.dispose(),this._onDidAddTraitItem.dispose(),this._onDidRemoveTraitItem.dispose(),this._onDidRefreshItem.dispose(),this._onRefreshItemChildren.dispose(),this._onDidRefreshItemChildren.dispose(),this._isDisposed=!0},e.prototype.isDisposed=function(){return this._isDisposed},e}();t.ItemRegistry=u;var d=function(){function e(e,t,n,i,o){this._onDidCreate=new s.Emitter,this._onDidReveal=new s.Emitter,this.onDidReveal=this._onDidReveal.event,this._onExpand=new s.Emitter,this.onExpand=this._onExpand.event,this._onDidExpand=new s.Emitter,\nthis.onDidExpand=this._onDidExpand.event,this._onCollapse=new s.Emitter,this.onCollapse=this._onCollapse.event,this._onDidCollapse=new s.Emitter,this.onDidCollapse=this._onDidCollapse.event,this._onDidAddTrait=new s.Emitter,this.onDidAddTrait=this._onDidAddTrait.event,this._onDidRemoveTrait=new s.Emitter,this.onDidRemoveTrait=this._onDidRemoveTrait.event,this._onDidRefresh=new s.Emitter,this.onDidRefresh=this._onDidRefresh.event,this._onRefreshChildren=new s.Emitter,this.onRefreshChildren=this._onRefreshChildren.event,this._onDidRefreshChildren=new s.Emitter,this.onDidRefreshChildren=this._onDidRefreshChildren.event,this._onDidDispose=new s.Emitter,this.onDidDispose=this._onDidDispose.event,this.registry=t,this.context=n,this.lock=i,this.element=o,this.id=e,this.registry.register(this),this.doesHaveChildren=this.context.dataSource.hasChildren(this.context.tree,this.element),this.needsChildrenRefresh=!0,this.parent=null,this.previous=null,this.next=null,this.firstChild=null,this.lastChild=null,this.traits={},\nthis.depth=0,this.expanded=!(!this.context.dataSource.shouldAutoexpand||!this.context.dataSource.shouldAutoexpand(this.context.tree,o)),this._onDidCreate.fire(this),this.visible=this._isVisible(),this.height=this._getHeight(),this._isDisposed=!1}return e.prototype.getElement=function(){return this.element},e.prototype.hasChildren=function(){return this.doesHaveChildren},e.prototype.getDepth=function(){return this.depth},e.prototype.isVisible=function(){return this.visible},e.prototype.setVisible=function(e){this.visible=e},e.prototype.isExpanded=function(){return this.expanded},e.prototype._setExpanded=function(e){this.expanded=e},e.prototype.reveal=function(e){void 0===e&&(e=null);var t={item:this,relativeTop:e};this._onDidReveal.fire(t)},e.prototype.expand=function(){var e=this;return this.isExpanded()||!this.doesHaveChildren||this.lock.isLocked(this)?Promise.resolve(!1):this.lock.run(this,(function(){if(e.isExpanded()||!e.doesHaveChildren)return Promise.resolve(!1);var t={item:e}\n;return e._onExpand.fire(t),(e.needsChildrenRefresh?e.refreshChildren(!1,!0,!0):Promise.resolve(null)).then((function(){return e._setExpanded(!0),e._onDidExpand.fire(t),!0}))})).then((function(t){return!e.isDisposed()&&(e.context.options.autoExpandSingleChildren&&t&&null!==e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.isVisible()?e.firstChild.expand().then((function(){return!0})):t)}))},e.prototype.collapse=function(e){var t=this;if(void 0===e&&(e=!1),e){var n=Promise.resolve(null);return this.forEachChild((function(e){n=n.then((function(){return e.collapse(!0)}))})),n.then((function(){return t.collapse(!1)}))}return!this.isExpanded()||this.lock.isLocked(this)?Promise.resolve(!1):this.lock.run(this,(function(){var e={item:t};return t._onCollapse.fire(e),t._setExpanded(!1),t._onDidCollapse.fire(e),Promise.resolve(!0)}))},e.prototype.addTrait=function(e){var t={item:this,trait:e};this.traits[e]=!0,this._onDidAddTrait.fire(t)},e.prototype.removeTrait=function(e){var t={item:this,trait:e}\n;delete this.traits[e],this._onDidRemoveTrait.fire(t)},e.prototype.hasTrait=function(e){return this.traits[e]||!1},e.prototype.getAllTraits=function(){var e,t=[];for(e in this.traits)this.traits.hasOwnProperty(e)&&this.traits[e]&&t.push(e);return t},e.prototype.getHeight=function(){return this.height},e.prototype.refreshChildren=function(t,n,o){var r=this;if(void 0===n&&(n=!1),void 0===o&&(o=!1),!o&&!this.isExpanded()){var s=function(e){e.needsChildrenRefresh=!0,e.forEachChild(s)};return s(this),Promise.resolve(this)}this.needsChildrenRefresh=!1;var a=function(){var o={item:r,isNested:n};return r._onRefreshChildren.fire(o),(r.doesHaveChildren?r.context.dataSource.getChildren(r.context.tree,r.element):Promise.resolve([])).then((function(n){if(r.isDisposed()||r.registry.isDisposed())return Promise.resolve(null);if(!Array.isArray(n))return Promise.reject(new Error(\"Please return an array of children.\"));n=n?n.slice(0):[],n=r.sort(n);for(var i={};null!==r.firstChild;)i[r.firstChild.id]=r.firstChild,\nr.removeChild(r.firstChild);for(var o=0,s=n.length;o<s;o++){var a=n[o],l=r.context.dataSource.getId(r.context.tree,a),u=i[l]||new e(l,r.registry,r.context,r.lock,a);u.element=a,t&&(u.needsChildrenRefresh=t),delete i[l],r.addChild(u)}for(var d in i)i.hasOwnProperty(d)&&i[d].dispose();return t?Promise.all(r.mapEachChild((function(e){return e.doRefresh(t,!0)}))):Promise.all(r.mapEachChild((function(e){return e.isExpanded()&&e.needsChildrenRefresh?e.doRefresh(t,!0):(e.updateVisibility(),Promise.resolve(null))})))})).then(void 0,i.onUnexpectedError).then((function(){return r._onDidRefreshChildren.fire(o)}))};return n?a():this.lock.run(this,a)},e.prototype.doRefresh=function(e,t){return void 0===t&&(t=!1),this.doesHaveChildren=this.context.dataSource.hasChildren(this.context.tree,this.element),this.height=this._getHeight(),this.updateVisibility(),this._onDidRefresh.fire(this),this.refreshChildren(e,t)},e.prototype.updateVisibility=function(){this.setVisible(this._isVisible())},e.prototype.refresh=function(e){\nreturn this.doRefresh(e)},e.prototype.getNavigator=function(){return new h(this)},e.prototype.intersects=function(e){return this.isAncestorOf(e)||e.isAncestorOf(this)},e.prototype.isAncestorOf=function(e){for(var t=e;t;){if(t.id===this.id)return!0;t=t.parent}return!1},e.prototype.addChild=function(e,t){void 0===t&&(t=this.lastChild);var n=null===this.firstChild,i=null===t,o=t===this.lastChild;if(n)this.firstChild=this.lastChild=e,e.next=e.previous=null;else if(i){if(!this.firstChild)throw new Error(\"Invalid tree state\");this.firstChild.previous=e,e.next=this.firstChild,e.previous=null,this.firstChild=e}else if(o){if(!this.lastChild)throw new Error(\"Invalid tree state\");this.lastChild.next=e,e.next=null,e.previous=this.lastChild,this.lastChild=e}else{if(e.previous=t,!t)throw new Error(\"Invalid tree state\");if(e.next=t.next,!t.next)throw new Error(\"Invalid tree state\");t.next.previous=e,t.next=e}e.parent=this,e.depth=this.depth+1},e.prototype.removeChild=function(e){\nvar t=this.firstChild===e,n=this.lastChild===e;if(t&&n)this.firstChild=this.lastChild=null;else if(t){if(!e.next)throw new Error(\"Invalid tree state\");e.next.previous=null,this.firstChild=e.next}else if(n){if(!e.previous)throw new Error(\"Invalid tree state\");e.previous.next=null,this.lastChild=e.previous}else{if(!e.next)throw new Error(\"Invalid tree state\");if(e.next.previous=e.previous,!e.previous)throw new Error(\"Invalid tree state\");e.previous.next=e.next}e.parent=null,e.depth=NaN},e.prototype.forEachChild=function(e){for(var t,n=this.firstChild;n;)t=n.next,e(n),n=t},e.prototype.mapEachChild=function(e){var t=[];return this.forEachChild((function(n){t.push(e(n))})),t},e.prototype.sort=function(e){var t=this,n=this.context.sorter;return n?e.sort((function(e,i){return n.compare(t.context.tree,e,i)})):e},e.prototype._getHeight=function(){return this.context.renderer?this.context.renderer.getHeight(this.context.tree,this.element):0},e.prototype._isVisible=function(){\nreturn!!this.context.filter&&this.context.filter.isVisible(this.context.tree,this.element)},e.prototype.isDisposed=function(){return this._isDisposed},e.prototype.dispose=function(){this.forEachChild((function(e){return e.dispose()})),this.parent=null,this.previous=null,this.next=null,this.firstChild=null,this.lastChild=null,this._onDidDispose.fire(this),this.registry.deregister(this),this._onDidCreate.dispose(),this._onDidReveal.dispose(),this._onExpand.dispose(),this._onDidExpand.dispose(),this._onCollapse.dispose(),this._onDidCollapse.dispose(),this._onDidAddTrait.dispose(),this._onDidRemoveTrait.dispose(),this._onDidRefresh.dispose(),this._onRefreshChildren.dispose(),this._onDidRefreshChildren.dispose(),this._onDidDispose.dispose(),this._isDisposed=!0},e}();t.Item=d;var c=function(e){function t(t,n,i,o,r){return e.call(this,t,n,i,o,r)||this}return r(t,e),t.prototype.isVisible=function(){return!1},t.prototype.setVisible=function(e){},t.prototype.isExpanded=function(){return!0},\nt.prototype._setExpanded=function(e){},t.prototype._getHeight=function(){return 0},t.prototype._isVisible=function(){return!1},t}(d),h=function(){function e(e,t){void 0===t&&(t=!0),this.item=e,this.start=t?e:null}return e.lastDescendantOf=function(t){return t?t instanceof c?e.lastDescendantOf(t.lastChild):t.isVisible()?t.isExpanded()&&null!==t.lastChild?e.lastDescendantOf(t.lastChild):t:e.lastDescendantOf(t.previous):null},e.prototype.current=function(){return this.item||null},e.prototype.next=function(){if(this.item)do{if((this.item instanceof c||this.item.isVisible()&&this.item.isExpanded())&&this.item.firstChild)this.item=this.item.firstChild;else if(this.item===this.start)this.item=null;else{for(;this.item&&this.item!==this.start&&!this.item.next;)this.item=this.item.parent;this.item===this.start&&(this.item=null),this.item=this.item?this.item.next:null}}while(this.item&&!this.item.isVisible());return this.item||null},e.prototype.previous=function(){if(this.item)do{\nvar t=e.lastDescendantOf(this.item.previous);t?this.item=t:this.item.parent&&this.item.parent!==this.start&&this.item.parent.isVisible()?this.item=this.item.parent:this.item=null}while(this.item&&!this.item.isVisible());return this.item||null},e.prototype.parent=function(){if(this.item){var e=this.item.parent;e&&e!==this.start&&e.isVisible()?this.item=e:this.item=null}return this.item||null},e.prototype.first=function(){return this.item=this.start,this.next(),this.item||null},e.prototype.last=function(){return e.lastDescendantOf(this.start)},e}();t.TreeNavigator=h;var p=function(){function e(e){this.registry=new u,this.registryDisposable=o.Disposable.None,this._onSetInput=new s.Emitter,this.onSetInput=this._onSetInput.event,this._onDidSetInput=new s.Emitter,this.onDidSetInput=this._onDidSetInput.event,this._onRefresh=new s.Emitter,this.onRefresh=this._onRefresh.event,this._onDidRefresh=new s.Emitter,this.onDidRefresh=this._onDidRefresh.event,this._onDidHighlight=new s.Emitter,\nthis.onDidHighlight=this._onDidHighlight.event,this._onDidSelect=new s.Emitter,this.onDidSelect=this._onDidSelect.event,this._onDidFocus=new s.Emitter,this.onDidFocus=this._onDidFocus.event,this._onDidRevealItem=new s.Relay,this.onDidRevealItem=this._onDidRevealItem.event,this._onExpandItem=new s.Relay,this.onExpandItem=this._onExpandItem.event,this._onDidExpandItem=new s.Relay,this.onDidExpandItem=this._onDidExpandItem.event,this._onCollapseItem=new s.Relay,this.onCollapseItem=this._onCollapseItem.event,this._onDidCollapseItem=new s.Relay,this.onDidCollapseItem=this._onDidCollapseItem.event,this._onDidAddTraitItem=new s.Relay,this.onDidAddTraitItem=this._onDidAddTraitItem.event,this._onDidRemoveTraitItem=new s.Relay,this.onDidRemoveTraitItem=this._onDidRemoveTraitItem.event,this._onDidRefreshItem=new s.Relay,this.onDidRefreshItem=this._onDidRefreshItem.event,this._onRefreshItemChildren=new s.Relay,this.onRefreshItemChildren=this._onRefreshItemChildren.event,this._onDidRefreshItemChildren=new s.Relay,\nthis.onDidRefreshItemChildren=this._onDidRefreshItemChildren.event,this._onDidDisposeItem=new s.Relay,this.context=e,this.input=null,this.traitsToItems={}}return e.prototype.setInput=function(e){var t=this,n={item:this.input};this._onSetInput.fire(n),this.setSelection([]),this.setFocus(),this.setHighlight(),this.lock=new l,this.input&&this.input.dispose(),this.registry&&(this.registry.dispose(),this.registryDisposable.dispose()),this.registry=new u,this._onDidRevealItem.input=this.registry.onDidRevealItem,this._onExpandItem.input=this.registry.onExpandItem,this._onDidExpandItem.input=this.registry.onDidExpandItem,this._onCollapseItem.input=this.registry.onCollapseItem,this._onDidCollapseItem.input=this.registry.onDidCollapseItem,this._onDidAddTraitItem.input=this.registry.onDidAddTraitItem,this._onDidRemoveTraitItem.input=this.registry.onDidRemoveTraitItem,this._onDidRefreshItem.input=this.registry.onDidRefreshItem,this._onRefreshItemChildren.input=this.registry.onRefreshItemChildren,\nthis._onDidRefreshItemChildren.input=this.registry.onDidRefreshItemChildren,this._onDidDisposeItem.input=this.registry.onDidDisposeItem,this.registryDisposable=this.registry.onDidDisposeItem((function(e){return e.getAllTraits().forEach((function(n){return delete t.traitsToItems[n][e.id]}))}));var i=this.context.dataSource.getId(this.context.tree,e);return this.input=new c(i,this.registry,this.context,this.lock,e),n={item:this.input},this._onDidSetInput.fire(n),this.refresh(this.input)},e.prototype.getInput=function(){return this.input?this.input.getElement():null},e.prototype.refresh=function(e,t){var n=this;void 0===e&&(e=null),void 0===t&&(t=!0);var i=this.getItem(e);if(!i)return Promise.resolve(null);var o={item:i,recursive:t};return this._onRefresh.fire(o),i.refresh(t).then((function(){n._onDidRefresh.fire(o)}))},e.prototype.expand=function(e){var t=this.getItem(e);return t?t.expand():Promise.resolve(!1)},e.prototype.collapse=function(e,t){void 0===t&&(t=!1);var n=this.getItem(e)\n;return n?n.collapse(t):Promise.resolve(!1)},e.prototype.toggleExpansion=function(e,t){return void 0===t&&(t=!1),this.isExpanded(e)?this.collapse(e,t):this.expand(e)},e.prototype.isExpanded=function(e){var t=this.getItem(e);return!!t&&t.isExpanded()},e.prototype.reveal=function(e,t){var n=this;return void 0===t&&(t=null),this.resolveUnknownParentChain(e).then((function(e){var t=Promise.resolve(null);return e.forEach((function(e){t=t.then((function(){return n.expand(e)}))})),t})).then((function(){var i=n.getItem(e);if(i)return i.reveal(t)}))},e.prototype.resolveUnknownParentChain=function(e){var t=this;return this.context.dataSource.getParent(this.context.tree,e).then((function(e){return e?t.resolveUnknownParentChain(e).then((function(t){return t.push(e),t})):Promise.resolve([])}))},e.prototype.setHighlight=function(e,t){this.setTraits(\"highlighted\",e?[e]:[]);var n={highlight:this.getHighlight(),payload:t};this._onDidHighlight.fire(n)},e.prototype.getHighlight=function(e){void 0===e&&(e=!1)\n;var t=this.getElementsWithTrait(\"highlighted\",e);return 0===t.length?null:t[0]},e.prototype.setSelection=function(e,t){this.setTraits(\"selected\",e);var n={selection:this.getSelection(),payload:t};this._onDidSelect.fire(n)},e.prototype.getSelection=function(e){return void 0===e&&(e=!1),this.getElementsWithTrait(\"selected\",e)},e.prototype.setFocus=function(e,t){this.setTraits(\"focused\",e?[e]:[]);var n={focus:this.getFocus(),payload:t};this._onDidFocus.fire(n)},e.prototype.getFocus=function(e){void 0===e&&(e=!1);var t=this.getElementsWithTrait(\"focused\",e);return 0===t.length?null:t[0]},e.prototype.focusNext=function(e,t){void 0===e&&(e=1);for(var n,i=this.getFocus()||this.input,o=this.getNavigator(i,!1),r=0;r<e&&(n=o.next());r++)i=n;this.setFocus(i,t)},e.prototype.focusPrevious=function(e,t){void 0===e&&(e=1);for(var n,i=this.getFocus()||this.input,o=this.getNavigator(i,!1),r=0;r<e&&(n=o.previous());r++)i=n;this.setFocus(i,t)},e.prototype.focusParent=function(e){\nvar t=this.getFocus()||this.input,n=this.getNavigator(t,!1).parent();n&&this.setFocus(n,e)},e.prototype.focusFirstChild=function(e){var t=this.getItem(this.getFocus()||this.input),n=this.getNavigator(t,!1),i=n.next();n.parent()===t&&this.setFocus(i,e)},e.prototype.focusFirst=function(e,t){this.focusNth(0,e,t)},e.prototype.focusNth=function(e,t,n){for(var i=this.getParent(n),o=this.getNavigator(i),r=o.first(),s=0;s<e;s++)r=o.next();r&&this.setFocus(r,t)},e.prototype.focusLast=function(e,t){var n,i=this.getParent(t);t&&i?n=i.lastChild:n=this.getNavigator(i).last();n&&this.setFocus(n,e)},e.prototype.getParent=function(e){if(e){var t=this.getItem(e);if(t&&t.parent)return t.parent}return this.getItem(this.input)},e.prototype.getNavigator=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!0),new h(this.getItem(e),t)},e.prototype.getItem=function(e){return void 0===e&&(e=null),\nnull===e?this.input:e instanceof d?e:\"string\"==typeof e?this.registry.getItem(e):this.registry.getItem(this.context.dataSource.getId(this.context.tree,e))},e.prototype.removeTraits=function(e,t){var n,i,o=this.traitsToItems[e]||{};if(0===t.length){for(i in o)o.hasOwnProperty(i)&&(n=o[i]).removeTrait(e);delete this.traitsToItems[e]}else for(var r=0,s=t.length;r<s;r++)(n=this.getItem(t[r]))&&(n.removeTrait(e),delete o[n.id])},e.prototype.setTraits=function(e,t){if(0===t.length)this.removeTraits(e,t);else{for(var n={},i=void 0,o=0,r=t.length;o<r;o++)(i=this.getItem(t[o]))&&(n[i.id]=i);var s=this.traitsToItems[e]||{},a=[],l=void 0;for(l in s)s.hasOwnProperty(l)&&(n.hasOwnProperty(l)?delete n[l]:a.push(s[l]));for(o=0,r=a.length;o<r;o++)(i=a[o]).removeTrait(e),delete s[i.id];for(l in n)n.hasOwnProperty(l)&&((i=n[l]).addTrait(e),s[l]=i);this.traitsToItems[e]=s}},e.prototype.getElementsWithTrait=function(e,t){var n,i=[],o=this.traitsToItems[e]||{}\n;for(n in o)o.hasOwnProperty(n)&&(o[n].isVisible()||t)&&i.push(o[n].getElement());return i},e.prototype.dispose=function(){this.registry.dispose(),this._onSetInput.dispose(),this._onDidSetInput.dispose(),this._onRefresh.dispose(),this._onDidRefresh.dispose(),this._onDidHighlight.dispose(),this._onDidSelect.dispose(),this._onDidFocus.dispose(),this._onDidRevealItem.dispose(),this._onExpandItem.dispose(),this._onDidExpandItem.dispose(),this._onCollapseItem.dispose(),this._onDidCollapseItem.dispose(),this._onDidAddTraitItem.dispose(),this._onDidRemoveTraitItem.dispose(),this._onDidRefreshItem.dispose(),this._onRefreshItemChildren.dispose(),this._onDidRefreshItemChildren.dispose(),this._onDidDisposeItem.dispose()},e}();t.TreeModel=p})),define(n[257],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this.heightMap=[],this.indexes={}}return e.prototype.getContentHeight=function(){var e=this.heightMap[this.heightMap.length-1]\n;return e?e.top+e.height:0},e.prototype.onInsertItems=function(e,t){void 0===t&&(t=null);var n,i,o,r,s=null,a=0;if(null===t)i=0,r=0;else{if(i=this.indexes[t]+1,!(n=this.heightMap[i-1]))return void console.error(\"view item doesnt exist\");r=n.top+n.height}for(var l=this.heightMap.splice.bind(this.heightMap,i,0),u=[];s=e.next();)(n=this.createViewItem(s)).top=r+a,this.indexes[s.id]=i++,u.push(n),a+=n.height;for(l.apply(this.heightMap,u),o=i;o<this.heightMap.length;o++)(n=this.heightMap[o]).top+=a,this.indexes[n.model.id]=o;for(o=u.length-1;o>=0;o--)this.onInsertItem(u[o]);for(o=this.heightMap.length-1;o>=i;o--)this.onRefreshItem(this.heightMap[o]);return a},e.prototype.onInsertItem=function(e){},e.prototype.onRemoveItems=function(e){for(var t,n=null,i=null,o=0,r=0;n=e.next();){if(o=this.indexes[n],!(t=this.heightMap[o]))return void console.error(\"view item doesnt exist\");r-=t.height,delete this.indexes[n],this.onRemoveItem(t),null===i&&(i=o)}if(0!==r&&null!==i)for(this.heightMap.splice(i,o-i+1),\no=i;o<this.heightMap.length;o++)(t=this.heightMap[o]).top+=r,this.indexes[t.model.id]=o,this.onRefreshItem(t)},e.prototype.onRemoveItem=function(e){},e.prototype.onRefreshItemSet=function(e){var t=this,i=e.sort((function(e,n){return t.indexes[e.id]-t.indexes[n.id]}));this.onRefreshItems(new n.ArrayIterator(i))},e.prototype.onRefreshItems=function(e){for(var t,n,i,o=null,r=null,s=0;o=e.next();){for(i=this.indexes[o.id];0!==s&&null!==r&&r<i;r++)(t=this.heightMap[r]).top+=s,this.onRefreshItem(t);t=this.heightMap[i],n=o.getHeight(),t.top+=s,s+=n-t.height,t.height=n,this.onRefreshItem(t,!0),r=i+1}if(0!==s&&null!==r)for(;r<this.heightMap.length;r++)(t=this.heightMap[r]).top+=s,this.onRefreshItem(t)},e.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1)},e.prototype.indexAt=function(e){for(var t,n,i=0,o=this.heightMap.length;i<o;)if(t=Math.floor((i+o)/2),e<(n=this.heightMap[t]).top)o=t;else{if(!(e>=n.top+n.height))return t;if(i===t)break;i=t}return this.heightMap.length},e.prototype.indexAfter=function(e){\nreturn Math.min(this.indexAt(e)+1,this.heightMap.length)},e.prototype.itemAtIndex=function(e){return this.heightMap[e]},e.prototype.itemAfter=function(e){return this.heightMap[this.indexes[e.model.id]+1]||null},e.prototype.createViewItem=function(e){throw new Error(\"not implemented\")},e.prototype.dispose=function(){this.heightMap=[],this.indexes={}},e}();t.HeightMap=i})),define(n[258],i([0,1,16,182]),(function(e,t,n,i){\"use strict\";function o(t,n){if(/^(http:)|(https:)|(file:)/.test(t)){var i=String(window.location),o=i.substr(0,i.length-window.location.hash.length-window.location.search.length-window.location.pathname.length);if(t.substring(0,o.length)!==o){var r=\"vs/base/worker/defaultWorkerFactory.js\",s=e.toUrl(r).slice(0,-r.length);return\"data:text/javascript;charset=utf-8,\"+encodeURIComponent(\"/*\"+n+\"*/self.MonacoEnvironment={baseUrl: '\"+s+\"'};importScripts('\"+t+\"');/*\"+n+\"*/\")}}return t+\"#\"+n}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWorkerBootstrapUrl=o;var r=function(){\nfunction t(t,i,r,s,a){this.id=i;var l=function(t,i){if(n.globals.MonacoEnvironment){if(\"function\"==typeof n.globals.MonacoEnvironment.getWorker)return n.globals.MonacoEnvironment.getWorker(t,i);if(\"function\"==typeof n.globals.MonacoEnvironment.getWorkerUrl)return new Worker(n.globals.MonacoEnvironment.getWorkerUrl(t,i))}if(\"function\"==typeof e){var r=o(e.toUrl(\"./\"+t),i);return new Worker(r,{name:i})}throw new Error(\"You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker\")}(\"workerMain.js\",r);\"function\"==typeof l.then?this.worker=l:this.worker=Promise.resolve(l),this.postMessage(t,[]),this.worker.then((function(e){e.onmessage=function(e){s(e.data)},e.onmessageerror=a,\"function\"==typeof e.addEventListener&&e.addEventListener(\"error\",a)}))}return t.prototype.getId=function(){return this.id},t.prototype.postMessage=function(e,t){this.worker&&this.worker.then((function(n){return n.postMessage(e,t)}))},t.prototype.dispose=function(){this.worker&&this.worker.then((function(e){\nreturn e.terminate()})),this.worker=null},t}(),s=function(){function e(e){this._label=e,this._webWorkerFailedBeforeError=!1}return e.prototype.create=function(t,n,o){var s=this,a=++e.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new r(t,a,this._label||\"anonymous\"+a,n,(function(e){i.logOnceWebWorkerWarning(e),s._webWorkerFailedBeforeError=e,o(e)}))},e.LAST_WORKER_ID=0,e}();t.DefaultWorkerFactory=s})),define(n[259],i([9]),{}),define(n[260],i([9]),{}),define(n[261],i([9]),{}),define(n[138],i([0,1,6,47,27,4,31,261]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l={inputActiveOptionBorder:o.Color.fromHex(\"#007ACC00\"),inputActiveOptionBackground:o.Color.fromHex(\"#0E639C50\")},u=function(e){function t(t){var n=e.call(this)||this;return n._onChange=n._register(new s.Emitter),n.onChange=n._onChange.event,n._onKeyDown=n._register(new s.Emitter),n.onKeyDown=n._onKeyDown.event,n._opts=a.deepClone(t),a.mixin(n._opts,l,!1),\nn._checked=n._opts.isChecked,n.domNode=document.createElement(\"div\"),n.domNode.title=n._opts.title,n.domNode.className=\"monaco-custom-checkbox codicon \"+(n._opts.actionClassName||\"\")+\" \"+(n._checked?\"checked\":\"unchecked\"),n.domNode.tabIndex=0,n.domNode.setAttribute(\"role\",\"checkbox\"),n.domNode.setAttribute(\"aria-checked\",String(n._checked)),n.domNode.setAttribute(\"aria-label\",n._opts.title),n.applyStyles(),n.onclick(n.domNode,(function(e){n.checked=!n._checked,n._onChange.fire(!1),e.preventDefault()})),n.ignoreGesture(n.domNode),n.onkeydown(n.domNode,(function(e){if(10===e.keyCode||3===e.keyCode)return n.checked=!n._checked,n._onChange.fire(!0),void e.preventDefault();n._onKeyDown.fire(e)})),n}return r(t,e),Object.defineProperty(t.prototype,\"enabled\",{get:function(){return\"true\"!==this.domNode.getAttribute(\"aria-disabled\")},enumerable:!0,configurable:!0}),t.prototype.focus=function(){this.domNode.focus()},Object.defineProperty(t.prototype,\"checked\",{get:function(){return this._checked},set:function(e){\nthis._checked=e,this.domNode.setAttribute(\"aria-checked\",String(this._checked)),this._checked?this.domNode.classList.add(\"checked\"):this.domNode.classList.remove(\"checked\"),this.applyStyles()},enumerable:!0,configurable:!0}),t.prototype.width=function(){return 22},t.prototype.style=function(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()},t.prototype.applyStyles=function(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():\"transparent\",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():\"transparent\")},t.prototype.enable=function(){this.domNode.tabIndex=0,this.domNode.setAttribute(\"aria-disabled\",String(!1))},t.prototype.disable=function(){\nn.removeTabIndexAndUpdateFocus(this.domNode),this.domNode.setAttribute(\"aria-disabled\",String(!0))},t}(i.Widget);t.Checkbox=u})),define(n[262],i([9]),{}),define(n[263],i([9]),{}),define(n[183],i([0,1,262,263]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})})),define(n[264],i([9]),{}),define(n[265],i([0,1,6,16,2,103,88,264]),(function(e,t,n,i,o,s,a){\"use strict\";function l(e,t,n){var i=n.offset+n.size;return 0===n.position?t<=e-i?i:t<=n.offset?n.offset-t:Math.max(e-t,0):t<=n.offset?n.offset-t:t<=e-i?i:0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.layout=l;var u=function(e){function t(t){var i=e.call(this)||this;return i.container=null,i.delegate=null,i.toDisposeOnClean=o.Disposable.None,i.toDisposeOnSetContainer=o.Disposable.None,i.view=n.$(\".context-view\"),n.hide(i.view),i.setContainer(t),i._register(o.toDisposable((function(){return i.setContainer(null)}))),i}return r(t,e),t.prototype.setContainer=function(e){var i=this\n;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.container.removeChild(this.view),this.container=null),e){this.container=e,this.container.appendChild(this.view);var r=new o.DisposableStore;t.BUBBLE_UP_EVENTS.forEach((function(e){r.add(n.addStandardDisposableListener(i.container,e,(function(e){i.onDOMEvent(e,!1)})))})),t.BUBBLE_DOWN_EVENTS.forEach((function(e){r.add(n.addStandardDisposableListener(i.container,e,(function(e){i.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=r}},t.prototype.show=function(e){this.isVisible()&&this.hide(),n.clearNode(this.view),this.view.className=\"context-view\",this.view.style.top=\"0px\",this.view.style.left=\"0px\",n.show(this.view),this.toDisposeOnClean=e.render(this.view)||o.Disposable.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()},t.prototype.layout=function(){this.isVisible()&&(!1!==this.delegate.canRelayout||i.isIOS&&a.BrowserFeatures.pointerEvents?(this.delegate.layout&&this.delegate.layout(),\nthis.doLayout()):this.hide())},t.prototype.doLayout=function(){if(this.isVisible()){var e,t=this.delegate.getAnchor();if(n.isHTMLElement(t)){var i=n.getDomNodePagePosition(t);e={top:i.top,left:i.left,width:i.width,height:i.height}}else e={top:t.y,left:t.x,width:t.width||1,height:t.height||2};var o,r=n.getTotalWidth(this.view),a=n.getTotalHeight(this.view),u=this.delegate.anchorPosition||0,d=this.delegate.anchorAlignment||0,c={offset:e.top-window.pageYOffset,size:e.height,position:0===u?0:1};o=0===d?{offset:e.left,size:0,position:0}:{offset:e.left+e.width,size:0,position:1};var h=l(window.innerHeight,a,c)+window.pageYOffset;s.Range.intersects({start:h,end:h+a},{start:c.offset,end:c.offset+c.size})&&(o.size=e.width,1===d&&(o.offset=e.left));var p=l(window.innerWidth,r,o);n.removeClasses(this.view,\"top\",\"bottom\",\"left\",\"right\"),n.addClass(this.view,0===u?\"bottom\":\"top\"),n.addClass(this.view,0===d?\"left\":\"right\");var g=n.getDomNodePagePosition(this.container);this.view.style.top=h-g.top+\"px\",\nthis.view.style.left=p-g.left+\"px\",this.view.style.width=\"initial\"}},t.prototype.hide=function(e){var t=this.delegate;this.delegate=null,(null==t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),n.hide(this.view)},t.prototype.isVisible=function(){return!!this.delegate},t.prototype.onDOMEvent=function(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!n.isAncestor(e.target,this.container)&&this.hide())},t.prototype.dispose=function(){this.hide(),e.prototype.dispose.call(this)},t.BUBBLE_UP_EVENTS=[\"click\",\"keydown\",\"focus\",\"blur\"],t.BUBBLE_DOWN_EVENTS=[\"click\"],t}(o.Disposable);t.ContextView=u})),define(n[266],i([9]),{}),define(n[267],i([0,1,6,5,27,31,266]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s={badgeBackground:o.Color.fromHex(\"#4D4D4D\"),badgeForeground:o.Color.fromHex(\"#FFFFFF\")},a=function(){function e(e,t){this.count=0,this.options=t||Object.create(null),r.mixin(this.options,s,!1),\nthis.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=n.append(e,n.$(\".monaco-count-badge\")),this.countFormat=this.options.countFormat||\"{0}\",this.titleFormat=this.options.titleFormat||\"\",this.setCount(this.options.count||0)}return e.prototype.setCount=function(e){this.count=e,this.render()},e.prototype.setTitleFormat=function(e){this.titleFormat=e,this.render()},e.prototype.render=function(){this.element.textContent=i.format(this.countFormat,this.count),this.element.title=i.format(this.titleFormat,this.count),this.applyStyles()},e.prototype.style=function(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()},e.prototype.applyStyles=function(){if(this.element){var e=this.badgeBackground?this.badgeBackground.toString():\"\",t=this.badgeForeground?this.badgeForeground.toString():\"\",n=this.badgeBorder?this.badgeBorder.toString():\"\"\n;this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.borderColor=n}},e}();t.CountBadge=a})),define(n[184],i([9]),{}),define(n[268],i([9]),{}),define(n[139],i([0,1,6,133,2,103,31,268]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e){this._element=e}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"textContent\",{set:function(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"className\",{set:function(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"title\",{set:function(e){\nthis.disposed||e===this._title||(this._title=e,this._title?this._element.title=e:this._element.removeAttribute(\"title\"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"empty\",{set:function(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?\"0\":\"\")},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.disposed=!0},e}(),u=function(e){function t(t,o){var r=e.call(this)||this;r.domNode=r._register(new l(n.append(t,n.$(\".monaco-icon-label\"))));var s=n.append(r.domNode.element,n.$(\".monaco-icon-label-container\")),a=n.append(s,n.$(\"span.monaco-icon-name-container\"));return r.descriptionContainer=r._register(new l(n.append(s,n.$(\"span.monaco-icon-description-container\")))),(null==o?void 0:o.supportHighlights)?r.nameNode=new c(a,!!o.supportCodicons):r.nameNode=new d(a),(null==o?void 0:o.supportDescriptionHighlights)?r.descriptionNodeFactory=function(){\nreturn new i.HighlightedLabel(n.append(r.descriptionContainer.element,n.$(\"span.label-description\")),!!o.supportCodicons)}:r.descriptionNodeFactory=function(){return r._register(new l(n.append(r.descriptionContainer.element,n.$(\"span.label-description\"))))},r}return r(t,e),t.prototype.setLabel=function(e,t,n){var o=[\"monaco-icon-label\"];n&&(n.extraClasses&&o.push.apply(o,n.extraClasses),n.italic&&o.push(\"italic\")),this.domNode.className=o.join(\" \"),this.domNode.title=(null==n?void 0:n.title)||\"\",this.nameNode.setLabel(e,n),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof i.HighlightedLabel?(this.descriptionNode.set(t||\"\",n?n.descriptionMatches:void 0),(null==n?void 0:n.descriptionTitle)?this.descriptionNode.element.title=n.descriptionTitle:this.descriptionNode.element.removeAttribute(\"title\")):(this.descriptionNode.textContent=t||\"\",this.descriptionNode.title=(null==n?void 0:n.descriptionTitle)||\"\",\nthis.descriptionNode.empty=!t))},t}(o.Disposable);t.IconLabel=u;var d=function(){function e(e){this.container=e,this.label=void 0,this.singleLabel=void 0}return e.prototype.setLabel=function(e,t){if(this.label!==e||!a.equals(this.options,t))if(this.label=e,this.options=t,\"string\"==typeof e)this.singleLabel||(this.container.innerHTML=\"\",n.removeClass(this.container,\"multiple\"),this.singleLabel=n.append(this.container,n.$(\"a.label-name\",{id:null==t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerHTML=\"\",n.addClass(this.container,\"multiple\"),this.singleLabel=void 0;for(var i=0;i<e.length;i++){var o=e[i],r=(null==t?void 0:t.domId)&&(null==t?void 0:t.domId)+\"_\"+i;n.append(this.container,n.$(\"a.label-name\",{id:r,\"data-icon-label-count\":e.length,\"data-icon-label-index\":i},o)),i<e.length-1&&n.append(this.container,n.$(\"span.label-separator\",void 0,(null==t?void 0:t.separator)||\"/\"))}}},e}();var c=function(){function e(e,t){this.container=e,this.supportCodicons=t,this.label=void 0,\nthis.singleLabel=void 0}return e.prototype.setLabel=function(e,t){if(this.label!==e||!a.equals(this.options,t))if(this.label=e,this.options=t,\"string\"==typeof e)this.singleLabel||(this.container.innerHTML=\"\",n.removeClass(this.container,\"multiple\"),this.singleLabel=new i.HighlightedLabel(n.append(this.container,n.$(\"a.label-name\",{id:null==t?void 0:t.domId})),this.supportCodicons)),this.singleLabel.set(e,null==t?void 0:t.matches,null==t?void 0:t.title,null==t?void 0:t.labelEscapeNewLines);else{this.container.innerHTML=\"\",n.addClass(this.container,\"multiple\"),this.singleLabel=void 0;for(var o=(null==t?void 0:t.separator)||\"/\",r=function(e,t,n){if(n){var i=0;return e.map((function(e){var o={start:i,end:i+e.length},r=n.map((function(e){return s.Range.intersect(o,e)})).filter((function(e){return!s.Range.isEmpty(e)})).map((function(e){var t=e.start,n=e.end;return{start:t-i,end:n-i}}));return i=o.end+t.length,r}))}}(e,o,null==t?void 0:t.matches),l=0;l<e.length;l++){\nvar u=e[l],d=r?r[l]:void 0,c=(null==t?void 0:t.domId)&&(null==t?void 0:t.domId)+\"_\"+l,h=n.$(\"a.label-name\",{id:c,\"data-icon-label-count\":e.length,\"data-icon-label-index\":l});new i.HighlightedLabel(n.append(this.container,h),this.supportCodicons).set(u,d,null==t?void 0:t.title,null==t?void 0:t.labelEscapeNewLines),l<e.length-1&&n.append(h,n.$(\"span.label-separator\",void 0,o))}}},e}()})),define(n[269],i([9]),{}),define(n[270],i([9]),{}),define(n[271],i([9]),{}),define(n[272],i([9]),{}),define(n[273],i([9]),{}),define(n[274],i([0,1,2,27,31,6,15,273]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l={progressBarBackground:i.Color.fromHex(\"#0E70C0\")},u=function(e){function t(t,n){var i=e.call(this)||this;return i.options=n||Object.create(null),o.mixin(i.options,l,!1),i.workedVal=0,i.progressBarBackground=i.options.progressBarBackground,i._register(i.showDelayedScheduler=new a.RunOnceScheduler((function(){return s.show(i.element)}),0)),i.create(t),i}return r(t,e),\nt.prototype.create=function(e){this.element=document.createElement(\"div\"),s.addClass(this.element,\"monaco-progress-container\"),e.appendChild(this.element),this.bit=document.createElement(\"div\"),s.addClass(this.bit,\"progress-bit\"),this.element.appendChild(this.bit),this.applyStyles()},t.prototype.off=function(){this.bit.style.width=\"inherit\",this.bit.style.opacity=\"1\",s.removeClasses(this.element,\"active\",\"infinite\",\"discrete\"),this.workedVal=0,this.totalWork=void 0},t.prototype.stop=function(){return this.doDone(!1)},t.prototype.doDone=function(e){var t=this;return s.addClass(this.element,\"done\"),s.hasClass(this.element,\"infinite\")?(this.bit.style.opacity=\"0\",e?setTimeout((function(){return t.off()}),200):this.off()):(this.bit.style.width=\"inherit\",e?setTimeout((function(){return t.off()}),200):this.off()),this},t.prototype.hide=function(){s.hide(this.element),this.showDelayedScheduler.cancel()},t.prototype.style=function(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()},\nt.prototype.applyStyles=function(){if(this.bit){var e=this.progressBarBackground?this.progressBarBackground.toString():\"\";this.bit.style.backgroundColor=e}},t}(n.Disposable);t.ProgressBar=u})),define(n[275],i([9]),{});a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[104],i([0,1,2,24,16,21,57,45,4,6,52,275]),(function(e,t,n,i,o,s,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=!1,g=function(e){function t(t,r,s){void 0===s&&(s={});var a=e.call(this)||this;return a._state=3,a._onDidEnablementChange=a._register(new d.Emitter),a.onDidEnablementChange=a._onDidEnablementChange.event,a._onDidStart=a._register(new d.Emitter),a.onDidStart=a._onDidStart.event,a._onDidChange=a._register(new d.Emitter),a.onDidChange=a._onDidChange.event,a._onDidReset=a._register(new d.Emitter),a.onDidReset=a._onDidReset.event,\na._onDidEnd=a._register(new d.Emitter),a.onDidEnd=a._onDidEnd.event,a.linkedSash=void 0,a.orthogonalStartSashDisposables=a._register(new n.DisposableStore),a.orthogonalEndSashDisposables=a._register(new n.DisposableStore),a.el=c.append(t,c.$(\".monaco-sash\")),o.isMacintosh&&c.addClass(a.el,\"mac\"),a._register(h.domEvent(a.el,\"mousedown\")(a.onMouseDown,a)),a._register(h.domEvent(a.el,\"dblclick\")(a.onMouseDoubleClick,a)),a._register(l.Gesture.addTarget(a.el)),a._register(h.domEvent(a.el,l.EventType.Start)(a.onTouchStart,a)),i.isIPad&&c.addClass(a.el,\"touch\"),a.setOrientation(s.orientation||0),a.hidden=!1,a.layoutProvider=r,a.orthogonalStartSash=s.orthogonalStartSash,a.orthogonalEndSash=s.orthogonalEndSash,c.toggleClass(a.el,\"debug\",p),a}return r(t,e),Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){this._state!==e&&(c.toggleClass(this.el,\"disabled\",0===e),c.toggleClass(this.el,\"minimum\",1===e),c.toggleClass(this.el,\"maximum\",2===e),this._state=e,\nthis._onDidEnablementChange.fire(e))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalStartSash\",{get:function(){return this._orthogonalStartSash},set:function(e){this.orthogonalStartSashDisposables.clear(),e?(this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalStartSashEnablementChange,this)),this.onOrthogonalStartSashEnablementChange(e.state)):this.onOrthogonalStartSashEnablementChange(0),this._orthogonalStartSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalEndSash\",{get:function(){return this._orthogonalEndSash},set:function(e){this.orthogonalEndSashDisposables.clear(),e?(this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalEndSashEnablementChange,this)),this.onOrthogonalEndSashEnablementChange(e.state)):this.onOrthogonalEndSashEnablementChange(0),this._orthogonalEndSash=e},enumerable:!0,configurable:!0}),t.prototype.setOrientation=function(e){this.orientation=e,\n1===this.orientation?(c.addClass(this.el,\"horizontal\"),c.removeClass(this.el,\"vertical\")):(c.removeClass(this.el,\"horizontal\"),c.addClass(this.el,\"vertical\")),this.layoutProvider&&this.layout()},t.prototype.onMouseDown=function(e){var t=this;c.EventHelper.stop(e,!1);var i=!1;if(!e.__orthogonalSashEvent){var r=this.getOrthogonalSash(e);r&&(i=!0,e.__orthogonalSashEvent=!0,r.onMouseDown(e))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),this.state){for(var s=a(c.getElementsByTagName(\"iframe\"),c.getElementsByTagName(\"webview\")),l=0,d=s;l<d.length;l++){d[l].style.pointerEvents=\"none\"}var p=new u.StandardMouseEvent(e),g=p.posx,f=p.posy,m=p.altKey,v={startX:g,currentX:g,startY:f,currentY:f,altKey:m};c.addClass(this.el,\"active\"),this._onDidStart.fire(v);var _=c.createStyleSheet(this.el),y=function(){var e=\"\"\n;e=i?\"all-scroll\":1===t.orientation?1===t.state?\"s-resize\":2===t.state?\"n-resize\":o.isMacintosh?\"row-resize\":\"ns-resize\":1===t.state?\"e-resize\":2===t.state?\"w-resize\":o.isMacintosh?\"col-resize\":\"ew-resize\",_.innerHTML=\"* { cursor: \"+e+\" !important; }\"},C=new n.DisposableStore;y(),i||this.onDidEnablementChange(y,null,C);h.domEvent(window,\"mousemove\")((function(e){c.EventHelper.stop(e,!1);var n=new u.StandardMouseEvent(e),i={startX:g,currentX:n.posx,startY:f,currentY:n.posy,altKey:m};t._onDidChange.fire(i)}),null,C),h.domEvent(window,\"mouseup\")((function(e){c.EventHelper.stop(e,!1),t.el.removeChild(_),c.removeClass(t.el,\"active\"),t._onDidEnd.fire(),C.dispose();for(var n=0,i=s;n<i.length;n++){i[n].style.pointerEvents=\"auto\"}}),null,C)}},t.prototype.onMouseDoubleClick=function(e){var t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()},t.prototype.onTouchStart=function(e){var t=this;c.EventHelper.stop(e)\n;var i=[],o=e.pageX,r=e.pageY,a=e.altKey;this._onDidStart.fire({startX:o,currentX:o,startY:r,currentY:r,altKey:a}),i.push(c.addDisposableListener(this.el,l.EventType.Change,(function(e){s.isNumber(e.pageX)&&s.isNumber(e.pageY)&&t._onDidChange.fire({startX:o,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:a})}))),i.push(c.addDisposableListener(this.el,l.EventType.End,(function(e){t._onDidEnd.fire(),n.dispose(i)})))},t.prototype.layout=function(){var e=i.isIPad?20:4;if(0===this.orientation){var t=this.layoutProvider;this.el.style.left=t.getVerticalSashLeft(this)-e/2+\"px\",t.getVerticalSashTop&&(this.el.style.top=t.getVerticalSashTop(this)+\"px\"),t.getVerticalSashHeight&&(this.el.style.height=t.getVerticalSashHeight(this)+\"px\")}else{var n=this.layoutProvider;this.el.style.top=n.getHorizontalSashTop(this)-e/2+\"px\",n.getHorizontalSashLeft&&(this.el.style.left=n.getHorizontalSashLeft(this)+\"px\"),n.getHorizontalSashWidth&&(this.el.style.width=n.getHorizontalSashWidth(this)+\"px\")}},t.prototype.hide=function(){\nthis.hidden=!0,this.el.style.display=\"none\",this.el.setAttribute(\"aria-hidden\",\"true\")},t.prototype.onOrthogonalStartSashEnablementChange=function(e){c.toggleClass(this.el,\"orthogonal-start\",0!==e)},t.prototype.onOrthogonalEndSashEnablementChange=function(e){c.toggleClass(this.el,\"orthogonal-end\",0!==e)},t.prototype.getOrthogonalSash=function(e){if(0===this.orientation){if(e.offsetY<=4)return this.orthogonalStartSash;if(e.offsetY>=this.el.clientHeight-4)return this.orthogonalEndSash}else{if(e.offsetX<=4)return this.orthogonalStartSash;if(e.offsetX>=this.el.clientWidth-4)return this.orthogonalEndSash}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.el.remove()},t}(n.Disposable);t.Sash=g})),define(n[276],i([9]),{}),define(n[53],i([0,1,24,6,28,45,250,251,47,15,4,2,16,176,276]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e,t,n){this.timestamp=e,this.deltaX=t,this.deltaY=n,this.score=0},m=function(){function e(){\nthis._capacity=5,this._memory=[],this._front=-1,this._rear=-1}return e.prototype.isPhysicalMouseWheel=function(){if(-1===this._front&&-1===this._rear)return!1;for(var e=1,t=0,n=1,i=this._rear;;){var o=i===this._front?e:Math.pow(2,-n);if(e-=o,t+=this._memory[i].score*o,i===this._front)break;i=(this._capacity+i-1)%this._capacity,n++}return t<=.5},e.prototype.accept=function(e,t,n){var i=new f(e,t,n);i.score=this._computeScore(i),-1===this._front&&-1===this._rear?(this._memory[0]=i,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i)},e.prototype._computeScore=function(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;var t=.5;-1===this._front&&-1===this._rear||this._memory[this._rear];return(Math.abs(e.deltaX-Math.round(e.deltaX))>0||Math.abs(e.deltaY-Math.round(e.deltaY))>0)&&(t+=.25),Math.min(Math.max(t,0),1)},e.INSTANCE=new e,e}();t.MouseWheelClassifier=m;var v=function(e){\nfunction t(t,n,i){var r=e.call(this)||this;r._onScroll=r._register(new c.Emitter),r.onScroll=r._onScroll.event,t.style.overflow=\"hidden\",r._options=b(n),r._scrollable=i,r._register(r._scrollable.onScroll((function(e){r._onDidScroll(e),r._onScroll.fire(e)})));var s={onMouseWheel:function(e){return r._onMouseWheel(e)},onDragStart:function(){return r._onDragStart()},onDragEnd:function(){return r._onDragEnd()}};return r._verticalScrollbar=r._register(new l.VerticalScrollbar(r._scrollable,r._options,s)),r._horizontalScrollbar=r._register(new a.HorizontalScrollbar(r._scrollable,r._options,s)),r._domNode=document.createElement(\"div\"),r._domNode.className=\"monaco-scrollable-element \"+r._options.className,r._domNode.setAttribute(\"role\",\"presentation\"),r._domNode.style.position=\"relative\",r._domNode.style.overflow=\"hidden\",r._domNode.appendChild(t),r._domNode.appendChild(r._horizontalScrollbar.domNode.domNode),r._domNode.appendChild(r._verticalScrollbar.domNode.domNode),\nr._options.useShadows?(r._leftShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._leftShadowDomNode.setClassName(\"shadow\"),r._domNode.appendChild(r._leftShadowDomNode.domNode),r._topShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._topShadowDomNode.setClassName(\"shadow\"),r._domNode.appendChild(r._topShadowDomNode.domNode),r._topLeftShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._topLeftShadowDomNode.setClassName(\"shadow top-left-corner\"),r._domNode.appendChild(r._topLeftShadowDomNode.domNode)):(r._leftShadowDomNode=null,r._topShadowDomNode=null,r._topLeftShadowDomNode=null),r._listenOnDomNode=r._options.listenOnDomNode||r._domNode,r._mouseWheelToDispose=[],r._setListeningToMouseWheel(r._options.handleMouseWheel),r.onmouseover(r._listenOnDomNode,(function(e){return r._onMouseOver(e)})),r.onnonbubblingmouseout(r._listenOnDomNode,(function(e){return r._onMouseOut(e)})),r._hideTimeout=r._register(new d.TimeoutTimer),r._isDragging=!1,r._mouseIsOver=!1,\nr._shouldRender=!0,r._revealOnScroll=!0,r}return r(t,e),t.prototype.dispose=function(){this._mouseWheelToDispose=h.dispose(this._mouseWheelToDispose),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getOverviewRulerLayoutInfo=function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._verticalScrollbar.delegateMouseDown(e)},t.prototype.getScrollDimensions=function(){return this._scrollable.getScrollDimensions()},t.prototype.setScrollDimensions=function(e){this._scrollable.setScrollDimensions(e)},t.prototype.updateClassName=function(e){this._options.className=e,p.isMacintosh&&(this._options.className+=\" mac\"),this._domNode.className=\"monaco-scrollable-element \"+this._options.className},t.prototype.updateOptions=function(e){var t=b(e);this._options.handleMouseWheel=t.handleMouseWheel,this._options.mouseWheelScrollSensitivity=t.mouseWheelScrollSensitivity,\nthis._options.fastScrollSensitivity=t.fastScrollSensitivity,this._setListeningToMouseWheel(this._options.handleMouseWheel),this._options.lazyRender||this._render()},t.prototype._setListeningToMouseWheel=function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=h.dispose(this._mouseWheelToDispose),e)){this._mouseWheelToDispose.push(i.addDisposableListener(this._listenOnDomNode,n.isEdgeOrIE?\"mousewheel\":\"wheel\",(function(e){t._onMouseWheel(new s.StandardWheelEvent(e))}),{passive:!1}))}},t.prototype._onMouseWheel=function(e){var t,n=m.INSTANCE;if(n.accept(Date.now(),e.deltaX,e.deltaY),e.deltaY||e.deltaX){var i=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.flipAxes&&(i=(t=[o,i])[0],o=t[1]);var r=!p.isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!r||o||(o=i,i=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,\ni*=this._options.fastScrollSensitivity);var s=this._scrollable.getFutureScrollPosition(),a={};if(i){var l=s.scrollTop-50*i;this._verticalScrollbar.writeScrollPosition(a,l)}if(o){var u=s.scrollLeft-50*o;this._horizontalScrollbar.writeScrollPosition(a,u)}if(a=this._scrollable.validateScrollPosition(a),s.scrollLeft!==a.scrollLeft||s.scrollTop!==a.scrollTop)this._options.mouseWheelSmoothScroll&&n.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(a):this._scrollable.setScrollPositionNow(a),this._shouldRender=!0}(this._options.alwaysConsumeMouseWheel||this._shouldRender)&&(e.preventDefault(),e.stopPropagation())},t.prototype._onDidScroll=function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()},t.prototype.renderNow=function(){\nif(!this._options.lazyRender)throw new Error(\"Please use `lazyRender` together with `renderNow`!\");this._render()},t.prototype._render=function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0;this._leftShadowDomNode.setClassName(\"shadow\"+(n?\" left\":\"\")),this._topShadowDomNode.setClassName(\"shadow\"+(t?\" top\":\"\")),this._topLeftShadowDomNode.setClassName(\"shadow top-left-corner\"+(t?\" top\":\"\")+(n?\" left\":\"\"))}},t.prototype._onDragStart=function(){this._isDragging=!0,this._reveal()},t.prototype._onDragEnd=function(){this._isDragging=!1,this._hide()},t.prototype._onMouseOut=function(e){this._mouseIsOver=!1,this._hide()},t.prototype._onMouseOver=function(e){this._mouseIsOver=!0,this._reveal()},t.prototype._reveal=function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()},\nt.prototype._hide=function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())},t.prototype._scheduleHide=function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((function(){return e._hide()}),500)},t}(u.Widget);t.AbstractScrollableElement=v;var _=function(e){function t(t,n){var o=this;(n=n||{}).mouseWheelSmoothScroll=!1;var r=new g.Scrollable(0,(function(e){return i.scheduleAtNextAnimationFrame(e)}));return(o=e.call(this,t,n,r)||this)._register(r),o}return r(t,e),t.prototype.setScrollPosition=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.getScrollPosition=function(){return this._scrollable.getCurrentScrollPosition()},t}(v);t.ScrollableElement=_;var y=function(e){function t(t,n,i){return e.call(this,t,n,i)||this}return r(t,e),t}(v);t.SmoothScrollableElement=y;var C=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i._element=t,i.onScroll((function(e){\ne.scrollTopChanged&&(i._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(i._element.scrollLeft=e.scrollLeft)})),i.scanDomNode(),i}return r(t,e),t.prototype.scanDomNode=function(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})},t}(_);function b(e){var t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:\"\",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,\nfastScrollSensitivity:void 0!==e.fastScrollSensitivity?e.fastScrollSensitivity:5,mouseWheelSmoothScroll:void 0===e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:1,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:1,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0};return t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,\nt.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,p.isMacintosh&&(t.className+=\" mac\"),t}t.DomScrollableElement=C}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[140],i([0,1,31,2,57,6,4,52,53,246,249,101,103,19,98,15,24]),(function(e,t,n,i,o,r,s,l,u,d,c,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:function(e){return[e]},getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}},horizontalScrolling:!1},C=function(){function e(e){this.elements=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.elements},e}();t.ElementsDragAndDropData=C;var b=function(){function e(e){\nthis.elements=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.elements},e}();t.ExternalElementsDragAndDropData=b;var S=function(){function e(){this.types=[],this.files=[]}return e.prototype.update=function(e){var t;if(e.types&&(t=this.types).splice.apply(t,a([0,this.types.length],e.types)),e.files){this.files.splice(0,this.files.length);for(var n=0;n<e.files.length;n++){var i=e.files.item(n);i&&(i.size||i.type)&&this.files.push(i)}}},e.prototype.getData=function(){return{types:this.types,files:this.files}},e}();t.DesktopDragAndDropData=S;var w=function(){function e(t,a,h,p){var g=this;if(void 0===p&&(p=y),this.virtualDelegate=a,this.domId=\"list_id_\"+ ++e.InstanceCount,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new v.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=i.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,\nthis.currentDragFeedbackDisposable=i.Disposable.None,this.onDragLeaveTimeout=i.Disposable.None,this.disposables=new i.DisposableStore,this._onDidChangeContentHeight=new s.Emitter,p.horizontalScrolling&&p.supportDynamicHeights)throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");this.items=[],this.itemId=0,this.rangeMap=new d.RangeMap;for(var f=0,m=h;f<m.length;f++){var _=m[f];this.renderers.set(_.templateId,_)}this.cache=this.disposables.add(new c.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement(\"div\"),this.domNode.className=\"monaco-list\",r.addClass(this.domNode,this.domId),this.domNode.tabIndex=0,r.toggleClass(this.domNode,\"mouse-support\",\"boolean\"!=typeof p.mouseSupport||p.mouseSupport),this.horizontalScrolling=n.getOrDefault(p,(function(e){return e.horizontalScrolling}),y.horizontalScrolling),r.toggleClass(this.domNode,\"horizontal-scrolling\",this.horizontalScrolling),\nthis.additionalScrollHeight=void 0===p.additionalScrollHeight?0:p.additionalScrollHeight,this.ariaProvider=p.ariaProvider||{getSetSize:function(e,t,n){return n},getPosInSet:function(e,t){return t+1}},this.rowsContainer=document.createElement(\"div\"),this.rowsContainer.className=\"monaco-list-rows\",this.rowsContainer.style.transform=\"translate3d(0px, 0px, 0px)\",this.disposables.add(o.Gesture.addTarget(this.rowsContainer)),this.scrollableElement=this.disposables.add(new u.ScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:!0,horizontal:this.horizontalScrolling?1:2,vertical:n.getOrDefault(p,(function(e){return e.verticalScrollMode}),y.verticalScrollMode),useShadows:n.getOrDefault(p,(function(e){return e.useShadows}),y.useShadows)})),this.domNode.appendChild(this.scrollableElement.getDomNode()),t.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),l.domEvent(this.rowsContainer,o.EventType.Change)(this.onTouchChange,this,this.disposables),\nl.domEvent(this.scrollableElement.getDomNode(),\"scroll\")((function(e){return e.target.scrollTop=0}),null,this.disposables),s.Event.map(l.domEvent(this.domNode,\"dragover\"),(function(e){return g.toDragEvent(e)}))(this.onDragOver,this,this.disposables),s.Event.map(l.domEvent(this.domNode,\"drop\"),(function(e){return g.toDragEvent(e)}))(this.onDrop,this,this.disposables),l.domEvent(this.domNode,\"dragleave\")(this.onDragLeave,this,this.disposables),l.domEvent(window,\"dragend\")(this.onDragEnd,this,this.disposables),this.setRowLineHeight=n.getOrDefault(p,(function(e){return e.setRowLineHeight}),y.setRowLineHeight),this.supportDynamicHeights=n.getOrDefault(p,(function(e){return e.supportDynamicHeights}),y.supportDynamicHeights),this.dnd=n.getOrDefault(p,(function(e){return e.dnd}),y.dnd),this.layout()}return Object.defineProperty(e.prototype,\"contentHeight\",{get:function(){return this.rangeMap.size},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){if(void 0===n&&(n=[]),\nthis.splicing)throw new Error(\"Can't run recursive splices.\");this.splicing=!0;try{return this._splice(e,t,n)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}},e.prototype._splice=function(e,t,n){var o,r=this;void 0===n&&(n=[]);for(var s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),l={start:e,end:e+t},u=g.Range.intersect(s,l),c=u.start;c<u.end;c++)this.removeItemFromDOM(c);var h,p={start:e+t,end:this.items.length},f=g.Range.intersect(p,s),m=g.Range.relativeComplement(p,s),v=n.map((function(e){return{id:String(r.itemId++),element:e,templateId:r.virtualDelegate.getTemplateId(e),size:r.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!r.virtualDelegate.hasDynamicHeight&&r.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:i.Disposable.None}}));0===e&&t>=this.items.length?(this.rangeMap=new d.RangeMap,this.rangeMap.splice(0,0,v),this.items=v,h=[]):(this.rangeMap.splice(e,t,v),\nh=(o=this.items).splice.apply(o,a([e,t],v)));var _=n.length-t,y=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),C=d.shift(f,_),b=g.Range.intersect(y,C);for(c=b.start;c<b.end;c++)this.updateItemInDOM(this.items[c],c);for(var S=0,w=g.Range.relativeComplement(C,y);S<w.length;S++)for(c=(M=w[S]).start;c<M.end;c++)this.removeItemFromDOM(c);for(var E=m.map((function(e){return d.shift(e,_)})),L={start:e,end:e+n.length},D=a([L],E).map((function(e){return g.Range.intersect(y,e)})),N=this.getNextToLastElement(D),x=0,I=D;x<I.length;x++){var M;for(c=(M=I[x]).start;c<M.end;c++)this.insertItemInDOM(c,N)}return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map((function(e){return e.element}))},e.prototype.eventuallyUpdateScrollDimensions=function(){var e=this;this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=this._scrollHeight+\"px\",\nthis.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=r.scheduleAtNextAnimationFrame((function(){e.scrollableElement.setScrollDimensions({scrollHeight:e.scrollHeight}),e.updateScrollWidth(),e.scrollableElementUpdateDisposable=null})))},e.prototype.eventuallyUpdateScrollWidth=function(){var e=this;this.horizontalScrolling&&this.scrollableElementWidthDelayer.trigger((function(){return e.updateScrollWidth()}))},e.prototype.updateScrollWidth=function(){if(this.horizontalScrolling){0===this.items.length&&this.scrollableElement.setScrollDimensions({scrollWidth:0});for(var e=0,t=0,n=this.items;t<n.length;t++){var i=n[t];void 0!==i.width&&(e=Math.max(e,i.width))}this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e+10})}},e.prototype.rerender=function(){if(this.supportDynamicHeights){for(var e=0,t=this.items;e<t.length;e++){t[e].lastDynamicHeightWidth=void 0}this._rerender(this.lastRenderTop,this.lastRenderHeight)}},Object.defineProperty(e.prototype,\"length\",{\nget:function(){return this.items.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderHeight\",{get:function(){return this.scrollableElement.getScrollDimensions().height},enumerable:!0,configurable:!0}),e.prototype.element=function(e){return this.items[e].element},e.prototype.domElement=function(e){var t=this.items[e].row;return t&&t.domNode},e.prototype.elementHeight=function(e){return this.items[e].size},e.prototype.elementTop=function(e){return this.rangeMap.positionAt(e)},e.prototype.indexAt=function(e){return this.rangeMap.indexAt(e)},e.prototype.indexAfter=function(e){return this.rangeMap.indexAfter(e)},e.prototype.layout=function(e,t){var n={height:\"number\"==typeof e?e:r.getContentHeight(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,n.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(n),void 0!==t&&(this.renderWidth=t,\nthis.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:\"number\"==typeof t?t:r.getContentWidth(this.domNode)}))},e.prototype.render=function(e,t,n,i){for(var o=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),r=this.getRenderRange(e,t),s=g.Range.relativeComplement(r,o),a=g.Range.relativeComplement(o,r),l=this.getNextToLastElement(s),u=0,d=s;u<d.length;u++)for(var c=(f=d[u]).start;c<f.end;c++)this.insertItemInDOM(c,l);for(var h=0,p=a;h<p.length;h++){var f;for(c=(f=p[h]).start;c<f.end;c++)this.removeItemFromDOM(c)}this.rowsContainer.style.left=\"-\"+n+\"px\",this.rowsContainer.style.top=\"-\"+e+\"px\",this.horizontalScrolling&&(this.rowsContainer.style.width=Math.max(i,this.renderWidth)+\"px\"),this.lastRenderTop=e,this.lastRenderHeight=t},e.prototype.insertItemInDOM=function(e,t){var n=this,i=this.items[e];if(!i.row){i.row=this.cache.alloc(i.templateId)\n;var o=this.ariaProvider.getRole?this.ariaProvider.getRole(i.element):\"treeitem\";i.row.domNode.setAttribute(\"role\",o);var r=this.ariaProvider.isChecked?this.ariaProvider.isChecked(i.element):void 0;void 0!==r&&i.row.domNode.setAttribute(\"aria-checked\",String(r))}i.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(i.row.domNode,t):this.rowsContainer.appendChild(i.row.domNode)),this.updateItemInDOM(i,e);var s=this.renderers.get(i.templateId);if(!s)throw new Error(\"No renderer found for template id \"+i.templateId);s&&s.renderElement(i.element,e,i.row.templateData,i.size);var a=this.dnd.getDragURI(i.element);if(i.dragStartDisposable.dispose(),i.row.domNode.draggable=!!a,a){var u=l.domEvent(i.row.domNode,\"dragstart\");i.dragStartDisposable=u((function(e){return n.onDragStart(i.element,a,e)}))}this.horizontalScrolling&&(this.measureItemWidth(i),this.eventuallyUpdateScrollWidth())},e.prototype.measureItemWidth=function(e){if(e.row&&e.row.domNode){\ne.row.domNode.style.width=_.isFirefox?\"-moz-fit-content\":\"fit-content\",e.width=r.getContentWidth(e.row.domNode);var t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=\"\"}},e.prototype.updateItemInDOM=function(e,t){e.row.domNode.style.top=this.elementTop(t)+\"px\",e.row.domNode.style.height=e.size+\"px\",this.setRowLineHeight&&(e.row.domNode.style.lineHeight=e.size+\"px\"),e.row.domNode.setAttribute(\"data-index\",\"\"+t),e.row.domNode.setAttribute(\"data-last-element\",t===this.length-1?\"true\":\"false\"),e.row.domNode.setAttribute(\"aria-setsize\",String(this.ariaProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute(\"aria-posinset\",String(this.ariaProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute(\"id\",this.getElementDomId(t)),r.toggleClass(e.row.domNode,\"drop-target\",e.dropTarget)},e.prototype.removeItemFromDOM=function(e){var t=this.items[e]\n;t.dragStartDisposable.dispose();var n=this.renderers.get(t.templateId);n&&n.disposeElement&&n.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null,this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()},e.prototype.getScrollTop=function(){return this.scrollableElement.getScrollPosition().scrollTop},e.prototype.setScrollTop=function(e){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e})},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.getScrollTop()},set:function(e){this.setScrollTop(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"scrollHeight\",{get:function(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onMouseClick\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"click\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDblClick\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"dblclick\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseMiddleClick\",{get:function(){var e=this;return s.Event.filter(s.Event.map(l.domEvent(this.domNode,\"auxclick\"),(function(t){return e.toMouseEvent(t)})),(function(e){return 1===e.browserEvent.button}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDown\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"mousedown\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onContextMenu\",{get:function(){var e=this\n;return s.Event.map(l.domEvent(this.domNode,\"contextmenu\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchStart\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"touchstart\"),(function(t){return e.toTouchEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTap\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.rowsContainer,o.EventType.Tap),(function(t){return e.toGestureEvent(t)}))},enumerable:!0,configurable:!0}),e.prototype.toMouseEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toTouchEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toGestureEvent=function(e){\nvar t=this.getItemIndexFromEventTarget(e.initialTarget||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toDragEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.onScroll=function(e){try{this.render(e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height)}catch(t){throw console.error(\"Got bad scroll event:\",e),t}},e.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},e.prototype.onDragStart=function(e,t,n){if(n.dataTransfer){var i=this.dnd.getDragElements(e);if(n.dataTransfer.effectAllowed=\"copyMove\",n.dataTransfer.setData(m.DataTransfers.RESOURCES,JSON.stringify([t])),n.dataTransfer.setDragImage){var o=void 0;this.dnd.getDragLabel&&(o=this.dnd.getDragLabel(i,n)),void 0===o&&(o=String(i.length))\n;var s=r.$(\".monaco-drag-image\");s.textContent=o,document.body.appendChild(s),n.dataTransfer.setDragImage(s,-10,-10),setTimeout((function(){return document.body.removeChild(s)}),0)}this.currentDragData=new C(i),m.StaticDND.CurrentDragAndDropData=new b(i),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,n)}},e.prototype.onDragOver=function(e){var t=this;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),m.StaticDND.CurrentDragAndDropData&&\"vscode-ui\"===m.StaticDND.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(m.StaticDND.CurrentDragAndDropData)this.currentDragData=m.StaticDND.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new S}var n,o,s,a=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop=\"boolean\"==typeof a?a:a.accept,\n!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;if(e.browserEvent.dataTransfer.dropEffect=\"boolean\"!=typeof a&&0===a.effect?\"copy\":\"move\",n=\"boolean\"!=typeof a&&a.feedback?a.feedback:void 0===e.index?[-1]:[e.index],n=-1===(n=f.distinct(n).filter((function(e){return e>=-1&&e<t.length})).sort((function(e,t){return e-t})))[0]?[-1]:n,o=this.currentDragFeedback,s=n,Array.isArray(o)&&Array.isArray(s)?f.equals(o,s):o===s)return!0;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),-1===n[0])r.addClass(this.domNode,\"drop-target\"),r.addClass(this.rowsContainer,\"drop-target\"),this.currentDragFeedbackDisposable=i.toDisposable((function(){r.removeClass(t.domNode,\"drop-target\"),r.removeClass(t.rowsContainer,\"drop-target\")}));else{for(var l=0,u=n;l<u.length;l++){var d=u[l],c=this.items[d];c.dropTarget=!0,c.row&&c.row.domNode&&r.addClass(c.row.domNode,\"drop-target\")}this.currentDragFeedbackDisposable=i.toDisposable((function(){\nfor(var e=0,i=n;e<i.length;e++){var o=i[e],s=t.items[o];s.dropTarget=!1,s.row&&s.row.domNode&&r.removeClass(s.row.domNode,\"drop-target\")}}))}return!0},e.prototype.onDragLeave=function(){var e=this;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=v.disposableTimeout((function(){return e.clearDragOverFeedback()}),100)},e.prototype.onDrop=function(e){if(this.canDrop){var t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,m.StaticDND.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}},e.prototype.onDragEnd=function(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,m.StaticDND.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e.prototype.clearDragOverFeedback=function(){this.currentDragFeedback=void 0,\nthis.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=i.Disposable.None},e.prototype.setupDragAndDropScrollTopAnimation=function(e){var t=this;if(!this.dragOverAnimationDisposable){var n=r.getTopLeftOffset(this.domNode).top;this.dragOverAnimationDisposable=r.animate(this.animateDragAndDropScrollTop.bind(this,n))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=v.disposableTimeout((function(){t.dragOverAnimationDisposable&&(t.dragOverAnimationDisposable.dispose(),t.dragOverAnimationDisposable=void 0)}),1e3),this.dragOverMouseY=e.pageY},e.prototype.animateDragAndDropScrollTop=function(e){if(void 0!==this.dragOverMouseY){var t=this.dragOverMouseY-e,n=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>n&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-n))))}},e.prototype.teardownDragAndDropScrollTopAnimation=function(){this.dragOverAnimationStopDisposable.dispose(),\nthis.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},e.prototype.getItemIndexFromEventTarget=function(e){for(var t=e;t instanceof HTMLElement&&t!==this.rowsContainer;){var n=t.getAttribute(\"data-index\");if(n){var i=Number(n);if(!isNaN(i))return i}t=t.parentElement}},e.prototype.getRenderRange=function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}},e.prototype._rerender=function(e,t){var n,i,o=this.getRenderRange(e,t);e===this.elementTop(o.start)?(n=o.start,i=0):o.end-o.start>1&&(n=o.start+1,i=this.elementTop(n)-e);for(var r=0;;){for(var s=this.getRenderRange(e,t),a=!1,l=s.start;l<s.end;l++){var u=this.probeDynamicHeight(l);0!==u&&this.rangeMap.splice(l,1,[this.items[l]]),r+=u,a=a||0!==u}if(!a){0!==r&&this.eventuallyUpdateScrollDimensions();for(var d=0,c=g.Range.relativeComplement(o,s);d<c.length;d++)for(l=(f=c[d]).start;l<f.end;l++)this.items[l].row&&this.removeItemFromDOM(l)\n;for(var h=0,p=g.Range.relativeComplement(s,o);h<p.length;h++){var f;for(l=(f=p[h]).start;l<f.end;l++){var m=l+1,v=m<this.items.length?this.items[m].row:null,_=v?v.domNode:null;this.insertItemInDOM(l,_)}}for(l=s.start;l<s.end;l++)this.items[l].row&&this.updateItemInDOM(this.items[l],l);return\"number\"==typeof n&&(this.scrollTop=this.elementTop(n)-i),void this._onDidChangeContentHeight.fire(this.contentHeight)}}},e.prototype.probeDynamicHeight=function(e){var t=this.items[e];if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth)return 0;var n=t.size,i=this.cache.alloc(t.templateId);i.domNode.style.height=\"\",this.rowsContainer.appendChild(i.domNode);var o=this.renderers.get(t.templateId);return o&&(o.renderElement(t.element,e,i.templateData,void 0),o.disposeElement&&o.disposeElement(t.element,e,i.templateData,void 0)),t.size=i.domNode.offsetHeight,this.virtualDelegate.setDynamicHeight&&this.virtualDelegate.setDynamicHeight(t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,\nthis.rowsContainer.removeChild(i.domNode),this.cache.release(i),t.size-n},e.prototype.getNextToLastElement=function(e){var t=e[e.length-1];if(!t)return null;var n=this.items[t.end];return n&&n.row?n.row.domNode:null},e.prototype.getElementDomId=function(e){return this.domId+\"_\"+e},e.prototype.dispose=function(){if(this.items){for(var e=0,t=this.items;e<t.length;e++){var n=t[e];if(n.row){var o=this.renderers.get(n.row.templateId);o&&o.disposeTemplate(n.row.templateData)}}this.items=[]}this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),i.dispose(this.disposables)},e.InstanceCount=0,h([p.memoize],e.prototype,\"onMouseClick\",null),h([p.memoize],e.prototype,\"onMouseDblClick\",null),h([p.memoize],e.prototype,\"onMouseMiddleClick\",null),h([p.memoize],e.prototype,\"onMouseDown\",null),h([p.memoize],e.prototype,\"onContextMenu\",null),h([p.memoize],e.prototype,\"onTouchStart\",null),h([p.memoize],e.prototype,\"onTap\",null),e}();t.ListView=w})),\ndefine(n[277],i([0,1,16,24,2,6,126,57,5,45,56,255,54,53,257,254,4,98,137,15]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this.context=e,this._cache={\"\":[]}}return e.prototype.alloc=function(e){var t=this.cache(e).pop();if(!t){var n=document.createElement(\"div\");n.className=\"content\";var i=document.createElement(\"div\");i.appendChild(n);var o=null;try{o=this.context.renderer.renderTemplate(this.context.tree,e,n)}catch(e){console.error(\"Tree usage error: exception while rendering template\"),console.error(e)}t={element:i,templateId:e,templateData:o}}return t},e.prototype.release=function(e,t){!function(e){try{e.parentElement.removeChild(e)}catch(e){}}(t.element),this.cache(e).push(t)},e.prototype.cache=function(e){return this._cache[e]||(this._cache[e]=[])},e.prototype.garbageCollect=function(){var e=this;this._cache&&Object.keys(this._cache).forEach((function(t){e._cache[t].forEach((function(n){\ne.context.renderer.disposeTemplate(e.context.tree,t,n.templateData),n.element=null,n.templateData=null})),delete e._cache[t]}))},e.prototype.dispose=function(){this.garbageCollect(),this._cache=null},e}();t.RowCache=b;var S=function(){function e(e,t){var n=this;this.width=0,this.needsRender=!1,this.uri=null,this.unbindDragStart=o.Disposable.None,this._draggable=!1,this.context=e,this.model=t,this.id=this.model.id,this.row=null,this.top=0,this.height=t.getHeight(),this._styles={},t.getAllTraits().forEach((function(e){return n._styles[e]=!0})),t.isExpanded()&&this.addClass(\"expanded\")}return Object.defineProperty(e.prototype,\"expanded\",{set:function(e){e?this.addClass(\"expanded\"):this.removeClass(\"expanded\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"loading\",{set:function(e){e?this.addClass(\"codicon-loading\"):this.removeClass(\"codicon-loading\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"draggable\",{get:function(){return this._draggable},set:function(e){\nthis._draggable=e,this.render(!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"dropTarget\",{set:function(e){e?this.addClass(\"drop-target\"):this.removeClass(\"drop-target\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"element\",{get:function(){return this.row&&this.row.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"templateId\",{get:function(){return this._templateId||(this._templateId=this.context.renderer.getTemplateId&&this.context.renderer.getTemplateId(this.context.tree,this.model.getElement()))},enumerable:!0,configurable:!0}),e.prototype.addClass=function(e){this._styles[e]=!0,this.render(!0)},e.prototype.removeClass=function(e){delete this._styles[e],this.render(!0)},e.prototype.render=function(e){var t=this;if(void 0===e&&(e=!1),this.model&&this.element){var n=[\"monaco-tree-row\"];n.push.apply(n,Object.keys(this._styles)),this.model.hasChildren()&&n.push(\"has-children\"),this.element.className=n.join(\" \"),\nthis.element.draggable=this.draggable,this.element.style.height=this.height+\"px\",this.element.setAttribute(\"role\",\"treeitem\");var o=this.context.accessibilityProvider,r=o.getAriaLabel(this.context.tree,this.model.getElement());if(r&&this.element.setAttribute(\"aria-label\",r),o.getPosInSet&&o.getSetSize&&(this.element.setAttribute(\"aria-setsize\",o.getSetSize()),this.element.setAttribute(\"aria-posinset\",o.getPosInSet(this.context.tree,this.model.getElement()))),this.model.hasTrait(\"focused\")){var a=u.safeBtoa(this.model.id);this.element.setAttribute(\"aria-selected\",\"true\"),this.element.setAttribute(\"id\",a)}else this.element.setAttribute(\"aria-selected\",\"false\"),this.element.removeAttribute(\"id\");this.model.hasChildren()?this.element.setAttribute(\"aria-expanded\",String(!!this._styles.expanded)):this.element.removeAttribute(\"aria-expanded\"),this.element.setAttribute(\"aria-level\",String(this.model.getDepth())),\nthis.context.options.paddingOnRow?this.element.style.paddingLeft=this.context.options.twistiePixels+(this.model.getDepth()-1)*this.context.options.indentPixels+\"px\":(this.element.style.paddingLeft=(this.model.getDepth()-1)*this.context.options.indentPixels+\"px\",this.row.element.firstElementChild.style.paddingLeft=this.context.options.twistiePixels+\"px\");var l=this.context.dnd.getDragURI(this.context.tree,this.model.getElement());if(l!==this.uri&&(this.unbindDragStart&&this.unbindDragStart.dispose(),l?(this.uri=l,this.draggable=!0,this.unbindDragStart=s.addDisposableListener(this.element,\"dragstart\",(function(e){t.onDragStart(e)}))):this.uri=null),!e&&this.element){var d=0;if(this.context.horizontalScrolling){var c=window.getComputedStyle(this.element);d=parseFloat(c.paddingLeft)}this.context.horizontalScrolling&&(this.element.style.width=i.isFirefox?\"-moz-fit-content\":\"fit-content\");try{this.context.renderer.renderElement(this.context.tree,this.model.getElement(),this.templateId,this.row.templateData)\n}catch(e){console.error(\"Tree usage error: exception while rendering element\"),console.error(e)}this.context.horizontalScrolling&&(this.width=s.getContentWidth(this.element)+d,this.element.style.width=\"\")}}},e.prototype.insertInDOM=function(e,t){if(this.row||(this.row=this.context.cache.alloc(this.templateId),this.element[E.BINDING]=this),!this.element.parentElement){if(null===t)e.appendChild(this.element);else try{e.insertBefore(this.element,t)}catch(t){console.warn(\"Failed to locate previous tree element\"),e.appendChild(this.element)}this.render()}},e.prototype.removeFromDOM=function(){this.row&&(this.unbindDragStart.dispose(),this.uri=null,this.element[E.BINDING]=null,this.context.cache.release(this.templateId,this.row),this.row=null)},e.prototype.dispose=function(){this.row=null},e}();t.ViewItem=S;var w=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o.row={element:i,templateData:null,templateId:null},o}return r(t,e),t.prototype.render=function(){if(this.model&&this.element){\nvar e=[\"monaco-tree-wrapper\"];e.push.apply(e,Object.keys(this._styles)),this.model.hasChildren()&&e.push(\"has-children\"),this.element.className=e.join(\" \")}},t.prototype.insertInDOM=function(e,t){},t.prototype.removeFromDOM=function(){},t}(S);var E=function(e){function t(n,r){var a=e.call(this)||this;a.model=null,a.lastPointerType=\"\",a.lastClickTimeStamp=0,a.contentWidthUpdateDelayer=new C.Delayer(50),a.isRefreshing=!1,a.refreshingPreviousChildrenIds={},a.currentDragAndDropData=null,a.currentDropTarget=null,a.currentDropTargets=null,a.currentDropDisposable=o.Disposable.None,a.gestureDisposable=o.Disposable.None,a.dragAndDropScrollInterval=null,a.dragAndDropScrollTimeout=null,a.dragAndDropMouseY=null,a.highlightedItemWasDraggable=!1,a.onHiddenScrollTop=null,a._onDOMFocus=new v.Emitter,a.onDOMFocus=a._onDOMFocus.event,a._onDOMBlur=new v.Emitter,a._onDidScroll=new v.Emitter,t.counter++,a.instance=t.counter;var u=void 0===n.options.horizontalScrollMode?2:n.options.horizontalScrollMode;a.horizontalScrolling=2!==u,\na.context={dataSource:n.dataSource,renderer:n.renderer,controller:n.controller,dnd:n.dnd,filter:n.filter,sorter:n.sorter,tree:n.tree,accessibilityProvider:n.accessibilityProvider,options:n.options,cache:new b(n),horizontalScrolling:a.horizontalScrolling},a.modelListeners=[],a.viewListeners=[],a.items={},a.domNode=document.createElement(\"div\"),a.domNode.className=\"monaco-tree no-focused-item monaco-tree-instance-\"+a.instance,a.domNode.tabIndex=n.options.preventRootFocus?-1:0,a.styleElement=s.createStyleSheet(a.domNode),a.treeStyler=n.styler||new y.DefaultTreestyler(a.styleElement,\"monaco-tree-instance-\"+a.instance),a.domNode.setAttribute(\"role\",\"tree\"),a.context.options.ariaLabel&&a.domNode.setAttribute(\"aria-label\",a.context.options.ariaLabel),a.context.options.alwaysFocused&&s.addClass(a.domNode,\"focused\"),a.context.options.paddingOnRow||s.addClass(a.domNode,\"no-row-padding\"),a.wrapper=document.createElement(\"div\"),a.wrapper.className=\"monaco-tree-wrapper\",\na.scrollableElement=new g.ScrollableElement(a.wrapper,{alwaysConsumeMouseWheel:!0,horizontal:u,vertical:void 0!==n.options.verticalScrollMode?n.options.verticalScrollMode:1,useShadows:n.options.useShadows}),a.scrollableElement.onScroll((function(e){a.render(e.scrollTop,e.height,e.scrollLeft,e.width,e.scrollWidth),a._onDidScroll.fire()})),i.isIE?(a.wrapper.style.msTouchAction=\"none\",a.wrapper.style.msContentZooming=\"none\"):a.gestureDisposable=l.Gesture.addTarget(a.wrapper),a.rowsContainer=document.createElement(\"div\"),a.rowsContainer.className=\"monaco-tree-rows\",n.options.showTwistie&&(a.rowsContainer.className+=\" show-twisties\");var d=s.trackFocus(a.domNode);return a.viewListeners.push(d.onDidFocus((function(){return a.onFocus()}))),a.viewListeners.push(d.onDidBlur((function(){return a.onBlur()}))),a.viewListeners.push(d),a.viewListeners.push(s.addDisposableListener(a.domNode,\"keydown\",(function(e){return a.onKeyDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"keyup\",(function(e){\nreturn a.onKeyUp(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"mousedown\",(function(e){return a.onMouseDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"mouseup\",(function(e){return a.onMouseUp(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"auxclick\",(function(e){e&&1===e.button&&a.onMouseMiddleClick(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"click\",(function(e){return a.onClick(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"contextmenu\",(function(e){return a.onContextMenu(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,l.EventType.Tap,(function(e){return a.onTap(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,l.EventType.Change,(function(e){return a.onTouchChange(e)}))),i.isIE&&(a.viewListeners.push(s.addDisposableListener(a.wrapper,\"MSPointerDown\",(function(e){return a.onMsPointerDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"MSGestureTap\",(function(e){\nreturn a.onMsGestureTap(e)}))),a.viewListeners.push(s.addDisposableThrottledListener(a.wrapper,\"MSGestureChange\",(function(e){return a.onThrottledMsGestureChange(e)}),(function(e,t){t.stopPropagation(),t.preventDefault();var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n})))),a.viewListeners.push(s.addDisposableListener(window,\"dragover\",(function(e){return a.onDragOver(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"drop\",(function(e){return a.onDrop(e)}))),a.viewListeners.push(s.addDisposableListener(window,\"dragend\",(function(e){return a.onDragEnd(e)}))),a.viewListeners.push(s.addDisposableListener(window,\"dragleave\",(function(e){return a.onDragOver(e)}))),a.wrapper.appendChild(a.rowsContainer),a.domNode.appendChild(a.scrollableElement.getDomNode()),r.appendChild(a.domNode),a.lastRenderTop=0,a.lastRenderHeight=0,a.didJustPressContextMenuKey=!1,a.currentDropTarget=null,a.currentDropTargets=[],\na.shouldInvalidateDropReaction=!1,a.dragAndDropScrollInterval=null,a.dragAndDropScrollTimeout=null,a.onRowsChanged(),a.layout(),a.setupMSGesture(),a.applyStyles(n.options),a}return r(t,e),t.prototype.applyStyles=function(e){this.treeStyler.style(e)},t.prototype.createViewItem=function(e){return new S(this.context,e)},t.prototype.getHTMLElement=function(){return this.domNode},t.prototype.focus=function(){this.domNode.focus()},t.prototype.isFocused=function(){return document.activeElement===this.domNode},t.prototype.blur=function(){this.domNode.blur()},t.prototype.setupMSGesture=function(){var e=this;window.MSGesture&&(this.msGesture=new MSGesture,setTimeout((function(){return e.msGesture.target=e.wrapper}),100))},t.prototype.isTreeVisible=function(){return null===this.onHiddenScrollTop},t.prototype.layout=function(e,t){this.isTreeVisible()&&(this.viewHeight=e||s.getContentHeight(this.wrapper),this.scrollHeight=this.getContentHeight(),\nthis.horizontalScrolling&&(this.viewWidth=t||s.getContentWidth(this.wrapper)))},t.prototype.render=function(e,t,n,i,o){var r,s,a=e,l=e+t,u=this.lastRenderTop+this.lastRenderHeight;for(r=this.indexAfter(l)-1,s=this.indexAt(Math.max(u,a));r>=s;r--)this.insertItemInDOM(this.itemAtIndex(r));for(r=Math.min(this.indexAt(this.lastRenderTop),this.indexAfter(l))-1,s=this.indexAt(a);r>=s;r--)this.insertItemInDOM(this.itemAtIndex(r));for(r=this.indexAt(this.lastRenderTop),s=Math.min(this.indexAt(a),this.indexAfter(u));r<s;r++)this.removeItemFromDOM(this.itemAtIndex(r));for(r=Math.max(this.indexAfter(l),this.indexAt(this.lastRenderTop)),s=this.indexAfter(u);r<s;r++)this.removeItemFromDOM(this.itemAtIndex(r));var d=this.itemAtIndex(this.indexAt(a));d&&(this.rowsContainer.style.top=d.top-a+\"px\"),this.horizontalScrolling&&(this.rowsContainer.style.left=-n+\"px\",this.rowsContainer.style.width=Math.max(o,i)+\"px\"),this.lastRenderTop=a,this.lastRenderHeight=l-a},t.prototype.setModel=function(e){this.releaseModel(),this.model=e,\nthis.model.onRefresh(this.onRefreshing,this,this.modelListeners),this.model.onDidRefresh(this.onRefreshed,this,this.modelListeners),this.model.onSetInput(this.onClearingInput,this,this.modelListeners),this.model.onDidSetInput(this.onSetInput,this,this.modelListeners),this.model.onDidFocus(this.onModelFocusChange,this,this.modelListeners),this.model.onRefreshItemChildren(this.onItemChildrenRefreshing,this,this.modelListeners),this.model.onDidRefreshItemChildren(this.onItemChildrenRefreshed,this,this.modelListeners),this.model.onDidRefreshItem(this.onItemRefresh,this,this.modelListeners),this.model.onExpandItem(this.onItemExpanding,this,this.modelListeners),this.model.onDidExpandItem(this.onItemExpanded,this,this.modelListeners),this.model.onCollapseItem(this.onItemCollapsing,this,this.modelListeners),this.model.onDidRevealItem(this.onItemReveal,this,this.modelListeners),this.model.onDidAddTraitItem(this.onItemAddTrait,this,this.modelListeners),\nthis.model.onDidRemoveTraitItem(this.onItemRemoveTrait,this,this.modelListeners)},t.prototype.onRefreshing=function(){this.isRefreshing=!0},t.prototype.onRefreshed=function(){this.isRefreshing=!1,this.onRowsChanged()},t.prototype.onRowsChanged=function(e){void 0===e&&(e=this.scrollTop),this.isRefreshing||(this.scrollTop=e,this.updateScrollWidth())},t.prototype.updateScrollWidth=function(){var e=this;this.horizontalScrolling&&this.contentWidthUpdateDelayer.trigger((function(){for(var t=0,n=0,i=Object.keys(e.items);n<i.length;n++){var o=i[n];t=Math.max(t,e.items[o].width)}e.scrollWidth=t+10}))},t.prototype.focusNextPage=function(e){var t=this,n=this.indexAt(this.scrollTop+this.viewHeight);n=0===n?0:n-1;var i=this.itemAtIndex(n).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop+=this.viewHeight,this.scrollTop!==o&&setTimeout((function(){t.focusNextPage(e)}),0)}},t.prototype.focusPreviousPage=function(e){var t,n=this\n;t=0===this.scrollTop?this.indexAt(this.scrollTop):this.indexAfter(this.scrollTop-1);var i=this.itemAtIndex(t).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop-=this.viewHeight,this.scrollTop!==o&&setTimeout((function(){n.focusPreviousPage(e)}),0)}},Object.defineProperty(t.prototype,\"viewHeight\",{get:function(){return this.scrollableElement.getScrollDimensions().height},set:function(e){this.scrollableElement.setScrollDimensions({height:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollHeight\",{set:function(e){e+=this.horizontalScrolling?10:0,this.scrollableElement.setScrollDimensions({scrollHeight:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"viewWidth\",{get:function(){return this.scrollableElement.getScrollDimensions().width},set:function(e){this.scrollableElement.setScrollDimensions({width:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollWidth\",{set:function(e){\nthis.scrollableElement.setScrollDimensions({scrollWidth:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollTop\",{get:function(){return this.scrollableElement.getScrollPosition().scrollTop},set:function(e){var t=this.getContentHeight()+(this.horizontalScrolling?10:0);this.scrollableElement.setScrollDimensions({scrollHeight:t}),this.scrollableElement.setScrollPosition({scrollTop:e})},enumerable:!0,configurable:!0}),t.prototype.onClearingInput=function(e){var t=e.item;t&&(this.onRemoveItems(new p.MappedIterator(t.getNavigator(),(function(e){return e&&e.id}))),this.onRowsChanged())},t.prototype.onSetInput=function(e){this.context.cache.garbageCollect(),this.inputItem=new w(this.context,e.item,this.wrapper)},t.prototype.onItemChildrenRefreshing=function(e){var n=e.item,i=this.items[n.id];if(i&&this.context.options.showLoading&&(i.loadingTimer=setTimeout((function(){i.loadingTimer=0,i.loading=!0}),t.LOADING_DECORATION_DELAY)),!e.isNested){\nfor(var o=[],r=n.getNavigator(),s=void 0;s=r.next();)o.push(s.id);this.refreshingPreviousChildrenIds[n.id]=o}},t.prototype.onItemChildrenRefreshed=function(e){var t=this,n=e.item,i=this.items[n.id];if(i&&(i.loadingTimer&&(clearTimeout(i.loadingTimer),i.loadingTimer=0),i.loading=!1),!e.isNested){for(var o=this.refreshingPreviousChildrenIds[n.id],r=[],s=n.getNavigator(),l=void 0;l=s.next();)r.push(l);var u=Math.abs(o.length-r.length)>1e3,d=[],c=!1;if(!u)c=(d=new a.LcsDiff({getElements:function(){return o}},{getElements:function(){return r.map((function(e){return e.id}))}},null).ComputeDiff(!1).changes).some((function(e){if(e.modifiedLength>0)for(var n=e.modifiedStart,i=e.modifiedStart+e.modifiedLength;n<i;n++)if(t.items.hasOwnProperty(r[n].id))return!0;return!1}));if(!u&&!c&&d.length<50)for(var h=0,g=d;h<g.length;h++){var f=g[h];if(f.originalLength>0&&this.onRemoveItems(new p.ArrayIterator(o,f.originalStart,f.originalStart+f.originalLength)),f.modifiedLength>0){var m=r[f.modifiedStart-1]||n\n;m=m.getDepth()>0?m:null,this.onInsertItems(new p.ArrayIterator(r,f.modifiedStart,f.modifiedStart+f.modifiedLength),m?m.id:null)}}else(u||d.length)&&(this.onRemoveItems(new p.ArrayIterator(o)),this.onInsertItems(new p.ArrayIterator(r),n.getDepth()>0?n.id:null));(u||d.length)&&this.onRowsChanged()}},t.prototype.onItemRefresh=function(e){this.onItemsRefresh([e])},t.prototype.onItemsRefresh=function(e){var t=this;this.onRefreshItemSet(e.filter((function(e){return t.items.hasOwnProperty(e.id)}))),this.onRowsChanged()},t.prototype.onItemExpanding=function(e){var t=this.items[e.item.id];t&&(t.expanded=!0)},t.prototype.onItemExpanded=function(e){var t=e.item,n=this.items[t.id];if(n){n.expanded=!0;var i=this.onInsertItems(t.getNavigator(),t.id)||0,o=this.scrollTop;n.top+n.height<=this.scrollTop&&(o+=i),this.onRowsChanged(o)}},t.prototype.onItemCollapsing=function(e){var t=e.item,n=this.items[t.id];n&&(n.expanded=!1,this.onRemoveItems(new p.MappedIterator(t.getNavigator(),(function(e){return e&&e.id}))),\nthis.onRowsChanged())},t.prototype.onItemReveal=function(e){var t=e.item,n=e.relativeTop,i=this.items[t.id];if(i)if(null!==n){n=(n=n<0?0:n)>1?1:n;var o=i.height-this.viewHeight;this.scrollTop=o*n+i.top}else{var r=i.top+i.height,s=this.scrollTop+this.viewHeight;i.top<this.scrollTop?this.scrollTop=i.top:r>=s&&(this.scrollTop=r-this.viewHeight)}},t.prototype.onItemAddTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.addClass(n),\"highlighted\"===n&&(s.addClass(this.domNode,n),i&&(this.highlightedItemWasDraggable=!!i.draggable,i.draggable&&(i.draggable=!1)))},t.prototype.onItemRemoveTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.removeClass(n),\"highlighted\"===n&&(s.removeClass(this.domNode,n),this.highlightedItemWasDraggable&&(i.draggable=!0),this.highlightedItemWasDraggable=!1)},t.prototype.onModelFocusChange=function(){var e=this.model&&this.model.getFocus();s.toggleClass(this.domNode,\"no-focused-item\",!e),\ne?this.domNode.setAttribute(\"aria-activedescendant\",u.safeBtoa(this.context.dataSource.getId(this.context.tree,e))):this.domNode.removeAttribute(\"aria-activedescendant\")},t.prototype.onInsertItem=function(e){var t=this;e.onDragStart=function(n){t.onDragStart(e,n)},e.needsRender=!0,this.refreshViewItem(e),this.items[e.id]=e},t.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1),e.needsRender=e.needsRender||t,this.refreshViewItem(e)},t.prototype.onRemoveItem=function(e){this.removeItemFromDOM(e),e.dispose(),delete this.items[e.id]},t.prototype.refreshViewItem=function(e){e.render(),this.shouldBeRendered(e)?this.insertItemInDOM(e):this.removeItemFromDOM(e)},t.prototype.onClick=function(e){if(!this.lastPointerType||\"mouse\"===this.lastPointerType){var t=new d.StandardMouseEvent(e),n=this.getItemAround(t.target);n&&(i.isIE&&Date.now()-this.lastClickTimeStamp<300&&(t.detail=2),this.lastClickTimeStamp=Date.now(),this.context.controller.onClick(this.context.tree,n.model.getElement(),t))}},\nt.prototype.onMouseMiddleClick=function(e){if(this.context.controller.onMouseMiddleClick){var t=new d.StandardMouseEvent(e),n=this.getItemAround(t.target);n&&this.context.controller.onMouseMiddleClick(this.context.tree,n.model.getElement(),t)}},t.prototype.onMouseDown=function(e){if(this.didJustPressContextMenuKey=!1,this.context.controller.onMouseDown&&(!this.lastPointerType||\"mouse\"===this.lastPointerType)){var t=new d.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseDown(this.context.tree,i.model.getElement(),t)}}},t.prototype.onMouseUp=function(e){if(this.context.controller.onMouseUp&&(!this.lastPointerType||\"mouse\"===this.lastPointerType)){var t=new d.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseUp(this.context.tree,i.model.getElement(),t)}}},t.prototype.onTap=function(e){var t=this.getItemAround(e.initialTarget)\n;t&&this.context.controller.onTap(this.context.tree,t.model.getElement(),e)},t.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},t.prototype.onContextMenu=function(e){var t,n;if(e instanceof KeyboardEvent||this.didJustPressContextMenuKey){this.didJustPressContextMenuKey=!1;var i=new c.StandardKeyboardEvent(e),o=void 0;if(n=this.model.getFocus()){var r=this.context.dataSource.getId(this.context.tree,n),a=this.items[r];o=s.getDomNodePagePosition(a.element)}else n=this.model.getInput(),o=s.getDomNodePagePosition(this.inputItem.element);t=new m.KeyboardContextMenuEvent(o.left+o.width,o.top,i)}else{var l=new d.StandardMouseEvent(e),u=this.getItemAround(l.target);if(!u)return;n=u.model.getElement(),t=new m.MouseContextMenuEvent(l)}this.context.controller.onContextMenu(this.context.tree,n,t)},t.prototype.onKeyDown=function(e){var t=new c.StandardKeyboardEvent(e);this.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode,\nt.target&&t.target.tagName&&\"input\"===t.target.tagName.toLowerCase()||(this.didJustPressContextMenuKey&&(t.preventDefault(),t.stopPropagation()),this.context.controller.onKeyDown(this.context.tree,t))},t.prototype.onKeyUp=function(e){this.didJustPressContextMenuKey&&this.onContextMenu(e),this.didJustPressContextMenuKey=!1,this.context.controller.onKeyUp(this.context.tree,new c.StandardKeyboardEvent(e))},t.prototype.onDragStart=function(e,t){if(!this.model.getHighlight()){var n,i=e.model.getElement(),o=this.model.getSelection();if(n=o.indexOf(i)>-1?o:[i],t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setData(_.DataTransfers.RESOURCES,JSON.stringify([e.uri])),t.dataTransfer.setDragImage){var r=void 0;r=this.context.dnd.getDragLabel?this.context.dnd.getDragLabel(this.context.tree,n):String(n.length);var s=document.createElement(\"div\");s.className=\"monaco-tree-drag-image\",s.textContent=r,document.body.appendChild(s),t.dataTransfer.setDragImage(s,-10,-10),setTimeout((function(){\nreturn document.body.removeChild(s)}),0)}this.currentDragAndDropData=new h.ElementsDragAndDropData(n),_.StaticDND.CurrentDragAndDropData=new h.ExternalElementsDragAndDropData(n),this.context.dnd.onDragStart(this.context.tree,this.currentDragAndDropData,new d.DragMouseEvent(t))}},t.prototype.setupDragAndDropScrollInterval=function(){var e=this,t=s.getTopLeftOffset(this.wrapper).top;this.dragAndDropScrollInterval||(this.dragAndDropScrollInterval=window.setInterval((function(){if(null!==e.dragAndDropMouseY){var n=e.dragAndDropMouseY-t,i=0,o=e.viewHeight-35;n<35?i=Math.max(-14,.2*(n-35)):n>o&&(i=Math.min(14,.2*(n-o))),e.scrollTop+=i}}),10),this.cancelDragAndDropScrollTimeout(),this.dragAndDropScrollTimeout=window.setTimeout((function(){e.cancelDragAndDropScrollInterval(),e.dragAndDropScrollTimeout=null}),1e3))},t.prototype.cancelDragAndDropScrollInterval=function(){this.dragAndDropScrollInterval&&(window.clearInterval(this.dragAndDropScrollInterval),this.dragAndDropScrollInterval=null),\nthis.cancelDragAndDropScrollTimeout()},t.prototype.cancelDragAndDropScrollTimeout=function(){this.dragAndDropScrollTimeout&&(window.clearTimeout(this.dragAndDropScrollTimeout),this.dragAndDropScrollTimeout=null)},t.prototype.onDragOver=function(e){var t=this;e.preventDefault();var n,i=new d.DragMouseEvent(e),r=this.getItemAround(i.target);if(!r||0===i.posx&&0===i.posy&&i.browserEvent.type===s.EventType.DRAG_LEAVE)return this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[],this.currentDropDisposable.dispose()),this.cancelDragAndDropScrollInterval(),this.currentDropTarget=null,this.currentDropElement=null,this.dragAndDropMouseY=null,!1;if(this.setupDragAndDropScrollInterval(),this.dragAndDropMouseY=i.posy,!this.currentDragAndDropData)if(_.StaticDND.CurrentDragAndDropData)this.currentDragAndDropData=_.StaticDND.CurrentDragAndDropData;else{if(!i.dataTransfer.types)return!1;this.currentDragAndDropData=new h.DesktopDragAndDropData}\nthis.currentDragAndDropData.update(i.browserEvent.dataTransfer);var a,l=r.model;do{if(n=l?l.getElement():this.model.getInput(),!(a=this.context.dnd.onDragOver(this.context.tree,this.currentDragAndDropData,n,i))||1!==a.bubble)break;l=l&&l.parent}while(l);if(!l)return this.currentDropElement=null,!1;var u=a&&a.accept;u?(this.currentDropElement=l.getElement(),i.preventDefault(),i.dataTransfer.dropEffect=0===a.effect?\"copy\":\"move\"):this.currentDropElement=null;var c,p,g=l.id===this.inputItem.id?this.inputItem:this.items[l.id];if((this.shouldInvalidateDropReaction||this.currentDropTarget!==g||(c=this.currentDropElementReaction,p=a,!(!c&&!p||c&&p&&c.accept===p.accept&&c.bubble===p.bubble&&c.effect===p.effect)))&&(this.shouldInvalidateDropReaction=!1,this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[],this.currentDropDisposable.dispose()),this.currentDropTarget=g,this.currentDropElementReaction=a,u)){\nif(this.currentDropTarget&&(this.currentDropTarget.dropTarget=!0,this.currentDropTargets.push(this.currentDropTarget)),0===a.bubble)for(var f=l.getNavigator(),m=void 0;m=f.next();)(r=this.items[m.id])&&(r.dropTarget=!0,this.currentDropTargets.push(r));if(a.autoExpand){var v=C.timeout(500);this.currentDropDisposable=o.toDisposable((function(){return v.cancel()})),v.then((function(){return t.context.tree.expand(t.currentDropElement)})).then((function(){return t.shouldInvalidateDropReaction=!0}))}}return!0},t.prototype.onDrop=function(e){if(this.currentDropElement){var t=new d.DragMouseEvent(e);t.preventDefault(),this.currentDragAndDropData.update(t.browserEvent.dataTransfer),this.context.dnd.drop(this.context.tree,this.currentDragAndDropData,this.currentDropElement,t),this.onDragEnd(e)}this.cancelDragAndDropScrollInterval()},t.prototype.onDragEnd=function(e){this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[]),\nthis.currentDropDisposable.dispose(),this.cancelDragAndDropScrollInterval(),this.currentDragAndDropData=null,_.StaticDND.CurrentDragAndDropData=void 0,this.currentDropElement=null,this.currentDropTarget=null,this.dragAndDropMouseY=null},t.prototype.onFocus=function(){this.context.options.alwaysFocused||s.addClass(this.domNode,\"focused\"),this._onDOMFocus.fire()},t.prototype.onBlur=function(){this.context.options.alwaysFocused||s.removeClass(this.domNode,\"focused\"),this.domNode.removeAttribute(\"aria-activedescendant\"),this._onDOMBlur.fire()},t.prototype.onMsPointerDown=function(e){if(this.msGesture){var t=e.pointerType;t!==(e.MSPOINTER_TYPE_MOUSE||\"mouse\")?t===(e.MSPOINTER_TYPE_TOUCH||\"touch\")&&(this.lastPointerType=\"touch\",e.stopPropagation(),e.preventDefault(),this.msGesture.addPointer(e.pointerId)):this.lastPointerType=\"mouse\"}},t.prototype.onThrottledMsGestureChange=function(e){this.scrollTop-=e.translationY},t.prototype.onMsGestureTap=function(e){\ne.initialTarget=document.elementFromPoint(e.clientX,e.clientY),this.onTap(e)},t.prototype.insertItemInDOM=function(e){var t=null,n=this.itemAfter(e);n&&n.element&&(t=n.element),e.insertInDOM(this.rowsContainer,t)},t.prototype.removeItemFromDOM=function(e){e&&e.removeFromDOM()},t.prototype.shouldBeRendered=function(e){return e.top<this.lastRenderTop+this.lastRenderHeight&&e.top+e.height>this.lastRenderTop},t.prototype.getItemAround=function(e){var n=this.inputItem,i=e;do{if(i[t.BINDING]&&(n=i[t.BINDING]),i===this.wrapper||i===this.domNode)return n;if(i===this.scrollableElement.getDomNode()||i===document.body)return}while(i=i.parentElement)},t.prototype.releaseModel=function(){this.model&&(this.modelListeners=o.dispose(this.modelListeners),this.model=null)},t.prototype.dispose=function(){var t=this;this.scrollableElement.dispose(),this.releaseModel(),this.viewListeners=o.dispose(this.viewListeners),this._onDOMFocus.dispose(),this._onDOMBlur.dispose(),\nthis.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.items&&Object.keys(this.items).forEach((function(e){return t.items[e].removeFromDOM()})),this.context.cache&&this.context.cache.dispose(),this.gestureDisposable.dispose(),e.prototype.dispose.call(this)},t.BINDING=\"monaco-tree-row\",t.LOADING_DECORATION_DELAY=800,t.counter=0,t}(f.HeightMap);t.TreeView=E})),define(n[278],i([9]),{});var p;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[279],i([0,1,2,4,21,6,131,19,104,27,52,278]),(function(e,t,n,i,o,s,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p,g={separatorBorder:c.Color.transparent},f=function(){function e(e,t,n,i){this.container=e,this.view=t,this.disposable=i,this._cachedVisibleSize=void 0,\"number\"==typeof n?(this._size=n,this._cachedVisibleSize=void 0,\ns.addClass(e,\"visible\")):(this._size=0,this._cachedVisibleSize=n.cachedVisibleSize)}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},set:function(e){this._size=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return void 0===this._cachedVisibleSize},enumerable:!0,configurable:!0}),e.prototype.setVisible=function(e,t){e!==this.visible&&(e?(this.size=l.clamp(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=\"number\"==typeof t?t:this.size,this.size=0),s.toggleClass(this.container,\"visible\",e),this.view.setVisible&&this.view.setVisible(e))},Object.defineProperty(e.prototype,\"minimumSize\",{get:function(){return this.visible?this.view.minimumSize:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"viewMinimumSize\",{get:function(){return this.view.minimumSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"maximumSize\",{\nget:function(){return this.visible?this.view.maximumSize:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"viewMaximumSize\",{get:function(){return this.view.maximumSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"priority\",{get:function(){return this.view.priority},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"snap\",{get:function(){return!!this.view.snap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"enabled\",{set:function(e){this.container.style.pointerEvents=e?null:\"none\"},enumerable:!0,configurable:!0}),e.prototype.layout=function(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)},e.prototype.dispose=function(){return this.disposable.dispose(),this.view},e}(),m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.layoutContainer=function(e){this.container.style.top=e+\"px\",this.container.style.height=this.size+\"px\"},t}(f),v=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.layoutContainer=function(e){this.container.style.left=e+\"px\",this.container.style.width=this.size+\"px\"},t}(f);!function(e){e[e.Idle=0]=\"Idle\",e[e.Busy=1]=\"Busy\"}(p||(p={})),function(e){e.Distribute={type:\"distribute\"},e.Split=function(e){return{type:\"split\",index:e}},e.Invisible=function(e){return{type:\"invisible\",cachedVisibleSize:e}}}(t.Sizing||(t.Sizing={}));var _=function(e){function t(t,n){void 0===n&&(n={});var r=e.call(this)||this;return r.size=0,r.contentSize=0,r.proportions=void 0,r.viewItems=[],r.sashItems=[],r.state=p.Idle,r._onDidSashChange=r._register(new i.Emitter),r.onDidSashChange=r._onDidSashChange.event,r._onDidSashReset=r._register(new i.Emitter),r._startSnappingEnabled=!0,r._endSnappingEnabled=!0,r.orientation=o.isUndefined(n.orientation)?0:n.orientation,r.inverseAltBehavior=!!n.inverseAltBehavior,r.proportionalLayout=!!o.isUndefined(n.proportionalLayout)||!!n.proportionalLayout,r.el=document.createElement(\"div\"),\ns.addClass(r.el,\"monaco-split-view2\"),s.addClass(r.el,0===r.orientation?\"vertical\":\"horizontal\"),t.appendChild(r.el),r.sashContainer=s.append(r.el,s.$(\".sash-container\")),r.viewContainer=s.append(r.el,s.$(\".split-view-container\")),r.style(n.styles||g),n.descriptor&&(r.size=n.descriptor.size,n.descriptor.views.forEach((function(e,t){var n=o.isUndefined(e.visible)||e.visible?e.size:{type:\"invisible\",cachedVisibleSize:e.size},i=e.view;r.doAddView(i,n,t,!0)})),r.contentSize=r.viewItems.reduce((function(e,t){return e+t.size}),0),r.saveProportions()),r}return r(t,e),Object.defineProperty(t.prototype,\"orthogonalStartSash\",{get:function(){return this._orthogonalStartSash},set:function(e){for(var t=0,n=this.sashItems;t<n.length;t++){n[t].sash.orthogonalStartSash=e}this._orthogonalStartSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalEndSash\",{get:function(){return this._orthogonalEndSash},set:function(e){for(var t=0,n=this.sashItems;t<n.length;t++){n[t].sash.orthogonalEndSash=e}\nthis._orthogonalEndSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"startSnappingEnabled\",{get:function(){return this._startSnappingEnabled},set:function(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"endSnappingEnabled\",{get:function(){return this._endSnappingEnabled},set:function(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())},enumerable:!0,configurable:!0}),t.prototype.style=function(e){e.separatorBorder.isTransparent()?(s.removeClass(this.el,\"separator-border\"),this.el.style.removeProperty(\"--separator-border\")):(s.addClass(this.el,\"separator-border\"),this.el.style.setProperty(\"--separator-border\",e.separatorBorder.toString()))},t.prototype.addView=function(e,t,n){void 0===n&&(n=this.viewItems.length),this.doAddView(e,t,n,!1)},t.prototype.layout=function(e,t){var n=this,i=Math.max(this.size,this.contentSize);if(this.size=e,\nthis.layoutContext=t,this.proportions)for(var o=0;o<this.viewItems.length;o++){var r=this.viewItems[o];r.size=l.clamp(Math.round(this.proportions[o]*e),r.minimumSize,r.maximumSize)}else{var s=u.range(this.viewItems.length),a=s.filter((function(e){return 1===n.viewItems[e].priority})),d=s.filter((function(e){return 2===n.viewItems[e].priority}));this.resize(this.viewItems.length-1,e-i,void 0,a,d)}this.distributeEmptySpace(),this.layoutViews()},t.prototype.saveProportions=function(){var e=this;this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map((function(t){return t.size/e.contentSize})))},t.prototype.onSashStart=function(e){for(var t=this,i=e.sash,o=e.start,r=e.alt,s=0,a=this.viewItems;s<a.length;s++){a[s].enabled=!1}var l=u.firstIndex(this.sashItems,(function(e){return e.sash===i})),d=n.combinedDisposable(h.domEvent(document.body,\"keydown\")((function(e){return c(t.sashDragState.current,e.altKey)})),h.domEvent(document.body,\"keyup\")((function(){return c(t.sashDragState.current,!1)\n}))),c=function(e,n){var i,o,r=t.viewItems.map((function(e){return e.size})),s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;(t.inverseAltBehavior&&(n=!n),n)&&(l===t.sashItems.length-1?(s=((b=t.viewItems[l]).minimumSize-b.size)/2,a=(b.maximumSize-b.size)/2):(s=((b=t.viewItems[l+1]).size-b.maximumSize)/2,a=(b.size-b.minimumSize)/2));if(!n){var c=u.range(l,-1),h=u.range(l+1,t.viewItems.length),p=c.reduce((function(e,n){return e+(t.viewItems[n].minimumSize-r[n])}),0),g=c.reduce((function(e,n){return e+(t.viewItems[n].viewMaximumSize-r[n])}),0),f=0===h.length?Number.POSITIVE_INFINITY:h.reduce((function(e,n){return e+(r[n]-t.viewItems[n].minimumSize)}),0),m=0===h.length?Number.NEGATIVE_INFINITY:h.reduce((function(e,n){return e+(r[n]-t.viewItems[n].viewMaximumSize)}),0),v=Math.max(p,m),_=Math.min(f,g),y=t.findFirstSnapIndex(c),C=t.findFirstSnapIndex(h);if(\"number\"==typeof y){var b=t.viewItems[y],S=Math.floor(b.viewMinimumSize/2);i={index:y,limitDelta:b.visible?v-S:v+S,size:b.size}}if(\"number\"==typeof C){\nb=t.viewItems[C],S=Math.floor(b.viewMinimumSize/2);o={index:C,limitDelta:b.visible?_+S:_-S,size:b.size}}}t.sashDragState={start:e,current:e,index:l,sizes:r,minDelta:s,maxDelta:a,alt:n,snapBefore:i,snapAfter:o,disposable:d}};c(o,r)},t.prototype.onSashChange=function(e){var t=e.current,n=this.sashDragState,i=n.index,o=n.start,r=n.sizes,s=n.alt,a=n.minDelta,l=n.maxDelta,u=n.snapBefore,d=n.snapAfter;this.sashDragState.current=t;var c=t-o,h=this.resize(i,c,r,void 0,void 0,a,l,u,d);if(s){var p=i===this.sashItems.length-1,g=this.viewItems.map((function(e){return e.size})),f=p?i:i+1,m=this.viewItems[f],v=m.size-m.maximumSize,_=m.size-m.minimumSize,y=p?i-1:i+1;this.resize(y,-h,g,void 0,void 0,v,_)}this.distributeEmptySpace(),this.layoutViews()},t.prototype.onSashEnd=function(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(var t=0,n=this.viewItems;t<n.length;t++){n[t].enabled=!0}},t.prototype.onViewChange=function(e,t){var n=this.viewItems.indexOf(e)\n;n<0||n>=this.viewItems.length||(t=\"number\"==typeof t?t:e.size,t=l.clamp(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&n>0?(this.resize(n-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([n],void 0)))},t.prototype.resizeView=function(e,t){var n=this;if(this.state!==p.Idle)throw new Error(\"Cant modify splitview\");if(this.state=p.Busy,!(e<0||e>=this.viewItems.length)){var i=u.range(this.viewItems.length).filter((function(t){return t!==e})),o=a(i.filter((function(e){return 1===n.viewItems[e].priority})),[e]),r=i.filter((function(e){return 2===n.viewItems[e].priority})),s=this.viewItems[e];t=Math.round(t),t=l.clamp(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(o,r),this.state=p.Idle}},t.prototype.distributeViewSizes=function(){for(var e=this,t=[],n=0,i=0,o=this.viewItems;i<o.length;i++){(d=o[i]).maximumSize-d.minimumSize>0&&(t.push(d),n+=d.size)}for(var r=Math.floor(n/t.length),s=0,a=t;s<a.length;s++){var d\n;(d=a[s]).size=l.clamp(r,d.minimumSize,d.maximumSize)}var c=u.range(this.viewItems.length),h=c.filter((function(t){return 1===e.viewItems[t].priority})),p=c.filter((function(t){return 2===e.viewItems[t].priority}));this.relayout(h,p)},t.prototype.getViewSize=function(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size},t.prototype.doAddView=function(e,t,o,r){var a=this;if(void 0===o&&(o=this.viewItems.length),this.state!==p.Idle)throw new Error(\"Cant modify splitview\");this.state=p.Busy;var l=s.$(\".split-view-view\");o===this.viewItems.length?this.viewContainer.appendChild(l):this.viewContainer.insertBefore(l,this.viewContainer.children.item(o));var c,h=e.onDidChange((function(e){return a.onViewChange(y,e)})),g=n.toDisposable((function(){return a.viewContainer.removeChild(l)})),f=n.combinedDisposable(h,g);c=\"number\"==typeof t?t:\"split\"===t.type?this.getViewSize(t.index)/2:\"invisible\"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize\n;var _,y=0===this.orientation?new m(l,e,c,f):new v(l,e,c,f);if(this.viewItems.splice(o,0,y),this.viewItems.length>1){var C=0===this.orientation?1:0,b=0===this.orientation?{getHorizontalSashTop:function(e){return a.getSashPosition(e)}}:{getVerticalSashLeft:function(e){return a.getSashPosition(e)}},S=new d.Sash(this.sashContainer,b,{orientation:C,orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash}),w=0===this.orientation?function(e){return{sash:S,start:e.startY,current:e.currentY,alt:e.altKey}}:function(e){return{sash:S,start:e.startX,current:e.currentX,alt:e.altKey}},E=i.Event.map(S.onDidStart,w)(this.onSashStart,this),L=i.Event.map(S.onDidChange,w)(this.onSashChange,this),D=i.Event.map(S.onDidEnd,(function(){return u.firstIndex(a.sashItems,(function(e){return e.sash===S}))}))(this.onSashEnd,this),N=S.onDidReset((function(){var e=u.firstIndex(a.sashItems,(function(e){return e.sash===S\n})),t=u.range(e,-1),n=u.range(e+1,a.viewItems.length),i=a.findFirstSnapIndex(t),o=a.findFirstSnapIndex(n);(\"number\"!=typeof i||a.viewItems[i].visible)&&(\"number\"!=typeof o||a.viewItems[o].visible)&&a._onDidSashReset.fire(e)})),x=n.combinedDisposable(E,L,D,N,S),I={sash:S,disposable:x};this.sashItems.splice(o-1,0,I)}l.appendChild(e.element),\"number\"!=typeof t&&\"split\"===t.type&&(_=[t.index]),r||this.relayout([o],_),this.state=p.Idle,r||\"number\"==typeof t||\"distribute\"!==t.type||this.distributeViewSizes()},t.prototype.relayout=function(e,t){var n=this.viewItems.reduce((function(e,t){return e+t.size}),0);this.resize(this.viewItems.length-1,this.size-n,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()},t.prototype.resize=function(e,t,n,i,o,r,s,a,d){var c=this;if(void 0===n&&(n=this.viewItems.map((function(e){return e.size}))),void 0===r&&(r=Number.NEGATIVE_INFINITY),void 0===s&&(s=Number.POSITIVE_INFINITY),e<0||e>=this.viewItems.length)return 0\n;var h=u.range(e,-1),p=u.range(e+1,this.viewItems.length);if(o)for(var g=0,f=o;g<f.length;g++){var m=f[g];u.pushToStart(h,m),u.pushToStart(p,m)}if(i)for(var v=0,_=i;v<_.length;v++){var y=_[v];u.pushToEnd(h,y),u.pushToEnd(p,y)}var C=h.map((function(e){return c.viewItems[e]})),b=h.map((function(e){return n[e]})),S=p.map((function(e){return c.viewItems[e]})),w=p.map((function(e){return n[e]})),E=h.reduce((function(e,t){return e+(c.viewItems[t].minimumSize-n[t])}),0),L=h.reduce((function(e,t){return e+(c.viewItems[t].maximumSize-n[t])}),0),D=0===p.length?Number.POSITIVE_INFINITY:p.reduce((function(e,t){return e+(n[t]-c.viewItems[t].minimumSize)}),0),N=0===p.length?Number.NEGATIVE_INFINITY:p.reduce((function(e,t){return e+(n[t]-c.viewItems[t].maximumSize)}),0),x=Math.max(E,N,r),I=Math.min(D,L,s),M=!1;if(a){var k=this.viewItems[a.index];M=(T=t>=a.limitDelta)!==k.visible,k.setVisible(T,a.size)}if(!M&&d){var T;k=this.viewItems[d.index];M=(T=t<d.limitDelta)!==k.visible,k.setVisible(T,d.size)}\nif(M)return this.resize(e,t,n,i,o,r,s);for(var R=0,O=t=l.clamp(t,x,I);R<C.length;R++){var P=C[R];O-=(F=l.clamp(b[R]+O,P.minimumSize,P.maximumSize))-b[R],P.size=F}R=0;for(var A=t;R<S.length;R++){var F;P=S[R];A+=(F=l.clamp(w[R]-A,P.minimumSize,P.maximumSize))-w[R],P.size=F}return t},t.prototype.distributeEmptySpace=function(e){for(var t=this,n=this.viewItems.reduce((function(e,t){return e+t.size}),0),i=this.size-n,o=u.range(this.viewItems.length-1,-1),r=o.filter((function(e){return 1===t.viewItems[e].priority})),s=0,a=o.filter((function(e){return 2===t.viewItems[e].priority}));s<a.length;s++){var d=a[s];u.pushToStart(o,d)}for(var c=0,h=r;c<h.length;c++){d=h[c];u.pushToEnd(o,d)}\"number\"==typeof e&&u.pushToEnd(o,e);for(var p=0;0!==i&&p<o.length;p++){var g=this.viewItems[o[p]],f=l.clamp(g.size+i,g.minimumSize,g.maximumSize);i-=f-g.size,g.size=f}},t.prototype.layoutViews=function(){this.contentSize=this.viewItems.reduce((function(e,t){return e+t.size}),0);for(var e=0,t=0,n=this.viewItems;t<n.length;t++){var i=n[t]\n;i.layout(e,this.layoutContext),e+=i.size}this.sashItems.forEach((function(e){return e.sash.layout()})),this.updateSashEnablement()},t.prototype.updateSashEnablement=function(){var e=!1,t=this.viewItems.map((function(t){return e=t.size-t.minimumSize>0||e}));e=!1;var n=this.viewItems.map((function(t){return e=t.maximumSize-t.size>0||e})),i=a(this.viewItems).reverse();e=!1;var o=i.map((function(t){return e=t.size-t.minimumSize>0||e})).reverse();e=!1;for(var r=i.map((function(t){return e=t.maximumSize-t.size>0||e})).reverse(),s=0,l=0;l<this.sashItems.length;l++){var d=this.sashItems[l].sash;s+=this.viewItems[l].size;var c=!(t[l]&&r[l+1]),h=!(n[l]&&o[l+1]);if(c&&h){var p=u.range(l,-1),g=u.range(l+1,this.viewItems.length),f=this.findFirstSnapIndex(p),m=this.findFirstSnapIndex(g),v=\"number\"==typeof f&&!this.viewItems[f].visible,_=\"number\"==typeof m&&!this.viewItems[m].visible;v&&o[l]&&(s>0||this.startSnappingEnabled)?d.state=1:_&&t[l]&&(s<this.contentSize||this.endSnappingEnabled)?d.state=2:d.state=0\n}else d.state=c&&!h?1:!c&&h?2:3}},t.prototype.getSashPosition=function(e){for(var t=0,n=0;n<this.sashItems.length;n++)if(t+=this.viewItems[n].size,this.sashItems[n].sash===e)return Math.min(t,this.contentSize-2);return 0},t.prototype.findFirstSnapIndex=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t];if((s=this.viewItems[i]).visible&&s.snap)return i}for(var o=0,r=e;o<r.length;o++){var s;i=r[o];if((s=this.viewItems[i]).visible&&s.maximumSize-s.minimumSize>0)return;if(!s.visible&&s.snap)return i}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.viewItems.forEach((function(e){return e.dispose()})),this.viewItems=[],this.sashItems.forEach((function(e){return e.disposable.dispose()})),this.sashItems=[]},t}(n.Disposable);t.SplitView=_})),define(n[280],i([9]),{}),define(n[281],i([9]),{}),define(n[282],i([9]),{}),define(n[283],i([0,1,137,256,277,4,27,31,282]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e,t,i){if(void 0===i&&(i={}),\nthis.tree=e,this.configuration=t,this.options=i,!t.dataSource)throw new Error(\"You must provide a Data Source to the tree.\");this.dataSource=t.dataSource,this.renderer=t.renderer,this.controller=t.controller||new n.DefaultController({clickBehavior:1,keyboardSupport:\"boolean\"!=typeof i.keyboardSupport||i.keyboardSupport}),this.dnd=t.dnd||new n.DefaultDragAndDrop,this.filter=t.filter||new n.DefaultFilter,this.sorter=t.sorter,this.accessibilityProvider=t.accessibilityProvider||new n.DefaultAccessibilityProvider,this.styler=t.styler};t.TreeContext=l;var u={listFocusBackground:s.Color.fromHex(\"#073655\"),listActiveSelectionBackground:s.Color.fromHex(\"#0E639C\"),listActiveSelectionForeground:s.Color.fromHex(\"#FFFFFF\"),listFocusAndSelectionBackground:s.Color.fromHex(\"#094771\"),listFocusAndSelectionForeground:s.Color.fromHex(\"#FFFFFF\"),listInactiveSelectionBackground:s.Color.fromHex(\"#3F3F46\"),listHoverBackground:s.Color.fromHex(\"#2A2D2E\"),listDropBackground:s.Color.fromHex(\"#383B3D\")},d=function(){function e(e,t,n){\nvoid 0===n&&(n={}),this._onDidChangeFocus=new r.Relay,this.onDidChangeFocus=this._onDidChangeFocus.event,this._onDidChangeSelection=new r.Relay,this.onDidChangeSelection=this._onDidChangeSelection.event,this._onHighlightChange=new r.Relay,this._onDidExpandItem=new r.Relay,this._onDidCollapseItem=new r.Relay,this._onDispose=new r.Emitter,this.onDidDispose=this._onDispose.event,this.container=e,a.mixin(n,u,!1),n.twistiePixels=\"number\"==typeof n.twistiePixels?n.twistiePixels:32,n.showTwistie=!1!==n.showTwistie,n.indentPixels=\"number\"==typeof n.indentPixels?n.indentPixels:12,n.alwaysFocused=!0===n.alwaysFocused,n.useShadows=!1!==n.useShadows,n.paddingOnRow=!1!==n.paddingOnRow,n.showLoading=!1!==n.showLoading,this.context=new l(this,t,n),this.model=new i.TreeModel(this.context),this.view=new o.TreeView(this.context,this.container),this.view.setModel(this.model),this._onDidChangeFocus.input=this.model.onDidFocus,this._onDidChangeSelection.input=this.model.onDidSelect,\nthis._onHighlightChange.input=this.model.onDidHighlight,this._onDidExpandItem.input=this.model.onDidExpandItem,this._onDidCollapseItem.input=this.model.onDidCollapseItem}return e.prototype.style=function(e){this.view.applyStyles(e)},Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.view.onDOMFocus},enumerable:!0,configurable:!0}),e.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.domFocus=function(){this.view.focus()},e.prototype.isDOMFocused=function(){return this.view.isFocused()},e.prototype.domBlur=function(){this.view.blur()},e.prototype.setInput=function(e){return this.model.setInput(e)},e.prototype.getInput=function(){return this.model.getInput()},e.prototype.expand=function(e){return this.model.expand(e)},e.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.collapse(e,t)},e.prototype.toggleExpansion=function(e,t){return void 0===t&&(t=!1),this.model.toggleExpansion(e,t)\n},e.prototype.isExpanded=function(e){return this.model.isExpanded(e)},e.prototype.reveal=function(e,t){return void 0===t&&(t=null),this.model.reveal(e,t)},e.prototype.getHighlight=function(){return this.model.getHighlight()},e.prototype.clearHighlight=function(e){this.model.setHighlight(null,e)},e.prototype.setSelection=function(e,t){this.model.setSelection(e,t)},e.prototype.getSelection=function(){return this.model.getSelection()},e.prototype.clearSelection=function(e){this.model.setSelection([],e)},e.prototype.setFocus=function(e,t){this.model.setFocus(e,t)},e.prototype.getFocus=function(){return this.model.getFocus()},e.prototype.focusNext=function(e,t){this.model.focusNext(e,t)},e.prototype.focusPrevious=function(e,t){this.model.focusPrevious(e,t)},e.prototype.focusParent=function(e){this.model.focusParent(e)},e.prototype.focusFirstChild=function(e){this.model.focusFirstChild(e)},e.prototype.focusFirst=function(e,t){this.model.focusFirst(e,t)},e.prototype.focusNth=function(e,t){this.model.focusNth(e,t)},\ne.prototype.focusLast=function(e,t){this.model.focusLast(e,t)},e.prototype.focusNextPage=function(e){this.view.focusNextPage(e)},e.prototype.focusPreviousPage=function(e){this.view.focusPreviousPage(e)},e.prototype.clearFocus=function(e){this.model.setFocus(null,e)},e.prototype.dispose=function(){this._onDispose.fire(),this.model.dispose(),this.view.dispose(),this._onDidChangeFocus.dispose(),this._onDidChangeSelection.dispose(),this._onHighlightChange.dispose(),this._onDidExpandItem.dispose(),this._onDidCollapseItem.dispose(),this._onDispose.dispose()},e}();t.Tree=d})),define(n[284],i([9]),{}),define(n[285],i([9]),{}),define(n[286],i([9]),{}),define(n[287],i([9]),{}),define(n[288],i([9]),{}),define(n[289],i([9]),{}),define(n[290],i([9]),{}),define(n[291],i([9]),{}),define(n[292],i([9]),{}),define(n[293],i([9]),{}),define(n[294],i([9]),{}),define(n[295],i([9]),{}),define(n[296],i([9]),{}),define(n[297],i([9]),{}),define(n[298],i([9]),{}),define(n[299],i([9]),{}),define(n[300],i([9]),{}),\ndefine(n[301],i([9]),{}),define(n[302],i([9]),{}),define(n[303],i([9]),{}),define(n[304],i([9]),{}),define(n[305],i([9]),{}),define(n[306],i([9]),{}),define(n[307],i([9]),{}),define(n[308],i([9]),{}),define(n[309],i([9]),{}),define(n[310],i([9]),{}),define(n[311],i([9]),{}),define(n[312],i([9]),{}),define(n[313],i([9]),{}),define(n[314],i([9]),{}),define(n[315],i([9]),{}),define(n[316],i([9]),{}),define(n[317],i([9]),{}),define(n[318],i([9]),{}),define(n[319],i([9]),{}),define(n[320],i([9]),{}),define(n[321],i([9]),{}),define(n[322],i([9]),{}),define(n[323],i([9]),{}),define(n[324],i([9]),{}),define(n[325],i([9]),{}),define(n[326],i([9]),{}),define(n[327],i([9]),{}),define(n[328],i([9]),{}),define(n[329],i([9]),{}),define(n[330],i([9]),{}),define(n[331],i([9]),{}),define(n[332],i([9]),{}),define(n[333],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.chr=e,this.type=t,this.width=0}return e.prototype.fulfill=function(e){this.width=e},e\n}();t.CharWidthRequest=n;var i=function(){function e(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}return e.prototype.read=function(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null},e.prototype._createDomElements=function(){var t=document.createElement(\"div\");t.style.position=\"absolute\",t.style.top=\"-50000px\",t.style.width=\"50000px\";var n=document.createElement(\"div\");n.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),n.style.fontWeight=this._bareFontInfo.fontWeight,n.style.fontSize=this._bareFontInfo.fontSize+\"px\",n.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,n.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",n.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",t.appendChild(n);var i=document.createElement(\"div\");i.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),\ni.style.fontWeight=\"bold\",i.style.fontSize=this._bareFontInfo.fontSize+\"px\",i.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,i.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",i.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",t.appendChild(i);var o=document.createElement(\"div\");o.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),o.style.fontWeight=this._bareFontInfo.fontWeight,o.style.fontSize=this._bareFontInfo.fontSize+\"px\",o.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,o.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",o.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",o.style.fontStyle=\"italic\",t.appendChild(o);for(var r=[],s=0,a=this._requests;s<a.length;s++){var l=a[s],u=void 0;0===l.type&&(u=n),2===l.type&&(u=i),1===l.type&&(u=o),u.appendChild(document.createElement(\"br\"));var d=document.createElement(\"span\");e._render(d,l),u.appendChild(d),r.push(d)}this._container=t,this._testElements=r},e._render=function(e,t){if(\" \"===t.chr){\nfor(var n=\"&#160;\",i=0;i<8;i++)n+=n;e.innerHTML=n}else{var o=t.chr;for(i=0;i<8;i++)o+=o;e.textContent=o}},e.prototype._readFromDomElements=function(){for(var e=0,t=this._requests.length;e<t;e++){var n=this._requests[e],i=this._testElements[e];n.fulfill(i.offsetWidth/256)}},e}();t.readCharWidths=function(e,t){new i(e,t).read()}})),define(n[185],i([0,1,2,6]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i){var o=e.call(this)||this;return o.referenceDomElement=t,o.changeCallback=i,o.width=-1,o.height=-1,o.mutationObserver=null,o.windowSizeListener=null,o.measureReferenceDomElement(!1,n),o}return r(t,e),t.prototype.dispose=function(){this.stopObserving(),e.prototype.dispose.call(this)},t.prototype.getWidth=function(){return this.width},t.prototype.getHeight=function(){return this.height},t.prototype.startObserving=function(){var e=this;!this.mutationObserver&&this.referenceDomElement&&(this.mutationObserver=new MutationObserver((function(){\nreturn e._onDidMutate()})),this.mutationObserver.observe(this.referenceDomElement,{attributes:!0})),this.windowSizeListener||(this.windowSizeListener=i.addDisposableListener(window,\"resize\",(function(){return e._onDidResizeWindow()})))},t.prototype.stopObserving=function(){this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null),this.windowSizeListener&&(this.windowSizeListener.dispose(),this.windowSizeListener=null)},t.prototype.observe=function(e){this.measureReferenceDomElement(!0,e)},t.prototype._onDidMutate=function(){this.measureReferenceDomElement(!0)},t.prototype._onDidResizeWindow=function(){this.measureReferenceDomElement(!0)},t.prototype.measureReferenceDomElement=function(e,t){var n=0,i=0;t?(n=t.width,i=t.height):this.referenceDomElement&&(n=this.referenceDomElement.clientWidth,i=this.referenceDomElement.clientHeight),n=Math.max(5,n),i=Math.max(5,i),this.width===n&&this.height===i||(this.width=n,this.height=i,e&&this.changeCallback())},t}(n.Disposable)\n;t.ElementSizeObserver=o})),define(n[141],i([0,1,6,78,45,2]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this.x=e,this.y=t}return e.prototype.toClientCoordinates=function(){return new l(this.x-n.StandardWindow.scrollX,this.y-n.StandardWindow.scrollY)},e}();t.PageCoordinates=a;var l=function(){function e(e,t){this.clientX=e,this.clientY=t}return e.prototype.toPageCoordinates=function(){return new a(this.clientX+n.StandardWindow.scrollX,this.clientY+n.StandardWindow.scrollY)},e}();t.ClientCoordinates=l;var u=function(e,t,n,i){this.x=e,this.y=t,this.width=n,this.height=i};function d(e){var t=n.getDomNodePagePosition(e);return new u(t.left,t.top,t.width,t.height)}t.EditorPagePosition=u,t.createEditorPagePosition=d;var c=function(e){function t(t,n){var i=e.call(this,t)||this;return i.pos=new a(i.posx,i.posy),i.editorPos=d(n),i}return r(t,e),t}(o.StandardMouseEvent);t.EditorMouseEvent=c;var h=function(){function e(e){this._editorViewDomNode=e\n}return e.prototype._create=function(e){return new c(e,this._editorViewDomNode)},e.prototype.onContextMenu=function(e,t){var i=this;return n.addDisposableListener(e,\"contextmenu\",(function(e){t(i._create(e))}))},e.prototype.onMouseUp=function(e,t){var i=this;return n.addDisposableListener(e,\"mouseup\",(function(e){t(i._create(e))}))},e.prototype.onMouseDown=function(e,t){var i=this;return n.addDisposableListener(e,\"mousedown\",(function(e){t(i._create(e))}))},e.prototype.onMouseLeave=function(e,t){var i=this;return n.addDisposableNonBubblingMouseOutListener(e,(function(e){t(i._create(e))}))},e.prototype.onMouseMoveThrottled=function(e,t,i,o){var r=this;return n.addDisposableThrottledListener(e,\"mousemove\",t,(function(e,t){return i(e,r._create(t))}),o)},e}();t.EditorMouseEventFactory=h;var p=function(){function e(e){this._editorViewDomNode=e}return e.prototype._create=function(e){return new c(e,this._editorViewDomNode)},e.prototype.onPointerUp=function(e,t){var i=this\n;return n.addDisposableListener(e,\"pointerup\",(function(e){t(i._create(e))}))},e.prototype.onPointerDown=function(e,t){var i=this;return n.addDisposableListener(e,\"pointerdown\",(function(e){t(i._create(e))}))},e.prototype.onPointerLeave=function(e,t){var i=this;return n.addDisposableNonBubblingPointerOutListener(e,(function(e){t(i._create(e))}))},e.prototype.onPointerMoveThrottled=function(e,t,i,o){var r=this;return n.addDisposableThrottledListener(e,\"pointermove\",t,(function(e,t){return i(e,r._create(t))}),o)},e}();t.EditorPointerEventFactory=p;var g=function(e){function t(t){var n=e.call(this)||this;return n._editorViewDomNode=t,n._globalMouseMoveMonitor=n._register(new i.GlobalMouseMoveMonitor),n._keydownListener=null,n}return r(t,e),t.prototype.startMonitoring=function(e,t,i,o,r){var s=this;this._keydownListener=n.addStandardDisposableListener(document,\"keydown\",(function(e){e.toKeybinding().isModifierKey()||s._globalMouseMoveMonitor.stopMonitoring(!0)}),!0)\n;this._globalMouseMoveMonitor.startMonitoring(e,t,(function(e,t){return i(e,new c(t,s._editorViewDomNode))}),o,(function(){s._keydownListener.dispose(),r()}))},t}(s.Disposable);t.GlobalEditorMouseMoveMonitor=g})),define(n[334],i([0,1,4,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(){var t=e.call(this)||this;return t._onCodeEditorAdd=t._register(new n.Emitter),t.onCodeEditorAdd=t._onCodeEditorAdd.event,t._onCodeEditorRemove=t._register(new n.Emitter),t.onCodeEditorRemove=t._onCodeEditorRemove.event,t._onDiffEditorAdd=t._register(new n.Emitter),t._onDiffEditorRemove=t._register(new n.Emitter),t._codeEditors=Object.create(null),t._diffEditors=Object.create(null),t}return r(t,e),t.prototype.addCodeEditor=function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)},t.prototype.removeCodeEditor=function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)},t.prototype.listCodeEditors=function(){var e=this\n;return Object.keys(this._codeEditors).map((function(t){return e._codeEditors[t]}))},t.prototype.addDiffEditor=function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)},t.prototype.removeDiffEditor=function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)},t.prototype.listDiffEditors=function(){var e=this;return Object.keys(this._diffEditors).map((function(t){return e._diffEditors[t]}))},t.prototype.getFocusedCodeEditor=function(){for(var e=null,t=0,n=this.listCodeEditors();t<n.length;t++){var i=n[t];if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e},t}(i.Disposable);t.AbstractCodeEditorService=o})),define(n[186],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.allCharCodes=function(){for(var e=[],t=32;t<=126;t++)e.push(t);return e.push(65533),e}(),t.getCharIndex=function(e,t){return(e-=32)<0||e>96?t<=2?(e+96)%96:95:e}})),define(n[335],i([0,1,186]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var i=function(){function e(t,n){this.scale=n,this.charDataNormal=e.soften(t,.8),this.charDataLight=e.soften(t,50/60)}return e.soften=function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,o=e.length;i<o;i++)n[i]=e[i]*t;return n},e.prototype.renderChar=function(e,t,i,o,r,s,a,l){var u=1*this.scale,d=2*this.scale;if(t+u>e.width||i+d>e.height)console.warn(\"bad render request outside image data\");else for(var c=l?this.charDataLight:this.charDataNormal,h=n.getCharIndex(o,a),p=4*e.width,g=s.r,f=s.g,m=s.b,v=r.r-g,_=r.g-f,y=r.b-m,C=e.data,b=h*u*d,S=i*p+4*t,w=0;w<d;w++){for(var E=S,L=0;L<u;L++){var D=c[b++]/255;C[E++]=g+v*D,C[E++]=f+_*D,C[E++]=m+y*D,E++}S+=p}},e.prototype.blockRenderChar=function(e,t,n,i,o,r){var s=1*this.scale,a=2*this.scale;if(t+s>e.width||n+a>e.height)console.warn(\"bad render request outside image data\");else for(var l=4*e.width,u=o.r,d=o.g,c=o.b,h=u+.5*(i.r-u),p=d+.5*(i.g-d),g=c+.5*(i.b-c),f=e.data,m=n*l+4*t,v=0;v<a;v++){for(var _=m,y=0;y<s;y++)f[_++]=h,f[_++]=p,f[_++]=g,_++;m+=l}\n},e}();t.MinimapCharRenderer=i})),define(n[336],i([0,1,102]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},o=function(e){for(var t=new Uint8ClampedArray(e.length/2),n=0;n<e.length;n+=2)t[n>>1]=i[e[n]]<<4|15&i[e[n+1]];return t};t.prebakedMiniMaps={1:n.once((function(){return o(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\")})),2:n.once((function(){\nreturn o(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\")\n}))}})),define(n[337],i([0,1,335,186,336]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.create=function(t,i){return this.lastCreated&&t===this.lastCreated.scale&&i===this.lastFontFamily?this.lastCreated:(r=o.prebakedMiniMaps[t]?new n.MinimapCharRenderer(o.prebakedMiniMaps[t](),t):e.createFromSampleData(e.createSampleData(i).data,t),this.lastFontFamily=i,this.lastCreated=r,r);var r},e.createSampleData=function(e){var t=document.createElement(\"canvas\"),n=t.getContext(\"2d\");t.style.height=\"16px\",t.height=16,t.width=960,t.style.width=\"960px\",n.fillStyle=\"#ffffff\",n.font=\"bold 16px \"+e,n.textBaseline=\"middle\";for(var o=0,r=0,s=i.allCharCodes;r<s.length;r++){var a=s[r];n.fillText(String.fromCharCode(a),o,8),o+=10}return n.getImageData(0,0,960,16)},e.createFromSampleData=function(t,i){if(61440!==t.length)throw new Error(\"Unexpected source in MinimapCharRenderer\");var o=e._downsample(t,i);return new n.MinimapCharRenderer(o,i)},\ne._downsampleChar=function(e,t,n,i,o){for(var r=1*o,s=2*o,a=i,l=0,u=0;u<s;u++)for(var d=u/s*16,c=(u+1)/s*16,h=0;h<r;h++){for(var p=h/r*10,g=(h+1)/r*10,f=0,m=0,v=d;v<c;v++)for(var _=t+3840*Math.floor(v),y=1-(v-Math.floor(v)),C=p;C<g;C++){var b=1-(C-Math.floor(C)),S=_+4*Math.floor(C),w=b*y;m+=w,f+=e[S]*e[S+3]/255*w}var E=f/m;l=Math.max(l,E),n[a++]=E}return l},e._downsample=function(e,t){for(var n=2*t*1*t,i=96*n,o=new Uint8ClampedArray(i),r=0,s=0,a=0,l=0;l<96;l++)a=Math.max(a,this._downsampleChar(e,s,o,r,t)),r+=n,s+=40;if(a>0)for(var u=255/a,d=0;d<i;d++)o[d]*=u;return o},e}();t.MinimapCharRendererFactory=r})),define(n[105],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.EditorZoom=new(function(){function e(){this._zoomLevel=0,this._onDidChangeZoomLevel=new n.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return e.prototype.getZoomLevel=function(){return this._zoomLevel},e.prototype.setZoomLevel=function(e){e=Math.min(Math.max(-5,e),20),\nthis._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))},e}())})),define(n[142],i([0,1,16,105]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n.isMacintosh?1.5:1.35,s=function(){function e(e){this.zoomLevel=e.zoomLevel,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}return e.createFromValidatedSettings=function(t,n,i){var o=t.get(33),r=t.get(37),s=t.get(36),a=t.get(35),l=t.get(49),u=t.get(46);return e._create(o,r,s,a,l,u,n,i)},e._create=function(t,n,r,s,a,l,u,d){0===a?a=Math.round(o*r):a<8&&(a=8);var c=1+(d?0:.1*i.EditorZoom.getZoomLevel());return new e({zoomLevel:u,fontFamily:t,fontWeight:n,fontSize:r*=c,fontFeatureSettings:s,lineHeight:a*=c,letterSpacing:l})},e.prototype.getId=function(){\nreturn this.zoomLevel+\"-\"+this.fontFamily+\"-\"+this.fontWeight+\"-\"+this.fontSize+\"-\"+this.fontFeatureSettings+\"-\"+this.lineHeight+\"-\"+this.letterSpacing},e.prototype.getMassagedFontFamily=function(){return/[,\"']/.test(this.fontFamily)?this.fontFamily:/[+ ]/.test(this.fontFamily)?'\"'+this.fontFamily+'\"':this.fontFamily},e}();t.BareFontInfo=s;var a=function(e){function t(t,n){var i=e.call(this,t)||this;return i.isTrusted=n,i.isMonospace=t.isMonospace,i.typicalHalfwidthCharacterWidth=t.typicalHalfwidthCharacterWidth,i.typicalFullwidthCharacterWidth=t.typicalFullwidthCharacterWidth,i.canUseHalfwidthRightwardsArrow=t.canUseHalfwidthRightwardsArrow,i.spaceWidth=t.spaceWidth,i.middotWidth=t.middotWidth,i.maxDigitWidth=t.maxDigitWidth,i}return r(t,e),t.prototype.equals=function(e){\nreturn this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.maxDigitWidth===e.maxDigitWidth},t}(s);t.FontInfo=a})),define(n[79],i([0,1,179]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){var i=n.toUint8(t);this._defaultValue=i,this._asciiMap=e._createAsciiMap(i),this._map=new Map}return e._createAsciiMap=function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t},e.prototype.set=function(e,t){var i=n.toUint8(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)},e.prototype.get=function(e){\nreturn e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=i;var o=function(){function e(){this._actual=new i(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=o})),define(n[89],i([0,1,79]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o,s=function(e){function t(t){for(var n=e.call(this,0)||this,i=0,o=t.length;i<o;i++)n.set(t.charCodeAt(i),2);return n.set(32,1),n.set(9,1),n}return r(t,e),t}(n.CharacterClassifier);t.WordCharacterClassifier=s,t.getMapForWordSeparators=(i=function(e){return new s(e)},o={},function(e){return o.hasOwnProperty(e)||(o[e]=i(e)),o[e]})})),define(n[13],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.with=function(t,n){return void 0===t&&(t=this.lineNumber),void 0===n&&(n=this.column),\nt===this.lineNumber&&n===this.column?this:new e(t,n)},e.prototype.delta=function(e,t){return void 0===e&&(e=0),void 0===t&&(t=0),this.with(this.lineNumber+e,this.column+t)},e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column},e.prototype.isBeforeOrEqual=function(t){return e.isBeforeOrEqual(this,t)},e.isBeforeOrEqual=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column},e.compare=function(e,t){var n=0|e.lineNumber,i=0|t.lineNumber;return n===i?(0|e.column)-(0|t.column):n-i},e.prototype.clone=function(){return new e(this.lineNumber,this.column)},e.prototype.toString=function(){return\"(\"+this.lineNumber+\",\"+this.column+\")\"},e.lift=function(t){return new e(t.lineNumber,t.column)},e.isIPosition=function(e){\nreturn e&&\"number\"==typeof e.lineNumber&&\"number\"==typeof e.column},e}();t.Position=n})),define(n[3],i([0,1,13]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,i){e>n||e===n&&t>i?(this.startLineNumber=n,this.startColumn=i,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=i)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){\nreturn!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))},e.prototype.strictContainsRange=function(t){return e.strictContainsRange(this,t)},e.strictContainsRange=function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var i,o,r,s;return n.startLineNumber<t.startLineNumber?(i=n.startLineNumber,o=n.startColumn):n.startLineNumber===t.startLineNumber?(i=n.startLineNumber,o=Math.min(n.startColumn,t.startColumn)):(i=t.startLineNumber,o=t.startColumn),\nn.endLineNumber>t.endLineNumber?(r=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(r=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(r=t.endLineNumber,s=t.endColumn),new e(i,o,r,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var i=t.startLineNumber,o=t.startColumn,r=t.endLineNumber,s=t.endColumn,a=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn;return i<a?(i=a,o=l):i===a&&(o=Math.max(o,l)),r>u?(r=u,s=d):r===u&&(s=Math.min(s,d)),i>r?null:i===r&&o>s?null:new e(i,o,r,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},\ne.prototype.toString=function(){return\"[\"+this.startLineNumber+\",\"+this.startColumn+\" -> \"+this.endLineNumber+\",\"+this.endColumn+\"]\"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&\"number\"==typeof e.startLineNumber&&\"number\"==typeof e.startColumn&&\"number\"==typeof e.endLineNumber&&\"number\"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){\nreturn!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)},e.areIntersecting=function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)},e.compareRangesUsingStarts=function(e,t){if(e&&t){var n=0|e.startLineNumber,i=0|t.startLineNumber;if(n===i){var o=0|e.startColumn,r=0|t.startColumn;if(o===r){var s=0|e.endLineNumber,a=0|t.endLineNumber;return s===a?(0|e.endColumn)-(0|t.endColumn):s-a}return o-r}return n-i}return(e?1:0)-(t?1:0)},e.compareRangesUsingEnds=function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber},\ne.spansMultipleLines=function(e){return e.endLineNumber>e.startLineNumber},e}();t.Range=i})),define(n[187],i([0,1,5,13,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i,o){this.value=e,this.selectionStart=t,this.selectionEnd=n,this.selectionStartPosition=i,this.selectionEndPosition=o}return e.prototype.toString=function(){return\"[ <\"+this.value+\">, selectionStart: \"+this.selectionStart+\", selectionEnd: \"+this.selectionEnd+\"]\"},e.readFromTextArea=function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd(),null,null)},e.prototype.collapseSelection=function(){return new e(this.value,this.value.length,this.value.length,null,null)},e.prototype.writeToTextArea=function(e,t,n){t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)},e.prototype.deduceEditorPosition=function(e){if(e<=this.selectionStart){var t=this.value.substring(e,this.selectionStart)\n;return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,t,1)}var n=this.value.substring(this.selectionStart,e);if(-1===n.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,n,1);var i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)},e.prototype._finishDeduceEditorPosition=function(e,t,n){for(var i=0,o=-1;-1!==(o=t.indexOf(\"\\n\",o+1));)i++;return[e,n*t.length,i]},e.selectedText=function(t){return new e(t,0,t.length,null,null)},e.deduceInput=function(e,t,i){if(!e)return{text:\"\",replaceCharCnt:0};var o=e.value,r=e.selectionStart,s=e.selectionEnd,a=t.value,l=t.selectionStart,u=t.selectionEnd,d=o.substring(s),c=a.substring(u),h=n.commonSuffixLength(d,c);a=a.substring(0,a.length-h)\n;var p=(o=o.substring(0,o.length-h)).substring(0,r),g=a.substring(0,l),f=n.commonPrefixLength(p,g);if(a=a.substring(f),o=o.substring(f),l-=f,r-=f,u-=f,s-=f,i&&l===u&&o.length>0){var m=null;if(l===a.length?n.startsWith(a,o)&&(m=a.substring(o.length)):n.endsWith(a,o)&&(m=a.substring(0,a.length-o.length)),null!==m&&m.length>0&&(/\\uFE0F/.test(m)||n.containsEmoji(m)))return{text:m,replaceCharCnt:0}}return l===u?o===a&&0===r&&s===o.length&&l===a.length&&-1===a.indexOf(\"\\n\")&&n.containsFullWidthCharacter(a)?{text:\"\",replaceCharCnt:0}:{text:a,replaceCharCnt:p.length-f}:{text:a,replaceCharCnt:s-r}},e.EMPTY=new e(\"\",0,0,null,null),e}();t.TextAreaState=r;var s=function(){function e(){}return e._getPageOfLine=function(e,t){return Math.floor((e-1)/t)},e._getRangeForPage=function(e,t){var n=e*t,i=n+1,r=n+t;return new o.Range(i,1,r+1,1)},e.fromEditorSelection=function(t,n,s,a,l){\nvar u,d=e._getPageOfLine(s.startLineNumber,a),c=e._getRangeForPage(d,a),h=e._getPageOfLine(s.endLineNumber,a),p=e._getRangeForPage(h,a),g=c.intersectRanges(new o.Range(1,1,s.startLineNumber,s.startColumn)),f=n.getValueInRange(g,1),m=n.getLineCount(),v=n.getLineMaxColumn(m),_=p.intersectRanges(new o.Range(s.endLineNumber,s.endColumn,m,v)),y=n.getValueInRange(_,1);if(d===h||d+1===h)u=n.getValueInRange(s,1);else{var C=c.intersectRanges(s),b=p.intersectRanges(s);u=n.getValueInRange(C,1)+String.fromCharCode(8230)+n.getValueInRange(b,1)}if(l){f.length>500&&(f=f.substring(f.length-500,f.length)),y.length>500&&(y=y.substring(0,500)),u.length>1e3&&(u=u.substring(0,500)+String.fromCharCode(8230)+u.substring(u.length-500,u.length))}return new r(f+u+y,f.length,f.length+u.length,new i.Position(s.startLineNumber,s.startColumn),new i.Position(s.endLineNumber,s.endColumn))},e}();t.PagedScreenReaderStrategy=s})),define(n[188],i([0,1,124,4,2,31,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var l={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0},u=function(e){function t(t,n){void 0===n&&(n={});var o=e.call(this)||this;return o._onDidUpdate=o._register(new i.Emitter),o._editor=t,o._options=s.mixin(n,l,!1),o.disposed=!1,o.nextIdx=-1,o.ranges=[],o.ignoreSelectionChange=!1,o.revealFirst=Boolean(o._options.alwaysRevealFirst),o._register(o._editor.onDidDispose((function(){return o.dispose()}))),o._register(o._editor.onDidUpdateDiff((function(){return o._onDiffUpdated()}))),o._options.followsCaret&&o._register(o._editor.getModifiedEditor().onDidChangeCursorPosition((function(e){o.ignoreSelectionChange||(o.nextIdx=-1)}))),o._options.alwaysRevealFirst&&o._register(o._editor.getModifiedEditor().onDidChangeModel((function(e){o.revealFirst=!0}))),o._init(),o}return r(t,e),t.prototype._init=function(){this._editor.getLineChanges()},t.prototype._onDiffUpdated=function(){this._init(),this._compute(this._editor.getLineChanges()),\nthis.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))},t.prototype._compute=function(e){var t=this;this.ranges=[],e&&e.forEach((function(e){!t._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach((function(e){t.ranges.push({rhs:!0,range:new a.Range(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})})):t.ranges.push({rhs:!0,range:new a.Range(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})})),this.ranges.sort((function(e,t){return e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0})),this._onDidUpdate.fire(this)},t.prototype._initIdx=function(e){var t=!1,n=this._editor.getPosition();if(n){for(var i=0,o=this.ranges.length;i<o&&!t;i++){var r=this.ranges[i].range;n.isBeforeOrEqual(r.getStartPosition())&&(this.nextIdx=i+(e?0:-1),t=!0)}t||(this.nextIdx=e?0:this.ranges.length-1),\nthis.nextIdx<0&&(this.nextIdx=this.ranges.length-1)}else this.nextIdx=0},t.prototype._move=function(e,t){if(n.ok(!this.disposed,\"Illegal State - diff navigator has been disposed\"),this.canNavigate()){-1===this.nextIdx?this._initIdx(e):e?(this.nextIdx+=1,this.nextIdx>=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var i=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var o=i.range.getStartPosition();this._editor.setPosition(o),this._editor.revealPositionInCenter(o,t)}finally{this.ignoreSelectionChange=!1}}},t.prototype.canNavigate=function(){return this.ranges&&this.ranges.length>0},t.prototype.next=function(e){void 0===e&&(e=0),this._move(!0,e)},t.prototype.previous=function(e){void 0===e&&(e=0),this._move(!1,e)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.ranges=[],this.disposed=!0},t}(o.Disposable);t.DiffNavigator=u})),define(n[58],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var i=function(){function e(){}return e.insert=function(e,t){return{range:new n.Range(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}},e.delete=function(e){return{range:e,text:null}},e.replace=function(e,t){return{range:e,text:t}},e.replaceMove=function(e,t){return{range:e,text:t,forceMoveMarkers:!0}},e}();t.EditOperation=i})),define(n[338],i([0,1,5,58,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){this._selection=e,this._cursors=t,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){for(var n=s(e,this._cursors),i=0,o=n.length;i<o;i++){var r=n[i];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._selectionId)},e}();function s(e,t){t.sort((function(e,t){return e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber}))\n;for(var r=t.length-2;r>=0;r--)t[r].lineNumber===t[r+1].lineNumber&&t.splice(r,1);for(var s=[],a=0,l=0,u=t.length,d=1,c=e.getLineCount();d<=c;d++){var h=e.getLineContent(d),p=h.length+1,g=0;if(!(l<u&&t[l].lineNumber===d&&(g=t[l].column,l++,g===p))&&0!==h.length){var f=n.lastNonWhitespaceIndex(h),m=0;if(-1===f)m=1;else{if(f===h.length-1)continue;m=f+2}m=Math.max(g,m),s[a++]=i.EditOperation.delete(new o.Range(d,m,d,p))}}return s}t.TrimTrailingWhitespaceCommand=r,t.trimTrailingWhitespace=s})),define(n[339],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(t,n,i,o){this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(i),this.a=e._clamp(o)}return e._clamp=function(e){return e<0?0:e>255?255:0|e},e.Empty=new e(0,0,0,0),e}();t.RGBA8=n})),define(n[22],i([0,1,13,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i,o){var r=e.call(this,t,n,i,o)||this;return r.selectionStartLineNumber=t,\nr.selectionStartColumn=n,r.positionLineNumber=i,r.positionColumn=o,r}return r(t,e),t.prototype.toString=function(){return\"[\"+this.selectionStartLineNumber+\",\"+this.selectionStartColumn+\" -> \"+this.positionLineNumber+\",\"+this.positionColumn+\"]\"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1},t.prototype.setEndPosition=function(e,n){return 0===this.getDirection()?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new n.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){\nreturn 0===this.getDirection()?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n<i;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0},t.isISelection=function(e){return e&&\"number\"==typeof e.selectionStartLineNumber&&\"number\"==typeof e.selectionStartColumn&&\"number\"==typeof e.positionLineNumber&&\"number\"==typeof e.positionColumn},t.createWithDirection=function(e,n,i,o,r){return 0===r?new t(e,n,i,o):new t(i,o,e,n)},t}(i.Range);t.Selection=o})),define(n[189],i([0,1,24,6,15,4,2,16,5,187,22,88]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.CopyOptions={forceCopyWithSyntaxHighlighting:!1};var p=function(){function e(){this._lastState=null}return e.prototype.set=function(e,t){this._lastState={lastCopiedValue:e,data:t}},e.prototype.get=function(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)},e.INSTANCE=new e,e}(),g=function(e){function t(t,r){var a=e.call(this)||this;a.textArea=r,a._onFocus=a._register(new s.Emitter),a.onFocus=a._onFocus.event,a._onBlur=a._register(new s.Emitter),a.onBlur=a._onBlur.event,a._onKeyDown=a._register(new s.Emitter),a.onKeyDown=a._onKeyDown.event,a._onKeyUp=a._register(new s.Emitter),a.onKeyUp=a._onKeyUp.event,a._onCut=a._register(new s.Emitter),a.onCut=a._onCut.event,a._onPaste=a._register(new s.Emitter),a.onPaste=a._onPaste.event,a._onType=a._register(new s.Emitter),a.onType=a._onType.event,a._onCompositionStart=a._register(new s.Emitter),a.onCompositionStart=a._onCompositionStart.event,a._onCompositionUpdate=a._register(new s.Emitter),\na.onCompositionUpdate=a._onCompositionUpdate.event,a._onCompositionEnd=a._register(new s.Emitter),a.onCompositionEnd=a._onCompositionEnd.event,a._onSelectionChangeRequest=a._register(new s.Emitter),a.onSelectionChangeRequest=a._onSelectionChangeRequest.event,a._host=t,a._textArea=a._register(new m(r)),a._asyncTriggerCut=a._register(new o.RunOnceScheduler((function(){return a._onCut.fire()}),0)),a._textAreaState=d.TextAreaState.EMPTY,a._selectionChangeListener=null,a.writeScreenReaderContent(\"ctor\"),a._hasFocus=!1,a._isDoingComposition=!1,a._nextCommand=0,a._register(i.addStandardDisposableListener(r.domNode,\"keydown\",(function(e){!a._isDoingComposition||109!==e.keyCode&&1!==e.keyCode||e.stopPropagation(),e.equals(9)&&e.preventDefault(),a._onKeyDown.fire(e)}))),a._register(i.addStandardDisposableListener(r.domNode,\"keyup\",(function(e){a._onKeyUp.fire(e)}))),a._register(i.addDisposableListener(r.domNode,\"compositionstart\",(function(e){a._isDoingComposition||(a._isDoingComposition=!0,\nn.isEdgeOrIE||a._setAndWriteTextAreaState(\"compositionstart\",d.TextAreaState.EMPTY),a._onCompositionStart.fire())})));var c=function(e){var t=a._textAreaState,n=d.TextAreaState.readFromTextArea(a._textArea);return[n,d.TextAreaState.deduceInput(t,n,e)]},h=function(e){var t=a._textAreaState,n=d.TextAreaState.selectedText(e);return[n,{text:n.value,replaceCharCnt:t.selectionEnd-t.selectionStart}]},p=function(e){return!(!n.isEdgeOrIE||\"ja\"!==e)||!(!n.isIE||0!==e.indexOf(\"zh-Han\"))};return a._register(i.addDisposableListener(r.domNode,\"compositionupdate\",(function(e){if(p(e.locale)){var t=c(!1),n=t[0],i=t[1];return a._textAreaState=n,a._onType.fire(i),void a._onCompositionUpdate.fire(e)}var o=h(e.data),r=o[0],s=o[1];a._textAreaState=r,a._onType.fire(s),a._onCompositionUpdate.fire(e)}))),a._register(i.addDisposableListener(r.domNode,\"compositionend\",(function(e){if(a._isDoingComposition){if(p(e.locale)){var t=c(!1),i=t[0],o=t[1];a._textAreaState=i,a._onType.fire(o)}else{var r=h(e.data);i=r[0],o=r[1]\n;a._textAreaState=i,a._onType.fire(o)}(n.isEdgeOrIE||n.isChrome)&&(a._textAreaState=d.TextAreaState.readFromTextArea(a._textArea)),a._isDoingComposition&&(a._isDoingComposition=!1,a._onCompositionEnd.fire())}}))),a._register(i.addDisposableListener(r.domNode,\"input\",(function(){if(a._textArea.setIgnoreSelectionChangeTime(\"received input event\"),!a._isDoingComposition){var e=c(l.isMacintosh),t=e[0],n=e[1];0===n.replaceCharCnt&&1===n.text.length&&u.isHighSurrogate(n.text.charCodeAt(0))||(a._textAreaState=t,0===a._nextCommand?\"\"!==n.text&&a._onType.fire(n):(\"\"===n.text&&0===n.replaceCharCnt||a._firePaste(n.text,null),a._nextCommand=0))}}))),a._register(i.addDisposableListener(r.domNode,\"cut\",(function(e){a._textArea.setIgnoreSelectionChangeTime(\"received cut event\"),a._ensureClipboardGetsEditorSelection(e),a._asyncTriggerCut.schedule()}))),a._register(i.addDisposableListener(r.domNode,\"copy\",(function(e){a._ensureClipboardGetsEditorSelection(e)}))),\na._register(i.addDisposableListener(r.domNode,\"paste\",(function(e){if(a._textArea.setIgnoreSelectionChangeTime(\"received paste event\"),f.canUseTextData(e)){var t=f.getTextData(e),n=t[0],i=t[1];\"\"!==n&&a._firePaste(n,i)}else a._textArea.getSelectionStart()!==a._textArea.getSelectionEnd()&&a._setAndWriteTextAreaState(\"paste\",d.TextAreaState.EMPTY),a._nextCommand=1}))),a._register(i.addDisposableListener(r.domNode,\"focus\",(function(){a._setHasFocus(!0)}))),a._register(i.addDisposableListener(r.domNode,\"blur\",(function(){a._setHasFocus(!1)}))),a}return r(t,e),t.prototype._installSelectionChangeListener=function(){var e=this,t=0;return i.addDisposableListener(document,\"selectionchange\",(function(i){if(e._hasFocus&&!e._isDoingComposition&&n.isChrome&&l.isWindows){var o=Date.now(),r=o-t;if(t=o,!(r<5)){var s=o-e._textArea.getIgnoreSelectionChangeTime();if(e._textArea.resetSelectionChangeTime(),!(s<100)&&e._textAreaState.selectionStartPosition&&e._textAreaState.selectionEndPosition){var a=e._textArea.getValue()\n;if(e._textAreaState.value===a){var u=e._textArea.getSelectionStart(),d=e._textArea.getSelectionEnd();if(e._textAreaState.selectionStart!==u||e._textAreaState.selectionEnd!==d){var h=e._textAreaState.deduceEditorPosition(u),p=e._host.deduceModelPosition(h[0],h[1],h[2]),g=e._textAreaState.deduceEditorPosition(d),f=e._host.deduceModelPosition(g[0],g[1],g[2]),m=new c.Selection(p.lineNumber,p.column,f.lineNumber,f.column);e._onSelectionChangeRequest.fire(m)}}}}}}))},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)},t.prototype.focusTextArea=function(){this._setHasFocus(!0),this.refreshFocusState()},t.prototype.isFocused=function(){return this._hasFocus},t.prototype.refreshFocusState=function(){var e=i.getShadowRoot(this.textArea.domNode)\n;e?this._setHasFocus(e.activeElement===this.textArea.domNode):i.isInDOM(this.textArea.domNode)?this._setHasFocus(document.activeElement===this.textArea.domNode):this._setHasFocus(!1)},t.prototype._setHasFocus=function(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&(n.isEdge?this._setAndWriteTextAreaState(\"focusgain\",d.TextAreaState.EMPTY):this.writeScreenReaderContent(\"focusgain\")),this._hasFocus?this._onFocus.fire():this._onBlur.fire())},t.prototype._setAndWriteTextAreaState=function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t},t.prototype.writeScreenReaderContent=function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))},\nt.prototype._ensureClipboardGetsEditorSelection=function(e){var t=this._host.getDataToCopy(f.canUseTextData(e)&&h.BrowserFeatures.clipboard.richText),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};p.INSTANCE.set(n.isFirefox?t.text.replace(/\\r\\n/g,\"\\n\"):t.text,i),f.canUseTextData(e)?f.setTextData(e,t.text,t.html,i):this._setAndWriteTextAreaState(\"copy or cut\",d.TextAreaState.selectedText(t.text))},t.prototype._firePaste=function(e,t){t||(t=p.INSTANCE.get(e)),this._onPaste.fire({text:e,metadata:t})},t}(a.Disposable);t.TextAreaInput=g;var f=function(){function e(){}return e.canUseTextData=function(e){return!!e.clipboardData||!!window.clipboardData},e.getTextData=function(e){if(e.clipboardData){e.preventDefault();var t=e.clipboardData.getData(\"text/plain\"),n=null,i=e.clipboardData.getData(\"vscode-editor-data\");if(\"string\"==typeof i)try{1!==(n=JSON.parse(i)).version&&(n=null)}catch(e){}return[t,n]}if(window.clipboardData)return e.preventDefault(),\n[t=window.clipboardData.getData(\"Text\"),null];throw new Error(\"ClipboardEventUtils.getTextData: Cannot use text data!\")},e.setTextData=function(e,t,n,i){if(e.clipboardData)return e.clipboardData.setData(\"text/plain\",t),\"string\"==typeof n&&e.clipboardData.setData(\"text/html\",n),e.clipboardData.setData(\"vscode-editor-data\",JSON.stringify(i)),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData(\"Text\",t),void e.preventDefault();throw new Error(\"ClipboardEventUtils.setTextData: Cannot use text data!\")},e}(),m=function(e){function t(t){var n=e.call(this)||this;return n._actual=t,n._ignoreSelectionChangeTime=0,n}return r(t,e),t.prototype.setIgnoreSelectionChangeTime=function(e){this._ignoreSelectionChangeTime=Date.now()},t.prototype.getIgnoreSelectionChangeTime=function(){return this._ignoreSelectionChangeTime},t.prototype.resetSelectionChangeTime=function(){this._ignoreSelectionChangeTime=0},t.prototype.getValue=function(){return this._actual.domNode.value},\nt.prototype.setValue=function(e,t){var n=this._actual.domNode;n.value!==t&&(this.setIgnoreSelectionChangeTime(\"setValue\"),n.value=t)},t.prototype.getSelectionStart=function(){return this._actual.domNode.selectionStart},t.prototype.getSelectionEnd=function(){return this._actual.domNode.selectionEnd},t.prototype.setSelectionRange=function(e,t,o){var r=this._actual.domNode,s=i.getShadowRoot(r),a=(s?s.activeElement:document.activeElement)===r,l=r.selectionStart,u=r.selectionEnd;if(a&&l===t&&u===o)n.isFirefox&&window.parent!==window&&r.focus();else{if(a)return this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),r.setSelectionRange(t,o),void(n.isFirefox&&window.parent!==window&&r.focus());try{var d=i.saveParentsScrollTop(r);this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),r.focus(),r.setSelectionRange(t,o),i.restoreParentsScrollTop(r,d)}catch(e){}}},t}(a.Disposable)})),define(n[80],i([0,1,22]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){\nvoid 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.endLineNumber,i.endColumn,i.endLineNumber,i.endColumn)},e}();t.ReplaceCommand=i;var o=function(){function e(e,t){this._range=e,this._text=t}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)},e}();t.ReplaceCommandThatSelectsText=o;var r=function(){function e(e,t,n){void 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){\nvar i=t.getInverseEditOperations()[0].range;return new n.Selection(i.startLineNumber,i.startColumn,i.startLineNumber,i.startColumn)},e}();t.ReplaceCommandWithoutChangingPosition=r;var s=function(){function e(e,t,n,i,o){void 0===o&&(o=!1),this._range=e,this._text=t,this._columnDeltaOffset=i,this._lineNumberDeltaOffset=n,this.insertsAutoWhitespace=o}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.endLineNumber+this._lineNumberDeltaOffset,i.endColumn+this._columnDeltaOffset,i.endLineNumber+this._lineNumberDeltaOffset,i.endColumn+this._columnDeltaOffset)},e}();t.ReplaceCommandWithOffsetCursorState=s;var a=function(){function e(e,t,n,i){void 0===i&&(i=!1),this._range=e,this._text=t,this._initialSelection=n,this._forceMoveMarkers=i,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){\nt.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._selectionId)},e}();t.ReplaceCommandThatPreservesSelection=a})),define(n[340],i([0,1,3,22]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(new n.Range(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new n.Range(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations(),o=n[0].range,r=n[1].range\n;return new i.Selection(o.endLineNumber,o.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)},e}();t.SurroundSelectionCommand=o})),define(n[106],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\"undefined\"!=typeof TextDecoder?t.createStringBuilder=function(e){return new i(e)}:t.createStringBuilder=function(e){return new o};var i=function(){function e(e){this._decoder=new TextDecoder(\"UTF-16LE\"),this._capacity=0|e,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}return e.prototype.reset=function(){this._completedStrings=null,this._bufferLength=0},e.prototype.build=function(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join(\"\")):this._buildBuffer()},e.prototype._buildBuffer=function(){if(0===this._bufferLength)return\"\";var e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return this._decoder.decode(e)},e.prototype._flushBuffer=function(){\nvar e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e},e.prototype.write1=function(e){var t=this._capacity-this._bufferLength;t<=1&&(0===t||n.isHighSurrogate(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCII=function(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCIIString=function(e){var t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(var n=0;n<t;n++)this._buffer[this._bufferLength++]=e.charCodeAt(n)},e}(),o=function(){function e(){this._pieces=[],this._piecesLen=0}return e.prototype.reset=function(){this._pieces=[],this._piecesLen=0},e.prototype.build=function(){return this._pieces.join(\"\")},e.prototype.write1=function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)},\ne.prototype.appendASCII=function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)},e.prototype.appendASCIIString=function(e){this._pieces[this._piecesLen++]=e},e}()})),define(n[143],i([0,1,28,106]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._createLine=e,this._set(1,[])}return e.prototype.flush=function(){this._set(1,[])},e.prototype._set=function(e,t){this._lines=t,this._rendLineNumberStart=e},e.prototype._get=function(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}},e.prototype.getStartLineNumber=function(){return this._rendLineNumberStart},e.prototype.getEndLineNumber=function(){return this._rendLineNumberStart+this._lines.length-1},e.prototype.getCount=function(){return this._lines.length},e.prototype.getLine=function(e){var t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error(\"Illegal value for lineNumber\");return this._lines[t]},e.prototype.onLinesDeleted=function(e,t){\nif(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(t<n){var o=t-e+1;return this._rendLineNumberStart-=o,null}if(e>i)return null;for(var r=0,s=0,a=n;a<=i;a++){var l=a-this._rendLineNumberStart;e<=a&&a<=t&&(0===s?(r=l,s=1):s++)}if(e<n){var u=0;u=t<n?t-e+1:n-e,this._rendLineNumberStart-=u}return this._lines.splice(r,s)},e.prototype.onLinesChanged=function(e,t){if(0===this.getCount())return!1;for(var n=this.getStartLineNumber(),i=this.getEndLineNumber(),o=!1,r=e;r<=t;r++)r>=n&&r<=i&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),o=!0);return o},e.prototype.onLinesInserted=function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>o)return null;if(n+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);for(var r=[],s=0;s<n;s++)r[s]=this._createLine()\n;var a=e-this._rendLineNumberStart,l=this._lines.slice(0,a),u=this._lines.slice(a,this._lines.length-n),d=this._lines.slice(this._lines.length-n,this._lines.length);return this._lines=l.concat(r).concat(u),d},e.prototype.onTokensChanged=function(e){if(0===this.getCount())return!1;for(var t=this.getStartLineNumber(),n=this.getEndLineNumber(),i=!1,o=0,r=e.length;o<r;o++){var s=e[o];if(!(s.toLineNumber<t||s.fromLineNumber>n))for(var a=Math.max(t,s.fromLineNumber),l=Math.min(n,s.toLineNumber),u=a;u<=l;u++){var d=u-this._rendLineNumberStart;this._lines[d].onTokensChanged(),i=!0}}return i},e}();t.RenderedLinesCollection=o;var r=function(){function e(e){var t=this;this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new o((function(){return t._host.createVisibleLine()}))}return e.prototype._createDomNode=function(){var e=n.createFastDomNode(document.createElement(\"div\"));return e.setClassName(\"view-layer\"),e.setPosition(\"absolute\"),e.domNode.setAttribute(\"role\",\"presentation\"),\ne.domNode.setAttribute(\"aria-hidden\",\"true\"),e},e.prototype.onConfigurationChanged=function(e){return!!e.hasChanged(107)},e.prototype.onFlushed=function(e){return this._linesCollection.flush(),!0},e.prototype.onLinesChanged=function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var o=t[n].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0},e.prototype.onLinesInserted=function(e){var t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var o=t[n].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0},e.prototype.onScrollChanged=function(e){return e.scrollTopChanged},e.prototype.onTokensChanged=function(e){return this._linesCollection.onTokensChanged(e.ranges)},e.prototype.onZonesChanged=function(e){return!0},e.prototype.getStartLineNumber=function(){\nreturn this._linesCollection.getStartLineNumber()},e.prototype.getEndLineNumber=function(){return this._linesCollection.getEndLineNumber()},e.prototype.getVisibleLine=function(e){return this._linesCollection.getLine(e)},e.prototype.renderLines=function(e){var t=this._linesCollection._get(),n=new s(this.domNode.domNode,this._host,e),i={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},o=n.render(i,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(o.rendLineNumberStart,o.lines)},e}();t.VisibleLinesCollection=r;var s=function(){function e(e,t,n){this.domNode=e,this.host=t,this.viewportData=n}return e.prototype.render=function(e,t,n,i){var o={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(o.rendLineNumberStart+o.linesLength-1<t||n<o.rendLineNumberStart){o.rendLineNumberStart=t,o.linesLength=n-t+1,o.lines=[];for(var r=t;r<=n;r++)o.lines[r-t]=this.host.createVisibleLine()\n;return this._finishRendering(o,!0,i),o}if(this._renderUntouchedLines(o,Math.max(t-o.rendLineNumberStart,0),Math.min(n-o.rendLineNumberStart,o.linesLength-1),i,t),o.rendLineNumberStart>t)(l=t)<=(s=Math.min(n,o.rendLineNumberStart-1))&&(this._insertLinesBefore(o,l,s,i,t),o.linesLength+=s-l+1);else if(o.rendLineNumberStart<t){(a=Math.min(o.linesLength,t-o.rendLineNumberStart))>0&&(this._removeLinesBefore(o,a),o.linesLength-=a)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1<n)(l=o.rendLineNumberStart+o.linesLength)<=(s=n)&&(this._insertLinesAfter(o,l,s,i,t),o.linesLength+=s-l+1);else if(o.rendLineNumberStart+o.linesLength-1>n){var s,a,l=Math.max(0,n-o.rendLineNumberStart+1);(a=(s=o.linesLength-1)-l+1)>0&&(this._removeLinesAfter(o,a),o.linesLength-=a)}return this._finishRendering(o,!1,i),o},e.prototype._renderUntouchedLines=function(e,t,n,i,o){for(var r=e.rendLineNumberStart,s=e.lines,a=t;a<=n;a++){var l=r+a;s[a].layoutLine(l,i[l-o])}},e.prototype._insertLinesBefore=function(e,t,n,i,o){\nfor(var r=[],s=0,a=t;a<=n;a++)r[s++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)},e.prototype._removeLinesBefore=function(e,t){for(var n=0;n<t;n++){var i=e.lines[n].getDomNode();i&&this.domNode.removeChild(i)}e.lines.splice(0,t)},e.prototype._insertLinesAfter=function(e,t,n,i,o){for(var r=[],s=0,a=t;a<=n;a++)r[s++]=this.host.createVisibleLine();e.lines=e.lines.concat(r)},e.prototype._removeLinesAfter=function(e,t){for(var n=e.linesLength-t,i=0;i<t;i++){var o=e.lines[n+i].getDomNode();o&&this.domNode.removeChild(o)}e.lines.splice(n,t)},e.prototype._finishRenderingNewLines=function(e,t,n,i){var o=this.domNode.lastChild;t||!o?this.domNode.innerHTML=n:o.insertAdjacentHTML(\"afterend\",n);for(var r=this.domNode.lastChild,s=e.linesLength-1;s>=0;s--){var a=e.lines[s];i[s]&&(a.setDomNode(r),r=r.previousSibling)}},e.prototype._finishRenderingInvalidLines=function(e,t,n){var i=document.createElement(\"div\");i.innerHTML=t;for(var o=0;o<e.linesLength;o++){var r=e.lines[o];if(n[o]){\nvar s=i.firstChild,a=r.getDomNode();a.parentNode.replaceChild(s,a),r.setDomNode(s)}}},e.prototype._finishRendering=function(t,n,i){var o=e._sb,r=t.linesLength,s=t.lines,a=t.rendLineNumberStart,l=[];o.reset();for(var u=!1,d=0;d<r;d++){var c=s[d];if(l[d]=!1,!c.getDomNode())c.renderLine(d+a,i[d],this.viewportData,o)&&(l[d]=!0,u=!0)}u&&this._finishRenderingNewLines(t,n,o.build(),l),o.reset();var h=!1,p=[];for(d=0;d<r;d++){c=s[d];if(p[d]=!1,!l[d])c.renderLine(d+a,i[d],this.viewportData,o)&&(p[d]=!0,h=!0)}h&&this._finishRenderingInvalidLines(t,o.build(),p)},e._sb=i.createStringBuilder(1e5),e}()})),define(n[107],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this.offset=0|e,this.type=t,this.language=n}return e.prototype.toString=function(){return\"(\"+this.offset+\", \"+this.type+\")\"},e}();t.Token=n;var i=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult=i;var o=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult2=o\n})),define(n[341],i([0,1,126,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=3;function r(e,t,i,o){return new n.LcsDiff(e,t,i).ComputeDiff(o)}var s=function(){function e(e){for(var t=[],n=[],i=0,o=e.length;i<o;i++)t[i]=c(e[i],1),n[i]=h(e[i],1);this.lines=e,this._startColumns=t,this._endColumns=n}return e.prototype.getElements=function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e},e.prototype.getStartLineNumber=function(e){return e+1},e.prototype.getEndLineNumber=function(e){return e+1},e.prototype.createCharSequence=function(e,t,n){for(var i=[],o=[],r=[],s=0,l=t;l<=n;l++)for(var u=this.lines[l],d=e?this._startColumns[l]:1,c=e?this._endColumns[l]:u.length+1,h=d;h<c;h++)i[s]=u.charCodeAt(h-1),o[s]=l+1,r[s]=h,s++;return new a(i,o,r)},e}(),a=function(){function e(e,t,n){this._charCodes=e,this._lineNumbers=t,this._columns=n}return e.prototype.getElements=function(){\nreturn this._charCodes},e.prototype.getStartLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getStartColumn=function(e){return this._columns[e]},e.prototype.getEndLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getEndColumn=function(e){return this._columns[e]+1},e}(),l=function(){function e(e,t,n,i,o,r,s,a){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=n,this.originalEndColumn=i,this.modifiedStartLineNumber=o,this.modifiedStartColumn=r,this.modifiedEndLineNumber=s,this.modifiedEndColumn=a}return e.createFromDiffChange=function(t,n,i){var o,r,s,a,l,u,d,c;return 0===t.originalLength?(o=0,r=0,s=0,a=0):(o=n.getStartLineNumber(t.originalStart),r=n.getStartColumn(t.originalStart),s=n.getEndLineNumber(t.originalStart+t.originalLength-1),a=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(l=0,u=0,d=0,c=0):(l=i.getStartLineNumber(t.modifiedStart),u=i.getStartColumn(t.modifiedStart),\nd=i.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),c=i.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(o,r,s,a,l,u,d,c)},e}();var u=function(){function e(e,t,n,i,o){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=n,this.modifiedEndLineNumber=i,this.charChanges=o}return e.createFromDiffResult=function(t,n,i,s,a,u,d){var c,h,p,g,f=void 0;if(0===n.originalLength?(c=i.getStartLineNumber(n.originalStart)-1,h=0):(c=i.getStartLineNumber(n.originalStart),h=i.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(p=s.getStartLineNumber(n.modifiedStart)-1,g=0):(p=s.getStartLineNumber(n.modifiedStart),g=s.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),u&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&a()){var m=i.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),v=s.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),_=r(m,v,a,!0).changes;d&&(_=function(e){\nif(e.length<=1)return e;for(var t=[e[0]],n=t[0],i=1,r=e.length;i<r;i++){var s=e[i],a=s.originalStart-(n.originalStart+n.originalLength),l=s.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(a,l)<o?(n.originalLength=s.originalStart+s.originalLength-n.originalStart,n.modifiedLength=s.modifiedStart+s.modifiedLength-n.modifiedStart):(t.push(s),n=s)}return t}(_)),f=[];for(var y=0,C=_.length;y<C;y++)f.push(l.createFromDiffChange(_[y],m,v))}return new e(c,h,p,g,f)},e}(),d=function(){function e(e,t,n){this.shouldComputeCharChanges=n.shouldComputeCharChanges,this.shouldPostProcessCharChanges=n.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=n.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=n.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new s(e),this.modified=new s(t),this.continueLineDiff=p(n.maxComputationTime),this.continueCharDiff=p(0===n.maxComputationTime?0:Math.min(n.maxComputationTime,5e3))}return e.prototype.computeDiff=function(){\nif(1===this.original.lines.length&&0===this.original.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=r(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){\nfor(var i=[],o=0,s=t.length;o<s;o++)i.push(u.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[o],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:i}}for(var a=[],l=0,d=0,p=(o=-1,t.length);o<p;o++){for(var g=o+1<p?t[o+1]:null,f=g?g.originalStart:this.originalLines.length,m=g?g.modifiedStart:this.modifiedLines.length;l<f&&d<m;){var v=this.originalLines[l],_=this.modifiedLines[d];if(v!==_){for(var y=c(v,1),C=c(_,1);y>1&&C>1;){if(v.charCodeAt(y-2)!==_.charCodeAt(C-2))break;y--,C--}(y>1||C>1)&&this._pushTrimWhitespaceCharChange(a,l+1,1,y,d+1,1,C);for(var b=h(v,1),S=h(_,1),w=v.length+1,E=_.length+1;b<w&&S<E;){if(v.charCodeAt(b-1)!==v.charCodeAt(S-1))break;b++,S++}(b<w||S<E)&&this._pushTrimWhitespaceCharChange(a,l+1,b,w,d+1,S,E)}l++,d++}g&&(a.push(u.createFromDiffResult(this.shouldIgnoreTrimWhitespace,g,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),\nl+=g.originalLength,d+=g.modifiedLength)}return{quitEarly:n,changes:a}},e.prototype._pushTrimWhitespaceCharChange=function(e,t,n,i,o,r,s){if(!this._mergeTrimWhitespaceCharChange(e,t,n,i,o,r,s)){var a=void 0;this.shouldComputeCharChanges&&(a=[new l(t,n,t,i,o,r,o,s)]),e.push(new u(t,t,o,o,a))}},e.prototype._mergeTrimWhitespaceCharChange=function(e,t,n,i,o,r,s){var a=e.length;if(0===a)return!1;var u=e[a-1];return 0!==u.originalEndLineNumber&&0!==u.modifiedEndLineNumber&&(u.originalEndLineNumber+1===t&&u.modifiedEndLineNumber+1===o&&(u.originalEndLineNumber=t,u.modifiedEndLineNumber=o,this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new l(t,n,t,i,o,r,o,s)),!0))},e}();function c(e,t){var n=i.firstNonWhitespaceIndex(e);return-1===n?t:n+1}function h(e,t){var n=i.lastNonWhitespaceIndex(e);return-1===n?t:n+2}function p(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}t.DiffComputer=d})),define(n[190],i([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i,o,r){this.id=e,this.label=t,this.alias=n,this._precondition=i,this._run=o,this._contextKeyService=r}return e.prototype.isSupported=function(){return this._contextKeyService.contextMatchesRules(this._precondition)},e.prototype.run=function(){if(!this.isSupported())return Promise.resolve(void 0);var e=this._run();return e||Promise.resolve(void 0)},e}();t.InternalEditorAction=n})),define(n[68],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isThemeColor=function(e){return e&&\"string\"==typeof e.id},t.EditorType={ICodeEditor:\"vs.editor.ICodeEditor\",IDiffEditor:\"vs.editor.IDiffEditor\"},t.Handler={ExecuteCommand:\"executeCommand\",ExecuteCommands:\"executeCommands\",Type:\"type\",ReplacePreviousChar:\"replacePreviousChar\",CompositionStart:\"compositionStart\",CompositionEnd:\"compositionEnd\",Paste:\"paste\",Cut:\"cut\",Undo:\"undo\",Redo:\"redo\"}})),define(n[108],i([0,1,68]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.isCodeEditor=function(e){return!(!e||\"function\"!=typeof e.getEditorType)&&e.getEditorType()===n.EditorType.ICodeEditor}})),define(n[48],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={}));var n=function(){function e(e){this.tabSize=Math.max(1,0|e.tabSize),this.indentSize=0|e.tabSize,this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=0|e.defaultEOL,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace)}return e.prototype.equals=function(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace},e.prototype.createChangeEvent=function(e){return{\ntabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}},e}();t.TextModelResolvedOptions=n;var i=function(e,t){this.range=e,this.matches=t};t.FindMatch=i;var o=function(e,t,n){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=n};t.ApplyEditsResult=o})),define(n[342],i([0,1,10]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this.beforeVersionId=e,this.beforeCursorState=t,this.afterCursorState=null,this.afterVersionId=-1,this.editOperations=[]}return e.prototype.undo=function(e){for(var t=this.editOperations.length-1;t>=0;t--)this.editOperations[t]={operations:e.applyEdits(this.editOperations[t].operations)}},e.prototype.redo=function(e){for(var t=0;t<this.editOperations.length;t++)this.editOperations[t]={operations:e.applyEdits(this.editOperations[t].operations)}},e}();function o(e){\nreturn\"\\n\"===e.getEOL()?0:1}var r=function(){function e(e,t){this.beforeVersionId=e,this.beforeCursorState=null,this.afterCursorState=null,this.afterVersionId=-1,this.eol=t}return e.prototype.undo=function(e){var t=o(e);e.setEOL(this.eol),this.eol=t},e.prototype.redo=function(e){var t=o(e);e.setEOL(this.eol),this.eol=t},e}(),s=function(){function e(e){this.model=e,this.currentOpenStackElement=null,this.past=[],this.future=[]}return e.prototype.pushStackElement=function(){null!==this.currentOpenStackElement&&(this.past.push(this.currentOpenStackElement),this.currentOpenStackElement=null)},e.prototype.clear=function(){this.currentOpenStackElement=null,this.past=[],this.future=[]},e.prototype.pushEOL=function(e){this.future=[],this.currentOpenStackElement&&this.pushStackElement();var t=o(this.model),n=new r(this.model.getAlternativeVersionId(),t);this.model.setEOL(e),n.afterVersionId=this.model.getVersionId(),this.currentOpenStackElement=n,this.pushStackElement()},e.prototype.pushEditOperation=function(t,n,o){\nthis.future=[];var r=null;this.currentOpenStackElement&&(this.currentOpenStackElement instanceof i?r=this.currentOpenStackElement:this.pushStackElement()),this.currentOpenStackElement||(r=new i(this.model.getAlternativeVersionId(),t),this.currentOpenStackElement=r);var s={operations:this.model.applyEdits(n)};return r.editOperations.push(s),r.afterCursorState=e._computeCursorState(o,s.operations),r.afterVersionId=this.model.getVersionId(),r.afterCursorState},e._computeCursorState=function(e,t){try{return e?e(t):null}catch(e){return n.onUnexpectedError(e),null}},e.prototype.undo=function(){if(this.pushStackElement(),this.past.length>0){var e=this.past.pop();try{e.undo(this.model)}catch(e){return n.onUnexpectedError(e),this.clear(),null}return this.future.push(e),{selections:e.beforeCursorState,recordedVersionId:e.beforeVersionId}}return null},e.prototype.canUndo=function(){return this.past.length>0||null!==this.currentOpenStackElement},e.prototype.redo=function(){if(this.future.length>0){var e=this.future.pop()\n;try{e.redo(this.model)}catch(e){return n.onUnexpectedError(e),this.clear(),null}return this.past.push(e),{selections:e.afterCursorState,recordedVersionId:e.afterVersionId}}return null},e.prototype.canRedo=function(){return this.future.length>0},e}();t.EditStack=s})),define(n[343],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){this.spacesDiff=0,this.looksLikeAlignment=!1};function i(e,t,n,i,o){var r;for(o.spacesDiff=0,o.looksLikeAlignment=!1,r=0;r<t&&r<i;r++){if(e.charCodeAt(r)!==n.charCodeAt(r))break}for(var s=0,a=0,l=r;l<t;l++){32===e.charCodeAt(l)?s++:a++}var u=0,d=0;for(l=r;l<i;l++){32===n.charCodeAt(l)?u++:d++}if(!(s>0&&a>0||u>0&&d>0)){var c=Math.abs(a-d),h=Math.abs(s-u);if(0===c)return o.spacesDiff=h,void(h>0&&0<=u-1&&u-1<e.length&&u<n.length&&32!==n.charCodeAt(u)&&32===e.charCodeAt(u-1)&&44===e.charCodeAt(e.length-1)&&(o.looksLikeAlignment=!0));h%c!=0||(o.spacesDiff=h/c)}}t.guessIndentation=function(e,t,o){\nfor(var r=Math.min(e.getLineCount(),1e4),s=0,a=0,l=\"\",u=0,d=[0,0,0,0,0,0,0,0,0],c=new n,h=1;h<=r;h++){for(var p=e.getLineLength(h),g=e.getLineContent(h),f=p<=65536,m=!1,v=0,_=0,y=0,C=0,b=p;C<b;C++){var S=f?g.charCodeAt(C):e.getLineCharCode(h,C);if(9===S)y++;else{if(32!==S){m=!0,v=C;break}_++}}if(m&&(y>0?s++:_>1&&a++,i(l,u,g,v,c),!c.looksLikeAlignment||o&&t===c.spacesDiff)){var w=c.spacesDiff;w<=8&&d[w]++,l=g,u=v}}var E=o;s!==a&&(E=s<a);var L=t;if(E){var D=E?0:.1*r;[2,4,6,8,3,5,7].forEach((function(e){var t=d[e];t>D&&(D=t,L=e)})),4===L&&d[4]>0&&d[2]>0&&d[2]>=d[4]/2&&(L=2)}return{insertSpaces:E,tabSize:L}}})),define(n[344],i([0,1]),(function(e,t){\"use strict\";function n(e){return(1&e.metadata)>>>0}function i(e,t){e.metadata=254&e.metadata|t<<0}function o(e){return(2&e.metadata)>>>1==1}function r(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function s(e){return(4&e.metadata)>>>2==1}function a(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function l(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function u(e,t){\ne.metadata=207&e.metadata|t<<4}function d(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getNodeColor=n,t.getNodeIsInOverviewRuler=function(e){return(8&e.metadata)>>>3==1};var c=function(){function e(e,t,n){this.metadata=0,this.parent=this,this.left=this,this.right=this,i(this,1),this.start=t,this.end=n,this.delta=0,this.maxEnd=n,this.id=e,this.ownerId=0,this.options=null,a(this,!1),u(this,1),l(this,!1),d(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=null,r(this,!1)}return e.prototype.reset=function(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i},e.prototype.setOptions=function(e){this.options=e;var t=this.options.className;a(this,\"squiggly-error\"===t||\"squiggly-warning\"===t||\"squiggly-info\"===t),u(this,this.options.stickiness),l(this,!(!this.options.overviewRuler||!this.options.overviewRuler.color)),\nd(this,this.options.collapseOnReplaceEdit)},e.prototype.setCachedOffsets=function(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}();t.IntervalNode=c,t.SENTINEL=new c(null,0,0),t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.left=t.SENTINEL,t.SENTINEL.right=t.SENTINEL,i(t.SENTINEL,0);var h=function(){function e(){this.root=t.SENTINEL,this.requestNormalizeDelta=!1}return e.prototype.intervalSearch=function(e,n,i,a,l){return this.root===t.SENTINEL?[]:function(e,n,i,a,l,u){var d=e.root,c=0,h=0,p=0,g=[],f=0;for(;d!==t.SENTINEL;)if(o(d))r(d.left,!1),r(d.right,!1),d===d.parent.right&&(c-=d.parent.delta),d=d.parent;else{if(!o(d.left)){if(c+d.maxEnd<n){r(d,!0);continue}if(d.left!==t.SENTINEL){d=d.left;continue}}if((h=c+d.start)>i)r(d,!0);else{if((p=c+d.end)>=n){d.setCachedOffsets(h,p,u);var m=!0;a&&d.ownerId&&d.ownerId!==a&&(m=!1),l&&s(d)&&(m=!1),m&&(g[f++]=d)}\nr(d,!0),d.right===t.SENTINEL||o(d.right)||(c+=d.delta,d=d.right)}}return r(e.root,!1),g}(this,e,n,i,a,l)},e.prototype.search=function(e,n,i){return this.root===t.SENTINEL?[]:function(e,n,i,a){var l=e.root,u=0,d=0,c=0,h=[],p=0;for(;l!==t.SENTINEL;)if(o(l))r(l.left,!1),r(l.right,!1),l===l.parent.right&&(u-=l.parent.delta),l=l.parent;else if(l.left===t.SENTINEL||o(l.left)){d=u+l.start,c=u+l.end,l.setCachedOffsets(d,c,a);var g=!0;n&&l.ownerId&&l.ownerId!==n&&(g=!1),i&&s(l)&&(g=!1),g&&(h[p++]=l),r(l,!0),l.right===t.SENTINEL||o(l.right)||(u+=l.delta,l=l.right)}else l=l.left;return r(e.root,!1),h}(this,e,n,i)},e.prototype.collectNodesFromOwner=function(e){return function(e,n){var i=e.root,s=[],a=0;for(;i!==t.SENTINEL;)o(i)?(r(i.left,!1),r(i.right,!1),i=i.parent):i.left===t.SENTINEL||o(i.left)?(i.ownerId===n&&(s[a++]=i),r(i,!0),i.right===t.SENTINEL||o(i.right)||(i=i.right)):i=i.left;return r(e.root,!1),s}(this,e)},e.prototype.collectNodesPostOrder=function(){return function(e){var n=e.root,i=[],s=0\n;for(;n!==t.SENTINEL;)o(n)?(r(n.left,!1),r(n.right,!1),n=n.parent):n.left===t.SENTINEL||o(n.left)?n.right===t.SENTINEL||o(n.right)?(i[s++]=n,r(n,!0)):n=n.right:n=n.left;return r(e.root,!1),i}(this)},e.prototype.insert=function(e){f(this,e),this._normalizeDeltaIfNecessary()},e.prototype.delete=function(e){m(this,e),this._normalizeDeltaIfNecessary()},e.prototype.resolveNode=function(e,t){for(var n=e,i=0;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;var o=n.start+i,r=n.end+i;n.setCachedOffsets(o,r,t)},e.prototype.acceptReplace=function(e,n,i,s){for(var a=function(e,n,i){var s=e.root,a=0,l=0,u=0,d=[],c=0;for(;s!==t.SENTINEL;)if(o(s))r(s.left,!1),r(s.right,!1),s===s.parent.right&&(a-=s.parent.delta),s=s.parent;else{if(!o(s.left)){if(a+s.maxEnd<n){r(s,!0);continue}if(s.left!==t.SENTINEL){s=s.left;continue}}(l=a+s.start)>i?r(s,!0):((u=a+s.end)>=n&&(s.setCachedOffsets(l,u,0),d[c++]=s),r(s,!0),s.right===t.SENTINEL||o(s.right)||(a+=s.delta,s=s.right))}return r(e.root,!1),d\n}(this,e,e+n),l=0,u=a.length;l<u;l++){m(this,d=a[l])}this._normalizeDeltaIfNecessary(),function(e,n,i,s){var a=e.root,l=0,u=s-(i-n);for(;a!==t.SENTINEL;)if(o(a))r(a.left,!1),r(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),b(a),a=a.parent;else{if(!o(a.left)){if(l+a.maxEnd<n){r(a,!0);continue}if(a.left!==t.SENTINEL){a=a.left;continue}}l+a.start>i?(a.start+=u,a.end+=u,a.delta+=u,(a.delta<-1073741824||a.delta>1073741824)&&(e.requestNormalizeDelta=!0),r(a,!0)):(r(a,!0),a.right===t.SENTINEL||o(a.right)||(l+=a.delta,a=a.right))}r(e.root,!1)}(this,e,e+n,i),this._normalizeDeltaIfNecessary();for(l=0,u=a.length;l<u;l++){var d;(d=a[l]).start=d.cachedAbsoluteStart,d.end=d.cachedAbsoluteEnd,g(d,e,e+n,i,s),d.maxEnd=d.end,f(this,d)}this._normalizeDeltaIfNecessary()},e.prototype._normalizeDeltaIfNecessary=function(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){var n=e.root,i=0;for(;n!==t.SENTINEL;)n.left===t.SENTINEL||o(n.left)?n.right===t.SENTINEL||o(n.right)?(n.start=i+n.start,n.end=i+n.end,\nn.delta=0,b(n),r(n,!0),r(n.left,!1),r(n.right,!1),n===n.parent.right&&(i-=n.parent.delta),n=n.parent):(i+=n.delta,n=n.right):n=n.left;r(e.root,!1)}(this))},e}();function p(e,t,n,i){return e<n||!(e>n)&&(1!==i&&(2===i||t))}function g(e,t,n,i,o){var r=function(e){return(48&e.metadata)>>>4}(e),s=0===r||2===r,a=1===r||2===r,l=n-t,u=i,d=Math.min(l,u),c=e.start,h=!1,g=e.end,f=!1;t<=c&&g<=n&&function(e){return(64&e.metadata)>>>6==1}(e)&&(e.start=t,h=!0,e.end=t,f=!0);var m=o?1:l>0?2:0;if(!h&&p(c,s,t,m)&&(h=!0),!f&&p(g,a,t,m)&&(f=!0),d>0&&!o){m=l>u?2:0;!h&&p(c,s,t+d,m)&&(h=!0),!f&&p(g,a,t+d,m)&&(f=!0)}m=o?1:0;!h&&p(c,s,n,m)&&(e.start=t+u,h=!0),!f&&p(g,a,n,m)&&(e.end=t+u,f=!0);var v=u-l;h||(e.start=Math.max(0,c+v)),f||(e.end=Math.max(0,g+v)),e.start>e.end&&(e.end=e.start)}function f(e,o){if(e.root===t.SENTINEL)return o.parent=t.SENTINEL,o.left=t.SENTINEL,o.right=t.SENTINEL,i(o,0),e.root=o,e.root;!function(e,n){var o=0,r=e.root,s=n.start,a=n.end;for(;;){if(w(s,a,r.start+o,r.end+o)<0){if(r.left===t.SENTINEL){n.start-=o,\nn.end-=o,n.maxEnd-=o,r.left=n;break}r=r.left}else{if(r.right===t.SENTINEL){n.start-=o+r.delta,n.end-=o+r.delta,n.maxEnd-=o+r.delta,r.right=n;break}o+=r.delta,r=r.right}}n.parent=r,n.left=t.SENTINEL,n.right=t.SENTINEL,i(n,1)}(e,o),S(o.parent);for(var r=o;r!==e.root&&1===n(r.parent);){var s;if(r.parent===r.parent.parent.left)1===n(s=r.parent.parent.right)?(i(r.parent,0),i(s,0),i(r.parent.parent,1),r=r.parent.parent):(r===r.parent.right&&_(e,r=r.parent),i(r.parent,0),i(r.parent.parent,1),y(e,r.parent.parent));else 1===n(s=r.parent.parent.left)?(i(r.parent,0),i(s,0),i(r.parent.parent,1),r=r.parent.parent):(r===r.parent.left&&y(e,r=r.parent),i(r.parent,0),i(r.parent.parent,1),_(e,r.parent.parent))}return i(e.root,0),o}function m(e,o){var r,s;if(o.left===t.SENTINEL?(s=o,(r=o.right).delta+=o.delta,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),r.start+=o.delta,r.end+=o.delta):o.right===t.SENTINEL?(r=o.left,s=o):((r=(s=function(e){for(;e.left!==t.SENTINEL;)e=e.left;return e\n}(o.right)).right).start+=s.delta,r.end+=s.delta,r.delta+=s.delta,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),s.start+=o.delta,s.end+=o.delta,s.delta=o.delta,(s.delta<-1073741824||s.delta>1073741824)&&(e.requestNormalizeDelta=!0)),s===e.root)return e.root=r,i(r,0),o.detach(),v(),b(r),void(e.root.parent=t.SENTINEL);var a,l=1===n(s);if(s===s.parent.left?s.parent.left=r:s.parent.right=r,s===o?r.parent=s.parent:(s.parent===o?r.parent=s:r.parent=s.parent,s.left=o.left,s.right=o.right,s.parent=o.parent,i(s,n(o)),o===e.root?e.root=s:o===o.parent.left?o.parent.left=s:o.parent.right=s,s.left!==t.SENTINEL&&(s.left.parent=s),s.right!==t.SENTINEL&&(s.right.parent=s)),o.detach(),l)return S(r.parent),s!==o&&(S(s),S(s.parent)),void v();for(S(r),S(r.parent),s!==o&&(S(s),S(s.parent));r!==e.root&&0===n(r);)r===r.parent.left?(1===n(a=r.parent.right)&&(i(a,0),i(r.parent,1),_(e,r.parent),a=r.parent.right),0===n(a.left)&&0===n(a.right)?(i(a,1),r=r.parent):(0===n(a.right)&&(i(a.left,0),i(a,1),y(e,a),\na=r.parent.right),i(a,n(r.parent)),i(r.parent,0),i(a.right,0),_(e,r.parent),r=e.root)):(1===n(a=r.parent.left)&&(i(a,0),i(r.parent,1),y(e,r.parent),a=r.parent.left),0===n(a.left)&&0===n(a.right)?(i(a,1),r=r.parent):(0===n(a.left)&&(i(a.right,0),i(a,1),_(e,a),a=r.parent.left),i(a,n(r.parent)),i(r.parent,0),i(a.left,0),y(e,r.parent),r=e.root));i(r,0),v()}function v(){t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.delta=0,t.SENTINEL.start=0,t.SENTINEL.end=0}function _(e,n){var i=n.right;i.delta+=n.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=n.delta,i.end+=n.delta,n.right=i.left,i.left!==t.SENTINEL&&(i.left.parent=n),i.parent=n.parent,n.parent===t.SENTINEL?e.root=i:n===n.parent.left?n.parent.left=i:n.parent.right=i,i.left=n,n.parent=i,b(n),b(i)}function y(e,n){var i=n.left;n.delta-=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start-=i.delta,n.end-=i.delta,n.left=i.right,i.right!==t.SENTINEL&&(i.right.parent=n),i.parent=n.parent,\nn.parent===t.SENTINEL?e.root=i:n===n.parent.right?n.parent.right=i:n.parent.left=i,i.right=n,n.parent=i,b(n),b(i)}function C(e){var n=e.end;if(e.left!==t.SENTINEL){var i=e.left.maxEnd;i>n&&(n=i)}if(e.right!==t.SENTINEL){var o=e.right.maxEnd+e.delta;o>n&&(n=o)}return n}function b(e){e.maxEnd=C(e)}function S(e){for(;e!==t.SENTINEL;){var n=C(e);if(e.maxEnd===n)return;e.maxEnd=n,e=e.parent}}function w(e,t,n,i){return e===n?t-i:e-n}t.IntervalTree=h,t.nodeAcceptEdit=g,t.recomputeMaxEnd=b,t.intervalCompare=w})),define(n[345],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}return e.prototype.next=function(){if(this.right!==t.SENTINEL)return i(this.right);for(var e=this;e.parent!==t.SENTINEL&&e.parent.left!==e;)e=e.parent;return e.parent===t.SENTINEL?t.SENTINEL:e.parent},e.prototype.prev=function(){if(this.left!==t.SENTINEL)return o(this.left)\n;for(var e=this;e.parent!==t.SENTINEL&&e.parent.right!==e;)e=e.parent;return e.parent===t.SENTINEL?t.SENTINEL:e.parent},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}();function i(e){for(;e.left!==t.SENTINEL;)e=e.left;return e}function o(e){for(;e.right!==t.SENTINEL;)e=e.right;return e}function r(e){return e===t.SENTINEL?0:e.size_left+e.piece.length+r(e.right)}function s(e){return e===t.SENTINEL?0:e.lf_left+e.piece.lineFeedCnt+s(e.right)}function a(){t.SENTINEL.parent=t.SENTINEL}function l(e,n){var i=n.right;i.size_left+=n.size_left+(n.piece?n.piece.length:0),i.lf_left+=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),n.right=i.left,i.left!==t.SENTINEL&&(i.left.parent=n),i.parent=n.parent,n.parent===t.SENTINEL?e.root=i:n.parent.left===n?n.parent.left=i:n.parent.right=i,i.left=n,n.parent=i}function u(e,n){var i=n.left;n.left=i.right,i.right!==t.SENTINEL&&(i.right.parent=n),i.parent=n.parent,n.size_left-=i.size_left+(i.piece?i.piece.length:0),\nn.lf_left-=i.lf_left+(i.piece?i.piece.lineFeedCnt:0),n.parent===t.SENTINEL?e.root=i:n===n.parent.right?n.parent.right=i:n.parent.left=i,i.right=n,n.parent=i}function d(e,n,i,o){for(;n!==e.root&&n!==t.SENTINEL;)n.parent.left===n&&(n.parent.size_left+=i,n.parent.lf_left+=o),n=n.parent}function c(e,t){var n=0,i=0;if(t!==e.root){if(0===n){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t===e.root)return;n=r((t=t.parent).left)-t.size_left,i=s(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i}for(;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}t.TreeNode=n,t.SENTINEL=new n(null,0),t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.left=t.SENTINEL,t.SENTINEL.right=t.SENTINEL,t.SENTINEL.color=0,t.leftest=i,t.righttest=o,t.calculateSize=r,t.calculateLF=s,t.resetSentinel=a,t.leftRotate=l,t.rightRotate=u,t.rbDelete=function(e,n){var o,h;if(o=n.left===t.SENTINEL?(h=n).right:n.right===t.SENTINEL?(h=n).left:(h=i(n.right)).right,h===e.root)return e.root=o,o.color=0,n.detach(),a(),\nvoid(e.root.parent=t.SENTINEL);var p=1===h.color;if(h===h.parent.left?h.parent.left=o:h.parent.right=o,h===n?(o.parent=h.parent,c(e,o)):(h.parent===n?o.parent=h:o.parent=h.parent,c(e,o),h.left=n.left,h.right=n.right,h.parent=n.parent,h.color=n.color,n===e.root?e.root=h:n===n.parent.left?n.parent.left=h:n.parent.right=h,h.left!==t.SENTINEL&&(h.left.parent=h),h.right!==t.SENTINEL&&(h.right.parent=h),h.size_left=n.size_left,h.lf_left=n.lf_left,c(e,h)),n.detach(),o.parent.left===o){var g=r(o),f=s(o);if(g!==o.parent.size_left||f!==o.parent.lf_left){var m=g-o.parent.size_left,v=f-o.parent.lf_left;o.parent.size_left=g,o.parent.lf_left=f,d(e,o.parent,m,v)}}if(c(e,o.parent),p)a();else{for(var _;o!==e.root&&0===o.color;)o===o.parent.left?(1===(_=o.parent.right).color&&(_.color=0,o.parent.color=1,l(e,o.parent),_=o.parent.right),0===_.left.color&&0===_.right.color?(_.color=1,o=o.parent):(0===_.right.color&&(_.left.color=0,_.color=1,u(e,_),_=o.parent.right),_.color=o.parent.color,o.parent.color=0,_.right.color=0,\nl(e,o.parent),o=e.root)):(1===(_=o.parent.left).color&&(_.color=0,o.parent.color=1,u(e,o.parent),_=o.parent.left),0===_.left.color&&0===_.right.color?(_.color=1,o=o.parent):(0===_.left.color&&(_.right.color=0,_.color=1,l(e,_),_=o.parent.left),_.color=o.parent.color,o.parent.color=0,_.left.color=0,u(e,o.parent),o=e.root));o.color=0,a()}},t.fixInsert=function(e,t){for(c(e,t);t!==e.root&&1===t.parent.color;){var n;if(t.parent===t.parent.parent.left)1===(n=t.parent.parent.right).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&l(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,u(e,t.parent.parent));else 1===(n=t.parent.parent.left).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&u(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,l(e,t.parent.parent))}e.root.color=0},t.updateTreeMetadata=d,t.recomputeTreeMetadata=c})),define(n[346],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var n=function(){this.changeType=1};t.ModelRawFlush=n;var i=function(e,t){this.changeType=2,this.lineNumber=e,this.detail=t};t.ModelRawLineChanged=i;var o=function(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t};t.ModelRawLinesDeleted=o;var r=function(e,t,n){this.changeType=4,this.fromLineNumber=e,this.toLineNumber=t,this.detail=n};t.ModelRawLinesInserted=r;var s=function(){this.changeType=5};t.ModelRawEOLChanged=s;var a=function(){function e(e,t,n,i){this.changes=e,this.versionId=t,this.isUndoing=n,this.isRedoing=i}return e.prototype.containsEvent=function(e){for(var t=0,n=this.changes.length;t<n;t++){if(this.changes[t].changeType===e)return!0}return!1},e.merge=function(t,n){return new e([].concat(t.changes).concat(n.changes),n.versionId,t.isUndoing||n.isUndoing,t.isRedoing||n.isRedoing)},e}();t.ModelRawContentChangedEvent=a;var l=function(){function e(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}return e.prototype.merge=function(t){\nvar n=a.merge(this.rawContentChangedEvent,t.rawContentChangedEvent),i=e._mergeChangeEvents(this.contentChangedEvent,t.contentChangedEvent);return new e(n,i)},e._mergeChangeEvents=function(e,t){return{changes:[].concat(e.changes).concat(t.changes),eol:t.eol,versionId:t.versionId,isUndoing:e.isUndoing||t.isUndoing,isRedoing:e.isRedoing||t.isRedoing,isFlush:e.isFlush||t.isFlush}},e}();t.InternalModelContentChangeEvent=l})),define(n[144],i([0,1,5,89,13,3,48]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t,n,i){this.searchString=e,this.isRegex=t,this.matchCase=n,this.wordSeparators=i}return e.prototype.parseSearchRequest=function(){if(\"\"===this.searchString)return null;var e;e=this.isRegex?l(this.searchString):this.searchString.indexOf(\"\\n\")>=0;var t=null;try{t=n.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(e){return null}if(!t)return null;var o=!this.isRegex&&!e\n;return o&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(o=this.matchCase),new u(t,this.wordSeparators?i.getMapForWordSeparators(this.wordSeparators):null,o?this.searchString:null)},e}();function l(e){if(!e||0===e.length)return!1;for(var t=0,n=e.length;t<n;t++){if(92===e.charCodeAt(t)){if(++t>=n)break;var i=e.charCodeAt(t);if(110===i||114===i||87===i||119===i)return!0}}return!1}t.SearchParams=a,t.isMultilineRegexSource=l;var u=function(e,t,n){this.regex=e,this.wordSeparators=t,this.simpleSearch=n};function d(e,t,n){if(!n)return new s.FindMatch(e,null);for(var i=[],o=0,r=t.length;o<r;o++)i[o]=t[o];return new s.FindMatch(e,i)}t.SearchData=u,t.createFindMatch=d;var c=function(){function e(e){for(var t=[],n=0,i=0,o=e.length;i<o;i++)10===e.charCodeAt(i)&&(t[n++]=i);this._lineFeedsOffsets=t}return e.prototype.findLineFeedCountBeforeOffset=function(e){var t=this._lineFeedsOffsets,n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){var o=n+((i-n)/2>>0)\n;t[o]>=e?i=o-1:t[o+1]>=e?(n=o,i=o):n=o+1}return n+1},e}(),h=function(){function e(){}return e.findMatches=function(e,t,n,i,o){var r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,n,new g(r.wordSeparators,r.regex),i,o):this._doFindMatchesLineByLine(e,n,r,i,o):[]},e._getMultilineMatchRange=function(e,t,n,i,o,s){var a,l,u=0;if(a=i?t+o+(u=i.findLineFeedCountBeforeOffset(o)):t+o,i){var d=i.findLineFeedCountBeforeOffset(o+s.length)-u;l=a+s.length+d}else l=a+s.length;var c=e.getPositionAt(a),h=e.getPositionAt(l);return new r.Range(c.lineNumber,c.column,h.lineNumber,h.column)},e._doFindMatchesMultiline=function(e,t,n,i,o){var r,s=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=\"\\r\\n\"===e.getEOL()?new c(a):null,u=[],h=0;for(n.reset(0);r=n.next(a);)if(u[h++]=d(this._getMultilineMatchRange(e,s,a,l,r.index,r[0]),r,i),h>=o)return u;return u},e._doFindMatchesLineByLine=function(e,t,n,i,o){var r=[],s=0;if(t.startLineNumber===t.endLineNumber){\nvar a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return s=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,s,r,i,o),r}var l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);s=this._findMatchesInLine(n,l,t.startLineNumber,t.startColumn-1,s,r,i,o);for(var u=t.startLineNumber+1;u<t.endLineNumber&&s<o;u++)s=this._findMatchesInLine(n,e.getLineContent(u),u,0,s,r,i,o);if(s<o){var d=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);s=this._findMatchesInLine(n,d,t.endLineNumber,0,s,r,i,o)}return r},e._findMatchesInLine=function(e,t,n,i,o,a,l,u){var c=e.wordSeparators;if(!l&&e.simpleSearch){for(var h=e.simpleSearch,f=h.length,m=t.length,v=-f;-1!==(v=t.indexOf(h,v+f));)if((!c||p(c,t,m,v,f))&&(a[o++]=new s.FindMatch(new r.Range(n,v+1+i,n,v+1+f+i),null),o>=u))return o;return o}var _,y=new g(e.wordSeparators,e.regex);y.reset(0);do{if((_=y.next(t))&&(a[o++]=d(new r.Range(n,_.index+1+i,n,_.index+1+_[0].length+i),_,l),o>=u))return o}while(_);return o},\ne.findNextMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,n,r,i):this._doFindNextMatchLineByLine(e,n,r,i)},e._doFindNextMatchMultiline=function(e,t,n,i){var s=new o.Position(t.lineNumber,1),a=e.getOffsetAt(s),l=e.getLineCount(),u=e.getValueInRange(new r.Range(s.lineNumber,s.column,l,e.getLineMaxColumn(l)),1),h=\"\\r\\n\"===e.getEOL()?new c(u):null;n.reset(t.column-1);var p=n.next(u);return p?d(this._getMultilineMatchRange(e,a,u,h,p.index,p[0]),p,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new o.Position(1,1),n,i):null},e._doFindNextMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r),a=this._findFirstMatchInLine(n,s,r,t.column,i);if(a)return a;for(var l=1;l<=o;l++){var u=(r+l-1)%o,d=e.getLineContent(u+1),c=this._findFirstMatchInLine(n,d,u+1,1,i);if(c)return c}return null},e._findFirstMatchInLine=function(e,t,n,i,o){e.reset(i-1)\n;var s=e.next(t);return s?d(new r.Range(n,s.index+1,n,s.index+1+s[0].length),s,o):null},e.findPreviousMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,n,r,i):this._doFindPreviousMatchLineByLine(e,n,r,i)},e._doFindPreviousMatchMultiline=function(e,t,n,i){var s=this._doFindMatchesMultiline(e,new r.Range(1,1,t.lineNumber,t.column),n,i,9990);if(s.length>0)return s[s.length-1];var a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new o.Position(a,e.getLineMaxColumn(a)),n,i):null},e._doFindPreviousMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r).substring(0,t.column-1),a=this._findLastMatchInLine(n,s,r,i);if(a)return a;for(var l=1;l<=o;l++){var u=(o+r-l-1)%o,d=e.getLineContent(u+1),c=this._findLastMatchInLine(n,d,u+1,i);if(c)return c}return null},e._findLastMatchInLine=function(e,t,n,i){\nvar o,s=null;for(e.reset(0);o=e.next(t);)s=d(new r.Range(n,o.index+1,n,o.index+1+o[0].length),o,i);return s},e}();function p(e,t,n,i,o){return function(e,t,n,i,o){if(0===i)return!0;var r=t.charCodeAt(i-1);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(o>0){var s=t.charCodeAt(i);if(0!==e.get(s))return!0}return!1}(e,t,0,i,o)&&function(e,t,n,i,o){if(i+o===n)return!0;var r=t.charCodeAt(i+o);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(o>0){var s=t.charCodeAt(i+o-1);if(0!==e.get(s))return!0}return!1}(e,t,n,i,o)}t.TextModelSearch=h,t.isValidMatch=p;var g=function(){function e(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return e.prototype.reset=function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0},e.prototype.next=function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,o=t[0].length\n;if(i===this._prevMatchStartIndex&&o===this._prevMatchLength){if(0===o){this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=i,this._prevMatchLength=o,!this._wordSeparators||p(this._wordSeparators,e,n,i,o))return t}while(t);return null},e}();t.Searcher=g})),define(n[191],i([0,1,13,3,48,345,144]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e){var t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.AverageBufferSize=65535,t.createUintArray=a;var l=function(e,t,n,i,o){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=o};function u(e,t){void 0===t&&(t=!0);for(var n=[0],i=1,o=0,r=e.length;o<r;o++){var s=e.charCodeAt(o);13===s?o+1<r&&10===e.charCodeAt(o+1)?(n[i++]=o+2,o++):n[i++]=o+1:10===s&&(n[i++]=o+1)}return t?a(n):n}t.LineStarts=l,t.createLineStartsFast=u,t.createLineStarts=function(e,t){e.length=0,e[0]=0;for(var n=1,i=0,o=0,r=0,s=!0,u=0,d=t.length;u<d;u++){\nvar c=t.charCodeAt(u);13===c?u+1<d&&10===t.charCodeAt(u+1)?(r++,e[n++]=u+2,u++):(i++,e[n++]=u+1):10===c?(o++,e[n++]=u+1):s&&9!==c&&(c<32||c>126)&&(s=!1)}var h=new l(a(e),i,o,r,s);return e.length=0,h};var d=function(e,t,n,i,o){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=o};t.Piece=d;var c=function(e,t){this.buffer=e,this.lineStarts=t};t.StringBuffer=c;var h=function(){function e(e){this._limit=e,this._cache=[]}return e.prototype.get=function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null},e.prototype.get2=function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<e&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=e)return n}return null},e.prototype.set=function(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)},e.prototype.valdiate=function(e){for(var t=!1,n=this._cache,i=0;i<n.length;i++){\nvar o=n[i];(null===o.node.parent||o.nodeStartOffset>=e)&&(n[i]=null,t=!0)}if(t){for(var r=[],s=0,a=n;s<a.length;s++){var l=a[s];null!==l&&r.push(l)}this._cache=r}},e}(),p=function(){function e(e,t,n){this.create(e,t,n)}return e.prototype.create=function(e,t,n){this._buffers=[new c(\"\",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=r.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;for(var i=null,o=0,s=e.length;o<s;o++)if(e[o].buffer.length>0){e[o].lineStarts||(e[o].lineStarts=u(e[o].buffer));var a=new d(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),i=this.rbInsertRight(i,a)}this._searchCache=new h(1),this._lastVisitedLine={lineNumber:0,value:\"\"},this.computeBufferMetadata()},e.prototype.normalizeEOL=function(e){var n=this,i=t.AverageBufferSize,o=i-Math.floor(i/3),r=2*o,s=\"\",a=0,l=[]\n;if(this.iterate(this.root,(function(t){var i=n.getNodeContent(t),d=i.length;if(a<=o||a+d<r)return s+=i,a+=d,!0;var h=s.replace(/\\r\\n|\\r|\\n/g,e);return l.push(new c(h,u(h))),s=i,a=d,!0})),a>0){var d=s.replace(/\\r\\n|\\r|\\n/g,e);l.push(new c(d,u(d)))}this.create(l,e,!0)},e.prototype.getEOL=function(){return this._EOL},e.prototype.setEOL=function(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)},e.prototype.getOffsetAt=function(e,t){for(var n=0,i=this.root;i!==r.SENTINEL;)if(i.left!==r.SENTINEL&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return(n+=i.size_left)+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n},e.prototype.getPositionAt=function(e){e=Math.floor(e),e=Math.max(0,e);for(var t=this.root,i=0,o=e;t!==r.SENTINEL;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){var s=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+s.index,0===s.index){\nvar a=o-this.getOffsetAt(i+1,1);return new n.Position(i+1,a+1)}return new n.Position(i+1,s.remainder+1)}if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===r.SENTINEL){a=o-e-this.getOffsetAt(i+1,1);return new n.Position(i+1,a+1)}t=t.right}return new n.Position(1,1)},e.prototype.getValueInRange=function(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return\"\";var n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\\r\\n|\\r|\\n/g,t):o},e.prototype.getValueInRange2=function(e,t){if(e.node===t.node){var n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,o=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(o+e.remainder,o+t.remainder)}\nvar s=e.node,a=this._buffers[s.piece.bufferIndex].buffer,l=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start),u=a.substring(l+e.remainder,l+s.piece.length);for(s=s.next();s!==r.SENTINEL;){var d=this._buffers[s.piece.bufferIndex].buffer,c=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);if(s===t.node){u+=d.substring(c,c+t.remainder);break}u+=d.substr(c,s.piece.length),s=s.next()}return u},e.prototype.getLinesContent=function(){var e=this,t=[],n=0,i=\"\",o=!1;return this.iterate(this.root,(function(s){if(s===r.SENTINEL)return!0;var a=s.piece,l=a.length;if(0===l)return!0;var u=e._buffers[a.bufferIndex].buffer,d=e._buffers[a.bufferIndex].lineStarts,c=a.start.line,h=a.end.line,p=d[c]+a.start.column;if(o&&(10===u.charCodeAt(p)&&(p++,l--),t[n++]=i,i=\"\",o=!1,0===l))return!0;if(c===h)return e._EOLNormalized||13!==u.charCodeAt(p+l-1)?i+=u.substr(p,l):(o=!0,i+=u.substr(p,l-1)),!0;i+=e._EOLNormalized?u.substring(p,Math.max(p,d[c+1]-e._EOLLength)):u.substring(p,d[c+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),t[n++]=i\n;for(var g=c+1;g<h;g++)i=e._EOLNormalized?u.substring(d[g],d[g+1]-e._EOLLength):u.substring(d[g],d[g+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),t[n++]=i;return e._EOLNormalized||13!==u.charCodeAt(d[h]+a.end.column-1)?i=u.substr(d[h],a.end.column):(o=!0,0===a.end.column?n--:i=u.substr(d[h],a.end.column-1)),!0})),o&&(t[n++]=i,i=\"\"),t[n++]=i,t},e.prototype.getLength=function(){return this._length},e.prototype.getLineCount=function(){return this._lineCnt},e.prototype.getLineContent=function(e){return this._lastVisitedLine.lineNumber===e?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\\r\\n|\\r|\\n)$/,\"\"),this._lastVisitedLine.value)},e.prototype.getLineCharCode=function(e,t){var n=this.nodeAt2(e,t+1);if(n.remainder===n.node.piece.length){var i=n.node.next();if(!i)return 0\n;var o=this._buffers[i.piece.bufferIndex],r=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o.buffer.charCodeAt(r)}o=this._buffers[n.node.piece.bufferIndex];var s=(r=this.offsetInBuffer(n.node.piece.bufferIndex,n.node.piece.start))+n.remainder;return o.buffer.charCodeAt(s)},e.prototype.getLineLength=function(e){if(e===this.getLineCount()){var t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength},e.prototype.findMatchesInNode=function(e,t,n,o,r,a,l,u,d,c,h){var p,g,f,m=this._buffers[e.piece.bufferIndex],v=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),_=this.offsetInBuffer(e.piece.bufferIndex,r),y=this.offsetInBuffer(e.piece.bufferIndex,a),C={line:0,column:0};t._wordSeparators?(g=m.buffer.substring(_,y),f=function(e){return e+_},t.reset(-1)):(g=m.buffer,f=function(e){return e},t.reset(_));do{if(p=t.next(g)){if(f(p.index)>=y)return c;this.positionInBuffer(e,f(p.index)-v,C)\n;var b=this.getLineFeedCnt(e.piece.bufferIndex,r,C),S=C.line===r.line?C.column-r.column+o:C.column+1,w=S+p[0].length;if(h[c++]=s.createFindMatch(new i.Range(n+b,S,n+b,w),p,u),f(p.index)+p[0].length>=y)return c;if(c>=d)return c}}while(p);return c},e.prototype.findMatchesLineByLine=function(e,t,n,i){var o=[],r=0,a=new s.Searcher(t.wordSeparators,t.regex),l=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===l)return[];var u=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===u)return[];var d=this.positionInBuffer(l.node,l.remainder),c=this.positionInBuffer(u.node,u.remainder);if(l.node===u.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,d,c,t,n,i,r,o),o;for(var h=e.startLineNumber,p=l.node;p!==u.node;){var g=this.getLineFeedCnt(p.piece.bufferIndex,d,p.piece.end);if(g>=1){var f=this._buffers[p.piece.bufferIndex].lineStarts,m=this.offsetInBuffer(p.piece.bufferIndex,p.piece.start),v=f[d.line+g],_=h===e.startLineNumber?e.startColumn:1\n;if((r=this.findMatchesInNode(p,a,h,_,d,this.positionInBuffer(p,v-m),t,n,i,r,o))>=i)return o;h+=g}var y=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){var C=this.getLineContent(h).substring(y,e.endColumn-1);return r=this._findMatchesInLine(t,a,C,e.endLineNumber,y,r,o,n,i),o}if((r=this._findMatchesInLine(t,a,this.getLineContent(h).substr(y),h,y,r,o,n,i))>=i)return o;h++,p=(l=this.nodeAt2(h,1)).node,d=this.positionInBuffer(l.node,l.remainder)}if(h===e.endLineNumber){var b=h===e.startLineNumber?e.startColumn-1:0;C=this.getLineContent(h).substring(b,e.endColumn-1);return r=this._findMatchesInLine(t,a,C,e.endLineNumber,b,r,o,n,i),o}var S=h===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(u.node,a,h,S,d,c,t,n,i,r,o),o},e.prototype._findMatchesInLine=function(e,t,n,r,a,l,u,d,c){var h,p=e.wordSeparators;if(!d&&e.simpleSearch){\nfor(var g=e.simpleSearch,f=g.length,m=n.length,v=-f;-1!==(v=n.indexOf(g,v+f));)if((!p||s.isValidMatch(p,n,m,v,f))&&(u[l++]=new o.FindMatch(new i.Range(r,v+1+a,r,v+1+f+a),null),l>=c))return l;return l}t.reset(0);do{if((h=t.next(n))&&(u[l++]=s.createFindMatch(new i.Range(r,h.index+1+a,r,h.index+1+h[0].length+a),h,d),l>=c))return l}while(h);return l},e.prototype.insert=function(e,n,i){if(void 0===i&&(i=!1),this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",this.root!==r.SENTINEL){var o=this.nodeAt(e),s=o.node,a=o.remainder,l=o.nodeStartOffset,u=s.piece,c=u.bufferIndex,h=this.positionInBuffer(s,a);if(0===s.piece.bufferIndex&&u.end.line===this._lastChangeBufferPos.line&&u.end.column===this._lastChangeBufferPos.column&&l+u.length===e&&n.length<t.AverageBufferSize)return this.appendToNode(s,n),void this.computeBufferMetadata();if(l===e)this.insertContentToNodeLeft(n,s),this._searchCache.valdiate(e);else if(l+s.piece.length>e){\nvar p=[],g=new d(u.bufferIndex,h,u.end,this.getLineFeedCnt(u.bufferIndex,h,u.end),this.offsetInBuffer(c,u.end)-this.offsetInBuffer(c,h));if(this.shouldCheckCRLF()&&this.endWithCR(n))if(10===this.nodeCharCodeAt(s,a)){var f={line:g.start.line+1,column:0};g=new d(g.bufferIndex,f,g.end,this.getLineFeedCnt(g.bufferIndex,f,g.end),g.length-1),n+=\"\\n\"}if(this.shouldCheckCRLF()&&this.startWithLF(n))if(13===this.nodeCharCodeAt(s,a-1)){var m=this.positionInBuffer(s,a-1);this.deleteNodeTail(s,m),n=\"\\r\"+n,0===s.piece.length&&p.push(s)}else this.deleteNodeTail(s,h);else this.deleteNodeTail(s,h);var v=this.createNewPieces(n);g.length>0&&this.rbInsertRight(s,g);for(var _=s,y=0;y<v.length;y++)_=this.rbInsertRight(_,v[y]);this.deleteNodes(p)}else this.insertContentToNodeRight(n,s)}else{var C=this.createNewPieces(n);for(s=this.rbInsertLeft(null,C[0]),y=1;y<C.length;y++)s=this.rbInsertRight(s,C[y])}this.computeBufferMetadata()},e.prototype.delete=function(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",\n!(t<=0||this.root===r.SENTINEL)){var n=this.nodeAt(e),i=this.nodeAt(e+t),o=n.node,s=i.node;if(o===s){var a=this.positionInBuffer(o,n.remainder),l=this.positionInBuffer(o,i.remainder);if(n.nodeStartOffset===e){if(t===o.piece.length){var u=o.next();return r.rbDelete(this,o),this.validateCRLFWithPrevNode(u),void this.computeBufferMetadata()}return this.deleteNodeHead(o,l),this._searchCache.valdiate(e),this.validateCRLFWithPrevNode(o),void this.computeBufferMetadata()}return n.nodeStartOffset+o.piece.length===e+t?(this.deleteNodeTail(o,a),this.validateCRLFWithNextNode(o),void this.computeBufferMetadata()):(this.shrinkNode(o,a,l),void this.computeBufferMetadata())}var d=[],c=this.positionInBuffer(o,n.remainder);this.deleteNodeTail(o,c),this._searchCache.valdiate(e),0===o.piece.length&&d.push(o);var h=this.positionInBuffer(s,i.remainder);this.deleteNodeHead(s,h),0===s.piece.length&&d.push(s);for(var p=o.next();p!==r.SENTINEL&&p!==s;p=p.next())d.push(p);var g=0===o.piece.length?o.prev():o;this.deleteNodes(d),\nthis.validateCRLFWithNextNode(g),this.computeBufferMetadata()}},e.prototype.insertContentToNodeLeft=function(e,t){var n=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){var i=t.piece,o={line:i.start.line+1,column:0},s=new d(i.bufferIndex,o,i.end,this.getLineFeedCnt(i.bufferIndex,o,i.end),i.length-1);t.piece=s,e+=\"\\n\",r.updateTreeMetadata(this,t,-1,-1),0===t.piece.length&&n.push(t)}for(var a=this.createNewPieces(e),l=this.rbInsertLeft(t,a[a.length-1]),u=a.length-2;u>=0;u--)l=this.rbInsertLeft(l,a[u]);this.validateCRLFWithPrevNode(l),this.deleteNodes(n)},e.prototype.insertContentToNodeRight=function(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=\"\\n\");for(var n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]),o=i,r=1;r<n.length;r++)o=this.rbInsertRight(o,n[r]);this.validateCRLFWithPrevNode(i)},e.prototype.positionInBuffer=function(e,t,n){\nfor(var i=e.piece,o=e.piece.bufferIndex,r=this._buffers[o].lineStarts,s=r[i.start.line]+i.start.column+t,a=i.start.line,l=i.end.line,u=0,d=0,c=0;a<=l&&(c=r[u=a+(l-a)/2|0],u!==l);)if(d=r[u+1],s<c)l=u-1;else{if(!(s>=d))break;a=u+1}return n?(n.line=u,n.column=s-c,null):{line:u,column:s-c}},e.prototype.getLineFeedCnt=function(e,t,n){if(0===n.column)return n.line-t.line;var i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;var o=i[n.line+1],r=i[n.line]+n.column;if(o>r+1)return n.line-t.line;var s=r-1;return 13===this._buffers[e].buffer.charCodeAt(s)?n.line-t.line+1:n.line-t.line},e.prototype.offsetInBuffer=function(e,t){return this._buffers[e].lineStarts[t.line]+t.column},e.prototype.deleteNodes=function(e){for(var t=0;t<e.length;t++)r.rbDelete(this,e[t])},e.prototype.createNewPieces=function(e){if(e.length>t.AverageBufferSize){for(var n=[];e.length>t.AverageBufferSize;){var i=e.charCodeAt(t.AverageBufferSize-1),o=void 0;13===i||i>=55296&&i<=56319?(o=e.substring(0,t.AverageBufferSize-1),\ne=e.substring(t.AverageBufferSize-1)):(o=e.substring(0,t.AverageBufferSize),e=e.substring(t.AverageBufferSize));var r=u(o);n.push(new d(this._buffers.length,{line:0,column:0},{line:r.length-1,column:o.length-r[r.length-1]},r.length-1,o.length)),this._buffers.push(new c(o,r))}var s=u(e);return n.push(new d(this._buffers.length,{line:0,column:0},{line:s.length-1,column:e.length-s[s.length-1]},s.length-1,e.length)),this._buffers.push(new c(e,s)),n}var a=this._buffers[0].buffer.length,l=u(e,!1),h=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&0!==a&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},h=this._lastChangeBufferPos;for(var p=0;p<l.length;p++)l[p]+=a+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(l.slice(1)),this._buffers[0].buffer+=\"_\"+e,a+=1}else{if(0!==a)for(p=0;p<l.length;p++)l[p]+=a\n;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(l.slice(1)),this._buffers[0].buffer+=e}var g=this._buffers[0].buffer.length,f=this._buffers[0].lineStarts.length-1,m={line:f,column:g-this._buffers[0].lineStarts[f]},v=new d(0,h,m,this.getLineFeedCnt(0,h,m),g-a);return this._lastChangeBufferPos=m,[v]},e.prototype.getLineRawContent=function(e,t){void 0===t&&(t=0);var n=this.root,i=\"\",o=this._searchCache.get2(e);if(o){n=o.node;var s=this.getAccumulatedValue(n,e-o.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(o.nodeStartLineNumber+n.piece.lineFeedCnt!==e){var u=this.getAccumulatedValue(n,e-o.nodeStartLineNumber);return a.substring(l+s,l+u-t)}i=a.substring(l+s,l+n.piece.length)}else for(var d=0,c=e;n!==r.SENTINEL;)if(n.left!==r.SENTINEL&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){s=this.getAccumulatedValue(n,e-n.lf_left-2),u=this.getAccumulatedValue(n,e-n.lf_left-1),\na=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return d+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:d,nodeStartLineNumber:c-(e-1-n.lf_left)}),a.substring(l+s,l+u-t)}if(n.lf_left+n.piece.lineFeedCnt===e-1){s=this.getAccumulatedValue(n,e-n.lf_left-2),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=a.substring(l+s,l+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,d+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==r.SENTINEL;){a=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){u=this.getAccumulatedValue(n,0),l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=a.substring(l,l+u-t)}l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i+=a.substr(l,n.piece.length),n=n.next()}return i},e.prototype.computeBufferMetadata=function(){for(var e=this.root,t=1,n=0;e!==r.SENTINEL;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,\ne=e.right;this._lineCnt=t,this._length=n,this._searchCache.valdiate(this._length)},e.prototype.getIndexOf=function(e,t){var n=e.piece,i=this.positionInBuffer(e,t),o=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){var r=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(r!==o)return{index:r,remainder:0}}return{index:o,remainder:i.column}},e.prototype.getAccumulatedValue=function(e,t){if(t<0)return 0;var n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,o=n.start.line+t+1;return o>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[o]-i[n.start.line]-n.start.column},e.prototype.deleteNodeTail=function(e,t){var n=e.piece,i=n.lineFeedCnt,o=this.offsetInBuffer(n.bufferIndex,n.end),s=t,a=this.offsetInBuffer(n.bufferIndex,s),l=this.getLineFeedCnt(n.bufferIndex,n.start,s),u=l-i,c=a-o,h=n.length+c;e.piece=new d(n.bufferIndex,n.start,s,l,h),r.updateTreeMetadata(this,e,c,u)},e.prototype.deleteNodeHead=function(e,t){\nvar n=e.piece,i=n.lineFeedCnt,o=this.offsetInBuffer(n.bufferIndex,n.start),s=t,a=this.getLineFeedCnt(n.bufferIndex,s,n.end),l=a-i,u=o-this.offsetInBuffer(n.bufferIndex,s),c=n.length+u;e.piece=new d(n.bufferIndex,s,n.end,a,c),r.updateTreeMetadata(this,e,u,l)},e.prototype.shrinkNode=function(e,t,n){var i=e.piece,o=i.start,s=i.end,a=i.length,l=i.lineFeedCnt,u=t,c=this.getLineFeedCnt(i.bufferIndex,i.start,u),h=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,o);e.piece=new d(i.bufferIndex,i.start,u,c,h),r.updateTreeMetadata(this,e,h-a,c-l);var p=new d(i.bufferIndex,n,s,this.getLineFeedCnt(i.bufferIndex,n,s),this.offsetInBuffer(i.bufferIndex,s)-this.offsetInBuffer(i.bufferIndex,n)),g=this.rbInsertRight(e,p);this.validateCRLFWithPrevNode(g)},e.prototype.appendToNode=function(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=\"\\n\");var n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t\n;for(var o=u(t,!1),s=0;s<o.length;s++)o[s]+=i;if(n){var a=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:i-a}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(o.slice(1));var l=this._buffers[0].lineStarts.length-1,c={line:l,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[l]},h=e.piece.length+t.length,p=e.piece.lineFeedCnt,g=this.getLineFeedCnt(0,e.piece.start,c),f=g-p;e.piece=new d(e.piece.bufferIndex,e.piece.start,c,g,h),this._lastChangeBufferPos=c,r.updateTreeMetadata(this,e,t.length,f)},e.prototype.nodeAt=function(e){var t=this.root,n=this._searchCache.get(e);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:e-n.nodeStartOffset};for(var i=0;t!==r.SENTINEL;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;var o={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(o),o}\ne-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null},e.prototype.nodeAt2=function(e,t){for(var n=this.root,i=0;n!==r.SENTINEL;)if(n.left!==r.SENTINEL&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var o=this.getAccumulatedValue(n,e-n.lf_left-2),s=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(o+t-1,s),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){if((o=this.getAccumulatedValue(n,e-n.lf_left-2))+t-1<=n.piece.length)return{node:n,remainder:o+t-1,nodeStartOffset:i};t-=n.piece.length-o;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==r.SENTINEL;){if(n.piece.lineFeedCnt>0){s=this.getAccumulatedValue(n,0);var a=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,s),nodeStartOffset:a}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null},e.prototype.nodeCharCodeAt=function(e,t){\nif(e.piece.lineFeedCnt<1)return-1;var n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)},e.prototype.offsetOfNode=function(e){if(!e)return 0;for(var t=e.size_left;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t},e.prototype.shouldCheckCRLF=function(){return!(this._EOLNormalized&&\"\\n\"===this._EOL)},e.prototype.startWithLF=function(e){if(\"string\"==typeof e)return 10===e.charCodeAt(0);if(e===r.SENTINEL||0===e.piece.lineFeedCnt)return!1;var t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,o=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>o+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(o))},e.prototype.endWithCR=function(e){return\"string\"==typeof e?13===e.charCodeAt(e.length-1):e!==r.SENTINEL&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)},e.prototype.validateCRLFWithPrevNode=function(e){\nif(this.shouldCheckCRLF()&&this.startWithLF(e)){var t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}},e.prototype.validateCRLFWithNextNode=function(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}},e.prototype.fixCRLF=function(e,t){var n,i=[],o=this._buffers[e.piece.bufferIndex].lineStarts;n=0===e.piece.end.column?{line:e.piece.end.line-1,column:o[e.piece.end.line]-o[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};var s=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new d(e.piece.bufferIndex,e.piece.start,n,a,s),r.updateTreeMetadata(this,e,-1,-1),0===e.piece.length&&i.push(e);var l={line:t.piece.start.line+1,column:0},u=t.piece.length-1,c=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new d(t.piece.bufferIndex,l,t.piece.end,c,u),r.updateTreeMetadata(this,t,-1,-1),0===t.piece.length&&i.push(t);var h=this.createNewPieces(\"\\r\\n\");this.rbInsertRight(e,h[0]);for(var p=0;p<i.length;p++)r.rbDelete(this,i[p])},\ne.prototype.adjustCarriageReturnFromNext=function(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var n=t.next();if(this.startWithLF(n)){if(e+=\"\\n\",1===n.piece.length)r.rbDelete(this,n);else{var i=n.piece,o={line:i.start.line+1,column:0},s=i.length-1,a=this.getLineFeedCnt(i.bufferIndex,o,i.end);n.piece=new d(i.bufferIndex,o,i.end,a,s),r.updateTreeMetadata(this,n,-1,-1)}return!0}}return!1},e.prototype.iterate=function(e,t){if(e===r.SENTINEL)return t(r.SENTINEL);var n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n},e.prototype.getNodeContent=function(e){if(e===r.SENTINEL)return\"\";var t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),o=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,o)},e.prototype.rbInsertRight=function(e,t){var n=new r.TreeNode(t,1);if(n.left=r.SENTINEL,n.right=r.SENTINEL,n.parent=r.SENTINEL,n.size_left=0,n.lf_left=0,this.root===r.SENTINEL)this.root=n,n.color=0;else if(e.right===r.SENTINEL)e.right=n,\nn.parent=e;else{var i=r.leftest(e.right);i.left=n,n.parent=i}return r.fixInsert(this,n),n},e.prototype.rbInsertLeft=function(e,t){var n=new r.TreeNode(t,1);if(n.left=r.SENTINEL,n.right=r.SENTINEL,n.parent=r.SENTINEL,n.size_left=0,n.lf_left=0,this.root===r.SENTINEL)this.root=n,n.color=0;else if(e.left===r.SENTINEL)e.left=n,n.parent=e;else{var i=r.righttest(e.left);i.right=n,n.parent=i}return r.fixInsert(this,n),n},e}();t.PieceTreeBase=p})),define(n[347],i([0,1,5,3,48,191]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n,i,o,s){this._BOM=t,this._mightContainNonBasicASCII=!o,this._mightContainRTL=i,this._pieceTree=new r.PieceTreeBase(e,n,s)}return e.prototype.mightContainRTL=function(){return this._mightContainRTL},e.prototype.mightContainNonBasicASCII=function(){return this._mightContainNonBasicASCII},e.prototype.getBOM=function(){return this._BOM},e.prototype.getEOL=function(){return this._pieceTree.getEOL()},\ne.prototype.getOffsetAt=function(e,t){return this._pieceTree.getOffsetAt(e,t)},e.prototype.getPositionAt=function(e){return this._pieceTree.getPositionAt(e)},e.prototype.getRangeAt=function(e,t){var n=e+t,o=this.getPositionAt(e),r=this.getPositionAt(n);return new i.Range(o.lineNumber,o.column,r.lineNumber,r.column)},e.prototype.getValueInRange=function(e,t){if(void 0===t&&(t=0),e.isEmpty())return\"\";var n=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,n)},e.prototype.getValueLengthInRange=function(e,t){if(void 0===t&&(t=0),e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;var n=this.getOffsetAt(e.startLineNumber,e.startColumn);return this.getOffsetAt(e.endLineNumber,e.endColumn)-n},e.prototype.getCharacterCountInRange=function(e,t){if(void 0===t&&(t=0),this._mightContainNonBasicASCII){\nfor(var i=0,o=e.startLineNumber,r=e.endLineNumber,s=o;s<=r;s++)for(var a=this.getLineContent(s),l=s===o?e.startColumn-1:0,u=s===r?e.endColumn-1:a.length,d=l;d<u;d++)n.isHighSurrogate(a.charCodeAt(d))?(i+=1,d+=1):i+=1;return i+=this._getEndOfLine(t).length*(r-o)}return this.getValueLengthInRange(e,t)},e.prototype.getLength=function(){return this._pieceTree.getLength()},e.prototype.getLineCount=function(){return this._pieceTree.getLineCount()},e.prototype.getLinesContent=function(){return this._pieceTree.getLinesContent()},e.prototype.getLineContent=function(e){return this._pieceTree.getLineContent(e)},e.prototype.getLineCharCode=function(e,t){return this._pieceTree.getLineCharCode(e,t)},e.prototype.getLineLength=function(e){return this._pieceTree.getLineLength(e)},e.prototype.getLineFirstNonWhitespaceColumn=function(e){var t=n.firstNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+1},e.prototype.getLineLastNonWhitespaceColumn=function(e){var t=n.lastNonWhitespaceIndex(this.getLineContent(e))\n;return-1===t?0:t+2},e.prototype._getEndOfLine=function(e){switch(e){case 1:return\"\\n\";case 2:return\"\\r\\n\";case 0:return this.getEOL()}throw new Error(\"Unknown EOL preference\")},e.prototype.setEOL=function(e){this._pieceTree.setEOL(e)},e.prototype.applyEdits=function(t,i){for(var r=this._mightContainRTL,s=this._mightContainNonBasicASCII,a=!0,l=[],u=0;u<t.length;u++){var d=t[u];a&&d._isTracked&&(a=!1);var c=d.range;!r&&d.text&&(r=n.containsRTL(d.text)),!s&&d.text&&(s=!n.isBasicASCII(d.text)),l[u]={sortIndex:u,identifier:d.identifier||null,range:c,rangeOffset:this.getOffsetAt(c.startLineNumber,c.startColumn),rangeLength:this.getValueLengthInRange(c),lines:d.text?d.text.split(/\\r\\n|\\r|\\n/):null,forceMoveMarkers:Boolean(d.forceMoveMarkers),isAutoWhitespaceEdit:d.isAutoWhitespaceEdit||!1}}l.sort(e._sortOpsAscending);for(var h=!1,p=(u=0,l.length-1);u<p;u++){var g=l[u].range.getEndPosition(),f=l[u+1].range.getStartPosition();if(f.isBeforeOrEqual(g)){\nif(f.isBefore(g))throw new Error(\"Overlapping ranges are not allowed!\");h=!0}}a&&(l=this._reduceOperations(l));var m=e._getInverseEditRanges(l),v=[];for(u=0;u<l.length;u++){d=l[u];var _=m[u];if(i&&d.isAutoWhitespaceEdit&&d.range.isEmpty())for(var y=_.startLineNumber;y<=_.endLineNumber;y++){var C=\"\";y===_.startLineNumber&&(C=this.getLineContent(d.range.startLineNumber),-1!==n.firstNonWhitespaceIndex(C))||v.push({lineNumber:y,oldContent:C})}}var b=[];for(u=0;u<l.length;u++){d=l[u],_=m[u];b[u]={sortIndex:d.sortIndex,identifier:d.identifier,range:_,text:this.getValueInRange(d.range),forceMoveMarkers:d.forceMoveMarkers}}h||b.sort((function(e,t){return e.sortIndex-t.sortIndex})),this._mightContainRTL=r,this._mightContainNonBasicASCII=s;var S=this._doApplyEdits(l),w=null;if(i&&v.length>0){v.sort((function(e,t){return t.lineNumber-e.lineNumber})),w=[];u=0;for(var E=v.length;u<E;u++){y=v[u].lineNumber;if(!(u>0&&v[u-1].lineNumber===y)){var L=v[u].oldContent,D=this.getLineContent(y)\n;0!==D.length&&D!==L&&-1===n.firstNonWhitespaceIndex(D)&&w.push(y)}}}return new o.ApplyEditsResult(b,S,w)},e.prototype._reduceOperations=function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]},e.prototype._toSingleEditOperation=function(e){for(var t=!1,n=e[0].range,o=e[e.length-1].range,r=new i.Range(n.startLineNumber,n.startColumn,o.endLineNumber,o.endColumn),s=n.startLineNumber,a=n.startColumn,l=[],u=0,d=e.length;u<d;u++){var c=e[u],h=c.range;t=t||c.forceMoveMarkers;for(var p=s;p<h.startLineNumber;p++)p===s?l.push(this.getLineContent(p).substring(a-1)):(l.push(\"\\n\"),l.push(this.getLineContent(p)));if(h.startLineNumber===s?l.push(this.getLineContent(h.startLineNumber).substring(a-1,h.startColumn-1)):(l.push(\"\\n\"),l.push(this.getLineContent(h.startLineNumber).substring(0,h.startColumn-1))),c.lines)for(var g=0,f=c.lines.length;g<f;g++)0!==g&&l.push(\"\\n\"),l.push(c.lines[g]);s=c.range.endLineNumber,a=c.range.endColumn}return{sortIndex:0,identifier:e[0].identifier,range:r,\nrangeOffset:this.getOffsetAt(r.startLineNumber,r.startColumn),rangeLength:this.getValueLengthInRange(r,0),lines:l.join(\"\").split(\"\\n\"),forceMoveMarkers:t,isAutoWhitespaceEdit:!1}},e.prototype._doApplyEdits=function(t){t.sort(e._sortOpsDescending);for(var n=[],o=0;o<t.length;o++){var r=t[o],s=r.range.startLineNumber,a=r.range.startColumn,l=r.range.endLineNumber,u=r.range.endColumn;if(s!==l||a!==u||r.lines&&0!==r.lines.length){var d=l-s,c=r.lines?r.lines.length-1:0,h=Math.min(d,c),p=r.lines?r.lines.join(this.getEOL()):\"\";if(p?(this._pieceTree.delete(r.rangeOffset,r.rangeLength),this._pieceTree.insert(r.rangeOffset,p,!0)):this._pieceTree.delete(r.rangeOffset,r.rangeLength),h<c){for(var g=[],f=h+1;f<=c;f++)g.push(r.lines[f]);g[g.length-1]=this.getLineContent(s+c-1)}var m=new i.Range(s,a,l,u);n.push({range:m,rangeLength:r.rangeLength,text:p,rangeOffset:r.rangeOffset,forceMoveMarkers:r.forceMoveMarkers})}}return n},e.prototype.findMatchesLineByLine=function(e,t,n,i){\nreturn this._pieceTree.findMatchesLineByLine(e,t,n,i)},e._getInverseEditRanges=function(e){for(var t=[],n=0,o=0,r=null,s=0,a=e.length;s<a;s++){var l=e[s],u=void 0,d=void 0;r?r.range.endLineNumber===l.range.startLineNumber?(u=n,d=o+(l.range.startColumn-r.range.endColumn)):(u=n+(l.range.startLineNumber-r.range.endLineNumber),d=l.range.startColumn):(u=l.range.startLineNumber,d=l.range.startColumn);var c=void 0;if(l.lines&&l.lines.length>0){var h=l.lines.length,p=l.lines[0],g=l.lines[h-1];c=1===h?new i.Range(u,d,u,d+p.length):new i.Range(u,d,u+h-1,g.length+1)}else c=new i.Range(u,d,u,d);n=c.endLineNumber,o=c.endColumn,t.push(c),r=l}return t},e._sortOpsAscending=function(e,t){var n=i.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n},e._sortOpsDescending=function(e,t){var n=i.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n},e}();t.PieceTreeTextBuffer=s})),define(n[348],i([0,1,5,191,347]),(function(e,t,n,i,o){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i,o,r,s,a){this._chunks=e,this._bom=t,this._cr=n,this._lf=i,this._crlf=o,this._containsRTL=r,this._isBasicASCII=s,this._normalizeEOL=a}return e.prototype._getEOL=function(e){var t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?1===e?\"\\n\":\"\\r\\n\":n>t/2?\"\\r\\n\":\"\\n\"},e.prototype.create=function(e){var t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&(\"\\r\\n\"===t&&(this._cr>0||this._lf>0)||\"\\n\"===t&&(this._cr>0||this._crlf>0)))for(var r=0,s=n.length;r<s;r++){var a=n[r].buffer.replace(/\\r\\n|\\r|\\n/g,t),l=i.createLineStartsFast(a);n[r]=new i.StringBuffer(a,l)}return new o.PieceTreeTextBuffer(n,this._bom,t,this._containsRTL,this._isBasicASCII,this._normalizeEOL)},e}();t.PieceTreeTextBufferFactory=r;var s=function(){function e(){this.chunks=[],this.BOM=\"\",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.isBasicASCII=!0}\nreturn e.prototype.acceptChunk=function(e){if(0!==e.length){0===this.chunks.length&&n.startsWithUTF8BOM(e)&&(this.BOM=n.UTF8_BOM_CHARACTER,e=e.substr(1));var t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}},e.prototype._acceptChunk1=function(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))},e.prototype._acceptChunk2=function(e){var t=i.createLineStarts(this._tmpLineStarts,e);this.chunks.push(new i.StringBuffer(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=n.containsRTL(e))},e.prototype.finish=function(e){return void 0===e&&(e=!0),this._finish(),new r(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.isBasicASCII,e)\n},e.prototype._finish=function(){if(0===this.chunks.length&&this._acceptChunk1(\"\",!0),this._hasPreviousChar){this._hasPreviousChar=!1;var e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);var t=i.createLineStartsFast(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}},e}();t.PieceTreeTextBufferBuilder=s})),define(n[109],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.USUAL_WORD_SEPARATORS=\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e=\"\");for(var n=\"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\",i=0,o=t.USUAL_WORD_SEPARATORS;i<o.length;i++){var r=o[i];e.indexOf(r)>=0||(n+=\"\\\\\"+r)}return n+=\"\\\\s]+)\",new RegExp(n,\"g\")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var i=\"g\";e.ignoreCase&&(i+=\"i\"),e.multiline&&(i+=\"m\"),e.unicode&&(i+=\"u\"),n=new RegExp(e.source,i)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,n,i){t.lastIndex=0\n;var o=t.exec(n);if(!o)return null;var r=o[0].indexOf(\" \")>=0?function(e,t,n,i){var o,r=e-1-i;for(t.lastIndex=0;o=t.exec(n);){var s=o.index||0;if(s>r)return null;if(t.lastIndex>=r)return{word:o[0],startColumn:i+1+s,endColumn:i+1+t.lastIndex}}return null}(e,t,n,i):function(e,t,n,i){var o,r=e-1-i,s=n.lastIndexOf(\" \",r-1)+1;for(t.lastIndex=s;o=t.exec(n);){var a=o.index||0;if(a<=r&&t.lastIndex>=r)return{word:o[0],startColumn:i+1+a,endColumn:i+1+t.lastIndex}}return null}(e,t,n,i);return t.lastIndex=0,r}})),define(n[349],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._languageIdentifier=e}return e.prototype.getId=function(){return this._languageIdentifier.language},e}();t.FrankensteinMode=n})),define(n[90],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={}))\n;var n=function(){function e(e){if(this.open=e.open,this.close=e.close,this._standardTokenMask=0,Array.isArray(e.notIn))for(var t=0,n=e.notIn.length;t<n;t++){switch(e.notIn[t]){case\"string\":this._standardTokenMask|=2;break;case\"comment\":this._standardTokenMask|=1;break;case\"regex\":this._standardTokenMask|=4}}}return e.prototype.isOK=function(e){return 0==(this._standardTokenMask&e)},e}();t.StandardAutoClosingPairConditional=n})),define(n[350],i([0,1,178]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.score=function e(t,i,o,r){if(Array.isArray(t)){for(var s=0,a=0,l=t;a<l.length;a++){var u=e(l[a],i,o,r);if(10===u)return u;u>s&&(s=u)}return s}if(\"string\"==typeof t)return r?\"*\"===t?5:t===o?10:0:0;if(t){var d=t.language,c=t.pattern,h=t.scheme,p=t.hasAccessToAllModels;if(!r&&!p)return 0;s=0;if(h)if(h===i.scheme)s=10;else{if(\"*\"!==h)return 0;s=5}if(d)if(d===o)s=10;else{if(\"*\"!==d)return 0;s=Math.max(s,5)}if(c){if(c!==i.fsPath&&!n.match(c,i.fsPath))return 0;s=10}return s}return 0}\n})),define(n[351],i([0,1,79]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){for(var i=new Uint8Array(e*t),o=0,r=e*t;o<r;o++)i[o]=n;this._data=i,this.rows=e,this.cols=t}return e.prototype.get=function(e,t){return this._data[e*this.cols+t]},e.prototype.set=function(e,t,n){this._data[e*this.cols+t]=n},e}();t.Uint8Matrix=i;var o=function(){function e(e){for(var t=0,n=0,o=0,r=e.length;o<r;o++){var s=e[o],a=s[0];(d=s[1])>t&&(t=d),a>n&&(n=a),(c=s[2])>n&&(n=c)}var l=new i(++n,++t,0);for(o=0,r=e.length;o<r;o++){var u=e[o],d=(a=u[0],u[1]),c=u[2];l.set(a,d,c)}this._states=l,this._maxCharCode=t}return e.prototype.nextState=function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)},e}();t.StateMachine=o;var r=null;var s=null;var a=function(){function e(){}return e._createLink=function(e,t,n,i,o){var r=o-1;do{var s=t.charCodeAt(r);if(2!==e.get(s))break;r--}while(r>i);if(i>0){var a=t.charCodeAt(i-1),l=t.charCodeAt(r)\n;(40===a&&41===l||91===a&&93===l||123===a&&125===l)&&r--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:r+2},url:t.substring(i,r+1)}},e.computeLinks=function(t,i){void 0===i&&(null===r&&(r=new o([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),i=r);for(var a=function(){if(null===s){s=new n.CharacterClassifier(0);for(var e=0;e<\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".length;e++)s.set(\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".charCodeAt(e),1);for(e=0;e<\".,;\".length;e++)s.set(\".,;\".charCodeAt(e),2)}return s}(),l=[],u=1,d=t.getLineCount();u<=d;u++){for(var c=t.getLineContent(u),h=c.length,p=0,g=0,f=0,m=1,v=!1,_=!1,y=!1;p<h;){var C=!1,b=c.charCodeAt(p);if(13===m){var S=void 0;switch(b){case 40:v=!0,S=0;break;case 41:S=v?0:1;break;case 91:_=!0,S=0;break;case 93:S=_?0:1;break;case 123:y=!0,S=0;break\n;case 125:S=y?0:1;break;case 39:S=34===f||96===f?0:1;break;case 34:S=39===f||96===f?0:1;break;case 96:S=39===f||34===f?0:1;break;case 42:S=42===f?1:0;break;case 124:S=124===f?1:0;break;default:S=a.get(b)}1===S&&(l.push(e._createLink(a,c,u,g,p)),C=!0)}else if(12===m){S=void 0;91===b?(_=!0,S=0):S=a.get(b),1===S?C=!0:m=13}else 0===(m=i.nextState(m,b))&&(C=!0);C&&(m=1,v=!1,_=!1,y=!1,g=p+1,f=b),p++}13===m&&l.push(e._createLink(a,c,u,g,h))}return l},e}();t.LinkComputer=a,t.computeLinks=function(e){return e&&\"function\"==typeof e.getLineCount&&\"function\"==typeof e.getLineContent?a.computeLinks(e):[]}})),define(n[145],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScopedLineTokens=function(e,t){for(var i=e.getCount(),o=e.findTokenIndexAtOffset(t),r=e.getLanguageId(o),s=o;s+1<i&&e.getLanguageId(s+1)===r;)s++;for(var a=o;a>0&&e.getLanguageId(a-1)===r;)a--;return new n(e,r,a,s+1,e.getStartOffset(a),e.getEndOffset(s))};var n=function(){function e(e,t,n,i,o,r){this._actual=e,\nthis.languageId=t,this._firstTokenIndex=n,this._lastTokenIndex=i,this.firstCharOffset=o,this._lastCharOffset=r}return e.prototype.getLineContent=function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)},e.prototype.getActualLineContentBefore=function(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)},e.prototype.getTokenCount=function(){return this._lastTokenIndex-this._firstTokenIndex},e.prototype.findTokenIndexAtOffset=function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex},e.prototype.getStandardTokenType=function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)},e}();t.ScopedLineTokens=n,t.ignoreBracketsInToken=function(e){return 0!=(7&e)}})),define(n[352],i([0,1,90]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){if(t.autoClosingPairs?this._autoClosingPairs=t.autoClosingPairs.map((function(e){\nreturn new n.StandardAutoClosingPairConditional(e)})):t.brackets?this._autoClosingPairs=t.brackets.map((function(e){return new n.StandardAutoClosingPairConditional({open:e[0],close:e[1]})})):this._autoClosingPairs=[],t.__electricCharacterSupport&&t.__electricCharacterSupport.docComment){var i=t.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new n.StandardAutoClosingPairConditional({open:i.open,close:i.close||\"\"}))}this._autoCloseBefore=\"string\"==typeof t.autoCloseBefore?t.autoCloseBefore:e.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=t.surroundingPairs||this._autoClosingPairs}return e.prototype.getAutoClosingPairs=function(){return this._autoClosingPairs},e.prototype.getAutoCloseBeforeSet=function(){return this._autoCloseBefore},e.shouldAutoClosePair=function(e,t,n){if(0===t.getTokenCount())return!0;var i=t.findTokenIndexAtOffset(n-2),o=t.getStandardTokenType(i);return e.isOK(o)},e.prototype.getSurroundingPairs=function(){return this._surroundingPairs},\ne.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=\";:.,=}])> \\n\\t\",e}();t.CharacterPairSupport=i})),define(n[353],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._indentationRules=e}return e.prototype.shouldIncrease=function(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&this._indentationRules.increaseIndentPattern.test(e))},e.prototype.shouldDecrease=function(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&this._indentationRules.decreaseIndentPattern.test(e))},e.prototype.shouldIndentNextLine=function(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&this._indentationRules.indentNextLinePattern.test(e))},e.prototype.shouldIgnore=function(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&this._indentationRules.unIndentedLinePattern.test(e))},e.prototype.getIndentMetadata=function(e){var t=0\n;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t},e}();t.IndentRulesSupport=n})),define(n[354],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._defaultValueSet=[[\"true\",\"false\"],[\"True\",\"False\"],[\"Private\",\"Public\",\"Friend\",\"ReadOnly\",\"Partial\",\"Protected\",\"WriteOnly\"],[\"public\",\"protected\",\"private\"]]}return e.prototype.navigateValueSet=function(e,t,n,i,o){var r;if(e&&t&&(r=this.doNavigateValueSet(t,o)))return{range:e,value:r};if(n&&i&&(r=this.doNavigateValueSet(i,o)))return{range:n,value:r};return null},e.prototype.doNavigateValueSet=function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)},e.prototype.numberReplace=function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(\".\")+1)),i=Number(e),o=parseFloat(e);return isNaN(i)||isNaN(o)||i!==o?null:0!==i||t?(i=Math.floor(i*n),i+=t?n:-n,String(i/n)):null},\ne.prototype.textReplace=function(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)},e.prototype.valueSetsReplace=function(e,t,n){for(var i=null,o=0,r=e.length;null===i&&o<r;o++)i=this.valueSetReplace(e[o],t,n);return i},e.prototype.valueSetReplace=function(e,t,n){var i=e.indexOf(t);return i>=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null},e.INSTANCE=new e,e}();t.BasicInplaceReplace=n})),define(n[355],i([0,1,10,5,90]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){var n=this;(t=t||{}).brackets=t.brackets||[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],this._brackets=[],t.brackets.forEach((function(t){var i=e._createOpenBracketRegExp(t[0]),o=e._createCloseBracketRegExp(t[1]);i&&o&&n._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:o})})),this._regExpRules=t.onEnterRules||[]}return e.prototype.onEnter=function(e,t,n,i){if(e>=3)for(var r=0,s=this._regExpRules.length;r<s;r++){var a=this._regExpRules[r];if([{reg:a.beforeText,text:n},{\nreg:a.afterText,text:i},{reg:a.oneLineAboveText,text:t}].every((function(e){return!e.reg||e.reg.test(e.text)})))return a.action}if(e>=2&&n.length>0&&i.length>0)for(r=0,s=this._brackets.length;r<s;r++){if((l=this._brackets[r]).openRegExp.test(n)&&l.closeRegExp.test(i))return{indentAction:o.IndentAction.IndentOutdent}}if(e>=2&&n.length>0)for(r=0,s=this._brackets.length;r<s;r++){var l;if((l=this._brackets[r]).openRegExp.test(n))return{indentAction:o.IndentAction.Indent}}return null},e._createOpenBracketRegExp=function(t){var n=i.escapeRegExpCharacters(t);return/\\B/.test(n.charAt(0))||(n=\"\\\\b\"+n),n+=\"\\\\s*$\",e._safeRegExp(n)},e._createCloseBracketRegExp=function(t){var n=i.escapeRegExpCharacters(t);return/\\B/.test(n.charAt(n.length-1))||(n+=\"\\\\b\"),n=\"^\\\\s*\"+n,e._safeRegExp(n)},e._safeRegExp=function(e){try{return new RegExp(e)}catch(e){return n.onUnexpectedError(e),null}},e}();t.OnEnterSupport=r})),define(n[146],i([0,1,5,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var o=function(){function e(t,n,i,o,r,s){this.languageIdentifier=t,this.index=n,this.open=i,this.close=o,this.forwardRegex=r,this.reversedRegex=s,this._openSet=e._toSet(this.open),this._closeSet=e._toSet(this.close)}return e.prototype.isOpen=function(e){return this._openSet.has(e)},e.prototype.isClose=function(e){return this._closeSet.has(e)},e._toSet=function(e){for(var t=new Set,n=0,i=e;n<i.length;n++){var o=i[n];t.add(o)}return t},e}();t.RichEditBracket=o;var r=function(e,t){var n=function(e){var t=e.length;e=e.map((function(e){return[e[0].toLowerCase(),e[1].toLowerCase()]}));for(var n=[],i=0;i<t;i++)n[i]=i;var o=function(e,t){var n=e[0],i=e[1],o=t[0],r=t[1];return n===o||n===r||i===o||i===r},r=function(e,i){for(var o=Math.min(e,i),r=Math.max(e,i),s=0;s<t;s++)n[s]===r&&(n[s]=o)};for(i=0;i<t;i++)for(var s=e[i],a=i+1;a<t;a++)o(s,e[a])&&r(n[i],n[a]);for(var l=[],u=0;u<t;u++){var d=[],c=[];for(i=0;i<t;i++)if(n[i]===u){var h=e[i],p=h[0],g=h[1];d.push(p),c.push(g)}d.length>0&&l.push({open:d,close:c})}return l\n}(t);this.brackets=n.map((function(t,i){return new o(e,i,t.open,t.close,function(e,t,n,i){var o=[];o=(o=o.concat(e)).concat(t);for(var r=0,u=o.length;r<u;r++)s(o[r],n,i,o);return(o=l(o)).sort(a),o.reverse(),d(o)}(t.open,t.close,n,i),function(e,t,n,i){var o=[];o=(o=o.concat(e)).concat(t);for(var r=0,u=o.length;r<u;r++)s(o[r],n,i,o);return(o=l(o)).sort(a),o.reverse(),d(o.map(p))}(t.open,t.close,n,i))})),this.forwardRegex=function(e){for(var t=[],n=0,i=e;n<i.length;n++){for(var o=i[n],r=0,s=o.open;r<s.length;r++){var a=s[r];t.push(a)}for(var u=0,c=o.close;u<c.length;u++){var h=c[u];t.push(h)}}return d(t=l(t))}(this.brackets),this.reversedRegex=function(e){for(var t=[],n=0,i=e;n<i.length;n++){for(var o=i[n],r=0,s=o.open;r<s.length;r++){var a=s[r];t.push(a)}for(var u=0,c=o.close;u<c.length;u++){var h=c[u];t.push(h)}}return d((t=l(t)).map(p))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(var i=0,r=this.brackets;i<r.length;i++){\nfor(var u=r[i],c=0,h=u.open;c<h.length;c++){var g=h[c];this.textIsBracket[g]=u,this.textIsOpenBracket[g]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,g.length)}for(var f=0,m=u.close;f<m.length;f++){var v=m[f];this.textIsBracket[v]=u,this.textIsOpenBracket[v]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,v.length)}}};function s(e,t,n,i){for(var o=0,r=t.length;o<r;o++)if(o!==n){for(var s=t[o],a=0,l=s.open;a<l.length;a++){var u=l[a];u.indexOf(e)>=0&&i.push(u)}for(var d=0,c=s.close;d<c.length;d++){var h=c[d];h.indexOf(e)>=0&&i.push(h)}}}function a(e,t){return e.length-t.length}function l(e){if(e.length<=1)return e;for(var t=[],n=new Set,i=0,o=e;i<o.length;i++){var r=o[i];n.has(r)||(t.push(r),n.add(r))}return t}function u(e){var t=/^[\\w ]+$/.test(e);return e=n.escapeRegExpCharacters(e),t?\"\\\\b\"+e+\"\\\\b\":e}function d(e){var t=\"(\"+e.map(u).join(\")|(\")+\")\";return n.createRegExp(t,!0)}t.RichEditBrackets=r;var c,h,p=(c=null,h=null,function(e){return c!==e&&(h=function(e){\nfor(var t=\"\",n=e.length-1;n>=0;n--)t+=e.charAt(n);return t}(c=e)),h}),g=function(){function e(){}return e._findPrevBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=n.length-(r.index||0),a=r[0].length,l=o+s;return new i.Range(t,l-a+1,t,l+1)},e.findPrevBracketInRange=function(e,t,n,i,o){var r=p(n).substring(n.length-o,n.length-i);return this._findPrevBracketInText(e,t,r,i)},e.findNextBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=r.index||0,a=r[0].length;if(0===a)return null;var l=o+s;return new i.Range(t,l+1,t,l+1+a)},e.findNextBracketInRange=function(e,t,n,i,o){var r=n.substring(i,o);return this.findNextBracketInText(e,t,r,i)},e}();t.BracketsUtils=g})),define(n[356],i([0,1,145,146]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._richEditBrackets=e}return e.prototype.getElectricCharacters=function(){var e=[]\n;if(this._richEditBrackets)for(var t=0,n=this._richEditBrackets.brackets;t<n.length;t++)for(var i=0,o=n[t].close;i<o.length;i++){var r=o[i],s=r.charAt(r.length-1);e.push(s)}return e=e.filter((function(e,t,n){return n.indexOf(e)===t}))},e.prototype.onElectricCharacter=function(e,t,o){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;var r=t.findTokenIndexAtOffset(o-1);if(n.ignoreBracketsInToken(t.getStandardTokenType(r)))return null;var s=this._richEditBrackets.reversedRegex,a=t.getLineContent().substring(0,o-1)+e,l=i.BracketsUtils.findPrevBracketInRange(s,1,a,0,a.length);if(!l)return null;var u=a.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[u])return null;var d=t.getActualLineContentBefore(l.startColumn-1);return/^\\s*$/.test(d)?{matchOpenBracket:u}:null},e}();t.BracketElectricCharacterSupport=o})),define(n[41],i([0,1,4,2,5,109,90,145,352,356,353,355,146]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(){function e(t,n,i){this._languageIdentifier=t,this._brackets=null,this._electricCharacter=null;var o=null;n&&(o=n._conf),this._conf=e._mergeConf(o,i),this._onEnterSupport=this._conf.brackets||this._conf.indentationRules||this._conf.onEnterRules?new c.OnEnterSupport(this._conf):null,this.comments=e._handleComments(this._conf),this.characterPair=new l.CharacterPairSupport(this._conf),this.wordDefinition=this._conf.wordPattern||r.DEFAULT_WORD_REGEXP,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules?this.indentRulesSupport=new d.IndentRulesSupport(this._conf.indentationRules):this.indentRulesSupport=null,this.foldingRules=this._conf.folding||{}}return Object.defineProperty(e.prototype,\"brackets\",{get:function(){return!this._brackets&&this._conf.brackets&&(this._brackets=new h.RichEditBrackets(this._languageIdentifier,this._conf.brackets)),this._brackets},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"electricCharacter\",{get:function(){return this._electricCharacter||(this._electricCharacter=new u.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter},enumerable:!0,configurable:!0}),e.prototype.onEnter=function(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null},e._mergeConf=function(e,t){return{comments:e?t.comments||e.comments:t.comments,brackets:e?t.brackets||e.brackets:t.brackets,wordPattern:e?t.wordPattern||e.wordPattern:t.wordPattern,indentationRules:e?t.indentationRules||e.indentationRules:t.indentationRules,onEnterRules:e?t.onEnterRules||e.onEnterRules:t.onEnterRules,autoClosingPairs:e?t.autoClosingPairs||e.autoClosingPairs:t.autoClosingPairs,surroundingPairs:e?t.surroundingPairs||e.surroundingPairs:t.surroundingPairs,autoCloseBefore:e?t.autoCloseBefore||e.autoCloseBefore:t.autoCloseBefore,folding:e?t.folding||e.folding:t.folding,\n__electricCharacterSupport:e?t.__electricCharacterSupport||e.__electricCharacterSupport:t.__electricCharacterSupport}},e._handleComments=function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=t.blockComment,o=i[0],r=i[1];n.blockCommentStartToken=o,n.blockCommentEndToken=r}return n},e}();t.RichEditSupport=p;var g=function(e){this.languageIdentifier=e};t.LanguageConfigurationChangeEvent=g;var f=function(){function e(){this._entries=new Map,this._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event}return e.prototype.register=function(e,t){var n=this,o=this._getRichEditSupport(e.id),r=new p(e,o,t);return this._entries.set(e.id,r),this._onDidChange.fire(new g(e)),i.toDisposable((function(){n._entries.get(e.id)===r&&(n._entries.set(e.id,o),n._onDidChange.fire(new g(e)))}))},e.prototype._getRichEditSupport=function(e){return this._entries.get(e)},e.prototype._getElectricCharacterSupport=function(e){\nvar t=this._getRichEditSupport(e);return t&&t.electricCharacter||null},e.prototype.getElectricCharacters=function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]},e.prototype.onElectricCharacter=function(e,t,n){var i=a.createScopedLineTokens(t,n-1),o=this._getElectricCharacterSupport(i.languageId);return o?o.onElectricCharacter(e,i,n-i.firstCharOffset):null},e.prototype.getComments=function(e){var t=this._getRichEditSupport(e);return t&&t.comments||null},e.prototype._getCharacterPairSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.characterPair||null},e.prototype.getAutoClosingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoClosingPairs():[]},e.prototype.getAutoCloseBeforeSet=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoCloseBeforeSet():l.CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED},e.prototype.getSurroundingPairs=function(e){var t=this._getCharacterPairSupport(e)\n;return t?t.getSurroundingPairs():[]},e.prototype.shouldAutoClosePair=function(e,t,n){var i=a.createScopedLineTokens(t,n-1);return l.CharacterPairSupport.shouldAutoClosePair(e,i,n-i.firstCharOffset)},e.prototype.getWordDefinition=function(e){var t=this._getRichEditSupport(e);return t?r.ensureValidWordDefinition(t.wordDefinition||null):r.ensureValidWordDefinition(null)},e.prototype.getFoldingRules=function(e){var t=this._getRichEditSupport(e);return t?t.foldingRules:{}},e.prototype.getIndentRulesSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null},e.prototype.getPrecedingValidLine=function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var o=void 0,r=-1;for(o=t-1;o>=1;o--){if(e.getLanguageIdAtPosition(o,0)!==i)return r;var s=e.getLineContent(o);if(!n.shouldIgnore(s)&&!/^\\s+$/.test(s)&&\"\"!==s)return o;r=o}}return-1},e.prototype.getInheritIndentForLine=function(e,t,n,i){if(void 0===i&&(i=!0),e<4)return null;var r=this.getIndentRulesSupport(t.getLanguageIdentifier().id)\n;if(!r)return null;if(n<=1)return{indentation:\"\",action:null};var a=this.getPrecedingValidLine(t,n,r);if(a<0)return null;if(a<1)return{indentation:\"\",action:null};var l=t.getLineContent(a);if(r.shouldIncrease(l)||r.shouldIndentNextLine(l))return{indentation:o.getLeadingWhitespace(l),action:s.IndentAction.Indent,line:a};if(r.shouldDecrease(l))return{indentation:o.getLeadingWhitespace(l),action:null,line:a};if(1===a)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};var u=a-1,d=r.getIndentMetadata(t.getLineContent(u));if(!(3&d)&&4&d){for(var c=0,h=u-1;h>0;h--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=h;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};for(h=a;h>0;h--){var p=t.getLineContent(h);if(r.shouldIncrease(p))return{indentation:o.getLeadingWhitespace(p),action:s.IndentAction.Indent,line:h};if(r.shouldIndentNextLine(p)){c=0\n;for(var g=h-1;g>0;g--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=g;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(c+1)),action:null,line:c+1}}if(r.shouldDecrease(p))return{indentation:o.getLeadingWhitespace(p),action:null,line:h}}return{indentation:o.getLeadingWhitespace(t.getLineContent(1)),action:null,line:1}},e.prototype.getGoodIndentForLine=function(e,t,n,i,r){if(e<4)return null;var a=this._getRichEditSupport(n);if(!a)return null;var l=this.getIndentRulesSupport(n);if(!l)return null;var u=this.getInheritIndentForLine(e,t,i),d=t.getLineContent(i);if(u){var c=u.line;if(void 0!==c){var h=a.onEnter(e,\"\",t.getLineContent(c),\"\");if(h){var p=o.getLeadingWhitespace(t.getLineContent(c));return h.removeText&&(p=p.substring(0,p.length-h.removeText)),h.indentAction===s.IndentAction.Indent||h.indentAction===s.IndentAction.IndentOutdent?p=r.shiftIndent(p):h.indentAction===s.IndentAction.Outdent&&(p=r.unshiftIndent(p)),l.shouldDecrease(d)&&(p=r.unshiftIndent(p)),\nh.appendText&&(p+=h.appendText),o.getLeadingWhitespace(p)}}return l.shouldDecrease(d)?u.action===s.IndentAction.Indent?u.indentation:r.unshiftIndent(u.indentation):u.action===s.IndentAction.Indent?r.shiftIndent(u.indentation):u.indentation}return null},e.prototype.getIndentForEnter=function(e,t,n,i){if(e<4)return null;t.forceTokenization(n.startLineNumber);var r,l,u=t.getLineTokens(n.startLineNumber),d=a.createScopedLineTokens(u,n.startColumn-1),c=d.getLineContent(),h=!1;(d.firstCharOffset>0&&u.getLanguageId(0)!==d.languageId?(h=!0,r=c.substr(0,n.startColumn-1-d.firstCharOffset)):r=u.getLineContent().substring(0,n.startColumn-1),n.isEmpty())?l=c.substr(n.startColumn-1-d.firstCharOffset):l=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-d.firstCharOffset);var p=this.getIndentRulesSupport(d.languageId);if(!p)return null;var g=r,f=o.getLeadingWhitespace(r),m={getLineTokens:function(e){return t.getLineTokens(e)},getLanguageIdentifier:function(){\nreturn t.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,n){return t.getLanguageIdAtPosition(e,n)},getLineContent:function(e){return e===n.startLineNumber?g:t.getLineContent(e)}},v=o.getLeadingWhitespace(u.getLineContent()),_=this.getInheritIndentForLine(e,m,n.startLineNumber+1);if(!_){var y=h?v:f;return{beforeEnter:y,afterEnter:y}}var C=h?v:_.indentation;return _.action===s.IndentAction.Indent&&(C=i.shiftIndent(C)),p.shouldDecrease(l)&&(C=i.unshiftIndent(C)),{beforeEnter:h?v:f,afterEnter:C}},e.prototype.getIndentActionForType=function(e,t,n,i,o){if(e<4)return null;var r=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),a=this.getIndentRulesSupport(r.languageId);if(!a)return null;var l,u=r.getLineContent(),d=u.substr(0,n.startColumn-1-r.firstCharOffset);n.isEmpty()?l=u.substr(n.startColumn-1-r.firstCharOffset):l=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-r.firstCharOffset);if(!a.shouldDecrease(d+l)&&a.shouldDecrease(d+i+l)){\nvar c=this.getInheritIndentForLine(e,t,n.startLineNumber,!1);if(!c)return null;var h=c.indentation;return c.action!==s.IndentAction.Indent&&(h=o.unshiftIndent(h)),h}return null},e.prototype.getIndentMetadata=function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null},e.prototype.getEnterAction=function(e,t,n){var i=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),o=this._getRichEditSupport(i.languageId);if(!o)return null;var r,a=i.getLineContent(),l=a.substr(0,n.startColumn-1-i.firstCharOffset);n.isEmpty()?r=a.substr(n.startColumn-1-i.firstCharOffset):r=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-i.firstCharOffset);var u=\"\";if(n.startLineNumber>1&&0===i.firstCharOffset){var d=this.getScopedLineTokens(t,n.startLineNumber-1);d.languageId===i.languageId&&(u=d.getLineContent())}var c=o.onEnter(e,u,l,r);if(!c)return null\n;var h=c.indentAction,p=c.appendText,g=c.removeText||0;p||(p=h===s.IndentAction.Indent||h===s.IndentAction.IndentOutdent?\"\\t\":\"\");var f=this.getIndentationAtPosition(t,n.startLineNumber,n.startColumn);return g&&(f=f.substring(0,f.length-g)),{indentAction:h,appendText:p,removeText:g,indentation:f}},e.prototype.getIndentationAtPosition=function(e,t,n){var i=e.getLineContent(t),r=o.getLeadingWhitespace(i);return r.length>n-1&&(r=r.substring(0,n-1)),r},e.prototype.getScopedLineTokens=function(e,t,n){e.forceTokenization(t);var i=e.getLineTokens(t),o=void 0===n?e.getLineMaxColumn(t)-1:n-1;return a.createScopedLineTokens(i,o)},e.prototype.getBracketsSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.brackets||null},e}();t.LanguageConfigurationRegistryImpl=f,t.LanguageConfigurationRegistry=new f})),define(n[357],i([0,1,27]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n,i,o){this.token=e,this.index=t,this.fontStyle=n,this.foreground=i,\nthis.background=o};function o(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,o=0,r=e.length;o<r;o++){var s=e[o],a=-1;if(\"string\"==typeof s.fontStyle){a=0;for(var l=s.fontStyle.split(\" \"),u=0,d=l.length;u<d;u++){switch(l[u]){case\"italic\":a|=1;break;case\"bold\":a|=2;break;case\"underline\":a|=4}}}var c=null;\"string\"==typeof s.foreground&&(c=s.foreground);var h=null;\"string\"==typeof s.background&&(h=s.background),t[n++]=new i(s.token||\"\",o,a,c,h)}return t}function r(e,t){e.sort((function(e,t){var n=c(e.token,t.token);return 0!==n?n:e.index-t.index}));for(var n=0,i=\"000000\",o=\"ffffff\";e.length>=1&&\"\"===e[0].token;){var r=e.shift();-1!==r.fontStyle&&(n=r.fontStyle),null!==r.foreground&&(i=r.foreground),null!==r.background&&(o=r.background)}for(var s=new a,u=0,d=t;u<d.length;u++){var g=d[u];s.getId(g)}for(var f=s.getId(i),m=s.getId(o),v=new h(n,f,m),_=new p(v),y=0,C=e.length;y<C;y++){var b=e[y];_.insert(b.token,b.fontStyle,s.getId(b.foreground),s.getId(b.background))}return new l(s,_)}t.ParsedTokenThemeRule=i,\nt.parseTokenTheme=o;var s=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/,a=function(){function e(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}return e.prototype.getId=function(e){if(null===e)return 0;var t=e.match(s);if(!t)throw new Error(\"Illegal value for token color: \"+e);e=t[1].toUpperCase();var i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=n.Color.fromHex(\"#\"+e),i)},e.prototype.getColorMap=function(){return this._id2color.slice(0)},e}();t.ColorMap=a;var l=function(){function e(e,t){this._colorMap=e,this._root=t,this._cache=new Map}return e.createFromRawTokenTheme=function(e,t){return this.createFromParsedTokenTheme(o(e),t)},e.createFromParsedTokenTheme=function(e,t){return r(e,t)},e.prototype.getColorMap=function(){return this._colorMap.getColorMap()},e.prototype._match=function(e){return this._root.match(e)},e.prototype.match=function(e,t){var n=this._cache.get(t);if(void 0===n){var i=this._match(t),o=d(t);n=(i.metadata|o<<8)>>>0,\nthis._cache.set(t,n)}return(n|e<<0)>>>0},e}();t.TokenTheme=l;var u=/\\b(comment|string|regex|regexp)\\b/;function d(e){var t=e.match(u);if(!t)return 0;switch(t[1]){case\"comment\":return 1;case\"string\":return 2;case\"regex\":case\"regexp\":return 4}throw new Error(\"Unexpected match for standard token type!\")}function c(e,t){return e<t?-1:e>t?1:0}t.toStandardTokenType=d,t.strcmp=c;var h=function(){function e(e,t,n){this._fontStyle=e,this._foreground=t,this._background=n,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return e.prototype.clone=function(){return new e(this._fontStyle,this._foreground,this._background)},e.prototype.acceptOverwrite=function(e,t,n){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==n&&(this._background=n),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0},e}();t.ThemeTrieElementRule=h;var p=function(){function e(e){this._mainRule=e,this._children=new Map}return e.prototype.match=function(e){\nif(\"\"===e)return this._mainRule;var t,n,i=e.indexOf(\".\");-1===i?(t=e,n=\"\"):(t=e.substring(0,i),n=e.substring(i+1));var o=this._children.get(t);return void 0!==o?o.match(n):this._mainRule},e.prototype.insert=function(t,n,i,o){if(\"\"!==t){var r,s,a=t.indexOf(\".\");-1===a?(r=t,s=\"\"):(r=t.substring(0,a),s=t.substring(a+1));var l=this._children.get(r);void 0===l&&(l=new e(this._mainRule.clone()),this._children.set(r,l)),l.insert(s,n,i,o)}else this._mainRule.acceptOverwrite(n,i,o)},e}();t.ThemeTrieElement=p,t.generateTokensCSSForColorMap=function(e){for(var t=[],n=1,i=e.length;n<i;n++){var o=e[n];t[n]=\".mtk\"+n+\" { color: \"+o+\"; }\"}return t.push(\".mtki { font-style: italic; }\"),t.push(\".mtkb { font-weight: bold; }\"),t.push(\".mtku { text-decoration: underline; text-underline-position: under; }\"),t.join(\"\\n\")}})),define(n[358],i([0,1,4,2,21,38]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){this._map=new Map,this._promises=new Map,\nthis._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event,this._colorMap=null}return e.prototype.fire=function(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})},e.prototype.register=function(e,t){var n=this;return this._map.set(e,t),this.fire([e]),i.toDisposable((function(){n._map.get(e)===t&&(n._map.delete(e),n.fire([e]))}))},e.prototype.registerPromise=function(e,t){var n=this,o=null,r=!1;return this._promises.set(e,t.then((function(t){n._promises.delete(e),!r&&t&&(o=n.register(e,t))}))),i.toDisposable((function(){r=!0,o&&o.dispose()}))},e.prototype.getPromise=function(e){var t=this,n=this.get(e);if(n)return Promise.resolve(n);var i=this._promises.get(e);return i?i.then((function(n){return t.get(e)})):null},e.prototype.get=function(e){return o.withUndefinedAsNull(this._map.get(e))},e.prototype.setColorMap=function(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:r.keys(this._map),changedColorMap:!0})},e.prototype.getColorMap=function(){return this._colorMap},\ne.prototype.getDefaultBackground=function(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null},e}();t.TokenizationRegistryImpl=s})),\n/*!\nCopyright (c) 2014 Taylor Hakes\nCopyright (c) 2014 Forbes Lindesay\n */\np=function(){\"use strict\";function e(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){return t.reject(n)}))}))}var t=setTimeout;function n(){}function i(e){if(!(this instanceof i))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],u(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn((function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void s(t.promise,e)}r(t.promise,i)}else(1===e._state?r:s)(t.promise,e._value)}))):e._deferreds.push(t)}function r(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof i)return e._state=3,e._value=t,void a(e)\n;if(\"function\"==typeof n)return void u((o=n,r=t,function(){o.apply(r,arguments)}),e)}e._state=1,e._value=t,a(e)}catch(t){s(e,t)}var o,r}function s(e,t){e._state=2,e._value=t,a(e)}function a(e){2===e._state&&0===e._deferreds.length&&i._immediateFn((function(){e._handled||i._unhandledRejectionFn(e._value)}));for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function l(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}function u(e,t){var n=!1;try{e((function(e){n||(n=!0,r(t,e))}),(function(e){n||(n=!0,s(t,e))}))}catch(e){if(n)return;n=!0,s(t,e)}}i.prototype.catch=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var i=new this.constructor(n);return o(this,new l(e,t,i)),i},i.prototype.finally=e,i.all=function(e){return new i((function(t,n){if(!e||void 0===e.length)throw new TypeError(\"Promise.all accepts an array\");var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);var o=i.length\n;function r(e,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var a=s.then;if(\"function\"==typeof a)return void a.call(s,(function(t){r(e,t)}),n)}i[e]=s,0==--o&&t(i)}catch(e){n(e)}}for(var s=0;s<i.length;s++)r(s,i[s])}))},i.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===i?e:new i((function(t){t(e)}))},i.reject=function(e){return new i((function(t,n){n(e)}))},i.race=function(e){return new i((function(t,n){for(var i=0,o=e.length;i<o;i++)e[i].then(t,n)}))},i._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){t(e,0)},i._unhandledRejectionFn=function(e){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var d=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"unable to locate global object\")}();\"Promise\"in d?d.Promise.prototype.finally||(d.Promise.prototype.finally=e):d.Promise=i},\n\"object\"==typeof exports&&\"undefined\"!=typeof module?p():\"function\"==typeof define&&define.amd?define(\"vs/editor/common/standalone/promise-polyfill/polyfill\",p):p(),define(n[147],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Disabled=1]=\"Disabled\",e[e.Enabled=2]=\"Enabled\"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]=\"KeepWhitespace\",e[e.InsertAsSnippet=4]=\"InsertAsSnippet\"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){e[e.Method=0]=\"Method\",e[e.Function=1]=\"Function\",e[e.Constructor=2]=\"Constructor\",e[e.Field=3]=\"Field\",e[e.Variable=4]=\"Variable\",e[e.Class=5]=\"Class\",e[e.Struct=6]=\"Struct\",e[e.Interface=7]=\"Interface\",e[e.Module=8]=\"Module\",e[e.Property=9]=\"Property\",e[e.Event=10]=\"Event\",e[e.Operator=11]=\"Operator\",e[e.Unit=12]=\"Unit\",e[e.Value=13]=\"Value\",e[e.Constant=14]=\"Constant\",e[e.Enum=15]=\"Enum\",e[e.EnumMember=16]=\"EnumMember\",\ne[e.Keyword=17]=\"Keyword\",e[e.Text=18]=\"Text\",e[e.Color=19]=\"Color\",e[e.File=20]=\"File\",e[e.Reference=21]=\"Reference\",e[e.Customcolor=22]=\"Customcolor\",e[e.Folder=23]=\"Folder\",e[e.TypeParameter=24]=\"TypeParameter\",e[e.Snippet=25]=\"Snippet\"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]=\"Invoke\",e[e.TriggerCharacter=1]=\"TriggerCharacter\",e[e.TriggerForIncompleteCompletions=2]=\"TriggerForIncompleteCompletions\"}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]=\"EXACT\",e[e.ABOVE=1]=\"ABOVE\",e[e.BELOW=2]=\"BELOW\"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]=\"NotSet\",e[e.ContentFlush=1]=\"ContentFlush\",e[e.RecoverFromMarkers=2]=\"RecoverFromMarkers\",e[e.Explicit=3]=\"Explicit\",e[e.Paste=4]=\"Paste\",e[e.Undo=5]=\"Undo\",e[e.Redo=6]=\"Redo\"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]=\"LF\",\ne[e.CRLF=2]=\"CRLF\"}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]=\"None\",e[e.Keep=1]=\"Keep\",e[e.Brackets=2]=\"Brackets\",e[e.Advanced=3]=\"Advanced\",e[e.Full=4]=\"Full\"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]=\"acceptSuggestionOnCommitCharacter\",e[e.acceptSuggestionOnEnter=1]=\"acceptSuggestionOnEnter\",e[e.accessibilitySupport=2]=\"accessibilitySupport\",e[e.accessibilityPageSize=3]=\"accessibilityPageSize\",e[e.ariaLabel=4]=\"ariaLabel\",e[e.autoClosingBrackets=5]=\"autoClosingBrackets\",e[e.autoClosingOvertype=6]=\"autoClosingOvertype\",e[e.autoClosingQuotes=7]=\"autoClosingQuotes\",e[e.autoIndent=8]=\"autoIndent\",e[e.automaticLayout=9]=\"automaticLayout\",e[e.autoSurround=10]=\"autoSurround\",e[e.codeLens=11]=\"codeLens\",e[e.colorDecorators=12]=\"colorDecorators\",e[e.comments=13]=\"comments\",\ne[e.contextmenu=14]=\"contextmenu\",e[e.copyWithSyntaxHighlighting=15]=\"copyWithSyntaxHighlighting\",e[e.cursorBlinking=16]=\"cursorBlinking\",e[e.cursorSmoothCaretAnimation=17]=\"cursorSmoothCaretAnimation\",e[e.cursorStyle=18]=\"cursorStyle\",e[e.cursorSurroundingLines=19]=\"cursorSurroundingLines\",e[e.cursorSurroundingLinesStyle=20]=\"cursorSurroundingLinesStyle\",e[e.cursorWidth=21]=\"cursorWidth\",e[e.disableLayerHinting=22]=\"disableLayerHinting\",e[e.disableMonospaceOptimizations=23]=\"disableMonospaceOptimizations\",e[e.dragAndDrop=24]=\"dragAndDrop\",e[e.emptySelectionClipboard=25]=\"emptySelectionClipboard\",e[e.extraEditorClassName=26]=\"extraEditorClassName\",e[e.fastScrollSensitivity=27]=\"fastScrollSensitivity\",e[e.find=28]=\"find\",e[e.fixedOverflowWidgets=29]=\"fixedOverflowWidgets\",e[e.folding=30]=\"folding\",e[e.foldingStrategy=31]=\"foldingStrategy\",e[e.foldingHighlight=32]=\"foldingHighlight\",e[e.fontFamily=33]=\"fontFamily\",e[e.fontInfo=34]=\"fontInfo\",e[e.fontLigatures=35]=\"fontLigatures\",e[e.fontSize=36]=\"fontSize\",\ne[e.fontWeight=37]=\"fontWeight\",e[e.formatOnPaste=38]=\"formatOnPaste\",e[e.formatOnType=39]=\"formatOnType\",e[e.glyphMargin=40]=\"glyphMargin\",e[e.gotoLocation=41]=\"gotoLocation\",e[e.hideCursorInOverviewRuler=42]=\"hideCursorInOverviewRuler\",e[e.highlightActiveIndentGuide=43]=\"highlightActiveIndentGuide\",e[e.hover=44]=\"hover\",e[e.inDiffEditor=45]=\"inDiffEditor\",e[e.letterSpacing=46]=\"letterSpacing\",e[e.lightbulb=47]=\"lightbulb\",e[e.lineDecorationsWidth=48]=\"lineDecorationsWidth\",e[e.lineHeight=49]=\"lineHeight\",e[e.lineNumbers=50]=\"lineNumbers\",e[e.lineNumbersMinChars=51]=\"lineNumbersMinChars\",e[e.links=52]=\"links\",e[e.matchBrackets=53]=\"matchBrackets\",e[e.minimap=54]=\"minimap\",e[e.mouseStyle=55]=\"mouseStyle\",e[e.mouseWheelScrollSensitivity=56]=\"mouseWheelScrollSensitivity\",e[e.mouseWheelZoom=57]=\"mouseWheelZoom\",e[e.multiCursorMergeOverlapping=58]=\"multiCursorMergeOverlapping\",e[e.multiCursorModifier=59]=\"multiCursorModifier\",e[e.multiCursorPaste=60]=\"multiCursorPaste\",\ne[e.occurrencesHighlight=61]=\"occurrencesHighlight\",e[e.overviewRulerBorder=62]=\"overviewRulerBorder\",e[e.overviewRulerLanes=63]=\"overviewRulerLanes\",e[e.parameterHints=64]=\"parameterHints\",e[e.peekWidgetDefaultFocus=65]=\"peekWidgetDefaultFocus\",e[e.quickSuggestions=66]=\"quickSuggestions\",e[e.quickSuggestionsDelay=67]=\"quickSuggestionsDelay\",e[e.readOnly=68]=\"readOnly\",e[e.renderControlCharacters=69]=\"renderControlCharacters\",e[e.renderIndentGuides=70]=\"renderIndentGuides\",e[e.renderFinalNewline=71]=\"renderFinalNewline\",e[e.renderLineHighlight=72]=\"renderLineHighlight\",e[e.renderValidationDecorations=73]=\"renderValidationDecorations\",e[e.renderWhitespace=74]=\"renderWhitespace\",e[e.revealHorizontalRightPadding=75]=\"revealHorizontalRightPadding\",e[e.roundedSelection=76]=\"roundedSelection\",e[e.rulers=77]=\"rulers\",e[e.scrollbar=78]=\"scrollbar\",e[e.scrollBeyondLastColumn=79]=\"scrollBeyondLastColumn\",e[e.scrollBeyondLastLine=80]=\"scrollBeyondLastLine\",e[e.selectionClipboard=81]=\"selectionClipboard\",\ne[e.selectionHighlight=82]=\"selectionHighlight\",e[e.selectOnLineNumbers=83]=\"selectOnLineNumbers\",e[e.showFoldingControls=84]=\"showFoldingControls\",e[e.showUnused=85]=\"showUnused\",e[e.snippetSuggestions=86]=\"snippetSuggestions\",e[e.smoothScrolling=87]=\"smoothScrolling\",e[e.stopRenderingLineAfter=88]=\"stopRenderingLineAfter\",e[e.suggest=89]=\"suggest\",e[e.suggestFontSize=90]=\"suggestFontSize\",e[e.suggestLineHeight=91]=\"suggestLineHeight\",e[e.suggestOnTriggerCharacters=92]=\"suggestOnTriggerCharacters\",e[e.suggestSelection=93]=\"suggestSelection\",e[e.tabCompletion=94]=\"tabCompletion\",e[e.useTabStops=95]=\"useTabStops\",e[e.wordSeparators=96]=\"wordSeparators\",e[e.wordWrap=97]=\"wordWrap\",e[e.wordWrapBreakAfterCharacters=98]=\"wordWrapBreakAfterCharacters\",e[e.wordWrapBreakBeforeCharacters=99]=\"wordWrapBreakBeforeCharacters\",e[e.wordWrapColumn=100]=\"wordWrapColumn\",e[e.wordWrapMinified=101]=\"wordWrapMinified\",e[e.wrappingIndent=102]=\"wrappingIndent\",e[e.wrappingStrategy=103]=\"wrappingStrategy\",\ne[e.editorClassName=104]=\"editorClassName\",e[e.pixelRatio=105]=\"pixelRatio\",e[e.tabFocusMode=106]=\"tabFocusMode\",e[e.layoutInfo=107]=\"layoutInfo\",e[e.wrappingInfo=108]=\"wrappingInfo\"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]=\"TextDefined\",e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]=\"LF\",e[e.CRLF=1]=\"CRLF\"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Backspace=1]=\"Backspace\",e[e.Tab=2]=\"Tab\",e[e.Enter=3]=\"Enter\",e[e.Shift=4]=\"Shift\",e[e.Ctrl=5]=\"Ctrl\",e[e.Alt=6]=\"Alt\",e[e.PauseBreak=7]=\"PauseBreak\",e[e.CapsLock=8]=\"CapsLock\",e[e.Escape=9]=\"Escape\",e[e.Space=10]=\"Space\",e[e.PageUp=11]=\"PageUp\",e[e.PageDown=12]=\"PageDown\",e[e.End=13]=\"End\",e[e.Home=14]=\"Home\",e[e.LeftArrow=15]=\"LeftArrow\",e[e.UpArrow=16]=\"UpArrow\",\ne[e.RightArrow=17]=\"RightArrow\",e[e.DownArrow=18]=\"DownArrow\",e[e.Insert=19]=\"Insert\",e[e.Delete=20]=\"Delete\",e[e.KEY_0=21]=\"KEY_0\",e[e.KEY_1=22]=\"KEY_1\",e[e.KEY_2=23]=\"KEY_2\",e[e.KEY_3=24]=\"KEY_3\",e[e.KEY_4=25]=\"KEY_4\",e[e.KEY_5=26]=\"KEY_5\",e[e.KEY_6=27]=\"KEY_6\",e[e.KEY_7=28]=\"KEY_7\",e[e.KEY_8=29]=\"KEY_8\",e[e.KEY_9=30]=\"KEY_9\",e[e.KEY_A=31]=\"KEY_A\",e[e.KEY_B=32]=\"KEY_B\",e[e.KEY_C=33]=\"KEY_C\",e[e.KEY_D=34]=\"KEY_D\",e[e.KEY_E=35]=\"KEY_E\",e[e.KEY_F=36]=\"KEY_F\",e[e.KEY_G=37]=\"KEY_G\",e[e.KEY_H=38]=\"KEY_H\",e[e.KEY_I=39]=\"KEY_I\",e[e.KEY_J=40]=\"KEY_J\",e[e.KEY_K=41]=\"KEY_K\",e[e.KEY_L=42]=\"KEY_L\",e[e.KEY_M=43]=\"KEY_M\",e[e.KEY_N=44]=\"KEY_N\",e[e.KEY_O=45]=\"KEY_O\",e[e.KEY_P=46]=\"KEY_P\",e[e.KEY_Q=47]=\"KEY_Q\",e[e.KEY_R=48]=\"KEY_R\",e[e.KEY_S=49]=\"KEY_S\",e[e.KEY_T=50]=\"KEY_T\",e[e.KEY_U=51]=\"KEY_U\",e[e.KEY_V=52]=\"KEY_V\",e[e.KEY_W=53]=\"KEY_W\",e[e.KEY_X=54]=\"KEY_X\",e[e.KEY_Y=55]=\"KEY_Y\",e[e.KEY_Z=56]=\"KEY_Z\",e[e.Meta=57]=\"Meta\",e[e.ContextMenu=58]=\"ContextMenu\",e[e.F1=59]=\"F1\",e[e.F2=60]=\"F2\",e[e.F3=61]=\"F3\",e[e.F4=62]=\"F4\",\ne[e.F5=63]=\"F5\",e[e.F6=64]=\"F6\",e[e.F7=65]=\"F7\",e[e.F8=66]=\"F8\",e[e.F9=67]=\"F9\",e[e.F10=68]=\"F10\",e[e.F11=69]=\"F11\",e[e.F12=70]=\"F12\",e[e.F13=71]=\"F13\",e[e.F14=72]=\"F14\",e[e.F15=73]=\"F15\",e[e.F16=74]=\"F16\",e[e.F17=75]=\"F17\",e[e.F18=76]=\"F18\",e[e.F19=77]=\"F19\",e[e.NumLock=78]=\"NumLock\",e[e.ScrollLock=79]=\"ScrollLock\",e[e.US_SEMICOLON=80]=\"US_SEMICOLON\",e[e.US_EQUAL=81]=\"US_EQUAL\",e[e.US_COMMA=82]=\"US_COMMA\",e[e.US_MINUS=83]=\"US_MINUS\",e[e.US_DOT=84]=\"US_DOT\",e[e.US_SLASH=85]=\"US_SLASH\",e[e.US_BACKTICK=86]=\"US_BACKTICK\",e[e.US_OPEN_SQUARE_BRACKET=87]=\"US_OPEN_SQUARE_BRACKET\",e[e.US_BACKSLASH=88]=\"US_BACKSLASH\",e[e.US_CLOSE_SQUARE_BRACKET=89]=\"US_CLOSE_SQUARE_BRACKET\",e[e.US_QUOTE=90]=\"US_QUOTE\",e[e.OEM_8=91]=\"OEM_8\",e[e.OEM_102=92]=\"OEM_102\",e[e.NUMPAD_0=93]=\"NUMPAD_0\",e[e.NUMPAD_1=94]=\"NUMPAD_1\",e[e.NUMPAD_2=95]=\"NUMPAD_2\",e[e.NUMPAD_3=96]=\"NUMPAD_3\",e[e.NUMPAD_4=97]=\"NUMPAD_4\",e[e.NUMPAD_5=98]=\"NUMPAD_5\",e[e.NUMPAD_6=99]=\"NUMPAD_6\",e[e.NUMPAD_7=100]=\"NUMPAD_7\",e[e.NUMPAD_8=101]=\"NUMPAD_8\",\ne[e.NUMPAD_9=102]=\"NUMPAD_9\",e[e.NUMPAD_MULTIPLY=103]=\"NUMPAD_MULTIPLY\",e[e.NUMPAD_ADD=104]=\"NUMPAD_ADD\",e[e.NUMPAD_SEPARATOR=105]=\"NUMPAD_SEPARATOR\",e[e.NUMPAD_SUBTRACT=106]=\"NUMPAD_SUBTRACT\",e[e.NUMPAD_DECIMAL=107]=\"NUMPAD_DECIMAL\",e[e.NUMPAD_DIVIDE=108]=\"NUMPAD_DIVIDE\",e[e.KEY_IN_COMPOSITION=109]=\"KEY_IN_COMPOSITION\",e[e.ABNT_C1=110]=\"ABNT_C1\",e[e.ABNT_C2=111]=\"ABNT_C2\",e[e.MAX_VALUE=112]=\"MAX_VALUE\"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]=\"Unnecessary\",e[e.Deprecated=2]=\"Deprecated\"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]=\"UNKNOWN\",e[e.TEXTAREA=1]=\"TEXTAREA\",e[e.GUTTER_GLYPH_MARGIN=2]=\"GUTTER_GLYPH_MARGIN\",e[e.GUTTER_LINE_NUMBERS=3]=\"GUTTER_LINE_NUMBERS\",e[e.GUTTER_LINE_DECORATIONS=4]=\"GUTTER_LINE_DECORATIONS\",\ne[e.GUTTER_VIEW_ZONE=5]=\"GUTTER_VIEW_ZONE\",e[e.CONTENT_TEXT=6]=\"CONTENT_TEXT\",e[e.CONTENT_EMPTY=7]=\"CONTENT_EMPTY\",e[e.CONTENT_VIEW_ZONE=8]=\"CONTENT_VIEW_ZONE\",e[e.CONTENT_WIDGET=9]=\"CONTENT_WIDGET\",e[e.OVERVIEW_RULER=10]=\"OVERVIEW_RULER\",e[e.SCROLLBAR=11]=\"SCROLLBAR\",e[e.OVERLAY_WIDGET=12]=\"OVERLAY_WIDGET\",e[e.OUTSIDE_EDITOR=13]=\"OUTSIDE_EDITOR\"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]=\"TOP_RIGHT_CORNER\",e[e.BOTTOM_RIGHT_CORNER=1]=\"BOTTOM_RIGHT_CORNER\",e[e.TOP_CENTER=2]=\"TOP_CENTER\"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]=\"Off\",e[e.On=1]=\"On\",e[e.Relative=2]=\"Relative\",e[e.Interval=3]=\"Interval\",e[e.Custom=4]=\"Custom\"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]=\"None\",e[e.Text=1]=\"Text\",e[e.Blocks=2]=\"Blocks\"\n}(t.RenderMinimap||(t.RenderMinimap={})),function(e){e[e.Smooth=0]=\"Smooth\",e[e.Immediate=1]=\"Immediate\"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]=\"Auto\",e[e.Hidden=2]=\"Hidden\",e[e.Visible=3]=\"Visible\"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]=\"LTR\",e[e.RTL=1]=\"RTL\"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]=\"File\",e[e.Module=1]=\"Module\",e[e.Namespace=2]=\"Namespace\",e[e.Package=3]=\"Package\",e[e.Class=4]=\"Class\",e[e.Method=5]=\"Method\",e[e.Property=6]=\"Property\",e[e.Field=7]=\"Field\",e[e.Constructor=8]=\"Constructor\",e[e.Enum=9]=\"Enum\",e[e.Interface=10]=\"Interface\",e[e.Function=11]=\"Function\",e[e.Variable=12]=\"Variable\",e[e.Constant=13]=\"Constant\",e[e.String=14]=\"String\",e[e.Number=15]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Array=17]=\"Array\",\ne[e.Object=18]=\"Object\",e[e.Key=19]=\"Key\",e[e.Null=20]=\"Null\",e[e.EnumMember=21]=\"EnumMember\",e[e.Struct=22]=\"Struct\",e[e.Event=23]=\"Event\",e[e.Operator=24]=\"Operator\",e[e.TypeParameter=25]=\"TypeParameter\"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]=\"Hidden\",e[e.Blink=1]=\"Blink\",e[e.Smooth=2]=\"Smooth\",e[e.Phase=3]=\"Phase\",e[e.Expand=4]=\"Expand\",e[e.Solid=5]=\"Solid\"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]=\"AlwaysGrowsWhenTypingAtEdges\",e[e.NeverGrowsWhenTypingAtEdges=1]=\"NeverGrowsWhenTypingAtEdges\",e[e.GrowsOnlyWhenTypingBefore=2]=\"GrowsOnlyWhenTypingBefore\",\ne[e.GrowsOnlyWhenTypingAfter=3]=\"GrowsOnlyWhenTypingAfter\"}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]=\"None\",e[e.Same=1]=\"Same\",e[e.Indent=2]=\"Indent\",e[e.DeepIndent=3]=\"DeepIndent\"}(t.WrappingIndent||(t.WrappingIndent={}))})),define(n[192],i([0,1,26,4,36,25,13,3,22,107,147,614]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){}return e.chord=function(e,t){return o.KeyChord(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();t.KeyMod=c,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.CancellationTokenSource,Emitter:i.Emitter,KeyCode:d.KeyCode,KeyMod:c,Position:s.Position,Range:a.Range,Selection:l.Selection,SelectionDirection:d.SelectionDirection,MarkerSeverity:d.MarkerSeverity,MarkerTag:d.MarkerTag,Uri:r.URI,Token:u.Token}}})),define(n[193],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var n=function(){function e(e,t,n){this.from=0|e,this.to=0|t,this.colorId=0|n}return e.compare=function(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId},e}();t.ColorZone=n;var i=function(){function e(e,t,n){this.startLineNumber=e,this.endLineNumber=t,this.color=n,this._colorZone=null}return e.compare=function(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1},e.prototype.setColorZone=function(e){this._colorZone=e},e.prototype.getColorZones=function(){return this._colorZone},e}();t.OverviewRulerZone=i;var o=function(){function e(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}return e.prototype.getId2Color=function(){return this._id2Color},\ne.prototype.setZones=function(e){this._zones=e,this._zones.sort(i.compare)},e.prototype.setLineHeight=function(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setPixelRatio=function(e){this._pixelRatio=e,this._colorZonesInvalid=!0},e.prototype.getDOMWidth=function(){return this._domWidth},e.prototype.getCanvasWidth=function(){return this._domWidth*this._pixelRatio},e.prototype.setDOMWidth=function(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)},e.prototype.getDOMHeight=function(){return this._domHeight},e.prototype.getCanvasHeight=function(){return this._domHeight*this._pixelRatio},e.prototype.setDOMHeight=function(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.getOuterHeight=function(){return this._outerHeight},e.prototype.setOuterHeight=function(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.resolveColorZones=function(){\nfor(var e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),o=i/Math.floor(this._outerHeight),r=Math.floor(4*this._pixelRatio/2),s=[],a=0,l=this._zones.length;a<l;a++){var u=this._zones[a];if(!e){var d=u.getColorZones();if(d){s.push(d);continue}}var c=Math.floor(o*this._getVerticalOffsetForLine(u.startLineNumber)),h=Math.floor(o*(this._getVerticalOffsetForLine(u.endLineNumber)+t)),p=Math.floor((c+h)/2),g=h-p;g<r&&(g=r),p-g<0&&(p=g),p+g>i&&(p=i-g);var f=u.color,m=this._color2Id[f];m||(m=++this._lastAssignedId,this._color2Id[f]=m,this._id2Color[m]=f);var v=new n(p-g,p+g,m);u.setColorZone(v),s.push(v)}return this._colorZonesInvalid=!1,s.sort(n.compare),s},e}();t.OverviewZoneManager=o})),define(n[91],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),\nthis.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;var n=this._viewLayout.getCurrentViewport();this.scrollTop=n.top,this.scrollLeft=n.left,this.viewportWidth=n.width,this.viewportHeight=n.height}return e.prototype.getScrolledTopFromAbsoluteTop=function(e){return e-this.scrollTop},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)},e.prototype.getDecorationsInViewport=function(){return this.viewportData.getDecorationsInViewport()},e}();t.RestrictedRenderingContext=n;var i=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._viewLines=i,o}return r(t,e),t.prototype.linesVisibleRangesForRange=function(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)},t.prototype.visibleRangeForPosition=function(e){return this._viewLines.visibleRangeForPosition(e)},t}(n);t.RenderingContext=i;var o=function(e,t,n){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=n}\n;t.LineVisibleRanges=o;var s=function(){function e(e,t){this.left=Math.round(e),this.width=Math.round(t)}return e.prototype.toString=function(){return\"[\"+this.left+\",\"+this.width+\"]\"},e}();t.HorizontalRange=s;var a=function(e,t){this.outsideRenderedLine=e,this.left=Math.round(t)};t.HorizontalPosition=a;var l=function(e,t){this.outsideRenderedLine=e,this.ranges=t};t.VisibleRanges=l})),define(n[359],i([0,1,91]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this.left=e,this.width=t}return e.prototype.toString=function(){return\"[\"+this.left+\",\"+this.width+\"]\"},e.compare=function(e,t){return e.left-t.left},e}(),o=function(){function e(){}return e._createRange=function(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange},e._detachRange=function(e,t){e.selectNodeContents(t)},e._readClientRects=function(e,t,n,i,o){var r=this._createRange();try{return r.setStart(e,t),r.setEnd(n,i),r.getClientRects()\n}catch(e){return null}finally{this._detachRange(r,o)}},e._mergeAdjacentRanges=function(e){if(1===e.length)return[new n.HorizontalRange(e[0].left,e[0].width)];e.sort(i.compare);for(var t=[],o=0,r=e[0].left,s=e[0].width,a=1,l=e.length;a<l;a++){var u=e[a],d=u.left,c=u.width;r+s+.9>=d?s=Math.max(s,d+c-r):(t[o++]=new n.HorizontalRange(r,s),r=d,s=c)}return t[o++]=new n.HorizontalRange(r,s),t},e._createHorizontalRangesFromClientRects=function(e,t){if(!e||0===e.length)return null;for(var n=[],o=0,r=e.length;o<r;o++){var s=e[o];n[o]=new i(Math.max(0,s.left-t),s.width)}return this._mergeAdjacentRanges(n)},e.readHorizontalRanges=function(e,t,n,i,o,r,s){var a=e.children.length-1;if(0>a)return null;(t=Math.min(a,Math.max(0,t)))!==(i=Math.min(a,Math.max(0,i)))&&i>0&&0===o&&(i--,o=1073741824);var l=e.children[t].firstChild,u=e.children[i].firstChild;if(l&&u||(!l&&0===n&&t>0&&(l=e.children[t-1].firstChild,n=1073741824),!u&&0===o&&i>0&&(u=e.children[i-1].firstChild,o=1073741824)),!l||!u)return null\n;n=Math.min(l.textContent.length,Math.max(0,n)),o=Math.min(u.textContent.length,Math.max(0,o));var d=this._readClientRects(l,n,u,o,s);return this._createHorizontalRangesFromClientRects(d,r)},e}();t.RangeUtil=o})),define(n[360],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this.configuration=e,this.theme=t,this.model=n,this.viewLayout=n.viewLayout,this.privateViewEventBus=i}return e.prototype.addEventHandler=function(e){this.privateViewEventBus.addEventHandler(e)},e.prototype.removeEventHandler=function(e){this.privateViewEventBus.removeEventHandler(e)},e}();t.ViewContext=n})),define(n[361],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._eventHandlerGateKeeper=e,this._eventHandlers=[],this._eventQueue=null,this._isConsumingQueue=!1}return e.prototype.addEventHandler=function(e){\nfor(var t=0,n=this._eventHandlers.length;t<n;t++)this._eventHandlers[t]===e&&console.warn(\"Detected duplicate listener in ViewEventDispatcher\",e);this._eventHandlers.push(e)},e.prototype.removeEventHandler=function(e){for(var t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}},e.prototype.emit=function(e){this._eventQueue?this._eventQueue.push(e):this._eventQueue=[e],this._isConsumingQueue||this.consumeQueue()},e.prototype.emitMany=function(e){this._eventQueue?this._eventQueue=this._eventQueue.concat(e):this._eventQueue=e,this._isConsumingQueue||this.consumeQueue()},e.prototype.consumeQueue=function(){var e=this;this._eventHandlerGateKeeper((function(){try{e._isConsumingQueue=!0,e._doConsumeQueue()}finally{e._isConsumingQueue=!1}}))},e.prototype._doConsumeQueue=function(){for(;this._eventQueue;){var e=this._eventQueue;this._eventQueue=null;for(var t=this._eventHandlers.slice(0),n=0,i=t.length;n<i;n++)t[n].handleEvents(e)}},e}();t.ViewEventDispatcher=n\n})),define(n[81],i([0,1,10,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this.type=1,this._source=e}return e.prototype.hasChanged=function(e){return this._source.hasChanged(e)},e}();t.ViewConfigurationChangedEvent=o;var s=function(e){this.type=2,this.contentWidth=e.contentWidth,this.contentHeight=e.contentHeight,this.contentWidthChanged=e.contentWidthChanged,this.contentHeightChanged=e.contentHeightChanged};t.ViewContentSizeChangedEvent=s;var a=function(e,t){this.type=3,this.selections=e,this.modelSelections=t};t.ViewCursorStateChangedEvent=a;var l=function(){this.type=4};t.ViewDecorationsChangedEvent=l;var u=function(){this.type=5};t.ViewFlushedEvent=u;var d=function(e){this.type=6,this.isFocused=e};t.ViewFocusChangedEvent=d;var c=function(){this.type=7};t.ViewLanguageConfigurationEvent=c;var h=function(){this.type=8};t.ViewLineMappingChangedEvent=h;var p=function(e,t){this.type=9,this.fromLineNumber=e,this.toLineNumber=t}\n;t.ViewLinesChangedEvent=p;var g=function(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t};t.ViewLinesDeletedEvent=g;var f=function(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t};t.ViewLinesInsertedEvent=f;var m=function(e,t,n,i,o){this.type=12,this.source=e,this.range=t,this.verticalType=n,this.revealHorizontal=i,this.scrollType=o};t.ViewRevealRangeRequestEvent=m;var v=function(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged};t.ViewScrollChangedEvent=v;var _=function(){this.type=14};t.ViewThemeChangedEvent=_;var y=function(e){this.type=15,this.ranges=e};t.ViewTokensChangedEvent=y;var C=function(){this.type=16};t.ViewTokensColorsChangedEvent=C;var b=function(){this.type=17};t.ViewZonesChangedEvent=b;var S=function(e){\nfunction t(){var t=e.call(this)||this;return t._listeners=[],t._collector=null,t._collectorCnt=0,t}return r(t,e),t.prototype.dispose=function(){this._listeners=[],e.prototype.dispose.call(this)},t.prototype._beginEmit=function(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new w),this._collector},t.prototype._endEmit=function(){if(this._collectorCnt--,0===this._collectorCnt){var e=this._collector.finalize();this._collector=null,e.length>0&&this._emit(e)}},t.prototype._emit=function(e){for(var t=this._listeners.slice(0),n=0,i=t.length;n<i;n++)E(t[n],e)},t.prototype.addEventListener=function(e){var t=this;return this._listeners.push(e),i.toDisposable((function(){for(var n=t._listeners,i=0,o=n.length;i<o;i++)if(n[i]===e){n.splice(i,1);break}}))},t}(i.Disposable);t.ViewEventEmitter=S;var w=function(){function e(){this._eventsLen=0,this._events=[],this._eventsLen=0}return e.prototype.emit=function(e){this._events[this._eventsLen++]=e},e.prototype.finalize=function(){var e=this._events\n;return this._events=[],e},e}();function E(e,t){try{e(t)}catch(e){n.onUnexpectedError(e)}}t.ViewEventsCollector=w})),define(n[148],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,i){this.startColumn=e,this.endColumn=t,this.className=n,this.type=i}return e._equals=function(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type},e.equalsArr=function(t,n){var i=t.length;if(i!==n.length)return!1;for(var o=0;o<i;o++)if(!e._equals(t[o],n[o]))return!1;return!0},e.filter=function(t,n,i,o){if(0===t.length)return[];for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a],d=u.range;if(!(d.endLineNumber<n||d.startLineNumber>n)&&(!d.isEmpty()||0!==u.type&&3!==u.type)){var c=d.startLineNumber===n?d.startColumn:i,h=d.endLineNumber===n?d.endColumn:o;r[s++]=new e(c,h,u.inlineClassName,u.type)}}return r},e.compare=function(e,t){\nreturn e.startColumn===t.startColumn?e.endColumn===t.endColumn?e.className<t.className?-1:e.className>t.className?1:0:e.endColumn-t.endColumn:e.startColumn-t.startColumn},e}();t.LineDecoration=i;var o=function(e,t,n){this.startOffset=e,this.endOffset=t,this.className=n};t.DecorationSegment=o;var r=function(){function e(){this.stopOffsets=[],this.classNames=[],this.count=0}return e.prototype.consumeLowerThan=function(e,t,n){for(;this.count>0&&this.stopOffsets[0]<e;){for(var i=0;i+1<this.count&&this.stopOffsets[i]===this.stopOffsets[i+1];)i++;n.push(new o(t,this.stopOffsets[i],this.classNames.join(\" \"))),t=this.stopOffsets[i]+1,this.stopOffsets.splice(0,i+1),this.classNames.splice(0,i+1),this.count-=i+1}return this.count>0&&t<e&&(n.push(new o(t,e-1,this.classNames.join(\" \"))),t=e),t},e.prototype.insert=function(e,t){if(0===this.count||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t);else for(var n=0;n<this.count;n++)if(this.stopOffsets[n]>=e){this.stopOffsets.splice(n,0,e),\nthis.classNames.splice(n,0,t);break}this.count++},e}(),s=function(){function e(){}return e.normalize=function(e,t){if(0===t.length)return[];for(var i=[],o=new r,s=0,a=0,l=t.length;a<l;a++){var u=t[a],d=u.startColumn,c=u.endColumn,h=u.className;if(d>1){var p=e.charCodeAt(d-2);n.isHighSurrogate(p)&&d--}if(c>1){p=e.charCodeAt(c-2);n.isHighSurrogate(p)&&c--}var g=d-1,f=c-2;s=o.consumeLowerThan(g,s,i),0===o.count&&(s=g),o.insert(f,h)}return o.consumeLowerThan(1073741824,s,i),i},e}();t.LineDecorationsNormalizer=s})),define(n[362],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}return e.prototype.insert=function(e){this._hasPending=!0,this._inserts.push(e)},e.prototype.change=function(e){this._hasPending=!0,this._changes.push(e)},e.prototype.remove=function(e){this._hasPending=!0,this._removes.push(e)},e.prototype.mustCommit=function(){return this._hasPending},\ne.prototype.commit=function(e){if(this._hasPending){var t=this._inserts,n=this._changes,i=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,n,i)}},e}(),o=function(e,t,n,i,o){this.id=e,this.afterLineNumber=t,this.ordinal=n,this.height=i,this.minWidth=o,this.prefixSum=0};t.EditorWhitespace=o;var r=function(){function e(t,o){this._instanceId=n.singleLetterHash(++e.INSTANCE_COUNT),this._pendingChanges=new i,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._lineHeight=o}return e.findInsertionIndex=function(e,t,n){for(var i=0,o=e.length;i<o;){var r=i+o>>>1;t===e[r].afterLineNumber?n<e[r].ordinal?o=r:i=r+1:t<e[r].afterLineNumber?o=r:i=r+1}return i},e.prototype.setLineHeight=function(e){this._checkPendingChanges(),this._lineHeight=e},e.prototype.onFlushed=function(e){this._checkPendingChanges(),this._lineCount=e},e.prototype.changeWhitespace=function(e){var t=this;try{return e({\ninsertWhitespace:function(e,n,i,r){e|=0,n|=0,i|=0,r|=0;var s=t._instanceId+ ++t._lastWhitespaceId;return t._pendingChanges.insert(new o(s,e,n,i,r)),s},changeOneWhitespace:function(e,n,i){n|=0,i|=0,t._pendingChanges.change({id:e,newAfterLineNumber:n,newHeight:i})},removeWhitespace:function(e){t._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}},e.prototype._commitPendingChanges=function(e,t,n){if((e.length>0||n.length>0)&&(this._minWidth=-1),e.length+t.length+n.length<=1){for(var i=0,o=e;i<o.length;i++){var r=o[i];this._insertWhitespace(r)}for(var s=0,a=t;s<a.length;s++){var l=a[s];this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight)}for(var u=0,d=n;u<d.length;u++){var c=d[u],h=this._findWhitespaceIndex(c.id);-1!==h&&this._removeWhitespace(h)}}else{for(var p=new Set,g=0,f=n;g<f.length;g++){c=f[g];p.add(c.id)}for(var m=new Map,v=0,_=t;v<_.length;v++){l=_[v];m.set(l.id,l)}var y=function(e){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n];if(!p.has(o.id)){if(m.has(o.id)){\nvar r=m.get(o.id);o.afterLineNumber=r.newAfterLineNumber,o.height=r.newHeight}t.push(o)}}return t},C=y(this._arr).concat(y(e));C.sort((function(e,t){return e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber})),this._arr=C,this._prefixSumValidIndex=-1}},e.prototype._checkPendingChanges=function(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)},e.prototype._insertWhitespace=function(t){var n=e.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(n,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)},e.prototype._findWhitespaceIndex=function(e){for(var t=this._arr,n=0,i=t.length;n<i;n++)if(t[n].id===e)return n;return-1},e.prototype._changeOneWhitespace=function(e,t,n){var i=this._findWhitespaceIndex(e);if(-1!==i&&(this._arr[i].height!==n&&(this._arr[i].height=n,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1)),this._arr[i].afterLineNumber!==t)){var o=this._arr[i];this._removeWhitespace(i),\no.afterLineNumber=t,this._insertWhitespace(o)}},e.prototype._removeWhitespace=function(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)},e.prototype.onLinesDeleted=function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){var o=this._arr[n].afterLineNumber;e<=o&&o<=t?this._arr[n].afterLineNumber=e-1:o>t&&(this._arr[n].afterLineNumber-=t-e+1)}},e.prototype.onLinesInserted=function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){e<=this._arr[n].afterLineNumber&&(this._arr[n].afterLineNumber+=t-e+1)}},e.prototype.getWhitespacesTotalHeight=function(){return this._checkPendingChanges(),0===this._arr.length?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)},e.prototype.getWhitespacesAccumulatedHeight=function(e){this._checkPendingChanges(),e|=0;var t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++)\n;for(var n=t;n<=e;n++)this._arr[n].prefixSum=this._arr[n-1].prefixSum+this._arr[n].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum},e.prototype.getLinesTotalHeight=function(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()},e.prototype.getWhitespaceAccumulatedHeightBeforeLineNumber=function(e){this._checkPendingChanges(),e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e);return-1===t?0:this.getWhitespacesAccumulatedHeight(t)},e.prototype._findLastWhitespaceBeforeLineNumber=function(e){e|=0;for(var t=this._arr,n=0,i=t.length-1;n<=i;){var o=n+((i-n|0)/2|0)|0;if(t[o].afterLineNumber<e){if(o+1>=t.length||t[o+1].afterLineNumber>=e)return o;n=o+1|0}else i=o-1|0}return-1},e.prototype._findFirstWhitespaceAfterLineNumber=function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1},e.prototype.getFirstWhitespaceIndexAfterLineNumber=function(e){\nreturn this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)},e.prototype.getWhitespaceMinWidth=function(){if(this._checkPendingChanges(),-1===this._minWidth){for(var e=0,t=0,n=this._arr.length;t<n;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth},e.prototype.isAfterLines=function(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()},e.prototype.getLineNumberAtOrAfterVerticalOffset=function(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,o=t;i<o;){var r=(i+o)/2|0,s=0|this.getVerticalOffsetForLineNumber(r);if(e>=s+n)i=r+1;else{if(e>=s)return r;o=r}}return i>t?t:i},e.prototype.getLinesViewportData=function(e,t){this._checkPendingChanges(),e|=0,t|=0\n;var n,i,o=this._lineHeight,r=0|this.getLineNumberAtOrAfterVerticalOffset(e),s=0|this.getVerticalOffsetForLineNumber(r),a=0|this._lineCount,l=0|this.getFirstWhitespaceIndexAfterLineNumber(r),u=0|this.getWhitespacesCount();-1===l?(l=u,i=a+1,n=0):(i=0|this.getAfterLineNumberForWhitespaceIndex(l),n=0|this.getHeightForWhitespaceIndex(l));var d=s,c=d,h=0;s>=5e5&&(h=5e5*Math.floor(s/5e5),c-=h=Math.floor(h/o)*o);for(var p=[],g=e+(t-e)/2,f=-1,m=r;m<=a;m++){if(-1===f){(d<=g&&g<d+o||d>g)&&(f=m)}for(d+=o,p[m-r]=c,c+=o;i===m;)c+=n,d+=n,++l>=u?i=a+1:(i=0|this.getAfterLineNumberForWhitespaceIndex(l),n=0|this.getHeightForWhitespaceIndex(l));if(d>=t){a=m;break}}-1===f&&(f=a);var v=0|this.getVerticalOffsetForLineNumber(a),_=r,y=a;return _<y&&s<e&&_++,_<y&&v+o>t&&y--,{bigNumbersDelta:h,startLineNumber:r,endLineNumber:a,relativeVerticalOffset:p,centeredLineNumber:f,completelyVisibleStartLineNumber:_,completelyVisibleEndLineNumber:y}},e.prototype.getVerticalOffsetForWhitespaceIndex=function(e){this._checkPendingChanges(),e|=0\n;var t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)},e.prototype.getWhitespaceIndexAtOrAfterVerticallOffset=function(e){this._checkPendingChanges(),e|=0;var t=0,n=this.getWhitespacesCount()-1;if(n<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(n)+this.getHeightForWhitespaceIndex(n))return-1;for(;t<n;){var i=Math.floor((t+n)/2),o=this.getVerticalOffsetForWhitespaceIndex(i);if(e>=o+this.getHeightForWhitespaceIndex(i))t=i+1;else{if(e>=o)return i;n=i}}return t},e.prototype.getWhitespaceAtVerticalOffset=function(e){this._checkPendingChanges(),e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}},\ne.prototype.getWhitespaceViewportData=function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this.getWhitespacesCount()-1;if(n<0)return[];for(var o=[],r=n;r<=i;r++){var s=this.getVerticalOffsetForWhitespaceIndex(r),a=this.getHeightForWhitespaceIndex(r);if(s>=t)break;o.push({id:this.getIdForWhitespaceIndex(r),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:s,height:a})}return o},e.prototype.getWhitespaces=function(){return this._checkPendingChanges(),this._arr.slice(0)},e.prototype.getWhitespacesCount=function(){return this._checkPendingChanges(),this._arr.length},e.prototype.getIdForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].id},e.prototype.getAfterLineNumberForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber},e.prototype.getHeightForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].height},e.INSTANCE_COUNT=0,e\n}();t.LinesLayout=r})),define(n[110],i([0,1,5,106,148]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(e,t){this.endIndex=e,this.type=t},s=function(){function e(e,t){this.startOffset=e,this.endOffset=t}return e.prototype.equals=function(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset},e}();t.LineRange=s;var a=function(){function e(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m,v){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.continuesWithWrappedLine=i,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=s,this.lineTokens=a,this.lineDecorations=l,this.tabSize=u,this.startVisibleColumn=d,this.spaceWidth=c,this.middotWidth=h,this.stopRenderingLineAfter=p,this.renderWhitespace=\"all\"===g?3:\"boundary\"===g?1:\"selection\"===g?2:0,this.renderControlCharacters=f,this.fontLigatures=m,this.selectionsOnLine=v&&v.sort((function(e,t){return e.startOffset<t.startOffset?-1:1}))}\nreturn e.prototype.sameSelection=function(e){if(null===this.selectionsOnLine)return null===e;if(null===e)return!1;if(e.length!==this.selectionsOnLine.length)return!1;for(var t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0},e.prototype.equals=function(e){\nreturn this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&o.LineDecoration.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)},e}();t.RenderLineInput=a;var l=function(){function e(e,t){this.length=e,this._data=new Uint32Array(this.length),this._absoluteOffsets=new Uint32Array(this.length)}return e.getPartIndex=function(e){return(4294901760&e)>>>16},\ne.getCharIndex=function(e){return(65535&e)>>>0},e.prototype.setPartData=function(e,t,n,i){var o=(t<<16|n<<0)>>>0;this._data[e]=o,this._absoluteOffsets[e]=i+n},e.prototype.getAbsoluteOffsets=function(){return this._absoluteOffsets},e.prototype.charOffsetToPartData=function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]},e.prototype.partDataToCharOffset=function(t,n,i){if(0===this.length)return 0;for(var o=(t<<16|i<<0)>>>0,r=0,s=this.length-1;r+1<s;){var a=r+s>>>1,l=this._data[a];if(l===o)return a;l>o?s=a:r=a}if(r===s)return r;var u=this._data[r],d=this._data[s];if(u===o)return r;if(d===o)return s;var c=e.getPartIndex(u);return i-e.getCharIndex(u)<=(c!==e.getPartIndex(d)?n:e.getCharIndex(d))-i?r:s},e}();t.CharacterMapping=l;var u=function(e,t,n){this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=n};function d(e,t){if(0===e.lineContent.length){var i=0,s=\"<span><span> </span></span>\";if(e.lineDecorations.length>0){\nfor(var a=[],d=[],c=0,p=e.lineDecorations.length;c<p;c++){var g=e.lineDecorations[c];1===g.type&&(a.push(e.lineDecorations[c].className),i|=1),2===g.type&&(d.push(e.lineDecorations[c].className),i|=2)}if(0!==i)s=\"<span>\"+(a.length>0?'<span class=\"'+a.join(\" \")+'\"></span>':\"\")+(d.length>0?'<span class=\"'+d.join(\" \")+'\"></span>':\"\")+\"</span>\"}return t.appendASCIIString(s),new u(new l(0,0),!1,i)}return function(e,t){var i=e.fontIsMonospace,o=e.canUseHalfwidthRightwardsArrow,r=e.containsForeignElements,s=e.lineContent,a=e.len,d=e.isOverflowing,c=e.parts,h=e.fauxIndentLength,p=e.tabSize,g=e.startVisibleColumn,f=e.containsRTL,m=e.spaceWidth,v=e.middotWidth,_=e.renderWhitespace,y=e.renderControlCharacters,C=v>m?11825:183,b=new l(a+1,c.length),S=0,w=g,E=0,L=0,D=0;t.appendASCIIString(\"<span>\");for(var N=0,x=c.length;N<x;N++){D+=L;var I=c[N],M=I.endIndex,k=I.type,T=0!==_&&k.indexOf(\"vs-whitespace\")>=0;if(E=0,t.appendASCIIString('<span class=\"'),t.appendASCIIString(k),t.appendASCII(34),T){for(var R=0,O=S,P=w;O<M;O++){\nvar A=s.charCodeAt(O);R+=F=0|(9===A?p-P%p:1),O>=h&&(P+=F)}if(!i)!(\"vs-whitespace\"===k)&&r||(t.appendASCIIString(' style=\"display:inline-block;width:'),t.appendASCIIString(String(m*R)),t.appendASCIIString('px\"'));for(t.appendASCII(62);S<M;S++){b.setPartData(S,N,E,D);A=s.charCodeAt(S);var F=void 0;if(9===A){F=p-w%p|0,!o||F>1?t.write1(8594):t.write1(65515);for(var W=2;W<=F;W++)t.write1(160)}else F=1,t.write1(C);E+=F,S>=h&&(w+=F)}L=R}else{R=0;for(f&&t.appendASCIIString(' dir=\"ltr\"'),t.appendASCII(62);S<M;S++){b.setPartData(S,N,E,D);A=s.charCodeAt(S);var B=1;F=1;switch(A){case 9:F=B=p-w%p;for(W=1;W<=B;W++)t.write1(160);break;case 32:t.write1(160);break;case 60:t.appendASCIIString(\"&lt;\");break;case 62:t.appendASCIIString(\"&gt;\");break;case 38:t.appendASCIIString(\"&amp;\");break;case 0:t.appendASCIIString(\"&#00;\");break;case 65279:case 8232:t.write1(65533);break;default:n.isFullWidthCharacter(A)&&F++,y&&A<32?t.write1(9216+A):t.write1(A)}E+=B,R+=B,S>=h&&(w+=F)}L=R}t.appendASCIIString(\"</span>\")}\nb.setPartData(a,c.length-1,E,D),d&&t.appendASCIIString(\"<span>&hellip;</span>\");return t.appendASCIIString(\"</span>\"),new u(b,f,r)}(function(e){var t,i,s=e.useMonospaceOptimizations,a=e.lineContent;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter<a.length?(t=!0,i=e.stopRenderingLineAfter):(t=!1,i=a.length);var l=function(e,t,n){var i=[],o=0;t>0&&(i[o++]=new r(t,\"\"));for(var s=0,a=e.getCount();s<a;s++){var l=e.getEndOffset(s);if(!(l<=t)){var u=e.getClassName(s);if(l>=n){i[o++]=new r(n,u);break}i[o++]=new r(l,u)}}return i}(e.lineTokens,e.fauxIndentLength,i);(3===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine)&&(l=function(e,t,i,o,s,a,l,u,d,c){var h,p=[],g=0,f=0,m=o[f].type,v=o[f].endIndex,_=o.length,y=n.firstNonWhitespaceIndex(e);-1===y?(y=t,h=t):h=n.lastNonWhitespaceIndex(e);for(var C=!1,b=0,S=d&&d[b],w=l%a,E=s;E<t;E++){var L=e.charCodeAt(E);S&&E>=S.endOffset&&(b++,S=d&&d[b]);var D=void 0;if(E<y||E>h)D=!0;else if(9===L)D=!0;else if(32===L)if(c)if(C)D=!0;else{\nvar N=E+1<t?e.charCodeAt(E+1):0;D=32===N||9===N}else D=!0;else D=!1;D&&d&&(D=!!S&&S.startOffset<=E&&S.endOffset>E),C?(!D||!u&&w>=a)&&(p[g++]=new r(E,\"vs-whitespace\"),w%=a):(E===v||D&&E>s)&&(p[g++]=new r(E,m),w%=a),9===L?w=a:n.isFullWidthCharacter(L)?w+=2:w++,C=D,E===v&&++f<_&&(m=o[f].type,v=o[f].endIndex)}var x=!1;if(C)if(i&&c){var I=t>0?e.charCodeAt(t-1):0,M=t>1?e.charCodeAt(t-2):0;32===I&&32!==M&&9!==M||(x=!0)}else x=!0;return p[g++]=new r(t,x?\"vs-whitespace\":m),p}(a,i,e.continuesWithWrappedLine,l,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,s,e.selectionsOnLine,1===e.renderWhitespace));var u=0;if(e.lineDecorations.length>0){for(var d=0,c=e.lineDecorations.length;d<c;d++){var p=e.lineDecorations[d];3===p.type?u|=1:1===p.type?u|=1:2===p.type&&(u|=2)}l=function(e,t,n,i){i.sort(o.LineDecoration.compare);for(var s=o.LineDecorationsNormalizer.normalize(e,i),a=s.length,l=0,u=[],d=0,c=0,h=0,p=n.length;h<p;h++){for(var g=n[h],f=g.endIndex,m=g.type;l<a&&s[l].startOffset<f;){var v=s[l]\n;if(v.startOffset>c&&(c=v.startOffset,u[d++]=new r(c,m)),!(v.endOffset+1<=f)){c=f,u[d++]=new r(c,m+\" \"+v.className);break}c=v.endOffset+1,u[d++]=new r(c,m+\" \"+v.className),l++}f>c&&(c=f,u[d++]=new r(c,m))}var _=n[n.length-1].endIndex;if(l<a&&s[l].startOffset===_){for(var y=[];l<a&&s[l].startOffset===_;)y.push(s[l].className),l++;u[d++]=new r(c,y.join(\" \"))}return u}(a,0,l,e.lineDecorations)}e.containsRTL||(l=function(e,t,n){var i=0,o=[],s=0;if(n)for(var a=0,l=t.length;a<l;a++){var u=(g=t[a]).endIndex;if(i+50<u){for(var d=g.type,c=-1,h=i,p=i;p<u;p++)32===e.charCodeAt(p)&&(c=p),-1!==c&&p-h>=50&&(o[s++]=new r(c+1,d),h=c+1,c=-1);h!==u&&(o[s++]=new r(u,d))}else o[s++]=g;i=u}else for(a=0,l=t.length;a<l;a++){var g=t[a],f=(u=g.endIndex)-i;if(f>50){d=g.type;var m=Math.ceil(f/50);for(p=1;p<m;p++){var v=i+50*p;o[s++]=new r(v,d)}o[s++]=new r(u,d)}else o[s++]=g;i=u}return o}(a,l,!e.isBasicASCII||e.fontLigatures))\n;return new h(s,e.canUseHalfwidthRightwardsArrow,a,i,t,l,u,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.containsRTL,e.spaceWidth,e.middotWidth,e.renderWhitespace,e.renderControlCharacters)}(e),t)}t.RenderLineOutput=u,t.renderViewLine=d;var c=function(e,t,n,i){this.characterMapping=e,this.html=t,this.containsRTL=n,this.containsForeignElements=i};t.RenderLineOutput2=c,t.renderViewLine2=function(e){var t=i.createStringBuilder(1e4),n=d(e,t);return new c(n.characterMapping,t.build(),n.containsRTL,n.containsForeignElements)};var h=function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.len=i,this.isOverflowing=o,this.parts=r,this.containsForeignElements=s,this.fauxIndentLength=a,this.tabSize=l,this.startVisibleColumn=u,this.containsRTL=d,this.spaceWidth=c,this.middotWidth=h,this.renderWhitespace=p,this.renderControlCharacters=g}})),define(n[363],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var i=function(){function e(e,t,i,o){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.whitespaceViewportData=i,this._model=o,this.visibleRange=new n.Range(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}return e.prototype.getViewLineRenderingData=function(e){return this._model.getViewLineRenderingData(this.visibleRange,e)},e.prototype.getDecorationsInViewport=function(){return this._model.getDecorationsInViewport(this.visibleRange)},e}();t.ViewportData=i})),define(n[194],i([0,1,179]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t){this.index=e,this.remainder=t};t.PrefixSumIndexOfResult=i;var o=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),\nthis.prefixSumValidIndex[0]=-1}return e.prototype.insertValues=function(e,t){e=n.toUint32(e);var i=this.values,o=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(i.length+r),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)},e.prototype.removeValues=function(e,t){e=n.toUint32(e),t=n.toUint32(t);var i=this.values,o=this.prefixSum;if(e>=i.length)return!1;var r=i.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),\nthis.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t=0,n=this.values.length-1,o=0,r=0,s=0;t<=n;)if(o=t+(n-t)/2|0,\ne<(s=(r=this.prefixSum[o])-this.values[o]))n=o-1;else{if(!(e>=r))break;t=o+1}return new i(o,e-s)},e}();t.PrefixSumComputer=o})),define(n[364],i([0,1,13,194]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n,i){this._uri=e,this._lines=t,this._eol=n,this._versionId=i,this._lineStarts=null}return e.prototype.dispose=function(){this._lines.length=0},e.prototype.getText=function(){return this._lines.join(this._eol)},e.prototype.onEvents=function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);for(var t=0,i=e.changes;t<i.length;t++){var o=i[t];this._acceptDeleteRange(o.range),this._acceptInsertText(new n.Position(o.range.startLineNumber,o.range.startColumn),o.text)}this._versionId=e.versionId},e.prototype._ensureLineStarts=function(){if(!this._lineStarts){for(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),o=0;o<t;o++)n[o]=this._lines[o].length+e;this._lineStarts=new i.PrefixSumComputer(n)}},\ne.prototype._setLineText=function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}},e.prototype._acceptInsertText=function(e,t){if(0!==t.length){var n=t.split(/\\r\\n|\\r|\\n/);if(1!==n.length){n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0])\n;for(var i=new Uint32Array(n.length-1),o=1;o<n.length;o++)this._lines.splice(e.lineNumber+o-1,0,n[o]),i[o-1]=n[o].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,i)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}},e}();t.MirrorTextModel=o})),define(n[365],i([0,1,19,126,54,16,25,13,3,341,364,109,351,354,192,21]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),Object.defineProperty(t.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"version\",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"eol\",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){\nreturn this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=g.getWordAtText(e.column,g.ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return n?new u.Range(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.createWordIterator=function(e){var t,n,i=this,r=0,s=0,a=[],l=function(){if(s<a.length){var u=n.substring(a[s].start,a[s].end);return s+=1,t?t.value=u:t={done:!1,value:u},t}return r>=i._lines.length?o.FIN:(n=i._lines[r],a=i._wordenize(n,e),s=0,r+=1,l())};return{next:l}},t.prototype.getLineWords=function(e,t){for(var n=this._lines[e-1],i=[],o=0,r=this._wordenize(n,t);o<r.length;o++){var s=r[o];i.push({word:n.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}return i},t.prototype._wordenize=function(e,t){var n,i=[]\n;for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,o=[];o.push(this._lines[n].substring(e.startColumn-1));for(var r=n+1;r<i;r++)o.push(this._lines[r]);return o.push(this._lines[i].substring(0,e.endColumn-1)),o.join(t)},t.prototype.offsetAt=function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)},t.prototype.positionAt=function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}},t.prototype._validateRange=function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn\n}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e},t.prototype._validatePosition=function(e){if(!l.Position.isIPosition(e))throw new Error(\"bad position\");var t=e.lineNumber,n=e.column,i=!1;if(t<1)t=1,n=1,i=!0;else if(t>this._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var o=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>o&&(n=o,i=!0)}return i?{lineNumber:t,column:n}:e},t}(p.MirrorTextModel),C=function(){function t(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}return t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[]\n;return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new y(a.URI.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t.prototype.computeDiff=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a,l,u,d;return c(this,(function(c){return o=this._getModel(e),r=this._getModel(t),o&&r?(s=o.getLinesContent(),a=r.getLinesContent(),l=new h.DiffComputer(s,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:i}),u=l.computeDiff(),d=!(u.changes.length>0)&&this._modelsAreIdentical(o,r),[2,{quitEarly:u.quitEarly,identical:d,changes:u.changes}]):[2,null]}))}))},t.prototype._modelsAreIdentical=function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1\n;for(var i=1;i<=n;i++){if(e.getLineContent(i)!==t.getLineContent(i))return!1}return!0},t.prototype.computeMoreMinimalEdits=function(e,o){return d(this,void 0,void 0,(function(){var r,s,a,l,d,h,p,g,f,m,v,_,y,C,b,S,w,E;return c(this,(function(c){if(!(r=this._getModel(e)))return[2,o];for(s=[],a=void 0,o=n.mergeSort(o,(function(e,t){return e.range&&t.range?u.Range.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),l=0,d=o;l<d.length;l++)if(h=d[l],p=h.range,g=h.text,\"number\"==typeof(f=h.eol)&&(a=f),(!u.Range.isEmpty(p)||g)&&(m=r.getValueInRange(p),g=g.replace(/\\r\\n|\\n|\\r/g,r.eol),m!==g))if(Math.max(g.length,m.length)>t._diffLimit)s.push({range:p,text:g});else for(v=i.stringDiff(m,g,!1),_=r.offsetAt(u.Range.lift(p).getStartPosition()),y=0,C=v;y<C.length;y++)b=C[y],S=r.positionAt(_+b.originalStart),w=r.positionAt(_+b.originalStart+b.originalLength),E={text:g.substr(b.modifiedStart,b.modifiedLength),range:{startLineNumber:S.lineNumber,startColumn:S.column,endLineNumber:w.lineNumber,\nendColumn:w.column}},r.getValueInRange(E.range)!==E.text&&s.push(E);return\"number\"==typeof a&&s.push({eol:a,text:\"\",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),[2,s]}))}))},t.prototype.computeLinks=function(e){return d(this,void 0,void 0,(function(){var t;return c(this,(function(n){return(t=this._getModel(e))?[2,f.computeLinks(t)]:[2,null]}))}))},t.prototype.textualSuggest=function(e,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l,u,d,h,p;return c(this,(function(c){if(!(r=this._getModel(e)))return[2,null];for(s=[],a=new Set,l=new RegExp(i,o),(u=r.getWordAtPosition(n,l))&&a.add(r.getValueInRange(u)),d=r.createWordIterator(l),h=d.next();!h.done&&a.size<=t._suggestionsLimit;h=d.next())p=h.value,a.has(p)||(a.add(p),isNaN(Number(p))&&s.push(p));return[2,s]}))}))},t.prototype.computeWordRanges=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a,l,u,d,h,p;return c(this,(function(c){if(!(o=this._getModel(e)))return[2,Object.create(null)];for(r=new RegExp(n,i),\ns=Object.create(null),a=t.startLineNumber;a<t.endLineNumber;a++)for(l=o.getLineWords(a,r),u=0,d=l;u<d.length;u++)h=d[u],isNaN(Number(h.word))&&((p=s[h.word])||(p=[],s[h.word]=p),p.push({startLineNumber:a,startColumn:h.startColumn,endLineNumber:a,endColumn:h.endColumn}));return[2,s]}))}))},t.prototype.navigateValueSet=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l,u;return c(this,(function(d){return(r=this._getModel(e))?(s=new RegExp(i,o),t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),a=r.getValueInRange(t),(l=r.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s))?(u=r.getValueInRange(l),[2,m.BasicInplaceReplace.INSTANCE.navigateValueSet(t,a,l,u,n)]):[2,null]):[2,null]}))}))},t.prototype.loadForeignModule=function(t,n,i){var o=this,r={host:_.createProxyObject(i,(function(e,t){return o._host.fhr(e,t)})),getMirrorModels:function(){return o._getModels()}}\n;return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,n),Promise.resolve(_.getAllMethodNames(this._foreignModule))):new Promise((function(i,s){e([t],(function(e){o._foreignModule=e.create(r,n),i(_.getAllMethodNames(o._foreignModule))}),s)}))},t.prototype.fmr=function(e,t){if(!this._foreignModule||\"function\"!=typeof this._foreignModule[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}},t._diffLimit=1e5,t._suggestionsLimit=1e4,t}();t.EditorSimpleWorker=C,t.create=function(e){return new C(e,null)},\"function\"==typeof importScripts&&(s.globals.monaco=v.createMonacoBaseAPI())})),define(n[92],i([0,1,2]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(){var t=e.call(this)||this;return t._shouldRender=!0,t}return r(t,e),t.prototype.shouldRender=function(){return this._shouldRender},\nt.prototype.forceShouldRender=function(){this._shouldRender=!0},t.prototype.setShouldRender=function(){this._shouldRender=!0},t.prototype.onDidRender=function(){this._shouldRender=!1},t.prototype.onConfigurationChanged=function(e){return!1},t.prototype.onContentSizeChanged=function(e){return!1},t.prototype.onCursorStateChanged=function(e){return!1},t.prototype.onDecorationsChanged=function(e){return!1},t.prototype.onFlushed=function(e){return!1},t.prototype.onFocusChanged=function(e){return!1},t.prototype.onLanguageConfigurationChanged=function(e){return!1},t.prototype.onLineMappingChanged=function(e){return!1},t.prototype.onLinesChanged=function(e){return!1},t.prototype.onLinesDeleted=function(e){return!1},t.prototype.onLinesInserted=function(e){return!1},t.prototype.onRevealRangeRequest=function(e){return!1},t.prototype.onScrollChanged=function(e){return!1},t.prototype.onThemeChanged=function(e){return!1},t.prototype.onTokensChanged=function(e){return!1},t.prototype.onTokensColorsChanged=function(e){\nreturn!1},t.prototype.onZonesChanged=function(e){return!1},t.prototype.handleEvents=function(e){for(var t=!1,n=0,i=e.length;n<i;n++){var o=e[n];switch(o.type){case 1:this.onConfigurationChanged(o)&&(t=!0);break;case 2:this.onContentSizeChanged(o)&&(t=!0);break;case 3:this.onCursorStateChanged(o)&&(t=!0);break;case 4:this.onDecorationsChanged(o)&&(t=!0);break;case 5:this.onFlushed(o)&&(t=!0);break;case 6:this.onFocusChanged(o)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(o)&&(t=!0);break;case 8:this.onLineMappingChanged(o)&&(t=!0);break;case 9:this.onLinesChanged(o)&&(t=!0);break;case 10:this.onLinesDeleted(o)&&(t=!0);break;case 11:this.onLinesInserted(o)&&(t=!0);break;case 12:this.onRevealRangeRequest(o)&&(t=!0);break;case 13:this.onScrollChanged(o)&&(t=!0);break;case 15:this.onTokensChanged(o)&&(t=!0);break;case 14:this.onThemeChanged(o)&&(t=!0);break;case 16:this.onTokensColorsChanged(o)&&(t=!0);break;case 17:this.onZonesChanged(o)&&(t=!0);break;default:\nconsole.info(\"View received unknown event: \"),console.info(o)}}t&&(this._shouldRender=!0)},t}(n.Disposable);t.ViewEventHandler=i})),define(n[82],i([0,1,92]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t}(n.ViewEventHandler);t.DynamicViewOverlay=i})),define(n[37],i([0,1,28,92]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t}(i.ViewEventHandler);t.ViewPart=o;var s=function(){function e(){}return e.write=function(e,t){n.FastDomNode,e.setAttribute(\"data-mprt\",String(t))},e.read=function(e){var t=e.getAttribute(\"data-mprt\");return null===t?0:parseInt(t,10)},e.collect=function(e,t){\nfor(var n=[],i=0;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[i++]=this.read(e)),e=e.parentElement;for(var o=new Uint8Array(i),r=0;r<i;r++)o[r]=n[i-r-1];return o},e}();t.PartFingerprints=s})),define(n[366],i([0,1,6,28,37]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e,t){this.top=e,this.left=t},a=function(e){function t(t,n){var r=e.call(this,t)||this;return r._viewDomNode=n,r._widgets={},r.domNode=i.createFastDomNode(document.createElement(\"div\")),o.PartFingerprints.write(r.domNode,1),r.domNode.setClassName(\"contentWidgets\"),r.domNode.setPosition(\"absolute\"),r.domNode.setTop(0),r.overflowingContentWidgetsDomNode=i.createFastDomNode(document.createElement(\"div\")),o.PartFingerprints.write(r.overflowingContentWidgetsDomNode,2),r.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\"),r}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets={}},t.prototype.onConfigurationChanged=function(e){\nfor(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onConfigurationChanged(e)}return!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLineMappingChanged=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onLineMappingChanged(e)}return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.addWidget=function(e){var t=new l(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t,n){this._widgets[e.getId()].setPosition(t,n),this.setShouldRender()},\nt.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t];delete this._widgets[t];var i=n.domNode.domNode;i.parentNode.removeChild(i),i.removeAttribute(\"monaco-visible-content-widget\"),this.setShouldRender()}},t.prototype.shouldSuppressMouseDownOnWidget=function(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown},t.prototype.onBeforeRender=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onBeforeRender(e)}},t.prototype.prepareRender=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].prepareRender(e)}},t.prototype.render=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].render(e)}},t}(o.ViewPart);t.ViewContentWidgets=a;var l=function(){function e(e,t,n){this._context=e,this._viewDomNode=t,this._actual=n,this.domNode=i.createFastDomNode(this._actual.getDomNode()),this.id=this._actual.getId(),\nthis.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;var o=this._context.configuration.options,r=o.get(107);this._fixedOverflowWidgets=o.get(29),this._contentWidth=r.contentWidth,this._contentLeft=r.contentLeft,this._lineHeight=o.get(49),this._range=null,this._viewRange=null,this._preference=[],this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?\"fixed\":\"absolute\"),this.domNode.setVisibility(\"hidden\"),this.domNode.setAttribute(\"widgetId\",this.id),this.domNode.setMaxWidth(this._maxWidth)}return e.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;if(this._lineHeight=t.get(49),e.hasChanged(107)){var n=t.get(107);this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._maxWidth=this._getMaxWidth()}},\ne.prototype.onLineMappingChanged=function(e){this._setPosition(this._range)},e.prototype._setPosition=function(e){if(this._range=e,this._viewRange=null,this._range){var t=this._context.model.validateModelRange(this._range);(this._context.model.coordinatesConverter.modelPositionIsVisible(t.getStartPosition())||this._context.model.coordinatesConverter.modelPositionIsVisible(t.getEndPosition()))&&(this._viewRange=this._context.model.coordinatesConverter.convertModelRangeToViewRange(t))}},e.prototype._getMaxWidth=function(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:this._contentWidth},e.prototype.setPosition=function(e,t){this._setPosition(e),this._preference=t,this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1},e.prototype._layoutBoxInViewport=function(e,t,n,i,o){var r=e.top,s=r,a=t.top+this._lineHeight,l=r-i,u=s>=i,d=a,c=o.viewportHeight-a>=i,h=e.left,p=t.left\n;return h+n>o.scrollLeft+o.viewportWidth&&(h=o.scrollLeft+o.viewportWidth-n),p+n>o.scrollLeft+o.viewportWidth&&(p=o.scrollLeft+o.viewportWidth-n),h<o.scrollLeft&&(h=o.scrollLeft),p<o.scrollLeft&&(p=o.scrollLeft),{fitsAbove:u,aboveTop:l,aboveLeft:h,fitsBelow:c,belowTop:d,belowLeft:p}},e.prototype._layoutHorizontalSegmentInPage=function(e,t,i,o){var r,s=Math.max(0,t.left-o),a=Math.min(t.left+t.width+o,e.width),l=t.left+i-n.StandardWindow.scrollX;l+o>a&&(l-=r=l-(a-o),i-=r);l<s&&(l-=r=l-s,i-=r);return[i,l]},e.prototype._layoutBoxInPage=function(e,t,i,o,r){var s=e.top-o,a=t.top+this._lineHeight,l=n.getDomNodePagePosition(this._viewDomNode.domNode),u=l.top+s-n.StandardWindow.scrollY,d=l.top+a-n.StandardWindow.scrollY,c=n.getClientArea(document.body),h=this._layoutHorizontalSegmentInPage(c,l,e.left-r.scrollLeft+this._contentLeft,i),p=h[0],g=h[1],f=this._layoutHorizontalSegmentInPage(c,l,t.left-r.scrollLeft+this._contentLeft,i),m=f[0],v=f[1],_=u>=22,y=d+o<=c.height-22;return this._fixedOverflowWidgets?{fitsAbove:_,\naboveTop:Math.max(u,22),aboveLeft:g,fitsBelow:y,belowTop:d,belowLeft:v}:{fitsAbove:_,aboveTop:Math.max(s,22),aboveLeft:p,fitsBelow:y,belowTop:a,belowLeft:m}},e.prototype._prepareRenderWidgetAtExactPositionOverflowing=function(e){return new s(e.top,e.left+this._contentLeft)},e.prototype._getTopAndBottomLeft=function(e){if(!this._viewRange)return[null,null];var t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];for(var n=t[0],i=t[0],o=0,r=t;o<r.length;o++){var a=r[o];a.lineNumber<n.lineNumber&&(n=a),a.lineNumber>i.lineNumber&&(i=a)}for(var l=1073741824,u=0,d=n.ranges;u<d.length;u++){(g=d[u]).left<l&&(l=g.left)}for(var c=1073741824,h=0,p=i.ranges;h<p.length;h++){var g;(g=p[h]).left<c&&(c=g.left)}var f=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.scrollTop,m=new s(f,l),v=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.scrollTop;return[m,new s(v,c)]},e.prototype._prepareRenderWidget=function(e){var t,n=this._getTopAndBottomLeft(e),i=n[0],o=n[1];if(!i||!o)return null\n;if(-1===this._cachedDomNodeClientWidth||-1===this._cachedDomNodeClientHeight){var r=this.domNode.domNode;this._cachedDomNodeClientWidth=r.clientWidth,this._cachedDomNodeClientHeight=r.clientHeight}if(t=this.allowEditorOverflow?this._layoutBoxInPage(i,o,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e):this._layoutBoxInViewport(i,o,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e),this._preference)for(var a=1;a<=2;a++)for(var l=0,u=this._preference;l<u.length;l++){var d=u[l];if(1===d){if(!t)return null;if(2===a||t.fitsAbove)return new s(t.aboveTop,t.aboveLeft)}else{if(2!==d)return this.allowEditorOverflow?this._prepareRenderWidgetAtExactPositionOverflowing(i):i;if(!t)return null;if(2===a||t.fitsBelow)return new s(t.belowTop,t.belowLeft)}}return null},e.prototype.onBeforeRender=function(e){this._viewRange&&this._preference&&(this._viewRange.endLineNumber<e.startLineNumber||this._viewRange.startLineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))},\ne.prototype.prepareRender=function(e){this._renderData=this._prepareRenderWidget(e)},e.prototype.render=function(e){this._renderData?(this.allowEditorOverflow?(this.domNode.setTop(this._renderData.top),this.domNode.setLeft(this._renderData.left)):(this.domNode.setTop(this._renderData.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.left)),this._isVisible||(this.domNode.setVisibility(\"inherit\"),this.domNode.setAttribute(\"monaco-visible-content-widget\",\"true\"),this._isVisible=!0)):this._isVisible&&(this.domNode.removeAttribute(\"monaco-visible-content-widget\"),this._isVisible=!1,this.domNode.setVisibility(\"hidden\"))},e}()})),define(n[367],i([0,1,82,3,91,286]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options;return n._lineHeight=i.get(49),n._typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,n._renderResult=null,\nn._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged||e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){for(var t=e.getDecorationsInViewport(),n=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r];a.options.className&&(n[o++]=a)}n=n.sort((function(e,t){if(e.options.zIndex<t.options.zIndex)return-1\n;if(e.options.zIndex>t.options.zIndex)return 1;var n=e.options.className,o=t.options.className;return n<o?-1:n>o?1:i.Range.compareRangesUsingStarts(e.range,t.range)}));for(var l=e.visibleRange.startLineNumber,u=e.visibleRange.endLineNumber,d=[],c=l;c<=u;c++){d[c-l]=\"\"}this._renderWholeLineDecorations(e,n,d),this._renderNormalDecorations(e,n,d),this._renderResult=d},t.prototype._renderWholeLineDecorations=function(e,t,n){for(var i=String(this._lineHeight),o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=0,a=t.length;s<a;s++){var l=t[s];if(l.options.isWholeLine)for(var u='<div class=\"cdr '+l.options.className+'\" style=\"left:0;width:100%;height:'+i+'px;\"></div>',d=Math.max(l.range.startLineNumber,o),c=Math.min(l.range.endLineNumber,r),h=d;h<=c;h++){n[h-o]+=u}}},t.prototype._renderNormalDecorations=function(e,t,n){for(var o=String(this._lineHeight),r=e.visibleRange.startLineNumber,s=null,a=!1,l=null,u=0,d=t.length;u<d;u++){var c=t[u];if(!c.options.isWholeLine){\nvar h=c.options.className,p=Boolean(c.options.showIfCollapsed),g=c.range;p&&1===g.endColumn&&g.endLineNumber!==g.startLineNumber&&(g=new i.Range(g.startLineNumber,g.startColumn,g.endLineNumber-1,this._context.model.getLineMaxColumn(g.endLineNumber-1))),s===h&&a===p&&i.Range.areIntersectingOrTouching(l,g)?l=i.Range.plusRange(l,g):(null!==s&&this._renderNormalDecoration(e,l,s,a,o,r,n),s=h,a=p,l=g)}}null!==s&&this._renderNormalDecoration(e,l,s,a,o,r,n)},t.prototype._renderNormalDecoration=function(e,t,n,i,r,s,a){var l=e.linesVisibleRangesForRange(t,\"findMatch\"===n);if(l)for(var u=0,d=l.length;u<d;u++){var c=l[u];if(!c.outsideRenderedLine){var h=c.lineNumber-s;if(i&&1===c.ranges.length){var p=c.ranges[0];0===p.width&&(c.ranges[0]=new o.HorizontalRange(p.left,this._typicalHalfwidthCharacterWidth))}for(var g=0,f=c.ranges.length;g<f;g++){var m=c.ranges[g],v='<div class=\"cdr '+n+'\" style=\"left:'+String(m.left)+\"px;width:\"+String(m.width)+\"px;height:\"+r+'px;\"></div>';a[h]+=v}}}},t.prototype.render=function(e,t){\nif(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(n.DynamicViewOverlay);t.DecorationsOverlay=s})),define(n[149],i([0,1,82,287]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n){this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(n)};t.DecorationToRender=i;var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._render=function(e,t,n){for(var i=[],o=e;o<=t;o++){i[o-e]=[]}if(0===n.length)return i;n.sort((function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1}));for(var r=null,s=0,a=0,l=n.length;a<l;a++){var u=n[a],d=u.className,c=Math.max(u.startLineNumber,e)-e,h=Math.min(u.endLineNumber,t)-e;r===d?(c=Math.max(s+1,c),s=Math.max(s,h)):(r=d,s=h);for(var p=c;p<=s;p++)i[p].push(r)}return i},t}(n.DynamicViewOverlay)\n;t.DedupOverlay=o;var s=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options,o=i.get(107);return n._lineHeight=i.get(49),n._glyphMargin=i.get(40),n._glyphMarginLeft=o.glyphMarginLeft,n._glyphMarginWidth=o.glyphMarginWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._glyphMargin=t.get(40),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){\nreturn e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),n=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.glyphMarginClassName;l&&(n[o++]=new i(a.range.startLineNumber,a.range.endLineNumber,l))}return n},t.prototype.prepareRender=function(e){if(this._glyphMargin){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o=this._lineHeight.toString(),r='\" style=\"left:'+this._glyphMarginLeft.toString()+\"px;width:\"+this._glyphMarginWidth.toString()+\"px;height:\"+o+'px;\"></div>',s=[],a=t;a<=n;a++){var l=a-t,u=i[l];0===u.length?s[l]=\"\":s[l]='<div class=\"cgmr codicon '+u.join(\" \")+r}this._renderResult=s}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(o);t.GlyphMarginOverlay=s})),define(n[368],i([0,1,149,291]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options.get(107);return n._decorationsLeft=i.decorationsLeft,n._decorationsWidth=i.decorationsWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(107);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},\nt.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),i=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.linesDecorationsClassName;l&&(i[o++]=new n.DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l))}return i},t.prototype.prepareRender=function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o='\" style=\"left:'+this._decorationsLeft.toString()+\"px;width:\"+this._decorationsWidth.toString()+'px;\"></div>',r=[],s=t;s<=n;s++){for(var a=s-t,l=i[a],u=\"\",d=0,c=l.length;d<c;d++)u+='<div class=\"cldr '+l[d]+o;r[a]=u}this._renderResult=r},t.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:\"\"},t}(n.DedupOverlay);t.LinesDecorationsOverlay=i})),define(n[195],i([0,1,28,37]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(i){var o=e.call(this,i)||this,r=o._context.configuration.options,s=r.get(107)\n;return o._canUseLayerHinting=!r.get(22),o._contentLeft=s.contentLeft,o._glyphMarginLeft=s.glyphMarginLeft,o._glyphMarginWidth=s.glyphMarginWidth,o._domNode=n.createFastDomNode(document.createElement(\"div\")),o._domNode.setClassName(t.OUTER_CLASS_NAME),o._domNode.setPosition(\"absolute\"),o._domNode.setAttribute(\"role\",\"presentation\"),o._domNode.setAttribute(\"aria-hidden\",\"true\"),o._glyphMarginBackgroundDomNode=n.createFastDomNode(document.createElement(\"div\")),o._glyphMarginBackgroundDomNode.setClassName(t.CLASS_NAME),o._domNode.appendChild(o._glyphMarginBackgroundDomNode),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._canUseLayerHinting=!t.get(22),this._contentLeft=n.contentLeft,this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0},t.prototype.onScrollChanged=function(t){\nreturn e.prototype.onScrollChanged.call(this,t)||t.scrollTopChanged},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain(\"strict\");var t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);var n=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(n),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(n)},t.CLASS_NAME=\"glyph-margin\",t.OUTER_CLASS_NAME=\"margin\",t}(i.ViewPart);t.Margin=o})),define(n[369],i([0,1,149,292]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,\ne.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),i=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.marginClassName;l&&(i[o++]=new n.DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l))}return i},t.prototype.prepareRender=function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o=[],r=t;r<=n;r++){for(var s=r-t,a=i[s],l=\"\",u=0,d=a.length;u<d;u++)l+='<div class=\"cmdr '+a[u]+'\" style=\"\"></div>';o[s]=l}this._renderResult=o},\nt.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:\"\"},t}(n.DedupOverlay);t.MarginViewLineDecorationsOverlay=i})),define(n[370],i([0,1,28,37,294]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var o=e.call(this,t)||this,r=o._context.configuration.options.get(107);return o._widgets={},o._verticalScrollbarWidth=r.verticalScrollbarWidth,o._minimapWidth=r.minimapWidth,o._horizontalScrollbarHeight=r.horizontalScrollbarHeight,o._editorHeight=r.height,o._editorWidth=r.width,o._domNode=n.createFastDomNode(document.createElement(\"div\")),i.PartFingerprints.write(o._domNode,4),o._domNode.setClassName(\"overlayWidgets\"),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets={}},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(107)\n;return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0},t.prototype.addWidget=function(e){var t=n.createFastDomNode(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition(\"absolute\"),t.setAttribute(\"widgetId\",e.getId()),this._domNode.appendChild(t),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)},t.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}},t.prototype._renderWidget=function(e){var t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){\nvar n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right=\"50%\");else t.unsetTop()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n<i;n++){var o=t[n];this._renderWidget(this._widgets[o])}},t}(i.ViewPart);t.ViewOverlayWidgets=o})),define(n[371],i([0,1,28,193,92]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,o){var r=e.call(this)||this;r._context=t;var s=r._context.configuration.options;return r._domNode=n.createFastDomNode(document.createElement(\"canvas\")),r._domNode.setClassName(o),r._domNode.setPosition(\"absolute\"),r._domNode.setLayerHinting(!0),r._domNode.setContain(\"strict\"),r._zoneManager=new i.OverviewZoneManager((function(e){\nreturn r._context.viewLayout.getVerticalOffsetForLineNumber(e)})),r._zoneManager.setDOMWidth(0),r._zoneManager.setDOMHeight(0),r._zoneManager.setOuterHeight(r._context.viewLayout.getScrollHeight()),r._zoneManager.setLineHeight(s.get(49)),r._zoneManager.setPixelRatio(s.get(105)),r._context.addEventHandler(r),r}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return e.hasChanged(49)&&(this._zoneManager.setLineHeight(t.get(49)),this._render()),e.hasChanged(105)&&(this._zoneManager.setPixelRatio(t.get(105)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0},t.prototype.onFlushed=function(e){return this._render(),!0},\nt.prototype.onScrollChanged=function(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0},t.prototype.onZonesChanged=function(e){return this._render(),!0},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.setLayout=function(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())},t.prototype.setZones=function(e){this._zoneManager.setZones(e),this._render()},t.prototype._render=function(){if(0===this._zoneManager.getOuterHeight())return!1\n;var e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),i=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext(\"2d\");return o.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(o,n,i,e),!0},t.prototype._renderOneLane=function(e,t,n,i){for(var o=0,r=0,s=0,a=0,l=t;a<l.length;a++){var u=l[a],d=u.colorId,c=u.from,h=u.to;d!==o?(e.fillRect(0,r,i,s-r),o=d,e.fillStyle=n[o],r=c,s=h):s>=c?s=Math.max(s,h):(e.fillRect(0,r,i,s-r),r=c,s=h)}e.fillRect(0,r,i,s-r)},t}(o.ViewEventHandler);t.OverviewRuler=s})),define(n[372],i([0,1,28,10,37,13]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){throw new Error(\"Invalid change accessor\")},l=function(e){function t(t){var i=e.call(this,t)||this,o=i._context.configuration.options,r=o.get(107);return i._lineHeight=o.get(49),i._contentWidth=r.contentWidth,i._contentLeft=r.contentLeft,i.domNode=n.createFastDomNode(document.createElement(\"div\")),\ni.domNode.setClassName(\"view-zones\"),i.domNode.setPosition(\"absolute\"),i.domNode.setAttribute(\"role\",\"presentation\"),i.domNode.setAttribute(\"aria-hidden\",\"true\"),i.marginDomNode=n.createFastDomNode(document.createElement(\"div\")),i.marginDomNode.setClassName(\"margin-view-zones\"),i.marginDomNode.setPosition(\"absolute\"),i.marginDomNode.setAttribute(\"role\",\"presentation\"),i.marginDomNode.setAttribute(\"aria-hidden\",\"true\"),i._zones={},i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._zones={}},t.prototype._recomputeWhitespacesProps=function(){for(var e=this,t=this._context.viewLayout.getWhitespaces(),n=new Map,i=0,o=t;i<o.length;i++){var r=o[i];n.set(r.id,r)}return this._context.viewLayout.changeWhitespace((function(t){for(var i=!1,o=Object.keys(e._zones),r=0,s=o.length;r<s;r++){var a=o[r],l=e._zones[a],u=e._computeWhitespaceProps(l.delegate),d=n.get(a)\n;!d||d.afterLineNumber===u.afterViewLineNumber&&d.height===u.heightInPx||(t.changeOneWhitespace(a,u.afterViewLineNumber,u.heightInPx),e._safeCallOnComputedHeight(l.delegate,u.heightInPx),i=!0)}return i}))},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,e.hasChanged(49)&&this._recomputeWhitespacesProps(),!0},t.prototype.onLineMappingChanged=function(e){var t=this._recomputeWhitespacesProps();return t&&this._context.viewLayout.onHeightMaybeChanged(),t},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged||e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype._getZoneOrdinal=function(e){return void 0!==e.afterColumn?e.afterColumn:1e4},t.prototype._computeWhitespaceProps=function(e){if(0===e.afterLineNumber)return{\nafterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};var t,n;if(void 0!==e.afterColumn)t=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{var i=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new s.Position(i,this._context.model.getModelLineMaxColumn(i))}n=t.column===this._context.model.getModelLineMaxColumn(t.lineNumber)?this._context.model.validateModelPosition({lineNumber:t.lineNumber+1,column:1}):this._context.model.validateModelPosition({lineNumber:t.lineNumber,column:t.column+1});var o=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),r=this._context.model.coordinatesConverter.modelPositionIsVisible(n);return{afterViewLineNumber:o.lineNumber,heightInPx:r?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}},t.prototype.changeViewZones=function(e){var t=this;return this._context.viewLayout.changeWhitespace((function(n){\nvar o=!1,r={addZone:function(e){return o=!0,t._addZone(n,e)},removeZone:function(e){e&&(o=t._removeZone(n,e)||o)},layoutZone:function(e){e&&(o=t._layoutZone(n,e)||o)}};return function(e,t){try{e(t)}catch(e){i.onUnexpectedError(e)}}(e,r),r.addZone=a,r.removeZone=a,r.layoutZone=a,o}))},t.prototype._addZone=function(e,t){var i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isVisible:!1,domNode:n.createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?n.createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition(\"absolute\"),o.domNode.domNode.style.width=\"100%\",o.domNode.setDisplay(\"none\"),o.domNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition(\"absolute\"),o.marginDomNode.domNode.style.width=\"100%\",o.marginDomNode.setDisplay(\"none\"),\no.marginDomNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId},t.prototype._removeZone=function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t];return delete this._zones[t],e.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute(\"monaco-visible-view-zone\"),n.domNode.removeAttribute(\"monaco-view-zone\"),n.domNode.domNode.parentNode.removeChild(n.domNode.domNode),n.marginDomNode&&(n.marginDomNode.removeAttribute(\"monaco-visible-view-zone\"),n.marginDomNode.removeAttribute(\"monaco-view-zone\"),n.marginDomNode.domNode.parentNode.removeChild(n.marginDomNode.domNode)),this.setShouldRender(),!0}return!1},t.prototype._layoutZone=function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t],i=this._computeWhitespaceProps(n.delegate);return e.changeOneWhitespace(n.whitespaceId,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(n.delegate,i.heightInPx),\nthis.setShouldRender(),!0}return!1},t.prototype.shouldSuppressMouseDownOnViewZone=function(e){if(this._zones.hasOwnProperty(e)){var t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1},t.prototype._heightInPixels=function(e){return\"number\"==typeof e.heightInPx?e.heightInPx:\"number\"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight},t.prototype._minWidthInPixels=function(e){return\"number\"==typeof e.minWidthInPx?e.minWidthInPx:0},t.prototype._safeCallOnComputedHeight=function(e,t){if(\"function\"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){i.onUnexpectedError(e)}},t.prototype._safeCallOnDomNodeTop=function(e,t){if(\"function\"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){i.onUnexpectedError(e)}},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){for(var t=e.viewportData.whitespaceViewportData,n={},i=!1,o=0,r=t.length;o<r;o++)n[t[o].id]=t[o],i=!0;var s=Object.keys(this._zones);for(o=0,r=s.length;o<r;o++){\nvar a=s[o],l=this._zones[a],u=0,d=0,c=\"none\";n.hasOwnProperty(a)?(u=n[a].verticalOffset-e.bigNumbersDelta,d=n[a].height,c=\"block\",l.isVisible||(l.domNode.setAttribute(\"monaco-visible-view-zone\",\"true\"),l.isVisible=!0),this._safeCallOnDomNodeTop(l.delegate,e.getScrolledTopFromAbsoluteTop(n[a].verticalOffset))):(l.isVisible&&(l.domNode.removeAttribute(\"monaco-visible-view-zone\"),l.isVisible=!1),this._safeCallOnDomNodeTop(l.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),l.domNode.setTop(u),l.domNode.setHeight(d),l.domNode.setDisplay(c),l.marginDomNode&&(l.marginDomNode.setTop(u),l.marginDomNode.setHeight(d),l.marginDomNode.setDisplay(c))}i&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))},t}(o.ViewPart);t.ViewZones=l})),define(n[69],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n,i){this.top=0|e,this.left=0|t,this.width=0|n,this.height=0|i};t.Viewport=i;var o=function(e,t){\nthis.tabSize=e,this.data=t};t.MinimapLinesRenderingData=o;var r=function(e,t,n,i,o,r){this.content=e,this.continuesWithWrappedLine=t,this.minColumn=n,this.maxColumn=i,this.startVisibleColumn=o,this.tokens=r};t.ViewLineData=r;var s=function(){function e(t,n,i,o,r,s,a,l,u,d){this.minColumn=t,this.maxColumn=n,this.content=i,this.continuesWithWrappedLine=o,this.isBasicASCII=e.isBasicASCII(i,s),this.containsRTL=e.containsRTL(i,this.isBasicASCII,r),this.tokens=a,this.inlineDecorations=l,this.tabSize=u,this.startVisibleColumn=d}return e.isBasicASCII=function(e,t){return!t||n.isBasicASCII(e)},e.containsRTL=function(e,t,i){return!(t||!i)&&n.containsRTL(e)},e}();t.ViewLineRenderingData=s;var a=function(e,t,n){this.range=e,this.inlineClassName=t,this.type=n};t.InlineDecoration=a;var l=function(e,t){this.range=e,this.options=t};t.ViewModelDecoration=l})),define(n[373],i([0,1,4,2,176,362,69]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e,t,n,i){\n(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(n|=0)<0&&(n=0),(i|=0)<0&&(i=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=n,this.contentHeight=i,this.scrollHeight=Math.max(n,i)}return e.prototype.equals=function(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight},e}(),u=function(e){function t(t,i){var r=e.call(this)||this;return r._onDidContentSizeChange=r._register(new n.Emitter),r.onDidContentSizeChange=r._onDidContentSizeChange.event,r._dimensions=new l(0,0,0,0),r._scrollable=r._register(new o.Scrollable(t,i)),r.onDidScroll=r._scrollable.onScroll,r}return r(t,e),t.prototype.getScrollable=function(){return this._scrollable},t.prototype.setSmoothScrollDuration=function(e){this._scrollable.setSmoothScrollDuration(e)},t.prototype.validateScrollPosition=function(e){return this._scrollable.validateScrollPosition(e)},t.prototype.getScrollDimensions=function(){return this._dimensions},\nt.prototype.setScrollDimensions=function(e){if(!this._dimensions.equals(e)){var t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight});var n=t.contentWidth!==e.contentWidth,i=t.contentHeight!==e.contentHeight;(n||i)&&this._onDidContentSizeChange.fire({contentWidth:e.contentWidth,contentHeight:e.contentHeight,contentWidthChanged:n,contentHeightChanged:i})}},t.prototype.getFutureScrollPosition=function(){return this._scrollable.getFutureScrollPosition()},t.prototype.getCurrentScrollPosition=function(){return this._scrollable.getCurrentScrollPosition()},t.prototype.setScrollPositionNow=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.setScrollPositionSmooth=function(e){this._scrollable.setScrollPositionSmooth(e)},t}(i.Disposable),d=function(e){function t(t,n,i){var o=e.call(this)||this;o._configuration=t;var r=o._configuration.options,a=r.get(107)\n;return o._linesLayout=new s.LinesLayout(n,r.get(49)),o._scrollable=o._register(new u(0,i)),o._configureSmoothScrollDuration(),o._scrollable.setScrollDimensions(new l(a.contentWidth,0,a.height,0)),o.onDidScroll=o._scrollable.onDidScroll,o.onDidContentSizeChange=o._scrollable.onDidContentSizeChange,o._updateHeight(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.getScrollable=function(){return this._scrollable.getScrollable()},t.prototype.onHeightMaybeChanged=function(){this._updateHeight()},t.prototype._configureSmoothScrollDuration=function(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(87)?125:0)},t.prototype.onConfigurationChanged=function(e){var t=this._configuration.options;if(e.hasChanged(49)&&this._linesLayout.setLineHeight(t.get(49)),e.hasChanged(107)){var n=t.get(107),i=n.contentWidth,o=n.height,r=this._scrollable.getScrollDimensions(),s=r.scrollWidth\n;this._scrollable.setScrollDimensions(new l(i,r.contentWidth,o,this._getContentHeight(i,o,s)))}else this._updateHeight();e.hasChanged(87)&&this._configureSmoothScrollDuration()},t.prototype.onFlushed=function(e){this._linesLayout.onFlushed(e)},t.prototype.onLinesDeleted=function(e,t){this._linesLayout.onLinesDeleted(e,t)},t.prototype.onLinesInserted=function(e,t){this._linesLayout.onLinesInserted(e,t)},t.prototype._getHorizontalScrollbarHeight=function(e,t){var n=this._configuration.options.get(78);return 2===n.horizontal?0:e>=t?0:n.horizontalScrollbarSize},t.prototype._getContentHeight=function(e,t,n){var i=this._configuration.options,o=this._linesLayout.getLinesTotalHeight();return i.get(80)?o+=t-i.get(49):o+=this._getHorizontalScrollbarHeight(e,n),o},t.prototype._updateHeight=function(){var e=this._scrollable.getScrollDimensions(),t=e.width,n=e.height,i=e.scrollWidth;this._scrollable.setScrollDimensions(new l(t,e.contentWidth,n,this._getContentHeight(t,n,i)))},t.prototype.getCurrentViewport=function(){\nvar e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new a.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype.getFutureViewport=function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new a.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype._computeContentWidth=function(e){var t=this._configuration.options,n=t.get(108),i=t.get(34);if(n.isViewportWrapping){var o=t.get(107),r=t.get(54);return e>o.contentWidth+i.typicalHalfwidthCharacterWidth&&r.enabled&&\"right\"===r.side?e+o.verticalScrollbarWidth:e}var s=t.get(79)*i.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+s,a)},t.prototype.onMaxLineWidthChanged=function(e){var t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new l(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()},t.prototype.saveState=function(){\nvar e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}},t.prototype.changeWhitespace=function(e){return this._linesLayout.changeWhitespace(e)},t.prototype.getVerticalOffsetForLineNumber=function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)},t.prototype.isAfterLines=function(e){return this._linesLayout.isAfterLines(e)},t.prototype.getLineNumberAtVerticalOffset=function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)},t.prototype.getWhitespaceAtVerticalOffset=function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)},t.prototype.getLinesViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)},t.prototype.getLinesViewportDataAtScrollTop=function(e){var t=this._scrollable.getScrollDimensions()\n;return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)},t.prototype.getWhitespaceViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)},t.prototype.getWhitespaces=function(){return this._linesLayout.getWhitespaces()},t.prototype.getContentWidth=function(){return this._scrollable.getScrollDimensions().contentWidth},t.prototype.getScrollWidth=function(){return this._scrollable.getScrollDimensions().scrollWidth},t.prototype.getContentHeight=function(){return this._scrollable.getScrollDimensions().contentHeight},t.prototype.getScrollHeight=function(){return this._scrollable.getScrollDimensions().scrollHeight},t.prototype.getCurrentScrollLeft=function(){return this._scrollable.getCurrentScrollPosition().scrollLeft},t.prototype.getCurrentScrollTop=function(){return this._scrollable.getCurrentScrollPosition().scrollTop},t.prototype.validateScrollPosition=function(e){\nreturn this._scrollable.validateScrollPosition(e)},t.prototype.setScrollPositionNow=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.setScrollPositionSmooth=function(e){this._scrollable.setScrollPositionSmooth(e)},t.prototype.deltaScrollNow=function(e,t){var n=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})},t}(i.Disposable);t.ViewLayout=d})),define(n[374],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this._selection=e,this._isMovingLeft=t,this._cutStartIndex=-1,this._cutEndIndex=-1,this._moved=!1,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){var i=this._selection;if(this._selectionId=t.trackSelection(i),i.startLineNumber===i.endLineNumber&&(!this._isMovingLeft||0!==i.startColumn)&&(this._isMovingLeft||i.endColumn!==e.getLineMaxColumn(i.startLineNumber))){\nvar o,r,s,a=i.selectionStartLineNumber,l=e.getLineContent(a);this._isMovingLeft?(o=l.substring(0,i.startColumn-2),r=l.substring(i.startColumn-1,i.endColumn-1),s=l.substring(i.startColumn-2,i.startColumn-1)+l.substring(i.endColumn-1)):(o=l.substring(0,i.startColumn-1)+l.substring(i.endColumn-1,i.endColumn),r=l.substring(i.startColumn-1,i.endColumn-1),s=l.substring(i.endColumn));var u=o+r+s;t.addEditOperation(new n.Range(a,1,a,e.getLineMaxColumn(a)),null),t.addEditOperation(new n.Range(a,1,a,1),u),this._cutStartIndex=i.startColumn+(this._isMovingLeft?-1:1),this._cutEndIndex=this._cutStartIndex+i.endColumn-i.startColumn,this._moved=!0}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moved&&(n=(n=n.setStartPosition(n.startLineNumber,this._cutStartIndex)).setEndPosition(n.startLineNumber,this._cutEndIndex)),n},e}();t.MoveCaretCommand=i})),define(n[111],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var i=function(){function e(e){this.value=e}return e.prototype.equals=function(e){return this.value===e.value},e.prototype.contains=function(t){return this.equals(t)||\"\"===this.value||n.startsWith(t.value,this.value+e.sep)},e.prototype.intersects=function(e){return this.contains(e)||e.contains(this)},e.prototype.append=function(t){return new e(this.value+e.sep+t)},e.sep=\".\",e.None=new e(\"@@none@@\"),e.Empty=new e(\"\"),e.QuickFix=new e(\"quickfix\"),e.Refactor=new e(\"refactor\"),e.Source=new e(\"source\"),e.SourceOrganizeImports=e.Source.append(\"organizeImports\"),e.SourceFixAll=e.Source.append(\"fixAll\"),e}();function o(e,t,n){return!!t.contains(e)&&(!n||!t.contains(n))}t.CodeActionKind=i,t.mayIncludeActionsOfKind=function(e,t){return!(e.include&&!e.include.intersects(t))&&((!e.excludes||!e.excludes.some((function(n){return o(t,n,e.include)})))&&!(!e.includeSourceActions&&i.Source.contains(t)))},t.filtersAction=function(e,t){var n=t.kind?new i(t.kind):void 0\n;return!!(!e.include||n&&e.include.contains(n))&&(!(e.excludes&&n&&e.excludes.some((function(t){return o(n,t,e.include)})))&&(!(!e.includeSourceActions&&n&&i.Source.contains(n))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))};var r=function(){function e(e,t,n){this.kind=e,this.apply=t,this.preferred=n}return e.fromUser=function(t,n){return t&&\"object\"==typeof t?new e(e.getKindFromUser(t,n.kind),e.getApplyFromUser(t,n.apply),e.getPreferredUser(t)):new e(n.kind,n.apply,!1)},e.getApplyFromUser=function(e,t){switch(\"string\"==typeof e.apply?e.apply.toLowerCase():\"\"){case\"first\":return\"first\";case\"never\":return\"never\";case\"ifsingle\":return\"ifSingle\";default:return t}},e.getKindFromUser=function(e,t){return\"string\"==typeof e.kind?new i(e.kind):t},e.getPreferredUser=function(e){return\"boolean\"==typeof e.preferred&&e.preferred},e}();t.CodeActionCommandArgs=r})),define(n[375],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,i){\nthis.presentationIndex=i,this._onColorFlushed=new n.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new n.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new n.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}return Object.defineProperty(e.prototype,\"color\",{get:function(){return this._color},set:function(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"presentation\",{get:function(){return this.colorPresentations[this.presentationIndex]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"colorPresentations\",{get:function(){return this._colorPresentations},set:function(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)},enumerable:!0,configurable:!0}),\ne.prototype.selectNextColorPresentation=function(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)},e.prototype.guessColorPresentation=function(e,t){for(var n=0;n<this.colorPresentations.length;n++)if(t===this.colorPresentations[n].label){this.presentationIndex=n,this._onDidChangePresentation.fire(this.presentation);break}},e.prototype.flushColor=function(){this._onColorFlushed.fire(this._color)},e}();t.ColorPickerModel=i})),define(n[196],i([0,1,58,13,3,22,41]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this._selection=e,this._insertSpace=t,this._usedEndToken=null}return e._haystackHasNeedleAtOffset=function(e,t,n){if(n<0)return!1;var i=t.length;if(n+i>e.length)return!1;for(var o=0;o<i;o++){var r=e.charCodeAt(n+o),s=t.charCodeAt(o);if(r!==s&&!(r>=65&&r<=90&&r+32===s||s>=65&&s<=90&&s+32===r))return!1}return!0},\ne.prototype._createOperationsForBlockComment=function(t,n,i,r,s,a){var l,u=t.startLineNumber,d=t.startColumn,c=t.endLineNumber,h=t.endColumn,p=s.getLineContent(u),g=s.getLineContent(c),f=p.lastIndexOf(n,d-1+n.length),m=g.indexOf(i,h-1-i.length);if(-1!==f&&-1!==m)if(u===c){p.substring(f+n.length,m).indexOf(i)>=0&&(f=-1,m=-1)}else{var v=p.substring(f+n.length),_=g.substring(0,m);(v.indexOf(i)>=0||_.indexOf(i)>=0)&&(f=-1,m=-1)}-1!==f&&-1!==m?(r&&f+n.length<p.length&&32===p.charCodeAt(f+n.length)&&(n+=\" \"),r&&m>0&&32===g.charCodeAt(m-1)&&(i=\" \"+i,m-=1),l=e._createRemoveBlockCommentOperations(new o.Range(u,f+n.length+1,c,m+1),n,i)):(l=e._createAddBlockCommentOperations(t,n,i,this._insertSpace),this._usedEndToken=1===l.length?i:null);for(var y=0,C=l;y<C.length;y++){var b=C[y];a.addTrackedEditOperation(b.range,b.text)}},e._createRemoveBlockCommentOperations=function(e,t,i){var r=[]\n;return o.Range.isEmpty(e)?r.push(n.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(r.push(n.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),r.push(n.EditOperation.delete(new o.Range(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),r},e._createAddBlockCommentOperations=function(e,t,r,s){var a=[];return o.Range.isEmpty(e)?a.push(n.EditOperation.replace(new o.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+\"  \"+r)):(a.push(n.EditOperation.insert(new i.Position(e.startLineNumber,e.startColumn),t+(s?\" \":\"\"))),a.push(n.EditOperation.insert(new i.Position(e.endLineNumber,e.endColumn),(s?\" \":\"\")+r))),a},e.prototype.getEditOperations=function(e,t){var n=this._selection.startLineNumber,i=this._selection.startColumn;e.tokenizeIfCheap(n);var o=e.getLanguageIdAtPosition(n,i),r=s.LanguageConfigurationRegistry.getComments(o)\n;r&&r.blockCommentStartToken&&r.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,r.blockCommentStartToken,r.blockCommentEndToken,this._insertSpace,e,t)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations();if(2===n.length){var i=n[0],o=n[1];return new r.Selection(i.range.endLineNumber,i.range.endColumn,o.range.startLineNumber,o.range.startColumn)}var s=n[0].range,a=this._usedEndToken?-this._usedEndToken.length-1:0;return new r.Selection(s.endLineNumber,s.endColumn+a,s.endLineNumber,s.endColumn+a)},e}();t.BlockCommentCommand=a})),define(n[376],i([0,1,5,58,13,3,22,41,196]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t,n,i){this._selection=e,this._tabSize=t,this._type=n,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1}return e._gatherPreflightCommentStrings=function(e,t,n){e.tokenizeIfCheap(t)\n;var i=e.getLanguageIdAtPosition(t,1),o=a.LanguageConfigurationRegistry.getComments(i),r=o?o.lineCommentToken:null;if(!r)return null;for(var s=[],l=0,u=n-t+1;l<u;l++)s[l]={ignore:!1,commentStr:r,commentStrOffset:0,commentStrLength:r.length};return s},e._analyzeLines=function(e,t,i,o,r){var s,a=!0;s=0===e||1!==e;for(var u=0,d=o.length;u<d;u++){var c=o[u],h=r+u,p=i.getLineContent(h),g=n.firstNonWhitespaceIndex(p);if(-1!==g){if(a=!1,c.ignore=!1,c.commentStrOffset=g,s&&!l.BlockCommentCommand._haystackHasNeedleAtOffset(p,c.commentStr,g)&&(0===e?s=!1:1===e||(c.ignore=!0)),s&&t){var f=g+c.commentStrLength;f<p.length&&32===p.charCodeAt(f)&&(c.commentStrLength+=1)}}else c.ignore=!0,c.commentStrOffset=p.length}if(0===e&&a){s=!1;for(u=0,d=o.length;u<d;u++)o[u].ignore=!1}return{supported:!0,shouldRemoveComments:s,lines:o}},e._gatherPreflightData=function(t,n,i,o,r){var s=e._gatherPreflightCommentStrings(i,o,r);return null===s?{supported:!1}:e._analyzeLines(t,n,i,s,o)},e.prototype._executeLineComments=function(t,n,i,r){\nvar s;i.shouldRemoveComments?s=e._createRemoveLineCommentsOperations(i.lines,r.startLineNumber):(e._normalizeInsertionPoint(t,i.lines,r.startLineNumber,this._tabSize),s=this._createAddLineCommentsOperations(i.lines,r.startLineNumber));for(var a=new o.Position(r.positionLineNumber,r.positionColumn),l=0,u=s.length;l<u;l++){if(n.addEditOperation(s[l].range,s[l].text),s[l].range.isEmpty()&&s[l].range.getStartPosition().equals(a))t.getLineContent(a.lineNumber).length+1===a.column&&(this._deltaColumn=(s[l].text||\"\").length)}this._selectionId=n.trackSelection(r)},e.prototype._attemptRemoveBlockComment=function(e,t,n,i){var o=t.startLineNumber,s=t.endLineNumber,a=i.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn),u=e.getLineContent(o).lastIndexOf(n,a-1),d=e.getLineContent(s).indexOf(i,t.endColumn-1-n.length);return-1!==u&&-1===d&&(d=e.getLineContent(o).indexOf(i,u+n.length),s=o),-1===u&&-1!==d&&(u=e.getLineContent(s).lastIndexOf(n,d),o=s),\n!t.isEmpty()||-1!==u&&-1!==d||-1!==(u=e.getLineContent(o).indexOf(n))&&(d=e.getLineContent(o).indexOf(i,u+n.length)),-1!==u&&32===e.getLineContent(o).charCodeAt(u+n.length)&&(n+=\" \"),-1!==d&&32===e.getLineContent(s).charCodeAt(d-1)&&(i=\" \"+i,d-=1),-1!==u&&-1!==d?l.BlockCommentCommand._createRemoveBlockCommentOperations(new r.Range(o,u+n.length+1,s,d+1),n,i):null},e.prototype._executeBlockComment=function(e,t,i){e.tokenizeIfCheap(i.startLineNumber);var o=e.getLanguageIdAtPosition(i.startLineNumber,1),s=a.LanguageConfigurationRegistry.getComments(o);if(s&&s.blockCommentStartToken&&s.blockCommentEndToken){var u=s.blockCommentStartToken,d=s.blockCommentEndToken,c=this._attemptRemoveBlockComment(e,i,u,d);if(!c){if(i.isEmpty()){var h=e.getLineContent(i.startLineNumber),p=n.firstNonWhitespaceIndex(h);-1===p&&(p=h.length),c=l.BlockCommentCommand._createAddBlockCommentOperations(new r.Range(i.startLineNumber,p+1,i.startLineNumber,h.length+1),u,d,this._insertSpace)\n}else c=l.BlockCommentCommand._createAddBlockCommentOperations(new r.Range(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),u,d,this._insertSpace);1===c.length&&(this._deltaColumn=u.length+1)}this._selectionId=t.trackSelection(i);for(var g=0,f=c;g<f.length;g++){var m=f[g];t.addEditOperation(m.range,m.text)}}},e.prototype.getEditOperations=function(t,n){var i=this._selection;this._moveEndPositionDown=!1,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,t.getLineMaxColumn(i.endLineNumber-1)));var o=e._gatherPreflightData(this._type,this._insertSpace,t,i.startLineNumber,i.endLineNumber);return o.supported?this._executeLineComments(t,n,o,i):this._executeBlockComment(t,n,i)},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),\nnew s.Selection(n.selectionStartLineNumber,n.selectionStartColumn+this._deltaColumn,n.positionLineNumber,n.positionColumn+this._deltaColumn)},e._createRemoveLineCommentsOperations=function(e,t){for(var n=[],o=0,s=e.length;o<s;o++){var a=e[o];a.ignore||n.push(i.EditOperation.delete(new r.Range(t+o,a.commentStrOffset+1,t+o,a.commentStrOffset+a.commentStrLength+1)))}return n},e.prototype._createAddLineCommentsOperations=function(e,t){for(var n=[],r=this._insertSpace?\" \":\"\",s=0,a=e.length;s<a;s++){var l=e[s];l.ignore||n.push(i.EditOperation.insert(new o.Position(t+s,l.commentStrOffset+1),l.commentStr+r))}return n},e.nextVisibleColumn=function(e,t,n,i){return n?e+(t-e%t):e+i},e._normalizeInsertionPoint=function(t,n,i,o){for(var r,s,a=1073741824,l=0,u=n.length;l<u;l++)if(!n[l].ignore){for(var d=t.getLineContent(i+l),c=0,h=0,p=n[l].commentStrOffset;c<a&&h<p;h++)c=e.nextVisibleColumn(c,o,9===d.charCodeAt(h),1);c<a&&(a=c)}a=Math.floor(a/o)*o;for(l=0,u=n.length;l<u;l++)if(!n[l].ignore){d=t.getLineContent(i+l),c=0\n;for(r=0,s=n[l].commentStrOffset;c<a&&r<s;r++)c=e.nextVisibleColumn(c,o,9===d.charCodeAt(r),1);n[l].commentStrOffset=c>a?r-1:r}},e}();t.LineCommentCommand=u})),define(n[377],i([0,1,22,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n){this.selection=e,this.targetPosition=t,this.copy=n,this.targetSelection=null}return e.prototype.getEditOperations=function(e,t){var o=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new i.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),o),\n!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new n.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber<this.selection.endLineNumber?this.targetSelection=new n.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,\nthis.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn):this.targetSelection=this.selection},e.prototype.computeCursorState=function(e,t){return this.targetSelection},e}();t.DragAndDropCommand=o})),define(n[378],i([0,1,4,2,3]),(function(e,t,n,i,o){\"use strict\";function s(e,t){return 1===e||2!==e&&t}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(){var t=e.call(this)||this;return t._onFindReplaceStateChange=t._register(new n.Emitter),t.onFindReplaceStateChange=t._onFindReplaceStateChange.event,t._searchString=\"\",\nt._replaceString=\"\",t._isRevealed=!1,t._isReplaceRevealed=!1,t._isRegex=!1,t._isRegexOverride=0,t._wholeWord=!1,t._wholeWordOverride=0,t._matchCase=!1,t._matchCaseOverride=0,t._preserveCase=!1,t._preserveCaseOverride=0,t._searchScope=null,t._matchesPosition=0,t._matchesCount=0,t._currentMatch=null,t}return r(t,e),Object.defineProperty(t.prototype,\"searchString\",{get:function(){return this._searchString},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"replaceString\",{get:function(){return this._replaceString},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isRevealed\",{get:function(){return this._isRevealed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isReplaceRevealed\",{get:function(){return this._isReplaceRevealed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isRegex\",{get:function(){return s(this._isRegexOverride,this._isRegex)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"wholeWord\",{get:function(){\nreturn s(this._wholeWordOverride,this._wholeWord)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"matchCase\",{get:function(){return s(this._matchCaseOverride,this._matchCase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"preserveCase\",{get:function(){return s(this._preserveCaseOverride,this._preserveCase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualIsRegex\",{get:function(){return this._isRegex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualWholeWord\",{get:function(){return this._wholeWord},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualMatchCase\",{get:function(){return this._matchCase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualPreserveCase\",{get:function(){return this._preserveCase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"searchScope\",{get:function(){return this._searchScope},enumerable:!0,configurable:!0}),\nObject.defineProperty(t.prototype,\"matchesPosition\",{get:function(){return this._matchesPosition},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"matchesCount\",{get:function(){return this._matchesCount},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"currentMatch\",{get:function(){return this._currentMatch},enumerable:!0,configurable:!0}),t.prototype.changeMatchInfo=function(e,t,n){var i={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},r=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,i.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,i.matchesCount=!0,r=!0),void 0!==n&&(o.Range.equalsRange(this._currentMatch,n)||(this._currentMatch=n,i.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(i)},t.prototype.change=function(e,t,n){\nvoid 0===n&&(n=!0);var i={moveCursor:t,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},r=!1,s=this.isRegex,a=this.wholeWord,l=this.matchCase,u=this.preserveCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,i.searchString=!0,r=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,i.replaceString=!0,r=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,i.isRevealed=!0,r=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,i.isReplaceRevealed=!0,r=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),\nvoid 0!==e.preserveCase&&(this._preserveCase=e.preserveCase),void 0!==e.searchScope&&(o.Range.equalsRange(this._searchScope,e.searchScope)||(this._searchScope=e.searchScope,i.searchScope=!0,r=!0)),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride=void 0!==e.preserveCaseOverride?e.preserveCaseOverride:0,s!==this.isRegex&&(r=!0,i.isRegex=!0),a!==this.wholeWord&&(r=!0,i.wholeWord=!0),l!==this.matchCase&&(r=!0,i.matchCase=!0),u!==this.preserveCase&&(r=!0,i.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(i)},t}(i.Disposable);t.FindReplaceState=a})),define(n[379],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){this._editorSelection=e,this._ranges=t,this._replaceStrings=n,this._trackedEditorSelectionId=null}\nreturn e.prototype.getEditOperations=function(e,t){if(this._ranges.length>0){for(var i=[],o=0;o<this._ranges.length;o++)i.push({range:this._ranges[o],text:this._replaceStrings[o]});i.sort((function(e,t){return n.Range.compareRangesUsingStarts(e.range,t.range)}));var r=[],s=i[0];for(o=1;o<i.length;o++)s.range.endLineNumber===i[o].range.startLineNumber&&s.range.endColumn===i[o].range.startColumn?(s.range=s.range.plusRange(i[o].range),s.text=s.text+i[o].text):(r.push(s),s=i[o]);r.push(s);for(var a=0,l=r;a<l.length;a++){var u=l[a];t.addEditOperation(u.range,u.text)}}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)},e}();t.ReplaceAllCommand=i})),define(n[380],i([0,1,247]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){this.staticValue=e,this.kind=0},o=function(e){this.pieces=e,this.kind=1},r=function(){function e(e){\ne&&0!==e.length?1===e.length&&null!==e[0].staticValue?this._state=new i(e[0].staticValue):this._state=new o(e):this._state=new i(\"\")}return e.fromStaticValue=function(t){return new e([s.staticValue(t)])},Object.defineProperty(e.prototype,\"hasReplacementPatterns\",{get:function(){return 1===this._state.kind},enumerable:!0,configurable:!0}),e.prototype.buildReplaceString=function(t,i){if(0===this._state.kind)return i?n.buildReplaceStringWithCasePreserved(t,this._state.staticValue):this._state.staticValue;for(var o=\"\",r=0,s=this._state.pieces.length;r<s;r++){var a=this._state.pieces[r];null===a.staticValue?o+=e._substitute(a.matchIndex,t):o+=a.staticValue}return o},e._substitute=function(e,t){if(null===t)return\"\";if(0===e)return t[0];for(var n=\"\";e>0;){if(e<t.length)return(t[e]||\"\")+n;n=String(e%10)+n,e=Math.floor(e/10)}return\"$\"+n},e}();t.ReplacePattern=r;var s=function(){function e(e,t){this.staticValue=e,this.matchIndex=t}return e.staticValue=function(t){return new e(t,-1)},e.matchIndex=function(t){\nreturn new e(null,t)},e}();t.ReplacePiece=s;var a=function(){function e(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=\"\"}return e.prototype.emitUnchanged=function(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e},e.prototype.emitStatic=function(e,t){this._emitStatic(e),this._lastCharIndex=t},e.prototype._emitStatic=function(e){0!==e.length&&(this._currentStaticPiece+=e)},e.prototype.emitMatchIndex=function(e,t){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=s.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),this._result[this._resultLen++]=s.matchIndex(e),this._lastCharIndex=t},e.prototype.finalize=function(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=s.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),new r(this._result)},e}();t.parseReplaceString=function(e){\nif(!e||0===e.length)return new r(null);for(var t=new a(e),n=0,i=e.length;n<i;n++){var o=e.charCodeAt(n);if(92!==o){if(36===o){if(++n>=i)break;if(36===(u=e.charCodeAt(n))){t.emitUnchanged(n-1),t.emitStatic(\"$\",n+1);continue}if(48===u||38===u){t.emitUnchanged(n-1),t.emitMatchIndex(0,n+1);continue}if(49<=u&&u<=57){var s=u-48;if(n+1<i){var l=e.charCodeAt(n+1);if(48<=l&&l<=57){n++,s=10*s+(l-48),t.emitUnchanged(n-2),t.emitMatchIndex(s,n+1);continue}}t.emitUnchanged(n-1),t.emitMatchIndex(s,n+1);continue}}}else{if(++n>=i)break;var u;switch(u=e.charCodeAt(n)){case 92:t.emitUnchanged(n-1),t.emitStatic(\"\\\\\",n+1);break;case 110:t.emitUnchanged(n-1),t.emitStatic(\"\\n\",n+1);break;case 116:t.emitUnchanged(n-1),t.emitStatic(\"\\t\",n+1)}}}return t.finalize()}})),define(n[150],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.MAX_FOLDING_REGIONS=65535,t.MAX_LINE_NUMBER=16777215;var n=function(){function e(e,n,i){\nif(e.length!==n.length||e.length>t.MAX_FOLDING_REGIONS)throw new Error(\"invalid startIndexes or endIndexes size\");this._startIndexes=e,this._endIndexes=n,this._collapseStates=new Uint32Array(Math.ceil(e.length/32)),this._types=i,this._parentsComputed=!1}return e.prototype.ensureParentIndices=function(){var e=this;if(!this._parentsComputed){this._parentsComputed=!0;for(var n=[],i=function(t,i){var o=n[n.length-1];return e.getStartLineNumber(o)<=t&&e.getEndLineNumber(o)>=i},o=0,r=this._startIndexes.length;o<r;o++){var s=this._startIndexes[o],a=this._endIndexes[o];if(s>t.MAX_LINE_NUMBER||a>t.MAX_LINE_NUMBER)throw new Error(\"startLineNumber or endLineNumber must not exceed \"+t.MAX_LINE_NUMBER);for(;n.length>0&&!i(s,a);)n.pop();var l=n.length>0?n[n.length-1]:-1;n.push(o),this._startIndexes[o]=s+((255&l)<<24),this._endIndexes[o]=a+((65280&l)<<16)}}},Object.defineProperty(e.prototype,\"length\",{get:function(){return this._startIndexes.length},enumerable:!0,configurable:!0}),e.prototype.getStartLineNumber=function(e){\nreturn this._startIndexes[e]&t.MAX_LINE_NUMBER},e.prototype.getEndLineNumber=function(e){return this._endIndexes[e]&t.MAX_LINE_NUMBER},e.prototype.getType=function(e){return this._types?this._types[e]:void 0},e.prototype.hasTypes=function(){return!!this._types},e.prototype.isCollapsed=function(e){var t=e/32|0,n=e%32;return 0!=(this._collapseStates[t]&1<<n)},e.prototype.setCollapsed=function(e,t){var n=e/32|0,i=e%32,o=this._collapseStates[n];this._collapseStates[n]=t?o|1<<i:o&~(1<<i)},e.prototype.toRegion=function(e){return new i(this,e)},e.prototype.getParentIndex=function(e){this.ensureParentIndices();var n=((4278190080&this._startIndexes[e])>>>24)+((4278190080&this._endIndexes[e])>>>16);return n===t.MAX_FOLDING_REGIONS?-1:n},e.prototype.contains=function(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t},e.prototype.findIndex=function(e){var t=0,n=this._startIndexes.length;if(0===n)return-1;for(;t<n;){var i=Math.floor((t+n)/2);e<this.getStartLineNumber(i)?n=i:t=i+1}return t-1},\ne.prototype.findRange=function(e){var t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1},e.prototype.toString=function(){for(var e=[],t=0;t<this.length;t++)e[t]=\"[\"+(this.isCollapsed(t)?\"+\":\"-\")+\"] \"+this.getStartLineNumber(t)+\"/\"+this.getEndLineNumber(t);return e.join(\", \")},e}();t.FoldingRegions=n;var i=function(){function e(e,t){this.ranges=e,this.index=t}return Object.defineProperty(e.prototype,\"startLineNumber\",{get:function(){return this.ranges.getStartLineNumber(this.index)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"endLineNumber\",{get:function(){return this.ranges.getEndLineNumber(this.index)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"regionIndex\",{get:function(){return this.index},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"parentIndex\",{get:function(){return this.ranges.getParentIndex(this.index)},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCollapsed\",{get:function(){return this.ranges.isCollapsed(this.index)},enumerable:!0,configurable:!0}),e.prototype.containedBy=function(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber},e.prototype.containsLine=function(e){return this.startLineNumber<=e&&e<=this.endLineNumber},e}();t.FoldingRegion=i})),define(n[381],i([0,1,4,150]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this._updateEventEmitter=new n.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new i.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return Object.defineProperty(e.prototype,\"regions\",{get:function(){return this._regions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"textModel\",{get:function(){return this._textModel},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isInitialized\",{get:function(){return this._isInitialized},enumerable:!0,configurable:!0}),e.prototype.toggleCollapseState=function(e){var t=this;if(e.length){var n={};this._decorationProvider.changeDecorations((function(i){for(var o=0,r=e;o<r.length;o++){var s=r[o].regionIndex,a=t._editorDecorationIds[s];if(a&&!n[a]){n[a]=!0;var l=!t._regions.isCollapsed(s);t._regions.setCollapsed(s,l),i.changeDecorationOptions(a,t._decorationProvider.getDecorationOption(l))}}})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}},e.prototype.update=function(e,t){var n=this;void 0===t&&(t=[]);for(var i=[],o=function(o,r){var s=e.getStartLineNumber(o);r&&function(e,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];if(e<r&&r<=n)return!0}return!1}(s,e.getEndLineNumber(o))&&(r=!1),e.setCollapsed(o,r);var a=n._textModel.getLineMaxColumn(s),l={startLineNumber:s,startColumn:a,endLineNumber:s,endColumn:a};i.push({range:l,\noptions:n._decorationProvider.getDecorationOption(r)})},r=0,s=function(){for(;r<n._regions.length;){var e=n._regions.isCollapsed(r);if(r++,e)return r-1}return-1},a=0,l=s();-1!==l&&a<e.length;){var u=this._textModel.getDecorationRange(this._editorDecorationIds[l]);if(u){var d=u.startLineNumber;if(this._textModel.getLineMaxColumn(d)===u.startColumn)for(;a<e.length;){var c=e.getStartLineNumber(a);if(!(d>=c))break;o(a,d===c),a++}}l=s()}for(;a<e.length;)o(a,!1),a++;this._editorDecorationIds=this._decorationProvider.deltaDecorations(this._editorDecorationIds,i),this._regions=e,this._isInitialized=!0,this._updateEventEmitter.fire({model:this})},e.prototype.getMemento=function(){for(var e=[],t=0;t<this._regions.length;t++)if(this._regions.isCollapsed(t)){var n=this._textModel.getDecorationRange(this._editorDecorationIds[t]);if(n){var i=n.startLineNumber,o=n.endLineNumber+this._regions.getEndLineNumber(t)-this._regions.getStartLineNumber(t);e.push({startLineNumber:i,endLineNumber:o})}}if(e.length>0)return e},\ne.prototype.applyMemento=function(e){if(Array.isArray(e)){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n],r=this.getRegionAtLine(o.startLineNumber);r&&!r.isCollapsed&&t.push(r)}this.toggleCollapseState(t)}},e.prototype.dispose=function(){this._decorationProvider.deltaDecorations(this._editorDecorationIds,[])},e.prototype.getAllRegionsAtLine=function(e,t){var n=[];if(this._regions)for(var i=this._regions.findRange(e),o=1;i>=0;){var r=this._regions.toRegion(i);t&&!t(r,o)||n.push(r),o++,i=r.parentIndex}return n},e.prototype.getRegionAtLine=function(e){if(this._regions){var t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null},e.prototype.getRegionsInside=function(e,t){var n=[],i=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length)for(var r=[],s=i,a=this._regions.length;s<a;s++){var l=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;for(;r.length>0&&!l.containedBy(r[r.length-1]);)r.pop();r.push(l),t(l,r.length)&&n.push(l)\n}else for(s=i,a=this._regions.length;s<a;s++){l=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;t&&!t(l)||n.push(l)}return n},e}();t.FoldingModel=o,t.toggleCollapseState=function(e,t,n){for(var i=[],o=function(n){var o=e.getRegionAtLine(n);if(o){var r=!o.isCollapsed;if(i.push(o),t>1){var s=e.getRegionsInside(o,(function(e,n){return e.isCollapsed!==r&&n<t}));i.push.apply(i,s)}}},r=0,s=n;r<s.length;r++){o(s[r])}e.toggleCollapseState(i)},t.setCollapseStateLevelsDown=function(e,t,n,i){void 0===n&&(n=Number.MAX_VALUE);var o=[];if(i&&i.length>0)for(var r=0,s=i;r<s.length;r++){var a=s[r],l=e.getRegionAtLine(a);if(l&&(l.isCollapsed!==t&&o.push(l),n>1)){var u=e.getRegionsInside(l,(function(e,i){return e.isCollapsed!==t&&i<n}));o.push.apply(o,u)}}else{u=e.getRegionsInside(null,(function(e,i){return e.isCollapsed!==t&&i<n}));o.push.apply(o,u)}e.toggleCollapseState(o)},t.setCollapseStateLevelsUp=function(e,t,n,i){for(var o=[],r=0,s=i;r<s.length;r++){\nvar a=s[r],l=e.getAllRegionsAtLine(a,(function(e,i){return e.isCollapsed!==t&&i<=n}));o.push.apply(o,l)}e.toggleCollapseState(o)},t.setCollapseStateUp=function(e,t,n){for(var i=[],o=0,r=n;o<r.length;o++){var s=r[o],a=e.getAllRegionsAtLine(s,(function(e){return e.isCollapsed!==t}));a.length>0&&i.push(a[0])}e.toggleCollapseState(i)},t.setCollapseStateAtLevel=function(e,t,n,i){var o=e.getRegionsInside(null,(function(e,o){return o===t&&e.isCollapsed!==n&&!i.some((function(t){return e.containsLine(t)}))}));e.toggleCollapseState(o)},t.setCollapseStateForMatchingLines=function(e,t,n){for(var i=e.textModel,o=e.regions,r=[],s=o.length-1;s>=0;s--)if(n!==o.isCollapsed(s)){var a=o.getStartLineNumber(s);t.test(i.getLineContent(a))&&r.push(o.toRegion(s))}e.toggleCollapseState(r)},t.setCollapseStateForType=function(e,t,n){for(var i=e.regions,o=[],r=i.length-1;r>=0;r--)n!==i.isCollapsed(r)&&t===i.getType(r)&&o.push(i.toRegion(r));e.toggleCollapseState(o)}})),define(n[382],i([0,1,4,3,19]),(function(e,t,n,i,o){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e){var t=this;this._updateEventEmitter=new n.Emitter,this._foldingModel=e,this._foldingModelListener=e.onDidChange((function(e){return t.updateHiddenRanges()})),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._updateEventEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hiddenRanges\",{get:function(){return this._hiddenRanges},enumerable:!0,configurable:!0}),e.prototype.updateHiddenRanges=function(){for(var e=!1,t=[],n=0,o=0,r=Number.MAX_VALUE,s=-1,a=this._foldingModel.regions;n<a.length;n++)if(a.isCollapsed(n)){var l=a.getStartLineNumber(n)+1,u=a.getEndLineNumber(n);r<=l&&u<=s||(!e&&o<this._hiddenRanges.length&&this._hiddenRanges[o].startLineNumber===l&&this._hiddenRanges[o].endLineNumber===u?(t.push(this._hiddenRanges[o]),o++):(e=!0,t.push(new i.Range(l,1,u,1))),r=l,s=u)}\n(e||o<this._hiddenRanges.length)&&this.applyHiddenRanges(t)},e.prototype.applyMemento=function(e){if(!Array.isArray(e)||0===e.length)return!1;for(var t=[],n=0,o=e;n<o.length;n++){var r=o[n];if(!r.startLineNumber||!r.endLineNumber)return!1;t.push(new i.Range(r.startLineNumber+1,1,r.endLineNumber,1))}return this.applyHiddenRanges(t),!0},e.prototype.getMemento=function(){return this._hiddenRanges.map((function(e){return{startLineNumber:e.startLineNumber-1,endLineNumber:e.endLineNumber}}))},e.prototype.applyHiddenRanges=function(e){this._hiddenRanges=e,this._updateEventEmitter.fire(e)},e.prototype.hasRanges=function(){return this._hiddenRanges.length>0},e.prototype.isHidden=function(e){return null!==s(this._hiddenRanges,e)},e.prototype.adjustSelections=function(e){for(var t=this,n=!1,i=this._foldingModel.textModel,o=null,r=function(e){return o&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,o)||(o=s(t._hiddenRanges,e)),o?o.startLineNumber-1:null},a=0,l=e.length;a<l;a++){\nvar u=e[a],d=r(u.startLineNumber);d&&(u=u.setStartPosition(d,i.getLineMaxColumn(d)),n=!0);var c=r(u.endLineNumber);c&&(u=u.setEndPosition(c,i.getLineMaxColumn(c)),n=!0),e[a]=u}return n},e.prototype.dispose=function(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)},e}();function s(e,t){var n=o.findFirstInSorted(e,(function(e){return t<e.startLineNumber}))-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}t.HiddenRangeModel=r})),define(n[197],i([0,1,10,150]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=5e3,r={};t.ID_SYNTAX_PROVIDER=\"syntax\";var s=function(){function e(e,n,i){void 0===i&&(i=o),this.editorModel=e,this.providers=n,this.limit=i,this.id=t.ID_SYNTAX_PROVIDER}return e.prototype.compute=function(e){var t=this;return function(e,t,i){var o=null,s=e.map((function(e,s){\nreturn Promise.resolve(e.provideFoldingRanges(t,r,i)).then((function(e){if(!i.isCancellationRequested&&Array.isArray(e)){Array.isArray(o)||(o=[]);for(var n=t.getLineCount(),r=0,a=e;r<a.length;r++){var l=a[r];l.start>0&&l.end>l.start&&l.end<=n&&o.push({start:l.start,end:l.end,rank:s,kind:l.kind})}}}),n.onUnexpectedExternalError)}));return Promise.all(s).then((function(e){return o}))}(this.providers,this.editorModel,e).then((function(e){return e?l(e,t.limit):null}))},e.prototype.dispose=function(){},e}();t.SyntaxRangeProvider=s;var a=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}return e.prototype.add=function(e,t,n,o){if(!(e>i.MAX_LINE_NUMBER||t>i.MAX_LINE_NUMBER)){var r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=o,this._types[r]=n,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}},\ne.prototype.toIndentRanges=function(){if(this._length<=this._foldingRangesLimit){for(var e=new Uint32Array(this._length),t=new Uint32Array(this._length),n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new i.FoldingRegions(e,t,this._types)}var o=0,r=this._nestingLevelCounts.length;for(n=0;n<this._nestingLevelCounts.length;n++){var s=this._nestingLevelCounts[n];if(s){if(s+o>this._foldingRangesLimit){r=n;break}o+=s}}e=new Uint32Array(this._foldingRangesLimit),t=new Uint32Array(this._foldingRangesLimit);for(var a=[],l=(n=0,0);n<this._length;n++){var u=this._nestingLevels[n];(u<r||u===r&&o++<this._foldingRangesLimit)&&(e[l]=this._startIndexes[n],t[l]=this._endIndexes[n],a[l]=this._types[n],l++)}return new i.FoldingRegions(e,t,a)},e}();function l(e,t){for(var n=e.sort((function(e,t){var n=e.start-t.start;return 0===n&&(n=e.rank-t.rank),n})),i=new a(t),o=void 0,r=[],s=0,l=n;s<l.length;s++){var u=l[s];if(o){if(u.start>o.start)if(u.end<=o.end)r.push(o),o=u,\ni.add(u.start,u.end,u.kind&&u.kind.value,r.length);else{if(u.start>o.end){do{o=r.pop()}while(o&&u.start>o.end);o&&r.push(o),o=u}i.add(u.start,u.end,u.kind&&u.kind.value,r.length)}}else o=u,i.add(u.start,u.end,u.kind&&u.kind.value,r.length)}return i.toIndentRanges()}t.RangesCollector=a,t.sanitizeRanges=l})),define(n[383],i([0,1,197]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ID_INIT_PROVIDER=\"init\";var i=function(){function e(e,n,i,o){if(this.editorModel=e,this.id=t.ID_INIT_PROVIDER,n.length){this.decorationIds=e.deltaDecorations([],n.map((function(t){return{range:{startLineNumber:t.startLineNumber,startColumn:0,endLineNumber:t.endLineNumber,endColumn:e.getLineLength(t.endLineNumber)},options:{stickiness:1}}}))),this.timeout=setTimeout(i,o)}}return e.prototype.dispose=function(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),\"number\"==typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},\ne.prototype.compute=function(e){var t=[];if(this.decorationIds)for(var i=0,o=this.decorationIds;i<o.length;i++){var r=o[i],s=this.editorModel.getDecorationRange(r);s&&t.push({start:s.startLineNumber,end:s.endLineNumber,rank:1})}return Promise.resolve(n.sanitizeRanges(t,Number.MAX_VALUE))},e}();t.InitializingRangeProvider=i})),define(n[198],i([0,1,58,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e._handleEolEdits=function(e,t){for(var n=void 0,i=[],o=0,r=t;o<r.length;o++){var s=r[o];\"number\"==typeof s.eol&&(n=s.eol),s.range&&\"string\"==typeof s.text&&i.push(s)}return\"number\"==typeof n&&e.hasModel()&&e.getModel().pushEOL(n),i},e._isFullModelReplaceEdit=function(e,t){if(!e.hasModel())return!1;var n=e.getModel(),i=n.validateRange(t.range);return n.getFullModelRange().equalsRange(i)},e.execute=function(t,o){t.pushUndoStop();var r=e._handleEolEdits(t,o)\n;1===r.length&&e._isFullModelReplaceEdit(t,r[0])?t.executeEdits(\"formatEditsCommand\",r.map((function(e){return n.EditOperation.replace(i.Range.lift(e.range),e.text)}))):t.executeEdits(\"formatEditsCommand\",r.map((function(e){return n.EditOperation.replaceMove(i.Range.lift(e.range),e.text)}))),t.pushUndoStop()},e}();t.FormattingEdit=o})),define(n[199],i([0,1,24,2,4,16]),(function(e,t,n,i,o,s){\"use strict\";function a(e,t){return!!e[t]}Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e,t){this.target=e.target,this.hasTriggerModifier=a(e.event,t.triggerModifier),this.hasSideBySideModifier=a(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=n.isIE||e.event.detail<=1};t.ClickLinkMouseEvent=l;var u=function(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=a(e,t.triggerModifier)};t.ClickLinkKeyboardEvent=u;var d=function(){function e(e,t,n,i){this.triggerKey=e,this.triggerModifier=t,\nthis.triggerSideBySideKey=n,this.triggerSideBySideModifier=i}return e.prototype.equals=function(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier},e}();function c(e){return\"altKey\"===e?s.isMacintosh?new d(57,\"metaKey\",6,\"altKey\"):new d(5,\"ctrlKey\",6,\"altKey\"):s.isMacintosh?new d(6,\"altKey\",57,\"metaKey\"):new d(6,\"altKey\",5,\"ctrlKey\")}t.ClickLinkOptions=d;var h=function(e){function t(t){var n=e.call(this)||this;return n._onMouseMoveOrRelevantKeyDown=n._register(new o.Emitter),n.onMouseMoveOrRelevantKeyDown=n._onMouseMoveOrRelevantKeyDown.event,n._onExecute=n._register(new o.Emitter),n.onExecute=n._onExecute.event,n._onCancel=n._register(new o.Emitter),n.onCancel=n._onCancel.event,n._editor=t,n._opts=c(n._editor.getOption(59)),n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._register(n._editor.onDidChangeConfiguration((function(e){if(e.hasChanged(59)){\nvar t=c(n._editor.getOption(59));if(n._opts.equals(t))return;n._opts=t,n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._onCancel.fire()}}))),n._register(n._editor.onMouseMove((function(e){return n.onEditorMouseMove(new l(e,n._opts))}))),n._register(n._editor.onMouseDown((function(e){return n.onEditorMouseDown(new l(e,n._opts))}))),n._register(n._editor.onMouseUp((function(e){return n.onEditorMouseUp(new l(e,n._opts))}))),n._register(n._editor.onKeyDown((function(e){return n.onEditorKeyDown(new u(e,n._opts))}))),n._register(n._editor.onKeyUp((function(e){return n.onEditorKeyUp(new u(e,n._opts))}))),n._register(n._editor.onMouseDrag((function(){return n.resetHandler()}))),n._register(n._editor.onDidChangeCursorSelection((function(e){return n.onDidChangeCursorSelection(e)}))),n._register(n._editor.onDidChangeModel((function(e){return n.resetHandler()}))),n._register(n._editor.onDidChangeModelContent((function(){return n.resetHandler()}))),n._register(n._editor.onDidScrollChange((function(e){\n(e.scrollTopChanged||e.scrollLeftChanged)&&n.resetHandler()}))),n}return r(t,e),t.prototype.onDidChangeCursorSelection=function(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this.resetHandler()},t.prototype.onEditorMouseMove=function(e){this.lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])},t.prototype.onEditorMouseDown=function(e){this.hasTriggerKeyOnMouseDown=e.hasTriggerModifier},t.prototype.onEditorMouseUp=function(e){this.hasTriggerKeyOnMouseDown&&this._onExecute.fire(e)},t.prototype.onEditorKeyDown=function(e){this.lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this.lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()},t.prototype.onEditorKeyUp=function(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()},t.prototype.resetHandler=function(){this.lastMouseMoveEvent=null,this.hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()},t}(i.Disposable);t.ClickLinkGesture=h})),\ndefine(n[200],i([0,1,15,10]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,i,o,r){var s=this;this._computer=e,this._state=0,this._hoverTime=r,this._firstWaitScheduler=new n.RunOnceScheduler((function(){return s._triggerAsyncComputation()}),0),this._secondWaitScheduler=new n.RunOnceScheduler((function(){return s._triggerSyncComputation()}),0),this._loadingMessageScheduler=new n.RunOnceScheduler((function(){return s._showLoadingMessage()}),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=t,this._errorCallback=i,this._progressCallback=o}return e.prototype.setHoverTime=function(e){this._hoverTime=e},e.prototype._firstWaitTime=function(){return this._hoverTime/2},e.prototype._secondWaitTime=function(){return this._hoverTime/2},e.prototype._loadingMessageTime=function(){return 3*this._hoverTime},e.prototype._triggerAsyncComputation=function(){var e=this;this._state=2,\nthis._secondWaitScheduler.schedule(this._secondWaitTime()),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=n.createCancelablePromise((function(t){return e._computer.computeAsync(t)})),this._asyncComputationPromise.then((function(t){e._asyncComputationPromiseDone=!0,e._withAsyncResult(t)}),(function(t){return e._onError(t)}))):this._asyncComputationPromiseDone=!0},e.prototype._triggerSyncComputation=function(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))},e.prototype._showLoadingMessage=function(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())},e.prototype._withAsyncResult=function(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))},e.prototype._onComplete=function(e){\nthis._completeCallback&&this._completeCallback(e)},e.prototype._onError=function(e){this._errorCallback?this._errorCallback(e):i.onUnexpectedError(e)},e.prototype._onProgress=function(e){this._progressCallback&&this._progressCallback(e)},e.prototype.start=function(e){if(0===e)0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(this._firstWaitTime()),this._loadingMessageScheduler.schedule(this._loadingMessageTime()));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}},e.prototype.cancel=function(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),\nthis._asyncComputationPromise=null),this._state=0},e}();t.HoverOperation=o}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[201],i([0,1,6,53,47]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,n){var o=e.call(this)||this;return o.allowEditorOverflow=!0,o._id=t,o._editor=n,o._isVisible=!1,o._stoleFocus=!1,o._containerDomNode=document.createElement(\"div\"),o._containerDomNode.className=\"monaco-editor-hover hidden\",o._containerDomNode.tabIndex=0,o._domNode=document.createElement(\"div\"),o._domNode.className=\"monaco-editor-hover-content\",o.scrollbar=new i.DomScrollableElement(o._domNode,{}),o._register(o.scrollbar),o._containerDomNode.appendChild(o.scrollbar.getDomNode()),o.onkeydown(o._containerDomNode,(function(e){e.equals(9)&&o.hide()})),\no._register(o._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&o.updateFont()}))),o._editor.onDidLayoutChange((function(e){return o.layout()})),o.layout(),o._editor.addContentWidget(o),o._showAtPosition=null,o._showAtRange=null,o._stoleFocus=!1,o}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._containerDomNode,\"hidden\",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._containerDomNode},t.prototype.showAt=function(e,t,n){this._showAtPosition=e,this._showAtRange=t,this.isVisible=!0,this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=n,n&&this._containerDomNode.focus()},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1,this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus())},t.prototype.getPosition=function(){return this.isVisible?{\nposition:this._showAtPosition,range:this._showAtRange,preference:[1,2]}:null},t.prototype.dispose=function(){this._editor.removeContentWidget(this),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this;Array.prototype.slice.call(this._domNode.getElementsByClassName(\"code\")).forEach((function(t){return e._editor.applyFontInfo(t)}))},t.prototype.updateContents=function(e){this._domNode.textContent=\"\",this._domNode.appendChild(e),this.updateFont(),this._editor.layoutContentWidget(this),this.onContentsChange()},t.prototype.onContentsChange=function(){this.scrollbar.scanDomNode()},t.prototype.layout=function(){var e=Math.max(this._editor.getLayoutInfo().height/4,250),t=this._editor.getOption(34),n=t.fontSize,i=t.lineHeight;this._domNode.style.fontSize=n+\"px\",this._domNode.style.lineHeight=i+\"px\",this._domNode.style.maxHeight=e+\"px\",this._domNode.style.maxWidth=Math.max(.66*this._editor.getLayoutInfo().width,500)+\"px\"},t}(o.Widget);t.ContentHoverWidget=s;var l=function(e){function t(t,n){\nvar i=e.call(this)||this;return i._id=t,i._editor=n,i._isVisible=!1,i._domNode=document.createElement(\"div\"),i._domNode.className=\"monaco-editor-hover hidden\",i._domNode.setAttribute(\"aria-hidden\",\"true\"),i._domNode.setAttribute(\"role\",\"presentation\"),i._showAtLineNumber=-1,i._register(i._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&i.updateFont()}))),i._editor.addOverlayWidget(i),i}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._domNode,\"hidden\",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._domNode},t.prototype.showAt=function(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);var t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(this._showAtLineNumber),i=this._editor.getScrollTop(),o=this._editor.getOption(49),r=n-i-(this._domNode.clientHeight-o)/2\n;this._domNode.style.left=t.glyphMarginLeft+t.glyphMarginWidth+\"px\",this._domNode.style.top=Math.max(Math.round(r),0)+\"px\"},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1)},t.prototype.getPosition=function(){return null},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName(\"code\")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName(\"code\"));a(t,n).forEach((function(t){return e._editor.applyFontInfo(t)}))},t.prototype.updateContents=function(e){this._domNode.textContent=\"\",this._domNode.appendChild(e),this.updateFont()},t}(o.Widget);t.GlyphHoverWidget=l})),define(n[384],i([0,1,22]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){this._editRange=e,this._originalSelection=t,this._text=n}return e.prototype.getEditOperations=function(e,t){\nt.addTrackedEditOperation(this._editRange,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new n.Selection(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new n.Selection(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)},e}();t.InPlaceReplaceCommand=i})),define(n[385],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getSpaceCnt=function(e,t){for(var n=0,i=0;i<e.length;i++)\"\\t\"===e.charAt(i)?n+=t:n++;return n},t.generateIndent=function(e,t,n){e=e<0?0:e;var i=\"\";if(!n){var o=Math.floor(e/t);e%=t;for(var r=0;r<o;r++)i+=\"\\t\"}for(r=0;r<e;r++)i+=\" \";return i}})),define(n[386],i([0,1,3,22]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this._selection=e,this._isCopyingDown=t,\nthis._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}return e.prototype.getEditOperations=function(e,t){var i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));for(var o=[],r=i.startLineNumber;r<=i.endLineNumber;r++)o.push(e.getLineContent(r));var s=o.join(\"\\n\");\"\"===s&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._isCopyingDown?t.addEditOperation(new n.Range(i.startLineNumber,1,i.startLineNumber,1),s+\"\\n\"):t.addEditOperation(new n.Range(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),\"\\n\"+s),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId)\n;if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){var o=n.startLineNumber,r=n.startColumn,s=n.endLineNumber,a=n.endColumn;0!==this._startLineNumberDelta&&(o+=this._startLineNumberDelta,r=1),0!==this._endLineNumberDelta&&(s+=this._endLineNumberDelta,a=1),n=i.Selection.createWithDirection(o,r,s,a,this._selectionDirection)}return n},e}();t.CopyLinesCommand=o})),define(n[387],i([0,1,58,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this.selection=e,this.descending=t,this.selectionId=null}return e.getCollator=function(){return e._COLLATOR||(e._COLLATOR=new Intl.Collator),e._COLLATOR},e.prototype.getEditOperations=function(e,t){var o=function(e,t,o){var s=r(e,t,o);if(!s)return null;return n.EditOperation.replace(new i.Range(s.startLineNumber,1,s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),s.after.join(\"\\n\"))}(e,this.selection,this.descending);o&&t.addEditOperation(o.range,o.text),\nthis.selectionId=t.trackSelection(this.selection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this.selectionId)},e.canRun=function(e,t,n){if(null===e)return!1;var i=r(e,t,n);if(!i)return!1;for(var o=0,s=i.before.length;o<s;o++)if(i.before[o]!==i.after[o])return!0;return!1},e._COLLATOR=null,e}();function r(e,t,n){var i=t.startLineNumber,r=t.endLineNumber;if(1===t.endColumn&&r--,i>=r)return null;for(var s=[],a=i;a<=r;a++)s.push(e.getLineContent(a));var l=s.slice(0);return l.sort(o.getCollator().compare),!0===n&&(l=l.reverse()),{startLineNumber:i,endLineNumber:r,before:s,after:l}}t.SortLinesCommand=o})),define(n[202],i([0,1,13,3,76]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.prototype.provideSelectionRanges=function(t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,a;return c(this,(function(l){switch(l.label){case 0:i=[],o=function(n){var o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn o=[],i.push(o),r=new Map,[4,new Promise((function(i){return e._bracketsRightYield(i,0,t,n,r)}))];case 1:return s.sent(),[4,new Promise((function(i){return e._bracketsLeftYield(i,0,t,n,r,o)}))];case 2:return s.sent(),[2]}}))},r=0,s=n,l.label=1;case 1:return r<s.length?(a=s[r],[5,o(a)]):[3,4];case 2:l.sent(),l.label=3;case 3:return r++,[3,1];case 4:return[2,i]}}))}))},e._bracketsRightYield=function(t,n,i,r,s){for(var a=new Map,l=Date.now();;){if(n>=e._maxRounds){t();break}if(!r){t();break}var u=i.findNextBracket(r);if(!u){t();break}if(Date.now()-l>e._maxDuration){setTimeout((function(){return e._bracketsRightYield(t,n+1,i,r,s)}));break}var d=u.close[0];if(u.isOpen){var c=a.has(d)?a.get(d):0;a.set(d,c+1)}else{c=a.has(d)?a.get(d):0;if(c-=1,a.set(d,Math.max(0,c)),c<0){var h=s.get(d);h||(h=new o.LinkedList,s.set(d,h)),h.push(u.range)}}r=u.range.getEndPosition()}},e._bracketsLeftYield=function(t,n,o,r,s,a){for(var l=new Map,u=Date.now();;){if(n>=e._maxRounds&&0===s.size){t();break}if(!r){t();break}\nvar d=o.findPrevBracket(r);if(!d){t();break}if(Date.now()-u>e._maxDuration){setTimeout((function(){return e._bracketsLeftYield(t,n+1,o,r,s,a)}));break}var c=d.close[0];if(d.isOpen){m=l.has(c)?l.get(c):0;if(m-=1,l.set(c,Math.max(0,m)),m<0){var h=s.get(c);if(h){var p=h.shift();0===h.size&&s.delete(c);var g=i.Range.fromPositions(d.range.getEndPosition(),p.getStartPosition()),f=i.Range.fromPositions(d.range.getStartPosition(),p.getEndPosition());a.push({range:g}),a.push({range:f}),e._addBracketLeading(o,f,a)}}}else{var m=l.has(c)?l.get(c):0;l.set(c,m+1)}r=d.range.getStartPosition()}},e._addBracketLeading=function(e,t,o){if(t.startLineNumber!==t.endLineNumber){var r=t.startLineNumber,s=e.getLineFirstNonWhitespaceColumn(r);0!==s&&s!==t.startColumn&&(o.push({range:i.Range.fromPositions(new n.Position(r,s),t.getEndPosition())}),o.push({range:i.Range.fromPositions(new n.Position(r,1),t.getEndPosition())}));var a=r-1;if(a>0){var l=e.getLineFirstNonWhitespaceColumn(a)\n;l===t.startColumn&&l!==e.getLineLastNonWhitespaceColumn(a)&&(o.push({range:i.Range.fromPositions(new n.Position(a,l),t.getEndPosition())}),o.push({range:i.Range.fromPositions(new n.Position(a,1),t.getEndPosition())}))}}},e._maxDuration=30,e._maxRounds=2,e}();t.BracketSelectionRangeProvider=r})),define(n[388],i([0,1,3,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.prototype.provideSelectionRanges=function(e,t){for(var n=[],i=0,o=t;i<o.length;i++){var r=o[i],s=[];n.push(s),this._addInWordRanges(s,e,r),this._addWordRanges(s,e,r),this._addWhitespaceLine(s,e,r),s.push({range:e.getFullModelRange()})}return n},e.prototype._addInWordRanges=function(e,t,o){var r=t.getWordAtPosition(o);if(r){for(var s=r.word,a=r.startColumn,l=o.column-a,u=l,d=l,c=0;u>=0;u--){if(95===(h=s.charCodeAt(u))||45===h)break;if(i.isLowerAsciiLetter(h)&&i.isUpperAsciiLetter(c))break;c=h}for(u+=1;d<s.length;d++){var h=s.charCodeAt(d)\n;if(i.isUpperAsciiLetter(h)&&i.isLowerAsciiLetter(c))break;if(95===h||45===h)break;c=h}u<d&&e.push({range:new n.Range(o.lineNumber,a+u,o.lineNumber,a+d)})}},e.prototype._addWordRanges=function(e,t,i){var o=t.getWordAtPosition(i);o&&e.push({range:new n.Range(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)})},e.prototype._addWhitespaceLine=function(e,t,i){t.getLineLength(i.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(i.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(i.lineNumber)&&e.push({range:new n.Range(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})},e}();t.WordSelectionRangeProvider=o}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[151],i([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this.value=\"\",this.pos=0}\nreturn e.isDigitCharacter=function(e){return e>=48&&e<=57},e.isVariableCharacter=function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90},e.prototype.text=function(e){this.value=e,this.pos=0},e.prototype.tokenText=function(e){return this.value.substr(e.pos,e.len)},e.prototype.next=function(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};var t,n=this.pos,i=0,o=this.value.charCodeAt(n);if(\"number\"==typeof(t=e._table[o]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(o)){t=8;do{i+=1,o=this.value.charCodeAt(n+i)}while(e.isDigitCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}}if(e.isVariableCharacter(o)){t=9;do{o=this.value.charCodeAt(n+ ++i)}while(e.isVariableCharacter(o)||e.isDigitCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}}t=10;do{i+=1,o=this.value.charCodeAt(n+i)}while(!isNaN(o)&&void 0===e._table[o]&&!e.isDigitCharacter(o)&&!e.isVariableCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}},e._table=((n={})[36]=0,n[58]=1,n[44]=2,n[123]=3,n[125]=4,n[92]=5,\nn[47]=6,n[124]=7,n[43]=11,n[45]=12,n[63]=13,n),e}();t.Scanner=i;var o=function(){function e(){this._children=[]}return e.prototype.appendChild=function(e){return e instanceof s&&this._children[this._children.length-1]instanceof s?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this},e.prototype.replace=function(e,t){var n=e.parent,i=n.children.indexOf(e),o=n.children.slice(0);o.splice.apply(o,a([i,1],t)),n._children=o,function e(t,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];r.parent=n,e(r.children,r)}}(t,n)},Object.defineProperty(e.prototype,\"children\",{get:function(){return this._children},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"snippet\",{get:function(){for(var e=this;;){if(!e)return;if(e instanceof f)return e;e=e.parent}},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.children.reduce((function(e,t){return e+t.toString()}),\"\")},e.prototype.len=function(){return 0},e}();t.Marker=o;var s=function(e){\nfunction t(t){var n=e.call(this)||this;return n.value=t,n}return r(t,e),t.prototype.toString=function(){return this.value},t.prototype.len=function(){return this.value.length},t.prototype.clone=function(){return new t(this.value)},t}(o);t.Text=s;var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t}(o);t.TransformableMarker=l;var u=function(e){function t(t){var n=e.call(this)||this;return n.index=t,n}return r(t,e),t.compareByIndex=function(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop?-1:e.index<t.index?-1:e.index>t.index?1:0},Object.defineProperty(t.prototype,\"isFinalTabstop\",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"choice\",{get:function(){return 1===this._children.length&&this._children[0]instanceof d?this._children[0]:void 0},enumerable:!0,configurable:!0}),t.prototype.clone=function(){var e=new t(this.index);return this.transform&&(e.transform=this.transform.clone()),\ne._children=this.children.map((function(e){return e.clone()})),e},t}(l);t.Placeholder=u;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.options=[],t}return r(t,e),t.prototype.appendChild=function(e){return e instanceof s&&(e.parent=this,this.options.push(e)),this},t.prototype.toString=function(){return this.options[0].value},t.prototype.len=function(){return this.options[0].len()},t.prototype.clone=function(){var e=new t;return this.options.forEach(e.appendChild,e),e},t}(o);t.Choice=d;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.regexp=new RegExp(\"\"),t}return r(t,e),t.prototype.resolve=function(e){var t=this,n=!1,i=e.replace(this.regexp,(function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!n&&this._children.some((function(e){return e instanceof h&&Boolean(e.elseValue)}))&&(i=this._replace([])),i},t.prototype._replace=function(e){for(var t=\"\",n=0,i=this._children;n<i.length;n++){var o=i[n]\n;if(o instanceof h){var r=e[o.index]||\"\";t+=r=o.resolve(r)}else t+=o.toString()}return t},t.prototype.toString=function(){return\"\"},t.prototype.clone=function(){var e=new t;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?\"i\":\"\")+(this.regexp.global?\"g\":\"\")),e._children=this.children.map((function(e){return e.clone()})),e},t}(o);t.Transform=c;var h=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.index=t,r.shorthandName=n,r.ifValue=i,r.elseValue=o,r}return r(t,e),t.prototype.resolve=function(e){return\"upcase\"===this.shorthandName?e?e.toLocaleUpperCase():\"\":\"downcase\"===this.shorthandName?e?e.toLocaleLowerCase():\"\":\"capitalize\"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):\"\":\"pascalcase\"===this.shorthandName?e?this._toPascalCase(e):\"\":Boolean(e)&&\"string\"==typeof this.ifValue?this.ifValue:Boolean(e)||\"string\"!=typeof this.elseValue?e||\"\":this.elseValue},t.prototype._toPascalCase=function(e){var t=e.match(/[a-z]+/gi);return t?t.map((function(e){\nreturn e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})).join(\"\"):e},t.prototype.clone=function(){return new t(this.index,this.shorthandName,this.ifValue,this.elseValue)},t}(o);t.FormatString=h;var p=function(e){function t(t){var n=e.call(this)||this;return n.name=t,n}return r(t,e),t.prototype.resolve=function(e){var t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||\"\")),void 0!==t&&(this._children=[new s(t)],!0)},t.prototype.clone=function(){var e=new t(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e},t}(l);function g(e,t){for(var n=a(e);n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,i.children)}}t.Variable=p;var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),Object.defineProperty(t.prototype,\"placeholderInfo\",{get:function(){if(!this._placeholders){var e,t=[];this.walk((function(n){return n instanceof u&&(t.push(n),\ne=!e||e.index<n.index?n:e),!0})),this._placeholders={all:t,last:e}}return this._placeholders},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"placeholders\",{get:function(){return this.placeholderInfo.all},enumerable:!0,configurable:!0}),t.prototype.offset=function(e){var t=0,n=!1;return this.walk((function(i){return i===e?(n=!0,!1):(t+=i.len(),!0)})),n?t:-1},t.prototype.fullLen=function(e){var t=0;return g([e],(function(e){return t+=e.len(),!0})),t},t.prototype.enclosingPlaceholders=function(e){for(var t=[],n=e.parent;n;)n instanceof u&&t.push(n),n=n.parent;return t},t.prototype.resolveVariables=function(e){var t=this;return this.walk((function(n){return n instanceof p&&n.resolve(e)&&(t._placeholders=void 0),!0})),this},t.prototype.appendChild=function(t){return this._placeholders=void 0,e.prototype.appendChild.call(this,t)},t.prototype.replace=function(t,n){return this._placeholders=void 0,e.prototype.replace.call(this,t,n)},t.prototype.clone=function(){var e=new t\n;return this._children=this.children.map((function(e){return e.clone()})),e},t.prototype.walk=function(e){g(this.children,e)},t}(o);t.TextmateSnippet=f;var m=function(){function e(){this._scanner=new i,this._token={type:14,pos:0,len:0}}return e.escape=function(e){return e.replace(/\\$|}|\\\\/g,\"\\\\$&\")},e.prototype.parse=function(e,t,n){this._scanner.text(e),this._token=this._scanner.next();for(var i=new f;this._parse(i););var o=new Map,r=[],s=0;i.walk((function(e){return e instanceof u&&(s+=1,e.isFinalTabstop?o.set(0,void 0):!o.has(e.index)&&e.children.length>0?o.set(e.index,e.children):r.push(e)),!0}));for(var a=0,l=r;a<l.length;a++){var d=l[a],c=o.get(d.index);if(c){var h=new u(d.index);h.transform=d.transform;for(var p=0,g=c;p<g.length;p++){var m=g[p];h.appendChild(m.clone())}i.replace(d,[h])}}return n||(n=s>0&&t),!o.has(0)&&n&&i.appendChild(new u(0)),i},e.prototype._accept=function(e,t){if(void 0===e||this._token.type===e){var n=!t||this._scanner.tokenText(this._token)\n;return this._token=this._scanner.next(),n}return!1},e.prototype._backTo=function(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1},e.prototype._until=function(e){for(var t=this._token;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){var n=this._scanner.next();if(0!==n.type&&4!==n.type&&5!==n.type)return!1}this._token=this._scanner.next()}var i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\\\(\\$|}|\\\\)/g,\"$1\");return this._token=this._scanner.next(),i},e.prototype._parse=function(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)},e.prototype._parseEscaped=function(e){var t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new s(t)),!0)},e.prototype._parseTabstopOrVariableName=function(e){var t,n=this._token\n;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\\d+$/.test(t)?new u(Number(t)):new p(t)),!0):this._backTo(n)},e.prototype._parseComplexPlaceholder=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);var i=new u(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new s(\"${\"+t+\":\")),i.children.forEach(e.appendChild,e),!0}else{if(!(i.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(var o=new d;;){if(this._parseChoiceElement(o)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(o),this._accept(4)))return e.appendChild(i),!0}return this._backTo(n),!1}}},e.prototype._parseChoiceElement=function(e){for(var t=this._token,n=[];2!==this._token.type&&7!==this._token.type;){var i=void 0\n;if(!(i=(i=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||i:this._accept(void 0,!0)))return this._backTo(t),!1;n.push(i)}return 0===n.length?(this._backTo(t),!1):(e.appendChild(new s(n.join(\"\"))),!0)},e.prototype._parseComplexVariable=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);var i=new p(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new s(\"${\"+t+\":\")),i.children.forEach(e.appendChild,e),!0}},e.prototype._parseTransform=function(e){for(var t=new c,n=\"\",i=\"\";!this._accept(6);){var o=void 0;if(o=this._accept(5,!0))n+=o=this._accept(6,!0)||o;else{if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}}for(;!this._accept(6);){o=void 0\n;if(o=this._accept(5,!0))o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new s(o));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}try{t.regexp=new RegExp(n,i)}catch(e){return!1}return e.transform=t,!0},e.prototype._parseFormatString=function(e){var t=this._token;if(!this._accept(0))return!1;var n=!1;this._accept(3)&&(n=!0);var i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!n)return e.appendChild(new h(Number(i))),!0;if(this._accept(4))return e.appendChild(new h(Number(i))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){var o=this._accept(9,!0);return o&&this._accept(4)?(e.appendChild(new h(Number(i),o)),!0):(this._backTo(t),!1)}if(this._accept(11)){if(r=this._until(4))return e.appendChild(new h(Number(i),void 0,r,void 0)),!0}else if(this._accept(12)){if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,void 0,s)),!0}else if(this._accept(13)){var r\n;if(r=this._until(1))if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,r,s)),!0}else{var s;if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,void 0,s)),!0}return this._backTo(t),!1},e.prototype._parseAnything=function(e){return 14!==this._token.type&&(e.appendChild(new s(this._scanner.tokenText(this._token))),this._accept(void 0),!0)},e}();t.SnippetParser=m})),define(n[389],i([0,1,61,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e,t){this.leadingLineContent=e,this.characterCountDelta=t};t.LineContext=o;var r=function(){function e(t,n,i,o,r,s){this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=o,this._options=r,this._refilterKind=1,this._lineContext=i,\"top\"===s?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:\"bottom\"===s&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return Object.defineProperty(e.prototype,\"lineContext\",{get:function(){\nreturn this._lineContext},set:function(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"items\",{get:function(){return this._ensureCachedState(),this._filteredItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"incomplete\",{get:function(){return this._ensureCachedState(),this._isIncomplete},enumerable:!0,configurable:!0}),e.prototype.adopt=function(e){for(var t=new Array,n=0;n<this._items.length;)e.has(this._items[n].provider)?n++:(t.push(this._items[n]),this._items[n]=this._items[this._items.length-1],this._items.pop());return this._refilterKind=1,t},Object.defineProperty(e.prototype,\"stats\",{get:function(){return this._ensureCachedState(),this._stats},enumerable:!0,configurable:!0}),\ne.prototype._ensureCachedState=function(){0!==this._refilterKind&&this._createCachedState()},e.prototype._createCachedState=function(){this._isIncomplete=new Set,this._stats={suggestionCount:0,snippetCount:0,textCount:0};for(var e=this._lineContext,t=e.leadingLineContent,o=e.characterCountDelta,r=\"\",s=\"\",a=1===this._refilterKind?this._items:this._filteredItems,l=[],u=!this._options.filterGraceful||a.length>2e3?n.fuzzyScore:n.fuzzyScoreGracefulAggressive,d=0;d<a.length;d++){var c=a[d];c.container.incomplete&&this._isIncomplete.add(c.provider);var h=c.position.column-c.editStart.column,p=h+o-(c.position.column-this._column);if(r.length!==p&&(s=(r=0===p?\"\":t.slice(-p)).toLowerCase()),c.word=r,0===p)c.score=n.FuzzyScore.Default;else{for(var g=0;g<h;){var f=r.charCodeAt(g);if(32!==f&&9!==f)break;g+=1}var m=\"string\"==typeof c.completion.label?c.completion.label:c.completion.label.name;if(g>=p)c.score=n.FuzzyScore.Default;else if(\"string\"==typeof c.completion.filterText){\nif(!(v=u(r,s,g,c.completion.filterText,c.filterTextLow,0,!1)))continue;0===i.compareIgnoreCase(c.completion.filterText,m)?c.score=v:(c.score=n.anyScore(r,s,g,m,c.labelLow,0),c.score[0]=v[0])}else{var v;if(!(v=u(r,s,g,m,c.labelLow,0,!1)))continue;c.score=v}}switch(c.idx=d,c.distance=this._wordDistance.distance(c.position,c.completion),l.push(c),this._stats.suggestionCount++,c.completion.kind){case 25:this._stats.snippetCount++;break;case 18:this._stats.textCount++}}this._filteredItems=l.sort(this._snippetCompareFn),this._refilterKind=0},e._compareCompletionItems=function(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0},e._compareCompletionItemsSnippetsDown=function(t,n){if(t.completion.kind!==n.completion.kind){if(25===t.completion.kind)return 1;if(25===n.completion.kind)return-1}return e._compareCompletionItems(t,n)},e._compareCompletionItemsSnippetsUp=function(t,n){if(t.completion.kind!==n.completion.kind){\nif(25===t.completion.kind)return-1;if(25===n.completion.kind)return 1}return e._compareCompletionItems(t,n)},e}();t.CompletionModel=r})),define(n[390],i([0,1,19,2,79]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n){var o=this;this._disposables=new i.DisposableStore,this._disposables.add(t.onDidShow((function(){return o._onItem(t.getFocusedItem())}))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType((function(i){if(o._active&&!t.isFrozen()){var r=i.charCodeAt(i.length-1);o._active.acceptCharacters.has(r)&&e.getOption(0)&&n(o._active.item)}})))}return e.prototype._onItem=function(e){if(e&&n.isNonEmptyArray(e.item.completion.commitCharacters)){if(!this._active||this._active.item.item!==e.item){for(var t=new o.CharacterSet,i=0,r=e.item.completion.commitCharacters;i<r.length;i++){var s=r[i];s.length>0&&t.add(s.charCodeAt(0))}this._active={\nacceptCharacters:t,item:e}}}else this.reset()},e.prototype.reset=function(){this._active=void 0},e.prototype.dispose=function(){this._disposables.dispose()},e}();t.CommitCharacterController=r})),define(n[391],i([0,1,2,3,4,52]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){var t=this;this._controller=e,this._disposables=new n.DisposableStore,this._decorations=[],this._disposables.add(e.model.onDidSuggest((function(e){if(!e.shy){var n=t._controller.widget.getValue(),i=n.getFocusedItem();i&&t._highlight(i.item),t._widgetListener||(t._widgetListener=n.onDidFocus((function(e){return t._highlight(e.item)})))}}))),this._disposables.add(e.model.onDidCancel((function(){t._reset()})))}return e.prototype.dispose=function(){this._reset(),this._disposables.dispose(),n.dispose(this._widgetListener),n.dispose(this._shiftKeyListener)},e.prototype._reset=function(){this._decorations=this._controller.editor.deltaDecorations(this._decorations,[]),\nthis._shiftKeyListener&&(this._shiftKeyListener.dispose(),this._shiftKeyListener=void 0)},e.prototype._highlight=function(e){var t,n=this;this._currentItem=e;var o=this._controller.editor.getOption(89),r=[];if(o.insertHighlight){this._shiftKeyListener||(this._shiftKeyListener=l.event((function(){return n._highlight(n._currentItem)})));var s=this._controller.getOverwriteInfo(e,l.isPressed),a=this._controller.editor.getPosition();if(\"insert\"===o.insertMode&&s.overwriteAfter>0)r=[{range:new i.Range(a.lineNumber,a.column,a.lineNumber,a.column+s.overwriteAfter),options:{inlineClassName:\"suggest-insert-unexpected\"}}];else if(\"replace\"===o.insertMode&&0===s.overwriteAfter){var u=null===(t=this._controller.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(a);u&&u.endColumn>a.column&&(r=[{range:new i.Range(a.lineNumber,a.column,a.lineNumber,u.endColumn),options:{inlineClassName:\"suggest-insert-unexpected\"}}])}}this._decorations=this._controller.editor.deltaDecorations(this._decorations,r)},e}()\n;t.SuggestRangeHighlighter=a;var l=new(function(e){function t(){var t=e.call(this)||this;return t._subscriptions=new n.DisposableStore,t._isPressed=!1,t._subscriptions.add(s.domEvent(document.body,\"keydown\")((function(e){return t.isPressed=e.shiftKey}))),t._subscriptions.add(s.domEvent(document.body,\"keyup\")((function(){return t.isPressed=!1}))),t._subscriptions.add(s.domEvent(document.body,\"mouseleave\")((function(){return t.isPressed=!1}))),t._subscriptions.add(s.domEvent(document.body,\"blur\")((function(){return t.isPressed=!1}))),t}return r(t,e),Object.defineProperty(t.prototype,\"isPressed\",{get:function(){return this._isPressed},set:function(e){this._isPressed!==e&&(this._isPressed=e,this.fire(e))},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._subscriptions.dispose(),e.prototype.dispose.call(this)},t}(o.Emitter))})),define(n[392],i([0,1,19,3,202]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){}\nreturn e.create=function(t,s){return d(this,void 0,void 0,(function(){var a,l,u,d;return c(this,(function(c){switch(c.label){case 0:return s.getOption(89).localityBonus&&s.hasModel()?(a=s.getModel(),l=s.getPosition(),t.canComputeWordRanges(a.uri)?[4,(new o.BracketSelectionRangeProvider).provideSelectionRanges(a,[l])]:[2,e.None]):[2,e.None];case 1:return(u=c.sent())&&0!==u.length&&0!==u[0].length?[4,t.computeWordRanges(a.uri,u[0][0].range)]:[2,e.None];case 2:return d=c.sent(),[2,new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.distance=function(e,t){if(!d||!l.equals(s.getPosition()))return 0;if(17===t.kind)return 2<<20;var o=\"string\"==typeof t.label?t.label:t.label.name,r=d[o];if(n.isFalsyOrEmpty(r))return 2<<20;for(var a=n.binarySearch(r,i.Range.fromPositions(e),i.Range.compareRangesUsingStarts),c=a>=0?r[a]:r[Math.max(0,~a-1)],h=u.length,p=0,g=u[0];p<g.length;p++){var f=g[p];if(!i.Range.containsRange(f.range,c))break;h-=1}return h},t}(e))]}}))}))},\ne.None=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.distance=function(){return 0},t}(e)),e}();t.WordDistance=s})),define(n[203],i([0,1]),(function(e,t){\"use strict\";function n(e){return Array.isArray(e)}function i(e){return\"string\"==typeof e}function o(e){return!e}function r(e,t){return e.ignoreCase&&t?t.toLowerCase():t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFuzzyActionArr=n,t.isFuzzyAction=function(e){return!n(e)},t.isString=i,t.isIAction=function(e){return!i(e)},t.empty=o,t.fixCase=r,t.sanitize=function(e){return e.replace(/[&<>'\"_]/g,\"-\")},t.log=function(e,t){console.log(e.languageId+\": \"+t)},t.createError=function(e,t){return new Error(e.languageId+\": \"+t)},t.substituteMatches=function(e,t,n,i,s){var a=null;return t.replace(/\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g,(function(t,l,u,d,c,h,p,g,f){return o(u)?o(d)?!o(c)&&c<i.length?r(e,i[c]):!o(p)&&e&&\"string\"==typeof e[p]?e[p]:(null===a&&(a=s.split(\".\")).unshift(s),\n!o(h)&&h<a.length?r(e,a[h]):\"\"):r(e,n):\"$\"}))},t.findRules=function(e,t){for(var n=t;n&&n.length>0;){var i=e.tokenizer[n];if(i)return i;var o=n.lastIndexOf(\".\");n=o<0?null:n.substr(0,o)}return null},t.stateExists=function(e,t){for(var n=t;n&&n.length>0;){if(e.stateNames[n])return!0;var i=n.lastIndexOf(\".\");n=i<0?null:n.substr(0,i)}return!1}})),define(n[393],i([0,1,203]),(function(e,t,n){\"use strict\";function i(e,t){return\"boolean\"==typeof e?e:t}function o(e,t){return\"string\"==typeof e?e:t}function r(e,t){void 0===t&&(t=!1),t&&(e=e.map((function(e){return e.toLowerCase()})));var n=function(e){for(var t={},n=0,i=e;n<i.length;n++){t[i[n]]=!0}return t}(e);return t?function(e){return void 0!==n[e.toLowerCase()]&&n.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==n[e]&&n.hasOwnProperty(e)}}function s(e,t){for(var i=0;t.indexOf(\"@\")>=0&&i<5;)i++,t=t.replace(/@(\\w+)/g,(function(i,o){var r=\"\";if(\"string\"==typeof e[o])r=e[o];else{\nif(!(e[o]&&e[o]instanceof RegExp))throw void 0===e[o]?n.createError(e,\"language definition does not contain attribute '\"+o+\"', used at: \"+t):n.createError(e,\"attribute reference '\"+o+\"' must be a string, used at: \"+t);r=e[o].source}return n.empty(r)?\"\":\"(?:\"+r+\")\"}));return new RegExp(t,e.ignoreCase?\"i\":\"\")}function a(e,t,i,o){var a=-1,l=i,u=i.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);u&&(u[3]&&(a=parseInt(u[3]),u[2]&&(a+=100)),l=u[4]);var d,c=\"~\",h=l;if(l&&0!==l.length?/^\\w*$/.test(h)?c=\"==\":(u=l.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(c=u[1],h=u[2]):(c=\"!=\",h=\"\"),\"~\"!==c&&\"!~\"!==c||!/^(\\w|\\|)*$/.test(h))if(\"@\"===c||\"!@\"===c){var p=e[h];if(!p)throw n.createError(e,\"the @ match target '\"+h+\"' is not defined, in rule: \"+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;for(var n=0,i=t;n<i.length;n++){if(!e(i[n]))return!1}return!0}((function(e){return\"string\"==typeof e}),p))throw n.createError(e,\"the @ match target '\"+h+\"' must be an array of strings, in rule: \"+t);var g=r(p,e.ignoreCase);d=function(e){\nreturn\"@\"===c?g(e):!g(e)}}else if(\"~\"===c||\"!~\"===c)if(h.indexOf(\"$\")<0){var f=s(e,\"^\"+h+\"$\");d=function(e){return\"~\"===c?f.test(e):!f.test(e)}}else d=function(t,i,o,r){return s(e,\"^\"+n.substituteMatches(e,h,i,o,r)+\"$\").test(t)};else if(h.indexOf(\"$\")<0){var m=n.fixCase(e,h);d=function(e){return\"==\"===c?e===m:e!==m}}else{var v=n.fixCase(e,h);d=function(t,i,o,r,s){var a=n.substituteMatches(e,v,i,o,r);return\"==\"===c?t===a:t!==a}}else{var _=r(h.split(\"|\"),e.ignoreCase);d=function(e){return\"~\"===c?_(e):!_(e)}}return-1===a?{name:i,value:o,test:function(e,t,n,i){return d(e,e,t,n,i)}}:{name:i,value:o,test:function(e,t,n,i){var o=function(e,t,n,i){if(i<0)return e;if(i<t.length)return t[i];if(i>=100){i-=100;var o=n.split(\".\");if(o.unshift(n),i<o.length)return o[i]}return null}(e,t,n,a);return d(o||\"\",e,t,n,i)}}}Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e){this.regex=new RegExp(\"\"),this.action={token:\"\"},this.matchOnlyAtLineStart=!1,this.name=\"\",this.name=e}\nreturn e.prototype.setRegex=function(e,t){var i;if(\"string\"==typeof t)i=t;else{if(!(t instanceof RegExp))throw n.createError(e,\"rules must start with a match string or regular expression: \"+this.name);i=t.source}this.matchOnlyAtLineStart=i.length>0&&\"^\"===i[0],this.name=this.name+\": \"+i,this.regex=s(e,\"^(?:\"+(this.matchOnlyAtLineStart?i.substr(1):i)+\")\")},e.prototype.setAction=function(e,t){this.action=function e(t,i,o){if(o){if(\"string\"==typeof o)return o;if(o.token||\"\"===o.token){if(\"string\"!=typeof o.token)throw n.createError(t,\"a 'token' attribute must be of type string, in rule: \"+i);var r={token:o.token};if(o.token.indexOf(\"$\")>=0&&(r.tokenSubst=!0),\"string\"==typeof o.bracket)if(\"@open\"===o.bracket)r.bracket=1;else{if(\"@close\"!==o.bracket)throw n.createError(t,\"a 'bracket' attribute must be either '@open' or '@close', in rule: \"+i);r.bracket=-1}if(o.next){if(\"string\"!=typeof o.next)throw n.createError(t,\"the next state must be a string value in rule: \"+i);var s=o.next\n;if(!/^(@pop|@push|@popall)$/.test(s)&&(\"@\"===s[0]&&(s=s.substr(1)),s.indexOf(\"$\")<0&&!n.stateExists(t,n.substituteMatches(t,s,\"\",[],\"\"))))throw n.createError(t,\"the next state '\"+o.next+\"' is not defined in rule: \"+i);r.next=s}return\"number\"==typeof o.goBack&&(r.goBack=o.goBack),\"string\"==typeof o.switchTo&&(r.switchTo=o.switchTo),\"string\"==typeof o.log&&(r.log=o.log),\"string\"==typeof o.nextEmbedded&&(r.nextEmbedded=o.nextEmbedded,t.usesEmbedded=!0),r}if(Array.isArray(o)){for(var l=[],u=0,d=o.length;u<d;u++)l[u]=e(t,i,o[u]);return{group:l}}if(o.cases){var c=[];for(var h in o.cases)if(o.cases.hasOwnProperty(h)){var p=e(t,i,o.cases[h]);\"@default\"===h||\"@\"===h||\"\"===h?c.push({test:void 0,value:p,name:h}):\"@eos\"===h?c.push({test:function(e,t,n,i){return i},value:p,name:h}):c.push(a(t,i,h,p))}var g=t.defaultToken;return{test:function(e,t,n,i){for(var o=0,r=c;o<r.length;o++){var s=r[o];if(!s.test||s.test(e,t,n,i))return s.value}return g}}}\nthrow n.createError(t,\"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \"+i)}return{token:\"\"}}(e,this.name,t)},e}();t.compile=function(e,t){if(!t||\"object\"!=typeof t)throw new Error(\"Monarch: expecting a language definition object\");var r={};r.languageId=e,r.noThrow=!1,r.maxStack=100,r.start=\"string\"==typeof t.start?t.start:null,r.ignoreCase=i(t.ignoreCase,!1),r.tokenPostfix=o(t.tokenPostfix,\".\"+r.languageId),r.defaultToken=o(t.defaultToken,\"source\"),r.usesEmbedded=!1;var s=t;function a(e,o,u){for(var d=0,c=u;d<c.length;d++){var h=c[d],p=h.include;if(p){if(\"string\"!=typeof p)throw n.createError(r,\"an 'include' attribute must be a string at: \"+e);if(\"@\"===p[0]&&(p=p.substr(1)),!t.tokenizer[p])throw n.createError(r,\"include target '\"+p+\"' is not defined at: \"+e);a(e+\".\"+p,o,t.tokenizer[p])}else{var g=new l(e);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(g.setRegex(s,h[0]),h.length>=3)if(\"string\"==typeof h[1])g.setAction(s,{token:h[1],next:h[2]\n});else{if(\"object\"!=typeof h[1])throw n.createError(r,\"a next state as the last element of a rule can only be given if the action is either an object or a string, at: \"+e);var f=h[1];f.next=h[2],g.setAction(s,f)}else g.setAction(s,h[1]);else{if(!h.regex)throw n.createError(r,\"a rule must either be an array, or an object with a 'regex' or 'include' field at: \"+e);h.name&&\"string\"==typeof h.name&&(g.name=h.name),h.matchOnlyAtStart&&(g.matchOnlyAtLineStart=i(h.matchOnlyAtLineStart,!1)),g.setRegex(s,h.regex),g.setAction(s,h.action)}o.push(g)}}}if(s.languageId=e,s.ignoreCase=r.ignoreCase,s.noThrow=r.noThrow,s.usesEmbedded=r.usesEmbedded,s.stateNames=t.tokenizer,s.defaultToken=r.defaultToken,!t.tokenizer||\"object\"!=typeof t.tokenizer)throw n.createError(r,\"a language definition must define the 'tokenizer' attribute as an object\");for(var u in r.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(u)){r.start||(r.start=u);var d=t.tokenizer[u];r.tokenizer[u]=new Array,a(\"tokenizer.\"+u,r.tokenizer[u],d)}\nif(r.usesEmbedded=s.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw n.createError(r,\"the 'brackets' attribute must be defined as an array\")}else t.brackets=[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}];for(var c=[],h=0,p=t.brackets;h<p.length;h++){var g=p[h];if(g&&Array.isArray(g)&&3===g.length&&(g={token:g[2],open:g[0],close:g[1]}),g.open===g.close)throw n.createError(r,\"open and close brackets in a 'brackets' attribute must be different: \"+g.open+\"\\n hint: use the 'bracket' attribute if matching on equal brackets is required.\");if(\"string\"!=typeof g.open||\"string\"!=typeof g.token||\"string\"!=typeof g.close)throw n.createError(r,\"every element in the 'brackets' array must be a '{open,close,token}' object or array\");c.push({token:g.token+r.tokenPostfix,open:n.fixCase(r,g.open),close:n.fixCase(r,g.close)})}return r.brackets=c,r.noThrow=!0,r}})),\ndefine(n[394],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/actionbar/actionbar\",t)})),define(n[70],i([0,1,16,394,2,55,6,21,57,56,4,98,24,259]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(e){function t(t,n,i){var o=e.call(this)||this;return o.options=i,o._context=t||o,o._action=n,n instanceof s.Action&&o._register(n.onDidChange((function(e){o.element&&o.handleActionChangeEvent(e)}))),o}return r(t,e),t.prototype.handleActionChangeEvent=function(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()},Object.defineProperty(t.prototype,\"actionRunner\",{get:function(){return this._actionRunner||(this._actionRunner=this._register(new s.ActionRunner)),this._actionRunner},set:function(e){this._actionRunner=e},enumerable:!0,configurable:!0}),\nt.prototype.getAction=function(){return this._action},t.prototype.isEnabled=function(){return this._action.enabled},t.prototype.setActionContext=function(e){this._context=e},t.prototype.render=function(e){var t=this,i=this.element=e;this._register(u.Gesture.addTarget(e));var o=this.options&&this.options.draggable;o&&(e.draggable=!0,p.isFirefox&&this._register(a.addDisposableListener(e,a.EventType.DRAG_START,(function(e){var n;return null===(n=e.dataTransfer)||void 0===n?void 0:n.setData(h.DataTransfers.TEXT,t._action.label)})))),this._register(a.addDisposableListener(i,u.EventType.Tap,(function(e){return t.onClick(e)}))),this._register(a.addDisposableListener(i,a.EventType.MOUSE_DOWN,(function(e){o||a.EventHelper.stop(e,!0),t._action.enabled&&0===e.button&&a.addClass(i,\"active\")}))),this._register(a.addDisposableListener(i,a.EventType.CLICK,(function(e){a.EventHelper.stop(e,!0),t.options&&t.options.isMenu?t.onClick(e):n.setImmediate((function(){return t.onClick(e)}))}))),\nthis._register(a.addDisposableListener(i,a.EventType.DBLCLICK,(function(e){a.EventHelper.stop(e,!0)}))),[a.EventType.MOUSE_UP,a.EventType.MOUSE_OUT].forEach((function(e){t._register(a.addDisposableListener(i,e,(function(e){a.EventHelper.stop(e),a.removeClass(i,\"active\")})))}))},t.prototype.onClick=function(e){var t;a.EventHelper.stop(e,!0),l.isUndefinedOrNull(this._context)?t=e:(t=this._context,l.isObject(t)&&(t.event=e)),this.actionRunner.run(this._action,t)},t.prototype.focus=function(){this.element&&(this.element.focus(),a.addClass(this.element,\"focused\"))},t.prototype.blur=function(){this.element&&(this.element.blur(),a.removeClass(this.element,\"focused\"))},t.prototype.updateEnabled=function(){},t.prototype.updateLabel=function(){},t.prototype.updateTooltip=function(){},t.prototype.updateClass=function(){},t.prototype.updateChecked=function(){},t.prototype.dispose=function(){this.element&&(a.removeNode(this.element),this.element=void 0),e.prototype.dispose.call(this)},t}(o.Disposable)\n;t.BaseActionViewItem=g;var f=function(e){function t(n){var i=e.call(this,t.ID,n,n?\"separator text\":\"separator\")||this;return i.checked=!1,i.enabled=!1,i}return r(t,e),t.ID=\"vs.actions.separator\",t}(s.Action);t.Separator=f;var m=function(e){function t(t,n,i){void 0===i&&(i={});var o=e.call(this,t,n,i)||this;return o.options=i,o.options.icon=void 0!==i.icon&&i.icon,o.options.label=void 0===i.label||i.label,o.cssClass=\"\",o}return r(t,e),t.prototype.render=function(t){e.prototype.render.call(this,t),this.element&&(this.label=a.append(this.element,a.$(\"a.action-label\"))),this.label&&(this._action.id===f.ID?this.label.setAttribute(\"role\",\"presentation\"):this.options.isMenu?this.label.setAttribute(\"role\",\"menuitem\"):this.label.setAttribute(\"role\",\"button\")),this.options.label&&this.options.keybinding&&this.element&&(a.append(this.element,a.$(\"span.keybinding\")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()},\nt.prototype.focus=function(){e.prototype.focus.call(this),this.label&&this.label.focus()},t.prototype.updateLabel=function(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)},t.prototype.updateTooltip=function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=i.localize(0,null,e,this.options.keybinding))),e&&this.label&&(this.label.title=e)},t.prototype.updateClass=function(){this.cssClass&&this.label&&a.removeClasses(this.label,this.cssClass),this.options.icon?(this.cssClass=this.getAction().class,this.label&&(a.addClass(this.label,\"codicon\"),this.cssClass&&a.addClasses(this.label,this.cssClass)),this.updateEnabled()):this.label&&a.removeClass(this.label,\"codicon\")},t.prototype.updateEnabled=function(){this.getAction().enabled?(this.label&&(this.label.removeAttribute(\"aria-disabled\"),a.removeClass(this.label,\"disabled\"),this.label.tabIndex=0),\nthis.element&&a.removeClass(this.element,\"disabled\")):(this.label&&(this.label.setAttribute(\"aria-disabled\",\"true\"),a.addClass(this.label,\"disabled\"),a.removeTabIndexAndUpdateFocus(this.label)),this.element&&a.addClass(this.element,\"disabled\"))},t.prototype.updateChecked=function(){this.label&&(this.getAction().checked?a.addClass(this.label,\"checked\"):a.removeClass(this.label,\"checked\"))},t}(g);t.ActionViewItem=m;var v={orientation:0,context:null,triggerKeys:{keys:[3,10],keyDown:!1}},_=function(e){function t(t,n){void 0===n&&(n=v);var i,o,r=e.call(this)||this;switch(r._onDidBlur=r._register(new c.Emitter),r.onDidBlur=r._onDidBlur.event,r._onDidCancel=r._register(new c.Emitter),r.onDidCancel=r._onDidCancel.event,r._onDidRun=r._register(new c.Emitter),r.onDidRun=r._onDidRun.event,r._onDidBeforeRun=r._register(new c.Emitter),r.onDidBeforeRun=r._onDidBeforeRun.event,r.options=n,r._context=n.context,r.options.triggerKeys||(r.options.triggerKeys=v.triggerKeys),\nr.options.actionRunner?r._actionRunner=r.options.actionRunner:(r._actionRunner=new s.ActionRunner,r._register(r._actionRunner)),r._register(r._actionRunner.onDidRun((function(e){return r._onDidRun.fire(e)}))),r._register(r._actionRunner.onDidBeforeRun((function(e){return r._onDidBeforeRun.fire(e)}))),r.viewItems=[],r.focusedItem=void 0,r.domNode=document.createElement(\"div\"),r.domNode.className=\"monaco-action-bar\",!1!==n.animated&&a.addClass(r.domNode,\"animated\"),r.options.orientation){case 0:i=15,o=17;break;case 1:i=17,o=15,r.domNode.className+=\" reverse\";break;case 2:i=16,o=18,r.domNode.className+=\" vertical\";break;case 3:i=18,o=16,r.domNode.className+=\" vertical reverse\"}return r._register(a.addDisposableListener(r.domNode,a.EventType.KEY_DOWN,(function(e){var t=new d.StandardKeyboardEvent(e),n=!0;t.equals(i)?r.focusPrevious():t.equals(o)?r.focusNext():t.equals(9)?r.cancel():r.isTriggerKeyEvent(t)?r.options.triggerKeys&&r.options.triggerKeys.keyDown&&r.doTrigger(t):n=!1,n&&(t.preventDefault(),\nt.stopPropagation())}))),r._register(a.addDisposableListener(r.domNode,a.EventType.KEY_UP,(function(e){var t=new d.StandardKeyboardEvent(e);r.isTriggerKeyEvent(t)?(r.options.triggerKeys&&!r.options.triggerKeys.keyDown&&r.doTrigger(t),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&r.updateFocusedItem()}))),r.focusTracker=r._register(a.trackFocus(r.domNode)),r._register(r.focusTracker.onDidBlur((function(){document.activeElement!==r.domNode&&a.isAncestor(document.activeElement,r.domNode)||(r._onDidBlur.fire(),r.focusedItem=void 0)}))),r._register(r.focusTracker.onDidFocus((function(){return r.updateFocusedItem()}))),r.actionsList=document.createElement(\"ul\"),r.actionsList.className=\"actions-container\",r.actionsList.setAttribute(\"role\",\"toolbar\"),r.options.ariaLabel&&r.actionsList.setAttribute(\"aria-label\",r.options.ariaLabel),r.domNode.appendChild(r.actionsList),t.appendChild(r.domNode),r}return r(t,e),t.prototype.isTriggerKeyEvent=function(e){var t=!1\n;return this.options.triggerKeys&&this.options.triggerKeys.keys.forEach((function(n){t=t||e.equals(n)})),t},t.prototype.updateFocusedItem=function(){for(var e=0;e<this.actionsList.children.length;e++){var t=this.actionsList.children[e];if(a.isAncestor(document.activeElement,t)){this.focusedItem=e;break}}},Object.defineProperty(t.prototype,\"context\",{get:function(){return this._context},set:function(e){this._context=e,this.viewItems.forEach((function(t){return t.setActionContext(e)}))},enumerable:!0,configurable:!0}),t.prototype.getContainer=function(){return this.domNode},t.prototype.push=function(e,t){var n=this;void 0===t&&(t={});var i=Array.isArray(e)?e:[e],o=l.isNumber(t.index)?t.index:null;i.forEach((function(e){var i,r=document.createElement(\"li\");r.className=\"action-item\",r.setAttribute(\"role\",\"presentation\"),n._register(a.addDisposableListener(r,a.EventType.CONTEXT_MENU,(function(e){e.preventDefault(),e.stopPropagation()}))),n.options.actionViewItemProvider&&(i=n.options.actionViewItemProvider(e)),\ni||(i=new m(n.context,e,t)),i.actionRunner=n._actionRunner,i.setActionContext(n.context),i.render(r),null===o||o<0||o>=n.actionsList.children.length?(n.actionsList.appendChild(r),n.viewItems.push(i)):(n.actionsList.insertBefore(r,n.actionsList.children[o]),n.viewItems.splice(o,0,i),o++)}))},t.prototype.clear=function(){this.viewItems=o.dispose(this.viewItems),a.clearNode(this.actionsList)},t.prototype.isEmpty=function(){return 0===this.viewItems.length},t.prototype.focus=function(e){var t=!1,n=void 0;void 0===e?t=!0:\"number\"==typeof e?n=e:\"boolean\"==typeof e&&(t=e),t&&void 0===this.focusedItem?(this.focusedItem=this.viewItems.length-1,this.focusNext()):(void 0!==n&&(this.focusedItem=n),this.updateFocus())},t.prototype.focusNext=function(){void 0===this.focusedItem&&(this.focusedItem=this.viewItems.length-1);var e,t=this.focusedItem;do{this.focusedItem=(this.focusedItem+1)%this.viewItems.length,e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled())\n;this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus()},t.prototype.focusPrevious=function(){void 0===this.focusedItem&&(this.focusedItem=0);var e,t=this.focusedItem;do{this.focusedItem=this.focusedItem-1,this.focusedItem<0&&(this.focusedItem=this.viewItems.length-1),e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled());this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus(!0)},t.prototype.updateFocus=function(e,t){void 0===this.focusedItem&&this.actionsList.focus({preventScroll:t});for(var n=0;n<this.viewItems.length;n++){var i=this.viewItems[n];n===this.focusedItem?l.isFunction(i.isEnabled)&&(i.isEnabled()&&l.isFunction(i.focus)?i.focus(e):this.actionsList.focus({preventScroll:t})):l.isFunction(i.blur)&&i.blur()}},t.prototype.doTrigger=function(e){if(void 0!==this.focusedItem){var t=this.viewItems[this.focusedItem];if(t instanceof g){var n=null===t._context||void 0===t._context?e:t._context;this.run(t._action,n)}}},\nt.prototype.cancel=function(){document.activeElement instanceof HTMLElement&&document.activeElement.blur(),this._onDidCancel.fire()},t.prototype.run=function(e,t){return this._actionRunner.run(e,t)},t.prototype.dispose=function(){o.dispose(this.viewItems),this.viewItems=[],a.removeNode(this.getContainer()),e.prototype.dispose.call(this)},t}(o.Disposable);t.ActionBar=_})),define(n[395],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/aria/aria\",t)})),define(n[50],i([0,1,395,16,6,260]),(function(e,t,n,i,o){\"use strict\";var r,s,a;function l(e,t){c(s,e,t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setARIAContainer=function(e){(r=document.createElement(\"div\")).className=\"monaco-aria-container\",(s=document.createElement(\"div\")).className=\"monaco-alert\",s.setAttribute(\"role\",\"alert\"),s.setAttribute(\"aria-atomic\",\"true\"),r.appendChild(s),(a=document.createElement(\"div\")).className=\"monaco-status\",a.setAttribute(\"role\",\"status\"),a.setAttribute(\"aria-atomic\",\"true\"),r.appendChild(a),e.appendChild(r)\n},t.alert=l,t.status=function(e,t){i.isMacintosh?l(e,t):c(a,e,t)};var u=0,d=void 0;function c(e,t,i){if(r){if(!i)switch(d===t?u++:(d=t,u=0),u){case 0:break;case 1:t=n.localize(0,null,t);break;default:t=n.localize(1,null,t,u)}o.clearNode(e),e.textContent=t,e.style.visibility=\"hidden\",e.style.visibility=\"visible\"}}})),define(n[396],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/findInput\",t)})),define(n[397],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/findInputCheckboxes\",t)})),define(n[204],i([0,1,138,397]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=i.localize(0,null),s=i.localize(1,null),a=i.localize(2,null),l=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-case-sensitive\",title:o+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.CaseSensitiveCheckbox=l\n;var u=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-whole-word\",title:s+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.WholeWordsCheckbox=u;var d=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-regex\",title:a+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.RegexCheckbox=d})),define(n[398],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/replaceInput\",t)})),define(n[399],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/inputbox/inputBox\",t)})),define(n[152],i([0,1,399,24,6,134,50,70,4,47,27,31,242,53,52,269]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=o.$,v={\ninputBackground:c.Color.fromHex(\"#3C3C3C\"),inputForeground:c.Color.fromHex(\"#CCCCCC\"),inputValidationInfoBorder:c.Color.fromHex(\"#55AAFF\"),inputValidationInfoBackground:c.Color.fromHex(\"#063B49\"),inputValidationWarningBorder:c.Color.fromHex(\"#B89500\"),inputValidationWarningBackground:c.Color.fromHex(\"#352A05\"),inputValidationErrorBorder:c.Color.fromHex(\"#BE1100\"),inputValidationErrorBackground:c.Color.fromHex(\"#5A1D1D\")},_=function(e){function t(t,n,r){var s=e.call(this)||this;s.state=\"idle\",s.maxHeight=Number.POSITIVE_INFINITY,s._onDidChange=s._register(new u.Emitter),s.onDidChange=s._onDidChange.event,s._onDidHeightChange=s._register(new u.Emitter),s.onDidHeightChange=s._onDidHeightChange.event,s.contextViewProvider=n,s.options=r||Object.create(null),h.mixin(s.options,v,!1),s.message=null,s.placeholder=s.options.placeholder||\"\",s.ariaLabel=s.options.ariaLabel||\"\",s.inputBackground=s.options.inputBackground,s.inputForeground=s.options.inputForeground,s.inputBorder=s.options.inputBorder,\ns.inputValidationInfoBorder=s.options.inputValidationInfoBorder,s.inputValidationInfoBackground=s.options.inputValidationInfoBackground,s.inputValidationInfoForeground=s.options.inputValidationInfoForeground,s.inputValidationWarningBorder=s.options.inputValidationWarningBorder,s.inputValidationWarningBackground=s.options.inputValidationWarningBackground,s.inputValidationWarningForeground=s.options.inputValidationWarningForeground,s.inputValidationErrorBorder=s.options.inputValidationErrorBorder,s.inputValidationErrorBackground=s.options.inputValidationErrorBackground,s.inputValidationErrorForeground=s.options.inputValidationErrorForeground,s.options.validationOptions&&(s.validation=s.options.validationOptions.validation),s.element=o.append(t,m(\".monaco-inputbox.idle\"));var a=s.options.flexibleHeight?\"textarea\":\"input\",d=o.append(s.element,m(\".wrapper\"));if(s.input=o.append(d,m(a+\".input.empty\")),s.input.setAttribute(\"autocorrect\",\"off\"),s.input.setAttribute(\"autocapitalize\",\"off\"),\ns.input.setAttribute(\"spellcheck\",\"false\"),s.onfocus(s.input,(function(){return o.addClass(s.element,\"synthetic-focus\")})),s.onblur(s.input,(function(){return o.removeClass(s.element,\"synthetic-focus\")})),s.options.flexibleHeight){s.maxHeight=\"number\"==typeof s.options.flexibleMaxHeight?s.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,s.mirror=o.append(d,m(\"div.mirror\")),s.mirror.innerHTML=\"&#160;\",s.scrollableElement=new g.ScrollableElement(s.element,{vertical:1}),s.options.flexibleWidth&&(s.input.setAttribute(\"wrap\",\"off\"),s.mirror.style.whiteSpace=\"pre\",s.mirror.style.wordWrap=\"initial\"),o.append(t,s.scrollableElement.getDomNode()),s._register(s.scrollableElement),s._register(s.scrollableElement.onScroll((function(e){return s.input.scrollTop=e.scrollTop})));var c=u.Event.filter(f.domEvent(document,\"selectionchange\"),(function(){var e=document.getSelection();return(null==e?void 0:e.anchorNode)===d}));s._register(c(s.updateScrollDimensions,s)),s._register(s.onDidHeightChange(s.updateScrollDimensions,s))\n}else s.input.type=s.options.type||\"text\",s.input.setAttribute(\"wrap\",\"off\");return s.ariaLabel&&s.input.setAttribute(\"aria-label\",s.ariaLabel),s.placeholder&&s.setPlaceHolder(s.placeholder),s.oninput(s.input,(function(){return s.onValueChange()})),s.onblur(s.input,(function(){return s.onBlur()})),s.onfocus(s.input,(function(){return s.onFocus()})),s.placeholder&&i.isIE&&s.onclick(s.input,(function(e){o.EventHelper.stop(e,!0),s.input.focus()})),s.ignoreGesture(s.input),setTimeout((function(){return s.updateMirror()}),0),s.options.actions&&(s.actionbar=s._register(new l.ActionBar(s.element)),s.actionbar.push(s.options.actions,{icon:!0,label:!1})),s.applyStyles(),s}return r(t,e),t.prototype.onBlur=function(){this._hideMessage()},t.prototype.onFocus=function(){this._showMessage()},t.prototype.setPlaceHolder=function(e){this.placeholder=e,this.input.setAttribute(\"placeholder\",e),this.input.title=e},t.prototype.setAriaLabel=function(e){this.ariaLabel=e,\ne?this.input.setAttribute(\"aria-label\",this.ariaLabel):this.input.removeAttribute(\"aria-label\")},Object.defineProperty(t.prototype,\"inputElement\",{get:function(){return this.input},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"value\",{get:function(){return this.input.value},set:function(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return\"number\"==typeof this.cachedHeight?this.cachedHeight:o.getTotalHeight(this.element)},enumerable:!0,configurable:!0}),t.prototype.focus=function(){this.input.focus()},t.prototype.blur=function(){this.input.blur()},t.prototype.hasFocus=function(){return document.activeElement===this.input},t.prototype.select=function(e){void 0===e&&(e=null),this.input.select(),e&&this.input.setSelectionRange(e.start,e.end)},t.prototype.enable=function(){this.input.removeAttribute(\"disabled\")},t.prototype.disable=function(){this.blur(),this.input.disabled=!0,\nthis._hideMessage()},Object.defineProperty(t.prototype,\"width\",{get:function(){return o.getTotalWidth(this.input)},set:function(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){var t=0;if(this.mirror)t=(parseFloat(this.mirror.style.paddingLeft||\"\")||0)+(parseFloat(this.mirror.style.paddingRight||\"\")||0);this.input.style.width=e-t+\"px\"}else this.input.style.width=e+\"px\";this.mirror&&(this.mirror.style.width=e+\"px\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"paddingRight\",{set:function(e){this.options.flexibleHeight&&this.options.flexibleWidth?this.input.style.width=\"calc(100% - \"+e+\"px)\":this.input.style.paddingRight=e+\"px\",this.mirror&&(this.mirror.style.paddingRight=e+\"px\")},enumerable:!0,configurable:!0}),t.prototype.updateScrollDimensions=function(){if(\"number\"==typeof this.cachedContentHeight&&\"number\"==typeof this.cachedHeight&&this.scrollableElement){var e=this.cachedContentHeight,t=this.cachedHeight,n=this.input.scrollTop\n;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:n})}},t.prototype.showMessage=function(e,t){this.message=e,o.removeClass(this.element,\"idle\"),o.removeClass(this.element,\"info\"),o.removeClass(this.element,\"warning\"),o.removeClass(this.element,\"error\"),o.addClass(this.element,this.classForType(e.type));var i,r=this.stylesForType(this.message.type);this.element.style.border=r.border?\"1px solid \"+r.border:\"\",i=3===e.type?n.localize(0,null,e.content):2===e.type?n.localize(1,null,e.content):n.localize(2,null,e.content),a.alert(i),(this.hasFocus()||t)&&this._showMessage()},t.prototype.hideMessage=function(){this.message=null,o.removeClass(this.element,\"info\"),o.removeClass(this.element,\"warning\"),o.removeClass(this.element,\"error\"),o.addClass(this.element,\"idle\"),this._hideMessage(),this.applyStyles()},t.prototype.validate=function(){var e=null\n;return this.validation&&((e=this.validation(this.value))?(this.inputElement.setAttribute(\"aria-invalid\",\"true\"),this.showMessage(e)):this.inputElement.hasAttribute(\"aria-invalid\")&&(this.inputElement.removeAttribute(\"aria-invalid\"),this.hideMessage())),!e},t.prototype.stylesForType=function(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}},t.prototype.classForType=function(e){switch(e){case 1:return\"info\";case 2:return\"warning\";default:return\"error\"}},t.prototype._showMessage=function(){var e=this;if(this.contextViewProvider&&this.message){var t,n=function(){\nreturn t.style.width=o.getTotalWidth(e.element)+\"px\"};this.contextViewProvider.showContextView({getAnchor:function(){return e.element},anchorAlignment:1,render:function(i){if(!e.message)return null;t=o.append(i,m(\".monaco-inputbox-container\")),n();var r={inline:!0,className:\"monaco-inputbox-message\"},a=e.message.formatContent?s.renderFormattedText(e.message.content,r):s.renderText(e.message.content,r);o.addClass(a,e.classForType(e.message.type));var l=e.stylesForType(e.message.type);return a.style.backgroundColor=l.background?l.background.toString():\"\",a.style.color=l.foreground?l.foreground.toString():\"\",a.style.border=l.border?\"1px solid \"+l.border:\"\",o.append(t,a),null},onHide:function(){e.state=\"closed\"},layout:n}),this.state=\"open\"}},t.prototype._hideMessage=function(){this.contextViewProvider&&(\"open\"===this.state&&this.contextViewProvider.hideContextView(),this.state=\"idle\")},t.prototype.onValueChange=function(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),\no.toggleClass(this.input,\"empty\",!this.value),\"open\"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()},t.prototype.updateMirror=function(){if(this.mirror){var e=this.value,t=10===e.charCodeAt(e.length-1)?\" \":\"\";e+t?this.mirror.textContent=e+t:this.mirror.innerHTML=\"&#160;\",this.layout()}},t.prototype.style=function(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,\nthis.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){var e=this.inputBackground?this.inputBackground.toString():\"\",t=this.inputForeground?this.inputForeground.toString():\"\",n=this.inputBorder?this.inputBorder.toString():\"\";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor=e,this.input.style.color=t,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.borderColor=n},t.prototype.layout=function(){if(this.mirror){var e=this.cachedContentHeight;this.cachedContentHeight=o.getTotalHeight(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+\"px\",this._onDidHeightChange.fire(this.cachedContentHeight))}},t.prototype.insertAtCursor=function(e){var t=this.inputElement,n=t.selectionStart,i=t.selectionEnd,o=t.value\n;null!==n&&null!==i&&(this.value=o.substr(0,n)+e+o.substr(i),t.setSelectionRange(n+1,n+1),this.layout())},t.prototype.dispose=function(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),e.prototype.dispose.call(this)},t}(d.Widget);t.InputBox=_;var y=function(e){function t(t,n,i){var o=e.call(this,t,n,i)||this;return o.history=new p.HistoryNavigator(i.history,100),o}return r(t,e),t.prototype.addToHistory=function(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)},t.prototype.showNextValue=function(){this.history.has(this.value)||this.addToHistory();var e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,a.status(this.value))},t.prototype.showPreviousValue=function(){this.history.has(this.value)||this.addToHistory();var e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,a.status(this.value))},t.prototype.getCurrentValue=function(){var e=this.history.current()\n;return e||(e=this.history.last(),this.history.next()),e},t.prototype.getPreviousValue=function(){return this.history.previous()||this.history.first()},t.prototype.getNextValue=function(){return this.history.next()||this.history.last()},t}(_);t.HistoryInputBox=y})),define(n[400],i([0,1,396,6,152,47,4,204,184]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=n.localize(0,null),d=function(e){function t(t,n,r,s){var d=e.call(this)||this;d._showOptionButtons=r,d.fixFocusOnOptionClickEnabled=!0,d._onDidOptionChange=d._register(new a.Emitter),d.onDidOptionChange=d._onDidOptionChange.event,d._onKeyDown=d._register(new a.Emitter),d.onKeyDown=d._onKeyDown.event,d._onMouseDown=d._register(new a.Emitter),d.onMouseDown=d._onMouseDown.event,d._onInput=d._register(new a.Emitter),d._onKeyUp=d._register(new a.Emitter),d._onCaseSensitiveKeyDown=d._register(new a.Emitter),d.onCaseSensitiveKeyDown=d._onCaseSensitiveKeyDown.event,d._onRegexKeyDown=d._register(new a.Emitter),\nd.onRegexKeyDown=d._onRegexKeyDown.event,d._lastHighlightFindOptions=0,d.contextViewProvider=n,d.placeholder=s.placeholder||\"\",d.validation=s.validation,d.label=s.label||u,d.inputActiveOptionBorder=s.inputActiveOptionBorder,d.inputActiveOptionBackground=s.inputActiveOptionBackground,d.inputBackground=s.inputBackground,d.inputForeground=s.inputForeground,d.inputBorder=s.inputBorder,d.inputValidationInfoBorder=s.inputValidationInfoBorder,d.inputValidationInfoBackground=s.inputValidationInfoBackground,d.inputValidationInfoForeground=s.inputValidationInfoForeground,d.inputValidationWarningBorder=s.inputValidationWarningBorder,d.inputValidationWarningBackground=s.inputValidationWarningBackground,d.inputValidationWarningForeground=s.inputValidationWarningForeground,d.inputValidationErrorBorder=s.inputValidationErrorBorder,d.inputValidationErrorBackground=s.inputValidationErrorBackground,d.inputValidationErrorForeground=s.inputValidationErrorForeground\n;var c=s.appendCaseSensitiveLabel||\"\",h=s.appendWholeWordsLabel||\"\",p=s.appendRegexLabel||\"\",g=s.history||[],f=!!s.flexibleHeight,m=!!s.flexibleWidth,v=s.flexibleMaxHeight;d.domNode=document.createElement(\"div\"),i.addClass(d.domNode,\"monaco-findInput\"),d.inputBox=d._register(new o.HistoryInputBox(d.domNode,d.contextViewProvider,{placeholder:d.placeholder||\"\",ariaLabel:d.label||\"\",validationOptions:{validation:d.validation},inputBackground:d.inputBackground,inputForeground:d.inputForeground,inputBorder:d.inputBorder,inputValidationInfoBackground:d.inputValidationInfoBackground,inputValidationInfoForeground:d.inputValidationInfoForeground,inputValidationInfoBorder:d.inputValidationInfoBorder,inputValidationWarningBackground:d.inputValidationWarningBackground,inputValidationWarningForeground:d.inputValidationWarningForeground,inputValidationWarningBorder:d.inputValidationWarningBorder,inputValidationErrorBackground:d.inputValidationErrorBackground,inputValidationErrorForeground:d.inputValidationErrorForeground,\ninputValidationErrorBorder:d.inputValidationErrorBorder,history:g,flexibleHeight:f,flexibleWidth:m,flexibleMaxHeight:v})),d.regex=d._register(new l.RegexCheckbox({appendTitle:p,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,inputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.regex.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d._register(d.regex.onKeyDown((function(e){d._onRegexKeyDown.fire(e)}))),d.wholeWords=d._register(new l.WholeWordsCheckbox({appendTitle:h,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,inputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.wholeWords.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d.caseSensitive=d._register(new l.CaseSensitiveCheckbox({appendTitle:c,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,\ninputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.caseSensitive.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d._register(d.caseSensitive.onKeyDown((function(e){d._onCaseSensitiveKeyDown.fire(e)}))),d._showOptionButtons&&(d.inputBox.paddingRight=d.caseSensitive.width()+d.wholeWords.width()+d.regex.width());var _=[d.caseSensitive.domNode,d.wholeWords.domNode,d.regex.domNode];d.onkeydown(d.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=_.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%_.length:e.equals(15)&&(n=0===t?_.length-1:t-1),e.equals(9)?_[t].blur():n>=0&&_[n].focus(),i.EventHelper.stop(e,!0)}}}));var y=document.createElement(\"div\");return y.className=\"controls\",y.style.display=d._showOptionButtons?\"block\":\"none\",y.appendChild(d.caseSensitive.domNode),y.appendChild(d.wholeWords.domNode),y.appendChild(d.regex.domNode),d.domNode.appendChild(y),\nt&&t.appendChild(d.domNode),d.onkeydown(d.inputBox.inputElement,(function(e){return d._onKeyDown.fire(e)})),d.onkeyup(d.inputBox.inputElement,(function(e){return d._onKeyUp.fire(e)})),d.oninput(d.inputBox.inputElement,(function(e){return d._onInput.fire()})),d.onmousedown(d.inputBox.inputElement,(function(e){return d._onMouseDown.fire(e)})),d}return r(t,e),t.prototype.enable=function(){i.removeClass(this.domNode,\"disabled\"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()},t.prototype.disable=function(){i.addClass(this.domNode,\"disabled\"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()},t.prototype.setFocusInputOnOptionClick=function(e){this.fixFocusOnOptionClickEnabled=e},t.prototype.setEnabled=function(e){e?this.enable():this.disable()},t.prototype.getValue=function(){return this.inputBox.value},t.prototype.setValue=function(e){this.inputBox.value!==e&&(this.inputBox.value=e)},t.prototype.style=function(e){\nthis.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionBackground:this.inputActiveOptionBackground}\n;this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}},t.prototype.select=function(){this.inputBox.select()},t.prototype.focus=function(){this.inputBox.focus()},t.prototype.getCaseSensitive=function(){return this.caseSensitive.checked},t.prototype.setCaseSensitive=function(e){\nthis.caseSensitive.checked=e},t.prototype.getWholeWords=function(){return this.wholeWords.checked},t.prototype.setWholeWords=function(e){this.wholeWords.checked=e},t.prototype.getRegex=function(){return this.regex.checked},t.prototype.setRegex=function(e){this.regex.checked=e,this.validate()},t.prototype.focusOnCaseSensitive=function(){this.caseSensitive.focus()},t.prototype.highlightFindOptions=function(){i.removeClass(this.domNode,\"highlight-\"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,i.addClass(this.domNode,\"highlight-\"+this._lastHighlightFindOptions)},t.prototype.validate=function(){this.inputBox.validate()},t.prototype.clearMessage=function(){this.inputBox.hideMessage()},t}(s.Widget);t.FindInput=d})),define(n[401],i([0,1,398,6,152,47,4,138,184]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=n.localize(0,null),d=n.localize(1,null),c=function(e){function t(t){return e.call(this,{\nactionClassName:\"codicon-preserve-case\",title:d+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(l.Checkbox);t.PreserveCaseCheckbox=c;var h=function(e){function t(t,n,r,s){var l=e.call(this)||this;l._showOptionButtons=r,l.fixFocusOnOptionClickEnabled=!0,l.cachedOptionsWidth=0,l._onDidOptionChange=l._register(new a.Emitter),l.onDidOptionChange=l._onDidOptionChange.event,l._onKeyDown=l._register(new a.Emitter),l.onKeyDown=l._onKeyDown.event,l._onMouseDown=l._register(new a.Emitter),l._onInput=l._register(new a.Emitter),l._onKeyUp=l._register(new a.Emitter),l._onPreserveCaseKeyDown=l._register(new a.Emitter),l.onPreserveCaseKeyDown=l._onPreserveCaseKeyDown.event,l.contextViewProvider=n,l.placeholder=s.placeholder||\"\",l.validation=s.validation,l.label=s.label||u,l.inputActiveOptionBorder=s.inputActiveOptionBorder,l.inputActiveOptionBackground=s.inputActiveOptionBackground,\nl.inputBackground=s.inputBackground,l.inputForeground=s.inputForeground,l.inputBorder=s.inputBorder,l.inputValidationInfoBorder=s.inputValidationInfoBorder,l.inputValidationInfoBackground=s.inputValidationInfoBackground,l.inputValidationInfoForeground=s.inputValidationInfoForeground,l.inputValidationWarningBorder=s.inputValidationWarningBorder,l.inputValidationWarningBackground=s.inputValidationWarningBackground,l.inputValidationWarningForeground=s.inputValidationWarningForeground,l.inputValidationErrorBorder=s.inputValidationErrorBorder,l.inputValidationErrorBackground=s.inputValidationErrorBackground,l.inputValidationErrorForeground=s.inputValidationErrorForeground;var d=s.history||[],h=!!s.flexibleHeight,p=!!s.flexibleWidth,g=s.flexibleMaxHeight;l.domNode=document.createElement(\"div\"),i.addClass(l.domNode,\"monaco-findInput\"),l.inputBox=l._register(new o.HistoryInputBox(l.domNode,l.contextViewProvider,{ariaLabel:l.label||\"\",placeholder:l.placeholder||\"\",validationOptions:{validation:l.validation},\ninputBackground:l.inputBackground,inputForeground:l.inputForeground,inputBorder:l.inputBorder,inputValidationInfoBackground:l.inputValidationInfoBackground,inputValidationInfoForeground:l.inputValidationInfoForeground,inputValidationInfoBorder:l.inputValidationInfoBorder,inputValidationWarningBackground:l.inputValidationWarningBackground,inputValidationWarningForeground:l.inputValidationWarningForeground,inputValidationWarningBorder:l.inputValidationWarningBorder,inputValidationErrorBackground:l.inputValidationErrorBackground,inputValidationErrorForeground:l.inputValidationErrorForeground,inputValidationErrorBorder:l.inputValidationErrorBorder,history:d,flexibleHeight:h,flexibleWidth:p,flexibleMaxHeight:g})),l.preserveCase=l._register(new c({appendTitle:\"\",isChecked:!1,inputActiveOptionBorder:l.inputActiveOptionBorder,inputActiveOptionBackground:l.inputActiveOptionBackground})),l._register(l.preserveCase.onChange((function(e){l._onDidOptionChange.fire(e),!e&&l.fixFocusOnOptionClickEnabled&&l.inputBox.focus(),\nl.validate()}))),l._register(l.preserveCase.onKeyDown((function(e){l._onPreserveCaseKeyDown.fire(e)}))),l._showOptionButtons?l.cachedOptionsWidth=l.preserveCase.width():l.cachedOptionsWidth=0;var f=[l.preserveCase.domNode];l.onkeydown(l.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=f.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%f.length:e.equals(15)&&(n=0===t?f.length-1:t-1),e.equals(9)?f[t].blur():n>=0&&f[n].focus(),i.EventHelper.stop(e,!0)}}}));var m=document.createElement(\"div\");return m.className=\"controls\",m.style.display=l._showOptionButtons?\"block\":\"none\",m.appendChild(l.preserveCase.domNode),l.domNode.appendChild(m),t&&t.appendChild(l.domNode),l.onkeydown(l.inputBox.inputElement,(function(e){return l._onKeyDown.fire(e)})),l.onkeyup(l.inputBox.inputElement,(function(e){return l._onKeyUp.fire(e)})),l.oninput(l.inputBox.inputElement,(function(e){return l._onInput.fire()})),l.onmousedown(l.inputBox.inputElement,(function(e){return l._onMouseDown.fire(e)\n})),l}return r(t,e),t.prototype.enable=function(){i.removeClass(this.domNode,\"disabled\"),this.inputBox.enable(),this.preserveCase.enable()},t.prototype.disable=function(){i.addClass(this.domNode,\"disabled\"),this.inputBox.disable(),this.preserveCase.disable()},t.prototype.setEnabled=function(e){e?this.enable():this.disable()},t.prototype.style=function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,\nthis.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,\ninputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}},t.prototype.select=function(){this.inputBox.select()},t.prototype.focus=function(){this.inputBox.focus()},t.prototype.getPreserveCase=function(){return this.preserveCase.checked},t.prototype.setPreserveCase=function(e){this.preserveCase.checked=e},t.prototype.focusOnPreserve=function(){this.preserveCase.focus()},t.prototype.validate=function(){this.inputBox&&this.inputBox.validate()},Object.defineProperty(t.prototype,\"width\",{set:function(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+\"px\"},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t}(s.Widget);t.ReplaceInput=h})),define(n[402],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/keybindingLabel/keybindingLabel\",t)})),define(n[403],i([7,8]),(function(e,t){\nreturn e.create(\"vs/base/browser/ui/list/listWidget\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[153],i([0,1,403,2,21,19,101,6,16,57,56,4,52,239,140,27,31,240,131,61,271]),(function(e,t,n,i,o,s,u,d,c,p,g,f,m,v,_,y,C,b,S,w){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var E=function(){function e(e){this.trait=e,this.renderedElements=[]}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return\"template:\"+this.trait.trait},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){var i=s.firstIndex(this.renderedElements,(function(e){return e.templateData===n}));if(i>=0){var o=this.renderedElements[i];this.trait.unrender(n),o.index=t}else{o={index:t,templateData:n};this.renderedElements.push(o)}this.trait.renderIndex(t,n)},\ne.prototype.splice=function(e,t,n){for(var i=[],o=0,r=this.renderedElements;o<r.length;o++){var s=r[o];s.index<e?i.push(s):s.index>=e+t&&i.push({index:s.index+n-t,templateData:s.templateData})}this.renderedElements=i},e.prototype.renderIndexes=function(e){for(var t=0,n=this.renderedElements;t<n.length;t++){var i=n[t],o=i.index,r=i.templateData;e.indexOf(o)>-1&&this.trait.renderIndex(o,r)}},e.prototype.disposeTemplate=function(e){var t=s.firstIndex(this.renderedElements,(function(t){return t.templateData===e}));t<0||this.renderedElements.splice(t,1)},e}(),L=function(){function e(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new f.Emitter,this.onChange=this._onChange.event}return Object.defineProperty(e.prototype,\"trait\",{get:function(){return this._trait},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderer\",{get:function(){return new E(this)},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){\nvar i=n.length-t,o=e+t,r=a(this.sortedIndexes.filter((function(t){return t<e})),n.map((function(t,n){return t?n+e:-1})).filter((function(e){return-1!==e})),this.sortedIndexes.filter((function(e){return e>=o})).map((function(e){return e+i})));this.renderer.splice(e,t,n.length),this._set(r,r)},e.prototype.renderIndex=function(e,t){d.toggleClass(t,this._trait,this.contains(e))},e.prototype.unrender=function(e){d.removeClass(e,this._trait)},e.prototype.set=function(e,t){return this._set(e,a(e).sort(K),t)},e.prototype._set=function(e,t,n){var i=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;var r=H(o,e);return this.renderer.renderIndexes(r),this._onChange.fire({indexes:e,browserEvent:n}),i},e.prototype.get=function(){return this.indexes},e.prototype.contains=function(e){return s.binarySearch(this.sortedIndexes,e,K)>=0},e.prototype.dispose=function(){i.dispose(this._onChange)},h([u.memoize],e.prototype,\"renderer\",null),e}(),D=function(e){function t(){return e.call(this,\"focused\")||this}\nreturn r(t,e),t.prototype.renderIndex=function(t,n){e.prototype.renderIndex.call(this,t,n),this.contains(t)?n.setAttribute(\"aria-selected\",\"true\"):n.removeAttribute(\"aria-selected\")},t}(L),N=function(){function e(e,t,n){this.trait=e,this.view=t,this.identityProvider=n}return e.prototype.splice=function(e,t,n){var i=this;if(!this.identityProvider)return this.trait.splice(e,t,n.map((function(){return!1})));var o=this.trait.get().map((function(e){return i.identityProvider.getId(i.view.element(e)).toString()})),r=n.map((function(e){return o.indexOf(i.identityProvider.getId(e).toString())>-1}));this.trait.splice(e,t,r)},e}();function x(e){return\"INPUT\"===e.tagName||\"TEXTAREA\"===e.tagName}var I,M=function(){function e(e,t,n){this.list=e,this.view=t,this.disposables=new i.DisposableStore;var o=!1!==n.multipleSelectionSupport;this.openController=n.openController||F;var r=f.Event.chain(m.domEvent(t.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).map((function(e){return new g.StandardKeyboardEvent(e)}))\n;r.filter((function(e){return 3===e.keyCode})).on(this.onEnter,this,this.disposables),r.filter((function(e){return 16===e.keyCode})).on(this.onUpArrow,this,this.disposables),r.filter((function(e){return 18===e.keyCode})).on(this.onDownArrow,this,this.disposables),r.filter((function(e){return 11===e.keyCode})).on(this.onPageUpArrow,this,this.disposables),r.filter((function(e){return 12===e.keyCode})).on(this.onPageDownArrow,this,this.disposables),r.filter((function(e){return 9===e.keyCode})).on(this.onEscape,this,this.disposables),o&&r.filter((function(e){return(c.isMacintosh?e.metaKey:e.ctrlKey)&&31===e.keyCode})).on(this.onCtrlA,this,this.disposables)}return e.prototype.onEnter=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent),this.openController.shouldOpen(e.browserEvent)&&this.list.open(this.list.getFocus(),e.browserEvent)},e.prototype.onUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent),\nthis.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onCtrlA=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(s.range(this.list.length),e.browserEvent),this.view.domNode.focus()},e.prototype.onEscape=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.view.domNode.focus()},e.prototype.dispose=function(){this.disposables.dispose()},e}();!function(e){\ne[e.Idle=0]=\"Idle\",e[e.Typing=1]=\"Typing\"}(I||(I={})),t.DefaultKeyboardNavigationDelegate=new(function(){function e(){}return e.prototype.mightProducePrintableCharacter=function(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)},e}());var k=function(){function e(e,t,n,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=n,this.delegate=o,this.enabled=!1,this.state=I.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.enabledDisposables=new i.DisposableStore,this.disposables=new i.DisposableStore,this.updateOptions(e.options)}return e.prototype.updateOptions=function(e){void 0===e.enableKeyboardNavigation||!!e.enableKeyboardNavigation?this.enable():this.disable(),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)},e.prototype.enable=function(){var e=this;if(!this.enabled){\nvar t=f.Event.chain(m.domEvent(this.view.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).map((function(e){return new g.StandardKeyboardEvent(e)})).filter((function(t){return e.delegate.mightProducePrintableCharacter(t)})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).map((function(e){return e.browserEvent.key})).event,n=f.Event.debounce(t,(function(){return null}),800);f.Event.reduce(f.Event.any(t,n),(function(e,t){return null===t?null:(e||\"\")+t}))(this.onInput,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}},e.prototype.disable=function(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)},e.prototype.onInput=function(e){if(!e)return this.state=I.Idle,void(this.triggered=!1);var t=this.list.getFocus(),n=t.length>0?t[0]:0,i=this.state===I.Idle?1:0;this.state=I.Typing;for(var o=0;o<this.list.length;o++){\nvar r=(n+o+i)%this.list.length,s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(r)),a=s&&s.toString();if(void 0===a||w.matchesPrefix(e,a))return this.list.setFocus([r]),void this.list.reveal(r)}},e.prototype.dispose=function(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()},e}(),T=function(){function e(e,t){this.list=e,this.view=t,this.disposables=new i.DisposableStore,f.Event.chain(m.domEvent(t.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).map((function(e){return new g.StandardKeyboardEvent(e)})).filter((function(e){return!(2!==e.keyCode||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)})).on(this.onTab,this,this.disposables)}return e.prototype.onTab=function(e){if(e.target===this.view.domNode){var t=this.list.getFocus();if(0!==t.length){var n=this.view.domElement(t[0]);if(n){var i=n.querySelector(\"[tabIndex]\");if(i&&i instanceof HTMLElement&&-1!==i.tabIndex){var o=window.getComputedStyle(i)\n;\"hidden\"!==o.visibility&&\"none\"!==o.display&&(e.preventDefault(),e.stopPropagation(),i.focus())}}}}},e.prototype.dispose=function(){this.disposables.dispose()},e}();function R(e){return c.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function O(e){return e.browserEvent.shiftKey}function P(e){return e instanceof MouseEvent&&2===e.button}t.isSelectionSingleChangeEvent=R,t.isSelectionRangeChangeEvent=O;var A={isSelectionSingleChangeEvent:R,isSelectionRangeChangeEvent:O},F={shouldOpen:function(e){return!(e instanceof MouseEvent)||!P(e)}},W=function(){function e(e){this.list=e,this.disposables=new i.DisposableStore,this.multipleSelectionSupport=!(!1===e.options.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=e.options.multipleSelectionController||A),this.openController=e.options.openController||F,this.mouseSupport=void 0===e.options.mouseSupport||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),\ne.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(p.Gesture.addTarget(e.getHTMLElement()))),e.onMouseClick(this.onPointer,this,this.disposables),e.onMouseMiddleClick(this.onPointer,this,this.disposables),e.onTap(this.onPointer,this,this.disposables)}return e.prototype.isSelectionSingleChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):c.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey},e.prototype.isSelectionRangeChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey},e.prototype.isSelectionChangeEvent=function(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)},e.prototype.onMouseDown=function(e){\ndocument.activeElement!==e.browserEvent.target&&this.list.domFocus()},e.prototype.onContextMenu=function(e){var t=void 0===e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)},e.prototype.onPointer=function(e){if(this.mouseSupport&&!x(e.browserEvent.target)){var t=this.list.getFocus()[0],n=this.list.getSelection();t=void 0===t?n[0]:t;var i=e.index;if(void 0===i)return this.list.setFocus([],e.browserEvent),void this.list.setSelection([],e.browserEvent);if(this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e))return this.changeSelection(e,t);if(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return this.changeSelection(e,t);this.list.setFocus([i],e.browserEvent),P(e.browserEvent)||(this.list.setSelection([i],e.browserEvent),this.openController.shouldOpen(e.browserEvent)&&this.list.open([i],e.browserEvent))}},e.prototype.onDoubleClick=function(e){if(!(x(e.browserEvent.target)||this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))){var t=this.list.getFocus()\n;this.list.setSelection(t,e.browserEvent),this.list.pin(t)}},e.prototype.changeSelection=function(e,t){var n=e.index;if(this.isSelectionRangeChangeEvent(e)&&void 0!==t){var i=Math.min(t,n),o=Math.max(t,n),r=s.range(i,o+1),l=function(e,t){var n=e.indexOf(t);if(-1===n)return[];var i=[],o=n-1;for(;o>=0&&e[o]===t-(n-o);)i.push(e[o--]);i.reverse(),o=n;for(;o<e.length&&e[o]===t+(o-n);)i.push(e[o++]);return i}(H(d=this.list.getSelection(),[t]),t);if(0===l.length)return;var u=H(r,function(e,t){var n=[],i=0,o=0;for(;i<e.length||o<t.length;)if(i>=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){i++,o++;continue}e[i]<t[o]?n.push(e[i++]):o++}return n}(d,l));this.list.setSelection(u,e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){var d;u=(d=this.list.getSelection()).filter((function(e){return e!==n}));this.list.setFocus([n]),d.length===u.length?this.list.setSelection(a(u,[n]),e.browserEvent):this.list.setSelection(u,e.browserEvent)}},e.prototype.dispose=function(){\nthis.disposables.dispose()},e}();t.MouseController=W;var B=function(){function e(e,t){this.styleElement=e,this.selectorSuffix=t}return e.prototype.style=function(e){var t=this.selectorSuffix&&\".\"+this.selectorSuffix,n=[];e.listBackground&&(e.listBackground.isOpaque()?n.push(\".monaco-list\"+t+\" .monaco-list-rows { background: \"+e.listBackground+\"; }\"):c.isMacintosh||console.warn(\"List with id '\"+this.selectorSuffix+\"' was styled with a non-opaque background color. This will break sub-pixel antialiasing.\")),e.listFocusBackground&&(n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused { background-color: \"+e.listFocusBackground+\"; }\"),n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused:hover { background-color: \"+e.listFocusBackground+\"; }\")),e.listFocusForeground&&n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused { color: \"+e.listFocusForeground+\"; }\"),\ne.listActiveSelectionBackground&&(n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected { background-color: \"+e.listActiveSelectionBackground+\"; }\"),n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected:hover { background-color: \"+e.listActiveSelectionBackground+\"; }\")),e.listActiveSelectionForeground&&n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected { color: \"+e.listActiveSelectionForeground+\"; }\"),e.listFocusAndSelectionBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.selected.focused { background-color: \"+e.listFocusAndSelectionBackground+\"; }\\n\\t\\t\\t\"),e.listFocusAndSelectionForeground&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.selected.focused { color: \"+e.listFocusAndSelectionForeground+\"; }\\n\\t\\t\\t\"),e.listInactiveFocusBackground&&(n.push(\".monaco-list\"+t+\" .monaco-list-row.focused { background-color:  \"+e.listInactiveFocusBackground+\"; }\"),\nn.push(\".monaco-list\"+t+\" .monaco-list-row.focused:hover { background-color:  \"+e.listInactiveFocusBackground+\"; }\")),e.listInactiveSelectionBackground&&(n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { background-color:  \"+e.listInactiveSelectionBackground+\"; }\"),n.push(\".monaco-list\"+t+\" .monaco-list-row.selected:hover { background-color:  \"+e.listInactiveSelectionBackground+\"; }\")),e.listInactiveSelectionForeground&&n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { color: \"+e.listInactiveSelectionForeground+\"; }\"),e.listHoverBackground&&n.push(\".monaco-list\"+t+\":not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color:  \"+e.listHoverBackground+\"; }\"),e.listHoverForeground&&n.push(\".monaco-list\"+t+\" .monaco-list-row:hover:not(.selected):not(.focused) { color:  \"+e.listHoverForeground+\"; }\"),e.listSelectionOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { outline: 1px dotted \"+e.listSelectionOutline+\"; outline-offset: -1px; }\"),\ne.listFocusOutline&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.focused { outline: 1px solid \"+e.listFocusOutline+\"; outline-offset: -1px; }\\n\\t\\t\\t\"),e.listInactiveFocusOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row.focused { outline: 1px dotted \"+e.listInactiveFocusOutline+\"; outline-offset: -1px; }\"),e.listHoverOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row:hover { outline: 1px dashed \"+e.listHoverOutline+\"; outline-offset: -1px; }\"),e.listDropBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-list\"+t+\".drop-target,\\n\\t\\t\\t\\t.monaco-list\"+t+\" .monaco-list-rows.drop-target,\\n\\t\\t\\t\\t.monaco-list\"+t+\" .monaco-list-row.drop-target { background-color: \"+e.listDropBackground+\" !important; color: inherit !important; }\\n\\t\\t\\t\"),e.listFilterWidgetBackground&&n.push(\".monaco-list-type-filter { background-color: \"+e.listFilterWidgetBackground+\" }\"),e.listFilterWidgetOutline&&n.push(\".monaco-list-type-filter { border: 1px solid \"+e.listFilterWidgetOutline+\"; }\"),\ne.listFilterWidgetNoMatchesOutline&&n.push(\".monaco-list-type-filter.no-matches { border: 1px solid \"+e.listFilterWidgetNoMatchesOutline+\"; }\"),e.listMatchesShadow&&n.push(\".monaco-list-type-filter { box-shadow: 1px 1px 1px \"+e.listMatchesShadow+\"; }\");var i=n.join(\"\\n\");i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i)},e}();t.DefaultStyleController=B;var V={listFocusBackground:y.Color.fromHex(\"#7FB0D0\"),listActiveSelectionBackground:y.Color.fromHex(\"#0E639C\"),listActiveSelectionForeground:y.Color.fromHex(\"#FFFFFF\"),listFocusAndSelectionBackground:y.Color.fromHex(\"#094771\"),listFocusAndSelectionForeground:y.Color.fromHex(\"#FFFFFF\"),listInactiveSelectionBackground:y.Color.fromHex(\"#3F3F46\"),listHoverBackground:y.Color.fromHex(\"#2A2D2E\"),listDropBackground:y.Color.fromHex(\"#383B3D\"),treeIndentGuidesStroke:y.Color.fromHex(\"#a9a9a9\")},z={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},\ndrop:function(){}},ariaRootRole:v.ListAriaRootRole.TREE};function H(e,t){for(var n=[],i=0,o=0;i<e.length||o<t.length;)if(i>=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){n.push(e[i]),i++,o++;continue}e[i]<t[o]?n.push(e[i++]):n.push(t[o++])}return n}var K=function(e,t){return e-t},U=function(){function e(e,t){this._templateId=e,this.renderers=t}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return this._templateId},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return this.renderers.map((function(t){return t.renderTemplate(e)}))},e.prototype.renderElement=function(e,t,n,i){for(var o=0,r=0,s=this.renderers;r<s.length;r++){s[r].renderElement(e,t,n[o++],i)}},e.prototype.disposeElement=function(e,t,n,i){for(var o=0,r=0,s=this.renderers;r<s.length;r++){var a=s[r];a.disposeElement&&a.disposeElement(e,t,n[o],i),o+=1}},e.prototype.disposeTemplate=function(e){for(var t=0,n=0,i=this.renderers;n<i.length;n++){i[n].disposeTemplate(e[t++])}},e\n}(),j=function(){function e(e){this.accessibilityProvider=e,this.templateId=\"a18n\"}return e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){var i=this.accessibilityProvider.getAriaLabel(e);i?n.setAttribute(\"aria-label\",i):n.removeAttribute(\"aria-label\");var o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);\"number\"==typeof o?n.setAttribute(\"aria-level\",\"\"+o):n.removeAttribute(\"aria-level\")},e.prototype.disposeTemplate=function(e){},e}(),q=function(){function e(e,t){this.list=e,this.dnd=t}return e.prototype.getDragElements=function(e){var t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]},e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)},e.prototype.onDragOver=function(e,t,n,i){return this.dnd.onDragOver(e,t,n,i)},\ne.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e.prototype.drop=function(e,t,n,i){this.dnd.drop(e,t,n,i)},e}(),G=function(){function e(e,o,r,s,u){void 0===u&&(u=z),this.user=e,this._options=u,this.eventBufferer=new f.EventBufferer,this.disposables=new i.DisposableStore,this._onDidOpen=new f.Emitter,this.onDidOpen=this._onDidOpen.event,this._onDidPin=new f.Emitter,this.didJustPressContextMenuKey=!1,this._onDidDispose=new f.Emitter,this.onDidDispose=this._onDidDispose.event,this.focus=new D,this.selection=new L(\"selected\"),C.mixin(u,V,!1);var c=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=u.accessibilityProvider,this.accessibilityProvider&&(c.push(new j(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map((function(e){return new U(e.templateId,a(c,[e]))}));var h=l(l({},u),{dnd:u.dnd&&new q(this,u.dnd)})\n;if(this.view=new _.ListView(o,r,s,h),\"string\"!=typeof u.ariaRole?this.view.domNode.setAttribute(\"role\",v.ListAriaRootRole.TREE):this.view.domNode.setAttribute(\"role\",u.ariaRole),u.styleController)this.styleController=u.styleController(this.view.domId);else{var p=d.createStyleSheet(this.view.domNode);this.styleController=new B(p,this.view.domId)}if(this.spliceable=new b.CombinedSpliceable([new N(this.focus,this.view,u.identityProvider),new N(this.selection,this.view,u.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.onDidFocus=f.Event.map(m.domEvent(this.view.domNode,\"focus\",!0),(function(){return null})),this.onDidBlur=f.Event.map(m.domEvent(this.view.domNode,\"blur\",!0),(function(){return null})),this.disposables.add(new T(this,this.view)),\"boolean\"!=typeof u.keyboardSupport||u.keyboardSupport){var g=new M(this,this.view,u);this.disposables.add(g)}\nif(u.keyboardNavigationLabelProvider){var y=u.keyboardNavigationDelegate||t.DefaultKeyboardNavigationDelegate;this.typeLabelController=new k(this,this.view,u.keyboardNavigationLabelProvider,y),this.disposables.add(this.typeLabelController)}this.disposables.add(this.createMouseController(u)),this.onFocusChange(this._onFocusChange,this,this.disposables),this.onSelectionChange(this._onSelectionChange,this,this.disposables),u.ariaLabel&&this.view.domNode.setAttribute(\"aria-label\",n.localize(0,null,u.ariaLabel))}return Object.defineProperty(e.prototype,\"onFocusChange\",{get:function(){var e=this;return f.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),(function(t){return e.toListEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onSelectionChange\",{get:function(){var e=this;return f.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),(function(t){return e.toListEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"domId\",{get:function(){\nreturn this.view.domId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseClick\",{get:function(){return this.view.onMouseClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDblClick\",{get:function(){return this.view.onMouseDblClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseMiddleClick\",{get:function(){return this.view.onMouseMiddleClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDown\",{get:function(){return this.view.onMouseDown},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchStart\",{get:function(){return this.view.onTouchStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTap\",{get:function(){return this.view.onTap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onContextMenu\",{get:function(){var e=this,t=f.Event.chain(m.domEvent(this.view.domNode,\"keydown\")).map((function(e){return new g.StandardKeyboardEvent(e)\n})).filter((function(t){return e.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode})).filter((function(e){return e.preventDefault(),e.stopPropagation(),!1})).event,n=f.Event.chain(m.domEvent(this.view.domNode,\"keyup\")).filter((function(){var t=e.didJustPressContextMenuKey;return e.didJustPressContextMenuKey=!1,t})).filter((function(){return e.getFocus().length>0&&!!e.view.domElement(e.getFocus()[0])})).map((function(t){var n=e.getFocus()[0];return{index:n,element:e.view.element(n),anchor:e.view.domElement(n),browserEvent:t}})).event,i=f.Event.chain(this.view.onContextMenu).filter((function(){return!e.didJustPressContextMenuKey})).map((function(e){var t=e.element,n=e.index,i=e.browserEvent;return{element:t,index:n,anchor:{x:i.clientX+1,y:i.clientY},browserEvent:i}})).event;return f.Event.any(t,n,i)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onKeyDown\",{get:function(){return m.domEvent(this.view.domNode,\"keydown\")},enumerable:!0,configurable:!0}),\ne.prototype.createMouseController=function(e){return new W(this)},e.prototype.updateOptions=function(e){void 0===e&&(e={}),this._options=l(l({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options)},Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){var i=this;if(void 0===n&&(n=[]),e<0||e>this.view.length)throw new v.ListError(this.user,\"Invalid start index: \"+e);if(t<0)throw new v.ListError(this.user,\"Invalid delete count: \"+t);0===t&&0===n.length||this.eventBufferer.bufferEvents((function(){return i.spliceable.splice(e,t,n)}))},e.prototype.rerender=function(){this.view.rerender()},e.prototype.element=function(e){return this.view.element(e)},Object.defineProperty(e.prototype,\"length\",{get:function(){return this.view.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"contentHeight\",{get:function(){return this.view.contentHeight},enumerable:!0,\nconfigurable:!0}),Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.view.getScrollTop()},set:function(e){this.view.setScrollTop(e)},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.view.domNode.focus()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.setSelection=function(e,t){for(var n=0,i=e;n<i.length;n++){var o=i[n];if(o<0||o>=this.length)throw new v.ListError(this.user,\"Invalid index \"+o)}this.selection.set(e,t)},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.getSelectedElements=function(){var e=this;return this.getSelection().map((function(t){return e.view.element(t)}))},e.prototype.setFocus=function(e,t){for(var n=0,i=e;n<i.length;n++){var o=i[n];if(o<0||o>=this.length)throw new v.ListError(this.user,\"Invalid index \"+o)}this.focus.set(e,t)},e.prototype.focusNext=function(e,t,n,i){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var o=this.focus.get(),r=this.findNextIndex(o.length>0?o[0]+e:0,t,i)\n;r>-1&&this.setFocus([r],n)}},e.prototype.focusPrevious=function(e,t,n,i){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var o=this.focus.get(),r=this.findPreviousIndex(o.length>0?o[0]-e:0,t,i);r>-1&&this.setFocus([r],n)}},e.prototype.focusNextPage=function(e,t){var n=this,i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=0===i?0:i-1;var o=this.view.element(i),r=this.getFocusedElements()[0];if(r!==o){var s=this.findPreviousIndex(i,!1,t);s>-1&&r!==this.view.element(s)?this.setFocus([s],e):this.setFocus([i],e)}else{var a=this.view.getScrollTop();this.view.setScrollTop(a+this.view.renderHeight-this.view.elementHeight(i)),this.view.getScrollTop()!==a&&setTimeout((function(){return n.focusNextPage(e,t)}),0)}},e.prototype.focusPreviousPage=function(e,t){var n,i=this,o=this.view.getScrollTop();n=0===o?this.view.indexAt(o):this.view.indexAfter(o-1);var r=this.view.element(n),s=this.getFocusedElements()[0];if(s!==r){var a=this.findNextIndex(n,!1,t)\n;a>-1&&s!==this.view.element(a)?this.setFocus([a],e):this.setFocus([n],e)}else{var l=o;this.view.setScrollTop(o-this.view.renderHeight),this.view.getScrollTop()!==l&&setTimeout((function(){return i.focusPreviousPage(e,t)}),0)}},e.prototype.focusLast=function(e,t){if(0!==this.length){var n=this.findPreviousIndex(this.length-1,!1,t);n>-1&&this.setFocus([n],e)}},e.prototype.focusFirst=function(e,t){if(0!==this.length){var n=this.findNextIndex(0,!1,t);n>-1&&this.setFocus([n],e)}},e.prototype.findNextIndex=function(e,t,n){void 0===t&&(t=!1);for(var i=0;i<this.length;i++){if(e>=this.length&&!t)return-1;if(e%=this.length,!n||n(this.element(e)))return e;e++}return-1},e.prototype.findPreviousIndex=function(e,t,n){void 0===t&&(t=!1);for(var i=0;i<this.length;i++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!n||n(this.element(e)))return e;e--}return-1},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.getFocusedElements=function(){var e=this\n;return this.getFocus().map((function(t){return e.view.element(t)}))},e.prototype.reveal=function(e,t){if(e<0||e>=this.length)throw new v.ListError(this.user,\"Invalid index \"+e);var n=this.view.getScrollTop(),i=this.view.elementTop(e),r=this.view.elementHeight(e);if(o.isNumber(t)){var s=r-this.view.renderHeight;this.view.setScrollTop(s*S.clamp(t,0,1)+i)}else{var a=i+r,l=n+this.view.renderHeight;i<n&&a>=l||(i<n?this.view.setScrollTop(i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}},e.prototype.getRelativeTop=function(e){if(e<0||e>=this.length)throw new v.ListError(this.user,\"Invalid index \"+e);var t=this.view.getScrollTop(),n=this.view.elementTop(e),i=this.view.elementHeight(e);if(n<t||n+i>t+this.view.renderHeight)return null;var o=i-this.view.renderHeight;return Math.abs((t-n)/o)},e.prototype.getHTMLElement=function(){return this.view.domNode},e.prototype.open=function(e,t){for(var n=this,i=0,o=e;i<o.length;i++){var r=o[i];if(r<0||r>=this.length)throw new v.ListError(this.user,\"Invalid index \"+r)}\nthis._onDidOpen.fire({indexes:e,elements:e.map((function(e){return n.view.element(e)})),browserEvent:t})},e.prototype.pin=function(e,t){for(var n=this,i=0,o=e;i<o.length;i++){var r=o[i];if(r<0||r>=this.length)throw new v.ListError(this.user,\"Invalid index \"+r)}this._onDidPin.fire({indexes:e,elements:e.map((function(e){return n.view.element(e)})),browserEvent:t})},e.prototype.style=function(e){this.styleController.style(e)},e.prototype.toListEvent=function(e){var t=this,n=e.indexes,i=e.browserEvent;return{indexes:n,elements:n.map((function(e){return t.view.element(e)})),browserEvent:i}},e.prototype._onFocusChange=function(){var e=this.focus.get();d.toggleClass(this.view.domNode,\"element-focused\",e.length>0),this.onDidChangeActiveDescendant()},e.prototype.onDidChangeActiveDescendant=function(){var e,t=this.focus.get();if(t.length>0){var n=void 0;(null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(n=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),\nthis.view.domNode.setAttribute(\"aria-activedescendant\",n||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute(\"aria-activedescendant\")},e.prototype._onSelectionChange=function(){var e=this.selection.get();d.toggleClass(this.view.domNode,\"selection-none\",0===e.length),d.toggleClass(this.view.domNode,\"selection-single\",1===e.length),d.toggleClass(this.view.domNode,\"selection-multiple\",e.length>1)},e.prototype.dispose=function(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidOpen.dispose(),this._onDidPin.dispose(),this._onDidDispose.dispose()},h([u.memoize],e.prototype,\"onFocusChange\",null),h([u.memoize],e.prototype,\"onSelectionChange\",null),h([u.memoize],e.prototype,\"onContextMenu\",null),e}();t.List=G})),define(n[404],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/menu/menu\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[205],i([0,1,404,5,55,70,6,56,15,2,53,16,272]),(function(e,t,n,i,o,s,l,u,d,c,h,p){\"use strict\";var g;Object.defineProperty(t,\"__esModule\",{value:!0}),t.MENU_MNEMONIC_REGEX=/\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/,t.MENU_ESCAPED_MNEMONIC_REGEX=/(&amp;)?(&amp;)([^\\s&])/g,function(e){e[e.Right=0]=\"Right\",e[e.Left=1]=\"Left\"}(g=t.Direction||(t.Direction={}));var f=function(e){function t(t,n,i){var o=e.call(this,i||\"submenu\",t,\"\",!0)||this;return o.entries=n,o}return r(t,e),t}(o.Action);t.SubmenuAction=f;var m=function(e){function t(t,n,i){void 0===i&&(i={});var o=this;l.addClass(t,\"monaco-menu-container\"),t.setAttribute(\"role\",\"presentation\");var r=document.createElement(\"div\");l.addClass(r,\"monaco-menu\"),r.setAttribute(\"role\",\"presentation\"),(o=e.call(this,r,{orientation:2,actionViewItemProvider:function(e){return o.doGetActionViewItem(e,i,s)},context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,triggerKeys:{\nkeys:a([3],p.isMacintosh?[10]:[]),keyDown:!0}})||this).menuElement=r,o.actionsList.setAttribute(\"role\",\"menu\"),o.actionsList.tabIndex=0,o.menuDisposables=o._register(new c.DisposableStore),l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){new u.StandardKeyboardEvent(e).equals(2)&&e.preventDefault()})),i.enableMnemonics&&o.menuDisposables.add(l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){var t=e.key.toLocaleLowerCase();if(o.mnemonics.has(t)){l.EventHelper.stop(e,!0);var n=o.mnemonics.get(t);if(1===n.length&&(n[0]instanceof _&&n[0].container&&o.focusItemByElement(n[0].container),n[0].onClick(e)),n.length>1){var i=n.shift();i&&i.container&&(o.focusItemByElement(i.container),n.push(i)),o.mnemonics.set(t,n)}}}))),p.isLinux&&o._register(l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){var t=new u.StandardKeyboardEvent(e);t.equals(14)||t.equals(11)?(o.focusedItem=o.viewItems.length-1,o.focusNext(),l.EventHelper.stop(e,!0)):(t.equals(13)||t.equals(12))&&(o.focusedItem=0,\no.focusPrevious(),l.EventHelper.stop(e,!0))}))),o._register(l.addDisposableListener(o.domNode,l.EventType.MOUSE_OUT,(function(e){var t=e.relatedTarget;l.isAncestor(t,o.domNode)||(o.focusedItem=void 0,o.updateFocus(),e.stopPropagation())}))),o._register(l.addDisposableListener(o.actionsList,l.EventType.MOUSE_OVER,(function(e){var t=e.target;if(t&&l.isAncestor(t,o.actionsList)&&t!==o.actionsList){for(;t.parentElement!==o.actionsList&&null!==t.parentElement;)t=t.parentElement;if(l.hasClass(t,\"action-item\")){var n=o.focusedItem;o.setFocusedItem(t),n!==o.focusedItem&&o.updateFocus()}}})));var s={parent:o};o.mnemonics=new Map,o.scrollableElement=o._register(new h.DomScrollableElement(r,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));var d=o.scrollableElement.getDomNode();return d.style.position=\"\",o._register(l.addDisposableListener(d,l.EventType.MOUSE_UP,(function(e){e.preventDefault()}))),\nr.style.maxHeight=Math.max(10,window.innerHeight-t.getBoundingClientRect().top-30)+\"px\",o.push(n,{icon:!0,label:!0,isMenu:!0}),t.appendChild(o.scrollableElement.getDomNode()),o.scrollableElement.scanDomNode(),o.viewItems.filter((function(e){return!(e instanceof y)})).forEach((function(e,t,n){e.updatePositionInSet(t+1,n.length)})),o}return r(t,e),t.prototype.style=function(e){var t=this.getContainer(),n=e.foregroundColor?\"\"+e.foregroundColor:\"\",i=e.backgroundColor?\"\"+e.backgroundColor:\"\",o=e.borderColor?\"1px solid \"+e.borderColor:\"\",r=e.shadowColor?\"0 2px 4px \"+e.shadowColor:\"\";t.style.border=o,this.domNode.style.color=n,this.domNode.style.backgroundColor=i,t.style.boxShadow=r,this.viewItems&&this.viewItems.forEach((function(t){(t instanceof v||t instanceof y)&&t.style(e)}))},t.prototype.getContainer=function(){return this.scrollableElement.getDomNode()},Object.defineProperty(t.prototype,\"onScroll\",{get:function(){return this.scrollableElement.onScroll},enumerable:!0,configurable:!0}),\nObject.defineProperty(t.prototype,\"scrollOffset\",{get:function(){return this.menuElement.scrollTop},enumerable:!0,configurable:!0}),t.prototype.focusItemByElement=function(e){var t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()},t.prototype.setFocusedItem=function(e){for(var t=0;t<this.actionsList.children.length;t++){if(e===this.actionsList.children[t]){this.focusedItem=t;break}}},t.prototype.updateFocus=function(t){e.prototype.updateFocus.call(this,t,!0),void 0!==this.focusedItem&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})},t.prototype.doGetActionViewItem=function(e,t,n){if(e instanceof s.Separator)return new y(t.context,e,{icon:!0});if(e instanceof f){var i=new _(e,e.entries,n,t);if(t.enableMnemonics)if((u=i.getMnemonic())&&i.isEnabled()){var o=[];this.mnemonics.has(u)&&(o=this.mnemonics.get(u)),o.push(i),this.mnemonics.set(u,o)}return i}var r={enableMnemonics:t.enableMnemonics};if(t.getKeyBinding){var a=t.getKeyBinding(e)\n;if(a){var l=a.getLabel();l&&(r.keybinding=l)}}var u;i=new v(t.context,e,r);if(t.enableMnemonics&&(u=i.getMnemonic())&&i.isEnabled()){o=[];this.mnemonics.has(u)&&(o=this.mnemonics.get(u)),o.push(i),this.mnemonics.set(u,o)}return i},t}(s.ActionBar);t.Menu=m;var v=function(e){function o(n,i,o){void 0===o&&(o={});var r=this;if(o.isMenu=!0,(r=e.call(this,i,i,o)||this).options=o,r.options.icon=void 0!==o.icon&&o.icon,r.options.label=void 0===o.label||o.label,r.cssClass=\"\",r.options.label&&o.enableMnemonics){var s=r.getAction().label;if(s){var a=t.MENU_MNEMONIC_REGEX.exec(s);a&&(r.mnemonic=(a[1]?a[1]:a[3]).toLocaleLowerCase())}}return r.runOnceToEnableMouseUp=new d.RunOnceScheduler((function(){r.element&&r._register(l.addDisposableListener(r.element,l.EventType.MOUSE_UP,(function(e){e.defaultPrevented||(l.EventHelper.stop(e,!0),r.onClick(e))})))}),100),r._register(r.runOnceToEnableMouseUp),r}return r(o,e),o.prototype.render=function(t){e.prototype.render.call(this,t),this.element&&(this.container=t,\nthis.item=l.append(this.element,l.$(\"a.action-menu-item\")),this._action.id===s.Separator.ID?this.item.setAttribute(\"role\",\"presentation\"):(this.item.setAttribute(\"role\",\"menuitem\"),this.mnemonic&&this.item.setAttribute(\"aria-keyshortcuts\",\"\"+this.mnemonic)),this.check=l.append(this.item,l.$(\"span.menu-item-check.codicon.codicon-check\")),this.check.setAttribute(\"role\",\"none\"),this.label=l.append(this.item,l.$(\"span.action-label\")),this.options.label&&this.options.keybinding&&(l.append(this.item,l.$(\"span.keybinding\")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())},o.prototype.blur=function(){e.prototype.blur.call(this),this.applyStyle()},o.prototype.focus=function(){e.prototype.focus.call(this),this.item&&this.item.focus(),this.applyStyle()},o.prototype.updatePositionInSet=function(e,t){this.item&&(this.item.setAttribute(\"aria-posinset\",\"\"+e),\nthis.item.setAttribute(\"aria-setsize\",\"\"+t))},o.prototype.updateLabel=function(){if(this.options.label){var e=this.getAction().label;if(e){var n=C(e);this.options.enableMnemonics||(e=n),this.label&&this.label.setAttribute(\"aria-label\",n.replace(/&&/g,\"&\"));var o=t.MENU_MNEMONIC_REGEX.exec(e);if(o){e=i.escape(e),t.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;for(var r=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);r&&r[1];)r=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);r&&(e=e.substr(0,r.index)+'<u aria-hidden=\"true\">'+r[3]+\"</u>\"+e.substr(r.index+r[0].length)),e=e.replace(/&amp;&amp;/g,\"&amp;\"),this.item&&this.item.setAttribute(\"aria-keyshortcuts\",(o[1]?o[1]:o[3]).toLocaleLowerCase())}else e=e.replace(/&&/g,\"&\")}this.label&&(this.label.innerHTML=e.trim())}},o.prototype.updateTooltip=function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=n.localize(0,null,e,this.options.keybinding))),\ne&&this.item&&(this.item.title=e)},o.prototype.updateClass=function(){this.cssClass&&this.item&&l.removeClasses(this.item,this.cssClass),this.options.icon&&this.label?(this.cssClass=this.getAction().class||\"\",l.addClass(this.label,\"icon\"),this.cssClass&&l.addClasses(this.label,this.cssClass),this.updateEnabled()):this.label&&l.removeClass(this.label,\"icon\")},o.prototype.updateEnabled=function(){this.getAction().enabled?(this.element&&l.removeClass(this.element,\"disabled\"),this.item&&(l.removeClass(this.item,\"disabled\"),this.item.tabIndex=0)):(this.element&&l.addClass(this.element,\"disabled\"),this.item&&(l.addClass(this.item,\"disabled\"),l.removeTabIndexAndUpdateFocus(this.item)))},o.prototype.updateChecked=function(){this.item&&(this.getAction().checked?(l.addClass(this.item,\"checked\"),this.item.setAttribute(\"role\",\"menuitemcheckbox\"),this.item.setAttribute(\"aria-checked\",\"true\")):(l.removeClass(this.item,\"checked\"),this.item.setAttribute(\"role\",\"menuitem\"),this.item.setAttribute(\"aria-checked\",\"false\")))},\no.prototype.getMnemonic=function(){return this.mnemonic},o.prototype.applyStyle=function(){if(this.menuStyle){var e=this.element&&l.hasClass(this.element,\"focused\"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,n=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,i=e&&this.menuStyle.selectionBorderColor?\"thin solid \"+this.menuStyle.selectionBorderColor:\"\";this.item&&(this.item.style.color=t?t.toString():\"\",this.item.style.backgroundColor=n?n.toString():\"\"),this.check&&(this.check.style.color=t?t.toString():\"\"),this.container&&(this.container.style.border=i)}},o.prototype.style=function(e){this.menuStyle=e,this.applyStyle()},o}(s.BaseActionViewItem),_=function(e){function t(t,n,i,o){var r=e.call(this,t,t,o)||this;return r.submenuActions=n,r.parentData=i,r.submenuOptions=o,r.mysubmenu=null,r.submenuDisposables=r._register(new c.DisposableStore),r.mouseOver=!1,\nr.expandDirection=o&&void 0!==o.expandDirection?o.expandDirection:g.Right,r.showScheduler=new d.RunOnceScheduler((function(){r.mouseOver&&(r.cleanupExistingSubmenu(!1),r.createSubmenu(!1))}),250),r.hideScheduler=new d.RunOnceScheduler((function(){r.element&&!l.isAncestor(document.activeElement,r.element)&&r.parentData.submenu===r.mysubmenu&&(r.parentData.parent.focus(!1),r.cleanupExistingSubmenu(!0))}),750),r}return r(t,e),t.prototype.render=function(t){var n=this;e.prototype.render.call(this,t),this.element&&(this.item&&(l.addClass(this.item,\"monaco-submenu-item\"),this.item.setAttribute(\"aria-haspopup\",\"true\"),this.updateAriaExpanded(\"false\"),this.submenuIndicator=l.append(this.item,l.$(\"span.submenu-indicator.codicon.codicon-chevron-right\")),this.submenuIndicator.setAttribute(\"aria-hidden\",\"true\")),this._register(l.addDisposableListener(this.element,l.EventType.KEY_UP,(function(e){var t=new u.StandardKeyboardEvent(e);(t.equals(17)||t.equals(3))&&(l.EventHelper.stop(e,!0),n.createSubmenu(!0))}))),\nthis._register(l.addDisposableListener(this.element,l.EventType.KEY_DOWN,(function(e){var t=new u.StandardKeyboardEvent(e);document.activeElement===n.item&&(t.equals(17)||t.equals(3))&&l.EventHelper.stop(e,!0)}))),this._register(l.addDisposableListener(this.element,l.EventType.MOUSE_OVER,(function(e){n.mouseOver||(n.mouseOver=!0,n.showScheduler.schedule())}))),this._register(l.addDisposableListener(this.element,l.EventType.MOUSE_LEAVE,(function(e){n.mouseOver=!1}))),this._register(l.addDisposableListener(this.element,l.EventType.FOCUS_OUT,(function(e){n.element&&!l.isAncestor(document.activeElement,n.element)&&n.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((function(){n.parentData.parent.focus(!1),n.cleanupExistingSubmenu(!1)}))))},t.prototype.onClick=function(e){l.EventHelper.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)},t.prototype.cleanupExistingSubmenu=function(e){\nthis.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)&&(this.parentData.submenu.dispose(),this.parentData.submenu=void 0,this.updateAriaExpanded(\"false\"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0))},t.prototype.createSubmenu=function(e){var t=this;if(void 0===e&&(e=!0),this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded(\"true\"),this.submenuContainer=l.append(this.element,l.$(\"div.monaco-submenu\")),l.addClasses(this.submenuContainer,\"menubar-menu-items-holder\",\"context-view\");var n=getComputedStyle(this.parentData.parent.domNode),i=parseFloat(n.paddingTop||\"0\")||0;this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\",this.parentData.submenu=new m(this.submenuContainer,this.submenuActions,this.submenuOptions),this.menuStyle&&this.parentData.submenu.style(this.menuStyle);var o=this.element.getBoundingClientRect(),r=this.submenuContainer.getBoundingClientRect()\n;this.expandDirection===g.Right?window.innerWidth<=o.right+r.width?(this.submenuContainer.style.left=\"10px\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset+o.height+\"px\"):(this.submenuContainer.style.left=this.element.offsetWidth+\"px\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\"):this.expandDirection===g.Left&&(this.submenuContainer.style.right=this.element.offsetWidth+\"px\",this.submenuContainer.style.left=\"auto\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\"),this.submenuDisposables.add(l.addDisposableListener(this.submenuContainer,l.EventType.KEY_UP,(function(e){new u.StandardKeyboardEvent(e).equals(15)&&(l.EventHelper.stop(e,!0),t.parentData.parent.focus(),t.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add(l.addDisposableListener(this.submenuContainer,l.EventType.KEY_DOWN,(function(e){new u.StandardKeyboardEvent(e).equals(15)&&l.EventHelper.stop(e,!0)\n}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((function(){t.parentData.parent.focus(),t.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}},t.prototype.updateAriaExpanded=function(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute(\"aria-expanded\",e))},t.prototype.applyStyle=function(){if(e.prototype.applyStyle.call(this),this.menuStyle){var t=this.element&&l.hasClass(this.element,\"focused\")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t?\"\"+t:\"\"),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)},t}(v),y=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.style=function(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?\"\"+e.separatorColor:\"\")},t}(s.ActionViewItem);function C(e){var n=t.MENU_MNEMONIC_REGEX,i=n.exec(e);if(!i)return e;var o=!i[1];return e.replace(n,o?\"$2$3\":\"\").trim()}t.cleanMnemonic=C})),define(n[405],i([0,1,205]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,n){var i=e.call(this,t,n,\"contextsubmenu\")||this;return i.entries=n,i}return r(t,e),t}(n.SubmenuAction);t.ContextSubMenu=i})),define(n[406],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/tree/abstractTree\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}\n;define(n[154],i([0,1,2,153,6,4,56,98,19,140,52,61,129,406,15,16,38,131,87,280]),(function(e,t,n,i,o,s,u,d,c,h,p,g,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(e){function t(t){var n=e.call(this,t.elements.map((function(e){return e.element})))||this;return n.data=t,n}return r(t,e),t}(h.ElementsDragAndDropData);function w(e){return e instanceof h.ElementsDragAndDropData?new S(e):e}var E=function(){function e(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=n.Disposable.None}return e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e.element)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(w(e),t)},e.prototype.onDragOver=function(e,t,n,i,o){var r=this;void 0===o&&(o=!0);var s=this.dnd.onDragOver(w(e),t&&t.element,n,i),a=this.autoExpandNode!==t\n;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),void 0===t)return s;if(a&&\"boolean\"!=typeof s&&s.autoExpand&&(this.autoExpandDisposable=v.disposableTimeout((function(){var e=r.modelProvider(),n=e.getNodeLocation(t);e.isCollapsed(n)&&e.setCollapsed(n,!1),r.autoExpandNode=void 0}),500)),\"boolean\"==typeof s||!s.accept||void 0===s.bubble||s.feedback)return o?s:{accept:\"boolean\"==typeof s?s:s.accept,effect:\"boolean\"==typeof s?void 0:s.effect,feedback:[n]};if(1===s.bubble){var u=this.modelProvider(),d=u.getNodeLocation(t),h=u.getParentNodeLocation(d),p=u.getNode(h),g=h&&u.getListIndex(h);return this.onDragOver(e,p,g,i,!1)}var f=this.modelProvider(),m=f.getNodeLocation(t),_=f.getListIndex(m),y=f.getListRenderCount(m);return l(l({},s),{feedback:c.range(_,_+y)})},e.prototype.drop=function(e,t,n,i){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(w(e),t&&t.element,n,i)},e.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e}();var L,D=function(){\nfunction e(e){this.delegate=e}return e.prototype.getHeight=function(e){return this.delegate.getHeight(e.element)},e.prototype.getTemplateId=function(e){return this.delegate.getTemplateId(e.element)},e.prototype.hasDynamicHeight=function(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)},e.prototype.setDynamicHeight=function(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)},e}();t.ComposedTreeDelegate=D,function(e){e.None=\"none\",e.OnHover=\"onHover\",e.Always=\"always\"}(L=t.RenderIndentGuides||(t.RenderIndentGuides={}));var N=function(){function e(e,t){var n=this;void 0===t&&(t=[]),this._elements=t,this.onDidChange=s.Event.forEach(e,(function(e){return n._elements=e}))}return Object.defineProperty(e.prototype,\"elements\",{get:function(){return this._elements},enumerable:!0,configurable:!0}),e}(),x=function(){function e(t,i,o,r,a){void 0===a&&(a={}),this.renderer=t,this.modelProvider=i,this.activeNodes=r,this.renderedElements=new Map,\nthis.renderedNodes=new Map,this.indent=e.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new b.SetMap,this.activeIndentNodes=new Set,this.indentGuidesDisposable=n.Disposable.None,this.disposables=new n.DisposableStore,this.templateId=t.templateId,this.updateOptions(a),s.Event.map(o,(function(e){return e.node}))(this.onDidChangeNodeTwistieState,this,this.disposables),t.onDidChangeTwistieState&&t.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}return e.prototype.updateOptions=function(e){if(void 0===e&&(e={}),void 0!==e.indent&&(this.indent=C.clamp(e.indent,0,40)),void 0!==e.renderIndentGuides){var t=e.renderIndentGuides!==L.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){var i=new n.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}\nvoid 0!==e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)},e.prototype.renderTemplate=function(e){var t=o.append(e,o.$(\".monaco-tl-row\")),i=o.append(t,o.$(\".monaco-tl-indent\")),r=o.append(t,o.$(\".monaco-tl-twistie\")),s=o.append(t,o.$(\".monaco-tl-contents\")),a=this.renderer.renderTemplate(s);return{container:e,indent:i,twistie:r,indentGuidesDisposable:n.Disposable.None,templateData:a}},e.prototype.renderElement=function(t,n,i,o){\"number\"==typeof o&&(this.renderedNodes.set(t,{templateData:i,height:o}),this.renderedElements.set(t.element,t));var r=e.DefaultIndent+(t.depth-1)*this.indent;i.twistie.style.paddingLeft=r+\"px\",i.indent.style.width=r+this.indent-16+\"px\",this.renderTwistie(t,i),\"number\"==typeof o&&this.renderIndentGuides(t,i),this.renderer.renderElement(t,n,i.templateData,o)},e.prototype.disposeElement=function(e,t,n,i){n.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.templateData,i),\n\"number\"==typeof i&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.onDidChangeTwistieState=function(e){var t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)},e.prototype.onDidChangeNodeTwistieState=function(e){var t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))},e.prototype.renderTwistie=function(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e.element,t.twistie),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(o.addClasses(t.twistie,\"codicon\",\"codicon-chevron-down\",\"collapsible\"),o.toggleClass(t.twistie,\"collapsed\",e.collapsed)):o.removeClasses(t.twistie,\"codicon\",\"codicon-chevron-down\",\"collapsible\",\"collapsed\"),\ne.collapsible?t.container.setAttribute(\"aria-expanded\",String(!e.collapsed)):t.container.removeAttribute(\"aria-expanded\")},e.prototype.renderIndentGuides=function(e,t){var i=this;if(o.clearNode(t.indent),t.indentGuidesDisposable.dispose(),this.shouldRenderIndentGuides){for(var r=new n.DisposableStore,s=this.modelProvider(),a=e,l=function(){var e=s.getNodeLocation(a),l=s.getParentNodeLocation(e);if(!l)return\"break\";var d=s.getNode(l),c=o.$(\".indent-guide\",{style:\"width: \"+u.indent+\"px\"});u.activeIndentNodes.has(d)&&o.addClass(c,\"active\"),0===t.indent.childElementCount?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),u.renderedIndentGuides.add(d,c),r.add(n.toDisposable((function(){return i.renderedIndentGuides.delete(d,c)}))),a=d},u=this;;){if(\"break\"===l())break}t.indentGuidesDisposable=r}},e.prototype._onDidChangeActiveNodes=function(e){var t=this;if(this.shouldRenderIndentGuides){var n=new Set,i=this.modelProvider();e.forEach((function(e){var t=i.getNodeLocation(e);try{\nvar o=i.getParentNodeLocation(t);e.collapsible&&e.children.length>0&&!e.collapsed?n.add(e):o&&n.add(i.getNode(o))}catch(e){}})),this.activeIndentNodes.forEach((function(e){n.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return o.removeClass(e,\"active\")}))})),n.forEach((function(e){t.activeIndentNodes.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return o.addClass(e,\"active\")}))})),this.activeIndentNodes=n}},e.prototype.dispose=function(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),n.dispose(this.disposables)},e.DefaultIndent=8,e}(),I=function(){function e(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern=\"\",this._lowercasePattern=\"\",this.disposables=new n.DisposableStore,e.onWillRefilter(this.reset,this,this.disposables)}return Object.defineProperty(e.prototype,\"totalCount\",{get:function(){return this._totalCount},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"matchCount\",{get:function(){return this._matchCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"pattern\",{set:function(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()},enumerable:!0,configurable:!0}),e.prototype.filter=function(e,t){if(this._filter){var n=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return n;if(0===(\"boolean\"==typeof n?n?1:0:f.isFilterResult(n)?f.getVisibleState(n.visibility):n))return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:g.FuzzyScore.Default,visibility:!0};var i=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=i&&i.toString();if(void 0===o)return{data:g.FuzzyScore.Default,visibility:!0};var r=g.fuzzyScore(this._pattern,this._lowercasePattern,0,o,o.toLowerCase(),0,!0);return r?(this._matchCount++,{data:r,visibility:!0}):this.tree.options.filterOnType?2:{data:g.FuzzyScore.Default,visibility:!0}},\ne.prototype.reset=function(){this._totalCount=0,this._matchCount=0},e.prototype.dispose=function(){n.dispose(this.disposables)},e}(),M=function(){function e(e,t,i,r,a){this.tree=e,this.view=i,this.filter=r,this.keyboardNavigationDelegate=a,this._enabled=!1,this._pattern=\"\",this._empty=!1,this._onDidChangeEmptyState=new s.Emitter,this.positionClassName=\"ne\",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new s.Emitter,this.enabledDisposables=new n.DisposableStore,this.disposables=new n.DisposableStore,this.domNode=o.$(\".monaco-list-type-filter.\"+this.positionClassName),this.domNode.draggable=!0,p.domEvent(this.domNode,\"dragstart\")(this.onDragStart,this,this.disposables),this.messageDomNode=o.append(i.getHTMLElement(),o.$(\".monaco-list-type-filter-message\")),this.labelDomNode=o.append(this.domNode,o.$(\"span.label\"));var l=o.append(this.domNode,o.$(\".controls\"));this._filterOnType=!!e.options.filterOnType,\nthis.filterOnTypeDomNode=o.append(l,o.$(\"input.filter.codicon.codicon-list-selection\")),this.filterOnTypeDomNode.type=\"checkbox\",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitle(),p.domEvent(this.filterOnTypeDomNode,\"input\")(this.onDidChangeFilterOnType,this,this.disposables),this.clearDomNode=o.append(l,o.$(\"button.clear.codicon.codicon-close\")),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=m.localize(0,null),this.keyboardNavigationEventFilter=e.options.keyboardNavigationEventFilter,t.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(e.options)}return Object.defineProperty(e.prototype,\"enabled\",{get:function(){return this._enabled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"pattern\",{get:function(){return this._pattern},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterOnType\",{get:function(){return this._filterOnType},enumerable:!0,configurable:!0}),\ne.prototype.updateOptions=function(e){e.simpleKeyboardNavigation?this.disable():this.enable(),void 0!==e.filterOnType&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(),this.render(),this.automaticKeyboardNavigation||this.onEventOrInput(\"\")},e.prototype.enable=function(){var e=this;if(!this._enabled){var t=s.Event.chain(p.domEvent(this.view.getHTMLElement(),\"keydown\")).filter((function(t){return!k(t.target)||t.target===e.filterOnTypeDomNode})).filter((function(e){return\"Dead\"!==e.key&&!/^Media/.test(e.key)})).map((function(e){return new u.StandardKeyboardEvent(e)})).filter(this.keyboardNavigationEventFilter||function(){return!0}).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).filter((function(t){\nreturn e.keyboardNavigationDelegate.mightProducePrintableCharacter(t)||(e.pattern.length>0||e.triggered)&&(9===t.keyCode||1===t.keyCode)&&!t.altKey&&!t.ctrlKey&&!t.metaKey||1===t.keyCode&&(_.isMacintosh?t.altKey&&!t.metaKey:t.ctrlKey)&&!t.shiftKey})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).event,n=p.domEvent(this.clearDomNode,\"click\");s.Event.chain(s.Event.any(t,n)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern=\"\",this.tree.refilter(),this.render(),this._enabled=!0,this.triggered=!1}},e.prototype.disable=function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)},e.prototype.onEventOrInput=function(e){\n\"string\"==typeof e?this.onInput(e):e instanceof MouseEvent||9===e.keyCode||1===e.keyCode&&(_.isMacintosh?e.altKey:e.ctrlKey)?this.onInput(\"\"):1===e.keyCode?this.onInput(0===this.pattern.length?\"\":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)},e.prototype.onInput=function(e){var t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,(function(e){return!g.FuzzyScore.isDefault(e.filterData)}));var n=this.tree.getFocus();if(n.length>0){var i=n[0];null===this.tree.getRelativeTop(i)&&this.tree.reveal(i,.5)}this.render(),e||(this.triggered=!1)},e.prototype.onDragStart=function(){\nvar e=this,t=this.view.getHTMLElement(),i=o.getDomNodePagePosition(t).left,r=t.clientWidth,s=r/2,a=this.domNode.clientWidth,l=new n.DisposableStore,u=this.positionClassName,c=function(){switch(u){case\"nw\":e.domNode.style.top=\"4px\",e.domNode.style.left=\"4px\";break;case\"ne\":e.domNode.style.top=\"4px\",e.domNode.style.left=r-a-6+\"px\"}};c(),o.removeClass(this.domNode,u),o.addClass(this.domNode,\"dragging\"),l.add(n.toDisposable((function(){return o.removeClass(e.domNode,\"dragging\")}))),p.domEvent(document,\"dragover\")((function(e){e.preventDefault();var t=e.screenX-i;e.dataTransfer&&(e.dataTransfer.dropEffect=\"none\"),u=t<s?\"nw\":\"ne\",c()}),null,l),p.domEvent(this.domNode,\"dragend\")((function(){e.positionClassName=u,e.domNode.className=\"monaco-list-type-filter \"+e.positionClassName,e.domNode.style.top=\"\",e.domNode.style.left=\"\",n.dispose(l)}),null,l),d.StaticDND.CurrentDragAndDropData=new d.DragAndDropData(\"vscode-ui\"),l.add(n.toDisposable((function(){return d.StaticDND.CurrentDragAndDropData=void 0})))},\ne.prototype.onDidSpliceModel=function(){this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())},e.prototype.onDidChangeFilterOnType=function(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitle()},e.prototype.updateFilterOnTypeTitle=function(){this.filterOnType?this.filterOnTypeDomNode.title=m.localize(1,null):this.filterOnTypeDomNode.title=m.localize(2,null)},e.prototype.render=function(){var e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=m.localize(3,null),this._empty=!0):(this.messageDomNode.innerHTML=\"\",this._empty=!1),o.toggleClass(this.domNode,\"no-matches\",e),this.domNode.title=m.localize(4,null,this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?\"…\"+this.pattern.substr(this.pattern.length-16):this.pattern,\nthis._onDidChangeEmptyState.fire(this._empty)},e.prototype.shouldAllowFocus=function(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!g.FuzzyScore.isDefault(e.filterData))},e.prototype.dispose=function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),n.dispose(this.disposables)},e}();function k(e){return\"INPUT\"===e.tagName||\"TEXTAREA\"===e.tagName}function T(e){return{elements:e.elements.map((function(e){return e.element})),browserEvent:e.browserEvent}}function R(e,t){t(e),e.children.forEach((function(e){return R(e,t)}))}var O=function(){function e(e){this.identityProvider=e,this.nodes=[],this._onDidChange=new s.Emitter,this.onDidChange=this._onDidChange.event}return Object.defineProperty(e.prototype,\"nodeSet\",{get:function(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet},enumerable:!0,configurable:!0}),\ne.prototype.set=function(e,t){c.equals(this.nodes,e)||this._set(e,!1,t)},e.prototype._set=function(e,t,n){if(this.nodes=a(e),this.elements=void 0,this._nodeSet=void 0,!t){var i=this;this._onDidChange.fire({get elements(){return i.get()},browserEvent:n})}},e.prototype.get=function(){return this.elements||(this.elements=this.nodes.map((function(e){return e.element}))),a(this.elements)},e.prototype.getNodes=function(){return this.nodes},e.prototype.has=function(e){return this.nodeSet.has(e)},e.prototype.onDidModelSplice=function(e){var t=this,n=e.insertedNodes,i=e.deletedNodes;if(!this.identityProvider){var o=this.createNodeSet(),r=function(e){return o.delete(e)};return i.forEach((function(e){return R(e,r)})),void this.set(y.values(o))}var s=new Set,a=function(e){return s.add(t.identityProvider.getId(e.element).toString())};i.forEach((function(e){return R(e,a)}));var l=new Map,u=function(e){return l.set(t.identityProvider.getId(e.element).toString(),e)};n.forEach((function(e){return R(e,u)}))\n;for(var d=[],c=0,h=this.nodes;c<h.length;c++){var p=h[c],g=this.identityProvider.getId(p.element).toString();if(s.has(g)){var f=l.get(g);f&&d.push(f)}else d.push(p)}this._set(d,!0)},e.prototype.createNodeSet=function(){for(var e=new Set,t=0,n=this.nodes;t<n.length;t++){var i=n[t];e.add(i)}return e},e}(),P=function(e){function t(t,n){var i=e.call(this,t)||this;return i.tree=n,i}return r(t,e),t.prototype.onPointer=function(t){if(!k(t.browserEvent.target)){var n=t.element;if(!n)return e.prototype.onPointer.call(this,t);if(this.isSelectionRangeChangeEvent(t)||this.isSelectionSingleChangeEvent(t))return e.prototype.onPointer.call(this,t);var i=o.hasClass(t.browserEvent.target,\"monaco-tl-twistie\");if(!this.tree.openOnSingleClick&&2!==t.browserEvent.detail&&!i)return e.prototype.onPointer.call(this,t);var r=!1;if((r=\"function\"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(n.element):!!this.tree.expandOnlyOnTwistieClick)&&!i)return e.prototype.onPointer.call(this,t);if(n.collapsible){\nvar s=this.tree.model,a=s.getNodeLocation(n),l=t.browserEvent.altKey;if(s.setCollapsed(a,void 0,l),r&&i)return}e.prototype.onPointer.call(this,t)}},t.prototype.onDoubleClick=function(t){o.hasClass(t.browserEvent.target,\"monaco-tl-twistie\")||e.prototype.onDoubleClick.call(this,t)},t}(i.MouseController),A=function(e){function t(t,n,i,o,r,s,a){var l=e.call(this,t,n,i,o,a)||this;return l.focusTrait=r,l.selectionTrait=s,l}return r(t,e),t.prototype.createMouseController=function(e){return new P(this,e.tree)},t.prototype.splice=function(t,n,i){var o=this;if(void 0===i&&(i=[]),e.prototype.splice.call(this,t,n,i),0!==i.length){var r=[],s=[];i.forEach((function(e,n){o.focusTrait.has(e)&&r.push(t+n),o.selectionTrait.has(e)&&s.push(t+n)})),r.length>0&&e.prototype.setFocus.call(this,c.distinctES6(a(e.prototype.getFocus.call(this),r))),s.length>0&&e.prototype.setSelection.call(this,c.distinctES6(a(e.prototype.getSelection.call(this),s)))}},t.prototype.setFocus=function(t,n,i){var o=this;void 0===i&&(i=!1),\ne.prototype.setFocus.call(this,t,n),i||this.focusTrait.set(t.map((function(e){return o.element(e)})),n)},t.prototype.setSelection=function(t,n,i){var o=this;void 0===i&&(i=!1),e.prototype.setSelection.call(this,t,n),i||this.selectionTrait.set(t.map((function(e){return o.element(e)})),n)},t}(i.List),F=function(){function e(e,t,r,a,d){var h=this;void 0===d&&(d={}),this._options=d,this.eventBufferer=new s.EventBufferer,this.disposables=new n.DisposableStore,this._onWillRefilter=new s.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new s.Emitter;var p,g,f,m=new D(r),v=new s.Relay,_=new s.Relay,y=new N(_.event);this.renderers=a.map((function(e){return new x(e,(function(){return h.model}),v.event,y,d)}));for(var C=0,b=this.renderers;C<b.length;C++){var S=b[C];this.disposables.add(S)}d.keyboardNavigationLabelProvider&&(p=new I(this,d.keyboardNavigationLabelProvider,d.filter),d=l(l({},d),{filter:p}),this.disposables.add(p)),this.focus=new O(d.identityProvider),\nthis.selection=new O(d.identityProvider),this.view=new A(e,t,m,this.renderers,this.focus,this.selection,l(l({},(g=function(){return h.model},(f=d)&&l(l({},f),{identityProvider:f.identityProvider&&{getId:function(e){return f.identityProvider.getId(e.element)}},dnd:f.dnd&&new E(g,f.dnd),multipleSelectionController:f.multipleSelectionController&&{isSelectionSingleChangeEvent:function(e){return f.multipleSelectionController.isSelectionSingleChangeEvent(l(l({},e),{element:e.element}))},isSelectionRangeChangeEvent:function(e){return f.multipleSelectionController.isSelectionRangeChangeEvent(l(l({},e),{element:e.element}))}},accessibilityProvider:f.accessibilityProvider&&l(l({},f.accessibilityProvider),{getAriaLabel:function(e){return f.accessibilityProvider.getAriaLabel(e.element)},getAriaLevel:function(e){return e.depth},getActiveDescendantId:f.accessibilityProvider.getActiveDescendantId&&function(e){return f.accessibilityProvider.getActiveDescendantId(e.element)}}),\nkeyboardNavigationLabelProvider:f.keyboardNavigationLabelProvider&&l(l({},f.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(e){return f.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),enableKeyboardNavigation:f.simpleKeyboardNavigation,ariaProvider:{getSetSize:function(e){var t=g(),n=t.getNodeLocation(e),i=t.getParentNodeLocation(n);return t.getNode(i).visibleChildrenCount},getPosInSet:function(e){return e.visibleChildIndex+1},isChecked:f.ariaProvider&&f.ariaProvider.isChecked?function(e){return f.ariaProvider.isChecked(e.element)}:void 0,getRole:f.ariaProvider&&f.ariaProvider.getRole?function(e){return f.ariaProvider.getRole(e.element)}:void 0}}))),{tree:this})),this.model=this.createModel(e,this.view,d),v.input=this.model.onDidChangeCollapseState;var w=s.Event.forEach(this.model.onDidSplice,(function(e){h.eventBufferer.bufferEvents((function(){h.focus.onDidModelSplice(e),h.selection.onDidModelSplice(e)}))}));if(w((function(){return null\n}),null,this.disposables),_.input=s.Event.chain(s.Event.any(w,this.focus.onDidChange,this.selection.onDidChange)).debounce((function(){return null}),0).map((function(){for(var e=new Set,t=0,n=h.focus.getNodes();t<n.length;t++){var i=n[t];e.add(i)}for(var o=0,r=h.selection.getNodes();o<r.length;o++){i=r[o];e.add(i)}return c.fromSet(e)})).event,!1!==d.keyboardSupport){var T=s.Event.chain(this.view.onKeyDown).filter((function(e){return!k(e.target)})).map((function(e){return new u.StandardKeyboardEvent(e)}));T.filter((function(e){return 15===e.keyCode})).on(this.onLeftArrow,this,this.disposables),T.filter((function(e){return 17===e.keyCode})).on(this.onRightArrow,this,this.disposables),T.filter((function(e){return 10===e.keyCode})).on(this.onSpace,this,this.disposables)}if(d.keyboardNavigationLabelProvider){var R=d.keyboardNavigationDelegate||i.DefaultKeyboardNavigationDelegate;this.typeFilterController=new M(this,this.model,this.view,p,R),this.focusNavigationFilter=function(e){\nreturn h.typeFilterController.shouldAllowFocus(e)},this.disposables.add(this.typeFilterController)}this.styleElement=o.createStyleSheet(this.view.getHTMLElement()),o.toggleClass(this.getHTMLElement(),\"always\",this._options.renderIndentGuides===L.Always)}return Object.defineProperty(e.prototype,\"onDidChangeFocus\",{get:function(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeSelection\",{get:function(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidOpen\",{get:function(){return s.Event.map(this.view.onDidOpen,T)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.view.onDidFocus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"openOnSingleClick\",{get:function(){return void 0===this._options.openOnSingleClick||this._options.openOnSingleClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"expandOnlyOnTwistieClick\",{get:function(){return void 0!==this._options.expandOnlyOnTwistieClick&&this._options.expandOnlyOnTwistieClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidDispose\",{get:function(){return this.view.onDidDispose},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e){void 0===e&&(e={}),this._options=l(l({},this._options),e);for(var t=0,n=this.renderers;t<n.length;t++){n[t].updateOptions(e)}this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation}),this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),\no.toggleClass(this.getHTMLElement(),\"always\",this._options.renderIndentGuides===L.Always)},Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),e.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.view.scrollTop},set:function(e){this.view.scrollTop=e},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.view.domFocus()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.style=function(e){var t=\".\"+this.view.domId,n=[];e.treeIndentGuidesStroke&&(n.push(\".monaco-list\"+t+\":hover .monaco-tl-indent > .indent-guide, .monaco-list\"+t+\".always .monaco-tl-indent > .indent-guide  { border-color: \"+e.treeIndentGuidesStroke.transparent(.4)+\"; }\"),n.push(\".monaco-list\"+t+\" .monaco-tl-indent > .indent-guide.active { border-color: \"+e.treeIndentGuidesStroke+\"; }\"));var i=n.join(\"\\n\")\n;i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i),this.view.style(e)},e.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.setCollapsed(e,!0,t)},e.prototype.expand=function(e,t){return void 0===t&&(t=!1),this.model.setCollapsed(e,!1,t)},e.prototype.isCollapsible=function(e){return this.model.isCollapsible(e)},e.prototype.setCollapsible=function(e,t){return this.model.setCollapsible(e,t)},e.prototype.isCollapsed=function(e){return this.model.isCollapsed(e)},e.prototype.refilter=function(){this._onWillRefilter.fire(void 0),this.model.refilter()},e.prototype.setSelection=function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.selection.set(i,t);var o=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setSelection(o,t,!0)},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.setFocus=function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.focus.set(i,t)\n;var o=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setFocus(o,t,!0)},e.prototype.focusNext=function(e,t,n,i){void 0===e&&(e=1),void 0===t&&(t=!1),void 0===i&&(i=this.focusNavigationFilter),this.view.focusNext(e,t,n,i)},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.reveal=function(e,t){this.model.expandTo(e);var n=this.model.getListIndex(e);-1!==n&&this.view.reveal(n,t)},e.prototype.getRelativeTop=function(e){var t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)},e.prototype.onLeftArrow=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!0)){var o=this.model.getParentNodeLocation(i);if(!o)return;var r=this.model.getListIndex(o);this.view.reveal(r),this.view.setFocus([r])}}},e.prototype.onRightArrow=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements()\n;if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!1)){if(!n.children.some((function(e){return e.visible})))return;var o=this.view.getFocus()[0]+1;this.view.reveal(o),this.view.setFocus([o])}}},e.prototype.onSpace=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n),o=e.browserEvent.altKey;this.model.setCollapsed(i,void 0,o)}},e.prototype.dispose=function(){n.dispose(this.disposables),this.view.dispose()},e}();t.AbstractTree=F})),define(n[407],i([0,1,154,130]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i,o,r,s){void 0===s&&(s={});var a=e.call(this,t,n,i,o,s)||this;return a.user=t,a.dataSource=r,a.identityProvider=s.identityProvider,a}return r(t,e),t.prototype.createModel=function(e,t,n){return new i.ObjectTreeModel(e,t,n)},t}(n.AbstractTree);t.DataTree=o})),\ndefine(n[206],i([0,1,154,130,243,101]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n,i,o,r){return void 0===r&&(r={}),e.call(this,t,n,i,o,r)||this}return r(t,e),Object.defineProperty(t.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),t.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},t.prototype.rerender=function(e){void 0!==e?this.model.rerender(e):this.view.rerender()},t.prototype.hasElement=function(e){return this.model.has(e)},t.prototype.createModel=function(e,t,n){return new i.ObjectTreeModel(e,t,n)},t}(n.AbstractTree);t.ObjectTree=a;var u=function(){function e(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}return Object.defineProperty(e.prototype,\"compressedTreeNodeProvider\",{get:function(){\nreturn this._compressedTreeNodeProvider()},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){var o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(n.compressedTreeNode=void 0,this.renderer.renderElement(e,t,n.data,i)):(n.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,n.data,i))},e.prototype.disposeElement=function(e,t,n,i){n.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(n.compressedTreeNode,t,n.data,i):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.data,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.data)},e.prototype.renderTwistie=function(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)},h([s.memoize],e.prototype,\"compressedTreeNodeProvider\",null),e}();var d=function(e){function t(t,n,i,o,r){\nvoid 0===r&&(r={});var s=this,a=function(){return s},d=o.map((function(e){return new u(a,e)}));return s=e.call(this,t,n,i,d,function(e,t){return t&&l(l({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel:function(n){var i;try{i=e().getCompressedTreeNode(n)}catch(e){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n)}return 1===i.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}(a,r))||this}return r(t,e),t.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},t.prototype.createModel=function(e,t,n){return new o.CompressibleObjectTreeModel(e,t,n)},t.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),void 0!==t.compressionEnabled&&this.model.setCompressionEnabled(t.compressionEnabled)},t.prototype.getCompressedTreeNode=function(e){\nreturn void 0===e&&(e=null),this.model.getCompressedTreeNode(e)},t}(a);t.CompressibleObjectTree=d}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[408],i([0,1,154,206,99,2,4,15,54,140,10,6,38,129]),(function(e,t,n,i,o,s,u,h,p,g,f,m,v,_){\"use strict\";function y(e){return l(l({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function C(e,t){return!!t.parent&&(t.parent===e||C(e,t.parent))}Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this.node=e}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.node.element.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){return this.node.children.map((function(t){return new e(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{\nget:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}(),S=function(){function e(e,t,n){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.templateId=e.templateId}\nreturn e.prototype.renderTemplate=function(e){return{templateData:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.renderTwistie=function(e,t){return m.toggleClass(t,\"codicon-loading\",e.slow),!1},e.prototype.disposeElement=function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.dispose=function(){this.renderedNodes.clear()},e}();function w(e){return{browserEvent:e.browserEvent,elements:e.elements.map((function(e){return e.element}))}}var E=function(e){function t(t){var n=e.call(this,t.elements.map((function(e){return e.element})))||this;return n.data=t,n}return r(t,e),t}(g.ElementsDragAndDropData);function L(e){return e instanceof g.ElementsDragAndDropData?new E(e):e}var D=function(){function e(e){this.dnd=e}\nreturn e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e.element)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(L(e),t)},e.prototype.onDragOver=function(e,t,n,i,o){return void 0===o&&(o=!0),this.dnd.onDragOver(L(e),t&&t.element,n,i)},e.prototype.drop=function(e,t,n,i){this.dnd.drop(L(e),t&&t.element,n,i)},e.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e}();function N(e){return e&&l(l({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:function(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new D(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:function(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(l(l({},t),{element:t.element}))},isSelectionRangeChangeEvent:function(t){\nreturn e.multipleSelectionController.isSelectionRangeChangeEvent(l(l({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&l(l({},e.accessibilityProvider),{getAriaLabel:function(t){return e.accessibilityProvider.getAriaLabel(t.element)},getAriaLevel:e.accessibilityProvider.getAriaLevel&&function(t){return e.accessibilityProvider.getAriaLevel(t.element)},getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&function(t){return e.accessibilityProvider.getActiveDescendantId(t.element)}}),filter:e.filter&&{filter:function(t,n){return e.filter.filter(t.element,n)}},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&l(l({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),sorter:void 0,expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:\"function\"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:function(t){\nreturn e.expandOnlyOnTwistieClick(t.element)},ariaProvider:e.ariaProvider&&{getPosInSet:function(t,n){return e.ariaProvider.getPosInSet(t.element,n)},getSetSize:function(t,n,i){return e.ariaProvider.getSetSize(t.element,n,i)},getRole:e.ariaProvider.getRole?function(t){return e.ariaProvider.getRole(t.element)}:void 0,isChecked:e.ariaProvider.isChecked?function(t){var n;return(null===(n=e.ariaProvider)||void 0===n?void 0:n.isChecked)(t.element)}:void 0},additionalScrollHeight:e.additionalScrollHeight})}function x(e,t){t(e),e.children.forEach((function(e){return x(e,t)}))}var I=function(){function e(e,t,n,i,r,a){void 0===a&&(a={}),this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new u.Emitter,this._onDidChangeNodeSlowState=new u.Emitter,this.nodeMapper=new o.WeakMapper((function(e){return new b(e)})),this.disposables=new s.DisposableStore,this.identityProvider=a.identityProvider,\nthis.autoExpandSingleChildren=void 0!==a.autoExpandSingleChildren&&a.autoExpandSingleChildren,this.sorter=a.sorter,this.collapseByDefault=a.collapseByDefault,this.tree=this.createTree(e,t,n,i,a),this.root=y({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=l(l({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}return Object.defineProperty(e.prototype,\"onDidChangeFocus\",{get:function(){return u.Event.map(this.tree.onDidChangeFocus,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeSelection\",{get:function(){return u.Event.map(this.tree.onDidChangeSelection,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidOpen\",{get:function(){return u.Event.map(this.tree.onDidOpen,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.tree.onDidFocus},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onDidDispose\",{get:function(){return this.tree.onDidDispose},enumerable:!0,configurable:!0}),e.prototype.createTree=function(e,t,o,r,s){var a=this,l=new n.ComposedTreeDelegate(o),u=r.map((function(e){return new S(e,a.nodeMapper,a._onDidChangeNodeSlowState.event)})),d=N(s)||{};return new i.ObjectTree(e,t,l,u,d)},e.prototype.updateOptions=function(e){void 0===e&&(e={}),this.tree.updateOptions(e)},e.prototype.getHTMLElement=function(){return this.tree.getHTMLElement()},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.tree.scrollTop},set:function(e){this.tree.scrollTop=e},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.tree.domFocus()},e.prototype.layout=function(e,t){this.tree.layout(e,t)},e.prototype.style=function(e){this.tree.style(e)},e.prototype.getInput=function(){return this.root.element},e.prototype.setInput=function(e,t){return d(this,void 0,void 0,(function(){var n;return c(this,(function(i){switch(i.label){case 0:\nreturn this.refreshPromises.forEach((function(e){return e.cancel()})),this.refreshPromises.clear(),this.root.element=e,n=t&&{viewState:t,focus:[],selection:[]},[4,this._updateChildren(e,!0,!1,n)];case 1:return i.sent(),n&&(this.tree.setFocus(n.focus),this.tree.setSelection(n.selection)),t&&\"number\"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop),[2]}}))}))},e.prototype._updateChildren=function(e,t,n,i){return void 0===e&&(e=this.root.element),void 0===t&&(t=!0),void 0===n&&(n=!1),d(this,void 0,void 0,(function(){var r;return c(this,(function(s){switch(s.label){case 0:if(void 0===this.root.element)throw new o.TreeError(this.user,\"Tree input not set\");return this.root.refreshPromise?[4,this.root.refreshPromise]:[3,3];case 1:return s.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 2:s.sent(),s.label=3;case 3:return r=this.getDataNode(e),[4,this.refreshAndRenderNode(r,t,i)];case 4:if(s.sent(),n)try{this.tree.rerender(r)}catch(e){}return[2]}}))}))},e.prototype.rerender=function(e){\nif(void 0!==e&&e!==this.root.element){var t=this.getDataNode(e);this.tree.rerender(t)}else this.tree.rerender()},e.prototype.collapse=function(e,t){void 0===t&&(t=!1);var n=this.getDataNode(e);return this.tree.collapse(n===this.root?null:n,t)},e.prototype.expand=function(e,t){return void 0===t&&(t=!1),d(this,void 0,void 0,(function(){var n,i;return c(this,(function(r){switch(r.label){case 0:if(void 0===this.root.element)throw new o.TreeError(this.user,\"Tree input not set\");return this.root.refreshPromise?[4,this.root.refreshPromise]:[3,3];case 1:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 2:r.sent(),r.label=3;case 3:return n=this.getDataNode(e),this.tree.hasElement(n)&&!this.tree.isCollapsible(n)?[2,!1]:n.refreshPromise?[4,this.root.refreshPromise]:[3,6];case 4:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 5:r.sent(),r.label=6;case 6:return n===this.root||n.refreshPromise||this.tree.isCollapsed(n)?(i=this.tree.expand(n===this.root?null:n,t),\nn.refreshPromise?[4,this.root.refreshPromise]:[3,9]):[2,!1];case 7:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 8:r.sent(),r.label=9;case 9:return[2,i]}}))}))},e.prototype.setSelection=function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setSelection(i,t)},e.prototype.getSelection=function(){return this.tree.getSelection().map((function(e){return e.element}))},e.prototype.setFocus=function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setFocus(i,t)},e.prototype.getFocus=function(){return this.tree.getFocus().map((function(e){return e.element}))},e.prototype.reveal=function(e,t){this.tree.reveal(this.getDataNode(e),t)},e.prototype.getDataNode=function(e){var t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new o.TreeError(this.user,\"Data tree node not found: \"+e);return t},e.prototype.refreshAndRenderNode=function(e,t,n){return d(this,void 0,void 0,(function(){return c(this,(function(i){switch(i.label){case 0:\nreturn[4,this.refreshNode(e,t,n)];case 1:return i.sent(),this.render(e,n),[2]}}))}))},e.prototype.refreshNode=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o=this;return c(this,(function(r){return this.subTreeRefreshPromises.forEach((function(r,s){!i&&function(e,t){return e===t||C(e,t)||C(t,e)}(s,e)&&(i=r.then((function(){return o.refreshNode(e,t,n)})))})),i?[2,i]:[2,this.doRefreshSubTree(e,t,n)]}))}))},e.prototype.doRefreshSubTree=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r=this;return c(this,(function(s){switch(s.label){case 0:e.refreshPromise=new Promise((function(e){return i=e})),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((function(){e.refreshPromise=void 0,r.subTreeRefreshPromises.delete(e)})),s.label=1;case 1:return s.trys.push([1,,4,5]),[4,this.doRefreshNode(e,t,n)];case 2:return o=s.sent(),e.stale=!1,[4,Promise.all(o.map((function(e){return r.doRefreshSubTree(e,t,n)})))];case 3:return s.sent(),[3,5];case 4:return i(),[7];case 5:\nreturn[2]}}))}))},e.prototype.doRefreshNode=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,a=this;return c(this,(function(l){switch(l.label){case 0:e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren?((o=h.timeout(800)).then((function(){e.slow=!0,a._onDidChangeNodeSlowState.fire(e)}),(function(e){return null})),i=this.doGetChildren(e).finally((function(){return o.cancel()}))):i=Promise.resolve([]),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,i];case 2:return r=l.sent(),[2,this.setChildren(e,r,t,n)];case 3:if(s=l.sent(),e!==this.root&&this.tree.collapse(e===this.root?null:e),f.isPromiseCanceledError(s))return[2,[]];throw s;case 4:return e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e)),[7];case 5:return[2]}}))}))},e.prototype.doGetChildren=function(e){var t=this,n=this.refreshPromises.get(e);return n||(n=h.createCancelablePromise((function(){return d(t,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:\nreturn[4,this.dataSource.getChildren(e.element)];case 1:return t=n.sent(),[2,this.processChildren(t)]}}))}))})),this.refreshPromises.set(e,n),n.finally((function(){return t.refreshPromises.delete(e)})))},e.prototype._onDidChangeCollapseState=function(e){var t=e.node,n=e.deep;!t.collapsed&&t.element.stale&&(n?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(f.onUnexpectedError))},e.prototype.setChildren=function(e,t,n,i){var o,r=this;if(0===e.children.length&&0===t.length)return[];for(var s=new Map,l=new Map,u=0,d=e.children;u<d.length;u++){var c=d[u];if(s.set(c.element,c),this.identityProvider){var h=this.tree.isCollapsed(c);l.set(c.id,{node:c,collapsed:h})}}for(var p=[],g=t.map((function(t){var o=!!r.dataSource.hasChildren(t);if(!r.identityProvider){var a=y({element:t,parent:e,hasChildren:o});return o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var u=r.identityProvider.getId(t).toString(),d=l.get(u);if(d){a=d.node\n;return s.delete(a.element),r.nodes.delete(a.element),r.nodes.set(t,a),a.element=t,a.hasChildren=o,n?d.collapsed?(a.children.forEach((function(e){return x(e,(function(e){return r.nodes.delete(e.element)}))})),a.children.splice(0,a.children.length),a.stale=!0):p.push(a):o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var c=y({element:t,parent:e,id:u,hasChildren:o});return i&&i.viewState.focus&&i.viewState.focus.indexOf(u)>-1&&i.focus.push(c),i&&i.viewState.selection&&i.viewState.selection.indexOf(u)>-1&&i.selection.push(c),i&&i.viewState.expanded&&i.viewState.expanded.indexOf(u)>-1?p.push(c):o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(c.collapsedByDefault=!1,p.push(c)),c})),f=0,m=v.values(s);f<m.length;f++){x(m[f],(function(e){return r.nodes.delete(e.element)}))}for(var _=0,C=g;_<C.length;_++){c=C[_];this.nodes.set(c.element,c)}return(o=e.children).splice.apply(o,a([0,e.children.length],g)),\ne!==this.root&&this.autoExpandSingleChildren&&1===g.length&&0===p.length&&(g[0].collapsedByDefault=!1,p.push(g[0])),p},e.prototype.render=function(e,t){var n=this,i=e.children.map((function(e){return n.asTreeElement(e,t)}));this.tree.setChildren(e===this.root?null:e,i),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()},e.prototype.asTreeElement=function(e,t){var n,i=this;return e.stale?{element:e,collapsible:e.hasChildren,collapsed:!0}:(n=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?p.Iterator.map(p.Iterator.fromArray(e.children),(function(e){return i.asTreeElement(e,t)})):[],collapsible:e.hasChildren,collapsed:n})},e.prototype.processChildren=function(e){return this.sorter&&e.sort(this.sorter.compare.bind(this.sorter)),e},e.prototype.dispose=function(){this.disposables.dispose()},e}();t.AsyncDataTree=I;var M=function(){function e(e){this.node=e}\nreturn Object.defineProperty(e.prototype,\"element\",{get:function(){return{elements:this.node.element.elements.map((function(e){return e.element})),incompressible:this.node.element.incompressible}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){return this.node.children.map((function(t){return new e(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{get:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,\nconfigurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}(),k=function(){function e(e,t,n,i){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=n,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}return e.prototype.renderTemplate=function(e){return{templateData:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.renderCompressedElements=function(e,t,n,i){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)},e.prototype.renderTwistie=function(e,t){return m.toggleClass(t,\"codicon-loading\",e.slow),!1},e.prototype.disposeElement=function(e,t,n,i){\nthis.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.disposeCompressedElements=function(e,t,n,i){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.dispose=function(){this.renderedNodes.clear(),this.disposables=s.dispose(this.disposables)},e}();var T=function(e){function t(t,n,i,r,s,a,l){void 0===l&&(l={});var u=e.call(this,t,n,i,s,a,l)||this;return u.compressionDelegate=r,u.compressibleNodeMapper=new o.WeakMapper((function(e){return new M(e)})),u.filter=l.filter,u}return r(t,e),t.prototype.createTree=function(e,t,o,r,s){var a=this,u=new n.ComposedTreeDelegate(o),d=r.map((function(e){return new k(e,a.nodeMapper,(function(){return a.compressibleNodeMapper}),a._onDidChangeNodeSlowState.event)})),c=function(e){var t=e&&N(e);return t&&l(l({},t),{\nkeyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&l(l({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((function(e){return e.element})))}})})}(s)||{};return new i.CompressibleObjectTree(e,t,u,d,c)},t.prototype.asTreeElement=function(t,n){return l({incompressible:this.compressionDelegate.isIncompressible(t.element)},e.prototype.asTreeElement.call(this,t,n))},t.prototype.updateOptions=function(e){void 0===e&&(e={}),this.tree.updateOptions(e)},t.prototype.render=function(t,n){var i=this;if(!this.identityProvider)return e.prototype.render.call(this,t,n);var o=function(e){return i.identityProvider.getId(e).toString()},r=function(e){for(var t=new Set,n=0,r=e;n<r.length;n++){var s=r[n],a=i.tree.getCompressedTreeNode(s===i.root?null:s);if(a.element)for(var l=0,u=a.element.elements;l<u.length;l++){var d=u[l];t.add(o(d.element))}}return t\n},s=r(this.tree.getSelection()),a=r(this.tree.getFocus());e.prototype.render.call(this,t,n);var l=this.getSelection(),u=!1,d=this.getFocus(),c=!1,h=function(e){var t=e.element;if(t)for(var n=0;n<t.elements.length;n++){var i=o(t.elements[n].element),r=t.elements[t.elements.length-1].element;s.has(i)&&-1===l.indexOf(r)&&(l.push(r),u=!0),a.has(i)&&-1===d.indexOf(r)&&(d.push(r),c=!0)}e.children.forEach(h)};h(this.tree.getCompressedTreeNode(t===this.root?null:t)),u&&this.setSelection(l),c&&this.setFocus(d)},t.prototype.processChildren=function(t){var n=this;return this.filter&&(t=t.filter((function(e){var t,i=n.filter.filter(e,1),o=\"boolean\"==typeof(t=i)?t?1:0:_.isFilterResult(t)?_.getVisibleState(t.visibility):_.getVisibleState(t);if(2===o)throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");return 1===o}))),e.prototype.processChildren.call(this,t)},t}(I);t.CompressibleAsyncDataTree=T})),define(n[409],i([7,8]),(function(e,t){return e.create(\"vs/base/common/keybindingLabels\",t)\n})),define(n[207],i([0,1,409]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){void 0===n&&(n=t),this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=n}return e.prototype.toLabel=function(e,t,n){if(0===t.length)return null;for(var i=[],r=0,s=t.length;r<s;r++){var a=t[r],l=n(a);if(null===l)return null;i[r]=o(a,l,this.modifierLabels[e])}return i.join(\" \")},e}();function o(e,t,n){if(null===t)return\"\";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),i.push(t),i.join(n.separator)}t.ModifierLabelProvider=i,t.UILabelProvider=new i({ctrlKey:\"⌃\",shiftKey:\"⇧\",altKey:\"⌥\",metaKey:\"⌘\",separator:\"\"},{ctrlKey:n.localize(0,null),shiftKey:n.localize(1,null),altKey:n.localize(2,null),metaKey:n.localize(3,null),separator:\"+\"},{ctrlKey:n.localize(4,null),shiftKey:n.localize(5,null),altKey:n.localize(6,null),metaKey:n.localize(7,null),\nseparator:\"+\"}),t.AriaLabelProvider=new i({ctrlKey:n.localize(8,null),shiftKey:n.localize(9,null),altKey:n.localize(10,null),metaKey:n.localize(11,null),separator:\"+\"},{ctrlKey:n.localize(12,null),shiftKey:n.localize(13,null),altKey:n.localize(14,null),metaKey:n.localize(15,null),separator:\"+\"},{ctrlKey:n.localize(16,null),shiftKey:n.localize(17,null),altKey:n.localize(18,null),metaKey:n.localize(19,null),separator:\"+\"})})),define(n[410],i([0,1,31,207,6,402,270]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=o.$,a=function(){function e(e,t,n){this.os=t,this.options=n,this.domNode=o.append(e,s(\".monaco-keybinding\")),this.didEverRender=!1,e.appendChild(this.domNode)}return e.prototype.set=function(t,n){this.didEverRender&&this.keybinding===t&&e.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())},e.prototype.render=function(){if(o.clearNode(this.domNode),this.keybinding){var e=this.keybinding.getParts(),t=e[0],n=e[1]\n;t&&this.renderPart(this.domNode,t,this.matches?this.matches.firstPart:null),n&&(o.append(this.domNode,s(\"span.monaco-keybinding-key-chord-separator\",void 0,\" \")),this.renderPart(this.domNode,n,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()||\"\"}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0},e.prototype.renderPart=function(e,t,n){var o=i.UILabelProvider.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,o.ctrlKey,Boolean(null==n?void 0:n.ctrlKey),o.separator),t.shiftKey&&this.renderKey(e,o.shiftKey,Boolean(null==n?void 0:n.shiftKey),o.separator),t.altKey&&this.renderKey(e,o.altKey,Boolean(null==n?void 0:n.altKey),o.separator),t.metaKey&&this.renderKey(e,o.metaKey,Boolean(null==n?void 0:n.metaKey),o.separator);var r=t.keyLabel;r&&this.renderKey(e,r,Boolean(null==n?void 0:n.keyCode),\"\")},e.prototype.renderKey=function(e,t,n,i){o.append(e,s(\"span.monaco-keybinding-key\"+(n?\".highlight\":\"\"),void 0,t)),\ni&&o.append(e,s(\"span.monaco-keybinding-key-separator\",void 0,i))},e.prototype.renderUnbound=function(e){o.append(e,s(\"span.monaco-keybinding-key\",void 0,r.localize(0,null)))},e.areSame=function(e,t){return e===t||!e&&!t||!!e&&!!t&&n.equals(e.firstPart,t.firstPart)&&n.equals(e.chordPart,t.chordPart)},e}();t.KeybindingLabel=a})),define(n[411],i([7,8]),(function(e,t){return e.create(\"vs/base/common/severity\",t)})),define(n[112],i([0,1,411,5]),(function(e,t,n,i){\"use strict\";var o;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ignore=0]=\"Ignore\",e[e.Info=1]=\"Info\",e[e.Warning=2]=\"Warning\",e[e.Error=3]=\"Error\"}(o||(o={})),function(e){var t=\"error\",o=\"warning\",r=\"warn\",s=\"info\",a=Object.create(null);a[e.Error]=n.localize(0,null),a[e.Warning]=n.localize(1,null),a[e.Info]=n.localize(2,null),e.fromValue=function(n){return n?i.equalsIgnoreCase(t,n)?e.Error:i.equalsIgnoreCase(o,n)||i.equalsIgnoreCase(r,n)?e.Warning:i.equalsIgnoreCase(s,n)?e.Info:e.Ignore:e.Ignore}}(o||(o={})),t.default=o})),\ndefine(n[412],i([7,8]),(function(e,t){return e.create(\"vs/base/parts/quickopen/browser/quickOpenModel\",t)})),define(n[155],i([0,1,412,21,139,70,133,6,410,16,19]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=0,p=function(){function e(e){void 0===e&&(e=[]),this.id=(h++).toString(),this.labelHighlights=e,this.descriptionHighlights=[]}return e.prototype.getId=function(){return this.id},e.prototype.getLabel=function(){},e.prototype.getLabelOptions=function(){},e.prototype.getAriaLabel=function(){return c.coalesce([this.getLabel(),this.getDescription(),this.getDetail()]).join(\", \")},e.prototype.getDetail=function(){},e.prototype.getIcon=function(){},e.prototype.getDescription=function(){},e.prototype.getTooltip=function(){},e.prototype.getDescriptionTooltip=function(){},e.prototype.getKeybinding=function(){},e.prototype.isHidden=function(){return!!this.hidden},e.prototype.setHighlights=function(e,t,n){this.labelHighlights=e,this.descriptionHighlights=t,\nthis.detailHighlights=n},e.prototype.getHighlights=function(){return[this.labelHighlights,this.descriptionHighlights,this.detailHighlights]},e.prototype.run=function(e,t){return!1},e}();t.QuickOpenEntry=p;var g=function(e){function t(t,n,i){var o=e.call(this)||this;return o.entry=t,o.groupLabel=n,o.withBorder=i,o}return r(t,e),t.prototype.getGroupLabel=function(){return this.groupLabel},t.prototype.setGroupLabel=function(e){this.groupLabel=e},t.prototype.showBorder=function(){return!!this.withBorder},t.prototype.setShowBorder=function(e){this.withBorder=e},t.prototype.getLabel=function(){return this.entry?this.entry.getLabel():e.prototype.getLabel.call(this)},t.prototype.getLabelOptions=function(){return this.entry?this.entry.getLabelOptions():e.prototype.getLabelOptions.call(this)},t.prototype.getAriaLabel=function(){return this.entry?this.entry.getAriaLabel():e.prototype.getAriaLabel.call(this)},t.prototype.getDetail=function(){return this.entry?this.entry.getDetail():e.prototype.getDetail.call(this)},\nt.prototype.getIcon=function(){return this.entry?this.entry.getIcon():e.prototype.getIcon.call(this)},t.prototype.getDescription=function(){return this.entry?this.entry.getDescription():e.prototype.getDescription.call(this)},t.prototype.getHighlights=function(){return this.entry?this.entry.getHighlights():e.prototype.getHighlights.call(this)},t.prototype.isHidden=function(){return this.entry?this.entry.isHidden():e.prototype.isHidden.call(this)},t.prototype.setHighlights=function(t,n,i){this.entry?this.entry.setHighlights(t,n,i):e.prototype.setHighlights.call(this,t,n,i)},t.prototype.run=function(t,n){return this.entry?this.entry.run(t,n):e.prototype.run.call(this,t,n)},t}(p);t.QuickOpenEntryGroup=g;var f=function(){function e(){}return e.prototype.hasActions=function(e,t){return!1},e.prototype.getActions=function(e,t){return null},e}(),m=function(){function e(e,t){void 0===e&&(e=new f),this.actionProvider=e,this.actionRunner=t}return e.prototype.getHeight=function(e){return e.getDetail()?44:22},\ne.prototype.getTemplateId=function(e){return e instanceof g?\"quickOpenEntryGroup\":\"quickOpenEntry\"},e.prototype.renderTemplate=function(e,t,n){var i=document.createElement(\"div\");l.addClass(i,\"sub-content\"),t.appendChild(i);var r=l.$(\".quick-open-row\"),c=l.$(\".quick-open-row\"),h=l.$(\".quick-open-entry\",void 0,r,c);i.appendChild(h);var p=document.createElement(\"span\");r.appendChild(p);var g=new o.IconLabel(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportCodicons:!0}),f=document.createElement(\"span\");r.appendChild(f),l.addClass(f,\"quick-open-entry-keybinding\");var m=new u.KeybindingLabel(f,d.OS),v=document.createElement(\"div\");c.appendChild(v),l.addClass(v,\"quick-open-entry-meta\");var _,y=new a.HighlightedLabel(v,!0);\"quickOpenEntryGroup\"===e&&(_=document.createElement(\"div\"),l.addClass(_,\"results-group\"),t.appendChild(_)),l.addClass(t,\"actions\");var C=document.createElement(\"div\");return l.addClass(C,\"primary-action-bar\"),t.appendChild(C),{container:t,entry:h,icon:p,label:g,detail:y,\nkeybinding:m,group:_,actionBar:new s.ActionBar(C,{actionRunner:this.actionRunner})}},e.prototype.renderElement=function(e,t,n,i){this.actionProvider.hasActions(null,e)?l.addClass(n.container,\"has-actions\"):l.removeClass(n.container,\"has-actions\"),n.actionBar.context=e;var o=this.actionProvider.getActions(null,e);if(n.actionBar.isEmpty()&&o&&o.length>0?n.actionBar.push(o,{icon:!0,label:!1}):n.actionBar.isEmpty()||o&&0!==o.length||n.actionBar.clear(),e instanceof g&&e.getGroupLabel()?l.addClass(n.container,\"has-group-label\"):l.removeClass(n.container,\"has-group-label\"),e instanceof g){var r=e,s=n;r.showBorder()?(l.addClass(s.container,\"results-group-separator\"),i.pickerGroupBorder&&(s.container.style.borderTopColor=i.pickerGroupBorder.toString())):(l.removeClass(s.container,\"results-group-separator\"),s.container.style.borderTopColor=\"\");var a=r.getGroupLabel()||\"\";s.group&&(s.group.textContent=a,i.pickerGroupForeground&&(s.group.style.color=i.pickerGroupForeground.toString()))}if(e instanceof p){\nvar u=e.getHighlights(),d=u[0],c=u[1],h=u[2],f=e.getIcon()?\"quick-open-entry-icon \"+e.getIcon():\"\";n.icon.className=f;var m=e.getLabelOptions()||Object.create(null);m.matches=d||[],m.title=e.getTooltip(),m.descriptionTitle=e.getDescriptionTooltip()||e.getDescription(),m.descriptionMatches=c||[],n.label.setLabel(e.getLabel()||\"\",e.getDescription(),m),n.detail.set(e.getDetail(),h),n.keybinding.set(e.getKeybinding())}},e.prototype.disposeTemplate=function(e,t){t.actionBar.dispose(),t.actionBar=null,t.container=null,t.entry=null,t.keybinding=null,t.detail=null,t.group=null,t.icon=null,t.label.dispose(),t.label=null},e}(),v=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=new f),this._entries=e,this._dataSource=this,this._renderer=new m(t),this._filter=this,this._runner=this,this._accessibilityProvider=this}return Object.defineProperty(e.prototype,\"entries\",{get:function(){return this._entries},set:function(e){this._entries=e},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"dataSource\",{get:function(){return this._dataSource},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderer\",{get:function(){return this._renderer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"runner\",{get:function(){return this._runner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"accessibilityProvider\",{get:function(){return this._accessibilityProvider},enumerable:!0,configurable:!0}),e.prototype.getId=function(e){return e.getId()},e.prototype.getLabel=function(e){return i.withUndefinedAsNull(e.getLabel())},e.prototype.getAriaLabel=function(e){return e.getAriaLabel()?n.localize(0,null,e.getAriaLabel()):n.localize(1,null)},e.prototype.isVisible=function(e){return!e.isHidden()},e.prototype.run=function(e,t,n){return e.run(t,n)},e}();t.QuickOpenModel=v})),define(n[413],i([7,8]),(function(e,t){\nreturn e.create(\"vs/base/parts/quickopen/browser/quickOpenWidget\",t)})),define(n[414],i([0,1,413,16,21,253,152,283,274,56,137,6,2,27,31,45,281]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.onContextMenu=function(t,n,o){return i.isMacintosh?this.onLeftClick(t,n,o):e.prototype.onContextMenu.call(this,t,n,o)},t}(c.DefaultController);t.QuickOpenController=v;var _={background:g.Color.fromHex(\"#1E1E1E\"),foreground:g.Color.fromHex(\"#CCCCCC\"),pickerGroupForeground:g.Color.fromHex(\"#0097FB\"),pickerGroupBorder:g.Color.fromHex(\"#3F3F46\"),widgetShadow:g.Color.fromHex(\"#000000\"),progressBarBackground:g.Color.fromHex(\"#0E70C0\")},y=n.localize(0,null),C=function(e){function t(t,n,i){var o=e.call(this)||this;return o.isDisposed=!1,o.container=t,o.callbacks=n,o.options=i,o.styles=i||Object.create(null),f.mixin(o.styles,_,!1),o.model=null,o}return r(t,e),\nt.prototype.getModel=function(){return this.model},t.prototype.create=function(){var e=this;this.element=document.createElement(\"div\"),h.addClass(this.element,\"monaco-quick-open-widget\"),this.container.appendChild(this.element),this._register(h.addDisposableListener(this.element,h.EventType.CONTEXT_MENU,(function(e){return h.EventHelper.stop(e,!0)}))),this._register(h.addDisposableListener(this.element,h.EventType.FOCUS,(function(t){return e.gainingFocus()}),!0)),this._register(h.addDisposableListener(this.element,h.EventType.BLUR,(function(t){return e.loosingFocus(t)}),!0)),this._register(h.addDisposableListener(this.element,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);if(9===n.keyCode)h.EventHelper.stop(t,!0),e.hide(2);else if(2===n.keyCode&&!n.altKey&&!n.ctrlKey&&!n.metaKey){var i=t.currentTarget.querySelectorAll(\"input, .monaco-tree, .monaco-tree-row.focused .action-label.icon\");n.shiftKey&&n.target===i[0]?(h.EventHelper.stop(t,!0),\ni[i.length-1].focus()):n.shiftKey||n.target!==i[i.length-1]||(h.EventHelper.stop(t,!0),i[0].focus())}}))),this.progressBar=this._register(new u.ProgressBar(this.element,{progressBarBackground:this.styles.progressBarBackground})),this.progressBar.hide(),this.inputContainer=document.createElement(\"div\"),h.addClass(this.inputContainer,\"quick-open-input\"),this.element.appendChild(this.inputContainer),this.inputBox=this._register(new a.InputBox(this.inputContainer,void 0,{placeholder:this.options.inputPlaceHolder||\"\",ariaLabel:y,inputBackground:this.styles.inputBackground,inputForeground:this.styles.inputForeground,inputBorder:this.styles.inputBorder,inputValidationInfoBackground:this.styles.inputValidationInfoBackground,inputValidationInfoForeground:this.styles.inputValidationInfoForeground,inputValidationInfoBorder:this.styles.inputValidationInfoBorder,inputValidationWarningBackground:this.styles.inputValidationWarningBackground,inputValidationWarningForeground:this.styles.inputValidationWarningForeground,\ninputValidationWarningBorder:this.styles.inputValidationWarningBorder,inputValidationErrorBackground:this.styles.inputValidationErrorBackground,inputValidationErrorForeground:this.styles.inputValidationErrorForeground,inputValidationErrorBorder:this.styles.inputValidationErrorBorder})),this.inputElement=this.inputBox.inputElement,this.inputElement.setAttribute(\"role\",\"combobox\"),this.inputElement.setAttribute(\"aria-haspopup\",\"false\"),this.inputElement.setAttribute(\"aria-autocomplete\",\"list\"),this._register(h.addDisposableListener(this.inputBox.inputElement,h.EventType.INPUT,(function(t){return e.onType()}))),this._register(h.addDisposableListener(this.inputBox.inputElement,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t),i=e.shouldOpenInBackground(n);if(2!==n.keyCode)if(18===n.keyCode||16===n.keyCode||12===n.keyCode||11===n.keyCode)h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode,n.shiftKey),\ne.inputBox.inputElement.selectionStart===e.inputBox.inputElement.selectionEnd&&(e.inputBox.inputElement.selectionStart=e.inputBox.value.length);else if(3===n.keyCode||i){h.EventHelper.stop(t,!0);var o=e.tree.getFocus();o&&e.elementSelected(o,t,i?2:1)}}))),this.resultCount=document.createElement(\"div\"),h.addClass(this.resultCount,\"quick-open-result-count\"),this.resultCount.setAttribute(\"aria-live\",\"polite\"),this.resultCount.setAttribute(\"aria-atomic\",\"true\"),this.element.appendChild(this.resultCount),this.treeContainer=document.createElement(\"div\"),h.addClass(this.treeContainer,\"quick-open-tree\"),this.element.appendChild(this.treeContainer);var t=this.options.treeCreator||function(e,t,n){return new l.Tree(e,t,n)};return this.tree=this._register(t(this.treeContainer,{dataSource:new s.DataSource(this),controller:new v({clickBehavior:1,keyboardSupport:this.options.keyboardSupport}),renderer:this.renderer=new s.Renderer(this,this.styles),filter:new s.Filter(this),\naccessibilityProvider:new s.AccessibilityProvider(this)},{twistiePixels:11,indentPixels:0,alwaysFocused:!0,verticalScrollMode:3,horizontalScrollMode:2,ariaLabel:n.localize(1,null),keyboardSupport:this.options.keyboardSupport,preventRootFocus:!1})),this.treeElement=this.tree.getHTMLElement(),this._register(this.tree.onDidChangeFocus((function(t){e.elementFocused(t.focus,t)}))),this._register(this.tree.onDidChangeSelection((function(t){if(t.selection&&t.selection.length>0){var n=t.payload&&t.payload.originalEvent instanceof m.StandardMouseEvent?t.payload.originalEvent:void 0,i=!!n&&e.shouldOpenInBackground(n);e.elementSelected(t.selection[0],t,i?2:1)}}))),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);if(e.quickNavigateConfiguration)if(18===n.keyCode||16===n.keyCode||12===n.keyCode||11===n.keyCode)h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode);else if(3===n.keyCode){h.EventHelper.stop(t,!0);var i=e.tree.getFocus()\n;i&&e.elementSelected(i,t)}}))),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_UP,(function(t){var n=new d.StandardKeyboardEvent(t),i=n.keyCode;if(e.quickNavigateConfiguration&&e.quickNavigateConfiguration.keybindings.some((function(e){var t=e.getParts(),o=t[0];return!t[1]&&(o.shiftKey&&4===i?!(n.ctrlKey||n.altKey||n.metaKey):!(!o.altKey||6!==i)||(!(!o.ctrlKey||5!==i)||!(!o.metaKey||57!==i)))}))){var o=e.tree.getFocus();o&&e.elementSelected(o,t)}}))),this.layoutDimensions&&this.layout(this.layoutDimensions),this.applyStyles(),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);e.quickNavigateConfiguration||18!==n.keyCode&&16!==n.keyCode&&12!==n.keyCode&&11!==n.keyCode||(h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode,n.shiftKey),e.treeElement.focus())}))),this.element},t.prototype.style=function(e){this.styles=e,this.applyStyles()},t.prototype.applyStyles=function(){if(this.element){\nvar e=this.styles.foreground?this.styles.foreground.toString():\"\",t=this.styles.background?this.styles.background.toString():\"\",n=this.styles.borderColor?this.styles.borderColor.toString():\"\",i=this.styles.widgetShadow?this.styles.widgetShadow.toString():\"\";this.element.style.color=e,this.element.style.backgroundColor=t,this.element.style.borderColor=n,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.boxShadow=i?\"0 5px 8px \"+i:\"\"}this.progressBar&&this.progressBar.style({progressBarBackground:this.styles.progressBarBackground}),this.inputBox&&this.inputBox.style({inputBackground:this.styles.inputBackground,inputForeground:this.styles.inputForeground,inputBorder:this.styles.inputBorder,inputValidationInfoBackground:this.styles.inputValidationInfoBackground,inputValidationInfoForeground:this.styles.inputValidationInfoForeground,inputValidationInfoBorder:this.styles.inputValidationInfoBorder,\ninputValidationWarningBackground:this.styles.inputValidationWarningBackground,inputValidationWarningForeground:this.styles.inputValidationWarningForeground,inputValidationWarningBorder:this.styles.inputValidationWarningBorder,inputValidationErrorBackground:this.styles.inputValidationErrorBackground,inputValidationErrorForeground:this.styles.inputValidationErrorForeground,inputValidationErrorBorder:this.styles.inputValidationErrorBorder}),this.tree&&!this.options.treeCreator&&this.tree.style(this.styles),this.renderer&&this.renderer.updateStyles(this.styles)},t.prototype.shouldOpenInBackground=function(e){if(e instanceof d.StandardKeyboardEvent){if(17!==e.keyCode)return!1;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return!1;var t=this.inputBox.inputElement;return t.selectionEnd===this.inputBox.value.length&&t.selectionStart===t.selectionEnd}return e.middleButton},t.prototype.onType=function(){var e=this.inputBox.value;this.helpText&&(e?h.hide(this.helpText):h.show(this.helpText)),this.callbacks.onType(e)},\nt.prototype.navigateInTree=function(e,t){var n=this.tree.getInput(),i=n?n.entries:[],o=this.tree.getFocus();switch(e){case 18:this.tree.focusNext();break;case 16:this.tree.focusPrevious();break;case 12:this.tree.focusNextPage();break;case 11:this.tree.focusPreviousPage();break;case 2:t?this.tree.focusPrevious():this.tree.focusNext()}var r=this.tree.getFocus();i.length>1&&o===r&&(16===e||2===e&&t?this.tree.focusLast():(18===e||2===e&&!t)&&this.tree.focusFirst()),(r=this.tree.getFocus())&&this.tree.reveal(r)},t.prototype.elementFocused=function(e,t){if(e&&this.isVisible()){var n=this.treeElement.getAttribute(\"aria-activedescendant\");n?this.inputElement.setAttribute(\"aria-activedescendant\",n):this.inputElement.removeAttribute(\"aria-activedescendant\");var i={event:t,keymods:this.extractKeyMods(t),quickNavigateConfiguration:this.quickNavigateConfiguration};this.model.runner.run(e,0,i)}},t.prototype.elementSelected=function(e,t,n){var i=!0;if(this.isVisible()){var o=n||1,r={event:t,keymods:this.extractKeyMods(t),\nquickNavigateConfiguration:this.quickNavigateConfiguration};i=this.model.runner.run(e,o,r)}i&&this.hide(0)},t.prototype.extractKeyMods=function(e){return{ctrlCmd:e&&(e.ctrlKey||e.metaKey||e.payload&&e.payload.originalEvent&&(e.payload.originalEvent.ctrlKey||e.payload.originalEvent.metaKey)),alt:e&&(e.altKey||e.payload&&e.payload.originalEvent&&e.payload.originalEvent.altKey)}},t.prototype.show=function(e,t){this.visible=!0,this.isLoosingFocus=!1,this.quickNavigateConfiguration=t?t.quickNavigateConfiguration:void 0,this.quickNavigateConfiguration?(h.hide(this.inputContainer),h.show(this.element),this.tree.domFocus()):(h.show(this.inputContainer),h.show(this.element),this.inputBox.focus()),this.helpText&&(this.quickNavigateConfiguration||o.isString(e)?h.hide(this.helpText):h.show(this.helpText)),o.isString(e)?this.doShowWithPrefix(e):(t&&t.value&&this.restoreLastInput(t.value),this.doShowWithInput(e,t&&t.autoFocus?t.autoFocus:{})),\nt&&t.inputSelection&&!this.quickNavigateConfiguration&&this.inputBox.select(t.inputSelection),this.callbacks.onShow&&this.callbacks.onShow()},t.prototype.restoreLastInput=function(e){this.inputBox.value=e,this.inputBox.select(),this.callbacks.onType(e)},t.prototype.doShowWithPrefix=function(e){this.inputBox.value=e,this.callbacks.onType(e)},t.prototype.doShowWithInput=function(e,t){this.setInput(e,t)},t.prototype.setInputAndLayout=function(e,t){var n=this;this.treeContainer.style.height=this.getHeight(e)+\"px\",this.tree.setInput(null).then((function(){return n.model=e,n.inputElement.setAttribute(\"aria-haspopup\",String(e&&e.entries&&e.entries.length>0)),n.tree.setInput(e)})).then((function(){n.tree.layout();var i=e?e.entries.filter((function(t){return n.isElementVisible(e,t)})):[];n.updateResultCount(i.length),i.length&&n.autoFocus(e,i,t)}))},t.prototype.isElementVisible=function(e,t){return!e.filter||e.filter.isVisible(t)},t.prototype.autoFocus=function(e,t,n){if(void 0===n&&(n={}),n.autoFocusPrefixMatch){\nfor(var i=void 0,o=void 0,r=n.autoFocusPrefixMatch,s=r.toLowerCase(),a=0,l=t;a<l.length;a++){var u=l[a],d=e.dataSource.getLabel(u)||\"\";if(i||0!==d.indexOf(r)?o||0!==d.toLowerCase().indexOf(s)||(o=u):i=u,i&&o)break}var c=i||o;if(c)return this.tree.setFocus(c),void this.tree.reveal(c,.5)}n.autoFocusFirstEntry?(this.tree.focusFirst(),this.tree.reveal(this.tree.getFocus())):\"number\"==typeof n.autoFocusIndex?t.length>n.autoFocusIndex&&(this.tree.focusNth(n.autoFocusIndex),this.tree.reveal(this.tree.getFocus())):n.autoFocusSecondEntry?t.length>1&&this.tree.focusNth(1):n.autoFocusLastEntry&&t.length>1&&(this.tree.focusLast(),this.tree.reveal(this.tree.getFocus()))},t.prototype.getHeight=function(e){var n=this,i=e.renderer;if(!e){var o=i.getHeight(null);return this.options.minItemsToShow?this.options.minItemsToShow*o:0}var r,s=0;this.layoutDimensions&&this.layoutDimensions.height&&(r=.4*(this.layoutDimensions.height-50)),(!r||r>t.MAX_ITEMS_HEIGHT)&&(r=t.MAX_ITEMS_HEIGHT);for(var a=e.entries.filter((function(t){\nreturn n.isElementVisible(e,t)})),l=this.options.maxItemsToShow||a.length,u=0;u<l&&u<a.length;u++){var d=i.getHeight(a[u]);if(!(s+d<=r))break;s+=d}return s},t.prototype.updateResultCount=function(e){this.resultCount.textContent=n.localize(2,null,e)},t.prototype.hide=function(e){this.isVisible()&&(this.visible=!1,h.hide(this.element),this.element.blur(),this.inputBox.value=\"\",this.tree.setInput(null),this.inputElement.setAttribute(\"aria-haspopup\",\"false\"),this.treeContainer.style.height=(this.options.minItemsToShow?22*this.options.minItemsToShow:0)+\"px\",this.progressBar.stop().hide(),this.tree.isDOMFocused()?this.tree.domBlur():this.inputBox.hasFocus()&&this.inputBox.blur(),0===e?this.callbacks.onOk():this.callbacks.onCancel(),this.callbacks.onHide&&this.callbacks.onHide(e))},t.prototype.setInput=function(e,t,n){this.isVisible()&&(this.getInput()&&this.onInputChanging(),this.setInputAndLayout(e,t),this.inputBox&&this.inputBox.setAriaLabel(n||y))},t.prototype.onInputChanging=function(){var e=this\n;this.inputChangingTimeoutHandle&&(clearTimeout(this.inputChangingTimeoutHandle),this.inputChangingTimeoutHandle=null),h.addClass(this.element,\"content-changing\"),this.inputChangingTimeoutHandle=setTimeout((function(){h.removeClass(e.element,\"content-changing\")}),500)},t.prototype.getInput=function(){return this.tree.getInput()},t.prototype.isVisible=function(){return this.visible},t.prototype.layout=function(e){this.layoutDimensions=e;var n=Math.min(.62*this.layoutDimensions.width,t.MAX_WIDTH);this.element&&(this.element.style.width=n+\"px\",this.element.style.marginLeft=\"-\"+n/2+\"px\",this.inputContainer.style.width=n-12+\"px\")},t.prototype.gainingFocus=function(){this.isLoosingFocus=!1},t.prototype.loosingFocus=function(e){var t=this;if(this.isVisible()){var n=e.relatedTarget;!this.quickNavigateConfiguration&&h.isAncestor(n,this.element)||(this.isLoosingFocus=!0,setTimeout((function(){t.isLoosingFocus&&!t.isDisposed&&(t.callbacks.onFocusLost&&t.callbacks.onFocusLost()||t.hide(1))}),0))}},\nt.prototype.dispose=function(){e.prototype.dispose.call(this),this.isDisposed=!0},t.MAX_WIDTH=600,t.MAX_ITEMS_HEIGHT=440,t}(p.Disposable);t.QuickOpenWidget=C})),define(n[415],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/controller/coreCommands\",t)})),define(n[416],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/controller/textAreaHandler\",t)})),define(n[417],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/codeEditorWidget\",t)})),define(n[418],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/diffEditorWidget\",t)})),define(n[419],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/diffReview\",t)})),define(n[420],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/inlineDiffMargin\",t)})),define(n[421],i([0,1,420,6,55,2,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t,r,s,l,u,h){var p=e.call(this)||this;p._viewZoneId=t,p._marginDomNode=r,p.editor=s,\np.diff=l,p._contextMenuService=u,p._clipboardService=h,p._visibility=!1,p._marginDomNode.style.zIndex=\"10\",p._diffActions=document.createElement(\"div\"),p._diffActions.className=\"codicon codicon-lightbulb lightbulb-glyph\",p._diffActions.style.position=\"absolute\";var g=s.getOption(49),f=s.getModel().getEOL();p._diffActions.style.right=\"0px\",p._diffActions.style.visibility=\"hidden\",p._diffActions.style.height=g+\"px\",p._diffActions.style.lineHeight=g+\"px\",p._marginDomNode.appendChild(p._diffActions);var m=[];m.push(new o.Action(\"diff.clipboard.copyDeletedContent\",l.originalEndLineNumber>l.modifiedStartLineNumber?n.localize(0,null):n.localize(1,null),void 0,!0,(function(){return d(p,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this._clipboardService.writeText(l.originalContent.join(f)+f)];case 1:return e.sent(),[2]}}))}))})));var v=0,_=void 0\n;l.originalEndLineNumber>l.modifiedStartLineNumber&&(_=new o.Action(\"diff.clipboard.copyDeletedLineContent\",n.localize(2,null,l.originalStartLineNumber),void 0,!0,(function(){return d(p,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this._clipboardService.writeText(l.originalContent[v])];case 1:return e.sent(),[2]}}))}))})),m.push(_)),s.getOption(68)||m.push(new o.Action(\"diff.inline.revertChange\",n.localize(3,null),void 0,!0,(function(){return d(p,void 0,void 0,(function(){var e;return c(this,(function(t){return 0===l.modifiedEndLineNumber?(e=s.getModel().getLineMaxColumn(l.modifiedStartLineNumber),s.executeEdits(\"diffEditor\",[{range:new a.Range(l.modifiedStartLineNumber,e,l.modifiedStartLineNumber,e),text:f+l.originalContent.join(f)}])):(e=s.getModel().getLineMaxColumn(l.modifiedEndLineNumber),s.executeEdits(\"diffEditor\",[{range:new a.Range(l.modifiedStartLineNumber,1,l.modifiedEndLineNumber,e),text:l.originalContent.join(f)}])),[2]}))}))})));var y=function(e,t){\np._contextMenuService.showContextMenu({getAnchor:function(){return{x:e,y:t}},getActions:function(){return _&&(_.label=n.localize(4,null,l.originalStartLineNumber+v)),m},autoSelectFirstItem:!0})};return p._register(i.addStandardDisposableListener(p._diffActions,\"mousedown\",(function(e){var t=i.getDomNodePagePosition(p._diffActions),n=t.top,o=t.height,r=Math.floor(g/3);e.preventDefault(),y(e.posx,n+o+r)}))),p._register(s.onMouseMove((function(e){8===e.target.type||5===e.target.type?e.target.detail.viewZoneId===p._viewZoneId?(p.visibility=!0,v=p._updateLightBulbPosition(p._marginDomNode,e.event.browserEvent.y,g)):p.visibility=!1:p.visibility=!1}))),p._register(s.onMouseDown((function(e){e.event.rightButton&&(8!==e.target.type&&5!==e.target.type||e.target.detail.viewZoneId===p._viewZoneId&&(e.event.preventDefault(),v=p._updateLightBulbPosition(p._marginDomNode,e.event.browserEvent.y,g),y(e.event.posx,e.event.posy+g)))}))),p}return r(t,e),Object.defineProperty(t.prototype,\"visibility\",{get:function(){\nreturn this._visibility},set:function(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?\"visible\":\"hidden\")},enumerable:!0,configurable:!0}),t.prototype._updateLightBulbPosition=function(e,t,n){var o=t-i.getDomNodePagePosition(e).top,r=Math.floor(o/n),s=r*n;return this._diffActions.style.top=s+\"px\",r},t}(s.Disposable);t.InlineDiffMargin=l})),define(n[422],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/config/commonEditorConfig\",t)})),define(n[423],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/config/editorOptions\",t)})),define(n[33],i([0,1,423,16,109]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.MINIMAP_GUTTER_WIDTH=8;var s=function(){function e(e){this._values=e}return e.prototype.hasChanged=function(e){return this._values[e]},e}();t.ConfigurationChangedEvent=s;var a=function(){function e(){this._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype.get=function(e){\nreturn this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}();t.ValidatedEditorOptions=a;var u=function(){function e(e,t,n,i){this.id=e,this.name=t,this.defaultValue=n,this.schema=i}return e.prototype.compute=function(e,t,n){return n},e}(),d=function(){function e(e,t){void 0===t&&(t=null),this.schema=void 0,this.id=e,this.name=\"_never_\",this.defaultValue=void 0,this.deps=t}return e.prototype.validate=function(e){return this.defaultValue},e}(),c=function(){function e(e,t,n,i){this.id=e,this.name=t,this.defaultValue=n,this.schema=i}return e.prototype.validate=function(e){return void 0===e?this.defaultValue:e},e.prototype.compute=function(e,t,n){return n},e}(),h=function(e){function t(t,n,i,o){void 0===o&&(o=void 0);return void 0!==o&&(o.type=\"boolean\",o.default=i),e.call(this,t,n,i,o)||this}return r(t,e),t.boolean=function(e,t){return void 0===e?t:\"false\"!==e&&Boolean(e)},t.prototype.validate=function(e){return t.boolean(e,this.defaultValue)},t}(c),p=function(e){function t(t,n,i,o,r,s){\nvoid 0===s&&(s=void 0);var a=this;return void 0!==s&&(s.type=\"integer\",s.default=i,s.minimum=o,s.maximum=r),(a=e.call(this,t,n,i,s)||this).minimum=o,a.maximum=r,a}return r(t,e),t.clampedInt=function(e,t,n,i){var o;return void 0===e?o=t:(o=parseInt(e,10),isNaN(o)&&(o=t)),o=Math.max(n,o),0|(o=Math.min(i,o))},t.prototype.validate=function(e){return t.clampedInt(e,this.defaultValue,this.minimum,this.maximum)},t}(c),g=function(e){function t(t,n,i,o,r){var s=this;return void 0!==r&&(r.type=\"number\",r.default=i),(s=e.call(this,t,n,i,r)||this).validationFn=o,s}return r(t,e),t.clamp=function(e,t,n){return e<t?t:e>n?n:e},t.float=function(e,t){if(\"number\"==typeof e)return e;if(void 0===e)return t;var n=parseFloat(e);return isNaN(n)?t:n},t.prototype.validate=function(e){return this.validationFn(t.float(e,this.defaultValue))},t}(c),f=function(e){function t(t,n,i,o){void 0===o&&(o=void 0);return void 0!==o&&(o.type=\"string\",o.default=i),e.call(this,t,n,i,o)||this}return r(t,e),t.string=function(e,t){\nreturn\"string\"!=typeof e?t:e},t.prototype.validate=function(e){return t.string(e,this.defaultValue)},t}(c),m=function(e){function t(t,n,i,o,r){void 0===r&&(r=void 0);var s=this;return void 0!==r&&(r.type=\"string\",r.enum=o,r.default=i),(s=e.call(this,t,n,i,r)||this)._allowedValues=o,s}return r(t,e),t.stringSet=function(e,t,n){return\"string\"!=typeof e?t:-1===n.indexOf(e)?t:e},t.prototype.validate=function(e){return t.stringSet(e,this.defaultValue,this._allowedValues)},t}(c),v=function(e){function t(t,n,i,o,r,s,a){void 0===a&&(a=void 0);var l=this;return void 0!==a&&(a.type=\"string\",a.enum=r,a.default=o),(l=e.call(this,t,n,i,a)||this)._allowedValues=r,l._convert=s,l}return r(t,e),t.prototype.validate=function(e){return\"string\"!=typeof e?this.defaultValue:-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)},t}(u);var _,y=function(e){function t(){return e.call(this,2,\"accessibilitySupport\",0,{type:\"string\",enum:[\"auto\",\"on\",\"off\"],\nenumDescriptions:[n.localize(0,null),n.localize(1,null),n.localize(2,null)],default:\"auto\",description:n.localize(3,null)})||this}return r(t,e),t.prototype.validate=function(e){switch(e){case\"auto\":return 0;case\"off\":return 1;case\"on\":return 2}return this.defaultValue},t.prototype.compute=function(e,t,n){return 0===n?e.accessibilitySupport:n},t}(u),C=function(e){function t(){var t={insertSpace:!0};return e.call(this,13,\"comments\",t,{\"editor.comments.insertSpace\":{type:\"boolean\",default:t.insertSpace,description:n.localize(4,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{insertSpace:h.boolean(t.insertSpace,this.defaultValue.insertSpace)}},t}(u);!function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(_=t.TextEditorCursorStyle||(t.TextEditorCursorStyle={}));var b=function(e){function t(){\nreturn e.call(this,104,[55,26])||this}return r(t,e),t.prototype.compute=function(e,t,n){var i=\"monaco-editor\";return t.get(26)&&(i+=\" \"+t.get(26)),e.extraEditorClassName&&(i+=\" \"+e.extraEditorClassName),\"default\"===t.get(55)?i+=\" mouse-default\":\"copy\"===t.get(55)&&(i+=\" mouse-copy\"),t.get(85)&&(i+=\" showUnused\"),i},t}(d),S=function(e){function t(){return e.call(this,25,\"emptySelectionClipboard\",!0,{description:n.localize(5,null)})||this}return r(t,e),t.prototype.compute=function(e,t,n){return n&&e.emptySelectionClipboard},t}(h),w=function(e){function t(){var t={seedSearchStringFromSelection:!0,autoFindInSelection:\"never\",globalFindClipboard:!1,addExtraSpaceOnTop:!0};return e.call(this,28,\"find\",t,{\"editor.find.seedSearchStringFromSelection\":{type:\"boolean\",default:t.seedSearchStringFromSelection,description:n.localize(6,null)},\"editor.find.autoFindInSelection\":{type:\"string\",enum:[\"never\",\"always\",\"multiline\"],default:t.autoFindInSelection,\nenumDescriptions:[n.localize(7,null),n.localize(8,null),n.localize(9,null)],description:n.localize(10,null)},\"editor.find.globalFindClipboard\":{type:\"boolean\",default:t.globalFindClipboard,description:n.localize(11,null),included:i.isMacintosh},\"editor.find.addExtraSpaceOnTop\":{type:\"boolean\",default:t.addExtraSpaceOnTop,description:n.localize(12,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{seedSearchStringFromSelection:h.boolean(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:\"boolean\"==typeof e.autoFindInSelection?e.autoFindInSelection?\"always\":\"never\":m.stringSet(t.autoFindInSelection,this.defaultValue.autoFindInSelection,[\"never\",\"always\",\"multiline\"]),globalFindClipboard:h.boolean(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:h.boolean(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop)}},t}(u),E=function(e){function t(){\nreturn e.call(this,35,\"fontLigatures\",t.OFF,{anyOf:[{type:\"boolean\",description:n.localize(13,null)},{type:\"string\",description:n.localize(14,null)}],description:n.localize(15,null),default:!1})||this}return r(t,e),t.prototype.validate=function(e){return void 0===e?this.defaultValue:\"string\"==typeof e?\"false\"===e?t.OFF:\"true\"===e?t.ON:e:Boolean(e)?t.ON:t.OFF},t.OFF='\"liga\" off, \"calt\" off',t.ON='\"liga\" on, \"calt\" on',t}(u);t.EditorFontLigatures=E;var L=function(e){function t(){return e.call(this,34)||this}return r(t,e),t.prototype.compute=function(e,t,n){return e.fontInfo},t}(d),D=function(e){function i(){return e.call(this,36,\"fontSize\",t.EDITOR_FONT_DEFAULTS.fontSize,{type:\"number\",minimum:6,maximum:100,default:t.EDITOR_FONT_DEFAULTS.fontSize,description:n.localize(16,null)})||this}return r(i,e),i.prototype.validate=function(e){var n=g.float(e,this.defaultValue);return 0===n?t.EDITOR_FONT_DEFAULTS.fontSize:g.clamp(n,6,100)},i.prototype.compute=function(e,t,n){return e.fontInfo.fontSize},i}(c),N=function(e){\nfunction t(){var t={multiple:\"peek\",multipleDefinitions:\"peek\",multipleTypeDefinitions:\"peek\",multipleDeclarations:\"peek\",multipleImplementations:\"peek\",multipleReferences:\"peek\",alternativeDefinitionCommand:\"editor.action.goToReferences\",alternativeTypeDefinitionCommand:\"editor.action.goToReferences\",alternativeDeclarationCommand:\"editor.action.goToReferences\",alternativeImplementationCommand:\"\",alternativeReferenceCommand:\"\"},i={type:\"string\",enum:[\"peek\",\"gotoAndPeek\",\"goto\"],default:t.multiple,enumDescriptions:[n.localize(17,null),n.localize(18,null),n.localize(19,null)]};return e.call(this,41,\"gotoLocation\",t,{\"editor.gotoLocation.multiple\":{deprecationMessage:n.localize(20,null)},\"editor.gotoLocation.multipleDefinitions\":l({description:n.localize(21,null)},i),\"editor.gotoLocation.multipleTypeDefinitions\":l({description:n.localize(22,null)},i),\"editor.gotoLocation.multipleDeclarations\":l({description:n.localize(23,null)},i),\"editor.gotoLocation.multipleImplementations\":l({description:n.localize(24,null)\n},i),\"editor.gotoLocation.multipleReferences\":l({description:n.localize(25,null)},i),\"editor.gotoLocation.alternativeDefinitionCommand\":{type:\"string\",default:t.alternativeDefinitionCommand,description:n.localize(26,null)},\"editor.gotoLocation.alternativeTypeDefinitionCommand\":{type:\"string\",default:t.alternativeTypeDefinitionCommand,description:n.localize(27,null)},\"editor.gotoLocation.alternativeDeclarationCommand\":{type:\"string\",default:t.alternativeDeclarationCommand,description:n.localize(28,null)},\"editor.gotoLocation.alternativeImplementationCommand\":{type:\"string\",default:t.alternativeImplementationCommand,description:n.localize(29,null)},\"editor.gotoLocation.alternativeReferenceCommand\":{type:\"string\",default:t.alternativeReferenceCommand,description:n.localize(30,null)}})||this}return r(t,e),t.prototype.validate=function(e){var t,n,i,o,r;if(\"object\"!=typeof e)return this.defaultValue;var s=e;return{multiple:m.stringSet(s.multiple,this.defaultValue.multiple,[\"peek\",\"gotoAndPeek\",\"goto\"]),\nmultipleDefinitions:null!==(t=s.multipleDefinitions)&&void 0!==t?t:m.stringSet(s.multipleDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleTypeDefinitions:null!==(n=s.multipleTypeDefinitions)&&void 0!==n?n:m.stringSet(s.multipleTypeDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleDeclarations:null!==(i=s.multipleDeclarations)&&void 0!==i?i:m.stringSet(s.multipleDeclarations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleImplementations:null!==(o=s.multipleImplementations)&&void 0!==o?o:m.stringSet(s.multipleImplementations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleReferences:null!==(r=s.multipleReferences)&&void 0!==r?r:m.stringSet(s.multipleReferences,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),alternativeDefinitionCommand:f.string(s.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:f.string(s.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),\nalternativeDeclarationCommand:f.string(s.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:f.string(s.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:f.string(s.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}},t}(u),x=function(e){function t(){var t={enabled:!0,delay:300,sticky:!0};return e.call(this,44,\"hover\",t,{\"editor.hover.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(31,null)},\"editor.hover.delay\":{type:\"number\",default:t.delay,description:n.localize(32,null)},\"editor.hover.sticky\":{type:\"boolean\",default:t.sticky,description:n.localize(33,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),delay:p.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:h.boolean(t.sticky,this.defaultValue.sticky)}},t\n}(u),I=function(e){function n(){return e.call(this,107,[40,48,30,54,78,50])||this}return r(n,e),n.prototype.compute=function(e,t,i){return n.computeLayout(t,{outerWidth:e.outerWidth,outerHeight:e.outerHeight,lineHeight:e.fontInfo.lineHeight,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})},n.computeLayout=function(e,n){var i,o=0|n.outerWidth,r=0|n.outerHeight,s=0|n.lineHeight,a=0|n.lineNumbersDigitCount,l=n.typicalHalfwidthCharacterWidth,u=n.maxDigitWidth,d=n.pixelRatio,c=e.get(40),h=0!==e.get(50).renderType,g=0|e.get(51),f=e.get(54),m=f.enabled,v=f.side,_=f.renderCharacters,y=d>=2?Math.round(2*f.scale):f.scale,C=0|f.maxColumn,b=e.get(78),S=0|b.verticalScrollbarSize,w=b.verticalHasArrows,E=0|b.arrowSize,L=0|b.horizontalScrollbarSize,D=e.get(48),N=e.get(30);if(\"string\"==typeof D&&/^\\d+(\\.\\d+)?ch$/.test(D)){var x=parseFloat(D.substr(0,D.length-2));i=p.clampedInt(x*l,0,0,1e3)\n}else i=p.clampedInt(D,0,0,1e3);N&&(i+=16);var I=0;if(h){var M=Math.max(a,g);I=Math.round(M*u)}var k=0;c&&(k=s);var T,R,O,P,A=0,F=A+k,W=F+I,B=W+i,V=o-k-I-i;if(m){var z=y/d;T=_?1:2,(O=Math.max(0,Math.floor((V-S-2)*z/(l+z)))+t.MINIMAP_GUTTER_WIDTH)/z>C&&(O=Math.floor(C*z)),P=V-O,\"left\"===v?(R=0,A+=O,F+=O,W+=O,B+=O):R=o-O-S}else R=0,O=0,T=0,P=V;var H=w?E:0;return{width:o,height:r,glyphMarginLeft:A,glyphMarginWidth:k,lineNumbersLeft:F,lineNumbersWidth:I,decorationsLeft:W,decorationsWidth:i,contentLeft:B,contentWidth:P,renderMinimap:T,minimapLeft:R,minimapWidth:O,viewportColumn:Math.max(1,Math.floor((P-S-2)/l)),verticalScrollbarWidth:S,horizontalScrollbarHeight:L,overviewRuler:{top:H,width:S,height:r-2*H,right:0}}},n}(d);t.EditorLayoutInfoComputer=I;var M=function(e){function t(){var t={enabled:!0};return e.call(this,47,\"lightbulb\",t,{\"editor.lightbulb.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(34,null)}})||this}return r(t,e),t.prototype.validate=function(e){\nif(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled)}},t}(u),k=function(e){function i(){return e.call(this,49,\"lineHeight\",t.EDITOR_FONT_DEFAULTS.lineHeight,0,150,{description:n.localize(35,null)})||this}return r(i,e),i.prototype.compute=function(e,t,n){return e.fontInfo.lineHeight},i}(p),T=function(e){function t(){var t={enabled:!0,side:\"right\",showSlider:\"mouseover\",renderCharacters:!0,maxColumn:120,scale:1};return e.call(this,54,\"minimap\",t,{\"editor.minimap.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(36,null)},\"editor.minimap.side\":{type:\"string\",enum:[\"left\",\"right\"],default:t.side,description:n.localize(37,null)},\"editor.minimap.showSlider\":{type:\"string\",enum:[\"always\",\"mouseover\"],default:t.showSlider,description:n.localize(38,null)},\"editor.minimap.scale\":{type:\"number\",default:t.scale,minimum:1,maximum:3,description:n.localize(39,null)},\"editor.minimap.renderCharacters\":{type:\"boolean\",default:t.renderCharacters,\ndescription:n.localize(40,null)},\"editor.minimap.maxColumn\":{type:\"number\",default:t.maxColumn,description:n.localize(41,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),side:m.stringSet(t.side,this.defaultValue.side,[\"right\",\"left\"]),showSlider:m.stringSet(t.showSlider,this.defaultValue.showSlider,[\"always\",\"mouseover\"]),renderCharacters:h.boolean(t.renderCharacters,this.defaultValue.renderCharacters),scale:p.clampedInt(t.scale,1,1,3),maxColumn:p.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}},t}(u);var R=function(e){function t(){var t={enabled:!0,cycle:!1};return e.call(this,64,\"parameterHints\",t,{\"editor.parameterHints.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(42,null)},\"editor.parameterHints.cycle\":{type:\"boolean\",default:t.cycle,description:n.localize(43,null)}})||this}return r(t,e),t.prototype.validate=function(e){\nif(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),cycle:h.boolean(t.cycle,this.defaultValue.cycle)}},t}(u),O=function(e){function t(){return e.call(this,105)||this}return r(t,e),t.prototype.compute=function(e,t,n){return e.pixelRatio},t}(d),P=function(e){function t(){var t=this,i={other:!0,comments:!1,strings:!1};return(t=e.call(this,66,\"quickSuggestions\",i,{anyOf:[{type:\"boolean\"},{type:\"object\",properties:{strings:{type:\"boolean\",default:i.strings,description:n.localize(44,null)},comments:{type:\"boolean\",default:i.comments,description:n.localize(45,null)},other:{type:\"boolean\",default:i.other,description:n.localize(46,null)}}}],default:i,description:n.localize(47,null)})||this).defaultValue=i,t}return r(t,e),t.prototype.validate=function(e){if(\"boolean\"==typeof e)return e;if(\"object\"==typeof e){var t=e,n={other:h.boolean(t.other,this.defaultValue.other),comments:h.boolean(t.comments,this.defaultValue.comments),\nstrings:h.boolean(t.strings,this.defaultValue.strings)};return!!(n.other&&n.comments&&n.strings)||!!(n.other||n.comments||n.strings)&&n}return this.defaultValue},t}(u),A=function(e){function t(){return e.call(this,50,\"lineNumbers\",{renderType:1,renderFn:null},{type:\"string\",enum:[\"off\",\"on\",\"relative\",\"interval\"],enumDescriptions:[n.localize(48,null),n.localize(49,null),n.localize(50,null),n.localize(51,null)],default:\"on\",description:n.localize(52,null)})||this}return r(t,e),t.prototype.validate=function(e){var t=this.defaultValue.renderType,n=this.defaultValue.renderFn;return void 0!==e&&(\"function\"==typeof e?(t=4,n=e):t=\"interval\"===e?3:\"relative\"===e?2:\"on\"===e?1:0),{renderType:t,renderFn:n}},t}(u);t.filterValidationDecorations=function(e){var t=e.get(73);return\"editable\"===t?e.get(68):\"on\"!==t};var F=function(e){function t(){var t=[];return e.call(this,77,\"rulers\",t,{type:\"array\",items:{type:\"number\"},default:t,description:n.localize(53,null)})||this}return r(t,e),t.prototype.validate=function(e){\nif(Array.isArray(e)){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n];t.push(p.clampedInt(o,0,0,1e4))}return t.sort((function(e,t){return e-t})),t}return this.defaultValue},t}(c);function W(e,t){if(\"string\"!=typeof e)return t;switch(e){case\"hidden\":return 2;case\"visible\":return 3;default:return 1}}var B=function(e){function t(){return e.call(this,78,\"scrollbar\",{vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:10,horizontalSliderSize:10,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e,n=p.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),i=p.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:p.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:W(t.vertical,this.defaultValue.vertical),\nhorizontal:W(t.horizontal,this.defaultValue.horizontal),useShadows:h.boolean(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:h.boolean(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:h.boolean(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:h.boolean(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:h.boolean(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:p.clampedInt(t.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:i,verticalSliderSize:p.clampedInt(t.verticalSliderSize,i,0,1e3)}},t}(u),V=function(e){function t(){var t={insertMode:\"insert\",insertHighlight:!1,filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,maxVisibleSuggestions:12,showMethods:!0,showFunctions:!0,showConstructors:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,\nshowProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,hideStatusBar:!0};return e.call(this,89,\"suggest\",t,{\"editor.suggest.insertMode\":{type:\"string\",enum:[\"insert\",\"replace\"],enumDescriptions:[n.localize(54,null),n.localize(55,null)],default:t.insertMode,description:n.localize(56,null)},\"editor.suggest.insertHighlight\":{type:\"boolean\",default:t.insertHighlight,description:n.localize(57,null)},\"editor.suggest.filterGraceful\":{type:\"boolean\",default:t.filterGraceful,description:n.localize(58,null)},\"editor.suggest.localityBonus\":{type:\"boolean\",default:t.localityBonus,description:n.localize(59,null)},\"editor.suggest.shareSuggestSelections\":{type:\"boolean\",default:t.shareSuggestSelections,markdownDescription:n.localize(60,null)},\"editor.suggest.snippetsPreventQuickSuggestions\":{type:\"boolean\",\ndefault:t.snippetsPreventQuickSuggestions,description:n.localize(61,null)},\"editor.suggest.showIcons\":{type:\"boolean\",default:t.showIcons,description:n.localize(62,null)},\"editor.suggest.maxVisibleSuggestions\":{type:\"number\",default:t.maxVisibleSuggestions,minimum:1,maximum:15,description:n.localize(63,null)},\"editor.suggest.filteredTypes\":{type:\"object\",deprecationMessage:n.localize(64,null)},\"editor.suggest.showMethods\":{type:\"boolean\",default:!0,markdownDescription:n.localize(65,null)},\"editor.suggest.showFunctions\":{type:\"boolean\",default:!0,markdownDescription:n.localize(66,null)},\"editor.suggest.showConstructors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(67,null)},\"editor.suggest.showFields\":{type:\"boolean\",default:!0,markdownDescription:n.localize(68,null)},\"editor.suggest.showVariables\":{type:\"boolean\",default:!0,markdownDescription:n.localize(69,null)},\"editor.suggest.showClasses\":{type:\"boolean\",default:!0,markdownDescription:n.localize(70,null)},\"editor.suggest.showStructs\":{\ntype:\"boolean\",default:!0,markdownDescription:n.localize(71,null)},\"editor.suggest.showInterfaces\":{type:\"boolean\",default:!0,markdownDescription:n.localize(72,null)},\"editor.suggest.showModules\":{type:\"boolean\",default:!0,markdownDescription:n.localize(73,null)},\"editor.suggest.showProperties\":{type:\"boolean\",default:!0,markdownDescription:n.localize(74,null)},\"editor.suggest.showEvents\":{type:\"boolean\",default:!0,markdownDescription:n.localize(75,null)},\"editor.suggest.showOperators\":{type:\"boolean\",default:!0,markdownDescription:n.localize(76,null)},\"editor.suggest.showUnits\":{type:\"boolean\",default:!0,markdownDescription:n.localize(77,null)},\"editor.suggest.showValues\":{type:\"boolean\",default:!0,markdownDescription:n.localize(78,null)},\"editor.suggest.showConstants\":{type:\"boolean\",default:!0,markdownDescription:n.localize(79,null)},\"editor.suggest.showEnums\":{type:\"boolean\",default:!0,markdownDescription:n.localize(80,null)},\"editor.suggest.showEnumMembers\":{type:\"boolean\",default:!0,\nmarkdownDescription:n.localize(81,null)},\"editor.suggest.showKeywords\":{type:\"boolean\",default:!0,markdownDescription:n.localize(82,null)},\"editor.suggest.showWords\":{type:\"boolean\",default:!0,markdownDescription:n.localize(83,null)},\"editor.suggest.showColors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(84,null)},\"editor.suggest.showFiles\":{type:\"boolean\",default:!0,markdownDescription:n.localize(85,null)},\"editor.suggest.showReferences\":{type:\"boolean\",default:!0,markdownDescription:n.localize(86,null)},\"editor.suggest.showCustomcolors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(87,null)},\"editor.suggest.showFolders\":{type:\"boolean\",default:!0,markdownDescription:n.localize(88,null)},\"editor.suggest.showTypeParameters\":{type:\"boolean\",default:!0,markdownDescription:n.localize(89,null)},\"editor.suggest.showSnippets\":{type:\"boolean\",default:!0,markdownDescription:n.localize(90,null)},\"editor.suggest.hideStatusBar\":{type:\"boolean\",default:!0,markdownDescription:n.localize(91,null)}\n})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{insertMode:m.stringSet(t.insertMode,this.defaultValue.insertMode,[\"insert\",\"replace\"]),insertHighlight:h.boolean(t.insertHighlight,this.defaultValue.insertHighlight),filterGraceful:h.boolean(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:h.boolean(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:h.boolean(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:h.boolean(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:h.boolean(t.showIcons,this.defaultValue.showIcons),maxVisibleSuggestions:p.clampedInt(t.maxVisibleSuggestions,this.defaultValue.maxVisibleSuggestions,1,15),showMethods:h.boolean(t.showMethods,this.defaultValue.showMethods),showFunctions:h.boolean(t.showFunctions,this.defaultValue.showFunctions),\nshowConstructors:h.boolean(t.showConstructors,this.defaultValue.showConstructors),showFields:h.boolean(t.showFields,this.defaultValue.showFields),showVariables:h.boolean(t.showVariables,this.defaultValue.showVariables),showClasses:h.boolean(t.showClasses,this.defaultValue.showClasses),showStructs:h.boolean(t.showStructs,this.defaultValue.showStructs),showInterfaces:h.boolean(t.showInterfaces,this.defaultValue.showInterfaces),showModules:h.boolean(t.showModules,this.defaultValue.showModules),showProperties:h.boolean(t.showProperties,this.defaultValue.showProperties),showEvents:h.boolean(t.showEvents,this.defaultValue.showEvents),showOperators:h.boolean(t.showOperators,this.defaultValue.showOperators),showUnits:h.boolean(t.showUnits,this.defaultValue.showUnits),showValues:h.boolean(t.showValues,this.defaultValue.showValues),showConstants:h.boolean(t.showConstants,this.defaultValue.showConstants),showEnums:h.boolean(t.showEnums,this.defaultValue.showEnums),\nshowEnumMembers:h.boolean(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:h.boolean(t.showKeywords,this.defaultValue.showKeywords),showWords:h.boolean(t.showWords,this.defaultValue.showWords),showColors:h.boolean(t.showColors,this.defaultValue.showColors),showFiles:h.boolean(t.showFiles,this.defaultValue.showFiles),showReferences:h.boolean(t.showReferences,this.defaultValue.showReferences),showFolders:h.boolean(t.showFolders,this.defaultValue.showFolders),showTypeParameters:h.boolean(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:h.boolean(t.showSnippets,this.defaultValue.showSnippets),hideStatusBar:h.boolean(t.hideStatusBar,this.defaultValue.hideStatusBar)}},t}(u),z=function(e){function t(){return e.call(this,106,[68])||this}return r(t,e),t.prototype.compute=function(e,t,n){return!!t.get(68)||e.tabFocusMode},t}(d);var H=function(e){function t(){return e.call(this,108,[97,100,101,107,2])||this}return r(t,e),t.prototype.compute=function(e,t,n){\nvar i=t.get(97),o=t.get(100),r=t.get(101),s=t.get(107),a=null;return a=2===t.get(2)?{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1}:r&&e.isDominatedByLongLines?{isWordWrapMinified:!0,isViewportWrapping:!0,wrappingColumn:Math.max(1,s.viewportColumn)}:\"on\"===i?{isWordWrapMinified:!1,isViewportWrapping:!0,wrappingColumn:Math.max(1,s.viewportColumn)}:\"bounded\"===i?{isWordWrapMinified:!1,isViewportWrapping:!0,wrappingColumn:Math.min(Math.max(1,s.viewportColumn),o)}:\"wordWrapColumn\"===i?{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:o}:{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1},{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:a.isWordWrapMinified,isViewportWrapping:a.isViewportWrapping,wrappingColumn:a.wrappingColumn}},t}(d);function K(e){return t.editorOptionsRegistry[e.id]=e,e}t.EDITOR_FONT_DEFAULTS={\nfontFamily:i.isMacintosh?\"Menlo, Monaco, 'Courier New', monospace\":i.isLinux?\"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'\":\"Consolas, 'Courier New', monospace\",fontWeight:\"normal\",fontSize:i.isMacintosh?12:14,lineHeight:0,letterSpacing:0},t.EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},t.editorOptionsRegistry=[],t.EditorOptions={acceptSuggestionOnCommitCharacter:K(new h(0,\"acceptSuggestionOnCommitCharacter\",!0,{markdownDescription:n.localize(92,null)})),acceptSuggestionOnEnter:K(new m(1,\"acceptSuggestionOnEnter\",\"on\",[\"on\",\"smart\",\"off\"],{markdownEnumDescriptions:[\"\",n.localize(93,null),\"\"],markdownDescription:n.localize(94,null)})),accessibilitySupport:K(new y),accessibilityPageSize:K(new p(3,\"accessibilityPageSize\",10,1,1073741824,{description:n.localize(95,null)})),ariaLabel:K(new f(4,\"ariaLabel\",n.localize(96,null))),\nautoClosingBrackets:K(new m(5,\"autoClosingBrackets\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",n.localize(97,null),n.localize(98,null),\"\"],description:n.localize(99,null)})),autoClosingOvertype:K(new m(6,\"autoClosingOvertype\",\"auto\",[\"always\",\"auto\",\"never\"],{enumDescriptions:[\"\",n.localize(100,null),\"\"],description:n.localize(101,null)})),autoClosingQuotes:K(new m(7,\"autoClosingQuotes\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",n.localize(102,null),n.localize(103,null),\"\"],description:n.localize(104,null)})),autoIndent:K(new v(8,\"autoIndent\",4,\"full\",[\"none\",\"keep\",\"brackets\",\"advanced\",\"full\"],(function(e){switch(e){case\"none\":return 0;case\"keep\":return 1;case\"brackets\":return 2;case\"advanced\":return 3;case\"full\":return 4}}),{enumDescriptions:[n.localize(105,null),n.localize(106,null),n.localize(107,null),n.localize(108,null),n.localize(109,null)],description:n.localize(110,null)})),\nautomaticLayout:K(new h(9,\"automaticLayout\",!1)),autoSurround:K(new m(10,\"autoSurround\",\"languageDefined\",[\"languageDefined\",\"quotes\",\"brackets\",\"never\"],{enumDescriptions:[n.localize(111,null),n.localize(112,null),n.localize(113,null),\"\"],description:n.localize(114,null)})),codeLens:K(new h(11,\"codeLens\",!0,{description:n.localize(115,null)})),colorDecorators:K(new h(12,\"colorDecorators\",!0,{description:n.localize(116,null)})),comments:K(new C),contextmenu:K(new h(14,\"contextmenu\",!0)),copyWithSyntaxHighlighting:K(new h(15,\"copyWithSyntaxHighlighting\",!0,{description:n.localize(117,null)})),cursorBlinking:K(new v(16,\"cursorBlinking\",1,\"blink\",[\"blink\",\"smooth\",\"phase\",\"expand\",\"solid\"],(function(e){switch(e){case\"blink\":return 1;case\"smooth\":return 2;case\"phase\":return 3;case\"expand\":return 4;case\"solid\":return 5}}),{description:n.localize(118,null)})),cursorSmoothCaretAnimation:K(new h(17,\"cursorSmoothCaretAnimation\",!1,{description:n.localize(119,null)})),\ncursorStyle:K(new v(18,\"cursorStyle\",_.Line,\"line\",[\"line\",\"block\",\"underline\",\"line-thin\",\"block-outline\",\"underline-thin\"],(function(e){switch(e){case\"line\":return _.Line;case\"block\":return _.Block;case\"underline\":return _.Underline;case\"line-thin\":return _.LineThin;case\"block-outline\":return _.BlockOutline;case\"underline-thin\":return _.UnderlineThin}}),{description:n.localize(120,null)})),cursorSurroundingLines:K(new p(19,\"cursorSurroundingLines\",0,0,1073741824,{description:n.localize(121,null)})),cursorSurroundingLinesStyle:K(new m(20,\"cursorSurroundingLinesStyle\",\"default\",[\"default\",\"all\"],{enumDescriptions:[n.localize(122,null),n.localize(123,null)],description:n.localize(124,null)})),cursorWidth:K(new p(21,\"cursorWidth\",0,0,1073741824,{markdownDescription:n.localize(125,null)})),disableLayerHinting:K(new h(22,\"disableLayerHinting\",!1)),disableMonospaceOptimizations:K(new h(23,\"disableMonospaceOptimizations\",!1)),dragAndDrop:K(new h(24,\"dragAndDrop\",!0,{description:n.localize(126,null)})),\nemptySelectionClipboard:K(new S),extraEditorClassName:K(new f(26,\"extraEditorClassName\",\"\")),fastScrollSensitivity:K(new g(27,\"fastScrollSensitivity\",5,(function(e){return e<=0?5:e}),{markdownDescription:n.localize(127,null)})),find:K(new w),fixedOverflowWidgets:K(new h(29,\"fixedOverflowWidgets\",!1)),folding:K(new h(30,\"folding\",!0,{description:n.localize(128,null)})),foldingStrategy:K(new m(31,\"foldingStrategy\",\"auto\",[\"auto\",\"indentation\"],{markdownDescription:n.localize(129,null)})),foldingHighlight:K(new h(32,\"foldingHighlight\",!0,{description:n.localize(130,null)})),fontFamily:K(new f(33,\"fontFamily\",t.EDITOR_FONT_DEFAULTS.fontFamily,{description:n.localize(131,null)})),fontInfo:K(new L),fontLigatures2:K(new E),fontSize:K(new D),fontWeight:K(new f(37,\"fontWeight\",t.EDITOR_FONT_DEFAULTS.fontWeight,{enum:[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"],description:n.localize(132,null)})),formatOnPaste:K(new h(38,\"formatOnPaste\",!1,{description:n.localize(133,null)})),\nformatOnType:K(new h(39,\"formatOnType\",!1,{description:n.localize(134,null)})),glyphMargin:K(new h(40,\"glyphMargin\",!0,{description:n.localize(135,null)})),gotoLocation:K(new N),hideCursorInOverviewRuler:K(new h(42,\"hideCursorInOverviewRuler\",!1,{description:n.localize(136,null)})),highlightActiveIndentGuide:K(new h(43,\"highlightActiveIndentGuide\",!0,{description:n.localize(137,null)})),hover:K(new x),inDiffEditor:K(new h(45,\"inDiffEditor\",!1)),letterSpacing:K(new g(46,\"letterSpacing\",t.EDITOR_FONT_DEFAULTS.letterSpacing,(function(e){return g.clamp(e,-5,20)}),{description:n.localize(138,null)})),lightbulb:K(new M),lineDecorationsWidth:K(new c(48,\"lineDecorationsWidth\",10)),lineHeight:K(new k),lineNumbers:K(new A),lineNumbersMinChars:K(new p(51,\"lineNumbersMinChars\",5,1,300)),links:K(new h(52,\"links\",!0,{description:n.localize(139,null)})),matchBrackets:K(new m(53,\"matchBrackets\",\"always\",[\"always\",\"near\",\"never\"],{description:n.localize(140,null)})),minimap:K(new T),\nmouseStyle:K(new m(55,\"mouseStyle\",\"text\",[\"text\",\"default\",\"copy\"])),mouseWheelScrollSensitivity:K(new g(56,\"mouseWheelScrollSensitivity\",1,(function(e){return 0===e?1:e}),{markdownDescription:n.localize(141,null)})),mouseWheelZoom:K(new h(57,\"mouseWheelZoom\",!1,{markdownDescription:n.localize(142,null)})),multiCursorMergeOverlapping:K(new h(58,\"multiCursorMergeOverlapping\",!0,{description:n.localize(143,null)})),multiCursorModifier:K(new v(59,\"multiCursorModifier\",\"altKey\",\"alt\",[\"ctrlCmd\",\"alt\"],(function(e){return\"ctrlCmd\"===e?i.isMacintosh?\"metaKey\":\"ctrlKey\":\"altKey\"}),{markdownEnumDescriptions:[n.localize(144,null),n.localize(145,null)],markdownDescription:n.localize(146,null)})),multiCursorPaste:K(new m(60,\"multiCursorPaste\",\"spread\",[\"spread\",\"full\"],{markdownEnumDescriptions:[n.localize(147,null),n.localize(148,null)],markdownDescription:n.localize(149,null)})),occurrencesHighlight:K(new h(61,\"occurrencesHighlight\",!0,{description:n.localize(150,null)})),\noverviewRulerBorder:K(new h(62,\"overviewRulerBorder\",!0,{description:n.localize(151,null)})),overviewRulerLanes:K(new p(63,\"overviewRulerLanes\",3,0,3)),parameterHints:K(new R),peekWidgetDefaultFocus:K(new m(65,\"peekWidgetDefaultFocus\",\"tree\",[\"tree\",\"editor\"],{enumDescriptions:[n.localize(152,null),n.localize(153,null)],description:n.localize(154,null)})),quickSuggestions:K(new P),quickSuggestionsDelay:K(new p(67,\"quickSuggestionsDelay\",10,0,1073741824,{description:n.localize(155,null)})),readOnly:K(new h(68,\"readOnly\",!1)),renderControlCharacters:K(new h(69,\"renderControlCharacters\",!1,{description:n.localize(156,null)})),renderIndentGuides:K(new h(70,\"renderIndentGuides\",!0,{description:n.localize(157,null)})),renderFinalNewline:K(new h(71,\"renderFinalNewline\",!0,{description:n.localize(158,null)})),renderLineHighlight:K(new m(72,\"renderLineHighlight\",\"line\",[\"none\",\"gutter\",\"line\",\"all\"],{enumDescriptions:[\"\",\"\",\"\",n.localize(159,null)],description:n.localize(160,null)})),\nrenderValidationDecorations:K(new m(73,\"renderValidationDecorations\",\"editable\",[\"editable\",\"on\",\"off\"])),renderWhitespace:K(new m(74,\"renderWhitespace\",\"none\",[\"none\",\"boundary\",\"selection\",\"all\"],{enumDescriptions:[\"\",n.localize(161,null),n.localize(162,null),\"\"],description:n.localize(163,null)})),revealHorizontalRightPadding:K(new p(75,\"revealHorizontalRightPadding\",30,0,1e3)),roundedSelection:K(new h(76,\"roundedSelection\",!0,{description:n.localize(164,null)})),rulers:K(new F),scrollbar:K(new B),scrollBeyondLastColumn:K(new p(79,\"scrollBeyondLastColumn\",5,0,1073741824,{description:n.localize(165,null)})),scrollBeyondLastLine:K(new h(80,\"scrollBeyondLastLine\",!0,{description:n.localize(166,null)})),selectionClipboard:K(new h(81,\"selectionClipboard\",!0,{description:n.localize(167,null),included:i.isLinux})),selectionHighlight:K(new h(82,\"selectionHighlight\",!0,{description:n.localize(168,null)})),selectOnLineNumbers:K(new h(83,\"selectOnLineNumbers\",!0)),\nshowFoldingControls:K(new m(84,\"showFoldingControls\",\"mouseover\",[\"always\",\"mouseover\"],{description:n.localize(169,null)})),showUnused:K(new h(85,\"showUnused\",!0,{description:n.localize(170,null)})),snippetSuggestions:K(new m(86,\"snippetSuggestions\",\"inline\",[\"top\",\"bottom\",\"inline\",\"none\"],{enumDescriptions:[n.localize(171,null),n.localize(172,null),n.localize(173,null),n.localize(174,null)],description:n.localize(175,null)})),smoothScrolling:K(new h(87,\"smoothScrolling\",!1,{description:n.localize(176,null)})),stopRenderingLineAfter:K(new p(88,\"stopRenderingLineAfter\",1e4,-1,1073741824)),suggest:K(new V),suggestFontSize:K(new p(90,\"suggestFontSize\",0,0,1e3,{markdownDescription:n.localize(177,null)})),suggestLineHeight:K(new p(91,\"suggestLineHeight\",0,0,1e3,{markdownDescription:n.localize(178,null)})),suggestOnTriggerCharacters:K(new h(92,\"suggestOnTriggerCharacters\",!0,{description:n.localize(179,null)})),\nsuggestSelection:K(new m(93,\"suggestSelection\",\"recentlyUsed\",[\"first\",\"recentlyUsed\",\"recentlyUsedByPrefix\"],{markdownEnumDescriptions:[n.localize(180,null),n.localize(181,null),n.localize(182,null)],description:n.localize(183,null)})),tabCompletion:K(new m(94,\"tabCompletion\",\"off\",[\"on\",\"off\",\"onlySnippets\"],{enumDescriptions:[n.localize(184,null),n.localize(185,null),n.localize(186,null)],description:n.localize(187,null)})),useTabStops:K(new h(95,\"useTabStops\",!0,{description:n.localize(188,null)})),wordSeparators:K(new f(96,\"wordSeparators\",o.USUAL_WORD_SEPARATORS,{description:n.localize(189,null)})),wordWrap:K(new m(97,\"wordWrap\",\"off\",[\"off\",\"on\",\"wordWrapColumn\",\"bounded\"],{markdownEnumDescriptions:[n.localize(190,null),n.localize(191,null),n.localize(192,null),n.localize(193,null)],description:n.localize(194,null)})),wordWrapBreakAfterCharacters:K(new f(98,\"wordWrapBreakAfterCharacters\",\" \\t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣\")),\nwordWrapBreakBeforeCharacters:K(new f(99,\"wordWrapBreakBeforeCharacters\",\"([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋\")),wordWrapColumn:K(new p(100,\"wordWrapColumn\",80,1,1073741824,{markdownDescription:n.localize(195,null)})),wordWrapMinified:K(new h(101,\"wordWrapMinified\",!0)),wrappingIndent:K(new v(102,\"wrappingIndent\",1,\"same\",[\"none\",\"same\",\"indent\",\"deepIndent\"],(function(e){switch(e){case\"none\":return 0;case\"same\":return 1;case\"indent\":return 2;case\"deepIndent\":return 3}}),{enumDescriptions:[n.localize(196,null),n.localize(197,null),n.localize(198,null),n.localize(199,null)],description:n.localize(200,null)})),wrappingStrategy:K(new m(103,\"wrappingStrategy\",\"simple\",[\"simple\",\"advanced\"],{enumDescriptions:[n.localize(201,null),n.localize(202,null)],description:n.localize(203,null)})),editorClassName:K(new b),pixelRatio:K(new O),tabFocusMode:K(new z),layoutInfo:K(new I),wrappingInfo:K(new H)}})),define(n[424],i([0,1,13,3,69,33]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var s=function(){function e(e,t,n,i,o){this.editorId=e,this.model=t,this.configuration=n,this._linesCollection=i,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}return e.prototype._clearCachedModelDecorationsResolver=function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null},e.prototype.dispose=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.reset=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onModelDecorationsChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onLineMappingChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype._getOrCreateViewModelDecoration=function(e){\nvar t=e.id,r=this._decorationsCache[t];if(!r){var s=e.range,a=e.options,l=void 0;if(a.isWholeLine){var u=this._coordinatesConverter.convertModelPositionToViewPosition(new n.Position(s.startLineNumber,1)),d=this._coordinatesConverter.convertModelPositionToViewPosition(new n.Position(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)));l=new i.Range(u.lineNumber,u.column,d.lineNumber,d.column)}else l=this._coordinatesConverter.convertModelRangeToViewRange(s);r=new o.ViewModelDecoration(l,a),this._decorationsCache[t]=r}return r},e.prototype.getDecorationsViewportData=function(e){var t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver},e.prototype._getDecorationsViewportData=function(e){\nfor(var t=this._linesCollection.getDecorationsInRange(e,this.editorId,r.filterValidationDecorations(this.configuration.options)),n=e.startLineNumber,s=e.endLineNumber,a=[],l=0,u=[],d=n;d<=s;d++)u[d-n]=[];for(var c=0,h=t.length;c<h;c++){var p=t[c],g=p.options,f=this._getOrCreateViewModelDecoration(p),m=f.range;if(a[l++]=f,g.inlineClassName){var v=new o.InlineDecoration(m,g.inlineClassName,g.inlineClassNameAffectsLetterSpacing?3:0),_=Math.max(n,m.startLineNumber),y=Math.min(s,m.endLineNumber);for(d=_;d<=y;d++)u[d-n].push(v)}if(g.beforeContentClassName&&n<=m.startLineNumber&&m.startLineNumber<=s){v=new o.InlineDecoration(new i.Range(m.startLineNumber,m.startColumn,m.startLineNumber,m.startColumn),g.beforeContentClassName,1);u[m.startLineNumber-n].push(v)}if(g.afterContentClassName&&n<=m.endLineNumber&&m.endLineNumber<=s){v=new o.InlineDecoration(new i.Range(m.endLineNumber,m.endColumn,m.endLineNumber,m.endColumn),g.afterContentClassName,2);u[m.endLineNumber-n].push(v)}}return{decorations:a,inlineDecorations:u}},\ne}();t.ViewModelDecorations=s})),define(n[425],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/modes/modesRegistry\",t)})),define(n[426],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/standaloneStrings\",t)})),define(n[59],i([0,1,426]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.noSelection=n.localize(0,null),e.singleSelectionRange=n.localize(1,null),e.singleSelection=n.localize(2,null),e.multiSelectionRange=n.localize(3,null),e.multiSelection=n.localize(4,null),e.emergencyConfOn=n.localize(5,null),e.openingDocs=n.localize(6,null),e.readonlyDiffEditor=n.localize(7,null),e.editableDiffEditor=n.localize(8,null),e.readonlyEditor=n.localize(9,null),e.editableEditor=n.localize(10,null),e.changeConfigToOnMac=n.localize(11,null),e.changeConfigToOnWinLinux=n.localize(12,null),e.auto_on=n.localize(13,null),e.auto_off=n.localize(14,null),e.tabFocusModeOnMsg=n.localize(15,null),e.tabFocusModeOnMsgNoKb=n.localize(16,null),\ne.tabFocusModeOffMsg=n.localize(17,null),e.tabFocusModeOffMsgNoKb=n.localize(18,null),e.openDocMac=n.localize(19,null),e.openDocWinLinux=n.localize(20,null),e.outroMsg=n.localize(21,null),e.showAccessibilityHelpAction=n.localize(22,null)}(t.AccessibilityHelpNLS||(t.AccessibilityHelpNLS={})),function(e){e.inspectTokensAction=n.localize(23,null)}(t.InspectTokensNLS||(t.InspectTokensNLS={})),function(e){e.gotoLineLabelValidLineAndColumn=n.localize(24,null),e.gotoLineLabelValidLine=n.localize(25,null),e.gotoLineLabelEmptyWithLineLimit=n.localize(26,null),e.gotoLineLabelEmptyWithLineAndColumnLimit=n.localize(27,null),e.gotoLineAriaLabel=n.localize(28,null),e.gotoLineActionInput=n.localize(29,null),e.gotoLineActionLabel=n.localize(30,null)}(t.GoToLineNLS||(t.GoToLineNLS={})),function(e){e.ariaLabelEntryWithKey=n.localize(31,null),e.ariaLabelEntry=n.localize(32,null),e.quickCommandActionInput=n.localize(33,null),e.quickCommandActionLabel=n.localize(34,null)}(t.QuickCommandNLS||(t.QuickCommandNLS={})),function(e){\ne.entryAriaLabel=n.localize(35,null),e.quickOutlineActionInput=n.localize(36,null),e.quickOutlineActionLabel=n.localize(37,null),e._symbols_=n.localize(38,null),e._modules_=n.localize(39,null),e._class_=n.localize(40,null),e._interface_=n.localize(41,null),e._method_=n.localize(42,null),e._function_=n.localize(43,null),e._property_=n.localize(44,null),e._variable_=n.localize(45,null),e._variable2_=n.localize(46,null),e._constructor_=n.localize(47,null),e._call_=n.localize(48,null)}(t.QuickOutlineNLS||(t.QuickOutlineNLS={})),function(e){e.editorViewAccessibleLabel=n.localize(49,null),e.accessibilityHelpMessageIE=n.localize(50,null),e.accessibilityHelpMessage=n.localize(51,null)}(t.StandaloneCodeEditorNLS||(t.StandaloneCodeEditorNLS={})),function(e){e.toggleHighContrast=n.localize(52,null)}(t.ToggleHighContrastNLS||(t.ToggleHighContrastNLS={})),function(e){e.bulkEditServiceSummary=n.localize(53,null)}(t.SimpleServicesNLS||(t.SimpleServicesNLS={}))})),define(n[427],i([7,8]),(function(e,t){\nreturn e.create(\"vs/editor/common/view/editorColorRegistry\",t)})),define(n[428],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/bracketMatching/bracketMatching\",t)})),define(n[429],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/caretOperations/caretOperations\",t)})),define(n[430],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/caretOperations/transpose\",t)})),define(n[431],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/clipboard/clipboard\",t)})),define(n[432],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/codeAction/codeActionCommands\",t)})),define(n[433],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/codeAction/lightBulbWidget\",t)})),define(n[434],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/comment/comment\",t)})),define(n[435],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/contextmenu/contextmenu\",t)})),define(n[436],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/cursorUndo/cursorUndo\",t)})),\ndefine(n[437],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/documentSymbols/outlineTree\",t)})),define(n[438],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/find/findController\",t)})),define(n[439],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/find/findWidget\",t)})),define(n[440],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/folding/folding\",t)})),define(n[441],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/fontZoom/fontZoom\",t)})),define(n[442],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/format/format\",t)})),define(n[443],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/format/formatActions\",t)})),define(n[444],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoError/gotoError\",t)})),define(n[445],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoError/gotoErrorWidget\",t)})),define(n[446],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/goToCommands\",t)})),\ndefine(n[447],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",t)})),define(n[448],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesController\",t)})),define(n[449],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesTree\",t)})),define(n[450],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\",t)})),define(n[451],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/referencesModel\",t)})),define(n[113],i([0,1,451,4,39,2,5,127,3]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t,n,i){this.isProviderFirst=e,this.parent=t,this._range=n,this._rangeCallback=i,this.id=a.defaultGenerator.nextId()}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this.parent.uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"range\",{\nget:function(){return this._range},set:function(e){this._range=e,this._rangeCallback(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){return n.localize(0,null,o.basename(this.uri),this.range.startLineNumber,this.range.startColumn)},enumerable:!0,configurable:!0}),e}();t.OneReference=u;var d=function(){function e(e){this._modelReference=e}return e.prototype.dispose=function(){this._modelReference.dispose()},e.prototype.preview=function(e,t){void 0===t&&(t=8);var n=this._modelReference.object.textEditorModel;if(n){var i=e.startLineNumber,o=e.startColumn,r=e.endLineNumber,s=e.endColumn,a=n.getWordUntilPosition({lineNumber:i,column:o-t}),u=new l.Range(i,a.startColumn,i,o),d=new l.Range(r,s,r,1073741824),c=n.getValueInRange(u).replace(/^\\s+/,\"\"),h=n.getValueInRange(e);return{value:c+h+n.getValueInRange(d).replace(/\\s+$/,\"\"),highlight:{start:c.length,end:c.length+h.length}}}},e}();t.FilePreview=d;var c=function(){function e(e,t){this.parent=e,this.uri=t,\nthis.children=[]}return e.prototype.dispose=function(){r.dispose(this._preview),this._preview=void 0},Object.defineProperty(e.prototype,\"preview\",{get:function(){return this._preview},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"failure\",{get:function(){return this._loadFailure},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){var e=this.children.length;return 1===e?n.localize(1,null,o.basename(this.uri),this.uri.fsPath):n.localize(2,null,e,o.basename(this.uri),this.uri.fsPath)},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;return this._resolved?Promise.resolve(this):Promise.resolve(e.createModelReference(this.uri).then((function(e){if(!e.object)throw e.dispose(),new Error;return t._preview=new d(e),t._resolved=!0,t}),(function(e){return t.children.length=0,t._resolved=!0,t._loadFailure=e,t})))},e}();t.FileReferences=c;var h=function(){function e(t,n){var o=this;this._disposables=new r.DisposableStore,\nthis.groups=[],this.references=[],this._onDidChangeReferenceRange=new i.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;var s,a=t[0];t.sort(e._compareReferences);for(var d=0,h=t;d<h.length;d++){var p=h[d];if(s&&s.uri.toString()===p.uri.toString()||(s=new c(this,p.uri),this.groups.push(s)),0===s.children.length||!l.Range.equalsRange(p.range,s.children[s.children.length-1].range)){var g=new u(a===p,s,p.targetSelectionRange||p.range,(function(e){return o._onDidChangeReferenceRange.fire(e)}));this.references.push(g),s.children.push(g)}}}return e.prototype.dispose=function(){r.dispose(this.groups),this._disposables.dispose(),this._onDidChangeReferenceRange.dispose(),this.groups.length=0},e.prototype.clone=function(){return new e(this._links,this._title)},Object.defineProperty(e.prototype,\"title\",{get:function(){return this._title},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isEmpty\",{get:function(){return 0===this.groups.length},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){return this.isEmpty?n.localize(3,null):1===this.references.length?n.localize(4,null,this.references[0].uri.fsPath):1===this.groups.length?n.localize(5,null,this.references.length,this.groups[0].uri.fsPath):n.localize(6,null,this.references.length,this.groups.length)},enumerable:!0,configurable:!0}),e.prototype.nextOrPreviousReference=function(e,t){var n=e.parent,i=n.children.indexOf(e),o=n.children.length,r=n.parent.groups.length;return 1===r||t&&i+1<o||!t&&i>0?(i=t?(i+1)%o:(i+o-1)%o,n.children[i]):(i=n.parent.groups.indexOf(n),t?(i=(i+1)%r,n.parent.groups[i].children[0]):(i=(i+r-1)%r,n.parent.groups[i].children[n.parent.groups[i].children.length-1]))},e.prototype.nearestReference=function(e,t){var n=this.references.map((function(n,i){return{idx:i,prefixLen:s.commonPrefixLength(n.uri.toString(),e.toString()),offsetDist:100*Math.abs(n.range.startLineNumber-t.lineNumber)+Math.abs(n.range.startColumn-t.column)}\n})).sort((function(e,t){return e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0}))[0];if(n)return this.references[n.idx]},e.prototype.referenceAt=function(e,t){for(var n=0,i=this.references;n<i.length;n++){var o=i[n];if(o.uri.toString()===e.toString()&&l.Range.containsPosition(o.range,t))return o}},e.prototype.firstReference=function(){for(var e=0,t=this.references;e<t.length;e++){var n=t[e];if(n.isProviderFirst)return n}return this.references[0]},e._compareReferences=function(e,t){return s.compare(e.uri.toString(),t.uri.toString())||l.Range.compareRangesUsingStarts(e.range,t.range)},e}();t.ReferencesModel=h})),define(n[452],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/symbolNavigation\",t)})),define(n[453],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/hover/hover\",t)})),define(n[454],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/hover/modesContentHover\",t)})),define(n[455],i([7,8]),(function(e,t){\nreturn e.create(\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\",t)})),define(n[456],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/linesOperations/linesOperations\",t)})),define(n[457],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/links/links\",t)})),define(n[458],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/message/messageController\",t)})),define(n[459],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/multicursor/multicursor\",t)})),define(n[460],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/parameterHints/parameterHints\",t)})),define(n[461],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/parameterHints/parameterHintsWidget\",t)})),define(n[462],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/peekView/peekView\",t)})),define(n[463],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/rename/rename\",t)})),define(n[464],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/rename/renameInputField\",t)})),\ndefine(n[465],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/smartSelect/smartSelect\",t)})),define(n[466],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/snippet/snippetVariables\",t)})),define(n[467],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/suggest/suggestController\",t)})),define(n[468],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/suggest/suggestWidget\",t)})),define(n[469],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",t)})),define(n[470],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/tokenization/tokenization\",t)})),define(n[471],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/wordHighlighter/wordHighlighter\",t)})),define(n[472],i([7,8]),(function(e,t){return e.create(\"vs/platform/configuration/common/configurationRegistry\",t)})),define(n[473],i([7,8]),(function(e,t){return e.create(\"vs/platform/keybinding/common/abstractKeybindingService\",t)})),\ndefine(n[474],i([7,8]),(function(e,t){return e.create(\"vs/platform/list/browser/listService\",t)})),define(n[475],i([7,8]),(function(e,t){return e.create(\"vs/platform/markers/common/markers\",t)})),define(n[476],i([7,8]),(function(e,t){return e.create(\"vs/platform/theme/common/colorRegistry\",t)})),define(n[477],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputFocusedContextKey=\"inputFocus\"})),define(n[478],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.API=0]=\"API\",e[e.USER=1]=\"USER\"}(t.EditorOpenContext||(t.EditorOpenContext={}))})),define(n[479],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.value=e,this._lower=e.toLowerCase()}return e.toKey=function(e){return\"string\"==typeof e?e.toLowerCase():e._lower},e}();t.ExtensionIdentifier=n})),define(n[208],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nfunction(e){e[e.FILE=0]=\"FILE\",e[e.FOLDER=1]=\"FOLDER\",e[e.ROOT_FOLDER=2]=\"ROOT_FOLDER\"}(t.FileKind||(t.FileKind={}))})),define(n[209],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=!1),this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=n};t.SyncDescriptor=n})),define(n[83],i([0,1,209]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=[];t.registerSingleton=function(e,t,o){i.push([e,new n.SyncDescriptor(t,[],o)])},t.getSingletonServiceDescriptors=function(){return i}})),define(n[480],i([0,1,21,87]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._hashFn=e,this._nodes=Object.create(null)}return e.prototype.roots=function(){var e=[];return i.forEach(this._nodes,(function(t){n.isEmptyObject(t.value.outgoing)&&e.push(t.value)})),e},e.prototype.insertEdge=function(e,t){\nvar n=this.lookupOrInsertNode(e),i=this.lookupOrInsertNode(t);n.outgoing[this._hashFn(t)]=i,i.incoming[this._hashFn(e)]=n},e.prototype.removeNode=function(e){var t=this._hashFn(e);delete this._nodes[t],i.forEach(this._nodes,(function(e){delete e.value.outgoing[t],delete e.value.incoming[t]}))},e.prototype.lookupOrInsertNode=function(e){var t=this._hashFn(e),n=this._nodes[t];return n||(n=function(e){return{data:e,incoming:Object.create(null),outgoing:Object.create(null)}}(e),this._nodes[t]=n),n},e.prototype.isEmpty=function(){for(var e in this._nodes)return!1;return!0},e.prototype.toString=function(){var e=[];return i.forEach(this._nodes,(function(t){e.push(t.key+\", (incoming)[\"+Object.keys(t.value.incoming).join(\", \")+\"], (outgoing)[\"+Object.keys(t.value.outgoing).join(\",\")+\"]\")})),e.join(\"\\n\")},e}();t.Graph=o})),define(n[11],i([0,1]),(function(e,t){\"use strict\";var n;function i(e,t,i,o){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i,optional:o}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i,optional:o}],\nt[n.DI_TARGET]=t)}function o(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);var t=function(e,n,o){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");i(t,e,o,!1)};return t.toString=function(){return e},n.serviceIds.set(e,t),t}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.serviceIds=new Map,e.DI_TARGET=\"$di$target\",e.DI_DEPENDENCIES=\"$di$dependencies\",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(n=t._util||(t._util={})),t.IInstantiationService=o(\"instantiationService\"),t.createDecorator=o,t.optional=function(e){return function(t,n,o){if(3!==arguments.length)throw new Error(\"@optional-decorator can only be used to decorate a parameter\");i(e,t,o,!0)}}})),define(n[156],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IBulkEditService=n.createDecorator(\"IWorkspaceEditService\")})),define(n[32],i([0,1,11]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICodeEditorService=n.createDecorator(\"codeEditorService\")})),define(n[62],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ID_EDITOR_WORKER_SERVICE=\"editorWorkerService\",t.IEditorWorkerService=n.createDecorator(t.ID_EDITOR_WORKER_SERVICE)})),define(n[210],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IMarkerDecorationsService=n.createDecorator(\"markerDecorationsService\")})),define(n[71],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IModeService=n.createDecorator(\"modeService\")})),define(n[49],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IModelService=n.createDecorator(\"modelService\"),t.shouldSynchronizeModel=function(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}})),define(n[481],i([0,1,4,2,350,49]),(function(e,t,n,i,o,r){\"use strict\";function s(e){\nreturn\"string\"!=typeof e&&(Array.isArray(e)?e.every(s):!!e.exclusive)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(){this._clock=0,this._entries=[],this._onDidChange=new n.Emitter}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var n=this,o={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(o),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i.toDisposable((function(){if(o){var e=n._entries.indexOf(o);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),o=void 0)}}))},e.prototype.has=function(e){return this.all(e).length>0},e.prototype.all=function(e){if(!e)return[];this._updateScores(e);for(var t=[],n=0,i=this._entries;n<i.length;n++){var o=i[n];o._score>0&&t.push(o.provider)}return t},e.prototype.ordered=function(e){var t=[]\n;return this._orderedForEach(e,(function(e){return t.push(e.provider)})),t},e.prototype.orderedGroups=function(e){var t,n,i=[];return this._orderedForEach(e,(function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))})),i},e.prototype._orderedForEach=function(e,t){if(e){this._updateScores(e);for(var n=0,i=this._entries;n<i.length;n++){var o=i[n];o._score>0&&t(o)}}},e.prototype._updateScores=function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;for(var i=0,a=this._entries;i<a.length;i++){var l=a[i];if(l._score=o.score(l.selector,t.uri,t.getLanguageIdentifier().language,r.shouldSynchronizeModel(t)),s(l.selector)&&l._score>0){for(var u=0,d=this._entries;u<d.length;u++){d[u]._score=0}l._score=1e3;break}}this._entries.sort(e._compareByScoreAndTime)}},e._compareByScoreAndTime=function(e,t){\nreturn e._score<t._score?1:e._score>t._score?-1:e._time<t._time?1:e._time>t._time?-1:0},e}();t.LanguageFeatureRegistry=a})),define(n[17],i([0,1,21,25,3,481,358]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e,t){this.language=e,this.id=t};t.LanguageIdentifier=a;var l,u=function(){function e(){}return e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(1792&e)>>>8},e.getFontStyle=function(e){return(14336&e)>>>11},e.getForeground=function(e){return(8372224&e)>>>14},e.getBackground=function(e){return(4286578688&e)>>>23},e.getClassNameFromMetadata=function(e){var t=\"mtk\"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=\" mtki\"),2&n&&(t+=\" mtkb\"),4&n&&(t+=\" mtku\"),t},e.getInlineStyleFromMetadata=function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),o=\"color: \"+t[n]+\";\";return 1&i&&(o+=\"font-style: italic;\"),2&i&&(o+=\"font-weight: bold;\"),4&i&&(o+=\"text-decoration: underline;\"),o},e}();t.TokenMetadata=u,\nt.completionKindToCssClass=((l=Object.create(null))[0]=\"method\",l[1]=\"function\",l[2]=\"constructor\",l[3]=\"field\",l[4]=\"variable\",l[5]=\"class\",l[6]=\"struct\",l[7]=\"interface\",l[8]=\"module\",l[9]=\"property\",l[10]=\"event\",l[11]=\"operator\",l[12]=\"unit\",l[13]=\"value\",l[14]=\"constant\",l[15]=\"enum\",l[16]=\"enum-member\",l[17]=\"keyword\",l[25]=\"snippet\",l[18]=\"text\",l[19]=\"color\",l[20]=\"file\",l[21]=\"reference\",l[22]=\"customcolor\",l[23]=\"folder\",l[24]=\"type-parameter\",function(e){return l[e]||\"property\"}),t.completionKindFromString=function(){var e=Object.create(null);return e.method=0,e.function=1,e.constructor=2,e.field=3,e.variable=4,e.class=5,e.struct=6,e.interface=7,e.module=8,e.property=9,e.event=10,e.operator=11,e.unit=12,e.value=13,e.constant=14,e.enum=15,e[\"enum-member\"]=16,e.enumMember=16,e.keyword=17,e.snippet=25,e.text=18,e.color=19,e.file=20,e.reference=21,e.customcolor=22,e.folder=23,e[\"type-parameter\"]=24,e.typeParameter=24,function(t,n){var i=e[t];return void 0!==i||n||(i=9),i}}(),function(e){\ne[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),t.isLocationLink=function(e){return e&&i.URI.isUri(e.uri)&&o.Range.isIRange(e.range)&&(o.Range.isIRange(e.originSelectionRange)||o.Range.isIRange(e.targetSelectionRange))},function(e){var t=new Map;t.set(\"file\",0),t.set(\"module\",1),t.set(\"namespace\",2),t.set(\"package\",3),t.set(\"class\",4),t.set(\"method\",5),t.set(\"property\",6),t.set(\"field\",7),t.set(\"constructor\",8),t.set(\"enum\",9),t.set(\"interface\",10),t.set(\"function\",11),t.set(\"variable\",12),t.set(\"constant\",13),t.set(\"string\",14),t.set(\"number\",15),t.set(\"boolean\",16),t.set(\"array\",17),t.set(\"object\",18),t.set(\"key\",19),t.set(\"null\",20),t.set(\"enum-member\",21),t.set(\"struct\",22),t.set(\"event\",23),t.set(\"operator\",24),t.set(\"type-parameter\",25);var n=new Map\n;n.set(0,\"file\"),n.set(1,\"module\"),n.set(2,\"namespace\"),n.set(3,\"package\"),n.set(4,\"class\"),n.set(5,\"method\"),n.set(6,\"property\"),n.set(7,\"field\"),n.set(8,\"constructor\"),n.set(9,\"enum\"),n.set(10,\"interface\"),n.set(11,\"function\"),n.set(12,\"variable\"),n.set(13,\"constant\"),n.set(14,\"string\"),n.set(15,\"number\"),n.set(16,\"boolean\"),n.set(17,\"array\"),n.set(18,\"object\"),n.set(19,\"key\"),n.set(20,\"null\"),n.set(21,\"enum-member\"),n.set(22,\"struct\"),n.set(23,\"event\"),n.set(24,\"operator\"),n.set(25,\"type-parameter\"),e.fromString=function(e){return t.get(e)},e.toString=function(e){return n.get(e)},e.toCssClassName=function(e,t){return\"codicon \"+(t?\"inline\":\"block\")+\" codicon-symbol-\"+(n.get(e)||\"property\")}}(t.SymbolKinds||(t.SymbolKinds={}));var d=function(){function e(e){this.value=e}return e.Comment=new e(\"comment\"),e.Imports=new e(\"imports\"),e.Region=new e(\"region\"),e}();t.FoldingRangeKind=d,function(e){e.is=function(e){return n.isObject(e)&&(Boolean(e.newUri)||Boolean(e.oldUri))}\n}(t.WorkspaceFileEdit||(t.WorkspaceFileEdit={})),function(e){e.is=function(e){return n.isObject(e)&&i.URI.isUri(e.resource)&&n.isObject(e.edit)}}(t.WorkspaceTextEdit||(t.WorkspaceTextEdit={})),t.ReferenceProviderRegistry=new r.LanguageFeatureRegistry,t.RenameProviderRegistry=new r.LanguageFeatureRegistry,t.CompletionProviderRegistry=new r.LanguageFeatureRegistry,t.SignatureHelpProviderRegistry=new r.LanguageFeatureRegistry,t.HoverProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentSymbolProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentHighlightProviderRegistry=new r.LanguageFeatureRegistry,t.DefinitionProviderRegistry=new r.LanguageFeatureRegistry,t.DeclarationProviderRegistry=new r.LanguageFeatureRegistry,t.ImplementationProviderRegistry=new r.LanguageFeatureRegistry,t.TypeDefinitionProviderRegistry=new r.LanguageFeatureRegistry,t.CodeLensProviderRegistry=new r.LanguageFeatureRegistry,t.CodeActionProviderRegistry=new r.LanguageFeatureRegistry,\nt.DocumentFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentRangeFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.OnTypeFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.LinkProviderRegistry=new r.LanguageFeatureRegistry,t.ColorProviderRegistry=new r.LanguageFeatureRegistry,t.SelectionRangeRegistry=new r.LanguageFeatureRegistry,t.FoldingRangeProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentSemanticTokensProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentRangeSemanticTokensProviderRegistry=new r.LanguageFeatureRegistry,t.TokenizationRegistry=new s.TokenizationRegistryImpl})),define(n[93],i([0,1,17]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t}return e.prototype.equals=function(t){return t instanceof e&&this.slicedEquals(t,0,this._tokensCount)},e.prototype.slicedEquals=function(e,t,n){\nif(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;for(var i=t<<1,o=i+(n<<1),r=i;r<o;r++)if(this._tokens[r]!==e._tokens[r])return!1;return!0},e.prototype.getLineContent=function(){return this._text},e.prototype.getCount=function(){return this._tokensCount},e.prototype.getStartOffset=function(e){return e>0?this._tokens[e-1<<1]:0},e.prototype.getMetadata=function(e){return this._tokens[1+(e<<1)]},e.prototype.getLanguageId=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getLanguageId(t)},e.prototype.getStandardTokenType=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getTokenType(t)},e.prototype.getForeground=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getForeground(t)},e.prototype.getClassName=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getClassNameFromMetadata(t)},e.prototype.getInlineStyle=function(e,t){var i=this._tokens[1+(e<<1)];return n.TokenMetadata.getInlineStyleFromMetadata(i,t)},\ne.prototype.getEndOffset=function(e){return this._tokens[e<<1]},e.prototype.findTokenIndexAtOffset=function(t){return e.findIndexInTokensArray(this._tokens,t)},e.prototype.inflate=function(){return this},e.prototype.sliceAndInflate=function(e,t,n){return new o(this,e,t,n)},e.convertToEndOffset=function(e,t){for(var n=(e.length>>>1)-1,i=0;i<n;i++)e[i<<1]=e[i+1<<1];e[n<<1]=t},e.findIndexInTokensArray=function(e,t){if(e.length<=2)return 0;for(var n=0,i=(e.length>>>1)-1;n<i;){var o=n+Math.floor((i-n)/2),r=e[o<<1];if(r===t)return o+1;r<t?n=o+1:r>t&&(i=o)}return n},e}();t.LineTokens=i;var o=function(){function e(e,t,n,i){this._source=e,this._startOffset=t,this._endOffset=n,this._deltaOffset=i,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(var o=this._firstTokenIndex,r=e.getCount();o<r;o++){if(e.getStartOffset(o)>=n)break;this._tokensCount++}}return e.prototype.equals=function(t){\nreturn t instanceof e&&(this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount))},e.prototype.getCount=function(){return this._tokensCount},e.prototype.getForeground=function(e){return this._source.getForeground(this._firstTokenIndex+e)},e.prototype.getEndOffset=function(e){var t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset},e.prototype.getClassName=function(e){return this._source.getClassName(this._firstTokenIndex+e)},e.prototype.getInlineStyle=function(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)},e.prototype.findTokenIndexAtOffset=function(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex},e}();t.SlicedLineTokens=o})),define(n[157],i([0,1,19,93,13,17]),(function(e,t,n,i,o,r){\"use strict\";function s(e){\nfor(var t=0,n=0,i=0,o=0,r=e.length;o<r;o++){var s=e.charCodeAt(o);13===s?(0===t&&(n=o),t++,o+1<r&&10===e.charCodeAt(o+1)&&o++,i=o+1):10===s&&(0===t&&(n=o),t++,i=o+1)}return 0===t&&(n=e.length),[t,n,e.length-i]}function a(e){return(16384|e<<0|2<<23)>>>0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.countEOL=s;var l=new Uint32Array(0).buffer,u=function(){function e(){this.tokens=[]}return e.prototype.add=function(e,t){if(this.tokens.length>0){var n=this.tokens[this.tokens.length-1];if(n.startLineNumber+n.tokens.length-1+1===e)return void n.tokens.push(t)}this.tokens.push(new p(e,[t]))},e}();t.MultilineTokensBuilder=u;var d=function(){function e(e){this._tokens=e,this._tokenCount=e.length/4}return e.prototype.getMaxDeltaLine=function(){var e=this.getTokenCount();return 0===e?-1:this.getDeltaLine(e-1)},e.prototype.getTokenCount=function(){return this._tokenCount},e.prototype.getDeltaLine=function(e){return this._tokens[4*e]},e.prototype.getStartCharacter=function(e){return this._tokens[4*e+1]},\ne.prototype.getEndCharacter=function(e){return this._tokens[4*e+2]},e.prototype.getMetadata=function(e){return this._tokens[4*e+3]},e.prototype.clear=function(){this._tokenCount=0},e.prototype.acceptDeleteRange=function(e,t,n,i,o){for(var r=this._tokens,s=this._tokenCount,a=i-t,l=0,u=!1,d=0;d<s;d++){var c=4*d,h=r[c],p=r[c+1],g=r[c+2],f=r[c+3];if(h<t||h===t&&g<=n)l++;else{if(h===t&&p<n)h===i&&g>o?g-=o-n:g=n;else if(h===t&&p===n){if(!(h===i&&g>o)){u=!0;continue}g-=o-n}else if(h<i||h===i&&p<o){if(!(h===i&&g>o)){u=!0;continue}g=h===t?(p=n)+(g-o):(p=0)+(g-o)}else if(h>i){if(0===a&&!u){l=s;break}h-=a}else{if(!(h===i&&p>=o))throw new Error(\"Not possible!\");e&&0===h&&(p+=e,g+=e),h-=a,p-=o-n,g-=o-n}var m=4*l;r[m]=h,r[m+1]=p,r[m+2]=g,r[m+3]=f,l++}}this._tokenCount=l},e.prototype.acceptInsertText=function(e,t,n,i,o,r){for(var s=0===n&&1===i&&(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122),a=this._tokens,l=this._tokenCount,u=0;u<l;u++){var d=4*u,c=a[d],h=a[d+1],p=a[d+2];if(!(c<e||c===e&&p<t)){if(c===e&&p===t){if(!s)continue\n;p+=1}else if(c===e&&h<t&&t<p)0===n?p+=i:p=t;else{if(c===e&&h===t&&s)continue;if(c===e)if(c+=n,0===n)h+=i,p+=i;else{var g=p-h;p=(h=o+(h-t))+g}else c+=n}a[d]=c,a[d+1]=h,a[d+2]=p}}},e}();t.SparseEncodedTokens=d;var c=function(){function e(e,t,n){this._actual=e,this._startTokenIndex=t,this._endTokenIndex=n}return e.prototype.getCount=function(){return this._endTokenIndex-this._startTokenIndex+1},e.prototype.getStartCharacter=function(e){return this._actual.getStartCharacter(this._startTokenIndex+e)},e.prototype.getEndCharacter=function(e){return this._actual.getEndCharacter(this._startTokenIndex+e)},e.prototype.getMetadata=function(e){return this._actual.getMetadata(this._startTokenIndex+e)},e}();t.LineTokens2=c;var h=function(){function e(e,t){this.startLineNumber=e,this.tokens=t,this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}return e.prototype._updateEndLineNumber=function(){this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()},e.prototype.getLineTokens=function(t){\nif(this.startLineNumber<=t&&t<=this.endLineNumber){var n=e._findTokensWithLine(this.tokens,t-this.startLineNumber);if(n){var i=n[0],o=n[1];return new c(this.tokens,i,o)}}return null},e._findTokensWithLine=function(e,t){for(var n=0,i=e.getTokenCount()-1;n<i;){var o=n+Math.floor((i-n)/2),r=e.getDeltaLine(o);if(r<t)n=o+1;else{if(!(r>t)){for(var s=o;s>n&&e.getDeltaLine(s-1)===t;)s--;for(var a=o;a<i&&e.getDeltaLine(a+1)===t;)a++;return[s,a]}i=o-1}}return e.getDeltaLine(n)===t?[n,n]:null},e.prototype.applyEdit=function(e,t){var n=s(t),i=n[0],o=n[1],r=n[2];this.acceptEdit(e,i,o,r,t.length>0?t.charCodeAt(0):0)},e.prototype.acceptEdit=function(e,t,n,i,r){this._acceptDeleteRange(e),this._acceptInsertText(new o.Position(e.startLineNumber,e.startColumn),t,n,i,r),this._updateEndLineNumber()},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;if(n<0){var i=n-t\n;this.startLineNumber-=i}else{var o=this.tokens.getMaxDeltaLine();if(!(t>=o+1)){if(t<0&&n>=o+1)return this.startLineNumber=0,void this.tokens.clear();if(t<0){var r=-t;this.startLineNumber-=r,this.tokens.acceptDeleteRange(e.startColumn-1,0,0,n,e.endColumn-1)}else this.tokens.acceptDeleteRange(0,t,e.startColumn-1,n,e.endColumn-1)}}}},e.prototype._acceptInsertText=function(e,t,n,i,o){if(0!==t||0!==n){var r=e.lineNumber-this.startLineNumber;if(r<0)this.startLineNumber+=t;else r>=this.tokens.getMaxDeltaLine()+1||this.tokens.acceptInsertText(r,e.column-1,t,n,i,o)}},e}();t.MultilineTokens2=h;var p=function(e,t){this.startLineNumber=e,this.tokens=t};function g(e){return e instanceof Uint32Array?e:new Uint32Array(e)}t.MultilineTokens=p;var f=function(){function e(){this._pieces=[]}return e.prototype.flush=function(){this._pieces=[]},e.prototype.set=function(e){this._pieces=e||[]},e.prototype.addSemanticTokens=function(t,n){var o=this._pieces;if(0===o.length)return n\n;var r=e._findFirstPieceWithLine(o,t),s=this._pieces[r].getLineTokens(t);if(!s)return n;for(var a=n.getCount(),l=s.getCount(),u=0,d=[],c=0,h=0;h<l;h++){for(var p=s.getStartCharacter(h),g=s.getEndCharacter(h),f=s.getMetadata(h),m=((1&f?2048:0)|(2&f?4096:0)|(4&f?8192:0)|(8&f?8372224:0)|(16&f?4286578688:0))>>>0,v=~m>>>0;u<a&&n.getEndOffset(u)<=p;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u),u++;for(u<a&&n.getStartOffset(u)<p&&(d[c++]=p,d[c++]=n.getMetadata(u));u<a&&n.getEndOffset(u)<g;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u)&v|f&m,u++;if(u<a&&n.getEndOffset(u)===g)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u)&v|f&m,u++;else{var _=Math.min(Math.max(0,u-1),a-1);d[c++]=g,d[c++]=n.getMetadata(_)&v|f&m}}for(;u<a;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u),u++;return new i.LineTokens(new Uint32Array(d),n.getLineContent())},e._findFirstPieceWithLine=function(e,t){for(var n=0,i=e.length-1;n<i;){var o=n+Math.floor((i-n)/2);if(e[o].endLineNumber<t)n=o+1;else{if(!(e[o].startLineNumber>t)){\nfor(;o>n&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}i=o-1}}return n},e.prototype.acceptEdit=function(e,t,n,i,o){for(var r=0,s=this._pieces;r<s.length;r++){s[r].acceptEdit(e,t,n,i,o)}},e}();t.TokensStore2=f;var m=function(){function e(){this._lineTokens=[],this._len=0}return e.prototype.flush=function(){this._lineTokens=[],this._len=0},e.prototype.getTokens=function(e,t,n){var o=null;if(t<this._len&&(o=this._lineTokens[t]),null!==o&&o!==l)return new i.LineTokens(g(o),n);var r=new Uint32Array(2);return r[0]=n.length,r[1]=a(e),new i.LineTokens(r,n)},e._massageTokens=function(e,t,n){var i=n?g(n):null;if(0===t){var o=!1;if(i&&i.length>1&&(o=r.TokenMetadata.getLanguageId(i[1])!==e),!o)return l}if(!i||0===i.length){var s=new Uint32Array(2);return s[0]=t,s[1]=a(e),s.buffer}return i[i.length-2]=t,0===i.byteOffset&&i.byteLength===i.buffer.byteLength?i.buffer:i},e.prototype._ensureLine=function(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++},\ne.prototype._deleteLines=function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)},e.prototype._insertLines=function(e,t){if(0!==t){for(var i=[],o=0;o<t;o++)i[o]=null;this._lineTokens=n.arrayInsert(this._lineTokens,e,i),this._len+=t}},e.prototype.setTokens=function(t,n,i,o){var r=e._massageTokens(t,i,o);this._ensureLine(n),this._lineTokens[n]=r},e.prototype.acceptEdit=function(e,t,n){this._acceptDeleteRange(e),this._acceptInsertText(new o.Position(e.startLineNumber,e.startColumn),t,n)},e.prototype._acceptDeleteRange=function(t){var n=t.startLineNumber-1;if(!(n>=this._len))if(t.startLineNumber!==t.endLineNumber){this._lineTokens[n]=e._deleteEnding(this._lineTokens[n],t.startColumn-1);var i=t.endLineNumber-1,o=null;i<this._len&&(o=e._deleteBeginning(this._lineTokens[i],t.endColumn-1)),this._lineTokens[n]=e._append(this._lineTokens[n],o),this._deleteLines(t.startLineNumber,t.endLineNumber-t.startLineNumber)}else{if(t.startColumn===t.endColumn)return\n;this._lineTokens[n]=e._delete(this._lineTokens[n],t.startColumn-1,t.endColumn-1)}},e.prototype._acceptInsertText=function(t,n,i){if(0!==n||0!==i){var o=t.lineNumber-1;o>=this._len||(0!==n?(this._lineTokens[o]=e._deleteEnding(this._lineTokens[o],t.column-1),this._lineTokens[o]=e._insert(this._lineTokens[o],t.column-1,i),this._insertLines(t.lineNumber,n)):this._lineTokens[o]=e._insert(this._lineTokens[o],t.column-1,i))}},e._deleteBeginning=function(t,n){return null===t||t===l?t:e._delete(t,0,n)},e._deleteEnding=function(t,n){if(null===t||t===l)return t;var i=g(t),o=i[i.length-2];return e._delete(t,n,o)},e._delete=function(e,t,n){if(null===e||e===l||t===n)return e;var o=g(e),r=o.length>>>1;if(0===t&&o[o.length-2]===n)return l;var s,a,u=i.LineTokens.findIndexInTokensArray(o,t),d=u>0?o[u-1<<1]:0;if(n<o[u<<1]){for(var c=n-t,h=u;h<r;h++)o[h<<1]-=c;return e}d!==t?(o[u<<1]=t,s=u+1<<1,a=t):(s=u<<1,a=d);for(var p=n-t,f=u+1;f<r;f++){var m=o[f<<1]-p;m>a&&(o[s++]=m,o[s++]=o[1+(f<<1)],a=m)}if(s===o.length)return e\n;var v=new Uint32Array(s);return v.set(o.subarray(0,s),0),v.buffer},e._append=function(e,t){if(t===l)return e;if(e===l)return t;if(null===e)return e;if(null===t)return null;var n=g(e),i=g(t),o=i.length>>>1,r=new Uint32Array(n.length+i.length);r.set(n,0);for(var s=n.length,a=n[n.length-2],u=0;u<o;u++)r[s++]=i[u<<1]+a,r[s++]=i[1+(u<<1)];return r.buffer},e._insert=function(e,t,n){if(null===e||e===l)return e;var o=g(e),r=o.length>>>1,s=i.LineTokens.findIndexInTokensArray(o,t);s>0&&(o[s-1<<1]===t&&s--);for(var a=s;a<r;a++)o[a<<1]+=n;return e},e}();t.TokensStore=m})),define(n[63],i([0,1,107,17]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.prototype.clone=function(){return this},e.prototype.equals=function(e){return this===e},e}();t.NULL_STATE=new o,t.NULL_MODE_ID=\"vs.editor.nullMode\",t.NULL_LANGUAGE_IDENTIFIER=new i.LanguageIdentifier(t.NULL_MODE_ID,0),t.nullTokenize=function(e,t,i,o){\nreturn new n.TokenizationResult([new n.Token(o,\"\",e)],i)},t.nullTokenize2=function(e,i,o,r){var s=new Uint32Array(2);return s[0]=r,s[1]=(16384|e<<0|2<<23)>>>0,new n.TokenizationResult2(s,null===o?t.NULL_STATE:o)}})),define(n[482],i([0,1,19,10,93,13,17,63,2,132,157,16]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(){function e(){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0}return e.prototype._reset=function(e){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0,e&&this._setBeginState(0,e)},e.prototype.flush=function(e){this._reset(e)},Object.defineProperty(e.prototype,\"invalidLineStartIndex\",{get:function(){return this._invalidLineStartIndex},enumerable:!0,configurable:!0}),e.prototype._invalidateLine=function(e){e<this._len&&(this._valid[e]=!1),e<this._invalidLineStartIndex&&(this._invalidLineStartIndex=e)},e.prototype._isValid=function(e){return e<this._len&&this._valid[e]},\ne.prototype.getBeginState=function(e){return e<this._len?this._beginState[e]:null},e.prototype._ensureLine=function(e){for(;e>=this._len;)this._beginState[this._len]=null,this._valid[this._len]=!1,this._len++},e.prototype._deleteLines=function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._beginState.splice(e,t),this._valid.splice(e,t),this._len-=t)},e.prototype._insertLines=function(e,t){if(0!==t){for(var i=[],o=[],r=0;r<t;r++)i[r]=null,o[r]=!1;this._beginState=n.arrayInsert(this._beginState,e,i),this._valid=n.arrayInsert(this._valid,e,o),this._len+=t}},e.prototype._setValid=function(e,t){this._ensureLine(e),this._valid[e]=t},e.prototype._setBeginState=function(e,t){this._ensureLine(e),this._beginState[e]=t},e.prototype.setEndState=function(e,t,n){if(this._setValid(t,!0),this._invalidLineStartIndex=t+1,t!==e-1){var i=this.getBeginState(t+1);if(null===i||!n.equals(i))return this._setBeginState(t+1,n),void this._invalidateLine(t+1);for(var o=t+1;o<e&&this._isValid(o);)o++;this._invalidLineStartIndex=o}},\ne.prototype.setFakeTokens=function(e){this._setValid(e,!1)},e.prototype.applyEdits=function(e,t){for(var n=e.endLineNumber-e.startLineNumber,i=t,o=Math.min(n,i);o>=0;o--)this._invalidateLine(e.startLineNumber+o-1);this._acceptDeleteRange(e),this._acceptInsertText(new s.Position(e.startLineNumber,e.startColumn),t)},e.prototype._acceptDeleteRange=function(e){e.startLineNumber-1>=this._len||this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)},e.prototype._acceptInsertText=function(e,t){e.lineNumber-1>=this._len||this._insertLines(e.lineNumber,t)},e}();t.TokenizationStateStore=p;var g=function(e){function t(t){var n=e.call(this)||this;return n._isDisposed=!1,n._textModel=t,n._tokenizationStateStore=new p,n._tokenizationSupport=null,n._register(a.TokenizationRegistry.onDidChange((function(e){var t=n._textModel.getLanguageIdentifier();-1!==e.changedLanguages.indexOf(t.language)&&(n._resetTokenizationState(),n._textModel.clearTokens())}))),\nn._register(n._textModel.onDidChangeRawContentFast((function(e){e.containsEvent(1)&&n._resetTokenizationState()}))),n._register(n._textModel.onDidChangeContentFast((function(e){for(var t=0,i=e.changes.length;t<i;t++){var o=e.changes[t],r=c.countEOL(o.text)[0];n._tokenizationStateStore.applyEdits(o.range,r)}n._beginBackgroundTokenization()}))),n._register(n._textModel.onDidChangeAttached((function(){n._beginBackgroundTokenization()}))),n._register(n._textModel.onDidChangeLanguage((function(){n._resetTokenizationState(),n._textModel.clearTokens()}))),n._resetTokenizationState(),n}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,e.prototype.dispose.call(this)},t.prototype._resetTokenizationState=function(){var e=function(e){var t=e.getLanguageIdentifier(),n=e.isTooLargeForTokenization()?null:a.TokenizationRegistry.get(t.language),o=null;if(n)try{o=n.getInitialState()}catch(e){i.onUnexpectedError(e),n=null}return[n,o]}(this._textModel),t=e[0],n=e[1];this._tokenizationSupport=t,\nthis._tokenizationStateStore.flush(n),this._beginBackgroundTokenization()},t.prototype._beginBackgroundTokenization=function(){var e=this;this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&h.setImmediate((function(){e._isDisposed||e._revalidateTokensNow()}))},t.prototype._revalidateTokensNow=function(e){void 0===e&&(e=this._textModel.getLineCount());for(var t=new c.MultilineTokensBuilder,n=d.StopWatch.create(!1);this._hasLinesToTokenize()&&!(n.elapsed()>1);){if(this._tokenizeOneInvalidLine(t)>=e)break}this._beginBackgroundTokenization(),this._textModel.setTokens(t.tokens)},t.prototype.tokenizeViewport=function(e,t){var n=new c.MultilineTokensBuilder;this._tokenizeViewport(n,e,t),this._textModel.setTokens(n.tokens)},t.prototype.reset=function(){this._resetTokenizationState(),this._textModel.clearTokens()},t.prototype.forceTokenization=function(e){var t=new c.MultilineTokensBuilder;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.tokens)},t.prototype.isCheapToTokenize=function(e){\nif(!this._tokenizationSupport)return!0;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)},t.prototype._hasLinesToTokenize=function(){return!!this._tokenizationSupport&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()},t.prototype._tokenizeOneInvalidLine=function(e){if(!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t},t.prototype._updateTokensUntilLine=function(e,t){if(this._tokenizationSupport)for(var n=this._textModel.getLanguageIdentifier(),i=this._textModel.getLineCount(),o=t-1,r=this._tokenizationStateStore.invalidLineStartIndex;r<=o;r++){var s=this._textModel.getLineContent(r+1),a=this._tokenizationStateStore.getBeginState(r),l=f(n,this._tokenizationSupport,s,a);e.add(r+1,l.tokens),this._tokenizationStateStore.setEndState(i,r,l.endState),\nr=this._tokenizationStateStore.invalidLineStartIndex-1}},t.prototype._tokenizeViewport=function(e,t,n){if(this._tokenizationSupport&&!(n<=this._tokenizationStateStore.invalidLineStartIndex))if(t<=this._tokenizationStateStore.invalidLineStartIndex)this._updateTokensUntilLine(e,n);else{for(var i=this._textModel.getLineFirstNonWhitespaceColumn(t),o=[],r=null,s=t-1;i>0&&s>=1;s--){var a=this._textModel.getLineFirstNonWhitespaceColumn(s);if(0!==a&&a<i){if(r=this._tokenizationStateStore.getBeginState(s-1))break;o.push(this._textModel.getLineContent(s)),i=a}}r||(r=this._tokenizationSupport.getInitialState());var l=this._textModel.getLanguageIdentifier(),u=r;for(s=o.length-1;s>=0;s--){u=(h=f(l,this._tokenizationSupport,o[s],u)).endState}for(var d=t;d<=n;d++){var c=this._textModel.getLineContent(d),h=f(l,this._tokenizationSupport,c,u);e.add(d,h.tokens),this._tokenizationStateStore.setFakeTokens(d-1),u=h.endState}}},t}(u.Disposable);function f(e,t,n,r){var s=null;if(t)try{s=t.tokenize2(n,r.clone(),0)}catch(e){\ni.onUnexpectedError(e)}return s||(s=l.nullTokenize2(e.id,n,r,0)),o.LineTokens.convertToEndOffset(s.tokens,n.length),s}t.TextModelTokenization=g})),define(n[30],i([0,1,10,4,2,5,25,33,13,3,22,48,342,343,344,348,346,144,482,109,41,63,145,146,21,157,27]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N){\"use strict\";function x(e){var t=new m.PieceTreeTextBufferBuilder;return t.acceptChunk(e),t.finish()}function I(e,t){return(\"string\"==typeof e?x(e):e).create(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createTextBufferFactory=x,t.createTextBuffer=I;var M=0;t.LONG_LINE_BOUNDARY=1e4;var k=function(){throw new Error(\"Invalid change accessor\")},T=function(e){function o(t,n,r,l){void 0===l&&(l=null);var u=e.call(this)||this;u._onWillDispose=u._register(new i.Emitter),u.onWillDispose=u._onWillDispose.event,u._onDidChangeDecorations=u._register(new z),u.onDidChangeDecorations=u._onDidChangeDecorations.event,u._onDidChangeLanguage=u._register(new i.Emitter),\nu.onDidChangeLanguage=u._onDidChangeLanguage.event,u._onDidChangeLanguageConfiguration=u._register(new i.Emitter),u.onDidChangeLanguageConfiguration=u._onDidChangeLanguageConfiguration.event,u._onDidChangeTokens=u._register(new i.Emitter),u.onDidChangeTokens=u._onDidChangeTokens.event,u._onDidChangeOptions=u._register(new i.Emitter),u.onDidChangeOptions=u._onDidChangeOptions.event,u._onDidChangeAttached=u._register(new i.Emitter),u.onDidChangeAttached=u._onDidChangeAttached.event,u._eventEmitter=u._register(new H),M++,u.id=\"$model\"+M,u.isForSimpleWidget=n.isForSimpleWidget,u._associatedResource=null==l?a.URI.parse(\"inmemory://model/\"+M):l,u._attachedEditorCount=0,u._buffer=I(t,n.defaultEOL),u._options=o.resolveOptions(u._buffer,n);var c=u._buffer.getLineCount(),h=u._buffer.getValueLengthInRange(new d.Range(1,1,c,u._buffer.getLineLength(c)+1),0);return n.largeFileOptimizations?u._isTooLargeForTokenization=h>o.LARGE_FILE_SIZE_THRESHOLD||c>o.LARGE_FILE_LINE_COUNT_THRESHOLD:u._isTooLargeForTokenization=!1,\nu._isTooLargeForSyncing=h>o.MODEL_SYNC_LIMIT,u._versionId=1,u._alternativeVersionId=1,u._isDisposed=!1,u._isDisposing=!1,u._languageIdentifier=r||S.NULL_LANGUAGE_IDENTIFIER,u._languageRegistryListener=b.LanguageConfigurationRegistry.onDidChange((function(e){e.languageIdentifier.id===u._languageIdentifier.id&&u._onDidChangeLanguageConfiguration.fire({})})),u._instanceId=s.singleLetterHash(M),u._lastDecorationId=0,u._decorations=Object.create(null),u._decorationsTree=new R,u._commandManager=new p.EditStack(u),u._isUndoing=!1,u._isRedoing=!1,u._trimAutoWhitespaceLines=null,u._tokens=new D.TokensStore,u._tokens2=new D.TokensStore2,u._tokenization=new y.TextModelTokenization(u),u}return r(o,e),o.createFromString=function(e,t,n,i){return void 0===t&&(t=o.DEFAULT_CREATION_OPTIONS),void 0===n&&(n=null),void 0===i&&(i=null),new o(e,t,n,i)},o.resolveOptions=function(e,t){if(t.detectIndentation){var n=g.guessIndentation(e,t.tabSize,t.insertSpaces);return new h.TextModelResolvedOptions({tabSize:n.tabSize,\nindentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new h.TextModelResolvedOptions({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})},o.prototype.onDidChangeRawContentFast=function(e){return this._eventEmitter.fastEvent((function(t){return e(t.rawContentChangedEvent)}))},o.prototype.onDidChangeRawContent=function(e){return this._eventEmitter.slowEvent((function(t){return e(t.rawContentChangedEvent)}))},o.prototype.onDidChangeContentFast=function(e){return this._eventEmitter.fastEvent((function(t){return e(t.contentChangedEvent)}))},o.prototype.onDidChangeContent=function(e){return this._eventEmitter.slowEvent((function(t){return e(t.contentChangedEvent)}))},o.prototype.dispose=function(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,e.prototype.dispose.call(this),\nthis._isDisposing=!1},o.prototype._assertNotDisposed=function(){if(this._isDisposed)throw new Error(\"Model is disposed!\")},o.prototype._emitContentChangedEvent=function(e,t){this._isDisposing||this._eventEmitter.fire(new v.InternalModelContentChangeEvent(e,t))},o.prototype.setValue=function(e){if(this._assertNotDisposed(),null!==e){var t=I(e,this._options.defaultEOL);this.setValueFromTextBuffer(t)}},o.prototype._createContentChanged2=function(e,t,n,i,o,r,s){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:o,isRedoing:r,isFlush:s}},o.prototype.setValueFromTextBuffer=function(e){if(this._assertNotDisposed(),null!==e){var t=this.getFullModelRange(),n=this.getValueLengthInRange(t),i=this.getLineCount(),o=this.getLineMaxColumn(i);this._buffer=e,this._increaseVersionId(),this._tokens.flush(),this._tokens2.flush(),this._decorations=Object.create(null),this._decorationsTree=new R,this._commandManager=new p.EditStack(this),\nthis._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new v.ModelRawContentChangedEvent([new v.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,i,o),0,n,this.getValue(),!1,!1,!0))}},o.prototype.setEOL=function(e){this._assertNotDisposed();var t=1===e?\"\\r\\n\":\"\\n\";if(this._buffer.getEOL()!==t){var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new v.ModelRawContentChangedEvent([new v.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,o,r),0,i,this.getValue(),!1,!1,!1))}},o.prototype._onBeforeEOLChange=function(){var e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)},o.prototype._onAfterEOLChange=function(){\nfor(var e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder(),n=0,i=t.length;n<i;n++){var o=t[n],r=o.cachedAbsoluteStart-o.start,s=this._buffer.getOffsetAt(o.range.startLineNumber,o.range.startColumn),a=this._buffer.getOffsetAt(o.range.endLineNumber,o.range.endColumn);o.cachedAbsoluteStart=s,o.cachedAbsoluteEnd=a,o.cachedVersionId=e,o.start=s-r,o.end=a-r,f.recomputeMaxEnd(o)}},o.prototype.onBeforeAttached=function(){this._attachedEditorCount++,1===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)},o.prototype.onBeforeDetached=function(){this._attachedEditorCount--,0===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)},o.prototype.isAttachedToEditor=function(){return this._attachedEditorCount>0},o.prototype.getAttachedEditorCount=function(){return this._attachedEditorCount},o.prototype.isTooLargeForSyncing=function(){return this._isTooLargeForSyncing},o.prototype.isTooLargeForTokenization=function(){return this._isTooLargeForTokenization},\no.prototype.isDisposed=function(){return this._isDisposed},o.prototype.isDominatedByLongLines=function(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;for(var e=0,n=0,i=this._buffer.getLineCount(),o=1;o<=i;o++){var r=this._buffer.getLineLength(o);r>=t.LONG_LINE_BOUNDARY?n+=r:e+=r}return n>e},Object.defineProperty(o.prototype,\"uri\",{get:function(){return this._associatedResource},enumerable:!0,configurable:!0}),o.prototype.getOptions=function(){return this._assertNotDisposed(),this._options},o.prototype.getFormattingOptions=function(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}},o.prototype.updateOptions=function(e){this._assertNotDisposed();var t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,n=void 0!==e.indentSize?e.indentSize:this._options.indentSize,i=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,o=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=new h.TextModelResolvedOptions({\ntabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o});if(!this._options.equals(r)){var s=this._options.createChangeEvent(r);this._options=r,this._onDidChangeOptions.fire(s)}},o.prototype.detectIndentation=function(e,t){this._assertNotDisposed();var n=g.guessIndentation(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})},o._normalizeIndentationFromWhitespace=function(e,t,n){for(var i=0,o=0;o<e.length;o++)\"\\t\"===e.charAt(o)?i+=t:i++;var r=\"\";if(!n){var s=Math.floor(i/t);i%=t;for(o=0;o<s;o++)r+=\"\\t\"}for(o=0;o<i;o++)r+=\" \";return r},o.normalizeIndentation=function(e,t,n){var i=s.firstNonWhitespaceIndex(e);return-1===i&&(i=e.length),o._normalizeIndentationFromWhitespace(e.substring(0,i),t,n)+e.substring(i)},o.prototype.normalizeIndentation=function(e){return this._assertNotDisposed(),o.normalizeIndentation(e,this._options.indentSize,this._options.insertSpaces)},o.prototype.getVersionId=function(){\nreturn this._assertNotDisposed(),this._versionId},o.prototype.mightContainRTL=function(){return this._buffer.mightContainRTL()},o.prototype.mightContainNonBasicASCII=function(){return this._buffer.mightContainNonBasicASCII()},o.prototype.getAlternativeVersionId=function(){return this._assertNotDisposed(),this._alternativeVersionId},o.prototype.getOffsetAt=function(e){this._assertNotDisposed();var t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)},o.prototype.getPositionAt=function(e){this._assertNotDisposed();var t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)},o.prototype._increaseVersionId=function(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId},o.prototype._overwriteAlternativeVersionId=function(e){this._alternativeVersionId=e},o.prototype.getValue=function(e,t){void 0===t&&(t=!1),this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueInRange(n,e)\n;return t?this._buffer.getBOM()+i:i},o.prototype.getValueLength=function(e,t){void 0===t&&(t=!1),this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n,e);return t?this._buffer.getBOM().length+i:i},o.prototype.getValueInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)},o.prototype.getValueLengthInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)},o.prototype.getCharacterCountInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)},o.prototype.getLineCount=function(){return this._assertNotDisposed(),this._buffer.getLineCount()},o.prototype.getLineContent=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineContent(e)},o.prototype.getLineLength=function(e){\nif(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)},o.prototype.getLinesContent=function(){return this._assertNotDisposed(),this._buffer.getLinesContent()},o.prototype.getEOL=function(){return this._assertNotDisposed(),this._buffer.getEOL()},o.prototype.getLineMinColumn=function(e){return this._assertNotDisposed(),1},o.prototype.getLineMaxColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)+1},o.prototype.getLineFirstNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineFirstNonWhitespaceColumn(e)},o.prototype.getLineLastNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLastNonWhitespaceColumn(e)},\no.prototype._validateRangeRelaxedNoAllocations=function(e){var t,n,i=this._buffer.getLineCount(),o=e.startLineNumber,r=e.startColumn;if(o<1)t=1,n=1;else if(o>i)t=i,n=this.getLineMaxColumn(t);else{if(t=0|o,r<=1)n=1;else n=r>=(h=this.getLineMaxColumn(t))?h:0|r}var s,a,l=e.endLineNumber,u=e.endColumn;if(l<1)s=1,a=1;else if(l>i)s=i,a=this.getLineMaxColumn(s);else{var h;if(s=0|l,u<=1)a=1;else a=u>=(h=this.getLineMaxColumn(s))?h:0|u}return o===t&&r===n&&l===s&&u===a&&e instanceof d.Range&&!(e instanceof c.Selection)?e:new d.Range(t,n,s,a)},o.prototype._isValidPosition=function(e,t,n){if(\"number\"!=typeof e||\"number\"!=typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===n){var i=this._buffer.getLineCharCode(e,t-2);if(s.isHighSurrogate(i))return!1}return!0},o.prototype._validatePosition=function(e,t,n){\nvar i=Math.floor(\"number\"!=typeof e||isNaN(e)?1:e),o=Math.floor(\"number\"!=typeof t||isNaN(t)?1:t),r=this._buffer.getLineCount();if(i<1)return new u.Position(1,1);if(i>r)return new u.Position(r,this.getLineMaxColumn(r));if(o<=1)return new u.Position(i,1);var a=this.getLineMaxColumn(i);if(o>=a)return new u.Position(i,a);if(1===n){var l=this._buffer.getLineCharCode(i,o-2);if(s.isHighSurrogate(l))return new u.Position(i,o-1)}return new u.Position(i,o)},o.prototype.validatePosition=function(e){return this._assertNotDisposed(),e instanceof u.Position&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)},o.prototype._isValidRange=function(e,t){var n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(o,r,0))return!1;if(1===t){\nvar a=i>1?this._buffer.getLineCharCode(n,i-2):0,l=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,u=s.isHighSurrogate(a),d=s.isHighSurrogate(l);return!u&&!d}return!0},o.prototype.validateRange=function(e){if(this._assertNotDisposed(),e instanceof d.Range&&!(e instanceof c.Selection)&&this._isValidRange(e,1))return e;var t=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),i=t.lineNumber,o=t.column,r=n.lineNumber,a=n.column,l=o>1?this._buffer.getLineCharCode(i,o-2):0,u=a>1&&a<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,a-2):0,h=s.isHighSurrogate(l),p=s.isHighSurrogate(u);return h||p?i===r&&o===a?new d.Range(i,o-1,r,a-1):h&&p?new d.Range(i,o-1,r,a+1):h?new d.Range(i,o-1,r,a):new d.Range(i,o,r,a+1):new d.Range(i,o,r,a)},o.prototype.modifyPosition=function(e,t){this._assertNotDisposed();var n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))},\no.prototype.getFullModelRange=function(){this._assertNotDisposed();var e=this.getLineCount();return new d.Range(1,1,e,this.getLineMaxColumn(e))},o.prototype.findMatchesLineByLine=function(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)},o.prototype.findMatches=function(e,t,n,i,o,r,s){var a;if(void 0===s&&(s=999),this._assertNotDisposed(),a=d.Range.isIRange(t)?this.validateRange(t):this.getFullModelRange(),!n&&e.indexOf(\"\\n\")<0){var l=new _.SearchParams(e,n,i,o).parseSearchRequest();return l?this.findMatchesLineByLine(a,l,r,s):[]}return _.TextModelSearch.findMatches(this,new _.SearchParams(e,n,i,o),a,r,s)},o.prototype.findNextMatch=function(e,t,n,i,o,r){this._assertNotDisposed();var s=this.validatePosition(t);if(!n&&e.indexOf(\"\\n\")<0){var a=new _.SearchParams(e,n,i,o).parseSearchRequest();if(!a)return null;var l=this.getLineCount(),u=new d.Range(s.lineNumber,s.column,l,this.getLineMaxColumn(l)),c=this.findMatchesLineByLine(u,a,r,1)\n;return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,n,i,o),s,r),c.length>0?c[0]:(u=new d.Range(1,1,s.lineNumber,this.getLineMaxColumn(s.lineNumber)),(c=this.findMatchesLineByLine(u,a,r,1)).length>0?c[0]:null)}return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,n,i,o),s,r)},o.prototype.findPreviousMatch=function(e,t,n,i,o,r){this._assertNotDisposed();var s=this.validatePosition(t);return _.TextModelSearch.findPreviousMatch(this,new _.SearchParams(e,n,i,o),s,r)},o.prototype.pushStackElement=function(){this._commandManager.pushStackElement()},o.prototype.pushEOL=function(e){if((\"\\n\"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.pushEditOperations=function(e,t,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),\nthis._pushEditOperations(e,t,n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._pushEditOperations=function(e,t,n){var i=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){for(var o=t.map((function(e){return{range:i.validateRange(e.range),text:e.text}})),r=!0,s=0,a=e.length;s<a;s++){for(var l=e[s],u=!1,c=0,h=o.length;c<h;c++){var p=(_=o[c].range).startLineNumber>l.endLineNumber,g=l.startLineNumber>_.endLineNumber;if(!p&&!g){u=!0;break}}if(!u){r=!1;break}}if(r)for(s=0,a=this._trimAutoWhitespaceLines.length;s<a;s++){var f=this._trimAutoWhitespaceLines[s],m=this.getLineMaxColumn(f),v=!0;for(c=0,h=o.length;c<h;c++){var _=o[c].range,y=o[c].text;if(!(f<_.startLineNumber||f>_.endLineNumber)&&!(f===_.startLineNumber&&_.startColumn===m&&_.isEmpty()&&y&&y.length>0&&\"\\n\"===y.charAt(0)||f===_.startLineNumber&&1===_.startColumn&&_.isEmpty()&&y&&y.length>0&&\"\\n\"===y.charAt(y.length-1))){v=!1;break}}v&&t.push({range:new d.Range(f,1,f,m),\ntext:null})}this._trimAutoWhitespaceLines=null}return this._commandManager.pushEditOperation(e,t,n)},o.prototype.applyEdits=function(e){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._applyEdits(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._applyEdits=function(e){for(var t=0,n=e.length;t<n;t++)e[t].range=this.validateRange(e[t].range);var i=this._buffer.getLineCount(),o=this._buffer.applyEdits(e,this._options.trimAutoWhitespace),r=this._buffer.getLineCount(),s=o.changes;if(this._trimAutoWhitespaceLines=o.trimAutoWhitespaceLineNumbers,0!==s.length){var a=[],l=i;for(t=0,n=s.length;t<n;t++){var u=s[t],d=D.countEOL(u.text),c=d[0],h=d[1],p=d[2];this._tokens.acceptEdit(u.range,c,h),this._tokens2.acceptEdit(u.range,c,h,p,u.text.length>0?u.text.charCodeAt(0):0),this._onDidChangeDecorations.fire(),this._decorationsTree.acceptReplace(u.rangeOffset,u.rangeLength,u.text.length,u.forceMoveMarkers)\n;for(var g=u.range.startLineNumber,f=u.range.endLineNumber,m=f-g,_=c,y=Math.min(m,_),C=_-m,b=y;b>=0;b--){var S=g+b,w=r-l-C+S;a.push(new v.ModelRawLineChanged(S,this.getLineContent(w)))}if(y<m){var E=g+y;a.push(new v.ModelRawLinesDeleted(E+1,f))}if(y<_){for(var L=g+y,N=_-y,x=r-l-N+L+1,I=[],M=0;M<N;M++){var k=x+M;I[k-x]=this.getLineContent(k)}a.push(new v.ModelRawLinesInserted(L+1,g+_,I))}l+=C}this._increaseVersionId(),this._emitContentChangedEvent(new v.ModelRawContentChangedEvent(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:s,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return o.reverseEdits},o.prototype._undo=function(){this._isUndoing=!0;var e=this._commandManager.undo();return this._isUndoing=!1,e?(this._overwriteAlternativeVersionId(e.recordedVersionId),e.selections):null},o.prototype.undo=function(){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._undo()\n}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.canUndo=function(){return this._commandManager.canUndo()},o.prototype._redo=function(){this._isRedoing=!0;var e=this._commandManager.redo();return this._isRedoing=!1,e?(this._overwriteAlternativeVersionId(e.recordedVersionId),e.selections):null},o.prototype.redo=function(){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._redo()}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.canRedo=function(){return this._commandManager.canRedo()},o.prototype.changeDecorations=function(e,t){void 0===t&&(t=0),this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._changeDecorations=function(e,t){var i=this,o={addDecoration:function(t,n){return i._onDidChangeDecorations.fire(),\ni._deltaDecorationsImpl(e,[],[{range:t,options:n}])[0]},changeDecoration:function(e,t){i._onDidChangeDecorations.fire(),i._changeDecorationImpl(e,t)},changeDecorationOptions:function(e,t){i._onDidChangeDecorations.fire(),i._changeDecorationOptionsImpl(e,V(t))},removeDecoration:function(t){i._onDidChangeDecorations.fire(),i._deltaDecorationsImpl(e,[t],[])},deltaDecorations:function(t,n){return 0===t.length&&0===n.length?[]:(i._onDidChangeDecorations.fire(),i._deltaDecorationsImpl(e,t,n))}},r=null;try{r=t(o)}catch(e){n.onUnexpectedError(e)}return o.addDecoration=k,o.changeDecoration=k,o.changeDecorationOptions=k,o.removeDecoration=k,o.deltaDecorations=k,r},o.prototype.deltaDecorations=function(e,t,n){if(void 0===n&&(n=0),this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._deltaDecorationsImpl(n,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}},\no.prototype._getTrackedRange=function(e){return this.getDecorationRange(e)},o.prototype._setTrackedRange=function(e,t,n){var i=e?this._decorations[e]:null;if(!i)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:B[n]}])[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;var o=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),s=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),r,s,o),i.setOptions(B[n]),this._decorationsTree.insert(i),i.id},o.prototype.removeAllDecorationsWithOwnerId=function(e){if(!this._isDisposed)for(var t=this._decorationsTree.collectNodesFromOwner(e),n=0,i=t.length;n<i;n++){var o=t[n];this._decorationsTree.delete(o),delete this._decorations[o.id]}},o.prototype.getDecorationOptions=function(e){var t=this._decorations[e];return t?t.options:null},o.prototype.getDecorationRange=function(e){var t=this._decorations[e]\n;if(!t)return null;var n=this.getVersionId();return t.cachedVersionId!==n&&this._decorationsTree.resolveNode(t,n),null===t.range&&(t.range=this._getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range},o.prototype.getLineDecorations=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=!1),e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)},o.prototype.getLinesDecorations=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=!1);var o=this.getLineCount(),r=Math.min(o,Math.max(1,e)),s=Math.min(o,Math.max(1,t)),a=this.getLineMaxColumn(s);return this._getDecorationsInRange(new d.Range(r,1,s,a),n,i)},o.prototype.getDecorationsInRange=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=!1);var i=this.validateRange(e);return this._getDecorationsInRange(i,t,n)},o.prototype.getOverviewRulerDecorations=function(e,t){void 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!0,n);return this._ensureNodesHaveRanges(i)},o.prototype.getAllDecorations=function(e,t){\nvoid 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!1,n);return this._ensureNodesHaveRanges(i)},o.prototype._getDecorationsInRange=function(e,t,n){var i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),r=this.getVersionId(),s=this._decorationsTree.intervalSearch(i,o,t,n,r);return this._ensureNodesHaveRanges(s)},o.prototype._ensureNodesHaveRanges=function(e){for(var t=0,n=e.length;t<n;t++){var i=e[t];null===i.range&&(i.range=this._getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd))}return e},o.prototype._getRangeAt=function(e,t){return this._buffer.getRangeAt(e,t-e)},o.prototype._changeDecorationImpl=function(e,t){var n=this._decorations[e];if(n){var i=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),r=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),o,r,i),\nthis._decorationsTree.insert(n)}},o.prototype._changeDecorationOptionsImpl=function(e,t){var n=this._decorations[e];n&&(!(!n.options.overviewRuler||!n.options.overviewRuler.color)!==!(!t.overviewRuler||!t.overviewRuler.color)?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t))},o.prototype._deltaDecorationsImpl=function(e,t,n){for(var i=this.getVersionId(),o=t.length,r=0,s=n.length,a=0,l=new Array(s);r<o||a<s;){var u=null;if(r<o){do{u=this._decorations[t[r++]]}while(!u&&r<o);u&&this._decorationsTree.delete(u)}if(a<s){if(!u){var d=++this._lastDecorationId,c=this._instanceId+\";\"+d;u=new f.IntervalNode(c,0,0),this._decorations[c]=u}var h=n[a],p=this._validateRangeRelaxedNoAllocations(h.range),g=V(h.options),m=this._buffer.getOffsetAt(p.startLineNumber,p.startColumn),v=this._buffer.getOffsetAt(p.endLineNumber,p.endColumn);u.ownerId=e,u.reset(i,m,v,p),u.setOptions(g),this._decorationsTree.insert(u),l[a]=u.id,a++}else u&&delete this._decorations[u.id]}return l},\no.prototype.setLineTokens=function(e,t){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");this._tokens.setTokens(this._languageIdentifier.id,e-1,this._buffer.getLineLength(e),t)},o.prototype.setTokens=function(e){if(0!==e.length){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];t.push({fromLineNumber:o.startLineNumber,toLineNumber:o.startLineNumber+o.tokens.length-1});for(var r=0,s=o.tokens.length;r<s;r++)this.setLineTokens(o.startLineNumber+r,o.tokens[r])}this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,ranges:t})}},o.prototype.setSemanticTokens=function(e){this._tokens2.set(e),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})},o.prototype.tokenizeViewport=function(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)},o.prototype.clearTokens=function(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,\nranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})},o.prototype._emitModelTokensChangedEvent=function(e){this._isDisposing||this._onDidChangeTokens.fire(e)},o.prototype.resetTokenization=function(){this._tokenization.reset()},o.prototype.forceTokenization=function(e){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");this._tokenization.forceTokenization(e)},o.prototype.isCheapToTokenize=function(e){return this._tokenization.isCheapToTokenize(e)},o.prototype.tokenizeIfCheap=function(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)},o.prototype.getLineTokens=function(e){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._getLineTokens(e)},o.prototype._getLineTokens=function(e){var t=this.getLineContent(e),n=this._tokens.getTokens(this._languageIdentifier.id,e-1,t);return this._tokens2.addSemanticTokens(e,n)},o.prototype.getLanguageIdentifier=function(){return this._languageIdentifier},o.prototype.getModeId=function(){\nreturn this._languageIdentifier.language},o.prototype.setMode=function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}},o.prototype.getLanguageIdAtPosition=function(e,t){var n=this.validatePosition(new u.Position(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))},o.prototype.getWordAtPosition=function(e){this._assertNotDisposed();var t=this.validatePosition(e),n=this.getLineContent(t.lineNumber),i=this._getLineTokens(t.lineNumber),r=i.findTokenIndexAtOffset(t.column-1),s=o._findLanguageBoundaries(i,r),a=s[0],l=s[1],u=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(i.getLanguageId(r)),n.substring(a,l),a);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn)return u;if(r>0&&a===t.column-1){\nvar d=o._findLanguageBoundaries(i,r-1),c=d[0],h=d[1],p=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(i.getLanguageId(r-1)),n.substring(c,h),c);if(p&&p.startColumn<=e.column&&e.column<=p.endColumn)return p}return null},o._findLanguageBoundaries=function(e,t){for(var n=e.getLanguageId(t),i=0,o=t;o>=0&&e.getLanguageId(o)===n;o--)i=e.getStartOffset(o);for(var r=e.getLineContent().length,s=(o=t,e.getCount());o<s&&e.getLanguageId(o)===n;o++)r=e.getEndOffset(o);return[i,r]},o.prototype.getWordUntilPosition=function(e){var t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:\"\",startColumn:e.column,endColumn:e.column}},o.prototype.findMatchingBracketUp=function(e,t){var n=e.toLowerCase(),i=this.validatePosition(t),o=this._getLineTokens(i.lineNumber),r=o.getLanguageId(o.findTokenIndexAtOffset(i.column-1)),s=b.LanguageConfigurationRegistry.getBracketsSupport(r);if(!s)return null;var a=s.textIsBracket[n]\n;return a?this._findMatchingBracketUp(a,i):null},o.prototype.matchBracket=function(e){return this._matchBracket(this.validatePosition(e))},o.prototype._matchBracket=function(e){var t=e.lineNumber,n=this._getLineTokens(t),i=n.getCount(),o=this._buffer.getLineContent(t),r=n.findTokenIndexAtOffset(e.column-1);if(r<0)return null;var s=b.LanguageConfigurationRegistry.getBracketsSupport(n.getLanguageId(r));if(s&&!w.ignoreBracketsInToken(n.getStandardTokenType(r))){for(var a=Math.max(0,e.column-1-s.maxBracketLength),l=r-1;l>=0;l--){var u=n.getEndOffset(l);if(u<=a)break;w.ignoreBracketsInToken(n.getStandardTokenType(l))&&(a=u)}for(var d=Math.min(o.length,e.column-1+s.maxBracketLength),c=null;;){if(!(m=E.BracketsUtils.findNextBracketInRange(s.forwardRegex,t,o,a,d)))break;if(m.startColumn<=e.column&&e.column<=m.endColumn){var h=o.substring(m.startColumn-1,m.endColumn-1).toLowerCase();(v=this._matchFoundBracket(m,s.textIsBracket[h],s.textIsOpenBracket[h]))&&(c=v)}a=m.endColumn-1}if(c)return c}\nif(r>0&&n.getStartOffset(r)===e.column-1){var p=r-1,g=b.LanguageConfigurationRegistry.getBracketsSupport(n.getLanguageId(p));if(g&&!w.ignoreBracketsInToken(n.getStandardTokenType(p))){for(a=Math.max(0,e.column-1-g.maxBracketLength),d=Math.min(o.length,e.column-1+g.maxBracketLength),l=p+1;l<i;l++){var f=n.getStartOffset(l);if(f>=d)break;w.ignoreBracketsInToken(n.getStandardTokenType(l))&&(d=f)}var m;if((m=E.BracketsUtils.findPrevBracketInRange(g.reversedRegex,t,o,a,d))&&m.startColumn<=e.column&&e.column<=m.endColumn){var v;h=o.substring(m.startColumn-1,m.endColumn-1).toLowerCase();if(v=this._matchFoundBracket(m,g.textIsBracket[h],g.textIsOpenBracket[h]))return v}}}return null},o.prototype._matchFoundBracket=function(e,t,n){if(!t)return null;var i;if(n){if(i=this._findMatchingBracketDown(t,e.getEndPosition()))return[e,i]}else if(i=this._findMatchingBracketUp(t,e.getStartPosition()))return[e,i];return null},o.prototype._findMatchingBracketUp=function(e,t){\nfor(var n=e.languageIdentifier.id,i=e.reversedRegex,o=-1,r=function(t,n,r,s){for(;;){var a=E.BracketsUtils.findPrevBracketInRange(i,t,n,r,s);if(!a)break;var l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(e.isOpen(l)?o++:e.isClose(l)&&o--,0===o)return a;s=a.startColumn-1}return null},s=t.lineNumber;s>=1;s--){var a=this._getLineTokens(s),l=a.getCount(),u=this._buffer.getLineContent(s),d=l-1,c=u.length,h=u.length;s===t.lineNumber&&(d=a.findTokenIndexAtOffset(t.column-1),c=t.column-1,h=t.column-1);for(var p=!0;d>=0;d--){var g,f=a.getLanguageId(d)===n&&!w.ignoreBracketsInToken(a.getStandardTokenType(d));if(f)p?c=a.getStartOffset(d):(c=a.getStartOffset(d),h=a.getEndOffset(d));else if(p&&c!==h)if(g=r(s,u,c,h))return g;p=f}if(p&&c!==h)if(g=r(s,u,c,h))return g}return null},o.prototype._findMatchingBracketDown=function(e,t){for(var n=e.languageIdentifier.id,i=e.forwardRegex,o=1,r=function(t,n,r,s){for(;;){var a=E.BracketsUtils.findNextBracketInRange(i,t,n,r,s);if(!a)break\n;var l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(e.isOpen(l)?o++:e.isClose(l)&&o--,0===o)return a;r=a.endColumn-1}return null},s=this.getLineCount(),a=t.lineNumber;a<=s;a++){var l=this._getLineTokens(a),u=l.getCount(),d=this._buffer.getLineContent(a),c=0,h=0,p=0;a===t.lineNumber&&(c=l.findTokenIndexAtOffset(t.column-1),h=t.column-1,p=t.column-1);for(var g=!0;c<u;c++){var f,m=l.getLanguageId(c)===n&&!w.ignoreBracketsInToken(l.getStandardTokenType(c));if(m)g?p=l.getEndOffset(c):(h=l.getStartOffset(c),p=l.getEndOffset(c));else if(g&&h!==p)if(f=r(a,d,h,p))return f;g=m}if(g&&h!==p)if(f=r(a,d,h,p))return f}return null},o.prototype.findPrevBracket=function(e){for(var t=this.validatePosition(e),n=-1,i=null,o=t.lineNumber;o>=1;o--){var r=this._getLineTokens(o),s=r.getCount(),a=this._buffer.getLineContent(o),l=s-1,u=a.length,d=a.length;if(o===t.lineNumber)l=r.findTokenIndexAtOffset(t.column-1),u=t.column-1,d=t.column-1,n!==(h=r.getLanguageId(l))&&(n=h,\ni=b.LanguageConfigurationRegistry.getBracketsSupport(n));for(var c=!0;l>=0;l--){var h;if(n!==(h=r.getLanguageId(l))){if(i&&c&&u!==d){if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p);c=!1}n=h,i=b.LanguageConfigurationRegistry.getBracketsSupport(n)}var p,g=!!i&&!w.ignoreBracketsInToken(r.getStandardTokenType(l));if(g)c?u=r.getStartOffset(l):(u=r.getStartOffset(l),d=r.getEndOffset(l));else if(i&&c&&u!==d)if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p);c=g}if(i&&c&&u!==d)if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p)}return null},o.prototype.findNextBracket=function(e){for(var t=this.validatePosition(e),n=this.getLineCount(),i=-1,o=null,r=t.lineNumber;r<=n;r++){var s=this._getLineTokens(r),a=s.getCount(),l=this._buffer.getLineContent(r),u=0,d=0,c=0;if(r===t.lineNumber)u=s.findTokenIndexAtOffset(t.column-1),d=t.column-1,c=t.column-1,\ni!==(p=s.getLanguageId(u))&&(i=p,o=b.LanguageConfigurationRegistry.getBracketsSupport(i));for(var h=!0;u<a;u++){var p;if(i!==(p=s.getLanguageId(u))){if(o&&h&&d!==c){if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g);h=!1}i=p,o=b.LanguageConfigurationRegistry.getBracketsSupport(i)}var g,f=!!o&&!w.ignoreBracketsInToken(s.getStandardTokenType(u));if(f)h?c=s.getEndOffset(u):(d=s.getStartOffset(u),c=s.getEndOffset(u));else if(o&&h&&d!==c)if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g);h=f}if(o&&h&&d!==c)if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g)}return null},o.prototype.findEnclosingBrackets=function(e,t){var n=this;void 0===t&&(t=1073741824);for(var i=this.validatePosition(e),o=this.getLineCount(),r=new Map,s=[],a=function(e,t){if(!r.has(e)){for(var n=[],i=0,o=t?t.brackets.length:0;i<o;i++)n[i]=0;r.set(e,n)}s=r.get(e)},l=function(e,t,i,o,r){for(;;){\nvar a=E.BracketsUtils.findNextBracketInRange(e.forwardRegex,t,i,o,r);if(!a)break;var l=i.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),u=e.textIsBracket[l];if(u&&(u.isOpen(l)?s[u.index]++:u.isClose(l)&&s[u.index]--,-1===s[u.index]))return n._matchFoundBracket(a,u,!1);o=a.endColumn-1}return null},u=-1,d=null,c=Date.now(),h=i.lineNumber;h<=o;h++){if(Date.now()-c>t)return null;var p=this._getLineTokens(h),g=p.getCount(),f=this._buffer.getLineContent(h),m=0,v=0,_=0;if(h===i.lineNumber)m=p.findTokenIndexAtOffset(i.column-1),v=i.column-1,_=i.column-1,u!==(C=p.getLanguageId(m))&&a(u=C,d=b.LanguageConfigurationRegistry.getBracketsSupport(u));for(var y=!0;m<g;m++){var C;if(u!==(C=p.getLanguageId(m))){if(d&&y&&v!==_){if(S=l(d,h,f,v,_))return S;y=!1}a(u=C,d=b.LanguageConfigurationRegistry.getBracketsSupport(u))}var S,L=!!d&&!w.ignoreBracketsInToken(p.getStandardTokenType(m));if(L)y?_=p.getEndOffset(m):(v=p.getStartOffset(m),_=p.getEndOffset(m));else if(d&&y&&v!==_)if(S=l(d,h,f,v,_))return S;y=L}\nif(d&&y&&v!==_)if(S=l(d,h,f,v,_))return S}return null},o.prototype._toFoundBracket=function(e,t){if(!t)return null;var n=this.getValueInRange(t);n=n.toLowerCase();var i=e.textIsBracket[n];return i?{range:t,open:i.open,close:i.close,isOpen:e.textIsOpenBracket[n]}:null},o.computeIndentLevel=function(e,t){for(var n=0,i=0,o=e.length;i<o;){var r=e.charCodeAt(i);if(32===r)n++;else{if(9!==r)break;n=n-n%t+t}i++}return i===o?-1:n},o.prototype._computeIndentLevel=function(e){return o.computeIndentLevel(this._buffer.getLineContent(e+1),this._options.tabSize)},o.prototype.getActiveIndentGuide=function(e,t,n){var i=this;this._assertNotDisposed();var o=this.getLineCount();if(e<1||e>o)throw new Error(\"Illegal value for lineNumber\");for(var r=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),s=Boolean(r&&r.offSide),a=-2,l=-1,u=-2,d=-1,c=function(e){if(-1!==a&&(-2===a||a>e-1)){a=-1,l=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){a=t,l=n;break}}}if(-2===u){u=-1,d=-1\n;for(t=e;t<o;t++){var r=i._computeIndentLevel(t);if(r>=0){u=t,d=r;break}}}},h=-2,p=-1,g=-2,f=-1,m=function(e){if(-2===h){h=-1,p=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){h=t,p=n;break}}}if(-1!==g&&(-2===g||g<e-1)){g=-1,f=-1;for(t=e;t<o;t++){var r=i._computeIndentLevel(t);if(r>=0){g=t,f=r;break}}}},v=0,_=!0,y=0,C=!0,S=0,w=0;_||C;w++){var E=e-w,L=e+w;if(0!==w&&(E<1||E<t)&&(_=!1),0!==w&&(L>o||L>n)&&(C=!1),w>5e4&&(_=!1,C=!1),_){var D=void 0;if((N=this._computeIndentLevel(E-1))>=0?(u=E-1,d=N,D=Math.ceil(N/this._options.indentSize)):(c(E),D=this._getIndentLevelForWhitespaceLine(s,l,d)),0===w){if(v=E,y=L,0===(S=D))return{startLineNumber:v,endLineNumber:y,indent:S};continue}D>=S?v=E:_=!1}if(C){var N,x=void 0;(N=this._computeIndentLevel(L-1))>=0?(h=L-1,p=N,x=Math.ceil(N/this._options.indentSize)):(m(L),x=this._getIndentLevelForWhitespaceLine(s,p,f)),x>=S?y=L:C=!1}}return{startLineNumber:v,endLineNumber:y,indent:S}},o.prototype.getLinesIndentGuides=function(e,t){this._assertNotDisposed()\n;var n=this.getLineCount();if(e<1||e>n)throw new Error(\"Illegal value for startLineNumber\");if(t<1||t>n)throw new Error(\"Illegal value for endLineNumber\");for(var i=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),o=Boolean(i&&i.offSide),r=new Array(t-e+1),s=-2,a=-1,l=-2,u=-1,d=e;d<=t;d++){var c=d-e,h=this._computeIndentLevel(d-1);if(h>=0)s=d-1,a=h,r[c]=Math.ceil(h/this._options.indentSize);else{if(-2===s){s=-1,a=-1;for(var p=d-2;p>=0;p--){if((g=this._computeIndentLevel(p))>=0){s=p,a=g;break}}}if(-1!==l&&(-2===l||l<d-1)){l=-1,u=-1;for(p=d;p<n;p++){var g;if((g=this._computeIndentLevel(p))>=0){l=p,u=g;break}}}r[c]=this._getIndentLevelForWhitespaceLine(o,a,u)}}return r},o.prototype._getIndentLevelForWhitespaceLine=function(e,t,n){return-1===t||-1===n?0:t<n?1+Math.floor(t/this._options.indentSize):t===n?Math.ceil(n/this._options.indentSize):e?Math.ceil(n/this._options.indentSize):1+Math.floor(n/this._options.indentSize)},o.MODEL_SYNC_LIMIT=52428800,o.LARGE_FILE_SIZE_THRESHOLD=20971520,\no.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,o.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:l.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:l.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:l.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:l.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:l.EDITOR_MODEL_DEFAULTS.largeFileOptimizations},o}(o.Disposable);t.TextModel=T;var R=function(){function e(){this._decorationsTree0=new f.IntervalTree,this._decorationsTree1=new f.IntervalTree}return e.prototype.intervalSearch=function(e,t,n,i,o){var r=this._decorationsTree0.intervalSearch(e,t,n,i,o),s=this._decorationsTree1.intervalSearch(e,t,n,i,o);return r.concat(s)},e.prototype.search=function(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);var o=this._decorationsTree0.search(e,t,i),r=this._decorationsTree1.search(e,t,i);return o.concat(r)},e.prototype.collectNodesFromOwner=function(e){\nvar t=this._decorationsTree0.collectNodesFromOwner(e),n=this._decorationsTree1.collectNodesFromOwner(e);return t.concat(n)},e.prototype.collectNodesPostOrder=function(){var e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder();return e.concat(t)},e.prototype.insert=function(e){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)},e.prototype.delete=function(e){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)},e.prototype.resolveNode=function(e,t){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)},e.prototype.acceptReplace=function(e,t,n,i){this._decorationsTree0.acceptReplace(e,t,n,i),this._decorationsTree1.acceptReplace(e,t,n,i)},e}();function O(e){return e.replace(/[^a-z0-9\\-_]/gi,\" \")}var P=function(e){this.color=e.color||\"\",this.darkColor=e.darkColor||\"\"},A=function(e){function t(t){var n=e.call(this,t)||this\n;return n._resolvedColor=null,n.position=\"number\"==typeof t.position?t.position:h.OverviewRulerLane.Center,n}return r(t,e),t.prototype.getColor=function(e){return this._resolvedColor||(\"light\"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor},t.prototype.invalidateCachedColor=function(){this._resolvedColor=null},t.prototype._resolveColor=function(e,t){if(\"string\"==typeof e)return e;var n=e?t.getColor(e.id):null;return n?n.toString():\"\"},t}(P);t.ModelDecorationOverviewRulerOptions=A;var F=function(e){function t(t){var n=e.call(this,t)||this;return n.position=t.position,n}return r(t,e),t.prototype.getColor=function(e){return this._resolvedColor||(\"light\"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor},t.prototype.invalidateCachedColor=function(){this._resolvedColor=void 0},\nt.prototype._resolveColor=function(e,t){return\"string\"==typeof e?N.Color.fromHex(e):t.getColor(e.id)},t}(P);t.ModelDecorationMinimapOptions=F;var W=function(){function e(e){this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?O(e.className):null,this.hoverMessage=L.withUndefinedAsNull(e.hoverMessage),this.glyphMarginHoverMessage=L.withUndefinedAsNull(e.glyphMarginHoverMessage),this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new A(e.overviewRuler):null,this.minimap=e.minimap?new F(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?O(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?O(e.linesDecorationsClassName):null,this.marginClassName=e.marginClassName?O(e.marginClassName):null,this.inlineClassName=e.inlineClassName?O(e.inlineClassName):null,\nthis.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?O(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?O(e.afterContentClassName):null}return e.register=function(t){return new e(t)},e.createDynamic=function(t){return new e(t)},e}();t.ModelDecorationOptions=W,W.EMPTY=W.register({});var B=[W.register({stickiness:0}),W.register({stickiness:1}),W.register({stickiness:2}),W.register({stickiness:3})];function V(e){return e instanceof W?e:W.createDynamic(e)}var z=function(e){function t(){var t=e.call(this)||this;return t._actual=t._register(new i.Emitter),t.event=t._actual.event,t._deferredCnt=0,t._shouldFire=!1,t}return r(t,e),t.prototype.beginDeferredEmit=function(){this._deferredCnt++},t.prototype.endDeferredEmit=function(){this._deferredCnt--,0===this._deferredCnt&&this._shouldFire&&(this._shouldFire=!1,this._actual.fire({}))},t.prototype.fire=function(){this._shouldFire=!0},t}(o.Disposable)\n;t.DidChangeDecorationsEmitter=z;var H=function(e){function t(){var t=e.call(this)||this;return t._fastEmitter=t._register(new i.Emitter),t.fastEvent=t._fastEmitter.event,t._slowEmitter=t._register(new i.Emitter),t.slowEvent=t._slowEmitter.event,t._deferredCnt=0,t._deferredEvent=null,t}return r(t,e),t.prototype.beginDeferredEmit=function(){this._deferredCnt++},t.prototype.endDeferredEmit=function(){if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){var e=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(e),this._slowEmitter.fire(e)}},t.prototype.fire=function(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))},t}(o.Disposable);t.DidChangeContentEmitter=H})),define(n[40],i([0,1,10,5,13,3,22,30,41]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){return!0},d=function(){return!1},c=function(e){\nreturn\" \"===e||\"\\t\"===e};function h(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}var p=function(){function e(t,n,i){this._languageIdentifier=t;var o=i.options,r=o.get(107);this.readOnly=o.get(68),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.lineHeight=o.get(49),this.pageSize=Math.max(1,Math.floor(r.height/this.lineHeight)-2),this.useTabStops=o.get(95),this.wordSeparators=o.get(96),this.emptySelectionClipboard=o.get(25),this.copyWithSyntaxHighlighting=o.get(15),this.multiCursorMergeOverlapping=o.get(58),this.multiCursorPaste=o.get(60),this.autoClosingBrackets=o.get(5),this.autoClosingQuotes=o.get(7),this.autoClosingOvertype=o.get(6),this.autoSurround=o.get(10),this.autoIndent=o.get(8),this.autoClosingPairsOpen2=new Map,this.autoClosingPairsClose2=new Map,this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:e._getShouldAutoClose(t,this.autoClosingQuotes),bracket:e._getShouldAutoClose(t,this.autoClosingBrackets)}\n;var s=e._getAutoClosingPairs(t);if(s)for(var a=0,l=s;a<l.length;a++){var u=l[a];h(this.autoClosingPairsOpen2,u.open.charAt(u.open.length-1),u),1===u.close.length&&h(this.autoClosingPairsClose2,u.close,u)}var d=e._getSurroundingPairs(t);if(d)for(var c=0,p=d;c<p.length;c++){u=p[c];this.surroundingPairs[u.open]=u.close}}return e.shouldRecreate=function(e){return e.hasChanged(107)||e.hasChanged(96)||e.hasChanged(25)||e.hasChanged(58)||e.hasChanged(60)||e.hasChanged(5)||e.hasChanged(7)||e.hasChanged(6)||e.hasChanged(10)||e.hasChanged(95)||e.hasChanged(49)||e.hasChanged(68)},Object.defineProperty(e.prototype,\"electricChars\",{get:function(){if(!this._electricChars){this._electricChars={};var t=e._getElectricCharacters(this._languageIdentifier);if(t)for(var n=0,i=t;n<i.length;n++){var o=i[n];this._electricChars[o]=!0}}return this._electricChars},enumerable:!0,configurable:!0}),e.prototype.normalizeIndentation=function(e){return a.TextModel.normalizeIndentation(e,this.indentSize,this.insertSpaces)},\ne._getElectricCharacters=function(e){try{return l.LanguageConfigurationRegistry.getElectricCharacters(e.id)}catch(e){return n.onUnexpectedError(e),null}},e._getAutoClosingPairs=function(e){try{return l.LanguageConfigurationRegistry.getAutoClosingPairs(e.id)}catch(e){return n.onUnexpectedError(e),null}},e._getShouldAutoClose=function(t,n){switch(n){case\"beforeWhitespace\":return c;case\"languageDefined\":return e._getLanguageDefinedShouldAutoClose(t);case\"always\":return u;case\"never\":return d}},e._getLanguageDefinedShouldAutoClose=function(e){try{var t=l.LanguageConfigurationRegistry.getAutoCloseBeforeSet(e.id);return function(e){return-1!==t.indexOf(e)}}catch(e){return n.onUnexpectedError(e),d}},e._getSurroundingPairs=function(e){try{return l.LanguageConfigurationRegistry.getSurroundingPairs(e.id)}catch(e){return n.onUnexpectedError(e),null}},e}();t.CursorConfiguration=p;var g=function(){function e(t,n,i,o){this.selectionStart=t,this.selectionStartLeftoverVisibleColumns=n,this.position=i,\nthis.leftoverVisibleColumns=o,this.selection=e._computeSelection(this.selectionStart,this.position)}return e.prototype.equals=function(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)},e.prototype.hasSelection=function(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()},e.prototype.move=function(t,n,i,s){return t?new e(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new o.Position(n,i),s):new e(new r.Range(n,i,n,i),s,new o.Position(n,i),s)},e._computeSelection=function(e,t){var n,i,o,r;return e.isEmpty()?(n=e.startLineNumber,i=e.startColumn,o=t.lineNumber,r=t.column):t.isBeforeOrEqual(e.getStartPosition())?(n=e.endLineNumber,i=e.endColumn,o=t.lineNumber,r=t.column):(n=e.startLineNumber,i=e.startColumn,o=t.lineNumber,r=t.column),new s.Selection(n,i,o,r)},e}();t.SingleCursorState=g;var f=function(){\nfunction e(e,t,n){this.model=t,this.viewModel=n,this.config=new p(this.model.getLanguageIdentifier(),this.model.getOptions(),e)}return e.prototype.validateViewPosition=function(e,t){return this.viewModel.coordinatesConverter.validateViewPosition(e,t)},e.prototype.validateViewRange=function(e,t){return this.viewModel.coordinatesConverter.validateViewRange(e,t)},e.prototype.convertViewRangeToModelRange=function(e){return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(e)},e.prototype.convertViewPositionToModelPosition=function(e,t){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e,t))},e.prototype.convertModelPositionToViewPosition=function(e){return this.viewModel.coordinatesConverter.convertModelPositionToViewPosition(e)},e.prototype.convertModelRangeToViewRange=function(e){return this.viewModel.coordinatesConverter.convertModelRangeToViewRange(e)},e.prototype.getCurrentScrollTop=function(){return this.viewModel.viewLayout.getCurrentScrollTop()},\ne.prototype.getCompletelyVisibleViewRange=function(){return this.viewModel.getCompletelyVisibleViewRange()},e.prototype.getCompletelyVisibleModelRange=function(){var e=this.viewModel.getCompletelyVisibleViewRange();return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(e)},e.prototype.getCompletelyVisibleViewRangeAtScrollTop=function(e){return this.viewModel.getCompletelyVisibleViewRangeAtScrollTop(e)},e.prototype.getVerticalOffsetForViewLine=function(e){return this.viewModel.viewLayout.getVerticalOffsetForLineNumber(e)},e}();t.CursorContext=f;var m=function(e){this.modelState=e,this.viewState=null};t.PartialModelCursorState=m;var v=function(e){this.modelState=null,this.viewState=e};t.PartialViewCursorState=v;var _=function(){function e(e,t){this.modelState=e,this.viewState=t}return e.fromModelState=function(e){return new m(e)},e.fromViewState=function(e){return new v(e)},e.fromModelSelection=function(t){\nvar n=t.selectionStartLineNumber,i=t.selectionStartColumn,s=t.positionLineNumber,a=t.positionColumn,l=new g(new r.Range(n,i,n,i),0,new o.Position(s,a),0);return e.fromModelState(l)},e.fromModelSelections=function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this.fromModelSelection(e[n]);return t},e.prototype.equals=function(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)},e}();t.CursorState=_;var y=function(e,t,n){this.type=e,this.commands=t,this.shouldPushStackElementBefore=n.shouldPushStackElementBefore,this.shouldPushStackElementAfter=n.shouldPushStackElementAfter};t.EditOperationResult=y;var C=function(){function e(){}return e.visibleColumnFromColumn=function(t,n,o){for(var r=t.length,s=n-1<r?n-1:r,a=0,l=0;l<s;){var u=i.getNextCodePoint(t,s,l);if(l+=u>=65536?2:1,9===u)a=e.nextRenderTabStop(a,o);else{for(var d=i.getGraphemeBreakType(u);l<s;){var c=i.getNextCodePoint(t,s,l),h=i.getGraphemeBreakType(c);if(i.breakBetweenGraphemeBreakType(d,h))break;l+=c>=65536?2:1,d=h}\ni.isFullWidthCharacter(u)||i.isEmojiImprecise(u)?a+=2:a+=1}}return a},e.visibleColumnFromColumn2=function(e,t,n){return this.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,e.tabSize)},e.columnFromVisibleColumn=function(t,n,o){if(n<=0)return 1;for(var r=t.length,s=0,a=1,l=0;l<r;){var u=i.getNextCodePoint(t,r,l);l+=u>=65536?2:1;var d=void 0;if(9===u)d=e.nextRenderTabStop(s,o);else{for(var c=i.getGraphemeBreakType(u);l<r;){var h=i.getNextCodePoint(t,r,l),p=i.getGraphemeBreakType(h);if(i.breakBetweenGraphemeBreakType(c,p))break;l+=h>=65536?2:1,c=p}d=i.isFullWidthCharacter(u)||i.isEmojiImprecise(u)?s+2:s+1}var g=l+1;if(d>=n)return d-n<n-s?g:a;s=d,a=g}return r+1},e.columnFromVisibleColumn2=function(e,t,n,i){var o=this.columnFromVisibleColumn(t.getLineContent(n),i,e.tabSize),r=t.getLineMinColumn(n);if(o<r)return r;var s=t.getLineMaxColumn(n);return o>s?s:o},e.nextRenderTabStop=function(e,t){return e+t-e%t},e.nextIndentTabStop=function(e,t){return e+t-e%t},e.prevRenderTabStop=function(e,t){\nreturn e-1-(e-1)%t},e.prevIndentTabStop=function(e,t){return e-1-(e-1)%t},e}();t.CursorColumns=C,t.isQuote=function(e){return\"'\"===e||'\"'===e||\"`\"===e}})),define(n[211],i([0,1,5,40,3,22,41]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=Object.create(null);function l(e,t){a[e]||(a[e]=[\"\",e]);for(var n=a[e],i=n.length;i<=t;i++)n[i]=n[i-1]+e;return n[t]}t.cachedStringRepeat=l;var u=function(){function e(e,t){this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return e.unshiftIndent=function(e,t,n,o,r){var s=i.CursorColumns.visibleColumnFromColumn(e,t,n);if(r){var a=l(\" \",o);return l(a,i.CursorColumns.prevIndentTabStop(s,o)/o)}return l(a=\"\\t\",i.CursorColumns.prevRenderTabStop(s,n)/n)},e.shiftIndent=function(e,t,n,o,r){var s=i.CursorColumns.visibleColumnFromColumn(e,t,n);if(r){var a=l(\" \",o);return l(a,i.CursorColumns.nextIndentTabStop(s,o)/o)}\nreturn l(a=\"\\t\",i.CursorColumns.nextRenderTabStop(s,n)/n)},e.prototype._addEditOperation=function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)},e.prototype.getEditOperations=function(t,r){var a=this._selection.startLineNumber,u=this._selection.endLineNumber;1===this._selection.endColumn&&a!==u&&(u-=1);var d=this._opts,c=d.tabSize,h=d.indentSize,p=d.insertSpaces,g=a===u;if(this._selection.isEmpty()&&/^\\s*$/.test(t.getLineContent(a))&&(this._useLastEditRangeForCursorEndPosition=!0),this._opts.useTabStops)for(var f=0,m=0,v=a;v<=u;v++,f=m){m=0;var _=t.getLineContent(v),y=n.firstNonWhitespaceIndex(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&(g||this._opts.isUnshift||0!==_.length)){if(-1===y&&(y=_.length),v>1)if(i.CursorColumns.visibleColumnFromColumn(_,y+1,c)%h!=0&&t.isCheapToTokenize(v-1)){var C=s.LanguageConfigurationRegistry.getEnterAction(this._opts.autoIndent,t,new o.Range(v-1,t.getLineMaxColumn(v-1),v-1,t.getLineMaxColumn(v-1)));if(C){\nif(m=f,C.appendText)for(var b=0,S=C.appendText.length;b<S&&m<h&&32===C.appendText.charCodeAt(b);b++)m++;C.removeText&&(m=Math.max(0,m-C.removeText));for(b=0;b<m&&(0!==y&&32===_.charCodeAt(y-1));b++)y--}}if(!this._opts.isUnshift||0!==y){var w=void 0;w=this._opts.isUnshift?e.unshiftIndent(_,y+1,c,h,p):e.shiftIndent(_,y+1,c,h,p),this._addEditOperation(r,new o.Range(v,1,v,y+1),w),v!==a||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=this._selection.startColumn<=y+1)}}}else{var E=p?l(\" \",h):\"\\t\";for(v=a;v<=u;v++){_=t.getLineContent(v),y=n.firstNonWhitespaceIndex(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&((g||this._opts.isUnshift||0!==_.length)&&(-1===y&&(y=_.length),!this._opts.isUnshift||0!==y)))if(this._opts.isUnshift){y=Math.min(y,h);for(var L=0;L<y;L++){if(9===_.charCodeAt(L)){y=L+1;break}}this._addEditOperation(r,new o.Range(v,1,v,y+1),\"\")}else this._addEditOperation(r,new o.Range(v,1,v,1),E),\nv!==a||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=1===this._selection.startColumn)}}this._selectionId=r.trackSelection(this._selection)},e.prototype.computeCursorState=function(e,t){if(this._useLastEditRangeForCursorEndPosition){var n=t.getInverseEditOperations()[0];return new r.Selection(n.range.endLineNumber,n.range.endColumn,n.range.endLineNumber,n.range.endColumn)}var i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){var o=this._selection.startColumn;return i.startColumn<=o?i:0===i.getDirection()?new r.Selection(i.startLineNumber,o,i.endLineNumber,i.endColumn):new r.Selection(i.endLineNumber,i.endColumn,i.startLineNumber,o)}return i},e}();t.ShiftCommand=u})),define(n[483],i([0,1,40,13,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.columnSelect=function(e,t,r,s,a,l){for(var u=Math.abs(a-r)+1,d=r>a,c=s>l,h=s<l,p=[],g=0;g<u;g++){\nvar f=r+(d?-g:g),m=n.CursorColumns.columnFromVisibleColumn2(e,t,f,s),v=n.CursorColumns.columnFromVisibleColumn2(e,t,f,l),_=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(f,m)),y=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(f,v));if(h){if(_>l)continue;if(y<s)continue}if(c){if(y>s)continue;if(_<l)continue}p.push(new n.SingleCursorState(new o.Range(f,m,f,m),0,new i.Position(f,v),0))}if(0===p.length)for(g=0;g<u;g++){f=r+(d?-g:g);var C=t.getLineMaxColumn(f);p.push(new n.SingleCursorState(new o.Range(f,C,f,C),0,new i.Position(f,C),0))}return{viewStates:p,reversed:d,fromLineNumber:r,fromVisualColumn:s,toLineNumber:a,toVisualColumn:l}},e.columnSelectLeft=function(t,n,i){var o=i.toViewVisualColumn;return o>1&&o--,e.columnSelect(t,n,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,o)},e.columnSelectRight=function(e,t,o){for(var r=0,s=Math.min(o.fromViewLineNumber,o.toViewLineNumber),a=Math.max(o.fromViewLineNumber,o.toViewLineNumber),l=s;l<=a;l++){\nvar u=t.getLineMaxColumn(l),d=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(l,u));r=Math.max(r,d)}var c=o.toViewVisualColumn;return c<r&&c++,this.columnSelect(e,t,o.fromViewLineNumber,o.fromViewVisualColumn,o.toViewLineNumber,c)},e.columnSelectUp=function(e,t,n,i){var o=i?e.pageSize:1,r=Math.max(1,n.toViewLineNumber-o);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,r,n.toViewVisualColumn)},e.columnSelectDown=function(e,t,n,i){var o=i?e.pageSize:1,r=Math.min(t.getLineCount(),n.toViewLineNumber+o);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,r,n.toViewVisualColumn)},e}();t.ColumnSelection=r})),define(n[158],i([0,1,40,13,3,5]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e,t,n){this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=n};t.CursorPosition=s;var a=function(){function e(){}return e.leftPosition=function(e,t,n){\nreturn n>e.getLineMinColumn(t)?n-=r.prevCharLength(e.getLineContent(t),n-1):t>1&&(t-=1,n=e.getLineMaxColumn(t)),new i.Position(t,n)},e.left=function(t,n,i,o){var r=e.leftPosition(n,i,o);return new s(r.lineNumber,r.column,0)},e.moveLeft=function(t,n,i,o,r){var s,a;if(i.hasSelection()&&!o)s=i.selection.startLineNumber,a=i.selection.startColumn;else{var l=e.left(t,n,i.position.lineNumber,i.position.column-(r-1));s=l.lineNumber,a=l.column}return i.move(o,s,a,0)},e.rightPosition=function(e,t,n){return n<e.getLineMaxColumn(t)?n+=r.nextCharLength(e.getLineContent(t),n-1):t<e.getLineCount()&&(t+=1,n=e.getLineMinColumn(t)),new i.Position(t,n)},e.right=function(t,n,i,o){var r=e.rightPosition(n,i,o);return new s(r.lineNumber,r.column,0)},e.moveRight=function(t,n,i,o,r){var s,a;if(i.hasSelection()&&!o)s=i.selection.endLineNumber,a=i.selection.endColumn;else{var l=e.right(t,n,i.position.lineNumber,i.position.column+(r-1));s=l.lineNumber,a=l.column}return i.move(o,s,a,0)},e.down=function(e,t,i,o,r,a,l){\nvar u=n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize)+r;i+=a;var d=t.getLineCount();return i>d?(i=d,o=l?t.getLineMaxColumn(i):Math.min(t.getLineMaxColumn(i),o)):o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,u),r=u-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new s(i,o,r)},e.moveDown=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.down(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateDown=function(t,r,s){var a=s.selection,l=e.down(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),u=e.down(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new i.Position(u.lineNumber,u.column),u.leftoverVisibleColumns)},\ne.up=function(e,t,i,o,r,a,l){var u=n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize)+r;return(i-=a)<1?(i=1,o=l?t.getLineMinColumn(i):Math.min(t.getLineMaxColumn(i),o)):o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,u),r=u-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new s(i,o,r)},e.moveUp=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.startLineNumber,a=i.selection.startColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.up(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateUp=function(t,r,s){var a=s.selection,l=e.up(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),u=e.up(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new i.Position(u.lineNumber,u.column),u.leftoverVisibleColumns)},\ne.moveToBeginningOfLine=function(e,t,n,i){var o,r=n.position.lineNumber,s=t.getLineMinColumn(r),a=t.getLineFirstNonWhitespaceColumn(r)||s;return o=n.position.column===a?s:a,n.move(i,r,o,0)},e.moveToEndOfLine=function(e,t,n,i){var o=n.position.lineNumber,r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e.moveToBeginningOfBuffer=function(e,t,n,i){return n.move(i,1,1,0)},e.moveToEndOfBuffer=function(e,t,n,i){var o=t.getLineCount(),r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e}();t.MoveOperations=a})),define(n[212],i([0,1,5,80,40,158,3]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(){}return e.deleteRight=function(e,t,n,o){for(var a=[],l=3!==e,u=0,d=o.length;u<d;u++){var c=o[u],h=c;if(h.isEmpty()){var p=c.getPosition(),g=r.MoveOperations.right(t,n,p.lineNumber,p.column);h=new s.Range(g.lineNumber,g.column,p.lineNumber,p.column)}h.isEmpty()?a[u]=null:(h.startLineNumber!==h.endLineNumber&&(l=!0),a[u]=new i.ReplaceCommand(h,\"\"))}return[l,a]},\ne._isAutoClosingPairDelete=function(e,t,n){if(\"never\"===e.autoClosingBrackets&&\"never\"===e.autoClosingQuotes)return!1;for(var i=0,r=n.length;i<r;i++){var s=n[i],a=s.getPosition();if(!s.isEmpty())return!1;var l=t.getLineContent(a.lineNumber),u=l[a.column-2],d=e.autoClosingPairsOpen2.get(u);if(!d)return!1;if(o.isQuote(u)){if(\"never\"===e.autoClosingQuotes)return!1}else if(\"never\"===e.autoClosingBrackets)return!1;for(var c=l[a.column-1],h=!1,p=0,g=d;p<g.length;p++){var f=g[p];f.open===u&&f.close===c&&(h=!0)}if(!h)return!1}return!0},e._runAutoClosingPairDelete=function(e,t,n){for(var o=[],r=0,a=n.length;r<a;r++){var l=n[r].getPosition(),u=new s.Range(l.lineNumber,l.column-1,l.lineNumber,l.column+1);o[r]=new i.ReplaceCommand(u,\"\")}return[!0,o]},e.deleteLeft=function(e,t,a,l){if(this._isAutoClosingPairDelete(t,a,l))return this._runAutoClosingPairDelete(t,a,l);for(var u=[],d=2!==e,c=0,h=l.length;c<h;c++){var p=l[c],g=p;if(g.isEmpty()){var f=p.getPosition();if(t.useTabStops&&f.column>1){\nvar m=a.getLineContent(f.lineNumber),v=n.firstNonWhitespaceIndex(m),_=-1===v?m.length+1:v+1;if(f.column<=_){var y=o.CursorColumns.visibleColumnFromColumn2(t,a,f),C=o.CursorColumns.prevIndentTabStop(y,t.indentSize),b=o.CursorColumns.columnFromVisibleColumn2(t,a,f.lineNumber,C);g=new s.Range(f.lineNumber,b,f.lineNumber,f.column)}else g=new s.Range(f.lineNumber,f.column-1,f.lineNumber,f.column)}else{var S=r.MoveOperations.left(t,a,f.lineNumber,f.column);g=new s.Range(S.lineNumber,S.column,f.lineNumber,f.column)}}g.isEmpty()?u[c]=null:(g.startLineNumber!==g.endLineNumber&&(d=!0),u[c]=new i.ReplaceCommand(g,\"\"))}return[d,u]},e.cut=function(e,t,n){for(var r=[],a=0,l=n.length;a<l;a++){var u=n[a];if(u.isEmpty())if(e.emptySelectionClipboard){var d=u.getPosition(),c=void 0,h=void 0,p=void 0,g=void 0;d.lineNumber<t.getLineCount()?(c=d.lineNumber,h=1,p=d.lineNumber+1,g=1):d.lineNumber>1?(c=d.lineNumber-1,h=t.getLineMaxColumn(d.lineNumber-1),p=d.lineNumber,g=t.getLineMaxColumn(d.lineNumber)):(c=d.lineNumber,h=1,\np=d.lineNumber,g=t.getLineMaxColumn(d.lineNumber));var f=new s.Range(c,h,p,g);f.isEmpty()?r[a]=null:r[a]=new i.ReplaceCommand(f,\"\")}else r[a]=null;else r[a]=new i.ReplaceCommand(u,\"\")}return new o.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e}();t.DeleteOperations=a})),define(n[159],i([0,1,10,5,80,211,340,40,89,3,22,90,41]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(){function e(){}return e.indent=function(e,t,n){if(null===t||null===n)return[];for(var i=[],o=0,r=n.length;o<r;o++)i[o]=new s.ShiftCommand(n[o],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i},e.outdent=function(e,t,n){for(var i=[],o=0,r=n.length;o<r;o++)i[o]=new s.ShiftCommand(n[o],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i},\ne.shiftIndent=function(e,t,n){return n=n||1,s.ShiftCommand.shiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)},e.unshiftIndent=function(e,t,n){return n=n||1,s.ShiftCommand.unshiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)},e._distributedPaste=function(e,t,n,i){for(var r=[],s=0,a=n.length;s<a;s++)r[s]=new o.ReplaceCommand(n[s],i[s]);return new l.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._simplePaste=function(e,t,n,i,r){for(var s=[],a=0,u=n.length;a<u;a++){var c=n[a],h=c.getPosition();if(r&&!c.isEmpty()&&(r=!1),r&&i.indexOf(\"\\n\")!==i.length-1&&(r=!1),r){var p=new d.Range(h.lineNumber,1,h.lineNumber,1);s[a]=new o.ReplaceCommandThatPreservesSelection(p,i,c,!0)}else s[a]=new o.ReplaceCommand(c,i)}return new l.EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._distributePasteToCursors=function(e,t,n,i,o){if(i)return null;if(1===t.length)return null;if(o&&o.length===t.length)return o\n;if(\"spread\"===e.multiCursorPaste){10===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1)),13===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1));var r=n.split(/\\r\\n|\\r|\\n/);if(r.length===t.length)return r}return null},e.paste=function(e,t,n,i,o,r){var s=this._distributePasteToCursors(e,n,i,o,r);return s?(n=n.sort(d.Range.compareRangesUsingStarts),this._distributedPaste(e,t,n,s)):this._simplePaste(e,t,n,i,o)},e._goodIndentForLine=function(t,n,o){var r=null,s=\"\",a=p.LanguageConfigurationRegistry.getInheritIndentForLine(t.autoIndent,n,o,!1);if(a)r=a.action,s=a.indentation;else if(o>1){var l=void 0;for(l=o-1;l>=1;l--){var u=n.getLineContent(l);if(i.lastNonWhitespaceIndex(u)>=0)break}if(l<1)return null;var c=n.getLineMaxColumn(l),g=p.LanguageConfigurationRegistry.getEnterAction(t.autoIndent,n,new d.Range(l,c,l,c));g&&(s=g.indentation+g.appendText)}return r&&(r===h.IndentAction.Indent&&(s=e.shiftIndent(t,s)),r===h.IndentAction.Outdent&&(s=e.unshiftIndent(t,s)),s=t.normalizeIndentation(s)),s||null},\ne._replaceJumpToNextIndent=function(e,t,n,i){var r=\"\",s=n.getStartPosition();if(e.insertSpaces)for(var a=l.CursorColumns.visibleColumnFromColumn2(e,t,s),u=e.indentSize,d=u-a%u,c=0;c<d;c++)r+=\" \";else r=\"\\t\";return new o.ReplaceCommand(n,r,i)},e.tab=function(e,t,n){for(var r=[],a=0,l=n.length;a<l;a++){var u=n[a];if(u.isEmpty()){var c=t.getLineContent(u.startLineNumber);if(/^\\s*$/.test(c)&&t.isCheapToTokenize(u.startLineNumber)){var h=this._goodIndentForLine(e,t,u.startLineNumber);h=h||\"\\t\";var p=e.normalizeIndentation(h);if(!i.startsWith(c,p)){r[a]=new o.ReplaceCommand(new d.Range(u.startLineNumber,1,u.startLineNumber,c.length+1),p,!0);continue}}r[a]=this._replaceJumpToNextIndent(e,t,u,!0)}else{if(u.startLineNumber===u.endLineNumber){var g=t.getLineMaxColumn(u.startLineNumber);if(1!==u.startColumn||u.endColumn!==g){r[a]=this._replaceJumpToNextIndent(e,t,u,!1);continue}}r[a]=new s.ShiftCommand(u,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,\nautoIndent:e.autoIndent})}}return r},e.replacePreviousChar=function(e,t,n,i,r,s){for(var a=[],u=0,c=i.length;u<c;u++){var h=i[u];if(h.isEmpty()){var p=h.getPosition(),g=Math.max(1,p.column-s),f=new d.Range(p.lineNumber,g,p.lineNumber,p.column);a[u]=new o.ReplaceCommand(f,r)}else a[u]=null}return new l.EditOperationResult(1,a,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e._typeCommand=function(e,t,n){return n?new o.ReplaceCommandWithoutChangingPosition(e,t,!0):new o.ReplaceCommand(e,t,!0)},e._enter=function(t,n,r,s){if(0===t.autoIndent)return e._typeCommand(s,\"\\n\",r);if(!n.isCheapToTokenize(s.getStartPosition().lineNumber)||1===t.autoIndent){var a=n.getLineContent(s.startLineNumber),u=i.getLeadingWhitespace(a).substring(0,s.startColumn-1);return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(u),r)}var c=p.LanguageConfigurationRegistry.getEnterAction(t.autoIndent,n,s);if(c){\nif(c.indentAction===h.IndentAction.None)return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(c.indentation+c.appendText),r);if(c.indentAction===h.IndentAction.Indent)return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(c.indentation+c.appendText),r);if(c.indentAction===h.IndentAction.IndentOutdent){var g=t.normalizeIndentation(c.indentation),f=t.normalizeIndentation(c.indentation+c.appendText),m=\"\\n\"+f+\"\\n\"+g;return r?new o.ReplaceCommandWithoutChangingPosition(s,m,!0):new o.ReplaceCommandWithOffsetCursorState(s,m,-1,f.length-g.length,!0)}if(c.indentAction===h.IndentAction.Outdent){var v=e.unshiftIndent(t,c.indentation);return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(v+c.appendText),r)}}var _=n.getLineContent(s.startLineNumber),y=i.getLeadingWhitespace(_).substring(0,s.startColumn-1);if(t.autoIndent>=4){var C=p.LanguageConfigurationRegistry.getIndentForEnter(t.autoIndent,n,s,{unshiftIndent:function(n){return e.unshiftIndent(t,n)},shiftIndent:function(n){return e.shiftIndent(t,n)},\nnormalizeIndentation:function(e){return t.normalizeIndentation(e)}});if(C){var b=l.CursorColumns.visibleColumnFromColumn2(t,n,s.getEndPosition()),S=s.endColumn,w=\"\\n\";y!==t.normalizeIndentation(C.beforeEnter)&&(w=t.normalizeIndentation(C.beforeEnter)+_.substring(y.length,s.startColumn-1)+\"\\n\",s=new d.Range(s.startLineNumber,1,s.endLineNumber,s.endColumn));var E=n.getLineContent(s.endLineNumber),L=i.firstNonWhitespaceIndex(E);if(s=L>=0?s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,L+1)):s.setEndPosition(s.endLineNumber,n.getLineMaxColumn(s.endLineNumber)),r)return new o.ReplaceCommandWithoutChangingPosition(s,w+t.normalizeIndentation(C.afterEnter),!0);var D=0;return S<=L+1&&(t.insertSpaces||(b=Math.ceil(b/t.indentSize)),D=Math.min(b+1-t.normalizeIndentation(C.afterEnter).length-1,0)),new o.ReplaceCommandWithOffsetCursorState(s,w+t.normalizeIndentation(C.afterEnter),0,D,!0)}}return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(y),r)},e._isAutoIndentType=function(e,t,n){if(e.autoIndent<4)return!1\n;for(var i=0,o=n.length;i<o;i++)if(!t.isCheapToTokenize(n[i].getEndPosition().lineNumber))return!1;return!0},e._runAutoIndentType=function(t,n,i,o){var r=p.LanguageConfigurationRegistry.getIndentationAtPosition(n,i.startLineNumber,i.startColumn),s=p.LanguageConfigurationRegistry.getIndentActionForType(t.autoIndent,n,i,o,{shiftIndent:function(n){return e.shiftIndent(t,n)},unshiftIndent:function(n){return e.unshiftIndent(t,n)}});if(null===s)return null;if(s!==t.normalizeIndentation(r)){var a=n.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===a?e._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(s)+o,!1):e._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(s)+n.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+o,!1)}return null},e._isAutoClosingOvertype=function(e,t,n,i,o){if(\"never\"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairsClose2.has(o))return!1;for(var r=0,s=n.length;r<s;r++){\nvar a=n[r];if(!a.isEmpty())return!1;var u=a.getPosition(),d=t.getLineContent(u.lineNumber);if(d.charAt(u.column-1)!==o)return!1;var c=l.isQuote(o);if(92===(u.column>2?d.charCodeAt(u.column-2):0)&&c)return!1;if(\"auto\"===e.autoClosingOvertype){for(var h=!1,p=0,g=i.length;p<g;p++){var f=i[p];if(u.lineNumber===f.startLineNumber&&u.column===f.startColumn){h=!0;break}}if(!h)return!1}}return!0},e._runAutoClosingOvertype=function(e,t,n,i,r){for(var s=[],a=0,u=i.length;a<u;a++){var c=i[a].getPosition(),h=new d.Range(c.lineNumber,c.column,c.lineNumber,c.column+1);s[a]=new o.ReplaceCommand(h,r)}return new l.EditOperationResult(1,s,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e._autoClosingPairIsSymmetric=function(e){var t=e.open,n=e.close;return t.indexOf(n)>=0||n.indexOf(t)>=0},e._isBeforeClosingBrace=function(t,n,i){var o=t.autoClosingPairsClose2.get(i);if(!o)return!1;for(var r=e._autoClosingPairIsSymmetric(n),s=0,a=o;s<a.length;s++){var l=a[s],u=e._autoClosingPairIsSymmetric(l)\n;if(r||!u)return!0}return!1},e._findAutoClosingPairOpen=function(e,t,n,i){var o=e.autoClosingPairsOpen2.get(i);if(!o)return null;for(var r=null,s=0,a=o;s<a.length;s++){var l=a[s];if(null===r||l.open.length>r.open.length){for(var u=!0,c=0,h=n;c<h.length;c++){var p=h[c];if(t.getValueInRange(new d.Range(p.lineNumber,p.column-l.open.length+1,p.lineNumber,p.column))+i!==l.open){u=!1;break}}u&&(r=l)}}return r},e._isAutoClosingOpenCharType=function(t,i,o,r,s){var a=l.isQuote(r),d=a?t.autoClosingQuotes:t.autoClosingBrackets;if(\"never\"===d)return null;var c=this._findAutoClosingPairOpen(t,i,o.map((function(e){return e.getPosition()})),r);if(!c)return null;for(var h=a?t.shouldAutoCloseBefore.quote:t.shouldAutoCloseBefore.bracket,g=0,f=o.length;g<f;g++){var m=o[g];if(!m.isEmpty())return null;var v=m.getPosition(),_=i.getLineContent(v.lineNumber);if(_.length>v.column-1){var y=_.charAt(v.column-1);if(!e._isBeforeClosingBrace(t,c,y)&&!h(y))return null}if(!i.isCheapToTokenize(v.lineNumber))return null\n;if(1===c.open.length&&a&&\"always\"!==d){var C=u.getMapForWordSeparators(t.wordSeparators);if(s&&v.column>1&&0===C.get(_.charCodeAt(v.column-2)))return null;if(!s&&v.column>2&&0===C.get(_.charCodeAt(v.column-3)))return null}i.forceTokenization(v.lineNumber);var b=i.getLineTokens(v.lineNumber),S=!1;try{S=p.LanguageConfigurationRegistry.shouldAutoClosePair(c,b,s?v.column:v.column-1)}catch(e){n.onUnexpectedError(e)}if(!S)return null}return c},e._runAutoClosingOpenCharType=function(e,t,n,i,o,r,s){for(var a=[],u=0,d=i.length;u<d;u++){var c=i[u];a[u]=new f(c,o,r,s.close)}return new l.EditOperationResult(1,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})},e._shouldSurroundChar=function(e,t){return l.isQuote(t)?\"quotes\"===e.autoSurround||\"languageDefined\"===e.autoSurround:\"brackets\"===e.autoSurround||\"languageDefined\"===e.autoSurround},e._isSurroundSelectionType=function(t,n,i,o){if(!e._shouldSurroundChar(t,o)||!t.surroundingPairs.hasOwnProperty(o))return!1\n;for(var r=l.isQuote(o),s=0,a=i.length;s<a;s++){var u=i[s];if(u.isEmpty())return!1;for(var d=!0,c=u.startLineNumber;c<=u.endLineNumber;c++){var h=n.getLineContent(c),p=c===u.startLineNumber?u.startColumn-1:0,g=c===u.endLineNumber?u.endColumn-1:h.length,f=h.substring(p,g);if(/[^ \\t]/.test(f)){d=!1;break}}if(d)return!1;if(r&&u.startLineNumber===u.endLineNumber&&u.startColumn+1===u.endColumn){var m=n.getValueInRange(u);if(l.isQuote(m))return!1}}return!0},e._runSurroundSelectionType=function(e,t,n,i,o){for(var r=[],s=0,u=i.length;s<u;s++){var d=i[s],c=t.surroundingPairs[o];r[s]=new a.SurroundSelectionCommand(d,o,c)}return new l.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._isTypeInterceptorElectricChar=function(e,t,n){return!(1!==n.length||!t.isCheapToTokenize(n[0].getEndPosition().lineNumber))},e._typeInterceptorElectricChar=function(e,t,r,s,a){if(!t.electricChars.hasOwnProperty(a)||!s.isEmpty())return null;var u=s.getPosition();r.forceTokenization(u.lineNumber)\n;var c,h=r.getLineTokens(u.lineNumber);try{c=p.LanguageConfigurationRegistry.onElectricCharacter(a,h,u.column)}catch(e){return n.onUnexpectedError(e),null}if(!c)return null;if(c.matchOpenBracket){var g=(h.getLineContent()+a).lastIndexOf(c.matchOpenBracket)+1,f=r.findMatchingBracketUp(c.matchOpenBracket,{lineNumber:u.lineNumber,column:g});if(f){if(f.startLineNumber===u.lineNumber)return null;var m=r.getLineContent(f.startLineNumber),v=i.getLeadingWhitespace(m),_=t.normalizeIndentation(v),y=r.getLineContent(u.lineNumber),C=r.getLineFirstNonWhitespaceColumn(u.lineNumber)||u.column,b=_+y.substring(C-1,u.column-1)+a,S=new d.Range(u.lineNumber,1,u.lineNumber,u.column),w=new o.ReplaceCommand(S,b);return new l.EditOperationResult(1,[w],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null},e.compositionEndWithInterceptors=function(e,t,n,i,r,s){if(!i||c.Selection.selectionsArrEqual(i,r))return null;for(var a=null,u=0,h=r;u<h.length;u++){var p=h[u];if(!p.isEmpty())return null\n;var g=p.getPosition(),f=n.getValueInRange(new d.Range(g.lineNumber,g.column-1,g.lineNumber,g.column));if(null===a)a=f;else if(a!==f)return null}if(!a)return null;if(this._isAutoClosingOvertype(t,n,r,s,a)){var m=r.map((function(e){return new o.ReplaceCommand(new d.Range(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),\"\",!1)}));return new l.EditOperationResult(1,m,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}var v=this._isAutoClosingOpenCharType(t,n,r,a,!1);return v?this._runAutoClosingOpenCharType(e,t,n,r,a,!1,v):null},e.typeWithInterceptors=function(t,n,i,r,s,a){if(\"\\n\"===a){for(var u=[],d=0,c=r.length;d<c;d++)u[d]=e._enter(n,i,!1,r[d]);return new l.EditOperationResult(1,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoIndentType(n,i,r)){var h=[],p=!1;for(d=0,c=r.length;d<c;d++)if(h[d]=this._runAutoIndentType(n,i,r[d],a),!h[d]){p=!0;break}if(!p)return new l.EditOperationResult(1,h,{shouldPushStackElementBefore:!0,\nshouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(n,i,r,s,a))return this._runAutoClosingOvertype(t,n,i,r,a);var g=this._isAutoClosingOpenCharType(n,i,r,a,!0);if(g)return this._runAutoClosingOpenCharType(t,n,i,r,a,!0,g);if(this._isSurroundSelectionType(n,i,r,a))return this._runSurroundSelectionType(t,n,i,r,a);if(this._isTypeInterceptorElectricChar(n,i,r)){var f=this._typeInterceptorElectricChar(t,n,i,r[0],a);if(f)return f}var m=[];for(d=0,c=r.length;d<c;d++)m[d]=new o.ReplaceCommand(r[d],a);var v=1!==t;return\" \"===a&&(v=!0),new l.EditOperationResult(1,m,{shouldPushStackElementBefore:v,shouldPushStackElementAfter:!1})},e.typeWithoutInterceptors=function(e,t,n,i,r){for(var s=[],a=0,u=i.length;a<u;a++)s[a]=new o.ReplaceCommand(i[a],r);return new l.EditOperationResult(1,s,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e.lineInsertBefore=function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,s=n.length;r<s;r++){var a=n[r].positionLineNumber\n;if(1===a)i[r]=new o.ReplaceCommandWithoutChangingPosition(new d.Range(1,1,1,1),\"\\n\");else{a--;var l=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new d.Range(a,l,a,l))}}return i},e.lineInsertAfter=function(e,t,n){if(null===t||null===n)return[];for(var i=[],o=0,r=n.length;o<r;o++){var s=n[o].positionLineNumber,a=t.getLineMaxColumn(s);i[o]=this._enter(e,t,!1,new d.Range(s,a,s,a))}return i},e.lineBreakInsert=function(e,t,n){for(var i=[],o=0,r=n.length;o<r;o++)i[o]=this._enter(e,t,!0,n[o]);return i},e}();t.TypeOperations=g;var f=function(e){function t(t,n,i,o){var r=e.call(this,t,(i?n:\"\")+o,0,-o.length)||this;return r._openCharacter=n,r._closeCharacter=o,r.closeCharacterRange=null,r.enclosingRange=null,r}return r(t,e),t.prototype.computeCursorState=function(t,n){var i=n.getInverseEditOperations()[0].range;return this.closeCharacterRange=new d.Range(i.startLineNumber,i.endColumn-this._closeCharacter.length,i.endLineNumber,i.endColumn),\nthis.enclosingRange=new d.Range(i.startLineNumber,i.endColumn-this._openCharacter.length-this._closeCharacter.length,i.endLineNumber,i.endColumn),e.prototype.computeCursorState.call(this,t,n)},t}(o.ReplaceCommandWithOffsetCursorState);t.TypeWithAutoClosingCommand=f})),define(n[160],i([0,1,5,40,89,13,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(){}return e._createWord=function(e,t,n,i,o){return{start:i,end:o,wordType:t,nextCharClass:n}},e._findPreviousWordOnLine=function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(i,e,n)},e._doFindPreviousWordOnLine=function(e,t,n){for(var i=0,o=n.column-2;o>=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(0===s){if(2===i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1));i=1}else if(2===s){if(1===i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1));i=2}else if(1===s&&0!==i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1))}\nreturn 0!==i?this._createWord(e,i,1,0,this._findEndOfWord(e,t,i,0)):null},e._findEndOfWord=function(e,t,n,i){for(var o=e.length,r=i;r<o;r++){var s=e.charCodeAt(r),a=t.get(s);if(1===a)return r;if(1===n&&2===a)return r;if(2===n&&0===a)return r}return o},e._findNextWordOnLine=function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindNextWordOnLine(i,e,n)},e._doFindNextWordOnLine=function(e,t,n){for(var i=0,o=e.length,r=n.column-1;r<o;r++){var s=e.charCodeAt(r),a=t.get(s);if(0===a){if(2===i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r);i=1}else if(2===a){if(1===i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r);i=2}else if(1===a&&0!==i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r)}return 0!==i?this._createWord(e,i,1,this._findStartOfWord(e,t,i,o-1),o):null},e._findStartOfWord=function(e,t,n,i){for(var o=i;o>=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(1===s)return o+1;if(1===n&&2===s)return o+1;if(2===n&&0===s)return o+1}return 0},\ne.moveWordLeft=function(t,n,i,o){var r=i.lineNumber,a=i.column,l=!1;1===a&&r>1&&(l=!0,r-=1,a=n.getLineMaxColumn(r));var u=e._findPreviousWordOnLine(t,n,new s.Position(r,a));if(0===o){if(u&&!l)if(n.getLineLastNonWhitespaceColumn(r)<a)return new s.Position(r,u.end+1);return new s.Position(r,u?u.start+1:1)}if(1===o)return u&&2===u.wordType&&u.end-u.start==1&&0===u.nextCharClass&&(u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1))),new s.Position(r,u?u.start+1:1);if(3===o){for(;u&&2===u.wordType;)u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1));return new s.Position(r,u?u.start+1:1)}return u&&a<=u.end+1&&(u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1))),new s.Position(r,u?u.end+1:1)},e._moveWordPartLeft=function(e,t){var i=t.lineNumber,o=e.getLineMaxColumn(i);if(1===t.column)return i>1?new s.Position(i-1,e.getLineMaxColumn(i-1)):t;for(var r=e.getLineContent(i),a=t.column-1;a>1;a--){var l=r.charCodeAt(a-2),u=r.charCodeAt(a-1);if(95!==l&&95===u)return new s.Position(i,a)\n;if(n.isLowerAsciiLetter(l)&&n.isUpperAsciiLetter(u))return new s.Position(i,a);if(n.isUpperAsciiLetter(l)&&n.isUpperAsciiLetter(u)&&a+1<o){var d=r.charCodeAt(a);if(n.isLowerAsciiLetter(d))return new s.Position(i,a)}}return new s.Position(i,1)},e.moveWordRight=function(t,n,i,o){var r=i.lineNumber,a=i.column,l=!1;a===n.getLineMaxColumn(r)&&r<n.getLineCount()&&(l=!0,r+=1,a=1);var u=e._findNextWordOnLine(t,n,new s.Position(r,a));if(2===o)u&&2===u.wordType&&u.end-u.start==1&&0===u.nextCharClass&&(u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1))),a=u?u.end+1:n.getLineMaxColumn(r);else if(3===o){for(l&&(a=0);u&&(2===u.wordType||u.start+1<=a);)u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1));a=u?u.start+1:n.getLineMaxColumn(r)}else u&&!l&&a>=u.start+1&&(u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1))),a=u?u.start+1:n.getLineMaxColumn(r);return new s.Position(r,a)},e._moveWordPartRight=function(e,t){var i=t.lineNumber,o=e.getLineMaxColumn(i)\n;if(t.column===o)return i<e.getLineCount()?new s.Position(i+1,1):t;for(var r=e.getLineContent(i),a=t.column+1;a<o;a++){var l=r.charCodeAt(a-2),u=r.charCodeAt(a-1);if(95===l&&95!==u)return new s.Position(i,a);if(n.isLowerAsciiLetter(l)&&n.isUpperAsciiLetter(u))return new s.Position(i,a);if(n.isUpperAsciiLetter(l)&&n.isUpperAsciiLetter(u)&&a+1<o){var d=r.charCodeAt(a);if(n.isLowerAsciiLetter(d))return new s.Position(i,a)}}return new s.Position(i,o)},e._deleteWordLeftWhitespace=function(e,t){var i=e.getLineContent(t.lineNumber),o=t.column-2,r=n.lastNonWhitespaceIndex(i,o);return r+1<o?new a.Range(t.lineNumber,r+2,t.lineNumber,t.column):null},e.deleteWordLeft=function(t,n,i,o,r){if(!i.isEmpty())return i;var l=new s.Position(i.positionLineNumber,i.positionColumn),u=l.lineNumber,d=l.column;if(1===u&&1===d)return null;if(o){var c=this._deleteWordLeftWhitespace(n,l);if(c)return c}var h=e._findPreviousWordOnLine(t,n,l);return 0===r?h?d=h.start+1:d>1?d=1:(u--,\nd=n.getLineMaxColumn(u)):(h&&d<=h.end+1&&(h=e._findPreviousWordOnLine(t,n,new s.Position(u,h.start+1))),h?d=h.end+1:d>1?d=1:(u--,d=n.getLineMaxColumn(u))),new a.Range(u,d,l.lineNumber,l.column)},e._deleteWordPartLeft=function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),o=e._moveWordPartLeft(t,i);return new a.Range(i.lineNumber,i.column,o.lineNumber,o.column)},e._findFirstNonWhitespaceChar=function(e,t){for(var n=e.length,i=t;i<n;i++){var o=e.charAt(i);if(\" \"!==o&&\"\\t\"!==o)return i}return n},e._deleteWordRightWhitespace=function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-1,o=this._findFirstNonWhitespaceChar(n,i);return i+1<o?new a.Range(t.lineNumber,t.column,t.lineNumber,o+1):null},e.deleteWordRight=function(t,n,i,o,r){if(!i.isEmpty())return i;var l=new s.Position(i.positionLineNumber,i.positionColumn),u=l.lineNumber,d=l.column,c=n.getLineCount(),h=n.getLineMaxColumn(u);if(u===c&&d===h)return null;if(o){var p=this._deleteWordRightWhitespace(n,l);if(p)return p}\nvar g=e._findNextWordOnLine(t,n,l);return 2===r?g?d=g.end+1:d<h||u===c?d=h:(u++,d=(g=e._findNextWordOnLine(t,n,new s.Position(u,1)))?g.start+1:n.getLineMaxColumn(u)):(g&&d>=g.start+1&&(g=e._findNextWordOnLine(t,n,new s.Position(u,g.end+1))),g?d=g.start+1:d<h||u===c?d=h:(u++,d=(g=e._findNextWordOnLine(t,n,new s.Position(u,1)))?g.start+1:n.getLineMaxColumn(u))),new a.Range(u,d,l.lineNumber,l.column)},e._deleteWordPartRight=function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),o=e._moveWordPartRight(t,i);return new a.Range(i.lineNumber,i.column,o.lineNumber,o.column)},e.word=function(t,n,r,l,u){var d,c,h,p,g=o.getMapForWordSeparators(t.wordSeparators),f=e._findPreviousWordOnLine(g,n,u),m=e._findNextWordOnLine(g,n,u);if(!l)return f&&1===f.wordType&&f.start<=u.column-1&&u.column-1<=f.end?(d=f.start+1,c=f.end+1):m&&1===m.wordType&&m.start<=u.column-1&&u.column-1<=m.end?(d=m.start+1,c=m.end+1):(d=f?f.end+1:1,c=m?m.start+1:n.getLineMaxColumn(u.lineNumber)),\nnew i.SingleCursorState(new a.Range(u.lineNumber,d,u.lineNumber,c),0,new s.Position(u.lineNumber,c),0);f&&1===f.wordType&&f.start<u.column-1&&u.column-1<f.end?(h=f.start+1,p=f.end+1):m&&1===m.wordType&&m.start<u.column-1&&u.column-1<m.end?(h=m.start+1,p=m.end+1):(h=u.column,p=u.column);var v,_=u.lineNumber;if(r.selectionStart.containsPosition(u))v=r.selectionStart.endColumn;else if(u.isBeforeOrEqual(r.selectionStart.getStartPosition())){v=h;var y=new s.Position(_,v);r.selectionStart.containsPosition(y)&&(v=r.selectionStart.endColumn)}else{v=p;y=new s.Position(_,v);r.selectionStart.containsPosition(y)&&(v=r.selectionStart.startColumn)}return r.move(!0,_,v,0)},e}();t.WordOperations=l;var u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.deleteWordPartLeft=function(e,t,n,i){var o=d([l.deleteWordLeft(e,t,n,i,0),l.deleteWordLeft(e,t,n,i,2),l._deleteWordPartLeft(t,n)]);return o.sort(a.Range.compareRangesUsingEnds),o[2]},t.deleteWordPartRight=function(e,t,n,i){\nvar o=d([l.deleteWordRight(e,t,n,i,0),l.deleteWordRight(e,t,n,i,2),l._deleteWordPartRight(t,n)]);return o.sort(a.Range.compareRangesUsingStarts),o[0]},t.moveWordPartLeft=function(e,t,n){var i=d([l.moveWordLeft(e,t,n,0),l.moveWordLeft(e,t,n,2),l._moveWordPartLeft(t,n)]);return i.sort(s.Position.compare),i[2]},t.moveWordPartRight=function(e,t,n){var i=d([l.moveWordRight(e,t,n,0),l.moveWordRight(e,t,n,2),l._moveWordPartRight(t,n)]);return i.sort(s.Position.compare),i[0]},t}(l);function d(e){return e.filter((function(e){return Boolean(e)}))}t.WordPartOperations=u})),define(n[213],i([0,1,21,40,158,160,13,3]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(){}return e.addCursorDown=function(e,t,n){for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a];r[s++]=new i.CursorState(u.modelState,u.viewState),\nr[s++]=n?i.CursorState.fromModelState(o.MoveOperations.translateDown(e.config,e.model,u.modelState)):i.CursorState.fromViewState(o.MoveOperations.translateDown(e.config,e.viewModel,u.viewState))}return r},e.addCursorUp=function(e,t,n){for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a];r[s++]=new i.CursorState(u.modelState,u.viewState),r[s++]=n?i.CursorState.fromModelState(o.MoveOperations.translateUp(e.config,e.model,u.modelState)):i.CursorState.fromViewState(o.MoveOperations.translateUp(e.config,e.viewModel,u.viewState))}return r},e.moveToBeginningOfLine=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o];i[o]=this._moveToLineStart(e,s,n)}return i},e._moveToLineStart=function(e,t,n){var i=t.viewState.position.column,o=i===t.modelState.position.column,r=t.viewState.position.lineNumber,s=e.viewModel.getLineFirstNonWhitespaceColumn(r);return o||i===s?this._moveToLineStartByModel(e,t,n):this._moveToLineStartByView(e,t,n)},e._moveToLineStartByView=function(e,t,n){\nreturn i.CursorState.fromViewState(o.MoveOperations.moveToBeginningOfLine(e.config,e.viewModel,t.viewState,n))},e._moveToLineStartByModel=function(e,t,n){return i.CursorState.fromModelState(o.MoveOperations.moveToBeginningOfLine(e.config,e.model,t.modelState,n))},e.moveToEndOfLine=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o];i[o]=this._moveToLineEnd(e,s,n)}return i},e._moveToLineEnd=function(e,t,n){var i=t.viewState.position,o=e.viewModel.getLineMaxColumn(i.lineNumber),r=i.column===o,s=t.modelState.position,a=e.model.getLineMaxColumn(s.lineNumber),l=o-i.column==a-s.column;return r||l?this._moveToLineEndByModel(e,t,n):this._moveToLineEndByView(e,t,n)},e._moveToLineEndByView=function(e,t,n){return i.CursorState.fromViewState(o.MoveOperations.moveToEndOfLine(e.config,e.viewModel,t.viewState,n))},e._moveToLineEndByModel=function(e,t,n){return i.CursorState.fromModelState(o.MoveOperations.moveToEndOfLine(e.config,e.model,t.modelState,n))},e.expandLineSelection=function(e,t){\nfor(var n=[],o=0,r=t.length;o<r;o++){var l=t[o],u=l.modelState.selection.startLineNumber,d=e.model.getLineCount(),c=l.modelState.selection.endLineNumber,h=void 0;c===d?h=e.model.getLineMaxColumn(d):(c++,h=1),n[o]=i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(u,1,u,1),0,new s.Position(c,h),0))}return n},e.moveToBeginningOfBuffer=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s];r[s]=i.CursorState.fromModelState(o.MoveOperations.moveToBeginningOfBuffer(e.config,e.model,l.modelState,n))}return r},e.moveToEndOfBuffer=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s];r[s]=i.CursorState.fromModelState(o.MoveOperations.moveToEndOfBuffer(e.config,e.model,l.modelState,n))}return r},e.selectAll=function(e,t){var n=e.model.getLineCount(),o=e.model.getLineMaxColumn(n);return i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(1,1,1,1),0,new s.Position(n,o),0))},e.line=function(e,t,n,o,r){\nvar l=e.model.validatePosition(o),u=r?e.validateViewPosition(new s.Position(r.lineNumber,r.column),l):e.convertModelPositionToViewPosition(l);if(!n||!t.modelState.hasSelection()){var d=e.model.getLineCount(),c=l.lineNumber+1,h=1;return c>d&&(c=d,h=e.model.getLineMaxColumn(c)),i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(l.lineNumber,1,c,h),0,new s.Position(c,h),0))}var p=t.modelState.selectionStart.getStartPosition().lineNumber;if(l.lineNumber<p)return i.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),u.lineNumber,1,0));if(l.lineNumber>p){d=e.viewModel.getLineCount();var g=u.lineNumber+1,f=1;return g>d&&(g=d,f=e.viewModel.getLineMaxColumn(g)),i.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),g,f,0))}var m=t.modelState.selectionStart.getEndPosition();return i.CursorState.fromModelState(t.modelState.move(t.modelState.hasSelection(),m.lineNumber,m.column,0))},e.word=function(e,t,n,o){var s=e.model.validatePosition(o)\n;return i.CursorState.fromModelState(r.WordOperations.word(e.config,e.model,t.modelState,n,s))},e.cancelSelection=function(e,t){if(!t.modelState.hasSelection())return new i.CursorState(t.modelState,t.viewState);var n=t.viewState.position.lineNumber,o=t.viewState.position.column;return i.CursorState.fromViewState(new i.SingleCursorState(new a.Range(n,o,n,o),0,new s.Position(n,o),0))},e.moveTo=function(e,t,n,o,r){var a=e.model.validatePosition(o),l=r?e.validateViewPosition(new s.Position(r.lineNumber,r.column),a):e.convertModelPositionToViewPosition(a);return i.CursorState.fromViewState(t.viewState.move(n,l.lineNumber,l.column,0))},e.move=function(e,t,n){var i=n.select,o=n.value;switch(n.direction){case 0:return 4===n.unit?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,o);case 1:return 4===n.unit?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,o);case 2:return 2===n.unit?this._moveUpByViewLines(e,t,i,o):this._moveUpByModelLines(e,t,i,o);case 3:\nreturn 2===n.unit?this._moveDownByViewLines(e,t,i,o):this._moveDownByModelLines(e,t,i,o);case 4:return this._moveToViewMinColumn(e,t,i);case 5:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 6:return this._moveToViewCenterColumn(e,t,i);case 7:return this._moveToViewMaxColumn(e,t,i);case 8:return this._moveToViewLastNonWhitespaceColumn(e,t,i);case 9:var r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._firstLineNumberInRange(e.model,s,o),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 11:r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._lastLineNumberInRange(e.model,s,o),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 10:r=t[0],s=e.getCompletelyVisibleModelRange(),a=Math.round((s.startLineNumber+s.endLineNumber)/2),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 12:for(var u=e.getCompletelyVisibleViewRange(),d=[],c=0,h=t.length;c<h;c++){r=t[c]\n;d[c]=this.findPositionInViewportIfOutside(e,r,u,i)}return d}return null},e.findPositionInViewportIfOutside=function(e,t,n,o){var r=t.viewState.position.lineNumber;if(n.startLineNumber<=r&&r<=n.endLineNumber-1)return new i.CursorState(t.modelState,t.viewState);r>n.endLineNumber-1&&(r=n.endLineNumber-1),r<n.startLineNumber&&(r=n.startLineNumber);var s=e.viewModel.getLineFirstNonWhitespaceColumn(r);return this._moveToViewPosition(e,t,o,r,s)},e._firstLineNumberInRange=function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.min(t.endLineNumber,i+n-1)},e._lastLineNumberInRange=function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.max(i,t.endLineNumber-n+1)},e._moveLeft=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a],d=o.MoveOperations.moveLeft(e.config,e.viewModel,u.viewState,n,r)\n;if(1===r&&d.position.lineNumber!==u.viewState.position.lineNumber)e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(d.position).lineNumber===u.modelState.position.lineNumber&&(d=o.MoveOperations.moveLeft(e.config,e.viewModel,d,n,1));s[a]=i.CursorState.fromViewState(d)}return s},e._moveHalfLineLeft=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s],u=l.viewState.position.lineNumber,d=Math.round(e.viewModel.getLineContent(u).length/2);r[s]=i.CursorState.fromViewState(o.MoveOperations.moveLeft(e.config,e.viewModel,l.viewState,n,d))}return r},e._moveRight=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a],d=o.MoveOperations.moveRight(e.config,e.viewModel,u.viewState,n,r);if(1===r&&d.position.lineNumber!==u.viewState.position.lineNumber)e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(d.position).lineNumber===u.modelState.position.lineNumber&&(d=o.MoveOperations.moveRight(e.config,e.viewModel,d,n,1));s[a]=i.CursorState.fromViewState(d)}return s},\ne._moveHalfLineRight=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s],u=l.viewState.position.lineNumber,d=Math.round(e.viewModel.getLineContent(u).length/2);r[s]=i.CursorState.fromViewState(o.MoveOperations.moveRight(e.config,e.viewModel,l.viewState,n,d))}return r},e._moveDownByViewLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromViewState(o.MoveOperations.moveDown(e.config,e.viewModel,u.viewState,n,r))}return s},e._moveDownByModelLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromModelState(o.MoveOperations.moveDown(e.config,e.model,u.modelState,n,r))}return s},e._moveUpByViewLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromViewState(o.MoveOperations.moveUp(e.config,e.viewModel,u.viewState,n,r))}return s},e._moveUpByModelLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a]\n;s[a]=i.CursorState.fromModelState(o.MoveOperations.moveUp(e.config,e.model,u.modelState,n,r))}return s},e._moveToViewPosition=function(e,t,n,o,r){return i.CursorState.fromViewState(t.viewState.move(n,o,r,0))},e._moveToModelPosition=function(e,t,n,o,r){return i.CursorState.fromModelState(t.modelState.move(n,o,r,0))},e._moveToViewMinColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineMinColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewFirstNonWhitespaceColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineFirstNonWhitespaceColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewCenterColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=Math.round((e.viewModel.getLineMaxColumn(a)+e.viewModel.getLineMinColumn(a))/2);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},\ne._moveToViewMaxColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineMaxColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewLastNonWhitespaceColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineLastNonWhitespaceColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e}();t.CursorMoveCommands=l,function(e){e.description={description:\"Move cursor to a logical position in the view\",args:[{name:\"Cursor move argument object\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory logical position value providing where to move the cursor.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'left', 'right', 'up', 'down'\\n\\t\\t\\t\\t\\t\\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\\n\\t\\t\\t\\t\\t\\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\\n\\t\\t\\t\\t\\t\\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'character', 'halfLine'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'select': If 'true' makes the selection. Default is 'false'.\\n\\t\\t\\t\\t\",constraint:function(e){if(!n.isObject(e))return!1;var t=e\n;return!!n.isString(t.to)&&(!(!n.isUndefined(t.select)&&!n.isBoolean(t.select))&&(!(!n.isUndefined(t.by)&&!n.isString(t.by))&&!(!n.isUndefined(t.value)&&!n.isNumber(t.value))))},schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"left\",\"right\",\"up\",\"down\",\"wrappedLineStart\",\"wrappedLineEnd\",\"wrappedLineColumnCenter\",\"wrappedLineFirstNonWhitespaceCharacter\",\"wrappedLineLastNonWhitespaceCharacter\",\"viewPortTop\",\"viewPortCenter\",\"viewPortBottom\",\"viewPortIfOutside\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"character\",\"halfLine\"]},value:{type:\"number\",default:1},select:{type:\"boolean\",default:!1}}}}]},e.RawDirection={Left:\"left\",Right:\"right\",Up:\"up\",Down:\"down\",WrappedLineStart:\"wrappedLineStart\",WrappedLineFirstNonWhitespaceCharacter:\"wrappedLineFirstNonWhitespaceCharacter\",WrappedLineColumnCenter:\"wrappedLineColumnCenter\",WrappedLineEnd:\"wrappedLineEnd\",WrappedLineLastNonWhitespaceCharacter:\"wrappedLineLastNonWhitespaceCharacter\",ViewPortTop:\"viewPortTop\",\nViewPortCenter:\"viewPortCenter\",ViewPortBottom:\"viewPortBottom\",ViewPortIfOutside:\"viewPortIfOutside\"},e.RawUnit={Line:\"line\",WrappedLine:\"wrappedLine\",Character:\"character\",HalfLine:\"halfLine\"},e.parse=function(t){if(!t.to)return null;var n;switch(t.to){case e.RawDirection.Left:n=0;break;case e.RawDirection.Right:n=1;break;case e.RawDirection.Up:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.WrappedLineStart:n=4;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=5;break;case e.RawDirection.WrappedLineColumnCenter:n=6;break;case e.RawDirection.WrappedLineEnd:n=7;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=8;break;case e.RawDirection.ViewPortTop:n=9;break;case e.RawDirection.ViewPortBottom:n=11;break;case e.RawDirection.ViewPortCenter:n=10;break;case e.RawDirection.ViewPortIfOutside:n=12;break;default:return null}var i=0;switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Character:i=3;break\n;case e.RawUnit.HalfLine:i=4}return{direction:n,unit:i,select:!!t.select,value:t.value||1}}}(t.CursorMove||(t.CursorMove={}))})),define(n[484],i([0,1,40,13,3,22]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new n.SingleCursorState(new o.Range(1,1,1,1),0,new i.Position(1,1),0),new n.SingleCursorState(new o.Range(1,1,1,1),0,new i.Position(1,1),0))}return e.prototype.dispose=function(e){this._removeTrackedRange(e)},e.prototype.startTrackingSelection=function(e){this._trackSelection=!0,this._updateTrackedRange(e)},e.prototype.stopTrackingSelection=function(e){this._trackSelection=!1,this._removeTrackedRange(e)},e.prototype._updateTrackedRange=function(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))},e.prototype._removeTrackedRange=function(e){\nthis._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)},e.prototype.asCursorState=function(){return new n.CursorState(this.modelState,this.viewState)},e.prototype.readSelectionFromMarkers=function(e){var t=e.model._getTrackedRange(this._selTrackedRange);return 0===this.modelState.selection.getDirection()?new r.Selection(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new r.Selection(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)},e.prototype.ensureValidState=function(e){this._setState(e,this.modelState,this.viewState)},e.prototype.setState=function(e,t,n){this._setState(e,t,n)},e.prototype._setState=function(e,t,r){if(t){l=e.model.validateRange(t.selectionStart);var s=t.selectionStart.equalsRange(l)?t.selectionStartLeftoverVisibleColumns:0,a=(u=e.model.validatePosition(t.position),t.position.equals(u)?t.leftoverVisibleColumns:0);t=new n.SingleCursorState(l,s,u,a)}else{if(!r)return\n;var l=e.model.validateRange(e.convertViewRangeToModelRange(r.selectionStart)),u=e.model.validatePosition(e.convertViewPositionToModelPosition(r.position.lineNumber,r.position.column));t=new n.SingleCursorState(l,r.selectionStartLeftoverVisibleColumns,u,r.leftoverVisibleColumns)}if(r){h=e.validateViewRange(r.selectionStart,t.selectionStart),p=e.validateViewPosition(r.position,t.position);r=new n.SingleCursorState(h,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}else{var d=e.convertModelPositionToViewPosition(new i.Position(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),c=e.convertModelPositionToViewPosition(new i.Position(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),h=new o.Range(d.lineNumber,d.column,c.lineNumber,c.column),p=e.convertModelPositionToViewPosition(t.position);r=new n.SingleCursorState(h,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=r,this._updateTrackedRange(e)},e}();t.OneCursor=s})),\ndefine(n[485],i([0,1,40,484,22]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e){this.context=e,this.primaryCursor=new i.OneCursor(e),this.secondaryCursors=[],this.lastAddedCursorIndex=0}return e.prototype.dispose=function(){this.primaryCursor.dispose(this.context),this.killSecondaryCursors()},e.prototype.startTrackingSelections=function(){this.primaryCursor.startTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].startTrackingSelection(this.context)},e.prototype.stopTrackingSelections=function(){this.primaryCursor.stopTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].stopTrackingSelection(this.context)},e.prototype.updateContext=function(e){this.context=e},e.prototype.ensureValidState=function(){this.primaryCursor.ensureValidState(this.context)\n;for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].ensureValidState(this.context)},e.prototype.readSelectionFromMarkers=function(){var e=[];e[0]=this.primaryCursor.readSelectionFromMarkers(this.context);for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].readSelectionFromMarkers(this.context);return e},e.prototype.getAll=function(){var e=[];e[0]=this.primaryCursor.asCursorState();for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].asCursorState();return e},e.prototype.getViewPositions=function(){var e=[];e[0]=this.primaryCursor.viewState.position;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.position;return e},e.prototype.getSelections=function(){var e=[];e[0]=this.primaryCursor.modelState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].modelState.selection;return e},e.prototype.getViewSelections=function(){var e=[]\n;e[0]=this.primaryCursor.viewState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.selection;return e},e.prototype.setSelections=function(e){this.setStates(n.CursorState.fromModelSelections(e))},e.prototype.getPrimaryCursor=function(){return this.primaryCursor.asCursorState()},e.prototype.setStates=function(e){null!==e&&(this.primaryCursor.setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))},e.prototype._setSecondaryStates=function(e){var t=this.secondaryCursors.length,n=e.length;if(t<n)for(var i=n-t,o=0;o<i;o++)this._addSecondaryCursor();else if(t>n){var r=t-n;for(o=0;o<r;o++)this._removeSecondaryCursor(this.secondaryCursors.length-1)}for(o=0;o<n;o++)this.secondaryCursors[o].setState(this.context,e[o].modelState,e[o].viewState)},e.prototype.killSecondaryCursors=function(){this._setSecondaryStates([])},e.prototype._addSecondaryCursor=function(){this.secondaryCursors.push(new i.OneCursor(this.context)),\nthis.lastAddedCursorIndex=this.secondaryCursors.length},e.prototype.getLastAddedCursorIndex=function(){return 0===this.secondaryCursors.length||0===this.lastAddedCursorIndex?0:this.lastAddedCursorIndex},e.prototype._removeSecondaryCursor=function(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)},e.prototype._getAll=function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t];return e},e.prototype.normalize=function(){if(0!==this.secondaryCursors.length){for(var e=this._getAll(),t=[],i=0,r=e.length;i<r;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort((function(e,t){return e.selection.startLineNumber===t.selection.startLineNumber?e.selection.startColumn-t.selection.startColumn:e.selection.startLineNumber-t.selection.startLineNumber}));for(var s=0;s<t.length-1;s++){var a=t[s],l=t[s+1],u=a.selection,d=l.selection\n;if(this.context.config.multiCursorMergeOverlapping){if(d.isEmpty()||u.isEmpty()?d.getStartPosition().isBeforeOrEqual(u.getEndPosition()):d.getStartPosition().isBefore(u.getEndPosition())){var c=a.index<l.index?s:s+1,h=a.index<l.index?s+1:s,p=t[h].index,g=t[c].index,f=t[h].selection,m=t[c].selection;if(!f.equalsSelection(m)){var v=f.plusRange(m),_=f.selectionStartLineNumber===f.startLineNumber&&f.selectionStartColumn===f.startColumn,y=m.selectionStartLineNumber===m.startLineNumber&&m.selectionStartColumn===m.startColumn,C=void 0;p===this.lastAddedCursorIndex?(C=_,this.lastAddedCursorIndex=g):C=y;var b=void 0;b=C?new o.Selection(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn):new o.Selection(v.endLineNumber,v.endColumn,v.startLineNumber,v.startColumn),t[c].selection=b;var S=n.CursorState.fromModelSelection(b);e[g].setState(this.context,S.modelState,S.viewState)}for(var w=0,E=t;w<E.length;w++){var L=E[w];L.index>p&&L.index--}e.splice(p,1),t.splice(h,1),this._removeSecondaryCursor(p-1),s--}}}}},e}()\n;t.CursorCollection=r})),define(n[486],i([0,1,10,4,5,485,40,212,159,3,22,68,81,2]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e,t,n,i,o,r){this.selections=e,this.modelVersionId=t,this.oldSelections=n,this.oldModelVersionId=i,this.source=o,this.reason=r};t.CursorStateChangedEvent=f;var m=function(){function e(e,t){this.modelVersionId=e.getVersionId(),this.cursorState=t.getAll()}return e.prototype.equals=function(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(var t=0,n=this.cursorState.length;t<n;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0},e}();t.CursorModelState=m;var v=function(){function e(e,t,n){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=n}return e.getAllAutoClosedCharacters=function(e){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n]\n;t=t.concat(o.getAutoClosedCharactersRanges())}return t},e.prototype.dispose=function(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])},e.prototype.getAutoClosedCharactersRanges=function(){for(var e=[],t=0;t<this._autoClosedCharactersDecorations.length;t++){var n=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);n&&e.push(n)}return e},e.prototype.isValid=function(e){for(var t=[],n=0;n<this._autoClosedEnclosingDecorations.length;n++){var i=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[n]);if(i&&(t.push(i),i.startLineNumber!==i.endLineNumber))return!1}t.sort(d.Range.compareRangesUsingStarts),e.sort(d.Range.compareRangesUsingStarts);for(n=0;n<e.length;n++){if(n>=t.length)return!1;if(!t[n].strictContainsRange(e[n]))return!1}return!0},e}(),_=function(e){function t(t,n,o){var r=e.call(this)||this\n;r._onDidReachMaxCursorCount=r._register(new i.Emitter),r.onDidReachMaxCursorCount=r._onDidReachMaxCursorCount.event,r._onDidAttemptReadOnlyEdit=r._register(new i.Emitter),r.onDidAttemptReadOnlyEdit=r._onDidAttemptReadOnlyEdit.event,r._onDidChange=r._register(new i.Emitter),r.onDidChange=r._onDidChange.event,r._configuration=t,r._model=n,r._knownModelVersionId=r._model.getVersionId(),r._viewModel=o,r.context=new a.CursorContext(r._configuration,r._model,r._viewModel),r._cursors=new s.CursorCollection(r.context),r._isHandling=!1,r._isDoingComposition=!1,r._selectionsWhenCompositionStarted=null,r._columnSelectData=null,r._autoClosedActions=[],r._prevEditOperationType=0,r._register(r._model.onDidChangeRawContent((function(e){if(r._knownModelVersionId=e.versionId,!r._isHandling){var t=e.containsEvent(1);r._onModelContentChanged(t)}}))),r._register(o.addEventListener((function(e){(function(e){for(var t=0,n=e.length;t<n;t++)if(8===e[t].type)return!0;return!1\n})(e)&&r._knownModelVersionId===r._model.getVersionId()&&r.setStates(\"viewModel\",0,r.getAll())})));var l=function(){r.context=new a.CursorContext(r._configuration,r._model,r._viewModel),r._cursors.updateContext(r.context)};return r._register(r._model.onDidChangeLanguage((function(e){l()}))),r._register(r._model.onDidChangeLanguageConfiguration((function(){l()}))),r._register(r._model.onDidChangeOptions((function(){l()}))),r._register(r._configuration.onDidChange((function(e){a.CursorConfiguration.shouldRecreate(e)&&l()}))),r}return r(t,e),t.prototype.dispose=function(){this._cursors.dispose(),this._autoClosedActions=g.dispose(this._autoClosedActions),e.prototype.dispose.call(this)},t.prototype._validateAutoClosedActions=function(){if(this._autoClosedActions.length>0)for(var e=this._cursors.getSelections(),t=0;t<this._autoClosedActions.length;t++){var n=this._autoClosedActions[t];n.isValid(e)||(n.dispose(),this._autoClosedActions.splice(t,1),t--)}},t.prototype.getPrimaryCursor=function(){\nreturn this._cursors.getPrimaryCursor()},t.prototype.getLastAddedCursorIndex=function(){return this._cursors.getLastAddedCursorIndex()},t.prototype.getAll=function(){return this._cursors.getAll()},t.prototype.setStates=function(e,n,i){null!==i&&i.length>t.MAX_CURSOR_COUNT&&(i=i.slice(0,t.MAX_CURSOR_COUNT),this._onDidReachMaxCursorCount.fire(void 0));var o=new m(this._model,this);this._cursors.setStates(i),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,n,o)},t.prototype.setColumnSelectData=function(e){this._columnSelectData=e},t.prototype.reveal=function(e,t,n,i){this._revealRange(e,n,0,t,i)},t.prototype.revealRange=function(e,t,n,i,o){this.emitCursorRevealRange(e,n,i,t,o)},t.prototype.scrollTo=function(e){this._viewModel.viewLayout.setScrollPositionSmooth({scrollTop:e})},t.prototype.saveState=function(){for(var e=[],t=this._cursors.getSelections(),n=0,i=t.length;n<i;n++){var o=t[n];e.push({inSelectionMode:!o.isEmpty(),\nselectionStart:{lineNumber:o.selectionStartLineNumber,column:o.selectionStartColumn},position:{lineNumber:o.positionLineNumber,column:o.positionColumn}})}return e},t.prototype.restoreState=function(e){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n],r=1,s=1;o.position&&o.position.lineNumber&&(r=o.position.lineNumber),o.position&&o.position.column&&(s=o.position.column);var l=r,u=s;o.selectionStart&&o.selectionStart.lineNumber&&(l=o.selectionStart.lineNumber),o.selectionStart&&o.selectionStart.column&&(u=o.selectionStart.column),t.push({selectionStartLineNumber:l,selectionStartColumn:u,positionLineNumber:r,positionColumn:s})}this.setStates(\"restoreState\",0,a.CursorState.fromModelSelections(t)),this.reveal(\"restoreState\",!0,0,1)},t.prototype._onModelContentChanged=function(e){if(this._prevEditOperationType=0,e)this._cursors.dispose(),this._cursors=new s.CursorCollection(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(\"model\",1,null);else{\nvar t=this._cursors.readSelectionFromMarkers();this.setStates(\"modelChange\",2,a.CursorState.fromModelSelections(t))}},t.prototype.getSelection=function(){return this._cursors.getPrimaryCursor().modelState.selection},t.prototype.getColumnSelectData=function(){if(this._columnSelectData)return this._columnSelectData;var e=this._cursors.getPrimaryCursor().viewState.selectionStart.getStartPosition(),t=e.lineNumber,n=a.CursorColumns.visibleColumnFromColumn2(this.context.config,this.context.viewModel,e);return{isReal:!1,fromViewLineNumber:t,fromViewVisualColumn:n,toViewLineNumber:t,toViewVisualColumn:n}},t.prototype.getSelections=function(){return this._cursors.getSelections()},t.prototype.getViewSelections=function(){return this._cursors.getViewSelections()},t.prototype.getPosition=function(){return this._cursors.getPrimaryCursor().modelState.position},t.prototype.setSelections=function(e,t){this.setStates(e,0,a.CursorState.fromModelSelections(t))},t.prototype.getPrevEditOperationType=function(){\nreturn this._prevEditOperationType},t.prototype.setPrevEditOperationType=function(e){this._prevEditOperationType=e},t.prototype._pushAutoClosedAction=function(e,t){for(var n=[],i=[],o=0,r=e.length;o<r;o++)n.push({range:e[o],options:{inlineClassName:\"auto-closed-character\",stickiness:1}}),i.push({range:t[o],options:{stickiness:1}});var s=this._model.deltaDecorations([],n),a=this._model.deltaDecorations([],i);this._autoClosedActions.push(new v(this._model,s,a))},t.prototype._executeEditOperation=function(e){if(e){e.shouldPushStackElementBefore&&this._model.pushStackElement();var t=y.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);for(var n=[],i=[],o=0;o<e.commands.length;o++){var r=e.commands[o];r instanceof u.TypeWithAutoClosingCommand&&r.enclosingRange&&r.closeCharacterRange&&(n.push(r.closeCharacterRange),i.push(r.enclosingRange))}n.length>0&&this._pushAutoClosedAction(n,i),this._prevEditOperationType=e.type}\ne.shouldPushStackElementAfter&&this._model.pushStackElement()}},t.prototype._interpretCommandResult=function(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()},t.prototype._emitStateChangedIfNecessary=function(e,t,n){var i=new m(this._model,this);if(i.equals(n))return!1;var o=this._cursors.getSelections(),r=this._cursors.getViewSelections();try{this._beginEmit().emit(new p.ViewCursorStateChangedEvent(r,o))}finally{this._endEmit()}if(!n||n.cursorState.length!==i.cursorState.length||i.cursorState.some((function(e,t){return!e.modelState.equals(n.cursorState[t].modelState)}))){var s=n?n.cursorState.map((function(e){return e.modelState.selection})):null,a=n?n.modelVersionId:0;this._onDidChange.fire(new f(o,i.modelVersionId,s,a,e||\"keyboard\",t))}return!0},t.prototype._revealRange=function(e,t,n,i,o){var r=this._cursors.getViewPositions(),s=r[0]\n;if(1===t)for(var a=1;a<r.length;a++)r[a].isBefore(s)&&(s=r[a]);else if(2===t)for(a=1;a<r.length;a++)s.isBeforeOrEqual(r[a])&&(s=r[a]);else if(r.length>1)return;var l=new d.Range(s.lineNumber,s.column,s.lineNumber,s.column);this.emitCursorRevealRange(e,l,n,i,o)},t.prototype.emitCursorRevealRange=function(e,t,n,i,o){try{this._beginEmit().emit(new p.ViewRevealRangeRequestEvent(e,t,n,i,o))}finally{this._endEmit()}},t.prototype._findAutoClosingPairs=function(e){if(!e.length)return null;for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];if(!o.text||o.text.indexOf(\"\\n\")>=0)return null;var r=o.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);if(!r)return null;var s=r[1],a=this.context.config.autoClosingPairsClose2.get(s);if(!a||1!==a.length)return null;var l=a[0].open,u=o.text.length-r[2].length-1,d=o.text.lastIndexOf(l,u-1);if(-1===d)return null;t.push([d,u])}return t},t.prototype.executeEdits=function(e,t,n){var i=this,o=null;\"snippet\"===e&&(o=this._findAutoClosingPairs(t)),o&&(t[0]._isTracked=!0)\n;var r=[],s=[],a=this._model.pushEditOperations(this.getSelections(),t,(function(e){if(o)for(var t=0,a=o.length;t<a;t++){var l=o[t],u=l[0],c=l[1],h=e[t],p=h.range.startLineNumber,g=h.range.startColumn-1+u,f=h.range.startColumn-1+c;r.push(new d.Range(p,f+1,p,f+2)),s.push(new d.Range(p,g+1,p,f+2))}var m=n(e);return m&&(i._isHandling=!0),m}));a&&(this._isHandling=!1,this.setSelections(e,a)),r.length>0&&this._pushAutoClosedAction(r,s)},t.prototype.trigger=function(e,t,i){var o=h.Handler;if(t===o.CompositionStart)return this._isDoingComposition=!0,void(this._selectionsWhenCompositionStarted=this.getSelections().slice(0));if(t===o.CompositionEnd&&(this._isDoingComposition=!1),this._configuration.options.get(68))this._onDidAttemptReadOnlyEdit.fire(void 0);else{var r=new m(this._model,this),s=0;t!==o.Undo&&t!==o.Redo&&this._cursors.stopTrackingSelections(),this._cursors.ensureValidState(),this._isHandling=!0;try{switch(t){case o.Type:this._type(e,i.text);break;case o.ReplacePreviousChar:\nthis._replacePreviousChar(i.text,i.replaceCharCnt);break;case o.Paste:s=4,this._paste(i.text,i.pasteOnNewLine,i.multicursorText||[]);break;case o.Cut:this._cut();break;case o.Undo:s=5,this._interpretCommandResult(this._model.undo());break;case o.Redo:s=6,this._interpretCommandResult(this._model.redo());break;case o.ExecuteCommand:this._externalExecuteCommand(i);break;case o.ExecuteCommands:this._externalExecuteCommands(i);break;case o.CompositionEnd:this._interpretCompositionEnd(e)}}catch(e){n.onUnexpectedError(e)}this._isHandling=!1,t!==o.Undo&&t!==o.Redo&&this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,s,r)&&this._revealRange(e,0,0,!0,0)}},t.prototype._interpretCompositionEnd=function(e){if(!this._isDoingComposition&&\"keyboard\"===e){var t=v.getAllAutoClosedCharacters(this._autoClosedActions)\n;this._executeEditOperation(u.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this._selectionsWhenCompositionStarted,this.getSelections(),t)),this._selectionsWhenCompositionStarted=null}},t.prototype._type=function(e,t){if(this._isDoingComposition||\"keyboard\"!==e)this._executeEditOperation(u.TypeOperations.typeWithoutInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),t));else for(var n=t.length,i=0;i<n;){var r=o.nextCharLength(t,i),s=t.substr(i,r),a=v.getAllAutoClosedCharacters(this._autoClosedActions);this._executeEditOperation(u.TypeOperations.typeWithInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),a,s)),i+=r}},t.prototype._replacePreviousChar=function(e,t){this._executeEditOperation(u.TypeOperations.replacePreviousChar(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),e,t))},\nt.prototype._paste=function(e,t,n){this._executeEditOperation(u.TypeOperations.paste(this.context.config,this.context.model,this.getSelections(),e,t,n))},t.prototype._cut=function(){this._executeEditOperation(l.DeleteOperations.cut(this.context.config,this.context.model,this.getSelections()))},t.prototype._externalExecuteCommand=function(e){this._cursors.killSecondaryCursors(),this._executeEditOperation(new a.EditOperationResult(0,[e],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},t.prototype._externalExecuteCommands=function(e){this._executeEditOperation(new a.EditOperationResult(0,e,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},t.MAX_CURSOR_COUNT=1e4,t}(p.ViewEventEmitter);t.Cursor=_;var y=function(){function e(){}return e.executeCommands=function(e,t,n){for(var i={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(i,n),r=0,s=i.trackedRanges.length;r<s;r++)i.model._setTrackedRange(i.trackedRanges[r],null,0);return o\n},e._innerExecuteCommands=function(e,t){if(this._arrayIsEmpty(t))return null;var n=this._getEditOperations(e,t);if(0===n.operations.length)return null;var i=n.operations,o=this._getLoserCursorMap(i);if(o.hasOwnProperty(\"0\"))return console.warn(\"Ignoring commands\"),null;for(var r=[],s=0,a=i.length;s<a;s++)o.hasOwnProperty(i[s].identifier.major.toString())||r.push(i[s]);n.hadTrackedEditOperation&&r.length>0&&(r[0]._isTracked=!0);var l=e.model.pushEditOperations(e.selectionsBefore,r,(function(n){for(var i=[],o=0;o<e.selectionsBefore.length;o++)i[o]=[];for(var r=0,s=n;r<s.length;r++){var a=s[r];a.identifier&&i[a.identifier.major].push(a)}var l=function(e,t){return e.identifier.minor-t.identifier.minor},u=[],d=function(n){i[n].length>0?(i[n].sort(l),u[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getTrackedRange(e.trackedRanges[n])\n;return 0===e.trackedRangesDirection[n]?new c.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new c.Selection(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn)}})):u[n]=e.selectionsBefore[n]};for(o=0;o<e.selectionsBefore.length;o++)d(o);return u}));l||(l=e.selectionsBefore);var u=[];for(var d in o)o.hasOwnProperty(d)&&u.push(parseInt(d,10));u.sort((function(e,t){return t-e}));for(var h=0,p=u;h<p.length;h++){var g=p[h];l.splice(g,1)}return l},e._arrayIsEmpty=function(e){for(var t=0,n=e.length;t<n;t++)if(e[t])return!1;return!0},e._getEditOperations=function(e,t){for(var n=[],i=!1,o=0,r=t.length;o<r;o++){var s=t[o];if(s){var a=this._getEditOperationsFromCommand(e,o,s);n=n.concat(a.operations),i=i||a.hadTrackedEditOperation}}return{operations:n,hadTrackedEditOperation:i}},e._getEditOperationsFromCommand=function(e,t,i){var o=[],r=0,s=function(e,n,s){void 0===s&&(s=!1),e.isEmpty()&&\"\"===n||o.push({identifier:{major:t,minor:r++},range:e,text:n,forceMoveMarkers:s,\nisAutoWhitespaceEdit:i.insertsAutoWhitespace})},a=!1,l={addEditOperation:s,addTrackedEditOperation:function(e,t,n){a=!0,s(e,t,n)},trackSelection:function(t,n){var i;if(t.isEmpty())if(\"boolean\"==typeof n)i=n?2:3;else{var o=e.model.getLineMaxColumn(t.startLineNumber);i=t.startColumn===o?2:3}else i=1;var r=e.trackedRanges.length,s=e.model._setTrackedRange(null,t,i);return e.trackedRanges[r]=s,e.trackedRangesDirection[r]=t.getDirection(),r.toString()}};try{i.getEditOperations(e.model,l)}catch(e){return n.onUnexpectedError(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:o,hadTrackedEditOperation:a}},e._getLoserCursorMap=function(e){(e=e.slice(0)).sort((function(e,t){return-d.Range.compareRangesUsingEnds(e.range,t.range)}));for(var t={},n=1;n<e.length;n++){var i=e[n-1],o=e[n];if(i.range.getStartPosition().isBefore(o.range.getEndPosition())){var r=void 0;t[(r=i.identifier.major>o.identifier.major?i.identifier.major:o.identifier.major).toString()]=!0\n;for(var s=0;s<e.length;s++)e[s].identifier.major===r&&(e.splice(s,1),s<n&&n--,s--);n>0&&n--}}return t},e}()})),define(n[214],i([0,1,5,93,63]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r={getInitialState:function(){return o.NULL_STATE},tokenize2:function(e,t,n){return o.nullTokenize2(0,e,t,n)}};t.tokenizeToString=function(e,t){return void 0===t&&(t=r),function(e,t){for(var o='<div class=\"monaco-tokenized-source\">',r=e.split(/\\r\\n|\\r|\\n/),s=t.getInitialState(),a=0,l=r.length;a<l;a++){var u=r[a];a>0&&(o+=\"<br/>\");var d=t.tokenize2(u,s,0);i.LineTokens.convertToEndOffset(d.tokens,u.length);for(var c=new i.LineTokens(d.tokens,u).inflate(),h=0,p=0,g=c.getCount();p<g;p++){var f=c.getClassName(p),m=c.getEndOffset(p);o+='<span class=\"'+f+'\">'+n.escape(u.substring(h,m))+\"</span>\",h=m}s=d.endState}return o+=\"</div>\"}(e,t||r)},t.tokenizeLineToHTML=function(e,t,n,i,o,r,s){for(var a=\"<div>\",l=i,u=0,d=0,c=t.getCount();d<c;d++){var h=t.getEndOffset(d);if(!(h<=i)){\nfor(var p=\"\";l<h&&l<o;l++){var g=e.charCodeAt(l);switch(g){case 9:var f=r-(l+u)%r;for(u+=f-1;f>0;)p+=s?\"&#160;\":\" \",f--;break;case 60:p+=\"&lt;\";break;case 62:p+=\"&gt;\";break;case 38:p+=\"&amp;\";break;case 0:p+=\"&#00;\";break;case 65279:case 8232:p+=\"�\";break;case 13:p+=\"&#8203\";break;case 32:p+=s?\"&#160;\":\" \";break;default:p+=String.fromCharCode(g)}}if(a+='<span style=\"'+t.getInlineStyle(d,n)+'\">'+p+\"</span>\",h>o||l>=o)break}}return a+=\"</div>\"}})),define(n[84],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITextModelService=n.createDecorator(\"textModelService\")})),define(n[114],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITextResourceConfigurationService=n.createDecorator(\"textResourceConfigurationService\"),t.ITextResourcePropertiesService=n.createDecorator(\"textResourcePropertiesService\")})),define(n[215],i([0,1,4,339,17]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var r=function(){function e(){var e=this;this._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),o.TokenizationRegistry.onDidChange((function(t){t.changedColorMap&&e._updateColorMap()}))}return e.getInstance=function(){return this._INSTANCE||(this._INSTANCE=new e),this._INSTANCE},e.prototype._updateColorMap=function(){var e=o.TokenizationRegistry.getColorMap();if(!e)return this._colors=[i.RGBA8.Empty],void(this._backgroundIsLight=!0);this._colors=[i.RGBA8.Empty];for(var t=1;t<e.length;t++){var n=e[t].rgba;this._colors[t]=new i.RGBA8(n.r,n.g,n.b,Math.round(255*n.a))}var r=e[2].getRelativeLuminance();this._backgroundIsLight=r>=.5,this._onDidChange.fire(void 0)},e.prototype.getColor=function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]},e.prototype.backgroundIsLight=function(){return this._backgroundIsLight},e._INSTANCE=null,e}();t.MinimapTokensColorTracker=r})),define(n[161],i([0,1,19,13,3,30,81,194,69]),(function(e,t,n,i,o,r,s,a,l){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e,t){this.outputLineIndex=e,this.outputOffset=t};t.OutputPosition=u;var d=function(){function e(e,t,n){this.breakOffsets=e,this.breakOffsetsVisibleColumn=t,this.wrappedTextIndentLength=n}return e.getInputOffsetOfOutputPosition=function(e,t,n){return 0===t?n:e[t-1]+n},e.getOutputPositionOfInputOffset=function(e,t){for(var n=0,i=e.length-1,o=0,r=0;n<=i;){var s=e[o=n+(i-n)/2|0];if(t<(r=o>0?e[o-1]:0))i=o-1;else{if(!(t>=s))break;n=o+1}}return new u(o,t-r)},e}();t.LineBreakData=d;var c=function(){function e(e){this._lines=e}return e.prototype.convertViewPositionToModelPosition=function(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)},e.prototype.convertViewRangeToModelRange=function(e){return this._lines.convertViewRangeToModelRange(e)},e.prototype.validateViewPosition=function(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)},e.prototype.validateViewRange=function(e,t){\nreturn this._lines.validateViewRange(e,t)},e.prototype.convertModelPositionToViewPosition=function(e){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column)},e.prototype.convertModelRangeToViewRange=function(e){return this._lines.convertModelRangeToViewRange(e)},e.prototype.modelPositionIsVisible=function(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)},e}();t.CoordinatesConverter=c;var h=function(){function e(e){this._counts=e,this._isValid=!1,this._validEndIndex=-1,this._modelToView=[],this._viewToModel=[]}return e.prototype._invalidate=function(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)},e.prototype._ensureValid=function(){if(!this._isValid){for(var e=this._validEndIndex+1,t=this._counts.length;e<t;e++){var n=this._counts[e],i=e>0?this._modelToView[e-1]:0;this._modelToView[e]=i+n;for(var o=0;o<n;o++)this._viewToModel[i+o]=e}this._modelToView.length=this._counts.length,\nthis._viewToModel.length=this._modelToView[this._modelToView.length-1],this._isValid=!0,this._validEndIndex=this._counts.length-1}},e.prototype.changeValue=function(e,t){this._counts[e]!==t&&(this._counts[e]=t,this._invalidate(e))},e.prototype.removeValues=function(e,t){this._counts.splice(e,t),this._invalidate(e)},e.prototype.insertValues=function(e,t){this._counts=n.arrayInsert(this._counts,e,t),this._invalidate(e)},e.prototype.getTotalValue=function(){return this._ensureValid(),this._viewToModel.length},e.prototype.getAccumulatedValue=function(e){return this._ensureValid(),this._modelToView[e]},e.prototype.getIndexOf=function(e){this._ensureValid();var t=this._viewToModel[e],n=t>0?this._modelToView[t-1]:0;return new a.PrefixSumIndexOfResult(t,e-n)},e}(),p=function(){function e(e,t,n,i,o,r,s,a){this.model=e,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=t,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=i,this.tabSize=o,this.wrappingStrategy=r,this.wrappingColumn=s,\nthis.wrappingIndent=a,this._constructLines(!0,null)}return e.prototype.dispose=function(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])},e.prototype.createCoordinatesConverter=function(){return new c(this)},e.prototype._constructLines=function(e,t){var n=this;this.lines=[],e&&(this.hiddenAreasIds=[]);for(var i=this.model.getLinesContent(),r=i.length,s=this.createLineBreaksComputer(),a=0;a<r;a++)s.addRequest(i[a],t?t[a]:null);var l=s.finalize(),u=[],d=this.hiddenAreasIds.map((function(e){return n.model.getDecorationRange(e)})).sort(o.Range.compareRangesUsingStarts),c=1,p=0,g=-1,f=g+1<d.length?p+1:r+2;for(a=0;a<r;a++){var m=a+1;m===f&&(c=d[++g].startLineNumber,p=d[g].endLineNumber,f=g+1<d.length?p+1:r+2);var v=m>=c&&m<=p,_=C(l[a],!v);u[a]=_.getViewLineCount(),this.lines[a]=_}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new h(u)},e.prototype.getHiddenAreas=function(){var e=this;return this.hiddenAreasIds.map((function(t){return e.model.getDecorationRange(t)\n}))},e.prototype._reduceRanges=function(e){var t=this;if(0===e.length)return[];for(var n=e.map((function(e){return t.model.validateRange(e)})).sort(o.Range.compareRangesUsingStarts),i=[],r=n[0].startLineNumber,s=n[0].endLineNumber,a=1,l=n.length;a<l;a++){var u=n[a];u.startLineNumber>s+1?(i.push(new o.Range(r,1,s,1)),r=u.startLineNumber,s=u.endLineNumber):u.endLineNumber>s&&(s=u.endLineNumber)}return i.push(new o.Range(r,1,s,1)),i},e.prototype.setHiddenAreas=function(e){var t=this,n=this._reduceRanges(e),i=this.hiddenAreasIds.map((function(e){return t.model.getDecorationRange(e)})).sort(o.Range.compareRangesUsingStarts);if(n.length===i.length){for(var s=!1,a=0;a<n.length;a++)if(!n[a].equalsRange(i[a])){s=!0;break}if(!s)return!1}for(var l=[],u=0,d=n;u<d.length;u++){var c=d[u];l.push({range:c,options:r.ModelDecorationOptions.EMPTY})}this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,l);var h=n,p=1,g=0,f=-1,m=f+1<h.length?g+1:this.lines.length+2,v=!1;for(a=0;a<this.lines.length;a++){var _=a+1\n;_===m&&(p=h[++f].startLineNumber,g=h[f].endLineNumber,m=f+1<h.length?g+1:this.lines.length+2);var y=!1;if(_>=p&&_<=g?this.lines[a].isVisible()&&(this.lines[a]=this.lines[a].setVisible(!1),y=!0):(v=!0,this.lines[a].isVisible()||(this.lines[a]=this.lines[a].setVisible(!0),y=!0)),y){var C=this.lines[a].getViewLineCount();this.prefixSumComputer.changeValue(a,C)}}return v||this.setHiddenAreas([]),!0},e.prototype.modelPositionIsVisible=function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()},e.prototype.setTabSize=function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)},e.prototype.setWrappingSettings=function(e,t,n,i){var o=this.fontInfo.equals(e),r=this.wrappingStrategy===t,s=this.wrappingColumn===n,a=this.wrappingIndent===i;if(o&&r&&s&&a)return!1;var l=o&&r&&!s&&a;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=n,this.wrappingIndent=i;var u=null;if(l){u=[];for(var d=0,c=this.lines.length;d<c;d++)u[d]=this.lines[d].getLineBreakData()}\nreturn this._constructLines(!1,u),!0},e.prototype.createLineBreaksComputer=function(){return(\"advanced\"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent)},e.prototype.onModelFlushed=function(){this._constructLines(!0,null)},e.prototype.onModelLinesDeleted=function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,o=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new s.ViewLinesDeletedEvent(i,o)},e.prototype.onModelLinesInserted=function(e,t,n,o){if(e<=this._validModelVersionId)return null;for(var r=this.getHiddenAreas(),a=!1,l=new i.Position(t,1),u=0,d=r;u<d.length;u++){if(d[u].containsPosition(l)){a=!0;break}}for(var c=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,h=0,p=[],g=[],f=0,m=o.length;f<m;f++){\nvar v=C(o[f],!a);p.push(v);var _=v.getViewLineCount();h+=_,g[f]=_}return this.lines=this.lines.slice(0,t-1).concat(p).concat(this.lines.slice(t-1)),this.prefixSumComputer.insertValues(t-1,g),new s.ViewLinesInsertedEvent(c,c+h-1)},e.prototype.onModelLineChanged=function(e,t,n){if(e<=this._validModelVersionId)return[!1,null,null,null];var i=t-1,o=this.lines[i].getViewLineCount(),r=C(n,this.lines[i].isVisible());this.lines[i]=r;var a=this.lines[i].getViewLineCount(),l=!1,u=0,d=-1,c=0,h=-1,p=0,g=-1;return o>a?(g=(p=(d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1)+1)+(o-a)-1,l=!0):o<a?(h=(c=(d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+o-1)+1)+(a-o)-1,l=!0):d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1,this.prefixSumComputer.changeValue(i,a),[l,u<=d?new s.ViewLinesChangedEvent(u,d):null,c<=h?new s.ViewLinesInsertedEvent(c,h):null,p<=g?new s.ViewLinesDeletedEvent(p,g):null]},e.prototype.acceptVersionId=function(e){this._validModelVersionId=e,\n1!==this.lines.length||this.lines[0].isVisible()||this.setHiddenAreas([])},e.prototype.getViewLineCount=function(){return this.prefixSumComputer.getTotalValue()},e.prototype._toValidViewLineNumber=function(e){if(e<1)return 1;var t=this.getViewLineCount();return e>t?t:0|e},e.prototype.getActiveIndentGuide=function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);var i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),r=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),s=this.model.getActiveIndentGuide(i.lineNumber,o.lineNumber,r.lineNumber),a=this.convertModelPositionToViewPosition(s.startLineNumber,1),l=this.convertModelPositionToViewPosition(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber));return{startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:s.indent}},e.prototype.getViewLinesIndentGuides=function(e,t){\ne=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),r=[],s=[],a=[],l=n.lineNumber-1,u=o.lineNumber-1,d=null,c=l;c<=u;c++){var h=this.lines[c];if(h.isVisible()){var p=h.getViewLineNumberOfModelPosition(0,c===l?n.column:1),g=h.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(c+1)),f=0;(S=g-p+1)>1&&1===h.getViewLineMinColumn(this.model,c+1,g)&&(f=0===p?1:2),s.push(S),a.push(f),null===d&&(d=new i.Position(c+1,0))}else null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,c)),d=null)}null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,o.lineNumber)),d=null);for(var m=t-e+1,v=new Array(m),_=0,y=0,C=r.length;y<C;y++){var b=r[y],S=Math.min(m-_,s[y]),w=void 0;w=2===(f=a[y])?0:1===f?1:S;for(var E=0;E<S;E++)E===w&&(b=0),v[_++]=b}return v},e.prototype.getViewLineContent=function(e){\ne=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineContent(this.model,n+1,i)},e.prototype.getViewLineLength=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineLength(this.model,n+1,i)},e.prototype.getViewLineMinColumn=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMinColumn(this.model,n+1,i)},e.prototype.getViewLineMaxColumn=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMaxColumn(this.model,n+1,i)},e.prototype.getViewLineData=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineData(this.model,n+1,i)},e.prototype.getViewLinesData=function(e,t,n){\ne=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var i=this.prefixSumComputer.getIndexOf(e-1),o=e,r=i.index,s=i.remainder,a=[],l=r,u=this.model.getLineCount();l<u;l++){var d=this.lines[l];if(d.isVisible()){var c=l===r?s:0,h=d.getViewLineCount()-c,p=!1;o+h>t&&(p=!0,h=t-o+1);var g=c+h;if(d.getViewLinesData(this.model,l+1,c,g,o-e,n,a),o+=h,p)break}}return a},e.prototype.validateViewPosition=function(e,t,n){e=this._toValidViewLineNumber(e);var o=this.prefixSumComputer.getIndexOf(e-1),r=o.index,s=o.remainder,a=this.lines[r],l=a.getViewLineMinColumn(this.model,r+1,s),u=a.getViewLineMaxColumn(this.model,r+1,s);t<l&&(t=l),t>u&&(t=u);var d=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new i.Position(r+1,d)).equals(n)?new i.Position(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)},e.prototype.validateViewRange=function(e,t){\nvar n=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),i=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new o.Range(n.lineNumber,n.column,i.lineNumber,i.column)},e.prototype.convertViewPositionToModelPosition=function(e,t){e=this._toValidViewLineNumber(e);var n=this.prefixSumComputer.getIndexOf(e-1),o=n.index,r=n.remainder,s=this.lines[o].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new i.Position(o+1,s))},e.prototype.convertViewRangeToModelRange=function(e){var t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),n=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new o.Range(t.lineNumber,t.column,n.lineNumber,n.column)},e.prototype.convertModelPositionToViewPosition=function(e,t){for(var n=this.model.validatePosition(new i.Position(e,t)),o=n.lineNumber,r=n.column,s=o-1,a=!1;s>0&&!this.lines[s].isVisible();)s--,a=!0\n;if(0===s&&!this.lines[s].isVisible())return new i.Position(1,1);var l=1+(0===s?0:this.prefixSumComputer.getAccumulatedValue(s-1));return a?this.lines[s].getViewPositionOfModelPosition(l,this.model.getLineMaxColumn(s+1)):this.lines[o-1].getViewPositionOfModelPosition(l,r)},e.prototype.convertModelRangeToViewRange=function(e){var t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn);return e.startLineNumber===e.endLineNumber&&t.lineNumber!==n.lineNumber&&n.column===this.getViewLineMinColumn(n.lineNumber)?new o.Range(t.lineNumber,t.column,n.lineNumber-1,this.getViewLineMaxColumn(n.lineNumber-1)):new o.Range(t.lineNumber,t.column,n.lineNumber,n.column)},e.prototype._getViewLineNumberForModelPosition=function(e,t){var n=e-1;if(this.lines[n].isVisible()){var i=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(i,t)}for(;n>0&&!this.lines[n].isVisible();)n--\n;if(0===n&&!this.lines[n].isVisible())return 1;var o=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(o,this.model.getLineMaxColumn(n+1))},e.prototype.getAllOverviewRulerDecorations=function(e,t,n){for(var i=this.model.getOverviewRulerDecorations(e,t),o=new w,r=0,s=i;r<s.length;r++){var a=s[r],l=a.options.overviewRuler,u=l?l.position:0;if(0!==u){var d=l.getColor(n),c=this._getViewLineNumberForModelPosition(a.range.startLineNumber,a.range.startColumn),h=this._getViewLineNumberForModelPosition(a.range.endLineNumber,a.range.endColumn);o.accept(d,c,h,u)}}return o.result},e.prototype.getDecorationsInRange=function(e,t,n){var r=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),s=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(s.lineNumber-r.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new o.Range(r.lineNumber,1,s.lineNumber,s.column),t,n)\n;for(var a=[],l=r.lineNumber-1,u=s.lineNumber-1,d=null,c=l;c<=u;c++){if(this.lines[c].isVisible())null===d&&(d=new i.Position(c+1,c===l?r.column:1));else if(null!==d){var h=this.model.getLineMaxColumn(c);a=a.concat(this.model.getDecorationsInRange(new o.Range(d.lineNumber,d.column,c,h),t,n)),d=null}}null!==d&&(a=a.concat(this.model.getDecorationsInRange(new o.Range(d.lineNumber,d.column,s.lineNumber,s.column),t,n)),d=null),a.sort((function(e,t){var n=o.Range.compareRangesUsingStarts(e.range,t.range);return 0===n?e.id<t.id?-1:e.id>t.id?1:0:n}));for(var p=[],g=0,f=null,m=0,v=a;m<v.length;m++){var _=v[m],y=_.id;f!==y&&(f=y,p[g++]=_)}return p},e}();t.SplitLinesCollection=p;var g=function(){function e(){}return e.prototype.isVisible=function(){return!0},e.prototype.setVisible=function(e){return e?this:f.INSTANCE},e.prototype.getLineBreakData=function(){return null},e.prototype.getViewLineCount=function(){return 1},e.prototype.getViewLineContent=function(e,t,n){return e.getLineContent(t)},\ne.prototype.getViewLineLength=function(e,t,n){return e.getLineLength(t)},e.prototype.getViewLineMinColumn=function(e,t,n){return e.getLineMinColumn(t)},e.prototype.getViewLineMaxColumn=function(e,t,n){return e.getLineMaxColumn(t)},e.prototype.getViewLineData=function(e,t,n){var i=e.getLineTokens(t),o=i.getLineContent();return new l.ViewLineData(o,!1,1,o.length+1,0,i.inflate())},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){r[o]?s[o]=this.getViewLineData(e,t,0):s[o]=null},e.prototype.getModelColumnOfViewPosition=function(e,t){return t},e.prototype.getViewPositionOfModelPosition=function(e,t){return new i.Position(e,t)},e.prototype.getViewLineNumberOfModelPosition=function(e,t){return e},e.INSTANCE=new e,e}(),f=function(){function e(){}return e.prototype.isVisible=function(){return!1},e.prototype.setVisible=function(e){return e?g.INSTANCE:this},e.prototype.getLineBreakData=function(){return null},e.prototype.getViewLineCount=function(){return 0},e.prototype.getViewLineContent=function(e,t,n){\nthrow new Error(\"Not supported\")},e.prototype.getViewLineLength=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineMinColumn=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineMaxColumn=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineData=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){throw new Error(\"Not supported\")},e.prototype.getModelColumnOfViewPosition=function(e,t){throw new Error(\"Not supported\")},e.prototype.getViewPositionOfModelPosition=function(e,t){throw new Error(\"Not supported\")},e.prototype.getViewLineNumberOfModelPosition=function(e,t){throw new Error(\"Not supported\")},e.INSTANCE=new e,e}(),m=function(){function e(e,t){this._lineBreakData=e,this._isVisible=t}return e.prototype.isVisible=function(){return this._isVisible},e.prototype.setVisible=function(e){return this._isVisible=e,this},e.prototype.getLineBreakData=function(){return this._lineBreakData},\ne.prototype.getViewLineCount=function(){return this._isVisible?this._lineBreakData.breakOffsets.length:0},e.prototype.getInputStartOffsetOfOutputLineIndex=function(e){return d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,0)},e.prototype.getInputEndOffsetOfOutputLineIndex=function(e,t,n){return n+1===this._lineBreakData.breakOffsets.length?e.getLineMaxColumn(t)-1:d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,n+1,0)},e.prototype.getViewLineContent=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),r=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:o+1});return n>0&&(r=_(this._lineBreakData.wrappedTextIndentLength)+r),r},e.prototype.getViewLineLength=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n)-i\n;return n>0&&(o=this._lineBreakData.wrappedTextIndentLength+o),o},e.prototype.getViewLineMinColumn=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");return n>0?this._lineBreakData.wrappedTextIndentLength+1:1},e.prototype.getViewLineMaxColumn=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");return this.getViewLineContent(e,t,n).length+1},e.prototype.getViewLineData=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),r=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:o+1});n>0&&(r=_(this._lineBreakData.wrappedTextIndentLength)+r);var s=n>0?this._lineBreakData.wrappedTextIndentLength+1:1,a=r.length+1,u=n+1<this.getViewLineCount(),d=0;n>0&&(d=this._lineBreakData.wrappedTextIndentLength);var c=e.getLineTokens(t),h=0===n?0:this._lineBreakData.breakOffsetsVisibleColumn[n-1]\n;return new l.ViewLineData(r,u,s,a,h,c.sliceAndInflate(i,o,d))},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){if(!this._isVisible)throw new Error(\"Not supported\");for(var a=n;a<i;a++){var l=o+a-n;r[l]?s[l]=this.getViewLineData(e,t,a):s[l]=null}},e.prototype.getModelColumnOfViewPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\");var n=t-1;return e>0&&(n<this._lineBreakData.wrappedTextIndentLength?n=0:n-=this._lineBreakData.wrappedTextIndentLength),d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,n)+1},e.prototype.getViewPositionOfModelPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\");var n=d.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1),o=n.outputLineIndex,r=n.outputOffset+1;return o>0&&(r+=this._lineBreakData.wrappedTextIndentLength),new i.Position(e+o,r)},e.prototype.getViewLineNumberOfModelPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\")\n;return e+d.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1).outputLineIndex},e}();t.SplitLine=m;var v=[\"\"];function _(e){if(e>=v.length)for(var t=1;t<=e;t++)v[t]=y(t);return v[e]}function y(e){return new Array(e+1).join(\" \")}function C(e,t){return null===e?t?g.INSTANCE:f.INSTANCE:new m(e,t)}var b=function(){function e(e){this._lines=e}return e.prototype._validPosition=function(e){return this._lines.model.validatePosition(e)},e.prototype._validRange=function(e){return this._lines.model.validateRange(e)},e.prototype.convertViewPositionToModelPosition=function(e){return this._validPosition(e)},e.prototype.convertViewRangeToModelRange=function(e){return this._validRange(e)},e.prototype.validateViewPosition=function(e,t){return this._validPosition(t)},e.prototype.validateViewRange=function(e,t){return this._validRange(t)},e.prototype.convertModelPositionToViewPosition=function(e){return this._validPosition(e)},e.prototype.convertModelRangeToViewRange=function(e){return this._validRange(e)},\ne.prototype.modelPositionIsVisible=function(e){var t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)},e}();t.IdentityCoordinatesConverter=b;var S=function(){function e(e){this.model=e}return e.prototype.dispose=function(){},e.prototype.createCoordinatesConverter=function(){return new b(this)},e.prototype.getHiddenAreas=function(){return[]},e.prototype.setHiddenAreas=function(e){return!1},e.prototype.setTabSize=function(e){return!1},e.prototype.setWrappingSettings=function(e,t,n,i){return!1},e.prototype.createLineBreaksComputer=function(){var e=[];return{addRequest:function(t,n){e.push(null)},finalize:function(){return e}}},e.prototype.onModelFlushed=function(){},e.prototype.onModelLinesDeleted=function(e,t,n){return new s.ViewLinesDeletedEvent(t,n)},e.prototype.onModelLinesInserted=function(e,t,n,i){return new s.ViewLinesInsertedEvent(t,n)},e.prototype.onModelLineChanged=function(e,t,n){return[!1,new s.ViewLinesChangedEvent(t,t),null,null]},e.prototype.acceptVersionId=function(e){},\ne.prototype.getViewLineCount=function(){return this.model.getLineCount()},e.prototype.getActiveIndentGuide=function(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}},e.prototype.getViewLinesIndentGuides=function(e,t){for(var n=t-e+1,i=new Array(n),o=0;o<n;o++)i[o]=0;return i},e.prototype.getViewLineContent=function(e){return this.model.getLineContent(e)},e.prototype.getViewLineLength=function(e){return this.model.getLineLength(e)},e.prototype.getViewLineMinColumn=function(e){return this.model.getLineMinColumn(e)},e.prototype.getViewLineMaxColumn=function(e){return this.model.getLineMaxColumn(e)},e.prototype.getViewLineData=function(e){var t=this.model.getLineTokens(e),n=t.getLineContent();return new l.ViewLineData(n,!1,1,n.length+1,0,t.inflate())},e.prototype.getViewLinesData=function(e,t,n){var i=this.model.getLineCount();e=Math.min(Math.max(1,e),i),t=Math.min(Math.max(1,t),i);for(var o=[],r=e;r<=t;r++){var s=r-e;n[s]||(o[s]=null),o[s]=this.getViewLineData(r)}return o},\ne.prototype.getAllOverviewRulerDecorations=function(e,t,n){for(var i=this.model.getOverviewRulerDecorations(e,t),o=new w,r=0,s=i;r<s.length;r++){var a=s[r],l=a.options.overviewRuler,u=l?l.position:0;if(0!==u){var d=l.getColor(n),c=a.range.startLineNumber,h=a.range.endLineNumber;o.accept(d,c,h,u)}}return o.result},e.prototype.getDecorationsInRange=function(e,t,n){return this.model.getDecorationsInRange(e,t,n)},e}();t.IdentityLinesCollection=S;var w=function(){function e(){this.result=Object.create(null)}return e.prototype.accept=function(e,t,n,i){var o=this.result[e];if(o){var r=o[o.length-3],s=o[o.length-1];if(r===i&&s+1>=t)return void(n>s&&(o[o.length-1]=n));o.push(i,t,n)}else this.result[e]=[i,t,n]},e}()})),define(n[487],i([0,1,5,79,161]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,n){for(var i=e.call(this,0)||this,o=0;o<t.length;o++)i.set(t.charCodeAt(o),1);for(o=0;o<n.length;o++)i.set(n.charCodeAt(o),2);return i}return r(t,e),\nt.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue},t}(i.CharacterClassifier),a=[],l=[],u=function(){function e(e,t){this.classifier=new s(e,t)}return e.create=function(t){return new e(t.get(99),t.get(98))},e.prototype.createLineBreaksComputer=function(e,t,n,i){var o=this;t|=0,n=+n;var r=[],s=[];return{addRequest:function(e,t){r.push(e),s.push(t)},finalize:function(){for(var u=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,h=[],p=0,g=r.length;p<g;p++){var f=s[p];h[p]=f?d(o.classifier,f,r[p],t,n,u,i):c(o.classifier,r[p],t,n,u,i)}return a.length=0,l.length=0,h}}},e}();function d(e,t,i,o,r,s,u){if(-1===r)return null;var d=i.length;if(d<=1)return null;var c=t.breakOffsets,p=t.breakOffsetsVisibleColumn,m=f(i,o,r,s,u),v=r-m,_=a,y=l,C=0,b=r,S=c.length,w=0;if(w>=0)for(var E=Math.abs(p[w]-b);w+1<S;){if((U=Math.abs(p[w+1]-b))>=E)break;E=U,w++}for(;w<S;){\nvar L=w<0?0:c[w],D=w<0?0:p[w],N=0,x=0,I=0,M=0;if(D<=b){for(var k=D,T=i.charCodeAt(L-1),R=e.get(T),O=!0,P=L;P<d;P++){var A=P,F=i.charCodeAt(P),W=void 0,B=void 0;if(n.isHighSurrogate(F)?(P++,W=0,B=2):(W=e.get(F),B=h(F,k,o,s)),g(T,R,F,W)&&(N=A,x=k),(k+=B)>b){I=A,M=k-B,k-x>v&&(N=0),O=!1;break}T=F,R=W}if(O){C>0&&(_[C]=c[c.length-1],y[C]=p[c.length-1],C++);break}}if(0===N){k=D,F=i.charCodeAt(L),W=e.get(F);var V=!1;for(P=L-1;P>=0;P--){A=P+1;if(9===(T=i.charCodeAt(P))){V=!0;break}R=void 0;var z=void 0;if(n.isLowSurrogate(T)?(P--,R=0,z=2):(R=e.get(T),z=n.isFullWidthCharacter(T)?s:1),k<=b){if(0===I&&(I=A,M=k),k<=b-v)break;if(g(T,R,F,W)){N=A,x=k;break}}k-=z,F=T,W=R}if(0!==N){var H=v-(M-x);if(H<=o){var K=i.charCodeAt(I);B=void 0;H-(B=n.isHighSurrogate(K)?2:h(K,M,o,s))<0&&(N=0)}}if(V){w--;continue}}for(0===N&&(N=I,x=M),_[C]=N,y[C]=x,C++,b=x+v;w<0||w<S&&p[w]<x;)w++;for(E=Math.abs(p[w]-b);w+1<S;){var U;if((U=Math.abs(p[w+1]-b))>=E)break;E=U,w++}}return 0===C?null:(_.length=C,y.length=C,a=t.breakOffsets,\nl=t.breakOffsetsVisibleColumn,t.breakOffsets=_,t.breakOffsetsVisibleColumn=y,t.wrappedTextIndentLength=m,t)}function c(e,t,i,r,s,a){if(-1===r)return null;var l=t.length;if(l<=1)return null;var u=f(t,i,r,s,a),d=r-u,c=[],p=[],m=0,v=0,_=0,y=r,C=t.charCodeAt(0),b=e.get(C),S=h(C,0,i,s),w=1;n.isHighSurrogate(C)&&(S+=1,C=t.charCodeAt(1),b=e.get(C),w++);for(var E=w;E<l;E++){var L=E,D=t.charCodeAt(E),N=void 0,x=void 0;n.isHighSurrogate(D)?(E++,N=0,x=2):(N=e.get(D),x=h(D,S,i,s)),g(C,b,D,N)&&(v=L,_=S),(S+=x)>y&&((0===v||S-_>d)&&(v=L,_=S-x),c[m]=v,p[m]=_,m++,y=_+d,v=0),C=D,b=N}return 0===m?null:(c[m]=l,p[m]=S,new o.LineBreakData(c,p,u))}function h(e,t,i,o){return 9===e?i-t%i:n.isFullWidthCharacter(e)?o:1}function p(e,t){return t-e%t}function g(e,t,n,i){return 32!==n&&(2===t||3===t&&2!==i||1===i||3===i&&1!==t)}function f(e,t,i,o,r){var s=0;if(0!==r){var a=n.firstNonWhitespaceIndex(e);if(-1!==a){for(var l=0;l<a;l++){s+=9===e.charCodeAt(l)?p(s,t):1}var u=3===r?2:2===r?1:0;for(l=0;l<u;l++){s+=p(s,t)}s+o>i&&(s=0)}}return s}\nt.MonospaceLineBreaksComputerFactory=u})),define(n[488],i([0,1,27,5,33,13,3,17,214,215,81,373,161,69,424,15,16]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=!0,y=function(e){function t(t,n,i,o,r,s){var a=e.call(this)||this;if(a.editorId=t,a.configuration=n,a.model=i,a._tokenizeViewportSoon=a._register(new m.RunOnceScheduler((function(){return a.tokenizeViewport()}),50)),a.hasFocus=!1,a.viewportStartLine=-1,a.viewportStartLineTrackedRange=null,a.viewportStartLineDelta=0,_&&a.model.isTooLargeForTokenization())a.lines=new p.IdentityLinesCollection(a.model);else{var l=a.configuration.options,u=l.get(34),g=l.get(103),v=l.get(108),y=l.get(102);a.lines=new p.SplitLinesCollection(a.model,o,r,u,a.model.getOptions().tabSize,g,v.wrappingColumn,y)}return a.coordinatesConverter=a.lines.createCoordinatesConverter(),a.viewLayout=a._register(new h.ViewLayout(a.configuration,a.getLineCount(),s)),a._register(a.viewLayout.onDidScroll((function(e){\ne.scrollTopChanged&&a._tokenizeViewportSoon.schedule();try{a._beginEmit().emit(new c.ViewScrollChangedEvent(e))}finally{a._endEmit()}}))),a._register(a.viewLayout.onDidContentSizeChange((function(e){try{a._beginEmit().emit(new c.ViewContentSizeChangedEvent(e))}finally{a._endEmit()}}))),a.decorations=new f.ViewModelDecorations(a.editorId,a.model,a.configuration,a.lines,a.coordinatesConverter),a._registerModelEvents(),a._register(a.configuration.onDidChange((function(e){try{var t=a._beginEmit();a._onConfigurationChanged(t,e)}finally{a._endEmit()}}))),a._register(d.MinimapTokensColorTracker.getInstance().onDidChange((function(){try{a._beginEmit().emit(new c.ViewTokensColorsChangedEvent)}finally{a._endEmit()}}))),a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this.decorations.dispose(),this.lines.dispose(),this.invalidateMinimapColorCache(),this.viewportStartLineTrackedRange=this.model._setTrackedRange(this.viewportStartLineTrackedRange,null,1)},\nt.prototype.tokenizeViewport=function(){var e=this.viewLayout.getLinesViewportData(),t=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e.startLineNumber,1)),n=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e.endLineNumber,1));this.model.tokenizeViewport(t.lineNumber,n.lineNumber)},t.prototype.setHasFocus=function(e){this.hasFocus=e},t.prototype._onConfigurationChanged=function(e,t){var n=null;if(-1!==this.viewportStartLine){var i=new s.Position(this.viewportStartLine,this.getLineMinColumn(this.viewportStartLine));n=this.coordinatesConverter.convertViewPositionToModelPosition(i)}var o=!1,r=this.configuration.options,a=r.get(34),l=r.get(103),u=r.get(108),d=r.get(102);if(this.lines.setWrappingSettings(a,l,u.wrappingColumn,d)&&(e.emit(new c.ViewFlushedEvent),e.emit(new c.ViewLineMappingChangedEvent),e.emit(new c.ViewDecorationsChangedEvent),this.decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),\n0!==this.viewLayout.getCurrentScrollTop()&&(o=!0)),t.hasChanged(68)&&(this.decorations.reset(),e.emit(new c.ViewDecorationsChangedEvent)),e.emit(new c.ViewConfigurationChangedEvent(t)),this.viewLayout.onConfigurationChanged(t),o&&n){var h=this.coordinatesConverter.convertModelPositionToViewPosition(n),p=this.viewLayout.getVerticalOffsetForLineNumber(h.lineNumber);this.viewLayout.setScrollPositionNow({scrollTop:p+this.viewportStartLineDelta})}},t.prototype._registerModelEvents=function(){var e=this;this._register(this.model.onDidChangeRawContentFast((function(t){try{for(var n=e._beginEmit(),i=!1,o=!1,r=t.changes,s=t.versionId,a=e.lines.createLineBreaksComputer(),l=0,u=r;l<u.length;l++){switch((_=u[l]).changeType){case 4:for(var d=0,h=_.detail;d<h.length;d++){var p=h[d];a.addRequest(p,null)}break;case 2:a.addRequest(_.detail,null)}}for(var g=a.finalize(),f=0,m=0,v=r;m<v.length;m++){var _;switch((_=v[m]).changeType){case 1:e.lines.onModelFlushed(),n.emit(new c.ViewFlushedEvent),e.decorations.reset(),\ne.viewLayout.onFlushed(e.getLineCount()),i=!0;break;case 3:null!==(L=e.lines.onModelLinesDeleted(s,_.fromLineNumber,_.toLineNumber))&&(n.emit(L),e.viewLayout.onLinesDeleted(L.fromLineNumber,L.toLineNumber)),i=!0;break;case 4:var y=g.slice(f,f+_.detail.length);f+=_.detail.length,null!==(E=e.lines.onModelLinesInserted(s,_.fromLineNumber,_.toLineNumber,y))&&(n.emit(E),e.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),i=!0;break;case 2:var C=g[f];f++;var b=e.lines.onModelLineChanged(s,_.lineNumber,C),S=b[0],w=b[1],E=b[2],L=b[3];o=S,w&&n.emit(w),E&&(n.emit(E),e.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),L&&(n.emit(L),e.viewLayout.onLinesDeleted(L.fromLineNumber,L.toLineNumber))}}e.lines.acceptVersionId(s),e.viewLayout.onHeightMaybeChanged(),!i&&o&&(n.emit(new c.ViewLineMappingChangedEvent),n.emit(new c.ViewDecorationsChangedEvent),e.decorations.onLineMappingChanged())}finally{e._endEmit()}if(e.viewportStartLine=-1,e.configuration.setMaxLineNumber(e.model.getLineCount()),\n!e.hasFocus&&e.model.getAttachedEditorCount()>=2&&e.viewportStartLineTrackedRange){var D=e.model._getTrackedRange(e.viewportStartLineTrackedRange);if(D){var N=e.coordinatesConverter.convertModelPositionToViewPosition(D.getStartPosition()),x=e.viewLayout.getVerticalOffsetForLineNumber(N.lineNumber);e.viewLayout.setScrollPositionNow({scrollTop:x+e.viewportStartLineDelta})}}}))),this._register(this.model.onDidChangeTokens((function(t){for(var n=[],i=0,o=t.ranges.length;i<o;i++){var r=t.ranges[i],a=e.coordinatesConverter.convertModelPositionToViewPosition(new s.Position(r.fromLineNumber,1)).lineNumber,l=e.coordinatesConverter.convertModelPositionToViewPosition(new s.Position(r.toLineNumber,e.model.getLineMaxColumn(r.toLineNumber))).lineNumber;n[i]={fromLineNumber:a,toLineNumber:l}}try{e._beginEmit().emit(new c.ViewTokensChangedEvent(n))}finally{e._endEmit()}t.tokenizationSupportChanged&&e._tokenizeViewportSoon.schedule()}))),this._register(this.model.onDidChangeLanguageConfiguration((function(t){try{\ne._beginEmit().emit(new c.ViewLanguageConfigurationEvent)}finally{e._endEmit()}}))),this._register(this.model.onDidChangeOptions((function(t){if(e.lines.setTabSize(e.model.getOptions().tabSize)){e.decorations.onLineMappingChanged(),e.viewLayout.onFlushed(e.getLineCount());try{var n=e._beginEmit();n.emit(new c.ViewFlushedEvent),n.emit(new c.ViewLineMappingChangedEvent),n.emit(new c.ViewDecorationsChangedEvent)}finally{e._endEmit()}}}))),this._register(this.model.onDidChangeDecorations((function(t){e.decorations.onModelDecorationsChanged();try{e._beginEmit().emit(new c.ViewDecorationsChangedEvent)}finally{e._endEmit()}})))},t.prototype.setHiddenAreas=function(e){try{var t=this._beginEmit();this.lines.setHiddenAreas(e)&&(t.emit(new c.ViewFlushedEvent),t.emit(new c.ViewLineMappingChangedEvent),t.emit(new c.ViewDecorationsChangedEvent),this.decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._endEmit()}},\nt.prototype.getVisibleRanges=function(){var e=this.getCompletelyVisibleViewRange(),t=this.coordinatesConverter.convertViewRangeToModelRange(e),n=this.lines.getHiddenAreas();if(0===n.length)return[t];for(var i=[],o=0,r=t.startLineNumber,s=t.startColumn,l=t.endLineNumber,u=t.endColumn,d=0,c=n.length;d<c;d++){var h=n[d].startLineNumber,p=n[d].endLineNumber;p<r||(h>l||(r<h&&(i[o++]=new a.Range(r,s,h-1,this.model.getLineMaxColumn(h-1))),r=p+1,s=1))}return(r<l||r===l&&s<u)&&(i[o++]=new a.Range(r,s,l,u)),i},t.prototype.getCompletelyVisibleViewRange=function(){var e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,n=e.completelyVisibleEndLineNumber;return new a.Range(t,this.getLineMinColumn(t),n,this.getLineMaxColumn(n))},t.prototype.getCompletelyVisibleViewRangeAtScrollTop=function(e){var t=this.viewLayout.getLinesViewportDataAtScrollTop(e),n=t.completelyVisibleStartLineNumber,i=t.completelyVisibleEndLineNumber;return new a.Range(n,this.getLineMinColumn(n),i,this.getLineMaxColumn(i))},\nt.prototype.saveState=function(){var e=this.viewLayout.saveState(),t=e.scrollTop,n=this.viewLayout.getLineNumberAtVerticalOffset(t),i=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(n,this.getLineMinColumn(n))),o=this.viewLayout.getVerticalOffsetForLineNumber(n)-t;return{scrollLeft:e.scrollLeft,firstPosition:i,firstPositionDeltaTop:o}},t.prototype.reduceRestoreState=function(e){if(void 0===e.firstPosition)return this._reduceRestoreStateCompatibility(e);var t=this.model.validatePosition(e.firstPosition),n=this.coordinatesConverter.convertModelPositionToViewPosition(t),i=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:i}},t.prototype._reduceRestoreStateCompatibility=function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}},t.prototype.getTabSize=function(){return this.model.getOptions().tabSize},t.prototype.getOptions=function(){return this.model.getOptions()},\nt.prototype.getLineCount=function(){return this.lines.getViewLineCount()},t.prototype.setViewport=function(e,t,n){this.viewportStartLine=e;var i=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e,this.getLineMinColumn(e)));this.viewportStartLineTrackedRange=this.model._setTrackedRange(this.viewportStartLineTrackedRange,new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),1);var o=this.viewLayout.getVerticalOffsetForLineNumber(e),r=this.viewLayout.getCurrentScrollTop();this.viewportStartLineDelta=r-o},t.prototype.getActiveIndentGuide=function(e,t,n){return this.lines.getActiveIndentGuide(e,t,n)},t.prototype.getLinesIndentGuides=function(e,t){return this.lines.getViewLinesIndentGuides(e,t)},t.prototype.getLineContent=function(e){return this.lines.getViewLineContent(e)},t.prototype.getLineLength=function(e){return this.lines.getViewLineLength(e)},t.prototype.getLineMinColumn=function(e){return this.lines.getViewLineMinColumn(e)},t.prototype.getLineMaxColumn=function(e){\nreturn this.lines.getViewLineMaxColumn(e)},t.prototype.getLineFirstNonWhitespaceColumn=function(e){var t=i.firstNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+1},t.prototype.getLineLastNonWhitespaceColumn=function(e){var t=i.lastNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+2},t.prototype.getDecorationsInViewport=function(e){return this.decorations.getDecorationsViewportData(e).decorations},t.prototype.getViewLineRenderingData=function(e,t){var n=this.model.mightContainRTL(),i=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),r=this.lines.getViewLineData(t),s=this.decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return new g.ViewLineRenderingData(r.minColumn,r.maxColumn,r.content,r.continuesWithWrappedLine,n,i,r.tokens,s,o,r.startVisibleColumn)},t.prototype.getViewLineData=function(e){return this.lines.getViewLineData(e)},t.prototype.getMinimapLinesRenderingData=function(e,t,n){var i=this.lines.getViewLinesData(e,t,n)\n;return new g.MinimapLinesRenderingData(this.getTabSize(),i)},t.prototype.getAllOverviewRulerDecorations=function(e){return this.lines.getAllOverviewRulerDecorations(this.editorId,o.filterValidationDecorations(this.configuration.options),e)},t.prototype.invalidateOverviewRulerColorCache=function(){for(var e=0,t=this.model.getOverviewRulerDecorations();e<t.length;e++){var n=t[e].options.overviewRuler;n&&n.invalidateCachedColor()}},t.prototype.invalidateMinimapColorCache=function(){for(var e=0,t=this.model.getAllDecorations();e<t.length;e++){var n=t[e].options.minimap;n&&n.invalidateCachedColor()}},t.prototype.getValueInRange=function(e,t){var n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(n,t)},t.prototype.getModelLineMaxColumn=function(e){return this.model.getLineMaxColumn(e)},t.prototype.validateModelPosition=function(e){return this.model.validatePosition(e)},t.prototype.validateModelRange=function(e){return this.model.validateRange(e)},\nt.prototype.deduceModelPositionRelativeToViewPosition=function(e,t,n){var i=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=n:t+=n);var o=this.model.getOffsetAt(i)+t;return this.model.getPositionAt(o)},t.prototype.getEOL=function(){return this.model.getEOL()},t.prototype.getPlainTextToCopy=function(e,t,n){var i=n?\"\\r\\n\":this.model.getEOL();(e=e.slice(0)).sort(a.Range.compareRangesUsingStarts);for(var o=!1,r=!1,s=0,l=e;s<l.length;s++){l[s].isEmpty()?o=!0:r=!0}if(!r){if(!t)return\"\";for(var u=e.map((function(e){return e.startLineNumber})),d=\"\",c=0;c<u.length;c++)c>0&&u[c-1]===u[c]||(d+=this.model.getLineContent(u[c])+i);return d}if(o&&t){for(var h=[],p=0,g=0,f=e;g<f.length;g++){var m=(C=f[g]).startLineNumber;C.isEmpty()?m!==p&&h.push(this.model.getLineContent(m)):h.push(this.model.getValueInRange(C,n?2:0)),p=m}return 1===h.length?h[0]:h}for(var v=[],_=0,y=e;_<y.length;_++){var C;(C=y[_]).isEmpty()||v.push(this.model.getValueInRange(C,n?2:0))}\nreturn 1===v.length?v[0]:v},t.prototype.getRichTextToCopy=function(e,t){var n=this.model.getLanguageIdentifier();if(1===n.id)return null;if(1!==e.length)return null;var i=e[0];if(i.isEmpty()){if(!t)return null;var r=i.startLineNumber;i=new a.Range(r,this.model.getLineMinColumn(r),r,this.model.getLineMaxColumn(r))}var s=this.configuration.options.get(34),l=this._getColorMap(),u=s.fontFamily===o.EDITOR_FONT_DEFAULTS.fontFamily?s.fontFamily:\"'\"+s.fontFamily+\"', \"+o.EDITOR_FONT_DEFAULTS.fontFamily;return{mode:n.language,html:'<div style=\"color: '+l[1]+\";background-color: \"+l[2]+\";font-family: \"+u+\";font-weight: \"+s.fontWeight+\";font-size: \"+s.fontSize+\"px;line-height: \"+s.lineHeight+'px;white-space: pre;\">'+this._getHTMLToCopy(i,l)+\"</div>\"}},t.prototype._getHTMLToCopy=function(e,t){for(var n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,r=e.endColumn,s=this.getTabSize(),a=\"\",l=n;l<=o;l++){var d=this.model.getLineTokens(l),c=d.getLineContent(),h=l===n?i-1:0,p=l===o?r-1:c.length\n;a+=\"\"===c?\"<br>\":u.tokenizeLineToHTML(c,d.inflate(),t,h,p,s,v.isWindows)}return a},t.prototype._getColorMap=function(){var e=l.TokenizationRegistry.getColorMap(),t=[\"#000000\"];if(e)for(var i=1,o=e.length;i<o;i++)t[i]=n.Color.Format.CSS.formatHex(e[i]);return t},t}(c.ViewEventEmitter);t.ViewModel=y})),define(n[489],i([0,1,19,26,87,10,38,17]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(){}return e.prototype.remove=function(){this.parent&&delete this.parent.children[this.id]},e.findId=function(e,t){var n;\"string\"==typeof e?n=t.id+\"/\"+e:(n=t.id+\"/\"+e.name,void 0!==t.children[n]&&(n=t.id+\"/\"+e.name+\"_\"+e.range.startLineNumber+\"_\"+e.range.startColumn));for(var i=n,o=0;void 0!==t.children[i];o++)i=n+\"_\"+o;return i},e.empty=function(e){for(var t in e.children)return!1;return!0},e}();t.TreeElement=u;var d=function(e){function t(t,n,i){var o=e.call(this)||this;return o.id=t,o.parent=n,o.symbol=i,o.children=Object.create(null),o}return r(t,e),t\n}(u);t.OutlineElement=d;var c=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.id=t,r.parent=n,r.provider=i,r.providerIndex=o,r.children=Object.create(null),r}return r(t,e),t}(u);t.OutlineGroup=c;var h=function(){function e(){this._n=1,this._val=0}return e.prototype.update=function(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this},e}(),p=function(e){function t(t){var n=e.call(this)||this;return n.textModel=t,n.id=\"root\",n.parent=void 0,n._groups=Object.create(null),n.children=Object.create(null),n.id=\"root\",n.parent=void 0,n}return r(t,e),t.create=function(e,n){var o=this,r=this._keys.for(e,!0),s=t._requests.get(r);if(!s){var a=new i.CancellationTokenSource;s={promiseCnt:0,source:a,promise:t._create(e,a.token),model:void 0},t._requests.set(r,s);var l=Date.now();s.promise.then((function(){var t=o._keys.for(e,!1),n=o._requestDurations.get(t);n||(n=new h,o._requestDurations.set(t,n)),n.update(Date.now()-l)}))}return s.model?Promise.resolve(s.model):(s.promiseCnt+=1,\nn.onCancellationRequested((function(){0==--s.promiseCnt&&(s.source.cancel(),t._requests.delete(r))})),new Promise((function(e,n){s.promise.then((function(t){s.model=t,e(t)}),(function(e){t._requests.delete(r),n(e)}))})))},t._create=function(e,o){var r=new i.CancellationTokenSource(o),a=new t(e),d=l.DocumentSymbolProviderRegistry.ordered(e),h=d.map((function(e,n){var i=u.findId(\"provider_\"+n,a),o=new c(i,a,e,n);return Promise.resolve(e.provideDocumentSymbols(a.textModel,r.token)).then((function(e){for(var n=0,i=e||[];n<i.length;n++){var r=i[n];t._makeOutlineElement(r,o)}return o}),(function(e){return s.onUnexpectedExternalError(e),o})).then((function(e){u.empty(e)?e.remove():a._groups[i]=e}))})),p=l.DocumentSymbolProviderRegistry.onDidChange((function(){var t=l.DocumentSymbolProviderRegistry.ordered(e);n.equals(t,d)||r.cancel()}));return Promise.all(h).then((function(){return r.token.isCancellationRequested&&!o.isCancellationRequested?t._create(e,o):a._compact()})).finally((function(){p.dispose()}))},\nt._makeOutlineElement=function(e,n){var i=u.findId(e,n),o=new d(i,n,e);if(e.children)for(var r=0,s=e.children;r<s.length;r++){var a=s[r];t._makeOutlineElement(a,o)}n.children[o.id]=o},t.prototype._compact=function(){var e=0;for(var t in this._groups){var n=this._groups[t];void 0===o.first(n.children)?delete this._groups[t]:e+=1}if(1!==e)this.children=this._groups;else{n=o.first(this._groups);for(var t in n.children){var i=n.children[t];i.parent=this,this.children[i.id]=i}}return this},t._requestDurations=new a.LRUCache(50,.7),t._requests=new a.LRUCache(9,.75),t._keys=new(function(){function e(){this._counter=1,this._data=new WeakMap}return e.prototype.for=function(e,t){return e.id+\"/\"+(t?e.getVersionId():\"\")+\"/\"+this._hash(l.DocumentSymbolProviderRegistry.all(e))},e.prototype._hash=function(e){for(var t=\"\",n=0,i=e;n<i.length;n++){var o=i[n],r=this._data.get(o);void 0===r&&(r=this._counter++,this._data.set(o,r)),t+=r}return t},e}()),t}(u);t.OutlineModel=p})),define(n[490],i([0,1,30]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.editor=e,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}return e.prototype.getDecorationOption=function(t){return t?this.showFoldingHighlights?e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION},e.prototype.deltaDecorations=function(e,t){return this.editor.deltaDecorations(e,t)},e.prototype.changeDecorations=function(e){return this.editor.changeDecorations(e)},e.COLLAPSED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,afterContentClassName:\"inline-folded\",linesDecorationsClassName:\"codicon codicon-chevron-right\"}),e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,afterContentClassName:\"inline-folded\",className:\"folded-background\",isWholeLine:!0,linesDecorationsClassName:\"codicon codicon-chevron-right\"}),\ne.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,linesDecorationsClassName:\"codicon codicon-chevron-down\"}),e.EXPANDED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,linesDecorationsClassName:\"codicon codicon-chevron-down alwaysShowFoldIcons\"}),e}();t.FoldingDecorationProvider=i})),define(n[491],i([0,1,150,30,41]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=5e3;t.ID_INDENT_PROVIDER=\"indent\";var s=function(){function e(e){this.editorModel=e,this.id=t.ID_INDENT_PROVIDER}return e.prototype.dispose=function(){},e.prototype.compute=function(e){var t=o.LanguageConfigurationRegistry.getFoldingRules(this.editorModel.getLanguageIdentifier().id),n=t&&!!t.offSide,i=t&&t.markers;return Promise.resolve(l(this.editorModel,n,i))},e}();t.IndentRangeProvider=s;var a=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}\nreturn e.prototype.insertFirst=function(e,t,i){if(!(e>n.MAX_LINE_NUMBER||t>n.MAX_LINE_NUMBER)){var o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}},e.prototype.toIndentRanges=function(e){if(this._length<=this._foldingRangesLimit){for(var t=new Uint32Array(this._length),o=new Uint32Array(this._length),r=this._length-1,s=0;r>=0;r--,s++)t[s]=this._startIndexes[r],o[s]=this._endIndexes[r];return new n.FoldingRegions(t,o)}var a=0,l=this._indentOccurrences.length;for(r=0;r<this._indentOccurrences.length;r++){var u=this._indentOccurrences[r];if(u){if(u+a>this._foldingRangesLimit){l=r;break}a+=u}}var d=e.getOptions().tabSize;for(t=new Uint32Array(this._foldingRangesLimit),o=new Uint32Array(this._foldingRangesLimit),r=this._length-1,s=0;r>=0;r--){var c=this._startIndexes[r],h=e.getLineContent(c),p=i.TextModel.computeIndentLevel(h,d);(p<l||p===l&&a++<this._foldingRangesLimit)&&(t[s]=c,o[s]=this._endIndexes[r],s++)}\nreturn new n.FoldingRegions(t,o)},e}();function l(e,t,n,o){void 0===o&&(o=r);var s=e.getOptions().tabSize,l=new a(o),u=void 0;n&&(u=new RegExp(\"(\"+n.start.source+\")|(?:\"+n.end.source+\")\"));var d=[],c=e.getLineCount()+1;d.push({indent:-1,endAbove:c,line:c});for(var h=e.getLineCount();h>0;h--){var p=e.getLineContent(h),g=i.TextModel.computeIndentLevel(p,s),f=d[d.length-1];if(-1!==g){var m=void 0;if(u&&(m=p.match(u))){if(!m[1]){d.push({indent:-2,endAbove:h,line:h});continue}for(var v=d.length-1;v>0&&-2!==d[v].indent;)v--;if(v>0){d.length=v+1,f=d[v],l.insertFirst(h,f.line,g),f.line=h,f.indent=g,f.endAbove=h;continue}}if(f.indent>g){do{d.pop(),f=d[d.length-1]}while(f.indent>g);var _=f.endAbove-1;_-h>=1&&l.insertFirst(h,_,g)}f.indent===g?f.endAbove=h:d.push({indent:g,endAbove:h,line:h})}else t&&(f.endAbove=h)}return l.toIndentRanges(e)}t.RangesCollector=a,t.computeRanges=l})),define(n[492],i([0,1,5,211,3,22,90,41,385]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var u=function(){function e(e,t,n){this._selection=e,this._isMovingDown=t,this._autoIndent=n,this._selectionId=null,this._moveEndLineSelectionShrink=!1}return e.prototype.getEditOperations=function(e,t){var i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i)this._selectionId=t.trackSelection(this._selection);else if(this._isMovingDown||1!==this._selection.startLineNumber){this._moveEndPositionDown=!1;var s=this._selection;s.startLineNumber<s.endLineNumber&&1===s.endColumn&&(this._moveEndPositionDown=!0,s=s.setEndPosition(s.endLineNumber-1,e.getLineMaxColumn(s.endLineNumber-1)));var u=e.getOptions(),d=u.tabSize,c=u.indentSize,h=u.insertSpaces,p=this.buildIndentConverter(d,c,h),g={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:null};if(s.startLineNumber===s.endLineNumber&&1===e.getLineMaxColumn(s.startLineNumber)){\nvar f=s.startLineNumber,m=this._isMovingDown?f+1:f-1;1===e.getLineMaxColumn(m)?t.addEditOperation(new o.Range(1,1,1,1),null):(t.addEditOperation(new o.Range(f,1,f,1),e.getLineContent(m)),t.addEditOperation(new o.Range(m,1,m,e.getLineMaxColumn(m)),null)),s=new r.Selection(m,1,m,1)}else{var v,_=void 0;if(this._isMovingDown){v=s.endLineNumber+1,_=e.getLineContent(v),t.addEditOperation(new o.Range(v-1,e.getLineMaxColumn(v-1),v,e.getLineMaxColumn(v)),null);var y=_;if(this.shouldAutoIndent(e,s)){var C=this.matchEnterRule(e,p,d,v,s.startLineNumber-1);if(null!==C){var b=n.getLeadingWhitespace(e.getLineContent(v)),S=C+l.getSpaceCnt(b,d),w=l.generateIndent(S,d,h);y=w+this.trimLeft(_)}else{g.getLineContent=function(t){return t===s.startLineNumber?e.getLineContent(v):e.getLineContent(t)};var E=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(v,1),s.startLineNumber,p);if(null!==E){b=n.getLeadingWhitespace(e.getLineContent(v))\n;if((S=l.getSpaceCnt(E,d))!==(I=l.getSpaceCnt(b,d))){w=l.generateIndent(S,d,h);y=w+this.trimLeft(_)}}}if(t.addEditOperation(new o.Range(s.startLineNumber,1,s.startLineNumber,1),y+\"\\n\"),null!==(N=this.matchEnterRule(e,p,d,s.startLineNumber,s.startLineNumber,y)))0!==N&&this.getIndentEditsOfMovingBlock(e,t,s,d,h,N);else{g.getLineContent=function(t){return t===s.startLineNumber?y:t>=s.startLineNumber+1&&t<=s.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t)};var L=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(v,1),s.startLineNumber+1,p);if(null!==L){b=n.getLeadingWhitespace(e.getLineContent(s.startLineNumber));if((S=l.getSpaceCnt(L,d))!==(I=l.getSpaceCnt(b,d))){var D=S-I;this.getIndentEditsOfMovingBlock(e,t,s,d,h,D)}}}}else t.addEditOperation(new o.Range(s.startLineNumber,1,s.startLineNumber,1),y+\"\\n\")}else{var N;if(v=s.startLineNumber-1,_=e.getLineContent(v),t.addEditOperation(new o.Range(v,1,v+1,1),null),\nt.addEditOperation(new o.Range(s.endLineNumber,e.getLineMaxColumn(s.endLineNumber),s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),\"\\n\"+_),this.shouldAutoIndent(e,s))if(g.getLineContent=function(t){return t===v?e.getLineContent(s.startLineNumber):e.getLineContent(t)},null!==(N=this.matchEnterRule(e,p,d,s.startLineNumber,s.startLineNumber-2)))0!==N&&this.getIndentEditsOfMovingBlock(e,t,s,d,h,N);else{var x=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(s.startLineNumber,1),v,p);if(null!==x){var I,M=n.getLeadingWhitespace(e.getLineContent(s.startLineNumber));if((S=l.getSpaceCnt(x,d))!==(I=l.getSpaceCnt(M,d))){D=S-I;this.getIndentEditsOfMovingBlock(e,t,s,d,h,D)}}}}}this._selectionId=t.trackSelection(s)}else this._selectionId=t.trackSelection(this._selection)},e.prototype.buildIndentConverter=function(e,t,n){return{shiftIndent:function(o){return i.ShiftCommand.shiftIndent(o,o.length+1,e,t,n)},unshiftIndent:function(o){\nreturn i.ShiftCommand.unshiftIndent(o,o.length+1,e,t,n)}}},e.prototype.matchEnterRule=function(e,t,i,r,u,d){for(var c=u;c>=1;){var h=void 0;if(h=c===u&&void 0!==d?d:e.getLineContent(c),n.lastNonWhitespaceIndex(h)>=0)break;c--}if(c<1||r>e.getLineCount())return null;var p=e.getLineMaxColumn(c),g=a.LanguageConfigurationRegistry.getEnterAction(this._autoIndent,e,new o.Range(c,p,c,p));if(g){var f=g.indentation;g.indentAction===s.IndentAction.None?f=g.indentation+g.appendText:g.indentAction===s.IndentAction.Indent?f=g.indentation+g.appendText:g.indentAction===s.IndentAction.IndentOutdent?f=g.indentation:g.indentAction===s.IndentAction.Outdent&&(f=t.unshiftIndent(g.indentation)+g.appendText);var m=e.getLineContent(r);if(this.trimLeft(m).indexOf(this.trimLeft(f))>=0){var v=n.getLeadingWhitespace(e.getLineContent(r)),_=n.getLeadingWhitespace(f),y=a.LanguageConfigurationRegistry.getIndentMetadata(e,r);return null!==y&&2&y&&(_=t.unshiftIndent(_)),l.getSpaceCnt(_,i)-l.getSpaceCnt(v,i)}}return null},\ne.prototype.trimLeft=function(e){return e.replace(/^\\s+/,\"\")},e.prototype.shouldAutoIndent=function(e,t){if(this._autoIndent<4)return!1;if(!e.isCheapToTokenize(t.startLineNumber))return!1;var n=e.getLanguageIdAtPosition(t.startLineNumber,1);return n===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==a.LanguageConfigurationRegistry.getIndentRulesSupport(n)},e.prototype.getIndentEditsOfMovingBlock=function(e,t,i,r,s,a){for(var u=i.startLineNumber;u<=i.endLineNumber;u++){var d=e.getLineContent(u),c=n.getLeadingWhitespace(d),h=l.getSpaceCnt(c,r)+a,p=l.generateIndent(h,r,s);p!==c&&(t.addEditOperation(new o.Range(u,1,u,c.length+1),p),u===i.endLineNumber&&i.endColumn<=c.length+1&&\"\"===p&&(this._moveEndLineSelectionShrink=!0))}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n},e}()\n;t.MoveLinesCommand=u})),define(n[493],i([0,1,6,104,27,127,2,31,3,30,324]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=new o.Color(new o.RGBA(0,122,204)),c={showArrow:!0,showFrame:!0,className:\"\",frameColor:d,arrowColor:d,keepEditorSelection:!1},h=function(){function e(e,t,n,i,o,r){this.id=\"\",this.domNode=e,this.afterLineNumber=t,this.afterColumn=n,this.heightInLines=i,this._onDomNodeTop=o,this._onComputedHeight=r}return e.prototype.onDomNodeTop=function(e){this._onDomNodeTop(e)},e.prototype.onComputedHeight=function(e){this._onComputedHeight(e)},e}();t.ViewZoneDelegate=h;var p=function(){function e(e,t){this._id=e,this._domNode=t}return e.prototype.getId=function(){return this._id},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return null},e}();t.OverlayWidgetDelegate=p;var g=function(){function e(t){this._editor=t,this._ruleName=e._IdGenerator.nextId(),this._decorations=[],this._color=null,this._height=-1}\nreturn e.prototype.dispose=function(){this.hide(),n.removeCSSRulesContainingSelector(this._ruleName)},Object.defineProperty(e.prototype,\"color\",{set:function(e){this._color!==e&&(this._color=e,this._updateStyle())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"height\",{set:function(e){this._height!==e&&(this._height=e,this._updateStyle())},enumerable:!0,configurable:!0}),e.prototype._updateStyle=function(){n.removeCSSRulesContainingSelector(this._ruleName),n.createCSSRule(\".monaco-editor \"+this._ruleName,\"border-style: solid; border-color: transparent; border-bottom-color: \"+this._color+\"; border-width: \"+this._height+\"px; bottom: -\"+this._height+\"px; margin-left: -\"+this._height+\"px; \")},e.prototype.show=function(e){this._decorations=this._editor.deltaDecorations(this._decorations,[{range:l.Range.fromPositions(e),options:{className:this._ruleName,stickiness:1}}])},e.prototype.hide=function(){this._editor.deltaDecorations(this._decorations,[])},\ne._IdGenerator=new r.IdGenerator(\".arrow-decoration-\"),e}(),f=function(){function e(e,t){var n=this;void 0===t&&(t={}),this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._positionMarkerId=[],this._viewZone=null,this._disposables=new s.DisposableStore,this.container=null,this._isShowing=!1,this.editor=e,this.options=a.deepClone(t),a.mixin(this.options,c,!1),this.domNode=document.createElement(\"div\"),this.options.isAccessible||(this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.domNode.setAttribute(\"role\",\"presentation\")),this._disposables.add(this.editor.onDidLayoutChange((function(e){var t=n._getWidth(e);n.domNode.style.width=t+\"px\",n.domNode.style.left=n._getLeft(e)+\"px\",n._onWidth(t)})))}return e.prototype.dispose=function(){var e=this;this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id),e._viewZone=null})),\nthis.editor.deltaDecorations(this._positionMarkerId,[]),this._positionMarkerId=[],this._disposables.dispose()},e.prototype.create=function(){n.addClass(this.domNode,\"zone-widget\"),this.options.className&&n.addClass(this.domNode,this.options.className),this.container=document.createElement(\"div\"),n.addClass(this.container,\"zone-widget-container\"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new g(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()},e.prototype.style=function(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()},e.prototype._applyStyles=function(){if(this.container&&this.options.frameColor){var e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){var t=this.options.arrowColor.toString();this._arrow.color=t}},\ne.prototype._getWidth=function(e){return e.width-e.minimapWidth-e.verticalScrollbarWidth},e.prototype._getLeft=function(e){return e.minimapWidth>0&&0===e.minimapLeft?e.minimapWidth:0},e.prototype._onViewZoneTop=function(e){this.domNode.style.top=e+\"px\"},e.prototype._onViewZoneHeight=function(e){if(this.domNode.style.height=e+\"px\",this.container){var t=e-this._decoratingElementsHeight();this.container.style.height=t+\"px\";var n=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(n))}this._resizeSash&&this._resizeSash.layout()},Object.defineProperty(e.prototype,\"position\",{get:function(){var e=this._positionMarkerId[0];if(e){var t=this.editor.getModel();if(t){var n=t.getDecorationRange(e);if(n)return n.getStartPosition()}}},enumerable:!0,configurable:!0}),e.prototype.show=function(e,t){var n=l.Range.isIRange(e)?l.Range.lift(e):l.Range.fromPositions(e);this._isShowing=!0,this._showImpl(n,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:n,\noptions:u.ModelDecorationOptions.EMPTY}])},e.prototype.hide=function(){var e=this;this._viewZone&&(this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()},e.prototype._decoratingElementsHeight=function(){var e=this.editor.getOption(49),t=0;this.options.showArrow&&(t+=2*Math.round(e/3));this.options.showFrame&&(t+=2*Math.round(e/9));return t},e.prototype._showImpl=function(e,t){var n=this,i=e.getStartPosition(),o=this.editor.getLayoutInfo(),r=this._getWidth(o);this.domNode.style.width=r+\"px\",this.domNode.style.left=this._getLeft(o)+\"px\";var s=document.createElement(\"div\");s.style.overflow=\"hidden\";var a=this.editor.getOption(49),l=this.editor.getLayoutInfo().height/a*.8;t>=l&&(t=l);var u=0,d=0;if(this._arrow&&this.options.showArrow&&(u=Math.round(a/3),this._arrow.height=u,this._arrow.show(i)),\nthis.options.showFrame&&(d=Math.round(a/9)),this.editor.changeViewZones((function(e){n._viewZone&&e.removeZone(n._viewZone.id),n._overlayWidget&&(n.editor.removeOverlayWidget(n._overlayWidget),n._overlayWidget=null),n.domNode.style.top=\"-1000px\",n._viewZone=new h(s,i.lineNumber,i.column,t,(function(e){return n._onViewZoneTop(e)}),(function(e){return n._onViewZoneHeight(e)})),n._viewZone.id=e.addZone(n._viewZone),n._overlayWidget=new p(\"vs.editor.contrib.zoneWidget\"+n._viewZone.id,n.domNode),n.editor.addOverlayWidget(n._overlayWidget)})),this.container&&this.options.showFrame){var c=this.options.frameWidth?this.options.frameWidth:d;this.container.style.borderTopWidth=c+\"px\",this.container.style.borderBottomWidth=c+\"px\"}var g=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=u+\"px\",this.container.style.height=g+\"px\",this.container.style.overflow=\"hidden\"),this._doLayout(g,r),this.options.keepEditorSelection||this.editor.setSelection(e);var f=this.editor.getModel();if(f){\nvar m=e.endLineNumber+1;m<=f.getLineCount()?this.revealLine(m,!1):this.revealLine(f.getLineCount(),!0)}},e.prototype.revealLine=function(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)},e.prototype.setCssClass=function(e,t){this.container&&(t&&this.container.classList.remove(t),n.addClass(this.container,e))},e.prototype._onWidth=function(e){},e.prototype._doLayout=function(e,t){},e.prototype._relayout=function(e){var t=this;this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((function(n){t._viewZone&&(t._viewZone.heightInLines=e,n.layoutZone(t._viewZone.id))}))},e.prototype._initSash=function(){var e,t=this;this._resizeSash||(this._resizeSash=this._disposables.add(new i.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.hide(),this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((function(n){t._viewZone&&(e={startY:n.startY,heightInLines:t._viewZone.heightInLines})}))),\nthis._disposables.add(this._resizeSash.onDidEnd((function(){e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((function(n){if(e){var i=(n.currentY-e.startY)/t.editor.getOption(49),o=i<0?Math.ceil(i):Math.floor(i),r=e.heightInLines+o;r>5&&r<35&&t._relayout(r)}}))))},e.prototype.getHorizontalSashLeft=function(){return 0},e.prototype.getHorizontalSashTop=function(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2},e.prototype.getHorizontalSashWidth=function(){var e=this.editor.getLayoutInfo();return e.width-e.minimapWidth},e}();t.ZoneWidget=f})),define(n[216],i([0,1,107,17,63,203]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new a(e,t);var n=a.getStackElementId(e)\n;n.length>0&&(n+=\"|\"),n+=t;var i=this._entries[n];return i||(i=new a(e,t),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),a=function(){function e(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}return e.getStackElementId=function(e){for(var t=\"\";null!==e;)t.length>0&&(t+=\"|\"),t+=e.state,e=e.parent;return t},e._equals=function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t},e.prototype.equals=function(t){return e._equals(this,t)},e.prototype.push=function(e){return s.create(this,e)},e.prototype.pop=function(){return this.parent},e.prototype.popall=function(){for(var e=this;e.parent;)e=e.parent;return e},e.prototype.switchTo=function(e){return s.create(this.parent,e)},e}(),l=function(){function e(e,t){this.modeId=e,this.state=t}return e.prototype.equals=function(e){return this.modeId===e.modeId&&this.state.equals(e.state)},e.prototype.clone=function(){\nreturn this.state.clone()===this.state?this:new e(this.modeId,this.state)},e}(),u=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==t)return new d(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new d(e,t);var n=a.getStackElementId(e),i=this._entries[n];return i||(i=new d(e,null),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),d=function(){function e(e,t){this.stack=e,this.embeddedModeData=t}return e.prototype.clone=function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:u.create(this.stack,this.embeddedModeData)},e.prototype.equals=function(t){return t instanceof e&&(!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData)))},e}(),c=function(){function e(){this._tokens=[],\nthis._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return e.prototype.enterMode=function(e,t){this._language=t},e.prototype.emit=function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new n.Token(e,t,this._language)))},e.prototype.nestedModeTokenize=function(e,t,n){var o=t.modeId,r=t.state,s=i.TokenizationRegistry.get(o);if(!s)return this.enterMode(n,o),this.emit(n,\"\"),r;var a=s.tokenize(e,r,n);return this._tokens=this._tokens.concat(a.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,a.endState},e.prototype.finalize=function(e){return new n.TokenizationResult(this._tokens,e)},e}(),h=function(){function e(e,t){this._modeService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return e.prototype.enterMode=function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id},\ne.prototype.emit=function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))},e._merge=function(e,t,n){var i=null!==e?e.length:0,o=t.length,r=null!==n?n.length:0;if(0===i&&0===o&&0===r)return new Uint32Array(0);if(0===i&&0===o)return n;if(0===o&&0===r)return e;var s=new Uint32Array(i+o+r);null!==e&&s.set(e);for(var a=0;a<o;a++)s[i+a]=t[a];return null!==n&&s.set(n,i+o),s},e.prototype.nestedModeTokenize=function(t,n,o){var r=n.modeId,s=n.state,a=i.TokenizationRegistry.get(r);if(!a)return this.enterMode(o,r),this.emit(o,\"\"),s;var l=a.tokenize2(t,s,o);return this._prependTokens=e._merge(this._prependTokens,this._tokens,l.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,l.endState},e.prototype.finalize=function(t){return new n.TokenizationResult2(e._merge(this._prependTokens,this._tokens,null),t)},e}(),p=function(){function e(e,t,n,o){var r=this;this._modeService=e,\nthis._standaloneThemeService=t,this._modeId=n,this._lexer=o,this._embeddedModes=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);var s=!1;this._tokenizationRegistryListener=i.TokenizationRegistry.onDidChange((function(e){if(!s){for(var t=!1,n=0,o=e.changedLanguages.length;n<o;n++){var a=e.changedLanguages[n];if(r._embeddedModes[a]){t=!0;break}}t&&(s=!0,i.TokenizationRegistry.fire([r._modeId]),s=!1)}}))}return e.prototype.dispose=function(){this._tokenizationRegistryListener.dispose()},e.prototype.getLoadStatus=function(){var t=[];for(var n in this._embeddedModes){var o=i.TokenizationRegistry.get(n);if(o){if(o instanceof e){var r=o.getLoadStatus();!1===r.loaded&&t.push(r.promise)}}else{var s=i.TokenizationRegistry.getPromise(n);s&&t.push(s)}}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((function(e){}))}},e.prototype.getInitialState=function(){var e=s.create(null,this._lexer.start);return u.create(e,null)},e.prototype.tokenize=function(e,t,n){\nvar i=new c,o=this._tokenize(e,t,n,i);return i.finalize(o)},e.prototype.tokenize2=function(e,t,n){var i=new h(this._modeService,this._standaloneThemeService.getTheme().tokenTheme),o=this._tokenize(e,t,n,i);return i.finalize(o)},e.prototype._tokenize=function(e,t,n,i){return t.embeddedModeData?this._nestedTokenize(e,t,n,i):this._myTokenize(e,t,n,i)},e.prototype._findLeavingNestedModeOffset=function(e,t){var n=this._lexer.tokenizer[t.stack.state];if(!n&&!(n=r.findRules(this._lexer,t.stack.state)))throw r.createError(this._lexer,\"tokenizer state is not defined: \"+t.stack.state);for(var i=-1,o=!1,s=0,a=n;s<a.length;s++){var l=a[s];if(r.isIAction(l.action)&&\"@pop\"===l.action.nextEmbedded){o=!0;var u=l.regex,d=l.regex.source;\"^(?:\"===d.substr(0,4)&&\")\"===d.substr(d.length-1,1)&&(u=new RegExp(d.substr(4,d.length-5),u.ignoreCase?\"i\":\"\"));var c=e.search(u);-1===c||0!==c&&l.matchOnlyAtLineStart||(-1===i||c<i)&&(i=c)}}\nif(!o)throw r.createError(this._lexer,'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: '+t.stack.state);return i},e.prototype._nestedTokenize=function(e,t,n,i){var o=this._findLeavingNestedModeOffset(e,t);if(-1===o){var r=i.nestedModeTokenize(e,t.embeddedModeData,n);return u.create(t.stack,new l(t.embeddedModeData.modeId,r))}var s=e.substring(0,o);s.length>0&&i.nestedModeTokenize(s,t.embeddedModeData,n);var a=e.substring(o);return this._myTokenize(a,t,n+o,i)},e.prototype._safeRuleName=function(e){return e?e.name:\"(unknown)\"},e.prototype._myTokenize=function(e,t,n,i){i.enterMode(n,this._modeId);for(var o=e.length,s=t.embeddedModeData,a=t.stack,l=0,d=null,c=!0;c||l<o;){var h=l,p=a.depth,f=d?d.groups.length:0,m=a.state,v=null,_=null,y=null,C=null,b=null;if(d){v=d.matches;var S=d.groups.shift();_=S.matched,y=S.action,C=d.rule,0===d.groups.length&&(d=null)}else{if(!c&&l>=o)break;c=!1;var w=this._lexer.tokenizer[m]\n;if(!w&&!(w=r.findRules(this._lexer,m)))throw r.createError(this._lexer,\"tokenizer state is not defined: \"+m);for(var E=e.substr(l),L=0,D=w;L<D.length;L++){var N=D[L];if((0===l||!N.matchOnlyAtLineStart)&&(v=E.match(N.regex))){_=v[0],y=N.action;break}}}if(v||(v=[\"\"],_=\"\"),y||(l<o&&(_=(v=[e.charAt(l)])[0]),y=this._lexer.defaultToken),null===_)break;for(l+=_.length;r.isFuzzyAction(y)&&r.isIAction(y)&&y.test;)y=y.test(_,v,m,l===o);var x=null;if(\"string\"==typeof y||Array.isArray(y))x=y;else if(y.group)x=y.group;else if(null!==y.token&&void 0!==y.token){if(x=y.tokenSubst?r.substituteMatches(this._lexer,y.token,_,v,m):y.token,y.nextEmbedded)if(\"@pop\"===y.nextEmbedded){if(!s)throw r.createError(this._lexer,\"cannot pop embedded mode if not inside one\");s=null}else{if(s)throw r.createError(this._lexer,\"cannot enter embedded mode from within an embedded mode\");b=r.substituteMatches(this._lexer,y.nextEmbedded,_,v,m)}if(y.goBack&&(l=Math.max(0,l-y.goBack)),y.switchTo&&\"string\"==typeof y.switchTo){\nif(\"@\"===(I=r.substituteMatches(this._lexer,y.switchTo,_,v,m))[0]&&(I=I.substr(1)),!r.findRules(this._lexer,I))throw r.createError(this._lexer,\"trying to switch to a state '\"+I+\"' that is undefined in rule: \"+this._safeRuleName(C));a=a.switchTo(I)}else{if(y.transform&&\"function\"==typeof y.transform)throw r.createError(this._lexer,\"action.transform not supported\");if(y.next)if(\"@push\"===y.next){if(a.depth>=this._lexer.maxStack)throw r.createError(this._lexer,\"maximum tokenizer stack size reached: [\"+a.state+\",\"+a.parent.state+\",...]\");a=a.push(m)}else if(\"@pop\"===y.next){if(a.depth<=1)throw r.createError(this._lexer,\"trying to pop an empty stack in rule: \"+this._safeRuleName(C));a=a.pop()}else if(\"@popall\"===y.next)a=a.popall();else{var I;if(\"@\"===(I=r.substituteMatches(this._lexer,y.next,_,v,m))[0]&&(I=I.substr(1)),!r.findRules(this._lexer,I))throw r.createError(this._lexer,\"trying to set a next state '\"+I+\"' that is undefined in rule: \"+this._safeRuleName(C));a=a.push(I)}}\ny.log&&\"string\"==typeof y.log&&r.log(this._lexer,this._lexer.languageId+\": \"+r.substituteMatches(this._lexer,y.log,_,v,m))}if(null===x)throw r.createError(this._lexer,\"lexer rule has no well-defined action in rule: \"+this._safeRuleName(C));if(Array.isArray(x)){if(d&&d.groups.length>0)throw r.createError(this._lexer,\"groups cannot be nested: \"+this._safeRuleName(C));if(v.length!==x.length+1)throw r.createError(this._lexer,\"matched number of groups does not match the number of actions in rule: \"+this._safeRuleName(C));for(var M=0,k=1;k<v.length;k++)M+=v[k].length;if(M!==_.length)throw r.createError(this._lexer,\"with groups, all characters should be matched in consecutive groups in rule: \"+this._safeRuleName(C));d={rule:C,matches:v,groups:[]};for(k=0;k<x.length;k++)d.groups[k]={action:x[k],matched:v[k+1]};l-=_.length}else{if(\"@rematch\"===x&&(l-=_.length,_=\"\",v=null,x=\"\"),0===_.length){if(0===o||p!==a.depth||m!==a.state||(d?d.groups.length:0)!==f)continue\n;throw r.createError(this._lexer,\"no progress in tokenizer in rule: \"+this._safeRuleName(C))}var T=null;if(r.isString(x)&&0===x.indexOf(\"@brackets\")){var R=x.substr(\"@brackets\".length),O=g(this._lexer,_);if(!O)throw r.createError(this._lexer,\"@brackets token returned but no bracket defined as: \"+_);T=r.sanitize(O.token+R)}else{var P=\"\"===x?\"\":x+this._lexer.tokenPostfix;T=r.sanitize(P)}if(i.emit(h+n,T),null!==b){var A=this._modeService.getModeIdForLanguageName(b);A&&(b=A);var F=this._getNestedEmbeddedModeData(b);if(l<o){E=e.substr(l);return this._nestedTokenize(E,u.create(a,F),n+l,i)}return u.create(a,F)}}}return u.create(a,s)},e.prototype._getNestedEmbeddedModeData=function(e){var t=this._locateMode(e);if(t){var n=i.TokenizationRegistry.get(t);if(n)return new l(t,n.getInitialState())}return new l(t||o.NULL_MODE_ID,o.NULL_STATE)},e.prototype._locateMode=function(e){if(!e||!this._modeService.isRegisteredMode(e))return null;if(e===this._modeId)return e;var t=this._modeService.getModeId(e)\n;return t&&(this._modeService.triggerMode(t),this._embeddedModes[t]=!0),t},e}();function g(e,t){if(!t)return null;t=r.fixCase(e,t);for(var n=0,i=e.brackets;n<i.length;n++){var o=i[n];if(o.open===t)return{token:o.token,bracketType:1};if(o.close===t)return{token:o.token,bracketType:-1}}return null}t.MonarchTokenizer=p,t.createTokenizationSupport=function(e,t,n,i){return new p(e,t,n,i)}})),define(n[494],i([0,1,15,5,93,17,110,69,216]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(){}return e.colorizeElement=function(e,t,n,i){var o=(i=i||{}).theme||\"vs\",r=i.mimeType||n.getAttribute(\"lang\")||n.getAttribute(\"data-lang\");if(!r)return console.error(\"Mode not detected\"),Promise.resolve();e.setTheme(o);var s=n.firstChild?n.firstChild.nodeValue:\"\";n.className+=\" \"+o;return this.colorize(t,s||\"\",r,i).then((function(e){n.innerHTML=e}),(function(e){return console.error(e)}))},e.colorize=function(e,t,o,s){var a=4\n;s&&\"number\"==typeof s.tabSize&&(a=s.tabSize),i.startsWithUTF8BOM(t)&&(t=t.substr(1));var l=t.split(/\\r\\n|\\r|\\n/),u=e.getModeId(o);if(!u)return Promise.resolve(c(l,a));e.triggerMode(u);var h=r.TokenizationRegistry.get(u);if(h)return d(l,a,h);var p=r.TokenizationRegistry.getPromise(u);return p?new Promise((function(e,t){p.then((function(n){d(l,a,n).then(e,t)}),t)})):new Promise((function(e,t){var i=null,o=null,s=function(){i&&(i.dispose(),i=null),o&&(o.dispose(),o=null);var n=r.TokenizationRegistry.get(u);n?d(l,a,n).then(e,t):e(c(l,a))};(o=new n.TimeoutTimer).cancelAndSet(s,500),i=r.TokenizationRegistry.onDidChange((function(e){e.changedLanguages.indexOf(u)>=0&&s()}))}))},e.colorizeLine=function(e,t,n,i,o){void 0===o&&(o=4);var r=a.ViewLineRenderingData.isBasicASCII(e,t),l=a.ViewLineRenderingData.containsRTL(e,r,n);return s.renderViewLine2(new s.RenderLineInput(!1,!0,e,!1,r,l,0,i,[],o,0,0,0,-1,\"none\",!1,!1,null)).html},e.colorizeModelLine=function(e,t,n){void 0===n&&(n=4);var i=e.getLineContent(t)\n;e.forceTokenization(t);var o=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,n)},e}();function d(e,t,n){return new Promise((function(i,r){var u=function(){var d=function(e,t,n){for(var i=[],r=n.getInitialState(),l=0,u=e.length;l<u;l++){var d=e[l],c=n.tokenize2(d,r,0);o.LineTokens.convertToEndOffset(c.tokens,d.length);var h=new o.LineTokens(c.tokens,d),p=a.ViewLineRenderingData.isBasicASCII(d,!0),g=a.ViewLineRenderingData.containsRTL(d,p,!0),f=s.renderViewLine2(new s.RenderLineInput(!1,!0,d,!1,p,g,0,h.inflate(),[],t,0,0,0,-1,\"none\",!1,!1,null));(i=i.concat(f.html)).push(\"<br/>\"),r=c.endState}return i.join(\"\")}(e,t,n);if(n instanceof l.MonarchTokenizer){var c=n.getLoadStatus();if(!1===c.loaded)return void c.promise.then(u,r)}i(d)};u()}))}function c(e,t){var n=[],i=new Uint32Array(2);i[0]=0,i[1]=16793600;for(var r=0,l=e.length;r<l;r++){var u=e[r];i[0]=u.length\n;var d=new o.LineTokens(i,u),c=a.ViewLineRenderingData.isBasicASCII(u,!0),h=a.ViewLineRenderingData.containsRTL(u,c,!0),p=s.renderViewLine2(new s.RenderLineInput(!1,!0,u,!1,c,h,0,d,[],t,0,0,0,-1,\"none\",!1,!1,null));(n=n.concat(p.html)).push(\"<br/>\")}return n.join(\"\")}t.Colorizer=u})),define(n[94],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IStandaloneThemeService=n.createDecorator(\"themeService\")})),define(n[162],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IClipboardService=n.createDecorator(\"clipboardService\")}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[29],i([0,1,2,21,11,4,76,38]),(function(e,t,n,i,o,r,s,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICommandService=o.createDecorator(\"commandService\"),\nt.CommandsRegistry=new(function(){function e(){this._commands=new Map,this._onDidRegisterCommand=new r.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}return e.prototype.registerCommand=function(e,t){var o=this;if(!e)throw new Error(\"invalid command\");if(\"string\"==typeof e){if(!t)throw new Error(\"invalid command\");return this.registerCommand({id:e,handler:t})}if(e.description){for(var r=[],l=0,u=e.description.args;l<u.length;l++){var d=u[l];r.push(d.constraint)}var c=e.handler;e.handler=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return i.validateConstraints(t,r),c.apply(void 0,a([e],t))}}var h=e.id,p=this._commands.get(h);p||(p=new s.LinkedList,this._commands.set(h,p));var g=p.unshift(e),f=n.toDisposable((function(){g();var e=o._commands.get(h);(null==e?void 0:e.isEmpty())&&o._commands.delete(h)}));return this._onDidRegisterCommand.fire(h),f},e.prototype.registerCommandAlias=function(e,n){return t.CommandsRegistry.registerCommand(e,(function(e){\nfor(var i,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];return(i=e.get(t.ICommandService)).executeCommand.apply(i,a([n],o))}))},e.prototype.getCommand=function(e){var t=this._commands.get(e);if(t&&!t.isEmpty())return t.iterator().next().value},e.prototype.getCommands=function(){for(var e=new Map,t=0,n=l.keys(this._commands);t<n.length;t++){var i=n[t],o=this.getCommand(i);o&&e.set(i,o)}return e},e}())})),define(n[495],i([0,1,26,10,25,3,17,49,29,2,19]),(function(e,t,n,i,o,s,a,l,u,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(){function e(e,t){this._link=e,this._provider=t}return e.prototype.toJSON=function(){return{range:this.range,url:this.url,tooltip:this.tooltip}},Object.defineProperty(e.prototype,\"range\",{get:function(){return this._link.range},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"url\",{get:function(){return this._link.url},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tooltip\",{get:function(){\nreturn this._link.tooltip},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){return d(this,void 0,void 0,(function(){var t=this;return c(this,(function(n){return this._link.url?[2,this._link.url]:\"function\"==typeof this._provider.resolveLink?[2,Promise.resolve(this._provider.resolveLink(this._link,e)).then((function(n){return t._link=n||t._link,t._link.url?t.resolve(e):Promise.reject(new Error(\"missing\"))}))]:[2,Promise.reject(new Error(\"missing\"))]}))}))},e}();t.Link=g;var f=function(e){function t(n){for(var i=e.call(this)||this,o=[],r=function(e,n){var i=e.links.map((function(e){return new g(e,n)}));o=t._union(o,i),h.isDisposable(n)&&s._register(n)},s=this,a=0,l=n;a<l.length;a++){var u=l[a];r(u[0],u[1])}return i.links=o,i}return r(t,e),t._union=function(e,t){var n,i,o,r,a=[];for(n=0,o=0,i=e.length,r=t.length;n<i&&o<r;){var l=e[n],u=t[o];if(s.Range.areIntersectingOrTouching(l.range,u.range))n++;else s.Range.compareRangesUsingStarts(l.range,u.range)<0?(a.push(l),n++):(a.push(u),o++)}\nfor(;n<i;n++)a.push(e[n]);for(;o<r;o++)a.push(t[o]);return a},t}(h.Disposable);function m(e,t){var n=[],o=a.LinkProviderRegistry.ordered(e).reverse().map((function(o,r){return Promise.resolve(o.provideLinks(e,t)).then((function(e){e&&(n[r]=[e,o])}),i.onUnexpectedExternalError)}));return Promise.all(o).then((function(){var e=new f(p.coalesce(n));return t.isCancellationRequested?(e.dispose(),new f([])):e}))}t.LinksList=f,t.getLinks=m,u.CommandsRegistry.registerCommand(\"_executeLinkProvider\",(function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return d(void 0,void 0,void 0,(function(){var i,r,s,a;return c(this,(function(u){switch(u.label){case 0:return(i=t[0])instanceof o.URI&&(r=e.get(l.IModelService).getModel(i))?[4,m(r,n.CancellationToken.None)]:[2,[]];case 1:return(s=u.sent())?(a=s.links.slice(0),s.dispose(),[2,a]):[2,[]]}}))}))}))})),define(n[496],i([0,1,25,3,49,26,84,489,87,29,21]),(function(e,t,n,i,o,r,s,a,l,u,h){\"use strict\";function p(e,t,n){return d(this,void 0,void 0,(function(){\nvar i,o,r,s,u,d;return c(this,(function(c){switch(c.label){case 0:return[4,a.OutlineModel.create(e,n)];case 1:for(i=c.sent(),o=[],r=0,s=l.values(i.children);r<s.length;r++)(u=s[r])instanceof a.OutlineElement?o.push(u.symbol):o.push.apply(o,l.values(u.children).map((function(e){return e.symbol})));return d=[],n.isCancellationRequested?[2,d]:(t?function e(t,n,i){for(var o=0,r=n;o<r.length;o++){var s=r[o];t.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&e(t,s.children,s.name)}}(d,o,\"\"):d=o,[2,d.sort(g)])}}))}))}function g(e,t){return i.Range.compareRangesUsingStarts(e.range,t.range)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDocumentSymbols=p,u.CommandsRegistry.registerCommand(\"_executeDocumentSymbolProvider\",(function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return d(this,void 0,void 0,(function(){var i,a,l;return c(this,(function(u){switch(u.label){case 0:\nreturn i=t[0],h.assertType(n.URI.isUri(i)),(a=e.get(o.IModelService).getModel(i))?[2,p(a,!1,r.CancellationToken.None)]:[4,e.get(s.ITextModelService).createModelReference(i)];case 1:l=u.sent(),u.label=2;case 2:return u.trys.push([2,,4,5]),[4,p(l.object.textEditorModel,!1,r.CancellationToken.None)];case 3:return[2,u.sent()];case 4:return l.dispose(),[7];case 5:return[2]}}))}))}))})),define(n[18],i([0,1,5,11]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.has=function(e){return a.create(e)},e.equals=function(e,t){return l.create(e,t)},e.regex=function(e,t){return c.create(e,t)},e.not=function(e){return d.create(e)},e.and=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return p.create(e)},e.or=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return g.create(e)},e.deserialize=function(e,t){if(void 0===t&&(t=!1),e)return this._deserializeOrExpression(e,t)},e._deserializeOrExpression=function(e,t){\nvar n=this,i=e.split(\"||\");return g.create(i.map((function(e){return n._deserializeAndExpression(e,t)})))},e._deserializeAndExpression=function(e,t){var n=this,i=e.split(\"&&\");return p.create(i.map((function(e){return n._deserializeOne(e,t)})))},e._deserializeOne=function(e,t){if((e=e.trim()).indexOf(\"!=\")>=0){var n=e.split(\"!=\");return u.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf(\"==\")>=0){n=e.split(\"==\");return l.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf(\"=~\")>=0){n=e.split(\"=~\");return c.create(n[0].trim(),this._deserializeRegexValue(n[1],t))}return/^\\!\\s*/.test(e)?d.create(e.substr(1).trim()):a.create(e)},e._deserializeValue=function(e,t){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;var n=/^'([^']*)'$/.exec(e);return n?n[1].trim():e},e._deserializeRegexValue=function(e,t){if(n.isFalsyOrWhitespace(e)){if(t)throw new Error(\"missing regexp-value for =~-expression\");return console.warn(\"missing regexp-value for =~-expression\"),null}\nvar i=e.indexOf(\"/\"),o=e.lastIndexOf(\"/\");if(i===o||i<0){if(t)throw new Error(\"bad regexp-value '\"+e+\"', missing /-enclosure\");return console.warn(\"bad regexp-value '\"+e+\"', missing /-enclosure\"),null}var r=e.slice(i+1,o),s=\"i\"===e[o+1]?\"i\":\"\";try{return new RegExp(r,s)}catch(n){if(t)throw new Error(\"bad regexp-value '\"+e+\"', parse error: \"+n);return console.warn(\"bad regexp-value '\"+e+\"', parse error: \"+n),null}},e}();function s(e,t){var n=e.getType(),i=t.getType();if(n!==i)return n-i;switch(n){case 1:case 2:case 3:case 4:case 6:case 7:case 5:return e.cmp(t);default:throw new Error(\"Unknown ContextKeyExpr!\")}}t.ContextKeyExpr=o;var a=function(){function e(e){this.key=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 1},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!!e.getValue(this.key)},e.prototype.keys=function(){return[this.key]},\ne.prototype.negate=function(){return d.create(this.key)},e}();t.ContextKeyDefinedExpr=a;var l=function(){function e(e,t){this.key=e,this.value=t}return e.create=function(t,n){return\"boolean\"==typeof n?n?a.create(t):d.create(t):new e(t,n)},e.prototype.getType=function(){return 3},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:this.value<e.value?-1:this.value>e.value?1:0},e.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)==this.value},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return u.create(this.key,this.value)},e}();t.ContextKeyEqualsExpr=l;var u=function(){function e(e,t){this.key=e,this.value=t}return e.create=function(t,n){return\"boolean\"==typeof n?n?d.create(t):a.create(t):new e(t,n)},e.prototype.getType=function(){return 4},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:this.value<e.value?-1:this.value>e.value?1:0},\ne.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)!=this.value},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return l.create(this.key,this.value)},e}();t.ContextKeyNotEqualsExpr=u;var d=function(){function e(e){this.key=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 2},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!e.getValue(this.key)},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return a.create(this.key)},e}();t.ContextKeyNotExpr=d;var c=function(){function e(e,t){this.key=e,this.regexp=t}return e.create=function(t,n){return new e(t,n)},e.prototype.getType=function(){return 6},e.prototype.cmp=function(e){if(this.key<e.key)return-1;if(this.key>e.key)return 1\n;var t=this.regexp?this.regexp.source:\"\",n=e.regexp?e.regexp.source:\"\";return t<n?-1:t>n?1:0},e.prototype.equals=function(t){if(t instanceof e){var n=this.regexp?this.regexp.source:\"\",i=t.regexp?t.regexp.source:\"\";return this.key===t.key&&n===i}return!1},e.prototype.evaluate=function(e){var t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return h.create(this)},e}();t.ContextKeyRegexExpr=c;var h=function(){function e(e){this._actual=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 7},e.prototype.cmp=function(e){return this._actual.cmp(e._actual)},e.prototype.equals=function(t){return t instanceof e&&this._actual.equals(t._actual)},e.prototype.evaluate=function(e){return!this._actual.evaluate(e)},e.prototype.keys=function(){return this._actual.keys()},e.prototype.negate=function(){return this._actual},e}();t.ContextKeyNotRegexExpr=h;var p=function(){function e(e){this.expr=e}\nreturn e.create=function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)},e.prototype.getType=function(){return 5},e.prototype.cmp=function(e){if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=s(this.expr[t],e.expr[t]);if(0!==i)return i}return 0},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n<i;n++)if(!this.expr[n].equals(t.expr[n]))return!1;return!0}return!1},e.prototype.evaluate=function(e){for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].evaluate(e))return!1;return!0},e._normalizeArr=function(t){var n=[];if(t){for(var i=0,o=t.length;i<o;i++){var r=t[i];if(r)if(r instanceof e)n=n.concat(r.expr);else{if(r instanceof g)throw new Error('It is not allowed to have an or expression here due to lack of parens! For example \"a && (b||c)\" is not supported, use \"(a&&b) || (a&&c)\" instead.');n.push(r)}}n.sort(s)}return n},\ne.prototype.keys=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t];e.push.apply(e,i.keys())}return e},e.prototype.negate=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t];e.push(i.negate())}return g.create(e)},e}();t.ContextKeyAndExpr=p;var g=function(){function e(e){this.expr=e}return e.create=function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)},e.prototype.getType=function(){return 8},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n<i;n++)if(!this.expr[n].equals(t.expr[n]))return!1;return!0}return!1},e.prototype.evaluate=function(e){for(var t=0,n=this.expr.length;t<n;t++)if(this.expr[t].evaluate(e))return!0;return!1},e._normalizeArr=function(t){var n=[];if(t){for(var i=0,o=t.length;i<o;i++){var r=t[i];r&&(r instanceof e?n=n.concat(r.expr):n.push(r))}n.sort(s)}return n},e.prototype.keys=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t]\n;e.push.apply(e,i.keys())}return e},e.prototype.negate=function(){for(var t=[],n=0,i=this.expr;n<i.length;n++){var r=i[n];t.push(r.negate())}for(var s=function(t){return t instanceof e?t.expr:[t]};t.length>1;){for(var a=t.shift(),l=t.shift(),u=[],d=0,c=s(a);d<c.length;d++)for(var h=c[d],p=0,g=s(l);p<g.length;p++){var f=g[p];u.push(o.and(h,f))}t.unshift(o.or.apply(o,u))}return t[0]},e}();t.ContextKeyOrExpr=g;var f=function(e){function t(t,n){var i=e.call(this,t)||this;return i._defaultValue=n,i}return r(t,e),t.prototype.bindTo=function(e){return e.createKey(this.key,this._defaultValue)},t.prototype.getValue=function(e){return e.getContextKeyValue(this.key)},t.prototype.toNegated=function(){return o.not(this.key)},t}(a);t.RawContextKey=f,t.IContextKeyService=i.createDecorator(\"contextKeyService\"),t.SET_CONTEXT_COMMAND_ID=\"setContext\"})),define(n[23],i([0,1,18]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){\ne.editorSimpleInput=new n.RawContextKey(\"editorSimpleInput\",!1),e.editorTextFocus=new n.RawContextKey(\"editorTextFocus\",!1),e.focus=new n.RawContextKey(\"editorFocus\",!1),e.textInputFocus=new n.RawContextKey(\"textInputFocus\",!1),e.readOnly=new n.RawContextKey(\"editorReadonly\",!1),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new n.RawContextKey(\"editorHasSelection\",!1),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new n.RawContextKey(\"editorHasMultipleSelections\",!1),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new n.RawContextKey(\"editorTabMovesFocus\",!1),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInEmbeddedEditor=new n.RawContextKey(\"isInEmbeddedEditor\",!1),e.canUndo=new n.RawContextKey(\"canUndo\",!1),e.canRedo=new n.RawContextKey(\"canRedo\",!1),e.languageId=new n.RawContextKey(\"editorLangId\",\"\"),e.hasCompletionItemProvider=new n.RawContextKey(\"editorHasCompletionItemProvider\",!1),\ne.hasCodeActionsProvider=new n.RawContextKey(\"editorHasCodeActionsProvider\",!1),e.hasCodeLensProvider=new n.RawContextKey(\"editorHasCodeLensProvider\",!1),e.hasDefinitionProvider=new n.RawContextKey(\"editorHasDefinitionProvider\",!1),e.hasDeclarationProvider=new n.RawContextKey(\"editorHasDeclarationProvider\",!1),e.hasImplementationProvider=new n.RawContextKey(\"editorHasImplementationProvider\",!1),e.hasTypeDefinitionProvider=new n.RawContextKey(\"editorHasTypeDefinitionProvider\",!1),e.hasHoverProvider=new n.RawContextKey(\"editorHasHoverProvider\",!1),e.hasDocumentHighlightProvider=new n.RawContextKey(\"editorHasDocumentHighlightProvider\",!1),e.hasDocumentSymbolProvider=new n.RawContextKey(\"editorHasDocumentSymbolProvider\",!1),e.hasReferenceProvider=new n.RawContextKey(\"editorHasReferenceProvider\",!1),e.hasRenameProvider=new n.RawContextKey(\"editorHasRenameProvider\",!1),e.hasSignatureHelpProvider=new n.RawContextKey(\"editorHasSignatureHelpProvider\",!1),\ne.hasDocumentFormattingProvider=new n.RawContextKey(\"editorHasDocumentFormattingProvider\",!1),e.hasDocumentSelectionFormattingProvider=new n.RawContextKey(\"editorHasDocumentSelectionFormattingProvider\",!1),e.hasMultipleDocumentFormattingProvider=new n.RawContextKey(\"editorHasMultipleDocumentFormattingProvider\",!1),e.hasMultipleDocumentSelectionFormattingProvider=new n.RawContextKey(\"editorHasMultipleDocumentSelectionFormattingProvider\",!1)}(t.EditorContextKeys||(t.EditorContextKeys={}))}));var g=this&&this.__param||function(e,t){return function(n,i){t(n,i,e)}};define(n[497],i([0,1,2,18]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(t,n){this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(n)}return e.prototype.dispose=function(){this.reset()},e.prototype.reset=function(){this._ckOtherSuggestions.reset(),n.dispose(this._listener),this._model=void 0,this._acceptNext=void 0,this._ignore=!1},e.prototype.set=function(t,n){\nvar i=this,o=t.model,r=t.index;0!==o.items.length?e._moveIndex(!0,o,r)!==r?(this._acceptNext=n,this._model=o,this._index=r,this._listener=this._editor.onDidChangeCursorPosition((function(){i._ignore||i.reset()})),this._ckOtherSuggestions.set(!0)):this.reset():this.reset()},e._moveIndex=function(e,t,n){for(var i=n;(i=(i+t.items.length+(e?1:-1))%t.items.length)!==n&&t.items[i].completion.additionalTextEdits;);return i},e.prototype.next=function(){this._move(!0)},e.prototype.prev=function(){this._move(!1)},e.prototype._move=function(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}},e.OtherSuggestions=new i.RawContextKey(\"hasOtherSuggestions\",!1),e=h([g(1,i.IContextKeyService)],e)}();t.SuggestAlternatives=o})),define(n[498],i([0,1,18,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(n,i){\nvar o=e.call(this)||this;return o._editor=n,o._enabled=!1,o._ckAtEnd=t.AtEnd.bindTo(i),o._register(o._editor.onDidChangeConfiguration((function(e){return e.hasChanged(94)&&o._update()}))),o._update(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),i.dispose(this._selectionListener),this._ckAtEnd.reset()},t.prototype._update=function(){var e=this,t=\"on\"===this._editor.getOption(94);if(this._enabled!==t)if(this._enabled=t,this._enabled){var n=function(){if(e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getSelection(),i=t.getWordAtPosition(n.getStartPosition());i?e._ckAtEnd.set(i.endColumn===n.getStartPosition().column):e._ckAtEnd.set(!1)}else e._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(n),n()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)},t.AtEnd=new n.RawContextKey(\"atEndOfWord\",!1),t=h([g(1,n.IContextKeyService)],t)}(i.Disposable);t.WordContextKey=o})),\ndefine(n[64],i([0,1,11,18]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IAccessibilityService=n.createDecorator(\"accessibilityService\"),t.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new i.RawContextKey(\"accessibilityModeEnabled\",!1)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[65],i([0,1,55,11,18,29,4]),(function(e,t,n,i,o,s,l){\"use strict\";function u(e){return void 0!==e.command}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isIMenuItem=u,t.IMenuService=i.createDecorator(\"menuService\"),t.MenuRegistry=new(function(){function e(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new l.Emitter,this.onDidChangeMenu=this._onDidChangeMenu.event}return e.prototype.addCommand=function(e){var t=this;return this._commands.set(e.id,e),this._onDidChangeMenu.fire(0),{dispose:function(){\nt._commands.delete(e.id)&&t._onDidChangeMenu.fire(0)}}},e.prototype.getCommand=function(e){return this._commands.get(e)},e.prototype.getCommands=function(){var e=new Map;return this._commands.forEach((function(t,n){return e.set(n,t)})),e},e.prototype.appendMenuItem=function(e,t){var n=this,i=this._menuItems.get(e);return i?i.push(t):(i=[t],this._menuItems.set(e,i)),this._onDidChangeMenu.fire(e),{dispose:function(){var o=i.indexOf(t);o>=0&&(i.splice(o,1),n._onDidChangeMenu.fire(e))}}},e.prototype.getMenuItems=function(e){var t=(this._menuItems.get(e)||[]).slice(0);return 0===e&&this._appendImplicitItems(t),t},e.prototype._appendImplicitItems=function(e){for(var t=new Set,n=0,i=e.filter((function(e){return u(e)}));n<i.length;n++){var o=i[n],r=o.command,s=o.alt;t.add(r.id),s&&t.add(s.id)}this._commands.forEach((function(n,i){t.has(i)||e.push({command:n})}))},e}());var d=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._commandService=i,o}return r(t,e),t.prototype.run=function(){\nfor(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(e=this._commandService).executeCommand.apply(e,a([this.id],t))},t=h([g(2,s.ICommandService)],t)}(n.Action);t.ExecuteCommandAction=d;var c=function(e){function t(t){var n=this;return(n=\"string\"==typeof t.title?e.call(this,\"\",t.title,\"submenu\")||this:e.call(this,\"\",t.title.value,\"submenu\")||this).item=t,n}return r(t,e),t}(n.Action);t.SubmenuItemAction=c;var p=function(e){function t(n,i,o,r,s){var a=this;return(a=\"string\"==typeof n.title?e.call(this,n.id,n.title,s)||this:e.call(this,n.id,n.title.value,s)||this)._cssClass=void 0,a._enabled=!n.precondition||r.contextMatchesRules(n.precondition),a._checked=Boolean(n.toggled&&r.contextMatchesRules(n.toggled)),a._options=o||{},a.item=n,a.alt=i?new t(i,void 0,a._options,r,s):void 0,a}return r(t,e),t.prototype.dispose=function(){this.alt&&this.alt.dispose(),e.prototype.dispose.call(this)},t.prototype.run=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=[]\n;return this._options.arg&&(i=a(i,[this._options.arg])),this._options.shouldForwardArgs&&(i=a(i,t)),e.prototype.run.apply(this,i)},t=h([g(3,o.IContextKeyService),g(4,s.ICommandService)],t)}(d);t.MenuItemAction=p})),define(n[499],i([0,1,4,2,65,29,18]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._commandService=e}return e.prototype.createMenu=function(e,t){return new l(e,this._commandService,t)},e=h([g(0,r.ICommandService)],e)}();t.MenuService=a;var l=function(){function e(e,t,r){var s=this;this._id=e,this._commandService=t,this._contextKeyService=r,this._onDidChange=new n.Emitter,this._dispoables=new i.DisposableStore,this._menuGroups=[],this._contextKeys=new Set,this._build(),this._dispoables.add(n.Event.debounce(n.Event.filter(o.MenuRegistry.onDidChangeMenu,(function(e){return e===s._id})),(function(){}),50)(this._build,this)),this._dispoables.add(n.Event.debounce(this._contextKeyService.onDidChangeContext,(function(e,t){\nreturn e||t.affectsSome(s._contextKeys)}),50)((function(e){return e&&s._onDidChange.fire(void 0)}),this))}return e.prototype.dispose=function(){this._dispoables.dispose(),this._onDidChange.dispose()},e.prototype._build=function(){this._menuGroups.length=0,this._contextKeys.clear();var t,n=o.MenuRegistry.getMenuItems(this._id);n.sort(e._compareMenuItems);for(var i=0,r=n;i<r.length;i++){var s=r[i],a=s.group||\"\";t&&t[0]===a||(t=[a,[]],this._menuGroups.push(t)),t[1].push(s),e._fillInKbExprKeys(s.when,this._contextKeys),o.isIMenuItem(s)&&s.command.precondition&&e._fillInKbExprKeys(s.command.precondition,this._contextKeys),o.isIMenuItem(s)&&s.command.toggled&&e._fillInKbExprKeys(s.command.toggled,this._contextKeys)}this._onDidChange.fire(this)},e.prototype.getActions=function(e){for(var t=[],n=0,i=this._menuGroups;n<i.length;n++){for(var r=i[n],s=r[0],a=[],l=0,u=r[1];l<u.length;l++){var d=u[l];if(this._contextKeyService.contextMatchesRules(d.when)){\nvar c=o.isIMenuItem(d)?new o.MenuItemAction(d.command,d.alt,e,this._contextKeyService,this._commandService):new o.SubmenuItemAction(d);a.push(c)}}a.length>0&&t.push([s,a])}return t},e._fillInKbExprKeys=function(e,t){if(e)for(var n=0,i=e.keys();n<i.length;n++){var o=i[n];t.add(o)}},e._compareMenuItems=function(t,n){var i=t.group,r=n.group;if(i!==r){if(!i)return 1;if(!r)return-1;if(\"navigation\"===i)return-1;if(\"navigation\"===r)return 1;var s=i.localeCompare(r);if(0!==s)return s}var a=t.order||0,l=n.order||0;return a<l?-1:a>l?1:e._compareTitles(o.isIMenuItem(t)?t.command.title:t.title,o.isIMenuItem(n)?n.command.title:n.title)},e._compareTitles=function(e,t){var n=\"string\"==typeof e?e:e.value,i=\"string\"==typeof t?t:t.value;return n.localeCompare(i)},e=h([g(1,r.ICommandService),g(2,s.IContextKeyService)],e)}()})),define(n[66],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IContextViewService=n.createDecorator(\"contextViewService\"),\nt.IContextMenuService=n.createDecorator(\"contextMenuService\")})),define(n[500],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDialogService=n.createDecorator(\"dialogService\")})),define(n[115],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._entries=new Map;for(var n=0,i=e;n<i.length;n++){var o=i[n],r=o[0],s=o[1];this.set(r,s)}}return e.prototype.set=function(e,t){var n=this._entries.get(e);return this._entries.set(e,t),n},e.prototype.has=function(e){return this._entries.has(e)},e.prototype.get=function(e){return this._entries.get(e)},e}();t.ServiceCollection=n}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}\n;define(n[501],i([0,1,10,480,209,11,115,15]),(function(e,t,n,i,o,s,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"function\"==typeof Proxy,c=function(e){function t(t){var n=e.call(this,\"cyclic dependency between services\")||this;return n.message=t.toString(),n}return r(t,e),t}(Error),h=function(){function e(e,t,n){void 0===e&&(e=new l.ServiceCollection),void 0===t&&(t=!1),this._services=e,this._strict=t,this._parent=n,this._services.set(s.IInstantiationService,this)}return e.prototype.createChild=function(t){return new e(t,this._strict,this)},e.prototype.invokeFunction=function(e){for(var t=this,i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var r=p.traceInvocation(e),l=!1;try{var u={get:function(e,i){if(l)throw n.illegalState(\"service accessor is only valid during the invocation of its target method\");var o=t._getOrCreateServiceInstance(e,r);if(!o&&i!==s.optional)throw new Error(\"[invokeFunction] unknown service '\"+e+\"'\");return o}};return e.apply(void 0,a([u],i))}finally{l=!0,\nr.stop()}},e.prototype.createInstance=function(e){for(var t,n,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];return e instanceof o.SyncDescriptor?(t=p.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(i),t)):(t=p.traceCreation(e),n=this._createInstance(e,i,t)),t.stop(),n},e.prototype._createInstance=function(e,t,n){void 0===t&&(t=[]);for(var i=s._util.getServiceDependencies(e).sort((function(e,t){return e.index-t.index})),o=[],r=0,l=i;r<l.length;r++){var u=l[r],d=this._getOrCreateServiceInstance(u.id,n);if(!d&&this._strict&&!u.optional)throw new Error(\"[createInstance] \"+e.name+\" depends on UNKNOWN service \"+u.id+\".\");o.push(d)}var c=i.length>0?i[0].index:t.length;if(t.length!==c){console.warn(\"[createInstance] First service dependency of \"+e.name+\" at position \"+(c+1)+\" conflicts with \"+t.length+\" static arguments\");var h=c-t.length;t=h>0?t.concat(new Array(h)):t.slice(0,c)}return new(e.bind.apply(e,a([void 0],a(t,o))))},e.prototype._setServiceInstance=function(e,t){\nif(this._services.get(e)instanceof o.SyncDescriptor)this._services.set(e,t);else{if(!this._parent)throw new Error(\"illegalState - setting UNKNOWN service instance\");this._parent._setServiceInstance(e,t)}},e.prototype._getServiceInstanceOrDescriptor=function(e){var t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t},e.prototype._getOrCreateServiceInstance=function(e,t){var n=this._getServiceInstanceOrDescriptor(e);return n instanceof o.SyncDescriptor?this._createAndCacheServiceInstance(e,n,t.branch(e,!0)):(t.branch(e,!1),n)},e.prototype._createAndCacheServiceInstance=function(e,t,n){for(var r=new i.Graph((function(e){return e.id.toString()})),a=0,l=[{id:e,desc:t,_trace:n}];l.length;){var u=l.pop();if(r.lookupOrInsertNode(u),a++>150)throw new c(r);for(var d=0,h=s._util.getServiceDependencies(u.desc.ctor);d<h.length;d++){var p=h[d],g=this._getServiceInstanceOrDescriptor(p.id)\n;if(g||p.optional||console.warn(\"[createInstance] \"+e+\" depends on \"+p.id+\" which is NOT registered.\"),g instanceof o.SyncDescriptor){var f={id:p.id,desc:g,_trace:u._trace.branch(p.id,!0)};r.insertEdge(u,f),l.push(f)}}}for(;;){var m=r.roots();if(0===m.length){if(!r.isEmpty())throw new c(r);break}for(var v=0,_=m;v<_.length;v++){var y=_[v].data,C=this._createServiceInstanceWithOwner(y.id,y.desc.ctor,y.desc.staticArguments,y.desc.supportsDelayedInstantiation,y._trace);this._setServiceInstance(y.id,C),r.removeNode(y)}}return this._getServiceInstanceOrDescriptor(e)},e.prototype._createServiceInstanceWithOwner=function(e,t,n,i,r){if(void 0===n&&(n=[]),this._services.get(e)instanceof o.SyncDescriptor)return this._createServiceInstance(t,n,i,r);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,n,i,r);throw new Error(\"illegalState - creating UNKNOWN service instance \"+t.name)},e.prototype._createServiceInstance=function(e,t,n,i){var o=this;if(void 0===t&&(t=[]),n&&d){\nvar r=new u.IdleValue((function(){return o._createInstance(e,t,i)}));return new Proxy(Object.create(null),{get:function(e,t){if(t in e)return e[t];var n=r.getValue(),i=n[t];return\"function\"!=typeof i?i:(i=i.bind(n),e[t]=i,i)},set:function(e,t,n){return r.getValue()[t]=n,!0}})}return this._createInstance(e,t,i)},e}();t.InstantiationService=h;var p=function(){function e(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}return e.traceInvocation=function(t){return e._None},e.traceCreation=function(t){return e._None},e.prototype.branch=function(t,n){var i=new e(2,t.toString());return this._dep.push([t,n,i]),i},e.prototype.stop=function(){var t=Date.now()-this._start;e._totals+=t;var n=!1;var i=[(0===this.type?\"CREATE\":\"CALL\")+\" \"+this.name,\"\"+function e(t,i){for(var o=[],r=new Array(t+1).join(\"\\t\"),s=0,a=i._dep;s<a.length;s++){var l=a[s],u=l[0],d=l[1],c=l[2];if(d&&c){n=!0,o.push(r+\"CREATES -> \"+u);var h=e(t+1,c);h&&o.push(h)}else o.push(r+\"uses -> \"+u)}return o.join(\"\\n\")\n}(1,this),\"DONE, took \"+t.toFixed(2)+\"ms (grand total \"+e._totals.toFixed(2)+\"ms)\"];(t>2||n)&&console.log(i.join(\"\\n\"))},e._None=new(function(e){function t(){return e.call(this,-1,null)||this}return r(t,e),t.prototype.stop=function(){},t.prototype.branch=function(){return this},t}(e)),e._totals=0,e}()})),define(n[502],i([0,1,473,15,4,2]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n,r,s){var a=e.call(this)||this;return a._contextKeyService=t,a._commandService=n,a._telemetryService=r,a._notificationService=s,a._onDidUpdateKeybindings=a._register(new o.Emitter),a._currentChord=null,a._currentChordChecker=new i.IntervalTimer,a._currentChordStatusMessage=null,a}return r(t,e),Object.defineProperty(t.prototype,\"onDidUpdateKeybindings\",{get:function(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:o.Event.None},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},\nt.prototype.getKeybindings=function(){return this._getResolver().getKeybindings()},t.prototype.lookupKeybinding=function(e){var t=this._getResolver().lookupPrimaryKeybinding(e);if(t)return t.resolvedKeybinding},t.prototype.softDispatch=function(e,t){var n=this.resolveKeyboardEvent(e);if(n.isChord())return console.warn(\"Unexpected keyboard event mapped to a chord\"),null;var i=n.getDispatchParts()[0];if(null===i)return null;var o=this._contextKeyService.getContext(t),r=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,r,i)},t.prototype._enterChordMode=function(e,t){var i=this;this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(n.localize(0,null,t));var o=Date.now();this._currentChordChecker.cancelAndSet((function(){i._documentHasFocus()?Date.now()-o>5e3&&i._leaveChordMode():i._leaveChordMode()}),500)},t.prototype._leaveChordMode=function(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),\nthis._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null},t.prototype._dispatch=function(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t)},t.prototype._doDispatch=function(e,t){var i=this,o=!1;if(e.isChord())return console.warn(\"Unexpected keyboard event mapped to a chord\"),!1;var r=e.getDispatchParts()[0];if(null===r)return o;var s=this._contextKeyService.getContext(t),a=this._currentChord?this._currentChord.keypress:null,l=e.getLabel(),u=this._getResolver().resolve(s,a,r);return u&&u.enterChord?(o=!0,this._enterChordMode(r,l),o):(this._currentChord&&(u&&u.commandId||(this._notificationService.status(n.localize(1,null,this._currentChord.label,l),{hideAfter:1e4}),o=!0)),this._leaveChordMode(),u&&u.commandId&&(u.bubble||(o=!0),void 0===u.commandArgs?this._commandService.executeCommand(u.commandId).then(void 0,(function(e){return i._notificationService.warn(e)})):this._commandService.executeCommand(u.commandId,u.commandArgs).then(void 0,(function(e){\nreturn i._notificationService.warn(e)})),this._telemetryService.publicLog2(\"workbenchActionExecuted\",{id:u.commandId,from:\"keybinding\"})),o)},t.prototype.mightProducePrintableCharacter=function(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)},t}(s.Disposable);t.AbstractKeybindingService=a})),define(n[503],i([0,1,10,207,36]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,i){var o=e.call(this)||this;if(0===i.length)throw n.illegalArgument(\"parts\");return o._os=t,o._parts=i,o}return r(t,e),t.prototype.getLabel=function(){var e=this;return i.UILabelProvider.toLabel(this._os,this._parts,(function(t){return e._getLabel(t)}))},t.prototype.getAriaLabel=function(){var e=this;return i.AriaLabelProvider.toLabel(this._os,this._parts,(function(t){return e._getAriaLabel(t)}))},t.prototype.isChord=function(){return this._parts.length>1},t.prototype.getParts=function(){var e=this\n;return this._parts.map((function(t){return e._getPart(t)}))},t.prototype._getPart=function(e){return new o.ResolvedKeybindingPart(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))},t.prototype.getDispatchParts=function(){var e=this;return this._parts.map((function(t){return e._getDispatchPart(t)}))},t}(o.ResolvedKeybinding);t.BaseResolvedKeybinding=s})),define(n[34],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IKeybindingService=n.createDecorator(\"keybindingService\")})),define(n[217],i([0,1,18]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t,n){this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(var i=0,o=t.length;i<o;i++){var r=t[i].command;r&&this._defaultBoundCommands.set(r,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=e.combine(t,n);for(i=0,o=this._keybindings.length;i<o;i++){var s=this._keybindings[i]\n;0!==s.keypressParts.length&&this._addKeyPress(s.keypressParts[0],s)}}return e._isTargetedForRemoval=function(e,t,n,i,o){if(e.command!==i)return!1;if(t&&e.keypressParts[0]!==t)return!1;if(n&&e.keypressParts[1]!==n)return!1;if(o){if(!e.when)return!1;if(!o.equals(e.when))return!1}return!0},e.combine=function(e,t){e=e.slice(0);for(var n=[],i=0,o=t;i<o.length;i++){var r=o[i];if(r.command&&0!==r.command.length&&\"-\"===r.command.charAt(0))for(var s=r.command.substr(1),a=r.keypressParts[0],l=r.keypressParts[1],u=r.when,d=e.length-1;d>=0;d--)this._isTargetedForRemoval(e[d],a,l,s,u)&&e.splice(d,1);else n.push(r)}return e.concat(n)},e.prototype._addKeyPress=function(t,n){var i=this._map.get(t);if(void 0===i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var o=i.length-1;o>=0;o--){var r=i[o];if(r.command!==n.command){var s=r.keypressParts.length>1,a=n.keypressParts.length>1;s&&a&&r.keypressParts[1]!==n.keypressParts[1]||e.whenIsEntirelyIncluded(r.when,n.when)&&this._removeFromLookupMap(r)}}i.push(n),\nthis._addToLookupMap(n)},e.prototype._addToLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}},e.prototype._removeFromLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);if(void 0!==t)for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return void t.splice(n,1)}},e.whenIsEntirelyIncluded=function(e,t){return!t||!!e&&this._implies(e,t)},e._implies=function(e,t){for(var i=function(e){return e instanceof n.ContextKeyOrExpr?e.expr:[e]},o=i(e.negate()).concat(i(t)),r=0;r<o.length;r++)for(var s=o[r].negate(),a=r+1;a<o.length;a++){var l=o[a];if(s.equals(l))return!0}return!1},e.prototype.getKeybindings=function(){return this._keybindings},e.prototype.lookupPrimaryKeybinding=function(e){var t=this._lookupMap.get(e);return void 0===t||0===t.length?null:t[t.length-1]},e.prototype.resolve=function(e,t,n){var i=null;if(null!==t){if(void 0===(a=this._map.get(t)))return null;i=[];for(var o=0,r=a.length;o<r;o++){var s=a[o]\n;s.keypressParts[1]===n&&i.push(s)}}else{var a;if(void 0===(a=this._map.get(n)))return null;i=a}var l=this._findCommand(e,i);return l?null===t&&l.keypressParts.length>1&&null!==l.keypressParts[1]?{enterChord:!0,commandId:null,commandArgs:null,bubble:!1}:{enterChord:!1,commandId:l.command,commandArgs:l.commandArgs,bubble:l.bubble}:null},e.prototype._findCommand=function(t,n){for(var i=n.length-1;i>=0;i--){var o=n[i];if(e.contextMatchesRules(t,o.when))return o}return null},e.contextMatchesRules=function(e,t){return!t||t.evaluate(e)},e}();t.KeybindingResolver=i})),define(n[504],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,n,o,r){this.resolvedKeybinding=e,this.keypressParts=e?i(e.getDispatchParts()):[],this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=n,this.when=o,this.isDefault=r};function i(e){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];if(!o)return t;t.push(o)}return t}t.ResolvedKeybindingItem=n,\nt.removeElementsAfterNulls=i})),define(n[505],i([0,1,36,503]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n){return e.call(this,n,t.parts)||this}return r(t,e),t.prototype._keyCodeToUILabel=function(e){if(2===this._os)switch(e){case 15:return\"←\";case 16:return\"↑\";case 17:return\"→\";case 18:return\"↓\"}return n.KeyCodeUtils.toString(e)},t.prototype._getLabel=function(e){return e.isDuplicateModifierCase()?\"\":this._keyCodeToUILabel(e.keyCode)},t.prototype._getAriaLabel=function(e){return e.isDuplicateModifierCase()?\"\":n.KeyCodeUtils.toString(e.keyCode)},t.prototype._getDispatchPart=function(e){return t.getDispatchStr(e)},t.getDispatchStr=function(e){if(e.isModifierKey())return null;var t=\"\";return e.ctrlKey&&(t+=\"ctrl+\"),e.shiftKey&&(t+=\"shift+\"),e.altKey&&(t+=\"alt+\"),e.metaKey&&(t+=\"meta+\"),t+=n.KeyCodeUtils.toString(e.keyCode)},t}(i.BaseResolvedKeybinding);t.USLayoutResolvedKeybinding=o})),define(n[116],i([0,1,11]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});t.ILabelService=n.createDecorator(\"label\")})),define(n[218],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILayoutService=n.createDecorator(\"layoutService\")})),define(n[506],i([0,1,265,2,218]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t){var i=e.call(this)||this;return i.layoutService=t,i.contextView=i._register(new n.ContextView(t.container)),i.layout(),i._register(t.onLayout((function(){return i.layout()}))),i}return r(t,e),t.prototype.setContainer=function(e){this.contextView.setContainer(e)},t.prototype.showContextView=function(e){this.contextView.show(e)},t.prototype.layout=function(){this.contextView.layout()},t.prototype.hideContextView=function(e){this.contextView.hide(e)},t=h([g(0,o.ILayoutService)],t)}(i.Disposable);t.ContextViewService=s})),define(n[95],i([0,1,11]),(function(e,t,n){\"use strict\";var i\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILogService=n.createDecorator(\"logService\"),function(e){e[e.Trace=0]=\"Trace\",e[e.Debug=1]=\"Debug\",e[e.Info=2]=\"Info\",e[e.Warning=3]=\"Warning\",e[e.Error=4]=\"Error\",e[e.Critical=5]=\"Critical\",e[e.Off=6]=\"Off\"}(i=t.LogLevel||(t.LogLevel={}));var o=function(){function e(){}return e.prototype.getLevel=function(){return i.Info},e.prototype.trace=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n]},e.prototype.error=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n]},e.prototype.dispose=function(){},e}();t.NullLogService=o})),define(n[219],i([0,1,15,2,182,258,3,17,41,365,49,114,5,19,95,132]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=6e4,S=3e5;function w(e,t){var n=e.getModel(t);return!!n&&!n.isTooLargeForSyncing()}var E=function(e){function t(t,n,i){var o=e.call(this)||this;return o._modelService=t,o._workerManager=o._register(new D(o._modelService)),\no._logService=i,o._register(l.LinkProviderRegistry.register(\"*\",{provideLinks:function(e,t){return w(o._modelService,e.uri)?o._workerManager.withWorker().then((function(t){return t.computeLinks(e.uri)})).then((function(e){return e&&{links:e}})):Promise.resolve({links:[]})}})),o._register(l.CompletionProviderRegistry.register(\"*\",new L(o._workerManager,n,o._modelService))),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.canComputeDiff=function(e,t){return w(this._modelService,e)&&w(this._modelService,t)},t.prototype.computeDiff=function(e,t,n,i){return this._workerManager.withWorker().then((function(o){return o.computeDiff(e,t,n,i)}))},t.prototype.computeMoreMinimalEdits=function(e,t){var n=this;if(_.isNonEmptyArray(t)){if(!w(this._modelService,e))return Promise.resolve(t);var i=C.StopWatch.create(!0),o=this._workerManager.withWorker().then((function(n){return n.computeMoreMinimalEdits(e,t)}));return o.finally((function(){\nreturn n._logService.trace(\"FORMAT#computeMoreMinimalEdits\",e.toString(!0),i.elapsed())})),o}return Promise.resolve(void 0)},t.prototype.canNavigateValueSet=function(e){return w(this._modelService,e)},t.prototype.navigateValueSet=function(e,t,n){return this._workerManager.withWorker().then((function(i){return i.navigateValueSet(e,t,n)}))},t.prototype.canComputeWordRanges=function(e){return w(this._modelService,e)},t.prototype.computeWordRanges=function(e,t){return this._workerManager.withWorker().then((function(n){return n.computeWordRanges(e,t)}))},t=h([g(0,f.IModelService),g(1,m.ITextResourceConfigurationService),g(2,y.ILogService)],t)}(i.Disposable);t.EditorWorkerServiceImpl=E;var L=function(){function e(e,t,n){this._debugDisplayName=\"wordbasedCompletions\",this._workerManager=e,this._configurationService=t,this._modelService=n}return e.prototype.provideCompletionItems=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn this._configurationService.getValue(e.uri,t,\"editor\").wordBasedSuggestions&&w(this._modelService,e.uri)?(n=e.getWordAtPosition(t),i=n?new a.Range(t.lineNumber,n.startColumn,t.lineNumber,n.endColumn):a.Range.fromPositions(t),o=i.setEndPosition(t.lineNumber,t.column),[4,this._workerManager.withWorker()]):[2,void 0];case 1:return[4,s.sent().textualSuggest(e.uri,t)];case 2:return(r=s.sent())?[2,{suggestions:r.map((function(e){return{kind:18,label:e,insertText:e,range:{insert:o,replace:i}}}))}]:[2,void 0]}}))}))},e}(),D=function(e){function t(t){var i=e.call(this)||this;return i._modelService=t,i._editorWorkerClient=null,i._lastWorkerUsedTime=(new Date).getTime(),i._register(new n.IntervalTimer).cancelAndSet((function(){return i._checkStopIdleWorker()}),Math.round(S/2)),i._register(i._modelService.onModelRemoved((function(e){return i._checkStopEmptyWorker()}))),i}return r(t,e),t.prototype.dispose=function(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),\ne.prototype.dispose.call(this)},t.prototype._checkStopEmptyWorker=function(){this._editorWorkerClient&&(0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))},t.prototype._checkStopIdleWorker=function(){this._editorWorkerClient&&((new Date).getTime()-this._lastWorkerUsedTime>S&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))},t.prototype.withWorker=function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new M(this._modelService,!1,\"editorWorkerService\")),Promise.resolve(this._editorWorkerClient)},t}(i.Disposable),N=function(e){function t(t,i,o){var r=e.call(this)||this;if(r._syncedModels=Object.create(null),r._syncedModelsLastUsedTime=Object.create(null),r._proxy=t,r._modelService=i,!o){var s=new n.IntervalTimer;s.cancelAndSet((function(){return r._checkStopModelSync()}),Math.round(b/2)),r._register(s)}return r}return r(t,e),t.prototype.dispose=function(){\nfor(var t in this._syncedModels)i.dispose(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),e.prototype.dispose.call(this)},t.prototype.ensureSyncedResources=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t],o=i.toString();this._syncedModels[o]||this._beginModelSync(i),this._syncedModels[o]&&(this._syncedModelsLastUsedTime[o]=(new Date).getTime())}},t.prototype._checkStopModelSync=function(){var e=(new Date).getTime(),t=[];for(var n in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[n]>b&&t.push(n)}for(var i=0,o=t;i<o.length;i++){var r=o[i];this._stopModelSync(r)}},t.prototype._beginModelSync=function(e){var t=this,n=this._modelService.getModel(e);if(n&&!n.isTooLargeForSyncing()){var o=e.toString();this._proxy.acceptNewModel({url:n.uri.toString(),lines:n.getLinesContent(),EOL:n.getEOL(),versionId:n.getVersionId()});var r=new i.DisposableStore;r.add(n.onDidChangeContent((function(e){t._proxy.acceptModelChanged(o.toString(),e)\n}))),r.add(n.onWillDispose((function(){t._stopModelSync(o)}))),r.add(i.toDisposable((function(){t._proxy.acceptRemovedModel(o)}))),this._syncedModels[o]=r}},t.prototype._stopModelSync=function(e){var t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],i.dispose(t)},t}(i.Disposable),x=function(){function e(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}return e.prototype.dispose=function(){this._instance.dispose()},e.prototype.getProxyObject=function(){return this._proxyObj},e}(),I=function(){function e(e){this._workerClient=e}return e.prototype.fhr=function(e,t){return this._workerClient.fhr(e,t)},e}();t.EditorWorkerHost=I;var M=function(e){function t(t,n,i){var o=e.call(this)||this;return o._modelService=t,o._keepIdleModels=n,o._workerFactory=new s.DefaultWorkerFactory(i),o._worker=null,o._modelManager=null,o}return r(t,e),t.prototype.fhr=function(e,t){throw new Error(\"Not implemented!\")},t.prototype._getOrCreateWorker=function(){\nif(!this._worker)try{this._worker=this._register(new o.SimpleWorkerClient(this._workerFactory,\"vs/editor/common/services/editorSimpleWorker\",new I(this)))}catch(e){o.logOnceWebWorkerWarning(e),this._worker=new x(new p.EditorSimpleWorker(new I(this),null))}return this._worker},t.prototype._getProxy=function(){var e=this;return this._getOrCreateWorker().getProxyObject().then(void 0,(function(t){return o.logOnceWebWorkerWarning(t),e._worker=new x(new p.EditorSimpleWorker(new I(e),null)),e._getOrCreateWorker().getProxyObject()}))},t.prototype._getOrCreateModelManager=function(e){return this._modelManager||(this._modelManager=this._register(new N(e,this._modelService,this._keepIdleModels))),this._modelManager},t.prototype._withSyncedResources=function(e){var t=this;return this._getProxy().then((function(n){return t._getOrCreateModelManager(n).ensureSyncedResources(e),n}))},t.prototype.computeDiff=function(e,t,n,i){return this._withSyncedResources([e,t]).then((function(o){\nreturn o.computeDiff(e.toString(),t.toString(),n,i)}))},t.prototype.computeMoreMinimalEdits=function(e,t){return this._withSyncedResources([e]).then((function(n){return n.computeMoreMinimalEdits(e.toString(),t)}))},t.prototype.computeLinks=function(e){return this._withSyncedResources([e]).then((function(t){return t.computeLinks(e.toString())}))},t.prototype.textualSuggest=function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var o=n._modelService.getModel(e);if(!o)return null;var r=u.LanguageConfigurationRegistry.getWordDefinition(o.getLanguageIdentifier().id),s=r.source,a=v.regExpFlags(r);return i.textualSuggest(e.toString(),t,s,a)}))},t.prototype.computeWordRanges=function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var o=n._modelService.getModel(e);if(!o)return Promise.resolve(null);var r=u.LanguageConfigurationRegistry.getWordDefinition(o.getLanguageIdentifier().id),s=r.source,a=v.regExpFlags(r);return i.computeWordRanges(e.toString(),t,s,a)}))},\nt.prototype.navigateValueSet=function(e,t,n){var i=this;return this._withSyncedResources([e]).then((function(o){var r=i._modelService.getModel(e);if(!r)return null;var s=u.LanguageConfigurationRegistry.getWordDefinition(r.getLanguageIdentifier().id),a=s.source,l=v.regExpFlags(s);return o.navigateValueSet(e.toString(),t,n,a,l)}))},t}(i.Disposable);t.EditorWorkerClient=M})),define(n[507],i([0,1,219,21]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createWebWorker=function(e,t){return new o(e,t)};var o=function(e){function t(t,n){var i=e.call(this,t,n.keepIdleModels||!1,n.label)||this;return i._foreignModuleId=n.moduleId,i._foreignModuleCreateData=n.createData||null,i._foreignModuleHost=n.host||null,i._foreignProxy=null,i}return r(t,e),t.prototype.fhr=function(e,t){if(!this._foreignModuleHost||\"function\"!=typeof this._foreignModuleHost[e])return Promise.reject(new Error(\"Missing method \"+e+\" or missing main thread foreign host.\"));try{\nreturn Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(e){return Promise.reject(e)}},t.prototype._getForeignProxy=function(){var e=this;return this._foreignProxy||(this._foreignProxy=this._getProxy().then((function(t){var n=e._foreignModuleHost?i.getAllMethodNames(e._foreignModuleHost):[];return t.loadForeignModule(e._foreignModuleId,e._foreignModuleCreateData,n).then((function(n){e._foreignModuleCreateData=null;for(var i=function(e,n){return t.fmr(e,n)},o=function(e,t){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},r={},s=0,a=n;s<a.length;s++){var l=a[s];r[l]=o(l,i)}return r}))}))),this._foreignProxy},t.prototype.getProxy=function(){return this._getForeignProxy()},t.prototype.withSyncedResources=function(e){var t=this;return this._withSyncedResources(e).then((function(e){return t.getProxy()}))},t}(n.EditorWorkerClient)})),define(n[72],i([0,1,11,475,112]),(function(e,t,n,i,o){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0\n}),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(r=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e.compare=function(e,t){return t-e};var t=Object.create(null);t[e.Error]=i.localize(0,null),t[e.Warning]=i.localize(1,null),t[e.Info]=i.localize(2,null),e.toString=function(e){return t[e]||\"\"},e.fromSeverity=function(t){switch(t){case o.default.Error:return e.Error;case o.default.Warning:return e.Warning;case o.default.Info:return e.Info;case o.default.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return o.default.Error;case e.Warning:return o.default.Warning;case e.Info:return o.default.Info;case e.Hint:return o.default.Ignore}}}(r=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){var t=\"\";function n(e,n){var i=[t];return e.source?i.push(e.source.replace(\"¦\",\"¦\")):i.push(t),e.code?\"string\"==typeof e.code?i.push(e.code.replace(\"¦\",\"¦\")):i.push(e.code.value.replace(\"¦\",\"¦\")):i.push(t),\nvoid 0!==e.severity&&null!==e.severity?i.push(r.toString(e.severity)):i.push(t),e.message&&n?i.push(e.message.replace(\"¦\",\"¦\")):i.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?i.push(e.startLineNumber.toString()):i.push(t),void 0!==e.startColumn&&null!==e.startColumn?i.push(e.startColumn.toString()):i.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?i.push(e.endLineNumber.toString()):i.push(t),void 0!==e.endColumn&&null!==e.endColumn?i.push(e.endColumn.toString()):i.push(t),i.push(t),i.join(\"¦\")}e.makeKey=function(e){return n(e,!0)},e.makeKeyOptionalMessage=n}(t.IMarkerData||(t.IMarkerData={})),t.IMarkerService=n.createDecorator(\"markerService\")})),define(n[508],i([0,1,19,46,21,4,72]),(function(e,t,n,i,o,r,s){\"use strict\";var a;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.get=function(e,t,n){if(e[t])return e[t][n]},e.set=function(e,t,n,i){e[t]||(e[t]=Object.create(null)),e[t][n]=i},e.remove=function(e,t,n){return!(!e[t]||!e[t][n])&&(delete e[t][n],\no.isEmptyObject(e[t])&&delete e[t],!0)}}(a||(a={}));var l=function(){function e(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=Object.create(null),this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}return e.prototype.dispose=function(){this._subscription.dispose(),this._data=void 0},e.prototype._update=function(e){if(this._data)for(var t=0,n=e;t<n.length;t++){var i=n[t],o=i.toString(),r=this._data[o];r&&this._substract(r);var s=this._resourceStats(i);this._add(s),this._data[o]=s}},e.prototype._resourceStats=function(e){var t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===i.Schemas.inMemory||e.scheme===i.Schemas.walkThrough||e.scheme===i.Schemas.walkThroughSnippet)return t;for(var n=0,o=this._service.read({resource:e});n<o.length;n++){var r=o[n].severity;r===s.MarkerSeverity.Error?t.errors+=1:r===s.MarkerSeverity.Warning?t.warnings+=1:r===s.MarkerSeverity.Info?t.infos+=1:t.unknowns+=1}return t},e.prototype._substract=function(e){this.errors-=e.errors,\nthis.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns},e.prototype._add=function(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns},e}(),u=function(){function e(){this._onMarkerChanged=new r.Emitter,this._onMarkerChangedEvent=r.Event.debounce(this._onMarkerChanged.event,e._debouncer,0),this._byResource=Object.create(null),this._byOwner=Object.create(null),this._stats=new l(this)}return e.prototype.dispose=function(){this._stats.dispose()},Object.defineProperty(e.prototype,\"onMarkerChanged\",{get:function(){return this._onMarkerChangedEvent},enumerable:!0,configurable:!0}),e.prototype.remove=function(e,t){for(var n=0,i=t||[];n<i.length;n++){var o=i[n];this.changeOne(e,o,[])}},e.prototype.changeOne=function(t,i,o){if(n.isFalsyOrEmpty(o)){var r=a.remove(this._byResource,i.toString(),t),s=a.remove(this._byOwner,t,i.toString());if(r!==s)throw new Error(\"invalid marker service state\");r&&s&&this._onMarkerChanged.fire([i])}else{\nfor(var l=[],u=0,d=o;u<d.length;u++){var c=d[u],h=e._toMarker(t,i,c);h&&l.push(h)}a.set(this._byResource,i.toString(),t,l),a.set(this._byOwner,t,i.toString(),l),this._onMarkerChanged.fire([i])}},e._toMarker=function(e,t,n){var i=n.code,o=n.severity,r=n.message,s=n.source,a=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn,c=n.relatedInformation,h=n.tags;if(r)return{resource:t,owner:e,code:i,severity:o,message:r,source:s,startLineNumber:a=a>0?a:1,startColumn:l=l>0?l:1,endLineNumber:u=u>=a?u:a,endColumn:d=d>0?d:l,relatedInformation:c,tags:h}},e.prototype.read=function(t){void 0===t&&(t=Object.create(null));var n=t.owner,i=t.resource,o=t.severities,r=t.take;if((!r||r<0)&&(r=-1),n&&i){if(C=a.get(this._byResource,i.toString(),n)){for(var s=[],l=0,u=C;l<u.length;l++){var d=u[l];if(e._accept(d,o)){var c=s.push(d);if(r>0&&c===r)break}}return s}return[]}if(n||i){var h=n?this._byOwner[n]:i?this._byResource[i.toString()]:void 0;if(!h)return[];s=[];for(var p in h)for(var g=0,f=h[p];g<f.length;g++){C=f[g]\n;if(e._accept(C,o)){c=s.push(C);if(r>0&&c===r)return s}}return s}var s=[];for(var m in this._byResource)for(var v in this._byResource[m])for(var _=0,y=this._byResource[m][v];_<y.length;_++){var C=y[_];if(e._accept(C,o)){var c=s.push(C);if(r>0&&c===r)return s}}return s},e._accept=function(e,t){return void 0===t||(t&e.severity)===e.severity},e._debouncer=function(t,n){t||(e._dedupeMap=Object.create(null),t=[]);for(var i=0,o=n;i<o.length;i++){var r=o[i];void 0===e._dedupeMap[r.toString()]&&(e._dedupeMap[r.toString()]=!0,t.push(r))}return t},e}();t.MarkerService=u})),define(n[35],i([0,1,112,11]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Severity=n.default,t.INotificationService=i.createDecorator(\"notificationService\");var o=function(){};t.NoOpNotification=o})),define(n[51],i([0,1,25,11,2,5]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IOpenerService=i.createDecorator(\"openerService\"),t.NullOpenerService=Object.freeze({\n_serviceBrand:void 0,registerOpener:function(){return o.Disposable.None},registerValidator:function(){return o.Disposable.None},registerExternalUriResolver:function(){return o.Disposable.None},setExternalOpener:function(){},open:function(){return d(this,void 0,void 0,(function(){return c(this,(function(e){return[2,!1]}))}))},resolveExternalUri:function(e){return d(this,void 0,void 0,(function(){return c(this,(function(t){return[2,{resolved:e,dispose:function(){}}]}))}))}}),t.matchesScheme=function(e,t){return n.URI.isUri(e)?r.equalsIgnoreCase(e.scheme,t):r.startsWithIgnoreCase(e,t+\":\")}}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[509],i([0,1,6,76,180,46,39,25,32,29,51,478]),(function(e,t,n,i,o,r,s,l,u,p,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=function(){function e(e){this._commandService=e}\nreturn e.prototype.open=function(e){return d(this,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(!f.matchesScheme(e,r.Schemas.command))return[2,!1];if(\"string\"==typeof e&&(e=l.URI.parse(e)),!p.CommandsRegistry.getCommand(e.path))throw new Error(\"command '\"+e.path+\"' NOT known\");t=[];try{t=o.parse(decodeURIComponent(e.query))}catch(n){try{t=o.parse(e.query)}catch(e){}}return Array.isArray(t)||(t=[t]),[4,(n=this._commandService).executeCommand.apply(n,a([e.path],t))];case 1:return i.sent(),[2,!0]}}))}))},e=h([g(0,p.ICommandService)],e)}(),_=function(){function e(e){this._editorService=e}return e.prototype.open=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:return\"string\"==typeof e&&(e=l.URI.parse(e)),n=void 0,(i=/^L?(\\d+)(?:,(\\d+))?/.exec(e.fragment))&&(n={startLineNumber:parseInt(i[1]),startColumn:i[2]?parseInt(i[2]):1},e=e.with({fragment:\"\"})),e.scheme===r.Schemas.file&&(e=s.normalizePath(e)),\n[4,this._editorService.openCodeEditor({resource:e,options:{selection:n,context:(null==t?void 0:t.fromUserGesture)?m.EditorOpenContext.USER:m.EditorOpenContext.API}},this._editorService.getFocusedCodeEditor(),null==t?void 0:t.openToSide)];case 1:return o.sent(),[2,!0]}}))}))},e=h([g(0,u.ICodeEditorService)],e)}(),y=function(){function e(e,t){var o=this;this._openers=new i.LinkedList,this._validators=new i.LinkedList,this._resolvers=new i.LinkedList,this._externalOpener={openExternal:function(e){return n.windowOpenNoOpener(e),Promise.resolve(!0)}},this._openers.push({open:function(e,t){return d(o,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return(null==t?void 0:t.openExternal)||f.matchesScheme(e,r.Schemas.mailto)||f.matchesScheme(e,r.Schemas.http)||f.matchesScheme(e,r.Schemas.https)?[4,this._doOpenExternal(e,t)]:[3,2];case 1:return n.sent(),[2,!0];case 2:return[2,!1]}}))}))}}),this._openers.push(new v(t)),this._openers.push(new _(e))}return e.prototype.open=function(e,t){\nreturn d(this,void 0,void 0,(function(){var n,i,o,r;return c(this,(function(s){switch(s.label){case 0:n=0,i=this._validators.toArray(),s.label=1;case 1:return n<i.length?[4,i[n].shouldOpen(e)]:[3,4];case 2:if(!s.sent())return[2,!1];s.label=3;case 3:return n++,[3,1];case 4:o=0,r=this._openers.toArray(),s.label=5;case 5:return o<r.length?[4,r[o].open(e,t)]:[3,8];case 6:if(s.sent())return[2,!0];s.label=7;case 7:return o++,[3,5];case 8:return[2,!1]}}))}))},e.prototype.resolveExternalUri=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o;return c(this,(function(r){switch(r.label){case 0:n=0,i=this._resolvers.toArray(),r.label=1;case 1:return n<i.length?[4,i[n].resolveExternalUri(e,t)]:[3,4];case 2:if(o=r.sent())return[2,o];r.label=3;case 3:return n++,[3,1];case 4:return[2,{resolved:e,dispose:function(){}}]}}))}))},e.prototype._doOpenExternal=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:return n=\"string\"==typeof e?l.URI.parse(e):e,\n[4,this.resolveExternalUri(n,t)];case 1:return i=o.sent().resolved,\"string\"==typeof e&&n.toString()===i.toString()?[2,this._externalOpener.openExternal(e)]:[2,this._externalOpener.openExternal(encodeURI(i.toString(!0)))]}}))}))},e.prototype.dispose=function(){this._validators.clear()},e=h([g(0,u.ICodeEditorService),g(1,p.ICommandService)],e)}();t.OpenerService=y})),define(n[117],i([0,1,248,51,71,10,214,11,4,2,17]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,o){void 0===o&&(o=i.NullOpenerService);var r=e.call(this)||this;return r._editor=t,r._modeService=n,r._openerService=o,r._onDidRenderCodeBlock=r._register(new u.Emitter),r.onDidRenderCodeBlock=r._onDidRenderCodeBlock.event,r}return r(t,e),t.prototype.getOptions=function(e){var t=this;return{codeBlockRenderer:function(e,n){var i=null;if(e)i=t._modeService.getModeIdForLanguageName(e);else{var o=t._editor.getModel();o&&(i=o.getLanguageIdentifier().language)}\nreturn t._modeService.triggerMode(i||\"\"),Promise.resolve(!0).then((function(e){var t=c.TokenizationRegistry.getPromise(i||\"\");return t?t.then((function(e){return a.tokenizeToString(n,e)})):a.tokenizeToString(n,void 0)})).then((function(e){return'<span style=\"font-family: '+t._editor.getOption(34).fontFamily+'\">'+e+\"</span>\"}))},codeBlockRenderCallback:function(){return t._onDidRenderCodeBlock.fire()},actionHandler:{callback:function(e){t._openerService.open(e,{fromUserGesture:!0}).catch(s.onUnexpectedError)},disposeables:e}}},t.prototype.render=function(e){var t=new d.DisposableStore;return{element:e?n.renderMarkdown(e,this.getOptions(t)):document.createElement(\"span\"),dispose:function(){return t.dispose()}}},t=h([g(1,o.IModeService),g(2,l.optional(i.IOpenerService))],t)}(d.Disposable);t.MarkdownRenderer=p})),define(n[510],i([0,1,6,75,2,200,201,117,51,19]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(e){this._editor=e,\nthis._lineNumber=-1,this._result=[]}return e.prototype.setLineNumber=function(e){this._lineNumber=e,this._result=[]},e.prototype.clearResult=function(){this._result=[]},e.prototype.computeSync=function(){var e=function(e){return{value:e}},t=this._editor.getLineDecorations(this._lineNumber),n=[];if(!t)return n;for(var o=0,r=t;o<r.length;o++){var s=r[o];if(s.options.glyphMarginClassName){var a=s.options.glyphMarginHoverMessage;a&&!i.isEmptyMarkdownString(a)&&n.push.apply(n,d.asArray(a).map(e))}}return n},e.prototype.onResult=function(e,t){this._result=this._result.concat(e)},e.prototype.getResult=function(){return this._result},e.prototype.getResultWithLoadingMessage=function(){return this.getResult()},e}(),h=function(e){function t(n,i,r){void 0===r&&(r=u.NullOpenerService);var a=e.call(this,t.ID,n)||this;return a._renderDisposeables=a._register(new o.DisposableStore),a._messages=[],a._lastLineNumber=-1,a._markdownRenderer=a._register(new l.MarkdownRenderer(a._editor,i,r)),a._computer=new c(a._editor),\na._hoverOperation=new s.HoverOperation(a._computer,(function(e){return a._withResult(e)}),void 0,(function(e){return a._withResult(e)}),300),a}return r(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),e.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start(0))},t.prototype.startShowingAt=function(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start(0))},t.prototype.hide=function(){this._lastLineNumber=-1,this._hoverOperation.cancel(),e.prototype.hide.call(this)},t.prototype._withResult=function(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()},t.prototype._renderMessages=function(e,t){this._renderDisposeables.clear();for(var i=document.createDocumentFragment(),o=0,r=t;o<r.length;o++){\nvar s=r[o],a=this._markdownRenderer.render(s.value);this._renderDisposeables.add(a),i.appendChild(n.$(\"div.hover-row\",void 0,a.element))}this.updateContents(i),this.showAt(e)},t.ID=\"editor.contrib.modesGlyphHoverWidget\",t}(a.GlyphHoverWidget);t.ModesGlyphHoverWidget=h})),define(n[73],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IEditorProgressService=n.createDecorator(\"editorProgressService\")})),define(n[42],i([0,1,21,124]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){this.data=new Map}return e.prototype.add=function(e,t){i.ok(n.isString(e)),i.ok(n.isObject(t)),i.ok(!this.data.has(e),\"There is already an extension with this id\"),this.data.set(e,t)},e.prototype.as=function(e){return this.data.get(e)||null},e}();t.Registry=new o})),define(n[118],i([0,1,425,4,17,41,42]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={\nModesRegistry:\"editor.modesRegistry\"};var a=function(){function e(){this._onDidChangeLanguages=new i.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[],this._dynamicLanguages=[]}return e.prototype.registerLanguage=function(e){this._languages.push(e),this._onDidChangeLanguages.fire(void 0)},e.prototype.getLanguages=function(){return[].concat(this._languages).concat(this._dynamicLanguages)},e}();t.EditorModesRegistry=a,t.ModesRegistry=new a,s.Registry.add(t.Extensions.ModesRegistry,t.ModesRegistry),t.PLAINTEXT_MODE_ID=\"plaintext\",t.PLAINTEXT_LANGUAGE_IDENTIFIER=new o.LanguageIdentifier(t.PLAINTEXT_MODE_ID,1),t.ModesRegistry.registerLanguage({id:t.PLAINTEXT_MODE_ID,extensions:[\".txt\",\".gitignore\"],aliases:[n.localize(0,null),\"text\"],mimetypes:[\"text/plain\"]}),r.LanguageConfigurationRegistry.register(t.PLAINTEXT_LANGUAGE_IDENTIFIER,{brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{\nopen:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],folding:{offSide:!0}})})),define(n[511],i([0,1,46,39,118,208]),(function(e,t,n,i,o,r){\"use strict\";function s(e,t,r){if(!r)return null;var s=null;if(r.scheme===n.Schemas.data){var a=i.DataUri.parseMetaData(r).get(i.DataUri.META_DATA_MIME);a&&(s=t.getModeId(a))}else{var l=e.getModel(r);l&&(s=l.getModeId())}return s&&s!==o.PLAINTEXT_MODE_ID?s:t.getModeIdByFilepathOrFirstLine(r)}function a(e){return e.replace(/\\s/g,\"\\\\$&\")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getIconClasses=function(e,t,o,l){var u=l===r.FileKind.ROOT_FOLDER?[\"rootfolder-icon\"]:l===r.FileKind.FOLDER?[\"folder-icon\"]:[\"file-icon\"];if(o){var d;if(o.scheme===n.Schemas.data)d=i.DataUri.parseMetaData(o).get(i.DataUri.META_DATA_LABEL);else d=a(i.basenameOrAuthority(o).toLowerCase());if(l===r.FileKind.FOLDER)u.push(d+\"-name-folder-icon\");else{if(d){u.push(d+\"-name-file-icon\");for(var c=d.split(\".\"),h=1;h<c.length;h++)u.push(c.slice(h).join(\".\")+\"-ext-file-icon\")\n;u.push(\"ext-file-icon\")}var p=s(e,t,o);p&&u.push(a(p)+\"-lang-file-icon\")}}return u},t.detectModeId=s,t.cssEscape=a})),define(n[220],i([0,1,42,4]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={JSONContribution:\"base.contributions.json\"};var o=new(function(){function e(){this._onDidChangeSchema=new i.Emitter,this.schemasById={}}return e.prototype.registerSchema=function(e,t){var n;this.schemasById[(n=e,n.length>0&&\"#\"===n.charAt(n.length-1)?n.substring(0,n.length-1):n)]=t,this._onDidChangeSchema.fire(e)},e.prototype.notifySchemaChanged=function(e){this._onDidChangeSchema.fire(e)},e}());n.Registry.add(t.Extensions.JSONContribution,o)})),define(n[85],i([0,1,472,4,42,21,220,38]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={Configuration:\"base.contributions.configuration\"},t.allSettings={properties:{},patternProperties:{}},t.applicationSettings={properties:{},patternProperties:{}},t.machineSettings={\nproperties:{},patternProperties:{}},t.machineOverridableSettings={properties:{},patternProperties:{}},t.windowSettings={properties:{},patternProperties:{}},t.resourceSettings={properties:{},patternProperties:{}},t.resourceLanguageSettingsSchemaId=\"vscode://schemas/settings/resourceLanguage\";var l=o.Registry.as(s.Extensions.JSONContribution),u=function(){function e(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new i.Emitter,this._onDidUpdateConfiguration=new i.Emitter,this.defaultOverridesConfigurationNode={id:\"defaultOverrides\",title:n.localize(0,null),properties:{}},this.configurationContributors=[this.defaultOverridesConfigurationNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:\"Unknown editor configuration setting\",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},l.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema)}\nreturn e.prototype.registerConfiguration=function(e,t){void 0===t&&(t=!0),this.registerConfigurations([e],t)},e.prototype.registerConfigurations=function(e,n){var i=this;void 0===n&&(n=!0);var o=[];e.forEach((function(e){o.push.apply(o,i.validateAndRegisterProperties(e,n)),i.configurationContributors.push(e),i.registerJSONConfiguration(e)})),l.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire(o)},e.prototype.registerOverrideIdentifiers=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t];this.overrideIdentifiers.add(i)}this.updateOverridePropertyPatternKey()},e.prototype.validateAndRegisterProperties=function(e,n,i){void 0===n&&(n=!0),void 0===i&&(i=3),i=r.isUndefinedOrNull(e.scope)?i:e.scope;var o=[],s=e.properties;if(s)for(var a in s)if(n&&h(a))delete s[a];else{var l=s[a],u=l.default;r.isUndefined(u)&&(l.default=d(l.type)),\nt.OVERRIDE_PROPERTY_PATTERN.test(a)?l.scope=void 0:l.scope=r.isUndefinedOrNull(l.scope)?i:l.scope,!s[a].hasOwnProperty(\"included\")||s[a].included?(this.configurationProperties[a]=s[a],o.push(a)):(this.excludedConfigurationProperties[a]=s[a],delete s[a])}var c=e.allOf;if(c)for(var p=0,g=c;p<g.length;p++){var f=g[p];o.push.apply(o,this.validateAndRegisterProperties(f,n,i))}return o},e.prototype.getConfigurationProperties=function(){return this.configurationProperties},e.prototype.registerJSONConfiguration=function(e){var n=this,i=function(e){var o=e.properties;if(o)for(var r in o)switch(t.allSettings.properties[r]=o[r],o[r].scope){case 1:t.applicationSettings.properties[r]=o[r];break;case 2:t.machineSettings.properties[r]=o[r];break;case 6:t.machineOverridableSettings.properties[r]=o[r];break;case 3:t.windowSettings.properties[r]=o[r];break;case 4:t.resourceSettings.properties[r]=o[r];break;case 5:t.resourceSettings.properties[r]=o[r],n.resourceLanguageSettingsSchema.properties[r]=o[r]}var s=e.allOf\n;s&&s.forEach(i)};i(e)},e.prototype.updateOverridePropertyPatternKey=function(){for(var e,i=0,o=a.values(this.overrideIdentifiers);i<o.length;i++){var r=\"[\"+o[i]+\"]\",s={type:\"object\",description:n.localize(1,null),errorMessage:n.localize(2,null),$ref:t.resourceLanguageSettingsSchemaId,default:null===(e=this.defaultOverridesConfigurationNode.properties[r])||void 0===e?void 0:e.default};t.allSettings.properties[r]=s,t.applicationSettings.properties[r]=s,t.machineSettings.properties[r]=s,t.machineOverridableSettings.properties[r]=s,t.windowSettings.properties[r]=s,t.resourceSettings.properties[r]=s}this._onDidSchemaChange.fire()},e}();function d(e){switch(Array.isArray(e)?e[0]:e){case\"boolean\":return!1;case\"integer\":case\"number\":return 0;case\"string\":return\"\";case\"array\":return[];case\"object\":return{};default:return null}}t.OVERRIDE_PROPERTY_PATTERN=new RegExp(\"\\\\[.*\\\\]$\"),t.getDefaultValue=d;var c=new u;function h(e){\nreturn t.OVERRIDE_PROPERTY_PATTERN.test(e)?n.localize(3,null,e):void 0!==c.getConfigurationProperties()[e]?n.localize(4,null,e):null}o.Registry.add(t.Extensions.Configuration,c),t.validateProperty=h})),define(n[163],i([0,1,422,4,2,31,19,33,105,142,85,42,87]),(function(e,t,n,i,o,s,a,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.TabFocus=new(function(){function e(){this._tabFocus=!1,this._onDidChangeTabFocus=new i.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}return e.prototype.getTabFocusMode=function(){return this._tabFocus},e.prototype.setTabFocusMode=function(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))},e}());var f=Object.hasOwnProperty,m=function(){function e(){this._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype.get=function(e){return this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}();t.ComputedEditorOptions=m;var v=function(){function e(){\nthis._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}(),_=function(){function e(){}return e.readOptions=function(e){for(var t=e,n=new v,i=0,o=u.editorOptionsRegistry;i<o.length;i++){var r=o[i],s=\"_never_\"===r.name?void 0:t[r.name];n._write(r.id,s)}return n},e.validateOptions=function(e){for(var t=new u.ValidatedEditorOptions,n=0,i=u.editorOptionsRegistry;n<i.length;n++){var o=i[n];t._write(o.id,o.validate(e._read(o.id)))}return t},e.computeOptions=function(e,t){for(var n=new m,i=0,o=u.editorOptionsRegistry;i<o.length;i++){var r=o[i];n._write(r.id,r.compute(t,n,e._read(r.id)))}return n},e._deepEquals=function(t,n){if(\"object\"!=typeof t||\"object\"!=typeof n)return t===n;if(Array.isArray(t)||Array.isArray(n))return!(!Array.isArray(t)||!Array.isArray(n))&&a.equals(t,n);for(var i in t)if(!e._deepEquals(t[i],n[i]))return!1;return!0},e.checkEquals=function(t,n){for(var i=[],o=!1,r=0,s=u.editorOptionsRegistry;r<s.length;r++){\nvar a=s[r],l=!e._deepEquals(t._read(a.id),n._read(a.id));i[a.id]=l,l&&(o=!0)}return o?new u.ConfigurationChangedEvent(i):null},e}();function y(e){var t=s.deepClone(e);return function(e){var t=e.wordWrap;!0===t?e.wordWrap=\"on\":!1===t&&(e.wordWrap=\"off\");var n=e.lineNumbers;!0===n?e.lineNumbers=\"on\":!1===n&&(e.lineNumbers=\"off\"),!1===e.autoClosingBrackets&&(e.autoClosingBrackets=\"never\",e.autoClosingQuotes=\"never\",e.autoSurround=\"never\"),\"visible\"===e.cursorBlinking&&(e.cursorBlinking=\"solid\");var i=e.renderWhitespace;!0===i?e.renderWhitespace=\"boundary\":!1===i&&(e.renderWhitespace=\"none\");var o=e.renderLineHighlight;!0===o?e.renderLineHighlight=\"line\":!1===o&&(e.renderLineHighlight=\"none\");var r=e.acceptSuggestionOnEnter;!0===r?e.acceptSuggestionOnEnter=\"on\":!1===r&&(e.acceptSuggestionOnEnter=\"off\");var s=e.tabCompletion;!1===s?e.tabCompletion=\"off\":!0===s&&(e.tabCompletion=\"onlySnippets\");var a=e.suggest;if(a&&\"object\"==typeof a.filteredTypes&&a.filteredTypes){var l={method:\"showMethods\",\nfunction:\"showFunctions\",constructor:\"showConstructors\",field:\"showFields\",variable:\"showVariables\",class:\"showClasses\",struct:\"showStructs\",interface:\"showInterfaces\",module:\"showModules\",property:\"showProperties\",event:\"showEvents\",operator:\"showOperators\",unit:\"showUnits\",value:\"showValues\",constant:\"showConstants\",enum:\"showEnums\",enumMember:\"showEnumMembers\",keyword:\"showKeywords\",text:\"showWords\",color:\"showColors\",file:\"showFiles\",reference:\"showReferences\",folder:\"showFolders\",typeParameter:\"showTypeParameters\",snippet:\"showSnippets\"};g.forEach(l,(function(e){var t=a.filteredTypes[e.key];!1===t&&(a[e.value]=t)}))}var u=e.hover;!0===u?e.hover={enabled:!0}:!1===u&&(e.hover={enabled:!1});var d=e.parameterHints;!0===d?e.parameterHints={enabled:!0}:!1===d&&(e.parameterHints={enabled:!1});var c=e.autoIndent;!0===c?e.autoIndent=\"full\":!1===c&&(e.autoIndent=\"advanced\");var h=e.matchBrackets;!0===h?e.matchBrackets=\"always\":!1===h&&(e.matchBrackets=\"never\")}(t),t}var C=function(e){function n(n,o){\nvar r=e.call(this)||this;return r._onDidChange=r._register(new i.Emitter),r.onDidChange=r._onDidChange.event,r.isSimpleWidget=n,r._isDominatedByLongLines=!1,r._lineNumbersDigitCount=1,r._rawOptions=y(o),r._readOptions=_.readOptions(r._rawOptions),r._validatedOptions=_.validateOptions(r._readOptions),r._register(d.EditorZoom.onDidChangeZoomLevel((function(e){return r._recomputeOptions()}))),r._register(t.TabFocus.onDidChangeTabFocus((function(e){return r._recomputeOptions()}))),r}return r(n,e),n.prototype.observeReferenceElement=function(e){},n.prototype.dispose=function(){e.prototype.dispose.call(this)},n.prototype._recomputeOptions=function(){var e=this.options,t=this._computeInternalOptions();if(e){var n=_.checkEquals(e,t);if(null===n)return;this.options=t,this._onDidChange.fire(n)}else this.options=t},n.prototype.getRawOptions=function(){return this._rawOptions},n.prototype._computeInternalOptions=function(){\nvar e=this._getEnvConfiguration(),n=c.BareFontInfo.createFromValidatedSettings(this._validatedOptions,e.zoomLevel,this.isSimpleWidget),i={outerWidth:e.outerWidth,outerHeight:e.outerHeight,fontInfo:this.readConfiguration(n),extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:t.TabFocus.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return _.computeOptions(this._validatedOptions,i)},n._subsetEquals=function(e,t){for(var n in t)if(f.call(t,n)){var i=t[n],o=e[n];if(o===i)continue;if(Array.isArray(o)&&Array.isArray(i)){if(!a.equals(o,i))return!1;continue}if(\"object\"==typeof o&&\"object\"==typeof i){if(!this._subsetEquals(o,i))return!1;continue}return!1}return!0},n.prototype.updateOptions=function(e){if(void 0!==e){var t=y(e);n._subsetEquals(this._rawOptions,t)||(this._rawOptions=s.mixin(this._rawOptions,t||{}),\nthis._readOptions=_.readOptions(this._rawOptions),this._validatedOptions=_.validateOptions(this._readOptions),this._recomputeOptions())}},n.prototype.setIsDominatedByLongLines=function(e){this._isDominatedByLongLines=e,this._recomputeOptions()},n.prototype.setMaxLineNumber=function(e){var t=n._digitCount(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())},n._digitCount=function(e){for(var t=0;e;)e=Math.floor(e/10),t++;return t||1},n}(o.Disposable);t.CommonEditorConfiguration=C,t.editorConfigurationBaseNode=Object.freeze({id:\"editor\",order:5,type:\"object\",title:n.localize(0,null),scope:5});var b,S=p.Registry.as(h.Extensions.Configuration),w=l(l({},t.editorConfigurationBaseNode),{properties:{\"editor.tabSize\":{type:\"number\",default:u.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:n.localize(1,null)},\"editor.insertSpaces\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:n.localize(2,null)},\"editor.detectIndentation\":{\ntype:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:n.localize(3,null)},\"editor.trimAutoWhitespace\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:n.localize(4,null)},\"editor.largeFileOptimizations\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:n.localize(5,null)},\"editor.wordBasedSuggestions\":{type:\"boolean\",default:!0,description:n.localize(6,null)},\"editor.semanticHighlighting.enabled\":{type:\"boolean\",default:!1,description:n.localize(7,null)},\"editor.stablePeek\":{type:\"boolean\",default:!1,markdownDescription:n.localize(8,null)},\"editor.maxTokenizationLineLength\":{type:\"integer\",default:2e4,description:n.localize(9,null)},\"diffEditor.maxComputationTime\":{type:\"number\",default:5e3,description:n.localize(10,null)},\"diffEditor.renderSideBySide\":{type:\"boolean\",default:!0,description:n.localize(11,null)},\"diffEditor.ignoreTrimWhitespace\":{type:\"boolean\",default:!0,description:n.localize(12,null)},\n\"diffEditor.renderIndicators\":{type:\"boolean\",default:!0,description:n.localize(13,null)}}});for(var E=0,L=u.editorOptionsRegistry;E<L.length;E++){var D=L[E],N=D.schema;if(void 0!==N)if(void 0!==(b=N).type||void 0!==b.anyOf)w.properties[\"editor.\"+D.name]=N;else for(var x in N)f.call(N,x)&&(w.properties[x]=N[x])}var I=null;function M(){return null===I&&(I=Object.create(null),Object.keys(w.properties).forEach((function(e){I[e]=!0}))),I}t.isEditorConfigurationKey=function(e){return M()[\"editor.\"+e]||!1},t.isDiffEditorConfigurationKey=function(e){return M()[\"diffEditor.\"+e]||!1},S.registerConfiguration(w)})),define(n[60],i([0,1,24,4,2,16,333,185,163,33,142]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(){function e(){this._keys=Object.create(null),this._values=Object.create(null)}return e.prototype.has=function(e){var t=e.getId();return!!this._values[t]},e.prototype.get=function(e){var t=e.getId();return this._values[t]},\ne.prototype.put=function(e,t){var n=e.getId();this._keys[n]=e,this._values[n]=t},e.prototype.remove=function(e){var t=e.getId();delete this._keys[t],delete this._values[t]},e.prototype.getValues=function(){var e=this;return Object.keys(this._keys).map((function(t){return e._values[t]}))},e}();t.clearAllFontInfos=function(){p.INSTANCE.clearCache()};var p=function(e){function t(){var t=e.call(this)||this;return t._onDidChange=t._register(new i.Emitter),t.onDidChange=t._onDidChange.event,t._cache=new h,t._evictUntrustedReadingsTimeout=-1,t}return r(t,e),t.prototype.dispose=function(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),e.prototype.dispose.call(this)},t.prototype.clearCache=function(){this._cache=new h,this._onDidChange.fire()},t.prototype._writeToCache=function(e,t){var n=this;this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=setTimeout((function(){\nn._evictUntrustedReadingsTimeout=-1,n._evictUntrustedReadings()}),5e3))},t.prototype._evictUntrustedReadings=function(){for(var e=this._cache.getValues(),t=!1,n=0,i=e.length;n<i;n++){var o=e[n];o.isTrusted||(t=!0,this._cache.remove(o))}t&&this._onDidChange.fire()},t.prototype.readConfiguration=function(e){if(!this._cache.has(e)){var i=t._actualReadConfiguration(e);(i.typicalHalfwidthCharacterWidth<=2||i.typicalFullwidthCharacterWidth<=2||i.spaceWidth<=2||i.maxDigitWidth<=2)&&(i=new c.FontInfo({zoomLevel:n.getZoomLevel(),fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:i.isMonospace,typicalHalfwidthCharacterWidth:Math.max(i.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(i.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:i.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(i.spaceWidth,5),middotWidth:Math.max(i.middotWidth,5),\nmaxDigitWidth:Math.max(i.maxDigitWidth,5)},!1)),this._writeToCache(e,i)}return this._cache.get(e)},t.createRequest=function(e,t,n,i){var o=new a.CharWidthRequest(e,t);return n.push(o),i&&i.push(o),o},t._actualReadConfiguration=function(e){var t=[],i=[],o=this.createRequest(\"n\",0,t,i),r=this.createRequest(\"ｍ\",0,t,null),s=this.createRequest(\" \",0,t,i),l=this.createRequest(\"0\",0,t,i),u=this.createRequest(\"1\",0,t,i),h=this.createRequest(\"2\",0,t,i),p=this.createRequest(\"3\",0,t,i),g=this.createRequest(\"4\",0,t,i),f=this.createRequest(\"5\",0,t,i),m=this.createRequest(\"6\",0,t,i),v=this.createRequest(\"7\",0,t,i),_=this.createRequest(\"8\",0,t,i),y=this.createRequest(\"9\",0,t,i),C=this.createRequest(\"→\",0,t,i),b=this.createRequest(\"￫\",0,t,null),S=this.createRequest(\"·\",0,t,i);this.createRequest(\"|\",0,t,i),this.createRequest(\"/\",0,t,i),this.createRequest(\"-\",0,t,i),this.createRequest(\"_\",0,t,i),this.createRequest(\"i\",0,t,i),this.createRequest(\"l\",0,t,i),this.createRequest(\"m\",0,t,i),this.createRequest(\"|\",1,t,i),\nthis.createRequest(\"_\",1,t,i),this.createRequest(\"i\",1,t,i),this.createRequest(\"l\",1,t,i),this.createRequest(\"m\",1,t,i),this.createRequest(\"n\",1,t,i),this.createRequest(\"|\",2,t,i),this.createRequest(\"_\",2,t,i),this.createRequest(\"i\",2,t,i),this.createRequest(\"l\",2,t,i),this.createRequest(\"m\",2,t,i),this.createRequest(\"n\",2,t,i),a.readCharWidths(e,t);for(var w=Math.max(l.width,u.width,h.width,p.width,g.width,f.width,m.width,v.width,_.width,y.width),E=e.fontFeatureSettings===d.EditorFontLigatures.OFF,L=i[0].width,D=1,N=i.length;E&&D<N;D++){var x=L-i[D].width;if(x<-.001||x>.001){E=!1;break}}var I=!0;E&&b.width!==L&&(I=!1),b.width>C.width&&(I=!1);var M=n.getTimeSinceLastZoomLevelChanged()>2e3;return new c.FontInfo({zoomLevel:n.getZoomLevel(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:E,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:r.width,\ncanUseHalfwidthRightwardsArrow:I,spaceWidth:s.width,middotWidth:S.width,maxDigitWidth:w},M)},t.INSTANCE=new t,t}(o.Disposable),g=function(e){function t(t,i,o,r){void 0===o&&(o=null);var s=e.call(this,t,i)||this;return s.accessibilityService=r,s._elementSizeObserver=s._register(new l.ElementSizeObserver(o,i.dimension,(function(){return s._onReferenceDomElementSizeChanged()}))),s._register(p.INSTANCE.onDidChange((function(){return s._onCSSBasedConfigurationChanged()}))),s._validatedOptions.get(9)&&s._elementSizeObserver.startObserving(),s._register(n.onDidChangeZoomLevel((function(e){return s._recomputeOptions()}))),s._register(s.accessibilityService.onDidChangeScreenReaderOptimized((function(){return s._recomputeOptions()}))),s._recomputeOptions(),s}return r(t,e),t.applyFontInfoSlow=function(e,t){e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+\"px\",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+\"px\",\ne.style.letterSpacing=t.letterSpacing+\"px\"},t.applyFontInfo=function(e,t){e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)},t.prototype._onReferenceDomElementSizeChanged=function(){this._recomputeOptions()},t.prototype._onCSSBasedConfigurationChanged=function(){this._recomputeOptions()},t.prototype.observeReferenceElement=function(e){this._elementSizeObserver.observe(e)},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getExtraEditorClassName=function(){var e=\"\";return n.isSafari||n.isWebkitWebView||(e+=\"no-user-select \"),s.isMacintosh&&(e+=\"mac \"),e},t.prototype._getEnvConfiguration=function(){return{extraEditorClassName:this._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:n.isWebKit||n.isFirefox,\npixelRatio:n.getPixelRatio(),zoomLevel:n.getZoomLevel(),accessibilitySupport:this.accessibilityService.isScreenReaderOptimized()?2:this.accessibilityService.getAccessibilitySupport()}},t.prototype.readConfiguration=function(e){return p.INSTANCE.readConfiguration(e)},t}(u.CommonEditorConfiguration);t.Configuration=g})),define(n[512],i([0,1,161,106,5,60]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){}return e.create=function(){return new e},e.prototype.createLineBreaksComputer=function(e,t,s,u){t|=0,s=+s;var d=[];return{addRequest:function(e,t){d.push(e)},finalize:function(){return function(e,t,s,u,d){if(-1===u){for(var c=[],h=0,p=e.length;h<p;h++)c[h]=null;return c}var g=Math.round(u*t.typicalHalfwidthCharacterWidth);2!==d&&3!==d||(d=1);var f=document.createElement(\"div\");r.Configuration.applyFontInfoSlow(f,t);var m=i.createStringBuilder(1e4),v=[],_=[],y=[],C=[],b=[];for(h=0;h<e.length;h++){var S=e[h],w=0,E=0,L=g\n;if(0!==d)if(-1===(w=o.firstNonWhitespaceIndex(S)))w=0;else{for(var D=0;D<w;D++){var N=9===S.charCodeAt(D)?s-E%s:1;E+=N}var x=Math.ceil(t.spaceWidth*E);x+t.typicalFullwidthCharacterWidth>g?(w=0,E=0):L=g-x}var I=S.substr(w),M=a(I,E,s,L,m);v[h]=w,_[h]=E,y[h]=I,C[h]=M[0],b[h]=M[1]}f.innerHTML=m.build(),f.style.position=\"absolute\",f.style.top=\"10000\",f.style.wordWrap=\"break-word\",document.body.appendChild(f);var k=document.createRange(),T=Array.prototype.slice.call(f.children,0),R=[];for(h=0;h<e.length;h++){var O=T[h],P=l(k,O,y[h],C[h]);if(null!==P){w=v[h],E=_[h];var A=b[h],F=[],W=0;for(p=P.length;W<p;W++)F[W]=A[P[W]];if(0!==w)for(W=0,p=P.length;W<p;W++)P[W]+=w;R[h]=new n.LineBreakData(P,F,E)}else R[h]=null}return document.body.removeChild(f),R}(d,e,t,s,u)}}},e}();function a(e,t,n,i,r){r.appendASCIIString('<div style=\"width:'),r.appendASCIIString(String(i)),r.appendASCIIString('px;\">');for(var s=e.length,a=t,l=0,u=[],d=[],c=0<s?e.charCodeAt(0):0,h=0;h<s;h++){u[h]=l,d[h]=a;var p=c;c=h+1<s?e.charCodeAt(h+1):0\n;var g=1,f=1;switch(p){case 9:f=g=n-a%n;for(var m=1;m<=g;m++)m<g?r.write1(160):r.appendASCII(32);break;case 32:32===c?r.write1(160):r.appendASCII(32);break;case 60:r.appendASCIIString(\"&lt;\");break;case 62:r.appendASCIIString(\"&gt;\");break;case 38:r.appendASCIIString(\"&amp;\");break;case 0:r.appendASCIIString(\"&#00;\");break;case 65279:case 8232:r.write1(65533);break;default:o.isFullWidthCharacter(p)&&f++,r.write1(p)}l+=g,a+=f}return u[e.length]=l,d[e.length]=a,r.appendASCIIString(\"</div>\"),[u,d]}function l(e,t,n,i){if(n.length<=1)return null;var o=[];return function e(t,n,i,o,r,s,a,l){if(o===s)return;r=r||u(t,n,i[o],i[o+1]);a=a||u(t,n,i[s],i[s+1]);if(Math.abs(r[0].top-a[0].top)<=.1)return;if(o+1===s)return void l.push(s);var d=o+(s-o)/2|0;var c=u(t,n,i[d],i[d+1]);e(t,n,i,o,r,d,c,l);e(t,n,i,d,c,s,a,l)}(e,t.firstChild,i,0,null,n.length-1,null,o),0===o.length?null:(o.push(n.length),o)}function u(e,t,n,i){return e.setStart(t,n),e.setEnd(t,i),e.getClientRects()}t.DOMLineBreaksComputerFactory=s})),\ndefine(n[513],i([0,1,28,60,143,37]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n._visibleLines=new o.VisibleLinesCollection(n),n.domNode=n._visibleLines.domNode,n._dynamicOverlays=[],n._isFocused=!1,n.domNode.setClassName(\"view-overlays\"),n}return r(t,e),t.prototype.shouldRender=function(){if(e.prototype.shouldRender.call(this))return!0;for(var t=0,n=this._dynamicOverlays.length;t<n;t++){if(this._dynamicOverlays[t].shouldRender())return!0}return!1},t.prototype.dispose=function(){e.prototype.dispose.call(this);for(var t=0,n=this._dynamicOverlays.length;t<n;t++){this._dynamicOverlays[t].dispose()}this._dynamicOverlays=[]},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new l(this._context.configuration,this._dynamicOverlays)},t.prototype.addDynamicOverlay=function(e){this._dynamicOverlays.push(e)},t.prototype.onConfigurationChanged=function(e){\nthis._visibleLines.onConfigurationChanged(e);for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){this._visibleLines.getVisibleLine(i).onConfigurationChanged(e)}return!0},t.prototype.onFlushed=function(e){return this._visibleLines.onFlushed(e)},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!0},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onScrollChanged=function(e){return this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._visibleLines.onZonesChanged(e)},t.prototype.prepareRender=function(e){for(var t=this._dynamicOverlays.filter((function(e){return e.shouldRender()\n})),n=0,i=t.length;n<i;n++){var o=t[n];o.prepareRender(e),o.onDidRender()}},t.prototype.render=function(e){this._viewOverlaysRender(e),this.domNode.toggleClassName(\"focused\",this._isFocused)},t.prototype._viewOverlaysRender=function(e){this._visibleLines.renderLines(e.viewportData)},t}(s.ViewPart);t.ViewOverlays=a;var l=function(){function e(e,t){this._configuration=e,this._lineHeight=this._configuration.options.get(49),this._dynamicOverlays=t,this._domNode=null,this._renderedContent=null}return e.prototype.getDomNode=function(){return this._domNode?this._domNode.domNode:null},e.prototype.setDomNode=function(e){this._domNode=n.createFastDomNode(e)},e.prototype.onContentChanged=function(){},e.prototype.onTokensChanged=function(){},e.prototype.onConfigurationChanged=function(e){this._lineHeight=this._configuration.options.get(49)},e.prototype.renderLine=function(e,t,n,i){for(var o=\"\",r=0,s=this._dynamicOverlays.length;r<s;r++){o+=this._dynamicOverlays[r].render(n.startLineNumber,e)}\nreturn this._renderedContent!==o&&(this._renderedContent=o,i.appendASCIIString('<div style=\"position:absolute;top:'),i.appendASCIIString(String(t)),i.appendASCIIString(\"px;width:100%;height:\"),i.appendASCIIString(String(this._lineHeight)),i.appendASCIIString('px;\">'),i.appendASCIIString(o),i.appendASCIIString(\"</div>\"),!0)},e.prototype.layoutLine=function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))},e}();t.ViewOverlayLine=l;var u=function(e){function t(t){var n=e.call(this,t)||this,i=n._context.configuration.options.get(107);return n._contentWidth=i.contentWidth,n.domNode.setHeight(0),n}return r(t,e),t.prototype.onConfigurationChanged=function(t){var n=this._context.configuration.options.get(107);return this._contentWidth=n.contentWidth,e.prototype.onConfigurationChanged.call(this,t)||!0},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollWidthChanged},t.prototype._viewOverlaysRender=function(t){\ne.prototype._viewOverlaysRender.call(this,t),this.domNode.setWidth(Math.max(t.scrollWidth,this._contentWidth))},t}(a);t.ContentViewOverlays=u;var d=function(e){function t(t){var n=e.call(this,t)||this,o=n._context.configuration.options,r=o.get(107);return n._contentLeft=r.contentLeft,n.domNode.setClassName(\"margin-view-overlays\"),n.domNode.setWidth(1),i.Configuration.applyFontInfo(n.domNode,o.get(34)),n}return r(t,e),t.prototype.onConfigurationChanged=function(t){var n=this._context.configuration.options;i.Configuration.applyFontInfo(this.domNode,n.get(34));var o=n.get(107);return this._contentLeft=o.contentLeft,e.prototype.onConfigurationChanged.call(this,t)||!0},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollHeightChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t);var n=Math.min(t.scrollHeight,1e6);this.domNode.setHeight(n),this.domNode.setWidth(this._contentLeft)},t}(a);t.MarginViewOverlays=d})),\ndefine(n[514],i([0,1,6,28,5,60,33,13,3]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e,t,n,i,o,r){this.top=e,this.left=t,this.width=n,this.height=i,this.textContent=o,this.textContentClassName=r},d=function(){function e(e){this._context=e;var t=this._context.configuration.options,n=t.get(34);this._cursorStyle=t.get(18),this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(21),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=i.createFastDomNode(document.createElement(\"div\")),this._domNode.setClassName(\"cursor\"),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),r.Configuration.applyFontInfo(this._domNode,n),this._domNode.setDisplay(\"none\"),this._position=new a.Position(1,1),this._lastRenderedContent=\"\",this._renderData=null}return e.prototype.getDomNode=function(){return this._domNode},\ne.prototype.getPosition=function(){return this._position},e.prototype.show=function(){this._isVisible||(this._domNode.setVisibility(\"inherit\"),this._isVisible=!0)},e.prototype.hide=function(){this._isVisible&&(this._domNode.setVisibility(\"hidden\"),this._isVisible=!1)},e.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(34);return this._cursorStyle=t.get(18),this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(21),this._typicalHalfwidthCharacterWidth),r.Configuration.applyFontInfo(this._domNode,n),!0},e.prototype.onCursorPositionChanged=function(e){return this._position=e,!0},e.prototype._prepareRender=function(e){var t=\"\";if(this._cursorStyle===s.TextEditorCursorStyle.Line||this._cursorStyle===s.TextEditorCursorStyle.LineThin){var i,r=e.visibleRangeForPosition(this._position);if(!r||r.outsideRenderedLine)return null;if(this._cursorStyle===s.TextEditorCursorStyle.Line){\nif((i=n.computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2))>2){var a=this._context.model.getLineContent(this._position.lineNumber),d=o.nextCharLength(a,this._position.column-1);t=a.substr(this._position.column-1,d)}}else i=n.computeScreenAwareSize(1);var c=r.left;i>=2&&c>=1&&(c-=1);var h=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new u(h,c,i,this._lineHeight,t,\"\")}var p=this._context.model.getLineContent(this._position.lineNumber),g=o.nextCharLength(p,this._position.column-1),f=e.linesVisibleRangesForRange(new l.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+g),!1);if(!f||0===f.length)return null;var m=f[0];if(m.outsideRenderedLine||0===m.ranges.length)return null;var v=m.ranges[0],_=v.width<1?this._typicalHalfwidthCharacterWidth:v.width,y=\"\";if(this._cursorStyle===s.TextEditorCursorStyle.Block){var C=this._context.model.getViewLineData(this._position.lineNumber)\n;t=p.substr(this._position.column-1,g);var b=C.tokens.findTokenIndexAtOffset(this._position.column-1);y=C.tokens.getClassName(b)}var S=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,w=this._lineHeight;return this._cursorStyle!==s.TextEditorCursorStyle.Underline&&this._cursorStyle!==s.TextEditorCursorStyle.UnderlineThin||(S+=this._lineHeight-2,w=2),new u(S,v.left,_,w,t,y)},e.prototype.prepareRender=function(e){this._renderData=this._prepareRender(e)},e.prototype.render=function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(\"cursor \"+this._renderData.textContentClassName),this._domNode.setDisplay(\"block\"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),\nthis._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay(\"none\"),null)},e}();t.ViewCursor=d})),define(n[515],i([0,1,10,4,2,252,5,17,118,63,85,42]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=Object.prototype.hasOwnProperty,g=function(e){function t(t,n){void 0===t&&(t=!0),void 0===n&&(n=!1);var o=e.call(this)||this;return o._onDidChange=o._register(new i.Emitter),o.onDidChange=o._onDidChange.event,o._warnOnOverwrite=n,o._nextLanguageId2=1,o._languageIdToLanguage=[],o._languageToLanguageId=Object.create(null),o._languages={},o._mimeTypesMap={},o._nameMap={},o._lowercaseNameMap={},t&&(o._initializeFromRegistry(),o._register(u.ModesRegistry.onDidChangeLanguages((function(e){return o._initializeFromRegistry()})))),o}return r(t,e),t.prototype._initializeFromRegistry=function(){this._languages={},\nthis._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={};var e=u.ModesRegistry.getLanguages();this._registerLanguages(e)},t.prototype._registerLanguages=function(e){for(var t=this,n=0,i=e;n<i.length;n++){var o=i[n];this._registerLanguage(o)}this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((function(e){var n=t._languages[e];n.name&&(t._nameMap[n.name]=n.identifier),n.aliases.forEach((function(e){t._lowercaseNameMap[e.toLowerCase()]=n.identifier})),n.mimetypes.forEach((function(e){t._mimeTypesMap[e]=n.identifier}))})),h.Registry.as(c.Extensions.Configuration).registerOverrideIdentifiers(u.ModesRegistry.getLanguages().map((function(e){return e.id}))),this._onDidChange.fire()},t.prototype._getLanguageId=function(e){if(this._languageToLanguageId[e])return this._languageToLanguageId[e];var t=this._nextLanguageId2++;return this._languageIdToLanguage[t]=e,this._languageToLanguageId[e]=t,t},t.prototype._registerLanguage=function(e){var t,n=e.id\n;if(p.call(this._languages,n))t=this._languages[n];else{var i=this._getLanguageId(n);t={identifier:new l.LanguageIdentifier(n,i),name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[]},this._languages[n]=t}this._mergeLanguage(t,e)},t.prototype._mergeLanguage=function(e,t){var i,o=t.id,r=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&((i=e.mimetypes).push.apply(i,t.mimetypes),r=t.mimetypes[0]),r||(r=\"text/x-\"+o,e.mimetypes.push(r)),Array.isArray(t.extensions))for(var l=0,u=t.extensions;l<u.length;l++){var d=u[l];s.registerTextMime({id:o,mime:r,extension:d},this._warnOnOverwrite),e.extensions.push(d)}if(Array.isArray(t.filenames))for(var c=0,h=t.filenames;c<h.length;c++){var p=h[c];s.registerTextMime({id:o,mime:r,filename:p},this._warnOnOverwrite),e.filenames.push(p)}if(Array.isArray(t.filenamePatterns))for(var g=0,f=t.filenamePatterns;g<f.length;g++){var m=f[g];s.registerTextMime({id:o,mime:r,filepattern:m},this._warnOnOverwrite)}\nif(\"string\"==typeof t.firstLine&&t.firstLine.length>0){var v=t.firstLine;\"^\"!==v.charAt(0)&&(v=\"^\"+v);try{var _=new RegExp(v);a.regExpLeadsToEndlessLoop(_)||s.registerTextMime({id:o,mime:r,firstline:_},this._warnOnOverwrite)}catch(e){n.onUnexpectedError(e)}}e.aliases.push(o);var y=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(y=0===t.aliases.length?[null]:t.aliases),null!==y)for(var C=0,b=y;C<b.length;C++){var S=b[C];S&&0!==S.length&&e.aliases.push(S)}var w=null!==y&&y.length>0;if(w&&null===y[0]);else{var E=(w?y[0]:null)||o;!w&&e.name||(e.name=E)}t.configuration&&e.configurationFiles.push(t.configuration)},t.prototype.isRegisteredMode=function(e){return!!p.call(this._mimeTypesMap,e)||p.call(this._languages,e)},t.prototype.getModeIdForLanguageNameLowercase=function(e){return p.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null},t.prototype.extractModeIds=function(e){var t=this;return e?e.split(\",\").map((function(e){return e.trim()})).map((function(e){\nreturn p.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e})).filter((function(e){return p.call(t._languages,e)})):[]},t.prototype.getLanguageIdentifier=function(e){if(e===d.NULL_MODE_ID||0===e)return d.NULL_LANGUAGE_IDENTIFIER;var t;if(\"string\"==typeof e)t=e;else if(!(t=this._languageIdToLanguage[e]))return null;return p.call(this._languages,t)?this._languages[t].identifier:null},t.prototype.getModeIdsFromFilepathOrFirstLine=function(e,t){if(!e&&!t)return[];var n=s.guessMimeTypes(e,t);return this.extractModeIds(n.join(\",\"))},t}(o.Disposable);t.LanguagesRegistry=g})),define(n[516],i([0,1,4,2,349,63,515,19]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(t,i){var o=e.call(this)||this;return o._onDidChange=o._register(new n.Emitter),o.onDidChange=o._onDidChange.event,o._selector=i,o.languageIdentifier=o._selector(),o._register(t((function(){return o._evaluate()}))),o}return r(t,e),t.prototype._evaluate=function(){var e=this._selector()\n;e.id!==this.languageIdentifier.id&&(this.languageIdentifier=e,this._onDidChange.fire(this.languageIdentifier))},t}(i.Disposable),d=function(){function e(e){var t=this;void 0===e&&(e=!1),this._onDidCreateMode=new n.Emitter,this.onDidCreateMode=this._onDidCreateMode.event,this._onLanguagesMaybeChanged=new n.Emitter,this.onLanguagesMaybeChanged=this._onLanguagesMaybeChanged.event,this._instantiatedModes={},this._registry=new a.LanguagesRegistry(!0,e),this._registry.onDidChange((function(){return t._onLanguagesMaybeChanged.fire()}))}return e.prototype.isRegisteredMode=function(e){return this._registry.isRegisteredMode(e)},e.prototype.getModeIdForLanguageName=function(e){return this._registry.getModeIdForLanguageNameLowercase(e)},e.prototype.getModeIdByFilepathOrFirstLine=function(e,t){var n=this._registry.getModeIdsFromFilepathOrFirstLine(e,t);return l.firstOrDefault(n,null)},e.prototype.getModeId=function(e){var t=this._registry.extractModeIds(e);return l.firstOrDefault(t,null)},\ne.prototype.getLanguageIdentifier=function(e){return this._registry.getLanguageIdentifier(e)},e.prototype.create=function(e){var t=this;return new u(this.onLanguagesMaybeChanged,(function(){var n=t.getModeId(e);return t._createModeAndGetLanguageIdentifier(n)}))},e.prototype.createByFilepathOrFirstLine=function(e,t){var n=this;return new u(this.onLanguagesMaybeChanged,(function(){var i=n.getModeIdByFilepathOrFirstLine(e,t);return n._createModeAndGetLanguageIdentifier(i)}))},e.prototype._createModeAndGetLanguageIdentifier=function(e){var t=this.getLanguageIdentifier(e||\"plaintext\")||s.NULL_LANGUAGE_IDENTIFIER;return this._getOrCreateMode(t.language),t},e.prototype.triggerMode=function(e){var t=this.getModeId(e);this._getOrCreateMode(t||\"plaintext\")},e.prototype._getOrCreateMode=function(e){if(!this._instantiatedModes.hasOwnProperty(e)){var t=this.getLanguageIdentifier(e)||s.NULL_LANGUAGE_IDENTIFIER;this._instantiatedModes[e]=new o.FrankensteinMode(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}\nreturn this._instantiatedModes[e]},e}();t.ModeServiceImpl=d})),define(n[43],i([0,1,42,11,85]),(function(e,t,n,i,o){\"use strict\";function r(e,t,n,i){for(var o=t.split(\".\"),r=o.pop(),s=e,a=0;a<o.length;a++){var l=o[a],u=s[l];switch(typeof u){case\"undefined\":u=s[l]=Object.create(null);break;case\"object\":break;default:return void i(\"Ignoring \"+t+\" as \"+o.slice(0,a+1).join(\".\")+\" is \"+JSON.stringify(u))}s=u}\"object\"==typeof s?s[r]=n:i(\"Ignoring \"+t+\" as \"+o.join(\".\")+\" is \"+JSON.stringify(s))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.IConfigurationService=i.createDecorator(\"configurationService\"),t.toValuesTree=function(e,t){var n=Object.create(null);for(var i in e)r(n,i,e[i],t);return n},t.addToValueTree=r,t.removeFromValueTree=function(e,t){!function e(t,n){var i=n.shift();if(0===n.length)return void delete t[i];if(-1!==Object.keys(t).indexOf(i)){var o=t[i];\"object\"!=typeof o||Array.isArray(o)||(e(o,n),0===Object.keys(o).length&&delete t[i])}}(e,t.split(\".\"))},t.getConfigurationValue=function(e,t,n){\nvar i=function(e,t){for(var n=e,i=0,o=t;i<o.length;i++){var r=o[i];if(\"object\"!=typeof n||null===n)return;n=n[r]}return n}(e,t.split(\".\"));return void 0===i?n:i},t.getConfigurationKeys=function(){var e=n.Registry.as(o.Extensions.Configuration).getConfigurationProperties();return Object.keys(e)},t.getDefaultValues=function(){var e=Object.create(null),t=n.Registry.as(o.Extensions.Configuration).getConfigurationProperties();for(var i in t){r(e,i,t[i].default,(function(e){return console.error(\"Conflict in default settings: \"+e)}))}return e},t.overrideIdentifierFromKey=function(e){return e.substring(1,e.length-1)},t.getMigratedSettingValue=function(e,t,n){var i=e.inspect(t),o=e.inspect(n);return void 0!==i.userValue||void 0!==i.workspaceValue||void 0!==i.workspaceFolderValue?i.value:void 0!==o.userValue||void 0!==o.workspaceValue||void 0!==o.workspaceFolderValue?o.value:i.defaultValue}})),define(n[517],i([0,1,2,64,4,18,43]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var l=function(e){function t(t,n){var r=e.call(this)||this;r._contextKeyService=t,r._configurationService=n,r._accessibilitySupport=0,r._onDidChangeScreenReaderOptimized=new o.Emitter,r._accessibilityModeEnabledContext=i.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(r._contextKeyService);var s=function(){return r._accessibilityModeEnabledContext.set(r.isScreenReaderOptimized())};return r._register(r._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration(\"editor.accessibilitySupport\")&&(s(),r._onDidChangeScreenReaderOptimized.fire())}))),s(),r.onDidChangeScreenReaderOptimized((function(){return s()})),r}return r(t,e),Object.defineProperty(t.prototype,\"onDidChangeScreenReaderOptimized\",{get:function(){return this._onDidChangeScreenReaderOptimized.event},enumerable:!0,configurable:!0}),t.prototype.isScreenReaderOptimized=function(){var e=this._configurationService.getValue(\"editor.accessibilitySupport\");return\"on\"===e||\"auto\"===e&&2===this._accessibilitySupport},\nt.prototype.getAccessibilitySupport=function(){return this._accessibilitySupport},t=h([g(0,s.IContextKeyService),g(1,a.IConfigurationService)],t)}(n.Disposable);t.AccessibilityService=l}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[518],i([0,1,38,19,21,31,85,43]),(function(e,t,n,i,o,s,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e,t,n){void 0===e&&(e={}),void 0===t&&(t=[]),void 0===n&&(n=[]),this._contents=e,this._keys=t,this._overrides=n,this.isFrozen=!1}return Object.defineProperty(e.prototype,\"contents\",{get:function(){return this.checkAndFreeze(this._contents)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"overrides\",{get:function(){return this.checkAndFreeze(this._overrides)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"keys\",{\nget:function(){return this.checkAndFreeze(this._keys)},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length},e.prototype.getValue=function(e){return e?u.getConfigurationValue(this.contents,e):this.contents},e.prototype.getOverrideValue=function(e,t){var n=this.getContentsForOverrideIdentifer(t);return n?e?u.getConfigurationValue(n,e):n:void 0},e.prototype.override=function(t){var n=this.getContentsForOverrideIdentifer(t);if(!n||\"object\"!=typeof n||!Object.keys(n).length)return this;for(var o={},r=0,l=i.distinct(a(Object.keys(this.contents),Object.keys(n)));r<l.length;r++){var u=l[r],d=this.contents[u],c=n[u];c&&(\"object\"==typeof d&&\"object\"==typeof c?(d=s.deepClone(d),this.mergeContents(d,c)):d=c),o[u]=d}return new e(o,this.keys,this.overrides)},e.prototype.merge=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n]\n;for(var o=s.deepClone(this.contents),r=s.deepClone(this.overrides),l=a(this.keys),u=0,d=t;u<d.length;u++){var c=d[u];this.mergeContents(o,c.contents);for(var h=function(e){var t=r.filter((function(t){return i.equals(t.identifiers,e.identifiers)}))[0];t?p.mergeContents(t.contents,e.contents):r.push(s.deepClone(e))},p=this,g=0,f=c.overrides;g<f.length;g++){var m=f[g];h(m)}for(var v=0,_=c.keys;v<_.length;v++){var y=_[v];-1===l.indexOf(y)&&l.push(y)}}return new e(o,l,r)},e.prototype.freeze=function(){return this.isFrozen=!0,this},e.prototype.mergeContents=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];r in e&&o.isObject(e[r])&&o.isObject(t[r])?this.mergeContents(e[r],t[r]):e[r]=s.deepClone(t[r])}},e.prototype.checkAndFreeze=function(e){return this.isFrozen&&!Object.isFrozen(e)?s.deepFreeze(e):e},e.prototype.getContentsForOverrideIdentifer=function(e){for(var t=0,n=this.overrides;t<n.length;t++){var i=n[t];if(-1!==i.identifiers.indexOf(e))return i.contents}return null},\ne.prototype.toJSON=function(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}},e.prototype.setValue=function(e,t){this.addKey(e),u.addToValueTree(this.contents,e,t,(function(e){throw new Error(e)}))},e.prototype.removeValue=function(e){this.removeKey(e)&&u.removeFromValueTree(this.contents,e)},e.prototype.addKey=function(e){for(var t=this.keys.length,n=0;n<t;n++)0===e.indexOf(this.keys[n])&&(t=n);this.keys.splice(t,1,e)},e.prototype.removeKey=function(e){var t=this.keys.indexOf(e);return-1!==t&&(this.keys.splice(t,1),!0)},e}();t.ConfigurationModel=d;var c=function(e){function t(){for(var t=u.getDefaultValues(),n=u.getConfigurationKeys(),i=[],o=0,r=Object.keys(t);o<r.length;o++){var s=r[o];l.OVERRIDE_PROPERTY_PATTERN.test(s)&&i.push({identifiers:[u.overrideIdentifierFromKey(s).trim()],keys:Object.keys(t[s]),contents:u.toValuesTree(t[s],(function(e){return console.error(\"Conflict in default settings file: \"+e)}))})}return e.call(this,t,n,i)||this}return r(t,e),t}(d)\n;t.DefaultConfigurationModel=c;var h=function(){function e(e,t,i,o,r,s,a,l){void 0===i&&(i=new d),void 0===o&&(o=new d),void 0===r&&(r=new n.ResourceMap),void 0===s&&(s=new d),void 0===a&&(a=new n.ResourceMap),void 0===l&&(l=!0),this._defaultConfiguration=e,this._localUserConfiguration=t,this._remoteUserConfiguration=i,this._workspaceConfiguration=o,this._folderConfigurations=r,this._memoryConfiguration=s,this._memoryConfigurationByResource=a,this._freeze=l,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new n.ResourceMap,this._userConfiguration=null}return e.prototype.getValue=function(e,t,n){return this.getConsolidateConfigurationModel(t,n).getValue(e)},e.prototype.updateValue=function(e,t,n){var i;void 0===n&&(n={}),n.resource?(i=this._memoryConfigurationByResource.get(n.resource))||(i=new d,this._memoryConfigurationByResource.set(n.resource,i)):i=this._memoryConfiguration,void 0===t?i.removeValue(e):i.setValue(e,t),\nn.resource||(this._workspaceConsolidatedConfiguration=null)},e.prototype.inspect=function(e,t,n){\nvar o=this.getConsolidateConfigurationModel(t,n),r=this.getFolderConfigurationModelForResource(t.resource,n),s=t.resource&&this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration,a=t.overrideIdentifier?this._defaultConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._defaultConfiguration.freeze().getValue(e),l=t.overrideIdentifier?this.userConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.userConfiguration.freeze().getValue(e),u=t.overrideIdentifier?this.localUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.localUserConfiguration.freeze().getValue(e),d=t.overrideIdentifier?this.remoteUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.remoteUserConfiguration.freeze().getValue(e),c=n?t.overrideIdentifier?this._workspaceConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._workspaceConfiguration.freeze().getValue(e):void 0,h=r?t.overrideIdentifier?r.freeze().override(t.overrideIdentifier).getValue(e):r.freeze().getValue(e):void 0,p=t.overrideIdentifier?s.override(t.overrideIdentifier).getValue(e):s.getValue(e),g=o.getValue(e),f=i.distinct(i.flatten(o.overrides.map((function(e){\nreturn e.identifiers})))).filter((function(t){return void 0!==o.getOverrideValue(e,t)}));return{defaultValue:a,userValue:l,userLocalValue:u,userRemoteValue:d,workspaceValue:c,workspaceFolderValue:h,memoryValue:p,value:g,default:void 0!==a?{value:this._defaultConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._defaultConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,user:void 0!==l?{value:this.userConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.userConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userLocal:void 0!==u?{value:this.localUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.localUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userRemote:void 0!==d?{value:this.remoteUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.remoteUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,\nworkspace:void 0!==c?{value:this._workspaceConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._workspaceConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspaceFolder:void 0!==h?{value:null==r?void 0:r.freeze().getValue(e),override:t.overrideIdentifier?null==r?void 0:r.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,memory:void 0!==p?{value:s.getValue(e),override:t.overrideIdentifier?s.getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,overrideIdentifiers:f.length?f:void 0}},Object.defineProperty(e.prototype,\"userConfiguration\",{get:function(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"localUserConfiguration\",{get:function(){\nreturn this._localUserConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteUserConfiguration\",{get:function(){return this._remoteUserConfiguration},enumerable:!0,configurable:!0}),e.prototype.getConsolidateConfigurationModel=function(e,t){var n=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?n.override(e.overrideIdentifier):n},e.prototype.getConsolidatedConfigurationModelForResource=function(e,t){var n=e.resource,i=this.getWorkspaceConsolidatedConfiguration();if(t&&n){var o=t.getFolder(n);o&&(i=this.getFolderConsolidatedConfiguration(o.uri)||i);var r=this._memoryConfigurationByResource.get(n);r&&(i=i.merge(r))}return i},e.prototype.getWorkspaceConsolidatedConfiguration=function(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),\nthis._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration},e.prototype.getFolderConsolidatedConfiguration=function(e){var t=this._foldersConsolidatedConfigurations.get(e);if(!t){var n=this.getWorkspaceConsolidatedConfiguration(),i=this._folderConfigurations.get(e);i?(t=n.merge(i),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=n}return t},e.prototype.getFolderConfigurationModelForResource=function(e,t){if(t&&e){var n=t.getFolder(e);if(n)return this._folderConfigurations.get(n.uri)}},e}();t.Configuration=h})),define(n[519],i([0,1,4,2,38,29,43,18,217]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"data-keybinding-context\",c=function(){function e(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}return e.prototype.setValue=function(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)},e.prototype.removeValue=function(e){\nreturn e in this._value&&(delete this._value[e],!0)},e.prototype.getValue=function(e){var t=this._value[e];return void 0===t&&this._parent?this._parent.getValue(e):t},e}();t.Context=c;var p=function(e){function t(){return e.call(this,-1,null)||this}return r(t,e),t.prototype.setValue=function(e,t){return!1},t.prototype.removeValue=function(e){return!1},t.prototype.getValue=function(e){},t.INSTANCE=new t,t}(c),f=function(e){function t(t,n,i){var r=e.call(this,t,null)||this;return r._configurationService=n,r._values=new Map,r._listener=r._configurationService.onDidChangeConfiguration((function(e){if(6===e.source){var t=o.keys(r._values);r._values.clear(),i.fire(new _(t))}else{for(var n=[],s=0,a=e.affectedKeys;s<a.length;s++){var l=\"config.\"+a[s];r._values.has(l)&&(r._values.delete(l),n.push(l))}i.fire(new _(n))}})),r}return r(t,e),t.prototype.dispose=function(){this._listener.dispose()},t.prototype.getValue=function(n){if(0!==n.indexOf(t._keyPrefix))return e.prototype.getValue.call(this,n)\n;if(this._values.has(n))return this._values.get(n);var i=n.substr(t._keyPrefix.length),o=this._configurationService.getValue(i),r=void 0;switch(typeof o){case\"number\":case\"boolean\":case\"string\":r=o}return this._values.set(n,r),r},t.prototype.setValue=function(t,n){return e.prototype.setValue.call(this,t,n)},t.prototype.removeValue=function(t){return e.prototype.removeValue.call(this,t)},t._keyPrefix=\"config.\",t}(c),m=function(){function e(e,t,n){this._service=e,this._key=t,this._defaultValue=n,this.reset()}return e.prototype.set=function(e){this._service.setContext(this._key,e)},e.prototype.reset=function(){void 0===this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)},e.prototype.get=function(){return this._service.getContextKeyValue(this._key)},e}(),v=function(){function e(e){this.key=e}return e.prototype.affectsSome=function(e){return e.has(this.key)},e}(),_=function(){function e(e){this.keys=e}return e.prototype.affectsSome=function(e){\nfor(var t=0,n=this.keys;t<n.length;t++){var i=n[t];if(e.has(i))return!0}return!1},e}(),y=function(){function e(e){this.events=e}return e.prototype.affectsSome=function(e){for(var t=0,n=this.events;t<n.length;t++){if(n[t].affectsSome(e))return!0}return!1},e}(),C=function(){function e(e){this._onDidChangeContext=new n.PauseableEmitter({merge:function(e){return new y(e)}}),this._isDisposed=!1,this._myContextId=e}return e.prototype.createKey=function(e,t){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new m(this,e,t)},Object.defineProperty(e.prototype,\"onDidChangeContext\",{get:function(){return this._onDidChangeContext.event},enumerable:!0,configurable:!0}),e.prototype.bufferChangeEvents=function(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}},e.prototype.createScoped=function(e){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new S(this,e)},e.prototype.contextMatchesRules=function(e){\nif(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");var t=this.getContextValuesContainer(this._myContextId);return u.KeybindingResolver.contextMatchesRules(t,e)},e.prototype.getContextKeyValue=function(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)},e.prototype.setContext=function(e,t){if(!this._isDisposed){var n=this.getContextValuesContainer(this._myContextId);n&&n.setValue(e,t)&&this._onDidChangeContext.fire(new v(e))}},e.prototype.removeContext=function(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new v(e))},e.prototype.getContext=function(e){return this._isDisposed?p.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(d)){var t=e.getAttribute(d);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))},e}();t.AbstractContextKeyService=C;var b=function(e){function t(t){var n=e.call(this,0)||this;n._contexts=new Map,\nn._toDispose=new i.DisposableStore,n._lastContextId=0;var o=new f(n._myContextId,t,n._onDidChangeContext);return n._contexts.set(n._myContextId,o),n._toDispose.add(o),n}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,this._toDispose.dispose()},t.prototype.getContextValuesContainer=function(e){return this._isDisposed?p.INSTANCE:this._contexts.get(e)||p.INSTANCE},t.prototype.createChildContext=function(e){if(void 0===e&&(e=this._myContextId),this._isDisposed)throw new Error(\"ContextKeyService has been disposed\");var t=++this._lastContextId;return this._contexts.set(t,new c(t,this.getContextValuesContainer(e))),t},t.prototype.disposeContext=function(e){this._isDisposed||this._contexts.delete(e)},t=h([g(0,a.IConfigurationService)],t)}(C);t.ContextKeyService=b;var S=function(e){function t(t,n){var i=e.call(this,t.createChildContext())||this;return i._parent=t,n&&(i._domNode=n,i._domNode.setAttribute(d,String(i._myContextId))),i}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,\nthis._parent.disposeContext(this._myContextId),this._domNode&&(this._domNode.removeAttribute(d),this._domNode=void 0)},Object.defineProperty(t.prototype,\"onDidChangeContext\",{get:function(){return n.Event.any(this._parent.onDidChangeContext,this._onDidChangeContext.event)},enumerable:!0,configurable:!0}),t.prototype.getContextValuesContainer=function(e){return this._isDisposed?p.INSTANCE:this._parent.getContextValuesContainer(e)},t.prototype.createChildContext=function(e){if(void 0===e&&(e=this._myContextId),this._isDisposed)throw new Error(\"ScopedContextKeyService has been disposed\");return this._parent.createChildContext(e)},t.prototype.disposeContext=function(e){this._isDisposed||this._parent.disposeContext(e)},t}(C);s.CommandsRegistry.registerCommand(l.SET_CONTEXT_COMMAND_ID,(function(e,t,n){e.get(l.IContextKeyService).createKey(String(t),n)}))})),define(n[86],i([0,1,36,16,29,42]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){\nthis._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}return e.bindToCurrentPlatform=function(e){if(1===i.OS){if(e&&e.win)return e.win}else if(2===i.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e},e.prototype.registerKeybindingRule=function(t){var o=e.bindToCurrentPlatform(t);o&&o.primary&&((a=n.createKeybinding(o.primary,i.OS))&&this._registerDefaultKeybinding(a,t.id,t.args,t.weight,0,t.when));if(o&&Array.isArray(o.secondary))for(var r=0,s=o.secondary.length;r<s;r++){var a,l=o.secondary[r];(a=n.createKeybinding(l,i.OS))&&this._registerDefaultKeybinding(a,t.id,t.args,t.weight,-r-1,t.when)}},e.prototype.registerCommandAndKeybindingRule=function(e){this.registerKeybindingRule(e),o.CommandsRegistry.registerCommand(e)},e._mightProduceChar=function(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))},e.prototype._assertNoCtrlAlt=function(t,n){\nt.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn(\"Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: \",t,\" for \",n)},e.prototype._registerDefaultKeybinding=function(e,t,n,o,r,s){1===i.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e,command:t,commandArgs:n,when:s,weight1:o,weight2:r}),this._cachedMergedKeybindings=null},e.prototype.getDefaultKeybindings=function(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(a)),this._cachedMergedKeybindings.slice(0)},e}();function a(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.command<t.command?-1:e.command>t.command?1:e.weight2-t.weight2}t.KeybindingsRegistry=new s,t.Extensions={EditorModes:\"platform.keybindingsRegistry\"},r.Registry.add(t.Extensions.EditorModes,t.KeybindingsRegistry)})),define(n[520],i([0,1,18,400,86,401]),(function(e,t,n,i,o,s){\n\"use strict\";function a(e,t){return e.getContext(document.activeElement).getValue(t)}function l(e,i){var o=function(e,t){return e.createScoped(t.target)}(e,i);return function(e,t,i){new n.RawContextKey(i,t).bindTo(e)}(o,i,t.HistoryNavigationWidgetContext),{scopedContextKeyService:o,historyNavigationEnablement:new n.RawContextKey(t.HistoryNavigationEnablementContext,!0).bindTo(o)}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.HistoryNavigationWidgetContext=\"historyNavigationWidget\",t.HistoryNavigationEnablementContext=\"historyNavigationEnabled\",t.createAndBindHistoryNavigationWidgetScopedContextKeyService=l;var u=function(e){function t(t,n,i,o,r){void 0===r&&(r=!1);var s=e.call(this,t,n,r,i)||this;return s._register(l(o,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return r(t,e),t=h([g(3,n.IContextKeyService)],t)}(i.FindInput);t.ContextScopedFindInput=u;var d=function(e){function t(t,n,i,o,r){void 0===r&&(r=!1);var s=e.call(this,t,n,r,i)||this;return s._register(l(o,{\ntarget:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return r(t,e),t=h([g(3,n.IContextKeyService)],t)}(s.ReplaceInput);t.ContextScopedReplaceInput=d,o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"history.showPrevious\",weight:200,when:n.ContextKeyExpr.and(n.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),n.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:16,secondary:[528],handler:function(e,i){var o=a(e.get(n.IContextKeyService),t.HistoryNavigationWidgetContext);o&&o.historyNavigator.showPreviousValue()}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"history.showNext\",weight:200,when:n.ContextKeyExpr.and(n.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),n.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:18,secondary:[530],handler:function(e,i){var o=a(e.get(n.IContextKeyService),t.HistoryNavigationWidgetContext);o&&o.historyNavigator.showNextValue()}})})),\ndefine(n[74],i([0,1,11,4,2,21]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IStorageService=n.createDecorator(\"storageService\"),function(e){e[e.NONE=0]=\"NONE\",e[e.SHUTDOWN=1]=\"SHUTDOWN\"}(t.WillSaveStateReason||(t.WillSaveStateReason={}));var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onDidChangeStorage=t._register(new i.Emitter),t.onDidChangeStorage=t._onDidChangeStorage.event,t._onWillSaveState=t._register(new i.Emitter),t.onWillSaveState=t._onWillSaveState.event,t.globalCache=new Map,t.workspaceCache=new Map,t}return r(t,e),t.prototype.getCache=function(e){return 0===e?this.globalCache:this.workspaceCache},t.prototype.get=function(e,t,n){var i=this.getCache(t).get(e);return s.isUndefinedOrNull(i)?n:i},t.prototype.getBoolean=function(e,t,n){var i=this.getCache(t).get(e);return s.isUndefinedOrNull(i)?n:\"true\"===i},t.prototype.store=function(e,t,n){if(s.isUndefinedOrNull(t))return this.remove(e,n);var i=String(t)\n;return this.getCache(n).get(e)===i?Promise.resolve():(this.getCache(n).set(e,i),this._onDidChangeStorage.fire({scope:n,key:e}),Promise.resolve())},t.prototype.remove=function(e,t){return this.getCache(t).delete(e)?(this._onDidChangeStorage.fire({scope:t,key:e}),Promise.resolve()):Promise.resolve()},t}(o.Disposable);t.InMemoryStorageService=a})),define(n[521],i([0,1,38,74,17,2,15,11,43,83]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){}return e.prototype.select=function(e,t,n){if(0===n.length)return 0;for(var i=n[0].score[0],o=1;o<n.length;o++){var r=n[o],s=r.score,a=r.completion;if(s[0]!==i)break;if(a.preselect)return o}return 0},e}();t.Memory=c;var p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.memorize=function(e,t,n){},t.prototype.toJSON=function(){},t.prototype.fromJSON=function(){},t}(c);t.NoMemory=p;var f=function(e){function t(){\nvar t=null!==e&&e.apply(this,arguments)||this;return t._cache=new n.LRUCache(300,.66),t._seq=0,t}return r(t,e),t.prototype.memorize=function(e,t,n){var i=n.completion.label,o=e.getLanguageIdentifier().language+\"/\"+i;this._cache.set(o,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})},t.prototype.select=function(t,n,i){if(0===i.length)return 0;var o=t.getLineContent(n.lineNumber).substr(n.column-10,n.column-1);if(/\\s$/.test(o))return e.prototype.select.call(this,t,n,i);for(var r=i[0].score[0],s=-1,a=-1,l=-1,u=0;u<i.length&&i[u].score[0]===r;u++){var d=t.getLanguageIdentifier().language+\"/\"+i[u].completion.label,c=this._cache.peek(d);if(c&&c.touch>l&&c.type===i[u].completion.kind&&c.insertText===i[u].completion.insertText&&(l=c.touch,a=u),i[u].completion.preselect&&-1===s)return u}return-1!==a?a:-1!==s?s:0},t.prototype.toJSON=function(){var e=[];return this._cache.forEach((function(t,n){e.push([n,t])})),e},t.prototype.fromJSON=function(e){this._cache.clear()\n;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=i[0],s=i[1];s.touch=0,s.type=\"number\"==typeof s.type?s.type:o.completionKindFromString(s.type),this._cache.set(r,s)}this._seq=this._cache.size},t}(c);t.LRUMemory=f;var m=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._trie=n.TernarySearchTree.forStrings(),t._seq=0,t}return r(t,e),t.prototype.memorize=function(e,t,n){var i=e.getWordUntilPosition(t).word,o=e.getLanguageIdentifier().language+\"/\"+i;this._trie.set(o,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})},t.prototype.select=function(t,n,i){var o=t.getWordUntilPosition(n).word;if(!o)return e.prototype.select.call(this,t,n,i);var r=t.getLanguageIdentifier().language+\"/\"+o,s=this._trie.get(r);if(s||(s=this._trie.findSubstr(r)),s)for(var a=0;a<i.length;a++){var l=i[a].completion,u=l.kind,d=l.insertText;if(u===s.type&&d===s.insertText)return a}return e.prototype.select.call(this,t,n,i)},t.prototype.toJSON=function(){var e=[]\n;return this._trie.forEach((function(t,n){return e.push([n,t])})),e.sort((function(e,t){return-(e[1].touch-t[1].touch)})).forEach((function(e,t){return e[1].touch=t})),e.slice(0,200)},t.prototype.fromJSON=function(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=i[0],s=i[1];s.type=\"number\"==typeof s.type?s.type:o.completionKindFromString(s.type),this._trie.set(r,s)}}},t}(c);t.PrefixMemory=m;var v=function(e){function t(t,n){var o=e.call(this)||this;o._storageService=t,o._configService=n,o._storagePrefix=\"suggest/memories\";var r=function(){var e=o._configService.getValue(\"editor.suggestSelection\"),t=o._configService.getValue(\"editor.suggest.shareSuggestSelections\");o._update(e,t,!1)};return o._persistSoon=o._register(new a.RunOnceScheduler((function(){return o._saveState()}),500)),o._register(t.onWillSaveState((function(e){e.reason===i.WillSaveStateReason.SHUTDOWN&&o._saveState()}))),o._register(o._configService.onDidChangeConfiguration((function(e){\n(e.affectsConfiguration(\"editor.suggestSelection\")||e.affectsConfiguration(\"editor.suggest.shareSuggestSelections\"))&&r()}))),o._register(o._storageService.onDidChangeStorage((function(e){0===e.scope&&0===e.key.indexOf(o._storagePrefix)&&(document.hasFocus()||o._update(o._mode,o._shareMem,!0))}))),r(),o}return r(t,e),t.prototype._update=function(e,t,n){if(n||this._mode!==e||this._shareMem!==t){this._shareMem=t,this._mode=e,this._strategy=\"recentlyUsedByPrefix\"===e?new m:\"recentlyUsed\"===e?new f:new p;try{var i=t?0:1,o=this._storageService.get(this._storagePrefix+\"/\"+this._mode,i);o&&this._strategy.fromJSON(JSON.parse(o))}catch(e){}}},t.prototype.memorize=function(e,t,n){this._strategy.memorize(e,t,n),this._persistSoon.schedule()},t.prototype.select=function(e,t,n){return this._strategy.select(e,t,n)},t.prototype._saveState=function(){var e=JSON.stringify(this._strategy),t=this._shareMem?0:1;this._storageService.store(this._storagePrefix+\"/\"+this._mode,e,t)},\nt=h([g(0,i.IStorageService),g(1,u.IConfigurationService)],t)}(s.Disposable);t.SuggestMemoryService=v,t.ISuggestMemoryService=l.createDecorator(\"ISuggestMemories\"),d.registerSingleton(t.ISuggestMemoryService,v,!0)})),define(n[96],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITelemetryService=n.createDecorator(\"telemetryService\")})),define(n[12],i([0,1,10,25,32,13,49,84,65,29,18,86,42,96,21]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(){function e(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this._description=e.description}return e.prototype.register=function(){var e=this;if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){var t=this._kbOpts.kbExpr;this.precondition&&(t=t?c.ContextKeyExpr.and(t,this.precondition):this.precondition),\nh.KeybindingsRegistry.registerCommandAndKeybindingRule({id:this.id,handler:function(t,n){return e.runCommand(t,n)},weight:this._kbOpts.weight,when:t,primary:this._kbOpts.primary,secondary:this._kbOpts.secondary,win:this._kbOpts.win,linux:this._kbOpts.linux,mac:this._kbOpts.mac,description:this._description})}else d.CommandsRegistry.registerCommand({id:this.id,handler:function(t,n){return e.runCommand(t,n)},description:this._description})},e.prototype._registerMenuItem=function(e){u.MenuRegistry.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title},when:e.when,order:e.order})},e}();t.Command=m;var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.bindToContribution=function(e){return function(t){function n(e){var n=t.call(this,e)||this;return n._callback=e.handler,n}return r(n,t),n.prototype.runEditorCommand=function(t,n,i){e(n)&&this._callback(e(n),i)},n}(t)},t.prototype.runCommand=function(e,t){\nvar n=this,i=e.get(o.ICodeEditorService),r=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(r)return r.invokeWithinContext((function(e){if(e.get(c.IContextKeyService).contextMatchesRules(f.withNullAsUndefined(n.precondition)))return n.runEditorCommand(e,r,t)}))},t}(m);t.EditorCommand=v;var _=function(e){function t(n){var i=e.call(this,t.convertOptions(n))||this;return i.label=n.label,i.alias=n.alias,i}return r(t,e),t.convertOptions=function(e){var t;function n(t){return t.menuId||(t.menuId=7),t.title||(t.title=e.label),t.when=c.ContextKeyExpr.and(e.precondition,t.when),t}return t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts)?t.push.apply(t,e.contextMenuOpts.map(n)):e.contextMenuOpts&&t.push(n(e.contextMenuOpts)),e.menuOpts=t,e},t.prototype.runEditorCommand=function(e,t,n){return this.reportTelemetry(e,t),this.run(e,t,n||{})},t.prototype.reportTelemetry=function(e,t){e.get(g.ITelemetryService).publicLog2(\"editorActionInvoked\",{name:this.label,id:this.id})\n},t}(v);function y(e,t){d.CommandsRegistry.registerCommand(e,(function(e,n){return t(e,n||{})}))}t.EditorAction=_,t.registerLanguageCommand=y,t.registerDefaultLanguageCommand=function(e,t){y(e,(function(e,o){var r=o.resource,u=o.position;if(!(r instanceof i.URI))throw n.illegalArgument(\"resource\");if(!s.Position.isIPosition(u))throw n.illegalArgument(\"position\");var d=e.get(a.IModelService).getModel(r);if(d){var c=s.Position.lift(u);return t(d,c,o)}return e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(n,i){try{n(t(e.object.textEditorModel,s.Position.lift(u),o))}catch(e){i(e)}})).finally((function(){e.dispose()}))}))}))},t.registerModelAndPositionCommand=function(e,t){d.CommandsRegistry.registerCommand(e,(function(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];var r=n[0],u=n[1];f.assertType(i.URI.isUri(r)),f.assertType(s.Position.isIPosition(u));var d=e.get(a.IModelService).getModel(r);if(d){var c=s.Position.lift(u);return t(d,c,n.slice(2))}\nreturn e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(i,o){try{i(t(e.object.textEditorModel,s.Position.lift(u),n.slice(2)))}catch(e){o(e)}})).finally((function(){e.dispose()}))}))}))},t.registerModelCommand=function(e,t){d.CommandsRegistry.registerCommand(e,(function(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];var r=n[0];f.assertType(i.URI.isUri(r));var s=e.get(a.IModelService).getModel(r);return s?t(s,n.slice(1)):e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(i,o){try{i(t(e.object.textEditorModel,n.slice(1)))}catch(e){o(e)}})).finally((function(){e.dispose()}))}))}))},t.registerEditorCommand=function(e){return C.INSTANCE.registerEditorCommand(e),e},t.registerEditorAction=function(e){C.INSTANCE.registerEditorAction(new e)},t.registerInstantiatedEditorAction=function(e){C.INSTANCE.registerEditorAction(e)},t.registerEditorContribution=function(e,t){C.INSTANCE.registerEditorContribution(e,t)},\nfunction(e){e.getEditorCommand=function(e){return C.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return C.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return C.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return C.INSTANCE.getEditorContributions().filter((function(t){return e.indexOf(t.id)>=0}))},e.getDiffEditorContributions=function(){return C.INSTANCE.getDiffEditorContributions()}}(t.EditorExtensionsRegistry||(t.EditorExtensionsRegistry={}));var C=function(){function e(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}return e.prototype.registerEditorContribution=function(e,t){this.editorContributions.push({id:e,ctor:t})},e.prototype.getEditorContributions=function(){return this.editorContributions.slice(0)},e.prototype.getDiffEditorContributions=function(){return this.diffEditorContributions.slice(0)},e.prototype.registerEditorAction=function(e){e.register(),\nthis.editorActions.push(e)},e.prototype.getEditorActions=function(){return this.editorActions.slice(0)},e.prototype.registerEditorCommand=function(e){e.register(),this.editorCommands[e.id]=e},e.prototype.getEditorCommand=function(e){return this.editorCommands[e]||null},e.INSTANCE=new e,e}();p.Registry.add(\"editor.contributions\",C.INSTANCE)})),define(n[164],i([0,1,415,21,12,32,483,40,212,213,159,13,3,68,23,18]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v,_,y,C=0,b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors();i&&this.runCoreEditorCommand(i,n||{})},t}(o.EditorCommand);function S(e){e.register()}t.CoreEditorCommand=b,function(e){e.description={description:\"Scroll editor in the given direction\",args:[{name:\"Editor scroll argument object\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory direction value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'up', 'down'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'page', 'halfPage'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\\n\\t\\t\\t\\t\",constraint:function(e){if(!i.isObject(e))return!1;var t=e;return!!i.isString(t.to)&&(!(!i.isUndefined(t.by)&&!i.isString(t.by))&&(!(!i.isUndefined(t.value)&&!i.isNumber(t.value))&&!(!i.isUndefined(t.revealCursor)&&!i.isBoolean(t.revealCursor))))},schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"up\",\"down\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"page\",\"halfPage\"]},value:{type:\"number\",default:1},revealCursor:{type:\"boolean\"}}}}]},e.RawDirection={Up:\"up\",Down:\"down\"},e.RawUnit={\nLine:\"line\",WrappedLine:\"wrappedLine\",Page:\"page\",HalfPage:\"halfPage\"},e.parse=function(t){var n,i;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(v=t.EditorScroll_||(t.EditorScroll_={})),function(e){e.description={description:\"Reveal the given line at the given logical position\",args:[{name:\"Reveal line argument object\",description:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'lineNumber': A mandatory line number value.\\n\\t\\t\\t\\t\\t* 'at': Logical position at which line has to be revealed .\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'top', 'center', 'bottom'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\",constraint:function(e){if(!i.isObject(e))return!1;var t=e\n;return!!i.isNumber(t.lineNumber)&&!(!i.isUndefined(t.at)&&!i.isString(t.at))},schema:{type:\"object\",required:[\"lineNumber\"],properties:{lineNumber:{type:\"number\"},at:{type:\"string\",enum:[\"top\",\"center\",\"bottom\"]}}}}]},e.RawAtArgument={Top:\"top\",Center:\"center\",Bottom:\"bottom\"}}(_=t.RevealLine_||(t.RevealLine_={})),function(e){var t=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.moveTo(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(t.source,!0,0,0)},t}(b);e.MoveTo=o.registerEditorCommand(new t({id:\"_moveTo\",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=o.registerEditorCommand(new t({id:\"_moveToSelect\",inSelectionMode:!0,precondition:void 0}));var n=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),\nt.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement();var n=this._getColumnSelectResult(e.context,e.getPrimaryCursor(),e.getColumnSelectData(),t);e.setStates(t.source,3,n.viewStates.map((function(e){return l.CursorState.fromViewState(e)}))),e.setColumnSelectData({isReal:!0,fromViewLineNumber:n.fromLineNumber,fromViewVisualColumn:n.fromVisualColumn,toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),e.reveal(t.source,!0,n.reversed?1:2,0)},t}(b);e.ColumnSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"columnSelect\",precondition:void 0})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){var o=e.model.validatePosition(i.position),r=e.validateViewPosition(new h.Position(i.viewPosition.lineNumber,i.viewPosition.column),o),s=i.doColumnSelect?n.fromViewLineNumber:r.lineNumber,l=i.doColumnSelect?n.fromViewVisualColumn:i.mouseColumn-1\n;return a.ColumnSelection.columnSelect(e.config,e.viewModel,s,l,r.lineNumber,i.mouseColumn-1)},t}(n))),e.CursorColumnSelectLeft=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorColumnSelectLeft\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectLeft(e.config,e.viewModel,n)},t}(n))),e.CursorColumnSelectRight=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorColumnSelectRight\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectRight(e.config,e.viewModel,n)},t}(n)));var i=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return r(t,e),\nt.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectUp(e.config,e.viewModel,n,this._isPaged)},t}(n);e.CursorColumnSelectUp=o.registerEditorCommand(new i({isPaged:!1,id:\"cursorColumnSelectUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=o.registerEditorCommand(new i({isPaged:!0,id:\"cursorColumnSelectPageUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));var s=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectDown(e.config,e.viewModel,n,this._isPaged)},t}(n);e.CursorColumnSelectDown=o.registerEditorCommand(new s({isPaged:!1,id:\"cursorColumnSelectDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),\ne.CursorColumnSelectPageDown=o.registerEditorCommand(new s({isPaged:!0,id:\"cursorColumnSelectPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));var u=function(e){function t(){return e.call(this,{id:\"cursorMove\",precondition:void 0,description:d.CursorMove.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=d.CursorMove.parse(t);n&&this._runCursorMove(e,t.source,n)},t.prototype._runCursorMove=function(e,t,n){e.context.model.pushStackElement(),e.setStates(t,3,d.CursorMoveCommands.move(e.context,e.getAll(),n)),e.reveal(t,!0,0,0)},t}(b);e.CursorMoveImpl=u,e.CursorMove=o.registerEditorCommand(new u);var c=function(t){function n(e){var n=t.call(this,e)||this;return n._staticArgs=e.args,n}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){var i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,\nvalue:t.context.config.pageSize}),e.CursorMove._runCursorMove(t,n.source,i)},n}(b);e.CursorLeft=o.registerEditorCommand(new c({args:{direction:0,unit:0,select:!1,value:1},id:\"cursorLeft\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=o.registerEditorCommand(new c({args:{direction:0,unit:0,select:!0,value:1},id:\"cursorLeftSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1039}})),e.CursorRight=o.registerEditorCommand(new c({args:{direction:1,unit:0,select:!1,value:1},id:\"cursorRight\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=o.registerEditorCommand(new c({args:{direction:1,unit:0,select:!0,value:1},id:\"cursorRightSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1041}})),e.CursorUp=o.registerEditorCommand(new c({args:{\ndirection:2,unit:2,select:!1,value:1},id:\"cursorUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!0,value:1},id:\"cursorUpSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!1,value:-1},id:\"cursorPageUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:11}})),e.CursorPageUpSelect=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!0,value:-1},id:\"cursorPageUpSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1035}})),e.CursorDown=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!1,value:1},id:\"cursorDown\",precondition:void 0,kbOpts:{weight:C,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!0,value:1},id:\"cursorDownSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!1,value:-1},id:\"cursorPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:12}})),e.CursorPageDownSelect=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!0,value:-1},id:\"cursorPageDownSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1036}})),e.CreateCursor=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"createCursor\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n,i=e.context\n;n=t.wholeLine?d.CursorMoveCommands.line(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition):d.CursorMoveCommands.moveTo(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition);var o=e.getAll();if(o.length>1)for(var r=n.modelState?n.modelState.position:null,s=n.viewState?n.viewState.position:null,a=0,l=o.length;a<l;a++){var u=o[a];if((!r||u.modelState.selection.containsPosition(r))&&(!s||u.viewState.selection.containsPosition(s)))return o.splice(a,1),e.context.model.pushStackElement(),void e.setStates(t.source,3,o)}o.push(n),e.context.model.pushStackElement(),e.setStates(t.source,3,o)},t}(b))),e.LastCursorMoveToSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"_lastCursorMoveToSelect\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.context,i=e.getLastAddedCursorIndex(),o=e.getAll(),r=o.slice(0);r[i]=d.CursorMoveCommands.moveTo(n,o[i],!0,t.position,t.viewPosition),e.context.model.pushStackElement(),e.setStates(t.source,3,r)},t\n}(b)));var g=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToBeginningOfLine(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorHome=o.registerEditorCommand(new g({inSelectionMode:!1,id:\"cursorHome\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=o.registerEditorCommand(new g({inSelectionMode:!0,id:\"cursorHomeSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}})),e.CursorLineStart=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorLineStart\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:287}}})||this}return r(t,e),\nt.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,this._exec(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t.prototype._exec=function(e,t){for(var n=[],i=0,o=t.length;i<o;i++){var r=t[i],s=r.modelState.position.lineNumber;n[i]=l.CursorState.fromModelState(r.modelState.move(!1,s,1,0))}return n},t}(b)));var m=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToEndOfLine(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorEnd=o.registerEditorCommand(new m({inSelectionMode:!1,id:\"cursorEnd\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}}})),e.CursorEndSelect=o.registerEditorCommand(new m({inSelectionMode:!0,id:\"cursorEndSelect\",precondition:void 0,kbOpts:{\nweight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}}})),e.CursorLineEnd=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorLineEnd\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:291}}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,this._exec(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t.prototype._exec=function(e,t){for(var n=[],i=0,o=t.length;i<o;i++){var r=t[i],s=r.modelState.position.lineNumber,a=e.model.getLineMaxColumn(s);n[i]=l.CursorState.fromModelState(r.modelState.move(!1,s,a,0))}return n},t}(b)));var y=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),\ne.setStates(t.source,3,d.CursorMoveCommands.moveToBeginningOfBuffer(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorTop=o.registerEditorCommand(new y({inSelectionMode:!1,id:\"cursorTop\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=o.registerEditorCommand(new y({inSelectionMode:!0,id:\"cursorTopSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3086,mac:{primary:3088}}}));var S=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToEndOfBuffer(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorBottom=o.registerEditorCommand(new S({inSelectionMode:!1,id:\"cursorBottom\",precondition:void 0,kbOpts:{weight:C,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=o.registerEditorCommand(new S({inSelectionMode:!0,id:\"cursorBottomSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3085,mac:{primary:3090}}}));var w=function(e){function t(){return e.call(this,{id:\"editorScroll\",precondition:void 0,description:v.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=v.parse(t);n&&this._runEditorScroll(e,t.source,n)},t.prototype._runEditorScroll=function(e,t,n){var i=this._computeDesiredScrollTop(e.context,n);if(n.revealCursor){var o=e.context.getCompletelyVisibleViewRangeAtScrollTop(i);e.setStates(t,3,[d.CursorMoveCommands.findPositionInViewportIfOutside(e.context,e.getPrimaryCursor(),o,n.select)])}e.scrollTo(i)},t.prototype._computeDesiredScrollTop=function(e,t){if(1===t.unit){var n=e.getCompletelyVisibleModelRange(),i=void 0\n;i=1===t.direction?Math.max(1,n.startLineNumber-t.value):Math.min(e.model.getLineCount(),n.startLineNumber+t.value);var o=e.convertModelPositionToViewPosition(new h.Position(i,1));return e.getVerticalOffsetForViewLine(o.lineNumber)}var r;r=3===t.unit?e.config.pageSize*t.value:4===t.unit?Math.round(e.config.pageSize/2)*t.value:t.value;var s=(1===t.direction?-1:1)*r;return e.getCurrentScrollTop()+s*e.config.lineHeight},t}(b);e.EditorScrollImpl=w,e.EditorScroll=o.registerEditorCommand(new w),e.ScrollLineUp=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollLineUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2064,mac:{primary:267}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:2,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollPageUp=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollPageUp\",precondition:void 0,kbOpts:{\nweight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:3,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollLineDown=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollLineDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2066,mac:{primary:268}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:2,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollPageDown=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){\ne.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:3,value:1,revealCursor:!1,select:!1})},n}(b)));var E=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.word(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position)]),e.reveal(t.source,!0,0,0)},t}(b);e.WordSelect=o.registerEditorCommand(new E({inSelectionMode:!1,id:\"_wordSelect\",precondition:void 0})),e.WordSelectDrag=o.registerEditorCommand(new E({inSelectionMode:!0,id:\"_wordSelectDrag\",precondition:void 0})),e.LastCursorWordSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"lastCursorWordSelect\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.context,i=e.getLastAddedCursorIndex(),o=e.getAll(),r=o.slice(0),s=o[i]\n;r[i]=d.CursorMoveCommands.word(n,s,s.modelState.hasSelection(),t.position),n.model.pushStackElement(),e.setStates(t.source,3,r)},t}(b)));var L=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.line(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(t.source,!1,0,0)},t}(b);e.LineSelect=o.registerEditorCommand(new L({inSelectionMode:!1,id:\"_lineSelect\",precondition:void 0})),e.LineSelectDrag=o.registerEditorCommand(new L({inSelectionMode:!0,id:\"_lineSelectDrag\",precondition:void 0}));var D=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getAll(),o=i.slice(0)\n;o[n]=d.CursorMoveCommands.line(e.context,i[n],this._inSelectionMode,t.position,t.viewPosition),e.context.model.pushStackElement(),e.setStates(t.source,3,o)},t}(b);e.LastCursorLineSelect=o.registerEditorCommand(new D({inSelectionMode:!1,id:\"lastCursorLineSelect\",precondition:void 0})),e.LastCursorLineSelectDrag=o.registerEditorCommand(new D({inSelectionMode:!0,id:\"lastCursorLineSelectDrag\",precondition:void 0})),e.ExpandLineSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"expandLineSelection\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2090}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.expandLineSelection(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t}(b))),e.CancelSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cancelSelection\",precondition:f.EditorContextKeys.hasNonEmptySelection,\nkbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.cancelSelection(e.context,e.getPrimaryCursor())]),e.reveal(t.source,!0,0,0)},t}(b))),e.RemoveSecondaryCursors=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"removeSecondaryCursors\",precondition:f.EditorContextKeys.hasMultipleSelections,kbOpts:{weight:C+1,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[e.getPrimaryCursor()]),e.reveal(t.source,!0,0,0)},t}(b))),e.RevealLine=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"revealLine\",precondition:void 0,description:_.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=t,i=(n.lineNumber||0)+1\n;i<1&&(i=1);var o=e.context.model.getLineCount();i>o&&(i=o);var r=new p.Range(i,1,i,e.context.model.getLineMaxColumn(i)),s=0;if(n.at)switch(n.at){case _.RawAtArgument.Top:s=3;break;case _.RawAtArgument.Center:s=1;break;case _.RawAtArgument.Bottom:s=4}var a=e.context.convertModelRangeToViewRange(r);e.revealRange(t.source,!1,a,s,0)},t}(b))),e.SelectAll=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"selectAll\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.selectAll(e.context,e.getPrimaryCursor())])},t}(b))),e.SetSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"setSelection\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[l.CursorState.fromModelSelection(t.selection)])},t}(b)))\n}(y=t.CoreNavigationCommands||(t.CoreNavigationCommands={})),function(e){var t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors();i&&this.runCoreEditingCommand(t,i,n||{})},t}(o.EditorCommand);e.CoreEditingCommand=t,e.LineBreakInsert=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"lineBreakInsert\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.lineBreakInsert(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))))},t}(t))),e.Outdent=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"outdent\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,\nkbExpr:m.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.outdent(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection})))),e.pushUndoStop()},t}(t))),e.Tab=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"tab\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:m.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.tab(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection})))),e.pushUndoStop()},t}(t))),e.DeleteLeft=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"deleteLeft\",\nprecondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){var i=u.DeleteOperations.deleteLeft(t.getPrevEditOperationType(),t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))),o=i[0],r=i[1];o&&e.pushUndoStop(),e.executeCommands(this.id,r),t.setPrevEditOperationType(2)},t}(t))),e.DeleteRight=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"deleteRight\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){var i=u.DeleteOperations.deleteRight(t.getPrevEditOperationType(),t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))),o=i[0],r=i[1]\n;o&&e.pushUndoStop(),e.executeCommands(this.id,r),t.setPrevEditOperationType(3)},t}(t)))}(t.CoreEditingCommands||(t.CoreEditingCommands={}));var w=function(e){function t(t){var n=e.call(this,t)||this;return n._editorHandler=t.editorHandler,n._inputHandler=t.inputHandler,n}return r(t,e),t.prototype.runCommand=function(e,t){var n=e.get(s.ICodeEditorService).getFocusedCodeEditor();if(n&&n.hasTextFocus())return this._runEditorHandler(e,n,t);var i=document.activeElement;if(!(i&&[\"input\",\"textarea\"].indexOf(i.tagName.toLowerCase())>=0)){var o=e.get(s.ICodeEditorService).getActiveCodeEditor();return o?(o.focus(),this._runEditorHandler(e,o,t)):void 0}document.execCommand(this._inputHandler)},t.prototype._runEditorHandler=function(e,t,n){var i=this._editorHandler;\"string\"==typeof i?t.trigger(\"keyboard\",i,n):((n=n||{}).source=\"keyboard\",i.runEditorCommand(e,t,n))},t}(o.Command),E=function(e){function t(t,n,i){var o=e.call(this,{id:t,precondition:void 0,description:i})||this;return o._handlerId=n,o}return r(t,e),\nt.prototype.runCommand=function(e,t){var n=e.get(s.ICodeEditorService).getFocusedCodeEditor();n&&n.trigger(\"keyboard\",this._handlerId,t)},t}(o.Command);function L(e,t){S(new E(\"default:\"+e,e)),S(new E(e,e,t))}S(new w({editorHandler:y.SelectAll,inputHandler:\"selectAll\",id:\"editor.action.selectAll\",precondition:f.EditorContextKeys.textInputFocus,kbOpts:{weight:C,kbExpr:null,primary:2079},menuOpts:{menuId:25,group:\"1_basic\",title:n.localize(0,null),order:1}})),S(new w({editorHandler:g.Handler.Undo,inputHandler:\"undo\",id:g.Handler.Undo,precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2104},menuOpts:{menuId:17,group:\"1_do\",title:n.localize(1,null),order:1}})),S(new E(\"default:\"+g.Handler.Undo,g.Handler.Undo)),S(new w({editorHandler:g.Handler.Redo,inputHandler:\"redo\",id:g.Handler.Redo,precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:{menuId:17,\ngroup:\"1_do\",title:n.localize(2,null),order:2}})),S(new E(\"default:\"+g.Handler.Redo,g.Handler.Redo)),L(g.Handler.Type,{description:\"Type\",args:[{name:\"args\",schema:{type:\"object\",required:[\"text\"],properties:{text:{type:\"string\"}}}}]}),L(g.Handler.ReplacePreviousChar),L(g.Handler.CompositionStart),L(g.Handler.CompositionEnd),L(g.Handler.Paste),L(g.Handler.Cut)})),define(n[522],i([0,1,12,18,26,76,11,83]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=a.createDecorator(\"IEditorCancelService\"),d=new i.RawContextKey(\"cancellableOperation\",!1);l.registerSingleton(u,function(){function e(){this._tokens=new WeakMap}return e.prototype.add=function(e,t){var n,o=this._tokens.get(e);return o||(o=e.invokeWithinContext((function(e){return{key:d.bindTo(e.get(i.IContextKeyService)),tokens:new s.LinkedList}})),this._tokens.set(e,o)),o.key.set(!0),n=o.tokens.push(t),function(){n&&(n(),o.key.set(!o.tokens.isEmpty()),n=void 0)}},e.prototype.cancel=function(e){\nvar t=this._tokens.get(e);if(t){var n=t.tokens.pop();n&&(n.cancel(),t.key.set(!t.tokens.isEmpty()))}},e}(),!0);var c=function(e){function t(t,n){var i=e.call(this,n)||this;return i.editor=t,i._unregister=t.invokeWithinContext((function(e){return e.get(u).add(t,i)})),i}return r(t,e),t.prototype.dispose=function(){this._unregister(),e.prototype.dispose.call(this)},t}(o.CancellationTokenSource);t.EditorKeybindingCancellationTokenSource=c,n.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"editor.cancelOperation\",kbOpts:{weight:100,primary:9},precondition:d})||this}return r(t,e),t.prototype.runEditorCommand=function(e,t){e.get(u).cancel(t)},t}(n.EditorCommand)))})),define(n[67],i([0,1,5,26,2,522]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){if(this.flags=t,0!=(1&this.flags)){var i=e.getModel();this.modelVersionId=i?n.format(\"{0}#{1}\",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null\n;0!=(4&this.flags)?this.position=e.getPosition():this.position=null,0!=(2&this.flags)?this.selection=e.getSelection():this.selection=null,0!=(8&this.flags)?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}return e.prototype._equals=function(t){if(!(t instanceof e))return!1;var n=t;return this.modelVersionId===n.modelVersionId&&(this.scrollLeft===n.scrollLeft&&this.scrollTop===n.scrollTop&&(!(!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position))&&!(!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))))},e.prototype.validate=function(t){return this._equals(new e(t,this.flags))},e}();t.EditorState=a;var l=function(e){function t(t,n,i){var r=e.call(this,t,i)||this;return r.editor=t,r._listener=new o.DisposableStore,4&n&&r._listener.add(t.onDidChangeCursorPosition((function(e){return r.cancel()}))),\n2&n&&r._listener.add(t.onDidChangeCursorSelection((function(e){return r.cancel()}))),8&n&&r._listener.add(t.onDidScrollChange((function(e){return r.cancel()}))),1&n&&(r._listener.add(t.onDidChangeModel((function(e){return r.cancel()}))),r._listener.add(t.onDidChangeModelContent((function(e){return r.cancel()})))),r}return r(t,e),t.prototype.dispose=function(){this._listener.dispose(),e.prototype.dispose.call(this)},t}(s.EditorKeybindingCancellationTokenSource);t.EditorStateCancellationTokenSource=l;var u=function(e){function t(t,n){var i=e.call(this,n)||this;return i._listener=t.onDidChangeContent((function(){return i.cancel()})),i}return r(t,e),t.prototype.dispose=function(){this._listener.dispose(),e.prototype.dispose.call(this)},t}(i.CancellationTokenSource);t.TextModelCancellationTokenSource=u;var d=function(){function e(e,t){this._visiblePosition=e,this._visiblePositionScrollDelta=t}return e.capture=function(t){var n=null,i=0;if(0!==t.getScrollTop()){var o=t.getVisibleRanges();if(o.length>0){\nn=o[0].getStartPosition();var r=t.getTopForPosition(n.lineNumber,n.column);i=t.getScrollTop()-r}}return new e(n,i)},e.prototype.restore=function(e){if(this._visiblePosition){var t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}},e}();t.StableEditorScrollState=d})),define(n[523],i([0,1,164,13,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i){this.configuration=e,this.viewModel=t,this.outgoingEvents=n,this.commandDelegate=i}return e.prototype._execMouseCommand=function(e,t){t.source=\"mouse\",this.commandDelegate.executeEditorCommand(e,t)},e.prototype.paste=function(e,t,n,i,o){this.commandDelegate.paste(e,t,n,i,o)},e.prototype.type=function(e,t){this.commandDelegate.type(e,t)},e.prototype.replacePreviousChar=function(e,t,n){this.commandDelegate.replacePreviousChar(e,t,n)},e.prototype.compositionStart=function(e){this.commandDelegate.compositionStart(e)},\ne.prototype.compositionEnd=function(e){this.commandDelegate.compositionEnd(e)},e.prototype.cut=function(e){this.commandDelegate.cut(e)},e.prototype.setSelection=function(e,t){this.commandDelegate.executeEditorCommand(n.CoreNavigationCommands.SetSelection,{source:e,selection:t})},e.prototype._validateViewColumn=function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new i.Position(e.lineNumber,t):e},e.prototype._hasMulticursorModifier=function(e){switch(this.configuration.options.get(59)){case\"altKey\":return e.altKey;case\"ctrlKey\":return e.ctrlKey;case\"metaKey\":return e.metaKey}return!1},e.prototype._hasNonMulticursorModifier=function(e){switch(this.configuration.options.get(59)){case\"altKey\":return e.ctrlKey||e.metaKey;case\"ctrlKey\":return e.altKey||e.metaKey;case\"metaKey\":return e.ctrlKey||e.altKey}return!1},e.prototype.dispatchMouse=function(e){var t=o.isLinux&&this.configuration.options.get(81)\n;e.middleButton&&!t?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount>=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)\n},e.prototype._usualArgs=function(e){return e=this._validateViewColumn(e),{position:this._convertViewToModelPosition(e),viewPosition:e}},e.prototype.moveTo=function(e){this._execMouseCommand(n.CoreNavigationCommands.MoveTo,this._usualArgs(e))},e.prototype._moveToSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.MoveToSelect,this._usualArgs(e))},e.prototype._columnSelect=function(e,t,i){e=this._validateViewColumn(e),this._execMouseCommand(n.CoreNavigationCommands.ColumnSelect,{position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})},e.prototype._createCursor=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(n.CoreNavigationCommands.CreateCursor,{position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})},e.prototype._lastCursorMoveToSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorMoveToSelect,this._usualArgs(e))},e.prototype._wordSelect=function(e){\nthis._execMouseCommand(n.CoreNavigationCommands.WordSelect,this._usualArgs(e))},e.prototype._wordSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.WordSelectDrag,this._usualArgs(e))},e.prototype._lastCursorWordSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorWordSelect,this._usualArgs(e))},e.prototype._lineSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LineSelect,this._usualArgs(e))},e.prototype._lineSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.LineSelectDrag,this._usualArgs(e))},e.prototype._lastCursorLineSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorLineSelect,this._usualArgs(e))},e.prototype._lastCursorLineSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorLineSelectDrag,this._usualArgs(e))},e.prototype._selectAll=function(){this._execMouseCommand(n.CoreNavigationCommands.SelectAll,{})},e.prototype._convertViewToModelPosition=function(e){\nreturn this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)},e.prototype.emitKeyDown=function(e){this.outgoingEvents.emitKeyDown(e)},e.prototype.emitKeyUp=function(e){this.outgoingEvents.emitKeyUp(e)},e.prototype.emitContextMenu=function(e){this.outgoingEvents.emitContextMenu(e)},e.prototype.emitMouseMove=function(e){this.outgoingEvents.emitMouseMove(e)},e.prototype.emitMouseLeave=function(e){this.outgoingEvents.emitMouseLeave(e)},e.prototype.emitMouseUp=function(e){this.outgoingEvents.emitMouseUp(e)},e.prototype.emitMouseDown=function(e){this.outgoingEvents.emitMouseDown(e)},e.prototype.emitMouseDrag=function(e){this.outgoingEvents.emitMouseDrag(e)},e.prototype.emitMouseDrop=function(e){this.outgoingEvents.emitMouseDrop(e)},e.prototype.emitMouseWheel=function(e){this.outgoingEvents.emitMouseWheel(e)},e}();t.ViewController=r})),define(n[524],i([0,1,429,12,23,374]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n){\nvar i=e.call(this,n)||this;return i.left=t,i}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=[],i=0,o=t.getSelections();i<o.length;i++){var r=o[i];n.push(new s.MoveCaretCommand(r,this.left))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}},t}(i.EditorAction),l=function(e){function t(){return e.call(this,!0,{id:\"editor.action.moveCarretLeftAction\",label:n.localize(0,null),alias:\"Move Caret Left\",precondition:o.EditorContextKeys.writable})||this}return r(t,e),t}(a),u=function(e){function t(){return e.call(this,!1,{id:\"editor.action.moveCarretRightAction\",label:n.localize(1,null),alias:\"Move Caret Right\",precondition:o.EditorContextKeys.writable})||this}return r(t,e),t}(a);i.registerEditorAction(l),i.registerEditorAction(u)})),define(n[525],i([0,1,430,12,80,3,23,158]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(){return e.call(this,{id:\"editor.action.transposeLetters\",label:n.localize(0,null),\nalias:\"Transpose Letters\",precondition:a.EditorContextKeys.writable,kbOpts:{kbExpr:a.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getModel(),i=[],r=0,a=t.getSelections();r<a.length;r++){var u=a[r];if(u.isEmpty()){var d=u.startLineNumber,c=u.startColumn,h=n.getLineMaxColumn(d);if(1!==d||1!==c&&(2!==c||2!==h)){var p=c===h?u.getPosition():l.MoveOperations.rightPosition(n,u.getPosition().lineNumber,u.getPosition().column),g=l.MoveOperations.leftPosition(n,p.lineNumber,p.column),f=l.MoveOperations.leftPosition(n,g.lineNumber,g.column),m=n.getValueInRange(s.Range.fromPositions(f,g)),v=n.getValueInRange(s.Range.fromPositions(g,p)),_=s.Range.fromPositions(f,p);i.push(new o.ReplaceCommand(_,v+m))}}}i.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop())}},t}(i.EditorAction);i.registerEditorAction(u)})),define(n[526],i([0,1,431,24,16,189,12,32,23,303]),(function(e,t,n,i,o,s,a,l,u){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"9_cutcopypaste\",c=o.isNative||document.queryCommandSupported(\"cut\"),h=o.isNative||document.queryCommandSupported(\"copy\"),p=h&&!i.isEdgeOrIE,g=o.isNative||!i.isChrome&&document.queryCommandSupported(\"paste\"),f=function(e){function t(t,n){var i=e.call(this,n)||this;return i.browserCommand=t,i}return r(t,e),t.prototype.runCommand=function(e,t){var n=e.get(l.ICodeEditorService).getFocusedCodeEditor();n&&n.hasTextFocus()?n.trigger(\"keyboard\",this.id,t):document.execCommand(this.browserCommand)},t.prototype.run=function(e,t){t.focus(),document.execCommand(this.browserCommand)},t}(a.EditorAction),m=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2102,win:{primary:2102,secondary:[1044]},weight:100};return o.isNative||(t=void 0),e.call(this,\"cut\",{id:\"editor.action.clipboardCutAction\",label:n.localize(0,null),alias:\"Cut\",precondition:u.EditorContextKeys.writable,kbOpts:t,contextMenuOpts:{group:d,order:1},menuOpts:{\nmenuId:17,group:\"2_ccp\",title:n.localize(1,null),order:1}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n))},t}(f),v=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2081,win:{primary:2081,secondary:[2067]},weight:100};return o.isNative||(t=void 0),e.call(this,\"copy\",{id:\"editor.action.clipboardCopyAction\",label:n.localize(2,null),alias:\"Copy\",precondition:void 0,kbOpts:t,contextMenuOpts:{group:d,order:2},menuOpts:{menuId:17,group:\"2_ccp\",title:n.localize(3,null),order:2}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n))},t}(f),_=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2100,win:{primary:2100,secondary:[1043]},weight:100};return o.isNative||(t=void 0),e.call(this,\"paste\",{id:\"editor.action.clipboardPasteAction\",label:n.localize(4,null),alias:\"Paste\",\nprecondition:u.EditorContextKeys.writable,kbOpts:t,contextMenuOpts:{group:d,order:3},menuOpts:{menuId:17,group:\"2_ccp\",title:n.localize(5,null),order:3}})||this}return r(t,e),t}(f),y=function(e){function t(){return e.call(this,\"copy\",{id:\"editor.action.clipboardCopyWithSyntaxHighlightingAction\",label:n.localize(6,null),alias:\"Copy With Syntax Highlighting\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.textInputFocus,primary:0,weight:100}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||(s.CopyOptions.forceCopyWithSyntaxHighlighting=!0,e.prototype.run.call(this,t,n),s.CopyOptions.forceCopyWithSyntaxHighlighting=!1))},t}(f);c&&a.registerEditorAction(m),h&&a.registerEditorAction(v),g&&a.registerEditorAction(_),p&&a.registerEditorAction(y)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s]\n;return i};define(n[119],i([0,1,19,26,10,2,25,67,12,3,22,17,49,111]),(function(e,t,n,i,o,s,l,u,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.codeActionCommandId=\"editor.action.codeAction\",t.refactorCommandId=\"editor.action.refactor\",t.sourceActionCommandId=\"editor.action.sourceAction\",t.organizeImportsCommandId=\"editor.action.organizeImports\",t.fixAllCommandId=\"editor.action.fixAll\";var _=function(e){function t(i,o){var r=e.call(this)||this;return r._register(o),r.allActions=n.mergeSort(a(i),t.codeActionsComparator),r.validActions=r.allActions.filter((function(e){return!e.disabled})),r}return r(t,e),t.codeActionsComparator=function(e,t){return n.isNonEmptyArray(e.diagnostics)?n.isNonEmptyArray(t.diagnostics)?e.diagnostics[0].message.localeCompare(t.diagnostics[0].message):-1:n.isNonEmptyArray(t.diagnostics)?1:0},Object.defineProperty(t.prototype,\"hasAutoFix\",{get:function(){return this.validActions.some((function(e){\nreturn!!e.kind&&v.CodeActionKind.QuickFix.contains(new v.CodeActionKind(e.kind))&&!!e.isPreferred}))},enumerable:!0,configurable:!0}),t}(s.Disposable);function y(e,t,i,r){var a,l=this,h=i.filter||{},p={only:null===(a=h.include)||void 0===a?void 0:a.value,trigger:i.type},g=new u.TextModelCancellationTokenSource(e,r),m=function(e,t){return f.CodeActionProviderRegistry.all(e).filter((function(e){return!e.providedCodeActionKinds||e.providedCodeActionKinds.some((function(e){return v.mayIncludeActionsOfKind(t,new v.CodeActionKind(e))}))}))}(e,h),y=new s.DisposableStore,C=m.map((function(n){return d(l,void 0,void 0,(function(){var i,r;return c(this,(function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,n.provideCodeActions(e,t,p,g.token)];case 1:return i=s.sent(),g.token.isCancellationRequested||!i?[2,[]]:(y.add(i),[2,i.actions.filter((function(e){return e&&v.filtersAction(h,e)}))]);case 2:if(r=s.sent(),o.isPromiseCanceledError(r))throw r;return o.onUnexpectedExternalError(r),[2,[]];case 3:return[2]}}))\n}))})),b=f.CodeActionProviderRegistry.onDidChange((function(){var t=f.CodeActionProviderRegistry.all(e);n.equals(t,m)||g.cancel()}));return Promise.all(C).then(n.flatten).then((function(e){return new _(e,y)})).finally((function(){b.dispose(),g.dispose()}))}t.getCodeActions=y,h.registerLanguageCommand(\"_executeCodeActionProvider\",(function(e,t){return d(this,void 0,void 0,(function(){var n,r,s,a,u,d;return c(this,(function(c){switch(c.label){case 0:if(n=t.resource,r=t.rangeOrSelection,s=t.kind,!(n instanceof l.URI))throw o.illegalArgument();if(!(a=e.get(m.IModelService).getModel(n)))throw o.illegalArgument();if(!(u=g.Selection.isISelection(r)?g.Selection.liftSelection(r):p.Range.isIRange(r)?a.validateRange(r):void 0))throw o.illegalArgument();return[4,y(a,u,{type:2,filter:{includeSourceActions:!0,include:s&&s.value?new v.CodeActionKind(s.value):void 0}},i.CancellationToken.None)];case 1:return d=c.sent(),setTimeout((function(){return d.dispose()}),100),[2,d.validActions]}}))}))}))}))\n;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[527],i([0,1,6,70,55,10,128,2,13,17,119,111,66,34]),(function(e,t,n,i,o,s,u,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(e){function t(t,n){var i=e.call(this,t.command?t.command.id:t.title,t.title,void 0,!t.disabled,n)||this;return i.action=t,i}return r(t,e),t}(o.Action),S=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r._editor=t,r._delegate=n,r._contextMenuService=i,r._visible=!1,r._showingActions=r._register(new p.MutableDisposable),r._keybindingResolver=new w({getKeybindings:function(){return o.getKeybindings()}}),r}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._visible},enumerable:!0,configurable:!0}),t.prototype.show=function(e,t,n,i){return d(this,void 0,void 0,(function(){\nvar o,r,a,l,u=this;return c(this,(function(d){if(!(o=i.includeDisabledActions?t.allActions:t.validActions).length)return this._visible=!1,[2];if(!this._editor.getDomNode())throw this._visible=!1,s.canceled();return this._visible=!0,this._showingActions.value=t,r=this.getMenuActions(e,o),a=f.Position.isIPosition(n)?this._toCoords(n):n||{x:0,y:0},l=this._keybindingResolver.getResolver(),this._contextMenuService.showContextMenu({getAnchor:function(){return a},getActions:function(){return r},onHide:function(){u._visible=!1,u._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:function(e){return e instanceof b?l(e.action):void 0}}),[2]}))}))},t.prototype.getMenuActions=function(e,t){var n,o,r=this,s=function(e){return new b(e,(function(){return r._delegate.onSelectCodeAction(e)}))},l=t.map(s),u=this._editor.getModel();if(u&&l.length)for(var d=0,c=m.CodeActionProviderRegistry.all(u);d<c.length;d++){var h=c[d];if(h._getAdditionalMenuItems){var p=h._getAdditionalMenuItems({trigger:e.type,\nonly:null===(o=null===(n=e.filter)||void 0===n?void 0:n.include)||void 0===o?void 0:o.value},t);p.length&&l.push.apply(l,a([new i.Separator],p.map((function(e){return s({title:e.title,command:e})}))))}}return l},t.prototype._toCoords=function(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();var t=this._editor.getScrolledVisiblePosition(e),i=n.getDomNodePagePosition(this._editor.getDomNode());return{x:i.left+t.left,y:i.top+t.top+t.height}},t=h([g(2,y.IContextMenuService),g(3,C.IKeybindingService)],t)}(p.Disposable);t.CodeActionMenu=S;var w=function(){function e(e){this._keybindingProvider=e}return e.prototype.getResolver=function(){var t=this,n=new u.Lazy((function(){return t._keybindingProvider.getKeybindings().filter((function(t){return e.codeActionCommands.indexOf(t.command)>=0})).filter((function(e){return e.resolvedKeybinding})).map((function(e){var t=e.commandArgs;return e.command===v.organizeImportsCommandId?t={\nkind:_.CodeActionKind.SourceOrganizeImports.value}:e.command===v.fixAllCommandId&&(t={kind:_.CodeActionKind.SourceFixAll.value}),l({resolvedKeybinding:e.resolvedKeybinding},_.CodeActionCommandArgs.fromUser(t,{kind:_.CodeActionKind.None,apply:\"never\"}))}))}));return function(e){if(e.kind){var i=t.bestKeybindingForCodeAction(e,n.getValue());return null==i?void 0:i.resolvedKeybinding}}},e.prototype.bestKeybindingForCodeAction=function(e,t){if(e.kind){var n=new _.CodeActionKind(e.kind);return t.filter((function(e){return e.kind.contains(n)})).filter((function(t){return!t.preferred||e.isPreferred})).reduceRight((function(e,t){return e?e.kind.contains(t.kind)?t:e:t}),void 0)}},e.codeActionCommands=[v.refactorCommandId,v.codeActionCommandId,v.sourceActionCommandId,v.organizeImportsCommandId,v.fixAllCommandId],e}();t.CodeActionKeybindingResolver=w})),define(n[528],i([0,1,15,4,2,3,17,18,119,39]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.SUPPORTED_CODE_ACTIONS=new l.RawContextKey(\"supportedCodeAction\",\"\");var c,h=function(e){function t(t,i,o,r){void 0===r&&(r=250);var s=e.call(this)||this;return s._editor=t,s._markerService=i,s._signalChange=o,s._delay=r,s._autoTriggerTimer=s._register(new n.TimeoutTimer),s._register(s._markerService.onMarkerChanged((function(e){return s._onMarkerChanges(e)}))),s._register(s._editor.onDidChangeCursorPosition((function(){return s._onCursorChange()}))),s}return r(t,e),t.prototype.trigger=function(e){var t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)},t.prototype._onMarkerChanges=function(e){var t=this,n=this._editor.getModel();n&&e.some((function(e){return d.isEqual(e,n.uri)}))&&this._autoTriggerTimer.cancelAndSet((function(){t.trigger({type:1})}),this._delay)},t.prototype._onCursorChange=function(){var e=this;this._autoTriggerTimer.cancelAndSet((function(){e.trigger({type:1})}),this._delay)},t.prototype._getRangeOfMarker=function(e){\nvar t=this._editor.getModel();if(t)for(var n=0,i=this._markerService.read({resource:t.uri});n<i.length;n++){var o=i[n],r=t.validateRange(o);if(s.Range.intersectRanges(r,e))return s.Range.lift(r)}},t.prototype._getRangeOfSelectionUnlessWhitespaceEnclosed=function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=this._editor.getSelection();if(n.isEmpty()&&1===e.type){var i=n.getPosition(),o=i.lineNumber,r=i.column,s=t.getLineContent(o);if(0===s.length)return;if(1===r){if(/\\s/.test(s[0]))return}else if(r===t.getLineMaxColumn(o)){if(/\\s/.test(s[s.length-1]))return}else if(/\\s/.test(s[r-2])&&/\\s/.test(s[r-1]))return}return n}},t.prototype._createEventAndSignalChange=function(e,t){var n=this._editor.getModel();if(t&&n){var i=this._getRangeOfMarker(t),o=i?i.getStartPosition():t.getStartPosition(),r={trigger:e,selection:t,position:o};return this._signalChange(r),r}this._signalChange(void 0)},t}(o.Disposable);!function(e){e.Empty={type:0};var t=function(e,t,n,i){this.trigger=e,this.rangeOrSelection=t,\nthis.position=n,this.actions=i,this.type=1};e.Triggered=t}(c=t.CodeActionsState||(t.CodeActionsState={}));var p=function(e){function s(n,r,s,l){var u=e.call(this)||this;return u._editor=n,u._markerService=r,u._progressService=l,u._codeActionOracle=u._register(new o.MutableDisposable),u._state=c.Empty,u._onDidChangeState=u._register(new i.Emitter),u.onDidChangeState=u._onDidChangeState.event,u._supportedCodeActions=t.SUPPORTED_CODE_ACTIONS.bindTo(s),u._register(u._editor.onDidChangeModel((function(){return u._update()}))),u._register(u._editor.onDidChangeModelLanguage((function(){return u._update()}))),u._register(a.CodeActionProviderRegistry.onDidChange((function(){return u._update()}))),u._update(),u}return r(s,e),s.prototype.dispose=function(){e.prototype.dispose.call(this),this.setState(c.Empty,!0)},s.prototype._update=function(){var e=this;this._codeActionOracle.value=void 0,this.setState(c.Empty);var t=this._editor.getModel();if(t&&a.CodeActionProviderRegistry.has(t)&&!this._editor.getOption(68)){\nfor(var i=[],o=0,r=a.CodeActionProviderRegistry.all(t);o<r.length;o++){var s=r[o];Array.isArray(s.providedCodeActionKinds)&&i.push.apply(i,s.providedCodeActionKinds)}this._supportedCodeActions.set(i.join(\" \")),this._codeActionOracle.value=new h(this._editor,this._markerService,(function(i){if(i){var o=n.createCancelablePromise((function(e){return u.getCodeActions(t,i.selection,i.trigger,e)}));e._progressService&&2===i.trigger.type&&e._progressService.showWhile(o,250),e.setState(new c.Triggered(i.trigger,i.selection,i.position,o))}else e.setState(c.Empty)}),void 0),this._codeActionOracle.value.trigger({type:1})}else this._supportedCodeActions.reset()},s.prototype.trigger=function(e){this._codeActionOracle.value&&this._codeActionOracle.value.trigger(e)},s.prototype.setState=function(e,t){e!==this._state&&(1===this._state.type&&this._state.actions.cancel(),this._state=e,t||this._onDidChangeState.fire(e))},s}(o.Disposable);t.CodeActionModel=p})),\ndefine(n[221],i([0,1,19,26,10,25,12,17,49,2]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(){this.lenses=[],this._disposables=new u.DisposableStore}return e.prototype.dispose=function(){this._disposables.dispose()},e.prototype.add=function(e,t){this._disposables.add(e);for(var n=0,i=e.lenses;n<i.length;n++){var o=i[n];this.lenses.push({symbol:o,provider:t})}},e}();function c(e,t){var i=a.CodeLensProviderRegistry.ordered(e),r=new Map,s=new d,l=i.map((function(n,i){return r.set(n,i),Promise.resolve(n.provideCodeLenses(e,t)).then((function(e){return e&&s.add(e,n)})).catch(o.onUnexpectedExternalError)}));return Promise.all(l).then((function(){return s.lenses=n.mergeSort(s.lenses,(function(e,t){\nreturn e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:r.get(e.provider)<r.get(t.provider)?-1:r.get(e.provider)>r.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0})),s}))}t.CodeLensModel=d,t.getCodeLensData=c,s.registerLanguageCommand(\"_executeCodeLensProvider\",(function(e,t){var n=t.resource,s=t.itemResolveCount;if(!(n instanceof r.URI))throw o.illegalArgument();var a=e.get(l.IModelService).getModel(n);if(!a)throw o.illegalArgument();var d=[],h=new u.DisposableStore;return c(a,i.CancellationToken.None).then((function(e){h.add(e);for(var t=[],n=function(e){void 0===s||Boolean(e.symbol.command)?d.push(e.symbol):s-- >0&&e.provider.resolveCodeLens&&t.push(Promise.resolve(e.provider.resolveCodeLens(a,e.symbol,i.CancellationToken.None)).then((function(t){return d.push(t||e.symbol)})))},o=0,r=e.lenses;o<r.length;o++){n(r[o])}return Promise.all(t)\n})).then((function(){return d})).finally((function(){setTimeout((function(){return h.dispose()}),100)}))}))})),define(n[529],i([0,1,11,83,221,38,74,3,15,102]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICodeLensCache=n.createDecorator(\"ICodeLensCache\");var d=function(e,t){this.lineCount=e,this.data=t},c=function(){function e(e){var t=this;this._fakeProvider=new(function(){function e(){}return e.prototype.provideCodeLenses=function(){throw new Error(\"not supported\")},e}()),this._cache=new r.LRUCache(20,.75);l.runWhenIdle((function(){return e.remove(\"codelens/cache\",1)}));var n=\"codelens/cache2\",i=e.get(n,1,\"{}\");this._deserialize(i),u.once(e.onWillSaveState)((function(i){i.reason===s.WillSaveStateReason.SHUTDOWN&&e.store(n,t._serialize(),1)}))}return e.prototype.put=function(e,t){var n=t.lenses.map((function(e){var t;return{range:e.symbol.range,command:e.symbol.command&&{id:\"\",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}\n})),i=new o.CodeLensModel;i.add({lenses:n,dispose:function(){}},this._fakeProvider);var r=new d(e.getLineCount(),i);this._cache.set(e.uri.toString(),r)},e.prototype.get=function(e){var t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0},e.prototype.delete=function(e){this._cache.delete(e.uri.toString())},e.prototype._serialize=function(){var e=Object.create(null);return this._cache.forEach((function(t,n){for(var i=new Set,o=0,s=t.data.lenses;o<s.length;o++){var a=s[o];i.add(a.symbol.range.startLineNumber)}e[n]={lineCount:t.lineCount,lines:r.values(i)}})),JSON.stringify(e)},e.prototype._deserialize=function(e){try{var t=JSON.parse(e);for(var n in t){for(var i=t[n],r=[],s=0,l=i.lines;s<l.length;s++){var u=l[s];r.push({range:new a.Range(u,1,u,11)})}var c=new o.CodeLensModel;c.add({lenses:r,dispose:function(){}},this._fakeProvider),this._cache.set(n,new d(i.lineCount,c))}}catch(e){}},e=h([g(0,s.IStorageService)],e)}();t.CodeLensCache=c,\ni.registerSingleton(t.ICodeLensCache,c)})),define(n[222],i([0,1,26,10,25,12,3,17,49]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getColors=function(e,t){var n=[],i=a.ColorProviderRegistry.ordered(e).reverse().map((function(i){return Promise.resolve(i.provideDocumentColors(e,t)).then((function(e){if(Array.isArray(e))for(var t=0,o=e;t<o.length;t++){var r=o[t];n.push({colorInfo:r,provider:i})}}))}));return Promise.all(i).then((function(){return n}))},t.getColorPresentations=function(e,t,n,i){return Promise.resolve(n.provideColorPresentations(e,t,i))},r.registerLanguageCommand(\"_executeDocumentColorProvider\",(function(e,t){var r=t.resource;if(!(r instanceof o.URI))throw i.illegalArgument();var s=e.get(l.IModelService).getModel(r);if(!s)throw i.illegalArgument();var u=[],d=a.ColorProviderRegistry.ordered(s).reverse().map((function(e){return Promise.resolve(e.provideDocumentColors(s,n.CancellationToken.None)).then((function(e){\nif(Array.isArray(e))for(var t=0,n=e;t<n.length;t++){var i=n[t];u.push({range:i.range,color:[i.color.red,i.color.green,i.color.blue,i.color.alpha]})}}))}));return Promise.all(d).then((function(){return u}))})),r.registerLanguageCommand(\"_executeColorPresentationProvider\",(function(e,t){var r=t.resource,u=t.color,d=t.range;if(!(r instanceof o.URI&&Array.isArray(u)&&4===u.length&&s.Range.isIRange(d)))throw i.illegalArgument();var c=u[0],h=u[1],p=u[2],g=u[3],f=e.get(l.IModelService).getModel(r);if(!f)throw i.illegalArgument();var m={range:d,color:{red:c,green:h,blue:p,alpha:g}},v=[],_=a.ColorProviderRegistry.ordered(f).reverse().map((function(e){return Promise.resolve(e.provideColorPresentations(f,m,n.CancellationToken.None)).then((function(e){Array.isArray(e)&&v.push.apply(v,e)}))}));return Promise.all(_).then((function(){return v}))}))})),define(n[223],i([0,1,15,27,10,125,2,12,32,3,30,17,222,43]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var v=function(e){function t(t,n,i){var o=e.call(this)||this;return o._editor=t,o._codeEditorService=n,o._configurationService=i,o._localToDispose=o._register(new a.DisposableStore),o._decorationsIds=[],o._colorDatas=new Map,o._colorDecoratorIds=[],o._decorationsTypes=new Set,o._register(t.onDidChangeModel((function(e){o._isEnabled=o.isEnabled(),o.onModelChanged()}))),o._register(t.onDidChangeModelLanguage((function(e){return o.onModelChanged()}))),o._register(p.ColorProviderRegistry.onDidChange((function(e){return o.onModelChanged()}))),o._register(t.onDidChangeConfiguration((function(e){var t=o._isEnabled;o._isEnabled=o.isEnabled(),t!==o._isEnabled&&(o._isEnabled?o.onModelChanged():o.removeAllDecorations())}))),o._timeoutTimer=null,o._computePromise=null,o._isEnabled=o.isEnabled(),o.onModelChanged(),o}return r(t,e),t.prototype.isEnabled=function(){var e=this._editor.getModel();if(!e)return!1;var t=e.getLanguageIdentifier(),n=this._configurationService.getValue(t.language);if(n){var i=n.colorDecorators\n;if(i&&void 0!==i.enable&&!i.enable)return i.enable}return this._editor.getOption(12)},t.get=function(e){return e.getContribution(this.ID)},t.prototype.dispose=function(){this.stop(),this.removeAllDecorations(),e.prototype.dispose.call(this)},t.prototype.onModelChanged=function(){var e=this;if(this.stop(),this._isEnabled){var i=this._editor.getModel();i&&p.ColorProviderRegistry.has(i)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((function(i){e._timeoutTimer||(e._timeoutTimer=new n.TimeoutTimer,e._timeoutTimer.cancelAndSet((function(){e._timeoutTimer=null,e.beginCompute()}),t.RECOMPUTE_TIME))}))),this.beginCompute())}},t.prototype.beginCompute=function(){var e=this;this._computePromise=n.createCancelablePromise((function(t){var n=e._editor.getModel();return n?f.getColors(n,t):Promise.resolve([])})),this._computePromise.then((function(t){e.updateDecorations(t),e.updateColorDecorators(t),e._computePromise=null}),o.onUnexpectedError)},t.prototype.stop=function(){\nthis._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()},t.prototype.updateDecorations=function(e){var t=this,n=e.map((function(e){return{range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:c.ModelDecorationOptions.EMPTY}}));this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((function(n,i){return t._colorDatas.set(n,e[i])}))},t.prototype.updateColorDecorators=function(e){for(var t=this,n=[],o={},r=0;r<e.length&&n.length<500;r++){var a=e[r].colorInfo.color,l=a.red,u=a.green,d=a.blue,c=a.alpha,h=new i.RGBA(Math.round(255*l),Math.round(255*u),Math.round(255*d),c),p=s.hash(h).toString(16),g=\"rgba(\"+h.r+\", \"+h.g+\", \"+h.b+\", \"+h.a+\")\",f=\"colorBox-\"+p\n;this._decorationsTypes.has(f)||o[f]||this._codeEditorService.registerDecorationType(f,{before:{contentText:\" \",border:\"solid 0.1em #000\",margin:\"0.1em 0.2em 0 0.2em\",width:\"0.8em\",height:\"0.8em\",backgroundColor:g},dark:{before:{border:\"solid 0.1em #eee\"}}},void 0,this._editor),o[f]=!0,n.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:this._codeEditorService.resolveDecorationOptions(f,!0)})}this._decorationsTypes.forEach((function(e){o[e]||t._codeEditorService.removeDecorationType(e)})),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,n)},t.prototype.removeAllDecorations=function(){var e=this;this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,[]),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,[]),this._decorationsTypes.forEach((function(t){\ne._codeEditorService.removeDecorationType(t)}))},t.prototype.getColorData=function(e){var t=this,n=this._editor.getModel();if(!n)return null;var i=n.getDecorationsInRange(d.Range.fromPositions(e,e)).filter((function(e){return t._colorDatas.has(e.id)}));return 0===i.length?null:this._colorDatas.get(i[0].id)},t.ID=\"editor.contrib.colorDetector\",t.RECOMPUTE_TIME=1e3,t=h([g(1,u.ICodeEditorService),g(2,m.IConfigurationService)],t)}(a.Disposable);t.ColorDetector=v,l.registerEditorContribution(v.ID,v)})),define(n[530],i([0,1,434,36,12,23,196,376]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(t,n){var i=e.call(this,n)||this;return i._type=t,i}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getModel(),i=[],o=t.getSelections(),r=n.getOptions(),s=t.getOption(13),a=0,u=o;a<u.length;a++){var d=u[a];i.push(new l.LineCommentCommand(d,r.tabSize,this._type,s.insertSpace))}t.pushUndoStop(),t.executeCommands(this.id,i),\nt.pushUndoStop()}},t}(o.EditorAction),d=function(e){function t(){return e.call(this,0,{id:\"editor.action.commentLine\",label:n.localize(0,null),alias:\"Toggle Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:17,group:\"5_insert\",title:n.localize(1,null),order:1}})||this}return r(t,e),t}(u),c=function(e){function t(){return e.call(this,1,{id:\"editor.action.addCommentLine\",label:n.localize(2,null),alias:\"Add Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2081),weight:100}})||this}return r(t,e),t}(u),h=function(e){function t(){return e.call(this,2,{id:\"editor.action.removeCommentLine\",label:n.localize(3,null),alias:\"Remove Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2099),weight:100}})||this}return r(t,e),t}(u),p=function(e){function t(){\nreturn e.call(this,{id:\"editor.action.blockComment\",label:n.localize(4,null),alias:\"Toggle Block Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:17,group:\"5_insert\",title:n.localize(5,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getOption(13),i=[],o=0,r=t.getSelections();o<r.length;o++){var s=r[o];i.push(new a.BlockCommentCommand(s,n.insertSpace))}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},t}(o.EditorAction);o.registerEditorAction(d),o.registerEditorAction(c),o.registerEditorAction(h),o.registerEditorAction(p)})),define(n[531],i([0,1,435,6,70,2,12,23,65,18,66,34,405]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(){function e(e,t,n,i,o,r){var a=this;this._contextMenuService=t,this._contextViewService=n,this._contextKeyService=i,this._keybindingService=o,\nthis._menuService=r,this._toDispose=new s.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu((function(e){return a._onContextMenu(e)}))),this._toDispose.add(this._editor.onMouseWheel((function(e){a._contextMenuIsBeingShownCount>0&&a._contextViewService.hideContextView()}))),this._toDispose.add(this._editor.onKeyDown((function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),a.showContextMenu())})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype._onContextMenu=function(e){if(this._editor.hasModel()){if(!this._editor.getOption(14))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12!==e.target.type&&(e.event.preventDefault(),6===e.target.type||7===e.target.type||1===e.target.type)){if(this._editor.focus(),e.target.position){for(var t=!1,n=0,i=this._editor.getSelections();n<i.length;n++){\nif(i[n].containsPosition(e.target.position)){t=!0;break}}t||this._editor.setPosition(e.target.position)}var o=null;1!==e.target.type&&(o={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(o)}}},e.prototype.showContextMenu=function(e){if(this._editor.getOption(14)&&this._editor.hasModel())if(this._contextMenuService){var t=this._getMenuActions(this._editor.getModel(),7);t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()},e.prototype._getMenuActions=function(e,t){var n=[],i=this._menuService.createMenu(t,this._contextKeyService),r=i.getActions({arg:e.uri});i.dispose();for(var s=0,a=r;s<a.length;s++){for(var l=0,d=0,c=a[s][1];d<c.length;d++){var h=c[d];if(h instanceof u.SubmenuItemAction){var p=this._getMenuActions(e,h.item.submenu);p.length>0&&(n.push(new f.ContextSubMenu(h.label,p)),l++)}else n.push(h),l++}l&&n.push(new o.Separator)}return n.length&&n.pop(),n},e.prototype._doShowContextMenu=function(e,t){var n=this;if(void 0===t&&(t=null),this._editor.hasModel()){\nvar r=this._editor.getOption(44);if(this._editor.updateOptions({hover:{enabled:!1}}),!t){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();var s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=i.getDomNodePagePosition(this._editor.getDomNode()),l=a.left+s.left,u=a.top+s.top+s.height;t={x:l,y:u}}this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({getAnchor:function(){return t},getActions:function(){return e},getActionViewItem:function(e){var t=n._keybindingFor(e);if(t)return new o.ActionViewItem(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});var i=e;return\"function\"==typeof i.getActionViewItem?i.getActionViewItem():new o.ActionViewItem(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:function(e){return n._keybindingFor(e)},onHide:function(e){n._contextMenuIsBeingShownCount--,n._editor.focus(),n._editor.updateOptions({hover:r})}})}},e.prototype._keybindingFor=function(e){return this._keybindingService.lookupKeybinding(e.id)},\ne.prototype.dispose=function(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()},e.ID=\"editor.contrib.contextmenu\",e=h([g(1,c.IContextMenuService),g(2,c.IContextViewService),g(3,d.IContextKeyService),g(4,p.IKeybindingService),g(5,u.IMenuService)],e)}();t.ContextMenuController=m;var v=function(e){function t(){return e.call(this,{id:\"editor.action.showContextMenu\",label:n.localize(0,null),alias:\"Show Editor Context Menu\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.textInputFocus,primary:1092,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){m.get(t).showContextMenu()},t}(a.EditorAction);a.registerEditorContribution(m.ID,m),a.registerEditorAction(v)})),define(n[532],i([0,1,436,2,12,23]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this.selections=e}return e.prototype.equals=function(e){var t=this.selections.length;if(t!==e.selections.length)return!1\n;for(var n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0},e}(),l=function(e,t,n){this.cursorState=e,this.scrollTop=t,this.scrollLeft=n},u=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._isCursorUndoRedo=!1,n._undoStack=[],n._redoStack=[],n._register(t.onDidChangeModel((function(e){n._undoStack=[],n._redoStack=[]}))),n._register(t.onDidChangeModelContent((function(e){n._undoStack=[],n._redoStack=[]}))),n._register(t.onDidChangeCursorSelection((function(e){if(!n._isCursorUndoRedo&&e.oldSelections&&e.oldModelVersionId===e.modelVersionId){var i=new a(e.oldSelections);n._undoStack.length>0&&n._undoStack[n._undoStack.length-1].cursorState.equals(i)||(n._undoStack.push(new l(i,t.getScrollTop(),t.getScrollLeft())),n._redoStack=[],n._undoStack.length>50&&n._undoStack.shift())}}))),n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.cursorUndo=function(){\nthis._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))},t.prototype.cursorRedo=function(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))},t.prototype._applyState=function(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1},t.ID=\"editor.contrib.cursorUndoRedoController\",t}(i.Disposable);t.CursorUndoRedoController=u;var d=function(e){function t(){return e.call(this,{id:\"cursorUndo\",label:n.localize(0,null),alias:\"Cursor Undo\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:2099,weight:100}})||this}return r(t,e),\nt.prototype.run=function(e,t,n){u.get(t).cursorUndo()},t}(o.EditorAction);t.CursorUndo=d;var c=function(e){function t(){return e.call(this,{id:\"cursorRedo\",label:n.localize(1,null),alias:\"Cursor Redo\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t,n){u.get(t).cursorRedo()},t}(o.EditorAction);t.CursorRedo=c,o.registerEditorContribution(u.ID,u),o.registerEditorAction(d),o.registerEditorAction(c)})),define(n[533],i([0,1,2,16,12,13,3,22,377,30,307]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";function c(e){return i.isMacintosh?e.altKey:e.ctrlKey}Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._register(n._editor.onMouseDown((function(e){return n._onEditorMouseDown(e)}))),n._register(n._editor.onMouseUp((function(e){return n._onEditorMouseUp(e)}))),n._register(n._editor.onMouseDrag((function(e){return n._onEditorMouseDrag(e)}))),n._register(n._editor.onMouseDrop((function(e){return n._onEditorMouseDrop(e)}))),\nn._register(n._editor.onKeyDown((function(e){return n.onEditorKeyDown(e)}))),n._register(n._editor.onKeyUp((function(e){return n.onEditorKeyUp(e)}))),n._register(n._editor.onDidBlurEditorWidget((function(){return n.onEditorBlur()}))),n._dndDecorationIds=[],n._mouseDown=!1,n._modifierPressed=!1,n._dragSelection=null,n}return r(t,e),t.prototype.onEditorBlur=function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1},t.prototype.onEditorKeyDown=function(e){this._editor.getOption(24)&&(c(e)&&(this._modifierPressed=!0),this._mouseDown&&c(e)&&this._editor.updateOptions({mouseStyle:\"copy\"}))},t.prototype.onEditorKeyUp=function(e){this._editor.getOption(24)&&(c(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===t.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:\"default\"}))},t.prototype._onEditorMouseDown=function(e){this._mouseDown=!0},t.prototype._onEditorMouseUp=function(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:\"text\"})},\nt.prototype._onEditorMouseDrag=function(e){var t=e.target;if(null===this._dragSelection){var n=(this._editor.getSelections()||[]).filter((function(e){return t.position&&e.containsPosition(t.position)}));if(1!==n.length)return;this._dragSelection=n[0]}c(e.event)?this._editor.updateOptions({mouseStyle:\"copy\"}):this._editor.updateOptions({mouseStyle:\"default\"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))},t.prototype._onEditorMouseDrop=function(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){var n=new s.Position(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){var i=null;if(e.event.shiftKey){var o=this._editor.getSelection();if(o){var r=o.selectionStartLineNumber,a=o.selectionStartColumn;i=[new l.Selection(r,a,n.lineNumber,n.column)]}}else i=(this._editor.getSelections()||[]).map((function(e){\nreturn e.containsPosition(n)?new l.Selection(n.lineNumber,n.column,n.lineNumber,n.column):e}));this._editor.setSelections(i||[],\"mouse\")}else(!this._dragSelection.containsPosition(n)||(c(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(t.ID,new u.DragAndDropCommand(this._dragSelection,n,c(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:\"text\"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1},t.prototype.showAt=function(e){var n=[{range:new a.Range(e.lineNumber,e.column,e.lineNumber,e.column),options:t._DECORATION_OPTIONS}];this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,n),this._editor.revealPosition(e,1)},t.prototype._removeDecoration=function(){this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,[])},t.prototype._hitContent=function(e){\nreturn 6===e.type||7===e.type},t.prototype._hitMargin=function(e){return 2===e.type||3===e.type||4===e.type},t.prototype.dispose=function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,e.prototype.dispose.call(this)},t.ID=\"editor.contrib.dragAndDrop\",t.TRIGGER_KEY_VALUE=i.isMacintosh?6:5,t._DECORATION_OPTIONS=d.ModelDecorationOptions.register({className:\"dnd-target\"}),t}(n.Disposable);t.DragAndDropController=h,o.registerEditorContribution(h.ID,h)})),define(n[534],i([0,1,441,12,105]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomIn\",label:n.localize(0,null),alias:\"Editor Font Zoom In\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()+1)},t}(i.EditorAction),a=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomOut\",label:n.localize(1,null),\nalias:\"Editor Font Zoom Out\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()-1)},t}(i.EditorAction),l=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomReset\",label:n.localize(2,null),alias:\"Editor Font Zoom Reset\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(0)},t}(i.EditorAction);i.registerEditorAction(s),i.registerEditorAction(a),i.registerEditorAction(l)})),define(n[535],i([0,1,50,19,26,10,25,67,108,13,3,22,17,62,49,198,442,479,11,76,29,21]),(function(e,t,n,i,o,r,s,a,l,u,h,p,g,f,m,v,_,y,C,b,S,w){\"use strict\";function E(e){if((e=e.filter((function(e){return e.range}))).length){for(var t=e[0].range,i=1;i<e.length;i++)t=h.Range.plusRange(t,e[i].range);var o=t.startLineNumber,r=t.endLineNumber\n;o===r?1===e.length?n.alert(_.localize(0,null,o)):n.alert(_.localize(1,null,e.length,o)):1===e.length?n.alert(_.localize(2,null,o,r)):n.alert(_.localize(3,null,e.length,o,r))}}function L(e){for(var t=[],n=new Set,i=0,o=g.DocumentFormattingEditProviderRegistry.ordered(e);i<o.length;i++){var r=o[i];t.push(r),r.extensionId&&n.add(y.ExtensionIdentifier.toKey(r.extensionId))}for(var s=function(e){if(e.extensionId){if(n.has(y.ExtensionIdentifier.toKey(e.extensionId)))return\"continue\";n.add(y.ExtensionIdentifier.toKey(e.extensionId))}t.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:function(t,n,i){return e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),n,i)}})},a=0,l=g.DocumentRangeFormattingEditProviderRegistry.ordered(e);a<l.length;a++){s(r=l[a])}return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.alertFormattingEdits=E,t.getRealAndSyntheticDocumentFormattersOrdered=L;var D=function(){function e(){}return e.select=function(t,n,i){\nreturn d(this,void 0,void 0,(function(){var o;return c(this,(function(r){switch(r.label){case 0:return 0===t.length?[2,void 0]:(o=e._selectors.iterator().next().value)?[4,o(t,n,i)]:[3,2];case 1:return[2,r.sent()];case 2:return[2,t[0]]}}))}))},e._selectors=new b.LinkedList,e}();function N(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,u,d,g,m,_;return c(this,(function(c){switch(c.label){case 0:r=e.get(f.IEditorWorkerService),l.isCodeEditor(n)?(s=n.getModel(),u=new a.EditorStateCancellationTokenSource(n,5,o)):(s=n,u=new a.TextModelCancellationTokenSource(n,o)),c.label=1;case 1:return c.trys.push([1,,4,5]),[4,t.provideDocumentRangeFormattingEdits(s,i,s.getFormattingOptions(),u.token)];case 2:return g=c.sent(),[4,r.computeMoreMinimalEdits(s.uri,g)];case 3:return d=c.sent(),u.token.isCancellationRequested?[2,!0]:[3,5];case 4:return u.dispose(),[7];case 5:return d&&0!==d.length?(l.isCodeEditor(n)?(v.FormattingEdit.execute(n,d),E(d),n.pushUndoStop(),\nn.revealPositionInCenterIfOutsideViewport(n.getPosition(),1)):(m=d[0].range,_=new p.Selection(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn),s.pushEditOperations([_],d.map((function(e){return{text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0}})),(function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t].range;if(h.Range.areIntersectingOrTouching(i,_))return[new p.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}return null}))),[2,!0]):[2,!1]}}))}))}function x(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,u,d,g,m,_;return c(this,(function(c){switch(c.label){case 0:r=e.get(f.IEditorWorkerService),l.isCodeEditor(n)?(s=n.getModel(),u=new a.EditorStateCancellationTokenSource(n,5,o)):(s=n,u=new a.TextModelCancellationTokenSource(n,o)),c.label=1;case 1:return c.trys.push([1,,4,5]),[4,t.provideDocumentFormattingEdits(s,s.getFormattingOptions(),u.token)];case 2:return g=c.sent(),[4,r.computeMoreMinimalEdits(s.uri,g)];case 3:return d=c.sent(),\nu.token.isCancellationRequested?[2,!0]:[3,5];case 4:return u.dispose(),[7];case 5:return d&&0!==d.length?(l.isCodeEditor(n)?(v.FormattingEdit.execute(n,d),2!==i&&(E(d),n.pushUndoStop(),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1))):(m=d[0].range,_=new p.Selection(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn),s.pushEditOperations([_],d.map((function(e){return{text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0}})),(function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t].range;if(h.Range.areIntersectingOrTouching(i,_))return[new p.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}return null}))),[2,!0]):[2,!1]}}))}))}function I(e,t,n,o,s){return d(this,void 0,void 0,(function(){var a,l,u,d,h;return c(this,(function(c){switch(c.label){case 0:a=g.DocumentRangeFormattingEditProviderRegistry.ordered(t),l=0,u=a,c.label=1;case 1:return l<u.length?(d=u[l],\n[4,Promise.resolve(d.provideDocumentRangeFormattingEdits(t,n,o,s)).catch(r.onUnexpectedExternalError)]):[3,5];case 2:return h=c.sent(),i.isNonEmptyArray(h)?[4,e.computeMoreMinimalEdits(t.uri,h)]:[3,4];case 3:return[2,c.sent()];case 4:return l++,[3,1];case 5:return[2,void 0]}}))}))}function M(e,t,n,o){return d(this,void 0,void 0,(function(){var s,a,l,u,d;return c(this,(function(c){switch(c.label){case 0:s=L(t),a=0,l=s,c.label=1;case 1:return a<l.length?(u=l[a],[4,Promise.resolve(u.provideDocumentFormattingEdits(t,n,o)).catch(r.onUnexpectedExternalError)]):[3,5];case 2:return d=c.sent(),i.isNonEmptyArray(d)?[4,e.computeMoreMinimalEdits(t.uri,d)]:[3,4];case 3:return[2,c.sent()];case 4:return a++,[3,1];case 5:return[2,void 0]}}))}))}function k(e,t,n,i,s){var a=g.OnTypeFormattingEditProviderRegistry.ordered(t)\n;return 0===a.length?Promise.resolve(void 0):a[0].autoFormatTriggerCharacters.indexOf(i)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,n,i,s,o.CancellationToken.None)).catch(r.onUnexpectedExternalError).then((function(n){return e.computeMoreMinimalEdits(t.uri,n)}))}t.FormattingConflicts=D,t.formatDocumentRangeWithSelectedProvider=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,u;return c(this,(function(d){switch(d.label){case 0:return r=e.get(C.IInstantiationService),s=l.isCodeEditor(t)?t.getModel():t,a=g.DocumentRangeFormattingEditProviderRegistry.ordered(s),[4,D.select(a,s,i)];case 1:return(u=d.sent())?[4,r.invokeFunction(N,u,t,n,o)]:[3,3];case 2:d.sent(),d.label=3;case 3:return[2]}}))}))},t.formatDocumentRangeWithProvider=N,t.formatDocumentWithSelectedProvider=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a;return c(this,(function(u){switch(u.label){case 0:return o=e.get(C.IInstantiationService),r=l.isCodeEditor(t)?t.getModel():t,\ns=L(r),[4,D.select(s,r,n)];case 1:return(a=u.sent())?[4,o.invokeFunction(x,a,t,n,i)]:[3,3];case 2:u.sent(),u.label=3;case 3:return[2]}}))}))},t.formatDocumentWithProvider=x,t.getDocumentRangeFormattingEditsUntilResult=I,t.getDocumentFormattingEditsUntilResult=M,t.getOnTypeFormattingEdits=k,S.CommandsRegistry.registerCommand(\"_executeFormatRangeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],a=t[1],l=t[2];w.assertType(s.URI.isUri(i)),w.assertType(h.Range.isIRange(a));var u=e.get(m.IModelService).getModel(i);if(!u)throw r.illegalArgument(\"resource\");return I(e.get(f.IEditorWorkerService),u,h.Range.lift(a),l,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand(\"_executeFormatDocumentProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],a=t[1];w.assertType(s.URI.isUri(i));var l=e.get(m.IModelService).getModel(i);if(!l)throw r.illegalArgument(\"resource\")\n;return M(e.get(f.IEditorWorkerService),l,a,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand(\"_executeFormatOnTypeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],o=t[1],a=t[2],l=t[3];w.assertType(s.URI.isUri(i)),w.assertType(u.Position.isIPosition(o)),w.assertType(\"string\"==typeof a);var d=e.get(m.IModelService).getModel(i);if(!d)throw r.illegalArgument(\"resource\");return k(e.get(f.IEditorWorkerService),d,u.Position.lift(o),a,l)}))})),define(n[536],i([0,1,19,26,36,2,12,32,79,3,23,17,62,535,198,443,29,18,11,10]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=function(){function e(e,t){var n=this;this._workerService=t,this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._editor=e,this._callOnDispose.add(e.onDidChangeConfiguration((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModel((function(){return n._update()}))),\nthis._callOnDispose.add(e.onDidChangeModelLanguage((function(){return n._update()}))),this._callOnDispose.add(m.OnTypeFormattingEditProviderRegistry.onDidChange(this._update,this))}return e.prototype.dispose=function(){this._callOnDispose.dispose(),this._callOnModel.dispose()},e.prototype._update=function(){var e=this;if(this._callOnModel.clear(),this._editor.getOption(39)&&this._editor.hasModel()){var t=this._editor.getModel(),n=m.OnTypeFormattingEditProviderRegistry.ordered(t)[0];if(n&&n.autoFormatTriggerCharacters){for(var i=new u.CharacterSet,o=0,r=n.autoFormatTriggerCharacters;o<r.length;o++){var s=r[o];i.add(s.charCodeAt(0))}this._callOnModel.add(this._editor.onDidType((function(t){var n=t.charCodeAt(t.length-1);i.has(n)&&e._trigger(String.fromCharCode(n))})))}}},e.prototype._trigger=function(e){var t=this;if(this._editor.hasModel()&&!(this._editor.getSelections().length>1)){var i=this._editor.getModel(),o=this._editor.getPosition(),r=!1,s=this._editor.onDidChangeModelContent((function(e){\nif(e.isFlush)return r=!0,void s.dispose();for(var t=0,n=e.changes.length;t<n;t++){if(e.changes[t].range.endLineNumber<=o.lineNumber)return r=!0,void s.dispose()}}));_.getOnTypeFormattingEdits(this._workerService,i,o,e,i.getFormattingOptions()).then((function(e){s.dispose(),r||n.isNonEmptyArray(e)&&(y.FormattingEdit.execute(t._editor,e),_.alertFormattingEdits(e))}),(function(e){throw s.dispose(),e}))}},e.ID=\"editor.contrib.autoFormat\",e=h([g(1,v.IEditorWorkerService)],e)}(),D=function(){function e(e,t){var n=this;this.editor=e,this._instantiationService=t,this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._callOnDispose.add(e.onDidChangeConfiguration((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModel((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModelLanguage((function(){return n._update()}))),this._callOnDispose.add(m.DocumentRangeFormattingEditProviderRegistry.onDidChange(this._update,this))}\nreturn e.prototype.dispose=function(){this._callOnDispose.dispose(),this._callOnModel.dispose()},e.prototype._update=function(){var e=this;this._callOnModel.clear(),this.editor.getOption(38)&&this.editor.hasModel()&&m.DocumentRangeFormattingEditProviderRegistry.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;return e._trigger(n)})))},e.prototype._trigger=function(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(_.formatDocumentRangeWithSelectedProvider,this.editor,e,2,i.CancellationToken.None).catch(E.onUnexpectedError))},e.ID=\"editor.contrib.formatOnPaste\",e=h([g(1,w.IInstantiationService)],e)}(),N=function(e){function t(){return e.call(this,{id:\"editor.action.formatDocument\",label:C.localize(0,null),alias:\"Format Document\",precondition:S.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{\nkbExpr:S.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.hasDocumentFormattingProvider),primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{when:f.EditorContextKeys.hasDocumentFormattingProvider,group:\"1_modification\",order:1.3}})||this}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return t.hasModel()?[4,e.get(w.IInstantiationService).invokeFunction(_.formatDocumentWithSelectedProvider,t,1,i.CancellationToken.None)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))},t}(a.EditorAction),x=function(e){function t(){return e.call(this,{id:\"editor.action.formatSelection\",label:C.localize(1,null),alias:\"Format Selection\",precondition:S.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:S.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.hasDocumentSelectionFormattingProvider),\nprimary:o.KeyChord(2089,2084),weight:100},contextMenuOpts:{when:S.ContextKeyExpr.and(f.EditorContextKeys.hasDocumentSelectionFormattingProvider,f.EditorContextKeys.hasNonEmptySelection),group:\"1_modification\",order:1.31}})||this}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var n,o,r;return c(this,(function(s){switch(s.label){case 0:return t.hasModel()?(n=e.get(w.IInstantiationService),o=t.getModel(),(r=t.getSelection()).isEmpty()&&(r=new p.Range(r.startLineNumber,1,r.startLineNumber,o.getLineMaxColumn(r.startLineNumber))),[4,n.invokeFunction(_.formatDocumentRangeWithSelectedProvider,t,r,1,i.CancellationToken.None)]):[2];case 1:return s.sent(),[2]}}))}))},t}(a.EditorAction);a.registerEditorContribution(L.ID,L),a.registerEditorContribution(D.ID,D),a.registerEditorAction(N),a.registerEditorAction(x),b.CommandsRegistry.registerCommand(\"editor.action.format\",(function(e){return d(void 0,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:\nreturn(t=e.get(l.ICodeEditorService).getFocusedCodeEditor())&&t.hasModel()?(n=e.get(b.ICommandService),t.getSelection().isEmpty()?[4,n.executeCommand(\"editor.action.formatDocument\")]:[3,2]):[2];case 1:return i.sent(),[3,4];case 2:return[4,n.executeCommand(\"editor.action.formatSelection\")];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))}))})),define(n[224],i([0,1,19,26,10,12,17]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e,t,i,r){var s=i.ordered(e).map((function(n){return Promise.resolve(r(n,e,t)).then(void 0,(function(e){o.onUnexpectedExternalError(e)}))}));return Promise.all(s).then(n.flatten).then(n.coalesce)}function l(e,t,n){return a(e,t,s.DefinitionProviderRegistry,(function(e,t,i){return e.provideDefinition(t,i,n)}))}function u(e,t,n){return a(e,t,s.DeclarationProviderRegistry,(function(e,t,i){return e.provideDeclaration(t,i,n)}))}function h(e,t,n){return a(e,t,s.ImplementationProviderRegistry,(function(e,t,i){return e.provideImplementation(t,i,n)}))}function p(e,t,n){\nreturn a(e,t,s.TypeDefinitionProviderRegistry,(function(e,t,i){return e.provideTypeDefinition(t,i,n)}))}function g(e,t,n,i){var o=this;return a(e,t,s.ReferenceProviderRegistry,(function(e,t,r){return d(o,void 0,void 0,(function(){var o,s;return c(this,(function(a){switch(a.label){case 0:return[4,e.provideReferences(t,r,{includeDeclaration:!0},i)];case 1:return o=a.sent(),n&&o&&2===o.length?[4,e.provideReferences(t,r,{includeDeclaration:!1},i)]:[2,o];case 2:return(s=a.sent())&&1===s.length?[2,s]:[2,o]}}))}))}))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDefinitionsAtPosition=l,t.getDeclarationsAtPosition=u,t.getImplementationsAtPosition=h,t.getTypeDefinitionsAtPosition=p,t.getReferencesAtPosition=g,r.registerModelAndPositionCommand(\"_executeDefinitionProvider\",(function(e,t){return l(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeDeclarationProvider\",(function(e,t){return u(e,t,i.CancellationToken.None)})),\nr.registerModelAndPositionCommand(\"_executeImplementationProvider\",(function(e,t){return h(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeTypeDefinitionProvider\",(function(e,t){return p(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeReferenceProvider\",(function(e,t){return g(e,t,!1,i.CancellationToken.None)}))})),define(n[537],i([0,1,18,11,83,86,12,32,3,2,4,452,34,35,39]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ctxHasSymbols=new n.RawContextKey(\"hasSymbols\",!1),t.ISymbolNavigationService=i.createDecorator(\"ISymbolNavigationService\");var _=function(){function e(e,n,i,o){this._editorService=n,this._notificationService=i,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=t.ctxHasSymbols.bindTo(e)}return e.prototype.reset=function(){this._ctxHasSymbols.reset(),d.dispose(this._currentState),d.dispose(this._currentMessage),\nthis._currentModel=void 0,this._currentIdx=-1},e.prototype.put=function(e){var t=this,n=e.parent.parent;if(n.references.length<=1)this.reset();else{this._currentModel=n,this._currentIdx=n.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();var i=new y(this._editorService),o=i.onDidChange((function(e){if(!t._ignoreEditorChange){var i=t._editorService.getActiveCodeEditor();if(i){var o=i.getModel(),r=i.getPosition();if(o&&r){for(var s=!1,a=!1,l=0,d=n.references;l<d.length;l++){var c=d[l];if(v.isEqual(c.uri,o.uri))s=!0,a=a||u.Range.containsPosition(c.range,r);else if(s)break}s&&a||t.reset()}}}}));this._currentState=d.combinedDisposable(i,o)}},e.prototype.revealNext=function(e){var t=this;if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;var n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{\nselection:u.Range.collapseToStart(n.range),revealInCenterIfOutsideViewport:!0}},e).finally((function(){t._ignoreEditorChange=!1}))},e.prototype._showMessage=function(){d.dispose(this._currentMessage);var e=this._keybindingService.lookupKeybinding(\"editor.gotoNextSymbolFromResult\"),t=e?p.localize(0,null,this._currentIdx+1,this._currentModel.references.length,e.getLabel()):p.localize(1,null,this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)},e=h([g(0,n.IContextKeyService),g(1,l.ICodeEditorService),g(2,m.INotificationService),g(3,f.IKeybindingService)],e)}();o.registerSingleton(t.ISymbolNavigationService,_,!0),a.registerEditorCommand(new(function(e){function n(){return e.call(this,{id:\"editor.gotoNextSymbolFromResult\",precondition:t.ctxHasSymbols,kbOpts:{weight:100,primary:70}})||this}return r(n,e),n.prototype.runEditorCommand=function(e,n){return e.get(t.ISymbolNavigationService).revealNext(n)},n}(a.EditorCommand))),\ns.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"editor.gotoNextSymbolFromResult.cancel\",weight:100,when:t.ctxHasSymbols,primary:9,handler:function(e){e.get(t.ISymbolNavigationService).reset()}});var y=function(){function e(e){this._listener=new Map,this._disposables=new d.DisposableStore,this._onDidChange=new c.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}return e.prototype.dispose=function(){this._disposables.dispose(),this._onDidChange.dispose(),this._listener.forEach(d.dispose)},e.prototype._onDidAddEditor=function(e){var t=this;this._listener.set(e,d.combinedDisposable(e.onDidChangeCursorPosition((function(n){return t._onDidChange.fire({editor:e})})),e.onDidChangeModelContent((function(n){return t._onDidChange.fire({editor:e})}))))},e.prototype._onDidRemoveEditor=function(e){\nd.dispose(this._listener.get(e)),this._listener.delete(e)},e=h([g(0,l.ICodeEditorService)],e)}()})),define(n[538],i([0,1,19,26,10,12,17]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e,t,i){var r=s.HoverProviderRegistry.ordered(e).map((function(n){return Promise.resolve(n.provideHover(e,t,i)).then((function(e){return e&&(n=void 0!==(t=e).range,i=void 0!==t.contents&&t.contents&&t.contents.length>0,n&&i)?e:void 0;var t,n,i}),(function(e){o.onUnexpectedExternalError(e)}))}));return Promise.all(r).then(n.coalesce)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getHover=a,r.registerModelAndPositionCommand(\"_executeHoverProvider\",(function(e,t){return a(e,t,i.CancellationToken.None)}))})),define(n[539],i([0,1,456,36,164,12,80,338,159,58,13,3,22,23,386,492,387]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(e){function t(t,n){var i=e.call(this,n)||this;return i.down=t,i}return r(t,e),t.prototype.run=function(e,t){\nfor(var n=[],i=0,o=t.getSelections()||[];i<o.length;i++){var r=o[i];n.push(new f.CopyLinesCommand(r,this.down))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()},t}(s.EditorAction),y=function(e){function t(){return e.call(this,!1,{id:\"editor.action.copyLinesUpAction\",label:n.localize(0,null),alias:\"Copy Line Up\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(1,null),order:1}})||this}return r(t,e),t}(_),C=function(e){function t(){return e.call(this,!0,{id:\"editor.action.copyLinesDownAction\",label:n.localize(2,null),alias:\"Copy Line Down\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(3,null),order:2}})||this}return r(t,e),t}(_),b=function(e){function t(){return e.call(this,{id:\"editor.action.duplicateSelection\",\nlabel:n.localize(4,null),alias:\"Duplicate Selection\",precondition:g.EditorContextKeys.writable,menuOpts:{menuId:25,group:\"2_line\",title:n.localize(5,null),order:5}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){for(var i=[],o=t.getSelections(),r=t.getModel(),s=0,l=o;s<l.length;s++){var u=l[s];if(u.isEmpty())i.push(new f.CopyLinesCommand(u,!0));else{var d=new p.Selection(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn);i.push(new a.ReplaceCommandThatSelectsText(d,r.getValueInRange(u)))}}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},t}(s.EditorAction);t.DuplicateSelectionAction=b;var S=function(e){function t(t,n){var i=e.call(this,n)||this;return i.down=t,i}return r(t,e),t.prototype.run=function(e,t){for(var n=[],i=t.getSelections()||[],o=t.getOption(8),r=0,s=i;r<s.length;r++){var a=s[r];n.push(new m.MoveLinesCommand(a,this.down,o))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()},t}(s.EditorAction),w=function(e){function t(){\nreturn e.call(this,!1,{id:\"editor.action.moveLinesUpAction\",label:n.localize(6,null),alias:\"Move Line Up\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(7,null),order:3}})||this}return r(t,e),t}(S),E=function(e){function t(){return e.call(this,!0,{id:\"editor.action.moveLinesDownAction\",label:n.localize(8,null),alias:\"Move Line Down\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(9,null),order:4}})||this}return r(t,e),t}(S),L=function(e){function t(t,n){var i=e.call(this,n)||this;return i.descending=t,i}return r(t,e),t.prototype.run=function(e,t){for(var n=t.getSelections()||[],i=0,o=n;i<o.length;i++){var r=o[i];if(!v.SortLinesCommand.canRun(t.getModel(),r,this.descending))return}\nfor(var s=[],a=0,l=n.length;a<l;a++)s[a]=new v.SortLinesCommand(n[a],this.descending);t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()},t}(s.EditorAction);t.AbstractSortLinesAction=L;var D=function(e){function t(){return e.call(this,!1,{id:\"editor.action.sortLinesAscending\",label:n.localize(10,null),alias:\"Sort Lines Ascending\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t}(L);t.SortLinesAscendingAction=D;var N=function(e){function t(){return e.call(this,!0,{id:\"editor.action.sortLinesDescending\",label:n.localize(11,null),alias:\"Sort Lines Descending\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t}(L);t.SortLinesDescendingAction=N;var x=function(e){function t(){return e.call(this,{id:t.ID,label:n.localize(12,null),alias:\"Trim Trailing Whitespace\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2102),weight:100}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=[]\n;\"auto-save\"===n.reason&&(i=(t.getSelections()||[]).map((function(e){return new c.Position(e.positionLineNumber,e.positionColumn)})));var o=t.getSelection();if(null!==o){var r=new l.TrimTrailingWhitespaceCommand(o,i);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop()}},t.ID=\"editor.action.trimTrailingWhitespace\",t}(s.EditorAction);t.TrimTrailingWhitespaceAction=x;var I=function(e){function t(){return e.call(this,{id:\"editor.action.deleteLines\",label:n.localize(13,null),alias:\"Delete Line\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:3113,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=this._getLinesToRemove(t),i=t.getModel();if(1!==i.getLineCount()||1!==i.getLineMaxColumn(1)){for(var o=0,r=[],s=[],a=0,l=n.length;a<l;a++){var u=n[a],c=u.startLineNumber,h=u.endLineNumber,g=1,f=i.getLineMaxColumn(h);h<i.getLineCount()?(h+=1,f=1):c>1&&(c-=1,g=i.getLineMaxColumn(c)),\nr.push(d.EditOperation.replace(new p.Selection(c,g,h,f),\"\")),s.push(new p.Selection(c-o,u.positionColumn,c-o,u.positionColumn)),o+=u.endLineNumber-u.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}},t.prototype._getLinesToRemove=function(e){var t=e.getSelections().map((function(e){var t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&1===e.endColumn&&(t-=1),{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}}));t.sort((function(e,t){return e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber}));for(var n=[],i=t[0],o=1;o<t.length;o++)i.endLineNumber+1>=t[o].startLineNumber?i.endLineNumber=t[o].endLineNumber:(n.push(i),i=t[o]);return n.push(i),n},t}(s.EditorAction);t.DeleteLinesAction=I;var M=function(e){function t(){return e.call(this,{id:\"editor.action.indentLines\",label:n.localize(14,null),alias:\"Indent Line\",\nprecondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2137,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.indent(n.context.config,t.getModel(),t.getSelections())),t.pushUndoStop())},t}(s.EditorAction);t.IndentLinesAction=M;var k=function(e){function t(){return e.call(this,{id:\"editor.action.outdentLines\",label:n.localize(15,null),alias:\"Outdent Line\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2135,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){o.CoreEditingCommands.Outdent.runEditorCommand(e,t,null)},t}(s.EditorAction),T=function(e){function t(){return e.call(this,{id:\"editor.action.insertLineBefore\",label:n.localize(16,null),alias:\"Insert Line Above\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})||this}\nreturn r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.lineInsertBefore(n.context.config,t.getModel(),t.getSelections())))},t}(s.EditorAction);t.InsertLineBeforeAction=T;var R=function(e){function t(){return e.call(this,{id:\"editor.action.insertLineAfter\",label:n.localize(17,null),alias:\"Insert Line Below\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.lineInsertAfter(n.context.config,t.getModel(),t.getSelections())))},t}(s.EditorAction);t.InsertLineAfterAction=R;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getSelection(),i=this._getRangesToDelete(t),o=[],r=0,s=i.length-1;r<s;r++){var a=i[r],l=i[r+1]\n;null===h.Range.intersectRanges(a,l)?o.push(a):i[r+1]=h.Range.plusRange(a,l)}o.push(i[i.length-1]);var u=this._getEndCursorState(n,o),c=o.map((function(e){return d.EditOperation.replace(e,\"\")}));t.pushUndoStop(),t.executeEdits(this.id,c,u),t.pushUndoStop()}},t}(s.EditorAction);t.AbstractDeleteAllToBoundaryAction=O;var P=function(e){function t(){return e.call(this,{id:\"deleteAllLeft\",label:n.localize(18,null),alias:\"Delete All Left\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})||this}return r(t,e),t.prototype._getEndCursorState=function(e,t){var n=null,i=[],o=0;return t.forEach((function(t){var r;if(1===t.endColumn&&o>0){var s=t.startLineNumber-o;r=new p.Selection(s,t.startColumn,s,t.startColumn)}else r=new p.Selection(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);o+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?n=r:i.push(r)})),n&&i.unshift(n),i},t.prototype._getRangesToDelete=function(e){\nvar t=e.getSelections();if(null===t)return[];var n=t,i=e.getModel();return null===i?[]:(n.sort(h.Range.compareRangesUsingStarts),n=n.map((function(e){if(e.isEmpty()){if(1===e.startColumn){var t=Math.max(1,e.startLineNumber-1),n=1===e.startLineNumber?1:i.getLineContent(t).length+1;return new h.Range(t,n,e.startLineNumber,1)}return new h.Range(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new h.Range(e.startLineNumber,1,e.endLineNumber,e.endColumn)})))},t}(O);t.DeleteAllLeftAction=P;var A=function(e){function t(){return e.call(this,{id:\"deleteAllRight\",label:n.localize(19,null),alias:\"Delete All Right\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})||this}return r(t,e),t.prototype._getEndCursorState=function(e,t){for(var n=null,i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=new p.Selection(s.startLineNumber-0,s.startColumn,s.startLineNumber-0,s.startColumn);s.intersectRanges(e)?n=a:i.push(a)}\nreturn n&&i.unshift(n),i},t.prototype._getRangesToDelete=function(e){var t=e.getModel();if(null===t)return[];var n=e.getSelections();if(null===n)return[];var i=n.map((function(e){if(e.isEmpty()){var n=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===n?new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e}));return i.sort(h.Range.compareRangesUsingStarts),i},t}(O);t.DeleteAllRightAction=A;var F=function(e){function t(){return e.call(this,{id:\"editor.action.joinLines\",label:n.localize(20,null),alias:\"Join Lines\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t.getSelections();if(null!==n){var i=t.getSelection();if(null!==i){n.sort(h.Range.compareRangesUsingStarts);var o=[],r=n.reduce((function(e,t){\nreturn e.isEmpty()?e.endLineNumber===t.startLineNumber?(i.equalsSelection(e)&&(i=t),t):t.startLineNumber>e.endLineNumber+1?(o.push(e),t):new p.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new p.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)}));o.push(r);var s=t.getModel();if(null!==s){for(var a=[],l=[],u=i,c=0,g=0,f=o.length;g<f;g++){var m=o[g],v=m.startLineNumber,_=0,y=void 0,C=void 0,b=s.getLineContent(m.endLineNumber).length-m.endColumn;if(m.isEmpty()||m.startLineNumber===m.endLineNumber){var S=m.getStartPosition();S.lineNumber<s.getLineCount()?(y=v+1,C=s.getLineMaxColumn(y)):(y=S.lineNumber,C=s.getLineMaxColumn(S.lineNumber))}else y=m.endLineNumber,C=s.getLineMaxColumn(y);for(var w=s.getLineContent(v),E=v+1;E<=y;E++){var L=s.getLineContent(E),D=s.getLineFirstNonWhitespaceColumn(E);if(D>=1){var N=!0;\"\"===w&&(N=!1),!N||\" \"!==w.charAt(w.length-1)&&\"\\t\"!==w.charAt(w.length-1)||(N=!1,\nw=w.replace(/[\\s\\uFEFF\\xA0]+$/g,\" \"));var x=L.substr(D-1);w+=(N?\" \":\"\")+x,_=N?x.length+1:x.length}else _=0}var I=new h.Range(v,1,y,C);if(!I.isEmpty()){var M=void 0;m.isEmpty()?(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(I.startLineNumber-c,w.length-_+1,v-c,w.length-_+1)):m.startLineNumber===m.endLineNumber?(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(m.startLineNumber-c,m.startColumn,m.endLineNumber-c,m.endColumn)):(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(m.startLineNumber-c,m.startColumn,m.startLineNumber-c,w.length-b)),null!==h.Range.intersectRanges(I,i)?u=M:l.push(M)}c+=I.endLineNumber-I.startLineNumber}l.unshift(u),t.pushUndoStop(),t.executeEdits(this.id,a,l),t.pushUndoStop()}}}},t}(s.EditorAction);t.JoinLinesAction=F;var W=function(e){function t(){return e.call(this,{id:\"editor.action.transpose\",label:n.localize(21,null),alias:\"Transpose characters around the cursor\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype.run=function(e,t){\nvar n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){for(var o=[],r=0,s=n.length;r<s;r++){var l=n[r];if(l.isEmpty()){var u=l.getStartPosition(),d=i.getLineMaxColumn(u.lineNumber);if(u.column>=d){if(u.lineNumber===i.getLineCount())continue;var c=new h.Range(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),g=i.getValueInRange(c).split(\"\").reverse().join(\"\");o.push(new a.ReplaceCommand(new p.Selection(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),g))}else{c=new h.Range(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),g=i.getValueInRange(c).split(\"\").reverse().join(\"\");o.push(new a.ReplaceCommandThatPreservesSelection(c,g,new p.Selection(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}},t}(s.EditorAction);t.TransposeAction=W;var B=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel()\n;if(null!==i){for(var o=t.getOption(96),r=[],s=0,l=n.length;s<l;s++){var u=n[s];if(u.isEmpty()){var d=u.getStartPosition(),c=i.getWordAtPosition(d);if(!c)continue;var g=new h.Range(d.lineNumber,c.startColumn,d.lineNumber,c.endColumn),f=i.getValueInRange(g);r.push(new a.ReplaceCommandThatPreservesSelection(g,this._modifyText(f,o),new p.Selection(d.lineNumber,d.column,d.lineNumber,d.column)))}else{f=i.getValueInRange(u);r.push(new a.ReplaceCommandThatPreservesSelection(u,this._modifyText(f,o),u))}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}},t}(s.EditorAction);t.AbstractCaseAction=B;var V=function(e){function t(){return e.call(this,{id:\"editor.action.transformToUppercase\",label:n.localize(22,null),alias:\"Transform to Uppercase\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){return e.toLocaleUpperCase()},t}(B);t.UpperCaseAction=V;var z=function(e){function t(){return e.call(this,{id:\"editor.action.transformToLowercase\",\nlabel:n.localize(23,null),alias:\"Transform to Lowercase\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){return e.toLocaleLowerCase()},t}(B);t.LowerCaseAction=z;var H=function(e){function t(){return e.call(this,{id:\"editor.action.transformToTitlecase\",label:n.localize(24,null),alias:\"Transform to Title Case\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){for(var n=(\"\\r\\n\\t \"+t).split(\"\"),i=\"\",o=!0,r=0;r<e.length;r++){var s=e[r];n.indexOf(s)>=0?(o=!0,i+=s):o?(o=!1,i+=s.toLocaleUpperCase()):i+=s.toLocaleLowerCase()}return i},t}(B);t.TitleCaseAction=H,s.registerEditorAction(y),s.registerEditorAction(C),s.registerEditorAction(b),s.registerEditorAction(w),s.registerEditorAction(E),s.registerEditorAction(D),s.registerEditorAction(N),s.registerEditorAction(x),s.registerEditorAction(I),s.registerEditorAction(M),s.registerEditorAction(k),s.registerEditorAction(T),s.registerEditorAction(R),\ns.registerEditorAction(P),s.registerEditorAction(A),s.registerEditorAction(F),s.registerEditorAction(W),s.registerEditorAction(V),s.registerEditorAction(z),s.registerEditorAction(H)})),define(n[165],i([0,1,15,10,12,17,18,26]),(function(e,t,n,i,o,r,s,a){\"use strict\";function l(e,t,o,s){var a=r.SignatureHelpProviderRegistry.ordered(e);return n.first(a.map((function(n){return function(){return Promise.resolve(n.provideSignatureHelp(e,t,s,o)).catch((function(e){return i.onUnexpectedExternalError(e)}))}})))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.Context={Visible:new s.RawContextKey(\"parameterHintsVisible\",!1),MultipleSignatures:new s.RawContextKey(\"parameterHintsMultipleSignatures\",!1)},t.provideSignatureHelp=l,o.registerDefaultLanguageCommand(\"_executeSignatureHelpProvider\",(function(e,t,n){return d(void 0,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return[4,l(e,t,{triggerKind:r.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:n.triggerCharacter\n},a.CancellationToken.None)];case 1:return(i=o.sent())?(setTimeout((function(){return i.dispose()}),0),[2,i.value]):[2,void 0]}}))}))}))})),define(n[540],i([0,1,15,10,4,2,79,17,165]),(function(e,t,n,i,o,s,a,u,h){\"use strict\";var p;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Default={type:0};var t=function(e){this.request=e,this.type=2};e.Pending=t;var n=function(e){this.hints=e,this.type=1};e.Active=n}(p||(p={}));var g=function(e){function t(i,r){void 0===r&&(r=t.DEFAULT_DELAY);var l=e.call(this)||this;return l._onChangedHints=l._register(new o.Emitter),l.onChangedHints=l._onChangedHints.event,l.triggerOnType=!1,l._state=p.Default,l._pendingTriggers=[],l._lastSignatureHelpResult=l._register(new s.MutableDisposable),l.triggerChars=new a.CharacterSet,l.retriggerChars=new a.CharacterSet,l.triggerId=0,l.editor=i,l.throttledDelayer=new n.Delayer(r),l._register(l.editor.onDidChangeConfiguration((function(){return l.onEditorConfigurationChange()}))),\nl._register(l.editor.onDidChangeModel((function(e){return l.onModelChanged()}))),l._register(l.editor.onDidChangeModelLanguage((function(e){return l.onModelChanged()}))),l._register(l.editor.onDidChangeCursorSelection((function(e){return l.onCursorChange(e)}))),l._register(l.editor.onDidChangeModelContent((function(e){return l.onModelContentChange()}))),l._register(u.SignatureHelpProviderRegistry.onDidChange(l.onModelChanged,l)),l._register(l.editor.onDidType((function(e){return l.onDidType(e)}))),l.onEditorConfigurationChange(),l.onModelChanged(),l}return r(t,e),Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){2===this._state.type&&this._state.request.cancel(),this._state=e},enumerable:!0,configurable:!0}),t.prototype.cancel=function(e){void 0===e&&(e=!1),this.state=p.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)},t.prototype.trigger=function(e,t){var n=this,o=this.editor.getModel();if(o&&u.SignatureHelpProviderRegistry.has(o)){\nvar r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((function(){return n.doTrigger(r)}),t).catch(i.onUnexpectedError)}},t.prototype.next=function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t%e==e-1,i=this.editor.getOption(64).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?0:t+1):this.cancel()}},t.prototype.previous=function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=0===t,i=this.editor.getOption(64).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?e-1:t-1):this.cancel()}},t.prototype.updateActiveSignature=function(e){1===this.state.type&&(this.state=new p.Active(l(l({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))},t.prototype.doTrigger=function(e){return d(this,void 0,void 0,(function(){var t,o,r,s,a,l,u,d;return c(this,(function(c){switch(c.label){case 0:if(t=1===this.state.type||2===this.state.type,\no=1===this.state.type?this.state.hints:void 0,this.cancel(!0),0===this._pendingTriggers.length)return[2,!1];if(r=this._pendingTriggers.reduce(f),this._pendingTriggers=[],s={triggerKind:r.triggerKind,triggerCharacter:r.triggerCharacter,isRetrigger:t,activeSignatureHelp:o},!this.editor.hasModel())return[2,!1];a=this.editor.getModel(),l=this.editor.getPosition(),this.state=new p.Pending(n.createCancelablePromise((function(e){return h.provideSignatureHelp(a,l,s,e)}))),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,this.state.request];case 2:return u=c.sent(),e!==this.triggerId?(null==u||u.dispose(),[2,!1]):u&&u.value.signatures&&0!==u.value.signatures.length?(this.state=new p.Active(u.value),this._lastSignatureHelpResult.value=u,this._onChangedHints.fire(this.state.hints),[2,!0]):(null==u||u.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),[2,!1]);case 3:return d=c.sent(),e===this.triggerId&&(this.state=p.Default),i.onUnexpectedError(d),[2,!1];case 4:return[2]}}))}))},\nObject.defineProperty(t.prototype,\"isTriggered\",{get:function(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()},enumerable:!0,configurable:!0}),t.prototype.onModelChanged=function(){this.cancel(),this.triggerChars=new a.CharacterSet,this.retriggerChars=new a.CharacterSet;var e=this.editor.getModel();if(e)for(var t=0,n=u.SignatureHelpProviderRegistry.ordered(e);t<n.length;t++){for(var i=n[t],o=0,r=i.signatureHelpTriggerCharacters||[];o<r.length;o++){var s=r[o];this.triggerChars.add(s.charCodeAt(0)),this.retriggerChars.add(s.charCodeAt(0))}for(var l=0,d=i.signatureHelpRetriggerCharacters||[];l<d.length;l++){s=d[l];this.retriggerChars.add(s.charCodeAt(0))}}},t.prototype.onDidType=function(e){if(this.triggerOnType){var t=e.length-1,n=e.charCodeAt(t);(this.triggerChars.has(n)||this.isTriggered&&this.retriggerChars.has(n))&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:e.charAt(t)})}},t.prototype.onCursorChange=function(e){\n\"mouse\"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.ContentChange})},t.prototype.onModelContentChange=function(){this.isTriggered&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.ContentChange})},t.prototype.onEditorConfigurationChange=function(){this.triggerOnType=this.editor.getOption(64).enabled,this.triggerOnType||this.cancel()},t.prototype.dispose=function(){this.cancel(!0),e.prototype.dispose.call(this)},t.DEFAULT_DELAY=120,t}(s.Disposable);function f(e,t){switch(t.triggerKind){case u.SignatureHelpTriggerKind.Invoke:return t;case u.SignatureHelpTriggerKind.ContentChange:return e;case u.SignatureHelpTriggerKind.TriggerCharacter:default:return t}}t.ParameterHintsModel=g})),define(n[541],i([0,1,19,26,12,13,3,22,23,17,465,2,388,202,29,10]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(){function e(e,t){this.index=e,this.ranges=t}return e.prototype.mov=function(t){\nvar n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;var i=new e(n,this.ranges);return i.ranges[n].equalsRange(this.ranges[this.index])?i.mov(t):i},e}(),C=function(){function e(e){this._ignoreSelection=!1,this._editor=e}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){g.dispose(this._selectionListener)},e.prototype.run=function(e){var t=this;if(this._editor.hasModel()){var o=this._editor.getSelections(),r=this._editor.getModel();if(h.SelectionRangeRegistry.has(r)){var s=Promise.resolve(void 0);return this._state||(s=E(r,o.map((function(e){return e.getPosition()})),i.CancellationToken.None).then((function(e){if(n.isNonEmptyArray(e)&&e.length===o.length&&t._editor.hasModel()&&n.equals(t._editor.getSelections(),o,(function(e,t){return e.equalsSelection(t)}))){for(var i=function(t){e[t]=e[t].filter((function(e){return e.containsPosition(o[t].getStartPosition())&&e.containsPosition(o[t].getEndPosition())})),e[t].unshift(o[t])},r=0;r<e.length;r++)i(r)\n;t._state=e.map((function(e){return new y(0,e)})),g.dispose(t._selectionListener),t._selectionListener=t._editor.onDidChangeCursorPosition((function(){t._ignoreSelection||(g.dispose(t._selectionListener),t._state=void 0)}))}}))),s.then((function(){if(t._state){t._state=t._state.map((function(t){return t.mov(e)}));var n=t._state.map((function(e){return l.Selection.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())}));t._ignoreSelection=!0;try{t._editor.setSelections(n)}finally{t._ignoreSelection=!1}}}))}}},e.ID=\"editor.contrib.smartSelectController\",e}(),b=function(e){function t(t,n){var i=e.call(this,n)||this;return i._forward=t,i}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var e;return c(this,(function(n){switch(n.label){case 0:return(e=C.get(t))?[4,e.run(this._forward)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))},t}(o.EditorAction),S=function(e){function t(){return e.call(this,!0,{id:\"editor.action.smartSelect.expand\",\nlabel:p.localize(0,null),alias:\"Expand Selection\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:25,group:\"1_basic\",title:p.localize(1,null),order:2}})||this}return r(t,e),t}(b);v.CommandsRegistry.registerCommandAlias(\"editor.action.smartSelect.grow\",\"editor.action.smartSelect.expand\");var w=function(e){function t(){return e.call(this,!1,{id:\"editor.action.smartSelect.shrink\",label:p.localize(2,null),alias:\"Shrink Selection\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:25,group:\"1_basic\",title:p.localize(3,null),order:3}})||this}return r(t,e),t}(b);function E(e,t,i){var o=h.SelectionRangeRegistry.all(e);1===o.length&&o.unshift(new m.BracketSelectionRangeProvider);for(var r=[],l=[],u=0,d=o;u<d.length;u++){var c=d[u];r.push(Promise.resolve(c.provideSelectionRanges(e,t,i)).then((function(e){\nif(n.isNonEmptyArray(e)&&e.length===t.length)for(var i=0;i<t.length;i++){l[i]||(l[i]=[]);for(var o=0,r=e[i];o<r.length;o++){var s=r[o];a.Range.isIRange(s.range)&&a.Range.containsPosition(s.range,t[i])&&l[i].push(a.Range.lift(s.range))}}}),_.onUnexpectedExternalError))}return Promise.all(r).then((function(){return l.map((function(t){if(0===t.length)return[];t.sort((function(e,t){return s.Position.isBefore(e.getStartPosition(),t.getStartPosition())?1:s.Position.isBefore(t.getStartPosition(),e.getStartPosition())?-1:s.Position.isBefore(e.getEndPosition(),t.getEndPosition())?-1:s.Position.isBefore(t.getEndPosition(),e.getEndPosition())?1:0}));for(var n,i=[],o=0,r=t;o<r.length;o++){var l=r[o];(!n||a.Range.containsRange(l,n)&&!a.Range.equalsRange(l,n))&&(i.push(l),n=l)}for(var u=[i[0]],d=1;d<i.length;d++){var c=i[d-1],h=i[d];if(h.startLineNumber!==c.startLineNumber||h.endLineNumber!==c.endLineNumber){\nvar p=new a.Range(c.startLineNumber,e.getLineFirstNonWhitespaceColumn(c.startLineNumber),c.endLineNumber,e.getLineLastNonWhitespaceColumn(c.endLineNumber));p.containsRange(c)&&!p.equalsRange(c)&&h.containsRange(p)&&!h.equalsRange(p)&&u.push(p);var g=new a.Range(c.startLineNumber,1,c.endLineNumber,e.getLineMaxColumn(c.endLineNumber));g.containsRange(c)&&!g.equalsRange(p)&&h.containsRange(g)&&!h.equalsRange(g)&&u.push(g)}u.push(h)}return u}))}))}o.registerEditorContribution(C.ID,C),o.registerEditorAction(S),o.registerEditorAction(w),h.SelectionRangeRegistry.register(\"*\",new f.WordSelectionRangeProvider),t.provideSelectionRanges=E,o.registerModelCommand(\"_executeSelectionRangeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var o=t[0];return E(e,o,i.CancellationToken.None)}))})),define(n[120],i([0,1,15,31,10,12,17,13,18,26,3,61,2]),(function(e,t,n,i,o,r,s,a,l,u,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Context={\nVisible:new l.RawContextKey(\"suggestWidgetVisible\",!1),MultipleSuggestions:new l.RawContextKey(\"suggestWidgetMultipleSuggestions\",!1),MakesTextEdit:new l.RawContextKey(\"suggestionMakesTextEdit\",!0),AcceptSuggestionsOnEnter:new l.RawContextKey(\"acceptSuggestionOnEnter\",!0)};var f=function(e,t,n,r,s){var l=this;this.position=e,this.completion=t,this.container=n,this.provider=r,this.isResolved=!1,this.score=p.FuzzyScore.Default,this.distance=0,this.textLabel=\"string\"==typeof t.label?t.label:t.label.name,this.labelLow=this.textLabel.toLowerCase(),this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),h.Range.isIRange(t.range)?(this.editStart=new a.Position(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new a.Position(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new a.Position(t.range.endLineNumber,t.range.endColumn)):(this.editStart=new a.Position(t.range.insert.startLineNumber,t.range.insert.startColumn),\nthis.editInsertEnd=new a.Position(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new a.Position(t.range.replace.endLineNumber,t.range.replace.endColumn));var u,d=r.resolveCompletionItem;\"function\"!=typeof d?(this.resolve=function(){return Promise.resolve()},this.isResolved=!0):this.resolve=function(n){return u||(u=Promise.resolve(d.call(r,s,e,t,n)).then((function(e){i.assign(t,e),l.isResolved=!0}),(function(e){o.isPromiseCanceledError(e)&&(u=void 0)})),n.onCancellationRequested((function(){l.isResolved||(u=void 0)}))),u}};t.CompletionItem=f;var m,v=function(){function e(e,t,n){void 0===e&&(e=2),void 0===t&&(t=new Set),void 0===n&&(n=new Set),this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=n}return e.default=new e,e}();function _(e,t,i,r,a){void 0===i&&(i=v.default),void 0===r&&(r={triggerKind:0}),void 0===a&&(a=u.CancellationToken.None)\n;var l=e.getWordAtPosition(t),d=l?new h.Range(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):h.Range.fromPositions(t),c=d.setEndPosition(t.lineNumber,t.column);t=t.clone();var p=s.CompletionProviderRegistry.orderedGroups(e);!i.kindFilter.has(25)&&m&&p.unshift([m]);var _=[],y=new g.DisposableStore,C=!1,S=p.map((function(n){return function(){return Promise.all(n.map((function(n){if(!(i.providerFilter.size>0)||i.providerFilter.has(n))return Promise.resolve(n.provideCompletionItems(e,t,r,a)).then((function(o){var r=_.length;if(o){for(var s=0,a=o.suggestions||[];s<a.length;s++){var l=a[s];i.kindFilter.has(l.kind)||(l.range||(l.range={insert:c,replace:d}),l.sortText||(l.sortText=\"string\"==typeof l.label?l.label:l.label.name),_.push(new f(t,l,o,n,e)))}g.isDisposable(o)&&y.add(o)}r!==_.length&&n!==m&&(C=!0)}),o.onUnexpectedExternalError)})))}}));return n.first(S,(function(){return C||a.isCancellationRequested})).then((function(){return a.isCancellationRequested?(y.dispose(),\nPromise.reject(o.canceled())):_.sort(b(i.snippetSortOrder))}))}function y(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.completion.label<t.completion.label?-1:e.completion.label>t.completion.label?1:e.completion.kind-t.completion.kind}t.CompletionOptions=v,t.getSnippetSuggestSupport=function(){return m},t.provideSuggestionItems=_;var C=new Map;function b(e){return C.get(e)}C.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(25===e.completion.kind)return-1;if(25===t.completion.kind)return 1}return y(e,t)})),C.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){if(25===e.completion.kind)return 1;if(25===t.completion.kind)return-1}return y(e,t)})),C.set(1,y),t.getSuggestionComparator=b,r.registerDefaultLanguageCommand(\"_executeCompletionItemProvider\",(function(e,t,n){return d(void 0,void 0,void 0,(function(){var i,o,r,s,a,l,d,h;return c(this,(function(c){switch(c.label){case 0:return i={incomplete:!1,\nsuggestions:[]},o=new g.DisposableStore,r=[],s=n.maxItemsToResolve||0,[4,_(e,t)];case 1:for(a=c.sent(),l=0,d=a;l<d.length;l++)h=d[l],r.length<s&&r.push(h.resolve(u.CancellationToken.None)),i.incomplete=i.incomplete||h.container.incomplete,i.suggestions.push(h.completion),g.isDisposable(h.container)&&o.add(h.container);c.label=2;case 2:return c.trys.push([2,,4,5]),[4,Promise.all(r)];case 3:return c.sent(),[2,i];case 4:return setTimeout((function(){return o.dispose()}),100),[7];case 5:return[2]}}))}))}));var S=new(function(){function e(){this.onlyOnceSuggestions=[]}return e.prototype.provideCompletionItems=function(){var e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e},e}());s.CompletionProviderRegistry.register(\"*\",S),t.showSimpleSuggestions=function(e,t){setTimeout((function(){var n;(n=S.onlyOnceSuggestions).push.apply(n,t),e.getContribution(\"editor.contrib.suggestController\").triggerSuggest((new Set).add(S))}),0)}})),\ndefine(n[225],i([0,1,469,50,12,163]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(){return e.call(this,{id:t.ID,label:n.localize(0,null),alias:\"Toggle Tab Key Moves Focus\",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var o=!s.TabFocus.getTabFocusMode();s.TabFocus.setTabFocusMode(o),o?i.alert(n.localize(1,null)):i.alert(n.localize(2,null))},t.ID=\"editor.action.toggleTabFocusMode\",t}(o.EditorAction);t.ToggleTabFocusModeAction=a,o.registerEditorAction(a)})),define(n[542],i([0,1,470,12,132]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return e.call(this,{id:\"editor.action.forceRetokenize\",label:n.localize(0,null),alias:\"Developer: Force Retokenize\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=t.getModel();n.resetTokenization()\n;var i=new o.StopWatch(!0);n.forceTokenization(n.getLineCount()),i.stop(),console.log(\"tokenization took \"+i.elapsed())}},t}(i.EditorAction);i.registerEditorAction(s)})),define(n[226],i([0,1,12,80,40,160,89,13,3,22,23,64,18,33]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n._wordNavigationType=t.wordNavigationType,n}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this;if(t.hasModel()){var r=a.getMapForWordSeparators(t.getOption(96)),s=t.getModel(),u=t.getSelections().map((function(e){var t=new l.Position(e.positionLineNumber,e.positionColumn),n=i._move(r,s,t,i._wordNavigationType);return i._moveTo(e,n,i._inSelectionMode)}));if(t._getCursors().setStates(\"moveWordCommand\",0,u.map((function(e){return o.CursorState.fromModelSelection(e)}))),1===u.length){var d=new l.Position(u[0].positionLineNumber,u[0].positionColumn)\n;t.revealPosition(d,0)}}},t.prototype._moveTo=function(e,t,n){return n?new d.Selection(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new d.Selection(t.lineNumber,t.column,t.lineNumber,t.column)},t}(n.EditorCommand);t.MoveWordCommand=f;var m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,i){return s.WordOperations.moveWordLeft(e,t,n,i)},t}(f);t.WordLeftCommand=m;var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,i){return s.WordOperations.moveWordRight(e,t,n,i)},t}(f);t.WordRightCommand=v;var _=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordStartLeft\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2063,mac:{primary:527},weight:100}})||this}return r(t,e),t}(m);t.CursorWordStartLeft=_;var y=function(e){function t(){return e.call(this,{inSelectionMode:!1,\nwordNavigationType:2,id:\"cursorWordEndLeft\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordEndLeft=y;var C=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:1,id:\"cursorWordLeft\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordLeft=C;var b=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartLeftSelect\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3087,mac:{primary:1551},weight:100}})||this}return r(t,e),t}(m);t.CursorWordStartLeftSelect=b;var S=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndLeftSelect\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordEndLeftSelect=S;var w=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:1,id:\"cursorWordLeftSelect\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordLeftSelect=w;var E=function(e){function t(){return e.call(this,{\ninSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityLeft\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2063},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(m);t.CursorWordAccessibilityLeft=E;var L=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityLeftSelect\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3087},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(m);t.CursorWordAccessibilityLeftSelect=L;var D=function(e){function t(){return e.call(this,{inSelectionMode:!1,\nwordNavigationType:0,id:\"cursorWordStartRight\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordStartRight=D;var N=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordEndRight\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2065,mac:{primary:529},weight:100}})||this}return r(t,e),t}(v);t.CursorWordEndRight=N;var x=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordRight\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordRight=x;var I=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartRightSelect\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordStartRightSelect=I;var M=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndRightSelect\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3089,mac:{primary:1553},weight:100}})||this}\nreturn r(t,e),t}(v);t.CursorWordEndRightSelect=M;var k=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordRightSelect\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordRightSelect=k;var T=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityRight\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2065},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(v);t.CursorWordAccessibilityRight=T;var R=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityRightSelect\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3089},\nweight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(v);t.CursorWordAccessibilityRightSelect=R;var O=function(e){function t(t){var n=e.call(this,t)||this;return n._whitespaceHeuristics=t.whitespaceHeuristics,n._wordNavigationType=t.wordNavigationType,n}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var o=this;if(t.hasModel()){var r=a.getMapForWordSeparators(t.getOption(96)),s=t.getModel(),l=t.getSelections().map((function(e){var t=o._delete(r,s,e,o._whitespaceHeuristics,o._wordNavigationType);return new i.ReplaceCommand(t,\"\")}));t.pushUndoStop(),t.executeCommands(this.id,l),t.pushUndoStop()}},t}(n.EditorCommand);t.DeleteWordCommand=O;var P=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._delete=function(e,t,n,i,o){var r=s.WordOperations.deleteWordLeft(e,t,n,i,o);return r||new u.Range(1,1,1,1)},t}(O)\n;t.DeleteWordLeftCommand=P;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._delete=function(e,t,n,i,o){var r=s.WordOperations.deleteWordRight(e,t,n,i,o);if(r)return r;var a=t.getLineCount(),l=t.getLineMaxColumn(a);return new u.Range(a,l,a,l)},t}(O);t.DeleteWordRightCommand=A;var F=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartLeft\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(P);t.DeleteWordStartLeft=F;var W=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndLeft\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(P);t.DeleteWordEndLeft=W;var B=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordLeft\",precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})||this}\nreturn r(t,e),t}(P);t.DeleteWordLeft=B;var V=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartRight\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(A);t.DeleteWordStartRight=V;var z=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndRight\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(A);t.DeleteWordEndRight=z;var H=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordRight\",precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})||this}return r(t,e),t}(A);t.DeleteWordRight=H,n.registerEditorCommand(new _),n.registerEditorCommand(new y),n.registerEditorCommand(new C),n.registerEditorCommand(new b),n.registerEditorCommand(new S),n.registerEditorCommand(new w),n.registerEditorCommand(new D),n.registerEditorCommand(new N),\nn.registerEditorCommand(new x),n.registerEditorCommand(new I),n.registerEditorCommand(new M),n.registerEditorCommand(new k),n.registerEditorCommand(new E),n.registerEditorCommand(new L),n.registerEditorCommand(new T),n.registerEditorCommand(new R),n.registerEditorCommand(new F),n.registerEditorCommand(new W),n.registerEditorCommand(new B),n.registerEditorCommand(new V),n.registerEditorCommand(new z),n.registerEditorCommand(new H)})),define(n[543],i([0,1,12,160,3,23,226,29]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordPartLeft\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})||this}return r(t,e),t.prototype._delete=function(e,t,n,r,s){var a=i.WordPartOperations.deleteWordPartLeft(e,t,n,r);return a||new o.Range(1,1,1,1)},t}(a.DeleteWordCommand);t.DeleteWordPartLeft=u\n;var d=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordPartRight\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})||this}return r(t,e),t.prototype._delete=function(e,t,n,r,s){var a=i.WordPartOperations.deleteWordPartRight(e,t,n,r);if(a)return a;var l=t.getLineCount(),u=t.getLineMaxColumn(l);return new o.Range(l,u,l,u)},t}(a.DeleteWordCommand);t.DeleteWordPartRight=d;var c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,o){return i.WordPartOperations.moveWordPartLeft(e,t,n)},t}(a.MoveWordCommand);t.WordPartLeftCommand=c;var h=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordPartLeft\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})||this}return r(t,e),t}(c);t.CursorWordPartLeft=h,\nl.CommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeft\",\"cursorWordPartLeft\");var p=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordPartLeftSelect\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})||this}return r(t,e),t}(c);t.CursorWordPartLeftSelect=p,l.CommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeftSelect\",\"cursorWordPartLeftSelect\");var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,o){return i.WordPartOperations.moveWordPartRight(e,t,n)},t}(a.MoveWordCommand);t.WordPartRightCommand=g;var f=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordPartRight\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})||this}return r(t,e),t}(g);t.CursorWordPartRight=f;var m=function(e){function t(){\nreturn e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordPartRightSelect\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})||this}return r(t,e),t}(g);t.CursorWordPartRightSelect=m,n.registerEditorCommand(new u),n.registerEditorCommand(new d),n.registerEditorCommand(new h),n.registerEditorCommand(new p),n.registerEditorCommand(new f),n.registerEditorCommand(new m)})),define(n[544],i([0,1,24,6,2,12,326]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var i=e.call(this)||this;return i.editor=t,i.widget=null,n.isIPad&&(i._register(t.onDidChangeConfiguration((function(){return i.update()}))),i.update()),i}return r(t,e),t.prototype.update=function(){var e=!this.editor.getOption(68);!this.widget&&e?this.widget=new l(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)},t.prototype.dispose=function(){e.prototype.dispose.call(this),\nthis.widget&&(this.widget.dispose(),this.widget=null)},t.ID=\"editor.contrib.iPadShowKeyboard\",t}(o.Disposable);t.IPadShowKeyboard=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.editor=t,n._domNode=document.createElement(\"textarea\"),n._domNode.className=\"iPadShowKeyboard\",n._register(i.addDisposableListener(n._domNode,\"touchstart\",(function(e){n.editor.focus()}))),n._register(i.addDisposableListener(n._domNode,\"focus\",(function(e){n.editor.focus()}))),n.editor.addOverlayWidget(n),n}return r(t,e),t.prototype.dispose=function(){this.editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{preference:1}},t.ID=\"editor.contrib.ShowKeyboardWidget\",t}(o.Disposable);s.registerEditorContribution(a.ID,a)})),define(n[545],i([0,1,12,94,59]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){\nvar t=e.call(this,{id:\"editor.action.toggleHighContrast\",label:o.ToggleHighContrastNLS.toggleHighContrast,alias:\"Toggle High Contrast Theme\",precondition:void 0})||this;return t._originalThemeName=null,t}return r(t,e),t.prototype.run=function(e,t){var n=e.get(i.IStandaloneThemeService);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getTheme().themeName,n.setTheme(\"hc-black\"))},t}(n.EditorAction);n.registerEditorAction(s)})),define(n[20],i([0,1,42,27,4,476,220,15]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={ColorContribution:\"base.contributions.colors\"};var l=new(function(){function e(){this._onDidChangeSchema=new o.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:\"object\",properties:{}},this.colorReferenceSchema={type:\"string\",enum:[],enumDescriptions:[]},this.colorsById={}}return e.prototype.registerColor=function(e,t,n,i,o){void 0===i&&(i=!1)\n;var r={id:e,description:n,defaults:t,needsTransparency:i,deprecationMessage:o};this.colorsById[e]=r;var s={type:\"string\",description:n,format:\"color-hex\",defaultSnippets:[{body:\"${1:#ff0000}\"}]};return o&&(s.deprecationMessage=o),this.colorSchema.properties[e]=s,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(n),this._onDidChangeSchema.fire(),e},e.prototype.resolveDefaultColor=function(e,t){var n=this.colorsById[e];if(n&&n.defaults)return g(n.defaults[t.type],t)},e.prototype.getColorSchema=function(){return this.colorSchema},e.prototype.toString=function(){var e=this;return Object.keys(this.colorsById).sort((function(e,t){var n=-1===e.indexOf(\".\")?0:1,i=-1===t.indexOf(\".\")?0:1;return n!==i?n-i:e.localeCompare(t)})).map((function(t){return\"- `\"+t+\"`: \"+e.colorsById[t].description})).join(\"\\n\")},e}());function u(e,t,n,i,o){return l.registerColor(e,t,n,i,o)}function d(e,t){return function(n){var i=g(e,n);if(i)return i.darken(t)}}function c(e,t){return function(n){\nvar i=g(e,n);if(i)return i.lighten(t)}}function h(e,t){return function(n){var i=g(e,n);if(i)return i.transparent(t)}}function p(e,t,n,o){return function(r){var s=g(e,r);if(s){var a=g(t,r);return a?s.isDarkerThan(a)?i.Color.getLighterColor(s,a,n).transparent(o):i.Color.getDarkerColor(s,a,n).transparent(o):s.transparent(n*o)}}}function g(e,t){if(null!==e)return\"string\"==typeof e?\"#\"===e[0]?i.Color.fromHex(e):t.getColor(e):e instanceof i.Color?e:\"function\"==typeof e?e(t):void 0}n.Registry.add(t.Extensions.ColorContribution,l),t.registerColor=u,t.foreground=u(\"foreground\",{dark:\"#CCCCCC\",light:\"#616161\",hc:\"#FFFFFF\"},r.localize(0,null)),t.errorForeground=u(\"errorForeground\",{dark:\"#F48771\",light:\"#A1260D\",hc:\"#F48771\"},r.localize(1,null)),t.focusBorder=u(\"focusBorder\",{dark:i.Color.fromHex(\"#0E639C\").transparent(.8),light:i.Color.fromHex(\"#007ACC\").transparent(.4),hc:\"#F38518\"},r.localize(2,null)),t.contrastBorder=u(\"contrastBorder\",{light:null,dark:null,hc:\"#6FC3DF\"},r.localize(3,null)),\nt.activeContrastBorder=u(\"contrastActiveBorder\",{light:null,dark:null,hc:t.focusBorder},r.localize(4,null)),t.textLinkForeground=u(\"textLink.foreground\",{light:\"#006AB1\",dark:\"#3794FF\",hc:\"#3794FF\"},r.localize(5,null)),t.textCodeBlockBackground=u(\"textCodeBlock.background\",{light:\"#dcdcdc66\",dark:\"#0a0a0a66\",hc:i.Color.black},r.localize(6,null)),t.widgetShadow=u(\"widget.shadow\",{dark:\"#000000\",light:\"#A8A8A8\",hc:null},r.localize(7,null)),t.inputBackground=u(\"input.background\",{dark:\"#3C3C3C\",light:i.Color.white,hc:i.Color.black},r.localize(8,null)),t.inputForeground=u(\"input.foreground\",{dark:t.foreground,light:t.foreground,hc:t.foreground},r.localize(9,null)),t.inputBorder=u(\"input.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(10,null)),t.inputActiveOptionBorder=u(\"inputOption.activeBorder\",{dark:\"#007ACC00\",light:\"#007ACC00\",hc:t.contrastBorder},r.localize(11,null)),t.inputActiveOptionBackground=u(\"inputOption.activeBackground\",{dark:h(t.focusBorder,.5),light:h(t.focusBorder,.3),hc:null\n},r.localize(12,null)),t.inputValidationInfoBackground=u(\"inputValidation.infoBackground\",{dark:\"#063B49\",light:\"#D6ECF2\",hc:i.Color.black},r.localize(13,null)),t.inputValidationInfoForeground=u(\"inputValidation.infoForeground\",{dark:null,light:null,hc:null},r.localize(14,null)),t.inputValidationInfoBorder=u(\"inputValidation.infoBorder\",{dark:\"#007acc\",light:\"#007acc\",hc:t.contrastBorder},r.localize(15,null)),t.inputValidationWarningBackground=u(\"inputValidation.warningBackground\",{dark:\"#352A05\",light:\"#F6F5D2\",hc:i.Color.black},r.localize(16,null)),t.inputValidationWarningForeground=u(\"inputValidation.warningForeground\",{dark:null,light:null,hc:null},r.localize(17,null)),t.inputValidationWarningBorder=u(\"inputValidation.warningBorder\",{dark:\"#B89500\",light:\"#B89500\",hc:t.contrastBorder},r.localize(18,null)),t.inputValidationErrorBackground=u(\"inputValidation.errorBackground\",{dark:\"#5A1D1D\",light:\"#F2DEDE\",hc:i.Color.black},r.localize(19,null)),\nt.inputValidationErrorForeground=u(\"inputValidation.errorForeground\",{dark:null,light:null,hc:null},r.localize(20,null)),t.inputValidationErrorBorder=u(\"inputValidation.errorBorder\",{dark:\"#BE1100\",light:\"#BE1100\",hc:t.contrastBorder},r.localize(21,null)),t.selectBackground=u(\"dropdown.background\",{dark:\"#3C3C3C\",light:i.Color.white,hc:i.Color.black},r.localize(22,null)),t.selectForeground=u(\"dropdown.foreground\",{dark:\"#F0F0F0\",light:null,hc:i.Color.white},r.localize(23,null)),t.pickerGroupForeground=u(\"pickerGroup.foreground\",{dark:\"#3794FF\",light:\"#0066BF\",hc:i.Color.white},r.localize(24,null)),t.pickerGroupBorder=u(\"pickerGroup.border\",{dark:\"#3F3F46\",light:\"#CCCEDB\",hc:i.Color.white},r.localize(25,null)),t.badgeBackground=u(\"badge.background\",{dark:\"#4D4D4D\",light:\"#C4C4C4\",hc:i.Color.black},r.localize(26,null)),t.badgeForeground=u(\"badge.foreground\",{dark:i.Color.white,light:\"#333\",hc:i.Color.white},r.localize(27,null)),t.scrollbarShadow=u(\"scrollbar.shadow\",{dark:\"#000000\",light:\"#DDDDDD\",hc:null\n},r.localize(28,null)),t.scrollbarSliderBackground=u(\"scrollbarSlider.background\",{dark:i.Color.fromHex(\"#797979\").transparent(.4),light:i.Color.fromHex(\"#646464\").transparent(.4),hc:h(t.contrastBorder,.6)},r.localize(29,null)),t.scrollbarSliderHoverBackground=u(\"scrollbarSlider.hoverBackground\",{dark:i.Color.fromHex(\"#646464\").transparent(.7),light:i.Color.fromHex(\"#646464\").transparent(.7),hc:h(t.contrastBorder,.8)},r.localize(30,null)),t.scrollbarSliderActiveBackground=u(\"scrollbarSlider.activeBackground\",{dark:i.Color.fromHex(\"#BFBFBF\").transparent(.4),light:i.Color.fromHex(\"#000000\").transparent(.6),hc:t.contrastBorder},r.localize(31,null)),t.progressBarBackground=u(\"progressBar.background\",{dark:i.Color.fromHex(\"#0E70C0\"),light:i.Color.fromHex(\"#0E70C0\"),hc:t.contrastBorder},r.localize(32,null)),t.editorErrorForeground=u(\"editorError.foreground\",{dark:\"#F48771\",light:\"#E51400\",hc:null},r.localize(33,null)),t.editorErrorBorder=u(\"editorError.border\",{dark:null,light:null,\nhc:i.Color.fromHex(\"#E47777\").transparent(.8)},r.localize(34,null)),t.editorWarningForeground=u(\"editorWarning.foreground\",{dark:\"#CCA700\",light:\"#E9A700\",hc:null},r.localize(35,null)),t.editorWarningBorder=u(\"editorWarning.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#FFCC00\").transparent(.8)},r.localize(36,null)),t.editorInfoForeground=u(\"editorInfo.foreground\",{dark:\"#75BEFF\",light:\"#75BEFF\",hc:null},r.localize(37,null)),t.editorInfoBorder=u(\"editorInfo.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#75BEFF\").transparent(.8)},r.localize(38,null)),t.editorHintForeground=u(\"editorHint.foreground\",{dark:i.Color.fromHex(\"#eeeeee\").transparent(.7),light:\"#6c6c6c\",hc:null},r.localize(39,null)),t.editorHintBorder=u(\"editorHint.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#eeeeee\").transparent(.8)},r.localize(40,null)),t.editorBackground=u(\"editor.background\",{light:\"#fffffe\",dark:\"#1E1E1E\",hc:i.Color.black},r.localize(41,null)),t.editorForeground=u(\"editor.foreground\",{light:\"#333333\",dark:\"#BBBBBB\",\nhc:i.Color.white},r.localize(42,null)),t.editorWidgetBackground=u(\"editorWidget.background\",{dark:\"#252526\",light:\"#F3F3F3\",hc:\"#0C141F\"},r.localize(43,null)),t.editorWidgetForeground=u(\"editorWidget.foreground\",{dark:t.foreground,light:t.foreground,hc:t.foreground},r.localize(44,null)),t.editorWidgetBorder=u(\"editorWidget.border\",{dark:\"#454545\",light:\"#C8C8C8\",hc:t.contrastBorder},r.localize(45,null)),t.editorWidgetResizeBorder=u(\"editorWidget.resizeBorder\",{light:null,dark:null,hc:null},r.localize(46,null)),t.editorSelectionBackground=u(\"editor.selectionBackground\",{light:\"#ADD6FF\",dark:\"#264F78\",hc:\"#f3f518\"},r.localize(47,null)),t.editorSelectionForeground=u(\"editor.selectionForeground\",{light:null,dark:null,hc:\"#000000\"},r.localize(48,null)),t.editorInactiveSelection=u(\"editor.inactiveSelectionBackground\",{light:h(t.editorSelectionBackground,.5),dark:h(t.editorSelectionBackground,.5),hc:h(t.editorSelectionBackground,.5)},r.localize(49,null),!0),\nt.editorSelectionHighlight=u(\"editor.selectionHighlightBackground\",{light:p(t.editorSelectionBackground,t.editorBackground,.3,.6),dark:p(t.editorSelectionBackground,t.editorBackground,.3,.6),hc:null},r.localize(50,null),!0),t.editorSelectionHighlightBorder=u(\"editor.selectionHighlightBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(51,null)),t.editorFindMatch=u(\"editor.findMatchBackground\",{light:\"#A8AC94\",dark:\"#515C6A\",hc:null},r.localize(52,null)),t.editorFindMatchHighlight=u(\"editor.findMatchHighlightBackground\",{light:\"#EA5C0055\",dark:\"#EA5C0055\",hc:null},r.localize(53,null),!0),t.editorFindRangeHighlight=u(\"editor.findRangeHighlightBackground\",{dark:\"#3a3d4166\",light:\"#b4b4b44d\",hc:null},r.localize(54,null),!0),t.editorFindMatchBorder=u(\"editor.findMatchBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(55,null)),t.editorFindMatchHighlightBorder=u(\"editor.findMatchHighlightBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(56,null)),\nt.editorFindRangeHighlightBorder=u(\"editor.findRangeHighlightBorder\",{dark:null,light:null,hc:h(t.activeContrastBorder,.4)},r.localize(57,null),!0),t.editorHoverHighlight=u(\"editor.hoverHighlightBackground\",{light:\"#ADD6FF26\",dark:\"#264f7840\",hc:\"#ADD6FF26\"},r.localize(58,null),!0),t.editorHoverBackground=u(\"editorHoverWidget.background\",{light:t.editorWidgetBackground,dark:t.editorWidgetBackground,hc:t.editorWidgetBackground},r.localize(59,null)),t.editorHoverForeground=u(\"editorHoverWidget.foreground\",{light:t.editorWidgetForeground,dark:t.editorWidgetForeground,hc:t.editorWidgetForeground},r.localize(60,null)),t.editorHoverBorder=u(\"editorHoverWidget.border\",{light:t.editorWidgetBorder,dark:t.editorWidgetBorder,hc:t.editorWidgetBorder},r.localize(61,null)),t.editorHoverStatusBarBackground=u(\"editorHoverWidget.statusBarBackground\",{dark:c(t.editorHoverBackground,.2),light:d(t.editorHoverBackground,.05),hc:t.editorWidgetBackground},r.localize(62,null)),\nt.editorActiveLinkForeground=u(\"editorLink.activeForeground\",{dark:\"#4E94CE\",light:i.Color.blue,hc:i.Color.cyan},r.localize(63,null)),t.editorLightBulbForeground=u(\"editorLightBulb.foreground\",{dark:\"#FFCC00\",light:\"#DDB100\",hc:\"#FFCC00\"},r.localize(64,null)),t.editorLightBulbAutoFixForeground=u(\"editorLightBulbAutoFix.foreground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},r.localize(65,null)),t.defaultInsertColor=new i.Color(new i.RGBA(155,185,85,.2)),t.defaultRemoveColor=new i.Color(new i.RGBA(255,0,0,.2)),t.diffInserted=u(\"diffEditor.insertedTextBackground\",{dark:t.defaultInsertColor,light:t.defaultInsertColor,hc:null},r.localize(66,null),!0),t.diffRemoved=u(\"diffEditor.removedTextBackground\",{dark:t.defaultRemoveColor,light:t.defaultRemoveColor,hc:null},r.localize(67,null),!0),t.diffInsertedOutline=u(\"diffEditor.insertedTextBorder\",{dark:null,light:null,hc:\"#33ff2eff\"},r.localize(68,null)),t.diffRemovedOutline=u(\"diffEditor.removedTextBorder\",{dark:null,light:null,hc:\"#FF008F\"},r.localize(69,null)),\nt.diffBorder=u(\"diffEditor.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(70,null)),t.listFocusBackground=u(\"list.focusBackground\",{dark:\"#062F4A\",light:\"#D6EBFF\",hc:null},r.localize(71,null)),t.listFocusForeground=u(\"list.focusForeground\",{dark:null,light:null,hc:null},r.localize(72,null)),t.listActiveSelectionBackground=u(\"list.activeSelectionBackground\",{dark:\"#094771\",light:\"#0074E8\",hc:null},r.localize(73,null)),t.listActiveSelectionForeground=u(\"list.activeSelectionForeground\",{dark:i.Color.white,light:i.Color.white,hc:null},r.localize(74,null)),t.listInactiveSelectionBackground=u(\"list.inactiveSelectionBackground\",{dark:\"#37373D\",light:\"#E4E6F1\",hc:null},r.localize(75,null)),t.listInactiveSelectionForeground=u(\"list.inactiveSelectionForeground\",{dark:null,light:null,hc:null},r.localize(76,null)),t.listInactiveFocusBackground=u(\"list.inactiveFocusBackground\",{dark:null,light:null,hc:null},r.localize(77,null)),t.listHoverBackground=u(\"list.hoverBackground\",{dark:\"#2A2D2E\",light:\"#F0F0F0\",\nhc:null},r.localize(78,null)),t.listHoverForeground=u(\"list.hoverForeground\",{dark:null,light:null,hc:null},r.localize(79,null)),t.listDropBackground=u(\"list.dropBackground\",{dark:t.listFocusBackground,light:t.listFocusBackground,hc:null},r.localize(80,null)),t.listHighlightForeground=u(\"list.highlightForeground\",{dark:\"#0097fb\",light:\"#0066BF\",hc:t.focusBorder},r.localize(81,null)),t.listFilterWidgetBackground=u(\"listFilterWidget.background\",{light:\"#efc1ad\",dark:\"#653723\",hc:i.Color.black},r.localize(82,null)),t.listFilterWidgetOutline=u(\"listFilterWidget.outline\",{dark:i.Color.transparent,light:i.Color.transparent,hc:\"#f38518\"},r.localize(83,null)),t.listFilterWidgetNoMatchesOutline=u(\"listFilterWidget.noMatchesOutline\",{dark:\"#BE1100\",light:\"#BE1100\",hc:t.contrastBorder},r.localize(84,null)),t.treeIndentGuidesStroke=u(\"tree.indentGuidesStroke\",{dark:\"#585858\",light:\"#a9a9a9\",hc:\"#a9a9a9\"},r.localize(85,null)),t.menuBorder=u(\"menu.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(86,null)),\nt.menuForeground=u(\"menu.foreground\",{dark:t.selectForeground,light:t.foreground,hc:t.selectForeground},r.localize(87,null)),t.menuBackground=u(\"menu.background\",{dark:t.selectBackground,light:t.selectBackground,hc:t.selectBackground},r.localize(88,null)),t.menuSelectionForeground=u(\"menu.selectionForeground\",{dark:t.listActiveSelectionForeground,light:t.listActiveSelectionForeground,hc:t.listActiveSelectionForeground},r.localize(89,null)),t.menuSelectionBackground=u(\"menu.selectionBackground\",{dark:t.listActiveSelectionBackground,light:t.listActiveSelectionBackground,hc:t.listActiveSelectionBackground},r.localize(90,null)),t.menuSelectionBorder=u(\"menu.selectionBorder\",{dark:null,light:null,hc:t.activeContrastBorder},r.localize(91,null)),t.menuSeparatorBackground=u(\"menu.separatorBackground\",{dark:\"#BBBBBB\",light:\"#888888\",hc:t.contrastBorder},r.localize(92,null)),t.snippetTabstopHighlightBackground=u(\"editor.snippetTabstopHighlightBackground\",{dark:new i.Color(new i.RGBA(124,124,124,.3)),\nlight:new i.Color(new i.RGBA(10,50,100,.2)),hc:new i.Color(new i.RGBA(124,124,124,.3))},r.localize(93,null)),t.snippetTabstopHighlightBorder=u(\"editor.snippetTabstopHighlightBorder\",{dark:null,light:null,hc:null},r.localize(94,null)),t.snippetFinalTabstopHighlightBackground=u(\"editor.snippetFinalTabstopHighlightBackground\",{dark:null,light:null,hc:null},r.localize(95,null)),t.snippetFinalTabstopHighlightBorder=u(\"editor.snippetFinalTabstopHighlightBorder\",{dark:\"#525252\",light:new i.Color(new i.RGBA(10,50,100,.5)),hc:\"#525252\"},r.localize(96,null)),t.overviewRulerFindMatchForeground=u(\"editorOverviewRuler.findMatchForeground\",{dark:\"#d186167e\",light:\"#d186167e\",hc:\"#AB5A00\"},r.localize(97,null),!0),t.overviewRulerSelectionHighlightForeground=u(\"editorOverviewRuler.selectionHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hc:\"#A0A0A0CC\"},r.localize(98,null),!0),t.minimapFindMatch=u(\"minimap.findMatchHighlight\",{light:\"#d18616\",dark:\"#d18616\",hc:\"#AB5A00\"},r.localize(99,null),!0),\nt.minimapSelection=u(\"minimap.selectionHighlight\",{light:\"#ADD6FF\",dark:\"#264F78\",hc:\"#ffffff\"},r.localize(100,null),!0),t.minimapError=u(\"minimap.errorHighlight\",{dark:new i.Color(new i.RGBA(255,18,18,.7)),light:new i.Color(new i.RGBA(255,18,18,.7)),hc:new i.Color(new i.RGBA(255,50,50,1))},r.localize(101,null)),t.minimapWarning=u(\"minimap.warningHighlight\",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningBorder},r.localize(102,null)),t.problemsErrorIconForeground=u(\"problemsErrorIcon.foreground\",{dark:t.editorErrorForeground,light:t.editorErrorForeground,hc:t.editorErrorForeground},r.localize(103,null)),t.problemsWarningIconForeground=u(\"problemsWarningIcon.foreground\",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningForeground},r.localize(104,null)),t.problemsInfoIconForeground=u(\"problemsInfoIcon.foreground\",{dark:t.editorInfoForeground,light:t.editorInfoForeground,hc:t.editorInfoForeground},r.localize(105,null)),t.darken=d,t.lighten=c,\nt.transparent=h,t.oneOf=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var n=0,i=e;n<i.length;n++){var o=g(i[n],t);if(o)return o}}},t.resolveColorValue=g,t.workbenchColorsSchemaId=\"vscode://schemas/workbench-colors\";var f=n.Registry.as(s.Extensions.JSONContribution);f.registerSchema(t.workbenchColorsSchemaId,l.getColorSchema());var m=new a.RunOnceScheduler((function(){return f.notifySchemaChanged(t.workbenchColorsSchemaId)}),200);l.onDidChangeSchema((function(){m.isScheduled()||m.schedule()}))})),define(n[97],i([0,1,20]),(function(e,t,n){\"use strict\";function i(e,t){var i=Object.create(null);for(var o in t){var r=t[o];r&&(i[o]=n.resolveColorValue(r,e))}return i}function o(e,t,n){function o(o){var r=i(e.getTheme(),t);\"function\"==typeof n?n(r):n.style(r)}return o(e.getTheme()),e.onThemeChange(o)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeStyles=i,t.attachStyler=o,t.attachBadgeStyler=function(e,t,i){return o(t,{\nbadgeBackground:i&&i.badgeBackground||n.badgeBackground,badgeForeground:i&&i.badgeForeground||n.badgeForeground,badgeBorder:n.contrastBorder},e)},t.attachQuickOpenStyler=function(e,t,i){return o(t,{foreground:i&&i.foreground||n.foreground,background:i&&i.background||n.editorBackground,borderColor:i&&i.borderColor||n.contrastBorder,widgetShadow:i&&i.widgetShadow||n.widgetShadow,progressBarBackground:i&&i.progressBarBackground||n.progressBarBackground,pickerGroupForeground:i&&i.pickerGroupForeground||n.pickerGroupForeground,pickerGroupBorder:i&&i.pickerGroupBorder||n.pickerGroupBorder,inputBackground:i&&i.inputBackground||n.inputBackground,inputForeground:i&&i.inputForeground||n.inputForeground,inputBorder:i&&i.inputBorder||n.inputBorder,inputValidationInfoBorder:i&&i.inputValidationInfoBorder||n.inputValidationInfoBorder,inputValidationInfoBackground:i&&i.inputValidationInfoBackground||n.inputValidationInfoBackground,\ninputValidationInfoForeground:i&&i.inputValidationInfoForeground||n.inputValidationInfoForeground,inputValidationWarningBorder:i&&i.inputValidationWarningBorder||n.inputValidationWarningBorder,inputValidationWarningBackground:i&&i.inputValidationWarningBackground||n.inputValidationWarningBackground,inputValidationWarningForeground:i&&i.inputValidationWarningForeground||n.inputValidationWarningForeground,inputValidationErrorBorder:i&&i.inputValidationErrorBorder||n.inputValidationErrorBorder,inputValidationErrorBackground:i&&i.inputValidationErrorBackground||n.inputValidationErrorBackground,inputValidationErrorForeground:i&&i.inputValidationErrorForeground||n.inputValidationErrorForeground,listFocusBackground:i&&i.listFocusBackground||n.listFocusBackground,listFocusForeground:i&&i.listFocusForeground||n.listFocusForeground,listActiveSelectionBackground:i&&i.listActiveSelectionBackground||n.darken(n.listActiveSelectionBackground,.1),\nlistActiveSelectionForeground:i&&i.listActiveSelectionForeground||n.listActiveSelectionForeground,listFocusAndSelectionBackground:i&&i.listFocusAndSelectionBackground||n.listActiveSelectionBackground,listFocusAndSelectionForeground:i&&i.listFocusAndSelectionForeground||n.listActiveSelectionForeground,listInactiveSelectionBackground:i&&i.listInactiveSelectionBackground||n.listInactiveSelectionBackground,listInactiveSelectionForeground:i&&i.listInactiveSelectionForeground||n.listInactiveSelectionForeground,listInactiveFocusBackground:i&&i.listInactiveFocusBackground||n.listInactiveFocusBackground,listHoverBackground:i&&i.listHoverBackground||n.listHoverBackground,listHoverForeground:i&&i.listHoverForeground||n.listHoverForeground,listDropBackground:i&&i.listDropBackground||n.listDropBackground,listFocusOutline:i&&i.listFocusOutline||n.activeContrastBorder,listSelectionOutline:i&&i.listSelectionOutline||n.activeContrastBorder,listHoverOutline:i&&i.listHoverOutline||n.activeContrastBorder},e)},\nt.attachListStyler=function(e,n,i){return o(n,l(l({},t.defaultListStyles),i||{}),e)},t.defaultListStyles={listFocusBackground:n.listFocusBackground,listFocusForeground:n.listFocusForeground,listActiveSelectionBackground:n.darken(n.listActiveSelectionBackground,.1),listActiveSelectionForeground:n.listActiveSelectionForeground,listFocusAndSelectionBackground:n.listActiveSelectionBackground,listFocusAndSelectionForeground:n.listActiveSelectionForeground,listInactiveSelectionBackground:n.listInactiveSelectionBackground,listInactiveSelectionForeground:n.listInactiveSelectionForeground,listInactiveFocusBackground:n.listInactiveFocusBackground,listHoverBackground:n.listHoverBackground,listHoverForeground:n.listHoverForeground,listDropBackground:n.listDropBackground,listFocusOutline:n.activeContrastBorder,listSelectionOutline:n.activeContrastBorder,listHoverOutline:n.activeContrastBorder,listFilterWidgetBackground:n.listFilterWidgetBackground,listFilterWidgetOutline:n.listFilterWidgetOutline,\nlistFilterWidgetNoMatchesOutline:n.listFilterWidgetNoMatchesOutline,listMatchesShadow:n.widgetShadow,treeIndentGuidesStroke:n.treeIndentGuidesStroke},t.defaultMenuStyles={shadowColor:n.widgetShadow,borderColor:n.menuBorder,foregroundColor:n.menuForeground,backgroundColor:n.menuBackground,selectionForegroundColor:n.menuSelectionForeground,selectionBackgroundColor:n.menuSelectionBackground,selectionBorderColor:n.menuSelectionBorder,separatorColor:n.menuSeparatorBackground},t.attachMenuStyler=function(e,n,i){return o(n,l(l({},t.defaultMenuStyles),i),e)}})),define(n[546],i([0,1,6,414,20,97]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n,s,a,l){this.codeEditor=e,this.themeService=l,this.visible=!1,this.domNode=document.createElement(\"div\"),this.quickOpenWidget=new i.QuickOpenWidget(this.domNode,{onOk:t,onCancel:n,onType:s},{inputPlaceHolder:void 0,inputAriaLabel:a.inputAriaLabel,keyboardSupport:!0}),\nthis.styler=r.attachQuickOpenStyler(this.quickOpenWidget,this.themeService,{pickerGroupForeground:o.foreground}),this.quickOpenWidget.create(),this.codeEditor.addOverlayWidget(this)}return e.prototype.setInput=function(e,t){this.quickOpenWidget.setInput(e,t)},e.prototype.getId=function(){return e.ID},e.prototype.getDomNode=function(){return this.domNode},e.prototype.destroy=function(){this.codeEditor.removeOverlayWidget(this),this.quickOpenWidget.dispose(),this.styler.dispose()},e.prototype.show=function(e){this.visible=!0;var t=this.codeEditor.getLayoutInfo();t&&this.quickOpenWidget.layout(new n.Dimension(t.width,t.height)),this.quickOpenWidget.show(e),this.codeEditor.layoutOverlayWidget(this)},e.prototype.getPosition=function(){return this.visible?{preference:2}:null},e.ID=\"editor.contrib.quickOpenEditorWidget\",e}();t.QuickOpenEditorWidget=s})),define(n[547],i([0,1,55,2,205,6,97,52,45,332]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){\nfunction e(e,t,n,i,o){this.contextViewService=e,this.telemetryService=t,this.notificationService=n,this.keybindingService=i,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}return e.prototype.configure=function(e){this.options=e},e.prototype.showContextMenu=function(e){var t,u=this,d=e.getActions();d.length&&(this.focusToReturn=document.activeElement,this.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,anchorAlignment:e.anchorAlignment,render:function(c){var h=e.getMenuClassName?e.getMenuClassName():\"\";h&&(c.className+=\" \"+h),u.options.blockMouse&&(u.block=c.appendChild(r.$(\".context-view-block\")));var p=new i.DisposableStore,g=e.actionRunner||new n.ActionRunner;return g.onDidBeforeRun(u.onActionRun,u,p),g.onDidRun(u.onDidActionRun,u,p),t=new o.Menu(c,d,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:g,getKeyBinding:e.getKeyBinding?e.getKeyBinding:function(e){\nreturn u.keybindingService.lookupKeybinding(e.id)}}),p.add(s.attachMenuStyler(t,u.themeService)),t.onDidCancel((function(){return u.contextViewService.hideContextView(!0)}),null,p),t.onDidBlur((function(){return u.contextViewService.hideContextView(!0)}),null,p),a.domEvent(window,r.EventType.BLUR)((function(){u.contextViewService.hideContextView(!0)}),null,p),a.domEvent(window,r.EventType.MOUSE_DOWN)((function(e){if(!e.defaultPrevented){var t=new l.StandardMouseEvent(e),n=t.target;if(!t.rightButton){for(;n;){if(n===c)return;n=n.parentElement}u.contextViewService.hideContextView(!0)}}}),null,p),i.combinedDisposable(p,t)},focus:function(){t&&t.focus(!!e.autoSelectFirstItem)},onHide:function(t){e.onHide&&e.onHide(!!t),u.block&&(r.removeNode(u.block),u.block=null),u.focusToReturn&&u.focusToReturn.focus()}}))},e.prototype.onActionRun=function(e){this.telemetryService&&this.telemetryService.publicLog2(\"workbenchActionExecuted\",{id:e.action.id,from:\"contextMenu\"}),this.contextViewService.hideContextView(!1),\nthis.focusToReturn&&this.focusToReturn.focus()},e.prototype.onDidActionRun=function(e){e.error&&this.notificationService&&this.notificationService.error(e.error)},e}();t.ContextMenuHandler=u})),define(n[14],i([0,1,11,2,42,4]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IThemeService=n.createDecorator(\"themeService\"),t.themeColorFromId=function(e){return{id:e}},t.DARK=\"dark\",t.HIGH_CONTRAST=\"hc\",t.getThemeTypeSelector=function(e){switch(e){case t.DARK:return\"vs-dark\";case t.HIGH_CONTRAST:return\"hc-black\";default:return\"vs\"}},t.Extensions={ThemingContribution:\"base.contributions.theming\"};var s=new(function(){function e(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new r.Emitter}return e.prototype.onThemeChange=function(e){var t=this;return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),i.toDisposable((function(){var n=t.themingParticipants.indexOf(e);t.themingParticipants.splice(n,1)}))\n},e.prototype.getThemingParticipants=function(){return this.themingParticipants},e}());o.Registry.add(t.Extensions.ThemingContribution,s),t.registerThemingParticipant=function(e){return s.onThemeChange(e)}})),define(n[548],i([0,1,6,2,5,25,334,68,48,14]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(e,t,n){this._parent=e,this._editorId=t,this.styleSheet=n,this._refCount=0}return e.prototype.ref=function(){this._refCount++},e.prototype.unref=function(){var e;this._refCount--,0===this._refCount&&(null===(e=this.styleSheet.parentNode)||void 0===e||e.removeChild(this.styleSheet),this._parent._removeEditorStyleSheets(this._editorId))},e}(),p=function(){function e(e){this.styleSheet=e}return e.prototype.ref=function(){},e.prototype.unref=function(){},e}(),f=function(e){function t(t,n){void 0===n&&(n=null);var i=e.call(this)||this;return i._decorationOptionProviders=new Map,i._editorStyleSheets=new Map,i._globalStyleSheet=n?new p(n):null,\ni._themeService=t,i}return r(t,e),t.prototype._getOrCreateGlobalStyleSheet=function(){return this._globalStyleSheet||(this._globalStyleSheet=new p(n.createStyleSheet())),this._globalStyleSheet},t.prototype._getOrCreateStyleSheet=function(e){if(!e)return this._getOrCreateGlobalStyleSheet();var t=e.getContainerDomNode();if(!n.isInShadowDOM(t))return this._getOrCreateGlobalStyleSheet();var i=e.getId();if(!this._editorStyleSheets.has(i)){var o=new c(this,i,n.createStyleSheet(t));this._editorStyleSheets.set(i,o)}return this._editorStyleSheets.get(i)},t.prototype._removeEditorStyleSheets=function(e){this._editorStyleSheets.delete(e)},t.prototype.registerDecorationType=function(e,t,n,i){var o=this._decorationOptionProviders.get(e);if(!o){var r=this._getOrCreateStyleSheet(i),s={styleSheet:r.styleSheet,key:e,parentTypeKey:n,options:t||Object.create(null)};o=n?new m(this._themeService,r,s):new v(this._themeService,r,s),this._decorationOptionProviders.set(e,o)}o.refCount++},t.prototype.removeDecorationType=function(e){\nvar t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((function(t){return t.removeDecorations(e)}))))},t.prototype.resolveDecorationOptions=function(e,t){var n=this._decorationOptionProviders.get(e);if(!n)throw new Error(\"Unknown decoration type key: \"+e);return n.getOptions(this,t)},t=h([g(0,d.IThemeService)],t)}(a.AbstractCodeEditorService);t.CodeEditorServiceImpl=f;var m=function(){function e(e,t,n){this._styleSheet=t,this._styleSheet.ref(),this._parentTypeKey=n.parentTypeKey,this.refCount=0,this._beforeContentRules=new y(3,n,e),this._afterContentRules=new y(4,n,e)}return e.prototype.getOptions=function(e,t){var n=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(n.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(n.afterContentClassName=this._afterContentRules.className),n},e.prototype.dispose=function(){\nthis._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null),this._styleSheet.unref()},e}(),v=function(){function e(e,t,n){var o=this;this._disposables=new i.DisposableStore,this._styleSheet=t,this._styleSheet.ref(),this.refCount=0;var r=function(t){var i=new y(t,n,e);if(o._disposables.add(i),i.hasContent)return i.className};this.className=r(0);var s,a=(s=new y(1,n,e),o._disposables.add(s),s.hasContent?{className:s.className,hasLetterSpacing:s.hasLetterSpacing}:null);a&&(this.inlineClassName=a.className,this.inlineClassNameAffectsLetterSpacing=a.hasLetterSpacing),this.beforeContentClassName=r(3),this.afterContentClassName=r(4),this.glyphMarginClassName=r(2);var l=n.options;this.isWholeLine=Boolean(l.isWholeLine),this.stickiness=l.rangeBehavior;var d=l.light&&l.light.overviewRulerColor||l.overviewRulerColor,c=l.dark&&l.dark.overviewRulerColor||l.overviewRulerColor\n;void 0===d&&void 0===c||(this.overviewRuler={color:d||c,darkColor:c||d,position:l.overviewRulerLane||u.OverviewRulerLane.Center})}return e.prototype.getOptions=function(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this},e.prototype.dispose=function(){this._disposables.dispose(),this._styleSheet.unref()},e}(),_={color:\"color:{0} !important;\",opacity:\"opacity:{0};\",backgroundColor:\"background-color:{0};\",outline:\"outline:{0};\",outlineColor:\"outline-color:{0};\",outlineStyle:\"outline-style:{0};\",outlineWidth:\"outline-width:{0};\",border:\"border:{0};\",borderColor:\"border-color:{0};\",borderRadius:\"border-radius:{0};\",borderSpacing:\"border-spacing:{0};\",borderStyle:\"border-style:{0};\",borderWidth:\"border-width:{0};\",fontStyle:\"font-style:{0};\",\nfontWeight:\"font-weight:{0};\",textDecoration:\"text-decoration:{0};\",cursor:\"cursor:{0};\",letterSpacing:\"letter-spacing:{0};\",gutterIconPath:\"background:{0} center center no-repeat;\",gutterIconSize:\"background-size:{0};\",contentText:\"content:'{0}';\",contentIconPath:\"content:{0};\",margin:\"margin:{0};\",width:\"width:{0};\",height:\"height:{0};\"},y=function(){function e(e,t,n){var i=this;this._theme=n.getTheme(),this._ruleType=e,this._providerArgs=t,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;var o=C.getClassName(this._providerArgs.key,e);this._providerArgs.parentTypeKey&&(o=o+\" \"+C.getClassName(this._providerArgs.parentTypeKey,e)),this._className=o,this._unThemedSelector=C.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,e),this._buildCSS(),this._usesThemeColors?this._themeListener=n.onThemeChange((function(e){i._theme=n.getTheme(),i._removeCSS(),i._buildCSS()})):this._themeListener=null}return e.prototype.dispose=function(){this._hasContent&&(this._removeCSS(),\nthis._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)},Object.defineProperty(e.prototype,\"hasContent\",{get:function(){return this._hasContent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasLetterSpacing\",{get:function(){return this._hasLetterSpacing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"className\",{get:function(){return this._className},enumerable:!0,configurable:!0}),e.prototype._buildCSS=function(){var e,t,n,i=this._providerArgs.options;switch(this._ruleType){case 0:e=this.getCSSTextForModelDecorationClassName(i),t=this.getCSSTextForModelDecorationClassName(i.light),n=this.getCSSTextForModelDecorationClassName(i.dark);break;case 1:e=this.getCSSTextForModelDecorationInlineClassName(i),t=this.getCSSTextForModelDecorationInlineClassName(i.light),n=this.getCSSTextForModelDecorationInlineClassName(i.dark);break;case 2:e=this.getCSSTextForModelDecorationGlyphMarginClassName(i),\nt=this.getCSSTextForModelDecorationGlyphMarginClassName(i.light),n=this.getCSSTextForModelDecorationGlyphMarginClassName(i.dark);break;case 3:e=this.getCSSTextForModelDecorationContentClassName(i.before),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.before),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.before);break;case 4:e=this.getCSSTextForModelDecorationContentClassName(i.after),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.after),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.after);break;default:throw new Error(\"Unknown rule type: \"+this._ruleType)}var o=this._providerArgs.styleSheet.sheet,r=!1;e.length>0&&(o.insertRule(this._unThemedSelector+\" {\"+e+\"}\",0),r=!0),t.length>0&&(o.insertRule(\".vs\"+this._unThemedSelector+\" {\"+t+\"}\",0),r=!0),n.length>0&&(o.insertRule(\".vs-dark\"+this._unThemedSelector+\", .hc-black\"+this._unThemedSelector+\" {\"+n+\"}\",0),r=!0),this._hasContent=r},e.prototype._removeCSS=function(){\nn.removeCSSRulesContainingSelector(this._unThemedSelector,this._providerArgs.styleSheet)},e.prototype.getCSSTextForModelDecorationClassName=function(e){if(!e)return\"\";var t=[];return this.collectCSSText(e,[\"backgroundColor\"],t),this.collectCSSText(e,[\"outline\",\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],t),this.collectBorderSettingsCSSText(e,t),t.join(\"\")},e.prototype.getCSSTextForModelDecorationInlineClassName=function(e){if(!e)return\"\";var t=[];return this.collectCSSText(e,[\"fontStyle\",\"fontWeight\",\"textDecoration\",\"cursor\",\"color\",\"opacity\",\"letterSpacing\"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join(\"\")},e.prototype.getCSSTextForModelDecorationContentClassName=function(e){if(!e)return\"\";var t=[];if(void 0!==e){if(this.collectBorderSettingsCSSText(e,t),void 0!==e.contentIconPath&&t.push(o.format(_.contentIconPath,n.asCSSUrl(s.URI.revive(e.contentIconPath)))),\"string\"==typeof e.contentText){var i=e.contentText.match(/^.*$/m)[0].replace(/['\\\\]/g,\"\\\\$&\");t.push(o.format(_.contentText,i))}\nthis.collectCSSText(e,[\"fontStyle\",\"fontWeight\",\"textDecoration\",\"color\",\"opacity\",\"backgroundColor\",\"margin\"],t),this.collectCSSText(e,[\"width\",\"height\"],t)&&t.push(\"display:inline-block;\")}return t.join(\"\")},e.prototype.getCSSTextForModelDecorationGlyphMarginClassName=function(e){if(!e)return\"\";var t=[];return void 0!==e.gutterIconPath&&(t.push(o.format(_.gutterIconPath,n.asCSSUrl(s.URI.revive(e.gutterIconPath)))),void 0!==e.gutterIconSize&&t.push(o.format(_.gutterIconSize,e.gutterIconSize))),t.join(\"\")},e.prototype.collectBorderSettingsCSSText=function(e,t){return!!this.collectCSSText(e,[\"border\",\"borderColor\",\"borderRadius\",\"borderSpacing\",\"borderStyle\",\"borderWidth\"],t)&&(t.push(o.format(\"box-sizing: border-box;\")),!0)},e.prototype.collectCSSText=function(e,t,n){for(var i=n.length,r=0,s=t;r<s.length;r++){var a=s[r],l=this.resolveValue(e[a]);\"string\"==typeof l&&n.push(o.format(_[a],l))}return n.length!==i},e.prototype.resolveValue=function(e){if(l.isThemeColor(e)){this._usesThemeColors=!0\n;var t=this._theme.getColor(e.id);return t?t.toString():\"transparent\"}return e},e}(),C=function(){function e(){}return e.getClassName=function(e,t){return\"ced-\"+e+\"-\"+t},e.getSelector=function(e,t,n){var i=\".monaco-editor .\"+this.getClassName(e,n);return t&&(i=i+\".\"+this.getClassName(t,n)),3===n?i+=\"::before\":4===n&&(i+=\"::after\"),i},e}()})),define(n[549],i([0,1,6,28,53,37,14]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t,r,l,u){var d=e.call(this,t)||this,c=d._context.configuration.options,h=c.get(78),p=c.get(56),g=c.get(27),f={listenOnDomNode:l.domNode,className:\"editor-scrollable \"+a.getThemeTypeSelector(t.theme.type),useShadows:!1,lazyRender:!0,vertical:h.vertical,horizontal:h.horizontal,verticalHasArrows:h.verticalHasArrows,horizontalHasArrows:h.horizontalHasArrows,verticalScrollbarSize:h.verticalScrollbarSize,verticalSliderSize:h.verticalSliderSize,horizontalScrollbarSize:h.horizontalScrollbarSize,\nhorizontalSliderSize:h.horizontalSliderSize,handleMouseWheel:h.handleMouseWheel,alwaysConsumeMouseWheel:h.alwaysConsumeMouseWheel,arrowSize:h.arrowSize,mouseWheelScrollSensitivity:p,fastScrollSensitivity:g};d.scrollbar=d._register(new o.SmoothScrollableElement(r.domNode,f,d._context.viewLayout.getScrollable())),s.PartFingerprints.write(d.scrollbar.getDomNode(),5),d.scrollbarDomNode=i.createFastDomNode(d.scrollbar.getDomNode()),d.scrollbarDomNode.setPosition(\"absolute\"),d._setLayout();var m=function(e,t,n){var i={};if(t){var o=e.scrollTop;o&&(i.scrollTop=d._context.viewLayout.getCurrentScrollTop()+o,e.scrollTop=0)}if(n){var r=e.scrollLeft;r&&(i.scrollLeft=d._context.viewLayout.getCurrentScrollLeft()+r,e.scrollLeft=0)}d._context.viewLayout.setScrollPositionNow(i)};return d._register(n.addDisposableListener(l.domNode,\"scroll\",(function(e){return m(l.domNode,!0,!0)}))),d._register(n.addDisposableListener(r.domNode,\"scroll\",(function(e){return m(r.domNode,!0,!1)}))),\nd._register(n.addDisposableListener(u.domNode,\"scroll\",(function(e){return m(u.domNode,!0,!1)}))),d._register(n.addDisposableListener(d.scrollbarDomNode.domNode,\"scroll\",(function(e){return m(d.scrollbarDomNode.domNode,!0,!1)}))),d}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._setLayout=function(){var e=this._context.configuration.options,t=e.get(107);this.scrollbarDomNode.setLeft(t.contentLeft),\"right\"===e.get(54).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)},t.prototype.getOverviewRulerLayoutInfo=function(){return this.scrollbar.getOverviewRulerLayoutInfo()},t.prototype.getDomNode=function(){return this.scrollbarDomNode},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)},t.prototype.onConfigurationChanged=function(e){if(e.hasChanged(78)||e.hasChanged(56)||e.hasChanged(27)){\nvar t=this._context.configuration.options,n=t.get(78),i=t.get(56),o=t.get(27),r={handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:o};this.scrollbar.updateOptions(r)}return e.hasChanged(107)&&this._setLayout(),!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onThemeChanged=function(e){return this.scrollbar.updateClassName(\"editor-scrollable \"+a.getThemeTypeSelector(this._context.theme.type)),!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this.scrollbar.renderNow()},t}(s.ViewPart);t.EditorScrollbar=l})),define(n[227],i([0,1,24,28,16,359,91,148,110,14,33]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=!!o.isNative||!(o.isLinux||n.isFirefox||n.isSafari),p=n.isEdgeOrIE,g=function(){function e(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=t}return Object.defineProperty(e.prototype,\"clientRectDeltaLeft\",{get:function(){\nreturn this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft},enumerable:!0,configurable:!0}),e}();t.DomReadingContext=g;var f=function(){function e(e,t){this.themeType=t;var n=e.options,i=n.get(34);this.renderWhitespace=n.get(74),this.renderControlCharacters=n.get(69),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.useMonospaceOptimizations=i.isMonospace&&!n.get(23),this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=n.get(49),this.stopRenderingLineAfter=n.get(88),this.fontLigatures=n.get(35)}return e.prototype.equals=function(e){\nreturn this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures},e}();t.ViewLineOptions=f;var m=function(){function e(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}return e.prototype.getDomNode=function(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null},e.prototype.setDomNode=function(e){if(!this._renderedViewLine)throw new Error(\"I have no rendered view line to set the dom node to...\");this._renderedViewLine.domNode=i.createFastDomNode(e)},e.prototype.onContentChanged=function(){this._isMaybeInvalid=!0},\ne.prototype.onTokensChanged=function(){this._isMaybeInvalid=!0},e.prototype.onDecorationsChanged=function(){this._isMaybeInvalid=!0},e.prototype.onOptionsChanged=function(e){this._isMaybeInvalid=!0,this._options=e},e.prototype.onSelectionChanged=function(){return!(!p&&this._options.themeType!==d.HIGH_CONTRAST&&\"selection\"!==this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)},e.prototype.renderLine=function(t,n,i,o){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;var r=i.getViewLineRenderingData(t),s=this._options,a=l.LineDecoration.filter(r.inlineDecorations,t,r.minColumn,r.maxColumn),g=null;if(p||s.themeType===d.HIGH_CONTRAST||\"selection\"===this._options.renderWhitespace)for(var f=0,m=i.selections;f<m.length;f++){var _=m[f];if(!(_.endLineNumber<t||_.startLineNumber>t)){var y=_.startLineNumber===t?_.startColumn:r.minColumn,b=_.endLineNumber===t?_.endColumn:r.maxColumn\n;y<b&&(\"selection\"!==this._options.renderWhitespace?a.push(new l.LineDecoration(y,b,\"inline-selected-text\",0)):(g||(g=[]),g.push(new u.LineRange(y-1,b-1))))}}var S=new u.RenderLineInput(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,a,r.tabSize,r.startVisibleColumn,s.spaceWidth,s.middotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==c.EditorFontLigatures.OFF,g);if(this._renderedViewLine&&this._renderedViewLine.input.equals(S))return!1;o.appendASCIIString('<div style=\"top:'),o.appendASCIIString(String(n)),o.appendASCIIString(\"px;height:\"),o.appendASCIIString(String(this._options.lineHeight)),o.appendASCIIString('px;\" class=\"'),o.appendASCIIString(e.CLASS_NAME),o.appendASCIIString('\">');var w=u.renderViewLine(S,o);o.appendASCIIString(\"</div>\");var E=null\n;return h&&r.isBasicASCII&&s.useMonospaceOptimizations&&0===w.containsForeignElements&&r.content.length<300&&S.lineTokens.getCount()<100&&(E=new v(this._renderedViewLine?this._renderedViewLine.domNode:null,S,w.characterMapping)),E||(E=C(this._renderedViewLine?this._renderedViewLine.domNode:null,S,w.characterMapping,w.containsRTL,w.containsForeignElements)),this._renderedViewLine=E,!0},e.prototype.layoutLine=function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))},e.prototype.getWidth=function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0},e.prototype.getWidthIsFast=function(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()},e.prototype.getVisibleRangesForRange=function(e,t,n){if(!this._renderedViewLine)return null;e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),\nt=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));var i=0|this._renderedViewLine.input.stopRenderingLineAfter,o=!1;-1!==i&&e>i+1&&t>i+1&&(o=!0),-1!==i&&e>i+1&&(e=i+1),-1!==i&&t>i+1&&(t=i+1);var r=this._renderedViewLine.getVisibleRangesForRange(e,t,n);return r&&r.length>0?new a.VisibleRanges(o,r):null},e.prototype.getColumnOfNodeOffset=function(e,t,n){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,n):1},e.CLASS_NAME=\"view-line\",e}();t.ViewLine=m;var v=function(){function e(e,t,n){this.domNode=e,this.input=t,this._characterMapping=n,this._charWidth=t.spaceWidth}return e.prototype.getWidth=function(){return this._getCharPosition(this._characterMapping.length)},e.prototype.getWidthIsFast=function(){return!0},e.prototype.getVisibleRangesForRange=function(e,t,n){var i=this._getCharPosition(e),o=this._getCharPosition(t);return[new a.HorizontalRange(i,o-i)]},e.prototype._getCharPosition=function(e){var t=this._characterMapping.getAbsoluteOffsets()\n;return 0===t.length?0:Math.round(this._charWidth*t[e-1])},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),_=function(){function e(e,t,n,i,o){if(this.domNode=e,this.input=t,this._characterMapping=n,this._isWhitespaceOnly=/^\\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!i||0===this._characterMapping.length){this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(var r=0,s=this._characterMapping.length;r<=s;r++)this._pixelOffsetCache[r]=-1}}return e.prototype._getReadingTarget=function(e){return e.domNode.firstChild},e.prototype.getWidth=function(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0},e.prototype.getWidthIsFast=function(){return-1!==this._cachedWidth},\ne.prototype.getVisibleRangesForRange=function(e,t,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){var i=this._readPixelOffset(this.domNode,e,n);if(-1===i)return null;var o=this._readPixelOffset(this.domNode,t,n);return-1===o?null:[new a.HorizontalRange(i,o-i)]}return this._readVisibleRangesForRange(this.domNode,e,t,n)},e.prototype._readVisibleRangesForRange=function(e,t,n,i){if(t===n){var o=this._readPixelOffset(e,t,i);return-1===o?null:[new a.HorizontalRange(o,0)]}return this._readRawVisibleRangesForRange(e,t,n,i)},e.prototype._readPixelOffset=function(e,t,n){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();var i=this._getReadingTarget(e);return i.firstChild?i.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){var o=this._pixelOffsetCache[t];if(-1!==o)return o;var r=this._actualReadPixelOffset(e,t,n);return this._pixelOffsetCache[t]=r,r}\nreturn this._actualReadPixelOffset(e,t,n)},e.prototype._actualReadPixelOffset=function(e,t,n){if(0===this._characterMapping.length){var i=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.endNode);return i&&0!==i.length?i[0].left:-1}if(t===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();var o=this._characterMapping.charOffsetToPartData(t-1),r=u.CharacterMapping.getPartIndex(o),a=u.CharacterMapping.getCharIndex(o),l=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r,a,r,a,n.clientRectDeltaLeft,n.endNode);return l&&0!==l.length?l[0].left:-1},e.prototype._readRawVisibleRangesForRange=function(e,t,n,i){if(1===t&&n===this._characterMapping.length)return[new a.HorizontalRange(0,this.getWidth())]\n;var o=this._characterMapping.charOffsetToPartData(t-1),r=u.CharacterMapping.getPartIndex(o),l=u.CharacterMapping.getCharIndex(o),d=this._characterMapping.charOffsetToPartData(n-1),c=u.CharacterMapping.getPartIndex(d),h=u.CharacterMapping.getCharIndex(d);return s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r,l,c,h,i.clientRectDeltaLeft,i.endNode)},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._readVisibleRangesForRange=function(t,n,i,o){var r=e.prototype._readVisibleRangesForRange.call(this,t,n,i,o);if(!r||0===r.length||n===i||1===n&&i===this._characterMapping.length)return r;if(!this.input.containsRTL){var s=this._readPixelOffset(t,i,o);if(-1!==s){var a=r[r.length-1];a.left<s&&(a.width=s-a.left)}}return r},t}(_),C=n.isWebKit?b:S;function b(e,t,n,i,o){\nreturn new y(e,t,n,i,o)}function S(e,t,n,i,o){return new _(e,t,n,i,o)}})),define(n[166],i([0,1,24,141,37,227,13,3,40,6]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t};t.PointerHandlerLastRenderData=c;var h=function(){function e(e,t,n,i,o,r){void 0===n&&(n=0),void 0===i&&(i=null),void 0===o&&(o=null),void 0===r&&(r=null),this.element=e,this.type=t,this.mouseColumn=n,this.position=i,!o&&i&&(o=new l.Range(i.lineNumber,i.column,i.lineNumber,i.column)),this.range=o,this.detail=r}return e._typeToString=function(e){return 1===e?\"TEXTAREA\":2===e?\"GUTTER_GLYPH_MARGIN\":3===e?\"GUTTER_LINE_NUMBERS\":4===e?\"GUTTER_LINE_DECORATIONS\":5===e?\"GUTTER_VIEW_ZONE\":6===e?\"CONTENT_TEXT\":7===e?\"CONTENT_EMPTY\":8===e?\"CONTENT_VIEW_ZONE\":9===e?\"CONTENT_WIDGET\":10===e?\"OVERVIEW_RULER\":11===e?\"SCROLLBAR\":12===e?\"OVERLAY_WIDGET\":\"UNKNOWN\"},e.toString=function(e){\nreturn this._typeToString(e.type)+\": \"+e.position+\" - \"+e.range+\" - \"+e.detail},e.prototype.toString=function(){return e.toString(this)},e}();t.MouseTarget=h;var p=function(){function e(){}return e.isTextArea=function(e){return 2===e.length&&3===e[0]&&6===e[1]},e.isChildOfViewLines=function(e){return e.length>=4&&3===e[0]&&7===e[3]},e.isStrictChildOfViewLines=function(e){return e.length>4&&3===e[0]&&7===e[3]},e.isChildOfScrollableElement=function(e){return e.length>=2&&3===e[0]&&5===e[1]},e.isChildOfMinimap=function(e){return e.length>=2&&3===e[0]&&8===e[1]},e.isChildOfContentWidgets=function(e){return e.length>=4&&3===e[0]&&1===e[3]},e.isChildOfOverflowingContentWidgets=function(e){return e.length>=1&&2===e[0]},e.isChildOfOverlayWidgets=function(e){return e.length>=2&&3===e[0]&&4===e[1]},e}(),g=function(){function e(e,t,n){this.model=e.model;var i=e.configuration.options;this.layoutInfo=i.get(107),this.viewDomNode=t.viewDomNode,this.lineHeight=i.get(49),\nthis.typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,this.lastRenderData=n,this._context=e,this._viewHelper=t}return e.prototype.getZoneAtCoord=function(t){return e.getZoneAtCoord(this._context,t)},e.getZoneAtCoord=function(e,t){var n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){var i=n.verticalOffset+n.height/2,o=e.model.getLineCount(),r=null,s=void 0,l=null;return n.afterLineNumber!==o&&(l=new a.Position(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(r=new a.Position(n.afterLineNumber,e.model.getLineMaxColumn(n.afterLineNumber))),s=null===l?r:null===r?l:t<i?r:l,{viewZoneId:n.id,afterLineNumber:n.afterLineNumber,positionBefore:r,positionAfter:l,position:s}}return null},e.prototype.getFullLineRangeAtCoord=function(e){if(this._context.viewLayout.isAfterLines(e)){var t=this._context.model.getLineCount(),n=this._context.model.getLineMaxColumn(t);return{range:new l.Range(t,n,t,n),isAfterLines:!0}}\nvar i=this._context.viewLayout.getLineNumberAtVerticalOffset(e),o=this._context.model.getLineMaxColumn(i);return{range:new l.Range(i,1,i,o),isAfterLines:!1}},e.prototype.getLineNumberAtVerticalOffset=function(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)},e.prototype.isAfterLines=function(e){return this._context.viewLayout.isAfterLines(e)},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)},e.prototype.findAttribute=function(t,n){return e._findAttribute(t,n,this._viewHelper.viewDomNode)},e._findAttribute=function(e,t,n){for(;e&&e!==document.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===n)return null;e=e.parentNode}return null},e.prototype.getLineWidth=function(e){return this._viewHelper.getLineWidth(e)},e.prototype.visibleRangeForPosition=function(e,t){return this._viewHelper.visibleRangeForPosition(e,t)},e.prototype.getPositionFromDOMInfo=function(e,t){\nreturn this._viewHelper.getPositionFromDOMInfo(e,t)},e.prototype.getCurrentScrollTop=function(){return this._context.viewLayout.getCurrentScrollTop()},e.prototype.getCurrentScrollLeft=function(){return this._context.viewLayout.getCurrentScrollLeft()},e}();t.HitTestContext=g;var f=function(e){function t(t,n,i,r){var s=e.call(this,t,n,i)||this;return s._ctx=t,r?(s.target=r,s.targetPath=o.PartFingerprints.collect(r,t.viewDomNode)):(s.target=null,s.targetPath=new Uint8Array(0)),s}return r(t,e),t.prototype.toString=function(){return\"pos(\"+this.pos.x+\",\"+this.pos.y+\"), editorPos(\"+this.editorPos.x+\",\"+this.editorPos.y+\"), mouseVerticalOffset: \"+this.mouseVerticalOffset+\", mouseContentHorizontalOffset: \"+this.mouseContentHorizontalOffset+\"\\n\\ttarget: \"+(this.target?this.target.outerHTML:null)},t.prototype.fulfill=function(e,t,n,i){void 0===t&&(t=null),void 0===n&&(n=null),void 0===i&&(i=null);var o=this.mouseColumn\n;return t&&t.column<this._ctx.model.getLineMaxColumn(t.lineNumber)&&(o=u.CursorColumns.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber),t.column,this._ctx.model.getOptions().tabSize)+1),new h(this.target,e,o,t,n,i)},t.prototype.withTarget=function(e){return new t(this._ctx,this.editorPos,this.pos,e)},t}((function(e,t,n){this.editorPos=t,this.pos=n,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+n.y-t.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+n.x-t.x-e.layoutInfo.contentLeft,this.isInMarginArea=n.x-t.x<e.layoutInfo.contentLeft&&n.x-t.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,_._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))})),m={isAfterLines:!0};function v(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var _=function(){function e(e,t){this._context=e,this._viewHelper=t}return e.prototype.mouseTargetIsWidget=function(e){\nvar t=e.target,n=o.PartFingerprints.collect(t,this._viewHelper.viewDomNode);return!(!p.isChildOfContentWidgets(n)&&!p.isChildOfOverflowingContentWidgets(n))||!!p.isChildOfOverlayWidgets(n)},e.prototype.createMouseTarget=function(t,n,i,o){var r=new g(this._context,this._viewHelper,t),s=new f(r,n,i,o);try{return e._createMouseTarget(r,s,!1)}catch(e){return s.fulfill(0)}},e._createMouseTarget=function(t,n,i){if(null===n.target){if(i)return n.fulfill(0);var o=e._doHitTest(t,n);return o.position?e.createMouseTargetFromHitTestPosition(t,n,o.position.lineNumber,o.position.column):this._createMouseTarget(t,n.withTarget(o.hitTarget),!0)}var r=n,s=null;return(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=s||e._hitTestContentWidget(t,r))||e._hitTestOverlayWidget(t,r))||e._hitTestMinimap(t,r))||e._hitTestScrollbarSlider(t,r))||e._hitTestViewZone(t,r))||e._hitTestMargin(t,r))||e._hitTestViewCursor(t,r))||e._hitTestTextArea(t,r))||e._hitTestViewLines(t,r,i))||e._hitTestScrollbar(t,r))||n.fulfill(0)},e._hitTestContentWidget=function(e,t){\nif(p.isChildOfContentWidgets(t.targetPath)||p.isChildOfOverflowingContentWidgets(t.targetPath)){var n=e.findAttribute(t.target,\"widgetId\");return n?t.fulfill(9,null,null,n):t.fulfill(0)}return null},e._hitTestOverlayWidget=function(e,t){if(p.isChildOfOverlayWidgets(t.targetPath)){var n=e.findAttribute(t.target,\"widgetId\");return n?t.fulfill(12,null,null,n):t.fulfill(0)}return null},e._hitTestViewCursor=function(e,t){if(t.target)for(var n=0,i=r=e.lastRenderData.lastViewCursorsRenderData;n<i.length;n++){var o=i[n];if(t.target===o.domNode)return t.fulfill(6,o.position)}if(t.isInContentArea)for(var r=e.lastRenderData.lastViewCursorsRenderData,s=t.mouseContentHorizontalOffset,a=t.mouseVerticalOffset,l=0,u=r;l<u.length;l++){if(!(s<(o=u[l]).contentLeft)&&!(s>o.contentLeft+o.width)){var d=e.getVerticalOffsetForLineNumber(o.position.lineNumber);if(d<=a&&a<=d+o.height)return t.fulfill(6,o.position)}}return null},e._hitTestViewZone=function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){\nvar i=t.isInContentArea?8:5;return t.fulfill(i,n.position,null,n)}return null},e._hitTestTextArea=function(e,t){return p.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfill(6,e.lastRenderData.lastTextareaPosition):t.fulfill(1,e.lastRenderData.lastTextareaPosition):null},e._hitTestMargin=function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),o=Math.abs(t.pos.x-t.editorPos.x),r={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};return(o-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(2,i,n.range,r):(o-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(3,i,n.range,r):(o-=e.layoutInfo.lineNumbersWidth,t.fulfill(4,i,n.range,r))}return null},e._hitTestViewLines=function(t,n,i){if(!p.isChildOfViewLines(n.targetPath))return null\n;if(t.isAfterLines(n.mouseVerticalOffset)){var o=t.model.getLineCount(),r=t.model.getLineMaxColumn(o);return n.fulfill(7,new a.Position(o,r),void 0,m)}if(i){if(p.isStrictChildOfViewLines(n.targetPath)){var s=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(0===t.model.getLineLength(s)){var l=t.getLineWidth(s),u=v(n.mouseContentHorizontalOffset-l);return n.fulfill(7,new a.Position(s,1),void 0,u)}var d=t.getLineWidth(s);if(n.mouseContentHorizontalOffset>=d){u=v(n.mouseContentHorizontalOffset-d);var c=new a.Position(s,t.model.getLineMaxColumn(s));return n.fulfill(7,c,void 0,u)}}return n.fulfill(0)}var h=e._doHitTest(t,n);return h.position?e.createMouseTargetFromHitTestPosition(t,n,h.position.lineNumber,h.position.column):this._createMouseTarget(t,n.withTarget(h.hitTarget),!0)},e._hitTestMinimap=function(e,t){if(p.isChildOfMinimap(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new a.Position(n,i))}return null},\ne._hitTestScrollbarSlider=function(e,t){if(p.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var n=t.target.className;if(n&&/\\b(slider|scrollbar)\\b/.test(n)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.model.getLineMaxColumn(i);return t.fulfill(11,new a.Position(i,o))}}return null},e._hitTestScrollbar=function(e,t){if(p.isChildOfScrollableElement(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new a.Position(n,i))}return null},e.prototype.getMouseColumn=function(t,n){var i=this._context.configuration.options,o=i.get(107),r=this._context.viewLayout.getCurrentScrollLeft()+n.x-t.x-o.contentLeft;return e._getMouseColumn(r,i.get(34).typicalHalfwidthCharacterWidth)},e._getMouseColumn=function(e,t){return e<0?1:Math.round(e/t)+1},e.createMouseTargetFromHitTestPosition=function(e,t,i,o){var r=new a.Position(i,o),s=e.getLineWidth(i);if(t.mouseContentHorizontalOffset>s){\nif(n.isEdge&&1===r.column){var u=v(t.mouseContentHorizontalOffset-s);return t.fulfill(7,new a.Position(i,e.model.getLineMaxColumn(i)),void 0,u)}var d=v(t.mouseContentHorizontalOffset-s);return t.fulfill(7,r,void 0,d)}var c=e.visibleRangeForPosition(i,o);if(!c)return t.fulfill(0,r);var h=c.left;if(t.mouseContentHorizontalOffset===h)return t.fulfill(6,r);var p=[];if(p.push({offset:c.left,column:o}),o>1){var g=e.visibleRangeForPosition(i,o-1);g&&p.push({offset:g.left,column:o-1})}if(o<e.model.getLineMaxColumn(i)){var f=e.visibleRangeForPosition(i,o+1);f&&p.push({offset:f.left,column:o+1})}p.sort((function(e,t){return e.offset-t.offset}));for(var m=1;m<p.length;m++){var _=p[m-1],y=p[m];if(_.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=y.offset){var C=new l.Range(i,_.column,i,y.column);return t.fulfill(6,r,C)}}return t.fulfill(6,r)},e._doHitTestWithCaretRangeFromPoint=function(e,t){\nvar n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.getVerticalOffsetForLineNumber(n)+Math.floor(e.lineHeight/2),r=t.pos.y+(o-t.mouseVerticalOffset);r<=t.editorPos.y&&(r=t.editorPos.y+1),r>=t.editorPos.y+e.layoutInfo.height&&(r=t.editorPos.y+e.layoutInfo.height-1);var s=new i.PageCoordinates(t.pos.x,r),a=this._actualDoHitTestWithCaretRangeFromPoint(e,s.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())},e._actualDoHitTestWithCaretRangeFromPoint=function(e,t){var n,i=d.getShadowRoot(e.viewDomNode);if(!(n=i?void 0===i.caretRangeFromPoint?y(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY))||!n.startContainer)return{position:null,hitTarget:null};var o=n.startContainer,r=null;if(o.nodeType===o.TEXT_NODE){var a=(u=(l=o.parentNode)?l.parentNode:null)?u.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===s.ViewLine.CLASS_NAME)return{\nposition:e.getPositionFromDOMInfo(l,n.startOffset),hitTarget:null};r=o.parentNode}else if(o.nodeType===o.ELEMENT_NODE){var l,u;if(((u=(l=o.parentNode)?l.parentNode:null)&&u.nodeType===u.ELEMENT_NODE?u.className:null)===s.ViewLine.CLASS_NAME)return{position:e.getPositionFromDOMInfo(o,o.textContent.length),hitTarget:null};r=o}return{position:null,hitTarget:r}},e._doHitTestWithCaretPositionFromPoint=function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,o=i?i.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===s.ViewLine.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}return{position:null,hitTarget:n.offsetNode}},e._doHitTestWithMoveToPoint=function(e,t){var n=null,i=null,o=document.body.createTextRange();try{o.moveToPoint(t.clientX,t.clientY)}catch(e){return{position:null,\nhitTarget:null}}o.collapse(!0);var r=o?o.parentElement():null,a=r?r.parentNode:null,l=a?a.parentNode:null;if((l&&l.nodeType===l.ELEMENT_NODE?l.className:\"\")===s.ViewLine.CLASS_NAME){var u=o.duplicate();u.moveToElementText(r),u.setEndPoint(\"EndToStart\",o),n=e.getPositionFromDOMInfo(r,u.text.length),u.moveToElementText(e.viewDomNode)}else i=r;return o.moveToElementText(e.viewDomNode),{position:n,hitTarget:i}},e._doHitTest=function(e,t){return\"function\"==typeof document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):document.body.createTextRange?this._doHitTestWithMoveToPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}},e}();function y(e,t,n){var i=document.createRange(),o=e.elementFromPoint(t,n);if(null!==o){for(;o&&o.firstChild&&o.firstChild.nodeType!==o.firstChild.TEXT_NODE;)o=o.lastChild\n;var r=o.getBoundingClientRect(),s=window.getComputedStyle(o,null).getPropertyValue(\"font\"),a=o.innerText,l=r.left,u=0,d=void 0;if(t>r.left+r.width)u=a.length;else for(var c=C.getInstance(),h=0;h<a.length+1;h++){if(t<(l+=d=c.getCharWidth(a.charAt(h),s)/2)){u=h;break}l+=d}i.setStart(o.firstChild,u),i.setEnd(o.firstChild,u)}return i}t.MouseTargetFactory=_,t.shadowCaretRangeFromPoint=y;var C=function(){function e(){this._cache={},this._canvas=document.createElement(\"canvas\")}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getCharWidth=function(e,t){var n=e+t;if(this._cache[n])return this._cache[n];var i=this._canvas.getContext(\"2d\");i.font=t;var o=i.measureText(e).width;return this._cache[n]=o,o},e._INSTANCE=null,e}()})),define(n[550],i([0,1,24,6,45,15,2,16,166,141,105,13,22,92]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";function f(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}\nObject.defineProperty(t,\"__esModule\",{value:!0}),t.createMouseMoveEventMerger=f;var m=function(e){function t(r,a,l){var h=e.call(this)||this;h._isFocused=!1,h._context=r,h.viewController=a,h.viewHelper=l,h.mouseTargetFactory=new u.MouseTargetFactory(h._context,l),h._mouseDownOperation=h._register(new v(h._context,h.viewController,h.viewHelper,(function(e,t){return h._createMouseTarget(e,t)}),(function(e){return h._getMouseColumn(e)}))),h._asyncFocus=h._register(new s.RunOnceScheduler((function(){return h.viewHelper.focusTextArea()}),0)),h.lastMouseLeaveTime=-1;var p=new d.EditorMouseEventFactory(h.viewHelper.viewDomNode);h._register(p.onContextMenu(h.viewHelper.viewDomNode,(function(e){return h._onContextMenu(e,!0)}))),h._register(p.onMouseMoveThrottled(h.viewHelper.viewDomNode,(function(e){return h._onMouseMove(e)}),f(h.mouseTargetFactory),t.MOUSE_MOVE_MINIMUM_TIME)),h._register(p.onMouseUp(h.viewHelper.viewDomNode,(function(e){return h._onMouseUp(e)}))),\nh._register(p.onMouseLeave(h.viewHelper.viewDomNode,(function(e){return h._onMouseLeave(e)}))),h._register(p.onMouseDown(h.viewHelper.viewDomNode,(function(e){return h._onMouseDown(e)})));return h._register(i.addDisposableListener(h.viewHelper.viewDomNode,n.isEdgeOrIE?\"mousewheel\":\"wheel\",(function(e){if(h.viewController.emitMouseWheel(e),h._context.configuration.options.get(57)){var t=new o.StandardWheelEvent(e);if(t.browserEvent.ctrlKey||t.browserEvent.metaKey){var n=c.EditorZoom.getZoomLevel(),i=t.deltaY>0?1:-1;c.EditorZoom.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}}),{capture:!0,passive:!1})),h._context.addEventHandler(h),h}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onCursorStateChanged=function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!1},t.prototype.onScrollChanged=function(e){\nreturn this._mouseDownOperation.onScrollChanged(),!1},t.prototype.getTargetAtClientPoint=function(e,t){var n=new d.ClientCoordinates(e,t).toPageCoordinates(),i=d.createEditorPagePosition(this.viewHelper.viewDomNode);return n.y<i.y||n.y>i.y+i.height||n.x<i.x||n.x>i.x+i.width?null:this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),i,n,null)},t.prototype._createMouseTarget=function(e,t){return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,t?e.target:null)},t.prototype._getMouseColumn=function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)},t.prototype._onContextMenu=function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})},t.prototype._onMouseMove=function(e){this._mouseDownOperation.isActive()||(e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)}))},t.prototype._onMouseLeave=function(e){\nthis.lastMouseLeaveTime=(new Date).getTime(),this.viewController.emitMouseLeave({event:e,target:null})},t.prototype._onMouseUp=function(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})},t.prototype._onMouseDown=function(e){var t=this,i=this._createMouseTarget(e,!0),o=6===i.type||7===i.type,r=2===i.type||3===i.type||4===i.type,s=3===i.type,a=this._context.configuration.options.get(83),u=8===i.type||5===i.type,d=9===i.type,c=e.leftButton||e.middleButton;l.isMacintosh&&e.leftButton&&e.ctrlKey&&(c=!1);var h=function(){n.isIE&&!t._isFocused?t._asyncFocus.schedule():(e.preventDefault(),t.viewHelper.focusTextArea())};if(c&&(o||s&&a))h(),this._mouseDownOperation.start(i.type,e);else if(r)e.preventDefault();else if(u){var p=i.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(p.viewZoneId)&&(h(),this._mouseDownOperation.start(i.type,e),e.preventDefault())}else d&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(h(),e.preventDefault())\n;this.viewController.emitMouseDown({event:e,target:i})},t.MOUSE_MOVE_MINIMUM_TIME=100,t}(g.ViewEventHandler);t.MouseHandler=m;var v=function(e){function t(t,n,i,o,r){var a=e.call(this)||this;return a._context=t,a._viewController=n,a._viewHelper=i,a._createMouseTarget=o,a._getMouseColumn=r,a._mouseMoveMonitor=a._register(new d.GlobalEditorMouseMoveMonitor(a._viewHelper.viewDomNode)),a._onScrollTimeout=a._register(new s.TimeoutTimer),a._mouseState=new _,a._currentSelection=new p.Selection(1,1,1,1),a._isActive=!1,a._lastMouseEvent=null,a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.isActive=function(){return this._isActive},t.prototype._onMouseDownThenMove=function(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);var t=this._findMousePosition(e,!0);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))},t.prototype.start=function(e,t){var n=this;this._lastMouseEvent=t,\nthis._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);var i=this._findMousePosition(t,!0);if(i&&i.position){this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;var o=this._context.configuration.options;if(!o.get(68)&&o.get(24)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===i.type&&i.position&&this._currentSelection.containsPosition(i.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,f(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){var e=n._findMousePosition(n._lastMouseEvent,!0);n._viewController.emitMouseDrop({event:n._lastMouseEvent,target:e?n._createMouseTarget(n._lastMouseEvent,!0):null}),n._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,\nthis._mouseMoveMonitor.startMonitoring(t.target,t.buttons,f(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){return n._stop()})))}},t.prototype._stop=function(){this._isActive=!1,this._onScrollTimeout.cancel()},t.prototype.onScrollChanged=function(){var e=this;this._isActive&&this._onScrollTimeout.setIfNotSet((function(){if(e._lastMouseEvent){var t=e._findMousePosition(e._lastMouseEvent,!1);t&&(e._mouseState.isDragAndDrop||e._dispatchMouse(t,!0))}}),10)},t.prototype.onCursorStateChanged=function(e){this._currentSelection=e.selections[0]},t.prototype._getPositionOutsideEditor=function(e){var t=e.editorPos,n=this._context.model,i=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posy<t.y){var r=Math.max(i.getCurrentScrollTop()-(t.y-e.posy),0);if(a=u.HitTestContext.getZoneAtCoord(this._context,r))if(l=this._helpPositionJumpOverViewZone(a))return new u.MouseTarget(null,13,o,l);var s=i.getLineNumberAtVerticalOffset(r);return new u.MouseTarget(null,13,o,new h.Position(s,1))}\nif(e.posy>t.y+t.height){var a,l;r=i.getCurrentScrollTop()+(e.posy-t.y);if(a=u.HitTestContext.getZoneAtCoord(this._context,r))if(l=this._helpPositionJumpOverViewZone(a))return new u.MouseTarget(null,13,o,l);var d=i.getLineNumberAtVerticalOffset(r);return new u.MouseTarget(null,13,o,new h.Position(d,n.getLineMaxColumn(d)))}var c=i.getLineNumberAtVerticalOffset(i.getCurrentScrollTop()+(e.posy-t.y));return e.posx<t.x?new u.MouseTarget(null,13,o,new h.Position(c,1)):e.posx>t.x+t.width?new u.MouseTarget(null,13,o,new h.Position(c,n.getLineMaxColumn(c))):null},t.prototype._findMousePosition=function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(8===i.type||5===i.type){var o=this._helpPositionJumpOverViewZone(i.detail);if(o)return new u.MouseTarget(i.element,i.type,i.mouseColumn,o,null,i.detail)}return i},t.prototype._helpPositionJumpOverViewZone=function(e){\nvar t=new h.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,i=e.positionAfter;return n&&i?n.isBefore(t)?n:i:null},t.prototype._dispatchMouse=function(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})},t}(a.Disposable),_=function(){function e(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}\nreturn Object.defineProperty(e.prototype,\"altKey\",{get:function(){return this._altKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ctrlKey\",{get:function(){return this._ctrlKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"metaKey\",{get:function(){return this._metaKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"shiftKey\",{get:function(){return this._shiftKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"leftButton\",{get:function(){return this._leftButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"middleButton\",{get:function(){return this._middleButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"startedOnLineNumbers\",{get:function(){return this._startedOnLineNumbers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"count\",{get:function(){return this._lastMouseDownCount},enumerable:!0,configurable:!0}),e.prototype.setModifiers=function(e){\nthis._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey},e.prototype.setStartButtons=function(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton},e.prototype.setStartedOnLineNumbers=function(e){this._startedOnLineNumbers=e},e.prototype.trySetCount=function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)},e.CLEAR_MOUSE_DOWN_COUNT_TIME=400,e}()})),define(n[551],i([0,1,6,16,57,2,550,141,88]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";function d(e,t){var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,\nn.translationX+=e.translationX),n}Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.msTouchAction=\"none\",r.viewHelper.linesContentDomNode.style.msContentZooming=\"none\",r._installGestureHandlerTimeout=window.setTimeout((function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener(\"MSPointerDown\",(function(n){var i=n.pointerType;i!==(n.MSPOINTER_TYPE_MOUSE||\"mouse\")?i===(n.MSPOINTER_TYPE_TOUCH||\"touch\")?(r._lastPointerType=\"touch\",e.addPointer(n.pointerId)):(r._lastPointerType=\"pen\",t.addPointer(n.pointerId)):r._lastPointerType=\"mouse\"})),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,\"MSGestureChange\",(function(e){return r._onGestureChange(e)}),d)),\nr._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,\"MSGestureTap\",(function(e){return r._onCaptureGestureTap(e)}),!0))}}),100),r._lastPointerType=\"mouse\",r}return r(t,e),t.prototype._onMouseDown=function(t){\"mouse\"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout((function(){t.viewHelper.focusTextArea()}))},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(a.MouseHandler),h=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.touchAction=\"none\",\nr._installGestureHandlerTimeout=window.setTimeout((function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener(\"pointerdown\",(function(n){var i=n.pointerType;\"mouse\"!==i?\"touch\"===i?(r._lastPointerType=\"touch\",e.addPointer(n.pointerId)):(r._lastPointerType=\"pen\",t.addPointer(n.pointerId)):r._lastPointerType=\"mouse\"})),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,\"MSGestureChange\",(function(e){return r._onGestureChange(e)}),d)),r._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,\"MSGestureTap\",(function(e){return r._onCaptureGestureTap(e)}),!0))}}),100),r._lastPointerType=\"mouse\",r}return r(t,e),t.prototype._onMouseDown=function(t){\"mouse\"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){\nvar t=this,n=new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout((function(){t.viewHelper.focusTextArea()}))},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(a.MouseHandler),p=function(e){function t(t,i,r){var s=e.call(this,t,i,r)||this;s._register(o.Gesture.addTarget(s.viewHelper.linesContentDomNode)),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Tap,(function(e){return s.onTap(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Change,(function(e){return s.onChange(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Contextmenu,(function(e){\nreturn s._onContextMenu(new l.EditorMouseEvent(e,s.viewHelper.viewDomNode),!1)}))),s._lastPointerType=\"mouse\",s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,\"pointerdown\",(function(e){var t=e.pointerType;s._lastPointerType=\"mouse\"!==t?\"touch\"===t?\"touch\":\"pen\":\"mouse\"})));var u=new l.EditorPointerEventFactory(s.viewHelper.viewDomNode);return s._register(u.onPointerMoveThrottled(s.viewHelper.viewDomNode,(function(e){return s._onMouseMove(e)}),a.createMouseMoveEventMerger(s.mouseTargetFactory),a.MouseHandler.MOUSE_MOVE_MINIMUM_TIME)),s._register(u.onPointerUp(s.viewHelper.viewDomNode,(function(e){return s._onMouseUp(e)}))),s._register(u.onPointerLeave(s.viewHelper.viewDomNode,(function(e){return s._onMouseLeave(e)}))),s._register(u.onPointerDown(s.viewHelper.viewDomNode,(function(e){return s._onMouseDown(e)}))),s}return r(t,e),t.prototype.onTap=function(e){if(e.initialTarget&&this.viewHelper.linesContentDomNode.contains(e.initialTarget)){e.preventDefault(),this.viewHelper.focusTextArea()\n;var t=this._createMouseTarget(new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1})}},t.prototype.onChange=function(e){\"touch\"===this._lastPointerType&&this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype._onMouseDown=function(t){t.target&&this.viewHelper.linesContentDomNode.contains(t.target)&&\"touch\"===this._lastPointerType||e.prototype._onMouseDown.call(this,t)},t}(a.MouseHandler);t.PointerEventHandler=p;var g=function(e){function t(t,i,r){var s=e.call(this,t,i,r)||this;return s._register(o.Gesture.addTarget(s.viewHelper.linesContentDomNode)),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Tap,(function(e){return s.onTap(e)}))),\ns._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Change,(function(e){return s.onChange(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Contextmenu,(function(e){return s._onContextMenu(new l.EditorMouseEvent(e,s.viewHelper.viewDomNode),!1)}))),s}return r(t,e),t.prototype.onTap=function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.moveTo(t.position)},t.prototype.onChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t}(a.MouseHandler),f=function(e){function t(t,n,o){var r=e.call(this)||this\n;return window.navigator.msPointerEnabled?r.handler=r._register(new c(t,n,o)):i.isIOS&&u.BrowserFeatures.pointerEvents?r.handler=r._register(new p(t,n,o)):window.TouchEvent?r.handler=r._register(new g(t,n,o)):window.navigator.pointerEnabled||window.PointerEvent?r.handler=r._register(new h(t,n,o)):r.handler=r._register(new a.MouseHandler(t,n,o)),r}return r(t,e),t.prototype.getTargetAtClientPoint=function(e,t){return this.handler.getTargetAtClientPoint(e,t)},t}(s.Disposable);t.PointerHandler=f})),define(n[228],i([0,1,2,166]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var n=e.call(this)||this;return n.onDidContentSizeChange=null,n.onDidScroll=null,n.onDidGainFocus=null,n.onDidLoseFocus=null,n.onKeyDown=null,n.onKeyUp=null,n.onContextMenu=null,n.onMouseMove=null,n.onMouseLeave=null,n.onMouseUp=null,n.onMouseDown=null,n.onMouseDrag=null,n.onMouseDrop=null,n.onMouseWheel=null,n._viewModel=t,n}return r(t,e),\nt.prototype.emitContentSizeChange=function(e){this.onDidContentSizeChange&&this.onDidContentSizeChange(e)},t.prototype.emitScrollChanged=function(e){this.onDidScroll&&this.onDidScroll(e)},t.prototype.emitViewFocusGained=function(){this.onDidGainFocus&&this.onDidGainFocus(void 0)},t.prototype.emitViewFocusLost=function(){this.onDidLoseFocus&&this.onDidLoseFocus(void 0)},t.prototype.emitKeyDown=function(e){this.onKeyDown&&this.onKeyDown(e)},t.prototype.emitKeyUp=function(e){this.onKeyUp&&this.onKeyUp(e)},t.prototype.emitContextMenu=function(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseMove=function(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseLeave=function(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseUp=function(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDown=function(e){\nthis.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrag=function(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrop=function(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseWheel=function(e){this.onMouseWheel&&this.onMouseWheel(e)},t.prototype._convertViewToModelMouseEvent=function(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e},t.prototype._convertViewToModelMouseTarget=function(e){return t.convertViewToModelMouseTarget(e,this._viewModel.coordinatesConverter)},t.convertViewToModelMouseTarget=function(e,t){return new s(e.element,e.type,e.mouseColumn,e.position?t.convertViewPositionToModelPosition(e.position):null,e.range?t.convertViewRangeToModelRange(e.range):null,e.detail)},t}(n.Disposable);t.ViewOutgoingEvents=o;var s=function(){function e(e,t,n,i,o,r){this.element=e,this.type=t,this.mouseColumn=n,this.position=i,\nthis.range=o,this.detail=r}return e.prototype.toString=function(){return i.MouseTarget.toString(this)},e}()})),define(n[552],i([0,1,15,60,143,37,227,13,3,91,290]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){this._currentVisibleRange=new u.Range(1,1,1,1)}return e.prototype.getCurrentVisibleRange=function(){return this._currentVisibleRange},e.prototype.setCurrentVisibleRange=function(e){this._currentVisibleRange=e},e}(),h=function(e,t,n,i,o,r){this.lineNumber=e,this.startColumn=t,this.endColumn=n,this.startScrollTop=i,this.stopScrollTop=o,this.scrollType=r},p=function(e){function t(t,r){var l=e.call(this,t)||this;l._linesContent=r,l._textRangeRestingSpot=document.createElement(\"div\"),l._visibleLines=new o.VisibleLinesCollection(l),l.domNode=l._visibleLines.domNode;var u=l._context.configuration,d=l._context.configuration.options,h=d.get(34),p=d.get(108);return l._lineHeight=d.get(49),\nl._typicalHalfwidthCharacterWidth=h.typicalHalfwidthCharacterWidth,l._isViewportWrapping=p.isViewportWrapping,l._revealHorizontalRightPadding=d.get(75),l._cursorSurroundingLines=d.get(19),l._cursorSurroundingLinesStyle=d.get(20),l._canUseLayerHinting=!d.get(22),l._viewLineOptions=new a.ViewLineOptions(u,l._context.theme.type),s.PartFingerprints.write(l.domNode,7),l.domNode.setClassName(\"view-lines\"),i.Configuration.applyFontInfo(l.domNode,h),l._maxLineWidth=0,l._asyncUpdateLineWidths=new n.RunOnceScheduler((function(){l._updateLineWidthsSlow()}),200),l._lastRenderedData=new c,l._horizontalRevealRequest=null,l}return r(t,e),t.prototype.dispose=function(){this._asyncUpdateLineWidths.dispose(),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new a.ViewLine(this._viewLineOptions)},t.prototype.onConfigurationChanged=function(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(108)&&(this._maxLineWidth=0)\n;var t=this._context.configuration.options,n=t.get(34),o=t.get(108);return this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._isViewportWrapping=o.isViewportWrapping,this._revealHorizontalRightPadding=t.get(75),this._cursorSurroundingLines=t.get(19),this._cursorSurroundingLinesStyle=t.get(20),this._canUseLayerHinting=!t.get(22),i.Configuration.applyFontInfo(this.domNode,n),this._onOptionsMaybeChanged(),e.hasChanged(107)&&(this._maxLineWidth=0),!0},t.prototype._onOptionsMaybeChanged=function(){var e=this._context.configuration,t=new a.ViewLineOptions(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),o=n;o<=i;o++){this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions)}return!0}return!1},t.prototype.onCursorStateChanged=function(e){\nfor(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,o=t;o<=n;o++)i=this._visibleLines.getVisibleLine(o).onSelectionChanged()||i;return i},t.prototype.onDecorationsChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0},t.prototype.onFlushed=function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onRevealRangeRequest=function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.range,e.verticalType),n=this._context.viewLayout.validateScrollPosition({scrollTop:t})\n;e.revealHorizontal?e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:this._horizontalRevealRequest=new h(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):this._horizontalRevealRequest=null;var i=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop);return 0===e.scrollType&&i>this._lineHeight?this._context.viewLayout.setScrollPositionSmooth(n):this._context.viewLayout.setScrollPositionNow(n),!0},t.prototype.onScrollChanged=function(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){var t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>n)&&(this._horizontalRevealRequest=null)}\nreturn this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._context.viewLayout.onMaxLineWidthChanged(this._maxLineWidth),this._visibleLines.onZonesChanged(e)},t.prototype.onThemeChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.getPositionFromDOMInfo=function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new l.Position(i,1);var o=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(i<o||i>r)return null;var s=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),a=this._context.model.getLineMinColumn(i);return s<a&&(s=a),new l.Position(i,s)},t.prototype._getViewLineDomNode=function(e){\nfor(;e&&1===e.nodeType;){if(e.className===a.ViewLine.CLASS_NAME)return e;e=e.parentElement}return null},t.prototype._getLineNumberFor=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){if(e===this._visibleLines.getVisibleLine(i).getDomNode())return i}return-1},t.prototype.getLineWidth=function(e){var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();return e<t||e>n?-1:this._visibleLines.getVisibleLine(e).getWidth()},t.prototype.linesVisibleRangesForRange=function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber,i=u.Range.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!i)return null;var o=[],r=0,s=new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),c=0;t&&(c=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new l.Position(i.startLineNumber,1)).lineNumber)\n;for(var h=this._visibleLines.getStartLineNumber(),p=this._visibleLines.getEndLineNumber(),g=i.startLineNumber;g<=i.endLineNumber;g++)if(!(g<h||g>p)){var f=g===i.startLineNumber?i.startColumn:1,m=g===i.endLineNumber?i.endColumn:this._context.model.getLineMaxColumn(g),v=this._visibleLines.getVisibleLine(g).getVisibleRangesForRange(f,m,s);if(v){if(t&&g<n)c!==(c=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new l.Position(g+1,1)).lineNumber)&&(v.ranges[v.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth);o[r++]=new d.LineVisibleRanges(v.outsideRenderedLine,g,v.ranges)}}return 0===r?null:o},t.prototype._visibleRangesForLineRange=function(e,t,n){return this.shouldRender()?null:e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(t,n,new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot))},t.prototype.visibleRangeForPosition=function(e){\nvar t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new d.HorizontalPosition(t.outsideRenderedLine,t.ranges[0].left):null},t.prototype.updateLineWidths=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidthsFast=function(){return this._updateLineWidths(!0)},t.prototype._updateLineWidthsSlow=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidths=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=1,o=!0,r=t;r<=n;r++){var s=this._visibleLines.getVisibleLine(r);!e||s.getWidthIsFast()?i=Math.max(i,s.getWidth()):o=!1}return o&&1===t&&n===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(i),o},t.prototype.prepareRender=function(){throw new Error(\"Not supported\")},t.prototype.render=function(){throw new Error(\"Not supported\")},t.prototype.renderText=function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),\nthis.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){var t=this._horizontalRevealRequest.lineNumber,n=this._horizontalRevealRequest.startColumn,i=this._horizontalRevealRequest.endColumn,o=this._horizontalRevealRequest.scrollType;if(e.startLineNumber<=t&&t<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();var r=this._computeScrollLeftToRevealRange(t,n,i);this._isViewportWrapping||this._ensureMaxLineWidth(r.maxHorizontalOffset),0===o?this._context.viewLayout.setScrollPositionSmooth({scrollLeft:r.scrollLeft}):this._context.viewLayout.setScrollPositionNow({scrollLeft:r.scrollLeft})}}this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain(\"strict\");var s=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-s),\nthis._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())},t.prototype._ensureMaxLineWidth=function(e){var t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewLayout.onMaxLineWidthChanged(this._maxLineWidth))},t.prototype._computeScrollTopToRevealRange=function(e,t,n,i){var o,r,s,a=e.top,l=e.height,u=a+l;if(o=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),r=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight,!(\"mouse\"===t&&\"default\"===this._cursorSurroundingLinesStyle)){var d=Math.min(l/this._lineHeight/2,this._cursorSurroundingLines);o-=d*this._lineHeight,r+=Math.max(0,d-1)*this._lineHeight}if(0!==i&&4!==i||(r+=this._lineHeight),r-o>l)s=o;else if(1===i||2===i)if(2===i&&a<=o&&r<=u)s=a;else{var c=(o+r)/2;s=Math.max(0,c-l/2)}else s=this._computeMinimumScrolling(a,u,o,r,3===i,4===i);return s},t.prototype._computeScrollLeftToRevealRange=function(e,n,i){\nvar o=0,r=this._context.viewLayout.getCurrentViewport(),s=r.left,a=s+r.width,l=this._visibleRangesForLineRange(e,n,i),u=1073741824,d=0;if(!l)return{scrollLeft:s,maxHorizontalOffset:o};for(var c=0,h=l.ranges;c<h.length;c++){var p=h[c];p.left<u&&(u=p.left),p.left+p.width>d&&(d=p.left+p.width)}return o=d,u=Math.max(0,u-t.HORIZONTAL_EXTRA_PX),d+=this._revealHorizontalRightPadding,{scrollLeft:this._computeMinimumScrolling(s,a,u,d),maxHorizontalOffset:o}},t.prototype._computeMinimumScrolling=function(e,t,n,i,o,r){o=!!o,r=!!r;var s=(t|=0)-(e|=0);return(i|=0)-(n|=0)<s?o?n:r?Math.max(0,i-s):n<e?n:i>t?Math.max(0,i-s):e:n},t.HORIZONTAL_EXTRA_PX=30,t}(s.ViewPart);t.ViewLines=p})),define(n[553],i([0,1,6,28,78,16,5,143,37,33,3,215,81,20,14,57,337,48,102,293]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y){\"use strict\";function C(e,t){return 1===e?2*t:3*t}function b(e,t){return 1*t}Object.defineProperty(t,\"__esModule\",{value:!0});var S=140,w=function(){function e(e){\nvar t=this,n=e.options,i=n.get(105),o=n.get(107),r=n.get(34);this.renderMinimap=0|o.renderMinimap,this.scrollBeyondLastLine=n.get(80);var s=n.get(54);this.showSlider=s.showSlider,this.fontScale=Math.round(s.scale*i),this.charRenderer=y.once((function(){return v.MinimapCharRendererFactory.create(t.fontScale,r.fontFamily)})),this.pixelRatio=i,this.typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this.lineHeight=n.get(49),this.minimapLeft=o.minimapLeft,this.minimapWidth=o.minimapWidth,this.minimapHeight=o.height,this.canvasInnerWidth=Math.floor(i*this.minimapWidth),this.canvasInnerHeight=Math.floor(i*this.minimapHeight),this.canvasOuterWidth=this.canvasInnerWidth/i,this.canvasOuterHeight=this.canvasInnerHeight/i}return e.prototype.equals=function(e){\nreturn this.renderMinimap===e.renderMinimap&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.fontScale===e.fontScale&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight},e}(),E=function(){function e(e,t,n,i,o,r,s){this.scrollTop=e,this.scrollHeight=t,this._computedSliderRatio=n,this.sliderTop=i,this.sliderHeight=o,this.startLineNumber=r,this.endLineNumber=s}return e.prototype.getDesiredScrollTopFromDelta=function(e){var t=this.sliderTop+e;return Math.round(t/this._computedSliderRatio)},e.prototype.getDesiredScrollTopFromTouchLocation=function(e){\nreturn Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)},e.create=function(t,n,i,o,r,s,a,l,u){var d,c,h=t.pixelRatio,p=C(t.renderMinimap,t.fontScale),g=Math.floor(t.canvasInnerHeight/p),f=t.lineHeight;if(r&&i!==s){var m=i-n+1;d=Math.floor(m*p/h)}else{var v=o/f;d=Math.floor(v*p/h)}c=t.scrollBeyondLastLine?(s-1)*p/h:Math.max(0,s*p/h-d);var _=(c=Math.min(t.minimapHeight-d,c))/(l-o),y=a*_,b=0;t.scrollBeyondLastLine&&(b=v=o/f);if(g>=s+b)return new e(a,l,_,y,d,S=1,s);var S=Math.max(1,Math.floor(n-y*h/p));return u&&u.scrollHeight===l&&(u.scrollTop>a&&(S=Math.min(S,u.startLineNumber)),u.scrollTop<a&&(S=Math.max(S,u.startLineNumber))),new e(a,l,_,y,d,S,Math.min(s,S+g-1))},e}(),L=function(){function e(e){this.dy=e}return e.prototype.onContentChanged=function(){this.dy=-1},e.prototype.onTokensChanged=function(){this.dy=-1},e.INVALID=new e(-1),e}(),D=function(){function e(e,t,n){this.renderedLayout=e,this._imageData=t,this._renderedLines=new l.RenderedLinesCollection((function(){return L.INVALID})),\nthis._renderedLines._set(e.startLineNumber,n)}return e.prototype.linesEquals=function(e){if(!this.scrollEquals(e))return!1;for(var t=this._renderedLines._get().lines,n=0,i=t.length;n<i;n++)if(-1===t[n].dy)return!1;return!0},e.prototype.scrollEquals=function(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber},e.prototype._get=function(){var e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}},e.prototype.onLinesChanged=function(e){return this._renderedLines.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){this._renderedLines.onLinesDeleted(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesInserted=function(e){this._renderedLines.onLinesInserted(e.fromLineNumber,e.toLineNumber)},e.prototype.onTokensChanged=function(e){return this._renderedLines.onTokensChanged(e.ranges)},e}(),N=function(){function e(t,n,i,o){\nthis._backgroundFillData=e._createBackgroundFillData(n,i,o),this._buffers=[t.createImageData(n,i),t.createImageData(n,i)],this._lastUsedBuffer=0}return e.prototype.getBuffer=function(){this._lastUsedBuffer=1-this._lastUsedBuffer;var e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e},e._createBackgroundFillData=function(e,t,n){for(var i=n.r,o=n.g,r=n.b,s=new Uint8ClampedArray(e*t*4),a=0,l=0;l<t;l++)for(var u=0;u<e;u++)s[a]=i,s[a+1]=o,s[a+2]=r,s[a+3]=255,a+=4;return s},e}(),x=function(e){function t(t){var r=e.call(this,t)||this;return r._selections=[],r._renderDecorations=!1,r._gestureInProgress=!1,r._options=new w(r._context.configuration),r._lastRenderData=null,r._buffers=null,r._selectionColor=r._context.theme.getColor(g.minimapSelection),r._domNode=i.createFastDomNode(document.createElement(\"div\")),u.PartFingerprints.write(r._domNode,8),r._domNode.setClassName(r._getMinimapDomNodeClassName()),r._domNode.setPosition(\"absolute\"),r._domNode.setAttribute(\"role\",\"presentation\"),\nr._domNode.setAttribute(\"aria-hidden\",\"true\"),r._shadow=i.createFastDomNode(document.createElement(\"div\")),r._shadow.setClassName(\"minimap-shadow-hidden\"),r._domNode.appendChild(r._shadow),r._canvas=i.createFastDomNode(document.createElement(\"canvas\")),r._canvas.setPosition(\"absolute\"),r._canvas.setLeft(0),r._domNode.appendChild(r._canvas),r._decorationsCanvas=i.createFastDomNode(document.createElement(\"canvas\")),r._decorationsCanvas.setPosition(\"absolute\"),r._decorationsCanvas.setClassName(\"minimap-decorations-layer\"),r._decorationsCanvas.setLeft(0),r._domNode.appendChild(r._decorationsCanvas),r._slider=i.createFastDomNode(document.createElement(\"div\")),r._slider.setPosition(\"absolute\"),r._slider.setClassName(\"minimap-slider\"),r._slider.setLayerHinting(!0),r._slider.setContain(\"strict\"),r._domNode.appendChild(r._slider),r._sliderHorizontal=i.createFastDomNode(document.createElement(\"div\")),r._sliderHorizontal.setPosition(\"absolute\"),r._sliderHorizontal.setClassName(\"minimap-slider-horizontal\"),\nr._slider.appendChild(r._sliderHorizontal),r._tokensColorTracker=h.MinimapTokensColorTracker.getInstance(),r._applyLayout(),r._mouseDownListener=n.addStandardDisposableListener(r._domNode.domNode,\"mousedown\",(function(e){e.preventDefault();var t=r._options.renderMinimap;if(0!==t&&r._lastRenderData){var n=C(t,r._options.fontScale),i=r._options.pixelRatio*e.browserEvent.offsetY,o=Math.floor(i/n)+r._lastRenderData.renderedLayout.startLineNumber;o=Math.min(o,r._context.model.getLineCount()),r._context.privateViewEventBus.emit(new p.ViewRevealRangeRequestEvent(\"mouse\",new c.Range(o,1,o,1),1,!1,0))}})),r._sliderMouseMoveMonitor=new o.GlobalMouseMoveMonitor,r._sliderMouseDownListener=n.addStandardDisposableListener(r._slider.domNode,\"mousedown\",(function(e){if(e.preventDefault(),e.stopPropagation(),e.leftButton&&r._lastRenderData){var t=e.posy,n=e.posx,i=r._lastRenderData.renderedLayout;r._slider.toggleClassName(\"active\",!0),\nr._sliderMouseMoveMonitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){var o=Math.abs(e.posx-n);if(s.isWindows&&o>S)r._context.viewLayout.setScrollPositionNow({scrollTop:i.scrollTop});else{var a=e.posy-t;r._context.viewLayout.setScrollPositionNow({scrollTop:i.getDesiredScrollTopFromDelta(a)})}}),(function(){r._slider.toggleClassName(\"active\",!1)}))}})),r._gestureDisposable=m.Gesture.addTarget(r._domNode.domNode),r._sliderTouchStartListener=n.addDisposableListener(r._domNode.domNode,m.EventType.Start,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&(r._slider.toggleClassName(\"active\",!0),r._gestureInProgress=!0,r.scrollDueToTouchEvent(e))})),r._sliderTouchMoveListener=n.addStandardDisposableListener(r._domNode.domNode,m.EventType.Change,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&r._gestureInProgress&&r.scrollDueToTouchEvent(e)})),\nr._sliderTouchEndListener=n.addStandardDisposableListener(r._domNode.domNode,m.EventType.End,(function(e){e.preventDefault(),e.stopPropagation(),r._gestureInProgress=!1,r._slider.toggleClassName(\"active\",!1)})),r}return r(t,e),t.prototype.scrollDueToTouchEvent=function(e){var t=this._domNode.domNode.getBoundingClientRect().top,n=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._context.viewLayout.setScrollPositionNow({scrollTop:n})},t.prototype.dispose=function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),e.prototype.dispose.call(this)},t.prototype._getMinimapDomNodeClassName=function(){return\"always\"===this._options.showSlider?\"minimap slider-always\":\"minimap slider-mouseover\"},t.prototype.getDomNode=function(){return this._domNode},\nt.prototype._applyLayout=function(){this._domNode.setLeft(this._options.minimapLeft),this._domNode.setWidth(this._options.minimapWidth),this._domNode.setHeight(this._options.minimapHeight),this._shadow.setHeight(this._options.minimapHeight),this._canvas.setWidth(this._options.canvasOuterWidth),this._canvas.setHeight(this._options.canvasOuterHeight),this._canvas.domNode.width=this._options.canvasInnerWidth,this._canvas.domNode.height=this._options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._options.canvasInnerHeight,this._slider.setWidth(this._options.minimapWidth)},t.prototype._getBuffer=function(){\nreturn this._buffers||this._options.canvasInnerWidth>0&&this._options.canvasInnerHeight>0&&(this._buffers=new N(this._canvas.domNode.getContext(\"2d\"),this._options.canvasInnerWidth,this._options.canvasInnerHeight,this._tokensColorTracker.getColor(2))),this._buffers?this._buffers.getBuffer():null},t.prototype._onOptionsMaybeChanged=function(){var e=new w(this._context.configuration);return!this._options.equals(e)&&(this._options=e,this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName()),!0)},t.prototype.onConfigurationChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections,this._renderDecorations=!0,!0},t.prototype.onFlushed=function(e){return this._lastRenderData=null,!0},t.prototype.onLinesChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){\nreturn this._lastRenderData&&this._lastRenderData.onLinesDeleted(e),!0},t.prototype.onLinesInserted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e),!0},t.prototype.onScrollChanged=function(e){return this._renderDecorations=!0,!0},t.prototype.onTokensChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)},t.prototype.onTokensColorsChanged=function(e){return this._lastRenderData=null,this._buffers=null,!0},t.prototype.onZonesChanged=function(e){return this._lastRenderData=null,!0},t.prototype.onDecorationsChanged=function(e){return this._renderDecorations=!0,!0},t.prototype.onThemeChanged=function(e){return this._context.model.invalidateMinimapColorCache(),this._selectionColor=this._context.theme.getColor(g.minimapSelection),this._renderDecorations=!0,!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){if(0===this._options.renderMinimap)return this._shadow.setClassName(\"minimap-shadow-hidden\"),\nthis._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName(\"minimap-shadow-hidden\"):this._shadow.setClassName(\"minimap-shadow-visible\");var t=E.create(this._options,e.visibleRange.startLineNumber,e.visibleRange.endLineNumber,e.viewportHeight,e.viewportData.whitespaceViewportData.length>0,this._context.model.getLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._options.typicalHalfwidthCharacterWidth,i=Math.min(this._options.minimapWidth,Math.round(n*b(this._options.renderMinimap,this._options.fontScale)/this._options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)},\nt.prototype.renderDecorations=function(e){if(this._renderDecorations){this._renderDecorations=!1;var t=this._context.model.getDecorationsInViewport(new c.Range(e.startLineNumber,1,e.endLineNumber,this._context.model.getLineMaxColumn(e.endLineNumber))),n=this._options,i=n.renderMinimap,o=n.canvasInnerWidth,r=n.canvasInnerHeight,s=C(i,this._options.fontScale),a=b(0,this._options.fontScale),l=this._context.model.getOptions().tabSize,u=this._decorationsCanvas.domNode.getContext(\"2d\");u.clearRect(0,0,o,r);for(var d=new Map,h=0;h<this._selections.length;h++)for(var p=this._selections[h],g=p.startLineNumber;g<=p.endLineNumber;g++)this.renderDecorationOnLine(u,d,p,this._selectionColor,e,g,s,s,l,a);for(h=0;h<t.length;h++){var f=t[h];if(f.options.minimap){var m=f.options.minimap.getColor(this._context.theme);for(g=f.range.startLineNumber;g<=f.range.endLineNumber;g++)switch(f.options.minimap.position){case _.MinimapPosition.Inline:this.renderDecorationOnLine(u,d,f.range,m,e,g,s,s,l,a);continue\n;case _.MinimapPosition.Gutter:var v=(g-e.startLineNumber)*s;this.renderDecoration(u,m,2,v,2,s);continue}}}}},t.prototype.renderDecorationOnLine=function(e,t,n,i,o,r,s,l,u,c){var h=(r-o.startLineNumber)*l;if(!(h+s<0||h>this._options.canvasInnerHeight)){var p=t.get(r),g=!p;if(!p){var f=this._context.model.getLineContent(r);p=[d.MINIMAP_GUTTER_WIDTH];for(var m=1;m<f.length+1;m++){var v=f.charCodeAt(m-1),_=9===v?u*c:a.isFullWidthCharacter(v)?2*c:c;p[m]=p[m-1]+_}t.set(r,p)}var y=n.startColumn,C=n.endColumn,b=n.startLineNumber,S=n.endLineNumber,w=b===r?p[y-1]:d.MINIMAP_GUTTER_WIDTH,E=S>r?p.length-1:C-1;if(E>0){var L=p[E]-w||2;this.renderDecoration(e,i,w,h,L,s)}g&&this.renderLineHighlight(e,i,h,s)}},t.prototype.renderLineHighlight=function(e,t,n,i){e.fillStyle=t&&t.transparent(.5).toString()||\"\",e.fillRect(d.MINIMAP_GUTTER_WIDTH,n,e.canvas.width,i)},t.prototype.renderDecoration=function(e,t,n,i,o,r){e.fillStyle=t&&t.toString()||\"\",e.fillRect(n,i,o,r)},t.prototype.renderLines=function(e){\nvar n=this._options.renderMinimap,i=this._options.charRenderer(),o=e.startLineNumber,r=e.endLineNumber,s=C(n,this._options.fontScale);if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var a=this._lastRenderData._get();return new D(e,a.imageData,a.lines)}var l=this._getBuffer();if(!l)return null;for(var u=t._renderUntouchedLines(l,o,r,s,this._lastRenderData),d=u[0],c=u[1],h=u[2],p=this._context.model.getMinimapLinesRenderingData(o,r,h),g=p.tabSize,f=this._tokensColorTracker.getColor(2),m=this._tokensColorTracker.backgroundIsLight(),v=0,_=[],y=0,b=r-o+1;y<b;y++)h[y]&&t._renderLine(l,f,m,n,this._tokensColorTracker,i,v,g,p.data[y],this._options.fontScale),_[y]=new L(v),v+=s;var S=-1===d?0:d,w=(-1===c?l.height:c)-S;return this._canvas.domNode.getContext(\"2d\").putImageData(l,0,0,0,S,l.width,w),new D(e,l,_)},t._renderUntouchedLines=function(e,t,n,i,o){var r=[];if(!o){for(var s=0,a=n-t+1;s<a;s++)r[s]=!0;return[-1,-1,r]}\nfor(var l=o._get(),u=l.imageData.data,d=l.rendLineNumberStart,c=l.lines,h=c.length,p=e.width,g=e.data,f=(n-t+1)*i*p*4,m=-1,v=-1,_=-1,y=-1,C=-1,b=-1,S=0,w=t;w<=n;w++){var E=w-t,L=w-d,D=L>=0&&L<h?c[L].dy:-1;if(-1!==D){var N=D*p*4,x=(D+i)*p*4,I=S*p*4,M=(S+i)*p*4;y===N&&b===I?(y=x,b=M):(-1!==_&&(g.set(u.subarray(_,y),C),-1===m&&0===_&&_===C&&(m=y),-1===v&&y===f&&_===C&&(v=_)),_=N,y=x,C=I,b=M),r[E]=!1,S+=i}else r[E]=!0,S+=i}return-1!==_&&(g.set(u.subarray(_,y),C),-1===m&&0===_&&_===C&&(m=y),-1===v&&y===f&&_===C&&(v=_)),[-1===m?-1:m/(4*p),-1===v?-1:v/(4*p),r]},t._renderLine=function(e,t,n,i,o,r,s,l,u,c){for(var h=u.content,p=u.tokens,g=b(0,c),f=e.width-g,m=d.MINIMAP_GUTTER_WIDTH,v=0,_=0,y=0,C=p.getCount();y<C;y++)for(var S=p.getEndOffset(y),w=p.getForeground(y),E=o.getColor(w);v<S;v++){if(m>f)return;var L=h.charCodeAt(v);if(9===L){var D=l-(v+_)%l;_+=D-1,m+=D*g}else if(32===L)m+=g;else for(var N=a.isFullWidthCharacter(L)?2:1,x=0;x<N;x++)if(2===i?r.blockRenderChar(e,m,s,E,t,n):r.renderChar(e,m,s,L,E,t,c,n),\n(m+=g)>f)return}},t}(u.ViewPart);t.Minimap=x,f.registerThemingParticipant((function(e,t){var n=e.getColor(g.scrollbarSliderBackground);if(n){var i=n.transparent(.5);t.addRule(\".monaco-editor .minimap-slider, .monaco-editor .minimap-slider .minimap-slider-horizontal { background: \"+i+\"; }\")}var o=e.getColor(g.scrollbarSliderHoverBackground);if(o){var r=o.transparent(.5);t.addRule(\".monaco-editor .minimap-slider:hover, .monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: \"+r+\"; }\")}var s=e.getColor(g.scrollbarSliderActiveBackground);if(s){var a=s.transparent(.5);t.addRule(\".monaco-editor .minimap-slider.active, .monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: \"+a+\"; }\")}var l=e.getColor(g.scrollbarShadow);l&&t.addRule(\".monaco-editor .minimap-shadow-visible { box-shadow: \"+l+\" -6px 0 6px -6px inset; }\")}))})),define(n[554],i([0,1,28,37,20,14,296]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){\nfunction t(t){var i=e.call(this,t)||this;i._scrollTop=0,i._width=0,i._updateWidth(),i._shouldShow=!1;var o=i._context.configuration.options.get(78);return i._useShadows=o.useShadows,i._domNode=n.createFastDomNode(document.createElement(\"div\")),i._domNode.setAttribute(\"role\",\"presentation\"),i._domNode.setAttribute(\"aria-hidden\",\"true\"),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._updateShouldShow=function(){var e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)},t.prototype.getDomNode=function(){return this._domNode},t.prototype._updateWidth=function(){var e=this._context.configuration.options.get(107);0===e.renderMinimap||e.minimapWidth>0&&0===e.minimapLeft?this._width=e.width:this._width=e.width-e.minimapWidth-e.verticalScrollbarWidth},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(78);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0},\nt.prototype.onScrollChanged=function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?\"scroll-decoration\":\"\")},t}(i.ViewPart);t.ScrollDecorationViewPart=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.scrollbarShadow);n&&t.addRule(\".monaco-editor .scroll-decoration { box-shadow: \"+n+\" 0 6px 6px -6px inset; }\")}))})),define(n[555],i([0,1,24,82,20,14,297]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null},l=function(e,t){this.lineNumber=e,this.ranges=t};function u(e){return new a(e)}function d(e){return new l(e.lineNumber,e.ranges.map(u))}var c=n.isEdgeOrIE,h=function(e){function t(t){var n=e.call(this)||this;n._previousFrameVisibleRangesWithStyle=[],n._context=t;var i=n._context.configuration.options\n;return n._lineHeight=i.get(49),n._roundedSelection=i.get(76),n._typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,n._selections=[],n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(49),this._roundedSelection=t.get(76),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},\nt.prototype.onZonesChanged=function(e){return!0},t.prototype._visibleRangesHaveGaps=function(e){for(var t=0,n=e.length;t<n;t++){if(e[t].ranges.length>1)return!0}return!1},t.prototype._enrichVisibleRangesWithStyle=function(e,t,n){var i=this._typicalHalfwidthCharacterWidth/4,o=null,r=null;if(n&&n.length>0&&t.length>0){var s=t[0].lineNumber;if(s===e.startLineNumber)for(var a=0;!o&&a<n.length;a++)n[a].lineNumber===s&&(o=n[a].ranges[0]);var l=t[t.length-1].lineNumber;if(l===e.endLineNumber)for(a=n.length-1;!r&&a>=0;a--)n[a].lineNumber===l&&(r=n[a].ranges[0]);o&&!o.startStyle&&(o=null),r&&!r.startStyle&&(r=null)}a=0;for(var u=t.length;a<u;a++){var d=t[a].ranges[0],c=d.left,h=d.left+d.width,g={top:0,bottom:0},f={top:0,bottom:0};if(a>0){var m=t[a-1].ranges[0].left,v=t[a-1].ranges[0].left+t[a-1].ranges[0].width;p(c-m)<i?g.top=2:c>m&&(g.top=1),p(h-v)<i?f.top=2:m<h&&h<v&&(f.top=1)}else o&&(g.top=o.startStyle.top,f.top=o.endStyle.top);if(a+1<u){var _=t[a+1].ranges[0].left,y=t[a+1].ranges[0].left+t[a+1].ranges[0].width\n;p(c-_)<i?g.bottom=2:_<c&&c<y&&(g.bottom=1),p(h-y)<i?f.bottom=2:h<y&&(f.bottom=1)}else r&&(g.bottom=r.startStyle.bottom,f.bottom=r.endStyle.bottom);d.startStyle=g,d.endStyle=f}},t.prototype._getVisibleRangesWithStyle=function(e,t,n){var i=(t.linesVisibleRangesForRange(e,!0)||[]).map(d),o=this._visibleRangesHaveGaps(i);return c||o||!this._roundedSelection||this._enrichVisibleRangesWithStyle(t.visibleRange,i,n),i},t.prototype._createSelectionPiece=function(e,t,n,i,o){return'<div class=\"cslr '+n+'\" style=\"top:'+e.toString()+\"px;left:\"+i.toString()+\"px;width:\"+o.toString()+\"px;height:\"+t+'px;\"></div>'},t.prototype._actualRenderOneSelection=function(e,n,i,o){if(0!==o.length)for(var r=!!o[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=o[0].lineNumber,u=o[o.length-1].lineNumber,d=0,c=o.length;d<c;d++){for(var h=o[d],p=h.lineNumber,g=p-n,f=i&&(p===u||p===l)?a:s,m=i&&p===l?1:0,v=\"\",_=\"\",y=0,C=h.ranges.length;y<C;y++){var b=h.ranges[y];if(r){var S=b.startStyle,w=b.endStyle\n;if(1===S.top||1===S.bottom){v+=this._createSelectionPiece(m,f,t.SELECTION_CLASS_NAME,b.left-t.ROUNDED_PIECE_WIDTH,t.ROUNDED_PIECE_WIDTH);var E=t.EDITOR_BACKGROUND_CLASS_NAME;1===S.top&&(E+=\" \"+t.SELECTION_TOP_RIGHT),1===S.bottom&&(E+=\" \"+t.SELECTION_BOTTOM_RIGHT),v+=this._createSelectionPiece(m,f,E,b.left-t.ROUNDED_PIECE_WIDTH,t.ROUNDED_PIECE_WIDTH)}if(1===w.top||1===w.bottom){v+=this._createSelectionPiece(m,f,t.SELECTION_CLASS_NAME,b.left+b.width,t.ROUNDED_PIECE_WIDTH);var L=t.EDITOR_BACKGROUND_CLASS_NAME;1===w.top&&(L+=\" \"+t.SELECTION_TOP_LEFT),1===w.bottom&&(L+=\" \"+t.SELECTION_BOTTOM_LEFT),v+=this._createSelectionPiece(m,f,L,b.left+b.width,t.ROUNDED_PIECE_WIDTH)}}var D=t.SELECTION_CLASS_NAME;if(r){S=b.startStyle,w=b.endStyle;0===S.top&&(D+=\" \"+t.SELECTION_TOP_LEFT),0===S.bottom&&(D+=\" \"+t.SELECTION_BOTTOM_LEFT),0===w.top&&(D+=\" \"+t.SELECTION_TOP_RIGHT),0===w.bottom&&(D+=\" \"+t.SELECTION_BOTTOM_RIGHT)}_+=this._createSelectionPiece(m,f,D,b.left,b.width)}e[g][0]+=v,e[g][1]+=_}},\nt.prototype.prepareRender=function(e){for(var t=[],n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,o=n;o<=i;o++){t[o-n]=[\"\",\"\"]}for(var r=[],s=0,a=this._selections.length;s<a;s++){var l=this._selections[s];if(l.isEmpty())r[s]=null;else{var u=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[s]);r[s]=u,this._actualRenderOneSelection(t,n,this._selections.length>1,u)}}this._previousFrameVisibleRangesWithStyle=r,this._renderResult=t.map((function(e){return e[0]+e[1]}))},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t.SELECTION_CLASS_NAME=\"selected-text\",t.SELECTION_TOP_LEFT=\"top-left-radius\",t.SELECTION_BOTTOM_LEFT=\"bottom-left-radius\",t.SELECTION_TOP_RIGHT=\"top-right-radius\",t.SELECTION_BOTTOM_RIGHT=\"bottom-right-radius\",t.EDITOR_BACKGROUND_CLASS_NAME=\"monaco-editor-background\",t.ROUNDED_PIECE_WIDTH=10,t}(i.DynamicViewOverlay);function p(e){return e<0?-e:e}\nt.SelectionsOverlay=h,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorSelectionBackground);n&&t.addRule(\".monaco-editor .focused .selected-text { background-color: \"+n+\"; }\");var i=e.getColor(o.editorInactiveSelection);i&&t.addRule(\".monaco-editor .selected-text { background-color: \"+i+\"; }\");var r=e.getColor(o.editorSelectionForeground);r&&t.addRule(\".monaco-editor .view-line span.inline-selected-text { color: \"+r+\"; }\")}))})),define(n[556],i([0,1,4,2,16,10,33,30,17,118,114,43,15,26,157,14,95]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";function C(e){return e.toString()}Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e,t,n){this._modelEventListeners=new i.DisposableStore,this.model=e,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(e.onWillDispose((function(){return t(e)}))),this._modelEventListeners.add(e.onDidChangeLanguage((function(t){return n(e,t)})))}\nreturn e.prototype._disposeLanguageSelection=function(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null),this._languageSelection&&(this._languageSelection.dispose(),this._languageSelection=null)},e.prototype.dispose=function(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()},e.prototype.setLanguage=function(e){var t=this;this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange((function(){return t.model.setMode(e.languageIdentifier)})),this.model.setMode(e.languageIdentifier)},e}(),S=o.isLinux||o.isMacintosh?1:2,w=function(e){function t(t,i,o,r){var s=e.call(this)||this;return s._onModelAdded=s._register(new n.Emitter),s.onModelAdded=s._onModelAdded.event,s._onModelRemoved=s._register(new n.Emitter),s.onModelRemoved=s._onModelRemoved.event,s._onModelModeChanged=s._register(new n.Emitter),s.onModelModeChanged=s._onModelModeChanged.event,\ns._configurationService=t,s._resourcePropertiesService=i,s._models={},s._modelCreationOptionsByLanguageAndResource=Object.create(null),s._configurationServiceSubscription=s._configurationService.onDidChangeConfiguration((function(e){return s._updateModelOptions()})),s._updateModelOptions(),s._register(new E(s,o,t,r)),s}return r(t,e),t._readModelOptions=function(e,t){var n=a.EDITOR_MODEL_DEFAULTS.tabSize;if(e.editor&&void 0!==e.editor.tabSize){var i=parseInt(e.editor.tabSize,10);isNaN(i)||(n=i),n<1&&(n=1)}var o=n;if(e.editor&&void 0!==e.editor.indentSize&&\"tabSize\"!==e.editor.indentSize){var r=parseInt(e.editor.indentSize,10);isNaN(r)||(o=r),o<1&&(o=1)}var s=a.EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(s=\"false\"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));var l=S,u=e.eol;\"\\r\\n\"===u?l=2:\"\\n\"===u&&(l=1);var d=a.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace\n;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(d=\"false\"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));var c=a.EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(c=\"false\"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));var h=a.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;return e.editor&&void 0!==e.editor.largeFileOptimizations&&(h=\"false\"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations)),{isForSimpleWidget:t,tabSize:n,indentSize:o,insertSpaces:s,detectIndentation:c,defaultEOL:l,trimAutoWhitespace:d,largeFileOptimizations:h}},t.prototype.getCreationOptions=function(e,n,i){var o=this._modelCreationOptionsByLanguageAndResource[e+n];if(!o){var r=this._configurationService.getValue(\"editor\",{overrideIdentifier:e,resource:n}),s=this._resourcePropertiesService.getEOL(n,e);o=t._readModelOptions({editor:r,eol:s},i),this._modelCreationOptionsByLanguageAndResource[e+n]=o}return o},\nt.prototype._updateModelOptions=function(){var e=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);for(var n=Object.keys(this._models),i=0,o=n.length;i<o;i++){var r=n[i],s=this._models[r],a=s.model.getLanguageIdentifier().language,l=s.model.uri,u=e[a+l],d=this.getCreationOptions(a,l,s.model.isForSimpleWidget);t._setModelOptionsForModel(s.model,d,u)}},t._setModelOptionsForModel=function(e,t,n){n&&n.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),n&&n.detectIndentation===t.detectIndentation&&n.insertSpaces===t.insertSpaces&&n.tabSize===t.tabSize&&n.indentSize===t.indentSize&&n.trimAutoWhitespace===t.trimAutoWhitespace||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace}))},t.prototype.dispose=function(){\nthis._configurationServiceSubscription.dispose(),e.prototype.dispose.call(this)},t.prototype._createModelData=function(e,t,n,i){var o=this,r=this.getCreationOptions(t.language,n,i),s=new l.TextModel(e,r,t,n),a=C(s.uri);if(this._models[a])throw new Error(\"ModelService: Cannot add model because it already exists!\");var u=new b(s,(function(e){return o._onWillDispose(e)}),(function(e,t){return o._onDidChangeLanguage(e,t)}));return this._models[a]=u,u},t.prototype.createModel=function(e,t,n,i){var o;return void 0===i&&(i=!1),t?(o=this._createModelData(e,t.languageIdentifier,n,i),this.setMode(o.model,t)):o=this._createModelData(e,d.PLAINTEXT_LANGUAGE_IDENTIFIER,n,i),this._onModelAdded.fire(o.model),o.model},t.prototype.setMode=function(e,t){if(t){var n=this._models[C(e.uri)];n&&n.setLanguage(t)}},t.prototype.getModels=function(){for(var e=[],t=Object.keys(this._models),n=0,i=t.length;n<i;n++){var o=t[n];e.push(this._models[o].model)}return e},t.prototype.getModel=function(e){var t=C(e),n=this._models[t]\n;return n?n.model:null},t.prototype._onWillDispose=function(e){var t=C(e.uri),n=this._models[t];delete this._models[t],n.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageIdentifier().language+e.uri],this._onModelRemoved.fire(e)},t.prototype._onDidChangeLanguage=function(e,n){var i=n.oldLanguage,o=e.getLanguageIdentifier().language,r=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),s=this.getCreationOptions(o,e.uri,e.isForSimpleWidget);t._setModelOptionsForModel(e,s,r),this._onModelModeChanged.fire({model:e,oldModeId:i})},t=h([g(0,p.IConfigurationService),g(1,c.ITextResourcePropertiesService),g(2,_.IThemeService),g(3,y.ILogService)],t)}(i.Disposable);t.ModelServiceImpl=w;var E=function(e){function t(n,i,o,r){var s=e.call(this)||this;s._configurationService=o,s._watchers=Object.create(null),s._semanticStyling=s._register(new L(i,r));var a=function(e){var n=o.getValue(t.SETTING_ID,{overrideIdentifier:e.getLanguageIdentifier().language,resource:e.uri});return n&&n.enabled\n},l=function(e){s._watchers[e.uri.toString()]=new M(e,i,s._semanticStyling)},u=function(e,t){t.dispose(),delete s._watchers[e.uri.toString()]};return s._register(n.onModelAdded((function(e){a(e)&&l(e)}))),s._register(n.onModelRemoved((function(e){var t=s._watchers[e.uri.toString()];t&&u(e,t)}))),s._configurationService.onDidChangeConfiguration((function(e){if(e.affectsConfiguration(t.SETTING_ID))for(var i=0,o=n.getModels();i<o.length;i++){var r=o[i],d=s._watchers[r.uri.toString()];a(r)?d||l(r):d&&u(r,d)}})),s}return r(t,e),t.SETTING_ID=\"editor.semanticHighlighting\",t}(i.Disposable),L=function(e){function t(t,n){var i=e.call(this)||this;return i._themeService=t,i._logService=n,i._caches=new WeakMap,i._themeService&&i._register(i._themeService.onThemeChange((function(){i._caches=new WeakMap}))),i}return r(t,e),t.prototype.get=function(e){return this._caches.has(e)||this._caches.set(e,new x(e.getLegend(),this._themeService,this._logService)),this._caches.get(e)},t}(i.Disposable),D=function(e,t,n){\nthis.tokenTypeIndex=e,this.tokenModifierSet=t,this.metadata=n,this.next=null},N=function(){function e(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength)}return e._nullOutEntries=function(e,t){for(var n=0;n<t;n++)e[n]=null},e.prototype._hashFunc=function(e,t){return((e<<5)-e+t|0)%this._currentLength},e.prototype.get=function(e,t){for(var n=this._hashFunc(e,t),i=this._elements[n];i;){if(i.tokenTypeIndex===e&&i.tokenModifierSet===t)return i;i=i.next}return null},e.prototype.add=function(t,n,i){if(this._elementsCount++,0!==this._growCount&&this._elementsCount>=this._growCount){var o=this._elements;this._currentLengthIndex++,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],\ne._nullOutEntries(this._elements,this._currentLength);for(var r=0,s=o;r<s.length;r++)for(var a=s[r];a;){var l=a.next;a.next=null,this._add(a),a=l}}this._add(new D(t,n,i))},e.prototype._add=function(e){var t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet);e.next=this._elements[t],this._elements[t]=e},e._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143],e}(),x=function(){function e(e,t,n){this._legend=e,this._themeService=t,this._logService=n,this._hashTable=new N}return e.prototype.getMetadata=function(e,t){var n,i=this._hashTable.get(e,t);if(i)n=i.metadata;else{for(var o=this._legend.tokenTypes[e],r=[],s=t,a=0;s>0&&a<this._legend.tokenModifiers.length;a++)1&s&&r.push(this._legend.tokenModifiers[a]),s>>=1;var l=this._themeService.getTheme().getTokenStyleMetadata(o,r);if(void 0===l)n=2147483647;else{if(n=0,void 0!==l.italic)n|=1|(l.italic?1:0)<<11;if(void 0!==l.bold)n|=2|(l.bold?2:0)<<11;if(void 0!==l.underline)n|=4|(l.underline?4:0)<<11\n;if(l.foreground)n|=8|l.foreground<<14;0===n&&(n=2147483647)}this._hashTable.add(e,t,n)}if(this._logService.getLevel()===y.LogLevel.Trace){var d=this._legend.tokenTypes[e],c=t?\" \"+this._legend.tokenModifiers.filter((function(e,n){return t&1<<n})).join(\" \"):\"\";this._logService.trace(\"tokenStyleMetadata \"+(i?\"[CACHED] \":\"\")+d+c+\": foreground \"+u.TokenMetadata.getForeground(n)+\", fontStyle \"+u.TokenMetadata.getFontStyle(n).toString(2))}return n},e}(),I=function(){function e(e,t,n){this._provider=e,this.resultId=t,this.data=n}return e.prototype.dispose=function(){this._provider.releaseDocumentSemanticTokens(this.resultId)},e}(),M=function(e){function t(t,n,i){var o=e.call(this)||this;return o._isDisposed=!1,o._model=t,o._semanticStyling=i,o._fetchSemanticTokens=o._register(new f.RunOnceScheduler((function(){return o._fetchSemanticTokensNow()}),300)),o._currentResponse=null,o._currentRequestCancellationTokenSource=null,o._register(o._model.onDidChangeContent((function(e){\no._fetchSemanticTokens.isScheduled()||o._fetchSemanticTokens.schedule()}))),o._register(u.DocumentSemanticTokensProviderRegistry.onDidChange((function(e){return o._fetchSemanticTokens.schedule()}))),n&&o._register(n.onThemeChange((function(e){o._setSemanticTokens(null,null,null,[]),o._fetchSemanticTokens.schedule()}))),o._fetchSemanticTokens.schedule(0),o}return r(t,e),t.prototype.dispose=function(){this._currentResponse&&(this._currentResponse.dispose(),this._currentResponse=null),this._currentRequestCancellationTokenSource&&(this._currentRequestCancellationTokenSource.cancel(),this._currentRequestCancellationTokenSource=null),this._setSemanticTokens(null,null,null,[]),this._isDisposed=!0,e.prototype.dispose.call(this)},t.prototype._fetchSemanticTokensNow=function(){var e=this;if(!this._currentRequestCancellationTokenSource){var t=this._getSemanticColoringProvider();if(t){this._currentRequestCancellationTokenSource=new m.CancellationTokenSource;var n=[],i=this._model.onDidChangeContent((function(e){n.push(e)\n})),o=this._semanticStyling.get(t),r=this._currentResponse&&this._currentResponse.resultId||null;Promise.resolve(t.provideDocumentSemanticTokens(this._model,r,this._currentRequestCancellationTokenSource.token)).then((function(r){e._currentRequestCancellationTokenSource=null,i.dispose(),e._setSemanticTokens(t,r||null,o,n)}),(function(t){t&&\"string\"==typeof t.message&&-1!==t.message.indexOf(\"busy\")||s.onUnexpectedError(t),e._currentRequestCancellationTokenSource=null,i.dispose(),n.length>0&&(e._fetchSemanticTokens.isScheduled()||e._fetchSemanticTokens.schedule())}))}}},t._isSemanticTokens=function(e){return e&&!!e.data},t._isSemanticTokensEdits=function(e){return e&&Array.isArray(e.edits)},t._copy=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},t.prototype._setSemanticTokens=function(e,n,i,o){var r=this._currentResponse;if(this._currentResponse&&(this._currentResponse.dispose(),this._currentResponse=null),this._isDisposed)e&&n&&e.releaseDocumentSemanticTokens(n.resultId);else if(e&&n&&i){\nif(t._isSemanticTokensEdits(n)){if(!r)return void this._model.setSemanticTokens(null);if(0===n.edits.length)n={resultId:n.resultId,data:r.data};else{for(var s=0,a=0,l=n.edits;a<l.length;a++){s+=((g=l[a]).data?g.data.length:0)-g.deleteCount}for(var u=r.data,d=new Uint32Array(u.length+s),c=u.length,h=d.length,p=n.edits.length-1;p>=0;p--){var g,f=c-((g=n.edits[p]).start+g.deleteCount);f>0&&(t._copy(u,c-f,d,h-f,f),h-=f),g.data&&(t._copy(g.data,0,d,h-g.data.length,g.data.length),h-=g.data.length),c=g.start}c>0&&t._copy(u,0,d,0,c),n={resultId:n.resultId,data:d}}}if(t._isSemanticTokens(n)){this._currentResponse=new I(e,n.resultId,n.data);u=n.data;for(var m=n.data.length/5|0,_=Math.max(Math.ceil(m/1024),400),y=[],C=0,b=1,S=0;C<m;){var w=C,E=Math.min(w+_,m);if(E<m){for(var L=E;L-1>w&&0===u[5*L];)L--;if(L-1===w){for(var D=E;D+1<m&&0===u[5*D];)D++;E=D}else E=L}d=new Uint32Array(4*(E-w));for(var N=0,x=0;C<E;){var M=5*C,k=u[M],T=u[M+1],R=b+k,O=0===k?S+T:T,P=u[M+2],A=u[M+3],F=u[M+4],W=i.getMetadata(A,F)\n;2147483647!==W&&(0===x&&(x=R),d[N]=R-x,d[N+1]=O,d[N+2]=O+P,d[N+3]=W,N+=4),b=R,S=O,C++}N!==d.length&&(d=d.subarray(0,N));var B=new v.MultilineTokens2(x,new v.SparseEncodedTokens(d));y.push(B)}if(o.length>0){for(var V=0,z=o;V<z.length;V++)for(var H=z[V],K=0,U=y;K<U.length;K++)for(var j=U[K],q=0,G=H.changes;q<G.length;q++){var Y=G[q];j.applyEdit(Y.range,Y.text)}this._fetchSemanticTokens.isScheduled()||this._fetchSemanticTokens.schedule()}this._model.setSemanticTokens(y)}else this._model.setSemanticTokens(null)}else this._model.setSemanticTokens(null)},t.prototype._getSemanticColoringProvider=function(){var e=u.DocumentSemanticTokensProviderRegistry.ordered(this._model);return e.length>0?e[0]:null},t}(i.Disposable)})),define(n[44],i([0,1,427,27,20,14]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.editorLineHighlight=o.registerColor(\"editor.lineHighlightBackground\",{dark:null,light:null,hc:null},n.localize(0,null)),\nt.editorLineHighlightBorder=o.registerColor(\"editor.lineHighlightBorder\",{dark:\"#282828\",light:\"#eeeeee\",hc:\"#f38518\"},n.localize(1,null)),t.editorRangeHighlight=o.registerColor(\"editor.rangeHighlightBackground\",{dark:\"#ffffff0b\",light:\"#fdff0033\",hc:null},n.localize(2,null),!0),t.editorRangeHighlightBorder=o.registerColor(\"editor.rangeHighlightBorder\",{dark:null,light:null,hc:o.activeContrastBorder},n.localize(3,null),!0),t.editorSymbolHighlight=o.registerColor(\"editor.symbolHighlightBackground\",{dark:o.editorFindMatchHighlight,light:o.editorFindMatchHighlight,hc:null},n.localize(4,null),!0),t.editorSymbolHighlightBorder=o.registerColor(\"editor.symbolHighlightBorder\",{dark:null,light:null,hc:o.activeContrastBorder},n.localize(5,null),!0),t.editorCursorForeground=o.registerColor(\"editorCursor.foreground\",{dark:\"#AEAFAD\",light:i.Color.black,hc:i.Color.white},n.localize(6,null)),t.editorCursorBackground=o.registerColor(\"editorCursor.background\",null,n.localize(7,null)),\nt.editorWhitespaces=o.registerColor(\"editorWhitespace.foreground\",{dark:\"#e3e4e229\",light:\"#33333333\",hc:\"#e3e4e229\"},n.localize(8,null)),t.editorIndentGuides=o.registerColor(\"editorIndentGuide.background\",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},n.localize(9,null)),t.editorActiveIndentGuides=o.registerColor(\"editorIndentGuide.activeBackground\",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},n.localize(10,null)),t.editorLineNumbers=o.registerColor(\"editorLineNumber.foreground\",{dark:\"#858585\",light:\"#237893\",hc:i.Color.white},n.localize(11,null));var s=o.registerColor(\"editorActiveLineNumber.foreground\",{dark:\"#c6c6c6\",light:\"#0B216F\",hc:o.activeContrastBorder},n.localize(12,null),!1,n.localize(13,null));t.editorActiveLineNumber=o.registerColor(\"editorLineNumber.activeForeground\",{dark:s,light:s,hc:s},n.localize(14,null)),t.editorRuler=o.registerColor(\"editorRuler.foreground\",{dark:\"#5A5A5A\",light:i.Color.lightgrey,hc:i.Color.white\n},n.localize(15,null)),t.editorCodeLensForeground=o.registerColor(\"editorCodeLens.foreground\",{dark:\"#999999\",light:\"#999999\",hc:\"#999999\"},n.localize(16,null)),t.editorBracketMatchBackground=o.registerColor(\"editorBracketMatch.background\",{dark:\"#0064001a\",light:\"#0064001a\",hc:\"#0064001a\"},n.localize(17,null)),t.editorBracketMatchBorder=o.registerColor(\"editorBracketMatch.border\",{dark:\"#888\",light:\"#B9B9B9\",hc:o.contrastBorder},n.localize(18,null)),t.editorOverviewRulerBorder=o.registerColor(\"editorOverviewRuler.border\",{dark:\"#7f7f7f4d\",light:\"#7f7f7f4d\",hc:\"#7f7f7f4d\"},n.localize(19,null)),t.editorGutter=o.registerColor(\"editorGutter.background\",{dark:o.editorBackground,light:o.editorBackground,hc:o.editorBackground},n.localize(20,null)),t.editorUnnecessaryCodeBorder=o.registerColor(\"editorUnnecessaryCode.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#fff\").transparent(.8)},n.localize(21,null)),t.editorUnnecessaryCodeOpacity=o.registerColor(\"editorUnnecessaryCode.opacity\",{\ndark:i.Color.fromHex(\"#000a\"),light:i.Color.fromHex(\"#0007\"),hc:null},n.localize(22,null)),t.overviewRulerError=o.registerColor(\"editorOverviewRuler.errorForeground\",{dark:new i.Color(new i.RGBA(255,18,18,.7)),light:new i.Color(new i.RGBA(255,18,18,.7)),hc:new i.Color(new i.RGBA(255,50,50,1))},n.localize(23,null)),t.overviewRulerWarning=o.registerColor(\"editorOverviewRuler.warningForeground\",{dark:o.editorWarningForeground,light:o.editorWarningForeground,hc:o.editorWarningBorder},n.localize(24,null)),t.overviewRulerInfo=o.registerColor(\"editorOverviewRuler.infoForeground\",{dark:o.editorInfoForeground,light:o.editorInfoForeground,hc:o.editorInfoBorder},n.localize(25,null)),r.registerThemingParticipant((function(e,n){var i=e.getColor(o.editorBackground);i&&n.addRule(\".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: \"+i+\"; }\");var r=e.getColor(o.editorForeground);r&&n.addRule(\".monaco-editor, .monaco-editor .inputarea.ime-input { color: \"+r+\"; }\")\n;var s=e.getColor(t.editorGutter);s&&n.addRule(\".monaco-editor .margin { background-color: \"+s+\"; }\");var a=e.getColor(t.editorRangeHighlight);a&&n.addRule(\".monaco-editor .rangeHighlight { background-color: \"+a+\"; }\");var l=e.getColor(t.editorRangeHighlightBorder);l&&n.addRule(\".monaco-editor .rangeHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+l+\"; }\");var u=e.getColor(t.editorSymbolHighlight);u&&n.addRule(\".monaco-editor .symbolHighlight { background-color: \"+u+\"; }\");var d=e.getColor(t.editorSymbolHighlightBorder);d&&n.addRule(\".monaco-editor .symbolHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+d+\"; }\");var c=e.getColor(t.editorWhitespaces);c&&n.addRule(\".vs-whitespace { color: \"+c+\" !important; }\")}))})),define(n[557],i([0,1,82,44,19,14,285]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=!0,l=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options,o=i.get(107)\n;return n._lineHeight=i.get(49),n._renderLineHighlight=i.get(72),n._contentLeft=o.contentLeft,n._contentWidth=o.contentWidth,n._selectionIsEmpty=!0,n._cursorLineNumbers=[],n._selections=[],n._renderData=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype._readFromSelections=function(){var e=!1,t=a?this._selections.slice(0,1):this._selections,n=t.map((function(e){return e.positionLineNumber}));n.sort((function(e,t){return e-t})),o.equals(this._cursorLineNumbers,n)||(this._cursorLineNumbers=n,e=!0);var i=t.every((function(e){return e.isEmpty()}));return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e},t.prototype.onThemeChanged=function(e){return this._readFromSelections()},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._renderLineHighlight=t.get(72),this._contentLeft=n.contentLeft,\nthis._contentWidth=n.contentWidth,!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections,this._readFromSelections()},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollWidthChanged||e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._shouldRenderThis()){for(var t=this._renderOne(e),n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,o=this._cursorLineNumbers.length,r=0,s=[],a=n;a<=i;a++){for(var l=a-n;r<o&&this._cursorLineNumbers[r]<a;)r++;r<o&&this._cursorLineNumbers[r]===a?s[l]=t:s[l]=\"\"}this._renderData=s}else this._renderData=null},t.prototype.render=function(e,t){if(!this._renderData)return\"\";var n=t-e;return n>=this._renderData.length?\"\":this._renderData[n]},t}(n.DynamicViewOverlay);t.AbstractLineHighlightOverlay=l;var u=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._renderOne=function(e){return'<div class=\"'+(\"current-line\"+(this._shouldRenderOther()?\" current-line-both\":\"\"))+'\" style=\"width:'+Math.max(e.scrollWidth,this._contentWidth)+\"px; height:\"+this._lineHeight+'px;\"></div>'},t.prototype._shouldRenderThis=function(){return(\"line\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight)&&this._selectionIsEmpty},t.prototype._shouldRenderOther=function(){return\"gutter\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight},t}(l);t.CurrentLineHighlightOverlay=u;var d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._renderOne=function(e){return'<div class=\"'+(\"current-line current-line-margin\"+(this._shouldRenderOther()?\" current-line-margin-both\":\"\"))+'\" style=\"width:'+this._contentLeft+\"px; height:\"+this._lineHeight+'px;\"></div>'},t.prototype._shouldRenderThis=function(){\nreturn\"gutter\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight},t.prototype._shouldRenderOther=function(){return(\"line\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight)&&this._selectionIsEmpty},t}(l);t.CurrentLineMarginHighlightOverlay=d,s.registerThemingParticipant((function(e,t){a=!1;var n=e.getColor(i.editorLineHighlight);if(n&&(t.addRule(\".monaco-editor .view-overlays .current-line { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { background-color: \"+n+\"; border: none; }\")),!n||n.isTransparent()||e.defines(i.editorLineHighlightBorder)){var o=e.getColor(i.editorLineHighlightBorder);o&&(a=!0,t.addRule(\".monaco-editor .view-overlays .current-line { border: 2px solid \"+o+\"; }\"),t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid \"+o+\"; }\"),\"hc\"===e.type&&(t.addRule(\".monaco-editor .view-overlays .current-line { border-width: 1px; }\"),\nt.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }\")))}}))})),define(n[558],i([0,1,82,13,44,14,288]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var n=e.call(this)||this;n._context=t,n._primaryLineNumber=0;var i=n._context.configuration.options,o=i.get(108),r=i.get(34);return n._lineHeight=i.get(49),n._spaceWidth=r.spaceWidth,n._enabled=i.get(70),n._activeIndentEnabled=i.get(43),n._maxIndentLeft=-1===o.wrappingColumn?-1:o.wrappingColumn*r.typicalHalfwidthCharacterWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(108),i=t.get(34);return this._lineHeight=t.get(49),this._spaceWidth=i.spaceWidth,this._enabled=t.get(70),this._activeIndentEnabled=t.get(43),\nthis._maxIndentLeft=-1===n.wrappingColumn?-1:n.wrappingColumn*i.typicalHalfwidthCharacterWidth,!0},t.prototype.onCursorStateChanged=function(e){var t=e.selections[0],n=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==n&&(this._primaryLineNumber=n,!0)},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onLanguageConfigurationChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._enabled){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._context.model.getOptions().indentSize*this._spaceWidth,r=e.scrollWidth,s=this._lineHeight,a=this._context.model.getLinesIndentGuides(t,n),l=0,u=0,d=0\n;if(this._activeIndentEnabled&&this._primaryLineNumber){var c=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,n);l=c.startLineNumber,u=c.endLineNumber,d=c.indent}for(var h=[],p=t;p<=n;p++){var g=l<=p&&p<=u,f=p-t,m=a[f],v=\"\";if(m>=1)for(var _=e.visibleRangeForPosition(new i.Position(p,1)),y=_?_.left:0,C=1;C<=m;C++){if(v+='<div class=\"'+(g&&C===d?\"cigra\":\"cigr\")+'\" style=\"left:'+y+\"px;height:\"+s+\"px;width:\"+o+'px\"></div>',(y+=o)>r||this._maxIndentLeft>0&&y>this._maxIndentLeft)break}h[f]=v}this._renderResult=h}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(n.DynamicViewOverlay);t.IndentGuidesOverlay=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorIndentGuides);n&&t.addRule(\".monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 \"+n+\" inset; }\");var i=e.getColor(o.editorActiveIndentGuides)||n\n;i&&t.addRule(\".monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 \"+i+\" inset; }\")}))})),define(n[229],i([0,1,16,82,13,44,14,289]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._readConfig(),n._lastCursorModelPosition=new o.Position(1,1),n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype._readConfig=function(){var e=this._context.configuration.options;this._lineHeight=e.get(49);var t=e.get(50);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(71);var n=e.get(107);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth},t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return this._readConfig(),!0},t.prototype.onCursorStateChanged=function(e){\nvar t=e.selections[0].getPosition();return this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t),2===this._renderLineNumbers||3===this._renderLineNumbers},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getLineRenderLineNumber=function(e){var t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e,1));if(1!==t.column)return\"\";var n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(2===this._renderLineNumbers){var i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return 0===i?'<span class=\"relative-current-line-number\">'+n+\"</span>\":String(i)}\nreturn 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===n?String(n):n%10==0?String(n):\"\":String(n)},t.prototype.prepareRender=function(e){if(0!==this._renderLineNumbers){for(var i=n.isLinux?this._lineHeight%2==0?\" lh-even\":\" lh-odd\":\"\",o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s='<div class=\"'+t.CLASS_NAME+i+'\" style=\"left:'+this._lineNumbersLeft.toString()+\"px;width:\"+this._lineNumbersWidth.toString()+'px;\">',a=this._context.model.getLineCount(),l=[],u=o;u<=r;u++){var d=u-o;if(this._renderFinalNewline||u!==a||0!==this._context.model.getLineLength(u)){var c=this._getLineRenderLineNumber(u);l[d]=c?s+c+\"</div>\":\"\"}else l[d]=\"\"}this._renderResult=l}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t.CLASS_NAME=\"line-numbers\",t}(i.DynamicViewOverlay);t.LineNumbersOverlay=l,a.registerThemingParticipant((function(e,t){\nvar n=e.getColor(s.editorLineNumbers);n&&t.addRule(\".monaco-editor .line-numbers { color: \"+n+\"; }\");var i=e.getColor(s.editorActiveLineNumber);i&&t.addRule(\".monaco-editor .current-line ~ .line-numbers { color: \"+i+\"; }\")}))})),define(n[559],i([0,1,416,24,28,16,5,60,189,187,37,229,195,33,89,13,3,22,81,284]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=function(){function e(e,t,n){this.top=e,this.left=t,this.width=n}return e.prototype.setWidth=function(t){return new e(this.top,this.left,t)},e}(),b=i.isEdgeOrIE||i.isFirefox,S=function(e){function t(t,n,r){var a=e.call(this,t)||this;a._primaryCursorPosition=new m.Position(1,1),a._primaryCursorVisibleRange=null,a._viewController=n,a._viewHelper=r,a._scrollLeft=0,a._scrollTop=0;var l=a._context.configuration.options,h=l.get(107);a._setAccessibilityOptions(l),a._contentLeft=h.contentLeft,a._contentWidth=h.contentWidth,a._contentHeight=h.height,a._fontInfo=l.get(34),a._lineHeight=l.get(49),\na._emptySelectionClipboard=l.get(25),a._copyWithSyntaxHighlighting=l.get(15),a._visibleTextArea=null,a._selections=[new _.Selection(1,1,1,1)],a._modelSelections=[new _.Selection(1,1,1,1)],a._lastRenderPosition=null,a.textArea=o.createFastDomNode(document.createElement(\"textarea\")),c.PartFingerprints.write(a.textArea,6),a.textArea.setClassName(\"inputarea\"),a.textArea.setAttribute(\"wrap\",\"off\"),a.textArea.setAttribute(\"autocorrect\",\"off\"),a.textArea.setAttribute(\"autocapitalize\",\"off\"),a.textArea.setAttribute(\"autocomplete\",\"off\"),a.textArea.setAttribute(\"spellcheck\",\"false\"),a.textArea.setAttribute(\"aria-label\",a._getAriaLabel(l)),a.textArea.setAttribute(\"role\",\"textbox\"),a.textArea.setAttribute(\"aria-multiline\",\"true\"),a.textArea.setAttribute(\"aria-haspopup\",\"false\"),a.textArea.setAttribute(\"aria-autocomplete\",\"both\"),s.isWeb&&l.get(68)&&a.textArea.setAttribute(\"readonly\",\"true\"),a.textAreaCover=o.createFastDomNode(document.createElement(\"div\")),a.textAreaCover.setPosition(\"absolute\");var p={\ngetLineCount:function(){return a._context.model.getLineCount()},getLineMaxColumn:function(e){return a._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return a._context.model.getValueInRange(e,t)}},g={getDataToCopy:function(e){var t=a._context.model.getPlainTextToCopy(a._modelSelections,a._emptySelectionClipboard,s.isWindows),n=a._context.model.getEOL(),i=a._emptySelectionClipboard&&1===a._modelSelections.length&&a._modelSelections[0].isEmpty(),o=Array.isArray(t)?t:null,r=Array.isArray(t)?t.join(n):t,l=void 0,d=null;if(e&&(u.CopyOptions.forceCopyWithSyntaxHighlighting||a._copyWithSyntaxHighlighting&&r.length<65536)){var c=a._context.model.getRichTextToCopy(a._modelSelections,a._emptySelectionClipboard);c&&(l=c.html,d=c.mode)}return{isFromEmptySelection:i,multicursorText:o,text:r,html:l,mode:d}},getScreenReaderContent:function(e){if(i.isIPad)return d.TextAreaState.EMPTY;if(1===a._accessibilitySupport){if(s.isMacintosh){var t=a._selections[0];if(t.isEmpty()){\nvar n=t.getStartPosition(),o=a._getWordBeforePosition(n);if(0===o.length&&(o=a._getCharacterBeforePosition(n)),o.length>0)return new d.TextAreaState(o,o.length,o.length,n,n)}}return d.TextAreaState.EMPTY}return d.PagedScreenReaderStrategy.fromEditorSelection(e,p,a._selections[0],a._accessibilityPageSize,0===a._accessibilitySupport)},deduceModelPosition:function(e,t,n){return a._context.model.deduceModelPositionRelativeToViewPosition(e,t,n)}};return a._textAreaInput=a._register(new u.TextAreaInput(g,a.textArea)),a._register(a._textAreaInput.onKeyDown((function(e){a._viewController.emitKeyDown(e)}))),a._register(a._textAreaInput.onKeyUp((function(e){a._viewController.emitKeyUp(e)}))),a._register(a._textAreaInput.onPaste((function(e){var t=!1,n=null,i=null;e.metadata&&(t=a._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,n=void 0!==e.metadata.multicursorText?e.metadata.multicursorText:null,i=e.metadata.mode),a._viewController.paste(\"keyboard\",e.text,t,n,i)}))),\na._register(a._textAreaInput.onCut((function(){a._viewController.cut(\"keyboard\")}))),a._register(a._textAreaInput.onType((function(e){e.replaceCharCnt?a._viewController.replacePreviousChar(\"keyboard\",e.text,e.replaceCharCnt):a._viewController.type(\"keyboard\",e.text)}))),a._register(a._textAreaInput.onSelectionChangeRequest((function(e){a._viewController.setSelection(\"keyboard\",e)}))),a._register(a._textAreaInput.onCompositionStart((function(){var e=a._selections[0].startLineNumber,t=a._selections[0].startColumn;a._context.privateViewEventBus.emit(new y.ViewRevealRangeRequestEvent(\"keyboard\",new v.Range(e,t,e,t),0,!0,1));var n=a._viewHelper.visibleRangeForPositionRelativeToEditor(e,t);n&&(a._visibleTextArea=new C(a._context.viewLayout.getVerticalOffsetForLineNumber(e),n.left,b?0:1),a._render()),a.textArea.setClassName(\"inputarea ime-input\"),a._viewController.compositionStart(\"keyboard\")}))),a._register(a._textAreaInput.onCompositionUpdate((function(e){\ni.isEdgeOrIE?a._visibleTextArea=a._visibleTextArea.setWidth(0):a._visibleTextArea=a._visibleTextArea.setWidth(function(e,t){var n=document.createElement(\"canvas\").getContext(\"2d\");n.font=(o=t,r=\"normal\",s=o.fontWeight,a=o.fontSize,l=o.lineHeight,u=o.fontFamily,r+\" normal \"+s+\" \"+a+\"px / \"+l+\"px \"+u);var o,r,s,a,l,u;var d=n.measureText(e);return i.isFirefox?d.width+2:d.width}(e.data,a._fontInfo)),a._render()}))),a._register(a._textAreaInput.onCompositionEnd((function(){a._visibleTextArea=null,a._render(),a.textArea.setClassName(\"inputarea\"),a._viewController.compositionEnd(\"keyboard\")}))),a._register(a._textAreaInput.onFocus((function(){a._context.privateViewEventBus.emit(new y.ViewFocusChangedEvent(!0))}))),a._register(a._textAreaInput.onBlur((function(){a._context.privateViewEventBus.emit(new y.ViewFocusChangedEvent(!1))}))),a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getWordBeforePosition=function(e){\nfor(var t=this._context.model.getLineContent(e.lineNumber),n=f.getMapForWordSeparators(this._context.configuration.options.get(96)),i=e.column,o=0;i>1;){var r=t.charCodeAt(i-2);if(0!==n.get(r)||o>50)return t.substring(i-1,e.column-1);o++,i--}return t.substring(0,e.column-1)},t.prototype._getCharacterBeforePosition=function(e){if(e.column>1){var t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2);if(!a.isHighSurrogate(t.charCodeAt(0)))return t}return\"\"},t.prototype._getAriaLabel=function(e){return 1===e.get(2)?n.localize(0,null):e.get(4)},t.prototype._setAccessibilityOptions=function(e){this._accessibilitySupport=e.get(2);var t=e.get(3);2===this._accessibilitySupport&&t===g.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=160:this._accessibilityPageSize=t},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._setAccessibilityOptions(t),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,\nthis._contentHeight=n.height,this._fontInfo=t.get(34),this._lineHeight=t.get(49),this._emptySelectionClipboard=t.get(25),this._copyWithSyntaxHighlighting=t.get(15),this.textArea.setAttribute(\"aria-label\",this._getAriaLabel(t)),s.isWeb&&e.hasChanged(68)&&(t.get(68)?this.textArea.setAttribute(\"readonly\",\"true\"):this.textArea.removeAttribute(\"readonly\")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent(\"strategy changed\"),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent(\"selection changed\"),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0},\nt.prototype.onZonesChanged=function(e){return!0},t.prototype.isFocused=function(){return this._textAreaInput.isFocused()},t.prototype.focusTextArea=function(){this._textAreaInput.focusTextArea()},t.prototype.getLastRenderData=function(){return this._lastRenderPosition},t.prototype.setAriaOptions=function(e){e.activeDescendant?(this.textArea.setAttribute(\"aria-haspopup\",\"true\"),this.textArea.setAttribute(\"aria-autocomplete\",\"list\"),this.textArea.setAttribute(\"aria-activedescendant\",e.activeDescendant)):(this.textArea.setAttribute(\"aria-haspopup\",\"false\"),this.textArea.setAttribute(\"aria-autocomplete\",\"both\"),this.textArea.removeAttribute(\"aria-activedescendant\"))},t.prototype.prepareRender=function(e){this._primaryCursorPosition=new m.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition)},t.prototype.render=function(e){this._textAreaInput.writeScreenReaderContent(\"render\"),this._render()},\nt.prototype._render=function(){if(this._visibleTextArea)this._renderInsideEditor(null,this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():s.isMacintosh?this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,this._lineHeight):this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,b?0:1)}}else this._renderAtTopLeft()},t.prototype._renderInsideEditor=function(e,t,n,i,o){this._lastRenderPosition=e;var r=this.textArea,s=this.textAreaCover;l.Configuration.applyFontInfo(r,this._fontInfo),r.setTop(t),r.setLeft(n),r.setWidth(i),\nr.setHeight(o),s.setTop(0),s.setLeft(0),s.setWidth(0),s.setHeight(0)},t.prototype._renderAtTopLeft=function(){this._lastRenderPosition=null;var e=this.textArea,t=this.textAreaCover;if(l.Configuration.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),b)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1);var n=this._context.configuration.options;n.get(40)?t.setClassName(\"monaco-editor-background textAreaCover \"+p.Margin.OUTER_CLASS_NAME):0!==n.get(50).renderType?t.setClassName(\"monaco-editor-background textAreaCover \"+h.LineNumbersOverlay.CLASS_NAME):t.setClassName(\"monaco-editor-background textAreaCover\")},t}(c.ViewPart);t.TextAreaHandler=S})),define(n[560],i([0,1,28,27,37,13,17,44]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t){var n=e.options;this.lineHeight=n.get(49),this.pixelRatio=n.get(105),\nthis.overviewRulerLanes=n.get(63),this.renderBorder=n.get(62);var o=t.getColor(l.editorOverviewRulerBorder);this.borderColor=o?o.toString():null,this.hideCursor=n.get(42);var r=t.getColor(l.editorCursorForeground);this.cursorColor=r?r.transparent(.7).toString():null,this.themeType=t.type;var s=n.get(54),u=s.enabled,d=s.side,c=u?a.TokenizationRegistry.getDefaultBackground():null;this.backgroundColor=null===c||\"left\"===d?null:i.Color.Format.CSS.formatHex(c);var h=n.get(107).overviewRuler;this.top=h.top,this.right=h.right,this.domWidth=h.width,this.domHeight=h.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);var p=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes),g=p[0],f=p[1];this.x=g,this.w=f}return e.prototype._initLanes=function(e,t,n){var i=t-e;if(n>=3){var o,r,s,a=i-(o=Math.floor(i/3))-(r=Math.floor(i/3)),l=(s=e)+o\n;return[[0,s,l,s,s+o+a,s,l,s],[0,o,a,o+a,r,o+a+r,a+r,o+a+r]]}if(2===n)return[[0,s=e,s,s,s+(o=Math.floor(i/2)),s,s,s],[0,o,o,o,r=i-o,o+r,o+r,o+r]];return[[0,e,e,e,e,e,e,e],[0,i,i,i,i,i,i,i]]},e.prototype.equals=function(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight},e}(),d=function(e){function t(t){var i=e.call(this,t)||this;return i._domNode=n.createFastDomNode(document.createElement(\"canvas\")),i._domNode.setClassName(\"decorationsOverviewRuler\"),i._domNode.setPosition(\"absolute\"),i._domNode.setLayerHinting(!0),i._domNode.setContain(\"strict\"),\ni._domNode.setAttribute(\"aria-hidden\",\"true\"),i._updateSettings(!1),i._tokensColorTrackerListener=a.TokenizationRegistry.onDidChange((function(e){e.changedColorMap&&i._updateSettings(!0)})),i._cursorPositions=[],i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._tokensColorTrackerListener.dispose()},t.prototype._updateSettings=function(e){var t=new u(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)},t.prototype.onConfigurationChanged=function(e){return this._updateSettings(!1)},t.prototype.onCursorStateChanged=function(e){this._cursorPositions=[]\n;for(var t=0,n=e.selections.length;t<n;t++)this._cursorPositions[t]=e.selections[t].getPosition();return this._cursorPositions.sort(s.Position.compare),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onThemeChanged=function(e){return this._context.model.invalidateOverviewRulerColorCache(),this._updateSettings(!1)},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._render()},t.prototype._render=function(){if(0!==this._settings.overviewRulerLanes){\nvar e=this._settings.canvasWidth,t=this._settings.canvasHeight,n=this._settings.lineHeight,i=this._context.viewLayout,o=t/this._context.viewLayout.getScrollHeight(),r=this._context.model.getAllOverviewRulerDecorations(this._context.theme),s=6*this._settings.pixelRatio|0,a=s/2|0,l=this._domNode.domNode.getContext(\"2d\");null===this._settings.backgroundColor?l.clearRect(0,0,e,t):(l.fillStyle=this._settings.backgroundColor,l.fillRect(0,0,e,t));var u=this._settings.x,d=this._settings.w,c=Object.keys(r);c.sort();for(var h=0,p=c.length;h<p;h++){var g=c[h],f=r[g];l.fillStyle=g;for(var m=0,v=0,_=0,y=0,C=f.length;y<C;y++){var b=f[3*y],S=f[3*y+1],w=f[3*y+2],E=i.getVerticalOffsetForLineNumber(S)*o|0;if((k=(i.getVerticalOffsetForLineNumber(w)+n)*o|0)-E<s)(I=(E+k)/2|0)<a?I=a:I+a>t&&(I=t-a),E=I-a,k=I+a;E>_+1||b!==m?(0!==y&&l.fillRect(u[m],v,d[m],_-v),m=b,v=E,_=k):k>_&&(_=k)}l.fillRect(u[m],v,d[m],_-v)}if(!this._settings.hideCursor&&this._settings.cursorColor){\nvar L=2*this._settings.pixelRatio|0,D=L/2|0,N=this._settings.x[7],x=this._settings.w[7];l.fillStyle=this._settings.cursorColor;for(v=-100,_=-100,y=0,C=this._cursorPositions.length;y<C;y++){var I,M=this._cursorPositions[y];(I=i.getVerticalOffsetForLineNumber(M.lineNumber)*o|0)<D?I=D:I+D>t&&(I=t-D);var k=(E=I-D)+L;E>_+1?(0!==y&&l.fillRect(N,v,x,_-v),v=E,_=k):k>_&&(_=k)}l.fillRect(N,v,x,_-v)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,t),l.stroke(),l.moveTo(0,0),l.lineTo(e,0),l.stroke())}else this._domNode.setBackgroundColor(this._settings.backgroundColor?this._settings.backgroundColor:\"\")},t}(o.ViewPart);t.DecorationsOverviewRuler=d})),define(n[561],i([0,1,28,37,44,14,295]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var i=e.call(this,t)||this\n;i.domNode=n.createFastDomNode(document.createElement(\"div\")),i.domNode.setAttribute(\"role\",\"presentation\"),i.domNode.setAttribute(\"aria-hidden\",\"true\"),i.domNode.setClassName(\"view-rulers\"),i._renderedRulers=[];var o=i._context.configuration.options;return i._rulers=o.get(77),i._typicalHalfwidthCharacterWidth=o.get(34).typicalHalfwidthCharacterWidth,i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._rulers=t.get(77),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.prepareRender=function(e){},t.prototype._ensureRulersCount=function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e<t)for(var i=this._context.model.getOptions().tabSize,o=t-e;o>0;){(s=n.createFastDomNode(document.createElement(\"div\"))).setClassName(\"view-ruler\"),s.setWidth(i),\nthis.domNode.appendChild(s),this._renderedRulers.push(s),o--}else for(var r=e-t;r>0;){var s=this._renderedRulers.pop();this.domNode.removeChild(s),r--}},t.prototype.render=function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;t<n;t++){var i=this._renderedRulers[t];i.setHeight(Math.min(e.scrollHeight,1e6)),i.setLeft(this._rulers[t]*this._typicalHalfwidthCharacterWidth)}},t}(i.ViewPart);t.Rulers=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorRuler);n&&t.addRule(\".monaco-editor .view-ruler { box-shadow: 1px 0 0 0 \"+n+\" inset; }\")}))})),define(n[562],i([0,1,28,15,37,514,33,44,14,298]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t){var o=e.call(this,t)||this,r=o._context.configuration.options;return o._readOnly=r.get(68),o._cursorBlinking=r.get(16),o._cursorStyle=r.get(18),o._cursorSmoothCaretAnimation=r.get(17),o._selectionIsEmpty=!0,o._isVisible=!1,o._primaryCursor=new s.ViewCursor(o._context),\no._secondaryCursors=[],o._renderData=[],o._domNode=n.createFastDomNode(document.createElement(\"div\")),o._domNode.setAttribute(\"role\",\"presentation\"),o._domNode.setAttribute(\"aria-hidden\",\"true\"),o._updateDomClassName(),o._domNode.appendChild(o._primaryCursor.getDomNode()),o._startCursorBlinkAnimation=new i.TimeoutTimer,o._cursorFlatBlinkInterval=new i.IntervalTimer,o._blinkingEnabled=!1,o._editorHasFocus=!1,o._updateBlinking(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;this._readOnly=t.get(68),this._cursorBlinking=t.get(16),this._cursorStyle=t.get(18),this._cursorSmoothCaretAnimation=t.get(17),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e)\n;for(var n=0,i=this._secondaryCursors.length;n<i;n++)this._secondaryCursors[n].onConfigurationChanged(e);return!0},t.prototype._onCursorPositionChanged=function(e,t){if(this._primaryCursor.onCursorPositionChanged(e),this._updateBlinking(),this._secondaryCursors.length<t.length)for(var n=t.length-this._secondaryCursors.length,i=0;i<n;i++){var o=new s.ViewCursor(this._context);this._domNode.domNode.insertBefore(o.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(o)}else if(this._secondaryCursors.length>t.length){var r=this._secondaryCursors.length-t.length;for(i=0;i<r;i++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(i=0;i<t.length;i++)this._secondaryCursors[i].onCursorPositionChanged(t[i])},t.prototype.onCursorStateChanged=function(e){for(var t=[],n=0,i=e.selections.length;n<i;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1));var o=e.selections[0].isEmpty()\n;return this._selectionIsEmpty!==o&&(this._selectionIsEmpty=o,this._updateDomClassName()),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onFocusChanged=function(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onTokensChanged=function(e){var t=function(t){for(var n=0,i=e.ranges.length;n<i;n++)if(e.ranges[n].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(var n=0,i=this._secondaryCursors;n<i.length;n++){if(t(i[n].getPosition()))return!0}return!1},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getCursorBlinking=function(){return this._editorHasFocus?this._readOnly?5:this._cursorBlinking:0},\nt.prototype._updateBlinking=function(){var e=this;this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();var n=this._getCursorBlinking(),i=0===n,o=5===n;i?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),i||o||(1===n?this._cursorFlatBlinkInterval.cancelAndSet((function(){e._isVisible?e._hide():e._show()}),t.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet((function(){e._blinkingEnabled=!0,e._updateDomClassName()}),t.BLINK_INTERVAL))},t.prototype._updateDomClassName=function(){this._domNode.setClassName(this._getClassName())},t.prototype._getClassName=function(){var e=\"cursors-layer\";switch(this._selectionIsEmpty||(e+=\" has-selection\"),this._cursorStyle){case a.TextEditorCursorStyle.Line:e+=\" cursor-line-style\";break;case a.TextEditorCursorStyle.Block:e+=\" cursor-block-style\";break;case a.TextEditorCursorStyle.Underline:e+=\" cursor-underline-style\";break;case a.TextEditorCursorStyle.LineThin:e+=\" cursor-line-thin-style\";break\n;case a.TextEditorCursorStyle.BlockOutline:e+=\" cursor-block-outline-style\";break;case a.TextEditorCursorStyle.UnderlineThin:e+=\" cursor-underline-thin-style\";break;default:e+=\" cursor-line-style\"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=\" cursor-blink\";break;case 2:e+=\" cursor-smooth\";break;case 3:e+=\" cursor-phase\";break;case 4:e+=\" cursor-expand\";break;case 5:e+=\" cursor-solid\";break;default:e+=\" cursor-solid\"}else e+=\" cursor-solid\";return this._cursorSmoothCaretAnimation&&(e+=\" cursor-smooth-caret-animation\"),e},t.prototype._show=function(){this._primaryCursor.show();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0},t.prototype._hide=function(){this._primaryCursor.hide();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1},t.prototype.prepareRender=function(e){this._primaryCursor.prepareRender(e)\n;for(var t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].prepareRender(e)},t.prototype.render=function(e){var t=[],n=0,i=this._primaryCursor.render(e);i&&(t[n++]=i);for(var o=0,r=this._secondaryCursors.length;o<r;o++){var s=this._secondaryCursors[o].render(e);s&&(t[n++]=s)}this._renderData=t},t.prototype.getLastRenderData=function(){return this._renderData},t.BLINK_INTERVAL=500,t}(o.ViewPart);t.ViewCursors=d,u.registerThemingParticipant((function(e,t){var n=e.getColor(l.editorCursorForeground);if(n){var i=e.getColor(l.editorCursorBackground);i||(i=n.opposite()),t.addRule(\".monaco-editor .cursor { background-color: \"+n+\"; border-color: \"+n+\"; color: \"+i+\"; }\"),\"hc\"===e.type&&t.addRule(\".monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid \"+i+\"; border-right: 1px solid \"+i+\"; }\")}}))})),\ndefine(n[563],i([0,1,6,28,10,551,559,523,228,513,37,366,557,367,549,149,558,229,552,368,195,369,553,370,560,371,561,554,555,562,372,13,3,91,360,361,81,363,92,14,166]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B,V,z){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var H=function(e){function t(t,n,o,r,u,D){var T=e.call(this)||this;T._cursor=u,T._renderAnimationFrame=null,T.outgoingEvents=D;var R=new l.ViewController(n,r,T.outgoingEvents,t);T.eventDispatcher=new A.ViewEventDispatcher((function(e){return T._renderOnce(e)})),T.eventDispatcher.addEventHandler(T),T._context=new P.ViewContext(n,o.getTheme(),r,T.eventDispatcher),T._register(o.onThemeChange((function(e){T._context.theme=e,T.eventDispatcher.emit(new F.ViewThemeChangedEvent),T.render(!0,!1)}))),T.viewParts=[],T._textAreaHandler=new a.TextAreaHandler(T._context,R,T.createTextAreaHandlerHelper()),T.viewParts.push(T._textAreaHandler),T.linesContent=i.createFastDomNode(document.createElement(\"div\")),\nT.linesContent.setClassName(\"lines-content monaco-editor-background\"),T.linesContent.setPosition(\"absolute\"),T.domNode=i.createFastDomNode(document.createElement(\"div\")),T.domNode.setClassName(T.getEditorClassName()),T.overflowGuardContainer=i.createFastDomNode(document.createElement(\"div\")),c.PartFingerprints.write(T.overflowGuardContainer,3),T.overflowGuardContainer.setClassName(\"overflow-guard\"),T._scrollbar=new f.EditorScrollbar(T._context,T.linesContent,T.domNode,T.overflowGuardContainer),T.viewParts.push(T._scrollbar),T.viewLines=new y.ViewLines(T._context,T.linesContent),T.viewZones=new k.ViewZones(T._context),T.viewParts.push(T.viewZones);var O=new L.DecorationsOverviewRuler(T._context);T.viewParts.push(O);var W=new x.ScrollDecorationViewPart(T._context);T.viewParts.push(W);var B=new d.ContentViewOverlays(T._context);T.viewParts.push(B),B.addDynamicOverlay(new p.CurrentLineHighlightOverlay(T._context)),B.addDynamicOverlay(new I.SelectionsOverlay(T._context)),\nB.addDynamicOverlay(new v.IndentGuidesOverlay(T._context)),B.addDynamicOverlay(new g.DecorationsOverlay(T._context));var V=new d.MarginViewOverlays(T._context);T.viewParts.push(V),V.addDynamicOverlay(new p.CurrentLineMarginHighlightOverlay(T._context)),V.addDynamicOverlay(new m.GlyphMarginOverlay(T._context)),V.addDynamicOverlay(new S.MarginViewLineDecorationsOverlay(T._context)),V.addDynamicOverlay(new C.LinesDecorationsOverlay(T._context)),V.addDynamicOverlay(new _.LineNumbersOverlay(T._context));var z=new b.Margin(T._context);z.getDomNode().appendChild(T.viewZones.marginDomNode),z.getDomNode().appendChild(V.getDomNode()),T.viewParts.push(z),T.contentWidgets=new h.ViewContentWidgets(T._context,T.domNode),T.viewParts.push(T.contentWidgets),T.viewCursors=new M.ViewCursors(T._context),T.viewParts.push(T.viewCursors),T.overlayWidgets=new E.ViewOverlayWidgets(T._context),T.viewParts.push(T.overlayWidgets);var H=new N.Rulers(T._context);T.viewParts.push(H);var K=new w.Minimap(T._context);if(T.viewParts.push(K),\nO){var U=T._scrollbar.getOverviewRulerLayoutInfo();U.parent.insertBefore(O.getDomNode(),U.insertBefore)}return T.linesContent.appendChild(B.getDomNode()),T.linesContent.appendChild(H.domNode),T.linesContent.appendChild(T.viewZones.domNode),T.linesContent.appendChild(T.viewLines.getDomNode()),T.linesContent.appendChild(T.contentWidgets.domNode),T.linesContent.appendChild(T.viewCursors.getDomNode()),T.overflowGuardContainer.appendChild(z.getDomNode()),T.overflowGuardContainer.appendChild(T._scrollbar.getDomNode()),T.overflowGuardContainer.appendChild(W.getDomNode()),T.overflowGuardContainer.appendChild(T._textAreaHandler.textArea),T.overflowGuardContainer.appendChild(T._textAreaHandler.textAreaCover),T.overflowGuardContainer.appendChild(T.overlayWidgets.getDomNode()),T.overflowGuardContainer.appendChild(K.getDomNode()),T.domNode.appendChild(T.overflowGuardContainer),T.domNode.appendChild(T.contentWidgets.overflowingContentWidgetsDomNode),T._applyLayout(),\nT.pointerHandler=T._register(new s.PointerHandler(T._context,R,T.createPointerHandlerHelper())),T._register(r.addEventListener((function(e){T.eventDispatcher.emitMany(e)}))),T._register(T._cursor.addEventListener((function(e){T.eventDispatcher.emitMany(e)}))),T}return r(t,e),t.prototype._flushAccumulatedAndRenderNow=function(){this._renderNow()},t.prototype.createPointerHandlerHelper=function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this.linesContent.domNode,focusTextArea:function(){e.focus()},getLastRenderData:function(){var t=e.viewCursors.getLastRenderData()||[],n=e._textAreaHandler.getLastRenderData();return new z.PointerHandlerLastRenderData(t,n)},shouldSuppressMouseDownOnViewZone:function(t){return e.viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e.contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.getPositionFromDOMInfo(t,n)},\nvisibleRangeForPosition:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.visibleRangeForPosition(new T.Position(t,n))},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e.viewLines.getLineWidth(t)}}},t.prototype.createTextAreaHandlerHelper=function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.visibleRangeForPosition(new T.Position(t,n))}}},t.prototype._applyLayout=function(){var e=this._context.configuration.options.get(107);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this.overflowGuardContainer.setWidth(e.width),this.overflowGuardContainer.setHeight(e.height),this.linesContent.setWidth(1e6),this.linesContent.setHeight(1e6)},t.prototype.getEditorClassName=function(){var e=this._textAreaHandler.isFocused()?\" focused\":\"\";return this._context.configuration.options.get(104)+\" \"+V.getThemeTypeSelector(this._context.theme.type)+e},t.prototype.onConfigurationChanged=function(e){\nreturn this.domNode.setClassName(this.getEditorClassName()),this._applyLayout(),!1},t.prototype.onContentSizeChanged=function(e){return this.outgoingEvents.emitContentSizeChange(e),!1},t.prototype.onFocusChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),this._context.model.setHasFocus(e.isFocused),e.isFocused?this.outgoingEvents.emitViewFocusGained():this.outgoingEvents.emitViewFocusLost(),!1},t.prototype.onScrollChanged=function(e){return this.outgoingEvents.emitScrollChanged(e),!1},t.prototype.onThemeChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),!1},t.prototype.dispose=function(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this.eventDispatcher.removeEventHandler(this),this.outgoingEvents.dispose(),this.viewLines.dispose();for(var t=0,n=this.viewParts.length;t<n;t++)this.viewParts[t].dispose();this.viewParts=[],e.prototype.dispose.call(this)},t.prototype._renderOnce=function(e){\nvar t=K(e);return this._scheduleRender(),t},t.prototype._scheduleRender=function(){null===this._renderAnimationFrame&&(this._renderAnimationFrame=n.runAtThisOrScheduleAtNextAnimationFrame(this._onRenderScheduled.bind(this),100))},t.prototype._onRenderScheduled=function(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()},t.prototype._renderNow=function(){var e=this;K((function(){return e._actualRender()}))},t.prototype._getViewPartsToRender=function(){for(var e=[],t=0,n=0,i=this.viewParts.length;n<i;n++){var o=this.viewParts[n];o.shouldRender()&&(e[t++]=o)}return e},t.prototype._actualRender=function(){if(n.isInDOM(this.domNode.domNode)){var e=this._getViewPartsToRender();if(this.viewLines.shouldRender()||0!==e.length){var t=this._context.viewLayout.getLinesViewportData();this._context.model.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);var i=new W.ViewportData(this._cursor.getViewSelections(),t,this._context.viewLayout.getWhitespaceViewportData(),this._context.model)\n;this.contentWidgets.shouldRender()&&this.contentWidgets.onBeforeRender(i),this.viewLines.shouldRender()&&(this.viewLines.renderText(i),this.viewLines.onDidRender(),e=this._getViewPartsToRender());for(var o=new O.RenderingContext(this._context.viewLayout,i,this.viewLines),r=0,s=e.length;r<s;r++){(a=e[r]).prepareRender(o)}for(r=0,s=e.length;r<s;r++){var a;(a=e[r]).render(o),a.onDidRender()}}}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._scrollbar.delegateVerticalScrollbarMouseDown(e)},t.prototype.restoreState=function(e){this._context.viewLayout.setScrollPositionNow({scrollTop:e.scrollTop}),this._context.model.tokenizeViewport(),this._renderNow(),this.viewLines.updateLineWidths(),this._context.viewLayout.setScrollPositionNow({scrollLeft:e.scrollLeft})},t.prototype.getOffsetForColumn=function(e,t){var n=this._context.model.validateModelPosition({lineNumber:e,column:t}),i=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(n);this._flushAccumulatedAndRenderNow()\n;var o=this.viewLines.visibleRangeForPosition(new T.Position(i.lineNumber,i.column));return o?o.left:-1},t.prototype.getTargetAtClientPoint=function(e,t){var n=this.pointerHandler.getTargetAtClientPoint(e,t);return n?u.ViewOutgoingEvents.convertViewToModelMouseTarget(n,this._context.model.coordinatesConverter):null},t.prototype.createOverviewRuler=function(e){return new D.OverviewRuler(this._context,e)},t.prototype.change=function(e){var t=this;return this._renderOnce((function(){var n=t.viewZones.changeViewZones(e);return n&&(t._context.viewLayout.onHeightMaybeChanged(),t._context.privateViewEventBus.emit(new F.ViewZonesChangedEvent)),n}))},t.prototype.render=function(e,t){if(t){this.viewLines.forceShouldRender();for(var n=0,i=this.viewParts.length;n<i;n++){this.viewParts[n].forceShouldRender()}}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()},t.prototype.focus=function(){this._textAreaHandler.focusTextArea()},t.prototype.isFocused=function(){return this._textAreaHandler.isFocused()},\nt.prototype.setAriaOptions=function(e){this._textAreaHandler.setAriaOptions(e)},t.prototype.addContentWidget=function(e){this.contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()},t.prototype.layoutContentWidget=function(e){var t=e.position&&e.position.range||null;if(null===t){var n=e.position?e.position.position:null;null!==n&&(t=new R.Range(n.lineNumber,n.column,n.lineNumber,n.column))}var i=e.position?e.position.preference:null;this.contentWidgets.setWidgetPosition(e.widget,t,i),this._scheduleRender()},t.prototype.removeContentWidget=function(e){this.contentWidgets.removeWidget(e.widget),this._scheduleRender()},t.prototype.addOverlayWidget=function(e){this.overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()},t.prototype.layoutOverlayWidget=function(e){var t=e.position?e.position.preference:null;this.overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()},t.prototype.removeOverlayWidget=function(e){\nthis.overlayWidgets.removeWidget(e.widget),this._scheduleRender()},t}(B.ViewEventHandler);function K(e){try{return e()}catch(e){o.onUnexpectedError(e)}}t.View=H})),define(n[121],i([0,1,417,6,10,4,2,46,60,12,32,563,228,33,486,40,13,3,22,190,68,23,17,44,20,488,29,18,11,115,35,14,64,21,487,512,301]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var B=0,V=function(){function e(e,t,n,i,o,r){this.model=e,this.viewModel=t,this.cursor=n,this.view=i,this.hasRealView=o,this.listenersToRemove=r}return e.prototype.dispose=function(){a.dispose(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.cursor.dispose(),this.viewModel.dispose()},e}(),z=function(e){function t(t,n,i,r,a,l,u,c,h,p){var g=e.call(this)||this;g._onDidDispose=g._register(new s.Emitter),g.onDidDispose=g._onDidDispose.event,g._onDidChangeModelContent=g._register(new s.Emitter),\ng.onDidChangeModelContent=g._onDidChangeModelContent.event,g._onDidChangeModelLanguage=g._register(new s.Emitter),g.onDidChangeModelLanguage=g._onDidChangeModelLanguage.event,g._onDidChangeModelLanguageConfiguration=g._register(new s.Emitter),g.onDidChangeModelLanguageConfiguration=g._onDidChangeModelLanguageConfiguration.event,g._onDidChangeModelOptions=g._register(new s.Emitter),g.onDidChangeModelOptions=g._onDidChangeModelOptions.event,g._onDidChangeModelDecorations=g._register(new s.Emitter),g.onDidChangeModelDecorations=g._onDidChangeModelDecorations.event,g._onDidChangeConfiguration=g._register(new s.Emitter),g.onDidChangeConfiguration=g._onDidChangeConfiguration.event,g._onDidChangeModel=g._register(new s.Emitter),g.onDidChangeModel=g._onDidChangeModel.event,g._onDidChangeCursorPosition=g._register(new s.Emitter),g.onDidChangeCursorPosition=g._onDidChangeCursorPosition.event,g._onDidChangeCursorSelection=g._register(new s.Emitter),g.onDidChangeCursorSelection=g._onDidChangeCursorSelection.event,\ng._onDidAttemptReadOnlyEdit=g._register(new s.Emitter),g.onDidAttemptReadOnlyEdit=g._onDidAttemptReadOnlyEdit.event,g._onDidLayoutChange=g._register(new s.Emitter),g.onDidLayoutChange=g._onDidLayoutChange.event,g._editorTextFocus=g._register(new H),g.onDidFocusEditorText=g._editorTextFocus.onDidChangeToTrue,g.onDidBlurEditorText=g._editorTextFocus.onDidChangeToFalse,g._editorWidgetFocus=g._register(new H),g.onDidFocusEditorWidget=g._editorWidgetFocus.onDidChangeToTrue,g.onDidBlurEditorWidget=g._editorWidgetFocus.onDidChangeToFalse,g._onWillType=g._register(new s.Emitter),g.onWillType=g._onWillType.event,g._onDidType=g._register(new s.Emitter),g.onDidType=g._onDidType.event,g._onDidCompositionStart=g._register(new s.Emitter),g.onDidCompositionStart=g._onDidCompositionStart.event,g._onDidCompositionEnd=g._register(new s.Emitter),g.onDidCompositionEnd=g._onDidCompositionEnd.event,g._onDidPaste=g._register(new s.Emitter),g.onDidPaste=g._onDidPaste.event,g._onMouseUp=g._register(new s.Emitter),\ng.onMouseUp=g._onMouseUp.event,g._onMouseDown=g._register(new s.Emitter),g.onMouseDown=g._onMouseDown.event,g._onMouseDrag=g._register(new s.Emitter),g.onMouseDrag=g._onMouseDrag.event,g._onMouseDrop=g._register(new s.Emitter),g.onMouseDrop=g._onMouseDrop.event,g._onContextMenu=g._register(new s.Emitter),g.onContextMenu=g._onContextMenu.event,g._onMouseMove=g._register(new s.Emitter),g.onMouseMove=g._onMouseMove.event,g._onMouseLeave=g._register(new s.Emitter),g.onMouseLeave=g._onMouseLeave.event,g._onMouseWheel=g._register(new s.Emitter),g.onMouseWheel=g._onMouseWheel.event,g._onKeyUp=g._register(new s.Emitter),g.onKeyUp=g._onKeyUp.event,g._onKeyDown=g._register(new s.Emitter),g.onKeyDown=g._onKeyDown.event,g._onDidContentSizeChange=g._register(new s.Emitter),g.onDidContentSizeChange=g._onDidContentSizeChange.event,g._onDidScrollChange=g._register(new s.Emitter),g.onDidScrollChange=g._onDidScrollChange.event,g._onDidChangeViewZones=g._register(new s.Emitter),\ng.onDidChangeViewZones=g._onDidChangeViewZones.event,g._domElement=t,g._id=++B,g._decorationTypeKeysToIds={},g._decorationTypeSubtypes={},g.isSimpleWidget=i.isSimpleWidget||!1,g._telemetryData=i.telemetryData,n=n||{},g._configuration=g._register(g._createConfiguration(n,p)),g._register(g._configuration.onDidChange((function(e){g._onDidChangeConfiguration.fire(e);var t=g._configuration.options;if(e.hasChanged(107)){var n=t.get(107);g._onDidLayoutChange.fire(n)}}))),g._contextKeyService=g._register(u.createScoped(g._domElement)),g._notificationService=h,g._codeEditorService=a,g._commandService=l,g._themeService=c,g._register(new K(g,g._contextKeyService)),g._register(new U(g,g._contextKeyService)),g._instantiationService=r.createChild(new T.ServiceCollection([M.IContextKeyService,g._contextKeyService])),g._modelData=null,g._contributions={},g._actions={},g._focusTracker=new j(t),g._focusTracker.onChange((function(){g._editorWidgetFocus.setValue(g._focusTracker.hasFocus())})),g._contentWidgets={},\ng._overlayWidgets={};for(var f=0,m=Array.isArray(i.contributions)?i.contributions:d.EditorExtensionsRegistry.getEditorContributions();f<m.length;f++){var v=m[f];try{var _=g._instantiationService.createInstance(v.ctor,g);g._contributions[v.id]=_}catch(e){o.onUnexpectedError(e)}}return d.EditorExtensionsRegistry.getEditorActions().forEach((function(e){var t=new S.InternalEditorAction(e.id,e.label,e.alias,A.withNullAsUndefined(e.precondition),(function(){return g._instantiationService.invokeFunction((function(t){return Promise.resolve(e.runEditorCommand(t,g,null))}))}),g._contextKeyService);g._actions[t.id]=t})),g._codeEditorService.addCodeEditor(g),g}return r(t,e),t.prototype._createConfiguration=function(e,t){return new u.Configuration(this.isSimpleWidget,e,this._domElement,t)},t.prototype.getId=function(){return this.getEditorType()+\":\"+this._id},t.prototype.getEditorType=function(){return w.EditorType.ICodeEditor},t.prototype.dispose=function(){this._codeEditorService.removeCodeEditor(this),\nthis._focusTracker.dispose();for(var t=Object.keys(this._contributions),n=0,i=t.length;n<i;n++){var o=t[n];this._contributions[o].dispose()}this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),e.prototype.dispose.call(this)},t.prototype.invokeWithinContext=function(e){return this._instantiationService.invokeFunction(e)},t.prototype.updateOptions=function(e){this._configuration.updateOptions(e)},t.prototype.getOptions=function(){return this._configuration.options},t.prototype.getOption=function(e){return this._configuration.options.get(e)},t.prototype.getRawOptions=function(){return this._configuration.getRawOptions()},t.prototype.getValue=function(e){if(void 0===e&&(e=null),!this._modelData)return\"\";var t=!(!e||!e.preserveBOM),n=0;return e&&e.lineEnding&&\"\\n\"===e.lineEnding?n=1:e&&e.lineEnding&&\"\\r\\n\"===e.lineEnding&&(n=2),this._modelData.model.getValue(n,t)},t.prototype.setValue=function(e){this._modelData&&this._modelData.model.setValue(e)},\nt.prototype.getModel=function(){return this._modelData?this._modelData.model:null},t.prototype.setModel=function(e){void 0===e&&(e=null);var t=e;if(!(null===this._modelData&&null===t||this._modelData&&this._modelData.model===t)){var n=this.hasTextFocus(),i=this._detachModel();this._attachModel(t),n&&this.hasModel()&&this.focus();var o={oldModelUrl:i?i.uri:null,newModelUrl:t?t.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(o),this._postDetachModelCleanup(i)}},t.prototype._removeDecorationTypes=function(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(var e in this._decorationTypeSubtypes){var t=this._decorationTypeSubtypes[e];for(var n in t)this._removeDecorationType(e+\"-\"+n)}this._decorationTypeSubtypes={}}},t.prototype.getVisibleRanges=function(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]},t.prototype.getWhitespaces=function(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]},\nt._getVerticalOffsetForPosition=function(e,t,n){var i=e.model.validatePosition({lineNumber:t,column:n}),o=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber)},t.prototype.getTopForLineNumber=function(e){return this._modelData?t._getVerticalOffsetForPosition(this._modelData,e,1):-1},t.prototype.getTopForPosition=function(e,n){return this._modelData?t._getVerticalOffsetForPosition(this._modelData,e,n):-1},t.prototype.setHiddenAreas=function(e){this._modelData&&this._modelData.viewModel.setHiddenAreas(e.map((function(e){return C.Range.lift(e)})))},t.prototype.getVisibleColumnFromPosition=function(e){if(!this._modelData)return e.column;var t=this._modelData.model.validatePosition(e),n=this._modelData.model.getOptions().tabSize;return _.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,n)+1},t.prototype.getPosition=function(){\nreturn this._modelData?this._modelData.cursor.getPosition():null},t.prototype.setPosition=function(e){if(this._modelData){if(!y.Position.isIPosition(e))throw new Error(\"Invalid arguments\");this._modelData.cursor.setSelections(\"api\",[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}},t.prototype._sendRevealRange=function(e,t,n,i){if(this._modelData){if(!C.Range.isIRange(e))throw new Error(\"Invalid arguments\");var o=this._modelData.model.validateRange(e),r=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.cursor.emitCursorRevealRange(\"api\",r,t,n,i)}},t.prototype.revealLine=function(e,t){void 0===t&&(t=0),this._revealLine(e,0,t)},t.prototype.revealLineInCenter=function(e,t){void 0===t&&(t=0),this._revealLine(e,1,t)},t.prototype.revealLineInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealLine(e,2,t)},t.prototype._revealLine=function(e,t,n){\nif(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e,1,e,1),t,!1,n)},t.prototype.revealPosition=function(e,t){void 0===t&&(t=0),this._revealPosition(e,0,!0,t)},t.prototype.revealPositionInCenter=function(e,t){void 0===t&&(t=0),this._revealPosition(e,1,!0,t)},t.prototype.revealPositionInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealPosition(e,2,!0,t)},t.prototype._revealPosition=function(e,t,n,i){if(!y.Position.isIPosition(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e.lineNumber,e.column,e.lineNumber,e.column),t,n,i)},t.prototype.getSelection=function(){return this._modelData?this._modelData.cursor.getSelection():null},t.prototype.getSelections=function(){return this._modelData?this._modelData.cursor.getSelections():null},t.prototype.setSelection=function(e){var t=b.Selection.isISelection(e),n=C.Range.isIRange(e);if(!t&&!n)throw new Error(\"Invalid arguments\");if(t)this._setSelectionImpl(e);else if(n){var i={\nselectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i)}},t.prototype._setSelectionImpl=function(e){if(this._modelData){var t=new b.Selection(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.cursor.setSelections(\"api\",[t])}},t.prototype.revealLines=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,0,n)},t.prototype.revealLinesInCenter=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,1,n)},t.prototype.revealLinesInCenterIfOutsideViewport=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,2,n)},t.prototype._revealLines=function(e,t,n,i){if(\"number\"!=typeof e||\"number\"!=typeof t)throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e,1,t,1),n,!1,i)},t.prototype.revealRange=function(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===i&&(i=!0),this._revealRange(e,n?1:0,i,t)},\nt.prototype.revealRangeInCenter=function(e,t){void 0===t&&(t=0),this._revealRange(e,1,!0,t)},t.prototype.revealRangeInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealRange(e,2,!0,t)},t.prototype.revealRangeAtTop=function(e,t){void 0===t&&(t=0),this._revealRange(e,3,!0,t)},t.prototype._revealRange=function(e,t,n,i){if(!C.Range.isIRange(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(C.Range.lift(e),t,n,i)},t.prototype.setSelections=function(e,t){if(void 0===t&&(t=\"api\"),this._modelData){if(!e||0===e.length)throw new Error(\"Invalid arguments\");for(var n=0,i=e.length;n<i;n++)if(!b.Selection.isISelection(e[n]))throw new Error(\"Invalid arguments\");this._modelData.cursor.setSelections(t,e)}},t.prototype.getContentWidth=function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1},t.prototype.getScrollWidth=function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1},t.prototype.getScrollLeft=function(){\nreturn this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1},t.prototype.getContentHeight=function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1},t.prototype.getScrollHeight=function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1},t.prototype.getScrollTop=function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1},t.prototype.setScrollLeft=function(e){if(this._modelData){if(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPositionNow({scrollLeft:e})}},t.prototype.setScrollTop=function(e){if(this._modelData){if(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPositionNow({scrollTop:e})}},t.prototype.setScrollPosition=function(e){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPositionNow(e)},t.prototype.saveViewState=function(){\nif(!this._modelData)return null;for(var e={},t=0,n=Object.keys(this._contributions);t<n.length;t++){var i=n[t],o=this._contributions[i];\"function\"==typeof o.saveViewState&&(e[i]=o.saveViewState())}return{cursorState:this._modelData.cursor.saveState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}},t.prototype.restoreViewState=function(e){if(this._modelData&&this._modelData.hasRealView){var t=e;if(t&&t.cursorState&&t.viewState){var n=t.cursorState;Array.isArray(n)?this._modelData.cursor.restoreState(n):this._modelData.cursor.restoreState([n]);for(var i=t.contributionsState||{},o=Object.keys(this._contributions),r=0,s=o.length;r<s;r++){var a=o[r],l=this._contributions[a];\"function\"==typeof l.restoreViewState&&l.restoreViewState(i[a])}var u=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(u)}}},t.prototype.getContribution=function(e){return this._contributions[e]||null},t.prototype.getActions=function(){\nfor(var e=[],t=Object.keys(this._actions),n=0,i=t.length;n<i;n++){var o=t[n];e.push(this._actions[o])}return e},t.prototype.getSupportedActions=function(){var e=this.getActions();return e=e.filter((function(e){return e.isSupported()}))},t.prototype.getAction=function(e){return this._actions[e]||null},t.prototype.trigger=function(e,t,n){if(n=n||{},t===w.Handler.Type){if(!this._modelData||\"string\"!=typeof n.text||0===n.text.length)return;return\"keyboard\"===e&&this._onWillType.fire(n.text),this._modelData.cursor.trigger(e,t,n),void(\"keyboard\"===e&&this._onDidType.fire(n.text))}if(t!==w.Handler.Paste){var i=this.getAction(t);i?Promise.resolve(i.run()).then(void 0,o.onUnexpectedError):this._modelData&&(this._triggerEditorCommand(e,t,n)||(this._modelData.cursor.trigger(e,t,n),t===w.Handler.CompositionStart&&this._onDidCompositionStart.fire(),t===w.Handler.CompositionEnd&&this._onDidCompositionEnd.fire()))}else{if(!this._modelData||\"string\"!=typeof n.text||0===n.text.length)return\n;var r=this._modelData.cursor.getSelection().getStartPosition();this._modelData.cursor.trigger(e,t,n);var s=this._modelData.cursor.getSelection().getStartPosition();\"keyboard\"===e&&this._onDidPaste.fire({range:new C.Range(r.lineNumber,r.column,s.lineNumber,s.column),mode:n.mode})}},t.prototype._triggerEditorCommand=function(e,t,n){var i=this,r=d.EditorExtensionsRegistry.getEditorCommand(t);return!!r&&((n=n||{}).source=e,this._instantiationService.invokeFunction((function(e){Promise.resolve(r.runEditorCommand(e,i,n)).then(void 0,o.onUnexpectedError)})),!0)},t.prototype._getCursors=function(){return this._modelData?this._modelData.cursor:null},t.prototype.pushUndoStop=function(){return!!this._modelData&&(!this._configuration.options.get(68)&&(this._modelData.model.pushStackElement(),!0))},t.prototype.executeEdits=function(e,t,n){return!!this._modelData&&(!this._configuration.options.get(68)&&(i=n?Array.isArray(n)?function(){return n}:n:function(){return null},this._modelData.cursor.executeEdits(e,t,i),!0))\n;var i},t.prototype.executeCommand=function(e,t){this._modelData&&this._modelData.cursor.trigger(e,w.Handler.ExecuteCommand,t)},t.prototype.executeCommands=function(e,t){this._modelData&&this._modelData.cursor.trigger(e,w.Handler.ExecuteCommands,t)},t.prototype.changeDecorations=function(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null},t.prototype.getLineDecorations=function(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,m.filterValidationDecorations(this._configuration.options)):null},t.prototype.deltaDecorations=function(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]},t.prototype.removeDecorations=function(e){var t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]},\nt.prototype.getLayoutInfo=function(){return this._configuration.options.get(107)},t.prototype.createOverviewRuler=function(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null},t.prototype.getContainerDomNode=function(){return this._domElement},t.prototype.getDomNode=function(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarMouseDown(e)},t.prototype.layout=function(e){this._configuration.observeReferenceElement(e),this.render()},t.prototype.focus=function(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()},t.prototype.hasTextFocus=function(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()},t.prototype.hasWidgetFocus=function(){return this._focusTracker&&this._focusTracker.hasFocus()},\nt.prototype.addContentWidget=function(e){var t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting a content widget with the same id.\"),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)},t.prototype.layoutContentWidget=function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(n)}},t.prototype.removeContentWidget=function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(n)}},t.prototype.addOverlayWidget=function(e){var t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting an overlay widget with the same id.\"),\nthis._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)},t.prototype.layoutOverlayWidget=function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(n)}},t.prototype.removeOverlayWidget=function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(n)}},t.prototype.changeViewZones=function(e){this._modelData&&this._modelData.hasRealView&&(this._modelData.view.change(e)&&this._onDidChangeViewZones.fire())},t.prototype.getTargetAtClientPoint=function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null},t.prototype.getScrolledVisiblePosition=function(e){\nif(!this._modelData||!this._modelData.hasRealView)return null;var n=this._modelData.model.validatePosition(e),i=this._configuration.options,o=i.get(107);return{top:t._getVerticalOffsetForPosition(this._modelData,n.lineNumber,n.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(n.lineNumber,n.column)+o.glyphMarginWidth+o.lineNumbersWidth+o.decorationsWidth-this.getScrollLeft(),height:i.get(49)}},t.prototype.getOffsetForColumn=function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1},t.prototype.render=function(e){void 0===e&&(e=!1),this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)},t.prototype.setAriaOptions=function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)},t.prototype.applyFontInfo=function(e){u.Configuration.applyFontInfoSlow(e,this._configuration.options.get(34))},t.prototype._attachModel=function(e){var t=this;if(e){var o=[]\n;this._domElement.setAttribute(\"data-mode-id\",e.getLanguageIdentifier().language),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setMaxLineNumber(e.getLineCount()),e.onBeforeAttached();var r=new x.ViewModel(this._id,this._configuration,e,W.DOMLineBreaksComputerFactory.create(),F.MonospaceLineBreaksComputerFactory.create(this._configuration.options),(function(e){return i.scheduleAtNextAnimationFrame(e)}));o.push(e.onDidChangeDecorations((function(e){return t._onDidChangeModelDecorations.fire(e)}))),o.push(e.onDidChangeLanguage((function(n){t._domElement.setAttribute(\"data-mode-id\",e.getLanguageIdentifier().language),t._onDidChangeModelLanguage.fire(n)}))),o.push(e.onDidChangeLanguageConfiguration((function(e){return t._onDidChangeModelLanguageConfiguration.fire(e)}))),o.push(e.onDidChangeContent((function(e){return t._onDidChangeModelContent.fire(e)}))),o.push(e.onDidChangeOptions((function(e){return t._onDidChangeModelOptions.fire(e)}))),\no.push(e.onWillDispose((function(){return t.setModel(null)})));var s=new v.Cursor(this._configuration,e,r);o.push(s.onDidReachMaxCursorCount((function(){t._notificationService.warn(n.localize(0,null,v.Cursor.MAX_CURSOR_COUNT))}))),o.push(s.onDidAttemptReadOnlyEdit((function(){t._onDidAttemptReadOnlyEdit.fire(void 0)}))),o.push(s.onDidChange((function(e){for(var n=[],i=0,o=e.selections.length;i<o;i++)n[i]=e.selections[i].getPosition();var r={position:n[0],secondaryPositions:n.slice(1),reason:e.reason,source:e.source};t._onDidChangeCursorPosition.fire(r);var s={selection:e.selections[0],secondarySelections:e.selections.slice(1),modelVersionId:e.modelVersionId,oldSelections:e.oldSelections,oldModelVersionId:e.oldModelVersionId,source:e.source,reason:e.reason};t._onDidChangeCursorSelection.fire(s)})));var a=this._createView(r,s),l=a[0],u=a[1];if(u){this._domElement.appendChild(l.domNode.domNode);for(var d=Object.keys(this._contentWidgets),c=0,h=d.length;c<h;c++){var p=d[c]\n;l.addContentWidget(this._contentWidgets[p])}for(c=0,h=(d=Object.keys(this._overlayWidgets)).length;c<h;c++){p=d[c];l.addOverlayWidget(this._overlayWidgets[p])}l.render(!1,!0),l.domNode.domNode.setAttribute(\"data-uri\",e.uri.toString())}this._modelData=new V(e,r,s,l,u,o)}else this._modelData=null},t.prototype._createView=function(e,t){var n,i=this;n=this.isSimpleWidget?{executeEditorCommand:function(e,n){e.runCoreEditorCommand(t,n)},paste:function(e,t,n,o,r){i.trigger(e,w.Handler.Paste,{text:t,pasteOnNewLine:n,multicursorText:o,mode:r})},type:function(e,t){i.trigger(e,w.Handler.Type,{text:t})},replacePreviousChar:function(e,t,n){i.trigger(e,w.Handler.ReplacePreviousChar,{text:t,replaceCharCnt:n})},compositionStart:function(e){i.trigger(e,w.Handler.CompositionStart,void 0)},compositionEnd:function(e){i.trigger(e,w.Handler.CompositionEnd,void 0)},cut:function(e){i.trigger(e,w.Handler.Cut,void 0)}}:{executeEditorCommand:function(e,n){e.runCoreEditorCommand(t,n)},paste:function(e,t,n,o,r){\ni._commandService.executeCommand(w.Handler.Paste,{text:t,pasteOnNewLine:n,multicursorText:o,mode:r})},type:function(e,t){i._commandService.executeCommand(w.Handler.Type,{text:t})},replacePreviousChar:function(e,t,n){i._commandService.executeCommand(w.Handler.ReplacePreviousChar,{text:t,replaceCharCnt:n})},compositionStart:function(e){i._commandService.executeCommand(w.Handler.CompositionStart,{})},compositionEnd:function(e){i._commandService.executeCommand(w.Handler.CompositionEnd,{})},cut:function(e){i._commandService.executeCommand(w.Handler.Cut,{})}};var o=new f.ViewOutgoingEvents(e);return o.onDidContentSizeChange=function(e){return i._onDidContentSizeChange.fire(e)},o.onDidScroll=function(e){return i._onDidScrollChange.fire(e)},o.onDidGainFocus=function(){return i._editorTextFocus.setValue(!0)},o.onDidLoseFocus=function(){return i._editorTextFocus.setValue(!1)},o.onContextMenu=function(e){return i._onContextMenu.fire(e)},o.onMouseDown=function(e){return i._onMouseDown.fire(e)},o.onMouseUp=function(e){\nreturn i._onMouseUp.fire(e)},o.onMouseDrag=function(e){return i._onMouseDrag.fire(e)},o.onMouseDrop=function(e){return i._onMouseDrop.fire(e)},o.onKeyUp=function(e){return i._onKeyUp.fire(e)},o.onMouseMove=function(e){return i._onMouseMove.fire(e)},o.onMouseLeave=function(e){return i._onMouseLeave.fire(e)},o.onMouseWheel=function(e){return i._onMouseWheel.fire(e)},o.onKeyDown=function(e){return i._onKeyDown.fire(e)},[new p.View(n,this._configuration,this._themeService,e,t,o),!0]},t.prototype._postDetachModelCleanup=function(e){e&&e.removeAllDecorationsWithOwnerId(this._id)},t.prototype._detachModel=function(){if(!this._modelData)return null;var e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute(\"data-mode-id\"),t&&this._domElement.removeChild(t),e},t.prototype._removeDecorationType=function(e){this._codeEditorService.removeDecorationType(e)},t.prototype.hasModel=function(){\nreturn null!==this._modelData},t=h([g(3,k.IInstantiationService),g(4,c.ICodeEditorService),g(5,I.ICommandService),g(6,M.IContextKeyService),g(7,O.IThemeService),g(8,R.INotificationService),g(9,P.IAccessibilityService)],t)}(a.Disposable);t.CodeEditorWidget=z;var H=function(e){function t(){var t=e.call(this)||this;return t._onDidChangeToTrue=t._register(new s.Emitter),t.onDidChangeToTrue=t._onDidChangeToTrue.event,t._onDidChangeToFalse=t._register(new s.Emitter),t.onDidChangeToFalse=t._onDidChangeToFalse.event,t._value=0,t}return r(t,e),t.prototype.setValue=function(e){var t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())},t}(a.Disposable);t.BooleanEventEmitter=H;var K=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,n.createKey(\"editorId\",t.getId()),i._editorSimpleInput=E.EditorContextKeys.editorSimpleInput.bindTo(n),i._editorFocus=E.EditorContextKeys.focus.bindTo(n),\ni._textInputFocus=E.EditorContextKeys.textInputFocus.bindTo(n),i._editorTextFocus=E.EditorContextKeys.editorTextFocus.bindTo(n),i._editorTabMovesFocus=E.EditorContextKeys.tabMovesFocus.bindTo(n),i._editorReadonly=E.EditorContextKeys.readOnly.bindTo(n),i._hasMultipleSelections=E.EditorContextKeys.hasMultipleSelections.bindTo(n),i._hasNonEmptySelection=E.EditorContextKeys.hasNonEmptySelection.bindTo(n),i._canUndo=E.EditorContextKeys.canUndo.bindTo(n),i._canRedo=E.EditorContextKeys.canRedo.bindTo(n),i._register(i._editor.onDidChangeConfiguration((function(){return i._updateFromConfig()}))),i._register(i._editor.onDidChangeCursorSelection((function(){return i._updateFromSelection()}))),i._register(i._editor.onDidFocusEditorWidget((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidBlurEditorWidget((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidFocusEditorText((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidBlurEditorText((function(){\nreturn i._updateFromFocus()}))),i._register(i._editor.onDidChangeModel((function(){return i._updateFromModel()}))),i._register(i._editor.onDidChangeConfiguration((function(){return i._updateFromModel()}))),i._updateFromConfig(),i._updateFromSelection(),i._updateFromFocus(),i._updateFromModel(),i._editorSimpleInput.set(i._editor.isSimpleWidget),i}return r(t,e),t.prototype._updateFromConfig=function(){var e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(106)),this._editorReadonly.set(e.get(68))},t.prototype._updateFromSelection=function(){var e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((function(e){return!e.isEmpty()})))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())},t.prototype._updateFromFocus=function(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),\nthis._textInputFocus.set(this._editor.hasTextFocus())},t.prototype._updateFromModel=function(){var e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))},t}(a.Disposable),U=function(e){function t(t,n){var i=e.call(this)||this;i._editor=t,i._contextKeyService=n,i._langId=E.EditorContextKeys.languageId.bindTo(n),i._hasCompletionItemProvider=E.EditorContextKeys.hasCompletionItemProvider.bindTo(n),i._hasCodeActionsProvider=E.EditorContextKeys.hasCodeActionsProvider.bindTo(n),i._hasCodeLensProvider=E.EditorContextKeys.hasCodeLensProvider.bindTo(n),i._hasDefinitionProvider=E.EditorContextKeys.hasDefinitionProvider.bindTo(n),i._hasDeclarationProvider=E.EditorContextKeys.hasDeclarationProvider.bindTo(n),i._hasImplementationProvider=E.EditorContextKeys.hasImplementationProvider.bindTo(n),i._hasTypeDefinitionProvider=E.EditorContextKeys.hasTypeDefinitionProvider.bindTo(n),i._hasHoverProvider=E.EditorContextKeys.hasHoverProvider.bindTo(n),\ni._hasDocumentHighlightProvider=E.EditorContextKeys.hasDocumentHighlightProvider.bindTo(n),i._hasDocumentSymbolProvider=E.EditorContextKeys.hasDocumentSymbolProvider.bindTo(n),i._hasReferenceProvider=E.EditorContextKeys.hasReferenceProvider.bindTo(n),i._hasRenameProvider=E.EditorContextKeys.hasRenameProvider.bindTo(n),i._hasSignatureHelpProvider=E.EditorContextKeys.hasSignatureHelpProvider.bindTo(n),i._hasDocumentFormattingProvider=E.EditorContextKeys.hasDocumentFormattingProvider.bindTo(n),i._hasDocumentSelectionFormattingProvider=E.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(n),i._hasMultipleDocumentFormattingProvider=E.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(n),i._hasMultipleDocumentSelectionFormattingProvider=E.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(n),i._isInWalkThrough=E.EditorContextKeys.isInEmbeddedEditor.bindTo(n);var o=function(){return i._update()};return i._register(t.onDidChangeModel(o)),\ni._register(t.onDidChangeModelLanguage(o)),i._register(L.CompletionProviderRegistry.onDidChange(o)),i._register(L.CodeActionProviderRegistry.onDidChange(o)),i._register(L.CodeLensProviderRegistry.onDidChange(o)),i._register(L.DefinitionProviderRegistry.onDidChange(o)),i._register(L.DeclarationProviderRegistry.onDidChange(o)),i._register(L.ImplementationProviderRegistry.onDidChange(o)),i._register(L.TypeDefinitionProviderRegistry.onDidChange(o)),i._register(L.HoverProviderRegistry.onDidChange(o)),i._register(L.DocumentHighlightProviderRegistry.onDidChange(o)),i._register(L.DocumentSymbolProviderRegistry.onDidChange(o)),i._register(L.ReferenceProviderRegistry.onDidChange(o)),i._register(L.RenameProviderRegistry.onDidChange(o)),i._register(L.DocumentFormattingEditProviderRegistry.onDidChange(o)),i._register(L.DocumentRangeFormattingEditProviderRegistry.onDidChange(o)),i._register(L.SignatureHelpProviderRegistry.onDidChange(o)),o(),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},\nt.prototype.reset=function(){var e=this;this._contextKeyService.bufferChangeEvents((function(){e._langId.reset(),e._hasCompletionItemProvider.reset(),e._hasCodeActionsProvider.reset(),e._hasCodeLensProvider.reset(),e._hasDefinitionProvider.reset(),e._hasDeclarationProvider.reset(),e._hasImplementationProvider.reset(),e._hasTypeDefinitionProvider.reset(),e._hasHoverProvider.reset(),e._hasDocumentHighlightProvider.reset(),e._hasDocumentSymbolProvider.reset(),e._hasReferenceProvider.reset(),e._hasRenameProvider.reset(),e._hasDocumentFormattingProvider.reset(),e._hasDocumentSelectionFormattingProvider.reset(),e._hasSignatureHelpProvider.reset(),e._isInWalkThrough.reset()}))},t.prototype._update=function(){var e=this,t=this._editor.getModel();t?this._contextKeyService.bufferChangeEvents((function(){e._langId.set(t.getLanguageIdentifier().language),e._hasCompletionItemProvider.set(L.CompletionProviderRegistry.has(t)),e._hasCodeActionsProvider.set(L.CodeActionProviderRegistry.has(t)),\ne._hasCodeLensProvider.set(L.CodeLensProviderRegistry.has(t)),e._hasDefinitionProvider.set(L.DefinitionProviderRegistry.has(t)),e._hasDeclarationProvider.set(L.DeclarationProviderRegistry.has(t)),e._hasImplementationProvider.set(L.ImplementationProviderRegistry.has(t)),e._hasTypeDefinitionProvider.set(L.TypeDefinitionProviderRegistry.has(t)),e._hasHoverProvider.set(L.HoverProviderRegistry.has(t)),e._hasDocumentHighlightProvider.set(L.DocumentHighlightProviderRegistry.has(t)),e._hasDocumentSymbolProvider.set(L.DocumentSymbolProviderRegistry.has(t)),e._hasReferenceProvider.set(L.ReferenceProviderRegistry.has(t)),e._hasRenameProvider.set(L.RenameProviderRegistry.has(t)),e._hasSignatureHelpProvider.set(L.SignatureHelpProviderRegistry.has(t)),e._hasDocumentFormattingProvider.set(L.DocumentFormattingEditProviderRegistry.has(t)||L.DocumentRangeFormattingEditProviderRegistry.has(t)),e._hasDocumentSelectionFormattingProvider.set(L.DocumentRangeFormattingEditProviderRegistry.has(t)),\ne._hasMultipleDocumentFormattingProvider.set(L.DocumentFormattingEditProviderRegistry.all(t).length+L.DocumentRangeFormattingEditProviderRegistry.all(t).length>1),e._hasMultipleDocumentSelectionFormattingProvider.set(L.DocumentRangeFormattingEditProviderRegistry.all(t).length>1),e._isInWalkThrough.set(t.uri.scheme===l.Schemas.walkThroughSnippet)})):this.reset()},t}(a.Disposable);t.EditorModeContext=U;var j=function(e){function t(t){var n=e.call(this)||this;return n._onChange=n._register(new s.Emitter),n.onChange=n._onChange.event,n._hasFocus=!1,n._domFocusTracker=n._register(i.trackFocus(t)),n._register(n._domFocusTracker.onDidFocus((function(){n._hasFocus=!0,n._onChange.fire(void 0)}))),n._register(n._domFocusTracker.onDidBlur((function(){n._hasFocus=!1,n._onChange.fire(void 0)}))),n}return r(t,e),t.prototype.hasFocus=function(){return this._hasFocus},t\n}(a.Disposable),q=encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='\"),G=encodeURIComponent(\"'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>\");function Y(e){return q+encodeURIComponent(e.toString())+G}var Z=encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"'),$=encodeURIComponent('\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>');O.registerThemingParticipant((function(e,t){var n=e.getColor(N.editorErrorBorder);n&&t.addRule(\".monaco-editor .squiggly-error { border-bottom: 4px double \"+n+\"; }\");var i=e.getColor(N.editorErrorForeground);i&&t.addRule('.monaco-editor .squiggly-error { background: url(\"data:image/svg+xml,'+Y(i)+'\") repeat-x bottom left; }');var o=e.getColor(N.editorWarningBorder)\n;o&&t.addRule(\".monaco-editor .squiggly-warning { border-bottom: 4px double \"+o+\"; }\");var r=e.getColor(N.editorWarningForeground);r&&t.addRule('.monaco-editor .squiggly-warning { background: url(\"data:image/svg+xml,'+Y(r)+'\") repeat-x bottom left; }');var s=e.getColor(N.editorInfoBorder);s&&t.addRule(\".monaco-editor .squiggly-info { border-bottom: 4px double \"+s+\"; }\");var a=e.getColor(N.editorInfoForeground);a&&t.addRule('.monaco-editor .squiggly-info { background: url(\"data:image/svg+xml,'+Y(a)+'\") repeat-x bottom left; }');var l=e.getColor(N.editorHintBorder);l&&t.addRule(\".monaco-editor .squiggly-hint { border-bottom: 2px dotted \"+l+\"; }\");var u=e.getColor(N.editorHintForeground);u&&t.addRule('.monaco-editor .squiggly-hint { background: url(\"data:image/svg+xml,'+(Z+encodeURIComponent(u.toString())+$)+'\") no-repeat bottom left; }');var d=e.getColor(D.editorUnnecessaryCodeOpacity);d&&t.addRule(\".monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: \"+d.rgba.a+\"; }\")\n;var c=e.getColor(D.editorUnnecessaryCodeBorder);c&&t.addRule(\".monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed \"+c+\"; }\");var h=e.getColor(N.editorForeground)||\"inherit\";t.addRule(\".monaco-editor .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: \"+h+\"}\")}))})),define(n[564],i([0,1,419,6,28,70,53,55,2,60,12,32,33,93,13,44,110,69,18,20,14,300]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(){function e(e,t,n,i){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=n,this.modifiedLineEnd=i}return e.prototype.getType=function(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0},e}(),w=function(e){this.entries=e},E=function(e){function t(t){var r=e.call(this)||this;return r._width=0,r._diffEditor=t,r._isVisible=!1,r.shadow=o.createFastDomNode(document.createElement(\"div\")),r.shadow.setClassName(\"diff-review-shadow\"),\nr.actionBarContainer=o.createFastDomNode(document.createElement(\"div\")),r.actionBarContainer.setClassName(\"diff-review-actions\"),r._actionBar=r._register(new s.ActionBar(r.actionBarContainer.domNode)),r._actionBar.push(new l.Action(\"diffreview.close\",n.localize(0,null),\"close-diff-review\",!0,(function(){return r.hide(),Promise.resolve(null)})),{label:!1,icon:!0}),r.domNode=o.createFastDomNode(document.createElement(\"div\")),r.domNode.setClassName(\"diff-review monaco-editor-background\"),r._content=o.createFastDomNode(document.createElement(\"div\")),r._content.setClassName(\"diff-review-content\"),r.scrollbar=r._register(new a.DomScrollableElement(r._content.domNode,{})),r.domNode.domNode.appendChild(r.scrollbar.getDomNode()),r._register(t.onDidUpdateDiff((function(){r._isVisible&&(r._diffs=r._compute(),r._render())}))),r._register(t.getModifiedEditor().onDidChangeCursorPosition((function(){r._isVisible&&r._render()}))),r._register(t.getOriginalEditor().onDidFocusEditorWidget((function(){r._isVisible&&r.hide()}))),\nr._register(t.getModifiedEditor().onDidFocusEditorWidget((function(){r._isVisible&&r.hide()}))),r._register(i.addStandardDisposableListener(r.domNode.domNode,\"click\",(function(e){e.preventDefault();var t=i.findParentWithClass(e.target,\"diff-review-row\");t&&r._goToRow(t)}))),r._register(i.addStandardDisposableListener(r.domNode.domNode,\"keydown\",(function(e){(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),r._goToRow(r._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),r._goToRow(r._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),r.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),r.accept())}))),r._diffs=[],r._currentDiff=null,r}return r(t,e),t.prototype.prev=function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=this._diffs.length+t-1\n}else e=this._findDiffIndex(this._diffEditor.getPosition());0!==this._diffs.length&&(e%=this._diffs.length,this._diffEditor.setPosition(new f.Position(this._diffs[e].entries[0].modifiedLineStart,1)),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow()))},t.prototype.next=function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());0!==this._diffs.length&&(e%=this._diffs.length,this._diffEditor.setPosition(new f.Position(this._diffs[e].entries[0].modifiedLineStart,1)),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow()))},t.prototype.accept=function(){var e=-1,t=this._getCurrentFocusedRow();if(t){var n=parseInt(t.getAttribute(\"data-line\"),10);isNaN(n)||(e=n)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new f.Position(e,1)),\nthis._diffEditor.revealPosition(new f.Position(e,1),1))},t.prototype.hide=function(){this._isVisible=!1,this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()},t.prototype._getPrevRow=function(){var e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()},t.prototype._getNextRow=function(){var e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()},t.prototype._getFirstRow=function(){return this.domNode.domNode.querySelector(\".diff-review-row\")},t.prototype._getCurrentFocusedRow=function(){var e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null},t.prototype._goToRow=function(e){var t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()},t.prototype.isVisible=function(){return this._isVisible},t.prototype.layout=function(e,t,n){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),\nthis.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(n),this._content.setHeight(n),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute(\"aria-hidden\",\"false\"),this.actionBarContainer.setDisplay(\"block\")):(this.actionBarContainer.setAttribute(\"aria-hidden\",\"true\"),this.actionBarContainer.setDisplay(\"none\"))},t.prototype._compute=function(){var e=this._diffEditor.getLineChanges();if(!e||0===e.length)return[];var n=this._diffEditor.getOriginalEditor().getModel(),i=this._diffEditor.getModifiedEditor().getModel();return n&&i?t._mergeAdjacent(e,n.getLineCount(),i.getLineCount()):[]},t._mergeAdjacent=function(e,t,n){if(!e||0===e.length)return[];for(var i=[],o=0,r=0,s=e.length;r<s;r++){var a=e[r],l=a.originalStartLineNumber,u=a.originalEndLineNumber,d=a.modifiedStartLineNumber,c=a.modifiedEndLineNumber,h=[],p=0,g=0===u?l:l-1,f=0===c?d:d-1,m=1,v=1;if(r>0){var _=e[r-1]\n;m=0===_.originalEndLineNumber?_.originalStartLineNumber+1:_.originalEndLineNumber+1,v=0===_.modifiedEndLineNumber?_.modifiedStartLineNumber+1:_.modifiedEndLineNumber+1}var y=g-3+1,C=f-3+1;if(y<m)y+=x=m-y,C+=x;if(C<v)y+=x=v-C,C+=x;h[p++]=new S(y,g,C,f),0!==u&&(h[p++]=new S(l,u,0,0)),0!==c&&(h[p++]=new S(0,0,d,c));var b=0===u?l+1:u+1,E=0===c?d+1:c+1,L=t,D=n;if(r+1<s){var N=e[r+1];L=0===N.originalEndLineNumber?N.originalStartLineNumber:N.originalStartLineNumber-1,D=0===N.modifiedEndLineNumber?N.modifiedStartLineNumber:N.modifiedStartLineNumber-1}var x,I=b+3-1,M=E+3-1;if(I>L)I+=x=L-I,M+=x;if(M>D)I+=x=D-M,M+=x;h[p++]=new S(b,I,E,M),i[o++]=new w(h)}var k=i[0].entries,T=[],R=0;for(r=1,s=i.length;r<s;r++){var O=i[r].entries,P=k[k.length-1],A=O[0];0===P.getType()&&0===A.getType()&&A.originalLineStart<=P.originalLineEnd?(k[k.length-1]=new S(P.originalLineStart,A.originalLineEnd,P.modifiedLineStart,A.modifiedLineEnd),k=k.concat(O.slice(1))):(T[R++]=new w(k),k=O)}return T[R++]=new w(k),T},\nt.prototype._findDiffIndex=function(e){for(var t=e.lineNumber,n=0,i=this._diffs.length;n<i;n++){var o=this._diffs[n].entries;if(t<=o[o.length-1].modifiedLineEnd)return n}return 0},t.prototype._render=function(){var e=this._diffEditor.getOriginalEditor().getOptions(),o=this._diffEditor.getModifiedEditor().getOptions(),r=this._diffEditor.getOriginalEditor().getModel(),s=this._diffEditor.getModifiedEditor().getModel(),a=r.getOptions(),l=s.getOptions();if(!this._isVisible||!r||!s)return i.clearNode(this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();var u=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[u]!==this._currentDiff){this._currentDiff=this._diffs[u];var c=this._diffs[u].entries,h=document.createElement(\"div\");h.className=\"diff-review-table\",h.setAttribute(\"role\",\"list\"),d.Configuration.applyFontInfoSlow(h,o.get(34));for(var p=0,g=0,f=0,m=0,v=0,_=c.length;v<_;v++){var y=(k=c[v]).originalLineStart,C=k.originalLineEnd,b=k.modifiedLineStart,S=k.modifiedLineEnd\n;0!==y&&(0===p||y<p)&&(p=y),0!==C&&(0===g||C>g)&&(g=C),0!==b&&(0===f||b<f)&&(f=b),0!==S&&(0===m||S>m)&&(m=S)}var w=document.createElement(\"div\");w.className=\"diff-review-row\";var E=document.createElement(\"div\");E.className=\"diff-review-cell diff-review-summary\";var L=g-p+1,D=m-f+1;E.appendChild(document.createTextNode(u+1+\"/\"+this._diffs.length+\": @@ -\"+p+\",\"+L+\" +\"+f+\",\"+D+\" @@\")),w.setAttribute(\"data-line\",String(f));var N=function(e){return 0===e?n.localize(1,null):1===e?n.localize(2,null):n.localize(3,null,e)},x=N(L),I=N(D);w.setAttribute(\"aria-label\",n.localize(4,null,u+1,this._diffs.length,p,x,f,I)),w.appendChild(E),w.setAttribute(\"role\",\"listitem\"),h.appendChild(w);var M=f;for(v=0,_=c.length;v<_;v++){var k=c[v];t._renderSection(h,k,M,this._width,e,r,a,o,s,l),0!==k.modifiedLineStart&&(M=k.modifiedLineEnd)}i.clearNode(this._content.domNode),this._content.domNode.appendChild(h),this.scrollbar.scanDomNode()}},t._renderSection=function(e,t,i,o,r,s,a,l,u,d){\nvar c=t.getType(),h=\"diff-review-row\",p=\"\",g=\"diff-review-spacer\";switch(c){case 1:h=\"diff-review-row line-insert\",p=\" char-insert\",g=\"diff-review-spacer insert-sign\";break;case 2:h=\"diff-review-row line-delete\",p=\" char-delete\",g=\"diff-review-spacer delete-sign\"}for(var f=t.originalLineStart,m=t.originalLineEnd,v=t.modifiedLineStart,_=t.modifiedLineEnd,y=Math.max(_-v,m-f),C=r.get(107),b=C.glyphMarginWidth+C.lineNumbersWidth,S=l.get(107),w=10+S.glyphMarginWidth+S.lineNumbersWidth,E=0;E<=y;E++){var L=0===f?0:f+E,D=0===v?0:v+E,N=document.createElement(\"div\");N.style.minWidth=o+\"px\",N.className=h,N.setAttribute(\"role\",\"listitem\"),0!==D&&(i=D),N.setAttribute(\"data-line\",String(i));var x=document.createElement(\"div\");x.className=\"diff-review-cell\",N.appendChild(x);var I=document.createElement(\"span\");I.style.width=b+\"px\",I.style.minWidth=b+\"px\",I.className=\"diff-review-line-number\"+p,0!==L?I.appendChild(document.createTextNode(String(L))):I.innerHTML=\"&#160;\",x.appendChild(I);var M=document.createElement(\"span\")\n;M.style.width=w+\"px\",M.style.minWidth=w+\"px\",M.style.paddingRight=\"10px\",M.className=\"diff-review-line-number\"+p,0!==D?M.appendChild(document.createTextNode(String(D))):M.innerHTML=\"&#160;\",x.appendChild(M);var k=document.createElement(\"span\");k.className=g,k.innerHTML=\"&#160;&#160;\",x.appendChild(k);var T=void 0;0!==D?(x.insertAdjacentHTML(\"beforeend\",this._renderLine(u,l,d.tabSize,D)),T=u.getLineContent(D)):(x.insertAdjacentHTML(\"beforeend\",this._renderLine(s,r,a.tabSize,L)),T=s.getLineContent(L)),0===T.length&&(T=n.localize(5,null));var R=\"\";switch(c){case 0:R=n.localize(6,null,L,D,T);break;case 1:R=n.localize(7,null,D,T);break;case 2:R=n.localize(8,null,L,T)}N.setAttribute(\"aria-label\",R),e.appendChild(N)}},t._renderLine=function(e,t,n,i){var o=e.getLineContent(i),r=t.get(34),s=new Uint32Array(2);s[0]=o.length,s[1]=16793600;var a=new g.LineTokens(s,o),l=_.ViewLineRenderingData.isBasicASCII(o,e.mightContainNonBasicASCII()),u=_.ViewLineRenderingData.containsRTL(o,l,e.mightContainRTL())\n;return v.renderViewLine2(new v.RenderLineInput(r.isMonospace&&!t.get(23),r.canUseHalfwidthRightwardsArrow,o,!1,l,u,0,a,[],n,0,r.spaceWidth,r.middotWidth,t.get(88),t.get(74),t.get(69),t.get(35)!==p.EditorFontLigatures.OFF,null)).html},t}(u.Disposable);t.DiffReview=E,b.registerThemingParticipant((function(e,t){var n=e.getColor(m.editorLineNumbers);n&&t.addRule(\".monaco-diff-editor .diff-review-line-number { color: \"+n+\"; }\");var i=e.getColor(C.scrollbarShadow);i&&t.addRule(\".monaco-diff-editor .diff-review-shadow { box-shadow: \"+i+\" 0 -6px 6px -6px inset; }\")}));var L=function(e){function t(){return e.call(this,{id:\"editor.action.diffReview.next\",label:n.localize(9,null),alias:\"Go to Next Difference\",precondition:y.ContextKeyExpr.has(\"isInDiffEditor\"),kbOpts:{kbExpr:null,primary:65,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=N(e);n&&n.diffReviewNext()},t}(c.EditorAction),D=function(e){function t(){return e.call(this,{id:\"editor.action.diffReview.prev\",label:n.localize(10,null),\nalias:\"Go to Previous Difference\",precondition:y.ContextKeyExpr.has(\"isInDiffEditor\"),kbOpts:{kbExpr:null,primary:1089,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=N(e);n&&n.diffReviewPrev()},t}(c.EditorAction);function N(e){for(var t=e.get(h.ICodeEditorService).listDiffEditors(),n=0,i=t.length;n<i;n++){var o=t[n];if(o.hasWidgetFocus())return o}return null}c.registerEditorAction(L),c.registerEditorAction(D)})),define(n[230],i([0,1,418,6,28,104,15,4,2,31,60,67,32,121,564,33,3,106,68,30,62,193,148,110,69,18,11,115,35,20,14,66,421,12,10,73,185,299]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var V=function(){function e(e,t){this._contextMenuService=e,this._clipboardService=t,this._zones=[],this.inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}return e.prototype.getForeignViewZones=function(e){var t=this;return e.filter((function(e){return!t._zonesMap[String(e.id)]}))},\ne.prototype.clean=function(e){var t=this;this._zones.length>0&&e.changeViewZones((function(e){for(var n=0,i=t._zones.length;n<i;n++)e.removeZone(t._zones[n])})),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])},e.prototype.apply=function(e,t,n,i){var o=this,r=i?p.StableEditorScrollState.capture(e):null;e.changeViewZones((function(t){for(var i=0,r=o._zones.length;i<r;i++)t.removeZone(o._zones[i]);i=0;for(var s=o.inlineDiffMargins.length;i<s;i++)o.inlineDiffMargins[i].dispose();o._zones=[],o._zonesMap={},o.inlineDiffMargins=[];i=0;for(var a=n.zones.length;i<a;i++){var l=n.zones[i];l.suppressMouseDown=!0;var u=t.addZone(l);o._zones.push(u),o._zonesMap[String(u)]=!0,n.zones[i].diff&&l.marginDomNode&&o._clipboardService&&(l.suppressMouseDown=!1,o.inlineDiffMargins.push(new P.InlineDiffMargin(u,l.marginDomNode,e,n.zones[i].diff,o._contextMenuService,o._clipboardService)))}})),r&&r.restore(e),this._decorations=e.deltaDecorations(this._decorations,n.decorations),\nt&&t.setZones(n.overviewZones)},e}(),z=0,H=function(e){function t(n,r,s,u,d,c,h,p,g,f,m){var _=e.call(this)||this;_._editorProgressService=m,_._onDidDispose=_._register(new l.Emitter),_.onDidDispose=_._onDidDispose.event,_._onDidUpdateDiff=_._register(new l.Emitter),_.onDidUpdateDiff=_._onDidUpdateDiff.event,_._lastOriginalWarning=null,_._lastModifiedWarning=null,_._editorWorkerService=u,_._codeEditorService=h,_._contextKeyService=_._register(d.createScoped(n)),_._contextKeyService.createKey(\"isInDiffEditor\",!0),_._themeService=p,_._notificationService=g,_.id=++z,_._state=0,_._updatingDiffProgress=null,_._domElement=n,r=r||{},_._renderSideBySide=!0,void 0!==r.renderSideBySide&&(_._renderSideBySide=r.renderSideBySide),_._maxComputationTime=5e3,void 0!==r.maxComputationTime&&(_._maxComputationTime=r.maxComputationTime),_._ignoreTrimWhitespace=!0,void 0!==r.ignoreTrimWhitespace&&(_._ignoreTrimWhitespace=r.ignoreTrimWhitespace),_._renderIndicators=!0,\nvoid 0!==r.renderIndicators&&(_._renderIndicators=r.renderIndicators),_._originalIsEditable=!1,void 0!==r.originalEditable&&(_._originalIsEditable=Boolean(r.originalEditable)),_._updateDecorationsRunner=_._register(new a.RunOnceScheduler((function(){return _._updateDecorations()}),0)),_._containerDomElement=document.createElement(\"div\"),_._containerDomElement.className=t._getClassName(_._themeService.getTheme(),_._renderSideBySide),_._containerDomElement.style.position=\"relative\",_._containerDomElement.style.height=\"100%\",_._domElement.appendChild(_._containerDomElement),_._overviewViewportDomElement=o.createFastDomNode(document.createElement(\"div\")),_._overviewViewportDomElement.setClassName(\"diffViewport\"),_._overviewViewportDomElement.setPosition(\"absolute\"),_._overviewDomElement=document.createElement(\"div\"),_._overviewDomElement.className=\"diffOverview\",_._overviewDomElement.style.position=\"absolute\",_._overviewDomElement.appendChild(_._overviewViewportDomElement.domNode),\n_._register(i.addStandardDisposableListener(_._overviewDomElement,\"mousedown\",(function(e){_.modifiedEditor.delegateVerticalScrollbarMouseDown(e)}))),_._containerDomElement.appendChild(_._overviewDomElement),_._originalDomNode=document.createElement(\"div\"),_._originalDomNode.className=\"editor original\",_._originalDomNode.style.position=\"absolute\",_._originalDomNode.style.height=\"100%\",_._containerDomElement.appendChild(_._originalDomNode),_._modifiedDomNode=document.createElement(\"div\"),_._modifiedDomNode.className=\"editor modified\",_._modifiedDomNode.style.position=\"absolute\",_._modifiedDomNode.style.height=\"100%\",_._containerDomElement.appendChild(_._modifiedDomNode),_._beginUpdateDecorationsTimeout=-1,_._currentlyChangingViewZones=!1,_._diffComputationToken=0,_._originalEditorState=new V(f,s),_._modifiedEditorState=new V(f,s),_._isVisible=!0,_._isHandlingScrollEvent=!1,_._elementSizeObserver=_._register(new B.ElementSizeObserver(_._containerDomElement,void 0,(function(){\nreturn _._onDidContainerSizeChanged()}))),r.automaticLayout&&_._elementSizeObserver.startObserving(),_._diffComputationResult=null;var y=_._contextKeyService.createScoped();y.createKey(\"isInDiffLeftEditor\",!0);var C=new M.ServiceCollection;C.set(x.IContextKeyService,y);var b=c.createChild(C),S=_._contextKeyService.createScoped();S.createKey(\"isInDiffRightEditor\",!0);var w=new M.ServiceCollection;w.set(x.IContextKeyService,S);var E=c.createChild(w);_.originalEditor=_._createLeftHandSideEditor(r,b),_.modifiedEditor=_._createRightHandSideEditor(r,E),_._originalOverviewRuler=null,_._modifiedOverviewRuler=null,_._reviewPane=new v.DiffReview(_),_._containerDomElement.appendChild(_._reviewPane.domNode.domNode),_._containerDomElement.appendChild(_._reviewPane.shadow.domNode),_._containerDomElement.appendChild(_._reviewPane.actionBarContainer.domNode),_._enableSplitViewResizing=!0,void 0!==r.enableSplitViewResizing&&(_._enableSplitViewResizing=r.enableSplitViewResizing),\n_._renderSideBySide?_._setStrategy(new Y(_._createDataSource(),_._enableSplitViewResizing)):_._setStrategy(new $(_._createDataSource(),_._enableSplitViewResizing)),_._register(p.onThemeChange((function(e){_._strategy&&_._strategy.applyColors(e)&&_._updateDecorationsRunner.schedule(),_._containerDomElement.className=t._getClassName(_._themeService.getTheme(),_._renderSideBySide)})));for(var L=0,D=A.EditorExtensionsRegistry.getDiffEditorContributions();L<D.length;L++){var N=D[L];try{_._register(c.createInstance(N.ctor,_))}catch(e){F.onUnexpectedError(e)}}return _._codeEditorService.addDiffEditor(_),_}return r(t,e),t.prototype._setState=function(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))},t.prototype.hasWidgetFocus=function(){return i.isAncestor(document.activeElement,this._domElement)},t.prototype.diffReviewNext=function(){\nthis._reviewPane.next()},t.prototype.diffReviewPrev=function(){this._reviewPane.prev()},t._getClassName=function(e,t){var n=\"monaco-diff-editor monaco-editor-background \";return t&&(n+=\"side-by-side \"),n+=R.getThemeTypeSelector(e.type)},t.prototype._recreateOverviewRulers=function(){this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this.originalEditor.hasModel()&&(this._originalOverviewRuler=this.originalEditor.createOverviewRuler(\"original diffOverviewRuler\"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this.modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this.modifiedEditor.createOverviewRuler(\"modified diffOverviewRuler\"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),\nthis._layoutOverviewRulers()},t.prototype._createLeftHandSideEditor=function(e,t){var n=this,i=this._createInnerEditor(t,this._originalDomNode,this._adjustOptionsForLeftHandSide(e,this._originalIsEditable));return this._register(i.onDidScrollChange((function(e){n._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(n._isHandlingScrollEvent=!0,n.modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),n._isHandlingScrollEvent=!1,n._layoutOverviewViewport())}))),this._register(i.onDidChangeViewZones((function(){n._onViewZonesChanged()}))),this._register(i.onDidChangeModelContent((function(){n._isVisible&&n._beginUpdateDecorationsSoon()}))),i},t.prototype._createRightHandSideEditor=function(e,t){var n=this,i=this._createInnerEditor(t,this._modifiedDomNode,this._adjustOptionsForRightHandSide(e));return this._register(i.onDidScrollChange((function(e){\nn._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(n._isHandlingScrollEvent=!0,n.originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),n._isHandlingScrollEvent=!1,n._layoutOverviewViewport())}))),this._register(i.onDidChangeViewZones((function(){n._onViewZonesChanged()}))),this._register(i.onDidChangeConfiguration((function(e){e.hasChanged(34)&&i.getModel()&&n._onViewZonesChanged()}))),this._register(i.onDidChangeModelContent((function(){n._isVisible&&n._beginUpdateDecorationsSoon()}))),this._register(i.onDidChangeModelOptions((function(e){e.tabSize&&n._updateDecorationsRunner.schedule()}))),i},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(m.CodeEditorWidget,t,n,{})},t.prototype.dispose=function(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),\nthis._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this.originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this.modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),\ne.prototype.dispose.call(this)},t.prototype.getId=function(){return this.getEditorType()+\":\"+this.id},t.prototype.getEditorType=function(){return b.EditorType.IDiffEditor},t.prototype.getLineChanges=function(){return this._diffComputationResult?this._diffComputationResult.changes:null},t.prototype.getOriginalEditor=function(){return this.originalEditor},t.prototype.getModifiedEditor=function(){return this.modifiedEditor},t.prototype.updateOptions=function(e){var n=!1;void 0!==e.renderSideBySide&&this._renderSideBySide!==e.renderSideBySide&&(this._renderSideBySide=e.renderSideBySide,n=!0),void 0!==e.maxComputationTime&&(this._maxComputationTime=e.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());var i=!1;void 0!==e.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==e.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=e.ignoreTrimWhitespace,i=!0),void 0!==e.renderIndicators&&this._renderIndicators!==e.renderIndicators&&(this._renderIndicators=e.renderIndicators,i=!0),\ni&&this._beginUpdateDecorations(),void 0!==e.originalEditable&&(this._originalIsEditable=Boolean(e.originalEditable)),this.modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(e)),this.originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(e,this._originalIsEditable)),void 0!==e.enableSplitViewResizing&&(this._enableSplitViewResizing=e.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),n&&(this._renderSideBySide?this._setStrategy(new Y(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new $(this._createDataSource(),this._enableSplitViewResizing)),this._containerDomElement.className=t._getClassName(this._themeService.getTheme(),this._renderSideBySide))},t.prototype.getModel=function(){return{original:this.originalEditor.getModel(),modified:this.modifiedEditor.getModel()}},t.prototype.setModel=function(e){\nif(e&&(!e.original||!e.modified))throw new Error(e.original?\"DiffEditorWidget.setModel: Modified model is null\":\"DiffEditorWidget.setModel: Original model is null\");this._cleanViewZonesAndDecorations(),this.originalEditor.setModel(e?e.original:null),this.modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this.originalEditor.setScrollTop(0),this.modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()},t.prototype.getDomNode=function(){return this._domElement},t.prototype.getVisibleColumnFromPosition=function(e){return this.modifiedEditor.getVisibleColumnFromPosition(e)},t.prototype.getPosition=function(){return this.modifiedEditor.getPosition()},t.prototype.setPosition=function(e){this.modifiedEditor.setPosition(e)},t.prototype.revealLine=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLine(e,t)},\nt.prototype.revealLineInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLineInCenter(e,t)},t.prototype.revealLineInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)},t.prototype.revealPosition=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPosition(e,t)},t.prototype.revealPositionInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPositionInCenter(e,t)},t.prototype.revealPositionInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)},t.prototype.getSelection=function(){return this.modifiedEditor.getSelection()},t.prototype.getSelections=function(){return this.modifiedEditor.getSelections()},t.prototype.setSelection=function(e){this.modifiedEditor.setSelection(e)},t.prototype.setSelections=function(e){this.modifiedEditor.setSelections(e)},t.prototype.revealLines=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLines(e,t,n)},\nt.prototype.revealLinesInCenter=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLinesInCenter(e,t,n)},t.prototype.revealLinesInCenterIfOutsideViewport=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,n)},t.prototype.revealRange=function(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===i&&(i=!0),this.modifiedEditor.revealRange(e,t,n,i)},t.prototype.revealRangeInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeInCenter(e,t)},t.prototype.revealRangeInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)},t.prototype.revealRangeAtTop=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeAtTop(e,t)},t.prototype.getSupportedActions=function(){return this.modifiedEditor.getSupportedActions()},t.prototype.saveViewState=function(){return{original:this.originalEditor.saveViewState(),modified:this.modifiedEditor.saveViewState()}},\nt.prototype.restoreViewState=function(e){if(e.original&&e.modified){var t=e;this.originalEditor.restoreViewState(t.original),this.modifiedEditor.restoreViewState(t.modified)}},t.prototype.layout=function(e){this._elementSizeObserver.observe(e)},t.prototype.focus=function(){this.modifiedEditor.focus()},t.prototype.hasTextFocus=function(){return this.originalEditor.hasTextFocus()||this.modifiedEditor.hasTextFocus()},t.prototype.trigger=function(e,t,n){this.modifiedEditor.trigger(e,t,n)},t.prototype.changeDecorations=function(e){return this.modifiedEditor.changeDecorations(e)},t.prototype._onDidContainerSizeChanged=function(){this._doLayout()},t.prototype._getReviewHeight=function(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0},t.prototype._layoutOverviewRulers=function(){if(this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._elementSizeObserver.getHeight(),n=this._getReviewHeight(),i=t.ENTIRE_DIFF_OVERVIEW_WIDTH-2*t.ONE_OVERVIEW_WIDTH\n;this.modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:t.ONE_OVERVIEW_WIDTH,right:i+t.ONE_OVERVIEW_WIDTH,height:e-n}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:t.ONE_OVERVIEW_WIDTH,height:e-n}))}},t.prototype._onViewZonesChanged=function(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()},t.prototype._beginUpdateDecorationsSoon=function(){var e=this;-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout((function(){return e._beginUpdateDecorations()}),t.UPDATE_DIFF_DECORATIONS_DELAY)},t._equals=function(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()},t.prototype._beginUpdateDecorations=function(){var e=this;this._beginUpdateDecorationsTimeout=-1;var i=this.originalEditor.getModel(),o=this.modifiedEditor.getModel();if(i&&o){this._diffComputationToken++;var r=this._diffComputationToken\n;this._setState(1),this._editorWorkerService.canComputeDiff(i.uri,o.uri)?this._editorWorkerService.computeDiff(i.uri,o.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then((function(t){r===e._diffComputationToken&&i===e.originalEditor.getModel()&&o===e.modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=t,e._updateDecorationsRunner.schedule(),e._onDidUpdateDiff.fire())}),(function(t){r===e._diffComputationToken&&i===e.originalEditor.getModel()&&o===e.modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=null,e._updateDecorationsRunner.schedule())})):t._equals(i.uri,this._lastOriginalWarning)&&t._equals(o.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=i.uri,this._lastModifiedWarning=o.uri,this._notificationService.warn(n.localize(0,null)))}},t.prototype._cleanViewZonesAndDecorations=function(){this._originalEditorState.clean(this.originalEditor),this._modifiedEditorState.clean(this.modifiedEditor)},t.prototype._updateDecorations=function(){\nif(this.originalEditor.getModel()&&this.modifiedEditor.getModel()&&this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this.originalEditor.getWhitespaces()),n=this._modifiedEditorState.getForeignViewZones(this.modifiedEditor.getWhitespaces()),i=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,n,this.originalEditor,this.modifiedEditor);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this.originalEditor,this._originalOverviewRuler,i.original,!1),this._modifiedEditorState.apply(this.modifiedEditor,this._modifiedOverviewRuler,i.modified,!0)}finally{this._currentlyChangingViewZones=!1}}},t.prototype._adjustOptionsForSubEditor=function(e){var t=d.deepClone(e||{});return t.inDiffEditor=!0,t.wordWrap=\"off\",t.wordWrapMinified=!1,t.automaticLayout=!1,t.scrollbar=t.scrollbar||{},t.scrollbar.vertical=\"visible\",t.folding=!1,\nt.codeLens=!1,t.fixedOverflowWidgets=!0,t.minimap||(t.minimap={}),t.minimap.enabled=!1,t},t.prototype._adjustOptionsForLeftHandSide=function(e,t){var n=this._adjustOptionsForSubEditor(e);return n.readOnly=!t,n.extraEditorClassName=\"original-in-monaco-diff-editor\",n},t.prototype._adjustOptionsForRightHandSide=function(e){var n=this._adjustOptionsForSubEditor(e);return n.revealHorizontalRightPadding=_.EditorOptions.revealHorizontalRightPadding.defaultValue+t.ENTIRE_DIFF_OVERVIEW_WIDTH,n.scrollbar.verticalHasArrows=!1,n.extraEditorClassName=\"modified-in-monaco-diff-editor\",n},t.prototype.doLayout=function(){this._elementSizeObserver.observe(),this._doLayout()},t.prototype._doLayout=function(){var e=this._elementSizeObserver.getWidth(),n=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),o=this._strategy.layout();this._originalDomNode.style.width=o+\"px\",this._originalDomNode.style.left=\"0px\",this._modifiedDomNode.style.width=e-o+\"px\",this._modifiedDomNode.style.left=o+\"px\",\nthis._overviewDomElement.style.top=\"0px\",this._overviewDomElement.style.height=n-i+\"px\",this._overviewDomElement.style.width=t.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\",this._overviewDomElement.style.left=e-t.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\",this._overviewViewportDomElement.setWidth(t.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this.originalEditor.layout({width:o,height:n-i}),this.modifiedEditor.layout({width:e-o-t.ENTIRE_DIFF_OVERVIEW_WIDTH,height:n-i}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(n-i,e,i),this._layoutOverviewViewport()},t.prototype._layoutOverviewViewport=function(){var e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))},t.prototype._computeOverviewViewport=function(){var e=this.modifiedEditor.getLayoutInfo();if(!e)return null\n;var t=this.modifiedEditor.getScrollTop(),n=this.modifiedEditor.getScrollHeight(),i=Math.max(0,e.height),o=Math.max(0,i-0),r=n>0?o/n:0;return{height:Math.max(0,Math.floor(e.height*r)),top:Math.floor(t*r)}},t.prototype._createDataSource=function(){var e=this;return{getWidth:function(){return e._elementSizeObserver.getWidth()},getHeight:function(){return e._elementSizeObserver.getHeight()-e._getReviewHeight()},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e.originalEditor},getModifiedEditor:function(){return e.modifiedEditor}}},t.prototype._setStrategy=function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()},t.prototype._getLineChangeAtOrBeforeLineNumber=function(e,t){var n=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===n.length||e<t(n[0]))return null\n;for(var i=0,o=n.length-1;i<o;){var r=Math.floor((i+o)/2),s=t(n[r]),a=r+1<=o?t(n[r+1]):1073741824;e<s?o=r-1:e>=a?i=r+1:(i=r,o=r)}return n[i]},t.prototype._getEquivalentLineForOriginalLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.originalStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-n;return s<=o?i+Math.min(s,r):i+r-o+s},t.prototype._getEquivalentLineForModifiedLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.modifiedStartLineNumber}));if(!t)return e\n;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-i;return s<=r?n+Math.min(s,o):n+o-r+s},t.prototype.getDiffLineInformationForOriginal=function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null},t.prototype.getDiffLineInformationForModified=function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null},t.ONE_OVERVIEW_WIDTH=15,t.ENTIRE_DIFF_OVERVIEW_WIDTH=30,t.UPDATE_DIFF_DECORATIONS_DELAY=200,t=h([g(3,w.IEditorWorkerService),g(4,x.IContextKeyService),g(5,I.IInstantiationService),g(6,f.ICodeEditorService),g(7,R.IThemeService),g(8,k.INotificationService),g(9,O.IContextMenuService),g(10,W.IEditorProgressService)],t)}(u.Disposable)\n;t.DiffEditorWidget=H;var K=function(e){function t(t){var n=e.call(this)||this;return n._dataSource=t,n._insertColor=null,n._removeColor=null,n}return r(t,e),t.prototype.applyColors=function(e){var t=(e.getColor(T.diffInserted)||T.defaultInsertColor).transparent(2),n=(e.getColor(T.diffRemoved)||T.defaultRemoveColor).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i},t.prototype.getEditorsDiffDecorations=function(e,t,n,i,o,r,s){o=o.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber})),i=i.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}));var a=this._getViewZones(e,i,o,r,s,n),l=this._getOriginalEditorDecorations(e,t,n,r,s),u=this._getModifiedEditorDecorations(e,t,n,r,s);return{original:{decorations:l.decorations,overviewZones:l.overviewZones,zones:a.original},modified:{decorations:u.decorations,overviewZones:u.overviewZones,zones:a.modified}}},t}(u.Disposable),U=function(){function e(e){this._source=e,\nthis._index=-1,this.current=null,this.advance()}return e.prototype.advance=function(){this._index++,this._index<this._source.length?this.current=this._source[this._index]:this.current=null},e}(),j=function(){function e(e,t,n,i,o){this.lineChanges=e,this.originalForeignVZ=t,this.originalLineHeight=n,this.modifiedForeignVZ=i,this.modifiedLineHeight=o}return e.prototype.getViewZones=function(){for(var t=[],n=[],i=0,o=0,r=0,s=0,a=0,l=0,u=function(e,t){return e.afterLineNumber-t.afterLineNumber},d=function(e,t){if(null===t.domNode&&e.length>0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},c=new U(this.modifiedForeignVZ),h=new U(this.originalForeignVZ),p=0,g=this.lineChanges.length;p<=g;p++){var f=p<g?this.lineChanges[p]:null;null!==f?(r=f.originalStartLineNumber+(f.originalEndLineNumber>0?-1:0),s=f.modifiedStartLineNumber+(f.modifiedEndLineNumber>0?-1:0),\no=f.originalEndLineNumber>0?f.originalEndLineNumber-f.originalStartLineNumber+1:0,i=f.modifiedEndLineNumber>0?f.modifiedEndLineNumber-f.modifiedStartLineNumber+1:0,a=Math.max(f.originalStartLineNumber,f.originalEndLineNumber),l=Math.max(f.modifiedStartLineNumber,f.modifiedEndLineNumber)):(a=r+=1e7+o,l=s+=1e7+i);for(var m,v=[],_=[];c.current&&c.current.afterLineNumber<=l;){var y=void 0;y=c.current.afterLineNumber<=s?r-s+c.current.afterLineNumber:a;var C=null;f&&f.modifiedStartLineNumber<=c.current.afterLineNumber&&c.current.afterLineNumber<=f.modifiedEndLineNumber&&(C=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),v.push({afterLineNumber:y,heightInLines:c.current.height/this.modifiedLineHeight,domNode:null,marginDomNode:C}),c.advance()}for(;h.current&&h.current.afterLineNumber<=a;){y=void 0;y=h.current.afterLineNumber<=r?s-r+h.current.afterLineNumber:l,_.push({afterLineNumber:y,heightInLines:h.current.height/this.originalLineHeight,domNode:null}),h.advance()}\nif(null!==f&&Q(f))(m=this._produceOriginalFromDiff(f,o,i))&&v.push(m);if(null!==f&&J(f))(m=this._produceModifiedFromDiff(f,o,i))&&_.push(m);var b=0,S=0;for(v=v.sort(u),_=_.sort(u);b<v.length&&S<_.length;){var w=v[b],E=_[S],L=w.afterLineNumber-r,D=E.afterLineNumber-s;L<D?(d(t,w),b++):D<L?(d(n,E),S++):w.shouldNotShrink?(d(t,w),b++):E.shouldNotShrink?(d(n,E),S++):w.heightInLines>=E.heightInLines?(w.heightInLines-=E.heightInLines,S++):(E.heightInLines-=w.heightInLines,b++)}for(;b<v.length;)d(t,v[b]),b++;for(;S<_.length;)d(n,_[S]),S++}return{original:e._ensureDomNodes(t),modified:e._ensureDomNodes(n)}},e._ensureDomNodes=function(e){return e.map((function(e){var t;return e.domNode||(e.domNode=((t=document.createElement(\"div\")).className=\"diagonal-fill\",t)),e}))},e}();function q(e,t,n,i,o){return{range:new y.Range(e,t,n,i),options:o}}var G={charDelete:S.ModelDecorationOptions.register({className:\"char-delete\"}),charDeleteWholeLine:S.ModelDecorationOptions.register({className:\"char-delete\",isWholeLine:!0}),\ncharInsert:S.ModelDecorationOptions.register({className:\"char-insert\"}),charInsertWholeLine:S.ModelDecorationOptions.register({className:\"char-insert\",isWholeLine:!0}),lineInsert:S.ModelDecorationOptions.register({className:\"line-insert\",marginClassName:\"line-insert\",isWholeLine:!0}),lineInsertWithSign:S.ModelDecorationOptions.register({className:\"line-insert\",linesDecorationsClassName:\"insert-sign codicon codicon-add\",marginClassName:\"line-insert\",isWholeLine:!0}),lineDelete:S.ModelDecorationOptions.register({className:\"line-delete\",marginClassName:\"line-delete\",isWholeLine:!0}),lineDeleteWithSign:S.ModelDecorationOptions.register({className:\"line-delete\",linesDecorationsClassName:\"delete-sign codicon codicon-remove\",marginClassName:\"line-delete\",isWholeLine:!0}),lineDeleteMargin:S.ModelDecorationOptions.register({marginClassName:\"line-delete\"})},Y=function(e){function t(t,n){var i=e.call(this,t)||this;return i._disableSash=!1===n,i._sashRatio=null,i._sashPosition=null,i._startSashPosition=null,\ni._sash=i._register(new s.Sash(i._dataSource.getContainerDomNode(),i)),i._disableSash&&(i._sash.state=0),i._sash.onDidStart((function(){return i.onSashDragStart()})),i._sash.onDidChange((function(e){return i.onSashDrag(e)})),i._sash.onDidEnd((function(){return i.onSashDragEnd()})),i._sash.onDidReset((function(){return i.onSashReset()})),i}return r(t,e),t.prototype.setEnableSplitViewResizing=function(e){var t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)},t.prototype.layout=function(e){void 0===e&&(e=this._sashRatio);var n=this._dataSource.getWidth()-H.ENTIRE_DIFF_OVERVIEW_WIDTH,i=Math.floor((e||.5)*n),o=Math.floor(.5*n);return i=this._disableSash?o:i||o,n>2*t.MINIMUM_EDITOR_WIDTH?(i<t.MINIMUM_EDITOR_WIDTH&&(i=t.MINIMUM_EDITOR_WIDTH),i>n-t.MINIMUM_EDITOR_WIDTH&&(i=n-t.MINIMUM_EDITOR_WIDTH)):i=o,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition},t.prototype.onSashDragStart=function(){this._startSashPosition=this._sashPosition},\nt.prototype.onSashDrag=function(e){var t=this._dataSource.getWidth()-H.ENTIRE_DIFF_OVERVIEW_WIDTH,n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()},t.prototype.onSashDragEnd=function(){this._sash.layout()},t.prototype.onSashReset=function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()},t.prototype.getVerticalSashTop=function(e){return 0},t.prototype.getVerticalSashLeft=function(e){return this._sashPosition},t.prototype.getVerticalSashHeight=function(e){return this._dataSource.getHeight()},t.prototype._getViewZones=function(e,t,n,i,o){return new Z(e,t,i.getOption(49),n,o.getOption(49)).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r=String(this._removeColor),s={decorations:[],overviewZones:[]},a=i.getModel(),l=0,u=e.length;l<u;l++){var d=e[l];if(J(d)&&(s.decorations.push({range:new y.Range(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),\noptions:n?G.lineDeleteWithSign:G.lineDelete}),Q(d)&&d.charChanges||s.decorations.push(q(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824,G.charDeleteWholeLine)),s.overviewZones.push(new E.OverviewRulerZone(d.originalStartLineNumber,d.originalEndLineNumber,r)),d.charChanges))for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(J(p))if(t)for(var g=p.originalStartLineNumber;g<=p.originalEndLineNumber;g++){var f=void 0,m=void 0;f=g===p.originalStartLineNumber?p.originalStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.originalEndLineNumber?p.originalEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charDelete))}else s.decorations.push(q(p.originalStartLineNumber,p.originalStartColumn,p.originalEndLineNumber,p.originalEndColumn,G.charDelete))}}return s},t.prototype._getModifiedEditorDecorations=function(e,t,n,i,o){for(var r=String(this._insertColor),s={decorations:[],overviewZones:[]},a=o.getModel(),l=0,u=e.length;l<u;l++){var d=e[l]\n;if(Q(d)&&(s.decorations.push({range:new y.Range(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?G.lineInsertWithSign:G.lineInsert}),J(d)&&d.charChanges||s.decorations.push(q(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,G.charInsertWholeLine)),s.overviewZones.push(new E.OverviewRulerZone(d.modifiedStartLineNumber,d.modifiedEndLineNumber,r)),d.charChanges))for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(Q(p))if(t)for(var g=p.modifiedStartLineNumber;g<=p.modifiedEndLineNumber;g++){var f=void 0,m=void 0;f=g===p.modifiedStartLineNumber?p.modifiedStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.modifiedEndLineNumber?p.modifiedEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charInsert))}else s.decorations.push(q(p.modifiedStartLineNumber,p.modifiedStartColumn,p.modifiedEndLineNumber,p.modifiedEndColumn,G.charInsert))}}return s},t.MINIMUM_EDITOR_WIDTH=100,t}(K),Z=function(e){function t(t,n,i,o,r){\nreturn e.call(this,t,n,i,o,r)||this}return r(t,e),t.prototype._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion=function(){return null},t.prototype._produceOriginalFromDiff=function(e,t,n){return n>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null},t.prototype._produceModifiedFromDiff=function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null},t}(j),$=function(e){function t(t,n){var i=e.call(this,t)||this;return i.decorationsLeft=t.getOriginalEditor().getLayoutInfo().decorationsLeft,i._register(t.getOriginalEditor().onDidLayoutChange((function(e){i.decorationsLeft!==e.decorationsLeft&&(i.decorationsLeft=e.decorationsLeft,t.relayoutEditors())}))),i}return r(t,e),t.prototype.setEnableSplitViewResizing=function(e){},t.prototype._getViewZones=function(e,t,n,i,o,r){return new X(e,t,n,i,o,r).getViewZones()},\nt.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r=String(this._removeColor),s={decorations:[],overviewZones:[]},a=0,l=e.length;a<l;a++){var u=e[a];J(u)&&(s.decorations.push({range:new y.Range(u.originalStartLineNumber,1,u.originalEndLineNumber,1073741824),options:G.lineDeleteMargin}),s.overviewZones.push(new E.OverviewRulerZone(u.originalStartLineNumber,u.originalEndLineNumber,r)))}return s},t.prototype._getModifiedEditorDecorations=function(e,t,n,i,o){for(var r=String(this._insertColor),s={decorations:[],overviewZones:[]},a=o.getModel(),l=0,u=e.length;l<u;l++){var d=e[l];if(Q(d))if(s.decorations.push({range:new y.Range(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?G.lineInsertWithSign:G.lineInsert}),s.overviewZones.push(new E.OverviewRulerZone(d.modifiedStartLineNumber,d.modifiedEndLineNumber,r)),d.charChanges)for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(Q(p))if(t)for(var g=p.modifiedStartLineNumber;g<=p.modifiedEndLineNumber;g++){\nvar f=void 0,m=void 0;f=g===p.modifiedStartLineNumber?p.modifiedStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.modifiedEndLineNumber?p.modifiedEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charInsert))}else s.decorations.push(q(p.modifiedStartLineNumber,p.modifiedStartColumn,p.modifiedEndLineNumber,p.modifiedEndColumn,G.charInsert))}else s.decorations.push(q(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,G.charInsertWholeLine))}return s},t.prototype.layout=function(){return Math.max(5,this.decorationsLeft)},t}(K),X=function(e){function t(t,n,i,o,r,s){var a=e.call(this,t,n,o.getOption(49),i,r.getOption(49))||this;return a.originalModel=o.getModel(),a.modifiedEditorOptions=r.getOptions(),a.modifiedEditorTabSize=r.getModel().getOptions().tabSize,a.renderIndicators=s,a}return r(t,e),t.prototype._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion=function(){var e=document.createElement(\"div\")\n;return e.className=\"inline-added-margin-view-zone\",e},t.prototype._produceOriginalFromDiff=function(e,t,n){var i=document.createElement(\"div\");return i.className=\"inline-added-margin-view-zone\",{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n,domNode:document.createElement(\"div\"),marginDomNode:i}},t.prototype._produceModifiedFromDiff=function(e,t,n){var i=[];if(e.charChanges)for(var o=0,r=e.charChanges.length;o<r;o++){var s=e.charChanges[o];J(s)&&i.push(new N.InlineDecoration(new y.Range(s.originalStartLineNumber,s.originalStartColumn,s.originalEndLineNumber,s.originalEndColumn),\"char-delete\",0))}\nfor(var a=C.createStringBuilder(1e4),l=[],u=this.modifiedEditorOptions.get(107),d=this.modifiedEditorOptions.get(34),h=u.decorationsWidth,p=this.modifiedEditorOptions.get(49),g=d.typicalHalfwidthCharacterWidth,f=0,m=[],v=e.originalStartLineNumber;v<=e.originalEndLineNumber;v++)if(f=Math.max(f,this._renderOriginalLine(v-e.originalStartLineNumber,this.originalModel,this.modifiedEditorOptions,this.modifiedEditorTabSize,v,i,a)),m.push(this.originalModel.getLineContent(v)),this.renderIndicators){var _=v-e.originalStartLineNumber;l=l.concat(['<div class=\"delete-sign codicon codicon-remove\" style=\"position:absolute;top:'+_*p+\"px;width:\"+h+\"px;height:\"+p+'px;right:0;\"></div>'])}f+=this.modifiedEditorOptions.get(79);var b=document.createElement(\"div\");b.className=\"view-lines line-delete\",b.innerHTML=a.build(),c.Configuration.applyFontInfoSlow(b,d);var S=document.createElement(\"div\");return S.className=\"inline-deleted-margin-view-zone\",S.innerHTML=l.join(\"\"),c.Configuration.applyFontInfoSlow(S,d),{shouldNotShrink:!0,\nafterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:f*g,domNode:b,marginDomNode:S,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalContent:m}}},t.prototype._renderOriginalLine=function(e,t,n,i,o,r,s){var a=t.getLineTokens(o),l=a.getLineContent(),u=n.get(34),d=L.LineDecoration.filter(r,o,1,l.length+1);s.appendASCIIString('<div class=\"view-line'),0===r.length&&s.appendASCIIString(\" char-delete\"),s.appendASCIIString('\" style=\"top:'),s.appendASCIIString(String(e*n.get(49))),s.appendASCIIString('px;width:1000000px;\">')\n;var c=N.ViewLineRenderingData.isBasicASCII(l,t.mightContainNonBasicASCII()),h=N.ViewLineRenderingData.containsRTL(l,c,t.mightContainRTL()),p=D.renderViewLine(new D.RenderLineInput(u.isMonospace&&!n.get(23),u.canUseHalfwidthRightwardsArrow,l,!1,c,h,0,a,d,i,0,u.spaceWidth,u.middotWidth,n.get(88),n.get(74),n.get(69),n.get(35)!==_.EditorFontLigatures.OFF,null),s);s.appendASCIIString(\"</div>\");var g=p.characterMapping.getAbsoluteOffsets();return g.length>0?g[g.length-1]:0},t}(j);function Q(e){return e.modifiedEndLineNumber>0}function J(e){return e.originalEndLineNumber>0}R.registerThemingParticipant((function(e,t){var n=e.getColor(T.diffInserted);n&&(t.addRule(\".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: \"+n+\"; }\"),t.addRule(\".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .inline-added-margin-view-zone { background-color: \"+n+\"; }\"));var i=e.getColor(T.diffRemoved)\n;i&&(t.addRule(\".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: \"+i+\"; }\"),t.addRule(\".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: \"+i+\"; }\"),t.addRule(\".monaco-editor .inline-deleted-margin-view-zone { background-color: \"+i+\"; }\"));var o=e.getColor(T.diffInsertedOutline);o&&t.addRule(\".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+o+\"; }\");var r=e.getColor(T.diffRemovedOutline);r&&t.addRule(\".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+r+\"; }\");var s=e.getColor(T.scrollbarShadow);s&&t.addRule(\".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px \"+s+\"; }\");var a=e.getColor(T.diffBorder);a&&t.addRule(\".monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid \"+a+\"; }\")}))})),define(n[167],i([0,1,31,32,121,29,18,11,35,14,64]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,i,o,r,s,a,l,u,d){var c=e.call(this,t,i.getRawOptions(),{},o,r,s,a,l,u,d)||this;return c._parentEditor=i,c._overwriteOptions=n,e.prototype.updateOptions.call(c,c._overwriteOptions),c._register(i.onDidChangeConfiguration((function(e){return c._onParentConfigurationChanged(e)}))),c}return r(t,e),t.prototype.getParentEditor=function(){return this._parentEditor},t.prototype._onParentConfigurationChanged=function(t){e.prototype.updateOptions.call(this,this._parentEditor.getRawOptions()),e.prototype.updateOptions.call(this,this._overwriteOptions)},t.prototype.updateOptions=function(t){n.mixin(this._overwriteOptions,t,!0),e.prototype.updateOptions.call(this,this._overwriteOptions)},t=h([g(3,l.IInstantiationService),g(4,i.ICodeEditorService),g(5,s.ICommandService),g(6,a.IContextKeyService),g(7,d.IThemeService),g(8,u.INotificationService),g(9,c.IAccessibilityService)],t)}(o.CodeEditorWidget);t.EmbeddedCodeEditorWidget=p})),\ndefine(n[565],i([0,1,72,2,48,14,44,49,3,38,46,4,21,20]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m){\"use strict\";function v(e){return e.toString()}Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(e){function t(t){var n=e.call(this)||this;return n.model=t,n._markersData=new Map,n._register(i.toDisposable((function(){n.model.deltaDecorations(d.keys(n._markersData),[]),n._markersData.clear()}))),n}return r(t,e),t.prototype.update=function(e,t){var n=d.keys(this._markersData);this._markersData.clear();for(var i=this.model.deltaDecorations(n,t),o=0;o<i.length;o++)this._markersData.set(i[o],e[o])},t.prototype.getMarker=function(e){return this._markersData.get(e.id)},t}(i.Disposable),y=function(e){function t(t,n){var i=e.call(this)||this;return i._markerService=n,i._onDidChangeMarker=i._register(new p.Emitter),i._markerDecorations=new Map,t.getModels().forEach((function(e){return i._onModelAdded(e)})),i._register(t.onModelAdded(i._onModelAdded,i)),i._register(t.onModelRemoved(i._onModelRemoved,i)),\ni._register(i._markerService.onMarkerChanged(i._handleMarkerChange,i)),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._markerDecorations.forEach((function(e){return e.dispose()})),this._markerDecorations.clear()},t.prototype.getMarker=function(e,t){var n=this._markerDecorations.get(v(e.uri));return n?f.withUndefinedAsNull(n.getMarker(t)):null},t.prototype._handleMarkerChange=function(e){var t=this;e.forEach((function(e){var n=t._markerDecorations.get(v(e));n&&t._updateDecorations(n)}))},t.prototype._onModelAdded=function(e){var t=new _(e);this._markerDecorations.set(v(e.uri),t),this._updateDecorations(t)},t.prototype._onModelRemoved=function(e){var t=this,n=this._markerDecorations.get(v(e.uri));n&&(n.dispose(),this._markerDecorations.delete(v(e.uri))),e.uri.scheme!==c.Schemas.inMemory&&e.uri.scheme!==c.Schemas.internal&&e.uri.scheme!==c.Schemas.vscode||this._markerService&&this._markerService.read({resource:e.uri}).map((function(e){return e.owner})).forEach((function(n){\nreturn t._markerService.remove(n,[e.uri])}))},t.prototype._updateDecorations=function(e){var t=this,n=this._markerService.read({resource:e.model.uri,take:500}),i=n.map((function(n){return{range:t._createDecorationRange(e.model,n),options:t._createDecorationOption(n)}}));e.update(n,i),this._onDidChangeMarker.fire(e.model)},t.prototype._createDecorationRange=function(e,t){var i=u.Range.lift(t);if(t.severity!==n.MarkerSeverity.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),(i=e.validateRange(i)).isEmpty()){var o=e.getWordAtPosition(i.getStartPosition());if(o)i=new u.Range(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn);else{var r=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);1===r||(i=i.endColumn>=r?new u.Range(i.startLineNumber,r-1,i.endLineNumber,r):new u.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn+1))}\n}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&i.startLineNumber===i.endLineNumber){var s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s<i.endColumn&&(i=new u.Range(i.startLineNumber,s,i.endLineNumber,i.endColumn),t.startColumn=s)}return i},t.prototype._createDecorationOption=function(e){var t,i,r,l=void 0,u=void 0;switch(e.severity){case n.MarkerSeverity.Hint:t=this._hasMarkerTag(e,2)?void 0:this._hasMarkerTag(e,1)?\"squiggly-unnecessary\":\"squiggly-hint\",i=0;break;case n.MarkerSeverity.Warning:t=\"squiggly-warning\",l=s.themeColorFromId(a.overviewRulerWarning),i=20,r={color:s.themeColorFromId(m.minimapWarning),position:o.MinimapPosition.Inline};break;case n.MarkerSeverity.Info:t=\"squiggly-info\",l=s.themeColorFromId(a.overviewRulerInfo),i=10;break;case n.MarkerSeverity.Error:default:t=\"squiggly-error\",l=s.themeColorFromId(a.overviewRulerError),i=30,r={color:s.themeColorFromId(m.minimapError),position:o.MinimapPosition.Inline}}\nreturn e.tags&&(-1!==e.tags.indexOf(1)&&(u=\"squiggly-inline-unnecessary\"),-1!==e.tags.indexOf(2)&&(u=\"squiggly-inline-deprecated\")),{stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:l,position:o.OverviewRulerLane.Right},minimap:r,zIndex:i,inlineClassName:u}},t.prototype._hasMarkerTag=function(e,t){return!!e.tags&&e.tags.indexOf(t)>=0},t=h([g(0,l.IModelService),g(1,n.IMarkerService)],t)}(i.Disposable);t.MarkerDecorationsService=y})),define(n[566],i([0,1,428,15,2,12,13,3,22,23,48,30,44,20,14,65,302]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=g.registerColor(\"editorOverviewRuler.bracketMatchForeground\",{dark:\"#A0A0A0\",light:\"#A0A0A0\",hc:\"#A0A0A0\"},n.localize(0,null)),_=function(e){function t(){return e.call(this,{id:\"editor.action.jumpToBracket\",label:n.localize(1,null),alias:\"Go to Bracket\",precondition:void 0,kbOpts:{kbExpr:d.EditorContextKeys.editorTextFocus,primary:3160,weight:100}})||this}return r(t,e),\nt.prototype.run=function(e,t){var n=b.get(t);n&&n.jumpToBracket()},t}(s.EditorAction),y=function(e){function t(){return e.call(this,{id:\"editor.action.selectToBracket\",label:n.localize(2,null),alias:\"Select to Bracket\",precondition:void 0,description:{description:\"Select to Bracket\",args:[{name:\"args\",schema:{type:\"object\",properties:{selectBrackets:{type:\"boolean\",default:!0}}}}]}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=b.get(t);if(i){var o=!0;n&&!1===n.selectBrackets&&(o=!1),i.selectToBracket(o)}},t}(s.EditorAction),C=function(e,t,n){this.position=e,this.brackets=t,this.options=n},b=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._lastBracketsData=[],n._lastVersionId=0,n._decorations=[],n._updateBracketsSoon=n._register(new i.RunOnceScheduler((function(){return n._updateBrackets()}),50)),n._matchBrackets=n._editor.getOption(53),n._updateBracketsSoon.schedule(),n._register(t.onDidChangeCursorPosition((function(e){\n\"never\"!==n._matchBrackets&&n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModelContent((function(e){n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModel((function(e){n._lastBracketsData=[],n._decorations=[],n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModelLanguageConfiguration((function(e){n._lastBracketsData=[],n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeConfiguration((function(e){e.hasChanged(53)&&(n._matchBrackets=n._editor.getOption(53),n._decorations=n._editor.deltaDecorations(n._decorations,[]),n._lastBracketsData=[],n._lastVersionId=0,n._updateBracketsSoon.schedule())}))),n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.jumpToBracket=function(){if(this._editor.hasModel()){var e=this._editor.getModel(),t=this._editor.getSelections().map((function(t){var n=t.getStartPosition(),i=e.matchBracket(n),o=null\n;if(i)i[0].containsPosition(n)?o=i[1].getStartPosition():i[1].containsPosition(n)&&(o=i[0].getStartPosition());else{var r=e.findEnclosingBrackets(n);if(r)o=r[0].getStartPosition();else{var s=e.findNextBracket(n);s&&s.range&&(o=s.range.getStartPosition())}}return o?new u.Selection(o.lineNumber,o.column,o.lineNumber,o.column):new u.Selection(n.lineNumber,n.column,n.lineNumber,n.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}},t.prototype.selectToBracket=function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=[];this._editor.getSelections().forEach((function(i){var o=i.getStartPosition(),r=t.matchBracket(o);if(!r&&!(r=t.findEnclosingBrackets(o))){var s=t.findNextBracket(o);s&&s.range&&(r=t.matchBracket(s.range.getStartPosition()))}var a=null,d=null;if(r){r.sort(l.Range.compareRangesUsingStarts);var c=r[0],h=r[1];a=e?c.getStartPosition():c.getEndPosition(),d=e?h.getEndPosition():h.getStartPosition()}a&&d&&n.push(new u.Selection(a.lineNumber,a.column,d.lineNumber,d.column))\n})),n.length>0&&(this._editor.setSelections(n),this._editor.revealRange(n[0]))}},t.prototype._updateBrackets=function(){if(\"never\"!==this._matchBrackets){this._recomputeBrackets();for(var e=[],t=0,n=0,i=this._lastBracketsData;n<i.length;n++){var o=i[n],r=o.brackets;r&&(e[t++]={range:r[0],options:o.options},e[t++]={range:r[1],options:o.options})}this._decorations=this._editor.deltaDecorations(this._decorations,e)}},t.prototype._recomputeBrackets=function(){if(!this._editor.hasModel())return this._lastBracketsData=[],void(this._lastVersionId=0);var e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);var n=this._editor.getModel(),i=n.getVersionId(),o=[];this._lastVersionId===i&&(o=this._lastBracketsData);for(var r=[],s=0,l=0,u=e.length;l<u;l++){var d=e[l];d.isEmpty()&&(r[s++]=d.getStartPosition())}r.length>1&&r.sort(a.Position.compare);var c=[],h=0,p=0,g=o.length;for(l=0,u=r.length;l<u;l++){for(var f=r[l];p<g&&o[p].position.isBefore(f);)p++\n;if(p<g&&o[p].position.equals(f))c[h++]=o[p];else{var m=n.matchBracket(f),v=t._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;m||\"always\"!==this._matchBrackets||(m=n.findEnclosingBrackets(f,20),v=t._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[h++]=new C(f,m,v)}}this._lastBracketsData=c,this._lastVersionId=i},t.ID=\"editor.contrib.bracketMatchingController\",t._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=h.ModelDecorationOptions.register({stickiness:1,className:\"bracket-match\",overviewRuler:{color:f.themeColorFromId(v),position:c.OverviewRulerLane.Center}}),t._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=h.ModelDecorationOptions.register({stickiness:1,className:\"bracket-match\"}),t}(o.Disposable);t.BracketMatchingController=b,s.registerEditorContribution(b.ID,b),s.registerEditorAction(y),s.registerEditorAction(_),f.registerThemingParticipant((function(e,t){var n=e.getColor(p.editorBracketMatchBackground);n&&t.addRule(\".monaco-editor .bracket-match { background-color: \"+n+\"; }\");var i=e.getColor(p.editorBracketMatchBorder)\n;i&&t.addRule(\".monaco-editor .bracket-match { border: 1px solid \"+i+\"; }\")})),m.MenuRegistry.appendMenuItem(19,{group:\"5_infile_nav\",command:{id:\"editor.action.jumpToBracket\",title:n.localize(3,null)},order:2})})),define(n[567],i([0,1,6,78,4,2,30,433,34,14,20,57,304]),(function(e,t,n,i,o,s,a,l,u,d,c,p){\"use strict\";var f;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Hidden={type:0};var t=function(e,t,n,i){this.actions=e,this.trigger=t,this.editorPosition=n,this.widgetPosition=i,this.type=1};e.Showing=t}(f||(f={}));var m=function(e){function t(t,r,s,a){var l=e.call(this)||this;return l._editor=t,l._quickFixActionId=r,l._preferredFixActionId=s,l._keybindingService=a,l._onClick=l._register(new o.Emitter),l.onClick=l._onClick.event,l._state=f.Hidden,l._domNode=document.createElement(\"div\"),l._domNode.className=\"codicon codicon-lightbulb\",l._editor.addContentWidget(l),l._register(l._editor.onDidChangeModelContent((function(e){var t=l._editor.getModel()\n;(1!==l.state.type||!t||l.state.editorPosition.lineNumber>=t.getLineCount())&&l.hide()}))),p.Gesture.ignoreTarget(l._domNode),l._register(n.addStandardDisposableGenericMouseDownListner(l._domNode,(function(e){if(1===l.state.type){l._editor.focus(),e.preventDefault();var t=n.getDomNodePagePosition(l._domNode),i=t.top,o=t.height,r=l._editor.getOption(49),s=Math.floor(r/3);null!==l.state.widgetPosition.position&&l.state.widgetPosition.position.lineNumber<l.state.editorPosition.lineNumber&&(s+=r),l._onClick.fire({x:e.posx,y:i+o+s,actions:l.state.actions,trigger:l.state.trigger})}}))),l._register(n.addDisposableListener(l._domNode,\"mouseenter\",(function(e){if(1==(1&e.buttons)){l.hide();var t=new i.GlobalMouseMoveMonitor;t.startMonitoring(e.target,e.buttons,i.standardMouseMoveMerger,(function(){}),(function(){t.dispose()}))}}))),l._register(l._editor.onDidChangeConfiguration((function(e){e.hasChanged(47)&&!l._editor.getOption(47).enabled&&l.hide()}))),l._updateLightBulbTitle(),\nl._register(l._keybindingService.onDidUpdateKeybindings(l._updateLightBulbTitle,l)),l}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._editor.removeContentWidget(this)},t.prototype.getId=function(){return\"LightBulbWidget\"},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return 1===this._state.type?this._state.widgetPosition:null},t.prototype.update=function(e,i,o){var r=this;if(e.validActions.length<=0)return this.hide();var s=this._editor.getOptions();if(!s.get(47).enabled)return this.hide();var l=o.lineNumber,u=o.column,d=this._editor.getModel();if(!d)return this.hide();var c=d.getOptions().tabSize,h=s.get(34),p=d.getLineContent(l),g=a.TextModel.computeIndentLevel(p,c),m=function(e){return e>2&&r._editor.getTopForLineNumber(e)===r._editor.getTopForLineNumber(e-1)},v=l;if(!(h.spaceWidth*g>22))if(l>1&&!m(l-1))v-=1;else if(m(l+1)){if(u*h.spaceWidth<22)return this.hide()}else v+=1;this.state=new f.Showing(e,i,o,{position:{lineNumber:v,\ncolumn:1},preference:t._posPref}),n.toggleClass(this._domNode,\"codicon-lightbulb-autofix\",e.hasAutoFix),this._editor.layoutContentWidget(this)},t.prototype.hide=function(){this.state=f.Hidden,this._editor.layoutContentWidget(this)},Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){this._state=e,this._updateLightBulbTitle()},enumerable:!0,configurable:!0}),t.prototype._updateLightBulbTitle=function(){if(1===this.state.type&&this.state.actions.hasAutoFix){var e=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(e)return void(this.title=l.localize(0,null,e.getLabel()))}var t=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=t?l.localize(1,null,t.getLabel()):l.localize(2,null)},Object.defineProperty(t.prototype,\"title\",{set:function(e){this._domNode.title=e},enumerable:!0,configurable:!0}),t._posPref=[0],t=h([g(3,u.IKeybindingService)],t)}(s.Disposable);t.LightBulbWidget=m,d.registerThemingParticipant((function(e,t){\nvar n=e.getColor(c.editorLightBulbForeground);n&&t.addRule(\"\\n\\t\\t.monaco-editor .contentWidgets .codicon-lightbulb {\\n\\t\\t\\tcolor: \"+n+\";\\n\\t\\t}\");var i=e.getColor(c.editorLightBulbAutoFixForeground);i&&t.addRule(\"\\n\\t\\t.monaco-editor .contentWidgets .codicon-lightbulb-autofix {\\n\\t\\t\\tcolor: \"+i+\";\\n\\t\\t}\")}))})),define(n[568],i([0,1,6,100,5,3,30,44,20,14,305]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e,t){this.afterLineNumber=e,this._onHeight=t,this.heightInLines=1,this.suppressMouseDown=!0,this.domNode=document.createElement(\"div\")}return e.prototype.onComputedHeight=function(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())},e}(),c=function(){function e(t,n,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id=\"codelens.widget-\"+e._idPool++,this.updatePosition(i),\nthis._domNode=document.createElement(\"span\"),this._domNode.className=\"codelens-decoration \"+n}return e.prototype.withCommands=function(e,t){this._commands.clear();for(var r=\"\",s=!1,a=0;a<e.length;a++){var l=e[a];if(l&&(s=!0,l.command)){var u=i.renderCodicons(o.escape(l.command.title));l.command.id?(r+=\"<a id=\"+a+\">\"+u+\"</a>\",this._commands.set(String(a),l.command)):r+=\"<span>\"+u+\"</span>\",a+1<e.length&&(r+=\"<span>&#160;|&#160;</span>\")}}s?(r||(r=\"&#160;\"),this._domNode.innerHTML=r,this._isEmpty&&t&&n.addClass(this._domNode,\"fadein\"),this._isEmpty=!1):this._domNode.innerHTML=\"<span>no commands</span>\"},e.prototype.getCommand=function(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0},e.prototype.getId=function(){return this._id},e.prototype.getDomNode=function(){return this._domNode},e.prototype.updatePosition=function(e){var t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}},\ne.prototype.getPosition=function(){return this._widgetPosition||null},e._idPool=0,e}(),h=function(){function e(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return e.prototype.addDecoration=function(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)},e.prototype.removeDecoration=function(e){this._removeDecorations.push(e)},e.prototype.commit=function(e){for(var t=e.deltaDecorations(this._removeDecorations,this._addDecorations),n=0,i=t.length;n<i;n++)this._addDecorationsCallbacks[n](t[n])},e}();t.CodeLensHelper=h;var p=function(){function e(e,t,n,i,o,a){var l,u=this;this._isDisposed=!1,this._editor=t,this._className=n,this._data=e,this._decorationIds=[];var c=[];this._data.forEach((function(e,t){e.symbol.command&&c.push(e.symbol),i.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},(function(e){return u._decorationIds[t]=e})),l=l?r.Range.plusRange(l,e.symbol.range):r.Range.lift(e.symbol.range)})),\nthis._viewZone=new d(l.startLineNumber-1,a),this._viewZoneId=o.addZone(this._viewZone),c.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(c,!1))}return e.prototype._createContentWidgetIfNecessary=function(){this._contentWidget||(this._contentWidget=new c(this._editor,this._className,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))},e.prototype.dispose=function(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t&&t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0},e.prototype.isDisposed=function(){return this._isDisposed},e.prototype.isValid=function(){var e=this;return this._decorationIds.some((function(t,n){var i=e._editor.getModel().getDecorationRange(t),o=e._data[n].symbol;return!(!i||r.Range.isEmpty(o.range)!==i.isEmpty())}))},e.prototype.updateCodeLensSymbols=function(e,t){var n=this\n;this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((function(e,i){t.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},(function(e){return n._decorationIds[i]=e}))}))},e.prototype.computeIfNecessary=function(e){if(!this._viewZone.domNode.hasAttribute(\"monaco-visible-view-zone\"))return null;for(var t=0;t<this._decorationIds.length;t++){var n=e.getDecorationRange(this._decorationIds[t]);n&&(this._data[t].symbol.range=n)}return this._data},e.prototype.updateCommands=function(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(var t=0;t<this._data.length;t++){var n=e[t];if(n){var i=this._data[t].symbol;i.command=n.command||i.command}}},e.prototype.getCommand=function(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)},e.prototype.getLineNumber=function(){var e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1},\ne.prototype.update=function(e){if(this.isValid()){var t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}},e}();t.CodeLensWidget=p,u.registerThemingParticipant((function(e,t){var n=e.getColor(a.editorCodeLensForeground);n&&(t.addRule(\".monaco-editor .codelens-decoration { color: \"+n+\"; }\"),t.addRule(\".monaco-editor .codelens-decoration .codicon { color: \"+n+\"; }\"));var i=e.getColor(l.editorActiveLinkForeground);i&&(t.addRule(\".monaco-editor .codelens-decoration > a:hover { color: \"+i+\" !important; }\"),t.addRule(\".monaco-editor .codelens-decoration > a:hover .codicon { color: \"+i+\" !important; }\"))}))}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[569],i([0,1,15,10,2,67,12,17,221,568,29,35,529,6,125]),(function(e,t,n,i,o,r,s,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t,n,i){var r=this;this._editor=e,this._commandService=t,this._notificationService=n,this._codeLensCache=i,this._globalToDispose=new o.DisposableStore,this._localToDispose=new o.DisposableStore,this._lenses=[],this._oldCodeLensModels=new o.DisposableStore,this._modelChangeCounter=0,this._isEnabled=this._editor.getOption(11),this._globalToDispose.add(this._editor.onDidChangeModel((function(){return r._onModelChange()}))),this._globalToDispose.add(this._editor.onDidChangeModelLanguage((function(){return r._onModelChange()}))),this._globalToDispose.add(this._editor.onDidChangeConfiguration((function(){var e=r._isEnabled;r._isEnabled=r._editor.getOption(11),e!==r._isEnabled&&r._onModelChange()}))),\nthis._globalToDispose.add(l.CodeLensProviderRegistry.onDidChange(this._onModelChange,this)),this._globalToDispose.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&r._updateLensStyle()}))),this._onModelChange(),this._styleClassName=v.hash(this._editor.getId()).toString(16),this._styleElement=m.createStyleSheet(m.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}return e.prototype.dispose=function(){this._localDispose(),this._globalToDispose.dispose(),this._oldCodeLensModels.dispose(),o.dispose(this._currentCodeLensModel)},e.prototype._updateLensStyle=function(){\nvar e=this._editor.getOptions(),t=e.get(34),n=e.get(49),i=Math.round(1.1*n),o=Math.round(.9*t.fontSize),r=\"\\n\\t\\t.monaco-editor .codelens-decoration.\"+this._styleClassName+\" { height: \"+i+\"px; line-height: \"+n+\"px; font-size: \"+o+\"px; padding-right: \"+Math.round(.45*t.fontSize)+\"px;}\\n\\t\\t.monaco-editor .codelens-decoration.\"+this._styleClassName+\" > a > .codicon { line-height: \"+n+\"px; font-size: \"+o+\"px; }\\n\\t\\t\";this._styleElement.innerHTML=r},e.prototype._localDispose=function(){this._currentFindCodeLensSymbolsPromise&&(this._currentFindCodeLensSymbolsPromise.cancel(),this._currentFindCodeLensSymbolsPromise=void 0,this._modelChangeCounter++),this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0),this._localToDispose.clear(),this._oldCodeLensModels.clear(),o.dispose(this._currentCodeLensModel)},e.prototype._onModelChange=function(){var e=this;this._localDispose();var t=this._editor.getModel()\n;if(t&&this._isEnabled){var s=this._codeLensCache.get(t);if(s&&this._renderCodeLensSymbols(s),l.CodeLensProviderRegistry.has(t)){for(var c=0,h=l.CodeLensProviderRegistry.all(t);c<h.length;c++){var p=h[c];if(\"function\"==typeof p.onDidChange){var g=p.onDidChange((function(){return m.schedule()}));this._localToDispose.add(g)}}var f=this._detectVisibleLenses=new n.RunOnceScheduler((function(){return e._onViewportChanged()}),250),m=new n.RunOnceScheduler((function(){var o=++e._modelChangeCounter;e._currentFindCodeLensSymbolsPromise&&e._currentFindCodeLensSymbolsPromise.cancel(),e._currentFindCodeLensSymbolsPromise=n.createCancelablePromise((function(e){return u.getCodeLensData(t,e)})),e._currentFindCodeLensSymbolsPromise.then((function(n){o===e._modelChangeCounter&&(e._currentCodeLensModel&&e._oldCodeLensModels.add(e._currentCodeLensModel),e._currentCodeLensModel=n,e._codeLensCache.put(t,n),e._renderCodeLensSymbols(n),f.schedule())}),i.onUnexpectedError)}),250);this._localToDispose.add(m),\nthis._localToDispose.add(f),this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){var i=[],o=-1;e._lenses.forEach((function(e){e.isValid()&&o!==e.getLineNumber()?(e.update(n),o=e.getLineNumber()):i.push(e)}));var r=new d.CodeLensHelper;i.forEach((function(t){t.dispose(r,n),e._lenses.splice(e._lenses.indexOf(t),1)})),r.commit(t)}))})),f.schedule(),m.schedule()}))),this._localToDispose.add(this._editor.onDidScrollChange((function(t){t.scrollTopChanged&&e._lenses.length>0&&f.schedule()}))),this._localToDispose.add(this._editor.onDidLayoutChange((function(){f.schedule()}))),this._localToDispose.add(o.toDisposable((function(){if(e._editor.getModel()){var t=r.StableEditorScrollState.capture(e._editor);e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){e._disposeAllLenses(t,n)}))})),t.restore(e._editor)}else e._disposeAllLenses(void 0,void 0)}))),\nthis._localToDispose.add(this._editor.onMouseUp((function(t){var n;if(9===t.target.type){var i=t.target.element;if(\"SPAN\"===(null==i?void 0:i.tagName)&&(i=i.parentElement),\"A\"===(null==i?void 0:i.tagName))for(var o=0,r=e._lenses;o<r.length;o++){var s=r[o].getCommand(i);if(s){(n=e._commandService).executeCommand.apply(n,a([s.id],s.arguments||[])).catch((function(t){return e._notificationService.error(t)}));break}}}}))),m.schedule()}else s&&this._localToDispose.add(n.disposableTimeout((function(){var n=e._codeLensCache.get(t);s===n&&(e._codeLensCache.delete(t),e._onModelChange())}),3e4))}},e.prototype._disposeAllLenses=function(e,t){for(var n=new d.CodeLensHelper,i=0,o=this._lenses;i<o.length;i++){o[i].dispose(n,t)}e&&n.commit(e),this._lenses=[]},e.prototype._renderCodeLensSymbols=function(e){var t=this;if(this._editor.hasModel()){for(var n,i=this._editor.getModel().getLineCount(),o=[],s=0,a=e.lenses;s<a.length;s++){var l=a[s],u=l.symbol.range.startLineNumber\n;u<1||u>i||(n&&n[n.length-1].symbol.range.startLineNumber===u?n.push(l):(n=[l],o.push(n)))}var c=r.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations((function(e){t._editor.changeViewZones((function(n){for(var i=new d.CodeLensHelper,r=0,s=0;s<o.length&&r<t._lenses.length;){var a=o[s][0].symbol.range.startLineNumber,l=t._lenses[r].getLineNumber();l<a?(t._lenses[r].dispose(i,n),t._lenses.splice(r,1)):l===a?(t._lenses[r].updateCodeLensSymbols(o[s],i),s++,r++):(t._lenses.splice(r,0,new d.CodeLensWidget(o[s],t._editor,t._styleClassName,i,n,(function(){return t._detectVisibleLenses&&t._detectVisibleLenses.schedule()}))),r++,s++)}for(;r<t._lenses.length;)t._lenses[r].dispose(i,n),t._lenses.splice(r,1);for(;s<o.length;)t._lenses.push(new d.CodeLensWidget(o[s],t._editor,t._styleClassName,i,n,(function(){return t._detectVisibleLenses&&t._detectVisibleLenses.schedule()}))),s++;i.commit(e)}))})),c.restore(this._editor)}},e.prototype._onViewportChanged=function(){var e=this\n;this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0);var t=this._editor.getModel();if(t){var o=[],r=[];if(this._lenses.forEach((function(e){var n=e.computeIfNecessary(t);n&&(o.push(n),r.push(e))})),0!==o.length){var s=n.createCancelablePromise((function(e){var n=o.map((function(n,o){var s=new Array(n.length),a=n.map((function(n,o){return n.symbol.command||\"function\"!=typeof n.provider.resolveCodeLens?(s[o]=n.symbol,Promise.resolve(void 0)):Promise.resolve(n.provider.resolveCodeLens(t,n.symbol,e)).then((function(e){s[o]=e}),i.onUnexpectedExternalError)}));return Promise.all(a).then((function(){e.isCancellationRequested||r[o].isDisposed()||r[o].updateCommands(s)}))}));return Promise.all(n)}));this._currentResolveCodeLensSymbolsPromise=s,this._currentResolveCodeLensSymbolsPromise.then((function(){e._currentCodeLensModel&&e._codeLensCache.put(t,e._currentCodeLensModel),e._oldCodeLensModels.clear(),\ns===e._currentResolveCodeLensSymbolsPromise&&(e._currentResolveCodeLensSymbolsPromise=void 0)}),(function(t){i.onUnexpectedError(t),s===e._currentResolveCodeLensSymbolsPromise&&(e._currentResolveCodeLensSymbolsPromise=void 0)}))}}},e.ID=\"css.editor.codeLens\",e=h([g(1,c.ICommandService),g(2,p.INotificationService),g(3,f.ICodeLensCache)],e)}();t.CodeLensContribution=_,s.registerEditorContribution(_.ID,_)})),define(n[570],i([0,1,24,6,78,47,27,4,2,20,14,306]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=i.$,p=function(e){function t(t,n,o){var r=e.call(this)||this;r.model=n,r.domNode=h(\".colorpicker-header\"),i.append(t,r.domNode),r.pickedColorNode=i.append(r.domNode,h(\".picked-color\"));var s=i.append(r.domNode,h(\".original-color\"));return s.style.backgroundColor=a.Color.Format.CSS.format(r.model.originalColor)||\"\",r.backgroundColor=o.getTheme().getColor(d.editorHoverBackground)||a.Color.white,r._register(c.registerThemingParticipant((function(e,t){\nr.backgroundColor=e.getColor(d.editorHoverBackground)||a.Color.white}))),r._register(i.addDisposableListener(r.pickedColorNode,i.EventType.CLICK,(function(){return r.model.selectNextColorPresentation()}))),r._register(i.addDisposableListener(s,i.EventType.CLICK,(function(){r.model.color=r.model.originalColor,r.model.flushColor()}))),r._register(n.onDidChangeColor(r.onDidChangeColor,r)),r._register(n.onDidChangePresentation(r.onDidChangePresentation,r)),r.pickedColorNode.style.backgroundColor=a.Color.Format.CSS.format(n.color)||\"\",i.toggleClass(r.pickedColorNode,\"light\",n.color.rgba.a<.5?r.backgroundColor.isLighter():n.color.isLighter()),r}return r(t,e),t.prototype.onDidChangeColor=function(e){this.pickedColorNode.style.backgroundColor=a.Color.Format.CSS.format(e)||\"\",i.toggleClass(this.pickedColorNode,\"light\",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()},t.prototype.onDidChangePresentation=function(){\nthis.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:\"\"},t}(u.Disposable);t.ColorPickerHeader=p;var g=function(e){function t(t,n,o){var r=e.call(this)||this;return r.model=n,r.pixelRatio=o,r.domNode=h(\".colorpicker-body\"),i.append(t,r.domNode),r.saturationBox=new f(r.domNode,r.model,r.pixelRatio),r._register(r.saturationBox),r._register(r.saturationBox.onDidChange(r.onDidSaturationValueChange,r)),r._register(r.saturationBox.onColorFlushed(r.flushColor,r)),r.opacityStrip=new v(r.domNode,r.model),r._register(r.opacityStrip),r._register(r.opacityStrip.onDidChange(r.onDidOpacityChange,r)),r._register(r.opacityStrip.onColorFlushed(r.flushColor,r)),r.hueStrip=new _(r.domNode,r.model),r._register(r.hueStrip),r._register(r.hueStrip.onDidChange(r.onDidHueChange,r)),r._register(r.hueStrip.onColorFlushed(r.flushColor,r)),r}return r(t,e),t.prototype.flushColor=function(){this.model.flushColor()},t.prototype.onDidSaturationValueChange=function(e){var t=e.s,n=e.v,i=this.model.color.hsva\n;this.model.color=new a.Color(new a.HSVA(i.h,t,n,i.a))},t.prototype.onDidOpacityChange=function(e){var t=this.model.color.hsva;this.model.color=new a.Color(new a.HSVA(t.h,t.s,t.v,e))},t.prototype.onDidHueChange=function(e){var t=this.model.color.hsva,n=360*(1-e);this.model.color=new a.Color(new a.HSVA(360===n?0:n,t.s,t.v,t.a))},t.prototype.layout=function(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()},t}(u.Disposable);t.ColorPickerBody=g;var f=function(e){function t(t,n,o){var r=e.call(this)||this;return r.model=n,r.pixelRatio=o,r._onDidChange=new l.Emitter,r.onDidChange=r._onDidChange.event,r._onColorFlushed=new l.Emitter,r.onColorFlushed=r._onColorFlushed.event,r.domNode=h(\".saturation-wrap\"),i.append(t,r.domNode),r.canvas=document.createElement(\"canvas\"),r.canvas.className=\"saturation-box\",i.append(r.domNode,r.canvas),r.selection=h(\".saturation-selection\"),i.append(r.domNode,r.selection),r.layout(),r._register(i.addDisposableGenericMouseDownListner(r.domNode,(function(e){\nreturn r.onMouseDown(e)}))),r._register(r.model.onDidChangeColor(r.onDidChangeColor,r)),r.monitor=null,r}return r(t,e),t.prototype.onMouseDown=function(e){var t=this;this.monitor=this._register(new o.GlobalMouseMoveMonitor);var n=i.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){return t.onDidChangePosition(e.posx-n.left,e.posy-n.top)}),(function(){return null}));var r=i.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),r.dispose(),t.monitor&&(t.monitor.stopMonitoring(!0),t.monitor=null)}),!0)},t.prototype.onDidChangePosition=function(e,t){var n=Math.max(0,Math.min(1,e/this.width)),i=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(n,i),this._onDidChange.fire({s:n,v:i})},t.prototype.layout=function(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,\nthis.canvas.height=this.height*this.pixelRatio,this.paint();var e=this.model.color.hsva;this.paintSelection(e.s,e.v)},t.prototype.paint=function(){var e=this.model.color.hsva,t=new a.Color(new a.HSVA(e.h,1,1,1)),n=this.canvas.getContext(\"2d\"),i=n.createLinearGradient(0,0,this.canvas.width,0);i.addColorStop(0,\"rgba(255, 255, 255, 1)\"),i.addColorStop(.5,\"rgba(255, 255, 255, 0.5)\"),i.addColorStop(1,\"rgba(255, 255, 255, 0)\");var o=n.createLinearGradient(0,0,0,this.canvas.height);o.addColorStop(0,\"rgba(0, 0, 0, 0)\"),o.addColorStop(1,\"rgba(0, 0, 0, 1)\"),n.rect(0,0,this.canvas.width,this.canvas.height),n.fillStyle=a.Color.Format.CSS.format(t),n.fill(),n.fillStyle=i,n.fill(),n.fillStyle=o,n.fill()},t.prototype.paintSelection=function(e,t){this.selection.style.left=e*this.width+\"px\",this.selection.style.top=this.height-t*this.height+\"px\"},t.prototype.onDidChangeColor=function(){this.monitor&&this.monitor.isMonitoring()||this.paint()},t}(u.Disposable),m=function(e){function t(t,n){var o=e.call(this)||this\n;return o.model=n,o._onDidChange=new l.Emitter,o.onDidChange=o._onDidChange.event,o._onColorFlushed=new l.Emitter,o.onColorFlushed=o._onColorFlushed.event,o.domNode=i.append(t,h(\".strip\")),o.overlay=i.append(o.domNode,h(\".overlay\")),o.slider=i.append(o.domNode,h(\".slider\")),o.slider.style.top=\"0px\",o._register(i.addDisposableGenericMouseDownListner(o.domNode,(function(e){return o.onMouseDown(e)}))),o.layout(),o}return r(t,e),t.prototype.layout=function(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;var e=this.getValue(this.model.color);this.updateSliderPosition(e)},t.prototype.onMouseDown=function(e){var t=this,n=this._register(new o.GlobalMouseMoveMonitor),r=i.getDomNodePagePosition(this.domNode);i.addClass(this.domNode,\"grabbing\"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),n.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){return t.onDidChangeTop(e.posy-r.top)}),(function(){return null}));var s=i.addDisposableGenericMouseUpListner(document,(function(){\nt._onColorFlushed.fire(),s.dispose(),n.stopMonitoring(!0),i.removeClass(t.domNode,\"grabbing\")}),!0)},t.prototype.onDidChangeTop=function(e){var t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)},t.prototype.updateSliderPosition=function(e){this.slider.style.top=(1-e)*this.height+\"px\"},t}(u.Disposable),v=function(e){function t(t,n){var o=e.call(this,t,n)||this;return i.addClass(o.domNode,\"opacity-strip\"),o._register(n.onDidChangeColor(o.onDidChangeColor,o)),o.onDidChangeColor(o.model.color),o}return r(t,e),t.prototype.onDidChangeColor=function(e){var t=e.rgba,n=t.r,i=t.g,o=t.b,r=new a.Color(new a.RGBA(n,i,o,1)),s=new a.Color(new a.RGBA(n,i,o,0));this.overlay.style.background=\"linear-gradient(to bottom, \"+r+\" 0%, \"+s+\" 100%)\"},t.prototype.getValue=function(e){return e.hsva.a},t}(m),_=function(e){function t(t,n){var o=e.call(this,t,n)||this;return i.addClass(o.domNode,\"hue-strip\"),o}return r(t,e),t.prototype.getValue=function(e){return 1-e.hsva.h/360},t\n}(m),y=function(e){function t(t,i,o,r){var s=e.call(this)||this;s.model=i,s.pixelRatio=o,s._register(n.onDidChangeZoomLevel((function(){return s.layout()})));var a=h(\".colorpicker-widget\");t.appendChild(a);var l=new p(a,s.model,r);return s.body=new g(a,s.model,s.pixelRatio),s._register(l),s._register(s.body),s}return r(t,e),t.prototype.layout=function(){this.body.layout()},t}(s.Widget);t.ColorPickerWidget=y})),define(n[231],i([0,1,437,14,20,308,309]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.SYMBOL_ICON_ARRAY_FOREGROUND=o.registerColor(\"symbolIcon.arrayForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(0,null)),t.SYMBOL_ICON_BOOLEAN_FOREGROUND=o.registerColor(\"symbolIcon.booleanForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(1,null)),t.SYMBOL_ICON_CLASS_FOREGROUND=o.registerColor(\"symbolIcon.classForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(2,null)),\nt.SYMBOL_ICON_COLOR_FOREGROUND=o.registerColor(\"symbolIcon.colorForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(3,null)),t.SYMBOL_ICON_CONSTANT_FOREGROUND=o.registerColor(\"symbolIcon.constantForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(4,null)),t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=o.registerColor(\"symbolIcon.constructorForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(5,null)),t.SYMBOL_ICON_ENUMERATOR_FOREGROUND=o.registerColor(\"symbolIcon.enumeratorForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(6,null)),t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=o.registerColor(\"symbolIcon.enumeratorMemberForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(7,null)),t.SYMBOL_ICON_EVENT_FOREGROUND=o.registerColor(\"symbolIcon.eventForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(8,null)),t.SYMBOL_ICON_FIELD_FOREGROUND=o.registerColor(\"symbolIcon.fieldForeground\",{dark:\"#75BEFF\",\nlight:\"#007ACC\",hc:\"#75BEFF\"},n.localize(9,null)),t.SYMBOL_ICON_FILE_FOREGROUND=o.registerColor(\"symbolIcon.fileForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(10,null)),t.SYMBOL_ICON_FOLDER_FOREGROUND=o.registerColor(\"symbolIcon.folderForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(11,null)),t.SYMBOL_ICON_FUNCTION_FOREGROUND=o.registerColor(\"symbolIcon.functionForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(12,null)),t.SYMBOL_ICON_INTERFACE_FOREGROUND=o.registerColor(\"symbolIcon.interfaceForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(13,null)),t.SYMBOL_ICON_KEY_FOREGROUND=o.registerColor(\"symbolIcon.keyForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(14,null)),t.SYMBOL_ICON_KEYWORD_FOREGROUND=o.registerColor(\"symbolIcon.keywordForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(15,null)),\nt.SYMBOL_ICON_METHOD_FOREGROUND=o.registerColor(\"symbolIcon.methodForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(16,null)),t.SYMBOL_ICON_MODULE_FOREGROUND=o.registerColor(\"symbolIcon.moduleForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(17,null)),t.SYMBOL_ICON_NAMESPACE_FOREGROUND=o.registerColor(\"symbolIcon.namespaceForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(18,null)),t.SYMBOL_ICON_NULL_FOREGROUND=o.registerColor(\"symbolIcon.nullForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(19,null)),t.SYMBOL_ICON_NUMBER_FOREGROUND=o.registerColor(\"symbolIcon.numberForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(20,null)),t.SYMBOL_ICON_OBJECT_FOREGROUND=o.registerColor(\"symbolIcon.objectForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(21,null)),t.SYMBOL_ICON_OPERATOR_FOREGROUND=o.registerColor(\"symbolIcon.operatorForeground\",{dark:o.foreground,\nlight:o.foreground,hc:o.foreground},n.localize(22,null)),t.SYMBOL_ICON_PACKAGE_FOREGROUND=o.registerColor(\"symbolIcon.packageForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(23,null)),t.SYMBOL_ICON_PROPERTY_FOREGROUND=o.registerColor(\"symbolIcon.propertyForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(24,null)),t.SYMBOL_ICON_REFERENCE_FOREGROUND=o.registerColor(\"symbolIcon.referenceForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(25,null)),t.SYMBOL_ICON_SNIPPET_FOREGROUND=o.registerColor(\"symbolIcon.snippetForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(26,null)),t.SYMBOL_ICON_STRING_FOREGROUND=o.registerColor(\"symbolIcon.stringForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(27,null)),t.SYMBOL_ICON_STRUCT_FOREGROUND=o.registerColor(\"symbolIcon.structForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(28,null)),\nt.SYMBOL_ICON_TEXT_FOREGROUND=o.registerColor(\"symbolIcon.textForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(29,null)),t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=o.registerColor(\"symbolIcon.typeParameterForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(30,null)),t.SYMBOL_ICON_UNIT_FOREGROUND=o.registerColor(\"symbolIcon.unitForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(31,null)),t.SYMBOL_ICON_VARIABLE_FOREGROUND=o.registerColor(\"symbolIcon.variableForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(32,null)),i.registerThemingParticipant((function(e,n){var i=e.getColor(t.SYMBOL_ICON_ARRAY_FOREGROUND);i&&n.addRule(\".codicon-symbol-array { color: \"+i+\" !important; }\");var o=e.getColor(t.SYMBOL_ICON_BOOLEAN_FOREGROUND);o&&n.addRule(\".codicon-symbol-boolean { color: \"+o+\" !important; }\");var r=e.getColor(t.SYMBOL_ICON_CLASS_FOREGROUND);r&&n.addRule(\".codicon-symbol-class { color: \"+r+\" !important; }\")\n;var s=e.getColor(t.SYMBOL_ICON_METHOD_FOREGROUND);s&&n.addRule(\".codicon-symbol-method { color: \"+s+\" !important; }\");var a=e.getColor(t.SYMBOL_ICON_COLOR_FOREGROUND);a&&n.addRule(\".codicon-symbol-color { color: \"+a+\" !important; }\");var l=e.getColor(t.SYMBOL_ICON_CONSTANT_FOREGROUND);l&&n.addRule(\".codicon-symbol-constant { color: \"+l+\" !important; }\");var u=e.getColor(t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND);u&&n.addRule(\".codicon-symbol-constructor { color: \"+u+\" !important; }\");var d=e.getColor(t.SYMBOL_ICON_ENUMERATOR_FOREGROUND);d&&n.addRule(\"\\n\\t\\t\\t.codicon-symbol-value,.codicon-symbol-enum { color: \"+d+\" !important; }\");var c=e.getColor(t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND);c&&n.addRule(\".codicon-symbol-enum-member { color: \"+c+\" !important; }\");var h=e.getColor(t.SYMBOL_ICON_EVENT_FOREGROUND);h&&n.addRule(\".codicon-symbol-event { color: \"+h+\" !important; }\");var p=e.getColor(t.SYMBOL_ICON_FIELD_FOREGROUND);p&&n.addRule(\".codicon-symbol-field { color: \"+p+\" !important; }\")\n;var g=e.getColor(t.SYMBOL_ICON_FILE_FOREGROUND);g&&n.addRule(\".codicon-symbol-file { color: \"+g+\" !important; }\");var f=e.getColor(t.SYMBOL_ICON_FOLDER_FOREGROUND);f&&n.addRule(\".codicon-symbol-folder { color: \"+f+\" !important; }\");var m=e.getColor(t.SYMBOL_ICON_FUNCTION_FOREGROUND);m&&n.addRule(\".codicon-symbol-function { color: \"+m+\" !important; }\");var v=e.getColor(t.SYMBOL_ICON_INTERFACE_FOREGROUND);v&&n.addRule(\".codicon-symbol-interface { color: \"+v+\" !important; }\");var _=e.getColor(t.SYMBOL_ICON_KEY_FOREGROUND);_&&n.addRule(\".codicon-symbol-key { color: \"+_+\" !important; }\");var y=e.getColor(t.SYMBOL_ICON_KEYWORD_FOREGROUND);y&&n.addRule(\".codicon-symbol-keyword { color: \"+y+\" !important; }\");var C=e.getColor(t.SYMBOL_ICON_MODULE_FOREGROUND);C&&n.addRule(\".codicon-symbol-module { color: \"+C+\" !important; }\");var b=e.getColor(t.SYMBOL_ICON_NAMESPACE_FOREGROUND);b&&n.addRule(\".codicon-symbol-namespace { color: \"+b+\" !important; }\");var S=e.getColor(t.SYMBOL_ICON_NULL_FOREGROUND)\n;S&&n.addRule(\".codicon-symbol-null { color: \"+S+\" !important; }\");var w=e.getColor(t.SYMBOL_ICON_NUMBER_FOREGROUND);w&&n.addRule(\".codicon-symbol-number { color: \"+w+\" !important; }\");var E=e.getColor(t.SYMBOL_ICON_OBJECT_FOREGROUND);E&&n.addRule(\".codicon-symbol-object { color: \"+E+\" !important; }\");var L=e.getColor(t.SYMBOL_ICON_OPERATOR_FOREGROUND);L&&n.addRule(\".codicon-symbol-operator { color: \"+L+\" !important; }\");var D=e.getColor(t.SYMBOL_ICON_PACKAGE_FOREGROUND);D&&n.addRule(\".codicon-symbol-package { color: \"+D+\" !important; }\");var N=e.getColor(t.SYMBOL_ICON_PROPERTY_FOREGROUND);N&&n.addRule(\".codicon-symbol-property { color: \"+N+\" !important; }\");var x=e.getColor(t.SYMBOL_ICON_REFERENCE_FOREGROUND);x&&n.addRule(\".codicon-symbol-reference { color: \"+x+\" !important; }\");var I=e.getColor(t.SYMBOL_ICON_SNIPPET_FOREGROUND);I&&n.addRule(\".codicon-symbol-snippet { color: \"+I+\" !important; }\");var M=e.getColor(t.SYMBOL_ICON_STRING_FOREGROUND)\n;M&&n.addRule(\".codicon-symbol-string { color: \"+M+\" !important; }\");var k=e.getColor(t.SYMBOL_ICON_STRUCT_FOREGROUND);k&&n.addRule(\".codicon-symbol-struct { color: \"+k+\" !important; }\");var T=e.getColor(t.SYMBOL_ICON_TEXT_FOREGROUND);T&&n.addRule(\".codicon-symbol-text { color: \"+T+\" !important; }\");var R=e.getColor(t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND);R&&n.addRule(\".codicon-symbol-type-parameter { color: \"+R+\" !important; }\");var O=e.getColor(t.SYMBOL_ICON_UNIT_FOREGROUND);O&&n.addRule(\".codicon-symbol-unit { color: \"+O+\" !important; }\");var P=e.getColor(t.SYMBOL_ICON_VARIABLE_FOREGROUND);P&&n.addRule(\".codicon-symbol-variable { color: \"+P+\" !important; }\")}))})),define(n[571],i([0,1,3,48,30,20,14]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,\nthis._startPosition=this._editor.getPosition()}return e.prototype.dispose=function(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null},e.prototype.reset=function(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null},e.prototype.getCount=function(){return this._decorations.length},e.prototype.getFindScope=function(){return this._findScopeDecorationId?this._editor.getModel().getDecorationRange(this._findScopeDecorationId):null},e.prototype.getStartPosition=function(){return this._startPosition},e.prototype.setStartPosition=function(e){this._startPosition=e,this.setCurrentFindMatch(null)},e.prototype._getDecorationIndex=function(e){var t=this._decorations.indexOf(e);return t>=0?t+1:1},\ne.prototype.getCurrentMatchesPosition=function(t){for(var n=0,i=this._editor.getModel().getDecorationsInRange(t);n<i.length;n++){var o=i[n],r=o.options;if(r===e._FIND_MATCH_DECORATION||r===e._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(o.id)}return 1},e.prototype.setCurrentFindMatch=function(t){var i=this,o=null,r=0;if(t)for(var s=0,a=this._decorations.length;s<a;s++){var l=this._editor.getModel().getDecorationRange(this._decorations[s]);if(t.equalsRange(l)){o=this._decorations[s],r=s+1;break}}return null===this._highlightedDecorationId&&null===o||this._editor.changeDecorations((function(t){if(null!==i._highlightedDecorationId&&(t.changeDecorationOptions(i._highlightedDecorationId,e._FIND_MATCH_DECORATION),i._highlightedDecorationId=null),null!==o&&(i._highlightedDecorationId=o,t.changeDecorationOptions(i._highlightedDecorationId,e._CURRENT_FIND_MATCH_DECORATION)),null!==i._rangeHighlightDecorationId&&(t.removeDecoration(i._rangeHighlightDecorationId),i._rangeHighlightDecorationId=null),\nnull!==o){var r=i._editor.getModel().getDecorationRange(o);if(r.startLineNumber!==r.endLineNumber&&1===r.endColumn){var s=r.endLineNumber-1,a=i._editor.getModel().getLineMaxColumn(s);r=new n.Range(r.startLineNumber,r.startColumn,s,a)}i._rangeHighlightDecorationId=t.addDecoration(r,e._RANGE_HIGHLIGHT_DECORATION)}})),r},e.prototype.set=function(t,i){var o=this;this._editor.changeDecorations((function(r){var s=e._FIND_MATCH_DECORATION,a=[];if(t.length>1e3){s=e._FIND_MATCH_NO_OVERVIEW_DECORATION;for(var l=o._editor.getModel().getLineCount(),u=o._editor.getLayoutInfo().height/l,d=Math.max(2,Math.ceil(3/u)),c=t[0].range.startLineNumber,h=t[0].range.endLineNumber,p=1,g=t.length;p<g;p++){var f=t[p].range;h+d>=f.startLineNumber?f.endLineNumber>h&&(h=f.endLineNumber):(a.push({range:new n.Range(c,1,h,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=f.startLineNumber,h=f.endLineNumber)}a.push({range:new n.Range(c,1,h,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}var m=new Array(t.length);for(p=0,\ng=t.length;p<g;p++)m[p]={range:t[p].range,options:s};o._decorations=r.deltaDecorations(o._decorations,m),o._overviewRulerApproximateDecorations=r.deltaDecorations(o._overviewRulerApproximateDecorations,a),o._rangeHighlightDecorationId&&(r.removeDecoration(o._rangeHighlightDecorationId),o._rangeHighlightDecorationId=null),o._findScopeDecorationId&&(r.removeDecoration(o._findScopeDecorationId),o._findScopeDecorationId=null),i&&(o._findScopeDecorationId=r.addDecoration(i,e._FIND_SCOPE_DECORATION))}))},e.prototype.matchBeforePosition=function(e){if(0===this._decorations.length)return null;for(var t=this._decorations.length-1;t>=0;t--){var n=this._decorations[t],i=this._editor.getModel().getDecorationRange(n);if(i&&!(i.endLineNumber>e.lineNumber)){if(i.endLineNumber<e.lineNumber)return i;if(!(i.endColumn>e.column))return i}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])},e.prototype.matchAfterPosition=function(e){if(0===this._decorations.length)return null\n;for(var t=0,n=this._decorations.length;t<n;t++){var i=this._decorations[t],o=this._editor.getModel().getDecorationRange(i);if(o&&!(o.startLineNumber<e.lineNumber)){if(o.startLineNumber>e.lineNumber)return o;if(!(o.startColumn<e.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[0])},e.prototype._allDecorations=function(){var e=[];return e=(e=e.concat(this._decorations)).concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationId&&e.push(this._findScopeDecorationId),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e},e._CURRENT_FIND_MATCH_DECORATION=o.ModelDecorationOptions.register({stickiness:1,zIndex:13,className:\"currentFindMatch\",showIfCollapsed:!0,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center},minimap:{color:s.themeColorFromId(r.minimapFindMatch),position:i.MinimapPosition.Inline}}),e._FIND_MATCH_DECORATION=o.ModelDecorationOptions.register({stickiness:1,\nclassName:\"findMatch\",showIfCollapsed:!0,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center},minimap:{color:s.themeColorFromId(r.minimapFindMatch),position:i.MinimapPosition.Inline}}),e._FIND_MATCH_NO_OVERVIEW_DECORATION=o.ModelDecorationOptions.register({stickiness:1,className:\"findMatch\",showIfCollapsed:!0}),e._FIND_MATCH_ONLY_OVERVIEW_DECORATION=o.ModelDecorationOptions.register({stickiness:1,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center}}),e._RANGE_HIGHLIGHT_DECORATION=o.ModelDecorationOptions.register({stickiness:1,className:\"rangeHighlight\",isWholeLine:!0}),e._FIND_SCOPE_DECORATION=o.ModelDecorationOptions.register({className:\"findScope\",isWholeLine:!0}),e}();t.FindDecorations=a})),define(n[168],i([0,1,15,2,80,13,3,22,144,571,379,380,18]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.CONTEXT_FIND_WIDGET_VISIBLE=new h.RawContextKey(\"findWidgetVisible\",!1),t.CONTEXT_FIND_INPUT_FOCUSED=new h.RawContextKey(\"findInputFocussed\",!1),t.CONTEXT_REPLACE_INPUT_FOCUSED=new h.RawContextKey(\"replaceInputFocussed\",!1),t.ToggleCaseSensitiveKeybinding={primary:545,mac:{primary:2593}},t.ToggleWholeWordKeybinding={primary:565,mac:{primary:2613}},t.ToggleRegexKeybinding={primary:560,mac:{primary:2608}},t.ToggleSearchScopeKeybinding={primary:554,mac:{primary:2602}},t.FIND_IDS={StartFindAction:\"actions.find\",StartFindWithSelection:\"actions.findWithSelection\",NextMatchFindAction:\"editor.action.nextMatchFindAction\",PreviousMatchFindAction:\"editor.action.previousMatchFindAction\",NextSelectionMatchFindAction:\"editor.action.nextSelectionMatchFindAction\",PreviousSelectionMatchFindAction:\"editor.action.previousSelectionMatchFindAction\",StartFindReplaceAction:\"editor.action.startFindReplaceAction\",CloseFindWidgetCommand:\"closeFindWidget\",ToggleCaseSensitiveCommand:\"toggleFindCaseSensitive\",\nToggleWholeWordCommand:\"toggleFindWholeWord\",ToggleRegexCommand:\"toggleFindRegex\",ToggleSearchScopeCommand:\"toggleFindInSelection\",TogglePreserveCaseCommand:\"togglePreserveCase\",ReplaceOneAction:\"editor.action.replaceOne\",ReplaceAllAction:\"editor.action.replaceAll\",SelectAllMatchesAction:\"editor.action.selectAllMatches\"},t.MATCHES_LIMIT=19999;var p=function(){function e(e,t){var o=this;this._toDispose=new i.DisposableStore,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new n.TimeoutTimer,this._decorations=new u.FindDecorations(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new n.RunOnceScheduler((function(){return o.research(!1)}),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((function(e){3!==e.reason&&5!==e.reason&&6!==e.reason||o._decorations.setStartPosition(o._editor.getPosition())}))),this._ignoreModelContentChanged=!1,\nthis._toDispose.add(this._editor.onDidChangeModelContent((function(e){o._ignoreModelContentChanged||(e.isFlush&&o._decorations.reset(),o._decorations.setStartPosition(o._editor.getPosition()),o._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((function(e){return o._onStateChanged(e)}))),this.research(!1,this._state.searchScope)}return e.prototype.dispose=function(){this._isDisposed=!0,i.dispose(this._startSearchingTimer),this._toDispose.dispose()},e.prototype._onStateChanged=function(e){var t=this;this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((function(){e.searchScope?t.research(e.moveCursor,t._state.searchScope):t.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))},\ne._getSearchRange=function(e,t){return t||e.getFullModelRange()},e.prototype.research=function(e,n){var i=null;null!==(i=void 0!==n?n:this._decorations.getFindScope())&&i.startLineNumber!==i.endLineNumber&&(i=1===i.endColumn?new s.Range(i.startLineNumber,1,i.endLineNumber-1,this._editor.getModel().getLineMaxColumn(i.endLineNumber-1)):new s.Range(i.startLineNumber,1,i.endLineNumber,this._editor.getModel().getLineMaxColumn(i.endLineNumber)));var o=this._findMatches(i,!1,t.MATCHES_LIMIT);this._decorations.set(o,i),this._state.changeMatchInfo(this._decorations.getCurrentMatchesPosition(this._editor.getSelection()),this._decorations.getCount(),void 0),e&&this._moveToNextMatch(this._decorations.getStartPosition())},e.prototype._hasMatches=function(){return this._state.matchesCount>0},e.prototype._cannotFind=function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1},e.prototype._setCurrentFindMatch=function(e){\nvar t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)},e.prototype._prevSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0),n=e.lineNumber,i=e.column,o=this._editor.getModel();return t||1===i?(1===n?n=o.getLineCount():n--,i=o.getLineMaxColumn(n)):i--,new r.Position(n,i)},e.prototype._moveToPrevMatch=function(n,i){if(void 0===i&&(i=!1),this._decorations.getCount()<t.MATCHES_LIMIT){var o=this._decorations.matchBeforePosition(n);return o&&o.isEmpty()&&o.getStartPosition().equals(n)&&(n=this._prevSearchPosition(n),o=this._decorations.matchBeforePosition(n)),void(o&&this._setCurrentFindMatch(o))}if(!this._cannotFind()){var s=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),s);a.getEndPosition().isBefore(n)&&(n=a.getEndPosition()),\nn.isBefore(a.getStartPosition())&&(n=a.getEndPosition());var l=n.lineNumber,u=n.column,d=this._editor.getModel(),c=new r.Position(l,u),h=d.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,!1);if(h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),h=d.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,!1)),h)return i||a.containsRange(h.range)?void this._setCurrentFindMatch(h.range):this._moveToPrevMatch(h.range.getStartPosition(),!0)}},e.prototype.moveToPrevMatch=function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())},e.prototype._nextSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0),n=e.lineNumber,i=e.column,o=this._editor.getModel()\n;return t||i===o.getLineMaxColumn(n)?(n===o.getLineCount()?n=1:n++,i=1):i++,new r.Position(n,i)},e.prototype._moveToNextMatch=function(e){if(this._decorations.getCount()<t.MATCHES_LIMIT){var n=this._decorations.matchAfterPosition(e);return n&&n.isEmpty()&&n.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),n=this._decorations.matchAfterPosition(e)),void(n&&this._setCurrentFindMatch(n))}var i=this._getNextMatch(e,!1,!0);i&&this._setCurrentFindMatch(i.range)},e.prototype._getNextMatch=function(t,n,i,o){if(void 0===o&&(o=!1),this._cannotFind())return null;var s=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),s);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var l=t.lineNumber,u=t.column,d=this._editor.getModel(),c=new r.Position(l,u),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n)\n;return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n)),h?o||a.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),n,i,!0):null},e.prototype.moveToNextMatch=function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())},e.prototype._getReplacePattern=function(){return this._state.isRegex?c.parseReplaceString(this._state.replaceString):c.ReplacePattern.fromStaticValue(this._state.replaceString)},e.prototype.replace=function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),!0,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches,this._state.preserveCase),s=new o.ReplaceCommand(t,i);this._executeEditorCommand(\"replace\",s),\nthis._decorations.setStartPosition(new r.Position(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}},e.prototype._findMatches=function(t,n,i){var o=e._getSearchRange(this._editor.getModel(),t);return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n,i)},e.prototype.replaceAll=function(){if(this._hasMatches()){var e=this._decorations.getFindScope();null===e&&this._state.matchesCount>=t.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}},e.prototype._largeReplaceAll=function(){var e=new l.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null).parseSearchRequest();if(e){var t=e.regex;if(!t.multiline){var n=\"mu\";t.ignoreCase&&(n+=\"i\"),t.global&&(n+=\"g\"),t=new RegExp(t.source,n)}\nvar i,r=this._editor.getModel(),s=r.getValue(1),a=r.getFullModelRange(),u=this._getReplacePattern(),d=this._state.preserveCase;i=u.hasReplacementPatterns||d?s.replace(t,(function(){return u.buildReplaceString(arguments,d)})):s.replace(t,u.buildReplaceString(null,d));var c=new o.ReplaceCommandThatPreservesSelection(a,i,this._editor.getSelection());this._executeEditorCommand(\"replaceAll\",c)}},e.prototype._regularReplaceAll=function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),i=[],o=0,r=n.length;o<r;o++)i[o]=t.buildReplaceString(n[o].matches,this._state.preserveCase);var s=new d.ReplaceAllCommand(this._editor.getSelection(),n.map((function(e){return e.range})),i);this._executeEditorCommand(\"replaceAll\",s)},e.prototype.selectAllMatches=function(){if(this._hasMatches()){for(var e=this._decorations.getFindScope(),t=this._findMatches(e,!1,1073741824).map((function(e){\nreturn new a.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})),n=this._editor.getSelection(),i=0,o=t.length;i<o;i++){if(t[i].equalsRange(n)){t=[n].concat(t.slice(0,i)).concat(t.slice(i+1));break}}this._editor.setSelections(t)}},e.prototype._executeEditorCommand=function(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}},e}();t.FindModelBoundToEditorModel=p})),define(n[572],i([0,1,6,204,47,15,168,20,14]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t,o,r,u){var d=e.call(this)||this;d._hideSoon=d._register(new s.RunOnceScheduler((function(){return d._hide()}),2e3)),d._isVisible=!1,d._editor=t,d._state=o,d._keybindingService=r,d._domNode=document.createElement(\"div\"),d._domNode.className=\"findOptionsWidget\",d._domNode.style.display=\"none\",d._domNode.style.top=\"10px\",\nd._domNode.setAttribute(\"role\",\"presentation\"),d._domNode.setAttribute(\"aria-hidden\",\"true\");var c=u.getTheme().getColor(l.inputActiveOptionBorder),h=u.getTheme().getColor(l.inputActiveOptionBackground);return d.caseSensitive=d._register(new i.CaseSensitiveCheckbox({appendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:d._state.matchCase,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.caseSensitive.domNode),d._register(d.caseSensitive.onChange((function(){d._state.change({matchCase:d.caseSensitive.checked},!1)}))),d.wholeWords=d._register(new i.WholeWordsCheckbox({appendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleWholeWordCommand),isChecked:d._state.wholeWord,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.wholeWords.domNode),d._register(d.wholeWords.onChange((function(){d._state.change({wholeWord:d.wholeWords.checked},!1)}))),d.regex=d._register(new i.RegexCheckbox({\nappendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleRegexCommand),isChecked:d._state.isRegex,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.regex.domNode),d._register(d.regex.onChange((function(){d._state.change({isRegex:d.regex.checked},!1)}))),d._editor.addOverlayWidget(d),d._register(d._state.onFindReplaceStateChange((function(e){var t=!1;e.isRegex&&(d.regex.checked=d._state.isRegex,t=!0),e.wholeWord&&(d.wholeWords.checked=d._state.wholeWord,t=!0),e.matchCase&&(d.caseSensitive.checked=d._state.matchCase,t=!0),!d._state.isRevealed&&t&&d._revealTemporarily()}))),d._register(n.addDisposableNonBubblingMouseOutListener(d._domNode,(function(e){return d._onMouseOut()}))),d._register(n.addDisposableListener(d._domNode,\"mouseover\",(function(e){return d._onMouseOver()}))),d._applyTheme(u.getTheme()),d._register(u.onThemeChange(d._applyTheme.bind(d))),d}return r(t,e),t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e)\n;return t?\" (\"+t.getLabel()+\")\":\"\"},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{preference:0}},t.prototype.highlightFindOptions=function(){this._revealTemporarily()},t.prototype._revealTemporarily=function(){this._show(),this._hideSoon.schedule()},t.prototype._onMouseOut=function(){this._hideSoon.schedule()},t.prototype._onMouseOver=function(){this._hideSoon.cancel()},t.prototype._show=function(){this._isVisible||(this._isVisible=!0,this._domNode.style.display=\"block\")},t.prototype._hide=function(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display=\"none\")},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(l.inputActiveOptionBorder),inputActiveOptionBackground:e.getColor(l.inputActiveOptionBackground)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)\n},t.ID=\"editor.contrib.findOptionsWidget\",t}(o.Widget);t.FindOptionsWidget=d,u.registerThemingParticipant((function(e,t){var n=e.getColor(l.editorWidgetBackground);n&&t.addRule(\".monaco-editor .findOptionsWidget { background-color: \"+n+\"; }\");var i=e.getColor(l.editorWidgetForeground);i&&t.addRule(\".monaco-editor .findOptionsWidget { color: \"+i+\"; }\");var o=e.getColor(l.widgetShadow);o&&t.addRule(\".monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px \"+o+\"; }\");var r=e.getColor(l.contrastBorder);r&&t.addRule(\".monaco-editor .findOptionsWidget { border: 2px solid \"+r+\"; }\")}))})),define(n[573],i([0,1,439,6,50,138,104,47,15,10,2,16,5,3,168,20,14,520,310]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var y=n.localize(0,null),C=n.localize(1,null),b=n.localize(2,null),S=n.localize(3,null),w=n.localize(4,null),E=n.localize(5,null),L=n.localize(6,null),D=n.localize(7,null),N=n.localize(8,null),x=n.localize(9,null),I=n.localize(10,null),M=n.localize(11,null,f.MATCHES_LIMIT),k=n.localize(12,null),T=n.localize(13,null),R=69,O=33,P=\"ctrlEnterReplaceAll.windows.donotask\",A=h.isMacintosh?256:2048,F=function(e){this.afterLineNumber=e,this.heightInPx=O,this.suppressMouseDown=!1,this.domNode=document.createElement(\"div\"),this.domNode.className=\"dock-find-viewzone\"};function W(e,t,n){var i=!!t.match(/\\n/);n&&i&&n.selectionStart>0&&e.stopPropagation()}function B(e,t,n){var i=!!t.match(/\\n/);n&&i&&n.selectionEnd<n.value.length&&e.stopPropagation()}t.FindWidgetViewZone=F;var V=function(e){function t(t,n,o,r,s,a,l,d,h){var p=e.call(this)||this;return p._cachedHeight=null,p._codeEditor=t,p._controller=n,p._state=o,p._contextViewProvider=r,p._keybindingService=s,p._contextKeyService=a,p._storageService=d,\np._notificationService=h,p._ctrlEnterReplaceAllWarningPrompted=!!d.getBoolean(P,0),p._isVisible=!1,p._isReplaceVisible=!1,p._ignoreChangeEvent=!1,p._updateHistoryDelayer=new u.Delayer(500),p._register(c.toDisposable((function(){return p._updateHistoryDelayer.cancel()}))),p._register(p._state.onFindReplaceStateChange((function(e){return p._onStateChanged(e)}))),p._buildDomNode(),p._updateButtons(),p._tryUpdateWidgetWidth(),p._findInput.inputBox.layout(),p._register(p._codeEditor.onDidChangeConfiguration((function(e){if(e.hasChanged(68)&&(p._codeEditor.getOption(68)&&p._state.change({isReplaceRevealed:!1},!1),p._updateButtons()),e.hasChanged(107)&&p._tryUpdateWidgetWidth(),e.hasChanged(2)&&p.updateAccessibilitySupport(),e.hasChanged(28)){var t=p._codeEditor.getOption(28).addExtraSpaceOnTop;t&&!p._viewZone&&(p._viewZone=new F(0),p._showViewZone()),!t&&p._viewZone&&p._removeViewZone()}}))),p.updateAccessibilitySupport(),p._register(p._codeEditor.onDidChangeCursorSelection((function(){\np._isVisible&&p._updateToggleSelectionFindButton()}))),p._register(p._codeEditor.onDidFocusEditorWidget((function(){if(p._isVisible){var e=p._controller.getGlobalBufferTerm();e&&e!==p._state.searchString&&(p._state.change({searchString:e},!0),p._findInput.select())}}))),p._findInputFocused=f.CONTEXT_FIND_INPUT_FOCUSED.bindTo(a),p._findFocusTracker=p._register(i.trackFocus(p._findInput.inputBox.inputElement)),p._register(p._findFocusTracker.onDidFocus((function(){p._findInputFocused.set(!0),p._updateSearchScope()}))),p._register(p._findFocusTracker.onDidBlur((function(){p._findInputFocused.set(!1)}))),p._replaceInputFocused=f.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(a),p._replaceFocusTracker=p._register(i.trackFocus(p._replaceInput.inputBox.inputElement)),p._register(p._replaceFocusTracker.onDidFocus((function(){p._replaceInputFocused.set(!0),p._updateSearchScope()}))),p._register(p._replaceFocusTracker.onDidBlur((function(){p._replaceInputFocused.set(!1)}))),p._codeEditor.addOverlayWidget(p),\np._codeEditor.getOption(28).addExtraSpaceOnTop&&(p._viewZone=new F(0)),p._applyTheme(l.getTheme()),p._register(l.onThemeChange(p._applyTheme.bind(p))),p._register(p._codeEditor.onDidChangeModel((function(){p._isVisible&&(p._viewZoneId=void 0)}))),p._register(p._codeEditor.onDidScrollChange((function(e){e.scrollTopChanged?p._layoutViewZone():setTimeout((function(){p._layoutViewZone()}),0)}))),p}return r(t,e),t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return this._isVisible?{preference:0}:null},t.prototype._onStateChanged=function(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),\ne.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(68)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=i.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;i.toggleClass(this._domNode,\"no-results\",t),this._updateMatchesCount(),\nthis._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory()},t.prototype._delayedUpdateHistory=function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))},t.prototype._updateHistory=function(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()},t.prototype._updateMatchesCount=function(){var e;if(this._matchesCount.style.minWidth=R+\"px\",this._state.matchesCount>=f.MATCHES_LIMIT?this._matchesCount.title=M:this._matchesCount.title=\"\",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=f.MATCHES_LIMIT&&(t+=\"+\");var n=String(this._state.matchesPosition);\"0\"===n&&(n=\"?\"),e=p.format(k,n,t)}else e=T;this._matchesCount.appendChild(document.createTextNode(e)),\no.alert(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString),!0),R=Math.max(R,this._matchesCount.clientWidth)},t.prototype._getAriaLabel=function(e,t,i){return e===T?\"\"===i?n.localize(14,null,e):n.localize(15,null,e,i):t?n.localize(16,null,e,i,t.startLineNumber+\":\"+t.startColumn):n.localize(17,null,e,i)},t.prototype._updateToggleSelectionFindButton=function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()},t.prototype._updateButtons=function(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t),\nthis._nextBtn.setEnabled(this._isVisible&&e&&t),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),i.toggleClass(this._domNode,\"replaceToggled\",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-right\",!this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-down\",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var n=!this._codeEditor.getOption(68);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)},t.prototype._reveal=function(){var e=this;if(!this._isVisible){this._isVisible=!0;var t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(28).autoFindInSelection){case\"always\":this._toggleSelectionFind.checked=!0;break;case\"never\":this._toggleSelectionFind.checked=!1;break;case\"multiline\":var n=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=n}this._tryUpdateWidgetWidth(),this._updateButtons(),\nsetTimeout((function(){i.addClass(e._domNode,\"visible\"),e._domNode.setAttribute(\"aria-hidden\",\"false\")}),0),setTimeout((function(){e._findInput.validate()}),200),this._codeEditor.layoutOverlayWidget(this);var o=!0;if(this._codeEditor.getOption(28).seedSearchStringFromSelection&&t){var r=this._codeEditor.getDomNode();if(r){var s=i.getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),l=s.left+(a?a.left:0),u=a?a.top:0;if(this._viewZone&&u<this._viewZone.heightInPx){t.endLineNumber>t.startLineNumber&&(o=!1);var d=i.getTopLeftOffset(this._domNode).left;l>d&&(o=!1);var c=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());s.left+(c?c.left:0)>d&&(o=!1)}}}this._showViewZone(o)}},t.prototype._hide=function(e){this._isVisible&&(this._isVisible=!1,this._updateButtons(),i.removeClass(this._domNode,\"visible\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),\nthis._removeViewZone())},t.prototype._layoutViewZone=function(){var e=this;if(this._codeEditor.getOption(28).addExtraSpaceOnTop){if(this._isVisible){var t=this._viewZone;void 0===this._viewZoneId&&t&&this._codeEditor.changeViewZones((function(n){t.heightInPx=e._getHeight(),e._viewZoneId=n.addZone(t),e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+t.heightInPx)}))}}else this._removeViewZone()},t.prototype._showViewZone=function(e){var t=this;if((void 0===e&&(e=!0),this._isVisible)&&this._codeEditor.getOption(28).addExtraSpaceOnTop){void 0===this._viewZone&&(this._viewZone=new F(0));var n=this._viewZone;this._codeEditor.changeViewZones((function(i){if(void 0!==t._viewZoneId){var o=t._getHeight();if(o===n.heightInPx)return;var r=o-n.heightInPx;return n.heightInPx=o,i.layoutZone(t._viewZoneId),void(e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+r))}r=t._getHeight();n.heightInPx=r,t._viewZoneId=i.addZone(n),e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+r)}))}},\nt.prototype._removeViewZone=function(){var e=this;this._codeEditor.changeViewZones((function(t){void 0!==e._viewZoneId&&(t.removeZone(e._viewZoneId),e._viewZoneId=void 0,e._viewZone&&(e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()-e._viewZone.heightInPx),e._viewZone=void 0))}))},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(m.inputActiveOptionBorder),inputActiveOptionBackground:e.getColor(m.inputActiveOptionBackground),inputBackground:e.getColor(m.inputBackground),inputForeground:e.getColor(m.inputForeground),inputBorder:e.getColor(m.inputBorder),inputValidationInfoBackground:e.getColor(m.inputValidationInfoBackground),inputValidationInfoForeground:e.getColor(m.inputValidationInfoForeground),inputValidationInfoBorder:e.getColor(m.inputValidationInfoBorder),inputValidationWarningBackground:e.getColor(m.inputValidationWarningBackground),inputValidationWarningForeground:e.getColor(m.inputValidationWarningForeground),\ninputValidationWarningBorder:e.getColor(m.inputValidationWarningBorder),inputValidationErrorBackground:e.getColor(m.inputValidationErrorBackground),inputValidationErrorForeground:e.getColor(m.inputValidationErrorForeground),inputValidationErrorBorder:e.getColor(m.inputValidationErrorBorder)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)},t.prototype._tryUpdateWidgetWidth=function(){if(this._isVisible&&i.isInDOM(this._domNode)){var e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)i.addClass(this._domNode,\"hiddenEditor\");else{i.hasClass(this._domNode,\"hiddenEditor\")&&i.removeClass(this._domNode,\"hiddenEditor\");var t=e.width,n=e.minimapWidth,o=!1,r=!1,s=!1;if(this._resized)if(i.getTotalWidth(this._domNode)>419)return this._domNode.style.maxWidth=t-28-n-15+\"px\",void(this._replaceInput.width=i.getTotalWidth(this._findInput.domNode));if(447+n>=t&&(r=!0),447+n-R>=t&&(s=!0),447+n-R>=t+50&&(o=!0),i.toggleClass(this._domNode,\"collapsed-find-widget\",o),\ni.toggleClass(this._domNode,\"narrow-find-widget\",s),i.toggleClass(this._domNode,\"reduced-find-widget\",r),s||o||(this._domNode.style.maxWidth=t-28-n-15+\"px\"),this._resized){this._findInput.inputBox.layout();var a=this._findInput.inputBox.element.clientWidth;a>0&&(this._replaceInput.width=a)}else this._isReplaceVisible&&(this._replaceInput.width=i.getTotalWidth(this._findInput.domNode))}}},t.prototype._getHeight=function(){var e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4},t.prototype._tryUpdateHeight=function(){var e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height=e+\"px\",!0)},t.prototype.focusFindInput=function(){this._findInput.select(),this._findInput.focus()},t.prototype.focusReplaceInput=function(){this._replaceInput.select(),this._replaceInput.focus()},t.prototype.highlightFindOptions=function(){this._findInput.highlightFindOptions()},\nt.prototype._updateSearchScope=function(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){var e=this._codeEditor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));var t=this._state.currentMatch;e.startLineNumber!==e.endLineNumber&&(g.Range.equalsRange(e,t)||this._state.change({searchScope:e},!0))}},t.prototype._onFindInputMouseDown=function(e){e.middleButton&&e.stopPropagation()},t.prototype._onFindInputKeyDown=function(e){return e.equals(3|A)?(this._findInput.inputBox.insertAtCursor(\"\\n\"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),\nvoid e.preventDefault()):e.equals(16)?W(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\")):e.equals(18)?B(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\")):void 0},t.prototype._onReplaceInputKeyDown=function(e){return e.equals(3|A)?(h.isWindows&&h.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(n.localize(18,null)),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(P,!0,0)),this._replaceInput.inputBox.insertAtCursor(\"\\n\"),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?W(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\")):e.equals(18)?B(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\")):void 0},\nt.prototype.getHorizontalSashTop=function(e){return 0},t.prototype.getHorizontalSashLeft=function(e){return 0},t.prototype.getHorizontalSashWidth=function(e){return 500},t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e);return t?\" (\"+t.getLabel()+\")\":\"\"},t.prototype._buildDomNode=function(){var e=this;this._findInput=this._register(new _.ContextScopedFindInput(null,this._contextViewProvider,{width:221,label:y,placeholder:C,appendCaseSensitiveLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleRegexCommand),validation:function(t){if(0===t.length||!e._findInput.getRegex())return null;try{return new RegExp(t),null}catch(e){return{content:e.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),\nthis._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((function(t){return e._onFindInputKeyDown(t)}))),this._register(this._findInput.inputBox.onDidChange((function(){e._ignoreChangeEvent||e._state.change({searchString:e._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((function(t){e._tryUpdateHeight()&&e._showViewZone()}))),\nh.isLinux&&this._register(this._findInput.onMouseDown((function(t){return e._onFindInputMouseDown(t)}))),this._matchesCount=document.createElement(\"div\"),this._matchesCount.className=\"matchesCount\",this._updateMatchesCount(),this._prevBtn=this._register(new z({label:b+this._keybindingLabelFor(f.FIND_IDS.PreviousMatchFindAction),className:\"codicon codicon-arrow-up\",onTrigger:function(){e._codeEditor.getAction(f.FIND_IDS.PreviousMatchFindAction).run().then(void 0,d.onUnexpectedError)}})),this._nextBtn=this._register(new z({label:S+this._keybindingLabelFor(f.FIND_IDS.NextMatchFindAction),className:\"codicon codicon-arrow-down\",onTrigger:function(){e._codeEditor.getAction(f.FIND_IDS.NextMatchFindAction).run().then(void 0,d.onUnexpectedError)}}));var t=document.createElement(\"div\");t.className=\"find-part\",t.appendChild(this._findInput.domNode);var n=document.createElement(\"div\");n.className=\"find-actions\",t.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),\nn.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new s.Checkbox({actionClassName:\"codicon codicon-selection\",title:w+this._keybindingLabelFor(f.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((function(){if(e._toggleSelectionFind.checked){if(e._codeEditor.hasModel()){var t=e._codeEditor.getSelection();1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()||e._state.change({searchScope:t},!0)}}else e._state.change({searchScope:null},!0)}))),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new z({label:E+this._keybindingLabelFor(f.FIND_IDS.CloseFindWidgetCommand),className:\"codicon codicon-close\",onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){\nt.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),n.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new _.ContextScopedReplaceInput(null,void 0,{label:L,placeholder:D,history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((function(t){return e._onReplaceInputKeyDown(t)}))),this._register(this._replaceInput.inputBox.onDidChange((function(){e._state.change({replaceString:e._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((function(t){e._isReplaceVisible&&e._tryUpdateHeight()&&e._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((function(){e._state.change({preserveCase:e._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((function(t){\nt.equals(2)&&(e._prevBtn.isEnabled()?e._prevBtn.focus():e._nextBtn.isEnabled()?e._nextBtn.focus():e._toggleSelectionFind.enabled?e._toggleSelectionFind.focus():e._closeBtn.isEnabled()&&e._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new z({label:N+this._keybindingLabelFor(f.FIND_IDS.ReplaceOneAction),className:\"codicon codicon-replace\",onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new z({label:x+this._keybindingLabelFor(f.FIND_IDS.ReplaceAllAction),className:\"codicon codicon-replace-all\",onTrigger:function(){e._controller.replaceAll()}}));var o=document.createElement(\"div\");o.className=\"replace-part\",o.appendChild(this._replaceInput.domNode);var r=document.createElement(\"div\");r.className=\"replace-actions\",o.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new z({label:I,\nclassName:\"codicon toggle left\",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode),e._replaceInput.inputBox.layout()),e._showViewZone()}})),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-down\",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-right\",!this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement(\"div\"),this._domNode.className=\"editor-widget find-widget\",this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._domNode.style.width=\"419px\",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(o),this._resizeSash=new a.Sash(this._domNode,this,{orientation:0}),this._resized=!1;var l=419;this._register(this._resizeSash.onDidStart((function(){l=i.getTotalWidth(e._domNode)}))),this._register(this._resizeSash.onDidChange((function(t){e._resized=!0\n;var n=l+t.startX-t.currentX;n<419||(n>(parseFloat(i.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width=n+\"px\",e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout(),e._tryUpdateHeight()))}))),this._register(this._resizeSash.onDidReset((function(){var t=i.getTotalWidth(e._domNode);if(!(t<419)){var n=419;if(!e._resized||419===t){var o=e._codeEditor.getLayoutInfo();n=o.width-28-o.minimapWidth-15,e._resized=!0}e._domNode.style.width=n+\"px\",e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout()}})))},t.prototype.updateAccessibilitySupport=function(){var e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)},t.ID=\"editor.contrib.findWidget\",t}(l.Widget);t.FindWidget=V;var z=function(e){function t(t){var n=e.call(this)||this;return n._opts=t,n._domNode=document.createElement(\"div\"),n._domNode.title=n._opts.label,n._domNode.tabIndex=0,\nn._domNode.className=\"button \"+n._opts.className,n._domNode.setAttribute(\"role\",\"button\"),n._domNode.setAttribute(\"aria-label\",n._opts.label),n.onclick(n._domNode,(function(e){n._opts.onTrigger(),e.preventDefault()})),n.onkeydown(n._domNode,(function(e){if(e.equals(10)||e.equals(3))return n._opts.onTrigger(),void e.preventDefault();n._opts.onKeyDown&&n._opts.onKeyDown(e)})),n}return r(t,e),Object.defineProperty(t.prototype,\"domNode\",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),t.prototype.isEnabled=function(){return this._domNode.tabIndex>=0},t.prototype.focus=function(){this._domNode.focus()},t.prototype.setEnabled=function(e){i.toggleClass(this._domNode,\"disabled\",!e),this._domNode.setAttribute(\"aria-disabled\",String(!e)),this._domNode.tabIndex=e?0:-1},t.prototype.setExpanded=function(e){this._domNode.setAttribute(\"aria-expanded\",String(!!e))},t.prototype.toggleClass=function(e,t){i.toggleClass(this._domNode,e,t)},t}(l.Widget);t.SimpleButton=z,\nv.registerThemingParticipant((function(e,t){var n=function(e,n){n&&t.addRule(\".monaco-editor \"+e+\" { background-color: \"+n+\"; }\")};n(\".findMatch\",e.getColor(m.editorFindMatchHighlight)),n(\".currentFindMatch\",e.getColor(m.editorFindMatch)),n(\".findScope\",e.getColor(m.editorFindRangeHighlight)),n(\".find-widget\",e.getColor(m.editorWidgetBackground));var i=e.getColor(m.widgetShadow);i&&t.addRule(\".monaco-editor .find-widget { box-shadow: 0 2px 8px \"+i+\"; }\");var o=e.getColor(m.editorFindMatchHighlightBorder);o&&t.addRule(\".monaco-editor .findMatch { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+o+\"; box-sizing: border-box; }\");var r=e.getColor(m.editorFindMatchBorder);r&&t.addRule(\".monaco-editor .currentFindMatch { border: 2px solid \"+r+\"; padding: 1px; box-sizing: border-box; }\");var s=e.getColor(m.editorFindRangeHighlightBorder);s&&t.addRule(\".monaco-editor .findScope { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+s+\"; }\");var a=e.getColor(m.contrastBorder)\n;a&&t.addRule(\".monaco-editor .find-widget { border: 1px solid \"+a+\"; }\");var l=e.getColor(m.editorWidgetForeground);l&&t.addRule(\".monaco-editor .find-widget { color: \"+l+\"; }\");var u=e.getColor(m.errorForeground);u&&t.addRule(\".monaco-editor .find-widget.no-results .matchesCount { color: \"+u+\"; }\");var d=e.getColor(m.editorWidgetResizeBorder);if(d)t.addRule(\".monaco-editor .find-widget .monaco-sash { background-color: \"+d+\"; width: 3px !important; margin-left: -4px;}\");else{var c=e.getColor(m.editorWidgetBorder);c&&t.addRule(\".monaco-editor .find-widget .monaco-sash { background-color: \"+c+\"; width: 3px !important; margin-left: -4px;}\")}var h=e.getColor(m.focusBorder);h&&t.addRule(\".monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: \"+h+\"; }\")}))})),define(n[232],i([0,1,438,15,2,5,12,23,168,572,378,573,162,18,66,11,34,74,14,35]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var w=524288;function E(e){\nif(!e.hasModel())return null;var t=e.getSelection();if(t.startLineNumber===t.endLineNumber)if(t.isEmpty()){var n=e.getModel().getWordAtPosition(t.getStartPosition());if(n)return n.word}else if(e.getModel().getValueLengthInRange(t)<w)return e.getModel().getValueInRange(t);return null}t.getSelectionSearchString=E;var L=function(e){function t(t,n,o,r){var s=e.call(this)||this;return s._editor=t,s._findWidgetVisible=u.CONTEXT_FIND_WIDGET_VISIBLE.bindTo(n),s._contextKeyService=n,s._storageService=o,s._clipboardService=r,s._updateHistoryDelayer=new i.Delayer(500),s._state=s._register(new c.FindReplaceState),s.loadQueryState(),s._register(s._state.onFindReplaceStateChange((function(e){return s._onStateChanged(e)}))),s._model=null,s._register(s._editor.onDidChangeModel((function(){var e=s._editor.getModel()&&s._state.isRevealed;s.disposeModel(),s._state.change({searchScope:null,matchCase:s._storageService.getBoolean(\"editor.matchCase\",1,!1),wholeWord:s._storageService.getBoolean(\"editor.wholeWord\",1,!1),\nisRegex:s._storageService.getBoolean(\"editor.isRegex\",1,!1),preserveCase:s._storageService.getBoolean(\"editor.preserveCase\",1,!1)},!1),e&&s._start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1})}))),s}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this.disposeModel(),e.prototype.dispose.call(this)},t.prototype.disposeModel=function(){this._model&&(this._model.dispose(),this._model=null)},t.prototype._onStateChanged=function(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)},t.prototype.saveQueryState=function(e){e.isRegex&&this._storageService.store(\"editor.isRegex\",this._state.actualIsRegex,1),e.wholeWord&&this._storageService.store(\"editor.wholeWord\",this._state.actualWholeWord,1),\ne.matchCase&&this._storageService.store(\"editor.matchCase\",this._state.actualMatchCase,1),e.preserveCase&&this._storageService.store(\"editor.preserveCase\",this._state.actualPreserveCase,1)},t.prototype.loadQueryState=function(){this._state.change({matchCase:this._storageService.getBoolean(\"editor.matchCase\",1,this._state.matchCase),wholeWord:this._storageService.getBoolean(\"editor.wholeWord\",1,this._state.wholeWord),isRegex:this._storageService.getBoolean(\"editor.isRegex\",1,this._state.isRegex),preserveCase:this._storageService.getBoolean(\"editor.preserveCase\",1,this._state.preserveCase)},!1)},t.prototype.isFindInputFocused=function(){return!!u.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)},t.prototype.getState=function(){return this._state},t.prototype.closeFindWidget=function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()},t.prototype.toggleCaseSensitive=function(){this._state.change({matchCase:!this._state.matchCase},!1),\nthis._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleWholeWords=function(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleRegex=function(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleSearchScope=function(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){var e=this._editor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()||this._state.change({searchScope:e},!0)}},t.prototype.setSearchString=function(e){this._state.isRegex&&(e=s.escapeRegExpCharacters(e)),this._state.change({searchString:e},!1)},t.prototype.highlightFindOptions=function(){},t.prototype._start=function(e){if(this.disposeModel(),this._editor.hasModel()){var t,n={isRevealed:!0}\n;if(e.seedSearchStringFromSelection)(t=E(this._editor))&&(this._state.isRegex?n.searchString=s.escapeRegExpCharacters(t):n.searchString=t);if(!n.searchString&&e.seedSearchStringFromGlobalClipboard)(t=this.getGlobalBufferTerm())&&(n.searchString=t);if(e.forceRevealReplace?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),e.updateSearchScope){var i=this._editor.getSelection();i.isEmpty()||(n.searchScope=i)}this._state.change(n,!1),this._model||(this._model=new u.FindModelBoundToEditorModel(this._editor,this._state))}},t.prototype.start=function(e){this._start(e)},t.prototype.moveToNextMatch=function(){return!!this._model&&(this._model.moveToNextMatch(),!0)},t.prototype.moveToPrevMatch=function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)},t.prototype.replace=function(){return!!this._model&&(this._model.replace(),!0)},t.prototype.replaceAll=function(){return!!this._model&&(this._model.replaceAll(),!0)},t.prototype.selectAllMatches=function(){\nreturn!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)},t.prototype.getGlobalBufferTerm=function(){return this._editor.getOption(28).globalFindClipboard&&this._clipboardService&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():\"\"},t.prototype.setGlobalBufferTerm=function(e){this._editor.getOption(28).globalFindClipboard&&this._clipboardService&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)},t.ID=\"editor.contrib.findController\",t=h([g(1,m.IContextKeyService),g(2,C.IStorageService),g(3,f.IClipboardService)],t)}(o.Disposable);t.CommonFindController=L;var D=function(e){function t(t,n,i,o,r,s,a,l){var u=e.call(this,t,i,a,l)||this;return u._contextViewService=n,u._keybindingService=o,u._themeService=r,u._notificationService=s,u._widget=null,u._findOptionsWidget=null,u}return r(t,e),t.prototype._start=function(t){this._widget||this._createFindWidget()\n;var n=this._editor.getSelection(),i=!1;switch(this._editor.getOption(28).autoFindInSelection){case\"always\":i=!0;break;case\"never\":i=!1;break;case\"multiline\":i=!!n&&n.startLineNumber!==n.endLineNumber}t.updateSearchScope=i,e.prototype._start.call(this,t),2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput()},t.prototype.highlightFindOptions=function(){this._widget||this._createFindWidget(),this._state.isRevealed?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()},t.prototype._createFindWidget=function(){this._widget=this._register(new p.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new d.FindOptionsWidget(this._editor,this._state,this._keybindingService,this._themeService))},\nt=h([g(1,v.IContextViewService),g(2,m.IContextKeyService),g(3,y.IKeybindingService),g(4,b.IThemeService),g(5,S.INotificationService),g(6,C.IStorageService),g(7,_.optional(f.IClipboardService))],t)}(L);t.FindController=D;var N=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindAction,label:n.localize(0,null),alias:\"Find\",precondition:void 0,kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:17,group:\"3_find\",title:n.localize(1,null),order:1}})||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(28).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1})},t}(a.EditorAction);t.StartFindAction=N;var x=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindWithSelection,label:n.localize(2,null),alias:\"Find With Selection\",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083\n},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:!0,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),n.setGlobalBufferTerm(n.getState().searchString))},t}(a.EditorAction);t.StartFindWithSelectionAction=x;var I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&!this._run(n)&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length&&t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),this._run(n))},t}(a.EditorAction);t.MatchFindAction=I;var M=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextMatchFindAction,label:n.localize(3,null),alias:\"Find Next\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:61,mac:{primary:2085,\nsecondary:[61]},weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(I);t.NextMatchFindAction=M;var k=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextMatchFindAction,label:n.localize(4,null),alias:\"Find Next\",precondition:void 0,kbOpts:{kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(I);t.NextMatchFindAction2=k;var T=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousMatchFindAction,label:n.localize(5,null),alias:\"Find Previous\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(I);t.PreviousMatchFindAction=T;var R=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousMatchFindAction,label:n.localize(6,null),alias:\"Find Previous\",\nprecondition:void 0,kbOpts:{kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(I);t.PreviousMatchFindAction2=R;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);if(n){var i=E(t);i&&n.setSearchString(i),this._run(n)||(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),this._run(n))}},t}(a.EditorAction);t.SelectionMatchFindAction=O;var P=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextSelectionMatchFindAction,label:n.localize(7,null),alias:\"Find Next Selection\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:2109,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t\n}(O);t.NextSelectionMatchFindAction=P;var A=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousSelectionMatchFindAction,label:n.localize(8,null),alias:\"Find Previous Selection\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:3133,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(O);t.PreviousSelectionMatchFindAction=A;var F=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindReplaceAction,label:n.localize(9,null),alias:\"Replace\",precondition:void 0,kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:17,group:\"3_find\",title:n.localize(10,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()&&!t.getOption(68)){var n=L.get(t),i=t.getSelection(),o=n.isFindInputFocused(),r=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getOption(28).seedSearchStringFromSelection&&!o,s=o||r?2:1;n&&n.start({forceRevealReplace:!0,seedSearchStringFromSelection:r,\nseedSearchStringFromGlobalClipboard:t.getOption(28).seedSearchStringFromSelection,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1})}},t}(a.EditorAction);t.StartFindReplaceAction=F,a.registerEditorContribution(L.ID,D),a.registerEditorAction(N),a.registerEditorAction(x),a.registerEditorAction(M),a.registerEditorAction(k),a.registerEditorAction(T),a.registerEditorAction(R),a.registerEditorAction(P),a.registerEditorAction(A),a.registerEditorAction(F);var W=a.EditorCommand.bindToContribution(L.get);a.registerEditorCommand(new W({id:u.FIND_IDS.CloseFindWidgetCommand,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:9,secondary:[1033]}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleCaseSensitiveKeybinding.primary,\nmac:u.ToggleCaseSensitiveKeybinding.mac,win:u.ToggleCaseSensitiveKeybinding.win,linux:u.ToggleCaseSensitiveKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleWholeWordKeybinding.primary,mac:u.ToggleWholeWordKeybinding.mac,win:u.ToggleWholeWordKeybinding.win,linux:u.ToggleWholeWordKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleRegexKeybinding.primary,mac:u.ToggleRegexKeybinding.mac,win:u.ToggleRegexKeybinding.win,linux:u.ToggleRegexKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,\nprimary:u.ToggleSearchScopeKeybinding.primary,mac:u.ToggleSearchScopeKeybinding.mac,win:u.ToggleSearchScopeKeybinding.win,linux:u.ToggleSearchScopeKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceOneAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:3094}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceOneAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceAllAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:2563}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceAllAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replaceAll()},kbOpts:{\nweight:105,kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),a.registerEditorCommand(new W({id:u.FIND_IDS.SelectAllMatchesAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:515}}))})),define(n[574],i([0,1,440,21,5,15,36,2,12,381,490,23,382,41,491,17,197,383,10,18,14,20,311]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=new S.RawContextKey(\"foldingEnabled\",!1),D=function(e){function t(t,n){var i=e.call(this)||this;i.contextKeyService=n,i.localToDispose=i._register(new l.DisposableStore),i.editor=t;var o=i.editor.getOptions();return i._isEnabled=o.get(30),i._useFoldingProviders=\"indentation\"!==o.get(31),i.foldingModel=null,i.hiddenRangeModel=null,i.rangeProvider=null,i.foldingRegionPromise=null,i.foldingStateMemento=null,i.foldingModelPromise=null,\ni.updateScheduler=null,i.cursorChangedScheduler=null,i.mouseDownInfo=null,i.foldingDecorationProvider=new c.FoldingDecorationProvider(t),i.foldingDecorationProvider.autoHideFoldingControls=\"mouseover\"===o.get(84),i.foldingDecorationProvider.showFoldingHighlights=o.get(32),i.foldingEnabled=L.bindTo(i.contextKeyService),i.foldingEnabled.set(i._isEnabled),i._register(i.editor.onDidChangeModel((function(){return i.onModelChanged()}))),i._register(i.editor.onDidChangeConfiguration((function(e){if(e.hasChanged(30)){var t=i.editor.getOptions();i._isEnabled=t.get(30),i.foldingEnabled.set(i._isEnabled),i.onModelChanged()}if(e.hasChanged(84)||e.hasChanged(32)){var n=i.editor.getOptions();i.foldingDecorationProvider.autoHideFoldingControls=\"mouseover\"===n.get(84),i.foldingDecorationProvider.showFoldingHighlights=n.get(32),i.onModelContentChanged()}if(e.hasChanged(31)){var o=i.editor.getOptions();i._useFoldingProviders=\"indentation\"!==o.get(31),i.onFoldingStrategyChanged()}}))),i.onModelChanged(),i}return r(t,e),\nt.get=function(e){return e.getContribution(t.ID)},t.prototype.saveViewState=function(){var e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){var t=this.foldingModel.isInitialized?this.foldingModel.getMemento():this.hiddenRangeModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n}}},t.prototype.restoreViewState=function(e){var t=this.editor.getModel();if(t&&this._isEnabled&&!t.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.collapsedRegions&&e.lineCount===t.getLineCount()){e.provider!==y.ID_SYNTAX_PROVIDER&&e.provider!==C.ID_INIT_PROVIDER||(this.foldingStateMemento=e);var n=e.collapsedRegions;if(this.hiddenRangeModel.applyMemento(n)){var i=this.getFoldingModel();i&&i.then((function(e){e&&e.applyMemento(n)})).then(void 0,b.onUnexpectedError)}}},t.prototype.onModelChanged=function(){var e=this;this.localToDispose.clear();var t=this.editor.getModel()\n;this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this.foldingModel=new d.FoldingModel(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new f.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((function(t){return e.onHiddenRangesChanges(t)}))),this.updateScheduler=new s.Delayer(200),this.cursorChangedScheduler=new s.RunOnceScheduler((function(){return e.revealCursor()}),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(_.FoldingRangeProviderRegistry.onDidChange((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelContent((function(){return e.onModelContentChanged()}))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((function(){\nreturn e.onCursorPositionChanged()}))),this.localToDispose.add(this.editor.onMouseDown((function(t){return e.onEditorMouseDown(t)}))),this.localToDispose.add(this.editor.onMouseUp((function(t){return e.onEditorMouseUp(t)}))),this.localToDispose.add({dispose:function(){e.foldingRegionPromise&&(e.foldingRegionPromise.cancel(),e.foldingRegionPromise=null),e.updateScheduler&&e.updateScheduler.cancel(),e.updateScheduler=null,e.foldingModel=null,e.foldingModelPromise=null,e.hiddenRangeModel=null,e.cursorChangedScheduler=null,e.foldingStateMemento=null,e.rangeProvider&&e.rangeProvider.dispose(),e.rangeProvider=null}}),this.onModelContentChanged())},t.prototype.onFoldingStrategyChanged=function(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.onModelContentChanged()},t.prototype.getRangeProvider=function(e){var t=this;if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new v.IndentRangeProvider(e),this._useFoldingProviders&&this.foldingModel){\nvar n=_.FoldingRangeProviderRegistry.ordered(this.foldingModel.textModel);if(0===n.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions)return this.rangeProvider=new C.InitializingRangeProvider(e,this.foldingStateMemento.collapsedRegions,(function(){t.foldingStateMemento=null,t.onFoldingStrategyChanged()}),3e4);n.length>0&&(this.rangeProvider=new y.SyntaxRangeProvider(e,n))}return this.foldingStateMemento=null,this.rangeProvider},t.prototype.getFoldingModel=function(){return this.foldingModelPromise},t.prototype.onModelContentChanged=function(){var e=this;this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((function(){var t=e.foldingModel;if(!t)return null;var n=e.foldingRegionPromise=s.createCancelablePromise((function(n){return e.getRangeProvider(t.textModel).compute(n)}));return n.then((function(i){if(i&&n===e.foldingRegionPromise){\nvar o=e.editor.getSelections(),r=o?o.map((function(e){return e.startLineNumber})):[];t.update(i,r)}return t}))})).then(void 0,(function(e){return b.onUnexpectedError(e),null})))},t.prototype.onHiddenRangesChanges=function(e){if(this.hiddenRangeModel&&e.length){var t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e)},t.prototype.onCursorPositionChanged=function(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()},t.prototype.revealCursor=function(){var e=this,t=this.getFoldingModel();t&&t.then((function(t){if(t){var n=e.editor.getSelections();if(n&&n.length>0){for(var i=[],o=function(n){var o=n.selectionStartLineNumber;e.hiddenRangeModel&&e.hiddenRangeModel.isHidden(o)&&i.push.apply(i,t.getAllRegionsAtLine(o,(function(e){return e.isCollapsed&&o>e.startLineNumber})))},r=0,s=n;r<s.length;r++){o(s[r])}i.length&&(t.toggleCollapseState(i),e.reveal(n[0].getPosition()))}}\n})).then(void 0,b.onUnexpectedError)},t.prototype.onEditorMouseDown=function(e){if(this.mouseDownInfo=null,this.hiddenRangeModel&&e.target&&e.target.range&&(e.event.leftButton||e.event.middleButton)){var t=e.target.range,n=!1;switch(e.target.type){case 4:var i=e.target.detail,o=e.target.element.offsetLeft;if(i.offsetX-o<5)return;n=!0;break;case 6:if(this.hiddenRangeModel.hasRanges()){var r=this.editor.getModel();if(r&&t.startColumn===r.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}},t.prototype.onEditorMouseUp=function(e){var t=this,n=this.getFoldingModel();if(n&&this.mouseDownInfo&&e.target){var i=this.mouseDownInfo.lineNumber,o=this.mouseDownInfo.iconClicked,r=e.target.range;if(r&&r.startLineNumber===i){if(o){if(4!==e.target.type)return}else{var s=this.editor.getModel();if(!s||r.startColumn!==s.getLineMaxColumn(i))return}n.then((function(n){if(n){var r=n.getRegionAtLine(i);if(r&&r.startLineNumber===i){var s=r.isCollapsed\n;if(o||s){var a=[],l=e.event.middleButton||e.event.shiftKey;if(l)for(var u=0,d=n.getRegionsInside(r);u<d.length;u++){var c=d[u];c.isCollapsed===s&&a.push(c)}!s&&l&&0!==a.length||a.push(r),n.toggleCollapseState(a),t.reveal({lineNumber:i,column:1})}}}})).then(void 0,b.onUnexpectedError)}}},t.prototype.reveal=function(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)},t.ID=\"editor.contrib.folding\",t=h([g(1,S.IContextKeyService)],t)}(l.Disposable);t.FoldingController=D;var N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this,o=D.get(t);if(o){var r=o.getFoldingModel();return r?(this.reportTelemetry(e,t),r.then((function(e){if(e){i.invoke(o,e,t,n);var r=t.getSelection();r&&o.reveal(r.getStartPosition())}}))):void 0}},t.prototype.getSelectedLines=function(e){var t=e.getSelections();return t?t.map((function(e){return e.startLineNumber})):[]},t.prototype.getLineNumbers=function(e,t){\nreturn e&&e.selectionLines?e.selectionLines.map((function(e){return e+1})):this.getSelectedLines(t)},t.prototype.run=function(e,t){},t}(u.EditorAction);function x(e){if(!i.isUndefined(e)){if(!i.isObject(e))return!1;var t=e;if(!i.isUndefined(t.levels)&&!i.isNumber(t.levels))return!1;if(!i.isUndefined(t.direction)&&!i.isString(t.direction))return!1;if(!(i.isUndefined(t.selectionLines)||i.isArray(t.selectionLines)&&t.selectionLines.every(i.isNumber)))return!1}return!0}var I=function(e){function t(){return e.call(this,{id:\"editor.unfold\",label:n.localize(0,null),alias:\"Unfold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:\"Unfold the content in the editor\",args:[{name:\"Unfold editor argument\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\\n\\t\\t\\t\\t\\t\\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\\n\\t\\t\\t\\t\\t\\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\\n\\t\\t\\t\\t\\t\\t\",constraint:x,schema:{type:\"object\",properties:{levels:{type:\"number\",default:1},direction:{type:\"string\",enum:[\"up\",\"down\"],default:\"down\"},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){var o=i&&i.levels||1,r=this.getLineNumbers(i,n);i&&\"up\"===i.direction?d.setCollapseStateLevelsUp(t,!1,o,r):d.setCollapseStateLevelsDown(t,!1,o,r)},t}(N),M=function(e){function t(){return e.call(this,{id:\"editor.unfoldRecursively\",label:n.localize(1,null),alias:\"Unfold Recursively\",precondition:L,kbOpts:{\nkbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2137),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){d.setCollapseStateLevelsDown(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))},t}(N),k=function(e){function t(){return e.call(this,{id:\"editor.fold\",label:n.localize(2,null),alias:\"Fold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:\"Fold the content in the editor\",args:[{name:\"Fold editor argument\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to fold.\\n\\t\\t\\t\\t\\t\\t\\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\\n\\t\\t\\t\\t\\t\\t\\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\\n\\t\\t\\t\\t\\t\\t\\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\\n\\t\\t\\t\\t\\t\\t\",constraint:x,schema:{type:\"object\",properties:{levels:{type:\"number\"},direction:{type:\"string\",enum:[\"up\",\"down\"]},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){var o=this.getLineNumbers(i,n),r=i&&i.levels,s=i&&i.direction;\"number\"!=typeof r&&\"string\"!=typeof s?d.setCollapseStateUp(t,!0,o):\"up\"===s?d.setCollapseStateLevelsUp(t,!0,r||1,o):d.setCollapseStateLevelsDown(t,!0,r||1,o)},t}(N),T=function(e){\nfunction t(){return e.call(this,{id:\"editor.toggleFold\",label:n.localize(3,null),alias:\"Toggle Fold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2090),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){var i=this.getSelectedLines(n);d.toggleCollapseState(t,1,i)},t}(N),R=function(e){function t(){return e.call(this,{id:\"editor.foldRecursively\",label:n.localize(4,null),alias:\"Fold Recursively\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2135),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){var i=this.getSelectedLines(n);d.setCollapseStateLevelsDown(t,!0,Number.MAX_VALUE,i)},t}(N),O=function(e){function t(){return e.call(this,{id:\"editor.foldAllBlockComments\",label:n.localize(5,null),alias:\"Fold All Block Comments\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2133),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){\nif(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Comment.value,!0);else{var i=n.getModel();if(!i)return;var r=m.LanguageConfigurationRegistry.getComments(i.getLanguageIdentifier().id);if(r&&r.blockCommentStartToken){var s=new RegExp(\"^\\\\s*\"+o.escapeRegExpCharacters(r.blockCommentStartToken));d.setCollapseStateForMatchingLines(t,s,!0)}}},t}(N),P=function(e){function t(){return e.call(this,{id:\"editor.foldAllMarkerRegions\",label:n.localize(6,null),alias:\"Fold All Regions\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2077),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){if(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!0);else{var i=n.getModel();if(!i)return;var o=m.LanguageConfigurationRegistry.getFoldingRules(i.getLanguageIdentifier().id);if(o&&o.markers&&o.markers.start){var r=new RegExp(o.markers.start);d.setCollapseStateForMatchingLines(t,r,!0)}}},t}(N),A=function(e){function t(){\nreturn e.call(this,{id:\"editor.unfoldAllMarkerRegions\",label:n.localize(7,null),alias:\"Unfold All Regions\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2078),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){if(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!1);else{var i=n.getModel();if(!i)return;var o=m.LanguageConfigurationRegistry.getFoldingRules(i.getLanguageIdentifier().id);if(o&&o.markers&&o.markers.start){var r=new RegExp(o.markers.start);d.setCollapseStateForMatchingLines(t,r,!1)}}},t}(N),F=function(e){function t(){return e.call(this,{id:\"editor.foldAll\",label:n.localize(8,null),alias:\"Fold All\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2069),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){d.setCollapseStateLevelsDown(t,!0)},t}(N),W=function(e){function t(){return e.call(this,{id:\"editor.unfoldAll\",label:n.localize(9,null),\nalias:\"Unfold All\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2088),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){d.setCollapseStateLevelsDown(t,!1)},t}(N),B=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.getFoldingLevel=function(){return parseInt(this.id.substr(t.ID_PREFIX.length))},t.prototype.invoke=function(e,t,n){d.setCollapseStateAtLevel(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))},t.ID_PREFIX=\"editor.foldLevel\",t.ID=function(e){return t.ID_PREFIX+e},t}(N);u.registerEditorContribution(D.ID,D),u.registerEditorAction(I),u.registerEditorAction(M),u.registerEditorAction(k),u.registerEditorAction(R),u.registerEditorAction(F),u.registerEditorAction(W),u.registerEditorAction(O),u.registerEditorAction(P),u.registerEditorAction(A),u.registerEditorAction(T);for(var V=1;V<=7;V++)u.registerInstantiatedEditorAction(new B({id:B.ID(V),label:n.localize(10,null,V),alias:\"Fold Level \"+V,\nprecondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2048|21+V),weight:100}}));t.foldBackgroundBackground=E.registerColor(\"editor.foldBackground\",{light:E.transparent(E.editorSelectionBackground,.3),dark:E.transparent(E.editorSelectionBackground,.3),hc:null},n.localize(11,null)),w.registerThemingParticipant((function(e,n){var i=e.getColor(t.foldBackgroundBackground);i&&n.addRule(\".monaco-editor .folded-background { background-color: \"+i+\"; }\")}))})),define(n[575],i([0,1,113,84,139,267,116,14,97,6,449,136,39,2,11,34,61,133]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this._resolverService=e}return e.prototype.hasChildren=function(e){return e instanceof n.ReferencesModel||e instanceof n.FileReferences&&!e.failure},e.prototype.getChildren=function(e){if(e instanceof n.ReferencesModel)return e.groups\n;if(e instanceof n.FileReferences)return e.resolve(this._resolverService).then((function(e){return e.children}));throw new Error(\"bad tree\")},e=h([g(0,i.ITextModelService)],e)}();t.DataSource=b;var S=function(){function e(){}return e.prototype.getHeight=function(){return 23},e.prototype.getTemplateId=function(e){return e instanceof n.FileReferences?D.id:x.id},e}();t.Delegate=S;var w=function(){function e(e){this._keybindingService=e}return e.prototype.getKeyboardNavigationLabel=function(e){if(e instanceof n.OneReference){var t=e.parent.preview,i=t&&t.preview(e.range);if(i)return i.value}return f.basename(e.uri)},e=h([g(0,_.IKeybindingService)],e)}();t.StringRepresentationProvider=w;var E=function(){function e(){}return e.prototype.getId=function(e){return e instanceof n.OneReference?e.id:e.uri},e}();t.IdentityProvider=E;var L=function(e){function t(t,n,i){var r=e.call(this)||this;r._uriLabel=n;var a=document.createElement(\"div\");return d.addClass(a,\"reference-file\"),r.file=r._register(new o.IconLabel(a,{\nsupportHighlights:!0})),r.badge=new s.CountBadge(d.append(a,d.$(\".count\"))),r._register(u.attachBadgeStyler(r.badge,i)),t.appendChild(a),r}return r(t,e),t.prototype.set=function(e,t){var n=f.dirname(e.uri);this.file.setLabel(p.getBaseLabel(e.uri),this._uriLabel.getUriLabel(n,{relative:!0}),{title:this._uriLabel.getUriLabel(e.uri),matches:t});var i=e.children.length;this.badge.setCount(i),e.failure?this.badge.setTitleFormat(c.localize(0,null)):i>1?this.badge.setTitleFormat(c.localize(1,null,i)):this.badge.setTitleFormat(c.localize(2,null,i))},t=h([g(1,a.ILabelService),g(2,l.IThemeService)],t)}(m.Disposable),D=function(){function e(t){this._instantiationService=t,this.templateId=e.id}return e.prototype.renderTemplate=function(e){return this._instantiationService.createInstance(L,e)},e.prototype.renderElement=function(e,t,n){n.set(e.element,y.createMatches(e.filterData))},e.prototype.disposeTemplate=function(e){e.dispose()},e.id=\"FileReferencesRenderer\",e=h([g(0,v.IInstantiationService)],e)}()\n;t.FileReferencesRenderer=D;var N=function(){function e(e){this.label=new C.HighlightedLabel(e,!1)}return e.prototype.set=function(e,t){var n=e.parent.preview,i=n&&n.preview(e.range);if(i){var o=i.value,r=i.highlight;t&&!y.FuzzyScore.isDefault(t)?(d.toggleClass(this.label.element,\"referenceMatch\",!1),this.label.set(o,y.createMatches(t))):(d.toggleClass(this.label.element,\"referenceMatch\",!0),this.label.set(o,[r]))}else this.label.set(f.basename(e.uri)+\":\"+(e.range.startLineNumber+1)+\":\"+(e.range.startColumn+1))},e}(),x=function(){function e(){this.templateId=e.id}return e.prototype.renderTemplate=function(e){return new N(e)},e.prototype.renderElement=function(e,t,n){n.set(e.element,e.filterData)},e.prototype.disposeTemplate=function(){},e.id=\"OneReferenceRenderer\",e}();t.OneReferenceRenderer=x;var I=function(){function e(){}return e.prototype.getAriaLabel=function(e){return e.ariaMessage},e}();t.AriaProvider=I})),\ndefine(n[576],i([0,1,455,3,22,23,12,62,384,67,14,44,30,15,10]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t){this.decorationIds=[],this.editor=e,this.editorWorkerService=t}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){},e.prototype.run=function(t,n){var r=this;this.currentRequest&&this.currentRequest.cancel();var s=this.editor.getSelection(),a=this.editor.getModel();if(a&&s){var l=s;if(l.startLineNumber===l.endLineNumber){var c=new d.EditorState(this.editor,5),h=a.uri;return this.editorWorkerService.canNavigateValueSet(h)?(this.currentRequest=m.createCancelablePromise((function(e){return r.editorWorkerService.navigateValueSet(h,l,n)})),this.currentRequest.then((function(n){if(n&&n.range&&n.value&&c.validate(r.editor)){var s=i.Range.lift(n.range),a=n.range,d=n.value.length-(l.endColumn-l.startColumn);a={startLineNumber:a.startLineNumber,startColumn:a.startColumn,\nendLineNumber:a.endLineNumber,endColumn:a.startColumn+n.value.length},d>1&&(l=new o.Selection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+d-1));var h=new u.InPlaceReplaceCommand(s,l,n.value);r.editor.pushUndoStop(),r.editor.executeCommand(t,h),r.editor.pushUndoStop(),r.decorationIds=r.editor.deltaDecorations(r.decorationIds,[{range:a,options:e.DECORATION}]),r.decorationRemover&&r.decorationRemover.cancel(),r.decorationRemover=m.timeout(350),r.decorationRemover.then((function(){return r.decorationIds=r.editor.deltaDecorations(r.decorationIds,[])})).catch(v.onUnexpectedError)}})).catch(v.onUnexpectedError)):Promise.resolve(void 0)}}},e.ID=\"editor.contrib.inPlaceReplaceController\",e.DECORATION=f.ModelDecorationOptions.register({className:\"valueSetReplacement\"}),e=h([g(1,l.IEditorWorkerService)],e)}(),y=function(e){function t(){return e.call(this,{id:\"editor.action.inPlaceReplace.up\",label:n.localize(0,null),alias:\"Replace with Previous Value\",precondition:s.EditorContextKeys.writable,kbOpts:{\nkbExpr:s.EditorContextKeys.editorTextFocus,primary:3154,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=_.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)},t}(a.EditorAction),C=function(e){function t(){return e.call(this,{id:\"editor.action.inPlaceReplace.down\",label:n.localize(1,null),alias:\"Replace with Next Value\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3156,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=_.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)},t}(a.EditorAction);a.registerEditorContribution(_.ID,_),a.registerEditorAction(y),a.registerEditorAction(C),c.registerThemingParticipant((function(e,t){var n=e.getColor(p.editorBracketMatchBorder);n&&t.addRule(\".monaco-editor.vs .valueSetReplacement { outline: solid 2px \"+n+\"; }\")}))})),define(n[577],i([0,1,457,15,26,10,75,2,16,12,30,17,199,495,35,51,20,14,316]),(function(e,t,n,i,o,s,a,u,p,f,m,v,_,y,C,b,S,w){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var E={general:m.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link\"}),active:m.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link-active\"})},L=function(){function e(e,t){this.link=e,this.decorationId=t}return e.decoration=function(t,n){return{range:t.range,options:e._getOptions(t,n,!1)}},e._getOptions=function(e,t,i){var o=l({},i?E.active:E.general);return o.hoverMessage=function(e,t){var i=e.url&&/^command:/i.test(e.url.toString()),o=e.tooltip?e.tooltip:i?n.localize(0,null):n.localize(1,null),r=t?p.isMacintosh?n.localize(2,null):n.localize(3,null):p.isMacintosh?n.localize(4,null):n.localize(5,null);return e.url?new a.MarkdownString(\"\",!0).appendMarkdown(\"[\"+o+\"](\"+e.url.toString()+\") (\"+r+\")\"):(new a.MarkdownString).appendText(o+\" (\"+r+\")\")}(e,t),o},e.prototype.activate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!0))\n},e.prototype.deactivate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!1))},e}(),D=function(){function e(e,t,n){var o=this;this.listenersToRemove=new u.DisposableStore,this.editor=e,this.openerService=t,this.notificationService=n;var r=new _.ClickLinkGesture(e);this.listenersToRemove.add(r),this.listenersToRemove.add(r.onMouseMoveOrRelevantKeyDown((function(e){var t=e[0],n=e[1];o._onEditorMouseMove(t,n)}))),this.listenersToRemove.add(r.onExecute((function(e){o.onEditorMouseUp(e)}))),this.listenersToRemove.add(r.onCancel((function(e){o.cleanUpActiveLinkDecoration()}))),this.enabled=e.getOption(52),this.listenersToRemove.add(e.onDidChangeConfiguration((function(t){var n=e.getOption(52);o.enabled!==n&&(o.enabled=n,o.updateDecorations([]),o.stop(),o.beginCompute())}))),this.listenersToRemove.add(e.onDidChangeModelContent((function(e){return o.onChange()}))),this.listenersToRemove.add(e.onDidChangeModel((function(e){return o.onModelChanged()}))),\nthis.listenersToRemove.add(e.onDidChangeModelLanguage((function(e){return o.onModelModeChanged()}))),this.listenersToRemove.add(v.LinkProviderRegistry.onDidChange((function(e){return o.onModelModeChanged()}))),this.timeout=new i.TimeoutTimer,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.onModelChanged=function(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()},e.prototype.onModelModeChanged=function(){this.stop(),this.beginCompute()},e.prototype.onChange=function(){var t=this;this.timeout.setIfNotSet((function(){return t.beginCompute()}),e.RECOMPUTE_TIME)},e.prototype.beginCompute=function(){return d(this,void 0,void 0,(function(){var e,t,n;return c(this,(function(o){switch(o.label){case 0:if(!this.editor.hasModel()||!this.enabled)return[2];if(e=this.editor.getModel(),!v.LinkProviderRegistry.has(e))return[2]\n;this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=i.createCancelablePromise((function(t){return y.getLinks(e,t)})),o.label=1;case 1:return o.trys.push([1,3,4,5]),t=this,[4,this.computePromise];case 2:return t.activeLinksList=o.sent(),this.updateDecorations(this.activeLinksList.links),[3,5];case 3:return n=o.sent(),s.onUnexpectedError(n),[3,5];case 4:return this.computePromise=null,[7];case 5:return[2]}}))}))},e.prototype.updateDecorations=function(e){for(var t=\"altKey\"===this.editor.getOption(59),n=[],i=Object.keys(this.currentOccurrences),o=0,r=i.length;o<r;o++){var s=i[o],a=this.currentOccurrences[s];n.push(a.decorationId)}var l=[];if(e)for(var u=0,d=e;u<d.length;u++){var c=d[u];l.push(L.decoration(c,t))}var h=this.editor.deltaDecorations(n,l);this.currentOccurrences={},this.activeLinkDecorationId=null;for(o=0,r=h.length;o<r;o++){a=new L(e[o],h[o]);this.currentOccurrences[a.decorationId]=a}},e.prototype._onEditorMouseMove=function(e,t){\nvar n=this,i=\"altKey\"===this.editor.getOption(59);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();var o=this.getLinkOccurrence(e.target.position);o&&this.editor.changeDecorations((function(e){o.activate(e,i),n.activeLinkDecorationId=o.decorationId}))}else this.cleanUpActiveLinkDecoration()},e.prototype.cleanUpActiveLinkDecoration=function(){var e=\"altKey\"===this.editor.getOption(59);if(this.activeLinkDecorationId){var t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((function(n){t.deactivate(n,e)})),this.activeLinkDecorationId=null}},e.prototype.onEditorMouseUp=function(e){if(this.isEnabled(e)){var t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}},e.prototype.openLinkOccurrence=function(e,t,i){var r=this;if(void 0===i&&(i=!1),this.openerService){var a=e.link;a.resolve(o.CancellationToken.None).then((function(e){return r.openerService.open(e,{openToSide:t,fromUserGesture:i})}),(function(e){\nvar t=e instanceof Error?e.message:e;\"invalid\"===t?r.notificationService.warn(n.localize(6,null,a.url.toString())):\"missing\"===t?r.notificationService.warn(n.localize(7,null)):s.onUnexpectedError(e)}))}},e.prototype.getLinkOccurrence=function(e){if(!this.editor.hasModel()||!e)return null;for(var t=0,n=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);t<n.length;t++){var i=n[t],o=this.currentOccurrences[i.id];if(o)return o}return null},e.prototype.isEnabled=function(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))},e.prototype.stop=function(){this.timeout.cancel(),this.activeLinksList&&this.activeLinksList.dispose(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)},e.prototype.dispose=function(){this.listenersToRemove.dispose(),this.stop(),this.timeout.dispose()},e.ID=\"editor.linkDetector\",e.RECOMPUTE_TIME=1e3,\ne=h([g(1,b.IOpenerService),g(2,C.INotificationService)],e)}(),N=function(e){function t(){return e.call(this,{id:\"editor.action.openLink\",label:n.localize(8,null),alias:\"Open Link\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);if(n&&t.hasModel())for(var i=0,o=t.getSelections();i<o.length;i++){var r=o[i],s=n.getLinkOccurrence(r.getEndPosition());s&&n.openLinkOccurrence(s,!1)}},t}(f.EditorAction);f.registerEditorContribution(D.ID,D),f.registerEditorAction(N),w.registerThemingParticipant((function(e,t){var n=e.getColor(S.editorActiveLinkForeground);n&&t.addRule(\".monaco-editor .detected-link-active { color: \"+n+\" !important; }\")}))})),define(n[122],i([0,1,458,15,2,50,3,12,18,14,20,317]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(n,i){var r=e.call(this)||this;return r.closeTimeout=3e3,r._messageWidget=r._register(new o.MutableDisposable),r._messageListeners=r._register(new o.DisposableStore),\nr._editor=n,r._visible=t.MESSAGE_VISIBLE.bindTo(i),r._register(r._editor.onDidAttemptReadOnlyEdit((function(){return r._onDidAttemptReadOnlyEdit()}))),r}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._visible.reset()},t.prototype.showMessage=function(e,t){var n,o=this;s.alert(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new m(this._editor,t,e),this._messageListeners.add(this._editor.onDidBlurEditorText((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidDispose((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeModel((function(){return o.closeMessage()}))),this._messageListeners.add(new i.TimeoutTimer((function(){return o.closeMessage()}),this.closeTimeout)),\nthis._messageListeners.add(this._editor.onMouseMove((function(e){e.target.position&&(n?n.containsPosition(e.target.position)||o.closeMessage():n=new a.Range(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))},t.prototype.closeMessage=function(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(m.fadeOut(this._messageWidget.value))},t.prototype._onDidAttemptReadOnlyEdit=function(){this._editor.hasModel()&&this.showMessage(n.localize(0,null),this._editor.getPosition())},t.ID=\"editor.contrib.messageController\",t.MESSAGE_VISIBLE=new u.RawContextKey(\"messageVisible\",!1),t=h([g(1,u.IContextKeyService)],t)}(o.Disposable);t.MessageController=p;var f=l.EditorCommand.bindToContribution(p.get);l.registerEditorCommand(new f({id:\"leaveEditorMessage\",precondition:p.MESSAGE_VISIBLE,handler:function(e){return e.closeMessage()},kbOpts:{weight:130,primary:9}}));var m=function(){function e(e,t,n){var i=t.lineNumber,o=t.column;this.allowEditorOverflow=!0,\nthis.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(i,i,0),this._position={lineNumber:i,column:o-1},this._domNode=document.createElement(\"div\"),this._domNode.classList.add(\"monaco-editor-overlaymessage\");var r=document.createElement(\"div\");r.classList.add(\"message\"),r.textContent=n,this._domNode.appendChild(r);var s=document.createElement(\"div\");s.classList.add(\"anchor\"),this._domNode.appendChild(s),this._editor.addContentWidget(this),this._domNode.classList.add(\"fadeIn\")}return e.fadeOut=function(e){var t,n=function(){e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener(\"animationend\",n)};return t=setTimeout(n,110),e.getDomNode().addEventListener(\"animationend\",n),e.getDomNode().classList.add(\"fadeOut\"),{dispose:n}},e.prototype.dispose=function(){this._editor.removeContentWidget(this)},e.prototype.getId=function(){return\"messageoverlay\"},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return{position:this._position,\npreference:[1,2]}},e}();l.registerEditorContribution(p.ID,p),d.registerThemingParticipant((function(e,t){var n=e.getColor(c.inputValidationInfoBorder);if(n){var i=e.type===d.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { border: \"+i+\"px solid \"+n+\"; }\")}var o=e.getColor(c.inputValidationInfoBackground);o&&t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { background-color: \"+o+\"; }\");var r=e.getColor(c.inputValidationInfoForeground);r&&t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { color: \"+r+\"; }\")}))})),define(n[578],i([0,1,19,10,128,2,122,11,527,567]),(function(e,t,n,i,o,s,a,l,u,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e){function t(t,n,i,r,a){var l=e.call(this)||this;return l._editor=t,l.delegate=r,l._activeCodeActions=l._register(new s.MutableDisposable),l._codeActionWidget=new o.Lazy((function(){\nreturn l._register(a.createInstance(u.CodeActionMenu,l._editor,{onSelectCodeAction:function(e){return d(l,void 0,void 0,(function(){return c(this,(function(t){return this.delegate.applyCodeAction(e,!0),[2]}))}))}}))})),l._lightBulbWidget=new o.Lazy((function(){var e=l._register(a.createInstance(p.LightBulbWidget,l._editor,n,i));return l._register(e.onClick((function(e){return l.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1})}))),e})),l}return r(t,e),t.prototype.update=function(e){var t,n,o;return d(this,void 0,void 0,(function(){var r,s,l,u,d;return c(this,(function(c){switch(c.label){case 0:if(1!==e.type)return null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide(),[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,e.actions];case 2:return r=c.sent(),[3,4];case 3:return s=c.sent(),i.onUnexpectedError(s),[2];case 4:if(this._lightBulbWidget.getValue().update(r,e.trigger,e.position),2!==e.trigger.type)return[3,11]\n;if(!(null===(n=e.trigger.filter)||void 0===n?void 0:n.include))return[3,10];if(!(l=this.tryGetValidActionToApply(e.trigger,r)))return[3,9];c.label=5;case 5:return c.trys.push([5,,7,8]),[4,this.delegate.applyCodeAction(l,!1)];case 6:return c.sent(),[3,8];case 7:return r.dispose(),[7];case 8:return[2];case 9:if(e.trigger.context&&(u=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,r))&&u.disabled)return a.MessageController.get(this._editor).showMessage(u.disabled,e.trigger.context.position),r.dispose(),[2];c.label=10;case 10:return d=!!(null===(o=e.trigger.filter)||void 0===o?void 0:o.include),!e.trigger.context||r.allActions.length&&(d||r.validActions.length)?(this._activeCodeActions.value=r,this._codeActionWidget.getValue().show(e.trigger,r,e.position,{includeDisabledActions:d}),[3,12]):(a.MessageController.get(this._editor).showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=r,r.dispose(),[2]);case 11:\nthis._codeActionWidget.getValue().isVisible?r.dispose():this._activeCodeActions.value=r,c.label=12;case 12:return[2]}}))}))},t.prototype.getInvalidActionThatWouldHaveBeenApplied=function(e,t){if(t.allActions.length)return\"first\"===e.autoApply&&0===t.validActions.length||\"ifSingle\"===e.autoApply&&1===t.allActions.length?n.find(t.allActions,(function(e){return e.disabled})):void 0},t.prototype.tryGetValidActionToApply=function(e,t){if(t.validActions.length)return\"first\"===e.autoApply&&t.validActions.length>0||\"ifSingle\"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0},t.prototype.showCodeActionList=function(e,t,n,i){return d(this,void 0,void 0,(function(){return c(this,(function(o){return this._codeActionWidget.getValue().show(e,t,n,i),[2]}))}))},t=h([g(4,l.IInstantiationService)],t)}(s.Disposable);t.CodeActionUi=f}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[233],i([0,1,128,2,5,12,156,23,119,578,122,432,29,18,11,72,35,73,96,528,111]),(function(e,t,n,i,o,s,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D){\"use strict\";function N(e){return y.ContextKeyExpr.regex(L.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp(\"(\\\\s|^)\"+o.escapeRegExpCharacters(e.value)+\"\\\\b\"))}Object.defineProperty(t,\"__esModule\",{value:!0});var x={type:\"object\",required:[\"kind\"],defaultSnippets:[{body:{kind:\"\"}}],properties:{kind:{type:\"string\",description:v.localize(0,null)},apply:{type:\"string\",description:v.localize(1,null),default:\"ifSingle\",enum:[\"first\",\"ifSingle\",\"never\"],enumDescriptions:[v.localize(2,null),v.localize(3,null),v.localize(4,null)]},preferred:{type:\"boolean\",default:!1,description:v.localize(5,null)}}},I=function(e){function t(t,i,o,r,s){var a=e.call(this)||this;return a._instantiationService=s,a._editor=t,a._model=a._register(new L.CodeActionModel(a._editor,i,o,r)),\na._register(a._model.onDidChangeState((function(e){return a.update(e)}))),a._ui=new n.Lazy((function(){return a._register(new f.CodeActionUi(t,T.Id,W.Id,{applyCodeAction:function(e,t){return d(a,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return n.trys.push([0,,2,3]),[4,this._applyCodeAction(e)];case 1:return n.sent(),[3,3];case 2:return t&&this._trigger({type:1,filter:{}}),[7];case 3:return[2]}}))}))}},a._instantiationService))})),a}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.update=function(e){this._ui.getValue().update(e)},t.prototype.showCodeActions=function(e,t,n){return this._ui.getValue().showCodeActionList(e,t,n,{includeDisabledActions:!1})},t.prototype.manualTriggerAtCurrentPosition=function(e,t,n){if(this._editor.hasModel()){m.MessageController.get(this._editor).closeMessage();var i=this._editor.getPosition();this._trigger({type:2,filter:t,autoApply:n,context:{notAvailableMessage:e,position:i}})}},t.prototype._trigger=function(e){\nreturn this._model.trigger(e)},t.prototype._applyCodeAction=function(e){return this._instantiationService.invokeFunction(M,e,this._editor)},t.ID=\"editor.contrib.quickFixController\",t=h([g(1,b.IMarkerService),g(2,y.IContextKeyService),g(3,w.IEditorProgressService),g(4,C.IInstantiationService)],t)}(i.Disposable);function M(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,u,d;return c(this,(function(c){switch(c.label){case 0:return i=e.get(l.IBulkEditService),o=e.get(_.ICommandService),r=e.get(E.ITelemetryService),s=e.get(S.INotificationService),r.publicLog2(\"codeAction.applyCodeAction\",{codeActionTitle:t.title,codeActionKind:t.kind,codeActionIsPreferred:!!t.isPreferred}),t.edit?[4,i.apply(t.edit,{editor:n})]:[3,2];case 1:c.sent(),c.label=2;case 2:if(!t.command)return[3,6];c.label=3;case 3:return c.trys.push([3,5,,6]),[4,o.executeCommand.apply(o,a([t.command.id],t.command.arguments||[]))];case 4:return c.sent(),[3,6];case 5:return u=c.sent(),\nd=\"string\"==typeof(h=u)?h:h instanceof Error&&\"string\"==typeof h.message?h.message:void 0,s.error(\"string\"==typeof d?d:v.localize(6,null)),[3,6];case 6:return[2]}var h}))}))}function k(e,t,n,i){if(e.hasModel()){var o=I.get(e);o&&o.manualTriggerAtCurrentPosition(t,n,i)}}t.QuickFixController=I,t.applyCodeAction=M;var T=function(e){function t(){return e.call(this,{id:t.Id,label:v.localize(7,null),alias:\"Quick Fix...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:2132,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(8,null),void 0,void 0)},t.Id=\"editor.action.quickFix\",t}(s.EditorAction);t.QuickFixAction=T;var R=function(e){function t(){return e.call(this,{id:p.codeActionCommandId,precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),description:{description:\"Trigger a code action\",args:[{name:\"args\",\nschema:x}]}})||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{kind:D.CodeActionKind.Empty,apply:\"ifSingle\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(9,null,n.kind):v.localize(10,null,n.kind):i.preferred?v.localize(11,null):v.localize(12,null),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorCommand);t.CodeActionCommand=R;var O=function(e){function t(){return e.call(this,{id:p.refactorCommandId,label:v.localize(13,null),alias:\"Refactor...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:\"1_modification\",order:2,when:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.Refactor))},description:{description:\"Refactor...\",args:[{name:\"args\",schema:x}]}})||this}return r(t,e),\nt.prototype.run=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{kind:D.CodeActionKind.Refactor,apply:\"never\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(14,null,n.kind):v.localize(15,null,n.kind):i.preferred?v.localize(16,null):v.localize(17,null),{include:D.CodeActionKind.Refactor.contains(i.kind)?i.kind:D.CodeActionKind.None,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorAction);t.RefactorAction=O;var P=function(e){function t(){return e.call(this,{id:p.sourceActionCommandId,label:v.localize(18,null),alias:\"Source Action...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:\"1_modification\",order:2.1,when:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.Source))},description:{description:\"Source Action...\",args:[{name:\"args\",schema:x}]}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{\nkind:D.CodeActionKind.Source,apply:\"never\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(19,null,n.kind):v.localize(20,null,n.kind):i.preferred?v.localize(21,null):v.localize(22,null),{include:D.CodeActionKind.Source.contains(i.kind)?i.kind:D.CodeActionKind.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorAction);t.SourceAction=P;var A=function(e){function t(){return e.call(this,{id:p.organizeImportsCommandId,label:v.localize(23,null),alias:\"Organize Imports\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1581,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(24,null),{include:D.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},\"ifSingle\")},t}(s.EditorAction);t.OrganizeImportsAction=A;var F=function(e){function t(){return e.call(this,{id:p.fixAllCommandId,\nlabel:v.localize(25,null),alias:\"Fix All\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.SourceFixAll))})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(26,null),{include:D.CodeActionKind.SourceFixAll,includeSourceActions:!0},\"ifSingle\")},t}(s.EditorAction);t.FixAllAction=F;var W=function(e){function t(){return e.call(this,{id:t.Id,label:v.localize(27,null),alias:\"Auto Fix...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.QuickFix)),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(28,null),{include:D.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},\"ifSingle\")},t.Id=\"editor.action.autoFix\",t}(s.EditorAction);t.AutoFixAction=W})),define(n[579],i([0,1,12,233]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nn.registerEditorContribution(i.QuickFixController.ID,i.QuickFixController),n.registerEditorAction(i.QuickFixAction),n.registerEditorAction(i.RefactorAction),n.registerEditorAction(i.SourceAction),n.registerEditorAction(i.OrganizeImportsAction),n.registerEditorAction(i.AutoFixAction),n.registerEditorAction(i.FixAllAction),n.registerEditorCommand(new i.CodeActionCommand)})),define(n[580],i([0,1,459,15,36,2,12,213,3,22,23,48,30,17,232,20,14,18]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorAbove\",label:n.localize(0,null),alias:\"Add Cursor Above\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(1,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){\nvar i=n&&!0===n.logicalLine,o=t._getCursors(),r=o.context;r.config.readOnly||(r.model.pushStackElement(),o.setStates(n.source,3,l.CursorMoveCommands.addCursorUp(r,o.getAll(),i)),o.reveal(n.source,!0,1,0))}},t}(a.EditorAction);t.InsertCursorAbove=y;var C=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorBelow\",label:n.localize(2,null),alias:\"Add Cursor Below\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(3,null),order:3}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,o=t._getCursors(),r=o.context;r.config.readOnly||(r.model.pushStackElement(),o.setStates(n.source,3,l.CursorMoveCommands.addCursorDown(r,o.getAll(),i)),o.reveal(n.source,!0,2,0))}},t}(a.EditorAction);t.InsertCursorBelow=C;var b=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorAtEndOfEachLineSelected\",\nlabel:n.localize(4,null),alias:\"Add Cursors to Line Ends\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(5,null),order:4}})||this}return r(t,e),t.prototype.getCursorsForSelection=function(e,t,n){if(!e.isEmpty()){for(var i=e.startLineNumber;i<e.endLineNumber;i++){var o=t.getLineMaxColumn(i);n.push(new d.Selection(i,o,i,o))}e.endColumn>1&&n.push(new d.Selection(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}},t.prototype.run=function(e,t){var n=this;if(t.hasModel()){var i=t.getModel(),o=t.getSelections(),r=[];o.forEach((function(e){return n.getCursorsForSelection(e,i,r)})),r.length>0&&t.setSelections(r)}},t}(a.EditorAction),S=function(e){function t(){return e.call(this,{id:\"editor.action.addCursorsToBottom\",label:n.localize(6,null),alias:\"Add Cursors To Bottom\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){\nfor(var n=t.getSelections(),i=t.getModel().getLineCount(),o=[],r=n[0].startLineNumber;r<=i;r++)o.push(new d.Selection(r,n[0].startColumn,r,n[0].endColumn));o.length>0&&t.setSelections(o)}},t}(a.EditorAction),w=function(e){function t(){return e.call(this,{id:\"editor.action.addCursorsToTop\",label:n.localize(7,null),alias:\"Add Cursors To Top\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=[],o=n[0].startLineNumber;o>=1;o--)i.push(new d.Selection(o,n[0].startColumn,o,n[0].endColumn));i.length>0&&t.setSelections(i)}},t}(a.EditorAction),E=function(e,t,n){this.selections=e,this.revealRange=t,this.revealScrollType=n};t.MultiCursorSessionResult=E;var L=function(){function e(e,t,n,i,o,r,s){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=n,this.searchText=i,this.wholeWord=o,this.matchCase=r,this.currentMatch=s}return e.create=function(t,n){if(!t.hasModel())return null;var i=n.getState()\n;if(!t.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new e(t,n,!1,i.searchString,i.wholeWord,i.matchCase,null);var o,r,s=!1,a=t.getSelections();1===a.length&&a[0].isEmpty()?(s=!0,o=!0,r=!0):(o=i.wholeWord,r=i.matchCase);var l,u=t.getSelection(),c=null;if(u.isEmpty()){var h=t.getModel().getWordAtPosition(u.getStartPosition());if(!h)return null;l=h.word,c=new d.Selection(u.startLineNumber,h.startColumn,u.startLineNumber,h.endColumn)}else l=t.getModel().getValueInRange(u).replace(/\\r\\n/g,\"\\n\");return new e(t,n,s,l,o,r,c)},e.prototype.addSelectionToNextFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.concat(e),e,0)},e.prototype.moveSelectionToNextFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getNextMatch=function(){\nif(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.addSelectionToPreviousFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.concat(e),e,0)},e.prototype.moveSelectionToPreviousFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getPreviousMatch=function(){if(!this._editor.hasModel())return null;if(this.currentMatch){\nvar e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.selectAll=function(){return this._editor.hasModel()?(this.findController.highlightFindOptions(),this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1,1073741824)):[]},e}();t.MultiCursorSession=L;var D=function(e){function t(t){var n=e.call(this)||this;return n._sessionDispose=n._register(new s.DisposableStore),n._editor=t,n._ignoreSelectionChange=!1,n._session=null,n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this._endSession(),e.prototype.dispose.call(this)},\nt.prototype._beginSessionIfNeeded=function(e){var t=this;if(!this._session){var n=L.create(this._editor,e);if(!n)return;this._session=n;var i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((function(e){t._ignoreSelectionChange||t._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((function(){t._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((function(e){(e.matchCase||e.wholeWord)&&t._endSession()})))}},t.prototype._endSession=function(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1)}this._session=null},t.prototype._setSelections=function(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),\nthis._ignoreSelectionChange=!1},t.prototype._expandEmptyToWord=function(e,t){if(!t.isEmpty())return t;var n=e.getWordAtPosition(t.getStartPosition());return n?new d.Selection(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t},t.prototype._applySessionResult=function(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))},t.prototype.getSession=function(e){return this._session},t.prototype.addSelectionToNextFindMatch=function(e){if(this._editor.hasModel()){if(!this._session){var t=this._editor.getSelections();if(t.length>1){var n=e.getState().matchCase;if(!A(this._editor.getModel(),t,n)){for(var i=this._editor.getModel(),o=[],r=0,s=t.length;r<s;r++)o[r]=this._expandEmptyToWord(i,t[r]);return void this._editor.setSelections(o)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}},t.prototype.addSelectionToPreviousFindMatch=function(e){\nthis._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())},t.prototype.moveSelectionToNextFindMatch=function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())},t.prototype.moveSelectionToPreviousFindMatch=function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())},t.prototype.selectAll=function(e){if(this._editor.hasModel()){var t=null,n=e.getState();if(n.isRevealed&&n.searchString.length>0&&n.isRegex)t=this._editor.getModel().findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(96):null,!1,1073741824);else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(n.searchScope){for(var i=n.searchScope,o=[],r=0;r<t.length;r++)t[r].range.endLineNumber<=i.endLineNumber&&t[r].range.startLineNumber>=i.startLineNumber&&o.push(t[r]);t=o}if(t.length>0){\nfor(var s=this._editor.getSelection(),a=(r=0,t.length);r<a;r++){var l=t[r];if(l.range.intersectRanges(s)){t[r]=t[0],t[0]=l;break}}this._setSelections(t.map((function(e){return new d.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})))}}},t.ID=\"editor.contrib.multiCursorController\",t}(s.Disposable);t.MultiCursorSelectionController=D;var N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);if(n){var i=f.CommonFindController.get(t);i&&this._run(n,i)}},t}(a.EditorAction);t.MultiCursorSelectionControllerAction=N;var x=function(e){function t(){return e.call(this,{id:\"editor.action.addSelectionToNextFindMatch\",label:n.localize(8,null),alias:\"Add Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(9,null),order:5}})||this}return r(t,e),t.prototype._run=function(e,t){\ne.addSelectionToNextFindMatch(t)},t}(N);t.AddSelectionToNextFindMatchAction=x;var I=function(e){function t(){return e.call(this,{id:\"editor.action.addSelectionToPreviousFindMatch\",label:n.localize(10,null),alias:\"Add Selection To Previous Find Match\",precondition:void 0,menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(11,null),order:6}})||this}return r(t,e),t.prototype._run=function(e,t){e.addSelectionToPreviousFindMatch(t)},t}(N);t.AddSelectionToPreviousFindMatchAction=I;var M=function(e){function t(){return e.call(this,{id:\"editor.action.moveSelectionToNextFindMatch\",label:n.localize(12,null),alias:\"Move Last Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:o.KeyChord(2089,2082),weight:100}})||this}return r(t,e),t.prototype._run=function(e,t){e.moveSelectionToNextFindMatch(t)},t}(N);t.MoveSelectionToNextFindMatchAction=M;var k=function(e){function t(){return e.call(this,{id:\"editor.action.moveSelectionToPreviousFindMatch\",label:n.localize(13,null),\nalias:\"Move Last Selection To Previous Find Match\",precondition:void 0})||this}return r(t,e),t.prototype._run=function(e,t){e.moveSelectionToPreviousFindMatch(t)},t}(N);t.MoveSelectionToPreviousFindMatchAction=k;var T=function(e){function t(){return e.call(this,{id:\"editor.action.selectHighlights\",label:n.localize(14,null),alias:\"Select All Occurrences of Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(15,null),order:7}})||this}return r(t,e),t.prototype._run=function(e,t){e.selectAll(t)},t}(N);t.SelectHighlightsAction=T;var R=function(e){function t(){return e.call(this,{id:\"editor.action.changeAll\",label:n.localize(16,null),alias:\"Change All Occurrences\",precondition:_.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.2}})||this}return r(t,e),\nt.prototype._run=function(e,t){e.selectAll(t)},t}(N);t.CompatChangeAll=R;var O=function(){function e(e,t,n){this.searchText=e,this.matchCase=t,this.wordSeparators=n}return e.softEquals=function(e,t){return!e&&!t||!(!e||!t)&&(e.searchText===t.searchText&&e.matchCase===t.matchCase&&e.wordSeparators===t.wordSeparators)},e}(),P=function(e){function t(t){var n=e.call(this)||this;return n.editor=t,n._isEnabled=t.getOption(82),n.decorations=[],n.updateSoon=n._register(new i.RunOnceScheduler((function(){return n._update()}),300)),n.state=null,n._register(t.onDidChangeConfiguration((function(e){n._isEnabled=t.getOption(82)}))),n._register(t.onDidChangeCursorSelection((function(e){n._isEnabled&&(e.selection.isEmpty()?3===e.reason?(n.state&&n._setState(null),n.updateSoon.schedule()):n._setState(null):n._update())}))),n._register(t.onDidChangeModel((function(e){n._setState(null)}))),n._register(f.CommonFindController.get(t).getState().onFindReplaceStateChange((function(e){n._update()}))),n}return r(t,e),\nt.prototype._update=function(){this._setState(t._createState(this._isEnabled,this.editor))},t._createState=function(e,t){if(!e)return null;if(!t.hasModel())return null;var n=t.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;var i=D.get(t);if(!i)return null;var o=f.CommonFindController.get(t);if(!o)return null;var r=i.getSession(o);if(!r){var s=t.getSelections();if(s.length>1){var a=o.getState().matchCase;if(!A(t.getModel(),s,a))return null}r=L.create(t,o)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \\t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;var l=o.getState(),u=l.matchCase;if(l.isRevealed){var d=l.searchString;u||(d=d.toLowerCase());var c=r.searchText;if(u||(c=c.toLowerCase()),d===c&&r.matchCase===l.matchCase&&r.wholeWord===l.wholeWord&&!l.isRegex)return null}return new O(r.searchText,r.matchCase,r.wholeWord?t.getOption(96):null)},t.prototype._setState=function(e){if(O.softEquals(this.state,e))this.state=e;else if(this.state=e,this.state){\nif(this.editor.hasModel()){var n=this.editor.getModel();if(!n.isTooLargeForTokenization()){var i=g.DocumentHighlightProviderRegistry.has(n),o=n.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map((function(e){return e.range}));o.sort(u.Range.compareRangesUsingStarts);var r=this.editor.getSelections();r.sort(u.Range.compareRangesUsingStarts);for(var s=[],a=0,l=0,d=o.length,c=r.length;a<d;){var h=o[a];if(l>=c)s.push(h),a++;else{var p=u.Range.compareRangesUsingStarts(h,r[l]);p<0?(!r[l].isEmpty()&&u.Range.areIntersecting(h,r[l])||s.push(h),a++):p>0?l++:(a++,l++)}}var f=s.map((function(e){return{range:e,options:i?t._SELECTION_HIGHLIGHT:t._SELECTION_HIGHLIGHT_OVERVIEW}}));this.decorations=this.editor.deltaDecorations(this.decorations,f)}}}else this.decorations=this.editor.deltaDecorations(this.decorations,[])},t.prototype.dispose=function(){this._setState(null),e.prototype.dispose.call(this)},t.ID=\"editor.contrib.selectionHighlighter\",\nt._SELECTION_HIGHLIGHT_OVERVIEW=p.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\",overviewRuler:{color:v.themeColorFromId(m.overviewRulerSelectionHighlightForeground),position:h.OverviewRulerLane.Center}}),t._SELECTION_HIGHLIGHT=p.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\"}),t}(s.Disposable);function A(e,t,n){for(var i=F(e,t[0],!n),o=1,r=t.length;o<r;o++){var s=t[o];if(s.isEmpty())return!1;if(i!==F(e,s,!n))return!1}return!0}function F(e,t,n){var i=e.getValueInRange(t);return n?i.toLowerCase():i}t.SelectionHighlighter=P,a.registerEditorContribution(D.ID,D),a.registerEditorContribution(P.ID,P),a.registerEditorAction(y),a.registerEditorAction(C),a.registerEditorAction(b),a.registerEditorAction(x),a.registerEditorAction(I),a.registerEditorAction(M),a.registerEditorAction(k),a.registerEditorAction(T),a.registerEditorAction(R),a.registerEditorAction(S),a.registerEditorAction(w)})),\ndefine(n[581],i([0,1,6,52,50,53,4,2,71,117,165,461,18,51,20,14,540,5,318]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=n.$,S=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.editor=t,r.renderDisposeables=r._register(new l.DisposableStore),r.visible=!1,r.announcedLabel=null,r.allowEditorOverflow=!0,r.markdownRenderer=r._register(new d.MarkdownRenderer(t,o,i)),r.model=r._register(new y.ParameterHintsModel(t)),r.keyVisible=c.Context.Visible.bindTo(n),r.keyMultipleSignatures=c.Context.MultipleSignatures.bindTo(n),r._register(r.model.onChangedHints((function(e){e?(r.show(),r.render(e)):r.hide()}))),r}return r(t,e),t.prototype.createParamaterHintDOMNodes=function(){var e=this,t=b(\".editor-widget.parameter-hints-widget\"),o=n.append(t,b(\".wrapper\"));o.tabIndex=-1\n;var r=n.append(o,b(\".controls\")),l=n.append(r,b(\".button.codicon.codicon-chevron-up\")),u=n.append(r,b(\".overloads\")),d=n.append(r,b(\".button.codicon.codicon-chevron-down\")),c=i.stop(i.domEvent(l,\"click\"));this._register(c(this.previous,this));var h=i.stop(i.domEvent(d,\"click\"));this._register(h(this.next,this));var p=b(\".body\"),g=new s.DomScrollableElement(p,{});this._register(g),o.appendChild(g.getDomNode());var f=n.append(p,b(\".signature\")),m=n.append(p,b(\".docs\"));t.style.userSelect=\"text\",this.domNodes={element:t,signature:f,overloads:u,docs:m,scrollbar:g},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((function(t){e.visible&&e.editor.layoutContentWidget(e)})));var v=function(){if(e.domNodes){var t=e.editor.getOption(34);e.domNodes.element.style.fontSize=t.fontSize+\"px\"}};v(),this._register(a.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)})).on(v,null)),\nthis._register(this.editor.onDidLayoutChange((function(t){return e.updateMaxHeight()}))),this.updateMaxHeight()},t.prototype.show=function(){var e=this;this.visible||(this.domNodes||this.createParamaterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((function(){e.domNodes&&n.addClass(e.domNodes.element,\"visible\")}),100),this.editor.layoutContentWidget(this))},t.prototype.hide=function(){this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes&&n.removeClass(this.domNodes.element,\"visible\"),this.editor.layoutContentWidget(this))},t.prototype.getPosition=function(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null},t.prototype.render=function(e){if(this.domNodes){var t=e.signatures.length>1;n.toggleClass(this.domNodes.element,\"multiple\",t),this.keyMultipleSignatures.set(t),this.domNodes.signature.innerHTML=\"\",this.domNodes.docs.innerHTML=\"\";var i=e.signatures[e.activeSignature];if(i){\nvar r=n.append(this.domNodes.signature,b(\".code\")),s=i.parameters.length>0,a=this.editor.getOption(34);if(r.style.fontSize=a.fontSize+\"px\",r.style.fontFamily=a.fontFamily,s)this.renderParameters(r,i,e.activeParameter);else n.append(r,b(\"span\")).textContent=i.label;this.renderDisposeables.clear();var l=i.parameters[e.activeParameter];if(l&&l.documentation){var u=b(\"span.documentation\");if(\"string\"==typeof l.documentation)u.textContent=l.documentation;else{var d=this.markdownRenderer.render(l.documentation);n.addClass(d.element,\"markdown-docs\"),this.renderDisposeables.add(d),u.appendChild(d.element)}n.append(this.domNodes.docs,b(\"p\",{},u))}if(void 0===i.documentation);else if(\"string\"==typeof i.documentation)n.append(this.domNodes.docs,b(\"p\",{},i.documentation));else{d=this.markdownRenderer.render(i.documentation);n.addClass(d.element,\"markdown-docs\"),this.renderDisposeables.add(d),n.append(this.domNodes.docs,d.element)}var c=this.hasDocs(i,l);if(n.toggleClass(this.domNodes.signature,\"has-docs\",c),\nn.toggleClass(this.domNodes.docs,\"empty\",!c),this.domNodes.overloads.textContent=C.pad(e.activeSignature+1,e.signatures.length.toString().length)+\"/\"+e.signatures.length,l){var h=this.getParameterLabel(i,e.activeParameter);this.announcedLabel!==h&&(o.alert(p.localize(0,null,h)),this.announcedLabel=h)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}}},t.prototype.hasDocs=function(e,t){return!!(t&&\"string\"==typeof t.documentation&&t.documentation.length>0)||(!!(t&&\"object\"==typeof t.documentation&&t.documentation.value.length>0)||(\"string\"==typeof e.documentation&&e.documentation.length>0||\"object\"==typeof e.documentation&&e.documentation.value.length>0))},t.prototype.renderParameters=function(e,t,i){var o=this.getParameterLabelOffsets(t,i),r=o[0],s=o[1],a=document.createElement(\"span\");a.textContent=t.label.substring(0,r);var l=document.createElement(\"span\");l.textContent=t.label.substring(r,s),l.className=\"parameter active\";var u=document.createElement(\"span\")\n;u.textContent=t.label.substring(s),n.append(e,a,l,u)},t.prototype.getParameterLabel=function(e,t){var n=e.parameters[t];return\"string\"==typeof n.label?n.label:e.label.substring(n.label[0],n.label[1])},t.prototype.getParameterLabelOffsets=function(e,t){var n=e.parameters[t];if(n){if(Array.isArray(n.label))return n.label;var i=e.label.lastIndexOf(n.label);return i>=0?[i,i+n.label.length]:[0,0]}return[0,0]},t.prototype.next=function(){this.editor.focus(),this.model.next()},t.prototype.previous=function(){this.editor.focus(),this.model.previous()},t.prototype.cancel=function(){this.model.cancel()},t.prototype.getDomNode=function(){return this.domNodes||this.createParamaterHintDOMNodes(),this.domNodes.element},t.prototype.getId=function(){return t.ID},t.prototype.trigger=function(e){this.model.trigger(e,0)},t.prototype.updateMaxHeight=function(){if(this.domNodes){var e=Math.max(this.editor.getLayoutInfo().height/4,250)+\"px\";this.domNodes.element.style.maxHeight=e\n;var t=this.domNodes.element.getElementsByClassName(\"wrapper\");t.length&&(t[0].style.maxHeight=e)}},t.ID=\"editor.widget.parameterHintsWidget\",t=h([g(1,f.IContextKeyService),g(2,m.IOpenerService),g(3,u.IModeService)],t)}(l.Disposable);t.ParameterHintsWidget=S,_.registerThemingParticipant((function(e,t){var n=e.getColor(v.editorHoverBorder);if(n){var i=e.type===_.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .parameter-hints-widget { border: \"+i+\"px solid \"+n+\"; }\"),t.addRule(\".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid \"+n.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid \"+n.transparent(.5)+\"; }\")}var o=e.getColor(v.editorHoverBackground);o&&t.addRule(\".monaco-editor .parameter-hints-widget { background-color: \"+o+\"; }\");var r=e.getColor(v.textLinkForeground);r&&t.addRule(\".monaco-editor .parameter-hints-widget a { color: \"+r+\"; }\");var s=e.getColor(v.editorHoverForeground)\n;s&&t.addRule(\".monaco-editor .parameter-hints-widget { color: \"+s+\"; }\");var a=e.getColor(v.textCodeBlockBackground);a&&t.addRule(\".monaco-editor .parameter-hints-widget code { background-color: \"+a+\"; }\")}))})),define(n[582],i([0,1,460,2,11,23,18,12,581,165,17]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n){var i=e.call(this)||this;return i.editor=t,i.widget=i._register(n.createInstance(u.ParameterHintsWidget,i.editor)),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.cancel=function(){this.widget.cancel()},t.prototype.previous=function(){this.widget.previous()},t.prototype.next=function(){this.widget.next()},t.prototype.trigger=function(e){this.widget.trigger(e)},t.ID=\"editor.controller.parameterHints\",t=h([g(1,o.IInstantiationService)],t)}(i.Disposable),f=function(e){function t(){return e.call(this,{id:\"editor.action.triggerParameterHints\",label:n.localize(0,null),\nalias:\"Trigger Parameter Hints\",precondition:s.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=p.get(t);n&&n.trigger({triggerKind:c.SignatureHelpTriggerKind.Invoke})},t}(l.EditorAction);t.TriggerParameterHintsAction=f,l.registerEditorContribution(p.ID,p),l.registerEditorAction(f);var m=l.EditorCommand.bindToContribution(p.get);l.registerEditorCommand(new m({id:\"closeParameterHints\",precondition:d.Context.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:9,secondary:[1033]}})),l.registerEditorCommand(new m({id:\"showPrevParameterHint\",precondition:a.ContextKeyExpr.and(d.Context.Visible,d.Context.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),l.registerEditorCommand(new m({\nid:\"showNextParameterHint\",precondition:a.ContextKeyExpr.and(d.Context.Visible,d.Context.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))})),define(n[123],i([0,1,6,70,55,27,4,31,5,32,167,493,462,18,11,83,12,20,319]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";var b;Object.defineProperty(t,\"__esModule\",{value:!0}),t.IPeekViewService=v.createDecorator(\"IPeekViewService\"),_.registerSingleton(t.IPeekViewService,function(){function e(){this._widgets=new Map}return e.prototype.addExclusiveWidget=function(e,t){var n=this,i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((function(){var i=n._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),n._widgets.delete(e))}))})},e}()),function(e){e.inPeekEditor=new m.RawContextKey(\"inReferenceSearchEditor\",!0),e.notInPeekEditor=e.inPeekEditor.toNegated()\n}(b=t.PeekContext||(t.PeekContext={}));var S=function(){function e(e,t){e instanceof c.EmbeddedCodeEditorWidget&&b.inPeekEditor.bindTo(t)}return e.prototype.dispose=function(){},e.ID=\"editor.contrib.referenceController\",e=h([g(1,m.IContextKeyService)],e)}();y.registerEditorContribution(S.ID,S),t.getOuterEditor=function(e){var t=e.get(d.ICodeEditorService).getFocusedCodeEditor();return t instanceof c.EmbeddedCodeEditorWidget?t.getParentEditor():t};var w={headerBackgroundColor:s.Color.white,primaryHeadingColor:s.Color.fromHex(\"#333333\"),secondaryHeadingColor:s.Color.fromHex(\"#6c6c6cb3\")},E=function(e){function t(t,n){void 0===n&&(n={});var i=e.call(this,t,n)||this;return i._onDidClose=new a.Emitter,i.onDidClose=i._onDidClose.event,l.mixin(i.options,w,!1),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._onDidClose.fire(this)},t.prototype.style=function(t){var n=this.options;t.headerBackgroundColor&&(n.headerBackgroundColor=t.headerBackgroundColor),\nt.primaryHeadingColor&&(n.primaryHeadingColor=t.primaryHeadingColor),t.secondaryHeadingColor&&(n.secondaryHeadingColor=t.secondaryHeadingColor),e.prototype.style.call(this,t)},t.prototype._applyStyles=function(){e.prototype._applyStyles.call(this);var t=this.options;this._headElement&&t.headerBackgroundColor&&(this._headElement.style.backgroundColor=t.headerBackgroundColor.toString()),this._primaryHeading&&t.primaryHeadingColor&&(this._primaryHeading.style.color=t.primaryHeadingColor.toString()),this._secondaryHeading&&t.secondaryHeadingColor&&(this._secondaryHeading.style.color=t.secondaryHeadingColor.toString()),this._bodyElement&&t.frameColor&&(this._bodyElement.style.borderColor=t.frameColor.toString())},t.prototype._fillContainer=function(e){this.setCssClass(\"peekview-widget\"),this._headElement=n.$(\".head\"),this._bodyElement=n.$(\".body\"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)},t.prototype._fillHead=function(e){\nvar t=this,r=n.$(\".peekview-title\");n.append(this._headElement,r),n.addStandardDisposableListener(r,\"click\",(function(e){return t._onTitleClick(e)})),this._fillTitleIcon(r),this._primaryHeading=n.$(\"span.filename\"),this._secondaryHeading=n.$(\"span.dirname\"),this._metaHeading=n.$(\"span.meta\"),n.append(r,this._primaryHeading,this._secondaryHeading,this._metaHeading);var s=n.$(\".peekview-actions\");n.append(this._headElement,s);var a=this._getActionBarOptions();this._actionbarWidget=new i.ActionBar(s,a),this._disposables.add(this._actionbarWidget),this._actionbarWidget.push(new o.Action(\"peekview.close\",f.localize(0,null),\"codicon-close\",!0,(function(){return t.dispose(),Promise.resolve()})),{label:!1,icon:!0})},t.prototype._fillTitleIcon=function(e){},t.prototype._getActionBarOptions=function(){return{}},t.prototype._onTitleClick=function(e){},t.prototype.setTitle=function(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerHTML=u.escape(e),\nthis._primaryHeading.setAttribute(\"aria-label\",e),t?this._secondaryHeading.innerHTML=u.escape(t):n.clearNode(this._secondaryHeading))},t.prototype.setMetaTitle=function(e){this._metaHeading&&(e?(this._metaHeading.innerHTML=u.escape(e),n.show(this._metaHeading)):n.hide(this._metaHeading))},t.prototype._doLayout=function(e,t){if(!this._isShowing&&e<0)this.dispose();else{var n=Math.ceil(1.2*this.editor.getOption(49)),i=Math.round(e-(n+2));this._doLayoutHead(n,t),this._doLayoutBody(i,t)}},t.prototype._doLayoutHead=function(e,t){this._headElement&&(this._headElement.style.height=e+\"px\",this._headElement.style.lineHeight=this._headElement.style.height)},t.prototype._doLayoutBody=function(e,t){this._bodyElement&&(this._bodyElement.style.height=e+\"px\")},t}(p.ZoneWidget);t.PeekViewWidget=E,t.peekViewTitleBackground=C.registerColor(\"peekViewTitle.background\",{dark:\"#1E1E1E\",light:\"#FFFFFF\",hc:\"#0C141F\"},f.localize(1,null)),t.peekViewTitleForeground=C.registerColor(\"peekViewTitleLabel.foreground\",{dark:\"#FFFFFF\",\nlight:\"#333333\",hc:\"#FFFFFF\"},f.localize(2,null)),t.peekViewTitleInfoForeground=C.registerColor(\"peekViewTitleDescription.foreground\",{dark:\"#ccccccb3\",light:\"#616161e6\",hc:\"#FFFFFF99\"},f.localize(3,null)),t.peekViewBorder=C.registerColor(\"peekView.border\",{dark:\"#007acc\",light:\"#007acc\",hc:C.contrastBorder},f.localize(4,null)),t.peekViewResultsBackground=C.registerColor(\"peekViewResult.background\",{dark:\"#252526\",light:\"#F3F3F3\",hc:s.Color.black},f.localize(5,null)),t.peekViewResultsMatchForeground=C.registerColor(\"peekViewResult.lineForeground\",{dark:\"#bbbbbb\",light:\"#646465\",hc:s.Color.white},f.localize(6,null)),t.peekViewResultsFileForeground=C.registerColor(\"peekViewResult.fileForeground\",{dark:s.Color.white,light:\"#1E1E1E\",hc:s.Color.white},f.localize(7,null)),t.peekViewResultsSelectionBackground=C.registerColor(\"peekViewResult.selectionBackground\",{dark:\"#3399ff33\",light:\"#3399ff33\",hc:null},f.localize(8,null)),t.peekViewResultsSelectionForeground=C.registerColor(\"peekViewResult.selectionForeground\",{\ndark:s.Color.white,light:\"#6C6C6C\",hc:s.Color.white},f.localize(9,null)),t.peekViewEditorBackground=C.registerColor(\"peekViewEditor.background\",{dark:\"#001F33\",light:\"#F2F8FC\",hc:s.Color.black},f.localize(10,null)),t.peekViewEditorGutterBackground=C.registerColor(\"peekViewEditorGutter.background\",{dark:t.peekViewEditorBackground,light:t.peekViewEditorBackground,hc:t.peekViewEditorBackground},f.localize(11,null)),t.peekViewResultsMatchHighlight=C.registerColor(\"peekViewResult.matchHighlightBackground\",{dark:\"#ea5c004d\",light:\"#ea5c004d\",hc:null},f.localize(12,null)),t.peekViewEditorMatchHighlight=C.registerColor(\"peekViewEditor.matchHighlightBackground\",{dark:\"#ff8f0099\",light:\"#f5d802de\",hc:null},f.localize(13,null)),t.peekViewEditorMatchHighlightBorder=C.registerColor(\"peekViewEditor.matchHighlightBorder\",{dark:null,light:null,hc:C.activeContrastBorder},f.localize(14,null))})),define(n[583],i([0,1,2,13,3,464,18,20,14,34,6,320]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.CONTEXT_RENAME_INPUT_VISIBLE=new s.RawContextKey(\"renameInputVisible\",!1);var c=function(){function e(e,i,o,r,s){var a=this;this._editor=e,this._acceptKeybindings=i,this._themeService=o,this._keybindingService=r,this._disposables=new n.DisposableStore,this.allowEditorOverflow=!0,this._visibleContextKey=t.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(s),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&a._updateFont()}))),this._disposables.add(o.onThemeChange(this._updateStyles,this))}return e.prototype.dispose=function(){this._disposables.dispose(),this._editor.removeContentWidget(this)},e.prototype.getId=function(){return\"__renameInputWidget\"},e.prototype.getDomNode=function(){var e=this;if(!this._domNode){this._domNode=document.createElement(\"div\"),this._domNode.className=\"monaco-editor rename-box\",this._input=document.createElement(\"input\"),this._input.className=\"rename-input\",\nthis._input.type=\"text\",this._input.setAttribute(\"aria-label\",r.localize(0,null)),this._domNode.appendChild(this._input),this._label=document.createElement(\"div\"),this._label.className=\"rename-label\",this._domNode.appendChild(this._label);var t=function(){var t,n,i=e._acceptKeybindings,o=i[0],s=i[1];e._keybindingService.lookupKeybinding(o),e._label.innerText=r.localize(1,null,null===(t=e._keybindingService.lookupKeybinding(o))||void 0===t?void 0:t.getLabel(),null===(n=e._keybindingService.lookupKeybinding(s))||void 0===n?void 0:n.getLabel())};t(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(t)),this._updateFont(),this._updateStyles(this._themeService.getTheme())}return this._domNode},e.prototype._updateStyles=function(e){var t,n,i,o;if(this._input&&this._domNode){var r=e.getColor(a.widgetShadow);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(a.editorWidgetBackground))&&void 0!==t?t:\"\"),this._domNode.style.boxShadow=r?\" 0 2px 8px \"+r:\"\",\nthis._domNode.style.color=String(null!==(n=e.getColor(a.inputForeground))&&void 0!==n?n:\"\"),this._input.style.backgroundColor=String(null!==(i=e.getColor(a.inputBackground))&&void 0!==i?i:\"\");var s=e.getColor(a.inputBorder);this._input.style.borderWidth=s?\"1px\":\"0px\",this._input.style.borderStyle=s?\"solid\":\"none\",this._input.style.borderColor=null!==(o=null==s?void 0:s.toString())&&void 0!==o?o:\"none\"}},e.prototype._updateFont=function(){if(this._input&&this._label){var e=this._editor.getOption(34);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=e.fontSize+\"px\",this._label.style.fontSize=.8*e.fontSize+\"px\"}},e.prototype.getPosition=function(){return this._visible?{position:this._position,preference:[2,1]}:null},e.prototype.acceptInput=function(e){this._currentAcceptInput&&this._currentAcceptInput(e)},e.prototype.cancelInput=function(e){this._currentCancelInput&&this._currentCancelInput(e)},e.prototype.getInput=function(e,t,r,s,a){var l=this\n;d.toggleClass(this._domNode,\"preview\",a),this._position=new i.Position(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute(\"selectionStart\",r.toString()),this._input.setAttribute(\"selectionEnd\",s.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);var u=new n.DisposableStore;return new Promise((function(n){l._currentCancelInput=function(e){return l._currentAcceptInput=void 0,l._currentCancelInput=void 0,n(e),!0},l._currentAcceptInput=function(e){0!==l._input.value.trim().length&&l._input.value!==t?(l._currentAcceptInput=void 0,l._currentCancelInput=void 0,n({newName:l._input.value,wantsPreview:a&&e})):l.cancelInput(!0)};u.add(l._editor.onDidChangeCursorSelection((function(){var t=l._editor.getPosition();t&&o.Range.containsPosition(e,t)||l.cancelInput(!0)}))),u.add(l._editor.onDidBlurEditorWidget((function(){return l.cancelInput(!1)}))),l._show()})).finally((function(){u.dispose(),l._hide()}))},e.prototype._show=function(){var e=this\n;this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((function(){e._input.focus(),e._input.setSelectionRange(parseInt(e._input.getAttribute(\"selectionStart\")),parseInt(e._input.getAttribute(\"selectionEnd\")))}),100)},e.prototype._hide=function(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)},e=h([g(2,l.IThemeService),g(3,u.IKeybindingService),g(4,s.IContextKeyService)],e)}();t.RenameInputField=c})),define(n[584],i([0,1,463,10,18,73,12,23,583,17,13,50,3,122,67,35,156,25,32,26,2,15,21,95,11,42,85,114]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var R=function(){function e(e,t){this.model=e,this.position=t,this._providers=p.RenameProviderRegistry.ordered(e)}return e.prototype.hasProvider=function(){return this._providers.length>0},\ne.prototype.resolveRenameLocation=function(e){return d(this,void 0,void 0,(function(){var t,n,i,o;return c(this,(function(r){switch(r.label){case 0:return(t=this._providers[0])?t.resolveRenameLocation?(i=N.withNullAsUndefined,[4,t.resolveRenameLocation(this.model,this.position,e)]):[3,2]:[2,void 0];case 1:n=i.apply(void 0,[r.sent()]),r.label=2;case 2:return!n&&(o=this.model.getWordAtPosition(this.position))?[2,{range:new v.Range(this.position.lineNumber,o.startColumn,this.position.lineNumber,o.endColumn),text:o.word}]:[2,n]}}))}))},e.prototype.provideRenameEdits=function(e,t,i,o){return d(this,void 0,void 0,(function(){var r,s;return c(this,(function(a){switch(a.label){case 0:return(r=this._providers[t])?[4,r.provideRenameEdits(this.model,this.position,e,o)]:[2,{edits:[],rejectReason:i.join(\"\\n\")}];case 1:return(s=a.sent())?s.rejectReason?[2,this.provideRenameEdits(e,t+1,i.concat(s.rejectReason),o)]:[2,s]:[2,this.provideRenameEdits(e,t+1,i.concat(n.localize(0,null)),o)]}}))}))},e}();function O(e,t,n){\nreturn d(this,void 0,void 0,(function(){return c(this,(function(i){return[2,new R(e,t).provideRenameEdits(n,0,[],E.CancellationToken.None)]}))}))}t.rename=O;var P=function(){function e(e,t,n,i,o,r,s){var a=this;this.editor=e,this._instaService=t,this._notificationService=n,this._bulkEditService=i,this._progressService=o,this._logService=r,this._configService=s,this._dispoableStore=new L.DisposableStore,this._cts=new E.CancellationTokenSource,this._renameInputField=this._dispoableStore.add(new D.IdleValue((function(){return a._dispoableStore.add(a._instaService.createInstance(u.RenameInputField,a.editor,[\"acceptRenameInput\",\"acceptRenameInputWithPreview\"]))})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._dispoableStore.dispose(),this._cts.dispose(!0)},e.prototype.run=function(){return d(this,void 0,void 0,(function(){var e,t,i,o,r,s,a,l,u,h,p,g=this;return c(this,(function(f){switch(f.label){case 0:if(this._cts.dispose(!0),\n!this.editor.hasModel())return[2,void 0];if(e=this.editor.getPosition(),!(t=new R(this.editor.getModel(),e)).hasProvider())return[2,void 0];this._cts=new y.EditorStateCancellationTokenSource(this.editor,5),f.label=1;case 1:return f.trys.push([1,3,,4]),o=t.resolveRenameLocation(this._cts.token),this._progressService.showWhile(o,250),[4,o];case 2:return i=f.sent(),[3,4];case 3:return r=f.sent(),_.MessageController.get(this.editor).showMessage(r||n.localize(1,null),e),[2,void 0];case 4:return i?i.rejectReason?(_.MessageController.get(this.editor).showMessage(i.rejectReason,e),[2,void 0]):this._cts.token.isCancellationRequested?[2,void 0]:(s=this.editor.getSelection(),a=0,l=i.text.length,v.Range.isEmpty(s)||v.Range.spansMultipleLines(s)||!v.Range.containsRange(i.range,s)||(a=Math.max(0,s.startColumn-i.range.startColumn),l=Math.min(i.range.endColumn,s.endColumn)-i.range.startColumn),u=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,\"editor.rename.enablePreview\"),\n[4,this._renameInputField.getValue().getInput(i.range,i.text,a,l,u)]):[2,void 0];case 5:return\"boolean\"==typeof(h=f.sent())?(h&&this.editor.focus(),[2,void 0]):(this.editor.focus(),p=D.raceCancellation(t.provideRenameEdits(h.newName,0,[],this._cts.token),this._cts.token).then((function(e){return d(g,void 0,void 0,(function(){var t=this;return c(this,(function(o){return e&&this.editor.hasModel()?e.rejectReason?(this._notificationService.info(e.rejectReason),[2]):(this._bulkEditService.apply(e,{editor:this.editor,showPreview:h.wantsPreview,label:n.localize(2,null,null==i?void 0:i.text)}).then((function(e){e.ariaSummary&&m.alert(n.localize(3,null,i.text,h.newName,e.ariaSummary))})).catch((function(e){t._notificationService.error(n.localize(4,null)),t._logService.error(e)})),[2]):[2]}))}))}),(function(e){g._notificationService.error(n.localize(5,null)),g._logService.error(e)})),this._progressService.showWhile(p,250),[2,p])}}))}))},e.prototype.acceptRenameInput=function(e){\nthis._renameInputField.getValue().acceptInput(e)},e.prototype.cancelRenameInput=function(){this._renameInputField.getValue().cancelInput(!0)},e.ID=\"editor.contrib.renameController\",e=h([g(1,I.IInstantiationService),g(2,C.INotificationService),g(3,b.IBulkEditService),g(4,s.IEditorProgressService),g(5,x.ILogService),g(6,T.ITextResourceConfigurationService)],e)}(),A=function(e){function t(){return e.call(this,{id:\"editor.action.rename\",label:n.localize(6,null),alias:\"Rename Symbol\",precondition:o.ContextKeyExpr.and(l.EditorContextKeys.writable,l.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:l.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.1}})||this}return r(t,e),t.prototype.runCommand=function(t,n){var o=this,r=t.get(w.ICodeEditorService),s=Array.isArray(n)&&n||[void 0,void 0],a=s[0],l=s[1];return S.URI.isUri(a)&&f.Position.isIPosition(l)?r.openCodeEditor({resource:a},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(l),\ne.invokeWithinContext((function(t){return o.reportTelemetry(t,e),o.run(t,e)})))}),i.onUnexpectedError):e.prototype.runCommand.call(this,t,n)},t.prototype.run=function(e,t){var n=P.get(t);return n?n.run():Promise.resolve()},t}(a.EditorAction);t.RenameAction=A,a.registerEditorContribution(P.ID,P),a.registerEditorAction(A);var F=a.EditorCommand.bindToContribution(P.get);a.registerEditorCommand(new F({id:\"acceptRenameInput\",precondition:u.CONTEXT_RENAME_INPUT_VISIBLE,handler:function(e){return e.acceptRenameInput(!1)},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:3}})),a.registerEditorCommand(new F({id:\"acceptRenameInputWithPreview\",precondition:o.ContextKeyExpr.and(u.CONTEXT_RENAME_INPUT_VISIBLE,o.ContextKeyExpr.has(\"config.editor.rename.enablePreview\")),handler:function(e){return e.acceptRenameInput(!0)},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:1027}})),a.registerEditorCommand(new F({id:\"cancelRenameInput\",precondition:u.CONTEXT_RENAME_INPUT_VISIBLE,handler:function(e){\nreturn e.cancelRenameInput()},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:9,secondary:[1033]}})),a.registerDefaultLanguageCommand(\"_executeDocumentRenameProvider\",(function(e,t,n){var o=n.newName;if(\"string\"!=typeof o)throw i.illegalArgument(\"newName\");return O(e,t,o)})),M.Registry.as(k.Extensions.Configuration).registerConfiguration({id:\"editor\",properties:{\"editor.rename.enablePreview\":{scope:5,description:n.localize(7,null),default:!0,type:\"boolean\"}}})})),define(n[585],i([0,1,468,61,5,4,10,2,6,153,53,34,18,120,96,97,14,20,74,117,71,51,15,17,139,511,49,25,11,208,75,19,13,322,323,183,231]),(function(e,t,n,i,o,r,s,a,u,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.editorSuggestWidgetBackground=S.registerColor(\"editorSuggestWidget.background\",{dark:S.editorWidgetBackground,light:S.editorWidgetBackground,hc:S.editorWidgetBackground},n.localize(0,null)),t.editorSuggestWidgetBorder=S.registerColor(\"editorSuggestWidget.border\",{\ndark:S.editorWidgetBorder,light:S.editorWidgetBorder,hc:S.editorWidgetBorder},n.localize(1,null)),t.editorSuggestWidgetForeground=S.registerColor(\"editorSuggestWidget.foreground\",{dark:S.editorForeground,light:S.editorForeground,hc:S.editorForeground},n.localize(2,null)),t.editorSuggestWidgetSelectedBackground=S.registerColor(\"editorSuggestWidget.selectedBackground\",{dark:S.listFocusBackground,light:S.listFocusBackground,hc:S.listFocusBackground},n.localize(3,null)),t.editorSuggestWidgetHighlightForeground=S.registerColor(\"editorSuggestWidget.highlightForeground\",{dark:S.listHighlightForeground,light:S.listHighlightForeground,hc:S.listHighlightForeground},n.localize(4,null));var W=/^(#([\\da-f]{3}){1,2}|(rgb|hsl)a\\(\\s*(\\d{1,3}%?\\s*,\\s*){3}(1|0?\\.\\d+)\\)|(rgb|hsl)\\(\\s*\\d{1,3}%?(\\s*,\\s*\\d{1,3}%?){2}\\s*\\))$/i;function B(e){if(!e)return!1;var t=e.completion;return!!t.documentation||t.detail&&t.detail!==t.label}function V(e){return\"suggest-aria-id:\"+e}var z=function(){function e(e,t,n,i,o,r){this.widget=e,\nthis.editor=t,this.triggerKeybindingLabel=n,this._modelService=i,this._modeService=o,this._themeService=r}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return\"suggestion\"},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){var t=this,i=Object.create(null);i.disposables=new a.DisposableStore,i.root=e,u.addClass(i.root,\"show-file-icons\"),i.icon=u.append(e,u.$(\".icon\")),i.colorspan=u.append(i.icon,u.$(\"span.colorspan\"));var o=u.append(e,u.$(\".contents\")),s=u.append(o,u.$(\".main\"));i.left=u.append(s,u.$(\"span.left\")),i.right=u.append(s,u.$(\"span.right\")),i.iconContainer=u.append(i.left,u.$(\".icon-label.codicon\")),i.iconLabel=new I.IconLabel(i.left,{supportHighlights:!0,supportCodicons:!0}),i.disposables.add(i.iconLabel),i.signatureLabel=u.append(i.left,u.$(\"span.signature-label\")),i.qualifierLabel=u.append(i.left,u.$(\"span.qualifier-label\")),i.detailsLabel=u.append(i.right,u.$(\"span.details-label\")),i.readMore=u.append(i.right,u.$(\"span.readMore.codicon.codicon-info\")),\ni.readMore.title=n.localize(5,null,this.triggerKeybindingLabel);var l=function(){var e=t.editor.getOptions(),n=e.get(34),o=n.fontFamily,r=n.fontFeatureSettings,a=e.get(90)||n.fontSize,l=e.get(91)||n.lineHeight,u=n.fontWeight,d=a+\"px\",c=l+\"px\";i.root.style.fontSize=d,i.root.style.fontWeight=u,s.style.fontFamily=o,s.style.fontFeatureSettings=r,s.style.lineHeight=c,i.icon.style.height=c,i.icon.style.width=c,i.readMore.style.height=c,i.readMore.style.width=c};return l(),i.disposables.add(r.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)||e.hasChanged(90)||e.hasChanged(91)})).on(l,null)),i},e.prototype.renderElement=function(e,t,n){var o=this,r=n,s=e.completion,a=\"string\"==typeof s.label?s.label:s.label.name;r.root.id=V(t),r.icon.className=\"icon \"+x.completionKindToCssClass(s.kind),r.colorspan.style.backgroundColor=\"\";var l,d,c,h={labelEscapeNewLines:!0,matches:i.createMatches(e.score)},p=[];if(19===s.kind&&(d=p,\n(c=\"string\"==typeof(l=e).completion.label?l.completion.label:l.completion.label.name).match(W)?(d[0]=c,1):\"string\"==typeof l.completion.documentation&&l.completion.documentation.match(W)&&(d[0]=l.completion.documentation,1)))r.icon.className=\"icon customcolor\",r.iconContainer.className=\"icon hide\",r.colorspan.style.backgroundColor=p[0];else if(20===s.kind&&this._themeService.getIconTheme().hasFileIcons){r.icon.className=\"icon hide\",r.iconContainer.className=\"icon hide\";var g=M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:a}),O.FileKind.FILE),f=M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:s.detail}),O.FileKind.FILE);h.extraClasses=g.length>f.length?g:f}else 23===s.kind&&this._themeService.getIconTheme().hasFolderIcons?(r.icon.className=\"icon hide\",r.iconContainer.className=\"icon hide\",h.extraClasses=A.flatten([M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:a\n}),O.FileKind.FOLDER),M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:s.detail}),O.FileKind.FOLDER)])):(r.icon.className=\"icon hide\",r.iconContainer.className=\"\",u.addClasses(r.iconContainer,\"suggest-icon codicon codicon-symbol-\"+x.completionKindToCssClass(s.kind)));s.tags&&s.tags.indexOf(1)>=0&&(h.extraClasses=(h.extraClasses||[]).concat([\"deprecated\"]),h.matches=[]),r.iconLabel.setLabel(a,void 0,h),\"string\"==typeof s.label?(r.signatureLabel.textContent=\"\",r.qualifierLabel.textContent=\"\",r.detailsLabel.textContent=(s.detail||\"\").replace(/\\n.*$/m,\"\"),u.removeClass(r.right,\"always-show-details\")):(r.signatureLabel.textContent=(s.label.signature||\"\").replace(/\\n.*$/m,\"\"),r.qualifierLabel.textContent=(s.label.qualifier||\"\").replace(/\\n.*$/m,\"\"),r.detailsLabel.textContent=(s.label.type||\"\").replace(/\\n.*$/m,\"\"),u.addClass(r.right,\"always-show-details\")),B(e)?(u.addClass(r.right,\"can-expand-details\"),u.show(r.readMore),r.readMore.onmousedown=function(e){e.stopPropagation(),\ne.preventDefault()},r.readMore.onclick=function(e){e.stopPropagation(),e.preventDefault(),o.widget.toggleDetails()}):(u.removeClass(r.right,\"can-expand-details\"),u.hide(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)},e.prototype.disposeTemplate=function(e){e.disposables.dispose()},e=h([g(3,k.IModelService),g(4,L.IModeService),g(5,b.IThemeService)],e)}(),H=function(){function e(e,t,i,o,s){var l=this;this.widget=t,this.editor=i,this.markdownRenderer=o,this.kbToggleDetails=s,this.borderWidth=1,this.disposables=new a.DisposableStore,this.el=u.append(e,u.$(\".details\")),this.disposables.add(a.toDisposable((function(){return e.removeChild(l.el)}))),this.body=u.$(\".body\"),this.scrollbar=new f.DomScrollableElement(this.body,{}),u.append(this.el,this.scrollbar.getDomNode()),this.disposables.add(this.scrollbar),this.header=u.append(this.body,u.$(\".header\")),this.close=u.append(this.header,u.$(\"span.codicon.codicon-close\")),this.close.title=n.localize(6,null,this.kbToggleDetails),\nthis.type=u.append(this.header,u.$(\"p.type\")),this.docs=u.append(this.body,u.$(\"p.docs\")),this.configureFont(),r.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)})).on(this.configureFont,this,this.disposables),o.onDidRenderCodeBlock((function(){return l.scrollbar.scanDomNode()}),this,this.disposables)}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.el},enumerable:!0,configurable:!0}),e.prototype.renderLoading=function(){this.type.textContent=n.localize(7,null),this.docs.textContent=\"\"},e.prototype.renderItem=function(e,t){var n=this;this.renderDisposeable=a.dispose(this.renderDisposeable);var i=e.completion,o=i.documentation,r=i.detail;if(t){var s=\"\";s+=\"score: \"+e.score[0]+(e.word?\", compared '\"+(e.completion.filterText&&e.completion.filterText+\" (filterText)\"||e.completion.label)+\"' with '\"+e.word+\"'\":\" (no prefix)\")+\"\\n\",s+=\"distance: \"+e.distance+\", see localityBonus-setting\\n\",\ns+=\"index: \"+e.idx+\", based on \"+(e.completion.sortText&&'sortText: \"'+e.completion.sortText+'\"'||\"label\")+\"\\n\",o=(new P.MarkdownString).appendCodeblock(\"empty\",s),r=\"Provider: \"+e.provider._debugDisplayName}if(!t&&!B(e))return this.type.textContent=\"\",this.docs.textContent=\"\",void u.addClass(this.el,\"no-docs\");if(u.removeClass(this.el,\"no-docs\"),\"string\"==typeof o)u.removeClass(this.docs,\"markdown-docs\"),this.docs.textContent=o;else{u.addClass(this.docs,\"markdown-docs\"),this.docs.innerHTML=\"\";var l=this.markdownRenderer.render(o);this.renderDisposeable=l,this.docs.appendChild(l.element)}r?(this.type.innerText=r,u.show(this.type)):(this.type.innerText=\"\",u.hide(this.type)),this.el.style.height=this.header.offsetHeight+this.docs.offsetHeight+2*this.borderWidth+\"px\",this.el.style.userSelect=\"text\",this.el.tabIndex=-1,this.close.onmousedown=function(e){e.preventDefault(),e.stopPropagation()},this.close.onclick=function(e){e.preventDefault(),e.stopPropagation(),n.widget.toggleDetails()},this.body.scrollTop=0,\nthis.scrollbar.scanDomNode()},e.prototype.scrollDown=function(e){void 0===e&&(e=8),this.body.scrollTop+=e},e.prototype.scrollUp=function(e){void 0===e&&(e=8),this.body.scrollTop-=e},e.prototype.scrollTop=function(){this.body.scrollTop=0},e.prototype.scrollBottom=function(){this.body.scrollTop=this.body.scrollHeight},e.prototype.pageDown=function(){this.scrollDown(80)},e.prototype.pageUp=function(){this.scrollUp(80)},e.prototype.setBorderWidth=function(e){this.borderWidth=e},e.prototype.configureFont=function(){var e=this.editor.getOptions(),t=e.get(34),n=t.fontFamily,i=e.get(90)||t.fontSize,o=e.get(91)||t.lineHeight,r=t.fontWeight,s=i+\"px\",a=o+\"px\";this.el.style.fontSize=s,this.el.style.fontWeight=r,this.el.style.fontFeatureSettings=t.fontFeatureSettings,this.type.style.fontFamily=n,this.close.style.height=a,this.close.style.width=a},e.prototype.dispose=function(){this.disposables.dispose(),this.renderDisposeable=a.dispose(this.renderDisposeable)},e}(),K=function(){function e(e,i,s,l,d,c,h,g,f){var m,v,y=this\n;this.editor=e,this.telemetryService=i,this.keybindingService=s,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.state=null,this.isAuto=!1,this.loadingTimeout=a.Disposable.None,this.currentSuggestionDetails=null,this.ignoreFocusEvents=!1,this.completionModel=null,this.showTimeout=new N.TimeoutTimer,this.toDispose=new a.DisposableStore,this.onDidSelectEmitter=new r.Emitter,this.onDidFocusEmitter=new r.Emitter,this.onDidHideEmitter=new r.Emitter,this.onDidShowEmitter=new r.Emitter,this.onDidSelect=this.onDidSelectEmitter.event,this.onDidFocus=this.onDidFocusEmitter.event,this.onDidHide=this.onDidHideEmitter.event,this.onDidShow=this.onDidShowEmitter.event,this.maxWidgetWidth=660,this.listWidth=330,this.firstFocusInCurrentList=!1,this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,this.explainMode=!1,this._onDetailsKeydown=new r.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event\n;var b=this.toDispose.add(new E.MarkdownRenderer(e,h,g)),w=null!==(v=null===(m=s.lookupKeybinding(\"toggleSuggestionDetails\"))||void 0===m?void 0:m.getLabel())&&void 0!==v?v:\"\";this.msgDetailsLess=n.localize(10,null,w),this.msgDetailMore=n.localize(11,null,w),this.isAuto=!1,this.focusedItem=null,this.storageService=c,this.element=u.$(\".editor-widget.suggest-widget\"),this.toDispose.add(u.addDisposableListener(this.element,\"click\",(function(e){e.target===y.element&&y.hideWidget()}))),this.messageElement=u.append(this.element,u.$(\".message\")),this.listElement=u.append(this.element,u.$(\".tree\"));var L=function(){return u.toggleClass(y.element,\"with-status-bar\",!y.editor.getOption(89).hideStatusBar)};L(),this.statusBarElement=u.append(this.element,u.$(\".suggest-status-bar\")),this.statusBarLeftSpan=u.append(this.statusBarElement,u.$(\"span\")),this.statusBarRightSpan=u.append(this.statusBarElement,u.$(\"span\")),this.setStatusBarLeftText(\"\"),this.setStatusBarRightText(\"\"),\nthis.details=f.createInstance(H,this.element,this,this.editor,b,w);var D=function(){return u.toggleClass(y.element,\"no-icons\",!y.editor.getOption(89).showIcons)};D();var x=f.createInstance(z,this,this.editor,w);this.list=new p.List(\"SuggestWidget\",this.listElement,this,[x],{useShadows:!1,openController:{shouldOpen:function(){return!1}},mouseSupport:!1,accessibilityProvider:{getAriaLabel:function(e){var t=\"string\"==typeof e.completion.label?e.completion.label:e.completion.label.name;if(e.isResolved&&y.expandDocsSettingFromStorage()){var i=e.completion,r=i.documentation,s=i.detail,a=o.format(\"{0}{1}\",s||\"\",r?\"string\"==typeof r?r:r.value:\"\");return n.localize(12,null,t,a)}return t}}}),this.toDispose.add(C.attachListStyler(this.list,d,{listInactiveFocusBackground:t.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:S.activeContrastBorder})),this.toDispose.add(d.onThemeChange((function(e){return y.onThemeChange(e)}))),this.toDispose.add(e.onDidLayoutChange((function(){return y.onEditorLayoutChange()\n}))),this.toDispose.add(this.list.onMouseDown((function(e){return y.onListMouseDownOrTap(e)}))),this.toDispose.add(this.list.onTap((function(e){return y.onListMouseDownOrTap(e)}))),this.toDispose.add(this.list.onSelectionChange((function(e){return y.onListSelection(e)}))),this.toDispose.add(this.list.onFocusChange((function(e){return y.onListFocus(e)}))),this.toDispose.add(this.editor.onDidChangeCursorSelection((function(){return y.onCursorSelectionChanged()}))),this.toDispose.add(this.editor.onDidChangeConfiguration((function(e){e.hasChanged(89)&&(L(),D())}))),this.suggestWidgetVisible=_.Context.Visible.bindTo(l),this.suggestWidgetMultipleSuggestions=_.Context.MultipleSuggestions.bindTo(l),this.editor.addContentWidget(this),this.setState(0),this.onThemeChange(d.getTheme()),this.toDispose.add(u.addStandardDisposableListener(this.details.element,\"keydown\",(function(e){y._onDetailsKeydown.fire(e)}))),this.toDispose.add(this.editor.onMouseDown((function(e){return y.onEditorMouseDown(e)})))}\nreturn e.prototype.onEditorMouseDown=function(e){this.details.element.contains(e.target.element)?this.details.element.focus():this.element.contains(e.target.element)&&this.editor.focus()},e.prototype.onCursorSelectionChanged=function(){0!==this.state&&this.editor.layoutContentWidget(this)},e.prototype.onEditorLayoutChange=function(){3!==this.state&&5!==this.state||!this.expandDocsSettingFromStorage()||this.expandSideOrBelow()},e.prototype.onListMouseDownOrTap=function(e){void 0!==e.element&&void 0!==e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this.select(e.element,e.index))},e.prototype.onListSelection=function(e){e.elements.length&&this.select(e.elements[0],e.indexes[0])},e.prototype.select=function(e,t){var n=this.completionModel;n&&(this.onDidSelectEmitter.fire({item:e,index:t,model:n}),this.editor.focus())},e.prototype.onThemeChange=function(e){var n=e.getColor(t.editorSuggestWidgetBackground);n&&(this.listElement.style.backgroundColor=n.toString(),\nthis.statusBarElement.style.backgroundColor=n.toString(),this.details.element.style.backgroundColor=n.toString(),this.messageElement.style.backgroundColor=n.toString());var i=e.getColor(t.editorSuggestWidgetBorder);i&&(this.listElement.style.borderColor=i.toString(),this.statusBarElement.style.borderColor=i.toString(),this.details.element.style.borderColor=i.toString(),this.messageElement.style.borderColor=i.toString(),this.detailsBorderColor=i.toString());var o=e.getColor(S.focusBorder);o&&(this.detailsFocusBorderColor=o.toString()),this.details.setBorderWidth(\"hc\"===e.type?2:1)},e.prototype.onListFocus=function(e){var t,i,o=this;if(!this.ignoreFocusEvents){if(!e.elements.length)return this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null,this.focusedItem=null),void this.editor.setAriaOptions({activeDescendant:void 0});if(this.completionModel){var r=e.elements[0],a=e.indexes[0];if(this.firstFocusInCurrentList=!this.focusedItem,r!==this.focusedItem){\nvar l=\"insert\"===this.editor.getOption(89).insertMode,h=null===(t=this.keybindingService.lookupKeybinding(\"acceptSelectedSuggestion\"))||void 0===t?void 0:t.getLabel(),p=null===(i=this.keybindingService.lookupKeybinding(\"acceptAlternativeSelectedSuggestion\"))||void 0===i?void 0:i.getLabel();F.Position.equals(r.editInsertEnd,r.editReplaceEnd)?this.setStatusBarLeftText(n.localize(15,null,h)):l?this.setStatusBarLeftText(n.localize(13,null,h,p)):this.setStatusBarLeftText(n.localize(14,null,h,p)),this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.focusedItem=r,this.list.reveal(a),this.currentSuggestionDetails=N.createCancelablePromise((function(e){return d(o,void 0,void 0,(function(){var t,n,i=this;return c(this,(function(o){switch(o.label){case 0:return t=N.disposableTimeout((function(){return i.showDetails(!0)}),250),e.onCancellationRequested((function(){return t.dispose()})),[4,r.resolve(e)];case 1:return n=o.sent(),t.dispose(),[2,n]}}))}))})),\nthis.currentSuggestionDetails.then((function(){a>=o.list.length||r!==o.list.element(a)||(o.ignoreFocusEvents=!0,o.list.splice(a,1,[r]),o.list.setFocus([a]),o.ignoreFocusEvents=!1,o.expandDocsSettingFromStorage()?o.showDetails(!1):u.removeClass(o.element,\"docs-side\"),B(o.focusedItem)?o.expandDocsSettingFromStorage()?o.setStatusBarRightText(o.msgDetailsLess):o.setStatusBarRightText(o.msgDetailMore):o.statusBarRightSpan.innerText=\"\",o.editor.setAriaOptions({activeDescendant:V(a)}))})).catch(s.onUnexpectedError)}this.onDidFocusEmitter.fire({item:r,index:a,model:this.completionModel})}}},e.prototype.setState=function(t){if(this.element){var n=this.state!==t;switch(this.state=t,u.toggleClass(this.element,\"frozen\",4===t),t){case 0:u.hide(this.messageElement,this.details.element,this.listElement,this.statusBarElement),this.hide(),this.listHeight=0,n&&this.list.splice(0,this.list.length),this.focusedItem=null;break;case 1:this.messageElement.textContent=e.LOADING_MESSAGE,\nu.hide(this.listElement,this.details.element,this.statusBarElement),u.show(this.messageElement),u.removeClass(this.element,\"docs-side\"),this.show(),this.focusedItem=null;break;case 2:this.messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,u.hide(this.listElement,this.details.element,this.statusBarElement),u.show(this.messageElement),u.removeClass(this.element,\"docs-side\"),this.show(),this.focusedItem=null;break;case 3:u.hide(this.messageElement),u.show(this.listElement,this.statusBarElement),this.show();break;case 4:u.hide(this.messageElement),u.show(this.listElement),this.show();break;case 5:u.hide(this.messageElement),u.show(this.details.element,this.listElement,this.statusBarElement),this.show()}}},e.prototype.showTriggered=function(e,t){var n=this;0===this.state&&(this.isAuto=!!e,this.isAuto||(this.loadingTimeout=N.disposableTimeout((function(){return n.setState(1)}),t)))},e.prototype.showSuggestions=function(e,t,n,i){if(this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,\nthis.loadingTimeout.dispose(),this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.completionModel!==e&&(this.completionModel=e),n&&2!==this.state&&0!==this.state)this.setState(4);else{var o=this.completionModel.items.length,r=0===o;if(this.suggestWidgetMultipleSuggestions.set(o>1),r)i?this.setState(0):this.setState(2),this.completionModel=null;else{if(3!==this.state){var s=this.completionModel.stats;s.wasAutomaticallyTriggered=!!i,this.telemetryService.publicLog(\"suggestWidget\",l({},s))}this.focusedItem=null,this.list.splice(0,this.list.length,this.completionModel.items),n?this.setState(4):this.setState(3),this.list.reveal(t,0),this.list.setFocus([t]),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)}}},e.prototype.selectNextPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageDown(),!0;case 1:return!this.isAuto;default:return this.list.focusNextPage(),!0}},\ne.prototype.selectNext=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusNext(1,!0),!0}},e.prototype.selectLast=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollBottom(),!0;case 1:return!this.isAuto;default:return this.list.focusLast(),!0}},e.prototype.selectPreviousPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageUp(),!0;case 1:return!this.isAuto;default:return this.list.focusPreviousPage(),!0}},e.prototype.selectPrevious=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusPrevious(1,!0),!1}},e.prototype.selectFirst=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollTop(),!0;case 1:return!this.isAuto;default:return this.list.focusFirst(),!0}},e.prototype.getFocusedItem=function(){if(0!==this.state&&2!==this.state&&1!==this.state&&this.completionModel)return{item:this.list.getFocusedElements()[0],\nindex:this.list.getFocus()[0],model:this.completionModel}},e.prototype.toggleDetailsFocus=function(){5===this.state?(this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)):3===this.state&&this.expandDocsSettingFromStorage()&&(this.setState(5),this.detailsFocusBorderColor&&(this.details.element.style.borderColor=this.detailsFocusBorderColor)),this.telemetryService.publicLog2(\"suggestWidget:toggleDetailsFocus\")},e.prototype.toggleDetails=function(){if(B(this.list.getFocusedElements()[0]))if(this.expandDocsSettingFromStorage())this.updateExpandDocsSetting(!1),u.hide(this.details.element),u.removeClass(this.element,\"docs-side\"),u.removeClass(this.element,\"docs-below\"),this.editor.layoutContentWidget(this),this.setStatusBarRightText(this.msgDetailMore),this.telemetryService.publicLog2(\"suggestWidget:collapseDetails\");else{if(3!==this.state&&5!==this.state&&4!==this.state)return;this.updateExpandDocsSetting(!0),this.showDetails(!1),\nthis.setStatusBarRightText(this.msgDetailsLess),this.telemetryService.publicLog2(\"suggestWidget:expandDetails\")}},e.prototype.showDetails=function(e){e||this.expandSideOrBelow(),u.show(this.details.element),this.details.element.style.maxHeight=this.maxWidgetHeight+\"px\",e?this.details.renderLoading():this.details.renderItem(this.list.getFocusedElements()[0],this.explainMode),this.listElement.style.marginTop=\"0px\",this.editor.layoutContentWidget(this),this.adjustDocsPosition(),this.editor.focus()},e.prototype.toggleExplainMode=function(){this.list.getFocusedElements()[0]&&this.expandDocsSettingFromStorage()&&(this.explainMode=!this.explainMode,this.showDetails(!1))},e.prototype.show=function(){var e=this,t=this.updateListHeight();t!==this.listHeight&&(this.editor.layoutContentWidget(this),this.listHeight=t),this.suggestWidgetVisible.set(!0),this.showTimeout.cancelAndSet((function(){u.addClass(e.element,\"visible\"),e.onDidShowEmitter.fire(e)}),100)},e.prototype.hide=function(){this.suggestWidgetVisible.reset(),\nthis.suggestWidgetMultipleSuggestions.reset(),u.removeClass(this.element,\"visible\")},e.prototype.hideWidget=function(){this.loadingTimeout.dispose(),this.setState(0),this.onDidHideEmitter.fire(this)},e.prototype.getPosition=function(){if(0===this.state)return null;var e=[2,1];return this.preferDocPositionTop&&(e=[1]),{position:this.editor.getPosition(),preference:e}},e.prototype.getDomNode=function(){return this.element},e.prototype.getId=function(){return e.ID},e.prototype.isFrozen=function(){return 4===this.state},e.prototype.updateListHeight=function(){var e=0;if(2===this.state||1===this.state)e=this.unfocusedHeight;else{var t=this.list.contentHeight/this.unfocusedHeight,n=this.editor.getOption(89).maxVisibleSuggestions;e=Math.min(t,n)*this.unfocusedHeight}return this.element.style.lineHeight=this.unfocusedHeight+\"px\",this.listElement.style.height=e+\"px\",this.statusBarElement.style.top=e+\"px\",this.list.layout(e),e},e.prototype.adjustDocsPosition=function(){if(this.editor.hasModel()){\nvar e=this.editor.getOption(49),t=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),n=u.getDomNodePagePosition(this.editor.getDomNode()),i=n.left+t.left,o=n.top+t.top+t.height,r=u.getDomNodePagePosition(this.element),s=r.left,a=r.top;if(this.docsPositionPreviousWidgetY&&this.docsPositionPreviousWidgetY<a&&!this.preferDocPositionTop)return this.preferDocPositionTop=!0,void this.adjustDocsPosition();this.docsPositionPreviousWidgetY=a,s<i-this.listWidth?u.addClass(this.element,\"list-right\"):u.removeClass(this.element,\"list-right\"),u.hasClass(this.element,\"docs-side\")&&o-e>a&&this.details.element.offsetHeight>this.listElement.offsetHeight&&(this.listElement.style.marginTop=this.details.element.offsetHeight-this.listElement.offsetHeight+\"px\")}},e.prototype.expandSideOrBelow=function(){if(!B(this.focusedItem)&&this.firstFocusInCurrentList)return u.removeClass(this.element,\"docs-side\"),void u.removeClass(this.element,\"docs-below\");var e=this.element.style.maxWidth.match(/(\\d+)px/)\n;!e||Number(e[1])<this.maxWidgetWidth?(u.addClass(this.element,\"docs-below\"),u.removeClass(this.element,\"docs-side\")):B(this.focusedItem)&&(u.addClass(this.element,\"docs-side\"),u.removeClass(this.element,\"docs-below\"))},Object.defineProperty(e.prototype,\"maxWidgetHeight\",{get:function(){return this.unfocusedHeight*this.editor.getOption(89).maxVisibleSuggestions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"unfocusedHeight\",{get:function(){var e=this.editor.getOptions();return e.get(91)||e.get(34).lineHeight},enumerable:!0,configurable:!0}),e.prototype.getHeight=function(e){return this.unfocusedHeight},e.prototype.getTemplateId=function(e){return\"suggestion\"},e.prototype.expandDocsSettingFromStorage=function(){return this.storageService.getBoolean(\"expandSuggestionDocs\",0,!1)},e.prototype.updateExpandDocsSetting=function(e){this.storageService.store(\"expandSuggestionDocs\",e,0)},e.prototype.setStatusBarLeftText=function(e){this.statusBarLeftSpan.innerText=e},\ne.prototype.setStatusBarRightText=function(e){this.statusBarRightSpan.innerText=e},e.prototype.dispose=function(){this.details.dispose(),this.list.dispose(),this.toDispose.dispose(),this.loadingTimeout.dispose(),this.showTimeout.dispose()},e.ID=\"editor.widget.suggestWidget\",e.LOADING_MESSAGE=n.localize(8,null),e.NO_SUGGESTIONS_MESSAGE=n.localize(9,null),e=h([g(1,y.ITelemetryService),g(2,m.IKeybindingService),g(3,v.IContextKeyService),g(4,b.IThemeService),g(5,w.IStorageService),g(6,L.IModeService),g(7,D.IOpenerService),g(8,R.IInstantiationService)],e)}();t.SuggestWidget=K,b.registerThemingParticipant((function(e,n){var i=e.getColor(t.editorSuggestWidgetHighlightForeground);i&&n.addRule(\".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: \"+i+\"; }\");var o=e.getColor(t.editorSuggestWidgetForeground);o&&n.addRule(\".monaco-editor .suggest-widget { color: \"+o+\"; }\");var r=e.getColor(S.textLinkForeground)\n;r&&n.addRule(\".monaco-editor .suggest-widget a { color: \"+r+\"; }\");var s=e.getColor(S.textCodeBlockBackground);s&&n.addRule(\".monaco-editor .suggest-widget code { background-color: \"+s+\"; }\")}))})),define(n[586],i([0,1,471,19,15,26,10,2,12,3,23,48,30,17,18,20,14]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=_.registerColor(\"editor.wordHighlightBackground\",{dark:\"#575757B8\",light:\"#57575740\",hc:null},n.localize(0,null),!0),b=_.registerColor(\"editor.wordHighlightStrongBackground\",{dark:\"#004972B8\",light:\"#0e639c40\",hc:null},n.localize(1,null),!0),S=_.registerColor(\"editor.wordHighlightBorder\",{light:null,dark:null,hc:_.activeContrastBorder},n.localize(2,null)),w=_.registerColor(\"editor.wordHighlightStrongBorder\",{light:null,dark:null,hc:_.activeContrastBorder},n.localize(3,null)),E=_.registerColor(\"editorOverviewRuler.wordHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hc:\"#A0A0A0CC\"\n},n.localize(4,null),!0),L=_.registerColor(\"editorOverviewRuler.wordHighlightStrongForeground\",{dark:\"#C0A0C0CC\",light:\"#C0A0C0CC\",hc:\"#C0A0C0CC\"},n.localize(5,null),!0),D=new v.RawContextKey(\"hasWordHighlights\",!1);function N(e,t,n){var r=m.DocumentHighlightProviderRegistry.ordered(e);return o.first(r.map((function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,a.onUnexpectedExternalError)}})),i.isNonEmptyArray)}t.getOccurrencesAtPosition=N;var x=function(){function e(e,t,n){var i=this;this._wordRange=this._getCurrentWordRange(e,t),this.result=o.createCancelablePromise((function(o){return i._compute(e,t,n,o)}))}return e.prototype._getCurrentWordRange=function(e,t){var n=e.getWordAtPosition(t.getPosition());return n?new d.Range(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):null},e.prototype.isValid=function(e,t,n){\nfor(var i=t.startLineNumber,o=t.startColumn,r=t.endColumn,s=this._getCurrentWordRange(e,t),a=Boolean(this._wordRange&&this._wordRange.equalsRange(s)),l=0,u=n.length;!a&&l<u;l++){var d=e.getDecorationRange(n[l]);d&&d.startLineNumber===i&&d.startColumn<=o&&d.endColumn>=r&&(a=!0)}return a},e.prototype.cancel=function(){this.result.cancel()},e}(),I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._compute=function(e,t,n,i){return N(e,t.getPosition(),i).then((function(e){return e||[]}))},t}(x),M=function(e){function t(t,n,i){var o=e.call(this,t,n,i)||this;return o._selectionIsEmpty=n.isEmpty(),o}return r(t,e),t.prototype._compute=function(e,t,n,i){return o.timeout(250,i).then((function(){if(!t.isEmpty())return[];var i=e.getWordAtPosition(t.getPosition());return i?e.findMatches(i.word,!0,!1,!0,n,!1).map((function(e){return{range:e.range,kind:m.DocumentHighlightKind.Text}})):[]}))},t.prototype.isValid=function(t,n,i){var o=n.isEmpty()\n;return this._selectionIsEmpty===o&&e.prototype.isValid.call(this,t,n,i)},t}(x);u.registerModelAndPositionCommand(\"_executeDocumentHighlights\",(function(e,t){return N(e,t,s.CancellationToken.None)}));var k=function(){function e(e,t){var n=this;this.toUnhook=new l.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this._hasWordHighlights=D.bindTo(t),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(61),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition((function(e){n._ignorePositionChangeEvent||n.occurrencesHighlight&&n._onPositionChanged(e)}))),this.toUnhook.add(e.onDidChangeModelContent((function(e){n._stopAll()}))),this.toUnhook.add(e.onDidChangeConfiguration((function(e){var t=n.editor.getOption(61);n.occurrencesHighlight!==t&&(n.occurrencesHighlight=t,n._stopAll())}))),this._decorationIds=[],\nthis.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return e.prototype.hasDecorations=function(){return this._decorationIds.length>0},e.prototype.restore=function(){this.occurrencesHighlight&&this._run()},e.prototype._getSortedHighlights=function(){var e=this;return i.coalesce(this._decorationIds.map((function(t){return e.model.getDecorationRange(t)})).sort(d.Range.compareRangesUsingStarts))},e.prototype.moveNext=function(){var e=this,t=this._getSortedHighlights(),n=t[(i.firstIndex(t,(function(t){return t.containsPosition(e.editor.getPosition())}))+1)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype.moveBack=function(){var e=this,t=this._getSortedHighlights(),n=t[(i.firstIndex(t,(function(t){return t.containsPosition(e.editor.getPosition())\n}))-1+t.length)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype._removeDecorations=function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))},e.prototype._stopAll=function(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)},e.prototype._onPositionChanged=function(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()},e.prototype._run=function(){var e=this,t=this.editor.getSelection();if(t.startLineNumber===t.endLineNumber){\nvar n=t.startLineNumber,i=t.startColumn,o=t.endColumn,r=this.model.getWordAtPosition({lineNumber:n,column:i});if(!r||r.startColumn>i||r.endColumn<o)this._stopAll();else{var s,l,u,d=this.workerRequest&&this.workerRequest.isValid(this.model,t,this._decorationIds);if(this.lastCursorPositionChangeTime=(new Date).getTime(),d)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var c=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=(s=this.model,l=this.editor.getSelection(),u=this.editor.getOption(96),m.DocumentHighlightProviderRegistry.has(s)?new I(s,l,u):new M(s,l,u)),this.workerRequest.result.then((function(t){c===e.workerRequestTokenId&&(e.workerRequestCompleted=!0,e.workerRequestValue=t||[],e._beginRenderDecorations())}),a.onUnexpectedError)}}}else this._stopAll()},e.prototype._beginRenderDecorations=function(){\nvar e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((function(){e.renderDecorations()}),n-t)},e.prototype.renderDecorations=function(){this.renderDecorationsTimer=-1;for(var t=[],n=0,i=this.workerRequestValue.length;n<i;n++){var o=this.workerRequestValue[n];t.push({range:o.range,options:e._getDecorationOptions(o.kind)})}this._decorationIds=this.editor.deltaDecorations(this._decorationIds,t),this._hasWordHighlights.set(this.hasDecorations())},e._getDecorationOptions=function(e){return e===m.DocumentHighlightKind.Write?this._WRITE_OPTIONS:e===m.DocumentHighlightKind.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS},e.prototype.dispose=function(){this._stopAll(),this.toUnhook.dispose()},e._WRITE_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"wordHighlightStrong\",overviewRuler:{color:y.themeColorFromId(L),position:p.OverviewRulerLane.Center}}),\ne._TEXT_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\",overviewRuler:{color:y.themeColorFromId(_.overviewRulerSelectionHighlightForeground),position:p.OverviewRulerLane.Center}}),e._REGULAR_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"wordHighlight\",overviewRuler:{color:y.themeColorFromId(E),position:p.OverviewRulerLane.Center}}),e}(),T=function(e){function t(t,n){var i=e.call(this)||this;i.wordHighligher=null;var o=function(){t.hasModel()&&(i.wordHighligher=new k(t,n))};return i._register(t.onDidChangeModel((function(e){i.wordHighligher&&(i.wordHighligher.dispose(),i.wordHighligher=null),o()}))),o(),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.saveViewState=function(){return!(!this.wordHighligher||!this.wordHighligher.hasDecorations())},t.prototype.moveNext=function(){this.wordHighligher&&this.wordHighligher.moveNext()},t.prototype.moveBack=function(){this.wordHighligher&&this.wordHighligher.moveBack()},\nt.prototype.restoreViewState=function(e){this.wordHighligher&&e&&this.wordHighligher.restore()},t.prototype.dispose=function(){this.wordHighligher&&(this.wordHighligher.dispose(),this.wordHighligher=null),e.prototype.dispose.call(this)},t.ID=\"editor.contrib.wordHighlighter\",t=h([g(1,v.IContextKeyService)],t)}(l.Disposable),R=function(e){function t(t,n){var i=e.call(this,n)||this;return i._isNext=t,i}return r(t,e),t.prototype.run=function(e,t){var n=T.get(t);n&&(this._isNext?n.moveNext():n.moveBack())},t}(u.EditorAction),O=function(e){function t(){return e.call(this,!0,{id:\"editor.action.wordHighlight.next\",label:n.localize(6,null),alias:\"Go to Next Symbol Highlight\",precondition:D,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:65,weight:100}})||this}return r(t,e),t}(R),P=function(e){function t(){return e.call(this,!1,{id:\"editor.action.wordHighlight.prev\",label:n.localize(7,null),alias:\"Go to Previous Symbol Highlight\",precondition:D,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1089,\nweight:100}})||this}return r(t,e),t}(R),A=function(e){function t(){return e.call(this,{id:\"editor.action.wordHighlight.trigger\",label:n.localize(8,null),alias:\"Trigger Symbol Highlight\",precondition:D.toNegated(),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:0,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=T.get(t);i&&i.restoreViewState(!0)},t}(u.EditorAction);u.registerEditorContribution(T.ID,T),u.registerEditorAction(O),u.registerEditorAction(P),u.registerEditorAction(A),y.registerThemingParticipant((function(e,t){var n=e.getColor(_.editorSelectionHighlight);n&&(t.addRule(\".monaco-editor .focused .selectionHighlight { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .selectionHighlight { background-color: \"+n.transparent(.5)+\"; }\"));var i=e.getColor(C);i&&t.addRule(\".monaco-editor .wordHighlight { background-color: \"+i+\"; }\");var o=e.getColor(b);o&&t.addRule(\".monaco-editor .wordHighlightStrong { background-color: \"+o+\"; }\")\n;var r=e.getColor(_.editorSelectionHighlightBorder);r&&t.addRule(\".monaco-editor .selectionHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+r+\"; box-sizing: border-box; }\");var s=e.getColor(S);s&&t.addRule(\".monaco-editor .wordHighlight { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+s+\"; box-sizing: border-box; }\");var a=e.getColor(w);a&&t.addRule(\".monaco-editor .wordHighlightStrong { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+a+\"; box-sizing: border-box; }\")}))})),define(n[587],i([0,1,24,6,28,134,50,47,2,16,5,25,12,23,225,18,11,34,51,20,14,59,325]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=new _.RawContextKey(\"accessibilityHelpWidgetVisible\",!1),D=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,i._widget=i._register(n.createInstance(N,i._editor)),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.show=function(){this._widget.show()},\nt.prototype.hide=function(){this._widget.hide()},t.ID=\"editor.contrib.accessibilityHelpController\",t=h([g(1,y.IInstantiationService)],t)}(u.Disposable);var N=function(e){function t(t,n,r,s){var l=e.call(this)||this;return l._contextKeyService=n,l._keybindingService=r,l._openerService=s,l._editor=t,l._isVisibleKey=L.bindTo(l._contextKeyService),l._domNode=o.createFastDomNode(document.createElement(\"div\")),l._domNode.setClassName(\"accessibilityHelpWidget\"),l._domNode.setDisplay(\"none\"),l._domNode.setAttribute(\"role\",\"dialog\"),l._domNode.setAttribute(\"aria-hidden\",\"true\"),l._contentDomNode=o.createFastDomNode(document.createElement(\"div\")),l._contentDomNode.setAttribute(\"role\",\"document\"),l._domNode.appendChild(l._contentDomNode),l._isVisible=!1,l._register(l._editor.onDidLayoutChange((function(){l._isVisible&&l._layout()}))),l._register(i.addStandardDisposableListener(l._contentDomNode.domNode,\"keydown\",(function(e){if(l._isVisible&&(e.equals(2083)&&(a.alert(E.AccessibilityHelpNLS.emergencyConfOn),\nl._editor.updateOptions({accessibilitySupport:\"on\"}),i.clearNode(l._contentDomNode.domNode),l._buildContent(),l._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){a.alert(E.AccessibilityHelpNLS.openingDocs);var t=l._editor.getRawOptions().accessibilityHelpUrl;void 0===t&&(t=\"https://go.microsoft.com/fwlink/?linkid=852450\"),l._openerService.open(p.URI.parse(t)),e.preventDefault(),e.stopPropagation()}}))),l.onblur(l._contentDomNode.domNode,(function(){l.hide()})),l._editor.addOverlayWidget(l),l}return r(t,e),t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.getPosition=function(){return{preference:null}},t.prototype.show=function(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay(\"block\"),this._domNode.setAttribute(\"aria-hidden\",\"false\"),\nthis._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())},t.prototype._descriptionForCommand=function(e,t,n){var i=this._keybindingService.lookupKeybinding(e);return i?c.format(t,i.getAriaLabel()):c.format(n,e)},t.prototype._buildContent=function(){var e=this._editor.getOptions(),t=this._editor.getSelections(),n=0;if(t){var i=this._editor.getModel();i&&t.forEach((function(e){n+=i.getValueLengthInRange(e)}))}var o=function(e,t){return e&&0!==e.length?1===e.length?t?c.format(E.AccessibilityHelpNLS.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):c.format(E.AccessibilityHelpNLS.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?c.format(E.AccessibilityHelpNLS.multiSelectionRange,e.length,t):e.length>0?c.format(E.AccessibilityHelpNLS.multiSelection,e.length):\"\":E.AccessibilityHelpNLS.noSelection}(t,n)\n;e.get(45)?e.get(68)?o+=E.AccessibilityHelpNLS.readonlyDiffEditor:o+=E.AccessibilityHelpNLS.editableDiffEditor:e.get(68)?o+=E.AccessibilityHelpNLS.readonlyEditor:o+=E.AccessibilityHelpNLS.editableEditor;var r=d.isMacintosh?E.AccessibilityHelpNLS.changeConfigToOnMac:E.AccessibilityHelpNLS.changeConfigToOnWinLinux;switch(e.get(2)){case 0:o+=\"\\n\\n - \"+r;break;case 2:o+=\"\\n\\n - \"+E.AccessibilityHelpNLS.auto_on;break;case 1:o+=\"\\n\\n - \"+E.AccessibilityHelpNLS.auto_off,o+=\" \"+r}e.get(106)?o+=\"\\n\\n - \"+this._descriptionForCommand(v.ToggleTabFocusModeAction.ID,E.AccessibilityHelpNLS.tabFocusModeOnMsg,E.AccessibilityHelpNLS.tabFocusModeOnMsgNoKb):o+=\"\\n\\n - \"+this._descriptionForCommand(v.ToggleTabFocusModeAction.ID,E.AccessibilityHelpNLS.tabFocusModeOffMsg,E.AccessibilityHelpNLS.tabFocusModeOffMsgNoKb),o+=\"\\n\\n - \"+(d.isMacintosh?E.AccessibilityHelpNLS.openDocMac:E.AccessibilityHelpNLS.openDocWinLinux),o+=\"\\n\\n\"+E.AccessibilityHelpNLS.outroMsg,this._contentDomNode.domNode.appendChild(s.renderFormattedText(o)),\nthis._contentDomNode.domNode.setAttribute(\"aria-label\",o)},t.prototype.hide=function(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay(\"none\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._contentDomNode.domNode.tabIndex=-1,i.clearNode(this._contentDomNode.domNode),this._editor.focus())},t.prototype._layout=function(){var e=this._editor.getLayoutInfo(),n=Math.max(5,Math.min(t.WIDTH,e.width-40)),i=Math.max(5,Math.min(t.HEIGHT,e.height-40));this._domNode.setWidth(n),this._domNode.setHeight(i);var o=Math.round((e.height-i)/2);this._domNode.setTop(o);var r=Math.round((e.width-n)/2);this._domNode.setLeft(r)},t.ID=\"editor.contrib.accessibilityHelpWidget\",t.WIDTH=500,t.HEIGHT=300,t=h([g(1,_.IContextKeyService),g(2,C.IKeybindingService),g(3,b.IOpenerService)],t)}(l.Widget),x=function(e){function t(){return e.call(this,{id:\"editor.action.showAccessibilityHelp\",label:E.AccessibilityHelpNLS.showAccessibilityHelpAction,alias:\"Show Accessibility Help\",precondition:void 0,\nkbOpts:{kbExpr:m.EditorContextKeys.focus,primary:n.isIE?2107:571,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);n&&n.show()},t}(f.EditorAction);f.registerEditorContribution(D.ID,D),f.registerEditorAction(x);var I=f.EditorCommand.bindToContribution(D.get);f.registerEditorCommand(new I({id:\"closeAccessibilityHelp\",precondition:L,handler:function(e){return e.hide()},kbOpts:{weight:200,kbExpr:m.EditorContextKeys.focus,primary:9,secondary:[1033]}})),w.registerThemingParticipant((function(e,t){var n=e.getColor(S.editorWidgetBackground);n&&t.addRule(\".monaco-editor .accessibilityHelpWidget { background-color: \"+n+\"; }\");var i=e.getColor(S.editorWidgetForeground);i&&t.addRule(\".monaco-editor .accessibilityHelpWidget { color: \"+i+\"; }\");var o=e.getColor(S.widgetShadow);o&&t.addRule(\".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px \"+o+\"; }\");var r=e.getColor(S.contrastBorder);r&&t.addRule(\".monaco-editor .accessibilityHelpWidget { border: 2px solid \"+r+\"; }\")}))})),\ndefine(n[588],i([0,1,27,2,5,12,17,63,71,94,20,14,59,327]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(e){function t(t,n,i){var o=e.call(this)||this;return o._editor=t,o._modeService=i,o._widget=null,o._register(o._editor.onDidChangeModel((function(e){return o.stop()}))),o._register(o._editor.onDidChangeModelLanguage((function(e){return o.stop()}))),o._register(a.TokenizationRegistry.onDidChange((function(e){return o.stop()}))),o}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this.stop(),e.prototype.dispose.call(this)},t.prototype.launch=function(){this._widget||this._editor.hasModel()&&(this._widget=new _(this._editor,this._modeService))},t.prototype.stop=function(){this._widget&&(this._widget.dispose(),this._widget=null)},t.ID=\"editor.contrib.inspectTokens\",t=h([g(1,d.IStandaloneThemeService),g(2,u.IModeService)],t)}(i.Disposable),v=function(e){function t(){return e.call(this,{\nid:\"editor.action.inspectTokens\",label:f.InspectTokensNLS.inspectTokensAction,alias:\"Developer: Inspect Tokens\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=m.get(t);n&&n.launch()},t}(s.EditorAction);var _=function(e){function t(t,n){var i,o=e.call(this)||this;return o.allowEditorOverflow=!0,o._editor=t,o._modeService=n,o._model=o._editor.getModel(),o._domNode=document.createElement(\"div\"),o._domNode.className=\"tokens-inspect-widget\",o._tokenizationSupport=(i=o._model.getLanguageIdentifier(),a.TokenizationRegistry.get(i.language)||{getInitialState:function(){return l.NULL_STATE},tokenize:function(e,t,n){return l.nullTokenize(i.language,e,t,n)},tokenize2:function(e,t,n){return l.nullTokenize2(i.id,e,t,n)}}),o._compute(o._editor.getPosition()),o._register(o._editor.onDidChangeCursorPosition((function(e){return o._compute(o._editor.getPosition())}))),o._editor.addContentWidget(o),o}return r(t,e),t.prototype.dispose=function(){this._editor.removeContentWidget(this),\ne.prototype.dispose.call(this)},t.prototype.getId=function(){return t._ID},t.prototype._compute=function(e){for(var t=this._getTokensAtLine(e.lineNumber),i=0,r=t.tokens1.length-1;r>=0;r--){var s=t.tokens1[r];if(e.column-1>=s.offset){i=r;break}}var a=0;for(r=t.tokens2.length>>>1;r>=0;r--)if(e.column-1>=t.tokens2[r<<1]){a=r;break}var l=\"\",u=this._model.getLineContent(e.lineNumber),d=\"\";if(i<t.tokens1.length){var c=t.tokens1[i].offset,h=i+1<t.tokens1.length?t.tokens1[i+1].offset:u.length;d=u.substring(c,h)}l+='<h2 class=\"tm-token\">'+function(e){for(var t=\"\",n=0,i=e.length;n<i;n++){var o=e.charCodeAt(n);switch(o){case 9:t+=\"&rarr;\";break;case 32:t+=\"&middot;\";break;case 60:t+=\"&lt;\";break;case 62:t+=\"&gt;\";break;case 38:t+=\"&amp;\";break;default:t+=String.fromCharCode(o)}}return t}(d)+'<span class=\"tm-token-length\">('+d.length+\" \"+(1===d.length?\"char\":\"chars\")+\")</span></h2>\",l+='<hr class=\"tokens-inspect-separator\" style=\"clear:both\"/>';var p=this._decodeMetadata(t.tokens2[1+(a<<1)])\n;l+='<table class=\"tm-metadata-table\"><tbody>',l+='<tr><td class=\"tm-metadata-key\">language</td><td class=\"tm-metadata-value\">'+o.escape(p.languageIdentifier.language)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">token type</td><td class=\"tm-metadata-value\">'+this._tokenTypeToString(p.tokenType)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">font style</td><td class=\"tm-metadata-value\">'+this._fontStyleToString(p.fontStyle)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">foreground</td><td class=\"tm-metadata-value\">'+n.Color.Format.CSS.formatHex(p.foreground)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">background</td><td class=\"tm-metadata-value\">'+n.Color.Format.CSS.formatHex(p.background)+\"</td>\",l+=\"</tbody></table>\",l+='<hr class=\"tokens-inspect-separator\"/>',i<t.tokens1.length&&(l+='<span class=\"tm-token-type\">'+o.escape(t.tokens1[i].type)+\"</span>\"),this._domNode.innerHTML=l,this._editor.layoutContentWidget(this)},t.prototype._decodeMetadata=function(e){\nvar t=a.TokenizationRegistry.getColorMap(),n=a.TokenMetadata.getLanguageId(e),i=a.TokenMetadata.getTokenType(e),o=a.TokenMetadata.getFontStyle(e),r=a.TokenMetadata.getForeground(e),s=a.TokenMetadata.getBackground(e);return{languageIdentifier:this._modeService.getLanguageIdentifier(n),tokenType:i,fontStyle:o,foreground:t[r],background:t[s]}},t.prototype._tokenTypeToString=function(e){switch(e){case 0:return\"Other\";case 1:return\"Comment\";case 2:return\"String\";case 4:return\"RegEx\"}return\"??\"},t.prototype._fontStyleToString=function(e){var t=\"\";return 1&e&&(t+=\"italic \"),2&e&&(t+=\"bold \"),4&e&&(t+=\"underline \"),0===t.length&&(t=\"---\"),t},t.prototype._getTokensAtLine=function(e){var t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),t,0),i=this._tokenizationSupport.tokenize2(this._model.getLineContent(e),t,0);return{startState:t,tokens1:n.tokens,tokens2:i.tokens,endState:n.endState}},t.prototype._getStateBeforeLine=function(e){\nfor(var t=this._tokenizationSupport.getInitialState(),n=1;n<e;n++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(n),t,0).endState}return t},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{position:this._editor.getPosition(),preference:[2,1]}},t._ID=\"editor.contrib.inspectTokensWidget\",t}(i.Disposable);s.registerEditorContribution(m.ID,m),s.registerEditorAction(v),p.registerThemingParticipant((function(e,t){var n=e.getColor(c.editorHoverBorder);if(n){var i=e.type===p.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .tokens-inspect-widget { border: \"+i+\"px solid \"+n+\"; }\"),t.addRule(\".monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: \"+n+\"; }\")}var o=e.getColor(c.editorHoverBackground);o&&t.addRule(\".monaco-editor .tokens-inspect-widget { background-color: \"+o+\"; }\");var r=e.getColor(c.editorHoverForeground);r&&t.addRule(\".monaco-editor .tokens-inspect-widget { color: \"+r+\"; }\")}))})),\ndefine(n[169],i([0,1,12,30,546,14,328]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this.themeService=t,this.widget=null,this.rangeHighlightDecorationId=null,this.lastKnownEditorSelection=null,this.editor=e}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this.widget&&(this.widget.destroy(),this.widget=null)},e.prototype.run=function(e){var t=this;this.widget&&(this.widget.destroy(),this.widget=null);var n=function(e){t.clearDecorations(),e&&t.lastKnownEditorSelection&&(t.editor.setSelection(t.lastKnownEditorSelection),t.editor.revealRangeInCenterIfOutsideViewport(t.lastKnownEditorSelection,0)),t.lastKnownEditorSelection=null,document.activeElement!==document.body&&e||t.editor.focus()};this.widget=new o.QuickOpenEditorWidget(this.editor,(function(){return n(!1)}),(function(){return n(!0)}),(function(n){t.widget.setInput(e.getModel(n),e.getAutoFocus(n))}),{inputAriaLabel:e.inputAriaLabel\n},this.themeService),this.lastKnownEditorSelection||(this.lastKnownEditorSelection=this.editor.getSelection()),this.widget.show(\"\")},e.prototype.decorateLine=function(t,n){var i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId),this.rangeHighlightDecorationId=null);var o=[{range:t,options:e._RANGE_HIGHLIGHT_DECORATION}],r=n.deltaDecorations(i,o);this.rangeHighlightDecorationId=r[0]},e.prototype.clearDecorations=function(){this.rangeHighlightDecorationId&&(this.editor.deltaDecorations([this.rangeHighlightDecorationId],[]),this.rangeHighlightDecorationId=null)},e.ID=\"editor.controller.quickOpenController\",e._RANGE_HIGHLIGHT_DECORATION=i.ModelDecorationOptions.register({className:\"rangeHighlight\",isWholeLine:!0}),e=h([g(1,s.IThemeService)],e)}();t.QuickOpenController=a;var l=function(e){function t(t,n){var i=e.call(this,n)||this;return i._inputAriaLabel=t,i}return r(t,e),t.prototype.getController=function(e){return a.get(e)},t.prototype._show=function(e,t){e.run({\ninputAriaLabel:this._inputAriaLabel,getModel:function(e){return t.getModel(e)},getAutoFocus:function(e){return t.getAutoFocus(e)}})},t}(n.EditorAction);t.BaseEditorQuickOpenAction=l,n.registerEditorContribution(a.ID,a)})),define(n[589],i([0,1,5,155,108,12,13,3,23,169,59,329]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(e){function t(t,n,i){var o=e.call(this)||this;return o.editor=n,o.decorator=i,o.parseResult=o.parseInput(t),o}return r(t,e),t.prototype.parseInput=function(e){var t,i,r=e.split(\",\").map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)}));if(t=0===r.length?new a.Position(-1,-1):1===r.length?new a.Position(r[0],1):new a.Position(r[0],r[1]),o.isCodeEditor(this.editor))i=this.editor.getModel();else{var s=this.editor.getModel();i=s?s.modified:null}var l=!!i&&i.validatePosition(t).equals(t);return{position:t,isValid:l,\nlabel:l?t.column&&t.column>1?n.format(c.GoToLineNLS.gotoLineLabelValidLineAndColumn,t.lineNumber,t.column):n.format(c.GoToLineNLS.gotoLineLabelValidLine,t.lineNumber):t.lineNumber<1||t.lineNumber>(i?i.getLineCount():0)?n.format(c.GoToLineNLS.gotoLineLabelEmptyWithLineLimit,i?i.getLineCount():0):n.format(c.GoToLineNLS.gotoLineLabelEmptyWithLineAndColumnLimit,i?i.getLineMaxColumn(t.lineNumber):0)}},t.prototype.getLabel=function(){return this.parseResult.label},t.prototype.getAriaLabel=function(){var e=this.editor.getPosition(),t=e?e.lineNumber:0;return n.format(c.GoToLineNLS.gotoLineAriaLabel,t,this.parseResult.label)},t.prototype.run=function(e,t){return 1===e?this.runOpen():this.runPreview()},t.prototype.runOpen=function(){if(!this.parseResult.isValid)return!1;var e=this.toSelection();return this.editor.setSelection(e),this.editor.revealRangeInCenter(e,0),this.editor.focus(),!0},t.prototype.runPreview=function(){if(!this.parseResult.isValid)return this.decorator.clearDecorations(),!1;var e=this.toSelection()\n;return this.editor.revealRangeInCenter(e,0),this.decorator.decorateLine(e,this.editor),!1},t.prototype.toSelection=function(){return new l.Range(this.parseResult.position.lineNumber,this.parseResult.position.column,this.parseResult.position.lineNumber,this.parseResult.position.column)},t}(i.QuickOpenEntry);t.GotoLineEntry=h;var p=function(e){function t(){return e.call(this,c.GoToLineNLS.gotoLineActionInput,{id:\"editor.action.gotoLine\",label:c.GoToLineNLS.gotoLineActionLabel,alias:\"Go to Line...\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=this;this._show(this.getController(t),{getModel:function(e){return new i.QuickOpenModel([new h(e,t,n.getController(t))])},getAutoFocus:function(e){return{autoFocusFirstEntry:e.length>0}}})},t}(d.BaseEditorQuickOpenAction);t.GotoLineAction=p,s.registerEditorAction(p)})),define(n[590],i([0,1,5,24,10,61,155,12,23,169,34,59]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,i,o,r){var s=e.call(this)||this;return s.key=t,s.keyAriaLabel=n,s.setHighlights(i),s.action=o,s.editor=r,s}return r(t,e),t.prototype.getLabel=function(){return this.action.label},t.prototype.getAriaLabel=function(){return this.keyAriaLabel?n.format(h.QuickCommandNLS.ariaLabelEntryWithKey,this.getLabel(),this.keyAriaLabel):n.format(h.QuickCommandNLS.ariaLabelEntry,this.getLabel())},t.prototype.getGroupLabel=function(){return this.key},t.prototype.run=function(e,t){var n=this;return 1===e&&(setTimeout((function(){n.editor.focus();try{(n.action.run()||Promise.resolve()).then(void 0,o.onUnexpectedError)}catch(e){o.onUnexpectedError(e)}}),50),!0)},t}(a.QuickOpenEntryGroup);t.EditorActionCommandEntry=p;var g=function(e){function t(){return e.call(this,h.QuickCommandNLS.quickCommandActionInput,{id:\"editor.action.quickCommand\",label:h.QuickCommandNLS.quickCommandActionLabel,alias:\"Command Palette\",precondition:void 0,\nkbOpts:{kbExpr:u.EditorContextKeys.focus,primary:i.isIE?571:59,weight:100},contextMenuOpts:{group:\"z_commands\",order:1}})||this}return r(t,e),t.prototype.run=function(e,t){var n=this,i=e.get(c.IKeybindingService);this._show(this.getController(t),{getModel:function(e){return new a.QuickOpenModel(n._editorActionsToEntries(i,t,e))},getAutoFocus:function(e){return{autoFocusFirstEntry:!0,autoFocusPrefixMatch:e}}})},t.prototype._sort=function(e,t){var n=(e.getLabel()||\"\").toLowerCase(),i=(t.getLabel()||\"\").toLowerCase();return n.localeCompare(i)},t.prototype._editorActionsToEntries=function(e,t,n){for(var i=[],o=0,r=t.getSupportedActions();o<r.length;o++){var a=r[o],l=e.lookupKeybinding(a.id);if(a.label){var u=s.matchesFuzzy(n,a.label);u&&i.push(new p(l&&l.getLabel()||\"\",l&&l.getAriaLabel()||\"\",u,a,t))}}return i=i.sort(this._sort)},t}(d.BaseEditorQuickOpenAction);t.QuickCommandAction=g,l.registerEditorAction(g)})),\ndefine(n[591],i([0,1,26,61,5,155,12,3,23,17,496,169,59,330,183,231]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(e){function t(t,n,i,o,r,s,a){var l=e.call(this)||this;return l.name=t,l.type=n,l.description=i,l.range=o,l.setHighlights(r),l.editor=s,l.decorator=a,l}return r(t,e),t.prototype.getLabel=function(){return this.name},t.prototype.getAriaLabel=function(){return o.format(p.QuickOutlineNLS.entryAriaLabel,this.name)},t.prototype.getIcon=function(){return this.type},t.prototype.getDescription=function(){return this.description},t.prototype.getType=function(){return this.type},t.prototype.getRange=function(){return this.range},t.prototype.run=function(e,t){return 1===e?this.runOpen(t):this.runPreview()},t.prototype.runOpen=function(e){var t=this.toSelection();return this.editor.setSelection(t),this.editor.revealRangeInCenter(t,0),this.editor.focus(),!0},t.prototype.runPreview=function(){var e=this.toSelection()\n;return this.editor.revealRangeInCenter(e,0),this.decorator.decorateLine(this.range,this.editor),!1},t.prototype.toSelection=function(){return new l.Range(this.range.startLineNumber,this.range.startColumn||1,this.range.startLineNumber,this.range.startColumn||1)},t}(s.QuickOpenEntryGroup);t.SymbolEntry=g;var f=function(e){function t(){return e.call(this,p.QuickOutlineNLS.quickOutlineActionInput,{id:\"editor.action.quickOutline\",label:p.QuickOutlineNLS.quickOutlineActionLabel,alias:\"Go to Symbol...\",precondition:u.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:\"navigation\",order:3}})||this}return r(t,e),t.prototype.run=function(e,t){var i=this;if(t.hasModel()){var o=t.getModel();if(d.DocumentSymbolProviderRegistry.has(o))return c.getDocumentSymbols(o,!0,n.CancellationToken.None).then((function(e){0!==e.length&&i._run(t,e)}))}},t.prototype._run=function(e,t){var n=this;this._show(this.getController(e),{getModel:function(i){\nreturn new s.QuickOpenModel(n.toQuickOpenEntries(e,t,i))},getAutoFocus:function(e){return 0===e.indexOf(\":\")&&(e=e.substr(\":\".length)),{autoFocusPrefixMatch:e,autoFocusFirstEntry:!!e}}})},t.prototype.symbolEntry=function(e,t,n,i,o,r,s){return new g(e,t,n,l.Range.lift(i),o,r,s)},t.prototype.toQuickOpenEntries=function(e,t,n){var r=this.getController(e),s=[],a=n;0===n.indexOf(\":\")&&(a=a.substr(\":\".length));for(var l=0,u=t;l<u.length;l++){var c=u[l],h=o.trim(c.name),g=i.matchesFuzzy(a,h);if(g){var f=void 0;c.containerName&&(f=c.containerName),s.push(this.symbolEntry(h,d.SymbolKinds.toCssClassName(c.kind),f,c.range,g,e,r))}}if(n&&(s=0===n.indexOf(\":\")?s.sort(this.sortScoped.bind(this,n.toLowerCase())):s.sort(this.sortNormal.bind(this,n.toLowerCase()))),s.length>0&&0===n.indexOf(\":\")){for(var m=null,v=null,_=0,y=0;y<s.length;y++){var C=s[y];m!==C.getType()?(v&&v.setGroupLabel(this.typeToLabel(m||\"\",_)),m=C.getType(),v=C,_=1,C.setShowBorder(y>0)):_++}v&&v.setGroupLabel(this.typeToLabel(m||\"\",_))\n}else s.length>0&&s[0].setGroupLabel(o.format(p.QuickOutlineNLS._symbols_,s.length));return s},t.prototype.typeToLabel=function(e,t){switch(e){case\"module\":return o.format(p.QuickOutlineNLS._modules_,t);case\"class\":return o.format(p.QuickOutlineNLS._class_,t);case\"interface\":return o.format(p.QuickOutlineNLS._interface_,t);case\"method\":return o.format(p.QuickOutlineNLS._method_,t);case\"function\":return o.format(p.QuickOutlineNLS._function_,t);case\"property\":return o.format(p.QuickOutlineNLS._property_,t);case\"variable\":return o.format(p.QuickOutlineNLS._variable_,t);case\"var\":return o.format(p.QuickOutlineNLS._variable2_,t);case\"constructor\":return o.format(p.QuickOutlineNLS._constructor_,t);case\"call\":return o.format(p.QuickOutlineNLS._call_,t)}return e},t.prototype.sortNormal=function(e,t,n){var i=t.getLabel().toLowerCase(),o=n.getLabel().toLowerCase(),r=i.localeCompare(o);if(0!==r)return r;var s=t.getRange(),a=n.getRange();return s.startLineNumber-a.startLineNumber},t.prototype.sortScoped=function(e,t,n){\ne=e.substr(\":\".length);var i=t.getType(),o=n.getType(),r=i.localeCompare(o);if(0!==r)return r;if(e){var s=t.getLabel().toLowerCase(),a=n.getLabel().toLowerCase(),l=s.localeCompare(a);if(0!==l)return l}var u=t.getRange(),d=n.getRange();return u.startLineNumber-d.startLineNumber},t}(h.BaseEditorQuickOpenAction);t.QuickOutlineAction=f,a.registerEditorAction(f)})),define(n[592],i([0,1,6,46,548]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.getActiveCodeEditor=function(){return null},t.prototype.openCodeEditor=function(e,t,n){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)},t.prototype.doOpenEditor=function(e,t){if(!this.findModel(e,t.resource)){if(t.resource){var o=t.resource.scheme;if(o===i.Schemas.http||o===i.Schemas.https)return n.windowOpenNoOpener(t.resource.toString()),e}return null}var r=t.options?t.options.selection:null\n;if(r)if(\"number\"==typeof r.endLineNumber&&\"number\"==typeof r.endColumn)e.setSelection(r),e.revealRangeInCenter(r,1);else{var s={lineNumber:r.startLineNumber,column:r.startColumn};e.setPosition(s),e.revealPositionInCenter(s,1)}return e},t.prototype.findModel=function(e,t){var n=e.getModel();return n&&n.uri.toString()!==t.toString()?null:n},t}(o.CodeEditorServiceImpl);t.StandaloneCodeEditorServiceImpl=s})),define(n[593],i([0,1,44,20]),(function(e,t,n,i){\"use strict\";var o,r,s;Object.defineProperty(t,\"__esModule\",{value:!0}),t.vs={base:\"vs\",inherit:!1,rules:[{token:\"\",foreground:\"000000\",background:\"fffffe\"},{token:\"invalid\",foreground:\"cd3131\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"001188\"},{token:\"variable.predefined\",foreground:\"4864AA\"},{token:\"constant\",foreground:\"dd0000\"},{token:\"comment\",foreground:\"008000\"},{token:\"number\",foreground:\"098658\"},{token:\"number.hex\",foreground:\"3030c0\"},{token:\"regexp\",foreground:\"800000\"},{\ntoken:\"annotation\",foreground:\"808080\"},{token:\"type\",foreground:\"008080\"},{token:\"delimiter\",foreground:\"000000\"},{token:\"delimiter.html\",foreground:\"383838\"},{token:\"delimiter.xml\",foreground:\"0000FF\"},{token:\"tag\",foreground:\"800000\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"800000\"},{token:\"metatag\",foreground:\"e00000\"},{token:\"metatag.content.html\",foreground:\"FF0000\"},{token:\"metatag.html\",foreground:\"808080\"},{token:\"metatag.xml\",foreground:\"808080\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"863B00\"},{token:\"string.key.json\",foreground:\"A31515\"},{token:\"string.value.json\",foreground:\"0451A5\"},{token:\"attribute.name\",foreground:\"FF0000\"},{token:\"attribute.value\",foreground:\"0451A5\"},{token:\"attribute.value.number\",foreground:\"098658\"},{token:\"attribute.value.unit\",foreground:\"098658\"},{token:\"attribute.value.html\",foreground:\"0000FF\"},{token:\"attribute.value.xml\",foreground:\"0000FF\"},{token:\"string\",\nforeground:\"A31515\"},{token:\"string.html\",foreground:\"0000FF\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"string.yaml\",foreground:\"0451A5\"},{token:\"keyword\",foreground:\"0000FF\"},{token:\"keyword.json\",foreground:\"0451A5\"},{token:\"keyword.flow\",foreground:\"AF00DB\"},{token:\"keyword.flow.scss\",foreground:\"0000FF\"},{token:\"operator.scss\",foreground:\"666666\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"666666\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(o={},o[i.editorBackground]=\"#FFFFFE\",o[i.editorForeground]=\"#000000\",o[i.editorInactiveSelection]=\"#E5EBF1\",o[n.editorIndentGuides]=\"#D3D3D3\",o[n.editorActiveIndentGuides]=\"#939393\",o[i.editorSelectionHighlight]=\"#ADD6FF4D\",o)},t.vs_dark={base:\"vs-dark\",inherit:!1,rules:[{token:\"\",foreground:\"D4D4D4\",background:\"1E1E1E\"},{token:\"invalid\",foreground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"74B0DF\"},{token:\"variable.predefined\",foreground:\"4864AA\"\n},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"B5CEA8\"},{token:\"number.hex\",foreground:\"5BB498\"},{token:\"regexp\",foreground:\"B46695\"},{token:\"annotation\",foreground:\"cc6666\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"DCDCDC\"},{token:\"delimiter.html\",foreground:\"808080\"},{token:\"delimiter.xml\",foreground:\"808080\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"A79873\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"DD6A6F\"},{token:\"metatag.content.html\",foreground:\"9CDCFE\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key.json\",foreground:\"9CDCFE\"},{token:\"string.value.json\",foreground:\"CE9178\"},{token:\"attribute.name\",\nforeground:\"9CDCFE\"},{token:\"attribute.value\",foreground:\"CE9178\"},{token:\"attribute.value.number.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.unit.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.hex.css\",foreground:\"D4D4D4\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"keyword.json\",foreground:\"CE9178\"},{token:\"keyword.flow.scss\",foreground:\"569CD6\"},{token:\"operator.scss\",foreground:\"909090\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(r={},r[i.editorBackground]=\"#1E1E1E\",r[i.editorForeground]=\"#D4D4D4\",r[i.editorInactiveSelection]=\"#3A3D41\",r[n.editorIndentGuides]=\"#404040\",r[n.editorActiveIndentGuides]=\"#707070\",r[i.editorSelectionHighlight]=\"#ADD6FF26\",r)},t.hc_black={base:\"hc-black\",inherit:!1,rules:[{token:\"\",foreground:\"FFFFFF\",background:\"000000\"},{token:\"invalid\",\nforeground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"1AEBFF\"},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"FFFFFF\"},{token:\"regexp\",foreground:\"C0C0C0\"},{token:\"annotation\",foreground:\"569CD6\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"FFFF00\"},{token:\"delimiter.html\",foreground:\"FFFF00\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta\",foreground:\"D4D4D4\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"569CD6\"},{token:\"metatag.content.html\",foreground:\"1AEBFF\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key\",foreground:\"9CDCFE\"},{token:\"string.value\",foreground:\"CE9178\"},{\ntoken:\"attribute.name\",foreground:\"569CD6\"},{token:\"attribute.value\",foreground:\"3FF23F\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(s={},s[i.editorBackground]=\"#000000\",s[i.editorForeground]=\"#FFFFFF\",s[n.editorIndentGuides]=\"#FFFFFF\",s[n.editorActiveIndentGuides]=\"#FFFFFF\",s)}})),define(n[594],i([0,1,6,27,4,17,357,593,42,20,14,2]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=\"vs\",g=\"vs-dark\",f=\"hc-black\",m=u.Registry.as(d.Extensions.ColorContribution),v=u.Registry.as(c.Extensions.ThemingContribution),_=function(){function e(e,t){this.themeData=t;var n=t.base;e.length>0?(this.id=n+\" \"+e,this.themeName=e):(this.id=n,this.themeName=n),this.colors=null,this.defaultColors=Object.create(null),\nthis._tokenTheme=null}return Object.defineProperty(e.prototype,\"base\",{get:function(){return this.themeData.base},enumerable:!0,configurable:!0}),e.prototype.notifyBaseUpdated=function(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)},e.prototype.getColors=function(){if(!this.colors){var e=new Map;for(var t in this.themeData.colors)e.set(t,i.Color.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){var n=C(this.themeData.base);for(var t in n.colors)e.has(t)||e.set(t,i.Color.fromHex(n.colors[t]))}this.colors=e}return this.colors},e.prototype.getColor=function(e,t){var n=this.getColors().get(e);return n||(!1!==t?this.getDefault(e):void 0)},e.prototype.getDefault=function(e){var t=this.defaultColors[e];return t||(t=m.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)},e.prototype.defines=function(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)},Object.defineProperty(e.prototype,\"type\",{get:function(){switch(this.base){case p:return\"light\";case f:return\"hc\"\n;default:return\"dark\"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tokenTheme\",{get:function(){if(!this._tokenTheme){var e=[],t=[];if(this.themeData.inherit){var n=C(this.themeData.base);e=n.rules,n.encodedTokensColors&&(t=n.encodedTokensColors)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=a.TokenTheme.createFromRawTokenTheme(e,t)}return this._tokenTheme},enumerable:!0,configurable:!0}),e.prototype.getTokenStyleMetadata=function(e,t){},e}();function y(e){return e===p||e===g||e===f}function C(e){switch(e){case p:return l.vs;case g:return l.vs_dark;case f:return l.hc_black}}function b(e){var t=C(e);return new _(e,t)}var S=function(e){function t(){var t=e.call(this)||this;return t._onThemeChange=t._register(new o.Emitter),t.onThemeChange=t._onThemeChange.event,t._environment=Object.create(null),t._knownThemes=new Map,t._knownThemes.set(p,b(p)),t._knownThemes.set(g,b(g)),t._knownThemes.set(f,b(f)),t._css=\"\",\nt._globalStyleElement=null,t._styleElements=[],t.setTheme(p),t}return r(t,e),t.prototype.registerEditorContainer=function(e){return n.isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()},t.prototype._registerRegularEditorContainer=function(){return this._globalStyleElement||(this._globalStyleElement=n.createStyleSheet(),this._globalStyleElement.className=\"monaco-colors\",this._globalStyleElement.innerHTML=this._css,this._styleElements.push(this._globalStyleElement)),h.Disposable.None},t.prototype._registerShadowDomContainer=function(e){var t=this,i=n.createStyleSheet(e);return i.className=\"monaco-colors\",i.innerHTML=this._css,this._styleElements.push(i),{dispose:function(){for(var e=0;e<t._styleElements.length;e++)if(t._styleElements[e]===i)return void t._styleElements.splice(e,1)}}},t.prototype.defineTheme=function(e,t){if(!/^[a-z0-9\\-]+$/i.test(e))throw new Error(\"Illegal theme name!\");if(!y(t.base)&&!y(e))throw new Error(\"Illegal theme base!\")\n;this._knownThemes.set(e,new _(e,t)),y(e)&&this._knownThemes.forEach((function(t){t.base===e&&t.notifyBaseUpdated()})),this._theme&&this._theme.themeName===e&&this.setTheme(e)},t.prototype.getTheme=function(){return this._theme},t.prototype.setTheme=function(e){var t,n=this;if(t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(p),this._theme===t)return t.id;this._theme=t;var i=[],o={},r={addRule:function(e){o[e]||(i.push(e),o[e]=!0)}};v.getThemingParticipants().forEach((function(e){return e(t,r,n._environment)}));var l=t.tokenTheme.getColorMap();return r.addRule(a.generateTokensCSSForColorMap(l)),this._css=i.join(\"\\n\"),this._styleElements.forEach((function(e){return e.innerHTML=n._css})),s.TokenizationRegistry.setColorMap(l),this._onThemeChange.fire(t),t.id},t.prototype.getIconTheme=function(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}},t}(h.Disposable);t.StandaloneThemeServiceImpl=S})),define(n[595],i([0,1,547,66,96,4,35,14,34,2]),(function(e,t,n,i,o,s,a,l,u,d){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,i,o,r,a){var l=e.call(this)||this;return l._onDidContextMenu=l._register(new s.Emitter),l.contextMenuHandler=new n.ContextMenuHandler(o,t,i,r,a),l}return r(t,e),t.prototype.configure=function(e){this.contextMenuHandler.configure(e)},t.prototype.showContextMenu=function(e){this.contextMenuHandler.showContextMenu(e),this._onDidContextMenu.fire()},t=h([g(0,o.ITelemetryService),g(1,a.INotificationService),g(2,i.IContextViewService),g(3,u.IKeybindingService),g(4,l.IThemeService)],t)}(d.Disposable);t.ContextMenuService=c})),define(n[170],i([0,1,6,153,2,474,43,85,18,11,34,42,97,14,477,206,408,407,64]),(function(e,t,n,i,o,s,a,u,d,c,p,f,m,v,_,y,C,b,S){\"use strict\";var w;Object.defineProperty(t,\"__esModule\",{value:!0}),t.IListService=c.createDecorator(\"listService\");var E=function(){function e(e){this._themeService=e,this.disposables=new o.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,\nthis._hasCreatedStyleController=!1}return Object.defineProperty(e.prototype,\"lastFocusedList\",{get:function(){return this._lastFocusedWidget},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var r=this;if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;var s=new i.DefaultStyleController(n.createStyleSheet(),\"\");this.disposables.add(m.attachListStyler(s,this._themeService))}if(this.lists.some((function(t){return t.widget===e})))throw new Error(\"Cannot register the same widget multiple times\");var a={widget:e,extraContextKeys:t};return this.lists.push(a),e.getHTMLElement()===document.activeElement&&(this._lastFocusedWidget=e),o.combinedDisposable(e.onDidFocus((function(){return r._lastFocusedWidget=e})),o.toDisposable((function(){return r.lists.splice(r.lists.indexOf(a),1)})),e.onDidDispose((function(){r.lists=r.lists.filter((function(e){return e!==a})),r._lastFocusedWidget===e&&(r._lastFocusedWidget=void 0)})))},e.prototype.dispose=function(){this.disposables.dispose()},\ne=h([g(0,v.IThemeService)],e)}();t.ListService=E;var L=new d.RawContextKey(\"listFocus\",!0);t.WorkbenchListSupportsMultiSelectContextKey=new d.RawContextKey(\"listSupportsMultiselect\",!0),t.WorkbenchListFocusContextKey=d.ContextKeyExpr.and(L,d.ContextKeyExpr.not(_.InputFocusedContextKey)),t.WorkbenchListHasSelectionOrFocus=new d.RawContextKey(\"listHasSelectionOrFocus\",!1),t.WorkbenchListDoubleSelection=new d.RawContextKey(\"listDoubleSelection\",!1),t.WorkbenchListMultiSelection=new d.RawContextKey(\"listMultiSelection\",!1),t.WorkbenchListSupportsKeyboardNavigation=new d.RawContextKey(\"listSupportsKeyboardNavigation\",!0),t.WorkbenchListAutomaticKeyboardNavigationKey=\"listAutomaticKeyboardNavigation\",t.WorkbenchListAutomaticKeyboardNavigation=new d.RawContextKey(t.WorkbenchListAutomaticKeyboardNavigationKey,!0),t.didBindWorkbenchListAutomaticKeyboardNavigation=!1,t.multiSelectModifierSettingKey=\"workbench.list.multiSelectModifier\",t.openModeSettingKey=\"workbench.list.openMode\",\nt.horizontalScrollingKey=\"workbench.list.horizontalScrolling\",t.keyboardNavigationSettingKey=\"workbench.list.keyboardNavigation\",t.automaticKeyboardNavigationSettingKey=\"workbench.list.automaticKeyboardNavigation\";var D=\"workbench.tree.indent\",N=\"workbench.tree.renderIndentGuides\";function x(e){return\"alt\"===e.getValue(t.multiSelectModifierSettingKey)}function I(e){return\"doubleClick\"!==e.getValue(t.openModeSettingKey)}var M=function(e){function n(t){var n=e.call(this)||this;return n.configurationService=t,n.useAltAsMultipleSelectionModifier=x(t),n.registerListeners(),n}return r(n,e),n.prototype.registerListeners=function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(n){n.affectsConfiguration(t.multiSelectModifierSettingKey)&&(e.useAltAsMultipleSelectionModifier=x(e.configurationService))})))},n.prototype.isSelectionSingleChangeEvent=function(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:i.isSelectionSingleChangeEvent(e)},\nn.prototype.isSelectionRangeChangeEvent=function(e){return i.isSelectionRangeChangeEvent(e)},n}(o.Disposable),k=function(e){function n(t,n){var i=e.call(this)||this;return i.configurationService=t,i.existingOpenController=n,i.openOnSingleClick=I(t),i.registerListeners(),i}return r(n,e),n.prototype.registerListeners=function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(n){n.affectsConfiguration(t.openModeSettingKey)&&(e.openOnSingleClick=I(e.configurationService))})))},n.prototype.shouldOpen=function(e){if(e instanceof MouseEvent){var t=0===e.button,n=2===e.detail;return!(t&&!this.openOnSingleClick&&!n)&&(!(!t&&1!==e.button)&&(!this.existingOpenController||this.existingOpenController.shouldOpen(e)))}return!this.existingOpenController||this.existingOpenController.shouldOpen(e)},n}(o.Disposable);function T(e,t){var n=!1;return function(i){if(n)return n=!1,!1;var o=t.softDispatch(i,e);return o&&o.enterChord?(n=!0,!1):(n=!1,!0)}}var R=function(e){\nfunction n(t,n,i,o,r,s,a,l,u,d,c){var h=this,p=F(n,r,s,u,d,c),g=p.options,f=p.getAutomaticKeyboardNavigation,m=p.disposable;return(h=e.call(this,t,n,i,o,g)||this).disposables.add(m),h.internals=new W(h,g,f,r.overrideStyles,s,a,l,u,c),h.disposables.add(h.internals),h}return r(n,e),n=h([g(5,d.IContextKeyService),g(6,t.IListService),g(7,v.IThemeService),g(8,a.IConfigurationService),g(9,p.IKeybindingService),g(10,S.IAccessibilityService)],n)}(y.ObjectTree);t.WorkbenchObjectTree=R;var O=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h){var p=this,g=F(n,s,a,d,c,h),f=g.options,m=g.getAutomaticKeyboardNavigation,v=g.disposable;return(p=e.call(this,t,n,i,o,r,f)||this).disposables.add(v),p.internals=new W(p,f,m,s.overrideStyles,a,l,u,d,h),p.disposables.add(p.internals),p}return r(n,e),n.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles)},\nn=h([g(6,d.IContextKeyService),g(7,t.IListService),g(8,v.IThemeService),g(9,a.IConfigurationService),g(10,p.IKeybindingService),g(11,S.IAccessibilityService)],n)}(b.DataTree);t.WorkbenchDataTree=O;var P=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h){var p=this,g=F(n,s,a,d,c,h),f=g.options,m=g.getAutomaticKeyboardNavigation,v=g.disposable;return(p=e.call(this,t,n,i,o,r,f)||this).disposables.add(v),p.internals=new W(p,f,m,s.overrideStyles,a,l,u,d,h),p.disposables.add(p.internals),p}return r(n,e),n.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles)},n=h([g(6,d.IContextKeyService),g(7,t.IListService),g(8,v.IThemeService),g(9,a.IConfigurationService),g(10,p.IKeybindingService),g(11,S.IAccessibilityService)],n)}(C.AsyncDataTree);t.WorkbenchAsyncDataTree=P;var A=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h,p){var g=this,f=F(n,a,l,c,h,p),m=f.options,v=f.getAutomaticKeyboardNavigation,_=f.disposable\n;return(g=e.call(this,t,n,i,o,r,s,m)||this).disposables.add(_),g.internals=new W(g,m,v,a.overrideStyles,l,u,d,c,p),g.disposables.add(g.internals),g}return r(n,e),n=h([g(7,d.IContextKeyService),g(8,t.IListService),g(9,v.IThemeService),g(10,a.IConfigurationService),g(11,p.IKeybindingService),g(12,S.IAccessibilityService)],n)}(C.CompressibleAsyncDataTree);function F(e,n,i,r,s,u){t.WorkbenchListSupportsKeyboardNavigation.bindTo(i),t.didBindWorkbenchListAutomaticKeyboardNavigation||(t.WorkbenchListAutomaticKeyboardNavigation.bindTo(i),t.didBindWorkbenchListAutomaticKeyboardNavigation=!0);var d=function(){var e=i.getContextKeyValue(t.WorkbenchListAutomaticKeyboardNavigationKey);return e&&(e=r.getValue(t.automaticKeyboardNavigationSettingKey)),e},c=u.isScreenReaderOptimized()?\"simple\":r.getValue(t.keyboardNavigationSettingKey),h=void 0!==n.horizontalScrolling?n.horizontalScrolling:function(e){return a.getMigratedSettingValue(e,t.horizontalScrollingKey,\"workbench.tree.horizontalScrolling\")\n}(r),p=I(r),g=function(e,t,n){var i=new o.DisposableStore,r=l({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){var s=new M(t);r.multipleSelectionController=s,i.add(s)}var a=new k(t,e.openController);return r.openController=a,i.add(a),r.keyboardNavigationDelegate={mightProducePrintableCharacter:function(e){return n.mightProducePrintableCharacter(e)}},[r,i]}(n,r,s),f=g[0],m=g[1],v=n.additionalScrollHeight;return{getAutomaticKeyboardNavigation:d,disposable:m,options:l(l({keyboardSupport:!1},f),{indent:r.getValue(D),renderIndentGuides:r.getValue(N),automaticKeyboardNavigation:d(),simpleKeyboardNavigation:\"simple\"===c,filterOnType:\"filter\"===c,horizontalScrolling:h,openOnSingleClick:p,keyboardNavigationEventFilter:T(e,s),additionalScrollHeight:v,hideTwistiesOfChildlessElements:n.hideTwistiesOfChildlessElements})}}t.WorkbenchCompressibleAsyncDataTree=A;var W=function(){function e(e,n,i,o,r,s,a,l,u){var d=this;this.tree=e,this.themeService=a,this.disposables=[],\nthis.contextKeyService=function(e,t){var n=e.createScoped(t.getHTMLElement());return L.bindTo(n),n}(r,e),t.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService).set(!(!1===n.multipleSelectionSupport)),this.hasSelectionOrFocus=t.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=t.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=t.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=x(l);var c=new Set;c.add(t.WorkbenchListAutomaticKeyboardNavigationKey);var h=function(){var n=u.isScreenReaderOptimized()?\"simple\":l.getValue(t.keyboardNavigationSettingKey);e.updateOptions({simpleKeyboardNavigation:\"simple\"===n,filterOnType:\"filter\"===n})};this.updateStyleOverrides(o),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection((function(){var t=e.getSelection(),n=e.getFocus();d.hasSelectionOrFocus.set(t.length>0||n.length>0),\nd.hasMultiSelection.set(t.length>1),d.hasDoubleSelection.set(2===t.length)})),e.onDidChangeFocus((function(){var t=e.getSelection(),n=e.getFocus();d.hasSelectionOrFocus.set(t.length>0||n.length>0)})),l.onDidChangeConfiguration((function(n){if(n.affectsConfiguration(t.openModeSettingKey)&&e.updateOptions({openOnSingleClick:I(l)}),n.affectsConfiguration(t.multiSelectModifierSettingKey)&&(d._useAltAsMultipleSelectionModifier=x(l)),n.affectsConfiguration(D)){var o=l.getValue(D);e.updateOptions({indent:o})}if(n.affectsConfiguration(N)){var r=l.getValue(N);e.updateOptions({renderIndentGuides:r})}n.affectsConfiguration(t.keyboardNavigationSettingKey)&&h(),n.affectsConfiguration(t.automaticKeyboardNavigationSettingKey)&&e.updateOptions({automaticKeyboardNavigation:i()})})),this.contextKeyService.onDidChangeContext((function(t){t.affectsSome(c)&&e.updateOptions({automaticKeyboardNavigation:i()})})),u.onDidChangeScreenReaderOptimized((function(){return h()})))}return e.prototype.updateStyleOverrides=function(e){\no.dispose(this.styler),this.styler=e?m.attachListStyler(this.tree,this.themeService,e):o.Disposable.None},e.prototype.dispose=function(){this.disposables=o.dispose(this.disposables),this.styler=o.dispose(this.styler)},e=h([g(4,d.IContextKeyService),g(5,t.IListService),g(6,v.IThemeService),g(7,a.IConfigurationService),g(8,S.IAccessibilityService)],e)}();f.Registry.as(u.Extensions.Configuration).registerConfiguration({id:\"workbench\",order:7,title:s.localize(0,null),type:\"object\",properties:(w={},w[t.multiSelectModifierSettingKey]={type:\"string\",enum:[\"ctrlCmd\",\"alt\"],enumDescriptions:[s.localize(1,null),s.localize(2,null)],default:\"ctrlCmd\",description:s.localize(3,null)},w[t.openModeSettingKey]={type:\"string\",enum:[\"singleClick\",\"doubleClick\"],default:\"singleClick\",description:s.localize(4,null)},w[t.horizontalScrollingKey]={type:\"boolean\",default:!1,description:s.localize(5,null)},w[\"workbench.tree.horizontalScrolling\"]={type:\"boolean\",default:!1,description:s.localize(6,null),\ndeprecationMessage:s.localize(7,null,t.horizontalScrollingKey)},w[D]={type:\"number\",default:8,minimum:0,maximum:40,description:s.localize(8,null)},w[N]={type:\"string\",enum:[\"none\",\"onHover\",\"always\"],default:\"onHover\",description:s.localize(9,null)},w[t.keyboardNavigationSettingKey]={type:\"string\",enum:[\"simple\",\"highlight\",\"filter\"],enumDescriptions:[s.localize(10,null),s.localize(11,null),s.localize(12,null)],default:\"highlight\",description:s.localize(13,null)},w[t.automaticKeyboardNavigationSettingKey]={type:\"boolean\",default:!0,markdownDescription:s.localize(14,null)},w)})})),define(n[596],i([0,1,6,27,4,2,46,39,167,3,30,84,575,450,11,116,170,20,14,123,113,279,314]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var N=function(){function e(e,t){var n=this;this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new s.DisposableStore,this._callOnModelChange=new s.DisposableStore,\nthis._callOnDispose.add(this._editor.onDidChangeModel((function(){return n._onModelChanged()}))),this._onModelChanged()}return e.prototype.dispose=function(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()},e.prototype._onModelChanged=function(){this._callOnModelChange.clear();var e=this._editor.getModel();if(e)for(var t=0,n=this._model.groups;t<n.length;t++){var i=n[t];if(l.isEqual(i.uri,e.uri))return void this._addDecorations(i)}},e.prototype._addDecorations=function(t){var n=this;if(this._editor.hasModel()){this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((function(e){return n._onDecorationChanged()})));for(var i=[],o=[],r=0,s=t.children.length;r<s;r++){var a=t.children[r];this._decorationIgnoreSet.has(a.id)||(i.push({range:a.range,options:e.DecorationOptions}),o.push(r))}var l=this._editor.deltaDecorations([],i);for(r=0;r<l.length;r++)this._decorations.set(l[r],t.children[o[r]])}},e.prototype._onDecorationChanged=function(){\nvar e=this,t=[],n=this._editor.getModel();if(n){this._decorations.forEach((function(i,o){var r=n.getDecorationRange(o);if(r){var s=!1;if(!p.Range.equalsRange(r,i.range))p.Range.spansMultipleLines(r)?s=!0:i.range.endColumn-i.range.startColumn!==r.endColumn-r.startColumn&&(s=!0),s?(e._decorationIgnoreSet.add(i.id),t.push(o)):i.range=r}}));for(var i=0,o=t.length;i<o;i++)this._decorations.delete(t[i]);this._editor.deltaDecorations(t,[])}},e.prototype.removeDecorations=function(){var e=[];this._decorations.forEach((function(t,n){e.push(n)})),this._editor.deltaDecorations(e,[]),this._decorations.clear()},e.DecorationOptions=f.ModelDecorationOptions.register({stickiness:1,className:\"reference-decoration\"}),e}(),x=function(){function e(){this.ratio=.7,this.heightInLines=18}return e.fromJSON=function(e){var t,n;try{var i=JSON.parse(e);t=i.ratio,n=i.heightInLines}catch(e){}return{ratio:t||.7,heightInLines:n||18}},e}();t.LayoutData=x;var I=function(e){function t(t,n,i,r,a,l,u,d){var c=e.call(this,t,{showFrame:!1,\nshowArrow:!0,isResizeable:!0,isAccessible:!0})||this;return c._defaultTreeKeyboardSupport=n,c.layoutData=i,c._textModelResolverService=a,c._instantiationService=l,c._peekViewService=u,c._uriLabel=d,c._disposeOnNewModel=new s.DisposableStore,c._callOnDispose=new s.DisposableStore,c._onDidSelectReference=new o.Emitter,c.onDidSelectReference=c._onDidSelectReference.event,c._dim={height:0,width:0},c._applyTheme(r.getTheme()),c._callOnDispose.add(r.onThemeChange(c._applyTheme.bind(c))),c._peekViewService.addExclusiveWidget(t,c),c.create(),c}return r(t,e),t.prototype.dispose=function(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),s.dispose(this._preview),s.dispose(this._previewNotAvailableMessage),s.dispose(this._tree),s.dispose(this._previewModelReference),this._splitView.dispose(),e.prototype.dispose.call(this)},t.prototype._applyTheme=function(e){var t=e.getColor(E.peekViewBorder)||i.Color.transparent;this.style({arrowColor:t,frameColor:t,\nheaderBackgroundColor:e.getColor(E.peekViewTitleBackground)||i.Color.transparent,primaryHeadingColor:e.getColor(E.peekViewTitleForeground),secondaryHeadingColor:e.getColor(E.peekViewTitleInfoForeground)})},t.prototype.show=function(t){this.editor.revealRangeInCenterIfOutsideViewport(t,0),e.prototype.show.call(this,t,this.layoutData.heightInLines||18)},t.prototype.focusOnReferenceTree=function(){this._tree.domFocus()},t.prototype.focusOnPreviewEditor=function(){this._preview.focus()},t.prototype.isPreviewEditorFocused=function(){return this._preview.hasTextFocus()},t.prototype._onTitleClick=function(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?\"side\":\"open\",source:\"title\"})},t.prototype._fillBody=function(e){var t=this;this.setCssClass(\"reference-zone-widget\"),this._messageContainer=n.append(e,n.$(\"div.messages\")),n.hide(this._messageContainer),this._splitView=new D.SplitView(e,{orientation:1}),\nthis._previewContainer=n.append(e,n.$(\"div.preview.inline\"));this._preview=this._instantiationService.createInstance(u.EmbeddedCodeEditorWidget,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:\"auto\",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!1},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},this.editor),n.hide(this._previewContainer),this._previewNotAvailableMessage=f.TextModel.createFromString(_.localize(0,null)),this._treeContainer=n.append(e,n.$(\"div.ref-tree.inline\"));var i={ariaLabel:_.localize(1,null),keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new v.AriaProvider,keyboardNavigationLabelProvider:this._instantiationService.createInstance(v.StringRepresentationProvider),identityProvider:new v.IdentityProvider,overrideStyles:{listBackground:E.peekViewResultsBackground}}\n;this._tree=this._instantiationService.createInstance(b.WorkbenchAsyncDataTree,\"ReferencesWidget\",this._treeContainer,new v.Delegate,[this._instantiationService.createInstance(v.FileReferencesRenderer),this._instantiationService.createInstance(v.OneReferenceRenderer)],this._instantiationService.createInstance(v.DataSource),i),this._splitView.addView({onDidChange:o.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:function(e){t._preview.layout({height:t._dim.height,width:e})}},D.Sizing.Distribute),this._splitView.addView({onDidChange:o.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:function(e){t._treeContainer.style.height=t._dim.height+\"px\",t._treeContainer.style.width=e+\"px\",t._tree.layout(t._dim.height,e)}},D.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange((function(){t._dim.width&&(t.layoutData.ratio=t._splitView.getViewSize(0)/t._dim.width)}),void 0));var r=function(e,n){\ne instanceof L.OneReference&&(\"show\"===n&&t._revealReference(e,!1),t._onDidSelectReference.fire({element:e,kind:n,source:\"tree\"}))};this._tree.onDidChangeFocus((function(e){r(e.elements[0],\"show\")})),this._tree.onDidOpen((function(e){e.browserEvent instanceof MouseEvent&&(e.browserEvent.ctrlKey||e.browserEvent.metaKey||e.browserEvent.altKey)?r(e.elements[0],\"side\"):e.browserEvent instanceof KeyboardEvent||e.browserEvent instanceof MouseEvent&&2===e.browserEvent.detail||2===e.browserEvent.tapCount?r(e.elements[0],\"goto\"):r(e.elements[0],\"show\")})),n.hide(this._treeContainer)},t.prototype._onWidth=function(e){this._dim&&this._doLayoutBody(this._dim.height,e)},t.prototype._doLayoutBody=function(t,n){e.prototype._doLayoutBody.call(this,t,n),this._dim={height:t,width:n},this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(n),this._splitView.resizeView(0,n*this.layoutData.ratio)},t.prototype.setSelection=function(e){var t=this\n;return this._revealReference(e,!0).then((function(){t._model&&(t._tree.setSelection([e]),t._tree.setFocus([e]))}))},t.prototype.setModel=function(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()},t.prototype._onNewModel=function(){var e=this;return this._model?this._model.isEmpty?(this.setTitle(\"\"),this._messageContainer.innerHTML=_.localize(2,null),n.show(this._messageContainer),Promise.resolve(void 0)):(n.hide(this._messageContainer),this._decorationsManager=new N(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((function(t){return e._tree.rerender(t)}))),this._disposeOnNewModel.add(this._preview.onMouseDown((function(t){var n=t.event,i=t.target;if(2===n.detail){var o=e._getFocusedReference();o&&e._onDidSelectReference.fire({element:{uri:o.uri,range:i.range},kind:n.ctrlKey||n.metaKey||n.altKey?\"side\":\"open\",source:\"editor\"})}}))),\nn.addClass(this.container,\"results-loaded\"),n.show(this._treeContainer),n.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)},t.prototype._getFocusedReference=function(){var e=this._tree.getFocus()[0];return e instanceof L.OneReference?e:e instanceof L.FileReferences&&e.children.length>0?e.children[0]:void 0},t.prototype._revealReference=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o,r,u;return c(this,(function(d){switch(d.label){case 0:return this._revealedReference===e?[2]:(this._revealedReference=e,e.uri.scheme!==a.Schemas.inMemory?this.setTitle(l.basenameOrAuthority(e.uri),this._uriLabel.getUriLabel(l.dirname(e.uri))):this.setTitle(_.localize(3,null)),n=this._textModelResolverService.createModelReference(e.uri),this._tree.getInput()!==e.parent?[3,1]:(this._tree.reveal(e),[3,3]));case 1:return t&&this._tree.reveal(e.parent),\n[4,this._tree.expand(e.parent)];case 2:d.sent(),this._tree.reveal(e),d.label=3;case 3:return[4,n];case 4:return i=d.sent(),this._model?(s.dispose(this._previewModelReference),(o=i.object)?(r=this._preview.getModel()===o.textEditorModel?0:1,u=p.Range.lift(e.range).collapseToStart(),this._previewModelReference=i,this._preview.setModel(o.textEditorModel),this._preview.setSelection(u),this._preview.revealRangeInCenter(u,r)):(this._preview.setModel(this._previewNotAvailableMessage),i.dispose()),[2]):(i.dispose(),[2])}}))}))},t=h([g(3,w.IThemeService),g(4,m.ITextModelService),g(5,y.IInstantiationService),g(6,E.IPeekViewService),g(7,C.ILabelService)],t)}(E.PeekViewWidget);t.ReferenceWidget=I,w.registerThemingParticipant((function(e,t){var n=e.getColor(E.peekViewResultsMatchHighlight);n&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: \"+n+\"; }\");var i=e.getColor(E.peekViewEditorMatchHighlight)\n;i&&t.addRule(\".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: \"+i+\"; }\");var o=e.getColor(E.peekViewEditorMatchHighlightBorder);o&&t.addRule(\".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid \"+o+\"; box-sizing: border-box; }\");var r=e.getColor(S.activeContrastBorder);r&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted \"+r+\"; box-sizing: border-box; }\");var s=e.getColor(E.peekViewResultsBackground);s&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree { background-color: \"+s+\"; }\");var a=e.getColor(E.peekViewResultsMatchForeground);a&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree { color: \"+a+\"; }\");var l=e.getColor(E.peekViewResultsFileForeground);l&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: \"+l+\"; }\");var u=e.getColor(E.peekViewResultsSelectionBackground)\n;u&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: \"+u+\"; }\");var d=e.getColor(E.peekViewResultsSelectionForeground);d&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: \"+d+\" !important; }\");var c=e.getColor(E.peekViewEditorBackground);c&&t.addRule(\".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\\tbackground-color: \"+c+\";}\");var h=e.getColor(E.peekViewEditorGutterBackground);h&&t.addRule(\".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\\tbackground-color: \"+h+\";}\")}))})),define(n[234],i([0,1,448,10,2,32,11,18,43,74,113,596,3,13,35,15,123,170,86,36,29]),(function(e,t,n,i,o,r,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ctxReferenceSearchVisible=new a.RawContextKey(\"referenceSearchVisible\",!1);var L=function(){function e(e,n,i,r,s,a,l,u){this._defaultTreeKeyboardSupport=e,this._editor=n,this._editorService=r,this._notificationService=s,this._instantiationService=a,this._storageService=l,this._configurationService=u,this._disposables=new o.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=t.ctxReferenceSearchVisible.bindTo(i)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._referenceSearchVisible.reset(),this._disposables.dispose(),o.dispose(this._widget),o.dispose(this._model),this._widget=void 0,this._model=void 0},e.prototype.toggleWidget=function(e,t,i){var o,r=this;if(this._widget&&(o=this._widget.position),this.closeWidget(),!o||!e.containsPosition(o)){this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){\nr.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((function(){r._ignoreModelChangeEvent||r.closeWidget()})));var s=f.LayoutData.fromJSON(this._storageService.get(\"peekViewLayout\",0,\"{}\"));this._widget=this._instantiationService.createInstance(f.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(n.localize(0,null)),this._widget.show(e),this._disposables.add(this._widget.onDidClose((function(){t.cancel(),r._widget&&(r._storageService.store(\"peekViewLayout\",JSON.stringify(r._widget.layoutData),0),r._widget=void 0),r.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((function(e){var t=e.element,n=e.kind;if(t)switch(n){case\"open\":\"editor\"===e.source&&r._configurationService.getValue(\"editor.stablePeek\")||r.openReference(t,!1);break;case\"side\":r.openReference(t,!0);break;case\"goto\":i?r._gotoReference(t):r.openReference(t,!1)}})));var a=++this._requestIdPool;t.then((function(t){\nif(a===r._requestIdPool&&r._widget)return r._model&&r._model.dispose(),r._model=t,r._widget.setModel(r._model).then((function(){if(r._widget&&r._model&&r._editor.hasModel()){r._model.isEmpty?r._widget.setMetaTitle(\"\"):r._widget.setMetaTitle(n.localize(1,null,r._model.title,r._model.references.length));var t=r._editor.getModel().uri,i=new v.Position(e.startLineNumber,e.startColumn),o=r._model.nearestReference(t,i);if(o)return r._widget.setSelection(o).then((function(){r._widget&&\"editor\"===r._editor.getOption(65)&&r._widget.focusOnPreviewEditor()}))}}))}),(function(e){r._notificationService.error(e)}))}},e.prototype.changeFocusBetweenPreviewAndReferences=function(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())},e.prototype.goToNextOrPreviousReference=function(e){return d(this,void 0,void 0,(function(){var t,n,i,o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn this._editor.hasModel()&&this._model&&this._widget&&((t=this._widget.position)&&(n=this._model.nearestReference(this._editor.getModel().uri,t)))?(i=this._model.nextOrPreviousReference(n,e),o=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused(),[4,this._widget.setSelection(i)]):[2];case 1:return s.sent(),[4,this._gotoReference(i)];case 2:return s.sent(),o?this._editor.focus():this._widget&&r&&this._widget.focusOnPreviewEditor(),[2]}}))}))},e.prototype.closeWidget=function(e){void 0===e&&(e=!0),this._referenceSearchVisible.reset(),this._disposables.clear(),o.dispose(this._widget),o.dispose(this._model),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1},e.prototype._gotoReference=function(t){var n=this;this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;var o=m.Range.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:o}},this._editor).then((function(t){var i\n;if(n._ignoreModelChangeEvent=!1,t&&n._widget)if(n._editor===t)n._widget.show(o),n._widget.focusOnReferenceTree();else{var r=e.get(t),s=n._model.clone();n.closeWidget(),t.focus(),r.toggleWidget(o,y.createCancelablePromise((function(e){return Promise.resolve(s)})),null!==(i=n._peekMode)&&void 0!==i&&i)}else n.closeWidget()}),(function(e){n._ignoreModelChangeEvent=!1,i.onUnexpectedError(e)}))},e.prototype.openReference=function(e,t){t||this.closeWidget();var n=e.uri,i=e.range;this._editorService.openCodeEditor({resource:n,options:{selection:i}},this._editor,t)},e.ID=\"editor.contrib.referencesController\",e=h([g(2,a.IContextKeyService),g(3,r.ICodeEditorService),g(4,_.INotificationService),g(5,s.IInstantiationService),g(6,u.IStorageService),g(7,l.IConfigurationService)],e)}();function D(e,t){var n=C.getOuterEditor(e);if(n){var i=L.get(n);i&&t(i)}}t.ReferencesController=L,S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"togglePeekWidgetFocus\",weight:100,primary:w.KeyChord(2089,60),\nwhen:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.changeFocusBetweenPreviewAndReferences()}))}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"goToNextReference\",weight:90,primary:62,secondary:[70],when:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.goToNextOrPreviousReference(!0)}))}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"goToPreviousReference\",weight:90,primary:1086,secondary:[1094],when:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.goToNextOrPreviousReference(!1)}))}}),E.CommandsRegistry.registerCommandAlias(\"goToNextReferenceFromEmbeddedEditor\",\"goToNextReference\"),E.CommandsRegistry.registerCommandAlias(\"goToPreviousReferenceFromEmbeddedEditor\",\"goToPreviousReference\"),E.CommandsRegistry.registerCommandAlias(\"closeReferenceSearchEditor\",\"closeReferenceSearch\"),\nE.CommandsRegistry.registerCommand(\"closeReferenceSearch\",(function(e){return D(e,(function(e){return e.closeWidget()}))})),S.KeybindingsRegistry.registerKeybindingRule({id:\"closeReferenceSearch\",weight:-1,primary:9,secondary:[1033],when:a.ContextKeyExpr.and(C.PeekContext.inPeekEditor,a.ContextKeyExpr.not(\"config.editor.stablePeek\"))}),S.KeybindingsRegistry.registerKeybindingRule({id:\"closeReferenceSearch\",weight:250,primary:9,secondary:[1033],when:a.ContextKeyExpr.and(t.ctxReferenceSearchVisible,a.ContextKeyExpr.not(\"config.editor.stablePeek\"))}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"openReferenceToSide\",weight:100,primary:2051,mac:{primary:259},when:a.ContextKeyExpr.and(t.ctxReferenceSearchVisible,b.WorkbenchListFocusContextKey),handler:function(e){var t,n=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof p.OneReference&&D(e,(function(e){return e.openReference(n[0],!0)}))}}),\nE.CommandsRegistry.registerCommand(\"openReference\",(function(e){var t,n=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof p.OneReference&&D(e,(function(e){return e.openReference(n[0],!1)}))}))})),define(n[235],i([0,1,50,15,36,16,108,12,32,13,3,23,17,122,123,234,113,446,65,18,35,73,224,29,67,537,24,25,11,21,167]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R){\"use strict\";var O,P,A,F,W,B,V,z;Object.defineProperty(t,\"__esModule\",{value:!0}),b.MenuRegistry.appendMenuItem(7,{submenu:8,title:C.localize(0,null),group:\"navigation\",order:100});var H=function(e){function t(t,n){var i=e.call(this,n)||this;return i._configuration=t,i}return r(t,e),t.prototype.run=function(e,t){var o=this;if(!t.hasModel())return Promise.resolve(void 0)\n;var r=e.get(w.INotificationService),s=e.get(u.ICodeEditorService),a=e.get(E.IEditorProgressService),l=e.get(x.ISymbolNavigationService),h=t.getModel(),p=t.getPosition(),g=new N.EditorStateCancellationTokenSource(t,5),f=i.raceCancellation(this._getLocationModel(h,p,g.token),g.token).then((function(e){return d(o,void 0,void 0,(function(){var i,o,r,a;return c(this,(function(u){if(!e||g.token.isCancellationRequested)return[2];if(n.alert(e.ariaMessage),e.referenceAt(h.uri,p)&&(o=this._getAlternativeCommand(t))!==this.id&&(i=t.getAction(o)),0===(r=e.references.length))this._configuration.muteMessage||(a=h.getWordAtPosition(p),m.MessageController.get(t).showMessage(this._getNoResultFoundMessage(a),p));else{if(1!==r||!i)return[2,this._onResult(s,l,t,e)];i.run()}return[2]}))}))}),(function(e){r.error(e)})).finally((function(){g.dispose()}));return a.showWhile(f,250),f},t.prototype._onResult=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a;return c(this,(function(l){switch(l.label){case 0:\nreturn o=this._getGoToPreference(n),n instanceof R.EmbeddedCodeEditorWidget||!(this._configuration.openInPeek||\"peek\"===o&&i.references.length>1)?[3,1]:(this._openInPeek(n,i),[3,3]);case 1:return r=i.firstReference(),s=i.references.length>1&&\"gotoAndPeek\"===o,[4,this._openReference(n,e,r,this._configuration.openToSide,!s)];case 2:a=l.sent(),s&&a?this._openInPeek(a,i):i.dispose(),\"goto\"===o&&t.put(r),l.label=3;case 3:return[2]}}))}))},t.prototype._openReference=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l;return c(this,(function(u){switch(u.label){case 0:return r=void 0,f.isLocationLink(n)&&(r=n.targetSelectionRange),r||(r=n.range),[4,t.openCodeEditor({resource:n.uri,options:{selection:p.Range.collapseToStart(r),revealInCenterIfOutsideViewport:!0}},e,i)];case 1:return(s=u.sent())?(o&&(a=s.getModel(),l=s.deltaDecorations([],[{range:r,options:{className:\"symbolHighlight\"}}]),setTimeout((function(){s.getModel()===a&&s.deltaDecorations(l,[])}),350)),[2,s]):[2,void 0]}}))}))},\nt.prototype._openInPeek=function(e,t){var n=_.ReferencesController.get(e);n&&e.hasModel()?n.toggleWidget(e.getSelection(),i.createCancelablePromise((function(e){return Promise.resolve(t)})),this._configuration.openInPeek):t.dispose()},t}(l.EditorAction),K=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getDefinitionsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(1,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(2,null,e.word):C.localize(3,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeDefinitionCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleDefinitions},t}(H);t.DefinitionAction=K;var U=s.isWeb&&!I.isStandalone?2118:70\n;l.registerEditorAction(((O=function(e){function t(){var n=e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(4,null),alias:\"Go to Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:U,weight:100},contextMenuOpts:{group:\"navigation\",order:1.1},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:2,title:C.localize(5,null)}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.goToDeclaration\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.revealDefinition\",O)),l.registerEditorAction(((P=function(e){function t(){var n=e.call(this,{openToSide:!0,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(6,null),alias:\"Open Definition to the Side\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,\nprimary:o.KeyChord(2089,U),weight:100}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.openDeclarationToTheSide\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.revealDefinitionAside\",P)),l.registerEditorAction(((A=function(e){function t(){var n=e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.id,label:C.localize(7,null),alias:\"Peek Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:8,group:\"peek\",order:2}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.previewDeclaration\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.peekDefinition\",A));var j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i\n;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getDeclarationsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(8,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(9,null,e.word):C.localize(10,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeDeclarationCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleDeclarations},t}(H);l.registerEditorAction(((F=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(11,null),alias:\"Go to Declaration\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDeclarationProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{group:\"navigation\",order:1.3},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:3,title:C.localize(12,null)}})||this}return r(t,e),t.prototype._getNoResultFoundMessage=function(e){\nreturn e&&e.word?C.localize(13,null,e.word):C.localize(14,null)},t}(j)).id=\"editor.action.revealDeclaration\",F)),l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.peekDeclaration\",label:C.localize(15,null),alias:\"Peek Declaration\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDeclarationProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:3}})||this}return r(t,e),t}(j));var q=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getTypeDefinitionsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(16,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){\nreturn e&&e.word?C.localize(17,null,e.word):C.localize(18,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeTypeDefinitionCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleTypeDefinitions},t}(H);l.registerEditorAction(((W=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,label:C.localize(19,null),alias:\"Go to Type Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasTypeDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:\"navigation\",order:1.4},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:3,title:C.localize(20,null)}})||this}return r(t,e),t}(q)).ID=\"editor.action.goToTypeDefinition\",W)),l.registerEditorAction(((B=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,label:C.localize(21,null),\nalias:\"Peek Type Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasTypeDefinitionProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:4}})||this}return r(t,e),t}(q)).ID=\"editor.action.peekTypeDefinition\",B));var G=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getImplementationsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(22,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(23,null,e.word):C.localize(24,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeImplementationCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleImplementations},t\n}(H);l.registerEditorAction(((V=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,label:C.localize(25,null),alias:\"Go to Implementations\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasImplementationProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:4,title:C.localize(26,null)},contextMenuOpts:{group:\"navigation\",order:1.45}})||this}return r(t,e),t}(G)).ID=\"editor.action.goToImplementation\",V)),l.registerEditorAction(((z=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,label:C.localize(27,null),alias:\"Peek Implementations\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasImplementationProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{\nmenuId:8,group:\"peek\",order:5}})||this}return r(t,e),t}(G)).ID=\"editor.action.peekImplementation\",z));var Y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getNoResultFoundMessage=function(e){return e?C.localize(28,null,e.word):C.localize(29,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeReferenceCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleReferences},t}(H);l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:\"editor.action.goToReferences\",label:C.localize(30,null),alias:\"Go to References\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasReferenceProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:\"navigation\",order:1.45},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:5,\ntitle:C.localize(31,null)}})||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getReferencesAtPosition(e,t,!0,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(32,null)]))]}}))}))},t}(Y)),l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.referenceSearch.trigger\",label:C.localize(33,null),alias:\"Peek References\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasReferenceProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:6}})||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getReferencesAtPosition(e,t,!1,n)];case 1:\nreturn[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(34,null)]))]}}))}))},t}(Y));var Z=function(e){function t(t,n,i){var o=e.call(this,t,{id:\"editor.action.goToLocation\",label:C.localize(35,null),alias:\"Go To Any Symbol\",precondition:S.ContextKeyExpr.and(v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated())})||this;return o._references=n,o._gotoMultipleBehaviour=i,o}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){return c(this,(function(e){return[2,new y.ReferencesModel(this._references,C.localize(36,null))]}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&C.localize(37,null,e.word)||\"\"},t.prototype._getGoToPreference=function(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(41).multipleReferences},t.prototype._getAlternativeCommand=function(){return\"\"},t}(H);D.CommandsRegistry.registerCommand({id:\"editor.action.goToLocations\",description:{\ndescription:\"Go to locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:M.URI},{name:\"position\",description:\"The position at which to start\",constraint:h.Position.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"}]},handler:function(e,t,n,i,o,r){return d(void 0,void 0,void 0,(function(){var s,l;return c(this,(function(d){switch(d.label){case 0:return T.assertType(M.URI.isUri(t)),T.assertType(h.Position.isIPosition(n)),T.assertType(Array.isArray(i)),T.assertType(void 0===o||\"string\"==typeof o),T.assertType(void 0===r||\"boolean\"==typeof r),[4,(s=e.get(u.ICodeEditorService)).openCodeEditor({resource:t},s.getFocusedCodeEditor())];case 1:return l=d.sent(),a.isCodeEditor(l)?(l.setPosition(n),l.revealPositionInCenterIfOutsideViewport(n,0),[2,l.invokeWithinContext((function(e){var t=new Z({\nmuteMessage:!0,openInPeek:Boolean(r),openToSide:!1},i,o);e.get(k.IInstantiationService).invokeFunction(t.run.bind(t),l)}))]):[2]}}))}))}}),D.CommandsRegistry.registerCommand({id:\"editor.action.peekLocations\",description:{description:\"Peek locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:M.URI},{name:\"position\",description:\"The position at which to start\",constraint:h.Position.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"}]},handler:function(e,t,n,i,o){return d(void 0,void 0,void 0,(function(){return c(this,(function(r){return e.get(D.ICommandService).executeCommand(\"editor.action.goToLocations\",t,n,i,o,!0),[2]}))}))}}),D.CommandsRegistry.registerCommand({id:\"editor.action.findReferences\",handler:function(e,t,n){T.assertType(M.URI.isUri(t)),T.assertType(h.Position.isIPosition(n))\n;var o=e.get(u.ICodeEditorService);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then((function(e){if(a.isCodeEditor(e)&&e.hasModel()){var t=_.ReferencesController.get(e);if(t){var o=i.createCancelablePromise((function(t){return L.getReferencesAtPosition(e.getModel(),h.Position.lift(n),!1,t).then((function(e){return new y.ReferencesModel(e,C.localize(38,null))}))})),r=new p.Range(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(t.toggleWidget(r,o,!1))}}}))}}),D.CommandsRegistry.registerCommandAlias(\"editor.action.showReferences\",\"editor.action.peekLocations\")})),define(n[236],i([0,1,447,15,10,75,71,3,17,12,224,2,84,14,20,67,235,199,13,21,313]),(function(e,t,n,i,o,r,s,a,l,u,d,c,p,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(){function e(e,t,n){var i=this;this.textModelResolverService=t,this.modeService=n,this.toUnhook=new c.DisposableStore,this.toUnhookForKeyboard=new c.DisposableStore,this.linkDecorations=[],\nthis.currentWordAtPosition=null,this.previousPromise=null,this.editor=e;var r=new y.ClickLinkGesture(e);this.toUnhook.add(r),this.toUnhook.add(r.onMouseMoveOrRelevantKeyDown((function(e){var t=e[0],n=e[1];i.startFindDefinitionFromMouse(t,b.withNullAsUndefined(n))}))),this.toUnhook.add(r.onExecute((function(e){i.isEnabled(e)&&i.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((function(){i.removeLinkDecorations()}),(function(e){i.removeLinkDecorations(),o.onUnexpectedError(e)}))}))),this.toUnhook.add(r.onCancel((function(){i.removeLinkDecorations(),i.currentWordAtPosition=null})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.startFindDefinitionFromCursor=function(e){var t=this;return this.startFindDefinition(e).then((function(){t.toUnhookForKeyboard.add(t.editor.onDidChangeCursorPosition((function(){t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear()}))),t.toUnhookForKeyboard.add(t.editor.onKeyDown((function(e){\ne&&(t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear())})))}))},e.prototype.startFindDefinitionFromMouse=function(e,t){if(!(9===e.target.type&&this.linkDecorations.length>0)){if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();var n=e.target.position;this.startFindDefinition(n)}},e.prototype.startFindDefinition=function(e){var t,s=this;this.toUnhookForKeyboard.clear();var l=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!l)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===l.startColumn&&this.currentWordAtPosition.endColumn===l.endColumn&&this.currentWordAtPosition.word===l.word)return Promise.resolve(0);this.currentWordAtPosition=l;var u=new v.EditorState(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),\nthis.previousPromise=i.createCancelablePromise((function(t){return s.findDefinition(e,t)})),this.previousPromise.then((function(t){if(t&&t.length&&u.validate(s.editor))if(t.length>1)s.addDecoration(new a.Range(e.lineNumber,l.startColumn,e.lineNumber,l.endColumn),(new r.MarkdownString).appendText(n.localize(0,null,t.length)));else{var i=t[0];if(!i.uri)return;s.textModelResolverService.createModelReference(i.uri).then((function(t){if(t.object&&t.object.textEditorModel){var n=t.object.textEditorModel,o=i.range.startLineNumber;if(o<1||o>n.getLineCount())t.dispose();else{var u,d=s.getPreviewValue(n,o,i);u=i.originSelectionRange?a.Range.lift(i.originSelectionRange):new a.Range(e.lineNumber,l.startColumn,e.lineNumber,l.endColumn);var c=s.modeService.getModeIdByFilepathOrFirstLine(n.uri);s.addDecoration(u,(new r.MarkdownString).appendCodeblock(c||\"\",d)),t.dispose()}}else t.dispose()}))}else s.removeLinkDecorations()})).then(void 0,o.onUnexpectedError)},e.prototype.getPreviewValue=function(t,n,i){\nvar o=i.targetSelectionRange?i.range:this.getPreviewRangeBasedOnBrackets(t,n);return o.endLineNumber-o.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(t,n)),this.stripIndentationFromPreviewRange(t,n,o)},e.prototype.stripIndentationFromPreviewRange=function(e,t,n){for(var i=e.getLineFirstNonWhitespaceColumn(t),o=t+1;o<n.endLineNumber;o++){var r=e.getLineFirstNonWhitespaceColumn(o);i=Math.min(i,r)}return e.getValueInRange(n).replace(new RegExp(\"^\\\\s{\"+(i-1)+\"}\",\"gm\"),\"\").trim()},e.prototype.getPreviewRangeBasedOnIndentation=function(t,n){for(var i=t.getLineFirstNonWhitespaceColumn(n),o=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),r=n+1;r<o;r++){if(i===t.getLineFirstNonWhitespaceColumn(r))break}return new a.Range(n,1,r+1,1)},e.prototype.getPreviewRangeBasedOnBrackets=function(t,n){for(var i=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),o=[],r=!0,s=t.findNextBracket(new C.Position(n,1));null!==s;){if(0===o.length)o.push(s);else{var l=o[o.length-1]\n;if(l.open[0]===s.open[0]&&l.isOpen&&!s.isOpen?o.pop():o.push(s),0===o.length){if(!r)return new a.Range(n,1,s.range.endLineNumber+1,1);r=!1}}var u=t.getLineMaxColumn(n),d=s.range.endLineNumber,c=s.range.endColumn;if(u===s.range.endColumn&&(d++,c=1),d>i)return new a.Range(n,1,i+1,1);s=t.findNextBracket(new C.Position(d,c))}return new a.Range(n,1,i+1,1)},e.prototype.addDecoration=function(e,t){var n={range:e,options:{inlineClassName:\"goto-definition-link\",hoverMessage:t}};this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[n])},e.prototype.removeLinkDecorations=function(){this.linkDecorations.length>0&&(this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[]))},e.prototype.isEnabled=function(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&l.DefinitionProviderRegistry.has(this.editor.getModel())},e.prototype.findDefinition=function(e,t){var n=this.editor.getModel()\n;return n?d.getDefinitionsAtPosition(n,e,t):Promise.resolve(null)},e.prototype.gotoDefinition=function(e,t){var n=this;this.editor.setPosition(e);var i=new _.DefinitionAction({openToSide:t,openInPeek:!1,muteMessage:!0},{alias:\"\",label:\"\",id:\"\",precondition:void 0});return this.editor.invokeWithinContext((function(e){return i.run(e,n.editor)}))},e.prototype.dispose=function(){this.toUnhook.dispose()},e.ID=\"editor.contrib.gotodefinitionatposition\",e.MAX_SOURCE_PREVIEW_LINES=8,e=h([g(1,p.ITextModelService),g(2,s.IModeService)],e)}();t.GotoDefinitionAtPositionEditorContribution=S,u.registerEditorContribution(S.ID,S),f.registerThemingParticipant((function(e,t){var n=e.getColor(m.editorActiveLinkForeground);n&&t.addRule(\".monaco-editor .goto-definition-link { color: \"+n+\" !important; }\")}))})),define(n[597],i([0,1,12,32,234,43,18,11,35,74]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,n,i,o,r,s,a){\nreturn e.call(this,!0,t,n,i,o,r,s,a)||this}return r(t,e),t=h([g(1,a.IContextKeyService),g(2,i.ICodeEditorService),g(3,u.INotificationService),g(4,l.IInstantiationService),g(5,d.IStorageService),g(6,s.IConfigurationService)],t)}(o.ReferencesController);t.StandaloneReferencesController=c,n.registerEditorContribution(o.ReferencesController.ID,c)})),define(n[598],i([0,1,112,14,20]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.className=function(e){switch(e){case n.default.Ignore:return\"severity-ignore codicon-info\";case n.default.Info:return\"codicon-info\";case n.default.Warning:return\"codicon-warning\";case n.default.Error:return\"codicon-error\"}return\"\"}}(t.SeverityIcon||(t.SeverityIcon={})),i.registerThemingParticipant((function(e,t){var n=e.getColor(o.problemsErrorIconForeground)\n;n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-error,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-error,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-error,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-error {\\n\\t\\t\\t\\tcolor: \"+n+\";\\n\\t\\t\\t}\\n\\t\\t\");var i=e.getColor(o.problemsWarningIconForeground);n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-warning,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-warning,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-warning,\\n\\t\\t\\t.extension-editor .codicon-warning,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-warning {\\n\\t\\t\\t\\tcolor: \"+i+\";\\n\\t\\t\\t}\\n\\t\\t\");var r=e.getColor(o.problemsInfoIconForeground);n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-info,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-info,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-info,\\n\\t\\t\\t.extension-editor .codicon-info,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-info {\\n\\t\\t\\t\\tcolor: \"+r+\";\\n\\t\\t\\t}\\n\\t\\t\")}))})),\ndefine(n[599],i([0,1,445,6,2,72,3,20,14,27,53,136,19,4,123,39,598,312]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t,n,r){var s=this;this._openerService=r,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new o.DisposableStore,this._editor=t;var a=document.createElement(\"div\");a.className=\"descriptioncontainer\",a.setAttribute(\"aria-live\",\"assertive\"),a.setAttribute(\"role\",\"alert\"),this._messageBlock=document.createElement(\"div\"),i.addClass(this._messageBlock,\"message\"),a.appendChild(this._messageBlock),this._relatedBlock=document.createElement(\"div\"),a.appendChild(this._relatedBlock),this._disposables.add(i.addStandardDisposableListener(this._relatedBlock,\"click\",(function(e){e.preventDefault();var t=s._relatedDiagnostics.get(e.target);t&&n(t)}))),this._scrollable=new c.ScrollableElement(a,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,\nverticalScrollbarSize:3}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((function(e){a.style.left=\"-\"+e.scrollLeft+\"px\",a.style.top=\"-\"+e.scrollTop+\"px\"}))),this._disposables.add(this._scrollable)}return e.prototype.dispose=function(){o.dispose(this._disposables)},e.prototype.update=function(e){var t=this,n=e.source,o=e.message,r=e.relatedInformation,s=e.code,a=((null==n?void 0:n.length)||0)+\"()\".length;s&&(a+=\"string\"==typeof s?s.length:s.value.length);var l=o.split(/\\r\\n|\\r|\\n/g);this._lines=l.length,this._longestLineLength=0;for(var u=0,d=l;u<d.length;u++){var c=d[u];this._longestLineLength=Math.max(c.length+a,this._longestLineLength)}i.clearNode(this._messageBlock),this._editor.applyFontInfo(this._messageBlock);for(var g=this._messageBlock,f=0,m=l;f<m.length;f++){c=m[f];(g=document.createElement(\"div\")).innerText=c,\"\"===c&&(g.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(g)}if(n||s){var v,_=document.createElement(\"span\")\n;if(i.addClass(_,\"details\"),g.appendChild(_),n){var y=document.createElement(\"span\");y.innerText=n,i.addClass(y,\"source\"),_.appendChild(y)}if(s)if(\"string\"==typeof s)(v=document.createElement(\"span\")).innerText=\"(\"+s+\")\",i.addClass(v,\"code\"),_.appendChild(v);else this._codeLink=i.$(\"a.code-link\"),this._codeLink.setAttribute(\"href\",\"\"+s.link.toString()),this._codeLink.onclick=function(e){t._openerService.open(s.link),e.preventDefault(),e.stopPropagation()},(v=i.append(this._codeLink,i.$(\"span\"))).innerText=s.value,_.appendChild(this._codeLink)}if(i.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),p.isNonEmptyArray(r)){var C=this._relatedBlock.appendChild(document.createElement(\"div\"));C.style.paddingTop=Math.floor(.66*this._editor.getOption(49))+\"px\",this._lines+=1;for(var b=0,S=r;b<S.length;b++){var w=S[b],E=document.createElement(\"div\"),L=document.createElement(\"a\");i.addClass(L,\"filename\"),L.innerHTML=h.getBaseLabel(w.resource)+\"(\"+w.startLineNumber+\", \"+w.startColumn+\"): \",\nL.title=h.getPathLabel(w.resource,void 0),this._relatedDiagnostics.set(L,w);var D=document.createElement(\"span\");D.innerText=w.message,E.appendChild(L),E.appendChild(D),this._lines+=1,C.appendChild(E)}}var N=this._editor.getOption(34),x=Math.ceil(N.typicalFullwidthCharacterWidth*this._longestLineLength*.75),I=N.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:x,scrollHeight:I})},e.prototype.layout=function(e,t){this._scrollable.getDomNode().style.height=e+\"px\",this._scrollable.getDomNode().style.width=t+\"px\",this._scrollable.setScrollDimensions({width:t,height:e})},e.prototype.getHeightInLines=function(){return Math.min(17,this._lines)},e}(),y=function(e){function l(t,n,i,r){var a=e.call(this,t,{showArrow:!0,showFrame:!0,isAccessible:!0})||this;return a.actions=n,a._themeService=i,a._openerService=r,a._callOnDispose=new o.DisposableStore,a._onDidSelectRelatedInformation=new g.Emitter,a.onDidSelectRelatedInformation=a._onDidSelectRelatedInformation.event,\na._severity=s.MarkerSeverity.Warning,a._backgroundColor=d.Color.white,a._applyTheme(i.getTheme()),a._callOnDispose.add(i.onThemeChange(a._applyTheme.bind(a))),a.create(),a}return r(l,e),l.prototype._applyTheme=function(e){this._backgroundColor=e.getColor(t.editorMarkerNavigationBackground);var n=t.editorMarkerNavigationError;this._severity===s.MarkerSeverity.Warning?n=t.editorMarkerNavigationWarning:this._severity===s.MarkerSeverity.Info&&(n=t.editorMarkerNavigationInfo);var i=e.getColor(n);this.style({arrowColor:i,frameColor:i,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(f.peekViewTitleForeground),secondaryHeadingColor:e.getColor(f.peekViewTitleInfoForeground)})},l.prototype._applyStyles=function(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():\"\"),e.prototype._applyStyles.call(this)},l.prototype.dispose=function(){this._callOnDispose.dispose(),e.prototype.dispose.call(this)},\nl.prototype._fillHead=function(t){e.prototype._fillHead.call(this,t),this._actionbarWidget.push(this.actions,{label:!1,icon:!0,index:0})},l.prototype._fillTitleIcon=function(e){this._icon=i.append(e,i.$(\"\"))},l.prototype._getActionBarOptions=function(){return{orientation:0}},l.prototype._fillBody=function(e){var t=this;this._parentContainer=e,i.addClass(e,\"marker-widget\"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute(\"role\",\"tooltip\"),this._container=document.createElement(\"div\"),e.appendChild(this._container),this._message=new _(this._container,this.editor,(function(e){return t._onDidSelectRelatedInformation.fire(e)}),this._openerService),this._disposables.add(this._message)},l.prototype.show=function(e,t){throw new Error(\"call showAtMarker\")},l.prototype.showAtMarker=function(t,i,o){this._container.classList.remove(\"stale\"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getTheme())\n;var r=a.Range.lift(t),l=this.editor.getPosition(),u=l&&r.containsPosition(l)?l:r.getStartPosition();e.prototype.show.call(this,u,this.computeRequiredHeight());var d=this.editor.getModel();if(d){var c=o>1?n.localize(0,null,i,o):n.localize(1,null,i,o);this.setTitle(m.basename(d.uri),c)}this._icon.className=\"codicon \"+v.SeverityIcon.className(s.MarkerSeverity.toSeverity(this._severity)),this.editor.revealPositionInCenter(u,0),this.editor.focus()},l.prototype.updateMarker=function(e){this._container.classList.remove(\"stale\"),this._message.update(e)},l.prototype.showStale=function(){this._container.classList.add(\"stale\"),this._relayout()},l.prototype._doLayoutBody=function(t,n){e.prototype._doLayoutBody.call(this,t,n),this._heightInPixel=t,this._message.layout(t,n),this._container.style.height=t+\"px\"},l.prototype._onWidth=function(e){this._message.layout(this._heightInPixel,e)},l.prototype._relayout=function(){e.prototype._relayout.call(this,this.computeRequiredHeight())},\nl.prototype.computeRequiredHeight=function(){return 3+this._message.getHeightInLines()},l}(f.PeekViewWidget);t.MarkerNavigationWidget=y;var C=l.oneOf(l.editorErrorForeground,l.editorErrorBorder),b=l.oneOf(l.editorWarningForeground,l.editorWarningBorder),S=l.oneOf(l.editorInfoForeground,l.editorInfoBorder);t.editorMarkerNavigationError=l.registerColor(\"editorMarkerNavigationError.background\",{dark:C,light:C,hc:C},n.localize(2,null)),t.editorMarkerNavigationWarning=l.registerColor(\"editorMarkerNavigationWarning.background\",{dark:b,light:b,hc:b},n.localize(3,null)),t.editorMarkerNavigationInfo=l.registerColor(\"editorMarkerNavigationInfo.background\",{dark:S,light:S,hc:S},n.localize(4,null)),t.editorMarkerNavigationBackground=l.registerColor(\"editorMarkerNavigation.background\",{dark:\"#2D2D30\",light:d.Color.white,hc:\"#0C141F\"},n.localize(5,null)),u.registerThemingParticipant((function(e,t){var n=e.getColor(l.textLinkForeground);n&&(t.addRule(\".monaco-editor .marker-widget a { color: \"+n+\"; }\"),\nt.addRule(\".monaco-editor .marker-widget a.code-link span:hover { color: \"+n+\"; }\"))}))})),define(n[237],i([0,1,444,4,2,18,72,3,12,14,23,599,5,19,32,10,65,55,34,39,51]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var D=function(){function e(e,t){var n=this;this._toUnbind=new o.DisposableStore,this._editor=e,this._markers=[],this._nextIdx=-1,this._ignoreSelectionChange=!1,this._onCurrentMarkerChanged=new i.Emitter,this._onMarkerSetChanged=new i.Emitter,this.setMarkers(t),this._toUnbind.add(this._editor.onDidDispose((function(){return n.dispose()}))),this._toUnbind.add(this._editor.onDidChangeCursorPosition((function(){n._ignoreSelectionChange||n.currentMarker&&n._editor.getPosition()&&l.Range.containsPosition(n.currentMarker,n._editor.getPosition())||(n._nextIdx=-1)})))}return Object.defineProperty(e.prototype,\"onCurrentMarkerChanged\",{get:function(){return this._onCurrentMarkerChanged.event},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onMarkerSetChanged\",{get:function(){return this._onMarkerSetChanged.event},enumerable:!0,configurable:!0}),e.prototype.setMarkers=function(e){var t=this._nextIdx>=0?this._markers[this._nextIdx]:void 0;this._markers=e||[],this._markers.sort(x.compareMarker),this._nextIdx=t?Math.max(-1,_.binarySearch(this._markers,t,x.compareMarker)):-1,this._onMarkerSetChanged.fire(this)},e.prototype.withoutWatchingEditorPosition=function(e){this._ignoreSelectionChange=!0;try{e()}finally{this._ignoreSelectionChange=!1}},e.prototype._initIdx=function(e){for(var t=!1,n=this._editor.getPosition(),i=0;i<this._markers.length;i++){var o=l.Range.lift(this._markers[i]);if(o.isEmpty()&&this._editor.getModel()){var r=this._editor.getModel().getWordAtPosition(o.getStartPosition());r&&(o=new l.Range(o.startLineNumber,r.startColumn,o.startLineNumber,r.endColumn))}if(n&&(o.containsPosition(n)||n.isBeforeOrEqual(o.getStartPosition()))){this._nextIdx=i,t=!0;break}}\nt||(this._nextIdx=e?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)},Object.defineProperty(e.prototype,\"currentMarker\",{get:function(){return this.canNavigate()?this._markers[this._nextIdx]:void 0},set:function(e){var t=this._nextIdx;this._nextIdx=-1,e&&(this._nextIdx=this.indexOf(e)),this._nextIdx!==t&&this._onCurrentMarkerChanged.fire(e)},enumerable:!0,configurable:!0}),e.prototype.move=function(e,t){if(!this.canNavigate())return this._onCurrentMarkerChanged.fire(void 0),!t;var n=this._nextIdx,i=!1;if(-1===this._nextIdx?this._initIdx(e):e?t||this._nextIdx+1<this._markers.length?this._nextIdx=(this._nextIdx+1)%this._markers.length:i=!0:e||(t||this._nextIdx>0?this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length:i=!0),n!==this._nextIdx){var o=this._markers[this._nextIdx];this._onCurrentMarkerChanged.fire(o)}return i},e.prototype.canNavigate=function(){return this._markers.length>0},e.prototype.findMarkerAtPosition=function(e){\nreturn _.find(this._markers,(function(t){return l.Range.containsPosition(t,e)}))},Object.defineProperty(e.prototype,\"total\",{get:function(){return this._markers.length},enumerable:!0,configurable:!0}),e.prototype.indexOf=function(e){return 1+this._markers.indexOf(e)},e.prototype.dispose=function(){this._toUnbind.dispose()},e}(),N=function(){function e(e,t,n,i,r,s,a){this._markerService=t,this._contextKeyService=n,this._themeService=i,this._editorService=r,this._keybindingService=s,this._openerService=a,this._model=null,this._widget=null,this._disposeOnClose=new o.DisposableStore,this._editor=e,this._widgetVisible=R.bindTo(this._contextKeyService)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._cleanUp(),this._disposeOnClose.dispose()},e.prototype._cleanUp=function(){this._widgetVisible.reset(),this._disposeOnClose.clear(),this._widget=null,this._model=null},e.prototype.getOrCreateModel=function(){var e=this;if(this._model)return this._model\n;var t=this._getMarkers();this._model=new D(this._editor,t),this._markerService.onMarkerChanged(this._onMarkerChanged,this,this._disposeOnClose);var n=this._keybindingService.lookupKeybinding(M.ID),i=this._keybindingService.lookupKeybinding(I.ID),o=[new S.Action(I.ID,I.LABEL+(i?\" (\"+i.getLabel()+\")\":\"\"),\"show-next-problem codicon-chevron-down\",this._model.canNavigate(),(function(){return d(e,void 0,void 0,(function(){return c(this,(function(e){return this._model&&this._model.move(!0,!0),[2]}))}))})),new S.Action(M.ID,M.LABEL+(n?\" (\"+n.getLabel()+\")\":\"\"),\"show-previous-problem codicon-chevron-up\",this._model.canNavigate(),(function(){return d(e,void 0,void 0,(function(){return c(this,(function(e){return this._model&&this._model.move(!1,!0),[2]}))}))}))];this._widget=new m.MarkerNavigationWidget(this._editor,o,this._themeService,this._openerService),this._widgetVisible.set(!0),this._widget.onDidClose((function(){return e.closeMarkersNavigation()}),this,this._disposeOnClose),\nthis._disposeOnClose.add(this._model),this._disposeOnClose.add(this._widget);for(var r=0,s=o;r<s.length;r++){var a=s[r];this._disposeOnClose.add(a)}return this._disposeOnClose.add(this._widget.onDidSelectRelatedInformation((function(t){e._editorService.openCodeEditor({resource:t.resource,options:{pinned:!0,revealIfOpened:!0,selection:l.Range.lift(t).collapseToStart()}},e._editor).then(void 0,C.onUnexpectedError),e.closeMarkersNavigation(!1)}))),this._disposeOnClose.add(this._editor.onDidChangeModel((function(){return e._cleanUp()}))),this._disposeOnClose.add(this._model.onCurrentMarkerChanged((function(t){t&&e._model?e._model.withoutWatchingEditorPosition((function(){e._widget&&e._model&&e._widget.showAtMarker(t,e._model.indexOf(t),e._model.total)})):e._cleanUp()}))),this._disposeOnClose.add(this._model.onMarkerSetChanged((function(){if(e._widget&&e._widget.position&&e._model){var t=e._model.findMarkerAtPosition(e._widget.position);t?e._widget.updateMarker(t):e._widget.showStale()}}))),this._model},\ne.prototype.closeMarkersNavigation=function(e){void 0===e&&(e=!0),this._cleanUp(),e&&this._editor.focus()},e.prototype.show=function(e){this.getOrCreateModel().currentMarker=e},e.prototype._onMarkerChanged=function(e){var t=this._editor.getModel();t&&this._model&&e.some((function(e){return E.isEqual(t.uri,e)}))&&this._model.setMarkers(this._getMarkers())},e.prototype._getMarkers=function(){var e=this._editor.getModel();return e?this._markerService.read({resource:e.uri,severities:a.MarkerSeverity.Error|a.MarkerSeverity.Warning|a.MarkerSeverity.Info}):[]},e.ID=\"editor.contrib.markerController\",e=h([g(1,a.IMarkerService),g(2,s.IContextKeyService),g(3,p.IThemeService),g(4,y.ICodeEditorService),g(5,w.IKeybindingService),g(6,L.IOpenerService)],e)}();t.MarkerController=N;var x=function(e){function t(t,n,i){var o=e.call(this,i)||this;return o._isNext=t,o._multiFile=n,o}return r(t,e),t.prototype.run=function(e,n){var i=this,o=e.get(a.IMarkerService),r=e.get(y.ICodeEditorService),s=N.get(n)\n;if(!s)return Promise.resolve(void 0);var l=s.getOrCreateModel();if(!l.move(this._isNext,!this._multiFile)||!this._multiFile)return Promise.resolve(void 0);var u=o.read({severities:a.MarkerSeverity.Error|a.MarkerSeverity.Warning|a.MarkerSeverity.Info}).sort(t.compareMarker);if(0===u.length)return Promise.resolve(void 0);var d=n.getModel();if(!d)return Promise.resolve(void 0);var c=l.currentMarker||{resource:d.uri,severity:a.MarkerSeverity.Error,startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1},h=_.binarySearch(u,c,t.compareMarker);h<0?(h=~h,h%=u.length):h=this._isNext?(h+1)%u.length:(h+u.length-1)%u.length;var p=u[h];return E.isEqual(p.resource,d.uri)?(l.move(this._isNext,!0),Promise.resolve(void 0)):(s.closeMarkersNavigation(),r.openCodeEditor({resource:p.resource,options:{pinned:!1,revealIfOpened:!0,revealInCenterIfOutsideViewport:!0,selection:p}},n).then((function(e){if(e)return e.getAction(i.id).run()})))},t.compareMarker=function(e,t){\nvar n=v.compare(e.resource.toString(),t.resource.toString());return 0===n&&(n=a.MarkerSeverity.compare(e.severity,t.severity)),0===n&&(n=l.Range.compareRangesUsingStarts(e,t)),n},t}(u.EditorAction),I=function(e){function t(){return e.call(this,!0,!1,{id:t.ID,label:t.LABEL,alias:\"Go to Next Problem (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:578,weight:100}})||this}return r(t,e),t.ID=\"editor.action.marker.next\",t.LABEL=n.localize(0,null),t}(x);t.NextMarkerAction=I;var M=function(e){function t(){return e.call(this,!1,!1,{id:t.ID,label:t.LABEL,alias:\"Go to Previous Problem (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:1602,weight:100}})||this}return r(t,e),t.ID=\"editor.action.marker.prev\",t.LABEL=n.localize(1,null),t}(x),k=function(e){function t(){return e.call(this,!0,!0,{id:\"editor.action.marker.nextInFiles\",label:n.localize(2,null),\nalias:\"Go to Next Problem in Files (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:66,weight:100}})||this}return r(t,e),t}(x),T=function(e){function t(){return e.call(this,!1,!0,{id:\"editor.action.marker.prevInFiles\",label:n.localize(3,null),alias:\"Go to Previous Problem in Files (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:1090,weight:100}})||this}return r(t,e),t}(x);u.registerEditorContribution(N.ID,N),u.registerEditorAction(I),u.registerEditorAction(M),u.registerEditorAction(k),u.registerEditorAction(T);var R=new s.RawContextKey(\"markersNavigationVisible\",!1),O=u.EditorCommand.bindToContribution(N.get);u.registerEditorCommand(new O({id:\"closeMarkersNavigation\",precondition:R,handler:function(e){return e.closeMarkersNavigation()},kbOpts:{weight:150,kbExpr:f.EditorContextKeys.focus,primary:9,secondary:[1033]}})),b.MenuRegistry.appendMenuItem(19,{group:\"6_problem_nav\",\ncommand:{id:\"editor.action.marker.nextInFiles\",title:n.localize(4,null)},order:1}),b.MenuRegistry.appendMenuItem(19,{group:\"6_problem_nav\",command:{id:\"editor.action.marker.prevInFiles\",title:n.localize(5,null)},order:2})}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[600],i([0,1,454,6,26,27,75,2,13,3,30,17,222,223,375,570,538,200,201,117,14,19,72,39,10,51,237,15,119,233,111,20]),(function(e,t,n,i,o,s,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var O=i.$,P=function(e,t,n){this.range=e,this.color=t,this.provider=n},A=function(e,t){this.range=e,this.marker=t},F=function(){function e(e,t){this._markerDecorationsService=t,this._editor=e,this._result=[]}return e.prototype.setRange=function(e){this._range=e,this._result=[]},e.prototype.clearResult=function(){\nthis._result=[]},e.prototype.computeAsync=function(e){if(!this._editor.hasModel()||!this._range)return Promise.resolve([]);var t=this._editor.getModel();return p.HoverProviderRegistry.has(t)?_.getHover(t,new d.Position(this._range.startLineNumber,this._range.startColumn),e):Promise.resolve([])},e.prototype.computeSync=function(){var e=this;if(!this._editor.hasModel()||!this._range)return[];var t=this._editor.getModel(),n=this._range.startLineNumber;if(n>this._editor.getModel().getLineCount())return[];var i=f.ColorDetector.get(this._editor),o=t.getLineMaxColumn(n),r=this._editor.getLineDecorations(n),s=!1,a=this._range,u=r.map((function(r){var u=r.range.startLineNumber===n?r.range.startColumn:1,d=r.range.endLineNumber===n?r.range.endColumn:o;if(u>a.startColumn||a.endColumn>d)return null;var h=new c.Range(a.startLineNumber,u,a.startLineNumber,d),p=e._markerDecorationsService.getMarker(t,r);if(p)return new A(h,p);var g=i.getColorData(r.range.getStartPosition());if(!s&&g){s=!0\n;var f=g.colorInfo,m=f.color,v=f.range;return new P(v,m,g.provider)}return l.isEmptyMarkdownString(r.options.hoverMessage)?null:{contents:r.options.hoverMessage?w.asArray(r.options.hoverMessage):[],range:h}}));return w.coalesce(u)},e.prototype.onResult=function(e,t){this._result=t?e.concat(this._result.sort((function(e,t){return e instanceof P?-1:t instanceof P?1:0}))):this._result.concat(e)},e.prototype.getResult=function(){return this._result.slice(0)},e.prototype.getResultWithLoadingMessage=function(){return this._result.slice(0).concat([this._getLoadingMessage()])},e.prototype._getLoadingMessage=function(){return{range:this._range,contents:[(new l.MarkdownString).appendText(n.localize(0,null))]}},e}(),W={type:2,filter:{include:T.CodeActionKind.QuickFix}},B=function(e){function t(n,o,r,s,a,l){void 0===l&&(l=N.NullOpenerService);var d=e.call(this,t.ID,n)||this;return d._themeService=r,d._keybindingService=s,d._modeService=a,d._openerService=l,d.renderDisposable=d._register(new u.MutableDisposable),\nd._messages=[],d._lastRange=null,d._computer=new F(d._editor,o),d._highlightDecorations=[],d._isChangingDecorations=!1,d._shouldFocus=!1,d._colorPicker=null,d._hoverOperation=new y.HoverOperation(d._computer,(function(e){return d._withResult(e,!0)}),null,(function(e){return d._withResult(e,!1)}),d._editor.getOption(44).delay),d._register(i.addStandardDisposableListener(d.getDomNode(),i.EventType.FOCUS,(function(){d._colorPicker&&i.addClass(d.getDomNode(),\"colorpicker-hover\")}))),d._register(i.addStandardDisposableListener(d.getDomNode(),i.EventType.BLUR,(function(){i.removeClass(d.getDomNode(),\"colorpicker-hover\")}))),d._register(n.onDidChangeConfiguration((function(e){d._hoverOperation.setHoverTime(d._editor.getOption(44).delay)}))),d._register(p.TokenizationRegistry.onDidChange((function(e){d.isVisible&&d._lastRange&&d._messages.length>0&&(d._domNode.textContent=\"\",d._renderMessages(d._lastRange,d._messages))}))),d}return r(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),\ne.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this._isChangingDecorations||this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._colorPicker||this._hoverOperation.start(0))},t.prototype.startShowingAt=function(e,t,n){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this.isVisible)if(this._showAtPosition&&this._showAtPosition.lineNumber===e.startLineNumber){for(var i=[],o=0,r=this._messages.length;o<r;o++){var s=this._messages[o],a=s.range;a&&a.startColumn<=e.startColumn&&a.endColumn>=e.endColumn&&i.push(s)}if(i.length>0){if(function(e,t){if(!e&&t||e&&!t||e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var i=e[n],o=t[n];if(i instanceof A&&o instanceof A)return E.IMarkerData.makeKey(i.marker)===E.IMarkerData.makeKey(o.marker);if(i instanceof P||o instanceof P)return!1;if(i instanceof A||o instanceof A)return!1;if(!l.markedStringsEquals(i.contents,o.contents))return!1}return!0}(i,this._messages))return\n;this._renderMessages(e,i)}else this.hide()}else this.hide();this._lastRange=e,this._computer.setRange(e),this._shouldFocus=n,this._hoverOperation.start(t)}},t.prototype.hide=function(){this._lastRange=null,this._hoverOperation.cancel(),e.prototype.hide.call(this),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[]),this._isChangingDecorations=!1,this.renderDisposable.clear(),this._colorPicker=null},t.prototype.isColorPickerVisible=function(){return!!this._colorPicker},t.prototype._withResult=function(e,t){this._messages=e,this._lastRange&&this._messages.length>0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()},t.prototype._renderMessages=function(e,n){var r=this;this.renderDisposable.dispose(),this._colorPicker=null;var h=1073741824,p=n[0].range?c.Range.lift(n[0].range):null,f=document.createDocumentFragment(),_=!0,y=!1,C=new u.DisposableStore,S=[];if(n.forEach((function(e){if(e.range)if(h=Math.min(h,e.range.startColumn),\np=p?c.Range.plusRange(p,e.range):c.Range.lift(e.range),e instanceof P){y=!0;var t=e.color,n=t.red,d=t.green,w=t.blue,E=t.alpha,L=new s.RGBA(Math.round(255*n),Math.round(255*d),Math.round(255*w),E),D=new s.Color(L);if(!r._editor.hasModel())return;var N=r._editor.getModel(),x=new c.Range(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn),I={range:e.range,color:e.color},M=new m.ColorPickerModel(D,[],0),k=new v.ColorPickerWidget(f,M,r._editor.getOption(105),r._themeService);g.getColorPresentations(N,I,e.provider,o.CancellationToken.None).then((function(t){if(M.colorPresentations=t||[],r._editor.hasModel()){var n=r._editor.getModel().getValueInRange(e.range);M.guessColorPresentation(D,n);var i=function(){var e,t;M.presentation.textEdit?(e=[M.presentation.textEdit],\nt=(t=new c.Range(M.presentation.textEdit.range.startLineNumber,M.presentation.textEdit.range.startColumn,M.presentation.textEdit.range.endLineNumber,M.presentation.textEdit.range.endColumn)).setEndPosition(t.endLineNumber,t.startColumn+M.presentation.textEdit.text.length)):(e=[{identifier:null,range:x,text:M.presentation.label,forceMoveMarkers:!1}],t=x.setEndPosition(x.endLineNumber,x.startColumn+M.presentation.label.length)),r._editor.pushUndoStop(),r._editor.executeEdits(\"colorpicker\",e),M.presentation.additionalTextEdits&&(e=a(M.presentation.additionalTextEdits),r._editor.executeEdits(\"colorpicker\",e),r.hide()),r._editor.pushUndoStop(),x=t},s=function(t){return g.getColorPresentations(N,{range:x,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},e.provider,o.CancellationToken.None).then((function(e){M.colorPresentations=e||[]}))},l=M.onColorFlushed((function(e){s(e).then(i)})),d=M.onDidChangeColor(s);r._colorPicker=k,r.showAt(x.getStartPosition(),x,r._shouldFocus),\nr.updateContents(f),r._colorPicker.layout(),r.renderDisposable.value=u.combinedDisposable(l,d,k,C)}}))}else e instanceof A?(S.push(e),_=!1):e.contents.filter((function(e){return!l.isEmptyMarkdownString(e)})).forEach((function(e){var t=O(\"div.hover-row.markdown-hover\"),n=i.append(t,O(\"div.hover-contents\")),o=C.add(new b.MarkdownRenderer(r._editor,r._modeService,r._openerService));C.add(o.onDidRenderCodeBlock((function(){n.className=\"hover-contents code-hover-contents\",r.onContentsChange()})));var s=C.add(o.render(e));n.appendChild(s.element),f.appendChild(t),_=!1}))})),S.length){S.forEach((function(e){return f.appendChild(r.renderMarkerHover(e))}));var w=1===S.length?S[0]:S.sort((function(e,t){return E.MarkerSeverity.compare(e.marker.severity,t.marker.severity)}))[0];f.appendChild(this.renderMarkerStatusbar(w))}y||_||(this.showAt(new d.Position(e.startLineNumber,h),p,this._shouldFocus),this.updateContents(f)),this._isChangingDecorations=!0,\nthis._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,p?[{range:p,options:t._DECORATION_OPTIONS}]:[]),this._isChangingDecorations=!1},t.prototype.renderMarkerHover=function(e){var t=this,n=O(\"div.hover-row\"),o=i.append(n,O(\"div.marker.hover-contents\")),r=e.marker,s=r.source,a=r.message,l=r.code,u=r.relatedInformation;this._editor.applyFontInfo(o);var d=i.append(o,O(\"span\"));if(d.style.whiteSpace=\"pre-wrap\",d.innerText=a,s||l)if(\"string\"==typeof l)(c=i.append(o,O(\"span\"))).style.opacity=\"0.6\",c.style.paddingLeft=\"6px\",c.innerText=s&&l?s+\"(\"+l+\")\":s||\"(\"+l+\")\";else if(l){var c,h=O(\"span\");if(s)i.append(h,O(\"span\")).innerText=s;this._codeLink=i.append(h,O(\"a.code-link\")),this._codeLink.setAttribute(\"href\",l.link.toString()),this._codeLink.onclick=function(e){t._openerService.open(l.link),e.preventDefault(),e.stopPropagation()},i.append(this._codeLink,O(\"span\")).innerText=l.value,(c=i.append(o,h)).style.opacity=\"0.6\",c.style.paddingLeft=\"6px\"}\nif(w.isNonEmptyArray(u))for(var p=function(e,n,r,s){var a=i.append(o,O(\"div\"));a.style.marginTop=\"8px\";var l=i.append(a,O(\"a\"));l.innerText=L.basename(n)+\"(\"+r+\", \"+s+\"): \",l.style.cursor=\"pointer\",l.onclick=function(e){e.stopPropagation(),e.preventDefault(),t._openerService&&t._openerService.open(n.with({fragment:r+\",\"+s}),{fromUserGesture:!0}).catch(D.onUnexpectedError)};var u=i.append(a,O(\"span\"));u.innerText=e,g._editor.applyFontInfo(u)},g=this,f=0,m=u;f<m.length;f++){var v=m[f];p(v.message,v.resource,v.startLineNumber,v.startColumn)}return n},t.prototype.renderMarkerStatusbar=function(e){var t=this,o=O(\"div.hover-row.status-bar\"),r=new u.DisposableStore,s=i.append(o,O(\"div.actions\"));e.marker.severity!==E.MarkerSeverity.Error&&e.marker.severity!==E.MarkerSeverity.Warning&&e.marker.severity!==E.MarkerSeverity.Info||r.add(this.renderAction(s,{label:n.localize(1,null),commandId:x.NextMarkerAction.ID,run:function(){t.hide(),x.MarkerController.get(t._editor).show(e.marker),t._editor.focus()}}))\n;var a=i.append(s,O(\"div\"));a.style.opacity=\"0\",a.style.transition=\"opacity 0.2s\",setTimeout((function(){return a.style.opacity=\"1\"}),200),a.textContent=n.localize(2,null),r.add(u.toDisposable((function(){return a.remove()})));var l=this.getCodeActions(e.marker);return r.add(u.toDisposable((function(){return l.cancel()}))),l.then((function(e){if(a.style.transition=\"\",a.style.opacity=\"1\",!e.validActions.length)return e.dispose(),void(a.textContent=n.localize(3,null));a.remove();var o=!1;r.add(u.toDisposable((function(){o||e.dispose()}))),r.add(t.renderAction(s,{label:n.localize(4,null),commandId:k.QuickFixAction.Id,run:function(n){o=!0;var r=k.QuickFixController.get(t._editor),s=i.getDomNodePagePosition(n);r.showCodeActions(W,e,{x:s.left+6,y:s.top+s.height+6})}}))})),this.renderDisposable.value=r,o},t.prototype.getCodeActions=function(e){var t=this;return I.createCancelablePromise((function(n){\nreturn M.getCodeActions(t._editor.getModel(),new c.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),W,n)}))},t.prototype.renderAction=function(e,t){var n=i.append(e,O(\"div.action-container\")),o=i.append(n,O(\"a.action\"));t.iconClass&&i.append(o,O(\"span.icon.\"+t.iconClass));var r=i.append(o,O(\"span\"));r.textContent=t.label;var s=this._keybindingService.lookupKeybinding(t.commandId);return s&&(r.title=t.label+\" (\"+s.getLabel()+\")\"),i.addDisposableListener(n,i.EventType.CLICK,(function(e){e.stopPropagation(),e.preventDefault(),t.run(n)}))},t.ID=\"editor.contrib.modesContentHoverWidget\",t._DECORATION_OPTIONS=h.ModelDecorationOptions.register({className:\"hoverHighlight\"}),t}(C.ContentHoverWidget);t.ModesContentHoverWidget=B,S.registerThemingParticipant((function(e,t){var n=e.getColor(R.textLinkForeground);n&&t.addRule(\".monaco-editor-hover .hover-contents a.code-link span:hover { color: \"+n+\"; }\")}))})),\ndefine(n[601],i([0,1,453,36,2,12,3,23,71,600,510,51,20,14,210,34,236,315]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=function(){function e(e,t,n,i,r,s){var a=this;this._editor=e,this._openerService=t,this._modeService=n,this._markerDecorationsService=i,this._keybindingService=r,this._themeService=s,this._toUnhook=new o.DisposableStore,this._contentWidget=new o.MutableDisposable,this._glyphWidget=new o.MutableDisposable,this._isMouseDown=!1,this._hoverClicked=!1,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((function(e){e.hasChanged(44)&&(a._hideWidgets(),a._unhookEvents(),a._hookEvents())}))}return Object.defineProperty(e.prototype,\"contentWidget\",{get:function(){return this._contentWidget.value||this._createHoverWidgets(),this._contentWidget.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"glyphWidget\",{get:function(){\nreturn this._glyphWidget.value||this._createHoverWidgets(),this._glyphWidget.value},enumerable:!0,configurable:!0}),e.get=function(t){return t.getContribution(e.ID)},e.prototype._hookEvents=function(){var e=this,t=function(){return e._hideWidgets()},n=this._editor.getOption(44);this._isHoverEnabled=n.enabled,this._isHoverSticky=n.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((function(t){return e._onEditorMouseDown(t)}))),this._toUnhook.add(this._editor.onMouseUp((function(t){return e._onEditorMouseUp(t)}))),this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)}))),this._toUnhook.add(this._editor.onDidChangeModelDecorations((function(){return e._onModelDecorationsChanged()})))):this._toUnhook.add(this._editor.onMouseMove(t)),this._toUnhook.add(this._editor.onMouseLeave(t)),this._toUnhook.add(this._editor.onDidChangeModel(t)),\nthis._toUnhook.add(this._editor.onDidScrollChange((function(t){return e._onEditorScrollChanged(t)})))},e.prototype._unhookEvents=function(){this._toUnhook.clear()},e.prototype._onModelDecorationsChanged=function(){this.contentWidget.onModelDecorationsChanged(),this.glyphWidget.onModelDecorationsChanged()},e.prototype._onEditorScrollChanged=function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()},e.prototype._onEditorMouseDown=function(e){this._isMouseDown=!0;var t=e.target.type;9!==t||e.target.detail!==d.ModesContentHoverWidget.ID?12===t&&e.target.detail===c.ModesGlyphHoverWidget.ID||(12!==t&&e.target.detail!==c.ModesGlyphHoverWidget.ID&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0},e.prototype._onEditorMouseUp=function(e){this._isMouseDown=!1},e.prototype._onEditorMouseMove=function(e){var t=e.target.type\n;if(!(this._isMouseDown&&this._hoverClicked&&this.contentWidget.isColorPickerVisible()||this._isHoverSticky&&9===t&&e.target.detail===d.ModesContentHoverWidget.ID||this._isHoverSticky&&12===t&&e.target.detail===c.ModesGlyphHoverWidget.ID)){if(7===t){var n=this._editor.getOption(34).typicalHalfwidthCharacterWidth/2,i=e.target.detail;i&&!i.isAfterLines&&\"number\"==typeof i.horizontalDistanceToText&&i.horizontalDistanceToText<n&&(t=6)}6===t?(this.glyphWidget.hide(),this._isHoverEnabled&&e.target.range&&this.contentWidget.startShowingAt(e.target.range,0,!1)):2===t?(this.contentWidget.hide(),this._isHoverEnabled&&e.target.position&&this.glyphWidget.startShowingAt(e.target.position.lineNumber)):this._hideWidgets()}},e.prototype._onKeyDown=function(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()},e.prototype._hideWidgets=function(){\n!this._glyphWidget.value||!this._contentWidget.value||this._isMouseDown&&this._hoverClicked&&this._contentWidget.value.isColorPickerVisible()||(this._glyphWidget.value.hide(),this._contentWidget.value.hide())},e.prototype._createHoverWidgets=function(){this._contentWidget.value=new d.ModesContentHoverWidget(this._editor,this._markerDecorationsService,this._themeService,this._keybindingService,this._modeService,this._openerService),this._glyphWidget.value=new c.ModesGlyphHoverWidget(this._editor,this._modeService,this._openerService)},e.prototype.showContentHover=function(e,t,n){this.contentWidget.startShowingAt(e,t,n)},e.prototype.dispose=function(){this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),this._glyphWidget.dispose(),this._contentWidget.dispose()},e.ID=\"editor.contrib.hover\",e=h([g(1,p.IOpenerService),g(2,u.IModeService),g(3,v.IMarkerDecorationsService),g(4,_.IKeybindingService),g(5,m.IThemeService)],e)}();t.ModesHoverController=C;var b=function(e){\nfunction t(){return e.call(this,{id:\"editor.action.showHover\",label:n.localize(0,null),alias:\"Show Hover\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2087),weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=C.get(t);if(n){var i=t.getPosition(),o=new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),r=2===t.getOption(2);n.showContentHover(o,1,r)}}},t}(s.EditorAction),S=function(e){function t(){return e.call(this,{id:\"editor.action.showDefinitionPreviewHover\",label:n.localize(1,null),alias:\"Show Definition Preview Hover\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=C.get(t);if(n){var i=t.getPosition();if(i){var o=new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),r=y.GotoDefinitionAtPositionEditorContribution.get(t).startFindDefinitionFromCursor(i);r?r.then((function(){n.showContentHover(o,1,!0)})):n.showContentHover(o,1,!0)}}},t}(s.EditorAction);s.registerEditorContribution(C.ID,C),\ns.registerEditorAction(b),s.registerEditorAction(S),m.registerThemingParticipant((function(e,t){var n=e.getColor(f.editorHoverHighlight);n&&t.addRule(\".monaco-editor .hoverHighlight { background-color: \"+n+\"; }\");var i=e.getColor(f.editorHoverBackground);i&&t.addRule(\".monaco-editor .monaco-editor-hover { background-color: \"+i+\"; }\");var o=e.getColor(f.editorHoverBorder);o&&(t.addRule(\".monaco-editor .monaco-editor-hover { border: 1px solid \"+o+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid \"+o.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover hr { border-top: 1px solid \"+o.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover hr { border-bottom: 0px solid \"+o.transparent(.5)+\"; }\"));var r=e.getColor(f.textLinkForeground);r&&t.addRule(\".monaco-editor .monaco-editor-hover a { color: \"+r+\"; }\");var s=e.getColor(f.editorHoverForeground);s&&t.addRule(\".monaco-editor .monaco-editor-hover { color: \"+s+\"; }\")\n;var a=e.getColor(f.editorHoverStatusBarBackground);a&&t.addRule(\".monaco-editor .monaco-editor-hover .hover-row .actions { background-color: \"+a+\"; }\");var l=e.getColor(f.textCodeBlockBackground);l&&t.addRule(\".monaco-editor .monaco-editor-hover code { background-color: \"+l+\"; }\")}))})),define(n[171],i([0,1,25,39,11,38]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IWorkspaceContextService=o.createDecorator(\"contextService\"),function(e){e.isIWorkspace=function(e){return e&&\"object\"==typeof e&&\"string\"==typeof e.id&&Array.isArray(e.folders)}}(t.IWorkspace||(t.IWorkspace={})),function(e){e.isIWorkspaceFolder=function(e){return e&&\"object\"==typeof e&&n.URI.isUri(e.uri)&&\"string\"==typeof e.name&&\"function\"==typeof e.toResource}}(t.IWorkspaceFolder||(t.IWorkspaceFolder={}));var s=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=null),this._id=e,this._configuration=n,this._foldersMap=r.TernarySearchTree.forPaths(),this.folders=t}\nreturn Object.defineProperty(e.prototype,\"folders\",{get:function(){return this._folders},set:function(e){this._folders=e,this.updateFoldersMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"configuration\",{get:function(){return this._configuration},set:function(e){this._configuration=e},enumerable:!0,configurable:!0}),e.prototype.getFolder=function(e){return e&&this._foldersMap.findSubstr(e.with({scheme:e.scheme,authority:e.authority,path:e.path}).toString())||null},e.prototype.updateFoldersMap=function(){this._foldersMap=r.TernarySearchTree.forPaths();for(var e=0,t=this.folders;e<t.length;e++){var n=t[e];this._foldersMap.set(n.uri.toString(),n)}},e.prototype.toJSON=function(){return{id:this.id,folders:this.folders,configuration:this.configuration}},e}();t.Workspace=s;var a=function(){function e(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}\nreturn e.prototype.toResource=function(e){return i.joinPath(this.uri,e)},e.prototype.toJSON=function(){return{uri:this.uri,name:this.name,index:this.index}},e}();t.WorkspaceFolder=a}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[172],i([0,1,5,6,56,4,36,2,16,112,25,108,163,58,13,3,17,29,43,518,502,217,86,504,505,35,171,59]),(function(e,t,n,i,o,s,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var T=function(){function e(e){this.model=e,this._onDispose=new s.Emitter}return Object.defineProperty(e.prototype,\"textEditorModel\",{get:function(){return this.model},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose.fire()},e}();t.SimpleModel=T;var R=function(){function e(e){this.modelService=e}return e.prototype.setEditor=function(e){this.editor=e},\ne.prototype.createModelReference=function(e){var t,n,i,o=this,r=null;return this.editor&&(t=this.editor,n=function(t){return o.findModel(t,e)},i=function(t){return o.findModel(t.getOriginalEditor(),e)||o.findModel(t.getModifiedEditor(),e)},r=f.isCodeEditor(t)?n(t):i(t)),r?Promise.resolve(new u.ImmortalReference(new T(r))):Promise.reject(new Error(\"Model not found\"))},e.prototype.findModel=function(e,t){var n=this.modelService?this.modelService.getModel(t):e.getModel();return n&&n.uri.toString()!==t.toString()?null:n},e}();t.SimpleEditorModelResolverService=R;var O=function(){function e(){}return e.prototype.show=function(){return e.NULL_PROGRESS_RUNNER},e.prototype.showWhile=function(e,t){return Promise.resolve(void 0)},e.NULL_PROGRESS_RUNNER={done:function(){},total:function(){},worked:function(){}},e}();t.SimpleEditorProgressService=O;var P=function(){};t.SimpleDialogService=P;var A=function(){function e(){}return e.prototype.info=function(e){return this.notify({severity:c.default.Info,message:e})},\ne.prototype.warn=function(e){return this.notify({severity:c.default.Warning,message:e})},e.prototype.error=function(e){return this.notify({severity:c.default.Error,message:e})},e.prototype.notify=function(t){switch(t.severity){case c.default.Error:console.error(t.message);break;case c.default.Warning:console.warn(t.message);break;default:console.log(t.message)}return e.NO_OP},e.prototype.status=function(e,t){return u.Disposable.None},e.NO_OP=new I.NoOpNotification,e}();t.SimpleNotificationService=A;var F=function(){function e(e){this._onWillExecuteCommand=new s.Emitter,this._onDidExecuteCommand=new s.Emitter,this._instantiationService=e,this._dynamicCommands=Object.create(null)}return e.prototype.addCommand=function(e){var t=this,n=e.id;return this._dynamicCommands[n]=e,u.toDisposable((function(){delete t._dynamicCommands[n]}))},e.prototype.executeCommand=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=b.CommandsRegistry.getCommand(e)||this._dynamicCommands[e]\n;if(!i)return Promise.reject(new Error(\"command '\"+e+\"' not found\"));try{this._onWillExecuteCommand.fire({commandId:e,args:t});var o=this._instantiationService.invokeFunction.apply(this._instantiationService,a([i.handler],t));return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(o)}catch(e){return Promise.reject(e)}},e}();t.StandaloneCommandService=F;var W=function(e){function t(t,n,r,s,a){var l=e.call(this,t,n,r,s)||this;return l._cachedResolver=null,l._dynamicKeybindings=[],l._register(i.addDisposableListener(a,i.EventType.KEY_DOWN,(function(e){var t=new o.StandardKeyboardEvent(e);l._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),l}return r(t,e),t.prototype.addDynamicKeybinding=function(e,t,n,i){var o=this,r=l.createKeybinding(t,d.OS),s=new u.DisposableStore;r&&(this._dynamicKeybindings.push({keybinding:r,command:e,when:i,weight1:1e3,weight2:0}),s.add(u.toDisposable((function(){for(var t=0;t<o._dynamicKeybindings.length;t++){\nif(o._dynamicKeybindings[t].command===e)return o._dynamicKeybindings.splice(t,1),void o.updateResolver({source:1})}}))));var a=this._commandService;if(!(a instanceof F))throw new Error(\"Unknown command service!\");return s.add(a.addCommand({id:e,handler:n})),this.updateResolver({source:1}),s},t.prototype.updateResolver=function(e){this._cachedResolver=null,this._onDidUpdateKeybindings.fire(e)},t.prototype._getResolver=function(){if(!this._cachedResolver){var e=this._toNormalizedKeybindingItems(D.KeybindingsRegistry.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new L.KeybindingResolver(e,t)}return this._cachedResolver},t.prototype._documentHasFocus=function(){return document.hasFocus()},t.prototype._toNormalizedKeybindingItems=function(e,t){for(var n=[],i=0,o=0,r=e;o<r.length;o++){var s=r[o],a=s.when||void 0,l=s.keybinding;if(l)for(var u=0,d=this.resolveKeybinding(l);u<d.length;u++){var c=d[u]\n;n[i++]=new N.ResolvedKeybindingItem(c,s.command,s.commandArgs,a,t)}else n[i++]=new N.ResolvedKeybindingItem(void 0,s.command,s.commandArgs,a,t)}return n},t.prototype.resolveKeybinding=function(e){return[new x.USLayoutResolvedKeybinding(e,d.OS)]},t.prototype.resolveKeyboardEvent=function(e){var t=new l.SimpleKeybinding(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new x.USLayoutResolvedKeybinding(t,d.OS)},t}(E.AbstractKeybindingService);function B(e){return e&&\"object\"==typeof e&&(!e.overrideIdentifier||\"string\"==typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof p.URI)}t.StandaloneKeybindingService=W;var V=function(){function e(){this._onDidChangeConfiguration=new s.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new w.Configuration(new w.DefaultConfigurationModel,new w.ConfigurationModel)}return e.prototype.configuration=function(){return this._configuration},e.prototype.getValue=function(e,t){\nvar n=\"string\"==typeof e?e:void 0,i=B(e)?e:B(t)?t:{};return this.configuration().getValue(n,i,void 0)},e.prototype.updateValue=function(e,t,n,i){return this.configuration().updateValue(e,t),Promise.resolve()},e.prototype.inspect=function(e,t){return void 0===t&&(t={}),this.configuration().inspect(e,t,void 0)},e}();t.SimpleConfigurationService=V;var z=function(){function e(e){var t=this;this.configurationService=e,this._onDidChangeConfiguration=new s.Emitter,this.configurationService.onDidChangeConfiguration((function(e){t._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:function(t,n){return e.affectsConfiguration(n)}})}))}return e.prototype.getValue=function(e,t,n){var i=(_.Position.isIPosition(t)?t:null)?\"string\"==typeof n?n:void 0:\"string\"==typeof t?t:void 0;return void 0===i?this.configurationService.getValue():this.configurationService.getValue(i)},e}();t.SimpleResourceConfigurationService=z;var H=function(){function e(e){this.configurationService=e}\nreturn e.prototype.getEOL=function(e,t){var n=this.configurationService.getValue(\"files.eol\",{overrideIdentifier:t,resource:e});return n&&\"auto\"!==n?n:d.isLinux||d.isMacintosh?\"\\n\":\"\\r\\n\"},e=h([g(0,S.IConfigurationService)],e)}();t.SimpleResourcePropertiesService=H;var K=function(){function e(){}return e.prototype.publicLog=function(e,t){return Promise.resolve(void 0)},e.prototype.publicLog2=function(e,t){return this.publicLog(e,t)},e}();t.StandaloneTelemetryService=K;var U=function(){function e(){var t=p.URI.from({scheme:e.SCHEME,authority:\"model\",path:\"/\"});this.workspace={id:\"4064f6ec-cb38-4ad0-af64-ee6467e63c82\",folders:[new M.WorkspaceFolder({uri:t,name:\"\",index:0})]}}return e.prototype.getWorkspace=function(){return this.workspace},e.prototype.getWorkspaceFolder=function(t){return t&&t.scheme===e.SCHEME?this.workspace.folders[0]:null},e.SCHEME=\"inmemory\",e}();t.SimpleWorkspaceContextService=U,t.applyConfigurationValues=function(e,t,n){t&&e instanceof V&&Object.keys(t).forEach((function(i){\nm.isEditorConfigurationKey(i)&&e.updateValue(\"editor.\"+i,t[i]),n&&m.isDiffEditorConfigurationKey(i)&&e.updateValue(\"diffEditor.\"+i,t[i])}))};var j=function(){function e(e){this._modelService=e}return e.prototype.hasPreviewHandler=function(){return!1},e.prototype.apply=function(e,t){var i=new Map;if(e.edits)for(var o=0,r=e.edits;o<r.length;o++){var s=r[o];if(!C.WorkspaceTextEdit.is(s))return Promise.reject(new Error(\"bad edit - only text edits are supported\"));var a=this._modelService.getModel(s.resource);if(!a)return Promise.reject(new Error(\"bad edit - model not found\"));var l=i.get(a);l||(l=[],i.set(a,l)),l.push(s.edit)}var u=0,d=0;return i.forEach((function(e,t){t.pushStackElement(),t.pushEditOperations([],e.map((function(e){return v.EditOperation.replaceMove(y.Range.lift(e.range),e.text)})),(function(){return[]})),t.pushStackElement(),d+=1,u+=e.length})),Promise.resolve({selection:void 0,ariaSummary:n.format(k.SimpleServicesNLS.bulkEditServiceSummary,u,d)})},e}();t.SimpleBulkEditService=j\n;var q=function(){function e(){}return e.prototype.getUriLabel=function(e,t){return\"file\"===e.scheme?e.fsPath:e.path},e}();t.SimpleUriLabelService=q;var G=function(){function e(e){this._container=e,this.onLayout=s.Event.None}return Object.defineProperty(e.prototype,\"container\",{get:function(){return this._container},enumerable:!0,configurable:!0}),e}();t.SimpleLayoutService=G}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[602],i([0,1,24,50,2,32,121,230,190,62,172,94,65,29,43,18,66,11,34,35,14,64,59,162,73]),(function(e,t,n,i,o,s,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var I=0,M=!1;var k=function(e){function t(t,o,r,s,a,l,u,d,c,h){var g=this;return(o=o||{}).ariaLabel=o.ariaLabel||D.StandaloneCodeEditorNLS.editorViewAccessibleLabel,\no.ariaLabel=o.ariaLabel+\";\"+(n.isIE?D.StandaloneCodeEditorNLS.accessibilityHelpMessageIE:D.StandaloneCodeEditorNLS.accessibilityHelpMessage),g=e.call(this,t,o,{},r,s,a,l,d,c,h)||this,u instanceof p.StandaloneKeybindingService?g._standaloneKeybindingService=u:g._standaloneKeybindingService=null,M||(M=!0,i.setARIAContainer(document.body)),g}return r(t,e),t.prototype.addCommand=function(e,t,n){if(!this._standaloneKeybindingService)return console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\"),null;var i=\"DYNAMIC_\"+ ++I,o=y.ContextKeyExpr.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,o),i},t.prototype.createContextKey=function(e,t){return this._contextKeyService.createKey(e,t)},t.prototype.addAction=function(e){var t=this;if(\"string\"!=typeof e.id||\"string\"!=typeof e.label||\"function\"!=typeof e.run)throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\")\n;if(!this._standaloneKeybindingService)return console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"),o.Disposable.None;var n=e.id,i=e.label,r=y.ContextKeyExpr.and(y.ContextKeyExpr.equals(\"editorId\",this.getId()),y.ContextKeyExpr.deserialize(e.precondition)),s=e.keybindings,l=y.ContextKeyExpr.and(r,y.ContextKeyExpr.deserialize(e.keybindingContext)),u=e.contextMenuGroupId||null,c=e.contextMenuOrder||0,h=function(n){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];return Promise.resolve(e.run.apply(e,a([t],i)))},p=new o.DisposableStore,g=this.getId()+\":\"+n;if(p.add(v.CommandsRegistry.registerCommand(g,h)),u){var f={command:{id:g,title:i},when:r,group:u,order:c};p.add(m.MenuRegistry.appendMenuItem(7,f))}if(Array.isArray(s))for(var _=0,C=s;_<C.length;_++){var b=C[_];p.add(this._standaloneKeybindingService.addDynamicKeybinding(g,b,h,l))}var S=new d.InternalEditorAction(g,i,i,r,h,this._contextKeyService);return this._actions[n]=S,\np.add(o.toDisposable((function(){delete t._actions[n]}))),p},t=h([g(2,b.IInstantiationService),g(3,s.ICodeEditorService),g(4,v.ICommandService),g(5,y.IContextKeyService),g(6,S.IKeybindingService),g(7,E.IThemeService),g(8,w.INotificationService),g(9,L.IAccessibilityService)],t)}(l.CodeEditorWidget);t.StandaloneCodeEditor=k;var T=function(e){function t(t,n,i,o,r,s,a,l,u,d,c,h,g){var f=this;p.applyConfigurationValues(h,n,!1);var m=d.registerEditorContainer(t);\"string\"==typeof(n=n||{}).theme&&d.setTheme(n.theme);var v,_=n.model;if(delete n.model,(f=e.call(this,t,n,o,r,s,a,l,d,c,g)||this)._contextViewService=u,f._configurationService=h,f._register(i),f._register(m),void 0===_?(v=self.monaco.editor.createModel(n.value||\"\",n.language||\"text/plain\"),f._ownsModel=!0):(v=_,f._ownsModel=!1),f._attachModel(v),v){var y={oldModelUrl:null,newModelUrl:v.uri};f._onDidChangeModel.fire(y)}return f}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){\np.applyConfigurationValues(this._configurationService,t,!1),e.prototype.updateOptions.call(this,t)},t.prototype._attachModel=function(t){e.prototype._attachModel.call(this,t),this._modelData&&this._contextViewService.setContainer(this._modelData.view.domNode.domNode)},t.prototype._postDetachModelCleanup=function(t){e.prototype._postDetachModelCleanup.call(this,t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)},t=h([g(3,b.IInstantiationService),g(4,s.ICodeEditorService),g(5,v.ICommandService),g(6,y.IContextKeyService),g(7,S.IKeybindingService),g(8,C.IContextViewService),g(9,f.IStandaloneThemeService),g(10,w.INotificationService),g(11,_.IConfigurationService),g(12,L.IAccessibilityService)],t)}(k);t.StandaloneEditor=T;var R=function(e){function t(t,n,i,o,r,s,a,l,u,d,c,h,g,f,m){var v=this;p.applyConfigurationValues(h,n,!0);var _=d.registerEditorContainer(t);return\"string\"==typeof(n=n||{}).theme&&(n.theme=d.setTheme(n.theme)),(v=e.call(this,t,n,m,l,r,o,u,d,c,g,f)||this)._contextViewService=a,\nv._configurationService=h,v._register(i),v._register(_),v._contextViewService.setContainer(v._containerDomElement),v}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){p.applyConfigurationValues(this._configurationService,t,!0),e.prototype.updateOptions.call(this,t)},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(k,t,n)},t.prototype.getOriginalEditor=function(){return e.prototype.getOriginalEditor.call(this)},t.prototype.getModifiedEditor=function(){return e.prototype.getModifiedEditor.call(this)},t.prototype.addCommand=function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)},t.prototype.createContextKey=function(e,t){return this.getModifiedEditor().createContextKey(e,t)},t.prototype.addAction=function(e){return this.getModifiedEditor().addAction(e)},\nt=h([g(3,b.IInstantiationService),g(4,y.IContextKeyService),g(5,S.IKeybindingService),g(6,C.IContextViewService),g(7,c.IEditorWorkerService),g(8,s.ICodeEditorService),g(9,f.IStandaloneThemeService),g(10,w.INotificationService),g(11,_.IConfigurationService),g(12,C.IContextMenuService),g(13,x.IEditorProgressService),g(14,b.optional(N.IClipboardService))],t)}(u.DiffEditorWidget);t.StandaloneDiffEditor=R})),define(n[238],i([0,1,2,156,32,62,219,71,516,49,556,114,172,592,594,94,65,29,43,519,18,595,66,506,500,11,501,115,34,116,170,95,508,72,35,73,74,96,14,171,499,210,565,64,218,83,517]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B,V,z,H,K,U,j,q,G){\"use strict\";var Y;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){var t=new x.ServiceCollection,n=function(){function e(e,t){this._serviceId=e,this._factory=t,this._value=null}return Object.defineProperty(e.prototype,\"id\",{get:function(){return this._serviceId},enumerable:!0,configurable:!0}),\ne.prototype.get=function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error(\"Service \"+this._serviceId+\" is missing!\");t.set(this._serviceId,this._value)}return this._value},e}();e.LazyStaticService=n;var i=[];function r(e,t){var o=new n(e,t);return i.push(o),o}e.init=function(e){for(var t=new x.ServiceCollection,n=0,o=q.getSingletonServiceDescriptors();n<o.length;n++){var r=o[n],s=r[0],a=r[1];t.set(s,a)}for(var l in e)e.hasOwnProperty(l)&&t.set(D.createDecorator(l),e[l]);i.forEach((function(n){return t.set(n.id,n.get(e))}));var u=new N.InstantiationService(t,!0);return t.set(D.IInstantiationService,u),[t,u]},e.instantiationService=r(D.IInstantiationService,(function(){return new N.InstantiationService(t,!0)}));var v=new p.SimpleConfigurationService;e.configurationService=r(y.IConfigurationService,(function(){return v})),e.resourceConfigurationService=r(h.ITextResourceConfigurationService,(function(){\nreturn new p.SimpleResourceConfigurationService(v)})),e.resourcePropertiesService=r(h.ITextResourcePropertiesService,(function(){return new p.SimpleResourcePropertiesService(v)})),e.contextService=r(V.IWorkspaceContextService,(function(){return new p.SimpleWorkspaceContextService})),e.labelService=r(M.ILabelService,(function(){return new p.SimpleUriLabelService})),e.telemetryService=r(W.ITelemetryService,(function(){return new p.StandaloneTelemetryService})),e.dialogService=r(L.IDialogService,(function(){return new p.SimpleDialogService})),e.notificationService=r(P.INotificationService,(function(){return new p.SimpleNotificationService})),e.markerService=r(O.IMarkerService,(function(){return new R.MarkerService})),e.modeService=r(l.IModeService,(function(e){return new u.ModeServiceImpl})),e.standaloneThemeService=r(m.IStandaloneThemeService,(function(){return new f.StandaloneThemeServiceImpl})),e.logService=r(T.ILogService,(function(){return new T.NullLogService})),\ne.modelService=r(d.IModelService,(function(t){return new c.ModelServiceImpl(e.configurationService.get(t),e.resourcePropertiesService.get(t),e.standaloneThemeService.get(t),e.logService.get(t))})),e.markerDecorationsService=r(H.IMarkerDecorationsService,(function(t){return new K.MarkerDecorationsService(e.modelService.get(t),e.markerService.get(t))})),e.codeEditorService=r(o.ICodeEditorService,(function(t){return new g.StandaloneCodeEditorServiceImpl(e.standaloneThemeService.get(t))})),e.editorProgressService=r(A.IEditorProgressService,(function(){return new p.SimpleEditorProgressService})),e.storageService=r(F.IStorageService,(function(){return new F.InMemoryStorageService})),e.editorWorkerService=r(s.IEditorWorkerService,(function(t){return new a.EditorWorkerServiceImpl(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t))}))}(Y=t.StaticServices||(t.StaticServices={}));var Z=function(e){function t(t,n){var o=e.call(this)||this,r=Y.init(n),s=r[0],a=r[1];o._serviceCollection=s,\no._instantiationService=a;var l=o.get(y.IConfigurationService),u=o.get(P.INotificationService),c=o.get(W.ITelemetryService),h=o.get(B.IThemeService),g=function(e,t){var i=null;return n&&(i=n[e.toString()]),i||(i=t()),o._serviceCollection.set(e,i),i},f=g(b.IContextKeyService,(function(){return o._register(new C.ContextKeyService(l))}));g(U.IAccessibilityService,(function(){return new G.AccessibilityService(f,l)})),g(k.IListService,(function(){return new k.ListService(h)}));var m=g(_.ICommandService,(function(){return new p.StandaloneCommandService(o._instantiationService)})),L=g(I.IKeybindingService,(function(){return o._register(new p.StandaloneKeybindingService(f,m,c,u,t))})),D=g(j.ILayoutService,(function(){return new p.SimpleLayoutService(t)})),N=g(w.IContextViewService,(function(){return o._register(new E.ContextViewService(D))}));return g(w.IContextMenuService,(function(){var e=new S.ContextMenuService(c,u,N,L,h);return e.configure({blockMouse:!1}),o._register(e)})),g(v.IMenuService,(function(){\nreturn new z.MenuService(m)})),g(i.IBulkEditService,(function(){return new p.SimpleBulkEditService(Y.modelService.get(d.IModelService))})),o}return r(t,e),t.prototype.get=function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error(\"Missing service \"+e);return t},t.prototype.set=function(e,t){this._serviceCollection.set(e,t)},t.prototype.has=function(e){return this._serviceCollection.has(e)},t}(n.Disposable);t.DynamicStandaloneServices=Z})),define(n[603],i([0,1,32,509,188,33,142,68,48,17,63,62,84,507,147,494,172,602,238,94,29,43,18,66,11,34,35,51,64,60,73,331]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M){\"use strict\";function k(e,t,o){var r=new _.DynamicStandaloneServices(e,t),s=null;r.has(h.ITextModelService)||(s=new m.SimpleEditorModelResolverService(_.StaticServices.modelService.get()),r.set(h.ITextModelService,s)),r.has(N.IOpenerService)||r.set(N.IOpenerService,new i.OpenerService(r.get(n.ICodeEditorService),r.get(C.ICommandService)));var a=o(r)\n;return s&&s.setEditor(a),a}function T(e,t,i){return k(e,i||{},(function(i){return new v.StandaloneEditor(e,t,i,i.get(E.IInstantiationService),i.get(n.ICodeEditorService),i.get(C.ICommandService),i.get(S.IContextKeyService),i.get(L.IKeybindingService),i.get(w.IContextViewService),i.get(y.IStandaloneThemeService),i.get(D.INotificationService),i.get(b.IConfigurationService),i.get(x.IAccessibilityService))}))}function R(e){return _.StaticServices.codeEditorService.get().onCodeEditorAdd((function(t){e(t)}))}function O(e,t,i){return k(e,i||{},(function(i){return new v.StandaloneDiffEditor(e,t,i,i.get(E.IInstantiationService),i.get(S.IContextKeyService),i.get(L.IKeybindingService),i.get(w.IContextViewService),i.get(c.IEditorWorkerService),i.get(n.ICodeEditorService),i.get(y.IStandaloneThemeService),i.get(D.INotificationService),i.get(b.IConfigurationService),i.get(w.IContextMenuService),i.get(M.IEditorProgressService),null)}))}function P(e,t){return new o.DiffNavigator(e,t)}function A(e,t,n){\nreturn _.StaticServices.modelService.get().createModel(e,t,n)}function F(e,t,n){if(e=e||\"\",!t){var i=e.indexOf(\"\\n\"),o=e;return-1!==i&&(o=e.substring(0,i)),A(e,_.StaticServices.modeService.get().createByFilepathOrFirstLine(n||null,o),n)}return A(e,_.StaticServices.modeService.get().create(t),n)}function W(e,t){_.StaticServices.modelService.get().setMode(e,_.StaticServices.modeService.get().create(t))}function B(e,t,n){e&&_.StaticServices.markerService.get().changeOne(t,e.uri,n)}function V(e){return _.StaticServices.markerService.get().read(e)}function z(e){return _.StaticServices.modelService.get().getModel(e)}function H(){return _.StaticServices.modelService.get().getModels()}function K(e){return _.StaticServices.modelService.get().onModelAdded(e)}function U(e){return _.StaticServices.modelService.get().onModelRemoved(e)}function j(e){return _.StaticServices.modelService.get().onModelModeChanged((function(t){e({model:t.model,oldLanguage:t.oldModeId})}))}function q(e){\nreturn p.createWebWorker(_.StaticServices.modelService.get(),e)}function G(e,t){return f.Colorizer.colorizeElement(_.StaticServices.standaloneThemeService.get(),_.StaticServices.modeService.get(),e,t)}function Y(e,t,n){return f.Colorizer.colorize(_.StaticServices.modeService.get(),e,t,n)}function Z(e,t,n){return void 0===n&&(n=4),f.Colorizer.colorizeModelLine(e,t,n)}function $(e,t){_.StaticServices.modeService.get().triggerMode(t);for(var n=function(e){var t=u.TokenizationRegistry.get(e);return t||{getInitialState:function(){return d.NULL_STATE},tokenize:function(t,n,i){return d.nullTokenize(e,t,n,i)}}}(t),i=e.split(/\\r\\n|\\r|\\n/),o=[],r=n.getInitialState(),s=0,a=i.length;s<a;s++){var l=i[s],c=n.tokenize(l,r,0);o[s]=c.tokens,r=c.endState}return o}function X(e,t){_.StaticServices.standaloneThemeService.get().defineTheme(e,t)}function Q(e){_.StaticServices.standaloneThemeService.get().setTheme(e)}function J(){I.clearAllFontInfos()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.create=T,t.onDidCreateEditor=R,\nt.createDiffEditor=O,t.createDiffNavigator=P,t.createModel=F,t.setModelLanguage=W,t.setModelMarkers=B,t.getModelMarkers=V,t.getModel=z,t.getModels=H,t.onDidCreateModel=K,t.onWillDisposeModel=U,t.onDidChangeModelLanguage=j,t.createWebWorker=q,t.colorizeElement=G,t.colorize=Y,t.colorizeModelLine=Z,t.tokenize=$,t.defineTheme=X,t.setTheme=Q,t.remeasureFonts=J,t.createMonacoEditorAPI=function(){return{create:T,onDidCreateEditor:R,createDiffEditor:O,createDiffNavigator:P,createModel:F,setModelLanguage:W,setModelMarkers:B,getModelMarkers:V,getModels:H,getModel:z,onDidCreateModel:K,onWillDisposeModel:U,onDidChangeModelLanguage:j,createWebWorker:q,colorizeElement:G,colorize:Y,colorizeModelLine:Z,tokenize:$,defineTheme:X,setTheme:Q,remeasureFonts:J,AccessibilitySupport:g.AccessibilitySupport,ContentWidgetPositionPreference:g.ContentWidgetPositionPreference,CursorChangeReason:g.CursorChangeReason,DefaultEndOfLine:g.DefaultEndOfLine,EditorAutoIndentStrategy:g.EditorAutoIndentStrategy,EditorOption:g.EditorOption,\nEndOfLinePreference:g.EndOfLinePreference,EndOfLineSequence:g.EndOfLineSequence,MinimapPosition:g.MinimapPosition,MouseTargetType:g.MouseTargetType,OverlayWidgetPositionPreference:g.OverlayWidgetPositionPreference,OverviewRulerLane:g.OverviewRulerLane,RenderLineNumbersType:g.RenderLineNumbersType,RenderMinimap:g.RenderMinimap,ScrollbarVisibility:g.ScrollbarVisibility,ScrollType:g.ScrollType,TextEditorCursorBlinkingStyle:g.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:g.TextEditorCursorStyle,TrackedRangeStickiness:g.TrackedRangeStickiness,WrappingIndent:g.WrappingIndent,ConfigurationChangedEvent:r.ConfigurationChangedEvent,BareFontInfo:s.BareFontInfo,FontInfo:s.FontInfo,TextModelResolvedOptions:l.TextModelResolvedOptions,FindMatch:l.FindMatch,EditorType:a.EditorType,EditorOptions:r.EditorOptions}}})),define(n[604],i([0,1,3,107,17,41,118,147,238,393,216]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\";function c(e){s.ModesRegistry.registerLanguage(e)}function h(){var e=[]\n;return e=e.concat(s.ModesRegistry.getLanguages())}function p(e){var t=l.StaticServices.modeService.get().getLanguageIdentifier(e);return t?t.id:0}function g(e,t){var n=l.StaticServices.modeService.get().onDidCreateMode((function(i){i.getId()===e&&(n.dispose(),t())}));return n}function f(e,t){var n=l.StaticServices.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error(\"Cannot set configuration for unknown language \"+e);return r.LanguageConfigurationRegistry.register(n,t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.register=c,t.getLanguages=h,t.getEncodedLanguageId=p,t.onLanguage=g,t.setLanguageConfiguration=f;var m=function(){function e(e){this._actual=e}return e.prototype.getInitialState=function(){return this._actual.getInitialState()},e.prototype.tokenize=function(e,t,n){throw new Error(\"Not supported!\")},e.prototype.tokenize2=function(e,t){var n=this._actual.tokenizeEncoded(e,t);return new i.TokenizationResult2(n.tokens,n.endState)},e}();t.EncodedTokenizationSupport2Adapter=m\n;var v=function(){function e(e,t,n){this._standaloneThemeService=e,this._languageIdentifier=t,this._actual=n}return e.prototype.getInitialState=function(){return this._actual.getInitialState()},e.prototype._toClassicTokens=function(e,t,n){for(var o=[],r=0,s=0,a=e.length;s<a;s++){var l=e[s],u=l.startIndex;0===s?u=0:u<r&&(u=r),o[s]=new i.Token(u+n,l.scopes,t),r=u}return o},e.prototype.tokenize=function(e,t,n){var o,r=this._actual.tokenize(e,t),s=this._toClassicTokens(r.tokens,this._languageIdentifier.language,n);return o=r.endState.equals(t)?t:r.endState,new i.TokenizationResult(s,o)},e.prototype._toBinaryTokens=function(e,t){for(var n=this._languageIdentifier.id,i=this._standaloneThemeService.getTheme().tokenTheme,o=[],r=0,s=0,a=0,l=e.length;a<l;a++){var u=e[a],d=i.match(n,u.scopes);if(!(r>0&&o[r-1]===d)){var c=u.startIndex;0===a?c=0:c<s&&(c=s),o[r++]=c+t,o[r++]=d,s=c}}var h=new Uint32Array(r);for(a=0;a<r;a++)h[a]=o[a];return h},e.prototype.tokenize2=function(e,t,n){\nvar o,r=this._actual.tokenize(e,t),s=this._toBinaryTokens(r.tokens,n);return o=r.endState.equals(t)?t:r.endState,new i.TokenizationResult2(s,o)},e}();function _(e){return e&&\"function\"==typeof e.then}function y(e,t){var n=l.StaticServices.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error(\"Cannot set tokens provider for unknown language \"+e);var i=function(e){return function(e){return\"tokenizeEncoded\"in e}(e)?new m(e):new v(l.StaticServices.standaloneThemeService.get(),n,e)};return _(t)?o.TokenizationRegistry.registerPromise(e,t.then((function(e){return i(e)}))):o.TokenizationRegistry.register(e,i(t))}function C(e,t){var n=function(t){return d.createTokenizationSupport(l.StaticServices.modeService.get(),l.StaticServices.standaloneThemeService.get(),e,u.compile(e,t))};return _(t)?o.TokenizationRegistry.registerPromise(e,t.then((function(e){return n(e)}))):o.TokenizationRegistry.register(e,n(t))}function b(e,t){return o.ReferenceProviderRegistry.register(e,t)}function S(e,t){\nreturn o.RenameProviderRegistry.register(e,t)}function w(e,t){return o.SignatureHelpProviderRegistry.register(e,t)}function E(e,t){return o.HoverProviderRegistry.register(e,{provideHover:function(e,i,o){var r=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,o)).then((function(e){if(e)return!e.range&&r&&(e.range=new n.Range(i.lineNumber,r.startColumn,i.lineNumber,r.endColumn)),e.range||(e.range=new n.Range(i.lineNumber,i.column,i.lineNumber,i.column)),e}))}})}function L(e,t){return o.DocumentSymbolProviderRegistry.register(e,t)}function D(e,t){return o.DocumentHighlightProviderRegistry.register(e,t)}function N(e,t){return o.DefinitionProviderRegistry.register(e,t)}function x(e,t){return o.ImplementationProviderRegistry.register(e,t)}function I(e,t){return o.TypeDefinitionProviderRegistry.register(e,t)}function M(e,t){return o.CodeLensProviderRegistry.register(e,t)}function k(e,t){return o.CodeActionProviderRegistry.register(e,{provideCodeActions:function(e,i,o,r){\nvar s=l.StaticServices.markerService.get().read({resource:e.uri}).filter((function(e){return n.Range.areIntersectingOrTouching(e,i)}));return t.provideCodeActions(e,i,{markers:s,only:o.only},r)}})}function T(e,t){return o.DocumentFormattingEditProviderRegistry.register(e,t)}function R(e,t){return o.DocumentRangeFormattingEditProviderRegistry.register(e,t)}function O(e,t){return o.OnTypeFormattingEditProviderRegistry.register(e,t)}function P(e,t){return o.LinkProviderRegistry.register(e,t)}function A(e,t){return o.CompletionProviderRegistry.register(e,t)}function F(e,t){return o.ColorProviderRegistry.register(e,t)}function W(e,t){return o.FoldingRangeProviderRegistry.register(e,t)}function B(e,t){return o.DeclarationProviderRegistry.register(e,t)}function V(e,t){return o.SelectionRangeRegistry.register(e,t)}function z(e,t){return o.DocumentSemanticTokensProviderRegistry.register(e,t)}function H(e,t){return o.DocumentRangeSemanticTokensProviderRegistry.register(e,t)}t.TokenizationSupport2Adapter=v,\nt.setTokensProvider=y,t.setMonarchTokensProvider=C,t.registerReferenceProvider=b,t.registerRenameProvider=S,t.registerSignatureHelpProvider=w,t.registerHoverProvider=E,t.registerDocumentSymbolProvider=L,t.registerDocumentHighlightProvider=D,t.registerDefinitionProvider=N,t.registerImplementationProvider=x,t.registerTypeDefinitionProvider=I,t.registerCodeLensProvider=M,t.registerCodeActionProvider=k,t.registerDocumentFormattingEditProvider=T,t.registerDocumentRangeFormattingEditProvider=R,t.registerOnTypeFormattingEditProvider=O,t.registerLinkProvider=P,t.registerCompletionItemProvider=A,t.registerColorProvider=F,t.registerFoldingRangeProvider=W,t.registerDeclarationProvider=B,t.registerSelectionRangeProvider=V,t.registerDocumentSemanticTokensProvider=z,t.registerDocumentRangeSemanticTokensProvider=H,t.createMonacoLanguagesAPI=function(){return{register:c,getLanguages:h,onLanguage:g,getEncodedLanguageId:p,setLanguageConfiguration:f,setTokensProvider:y,setMonarchTokensProvider:C,registerReferenceProvider:b,\nregisterRenameProvider:S,registerCompletionItemProvider:A,registerSignatureHelpProvider:w,registerHoverProvider:E,registerDocumentSymbolProvider:L,registerDocumentHighlightProvider:D,registerDefinitionProvider:N,registerImplementationProvider:x,registerTypeDefinitionProvider:I,registerCodeLensProvider:M,registerCodeActionProvider:k,registerDocumentFormattingEditProvider:T,registerDocumentRangeFormattingEditProvider:R,registerOnTypeFormattingEditProvider:O,registerLinkProvider:P,registerColorProvider:F,registerFoldingRangeProvider:W,registerDeclarationProvider:B,registerSelectionRangeProvider:V,registerDocumentSemanticTokensProvider:z,registerDocumentRangeSemanticTokensProvider:H,DocumentHighlightKind:a.DocumentHighlightKind,CompletionItemKind:a.CompletionItemKind,CompletionItemTag:a.CompletionItemTag,CompletionItemInsertTextRule:a.CompletionItemInsertTextRule,SymbolKind:a.SymbolKind,SymbolTag:a.SymbolTag,IndentAction:a.IndentAction,CompletionTriggerKind:a.CompletionTriggerKind,\nSignatureHelpTriggerKind:a.SignatureHelpTriggerKind,FoldingRangeKind:o.FoldingRangeKind}}})),define(n[605],i([0,1,33,192,603,604]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=self;n.EditorOptions.wrappingIndent.defaultValue=0,n.EditorOptions.glyphMargin.defaultValue=!1,n.EditorOptions.autoIndent.defaultValue=3,n.EditorOptions.overviewRulerLanes.defaultValue=2;var a=i.createMonacoBaseAPI();a.editor=o.createMonacoEditorAPI(),a.languages=r.createMonacoLanguagesAPI(),t.CancellationTokenSource=a.CancellationTokenSource,t.Emitter=a.Emitter,t.KeyCode=a.KeyCode,t.KeyMod=a.KeyMod,t.Position=a.Position,t.Range=a.Range,t.Selection=a.Selection,t.SelectionDirection=a.SelectionDirection,t.MarkerSeverity=a.MarkerSeverity,t.MarkerTag=a.MarkerTag,t.Uri=a.Uri,t.Token=a.Token,t.editor=a.editor,t.languages=a.languages,s.monaco=a,void 0!==s.require&&\"function\"==typeof s.require.config&&s.require.config({\nignoreDuplicateModules:[\"vscode-languageserver-types\",\"vscode-languageserver-types/main\",\"vscode-nls\",\"vscode-nls/vscode-nls\",\"jsonc-parser\",\"jsonc-parser/main\",\"vscode-uri\",\"vscode-uri/index\",\"vs/basic-languages/typescript/typescript\"]})})),define(n[606],i([0,1,25]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.WORKSPACE_EXTENSION=\"code-workspace\",t.isSingleFolderWorkspaceIdentifier=function(e){return e instanceof n.URI},t.toWorkspaceIdentifier=function(e){return e.configuration?{configPath:e.configuration,id:e.id}:1===e.folders.length?e.folders[0].uri:void 0}})),define(n[607],i([0,1,466,77,39,151,41,5,606,136]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e){this._delegates=e}return e.prototype.resolve=function(e){for(var t=0,n=this._delegates;t<n.length;t++){var i=n[t].resolve(e);if(void 0!==i)return i}},e}();t.CompositeSnippetVariableResolver=d;var c=function(){function e(e,t){this._model=e,\nthis._selection=t}return e.prototype.resolve=function(e){var t=e.name;if(\"SELECTION\"===t||\"TM_SELECTED_TEXT\"===t){var n=this._model.getValueInRange(this._selection)||void 0;if(n&&this._selection.startLineNumber!==this._selection.endLineNumber&&e.snippet){var i=this._model.getLineContent(this._selection.startLineNumber),o=a.getLeadingWhitespace(i,0,this._selection.startColumn-1),s=o;e.snippet.walk((function(t){return t!==e&&(t instanceof r.Text&&(s=a.getLeadingWhitespace(t.value.split(/\\r\\n|\\r|\\n/).pop())),!0)}));var l=a.commonPrefixLength(s,o);n=n.replace(/(\\r\\n|\\r|\\n)(.*)/g,(function(e,t,n){return\"\"+t+s.substr(l)+n}))}return n}if(\"TM_CURRENT_LINE\"===t)return this._model.getLineContent(this._selection.positionLineNumber);if(\"TM_CURRENT_WORD\"===t){var u=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return u&&u.word||void 0}\nreturn\"TM_LINE_INDEX\"===t?String(this._selection.positionLineNumber-1):\"TM_LINE_NUMBER\"===t?String(this._selection.positionLineNumber):void 0},e}();t.SelectionBasedVariableResolver=c;var h=function(){function e(e,t){this._labelService=e,this._model=t}return e.prototype.resolve=function(e){var t=e.name;if(\"TM_FILENAME\"===t)return i.basename(this._model.uri.fsPath);if(\"TM_FILENAME_BASE\"===t){var n=i.basename(this._model.uri.fsPath),r=n.lastIndexOf(\".\");return r<=0?n:n.slice(0,r)}return\"TM_DIRECTORY\"===t&&this._labelService?\".\"===i.dirname(this._model.uri.fsPath)?\"\":this._labelService.getUriLabel(o.dirname(this._model.uri)):\"TM_FILEPATH\"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri):void 0},e}();t.ModelBasedVariableResolver=h;var p=function(){function e(e,t,n,i){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=n,this._spread=i}return e.prototype.resolve=function(e){if(\"CLIPBOARD\"===e.name){var t=this._readClipboardText();if(t){if(this._spread){\nvar n=t.split(/\\r\\n|\\n|\\r/).filter((function(e){return!a.isFalsyOrWhitespace(e)}));if(n.length===this._selectionCount)return n[this._selectionIdx]}return t}}},e}();t.ClipboardBasedVariableResolver=p;var g=function(){function e(e){this._model=e}return e.prototype.resolve=function(e){var t=e.name,n=this._model.getLanguageIdentifier(),i=s.LanguageConfigurationRegistry.getComments(n.id);if(i)return\"LINE_COMMENT\"===t?i.lineCommentToken||void 0:\"BLOCK_COMMENT_START\"===t?i.blockCommentStartToken||void 0:\"BLOCK_COMMENT_END\"===t&&i.blockCommentEndToken||void 0},e}();t.CommentBasedVariableResolver=g;var f=function(){function e(){}return e.prototype.resolve=function(t){var n=t.name\n;return\"CURRENT_YEAR\"===n?String((new Date).getFullYear()):\"CURRENT_YEAR_SHORT\"===n?String((new Date).getFullYear()).slice(-2):\"CURRENT_MONTH\"===n?a.pad((new Date).getMonth().valueOf()+1,2):\"CURRENT_DATE\"===n?a.pad((new Date).getDate().valueOf(),2):\"CURRENT_HOUR\"===n?a.pad((new Date).getHours().valueOf(),2):\"CURRENT_MINUTE\"===n?a.pad((new Date).getMinutes().valueOf(),2):\"CURRENT_SECOND\"===n?a.pad((new Date).getSeconds().valueOf(),2):\"CURRENT_DAY_NAME\"===n?e.dayNames[(new Date).getDay()]:\"CURRENT_DAY_NAME_SHORT\"===n?e.dayNamesShort[(new Date).getDay()]:\"CURRENT_MONTH_NAME\"===n?e.monthNames[(new Date).getMonth()]:\"CURRENT_MONTH_NAME_SHORT\"===n?e.monthNamesShort[(new Date).getMonth()]:\"CURRENT_SECONDS_UNIX\"===n?String(Math.floor(Date.now()/1e3)):void 0},e.dayNames=[n.localize(0,null),n.localize(1,null),n.localize(2,null),n.localize(3,null),n.localize(4,null),n.localize(5,null),n.localize(6,null)],\ne.dayNamesShort=[n.localize(7,null),n.localize(8,null),n.localize(9,null),n.localize(10,null),n.localize(11,null),n.localize(12,null),n.localize(13,null)],e.monthNames=[n.localize(14,null),n.localize(15,null),n.localize(16,null),n.localize(17,null),n.localize(18,null),n.localize(19,null),n.localize(20,null),n.localize(21,null),n.localize(22,null),n.localize(23,null),n.localize(24,null),n.localize(25,null)],e.monthNamesShort=[n.localize(26,null),n.localize(27,null),n.localize(28,null),n.localize(29,null),n.localize(30,null),n.localize(31,null),n.localize(32,null),n.localize(33,null),n.localize(34,null),n.localize(35,null),n.localize(36,null),n.localize(37,null)],e}();t.TimeBasedVariableResolver=f;var m=function(){function e(e){this._workspaceService=e}return e.prototype.resolve=function(e){if(this._workspaceService){var t=l.toWorkspaceIdentifier(this._workspaceService.getWorkspace())\n;if(t)return\"WORKSPACE_NAME\"===e.name?this._resolveWorkspaceName(t):\"WORKSPACE_FOLDER\"===e.name?this._resoveWorkspacePath(t):void 0}},e.prototype._resolveWorkspaceName=function(e){if(l.isSingleFolderWorkspaceIdentifier(e))return i.basename(e.path);var t=i.basename(e.configPath.path);return a.endsWith(t,l.WORKSPACE_EXTENSION)&&(t=t.substr(0,t.length-l.WORKSPACE_EXTENSION.length-1)),t},e.prototype._resoveWorkspacePath=function(e){if(l.isSingleFolderWorkspaceIdentifier(e))return u.normalizeDriveLetter(e.fsPath);var t=i.basename(e.configPath.path),n=e.configPath.fsPath;return a.endsWith(n,t)&&(n=n.substr(0,n.length-t.length-1)),n?u.normalizeDriveLetter(n):\"/\"},e}();t.WorkspaceBasedVariableResolver=m;var v=function(){function e(){}return e.prototype.resolve=function(e){var t=e.name;return\"RANDOM\"===t?Math.random().toString().slice(-6):\"RANDOM_HEX\"===t?Math.random().toString(16).slice(-6):void 0},e}();t.RandomBasedVariableResolver=v})),\ndefine(n[608],i([0,1,19,2,5,58,3,22,30,162,171,11,151,607,14,20,116,321]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),g.registerThemingParticipant((function(e,t){function n(t){var n=e.getColor(t);return n?n.toString():\"transparent\"}t.addRule(\".monaco-editor .snippet-placeholder { background-color: \"+n(f.snippetTabstopHighlightBackground)+\"; outline-color: \"+n(f.snippetTabstopHighlightBorder)+\"; }\"),t.addRule(\".monaco-editor .finish-snippet-placeholder { background-color: \"+n(f.snippetFinalTabstopHighlightBackground)+\"; outline-color: \"+n(f.snippetFinalTabstopHighlightBorder)+\"; }\")}));var v=function(){function e(e,t,i){this._nestingLevel=1,this._editor=e,this._snippet=t,this._offset=i,this._placeholderGroups=n.groupBy(t.placeholders,h.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}return e.prototype.dispose=function(){if(this._placeholderDecorations){var e=[];this._placeholderDecorations.forEach((function(t){return e.push(t)})),\nthis._editor.deltaDecorations(e,[])}this._placeholderGroups.length=0},e.prototype._initDecorations=function(){var t=this;if(!this._placeholderDecorations){this._placeholderDecorations=new Map;var n=this._editor.getModel();this._editor.changeDecorations((function(i){for(var o=0,r=t._snippet.placeholders;o<r.length;o++){var a=r[o],l=t._snippet.offset(a),u=t._snippet.fullLen(a),d=s.Range.fromPositions(n.getPositionAt(t._offset+l),n.getPositionAt(t._offset+l+u)),c=a.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive,h=i.addDecoration(d,c);t._placeholderDecorations.set(a,h)}}))}},e.prototype.move=function(t){var n=this;if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){for(var i=[],o=0,s=this._placeholderGroups[this._placeholderGroupsIdx];o<s.length;o++){var l=s[o];if(l.transform){var u=this._placeholderDecorations.get(l),d=this._editor.getModel().getDecorationRange(u),c=this._editor.getModel().getValueInRange(d)\n;i.push(r.EditOperation.replaceMove(d,l.transform.resolve(c)))}}i.length>0&&this._editor.executeEdits(\"snippet.placeholderTransform\",i)}var h=!1;!0===t&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,h=!0):!1===t&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,h=!0);var p=this._editor.getModel().changeDecorations((function(t){for(var i=new Set,o=[],r=0,s=n._placeholderGroups[n._placeholderGroupsIdx];r<s.length;r++){var l=s[r],u=n._placeholderDecorations.get(l),d=n._editor.getModel().getDecorationRange(u);o.push(new a.Selection(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn)),h=h&&n._hasPlaceholderBeenCollapsed(l),t.changeDecorationOptions(u,l.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(l);for(var c=0,p=n._snippet.enclosingPlaceholders(l);c<p.length;c++){var g=p[c],f=n._placeholderDecorations.get(g);t.changeDecorationOptions(f,g.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(g)}}\nreturn n._placeholderDecorations.forEach((function(n,o){i.has(o)||t.changeDecorationOptions(n,o.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive)})),o}));return h?this.move(t):p},e.prototype._hasPlaceholderBeenCollapsed=function(e){for(var t=e;t;){if(t instanceof h.Placeholder){var n=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(n).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1},Object.defineProperty(e.prototype,\"isAtFirstPlaceholder\",{get:function(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isAtLastPlaceholder\",{get:function(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasPlaceholder\",{get:function(){return this._snippet.placeholders.length>0},enumerable:!0,configurable:!0}),e.prototype.computePossibleSelections=function(){\nfor(var e=new Map,t=0,n=this._placeholderGroups;t<n.length;t++)for(var i=void 0,o=0,r=n[t];o<r.length;o++){var s=r[o];if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));var a=this._placeholderDecorations.get(s),l=this._editor.getModel().getDecorationRange(a);if(!l){e.delete(s.index);break}i.push(l)}return e},Object.defineProperty(e.prototype,\"choice\",{get:function(){return this._placeholderGroups[this._placeholderGroupsIdx][0].choice},enumerable:!0,configurable:!0}),e.prototype.merge=function(t){var i=this,o=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((function(r){for(var a=0,l=i._placeholderGroups[i._placeholderGroupsIdx];a<l.length;a++){var u=l[a],d=t.shift();console.assert(!d._placeholderDecorations);for(var c=d._snippet.placeholderInfo.last.index,p=0,g=d._snippet.placeholderInfo.all;p<g.length;p++){var f=g[p];f.isFinalTabstop?f.index=u.index+(c+1)/i._nestingLevel:f.index=u.index+f.index/i._nestingLevel}i._snippet.replace(u,d._snippet.children)\n;var m=i._placeholderDecorations.get(u);r.removeDecoration(m),i._placeholderDecorations.delete(u);for(var v=0,_=d._snippet.placeholders;v<_.length;v++){var y=_[v],C=d._snippet.offset(y),b=d._snippet.fullLen(y),S=s.Range.fromPositions(o.getPositionAt(d._offset+C),o.getPositionAt(d._offset+C+b)),w=r.addDecoration(S,e._decor.inactive);i._placeholderDecorations.set(y,w)}}i._placeholderGroups=n.groupBy(i._snippet.placeholders,h.Placeholder.compareByIndex)}))},e._decor={active:l.ModelDecorationOptions.register({stickiness:0,className:\"snippet-placeholder\"}),inactive:l.ModelDecorationOptions.register({stickiness:1,className:\"snippet-placeholder\"}),activeFinal:l.ModelDecorationOptions.register({stickiness:1,className:\"finish-snippet-placeholder\"}),inactiveFinal:l.ModelDecorationOptions.register({stickiness:1,className:\"finish-snippet-placeholder\"})},e}();t.OneSnippet=v;var _={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0},y=function(){function e(e,t,n){void 0===n&&(n=_),\nthis._templateMerges=[],this._snippets=[],this._editor=e,this._template=t,this._options=n}return e.adjustWhitespace=function(e,t,n,i,r){var s=e.getLineContent(t.lineNumber),a=o.getLeadingWhitespace(s,0,t.column-1);n.walk((function(t){if(t instanceof h.Text&&!(t.parent instanceof h.Choice)){var n=t.value.split(/\\r\\n|\\r|\\n/);if(i)for(var s=1;s<n.length;s++){var l=o.getLeadingWhitespace(n[s]);n[s]=e.normalizeIndentation(a+l)+n[s].substr(l.length)}if(r){var u=n.join(e.getEOL());u!==t.value&&t.parent.replace(t,[new h.Text(u)])}}return!0}))},e.adjustSelection=function(e,t,n,i){if(0!==n||0!==i){var o=t.positionLineNumber,r=t.positionColumn,s=r-n,l=r+i,u=e.validateRange({startLineNumber:o,startColumn:s,endLineNumber:o,endColumn:l});t=a.Selection.createWithDirection(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn,t.getDirection())}return t},e.createEditsAndSnippets=function(t,n,i,o,a,l,g){var f=[],_=[];if(!t.hasModel())return{edits:f,snippets:_};for(var y=t.getModel(),C=t.invokeWithinContext((function(e){\nreturn e.get(d.IWorkspaceContextService,c.optional)})),b=t.invokeWithinContext((function(e){return new p.ModelBasedVariableResolver(e.get(m.ILabelService,c.optional),y)})),S=t.invokeWithinContext((function(e){return e.get(u.IClipboardService,c.optional)})),w=function(){return g||S&&S.readTextSync()},E=0,L=y.getValueInRange(e.adjustSelection(y,t.getSelection(),i,0)),D=y.getValueInRange(e.adjustSelection(y,t.getSelection(),0,o)),N=y.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),x=t.getSelections().map((function(e,t){return{selection:e,idx:t}})).sort((function(e,t){return s.Range.compareRangesUsingStarts(e.selection,t.selection)})),I=0,M=x;I<M.length;I++){var k=M[I],T=k.selection,R=k.idx,O=e.adjustSelection(y,T,i,0),P=e.adjustSelection(y,T,0,o);L!==y.getValueInRange(O)&&(O=T),D!==y.getValueInRange(P)&&(P=T);var A=T.setStartPosition(O.startLineNumber,O.startColumn).setEndPosition(P.endLineNumber,P.endColumn),F=(new h.SnippetParser).parse(n,!0,a),W=A.getStartPosition()\n;e.adjustWhitespace(y,W,F,l||R>0&&N!==y.getLineFirstNonWhitespaceColumn(T.positionLineNumber),!0),F.resolveVariables(new p.CompositeSnippetVariableResolver([b,new p.ClipboardBasedVariableResolver(w,R,x.length,\"spread\"===t.getOption(60)),new p.SelectionBasedVariableResolver(y,T),new p.CommentBasedVariableResolver(y),new p.TimeBasedVariableResolver,new p.WorkspaceBasedVariableResolver(C),new p.RandomBasedVariableResolver]));var B=y.getOffsetAt(W)+E;E+=F.toString().length-y.getValueLengthInRange(A),f[R]=r.EditOperation.replace(A,F.toString()),_[R]=new v(t,F,B)}return{edits:f,snippets:_}},e.prototype.dispose=function(){i.dispose(this._snippets)},e.prototype._logInfo=function(){return'template=\"'+this._template+'\", merged_templates=\"'+this._templateMerges.join(\" -> \")+'\"'},e.prototype.insert=function(){var t=this;if(this._editor.hasModel()){\nvar n=e.createEditsAndSnippets(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText),i=n.edits,o=n.snippets;this._snippets=o,this._editor.executeEdits(\"snippet\",i,(function(e){return t._snippets[0].hasPlaceholder?t._move(!0):e.map((function(e){return a.Selection.fromPositions(e.range.getEndPosition())}))})),this._editor.revealRange(this._editor.getSelections()[0])}},e.prototype.merge=function(t,n){var i=this;if(void 0===n&&(n=_),this._editor.hasModel()){this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);var o=e.createEditsAndSnippets(this._editor,t,n.overwriteBefore,n.overwriteAfter,!0,n.adjustWhitespace,n.clipboardText),r=o.edits,s=o.snippets;this._editor.executeEdits(\"snippet\",r,(function(e){for(var t=0,n=i._snippets;t<n.length;t++){n[t].merge(s)}return console.assert(0===s.length),i._snippets[0].hasPlaceholder?i._move(void 0):e.map((function(e){\nreturn a.Selection.fromPositions(e.range.getEndPosition())}))}))}},e.prototype.next=function(){var e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())},e.prototype.prev=function(){var e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())},e.prototype._move=function(e){for(var t=[],n=0,i=this._snippets;n<i.length;n++){var o=i[n].move(e);t.push.apply(t,o)}return t},Object.defineProperty(e.prototype,\"isAtFirstPlaceholder\",{get:function(){return this._snippets[0].isAtFirstPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isAtLastPlaceholder\",{get:function(){return this._snippets[0].isAtLastPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasPlaceholder\",{get:function(){return this._snippets[0].hasPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"choice\",{get:function(){\nreturn this._snippets[0].choice},enumerable:!0,configurable:!0}),e.prototype.isSelectionWithinPlaceholders=function(){if(!this.hasPlaceholder)return!1;var e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;for(var t=new Map,n=function(n){var i=n.computePossibleSelections();if(0===t.size&&i.forEach((function(n,i){n.sort(s.Range.compareRangesUsingStarts);for(var o=0,r=e;o<r.length;o++){var a=r[o];if(n[0].containsRange(a)){t.set(i,[]);break}}})),0===t.size)return{value:!1};t.forEach((function(e,t){e.push.apply(e,i.get(t))}))},i=0,o=this._snippets;i<o.length;i++){var r=n(o[i]);if(\"object\"==typeof r)return r.value}return e.sort(s.Range.compareRangesUsingStarts),t.forEach((function(n,i){if(n.length===e.length){n.sort(s.Range.compareRangesUsingStarts);for(var o=0;o<n.length;o++)if(!n[o].containsRange(e[o]))return void t.delete(i)}else t.delete(i)})),t.size>0},e}();t.SnippetSession=y})),define(n[173],i([0,1,2,5,12,3,22,23,120,18,95,608]),(function(e,t,n,i,o,r,s,a,u,d,c,p){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var f={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0},m=function(){function e(t,i,o){this._editor=t,this._logService=i,this._snippetListener=new n.DisposableStore,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(o),this._hasNextTabstop=e.HasNextTabstop.bindTo(o),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(o)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),n.dispose(this._session),this._snippetListener.dispose()},e.prototype.insert=function(e,t){try{this._doInsert(e,void 0===t?f:l(l({},f),t))}catch(t){this.cancel(),this._logService.error(t),this._logService.error(\"snippet_error\"),this._logService.error(\"insert_template=\",e),this._logService.error(\"existing_template=\",this._session?this._session._logInfo():\"<no_session>\")}},e.prototype._doInsert=function(e,t){\nvar n=this;this._editor.hasModel()&&(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new p.SnippetSession(this._editor,e,t),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((function(e){return e.isFlush&&n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeModel((function(){return n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((function(){return n._updateState()}))))},e.prototype._updateState=function(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel()\n;if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}},e.prototype._handleChoice=function(){var e=this;if(this._session&&this._editor.hasModel()){var t=this._session.choice;if(t){if(this._currentChoice!==t){this._currentChoice=t,this._editor.setSelections(this._editor.getSelections().map((function(e){return s.Selection.fromPositions(e.getStartPosition())})));var n=t.options[0];u.showSimpleSuggestions(this._editor,t.options.map((function(t,o){return{kind:13,label:t.value,insertText:t.value,sortText:i.repeat(\"a\",o+1),range:r.Range.fromPositions(e._editor.getPosition(),e._editor.getPosition().delta(0,n.value.length))}})))}}else this._currentChoice=void 0}else this._currentChoice=void 0},e.prototype.finish=function(){for(;this._inSnippet.get();)this.next()},e.prototype.cancel=function(e){\nvoid 0===e&&(e=!1),this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),n.dispose(this._session),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])},e.prototype.prev=function(){this._session&&this._session.prev(),this._updateState()},e.prototype.next=function(){this._session&&this._session.next(),this._updateState()},e.prototype.isInSnippet=function(){return Boolean(this._inSnippet.get())},e.ID=\"snippetController2\",e.InSnippetMode=new d.RawContextKey(\"inSnippetMode\",!1),e.HasNextTabstop=new d.RawContextKey(\"hasNextTabstop\",!1),e.HasPrevTabstop=new d.RawContextKey(\"hasPrevTabstop\",!1),e=h([g(1,c.ILogService),g(2,d.IContextKeyService)],e)}();t.SnippetController2=m,o.registerEditorContribution(m.ID,m);var v=o.EditorCommand.bindToContribution(m.get);o.registerEditorCommand(new v({id:\"jumpToNextSnippetPlaceholder\",precondition:d.ContextKeyExpr.and(m.InSnippetMode,m.HasNextTabstop),handler:function(e){\nreturn e.next()},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:2}})),o.registerEditorCommand(new v({id:\"jumpToPrevSnippetPlaceholder\",precondition:d.ContextKeyExpr.and(m.InSnippetMode,m.HasPrevTabstop),handler:function(e){return e.prev()},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:1026}})),o.registerEditorCommand(new v({id:\"leaveSnippet\",precondition:m.InSnippetMode,handler:function(e){return e.cancel(!0)},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:9,secondary:[1033]}})),o.registerEditorCommand(new v({id:\"acceptSnippet\",precondition:m.InSnippetMode,handler:function(e){return e.finish()}}))})),define(n[609],i([0,1,19,15,10,4,2,22,17,389,120,173,26,392,5]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(){function e(e,t,n,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),\nthis.lineNumber=t.lineNumber,this.column=t.column,this.auto=n,this.shy=i}return e.shouldAutoTrigger=function(e){if(!e.hasModel())return!1;var t=e.getModel(),n=e.getPosition();t.tokenizeIfCheap(n.lineNumber);var i=t.getWordAtPosition(n);return!!i&&(i.endColumn===n.column&&!!isNaN(Number(i.word)))},e}();t.LineContext=f;var m=function(){function e(e,t){var n=this;this._editor=e,this._editorWorker=t,this._toDispose=new s.DisposableStore,this._quickSuggestDelay=10,this._triggerCharacterListener=new s.DisposableStore,this._triggerQuickSuggest=new i.TimeoutTimer,this._state=0,this._completionDisposables=new s.DisposableStore,this._onDidCancel=new r.Emitter,this._onDidTrigger=new r.Emitter,this._onDidSuggest=new r.Emitter,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new a.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((function(){n._updateTriggerCharacters(),\nn.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((function(){n._updateTriggerCharacters(),n.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((function(){n._updateTriggerCharacters(),n._updateQuickSuggest()}))),this._toDispose.add(l.CompletionProviderRegistry.onDidChange((function(){n._updateTriggerCharacters(),n._updateActiveSuggestSession()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((function(e){n._onCursorChange(e)})));var o=!1;this._toDispose.add(this._editor.onDidCompositionStart((function(){o=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((function(){o=!1,n._refilterCompletionItems()}))),this._toDispose.add(this._editor.onDidChangeModelContent((function(){o||n._refilterCompletionItems()}))),this._updateTriggerCharacters(),this._updateQuickSuggest()}return e.prototype.dispose=function(){s.dispose(this._triggerCharacterListener),s.dispose([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),\nthis._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()},e.prototype._updateQuickSuggest=function(){this._quickSuggestDelay=this._editor.getOption(67),(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)},e.prototype._updateTriggerCharacters=function(){var e=this;if(this._triggerCharacterListener.clear(),!this._editor.getOption(68)&&this._editor.hasModel()&&this._editor.getOption(92)){for(var t=new Map,n=0,i=l.CompletionProviderRegistry.all(this._editor.getModel());n<i.length;n++)for(var o=i[n],r=0,s=o.triggerCharacters||[];r<s.length;r++){var a=s[r],u=t.get(a);u||((u=new Set).add(d.getSnippetSuggestSupport()),t.set(a,u)),u.add(o)}var c=function(n){if(!n){var i=e._editor.getPosition();n=e._editor.getModel().getLineContent(i.lineNumber).substr(0,i.column-1)}var o=\"\"\n;g.isLowSurrogate(n.charCodeAt(n.length-1))?g.isHighSurrogate(n.charCodeAt(n.length-2))&&(o=n.substr(n.length-2)):o=n.charAt(n.length-1);var r=t.get(o);if(r){var s=e._completionModel?e._completionModel.adopt(r):void 0;e.trigger({auto:!0,shy:!1,triggerCharacter:o},Boolean(e._completionModel),r,s)}};this._triggerCharacterListener.add(this._editor.onDidType(c)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(c))}},Object.defineProperty(e.prototype,\"state\",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancel=function(e){void 0===e&&(e=!1),0!==this._state&&(this._triggerQuickSuggest.cancel(),this._requestToken&&(this._requestToken.cancel(),this._requestToken=void 0),this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))},e.prototype.clear=function(){this._completionDisposables.clear()},e.prototype._updateActiveSuggestSession=function(){\n0!==this._state&&(this._editor.hasModel()&&l.CompletionProviderRegistry.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1},!0):this.cancel())},e.prototype._onCursorChange=function(e){var t=this;if(this._editor.hasModel()){var n=this._editor.getModel(),i=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason||\"keyboard\"!==e.source&&\"deleteLeft\"!==e.source)this.cancel();else if(l.CompletionProviderRegistry.has(n)&&0===this._state){if(!1===this._editor.getOption(66))return;if(!i.containsRange(this._currentSelection)&&!i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))return;if(this._editor.getOption(89).snippetsPreventQuickSuggestions&&c.SnippetController2.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet((function(){if(0===t._state&&f.shouldAutoTrigger(t._editor)&&t._editor.hasModel()){var e=t._editor.getModel(),n=t._editor.getPosition(),i=t._editor.getOption(66)\n;if(!1!==i){if(!0===i);else{e.tokenizeIfCheap(n.lineNumber);var o=e.getLineTokens(n.lineNumber),r=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(!(i.other&&0===r||i.comments&&1===r||i.strings&&2===r))return}t.trigger({auto:!0,shy:!1})}}}),this._quickSuggestDelay)}}},e.prototype._refilterCompletionItems=function(){var e=this;Promise.resolve().then((function(){if(0!==e._state&&e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getPosition(),i=new f(t,n,2===e._state,!1);e._onNewContext(i)}}))},e.prototype.trigger=function(t,i,r,a){var l=this;if(void 0===i&&(i=!1),this._editor.hasModel()){var c,g=this._editor.getModel(),m=t.auto,v=new f(g,this._editor.getPosition(),m,t.shy);this.cancel(i),this._state=m?2:1,this._onDidTrigger.fire({auto:m,shy:t.shy,position:this._editor.getPosition()}),this._context=v,c=t.triggerCharacter?{triggerKind:1,triggerCharacter:t.triggerCharacter}:r&&r.size>0?{triggerKind:2}:{triggerKind:0},this._requestToken=new h.CancellationTokenSource\n;var _=this._editor.getOption(86),y=1;switch(_){case\"top\":y=0;break;case\"bottom\":y=2}var C=e._createItemKindFilter(this._editor),b=p.WordDistance.create(this._editorWorker,this._editor),S=d.provideSuggestionItems(g,this._editor.getPosition(),new d.CompletionOptions(y,C,r),c,this._requestToken.token);Promise.all([S,b]).then((function(e){var i=e[0],o=e[1];if(s.dispose(l._requestToken),0!==l._state&&l._editor.hasModel()){var r=l._editor.getModel();if(n.isNonEmptyArray(a)){var c=d.getSuggestionComparator(y);i=i.concat(a).sort(c)}var h=new f(r,l._editor.getPosition(),m,t.shy);l._completionModel=new u.CompletionModel(i,l._context.column,{leadingLineContent:h.leadingLineContent,characterCountDelta:h.column-l._context.column},o,l._editor.getOption(89),l._editor.getOption(86));for(var p=0,g=i;p<g.length;p++){var v=g[p];s.isDisposable(v.container)&&l._completionDisposables.add(v.container)}l._onNewContext(h)}})).catch(o.onUnexpectedError)}},e._createItemKindFilter=function(e){var t=new Set\n;\"none\"===e.getOption(86)&&t.add(25);var n=e.getOption(89);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(25),t},e.prototype._onNewContext=function(e){if(this._context)if(e.lineNumber===this._context.lineNumber){if(e.leadingWord.startColumn<this._context.leadingWord.startColumn)this.cancel();else if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.auto,shy:!1\n},!0):this.cancel();else if(this._completionModel)if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){var t=this._completionModel.incomplete,n=this._completionModel.adopt(t);this.trigger({auto:2===this._state,shy:!1},!0,t,n)}else{var i=this._completionModel.lineContext,o=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(f.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.auto,shy:!1},!0);if(this._context.auto)return void this.cancel();if(this._completionModel.lineContext=i,(o=this._completionModel.items.length>0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,isFrozen:o})}}else this.cancel()},e}();t.SuggestModel=m}))\n;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[610],i([0,1,50,19,10,36,2,12,58,3,23,173,151,521,467,29,18,11,86,120,497,609,585,498,4,62,15,21,390,16,391]),(function(e,t,n,i,o,s,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var A=!1,F=function(){function e(e,t){if(this._model=e,this._position=t,e.getLineMaxColumn(t.lineNumber)!==t.column){var n=e.getOffsetAt(t),i=e.getPositionAt(n+1);this._marker=e.deltaDecorations([],[{range:p.Range.fromPositions(t,i),options:{stickiness:1}}])}}return e.prototype.dispose=function(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])},e.prototype.delta=function(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){\nvar t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column},e}(),W=function(){function e(e,t,n,i,o,r){var a=this;this._memoryService=n,this._commandService=i,this._contextKeyService=o,this._instantiationService=r,this._lineSuffix=new u.MutableDisposable,this._toDispose=new u.DisposableStore,this.editor=e,this.model=new D.SuggestModel(this.editor,t),this.widget=this._toDispose.add(new k.IdleValue((function(){var e=a._instantiationService.createInstance(N.SuggestWidget,a.editor);a._toDispose.add(e),a._toDispose.add(e.onDidSelect((function(e){return a._insertSuggestion(e,0)}),a));var t=new R.CommitCharacterController(a.editor,e,(function(e){return a._insertSuggestion(e,2)}));a._toDispose.add(t),a._toDispose.add(a.model.onDidSuggest((function(e){0===e.completionModel.items.length&&t.reset()})));var n=E.Context.MakesTextEdit.bindTo(a._contextKeyService)\n;return a._toDispose.add(e.onDidFocus((function(e){var t=e.item,i=a.editor.getPosition(),o=t.editStart.column,r=i.column,s=!0;\"smart\"!==a.editor.getOption(1)||2!==a.model.state||t.completion.command||t.completion.additionalTextEdits||4&t.completion.insertTextRules||r-o!==t.completion.insertText.length||(s=a.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:o,endLineNumber:i.lineNumber,endColumn:r})!==t.completion.insertText);n.set(s)}))),a._toDispose.add(u.toDisposable((function(){return n.reset()}))),a._toDispose.add(e.onDetailsKeyDown((function(e){e.toKeybinding().equals(new s.SimpleKeybinding(!0,!1,!1,!1,33))||O.isMacintosh&&e.toKeybinding().equals(new s.SimpleKeybinding(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||a.editor.focus()}))),e}))),this._alternatives=this._toDispose.add(new k.IdleValue((function(){return a._toDispose.add(new L.SuggestAlternatives(a.editor,a._contextKeyService))}))),this._toDispose.add(r.createInstance(x.WordContextKey,e)),\nthis._toDispose.add(this.model.onDidTrigger((function(e){a.widget.getValue().showTriggered(e.auto,e.shy?250:50),a._lineSuffix.value=new F(a.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((function(e){if(!e.shy){var t=a._memoryService.select(a.editor.getModel(),a.editor.getPosition(),e.completionModel.items);a.widget.getValue().showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}}))),this._toDispose.add(this.model.onDidCancel((function(e){e.retrigger||a.widget.getValue().hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((function(){A||(a.model.cancel(),a.model.clear())})));var l=E.Context.AcceptSuggestionsOnEnter.bindTo(o),d=function(){var e=a.editor.getOption(1);l.set(\"on\"===e||\"smart\"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((function(){return d()}))),d(),this._toDispose.add(new P.SuggestRangeHighlighter(this))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._alternatives.dispose(),\nthis._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()},e.prototype._insertSuggestion=function(e,t){var n,i=this;if(!e||!e.item)return this._alternatives.getValue().reset(),this.model.cancel(),void this.model.clear();if(this.editor.hasModel()){var r=this.editor.getModel(),s=r.getAlternativeVersionId(),l=e.item,u=l.completion;1&t||this.editor.pushUndoStop();var d=this.getOverwriteInfo(l,Boolean(8&t));this._memoryService.memorize(r,this.editor.getPosition(),l),Array.isArray(u.additionalTextEdits)&&this.editor.executeEdits(\"suggestController.additionalTextEdits\",u.additionalTextEdits.map((function(e){return c.EditOperation.replace(p.Range.lift(e.range),e.text)})));var h=u.insertText;4&u.insertTextRules||(h=v.SnippetParser.escape(h)),m.SnippetController2.get(this.editor).insert(h,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&u.insertTextRules)}),2&t||this.editor.pushUndoStop(),\nu.command?u.command.id===B.id?this.model.trigger({auto:!0,shy:!1},!0):((n=this._commandService).executeCommand.apply(n,a([u.command.id],u.command.arguments?a(u.command.arguments):[])).catch(o.onUnexpectedError).finally((function(){return i.model.clear()})),this.model.cancel()):(this.model.cancel(),this.model.clear()),4&t&&this._alternatives.getValue().set(e,(function(e){for(;r.canUndo();){s!==r.getAlternativeVersionId()&&r.undo(),i._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(e.item)}},e.prototype.getOverwriteInfo=function(e,t){T.assertType(this.editor.hasModel());var n=\"replace\"===this.editor.getOption(89).insertMode;t&&(n=!n);var i=e.position.column-e.editStart.column,o=(n?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:i+(this.editor.getPosition().column-e.position.column),overwriteAfter:o+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}},e.prototype._alertCompletionItem=function(e){\nvar t=e.completion,o=\"string\"==typeof t.label?t.label:t.label.name;if(i.isNonEmptyArray(t.additionalTextEdits)){var r=y.localize(0,null,o,t.additionalTextEdits.length);n.alert(r)}},e.prototype.triggerSuggest=function(e){this.editor.hasModel()&&(this.model.trigger({auto:!1,shy:!1},!1,e),this.editor.revealLine(this.editor.getPosition().lineNumber,0),this.editor.focus())},e.prototype.triggerSuggestAndAcceptBest=function(e){var t=this;if(this.editor.hasModel()){var n=this.editor.getPosition(),i=function(){n.equals(t.editor.getPosition())&&t._commandService.executeCommand(e.fallback)};I.Event.once(this.model.onDidTrigger)((function(e){var n=[];I.Event.any(t.model.onDidTrigger,t.model.onDidCancel)((function(){u.dispose(n),i()}),void 0,n),t.model.onDidSuggest((function(e){var o=e.completionModel;if(u.dispose(n),0!==o.items.length){var r=t._memoryService.select(t.editor.getModel(),t.editor.getPosition(),o.items),s=o.items[r];!function(e){if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0\n;var n=t.editor.getPosition(),i=e.editStart.column,o=n.column;return o-i!==e.completion.insertText.length||t.editor.getModel().getValueInRange({startLineNumber:n.lineNumber,startColumn:i,endLineNumber:n.lineNumber,endColumn:o})!==e.completion.insertText}(s)?i():(t.editor.pushUndoStop(),t._insertSuggestion({index:r,item:s,model:o},7))}else i()}),void 0,n)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealLine(n.lineNumber,0),this.editor.focus()}},e.prototype.acceptSelectedSuggestion=function(e,t){var n=this.widget.getValue().getFocusedItem(),i=0;e&&(i|=4),t&&(i|=8),this._insertSuggestion(n,i)},e.prototype.acceptNextSuggestion=function(){this._alternatives.getValue().next()},e.prototype.acceptPrevSuggestion=function(){this._alternatives.getValue().prev()},e.prototype.cancelSuggestWidget=function(){this.model.cancel(),this.model.clear(),this.widget.getValue().hideWidget()},e.prototype.selectNextSuggestion=function(){this.widget.getValue().selectNext()},e.prototype.selectNextPageSuggestion=function(){\nthis.widget.getValue().selectNextPage()},e.prototype.selectLastSuggestion=function(){this.widget.getValue().selectLast()},e.prototype.selectPrevSuggestion=function(){this.widget.getValue().selectPrevious()},e.prototype.selectPrevPageSuggestion=function(){this.widget.getValue().selectPreviousPage()},e.prototype.selectFirstSuggestion=function(){this.widget.getValue().selectFirst()},e.prototype.toggleSuggestionDetails=function(){this.widget.getValue().toggleDetails()},e.prototype.toggleExplainMode=function(){this.widget.getValue().toggleExplainMode()},e.prototype.toggleSuggestionFocus=function(){this.widget.getValue().toggleDetailsFocus()},e.ID=\"editor.contrib.suggestController\",e=h([g(1,M.IEditorWorkerService),g(2,_.ISuggestMemoryService),g(3,C.ICommandService),g(4,b.IContextKeyService),g(5,S.IInstantiationService)],e)}();t.SuggestController=W;var B=function(e){function t(){return e.call(this,{id:t.id,label:y.localize(1,null),alias:\"Trigger Suggest\",\nprecondition:b.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasCompletionItemProvider),kbOpts:{kbExpr:f.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266,secondary:[521]},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=W.get(t);n&&n.triggerSuggest()},t.id=\"editor.action.triggerSuggest\",t}(d.EditorAction);t.TriggerSuggestAction=B,d.registerEditorContribution(W.ID,W),d.registerEditorAction(B);var V=d.EditorCommand.bindToContribution(W.get);d.registerEditorCommand(new V({id:\"acceptSelectedSuggestion\",precondition:E.Context.Visible,handler:function(e){e.acceptSelectedSuggestion(!0,!1)}})),w.KeybindingsRegistry.registerKeybindingRule({id:\"acceptSelectedSuggestion\",when:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus),primary:2,weight:190}),w.KeybindingsRegistry.registerKeybindingRule({id:\"acceptSelectedSuggestion\",\nwhen:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus,E.Context.AcceptSuggestionsOnEnter,E.Context.MakesTextEdit),primary:3,weight:190}),d.registerEditorCommand(new V({id:\"acceptAlternativeSelectedSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus),kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler:function(e){e.acceptSelectedSuggestion(!1,!0)}})),C.CommandsRegistry.registerCommandAlias(\"acceptSelectedSuggestionOnEnter\",\"acceptSelectedSuggestion\"),d.registerEditorCommand(new V({id:\"hideSuggestWidget\",precondition:E.Context.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),d.registerEditorCommand(new V({id:\"selectNextSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:190,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),d.registerEditorCommand(new V({id:\"selectNextPageSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),d.registerEditorCommand(new V({id:\"selectLastSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),d.registerEditorCommand(new V({id:\"selectPrevSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),d.registerEditorCommand(new V({id:\"selectPrevPageSuggestion\",\nprecondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),d.registerEditorCommand(new V({id:\"selectFirstSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),d.registerEditorCommand(new V({id:\"toggleSuggestionDetails\",precondition:E.Context.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266}}})),d.registerEditorCommand(new V({id:\"toggleExplainMode\",precondition:E.Context.Visible,handler:function(e){return e.toggleExplainMode()},kbOpts:{weight:100,primary:2133}})),d.registerEditorCommand(new V({id:\"toggleSuggestionFocus\",precondition:E.Context.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:190,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),d.registerEditorCommand(new V({id:\"insertBestCompletion\",precondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),x.WordContextKey.AtEnd,E.Context.Visible.toNegated(),L.SuggestAlternatives.OtherSuggestions.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e,t){e.triggerSuggestAndAcceptBest(T.isObject(t)?l({fallback:\"tab\"},t):{fallback:\"tab\"})},kbOpts:{weight:190,primary:2}})),d.registerEditorCommand(new V({id:\"insertNextSuggestion\",precondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),L.SuggestAlternatives.OtherSuggestions,E.Context.Visible.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e){return e.acceptNextSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:2}})),d.registerEditorCommand(new V({id:\"insertPrevSuggestion\",\nprecondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),L.SuggestAlternatives.OtherSuggestions,E.Context.Visible.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e){return e.acceptPrevSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:1026}}))})),define(n[611],i([0,1,164,121,230,188,566,524,525,526,579,569,223,530,531,532,533,232,574,534,536,235,236,237,601,576,539,577,580,582,584,541,173,610,542,225,586,226,543,59]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})})),define(n[615],i([0,1,605,611,587,544,588,589,590,591,597,545]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n)}))}).call(this);\n\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/typescript/lib/typescriptServicesMetadata\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.typescriptVersion=\"3.7.5\"})),define(\"vs/language/typescript/monaco.contribution\",[\"require\",\"exports\",\"./lib/typescriptServicesMetadata\",\"vs/editor/editor.api\"],(function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i,o,r,s,a,c=monaco.Emitter,u=function(){function t(t,e){this._onDidChange=new c,this._onDidExtraLibsChange=new c,this._extraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(e),this._onDidExtraLibsChangeTimeout=-1}return Object.defineProperty(t.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"onDidExtraLibsChange\",{get:function(){return this._onDidExtraLibsChange.event},enumerable:!0,configurable:!0}),t.prototype.getExtraLibs=function(){return this._extraLibs},t.prototype.addExtraLib=function(t,e){var n,i=this;if(n=void 0===e?\"ts:extralib-\"+Math.random().toString(36).substring(2,15):e,this._extraLibs[n]&&this._extraLibs[n].content===t)return{dispose:function(){}};var o=1;return this._extraLibs[n]&&(o=this._extraLibs[n].version+1),this._extraLibs[n]={content:t,version:o},this._fireOnDidExtraLibsChangeSoon(),{dispose:function(){var t=i._extraLibs[n];t&&t.version===o&&(delete i._extraLibs[n],i._fireOnDidExtraLibsChangeSoon())}}},t.prototype.setExtraLibs=function(t){if(this._extraLibs=Object.create(null),t&&t.length>0)for(var e=0,n=t;e<n.length;e++){var i=n[e],o=i.filePath||\"ts:extralib-\"+Math.random().toString(36).substring(2,15),r=i.content;this._extraLibs[o]={content:r,version:1}}this._fireOnDidExtraLibsChangeSoon()},t.prototype._fireOnDidExtraLibsChangeSoon=function(){var t=this;-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=setTimeout((function(){t._onDidExtraLibsChangeTimeout=-1,t._onDidExtraLibsChange.fire(void 0)}),0))},t.prototype.getCompilerOptions=function(){return this._compilerOptions},t.prototype.setCompilerOptions=function(t){this._compilerOptions=t||Object.create(null),this._onDidChange.fire(void 0)},t.prototype.getDiagnosticsOptions=function(){return this._diagnosticsOptions},t.prototype.setDiagnosticsOptions=function(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(void 0)},t.prototype.setMaximumWorkerIdleTime=function(t){},t.prototype.setEagerModelSync=function(t){this._eagerModelSync=t},t.prototype.getEagerModelSync=function(){return this._eagerModelSync},t}();e.LanguageServiceDefaultsImpl=u,function(t){t[t.None=0]=\"None\",t[t.CommonJS=1]=\"CommonJS\",t[t.AMD=2]=\"AMD\",t[t.UMD=3]=\"UMD\",t[t.System=4]=\"System\",t[t.ES2015=5]=\"ES2015\",t[t.ESNext=99]=\"ESNext\"}(i||(i={})),function(t){t[t.None=0]=\"None\",t[t.Preserve=1]=\"Preserve\",t[t.React=2]=\"React\",t[t.ReactNative=3]=\"ReactNative\"}(o||(o={})),function(t){t[t.CarriageReturnLineFeed=0]=\"CarriageReturnLineFeed\",t[t.LineFeed=1]=\"LineFeed\"}(r||(r={})),function(t){t[t.ES3=0]=\"ES3\",t[t.ES5=1]=\"ES5\",t[t.ES2015=2]=\"ES2015\",t[t.ES2016=3]=\"ES2016\",t[t.ES2017=4]=\"ES2017\",t[t.ES2018=5]=\"ES2018\",t[t.ES2019=6]=\"ES2019\",t[t.ES2020=7]=\"ES2020\",t[t.ESNext=99]=\"ESNext\",t[t.JSON=100]=\"JSON\",t[t.Latest=99]=\"Latest\"}(s||(s={})),function(t){t[t.Classic=1]=\"Classic\",t[t.NodeJs=2]=\"NodeJs\"}(a||(a={}));var p=new u({allowNonTsExtensions:!0,target:s.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1}),g=new u({allowNonTsExtensions:!0,allowJs:!0,target:s.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1});function d(){return f().then((function(t){return t.getTypeScriptWorker()}))}function l(){return f().then((function(t){return t.getJavaScriptWorker()}))}function f(){return new Promise((function(e,n){t([\"./tsMode\"],e,n)}))}monaco.languages.typescript={ModuleKind:i,JsxEmit:o,NewLineKind:r,ScriptTarget:s,ModuleResolutionKind:a,typescriptVersion:n.typescriptVersion,typescriptDefaults:p,javascriptDefaults:g,getTypeScriptWorker:d,getJavaScriptWorker:l},monaco.languages.onLanguage(\"typescript\",(function(){return f().then((function(t){return t.setupTypeScript(p)}))})),monaco.languages.onLanguage(\"javascript\",(function(){return f().then((function(t){return t.setupJavaScript(g)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/css/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var o=monaco.Emitter,t=function(){function e(e,n,t){this._onDidChange=new o,this._languageId=e,this.setDiagnosticsOptions(n),this.setModeConfiguration(t)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"diagnosticsOptions\",{get:function(){return this._diagnosticsOptions},enumerable:!0,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=t;var i={validate:!0,lint:{compatibleVendorPrefixes:\"ignore\",vendorPrefix:\"warning\",duplicateProperties:\"warning\",emptyRules:\"warning\",importStatement:\"ignore\",boxModel:\"ignore\",universalSelector:\"ignore\",zeroUnits:\"ignore\",fontFaceProperties:\"warning\",hexColorLength:\"error\",argumentsInColorFunction:\"error\",unknownProperties:\"warning\",ieHack:\"ignore\",unknownVendorSpecificProperties:\"ignore\",propertyIgnoredDueToDisplay:\"warning\",important:\"ignore\",float:\"ignore\",idSelector:\"ignore\"}},r={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},s=new t(\"css\",i,r),a=new t(\"scss\",i,r),u=new t(\"less\",i,r);function g(){return new Promise((function(n,o){e([\"./cssMode\"],n,o)}))}monaco.languages.css={cssDefaults:s,lessDefaults:u,scssDefaults:a},monaco.languages.onLanguage(\"less\",(function(){g().then((function(e){return e.setupMode(u)}))})),monaco.languages.onLanguage(\"scss\",(function(){g().then((function(e){return e.setupMode(a)}))})),monaco.languages.onLanguage(\"css\",(function(){g().then((function(e){return e.setupMode(s)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/json/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=monaco.Emitter,o=function(){function e(e,n,o){this._onDidChange=new t,this._languageId=e,this.setDiagnosticsOptions(n),this.setModeConfiguration(o)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"diagnosticsOptions\",{get:function(){return this._diagnosticsOptions},enumerable:!0,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=o;var i=new o(\"json\",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});monaco.languages.json={jsonDefaults:i},monaco.languages.register({id:\"json\",extensions:[\".json\",\".bowerrc\",\".jshintrc\",\".jscsrc\",\".eslintrc\",\".babelrc\",\".har\"],aliases:[\"JSON\",\"json\"],mimetypes:[\"application/json\"]}),monaco.languages.onLanguage(\"json\",(function(){new Promise((function(n,t){e([\"./jsonMode\"],n,t)})).then((function(e){return e.setupMode(i)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/html/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=monaco.Emitter,o=function(){function e(e,n,o){this._onDidChange=new t,this._languageId=e,this.setOptions(n),this.setModeConfiguration(o)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),e.prototype.setOptions=function(e){this._options=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=o;var r={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:\"pre\",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:null,indentHandlebars:!1,endWithNewline:!1,extraLiners:\"head, body, /html\",wrapAttributes:\"auto\"},a={format:r,suggest:{html5:!0}},i={format:r,suggest:{html5:!0,razor:!0}};function u(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===s,documentFormattingEdits:e===s,documentRangeFormattingEdits:e===s}}var s=\"html\",g=new o(s,{format:r,suggest:{html5:!0,angular1:!0,ionic:!0}},u(s)),l=new o(\"handlebars\",a,u(\"handlebars\")),c=new o(\"razor\",i,u(\"razor\"));function d(){return new Promise((function(n,t){e([\"./htmlMode\"],n,t)}))}monaco.languages.html={htmlDefaults:g,razorDefaults:c,handlebarDefaults:l},monaco.languages.onLanguage(s,(function(){d().then((function(e){return e.setupMode(g)}))})),monaco.languages.onLanguage(\"handlebars\",(function(){d().then((function(e){return e.setupMode(l)}))})),monaco.languages.onLanguage(\"razor\",(function(){d().then((function(e){return e.setupMode(c)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/_.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});var t=\"undefined\"==typeof monaco?self.monaco:monaco,n={},s={},r=function(){function e(e){var i=this;this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((function(e,t){i._lazyLoadPromiseResolve=e,i._lazyLoadPromiseReject=t}))}return e.getOrCreate=function(i){return s[i]||(s[i]=new e(i)),s[i]},e.prototype.whenLoaded=function(){return this._lazyLoadPromise},e.prototype.load=function(){var e=this;return this._loadingTriggered||(this._loadingTriggered=!0,n[this._languageId].loader().then((function(i){return e._lazyLoadPromiseResolve(i)}),(function(i){return e._lazyLoadPromiseReject(i)}))),this._lazyLoadPromise},e}();i.loadLanguage=function(e){return r.getOrCreate(e).load()},i.registerLanguage=function(e){var i=e.id;n[i]=e,t.languages.register(e);var s=r.getOrCreate(i);t.languages.setMonarchTokensProvider(i,s.whenLoaded().then((function(e){return e.language}))),t.languages.onLanguage(i,(function(){s.load().then((function(e){t.languages.setLanguageConfiguration(i,e.conf)}))}))}})),define(\"vs/basic-languages/abap/abap.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"abap\",extensions:[\".abap\"],aliases:[\"abap\",\"ABAP\"],loader:function(){return new Promise((function(i,t){e([\"./abap\"],i,t)}))}})})),define(\"vs/basic-languages/apex/apex.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"apex\",extensions:[\".cls\"],aliases:[\"Apex\",\"apex\"],mimetypes:[\"text/x-apex-source\",\"text/x-apex\"],loader:function(){return new Promise((function(i,t){e([\"./apex\"],i,t)}))}})})),define(\"vs/basic-languages/azcli/azcli.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"azcli\",extensions:[\".azcli\"],aliases:[\"Azure CLI\",\"azcli\"],loader:function(){return new Promise((function(i,t){e([\"./azcli\"],i,t)}))}})})),define(\"vs/basic-languages/bat/bat.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"bat\",extensions:[\".bat\",\".cmd\"],aliases:[\"Batch\",\"bat\"],loader:function(){return new Promise((function(i,t){e([\"./bat\"],i,t)}))}})})),define(\"vs/basic-languages/cameligo/cameligo.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"cameligo\",extensions:[\".mligo\"],aliases:[\"Cameligo\"],loader:function(){return new Promise((function(i,t){e([\"./cameligo\"],i,t)}))}})})),define(\"vs/basic-languages/clojure/clojure.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"clojure\",extensions:[\".clj\",\".cljs\",\".cljc\",\".edn\"],aliases:[\"clojure\",\"Clojure\"],loader:function(){return new Promise((function(i,t){e([\"./clojure\"],i,t)}))}})})),define(\"vs/basic-languages/coffee/coffee.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"coffeescript\",extensions:[\".coffee\"],aliases:[\"CoffeeScript\",\"coffeescript\",\"coffee\"],mimetypes:[\"text/x-coffeescript\",\"text/coffeescript\"],loader:function(){return new Promise((function(i,t){e([\"./coffee\"],i,t)}))}})})),define(\"vs/basic-languages/cpp/cpp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"c\",extensions:[\".c\",\".h\"],aliases:[\"C\",\"c\"],loader:function(){return new Promise((function(i,t){e([\"./cpp\"],i,t)}))}}),t.registerLanguage({id:\"cpp\",extensions:[\".cpp\",\".cc\",\".cxx\",\".hpp\",\".hh\",\".hxx\"],aliases:[\"C++\",\"Cpp\",\"cpp\"],loader:function(){return new Promise((function(i,t){e([\"./cpp\"],i,t)}))}})})),define(\"vs/basic-languages/csharp/csharp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"csharp\",extensions:[\".cs\",\".csx\",\".cake\"],aliases:[\"C#\",\"csharp\"],loader:function(){return new Promise((function(i,t){e([\"./csharp\"],i,t)}))}})})),define(\"vs/basic-languages/csp/csp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"csp\",extensions:[],aliases:[\"CSP\",\"csp\"],loader:function(){return new Promise((function(i,t){e([\"./csp\"],i,t)}))}})})),define(\"vs/basic-languages/css/css.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"css\",extensions:[\".css\"],aliases:[\"CSS\",\"css\"],mimetypes:[\"text/css\"],loader:function(){return new Promise((function(i,t){e([\"./css\"],i,t)}))}})})),define(\"vs/basic-languages/dockerfile/dockerfile.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"dockerfile\",extensions:[\".dockerfile\"],filenames:[\"Dockerfile\"],aliases:[\"Dockerfile\"],loader:function(){return new Promise((function(i,t){e([\"./dockerfile\"],i,t)}))}})})),define(\"vs/basic-languages/fsharp/fsharp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"fsharp\",extensions:[\".fs\",\".fsi\",\".ml\",\".mli\",\".fsx\",\".fsscript\"],aliases:[\"F#\",\"FSharp\",\"fsharp\"],loader:function(){return new Promise((function(i,t){e([\"./fsharp\"],i,t)}))}})})),define(\"vs/basic-languages/go/go.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"go\",extensions:[\".go\"],aliases:[\"Go\"],loader:function(){return new Promise((function(i,t){e([\"./go\"],i,t)}))}})})),define(\"vs/basic-languages/graphql/graphql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"graphql\",extensions:[\".graphql\",\".gql\"],aliases:[\"GraphQL\",\"graphql\",\"gql\"],mimetypes:[\"application/graphql\"],loader:function(){return new Promise((function(i,t){e([\"./graphql\"],i,t)}))}})})),define(\"vs/basic-languages/handlebars/handlebars.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"handlebars\",extensions:[\".handlebars\",\".hbs\"],aliases:[\"Handlebars\",\"handlebars\"],mimetypes:[\"text/x-handlebars-template\"],loader:function(){return new Promise((function(i,t){e([\"./handlebars\"],i,t)}))}})})),define(\"vs/basic-languages/html/html.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"html\",extensions:[\".html\",\".htm\",\".shtml\",\".xhtml\",\".mdoc\",\".jsp\",\".asp\",\".aspx\",\".jshtm\"],aliases:[\"HTML\",\"htm\",\"html\",\"xhtml\"],mimetypes:[\"text/html\",\"text/x-jshtm\",\"text/template\",\"text/ng-template\"],loader:function(){return new Promise((function(i,t){e([\"./html\"],i,t)}))}})})),define(\"vs/basic-languages/ini/ini.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"ini\",extensions:[\".ini\",\".properties\",\".gitconfig\"],filenames:[\"config\",\".gitattributes\",\".gitconfig\",\".editorconfig\"],aliases:[\"Ini\",\"ini\"],loader:function(){return new Promise((function(i,t){e([\"./ini\"],i,t)}))}})})),define(\"vs/basic-languages/java/java.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"java\",extensions:[\".java\",\".jav\"],aliases:[\"Java\",\"java\"],mimetypes:[\"text/x-java-source\",\"text/x-java\"],loader:function(){return new Promise((function(i,t){e([\"./java\"],i,t)}))}})})),define(\"vs/basic-languages/javascript/javascript.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"javascript\",extensions:[\".js\",\".es6\",\".jsx\"],firstLine:\"^#!.*\\\\bnode\",filenames:[\"jakefile\"],aliases:[\"JavaScript\",\"javascript\",\"js\"],mimetypes:[\"text/javascript\"],loader:function(){return new Promise((function(i,t){e([\"./javascript\"],i,t)}))}})})),define(\"vs/basic-languages/kotlin/kotlin.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"kotlin\",extensions:[\".kt\"],aliases:[\"Kotlin\",\"kotlin\"],mimetypes:[\"text/x-kotlin-source\",\"text/x-kotlin\"],loader:function(){return new Promise((function(i,t){e([\"./kotlin\"],i,t)}))}})})),define(\"vs/basic-languages/less/less.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"less\",extensions:[\".less\"],aliases:[\"Less\",\"less\"],mimetypes:[\"text/x-less\",\"text/less\"],loader:function(){return new Promise((function(i,t){e([\"./less\"],i,t)}))}})})),define(\"vs/basic-languages/lua/lua.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"lua\",extensions:[\".lua\"],aliases:[\"Lua\",\"lua\"],loader:function(){return new Promise((function(i,t){e([\"./lua\"],i,t)}))}})})),define(\"vs/basic-languages/markdown/markdown.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"markdown\",extensions:[\".md\",\".markdown\",\".mdown\",\".mkdn\",\".mkd\",\".mdwn\",\".mdtxt\",\".mdtext\"],aliases:[\"Markdown\",\"markdown\"],loader:function(){return new Promise((function(i,t){e([\"./markdown\"],i,t)}))}})})),define(\"vs/basic-languages/mips/mips.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"mips\",extensions:[\".s\"],aliases:[\"MIPS\",\"MIPS-V\"],mimetypes:[\"text/x-mips\",\"text/mips\",\"text/plaintext\"],loader:function(){return new Promise((function(i,t){e([\"./mips\"],i,t)}))}})})),define(\"vs/basic-languages/msdax/msdax.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"msdax\",extensions:[\".dax\",\".msdax\"],aliases:[\"DAX\",\"MSDAX\"],loader:function(){return new Promise((function(i,t){e([\"./msdax\"],i,t)}))}})})),define(\"vs/basic-languages/mysql/mysql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"mysql\",extensions:[],aliases:[\"MySQL\",\"mysql\"],loader:function(){return new Promise((function(i,t){e([\"./mysql\"],i,t)}))}})})),define(\"vs/basic-languages/objective-c/objective-c.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"objective-c\",extensions:[\".m\"],aliases:[\"Objective-C\"],loader:function(){return new Promise((function(i,t){e([\"./objective-c\"],i,t)}))}})})),define(\"vs/basic-languages/pascal/pascal.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pascal\",extensions:[\".pas\",\".p\",\".pp\"],aliases:[\"Pascal\",\"pas\"],mimetypes:[\"text/x-pascal-source\",\"text/x-pascal\"],loader:function(){return new Promise((function(i,t){e([\"./pascal\"],i,t)}))}})})),define(\"vs/basic-languages/pascaligo/pascaligo.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pascaligo\",extensions:[\".ligo\"],aliases:[\"Pascaligo\",\"ligo\"],loader:function(){return new Promise((function(i,t){e([\"./pascaligo\"],i,t)}))}})})),define(\"vs/basic-languages/perl/perl.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"perl\",extensions:[\".pl\"],aliases:[\"Perl\",\"pl\"],loader:function(){return new Promise((function(i,t){e([\"./perl\"],i,t)}))}})})),define(\"vs/basic-languages/pgsql/pgsql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pgsql\",extensions:[],aliases:[\"PostgreSQL\",\"postgres\",\"pg\",\"postgre\"],loader:function(){return new Promise((function(i,t){e([\"./pgsql\"],i,t)}))}})})),define(\"vs/basic-languages/php/php.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"php\",extensions:[\".php\",\".php4\",\".php5\",\".phtml\",\".ctp\"],aliases:[\"PHP\",\"php\"],mimetypes:[\"application/x-php\"],loader:function(){return new Promise((function(i,t){e([\"./php\"],i,t)}))}})})),define(\"vs/basic-languages/postiats/postiats.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"postiats\",extensions:[\".dats\",\".sats\",\".hats\"],aliases:[\"ATS\",\"ATS/Postiats\"],loader:function(){return new Promise((function(i,t){e([\"./postiats\"],i,t)}))}})})),define(\"vs/basic-languages/powerquery/powerquery.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"powerquery\",extensions:[\".pq\",\".pqm\"],aliases:[\"PQ\",\"M\",\"Power Query\",\"Power Query M\"],loader:function(){return new Promise((function(i,t){e([\"./powerquery\"],i,t)}))}})})),define(\"vs/basic-languages/powershell/powershell.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"powershell\",extensions:[\".ps1\",\".psm1\",\".psd1\"],aliases:[\"PowerShell\",\"powershell\",\"ps\",\"ps1\"],loader:function(){return new Promise((function(i,t){e([\"./powershell\"],i,t)}))}})})),define(\"vs/basic-languages/pug/pug.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pug\",extensions:[\".jade\",\".pug\"],aliases:[\"Pug\",\"Jade\",\"jade\"],loader:function(){return new Promise((function(i,t){e([\"./pug\"],i,t)}))}})})),define(\"vs/basic-languages/python/python.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"python\",extensions:[\".py\",\".rpy\",\".pyw\",\".cpy\",\".gyp\",\".gypi\"],aliases:[\"Python\",\"py\"],firstLine:\"^#!/.*\\\\bpython[0-9.-]*\\\\b\",loader:function(){return new Promise((function(i,t){e([\"./python\"],i,t)}))}})})),define(\"vs/basic-languages/r/r.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"r\",extensions:[\".r\",\".rhistory\",\".rprofile\",\".rt\"],aliases:[\"R\",\"r\"],loader:function(){return new Promise((function(i,t){e([\"./r\"],i,t)}))}})})),define(\"vs/basic-languages/razor/razor.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"razor\",extensions:[\".cshtml\"],aliases:[\"Razor\",\"razor\"],mimetypes:[\"text/x-cshtml\"],loader:function(){return new Promise((function(i,t){e([\"./razor\"],i,t)}))}})})),define(\"vs/basic-languages/redis/redis.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"redis\",extensions:[\".redis\"],aliases:[\"redis\"],loader:function(){return new Promise((function(i,t){e([\"./redis\"],i,t)}))}})})),define(\"vs/basic-languages/redshift/redshift.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"redshift\",extensions:[],aliases:[\"Redshift\",\"redshift\"],loader:function(){return new Promise((function(i,t){e([\"./redshift\"],i,t)}))}})})),define(\"vs/basic-languages/restructuredtext/restructuredtext.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"restructuredtext\",extensions:[\".rst\"],aliases:[\"reStructuredText\",\"restructuredtext\"],loader:function(){return new Promise((function(i,t){e([\"./restructuredtext\"],i,t)}))}})})),define(\"vs/basic-languages/ruby/ruby.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"ruby\",extensions:[\".rb\",\".rbx\",\".rjs\",\".gemspec\",\".pp\"],filenames:[\"rakefile\"],aliases:[\"Ruby\",\"rb\"],loader:function(){return new Promise((function(i,t){e([\"./ruby\"],i,t)}))}})})),define(\"vs/basic-languages/rust/rust.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"rust\",extensions:[\".rs\",\".rlib\"],aliases:[\"Rust\",\"rust\"],loader:function(){return new Promise((function(i,t){e([\"./rust\"],i,t)}))}})})),define(\"vs/basic-languages/sb/sb.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sb\",extensions:[\".sb\"],aliases:[\"Small Basic\",\"sb\"],loader:function(){return new Promise((function(i,t){e([\"./sb\"],i,t)}))}})})),define(\"vs/basic-languages/scheme/scheme.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"scheme\",extensions:[\".scm\",\".ss\",\".sch\",\".rkt\"],aliases:[\"scheme\",\"Scheme\"],loader:function(){return new Promise((function(i,t){e([\"./scheme\"],i,t)}))}})})),define(\"vs/basic-languages/scss/scss.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"scss\",extensions:[\".scss\"],aliases:[\"Sass\",\"sass\",\"scss\"],mimetypes:[\"text/x-scss\",\"text/scss\"],loader:function(){return new Promise((function(i,t){e([\"./scss\"],i,t)}))}})})),define(\"vs/basic-languages/shell/shell.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"shell\",extensions:[\".sh\",\".bash\"],aliases:[\"Shell\",\"sh\"],loader:function(){return new Promise((function(i,t){e([\"./shell\"],i,t)}))}})})),define(\"vs/basic-languages/solidity/solidity.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sol\",extensions:[\".sol\"],aliases:[\"sol\",\"solidity\",\"Solidity\"],loader:function(){return new Promise((function(i,t){e([\"./solidity\"],i,t)}))}})})),define(\"vs/basic-languages/sophia/sophia.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"aes\",extensions:[\".aes\"],aliases:[\"aes\",\"sophia\",\"Sophia\"],loader:function(){return new Promise((function(i,t){e([\"./sophia\"],i,t)}))}})})),define(\"vs/basic-languages/sql/sql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sql\",extensions:[\".sql\"],aliases:[\"SQL\"],loader:function(){return new Promise((function(i,t){e([\"./sql\"],i,t)}))}})})),define(\"vs/basic-languages/st/st.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"st\",extensions:[\".st\",\".iecst\",\".iecplc\",\".lc3lib\"],aliases:[\"StructuredText\",\"scl\",\"stl\"],loader:function(){return new Promise((function(i,t){e([\"./st\"],i,t)}))}})})),define(\"vs/basic-languages/swift/swift.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"swift\",aliases:[\"Swift\",\"swift\"],extensions:[\".swift\"],mimetypes:[\"text/swift\"],loader:function(){return new Promise((function(i,t){e([\"./swift\"],i,t)}))}})})),define(\"vs/basic-languages/tcl/tcl.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"tcl\",extensions:[\".tcl\"],aliases:[\"tcl\",\"Tcl\",\"tcltk\",\"TclTk\",\"tcl/tk\",\"Tcl/Tk\"],loader:function(){return new Promise((function(i,t){e([\"./tcl\"],i,t)}))}})})),define(\"vs/basic-languages/twig/twig.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"twig\",extensions:[\".twig\"],aliases:[\"Twig\",\"twig\"],mimetypes:[\"text/x-twig\"],loader:function(){return new Promise((function(i,t){e([\"./twig\"],i,t)}))}})})),define(\"vs/basic-languages/typescript/typescript.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"typescript\",extensions:[\".ts\",\".tsx\"],aliases:[\"TypeScript\",\"ts\",\"typescript\"],mimetypes:[\"text/typescript\"],loader:function(){return new Promise((function(i,t){e([\"./typescript\"],i,t)}))}})})),define(\"vs/basic-languages/vb/vb.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"vb\",extensions:[\".vb\"],aliases:[\"Visual Basic\",\"vb\"],loader:function(){return new Promise((function(i,t){e([\"./vb\"],i,t)}))}})})),define(\"vs/basic-languages/xml/xml.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"xml\",extensions:[\".xml\",\".dtd\",\".ascx\",\".csproj\",\".config\",\".wxi\",\".wxl\",\".wxs\",\".xaml\",\".svg\",\".svgz\",\".opf\",\".xsl\"],firstLine:\"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",aliases:[\"XML\",\"xml\"],mimetypes:[\"text/xml\",\"application/xml\",\"application/xaml+xml\",\"application/xml-dtd\"],loader:function(){return new Promise((function(i,t){e([\"./xml\"],i,t)}))}})})),define(\"vs/basic-languages/yaml/yaml.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"yaml\",extensions:[\".yaml\",\".yml\"],aliases:[\"YAML\",\"yaml\",\"YML\",\"yml\"],mimetypes:[\"application/x-yaml\"],loader:function(){return new Promise((function(i,t){e([\"./yaml\"],i,t)}))}})})),define(\"vs/basic-languages/monaco.contribution\",[\"require\",\"exports\",\"./abap/abap.contribution\",\"./apex/apex.contribution\",\"./azcli/azcli.contribution\",\"./bat/bat.contribution\",\"./cameligo/cameligo.contribution\",\"./clojure/clojure.contribution\",\"./coffee/coffee.contribution\",\"./cpp/cpp.contribution\",\"./csharp/csharp.contribution\",\"./csp/csp.contribution\",\"./css/css.contribution\",\"./dockerfile/dockerfile.contribution\",\"./fsharp/fsharp.contribution\",\"./go/go.contribution\",\"./graphql/graphql.contribution\",\"./handlebars/handlebars.contribution\",\"./html/html.contribution\",\"./ini/ini.contribution\",\"./java/java.contribution\",\"./javascript/javascript.contribution\",\"./kotlin/kotlin.contribution\",\"./less/less.contribution\",\"./lua/lua.contribution\",\"./markdown/markdown.contribution\",\"./mips/mips.contribution\",\"./msdax/msdax.contribution\",\"./mysql/mysql.contribution\",\"./objective-c/objective-c.contribution\",\"./pascal/pascal.contribution\",\"./pascaligo/pascaligo.contribution\",\"./perl/perl.contribution\",\"./pgsql/pgsql.contribution\",\"./php/php.contribution\",\"./postiats/postiats.contribution\",\"./powerquery/powerquery.contribution\",\"./powershell/powershell.contribution\",\"./pug/pug.contribution\",\"./python/python.contribution\",\"./r/r.contribution\",\"./razor/razor.contribution\",\"./redis/redis.contribution\",\"./redshift/redshift.contribution\",\"./restructuredtext/restructuredtext.contribution\",\"./ruby/ruby.contribution\",\"./rust/rust.contribution\",\"./sb/sb.contribution\",\"./scheme/scheme.contribution\",\"./scss/scss.contribution\",\"./shell/shell.contribution\",\"./solidity/solidity.contribution\",\"./sophia/sophia.contribution\",\"./sql/sql.contribution\",\"./st/st.contribution\",\"./swift/swift.contribution\",\"./tcl/tcl.contribution\",\"./twig/twig.contribution\",\"./typescript/typescript.contribution\",\"./vb/vb.contribution\",\"./xml/xml.contribution\",\"./yaml/yaml.contribution\",\"vs/editor/editor.api\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0})}));\ndefine(\"vs/editor/editor.main\", [\"vs/editor/edcore.main\",\"vs/language/typescript/monaco.contribution\",\"vs/language/css/monaco.contribution\",\"vs/language/json/monaco.contribution\",\"vs/language/html/monaco.contribution\",\"vs/basic-languages/monaco.contribution\"], function(api) { return api; });\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.de.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.de\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (erneut aufgetreten)\",\"{0} ({1} mal aufgetretenen)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Eingabe\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Groß-/Kleinschreibung beachten\",\"Nur ganzes Wort suchen\",\"Regulären Ausdruck verwenden\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Eingabe\",\"Groß-/Kleinschreibung beibehalten\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Fehler: {0}\",\"Warnung: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Ungebunden\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Verwenden Sie die Navigationstasten, um zu navigieren.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Löschen\",\"Typfilter deaktivieren\",\"Typfilter aktivieren\",\"Keine Elemente gefunden\",\"{0} von {1} Elementen stimmen überein\"],\n\"vs/base/common/keybindingLabels\":[\"STRG\",\"UMSCHALTTASTE\",\"ALT\",\"Windows\",\"STRG\",\"UMSCHALTTASTE\",\"ALT\",\"Super\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Befehl\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Windows\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Super\"],\"vs/base/common/severity\":[\"Fehler\",\"Warnung\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, Auswahl\",\"Auswahl\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Schnellauswahl. Nehmen Sie eine Eingabe vor, um die Ergebnisse einzugrenzen.\",\"Schnellauswahl\",\"{0} Ergebnisse\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Alles auswählen\",\"&&Rückgängig\",\"&&Wiederholen\"],\"vs/editor/browser/controller/textAreaHandler\":[\"Der Editor ist zurzeit nicht verfügbar. Drücken Sie Alt+F1 für Optionen.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Die Anzahl der Cursors wurde auf {0} beschränkt.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Kann die Dateien nicht vergleichen, da eine Datei zu groß ist.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Schließen\",\"keine Zeilen\",\"1 Zeile\",\"{0} Zeilen\",\"Unterschied von {0} zu {1}: Original: {2}, {3}, geändert: {4}, {5}\",\"leer\",\"Original {0}, geändert {1}: {2}\",\"+ geändert {0}: {1}\",\"- Original {0}: {1}\",\"Zum nächsten Unterschied wechseln\",\"Zum vorherigen Unterschied wechseln\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Gelöschte Zeilen kopieren\",\"Gelöschte Zeile kopieren\",\"Gelöschte Zeile kopieren ({0})\",\"Diese Änderung rückgängig machen\",\"Gelöschte Zeile kopieren ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",'Die Anzahl der Leerzeichen, denen ein Tabstopp entspricht. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"#editor.detectIndentation#\" aktiviert ist.','Fügt beim Drücken der TAB-Taste Leerzeichen ein. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"#editor.detectIndentation#\" aktiviert ist.','Steuert, ob \"#editor.tabSize#\" und \"#editor.insertSpaces#\" automatisch erkannt werden, wenn eine Datei basierend auf dem Dateiinhalt geöffnet wird.',\"Nachfolgende automatisch eingefügte Leerzeichen entfernen\",\"Spezielle Behandlung für große Dateien zum Deaktivieren bestimmter speicherintensiver Funktionen.\",\"Steuert, ob Vervollständigungen auf Grundlage der Wörter im Dokument berechnet werden sollen.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Peek-Editoren geöffnet lassen, auch wenn auf den Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.\",\"Zeilen, die diese Länge überschreiten, werden aus Leistungsgründen nicht tokenisiert\",\"Timeout in Millisekunden, nach dem die Diff-Berechnung abgebrochen wird. Bei 0 wird kein Timeout verwendet.\",\"Steuert, ob der Diff-Editor die Unterschiede nebeneinander oder im Text anzeigt.\",\"Steuert, ob der Diff-Editor Änderungen an führenden oder nachgestellten Leerzeichen als Diffs anzeigt.\",'Steuert, ob der Diff-Editor die Indikatoren \"+\" und \"-\" für hinzugefügte/entfernte Änderungen anzeigt.'],\n\"vs/editor/common/config/editorOptions\":[\"Der Editor verwendet Plattform-APIs, um zu erkennen, wenn eine Sprachausgabe angefügt wird.\",\"Der Editor wird durchgehend für die Verwendung mit einer Sprachausgabe optimiert.\",\"Der Editor wird nie für die Verwendung mit einer Sprachausgabe optimiert.\",\"Steuert, ob der Editor in einem Modus ausgeführt werden soll, in dem er für die Sprachausgabe optimiert wird.\",\"Steuert, ob beim Kommentieren ein Leerzeichen eingefügt wird.\",\"Steuert, ob ein Kopiervorgang ohne Auswahl die aktuelle Zeile kopiert.\",'Steuert, ob für die Suchzeichenfolge im Widget \"Suche\" ein Seeding aus der Auswahl des Editors ausgeführt wird.','\"In Auswahl suchen\" niemals automatisch aktivieren (Standard)','\"In Auswahl suchen\" immer automatisch aktivieren','\"In Auswahl suchen\" automatisch aktivieren, wenn mehrere Inhaltszeilen ausgewählt sind',\"Steuert, ob der Suchvorgang für den ausgewählten Text oder die gesamte Datei im Editor ausgeführt wird.\",'Steuert, ob das Widget \"Suche\" die freigegebene Suchzwischenablage unter macOS lesen oder bearbeiten soll.','Steuert, ob das Suchwidget zusätzliche Zeilen im oberen Bereich des Editors hinzufügen soll. Wenn die Option auf \"true\" festgelegt ist, können Sie über die erste Zeile hinaus scrollen, wenn das Suchwidget angezeigt wird.',\"Aktiviert/deaktiviert Schriftartligaturen.\",\"Explizite font-feature-settings-Eigenschaft\",\"Konfiguriert Schriftartenligaturen\",\"Steuert den Schriftgrad in Pixeln.\",\"Vorschauansicht der Ergebnisse anzeigen (Standardeinstellung)\",\"Zum Hauptergebnis gehen und Vorschauansicht anzeigen\",\"Wechseln Sie zum primären Ergebnis, und aktivieren Sie die Navigation ohne Vorschau zu anderen Ergebnissen.\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie \"editor.editor.gotoLocation.multipleDefinitions\" oder \"editor.editor.gotoLocation.multipleImplementations\".','Legt das Verhalten des Befehls \"Gehe zu Definition\" fest, wenn mehrere Zielpositionen vorhanden sind','Legt das Verhalten des Befehls \"Gehe zur Typdefinition\" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls \"Gehe zu Deklaration\" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls \"Gehe zu Implementierungen\", wenn mehrere Zielspeicherorte vorhanden sind','Legt das Verhalten des Befehls \"Gehe zu Verweisen\" fest, wenn mehrere Zielpositionen vorhanden sind','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Definition\" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Typdefinition\" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Deklaration\" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Implementatierung\" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Verweis\" die aktuelle Position ist.',\"Steuert, ob die Hovermarkierung angezeigt wird.\",\"Steuert die Verzögerung in Millisekunden, nach der die Hovermarkierung angezeigt wird.\",\"Steuert, ob die Hovermarkierung sichtbar bleiben soll, wenn der Mauszeiger darüber bewegt wird.\",\"Aktiviert das Glühbirnensymbol für Codeaktionen im Editor.\",\"Steuert die Zeilenhöhe. Verwenden Sie 0, um die Zeilenhöhe aus der Schriftgröße zu berechnen.\",\"Steuert, ob die Minimap angezeigt wird.\",\"Steuert die Seite, wo die Minimap gerendert wird.\",\"Steuert, wann der Schieberegler für die Minimap angezeigt wird.\",\"Maßstab für in der Minimap gezeichnete Inhalte\",\"Die tatsächlichen Zeichen in einer Zeile rendern im Gegensatz zu Farbblöcken.\",\"Begrenzen Sie die Breite der Minimap, um nur eine bestimmte Anzahl von Spalten zu rendern.\",\"Aktiviert ein Pop-up, das Dokumentation und Typ eines Parameters anzeigt während Sie tippen.\",\"Steuert, ob das Menü mit Parameterhinweisen zyklisch ist oder sich am Ende der Liste schließt.\",\"Schnellvorschläge innerhalb von Zeichenfolgen aktivieren.\",\"Schnellvorschläge innerhalb von Kommentaren aktivieren.\",\"Schnellvorschläge außerhalb von Zeichenfolgen und Kommentaren aktivieren.\",\"Steuert, ob Vorschläge automatisch während der Eingabe angezeigt werden sollen.\",\"Zeilennummern werden nicht dargestellt.\",\"Zeilennummern werden als absolute Zahl dargestellt.\",\"Zeilennummern werden als Abstand in Zeilen an Cursorposition dargestellt.\",\"Zeilennummern werden alle 10 Zeilen dargestellt.\",\"Steuert die Anzeige von Zeilennummern.\",\"Vertikale Linien nach einer bestimmten Anzahl von Monospacezeichen rendern. Verwenden Sie mehrere Werte für mehrere Linien. Wenn das Array leer ist, werden keine Linien gerendert.\",\"Vorschlag einfügen, ohne den Text auf der rechten Seite des Cursors zu überschreiben\",\"Vorschlag einfügen und Text auf der rechten Seite des Cursors überschreiben\",\"Legt fest, ob Wörter beim Akzeptieren von Vervollständigungen überschrieben werden. Beachten Sie, dass dies von Erweiterungen abhängt, die für dieses Features aktiviert sind.\",'Legt fest, ob unerwartete Textänderungen beim Akzeptieren von Vervollständigungen hervorgehoben werden sollen, z. B. wenn \"insertMode\" auf \"replace\" festgelegt ist, aber die Vervollständigung nur \"insert\" unterstützt.',\"Steuert, ob Filter- und Suchvorschläge geringfügige Tippfehler berücksichtigen.\",\"Steuert, ob bei der Suche Wörter eine höhere Trefferquote erhalten, die in der Nähe des Cursors stehen.\",'Steuert, ob gespeicherte Vorschlagauswahlen in verschiedenen Arbeitsbereichen und Fenstern gemeinsam verwendet werden (dafür ist \"#editor.suggestSelection#\" erforderlich).',\"Steuert, ob ein aktiver Ausschnitt Schnellvorschläge verhindert.\",\"Steuert, ob Symbole in Vorschlägen ein- oder ausgeblendet werden.\",\"Steuert, wie viele Vorschläge IntelliSense anzeigt, bevor eine Scrollleiste eingeblendet wird (maximal 15).\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie \"editor.suggest.showKeywords\" oder \"editor.suggest.showSnippets\".','Wenn aktiviert, zeigt IntelliSense \"method\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"funktions\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"constructor\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"field\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"variable\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"class\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"struct\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"interface\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"module\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"property\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"event\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"operator\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"unit\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"value\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"constant\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"enum\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"enumMember\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"keyword\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"text\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"color\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"file\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"reference\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"customcolor\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"folder\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"typeParameter\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"snippet\"-Vorschläge an.',\"Steuert die Sichtbarkeit der Statusleiste unten im Vorschlagswidget.\",'Steuert, ob Vorschläge über Commitzeichen angenommen werden sollen. In JavaScript kann ein Semikolon (\";\") beispielsweise ein Commitzeichen sein, das einen Vorschlag annimmt und dieses Zeichen eingibt.',\"Einen Vorschlag nur mit der EINGABETASTE akzeptieren, wenn dieser eine Änderung am Text vornimmt.\",\"Steuert, ob Vorschläge mit der EINGABETASTE (zusätzlich zur TAB-Taste) akzeptiert werden sollen. Vermeidet Mehrdeutigkeit zwischen dem Einfügen neuer Zeilen oder dem Annehmen von Vorschlägen.\",\"Legt die Anzahl der Zeilen im Editor fest, die von der Sprachausgabe ausgelesen werden können. Warnung: Es gibt eine Leistungsimplikation für Zahlen, die größer als die Standardeinstellung sind.\",\"Editor-Inhalt\",\"Verwenden Sie Sprachkonfigurationen, um zu bestimmen, wann Klammern automatisch geschlossen werden sollen.\",\"Schließe Klammern nur automatisch, wenn der Cursor sich links von einem Leerzeichen befindet.\",\"Steuert, ob der Editor automatisch Klammern schließen soll, nachdem der Benutzer eine öffnende Klammer hinzugefügt hat.\",\"Schließende Anführungszeichen oder Klammern werden nur überschrieben, wenn sie automatisch eingefügt wurden.\",\"Steuert, ob der Editor schließende Anführungszeichen oder Klammern überschreiben soll.\",\"Verwende die Sprachkonfiguration, um zu ermitteln, wann Anführungsstriche automatisch geschlossen werden.\",\"Schließende Anführungszeichen nur dann automatisch ergänzen, wenn der Cursor sich links von einem Leerzeichen befindet.\",\"Steuert, ob der Editor Anführungszeichen automatisch schließen soll, nachdem der Benutzer ein öffnendes Anführungszeichen hinzugefügt hat.\",\"Der Editor fügt den Einzug nicht automatisch ein.\",\"Der Editor behält den Einzug der aktuellen Zeile bei.\",\"Der Editor behält den in der aktuellen Zeile definierten Einzug bei und beachtet für Sprachen definierte Klammern.\",\"Der Editor behält den Einzug der aktuellen Zeile bei, beachtet von Sprachen definierte Klammern und ruft spezielle onEnterRules-Regeln auf, die von Sprachen definiert wurden.\",\"Der Editor behält den Einzug der aktuellen Zeile bei, beachtet die von Sprachen definierten Klammern, ruft von Sprachen definierte spezielle onEnterRules-Regeln auf und beachtet von Sprachen definierte indentationRules-Regeln.\",\"Legt fest, ob der Editor den Einzug automatisch anpassen soll, wenn Benutzer Zeilen eingeben, einfügen, verschieben oder einrücken\",\"Sprachkonfigurationen verwenden, um zu bestimmen, wann eine Auswahl automatisch umschlossen werden soll.\",\"Mit Anführungszeichen, nicht mit Klammern umschließen.\",\"Mit Klammern, nicht mit Anführungszeichen umschließen.\",\"Steuert, ob der Editor eine Auswahl automatisch umschließen soll.\",\"Steuert, ob der Editor CodeLens anzeigt.\",\"Steuert, ob der Editor die Inline-Farbdecorators und die Farbauswahl rendern soll.\",\"Steuert, ob Syntax-Highlighting in die Zwischenablage kopiert wird.\",\"Steuert den Cursoranimationsstil.\",\"Steuert, ob die weiche Cursoranimation aktiviert werden soll.\",\"Steuert den Cursor-Stil.\",'Steuert die Mindestanzahl sichtbarer vorangehender und nachfolgender Zeilen, die den Cursor umgeben. Wird in anderen Editoren als \"scrollOff\" oder \"scrollOffset\" bezeichnet.','\"cursorSurroundingLines\" wird nur erzwungen, wenn die Auslösung über die Tastatur oder API erfolgt.','\"cursorSurroundingLines\" wird immer erzwungen.',\"Legt fest, wann cursorSurroundingLines erzwungen werden soll\",\"Steuert die Breite des Cursors, wenn `#editor.cursorStyle#` auf `line` festgelegt ist.\",\"Steuert, ob der Editor das Verschieben einer Auswahl per Drag and Drop zulässt.\",\"Multiplikator für Scrollgeschwindigkeit bei Drücken von ALT.\",\"Steuert, ob Codefaltung im Editor aktiviert ist.\",'Steuert die Strategie für die Berechnung von Faltungsbereichen. \"auto\" verwendet eine sprachspezifische Faltungsstrategie (falls verfügbar). \"indentation\" verwendet die einzugsbasierte Faltungsstrategie.',\"Steuert, ob der Editor eingefaltete Bereiche hervorheben soll.\",\"Steuert die Schriftfamilie.\",\"Steuert die Schriftbreite.\",\"Steuert, ob der Editor den eingefügten Inhalt automatisch formatieren soll. Es muss ein Formatierer vorhanden sein, der in der Lage ist, auch Dokumentbereiche zu formatieren.\",\"Steuert, ob der Editor die Zeile nach der Eingabe automatisch formatieren soll.\",\"Steuert, ob der Editor den vertikalen Glyphenrand rendert. Der Glyphenrand wird hauptsächlich zum Debuggen verwendet.\",\"Steuert, ob der Cursor im Übersichtslineal ausgeblendet werden soll.\",\"Steuert, ob der Editor die aktive Einzugsführungslinie hevorheben soll.\",\"Steuert den Zeichenabstand in Pixeln.\",\"Steuert, ob der Editor Links erkennen und anklickbar machen soll.\",\"Passende Klammern hervorheben\",'Ein Multiplikator, der für die Mausrad-Bildlaufereignisse \"deltaX\" und \"deltaY\" verwendet werden soll.',\"Schriftart des Editors vergrößern, wenn das Mausrad verwendet und die STRG-TASTE gedrückt wird.\",\"Mehrere Cursor zusammenführen, wenn sie sich überlappen.\",\"Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.\",\"Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.\",'Der Modifizierer, der zum Hinzufügen mehrerer Cursor mit der Maus verwendet wird. Die Mausbewegungen \"Gehe zu Definition\" und \"Link öffnen\" werden so angepasst, dass kein Konflikt mit dem Multi-Cursor-Modifizierer entsteht. [Weitere Informationen](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).',\"Jeder Cursor fügt eine Textzeile ein.\",\"Jeder Cursor fügt den vollständigen Text ein.\",\"Steuert das Einfügen, wenn die Zeilenanzahl des Einfügetexts der Cursor-Anzahl entspricht.\",\"Steuert, ob der Editor das Vorkommen semantischer Symbole hervorheben soll.\",\"Steuert, ob um das Übersichtslineal ein Rahmen gezeichnet werden soll.\",\"Struktur fokussieren, wenn Sie den Peek-Editor öffnen\",\"Editor fokussieren, wenn Sie den Peek-Editor öffnen\",\"Steuert, ob der Inline-Editor oder die Struktur im Peek-Widget fokussiert werden soll.\",\"Steuert die Verzögerung in Millisekunden nach der Schnellvorschläge angezeigt werden.\",\"Steuert, ob der Editor Steuerzeichen rendern soll.\",\"Steuert, ob der Editor Einzugsführungslinien rendern soll.\",\"Letzte Zeilennummer rendern, wenn die Datei mit einem Zeilenumbruch endet.\",\"Hebt den Bundsteg und die aktuelle Zeile hervor.\",\"Steuert, wie der Editor die aktuelle Zeilenhervorhebung rendern soll.\",\"Render whitespace characters except for single spaces between words.\",\"Hiermit werden Leerraumzeichen nur für ausgewählten Text gerendert.\",\"Steuert, wie der Editor Leerzeichen rendern soll.\",\"Steuert, ob eine Auswahl abgerundete Ecken aufweisen soll.\",\"Steuert die Anzahl der zusätzlichen Zeichen, nach denen der Editor horizontal scrollt.\",\"Steuert, ob der Editor jenseits der letzten Zeile scrollen wird.\",\"Steuert, ob die primäre Linux-Zwischenablage unterstützt werden soll.\",\"Steuert, ob der Editor Übereinstimmungen hervorheben soll, die der Auswahl ähneln.\",\"Steuert, ob die Falt-Steuerelemente an der Leiste automatisch ausgeblendet werden.\",\"Steuert das Ausblenden von nicht verwendetem Code.\",\"Zeige Snippet Vorschläge über den anderen Vorschlägen.\",\"Snippet Vorschläge unter anderen Vorschlägen anzeigen.\",\"Zeige Snippet Vorschläge mit anderen Vorschlägen.\",\"Keine Ausschnittvorschläge anzeigen.\",\"Steuert, ob Codeausschnitte mit anderen Vorschlägen angezeigt und wie diese sortiert werden.\",\"Legt fest, ob der Editor Bildläufe animiert ausführt.\",'Schriftgröße für das vorgeschlagene Widget. Bei Festlegung auf 0 wird der Wert von \"#editor.fontSize#\" verwendet.','Zeilenhöhe für das vorgeschlagene Widget. Bei Festlegung auf 0 wird der Wert von \"#editor.lineHeight#\" verwendet.',\"Steuert, ob Vorschläge automatisch angezeigt werden sollen, wenn Triggerzeichen eingegeben werden.\",\"Immer den ersten Vorschlag auswählen.\",'Wählen Sie die aktuellsten Vorschläge aus, es sei denn, es wird ein Vorschlag durch eine weitere Eingabe ausgewählt, z.B. \"console.| -> console.log\", weil \"log\" vor Kurzem abgeschlossen wurde.','Wählen Sie Vorschläge basierend auf früheren Präfixen aus, die diese Vorschläge abgeschlossen haben, z.B. \"co -> console\" und \"con ->\" const\".',\"Steuert, wie Vorschläge bei Anzeige der Vorschlagsliste vorab ausgewählt werden.\",\"Die Tab-Vervollständigung fügt den passendsten Vorschlag ein, wenn auf Tab gedrückt wird.\",\"Tab-Vervollständigungen deaktivieren.\",'Codeausschnitte per Tab vervollständigen, wenn die Präfixe übereinstimmen. Funktioniert am besten, wenn \"quickSuggestions\" deaktiviert sind.',\"Tab-Vervollständigungen aktivieren.\",\"Das Einfügen und Löschen von Leerzeichen erfolgt nach Tabstopps.\",\"Zeichen, die als Worttrennzeichen verwendet werden, wenn wortbezogene Navigationen oder Vorgänge ausgeführt werden.\",\"Zeilenumbrüche erfolgen nie.\",\"Der Zeilenumbruch erfolgt an der Breite des Anzeigebereichs.\",'Der Zeilenumbruch erfolgt bei \"#editor.wordWrapColumn#\".','Der Zeilenumbruch erfolgt beim Mindestanzeigebereich und \"#editor.wordWrapColumn\".',\"Steuert, wie der Zeilenumbruch durchgeführt werden soll.\",'Steuert die umschließende Spalte des Editors, wenn \"#editor.wordWrap#\" den Wert \"wordWrapColumn\" oder \"bounded\" aufweist.',\"Kein Einzug. Umbrochene Zeilen beginnen bei Spalte 1.\",\"Umbrochene Zeilen erhalten den gleichen Einzug wie das übergeordnete Element.\",\"Umbrochene Zeilen erhalten + 1 Einzug auf das übergeordnete Element.\",\"Umgebrochene Zeilen werden im Vergleich zum übergeordneten Element +2 eingerückt.\",\"Steuert die Einrückung der umbrochenen Zeilen.\",\"Es wird angenommen, dass alle Zeichen gleich breit sind. Dies ist ein schneller Algorithmus, der für Festbreitenschriftarten und bestimmte Alphabete (wie dem lateinischen), bei denen die Glyphen gleich breit sind, korrekt funktioniert.\",\"Delegiert die Berechnung von Umbruchpunkten an den Browser. Dies ist ein langsamer Algorithmus, der bei großen Dateien Code Freezes verursachen kann, aber in allen Fällen korrekt funktioniert.\",\"Steuert den Algorithmus, der Umbruchpunkte berechnet.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Nur-Text\"],\n\"vs/editor/common/standaloneStrings\":[\"Keine Auswahl\",\"Zeile {0}, Spalte {1} ({2} ausgewählt)\",\"Zeile {0}, Spalte {1}\",\"{0} Auswahlen ({1} Zeichen ausgewählt)\",\"{0} Auswahlen\",'Die Einstellung \"accessibilitySupport\" wird jetzt in \"on\" geändert.',\"Die Dokumentationsseite zur Barrierefreiheit des Editors wird geöffnet.\",\"in einem schreibgeschützten Bereich eines Diff-Editors.\",\"in einem Bereich eines Diff-Editors.\",\"in einem schreibgeschützten Code-Editor\",\"in einem Code-Editor\",\"Drücken Sie BEFEHLSTASTE + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.\",\"Drücken Sie STRG + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.\",\"Der Editor ist auf eine optimale Verwendung mit Sprachausgabe konfiguriert.\",\"Der Editor ist so konfiguriert, dass er nie auf die Verwendung mit Sprachausgabe hin optimiert wird. Dies ist zu diesem Zeitpunkt nicht der Fall.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.\",\"Drücken Sie BEFEHLSTASTE + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.\",\"Drücken Sie STRG + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.\",\"Sie können diese QuickInfo schließen und durch Drücken von ESC oder UMSCHALT+ESC zum Editor zurückkehren.\",\"Hilfe zur Barrierefreiheit anzeigen\",\"Entwickler: Token überprüfen\",\"Zu Zeile {0} und Zeichen {1} wechseln\",\"Gehe zu Zeile {0}\",\"Zeilennummer zwischen 1 und {0} eingeben, zu der navigiert werden soll\",\"Ein Zeichen zwischen 1 und {0} eingeben, um dorthin zu navigieren\",\"Aktuelle Zeile: {0}. gehe zu Zeile {1}.\",\"Eine Zeilennummer eingeben, gefolgt von einem optionalen Doppelpunkt und einer Zeichennummer, um dorthin zu navigieren\",\"Gehe zu Zeile...\",\"{0}, {1}, Befehle\",\"{0}, Befehle\",\"Name der auszuführenden Aktion eingeben\",\"Befehlspalette\",\"{0}, Symbole\",\"Geben Sie den Namen eines Bezeichners ein, zu dem Sie navigieren möchten.\",\"Gehe zu Symbol...\",\"Symbole ({0})\",\"Module ({0})\",\"Klassen ({0})\",\"Schnittstellen ({0})\",\"Methoden ({0})\",\"Funktionen ({0})\",\"Eigenschaften ({0})\",\"Variablen ({0})\",\"Variablen ({0})\",\"Konstruktoren ({0})\",\"Aufrufe ({0})\",\"Editor-Inhalt\",\"Drücken Sie STRG + F1, um die Barrierefreiheitsoptionen aufzurufen.\",\"Drücken Sie ALT + F1, um die Barrierefreiheitsoptionen aufzurufen.\",\"Zu Design mit hohem Kontrast umschalten\",\"{0} Bearbeitungen in {1} Dateien durchgeführt\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Hintergrundfarbe zur Hervorhebung der Zeile an der Cursorposition.\",\"Hintergrundfarbe für den Rahmen um die Zeile an der Cursorposition.\",\"Hintergrundfarbe der markierten Bereiche, wie z.B. Quick Open oder die Suche. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe für den Rahmen um hervorgehobene Bereiche.\",'Hintergrundfarbe des hervorgehobenen Symbols, z. B. \"Gehe zu Definition\" oder \"Gehe zu nächster/vorheriger\". Die Farbe darf nicht undurchsichtig sein, um zugrunde liegende Dekorationen nicht zu verbergen.',\"Hintergrundfarbe des Rahmens um hervorgehobene Symbole\",\"Farbe des Cursors im Editor.\",\"Hintergrundfarbe vom Editor-Cursor. Erlaubt die Anpassung der Farbe von einem Zeichen, welches von einem Block-Cursor überdeckt wird.\",\"Farbe der Leerzeichen im Editor.\",\"Farbe der Führungslinien für Einzüge im Editor.\",\"Farbe der Führungslinien für Einzüge im aktiven Editor.\",\"Zeilennummernfarbe im Editor.\",\"Zeilennummernfarbe der aktiven Editorzeile.\",'Die ID ist veraltet. Verwenden Sie stattdessen \"editorLineNumber.activeForeground\".',\"Zeilennummernfarbe der aktiven Editorzeile.\",\"Farbe des Editor-Lineals.\",\"Vordergrundfarbe der CodeLens-Links im Editor\",\"Hintergrundfarbe für zusammengehörige Klammern\",\"Farbe für zusammengehörige Klammern\",\"Farbe des Rahmens für das Übersicht-Lineal.\",\"Hintergrundfarbe der Editorleiste. Die Leiste enthält die Glyphenränder und die Zeilennummern.\",\"Rahmenfarbe unnötigen (nicht genutzten) Quellcodes im Editor.\",'Deckkraft des unnötigen (nicht genutzten) Quellcodes im Editor. \"#000000c0\" rendert z.B. den Code mit einer Deckkraft von 75%. Verwenden Sie für Designs mit hohem Kontrast das Farbdesign \"editorUnnecessaryCode.border\", um unnötigen Code zu unterstreichen statt ihn abzublenden.',\"Übersichtslineal-Markierungsfarbe für Fehler.\",\"Übersichtslineal-Markierungsfarbe für Warnungen.\",\"Übersichtslineal-Markierungsfarbe für Informationen.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Übersichtslineal-Markierungsfarbe für zusammengehörige Klammern.\",\"Gehe zu Klammer\",\"Auswählen bis Klammer\",\"Gehe zu &&Klammer\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Caretzeichen nach links verschieben\",\"Caretzeichen nach rechts verschieben\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Buchstaben austauschen\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Ausschneiden\",\"&&Ausschneiden\",\"Kopieren\",\"&&Kopieren\",\"Einfügen\",\"&&Einfügen\",\"Mit Syntaxhervorhebung kopieren\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Art der auszuführenden Codeaktion\",\"Legt fest, wann die zurückgegebenen Aktionen angewendet werden\",\"Die erste zurückgegebene Codeaktion immer anwenden\",\"Die erste zurückgegebene Codeaktion anwenden, wenn nur eine vorhanden ist\",\"Zurückgegebene Codeaktionen nicht anwenden\",\"Legt fest, ob nur bevorzugte Codeaktionen zurückgegeben werden sollen\",\"Beim Anwenden der Code-Aktion ist ein unbekannter Fehler aufgetreten\",\"Schnelle Problembehebung …\",\"Keine Codeaktionen verfügbar\",'Keine bevorzugten Codeaktionen für \"{0}\" verfügbar','Keine Codeaktionen für \"{0}\" verfügbar',\"Keine bevorzugten Codeaktionen verfügbar\",\"Keine Codeaktionen verfügbar\",\"Refactoring durchführen...\",'Keine bevorzugten Refactorings für \"{0}\" verfügbar','Keine Refactorings für \"{0}\" verfügbar',\"Keine bevorzugten Refactorings verfügbar\",\"Keine Refactorings verfügbar\",\"Quellaktion…\",'Keine bevorzugten Quellaktionen für \"{0}\" verfügbar','Keine Quellaktionen für \"{0}\" verfügbar',\"Keine bevorzugten Quellaktionen verfügbar\",\"Keine Quellaktionen verfügbar\",\"Importe organisieren\",\"Keine Aktion zum Organisieren von Importen verfügbar\",\"Alle korrigieren\",'Aktion \"Alle korrigieren\" nicht verfügbar',\"Automatisch korrigieren...\",\"Keine automatischen Korrekturen verfügbar\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Fixes anzeigen. Bevorzugter Fix verfügbar ({0})\",\"Korrekturen anzeigen ({0})\",\"Korrekturen anzeigen\"],\"vs/editor/contrib/comment/comment\":[\"Zeilenkommentar umschalten\",\"Zeilenkommen&&tar umschalten\",\"Zeilenkommentar hinzufügen\",\"Zeilenkommentar entfernen\",\"Blockkommentar umschalten\",\"&&Blockkommentar umschalten\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Editor-Kontextmenü anzeigen\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Mit Cursor rückgängig machen\",\"Wiederholen mit Cursor\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Die Vordergrundfarbe für Arraysymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für boolesche Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Klassensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Farbsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für konstante Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Konstruktorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Enumeratorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Enumeratormembersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Ereignissymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Feldsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Dateisymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Ordnersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Funktionssymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schnittstellensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schlüsselsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schlüsselwortsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Methodensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Modulsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Namespacesymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für NULL-Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Zahlensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Objektsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Operatorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Paketsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Eigenschaftensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Referenzsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Codeausschnittsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Zeichenfolgensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Struktursymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Textsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Typparametersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Einheitensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für variable Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\"],\n\"vs/editor/contrib/find/findController\":[\"Suchen\",\"&&Suchen\",\"Mit Auswahl suchen\",\"Weitersuchen\",\"Weitersuchen\",\"Vorheriges Element suchen\",\"Vorheriges Element suchen\",\"Nächste Auswahl suchen\",\"Vorherige Auswahl suchen\",\"Ersetzen\",\"&&Ersetzen\"],\"vs/editor/contrib/find/findWidget\":[\"Suchen\",\"Suchen\",\"Vorheriger Treffer\",\"Nächste Übereinstimmung\",\"In Auswahl suchen\",\"Schließen\",\"Ersetzen\",\"Ersetzen\",\"Ersetzen\",\"Alle ersetzen\",\"Ersetzen-Modus wechseln\",\"Nur die ersten {0} Ergebnisse wurden hervorgehoben, aber alle Suchoperationen werden auf dem gesamten Text durchgeführt.\",\"{0} von {1}\",\"Keine Ergebnisse\",\"{0} gefunden\",\"{0} gefunden für {1}\",\"{0} gefunden für {1} bei {2}\",\"{0} gefunden für {1}\",'STRG+EINGABE fügt jetzt einen Zeilenumbruch ein, statt alles zu ersetzen. Sie können die Tastenzuordnung für \"editor.action.replaceAll\" ändern, um dieses Verhalten außer Kraft zu setzen.'],\n\"vs/editor/contrib/folding/folding\":[\"Auffalten\",\"Faltung rekursiv aufheben\",\"Falten\",\"Einklappung umschalten\",\"Rekursiv falten\",\"Alle Blockkommentare falten\",\"Alle Regionen falten\",\"Alle Regionen auffalten\",\"Alle falten\",\"Alle auffalten\",\"Faltebene {0}\",\"Farbe der Editor-Auswahl.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Editorschriftart vergrößern\",\"Editorschriftart verkleinern\",\"Editor Schriftart Vergrößerung zurücksetzen\"],\"vs/editor/contrib/format/format\":[\"1 Formatierung in Zeile {0} vorgenommen\",\"{0} Formatierungen in Zeile {1} vorgenommen\",\"1 Formatierung zwischen Zeilen {0} und {1} vorgenommen\",\"{0} Formatierungen zwischen Zeilen {1} und {2} vorgenommen\"],\"vs/editor/contrib/format/formatActions\":[\"Dokument formatieren\",\"Auswahl formatieren\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Gehe zu nächstem Problem (Fehler, Warnung, Information)\",\"Gehe zu vorigem Problem (Fehler, Warnung, Information)\",\"Gehe zu dem nächsten Problem in den Dateien (Fehler, Warnung, Info)\",\"Gehe zu dem vorherigen Problem in den Dateien (Fehler, Warnung, Info)\",\"Nächstes &&Problem\",\"Vorheriges &&Problem\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} von {1} Problemen\",\"{0} von {1} Problemen\",\"Editormarkierung: Farbe bei Fehler des Navigationswidgets.\",\"Editormarkierung: Farbe bei Warnung des Navigationswidgets.\",\"Editormarkierung: Farbe bei Information des Navigationswidgets.\",\"Editormarkierung: Hintergrund des Navigationswidgets.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Vorschau\",\"Definitionen\",'Keine Definition gefunden für \"{0}\".',\"Keine Definition gefunden\",\"Gehe zu Definition\",\"Gehe &&zu Definition\",\"Definition an der Seite öffnen\",\"Peek-Definition\",\"Deklarationen\",'Keine Deklaration für \"{0}\" gefunden.',\"Keine Deklaration gefunden.\",\"Zur Deklaration wechseln\",\"Gehe zu &&Deklaration\",'Keine Deklaration für \"{0}\" gefunden.',\"Keine Deklaration gefunden.\",\"Vorschau für Deklaration anzeigen\",\"Typdefinitionen\",'Keine Typendefinition gefunden für \"{0}\"',\"Keine Typendefinition gefunden\",\"Zur Typdefinition wechseln\",\"Zur &&Typdefinition wechseln\",\"Vorschau der Typdefinition anzeigen\",\"Implementierungen\",'Keine Implementierung gefunden für \"{0}\"',\"Keine Implementierung gefunden\",\"Gehe zu Implementierungen\",\"Gehe zu &&Implementierungen\",\"Vorschau für Implementierungen anzeigen\",'Für \"{0}\" wurden keine Verweise gefunden.',\"Keine Referenzen gefunden\",\"Gehe zu Verweisen\",\"Gehe zu &&Verweisen\",\"Verweise\",\"Vorschau für Verweise anzeigen\",\"Verweise\",\"Gehe zu beliebigem Symbol\",\"Speicherorte\",'Keine Ergebnisse für \"{0}\"',\"Verweise\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Klicken Sie, um {0} Definitionen anzuzeigen.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Wird geladen...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Fehler beim Auflösen der Datei.\",\"{0} Verweise\",\"{0} Verweis\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"Keine Vorschau verfügbar.\",\"Verweise\",\"Keine Ergebnisse\",\"Verweise\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"Symbol in {0} in Zeile {1}, Spalte {2}\",\"1 Symbol in {0}, vollständiger Pfad {1}\",\"{0} Symbole in {1}, vollständiger Pfad {2}\",\"Es wurden keine Ergebnisse gefunden.\",\"1 Symbol in {0} gefunden\",\"{0} Symbole in {1} gefunden\",\"{0} Symbole in {1} Dateien gefunden\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbol {0} von {1}, {2} für nächstes\",\"Symbol {0} von {1}\"],\"vs/editor/contrib/hover/hover\":[\"Hovern anzeigen\",\"Definitionsvorschauhover anzeigen\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Wird geladen...\",\"Vorschauproblem\",\"Es wird nach Schnellkorrekturen gesucht...\",\"Keine Schnellkorrekturen verfügbar\",\"Schnelle Problembehebung …\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Durch vorherigen Wert ersetzen\",\"Durch nächsten Wert ersetzen\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Zeile nach oben kopieren\",\"Zeile nach oben &&kopieren\",\"Zeile nach unten kopieren\",\"Zeile nach unten ko&&pieren\",\"Auswahl duplizieren\",\"&&Auswahl duplizieren\",\"Zeile nach oben verschieben\",\"Zeile nach oben &&verschieben\",\"Zeile nach unten verschieben\",\"Zeile nach &&unten verschieben\",\"Zeilen aufsteigend sortieren\",\"Zeilen absteigend sortieren\",\"Nachgestelltes Leerzeichen kürzen\",\"Zeile löschen\",\"Zeileneinzug\",\"Zeile ausrücken\",\"Zeile oben einfügen\",\"Zeile unten einfügen\",\"Alle übrigen löschen\",\"Alle rechts löschen\",\"Zeilen verknüpfen\",\"Zeichen um den Cursor herum transponieren\",\"In Großbuchstaben umwandeln\",\"In Kleinbuchstaben umwandeln\",\"In große Anfangsbuchstaben umwandeln\"],\"vs/editor/contrib/links/links\":[\"Befehl ausführen\",\"Link folgen\",\"BEFEHL + Klicken\",\"STRG + Klicken\",\"OPTION + Klicken\",\"alt + klicken\",\"Fehler beim Öffnen dieses Links, weil er nicht wohlgeformt ist: {0}\",\"Fehler beim Öffnen dieses Links, weil das Ziel fehlt.\",\"Link öffnen\"],\n\"vs/editor/contrib/message/messageController\":[\"Ein Bearbeiten ist im schreibgeschützten Editor nicht möglich\"],\"vs/editor/contrib/multicursor/multicursor\":[\"Cursor oberhalb hinzufügen\",\"Cursor oberh&&alb hinzufügen\",\"Cursor unterhalb hinzufügen\",\"Cursor unterhal&&b hinzufügen\",\"Cursor an Zeilenenden hinzufügen\",\"C&&ursor an Zeilenenden hinzufügen\",\"Cursor am Ende hinzufügen\",\"Cursor am Anfang hinzufügen\",\"Auswahl zur nächsten Übereinstimmungssuche hinzufügen\",\"&&Nächstes Vorkommen hinzufügen\",\"Letzte Auswahl zu vorheriger Übereinstimmungssuche hinzufügen\",\"Vo&&rheriges Vorkommen hinzufügen\",\"Letzte Auswahl in nächste Übereinstimmungssuche verschieben\",\"Letzte Auswahl in vorherige Übereinstimmungssuche verschieben\",\"Alle Vorkommen auswählen und Übereinstimmung suchen\",\"Alle V&&orkommen auswählen\",\"Alle Vorkommen ändern\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Parameterhinweise auslösen\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, Hinweis\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Schließen\",\"Hintergrundfarbe des Titelbereichs der Peek-Ansicht.\",\"Farbe des Titels in der Peek-Ansicht.\",\"Farbe der Titelinformationen in der Peek-Ansicht.\",\"Farbe der Peek-Ansichtsränder und des Pfeils.\",\"Hintergrundfarbe der Ergebnisliste in der Peek-Ansicht.\",\"Vordergrundfarbe für Zeilenknoten in der Ergebnisliste der Peek-Ansicht.\",\"Vordergrundfarbe für Dateiknoten in der Ergebnisliste der Peek-Ansicht.\",\"Hintergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.\",\"Vordergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.\",\"Hintergrundfarbe des Peek-Editors.\",\"Hintergrundfarbe der Leiste im Peek-Editor.\",\"Farbe für Übereinstimmungsmarkierungen in der Ergebnisliste der Peek-Ansicht.\",\"Farbe für Übereinstimmungsmarkierungen im Peek-Editor.\",\"Rahmen für Übereinstimmungsmarkierungen im Peek-Editor.\"],\n\"vs/editor/contrib/rename/rename\":[\"Kein Ergebnis.\",\"Ein unbekannter Fehler ist beim Auflösen der Umbenennung eines Ortes aufgetreten.\",'\"{0}\" wird umbenannt','\"{0}\" erfolgreich in \"{1}\" umbenannt. Zusammenfassung: {2}',\"Die rename-Funktion konnte die Änderungen nicht anwenden.\",\"Die rename-Funktion konnte die Änderungen nicht berechnen.\",\"Symbol umbenennen\",\"Möglichkeit aktivieren/deaktivieren, Änderungen vor dem Umbenennen als Vorschau anzeigen zu lassen\"],\"vs/editor/contrib/rename/renameInputField\":[\"Benennen Sie die Eingabe um. Geben Sie einen neuen Namen ein, und drücken Sie die EINGABETASTE, um den Commit auszuführen.\",\"{0} zum Umbenennen, {1} zum Anzeigen als Vorschau\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Auswahl aufklappen\",\"Auswahl &&erweitern\",\"Markierung verkleinern\",\"Au&&swahl verkleinern\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\",\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\",\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\",\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],\"vs/editor/contrib/suggest/suggestController\":['Das Akzeptieren von \"{0}\" ergab {1} zusätzliche Bearbeitungen.',\"Vorschlag auslösen\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Hintergrundfarbe des Vorschlagswidgets.\",\"Rahmenfarbe des Vorschlagswidgets.\",\"Vordergrundfarbe des Vorschlagswidgets.\",\"Hintergrundfarbe des ausgewählten Eintrags im Vorschlagswidget.\",\"Farbe der Trefferhervorhebung im Vorschlagswidget.\",\"Mehr anzeigen...{0}\",\"Weniger anzeigen...{0}\",\"Wird geladen...\",\"Wird geladen...\",\"Keine Vorschläge.\",\"{0} für weniger...\",\"{0} für mehr...\",\"Element {0}, Dok.: {1}\",\"{0} zum Einfügen, {1} zum Ersetzen\",\"{0} zum Ersetzen, {1} zum Einfügen\",\"{0} zum Akzeptieren\"],\n\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"TAB-Umschalttaste verschiebt Fokus\",\"Beim Drücken auf Tab wird der Fokus jetzt auf das nächste fokussierbare Element verschoben\",\"Beim Drücken von Tab wird jetzt das Tabulator-Zeichen eingefügt\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Entwickler: Force Retokenize\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Hintergrundfarbe eines Symbols beim Lesezugriff, z.B. beim Lesen einer Variablen. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe eines Symbols bei Schreibzugriff, z.B. beim Schreiben in eine Variable. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe eines Symbols beim Lesezugriff, wie etwa beim Lesen einer Variablen.\",\"Randfarbe eines Symbols beim Schreibzugriff, wie etwa beim Schreiben einer Variablen.\",\"Übersichtslinealmarkerfarbd für das Hervorheben von Symbolen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Übersichtslinealmarkerfarbe für Symbolhervorhebungen bei Schreibzugriff. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Gehe zur nächsten Symbolhervorhebungen\",\"Gehe zur vorherigen Symbolhervorhebungen\",\"Symbol-Hervorhebung ein-/ausschalten\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Standard-Konfiguration überschreibt\",\"Zu überschreibende Editor-Einstellungen für eine Sprache konfigurieren.\",\"Diese Einstellung unterstützt keine sprachspezifische Konfiguration.\",'\"{0}\" kann nicht registriert werden. Stimmt mit dem Eigenschaftsmuster \"\\\\\\\\[.*\\\\\\\\]$\" zum Beschreiben sprachspezifischer Editor-Einstellungen überein. Verwenden Sie den Beitrag \"configurationDefaults\".','{0}\" kann nicht registriert werden. Diese Eigenschaft ist bereits registriert.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) wurde gedrückt. Es wird auf die zweite Taste der Kombination gewartet...\",\"Die Tastenkombination ({0}, {1}) ist kein Befehl.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.\",\"Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.\",'Der Modifizierer zum Hinzufügen eines Elements in Bäumen und Listen zu einer Mehrfachauswahl mit der Maus (zum Beispiel im Explorer, in geöffneten Editoren und in der SCM-Ansicht). Die Mausbewegung \"Seitlich öffnen\" wird – sofern unterstützt – so angepasst, dass kein Konflikt mit dem Modifizierer für Mehrfachauswahl entsteht.',\"Steuert, wie Elemente in Strukturen und Listen mithilfe der Maus geöffnet werden (sofern unterstützt). Bei übergeordneten Elementen, deren untergeordnete Elemente sich in Strukturen befinden, steuert diese Einstellung, ob ein Einfachklick oder ein Doppelklick das übergeordnete Elemente erweitert. Beachten Sie, dass einige Strukturen und Listen diese Einstellung ggf. ignorieren, wenn sie nicht zutrifft.\",\"Legt fest, ob Listen und Strukturen horizontales Scrollen in der Workbench unterstützen.\",\"Steuert, ob Bäume horizontales Scrollen in der Workbench unterstützen.\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen \"{0}\".',\"Steuert den Struktureinzug in Pixeln.\",\"Steuert, ob die Struktur Einzugsführungslinien rendern soll.\",\"Bei der einfachen Tastaturnavigation werden Elemente in den Fokus genommen, die mit der Tastatureingabe übereinstimmen. Die Übereinstimmungen gelten nur für Präfixe.\",\"Hervorheben von Tastaturnavigationshervorgebungselemente, die mit der Tastatureingabe übereinstimmen. Beim nach oben und nach unten Navigieren werden nur die hervorgehobenen Elemente durchlaufen.\",\"Durch das Filtern der Tastaturnavigation werden alle Elemente herausgefiltert und ausgeblendet, die nicht mit der Tastatureingabe übereinstimmen.\",'Steuert die Tastaturnavigation in Listen und Strukturen in der Workbench. Kann \"simple\" (einfach), \"highlight\" (hervorheben) und \"filter\" (filtern) sein.','Legt fest, ob die Tastaturnavigation in Listen und Strukturen automatisch durch Eingaben ausgelöst wird. Wenn der Wert auf \"false\" festgelegt ist, wird die Tastaturnavigation nur ausgelöst, wenn der Befehl \"list.toggleKeyboardNavigation\" ausgeführt wird. Diesem Befehl können Sie eine Tastenkombination zuweisen.'],\n\"vs/platform/markers/common/markers\":[\"Fehler\",\"Warnung\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Allgemeine Vordergrundfarbe für Fehlermeldungen. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Allgemeine Rahmenfarbe für fokussierte Elemente. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Ein zusätzlicher Rahmen um Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.\",\"Ein zusätzlicher Rahmen um aktive Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.\",\"Vordergrundfarbe für Links im Text.\",\"Hintergrundfarbe für Codeblöcke im Text.\",\"Schattenfarbe von Widgets wie zum Beispiel Suchen/Ersetzen innerhalb des Editors.\",\"Hintergrund für Eingabefeld.\",\"Vordergrund für Eingabefeld.\",\"Rahmen für Eingabefeld.\",\"Rahmenfarbe für aktivierte Optionen in Eingabefeldern.\",\"Hintergrundfarbe für aktivierte Optionen in Eingabefeldern.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Hintergrund für Dropdown.\",\"Vordergrund für Dropdown.\",\"Schnellauswahlfarbe für das Gruppieren von Bezeichnungen.\",\"Schnellauswahlfarbe für das Gruppieren von Rahmen.\",\"Hintergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.\",\"Vordergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.\",\"Schatten der Scrollleiste, um anzuzeigen, dass die Ansicht gescrollt wird.\",\"Hintergrundfarbe vom Scrollbar-Schieber\",\"Hintergrundfarbe des Schiebereglers, wenn darauf gezeigt wird.\",\"Hintergrundfarbe des Schiebereglers, wenn darauf geklickt wird.\",\"Hintergrundfarbe des Fortschrittbalkens, der für zeitintensive Vorgänge angezeigt werden kann.\",\"Vordergrundfarbe von Fehlerunterstreichungen im Editor.\",\"Randfarbe von Fehlerfeldern im Editor.\",\"Vordergrundfarbe von Warnungsunterstreichungen im Editor.\",\"Randfarbe der Warnfelder im Editor.\",\"Vordergrundfarbe von Informationsunterstreichungen im Editor.\",\"Randfarbe der Infofelder im Editor.\",\"Vordergrundfarbe der Hinweisunterstreichungen im Editor.\",\"Randfarbe der Hinweisfelder im Editor.\",\"Hintergrundfarbe des Editors.\",\"Standardvordergrundfarbe des Editors.\",\"Hintergrundfarbe von Editor-Widgets wie zum Beispiel Suchen/Ersetzen.\",\"Vordergrundfarbe für Editorwidgets wie Suchen/Ersetzen.\",\"Rahmenfarbe von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Rahmen verwendet wird und die Farbe nicht von einem Widget überschrieben wird.\",\"Rahmenfarbe der Größenanpassungsleiste von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Größenanpassungsrahmen verwendet wird und die Farbe nicht von einem Widget außer Kraft gesetzt wird.\",\"Farbe der Editor-Auswahl.\",\"Farbe des gewählten Text für einen hohen Kontrast\",\"Die Farbe der Auswahl befindet sich in einem inaktiven Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegende Dekorationen verdeckt.\",\"Farbe für Bereiche mit dem gleichen Inhalt wie die Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe für Bereiche, deren Inhalt der Auswahl entspricht.\",\"Farbe des aktuellen Suchergebnisses.\",\"Farbe der anderen Suchergebnisse. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Farbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe des aktuellen Suchergebnisses.\",\"Randfarbe der anderen Suchtreffer.\",\"Rahmenfarbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hervorhebung unterhalb des Worts, für das ein Hoverelement angezeigt wird. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe des Editor-Mauszeigers.\",\"Vordergrundfarbe des Editor-Mauszeigers\",\"Rahmenfarbe des Editor-Mauszeigers.\",\"Hintergrundfarbe der Hoverstatusleiste des Editors.\",\"Farbe der aktiven Links.\",'Die für das Aktionssymbol \"Glühbirne\" verwendete Farbe.','Die für das Aktionssymbol \"Automatische Glühbirnenkorrektur\" verwendete Farbe.',\"Hintergrundfarbe für eingefügten Text. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe für Text, der entfernt wurde. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Konturfarbe für eingefügten Text.\",\"Konturfarbe für entfernten Text.\",\"Die Rahmenfarbe zwischen zwei Text-Editoren.\",\"Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Baumstruktur inaktiv ist. Eine aktive Liste/Baumstruktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.\",\"Vordergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.\",\"Drag & Drop-Hintergrund der Liste/Struktur, wenn Elemente mithilfe der Maus verschoben werden.\",\"Vordergrundfarbe der Liste/Struktur zur Trefferhervorhebung beim Suchen innerhalb der Liste/Struktur.\",\"Hintergrundfarbe des Typfilterwidgets in Listen und Strukturen.\",\"Konturfarbe des Typfilterwidgets in Listen und Strukturen.\",\"Konturfarbe des Typfilterwidgets in Listen und Strukturen, wenn es keine Übereinstimmungen gibt.\",\"Strukturstrichfarbe für die Einzugsführungslinien.\",\"Rahmenfarbe von Menüs.\",\"Vordergrundfarbe von Menüelementen.\",\"Hintergrundfarbe von Menüelementen.\",\"Vordergrundfarbe des ausgewählten Menüelements im Menü.\",\"Hintergrundfarbe des ausgewählten Menüelements im Menü.\",\"Rahmenfarbe des ausgewählten Menüelements im Menü.\",\"Farbe eines Trenner-Menüelements in Menüs.\",\"Hervorhebungs-Hintergrundfarbe eines Codeausschnitt-Tabstopps.\",\"Hervorhebungs-Rahmenfarbe eines Codeausschnitt-Tabstopps.\",\"Hervorhebungs-Hintergrundfarbe des letzten Tabstopps eines Codeausschnitts.\",\"Hervorhebungs-Rahmenfarbe des letzten Tabstopps eines Codeausschnitts.\",\"Übersichtslinealmarkerfarbe für das Suchen von Übereinstimmungen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Übersichtslinealmarkerfarbe für das Hervorheben der Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Minimap-Markerfarbe für gefundene Übereinstimmungen.\",\"Minimap-Markerfarbe für die Editorauswahl.\",\"Minimapmarkerfarbe für Fehler\",\"Minimapmarkerfarbe für Warnungen\",\"Die Farbe, die für das Problemfehlersymbol verwendet wird.\",\"Die Farbe, die für das Problemwarnsymbol verwendet wird.\",\"Die Farbe, die für das Probleminfosymbol verwendet wird.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.de.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.es.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.es\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (ocurrió de nuevo)\",\"{0} (ocurrido {1} veces)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Entrada\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Coincidir mayúsculas y minúsculas\",\"Solo palabras completas\",\"Usar expresión regular\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Entrada\",\"Conservar may/min\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Error: {0}\",\"Advertencia: {0}\",\"Información: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Sin enlazar\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Para navegar utilice las teclas de navegación.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Borrar\",\"Desactivar filtro en tipo\",\"Activar filtro en el tipo\",\"No se encontraron elementos\",\"{0} de {1} elementos coincidentes\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Mayús\",\"Alt\",\"Windows\",\"Ctrl\",\"Mayús\",\"Alt\",\"Super\",\"Control\",\"Mayús\",\"Alt\",\"Comando\",\"Control\",\"Mayús\",\"Alt\",\"Windows\",\"Control\",\"Mayús\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Error\",\"Advertencia\",\"Información\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, selector\",\"selector\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Selector rápido. Escriba para restringir los resultados.\",\"Selector rápido\",\"{0} resultados\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Seleccionar todo\",\"&&Deshacer\",\"&&Rehacer\"],\"vs/editor/browser/controller/textAreaHandler\":[\"No se puede acceder al editor en este momento. Presione Alt+F1 para ver opciones.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"El número de cursores se ha limitado a {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Los archivos no se pueden comparar porque uno de ellos es demasiado grande.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Cerrar\",\"sin líneas\",\"1 línea\",\"{0} líneas\",\"Diferencia {0} de {1}: original {2}, {3}, modificado {4}, {5}\",\"vacío\",\"original {0}, modificado {1}: {2}\",\"+ modificado {0}: {1}\",\"- original {0}: {1}\",\"Ir a la siguiente diferencia\",\"Ir a la diferencia anterior\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copiar líneas eliminadas\",\"Copiar línea eliminada\",\"Copiar la línea eliminada ({0})\",\"Revertir este cambio\",\"Copiar la línea eliminada ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",'El número de espacios a los que equivale una tabulación. Este valor se invalida en función del contenido del archivo cuando \"#editor.detectIndentation#\" está activado.','Insertar espacios al presionar \"TAB\". Este valor se invalida en función del contenido del archivo cuando \"#editor.detectIndentation#\" está activado. ','Controla si \"#editor.tabSize#\" y \"#editor.insertSpaces#\" se detectarán automáticamente al abrir un archivo en función del contenido de este.',\"Quitar el espacio en blanco final autoinsertado.\",\"Manejo especial para archivos grandes para desactivar ciertas funciones de memoria intensiva.\",\"Habilita sugerencias basadas en palabras.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",'Mantiene abiertos los editores interactivos, incluso al hacer doble clic en su contenido o presionar \"Escape\".',\"Las lineas por encima de esta longitud no se tokenizarán por razones de rendimiento.\",\"Tiempo de espera en milisegundos después del cual se cancela el cálculo de diferencias. Utilice 0 para no usar tiempo de espera.\",\"Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.\",\"Controla si el editor de diferencias muestra los cambios de espacio inicial o espacio final como diferencias.\",\"Controla si el editor de diferencias muestra los indicadores +/- para los cambios agregados o quitados.\"],\n\"vs/editor/common/config/editorOptions\":[\"El editor usará API de plataforma para detectar cuándo está conectado un lector de pantalla.\",\"El editor se optimizará de forma permanente para su uso con un editor de pantalla.\",\"El editor nunca se optimizará para su uso con un lector de pantalla.\",\"Controla si el editor se debe ejecutar en un modo optimizado para lectores de pantalla.\",\"Controla si se inserta un carácter de espacio al comentar.\",\"Controla si al copiar sin selección se copia la línea actual.\",\"Controla si la cadena de búsqueda del widget de búsqueda se inicializa desde la selección del editor.\",\"No activar nunca Buscar en la selección automáticamente (predeterminado)\",\"Activar siempre automáticamente Buscar en la selección\",\"Active Buscar en la selección automáticamente cuando se seleccionen varias líneas de contenido.\",\"Controla si la operación de búsqueda se lleva a cabo en el texto seleccionado o el archivo entero en el editor.\",\"Controla si el widget de búsqueda debe leer o modificar el Portapapeles de búsqueda compartido en macOS.\",\"Controla si Encontrar widget debe agregar más líneas en la parte superior del editor. Si es true, puede desplazarse más allá de la primera línea cuando Encontrar widget está visible.\",\"Habilita o deshabilita las ligaduras tipográficas.\",\"Configuración explícita de las características de fuente.\",\"Configura ligaduras de fuentes.\",\"Controla el tamaño de fuente en píxeles.\",\"Mostrar vista de inspección de los resultados (predeterminado)\",\"Ir al resultado principal y mostrar una vista de inspección\",\"Vaya al resultado principal y habilite la navegación sin peek para otros\",'Esta configuración está en desuso. Use configuraciones separadas como \"editor.editor.gotoLocation.multipleDefinitions\" o \"editor.editor.gotoLocation.multipleImplementations\" en su lugar.','Controla el comportamiento del comando \"Ir a definición\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a definición de tipo\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a declaración\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a implementaciones\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a referencias\" cuando existen varias ubicaciones de destino.','Identificador de comando alternativo que se ejecuta cuando el resultado de \"Ir a definición\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a definición de tipo\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a declaración\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a implementación\" es la ubicación actual.','Identificador de comando alternativo que se ejecuta cuando el resultado de \"Ir a referencia\" es la ubicación actual.',\"Controla si se muestra la información al mantener el puntero sobre un elemento.\",\"Controla el retardo en milisegundos después del cual se muestra la información al mantener el puntero sobre un elemento.\",\"Controla si la información que aparece al mantener el puntero sobre un elemento permanece visible al mover el mouse sobre este.\",\"Habilita la bombilla de acción de código en el editor.\",\"Controla la altura de línea. Usa 0 para utilizar la altura del tamaño de fuente.\",\"Controla si se muestra el minimapa.\",\"Controla en qué lado se muestra el minimapa.\",\"Controla cuándo se muestra el control deslizante del minimapa.\",\"Escala del contenido dibujado en el minimapa.\",\"Represente los caracteres reales en una línea, por oposición a los bloques de color.\",\"Limite el ancho del minimapa para representar como mucho un número de columnas determinado.\",\"Habilita un elemento emergente que muestra documentación de los parámetros e información de los tipos mientras escribe.\",\"Controla si el menú de sugerencias de parámetros se cicla o se cierra al llegar al final de la lista.\",\"Habilita sugerencias rápidas en las cadenas.\",\"Habilita sugerencias rápidas en los comentarios.\",\"Habilita sugerencias rápidas fuera de las cadenas y los comentarios.\",\"Controla si deben mostrarse sugerencias automáticamente mientras se escribe.\",\"Los números de línea no se muestran.\",\"Los números de línea se muestran como un número absoluto.\",\"Los números de línea se muestran como distancia en líneas a la posición del cursor.\",\"Los números de línea se muestran cada 10 líneas.\",\"Controla la visualización de los números de línea.\",\"Muestra reglas verticales después de un cierto número de caracteres monoespaciados. Usa múltiples valores para mostrar múltiples reglas. Si la matriz está vacía, no se muestran reglas.\",\"Inserte la sugerencia sin sobrescribir el texto a la derecha del cursor.\",\"Inserte la sugerencia y sobrescriba el texto a la derecha del cursor.\",\"Controla si las palabras se sobrescriben al aceptar la finalización. Tenga en cuenta que esto depende de las extensiones que participan en esta característica.\",'Controla si se deben destacar las modificaciones inesperadas en el texto mientras se aceptan las finalizaciones, por ejemplo, \"insertMode\" es \"replace\", pero la finalización solo es compatible con \"insert\".',\"Controla si el filtrado y la ordenación de sugerencias se tienen en cuenta para los errores ortográficos pequeños.\",\"Controla si la ordenación de palabras mejora lo que aparece cerca del cursor.\",'Controla si las selecciones de sugerencias recordadas se comparten entre múltiples áreas de trabajo y ventanas (necesita \"#editor.suggestSelection#\").',\"Controla si un fragmento de código activo impide las sugerencias rápidas.\",\"Controla si mostrar u ocultar iconos en sugerencias.\",\"Controla cuántas sugerencias mostrará IntelliSense antes de que aparezca una barra de desplazamiento (máximo 15).\",'Esta configuración está en desuso. Use configuraciones separadas como \"editor.suggest.showKeyword\" o \"editor.suggest.showSnippets\" en su lugar.','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"method\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"función\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"constructor\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"field\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"variable\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"class\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"struct\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"interface\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"module\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"property\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"event\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"operator\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"unit\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"value\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"constant\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"enum\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"enumMember\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"keyword\".','Si está habilitado, IntelliSense muestra sugerencias de tipo \"text\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"color\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"file\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"reference\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"customcolor\".','Si está habilitado, IntelliSense muestra sugerencias de tipo \"folder\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"typeParameter\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"snippet\".',\"Controla la visibilidad de la barra de estado en la parte inferior del widget de sugerencias.\",'Controla si se deben aceptar sugerencias en los caracteres de confirmación. Por ejemplo, en Javascript, el punto y coma (\";\") puede ser un carácter de confirmación que acepta una sugerencia y escribe ese carácter.','Aceptar solo una sugerencia con \"Entrar\" cuando realiza un cambio textual.','Controla si las sugerencias deben aceptarse con \"Entrar\", además de \"TAB\". Ayuda a evitar la ambigüedad entre insertar nuevas líneas o aceptar sugerencias.',\"Controla el número de líneas en el editor que puede leer un lector de pantalla. Advertencia: Esto puede afectar al rendimiento de números superiores al predeterminado.\",\"Contenido del editor\",\"Utilizar las configuraciones del lenguaje para determinar cuándo cerrar los corchetes automáticamente.\",\"Cerrar automáticamente los corchetes cuando el cursor esté a la izquierda de un espacio en blanco.\",\"Controla si el editor debe cerrar automáticamente los corchetes después de que el usuario agregue un corchete de apertura.\",\"Escriba en las comillas o los corchetes solo si se insertaron automáticamente.\",\"Controla si el editor debe escribir entre comillas o corchetes.\",\"Utilizar las configuraciones del lenguaje para determinar cuándo cerrar las comillas automáticamente. \",\"Cerrar automáticamente las comillas cuando el cursor esté a la izquierda de un espacio en blanco. \",\"Controla si el editor debe cerrar automáticamente las comillas después de que el usuario agrega uma comilla de apertura.\",\"El editor no insertará la sangría automáticamente.\",\"El editor mantendrá la sangría de la línea actual.\",\"El editor respetará la sangría de la línea actual y los corchetes definidos por el idioma.\",\"El editor mantendrá la sangría de la línea actual, respetará los corchetes definidos por el idioma e invocará onEnterRules especiales definidos por idiomas.\",\"El editor respetará la sangría de la línea actual, los corchetes definidos por idiomas y las reglas indentationRules definidas por idiomas, además de invocar reglas onEnterRules especiales.\",\"Controla si el editor debe ajustar automáticamente la sangría mientras los usuarios escriben, pegan, mueven o sangran líneas.\",\"Use las configuraciones de idioma para determinar cuándo delimitar las selecciones automáticamente.\",\"Envolver con comillas, pero no con corchetes.\",\"Envolver con corchetes, pero no con comillas.\",\"Controla si el editor debe delimitar automáticamente las selecciones.\",\"Controla si el editor muestra CodeLens.\",\"Controla si el editor debe representar el Selector de colores y los elementos Decorator de color en línea.\",\"Controla si el resaltado de sintaxis debe ser copiado al portapapeles.\",\"Controla el estilo de animación del cursor.\",\"Controla si la animación suave del cursor debe estar habilitada.\",\"Controla el estilo del cursor.\",'Controla el número mínimo de líneas iniciales y finales visibles que rodean al cursor. Se conoce como \"scrollOff\" o \"scrollOffset\" en algunos otros editores.','Solo se aplica \"cursorSurroundingLines\" cuando se desencadena mediante el teclado o la API.','\"cursorSurroundingLines\" se aplica siempre.','Controla cuando se debe aplicar \"cursorSurroundingLines\".','Controla el ancho del cursor cuando \"#editor.cursorStyle#\" se establece en \"line\".',\"Controla si el editor debe permitir mover las selecciones mediante arrastrar y colocar.\",'Multiplicador de la velocidad de desplazamiento al presionar \"Alt\".',\"Controla si el editor tiene el plegado de código habilitado.\",'Controla la estrategia para calcular los intervalos de plegado. \"auto\" usa una estrategia de plegado específica del idioma, si está disponible. \"indentation\" usa la estrategia de plegado basada en sangría.',\"Controla si el editor debe destacar los rangos plegados.\",\"Controla la familia de fuentes.\",\"Controla el grosor de la fuente.\",\"Controla si el editor debe dar formato automáticamente al contenido pegado. Debe haber disponible un formateador capaz de aplicar formato a un rango dentro de un documento. \",\"Controla si el editor debe dar formato a la línea automáticamente después de escribirla.\",\"Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.\",\"Controla si el cursor debe ocultarse en la regla de información general.\",\"Controla si el editor debe resaltar la guía de sangría activa.\",\"Controla el espacio entre letras en pixels.\",\"Controla si el editor debe detectar vínculos y hacerlos interactivos.\",\"Resaltar paréntesis coincidentes.\",'Se usará un multiplicador en los eventos de desplazamiento de la rueda del mouse \"deltaX\" y \"deltaY\". ','Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona \"Ctrl\".',\"Combinar varios cursores cuando se solapan.\",'Se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS.','Se asigna a \"Alt\" en Windows y Linux y a \"Opción\" en macOS.',\"El modificador que se usará para agregar varios cursores con el mouse. Los gestos del mouse Ir a definición y Abrir vínculo se adaptarán de modo que no entren en conflicto con el modificador multicursor. [Más información](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Cada cursor pega una única línea del texto.\",\"Cada cursor pega el texto completo.\",\"Controla el pegado cuando el recuento de líneas del texto pegado coincide con el recuento de cursores.\",\"Controla si el editor debe resaltar las apariciones de símbolos semánticos.\",\"Controla si debe dibujarse un borde alrededor de la regla de información general.\",\"Enfocar el árbol al abrir la vista\",\"Enfocar el editor al abrir la inspección\",\"Controla si se debe enfocar el editor en línea o el árbol en el widget de vista.\",\"Controla el retraso, en milisegundos, tras el cual aparecerán sugerencias rápidas.\",\"Controla si el editor debe representar caracteres de control.\",\"Controla si el editor debe representar guías de sangría.\",\"Representar el número de la última línea cuando el archivo termina con un salto de línea.\",\"Resalta el medianil y la línea actual.\",\"Controla cómo debe representar el editor el resaltado de línea actual.\",\"Render whitespace characters except for single spaces between words.\",\"Represente los caracteres de espacio en blanco solo en el texto seleccionado.\",\"Controla la forma en que el editor debe representar los caracteres de espacio en blanco.\",\"Controla si las selecciones deberían tener las esquinas redondeadas.\",\"Controla el número de caracteres adicionales a partir del cual el editor se desplazará horizontalmente.\",\"Controla si el editor seguirá haciendo scroll después de la última línea.\",\"Controla si el portapapeles principal de Linux debe admitirse.\",\"Controla si el editor debe destacar las coincidencias similares a la selección.\",\"Controla cuándo los controles de plegado del margen son ocultados automáticamente.\",\"Controla el fundido de salida del código no usado.\",\"Mostrar sugerencias de fragmentos de código por encima de otras sugerencias.\",\"Mostrar sugerencias de fragmentos de código por debajo de otras sugerencias.\",\"Mostrar sugerencias de fragmentos de código con otras sugerencias.\",\"No mostrar sugerencias de fragmentos de código.\",\"Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.\",\"Controla si el editor se desplazará con una animación.\",\"Tamaño de la fuente para el widget de sugerencias. Cuando se establece a `0`, se utilizará el valor `#editor.fontSize#`.\",\"Altura de la línea del widget de sugerencias. Cuando se establece a `0`, se utiliza el valor `#editor.lineHeight#`.\",\"Controla si deben aparecer sugerencias de forma automática al escribir caracteres desencadenadores.\",\"Seleccionar siempre la primera sugerencia.\",'Seleccione sugerencias recientes a menos que al escribir más se seleccione una, por ejemplo, \"console.| -> console.log\" porque \"log\" se ha completado recientemente.','Seleccione sugerencias basadas en prefijos anteriores que han completado esas sugerencias, por ejemplo, \"co -> console\" y \"con -> const\".',\"Controla cómo se preseleccionan las sugerencias cuando se muestra la lista,\",\"La pestaña se completará insertando la mejor sugerencia de coincidencia encontrada al presionar la pestaña\",\"Deshabilitar los complementos para pestañas.\",\"La pestaña se completa con fragmentos de código cuando su prefijo coincide. Funciona mejor cuando las 'quickSuggestions' no están habilitadas.\",\"Habilita completar pestañas.\",\"La inserción y eliminación del espacio en blanco sigue a las tabulaciones.\",\"Caracteres que se usarán como separadores de palabras al realizar operaciones o navegaciones relacionadas con palabras.\",\"Las líneas no se ajustarán nunca.\",\"Las líneas se ajustarán en el ancho de la ventanilla.\",'Las líneas se ajustarán al valor de \"#editor.wordWrapColumn#\". ','Las líneas se ajustarán al valor que sea inferior: el tamaño de la ventanilla o el valor de \"#editor.wordWrapColumn#\".',\"Controla cómo deben ajustarse las líneas.\",'Controla la columna de ajuste del editor cuando \"#editor.wordWrap#\" es \"wordWrapColumn\" o \"bounded\".',\"No hay sangría. Las líneas ajustadas comienzan en la columna 1.\",\"A las líneas ajustadas se les aplica la misma sangría que al elemento primario.\",\"A las líneas ajustadas se les aplica una sangría de +1 respecto al elemento primario.\",\"A las líneas ajustadas se les aplica una sangría de +2 respecto al elemento primario.\",\"Controla la sangría de las líneas ajustadas.\",\"Se supone que todos los caracteres son del mismo ancho. Este es un algoritmo rápido que funciona correctamente para fuentes monoespaciales y ciertos scripts (como caracteres latinos) donde los glifos tienen el mismo ancho.\",\"Delega el cálculo de puntos de ajuste en el explorador. Es un algoritmo lento, que podría causar bloqueos para archivos grandes, pero funciona correctamente en todos los casos.\",\"Controla el algoritmo que calcula los puntos de ajuste.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Texto sin formato\"],\n\"vs/editor/common/standaloneStrings\":[\"Sin selección\",\"Línea {0}, columna {1} ({2} seleccionadas)\",\"Línea {0}, columna {1}\",\"{0} selecciones ({1} caracteres seleccionados)\",\"{0} selecciones\",'Se cambiará ahora el valor \"accessibilitySupport\" a \"activado\".',\"Se abrirá ahora la página de documentación de accesibilidad del editor.\",\"en un panel de solo lectura de un editor de diferencias.\",\"en un panel de un editor de diferencias.\",\"en un editor de código de solo lectura\",\" en un editor de código\",\"Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Comando+E.\",\"Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Control+E.\",\"El editor está configurado para optimizarse para su uso con un lector de pantalla.\",\"El editor está configurado para que no se optimice nunca su uso con un lector de pantalla, que en este momento no es el caso.\",\"Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. Presione {0} para activar o desactivar este comportamiento.\",\"Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.\",\"Al presionar TAB en el editor actual, se insertará el carácter de tabulación. Presione {0} para activar o desactivar este comportamiento.\",\"Al presionar TAB en el editor actual, se insertará el carácter de tabulación. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.\",\"Presione ahora Comando+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.\",\"Presione ahora Control+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.\",\"Para descartar esta información sobre herramientas y volver al editor, presione Esc o Mayús+Escape.\",\"Mostrar ayuda de accesibilidad\",\"Desarrollador: inspeccionar tokens\",\"Ir a la línea {0} y al carácter {1}\",\"Ir a la línea {0}\",\"Escriba un número de línea comprendido entre 1 y {0} a la cual quiera navegar.\",\"Escriba un carácter entre 1 y {0} para ir a\",\"Línea actual: {0}. ir a la línea {1}.\",\"Escriba un número de línea, seguido de un signo opcional de dos puntos y un número de caracteres para desplazarse a\",\"Ir a la línea...\",\"{0}, {1}, comandos\",\"{0}, comandos\",\"Escriba el nombre de una acción que desee ejecutar\",\"Paleta de comandos\",\"{0}, símbolos\",\"Escriba el nombre de un identificador al que quiera ir\",\"Ir a símbolo...\",\"símbolos ({0})\",\"módulos ({0})\",\"clases ({0})\",\"interfaces ({0})\",\"métodos ({0})\",\"funciones ({0})\",\"propiedades ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructores ({0})\",\"llama a ({0})\",\"Contenido del editor\",\"Presione Ctrl+F1 para ver las opciones de accesibilidad.\",\"Presione Alt+F1 para ver las opciones de accesibilidad.\",\"Alternar tema de contraste alto\",\"{0} ediciones realizadas en {1} archivos\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Color de fondo para la línea resaltada en la posición del cursor.\",\"Color de fondo del borde alrededor de la línea en la posición del cursor.\",\"Color de fondo de rangos resaltados, como en abrir rápido y encontrar características. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo del borde alrededor de los intervalos resaltados.\",\"Color de fondo del símbolo destacado, como Ir a definición o Ir al siguiente/anterior símbolo. El color no debe ser opaco para no ocultar la decoración subyacente.\",\"Color de fondo del borde alrededor de los símbolos resaltados.\",\"Color del cursor del editor.\",\"Color de fondo del cursor de edición. Permite personalizar el color del caracter solapado por el bloque del cursor.\",\"Color de los caracteres de espacio en blanco del editor.\",\"Color de las guías de sangría del editor.\",\"Color de las guías de sangría activas del editor.\",\"Color de números de línea del editor.\",\"Color del número de línea activa en el editor\",\"ID es obsoleto. Usar en lugar 'editorLineNumber.activeForeground'. \",\"Color del número de línea activa en el editor\",\"Color de las reglas del editor\",\"Color principal de lentes de código en el editor\",\"Color de fondo tras corchetes coincidentes\",\"Color de bloques con corchetes coincidentes\",\"Color del borde de la regla de visión general.\",\"Color de fondo del margen del editor. Este espacio contiene los márgenes de glifos y los números de línea.\",\"Color del borde de código fuente innecesario (sin usar) en el editor.\",\"Opacidad de código fuente innecesario (sin usar) en el editor. Por ejemplo, \\\"#000000c0\\\" representará el código con un 75 % de opacidad. Para temas de alto contraste, utilice el color del tema 'editorUnnecessaryCode.border' para resaltar el código innecesario en vez de atenuarlo.\",\"Color de marcador de regla de información general para errores. \",\"Color de marcador de regla de información general para advertencias.\",\"Color de marcador de regla de información general para mensajes informativos. \"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Resumen color de marcador de regla para corchetes.\",\"Ir al corchete\",\"Seleccionar para corchete\",\"Ir al &&corchete\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Mover símbolo de inserción a la izquierda\",\"Mover símbolo de inserción a la derecha\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transponer letras\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Cortar\",\"Cor&&tar\",\"Copiar\",\"C&&opiar\",\"Pegar\",\"&&Pegar\",\"Copiar con resaltado de sintaxis\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Tipo de la acción de código que se va a ejecutar.\",\"Controla cuándo se aplican las acciones devueltas.\",\"Aplicar siempre la primera acción de código devuelto.\",\"Aplicar la primera acción de código devuelta si solo hay una.\",\"No aplique las acciones de código devuelto.\",\"Controla si solo se deben devolver las acciones de código preferidas.\",\"Se ha producido un error desconocido al aplicar la acción de código\",\"Corrección Rápida\",\"No hay acciones de código disponibles\",'No hay acciones de código preferidas para \"{0}\" disponibles','No hay ninguna acción de código para \"{0}\" disponible.',\"No hay acciones de código preferidas disponibles\",\"No hay acciones de código disponibles\",\"Refactorizar...\",'No hay refactorizaciones preferidas de \"{0}\" disponibles','No hay refactorizaciones de \"{0}\" disponibles',\"No hay ninguna refactorización favorita disponible.\",\"No hay refactorizaciones disponibles\",\"Acción de Origen...\",'No hay acciones de origen preferidas para \"{0}\" disponibles','No hay ninguna acción de origen para \"{0}\" disponible.',\"No hay ninguna acción de origen favorita disponible.\",\"No hay acciones de origen disponibles\",\"Organizar Importaciones\",\"No hay acciones de importación disponibles\",\"Corregir todo\",\"No está disponible la acción de corregir todo\",\"Corregir automáticamente...\",\"No hay autocorrecciones disponibles\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Mostrar correcciones. Solución preferida disponible ({0})\",\"Mostrar correcciones ({0})\",\"Mostrar correcciones\"],\"vs/editor/contrib/comment/comment\":[\"Alternar comentario de línea\",\"&&Alternar comentario de línea\",\"Agregar comentario de línea\",\"Quitar comentario de línea\",\"Alternar comentario de bloque\",\"Alternar &&bloque de comentario\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Mostrar menú contextual del editor\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursor Deshacer\",\"Cursor Rehacer\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Color de primer plano de los símbolos de matriz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos booleanos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de clase. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de color. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos constantes. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de constructor. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de miembro del enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de evento. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de campo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de archivo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de carpeta. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de función. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de interfaz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de claves. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de palabra clave. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de método. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de módulo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de espacio de nombres. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos nulos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos numéricos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de objeto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos del operador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de paquete. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de propiedad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de referencia. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de fragmento de código. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de cadena. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de estructura. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de texto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos de parámetro de tipo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de unidad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos variables. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\"],\n\"vs/editor/contrib/find/findController\":[\"Buscar\",\"&&Buscar\",\"Buscar con selección\",\"Buscar siguiente\",\"Buscar siguiente\",\"Buscar anterior\",\"Buscar anterior\",\"Buscar selección siguiente\",\"Buscar selección anterior\",\"Reemplazar\",\"&&Reemplazar\"],\"vs/editor/contrib/find/findWidget\":[\"Buscar\",\"Buscar\",\"Coincidencia anterior\",\"Próxima coincidencia\",\"Buscar en selección\",\"Cerrar\",\"Reemplazar\",\"Reemplazar\",\"Reemplazar\",\"Reemplazar todo\",\"Alternar modo de reemplazar\",\"Sólo los primeros {0} resultados son resaltados, pero todas las operaciones de búsqueda trabajan en todo el texto.\",\"{0} de {1}\",\"No hay resultados\",\"Encontrados: {0}\",\"Encontrados: {0} para {1}\",\"Encontrados: {0} para {1} en {2}\",\"Encontrados: {0} para {1}\",\"Ctrl+Entrar ahora inserta un salto de línea en lugar de reemplazar todo. Puede modificar el enlace de claves para editor.action.replaceAll para invalidar este comportamiento.\"],\n\"vs/editor/contrib/folding/folding\":[\"Desplegar\",\"Desplegar de forma recursiva\",\"Plegar\",\"Alternar plegado\",\"Plegar de forma recursiva\",\"Cerrar todos los comentarios de bloque\",\"Plegar todas las regiones\",\"Desplegar Todas las Regiones\",\"Plegar todo\",\"Desplegar todo\",\"Nivel de plegamiento {0}\",\"Color de la selección del editor.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Acercarse a la tipografía del editor\",\"Alejarse de la tipografía del editor\",\"Restablecer alejamiento de la tipografía del editor\"],\"vs/editor/contrib/format/format\":[\"1 edición de formato en la línea {0}\",\"{0} ediciones de formato en la línea {1}\",\"1 edición de formato entre las líneas {0} y {1}\",\"{0} ediciones de formato entre las líneas {1} y {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Dar formato al documento\",\"Dar formato a la selección\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Ir al siguiente problema (Error, Advertencia, Información)\",\"Ir al problema anterior (Error, Advertencia, Información)\",\"Ir al siguiente problema en Archivos (Error, Advertencia, Información)\",\"Ir al problema anterior en Archivos (Error, Advertencia, Información)\",\"Siguiente &&problema\",\"Anterior &&problema\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} de {1} problemas\",\"{0} de {1} problema\",\"Color de los errores del widget de navegación de marcadores del editor.\",\"Color de las advertencias del widget de navegación de marcadores del editor.\",\"Color del widget informativo marcador de navegación en el editor.\",\"Fondo del widget de navegación de marcadores del editor.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Ver\",\"Definiciones\",'No se encontró ninguna definición para \"{0}\"',\"No se encontró ninguna definición\",\"Ir a definición\",\"Ir a &&definición\",\"Abrir definición en el lateral\",\"Ver la definición\",\"Declaraciones\",\"No se encontró ninguna definición para '{0}'\",\"No se encontró ninguna declaración\",\"Ir a Definición\",\"Ir a &&Declaración\",\"No se encontró ninguna definición para '{0}'\",\"No se encontró ninguna declaración\",\"Inspeccionar Definición\",\"Definiciones de tipo\",'No se encontró ninguna definición de tipo para \"{0}\"',\"No se encontró ninguna definición de tipo\",\"Ir a la definición de tipo\",\"Ir a la definición de &&tipo\",\"Inspeccionar definición de tipo\",\"Implementaciones\",'No se encontró ninguna implementación para \"{0}\"',\"No se encontró ninguna implementación\",\"Ir a Implementaciones\",\"Ir a &&Implementaciones\",\"Inspeccionar implementaciones\",'No se ha encontrado ninguna referencia para \"{0}\".',\"No se encontraron referencias\",\"Ir a Referencias\",\"Ir a &&Referencias\",\"Referencias\",\"Inspeccionar Referencias\",\"Referencias\",\"Ir a cualquier símbolo\",\"Ubicaciones\",'No hay ningún resultado para \"{0}\".',\"Referencias\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Haga clic para mostrar {0} definiciones.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Cargando...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Error al resolver el archivo.\",\"{0} referencias\",\"{0} referencia\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"vista previa no disponible\",\"Referencias\",\"No hay resultados\",\"Referencias\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"símbolo en {0} linea {1} en la columna {2}\",\"1 símbolo en {0}, ruta de acceso completa {1}\",\"{0} símbolos en {1}, ruta de acceso completa {2}\",\"No se encontraron resultados\",\"Encontró 1 símbolo en {0}\",\"Encontró {0} símbolos en {1}\",\"Encontró {0} símbolos en {1} archivos\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Símbolo {0} de {1}, {2} para el siguiente\",\"Símbolo {0} de {1}\"],\"vs/editor/contrib/hover/hover\":[\"Mostrar al mantener el puntero\",\"Mostrar vista previa de la definición que aparece al mover el puntero\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Cargando...\",\"Ver problema\",\"Buscando correcciones rápidas...\",\"No hay correcciones rápidas disponibles\",\"Corrección Rápida\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Reemplazar con el valor anterior\",\"Reemplazar con el valor siguiente\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copiar línea arriba\",\"&&Copiar línea arriba\",\"Copiar línea abajo\",\"Co&&piar línea abajo\",\"Selección duplicada\",\"&&Duplicar selección\",\"Mover línea hacia arriba\",\"Mo&&ver línea arriba\",\"Mover línea hacia abajo\",\"Mover &&línea abajo\",\"Ordenar líneas en orden ascendente\",\"Ordenar líneas en orden descendente\",\"Recortar espacio final\",\"Eliminar línea\",\"Sangría de línea\",\"Anular sangría de línea\",\"Insertar línea arriba\",\"Insertar línea debajo\",\"Eliminar todo a la izquierda\",\"Eliminar todo lo que está a la derecha\",\"Unir líneas\",\"Transponer caracteres alrededor del cursor\",\"Transformar a mayúsculas\",\"Transformar a minúsculas\",\"Transformar en Title Case\"],\n\"vs/editor/contrib/links/links\":[\"Ejecutar comando\",\"Seguir vínculo\",\"cmd + clic\",\"ctrl + clic\",\"opción + clic\",\"alt + clic\",\"No se pudo abrir este vínculo porque no tiene un formato correcto: {0}\",\"No se pudo abrir este vínculo porque falta el destino.\",\"Abrir vínculo\"],\"vs/editor/contrib/message/messageController\":[\"No se puede editar en un editor de sólo lectura\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Agregar cursor arriba\",\"&&Agregar cursor arriba\",\"Agregar cursor debajo\",\"A&&gregar cursor abajo\",\"Añadir cursores a finales de línea\",\"Agregar c&&ursores a extremos de línea\",\"Añadir cursores a la parte inferior\",\"Añadir cursores a la parte superior\",\"Agregar selección hasta la siguiente coincidencia de búsqueda\",\"Agregar &&siguiente repetición\",\"Agregar selección hasta la anterior coincidencia de búsqueda\",\"Agregar r&&epetición anterior\",\"Mover última selección hasta la siguiente coincidencia de búsqueda\",\"Mover última selección hasta la anterior coincidencia de búsqueda\",\"Seleccionar todas las repeticiones de coincidencia de búsqueda\",\"Seleccionar todas las &&repeticiones\",\"Cambiar todas las ocurrencias\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Sugerencias para parámetros Trigger\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, sugerencia\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Cerrar\",\"Color de fondo del área de título de la vista de inspección.\",\"Color del título de la vista de inpección.\",\"Color de la información del título de la vista de inspección.\",\"Color de los bordes y la flecha de la vista de inspección.\",\"Color de fondo de la lista de resultados de vista de inspección.\",\"Color de primer plano de los nodos de inspección en la lista de resultados.\",\"Color de primer plano de los archivos de inspección en la lista de resultados.\",\"Color de fondo de la entrada seleccionada en la lista de resultados de vista de inspección.\",\"Color de primer plano de la entrada seleccionada en la lista de resultados de vista de inspección.\",\"Color de fondo del editor de vista de inspección.\",\"Color de fondo del margen en el editor de vista de inspección.\",\"Buscar coincidencia con el color de resaltado de la lista de resultados de vista de inspección.\",\"Buscar coincidencia del color de resultado del editor de vista de inspección.\",\"Hacer coincidir el borde resaltado en el editor de vista previa.\"],\n\"vs/editor/contrib/rename/rename\":[\"No hay ningún resultado.\",\"Error desconocido al resolver el cambio de nombre de la ubicación\",'Cambiando el nombre de \"{0}\"',\"Nombre cambiado correctamente de '{0}' a '{1}'. Resumen: {2}\",\"No se pudo cambiar el nombre a las ediciones de aplicación\",\"No se pudo cambiar el nombre de las ediciones de cálculo\",\"Cambiar el nombre del símbolo\",\"Activar/desactivar la capacidad de previsualizar los cambios antes de cambiar el nombre\"],\"vs/editor/contrib/rename/renameInputField\":[\"Cambie el nombre de la entrada. Escriba el nuevo nombre y presione Entrar para confirmar.\",\"{0} para cambiar el nombre, {1} para obtener una vista previa\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Expandir selección\",\"&&Expandir selección\",\"Reducir la selección\",\"&&Reducir selección\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Domingo\",\"Lunes\",\"Martes\",\"Miércoles\",\"Jueves\",\"Viernes\",\"Sábado\",\"Dom\",\"Lun\",\"Mar\",\"Mié\",\"Jue\",\"Vie\",\"Sáb\",\"Enero\",\"Febrero\",\"Marzo\",\"Abril\",\"May\",\"Junio\",\"Julio\",\"Agosto\",\"Septiembre\",\"Octubre\",\"Noviembre\",\"Diciembre\",\"Ene\",\"Feb\",\"Mar\",\"Abr\",\"May\",\"Jun\",\"Jul\",\"Ago\",\"Sep\",\"Oct\",\"Nov\",\"Dic\"],\"vs/editor/contrib/suggest/suggestController\":['Aceptando \"{0}\" ediciones adicionales de {1} realizadas',\"Sugerencias para Trigger\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Color de fondo del widget sugerido.\",\"Color de borde del widget sugerido.\",\"Color de primer plano del widget sugerido.\",\"Color de fondo de la entrada seleccionada del widget sugerido.\",\"Color del resaltado coincidido en el widget sugerido.\",\"Leer más...{0}\",\"Leer menos...{0}\",\"Cargando...\",\"Cargando...\",\"No hay sugerencias.\",\"{0} por menos...\",\"{0} para más...\",\"Elemento {0}, documentos: {1}\",\"{0} para insertar, {1} para reemplazar\",\"{0} para reemplazar, {1} para insertar\",\"{0} para aceptar\"],\n\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Alternar tecla de tabulación para mover el punto de atención\",\"Presionando la pestaña ahora moverá el foco al siguiente elemento enfocable.\",\"Presionando la pestaña ahora insertará el carácter de tabulación\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Desarrollador: forzar nueva aplicación de token\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Color de fondo de un símbolo durante el acceso de lectura, como la lectura de una variable. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo de un símbolo durante el acceso de escritura, como escribir en una variable. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de fondo de un símbolo durante el acceso de lectura; por ejemplo, cuando se lee una variable.\",\"Color de fondo de un símbolo durante el acceso de escritura; por ejemplo, cuando se escribe una variable.\",\"Color del marcador de regla general para destacados de símbolos. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de marcador de regla general para destacados de símbolos de acceso de escritura. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Ir al siguiente símbolo destacado\",\"Ir al símbolo destacado anterior\",\"Desencadenar los símbolos destacados\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"La configuración predeterminada se reemplaza\",\"Establecer los valores de configuración que se reemplazarán para un lenguaje.\",\"Esta configuración no admite la configuración por idioma.\",'No se puede registrar \"{0}\". Coincide con el patrón de propiedad \\'\\\\\\\\[.*\\\\\\\\]$\\' para describir la configuración del editor específica del lenguaje. Utilice la contribución \"configurationDefaults\".','No se puede registrar \"{0}\". Esta propiedad ya está registrada.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Se presionó ({0}). Esperando la siguiente tecla...\",\"La combinación de teclas ({0}, {1}) no es ningún comando.\"],\n\"vs/platform/list/browser/listService\":[\"Área de trabajo\",'Se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS.','Se asigna a \"Alt\" en Windows y Linux y a \"Opción\" en macOS.',\"El modificador que se utilizará para agregar un elemento en los árboles y listas para una selección múltiple con el ratón (por ejemplo en el explorador, abiertos editores y vista de scm). Los gestos de ratón 'Abrir hacia' - si están soportados - se adaptarán de forma tal que no tenga conflicto con el modificador múltiple.\",\"Controla cómo abrir elementos en árboles y listas usando el ratón (si está soportado). Para elementos padres con hijos en los árboles, esta configuración controlará si de un solo click o un doble click expande al elemento padre. Tenga en cuenta que algunos árboles y listas pueden optar por ignorar esta configuración si no se aplica.\",\"Controla si las listas y los árboles admiten el desplazamiento horizontal en el área de trabajo.\",\"Controla el esplazamiento horizontal de los árboles en la mesa de trabajo.\",'Esta configuración está obsoleta, utilice \"{0}\" en su lugar.',\"Controla la sangría de árbol en píxeles.\",\"Controla si el árbol debe representar guías de sangría.\",\"La navegación simple del teclado se centra en elementos que coinciden con la entrada del teclado. El emparejamiento se hace solo en prefijos.\",\"Destacar la navegación del teclado resalta los elementos que coinciden con la entrada del teclado. Más arriba y abajo la navegación atravesará solo los elementos destacados.\",\"La navegación mediante el teclado de filtro filtrará y ocultará todos los elementos que no coincidan con la entrada del teclado.\",\"Controla el estilo de navegación del teclado para listas y árboles en el área de trabajo. Puede ser simple, resaltar y filtrar.\",'Controla si la navegación del teclado en listas y árboles se activa automáticamente simplemente escribiendo. Si se establece en \"false\", la navegación con el teclado solo se activa al ejecutar el comando \"list.toggleKeyboardNavigation\", para el cual puede asignar un método abreviado de teclado.'],\n\"vs/platform/markers/common/markers\":[\"Error\",\"Advertencia\",\"Información\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Color de primer plano general. Este color solo se usa si un componente no lo invalida.\",\"Color de primer plano general para los mensajes de erroe. Este color solo se usa si un componente no lo invalida.\",\"Color de borde de los elementos con foco. Este color solo se usa si un componente no lo invalida.\",\"Un borde adicional alrededor de los elementos para separarlos unos de otros y así mejorar el contraste.\",\"Un borde adicional alrededor de los elementos activos para separarlos unos de otros y así mejorar el contraste.\",\"Color de primer plano para los vínculos en el texto.\",\"Color de fondo para los bloques de código en el texto.\",\"Color de sombra de los widgets  dentro del editor, como buscar/reemplazar\",\"Fondo de cuadro de entrada.\",\"Primer plano de cuadro de entrada.\",\"Borde de cuadro de entrada.\",\"Color de borde de opciones activadas en campos de entrada.\",\"Color de fondo de las opciones activadas en los campos de entrada.\",\"Color de fondo de validación de entrada para gravedad de información.\",\"Color de primer plano de validación de entrada para información de gravedad.\",\"Color de borde de validación de entrada para gravedad de información.\",\"Color de fondo de validación de entrada para gravedad de advertencia.\",\"Color de primer plano de validación de entrada para información de advertencia.\",\"Color de borde de validación de entrada para gravedad de advertencia.\",\"Color de fondo de validación de entrada para gravedad de error.\",\"Color de primer plano de validación de entrada para información de error.\",\"Color de borde de valdación de entrada para gravedad de error.\",\"Fondo de lista desplegable.\",\"Primer plano de lista desplegable.\",\"Selector de color rápido para la agrupación de etiquetas.\",\"Selector de color rápido para la agrupación de bordes.\",\"Color de fondo de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.\",\"Color de primer plano de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.\",\"Sombra de la barra de desplazamiento indica que la vista se ha despazado.\",\"Color de fondo de control deslizante de barra de desplazamiento.\",\"Color de fondo de barra de desplazamiento cursor cuando se pasar sobre el control.\",\"Color de fondo de la barra de desplazamiento al hacer clic.\",\"Color de fondo para la barra de progreso que se puede mostrar para las operaciones de larga duración.\",\"Color de primer plano de squigglies de error en el editor.\",\"Color del borde de los cuadros de error en el editor.\",\"Color de primer plano de squigglies de advertencia en el editor.\",\"Color del borde de los cuadros de advertencia en el editor.\",\"Color de primer plano de los subrayados ondulados informativos en el editor.\",\"Color del borde de los cuadros de información en el editor.\",\"Color de primer plano de pista squigglies en el editor.\",\"Color del borde de los cuadros de sugerencia en el editor.\",\"Color de fondo del editor.\",\"Color de primer plano predeterminado del editor.\",\"Color de fondo del editor de widgets como buscar/reemplazar\",\"Color de primer plano de los widgets del editor, como buscar y reemplazar.\",\"Color de borde de los widgets del editor. El color solo se usa si el widget elige tener un borde y no invalida el color.\",\"Color del borde de la barra de cambio de tamaño de los widgets del editor. El color se utiliza solo si el widget elige tener un borde de cambio de tamaño y si un widget no invalida el color.\",\"Color de la selección del editor.\",\"Color del texto seleccionado para alto contraste.\",\"Color de la selección en un editor inactivo. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color en las regiones con el mismo contenido que la selección. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de borde de las regiones con el mismo contenido que la selección.\",\"Color de la coincidencia de búsqueda actual.\",\"Color de los otros resultados de la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de borde de la coincidencia de búsqueda actual.\",\"Color de borde de otra búsqueda que coincide.\",\"Color del borde de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Destacar debajo de la palabra para la que se muestra un mensaje al mantener el mouse. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo al mantener el puntero en el editor.\",\"Color de primer plano al mantener el puntero en el editor.\",\"Color del borde al mantener el puntero en el editor.\",\"Color de fondo de la barra de estado al mantener el puntero en el editor.\",\"Color de los vínculos activos.\",\"El color utilizado para el icono de bombilla de acciones.\",\"El color utilizado para el icono de la bombilla de acciones de corrección automática.\",\"Color de fondo para el texto que se insertó. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de fondo para el texto que se eliminó. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de contorno para el texto insertado.\",\"Color de contorno para el texto quitado.\",\"Color del borde entre ambos editores de texto.\",\"Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol esta inactiva. Una lista o un árbol tiene el foco del teclado cuando está activo, cuando esta inactiva no.\",\"Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, pero no cuando están inactivos.\",\"Fondo de la lista o el árbol al mantener el mouse sobre los elementos.\",\"Color de primer plano de la lista o el árbol al pasar por encima de los elementos con el ratón.\",\"Fondo de arrastrar y colocar la lista o el árbol al mover los elementos con el mouse.\",\"Color de primer plano de la lista o el árbol de las coincidencias resaltadas al buscar dentro de la lista o el ábol.\",\"Color de fondo del widget de filtro de tipo en listas y árboles.\",\"Color de contorno del widget de filtro de tipo en listas y árboles.\",\"Color de contorno del widget de filtro de tipo en listas y árboles, cuando no hay coincidencias.\",\"Color de trazo de árbol para las guías de sangría.\",\"Color del borde de los menús.\",\"Color de primer plano de los elementos de menú.\",\"Color de fondo de los elementos de menú.\",\"Color de primer plano del menu para el elemento del menú seleccionado.\",\"Color de fondo del menu para el elemento del menú seleccionado.\",\"Color del borde del elemento seleccionado en los menús.\",\"Color del separador del menu para un elemento del menú.\",\"Resaltado del color de fondo para una ficha de un fragmento de código.\",\"Resaltado del color del borde para una ficha de un fragmento de código.\",\"Resaltado del color de fondo para la última ficha de un fragmento de código.\",\"Resaltado del color del borde para la última ficha de un fragmento de código.\",\"Color del marcador de regla general para buscar actualizaciones. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color del marcador de la regla general para los destacados de la selección. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de marcador de minimapa para coincidencias de búsqueda.\",\"Color del marcador de minimapa para la selección del editor.\",\"Color del marcador de minimapa para errores.\",\"Color del marcador de minimapa para advertencias.\",\"Color utilizado para el icono de error de problemas.\",\"Color utilizado para el icono de advertencia de problemas.\",\"Color utilizado para el icono de información de problemas.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.es.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.fr.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.fr\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (s'est reproduit)\",\"{0} (survenu {1} fois)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Entrée\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Respecter la casse\",\"Mot entier\",\"Utiliser une expression régulière\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Entrée\",\"Préserver la casse\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Erreur : {0}\",\"Avertissement : {0}\",\"Info : {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Indépendant\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Utiliser les touches de navigation pour naviguer.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Effacer\",\"Désactiver le filtre sur le type\",\"Activer le filtre sur le type\",\"Aucun élément\",\"{0} éléments sur {1} correspondants\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Maj\",\"Alt\",\"Windows\",\"Ctrl\",\"Maj\",\"Alt\",\"Super\",\"Contrôle\",\"Maj\",\"Alt\",\"Commande\",\"Contrôle\",\"Maj\",\"Alt\",\"Windows\",\"Contrôle\",\"Maj\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Erreur\",\"Avertissement\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, sélecteur\",\"sélecteur\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Sélecteur rapide. Tapez pour réduire les résultats.\",\"Sélecteur rapide\",\"{0} résultats\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Sélectionner tout\",\"Ann&&uler\",\"&&Rétablir\"],\"vs/editor/browser/controller/textAreaHandler\":[\"L'éditeur n'est pas accessible pour le moment. Appuyez sur Alt+F1 pour connaître les options.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Le nombre de curseurs a été limité à {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Impossible de comparer les fichiers car l'un d'eux est trop volumineux.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Fermer\",\"aucune ligne\",\"1 ligne\",\"{0} lignes\",\"Différence {0} sur {1} : original {2}, {3}, modifié {4}, {5}\",\"vide\",\"{0} d'origine, {1} modifiées : {2}\",\"+ {0} modifiées : {1}\",\"- {0} d'origine : {1}\",\"Accéder à la différence suivante\",\"Accéder la différence précédente\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copier les lignes supprimées\",\"Copier la ligne supprimée\",\"Copier la ligne supprimée ({0})\",\"Annuler la modification\",\"Copier la ligne supprimée ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Éditeur\",\"Le nombre d'espaces auxquels une tabulation est égale. Ce paramètre est substitué basé sur le contenu du fichier lorsque `#editor.detectIndentation#` est à 'on'.\",\"Espaces insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand '#editor.detectIndentation#' est activé.\",\"Contrôle si '#editor.tabSize#' et '#editor.insertSpaces#' sont automatiquement détectés lors de l’ouverture d’un fichier en fonction de son contenu.\",\"Supprimer l'espace blanc de fin inséré automatiquement.\",\"Traitement spécial des fichiers volumineux pour désactiver certaines fonctionnalités utilisant beaucoup de mémoire.\",\"Contrôle si la saisie semi-automatique doit être calculée en fonction des mots présents dans le document.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap. \",\"Les lignes plus longues que cette valeur ne sont pas tokenisées pour des raisons de performances\",\"Délai d'expiration en millisecondes avant annulation du calcul de diff. Utilisez 0 pour supprimer le délai d'expiration.\",\"Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline.\",\"Contrôle si l'éditeur de différences affiche les changements liés aux espaces blancs de début ou de fin comme des différences.\",\"Contrôle si l'éditeur de différences affiche les indicateurs +/- pour les changements ajoutés/supprimés .\"],\n\"vs/editor/common/config/editorOptions\":[\"L'éditeur utilise les API de la plateforme pour détecter si un lecteur d'écran est attaché.\",\"L'éditeur est optimisé en permanence pour une utilisation avec un lecteur d'écran.\",\"L'éditeur n'est jamais optimisé pour une utilisation avec un lecteur d'écran.\",\"Contrôle si l'éditeur doit s'exécuter dans un mode optimisé pour les lecteurs d'écran.\",\"Contrôle si un espace est inséré pour les commentaires.\",\"Contrôle si la copie sans sélection permet de copier la ligne actuelle.\",\"Détermine si la chaîne de recherche dans le Widget Recherche est initialisée avec la sélection de l’éditeur.\",\"Ne jamais activer Rechercher automatiquement dans la sélection (par défaut)\",\"Toujours activer Rechercher automatiquement dans la sélection\",\"Activez Rechercher automatiquement dans la sélection quand plusieurs lignes de contenu sont sélectionnées.\",\"Contrôle si l’opération de recherche est effectuée sur le texte sélectionné ou sur l’intégralité du fichier dans l’éditeur.\",\"Détermine si le Widget Recherche devrait lire ou modifier le presse-papiers de recherche partagé sur macOS.\",\"Contrôle si le widget Recherche doit ajouter des lignes supplémentaires en haut de l'éditeur. Quand la valeur est true, vous pouvez faire défiler au-delà de la première ligne si le widget Recherche est visible.\",\"Active/désactive les ligatures de police.\",\"Paramètres de fonctionnalité de police explicites.\",\"Configure les ligatures de police.\",\"Contrôle la taille de police en pixels.\",\"Montrer l'aperçu des résultats (par défaut)\",\"Accéder au résultat principal et montrer un aperçu\",\"Accéder au résultat principal et activer l'accès sans aperçu pour les autres\",\"Ce paramètre est déprécié, utilisez des paramètres distincts comme 'editor.editor.gotoLocation.multipleDefinitions' ou 'editor.editor.gotoLocation.multipleImplementations' à la place.\",\"Contrôle le comportement de la commande 'Atteindre la définition' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre la définition de type' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre la déclaration' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre les implémentations' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre les références' quand plusieurs emplacements cibles existent.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition de type' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la déclaration' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre l'implémentation' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la référence' est l'emplacement actuel.\",\"Contrôle si le pointage est affiché.\",\"Contrôle le délai en millisecondes, après lequel le survol est affiché.\",\"Contrôle si le pointage doit rester visible quand la souris est déplacée au-dessus.\",\"Active l’ampoule d’action de code dans l’éditeur.\",\"Contrôle la hauteur de ligne. Utilisez 0 pour calculer la hauteur de ligne de la taille de la police.\",\"Contrôle si la minimap est affichée.\",\"Contrôle le côté où afficher la minimap.\",\"Contrôle quand afficher le curseur du minimap.\",\"Échelle du contenu dessiné dans le minimap.\",\"Afficher les caractères réels sur une ligne par opposition aux blocs de couleur.\",\"Limiter la largeur de la minimap pour afficher au plus un certain nombre de colonnes.\",\"Active une fenêtre contextuelle qui affiche de la documentation sur les paramètres et des informations sur les types à mesure que vous tapez.\",\"Détermine si le menu de suggestions de paramètres se ferme ou reviens au début lorsque la fin de la liste est atteinte.\",\"Activez les suggestions rapides dans les chaînes.\",\"Activez les suggestions rapides dans les commentaires.\",\"Activez les suggestions rapides en dehors des chaînes et des commentaires.\",\"Contrôle si les suggestions doivent apparaître automatiquement pendant la saisie.\",\"Les numéros de ligne ne sont pas affichés.\",\"Les numéros de ligne sont affichés en nombre absolu.\",\"Les numéros de ligne sont affichés sous la forme de distance en lignes à la position du curseur.\",\"Les numéros de ligne sont affichés toutes les 10 lignes.\",\"Contrôle l'affichage des numéros de ligne.\",\"Rendre les règles verticales après un certain nombre de caractères à espacement fixe. Utiliser plusieurs valeurs pour plusieurs règles. Aucune règle n'est dessinée si le tableau est vide.\",\"Insérez une suggestion sans remplacer le texte à droite du curseur.\",\"Insérez une suggestion et remplacez le texte à droite du curseur.\",\"Contrôle si les mots sont remplacés en cas d'acceptation de la saisie semi-automatique. Notez que cela dépend des extensions adhérant à cette fonctionnalité.\",\"Contrôle si les modifications de texte inattendues en cas d'acceptation de la complétion doivent être mises en surbrillance, par exemple 'insertMode' est défini sur 'replace', mais la complétion prend seulement en charge 'insert'.\",\"Détermine si le filtre et le tri des suggestions doivent prendre en compte les fautes de frappes mineures.\",\"Contrôle si le tri favorise trier les mots qui apparaissent près du curseur.\",\"Contrôle si les sélections de suggestion mémorisées sont partagées entre plusieurs espaces de travail et fenêtres (nécessite '#editor.suggestSelection#').\",\"Contrôler si un extrait de code actif empêche les suggestions rapides.\",\"Contrôle s'il faut montrer ou masquer les icônes dans les suggestions.\",\"Contrôle le nombre de suggestions IntelliSense affichées avant de montrer une barre de défilement (15 maximum).\",\"Ce paramètre est déprécié, veuillez utiliser des paramètres distincts comme 'editor.suggest.showKeywords' ou 'editor.suggest.showSnippets' à la place.\",\"Si activé, IntelliSense montre des suggestions de type 'method'.\",\"Si activé, IntelliSense montre des suggestions de type 'function'.\",\"Si activé, IntelliSense montre des suggestions de type 'constructor'.\",\"Si activé, IntelliSense montre des suggestions de type 'field'.\",\"Si activé, IntelliSense montre des suggestions de type 'variable'.\",\"Si activé, IntelliSense montre des suggestions de type 'class'.\",\"Si activé, IntelliSense montre des suggestions de type 'struct'.\",\"Si activé, IntelliSense montre des suggestions de type 'interface'.\",\"Si activé, IntelliSense montre des suggestions de type 'module'.\",\"Si activé, IntelliSense montre des suggestions de type 'property'.\",\"Si activé, IntelliSense montre des suggestions de type 'event'.\",\"Si activé, IntelliSense montre des suggestions de type 'operator'.\",\"Si activé, IntelliSense montre des suggestions de type 'unit'.\",\"Si activé, IntelliSense montre des suggestions de type 'value'.\",\"Si activé, IntelliSense montre des suggestions de type 'constant'.\",\"Si activé, IntelliSense montre des suggestions de type 'enum'.\",\"Si activé, IntelliSense montre des suggestions de type 'enumMember'.\",\"Si activé, IntelliSense montre des suggestions de type 'keyword'.\",\"Si activé, IntelliSense montre des suggestions de type 'text'.\",\"Si activé, IntelliSense montre des suggestions de type 'color'.\",\"Si activé, IntelliSense montre des suggestions de type 'file'.\",\"Si activé, IntelliSense montre des suggestions de type 'reference'.\",\"Si activé, IntelliSense montre des suggestions de type 'customcolor'.\",\"Si activé, IntelliSense montre des suggestions de type 'folder'.\",\"Si activé, IntelliSense montre des suggestions de type 'typeParameter'.\",\"Si activé, IntelliSense montre des suggestions de type 'snippet'.\",\"Contrôle la visibilité de la barre d'état en bas du widget de suggestion.\",\"Contrôle si les suggestions doivent être acceptées sur les caractères de validation. Par exemple, en JavaScript, le point-virgule (`;`) peut être un caractère de validation qui accepte une suggestion et tape ce caractère.\",\"Accepter uniquement une suggestion avec 'Entrée' quand elle effectue une modification textuelle.\",\"Contrôle si les suggestions sont acceptées après appui sur 'Entrée', en plus de 'Tab'. Permet d’éviter toute ambiguïté entre l’insertion de nouvelles lignes et l'acceptation de suggestions.\",\"Contrôle le nombre de lignes dans l'éditeur qui peuvent être lues par un lecteur d'écran. Avertissement : Ce paramètre a une incidence sur les performances quand le nombre est supérieur à la valeur par défaut.\",\"Contenu d'éditeur\",\"Utilisez les configurations de langage pour déterminer quand fermer automatiquement les parenthèses.\",\"Fermer automatiquement les parenthèses uniquement lorsque le curseur est à gauche de l’espace.\",\"Contrôle si l’éditeur doit fermer automatiquement les parenthèses quand l’utilisateur ajoute une parenthèse ouvrante.\",\"Tapez avant les guillemets ou les crochets fermants uniquement s'ils sont automatiquement insérés.\",\"Contrôle si l'éditeur doit taper avant les guillemets ou crochets fermants.\",\"Utilisez les configurations de langage pour déterminer quand fermer automatiquement les guillemets.\",\"Fermer automatiquement les guillemets uniquement lorsque le curseur est à gauche de l’espace.\",\"Contrôle si l’éditeur doit fermer automatiquement les guillemets après que l’utilisateur ajoute un guillemet ouvrant.\",\"L'éditeur n'insère pas de retrait automatiquement.\",\"L'éditeur conserve le retrait de la ligne actuelle.\",\"L'éditeur conserve le retrait de la ligne actuelle et honore les crochets définis par le langage.\",\"L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage et appelle des objets onEnterRules spéciaux définis par les langages.\",\"L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage, appelle des objets onEnterRules spéciaux définis par les langages et honore les objets indentationRules définis par les langages.\",\"Contrôle si l'éditeur doit ajuster automatiquement le retrait quand les utilisateurs tapent, collent, déplacent ou mettent en retrait des lignes.\",\"Utilisez les configurations de langue pour déterminer quand entourer automatiquement les sélections.\",\"Entourez avec des guillemets et non des crochets.\",\"Entourez avec des crochets et non des guillemets.\",\"Détermine si l'éditeur doit automatiquement entourer les sélections.\",\"Contrôle si l'éditeur affiche CodeLens.\",\"Contrôle si l'éditeur doit afficher les éléments décoratifs de couleurs inline et le sélecteur de couleurs.\",\"Contrôle si la coloration syntaxique doit être copiée dans le presse-papiers.\",\"Contrôler le style d’animation du curseur.\",\"Contrôle si l'animation du point d'insertion doit être activée.\",\"Contrôle le style du curseur.\",\"Contrôle le nombre minimum de lignes visibles avant et après le curseur. Appelé 'scrollOff' ou 'scrollOffset' dans d'autres éditeurs.\",\"'cursorSurroundingLines' est appliqué seulement s'il est déclenché via le clavier ou une API.\",\"'cursorSurroundingLines' est toujours appliqué.\",\"Contrôle quand 'cursorSurroundingLines' doit être appliqué.\",\"Détermine la largeur du curseur lorsque `#editor.cursorStyle#` est à `line`.\",\"Contrôle si l’éditeur autorise le déplacement de sélections par glisser-déplacer.\",\"Multiplicateur de vitesse de défilement quand vous appuyez sur 'Alt'.\",\"Contrôle si l'éditeur a le pliage de code activé.\",\"Contrôle la stratégie pour le calcul des plages de pliage. 'auto' utilise une stratégie de pliage spécifique au langage, le cas échéant. 'indentation' utilise la stratégie de pliage en fonction de la mise en retrait.\",\"Contrôle si l'éditeur doit mettre en évidence les plages pliées.\",\"Contrôle la famille de polices.\",\"Contrôle l'épaisseur de police.\",\"Détermine si l’éditeur doit automatiquement mettre en forme le contenu collé. Un formateur doit être disponible et être capable de mettre en forme une plage dans un document.\",\"Contrôle si l’éditeur doit mettre automatiquement en forme la ligne après la saisie.\",\"Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.\",\"Contrôle si le curseur doit être masqué dans la règle de la vue d’ensemble.\",\"Contrôle si l’éditeur doit mettre en surbrillance le guide de mise en retrait actif.\",\"Contrôle l'espacement des lettres en pixels.\",\"Contrôle si l’éditeur doit détecter les liens et les rendre cliquables.\",\"Mettez en surbrillance les crochets correspondants.\",\"Un multiplicateur à utiliser sur les `deltaX` et `deltaY` des événements de défilement de roulette de souris.\",\"Faire un zoom sur la police de l'éditeur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche 'Ctrl' enfoncée.\",\"Fusionnez plusieurs curseurs quand ils se chevauchent.\",\"Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.\",\"Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.\",\"Le modificateur à utiliser pour ajouter plusieurs curseurs avec la souris. Les gestes de souris Atteindre la définition et Ouvrir le lien s'adapteront tels qu’ils n’entrent pas en conflit avec le modificateur multicursor. [Lire la suite] (https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Chaque curseur colle une seule ligne de texte.\",\"Chaque curseur colle le texte en entier.\",\"Contrôle le collage quand le nombre de lignes du texte collé correspond au nombre de curseurs.\",\"Contrôle si l'éditeur doit mettre en surbrillance les occurrences de symboles sémantiques.\",\"Contrôle si une bordure doit être dessinée autour de la règle de la vue d'ensemble.\",\"Placer le focus sur l'arborescence à l'ouverture de l'aperçu\",\"Placer le focus sur l'éditeur à l'ouverture de l'aperçu\",\"Contrôle s'il faut mettre le focus sur l'éditeur inline ou sur l'arborescence dans le widget d'aperçu.\",\"Contrôle le délai en millisecondes après lequel des suggestions rapides sont affichées.\",\"Contrôle si l’éditeur doit afficher les caractères de contrôle.\",\"Contrôle si l’éditeur doit afficher les guides de mise en retrait.\",\"Affichez le dernier numéro de ligne quand le fichier se termine par un saut de ligne.\",\"Met en surbrillance la gouttière et la ligne actuelle.\",\"Contrôle la façon dont l’éditeur doit afficher la mise en surbrillance de la ligne actuelle.\",\"Render whitespace characters except for single spaces between words.\",\"Afficher les espaces blancs uniquement sur le texte sélectionné.\",\"Contrôle la façon dont l’éditeur doit restituer les caractères espaces.\",\"Contrôle si les sélections doivent avoir des angles arrondis.\",\"Contrôle le nombre de caractères supplémentaires, au-delà duquel l’éditeur défile horizontalement.\",\"Contrôle si l’éditeur défile au-delà de la dernière ligne.\",\"Contrôle si le presse-papiers principal Linux doit être pris en charge.\",\"Contrôle si l'éditeur doit mettre en surbrillance les correspondances similaires à la sélection.\",\"Définit si les contrôles de réduction sur la bordure sont cachés automatiquement\",\"Contrôle la disparition du code inutile.\",\"Afficher des suggestions d’extraits au-dessus d’autres suggestions.\",\"Afficher des suggestions d’extraits en-dessous d’autres suggestions.\",\"Afficher des suggestions d’extraits avec d’autres suggestions.\",\"Ne pas afficher de suggestions d’extrait de code.\",\"Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.\",\"Contrôle si l'éditeur défile en utilisant une animation.\",\"Taille de la police pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.fontSize` est utilisée.\",\"Hauteur de ligne pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.lineHeight#` est utilisée.\",\"Contrôle si les suggestions devraient automatiquement s’afficher lorsque vous tapez les caractères de déclencheur.\",\"Sélectionnez toujours la première suggestion.\",\"Sélectionnez les suggestions récentes sauf si une entrée ultérieure en a sélectionné une, par ex., 'console.| -> console.log', car 'log' a été effectué récemment.\",\"Sélectionnez des suggestions en fonction des préfixes précédents qui ont complété ces suggestions, par ex., 'co -> console' et 'con -> const'.\",\"Contrôle comment les suggestions sont pré-sélectionnés lors de l’affichage de la liste de suggestion.\",\"La complétion par tabulation insérera la meilleure suggestion lorsque vous appuyez sur tab.\",\"Désactiver les complétions par tabulation.\",\"Compléter les extraits de code par tabulation lorsque leur préfixe correspond. Fonctionne mieux quand les 'quickSuggestions' ne sont pas activées.\",\"Active les complétions par tabulation\",\"L'insertion et la suppression des espaces blancs suit les taquets de tabulation.\",\"Caractères utilisés comme séparateurs de mots durant la navigation ou les opérations basées sur les mots\",\"Le retour automatique à la ligne n'est jamais effectué.\",\"Le retour automatique à la ligne s'effectue en fonction de la largeur de la fenêtre d'affichage.\",\"Les lignes seront terminées à `#editor.wordWrapColumn#`.\",\"Les lignes seront terminées au minimum du viewport et `#editor.wordWrapColumn#`.\",\"Contrôle comment les lignes doivent être limitées.\",\"Contrôle la colonne de terminaison de l’éditeur lorsque `#editor.wordWrap#` est à `wordWrapColumn` ou `bounded`.\",\"Aucune mise en retrait. Les lignes enveloppées commencent à la colonne 1.\",\"Les lignes enveloppées obtiennent la même mise en retrait que le parent.\",\"Les lignes justifiées obtiennent une mise en retrait +1 vers le parent.\",\"Les lignes justifiées obtiennent une mise en retrait +2 vers le parent. \",\"Contrôle la mise en retrait des lignes justifiées.\",\"Suppose que tous les caractères ont la même largeur. Il s'agit d'un algorithme rapide qui fonctionne correctement pour les polices à espacement fixe et certains scripts (comme les caractères latins) où les glyphes ont la même largeur.\",\"Délègue le calcul des points de wrapping au navigateur. Il s'agit d'un algorithme lent qui peut provoquer le gel des grands fichiers, mais qui fonctionne correctement dans tous les cas.\",\"Contrôle l'algorithme qui calcule les points de wrapping.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Texte brut\"],\n\"vs/editor/common/standaloneStrings\":[\"Aucune sélection\",\"Ligne {0}, colonne {1} ({2} sélectionné)\",\"Ligne {0}, colonne {1}\",\"{0} sélections ({1} caractères sélectionnés)\",\"{0} sélections\",\"Remplacement du paramètre 'accessibilitySupport' par 'on'.\",\"Ouverture de la page de documentation sur l'accessibilité de l'éditeur.\",\"dans un volet en lecture seule d'un éditeur de différences.\",\"dans un volet d'un éditeur de différences.\",\" dans un éditeur de code en lecture seule\",\" dans un éditeur de code\",\"Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Commande+E maintenant.\",\"Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Contrôle+E maintenant.\",\"L'éditeur est configuré pour être optimisé en cas d'utilisation avec un lecteur d'écran.\",\"L'éditeur est configuré pour ne jamais être optimisé en cas d'utilisation avec un lecteur d'écran, ce qui n'est pas le cas pour le moment.\",\"Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. Activez ou désactivez ce comportement en appuyant sur {0}.\",\"Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. La commande {0} ne peut pas être déclenchée par une combinaison de touches.\",\"Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. Activez ou désactivez ce comportement en appuyant sur {0}.\",\"Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. La commande {0} ne peut pas être déclenchée par une combinaison de touches.\",\"Appuyez sur Commande+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.\",\"Appuyez sur Contrôle+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.\",\"Vous pouvez masquer cette info-bulle et revenir à l'éditeur en appuyant sur Échap ou Maj+Échap.\",\"Afficher l'aide sur l'accessibilité\",\"Développeur : Inspecter les jetons\",\"Atteindre la ligne {0} et le caractère {1}\",\"Atteindre la ligne {0}\",\"Tapez un numéro de ligne à atteindre entre 1 et {0}\",\"Taper un caractère entre 1 et {0} auquel accéder\",\"Ligne actuelle : {0}. Accédez à la ligne {1}.\",\"Taper un numéro de ligne, suivi d'un point-virgule facultatif et d'un numéro de caractère auquel accéder\",\"Atteindre la ligne...\",\"{0}, {1}, commandes\",\"{0}, commandes\",\"Taper le nom d'une action à exécuter\",\"Palette de commandes\",\"{0}, symboles\",\"Taper le nom d'un identificateur auquel vous voulez accéder\",\"Accéder au symbole...\",\"symboles ({0})\",\"modules ({0})\",\"classes ({0})\",\"interfaces ({0})\",\"méthodes ({0})\",\"fonctions ({0})\",\"propriétés ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructeurs ({0})\",\"appels ({0})\",\"Contenu d'éditeur\",\"Appuyez sur Ctrl+F1 pour voir les options d'accessibilité.\",\"Appuyez sur Alt+F1 pour voir les options d'accessibilité.\",\"Activer/désactiver le thème à contraste élevé\",\"{0} modifications dans {1} fichiers\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Couleur d'arrière-plan de la mise en surbrillance de la ligne à la position du curseur.\",\"Couleur d'arrière-plan de la bordure autour de la ligne à la position du curseur.\",\"Couleur d'arrière-plan des plages mises en surbrillance, comme par les fonctionnalités de recherche et Quick Open. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan de la bordure autour des plages mises en surbrillance.\",\"Couleur d'arrière-plan du symbole mis en surbrillance, comme le symbole Atteindre la définition ou Suivant/Précédent. La couleur ne doit pas être opaque pour ne pas masquer les décorations sous-jacentes.\",\"Couleur d'arrière-plan de la bordure autour des symboles mis en surbrillance.\",\"Couleur du curseur de l'éditeur.\",\"La couleur de fond du curseur de l'éditeur. Permet de personnaliser la couleur d'un caractère survolé par un curseur de bloc.\",\"Couleur des espaces blancs dans l'éditeur.\",\"Couleur des repères de retrait de l'éditeur.\",\"Couleur des guides d'indentation de l'éditeur actif\",\"Couleur des numéros de ligne de l'éditeur.\",\"Couleur des numéros de lignes actives de l'éditeur\",\"L’ID est déprécié. Utilisez à la place 'editorLineNumber.activeForeground'.\",\"Couleur des numéros de lignes actives de l'éditeur\",\"Couleur des règles de l'éditeur\",\"Couleur pour les indicateurs CodeLens\",\"Couleur d'arrière-plan pour les accolades associées\",\"Couleur pour le contour des accolades associées\",\"Couleur de la bordure de la règle d'aperçu.\",\"Couleur de fond pour la bordure de l'éditeur. La bordure contient les marges pour les symboles et les numéros de ligne.\",\"Couleur de bordure du code source inutile (non utilisé) dans l'éditeur.\",\"Opacité du code source inutile (non utilisé) dans l'éditeur. Par exemple, '#000000c0' affiche le code avec une opacité de 75 %. Pour les thèmes à fort contraste, utilisez la couleur de thème 'editorUnnecessaryCode.border' pour souligner le code inutile au lieu d'utiliser la transparence.\",\"Couleur du marqueur de la règle d'aperçu pour les erreurs.\",\"Couleur du marqueur de la règle d'aperçu pour les avertissements.\",\"Couleur du marqueur de la règle d'aperçu pour les informations.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Couleur du marqueur de la règle d'aperçu pour rechercher des parenthèses.\",\"Atteindre le crochet\",\"Sélectionner jusqu'au crochet\",\"Accéder au &&crochet\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Déplacer le point d'insertion vers la gauche\",\"Déplacer le point d'insertion vers la droite\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transposer les lettres\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Couper\",\"Co&&uper\",\"Copier\",\"&&Copier\",\"Coller\",\"Co&&ller\",\"Copier avec la coloration syntaxique\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Type d'action de code à exécuter.\",\"Contrôle quand les actions retournées sont appliquées.\",\"Appliquez toujours la première action de code retournée.\",\"Appliquez la première action de code retournée si elle est la seule.\",\"N'appliquez pas les actions de code retournées.\",\"Contrôle si seules les actions de code par défaut doivent être retournées.\",\"Une erreur inconnue s'est produite à l'application de l'action du code\",\"Correction rapide...\",\"Aucune action de code disponible\",\"Aucune action de code préférée n'est disponible pour '{0}'\",\"Aucune action de code disponible pour '{0}'\",\"Aucune action de code par défaut disponible\",\"Aucune action de code disponible\",\"Remanier...\",\"Aucune refactorisation par défaut disponible pour '{0}'\",\"Aucune refactorisation disponible pour '{0}'\",\"Aucune refactorisation par défaut disponible\",\"Aucune refactorisation disponible\",\"Action de la source\",\"Aucune action source par défaut disponible pour '{0}'\",\"Aucune action source disponible pour '{0}'\",\"Aucune action source par défaut disponible\",\"Aucune action n'est disponible\",\"Organiser les importations\",\"Aucune action organiser les imports disponible\",\"Tout corriger\",\"Aucune action Tout corriger disponible\",\"Corriger automatiquement...\",\"Aucun correctif automatique disponible\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Affichez les corrections. Correction préférée disponible ({0})\",\"Afficher les correctifs ({0})\",\"Afficher les correctifs\"],\"vs/editor/contrib/comment/comment\":[\"Activer/désactiver le commentaire de ligne\",\"Afficher/masquer le commen&&taire de ligne\",\"Ajouter le commentaire de ligne\",\"Supprimer le commentaire de ligne\",\"Activer/désactiver le commentaire de bloc\",\"Afficher/masquer le commentaire de &&bloc\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Afficher le menu contextuel de l'éditeur\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Annulation du curseur\",\"Restauration du curseur\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Couleur de premier plan des symboles de tableau. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles booléens. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de classe. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de couleur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan pour les symboles de constante. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de constructeur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de membre d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'événement. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de champ. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de fichier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de dossier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de fonction. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'interface. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de mot clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de méthode. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de module. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'espace de noms. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles null. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de nombre. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'objet. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'opérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de package. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de propriété. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de référence. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'extrait de code. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de chaîne. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de struct. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de texte. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de paramètre de type. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'unité. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de variable. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\"],\n\"vs/editor/contrib/find/findController\":[\"Rechercher\",\"&&Rechercher\",\"Rechercher dans la sélection\",\"Rechercher suivant\",\"Rechercher suivant\",\"Rechercher précédent\",\"Rechercher précédent\",\"Sélection suivante\",\"Sélection précédente\",\"Remplacer\",\"&&Remplacer\"],\"vs/editor/contrib/find/findWidget\":[\"Rechercher\",\"Rechercher\",\"Correspondance précédente\",\"Prochaine correspondance\",\"Rechercher dans la sélection\",\"Fermer\",\"Remplacer\",\"Remplacer\",\"Remplacer\",\"Tout remplacer\",\"Changer le mode de remplacement\",\"Seuls les {0} premiers résultats sont mis en évidence, mais toutes les opérations de recherche fonctionnent sur l’ensemble du texte.\",\"{0} sur {1}\",\"Aucun résultat\",\"{0} trouvé(s)\",\"{0} trouvé(s) pour {1}\",\"{0} trouvé(s) pour {1} à {2}\",\"{0} trouvé(s) pour {1}\",\"La combinaison Ctrl+Entrée permet désormais d'ajouter un saut de ligne au lieu de tout remplacer. Vous pouvez modifier le raccourci clavier de editor.action.replaceAll pour redéfinir le comportement.\"],\n\"vs/editor/contrib/folding/folding\":[\"Déplier\",\"Déplier de manière récursive\",\"Plier\",\"Activer/désactiver le pliage\",\"Plier de manière récursive\",\"Replier tous les commentaires de bloc\",\"Replier toutes les régions\",\"Déplier toutes les régions\",\"Plier tout\",\"Déplier tout\",\"Niveau de pliage {0}\",\"Couleur de la sélection de l'éditeur.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Agrandissement de l'éditeur de polices de caractères\",\"Rétrécissement de l'éditeur de polices de caractères\",\"Remise à niveau du zoom de l'éditeur de polices de caractères\"],\"vs/editor/contrib/format/format\":[\"1 modification de format effectuée à la ligne {0}\",\"{0} modifications de format effectuées à la ligne {1}\",\"1 modification de format effectuée entre les lignes {0} et {1}\",\"{0} modifications de format effectuées entre les lignes {1} et {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Mettre le document en forme\",\"Mettre la sélection en forme\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Aller au problème suivant (Erreur, Avertissement, Info)\",\"Aller au problème précédent (Erreur, Avertissement, Info)\",\"Aller au problème suivant dans Fichiers (Erreur, Avertissement, Info)\",\"Aller au problème précédent dans Fichiers (Erreur, Avertissement, Info)\",\"&&Problème suivant\",\"&&Problème précédent\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} problèmes sur {1}\",\"{0} problème(s) sur {1}\",\"Couleur d'erreur du widget de navigation dans les marqueurs de l'éditeur.\",\"Couleur d'avertissement du widget de navigation dans les marqueurs de l'éditeur.\",\"Couleur d’information du widget de navigation du marqueur de l'éditeur.\",\"Arrière-plan du widget de navigation dans les marqueurs de l'éditeur.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Aperçu\",\"Définitions\",\"Définition introuvable pour '{0}'\",\"Définition introuvable\",\"Atteindre la définition\",\"Atteindre la &&définition\",\"Ouvrir la définition sur le côté\",\"Aperçu de définition\",\"Déclarations\",\"Aucune déclaration pour '{0}'\",\"Aucune déclaration\",\"Accéder à la déclaration\",\"Atteindre la &&déclaration\",\"Aucune déclaration pour '{0}'\",\"Aucune déclaration\",\"Aperçu de la déclaration\",\"Définitions de type\",\"Définition de type introuvable pour '{0}'\",\"Définition de type introuvable\",\"Atteindre la définition de type\",\"Accéder à la définition de &&type\",\"Aperçu de la définition du type\",\"Implémentations\",\"Implémentation introuvable pour '{0}'\",\"Implémentation introuvable\",\"Atteindre les implémentations\",\"Atteindre les &&implémentations\",\"Implémentations d'aperçu\",\"Aucune référence pour '{0}'\",\"Aucune référence\",\"Atteindre les références\",\"Atteindre les &&références\",\"Références\",\"Aperçu des références\",\"Références\",\"Atteindre un symbole\",\"Emplacements\",\"Aucun résultat pour '{0}'\",\"Références\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Cliquez pour afficher {0} définitions.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Chargement en cours...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Échec de la résolution du fichier.\",\"{0} références\",\"{0} référence\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"aperçu non disponible\",\"Références\",\"Aucun résultat\",\"Références\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"symbole dans {0} sur la ligne {1}, colonne {2}\",\"1 symbole dans {0}, chemin complet {1}\",\"{0} symboles dans {1}, chemin complet {2}\",\"Résultats introuvables\",\"1 symbole dans {0}\",\"{0} symboles dans {1}\",\"{0} symboles dans {1} fichiers\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbole {0} sur {1}, {2} pour le suivant\",\"Symbole {0} sur {1}\"],\"vs/editor/contrib/hover/hover\":[\"Afficher par pointage\",\"Afficher le pointeur de l'aperçu de définition\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Chargement en cours...\",\"Aperçu du problème\",\"Recherche de correctifs rapides...\",\"Aucune solution disponible dans l'immédiat\",\"Correction rapide...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Remplacer par la valeur précédente\",\"Remplacer par la valeur suivante\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copier la ligne en haut\",\"&&Copier la ligne en haut\",\"Copier la ligne en bas\",\"Co&&pier la ligne en bas\",\"Dupliquer la sélection\",\"&&Dupliquer la sélection\",\"Déplacer la ligne vers le haut\",\"Déplacer la ligne &&vers le haut\",\"Déplacer la ligne vers le bas\",\"Déplacer la &&ligne vers le bas\",\"Trier les lignes dans l'ordre croissant\",\"Trier les lignes dans l'ordre décroissant\",\"Découper l'espace blanc de fin\",\"Supprimer la ligne\",\"Mettre en retrait la ligne\",\"Ajouter un retrait négatif à la ligne\",\"Insérer une ligne au-dessus\",\"Insérer une ligne sous\",\"Supprimer tout ce qui est à gauche\",\"Supprimer tout ce qui est à droite\",\"Joindre les lignes\",\"Transposer les caractères autour du curseur\",\"Transformer en majuscule\",\"Transformer en minuscule\",'Appliquer la casse \"1re lettre des mots en majuscule\"'],\n\"vs/editor/contrib/links/links\":[\"Exécuter la commande\",\"suivre le lien\",\"cmd + clic\",\"ctrl + clic\",\"option + clic\",\"alt + clic\",\"Échec de l'ouverture de ce lien, car il n'est pas bien formé : {0}\",\"Échec de l'ouverture de ce lien, car sa cible est manquante.\",\"Ouvrir le lien\"],\"vs/editor/contrib/message/messageController\":[\"Impossible de modifier dans l’éditeur en lecture seule\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Ajouter un curseur au-dessus\",\"&&Ajouter un curseur au-dessus\",\"Ajouter un curseur en dessous\",\"Aj&&outer un curseur en dessous\",\"Ajouter des curseurs à la fin des lignes\",\"Ajouter des c&&urseurs à la fin des lignes\",\"Ajouter des curseurs en bas\",\"Ajouter des curseurs en haut\",\"Ajouter la sélection à la correspondance de recherche suivante\",\"Ajouter l'occurrence suiva&&nte\",\"Ajouter la sélection à la correspondance de recherche précédente\",\"Ajouter l'occurrence p&&récédente\",\"Déplacer la dernière sélection vers la correspondance de recherche suivante\",\"Déplacer la dernière sélection à la correspondance de recherche précédente\",\"Sélectionner toutes les occurrences des correspondances de la recherche\",\"Sélectionner toutes les &&occurrences\",\"Modifier toutes les occurrences\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Indicateurs des paramètres Trigger\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, conseil\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Fermer\",\"Couleur d'arrière-plan de la zone de titre de l'affichage d'aperçu.\",\"Couleur du titre de l'affichage d'aperçu.\",\"Couleur des informations sur le titre de l'affichage d'aperçu.\",\"Couleur des bordures et de la flèche de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan des noeuds de lignes dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan des noeuds de fichiers dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de l'éditeur d'affichage d'aperçu.\",\"Couleur d'arrière-plan de la bordure de l'éditeur d'affichage d'aperçu.\",\"Couleur de mise en surbrillance d'une correspondance dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu.\",\"Bordure de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu.\"],\n\"vs/editor/contrib/rename/rename\":[\"Aucun résultat.\",\"Une erreur inconnue s’est produite lors de la résolution de l'emplacement de renommage : {0}\",\"Renommage de '{0}'\",\"'{0}' renommé en '{1}'. Récapitulatif : {2}\",\"Le renommage n'a pas pu appliquer les modifications\",\"Le renommage n'a pas pu calculer les modifications\",\"Renommer le symbole\",\"Activer/désactiver la possibilité d'afficher un aperçu des changements avant le renommage\"],\"vs/editor/contrib/rename/renameInputField\":[\"Renommez l'entrée. Tapez le nouveau nom et appuyez sur Entrée pour valider.\",\"{0} pour renommer, {1} pour afficher un aperçu\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Étendre la sélection\",\"Dév&&elopper la sélection\",\"Réduire la sélection\",\"&&Réduire la sélection\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Dimanche\",\"Lundi\",\"Mardi\",\"Mercredi\",\"Jeudi\",\"Vendredi\",\"Samedi\",\"Dim\",\"Lun\",\"Mar\",\"Mer\",\"Jeu\",\"Ven\",\"Sam\",\"Janvier\",\"Février\",\"Mars\",\"Avril\",\"Mai\",\"Juin\",\"Juillet\",\"Août\",\"Septembre\",\"Octobre\",\"Novembre\",\"Décembre\",\"Jan\",\"Fév\",\"Mar\",\"Avr\",\"Mai\",\"Juin\",\"Jul\",\"Aoû\",\"Sept\",\"Oct\",\"Nov\",\"Déc\"],\"vs/editor/contrib/suggest/suggestController\":[\"L'acceptation de '{0}' a entraîné {1} modifications supplémentaires\",\"Suggestions pour Trigger\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Couleur d'arrière-plan du widget de suggestion.\",\"Couleur de bordure du widget de suggestion.\",\"Couleur de premier plan du widget de suggestion.\",\"Couleur d'arrière-plan de l'entrée sélectionnée dans le widget de suggestion.\",\"Couleur de la surbrillance des correspondances dans le widget de suggestion.\",\"En savoir plus...{0}\",\"En savoir moins...{0}\",\"Chargement en cours...\",\"Chargement en cours...\",\"Pas de suggestions.\",\"{0} pour moins...\",\"{0} pour plus...\",\"Item {0}, docs: {1}\",\"{0} pour insérer, {1} pour remplacer\",\"{0} pour remplacer, {1} pour insérer\",\"{0} pour accepter\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Activer/désactiver l'utilisation de la touche Tab pour déplacer le focus\",\"Appuyer sur Tab déplacera le focus vers le prochain élément pouvant être désigné comme élément actif\",\"Appuyer sur Tab insérera le caractère de tabulation\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Développeur : forcer la retokenisation\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Couleur d'arrière-plan d'un symbole pendant l'accès en lecture, comme la lecture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan d'un symbole pendant l'accès en écriture, comme l'écriture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure d'un symbole durant l'accès en lecture, par exemple la lecture d'une variable.\",\"Couleur de bordure d'un symbole durant l'accès en écriture, par exemple l'écriture dans une variable.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles d'accès en écriture. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Aller à la prochaine mise en évidence de symbole\",\"Aller à la mise en évidence de symbole précédente\",\"Déclencher la mise en évidence de symbole\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Substitutions de configuration par défaut\",\"Configurez les paramètres d'éditeur à remplacer pour un langage.\",\"Ce paramètre ne prend pas en charge la configuration par langue.\",\"Impossible d'inscrire '{0}'. Ceci correspond au modèle de propriété '\\\\\\\\[.*\\\\\\\\]$' permettant de décrire les paramètres d'éditeur spécifiques à un langage. Utilisez la contribution 'configurationDefaults'.\",\"Impossible d'inscrire '{0}'. Cette propriété est déjà inscrite.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Touche ({0}) utilisée. En attente de la seconde touche pour la pression simultanée...\",\"La combinaison de touches ({0}, {1}) n'est pas une commande.\"],\n\"vs/platform/list/browser/listService\":[\"Banc d'essai\",\"Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.\",\"Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.\",\"Le modificateur à utiliser pour ajouter un élément dans les arbres et listes pour une sélection multiple avec la souris (par exemple dans l’Explorateur, les éditeurs ouverts et la vue scm). Les mouvements de la souris 'Ouvrir à côté' (si pris en charge) s'adapteront tels qu’ils n'entrent pas en conflit avec le modificateur multiselect.\",\"Contrôle l’ouverture des éléments dans les arbres et listes à l’aide de la souris (si pris en charge). Pour les parents ayant des enfants dans les arbres, ce paramètre contrôlera si un simple clic déploie le parent ou un double-clic. Notez que certains arbres et listes peuvent choisir d’ignorer ce paramètre, si ce n’est pas applicable. \",\"Contrôle si les listes et les arborescences prennent en charge le défilement horizontal dans le banc d'essai.\",\"Contrôle si les arborescences prennent en charge le défilement horizontal dans le plan de travail.\",\"Ce paramètre est déprécié, utilisez '{0}' à la place.\",\"Contrôle la mise en retrait de l'arborescence, en pixels.\",\"Contrôle si l'arborescence doit afficher les repères de mise en retrait.\",\"La navigation au clavier Simple place le focus sur les éléments qui correspondent à l'entrée de clavier. La mise en correspondance est effectuée sur les préfixes uniquement.\",\"La navigation de mise en surbrillance au clavier met en surbrillance les éléments qui correspondent à l'entrée de clavier. La navigation ultérieure vers le haut ou vers le bas parcourt uniquement les éléments mis en surbrillance.\",\"La navigation au clavier Filtrer filtre et masque tous les éléments qui ne correspondent pas à l'entrée de clavier.\",\"Contrôle le style de navigation au clavier pour les listes et les arborescences dans le banc d'essai. Les options sont Simple, Mise en surbrillance et Filtrer.\",\"Contrôle si la navigation au clavier dans les listes et les arborescences est automatiquement déclenchée simplement par la frappe. Si défini sur 'false', la navigation au clavier est seulement déclenchée avec l'exécution de la commande 'list.toggleKeyboardNavigation', à laquelle vous pouvez attribuer un raccourci clavier.\"],\n\"vs/platform/markers/common/markers\":[\"Erreur\",\"Avertissement\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Couleur de premier plan globale. Cette couleur est utilisée si elle n'est pas remplacée par un composant.\",\"Couleur principale de premier plan pour les messages d'erreur. Cette couleur est utilisée uniquement si elle n'est pas redéfinie par un composant.\",\"Couleur de bordure globale des éléments ayant le focus. Cette couleur est utilisée si elle n'est pas remplacée par un composant.\",\"Bordure supplémentaire autour des éléments pour les séparer des autres et obtenir un meilleur contraste.\",\"Bordure supplémentaire autour des éléments actifs pour les séparer des autres et obtenir un meilleur contraste.\",\"Couleur des liens dans le texte.\",\"Couleur d'arrière-plan des blocs de code dans le texte.\",\"Couleur de l'ombre des widgets, comme rechercher/remplacer, au sein de l'éditeur.\",\"Arrière-plan de la zone d'entrée.\",\"Premier plan de la zone d'entrée.\",\"Bordure de la zone d'entrée.\",\"Couleur de la bordure des options activées dans les champs d'entrée.\",\"Couleur d'arrière-plan des options activées dans les champs d'entrée.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité des informations.\",\"Couleur de premier plan de validation de saisie pour la sévérité Information.\",\"Couleur de bordure de la validation d'entrée pour la gravité des informations.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'avertissement.\",\"Couleur de premier plan de la validation de la saisie pour la sévérité Avertissement.\",\"Couleur de bordure de la validation d'entrée pour la gravité de l'avertissement.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'erreur.\",\"Couleur de premier plan de la validation de saisie pour la sévérité Erreur.\",\"Couleur de bordure de la validation d'entrée pour la gravité de l'erreur. \",\"Arrière-plan de la liste déroulante.\",\"Premier plan de la liste déroulante.\",\"Couleur du sélecteur rapide pour les étiquettes de regroupement.\",\"Couleur du sélecteur rapide pour les bordures de regroupement.\",\"Couleur de fond des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.\",\"Couleur des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.\",\"Ombre de la barre de défilement pour indiquer que la vue défile.\",\"Couleur de fond du curseur de la barre de défilement.\",\"Couleur de fond du curseur de la barre de défilement lors du survol.\",\"Couleur d’arrière-plan de la barre de défilement lorsqu'on clique dessus.\",\"Couleur de fond pour la barre de progression qui peut s'afficher lors d'opérations longues.\",\"Couleur de premier plan de la ligne ondulée marquant les erreurs dans l'éditeur.\",\"Couleur de bordure des zones d'erreur dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée marquant les avertissements dans l'éditeur.\",\"Couleur de bordure des zones d'avertissement dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée marquant les informations dans l'éditeur.\",\"Couleur de bordure des zones d'informations dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée d'indication dans l'éditeur.\",\"Couleur de bordure des zones d'indication dans l'éditeur.\",\"Couleur d'arrière-plan de l'éditeur.\",\"Couleur de premier plan par défaut de l'éditeur.\",\"Couleur d'arrière-plan des gadgets de l'éditeur tels que rechercher/remplacer.\",\"Couleur de premier plan des widgets de l'éditeur, notamment Rechercher/remplacer.\",\"Couleur de bordure des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit d'avoir une bordure et si la couleur n'est pas remplacée par un widget.\",\"Couleur de bordure de la barre de redimensionnement des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit une bordure de redimensionnement et si la couleur n'est pas remplacée par un widget.\",\"Couleur de la sélection de l'éditeur.\",\"Couleur du texte sélectionné pour le contraste élevé.\",\"Couleur de la sélection dans un éditeur inactif. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur des régions dont le contenu est le même que celui de la sélection. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure des régions dont le contenu est identique à la sélection.\",\"Couleur du résultat de recherche actif.\",\"Couleur des autres correspondances de recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure du résultat de recherche actif.\",\"Couleur de bordure des autres résultats de recherche.\",\"Couleur de bordure de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Surlignage sous le mot sélectionné par pointage. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan du pointage de l'éditeur.\",\"Couleur de premier plan du pointage de l'éditeur.\",\"Couleur de bordure du pointage de l'éditeur.\",\"Couleur d'arrière-plan de la barre d'état du pointage de l'éditeur.\",\"Couleur des liens actifs.\",\"Couleur utilisée pour l'icône d'ampoule suggérant des actions.\",\"Couleur utilisée pour l'icône d'ampoule suggérant des actions de correction automatique.\",\"Couleur d'arrière-plan du texte inséré. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan du texte supprimé. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de contour du texte inséré.\",\"Couleur de contour du texte supprimé.\",\"Couleur de bordure entre les deux éditeurs de texte.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence de l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier (elle ne l'est pas quand elle est inactive).\",\"Arrière-plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.\",\"Premier plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.\",\"Arrière-plan de l'opération de glisser-déplacer dans une liste/arborescence pendant le déplacement d'éléments avec la souris.\",\"Couleur de premier plan dans la liste/l'arborescence pour la surbrillance des correspondances pendant la recherche dans une liste/arborescence.\",\"Couleur d'arrière-plan du widget de filtre de type dans les listes et les arborescences.\",\"Couleur de contour du widget de filtre de type dans les listes et les arborescences.\",\"Couleur de contour du widget de filtre de type dans les listes et les arborescences, en l'absence de correspondance.\",\"Couleur de trait de l'arborescence pour les repères de mise en retrait.\",\"Couleur de bordure des menus.\",\"Couleur de premier plan des éléments de menu.\",\"Couleur d'arrière-plan des éléments de menu.\",\"Couleur de premier plan de l'élément de menu sélectionné dans les menus.\",\"Couleur d'arrière-plan de l'élément de menu sélectionné dans les menus.\",\"Couleur de bordure de l'élément de menu sélectionné dans les menus.\",\"Couleur d'un élément de menu séparateur dans les menus.\",\"Couleur d’arrière-plan de mise en surbrillance d’un extrait tabstop.\",\"Couleur de bordure de mise en surbrillance d’un extrait tabstop.\",\"Couleur d’arrière-plan de mise en surbrillance du tabstop final d’un extrait.\",\"Couleur de la bordure de mise en surbrillance du tabstop final d’un extrait.\",\"Couleur de marqueur de la règle d'aperçu pour rechercher les correspondances. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des sélections. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la minimap pour les correspondances.\",\"Couleur de marqueur du minimap pour la sélection de l'éditeur.\",\"Couleur de marqueur de minimap pour les erreurs.\",\"Couleur de marqueur de minimap pour les avertissements.\",\"Couleur utilisée pour l'icône d'erreur des problèmes.\",\"Couleur utilisée pour l'icône d'avertissement des problèmes.\",\"Couleur utilisée pour l'icône d'informations des problèmes.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.fr.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.it.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.it\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (nuova occorrenza)\",\"{0} ( accaduto {1} volte)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Input\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Maiuscole/minuscole\",\"Parola intera\",\"Usa espressione regolare\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Input\",\"Mantieni maiuscole/minuscole\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Errore: {0}\",\"Avviso: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Non associato\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Usare i tasti di navigazione per spostarsi.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Cancella\",\"Disabilita filtro sul tipo\",\"Abilita filtro sul tipo\",\"Non sono stati trovati elementi\",\"Abbinamento di {0} su {1} elementi\"],\n\"vs/base/common/keybindingLabels\":[\"CTRL\",\"MAIUSC\",\"ALT\",\"Windows\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Super\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Comando\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Windows\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Super\"],\"vs/base/common/severity\":[\"Errore\",\"Avviso\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, selezione\",\"selezione\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Selezione rapida. Digitare per ridurre il numero di risultati.\",\"Selezione rapida\",\"{0} risultati\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Seleziona tutto\",\"&&Annulla\",\"&&Ripeti\"],\"vs/editor/browser/controller/textAreaHandler\":[\"L'editor non è accessibile in questo momento. Premere Alt+F1 per le opzioni.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Il numero di cursori è stato limitato a {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Non è possibile confrontare i file perché uno è troppo grande.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Chiudi\",\"nessuna linea\",\"1 linea\",\"{0} linee\",\"Differenza {0} di {1}: originale {2}, {3}, modificate {4}, {5}\",\"vuota\",\"originali {0}, modificate {1}: {2}\",\"+ modificate {0}: {1}\",\"- originali {0}: {1}\",\"Vai alla differenza successiva\",\"Vai alla differenza precedente\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copia le righe eliminate\",\"Copia la riga eliminata\",\"Copia la riga eliminata ({0})\",\"Ripristina questa modifica\",\"Copia la riga eliminata ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",\"Numero di spazi a cui equivale una tabulazione. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.\",\"Inserisce spazi quando viene premuto TAB. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.\",\"Controlla se `#editor.tabSize#` e `#editor.insertSpaces#` verranno rilevati automaticamente quando un file viene aperto in base al contenuto del file.\",\"Rimuovi gli spazi finali inseriti automaticamente.\",\"Gestione speciale dei file di grandi dimensioni per disabilitare alcune funzionalità che fanno un uso intensivo della memoria.\",\"Controlla se calcolare i completamenti in base alle parole presenti nel documento.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme 'ESC'.\",\"Per motivi di prestazioni le righe di lunghezza superiore non verranno tokenizzate\",\"Timeout in millisecondi dopo il quale il calcolo delle differenze viene annullato. Usare 0 per indicare nessun timeout.\",\"Controlla se l'editor diff mostra le differenze affiancate o incorporate.\",\"Controlla se l'editor diff mostra come differenze le modifiche relative a spazi vuoti iniziali e finali.\",\"Controlla se l'editor diff mostra gli indicatori +/- per le modifiche aggiunte/rimosse.\"],\n\"vs/editor/common/config/editorOptions\":[\"L'editor userà le API della piattaforma per rilevare quando viene collegata un'utilità per la lettura dello schermo.\",\"L'editor verrà definitivamente ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"L'editor non verrà mai ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"Controlla se l'editor deve essere eseguito in una modalità ottimizzata per le utilità per la lettura dello schermo.\",\"Consente di controllare se viene inserito uno spazio quando si aggiungono commenti.\",\"Controlla se, quando si copia senza aver effettuato una selezione, viene copiata la riga corrente.\",\"Controlla se inizializzare la stringa di ricerca nel Widget Trova con il testo selezionato nell'editor\",\"Non attivare mai automaticamente la funzione Trova nella selezione (impostazione predefinita)\",\"Attiva sempre automaticamente la funzione Trova nella selezione\",\"Attiva automaticamente la funzione Trova nella selezione quando sono selezionate più righe di contenuto.\",\"Controlla se l'operazione di ricerca viene eseguita all'interno del testo selezionato o in tutto il file aperto nell'editor.\",\"Controlla se il widget Trova deve leggere o modificare gli appunti di ricerca condivisi in macOS.\",\"Controlla se il widget Trova deve aggiungere altre righe nella parte superiore dell'editor. Quando è true, è possibile scorrere oltre la prima riga quando il widget Trova è visibile.\",\"Abilita/Disabilita i caratteri legatura.\",\"Impostazioni esplicite delle funzionalità dei tipi di carattere.\",\"Configura i caratteri legatura.\",\"Controlla le dimensioni del carattere in pixel.\",\"Mostra la visualizzazione rapida dei risultati (impostazione predefinita)\",\"Passa al risultato principale e mostra una visualizzazione rapida\",\"Passa al risultato principale e abilita l'esplorazione senza anteprima per gli altri\",\"Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.editor.gotoLocation.multipleDefinitions' o 'editor.editor.gotoLocation.multipleImplementations'.\",\"Controlla il comportamento del comando 'Vai alla definizione' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai alla definizione di tipo' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a dichiarazione' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a implementazioni' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a riferimenti' quando esistono più posizioni di destinazione.\",\"ID comando alternativo eseguito quando il risultato di 'Vai alla definizione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai alla definizione di tipo' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a dichiarazione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a implementazione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a riferimento' è la posizione corrente.\",\"Controlla se mostrare l'area sensibile al passaggio del mouse.\",\"Controlla il ritardo in millisecondi dopo il quale viene mostrato il passaggio del mouse.\",\"Controlla se l'area sensibile al passaggio del mouse deve rimanere visibile quando vi si passa sopra con il puntatore del mouse\",\"Abilita la lampadina delle azioni codice nell'editor.\",\"Controlla l'altezza della riga. Usare 0 per calcolare l'altezza della riga dalle dimensioni del carattere.\",\"Controlla se la minimappa è visualizzata.\",\"Definisce il lato in cui eseguire il rendering della minimappa.\",\"Controlla se il dispositivo di scorrimento della minimappa è visualizzato.\",\"Scala del contenuto disegnato nella minimappa.\",\"Esegue il rendering dei caratteri effettivi di una riga in contrapposizione ai blocchi colore.\",\"Limita la larghezza della minimappa in modo da eseguire il rendering al massimo di un certo numero di colonne.\",\"Abilita un popup che mostra documentazione sui parametri e informazioni sui tipi mentre si digita.\",\"Controlla se il menu dei suggerimenti per i parametri esegue un ciclo o si chiude quando viene raggiunta la fine dell'elenco.\",\"Abilita i suggerimenti rapidi all'interno di stringhe.\",\"Abilita i suggerimenti rapidi all'interno di commenti.\",\"Abilita i suggerimenti rapidi all'esterno di stringhe e commenti.\",\"Controlla se visualizzare automaticamente i suggerimenti durante la digitazione.\",\"I numeri di riga non vengono visualizzati.\",\"I numeri di riga vengono visualizzati come numeri assoluti.\",\"I numeri di riga vengono visualizzati come distanza in linee alla posizione del cursore.\",\"I numeri di riga vengono visualizzati ogni 10 righe.\",\"Controlla la visualizzazione dei numeri di riga.\",\"Esegue il rendering dei righelli verticali dopo un certo numero di caratteri a spaziatura fissa. Usare più valori per più righelli. Se la matrice è vuota, non viene disegnato alcun righello.\",\"Inserisce il suggerimento senza sovrascrivere il testo a destra del cursore.\",\"Inserisce il suggerimento e sovrascrive il testo a destra del cursore.\",\"Controlla se le parole vengono sovrascritte quando si accettano i completamenti. Tenere presente che questa opzione dipende dalle estensioni che accettano esplicitamente questa funzionalità.\",\"Controlla se le modifiche al testo impreviste durante l'accettazione dei completamenti devono essere evidenziate, ad esempio `insertMode` è `replace` ma il completamento supporta solo `insert`.\",\"Controlla se i suggerimenti di filtro e ordinamento valgono per piccoli errori di battitura\",\"Controlla se l'ordinamento privilegia le parole che appaiono più vicine al cursore.\",\"Controlla se condividere le selezioni dei suggerimenti memorizzati tra aree di lavoro e finestre (richiede `#editor.suggestSelection#`).\",\"Controlla se un frammento attivo previene i suggerimenti rapidi.\",\"Controlla se mostrare o nascondere le icone nei suggerimenti.\",\"Controlla il numero di suggerimenti mostrati da IntelliSense prima di visualizzare una barra di scorrimento (massimo 15).\",\"Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.suggest.showKeywords' o 'editor.suggest.showSnippets'.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `method`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `function`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constructor`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `field`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `variable`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `class`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `struct`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `interface`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `module`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `property`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `event`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `operator`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `unit`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `value`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constant`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enum`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enumMember`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `keyword`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `text`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `color`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `file`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `reference`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `customcolor`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `folder`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `typeParameter`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `snippet`.\",\"Controlla la visibilità della barra di stato nella parte inferiore del widget dei suggerimenti.\",\"Controlla se accettare i suggerimenti con i caratteri di commit. Ad esempio, in JavaScript il punto e virgola (';') può essere un carattere di commit che accetta un suggerimento e digita tale carattere.\",\"Accetta un suggerimento con 'Invio' solo quando si apporta una modifica al testo.\",\"Controlla se i suggerimenti devono essere accettati con 'INVIO' in aggiunta a 'TAB'. In questo modo è possibile evitare ambiguità tra l'inserimento di nuove righe e l'accettazione di suggerimenti.\",\"Controlla il numero di righe nell'editor che possono essere lette da un utilità per la lettura dello schermo. Avviso: questa opzione può influire sulle prestazioni se il numero di righe è superiore a quello predefinito.\",\"Contenuto editor\",\"Usa le configurazioni del linguaggio per determinare la chiusura automatica delle parentesi.\",\"Chiudi automaticamente le parentesi solo quando il cursore si trova alla sinistra di uno spazio vuoto.\",\"Controlla se l'editor deve chiudere automaticamente le parentesi quadre dopo che sono state aperte.\",\"Digita sopra le virgolette o le parentesi quadre di chiusura solo se sono state inserite automaticamente.\",\"Controlla se l'editor deve digitare su virgolette o parentesi quadre.\",\"Usa le configurazioni del linguaggio per determinare la chiusura automatica delle virgolette.\",\"Chiudi automaticamente le virgolette solo quando il cursore si trova alla sinistra di uno spazio vuoto.\",\"Controlla se l'editor deve chiudere automaticamente le citazioni dopo che sono state aperte.\",\"L'editor non inserirà automaticamente il rientro.\",\"L'editor manterrà il rientro della riga corrente.\",\"L'editor manterrà il rientro della riga corrente e rispetterà le parentesi definite dalla lingua.\",\"L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua e richiamerà le regole onEnterRules speciali definite dalle lingue.\",\"L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua, richiamerà le regole onEnterRules speciali definite dalle lingue e rispetterà le regole indentationRules definite dalle lingue.\",\"Controlla se l'editor deve regolare automaticamente il rientro quando gli utenti digitano, incollano, spostano le righe o applicano il rientro.\",\"Usa le configurazioni del linguaggio per determinare quando racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.\",\"Racchiude la selezione tra virgolette ma non tra parentesi quadre.\",\"Racchiude la selezione tra parentesi quadre ma non tra virgolette.\",\"Controlla se l'editor deve racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.\",\"Controlla se l'editor visualizza CodeLens.\",\"Controlla se l'editor deve eseguire il rendering della selezione colori e degli elementi Decorator di tipo colore inline.\",\"Controlla se l'evidenziazione della sintassi deve essere copiata negli Appunti.\",\"Controllo dello stile di animazione del cursore.\",\"Controlla se l'animazione del cursore con anti-aliasing deve essere abilitata.\",\"Controlla lo stile del cursore.\",\"Controlla il numero minimo di righe iniziali e finali visibili che circondano il cursore. Noto come `scrollOff` o `scrollOffset` in altri editor.\",\"`cursorSurroundingLines` viene applicato solo quando è attivato tramite la tastiera o l'API.\",\"`cursorSurroundingLines` viene sempre applicato.\",\"Controlla quando deve essere applicato `cursorSurroundingLines`.\",\"Controlla la larghezza del cursore quando `#editor.cursorStyle#` è impostato su `line`.\",\"Controlla se l'editor deve consentire lo spostamento di selezioni tramite trascinamento della selezione.\",\"Moltiplicatore della velocità di scorrimento quando si preme `Alt`.\",\"Controlla se per l'editor è abilitata la riduzione del codice.\",\"Controlla in che modo vengono calcolati gli intervalli di riduzione. Con `auto` viene usata la strategia di riduzione specifica della lingua. Con `indentation` viene usata forzatamente la strategia di riduzione basata sui rientri.\",\"Controlla se l'editor deve evidenziare gli intervalli con riduzione del codice.\",\"Controlla la famiglia di caratteri.\",\"Controlla lo spessore del carattere.\",\"Controlla se l'editor deve formattare automaticamente il contenuto incollato. Deve essere disponibile un formattatore che deve essere in grado di formattare un intervallo in un documento.\",\"Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione.\",\"Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.\",\"Controlla se il cursore deve essere nascosto nel righello delle annotazioni.\",\"Controlla se l'editor deve evidenziare la guida con rientro attiva\",\"Controlla la spaziatura tra le lettere in pixel.\",\"Controlla se l'editor deve individuare i collegamenti e renderli selezionabili.\",\"Evidenzia le parentesi graffe corrispondenti.\",\"Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse.\",\"Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto 'CTRL'.\",\"Unire i cursori multipli se sovrapposti.\",\"Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.\",\"Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.\",\"Modificatore da usare per aggiungere più cursori con il mouse. I gesti del mouse Vai alla definizione e Apri il collegamento si adatteranno in modo da non entrare in conflitto con il modificatore di selezione multipla. [Altre informazioni](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Ogni cursore incolla una singola riga del testo.\",\"Ogni cursore incolla il testo completo.\",\"Controlla l'operazione Incolla quando il conteggio delle righe del testo incollato corrisponde al conteggio dei cursori.\",\"Controlla se l'editor deve evidenziare le occorrenze di simboli semantici.\",\"Controlla se deve essere disegnato un bordo intorno al righello delle annotazioni.\",\"Sposta lo stato attivo sull'albero quando si apre l'anteprima\",\"Sposta lo stato attivo sull'editor quando si apre l'anteprima\",\"Controlla se spostare lo stato attivo sull'editor inline o sull'albero nel widget di anteprima.\",\"Controlla il ritardo in millisecondi dopo il quale verranno visualizzati i suggerimenti rapidi.\",\"Controlla se l'editor deve eseguire il rendering dei caratteri di controllo.\",\"Controlla se l'editor deve eseguire il rendering delle guide con rientro.\",\"Esegue il rendering dell'ultimo numero di riga quando il file termina con un carattere di nuova riga.\",\"Mette in evidenza sia la barra di navigazione sia la riga corrente.\",\"Controlla in che modo l'editor deve eseguire il rendering dell'evidenziazione di riga corrente.\",\"Render whitespace characters except for single spaces between words.\",\"Esegui il rendering dei caratteri di spazio vuoto solo nel testo selezionato.\",\"Controlla in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto.\",\"Controlla se le selezioni devono avere gli angoli arrotondati.\",\"Controlla il numero di caratteri aggiuntivi oltre i quali l'editor scorrerà orizzontalmente.\",\"Controlla se l'editor scorrerà oltre l'ultima riga.\",\"Controlla se gli appunti primari di Linux devono essere supportati.\",\"Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione.\",\"Controlla se i controlli di riduzione sul margine della barra di scorrimento sono automaticamente nascosti.\",\"Controllo dissolvenza del codice inutilizzato.\",\"Visualizza i suggerimenti del frammento prima degli altri suggerimenti.\",\"Visualizza i suggerimenti del frammento dopo gli altri suggerimenti.\",\"Visualizza i suggerimenti del frammento insieme agli altri suggerimenti.\",\"Non mostrare i suggerimenti del frammento.\",\"Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.\",\"Controlla se per lo scorrimento dell'editor verrà usata un'animazione.\",\"Dimensioni del carattere per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore di `#editor.fontSize#`.\",\"Altezza della riga per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore `editor.lineHeight#`.\",\"Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger.\",\"Consente di selezionare sempre il primo suggerimento.\",\"Consente di selezionare suggerimenti recenti a meno che continuando a digitare non ne venga selezionato uno, ad esempio `console.| -> console.log` perché `log` è stato completato di recente.\",\"Consente di selezionare i suggerimenti in base a prefissi precedenti che hanno completato tali suggerimenti, ad esempio `co -> console` e `con -> const`.\",\"Controlla la modalità di preselezione dei suggerimenti durante la visualizzazione dell'elenco dei suggerimenti.\",\"La funzionalità di completamento con tasto TAB inserirà il migliore suggerimento alla pressione del tasto TAB.\",\"Disabilita le funzionalità di completamento con tasto TAB.\",\"Completa i frammenti con il tasto TAB quando i rispettivi prefissi corrispondono. Funziona in modo ottimale quando 'quickSuggestions' non è abilitato.\",\"Abilità la funzionalità di completamento con tasto TAB.\",\"Inserimento ed eliminazione dello spazio vuoto dopo le tabulazioni.\",\"Caratteri che verranno usati come separatori di parola quando si eseguono operazioni o spostamenti correlati a parole.\",\"Il ritorno a capo automatico delle righe non viene mai applicato.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza del viewport.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza di `#editor.wordWrapColumn#`.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza minima del viewport e di `#editor.wordWrapColumn#`.\",\"Controlla il ritorno a capo automatico delle righe.\",\"Controlla la colonna per il ritorno a capo automatico dell'editor quando il valore di `#editor.wordWrap#` è `wordWrapColumn` o `bounded`.\",\"Nessun rientro. Le righe con ritorno a capo iniziano dalla colonna 1. \",\"Le righe con ritorno a capo hanno lo stesso rientro della riga padre.\",\"Le righe con ritorno a capo hanno un rientro di +1 rispetto alla riga padre.\",\"Le righe con ritorno a capo hanno un rientro di +2 rispetto alla riga padre.\",\"Controlla il rientro delle righe con ritorno a capo.\",\"Presuppone che la larghezza sia identica per tutti caratteri. Si tratta di un algoritmo veloce che funziona correttamente per i tipi di carattere a spaziatura fissa e determinati script (come i caratteri latini) in cui i glifi hanno larghezza identica.\",\"Delega il calcolo dei punti di ritorno a capo al browser. Si tratta di un algoritmo lento che potrebbe causare blocchi con file di grandi dimensioni, ma funziona correttamente in tutti gli altri casi.\",\"Controlla l'algoritmo che calcola i punti di ritorno a capo.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Testo normale\"],\n\"vs/editor/common/standaloneStrings\":[\"Nessuna selezione\",\"Riga {0}, colonna {1} ({2} selezionate)\",\"Riga {0}, colonna {1}\",\"{0} selezioni ({1} caratteri selezionati)\",\"{0} selezioni\",\"Modifica dell'impostazione `accessibilitySupport` in `on`.\",\"Apertura della pagina di documentazione sull'accessibilità dell'editor.\",\"in un riquadro di sola lettura di un editor diff.\",\"in un riquadro di un editor diff.\",\" in un editor di codice di sola lettura\",\" in un editor di codice\",\"Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere Comando+E.\",\"Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere CTRL+E.\",\"L'editor è configurato per essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"L'editor è configurato per non essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo, che non viene usata in questo momento.\",\"Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Per attivare/disattivare questo comportamento, premere {0}.\",\"Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.\",\"Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Per attivare/disattivare questo comportamento, premere {0}.\",\"Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.\",\"Premere Comando+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.\",\"Premere CTRL+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.\",\"Per chiudere questa descrizione comando e tornare all'editor, premere ESC o MAIUSC+ESC.\",\"Visualizza la Guida sull'accessibilità\",\"Sviluppatore: Controlla token\",\"Vai alla riga {0} e carattere {1}\",\"Vai alla riga {0}\",\"Digitare un numero di riga a cui passare compreso tra 1 e {0}\",\"Digitare un carattere compreso tra 1 e {0} a cui passare\",\"Riga corrente: {0}. Passa a riga {1}.\",\"Digitare un numero di riga, seguito da due punti facoltativi e da un numero di carattere a cui passare\",\"Vai alla riga...\",\"{0}, {1}, comandi\",\"{0}, comandi\",\"Digitare il nome di un'azione da eseguire\",\"Riquadro comandi\",\"{0}, simboli\",\"Digitare il nome di un identificatore a cui passare\",\"Vai al simbolo...\",\"simboli ({0})\",\"moduli ({0})\",\"classi ({0})\",\"interfacce ({0})\",\"metodi ({0})\",\"funzioni ({0})\",\"proprietà ({0})\",\"variabili ({0})\",\"variabili ({0})\",\"costruttori ({0})\",\"chiamate ({0})\",\"Contenuto editor\",\"Premere CTRL+F1 per le opzioni di accessibilità.\",\"Premere ALT+F1 per le opzioni di accessibilità.\",\"Attiva/disattiva tema a contrasto elevato\",\"Effettuate {0} modifiche in {1} file\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Colore di sfondo per l'evidenziazione della riga alla posizione del cursore.\",\"Colore di sfondo per il bordo intorno alla riga alla posizione del cursore.\",\"Colore di sfondo degli intervalli evidenziati, ad esempio dalle funzionalità Quick Open e Trova. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo del bordo intorno agli intervalli selezionati.\",\"Colore di sfondo del simbolo evidenziato, ad esempio per passare alla definizione o al simbolo successivo/precedente. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo del bordo intorno ai simboli selezionati.\",\"Colore del cursore dell'editor.\",\"Colore di sfondo del cursore editor. Permette di personalizzare il colore di un carattere quando sovrapposto da un blocco cursore.\",\"Colore dei caratteri di spazio vuoto nell'editor.\",\"Colore delle guide per i rientri dell'editor.\",\"Colore delle guide di indentazione dell'editor attivo\",\"Colore dei numeri di riga dell'editor.\",\"Colore del numero di riga attivo dell'editor\",\"Id è deprecato. In alternativa usare 'editorLineNumber.activeForeground'.\",\"Colore del numero di riga attivo dell'editor\",\"Colore dei righelli dell'editor.\",\"Colore primo piano delle finestre di CodeLens dell'editor\",\"Colore di sfondo delle parentesi corrispondenti\",\"Colore delle caselle di parentesi corrispondenti\",\"Colore del bordo del righello delle annotazioni.\",\"Colore di sfondo della barra di navigazione dell'editor. La barra contiene i margini di glifo e i numeri di riga.\",\"Colore del bordo del codice sorgente non necessario (non usato) nell'editor.\",\"Opacità del codice sorgente non necessario (non usato) nell'editor. Ad esempio, con \\\"#000000c0\\\" il rendering del codice verrà eseguito con il 75% di opacità. Per i temi a contrasto elevato, usare il colore del tema 'editorUnnecessaryCode.border' per sottolineare il codice non necessario invece di opacizzarlo.\",\"Colore del marcatore del righello delle annotazioni per gli errori.\",\"Colore del marcatore del righello delle annotazioni per gli avvisi.\",\"Colore del marcatore del righello delle annotazioni per i messaggi di tipo informativo.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Colore del marcatore del righello delle annotazioni per la corrispondenza delle parentesi.\",\"Vai alla parentesi quadra\",\"Seleziona fino alla parentesi\",\"Vai alla parentesi &&quadra\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Sposta il punto di inserimento a sinistra\",\"Sposta il punto di inserimento a destra\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Trasponi lettere\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Taglia\",\"&&Taglia\",\"Copia\",\"&&Copia\",\"Incolla\",\"&&Incolla\",\"Copia con evidenziazione sintassi\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Tipo dell'azione codice da eseguire.\",\"Controlla quando vengono applicate le azioni restituite.\",\"Applica sempre la prima azione codice restituita.\",\"Applica la prima azione codice restituita se è l'unica.\",\"Non applicare le azioni codice restituite.\",\"Controlla se devono essere restituite solo le azioni codice preferite.\",\"Si è verificato un errore sconosciuto durante l'applicazione dell'azione del codice\",\"Correzione rapida...\",\"Azioni codice non disponibili\",\"Non sono disponibili azioni codice preferite per '{0}'\",\"Non sono disponibili azioni codice per '{0}'\",\"Non sono disponibili azioni codice preferite\",\"Azioni codice non disponibili\",\"Effettua refactoring...\",\"Non sono disponibili refactoring preferiti per '{0}'\",\"Non sono disponibili refactoring per '{0}'\",\"Non sono disponibili refactoring preferiti\",\"Refactoring non disponibili\",\"Azione origine...\",\"Non sono disponibili azioni origine preferite per '{0}'\",\"Non sono disponibili azioni origine per '{0}'\",\"Non sono disponibili azioni origine preferite\",\"Azioni origine non disponibili\",\"Organizza import\",\"Azioni di organizzazione Imports non disponibili\",\"Correggi tutto\",\"Non è disponibile alcuna azione Correggi tutto\",\"Correzione automatica...\",\"Non sono disponibili correzioni automatiche\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Mostra correzioni. Correzione preferita disponibile ({0})\",\"Mostra correzioni ({0})\",\"Mostra correzioni\"],\"vs/editor/contrib/comment/comment\":[\"Attiva/disattiva commento per la riga\",\"Attiva/Disattiva commento per la &&riga\",\"Aggiungi commento per la riga\",\"Rimuovi commento per la riga\",\"Attiva/Disattiva commento per il blocco\",\"Attiva/Disattiva commento per il &&blocco\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Mostra il menu di scelta rapida editor\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursore - Annulla\",\"Cursore - Ripeti\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Colore primo piano per i simboli di matrice. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli booleani. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di classe. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di colore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di costante. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di costruttore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di membro di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di evento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di campo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di file. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di cartella. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di funzione. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di interfaccia. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di parola chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di metodo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di modulo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di spazio dei nomi. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli Null. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli numerici. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di oggetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di operatore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di pacchetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di proprietà. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di riferimento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di frammento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di stringa. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di struct. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di testo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di parametro di tipo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di unità. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di variabile. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\"],\n\"vs/editor/contrib/find/findController\":[\"Trova\",\"&&Trova\",\"Trova con selezione\",\"Trova successivo\",\"Trova successivo\",\"Trova precedente\",\"Trova precedente\",\"Trova selezione successiva\",\"Trova selezione precedente\",\"Sostituisci\",\"&&Sostituisci\"],\"vs/editor/contrib/find/findWidget\":[\"Trova\",\"Trova\",\"Corrispondenza precedente\",\"Corrispondenza successiva\",\"Trova nella selezione\",\"Chiudi\",\"Sostituisci\",\"Sostituisci\",\"Sostituisci\",\"Sostituisci tutto\",\"Attiva/Disattiva modalità sostituzione\",\"Solo i primi {0} risultati vengono evidenziati, ma tutte le operazioni di ricerca funzionano su tutto il testo.\",\"{0} di {1}\",\"Nessun risultato\",\"{0} trovato\",\"{0} trovato per {1}\",\"{0} trovato per {1} a riga {2}\",\"{0} trovato per {1}\",\"Il tasto di scelta rapida CTRL+INVIO ora consente di inserire l'interruzione di linea invece di sostituire tutto. Per eseguire l'override di questo comportamento, è possibile modificare il tasto di scelta rapida per editor.action.replaceAll.\"],\n\"vs/editor/contrib/folding/folding\":[\"Espandi\",\"Espandi in modo ricorsivo\",\"Riduci\",\"Attiva/Disattiva riduzione\",\"Riduci in modo ricorsivo\",\"Riduci tutti i blocchi commento\",\"Riduci tutte le regioni\",\"Espandi tutte le regioni\",\"Riduci tutto\",\"Espandi tutto\",\"Livello riduzione {0}\",\"Colore della selezione dell'editor.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Zoom avanti tipo di carattere editor\",\"Zoom indietro tipo di carattere editor\",\"Reimpostazione zoom tipo di carattere editor\"],\"vs/editor/contrib/format/format\":[\"È stata apportata 1 modifica di formattazione a riga {0}\",\"Sono state apportate {0} modifiche di formattazione a riga {1}\",\"È stata apportata 1 modifica di formattazione tra le righe {0} e {1}\",\"Sono state apportate {0} modifiche di formattazione tra le righe {1} e {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Formatta documento\",\"Formatta selezione\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Vai al problema successivo (Errore, Avviso, Informazioni)\",\"Vai al problema precedente (Errore, Avviso, Informazioni)\",\"Vai al problema successivo nei file (Errore, Avviso, Informazioni)\",\"Vai al problema precedente nei file (Errore, Avviso, Informazioni)\",\"&&Problema successivo\",\"&&Problema precedente\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} di {1} problemi\",\"{0} di {1} problema\",\"Colore per gli errori del widget di spostamento tra marcatori dell'editor.\",\"Colore per gli avvisi del widget di spostamento tra marcatori dell'editor.\",\"Colore delle informazioni del widget di navigazione marcatori dell'editor.\",\"Sfondo del widget di spostamento tra marcatori dell'editor.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Anteprima\",\"Definizioni\",\"Non è stata trovata alcuna definizione per '{0}'\",\"Non è stata trovata alcuna definizione\",\"Vai alla definizione\",\"Vai alla &&definizione\",\"Apri definizione lateralmente\",\"Visualizza la definizione\",\"Dichiarazioni\",\"Non è stata trovata alcuna dichiarazione per '{0}'\",\"Dichiarazione non trovata\",\"Vai a dichiarazione\",\"Vai a &&dichiarazione\",\"Non è stata trovata alcuna dichiarazione per '{0}'\",\"Dichiarazione non trovata\",\"Anteprima dichiarazione\",\"Definizioni di tipo\",\"Non sono state trovate definizioni di tipi per '{0}'\",\"Non sono state trovate definizioni di tipi\",\"Vai alla definizione di tipo\",\"Vai alla &&definizione di tipo\",\"Anteprima definizione di tipo\",\"Implementazioni\",\"Non sono state trovate implementazioni per '{0}'\",\"Non sono state trovate implementazioni\",\"Vai a implementazioni\",\"Vai a &&Implementazioni\",\"Visualizza implementazioni\",\"Non sono stati trovati riferimenti per '{0}'\",\"Non sono stati trovati riferimenti\",\"Vai a Riferimenti\",\"Vai a &&riferimenti\",\"Riferimenti\",\"Anteprima riferimenti\",\"Riferimenti\",\"Vai a qualsiasi simbolo\",\"Posizioni\",\"Non sono stati trovati risultati per '{0}'\",\"Riferimenti\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Fare clic per visualizzare {0} definizioni.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Caricamento...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Non è stato possibile risolvere il file.\",\"{0} riferimenti\",\"{0} riferimento\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"anteprima non disponibile\",\"Riferimenti\",\"Nessun risultato\",\"Riferimenti\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"simbolo in {0} alla riga {1} colonna {2}\",\"1 simbolo in {0}, percorso completo {1}\",\"{0} simboli in {1}, percorso completo {2}\",\"Non sono stati trovati risultati\",\"Trovato 1 simbolo in {0}\",\"Trovati {0} simboli in {1}\",\"Trovati {0} simboli in {1} file\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Simbolo {0} di {1}, {2} per il successivo\",\"Simbolo {0} di {1}\"],\"vs/editor/contrib/hover/hover\":[\"Visualizza passaggio del mouse\",\"Mostra anteprima definizione al passaggio del mouse\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Caricamento...\",\"Posiziona puntatore sul problema\",\"Verifica disponibilità correzioni rapide...\",\"Non sono disponibili correzioni rapide\",\"Correzione rapida...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Sostituisci con il valore precedente\",\"Sostituisci con il valore successivo\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copia la riga in alto\",\"&&Copia la riga in alto\",\"Copia la riga in basso\",\"Co&&pia la riga in basso\",\"Duplica selezione\",\"&&Duplica selezione\",\"Sposta la riga in alto\",\"Sposta la riga in &&alto\",\"Sposta la riga in basso\",\"Sposta la riga in &&basso\",\"Ordinamento righe crescente\",\"Ordinamento righe decrescente\",\"Taglia spazio vuoto finale\",\"Elimina riga\",\"Imposta un rientro per la riga\",\"Riduci il rientro per la riga\",\"Inserisci la riga sopra\",\"Inserisci la riga sotto\",\"Elimina tutto a sinistra\",\"Elimina tutto a destra\",\"Unisci righe\",\"Trasponi caratteri intorno al cursore\",\"Converti in maiuscolo\",\"Converti in minuscolo\",\"Trasforma in Tutte Iniziali Maiuscole\"],\n\"vs/editor/contrib/links/links\":[\"Esegui il comando\",\"Visita il collegamento\",\"CMD+clic\",\"CTRL+clic\",\"Opzione+clic\",\"ALT+clic\",\"Non è stato possibile aprire questo collegamento perché il formato non è valido: {0}\",\"Non è stato possibile aprire questo collegamento perché manca la destinazione.\",\"Apri il collegamento\"],\"vs/editor/contrib/message/messageController\":[\"Non è possibile modificare nell'editor di sola lettura\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Aggiungi cursore sopra\",\"&&Aggiungi cursore sopra\",\"Aggiungi cursore sotto\",\"A&&ggiungi cursore sotto\",\"Aggiungi cursori a fine riga\",\"Aggiungi c&&ursori a fine riga\",\"Aggiungi cursori alla fine\",\"Aggiungi cursori all'inizio\",\"Aggiungi selezione a risultato ricerca successivo\",\"Aggiungi &&occorrenza successiva\",\"Aggiungi selezione a risultato ricerca precedente\",\"Aggiungi occorrenza &&precedente\",\"Sposta ultima selezione a risultato ricerca successivo\",\"Sposta ultima selezione a risultato ricerca precedente\",\"Seleziona tutte le occorrenze del risultato ricerca\",\"Seleziona &&tutte le occorrenze\",\"Cambia tutte le occorrenze\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Attiva i suggerimenti per i parametri\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, suggerimento\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Chiudi\",\"Colore di sfondo dell'area del titolo della visualizzazione rapida.\",\"Colore del titolo della visualizzazione rapida.\",\"Colore delle informazioni del titolo della visualizzazione rapida.\",\"Colore dei bordi e della freccia della visualizzazione rapida.\",\"Colore di sfondo dell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano dei nodi riga nell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano dei nodi file nell'elenco risultati della visualizzazione rapida.\",\"Colore di sfondo della voce selezionata nell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano della voce selezionata nell'elenco risultati della visualizzazione rapida.\",\"Colore di sfondo dell'editor di visualizzazioni rapide.\",\"Colore di sfondo della barra di navigazione nell'editor visualizzazione rapida.\",\"Colore dell'evidenziazione delle corrispondenze nell'elenco risultati della visualizzazione rapida.\",\"Colore dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.\",\"Bordo dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.\"],\n\"vs/editor/contrib/rename/rename\":[\"Nessun risultato.\",\"Si è verificato un errore sconosciuto durante la risoluzione del percorso di ridenominazione\",\"Ridenominazione di '{0}'\",\"Correttamente rinominato '{0}' in '{1}'. Sommario: {2}\",\"La ridenominazione non è riuscita ad applicare le modifiche\",\"La ridenominazione non è riuscita a calcolare le modifiche\",\"Rinomina simbolo\",\"Abilita/Disabilita l'opzione per visualizzare le modifiche in anteprima prima della ridenominazione\"],\"vs/editor/contrib/rename/renameInputField\":[\"Consente di rinominare l'input. Digitare il nuovo nome e premere INVIO per eseguire il commit.\",\"{0} da rinominare, {1} da visualizzare in anteprima\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Espandi selezione\",\"Espan&&di selezione\",\"Riduci selezione\",\"&&Riduci selezione\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\",\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\",\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Mag\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\",\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],\"vs/editor/contrib/suggest/suggestController\":[\"In seguito all'accettazione di '{0}' sono state apportate altre {1} modifiche\",\"Attiva suggerimento\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Colore di sfondo del widget dei suggerimenti.\",\"Colore del bordo del widget dei suggerimenti.\",\"Colore primo piano del widget dei suggerimenti.\",\"Colore di sfondo della voce selezionata del widget dei suggerimenti.\",\"Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti.\",\"Altre informazioni...{0}\",\"Meno informazioni... {0}\",\"Caricamento...\",\"Caricamento...\",\"Non ci sono suggerimenti.\",\"{0} per meno...\",\"{0} per altro...\",\"Elemento {0}, documenti: {1}\",\"{0} per inserire, {1} per sostituire\",\"{0} da sostituire, {1} da inserire\",\"{0} per accettare\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Attiva/Disattiva l'uso di TAB per spostare lo stato attivo\",\"Se si preme TAB, lo stato attivo verrà spostato sull'elemento con stato attivabile successivo.\",\"Se si preme TAB, verrà inserito il carattere di tabulazione\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Sviluppatore: Forza retokenizzazione\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Colore di sfondo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile.\",\"Colore del bordo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli di accesso in scrittura. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Vai al prossimo simbolo evidenziato\",\"Vai al precedente simbolo evidenziato\",\"Attiva/disattiva evidenziazione simbolo\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Override configurazione predefinita\",\"Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.\",\"Questa impostazione non supporta la configurazione per lingua.\",\"Non è possibile registrare '{0}'. Corrisponde al criterio di proprietà '\\\\\\\\[.*\\\\\\\\]$' per la descrizione delle impostazioni dell'editor specifiche del linguaggio. Usare il contributo 'configurationDefaults'.\",\"Non è possibile registrare '{0}'. Questa proprietà è già registrata.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"È stato premuto ({0}). In attesa del secondo tasto...\",\"La combinazione di tasti ({0}, {1}) non è un comando.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.\",\"Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.\",\"Il modificatore da utilizzare per aggiungere un elemento di alberi e liste ad una selezione multipla con il mouse (ad esempio in Esplora Risorse, apre gli editor e le viste scm). Le gesture del mouse 'Apri a lato' - se supportate - si adatteranno in modo da non creare conflitti con il modificatore di selezione multipla.\",\"Controlla l'apertura degli elementi di alberi ed elenchi tramite il mouse (se supportato). Per i nodi con figli, questa impostazione ne controlla l'apertura tramite singolo o doppio clic. Si noti che alcuni alberi ed elenchi potrebbero scegliere di ignorare questa impostazione se non applicabile.\",\"Controlla se elenchi e alberi supportano lo scorrimento orizzontale in Workbench.\",\"Controlla se gli alberi supportano lo scorrimento orizzontale in Workbench.\",\"Questa impostazione è deprecata. In alternativa, usare '{0}'.\",\"Controlla il rientro dell'albero in pixel.\",\"Controlla se l'albero deve eseguire il rendering delle guide per i rientri.\",\"Con lo stile di spostamento da tastiera simple lo stato attivo si trova sugli elementi che corrispondono all'input da tastiera. L'abbinamento viene effettuato solo in base ai prefissi.\",\"Con lo stile di spostamento da tastiera highlight vengono evidenziati gli elementi corrispondenti all'input da tastiera. Spostandosi ulteriormente verso l'alto o verso il basso ci si sposterà solo negli elementi evidenziati.\",\"Con lo stile di spostamento da tastiera filter verranno filtrati e nascosti tutti gli elementi che non corrispondono all'input da tastiera.\",\"Controlla lo stile di spostamento da tastiera per elenchi e alberi nel workbench. Le opzioni sono: simple, highlight e filter.\",\"Controlla se gli spostamenti da tastiera per elenchi e alberi vengono attivati semplicemente premendo un tasto. Se è impostato su `false`, gli spostamenti da tastiera vengono attivati solo durante l'esecuzione del comando `list.toggleKeyboardNavigation`, al quale è possibile assegnare un tasto di scelta rapida.\"],\n\"vs/platform/markers/common/markers\":[\"Errore\",\"Avviso\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Colore primo piano generale. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Colore primo piano globale per i messaggi di errore. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Colore del bordo globale per gli elementi evidenziati. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Un bordo supplementare attorno agli elementi per contrastarli maggiormente rispetto agli altri.\",\"Un bordo supplementare intorno agli elementi attivi per contrastarli maggiormente rispetto agli altri.\",\"Colore primo piano dei link nel testo.\",\"Colore di sfondo per i blocchi di codice nel testo.\",\"Colore ombreggiatura dei widget, ad es. Trova/Sostituisci all'interno dell'editor.\",\"Sfondo della casella di input.\",\"Primo piano della casella di input.\",\"Bordo della casella di input.\",\"Colore del bordo di opzioni attivate nei campi di input.\",\"Colore di sfondo di opzioni attivate nei campi di input.\",\"Colore di sfondo di convalida dell'input di tipo Informazione.\",\"Colore primo piano di convalida dell'input di tipo Informazione.\",\"Colore del bordo della convalida dell'input di tipo Informazione.\",\"Colore di sfondo di convalida dell'input di tipo Avviso.\",\"Colore primo piano di convalida dell'input di tipo Avviso.\",\"Colore del bordo della convalida dell'input di tipo Avviso.\",\"Colore di sfondo di convalida dell'input di tipo Errore.\",\"Colore primo piano di convalida dell'input di tipo Errore.\",\"Colore del bordo della convalida dell'input di tipo Errore.\",\"Sfondo dell'elenco a discesa.\",\"Primo piano dell'elenco a discesa.\",\"Colore di selezione rapida per il raggruppamento delle etichette.\",\"Colore di selezione rapida per il raggruppamento dei bordi.\",\"Colore di sfondo del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati della ricerca.\",\"Colore primo piano del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.\",\"Ombra della barra di scorrimento per indicare lo scorrimento della visualizzazione.\",\"Colore di sfondo del cursore della barra di scorrimento.\",\"Colore di sfondo del cursore della barra di scorrimento al passaggio del mouse.\",\"Colore di sfondo del cursore della barra di scorrimento quando si fa clic con il mouse.\",\"Colore di sfondo dell'indicatore di stato che può essere mostrato per operazioni a esecuzione prolungata.\",\"Colore primo piano degli indicatori di errore nell'editor.\",\"Colore del bordo delle caselle di errore nell'editor.\",\"Colore primo piano degli indicatori di avviso nell'editor.\",\"Colore del bordo delle caselle di avviso nell'editor.\",\"Colore primo piano degli indicatori di informazioni nell'editor.\",\"Colore del bordo delle caselle informative nell'editor.\",\"Colore primo piano degli indicatori di suggerimento nell'editor.\",\"Colore del bordo delle caselle dei suggerimenti nell'editor.\",\"Colore di sfondo dell'editor.\",\"Colore primo piano predefinito dell'editor.\",\"Colore di sfondo dei widget dell'editor, ad esempio Trova/Sostituisci.\",\"Colore primo piano dei widget dell'editor, ad esempio Trova/Sostituisci.\",\"Colore del bordo dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo e se il colore non è sottoposto a override da un widget.\",\"Colore del bordo della barra di ridimensionamento dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo di ridimensionamento e se il colore non è sostituito da quello di un widget.\",\"Colore della selezione dell'editor.\",\"Colore del testo selezionato per il contrasto elevato.\",\"Colore della selezione in un editor inattivo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore delle aree con lo stesso contenuto della selezione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo delle regioni con lo stesso contenuto della selezione.\",\"Colore della corrispondenza di ricerca corrente.\",\"Colore degli altri risultati della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore dell'intervallo di limite della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo della corrispondenza della ricerca corrente.\",\"Colore del bordo delle altre corrispondenze della ricerca.\",\"Colore del bordo dell'intervallo che limita la ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Evidenziazione sotto la parola per cui è visualizzata un'area sensibile al passaggio del mouse. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore primo piano dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore del bordo dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore di sfondo della barra di stato sensibile al passaggio del mouse dell'editor.\",\"Colore dei collegamenti attivi.\",\"Colore usato per l'icona delle azioni con lampadina.\",\"Colore usato per l'icona delle azioni di correzione automatica con lampadina.\",\"Colore di sfondo per il testo che è stato inserito. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo per il testo che è stato rimosso. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del contorno del testo che è stato inserito.\",\"Colore del contorno del testo che è stato rimosso.\",\"Colore del bordo tra due editor di testo.\",\"Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, uno inattivo no.\",\"Sfondo dell'elenco/albero al passaggio del mouse sugli elementi.\",\"Primo piano dell'elenco/albero al passaggio del mouse sugli elementi.\",\"Sfondo dell'elenco/albero durante il trascinamento degli elementi selezionati.\",\"Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate durante la ricerca nell'Elenco/Struttura ad albero.\",\"Colore di sfondo del widget del filtro per tipo in elenchi e alberi.\",\"Colore del contorno del widget del filtro per tipo in elenchi e alberi.\",\"Colore del contorno del widget del filtro per tipo in elenchi e alberi quando non sono presenti corrispondenze.\",\"Colore del tratto dell'albero per le guide per i rientri.\",\"Colore del bordo del menu.\",\"Colore primo piano delle voci di menu.\",\"Colore di sfondo delle voci di menu.\",\"Colore primo piano della voce di menu selezionata nei menu.\",\"Colore di sfondo della voce di menu selezionata nei menu.\",\"Colore del bordo della voce di menu selezionata nei menu.\",\"Colore di un elemento separatore delle voci di menu.\",\"Colore di sfondo dell'evidenziazione della tabulazione di un frammento.\",\"Colore del bordo dell'evidenziazione della tabulazione di un frammento.\",\"Colore di sfondo dell'evidenziazione della tabulazione finale di un frammento.\",\"Colore del bordo dell'evidenziazione della tabulazione finale di un frammento.\",\"Colore del marcatore del righello delle annotazioni per la ricerca di corrispondenze. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni delle selezioni. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore della minimappa per la ricerca delle corrispondenze.\",\"Colore del marcatore della minimappa per la selezione dell'editor.\",\"Colore del marcatore della minimappa per gli errori.\",\"Colore del marcatore della minimappa per gli avvisi.\",\"Colore usato per l'icona di errore dei problemi.\",\"Colore usato per l'icona di avviso dei problemi.\",\"Colore usato per l'icona informazioni dei problemi.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.it.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.ja.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ja\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再発)\",\"{0} (発生 {1} 回目)\"],\"vs/base/browser/ui/findinput/findInput\":[\"入力\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"大文字と小文字を区別する\",\"単語単位で検索する\",\"正規表現を使用する\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"入力\",\"保持する\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"エラー: {0}\",\"警告: {0}\",\"情報: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"バインドなし\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}。移動キーを使用して移動します。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"クリア\",\"型のフィルターを無効にする\",\"型のフィルターを有効にする\",\"要素が見つかりません\",\"{1} 個の要素のうち {0} 個の要素が一致しました\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"コマンド\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"エラー\",\"警告\",\"情報\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}、選択\",\"選択\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"クイック選択。入力すると結果が絞り込まれます。\",\"クイック選択\",\"{0} 件の結果\"],\"vs/editor/browser/controller/coreCommands\":[\"すべて選択(&&S)\",\"元に戻す(&&U)\",\"やり直し(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"現在エディターにアクセスすることはできません。 Alt + F1 キーを押してオプションを選択します。\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"カーソルの数は {0} 個に制限されています。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"一方のファイルが大きすぎるため、ファイルを比較できません。\"],\"vs/editor/browser/widget/diffReview\":[\"閉じる\",\"行なし\",\"1 行\",\"{0} 行\",\"{1} の差異 {0}: 変更前 {2}, {3}, 変更後 {4}, {5}\",\"空白\",\"変更前の {0}、変更後の {1}: {2}\",\"+ 変更後の {0}: {1}\",\"- 変更前の {0}: {1}\",\"次の差分に移動\",\"前の差分に移動\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"削除された行のコピー\",\"削除された行のコピー\",\"削除された行のコピー ({0})\",\"この変更を元に戻す\",\"削除された行のコピー ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"エディター\",\"1 つのタブに相当するスペースの数。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。\",\"`Tab` キーを押すとスペースが挿入されます。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。\",\"ファイルがファイルの内容に基づいて開かれる場合、`#editor.tabSize#` と `#editor.insertSpaces#` を自動的に検出するかどうかを制御します。\",\"自動挿入された末尾の空白を削除します。\",\"大きなファイルでメモリが集中する特定の機能を無効にするための特別な処理。\",\"ドキュメント内の単語に基づいて入力候補を計算するかどうかを制御します。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"エディターのコンテンツをダブルクリックするか、`Escape` キーを押しても、ピーク エディターを開いたままにします。\",\"この長さを越える行は、パフォーマンス上の理由によりトークン化されません。\",\"差分計算が取り消された後のタイムアウト (ミリ秒単位)。タイムアウトなしには 0 を使用します。\",\"差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します。\",\"差分エディターが、先頭または末尾の空白の変更を差分として表示するかどうかを制御します。\",\"差分エディターが追加/削除された変更に +/- インジケーターを示すかどうかを制御します。\"],\n\"vs/editor/common/config/editorOptions\":[\"エディターはスクリーン リーダーがいつ接続されたかを検出するためにプラットフォーム API を使用します。\",\"エディターは永続的にスクリーン リーダー向けに最適化されます。\",\"エディターはスクリーン リーダー向けに最適化されません。\",\"エディターをスクリーン リーダーに最適化されたモードで実行するかどうかを制御します。\",\"コメント時に空白文字を挿入するかどうかを制御します。\",\"選択範囲を指定しないでコピーする場合に現在の行をコピーするかどうかを制御します。\",\"エディターの選択範囲から検索ウィジェット内の検索文字列を与えるかどうかを制御します。\",\"[選択範囲を検索] を自動的にオンにしない (既定)\",\"[選択範囲を検索] を常に自動的にオンにする\",\"複数行のコンテンツが選択されている場合は、自動的に [選択範囲を検索] をオンにします。\",\"エディターでの検索操作の実行対象を、選択したテキストとファイル全体のどちらにするかを制御します。\",\"macOS で検索ウィジェットが共有の検索クリップボードを読み取りまたは変更するかどうかを制御します。\",\"検索ウィジェットがエディターの上に行をさらに追加するかどうかを制御します。true の場合、検索ウィジェットが表示されているときに最初の行を超えてスクロールできます。\",\"フォントの合字を有効/無効にします。\",\"明示的なフォント機能設定。\",\"フォントの合字を構成します。\",\"フォント サイズ (ピクセル単位) を制御します。\",\"結果のピーク ビューを表示 (既定)\",\"主な結果に移動し、ピーク ビューを表示します\",\"プライマリ結果に移動し、他のユーザーへのピークレス ナビゲーションを有効にします\",\"この設定は非推奨です。代わりに、'editor.editor.gotoLocation.multipleDefinitions' や 'editor.editor.gotoLocation.multipleImplementations' などの個別の設定を使用してください。\",\"複数のターゲットの場所があるときの '定義へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '型定義へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '宣言へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '実装に移動' コマンドの動作を制御します。\",\"ターゲットの場所が複数存在する場合の '参照へ移動' コマンドの動作を制御します。\",\"'定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'型定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'宣言へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'実装へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'参照へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"ホバーを表示するかどうかを制御します。\",\"ホバーを表示後の待ち時間 (ミリ秒) を制御します。\",\"ホバーにマウスを移動したときに、ホバーを表示し続けるかどうかを制御します。\",\"エディターでコード アクションの電球を有効にします。\",\"行の高さを制御します。フォント サイズに基づいて行の高さを計算する場合には、0 を使用します。\",\"ミニマップを表示するかどうかを制御します。\",\"ミニマップを表示する場所を制御します。\",\"ミニマップ スライダーを表示するタイミングを制御します。\",\"ミニマップに描画されるコンテンツのスケール。\",\"行にカラー ブロックではなく実際の文字を表示します。\",\"表示するミニマップの最大幅を特定の列数に制限します。\",\"入力時にパラメーター ドキュメントと型情報を表示するポップアップを有効にします。\",\"パラメーター ヒント メニューを周回するか、リストの最後で閉じるかどうかを制御します。\",\"文字列内でクイック候補を有効にします。\",\"コメント内でクイック候補を有効にします。\",\"文字列およびコメント外でクイック候補を有効にします。\",\"入力中に候補を自動的に表示するかどうかを制御します。\",\"行番号は表示されません。\",\"行番号は、絶対値として表示されます。\",\"行番号は、カーソル位置までの行数として表示されます。\",\"行番号は 10 行ごとに表示されます。\",\"行番号の表示を制御します。\",\"特定の等幅文字数の後に垂直ルーラーを表示します。複数のルーラーには複数の値を使用します。配列が空の場合はルーラーを表示しません。\",\"カーソルの右のテキストを上書きせずに候補を挿入します。\",\"候補を挿入し、カーソルの右のテキストを上書きします。\",\"入力候補を受け入れるときに単語を上書きするかどうかを制御します。これは、この機能の利用を選択する拡張機能に依存することにご注意ください。\",\"入力候補を受け入れている間の予期しないテキストの変更を強調表示するかどうかを制御します。たとえば、`insertMode` は `replace` ですが、入力候補は `insert` のみをサポートしています。\",\"候補のフィルター処理と並び替えでささいな入力ミスを考慮するかどうかを制御します。\",\"並べ替えがカーソル付近に表示される単語を優先するかどうかを制御します。\",\"保存された候補セクションを複数のワークプレースとウィンドウで共有するかどうかを制御します (`#editor.suggestSelection#` が必要)。\",\"アクティブなスニペットがクイック候補を止めるかどうかを制御します。\",\"提案のアイコンを表示するか、非表示にするかを制御します。\",\"スクロール バーを表示する前に IntelliSense が表示する候補の数を制御します (最大 15 個)。\",\"この設定は非推奨です。代わりに、'editor.suggest.showKeywords' や 'editor.suggest.showSnippets' などの個別の設定を使用してください。\",\"有効にすると、IntelliSense に `メソッド` 候補が表示されます。\",\"有効にすると、IntelliSense に `関数` 候補が表示されます。\",\"有効にすると、IntelliSense に `コンストラクター` 候補が表示されます。\",\"有効にすると、IntelliSense に `フィールド` 候補が表示されます。\",\"有効にすると、IntelliSense に `変数` 候補が表示されます。\",\"有効にすると、IntelliSense に 'クラス' 候補が表示されます。\",\"有効にすると、IntelliSense に `構造体` 候補が表示されます。\",\"有効にすると、IntelliSense に `インターフェイス` 候補が表示されます。\",\"有効にすると、IntelliSense に `モジュール` 候補が表示されます。\",\"有効にすると、IntelliSense に `プロパティ` 候補が表示されます。\",\"有効にすると、IntelliSense に `イベント` 候補が表示されます。\",\"有効にすると、IntelliSense に `演算子` 候補が表示されます。\",\"有効にすると、IntelliSense に `ユニット` 候補が表示されます。\",\"有効にすると、IntelliSense に `値` 候補が表示されます。\",\"有効にすると、IntelliSense に `定数` 候補が表示されます。\",\"有効にすると、IntelliSense に `列挙型` 候補が表示されます。\",\"有効にすると、IntelliSense に `enumMember` 候補が表示されます。\",\"有効にすると、IntelliSense に `キーワード` 候補が表示されます。\",\"有効にすると、IntelliSense に 'テキスト' -候補が表示されます。\",\"有効にすると、IntelliSense に `色` 候補が表示されます。\",\"有効にすると、IntelliSense に 'ファイル' 候補が表示されます。\",\"有効にすると、IntelliSense に `参照` 候補が表示されます。\",\"有効にすると、IntelliSense に `customcolor` 候補が表示されます。\",\"有効にすると、IntelliSense に `フォルダー` 候補が表示されます。\",\"有効にすると、IntelliSense に `typeParameter` 候補が表示されます。\",\"有効にすると、IntelliSense に `スニペット` 候補が表示されます。\",\"候補ウィジェットの下部にあるステータス バーの表示を制御します。\",\"コミット文字で候補を受け入れるかどうかを制御します。たとえば、JavaScript ではセミコロン (`;`) をコミット文字にして、候補を受け入れてその文字を入力することができます。\",\"テキストの変更を行うとき、`Enter` を使用する場合にのみ候補を受け付けます。\",\"`Tab` キーに加えて `Enter` キーで候補を受け入れるかどうかを制御します。改行の挿入や候補の反映の間であいまいさを解消するのに役立ちます。\",\"スクリーン リーダーで読み上げることができるエディターの行数を制御します。警告: 既定値を上回る数を指定すると、パフォーマンスに影響を与えます。\",\"エディターのコンテンツ\",\"言語設定を使用して、いつかっこを自動クローズするか決定します。\",\"カーソルが空白文字の左にあるときだけ、かっこを自動クローズします。\",\"エディターで左角かっこを追加した後に自動的に右角かっこを挿入するかどうかを制御します。\",\"終わり引用符または括弧が自動的に挿入された場合にのみ、それらを上書きします。\",\"エディターで終わり引用符または括弧を上書きするかどうかを制御します。\",\"言語設定を使用して、いつ引用符を自動クローズするか決定します。\",\"カーソルが空白文字の左にあるときだけ、引用符を自動クローズします。\",\"ユーザーが開始引用符を追加した後、エディター自動的に引用符を閉じるかどうかを制御します。\",\"エディターはインデントを自動的に挿入しません。\",\"エディターは、現在の行のインデントを保持します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出し、言語で定義された indentationRules を優先します。\",\"ユーザーが行を入力、貼り付け、移動、またはインデントするときに、エディターでインデントを自動的に調整するかどうかを制御します。\",\"言語構成を使用して、選択範囲をいつ自動的に囲むかを判断します。\",\"角かっこではなく、引用符で囲みます。\",\"引用符ではなく、角かっこで囲みます。\",\"エディターが自動的に選択範囲を囲む必要があるかどうかを制御します。\",\"エディターで CodeLens を表示するかどうかを制御します。\",\"エディターでインライン カラー デコレーターと色の選択を表示する必要があるかどうかを制御します。\",\"構文ハイライトをクリップボードにコピーするかどうかを制御します。\",\"カーソルのアニメーション方式を制御します。\",\"滑らかなキャレットアニメーションを有効にするかどうかを制御します。\",\"カーソルのスタイルを制御します。\",\"カーソル前後の表示可能な先頭と末尾の行の最小数を制御します。他の一部のエディターでは 'scrollOff' または `scrollOffset` と呼ばれます。\",\"`cursorSurroundingLines` は、キーボードまたは API でトリガーされた場合にのみ強制されます。\",\"`cursorSurroundingLines` は常に適用されます。\",\"'カーソルの周囲の行' を適用するタイミングを制御します。\",\"`#editor.cursorStyle#` が `line` に設定されている場合、カーソルの幅を制御します。\",\"ドラッグ アンド ドロップによる選択範囲の移動をエディターが許可するかどうかを制御します。\",\"`Alt` を押すと、スクロール速度が倍増します。\",\"エディターでコードの折りたたみを有効にするかどうかを制御します。\",\"折りたたみ範囲の計算方式を制御します。`auto` は利用可能であれば言語固有の折りたたみ方式を使用します。`indentation` はインデントに基づく折りたたみ方式を使用します。\",\"エディターで折りたたまれた範囲を強調表示するかどうかをコントロールします。\",\"フォント ファミリを制御します。\",\"フォントの太さを制御します。\",\"貼り付けた内容がエディターにより自動的にフォーマットされるかどうかを制御します。フォーマッタを使用可能にする必要があります。また、フォーマッタがドキュメント内の範囲をフォーマットできなければなりません。\",\"エディターで入力後に自動的に行のフォーマットを行うかどうかを制御します。\",\"エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。\",\"概要ルーラーでカーソルを非表示にするかどうかを制御します。\",\"エディターでアクティブなインデントのガイドを強調表示するかどうかを制御します。\",\"文字間隔 (ピクセル単位) を制御します。\",\"エディターがリンクを検出してクリック可能な状態にするかどうかを制御します。\",\"対応するかっこを強調表示します。\",\"マウス ホイール スクロール イベントの `deltaX` と `deltaY` で使用される乗数。\",\"`Ctrl` キーを押しながらマウス ホイールを使用してエディターのフォントをズームします。\",\"複数のカーソルが重なっているときは、マージします。\",\"Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。\",\"Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。\",\"マウスを使用して複数のカーソルを追加するときに使用する修飾キーです。「定義に移動」や「リンクを開く」のマウス操作は、マルチカーソルの修飾キーと競合しないように適用されます。[詳細](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)\",\"カーソルごとにテキストを 1 行ずつ貼り付けます。\",\"各カーソルは全文を貼り付けます。\",\"貼り付けたテキストの行数がカーソル数と一致する場合の貼り付けを制御します。\",\"エディターでセマンティック シンボルの出現箇所を強調表示するかどうかを制御します。\",\"概要ルーラーの周囲に境界線が描画されるかどうかを制御します。\",\"ピークを開くときにツリーにフォーカスします\",\"ピークを開くときにエディターにフォーカスする\",\"ピーク ウィジェットのインライン エディターまたはツリーをフォーカスするかどうかを制御します。\",\"クイック候補が表示されるまでのミリ秒を制御します。\",\"エディターで制御文字を表示するかどうかを制御します。\",\"エディターでインデント ガイドを表示するかどうかを制御します。\",\"ファイルの末尾が改行の場合は、最後の行番号を表示します。\",\"余白と現在の行を強調表示します。\",\"エディターが現在の行をどのように強調表示するかを制御します。\",\"Render whitespace characters except for single spaces between words.\",\"選択したテキストにのみ空白文字を表示します。\",\"エディターで空白文字を表示するかどうかを制御します。\",\"選択範囲の角を丸くするかどうかを制御します。\",\"エディターが水平方向に余分にスクロールする文字数を制御します。\",\"エディターが最後の行を越えてスクロールするかどうかを制御します。\",\"Linux の PRIMARY クリップボードをサポートするかどうかを制御します。\",\"エディターが選択項目と類似の一致項目を強調表示するかどうかを制御します。\",\"余白上の折りたたみコントロールを自動的に非表示にするかどうかを制御します。\",\"使用されていないコードのフェードアウトを制御します。\",\"他の候補の上にスニペットの候補を表示します。\",\"他の候補の下にスニペットの候補を表示します。\",\"他の候補と一緒にスニペットの候補を表示します。\",\"スニペットの候補を表示しません。\",\"他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。\",\"アニメーションでエディターをスクロールするかどうかを制御します。\",\"候補ウィジェットのフォント サイズ。`0` に設定すると、`#editor.fontSize#` の値が使用されます。\",\"候補ウィジェットの行の高さ。`0` に設定すると、`#editor.lineHeight#` の値が使用されます。\",\"トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します。\",\"常に最初の候補を選択します。\",\"`console.| -> console.log` などと選択対象に関して入力しない限りは、最近の候補を選択します。`log` は最近完了したためです。\",\"これらの候補を完了した以前のプレフィックスに基づいて候補を選択します。例: `co -> console` および `con -> const`。\",\"候補リストを表示するときに候補を事前に選択する方法を制御します。\",\"タブ補完は、tab キーを押したときに最適な候補を挿入します。\",\"タブ補完を無効にします。\",\"プレフィックスが一致する場合に、タブでスニペットを補完します。'quickSuggestions' が無効な場合に最適です。\",\"タブ補完を有効にします。\",\"空白の挿入や削除はタブ位置に従って行われます。\",\"単語に関連したナビゲーションまたは操作を実行するときに、単語の区切り文字として使用される文字。\",\"行を折り返しません。\",\"行をビューポートの幅で折り返します。\",\"`#editor.wordWrapColumn#` で行を折り返します。\",\"ビューポートと `#editor.wordWrapColumn#` の最小値で行を折り返します。\",\"行の折り返し方法を制御します。\",\"`#editor.wordWrap#` が `wordWrapColumn` または `bounded` の場合に、エディターの折り返し桁を制御します。\",\"インデントしません。 折り返し行は列 1 から始まります。\",\"折り返し行は、親と同じインデントになります。\",\"折り返し行は、親 +1 のインデントになります。\",\"折り返し行は、親 +2 のインデントになります。\",\"折り返し行のインデントを制御します。\",\"すべての文字の幅が同じであると仮定します。これは、モノスペース フォントや、グリフの幅が等しい特定のスクリプト (ラテン文字など) で正しく動作する高速アルゴリズムです。\",\"折り返しポイントの計算をブラウザーにデリゲートします。これは、大きなファイルのフリーズを引き起こす可能性があるものの、すべてのケースで正しく動作する低速なアルゴリズムです。\",\"折り返しポイントを計算するアルゴリズムを制御します。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"プレーンテキスト\"],\n\"vs/editor/common/standaloneStrings\":[\"選択されていません\",\"行 {0}、列 {1} ({2} 個選択済み)\",\"行 {0}、列 {1}\",\"{0} 個の選択項目 ({1} 文字を選択)\",\"{0} 個の選択項目\",\"`accessibilitySupport` 設定を 'on' に変更しています。\",\"エディターのアクセシビリティに関連するドキュメント ページを開いています。\",\"差分エディターの読み取り専用ウィンドウ内。\",\"差分エディターのウィンドウ内。\",\"読み取り専用コード エディター内\",\"コード エディター内\",\"エディターを構成してスクリーン エディターで使用するように最適化するには、Command+E を押してください。\",\"エディターを構成してスクリーン リーダーで使用するように最適化するには、Control+E を押します。\",\"エディターは、スクリーン リーダーで使用するよう最適化されるように構成されています。\",\"エディターは、スクリーン リーダーで使用するよう最適化されないように構成されていますが、現時点でこの設定は当てはまりません。\",\"現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。{0} を押すと、この動作が切り替わります。\",\"現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。コマンド {0} は、キー バインドでは現在トリガーできません。\",\"現在のエディターで Tab キーを押すと、タブ文字が挿入されます。{0} を押すと、この動作が切り替わります。\",\"現在のエディターで Tab キーを押すと、タブ文字が挿入されます。コマンド {0} は、キー バインドでは現在トリガーできません。\",\"エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Command+H を押してください。\",\"エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Control+H を押してください。\",\"Esc キー か Shift+Esc を押すと、ヒントを消してエディターに戻ることができます。\",\"アクセシビリティのヘルプを表示します\",\"開発者: トークンの検査\",\"行 {0} 文字 {1} へ移動\",\"行 {0} へ移動\",\"移動先の行番号を 1 ～ {0} の範囲で入力してください\",\"移動先を 1 から {0} までの文字で入力\",\"現在の行: {0}。 {1} 行目に移動。\",\"移動先の行番号と、必要な場合はその後にコロンと文字番号を入力してください\",\"指定行へ移動...\",\"{0}、{1}、コマンド\",\"{0}、コマンド\",\"実行するアクションの名前を入力\",\"コマンド パレット\",\"{0}、シンボル\",\"移動先の識別子の名前を入力します\",\"シンボルに移動...\",\"シンボル ({0})\",\"モジュール ({0})\",\"クラス ({0})\",\"インターフェイス ({0})\",\"メソッド ({0})\",\"関数 ({0})\",\"プロパティ ({0})\",\"変数 ({0})\",\"変数 ({0})\",\"コンストラクター ({0})\",\"({0}) を呼び出す\",\"エディターのコンテンツ\",\"アクセシビリティ オプションを表示するには Ctrl+F1 を押します。\",\"アクティビティ オプションを表示するには、Alt+F1 キーを押します。\",\"ハイ コントラスト テーマの切り替え\",\"{1} 個のファイルに {0} 個の編集が行われました\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"カーソル位置の行を強調表示する背景色。\",\"カーソル位置の行の境界線を強調表示する背景色。\",\"(Quick Open や検出機能などにより) 強調表示されている範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"強調表示された範囲の境界線の背景色。\",\"強調表示された記号の背景色 (定義へ移動、次または前の記号へ移動など)。基になる装飾が覆われないようにするため、色を不透明にすることはできません。\",\"強調表示された記号の周りの境界線の背景色。\",\"エディターのカーソルの色。\",\"選択された文字列の背景色です。選択された文字列の背景色をカスタマイズ出来ます。\",\"エディターのスペース文字の色。\",\"エディター インデント ガイドの色。\",\"アクティブなエディターのインデント ガイドの色。\",\"エディターの行番号の色。\",\"エディターのアクティブ行番号の色\",\"id は使用しないでください。代わりに 'EditorLineNumber.activeForeground' を使用してください。\",\"エディターのアクティブ行番号の色\",\"エディター ルーラーの色。\",\"CodeLens エディターの前景色。\",\"一致するかっこの背景色\",\"一致するかっこ内のボックスの色\",\"概要ルーラーの境界色。\",\"エディターの余白の背景色。余白にはグリフ マージンと行番号が含まれます。\",\"エディターでの不要な (未使用の) ソース コードの罫線の色。\",\"エディター内の不要な (未使用の) ソース コードの不透明度。たとえば、\\\"#000000c0\\\" は不透明度 75% でコードを表示します。ハイ コントラストのテーマの場合、'editorUnnecessaryCode.border' テーマ色を使用して、不要なコードをフェードアウトするのではなく下線を付けます。\",\"エラーを示す概要ルーラーのマーカー色。\",\"警告を示す概要ルーラーのマーカー色。\",\"情報を示す概要ルーラーのマーカー色。\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"一致するブラケットを示す概要ルーラーのマーカー色。\",\"ブラケットへ移動\",\"ブラケットに選択\",\"ブラケットに移動(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"キャレットを左に移動\",\"キャレットを右に移動\"],\"vs/editor/contrib/caretOperations/transpose\":[\"文字の入れ替え\"],\"vs/editor/contrib/clipboard/clipboard\":[\"切り取り\",\"切り取り(&&T)\",\"コピー\",\"コピー(&&C)\",\"貼り付け\",\"貼り付け(&&P)\",\"構文を強調表示してコピー\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"実行するコード アクションの種類。\",\"返されたアクションが適用されるタイミングを制御します。\",\"最初に返されたコード アクションを常に適用します。\",\"最初に返されたコード アクション以外に返されたコード アクションがない場合は、そのアクションを適用します。\",\"返されたコード アクションは適用しないでください。\",\"優先コード アクションのみを返すかどうかを制御します。\",\"コード アクションの適用中に不明なエラーが発生しました\",\"クイック フィックス...\",\"利用可能なコード アクションはありません\",\"'{0}' に対して使用できる優先コード アクションがありません\",\"{0}' に対して使用できるコード アクションがありません\",\"使用できる優先コード アクションがありません\",\"利用可能なコード アクションはありません\",\"リファクター...\",\"'{0}' に対して使用できる優先リファクタリングがありません\",\"'{0}' に対して使用できるリファクタリングがありません\",\"使用できる優先リファクタリングがありません\",\"利用可能なリファクタリングはありません\",\"ソース アクション...\",\"'{0}' に対して使用できる優先ソース アクションがありません\",\"'{0}' に対して使用できるソース アクションがありません\",\"使用できる優先ソース アクションがありません\",\"利用可能なソース アクションはありません\",\"インポートを整理\",\"利用可能なインポートの整理アクションはありません\",\"すべて修正\",\"すべてを修正するアクションは利用できません\",\"自動修正...\",\"利用可能な自動修正はありません\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"修正プログラムを表示します。推奨される利用可能な修正プログラム ({0})\",\"修正プログラム ({0}) を表示する\",\"修正プログラムを表示する\"],\n\"vs/editor/contrib/comment/comment\":[\"行コメントの切り替え\",\"行コメントの切り替え(&&T)\",\"行コメントの追加\",\"行コメントの削除\",\"ブロック コメントの切り替え\",\"ブロック コメントの切り替え(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"エディターのコンテキスト メニューの表示\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"カーソルを元に戻す\",\"カーソルのやり直し\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"配列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"ブール値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"クラス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"色記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"定数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"コンストラクター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"列挙子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"列挙子メンバー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"イベント記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"フィールド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"ファイル記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"フォルダー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"関数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"インターフェイス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"キー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"キーワード記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"メソッド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"モジュール記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"名前空間記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"Null 記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"数値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"オブジェクト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"演算子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"パッケージ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"プロパティ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"参照記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"スニペット記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"文字列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"構造体記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"テキスト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"パラメーター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"単位記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"変数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\"],\n\"vs/editor/contrib/find/findController\":[\"検索\",\"検索(&&F)\",\"選択範囲で検索\",\"次を検索\",\"次を検索\",\"前を検索\",\"前を検索\",\"次の選択項目を検索\",\"前の選択項目を検索\",\"置換\",\"置換(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"検索\",\"検索\",\"前の検索結果\",\"次の一致項目\",\"選択範囲を検索\",\"閉じる\",\"置換\",\"置換\",\"置換\",\"すべて置換\",\"置換モードの切り替え\",\"最初の {0} 件の結果だけが強調表示されますが、すべての検索操作はテキスト全体で機能します。\",\"{0} / {1} 件\",\"結果はありません。\",\"{0} が見つかりました\",\"{0} が {1} で見つかりました\",\"{0} が {2} に {1} で見つかりました\",\"{0} が {1} で見つかりました\",\"Ctrl + Enter キーを押すと、すべて置換するのではなく、改行が挿入されるようになりました。editor.action.replaceAll のキーバインドを変更して、この動作をオーバーライドできます。\"],\"vs/editor/contrib/folding/folding\":[\"展開\",\"再帰的に展開する\",\"折りたたみ\",\"折りたたみの切り替え\",\"再帰的に折りたたむ\",\"すべてのブロック コメントの折りたたみ\",\"すべての領域を折りたたむ\",\"すべての領域を展開\",\"すべて折りたたみ\",\"すべて展開\",\"レベル {0} で折りたたむ\",\"エディターの選択範囲の色。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"エディターのフォントを拡大\",\"エディターのフォントを縮小\",\"エディターのフォントのズームをリセット\"],\"vs/editor/contrib/format/format\":[\"行 {0} で 1 つの書式設定を編集\",\"行 {1} で {0} 個の書式設定を編集\",\"行 {0} と {1} の間で 1 つの書式設定を編集\",\"行 {1} と {2} の間で {0} 個の書式設定を編集\"],\"vs/editor/contrib/format/formatActions\":[\"ドキュメントのフォーマット\",\"選択範囲のフォーマット\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"次の問題 (エラー、警告、情報) へ移動\",\"前の問題 (エラー、警告、情報) へ移動\",\"ファイル内の次の問題 (エラー、警告、情報) へ移動\",\"ファイル内の前の問題 (エラー、警告、情報) へ移動\",\"次の問題箇所(&&P)\",\"前の問題箇所(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{1} 件中 {0} 件の問題\",\"問題 {0} / {1}\",\"エディターのマーカー ナビゲーション ウィジェットのエラーの色。\",\"エディターのマーカー ナビゲーション ウィジェットの警告の色。\",\"エディターのマーカー ナビゲーション ウィジェットの情報の色。\",\"エディターのマーカー ナビゲーション ウィジェットの背景。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"ピーク\",\"定義\",\"'{0}' の定義は見つかりません\",\"定義が見つかりません\",\"定義へ移動\",\"定義に移動(&&D)\",\"定義を横に開く\",\"定義をここに表示\",\"宣言\",\"'{0}' の宣言が見つかりません\",\"宣言が見つかりません\",\"宣言へ移動\",\"宣言へ移動(&&D)\",\"'{0}' の宣言が見つかりません\",\"宣言が見つかりません\",\"宣言をここに表示\",\"型定義\",\"'{0}' の型定義が見つかりません\",\"型定義が見つかりません\",\"型定義へ移動\",\"型定義に移動(&&T)\",\"型定義を表示\",\"実装\",\"'{0}' の実装が見つかりません\",\"実装が見つかりません\",\"実装へ移動\",\"実装箇所に移動\",\"実装のピーク\",\"'{0}' の参照が見つかりません\",\"参照が見つかりません\",\"参照へ移動\",\"参照へ移動(&&R)\",\"参照設定\",\"参照をここに表示\",\"参照設定\",\"任意の記号へ移動\",\"場所\",\"'{0}' の結果がありません\",\"参照設定\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"クリックして、{0} の定義を表示します。\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"読み込んでいます...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"ファイルを解決できませんでした。\",\"{0} 個の参照\",\"{0} 個の参照\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"プレビューを表示できません\",\"参照設定\",\"結果はありません。\",\"参照設定\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"列 {2} の {1} 行目に {0} つのシンボル\",\"{0} に 1 個のシンボル、完全なパス {1}\",\"{1} に {0} 個のシンボル、完全なパス {2}\",\"一致する項目はありません\",\"{0} に 1 個のシンボルが見つかりました\",\"{1} に {0} 個のシンボルが見つかりました\",\"{1} 個のファイルに {0} 個のシンボルが見つかりました\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} のシンボル {0}、次に {2}\",\"シンボル {0}/{1}\"],\"vs/editor/contrib/hover/hover\":[\"ホバーの表示\",\"定義プレビューのホバーを表示する\"],\"vs/editor/contrib/hover/modesContentHover\":[\"読み込んでいます...\",\"問題を表示\",\"クイックフィックスを確認しています...\",\"利用できるクイックフィックスはありません\",\"クイック フィックス...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"前の値に置換\",\"次の値に置換\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"行を上へコピー\",\"行を上へコピー(&&C)\",\"行を下へコピー\",\"行を下へコピー(&&P)\",\"選択範囲の複製\",\"選択範囲の複製(&&D)\",\"行を上へ移動\",\"行を上へ移動(&&V)\",\"行を下へ移動\",\"行を下へ移動(&&L)\",\"行を昇順に並べ替え\",\"行を降順に並べ替え\",\"末尾の空白のトリミング\",\"行の削除\",\"行のインデント\",\"行のインデント解除\",\"行を上に挿入\",\"行を下に挿入\",\"左側をすべて削除\",\"右側をすべて削除\",\"行をつなげる\",\"カーソルの周囲の文字を入れ替える\",\"大文字に変換\",\"小文字に変換\",\"先頭文字を大文字に変換する\"],\"vs/editor/contrib/links/links\":[\"コマンドの実行\",\"リンク先を表示\",\"cmd + クリック\",\"ctrl + クリック\",\"option + クリック\",\"alt + クリック\",\"このリンクは形式が正しくないため開くことができませんでした: {0}\",\"このリンクはターゲットが存在しないため開くことができませんでした。\",\"リンクを開く\"],\"vs/editor/contrib/message/messageController\":[\"読み取り専用のエディターは編集できません\"],\"vs/editor/contrib/multicursor/multicursor\":[\"カーソルを上に挿入\",\"カーソルを上に挿入(&&A)\",\"カーソルを下に挿入\",\"カーソルを下に挿入(&&D)\",\"カーソルを行末に挿入\",\"カーソルを行末に挿入(&&U)\",\"カーソルを下に挿入\",\"カーソルを上に挿入\",\"選択した項目を次の一致項目に追加\",\"次の出現個所を追加(&&N)\",\"選択項目を次の一致項目に追加\",\"前の出現箇所を追加(&&R)\",\"最後に選択した項目を次の一致項目に移動\",\"最後に選んだ項目を前の一致項目に移動する\",\"一致するすべての出現箇所を選択します\",\"すべての出現箇所を選択(&&O)\",\"すべての出現箇所を変更\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"パラメーター ヒントをトリガー\"],\n\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}、ヒント\"],\"vs/editor/contrib/peekView/peekView\":[\"閉じる\",\"ピーク ビューのタイトル領域の背景色。\",\"ピーク ビュー タイトルの色。\",\"ピーク ビューのタイトル情報の色。\",\"ピーク ビューの境界と矢印の色。\",\"ピーク ビュー結果リストの背景色。\",\"ピーク ビュー結果リストのライン ノードの前景色。\",\"ピーク ビュー結果リストのファイル ノードの前景色。\",\"ピーク ビュー結果リストの選択済みエントリの背景色。\",\"ピーク ビュー結果リストの選択済みエントリの前景色。\",\"ピーク ビュー エディターの背景色。\",\"ピーク ビュー エディターの余白の背景色。\",\"ピーク ビュー結果リストの一致した強調表示色。\",\"ピーク ビュー エディターの一致した強調表示色。\",\"ピーク ビュー エディターの一致した強調境界色。\"],\"vs/editor/contrib/rename/rename\":[\"結果がありません。\",\"名前変更の場所を解決しようとして不明なエラーが発生しました\",\"'{0}' の名前を変更しています\",\"'{0}' から '{1}' への名前変更が正常に完了しました。概要: {2}\",\"名前の変更で編集を適用できませんでした\",\"名前の変更によって編集の計算に失敗しました\",\"シンボルの名前変更\",\"名前を変更する前に変更をプレビューする機能を有効または無効にする\"],\"vs/editor/contrib/rename/renameInputField\":[\"名前変更入力。新しい名前を入力し、Enter キーを押してコミットしてください。\",\"名前変更用の {0}、プレビュー用の {1}\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"選択範囲を拡張\",\"選択範囲の展開(&&E)\",\"選択範囲を縮小\",\"選択範囲の縮小(&&S)\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\",\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\",\"1 月\",\"2 月\",\"3 月\",\"4 月\",\"5 月\",\"6 月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\",\"1 月\",\"2 月\",\"3 月\",\"4 月\",\"5 月\",\"6 月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\"],\"vs/editor/contrib/suggest/suggestController\":[\"{1} が追加編集した '{0}' を受け入れる\",\"候補をトリガー\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"候補のウィジェットの背景色。\",\"候補ウィジェットの境界線色。\",\"候補ウィジェットの前景色。\",\"候補ウィジェット内で選択済みエントリの背景色。\",\"候補のウィジェット内で一致したハイライトの色。\",\"詳細を表示...{0}\",\"詳細を隠す...{0}\",\"読み込んでいます...\",\"読み込んでいます...\",\"候補はありません。\",\"さらに少なくするには {0}...\",\"さらに多くするには {0}...\",\"アイテム {0}、ドキュメント: {1}\",\"挿入する {0}、置き換える {1}\",\"置換する {0}、挿入する {1}\",\"受け入れる {0}\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Tab キーを切り替えるとフォーカスが移動します\",\"Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します\",\"Tab キーを押すと、タブ文字が挿入されます\"],\"vs/editor/contrib/tokenization/tokenization\":[\"開発者: トークン再作成の強制\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"変数の読み取りなど、読み取りアクセス中のシンボルの背景色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"変数への書き込みなど、書き込みアクセス中のシンボル背景色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"変数の読み取りなど読み取りアクセス中のシンボルの境界線の色。\",\"変数への書き込みなど書き込みアクセス中のシンボルの境界線の色。\",\"シンボルによって強調表示される概要ルーラーのマーカーの色。マーカーの色は、基になる装飾を隠さないように不透明以外にします。\",\"書き込みアクセス シンボルを強調表示する概要ルーラーのマーカー色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"次のシンボル ハイライトに移動\",\"前のシンボル ハイライトに移動\",\"シンボル ハイライトをトリガー\"],\"vs/platform/configuration/common/configurationRegistry\":[\"既定の構成オーバーライド\",\"言語に対して上書きされるエディター設定を構成します。\",\"この設定では、言語ごとの構成はサポートされていません。\",\"'{0}' を登録できません。これは、言語固有のエディター設定を記述するプロパティ パターン '\\\\\\\\[.*\\\\\\\\]$' に一致しています。'configurationDefaults' コントリビューションを使用してください。\",\"'{0}' を登録できません。このプロパティは既に登録されています。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) が押されました。2 番目のキーを待っています...\",\"キーの組み合わせ ({0}、{1}) はコマンドではありません。\"],\n\"vs/platform/list/browser/listService\":[\"ワークベンチ\",\"Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。\",\"Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。\",\"マウスを使用して項目を複数選択するときに使用する修飾キーです (たとえば、エクスプローラーでエディターと scm ビューを開くなど)。'横に並べて開く' マウス ジェスチャー (がサポートされている場合) は、複数選択の修飾キーと競合しないように調整されます。\",\"マウスを使用して、ツリー リスト内の項目を開く方法を制御します (サポートされている場合)。ツリー内の子を持つ親項目で、この設定は親項目をシングル クリックで展開するか、ダブル クリックで展開するかどうかを制御します。この設定の選択 (適応するかどうか) を無視するツリー リストがあることに注意してください。\",\"リストやツリーがワークベンチの水平スクロールをサポートするかどうかを制御します。\",\"ワークベンチでツリーが水平スクロールをサポートするかどうかを制御します。\",\"この設定は推奨されていません。代わりに '{0}' を使用してください。\",\"ツリーのインデントをピクセル単位で制御します。\",\"ツリーでインシデントのガイドを表示する必要があるかどうかを制御します。\",\"簡単なキーボード ナビゲーションは、キーボード入力に一致する要素に焦点を当てます。一致処理はプレフィックスでのみ実行されます。\",\"キーボード ナビゲーションの強調表示を使用すると、キーボード入力に一致する要素が強調表示されます。上および下への移動は、強調表示されている要素のみを移動します。\",\"キーボード ナビゲーションのフィルターでは、キーボード入力に一致しないすべての要素がフィルター処理され、非表示になります。\",\"ワークベンチのリストおよびツリーのキーボード ナビゲーション スタイルを制御します。単純、強調表示、フィルターを指定できます。\",\"リストやツリーでのキーボード ナビゲーションを、単に入力するだけで自動的にトリガーするかどうかを制御します。`false` に設定した場合、キーボード ナビゲーションは `list.toggleKeyboardNavigation` コマンドを実行したときにのみトリガーされます。これに対してキーボード ショートカットを割り当てることができます。\"],\n\"vs/platform/markers/common/markers\":[\"エラー\",\"警告\",\"情報\"],\n\"vs/platform/theme/common/colorRegistry\":[\"全体の前景色。この色は、コンポーネントによってオーバーライドされていない場合にのみ使用されます。\",\"エラー メッセージ全体の前景色。この色は、コンポーネントによって上書きされていない場合にのみ使用されます。\",\"フォーカスされた要素の境界線全体の色。この色はコンポーネントによって上書きされていない場合にのみ使用されます。\",\"コントラストを強めるために、他の要素と隔てる追加の境界線。\",\"コントラストを強めるために、アクティブな他要素と隔てる追加の境界線。\",\"テキスト内のリンクの前景色。\",\"テキスト内のコード ブロックの背景色。\",\"エディター内の検索/置換窓など、エディター ウィジェットの影の色。\",\"入力ボックスの背景。\",\"入力ボックスの前景。\",\"入力ボックスの境界線。\",\"入力フィールドのアクティブ オプションの境界線の色。\",\"入力フィールドでアクティブ化されたオプションの背景色。\",\"情報の重大度を示す入力検証の背景色。\",\"情報の重大度を示す入力検証の前景色。\",\"情報の重大度を示す入力検証の境界線色。\",\"警告の重大度を示す入力検証の背景色。\",\"警告の重大度を示す入力検証の前景色。\",\"警告の重大度を示す入力検証の境界線色。\",\"エラーの重大度を示す入力検証の背景色。\",\"エラーの重大度を示す入力検証の前景色。\",\"エラーの重大度を示す入力検証の境界線色。\",\"ドロップダウンの背景。\",\"ドロップダウンの前景。\",\"ラベルをグループ化するためのクリック選択の色。\",\"境界線をグループ化するためのクイック選択の色。\",\"バッジの背景色。バッジとは小さな情報ラベルのことです。例:検索結果の数\",\"バッジの前景色。バッジとは小さな情報ラベルのことです。例:検索結果の数\",\"ビューがスクロールされたことを示すスクロール バーの影。\",\"スクロール バーのスライダーの背景色。\",\"ホバー時のスクロール バー スライダー背景色。\",\"クリック時のスクロール バー スライダー背景色。\",\"時間のかかる操作で表示するプログレス バーの背景色。\",\"エディターでエラーを示す波線の前景色。\",\"エディター内のエラー ボックスの境界線の色です。\",\"エディターで警告を示す波線の前景色。\",\"エディターでの警告ボックスの境界線の色です。\",\"エディターで情報を示す波線の前景色。\",\"エディター内の情報ボックスの境界線の色です。\",\"エディターでヒントを示す波線の前景色。\",\"エディター内のヒント ボックスの境界線の色。\",\"エディターの背景色。\",\"エディターの既定の前景色。\",\"検索/置換窓など、エディター ウィジェットの背景色。\",\"検索/置換などを行うエディター ウィジェットの前景色。\",\"エディター ウィジェットの境界線色。ウィジェットに境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。\",\"エディター ウィジェットのサイズ変更バーの境界線色。ウィジェットにサイズ変更の境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。\",\"エディターの選択範囲の色。\",\"ハイ コントラストの選択済みテキストの色。\",\"非アクティブなエディターの選択範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲の同じコンテンツの領域の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲と同じコンテンツの境界線の色。\",\"現在の検索一致項目の色。\",\"その他の検索条件に一致する項目の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"検索を制限する範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"現在の検索一致項目の境界線の色。\",\"他の検索一致項目の境界線の色。\",\"検索を制限する範囲の境界線色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"ホバーが表示されている語の下を強調表示します。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"エディター ホバーの背景色。\",\"エディター ホバーの前景色。\",\"エディター ホバーの境界線の色。\",\"エディターのホバーのステータス バーの背景色。\",\"アクティブなリンクの色。\",\"電球アクション アイコンに使用する色。\",\"自動修正の電球アクション アイコンとして使用される色。\",\"挿入されたテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"削除したテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"挿入されたテキストの輪郭の色。\",\"削除されたテキストの輪郭の色。\",\"2 つのテキスト エディターの間の境界線の色。\",\"ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストがアクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"マウス操作で項目をホバーするときのツリーリスト背景。\",\"マウス操作で項目をホバーするときのツリーリスト前景。\",\"マウス操作で項目を移動するときのツリーリスト ドラッグ アンド ドロップの背景。\",\"ツリーリスト内を検索しているとき、一致した強調のツリーリスト前景色。\",\"リストおよびツリーの型フィルター ウェジェットの背景色。\",\"リストおよびツリーの型フィルター ウィジェットのアウトライン色。\",\"一致項目がない場合の、リストおよびツリーの型フィルター ウィジェットのアウトライン色。\",\"インデント ガイドのツリー ストロークの色。\",\"メニューの境界線色。\",\"メニュー項目の前景色。\",\"メニュー項目の背景色。\",\"メニューで選択されたメニュー項目の前景色。\",\"メニューで選択されたメニュー項目の背景色。\",\"メニューで選択されたメニュー項目の境界線色。\",\"メニュー内のメニュー項目の境界線色。\",\"スニペット tabstop の背景色を強調表示します。\",\"スニペット tabstop の境界線の色を強調表示します。\",\"スニペットの最後の tabstop の背景色を強調表示します。\",\"スニペットの最後の tabstop の境界線の色を強調表示します。\",\"検出された一致項目の概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲を強調表示するための概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"一致を検索するためのミニマップ マーカーの色。\",\"エディターの選択範囲のミニマップ マーカーの色。\",\"エラーのミニマップ マーカーの色。\",\"警告のミニマップ マーカーの色。\",\"問題のエラー アイコンに使用される色。\",\"問題の警告アイコンに使用される色。\",\"問題情報アイコンに使用される色。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ja.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (occurred again)\",\"{0} (occurred {1} times)\"],\"vs/base/browser/ui/findinput/findInput\":[\"input\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Match Case\",\"Match Whole Word\",\"Use Regular Expression\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"input\",\"Preserve Case\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Error: {0}\",\"Warning: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Unbound\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Use the navigation keys to navigate.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Clear\",\"Disable Filter on Type\",\"Enable Filter on Type\",\"No elements found\",\"Matched {0} out of {1} elements\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"Command\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Error\",\"Warning\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, picker\",\"picker\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Quick picker. Type to narrow down results.\",\"Quick Picker\",\"{0} Results\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Select All\",\"&&Undo\",\"&&Redo\"],\"vs/editor/browser/controller/textAreaHandler\":[\"The editor is not accessible at this time. Press Alt+F1 for options.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"The number of cursors has been limited to {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Cannot compare files because one file is too large.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Close\",\"no lines\",\"1 line\",\"{0} lines\",\"Difference {0} of {1}: original {2}, {3}, modified {4}, {5}\",\"blank\",\"original {0}, modified {1}: {2}\",\"+ modified {0}: {1}\",\"- original {0}: {1}\",\"Go to Next Difference\",\"Go to Previous Difference\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copy deleted lines\",\"Copy deleted line\",\"Copy deleted line ({0})\",\"Revert this change\",\"Copy deleted line ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",\"The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\",\"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\",\"Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.\",\"Remove trailing auto inserted whitespace.\",\"Special handling for large files to disable certain memory intensive features.\",\"Controls whether completions should be computed based on words in the document.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Keep peek editors open even when double clicking their content or when hitting `Escape`.\",\"Lines above this length will not be tokenized for performance reasons\",\"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\",\"Controls whether the diff editor shows the diff side by side or inline.\",\"Controls whether the diff editor shows changes in leading or trailing whitespace as diffs.\",\"Controls whether the diff editor shows +/- indicators for added/removed changes.\"],\n\"vs/editor/common/config/editorOptions\":[\"The editor will use platform APIs to detect when a Screen Reader is attached.\",\"The editor will be permanently optimized for usage with a Screen Reader.\",\"The editor will never be optimized for usage with a Screen Reader.\",\"Controls whether the editor should run in a mode where it is optimized for screen readers.\",\"Controls whether a space character is inserted when commenting.\",\"Controls whether copying without a selection copies the current line.\",\"Controls whether the search string in the Find Widget is seeded from the editor selection.\",\"Never turn on Find in selection automatically (default)\",\"Always turn on Find in selection automatically\",\"Turn on Find in selection automatically when multiple lines of content are selected.\",\"Controls whether the find operation is carried out on selected text or the entire file in the editor.\",\"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\",\"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\",\"Enables/Disables font ligatures.\",\"Explicit font-feature-settings.\",\"Configures font ligatures.\",\"Controls the font size in pixels.\",\"Show peek view of the results (default)\",\"Go to the primary result and show a peek view\",\"Go to the primary result and enable peek-less navigation to others\",\"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\",\"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to References'-command when multiple target locations exist.\",\"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\",\"Controls whether the hover is shown.\",\"Controls the delay in milliseconds after which the hover is shown.\",\"Controls whether the hover should remain visible when mouse is moved over it.\",\"Enables the code action lightbulb in the editor.\",\"Controls the line height. Use 0 to compute the line height from the font size.\",\"Controls whether the minimap is shown.\",\"Controls the side where to render the minimap.\",\"Controls when the minimap slider is shown.\",\"Scale of content drawn in the minimap.\",\"Render the actual characters on a line as opposed to color blocks.\",\"Limit the width of the minimap to render at most a certain number of columns.\",\"Enables a pop-up that shows parameter documentation and type information as you type.\",\"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\",\"Enable quick suggestions inside strings.\",\"Enable quick suggestions inside comments.\",\"Enable quick suggestions outside of strings and comments.\",\"Controls whether suggestions should automatically show up while typing.\",\"Line numbers are not rendered.\",\"Line numbers are rendered as absolute number.\",\"Line numbers are rendered as distance in lines to cursor position.\",\"Line numbers are rendered every 10 lines.\",\"Controls the display of line numbers.\",\"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\",\"Insert suggestion without overwriting text right of the cursor.\",\"Insert suggestion and overwrite text right of the cursor.\",\"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\",\"Controls whether unexpected text modifications while accepting completions should be highlighted, e.g `insertMode` is `replace` but the completion only supports `insert`.\",\"Controls whether filtering and sorting suggestions accounts for small typos.\",\"Controls whether sorting favours words that appear close to the cursor.\",\"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\",\"Controls whether an active snippet prevents quick suggestions.\",\"Controls whether to show or hide icons in suggestions.\",\"Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).\",\"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\",\"When enabled IntelliSense shows `method`-suggestions.\",\"When enabled IntelliSense shows `function`-suggestions.\",\"When enabled IntelliSense shows `constructor`-suggestions.\",\"When enabled IntelliSense shows `field`-suggestions.\",\"When enabled IntelliSense shows `variable`-suggestions.\",\"When enabled IntelliSense shows `class`-suggestions.\",\"When enabled IntelliSense shows `struct`-suggestions.\",\"When enabled IntelliSense shows `interface`-suggestions.\",\"When enabled IntelliSense shows `module`-suggestions.\",\"When enabled IntelliSense shows `property`-suggestions.\",\"When enabled IntelliSense shows `event`-suggestions.\",\"When enabled IntelliSense shows `operator`-suggestions.\",\"When enabled IntelliSense shows `unit`-suggestions.\",\"When enabled IntelliSense shows `value`-suggestions.\",\"When enabled IntelliSense shows `constant`-suggestions.\",\"When enabled IntelliSense shows `enum`-suggestions.\",\"When enabled IntelliSense shows `enumMember`-suggestions.\",\"When enabled IntelliSense shows `keyword`-suggestions.\",\"When enabled IntelliSense shows `text`-suggestions.\",\"When enabled IntelliSense shows `color`-suggestions.\",\"When enabled IntelliSense shows `file`-suggestions.\",\"When enabled IntelliSense shows `reference`-suggestions.\",\"When enabled IntelliSense shows `customcolor`-suggestions.\",\"When enabled IntelliSense shows `folder`-suggestions.\",\"When enabled IntelliSense shows `typeParameter`-suggestions.\",\"When enabled IntelliSense shows `snippet`-suggestions.\",\"Controls the visibility of the status bar at the bottom of the suggest widget.\",\"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\",\"Only accept a suggestion with `Enter` when it makes a textual change.\",\"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\",\"Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.\",\"Editor content\",\"Use language configurations to determine when to autoclose brackets.\",\"Autoclose brackets only when the cursor is to the left of whitespace.\",\"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\",\"Type over closing quotes or brackets only if they were automatically inserted.\",\"Controls whether the editor should type over closing quotes or brackets.\",\"Use language configurations to determine when to autoclose quotes.\",\"Autoclose quotes only when the cursor is to the left of whitespace.\",\"Controls whether the editor should automatically close quotes after the user adds an opening quote.\",\"The editor will not insert indentation automatically.\",\"The editor will keep the current line's indentation.\",\"The editor will keep the current line's indentation and honor language defined brackets.\",\"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\",\"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\",\"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\",\"Use language configurations to determine when to automatically surround selections.\",\"Surround with quotes but not brackets.\",\"Surround with brackets but not quotes.\",\"Controls whether the editor should automatically surround selections.\",\"Controls whether the editor shows CodeLens.\",\"Controls whether the editor should render the inline color decorators and color picker.\",\"Controls whether syntax highlighting should be copied into the clipboard.\",\"Control the cursor animation style.\",\"Controls whether the smooth caret animation should be enabled.\",\"Controls the cursor style.\",\"Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors.\",\"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\",\"`cursorSurroundingLines` is enforced always.\",\"Controls when `cursorSurroundingLines` should be enforced.\",\"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\",\"Controls whether the editor should allow moving selections via drag and drop.\",\"Scrolling speed multiplier when pressing `Alt`.\",\"Controls whether the editor has code folding enabled.\",\"Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.\",\"Controls whether the editor should highlight folded ranges.\",\"Controls the font family.\",\"Controls the font weight.\",\"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\",\"Controls whether the editor should automatically format the line after typing.\",\"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\",\"Controls whether the cursor should be hidden in the overview ruler.\",\"Controls whether the editor should highlight the active indent guide.\",\"Controls the letter spacing in pixels.\",\"Controls whether the editor should detect links and make them clickable.\",\"Highlight matching brackets.\",\"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\",\"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\",\"Merge multiple cursors when they are overlapping.\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\",\"The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Each cursor pastes a single line of the text.\",\"Each cursor pastes the full text.\",\"Controls pasting when the line count of the pasted text matches the cursor count.\",\"Controls whether the editor should highlight semantic symbol occurrences.\",\"Controls whether a border should be drawn around the overview ruler.\",\"Focus the tree when opening peek\",\"Focus the editor when opening peek\",\"Controls whether to focus the inline editor or the tree in the peek widget.\",\"Controls the delay in milliseconds after which quick suggestions will show up.\",\"Controls whether the editor should render control characters.\",\"Controls whether the editor should render indent guides.\",\"Render last line number when the file ends with a newline.\",\"Highlights both the gutter and the current line.\",\"Controls how the editor should render the current line highlight.\",\"Render whitespace characters except for single spaces between words.\",\"Render whitespace characters only on selected text.\",\"Controls how the editor should render whitespace characters.\",\"Controls whether selections should have rounded corners.\",\"Controls the number of extra characters beyond which the editor will scroll horizontally.\",\"Controls whether the editor will scroll beyond the last line.\",\"Controls whether the Linux primary clipboard should be supported.\",\"Controls whether the editor should highlight matches similar to the selection.\",\"Controls whether the fold controls on the gutter are automatically hidden.\",\"Controls fading out of unused code.\",\"Show snippet suggestions on top of other suggestions.\",\"Show snippet suggestions below other suggestions.\",\"Show snippets suggestions with other suggestions.\",\"Do not show snippet suggestions.\",\"Controls whether snippets are shown with other suggestions and how they are sorted.\",\"Controls whether the editor will scroll using an animation.\",\"Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.\",\"Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.\",\"Controls whether suggestions should automatically show up when typing trigger characters.\",\"Always select the first suggestion.\",\"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\",\"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\",\"Controls how suggestions are pre-selected when showing the suggest list.\",\"Tab complete will insert the best matching suggestion when pressing tab.\",\"Disable tab completions.\",\"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\",\"Enables tab completions.\",\"Inserting and deleting whitespace follows tab stops.\",\"Characters that will be used as word separators when doing word related navigations or operations.\",\"Lines will never wrap.\",\"Lines will wrap at the viewport width.\",\"Lines will wrap at `#editor.wordWrapColumn#`.\",\"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\",\"Controls how lines should wrap.\",\"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\",\"No indentation. Wrapped lines begin at column 1.\",\"Wrapped lines get the same indentation as the parent.\",\"Wrapped lines get +1 indentation toward the parent.\",\"Wrapped lines get +2 indentation toward the parent.\",\"Controls the indentation of wrapped lines.\",\"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\",\"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\",\"Controls the algorithm that computes wrapping points.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Plain Text\"],\n\"vs/editor/common/standaloneStrings\":[\"No selection\",\"Line {0}, Column {1} ({2} selected)\",\"Line {0}, Column {1}\",\"{0} selections ({1} characters selected)\",\"{0} selections\",\"Now changing the setting `accessibilitySupport` to 'on'.\",\"Now opening the Editor Accessibility documentation page.\",\" in a read-only pane of a diff editor.\",\" in a pane of a diff editor.\",\" in a read-only code editor\",\" in a code editor\",\"To configure the editor to be optimized for usage with a Screen Reader press Command+E now.\",\"To configure the editor to be optimized for usage with a Screen Reader press Control+E now.\",\"The editor is configured to be optimized for usage with a Screen Reader.\",\"The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.\",\"Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.\",\"Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.\",\"Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.\",\"Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.\",\"Press Command+H now to open a browser window with more information related to editor accessibility.\",\"Press Control+H now to open a browser window with more information related to editor accessibility.\",\"You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.\",\"Show Accessibility Help\",\"Developer: Inspect Tokens\",\"Go to line {0} and character {1}\",\"Go to line {0}\",\"Type a line number between 1 and {0} to navigate to\",\"Type a character between 1 and {0} to navigate to\",\"Current Line: {0}. Go to line {1}.\",\"Type a line number, followed by an optional colon and a character number to navigate to\",\"Go to Line...\",\"{0}, {1}, commands\",\"{0}, commands\",\"Type the name of an action you want to execute\",\"Command Palette\",\"{0}, symbols\",\"Type the name of an identifier you wish to navigate to\",\"Go to Symbol...\",\"symbols ({0})\",\"modules ({0})\",\"classes ({0})\",\"interfaces ({0})\",\"methods ({0})\",\"functions ({0})\",\"properties ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructors ({0})\",\"calls ({0})\",\"Editor content\",\"Press Ctrl+F1 for Accessibility Options.\",\"Press Alt+F1 for Accessibility Options.\",\"Toggle High Contrast Theme\",\"Made {0} edits in {1} files\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Background color for the highlight of line at the cursor position.\",\"Background color for the border around the line at the cursor position.\",\"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the border around highlighted ranges.\",\"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the border around highlighted symbols.\",\"Color of the editor cursor.\",\"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\",\"Color of whitespace characters in the editor.\",\"Color of the editor indentation guides.\",\"Color of the active editor indentation guides.\",\"Color of editor line numbers.\",\"Color of editor active line number\",\"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\",\"Color of editor active line number\",\"Color of the editor rulers.\",\"Foreground color of editor code lenses\",\"Background color behind matching brackets\",\"Color for matching brackets boxes\",\"Color of the overview ruler border.\",\"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\",\"Border color of unnecessary (unused) source code in the editor.\",\"Opacity of unnecessary (unused) source code in the editor. For example, \\\"#000000c0\\\" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.\",\"Overview ruler marker color for errors.\",\"Overview ruler marker color for warnings.\",\"Overview ruler marker color for infos.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Overview ruler marker color for matching brackets.\",\"Go to Bracket\",\"Select to Bracket\",\"Go to &&Bracket\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Move Caret Left\",\"Move Caret Right\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transpose Letters\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Cut\",\"Cu&&t\",\"Copy\",\"&&Copy\",\"Paste\",\"&&Paste\",\"Copy With Syntax Highlighting\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Kind of the code action to run.\",\"Controls when the returned actions are applied.\",\"Always apply the first returned code action.\",\"Apply the first returned code action if it is the only one.\",\"Do not apply the returned code actions.\",\"Controls if only preferred code actions should be returned.\",\"An unknown error occurred while applying the code action\",\"Quick Fix...\",\"No code actions available\",\"No preferred code actions for '{0}' available\",\"No code actions for '{0}' available\",\"No preferred code actions available\",\"No code actions available\",\"Refactor...\",\"No preferred refactorings for '{0}' available\",\"No refactorings for '{0}' available\",\"No preferred refactorings available\",\"No refactorings available\",\"Source Action...\",\"No preferred source actions for '{0}' available\",\"No source actions for '{0}' available\",\"No preferred source actions available\",\"No source actions available\",\"Organize Imports\",\"No organize imports action available\",\"Fix All\",\"No fix all action available\",\"Auto Fix...\",\"No auto fixes available\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Show Fixes. Preferred Fix Available ({0})\",\"Show Fixes ({0})\",\"Show Fixes\"],\"vs/editor/contrib/comment/comment\":[\"Toggle Line Comment\",\"&&Toggle Line Comment\",\"Add Line Comment\",\"Remove Line Comment\",\"Toggle Block Comment\",\"Toggle &&Block Comment\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Show Editor Context Menu\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursor Undo\",\"Cursor Redo\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"],\n\"vs/editor/contrib/find/findController\":[\"Find\",\"&&Find\",\"Find With Selection\",\"Find Next\",\"Find Next\",\"Find Previous\",\"Find Previous\",\"Find Next Selection\",\"Find Previous Selection\",\"Replace\",\"&&Replace\"],\"vs/editor/contrib/find/findWidget\":[\"Find\",\"Find\",\"Previous match\",\"Next match\",\"Find in selection\",\"Close\",\"Replace\",\"Replace\",\"Replace\",\"Replace All\",\"Toggle Replace mode\",\"Only the first {0} results are highlighted, but all find operations work on the entire text.\",\"{0} of {1}\",\"No Results\",\"{0} found\",\"{0} found for {1}\",\"{0} found for {1} at {2}\",\"{0} found for {1}\",\"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.\"],\"vs/editor/contrib/folding/folding\":[\"Unfold\",\"Unfold Recursively\",\"Fold\",\"Toggle Fold\",\"Fold Recursively\",\"Fold All Block Comments\",\"Fold All Regions\",\"Unfold All Regions\",\"Fold All\",\"Unfold All\",\"Fold Level {0}\",\"Color of the editor selection.\"],\n\"vs/editor/contrib/fontZoom/fontZoom\":[\"Editor Font Zoom In\",\"Editor Font Zoom Out\",\"Editor Font Zoom Reset\"],\"vs/editor/contrib/format/format\":[\"Made 1 formatting edit on line {0}\",\"Made {0} formatting edits on line {1}\",\"Made 1 formatting edit between lines {0} and {1}\",\"Made {0} formatting edits between lines {1} and {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Format Document\",\"Format Selection\"],\"vs/editor/contrib/gotoError/gotoError\":[\"Go to Next Problem (Error, Warning, Info)\",\"Go to Previous Problem (Error, Warning, Info)\",\"Go to Next Problem in Files (Error, Warning, Info)\",\"Go to Previous Problem in Files (Error, Warning, Info)\",\"Next &&Problem\",\"Previous &&Problem\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} of {1} problems\",\"{0} of {1} problem\",\"Editor marker navigation widget error color.\",\"Editor marker navigation widget warning color.\",\"Editor marker navigation widget info color.\",\"Editor marker navigation widget background.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Peek\",\"Definitions\",\"No definition found for '{0}'\",\"No definition found\",\"Go to Definition\",\"Go to &&Definition\",\"Open Definition to the Side\",\"Peek Definition\",\"Declarations\",\"No declaration found for '{0}'\",\"No declaration found\",\"Go to Declaration\",\"Go to &&Declaration\",\"No declaration found for '{0}'\",\"No declaration found\",\"Peek Declaration\",\"Type Definitions\",\"No type definition found for '{0}'\",\"No type definition found\",\"Go to Type Definition\",\"Go to &&Type Definition\",\"Peek Type Definition\",\"Implementations\",\"No implementation found for '{0}'\",\"No implementation found\",\"Go to Implementations\",\"Go to &&Implementations\",\"Peek Implementations\",\"No references found for '{0}'\",\"No references found\",\"Go to References\",\"Go to &&References\",\"References\",\"Peek References\",\"References\",\"Go To Any Symbol\",\"Locations\",\"No results for '{0}'\",\"References\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Click to show {0} definitions.\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Loading...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Failed to resolve file.\",\"{0} references\",\"{0} reference\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"no preview available\",\"References\",\"No results\",\"References\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"symbol in {0} on line {1} at column {2}\",\"1 symbol in {0}, full path {1}\",\"{0} symbols in {1}, full path {2}\",\"No results found\",\"Found 1 symbol in {0}\",\"Found {0} symbols in {1}\",\"Found {0} symbols in {1} files\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbol {0} of {1}, {2} for next\",\"Symbol {0} of {1}\"],\"vs/editor/contrib/hover/hover\":[\"Show Hover\",\"Show Definition Preview Hover\"],\"vs/editor/contrib/hover/modesContentHover\":[\"Loading...\",\"Peek Problem\",\"Checking for quick fixes...\",\"No quick fixes available\",\"Quick Fix...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Replace with Previous Value\",\"Replace with Next Value\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copy Line Up\",\"&&Copy Line Up\",\"Copy Line Down\",\"Co&&py Line Down\",\"Duplicate Selection\",\"&&Duplicate Selection\",\"Move Line Up\",\"Mo&&ve Line Up\",\"Move Line Down\",\"Move &&Line Down\",\"Sort Lines Ascending\",\"Sort Lines Descending\",\"Trim Trailing Whitespace\",\"Delete Line\",\"Indent Line\",\"Outdent Line\",\"Insert Line Above\",\"Insert Line Below\",\"Delete All Left\",\"Delete All Right\",\"Join Lines\",\"Transpose characters around the cursor\",\"Transform to Uppercase\",\"Transform to Lowercase\",\"Transform to Title Case\"],\"vs/editor/contrib/links/links\":[\"Execute command\",\"Follow link\",\"cmd + click\",\"ctrl + click\",\"option + click\",\"alt + click\",\"Failed to open this link because it is not well-formed: {0}\",\"Failed to open this link because its target is missing.\",\"Open Link\"],\"vs/editor/contrib/message/messageController\":[\"Cannot edit in read-only editor\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Add Cursor Above\",\"&&Add Cursor Above\",\"Add Cursor Below\",\"A&&dd Cursor Below\",\"Add Cursors to Line Ends\",\"Add C&&ursors to Line Ends\",\"Add Cursors To Bottom\",\"Add Cursors To Top\",\"Add Selection To Next Find Match\",\"Add &&Next Occurrence\",\"Add Selection To Previous Find Match\",\"Add P&&revious Occurrence\",\"Move Last Selection To Next Find Match\",\"Move Last Selection To Previous Find Match\",\"Select All Occurrences of Find Match\",\"Select All &&Occurrences\",\"Change All Occurrences\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Trigger Parameter Hints\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, hint\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Close\",\"Background color of the peek view title area.\",\"Color of the peek view title.\",\"Color of the peek view title info.\",\"Color of the peek view borders and arrow.\",\"Background color of the peek view result list.\",\"Foreground color for line nodes in the peek view result list.\",\"Foreground color for file nodes in the peek view result list.\",\"Background color of the selected entry in the peek view result list.\",\"Foreground color of the selected entry in the peek view result list.\",\"Background color of the peek view editor.\",\"Background color of the gutter in the peek view editor.\",\"Match highlight color in the peek view result list.\",\"Match highlight color in the peek view editor.\",\"Match highlight border in the peek view editor.\"],\n\"vs/editor/contrib/rename/rename\":[\"No result.\",\"An unknown error occurred while resolving rename location\",\"Renaming '{0}'\",\"Successfully renamed '{0}' to '{1}'. Summary: {2}\",\"Rename failed to apply edits\",\"Rename failed to compute edits\",\"Rename Symbol\",\"Enable/disable the ability to preview changes before renaming\"],\"vs/editor/contrib/rename/renameInputField\":[\"Rename input. Type new name and press Enter to commit.\",\"{0} to Rename, {1} to Preview\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Expand Selection\",\"&&Expand Selection\",\"Shrink Selection\",\"&&Shrink Selection\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],\n\"vs/editor/contrib/suggest/suggestController\":[\"Accepting '{0}' made {1} additional edits\",\"Trigger Suggest\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Background color of the suggest widget.\",\"Border color of the suggest widget.\",\"Foreground color of the suggest widget.\",\"Background color of the selected entry in the suggest widget.\",\"Color of the match highlights in the suggest widget.\",\"Read More...{0}\",\"Read less...{0}\",\"Loading...\",\"Loading...\",\"No suggestions.\",\"{0} for less...\",\"{0} for more...\",\"Item {0}, docs: {1}\",\"{0} to insert, {1} to replace\",\"{0} to replace, {1} to insert\",\"{0} to accept\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Toggle Tab Key Moves Focus\",\"Pressing Tab will now move focus to the next focusable element\",\"Pressing Tab will now insert the tab character\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Developer: Force Retokenize\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.\",\"Border color of a symbol during read-access, like reading a variable.\",\"Border color of a symbol during write-access, like writing to a variable.\",\"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Go to Next Symbol Highlight\",\"Go to Previous Symbol Highlight\",\"Trigger Symbol Highlight\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Default Configuration Overrides\",\"Configure editor settings to be overridden for a language.\",\"This setting does not support per-language configuration.\",\"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\",\"Cannot register '{0}'. This property is already registered.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) was pressed. Waiting for second key of chord...\",\"The key combination ({0}, {1}) is not a command.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\",\"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\",\"Controls how to open items in trees and lists using the mouse (if supported). For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. \",\"Controls whether lists and trees support horizontal scrolling in the workbench.\",\"Controls whether trees support horizontal scrolling in the workbench.\",\"This setting is deprecated, please use '{0}' instead.\",\"Controls tree indentation in pixels.\",\"Controls whether the tree should render indent guides.\",\"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\",\"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\",\"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\",\"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\",\"Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.\"],\n\"vs/platform/markers/common/markers\":[\"Error\",\"Warning\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Overall foreground color. This color is only used if not overridden by a component.\",\"Overall foreground color for error messages. This color is only used if not overridden by a component.\",\"Overall border color for focused elements. This color is only used if not overridden by a component.\",\"An extra border around elements to separate them from others for greater contrast.\",\"An extra border around active elements to separate them from others for greater contrast.\",\"Foreground color for links in text.\",\"Background color for code blocks in text.\",\"Shadow color of widgets such as find/replace inside the editor.\",\"Input box background.\",\"Input box foreground.\",\"Input box border.\",\"Border color of activated options in input fields.\",\"Background color of activated options in input fields.\",\"Input validation background color for information severity.\",\"Input validation foreground color for information severity.\",\"Input validation border color for information severity.\",\"Input validation background color for warning severity.\",\"Input validation foreground color for warning severity.\",\"Input validation border color for warning severity.\",\"Input validation background color for error severity.\",\"Input validation foreground color for error severity.\",\"Input validation border color for error severity.\",\"Dropdown background.\",\"Dropdown foreground.\",\"Quick picker color for grouping labels.\",\"Quick picker color for grouping borders.\",\"Badge background color. Badges are small information labels, e.g. for search results count.\",\"Badge foreground color. Badges are small information labels, e.g. for search results count.\",\"Scrollbar shadow to indicate that the view is scrolled.\",\"Scrollbar slider background color.\",\"Scrollbar slider background color when hovering.\",\"Scrollbar slider background color when clicked on.\",\"Background color of the progress bar that can show for long running operations.\",\"Foreground color of error squigglies in the editor.\",\"Border color of error boxes in the editor.\",\"Foreground color of warning squigglies in the editor.\",\"Border color of warning boxes in the editor.\",\"Foreground color of info squigglies in the editor.\",\"Border color of info boxes in the editor.\",\"Foreground color of hint squigglies in the editor.\",\"Border color of hint boxes in the editor.\",\"Editor background color.\",\"Editor default foreground color.\",\"Background color of editor widgets, such as find/replace.\",\"Foreground color of editor widgets, such as find/replace.\",\"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.\",\"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\",\"Color of the editor selection.\",\"Color of the selected text for high contrast.\",\"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\",\"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\",\"Border color for regions with the same content as the selection.\",\"Color of the current search match.\",\"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\",\"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\",\"Border color of the current search match.\",\"Border color of the other search matches.\",\"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\",\"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the editor hover.\",\"Foreground color of the editor hover.\",\"Border color of the editor hover.\",\"Background color of the editor hover status bar.\",\"Color of active links.\",\"The color used for the lightbulb actions icon.\",\"The color used for the lightbulb auto fix actions icon.\",\"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\",\"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\",\"Outline color for the text that got inserted.\",\"Outline color for text that got removed.\",\"Border color between the two text editors.\",\"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background when hovering over items using the mouse.\",\"List/Tree foreground when hovering over items using the mouse.\",\"List/Tree drag and drop background when moving items around using the mouse.\",\"List/Tree foreground color of the match highlights when searching inside the list/tree.\",\"Background color of the type filter widget in lists and trees.\",\"Outline color of the type filter widget in lists and trees.\",\"Outline color of the type filter widget in lists and trees, when there are no matches.\",\"Tree stroke color for the indentation guides.\",\"Border color of menus.\",\"Foreground color of menu items.\",\"Background color of menu items.\",\"Foreground color of the selected menu item in menus.\",\"Background color of the selected menu item in menus.\",\"Border color of the selected menu item in menus.\",\"Color of a separator menu item in menus.\",\"Highlight background color of a snippet tabstop.\",\"Highlight border color of a snippet tabstop.\",\"Highlight background color of the final tabstop of a snippet.\",\"Highlight border color of the final stabstop of a snippet.\",\"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\",\"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Minimap marker color for find matches.\",\"Minimap marker color for the editor selection.\",\"Minimap marker color for errors.\",\"Minimap marker color for warnings.\",\"The color used for the problems error icon.\",\"The color used for the problems warning icon.\",\"The color used for the problems info icon.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.ko.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ko\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0}({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0}(다시 발생함)\",\"{0} ({1}번 발생하다)\"],\"vs/base/browser/ui/findinput/findInput\":[\"입력\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"대/소문자 구분\",\"단어 단위로\",\"정규식 사용\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"입력\",\"대/소문자 보존\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"오류: {0}\",\"경고: {0}\",\"정보: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"바인딩 안 됨\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. 탐색하려면 탐색 키를 사용하세요.\"],\"vs/base/browser/ui/menu/menu\":[\"{0}({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"지우기\",\"형식을 기준으로 필터링 사용 안 함\",\"형식을 기준으로 필터링 사용\",\"찾은 요소 없음\",\"{1}개 요소 중 {0}개 일치\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"<Shift>\",\"<Alt>\",\"Windows\",\"Ctrl\",\"<Shift>\",\"<Alt>\",\"슈퍼\",\"제어\",\"<Shift>\",\"<Alt>\",\"명령\",\"제어\",\"<Shift>\",\"<Alt>\",\"Windows\",\"제어\",\"<Shift>\",\"<Alt>\",\"슈퍼\"],\"vs/base/common/severity\":[\"오류\",\"경고\",\"정보\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, 선택기\",\"선택기\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"빠른 선택기입니다. 결과의 범위를 축소하려면 입력합니다.\",\"빠른 선택기\",\"{0}개 결과\"],\"vs/editor/browser/controller/coreCommands\":[\"모두 선택(&&S)\",\"실행 취소(&&U)\",\"다시 실행(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"지금은 편집기를 사용할 수 없습니다. Alt+F1을 눌러 옵션을 보세요.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"커서 수는 {0}(으)로 제한되었습니다.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"파일 1개가 너무 커서 파일을 비교할 수 없습니다.\"],\"vs/editor/browser/widget/diffReview\":[\"닫기\",\"줄 없음\",\"1줄\",\"{0}줄\",\"차이 {0}/{1}개: 원본 {2}, {3}, 수정 {4}, {5}\",\"비어 있음\",\"원본 {0}, 수정 {1}: {2}\",\"+ 수정됨 {0}: {1}\",\"- 원본 {0}: {1}\",\"다음 다른 항목으로 이동\",\"다음 다른 항목으로 이동\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"삭제된 줄 복사\",\"삭제된 줄 복사\",\"삭제된 줄 복사({0})\",\"이 변경 내용 되돌리기\",\"삭제된 줄 복사({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"편집기\",\"탭 한 개에 해당하는 공백 수입니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.\",\"'탭' 키를 누를 때 공백을 삽입합니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.\",\"파일을 열 때 파일 콘텐츠를 기반으로 `#editor.tabSize#`와  `#editor.insertSpaces#`가 자동으로 검색되는지 여부를 제어합니다.\",\"끝에 자동 삽입된 공백을 제거합니다.\",\"큰 파일에 대한 특수 처리로, 메모리를 많이 사용하는 특정 기능을 사용하지 않도록 설정합니다.\",\"문서 내 단어를 기반으로 완성을 계산할지 여부를 제어합니다.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"해당 콘텐츠를 두 번 클릭하거나 'Esc' 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.\",\"이 길이를 초과하는 줄은 성능상의 이유로 토큰화되지 않습니다.\",\"diff 계산이 취소된 후 밀리초 단위로 시간을 제한합니다. 제한 시간이 없는 경우 0을 사용합니다.\",\"diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지를 제어합니다.\",\"diff 편집기에서 선행 공백 또는 후행 공백 변경을 diff로 표시할지 여부를 제어합니다.\",\"diff 편집기에서 추가/제거된 변경 내용에 대해 +/- 표시기를 표시하는지 여부를 제어합니다.\"],\n\"vs/editor/common/config/editorOptions\":[\"편집기가 스크린 리더가 연결되면 플랫폼 API를 사용하여 감지합니다.\",\"편집기가 스크린 리더 사용을 위해 영구적으로 최적화됩니다.\",\"편집기가 스크린 리더 사용을 위해 최적화되지 않습니다.\",\"편집기를 스크린 리더를 위해 최적화된 모드로 실행할지 결정합니다.\",\"주석을 달 때 공백 문자를 삽입할지 여부를 제어합니다.\",\"선택 영역 없이 현재 줄 복사 여부를 제어합니다.\",\"편집기 선택에서 Find Widget의 검색 문자열을 시딩할지 여부를 제어합니다.\",\"선택 항목에서 찾기를 자동으로 켜지 않음(기본값)\",\"선택 항목에서 자동으로 항상 찾기 켜기\",\"여러 줄의 콘텐츠를 선택하면 선택 항목에서 찾기가 자동으로 켜집니다.\",\"편집기에서 찾기 작업을 할 때 선택한 텍스트에서 할지 전체 파일에서 할지 제어합니다.\",\"macOS에서 Find Widget이 공유 클립보드 찾기를 읽을지 수정할지 제어합니다.\",\"위젯 찾기에서 편집기 맨 위에 줄을 추가해야 하는지 여부를 제어합니다. true인 경우 위젯 찾기가 표시되면 첫 번째 줄 위로 스크롤할 수 있습니다.\",\"글꼴 합자 사용하거나 사용하지 않도록 설정합니다.\",\"명시적 글꼴 기능 설정입니다.\",\"글꼴 합자를 구성합니다.\",\"픽셀 단위로 글꼴 크기를 제어합니다.\",\"결과 Peek 뷰 표시(기본)\",\"기본 결과로 이동하여 Peek 보기를 표시합니다.\",\"기본 결과로 이동하고 다른 항목에 대해 peek 없는 탐색을 사용하도록 설정\",\"이 설정은 더 이상 사용되지 않습니다. 대신 'editor.editor.gotoLocation.multipleDefinitions' 또는 'editor.editor.gotoLocation.multipleImplementations'와 같은 별도의 설정을 사용하세요.\",\"여러 대상 위치가 있는 경우 '정의로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '유형 정의로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 'Go to Declaration' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '구현으로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '참조로 이동' 명령 동작을 제어합니다.\",\"'정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'형식 정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'선언으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'구현으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'참조로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"호버 표시 여부를 제어합니다.\",\"호버가 표시되기 전까지의 지연 시간(밀리초)을 제어합니다.\",\"마우스를 해당 항목 위로 이동할 때 호버를 계속 표시할지 여부를 제어합니다.\",\"편집기에서 코드 동작 전구를 사용하도록 설정합니다.\",\"줄 높이를 제어합니다. 글꼴 크기에서 줄 높이를 계산하려면 0을 사용합니다.\",\"미니맵 표시 여부를 제어합니다.\",\"미니맵을 렌더링할 측면을 제어합니다.\",\"미니맵 슬라이더가 표시되는 시기를 제어합니다.\",\"미니맵에 그려진 콘텐츠의 배율입니다.\",\"줄의 실제 문자(색 블록 아님)를 렌더링합니다.\",\"최대 특정 수의 열을 렌더링하도록 미니맵의 너비를 제한합니다.\",\"입력과 동시에 매개변수 문서와 유형 정보를 표시하는 팝업을 사용하도록 설정합니다.\",\" 매개변수 힌트 메뉴의 주기 혹은 목록의 끝에 도달하였을때 종료할 것인지 여부를 결정합니다. \",\"문자열 내에서 빠른 제안을 사용합니다.\",\"주석 내에서 빠른 제안을 사용합니다.\",\"문자열 및 주석 외부에서 빠른 제안을 사용합니다.\",\"입력하는 동안 제안을 자동으로 표시할지 여부를 제어합니다.\",\"줄 번호는 렌더링되지 않습니다.\",\"줄 번호는 절대값으로 렌더링 됩니다.\",\"줄 번호는 커서 위치에서 줄 간격 거리로 렌더링 됩니다.\",\"줄 번호는 매 10 줄마다 렌더링이 이루어집니다.\",\"줄 번호의 표시 여부를 제어합니다.\",\"특정 수의 고정 폭 문자 뒤에 세로 눈금자를 렌더링합니다. 여러 눈금자의 경우 여러 값을 사용합니다. 배열이 비어 있는 경우 눈금자가 그려지지 않습니다.\",\"커서의 텍스트 오른쪽을 덮어 쓰지않고 제안을 삽입합니다.\",\"제안을 삽입하고 커서의 오른쪽 텍스트를 덮어씁니다.\",\"완료를 수락할 때 단어를 덮어쓸지 여부를 제어합니다. 이것은 이 기능을 선택하는 확장에 따라 다릅니다.\",\"완료를 수락하는 동안 예기치 않은 텍스트 수정이 강조 표시되도록 할지 여부를 제어합니다.(예: 'insertMode'는 '바꾸기'이지만 완료는 '삽입'만 지원합니다.)\",\"제안 필터링 및 정렬에서 작은 오타를 설명하는지 여부를 제어합니다.\",\"정렬할 때 커서 근처에 표시되는 단어를 우선할지 여부를 제어합니다.\",\"저장된 제안 사항 선택 항목을 여러 작업 영역 및 창에서 공유할 것인지 여부를 제어합니다(`#editor.suggestSelection#` 필요).\",\"활성 코드 조각이 빠른 제안을 할 수 없도록 하는지 여부를 제어합니다.\",\"제안의 아이콘을 표시할지 여부를 제어합니다.\",\"스크롤바를 표시하기 전에 IntelliSense가 표시할 제안 수를 제어합니다(최대 15개).\",\"이 설정은 더 이상 사용되지 않습니다. 대신 'editor.suggest.showKeywords'또는 'editor.suggest.showSnippets'와 같은 별도의 설정을 사용하세요.\",\"사용하도록 설정되면 IntelliSense에 `메서드` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '함수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '생성자' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '필드' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '변수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '클래스' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '구조' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '인터페이스' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '모듈' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '속성' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '이벤트' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `연산자` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '단위' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '값' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '상수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '열거형' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `enumMember` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '키워드' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '텍스트' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '색' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `파일` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '참조' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '사용자 지정 색' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '폴더' 제안이 표시됩니다.\",\"사용하도록 설정된 경우 IntelliSense에 'typeParameter' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '코드 조각' 제안이 표시됩니다.\",\"제안 위젯 하단의 상태 표시줄 가시성을 제어합니다.\",\"커밋 문자에 대한 제안을 허용할지를 제어합니다. 예를 들어 JavaScript에서는 세미콜론(';')이 제안을 허용하고 해당 문자를 입력하는 커밋 문자일 수 있습니다.\",\"텍스트를 변경할 때 `Enter` 키를 사용한 제안만 허용합니다.\",\"'Tab' 키 외에 'Enter' 키에 대한 제안도 허용할지를 제어합니다. 새 줄을 삽입하는 동작과 제안을 허용하는 동작 간의 모호함을 없앨 수 있습니다.\",\"화면 판독기가 읽을 수 있는 편집기의 줄 수를 제어합니다. 경고: 기본값보다 큰 숫자인 경우 성능에 영향을 미칩니다.\",\"편집기 콘텐츠\",\"언어 구성을 사용하여 대괄호를 자동으로 닫을 경우를 결정합니다.\",\"커서가 공백의  왼쪽에 있는 경우에만 대괄호를 자동으로 닫습니다.\",\"사용자가 여는 괄호를 추가한 후 편집기에서 괄호를 자동으로 닫을지 여부를 제어합니다.\",\"닫기 따옴표 또는 대괄호가 자동으로 삽입된 경우에만 해당 항목 위에 입력합니다.\",\"편집자가 닫는 따옴표 또는 대괄호 위에 입력할지 여부를 제어합니다.\",\"언어 구성을 사용하여 따옴표를 자동으로 닫을 경우를 결정합니다.\",\"커서가 공백의 왼쪽에 있는 경우에만 따옴표를 자동으로 닫습니다.\",\"사용자가 여는 따옴표를 추가한 후 편집기에서 따옴표를 자동으로 닫을지 여부를 제어합니다.\",\"편집기는 들여쓰기를 자동으로 삽입하지 않습니다.\",\"편집기는 현재 줄의 들여쓰기를 유지합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 사용합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 존중하며 언어별로 정의된 특별 EnterRules를 호출합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고, 언어 정의 대괄호를 존중하고, 언어에 의해 정의된 특별 EnterRules를 호출하고, 언어에 의해 정의된 들여쓰기 규칙을 존중합니다.\",\"사용자가 줄을 입력, 붙여넣기, 이동 또는 들여쓰기 할 때 편집기에서 들여쓰기를 자동으로 조정하도록 할지 여부를 제어합니다.\",\"언어 구성을 사용하여 선택 항목을 자동으로 둘러쌀 경우를 결정합니다.\",\"대괄호가 아닌 따옴표로 둘러쌉니다.\",\"따옴표가 아닌 대괄호로 둘러쌉니다.\",\"편집기에서 선택 항목을 자동으로 둘러쌀지 여부를 제어합니다.\",\"편집기에서 CodeLens를 표시할 것인지 여부를 제어합니다.\",\"편집기에서 인라인 색 데코레이터 및 색 선택을 렌더링할지를 제어합니다.\",\"터미널에서 선택한(블록 지정한) 텍스트가 클립보드로 자동 복사 여부를 제어합니다.\\n'true'로 설정 할 시 선택할 때마다 클립보드로 복사 됩니다.\",\"커서 애니메이션 스타일을 제어합니다.\",\"매끄러운 캐럿 애니메이션의 사용 여부를 제어합니다.\",\"커서 스타일을 제어합니다.\",\"커서 주위에 표시되는 선행 및 후행 줄의 최소 수를 제어합니다. 다른 편집기에서는 'scrollOff' 또는 'scrollOffset'이라고 합니다.\",\"'cursorSurroundingLines'는 키보드 나 API를 통해 트리거될 때만 적용됩니다.\",\"`cursorSurroundingLines`는 항상 적용됩니다.\",\"'cursorSurroundingLines'를 적용해야 하는 경우를 제어합니다.\",\"`#editor.cursorStyle#` 설정이 'line'으로 설정되어 있을 때 커서의 넓이를 제어합니다.\",\"편집기에서 끌어서 놓기로 선택 영역을 이동할 수 있는지 여부를 제어합니다.\",\"'Alt' 키를 누를 때 스크롤 속도 승수입니다.\",\"편집기에 코드 접기가 사용하도록 설정되는지 여부를 제어합니다.\",\"접기 범위를 계산하는 전략을 제어합니다. '자동'이면 사용 가능한 경우 언어 관련 접기 전략을 사용합니다. '들여쓰기'이면 들여쓰기 기반 접기 전략을 사용합니다.\",\"편집기에서 접힌 범위를 강조 표시할지 여부를 제어합니다.\",\"글꼴 패밀리를 제어합니다.\",\"글꼴 두께를 조정합니다.\",\"붙여넣은 콘텐츠의 서식을 편집기에서 자동으로 지정할지 여부를 제어합니다. 포맷터를 사용할 수 있어야 하며 포맷터가 문서에서 범위의 서식을 지정할 수 있어야 합니다.\",\"입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.\",\"편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.\",\"커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.\",\"편집기에서 활성 들여쓰기 가이드를 강조 표시할지 여부를 제어합니다.\",\"픽셀 단위로 문자 간격을 제어 합니다.\",\"편집기에서 링크를 감지하고 클릭할 수 있게 만들지 여부를 제어합니다.\",\"일치하는 대괄호를 강조 표시합니다.\",\"마우스 휠 스크롤 이벤트의 `deltaX` 및 `deltaY`에서 사용할 승수입니다.\",\"마우스 휠을 사용할 때 'Ctrl' 키를 누르고 있으면 편집기의 글꼴을 확대/축소합니다.\",\"여러 커서가 겹치는 경우 커서를 병합합니다.\",\"Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.\",\"Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.\",\"마우스로 여러 커서를 추가할 때 사용할 수정자입니다. [정의로 이동] 및 [링크 열기] 마우스 제스처가 멀티커서 수정자와 충돌하지 않도록 조정됩니다. [자세한 정보](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"각 커서는 텍스트 한 줄을 붙여넣습니다.\",\"각 커서는 전체 텍스트를 붙여넣습니다.\",\"붙여넣은 텍스트의 줄 수가 커서 수와 일치하는 경우 붙여넣기를 제어합니다.\",\"편집기에서 의미 체계 기호 항목을 강조 표시할지 여부를 제어합니다.\",\"개요 눈금자 주위에 테두리를 그릴지 여부를 제어합니다.\",\"미리 보기를 열 때 트리에 포커스 두기\",\"미리 보기를 열 때 편집기에 포커스\",\"미리 보기 위젯에서 인라인 편집기에 포커스를 둘지 또는 트리에 포커스를 둘지를 제어합니다.\",\"빠른 제안을 표시하기 전까지의 지연 시간(밀리초)을 제어합니다.\",\"편집기에서 제어 문자를 렌더링할지를 제어합니다.\",\"편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.\",\"파일이 줄 바꿈으로 끝나면 마지막 줄 번호를 렌더링합니다.\",\"제본용 여백과 현재 줄을 모두 강조 표시합니다.\",\"편집기가 현재 줄 강조 표시를 렌더링하는 방식을 제어합니다. \",\"Render whitespace characters except for single spaces between words.\",\"선택한 텍스트에서만 공백 문자를 렌더링합니다.\",\"편집기에서 공백 문자를 렌더링할 방법을 제어합니다.\",\"선택 항목의 모서리를 둥글게 할지 여부를 제어합니다.\",\"편집기에서 가로로 스크롤되는 범위를 벗어나는 추가 문자의 수를 제어합니다.\",\"편집기에서 마지막 줄 이후로 스크롤할지 여부를 제어합니다.\",\"Linux 주 클립보드의 지원 여부를 제어합니다.\",\"편집기가 선택 항목과 유사한 일치 항목을 강조 표시해야하는지 여부를 제어합니다.\",\"거터의 폴드 컨트롤을 자동으로 숨길지 결정합니다.\",\"사용하지 않는 코드의 페이드 아웃을 제어합니다.\",\"다른 제안 위에 조각 제안을 표시합니다.\",\"다른 제안 아래에 조각 제안을 표시합니다.\",\"다른 제안과 함께 조각 제안을 표시합니다.\",\"코드 조각 제안을 표시하지 않습니다.\\n\",\"코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.\",\"편집기에서 애니메이션을 사용하여 스크롤할지 여부를 제어합니다.\",\"제안 위젯의 글꼴 크기입니다. '0'으로 설정하면 '#editor.fontSize#'의 값이 사용됩니다.\",\"제안 위젯의 줄 높이입니다. '0'으로 설정하면 `#editor.lineHeight#`의 값이 사용됩니다.\",\"트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.\",\"항상 첫 번째 제안을 선택합니다.\",\"`log`가 최근에 완료되었으므로 추가 입력에서 제안을 선택하지 않은 경우 최근 제안을 선택하세요(예: `console.| -> console.log`).\",\"해당 제안을 완료한 이전 접두사에 따라 제안을 선택합니다(예: `co -> console` 및 `con -> const`).\",\"제안 목록을 표시할 때 제한이 미리 선택되는 방식을 제어합니다.\",\"탭 완료는 탭을 누를 때 가장 일치하는 제안을 삽입합니다.\",\"탭 완성을 사용하지 않도록 설정합니다.\",\"접두사가 일치하는 경우 코드 조각을 탭 완료합니다. 'quickSuggestions'를 사용하지 않을 때 가장 잘 작동합니다.\",\"탭 완성을 사용하도록 설정합니다.\",\"탭 정지 뒤에 공백을 삽입 및 삭제합니다.\",\"단어 관련 탐색 또는 작업을 수행할 때 단어 구분 기호로 사용할 문자입니다.\",\"줄이 바뀌지 않습니다.\",\"뷰포트 너비에서 줄이 바뀝니다.\",\"`#editor.wordWrapColumn#`에서 줄이 바뀝니다.\",\"뷰포트의 최소값 및 `#editor.wordWrapColumn#`에서 줄이 바뀝니다.\",\"줄 바꿈 여부를 제어합니다.\",\"`#editor.wordWrap#`이 `wordWrapColumn` 또는 'bounded'인 경우 편집기의 열 줄 바꿈을 제어합니다.\",\"들여쓰기가 없습니다. 줄 바꿈 행이 열 1에서 시작됩니다.\",\"줄 바꿈 행의 들여쓰기가 부모와 동일합니다.\",\"줄 바꿈 행이 부모 쪽으로 +1만큼 들여쓰기됩니다.\",\"줄 바꿈 행이 부모 쪽으로 +2만큼 들여쓰기됩니다.\",\"줄 바꿈 행의 들여쓰기를 제어합니다.\",\"모든 문자가 동일한 너비라고 가정합니다. 이 알고리즘은 고정 폭 글꼴과 문자 모양의 너비가 같은 특정 스크립트(예: 라틴 문자)에 적절히 작동하는 빠른 알고리즘입니다.\",\"래핑 점 계산을 브라우저에 위임합니다. 이 알고리즘은 매우 느려서 대용량 파일의 경우 중단될 수 있지만 모든 경우에 적절히 작동합니다.\",\"래핑 점을 계산하는 알고리즘을 제어합니다.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"일반 텍스트\"],\n\"vs/editor/common/standaloneStrings\":[\"없음 선택\",\"줄 {0}, 열 {1}({2} 선택됨)입니다.\",\"행 {0}, 열 {1}\",\"{0} 선택 항목({1}자 선택됨)\",\"{0} 선택 항목\",\"이제 'accessibilitySupport' 설정을 'on'으로 변경합니다.\",\"지금 편집기 접근성 문서 페이지를 여세요.\",\"차이 편집기의 읽기 전용 창에서.\",\"diff 편집기 창에서.\",\" 읽기 전용 코드 편집기에서\",\" 코드 편집기에서\",\"화면 판독기 사용에 최적화되도록 편집기를 구성하려면 지금 Command+E를 누르세요.\",\"화면 판독기에 사용할 수 있도록 편집기를 최적화하려면 지금 Ctrl+E를 누르세요.\",\"에디터를 화면 판독기와 함께 사용하기에 적합하도록 구성했습니다.\",\"편집기는 화면 판독기 사용을 위해 절대로 최적화되지 않도록 구성됩니다. 현재로서는 그렇지 않습니다.\",\"현재 편집기에서 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.\",\"현재 편집기에서 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.\",\"현재 편집기에서 <Tab> 키를 누르면 탭 문자가 삽입됩니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.\",\"현재 편집기에서 <Tab> 키를 누르면 탭 문자가 삽입됩니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.\",\"Command+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 여세요.\",\"Ctrl+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 엽니다.\",\"이 도구 설명을 해제하고 Esc 키 또는 Shift+Esc를 눌러서 편집기로 돌아갈 수 있습니다.\",\"접근성 도움말 표시\",\"개발자: 검사 토큰\",\"줄 {0} 및 문자 {1}(으)로 이동\",\"줄 {0}(으)로 이동\",\"이동할 1과 {0} 사이의 줄 번호 입력\",\"검색하려면 1-{0}자 사이의 문자를 입력하세요.\",\"현재 줄: {0}. 줄 {1}(으)로 이동합니다.\",\"행 번호를 입력하고 콜론(:)과 문자 번호를 입력하여 검색하세요.\",\"줄 이동...\",\"{0}, {1}, 명령\",\"{0}, 명령\",\"실행하려는 작업의 이름을 입력하세요.\",\"명령 팔레트\",\"{0}, 기호\",\"검색하려는 ID의 이름을 입력하세요.\",\"기호로 가서...\",\"기호({0})\",\"모듈({0})\",\"클래스({0})\",\"인터페이스({0})\",\"메서드({0})\",\"함수({0})\",\"속성({0})\",\"변수({0})\",\"변수({0})\",\"생성자({0})\",\"호출({0})\",\"편집기 콘텐츠\",\"내게 필요한 옵션을 보려면 Ctrl+F1을 누릅니다.\",\"접근성 옵션은 Alt+F1을 눌러여 합니다.\",\"고대비 테마로 전환\",\"{1} 파일에서 편집을 {0}개 했습니다.\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"커서 위치의 줄 강조 표시에 대한 배경색입니다.\",\"커서 위치의 줄 테두리에 대한 배경색입니다.\",\"빠른 열기 및 찾기 기능 등을 통해 강조 표시된 영역의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"강조 영역 주변의 테두리에 대한 배경색입니다\",\"강조 표시된 기호(예: 정의로 이동 또는 다음/이전 기호로 이동)의 배경색입니다. 이 색상은 기본 장식을 숨기지 않도록 불투명하지 않아야 합니다.\",\"강조 표시된 기호 주위의 테두리 배경색입니다.\",\"편집기 커서 색입니다.\",\"편집기 커서의 배경색입니다. 블록 커서와 겹치는 글자의 색상을 사용자 정의할 수 있습니다.\",\"편집기의 공백 문자 색입니다.\",\"편집기 들여쓰기 안내선 색입니다.\",\"활성 편집기 들여쓰기 안내선 색입니다.\",\"편집기 줄 번호 색입니다.\",\"편집기 활성 영역 줄번호 색상\",\"ID는 사용되지 않습니다. 대신 'editorLineNumber.activeForeground'를 사용하세요.\",\"편집기 활성 영역 줄번호 색상\",\"편집기 눈금의 색상입니다.\",\"편집기 코드 렌즈의 전경색입니다.\",\"일치하는 괄호 뒤의 배경색\",\"일치하는 브래킷 박스의 색상\",\"개요 눈금 경계의 색상입니다.\",\"편집기 거터의 배경색입니다. 거터에는 글리프 여백과 행 수가 있습니다.\",\"편집기의 불필요한(사용하지 않는) 소스 코드 테두리 색입니다.\",\"편집기의 불필요한(사용하지 않는) 소스 코드 불투명도입니다. 예를 들어 \\\"#000000c0\\\"은 75% 불투명도로 코드를 렌더링합니다. 고대비 테마의 경우 페이드 아웃하지 않고 'editorUnnecessaryCode.border' 테마 색을 사용하여 불필요한 코드에 밑줄을 그으세요.\",\"오류의 개요 눈금자 마커 색입니다.\",\"경고의 개요 눈금자 마커 색입니다.\",\"정보의 개요 눈금자 마커 색입니다.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"괄호에 해당하는 영역을 표시자에 채색하여 표시합니다.\",\"대괄호로 이동\",\"괄호까지 선택\",\"대괄호로 이동(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"캐럿을 왼쪽으로 이동\",\"캐럿을 오른쪽으로 이동\"],\"vs/editor/contrib/caretOperations/transpose\":[\"문자 바꾸기\"],\"vs/editor/contrib/clipboard/clipboard\":[\"잘라내기\",\"잘라내기(&&T)\",\"복사\",\"복사(&&C)\",\"붙여넣기\",\"붙여넣기(&&P)\",\"구문을 강조 표시하여 복사\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"실행할 코드 작업의 종류입니다.\",\"반환된 작업이 적용되는 경우를 제어합니다.\",\"항상 반환된 첫 번째 코드 작업을 적용합니다.\",\"첫 번째 반환된 코드 작업을 적용합니다(이 작업만 있는 경우).\",\"반환된 코드 작업을 적용하지 마세요.\",\"기본 코드 작업만 반환되도록 할지 여부를 제어합니다.\",\"코드 작업을 적용하는 중 알 수 없는 오류가 발생했습니다.\",\"빠른 수정...\",\"사용 가능한 코드 동작이 없습니다.\",\"'{0}'에 대한 기본 코드 작업을 사용할 수 없음\",\"'{0}'에 대한 코드 작업을 사용할 수 없음\",\"사용할 수 있는 기본 코드 작업 없음\",\"사용 가능한 코드 동작이 없습니다.\",\"리팩터링...\",\"'{0}'에 대한 기본 리팩터링 없음\",\"'{0}'에 대한 리팩터링 없음\",\"기본 설정 리팩터링을 사용할 수 없음\",\"사용 가능한 리펙터링이 없습니다.\",\"소스 작업...\",\"'{0}'에 대한 기본 소스 작업을 사용할 수 없음\",\"'{0}'에 대한 소스 작업을 사용할 수 없음\",\"사용할 수 있는 기본 원본 작업 없음\",\"사용 가능한 소스 작업이 없습니다.\",\"가져오기 구성\",\"사용 가능한 가져오기 구성 작업이 없습니다.\",\"모두 수정\",\"모든 작업 수정 사용 불가\",\"자동 수정...\",\"사용할 수 있는 자동 수정 없음\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"수정 사항을 표시합니다. 사용 가능한 기본 수정({0})\",\"수정 사항 표시({0})\",\"수정 사항 표시\"],\"vs/editor/contrib/comment/comment\":[\"줄 주석 설정/해제\",\"줄 주석 설정/해제(&&T)\",\"줄 주석 추가\",\"줄 주석 제거\",\"블록 주석 설정/해제\",\"블록 주석 설정/해제(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"편집기 상황에 맞는 메뉴 표시\"],\n\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"커서 실행 취소\",\"커서 다시 실행\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"배열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"부울 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"클래스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"색 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안에 표시됩니다.\",\"상수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"생성자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"열거자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"열거자 멤버 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"이벤트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"필드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"파일 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"폴더 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"함수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"인터페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"키 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"키워드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"메서드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"모듈 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"네임스페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"null 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"숫자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"개체 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"연산자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"패키지 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"속성 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"참조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"코드 조각 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"문자열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"구조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"텍스트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"형식 매개변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"단위 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\"],\n\"vs/editor/contrib/find/findController\":[\"찾기\",\"찾기(&&F)\",\"선택 영역에서 찾기\",\"다음 찾기\",\"다음 찾기\",\"이전 찾기\",\"이전 찾기\",\"다음 선택 찾기\",\"이전 선택 찾기\",\"바꾸기\",\"바꾸기(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"찾기\",\"찾기\",\"이전 일치\",\"다음 일치 항목\",\"선택 항목에서 찾기\",\"닫기\",\"바꾸기\",\"바꾸기\",\"바꾸기\",\"모두 바꾸기\",\"바꾸기 모드 설정/해제\",\"처음 {0}개의 결과가 강조 표시되지만 모든 찾기 작업은 전체 텍스트에 대해 수행됩니다.\",\"{1}의 {0}\",\"결과 없음\",\"{0}개 찾음\",\"{1}에 대해 {0} 찾음\",\"{2}에서 {1}에 대해 {0} 찾음\",\"{1}에 대해 {0} 찾음\",\"Ctrl+Enter를 누르면 이제 모든 항목을 바꾸지 않고 줄 바꿈을 삽입합니다. editor.action.replaceAll의 키 바인딩을 수정하여 이 동작을 재정의할 수 있습니다.\"],\"vs/editor/contrib/folding/folding\":[\"펼치기\",\"재귀적으로 펼치기\",\"접기\",\"접기 전환\",\"재귀적으로 접기\",\"모든 블록 코멘트를 접기\",\"모든 영역 접기\",\"모든 영역 펼치기\",\"모두 접기\",\"모두 펼치기\",\"수준 {0} 접기\",\"편집기 선택 영역의 색입니다.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"편집기 글꼴 확대\",\"편집기 글꼴 축소\",\"편집기 글꼴 확대/축소 다시 설정\"],\"vs/editor/contrib/format/format\":[\"줄 {0}에서 1개 서식 편집을 수행했습니다.\",\"줄 {1}에서 {0}개 서식 편집을 수행했습니다.\",\"줄 {0}과(와) {1} 사이에서 1개 서식 편집을 수행했습니다.\",\"줄 {1}과(와) {2} 사이에서 {0}개 서식 편집을 수행했습니다.\"],\"vs/editor/contrib/format/formatActions\":[\"문서 서식\",\"선택 영역 서식\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"다음 문제로 이동 (오류, 경고, 정보)\",\"이전 문제로 이동 (오류, 경고, 정보)\",\"파일의 다음 문제로 이동 (오류, 경고, 정보)\",\"파일의 이전 문제로 이동 (오류, 경고, 정보)\",\"다음 문제(&&P)\",\"이전 문제(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"문제 {1}개 중 {0}개\",\"문제 {1}개 중 {0}개\",\"편집기 표식 탐색 위젯 오류 색입니다.\",\"편집기 표식 탐색 위젯 경고 색입니다.\",\"편집기 표식 탐색 위젯 정보 색입니다.\",\"편집기 표식 탐색 위젯 배경입니다.\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"피킹\",\"정의\",\"'{0}'에 대한 정의를 찾을 수 없습니다.\",\"정의를 찾을 수 없음\",\"정의로 이동\",\"정의로 이동(&&D)\",\"측면에서 정의 열기\",\"정의 피킹(Peeking)\",\"선언\",\"'{0}'에 대한 선언을 찾을 수 없음\",\"선언을 찾을 수 없음\",\"선언으로 이동\",\"&&선언으로 이동\",\"'{0}'에 대한 선언을 찾을 수 없음\",\"선언을 찾을 수 없음\",\"선언 미리 보기\",\"형식 정의\",\"'{0}'에 대한 형식 정의를 찾을 수 없습니다.\",\"형식 정의를 찾을 수 없습니다.\",\"형식 정의로 이동\",\"형식 정의로 이동(&&T)\",\"형식 정의 미리 보기\",\"구현\",\"'{0}'에 대한 구현을 찾을 수 없습니다.\",\"구현을 찾을 수 없습니다.\",\"구현으로 이동\",\"구현으로 이동\",\"피킹 구현\",\"'{0}'에 대한 참조가 없습니다.\",\"참조가 없습니다.\",\"참조로 이동\",\"&&참조로 이동\",\"참조\",\"참조 미리 보기\",\"참조\",\"기호로 이동\",\"위치\",\"'{0}'에 대한 결과가 없습니다.\",\"참조\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"{0}개 정의를 표시하려면 클릭하세요.\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"로드 중...\",\"{0}({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"파일을 확인하지 못했습니다.\",\"참조 {0}개\",\"참조 {0}개\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"미리 보기를 사용할 수 없음\",\"참조\",\"결과 없음\",\"참조\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"{2}열, {1}줄, {0}의 기호\",\"{0}의 기호 1개, 전체 경로 {1}\",\"{1}의 기호 {0}개, 전체 경로 {2}\",\"결과 없음\",\"{0}에서 기호 1개를 찾았습니다.\",\"{1}에서 기호 {0}개를 찾았습니다.\",\"{1}개 파일에서 기호 {0}개를 찾았습니다.\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1}의 {0} 기호, 다음의 경우 {2}\",\"{1}의 기호 {0}\"],\"vs/editor/contrib/hover/hover\":[\"가리키기 표시\",\"정의 미리 보기 가리킨 항목 표시\"],\"vs/editor/contrib/hover/modesContentHover\":[\"로드 중...\",\"문제 보기\",\"빠른 수정을 확인하는 중...\",\"빠른 수정을 사용할 수 없음\",\"빠른 수정...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"이전 값으로 바꾸기\",\"다음 값으로 바꾸기\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"위에 줄 복사\",\"위에 줄 복사(&&C)\",\"아래에 줄 복사\",\"아래에 줄 복사(&&P)\",\"중복된 선택 영역\",\"&&중복된 선택 영역\",\"줄 위로 이동\",\"줄 위로 이동(&&V)\",\"줄 아래로 이동\",\"줄 아래로 이동(&&L)\",\"줄을 오름차순 정렬\",\"줄을 내림차순으로 정렬\",\"후행 공백 자르기\",\"줄 삭제\",\"줄 들여쓰기\",\"줄 내어쓰기\",\"위에 줄 삽입\",\"아래에 줄 삽입\",\"왼쪽 모두 삭제\",\"우측에 있는 항목 삭제\",\"줄 연결\",\"커서 주위 문자 바꾸기\",\"대문자로 변환\",\"소문자로 변환\",\"단어의 첫 글자를 대문자로 변환\"],\"vs/editor/contrib/links/links\":[\"명령 실행\",\"링크로 이동\",\"Cmd+클릭\",\"Ctrl+클릭\",\"Option+클릭\",\"Alt+클릭\",\"{0} 형식이 올바르지 않으므로 이 링크를 열지 못했습니다\",\"대상이 없으므로 이 링크를 열지 못했습니다.\",\"링크 열기\"],\"vs/editor/contrib/message/messageController\":[\"읽기 전용 편집기에서는 편집할 수 없습니다.\"],\"vs/editor/contrib/multicursor/multicursor\":[\"위에 커서 추가\",\"위에 커서 추가(&&A)\",\"아래에 커서 추가\",\"아래에 커서 추가(&&D)\",\"줄 끝에 커서 추가\",\"줄 끝에 커서 추가(&&U)\",\"맨 아래에 커서 추가\",\"맨 위에 커서 추가\",\"다음 일치 항목 찾기에 선택 항목 추가\",\"다음 항목 추가(&&N)\",\"이전 일치 항목 찾기에 선택 항목 추가\",\"이전 항목 추가(&&R)\",\"다음 일치 항목 찾기로 마지막 선택 항목 이동\",\"마지막 선택 항목을 이전 일치 항목 찾기로 이동\",\"일치 항목 찾기의 모든 항목 선택\",\"모든 항목 선택(&&O)\",\"모든 항목 변경\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"매개 변수 힌트 트리거\"],\n\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, 힌트\"],\"vs/editor/contrib/peekView/peekView\":[\"닫기\",\"Peek 뷰 제목 영역의 배경색입니다.\",\"Peek 뷰 제목 색입니다.\",\"Peek 뷰 제목 정보 색입니다.\",\"Peek 뷰 테두리 및 화살표 색입니다.\",\"Peek 뷰 결과 목록의 배경색입니다.\",\"Peek 뷰 결과 목록에서 라인 노드의 전경색입니다.\",\"Peek 뷰 결과 목록에서 파일 노드의 전경색입니다.\",\"Peek 뷰 결과 목록에서 선택된 항목의 배경색입니다.\",\"Peek 뷰 결과 목록에서 선택된 항목의 전경색입니다.\",\"Peek 뷰 편집기의 배경색입니다.\",\"Peek 뷰 편집기의 거터 배경색입니다.\",\"Peek 뷰 결과 목록의 일치 항목 강조 표시 색입니다.\",\"Peek 뷰 편집기의 일치 항목 강조 표시 색입니다.\",\"Peek 뷰 편집기의 일치 항목 강조 표시 테두리입니다.\"],\"vs/editor/contrib/rename/rename\":[\"결과가 없습니다.\",\"위치 이름을 바꾸는 중 알 수 없는 오류가 발생했습니다.\",\"'{0}' 이름 바꾸기\",\"'{0}'을(를) '{1}'(으)로 이름을 변경했습니다. 요약: {2}\",\"이름 바꾸기를 통해 편집 내용을 적용하지 못했습니다.\",\"이름 바꾸기를 통해 편집 내용을 계산하지 못했습니다.\",\"기호 이름 바꾸기\",\"이름을 바꾸기 전에 변경 내용을 미리 볼 수 있는 기능 사용/사용 안 함\"],\"vs/editor/contrib/rename/renameInputField\":[\"입력 이름을 바꾸세요. 새 이름을 입력한 다음 [Enter] 키를 눌러 커밋하세요.\",\"이름을 바꿀 {0}, 미리 볼 {1}\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"선택 영역 확장\",\"선택 영역 확장(&&E)\",\"선택 영역 축소\",\"선택 영역 축소(&&S)\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일  \",\"토요일\",\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\",\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\",\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],\"vs/editor/contrib/suggest/suggestController\":[\"{0}의 {1}개의 수정사항을 수락하는 중\",\"제안 항목 트리거\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"제안 위젯의 배경색입니다.\",\"제안 위젯의 테두리 색입니다.\",\"제안 위젯의 전경색입니다.\",\"제한 위젯에서 선택된 항목의 배경색입니다.\",\"제안 위젯의 일치 항목 강조 표시 색입니다.\",\"자세히 알아보기...{0}\",\"간단히 보기...{0}\",\"로드 중...\",\"로드 중...\",\"제안 항목이 없습니다.\",\"간단히 표시하려면 {0}...\",\"자세히 표시하려면 {0}...\",\"항목 {0}, 문서: {1}\",\"삽입할 {0}, 바꿀 {1}\",\"바꿀 {0}, 삽입할 {1}\",\"수락할 {0}\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"<Tab> 키로 포커스 이동 설정/해제\",\"이제 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다.\",\"이제 <Tab> 키를 누르면 탭 문자가 삽입됩니다.\"],\"vs/editor/contrib/tokenization/tokenization\":[\"개발자: 강제로 다시 토큰화\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"변수 읽기와 같은 읽기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"변수에 쓰기와 같은 쓰기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"변수 읽기와 같은 읽기 액세스 중 기호의 테두리 색입니다.\",\"변수에 쓰기와 같은 쓰기 액세스 중 기호의 테두리 색입니다.\",\"기호 강조 표시의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"쓰기 액세스 기호에 대한 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"다음 강조 기호로 이동\",\"이전 강조 기호로 이동\",\"기호 강조 표시 트리거\"],\"vs/platform/configuration/common/configurationRegistry\":[\"기본 구성 재정의\",\"언어에 대해 재정의할 편집기 설정을 구성합니다.\",\"이 설정은 언어별 구성을 지원하지 않습니다.\",\"'{0}'을(를) 등록할 수 없습니다. 이는 언어별 편집기 설정을 설명하는 속성 패턴인 '\\\\\\\\[.*\\\\\\\\]$'과(와) 일치합니다. 'configurationDefaults' 기여를 사용하세요.\",\"'{0}'을(를) 등록할 수 없습니다. 이 속성은 이미 등록되어 있습니다.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0})을(를) 눌렀습니다. 둘째 키는 잠시 기다렸다가 누르세요.\",\"키 조합({0}, {1})은 명령이 아닙니다.\"],\n\"vs/platform/list/browser/listService\":[\"워크벤치\",\"Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.\",\"Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.\",\"마우스로 트리와 목록의 항목을 다중 선택에 추가할 때 사용할 한정자입니다(예를 들어 탐색기에서 편집기와 SCM 보기를 여는 경우). '옆에서 열기' 마우스 제스처(지원되는 경우)는 다중 선택 한정자와 충돌하지 않도록 조정됩니다.\",\"트리와 목록에서 마우스를 사용하여 항목을 여는 방법을 제어합니다(지원되는 경우). 트리에서 자식 항목이 있는 부모 항목의 경우 이 설정은 부모 항목을 한 번 클릭으로 확장할지 또는 두 번 클릭으로 확장할지 여부를 제어합니다. 일부 트리와 목록에서는 이 설정을 적용할 수 없는 경우  무시하도록 선택할 수 있습니다. \",\"Workbench에서 목록 및 트리가 가로 스크롤을 지원하는지 여부를 제어합니다.\",\"워크벤치에서 수평 스크롤 지원 여부를 제어 합니다.\",\"이 설정은 사용되지 않습니다. 대신 '{0}'을(를) 사용하세요.\",\"트리 들여쓰기를 픽셀 단위로 제어합니다.\",\"트리에서 들여쓰기 가이드를 렌더링할지 여부를 제어합니다.\",\"간단한 키보드 탐색에서는 키보드 입력과 일치하는 요소에 집중합니다. 일치는 접두사에서만 수행됩니다.\",\"키보드 탐색 강조 표시에서는 키보드 입력과 일치하는 요소를 강조 표시합니다. 이후로 탐색에서 위 및 아래로 이동하는 경우 강조 표시된 요소만 트래버스합니다.\",\"키보드 탐색 필터링에서는 키보드 입력과 일치하지 않는 요소를 모두 필터링하여 숨깁니다.\",\"워크벤치의 목록 및 트리 키보드 탐색 스타일을 제어합니다. 간소화하고, 강조 표시하고, 필터링할 수 있습니다.\",\"목록 및 트리에서 키보드 탐색이 입력만으로 자동 트리거되는지 여부를 제어합니다. 'false'로 설정하면 'list.toggleKeyboardNavigation' 명령을 실행할 때만 키보드 탐색이 트리거되어 바로 가기 키를 할당할 수 있습니다.\"],\n\"vs/platform/markers/common/markers\":[\"오류\",\"경고\",\"정보\"],\n\"vs/platform/theme/common/colorRegistry\":[\"전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"오류 메시지에 대한 전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"포커스가 있는 요소의 전체 테두리 색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 요소 주위의 추가 테두리입니다.\",\"더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 활성 요소 주위의 추가 테두리입니다.\",\"텍스트 내 링크의 전경색입니다.\",\"텍스트 내 코드 블록의 전경색입니다.\",\"편집기 내에서 찾기/바꾸기 같은 위젯의 그림자 색입니다.\",\"입력 상자 배경입니다.\",\"입력 상자 전경입니다.\",\"입력 상자 테두리입니다.\",\"입력 필드에서 활성화된 옵션의 테두리 색입니다.\",\"입력 필드에서 활성화된 옵션의 배경색입니다.\",\"정보 심각도의 입력 유효성 검사 배경색입니다.\",\"정보 심각도의 입력 유효성 검사 전경색입니다.\",\"정보 심각도의 입력 유효성 검사 테두리 색입니다.\",\"경고 심각도의 입력 유효성 검사 배경색입니다.\",\"경고 심각도의 입력 유효성 검사 전경색입니다.\",\"경고 심각도의 입력 유효성 검사 테두리 색입니다.\",\"오류 심각도의 입력 유효성 검사 배경색입니다.\",\"오류 심각도의 입력 유효성 검사 전경색입니다.\",\"오류 심각도의 입력 유효성 검사 테두리 색입니다.\",\"드롭다운 배경입니다.\",\"드롭다운 전경입니다.\",\"그룹화 레이블에 대한 빠른 선택기 색입니다.\",\"그룹화 테두리에 대한 빠른 선택기 색입니다.\",\"배지 배경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.\",\"배지 전경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.\",\"스크롤되는 보기를 나타내는 스크롤 막대 그림자입니다.\",\"스크롤 막대 슬라이버 배경색입니다.\",\"마우스로 가리킬 때 스크롤 막대 슬라이더 배경색입니다.\",\"클릭된 상태일 때 스크롤 막대 슬라이더 배경색입니다.\",\"장기 작업을 대상으로 표시될 수 있는 진행률 표시줄의 배경색입니다.\",\"편집기 내 오류 표시선의 전경색입니다.\",\"편집기에서 오류 상자의 테두리 색입니다.\",\"편집기 내 경고 표시선의 전경색입니다.\",\"편집기에서 경고 상자의 테두리 색입니다.\",\"편집기 내 정보 표시선의 전경색입니다.\",\"편집기에서 정보 상자의 테두리 색입니다.\",\"편집기에서 힌트 표시선의 전경색입니다.\",\"편집기에서 힌트 상자의 테두리 색입니다.\",\"편집기 배경색입니다.\",\"편집기 기본 전경색입니다.\",\"찾기/바꾸기 같은 편집기 위젯의 배경색입니다.\",\"찾기/바꾸기와 같은 편집기 위젯의 전경색입니다.\",\"편집기 위젯의 테두리 색입니다. 위젯에 테두리가 있고 위젯이 색상을 무시하지 않을 때만 사용됩니다.\",\"편집기 위젯 크기 조정 막대의 테두리 색입니다. 이 색은 위젯에서 크기 조정 막대를 표시하도록 선택하고 위젯에서 색을 재지정하지 않는 경우에만 사용됩니다.\",\"편집기 선택 영역의 색입니다.\",\"고대비를 위한 선택 텍스트의 색입니다.\",\"비활성 편집기의 선택 항목 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 영역과 동일한 콘텐츠가 있는 영역의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 영역과 동일한 콘텐츠가 있는 영역의 테두리 색입니다.\",\"현재 검색 일치 항목의 색입니다.\",\"기타 검색 일치 항목의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"검색을 제한하는 범위의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"현재 검색과 일치하는 테두리 색입니다.\",\"다른 검색과 일치하는 테두리 색입니다.\",\"검색을 제한하는 범위의 테두리 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"호버가 표시된 단어 아래를 강조 표시합니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"편집기 호버의 배경색.\",\"편집기 호버의 전경색입니다.\",\"편집기 호버의 테두리 색입니다.\",\"편집기 호버 상태 표시줄의 배경색입니다.\",\"활성 링크의 색입니다.\",\"전구 작업 아이콘에 사용되는 색상입니다.\",\"전구 자동 수정 작업 아이콘에 사용되는 색상입니다.\",\"삽입된 텍스트의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"제거된 텍스트 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"삽입된 텍스트의 윤곽선 색입니다.\",\"제거된 텍스트의 윤곽선 색입니다.\",\"두 텍스트 편집기 사이의 테두리 색입니다.\",\"목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"마우스로 항목을 가리킬 때 목록/트리 배경입니다.\",\"마우스로 항목을 가리킬 때 목록/트리 전경입니다.\",\"마우스로 항목을 이동할 때 목록/트리 끌어서 놓기 배경입니다.\",\"목록/트리 내에서 검색할 때 일치 항목 강조 표시의 목록/트리 전경색입니다.\",\"목록 및 트리에서 형식 필터 위젯의 배경색입니다.\",\"목록 및 트리에서 형식 필터 위젯의 윤곽선 색입니다.\",\"일치하는 항목이 없을 때 목록 및 트리에서 표시되는 형식 필터 위젯의 윤곽선 색입니다.\",\"들여쓰기 가이드의 트리 스트로크 색입니다.\",\"메뉴 테두리 색입니다.\",\"메뉴 항목 전경색입니다.\",\"메뉴 항목 배경색입니다.\",\"메뉴의 선택된 메뉴 항목 전경색입니다.\",\"메뉴의 선택된 메뉴 항목 배경색입니다.\",\"메뉴의 선택된 메뉴 항목 테두리 색입니다.\",\"메뉴에서 구분 기호 메뉴 항목의 색입니다.\",\"코드 조각 탭 정지의 강조 표시 배경색입니다.\",\"코드 조각 탭 정지의 강조 표시 테두리 색입니다.\",\"코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.\",\"코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.\",\"일치 항목 찾기의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 항목의 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"일치하는 항목을 찾기 위한 미니맵 표식 색입니다.\",\"편집기 선택 작업을 위한 미니맵 마커 색입니다.\",\"오류에 대한 미니맵 마커 색상입니다.\",\"경고의 미니맵 마커 색상입니다.\",\"문제 오류 아이콘에 사용되는 색입니다.\",\"문제 경고 아이콘에 사용되는 색입니다.\",\"문제 정보 아이콘에 사용되는 색입니다.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ko.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.ru.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ru\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (произошло снова)\",\"{0} (было {1} раз)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Ввод\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"С учетом регистра\",\"Слово целиком\",\"Использовать регулярное выражение\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Ввод\",\"Сохранить регистр\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Ошибка: {0}\",\"Предупреждение: {0}\",\"Информация: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"свободный\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Для перехода используйте клавиши навигации.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Сброс\",\"Отключить фильтр по типу\",\"Включить фильтр по типу\",\"Элементы не найдены\",\"Сопоставлено элементов: {0} из {1}\"],\n\"vs/base/common/keybindingLabels\":[\"CTRL\",\"SHIFT\",\"ALT\",\"Windows\",\"CTRL\",\"SHIFT\",\"ALT\",\"Превосходно\",\"CTRL\",\"SHIFT\",\"ALT\",\"Команда\",\"CTRL\",\"SHIFT\",\"ALT\",\"Windows\",\"CTRL\",\"SHIFT\",\"ALT\",\"Превосходно\"],\"vs/base/common/severity\":[\"Ошибка\",\"Предупреждение\",\"Информация\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, средство выбора\",\"средство выбора\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Средство быстрого выбора. Введите, чтобы сузить результаты.\",\"Средство быстрого выбора\",\"Результаты: {0}\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Выделить все\",\"&&Отменить\",\"&&Повторить\"],\"vs/editor/browser/controller/textAreaHandler\":[\"Редактор сейчас недоступен. Чтобы открыть список действий, нажмите ALT+F1.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Количество курсоров ограничено {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Нельзя сравнить файлы, потому что один из файлов слишком большой.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Закрыть\",\"строки отсутствуют\",\"1 строка\",\"строк: {0}\",\"Различие {0} из {1}; исходная версия: {2}, {3}, измененная версия: {4}, {5}\",\"пустой\",\"Исходная версия: {0}, измененная версия: {1}: {2}\",\"+ измененная версия: {0}: {1}\",\"- исходная версия: {0}: {1}\",\"Перейти к следующему различию\",\"Перейти к предыдущему различию\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Копировать удаленные строки\",\"Копировать удаленную строку\",\"Копировать удаленную строку ({0})\",\"Отменить это изменение\",\"Копировать удаленную строку ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Редактор\",'Число пробелов в табуляции. Этот параметр переопределяется на основе содержимого файла, если установлен параметр \"#editor.detectIndentation#\".','Вставлять пробелы при нажатии клавиши TAB. Этот параметр переопределяется на основе содержимого файла, если установлен параметр \"#editor.detectIndentation#\". ','Управляет тем, будут ли параметры \"#editor.tabSize#\" и \"#editor.insertSpaces#\" определяться автоматически при открытии файла на основе содержимого файла.',\"Удалить автоматически вставляемый конечный пробел.\",\"Специальная обработка для больших файлов с отключением некоторых функций, которые интенсивно используют память.\",\"Определяет, следует ли оценивать завершения на основе слов в документе.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Оставлять быстрый редактор открытым даже при двойном щелчке по его содержимому и при нажатии ESC.\",\"Строки, длина которых превышает указанное значение, не будут размечены из соображений производительности\",\"Время ожидания в миллисекундах, по истечении которого вычисление несовпадений отменяется. Укажите значение 0, чтобы не использовать время ожидания.\",\"Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.\",\"Определяет, должен ли редактор несовпадений трактовать несовпадения символов-разделителей как различия.\",\"Определяет, должны ли в редакторе отображаться индикаторы +/- для добавленных или удаленных изменений.\"],\n\"vs/editor/common/config/editorOptions\":[\"Редактор будет определять, подключено ли средство чтения с экрана, с помощью API-интерфейсов платформы.\",\"Редактор будет оптимизирован для использования со средством чтения с экрана в постоянном режиме.\",\"Редактор никогда не будет оптимизироваться для использования со средством чтения с экрана.\",\"Определяет, следует ли запустить редактор в режиме оптимизации для средства чтения с экрана.\",\"Определяет, вставляется ли пробел при комментировании.\",\"Управляет тем, копируется ли текущая строка при копировании без выделения.\",\"Определяет, можно ли передать строку поиска в мини-приложение поиска из текста, выделенного в редакторе.\",'Никогда не включать функцию \"Найти в выделении\" автоматически (по умолчанию)','Всегда включать функцию \"Найти в выделении\" автоматически','Автоматическое включение функции \"Найти в выделении\" при выборе нескольких строк содержимого.',\"Определяет, выполняется ли поиск для выбранного текста или для всего файла в редакторе.\",\"Определяет, должно ли мини-приложение поиска считывать или изменять общий буфер обмена поиска в macOS.\",\"Определяет, должно ли мини-приложение поиска добавлять дополнительные строки в начале окна редактора. Если задано значение true, вы можете прокрутить первую строку при отображаемом мини-приложении поиска.\",\"Включает/отключает лигатуры шрифта.\",\"Явные параметры для функций шрифтов.\",\"Настраивает лигатуры.\",\"Управляет размером шрифта в пикселях.\",\"Показать предварительные результаты (по умолчанию)\",\"Перейти к основному результату и показать быстрый редактор\",\"Перейдите к основному результату и включите быструю навигацию для остальных\",\"Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.editor.gotoLocation.multipleDefinitions' или 'editor.editor.gotoLocation.multipleImplementations'.\",'Управляет поведением команды \"Перейти к определению\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к определению типа\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к объявлению\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к реализациям\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к ссылкам\" при наличии нескольких целевых расположений.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом операции \"Перейти к определению\" является текущее расположение.','Идентификатор альтернативной команды, которая выполняется в том случае, если результатом операции \"Перейти к определению типа\" является текущее расположение.','Идентификатор альтернативный команды, выполняемой в том случае, когда результатом операции \"Перейти к объявлению\" является текущее расположение.','Идентификатор альтернативный команды, выполняемой, когда результатом команды \"Перейти к реализации\" является текущее расположение.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом выполнения операции \"Перейти к ссылке\" является текущее расположение.',\"Управляет тем, отображается ли наведение.\",\"Определяет время задержки в миллисекундах перед отображением наведения.\",\"Управляет тем, должно ли наведение оставаться видимым при наведении на него курсора мыши.\",\"Включает индикатор действия кода в редакторе.\",\"Управляет высотой строк. Укажите 0 для вычисления высоты строки по размеру шрифта.\",\"Определяет, отображается ли мини-карта.\",\"Определяет, с какой стороны будет отображаться мини-карта.\",\"Определяет, когда отображается ползунок мини-карты.\",\"Масштаб содержимого, выводимого на мини-карте.\",\"Отображает фактические символы в строке вместо цветных блоков.\",\"Ограничивает ширину мини-карты, чтобы количество отображаемых столбцов не превышало определенное количество.\",\"Включает всплывающее окно с документацией по параметру и сведениями о типе, которое отображается во время набора.\",\"Определяет, меню подсказок остается открытым или закроется при достижении конца списка.\",\"Разрешение кратких предложений в строках.\",\"Разрешение кратких предложений в комментариях.\",\"Разрешение кратких предложений вне строк и комментариев.\",\"Определяет, должны ли при вводе текста автоматически отображаться предложения.\",\"Номера строк не отображаются.\",\"Отображаются абсолютные номера строк.\",\"Отображаемые номера строк вычисляются как расстояние в строках до положения курсора.\",\"Номера строк отображаются каждые 10 строк.\",\"Управляет отображением номеров строк.\",\"Отображать вертикальные линейки после определенного числа моноширинных символов. Для отображения нескольких линеек укажите несколько значений. Если не указано ни одного значения, вертикальные линейки отображаться не будут.\",\"Вставить предложение без перезаписи текста справа от курсора.\",\"Вставить предложение и перезаписать текст справа от курсора.\",\"Определяет, будут ли перезаписываться слова при принятии вариантов завершения. Обратите внимание, что это зависит от расширений, использующих эту функцию.\",'Определяет, следует ли выделять неожиданные изменения текста при принятии вариантов завершения, например, для замены необходим вариант \"insertMode\", но завершение поддерживает только вариант \"insert\".',\"Управляет тем, допускаются ли небольшие опечатки в предложениях фильтрации и сортировки.\",\"Определяет, следует ли учитывать при сортировке слова, расположенные рядом с курсором.\",'Определяет, используются ли сохраненные варианты выбора предложений совместно несколькими рабочими областями и окнами (требуется \"#editor.suggestSelection#\").',\"Управляет тем, могут ли использоваться быстрые предложения в активном фрагменте.\",\"Указывает, нужно ли отображать значки в предложениях.\",\"Определяет, сколько предложений IntelliSense будет показано до отображения полосы прокрутки (максимум 15).\",\"Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.suggest.showKeywords' или 'editor.suggest.showSnippets'.\",'Когда параметр включен, в IntelliSense отображаются предложения \"method\".','Когда параметр включен, в IntelliSense отображаются предложения \"function\".','Когда параметр включен, в IntelliSense отображаются предложения \"constructor\".','Когда параметр включен, в IntelliSense отображаются предложения \"field\".','Когда параметр включен, в IntelliSense отображаются предложения \"variable\".','Когда параметр включен, в IntelliSense отображаются предложения \"class\".','Когда параметр включен, в IntelliSense отображаются предложения \"struct\".','Когда параметр включен, в IntelliSense отображаются предложения \"interface\".','Когда параметр включен, в IntelliSense отображаются предложения \"module\".','Когда параметр включен, в IntelliSense отображаются предложения \"property\".','Когда параметр включен, в IntelliSense отображаются предложения \"event\".','Когда параметр включен, в IntelliSense отображаются предложения \"operator\".','Когда параметр включен, в IntelliSense отображаются предложения \"unit\".','Когда параметр включен, в IntelliSense отображаются предложения \"value\".','Когда параметр включен, в IntelliSense отображаются предложения \"constant\".','Когда параметр включен, в IntelliSense отображаются предложения \"enum\".','Когда параметр включен, в IntelliSense отображаются предложения \"enumMember\".','Когда параметр включен, в IntelliSense отображаются предложения \"keyword\".','Когда параметр включен, в IntelliSense отображаются предложения \"text\".','Когда параметр включен, в IntelliSense отображаются предложения \"color\".','Когда параметр включен, в IntelliSense отображаются предложения \"file\".','Когда параметр включен, в IntelliSense отображаются предложения \"reference\".','Когда параметр включен, в IntelliSense отображаются предложения \"customcolor\".','Когда параметр включен, в IntelliSense отображаются предложения \"folder\".','Когда параметр включен, в IntelliSense отображаются предложения \"typeParameter\".','Когда параметр включен, в IntelliSense отображаются предложения \"snippet\".',\"Определяет видимость строки состояния в нижней части виджета предложений.\",'Определяет, будут ли предложения приниматься при вводе символов фиксации. Например, в JavaScript точка с запятой (\";\") может быть символом фиксации, при вводе которого предложение принимается.',\"Принимать предложение при нажатии клавиши ВВОД только в том случае, если оно изменяет текст.\",\"Определяет, будут ли предложения приниматься клавишей ВВОД в дополнение к клавише TAB. Это помогает избежать неоднозначности между вставкой новых строк и принятием предложений.\",\"Задает количество строк в редакторе, которые могут быть прочитаны средством чтения с экрана. Предупреждение: из-за технических ограничений этот число не может превышать значение по умолчанию.\",\"Содержимое редактора\",\"Использовать конфигурации языка для автоматического закрытия скобок.\",\"Автоматически закрывать скобки только в том случае, если курсор находится слева от пробела.\",\"Определяет, должен ли редактор автоматически добавлять закрывающую скобку при вводе пользователем открывающей скобки.\",\"Заменять закрывающие кавычки и скобки при вводе только в том случае, если кавычки или скобки были вставлены автоматически.\",\"Определяет, должны ли в редакторе заменяться закрывающие кавычки или скобки при вводе.\",\"Использовать конфигурации языка для автоматического закрытия кавычек.\",\"Автоматически закрывать кавычки только в том случае, если курсор находится слева от пробела.\",\"Определяет, должен ли редактор автоматически закрывать кавычки, если пользователь добавил открывающую кавычку.\",\"Редактор не будет вставлять отступы автоматически.\",\"Редактор будет сохранять отступ текущей строки.\",\"Редактор будет сохранять отступы текущей строки и учитывать скобки в соответствии с синтаксисом языка.\",\"Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки и вызывать специальные правила onEnterRules, определяемые языками.\",\"Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки, вызывать специальные правила onEnterRules, определяемые языками и учитывать правила отступа indentationRules, определяемые языками.\",\"Определяет, должен ли редактор автоматически изменять отступы, когда пользователи вводят, вставляют или перемещают текст или изменяют отступы строк.\",\"Использовать конфигурации языка для автоматического обрамления выделений.\",\"Обрамлять с помощью кавычек, а не скобок.\",\"Обрамлять с помощью скобок, а не кавычек.\",\"Определяет, должен ли редактор автоматически обрамлять выделения.\",\"Определяет, отображается ли CodeLens в редакторе.\",\"Определяет, должны ли в редакторе отображаться внутренние декораторы цвета и средство выбора цвета.\",\"Определяет, будет ли текст скопирован в буфер обмена с подсветкой синтаксиса.\",\"Управляет стилем анимации курсора.\",\"Управляет тем, следует ли включить плавную анимацию курсора.\",\"Управляет стилем курсора.\",'Определяет минимальное число видимых начальных и конечных линий, окружающих курсор. Этот параметр имеет название \"scrollOff\" или \"scrollOffset\" в некоторых других редакторах.','\"cursorSurroundingLines\" применяется только при запуске с помощью клавиатуры или API.','\"cursorSurroundingLines\" принудительно применяется во всех случаях.','Определяет, когда необходимо применять \"cursorSurroundingLines\".',\"Управляет шириной курсора, когда для параметра \\\"#editor.cursorStyle#\\\" установлено значение 'line'\",\"Определяет, следует ли редактору разрешить перемещение выделенных элементов с помощью перетаскивания.\",\"Коэффициент увеличения скорости прокрутки при нажатии клавиши ALT.\",\"Определяет, включено ли свертывание кода в редакторе.\",\"Управляет тем, как вычисляются диапазоны сворачивания. При указании параметра 'auto' используется стратегия сворачивания на основе языка, если она доступна. При указании параметра 'indentation' принудительно используется стратегия на основе отступов.\",\"Определяет, должен ли редактор выделять сложенные диапазоны.\",\"Определяет семейство шрифтов.\",\"Управляет насыщенностью шрифта.\",\"Определяет, будет ли редактор автоматически форматировать вставленное содержимое. Модуль форматирования должен быть доступен и иметь возможность форматировать диапазон в документе.\",\"Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.\",\"Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.\",\"Управляет скрытием курсора в обзорной линейке.\",\"Управляет тем, должна ли выделяться активная направляющая отступа в редакторе.\",\"Управляет интервалом между буквами в пикселях.\",\"Определяет, должен ли редактор определять ссылки и делать их доступными для щелчка.\",\"Выделять соответствующие скобки.\",\"Множитель, используемый для параметров deltaX и deltaY событий прокрутки колесика мыши.\",\"Изменение размера шрифта в редакторе при нажатой клавише CTRL и движении колесика мыши.\",\"Объединить несколько курсоров, когда они перекрываются.\",\"Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.\",\"Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.\",'Модификатор, который будет использоваться для добавления нескольких курсоров с помощью мыши. Жесты мыши \"Перейти к определению\" и \"Открыть ссылку\" будут изменены так, чтобы они не конфликтовали с несколькими курсорами. [Дополнительные сведения](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier). ',\"Каждый курсор вставляет одну строку текста.\",\"Каждый курсор вставляет полный текст.\",\"Управляет вставкой, когда число вставляемых строк соответствует числу курсоров.\",\"Определяет, должен ли редактор выделять экземпляры семантических символов.\",\"Определяет, должна ли отображаться граница на обзорной линейке.\",\"Фокусировка на дереве при открытии обзора\",\"Фокусировка на редакторе при открытии обзора\",\"Определяет, следует ли переключить фокус на встроенный редактор или дерево в виджете обзора.\",\"Управляет длительностью задержки (в мс) перед отображением кратких предложений.\",\"Определяет, должны ли в редакторе отображаться управляющие символы.\",\"Определяет, должны ли в редакторе отображаться направляющие отступа.\",\"Отображение номера последней строки, когда файл заканчивается новой строкой.\",\"Выделяет поле и текущую строку.\",\"Определяет, должен ли редактор выделять текущую строку.\",\"Render whitespace characters except for single spaces between words.\",\"Отображать пробелы только в выделенном тексте.\",\"Определяет, должны ли в редакторе отображаться пробелы.\",\"Управляет тем, необходимо ли отображать скругленные углы для выделения.\",\"Управляет количеством дополнительных символов, на которое содержимое редактора будет прокручиваться по горизонтали.\",\"Определяет, будет ли содержимое редактора прокручиваться за последнюю строку.\",\"Контролирует, следует ли поддерживать первичный буфер обмена Linux.\",\"Определяет, должен ли редактор выделять совпадения, аналогичные выбранному фрагменту.\",\"Определяет, будут ли автоматически скрываться элементы управления свертыванием на полях.\",\"Управляет скрытием неиспользуемого кода.\",\"Отображать предложения фрагментов поверх других предложений.\",\"Отображать предложения фрагментов под другими предложениями.\",\"Отображать предложения фрагментов рядом с другими предложениями.\",\"Не отображать предложения фрагментов.\",\"Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.\",\"Определяет, будет ли использоваться анимация при прокрутке содержимого редактора\",'Размер шрифта мини-приложения с предложениями. Если установить значение \"0\", будет использовано значение \"#editor.fontSize#\".','Высота строки мини-приложения с предложениями. Если установить значение \"0\", будет использовано значение \"#editor.lineHeight#\".',\"Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.\",\"Всегда выбирать первое предложение.\",'Выбор недавних предложений, если только дальнейший ввод не приводит к использованию одного из них, например \"console.| -> console.log\", так как \"log\" недавно использовался для завершения.','Выбор предложений с учетом предыдущих префиксов, использованных для завершения этих предложений, например \"co -> console\" и \"con -> const\".',\"Управляет предварительным выбором предложений при отображении списка предложений.\",\"При использовании дополнения по TAB будет добавляться наилучшее предложение при нажатии клавиши TAB.\",\"Отключить дополнение по TAB.\",'Вставка дополнений по TAB при совпадении их префиксов. Функция работает оптимально, если параметр \"quickSuggestions\" отключен.',\"Включает дополнения по TAB.\",\"Вставка и удаление пробелов после позиции табуляции\",\"Символы, которые будут использоваться как разделители слов при выполнении навигации или других операций, связанных со словами.\",\"Строки не будут переноситься никогда.\",\"Строки будут переноситься по ширине окна просмотра.\",'Строки будут переноситься по \"#editor.wordWrapColumn#\".','Строки будут перенесены по минимальному значению из двух: ширина окна просмотра и \"#editor.wordWrapColumn#\".',\"Управляет тем, как следует переносить строки.\",'Определяет столбец переноса редактора, если значение \"#editor.wordWrap#\" — \"wordWrapColumn\" или \"bounded\".',\"Без отступа. Перенос строк начинается со столбца 1.\",\"Перенесенные строки получат тот же отступ, что и родительская строка.\",\"Перенесенные строки получат отступ, увеличенный на единицу по сравнению с родительской строкой. \",\"Перенесенные строки получат отступ, увеличенный на два по сравнению с родительской строкой.\",\"Управляет отступом строк с переносом по словам.\",\"Предполагает, что все символы имеют одинаковую ширину. Это быстрый алгоритм, который работает правильно для моноширинных шрифтов и некоторых скриптов (например, латинских символов), где глифы имеют одинаковую ширину.\",\"Делегирует вычисление точек переноса браузеру. Это медленный алгоритм, который может привести к зависаниям при обработке больших файлов, но работает правильно во всех случаях.\",\"Управляет алгоритмом, вычисляющим точки переноса.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Простой текст\"],\n\"vs/editor/common/standaloneStrings\":[\"Ничего не выбрано\",\"Строка {0}, столбец {1} (выбрано: {2})\",\"Строка {0}, столбец {1}\",\"Выделений: {0} (выделено символов: {1})\",\"Выделений: {0}\",'Теперь для параметра \"accessibilitySupport\" устанавливается значение \"вкл\".',\"Открывается страница документации о специальных возможностях редактора.\",\"в панели только для чтения редактора несовпадений.\",\"на панели редактора несовпадений.\",\" в редакторе кода только для чтения\",\" в редакторе кода\",\"Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите COMMAND+E.\",\"Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите CTRL+E.\",\"Редактор настроен для оптимальной работы со средством чтения с экрана.\",\"Редактор настроен без оптимизации для использования средства чтения с экрана, что не подходит в данной ситуации.\",\"При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Чтобы изменить это поведение, нажмите клавишу {0}.\",\"При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.\",\"При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Чтобы изменить это поведение, нажмите клавишу {0}.\",\"При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.\",\"Нажмите COMMAND+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.\",\"Нажмите CTRL+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.\",\"Вы можете закрыть эту подсказку и вернуться в редактор, нажав клавиши ESCAPE или SHIFT+ESCAPE.\",\"Показать справку по специальным возможностям\",\"Разработчик: проверить токены\",\"Перейти к строке {0} и символу {1}\",\"Перейти к строке {0}\",\"Введите номер строки от 1 до {0} для перехода\",\"Введите символ между 1 и {0} для перехода к\",\"Текущая строка: {0}. Перейти к строке {1}.\",\"Введите номер строки с последующим необязательным двоеточием и номер символа, к которому нужно перейти\",\"Перейти к строке...\",\"{0}, {1}, команды\",\"{0}, команды\",\"Введите имя действия, которое нужно выполнить\",\"Палитра команд\",\"{0}, символы\",\"Введите имя идентификатора, к которому вы хотите перейти\",\"Перейти к символу...\",\"символы ({0})\",\"модули ({0})\",\"классы ({0})\",\"интерфейсы ({0})\",\"методы ({0})\",\"функции ({0})\",\"свойства ({0})\",\"переменные ({0})\",\"переменные ({0})\",\"конструкторы ({0})\",\"вызовы ({0})\",\"Содержимое редактора\",\"Нажмите клавиши CTRL+F1 для доступа к параметрам специальных возможностей.\",\"Нажмите ALT+F1 для доступа к параметрам специальных возможностей.\",\"Переключить высококонтрастную тему\",\"Внесено изменений в файлах ({1}): {0}.\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Цвет фона для выделения строки в позиции курсора.\",\"Цвет фона границ вокруг строки в позиции курсора.\",\"Цвет фона для выделенных диапазонов, например при использовании функций Quick Open или поиска. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона обводки выделения.\",'Цвет фона выделенного символа, например, в функциях \"Перейти к определению\" или \"Перейти к следующему/предыдущему символу\". Цвет должен быть прозрачным, чтобы не скрывать оформление текста под ним.',\"Цвет фона для границы вокруг выделенных символов.\",\"Цвет курсора редактора.\",\"Цвет фона курсора редактора. Позволяет настраивать цвет символа, перекрываемого прямоугольным курсором.\",\"Цвет пробелов в редакторе.\",\"Цвет направляющих для отступов редактора.\",\"Цвет активных направляющих для отступов редактора.\",\"Цвет номеров строк редактора.\",\"Цвет номера активной строки редактора\",\"Параметр 'Id' является устаревшим. Используйте вместо него параметр 'editorLineNumber.activeForeground'.\",\"Цвет номера активной строки редактора\",\"Цвет линейки редактора.\",\"Цвет переднего плана элемента CodeLens в редакторе\",\"Цвет фона парных скобок\",\"Цвет прямоугольников парных скобок\",\"Цвет границы для линейки в окне просмотра.\",\"Цвет фона поля в редакторе. В поле размещаются отступы глифов и номера строк.\",\"Цвет границы для ненужного (неиспользуемого) исходного кода в редакторе.\",'Непрозрачность ненужного (неиспользуемого) исходного кода в редакторе. Например, \"#000000c0\" отображает код с непрозрачностью 75 %. В высококонтрастных темах для выделения ненужного кода вместо затенения используйте цвет темы \"editorUnnecessaryCode.border\".',\"Цвет метки линейки в окне просмотра для ошибок.\",\"Цвет метки линейки в окне просмотра для предупреждений.\",\"Цвет метки линейки в окне просмотра для информационных сообщений.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Цвет метки линейки в окне просмотра для пар скобок.\",\"Перейти к скобке\",\"Выбрать скобку\",\"Перейти к &&скобке\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Переместить курсор влево\",\"Переместить курсор вправо\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Транспортировать буквы\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Вырезать\",\"&&Вырезать\",\"Копирование\",\"&&Копировать\",\"Вставить\",\"&&Вставить\",\"Копировать с выделением синтаксиса\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Тип запускаемого действия кода.\",\"Определяет, когда применяются возвращенные действия.\",\"Всегда применять первое возвращенное действие кода.\",\"Применить первое действие возвращенного кода, если оно является единственным.\",\"Не применять действия возвращенного кода.\",\"Определяет, следует ли возвращать только предпочтительные действия кода.\",\"При применении действия кода произошла неизвестная ошибка\",\"Быстрое исправление...\",\"Доступные действия кода отсутствуют\",'Нет доступных предпочтительных действий кода для \"{0}\".','Действия кода для \"{0}\" недоступны',\"Нет доступных предпочтительных действий кода\",\"Доступные действия кода отсутствуют\",\"Рефакторинг...\",'Нет доступных предпочтительных рефакторингов для \"{0}\"','Нет доступного рефакторинга для \"{0}\"',\"Нет доступных предпочтительных рефакторингов\",\"Доступные операции рефакторинга отсутствуют\",\"Действие с исходным кодом...\",\"Нет доступных предпочтительных действий источника для '{0}'\",'Нет доступных исходных действий для \"{0}\"',\"Предпочтительные действия источника недоступны\",\"Доступные исходные действия отсутствуют\",\"Организация импортов\",\"Действие для упорядочения импортов отсутствует\",\"Исправить все\",\"Нет доступного действия по общему исправлению\",\"Автоисправление...\",\"Нет доступных автоисправлений\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Отображение исправлений. Доступно предпочитаемое исправление ({0})\",\"Показать исправления ({0})\",\"Показать исправления\"],\"vs/editor/contrib/comment/comment\":[\"Закомментировать или раскомментировать строку\",\"Переключить комментарий &&строки\",\"Закомментировать строку\",\"Раскомментировать строку\",\"Закомментировать или раскомментировать блок\",\"Переключить комментарий &&блока\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Показать контекстное меню редактора\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Отмена действия курсора\",\"Повтор действия курсора\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Цвет переднего плана для символов массива. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для логических символов. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов класса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов цвета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов константы. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов конструктора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов члена перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов события. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов поля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов файла. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов папки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов функции. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов интерфейса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ключа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ключевого слова. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов метода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов модуля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов пространства имен. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов NULL. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов числа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов объекта. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов оператора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов пакета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов свойства. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ссылки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов фрагмента кода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов строки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов структуры. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов текста. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов типа параметров. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов единиц. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов переменной. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\"],\n\"vs/editor/contrib/find/findController\":[\"Найти\",\"&&Найти\",\"Найти в выбранном\",\"Найти далее\",\"Найти далее\",\"Найти ранее\",\"Найти ранее\",\"Найти следующее выделение\",\"Найти предыдущее выделение\",\"Заменить\",\"&&Заменить\"],\"vs/editor/contrib/find/findWidget\":[\"Найти\",\"Найти\",\"Предыдущее соответствие\",\"Следующее соответствие\",\"Найти в выделении\",\"Закрыть\",\"Заменить\",\"Заменить\",\"Заменить\",\"Заменить все\",'Режим \"Переключение замены\"',\"Отображаются только первые {0} результатов, но все операции поиска выполняются со всем текстом.\",\"{0} из {1}\",\"Результаты отсутствуют\",\"{0} обнаружено\",\"{0} обнаружено для {1}\",\"{0} обнаружено для {1} в {2}\",\"{0} обнаружено для {1}\",\"Теперь при нажатии клавиш CTRL+ВВОД вставляется символ перехода на новую строку вместо замены всего текста. Вы можете изменить сочетание клавиш editor.action.replaceAll, чтобы переопределить это поведение.\"],\n\"vs/editor/contrib/folding/folding\":[\"Развернуть\",\"Развернуть рекурсивно\",\"Свернуть\",\"Переключить свертывание\",\"Свернуть рекурсивно\",\"Свернуть все блоки комментариев\",\"Свернуть все регионы\",\"Развернуть все регионы\",\"Свернуть все\",\"Развернуть все\",\"Уровень папки {0}\",\"Цвет выделения редактора.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Увеличить шрифт редактора\",\"Уменьшить шрифт редактора\",\"Сбросить масштаб шрифта редактора\"],\"vs/editor/contrib/format/format\":[\"Внесена одна правка форматирования в строке {0}.\",\"Внесены правки форматирования ({0}) в строке {1}.\",\"Внесена одна правка форматирования между строками {0} и {1}.\",\"Внесены правки форматирования ({0}) между строками {1} и {2}.\"],\"vs/editor/contrib/format/formatActions\":[\"Форматировать документ\",\"Форматировать выделенный фрагмент\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Перейти к Следующей Проблеме (Ошибке, Предупреждению, Информации)\",\"Перейти к Предыдущей Проблеме (Ошибке, Предупреждению, Информации)\",\"Перейти к следующей проблеме в файлах (ошибки, предупреждения, информационные сообщения)\",\"Перейти к предыдущей проблеме в файлах (ошибки, предупреждения, информационные сообщения)\",\"Следующая &&проблема\",\"Предыдущая &&проблема\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"Проблемы: {0} из {1}\",\"Проблемы: {0} из {1}\",\"Цвет ошибки в мини-приложении навигации по меткам редактора.\",\"Цвет предупреждения в мини-приложении навигации по меткам редактора.\",\"Цвет информационного сообщения в мини-приложении навигации по меткам редактора.\",\"Фон мини-приложения навигации по меткам редактора.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Обзор\",\"Определения\",'Определение для \"{0}\" не найдено.',\"Определения не найдены.\",\"Перейти к определению\",\"Перейти к &&определению\",\"Открыть определение сбоку\",\"Показать определение\",\"Объявления\",'Объявление для \"{0}\" не найдено.',\"Объявление не найдено\",\"Перейти к объявлению\",\"Перейти к &&объявлению\",'Объявление для \"{0}\" не найдено.',\"Объявление не найдено\",\"Просмотреть объявление\",\"Определения типов\",'Не найдено определение типа для \"{0}\".',\"Не найдено определение типа.\",\"Перейти к определению типа\",\"Перейти к &&определению типа\",\"Показать определение типа\",\"Реализации\",'Не найдена реализация для \"{0}\".',\"Не найдена реализация.\",\"Перейти к реализациям\",\"Перейти к &&реализациям\",\"Просмотреть реализации\",'Ссылки для \"{0}\" не найдены',\"Ссылки не найдены\",\"Перейти к ссылкам\",\"Перейти к &&ссылкам\",\"Ссылки\",\"Показать ссылки\",\"Ссылки\",\"Перейти к любому символу\",\"Расположения\",'Результаты для \"{0}\" отсутствуют',\"Ссылки\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Щелкните, чтобы отобразить определения ({0}).\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Загрузка...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Не удалось разрешить файл.\",\"Ссылок: {0}\",\"{0} ссылка\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"предварительный просмотр недоступен\",\"Ссылки\",\"Результаты отсутствуют\",\"Ссылки\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"ссылка в {0} в строке {1} и символе {2}\",\"1 символ в {0}, полный путь: {1}\",\"{0} символов в {1}, полный путь: {2} \",\"Результаты не найдены\",\"Обнаружен 1 символ в {0}\",\"Обнаружено {0} символов в {1}\",\"Обнаружено {0} символов в {1} файлах\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Символ {0} из {1}, {2} для следующего\",\"Символ {0} из {1}\"],\"vs/editor/contrib/hover/hover\":[\"Показать при наведении\",\"Отображать предварительный просмотр определения при наведении курсора мыши\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Загрузка...\",\"Проблема при обзоре\",\"Проверка наличия исправлений...\",\"Исправления недоступны\",\"Быстрое исправление...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Заменить предыдущим значением\",\"Заменить следующим значением\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"Копировать строку сверху\",\"&&Копировать на строку выше\",\"Копировать строку снизу\",\"Копировать на строку &&ниже\",\"Дублировать выбранное\",\"&&Дублировать выбранное\",\"Переместить строку вверх\",\"Переместить на с&&троку выше\",\"Переместить строку вниз\",\"&&Переместить на строку ниже\",\"Сортировка строк по возрастанию\",\"Сортировка строк по убыванию\",\"Удалить конечные символы-разделители\",\"Удалить строку\",\"Увеличить отступ\",\"Уменьшить отступ\",\"Вставить строку выше\",\"Вставить строку ниже\",\"Удалить все слева\",\"Удалить все справа\",\"_Объединить строки\",\"Транспонировать символы вокруг курсора\",\"Преобразовать в верхний регистр\",\"Преобразовать в нижний регистр\",\"Преобразовать в заглавные буквы\"],\n\"vs/editor/contrib/links/links\":[\"Выполнить команду\",\"перейти по ссылке\",\"Кнопка OPTION и щелчок левой кнопкой мыши\",\"Кнопка CTRL и щелчок левой кнопкой мыши\",\"Кнопка OPTION и щелчок левой кнопкой мыши\",\"Кнопка ALT и щелчок левой кнопкой мыши\",\"Не удалось открыть ссылку, так как она имеет неправильный формат: {0}\",\"Не удалось открыть ссылку, у нее отсутствует целевой объект.\",\"Открыть ссылку\"],\"vs/editor/contrib/message/messageController\":[\"Не удается выполнить изменение в редакторе только для чтения\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Добавить курсор выше\",\"Добавить курсор &&выше\",\"Добавить курсор ниже\",\"Добавить курсор &&ниже\",\"Добавить курсоры к окончаниям строк\",\"Добавить курсоры в &&окончания строк\",\"Добавить курсоры ниже\",\"Добавить курсоры выше\",\"Добавить выделение в следующее найденное совпадение\",\"Добавить &&следующее вхождение\",\"Добавить выделенный фрагмент в предыдущее найденное совпадение\",\"Добавить &&предыдущее вхождение\",\"Переместить последнее выделение в следующее найденное совпадение\",\"Переместить последний выделенный фрагмент в предыдущее найденное совпадение\",\"Выбрать все вхождения найденных совпадений\",\"Выбрать все &&вхождения\",\"Изменить все вхождения\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Переключить подсказки к параметрам\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, подсказка\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Закрыть\",\"Цвет фона области заголовка быстрого редактора.\",\"Цвет заголовка быстрого редактора.\",\"Цвет сведений о заголовке быстрого редактора.\",\"Цвет границ быстрого редактора и массива.\",\"Цвет фона в списке результатов представления быстрого редактора.\",\"Цвет переднего плана узлов строки в списке результатов быстрого редактора.\",\"Цвет переднего плана узлов файла в списке результатов быстрого редактора.\",\"Цвет фона выбранной записи в списке результатов быстрого редактора.\",\"Цвет переднего плана выбранной записи в списке результатов быстрого редактора.\",\"Цвет фона быстрого редактора.\",\"Цвет фона поля в окне быстрого редактора.\",\"Цвет выделения совпадений в списке результатов быстрого редактора.\",\"Цвет выделения совпадений в быстром редакторе.\",\"Граница выделения совпадений в быстром редакторе.\"],\n\"vs/editor/contrib/rename/rename\":[\"Результаты отсутствуют.\",\"Произошла неизвестная ошибка при определении расположения после переименования\",'Идет переименование \"{0}\"',\"«{0}» успешно переименован в «{1}». Сводка: {2}\",\"Операции переименования не удалось применить правки\",\"Операции переименования не удалось вычислить правки\",\"Переименовать символ\",\"Включить/отключить возможность предварительного просмотра изменений перед переименованием\"],\"vs/editor/contrib/rename/renameInputField\":[\"Введите новое имя для входных данных и нажмите клавишу ВВОД для подтверждения.\",\"{0} для переименования, {1} для предварительного просмотра\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Развернуть выбранный фрагмент\",\"&&Развернуть выделение\",\"Уменьшить выделенный фрагмент\",\"&&Сжать выделение\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\",\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\",\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\",\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],\"vs/editor/contrib/suggest/suggestController\":['Принятие \"{0}\" привело к внесению дополнительных правок ({1})',\"Переключить предложение\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Цвет фона виджета подсказок.\",\"Цвет границ виджета подсказок.\",\"Цвет переднего плана мини-приложения предложений.\",\"Фоновый цвет выбранной записи в мини-приложении предложений.\",\"Цвет выделения соответствия в мини-приложении предложений.\",\"Подробнее...{0}\",\"Кратко...{0}\",\"Загрузка...\",\"Загрузка...\",\"Предложения отсутствуют.\",\"{0} для просмотра сокращенных сведений...\",\"{0} для получения дополнительных сведений...\",\"Элемент {0}, документы: {1}\",\"{0} для вставки, {1} для замены\",\"{0} для замены, {1} для вставки\",\"{0} для принятия\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Переключение клавиши TAB перемещает фокус.\",\"При нажатии клавиши TAB фокус перейдет на следующий элемент, который может получить фокус\",\"Теперь при нажатии клавиши TAB будет вставлен символ табуляции\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Разработчик: принудительная повторная установка токенов\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Цвет фона символа при доступе на чтение, например, при чтении переменной. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона для символа во время доступа на запись, например при записи в переменную. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы символа при доступе на чтение, например, при считывании переменной.\",\"Цвет границы символа при доступе на запись, например, при записи переменной. \",\"Цвет маркера обзорной линейки для выделения символов. Этот цвет не должен быть непрозрачным, чтобы не скрывать расположенные ниже элементы оформления.\",\"Цвет маркера обзорной линейки для выделения символов доступа на запись. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Перейти к следующему выделению символов\",\"Перейти к предыдущему выделению символов\",\"Включить или отключить выделение символов\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Переопределения конфигурации по умолчанию\",\"Настройка параметров редактора, переопределяемых для языка.\",\"Этот параметр не поддерживает настройку для отдельных языков.\",\"Невозможно зарегистрировать \\\"{0}\\\". Оно соответствует шаблону свойства '\\\\\\\\[.*\\\\\\\\]$' для описания параметров редактора, определяемых языком. Используйте участие configurationDefaults.\",'Невозможно зарегистрировать \"{0}\". Это свойство уже зарегистрировано.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Была нажата клавиша ({0}). Ожидание нажатия второй клавиши сочетания...\",\"Сочетание клавиш ({0} и {1}) не является командой.\"],\n\"vs/platform/list/browser/listService\":[\"Рабочее место\",\"Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.\",\"Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.\",'Модификатор, который будет использоваться для добавления элементов в деревьях и списках в элемент множественного выбора с помощью мыши (например, в проводнике, в открытых редакторах и в представлении scm). Жесты мыши  \"Открыть сбоку\" (если они поддерживаются) будут изменены таким образом, чтобы они не конфликтовали с модификатором элемента множественного выбора.',\"Управляет тем, как открывать элементы в деревьях и списках с помощью мыши (если поддерживается). Для родительских элементов с дочерними элементами в деревьях этот параметр управляет тем, будет ли родительский элемент разворачиваться по одинарному или по двойному щелчку мыши. Обратите внимание, что этот параметр может игнорироваться в некоторых деревьях и списках, если он не применяется к ним. \",\"Определяет, поддерживают ли списки и деревья горизонтальную прокрутку в Workbench.\",\"Определяет, поддерживают ли древа горизонтальную прокрутку в рабочей области.\",'Этот параметр объявлен нерекомендуемым, используйте вместо него \"{0}\".',\"Определяет отступ для дерева в пикселях.\",\"Определяет, нужно ли в дереве отображать направляющие отступа.\",\"Про простой навигации с клавиатуры выбираются элементы, соответствующие вводимым с клавиатуры данным. Сопоставление осуществляется только по префиксам.\",\"Функция подсветки навигации с клавиатуры выделяет элементы, соответствующие вводимым с клавиатуры данным. При дальнейшей навигации вверх и вниз выполняется обход только выделенных элементов.\",\"Фильтр навигации с клавиатуры позволяет отфильтровать и скрыть все элементы, не соответствующие вводимым с клавиатуры данным.\",\"Управляет стилем навигации с клавиатуры для списков и деревьев в Workbench. Доступен простой режим, режим выделения и режим фильтрации.\",'Указывает, активируется ли навигация с помощью клавиатуры в списках и деревьях автоматически простым вводом. Если задано значение \"false\", навигация с клавиатуры активируется только при выполнении команды \"list.toggleKeyboardNavigation\", для которой можно назначить сочетание клавиш.'],\n\"vs/platform/markers/common/markers\":[\"Ошибка\",\"Предупреждение\",\"Информация\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Общий цвет переднего плана. Этот цвет используется, только если его не переопределит компонент.\",\"Общий цвет переднего плана для сообщений об ошибках. Этот цвет используется только если его не переопределяет компонент.\",\"Общий цвет границ для элементов с фокусом. Этот цвет используется только в том случае, если не переопределен в компоненте.\",\"Дополнительная граница вокруг элементов, которая отделяет их от других элементов для улучшения контраста.\",\"Дополнительная граница вокруг активных элементов, которая отделяет их от других элементов для улучшения контраста.\",\"Цвет переднего плана для ссылок в тексте.\",\"Цвет фона для программного кода в тексте.\",'Цвет тени мини-приложений редактора, таких как \"Найти/заменить\".',\"Фон поля ввода.\",\"Передний план поля ввода.\",\"Граница поля ввода.\",\"Цвет границ активированных параметров в полях ввода.\",\"Цвет фона активированных параметров в полях ввода.\",'Фоновый цвет проверки ввода для уровня серьезности \"Сведения\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Сведения\".','Цвет границы проверки ввода для уровня серьезности \"Сведения\".','Фоновый цвет проверки ввода для уровня серьезности \"Предупреждение\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Предупреждение\".','Цвет границы проверки ввода для уровня серьезности \"Предупреждение\".','Фоновый цвет проверки ввода для уровня серьезности \"Ошибка\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Ошибка\".','Цвет границы проверки ввода для уровня серьезности \"Ошибка\".',\"Фон раскрывающегося списка.\",\"Передний план раскрывающегося списка.\",\"Цвет средства быстрого выбора для группировки меток.\",\"Цвет средства быстрого выбора для группировки границ.\",\"Цвет фона бэджа. Бэджи - небольшие информационные элементы,  отображающие количество, например, результатов поиска.\",\"Цвет текста бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.\",\"Цвет тени полосы прокрутки, которая свидетельствует о том, что содержимое прокручивается.\",\"Цвет фона для ползунка полосы прокрутки.\",\"Цвет фона ползунка полосы прокрутки при наведении курсора.\",\"Цвет фона ползунка полосы прокрутки при щелчке по нему.\",\"Цвет фона индикатора выполнения, который может отображаться для длительных операций.\",\"Цвет волнистой линии для выделения ошибок в редакторе.\",\"Цвет границы для окон ошибок в редакторе.\",\"Цвет волнистой линии для выделения предупреждений в редакторе.\",\"Цвет границы для окон предупреждений в редакторе.\",\"Цвет волнистой линии для выделения информационных сообщений в редакторе.\",\"Цвет границы для окон сведений в редакторе.\",\"Цвет волнистой линии для выделения подсказок в редакторе.\",\"Цвет границы для окон указаний в редакторе.\",\"Цвет фона редактора.\",\"Цвет переднего плана редактора по умолчанию.\",\"Цвет фона виджетов редактора, таких как найти/заменить.\",'Цвет переднего плана мини-приложений редактора, таких как \"Поиск/замена\".',\"Цвет границы мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница и если этот цвет не переопределен мини-приложением.\",\"Цвет границы панели изменения размера мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница для изменения размера и если этот цвет не переопределен мини-приложением.\",\"Цвет выделения редактора.\",\"Цвет выделенного текста в режиме высокого контраста.\",\"Цвет выделения в неактивном редакторе. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет для областей, содержимое которых совпадает с выбранным фрагментом. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы регионов с тем же содержимым, что и в выделении.\",\"Цвет текущего поиска совпадений.\",\"Цвет других совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы текущего результата поиска.\",\"Цвет границы других результатов поиска.\",\"Цвет границы для диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Выделение под словом, для которого отображается меню при наведении курсора. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона при наведении указателя на редактор.\",\"Цвет переднего плана для наведения указателя на редактор.\",\"Цвет границ при наведении указателя на редактор.\",\"Цвет фона строки состояния при наведении в редакторе.\",\"Цвет активных ссылок.\",\"Цвет, используемый для значка действий в меню лампочки.\",\"Цвет, используемый для значка действий автоматического исправления в меню лампочки.\",\"Цвет фона для вставленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона для удаленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет контура для добавленных строк.\",\"Цвет контура для удаленных строк.\",\"Цвет границы между двумя текстовыми редакторами.\",\"Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет переднего плана находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет переднего плана выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет текста выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree не активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет элементов List/Tree при наведении курсора мыши.\",\"Цвет переднего плана элементов List/Tree при наведении курсора мыши.\",\"Фоновый цвет элементов List/Tree при перемещении с помощью мыши.\",\"Цвет переднего плана для выделения соответствия при поиске по элементу List/Tree.\",\"Цвет фона для мини-приложения фильтра типов в списках и деревьях.\",\"Цвет контура для мини-приложения фильтра типов в списках и деревьях.\",\"Цвет контура для мини-приложения фильтра типов в списках и деревьях при отсутствии совпадений.\",\"Цвет штриха дерева для направляющих отступа.\",\"Цвет границ меню.\",\"Цвет переднего плана пунктов меню.\",\"Цвет фона пунктов меню.\",\"Цвет переднего плана выбранного пункта меню в меню.\",\"Цвет фона для выбранного пункта в меню.\",\"Цвет границы для выбранного пункта в меню.\",\"Цвет разделителя меню в меню.\",\"Цвет фона выделения в позиции табуляции фрагмента.\",\"Цвет границы выделения в позиции табуляции фрагмента.\",\"Цвет фона выделения в последней позиции табуляции фрагмента.\",\"Цвет границы выделения в последней позиции табуляции фрагмента. \",\"Цвет маркера обзорной линейки для совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Маркер обзорной линейки для выделения выбранного фрагмента. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет маркера мини-карты для поиска совпадений.\",\"Цвет маркера мини-карты для выбора редактора.\",\"Цвет маркера миникарты для ошибок.\",\"Цвет маркера миникарты для предупреждений.\",\"Цвет, используемый для значка ошибки, указывающего на наличие проблем.\",\"Цвет, используемый для предупреждающего значка, указывающего на наличие проблем.\",\"Цвет, используемый для информационного значка, указывающего на наличие проблем.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ru.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.zh-cn.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.zh-cn\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再次发生)\",\"{0} (发生了 {1} 次)\"],\"vs/base/browser/ui/findinput/findInput\":[\"输入\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"区分大小写\",\"全字匹配\",\"使用正则表达式\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"输入\",\"保留大小写\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"错误: {0}\",\"警告: {0}\",\"信息: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"未绑定\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. 使用导航键进行导航。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"清除\",\"禁用输入时筛选\",\"启用输入时筛选\",\"未找到元素\",\"已匹配 {0} 个元素(共 {1} 个)\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"Command\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"错误\",\"警告\",\"信息\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}，选取器\",\"选取器\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"快速选取器。键入以缩小结果范围。\",\"快速选取器\",\"{0} 个结果\"],\"vs/editor/browser/controller/coreCommands\":[\"全选(&&S)\",\"撤消(&&U)\",\"恢复(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"现在无法访问编辑器。按 Alt+F1  显示选项。\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"光标数量被限制为 {0}。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"文件过大，无法比较。\"],\"vs/editor/browser/widget/diffReview\":[\"关闭\",\"无内容\",\"1 行\",\"{0} 行\",\"差异 {0}，总共 {1}: 原始，{2}，{3}；改后，{4}，{5}\",\"空白\",\"未修改 {0}，已修改 {1}: {2}\",\"+ 已修改 {0}: {1}\",\"- 未修改 {0}: {1} \",\"转至下一个差异\",\"转至上一个差异\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"复制已删除的行\",\"复制已删除的行\",\"复制已删除的行({0})\",\"还原此更改\",\"复制已删除的行({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"编辑器\",\"一个制表符等于的空格数。在 `#editor.detectIndentation#` 启用时，根据文件内容，该设置可能会被覆盖。\",\"按 `Tab` 键时插入空格。该设置在 `#editor.detectIndentation#` 启用时根据文件内容可能会被覆盖。\",\"控制是否在打开文件时，基于文件内容自动检测 `#editor.tabSize#` 和 `#editor.insertSpaces#`。\",\"删除自动插入的尾随空白符号。\",\"对大型文件进行特殊处理，禁用某些内存密集型功能。\",\"控制是否根据文档中的文字计算自动完成列表。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"在速览编辑器中，即使双击其中的内容或者按 `Esc` 键，也保持其打开状态。\",\"由于性能原因，超过这个长度的行将不会被标记\",\"超时（以毫秒为单位），之后将取消差异计算。使用0表示没有超时。\",\"控制差异编辑器的显示方式是并排还是内联。\",\"控制在差异编辑器中是否把前导空格或尾随空格的改动显示为差异。\",\"控制差异编辑器是否为添加/删除的更改显示 +/- 指示符号。\"],\n\"vs/editor/common/config/editorOptions\":[\"编辑器将使用平台 API 以检测是否附加了屏幕阅读器。\",\"编辑器将对屏幕阅读器的使用进行永久优化。\",\"编辑器将不再对屏幕阅读器的使用进行优化。\",\"控制编辑器是否应运行在对屏幕阅读器进行优化的模式。\",\"控制在注释时是否插入空格字符。\",\"控制在没有选择内容时进行复制是否复制当前行。\",\"控制是否将编辑器选中内容作为搜索词填入到查找小组件中。\",\"切勿自动打开“选择中查找”(默认)\",\"始终自动打开“在选择中查找”\",\"选择多行内容时，自动打开“在选择中查找”。\",\"在执行查找操作时，在编辑器中的选中文本中还是整个文件中进行查找。\",\"控制“查找”小组件是否读取或修改 macOS 的共享查找剪贴板。\",'控制 \"查找小部件\" 是否应在编辑器顶部添加额外的行。如果为 true, 则可以在 \"查找小工具\" 可见时滚动到第一行之外。',\"启用或禁用字体连字。\",\"显式字体功能设置。\",\"配置字体连字。\",\"以像素为单位控制字体大小。\",\"显示结果的预览视图 (默认值)\",\"转到主结果并显示预览视图\",\"转到主结果，并对其他人启用防偷窥导航\",'此设置已弃用，请改用单独的设置，如\"editor.editor.gotoLocation.multipleDefinitions\"或\"editor.editor.gotoLocation.multipleImplementations\"。','控制存在多个目标位置时\"转到定义\"命令的行为。','控制存在多个目标位置时\"转到类型定义\"命令的行为。','控制存在多个目标位置时\"转到声明\"命令的行为。','控制存在多个目标位置时\"转到实现\"命令的行为。','控制存在多个目标位置时\"转到引用\"命令的行为。','当\"转到定义\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到类型定义\"的结果是当前位置时正在执行的备用命令 ID。','当\"转到声明\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到实现\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到引用\"的结果是当前位置时正在执行的替代命令 ID。',\"控制是否显示悬停提示。\",\"控制显示悬停提示前的等待时间 (毫秒)。\",\"控制当鼠标移动到悬停提示上时，其是否保持可见。\",\"在编辑器中启用代码操作小灯泡提示。\",\"控制行高。为 0 时则通过字体大小自动计算。\",\"控制是否显示缩略图。\",\"控制在哪一侧显示缩略图。\",\"控制何时显示迷你地图滑块。\",\"在缩略图中绘制内容的比例。\",\"渲染每行的实际字符，而不是色块。\",\"限制缩略图的宽度，控制其最多显示的列数。\",\"在输入时显示含有参数文档和类型信息的小面板。\",\"控制参数提示菜单在到达列表末尾时进行循环还是关闭。\",\"在字符串内启用快速建议。\",\"在注释内启用快速建议。\",\"在字符串和注释外启用快速建议。\",\"控制是否在键入时自动显示建议。\",\"不显示行号。\",\"将行号显示为绝对行数。\",\"将行号显示为与光标相隔的行数。\",\"每 10 行显示一次行号。\",\"控制行号的显示。\",\"在一定数量的等宽字符后显示垂直标尺。输入多个值，显示多个标尺。若数组为空，则不绘制标尺。\",\"插入建议而不覆盖光标右侧的文本。\",\"插入建议并覆盖光标右侧的文本。\",\"控制接受补全时是否覆盖单词。请注意，这取决于扩展选择使用此功能。\",'控制在接受补全时是否应高亮显示意外的文本修改，例如\"插入模式\"是\"替换\"，但补全仅支持\"插入\"。',\"控制对建议的筛选和排序是否考虑小的拼写错误。\",\"控制排序时是否提高靠近光标的词语的优先级。\",\"控制是否在多个工作区和窗口间共享记忆的建议选项(需要 `#editor.suggestSelection#`)。\",\"控制在活动代码片段内是否禁用快速建议。\",\"控制是否在建议中显示或隐藏图标。\",\"控制在显示滚动条之前 IntelliSense 将显示的建议数 (最多 15个)。\",'此设置已弃用，请改用单独的设置，如\"editor.suggest.showKeywords\"或\"editor.suggest.showSnippets\"。',\"启用后，IntelliSense 将显示“方法”建议。\",\"启用后，IntelliSense 将显示“函数”建议。\",\"启用后，IntelliSense 将显示“构造函数”建议。\",\"启用后，IntelliSense 将显示“字段”建议。\",\"启用后，IntelliSense 将显示“变量”建议。\",\"启用后，IntelliSense 将显示“类”建议。\",\"启用后，IntelliSense 将显示“结构”建议。\",\"启用后，IntelliSense 将显示“接口”建议。\",\"启用后，IntelliSense 将显示“模块”建议。\",\"启用后，IntelliSense 将显示“属性”建议。\",\"启用后，IntelliSense 将显示“事件”建议。\",\"启用后，IntelliSense 将显示“操作符”建议。\",\"启用后，IntelliSense 将显示“单位”建议。\",\"启用后，IntelliSense 将显示“值”建议。\",\"启用后，IntelliSense 将显示“常量”建议。\",\"启用后，IntelliSense 将显示“枚举”建议。\",'启用后，IntelliSense 将显示 \"enumMember\" 建议。',\"启用后，IntelliSense 将显示“关键字”建议。\",\"启用后，IntelliSense 将显示“文本”建议。\",\"启用后，IntelliSense 将显示“颜色”建议。\",\"启用后，IntelliSense 将显示“文件”建议。\",\"启用后，IntelliSense 将显示“参考”建议。\",\"启用后，IntelliSense 将显示“自定义颜色”建议。\",\"启用后，IntelliSense 将显示“文件夹”建议。\",'启用后，IntelliSense 将显示 \"typeParameter\" 建议。',\"启用后，IntelliSense 将显示“片段”建议。\",\"控制建议小部件底部的状态栏的可见性。\",\"控制是否应在遇到提交字符时接受建议。例如，在 JavaScript 中，半角分号 (`;`) 可以为提交字符，能够在接受建议的同时键入该字符。\",\"仅当建议包含文本改动时才可使用 `Enter` 键进行接受。\",\"控制除了 `Tab` 键以外， `Enter` 键是否同样可以接受建议。这能减少“插入新行”和“接受建议”命令之间的歧义。\",\"控制编辑器中可由屏幕阅读器读取的行数。警告：对于大于默认值的数字，这会影响性能。\",\"编辑器内容\",\"使用语言配置确定何时自动闭合括号。\",\"仅当光标位于空白字符左侧时，才自动闭合括号。\",\"控制编辑器是否在左括号后自动插入右括号。\",\"仅在自动插入时才改写右引号或右括号。\",\"控制编辑器是否应改写右引号或右括号。\",\"使用语言配置确定何时自动闭合引号。\",\"仅当光标位于空白字符左侧时，才自动闭合引号。\",\"控制编辑器是否在左引号后自动插入右引号。\",\"编辑器不会自动插入缩进。\",\"编辑器将保留当前行的缩进。\",\"编辑器将保留当前行的缩进并遵循语言定义的括号。\",\"编辑器将保留当前行的缩进、使用语言定义的括号并调用语言定义的特定 onEnterRules。\",\"编辑器将保留当前行的缩进，使用语言定义的括号，调用由语言定义的特殊输入规则，并遵循由语言定义的缩进规则。\",\"控制编辑器是否应在用户键入、粘贴、移动或缩进行时自动调整缩进。\",\"使用语言配置确定何时自动包住所选内容。\",\"使用引号而非括号来包住所选内容。\",\"使用括号而非引号来包住所选内容。\",\"控制编辑器是否应自动包住所选内容。\",\"控制是否在编辑器中显示 CodeLens。\",\"控制编辑器是否显示内联颜色修饰器和颜色选取器。\",\"控制在复制时是否同时复制语法高亮。\",\"控制光标的动画样式。\",\"控制是否启用平滑插入动画。\",\"控制光标样式。\",\"控制光标周围可见的前置行和尾随行的最小数目。在其他一些编辑器中称为“scrollOff”或“scrollOffset”。\",'仅当通过键盘或 API 触发时，才会强制执行\"光标环绕行\"。','始终强制执行 \"cursorSurroundingLines\"','控制何时应强制执行\"光标环绕行\"。',\"当 `#editor.cursorStyle#` 设置为 `line` 时，控制光标的宽度。\",\"控制在编辑器中是否允许通过拖放来移动选中内容。\",'按下\"Alt\"时滚动速度倍增。',\"控制编辑器是否启用了代码折叠。\",\"控制计算折叠范围的策略。`auto` 将使用语言特定的折叠策略 (若可用)。`indentation` 将使用基于缩进的折叠策略。\",\"控制编辑器是否应突出显示折叠范围。\",\"控制字体系列。\",\"控制字体粗细。\",\"控制编辑器是否自动格式化粘贴的内容。格式化程序必须可用，并且能针对文档中的某一范围进行格式化。\",\"控制编辑器在键入一行后是否自动格式化该行。\",\"控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。\",\"控制是否在概览标尺中隐藏光标。\",\"控制是否突出显示编辑器中活动的缩进参考线。\",\"控制以像素为单位的字母间距。\",\"控制是否在编辑器中检测链接并使其可被点击。\",\"突出显示匹配的括号。\",\"对鼠标滚轮滚动事件的 `deltaX` 和 `deltaY` 乘上的系数。\",\"按住 `Ctrl` 键并滚动鼠标滚轮时对编辑器字体大小进行缩放。\",\"当多个光标重叠时进行合并。\",\"映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。\",\"映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。\",\"在通过鼠标添加多个光标时使用的修改键。“转到定义”和“打开链接”功能所需的鼠标动作将会相应调整，不与多光标修改键冲突。[阅读详细信息](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。\",\"每个光标粘贴一行文本。\",\"每个光标粘贴全文。\",\"控制粘贴时粘贴文本的行计数与光标计数相匹配。\",\"控制编辑器是否突出显示语义符号的匹配项。\",\"控制是否在概览标尺周围绘制边框。\",\"打开速览时将焦点放在树上\",\"打开预览时将焦点放在编辑器上\",\"控制是将焦点放在内联编辑器上还是放在预览小部件中的树上。\",\"控制显示快速建议前的等待时间 (毫秒)。\",\"控制编辑器是否显示控制字符。\",\"控制编辑器是否显示缩进参考线。\",\"当文件以换行符结束时, 呈现最后一行的行号。\",\"同时突出显示导航线和当前行。\",\"控制编辑器的当前行进行高亮显示的方式。\",\"Render whitespace characters except for single spaces between words.\",\"仅在选定文本上呈现空白字符。\",\"控制编辑器在空白字符上显示符号的方式。\",\"控制选区是否有圆角。\",\"控制编辑器水平滚动时可以超过范围的字符数。\",\"控制编辑器是否可以滚动到最后一行之后。\",\"控制是否支持 Linux 主剪贴板。\",\"控制编辑器是否应突出显示与所选内容类似的匹配项。\",\"控制是否自动隐藏导航线上的折叠控件。\",\"控制是否淡化未使用的代码。\",\"在其他建议上方显示代码片段建议。\",\"在其他建议下方显示代码片段建议。\",\"在其他建议中穿插显示代码片段建议。\",\"不显示代码片段建议。\",\"控制代码片段是否与其他建议一起显示及其排列的位置。\",\"控制编辑器是否在滚动时使用动画。\",\"建议小部件的字号。如果设置为 `0`，则使用 `#editor.fontSize#` 的值。\",\"建议小部件的行高。如果设置为 `0`，则使用 `#editor.lineHeight#` 的值。\",\"控制在键入触发字符后是否自动显示建议。\",\"始终选择第一个建议。\",\"选择最近的建议，除非进一步键入选择其他项。例如 `console. -> console.log`，因为最近补全过 `log`。\",\"根据之前补全过的建议的前缀来进行选择。例如，`co -> console`、`con -> const`。\",\"控制在建议列表中如何预先选择建议。\",\"在按下 Tab 键时进行 Tab 补全，将插入最佳匹配建议。\",\"禁用 Tab 补全。\",'在前缀匹配时进行 Tab 补全。在 \"quickSuggestions\" 未启用时体验最好。',\"启用 Tab 补全。\",\"根据制表位插入和删除空格。\",\"执行单词相关的导航或操作时作为单词分隔符的字符。\",\"永不换行。\",\"将在视区宽度处换行。\",\"在 `#editor.wordWrapColumn#` 处折行。\",\"在视区宽度和 `#editor.wordWrapColumn#` 中的较小值处折行。\",\"控制折行的方式。\",\"在 `#editor.wordWrap#` 为 `wordWrapColumn`  或 `bounded` 时，控制编辑器的折行列。\",\"没有缩进。折行从第 1 列开始。\",\"折行的缩进量与其父级相同。\",\"折行的缩进量比其父级多 1。\",\"折行的缩进量比其父级多 2。\",\"控制折行的缩进。\",\"假定所有字符的宽度相同。这是一种快速算法，适用于等宽字体和某些字形宽度相等的文字(如拉丁字符)。\",\"将包装点计算委托给浏览器。这是一个缓慢算法，可能会导致大型文件被冻结，但它在所有情况下都正常工作。\",\"控制计算包裹点的算法。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"纯文本\"],\n\"vs/editor/common/standaloneStrings\":[\"无选择\",\"行 {0}, 列 {1} (选中 {2})\",\"行 {0}, 列 {1}\",\"{0} 选择(已选择 {1} 个字符)\",\"{0} 选择\",'现在将 \"辅助功能支持\" 设置更改为 \"打开\"。',\"现在正在打开“编辑器辅助功能”文档页。\",\"在差异编辑器的只读窗格中。\",\"在一个差异编辑器的窗格中。\",\"在只读代码编辑器中\",\"在代码编辑器中\",\"若要配置编辑器，将其进行优化以最好地配合屏幕阅读器的使用，请立即按 Command+E。\",\"若要配置编辑器，将其进行优化以最高效地配合屏幕阅读器的使用，按下 Ctrl+E。\",\"配置编辑器，将其进行优化以最好地配合屏幕读取器的使用。\",\"编辑器被配置为永远不进行优化以配合屏幕读取器的使用, 而当前不是这种情况。\",\"在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。通过按 {0} 切换此行为。\",\"在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。当前无法通过按键绑定触发命令 {0}。\",\"在当前编辑器中按 Tab 将插入制表符。通过按 {0} 切换此行为。\",\"在当前编辑器中按 Tab 会插入制表符。当前无法通过键绑定触发命令 {0}。\",\"现在按 Command+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的详细信息。\",\"现在按 Ctrl+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的更多信息。\",\"你可以按 Esc 或 Shift+Esc 消除此工具提示并返回到编辑器。\",\"显示辅助功能帮助\",\"开发人员: 检查令牌\",\"转到第 {0} 行，第 {1} 列\",\"转至行 {0}\",\"键入要导航到的介于 1 和 {0} 之间的行号\",\"键入 1 和 {0} 之间的字符以导航到\",\"当前行: {0}. 转到行 {1}。\",\"键入行号, 后跟可选冒号和要导航到的字符数\",\"转到行...\",\"{0}、{1} ，命令\",\"{0}，命令\",\"键入要执行的操作的名称\",\"命令面板\",\"{0}，符号\",\"键入要导航到的标识符的名称\",\"转到符号...\",\"符号({0})\",\"模块({0})\",\"类({0})\",\"接口({0})\",\"方法({0})\",\"函数({0})\",\"属性 ({0})\",\"变量({0})\",\"变量({0})\",\"构造函数 ({0})\",\"调用 ({0})\",\"编辑器内容\",\"按 Ctrl+F1 可打开辅助功能选项。\",\"按 Alt+F1 可打开辅助功能选项。\",\"切换高对比度主题\",\"在 {1} 个文件中进行了 {0} 次编辑\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"光标所在行高亮内容的背景颜色。\",\"光标所在行四周边框的背景颜色。\",\"背景颜色的高亮范围，喜欢通过快速打开和查找功能。颜色不能不透明，以免隐藏底层装饰。\",\"高亮区域边框的背景颜色。\",\"高亮显示符号的背景颜色，例如转到定义或转到下一个/上一个符号。颜色不能是不透明的，以免隐藏底层装饰。\",\"高亮显示符号周围的边框的背景颜色。\",\"编辑器光标颜色。\",\"编辑器光标的背景色。可以自定义块型光标覆盖字符的颜色。\",\"编辑器中空白字符的颜色。\",\"编辑器缩进参考线的颜色。\",\"编辑器活动缩进参考线的颜色。\",\"编辑器行号的颜色。\",\"编辑器活动行号的颜色\",'\"Id\" 已被弃用，请改用 \"editorLineNumber.activeForeground\"。',\"编辑器活动行号的颜色\",\"编辑器标尺的颜色。\",\"编辑器 CodeLens 的前景色\",\"匹配括号的背景色\",\"匹配括号外框的颜色\",\"概览标尺边框的颜色。\",\"编辑器导航线的背景色。导航线包括边缘符号和行号。\",\"编辑器中不必要(未使用)的源代码的边框颜色。\",'非必须（未使用）代码的在编辑器中显示的不透明度。例如，\"#000000c0\" 将以 75% 的不透明度显示代码。对于高对比度主题，请使用 ”editorUnnecessaryCode.border“ 主题来为非必须代码添加下划线，以避免颜色淡化。',\"概览标尺中错误标记的颜色。\",\"概览标尺中警告标记的颜色。\",\"概览标尺中信息标记的颜色。\"],\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"概览标尺上表示匹配括号的标记颜色。\",\"转到括号\",\"选择括号所有内容\",\"转到括号(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"将插入点左移\",\"将插入点右移\"],\"vs/editor/contrib/caretOperations/transpose\":[\"转置字母\"],\"vs/editor/contrib/clipboard/clipboard\":[\"剪切\",\"剪切(&&T)\",\"复制\",\"复制(&&C)\",\"粘贴\",\"粘贴(&&P)\",\"复制并突出显示语法\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"要运行的代码操作的种类。\",\"控制何时应用返回的操作。\",\"始终应用第一个返回的代码操作。\",\"如果仅返回的第一个代码操作，则应用该操作。\",\"不要应用返回的代码操作。\",\"如果只应返回首选代码操作，则应返回控件。\",\"应用代码操作时发生未知错误\",\"快速修复...\",\"没有可用的代码操作\",'没有适用于\"{0}\"的首选代码操作','没有适用于\"{0}\"的代码操作',\"没有可用的首选代码操作\",\"没有可用的代码操作\",\"重构...\",'没有适用于\"{0}\"的首选重构','没有可用的\"{0}\"重构',\"没有可用的首选重构\",\"没有可用的重构操作\",\"源代码操作...\",'没有适用于\"{0}\"的首选源操作',\"没有适用于“ {0}”的源操作\",\"没有可用的首选源操作\",\"没有可用的源代码操作\",\"整理 import 语句\",\"没有可用的整理 import 语句操作\",\"全部修复\",\"没有可用的“全部修复”操作\",\"自动修复...\",\"没有可用的自动修复程序\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"显示修复程序。首选可用修复程序 （{0}）\",\"显示修补程序({0})\",\"显示修补程序\"],\"vs/editor/contrib/comment/comment\":[\"切换行注释\",\"切换行注释(&&T)\",\"添加行注释\",\"删除行注释\",\"切换块注释\",\"切换块注释(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"显示编辑器上下文菜单\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"光标撤消\",\"光标重做\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"数组符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。\",\"布尔符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"类符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"颜色符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"常量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"构造函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"枚举符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"枚举器成员符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"事件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"字段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文件夹符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"接口符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。\",\"键符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"关键字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"方法符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"模块符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"命名空间符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。\",\"空符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"数字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"对象符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"运算符符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"包符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"属性符号的前景色。这些符号出现在大纲、痕迹导航栏和建议小组件中。\",\"参考符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"片段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"字符串符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。\",\"结构符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文本符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"类型参数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"单位符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"变量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\"],\n\"vs/editor/contrib/find/findController\":[\"查找\",\"查找(&&F)\",\"查找选定内容\",\"查找下一个\",\"查找下一个\",\"查找上一个\",\"查找上一个\",\"查找下一个选择\",\"查找上一个选择\",\"替换\",\"替换(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"查找\",\"查找\",\"上一个匹配项\",\"下一个匹配项\",\"在选定内容中查找\",\"关闭\",\"替换\",\"替换\",\"替换\",\"全部替换\",\"切换替换模式\",\"仅高亮了前 {0} 个结果，但所有查找操作均针对全文。\",\"{1} 中的 {0}\",\"无结果\",\"找到 {0}\",\"为{1}找到了{0}\",\"{0} 在 {2} 处找到 {1}\",\"为 {1} 找到了 {0}\",\"Ctrl+Enter 现在由全部替换改为插入换行。你可以修改editor.action.replaceAll 的按键绑定以覆盖此行为。\"],\"vs/editor/contrib/folding/folding\":[\"展开\",\"以递归方式展开\",\"折叠\",\"切换折叠\",\"以递归方式折叠\",\"折叠所有块注释\",\"折叠所有区域\",\"展开所有区域\",\"全部折叠\",\"全部展开\",\"折叠级别 {0}\",\"编辑器所选内容的颜色。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"放大编辑器字体\",\"缩小编辑器字体\",\"重置编辑器字体大小\"],\"vs/editor/contrib/format/format\":[\"在第 {0} 行进行了 1 次格式编辑\",\"在第 {1} 行进行了 {0} 次格式编辑\",\"第 {0} 行到第 {1} 行间进行了 1 次格式编辑\",\"第 {1} 行到第 {2} 行间进行了 {0} 次格式编辑\"],\"vs/editor/contrib/format/formatActions\":[\"格式化文档\",\"格式化选定内容\"],\"vs/editor/contrib/gotoError/gotoError\":[\"转到下一个问题 (错误、警告、信息)\",\"转到上一个问题 (错误、警告、信息)\",\"转到文件中的下一个问题 (错误、警告、信息)\",\"转到文件中的上一个问题 (错误、警告、信息)\",\"下一个问题(&&P)\",\"上一个问题(&&P)\"],\n\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} 个问题(共 {1} 个)\",\"{0} 个问题(共 {1} 个)\",\"编辑器标记导航小组件错误颜色。\",\"编辑器标记导航小组件警告颜色。\",\"编辑器标记导航小组件信息颜色。\",\"编辑器标记导航小组件背景色。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"快速查看\",\"定义\",\"未找到“{0}”的任何定义\",\"找不到定义\",\"转到定义\",\"转到定义(&&D)...\",\"打开侧边的定义\",\"查看定义\",\"声明\",\"未找到“{0}”的声明\",\"未找到声明\",\"转到声明\",'转到\"声明\"',\"未找到“{0}”的声明\",\"未找到声明\",\"查看声明\",\"类型定义\",\"未找到“{0}”的类型定义\",\"未找到类型定义\",\"转到类型定义\",\"转到类型定义(&&T)\",\"快速查看类型定义\",\"实现\",\"未找到“{0}”的实现\",\"未找到实现\",\"转到实现\",\"跳转到实现\",\"查看实现\",'未找到\"{0}\"的引用',\"未找到引用\",\"转到引用\",\"转到引用(&&R)\",\"引用\",\"查看引用\",\"引用\",\"转到任何符号\",\"位置\",'\"{0}\"无结果',\"引用\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"单击显示 {0} 个定义。\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"正在加载...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"解析文件失败。\",\"{0} 个引用\",\"{0} 个引用\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"无可用预览\",\"引用\",\"无结果\",\"引用\"],\n\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"在文件 {0} 的 {1} 行 {2} 列的符号\",\"{0} 中有 1 个符号，完整路径: {1}\",\"{1} 中有 {0} 个符号，完整路径: {2}\",\"未找到结果\",\"在 {0} 中找到 1 个符号\",\"在 {1} 中找到 {0} 个符号\",\"在 {1} 个文件中找到 {0} 个符号\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} 的符号 {0}，下一个使用 {2}\",\"{1} 的符号 {0}\"],\"vs/editor/contrib/hover/hover\":[\"显示悬停\",\"显示定义预览悬停\"],\"vs/editor/contrib/hover/modesContentHover\":[\"正在加载...\",\"速览问题\",\"正在检查快速修复...\",\"没有可用的快速修复\",\"快速修复...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"替换为上一个值\",\"替换为下一个值\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"向上复制行\",\"向上复制行(&&C)\",\"向下复制行\",\"向下复制一行(&&P)\",\"重复选择\",\"重复选择(&&D)\",\"向上移动行\",\"向上移动一行(&&V)\",\"向下移动行\",\"向下移动一行(&&L)\",\"按升序排列行\",\"按降序排列行\",\"裁剪尾随空格\",\"删除行\",\"行缩进\",\"行减少缩进\",\"在上面插入行\",\"在下面插入行\",\"删除左侧所有内容\",\"删除右侧所有内容\",\"合并行\",\"转置光标处的字符\",\"转换为大写\",\"转换为小写\",\"转换为词首字母大写\"],\"vs/editor/contrib/links/links\":[\"执行命令\",\"关注链接\",\"cmd + 单击\",\"ctrl + 单击\",\"option + 单击\",\"alt + 单击\",\"此链接格式不正确，无法打开: {0}\",\"此链接目标已丢失，无法打开。\",\"打开链接\"],\"vs/editor/contrib/message/messageController\":[\"无法在只读编辑器中编辑\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"在上面添加光标\",\"在上面添加光标(&&A)\",\"在下面添加光标\",\"在下面添加光标(&&D)\",\"在行尾添加光标\",\"在行尾添加光标(&&U)\",\"在底部添加光标\",\"在顶部添加光标\",\"将下一个查找匹配项添加到选择\",\"添加下一个匹配项(&&N)\",\"将选择内容添加到上一查找匹配项\",\"添加上一个匹配项(&&R)\",\"将上次选择移动到下一个查找匹配项\",\"将上个选择内容移动到上一查找匹配项\",\"选择所有找到的查找匹配项\",\"选择所有匹配项(&&O)\",\"更改所有匹配项\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"触发参数提示\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}，提示\"],\"vs/editor/contrib/peekView/peekView\":[\"关闭\",\"速览视图标题区域背景颜色。\",\"速览视图标题颜色。\",\"速览视图标题信息颜色。\",\"速览视图边框和箭头颜色。\",\"速览视图结果列表背景色。\",\"速览视图结果列表中行节点的前景色。\",\"速览视图结果列表中文件节点的前景色。\",\"速览视图结果列表中所选条目的背景色。\",\"速览视图结果列表中所选条目的前景色。\",\"速览视图编辑器背景色。\",\"速览视图编辑器中装订线的背景色。\",\"在速览视图结果列表中匹配突出显示颜色。\",\"在速览视图编辑器中匹配突出显示颜色。\",\"在速览视图编辑器中匹配项的突出显示边框。\"],\"vs/editor/contrib/rename/rename\":[\"无结果。\",\"解析重命名位置时发生未知错误\",'重命名\"{0}\"',\"成功将“{0}”重命名为“{1}”。摘要: {2}\",\"重命名无法应用修改\",\"重命名无法计算修改\",\"重命名符号\",\"启用/禁用重命名之前预览更改的功能\"],\"vs/editor/contrib/rename/renameInputField\":['重命名输入。键入新名称并按 \"Enter\" 提交。',\"{0}重命名，{1}预览\"],\n\"vs/editor/contrib/smartSelect/smartSelect\":[\"展开选择\",\"展开选定内容(&&E)\",\"收起选择\",\"缩小选定范围(&&S)\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"星期天\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\",\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\",\"一月\",\"二月\",\"三月\",\"四月\",\"5月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\",\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11 月\",\"12月\"],\"vs/editor/contrib/suggest/suggestController\":[\"选择“{0}”后进行了其他 {1} 次编辑\",\"触发建议\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"建议小组件的背景色。\",\"建议小组件的边框颜色。\",\"建议小组件的前景色。\",\"建议小组件中所选条目的背景色。\",\"建议小组件中匹配内容的高亮颜色。\",\"阅读更多...{0}\",\"阅读简略信息...{0}\",\"正在加载...\",\"正在加载...\",\"无建议。\",\"{0} 更少…\",\"{0} 更多…\",\"项目 {0}，文档: {1}\",\"{0}进行插入，{1}进行替换\",\"{0}进行替换，{1}进行插入\",\"{0}以接受\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"切换 Tab 键移动焦点\",\"Tab 键将移动到下一可聚焦的元素\",\"Tab 键将插入制表符\"],\"vs/editor/contrib/tokenization/tokenization\":[\"开发人员: 强制重新进行标记\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"读取访问期间符号的背景色，例如读取变量时。颜色必须透明，以免隐藏下面的修饰效果。\",\"写入访问过程中符号的背景色，例如写入变量时。颜色必须透明，以免隐藏下面的修饰效果。\",\"符号在进行读取访问操作时的边框颜色，例如读取变量。\",\"符号在进行写入访问操作时的边框颜色，例如写入变量。\",\"用于突出显示符号的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于突出显示写权限符号的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"转到下一个突出显示的符号\",\"转到上一个突出显示的符号\",\"触发符号高亮\"],\"vs/platform/configuration/common/configurationRegistry\":[\"默认配置替代\",\"针对某种语言，配置替代编辑器设置。\",\"此设置不支持按语言配置。\",'无法注册“{0}”。其符合描述特定语言编辑器设置的表达式 \"\\\\\\\\[.*\\\\\\\\]$\"。请使用 \"configurationDefaults\"。',\"无法注册“{0}”。此属性已注册。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"已按下({0})。正在等待同时按下第二个键...\",\"组合键({0}, {1})不是命令。\"],\n\"vs/platform/list/browser/listService\":[\"工作台\",\"映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。\",\"映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。\",\"在通过鼠标多选树和列表条目时使用的修改键 (例如“资源管理器”、“打开的编辑器”和“源代码管理”视图)。“在侧边打开”功能所需的鼠标动作 (若可用) 将会相应调整，不与多选修改键冲突。\",\"控制在树和列表中怎样使用鼠标来展开子项（若支持）。对于树中的父节点，此设置将控制是使用单击还是双击来展开。注意，某些不适用于此设置的树或列表可能会忽略此项。\",\"控制列表和树是否支持在工作台中进行水平滚动。\",\"控制工作台中的树控件是否支持水平滚动。\",\"此设置已弃用，请改用“{0}”。\",\"控制树缩进(以像素为单位)。\",\"控制树是否应呈现缩进参考线。\",\"简单键盘导航聚焦与键盘输入相匹配的元素。仅对前缀进行匹配。\",\"高亮键盘导航会突出显示与键盘输入相匹配的元素。进一步向上和向下导航将仅遍历突出显示的元素。\",\"筛选器键盘导航将筛选出并隐藏与键盘输入不匹配的所有元素。\",\"控制工作台中的列表和树的键盘导航样式。它可为“简单”、“突出显示”或“筛选”。\",\"控制列表和树中的键盘导航是否仅通过键入自动触发。如果设置为 `false` ，键盘导航只在执行 `list.toggleKeyboardNavigation` 命令时触发，您可以为该命令指定键盘快捷方式。\"],\"vs/platform/markers/common/markers\":[\"错误\",\"警告\",\"信息\"],\n\"vs/platform/theme/common/colorRegistry\":[\"整体前景色。此颜色仅在不被组件覆盖时适用。\",\"错误信息的整体前景色。此颜色仅在不被组件覆盖时适用。\",\"焦点元素的整体边框颜色。此颜色仅在不被其他组件覆盖时适用。\",\"在元素周围额外的一层边框，用来提高对比度从而区别其他元素。\",\"在活动元素周围额外的一层边框，用来提高对比度从而区别其他元素。\",\"文本中链接的前景色。\",\"文本中代码块的背景颜色。\",\"编辑器内小组件（如查找/替换）的阴影颜色。\",\"输入框背景色。\",\"输入框前景色。\",\"输入框边框。\",\"输入字段中已激活选项的边框颜色。\",\"输入字段中激活选项的背景颜色。\",\"输入验证结果为信息级别时的背景色。\",\"输入验证结果为信息级别时的前景色。\",\"严重性为信息时输入验证的边框颜色。\",\"严重性为警告时输入验证的背景色。\",\"输入验证结果为警告级别时的前景色。\",\"严重性为警告时输入验证的边框颜色。\",\"输入验证结果为错误级别时的背景色。\",\"输入验证结果为错误级别时的前景色。\",\"严重性为错误时输入验证的边框颜色。\",\"下拉列表背景色。\",\"下拉列表前景色。\",\"快速选取器分组标签的颜色。\",\"快速选取器分组边框的颜色。\",\"Badge 背景色。Badge 是小型的信息标签，如表示搜索结果数量的标签。\",\"Badge 前景色。Badge 是小型的信息标签，如表示搜索结果数量的标签。\",\"表示视图被滚动的滚动条阴影。\",\"滚动条滑块背景色\",\"滚动条滑块在悬停时的背景色\",\"滚动条滑块在被点击时的背景色。\",\"表示长时间操作的进度条的背景色。\",\"编辑器中错误波浪线的前景色。\",\"编辑器中错误框的边框颜色。\",\"编辑器中警告波浪线的前景色。\",\"编辑器中警告框的边框颜色。\",\"编辑器中信息波浪线的前景色。\",\"编辑器中信息框的边框颜色。\",\"编辑器中提示波浪线的前景色。\",\"编辑器中提示框的边框颜色。\",\"编辑器背景色。\",\"编辑器默认前景色。\",\"编辑器组件(如查找/替换)背景颜色。\",\"编辑器小部件的前景色，如查找/替换。\",\"编辑器小部件的边框颜色。此颜色仅在小部件有边框且不被小部件重写时适用。\",\"编辑器小部件大小调整条的边框颜色。此颜色仅在小部件有调整边框且不被小部件颜色覆盖时使用。\",\"编辑器所选内容的颜色。\",\"用以彰显高对比度的所选文本的颜色。\",\"非活动编辑器中所选内容的颜色，颜色必须透明，以免隐藏下面的装饰效果。\",\"具有与所选项相关内容的区域的颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"与所选项内容相同的区域的边框颜色。\",\"当前搜索匹配项的颜色。\",\"其他搜索匹配项的颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"限制搜索范围的颜色。颜色不能不透明，以免隐藏底层装饰。\",\"当前搜索匹配项的边框颜色。\",\"其他搜索匹配项的边框颜色。\",\"限制搜索的范围的边框颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"在下面突出显示悬停的字词。颜色必须透明，以免隐藏下面的修饰效果。\",\"编辑器悬停提示的背景颜色。\",\"编辑器悬停的前景颜色。\",\"光标悬停时编辑器的边框颜色。\",\"编辑器悬停状态栏的背景色。\",\"活动链接颜色。\",\"用于灯泡操作图标的颜色。\",\"用于灯泡自动修复操作图标的颜色。\",\"已插入的文本的背景色。颜色必须透明，以免隐藏下面的修饰效果。\",\"已删除的文本的背景色。颜色必须透明，以免隐藏下面的修饰效果。\",\"插入的文本的轮廓颜色。\",\"被删除文本的轮廓颜色。\",\"两个文本编辑器之间的边框颜色。\",\"焦点项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"焦点项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树非活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树非活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"非活动的列表或树控件中焦点项的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"使用鼠标移动项目时，列表或树的背景颜色。\",\"鼠标在项目上悬停时，列表或树的前景颜色。\",\"使用鼠标移动项目时，列表或树进行拖放的背景颜色。\",\"在列表或树中搜索时，其中匹配内容的高亮颜色。\",\"列表和树中类型筛选器小组件的背景色。\",\"列表和树中类型筛选器小组件的轮廓颜色。\",\"当没有匹配项时，列表和树中类型筛选器小组件的轮廓颜色。\",\"缩进参考线的树描边颜色。\",\"菜单的边框颜色。\",\"菜单项的前景颜色。\",\"菜单项的背景颜色。\",\"菜单中选定菜单项的前景色。\",\"菜单中所选菜单项的背景色。\",\"菜单中所选菜单项的边框颜色。\",\"菜单中分隔线的颜色。\",\"代码片段 Tab 位的高亮背景色。\",\"代码片段 Tab 位的高亮边框颜色。\",\"代码片段中最后的 Tab 位的高亮背景色。\",\"代码片段中最后的 Tab 位的高亮边框颜色。\",\"用于查找匹配项的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于突出显示所选内容的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于查找匹配项的迷你地图标记颜色。\",\"编辑器选区在迷你地图中对应的标记颜色。\",\"用于错误的迷你地图标记颜色。\",\"用于警告的迷你地图标记颜色。\",\"用于问题错误图标的颜色。\",\"用于问题警告图标的颜色。\",\"用于问题信息图标的颜色。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-cn.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/editor/editor.main.nls.zh-tw.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.zh-tw\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再次出現)\",\"{0} (出現 {1} 次)\"],\"vs/base/browser/ui/findinput/findInput\":[\"輸入\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"大小寫須相符\",\"全字拼寫須相符\",\"使用規則運算式\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"輸入\",\"保留案例\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"錯誤: {0}\",\"警告: {0}\",\"資訊: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"未繫結\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}。請使用導覽鍵來導覽。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"清除\",\"在類型上停用篩選\",\"在類型上啟用篩選\",\"找不到任何元素\",\"{1} 項元素中有 {0} 項相符\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"超級鍵\",\"Control\",\"Shift\",\"Alt\",\"命令\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"超級鍵\"],\"vs/base/common/severity\":[\"錯誤\",\"警告\",\"資訊\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}，選擇器\",\"選擇器\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"快速選擇器。輸入以縮小結果範圍。\",\"快速選擇器\",\"{0} 個結果\"],\"vs/editor/browser/controller/coreCommands\":[\"全選(&&S)\",\"復原(&&U)\",\"取消復原(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"編輯器現在無法存取。按Alt+F1尋求選項\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"游標數已限制為 {0} 個。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"因其中一個檔案過大而無法比較。\"],\"vs/editor/browser/widget/diffReview\":[\"關閉\",\"沒有任何行\",\"1 個行\",\"{0} 個行\",\"{1} 的 {0} 不同: 原始為 {2}，{3}，修改後為 {4}，{5}\",\"空白\",\"原始 {0},修改後{1}: {2}\",\"+ 修改後 {0}: {1}\",\"- 原始 {0}: {1}\",\"移至下一個差異\",\"移至上一個差異\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"複製已刪除的行\",\"複製已刪除的行\",\"複製已刪除的行 （{0}）\",\"還原此變更\",\"複製已刪除的行 （{0}）\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"編輯器\",\"與 Tab 相等的空格數量。當 `#editor.detectIndentation#` 已開啟時，會根據檔案內容覆寫此設定。\",\"在按 `Tab` 時插入空格。當 `#editor.detectIndentation#` 開啟時，會根據檔案內容覆寫此設定。\",\"根據檔案內容，控制當檔案開啟時，是否自動偵測  `#editor.tabSize#` 和 `#editor.insertSpaces#`。\",\"移除尾端自動插入的空白字元。\",\"針對大型檔案停用部分高記憶體需求功能的特殊處理方式。\",\"控制是否應根據文件中的單字計算自動完成。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"即使按兩下內容或按 `Escape`，仍保持瞄孔編輯器開啟。\",\"因效能的緣故，不會將超過此高度的行 Token 化\",\"取消 Diff 計算前的逾時限制 (毫秒)。若無逾時，請使用 0。\",\"控制 Diff 編輯器要並排或內嵌顯示 Diff。\",\"控制 Diff 編輯器是否將開頭或尾端空白字元的變更顯示為 Diff。\",\"控制 Diff 編輯器是否要為新增/移除的變更顯示 +/- 標記。\"],\n\"vs/editor/common/config/editorOptions\":[\"編輯器將使用平台 API 以偵測螢幕助讀程式附加。\",\"編輯器將會為螢幕助讀程式的使用方式永久地最佳化。\",\"編輯器不會為螢幕助讀程式的使用方式進行最佳化。\",\"控制編輯器是否應於已為螢幕助讀程式最佳化的模式中執行。\",\"控制是否要在註解時插入空白字元。\",\"控制複製時不選取任何項目是否會複製目前程式行。\",\"控制 [尋找小工具] 中的搜尋字串是否來自編輯器選取項目。\",\"永不自動開啟 [在選取範圍中尋找] (預設)\",\"一律自動開啟 [在選取範圍中尋找]\",\"選取多行內容時，自動開啟 [在選取範圍中尋找]。\",\"控制尋找作業要對已選取文字或編輯器內的整個檔案執行。\",\"控制尋找小工具是否在 macOS 上讀取或修改共用尋找剪貼簿。\",\"控制尋找小工具是否應在編輯器頂端額外新增行。若為 true，當您可看到尋找小工具時，您的捲動範圍會超過第一行。\",\"啟用/停用連字字型。\",\"明確 font-feature-settings。\",\"設定連字字型。\",\"控制字型大小 (以像素為單位)。\",\"顯示結果的預覽檢視 (預設)\",\"移至主要結果並顯示預覽檢視\",\"前往主要結果，並對其他人啟用無預覽瀏覽\",\"此設定已淘汰，請改用 'editor.editor.gotoLocation.multipleDefinitions' 或 'editor.editor.gotoLocation.multipleImplementations' 等單獨設定。\",\"控制 'Go to Definition' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Type Definition' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Declaration' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Implementations' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to References' 命令在有多個目標位置存在時的行為。\",\"當 'Go to Definition' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Type Definition' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Declaration' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Implementation' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Reference' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"控制是否顯示暫留。\",\"控制暫留顯示的延遲時間 (以毫秒為單位)。\",\"控制當滑鼠移過時，是否應保持顯示暫留。\",\"在編輯器中啟用程式碼動作燈泡。\",\"控制行高。使用 0 會從字型大小計算行高。\",\"控制是否會顯示縮圖\",\"控制要在哪端呈現縮圖。\",\"控制何時顯示迷你地圖滑桿。\",\"在迷你地圖中繪製的內容比例。\",\"顯示行中的實際字元，而不是色彩區塊。\",\"限制縮圖的寬度，最多顯示某個數目的列。\",\"啟用快顯，在您鍵入的同時顯示參數文件和類型資訊。\",\"控制提示功能表是否在清單結尾時循環或關閉。\",\"允許在字串內顯示即時建議。\",\"允許在註解中顯示即時建議。\",\"允許在字串與註解以外之處顯示即時建議。\",\"控制是否應在鍵入時自動顯示建議。\",\"不顯示行號。\",\"行號以絕對值顯示。\",\"行號以目前游標的相對值顯示。\",\"每 10 行顯示行號。\",\"控制行號的顯示。\",\"在某個數目的等寬字元之後顯示垂直尺規。如有多個尺規，就會使用多個值。若陣列空白，就不會繪製任何尺規。\",\"插入建議而不覆寫游標旁的文字。\",\"插入建議並覆寫游標旁的文字。\",\"控制是否要在接受完成時覆寫字組。請注意，這取決於加入此功能的延伸模組。\",\"控制接受完成時的非預期文字修改是否應醒目提示，例如: `insertMode` 為 `replace` 但完成只支援 `insert`。\",\"控制對於拚錯字是否進行篩選和排序其建議\",\"控制排序是否會偏好游標附近出現的字組。\",\"控制記錄的建議選取項目是否在多個工作區和視窗間共用 (需要 `#editor.suggestSelection#`)。\",\"控制程式碼片段啟用時，是否阻止啟動快速建議。\",\"控制要在建議中顯示或隱藏圖示。\",\"控制 IntelliSense 顯示捲軸前要顯示多少建議 (最多 15 個)。\",\"此設定已淘汰，請改用 'editor.suggest.showKeywords' 或 'editor.suggest.showSnippets' 等單獨設定。\",\"啟用時，IntelliSense 顯示「方法」建議。\",\"啟用時，IntelliSense 顯示「函式」建議。\",\"啟用時，IntelliSense 顯示「建構函式」建議。\",\"啟用時，IntelliSense 顯示「欄位」建議。\",\"啟用時，IntelliSense 顯示「變數」建議。\",\"啟用時，IntelliSense 顯示「類別」建議。\",\"啟用時，IntelliSense 顯示「結構」建議。\",\"啟用時，IntelliSense 顯示「介面」建議。\",\"啟用時，IntelliSense 顯示「模組」建議。\",\"啟用時，IntelliSense 顯示「屬性」建議。\",\"啟用時，IntelliSense 顯示「事件」建議。\",\"啟用時，IntelliSense 顯示「運算子」建議。\",\"啟用時，IntelliSense 顯示「單位」建議。\",\"啟用時，IntelliSense 顯示「值」建議。\",\"啟用時，IntelliSense 顯示「常數」建議。\",\"啟用時，IntelliSense 顯示「列舉」建議。\",\"啟用時，IntelliSense 顯示「enumMember」建議。\",\"啟用時，IntelliSense 顯示「關鍵字」建議。\",\"啟用時，IntelliSense 顯示「文字」建議。\",\"啟用時，IntelliSense 顯示「色彩」建議。\",\"啟用時，IntelliSense 顯示「檔案」建議。\",\"啟用時，IntelliSense 顯示「參考」建議。\",\"啟用時，IntelliSense 顯示「customcolor」建議。\",\"啟用時，IntelliSense 顯示「資料夾」建議。\",\"啟用時，IntelliSense 顯示「typeParameter」建議。\",\"啟用時，IntelliSense 顯示「程式碼片段」建議。\",\"控制建議小工具底下的狀態列可見度。\",\"控制是否透過認可字元接受建議。例如在 JavaScript 中，分號 (';') 可以是接受建議並鍵入該字元的認可字元。\",\"在建議進行文字變更時，僅透過 `Enter` 接受建議。\",\"控制除了 'Tab' 外，是否也透過 'Enter' 接受建議。這有助於避免混淆要插入新行或接受建議。\",\"控制編輯器中螢幕助讀程式可讀出的行數。警告: 大於預設的數目會對效能產生影響。\",\"編輯器內容\",\"使用語言配置確定何時自動關閉括號。\",\"僅當游標位於空白的左側時自動關閉括號。\",\"控制編輯器是否應在使用者新增左括弧後，自動加上右括弧。\",\"僅在自動插入右引號或括號時，才在其上方鍵入。\",\"控制編輯器是否應在右引號或括號上鍵入。\",\"使用語言配置確定何時自動關閉引號。\",\"僅當游標位於空白的左側時自動關閉引號。\",\"控制編輯器是否應在使用者新增開始引號後，自動加上關閉引號。\",\"編輯器不會自動插入縮排。\",\"編輯器會保留目前行的縮排。\",\"編輯器會保留目前行的縮排並接受語言定義的括號。\",\"編輯器會目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules。\",\"編輯器會保留目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules 並接受語言定義的 indentationRules。\",\"控制編輯器是否應在使用者鍵入、貼上、移動或縮排行時自動調整縮排。\",\"使用語言組態來決定何時自動環繞選取項目。\",\"用引號括住，而非使用括弧。\",\"用括弧括住，而非使用引號。 \",\"控制編輯器是否應自動環繞選取項目。\",\"控制編輯器是否顯示 codelens。\",\"控制編輯器是否應轉譯內嵌色彩裝飾項目與色彩選擇器。\",\"控制語法醒目提示是否應複製到剪貼簿。\",\"控制資料指標動畫樣式。\",\"控制是否應啟用平滑插入點動畫。 \",\"控制資料指標樣式。\",\"控制游標上下周圍的最少可見行數。在某些編輯器中稱為 'scrollOff' 或 `scrollOffset`。\",\"只有通過鍵盤或 API 觸發時，才會施行 `cursorSurroundingLines`。\",\"一律強制執行 `cursorSurroundingLines`\",\"控制應施行 `cursorSurroundingLines` 的時機。\",\"控制游標寬度，當 `#editor.cursorStyle#` 設定為 `line` 時。\",\"控制編輯器是否允許透過拖放來移動選取項目。\",\"按下 `Alt` 時的捲動速度乘數。\",\"控制編輯器是否啟用程式碼摺疊功能。\",\"控制摺疊範圍的計算方式。[自動] 會在可行的情況下使用語言專屬的摺疊策略。[縮排] 會使用以縮排為基礎的摺疊策略。\",\"控制編輯器是否應將折疊的範圍醒目提示。\",\"控制字型家族。\",\"控制字型寬度。\",\"控制編輯器是否應自動為貼上的內容設定格式。必須有可用的格式器，而且格式器應能夠為文件中的一個範圍設定格式。\",\"控制編輯器是否應自動在鍵入後設定行的格式。\",\"控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。\",\"控制游標是否應隱藏在概觀尺規中。\",\"控制編輯器是否應醒目提示使用中的縮排輔助線。\",\"控制字元間距 (以像素為單位)\",\"控制編輯器是否應偵測連結並使其可供點選。\",\"將符合的括號醒目提示。\",\"要用於滑鼠滾輪捲動事件 `deltaX` 和 `deltaY` 的乘數。\",\"使用滑鼠滾輪並按住 `Ctrl` 時，縮放編輯器的字型\",\"在多個游標重疊時將其合併。\",\"對應Windows和Linux的'Control'與對應 macOS 的'Command'。\",\"對應Windows和Linux的'Alt'與對應macOS的'Option'。\",\"用於在滑鼠新增多個游標的乘數。「移至定義」和「開啟連結」滑鼠手勢會加以適應，以避免與多個游標的乘數相衝突。[深入了解](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。\",\"每個游標都會貼上一行文字。\",\"每個游標都會貼上全文。\",\"當已貼上文字的行數與游標數相符時控制貼上功能。\",\"控制編輯器是否應醒目顯示出現的語意符號。\",\"控制是否應在概觀尺規周圍繪製框線。\",\"開啟預覽時聚焦樹狀\",\"開啟時聚焦編輯器\",\"控制要聚焦內嵌編輯器或預覽小工具中的樹系。\",\"控制在快速建議顯示後的延遲 (以毫秒為單位)。\",\"控制編輯器是否應顯示控制字元。\",\"控制編輯器是否應顯示縮排輔助線。\",\"在檔案結尾為新行時，呈現最後一行的號碼。\",\"醒目提示裝訂邊和目前的行。\",\"控制編輯器如何顯示目前行的醒目提示。\",\"Render whitespace characters except for single spaces between words.\",\"只轉譯所選文字的空白字元。\",\"控制編輯器應如何轉譯空白字元。\",\"控制選取範圍是否有圓角\",\"控制編輯器水平捲動的額外字元數。\",\"控制編輯器是否捲動到最後一行之外。\",\"控制是否支援 Linux 主要剪貼簿。\",\"控制編輯器是否應醒目提示與選取項目類似的相符項目。\",\"自動隱藏摺疊控制向\",\"控制未使用程式碼的淡出。\",\"將程式碼片段建議顯示於其他建議的頂端。\",\"將程式碼片段建議顯示於其他建議的下方。\",\"將程式碼片段建議與其他建議一同顯示。\",\"不顯示程式碼片段建議。\",\"控制程式碼片段是否隨其他建議顯示，以及其排序方式。\",\"控制編輯器是否會使用動畫捲動\",\"建議小工具的字型大小。當設定為 `0` 時，則使用 `#editor.fontSize#` 值.\",\"建議小工具的行高。當設定為 `0` 時，則使用 `#editor.lineHeight#` 值.\",\"控制建議是否應在鍵入觸發字元時自動顯示。\",\"一律選取第一個建議。\",\"除非進一步鍵入選取了建議，否則選取最近的建議，例如 `console.| -> console.log`，原因是最近完成了 `log`。\",\"根據先前已完成該建議的前置詞選取建議，例如 `co -> console` 和 `con -> const`。\",\"控制在顯示建議清單時如何預先選取建議。\",\"按 Tab 時，Tab 完成會插入最符合的建議。\",\"停用 tab 鍵自動完成。\",\"在程式碼片段的首碼相符時使用 Tab 完成。未啟用 'quickSuggestions' 時效果最佳。\",\"啟用 tab 鍵自動完成。\",\"插入和刪除接在定位停駐點後的空白字元。\",\"在執行文字相關導覽或作業時要用作文字分隔符號的字元\",\"一律不換行。\",\"依檢視區寬度換行。\",\"於 '#editor.wordWrapColumn#' 換行。\",\"當檢視區縮至最小並設定 '#editor.wordWrapColumn#' 時換行。\",\"控制如何換行。\",\"當 `#editor.wordWrap#` 為 `wordWrapColumn` 或 `bounded` 時，控制編輯器中的資料行換行。\",\"無縮排。換行從第 1 列開始。\",\"換行的縮排會與父行相同。\",\"換行的縮排為父行 +1。\",\"換行縮排為父行 +2。\",\"控制換行的縮排。\",\"假設所有字元的寬度均相同。這是一種快速的演算法，適用於等寬字型，以及字符寬度相同的部分指令碼 (例如拉丁文字元)。\",\"將外圍點計算委派給瀏覽器。這是緩慢的演算法，如果檔案較大可能會導致凍結，但在所有情況下都正常運作。\",\"控制計算外圍點的演算法。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"純文字\"],\n\"vs/editor/common/standaloneStrings\":[\"無選取項目\",\"第 {0} 行，第 {1} 欄 (已選取 {2})\",\"第 {0} 行，第 {1} 欄\",\"{0} 個選取項目 (已選取 {1} 個字元)\",\"{0} 個選取項目\",\"立即將設定 `accessibilitySupport` 變更為 'on’。\",\"立即開啟編輯器協助工具文件頁面。\",\"在 Diff 編輯器的唯讀窗格中。\",\"在 Diff 編輯器的窗格中。\",\"在唯讀程式碼編輯器中\",\"在程式碼編輯器中\",\"若要為編輯器進行最能搭配螢幕助讀程式使用的設定，請立即按 Command+E。\",\"若要將編輯器設定為針對搭配螢幕助讀程式使用最佳化，請立即按 Control+E。\",\"編輯器已設定為針對搭配螢幕助讀程式使用最佳化。\",\"已將此編輯器設定為永遠不針對搭配螢幕助讀程式使用最佳化，但目前不是此情況。\",\"在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。按 {0} 可切換此行為。\",\"在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。命令 {0} 目前無法由按鍵繫結關係觸發。\",\"在目前的編輯器中按 Tab 鍵會插入定位字元。按 {0} 可切換此行為。\",\"在目前的編輯器中按 Tab 鍵會插入定位字元。命令 {0} 目前無法由按鍵繫結關係觸發。\",\"立即按 Command+H，以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。\",\"立即按 Control+H，以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。\",\"您可以按 Esc 鍵或 Shift+Esc 鍵來解除此工具提示並返回編輯器。\",\"顯示協助工具說明\",\"開發人員: 檢查權杖\",\"移至行 {0} 和字元 {1}\",\"移至第 {0} 行\",\"輸入介於 1 到 {0} 之間要瀏覽的行號\",\"鍵入 1 到 {0} 之間的字元，以瀏覽至\",\"目前行號: {0}。前往第 {1} 行。\",\"依序鍵入行號、選用冒號與字元號碼以瀏覽至\",\"移至行...\",\"{0}、{1}、命令\",\"{0}，命令\",\"鍵入要執行之動作的名稱\",\"命令選擇區\",\"{0}，符號\",\"鍵入要瀏覽之目標識別碼的名稱\",\"移至符號...\",\"符號 ({0})\",\"模組 ({0})\",\"類別 ({0})\",\"介面 ({0})\",\"方法 ({0})\",\"函式 ({0})\",\"屬性 ({0})\",\"變數 ({0})\",\"變數 ({0})\",\"建構函式 ({0})\",\"呼叫 ({0})\",\"編輯器內容\",\"按 Ctrl+F1 可取得協助工具選項。\",\"按 Alt+F1 可取得協助工具選項。\",\"切換高對比佈景主題\",\"已在 {1} 檔案中進行 {0} 項編輯\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"目前游標位置行的反白顯示背景色彩。\",\"目前游標位置行之周圍框線的背景色彩。\",\"醒目提示範圍的背景色彩，例如快速開啟並尋找功能。其不得為不透明色彩，以免隱藏底層裝飾。\",\"反白顯示範圍周圍邊框的背景顏色。\",\"醒目提示符號的背景色彩，相似於前往下一個定義或前往下一個/上一個符號。色彩必須透明，以免隱藏底層裝飾。\",\"醒目提示周圍的邊界背景色彩。\",\"編輯器游標的色彩。\",\"編輯器游標的背景色彩。允許自訂區塊游標重疊的字元色彩。\",\"編輯器中空白字元的色彩。\",\"編輯器縮排輔助線的色彩。\",\"使用中編輯器縮排輔助線的色彩。\",\"編輯器行號的色彩。\",\"編輯器使用中行號的色彩 \",\"Id 已取代。請改用 'editorLineNumber.activeForeground' 。\",\"編輯器使用中行號的色彩 \",\"編輯器尺規的色彩\",\"編輯器程式碼濾鏡的前景色彩\",\"成對括號背景色彩\",\"成對括號邊框色彩\",\"預覽檢視編輯器尺規的邊框色彩.\",\"編輯器邊框的背景顏色,包含行號與字形圖示的邊框.\",\"編輯器中不必要 (未使用) 原始程式碼的框線色彩。\",\"編輯器中不必要 (未使用) 原始程式碼的不透明度。例如 \\\"#000000c0” 會以 75% 的不透明度轉譯程式碼。針對高對比主題，使用 'editorUnnecessaryCode.border' 主題色彩可為不必要的程式碼加上底線，而不是將其變淡。\",\"錯誤的概觀尺規標記色彩。\",\"警示的概觀尺規標記色彩。\",\"資訊的概觀尺規標記色彩。\"],\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"成對括弧的概觀尺規標記色彩。\",\"移至方括弧\",\"選取至括弧\",\"前往括弧(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"將插入點左移\",\"將插入點右移\"],\"vs/editor/contrib/caretOperations/transpose\":[\"調換字母\"],\n\"vs/editor/contrib/clipboard/clipboard\":[\"剪下\",\"剪下(&&T)\",\"複製\",\"複製(&&C)\",\"貼上\",\"貼上(&&P)\",\"隨語法醒目提示複製\"],\"vs/editor/contrib/codeAction/codeActionCommands\":[\"要執行程式碼動作的種類。\",\"控制要套用傳回動作的時機。\",\"一律套用第一個傳回的程式碼動作。\",\"如果傳回的程式碼動作是唯一動作，則加以套用。\",\"不要套用傳回的程式碼動作。\",\"控制是否僅應傳回偏好的程式碼動作。\",\"套用程式碼動作時發生未知的錯誤\",\"快速修復...\",\"沒有可用的程式碼操作\",'沒有 \"{0}\" 的偏好程式碼動作','沒有 \"{0}\" 可用的程式碼動作',\"沒有可用的偏好程式碼動作\",\"沒有可用的程式碼操作\",\"重構...\",\"沒有適用於 '{0}' 的偏好重構。\",'沒有可用的 \"{0}\" 重構',\"沒有可用的偏好重構\",\"沒有可用的重構\",\"來源動作...\",\"沒有適用於 '{0}' 的偏好來源動作\",'沒有 \"{0}\" 可用的來源動作',\"沒有可用的偏好來源動作\",\"沒有可用的來源動作\",\"組織匯入\",\"沒有任何可用的組織匯入動作\",\"全部修正\",\"沒有全部修正動作可用\",\"自動修正...\",\"沒有可用的自動修正\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"顯示修正程式。偏好的修正程式可用 ({0})\",\"顯示修正 ({0})\",\"顯示修正\"],\"vs/editor/contrib/comment/comment\":[\"切換行註解\",\"切換行註解(&&T)\",\"加入行註解\",\"移除行註解\",\"切換區塊註解\",\"切換區塊註解(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"顯示編輯器內容功能表\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"游標復原\",\"游標重做\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"陣列符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"布林值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"類別符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"色彩符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"常數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"建構函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"列舉值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"列舉值成員符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"事件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"欄位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"檔案符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"資料夾符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"介面符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"索引鍵符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"關鍵字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"方法符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"模組符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"命名空間符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"Null 符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"數字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"物件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"運算子符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"套件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"屬性符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"參考符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"程式碼片段符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"字串符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"結構符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"文字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"型別參數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"單位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"變數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\"],\n\"vs/editor/contrib/find/findController\":[\"尋找\",\"尋找(&&F)\",\"尋找選取項目\",\"尋找下一個\",\"尋找下一個\",\"尋找上一個\",\"尋找上一個\",\"尋找下一個選取項目\",\"尋找上一個選取項目\",\"取代\",\"取代(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"尋找\",\"尋找\",\"上一個符合項目\",\"下一個符合項目\",\"在選取範圍中尋找\",\"關閉\",\"取代\",\"取代\",\"取代\",\"全部取代\",\"切換取代模式\",\"僅反白顯示前 {0} 筆結果，但所有尋找作業會在完整文字上執行。\",\"{1} 的 {0}\",\"查無結果\",\"找到 {0}\",\"已找到 {1} 的 {0}\",\"於 {2} 找到 {1} 的 {0}\",\"已找到 {1} 的 {0}\",\"Ctrl+Enter 現在會插入分行符號，而不會全部取代。您可以修改 editor.action.replaceAll 的按鍵繫結關係，以覆寫此行為。\"],\"vs/editor/contrib/folding/folding\":[\"展開\",\"以遞迴方式展開\",\"摺疊\",\"切換摺疊\",\"以遞迴方式摺疊\",\"摺疊全部區塊註解\",\"摺疊所有區域\",\"展開所有區域\",\"全部摺疊\",\"全部展開\",\"摺疊層級 {0}\",\"編輯器選取範圍的色彩。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"編輯器字體放大\",\"編輯器字型縮小\",\"編輯器字體重設縮放\"],\"vs/editor/contrib/format/format\":[\"在行 {0} 編輯了 1 項格式\",\"在行 {1} 編輯了 {0} 項格式\",\"在行 {0} 與行 {1} 之間編輯了 1 項格式\",\"在行 {1} 與行 {2} 之間編輯了 {0} 項格式\"],\"vs/editor/contrib/format/formatActions\":[\"格式化文件\",\"格式化選取範圍\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"移至下一個問題 (錯誤, 警告, 資訊)\",\"移至上一個問題 (錯誤, 警告, 資訊)\",\"移至檔案裡面的下一個問題 (錯誤, 警告, 資訊)\",\"移至檔案裡面的上一個問題 (錯誤, 警告, 資訊)\",\"下一個問題(&&P)\",\"前一個問題(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} 個問題 (共 {1} 個)\",\"{0} 個問題 (共 {1} 個)\",\"編輯器標記導覽小工具錯誤的色彩。\",\"編輯器標記導覽小工具警告的色彩。\",\"編輯器標記導覽小工具資訊的色彩\",\"編輯器標記導覽小工具的背景。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"查看\",\"定義\",\"找不到 '{0}' 的定義\",\"找不到任何定義\",\"移至定義\",\"移至定義(&&D)\",\"在一側開啟定義\",\"預覽定義\",\"宣告\",\"找不到 '{0}' 的宣告 \",\"找不到任何宣告\",\"移至宣告\",\"前往宣告(&&D)\",\"找不到 '{0}' 的宣告 \",\"找不到任何宣告\",\"預覽宣告\",\"類型定義\",\"找不到 '{0}' 的任何類型定義\",\"找不到任何類型定義\",\"移至類型定義\",\"前往類型定義(&&T)\",\"預覽類型定義\",\"實作\",\"找不到 '{0}' 的任何實作\",\"找不到任何實作\",\"前往實作\",\"前往實作(&&I)\",\"查看實作\",'未找到 \"{0}\" 的參考',\"未找到參考\",\"前往參考\",\"前往參考(&&R)\",\"參考\",\"預覽參考\",\"參考\",\"移至任何符號\",\"位置\",'\"{0}\" 無結果',\"參考\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"按一下以顯示 {0} 項定義。\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"正在載入...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"無法解析檔案。\",\"{0} 個參考\",\"{0} 個參考\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"無法預覽\",\"參考\",\"查無結果\",\"參考\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"個符號位於 {0} 中的第 {1} 行第 {2} 欄\",\"1 個符號位於 {0}, 完整路徑 {1}\",\"{0} 個符號位於 {1}, 完整路徑 {2}\",\"找不到結果\",\"在 {0} 中找到 1 個符號\",\"在 {1} 中找到 {0} 個符號\",\"在 {1} 個檔案中找到 {0} 個符號\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} 的符號 {0}，{2} 為下一個\",\"{1} 的符號 {0}\"],\"vs/editor/contrib/hover/hover\":[\"動態顯示\",\"顯示定義預覽懸停\"],\"vs/editor/contrib/hover/modesContentHover\":[\"正在載入...\",\"瞄孔問題\",\"正在檢查快速修正...\",\"沒有可用的快速修正\",\"快速修復...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"以上一個值取代\",\"以下一個值取代\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"將行向上複製\",\"將行向上複製(&&C)\",\"將行向下複製\",\"將行向下複製(&&P)\",\"重複選取項目\",\"重複選取項目(&D)\",\"上移一行\",\"上移一行(&&V)\",\"下移一行\",\"下移一行(&&L)\",\"遞增排序行\",\"遞減排序行\",\"修剪尾端空白\",\"刪除行\",\"縮排行\",\"凸排行\",\"在上方插入行\",\"在下方插入行\",\"左邊全部刪除\",\"刪除所有右方項目\",\"連接線\",\"轉置游標周圍的字元數\",\"轉換到大寫\",\"轉換到小寫\",\"轉換為字首大寫\"],\"vs/editor/contrib/links/links\":[\"執行命令\",\"追蹤連結\",\"cmd + 按一下\",\"ctrl + 按一下\",\"選項 + 按一下\",\"alt + 按一下\",\"因為此連結的格式不正確，所以無法開啟: {0}\",\"因為此連結目標遺失，所以無法開啟。\",\"開啟連結\"],\n\"vs/editor/contrib/message/messageController\":[\"無法在唯讀編輯器中編輯\"],\"vs/editor/contrib/multicursor/multicursor\":[\"在上方加入游標\",\"在上方新增游標(&&A)\",\"在下方加入游標\",\"在下方新增游標(&&D)\",\"在行尾新增游標\",\"在行尾新增游標(&&U)\",\"將游標新增到底部 \",\"將游標新增到頂部\",\"將選取項目加入下一個找到的相符項\",\"新增下一個項目(&&N)\",\"將選取項目加入前一個找到的相符項中\",\"新增上一個項目(&&R)\",\"將最後一個選擇項目移至下一個找到的相符項\",\"將最後一個選擇項目移至前一個找到的相符項\",\"選取所有找到的相符項目\",\"選取所有項目(&&O)\",\"變更所有發生次數\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"觸發參數提示\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}，提示\"],\"vs/editor/contrib/peekView/peekView\":[\"關閉\",\"預覽檢視標題區域的背景色彩。\",\"預覽檢視標題的色彩。\",\"預覽檢視標題資訊的色彩。\",\"預覽檢視之框線與箭頭的色彩。\",\"預覽檢視中結果清單的背景色彩。\",\"預覽檢視結果列表中行節點的前景色彩\",\"預覽檢視結果列表中檔案節點的前景色彩\",\"在預覽檢視之結果清單中選取項目時的背景色彩。\",\"在預覽檢視之結果清單中選取項目時的前景色彩。\",\"預覽檢視編輯器的背景色彩。\",\"預覽檢視編輯器邊框(含行號或字形圖示)的背景色彩。\",\"在預覽檢視編輯器中比對時的反白顯示色彩。\",\"預覽檢視編輯器中比對時的反白顯示色彩。\",\"在預覽檢視編輯器中比對時的反白顯示邊界。\"],\"vs/editor/contrib/rename/rename\":[\"沒有結果。\",\"解析重新命名位置時發生未知的錯誤\",\"正在重新命名 '{0}'\",\"已成功將 '{0}' 重新命名為 '{1}'。摘要: {2}\",\"重命名無法套用編輯\",\"重新命名無法計算編輯\",\"重新命名符號\",\"啟用/停用重新命名前先預覽變更的功能\"],\n\"vs/editor/contrib/rename/renameInputField\":[\"為輸入重新命名。請鍵入新名稱，然後按 Enter 以認可。\",\"{0} 以重新命名，{1} 以預覽\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"展開選取項目\",\"展開選取範圍(&&E)\",\"縮小選取項目\",\"壓縮選取範圍(&&S)\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"星期天\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\",\"週日\",\"週一\",\"週二\",\"週三\",\"週四\",\"週五\",\"週六\",\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\",\"1月\",\"2月\",\"3 月\",\"4月\",\"五月\",\"6月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\"],\"vs/editor/contrib/suggest/suggestController\":[\"接受 ‘{0}’ 進行了其他 {1} 項編輯\",\"觸發建議\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"建議小工具的背景色彩。\",\"建議小工具的邊界色彩。\",\"建議小工具的前景色彩。\",\"建議小工具中所選項目的背景色彩。\",\"建議小工具中相符醒目提示的色彩。\",\"進一步了解...{0}\",\"簡易說明...{0}\",\"正在載入...\",\"正在載入...\",\"無建議。\",\"{0} 以取得較少...\",\"{0} 以獲得更多...\",\"項目 {0}，文件: {1}\",\"{0} 以插入，{1} 以取代\",\"{0} 以取代，{1} 以插入\",\"{0} 以接受\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"切換 TAB 鍵移動焦點\",\"按 Tab 現在會將焦點移至下一個可設定焦點的元素。\",\"按 Tab 現在會插入定位字元。\"],\"vs/editor/contrib/tokenization/tokenization\":[\"開發人員: 強制重新置放\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"讀取權限期間 (如讀取變數) 符號的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"寫入權限期間 (如寫入變數) 符號的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"讀取存取期間 (例如讀取變數時) 符號的邊框顏色。\",\"寫入存取期間 (例如寫入變數時) 符號的邊框顏色。 \",\"符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"寫入權限符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"移至下一個反白符號\",\"移至上一個反白符號\",\"觸發符號反白顯示\"],\"vs/platform/configuration/common/configurationRegistry\":[\"預設組態覆寫\",\"設定要針對語言覆寫的編輯器設定。\",\"這個設定不支援以語言為根據的組態。\",\"無法註冊 '{0}'。這符合用於描述語言專用編輯器設定的屬性模式 '\\\\\\\\[.*\\\\\\\\]$'。請使用 'configurationDefaults' 貢獻。\",\"無法註冊 '{0}'。此屬性已經註冊。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"已按下 ({0})。請等待第二個套索鍵...\",\"按鍵組合 ({0}, {1}) 不是命令。\"],\n\"vs/platform/list/browser/listService\":[\"工作台\",\"對應Windows和Linux的'Control'與對應 macOS 的'Command'。\",\"對應Windows和Linux的'Alt'與對應macOS的'Option'。\",\"透過滑鼠多選，用於在樹狀目錄與清單中新增項目的輔助按鍵 (例如在總管中開啟編輯器 及 SCM 檢視)。'在側邊開啟' 滑鼠手勢 (若支援) 將會適應以避免和多選輔助按鍵衝突。\",\"控制如何使用滑鼠在樹狀目錄與清單中開啟項目 (若有支援)。對於樹狀目錄中具子系的父系而言，此設定會控制應以滑鼠按一下或按兩下展開父系。注意，某些樹狀目錄或清單若不適用此設定則會予以忽略。\",\"控制在工作台中，清單和樹狀結構是否支援水平捲動。\",\"控制是否支援工作台中的水平滾動。\",\"已淘汰此設定，請改用 ‘{0}’。\",\"控制樹狀結構縮排 (像素)。\",\"控制樹系是否應轉譯縮排輔助線。\",\"比對按鍵輸入的簡易按鍵瀏覽焦點元素。僅比對前置詞。\",\"醒目提示鍵盤瀏覽會醒目提示符合鍵盤輸入的元素。進一步向上或向下瀏覽只會周遊醒目提示的元素。\",\"篩選鍵盤瀏覽會篩掉並隱藏不符合鍵盤輸入的所有元素。\",\"控制 Workbench 中清單和樹狀結構的鍵盤瀏覽樣式。可以是簡易的、醒目提示和篩選。\",\"控制是否只要鍵入即可自動觸發清單和樹狀結構中的鍵盤瀏覽。若設為 `false`，只有在執行 `list.toggleKeyboardNavigation` 命令時，才會觸發鍵盤瀏覽，您可為其指定鍵盤快速鍵。\"],\"vs/platform/markers/common/markers\":[\"錯誤\",\"警告\",\"資訊\"],\n\"vs/platform/theme/common/colorRegistry\":[\"整體的前景色彩。僅當未被任何元件覆疊時，才會使用此色彩。\",\"整體錯誤訊息的前景色彩。僅當未被任何元件覆蓋時，才會使用此色彩。\",\"焦點項目的整體框線色彩。只在沒有任何元件覆寫此色彩時，才會加以使用。\",\"項目周圍的額外框線，可將項目從其他項目中區隔出來以提高對比。\",\"使用中項目周圍的額外邊界，可將項目從其他項目中區隔出來以提高對比。\",\"內文連結的前景色彩\",\"文字區塊的背景顏色。\",\"小工具的陰影色彩，例如編輯器中的尋找/取代。\",\"輸入方塊的背景。\",\"輸入方塊的前景。\",\"輸入方塊的框線。\",\"輸入欄位中可使用之項目的框線色彩。\",\"在輸入欄位中所啟動選項的背景色彩。\",\"資訊嚴重性的輸入驗證背景色彩。\",\"資訊嚴重性的輸入驗證前景色彩。\",\"資訊嚴重性的輸入驗證邊界色彩。\",\"警告嚴重性的輸入驗證背景色彩。\",\"警告嚴重性的輸入驗證前景色彩。\",\"警告嚴重性的輸入驗證邊界色彩。\",\"錯誤嚴重性的輸入驗證背景色彩。\",\"錯誤嚴重性的輸入驗證前景色彩。\",\"錯誤嚴重性的輸入驗證邊界色彩。\",\"下拉式清單的背景。\",\"下拉式清單的前景。\",\"分組標籤的快速選擇器色彩。\",\"分組邊界的快速選擇器色彩。\",\"標記的背景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。\",\"標記的前景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。\",\"指出在捲動該檢視的捲軸陰影。\",\"捲軸滑桿的背景顏色。\",\"動態顯示時捲軸滑桿的背景顏色。\",\"當點擊時捲軸滑桿的背景顏色。\",\"長時間運行進度條的背景色彩.\",\"編輯器內錯誤提示線的前景色彩.\",\"編輯器中錯誤方塊的框線色彩。\",\"編輯器內警告提示線的前景色彩.\",\"編輯器中的警告方塊框線色彩。\",\"編輯器內資訊提示線的前景色彩\",\"編輯器中的資訊方塊框線色彩。\",\"編輯器內提示訊息的提示線前景色彩\",\"編輯器中的提示方塊框線色彩。\",\"編輯器的背景色彩。\",\"編輯器的預設前景色彩。\",\"編輯器小工具的背景色彩，例如尋找/取代。\",\"編輯器小工具 (例如尋找/取代) 的前景色彩。\",\"編輯器小工具的邊界色彩。小工具選擇擁有邊界或色彩未被小工具覆寫時，才會使用色彩。\",\"編輯器小工具之調整大小列的邊界色彩。只在小工具選擇具有調整大小邊界且未覆寫該色彩時，才使用該色彩。\\n\",\"編輯器選取範圍的色彩。\",\"為選取的文字顏色高對比化\",\"非使用中編輯器內的選取項目色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"與選取項目內容相同之區域的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"選取時，內容相同之區域的框線色彩。\",\"符合目前搜尋的色彩。\",\"其他搜尋相符項目的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"限制搜尋之範圍的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"符合目前搜尋的框線色彩。\",\"符合其他搜尋的框線色彩。\",\"限制搜尋之範圍的框線色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"在顯示動態顯示的文字下醒目提示。其不得為不透明色彩，以免隱藏底層裝飾。\",\"編輯器動態顯示的背景色彩。\",\"編輯器動態顯示的前景色彩。\",\"編輯器動態顯示的框線色彩。\",\"編輯器暫留狀態列的背景色彩。\",\"使用中之連結的色彩。\",\"用於燈泡動作圖示的色彩。\",\"用於燈泡自動修正動作圖示的色彩。\",\"已插入文字的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"已移除文字的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"插入的文字外框色彩。\",\"移除的文字外框色彩。\",\"兩個文字編輯器之間的框線色彩。\",\"當清單/樹狀為使用中狀態時，焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，焦點項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為非使用中狀態時，所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中則沒有。\",\"當清單/樹狀為非使用中狀態時，焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"使用滑鼠暫留在項目時的清單/樹狀背景。\",\"滑鼠暫留在項目時的清單/樹狀前景。\",\"使用滑鼠四處移動項目時的清單/樹狀拖放背景。\",\"在清單/樹狀內搜尋時，相符醒目提示的清單/樹狀前景色彩。\",\"清單和樹狀結構中類型篩選小工具的背景色彩。\",\"清單和樹狀結構中類型篩選小工具的大綱色彩。\",\"在沒有相符項目時，清單和樹狀結構中類型篩選小工具的大綱色彩。\",\"縮排輔助線的樹狀筆觸色彩。\",\"功能表的邊框色彩。\",\"功能表項目的前景色彩。\",\"功能表項目的背景色彩。\",\"功能表中所選功能表項目的前景色彩。\",\"功能表中所選功能表項目的背景色彩。\",\"功能表中所選功能表項目的框線色彩。\",\"功能表中分隔線功能表項目的色彩。\",\"程式碼片段定位停駐點的反白顯示背景色彩。\",\"程式碼片段定位停駐點的反白顯示邊界色彩。\",\"程式碼片段最終定位停駐點的反白顯示背景色彩。\",\"程式碼片段最終定位停駐點的反白顯示邊界色彩。\",\"尋找相符項目的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"選取項目醒目提示的概觀尺規標記。其不得為不透明色彩，以免隱藏底層裝飾。\",\"用於尋找相符項目的縮圖標記色彩。\",\"編輯器選取範圍的迷你地圖標記色彩。\",\"錯誤的縮圖標記色彩。\",\"警告的縮圖標記色彩。\",\"用於問題錯誤圖示的色彩。\",\"用於問題警告圖示的色彩。\",\"用於問題資訊圖示的色彩。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-tw.js.map"
  },
  {
    "path": "app/assets/js/editor/vs/language/css/cssMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/css/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=window.setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/css/cssWorker\",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssScanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ident=0]=\"Ident\",e[e.AtKeyword=1]=\"AtKeyword\",e[e.String=2]=\"String\",e[e.BadString=3]=\"BadString\",e[e.UnquotedString=4]=\"UnquotedString\",e[e.Hash=5]=\"Hash\",e[e.Num=6]=\"Num\",e[e.Percentage=7]=\"Percentage\",e[e.Dimension=8]=\"Dimension\",e[e.UnicodeRange=9]=\"UnicodeRange\",e[e.CDO=10]=\"CDO\",e[e.CDC=11]=\"CDC\",e[e.Colon=12]=\"Colon\",e[e.SemiColon=13]=\"SemiColon\",e[e.CurlyL=14]=\"CurlyL\",e[e.CurlyR=15]=\"CurlyR\",e[e.ParenthesisL=16]=\"ParenthesisL\",e[e.ParenthesisR=17]=\"ParenthesisR\",e[e.BracketL=18]=\"BracketL\",e[e.BracketR=19]=\"BracketR\",e[e.Whitespace=20]=\"Whitespace\",e[e.Includes=21]=\"Includes\",e[e.Dashmatch=22]=\"Dashmatch\",e[e.SubstringOperator=23]=\"SubstringOperator\",e[e.PrefixOperator=24]=\"PrefixOperator\",e[e.SuffixOperator=25]=\"SuffixOperator\",e[e.Delim=26]=\"Delim\",e[e.EMS=27]=\"EMS\",e[e.EXS=28]=\"EXS\",e[e.Length=29]=\"Length\",e[e.Angle=30]=\"Angle\",e[e.Time=31]=\"Time\",e[e.Freq=32]=\"Freq\",e[e.Exclamation=33]=\"Exclamation\",e[e.Resolution=34]=\"Resolution\",e[e.Comma=35]=\"Comma\",e[e.Charset=36]=\"Charset\",e[e.EscapedJavaScript=37]=\"EscapedJavaScript\",e[e.BadEscapedJavaScript=38]=\"BadEscapedJavaScript\",e[e.Comment=39]=\"Comment\",e[e.SingleLineComment=40]=\"SingleLineComment\",e[e.EOF=41]=\"EOF\",e[e.CustomToken=42]=\"CustomToken\"}(n=t.TokenType||(t.TokenType={}));var r=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}();t.MultiLineStream=r;var i=\"a\".charCodeAt(0),o=\"f\".charCodeAt(0),s=\"z\".charCodeAt(0),a=\"A\".charCodeAt(0),l=\"F\".charCodeAt(0),c=\"Z\".charCodeAt(0),d=\"0\".charCodeAt(0),p=\"9\".charCodeAt(0),h=\"~\".charCodeAt(0),m=\"^\".charCodeAt(0),u=\"=\".charCodeAt(0),f=\"|\".charCodeAt(0),g=\"-\".charCodeAt(0),b=\"_\".charCodeAt(0),y=\"%\".charCodeAt(0),v=\"*\".charCodeAt(0),w=\"(\".charCodeAt(0),x=\")\".charCodeAt(0),S=\"<\".charCodeAt(0),k=\">\".charCodeAt(0),C=\"@\".charCodeAt(0),T=\"#\".charCodeAt(0),F=\"$\".charCodeAt(0),E=\"\\\\\".charCodeAt(0),D=\"/\".charCodeAt(0),R=\"\\n\".charCodeAt(0),z=\"\\r\".charCodeAt(0),_=\"\\f\".charCodeAt(0),I='\"'.charCodeAt(0),N=\"'\".charCodeAt(0),P=\" \".charCodeAt(0),M=\"\\t\".charCodeAt(0),A=\";\".charCodeAt(0),O=\":\".charCodeAt(0),W=\"{\".charCodeAt(0),L=\"}\".charCodeAt(0),j=\"[\".charCodeAt(0),U=\"]\".charCodeAt(0),V=\",\".charCodeAt(0),K=\".\".charCodeAt(0),q=\"!\".charCodeAt(0),B={};B[A]=n.SemiColon,B[O]=n.Colon,B[W]=n.CurlyL,B[L]=n.CurlyR,B[U]=n.BracketR,B[j]=n.BracketL,B[w]=n.ParenthesisL,B[x]=n.ParenthesisR,B[V]=n.Comma;var $={};$.em=n.EMS,$.ex=n.EXS,$.px=n.Length,$.cm=n.Length,$.mm=n.Length,$.in=n.Length,$.pt=n.Length,$.pc=n.Length,$.deg=n.Angle,$.rad=n.Angle,$.grad=n.Angle,$.ms=n.Time,$.s=n.Time,$.hz=n.Freq,$.khz=n.Freq,$[\"%\"]=n.Percentage,$.fr=n.Percentage,$.dpi=n.Resolution,$.dpcm=n.Resolution;var G=function(){function e(){this.stream=new r(\"\"),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}return e.prototype.setSource=function(e){this.stream=new r(e)},e.prototype.finishToken=function(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}},e.prototype.substring=function(e,t){return this.stream.substring(e,e+t)},e.prototype.pos=function(){return this.stream.pos()},e.prototype.goBackTo=function(e){this.stream.goBackTo(e)},e.prototype.scanUnquotedString=function(){var e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,n.UnquotedString,t.join(\"\")):null},e.prototype.scan=function(){var e=this.trivia();if(null!==e)return e;var t=this.stream.pos();return this.stream.eos()?this.finishToken(t,n.EOF):this.scanNext(t)},e.prototype.scanNext=function(e){if(this.stream.advanceIfChars([S,q,g,g]))return this.finishToken(e,n.CDO);if(this.stream.advanceIfChars([g,g,k]))return this.finishToken(e,n.CDC);var t=[];if(this.ident(t))return this.finishToken(e,n.Ident,t.join(\"\"));if(this.stream.advanceIfChar(C)){if(t=[\"@\"],this._name(t)){var r=t.join(\"\");return\"@charset\"===r?this.finishToken(e,n.Charset,r):this.finishToken(e,n.AtKeyword,r)}return this.finishToken(e,n.Delim)}if(this.stream.advanceIfChar(T))return t=[\"#\"],this._name(t)?this.finishToken(e,n.Hash,t.join(\"\")):this.finishToken(e,n.Delim);if(this.stream.advanceIfChar(q))return this.finishToken(e,n.Exclamation);if(this._number()){var i=this.stream.pos();if(t=[this.stream.substring(e,i)],this.stream.advanceIfChar(y))return this.finishToken(e,n.Percentage);if(this.ident(t)){var o=this.stream.substring(i).toLowerCase(),s=$[o];return void 0!==s?this.finishToken(e,s,t.join(\"\")):this.finishToken(e,n.Dimension,t.join(\"\"))}return this.finishToken(e,n.Num)}t=[];var a=this._string(t);return null!==a?this.finishToken(e,a,t.join(\"\")):void 0!==(a=B[this.stream.peekChar()])?(this.stream.advance(1),this.finishToken(e,a)):this.stream.peekChar(0)===h&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Includes)):this.stream.peekChar(0)===f&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Dashmatch)):this.stream.peekChar(0)===v&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SubstringOperator)):this.stream.peekChar(0)===m&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.PrefixOperator)):this.stream.peekChar(0)===F&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SuffixOperator)):(this.stream.nextChar(),this.finishToken(e,n.Delim))},e.prototype._matchWordAnyCase=function(e){var t=0;return this.stream.advanceWhileChar((function(n){var r=e[t]===n||e[t+1]===n;return r&&(t+=2),r})),t===e.length||(this.stream.goBack(t/2),!1)},e.prototype.trivia=function(){for(;;){var e=this.stream.pos();if(this._whitespace()){if(!this.ignoreWhitespace)return this.finishToken(e,n.Whitespace)}else{if(!this.comment())return null;if(!this.ignoreComment)return this.finishToken(e,n.Comment)}}},e.prototype.comment=function(){if(this.stream.advanceIfChars([D,v])){var e=!1,t=!1;return this.stream.advanceWhileChar((function(n){return t&&n===D?(e=!0,!1):(t=n===v,!0)})),e&&this.stream.advance(1),!0}return!1},e.prototype._number=function(){var e,t=0;return this.stream.peekChar()===K&&(t=1),(e=this.stream.peekChar(t))>=d&&e<=p&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=d&&e<=p||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case z:case _:case R:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===z&&this.stream.advanceIfChar(R)&&e.push(\"\\n\"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===E){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=d&&n<=p||n>=i&&n<=o||n>=a&&n<=l);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-r),16);s&&e.push(String.fromCharCode(s))}catch(e){}return n===P||n===M?this.stream.advance(1):this._newline([]),!0}if(n!==z&&n!==_&&n!==R)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==E&&n!==z&&n!==_&&n!==R&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===N||this.stream.peekChar()===I){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),n.String):n.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==E&&t!==N&&t!==I&&t!==w&&t!==x&&t!==P&&t!==M&&t!==R&&t!==_&&t!==z&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===P||e===M||e===R||e===_||e===z}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===b||t>=i&&t<=s||t>=a&&t<=c||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===g&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===b||t===g||t>=i&&t<=s||t>=a&&t<=c||t>=d&&t<=p||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();t.Scanner=G}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssNodes\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;function r(e,t){var n=null;return!e||t<e.offset||t>e.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Undefined=0]=\"Undefined\",e[e.Identifier=1]=\"Identifier\",e[e.Stylesheet=2]=\"Stylesheet\",e[e.Ruleset=3]=\"Ruleset\",e[e.Selector=4]=\"Selector\",e[e.SimpleSelector=5]=\"SimpleSelector\",e[e.SelectorInterpolation=6]=\"SelectorInterpolation\",e[e.SelectorCombinator=7]=\"SelectorCombinator\",e[e.SelectorCombinatorParent=8]=\"SelectorCombinatorParent\",e[e.SelectorCombinatorSibling=9]=\"SelectorCombinatorSibling\",e[e.SelectorCombinatorAllSiblings=10]=\"SelectorCombinatorAllSiblings\",e[e.SelectorCombinatorShadowPiercingDescendant=11]=\"SelectorCombinatorShadowPiercingDescendant\",e[e.Page=12]=\"Page\",e[e.PageBoxMarginBox=13]=\"PageBoxMarginBox\",e[e.ClassSelector=14]=\"ClassSelector\",e[e.IdentifierSelector=15]=\"IdentifierSelector\",e[e.ElementNameSelector=16]=\"ElementNameSelector\",e[e.PseudoSelector=17]=\"PseudoSelector\",e[e.AttributeSelector=18]=\"AttributeSelector\",e[e.Declaration=19]=\"Declaration\",e[e.Declarations=20]=\"Declarations\",e[e.Property=21]=\"Property\",e[e.Expression=22]=\"Expression\",e[e.BinaryExpression=23]=\"BinaryExpression\",e[e.Term=24]=\"Term\",e[e.Operator=25]=\"Operator\",e[e.Value=26]=\"Value\",e[e.StringLiteral=27]=\"StringLiteral\",e[e.URILiteral=28]=\"URILiteral\",e[e.EscapedValue=29]=\"EscapedValue\",e[e.Function=30]=\"Function\",e[e.NumericValue=31]=\"NumericValue\",e[e.HexColorValue=32]=\"HexColorValue\",e[e.MixinDeclaration=33]=\"MixinDeclaration\",e[e.MixinReference=34]=\"MixinReference\",e[e.VariableName=35]=\"VariableName\",e[e.VariableDeclaration=36]=\"VariableDeclaration\",e[e.Prio=37]=\"Prio\",e[e.Interpolation=38]=\"Interpolation\",e[e.NestedProperties=39]=\"NestedProperties\",e[e.ExtendsReference=40]=\"ExtendsReference\",e[e.SelectorPlaceholder=41]=\"SelectorPlaceholder\",e[e.Debug=42]=\"Debug\",e[e.If=43]=\"If\",e[e.Else=44]=\"Else\",e[e.For=45]=\"For\",e[e.Each=46]=\"Each\",e[e.While=47]=\"While\",e[e.MixinContent=48]=\"MixinContent\",e[e.Media=49]=\"Media\",e[e.Keyframe=50]=\"Keyframe\",e[e.FontFace=51]=\"FontFace\",e[e.Import=52]=\"Import\",e[e.Namespace=53]=\"Namespace\",e[e.Invocation=54]=\"Invocation\",e[e.FunctionDeclaration=55]=\"FunctionDeclaration\",e[e.ReturnStatement=56]=\"ReturnStatement\",e[e.MediaQuery=57]=\"MediaQuery\",e[e.FunctionParameter=58]=\"FunctionParameter\",e[e.FunctionArgument=59]=\"FunctionArgument\",e[e.KeyframeSelector=60]=\"KeyframeSelector\",e[e.ViewPort=61]=\"ViewPort\",e[e.Document=62]=\"Document\",e[e.AtApplyRule=63]=\"AtApplyRule\",e[e.CustomPropertyDeclaration=64]=\"CustomPropertyDeclaration\",e[e.CustomPropertySet=65]=\"CustomPropertySet\",e[e.ListEntry=66]=\"ListEntry\",e[e.Supports=67]=\"Supports\",e[e.SupportsCondition=68]=\"SupportsCondition\",e[e.NamespacePrefix=69]=\"NamespacePrefix\",e[e.GridLine=70]=\"GridLine\",e[e.Plugin=71]=\"Plugin\",e[e.UnknownAtRule=72]=\"UnknownAtRule\",e[e.Use=73]=\"Use\",e[e.ModuleConfiguration=74]=\"ModuleConfiguration\",e[e.Forward=75]=\"Forward\",e[e.ForwardVisibility=76]=\"ForwardVisibility\",e[e.Module=77]=\"Module\"}(n=t.NodeType||(t.NodeType={})),function(e){e[e.Mixin=0]=\"Mixin\",e[e.Rule=1]=\"Rule\",e[e.Variable=2]=\"Variable\",e[e.Function=3]=\"Function\",e[e.Keyframe=4]=\"Keyframe\",e[e.Unknown=5]=\"Unknown\",e[e.Module=6]=\"Module\",e[e.Forward=7]=\"Forward\",e[e.ForwardVisibility=8]=\"ForwardVisibility\"}(t.ReferenceType||(t.ReferenceType={})),t.getNodeAtOffset=r,t.getNodePath=function(e,t){for(var n=r(e,t),i=[];n;)i.unshift(n),n=n.parent;return i},t.getParentDeclaration=function(e){var t=e.findParent(n.Declaration),r=t&&t.getValue();return r&&r.encloses(e)?t:null};var i=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,\"end\",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"type\",{get:function(){return this.nodeType||n.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return\"unknown\"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t<n.length;t++){n[t].accept(e)}},e.prototype.acceptVisitor=function(e){this.accept(e.visitNode.bind(e))},e.prototype.adoptChild=function(e,t){if(void 0===t&&(t=-1),e.parent&&e.parent.children){var n=e.parent.children.indexOf(e);n>=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offset<this.offset||-1===this.offset)&&(this.offset=e.offset);var t=e.end;(t>this.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e<this.children.length?this.children[e]:null},e.prototype.addChildren=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.addChild(r)}},e.prototype.findFirstChildBeforeOffset=function(e){if(this.children)for(var t=null,n=this.children.length-1;n>=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof o;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this;n&&!e.some((function(e){return n.type===e}));)n=n.parent;return n},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}();t.Node=i;var o=function(e){function t(t,n){void 0===n&&(n=-1);var r=e.call(this,-1,-1)||this;return r.attachTo(t,n),r.offset=-1,r.length=-1,r}return __extends(t,e),t}(i);t.Nodelist=o;var s=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.isCustomProperty=!1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Identifier},enumerable:!0,configurable:!0}),t.prototype.containsInterpolation=function(){return this.hasChildren()},t}(i);t.Identifier=s;var a=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Stylesheet},enumerable:!0,configurable:!0}),t}(i);t.Stylesheet=a;var l=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declarations},enumerable:!0,configurable:!0}),t}(i);t.Declarations=l;var c=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getDeclarations=function(){return this.declarations},t.prototype.setDeclarations=function(e){return this.setNode(\"declarations\",e)},t}(i);t.BodyDeclaration=c;var d=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Ruleset},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(n.Declarations)},t}(c);t.RuleSet=d;var p=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Selector},enumerable:!0,configurable:!0}),t}(i);t.Selector=p;var h=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SimpleSelector},enumerable:!0,configurable:!0}),t}(i);t.SimpleSelector=h;var m=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AtApplyRule},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(i);t.AtApplyRule=m;var u=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t}(i);t.AbstractDeclaration=u;var f=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertyDeclaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setPropertySet=function(e){return this.setNode(\"propertySet\",e)},t.prototype.getPropertySet=function(){return this.propertySet},t}(u);t.CustomPropertyDeclaration=f;var g=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertySet},enumerable:!0,configurable:!0}),t}(c);t.CustomPropertySet=g;var b=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.property=null,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():\"unknown\";if(this.parent instanceof l&&this.parent.getParent()instanceof _){var n=this.parent.getParent().getParent();if(n instanceof t)return n.getFullPropertyName()+e}return e},t.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&\"-\"===e.charAt(0)){var t=e.indexOf(\"-\",1);if(-1!==t)return e.substring(t+1)}return e},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setNestedProperties=function(e){return this.setNode(\"nestedProperties\",e)},t.prototype.getNestedProperties=function(){return this.nestedProperties},t}(u);t.Declaration=b;var y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Property},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.getText()},t.prototype.isCustomProperty=function(){return!!this.identifier&&this.identifier.isCustomProperty},t}(i);t.Property=y;var v=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Invocation},enumerable:!0,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t}(i);t.Invocation=v;var w=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Function},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(v);t.Function=w;var x=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionParameter},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setDefaultValue=function(e){return this.setNode(\"defaultValue\",e,0)},t.prototype.getDefaultValue=function(){return this.defaultValue},t}(i);t.FunctionParameter=x;var S=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionArgument},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.FunctionArgument=S;var k=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.If},enumerable:!0,configurable:!0}),t.prototype.setExpression=function(e){return this.setNode(\"expression\",e,0)},t.prototype.setElseClause=function(e){return this.setNode(\"elseClause\",e)},t}(c);t.IfStatement=k;var C=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.For},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e,0)},t}(c);t.ForStatement=C;var T=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Each},enumerable:!0,configurable:!0}),t.prototype.getVariables=function(){return this.variables||(this.variables=new o(this)),this.variables},t}(c);t.EachStatement=T;var F=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.While},enumerable:!0,configurable:!0}),t}(c);t.WhileStatement=F;var E=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Else},enumerable:!0,configurable:!0}),t}(c);t.ElseStatement=E;var D=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t}(c);t.FunctionDeclaration=D;var R=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ViewPort},enumerable:!0,configurable:!0}),t}(c);t.ViewPort=R;var z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FontFace},enumerable:!0,configurable:!0}),t}(c);t.FontFace=z;var _=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NestedProperties},enumerable:!0,configurable:!0}),t}(c);t.NestedProperties=_;var I=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Keyframe},enumerable:!0,configurable:!0}),t.prototype.setKeyword=function(e){return this.setNode(\"keyword\",e,0)},t.prototype.getKeyword=function(){return this.keyword},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(c);t.Keyframe=I;var N=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.KeyframeSelector},enumerable:!0,configurable:!0}),t}(c);t.KeyframeSelector=N;var P=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Import},enumerable:!0,configurable:!0}),t.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),!0)},t}(i);t.Import=P;var M=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Use},enumerable:!0,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Use=M;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ModuleConfiguration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.ModuleConfiguration=A;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Forward},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Forward=O;var W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ForwardVisibility},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.ForwardVisibility=W;var L=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Namespace},enumerable:!0,configurable:!0}),t}(i);t.Namespace=L;var j=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Media},enumerable:!0,configurable:!0}),t}(c);t.Media=j;var U=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Supports},enumerable:!0,configurable:!0}),t}(c);t.Supports=U;var V=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Document},enumerable:!0,configurable:!0}),t}(c);t.Document=V;var K=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getMediums=function(){return this.mediums||(this.mediums=new o(this)),this.mediums},t}(i);t.Medialist=K;var q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MediaQuery},enumerable:!0,configurable:!0}),t}(i);t.MediaQuery=q;var B=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SupportsCondition},enumerable:!0,configurable:!0}),t}(i);t.SupportsCondition=B;var $=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Page},enumerable:!0,configurable:!0}),t}(c);t.Page=$;var G=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.PageBoxMarginBox},enumerable:!0,configurable:!0}),t}(c);t.PageBoxMarginBox=G;var H=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Expression},enumerable:!0,configurable:!0}),t}(i);t.Expression=H;var J=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.BinaryExpression},enumerable:!0,configurable:!0}),t.prototype.setLeft=function(e){return this.setNode(\"left\",e)},t.prototype.getLeft=function(){return this.left},t.prototype.setRight=function(e){return this.setNode(\"right\",e)},t.prototype.getRight=function(){return this.right},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t}(i);t.BinaryExpression=J;var X=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Term},enumerable:!0,configurable:!0}),t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setExpression=function(e){return this.setNode(\"expression\",e)},t.prototype.getExpression=function(){return this.expression},t}(i);t.Term=X;var Y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AttributeSelector},enumerable:!0,configurable:!0}),t.prototype.setNamespacePrefix=function(e){return this.setNode(\"namespacePrefix\",e)},t.prototype.getNamespacePrefix=function(){return this.namespacePrefix},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t}(i);t.AttributeSelector=Y;var Z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Operator},enumerable:!0,configurable:!0}),t}(i);t.Operator=Z;var Q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.HexColorValue},enumerable:!0,configurable:!0}),t}(i);t.HexColorValue=Q;var ee=\".\".charCodeAt(0),te=\"0\".charCodeAt(0),ne=\"9\".charCodeAt(0),re=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NumericValue},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=0,i=t.length;r<i&&(e=t.charCodeAt(r),te<=e&&e<=ne||e===ee);r++)n+=1;return{value:t.substring(0,n),unit:n<t.length?t.substring(n):void 0}},t}(i);t.NumericValue=re;var ie=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.variable=null,r.value=null,r.needsSemicolon=!0,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableDeclaration},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return!!e&&(e.attachTo(this),this.variable=e,!0)},t.prototype.getVariable=function(){return this.variable},t.prototype.getName=function(){return this.variable?this.variable.getName():\"\"},t.prototype.setValue=function(e){return!!e&&(e.attachTo(this),this.value=e,!0)},t.prototype.getValue=function(){return this.value},t}(u);t.VariableDeclaration=ie;var oe=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Interpolation},enumerable:!0,configurable:!0}),t}(i);t.Interpolation=oe;var se=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableName},enumerable:!0,configurable:!0}),t.prototype.getName=function(){return this.getText()},t}(i);t.Variable=se;var ae=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ExtendsReference},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t}(i);t.ExtendsReference=ae;var le=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinReference},enumerable:!0,configurable:!0}),t.prototype.getNamespaces=function(){return this.namespaces||(this.namespaces=new o(this)),this.namespaces},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t.prototype.setContent=function(e){return this.setNode(\"content\",e)},t.prototype.getContent=function(){return this.content},t}(i);t.MixinReference=le;var ce=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setGuard=function(e){return e&&(e.attachTo(this),this.guard=e),!1},t}(c);t.MixinDeclaration=ce;var de=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.UnknownAtRule},enumerable:!0,configurable:!0}),t.prototype.setAtRuleName=function(e){this.atRuleName=e},t.prototype.getAtRuleName=function(){return this.atRuleName},t}(c);t.UnknownAtRule=de;var pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ListEntry},enumerable:!0,configurable:!0}),t.prototype.setKey=function(e){return this.setNode(\"key\",e,0)},t.prototype.setValue=function(e){return this.setNode(\"value\",e,1)},t}(i);t.ListEntry=pe;var he=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.getConditions=function(){return this.conditions||(this.conditions=new o(this)),this.conditions},t}(i);t.LessGuard=he;var me=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e)},t}(i);t.GuardCondition=me;var ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Module},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Module=ue,function(e){e[e.Ignore=1]=\"Ignore\",e[e.Warning=2]=\"Warning\",e[e.Error=4]=\"Error\"}(t.Level||(t.Level={}));var fe=function(){function e(e,t,n,r,i,o){void 0===i&&(i=e.offset),void 0===o&&(o=e.length),this.node=e,this.rule=t,this.level=n,this.message=r||t.message,this.offset=i,this.length=o}return e.prototype.getRule=function(){return this.rule},e.prototype.getLevel=function(){return this.level},e.prototype.getOffset=function(){return this.offset},e.prototype.getLength=function(){return this.length},e.prototype.getNode=function(){return this.node},e.prototype.getMessage=function(){return this.message},e}();t.Marker=fe;var ge=function(){function e(){this.entries=[]}return e.entries=function(t){var n=new e;return t.acceptVisitor(n),n.entries},e.prototype.visitNode=function(e){return e.isErroneous()&&e.collectIssues(this.entries),!0},e}();t.ParseErrorCollector=ge})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return n(t,r)}function i(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=i,t.config=function(e){return i}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.CSSIssueType=r,t.ParseError={NumberExpected:new r(\"css-numberexpected\",n(\"expected.number\",\"number expected\")),ConditionExpected:new r(\"css-conditionexpected\",n(\"expected.condt\",\"condition expected\")),RuleOrSelectorExpected:new r(\"css-ruleorselectorexpected\",n(\"expected.ruleorselector\",\"at-rule or selector expected\")),DotExpected:new r(\"css-dotexpected\",n(\"expected.dot\",\"dot expected\")),ColonExpected:new r(\"css-colonexpected\",n(\"expected.colon\",\"colon expected\")),SemiColonExpected:new r(\"css-semicolonexpected\",n(\"expected.semicolon\",\"semi-colon expected\")),TermExpected:new r(\"css-termexpected\",n(\"expected.term\",\"term expected\")),ExpressionExpected:new r(\"css-expressionexpected\",n(\"expected.expression\",\"expression expected\")),OperatorExpected:new r(\"css-operatorexpected\",n(\"expected.operator\",\"operator expected\")),IdentifierExpected:new r(\"css-identifierexpected\",n(\"expected.ident\",\"identifier expected\")),PercentageExpected:new r(\"css-percentageexpected\",n(\"expected.percentage\",\"percentage expected\")),URIOrStringExpected:new r(\"css-uriorstringexpected\",n(\"expected.uriorstring\",\"uri or string expected\")),URIExpected:new r(\"css-uriexpected\",n(\"expected.uri\",\"URI expected\")),VariableNameExpected:new r(\"css-varnameexpected\",n(\"expected.varname\",\"variable name expected\")),VariableValueExpected:new r(\"css-varvalueexpected\",n(\"expected.varvalue\",\"variable value expected\")),PropertyValueExpected:new r(\"css-propertyvalueexpected\",n(\"expected.propvalue\",\"property value expected\")),LeftCurlyExpected:new r(\"css-lcurlyexpected\",n(\"expected.lcurly\",\"{ expected\")),RightCurlyExpected:new r(\"css-rcurlyexpected\",n(\"expected.rcurly\",\"} expected\")),LeftSquareBracketExpected:new r(\"css-rbracketexpected\",n(\"expected.lsquare\",\"[ expected\")),RightSquareBracketExpected:new r(\"css-lbracketexpected\",n(\"expected.rsquare\",\"] expected\")),LeftParenthesisExpected:new r(\"css-lparentexpected\",n(\"expected.lparen\",\"( expected\")),RightParenthesisExpected:new r(\"css-rparentexpected\",n(\"expected.rparent\",\") expected\")),CommaExpected:new r(\"css-commaexpected\",n(\"expected.comma\",\"comma expected\")),PageDirectiveOrDeclarationExpected:new r(\"css-pagedirordeclexpected\",n(\"expected.pagedirordecl\",\"page directive or declaraton expected\")),UnknownAtRule:new r(\"css-unknownatrule\",n(\"unknown.atrule\",\"at-rule unknown\")),UnknownKeyword:new r(\"css-unknownkeyword\",n(\"unknown.keyword\",\"unknown keyword\")),SelectorExpected:new r(\"css-selectorexpected\",n(\"expected.selector\",\"selector expected\")),StringLiteralExpected:new r(\"css-stringliteralexpected\",n(\"expected.stringliteral\",\"string literal expected\")),WhitespaceExpected:new r(\"css-whitespaceexpected\",n(\"expected.whitespace\",\"whitespace expected\")),MediaQueryExpected:new r(\"css-mediaqueryexpected\",n(\"expected.mediaquery\",\"media query expected\")),IdentifierOrWildcardExpected:new r(\"css-idorwildcardexpected\",n(\"expected.idorwildcard\",\"identifier or wildcard expected\")),WildcardExpected:new r(\"css-wildcardexpected\",n(\"expected.wildcard\",\"wildcard expected\")),IdentifierOrVariableExpected:new r(\"css-idorvarexpected\",n(\"expected.idorvar\",\"identifier or variable expected\"))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.cssData={version:1.1,properties:[{name:\"width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/width\"}],description:\"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"height\",values:[{name:\"auto\",description:\"The height depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/height\"}],description:\"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"display\",values:[{name:\"block\",description:\"The element generates a block-level box\"},{name:\"contents\",description:\"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal.\"},{name:\"flex\",description:\"The element generates a principal flex container box and establishes a flex formatting context.\"},{name:\"flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"flow-root\",description:\"The element generates a block container box, and lays out its contents using flow layout.\"},{name:\"grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"inline\",description:\"The element generates an inline-level box.\"},{name:\"inline-block\",description:\"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box.\"},{name:\"inline-flex\",description:\"Inline-level flex container.\"},{name:\"inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"inline-table\",description:\"Inline-level table wrapper box containing table box.\"},{name:\"list-item\",description:\"One or more block boxes and one marker box.\"},{name:\"-moz-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-moz-deck\"},{name:\"-moz-grid\"},{name:\"-moz-grid-group\"},{name:\"-moz-grid-line\"},{name:\"-moz-groupbox\"},{name:\"-moz-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-moz-inline-grid\"},{name:\"-moz-inline-stack\"},{name:\"-moz-marker\"},{name:\"-moz-popup\"},{name:\"-moz-stack\"},{name:\"-ms-flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-ms-grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"-ms-inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-ms-inline-grid\",description:\"Inline-level grid container.\"},{name:\"none\",description:\"The element and its descendants generates no boxes.\"},{name:\"ruby\",description:\"The element generates a principal ruby container box, and establishes a ruby formatting context.\"},{name:\"ruby-base\"},{name:\"ruby-base-container\"},{name:\"ruby-text\"},{name:\"ruby-text-container\"},{name:\"run-in\",description:\"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements.\"},{name:\"table\",description:\"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context.\"},{name:\"table-caption\"},{name:\"table-cell\"},{name:\"table-column\"},{name:\"table-column-group\"},{name:\"table-footer-group\"},{name:\"table-header-group\"},{name:\"table-row\"},{name:\"table-row-group\"},{name:\"-webkit-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-webkit-flex\",description:\"The element lays out its contents using flow layout (block-and-inline layout).\"},{name:\"-webkit-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-webkit-inline-flex\",description:\"Inline-level flex container.\"}],syntax:\"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/display\"}],description:\"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.\",restrictions:[\"enum\"]},{name:\"padding\",values:[],syntax:\"[ <length> | <percentage> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"position\",values:[{name:\"absolute\",description:\"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'.\"},{name:\"fixed\",description:\"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins.\"},{name:\"-ms-page\",description:\"The box's position is calculated according to the 'absolute' model.\"},{name:\"relative\",description:\"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position.\"},{name:\"static\",description:\"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply.\"},{name:\"sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"},{name:\"-webkit-sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"}],syntax:\"static | relative | absolute | sticky | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/position\"}],restrictions:[\"enum\"]},{name:\"border\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border\"}],description:\"Shorthand property for setting border width, style, and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"margin\",values:[{name:\"auto\"}],syntax:\"[ <length> | <percentage> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.\",restrictions:[\"length\",\"percentage\"]},{name:\"top\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/top\"}],description:\"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"left\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/left\"}],description:\"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-top\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-top\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color\"}],description:\"Color of an element's text\",restrictions:[\"color\"]},{name:\"font-size\",values:[{name:\"large\"},{name:\"larger\"},{name:\"medium\"},{name:\"small\"},{name:\"smaller\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"<absolute-size> | <relative-size> | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size\"}],description:\"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-color\"}],description:\"Sets the background color of an element.\",restrictions:[\"color\"]},{name:\"text-align\",values:[{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"end\",description:\"The inline contents are aligned to the end edge of the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"},{name:\"start\",description:\"The inline contents are aligned to the start edge of the line box.\"}],syntax:\"start | end | left | right | center | justify | match-parent\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align\"}],description:\"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.\",restrictions:[\"string\"]},{name:\"opacity\",syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/opacity\"}],description:\"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.\",restrictions:[\"number(0-1)\"]},{name:\"background\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"},{name:\"none\",description:\"A value of 'none' counts as an image layer but draws nothing.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"}],syntax:\"[ <bg-layer> , ]* <final-bg-layer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background\"}],description:\"Shorthand property for setting most background properties at the same place in the style sheet.\",restrictions:[\"enum\",\"image\",\"color\",\"position\",\"length\",\"repeat\",\"percentage\",\"box\"]},{name:\"float\",values:[{name:\"inline-end\",description:\"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts.\"},{name:\"inline-start\",description:\"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts.\"},{name:\"left\",description:\"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property).\"},{name:\"none\",description:\"The box is not floated.\"},{name:\"right\",description:\"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top.\"}],syntax:\"left | right | none | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/float\"}],description:\"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.\",restrictions:[\"enum\"]},{name:\"font-weight\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"normal\",description:\"Same as 400\"}],syntax:\"<font-weight-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-weight\"}],description:\"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.\",restrictions:[\"enum\"]},{name:\"overflow\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"-moz-hidden-unscrollable\",description:\"Same as the standardized 'clip', except doesn’t establish a block formatting context.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"[ visible | hidden | clip | scroll | auto ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow\"}],description:\"Shorthand for setting 'overflow-x' and 'overflow-y'.\",restrictions:[\"enum\"]},{name:\"line-height\",values:[{name:\"normal\",description:\"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element.\"}],syntax:\"normal | <number> | <length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height\"}],description:\"Determines the block-progression dimension of the text content area of an inline box.\",restrictions:[\"number\",\"length\",\"percentage\"]},{name:\"font-family\",values:[{name:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\"},{name:\"Arial, Helvetica, sans-serif\"},{name:\"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"},{name:\"'Courier New', Courier, monospace\"},{name:\"cursive\"},{name:\"fantasy\"},{name:\"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif\"},{name:\"Georgia, 'Times New Roman', Times, serif\"},{name:\"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif\"},{name:\"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif\"},{name:\"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif\"},{name:\"monospace\"},{name:\"sans-serif\"},{name:\"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\"},{name:\"serif\"},{name:\"'Times New Roman', Times, serif\"},{name:\"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif\"},{name:\"Verdana, Geneva, Tahoma, sans-serif\"}],syntax:\"<family-name>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-family\"}],description:\"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.\",restrictions:[\"font\"]},{name:\"text-decoration\",values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"underline\",description:\"Each line of text is underlined.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration\"}],description:\"Decorations applied to font used for an element's text.\",restrictions:[\"enum\",\"color\"]},{name:\"box-sizing\",values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],syntax:\"content-box | border-box\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-sizing\"}],description:\"Specifies the behavior of the 'width' and 'height' properties.\",restrictions:[\"enum\"]},{name:\"z-index\",values:[{name:\"auto\",description:\"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element.\"}],syntax:\"auto | <integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/z-index\"}],description:\"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.\",restrictions:[\"integer\"]},{name:\"vertical-align\",values:[{name:\"auto\",description:\"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box.\"},{name:\"baseline\",description:\"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element.\"},{name:\"bottom\",description:\"Align the after edge of the extended inline box with the after-edge of the line box.\"},{name:\"middle\",description:\"Align the 'middle' baseline of the inline element with the middle baseline of the parent.\"},{name:\"sub\",description:\"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"super\",description:\"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"text-bottom\",description:\"Align the bottom of the box with the after-edge of the parent element's font.\"},{name:\"text-top\",description:\"Align the top of the box with the before-edge of the parent element's font.\"},{name:\"top\",description:\"Align the before edge of the extended inline box with the before-edge of the line box.\"},{name:\"-webkit-baseline-middle\"}],syntax:\"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/vertical-align\"}],description:\"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-radius\",syntax:\"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-radius\"}],description:\"Defines the radii of the outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-left\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-left\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"cursor\",values:[{name:\"alias\",description:\"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.\"},{name:\"all-scroll\",description:\"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.\"},{name:\"auto\",description:\"The UA determines the cursor to display based on the current context.\"},{name:\"cell\",description:\"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.\"},{name:\"col-resize\",description:\"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.\"},{name:\"context-menu\",description:\"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.\"},{name:\"copy\",description:\"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.\"},{name:\"crosshair\",description:\"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode.\"},{name:\"default\",description:\"The platform-dependent default cursor. Often rendered as an arrow.\"},{name:\"e-resize\",description:\"Indicates that east edge is to be moved.\"},{name:\"ew-resize\",description:\"Indicates a bidirectional east-west resize cursor.\"},{name:\"grab\",description:\"Indicates that something can be grabbed.\"},{name:\"grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"help\",description:\"Help is available for the object under the cursor. Often rendered as a question mark or a balloon.\"},{name:\"move\",description:\"Indicates something is to be moved.\"},{name:\"-moz-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-moz-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-moz-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-moz-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"ne-resize\",description:\"Indicates that movement starts from north-east corner.\"},{name:\"nesw-resize\",description:\"Indicates a bidirectional north-east/south-west cursor.\"},{name:\"no-drop\",description:\"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.\"},{name:\"none\",description:\"No cursor is rendered for the element.\"},{name:\"not-allowed\",description:\"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.\"},{name:\"n-resize\",description:\"Indicates that north edge is to be moved.\"},{name:\"ns-resize\",description:\"Indicates a bidirectional north-south cursor.\"},{name:\"nw-resize\",description:\"Indicates that movement starts from north-west corner.\"},{name:\"nwse-resize\",description:\"Indicates a bidirectional north-west/south-east cursor.\"},{name:\"pointer\",description:\"The cursor is a pointer that indicates a link.\"},{name:\"progress\",description:\"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.\"},{name:\"row-resize\",description:\"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.\"},{name:\"se-resize\",description:\"Indicates that movement starts from south-east corner.\"},{name:\"s-resize\",description:\"Indicates that south edge is to be moved.\"},{name:\"sw-resize\",description:\"Indicates that movement starts from south-west corner.\"},{name:\"text\",description:\"Indicates text that may be selected. Often rendered as a vertical I-beam.\"},{name:\"vertical-text\",description:\"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.\"},{name:\"wait\",description:\"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.\"},{name:\"-webkit-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-webkit-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-webkit-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-webkit-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"w-resize\",description:\"Indicates that west edge is to be moved.\"},{name:\"zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"}],syntax:\"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/cursor\"}],description:\"Allows control over cursor appearance in an element\",restrictions:[\"url\",\"number\",\"enum\"]},{name:\"margin-bottom\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-bottom\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"right\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/right\"}],description:\"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-right\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-right\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-left\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-left\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-top\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-top\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-width\",values:[{name:\"none\",description:\"No limit on the width of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"bottom\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/bottom\"}],description:\"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-image\",values:[{name:\"none\",description:\"Counts as an image layer but draws nothing.\"}],syntax:\"<bg-image>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-image\"}],description:\"Sets the background image(s) of an element.\",restrictions:[\"image\",\"enum\"]},{name:\"content\",values:[{name:\"attr()\",description:\"The attr(n) function returns as a string the value of attribute n for the subject of the selector.\"},{name:\"counter(name)\",description:\"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties).\"},{name:\"icon\",description:\"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element.\"},{name:\"none\",description:\"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content.\"},{name:\"normal\",description:\"See http://www.w3.org/TR/css3-content/#content for computation rules.\"},{name:\"url()\"}],syntax:\"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/content\"}],description:\"Determines which page-based occurrence of a given element is applied to a counter or string value.\",restrictions:[\"string\",\"url\"]},{name:\"padding-right\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-right\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"white-space\",values:[{name:\"normal\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'normal'.\"},{name:\"nowrap\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'none'.\"},{name:\"pre\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'none'.\"},{name:\"pre-line\",description:\"Sets 'white-space-collapsing' to 'preserve-breaks' and 'text-wrap' to 'normal'.\"},{name:\"pre-wrap\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'normal'.\"}],syntax:\"normal | pre | nowrap | pre-wrap | pre-line | break-spaces\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/white-space\"}],description:\"Shorthand property for the 'white-space-collapsing' and 'text-wrap' properties.\",restrictions:[\"enum\"]},{name:\"padding-bottom\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-bottom\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-bottom\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom\"}],description:\"Shorthand property for setting border width, style and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"box-shadow\",values:[{name:\"inset\",description:\"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).\"},{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-shadow\"}],description:\"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.\",restrictions:[\"length\",\"color\",\"enum\"]},{name:\"transform\",values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],syntax:\"none | <transform-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"min-height\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"visibility\",values:[{name:\"collapse\",description:\"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.\"},{name:\"hidden\",description:\"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.\"},{name:\"visible\",description:\"The generated box is visible.\"}],syntax:\"visible | hidden | collapse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/visibility\"}],description:\"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the ‘display’ property to ‘none’ to suppress box generation altogether).\",restrictions:[\"enum\"]},{name:\"background-position\",syntax:\"<bg-position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position\"}],description:\"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"min-width\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"outline\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"},{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline\"}],description:\"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\",\"enum\"]},{name:\"transition\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"<single-transition>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"clear\",values:[{name:\"both\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"left\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"none\",description:\"No constraint on the box's position with respect to floats.\"},{name:\"right\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document.\"}],syntax:\"none | left | right | both | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clear\"}],description:\"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.\",restrictions:[\"enum\"]},{name:\"border-color\",values:[],syntax:\"<color>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-color\"}],description:\"The color of the border around all four edges of an element.\",restrictions:[\"color\"]},{name:\"background-repeat\",values:[],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-repeat\"}],description:\"Specifies how background images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"background-size\",values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-size\"}],description:\"Specifies the size of the background images.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-transform\",values:[{name:\"capitalize\",description:\"Puts the first typographic letter unit of each word in titlecase.\"},{name:\"lowercase\",description:\"Puts all letters in lowercase.\"},{name:\"none\",description:\"No effects.\"},{name:\"uppercase\",description:\"Puts all letters in uppercase.\"}],syntax:\"none | capitalize | uppercase | lowercase | full-width | full-size-kana\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-transform\"}],description:\"Controls capitalization effects of an element’s text.\",restrictions:[\"enum\"]},{name:\"max-height\",values:[{name:\"none\",description:\"No limit on the height of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"list-style\",values:[{name:\"armenian\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\"},{name:\"decimal-leading-zero\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\"},{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"lower-alpha\"},{name:\"lower-greek\"},{name:\"lower-latin\"},{name:\"lower-roman\"},{name:\"none\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\"},{name:\"upper-latin\"},{name:\"upper-roman\"},{name:\"url()\"}],syntax:\"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style\"}],description:\"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'\",restrictions:[\"image\",\"enum\",\"url\"]},{name:\"font-style\",values:[{name:\"italic\",description:\"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not\"},{name:\"normal\",description:\"Selects a face that is classified as 'normal'.\"},{name:\"oblique\",description:\"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not.\"}],syntax:\"normal | italic | oblique <angle>{0,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-style\"}],description:\"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.\",restrictions:[\"enum\"]},{name:\"font\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"caption\",description:\"The font used for captioned controls (e.g., buttons, drop-downs, etc.).\"},{name:\"icon\",description:\"The font used to label icons.\"},{name:\"italic\",description:\"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'.\"},{name:\"large\"},{name:\"larger\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"medium\"},{name:\"menu\",description:\"The font used in menus (e.g., dropdown menus and menu lists).\"},{name:\"message-box\",description:\"The font used in dialog boxes.\"},{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"oblique\",description:\"Selects a font that is labeled 'oblique'.\"},{name:\"small\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"},{name:\"small-caption\",description:\"The font used for labeling small controls.\"},{name:\"smaller\"},{name:\"status-bar\",description:\"The font used in window status bars.\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font\"}],description:\"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.\",restrictions:[\"font\"]},{name:\"text-overflow\",values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],syntax:\"[ clip | ellipsis | <string> ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-overflow\"}],description:\"Text can overflow for example when it is prevented from wrapping.\",restrictions:[\"enum\",\"string\"]},{name:\"border-left\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-right\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-width\",values:[],syntax:\"<line-width>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-width\"}],description:\"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.\",restrictions:[\"length\",\"line-width\"]},{name:\"justify-content\",values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"start\",description:\"The items are packed flush to each other toward the start edge of the alignment container in the main axis.\"},{name:\"end\",description:\"The items are packed flush to each other toward the end edge of the alignment container in the main axis.\"},{name:\"left\",description:\"The items are packed flush to each other toward the left edge of the alignment container in the main axis.\"},{name:\"right\",description:\"The items are packed flush to each other toward the right edge of the alignment container in the main axis.\"},{name:\"safe\",description:\"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.\"},{name:\"unsafe\",description:\"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored.\"},{name:\"stretch\",description:\"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container.\"},{name:\"space-evenly\",description:\"The items are evenly distributed within the alignment container along the main axis.\"},{name:\"flex-end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"flex-start\",description:\"Flex items are packed toward the start of the line.\"},{name:\"space-around\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Flex items are evenly distributed in the line.\"},{name:\"baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"first baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"last baseline\",description:\"Specifies participation in last-baseline alignment.\"}],syntax:\"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]\",description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"align-items\",values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]\",description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"overflow-y\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-y\"}],description:\"Specifies the handling of overflow in the vertical direction.\",restrictions:[\"enum\"]},{name:\"pointer-events\",values:[{name:\"all\",description:\"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element.\"},{name:\"fill\",description:\"The given element can be the target element for pointer events whenever the pointer is over the interior of the element.\"},{name:\"none\",description:\"The given element does not receive pointer events.\"},{name:\"painted\",description:'The given element can be the target element for pointer events when the pointer is over a \"painted\" area. '},{name:\"stroke\",description:\"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element.\"},{name:\"visible\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and the pointer is over either the interior or the perimete of the element.\"},{name:\"visibleFill\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the interior of the element.\"},{name:\"visiblePainted\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over a ‘painted’ area.\"},{name:\"visibleStroke\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the perimeter of the element.\"}],syntax:\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/pointer-events\"}],description:\"Specifies under what circumstances a given element can be the target element for a pointer event.\",restrictions:[\"enum\"]},{name:\"letter-spacing\",values:[{name:\"normal\",description:\"The spacing is the normal spacing for the current font. It is typically zero-length.\"}],syntax:\"normal | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/letter-spacing\"}],description:\"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.\",restrictions:[\"length\"]},{name:\"border-style\",values:[],syntax:\"<line-style>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-style\"}],description:\"The style of the border around edges of an element.\",restrictions:[\"line-style\"]},{name:\"animation\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"timing-function\",\"enum\",\"identifier\",\"number\"]},{name:\"overflow-x\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-x\"}],description:\"Specifies the handling of overflow in the horizontal direction.\",restrictions:[\"enum\"]},{name:\"word-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"border-collapse\",values:[{name:\"collapse\",description:\"Selects the collapsing borders model.\"},{name:\"separate\",description:\"Selects the separated borders border model.\"}],syntax:\"collapse | separate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-collapse\"}],description:\"Selects a table's border model.\",restrictions:[\"enum\"]},{name:\"flex-direction\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],syntax:\"row | row-reverse | column | column-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-direction\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"zoom\",browsers:[\"E12\",\"S3.1\",\"C1\",\"IE5.5\",\"O15\"],values:[{name:\"normal\"}],syntax:\"auto | <number> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/zoom\"}],description:\"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"flex\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],syntax:\"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex\"}],description:\"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"text-shadow\",values:[{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow-t>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-shadow\"}],description:\"Enables shadow effects to be applied to the text of the element.\",restrictions:[\"length\",\"color\"]},{name:\"list-style-type\",values:[{name:\"armenian\",description:\"Traditional uppercase Armenian numbering.\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\",description:\"Western decimal numbers.\"},{name:\"decimal-leading-zero\",description:\"Decimal numbers padded by initial zeros.\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\",description:\"Traditional Georgian numbering.\"},{name:\"lower-alpha\",description:\"Lowercase ASCII letters.\"},{name:\"lower-greek\",description:\"Lowercase classical Greek.\"},{name:\"lower-latin\",description:\"Lowercase ASCII letters.\"},{name:\"lower-roman\",description:\"Lowercase ASCII Roman numerals.\"},{name:\"none\",description:\"No marker\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\",description:\"Uppercase ASCII letters.\"},{name:\"upper-latin\",description:\"Uppercase ASCII letters.\"},{name:\"upper-roman\",description:\"Uppercase ASCII Roman numerals.\"}],syntax:\"<counter-style> | <string> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-type\"}],description:\"Used to construct the default contents of a list item’s marker\",restrictions:[\"enum\",\"string\"]},{name:\"border-bottom-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius\"}],description:\"Defines the radii of the bottom left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"user-select\",values:[{name:\"all\",description:\"The content of the element must be selected atomically\"},{name:\"auto\"},{name:\"contain\",description:\"UAs must not allow a selection which is started in this element to be extended outside of this element.\"},{name:\"none\",description:\"The UA must not allow selections to be started in this element.\"},{name:\"text\",description:\"The element imposes no constraint on the selection.\"}],status:\"nonstandard\",syntax:\"auto | text | none | contain | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/user-select\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"fill\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints the interior of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transform-origin\",syntax:\"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-origin\"}],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius\"}],description:\"Defines the radii of the top left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-indent\",values:[],syntax:\"<length-percentage> && hanging? && each-line?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-indent\"}],description:\"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-bottom-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius\"}],description:\"Defines the radii of the bottom right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"flex-wrap\",values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"nowrap | wrap | wrap-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-wrap\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"border-spacing\",syntax:\"<length> <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-spacing\"}],description:\"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.\",restrictions:[\"length\"]},{name:\"border-top-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius\"}],description:\"Defines the radii of the top right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"clip\",values:[{name:\"auto\",description:\"The element does not clip.\"},{name:\"rect()\",description:\"Specifies offsets from the edges of the border box.\"}],syntax:\"<shape> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip\"}],description:\"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element’s box.\",restrictions:[\"enum\"]},{name:\"border-top-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-color\"}],description:\"Sets the color of the top border.\",restrictions:[\"color\"]},{name:\"word-break\",values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],syntax:\"normal | break-all | keep-all | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-break\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"border-bottom-color\",syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color\"}],description:\"Sets the color of the bottom border.\",restrictions:[\"color\"]},{name:\"flex-grow\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-grow\"}],description:\"Sets the flex grow factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"direction\",values:[{name:\"ltr\",description:\"Left-to-right direction.\"},{name:\"rtl\",description:\"Right-to-left direction.\"}],syntax:\"ltr | rtl\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/direction\"}],description:\"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.\",restrictions:[\"enum\"]},{name:\"align-self\",values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>\",description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"flex-shrink\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-shrink\"}],description:\"Sets the flex shrink factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"text-rendering\",browsers:[\"FF1\",\"S5\",\"C4\",\"O15\"],values:[{name:\"auto\"},{name:\"geometricPrecision\",description:\"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed.\"},{name:\"optimizeLegibility\",description:\"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision.\"},{name:\"optimizeSpeed\",description:\"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision.\"}],syntax:\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-rendering\"}],description:\"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The ‘text-rendering’ property provides these hints.\",restrictions:[\"enum\"]},{name:\"touch-action\",values:[{name:\"auto\",description:\"The user agent may determine any permitted touch behaviors for touches that begin on the element.\"},{name:\"cross-slide-x\"},{name:\"cross-slide-y\"},{name:\"double-tap-zoom\"},{name:\"manipulation\",description:\"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming.\"},{name:\"none\",description:\"Touches that begin on the element must not trigger default touch behaviors.\"},{name:\"pan-x\",description:\"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element’s nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element’s nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\"}],syntax:\"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/touch-action\"}],description:\"Determines whether touch input may trigger default behavior supplied by user agent.\",restrictions:[\"enum\"]},{name:\"background-clip\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-clip\"}],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"filter\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],description:\"A filter reference to a <filter> element.\"}],syntax:\"none | <filter-function-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/filter\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"src\",values:[{name:\"url()\",description:\"Reference font by URL\"},{name:\"format()\",description:\"Optional hint describing the format of the font resource.\"},{name:\"local()\",description:\"Format-specific string that identifies a locally available copy of a given font.\"}],syntax:\"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#\",description:\"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.\",restrictions:[\"enum\",\"url\",\"identifier\"]},{name:\"animation-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function\"}],description:\"Describes how the animation will progress over one cycle of its duration.\",restrictions:[\"timing-function\"]},{name:\"border-right-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-color\"}],description:\"Sets the color of the right border.\",restrictions:[\"color\"]},{name:\"font-variant\",values:[{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant\"}],description:\"Specifies variant representations of the font\",restrictions:[\"enum\"]},{name:\"border-left-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-color\"}],description:\"Sets the color of the left border.\",restrictions:[\"color\"]},{name:\"animation-name\",values:[{name:\"none\",description:\"No animation is performed\"}],syntax:\"[ none | <keyframes-name> ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-name\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"animation-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-duration\"}],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"will-change\",browsers:[\"FF36\",\"S9.1\",\"C36\",\"O24\"],values:[{name:\"auto\",description:\"Expresses no particular intent.\"},{name:\"contents\",description:\"Indicates that the author expects to animate or change something about the element’s contents in the near future.\"},{name:\"scroll-position\",description:\"Indicates that the author expects to animate or change the scroll position of the element in the near future.\"}],syntax:\"auto | <animateable-feature>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/will-change\"}],description:\"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.\",restrictions:[\"enum\",\"identifier\"]},{name:\"stroke\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints along the outline of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transition-property\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"none | <single-transition-property>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-property\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"table-layout\",values:[{name:\"auto\",description:\"Use any automatic table layout algorithm.\"},{name:\"fixed\",description:\"Use the fixed table layout algorithm.\"}],syntax:\"auto | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/table-layout\"}],description:\"Controls the algorithm used to lay out the table cells, rows, and columns.\",restrictions:[\"enum\"]},{name:\"transition-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-delay\"}],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"flex-basis\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"}],syntax:\"content | <'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-basis\"}],description:\"Sets the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"overflow-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.\",restrictions:[\"enum\"]},{name:\"border-top-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-width\"}],description:\"Sets the thickness of the top border.\",restrictions:[\"length\",\"line-width\"]},{name:\"outline-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-width\"}],description:\"Width of the outline.\",restrictions:[\"length\",\"line-width\"]},{name:\"order\",syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/order\"}],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"border-bottom-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width\"}],description:\"Sets the thickness of the bottom border.\",restrictions:[\"length\",\"line-width\"]},{name:\"animation-fill-mode\",values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],syntax:\"<single-animation-fill-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"outline-style\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"}],syntax:\"auto | <'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-style\"}],description:\"Style of the outline.\",restrictions:[\"line-style\",\"enum\"]},{name:\"object-fit\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],syntax:\"fill | contain | cover | none | scale-down\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-fit\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"stroke-width\",description:\"Specifies the width of the stroke on the current object.\",restrictions:[\"percentage\",\"length\"]},{name:\"transition-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-duration\"}],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"animation-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-delay\"}],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"outline-offset\",browsers:[\"E15\",\"FF1.5\",\"S1.2\",\"C1\",\"O9.5\"],syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-offset\"}],description:\"Offset the outline and draw it beyond the border edge.\",restrictions:[\"length\"]},{name:\"stroke-dashoffset\",description:\"Specifies the distance into the dash pattern to start the dash.\",restrictions:[\"percentage\",\"length\"]},{name:\"backface-visibility\",values:[{name:\"hidden\",description:\"Back side is hidden.\"},{name:\"visible\",description:\"Back side is visible.\"}],syntax:\"visible | hidden\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backface-visibility\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"border-right-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-width\"}],description:\"Sets the thickness of the right border.\",restrictions:[\"length\",\"line-width\"]},{name:\"flex-flow\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"<'flex-direction'> || <'flex-wrap'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-flow\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"word-spacing\",values:[{name:\"normal\",description:\"No additional spacing is applied. Computes to zero.\"}],syntax:\"normal | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-spacing\"}],description:\"Specifies additional spacing between “words”.\",restrictions:[\"length\",\"percentage\"]},{name:\"transition-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function\"}],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"resize\",browsers:[\"FF4\",\"S3\",\"C1\",\"O12.1\"],values:[{name:\"both\",description:\"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element.\"},{name:\"horizontal\",description:\"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element.\"},{name:\"none\",description:\"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element.\"},{name:\"vertical\",description:\"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element.\"}],syntax:\"none | both | horizontal | vertical | block | inline\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/resize\"}],description:\"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.\",restrictions:[\"enum\"]},{name:\"unicode-bidi\",values:[{name:\"bidi-override\",description:\"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored.\"},{name:\"embed\",description:\"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property.\"},{name:\"isolate\",description:\"The contents of the element are considered to be inside a separate, independent paragraph.\"},{name:\"isolate-override\",description:\"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'\"},{name:\"normal\",description:\"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries.\"},{name:\"plaintext\",description:\"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'.\"}],syntax:\"normal | embed | isolate | bidi-override | isolate-override | plaintext\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi\"}],description:\"The level of embedding with respect to the bidirectional algorithm.\",restrictions:[\"enum\"]},{name:\"unicode-range\",values:[{name:\"U+26\",description:\"Ampersand.\"},{name:\"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00–FB4F\",description:\"WGL4 character set (Pan-European).\"},{name:\"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF\",description:\"The Multilingual European Subset No. 1. Latin. Covers ~44 languages.\"},{name:\"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language.\"},{name:\"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts.\"},{name:\"U+00-7F\",description:\"Basic Latin (ASCII).\"},{name:\"U+80-FF\",description:\"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs.\"},{name:\"U+100-17F\",description:\"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish.\"},{name:\"U+180-24F\",description:\"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology.\"},{name:\"U+1E00-1EFF\",description:\"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use.\"},{name:\"U+250-2AF\",description:\"International Phonetic Alphabet Extensions.\"},{name:\"U+370-3FF\",description:\"Greek and Coptic.\"},{name:\"U+1F00-1FFF\",description:\"Greek Extended. Accented characters for polytonic Greek.\"},{name:\"U+400-4FF\",description:\"Cyrillic.\"},{name:\"U+500-52F\",description:\"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok.\"},{name:\"U+00-52F, U+1E00-1FFF, U+2200–22FF\",description:\"Latin, Greek, Cyrillic, some punctuation and symbols.\"},{name:\"U+530–58F\",description:\"Armenian.\"},{name:\"U+590–5FF\",description:\"Hebrew.\"},{name:\"U+600–6FF\",description:\"Arabic.\"},{name:\"U+750–77F\",description:\"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian.\"},{name:\"U+8A0–8FF\",description:\"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs.\"},{name:\"U+700–74F\",description:\"Syriac.\"},{name:\"U+900–97F\",description:\"Devanagari.\"},{name:\"U+980–9FF\",description:\"Bengali.\"},{name:\"U+A00–A7F\",description:\"Gurmukhi.\"},{name:\"U+A80–AFF\",description:\"Gujarati.\"},{name:\"U+B00–B7F\",description:\"Oriya.\"},{name:\"U+B80–BFF\",description:\"Tamil.\"},{name:\"U+C00–C7F\",description:\"Telugu.\"},{name:\"U+C80–CFF\",description:\"Kannada.\"},{name:\"U+D00–D7F\",description:\"Malayalam.\"},{name:\"U+D80–DFF\",description:\"Sinhala.\"},{name:\"U+118A0–118FF\",description:\"Warang Citi.\"},{name:\"U+E00–E7F\",description:\"Thai.\"},{name:\"U+1A20–1AAF\",description:\"Tai Tham.\"},{name:\"U+AA80–AADF\",description:\"Tai Viet.\"},{name:\"U+E80–EFF\",description:\"Lao.\"},{name:\"U+F00–FFF\",description:\"Tibetan.\"},{name:\"U+1000–109F\",description:\"Myanmar (Burmese).\"},{name:\"U+10A0–10FF\",description:\"Georgian.\"},{name:\"U+1200–137F\",description:\"Ethiopic.\"},{name:\"U+1380–139F\",description:\"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks\"},{name:\"U+2D80–2DDF\",description:\"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit.\"},{name:\"U+AB00–AB2F\",description:\"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz.\"},{name:\"U+1780–17FF\",description:\"Khmer.\"},{name:\"U+1800–18AF\",description:\"Mongolian.\"},{name:\"U+1B80–1BBF\",description:\"Sundanese.\"},{name:\"U+1CC0–1CCF\",description:\"Sundanese Supplement. Punctuation.\"},{name:\"U+4E00–9FD5\",description:\"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese.\"},{name:\"U+3400–4DB5\",description:\"CJK Unified Ideographs Extension A. Rare ideographs.\"},{name:\"U+2F00–2FDF\",description:\"Kangxi Radicals.\"},{name:\"U+2E80–2EFF\",description:\"CJK Radicals Supplement. Alternative forms of Kangxi Radicals.\"},{name:\"U+1100–11FF\",description:\"Hangul Jamo.\"},{name:\"U+AC00–D7AF\",description:\"Hangul Syllables.\"},{name:\"U+3040–309F\",description:\"Hiragana.\"},{name:\"U+30A0–30FF\",description:\"Katakana.\"},{name:\"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F\",description:\"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol.\"},{name:\"U+A4D0–A4FF\",description:\"Lisu.\"},{name:\"U+A000–A48F\",description:\"Yi Syllables.\"},{name:\"U+A490–A4CF\",description:\"Yi Radicals.\"},{name:\"U+2000-206F\",description:\"General Punctuation.\"},{name:\"U+3000–303F\",description:\"CJK Symbols and Punctuation.\"},{name:\"U+2070–209F\",description:\"Superscripts and Subscripts.\"},{name:\"U+20A0–20CF\",description:\"Currency Symbols.\"},{name:\"U+2100–214F\",description:\"Letterlike Symbols.\"},{name:\"U+2150–218F\",description:\"Number Forms.\"},{name:\"U+2190–21FF\",description:\"Arrows.\"},{name:\"U+2200–22FF\",description:\"Mathematical Operators.\"},{name:\"U+2300–23FF\",description:\"Miscellaneous Technical.\"},{name:\"U+E000-F8FF\",description:\"Private Use Area.\"},{name:\"U+FB00–FB4F\",description:\"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew.\"},{name:\"U+FB50–FDFF\",description:\"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures.\"},{name:\"U+1F600–1F64F\",description:\"Emoji: Emoticons.\"},{name:\"U+2600–26FF\",description:\"Emoji: Miscellaneous Symbols.\"},{name:\"U+1F300–1F5FF\",description:\"Emoji: Miscellaneous Symbols and Pictographs.\"},{name:\"U+1F900–1F9FF\",description:\"Emoji: Supplemental Symbols and Pictographs.\"},{name:\"U+1F680–1F6FF\",description:\"Emoji: Transport and Map Symbols.\"}],syntax:\"<unicode-range>#\",description:\"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.\",restrictions:[\"unicode-range\"]},{name:\"stroke-dasharray\",values:[{name:\"none\",description:\"Indicates that no dashing is used.\"}],description:\"Controls the pattern of dashes and gaps used to stroke paths.\",restrictions:[\"length\",\"percentage\",\"number\",\"enum\"]},{name:\"animation-iteration-count\",values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],syntax:\"<single-animation-iteration-count>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"image-rendering\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"],values:[{name:\"auto\",description:\"The image should be scaled with an algorithm that maximizes the appearance of the image.\"},{name:\"crisp-edges\",description:\"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process.\"},{name:\"-moz-crisp-edges\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"]},{name:\"optimizeQuality\",description:\"Deprecated.\"},{name:\"optimizeSpeed\",description:\"Deprecated.\"},{name:\"pixelated\",description:\"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels.\"}],syntax:\"auto | crisp-edges | pixelated\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-rendering\"}],description:\"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.\",restrictions:[\"enum\"]},{name:\"border-left-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-width\"}],description:\"Sets the thickness of the left border.\",restrictions:[\"length\",\"line-width\"]},{name:\"align-content\",values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"flex-end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"flex-start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"space-around\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],syntax:\"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>\",description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"border-bottom-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style\"}],description:\"Sets the style of the bottom border.\",restrictions:[\"line-style\"]},{name:\"perspective\",values:[{name:\"none\",description:\"No perspective transform is applied.\"}],syntax:\"none | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\",\"enum\"]},{name:\"border-top-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-style\"}],description:\"Sets the style of the top border.\",restrictions:[\"line-style\"]},{name:\"text-size-adjust\",status:\"experimental\",syntax:\"none | auto | <percentage>\",browsers:[\"E12\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust\"}],description:\"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property.\"},{name:\"transform-style\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"},{name:\"preserve-3d\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],description:\"Flattening is not performed, so children maintain their position in 3D space.\"}],syntax:\"flat | preserve-3d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-style\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"grid-template-columns\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"enum\"]},{name:\"list-style-position\",values:[{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"}],syntax:\"inside | outside\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-position\"}],description:\"Specifies the position of the '::marker' pseudo-element's box in the list item.\",restrictions:[\"enum\"]},{name:\"animation-direction\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation-direction>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-direction\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"animation-play-state\",values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],syntax:\"<single-animation-play-state>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-play-state\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"hyphens\",values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],syntax:\"none | manual | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hyphens\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"quotes\",values:[{name:\"none\",description:\"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively.\"}],syntax:\"none | auto | [ <string> <string> ]+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/quotes\"}],description:\"Specifies quotation marks for any number of embedded quotations.\",restrictions:[\"string\"]},{name:\"background-origin\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-origin\"}],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"background-attachment\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element’s contents: if the element has a scrolling mechanism, the background scrolls with the element’s contents.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element’s border.)\"}],syntax:\"<attachment>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-attachment\"}],description:\"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').\",restrictions:[\"enum\"]},{name:\"background-position-x\",values:[{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"left\",description:\"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\"},{name:\"right\",description:\"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-x\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-position-y\",values:[{name:\"bottom\",description:\"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\"},{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"top\",description:\"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-y\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-feature-settings\",values:[{name:'\"aalt\"',description:\"Access All Alternates.\"},{name:'\"abvf\"',description:\"Above-base Forms. Required in Khmer script.\"},{name:'\"abvm\"',description:\"Above-base Mark Positioning. Required in Indic scripts.\"},{name:'\"abvs\"',description:\"Above-base Substitutions. Required in Indic scripts.\"},{name:'\"afrc\"',description:\"Alternative Fractions.\"},{name:'\"akhn\"',description:\"Akhand. Required in most Indic scripts.\"},{name:'\"blwf\"',description:\"Below-base Form. Required in a number of Indic scripts.\"},{name:'\"blwm\"',description:\"Below-base Mark Positioning. Required in Indic scripts.\"},{name:'\"blws\"',description:\"Below-base Substitutions. Required in Indic scripts.\"},{name:'\"calt\"',description:\"Contextual Alternates.\"},{name:'\"case\"',description:\"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting.\"},{name:'\"ccmp\"',description:\"Glyph Composition/Decomposition.\"},{name:'\"cfar\"',description:\"Conjunct Form After Ro. Required in Khmer scripts.\"},{name:'\"cjct\"',description:\"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"clig\"',description:\"Contextual Ligatures.\"},{name:'\"cpct\"',description:\"Centered CJK Punctuation. Used primarily in Chinese fonts.\"},{name:'\"cpsp\"',description:\"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic).\"},{name:'\"cswh\"',description:\"Contextual Swash.\"},{name:'\"curs\"',description:\"Cursive Positioning. Can be used in any cursive script.\"},{name:'\"c2pc\"',description:\"Petite Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"c2sc\"',description:\"Small Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"dist\"',description:\"Distances. Required in Indic scripts.\"},{name:'\"dlig\"',description:\"Discretionary ligatures.\"},{name:'\"dnom\"',description:\"Denominators.\"},{name:'\"dtls\"',description:\"Dotless Forms. Applied to math formula layout.\"},{name:'\"expt\"',description:\"Expert Forms. Applies only to Japanese.\"},{name:'\"falt\"',description:\"Final Glyph on Line Alternates. Can be used in any cursive script.\"},{name:'\"fin2\"',description:\"Terminal Form #2. Used only with the Syriac script.\"},{name:'\"fin3\"',description:\"Terminal Form #3. Used only with the Syriac script.\"},{name:'\"fina\"',description:\"Terminal Forms. Can be used in any alphabetic script.\"},{name:'\"flac\"',description:\"Flattened ascent forms. Applied to math formula layout.\"},{name:'\"frac\"',description:\"Fractions.\"},{name:'\"fwid\"',description:\"Full Widths. Applies to any script which can use monospaced forms.\"},{name:'\"half\"',description:\"Half Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"haln\"',description:\"Halant Forms. Required in Indic scripts.\"},{name:'\"halt\"',description:\"Alternate Half Widths. Used only in CJKV fonts.\"},{name:'\"hist\"',description:\"Historical Forms.\"},{name:'\"hkna\"',description:\"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"hlig\"',description:\"Historical Ligatures.\"},{name:'\"hngl\"',description:\"Hangul. Korean only.\"},{name:'\"hojo\"',description:\"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script.\"},{name:'\"hwid\"',description:\"Half Widths. Generally used only in CJKV fonts.\"},{name:'\"init\"',description:\"Initial Forms. Can be used in any alphabetic script.\"},{name:'\"isol\"',description:\"Isolated Forms. Can be used in any cursive script.\"},{name:'\"ital\"',description:\"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well.\"},{name:'\"jalt\"',description:\"Justification Alternates. Can be used in any cursive script.\"},{name:'\"jp78\"',description:\"JIS78 Forms. Applies only to Japanese.\"},{name:'\"jp83\"',description:\"JIS83 Forms. Applies only to Japanese.\"},{name:'\"jp90\"',description:\"JIS90 Forms. Applies only to Japanese.\"},{name:'\"jp04\"',description:\"JIS2004 Forms. Applies only to Japanese.\"},{name:'\"kern\"',description:\"Kerning.\"},{name:'\"lfbd\"',description:\"Left Bounds.\"},{name:'\"liga\"',description:\"Standard Ligatures.\"},{name:'\"ljmo\"',description:\"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"lnum\"',description:\"Lining Figures.\"},{name:'\"locl\"',description:\"Localized Forms.\"},{name:'\"ltra\"',description:\"Left-to-right glyph alternates.\"},{name:'\"ltrm\"',description:\"Left-to-right mirrored forms.\"},{name:'\"mark\"',description:\"Mark Positioning.\"},{name:'\"med2\"',description:\"Medial Form #2. Used only with the Syriac script.\"},{name:'\"medi\"',description:\"Medial Forms.\"},{name:'\"mgrk\"',description:\"Mathematical Greek.\"},{name:'\"mkmk\"',description:\"Mark to Mark Positioning.\"},{name:'\"nalt\"',description:\"Alternate Annotation Forms.\"},{name:'\"nlck\"',description:\"NLC Kanji Forms. Used only with Kanji script.\"},{name:'\"nukt\"',description:\"Nukta Forms. Required in Indic scripts..\"},{name:'\"numr\"',description:\"Numerators.\"},{name:'\"onum\"',description:\"Oldstyle Figures.\"},{name:'\"opbd\"',description:\"Optical Bounds.\"},{name:'\"ordn\"',description:\"Ordinals. Applies mostly to Latin script.\"},{name:'\"ornm\"',description:\"Ornaments.\"},{name:'\"palt\"',description:\"Proportional Alternate Widths. Used mostly in CJKV fonts.\"},{name:'\"pcap\"',description:\"Petite Capitals.\"},{name:'\"pkna\"',description:\"Proportional Kana. Generally used only in Japanese fonts.\"},{name:'\"pnum\"',description:\"Proportional Figures.\"},{name:'\"pref\"',description:\"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra.\"},{name:'\"pres\"',description:\"Pre-base Substitutions. Required in Indic scripts.\"},{name:'\"pstf\"',description:\"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer.\"},{name:'\"psts\"',description:\"Post-base Substitutions.\"},{name:'\"pwid\"',description:\"Proportional Widths.\"},{name:'\"qwid\"',description:\"Quarter Widths. Generally used only in CJKV fonts.\"},{name:'\"rand\"',description:\"Randomize.\"},{name:'\"rclt\"',description:\"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic.\"},{name:'\"rlig\"',description:\"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts.\"},{name:'\"rkrf\"',description:\"Rakar Forms. Required in Devanagari and Gujarati scripts.\"},{name:'\"rphf\"',description:\"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada.\"},{name:'\"rtbd\"',description:\"Right Bounds.\"},{name:'\"rtla\"',description:\"Right-to-left alternates.\"},{name:'\"rtlm\"',description:\"Right-to-left mirrored forms.\"},{name:'\"ruby\"',description:\"Ruby Notation Forms. Applies only to Japanese.\"},{name:'\"salt\"',description:\"Stylistic Alternates.\"},{name:'\"sinf\"',description:\"Scientific Inferiors.\"},{name:'\"size\"',description:\"Optical size.\"},{name:'\"smcp\"',description:\"Small Capitals. Applies only to bicameral scripts.\"},{name:'\"smpl\"',description:\"Simplified Forms. Applies only to Chinese and Japanese.\"},{name:'\"ssty\"',description:\"Math script style alternates.\"},{name:'\"stch\"',description:\"Stretching Glyph Decomposition.\"},{name:'\"subs\"',description:\"Subscript.\"},{name:'\"sups\"',description:\"Superscript.\"},{name:'\"swsh\"',description:\"Swash. Does not apply to ideographic scripts.\"},{name:'\"titl\"',description:\"Titling.\"},{name:'\"tjmo\"',description:\"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"tnam\"',description:\"Traditional Name Forms. Applies only to Japanese.\"},{name:'\"tnum\"',description:\"Tabular Figures.\"},{name:'\"trad\"',description:\"Traditional Forms. Applies only to Chinese and Japanese.\"},{name:'\"twid\"',description:\"Third Widths. Generally used only in CJKV fonts.\"},{name:'\"unic\"',description:\"Unicase.\"},{name:'\"valt\"',description:\"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes.\"},{name:'\"vatu\"',description:\"Vattu Variants. Used for Indic scripts. E.g. Devanagari.\"},{name:'\"vert\"',description:\"Vertical Alternates. Applies only to scripts with vertical writing modes.\"},{name:'\"vhal\"',description:\"Alternate Vertical Half Metrics. Used only in CJKV fonts.\"},{name:'\"vjmo\"',description:\"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"vkna\"',description:\"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"vkrn\"',description:\"Vertical Kerning.\"},{name:'\"vpal\"',description:\"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts.\"},{name:'\"vrt2\"',description:\"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes.\"},{name:'\"zero\"',description:\"Slashed Zero.\"},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",description:\"Disable feature.\"},{name:\"on\",description:\"Enable feature.\"}],syntax:\"normal | <feature-tag-value>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings\"}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"border-left-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-style\"}],description:\"Sets the style of the left border.\",restrictions:[\"line-style\"]},{name:\"font-stretch\",values:[{name:\"condensed\"},{name:\"expanded\"},{name:\"extra-condensed\"},{name:\"extra-expanded\"},{name:\"narrower\",description:\"Indicates a narrower value relative to the width of the parent element.\"},{name:\"normal\"},{name:\"semi-condensed\"},{name:\"semi-expanded\"},{name:\"ultra-condensed\"},{name:\"ultra-expanded\"},{name:\"wider\",description:\"Indicates a wider value relative to the width of the parent element.\"}],syntax:\"<font-stretch-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-stretch\"}],description:\"Selects a normal, condensed, or expanded face from a font family.\",restrictions:[\"enum\"]},{name:\"outline-color\",values:[{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"<color> | invert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-color\"}],description:\"The color of the outline.\",restrictions:[\"enum\",\"color\"]},{name:\"border-right-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-style\"}],description:\"Sets the style of the right border.\",restrictions:[\"line-style\"]},{name:\"clip-path\",values:[{name:\"none\",description:\"No clipping path gets created.\"},{name:\"url()\",description:\"References a <clipPath> element to create a clipping path.\"}],syntax:\"<clip-source> | [ <basic-shape> || <geometry-box> ] | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip-path\"}],description:\"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"list-style-image\",values:[{name:\"none\",description:\"The default contents of the of the list item’s marker are given by 'list-style-type' instead.\"}],syntax:\"<url> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-image\"}],description:\"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.\",restrictions:[\"image\"]},{name:\"counter-increment\",values:[{name:\"none\",description:\"This element does not alter the value of any counters.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-increment\"}],description:\"Manipulate the value of existing counters.\",restrictions:[\"identifier\",\"integer\"]},{name:\"counter-reset\",values:[{name:\"none\",description:\"The counter is not modified.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-reset\"}],description:\"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.\",restrictions:[\"identifier\",\"integer\"]},{name:\"font-display\",status:\"experimental\",syntax:\"[ auto | block | swap | fallback | optional ]\",description:\"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use.\"},{name:\"border-image\",values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\",description:\"Use the border styles.\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],syntax:\"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"column-count\",values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],syntax:\"<integer> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-count\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\",\"enum\"]},{name:\"column-gap\",values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],syntax:\"normal | <length-percentage>\",description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\",\"enum\"]},{name:\"text-decoration-color\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color\"}],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"all\",browsers:[\"FF27\",\"S9.1\",\"C37\",\"O24\"],values:[],syntax:\"initial | inherit | unset | revert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/all\"}],description:\"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.\",restrictions:[\"enum\"]},{name:\"object-position\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-position\"}],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"page-break-inside\",values:[{name:\"auto\",description:\"Neither force nor forbid a page break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page break inside the generated box.\"}],syntax:\"auto | avoid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-inside\"}],description:\"Defines rules for page breaks inside an element.\",restrictions:[\"enum\"]},{name:\"stroke-linecap\",values:[{name:\"butt\",description:\"Indicates that the stroke for each subpath does not extend beyond its two endpoints.\"},{name:\"round\",description:\"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width.\"},{name:\"square\",description:\"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width.\"}],description:\"Specifies the shape to be used at the end of open subpaths when they are stroked.\",restrictions:[\"enum\"]},{name:\"size\",browsers:[\"C\",\"O8\"],restrictions:[\"length\"]},{name:\"empty-cells\",values:[{name:\"hide\",description:\"No borders or backgrounds are drawn around/behind empty cells.\"},{name:\"-moz-show-background\"},{name:\"show\",description:\"Borders and backgrounds are drawn around/behind empty cells (like normal cells).\"}],syntax:\"show | hide\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/empty-cells\"}],description:\"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.\",restrictions:[\"enum\"]},{name:\"page-break-after\",values:[{name:\"always\",description:\"Always force a page break after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break after generated box.\"},{name:\"avoid\",description:\"Avoid a page break after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-after\"}],description:\"Defines rules for page breaks after an element.\",restrictions:[\"enum\"]},{name:\"fill-opacity\",description:\"Specifies the opacity of the painting operation used to paint the interior the current object.\",restrictions:[\"number(0-1)\"]},{name:\"grid-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<'grid-row-gap'> <'grid-column-gap'>?\",description:\"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.\",restrictions:[\"length\"]},{name:\"margin-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-end\"}],description:\"Logical 'margin-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"contain\",browsers:[\"FF69\",\"C52\",\"O40\"],values:[{name:\"none\",description:\"Indicates that the property has no effect.\"},{name:\"strict\",description:\"Turns on all forms of containment for the element.\"},{name:\"content\",description:\"All containment rules except size are applied to the element.\"},{name:\"size\",description:\"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element.\"},{name:\"layout\",description:\"Turns on layout containment for the element.\"},{name:\"style\",description:\"Turns on style containment for the element.\"},{name:\"paint\",description:\"Turns on paint containment for the element.\"}],status:\"experimental\",syntax:\"none | strict | content | [ size || layout || style || paint ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/contain\"}],description:\"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.\",restrictions:[\"enum\"]},{name:\"padding-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start\"}],description:\"Logical 'padding-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start\"}],description:\"Logical 'margin-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end\"}],description:\"Logical 'margin-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"grid-template-rows\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"padding-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end\"}],description:\"Logical 'padding-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"stroke-opacity\",description:\"Specifies the opacity of the painting operation used to stroke the current object.\",restrictions:[\"number(0-1)\"]},{name:\"orphans\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/orphans\"}],description:\"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.\",restrictions:[\"integer\"]},{name:\"shape-outside\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],values:[{name:\"margin-box\",description:\"The background is painted within (clipped to) the margin box.\"},{name:\"none\",description:\"The float area is unaffected.\"}],syntax:\"none | <shape-box> || <basic-shape> | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-outside\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"image\",\"box\",\"shape\",\"enum\"]},{name:\"caption-side\",values:[{name:\"bottom\",description:\"Positions the caption box below the table box.\"},{name:\"top\",description:\"Positions the caption box above the table box.\"}],syntax:\"top | bottom | block-start | block-end | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caption-side\"}],description:\"Specifies the position of the caption box with respect to the table box.\",restrictions:[\"enum\"]},{name:\"widows\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/widows\"}],description:\"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.\",restrictions:[\"integer\"]},{name:\"grid-column\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column\"}],description:\"Shorthand for 'grid-column-start' and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"perspective-origin\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective-origin\"}],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"column-width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<length> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-width\"}],description:\"Describes the width of columns in multicol elements.\",restrictions:[\"length\",\"enum\"]},{name:\"mix-blend-mode\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode\"}],description:\"Defines the formula that must be used to mix the colors with the backdrop.\",restrictions:[\"enum\"]},{name:\"grid-auto-rows\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows\"}],description:\"Specifies the size of implicitly created rows.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-variant-ligatures\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],values:[{name:\"additional-ligatures\",description:\"Enables display of additional ligatures.\"},{name:\"common-ligatures\",description:\"Enables display of common ligatures.\"},{name:\"contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Enables display of contextual alternates.\"},{name:\"discretionary-ligatures\",description:\"Enables display of discretionary ligatures.\"},{name:\"historical-ligatures\",description:\"Enables display of historical ligatures.\"},{name:\"no-additional-ligatures\",description:\"Disables display of additional ligatures.\"},{name:\"no-common-ligatures\",description:\"Disables display of common ligatures.\"},{name:\"no-contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables display of contextual alternates.\"},{name:\"no-discretionary-ligatures\",description:\"Disables display of discretionary ligatures.\"},{name:\"no-historical-ligatures\",description:\"Disables display of historical ligatures.\"},{name:\"none\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables all ligatures.\"},{name:\"normal\",description:\"Implies that the defaults set by the font are used.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures\"}],description:\"Specifies control over which ligatures are enabled or disabled. A value of ‘normal’ implies that the defaults set by the font are used.\",restrictions:[\"enum\"]},{name:\"scroll-behavior\",browsers:[\"FF36\",\"C61\",\"O48\"],values:[{name:\"auto\",description:\"Scrolls in an instant fashion.\"},{name:\"smooth\",description:\"Scrolls in a smooth fashion using a user-agent-defined timing function and time period.\"}],syntax:\"auto | smooth\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior\"}],description:\"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip\",status:\"experimental\",syntax:\"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]\",browsers:[\"S12.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip\"}],description:\"The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors.\"},{name:\"columns\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<'column-width'> || <'column-count'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/columns\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\",\"enum\"]},{name:\"column-rule\",syntax:\"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule\"}],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"line-break\",values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"loose\",description:\"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks text using the most common set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],syntax:\"auto | loose | normal | strict | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-break\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"text-align-last\",browsers:[\"E12\",\"FF49\",\"C47\",\"IE5.5\",\"O\"],values:[{name:\"auto\",description:\"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'.\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],syntax:\"auto | start | end | left | right | center | justify\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align-last\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"border-image-width\",values:[{name:\"auto\",description:\"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"}],syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-width\"}],description:\"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.\",restrictions:[\"length\",\"percentage\",\"number\"]},{name:\"stroke-miterlimit\",description:\"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.\",restrictions:[\"number\"]},{name:\"border-image-repeat\",values:[{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],syntax:\"[ stretch | repeat | round | space ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat\"}],description:\"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.\",restrictions:[\"enum\"]},{name:\"grid-column-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid columns. Replaced by 'column-gap' property.\",restrictions:[\"length\"]},{name:\"border-image-slice\",values:[{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"}],syntax:\"<number-percentage>{1,4} && fill?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-slice\"}],description:\"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.\",restrictions:[\"number\",\"percentage\"]},{name:\"justify-self\",browsers:[\"E16\",\"FF45\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]\",description:\"Defines the way of justifying a box inside its container along the appropriate axis.\",restrictions:[\"enum\"]},{name:\"fill-rule\",values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"border-image-outset\",syntax:\"[ <length> | <number> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-outset\"}],description:\"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.\",restrictions:[\"length\",\"number\"]},{name:\"justify-items\",values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"},{name:\"legacy\"}],syntax:\"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]\",description:\"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis\",restrictions:[\"enum\"]},{name:\"break-inside\",values:[{name:\"auto\",description:\"Impose no additional breaking constraints within the box.\"},{name:\"avoid\",description:\"Avoid breaks within the box.\"},{name:\"avoid-column\",description:\"Avoid a column break within the box.\"},{name:\"avoid-page\",description:\"Avoid a page break within the box.\"}],syntax:\"auto | avoid | avoid-page | avoid-column | avoid-region\",description:\"Describes the page/column/region break behavior inside the principal box.\",restrictions:[\"enum\"]},{name:\"scroll-snap-type\",values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],syntax:\"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type\"}],description:\"Defines how strictly snap points are enforced on the scroll container.\",restrictions:[\"enum\"]},{name:\"text-decoration-line\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],syntax:\"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"scroll-snap-align\",syntax:\"[ none | start | end | center ]{1,2}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align\"}],description:\"The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value.\"},{name:\"grid-row\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row\"}],description:\"Shorthand for 'grid-row-start' and 'grid-row-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"caret-color\",browsers:[\"FF53\",\"S11.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\"}],syntax:\"auto | <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caret-color\"}],description:\"Controls the color of the text insertion indicator.\",restrictions:[\"color\",\"enum\"]},{name:\"stroke-linejoin\",values:[{name:\"bevel\",description:\"Indicates that a bevelled corner is to be used to join path segments.\"},{name:\"miter\",description:\"Indicates that a sharp corner is to be used to join path segments.\"},{name:\"round\",description:\"Indicates that a round corner is to be used to join path segments.\"}],description:\"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.\",restrictions:[\"enum\"]},{name:\"grid-area\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]{0,3}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-area\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\"]},{name:\"column-fill\",values:[{name:\"auto\",description:\"Fills columns sequentially.\"},{name:\"balance\",description:\"Balance content equally between columns, if possible.\"}],syntax:\"auto | balance | balance-all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-fill\"}],description:\"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.\",restrictions:[\"enum\"]},{name:\"tab-size\",browsers:[\"FF4\",\"S6.1\",\"C21\",\"O15\"],syntax:\"<integer> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/tab-size\"}],description:\"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"overflow-anchor\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF66\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor\"}],description:\"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts.\"},{name:\"border-image-source\",values:[{name:\"none\",description:\"Use the border styles.\"}],syntax:\"none | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-source\"}],description:\"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.\",restrictions:[\"image\"]},{name:\"grid-template-areas\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"The grid container doesn’t define any named grid areas.\"}],syntax:\"none | <string>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas\"}],description:\"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.\",restrictions:[\"string\"]},{name:\"font-kerning\",browsers:[\"FF32\",\"S7\",\"C32\",\"O19\"],values:[{name:\"auto\",description:\"Specifies that kerning is applied at the discretion of the user agent.\"},{name:\"none\",description:\"Specifies that kerning is not applied.\"},{name:\"normal\",description:\"Specifies that kerning is applied.\"}],syntax:\"auto | normal | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-kerning\"}],description:\"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.\",restrictions:[\"enum\"]},{name:\"page-break-before\",values:[{name:\"always\",description:\"Always force a page break before the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break before the generated box.\"},{name:\"avoid\",description:\"Avoid a page break before the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-before\"}],description:\"Defines rules for page breaks before an element.\",restrictions:[\"enum\"]},{name:\"text-decoration-style\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"solid | double | dotted | dashed | wavy\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"grid-row-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid rows. Replaced by 'row-gap' property.\",restrictions:[\"length\"]},{name:\"backdrop-filter\",status:\"experimental\",syntax:\"none | <filter-function-list>\",browsers:[\"E17\",\"FF70\",\"S9\",\"C76\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter\"}],description:\"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.\"},{name:\"grid-auto-flow\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"row\",description:\"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary.\"},{name:\"column\",description:\"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary.\"},{name:\"dense\",description:\"If specified, the auto-placement algorithm uses a “dense” packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later.\"}],syntax:\"[ row | column ] || dense\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow\"}],description:\"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.\",restrictions:[\"enum\"]},{name:\"grid-column-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"column-rule-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-color\"}],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"isolation\",browsers:[\"FF36\",\"S8\",\"C41\",\"O30\"],values:[{name:\"auto\",description:\"Elements are not isolated unless an operation is applied that causes the creation of a stacking context.\"},{name:\"isolate\",description:\"In CSS will turn the element into a stacking context.\"}],syntax:\"auto | isolate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/isolation\"}],description:\"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.\",restrictions:[\"enum\"]},{name:\"column-rule-style\",syntax:\"<'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-style\"}],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"stop-color\",description:\"Indicates what color to use at that gradient stop.\",restrictions:[\"color\"]},{name:\"clip-rule\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"background-blend-mode\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode\"}],description:\"Defines the blending mode of each background layer.\",restrictions:[\"enum\"]},{name:\"font-variant-numeric\",browsers:[\"FF34\",\"S9.1\",\"C52\",\"O39\"],values:[{name:\"diagonal-fractions\",description:\"Enables display of lining diagonal fractions.\"},{name:\"lining-nums\",description:\"Enables display of lining numerals.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"oldstyle-nums\",description:\"Enables display of old-style numerals.\"},{name:\"ordinal\",description:\"Enables display of letter forms used with ordinal numbers.\"},{name:\"proportional-nums\",description:\"Enables display of proportional numerals.\"},{name:\"slashed-zero\",description:\"Enables display of slashed zeros.\"},{name:\"stacked-fractions\",description:\"Enables display of lining stacked fractions.\"},{name:\"tabular-nums\",description:\"Enables display of tabular numerals.\"}],syntax:\"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric\"}],description:\"Specifies control over numerical forms.\",restrictions:[\"enum\"]},{name:\"grid-column-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"margin-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-start\"}],description:\"Logical 'margin-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"writing-mode\",values:[{name:\"horizontal-tb\",description:\"Top-to-bottom block flow direction. The writing mode is horizontal.\"},{name:\"sideways-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"sideways-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"vertical-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical.\"},{name:\"vertical-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical.\"}],syntax:\"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/writing-mode\"}],description:\"This is a shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"shape-rendering\",values:[{name:\"auto\",description:\"Suppresses aural rendering.\"},{name:\"crispEdges\",description:\"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision.\"},{name:\"geometricPrecision\",description:\"Emphasize geometric precision over speed and crisp edges.\"},{name:\"optimizeSpeed\",description:\"Emphasize rendering speed over geometric precision and crisp edges.\"}],description:\"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.\",restrictions:[\"enum\"]},{name:\"grid-row-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"grid-auto-columns\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns\"}],description:\"Specifies the size of implicitly created columns.\",restrictions:[\"length\",\"percentage\"]},{name:\"break-after\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip-ink\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF70\",\"C64\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink\"}],description:\"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders.\"},{name:\"grid-row-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"break-before\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"font-variant-caps\",browsers:[\"FF34\",\"C52\",\"O39\"],values:[{name:\"all-petite-caps\",description:\"Enables display of petite capitals for both upper and lowercase letters.\"},{name:\"all-small-caps\",description:\"Enables display of small capitals for both upper and lowercase letters.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"petite-caps\",description:\"Enables display of petite capitals.\"},{name:\"small-caps\",description:\"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"},{name:\"titling-caps\",description:\"Enables display of titling capitals.\"},{name:\"unicase\",description:\"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters.\"}],syntax:\"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps\"}],description:\"Specifies control over capitalized forms.\",restrictions:[\"enum\"]},{name:\"stop-opacity\",description:\"Defines the opacity of a given gradient stop.\",restrictions:[\"number(0-1)\"]},{name:\"column-span\",values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],syntax:\"none | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-span\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-anchor\",values:[{name:\"end\",description:\"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position.\"},{name:\"middle\",description:\"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position.\"},{name:\"start\",description:\"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position.\"}],description:\"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.\",restrictions:[\"enum\"]},{name:\"column-rule-width\",syntax:\"<'border-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-width\"}],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"mask\",syntax:\"<mask-layer>#\",browsers:[\"E12\",\"FF2\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask\"}],description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"text-underline-position\",browsers:[\"E12\",\"C33\",\"IE6\",\"O20\"],values:[{name:\"above\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline’s position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"below\",description:\"The underline is aligned with the under edge of the element’s content box.\"}],syntax:\"auto | [ under || [ left | right ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-position\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"mask-type\",browsers:[\"FF35\",\"S6.1\",\"C24\",\"O15\"],values:[{name:\"alpha\",description:\"Indicates that the alpha values of the mask should be used.\"},{name:\"luminance\",description:\"Indicates that the luminance values of the mask should be used.\"}],syntax:\"luminance | alpha\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-type\"}],description:\"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.\",restrictions:[\"enum\"]},{name:\"font-variant-east-asian\",browsers:[\"FF34\",\"C63\",\"O50\"],values:[{name:\"full-width\",description:\"Enables rendering of full-width variants.\"},{name:\"jis04\",description:\"Enables rendering of JIS04 forms.\"},{name:\"jis78\",description:\"Enables rendering of JIS78 forms.\"},{name:\"jis83\",description:\"Enables rendering of JIS83 forms.\"},{name:\"jis90\",description:\"Enables rendering of JIS90 forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"proportional-width\",description:\"Enables rendering of proportionally-spaced variants.\"},{name:\"ruby\",description:\"Enables display of ruby variant glyphs.\"},{name:\"simplified\",description:\"Enables rendering of simplified forms.\"},{name:\"traditional\",description:\"Enables rendering of traditional forms.\"}],syntax:\"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian\"}],description:\"Allows control of glyph substitute and positioning in East Asian text.\",restrictions:[\"enum\"]},{name:\"border-inline-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width\"}],description:\"Logical 'border-right-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-inline-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width\"}],description:\"Logical 'border-left-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"text-orientation\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],values:[{name:\"sideways\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode.\"},{name:\"sideways-right\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90° clockwise.\"},{name:\"upright\",description:\"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation.\"}],syntax:\"mixed | upright | sideways\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-orientation\"}],description:\"Specifies the orientation of text within a line.\",restrictions:[\"enum\"]},{name:\"shape-margin\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-margin\"}],description:\"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.\",restrictions:[\"url\",\"length\",\"percentage\"]},{name:\"shape-image-threshold\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold\"}],description:\"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.\",restrictions:[\"number\"]},{name:\"min-inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-inline-size\"}],description:\"Logical 'min-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inline-size\"}],description:\"Logical 'height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-combine-upright\",syntax:\"none | all | [ digits <integer>? ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright\"}],description:\"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\\n\\nThis is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese.\"},{name:\"block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/block-size\"}],description:\"Logical 'width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"min-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-block-size\"}],description:\"Logical 'min-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-start\"}],description:\"Logical 'padding-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-end\"}],description:\"Logical 'padding-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-inline-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color\"}],description:\"Logical 'border-left-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color\"}],description:\"Logical 'border-right-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style\"}],description:\"Logical 'border-right-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-inline-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style\"}],description:\"Logical 'border-left-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style\"}],description:\"Logical 'border-bottom-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color\"}],description:\"Logical 'border-bottom-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style\"}],description:\"Logical 'border-top-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color\"}],description:\"Logical 'border-top-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width\"}],description:\"Logical 'border-top-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-block-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width\"}],description:\"Logical 'border-bottom-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"row-gap\",syntax:\"normal | <length-percentage>\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The row-gap CSS property specifies the gutter between grid rows.\"},{name:\"grid-template\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"Sets all three properties to their initial values.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template\"}],description:\"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"color-interpolation-filters\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"auto\",description:\"Color operations are not required to occur in a particular color space.\"},{name:\"linearRGB\",description:\"Color operations should occur in the linearized RGB color space.\"},{name:\"sRGB\",description:\"Color operations should occur in the sRGB color space.\"}],description:\"Specifies the color space for imaging operations performed via filter effects.\",restrictions:[\"enum\"]},{name:\"paint-order\",browsers:[\"E17\",\"FF60\",\"S8\",\"C35\",\"O22\"],values:[{name:\"fill\"},{name:\"markers\"},{name:\"normal\",description:\"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers.\"},{name:\"stroke\"}],status:\"experimental\",syntax:\"normal | [ fill || stroke || markers ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/paint-order\"}],description:\"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.\",restrictions:[\"enum\"]},{name:\"flood-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what color to use to flood the current filter primitive subregion.\",restrictions:[\"color\"]},{name:\"flood-opacity\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what opacity to use to flood the current filter primitive subregion.\",restrictions:[\"number(0-1)\",\"percentage\"]},{name:\"scroll-snap-stop\",syntax:\"normal | always\",browsers:[\"C75\",\"O62\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop\"}],description:'The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions.'},{name:\"lighting-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.\",restrictions:[\"color\"]},{name:\"scroll-padding-left\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left\"}],description:\"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker-end\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the last vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-start\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the first vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-mid\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at all vertices except the first and last.\",restrictions:[\"url\"]},{name:\"offset-distance\",status:\"experimental\",syntax:\"<length-percentage>\",browsers:[\"FF69\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-distance\"}],description:\"The offset-distance CSS property specifies a position along an offset-path.\"},{name:\"place-content\",syntax:\"<'align-content'> <'justify-content'>?\",browsers:[\"FF53\",\"S9\",\"C59\",\"O\"],description:\"The place-content CSS shorthand property sets both the align-content and justify-content properties.\"},{name:\"font-variation-settings\",syntax:\"normal | [ <string> <number> ]#\",browsers:[\"E17\",\"FF62\",\"S11\",\"C62\",\"O49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings\"}],description:\"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values.\"},{name:\"offset-path\",status:\"experimental\",syntax:\"none | ray( [ <angle> && <size>? && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]\",browsers:[\"FF63\",\"C55\",\"O45\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-path\"}],description:'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\\n\\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'},{name:\"offset-rotate\",status:\"experimental\",syntax:\"[ auto | reverse ] || <angle>\",browsers:[\"FF69\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-rotate\"}],description:\"The offset-rotate CSS property defines the direction of the element while positioning along the offset path.\"},{name:\"max-inline-size\",browsers:[\"FF41\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the height of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-inline-size\"}],description:\"Logical 'max-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the width of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-block-size\"}],description:\"Logical 'max-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"scroll-padding\",syntax:\"[ auto | <length-percentage> ]{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding\"}],description:\"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands.\"},{name:\"transform-box\",syntax:\"border-box | fill-box | view-box\",browsers:[\"FF55\",\"S11\",\"C64\",\"O51\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-box\"}],description:\"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate.\"},{name:\"scroll-padding-top\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top\"}],description:\"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"gap\",syntax:\"<'row-gap'> <'column-gap'>?\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns.\"},{name:\"scroll-padding-right\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right\"}],description:\"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given ‘path’ element or basic shape.\",restrictions:[\"url\"]},{name:\"scroll-padding-bottom\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom\"}],description:\"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start\"}],description:\"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start\"}],description:\"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end\"}],description:\"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end\"}],description:\"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"place-self\",syntax:\"<'align-self'> <'justify-self'>?\",browsers:[\"FF45\",\"C59\",\"O46\"],description:\"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it.\"},{name:\"grid\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],syntax:\"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid\"}],description:\"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"place-items\",syntax:\"<'align-items'> <'justify-items'>?\",browsers:[\"FF45\",\"S11\",\"C59\",\"O46\"],description:\"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it.\"},{name:\"font-optical-sizing\",syntax:\"auto | none\",browsers:[\"E17\",\"FF62\",\"S11\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing\"}],description:\"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis.\"},{name:\"border-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start\"}],description:\"Logical 'border-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end\"}],description:\"Logical 'border-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start\"}],description:\"Logical 'border-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"offset\",status:\"experimental\",syntax:\"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\",browsers:[\"FF71\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset\"}],description:\"The offset CSS property is a shorthand property for animating an element along a defined path.\"},{name:\"border-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end\"}],description:\"Logical 'border-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"scroll-padding-block\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block\"}],description:\"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension.\"},{name:\"scroll-padding-inline\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline\"}],description:\"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension.\"},{name:\"motion\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"},{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.\",restrictions:[\"url\",\"length\",\"percentage\",\"angle\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"margin-inline\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline\"}],description:\"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-block\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block\"}],description:\"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-inline\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline\"}],description:\"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"font-size-adjust\",browsers:[\"FF40\",\"C54\",\"O41\"],values:[{name:\"none\",description:\"Do not preserve the font’s x-height.\"}],syntax:\"none | <number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust\"}],description:\"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.\",restrictions:[\"number\"]},{name:\"motion-path\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"}],description:\"Specifies the motion path the element gets positioned at.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"text-justify\",browsers:[\"E12\",\"FF55\",\"C32\",\"IE11\",\"O19\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"distribute-all-lines\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"},{name:\"newspaper\"}],syntax:\"auto | inter-character | inter-word | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-justify\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"motion-offset\",browsers:[\"C46\",\"O33\"],description:\"A distance that describes the position along the specified motion path.\",restrictions:[\"length\",\"percentage\"]},{name:\"inset-block-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-start\"}],description:\"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset\",syntax:\"<'top'>{1,4}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset\"}],description:\"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start\"}],description:\"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end\"}],description:\"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"scale\",syntax:\"none | <number>{1,3}\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scale\"}],description:\"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"translate\",syntax:\"none | <length-percentage> [ <length-percentage> <length>? ]?\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/translate\"}],description:\"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"rotate\",syntax:\"none | <angle> | [ x | y | z | <number>{3} ] && <angle>\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/rotate\"}],description:\"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"offset-anchor\",status:\"experimental\",syntax:\"auto | <position>\",browsers:[\"FF70\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-anchor\"}],description:\"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path.\"},{name:\"offset-position\",status:\"experimental\",syntax:\"auto | <position>\",description:\"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored.\"},{name:\"margin-block\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block\"}],description:\"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"user-zoom\",syntax:\"zoom | fixed\",description:\"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport.\"},{name:\"min-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"inset-block-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-end\"}],description:\"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"enable-background\",values:[{name:\"accumulate\",description:\"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target.\"},{name:\"new\",description:\"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device.\"}],description:\"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.\",restrictions:[\"integer\",\"length\",\"percentage\",\"enum\"]},{name:\"glyph-orientation-horizontal\",description:\"Controls glyph orientation when the inline-progression-direction is horizontal.\",restrictions:[\"angle\",\"number\"]},{name:\"glyph-orientation-vertical\",values:[{name:\"auto\",description:\"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation.\"}],description:\"Controls glyph orientation when the inline-progression-direction is vertical.\",restrictions:[\"angle\",\"number\",\"enum\"]},{name:\"kerning\",values:[{name:\"auto\",description:\"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used.\"}],description:\"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.\",restrictions:[\"length\",\"enum\"]},{name:\"image-orientation\",browsers:[\"FF26\"],values:[{name:\"flip\",description:\"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted.\"},{name:\"from-image\",description:\"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image.\"}],syntax:\"from-image | <angle> | [ <angle>? flip ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-orientation\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"angle\"]},{name:\"image-resolution\",status:\"experimental\",syntax:\"[ from-image || <resolution> ] && snap?\",description:\"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions.\"},{name:\"max-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The max-zoom CSS descriptor sets the maximum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom in any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"orientation\",syntax:\"auto | portrait | landscape\",description:\"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media).\"},{name:\"motion-rotation\",browsers:[\"C46\",\"O33\"],values:[{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Defines the direction of the element while positioning along the motion path.\",restrictions:[\"angle\"]},{name:\"scroll-snap-points-x\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x\"}],description:\"Defines the positioning of snap points along the x axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-points-y\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y\"}],description:\"Defines the positioning of snap points along the y axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-coordinate\",browsers:[\"FF39\"],values:[{name:\"none\",description:\"Specifies that this element does not contribute a snap point.\"}],status:\"obsolete\",syntax:\"none | <position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate\"}],description:\"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container’s snap-destination for the respective axis.\",restrictions:[\"position\",\"length\",\"percentage\",\"enum\"]},{name:\"scroll-snap-destination\",browsers:[\"FF39\"],status:\"obsolete\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination\"}],description:\"Define the x and y coordinate within the scroll container’s visual viewport which element snap points will align with.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-block-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-color\"}],description:\"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-style\"}],description:\"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-width\"}],description:\"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-color\"}],description:\"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-style\"}],description:\"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-width\"}],description:\"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block\"}],description:\"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet.\"},{name:\"border-inline\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline\"}],description:\"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet.\"},{name:\"inset-block\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block\"}],description:\"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline\"}],description:\"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"additive-symbols\",browsers:[\"FF33\"],syntax:\"[ <integer> && <symbol> ]#\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.\",restrictions:[\"integer\",\"string\",\"image\",\"identifier\"]},{name:\"alt\",browsers:[\"S9\"],values:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/alt\"}],description:\"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.\",restrictions:[\"string\",\"enum\"]},{name:\"behavior\",browsers:[\"IE6\"],description:\"IE only. Used to extend behaviors of the browser.\",restrictions:[\"url\"]},{name:\"box-decoration-break\",browsers:[\"FF32\",\"S6.1\",\"C22\",\"O15\"],values:[{name:\"clone\",description:\"Each box is independently wrapped with the border and padding.\"},{name:\"slice\",description:\"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward.\"}],syntax:\"slice | clone\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break\"}],description:\"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.\",restrictions:[\"enum\"]},{name:\"fallback\",browsers:[\"FF33\"],syntax:\"<counter-style-name>\",description:\"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can’t create a representation for a given counter value.\",restrictions:[\"identifier\"]},{name:\"font-language-override\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\"}],syntax:\"normal | <string>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-language-override\"}],description:\"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\",restrictions:[\"string\"]},{name:\"font-synthesis\",browsers:[\"FF34\",\"S9\"],values:[{name:\"none\",description:\"Disallow all synthetic faces.\"},{name:\"style\",description:\"Allow synthetic italic faces.\"},{name:\"weight\",description:\"Allow synthetic bold faces.\"}],syntax:\"none | [ weight || style ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-synthesis\"}],description:\"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.\",restrictions:[\"enum\"]},{name:\"font-variant-alternates\",browsers:[\"FF34\"],values:[{name:\"annotation()\",description:\"Enables display of alternate annotation forms.\"},{name:\"character-variant()\",description:\"Enables display of specific character variants.\"},{name:\"historical-forms\",description:\"Enables display of historical forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"ornaments()\",description:\"Enables replacement of default glyphs with ornaments, if provided in the font.\"},{name:\"styleset()\",description:\"Enables display with stylistic sets.\"},{name:\"stylistic()\",description:\"Enables display of stylistic alternates.\"},{name:\"swash()\",description:\"Enables display of swash glyphs.\"}],syntax:\"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates\"}],description:\"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.\",restrictions:[\"enum\"]},{name:\"font-variant-position\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"sub\",description:\"Enables display of subscript variants (OpenType feature: subs).\"},{name:\"super\",description:\"Enables display of superscript variants (OpenType feature: sups).\"}],syntax:\"normal | sub | super\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-position\"}],description:\"Specifies the vertical position\",restrictions:[\"enum\"]},{name:\"ime-mode\",browsers:[\"E12\",\"FF3\",\"IE5\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],status:\"obsolete\",syntax:\"auto | normal | active | inactive | disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ime-mode\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"mask-image\",browsers:[\"E16\",\"FF53\",\"S4\",\"C1\",\"O15\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],syntax:\"<mask-reference>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-image\"}],description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-mode\",browsers:[\"FF53\"],values:[{name:\"alpha\",description:\"Alpha values of the mask layer image should be used as the mask values.\"},{name:\"auto\",description:\"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image.\"},{name:\"luminance\",description:\"Luminance values of the mask layer image should be used as the mask values.\"}],syntax:\"<masking-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-mode\"}],description:\"Indicates whether the mask layer image is treated as luminance mask or alpha mask.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-origin\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],syntax:\"<geometry-box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-origin\"}],description:\"Specifies the mask positioning area.\",restrictions:[\"geometry-box\",\"enum\"]},{name:\"mask-position\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-position\"}],description:\"Specifies how mask layer images are positioned.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"mask-repeat\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-repeat\"}],description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"mask-size\",browsers:[\"E18\",\"FF53\",\"S4\",\"C4\",\"O15\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-size\"}],description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-moz-animation\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-moz-animation-delay\",browsers:[\"FF9\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-moz-animation-direction\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-moz-animation-duration\",browsers:[\"FF9\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-moz-animation-iteration-count\",browsers:[\"FF9\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-moz-animation-name\",browsers:[\"FF9\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-moz-animation-play-state\",browsers:[\"FF9\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-moz-animation-timing-function\",browsers:[\"FF9\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-moz-appearance\",browsers:[\"FF1\"],values:[{name:\"button\"},{name:\"button-arrow-down\"},{name:\"button-arrow-next\"},{name:\"button-arrow-previous\"},{name:\"button-arrow-up\"},{name:\"button-bevel\"},{name:\"checkbox\"},{name:\"checkbox-container\"},{name:\"checkbox-label\"},{name:\"dialog\"},{name:\"groupbox\"},{name:\"listbox\"},{name:\"menuarrow\"},{name:\"menuimage\"},{name:\"menuitem\"},{name:\"menuitemtext\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"menupopup\"},{name:\"menuradio\"},{name:\"menuseparator\"},{name:\"-moz-mac-unified-toolbar\"},{name:\"-moz-win-borderless-glass\"},{name:\"-moz-win-browsertabbar-toolbox\"},{name:\"-moz-win-communications-toolbox\"},{name:\"-moz-win-glass\"},{name:\"-moz-win-media-toolbox\"},{name:\"none\"},{name:\"progressbar\"},{name:\"progresschunk\"},{name:\"radio\"},{name:\"radio-container\"},{name:\"radio-label\"},{name:\"radiomenuitem\"},{name:\"resizer\"},{name:\"resizerpanel\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbar-small\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"separator\"},{name:\"spinner\"},{name:\"spinner-downbutton\"},{name:\"spinner-textfield\"},{name:\"spinner-upbutton\"},{name:\"statusbar\"},{name:\"statusbarpanel\"},{name:\"tab\"},{name:\"tabpanels\"},{name:\"tab-scroll-arrow-back\"},{name:\"tab-scroll-arrow-forward\"},{name:\"textfield\"},{name:\"textfield-multiline\"},{name:\"toolbar\"},{name:\"toolbox\"},{name:\"tooltip\"},{name:\"treeheadercell\"},{name:\"treeheadersortarrow\"},{name:\"treeitem\"},{name:\"treetwistyopen\"},{name:\"treeview\"},{name:\"treewisty\"},{name:\"window\"}],status:\"nonstandard\",syntax:\"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized\",description:\"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.\",restrictions:[\"enum\"]},{name:\"-moz-backface-visibility\",browsers:[\"FF10\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-moz-background-clip\",browsers:[\"FF1-3.6\"],values:[{name:\"padding\"}],description:\"Determines the background painting area.\",restrictions:[\"box\",\"enum\"]},{name:\"-moz-background-inline-policy\",browsers:[\"FF1\"],values:[{name:\"bounding-box\"},{name:\"continuous\"},{name:\"each-box\"}],description:\"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.\",restrictions:[\"enum\"]},{name:\"-moz-background-origin\",browsers:[\"FF1\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-moz-border-bottom-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-image\",browsers:[\"FF3.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-moz-border-left-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-right-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-top-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors\"}],description:\"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-box-align\",browsers:[\"FF1\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-direction\",browsers:[\"FF1\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-moz-box-flex\",browsers:[\"FF1\"],description:\"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.\",restrictions:[\"number\"]},{name:\"-moz-box-flexgroup\",browsers:[\"FF1\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-moz-box-ordinal-group\",browsers:[\"FF1\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-moz-box-orient\",browsers:[\"FF1\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-moz-box-pack\",browsers:[\"FF1\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-sizing\",browsers:[\"FF1\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"},{name:\"padding-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the padding box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-moz-column-count\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-moz-column-gap\",browsers:[\"FF3.5\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-moz-column-rule\",browsers:[\"FF3.5\"],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-moz-column-rule-color\",browsers:[\"FF3.5\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-moz-column-rule-style\",browsers:[\"FF3.5\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-moz-column-rule-width\",browsers:[\"FF3.5\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-moz-columns\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-moz-column-width\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-moz-font-feature-settings\",browsers:[\"FF4\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",browsers:[\"FF4\"]},{name:\"on\",browsers:[\"FF4\"]}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-moz-hyphens\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-moz-perspective\",browsers:[\"FF10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-moz-perspective-origin\",browsers:[\"FF10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-moz-text-align-last\",browsers:[\"FF12\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-color\",browsers:[\"FF6\"],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"-moz-text-decoration-line\",browsers:[\"FF6\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-style\",browsers:[\"FF6\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"-moz-text-size-adjust\",browsers:[\"FF\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-moz-transform\",browsers:[\"FF3.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-moz-transform-origin\",browsers:[\"FF3.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-moz-transition\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-moz-transition-delay\",browsers:[\"FF4\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-moz-transition-duration\",browsers:[\"FF4\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-moz-transition-property\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-moz-transition-timing-function\",browsers:[\"FF4\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-moz-user-focus\",browsers:[\"FF1\"],values:[{name:\"ignore\"},{name:\"normal\"}],status:\"nonstandard\",syntax:\"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus\"}],description:\"Used to indicate whether the element can have focus.\"},{name:\"-moz-user-select\",browsers:[\"FF1.5\"],values:[{name:\"all\"},{name:\"element\"},{name:\"elements\"},{name:\"-moz-all\"},{name:\"-moz-none\"},{name:\"none\"},{name:\"text\"},{name:\"toggle\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-accelerator\",browsers:[\"E\",\"IE10\"],values:[{name:\"false\",description:\"The element does not contain an accelerator key sequence.\"},{name:\"true\",description:\"The element contains an accelerator key sequence.\"}],status:\"nonstandard\",syntax:\"false | true\",description:\"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed\",restrictions:[\"enum\"]},{name:\"-ms-behavior\",browsers:[\"IE8\"],description:\"IE only. Used to extend behaviors of the browser\",restrictions:[\"url\"]},{name:\"-ms-block-progression\",browsers:[\"IE8\"],values:[{name:\"bt\",description:\"Bottom-to-top block flow. Layout is horizontal.\"},{name:\"lr\",description:\"Left-to-right direction. The flow orientation is vertical.\"},{name:\"rl\",description:\"Right-to-left direction. The flow orientation is vertical.\"},{name:\"tb\",description:\"Top-to-bottom direction. The flow orientation is horizontal.\"}],status:\"nonstandard\",syntax:\"tb | rl | bt | lr\",description:\"Sets the block-progression value and the flow orientation\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\",description:\"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown.\"},{name:\"none\",description:\"A bounce effect is shown when the user hits a zoom limit during a manipulation.\"}],status:\"nonstandard\",syntax:\"none | chained\",description:\"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation.\"},{name:\"-ms-content-zooming\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not zoomable.\"},{name:\"zoom\",description:\"The element is zoomable.\"}],status:\"nonstandard\",syntax:\"none | zoom\",description:\"Specifies whether zooming is enabled.\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-limit\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>\",description:\"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-max\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the maximum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the minimum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-snap\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'},{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>\",description:\"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.\"},{name:\"-ms-content-zoom-snap-points\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )\",description:\"Defines where zoom snap-points are located.\"},{name:\"-ms-content-zoom-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Specifies how zooming is affected by defined snap-points.\",restrictions:[\"enum\"]},{name:\"-ms-filter\",browsers:[\"IE8-9\"],status:\"nonstandard\",syntax:\"<string>\",description:\"IE only. Used to produce visual effects.\",restrictions:[\"string\"]},{name:\"-ms-flex\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],description:\"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"-ms-flex-align\",browsers:[\"IE10\"],values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'.\"}],description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-direction\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-flow\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"-ms-flex-item-align\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"-ms-flex-line-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"distribute\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"justify\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-order\",browsers:[\"IE10\"],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"-ms-flex-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"distribute\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"justify\",description:\"Flex items are evenly distributed in the line.\"},{name:\"start\",description:\"Flex items are packed toward the start of the line.\"}],description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-wrap\",browsers:[\"IE10\"],values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"-ms-flow-from\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-flow-into\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-grid-column\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"Used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-column-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's column.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column.\"}],description:\"Aligns the columns in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-columns\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-column-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of columns to span.\",restrictions:[\"integer\"]},{name:\"-ms-grid-layer\",browsers:[\"E\",\"IE10\"],description:\"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.\",restrictions:[\"integer\"]},{name:\"-ms-grid-row\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"grid-row is used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-row-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's row.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row.\"}],description:\"Aligns the rows in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-rows\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-row-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of rows to span.\",restrictions:[\"integer\"]},{name:\"-ms-high-contrast-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Properties will be adjusted as applicable.\"},{name:\"none\",description:\"No adjustments will be applied.\"}],status:\"nonstandard\",syntax:\"auto | none\",description:\"Specifies if properties should be adjusted in high contrast mode.\",restrictions:[\"enum\"]},{name:\"-ms-hyphenate-limit-chars\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The user agent chooses a value that adapts to the current layout.\"}],status:\"nonstandard\",syntax:\"auto | <integer>{1,3}\",description:\"Specifies the minimum number of characters in a hyphenated word.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-lines\",browsers:[\"E\",\"IE10\"],values:[{name:\"no-limit\",description:\"There is no limit.\"}],status:\"nonstandard\",syntax:\"no-limit | <integer>\",description:\"Indicates the maximum number of successive hyphenated lines in an element.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-zone\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage> | <length>\",description:\"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.\",restrictions:[\"percentage\",\"length\"]},{name:\"-ms-hyphens\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-ms-ime-mode\",browsers:[\"IE10\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"-ms-interpolation-mode\",browsers:[\"IE7\"],values:[{name:\"bicubic\"},{name:\"nearest-neighbor\"}],description:\"Gets or sets the interpolation (resampling) method used to stretch images.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid\",browsers:[\"E\",\"IE10\"],values:[{name:\"char\",description:\"Any of the range of character values available to the -ms-layout-grid-char property.\"},{name:\"line\",description:\"Any of the range of line values available to the -ms-layout-grid-line property.\"},{name:\"mode\",description:\"Any of the range of mode values available to the -ms-layout-grid-mode property.\"},{name:\"type\",description:\"Any of the range of type values available to the -ms-layout-grid-type property.\"}],description:\"Sets or retrieves the composite document grid properties that specify the layout of text characters.\"},{name:\"-ms-layout-grid-char\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No character grid is set.\"}],description:\"Sets or retrieves the size of the character grid used for rendering the text content of an element.\",restrictions:[\"enum\",\"length\",\"percentage\"]},{name:\"-ms-layout-grid-line\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No grid line is set.\"}],description:\"Sets or retrieves the gridline value used for rendering the text content of an element.\",restrictions:[\"length\"]},{name:\"-ms-layout-grid-mode\",browsers:[\"E\",\"IE10\"],values:[{name:\"both\",description:\"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element.\"},{name:\"char\",description:\"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled.\"},{name:\"line\",description:\"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout.\"},{name:\"none\",description:\"No grid is used.\"}],description:\"Gets or sets whether the text layout grid uses two dimensions.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"fixed\",description:\"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default.\"},{name:\"loose\",description:\"Default. Grid used for Japanese and Korean characters.\"},{name:\"strict\",description:\"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid.\"}],description:\"Sets or retrieves the type of grid used for rendering the text content of an element.\",restrictions:[\"enum\"]},{name:\"-ms-line-break\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"keep-all\",description:\"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean.\"},{name:\"newspaper\",description:\"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks CJK scripts using a normal set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"-ms-overflow-style\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"No preference, UA should use the first scrolling method in the list that it supports.\"},{name:\"-ms-autohiding-scrollbar\",description:\"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions.\"},{name:\"none\",description:\"Indicates the element does not display scrollbars or panning indicators, even when its content overflows.\"},{name:\"scrollbar\",description:'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element.'}],status:\"nonstandard\",syntax:\"auto | none | scrollbar | -ms-autohiding-scrollbar\",description:\"Specify whether content is clipped when it overflows the element's content area.\",restrictions:[\"enum\"]},{name:\"-ms-perspective\",browsers:[\"IE10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-ms-perspective-origin\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-x\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X  position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-y\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-progress-appearance\",browsers:[\"IE10\"],values:[{name:\"bar\"},{name:\"ring\"}],description:\"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.\",restrictions:[\"enum\"]},{name:\"-ms-scrollbar-3dlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-arrow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-base-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-darkshadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-face-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-highlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-shadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-track-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scroll-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\"},{name:\"none\"}],status:\"nonstandard\",syntax:\"chained | none\",description:\"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-limit\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-rails\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"railed\"}],status:\"nonstandard\",syntax:\"none | railed\",description:\"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-snap-points-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the x-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-points-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the y-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-translation\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"vertical-to-horizontal\"}],status:\"nonstandard\",syntax:\"none | vertical-to-horizontal\",description:\"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.\",restrictions:[\"enum\"]},{name:\"-ms-text-align-last\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-ms-text-autospace\",browsers:[\"E\",\"IE8\"],values:[{name:\"ideograph-alpha\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.\"},{name:\"ideograph-numeric\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs.\"},{name:\"ideograph-parenthesis\",description:\"Creates extra spacing between normal (non wide) parenthesis and ideographs.\"},{name:\"ideograph-space\",description:\"Extends the width of the space character while surrounded by ideographs.\"},{name:\"none\",description:\"No extra space is created.\"},{name:\"punctuation\",description:\"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.\"}],status:\"nonstandard\",syntax:\"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space\",description:\"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.\",restrictions:[\"enum\"]},{name:\"-ms-text-combine-horizontal\",browsers:[\"E\",\"IE11\"],values:[{name:\"all\",description:\"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box.\"},{name:\"digits\",description:\"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030–U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box.\"},{name:\"none\",description:\"No special processing.\"}],description:\"This property specifies the combination of multiple characters into the space of a single character.\",restrictions:[\"enum\",\"integer\"]},{name:\"-ms-text-justify\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"-ms-text-kashida-space\",browsers:[\"E\",\"IE10\"],description:\"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.\",restrictions:[\"percentage\"]},{name:\"-ms-text-overflow\",browsers:[\"IE10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-ms-text-size-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-ms-text-underline-position\",browsers:[\"E\",\"IE10\"],values:[{name:\"alphabetic\",description:\"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders.\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"over\",description:\"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides.\"},{name:\"under\",description:\"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline.\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"-ms-touch-action\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"The element is a passive element, with several exceptions.\"},{name:\"double-tap-zoom\",description:\"The element will zoom on double-tap.\"},{name:\"manipulation\",description:\"The element is a manipulation-causing element.\"},{name:\"none\",description:\"The element is a manipulation-blocking element.\"},{name:\"pan-x\",description:\"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\",description:\"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content.\"}],description:\"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.\",restrictions:[\"enum\"]},{name:\"-ms-touch-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"grippers\",description:\"Grippers are always on.\"},{name:\"none\",description:\"Grippers are always off.\"}],status:\"nonstandard\",syntax:\"grippers | none\",description:\"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.\",restrictions:[\"enum\"]},{name:\"-ms-transform\",browsers:[\"IE9-9\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-ms-transform-origin\",browsers:[\"IE9-9\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-ms-transform-origin-x\",browsers:[\"IE10\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-y\",browsers:[\"IE10\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-z\",browsers:[\"IE10\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-user-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"element\"},{name:\"none\"},{name:\"text\"}],status:\"nonstandard\",syntax:\"none | element | text\",description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-word-break\",browsers:[\"IE8\"],values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"-ms-word-wrap\",browsers:[\"IE8\"],values:[{name:\"break-word\",description:\"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-flow\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"For floats an exclusion is created, for all other elements an exclusion is not created.\"},{name:\"both\",description:\"Inline flow content can flow on all sides of the exclusion.\"},{name:\"clear\",description:\"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty.\"},{name:\"end\",description:\"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty.\"},{name:\"maximum\",description:\"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty.\"},{name:\"minimum\",description:\"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content’s containing block, and must leave the other edge of the exclusion empty.\"},{name:\"start\",description:\"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty.\"}],status:\"nonstandard\",syntax:\"auto | both | start | end | maximum | clear\",description:\"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-margin\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that is used to offset the inner wrap shape from other shapes.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-wrap-through\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element.\"},{name:\"wrap\",description:\"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element.\"}],status:\"nonstandard\",syntax:\"wrap | none\",description:\"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.\",restrictions:[\"enum\"]},{name:\"-ms-writing-mode\",browsers:[\"IE8\"],values:[{name:\"bt-lr\"},{name:\"bt-rl\"},{name:\"lr-bt\"},{name:\"lr-tb\"},{name:\"rl-bt\"},{name:\"rl-tb\"},{name:\"tb-lr\"},{name:\"tb-rl\"}],description:\"Shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"-ms-zoom\",browsers:[\"IE8\"],values:[{name:\"normal\"}],description:\"Sets or retrieves the magnification scale of the object.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"-ms-zoom-animation\",browsers:[\"IE10\"],values:[{name:\"default\"},{name:\"none\"}],description:\"Gets or sets a value that indicates whether an animation is used when zooming.\",restrictions:[\"enum\"]},{name:\"nav-down\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-index\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The element's sequential navigation order is assigned automatically by the user agent.\"}],description:\"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').\",restrictions:[\"number\"]},{name:\"nav-left\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-right\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-up\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"negative\",browsers:[\"FF33\"],syntax:\"<symbol> <symbol>?\",description:\"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.\",restrictions:[\"image\",\"identifier\",\"string\"]},{name:\"-o-animation\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-o-animation-delay\",browsers:[\"O12\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-o-animation-direction\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-o-animation-duration\",browsers:[\"O12\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-o-animation-fill-mode\",browsers:[\"O12\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-o-animation-iteration-count\",browsers:[\"O12\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-o-animation-name\",browsers:[\"O12\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-o-animation-play-state\",browsers:[\"O12\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-o-animation-timing-function\",browsers:[\"O12\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-o-border-image\",browsers:[\"O11.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"image\",\"enum\"]},{name:\"-o-object-fit\",browsers:[\"O10.6\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"-o-object-position\",browsers:[\"O10.6\"],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-o-table-baseline\",browsers:[\"O9.6\"],description:\"Determines which row of a inline-table should be used as baseline of inline-table.\",restrictions:[\"integer\"]},{name:\"-o-tab-size\",browsers:[\"O10.6\"],description:\"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"-o-text-overflow\",browsers:[\"O10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-o-transform\",browsers:[\"O10.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-o-transform-origin\",browsers:[\"O10.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"positon\",\"length\",\"percentage\"]},{name:\"-o-transition\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-o-transition-delay\",browsers:[\"O11.5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-o-transition-duration\",browsers:[\"O11.5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-o-transition-property\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-o-transition-timing-function\",browsers:[\"O11.5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"offset-block-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-block-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"pad\",browsers:[\"FF33\"],syntax:\"<integer> && <symbol>\",description:\"@counter-style descriptor. Specifies a “fixed-width” counter style, where representations shorter than the pad value are padded with a particular <symbol>\",restrictions:[\"integer\",\"image\",\"string\",\"identifier\"]},{name:\"prefix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"range\",browsers:[\"FF33\"],values:[{name:\"auto\",description:\"The range depends on the counter system.\"},{name:\"infinite\",description:\"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity.\"}],syntax:\"[ [ <integer> | infinite ]{2} ]# | auto\",description:\"@counter-style descriptor. Defines the ranges over which the counter style is defined.\",restrictions:[\"integer\",\"enum\"]},{name:\"ruby-align\",browsers:[\"FF38\"],values:[{name:\"auto\",browsers:[\"FF38\"],description:\"The user agent determines how the ruby contents are aligned. This is the initial value.\"},{name:\"center\",description:\"The ruby content is centered within its box.\"},{name:\"distribute-letter\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text.\"},{name:\"distribute-space\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text.\"},{name:\"left\",description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"line-edge\",browsers:[\"FF38\"],description:\"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base.\"},{name:\"right\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the end edge of the base.\"},{name:\"start\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"space-between\",browsers:[\"FF38\"],description:\"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),\"},{name:\"space-around\",browsers:[\"FF38\"],description:\"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content.\"}],status:\"experimental\",syntax:\"start | center | space-between | space-around\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-align\"}],description:\"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.\",restrictions:[\"enum\"]},{name:\"ruby-overhang\",browsers:[\"FF10\",\"IE5\"],values:[{name:\"auto\",description:\"The ruby text can overhang text adjacent to the base on either side. This is the initial value.\"},{name:\"end\",description:\"The ruby text can overhang the text that follows it.\"},{name:\"none\",description:\"The ruby text cannot overhang any text adjacent to its base, only its own base.\"},{name:\"start\",description:\"The ruby text can overhang the text that precedes it.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"ruby-position\",browsers:[\"E12\",\"FF38\"],values:[{name:\"after\",description:\"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text.\"},{name:\"before\",description:\"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems.\"},{name:\"inline\"},{name:\"right\",description:\"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction.\"}],status:\"experimental\",syntax:\"over | under | inter-character\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-position\"}],description:\"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.\",restrictions:[\"enum\"]},{name:\"ruby-span\",browsers:[\"FF10\"],values:[{name:\"attr(x)\",description:\"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element.\"},{name:\"none\",description:\"No spanning. The computed value is '1'.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"scrollbar-3dlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-arrow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color\"}],description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"scrollbar-base-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color\"}],description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"scrollbar-darkshadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color\"}],description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-face-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color\"}],description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-highlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-shadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color\"}],description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-track-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-track-color\"}],description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"suffix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"system\",browsers:[\"FF33\"],values:[{name:\"additive\",description:\"Represents “sign-value” numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together.\"},{name:\"alphabetic\",description:'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\".'},{name:\"cyclic\",description:\"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list.\"},{name:\"extends\",description:\"Use the algorithm of another counter style, but alter other aspects.\"},{name:\"fixed\",description:\"Runs through its list of counter symbols once, then falls back.\"},{name:\"numeric\",description:\"interprets the list of counter symbols as digits to a \\\"place-value\\\" numbering system, similar to the default 'decimal' counter style.\"},{name:\"symbolic\",description:\"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list.\"}],syntax:\"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]\",description:\"@counter-style descriptor. Specifies which algorithm will be used to construct the counter’s representation based on the counter value.\",restrictions:[\"enum\",\"integer\"]},{name:\"symbols\",browsers:[\"FF33\"],syntax:\"<symbol>+\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"-webkit-animation\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-webkit-animation-delay\",browsers:[\"C\",\"S5\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-webkit-animation-direction\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-duration\",browsers:[\"C\",\"S5\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-webkit-animation-fill-mode\",browsers:[\"C\",\"S5\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-iteration-count\",browsers:[\"C\",\"S5\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-webkit-animation-name\",browsers:[\"C\",\"S5\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-webkit-animation-play-state\",browsers:[\"C\",\"S5\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-timing-function\",browsers:[\"C\",\"S5\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-webkit-appearance\",browsers:[\"C\",\"S3\"],values:[{name:\"button\"},{name:\"button-bevel\"},{name:\"caps-lock-indicator\"},{name:\"caret\"},{name:\"checkbox\"},{name:\"default-button\"},{name:\"listbox\"},{name:\"listitem\"},{name:\"media-fullscreen-button\"},{name:\"media-mute-button\"},{name:\"media-play-button\"},{name:\"media-seek-back-button\"},{name:\"media-seek-forward-button\"},{name:\"media-slider\"},{name:\"media-sliderthumb\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"none\"},{name:\"push-button\"},{name:\"radio\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbargripper-horizontal\"},{name:\"scrollbargripper-vertical\"},{name:\"scrollbarthumb-horizontal\"},{name:\"scrollbarthumb-vertical\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"searchfield\"},{name:\"searchfield-cancel-button\"},{name:\"searchfield-decoration\"},{name:\"searchfield-results-button\"},{name:\"searchfield-results-decoration\"},{name:\"slider-horizontal\"},{name:\"sliderthumb-horizontal\"},{name:\"sliderthumb-vertical\"},{name:\"slider-vertical\"},{name:\"square-button\"},{name:\"textarea\"},{name:\"textfield\"}],status:\"nonstandard\",syntax:\"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\",description:\"Changes the appearance of buttons and other controls to resemble native controls.\",restrictions:[\"enum\"]},{name:\"-webkit-backdrop-filter\",browsers:[\"S9\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Applies a filter effect where the first filter in the list takes the element's background image as the input image.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-backface-visibility\",browsers:[\"C\",\"S5\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-webkit-background-clip\",browsers:[\"C\",\"S3\"],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"-webkit-background-composite\",browsers:[\"C\",\"S3\"],values:[{name:\"border\"},{name:\"padding\"}],restrictions:[\"enum\"]},{name:\"-webkit-background-origin\",browsers:[\"C\",\"S3\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-webkit-border-image\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-webkit-box-align\",browsers:[\"C\",\"S3\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies the alignment of nested elements within an outer flexible box element.\",restrictions:[\"enum\"]},{name:\"-webkit-box-direction\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-webkit-box-flex\",browsers:[\"C\",\"S3\"],description:\"Specifies an element's flexibility.\",restrictions:[\"number\"]},{name:\"-webkit-box-flex-group\",browsers:[\"C\",\"S3\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-webkit-box-ordinal-group\",browsers:[\"C\",\"S3\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-webkit-box-orient\",browsers:[\"C\",\"S3\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-webkit-box-pack\",browsers:[\"C\",\"S3\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies alignment of child elements within the current element in the direction of orientation.\",restrictions:[\"enum\"]},{name:\"-webkit-box-reflect\",browsers:[\"S4\",\"C4\",\"O15\"],values:[{name:\"above\",description:\"The reflection appears above the border box.\"},{name:\"below\",description:\"The reflection appears below the border box.\"},{name:\"left\",description:\"The reflection appears to the left of the border box.\"},{name:\"right\",description:\"The reflection appears to the right of the border box.\"}],status:\"nonstandard\",syntax:\"[ above | below | right | left ]? <length>? <image>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect\"}],description:\"Defines a reflection of a border box.\"},{name:\"-webkit-box-sizing\",browsers:[\"C\",\"S3\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-webkit-break-after\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-before\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-inside\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-after\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-before\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-inside\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-count\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-webkit-column-gap\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-webkit-column-rule\",browsers:[\"C\",\"S3\"],description:\"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-webkit-column-rule-color\",browsers:[\"C\",\"S3\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-webkit-column-rule-style\",browsers:[\"C\",\"S3\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-webkit-column-rule-width\",browsers:[\"C\",\"S3\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-webkit-columns\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-webkit-column-span\",browsers:[\"C\",\"S3\"],values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-width\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-webkit-filter\",browsers:[\"C18\",\"O15\",\"S6\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-flow-from\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-flow-into\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-font-feature-settings\",browsers:[\"C16\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\"},{name:\"on\"}],description:\"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-webkit-hyphens\",browsers:[\"S5.1\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-webkit-line-break\",browsers:[\"C\",\"S3\"],values:[{name:\"after-white-space\"},{name:\"normal\"}],description:\"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.\"},{name:\"-webkit-margin-bottom-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-start\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"}],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-margin-top-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-mask-clip\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content | text ]#\",description:\"Determines the mask painting area, which determines the area that is affected by the mask.\",restrictions:[\"box\"]},{name:\"-webkit-mask-image\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],status:\"nonstandard\",syntax:\"<mask-reference>#\",description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"-webkit-mask-origin\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content ]#\",description:\"Specifies the mask positioning area.\",restrictions:[\"box\"]},{name:\"-webkit-mask-repeat\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"<repeat-style>#\",description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"-webkit-mask-size\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],status:\"nonstandard\",syntax:\"<bg-size>#\",description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-webkit-nbsp-mode\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\"},{name:\"space\"}],description:\"Defines the behavior of nonbreaking spaces within text.\"},{name:\"-webkit-overflow-scrolling\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\"},{name:\"touch\"}],status:\"nonstandard\",syntax:\"auto | touch\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling\"}],description:\"Specifies whether to use native-style scrolling in an overflow:scroll element.\"},{name:\"-webkit-padding-start\",browsers:[\"C\",\"S3\"],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-perspective\",browsers:[\"C\",\"S4\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-webkit-perspective-origin\",browsers:[\"C\",\"S4\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-webkit-region-fragment\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Content flows as it would in a regular content box.\"},{name:\"break\",description:\"If the content fits within the CSS Region, then this property has no effect.\"}],description:\"The 'region-fragment' property controls the behavior of the last region associated with a named flow.\",restrictions:[\"enum\"]},{name:\"-webkit-tap-highlight-color\",browsers:[\"E\",\"C\",\"S3.1\"],status:\"nonstandard\",syntax:\"<color>\",restrictions:[\"color\"]},{name:\"-webkit-text-fill-color\",browsers:[\"E12\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-size-adjust\",browsers:[\"E\",\"C\",\"S3\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"percentage\"]},{name:\"-webkit-text-stroke\",browsers:[\"E15\",\"FF49\",\"S3\",\"C4\",\"O15\"],status:\"nonstandard\",syntax:\"<length> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke\"}],restrictions:[\"length\",\"line-width\",\"color\",\"percentage\"]},{name:\"-webkit-text-stroke-color\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-stroke-width\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width\"}],restrictions:[\"length\",\"line-width\",\"percentage\"]},{name:\"-webkit-touch-callout\",browsers:[\"S3\"],values:[{name:\"none\"}],status:\"nonstandard\",syntax:\"default | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout\"}],restrictions:[\"enum\"]},{name:\"-webkit-transform\",browsers:[\"C\",\"O12\",\"S3.1\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-webkit-transform-origin\",browsers:[\"C\",\"O15\",\"S3.1\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-x\",browsers:[\"C\",\"S3.1\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-y\",browsers:[\"C\",\"S3.1\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-z\",browsers:[\"C\",\"S4\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-style\",browsers:[\"C\",\"S4\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"-webkit-transition\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-webkit-transition-delay\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-webkit-transition-duration\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-webkit-transition-property\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-webkit-transition-timing-function\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-webkit-user-drag\",browsers:[\"S3\"],values:[{name:\"auto\"},{name:\"element\"},{name:\"none\"}],restrictions:[\"enum\"]},{name:\"-webkit-user-modify\",browsers:[\"C\",\"S3\"],values:[{name:\"read-only\"},{name:\"read-write\"},{name:\"read-write-plaintext-only\"}],status:\"nonstandard\",syntax:\"read-only | read-write | read-write-plaintext-only\",description:\"Determines whether a user can edit the content of an element.\",restrictions:[\"enum\"]},{name:\"-webkit-user-select\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"},{name:\"none\"},{name:\"text\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-ime-align\",status:\"nonstandard\",syntax:\"auto | after\",description:\"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active.\"},{name:\"-moz-binding\",status:\"nonstandard\",syntax:\"<url> | none\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-binding\"}],description:\"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element.\"},{name:\"-moz-context-properties\",status:\"nonstandard\",syntax:\"none | [ fill | fill-opacity | stroke | stroke-opacity ]#\",browsers:[\"FF55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties\"}],description:\"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\\n\\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.\"},{name:\"-moz-float-edge\",status:\"nonstandard\",syntax:\"border-box | content-box | margin-box | padding-box\",description:\"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.\"},{name:\"-moz-force-broken-image-icon\",status:\"nonstandard\",syntax:\"<integer>\",description:\"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.\"},{name:\"-moz-image-region\",status:\"nonstandard\",syntax:\"<shape> | auto\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region\"}],description:\"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\"},{name:\"-moz-orient\",status:\"nonstandard\",syntax:\"inline | block | horizontal | vertical\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-orient\"}],description:\"The -moz-orient CSS property specifies the orientation of the element to which it's applied.\"},{name:\"-moz-outline-radius\",status:\"nonstandard\",syntax:\"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?\",browsers:[\"FF1.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius\"}],description:\"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners.\"},{name:\"-moz-outline-radius-bottomleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline.\"},{name:\"-moz-outline-radius-bottomright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline.\"},{name:\"-moz-outline-radius-topleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline.\"},{name:\"-moz-outline-radius-topright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline.\"},{name:\"-moz-stack-sizing\",status:\"nonstandard\",syntax:\"ignore | stretch-to-fit\",description:\"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible.\"},{name:\"-moz-text-blink\",status:\"nonstandard\",syntax:\"none | blink\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink\"}],description:\"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode.\"},{name:\"-moz-user-input\",status:\"nonstandard\",syntax:\"auto | none | enabled | disabled\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input\"}],description:\"In Mozilla applications, -moz-user-input determines if an element will accept user input.\"},{name:\"-moz-user-modify\",status:\"nonstandard\",syntax:\"read-only | read-write | write-only\",description:\"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user.\"},{name:\"-moz-window-dragging\",status:\"nonstandard\",syntax:\"drag | no-drag\",description:\"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X.\"},{name:\"-moz-window-shadow\",status:\"nonstandard\",syntax:\"default | menu | tooltip | sheet | none\",browsers:[\"FF3.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow\"}],description:\"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X.\"},{name:\"-webkit-border-before\",status:\"nonstandard\",syntax:\"<'border-width'> || <'border-style'> || <'color'>\",browsers:[\"S5.1\",\"C8\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before\"}],description:\"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.\"},{name:\"-webkit-border-before-color\",status:\"nonstandard\",syntax:\"<'color'>\",description:\"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-style\",status:\"nonstandard\",syntax:\"<'border-style'>\",description:\"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-width\",status:\"nonstandard\",syntax:\"<'border-width'>\",description:\"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-line-clamp\",syntax:\"none | <integer>\",browsers:[\"E17\",\"FF68\",\"S5\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp\"}],description:\"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines.\"},{name:\"-webkit-mask\",status:\"nonstandard\",syntax:\"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#\",description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"-webkit-mask-attachment\",status:\"nonstandard\",syntax:\"<attachment>#\",browsers:[\"S4\",\"C1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment\"}],description:\"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block.\"},{name:\"-webkit-mask-composite\",status:\"nonstandard\",syntax:\"<composite-style>#\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite\"}],description:\"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\"},{name:\"-webkit-mask-position\",status:\"nonstandard\",syntax:\"<position>#\",description:\"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image.\"},{name:\"-webkit-mask-position-x\",status:\"nonstandard\",syntax:\"[ <length-percentage> | left | center | right ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x\"}],description:\"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.\"},{name:\"-webkit-mask-position-y\",status:\"nonstandard\",syntax:\"[ <length-percentage> | top | center | bottom ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y\"}],description:\"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.\"},{name:\"-webkit-mask-repeat-x\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x\"}],description:\"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.\"},{name:\"-webkit-mask-repeat-y\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y\"}],description:\"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically.\"},{name:\"appearance\",status:\"experimental\",syntax:\"none | auto | button | textfield | <compat>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/appearance\"}],description:\"Changes the appearance of buttons and other controls to resemble native controls.\"},{name:\"aspect-ratio\",status:\"experimental\",syntax:\"auto | <ratio>\",description:\"\"},{name:\"azimuth\",status:\"obsolete\",syntax:\"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/azimuth\"}],description:\"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage.\"},{name:\"border-end-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius\"}],description:\"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-end-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius\"}],description:\"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius\"}],description:\"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius\"}],description:\"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation.\"},{name:\"box-align\",status:\"nonstandard\",syntax:\"start | center | end | baseline | stretch\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-align\"}],description:\"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\"},{name:\"box-direction\",status:\"nonstandard\",syntax:\"normal | reverse | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-direction\"}],description:\"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\"},{name:\"box-flex\",status:\"nonstandard\",syntax:\"<number>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex\"}],description:\"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.\"},{name:\"box-flex-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex-group\"}],description:\"The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\"},{name:\"box-lines\",status:\"nonstandard\",syntax:\"single | multiple\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-lines\"}],description:\"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\"},{name:\"box-ordinal-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group\"}],description:\"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\"},{name:\"box-orient\",status:\"nonstandard\",syntax:\"horizontal | vertical | inline-axis | block-axis | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-orient\"}],description:\"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.\"},{name:\"box-pack\",status:\"nonstandard\",syntax:\"start | center | end | justify\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-pack\"}],description:\"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\"},{name:\"color-adjust\",syntax:\"economy | exact\",browsers:[\"FF48\",\"S6\",\"C49\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color-adjust\"}],description:\"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images in browsers based on the WebKit engine.\"},{name:\"counter-set\",syntax:\"[ <custom-ident> <integer>? ]+ | none\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-set\"}],description:\"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element.\"},{name:\"hanging-punctuation\",syntax:\"none | [ first || [ force-end | allow-end ] || last ]\",browsers:[\"S10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation\"}],description:\"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.\"},{name:\"initial-letter\",status:\"experimental\",syntax:\"normal | [ <number> <integer>? ]\",browsers:[\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter\"}],description:\"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters.\"},{name:\"initial-letter-align\",status:\"experimental\",syntax:\"[ auto | alphabetic | hanging | ideographic ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align\"}],description:\"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph.\"},{name:\"line-clamp\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content.\"},{name:\"line-height-step\",status:\"experimental\",syntax:\"<length>\",browsers:[\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height-step\"}],description:\"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid.\"},{name:\"mask-border\",status:\"experimental\",syntax:\"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>\",description:\"The mask-border CSS property lets you create a mask along the edge of an element's border.\\n\\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.\"},{name:\"mask-border-mode\",status:\"experimental\",syntax:\"luminance | alpha\",description:\"The mask-border-mode CSS property specifies the blending mode used in a mask border.\"},{name:\"mask-border-outset\",status:\"experimental\",syntax:\"[ <length> | <number> ]{1,4}\",description:\"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box.\"},{name:\"mask-border-repeat\",status:\"experimental\",syntax:\"[ stretch | repeat | round | space ]{1,2}\",description:\"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border.\"},{name:\"mask-border-slice\",status:\"experimental\",syntax:\"<number-percentage>{1,4} fill?\",description:\"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.\"},{name:\"mask-border-source\",status:\"experimental\",syntax:\"none | <image>\",description:\"The mask-border-source CSS property specifies the source image used to create an element's mask border.\\n\\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.\"},{name:\"mask-border-width\",status:\"experimental\",syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",description:\"The mask-border-width CSS property specifies the width of an element's mask border.\"},{name:\"mask-clip\",syntax:\"[ <geometry-box> | no-clip ]#\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-clip\"}],description:\"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area.\"},{name:\"mask-composite\",syntax:\"<compositing-operator>#\",browsers:[\"E18\",\"FF53\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-composite\"}],description:\"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.\"},{name:\"max-lines\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The max-liens property forces a break after a set number of lines\"},{name:\"overflow-block\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-block\"}],description:\"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis.\"},{name:\"overflow-clip-box\",status:\"nonstandard\",syntax:\"padding-box | content-box\",browsers:[\"FF29\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Mozilla/CSS/overflow-clip-box\"}],description:\"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties.\"},{name:\"overflow-inline\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-inline\"}],description:\"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis.\"},{name:\"overscroll-behavior\",status:\"nonstandard\",syntax:\"[ contain | none | auto ]{1,2}\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior\"}],description:\"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached.\"},{name:\"overscroll-behavior-x\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x\"}],description:\"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction.\"},{name:\"overscroll-behavior-y\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y\"}],description:\"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction.\"},{name:\"ruby-merge\",status:\"experimental\",syntax:\"separate | collapse | auto\",description:\"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available.\"},{name:\"scrollbar-color\",syntax:\"auto | dark | light | <color>{2}\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color\"}],description:\"The scrollbar-color CSS property sets the color of the scrollbar track and thumb.\"},{name:\"scrollbar-width\",syntax:\"auto | thin | none\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width\"}],description:\"The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. \"},{name:\"scroll-margin\",syntax:\"<length>{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin\"}],description:\"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands.\"},{name:\"scroll-margin-block\",syntax:\"<length>{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block\"}],description:\"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension.\"},{name:\"scroll-margin-block-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start\"}],description:\"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-block-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end\"}],description:\"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-bottom\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom\"}],description:\"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline\",syntax:\"<length>{1,2}\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline\"}],description:\"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension.\"},{name:\"scroll-margin-inline-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start\"}],description:\"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end\"}],description:\"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-left\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left\"}],description:\"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-right\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right\"}],description:\"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-top\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top\"}],description:\"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-snap-type-x\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\",\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x\"}],description:\"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"scroll-snap-type-y\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y\"}],description:\"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"text-decoration-thickness\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness\"}],description:\"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline.\"},{name:\"text-emphasis\",syntax:\"<'text-emphasis-style'> || <'text-emphasis-color'>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis\"}],description:\"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces,  and control characters.\"},{name:\"text-emphasis-color\",syntax:\"<color>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color\"}],description:\"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand.\"},{name:\"text-emphasis-position\",syntax:\"[ over | under ] && [ right | left ]\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position\"}],description:\"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased.\"},{name:\"text-emphasis-style\",syntax:\"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style\"}],description:\"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand.\"},{name:\"text-underline-offset\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset\"}],description:\"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.\"},{name:\"speak-as\",syntax:\"auto | bullets | numbers | words | spell-out | <counter-style-name>\",description:\"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue.\"},{name:\"bleed\",status:\"experimental\",syntax:\"auto | <length>\",description:\"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property.\"},{name:\"marks\",status:\"experimental\",syntax:\"none | [ crop || cross ]\",description:\"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets.\"}],atDirectives:[{name:\"@charset\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@charset\"}],description:\"Defines character set of the document.\"},{name:\"@counter-style\",browsers:[\"FF33\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@counter-style\"}],description:\"Defines a custom counter style.\"},{name:\"@font-face\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-face\"}],description:\"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment.\"},{name:\"@font-feature-values\",browsers:[\"FF34\",\"S9.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values\"}],description:\"Defines named values for the indices used to select alternate glyphs for a given font family.\"},{name:\"@import\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@import\"}],description:\"Includes content of another file.\"},{name:\"@keyframes\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@keyframes\"}],description:\"Defines set of animation key frames.\"},{name:\"@media\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@media\"}],description:\"Defines a stylesheet for a particular media type.\"},{name:\"@-moz-document\",browsers:[\"FF1.8\"],description:\"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document.\"},{name:\"@-moz-keyframes\",browsers:[\"FF5\"],description:\"Defines set of animation key frames.\"},{name:\"@-ms-viewport\",browsers:[\"E\",\"IE10\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@namespace\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@namespace\"}],description:\"Declares a prefix and associates it with a namespace name.\"},{name:\"@-o-keyframes\",browsers:[\"O12\"],description:\"Defines set of animation key frames.\"},{name:\"@-o-viewport\",browsers:[\"O11\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@page\",browsers:[\"E12\",\"FF19\",\"C2\",\"IE8\",\"O6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@page\"}],description:\"Directive defines various page parameters.\"},{name:\"@supports\",browsers:[\"E12\",\"FF22\",\"S9\",\"C28\",\"O12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@supports\"}],description:\"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.\"},{name:\"@-webkit-keyframes\",browsers:[\"C\",\"S4\"],description:\"Defines set of animation key frames.\"}],pseudoClasses:[{name:\":active\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:active\"}],description:\"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.\"},{name:\":any-link\",browsers:[\"FF50\",\"S9\",\"C65\",\"O52\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:any-link\"}],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":checked\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:checked\"}],description:\"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies.\"},{name:\":corner-present\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Indicates whether or not a scrollbar corner is present.\"},{name:\":decrement\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view’s position when used.\"},{name:\":default\",browsers:[\"FF4\",\"S5\",\"C10\",\"O10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:default\"}],description:\"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus.\"},{name:\":disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:disabled\"}],description:\"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state.\"},{name:\":double-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar.\"},{name:\":empty\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:empty\"}],description:\"Represents an element that has no children at all.\"},{name:\":enabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:enabled\"}],description:\"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state.\"},{name:\":end\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb.\"},{name:\":first\",browsers:[\"E12\",\"S6\",\"C18\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":first-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-child\"}],description:\"Same as :nth-child(1). Represents an element that is the first child of some other element.\"},{name:\":first-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-of-type\"}],description:\"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element.\"},{name:\":focus\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus\"}],description:\"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input).\"},{name:\":fullscreen\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:fullscreen\"}],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":future\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely after a :current element.\"},{name:\":horizontal\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation.\"},{name:\":host\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:host\"}],description:\"When evaluated in the context of a shadow tree, matches the shadow tree’s host element.\"},{name:\":host()\",browsers:[\"C35\",\"O22\"],description:\"When evaluated in the context of a shadow tree, it matches the shadow tree’s host element if the host element, in its normal context, matches the selector argument.\"},{name:\":host-context()\",browsers:[\"C35\",\"O22\"],description:\"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector.\"},{name:\":hover\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:hover\"}],description:\"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element.\"},{name:\":increment\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view’s position when used.\"},{name:\":indeterminate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:indeterminate\"}],description:\"Applies to UI elements whose value is in an indeterminate state.\"},{name:\":in-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:in-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":invalid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:invalid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":lang()\",browsers:[\"E\",\"C\",\"FF1\",\"IE8\",\"O8\",\"S3\"],description:\"Represents an element that is in language specified.\"},{name:\":last-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-child\"}],description:\"Same as :nth-last-child(1). Represents an element that is the last child of some other element.\"},{name:\":last-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-of-type\"}],description:\"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element.\"},{name:\":left\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:left\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":link\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:link\"}],description:\"Applies to links that have not yet been visited.\"},{name:\":matches()\",browsers:[\"S9\"],description:\"Takes a selector list as its argument. It represents an element that is represented by its argument.\"},{name:\":-moz-any()\",browsers:[\"FF4\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-moz-any-link\",browsers:[\"FF1\"],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":-moz-broken\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing broken images.\"},{name:\":-moz-drag-over\",browsers:[\"FF1\"],description:\"Non-standard. Matches elements when a drag-over event applies to it.\"},{name:\":-moz-first-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the first child node of some other element.\"},{name:\":-moz-focusring\",browsers:[\"FF4\"],description:\"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser.\"},{name:\":-moz-full-screen\",browsers:[\"FF9\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":-moz-last-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the last child node of some other element.\"},{name:\":-moz-loading\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements, such as images, that haven’t started loading yet.\"},{name:\":-moz-only-whitespace\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace\"}],description:\"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank.\"},{name:\":-moz-placeholder\",browsers:[\"FF4\"],description:\"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+.\"},{name:\":-moz-submit-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid\"}],description:\"Non-standard. Represents any submit button when the contents of the associated form are not valid.\"},{name:\":-moz-suppressed\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been blocked from loading.\"},{name:\":-moz-ui-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-invalid\"}],description:\"Non-standard. Represents any validated form element whose value isn't valid \"},{name:\":-moz-ui-valid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-valid\"}],description:\"Non-standard. Represents any validated form element whose value is valid \"},{name:\":-moz-user-disabled\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been disabled due to the user’s preferences.\"},{name:\":-moz-window-inactive\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive\"}],description:\"Non-standard. Matches elements in an inactive window.\"},{name:\":-ms-fullscreen\",browsers:[\"IE11\"],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":-ms-input-placeholder\",browsers:[\"IE10\"],description:\"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder.\"},{name:\":-ms-keyboard-active\",browsers:[\"IE10\"],description:\"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar.\"},{name:\":-ms-lang()\",browsers:[\"E\",\"IE10\"],description:\"Represents an element that is in the language specified. Accepts a comma separated list of language tokens.\"},{name:\":no-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track.\"},{name:\":not()\",browsers:[\"E\",\"C\",\"FF1\",\"IE9\",\"O9.5\",\"S2\"],description:\"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.\"},{name:\":nth-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":nth-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":only-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-child\"}],description:\"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity.\"},{name:\":only-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-of-type\"}],description:\"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity.\"},{name:\":optional\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:optional\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":out-of-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:out-of-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":past\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely prior to a :current element.\"},{name:\":read-only\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-only\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":read-write\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-write\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":required\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:required\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":right\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:right\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":root\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:root\"}],description:\"Represents an element that is the root of the document. In HTML 4, this is always the HTML element.\"},{name:\":scope\",browsers:[\"FF32\",\"S7\",\"C27\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:scope\"}],description:\"Represents any element that is in the contextual reference element set.\"},{name:\":single-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar.\"},{name:\":start\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb.\"},{name:\":target\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:target\"}],description:\"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier).\"},{name:\":valid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:valid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":vertical\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a vertical orientation.\"},{name:\":visited\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:visited\"}],description:\"Applies once the link has been visited by the user.\"},{name:\":-webkit-any()\",browsers:[\"C\",\"S5\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-webkit-full-screen\",browsers:[\"C\",\"S6\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":window-inactive\",browsers:[\"C\",\"S3\"],description:\"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active.\"},{name:\":blank\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:blank\"}],description:\"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).\"},{name:\":defined\",status:\"experimental\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:defined\"}],description:\"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).\"},{name:\":dir\",browsers:[\"FF49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:dir\"}],description:\"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.\"},{name:\":focus-visible\",status:\"experimental\",browsers:[\"FF4\",\"C67\",\"O54\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-visible\"}],description:\"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.\"},{name:\":focus-within\",status:\"experimental\",browsers:[\"FF52\",\"S10.1\",\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-within\"}],description:\"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.\"},{name:\":has\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:has\"}],description:\":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element.\"},{name:\":is\",status:\"experimental\",browsers:[\"FF4\",\"S9\",\"C68\",\"O55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:is\"}],description:\"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.\"},{name:\":placeholder-shown\",status:\"experimental\",browsers:[\"FF51\",\"S9\",\"C47\",\"IE10\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown\"}],description:\"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.\"},{name:\":where\",status:\"experimental\",description:\"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.\"}],pseudoElements:[{name:\"::after\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::after\"}],description:\"Represents a styleable child pseudo-element immediately after the originating element’s actual content.\"},{name:\"::backdrop\",browsers:[\"E12\",\"FF47\",\"C37\",\"IE11\",\"O24\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::backdrop\"}],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::before\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::before\"}],description:\"Represents a styleable child pseudo-element immediately before the originating element’s actual content.\"},{name:\"::content\",browsers:[\"C35\",\"O22\"],description:\"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility.\"},{name:\"::cue\",browsers:[\"FF55\",\"S6.1\",\"C26\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::cue\"}]},{name:\"::cue()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::first-letter\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-letter\"}],description:\"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line.\"},{name:\"::first-line\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-line\"}],description:\"Describes the contents of the first formatted line of its originating element.\"},{name:\"::-moz-focus-inner\",browsers:[\"FF4\"]},{name:\"::-moz-focus-outer\",browsers:[\"FF4\"]},{name:\"::-moz-list-bullet\",browsers:[\"FF1\"],description:\"Used to style the bullet of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-list-number\",browsers:[\"FF1\"],description:\"Used to style the numbers of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-placeholder\",browsers:[\"FF19\"],description:\"Represents placeholder text in an input field\"},{name:\"::-moz-progress-bar\",browsers:[\"FF9\"],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-moz-selection\",browsers:[\"FF1\"],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::-ms-backdrop\",browsers:[\"IE11\"],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::-ms-browse\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-browse\"}],description:\"Represents the browse button of an input type=file control.\"},{name:\"::-ms-check\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-check\"}],description:\"Represents the check of a checkbox or radio button input control.\"},{name:\"::-ms-clear\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-clear\"}],description:\"Represents the clear button of a text input control\"},{name:\"::-ms-expand\",browsers:[\"E\",\"IE10\"],description:\"Represents the drop-down button of a select control.\"},{name:\"::-ms-fill\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill\"}],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-ms-fill-lower\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-lower\"}],description:\"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb.\"},{name:\"::-ms-fill-upper\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-upper\"}],description:\"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb.\"},{name:\"::-ms-reveal\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-reveal\"}],description:\"Represents the password reveal button of an input type=password control.\"},{name:\"::-ms-thumb\",browsers:[\"E\",\"IE10\"],description:\"Represents the portion of range input control (also known as a slider control) that the user drags.\"},{name:\"::-ms-ticks-after\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb.\"},{name:\"::-ms-ticks-before\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb.\"},{name:\"::-ms-tooltip\",browsers:[\"E\",\"IE10\"],description:\"Represents the tooltip of a slider (input type=range).\"},{name:\"::-ms-track\",browsers:[\"E\",\"IE10\"],description:\"Represents the track of a slider.\"},{name:\"::-ms-value\",browsers:[\"E16\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-value\"}],description:\"Represents the content of a text or password input control, or a select control.\"},{name:\"::selection\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::selection\"}],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::shadow\",browsers:[\"C35\",\"O22\"],description:\"Matches the shadow root if an element has a shadow tree.\"},{name:\"::-webkit-file-upload-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-file-upload-button\"}]},{name:\"::-webkit-inner-spin-button\",browsers:[\"S4.1\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button\"}]},{name:\"::-webkit-input-placeholder\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-keygen-select\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-meter-bar\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar\"}]},{name:\"::-webkit-meter-even-less-good-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value\"}]},{name:\"::-webkit-meter-optimum-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value\"}]},{name:\"::-webkit-meter-suboptimal-value\",browsers:[\"E13\",\"C\",\"O15\",\"S6\"]},{name:\"::-webkit-outer-spin-button\",browsers:[\"S4.1\",\"C6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-outer-spin-button\"}]},{name:\"::-webkit-progress-bar\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar\"}]},{name:\"::-webkit-progress-inner-element\",browsers:[\"S6.1\",\"C23\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element\"}]},{name:\"::-webkit-progress-value\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value\"}]},{name:\"::-webkit-resizer\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-resizer\"}]},{name:\"::-webkit-scrollbar\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"}]},{name:\"::-webkit-scrollbar-button\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-button\"}]},{name:\"::-webkit-scrollbar-corner\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-corner\"}]},{name:\"::-webkit-scrollbar-thumb\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-thumb\"}]},{name:\"::-webkit-scrollbar-track\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track\"}]},{name:\"::-webkit-scrollbar-track-piece\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track-piece\"}]},{name:\"::-webkit-search-cancel-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button\"}]},{name:\"::-webkit-search-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-search-results-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button\"}]},{name:\"::-webkit-search-results-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-slider-runnable-track\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-slider-thumb\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-textfield-decoration-container\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow-clipper\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-heading\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-message\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-text-block\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-moz-range-progress\",status:\"nonstandard\",browsers:[\"FF22\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress\"}],description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'},{name:\"::-moz-range-thumb\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb\"}],description:'The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input\\'s track to alter its numerical value.'},{name:\"::-moz-range-track\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track\"}],description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".'},{name:\"::-webkit-progress-inner-value\",status:\"nonstandard\",description:\"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\\n\\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.\"},{name:\"::grammar-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::grammar-error\"}],description:\"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\"},{name:\"::marker\",browsers:[\"FF68\",\"C80\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::marker\"}],description:\"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements.\"},{name:\"::part\",status:\"experimental\",browsers:[\"FF69\",\"C73\",\"O60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::part\"}],description:\"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\"},{name:\"::placeholder\",browsers:[\"E12\",\"FF51\",\"S10.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::placeholder\"}],description:\"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.\"},{name:\"::slotted\",browsers:[\"FF63\",\"S10\",\"C50\",\"O37\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::slotted\"}],description:\"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template.\"},{name:\"::spelling-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::spelling-error\"}],description:\"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\"}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){return Object.keys(e).map((function(t){return e[t]}))},t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataManager\",[\"require\",\"exports\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/objects\"),r=function(){function e(e){this.dataProviders=e,this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.collectData()}return e.prototype.addDataProviders=function(e){this.dataProviders=this.dataProviders.concat(e),this.collectData()},e.prototype.collectData=function(){var e=this;this.dataProviders.forEach((function(t){t.provideProperties().forEach((function(t){e._propertySet[t.name]||(e._propertySet[t.name]=t)})),t.provideAtDirectives().forEach((function(t){e._atDirectiveSet[t.name]||(e._atDirectiveSet[t.name]=t)})),t.providePseudoClasses().forEach((function(t){e._pseudoClassSet[t.name]||(e._pseudoClassSet[t.name]=t)})),t.providePseudoElements().forEach((function(t){e._pseudoElementSet[t.name]||(e._pseudoElementSet[t.name]=t)}))})),this._properties=n.values(this._propertySet),this._atDirectives=n.values(this._atDirectiveSet),this._pseudoClasses=n.values(this._pseudoClassSet),this._pseudoElements=n.values(this._pseudoElementSet)},e.prototype.getProperty=function(e){return this._propertySet[e]},e.prototype.getAtDirective=function(e){return this._atDirectiveSet[e]},e.prototype.getPseudoClass=function(e){return this._pseudoClassSet[e]},e.prototype.getPseudoElement=function(e){return this._pseudoElementSet[e]},e.prototype.getProperties=function(){return this._properties},e.prototype.getAtDirectives=function(){return this._atDirectives},e.prototype.getPseudoClasses=function(){return this._pseudoClasses},e.prototype.getPseudoElements=function(){return this._pseudoElements},e.prototype.isKnownProperty=function(e){return e.toLowerCase()in this._propertySet},e.prototype.isStandardProperty=function(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||\"standard\"===this._propertySet[e.toLowerCase()].status)},e}();t.CSSDataManager=r})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return e.prototype.provideProperties=function(){return this._properties},e.prototype.provideAtDirectives=function(){return this._atDirectives},e.prototype.providePseudoClasses=function(){return this._pseudoClasses},e.prototype.providePseudoElements=function(){return this._pseudoElements},e.prototype.addData=function(e){e.properties&&(this._properties=this._properties.concat(e.properties)),e.atDirectives&&(this._atDirectives=this._atDirectives.concat(e.atDirectives)),e.pseudoClasses&&(this._pseudoClasses=this._pseudoClasses.concat(e.pseudoClasses)),e.pseudoElements&&(this._pseudoElements=this._pseudoElements.concat(e.pseudoElements))},e}();t.CSSDataProvider=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/entry\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){switch(e){case\"experimental\":return\"⚠️ Property is experimental. Be cautious when using it.️\\n\\n\";case\"nonstandard\":return\"🚨️ Property is nonstandard. Avoid using it.\\n\\n\";case\"obsolete\":return\"🚨️️️ Property is obsolete. Avoid using it.\\n\\n\";default:return\"\"}}function r(e){if(!e.description||\"\"===e.description)return\"\";if(\"string\"!=typeof e.description)return e.description.value;var t=\"\";e.status&&(t+=n(e.status)),t+=e.description;var r=o(e.browsers);return r&&(t+=\"\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return e.name+\": \"+e.url})).join(\" | \")),t}function i(e){if(!e.description||\"\"===e.description)return\"\";var t=\"\";e.status&&(t+=n(e.status)),\"string\"==typeof e.description?t+=e.description:t=e.description.value;var r=o(e.browsers);return r&&(t+=\"\\n\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \")),t}function o(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var n=\"\",r=e.match(/([A-Z]+)(\\d+)?/),i=r[1],o=r[2];return i in t.browserNames&&(n+=t.browserNames[i]),o&&(n+=\" \"+o),n})).join(\", \")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.browserNames={E:\"Edge\",FF:\"Firefox\",S:\"Safari\",C:\"Chrome\",IE:\"IE\",O:\"Opera\"},t.getEntryDescription=function(e,t){return t?{kind:\"markdown\",value:i(e)}:{kind:\"plaintext\",value:r(e)}},t.getBrowserLabel=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/colors\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle();function i(e,t){var n=e.getText().match(/^([-+]?[0-9]*\\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function o(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}t.colorFunctions=[{func:\"rgb($red, $green, $blue)\",desc:r(\"css.builtin.rgb\",\"Creates a Color from red, green, and blue values.\")},{func:\"rgba($red, $green, $blue, $alpha)\",desc:r(\"css.builtin.rgba\",\"Creates a Color from red, green, blue, and alpha values.\")},{func:\"hsl($hue, $saturation, $lightness)\",desc:r(\"css.builtin.hsl\",\"Creates a Color from hue, saturation, and lightness values.\")},{func:\"hsla($hue, $saturation, $lightness, $alpha)\",desc:r(\"css.builtin.hsla\",\"Creates a Color from hue, saturation, lightness, and alpha values.\")}],t.colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rebeccapurple:\"#663399\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"},t.colorKeywords={currentColor:\"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.\",transparent:\"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.\"},t.isColorConstructor=o,t.isColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return!0;if(e.type===n.NodeType.Function)return o(e);if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return!1;var r=e.getText().toLowerCase();if(\"none\"===r)return!1;if(t.colors[r])return!0}return!1};function s(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}function a(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:17*s(e.charCodeAt(4))/255};case 7:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:(16*s(e.charCodeAt(7))+s(e.charCodeAt(8)))/255}}return null}function l(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,(e/=60)+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}t.hexDigit=s,t.colorFromHex=a,t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}},t.colorFromHSL=l,t.hslFromColor=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-t)/d+2;break;case r:a=(t-n)/d+4}a*=60,a=Math.round(a)}return{h:a,s:l,l:c,a:i}},t.getColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return a(e.getText());if(e.type===n.NodeType.Function){var r=e,o=r.getName(),s=r.getArguments().getChildren();if(!o||s.length<3||s.length>4)return null;try{var c=4===s.length?i(s[3],1):1;if(\"rgb\"===o||\"rgba\"===o)return{red:i(s[0],255),green:i(s[1],255),blue:i(s[2],255),alpha:c};if(\"hsl\"===o||\"hsla\"===o)return l(function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(s[0]),i(s[1],100),i(s[2],100),c)}catch(e){return null}}else if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return null;var d=e.parent;if(d&&d.parent&&d.parent.type===n.NodeType.BinaryExpression){var p=d.parent;if(p.parent&&p.parent.type===n.NodeType.ListEntry&&p.parent.key===p)return null}var h=e.getText().toLowerCase();if(\"none\"===h)return null;var m=t.colors[h];if(m)return a(m)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/builtinData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.positionKeywords={bottom:\"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\",center:\"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.\",left:\"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\",right:\"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\",top:\"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"},t.repeatStyleKeywords={\"no-repeat\":\"Placed once and not repeated in this direction.\",repeat:\"Repeated in this direction as often as needed to cover the background painting area.\",\"repeat-x\":\"Computes to ‘repeat no-repeat’.\",\"repeat-y\":\"Computes to ‘no-repeat repeat’.\",round:\"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.\",space:\"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.\"},t.lineStyleKeywords={dashed:\"A series of square-ended dashes.\",dotted:\"A series of round dots.\",double:\"Two parallel solid lines with some space between them.\",groove:\"Looks as if it were carved in the canvas.\",hidden:\"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.\",inset:\"Looks as if the content on the inside of the border is sunken into the canvas.\",none:\"No border. Color and width are ignored.\",outset:\"Looks as if the content on the inside of the border is coming out of the canvas.\",ridge:\"Looks as if it were coming out of the canvas.\",solid:\"A single line segment.\"},t.lineWidthKeywords=[\"medium\",\"thick\",\"thin\"],t.boxKeywords={\"border-box\":\"The background is painted within (clipped to) the border box.\",\"content-box\":\"The background is painted within (clipped to) the content box.\",\"padding-box\":\"The background is painted within (clipped to) the padding box.\"},t.geometryBoxKeywords={\"margin-box\":\"Uses the margin box as reference box.\",\"fill-box\":\"Uses the object bounding box as reference box.\",\"stroke-box\":\"Uses the stroke bounding box as reference box.\",\"view-box\":\"Uses the nearest SVG viewport as reference box.\"},t.cssWideKeywords={initial:\"Represents the value specified as the property’s initial value.\",inherit:\"Represents the computed value of the property on the element’s parent.\",unset:\"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.\"},t.imageFunctions={\"url()\":\"Reference an image file by URL\",\"image()\":\"Provide image fallbacks and annotations.\",\"-webkit-image-set()\":\"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.\",\"image-set()\":\"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.\",\"-moz-element()\":\"Use an element in the document as an image. Remember to use unprefixed element() in addition.\",\"element()\":\"Use an element in the document as an image.\",\"cross-fade()\":\"Indicates the two images to be combined and how far along in the transition the combination is.\",\"-webkit-gradient()\":\"Deprecated. Use modern linear-gradient() or radial-gradient() instead.\",\"-webkit-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-o-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"linear-gradient()\":\"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.\",\"-webkit-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-o-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"repeating-linear-gradient()\":\"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\",\"-webkit-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"-moz-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"radial-gradient()\":\"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.\",\"-webkit-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"repeating-radial-gradient()\":\"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\"},t.transitionTimingFunctions={ease:\"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).\",\"ease-in\":\"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).\",\"ease-in-out\":\"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).\",\"ease-out\":\"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).\",linear:\"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).\",\"step-end\":\"Equivalent to steps(1, end).\",\"step-start\":\"Equivalent to steps(1, start).\",\"steps()\":\"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.\",\"cubic-bezier()\":\"Specifies a cubic-bezier curve. The four values specify points P1 and P2  of the curve as (x1, y1, x2, y2).\",\"cubic-bezier(0.6, -0.28, 0.735, 0.045)\":\"Ease-in Back. Overshoots.\",\"cubic-bezier(0.68, -0.55, 0.265, 1.55)\":\"Ease-in-out Back. Overshoots.\",\"cubic-bezier(0.175, 0.885, 0.32, 1.275)\":\"Ease-out Back. Overshoots.\",\"cubic-bezier(0.6, 0.04, 0.98, 0.335)\":\"Ease-in Circular. Based on half circle.\",\"cubic-bezier(0.785, 0.135, 0.15, 0.86)\":\"Ease-in-out Circular. Based on half circle.\",\"cubic-bezier(0.075, 0.82, 0.165, 1)\":\"Ease-out Circular. Based on half circle.\",\"cubic-bezier(0.55, 0.055, 0.675, 0.19)\":\"Ease-in Cubic. Based on power of three.\",\"cubic-bezier(0.645, 0.045, 0.355, 1)\":\"Ease-in-out Cubic. Based on power of three.\",\"cubic-bezier(0.215, 0.610, 0.355, 1)\":\"Ease-out Cubic. Based on power of three.\",\"cubic-bezier(0.95, 0.05, 0.795, 0.035)\":\"Ease-in Exponential. Based on two to the power ten.\",\"cubic-bezier(1, 0, 0, 1)\":\"Ease-in-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.19, 1, 0.22, 1)\":\"Ease-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.47, 0, 0.745, 0.715)\":\"Ease-in Sine.\",\"cubic-bezier(0.445, 0.05, 0.55, 0.95)\":\"Ease-in-out Sine.\",\"cubic-bezier(0.39, 0.575, 0.565, 1)\":\"Ease-out Sine.\",\"cubic-bezier(0.55, 0.085, 0.68, 0.53)\":\"Ease-in Quadratic. Based on power of two.\",\"cubic-bezier(0.455, 0.03, 0.515, 0.955)\":\"Ease-in-out Quadratic. Based on power of two.\",\"cubic-bezier(0.25, 0.46, 0.45, 0.94)\":\"Ease-out Quadratic. Based on power of two.\",\"cubic-bezier(0.895, 0.03, 0.685, 0.22)\":\"Ease-in Quartic. Based on power of four.\",\"cubic-bezier(0.77, 0, 0.175, 1)\":\"Ease-in-out Quartic. Based on power of four.\",\"cubic-bezier(0.165, 0.84, 0.44, 1)\":\"Ease-out Quartic. Based on power of four.\",\"cubic-bezier(0.755, 0.05, 0.855, 0.06)\":\"Ease-in Quintic. Based on power of five.\",\"cubic-bezier(0.86, 0, 0.07, 1)\":\"Ease-in-out Quintic. Based on power of five.\",\"cubic-bezier(0.23, 1, 0.320, 1)\":\"Ease-out Quintic. Based on power of five.\"},t.basicShapeFunctions={\"circle()\":\"Defines a circle.\",\"ellipse()\":\"Defines an ellipse.\",\"inset()\":\"Defines an inset rectangle.\",\"polygon()\":\"Defines a polygon.\"},t.units={length:[\"em\",\"rem\",\"ex\",\"px\",\"cm\",\"mm\",\"in\",\"pt\",\"pc\",\"ch\",\"vw\",\"vh\",\"vmin\",\"vmax\"],angle:[\"deg\",\"rad\",\"grad\",\"turn\"],time:[\"ms\",\"s\"],frequency:[\"Hz\",\"kHz\"],resolution:[\"dpi\",\"dpcm\",\"dppx\"],percentage:[\"%\",\"fr\"]},t.html5Tags=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"const\",\"video\",\"wbr\"],t.svgElements=[\"circle\",\"clipPath\",\"cursor\",\"defs\",\"desc\",\"ellipse\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\",\"filter\",\"foreignObject\",\"g\",\"hatch\",\"hatchpath\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"mesh\",\"meshpatch\",\"meshrow\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"set\",\"solidcolor\",\"stop\",\"svg\",\"switch\",\"symbol\",\"text\",\"textPath\",\"tspan\",\"use\",\"view\"],t.pageBoxDirectives=[\"@bottom-center\",\"@bottom-left\",\"@bottom-left-corner\",\"@bottom-right\",\"@bottom-right-corner\",\"@left-bottom\",\"@left-middle\",\"@left-top\",\"@right-bottom\",\"@right-middle\",\"@right-top\",\"@top-center\",\"@top-left\",\"@top-left-corner\",\"@top-right\",\"@top-right-corner\"]})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/facts\",[\"require\",\"exports\",\"../data/webCustomData\",\"./dataManager\",\"./dataProvider\",\"./entry\",\"./colors\",\"./builtinData\",\"./dataProvider\",\"./dataManager\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var r=e(\"../data/webCustomData\"),i=e(\"./dataManager\"),o=e(\"./dataProvider\");n(e(\"./entry\")),n(e(\"./colors\")),n(e(\"./builtinData\")),n(e(\"./dataProvider\")),n(e(\"./dataManager\")),t.cssDataManager=new i.CSSDataManager([new o.CSSDataProvider(r.cssData)])}));var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssParser\",[\"require\",\"exports\",\"./cssScanner\",\"./cssNodes\",\"./cssErrors\",\"../languageFacts/facts\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=e(\"./cssNodes\"),i=e(\"./cssErrors\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/objects\"),a=function(){function e(e){void 0===e&&(e=new n.Scanner),this.keyframeRegex=/^@(\\-(webkit|ms|moz|o)\\-)?keyframes$/i,this.scanner=e,this.token={type:n.TokenType.EOF,offset:-1,len:0,text:\"\"},this.prevToken=void 0}return e.prototype.peekIdent=function(e){return n.TokenType.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekKeyword=function(e){return n.TokenType.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekDelim=function(e){return n.TokenType.Delim===this.token.type&&e===this.token.text},e.prototype.peek=function(e){return e===this.token.type},e.prototype.peekRegExp=function(e,t){return e===this.token.type&&t.test(this.token.text)},e.prototype.hasWhitespace=function(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset},e.prototype.consumeToken=function(){this.prevToken=this.token,this.token=this.scanner.scan()},e.prototype.mark=function(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}},e.prototype.restoreAtMark=function(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)},e.prototype.try=function(e){var t=this.mark(),n=e();return n||(this.restoreAtMark(t),null)},e.prototype.acceptOneKeyword=function(e){if(n.TokenType.AtKeyword===this.token.type)for(var t=0,r=e;t<r.length;t++){var i=r[t];if(i.length===this.token.text.length&&i===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1},e.prototype.accept=function(e){return e===this.token.type&&(this.consumeToken(),!0)},e.prototype.acceptIdent=function(e){return!!this.peekIdent(e)&&(this.consumeToken(),!0)},e.prototype.acceptKeyword=function(e){return!!this.peekKeyword(e)&&(this.consumeToken(),!0)},e.prototype.acceptDelim=function(e){return!!this.peekDelim(e)&&(this.consumeToken(),!0)},e.prototype.acceptRegexp=function(e){return!!e.test(this.token.text)&&(this.consumeToken(),!0)},e.prototype._parseRegexp=function(e){var t=this.createNode(r.NodeType.Identifier);do{}while(this.acceptRegexp(e));return this.finish(t)},e.prototype.acceptUnquotedString=function(){var e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);var t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)},e.prototype.resync=function(e,t){for(;;){if(e&&-1!==e.indexOf(this.token.type))return this.consumeToken(),!0;if(t&&-1!==t.indexOf(this.token.type))return!0;if(this.token.type===n.TokenType.EOF)return!1;this.token=this.scanner.scan()}},e.prototype.createNode=function(e){return new r.Node(this.token.offset,this.token.len,e)},e.prototype.create=function(e){return new e(this.token.offset,this.token.len)},e.prototype.finish=function(e,t,n,i){if(!(e instanceof r.Nodelist)&&(t&&this.markError(e,t,n,i),this.prevToken)){var o=this.prevToken.offset+this.prevToken.len;e.length=o>e.offset?o-e.offset:0}return e},e.prototype.markError=function(e,t,n,i){this.token!==this.lastErrorToken&&(e.addIssue(new r.Marker(e,t,r.Level.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||i)&&this.resync(n,i)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error(\"Underlying model has changed, AST is no longer valid\");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(r.Stylesheet);e.addChild(this._parseStylesheetStart()););var t=!1;do{var o=!1;do{o=!1;var s=this._parseStylesheetStatement();for(s&&(e.addChild(s),o=!0,t=!1,this.peek(n.TokenType.EOF)||!this._needsSemicolonAfter(s)||this.accept(n.TokenType.SemiColon)||this.markError(e,i.ParseError.SemiColonExpected));this.accept(n.TokenType.SemiColon)||this.accept(n.TokenType.CDO)||this.accept(n.TokenType.CDC);)o=!0,t=!1}while(o);if(this.peek(n.TokenType.EOF))break;t||(this.peek(n.TokenType.AtKeyword)?this.markError(e,i.ParseError.UnknownAtRule):this.markError(e,i.ParseError.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(n.TokenType.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(n.TokenType.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(n.TokenType.Comma)&&this._parseSelector(e););if(this.accept(n.TokenType.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(r.RuleSet),o=t.getSelectors();if(!o.addChild(this._parseSelector(e)))return null;for(;this.accept(n.TokenType.Comma);)if(!o.addChild(this._parseSelector(e)))return this.finish(t,i.ParseError.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclaration=function(){return this._parseAtApply()||this._tryParseCustomPropertyDeclaration()||this._parseDeclaration()||this._parseUnknownAtRule()},e.prototype._parseAtApply=function(){if(!this.peekKeyword(\"@apply\"))return null;var e=this.create(r.AtApplyRule);return this.consumeToken(),e.setIdentifier(this._parseIdent([r.ReferenceType.Variable]))?this.finish(e):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case r.NodeType.Keyframe:case r.NodeType.ViewPort:case r.NodeType.Media:case r.NodeType.Ruleset:case r.NodeType.Namespace:case r.NodeType.If:case r.NodeType.For:case r.NodeType.Each:case r.NodeType.While:case r.NodeType.MixinDeclaration:case r.NodeType.FunctionDeclaration:return!1;case r.NodeType.ExtendsReference:case r.NodeType.MixinContent:case r.NodeType.ReturnStatement:case r.NodeType.MediaQuery:case r.NodeType.Debug:case r.NodeType.Import:case r.NodeType.AtApplyRule:case r.NodeType.CustomPropertyDeclaration:return!0;case r.NodeType.VariableDeclaration:return e.needsSemicolon;case r.NodeType.MixinReference:return!e.getContent();case r.NodeType.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(r.Declarations);if(!this.accept(n.TokenType.CurlyL))return null;for(var o=e();t.addChild(o)&&!this.peek(n.TokenType.CurlyR);){if(this._needsSemicolonAfter(o)&&!this.accept(n.TokenType.SemiColon))return this.finish(t,i.ParseError.SemiColonExpected,[n.TokenType.SemiColon,n.TokenType.CurlyR]);for(o&&this.prevToken&&this.prevToken.type===n.TokenType.SemiColon&&(o.semicolonPosition=this.prevToken.offset);this.accept(n.TokenType.SemiColon););o=e()}return this.accept(n.TokenType.CurlyR)?this.finish(t):this.finish(t,i.ParseError.RightCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,i.ParseError.LeftCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(r.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this.create(r.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon)){var o=e?__spreadArrays(e,[n.TokenType.SemiColon]):[n.TokenType.SemiColon];return this.finish(t,i.ParseError.ColonExpected,[n.TokenType.Colon],o)}return this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseExpr())?(t.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):this.finish(t,i.ParseError.PropertyValueExpected)},e.prototype._tryParseCustomPropertyDeclaration=function(){if(!this.peekRegExp(n.TokenType.Ident,/^--/))return null;var e=this.create(r.CustomPropertyDeclaration);if(!e.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon))return this.finish(e,i.ParseError.ColonExpected,[n.TokenType.Colon]);this.prevToken&&(e.colonPosition=this.prevToken.offset);var t=this.mark();if(this.peek(n.TokenType.CurlyL)){var o=this.create(r.CustomPropertySet),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(o.setDeclarations(a)&&!a.isErroneous(!0)&&(o.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)))return this.finish(o),e.setPropertySet(o),e.semicolonPosition=this.token.offset,this.finish(e);this.restoreAtMark(t)}var l=this._parseExpr();return l&&!l.isErroneous(!0)&&(this._parsePrio(),this.peek(n.TokenType.SemiColon))?(e.setValue(l),e.semicolonPosition=this.token.offset,this.finish(e)):(this.restoreAtMark(t),e.addChild(this._parseCustomPropertyValue()),e.addChild(this._parsePrio()),s.isDefined(e.colonPosition)&&this.token.offset===e.colonPosition+1?this.finish(e,i.ParseError.PropertyValueExpected):this.finish(e))},e.prototype._parseCustomPropertyValue=function(){var e=this.create(r.Node),t=function(){return 0===o&&0===s&&0===a},o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:case n.TokenType.Exclamation:if(t())break e;break;case n.TokenType.CurlyL:o++;break;case n.TokenType.CurlyR:if(--o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected);break;case n.TokenType.BadString:break e;case n.TokenType.EOF:var l=i.ParseError.RightCurlyExpected;return a>0?l=i.ParseError.RightSquareBracketExpected:s>0&&(l=i.ParseError.RightParenthesisExpected),this.finish(e,l)}this.consumeToken()}return this.finish(e)},e.prototype._tryToParseDeclaration=function(){var e=this.mark();return this._parseProperty()&&this.accept(n.TokenType.Colon)?(this.restoreAtMark(e),this._parseDeclaration()):(this.restoreAtMark(e),null)},e.prototype._parseProperty=function(){var e=this.create(r.Property),t=this.mark();return(this.acceptDelim(\"*\")||this.acceptDelim(\"_\"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(n.TokenType.Charset))return null;var e=this.create(r.Node);return this.consumeToken(),this.accept(n.TokenType.String)?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(r.Import);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(n.TokenType.SemiColon)||this.peek(n.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,i.ParseError.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword(\"@namespace\"))return null;var e=this.create(r.Namespace);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.URIExpected,[n.TokenType.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword(\"@font-face\"))return null;var e=this.create(r.FontFace);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword(\"@-ms-viewport\")&&!this.peekKeyword(\"@-o-viewport\")&&!this.peekKeyword(\"@viewport\"))return null;var e=this.create(r.ViewPort);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(n.TokenType.AtKeyword,this.keyframeRegex))return null;var e=this.create(r.Keyframe),t=this.create(r.Node);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches(\"@-ms-keyframes\")&&this.markError(t,i.ParseError.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,i.ParseError.IdentifierExpected,[n.TokenType.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([r.ReferenceType.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector);if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.finish(e,i.ParseError.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.restoreAtMark(t),null;return this.peek(n.TokenType.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@supports\"))return null;var t=this.create(r.Supports);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(r.SupportsCondition);if(this.acceptIdent(\"not\"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(n.TokenType.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(r.SupportsCondition);if(this.accept(n.TokenType.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration())||this._parseSupportsCondition()?this.accept(n.TokenType.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,i.ParseError.RightParenthesisExpected,[n.TokenType.ParenthesisR],[]):this.finish(e,i.ParseError.ConditionExpected);if(this.peek(n.TokenType.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){for(var o=1;this.token.type!==n.TokenType.EOF&&0!==o;)this.token.type===n.TokenType.ParenthesisL?o++:this.token.type===n.TokenType.ParenthesisR&&o--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,i.ParseError.LeftParenthesisExpected,[],[n.TokenType.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@media\"))return null;var t=this.create(r.Media);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,i.ParseError.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(r.Medialist);if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(r.MediaQuery),o=!0,s=!1;if(!this.peek(n.TokenType.ParenthesisL)){if(this.acceptIdent(\"only\")||this.acceptIdent(\"not\"),!t.addChild(this._parseIdent()))return null;s=!0,o=this.acceptIdent(\"and\")}for(;o;)if(t.addChild(this._parseMediaContentStart()))o=this.acceptIdent(\"and\");else{if(!this.accept(n.TokenType.ParenthesisL))return s?this.finish(t,i.ParseError.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,i.ParseError.IdentifierExpected,[],e);if(this.accept(n.TokenType.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,i.ParseError.TermExpected,[],e);if(!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected,[],e);o=this.acceptIdent(\"and\")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(r.Node);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword(\"@page\"))return null;var e=this.create(r.Page);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,i.ParseError.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.PageBoxMarginBox);return this.acceptOneKeyword(o.pageBoxDirectives)||this.markError(e,i.ParseError.UnknownAtRule,[],[n.TokenType.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(n.TokenType.Ident)&&!this.peek(n.TokenType.Colon))return null;var e=this.create(r.Node);return e.addChild(this._parseIdent()),this.accept(n.TokenType.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword(\"@-moz-document\"))return null;var e=this.create(r.Document);return this.consumeToken(),this.resync([],[n.TokenType.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.UnknownAtRule);e.addChild(this._parseUnknownAtRuleName());var t=0,o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:if(0===o&&0===s&&0===a)break e;break;case n.TokenType.EOF:return o>0?this.finish(e,i.ParseError.RightCurlyExpected):a>0?this.finish(e,i.ParseError.RightSquareBracketExpected):s>0?this.finish(e,i.ParseError.RightParenthesisExpected):this.finish(e);case n.TokenType.CurlyL:t++,o++;break;case n.TokenType.CurlyR:if(o--,t>0&&0===o){if(this.consumeToken(),a>0)return this.finish(e,i.ParseError.RightSquareBracketExpected);if(s>0)return this.finish(e,i.ParseError.RightParenthesisExpected);break e}if(o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(r.Node);return this.accept(n.TokenType.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim(\"/\")||this.peekDelim(\"*\")||this.peekDelim(\"+\")||this.peekDelim(\"-\")||this.peek(n.TokenType.Dashmatch)||this.peek(n.TokenType.Includes)||this.peek(n.TokenType.SubstringOperator)||this.peek(n.TokenType.PrefixOperator)||this.peek(n.TokenType.SuffixOperator)||this.peekDelim(\"=\")){var e=this.createNode(r.NodeType.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim(\"+\")&&!this.peekDelim(\"-\"))return null;var e=this.create(r.Node);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(\">\")){var e=this.create(r.Node);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(\">\")){if(!this.hasWhitespace()&&this.acceptDelim(\">\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=r.NodeType.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim(\"+\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim(\"~\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim(\"/\")){e=this.create(r.Node);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent(\"deep\")&&!this.hasWhitespace()&&this.acceptDelim(\"/\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(r.SimpleSelector),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(n.TokenType.Hash)&&!this.peekDelim(\"#\"))return null;var e=this.createNode(r.NodeType.IdentifierSelector);if(this.acceptDelim(\"#\")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,i.ParseError.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim(\".\"))return null;var e=this.createNode(r.NodeType.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(r.NodeType.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim(\"*\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(r.NodeType.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim(\"*\"),this.acceptDelim(\"|\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.create(r.AttributeSelector);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent(\"i\")),this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(r.Node);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(n.TokenType.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(n.TokenType.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(n.TokenType.Colon))return null;var e=this.mark(),t=this.createNode(r.NodeType.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(n.TokenType.Colon)&&this.hasWhitespace()&&this.markError(t,i.ParseError.IdentifierExpected),t.addChild(this._parseIdent())||this.markError(t,i.ParseError.IdentifierExpected),t)},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(n.TokenType.Exclamation))return null;var e=this.createNode(r.NodeType.Prio);return this.accept(n.TokenType.Exclamation)&&this.acceptIdent(\"important\")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(r.Expression);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(n.TokenType.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.createNode(r.NodeType.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(r.BinaryExpression);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,i.ParseError.TermExpected);n=this.finish(n);var o=this._parseOperator();return o&&(n=this._parseBinaryExpr(n,o)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(r.Term);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseURILiteral())||e.setExpression(this._parseFunction())||e.setExpression(this._parseIdent())||e.setExpression(this._parseStringLiteral())||e.setExpression(this._parseNumeric())||e.setExpression(this._parseHexColor())||e.setExpression(this._parseOperation())||e.setExpression(this._parseNamedLine())?this.finish(e):null},e.prototype._parseOperation=function(){if(!this.peek(n.TokenType.ParenthesisL))return null;var e=this.create(r.Node);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(n.TokenType.ParenthesisR)?this.finish(e):this.finish(e,i.ParseError.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(n.TokenType.Num)||this.peek(n.TokenType.Percentage)||this.peek(n.TokenType.Resolution)||this.peek(n.TokenType.Length)||this.peek(n.TokenType.EMS)||this.peek(n.TokenType.EXS)||this.peek(n.TokenType.Angle)||this.peek(n.TokenType.Time)||this.peek(n.TokenType.Dimension)||this.peek(n.TokenType.Freq)){var e=this.create(r.NumericValue);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(n.TokenType.String)&&!this.peek(n.TokenType.BadString))return null;var e=this.createNode(r.NodeType.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(n.TokenType.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(r.NodeType.URILiteral);return this.accept(n.TokenType.Ident),this.hasWhitespace()||!this.peek(n.TokenType.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(r.Node);return this.accept(n.TokenType.String)||this.accept(n.TokenType.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(n.TokenType.Ident))return null;var t=this.create(r.Identifier);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(n.TokenType.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(r.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(n.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(n.TokenType.Comma)&&!this.peek(n.TokenType.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,i.ParseError.ExpressionExpected);return this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(n.TokenType.Ident))return null;var e=this.create(r.Identifier);if(e.referenceTypes=[r.ReferenceType.Function],this.acceptIdent(\"progid\")){if(this.accept(n.TokenType.Colon))for(;this.accept(n.TokenType.Ident)&&this.acceptDelim(\".\"););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(r.FunctionArgument);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(n.TokenType.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(r.HexColorValue);return this.consumeToken(),this.finish(e)}return null},e}();t.Parser=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e,t){return-1!==e.indexOf(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.includes=n,t.union=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=[],i=0,o=e;i<o.length;i++)for(var s=o[i],a=0,l=s;a<l.length;a++){var c=l[a];n(r,c)||r.push(c)}return r}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssSymbolScope\",[\"require\",\"exports\",\"./cssNodes\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNodes\"),r=e(\"../utils/arrays\"),i=function(){function e(e,t){this.offset=e,this.length=t,this.symbols=[],this.parent=null,this.children=[]}return e.prototype.addChild=function(e){this.children.push(e),e.setParent(this)},e.prototype.setParent=function(e){this.parent=e},e.prototype.findScope=function(e,t){return void 0===t&&(t=0),this.offset<=e&&this.offset+this.length>e+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,i=r.findFirst(this.children,(function(e){return e.offset>n}));if(0===i)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n<this.symbols.length;n++){var r=this.symbols[n];if(r.name===e&&r.type===t)return r}return null},e.prototype.getSymbols=function(){return this.symbols},e}();t.Scope=i;var o=function(e){function t(){return e.call(this,0,Number.MAX_VALUE)||this}return __extends(t,e),t}(i);t.GlobalScope=o;var s=function(e,t,n,r){this.name=e,this.value=t,this.node=n,this.type=r};t.Symbol=s;var a=function(){function e(e){this.scope=e}return e.prototype.addSymbol=function(e,t,n,r){if(-1!==e.offset){var i=this.scope.findScope(e.offset,e.length);i&&i.addSymbol(new s(t,n,e,r))}},e.prototype.addScope=function(e){if(-1!==e.offset){var t=this.scope.findScope(e.offset,e.length);if(t&&(t.offset!==e.offset||t.length!==e.length)){var n=new i(e.offset,e.length);return t.addChild(n),n}return t}return null},e.prototype.addSymbolToChildScope=function(e,t,n,r,i){if(e&&-1!==e.offset){var o=this.addScope(e);o&&o.addSymbol(new s(n,r,t,i))}},e.prototype.visitNode=function(e){switch(e.type){case n.NodeType.Keyframe:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Keyframe),!0;case n.NodeType.CustomPropertyDeclaration:return this.visitCustomPropertyDeclarationNode(e);case n.NodeType.VariableDeclaration:return this.visitVariableDeclarationNode(e);case n.NodeType.Ruleset:return this.visitRuleSet(e);case n.NodeType.MixinDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Mixin),!0;case n.NodeType.FunctionDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Function),!0;case n.NodeType.FunctionParameter:return this.visitFunctionParameterNode(e);case n.NodeType.Declarations:return this.addScope(e),!0;case n.NodeType.For:var t=e,r=t.getDeclarations();return r&&t.variable&&this.addSymbolToChildScope(r,t.variable,t.variable.getName(),void 0,n.ReferenceType.Variable),!0;case n.NodeType.Each:var i=e,o=i.getDeclarations();if(o)for(var s=0,a=i.getVariables().getChildren();s<a.length;s++){var l=a[s];this.addSymbolToChildScope(o,l,l.getName(),void 0,n.ReferenceType.Variable)}return!0}return!0},e.prototype.visitRuleSet=function(e){var t=this.scope.findScope(e.offset,e.length);if(t)for(var r=0,i=e.getSelectors().getChildren();r<i.length;r++){var o=i[r];o instanceof n.Selector&&1===o.getChildren().length&&t.addSymbol(new s(o.getChild(0).getText(),void 0,o,n.ReferenceType.Rule))}return!0},e.prototype.visitVariableDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():void 0;return this.addSymbol(e,e.getName(),t,n.ReferenceType.Variable),!0},e.prototype.visitFunctionParameterNode=function(e){var t=e.getParent().getDeclarations();if(t){var r=e.getDefaultValue(),i=r?r.getText():void 0;this.addSymbolToChildScope(t,e,e.getName(),i,n.ReferenceType.Variable)}return!0},e.prototype.visitCustomPropertyDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():\"\";return this.addCSSVariable(e.getProperty(),e.getProperty().getName(),t,n.ReferenceType.Variable),!0},e.prototype.addCSSVariable=function(e,t,n,r){-1!==e.offset&&this.scope.addSymbol(new s(t,n,e,r))},e}();t.ScopeBuilder=a;var l=function(){function e(e){this.global=new o,e.acceptVisitor(new a(this.global))}return e.prototype.findSymbolsAtOffset=function(e,t){for(var n=this.global.findScope(e,0),r=[],i={};n;){for(var o=n.getSymbols(),s=0;s<o.length;s++){var a=o[s];a.type!==t||i[a.name]||(r.push(a),i[a.name]=!0)}n=n.parent}return r},e.prototype.internalFindSymbol=function(e,t){var r=e;if(e.parent instanceof n.FunctionParameter&&e.parent.getParent()instanceof n.BodyDeclaration&&(r=e.parent.getParent().getDeclarations()),e.parent instanceof n.FunctionArgument&&e.parent.getParent()instanceof n.Function){var i=e.parent.getParent().getIdentifier();if(i){var o=this.internalFindSymbol(i,[n.ReferenceType.Function]);o&&(r=o.node.getDeclarations())}}if(!r)return null;for(var s=e.getText(),a=this.global.findScope(r.offset,r.length);a;){for(var l=0;l<t.length;l++){var c=t[l],d=a.getSymbol(s,c);if(d)return d}a=a.parent}return null},e.prototype.evaluateReferenceTypes=function(e){if(e instanceof n.Identifier){var t=e.referenceTypes;if(t)return t;if(e.isCustomProperty)return[n.ReferenceType.Variable];var r=n.getParentDeclaration(e);if(r){var i=r.getNonPrefixedPropertyName();if((\"animation\"===i||\"animation-name\"===i)&&r.getValue()&&r.getValue().offset===e.offset)return[n.ReferenceType.Keyframe]}}else if(e instanceof n.Variable)return[n.ReferenceType.Variable];return e.findAParent(n.NodeType.Selector,n.NodeType.ExtendsReference)?[n.ReferenceType.Rule]:null},e.prototype.findSymbolFromNode=function(e){if(!e)return null;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();var t=this.evaluateReferenceTypes(e);return t?this.internalFindSymbol(e,t):null},e.prototype.matchesSymbol=function(e,t){if(!e)return!1;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();if(!e.matches(t.name))return!1;var r=this.evaluateReferenceTypes(e);return!(!r||-1===r.indexOf(t.type))&&this.internalFindSymbol(e,r)===t},e.prototype.findSymbol=function(e,t,n){for(var r=this.global.findScope(n);r;){var i=r.getSymbol(e,t);if(i)return i;r=r.parent}return null},e}();t.Symbols=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.difference=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;i<t.length+1;++i)a.push(0);for(i=0;i<e.length+1;++i)s.push(a);for(i=1;i<e.length+1;++i)for(o=1;o<t.length+1;++o)e[i-1]===t[o-1]?s[i][o]=s[i-1][o-1]+1:s[i][o]=Math.max(s[i-1][o],s[i][o-1]);return s[e.length][t.length]-Math.sqrt(r)},t.getLimitedString=function(e,t){return void 0===t&&(t=!0),e?e.length<140?e:e.slice(0,140)+(t?\"…\":\"\"):\"\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,i,o,s,a,l,c,d,p,h,m,u;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.number(t.line)&&x.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,i){if(x.number(e)&&x.number(t)&&x.number(r)&&x.number(i))return{start:n.create(e,t),end:n.create(r,i)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+i+\"]\")},e.is=function(e){var t=e;return x.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.string(t.uri)||x.undefined(t.uri))}}(i=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.targetRange)&&x.string(t.targetUri)&&(r.is(t.targetSelectionRange)||x.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||x.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return x.number(t.red)&&x.number(t.green)&&x.number(t.blue)&&x.number(t.alpha)}}(o=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&o.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return x.string(t.label)&&(x.undefined(t.textEdit)||c.is(t))&&(x.undefined(t.additionalTextEdits)||x.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return x.defined(n)&&(o.startCharacter=n),x.defined(r)&&(o.endCharacter=r),x.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return x.number(t.startLine)&&x.number(t.startLine)&&(x.undefined(t.startCharacter)||x.number(t.startCharacter))&&(x.undefined(t.endCharacter)||x.number(t.endCharacter))&&(x.undefined(t.kind)||x.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return x.defined(t)&&i.is(t.location)&&x.string(t.message)}}(s=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,i,o){var s={range:e,message:t};return x.defined(n)&&(s.severity=n),x.defined(r)&&(s.code=r),x.defined(i)&&(s.source=i),x.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&x.string(t.message)&&(x.number(t.severity)||x.undefined(t.severity))&&(x.number(t.code)||x.string(t.code)||x.undefined(t.code))&&(x.string(t.source)||x.undefined(t.source))&&(x.undefined(t.relatedInformation)||x.typedArray(t.relatedInformation,s.is))}}(a=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return x.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.title)&&x.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.string(t.newText)&&r.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return x.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(p=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&x.string(t.oldUri)&&x.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(h=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||x.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||x.boolean(t.options.ignoreIfNotExists)))}}(m=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return x.string(e.kind)?p.is(e)||h.is(e)||m.is(e):d.is(e)})))}}(u=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,y,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new v(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new v(i),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new v(i),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(m.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&(null===t.version||x.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&x.string(t.languageId)&&x.number(t.version)&&x.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return x.objectLiteral(e)&&g.is(t.kind)&&x.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return x.string(t)||x.objectLiteral(t)&&x.string(t.language)&&x.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&x.objectLiteral(t)&&(b.is(t.contents)||y.is(t.contents)||x.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return x.defined(t)&&(i.documentation=t),x.defined(n)?i.parameters=n:i.parameters=[],i}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return x.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,i,o){var s={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(s.children=o),s},e.is=function(e){var t=e;return t&&x.string(t.name)&&x.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||x.string(t.detail))&&(void 0===t.deprecated||x.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return x.defined(t)&&x.typedArray(t.diagnostics,a.is)&&(void 0===t.only||x.typedArray(t.only,x.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return l.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&x.string(t.title)&&(void 0===t.diagnostics||x.typedArray(t.diagnostics,a.is))&&(void 0===t.kind||x.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||x.boolean(t.isPreferred))&&(void 0===t.edit||u.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return x.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return x.defined(t)&&x.number(t.tabSize)&&x.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.target)||x.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new S(e,t,n,r)},e.is=function(e){var t=e;return!!(x.defined(t)&&x.string(t.uri)&&(x.undefined(t.languageId)||x.string(t.languageId))&&x.number(t.lineCount)&&x.func(t.getText)&&x.func(t.positionAt)&&x.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,o=r.length-1;o>=0;o--){var s=r[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,a)+s.newText+n.substring(l,n.length),i=a}return n}}(t.TextDocument||(t.TextDocument={}));var x,S=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n=\"\\r\"===i||\"\\n\"===i,\"\\r\"===i&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(0===i)return n.create(0,e);for(;r<i;){var o=Math.floor((r+i)/2);t[o]>e?i=o:r=o+1}var s=r-1;return n.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(x||(x={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var o=0,s=t;o<s.length;o++){var a=s[o];if(e.isIncremental(a)){var l=i(a.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+a.text+this._content.substring(d,this._content.length);var p=Math.max(l.start.line,0),h=Math.max(l.end.line,0),m=this._lineOffsets,u=r(a.text,!1,c);if(h-p===u.length)for(var f=0,g=u.length;f<g;f++)m[f+p+1]=u[f];else u.length<1e4?m.splice.apply(m,[p+1,h-p].concat(u)):this._lineOffsets=m=m.slice(0,p+1).concat(u,m.slice(h+1));var b=a.text.length-(d-c);if(0!==b)for(f=p+1+u.length,g=m.length;f<g;f++)m[f]=m[f]+b}else{if(!e.isFull(a))throw new Error(\"Unknown change event received\");this._content=a.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function i(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function o(e){var t=i(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,i){return new n(e,t,r,i)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t.map(o),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,s=r.length-1;s>=0;s--){var a=r[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+a.newText+n.substring(c,n.length),i=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.File=1]=\"File\",e[e.Directory=2]=\"Directory\",e[e.SymbolicLink=64]=\"SymbolicLink\"}(t.FileType||(t.FileType={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCompletion\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\",\"../cssLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"../parser/cssNodes\"),i=e(\"../parser/cssSymbolScope\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/strings\"),a=e(\"../cssLanguageTypes\"),l=e(\"vscode-nls\"),c=e(\"../utils/objects\"),d=l.loadMessageBundle(),p=a.InsertTextFormat.Snippet;!function(e){e.Enums=\" \",e.Normal=\"d\",e.VendorPrefixed=\"x\",e.Term=\"y\",e.Variable=\"z\"}(n||(n={}));var h=function(){function e(e,t){void 0===e&&(e=null),this.variablePrefix=e,this.clientCapabilities=t,this.completionParticipants=[],this.valueTypes=[r.NodeType.Identifier,r.NodeType.Value,r.NodeType.StringLiteral,r.NodeType.URILiteral,r.NodeType.NumericValue,r.NodeType.HexColorValue,r.NodeType.VariableName,r.NodeType.Prio]}return e.prototype.configure=function(e){this.settings=e},e.prototype.getSymbolContext=function(){return this.symbolContext||(this.symbolContext=new i.Symbols(this.styleSheet)),this.symbolContext},e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n){this.offset=e.offsetAt(t),this.position=t,this.currentWord=function(e,t){var n=t-1,r=e.getText();for(;n>=0&&-1===' \\t\\n\\r\":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n;try{var i={isIncomplete:!1,items:[]};this.nodePath=r.getNodePath(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof r.Property)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof r.Expression)s.parent instanceof r.Interpolation?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof r.SimpleSelector){var l=s.findAParent(r.NodeType.ExtendsReference,r.NodeType.Ruleset);if(l)if(l.type===r.NodeType.ExtendsReference)this.getCompletionsForExtendsReference(l,s,i);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),i)}}else if(s instanceof r.FunctionArgument)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof r.Declarations)this.getCompletionsForDeclarations(s,i);else if(s instanceof r.VariableDeclaration)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof r.RuleSet)this.getCompletionsForRuleSet(s,i);else if(s instanceof r.Interpolation)this.getCompletionsForInterpolation(s,i);else if(s instanceof r.FunctionDeclaration)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof r.MixinReference)this.getCompletionsForMixinReference(s,i);else if(s instanceof r.Function)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof r.Supports)this.getCompletionsForSupports(s,i);else if(s instanceof r.SupportsCondition)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof r.ExtendsReference)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===r.NodeType.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==r.NodeType.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===r.NodeType.Import},e.prototype.finalize=function(e){return e.items.some((function(e){return!!e.sortText||\"-\"===e.label[0]}))&&e.items.forEach((function(e,t){e.sortText?\"-\"===e.label[0]?e.sortText+=n.VendorPrefixed+\"_\"+u(t):e.sortText+=n.Normal+\"_\"+u(t):\"-\"===e.label[0]?e.sortText=n.VendorPrefixed+\"_\"+u(t):e.sortText=n.Normal+\"_\"+u(t)})),e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.nodePath.length-1;n>=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,l=this.isCompletePropertyWithSemicolonEnabled;return o.cssDataManager.getProperties().forEach((function(d){var p,h,u=!1;e?(p=r.getCompletionRange(e.getProperty()),h=d.name,c.isDefined(e.colonPosition)||(h+=\": \",u=!0)):(p=r.getCompletionRange(null),h=d.name+\": \",u=!0),!e&&l&&(h+=\"$0;\"),e&&!e.semicolonPosition&&l&&r.offset>=r.textDocument.offsetAt(p.end)&&(h+=\"$0;\");var f={label:d.name,documentation:o.getEntryDescription(d,r.doesSupportMarkdown()),tags:m(d)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(p,h),insertTextFormat:a.InsertTextFormat.Snippet,kind:a.CompletionItemKind.Property};d.restrictions||(u=!1),i&&u&&(f.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),s.startsWith(d.name,\"-\")&&(f.sortText=n.VendorPrefixed),t.items.push(f)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,\"isTriggerPropertyValueCompletionEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.triggerPropertyValueCompletion||this.settings.completion.triggerPropertyValueCompletion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCompletePropertyWithSemicolonEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.completePropertyWithSemicolon||this.settings.completion.completePropertyWithSemicolon},enumerable:!0,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,i=e.getFullPropertyName(),s=o.cssDataManager.getProperty(i),l=e.getValue()||null;l&&l.hasChildren();)l=l.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:i,propertyValue:n.currentWord,range:n.getCompletionRange(l)})})),s){if(s.restrictions)for(var c=0,d=s.restrictions;c<d.length;c++){switch(d[c]){case\"color\":this.getColorProposals(s,l,t);break;case\"position\":this.getPositionProposals(s,l,t);break;case\"repeat\":this.getRepeatStyleProposals(s,l,t);break;case\"line-style\":this.getLineStyleProposals(s,l,t);break;case\"line-width\":this.getLineWidthProposals(s,l,t);break;case\"geometry-box\":this.getGeometryBoxProposals(s,l,t);break;case\"box\":this.getBoxProposals(s,l,t);break;case\"image\":this.getImageProposals(s,l,t);break;case\"timing-function\":this.getTimingFunctionProposals(s,l,t);break;case\"shape\":this.getBasicShapeProposals(s,l,t)}}this.getValueEnumProposals(s,l,t),this.getCSSWideKeywordProposals(s,l,t),this.getUnitProposals(s,l,t)}else for(var p=0,h=function(e,t){var n=t.getFullPropertyName(),i=new f;function o(e){return(e instanceof r.Identifier||e instanceof r.NumericValue||e instanceof r.HexColorValue)&&i.add(e.getText()),!0}return e.accept((function(e){if(e instanceof r.Declaration&&e!==t&&function(e){var t=e.getFullPropertyName();return n===t}(e)){var i=e.getValue();i&&i.accept(o)}return!0})),i}(this.styleSheet,e).getEntries();p<h.length;p++){var m=h[p];t.items.push({label:m,textEdit:a.TextEdit.replace(this.getCompletionRange(l),m),kind:a.CompletionItemKind.Value})}return this.getVariableProposals(l,t),this.getTermProposals(s,l,t),t},e.prototype.getValueEnumProposals=function(e,t,r){if(e.values)for(var i=0,l=e.values;i<l.length;i++){var c=l[i],d=c.name,h=void 0;if(s.endsWith(d,\")\")){var u=d.lastIndexOf(\"(\");-1!==u&&(d=d.substr(0,u)+\"($1)\",h=p)}var f={label:c.name,documentation:o.getEntryDescription(c,this.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(this.getCompletionRange(t),d),sortText:n.Enums,kind:a.CompletionItemKind.Value,insertTextFormat:h};r.items.push(f)}return r},e.prototype.getCSSWideKeywordProposals=function(e,t,n){for(var r in o.cssWideKeywords)n.items.push({label:r,documentation:o.cssWideKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getCompletionsForInterpolation=function(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable);i<o.length;i++){var l=o[i],c=s.startsWith(l.name,\"--\")?\"var(\"+l.name+\")\":l.name,p={label:l.name,documentation:l.value?s.getLimitedString(l.value):l.value,textEdit:a.TextEdit.replace(this.getCompletionRange(e),c),kind:a.CompletionItemKind.Variable,sortText:n.Variable};if(\"string\"==typeof p.documentation&&y(p.documentation)&&(p.kind=a.CompletionItemKind.Color),l.node.type===r.NodeType.FunctionParameter){var h=l.node.getParent();h.type===r.NodeType.MixinDeclaration&&(p.detail=d(\"completion.argument\",\"argument from '{0}'\",h.getName()))}t.items.push(p)}return t},e.prototype.getVariableProposalsForCSSVarFunction=function(e){for(var t=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable),n=0,i=t=t.filter((function(e){return s.startsWith(e.name,\"--\")}));n<i.length;n++){var o=i[n],l={label:o.name,documentation:o.value?s.getLimitedString(o.value):o.value,textEdit:a.TextEdit.replace(this.getCompletionRange(null),o.name),kind:a.CompletionItemKind.Variable};\"string\"==typeof l.documentation&&y(l.documentation)&&(l.kind=a.CompletionItemKind.Color),e.items.push(l)}return e},e.prototype.getUnitProposals=function(e,t,n){var i=\"0\";if(this.currentWord.length>0){var s=this.currentWord.match(/^-?\\d[\\.\\d+]*/);s&&(i=s[0],n.isIncomplete=i.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===r.NodeType.Term&&(t=t.getParent()),e.restrictions)for(var l=0,c=e.restrictions;l<c.length;l++){var d=c[l],p=o.units[d];if(p)for(var h=0,m=p;h<m.length;h++){var u=i+m[h];n.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(t),u),kind:a.CompletionItemKind.Unit})}}return n},e.prototype.getCompletionRange=function(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){var t=-1!==e.end?this.textDocument.positionAt(e.end):this.position,n=this.textDocument.positionAt(e.offset);if(n.line===t.line)return a.Range.create(n,t)}return this.defaultReplaceRange},e.prototype.getColorProposals=function(e,t,n){for(var r in o.colors)n.items.push({label:r,documentation:o.colors[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color});for(var r in o.colorKeywords)n.items.push({label:r,documentation:o.colorKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});var i=new f;this.styleSheet.acceptVisitor(new b(i,this.offset));for(var s=0,l=i.getEntries();s<l.length;s++){r=l[s];n.items.push({label:r,textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color})}for(var c=function(e){var r=1,i=e.func.replace(/\\[?\\$(\\w+)\\]?/g,(function(e,t){return\"${\"+r+++\":\"+t+\"}\"}));n.items.push({label:e.func.substr(0,e.func.indexOf(\"(\")),detail:e.func,documentation:e.desc,textEdit:a.TextEdit.replace(d.getCompletionRange(t),i),insertTextFormat:p,kind:a.CompletionItemKind.Function})},d=this,h=0,m=o.colorFunctions;h<m.length;h++){c(m[h])}return n},e.prototype.getPositionProposals=function(e,t,n){for(var r in o.positionKeywords)n.items.push({label:r,documentation:o.positionKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getRepeatStyleProposals=function(e,t,n){for(var r in o.repeatStyleKeywords)n.items.push({label:r,documentation:o.repeatStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineStyleProposals=function(e,t,n){for(var r in o.lineStyleKeywords)n.items.push({label:r,documentation:o.lineStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineWidthProposals=function(e,t,n){for(var r=0,i=o.lineWidthKeywords;r<i.length;r++){var s=i[r];n.items.push({label:s,textEdit:a.TextEdit.replace(this.getCompletionRange(t),s),kind:a.CompletionItemKind.Value})}return n},e.prototype.getGeometryBoxProposals=function(e,t,n){for(var r in o.geometryBoxKeywords)n.items.push({label:r,documentation:o.geometryBoxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getBoxProposals=function(e,t,n){for(var r in o.boxKeywords)n.items.push({label:r,documentation:o.boxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getImageProposals=function(e,t,n){for(var r in o.imageFunctions){var i=g(r);n.items.push({label:r,documentation:o.imageFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getTimingFunctionProposals=function(e,t,n){for(var r in o.transitionTimingFunctions){var i=g(r);n.items.push({label:r,documentation:o.transitionTimingFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getBasicShapeProposals=function(e,t,n){for(var r in o.basicShapeFunctions){var i=g(r);n.items.push({label:r,documentation:o.basicShapeFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getCompletionsForStylesheet=function(e){var t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof r.RuleSet?this.getCompletionsForRuleSet(t,e):t instanceof r.Supports?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)},e.prototype.getCompletionForTopLevel=function(e){var t=this;return o.cssDataManager.getAtDirectives().forEach((function(n){e.items.push({label:n.name,textEdit:a.TextEdit.replace(t.getCompletionRange(null),n.name),documentation:o.getEntryDescription(n,t.doesSupportMarkdown()),tags:m(n)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Keyword})})),this.getCompletionsForSelector(null,!1,e),e},e.prototype.getCompletionsForRuleSet=function(e,t){var n=e.getDeclarations();return n&&n.endsWith(\"}\")&&this.offset>=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,i){var l=this,c=this.findInNodePath(r.NodeType.PseudoSelector,r.NodeType.IdentifierSelector,r.NodeType.ClassSelector,r.NodeType.ElementNameSelector);if(!c&&this.offset-this.currentWord.length>0&&\":\"===this.textDocument.getText()[this.offset-this.currentWord.length-1]&&(this.currentWord=\":\"+this.currentWord,this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position)),o.cssDataManager.getPseudoClasses().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\":-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),o.cssDataManager.getPseudoElements().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\"::-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),!t){for(var d=0,h=o.html5Tags;d<h.length;d++){var u=h[d];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}for(var f=0,b=o.svgElements;f<b.length;f++){u=b[f];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}}var y={};y[this.currentWord]=!0;var v=this.textDocument.getText();if(this.styleSheet.accept((function(e){if(e.type===r.NodeType.SimpleSelector&&e.length>0){var t=v.substr(e.offset,e.length);return\".\"!==t.charAt(0)||y[t]||(y[t]=!0,i.items.push({label:t,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),kind:a.CompletionItemKind.Keyword})),!1}return!0})),e&&e.isNested()){var w=e.getSelectors().findFirstChildBeforeOffset(this.offset);w&&0===e.getSelectors().getChildren().indexOf(w)&&this.getPropertyProposals(null,i)}return i},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof r.AbstractDeclaration){var i=n;if(!c.isDefined(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(c.isDefined(i.semicolonPosition)&&i.semicolonPosition<this.offset)return this.offset===i.semicolonPosition+1?t:this.getCompletionsForDeclarationProperty(null,t);if(i instanceof r.Declaration)return this.getCompletionsForDeclarationValue(i,t)}else n instanceof r.ExtendsReference?this.getCompletionsForExtendsReference(n,null,t):this.currentWord&&\"@\"===this.currentWord[0]&&this.getCompletionsForDeclarationProperty(null,t);return t},e.prototype.getCompletionsForVariableDeclaration=function(e,t){return this.offset&&c.isDefined(e.colonPosition)&&this.offset>e.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof r.FunctionArgument)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var i=e.findParent(r.NodeType.Declaration);if(!i)return this.getTermProposals(null,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof r.NumericValue||o instanceof r.Identifier?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches(\"var\")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offset<n.end&&this.getTermProposals(null,null,t),t},e.prototype.getCompletionsForMixinReference=function(e,t){for(var n=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Mixin);n<i.length;n++){var o=i[n];o.node instanceof r.MixinDeclaration&&t.items.push(this.makeTermProposal(o,o.node.getParameters(),null))}return t},e.prototype.getTermProposals=function(e,t,n){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Function);i<o.length;i++){var s=o[i];s.node instanceof r.FunctionDeclaration&&n.items.push(this.makeTermProposal(s,s.node.getParameters(),t))}return n},e.prototype.makeTermProposal=function(e,t,i){e.node;var o=t.getChildren().map((function(e){return e instanceof r.FunctionParameter?e.getName():e.getText()})),s=e.name+\"(\"+o.map((function(e,t){return\"${\"+(t+1)+\":\"+e+\"}\"})).join(\", \")+\")\";return{label:e.name,detail:e.name+\"(\"+o.join(\", \")+\")\",textEdit:a.TextEdit.replace(this.getCompletionRange(i),s),insertTextFormat:p,kind:a.CompletionItemKind.Function,sortText:n.Term}},e.prototype.getCompletionsForSupportsCondition=function(e,t){var n=e.findFirstChildBeforeOffset(this.offset);if(n){if(n instanceof r.Declaration)return!c.isDefined(n.colonPosition)||this.offset<=n.colonPosition?this.getCompletionsForDeclarationProperty(n,t):this.getCompletionsForDeclarationValue(n,t);if(n instanceof r.SupportsCondition)return this.getCompletionsForSupportsCondition(n,t)}return c.isDefined(e.lParent)&&this.offset>e.lParent&&(!c.isDefined(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof r.SupportsCondition?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n=\"\",r=this.position;var s=this.textDocument.positionAt(e.offset+\"url(\".length);i=a.Range.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.doesSupportMarkdown=function(){if(!c.isDefined(this.supportsMarkdown)){if(!c.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(a.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return!(!e.status||\"nonstandard\"!==e.status&&\"obsolete\"!==e.status)}function u(e){var t=e.toString();switch(t.length){case 4:return t;case 3:return\"0\"+t;case 2:return\"00\"+t;case 1:return\"000\"+t;default:return\"0000\"}}t.CSSCompletion=h;var f=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function g(e){return e.replace(/\\(\\)$/,\"($1)\")}var b=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof r.HexColorValue||e instanceof r.Function&&o.isColorConstructor(e))&&(this.currentOffset<e.offset||e.end<this.currentOffset)&&this.entries.add(e.getText()),!0},e}();function y(e){return e.toLowerCase()in o.colors||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/selectorPrinting\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssScanner\",\"../languageFacts/facts\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../parser/cssScanner\"),i=e(\"../languageFacts/facts\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t<n.length;t++){var r=n[t];if(r.name===e)return r.value}return null},e.prototype.addChild=function(t){t instanceof e&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)},e.prototype.append=function(e){if(this.attributes){var t=this.attributes[this.attributes.length-1];t.value=t.value+e}},e.prototype.prepend=function(e){if(this.attributes){var t=this.attributes[0];t.value=e+t.value}},e.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof a);)e=e.parent;return e},e.prototype.removeChild=function(e){if(this.children){var t=this.children.indexOf(e);if(-1!==t)return this.children.splice(t,1),!0}return!1},e.prototype.addAttr=function(e,t){this.attributes||(this.attributes=[]);for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return void(i.value+=\" \"+t)}this.attributes.push({name:e,value:t})},e.prototype.clone=function(t){void 0===t&&(t=!0);var n=new e;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var o=i[r];n.addAttr(o.name,o.value)}}if(t&&this.children){n.children=[];for(var s=0;s<this.children.length;s++)n.addChild(this.children[s].clone())}return n},e.prototype.cloneWithParent=function(){var e=this.clone(!1);!this.parent||this.parent instanceof a||this.parent.cloneWithParent().addChild(e);return e},e}();t.Element=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t}(s);t.RootElement=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.addAttr(\"name\",t),n}return __extends(t,e),t}(s);t.LabelElement=l;var c,d=function(){function e(e){this.quote=e,this.result=[]}return e.prototype.print=function(e){return this.result=[],e instanceof a?e.children&&this.doPrint(e.children,0):this.doPrint([e],0),[{language:\"html\",value:this.result.join(\"\\n\")}]},e.prototype.doPrint=function(e,t){for(var n=0,r=e;n<r.length;n++){var i=r[n];this.doPrintElement(i,t),i.children&&this.doPrint(i.children,t+1)}},e.prototype.writeLine=function(e,t){var n=new Array(e+1).join(\"  \");this.result.push(n+t)},e.prototype.doPrintElement=function(e,t){var n=e.findAttribute(\"name\");if(e instanceof l||\"…\"===n)this.writeLine(t,n);else{var r=[\"<\"];if(n?r.push(n):r.push(\"element\"),e.attributes)for(var i=0,o=e.attributes;i<o.length;i++){var s=o[i];if(\"name\"!==s.name){r.push(\" \"),r.push(s.name);var a=s.value;a&&(r.push(\"=\"),r.push(c.ensure(a,this.quote)))}}r.push(\">\"),this.writeLine(t,r.join(\"\"))}},e}();!function(e){function t(e){var t=e.match(/^['\"](.*)[\"']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(c||(c={}));var p=function(){this.id=0,this.attr=0,this.tag=0};function h(e,t){for(var r=new s,i=0,o=e.getChildren();i<o.length;i++){var a=o[i];switch(a.type){case n.NodeType.SelectorCombinator:if(t){var l=a.getText().split(\"&\");if(1===l.length){r.addAttr(\"name\",l[0]);break}if(r=t.cloneWithParent(),l[0])r.findRoot().prepend(l[0]);for(var d=1;d<l.length;d++){if(d>1){var p=t.cloneWithParent();r.addChild(p.findRoot()),r=p}r.append(l[d])}}break;case n.NodeType.SelectorPlaceholder:if(a.matches(\"@at-root\"))return r;case n.NodeType.ElementNameSelector:var h=a.getText();r.addAttr(\"name\",\"*\"===h?\"element\":m(h));break;case n.NodeType.ClassSelector:r.addAttr(\"class\",m(a.getText().substring(1)));break;case n.NodeType.IdentifierSelector:r.addAttr(\"id\",m(a.getText().substring(1)));break;case n.NodeType.MixinDeclaration:r.addAttr(\"class\",a.getName());break;case n.NodeType.PseudoSelector:r.addAttr(m(a.getText()),\"\");break;case n.NodeType.AttributeSelector:var u=a,f=u.getIdentifier();if(f){var g=u.getValue(),b=u.getOperator(),y=void 0;if(g&&b)switch(m(b.getText())){case\"|=\":y=c.remove(m(g.getText()))+\"-…\";break;case\"^=\":y=c.remove(m(g.getText()))+\"…\";break;case\"$=\":y=\"…\"+c.remove(m(g.getText()));break;case\"~=\":y=\" … \"+c.remove(m(g.getText()))+\" … \";break;case\"*=\":y=\"…\"+c.remove(m(g.getText()))+\"…\";break;default:y=c.remove(m(g.getText()))}r.addAttr(m(f.getText()),y)}}}return r}function m(e){var t=new r.Scanner;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}function u(e){var t=new p;return function e(r){r.getChildren().forEach((function(r){switch(r.type){case n.NodeType.IdentifierSelector:t.id++;break;case n.NodeType.ClassSelector:case n.NodeType.AttributeSelector:t.attr++;break;case n.NodeType.ElementNameSelector:if(r.matches(\"*\"))break;t.tag++;break;case n.NodeType.PseudoSelector:var o=r.getText();if(function(e){var t=e.match(/^::?([\\w-]+)/);return!!t&&!!i.cssDataManager.getPseudoElement(\"::\"+t[1])}(o))t.tag++;else{if(o.match(/^:not/i))break;t.attr++}}r.getChildren().length>0&&e(r)}))}(e),o(\"specificity\",\"[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})\",t.id,t.attr,t.tag)}t.toElement=h,t.selectorToMarkedString=function(e){var t=b(e);if(t){var n=new d('\"').print(t);return n.push(u(e)),n}return[]},t.simpleSelectorToMarkedString=function(e){var t=h(e),n=new d('\"').print(t);return n.push(u(e)),n};var f=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof a)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===n.NodeType.SelectorCombinator}))){var r=this.element.findRoot();r.parent instanceof a&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i<o.length;i++){var s=o[i];if(s instanceof n.SimpleSelector){if(this.prev instanceof n.SimpleSelector){var c=new l(\"…\");this.element.addChild(c),this.element=c}else this.prev&&(this.prev.matches(\"+\")||this.prev.matches(\"~\"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches(\"~\")&&(this.element.addChild(h(s)),this.element.addChild(new l(\"⋮\")));var d=h(s,t),p=d.findRoot();this.element.addChild(p),this.element=d}(s instanceof n.SimpleSelector||s.type===n.NodeType.SelectorCombinatorParent||s.type===n.NodeType.SelectorCombinatorShadowPiercingDescendant||s.type===n.NodeType.SelectorCombinatorSibling||s.type===n.NodeType.SelectorCombinatorAllSiblings)&&(this.prev=s)}},e}();function g(e){switch(e.type){case n.NodeType.MixinDeclaration:case n.NodeType.Stylesheet:return!0}return!1}function b(e){if(e.matches(\"@at-root\"))return null;var t=new a,r=[],i=e.getParent();if(i instanceof n.RuleSet)for(var o=i.getParent();o&&!g(o);){if(o instanceof n.RuleSet){if(o.getSelectors().matches(\"@at-root\"))break;r.push(o)}o=o.getParent()}for(var s=new f(t),l=r.length-1;l>=0;l--){var c=r[l].getSelectors().getChild(0);c&&s.processSelector(c)}return s.processSelector(e),t}t.selectorToElement=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssHover\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"./selectorPrinting\",\"../utils/strings\",\"../cssLanguageTypes\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"./selectorPrinting\"),o=e(\"../utils/strings\"),s=e(\"../cssLanguageTypes\"),a=e(\"../utils/objects\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,a){function l(t){return s.Range.create(e.positionAt(t.offset),e.positionAt(t.end))}for(var c=e.offsetAt(t),d=n.getNodePath(a,c),p=null,h=0;h<d.length;h++){var m=d[h];if(m instanceof n.Selector){p={contents:i.selectorToMarkedString(m),range:l(m)};break}if(m instanceof n.SimpleSelector){o.startsWith(m.getText(),\"@\")||(p={contents:i.simpleSelectorToMarkedString(m),range:l(m)});break}if(m instanceof n.Declaration){var u=m.getFullPropertyName();(g=r.cssDataManager.getProperty(u))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.UnknownAtRule){var f=m.getText();(g=r.cssDataManager.getAtDirective(f))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.Node&&m.type===n.NodeType.PseudoSelector){var g,b=m.getText();(g=\"::\"===b.slice(0,2)?r.cssDataManager.getPseudoElement(b):r.cssDataManager.getPseudoClass(b))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else;}return p&&(p.contents=this.convertContents(p.contents)),p},e.prototype.convertContents=function(e){return this.doesSupportMarkdown()?e:\"string\"==typeof e?e:\"kind\"in e?{kind:\"plaintext\",value:e.value}:Array.isArray(e)?e.map((function(e){return\"string\"==typeof e?e:e.value})):e.value},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){if(!a.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.CSSHover=l}));var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssNavigation\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"vscode-nls\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"vscode-nls\"),i=e(\"../parser/cssNodes\"),o=e(\"../parser/cssSymbolScope\"),s=e(\"../languageFacts/facts\"),a=e(\"../utils/strings\"),l=r.loadMessageBundle(),c=function(){function e(){}return e.prototype.findDefinition=function(e,t,n){var r=new o.Symbols(n),s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a)return null;var l=r.findSymbolFromNode(a);return l?{uri:e.uri,range:p(l.node,e)}:null},e.prototype.findReferences=function(e,t,n){return this.findDocumentHighlights(e,t,n).map((function(t){return{uri:e.uri,range:t.range}}))},e.prototype.findDocumentHighlights=function(e,t,n){var r=[],s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a||a.type===i.NodeType.Stylesheet||a.type===i.NodeType.Declarations)return r;a.type===i.NodeType.Identifier&&a.parent&&a.parent.type===i.NodeType.ClassSelector&&(a=a.parent);var l=new o.Symbols(n),c=l.findSymbolFromNode(a),d=a.getText();return n.accept((function(t){if(c){if(l.matchesSymbol(t,c))return r.push({kind:h(t),range:p(t,e)}),!1}else a&&a.type===t.type&&t.matches(d)&&r.push({kind:h(t),range:p(t,e)});return!0})),r},e.prototype.isRawStringDocumentLinkNode=function(e){return e.type===i.NodeType.Import},e.prototype.findDocumentLinks=function(e,t,n){var r=this,o=[];return t.accept((function(t){if(t.type===i.NodeType.URILiteral)return(s=function(e,t,n){if(0===t.getChildren().length)return null;var r=t.getChild(0);return d(e,r,n)}(e,t,n))&&o.push(s),!1;if(t.parent&&r.isRawStringDocumentLinkNode(t.parent)){var s,l=t.getText();if(a.startsWith(l,\"'\")||a.startsWith(l,'\"'))(s=d(e,t,n))&&o.push(s);return!1}return!0})),o},e.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(r){return[2,this.findDocumentLinks(e,t,n)]}))}))},e.prototype.findDocumentSymbols=function(e,t){var r=[];return t.accept((function(t){var o={name:null,kind:n.SymbolKind.Class,location:null},s=t;if(t instanceof i.Selector)return o.name=t.getText(),(s=t.findAParent(i.NodeType.Ruleset,i.NodeType.ExtendsReference))&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!1;if(t instanceof i.VariableDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Variable;else if(t instanceof i.MixinDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Method;else if(t instanceof i.FunctionDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Function;else if(t instanceof i.Keyframe)o.name=l(\"literal.keyframes\",\"@keyframes {0}\",t.getName());else if(t instanceof i.FontFace)o.name=l(\"literal.fontface\",\"@font-face\");else if(t instanceof i.Media){var a=t.getChild(0);a instanceof i.Medialist&&(o.name=\"@media \"+a.getText(),o.kind=n.SymbolKind.Module)}return o.name&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!0})),r},e.prototype.findDocumentColors=function(e,t){var n=[];return t.accept((function(t){var r=function(e,t){var n=s.getColorValue(e);if(n){var r=p(e,t);return{color:n,range:r}}return null}(t,e);return r&&n.push(r),!0})),n},e.prototype.getColorPresentations=function(e,t,r,i){var o,a=[],l=Math.round(255*r.red),c=Math.round(255*r.green),d=Math.round(255*r.blue);o=1===r.alpha?\"rgb(\"+l+\", \"+c+\", \"+d+\")\":\"rgba(\"+l+\", \"+c+\", \"+d+\", \"+r.alpha+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),o=1===r.alpha?\"#\"+m(l)+m(c)+m(d):\"#\"+m(l)+m(c)+m(d)+m(Math.round(255*r.alpha)),a.push({label:o,textEdit:n.TextEdit.replace(i,o)});var p=s.hslFromColor(r);return o=1===p.a?\"hsl(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%)\":\"hsla(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%, \"+p.a+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),a},e.prototype.doRename=function(e,t,r,i){var o,s=this.findDocumentHighlights(e,t,i).map((function(e){return n.TextEdit.replace(e.range,r)}));return{changes:(o={},o[e.uri]=s,o)}},e}();function d(e,t,n){if(!t)return null;var r=t.getText(),i=p(t,e);return i.start.line===i.end.line&&i.start.character===i.end.character?null:((a.startsWith(r,\"'\")||a.startsWith(r,'\"'))&&(r=r.slice(1,-1)),{range:i,target:a.startsWith(r,\"http://\")||a.startsWith(r,\"https://\")?r:/^\\w+:\\/\\//g.test(r)?r:n.resolveReference(r,e.uri)})}function p(e,t){return n.Range.create(t.positionAt(e.offset),t.positionAt(e.end))}function h(e){if(e.type===i.NodeType.Selector)return n.DocumentHighlightKind.Write;if(e instanceof i.Identifier&&e.parent&&e.parent instanceof i.Property&&e.isCustomProperty)return n.DocumentHighlightKind.Write;if(e.parent)switch(e.parent.type){case i.NodeType.FunctionDeclaration:case i.NodeType.MixinDeclaration:case i.NodeType.Keyframe:case i.NodeType.VariableDeclaration:case i.NodeType.FunctionParameter:return n.DocumentHighlightKind.Write}return n.DocumentHighlightKind.Read}function m(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}t.CSSNavigation=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintRules\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle(),i=n.Level.Warning,o=n.Level.Error,s=n.Level.Ignore,a=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Rule=a;var l=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Setting=l,t.Rules={AllVendorPrefixes:new a(\"compatibleVendorPrefixes\",r(\"rule.vendorprefixes.all\",\"When using a vendor-specific prefix make sure to also include all other vendor-specific properties\"),s),IncludeStandardPropertyWhenUsingVendorPrefix:new a(\"vendorPrefix\",r(\"rule.standardvendorprefix.all\",\"When using a vendor-specific prefix also include the standard property\"),i),DuplicateDeclarations:new a(\"duplicateProperties\",r(\"rule.duplicateDeclarations\",\"Do not use duplicate style definitions\"),s),EmptyRuleSet:new a(\"emptyRules\",r(\"rule.emptyRuleSets\",\"Do not use empty rulesets\"),i),ImportStatemement:new a(\"importStatement\",r(\"rule.importDirective\",\"Import statements do not load in parallel\"),s),BewareOfBoxModelSize:new a(\"boxModel\",r(\"rule.bewareOfBoxModelSize\",\"Do not use width or height when using padding or border\"),s),UniversalSelector:new a(\"universalSelector\",r(\"rule.universalSelector\",\"The universal selector (*) is known to be slow\"),s),ZeroWithUnit:new a(\"zeroUnits\",r(\"rule.zeroWidthUnit\",\"No unit for zero needed\"),s),RequiredPropertiesForFontFace:new a(\"fontFaceProperties\",r(\"rule.fontFaceProperties\",\"@font-face rule must define 'src' and 'font-family' properties\"),i),HexColorLength:new a(\"hexColorLength\",r(\"rule.hexColor\",\"Hex colors must consist of three, four, six or eight hex numbers\"),o),ArgsInColorFunction:new a(\"argumentsInColorFunction\",r(\"rule.colorFunction\",\"Invalid number of parameters\"),o),UnknownProperty:new a(\"unknownProperties\",r(\"rule.unknownProperty\",\"Unknown property.\"),i),UnknownAtRules:new a(\"unknownAtRules\",r(\"rule.unknownAtRules\",\"Unknown at-rule.\"),i),IEStarHack:new a(\"ieHack\",r(\"rule.ieHack\",\"IE hacks are only necessary when supporting IE7 and older\"),s),UnknownVendorSpecificProperty:new a(\"unknownVendorSpecificProperties\",r(\"rule.unknownVendorSpecificProperty\",\"Unknown vendor specific property.\"),s),PropertyIgnoredDueToDisplay:new a(\"propertyIgnoredDueToDisplay\",r(\"rule.propertyIgnoredDueToDisplay\",\"Property is ignored due to the display.\"),i),AvoidImportant:new a(\"important\",r(\"rule.avoidImportant\",\"Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.\"),s),AvoidFloat:new a(\"float\",r(\"rule.avoidFloat\",\"Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.\"),s),AvoidIdSelector:new a(\"idSelector\",r(\"rule.avoidIdSelector\",\"Selectors should not contain IDs because these rules are too tightly coupled with the HTML.\"),s)},t.Settings={ValidProperties:new l(\"validProperties\",r(\"rule.validProperties\",\"A list of properties that are not validated against the `unknownProperties` rule.\"),[])};var c=function(){function e(e){void 0===e&&(e={}),this.conf=e}return e.prototype.getRule=function(e){if(this.conf.hasOwnProperty(e.id)){var t=function(e){switch(e){case\"ignore\":return n.Level.Ignore;case\"warning\":return n.Level.Warning;case\"error\":return n.Level.Error}return null}(this.conf[e.id]);if(t)return t}return e.defaultValue},e.prototype.getSetting=function(e){return this.conf[e.id]},e}();t.LintConfigurationSettings=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCodeActions\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"../utils/strings\",\"../services/lintRules\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"../utils/strings\"),o=e(\"../services/lintRules\"),s=e(\"../cssLanguageTypes\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){}return e.prototype.doCodeActions=function(e,t,n,r){return this.doCodeActions2(e,t,n,r).map((function(t){var n=t.edit&&t.edit.documentChanges&&t.edit.documentChanges[0];return s.Command.create(t.title,\"_css.applyCodeAction\",e.uri,e.version,n&&n.edits)}))},e.prototype.doCodeActions2=function(e,t,n,r){var i=[];if(n.diagnostics)for(var o=0,s=n.diagnostics;o<s.length;o++){var a=s[o];this.appendFixesForMarker(e,r,a,i)}return i},e.prototype.getFixesForUnknownProperty=function(e,t,n,o){var l=t.getName(),c=[];r.cssDataManager.getProperties().forEach((function(e){var t=i.difference(l,e.name);t>=l.length/2&&c.push({property:e.name,score:t})})),c.sort((function(e,t){return t.score-e.score}));for(var d=3,p=0,h=c;p<h.length;p++){var m=h[p].property,u=a(\"css.codeaction.rename\",\"Rename to '{0}'\",m),f=s.TextEdit.replace(n.range,m),g=s.VersionedTextDocumentIdentifier.create(e.uri,e.version),b={documentChanges:[s.TextDocumentEdit.create(g,[f])]},y=s.CodeAction.create(u,b,s.CodeActionKind.QuickFix);if(y.diagnostics=[n],o.push(y),--d<=0)return}},e.prototype.appendFixesForMarker=function(e,t,r,i){if(r.code===o.Rules.UnknownProperty.id)for(var s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=n.getNodePath(t,s),c=l.length-1;c>=0;c--){var d=l[c];if(d instanceof n.Declaration){var p=d.getProperty();if(p&&p.offset===s&&p.end===a)return void this.getFixesForUnknownProperty(e,p,r,i)}}},e}();t.CSSCodeActions=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintUtil\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\"),r=function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e};function i(e,t,r,i){var o=e[t];o.value=r,r&&(n.includes(o.properties,i)||o.properties.push(i))}function o(e,t,n,r){\"top\"===t||\"right\"===t||\"bottom\"===t||\"left\"===t?i(e,t,n,r):function(e,t,n){i(e,\"top\",t,n),i(e,\"right\",t,n),i(e,\"bottom\",t,n),i(e,\"left\",t,n)}(e,n,r)}function s(e,t,n){switch(t.length){case 1:o(e,void 0,t[0],n);break;case 2:o(e,\"top\",t[0],n),o(e,\"bottom\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n);break;case 3:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n),o(e,\"bottom\",t[2],n);break;case 4:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"bottom\",t[2],n),o(e,\"left\",t[3],n)}}function a(e,t){for(var n=0,r=t;n<r.length;n++){var i=r[n];if(e.matches(i))return!0}return!1}function l(e,t){return void 0===t&&(t=!0),(!t||!a(e,[\"initial\",\"unset\"]))&&0!==parseFloat(e.getText())}function c(e,t){return void 0===t&&(t=!0),e.map((function(e){return l(e,t)}))}function d(e,t){return void 0===t&&(t=!0),!a(e,[\"none\",\"hidden\"])&&(!t||!a(e,[\"initial\",\"unset\"]))}function p(e,t){return void 0===t&&(t=!0),e.map((function(e){return d(e,t)}))}function h(e){var t=e.getChildren();if(1===t.length)return l(i=t[0])&&d(i);for(var n=0,r=t;n<r.length;n++){var i;if(!l(i=r[n],!1)||!d(i,!1))return!1}return!0}t.Element=r,t.default=function(e){for(var t={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}},n=0,r=e;n<r.length;n++){var i=r[n],a=i.node.value;if(void 0!==a)switch(i.fullPropertyName){case\"box-sizing\":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case\"width\":t.width=i;break;case\"height\":t.height=i;break;default:var m=i.fullPropertyName.split(\"-\");switch(m[0]){case\"border\":switch(m[1]){case void 0:case\"top\":case\"right\":case\"bottom\":case\"left\":switch(m[2]){case void 0:o(t,m[1],h(a),i);break;case\"width\":o(t,m[1],l(a,!1),i);break;case\"style\":o(t,m[1],d(a,!0),i)}break;case\"width\":s(t,c(a.getChildren(),!1),i);break;case\"style\":s(t,p(a.getChildren(),!0),i)}break;case\"padding\":1===m.length?s(t,c(a.getChildren(),!0),i):o(t,m[1],l(a,!0),i)}}}return t}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lint\",[\"require\",\"exports\",\"../languageFacts/facts\",\"./lintRules\",\"../parser/cssNodes\",\"./lintUtil\",\"../utils/arrays\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../languageFacts/facts\"),r=e(\"./lintRules\"),i=e(\"../parser/cssNodes\"),o=e(\"./lintUtil\"),s=e(\"../utils/arrays\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){this.data={}}return e.prototype.add=function(e,t,n){var r=this.data[e];r||(r={nodes:[],names:[]},this.data[e]=r),r.names.push(t),n&&r.nodes.push(n)},e}(),c=function(){function e(e,t){var n=this;this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new l,this.validProperties={};var i=t.getSetting(r.Settings.ValidProperties);Array.isArray(i)&&i.forEach((function(e){if(\"string\"==typeof e){var t=e.trim().toLowerCase();t.length&&(n.validProperties[t]=!0)}}))}return e.entries=function(t,n,r,i){var o=new e(n,r);return t.acceptVisitor(o),o.completeValidations(),o.getEntries(i)},e.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},e.prototype.fetch=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];o.fullPropertyName===t&&n.push(o)}return n},e.prototype.fetchWithValue=function(e,t,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i];if(s.fullPropertyName===t){var a=s.node.getValue();a&&this.findValueInExpression(a,n)&&r.push(s)}}return r},e.prototype.findValueInExpression=function(e,t){var n=!1;return e.accept((function(e){return e.type===i.NodeType.Identifier&&e.matches(t)&&(n=!0),!n})),n},e.prototype.getEntries=function(e){return void 0===e&&(e=i.Level.Warning|i.Level.Error),this.warnings.filter((function(t){return 0!=(t.getLevel()&e)}))},e.prototype.addEntry=function(e,t,n){var r=new i.Marker(e,t,this.settings.getRule(t),n);this.warnings.push(r)},e.prototype.getMissingNames=function(e,t){for(var n=e.slice(0),r=0;r<t.length;r++){var i=n.indexOf(t[r]);-1!==i&&(n[i]=null)}var o=null;for(r=0;r<n.length;r++){var s=n[r];s&&(o=null===o?a(\"namelist.single\",\"'{0}'\",s):a(\"namelist.concatenated\",\"{0}, '{1}'\",o,s))}return o},e.prototype.visitNode=function(e){switch(e.type){case i.NodeType.UnknownAtRule:return this.visitUnknownAtRule(e);case i.NodeType.Keyframe:return this.visitKeyframe(e);case i.NodeType.FontFace:return this.visitFontFace(e);case i.NodeType.Ruleset:return this.visitRuleSet(e);case i.NodeType.SimpleSelector:return this.visitSimpleSelector(e);case i.NodeType.Function:return this.visitFunction(e);case i.NodeType.NumericValue:return this.visitNumericValue(e);case i.NodeType.Import:return this.visitImport(e);case i.NodeType.HexColorValue:return this.visitHexColorValue(e);case i.NodeType.Prio:return this.visitPrio(e)}return!0},e.prototype.completeValidations=function(){this.validateKeyframes()},e.prototype.visitUnknownAtRule=function(e){var t=e.getChild(0);return!!t&&(!n.cssDataManager.getAtDirective(t.getText())&&(this.addEntry(t,r.Rules.UnknownAtRules,\"Unknown at rule \"+t.getText()),!0))},e.prototype.visitKeyframe=function(e){var t=e.getKeyword();if(!t)return!1;var n=t.getText();return this.keyframes.add(e.getName(),n,\"@keyframes\"!==n?t:null),!0},e.prototype.validateKeyframes=function(){var e=[\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"];for(var t in this.keyframes.data){var n=this.keyframes.data[t].names,i=-1===n.indexOf(\"@keyframes\");if(i||1!==n.length){var o=this.getMissingNames(e,n);if(o||i)for(var s=0,l=this.keyframes.data[t].nodes;s<l.length;s++){var c=l[s];if(i){var d=a(\"keyframes.standardrule.missing\",\"Always define standard rule '@keyframes' when defining keyframes.\");this.addEntry(c,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,d)}if(o){d=a(\"keyframes.vendorspecific.missing\",\"Always include all vendor specific rules: Missing: {0}\",o);this.addEntry(c,r.Rules.AllVendorPrefixes,d)}}}}return!0},e.prototype.visitSimpleSelector=function(e){var t=this.documentText.charAt(e.offset);return 1===e.length&&\"*\"===t&&this.addEntry(e,r.Rules.UniversalSelector),\"#\"===t&&this.addEntry(e,r.Rules.AvoidIdSelector),!0},e.prototype.visitImport=function(e){return this.addEntry(e,r.Rules.ImportStatemement),!0},e.prototype.visitRuleSet=function(t){var c=t.getDeclarations();if(!c)return!1;c.hasChildren()||this.addEntry(t.getSelectors(),r.Rules.EmptyRuleSet);for(var d=[],p=0,h=c.getChildren();p<h.length;p++){(z=h[p])instanceof i.Declaration&&d.push(new o.Element(z))}var m=o.default(d);if(m.width){var u=[];if(m.right.value&&(u=s.union(u,m.right.properties)),m.left.value&&(u=s.union(u,m.left.properties)),0!==u.length){for(var f=0,g=u;f<g.length;f++){var b=g[f];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.width.node,r.Rules.BewareOfBoxModelSize)}}if(m.height){u=[];if(m.top.value&&(u=s.union(u,m.top.properties)),m.bottom.value&&(u=s.union(u,m.bottom.properties)),0!==u.length){for(var y=0,v=u;y<v.length;y++){b=v[y];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.height.node,r.Rules.BewareOfBoxModelSize)}}var w=this.fetchWithValue(d,\"display\",\"inline\");if(w.length>0)for(var x=0,S=[\"width\",\"height\",\"margin-top\",\"margin-bottom\",\"float\"];x<S.length;x++)for(var k=S[x],C=this.fetch(d,k),T=0;T<C.length;T++){var F=C[T].node,E=F.getValue();(\"float\"!==k||E&&!E.matches(\"none\"))&&this.addEntry(F,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInline\",\"Property is ignored due to the display. With 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect.\"))}if((w=this.fetchWithValue(d,\"display\",\"inline-block\")).length>0)for(C=this.fetch(d,\"float\"),T=0;T<C.length;T++){var D=C[T].node;(E=D.getValue())&&!E.matches(\"none\")&&this.addEntry(D,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInlineBlock\",\"inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'\"))}if((w=this.fetchWithValue(d,\"display\",\"block\")).length>0)for(C=this.fetch(d,\"vertical-align\"),T=0;T<C.length;T++)this.addEntry(C[T].node,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayBlock\",\"Property is ignored due to the display. With 'display: block', vertical-align should not be used.\"));var R=this.fetch(d,\"float\");for(T=0;T<R.length;T++){var z=R[T];this.isValidPropertyDeclaration(z)||this.addEntry(z.node,r.Rules.AvoidFloat)}for(var _=0;_<d.length;_++){if(\"background\"!==(z=d[_]).fullPropertyName&&!this.validProperties[z.fullPropertyName])if((E=z.node.getValue())&&\"-\"!==this.documentText.charAt(E.offset)){var I=this.fetch(d,z.fullPropertyName);if(I.length>1)for(var N=0;N<I.length;N++){var P=I[N].node.getValue();P&&\"-\"!==this.documentText.charAt(P.offset)&&I[N]!==z&&this.addEntry(z.node,r.Rules.DuplicateDeclarations)}}}if(!t.getSelectors().matches(\":export\")){for(var M=new l,A=!1,O=0,W=d;O<W.length;O++){var L=(z=W[O]).node;if(this.isCSSDeclaration(L)){var j=z.fullPropertyName,U=j.charAt(0);if(\"-\"===U){if(\"-\"!==j.charAt(1)){n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownVendorSpecificProperty);var V=L.getNonPrefixedPropertyName();M.add(V,j,L.getProperty())}}else{var K=j;\"*\"!==U&&\"_\"!==U||(this.addEntry(L.getProperty(),r.Rules.IEStarHack),j=j.substr(1)),n.cssDataManager.isKnownProperty(K)||n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownProperty,a(\"property.unknownproperty.detailed\",\"Unknown property: '{0}'\",j)),M.add(j,j,null)}}else A=!0}if(!A)for(var q in M.data){var B=M.data[q],$=B.names,G=n.cssDataManager.isStandardProperty(q)&&-1===$.indexOf(q);if(G||1!==$.length){for(var H=[],J=(_=0,e.prefixes.length);_<J;_++){var X=e.prefixes[_];n.cssDataManager.isStandardProperty(X+q)&&H.push(X+q)}var Y=this.getMissingNames(H,$);if(Y||G)for(var Z=0,Q=B.nodes;Z<Q.length;Z++){var ee=Q[Z];if(G){var te=a(\"property.standard.missing\",\"Also define the standard property '{0}' for compatibility\",q);this.addEntry(ee,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,te)}if(Y){te=a(\"property.vendorspecific.missing\",\"Always include all vendor specific properties: Missing: {0}\",Y);this.addEntry(ee,r.Rules.AllVendorPrefixes,te)}}}}}return!0},e.prototype.visitPrio=function(e){return this.addEntry(e,r.Rules.AvoidImportant),!0},e.prototype.visitNumericValue=function(e){var t=e.findParent(i.NodeType.Function);if(t&&\"calc\"===t.getName())return!0;var o=e.findParent(i.NodeType.Declaration);if(o&&o.getValue()){var s=e.getValue();if(!s.unit||-1===n.units.length.indexOf(s.unit.toLowerCase()))return!0;0===parseFloat(s.value)&&s.unit&&!this.validProperties[o.getFullPropertyName()]&&this.addEntry(e,r.Rules.ZeroWithUnit)}return!0},e.prototype.visitFontFace=function(e){var t=e.getDeclarations();if(!t)return!1;for(var n=!1,i=!1,o=!1,s=0,a=t.getChildren();s<a.length;s++){var l=a[s];if(this.isCSSDeclaration(l)){var c=l.getProperty().getName().toLowerCase();\"src\"===c&&(n=!0),\"font-family\"===c&&(i=!0)}else o=!0}return o||n&&i||this.addEntry(e,r.Rules.RequiredPropertiesForFontFace),!0},e.prototype.isCSSDeclaration=function(e){if(e instanceof i.Declaration){if(!e.getValue())return!1;var t=e.getProperty();if(!t)return!1;var n=t.getIdentifier();return!(!n||n.containsInterpolation())}return!1},e.prototype.visitHexColorValue=function(e){var t=e.length;return 9!==t&&7!==t&&5!==t&&4!==t&&this.addEntry(e,r.Rules.HexColorLength),!1},e.prototype.visitFunction=function(e){var t=e.getName().toLowerCase(),n=-1,o=0;switch(t){case\"rgb(\":case\"hsl(\":n=3;break;case\"rgba(\":case\"hsla(\":n=4}return-1!==n&&(e.getArguments().accept((function(e){return!(e instanceof i.BinaryExpression)||(o+=1,!1)})),o!==n&&this.addEntry(e,r.Rules.ArgsInColorFunction)),!0},e.prefixes=[\"-ms-\",\"-moz-\",\"-o-\",\"-webkit-\"],e}();t.LintVisitor=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssValidation\",[\"require\",\"exports\",\"../parser/cssNodes\",\"./lintRules\",\"./lint\",\"../cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"./lintRules\"),i=e(\"./lint\"),o=e(\"../cssLanguageTypes\"),s=function(){function e(){}return e.prototype.configure=function(e){this.settings=e},e.prototype.doValidation=function(e,t,s){if(void 0===s&&(s=this.settings),s&&!1===s.validate)return[];var a=[];a.push.apply(a,n.ParseErrorCollector.entries(t)),a.push.apply(a,i.LintVisitor.entries(t,e,new r.LintConfigurationSettings(s&&s.lint)));var l=[];for(var c in r.Rules)l.push(r.Rules[c].id);return a.filter((function(e){return e.getLevel()!==n.Level.Ignore})).map((function(t){var r=o.Range.create(e.positionAt(t.getOffset()),e.positionAt(t.getOffset()+t.getLength())),i=e.languageId;return{code:t.getRule().id,source:i,message:t.getMessage(),severity:t.getLevel()===n.Level.Warning?o.DiagnosticSeverity.Warning:o.DiagnosticSeverity.Error,range:r}}))},e}();t.CSSValidation=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"$\".charCodeAt(0),l=\"#\".charCodeAt(0),c=\"{\".charCodeAt(0),d=\"=\".charCodeAt(0),p=\"!\".charCodeAt(0),h=\"<\".charCodeAt(0),m=\">\".charCodeAt(0),u=\".\".charCodeAt(0),f=\"@\".charCodeAt(0),g=n.TokenType.CustomToken;t.VariableName=g++,t.InterpolationFunction=g++,t.Default=g++,t.EqualsOperator=g++,t.NotEqualsOperator=g++,t.GreaterEqualsOperator=g++,t.SmallerEqualsOperator=g++,t.Ellipsis=g++,t.Module=g++,t.Forward=g++,t.Use=g++;var b=function(e){function g(){return null!==e&&e.apply(this,arguments)||this}return __extends(g,e),g.prototype.scanNext=function(r){if(this.stream.advanceIfChar(a)){var i=[\"$\"];if(this.ident(i))return this.finishToken(r,t.VariableName,i.join(\"\"));this.stream.goBackTo(r)}if(this.stream.advanceIfChars([l,c]))return this.finishToken(r,t.InterpolationFunction);if(this.stream.advanceIfChars([d,d]))return this.finishToken(r,t.EqualsOperator);if(this.stream.advanceIfChars([p,d]))return this.finishToken(r,t.NotEqualsOperator);if(this.stream.advanceIfChar(h))return this.stream.advanceIfChar(d)?this.finishToken(r,t.SmallerEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChar(m))return this.stream.advanceIfChar(d)?this.finishToken(r,t.GreaterEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChars([u,u,u]))return this.finishToken(r,t.Ellipsis);if(this.stream.advanceIfChar(f)){i=[\"@\"];if(this.ident(i)){var o=i.join(\"\");if(\"@forward\"===o)return this.finishToken(r,t.Forward,o);if(\"@use\"===o)return this.finishToken(r,t.Use,o)}this.stream.goBackTo(r)}return e.prototype.scanNext.call(this,r)},g.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},g}(n.Scanner);t.SCSSScanner=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.SCSSIssueType=r,t.SCSSParseError={FromExpected:new r(\"scss-fromexpected\",n(\"expected.from\",\"'from' expected\")),ThroughOrToExpected:new r(\"scss-throughexpected\",n(\"expected.through\",\"'through' or 'to' expected\")),InExpected:new r(\"scss-fromexpected\",n(\"expected.in\",\"'in' expected\"))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssParser\",[\"require\",\"exports\",\"./scssScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./scssErrors\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scssScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./scssErrors\"),a=e(\"./cssErrors\"),l=function(e){function t(){return e.call(this,new n.SCSSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStart=function(){return this._parseForward()||this._parseUse()||e.prototype._parseStylesheetStart.call(this)},t.prototype._parseStylesheetStatement=function(){return this.peek(r.TokenType.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||e.prototype._parseStylesheetAtStatement.call(this):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(o.Import);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);for(;this.accept(r.TokenType.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);return this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(n.VariableName))return null;var t=this.create(o.VariableDeclaration);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,a.ParseError.VariableValueExpected,[],e);for(;this.accept(r.TokenType.Exclamation);){if(!this.peekRegExp(r.TokenType.Ident,/^(default|global)$/))return this.finish(t,a.ParseError.UnknownKeyword);this.consumeToken()}return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(n.VariableName))return null;var e=this.create(o.Variable);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(o.Module);return t.setIdentifier(this._parseIdent([o.ReferenceType.Module]))?this.hasWhitespace()||!this.acceptDelim(\".\")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,a.ParseError.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.TokenType.Ident)&&!this.peek(n.InterpolationFunction)&&!this.peekDelim(\"-\"))return null;var i=this.create(o.Identifier);i.referenceTypes=e,i.isCustomProperty=this.peekRegExp(r.TokenType.Ident,/^--/);for(var s,a=!1;(this.accept(r.TokenType.Ident)||i.addChild((s=void 0,s=t.mark(),t.acceptDelim(\"-\")&&(t.hasWhitespace()||t.acceptDelim(\"-\"),t.hasWhitespace())?(t.restoreAtMark(s),null):t._parseInterpolation()))||a&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)))&&(a=!0,!this.hasWhitespace()););return a?this.finish(i):null},t.prototype._parseTerm=function(){var t=this.create(o.Term);if(t.setExpression(this._parseModuleMember()))return this.finish(t);var n=e.prototype._parseTerm.call(this);return n||(t.setExpression(this._parseVariable())||t.setExpression(this._parseSelectorCombinator())||t.setExpression(this._tryParsePrio())?this.finish(t):null)},t.prototype._parseInterpolation=function(){if(this.peek(n.InterpolationFunction)){var e=this.create(o.Interpolation);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.RightCurlyExpected):this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(n.EqualsOperator)||this.peek(n.NotEqualsOperator)||this.peek(n.GreaterEqualsOperator)||this.peek(n.SmallerEqualsOperator)||this.peekDelim(\">\")||this.peekDelim(\"<\")||this.peekIdent(\"and\")||this.peekIdent(\"or\")||this.peekDelim(\"%\")){var t=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent(\"not\")){var t=this.create(o.Node);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this.create(o.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected,[r.TokenType.Colon],e);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=!1;if(t.setValue(this._parseExpr())&&(n=!0,t.addChild(this._parsePrio())),this.peek(r.TokenType.CurlyL))t.setNestedProperties(this._parseNestedProperties());else if(!n)return this.finish(t,a.ParseError.PropertyValueExpected);return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseNestedProperties=function(){var e=this.create(o.NestedProperties);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword(\"@extend\")){var e=this.create(o.ExtendsReference);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,a.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.TokenType.Exclamation)&&!this.acceptIdent(\"optional\")?this.finish(e,a.ParseError.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim(\"%\")){var e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword(\"@at-root\")){e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.TokenType.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword(\"@debug\")&&!this.peekKeyword(\"@warn\")&&!this.peekKeyword(\"@error\"))return null;var e=this.createNode(o.NodeType.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.TokenType.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword(\"@if\")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(o.IfStatement);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,a.ParseError.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword(\"@else\"))if(this.peekIdent(\"if\"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.TokenType.CurlyL)){var n=this.create(o.ElseStatement);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword(\"@for\"))return null;var t=this.create(o.ForStatement);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent(\"from\")?t.addChild(this._parseBinaryExpr())?this.acceptIdent(\"to\")||this.acceptIdent(\"through\")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.ThroughOrToExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.FromExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword(\"@each\"))return null;var t=this.create(o.EachStatement);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);for(;this.accept(r.TokenType.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);return this.finish(n),this.acceptIdent(\"in\")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.InExpected,[r.TokenType.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword(\"@while\"))return null;var t=this.create(o.WhileStatement);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword(\"@function\"))return null;var e=this.create(o.FunctionDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Function])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);return this.accept(r.TokenType.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword(\"@return\"))return null;var e=this.createNode(o.NodeType.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword(\"@mixin\"))return null;var e=this.create(o.MixinDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Mixin])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(this.accept(r.TokenType.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(o.FunctionParameter);return e.setIdentifier(this._parseVariable())?(this.accept(n.Ellipsis),this.accept(r.TokenType.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword(\"@content\"))return null;var e=this.createNode(o.NodeType.MixinContent);return this.consumeToken(),this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword(\"@include\"))return null;var e=this.create(o.MixinReference);this.consumeToken();var t=this._parseIdent([o.ReferenceType.Mixin]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(\".\")&&!this.hasWhitespace()){var n=this._parseIdent([o.ReferenceType.Mixin]);if(!n)return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);var i=this.create(o.Module);t.referenceTypes=[o.ReferenceType.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}if(this.peek(r.TokenType.CurlyL)){var s=this.create(o.BodyDeclaration);this._parseBody(s,this._parseMixinReferenceBodyStatement.bind(this)),e.setContent(s)}return this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),i=this._parseVariable();if(i)if(this.accept(r.TokenType.Colon))e.setIdentifier(i);else{if(this.accept(n.Ellipsis))return e.setValue(i),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(n.Ellipsis),e.addChild(this._parsePrio()),this.finish(e)):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.Node);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.TokenType.Comma);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,a.ParseError.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(o.ListEntry),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.TokenType.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,a.ParseError.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peek(n.Use))return null;var e=this.create(o.Use);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|with/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")&&!e.setIdentifier(this._parseIdent([o.ReferenceType.Module]))&&!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.IdentifierOrWildcardExpected);if(this.acceptIdent(\"with\")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(o.ModuleConfiguration);return e.setIdentifier(this._parseVariable())?this.accept(r.TokenType.Colon)&&e.setValue(this._parseExpr(!0))?this.finish(e):this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peek(n.Forward))return null;var e=this.create(o.Forward);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|hide|show/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")){var t=this._parseIdent([o.ReferenceType.Forward]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.WildcardExpected)}if((this.peekIdent(\"hide\")||this.peekIdent(\"show\"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,a.ParseError.IdentifierOrVariableExpected)}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(o.ForwardVisibility);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent()););return e.getChildren().length>1?e:null},t}(i.Parser);t.SCSSParser=l}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../parser/cssNodes\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../parser/cssNodes\"),i=e(\"../cssLanguageTypes\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(e){function t(n){var r=e.call(this,\"$\",n)||this;return a(t.scssModuleLoaders),a(t.scssModuleBuiltIns),r}return __extends(t,e),t.prototype.isImportPathParent=function(t){return t===r.NodeType.Forward||t===r.NodeType.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,i){var o,s=n.getParent().type;return s!==r.NodeType.Forward&&s!==r.NodeType.Use||(o=i.items).push.apply(o,t.scssModuleBuiltIns),e.prototype.getCompletionForImportPath.call(this,n,i)},t.prototype.createReplaceFunction=function(){var e=1;return function(n,r){return\"\\\\\"+r+\": ${\"+e+++\":\"+(t.variableDefaults[r]||\"\")+\"}\"}},t.prototype.createFunctionProposals=function(e,t,n,r){for(var o=0,s=e;o<s.length;o++){var a=s[o],l=a.func.replace(/\\[?(\\$\\w+)\\]?/g,this.createReplaceFunction()),c={label:a.func.substr(0,a.func.indexOf(\"(\")),detail:a.func,documentation:a.desc,textEdit:i.TextEdit.replace(this.getCompletionRange(t),l),insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Function};n&&(c.sortText=\"z\"),r.items.push(c)}return r},t.prototype.getCompletionsForSelector=function(n,r,i){return this.createFunctionProposals(t.selectorFuncs,null,!0,i),e.prototype.getCompletionsForSelector.call(this,n,r,i)},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInFuncs;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionForAtDirectives(n),this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.prototype.getCompletionsForExtendsReference=function(e,t,n){for(var o=0,s=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Rule);o<s.length;o++){var a=s[o],l={label:a.name,textEdit:i.TextEdit.replace(this.getCompletionRange(t),a.name),kind:i.CompletionItemKind.Function};n.items.push(l)}return n},t.prototype.getCompletionForAtDirectives=function(e){var n;return(n=e.items).push.apply(n,t.scssAtDirectives),e},t.prototype.getCompletionForTopLevel=function(t){return this.getCompletionForAtDirectives(t),this.getCompletionForModuleLoaders(t),e.prototype.getCompletionForTopLevel.call(this,t),t},t.prototype.getCompletionForModuleLoaders=function(e){var n;return(n=e.items).push.apply(n,t.scssModuleLoaders),e},t.variableDefaults={$red:\"1\",$green:\"2\",$blue:\"3\",$alpha:\"1.0\",$color:\"#000000\",$weight:\"0.5\",$hue:\"0\",$saturation:\"0%\",$lightness:\"0%\",$degrees:\"0\",$amount:\"0\",$string:'\"\"',$substring:'\"s\"',$number:\"0\",$limit:\"1\"},t.colorProposals=[{func:\"red($color)\",desc:o(\"scss.builtin.red\",\"Gets the red component of a color.\")},{func:\"green($color)\",desc:o(\"scss.builtin.green\",\"Gets the green component of a color.\")},{func:\"blue($color)\",desc:o(\"scss.builtin.blue\",\"Gets the blue component of a color.\")},{func:\"mix($color, $color, [$weight])\",desc:o(\"scss.builtin.mix\",\"Mixes two colors together.\")},{func:\"hue($color)\",desc:o(\"scss.builtin.hue\",\"Gets the hue component of a color.\")},{func:\"saturation($color)\",desc:o(\"scss.builtin.saturation\",\"Gets the saturation component of a color.\")},{func:\"lightness($color)\",desc:o(\"scss.builtin.lightness\",\"Gets the lightness component of a color.\")},{func:\"adjust-hue($color, $degrees)\",desc:o(\"scss.builtin.adjust-hue\",\"Changes the hue of a color.\")},{func:\"lighten($color, $amount)\",desc:o(\"scss.builtin.lighten\",\"Makes a color lighter.\")},{func:\"darken($color, $amount)\",desc:o(\"scss.builtin.darken\",\"Makes a color darker.\")},{func:\"saturate($color, $amount)\",desc:o(\"scss.builtin.saturate\",\"Makes a color more saturated.\")},{func:\"desaturate($color, $amount)\",desc:o(\"scss.builtin.desaturate\",\"Makes a color less saturated.\")},{func:\"grayscale($color)\",desc:o(\"scss.builtin.grayscale\",\"Converts a color to grayscale.\")},{func:\"complement($color)\",desc:o(\"scss.builtin.complement\",\"Returns the complement of a color.\")},{func:\"invert($color)\",desc:o(\"scss.builtin.invert\",\"Returns the inverse of a color.\")},{func:\"alpha($color)\",desc:o(\"scss.builtin.alpha\",\"Gets the opacity component of a color.\")},{func:\"opacity($color)\",desc:\"Gets the alpha component (opacity) of a color.\"},{func:\"rgba($color, $alpha)\",desc:o(\"scss.builtin.rgba\",\"Changes the alpha component for a color.\")},{func:\"opacify($color, $amount)\",desc:o(\"scss.builtin.opacify\",\"Makes a color more opaque.\")},{func:\"fade-in($color, $amount)\",desc:o(\"scss.builtin.fade-in\",\"Makes a color more opaque.\")},{func:\"transparentize($color, $amount)\",desc:o(\"scss.builtin.transparentize\",\"Makes a color more transparent.\")},{func:\"fade-out($color, $amount)\",desc:o(\"scss.builtin.fade-out\",\"Makes a color more transparent.\")},{func:\"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.adjust-color\",\"Increases or decreases one or more components of a color.\")},{func:\"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.scale-color\",\"Fluidly scales one or more properties of a color.\")},{func:\"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.change-color\",\"Changes one or more properties of a color.\")},{func:\"ie-hex-str($color)\",desc:o(\"scss.builtin.ie-hex-str\",\"Converts a color into the format understood by IE filters.\")}],t.selectorFuncs=[{func:\"selector-nest($selectors…)\",desc:o(\"scss.builtin.selector-nest\",\"Nests selector beneath one another like they would be nested in the stylesheet.\")},{func:\"selector-append($selectors…)\",desc:o(\"scss.builtin.selector-append\",\"Appends selectors to one another without spaces in between.\")},{func:\"selector-extend($selector, $extendee, $extender)\",desc:o(\"scss.builtin.selector-extend\",\"Extends $extendee with $extender within $selector.\")},{func:\"selector-replace($selector, $original, $replacement)\",desc:o(\"scss.builtin.selector-replace\",\"Replaces $original with $replacement within $selector.\")},{func:\"selector-unify($selector1, $selector2)\",desc:o(\"scss.builtin.selector-unify\",\"Unifies two selectors to produce a selector that matches elements matched by both.\")},{func:\"is-superselector($super, $sub)\",desc:o(\"scss.builtin.is-superselector\",\"Returns whether $super matches all the elements $sub does, and possibly more.\")},{func:\"simple-selectors($selector)\",desc:o(\"scss.builtin.simple-selectors\",\"Returns the simple selectors that comprise a compound selector.\")},{func:\"selector-parse($selector)\",desc:o(\"scss.builtin.selector-parse\",\"Parses a selector into the format returned by &.\")}],t.builtInFuncs=[{func:\"unquote($string)\",desc:o(\"scss.builtin.unquote\",\"Removes quotes from a string.\")},{func:\"quote($string)\",desc:o(\"scss.builtin.quote\",\"Adds quotes to a string.\")},{func:\"str-length($string)\",desc:o(\"scss.builtin.str-length\",\"Returns the number of characters in a string.\")},{func:\"str-insert($string, $insert, $index)\",desc:o(\"scss.builtin.str-insert\",\"Inserts $insert into $string at $index.\")},{func:\"str-index($string, $substring)\",desc:o(\"scss.builtin.str-index\",\"Returns the index of the first occurance of $substring in $string.\")},{func:\"str-slice($string, $start-at, [$end-at])\",desc:o(\"scss.builtin.str-slice\",\"Extracts a substring from $string.\")},{func:\"to-upper-case($string)\",desc:o(\"scss.builtin.to-upper-case\",\"Converts a string to upper case.\")},{func:\"to-lower-case($string)\",desc:o(\"scss.builtin.to-lower-case\",\"Converts a string to lower case.\")},{func:\"percentage($number)\",desc:o(\"scss.builtin.percentage\",\"Converts a unitless number to a percentage.\"),type:\"percentage\"},{func:\"round($number)\",desc:o(\"scss.builtin.round\",\"Rounds a number to the nearest whole number.\")},{func:\"ceil($number)\",desc:o(\"scss.builtin.ceil\",\"Rounds a number up to the next whole number.\")},{func:\"floor($number)\",desc:o(\"scss.builtin.floor\",\"Rounds a number down to the previous whole number.\")},{func:\"abs($number)\",desc:o(\"scss.builtin.abs\",\"Returns the absolute value of a number.\")},{func:\"min($numbers)\",desc:o(\"scss.builtin.min\",\"Finds the minimum of several numbers.\")},{func:\"max($numbers)\",desc:o(\"scss.builtin.max\",\"Finds the maximum of several numbers.\")},{func:\"random([$limit])\",desc:o(\"scss.builtin.random\",\"Returns a random number.\")},{func:\"length($list)\",desc:o(\"scss.builtin.length\",\"Returns the length of a list.\")},{func:\"nth($list, $n)\",desc:o(\"scss.builtin.nth\",\"Returns a specific item in a list.\")},{func:\"set-nth($list, $n, $value)\",desc:o(\"scss.builtin.set-nth\",\"Replaces the nth item in a list.\")},{func:\"join($list1, $list2, [$separator])\",desc:o(\"scss.builtin.join\",\"Joins together two lists into one.\")},{func:\"append($list1, $val, [$separator])\",desc:o(\"scss.builtin.append\",\"Appends a single value onto the end of a list.\")},{func:\"zip($lists)\",desc:o(\"scss.builtin.zip\",\"Combines several lists into a single multidimensional list.\")},{func:\"index($list, $value)\",desc:o(\"scss.builtin.index\",\"Returns the position of a value within a list.\")},{func:\"list-separator(#list)\",desc:o(\"scss.builtin.list-separator\",\"Returns the separator of a list.\")},{func:\"map-get($map, $key)\",desc:o(\"scss.builtin.map-get\",\"Returns the value in a map associated with a given key.\")},{func:\"map-merge($map1, $map2)\",desc:o(\"scss.builtin.map-merge\",\"Merges two maps together into a new map.\")},{func:\"map-remove($map, $keys)\",desc:o(\"scss.builtin.map-remove\",\"Returns a new map with keys removed.\")},{func:\"map-keys($map)\",desc:o(\"scss.builtin.map-keys\",\"Returns a list of all keys in a map.\")},{func:\"map-values($map)\",desc:o(\"scss.builtin.map-values\",\"Returns a list of all values in a map.\")},{func:\"map-has-key($map, $key)\",desc:o(\"scss.builtin.map-has-key\",\"Returns whether a map has a value associated with a given key.\")},{func:\"keywords($args)\",desc:o(\"scss.builtin.keywords\",\"Returns the keywords passed to a function that takes variable arguments.\")},{func:\"feature-exists($feature)\",desc:o(\"scss.builtin.feature-exists\",\"Returns whether a feature exists in the current Sass runtime.\")},{func:\"variable-exists($name)\",desc:o(\"scss.builtin.variable-exists\",\"Returns whether a variable with the given name exists in the current scope.\")},{func:\"global-variable-exists($name)\",desc:o(\"scss.builtin.global-variable-exists\",\"Returns whether a variable with the given name exists in the global scope.\")},{func:\"function-exists($name)\",desc:o(\"scss.builtin.function-exists\",\"Returns whether a function with the given name exists.\")},{func:\"mixin-exists($name)\",desc:o(\"scss.builtin.mixin-exists\",\"Returns whether a mixin with the given name exists.\")},{func:\"inspect($value)\",desc:o(\"scss.builtin.inspect\",\"Returns the string representation of a value as it would be represented in Sass.\")},{func:\"type-of($value)\",desc:o(\"scss.builtin.type-of\",\"Returns the type of a value.\")},{func:\"unit($number)\",desc:o(\"scss.builtin.unit\",\"Returns the unit(s) associated with a number.\")},{func:\"unitless($number)\",desc:o(\"scss.builtin.unitless\",\"Returns whether a number has units.\")},{func:\"comparable($number1, $number2)\",desc:o(\"scss.builtin.comparable\",\"Returns whether two numbers can be added, subtracted, or compared.\")},{func:\"call($name, $args…)\",desc:o(\"scss.builtin.call\",\"Dynamically calls a Sass function.\")}],t.scssAtDirectives=[{label:\"@extend\",documentation:o(\"scss.builtin.@extend\",\"Inherits the styles of another selector.\"),kind:i.CompletionItemKind.Keyword},{label:\"@at-root\",documentation:o(\"scss.builtin.@at-root\",\"Causes one or more rules to be emitted at the root of the document.\"),kind:i.CompletionItemKind.Keyword},{label:\"@debug\",documentation:o(\"scss.builtin.@debug\",\"Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files.\"),kind:i.CompletionItemKind.Keyword},{label:\"@warn\",documentation:o(\"scss.builtin.@warn\",\"Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option.\"),kind:i.CompletionItemKind.Keyword},{label:\"@error\",documentation:o(\"scss.builtin.@error\",\"Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions.\"),kind:i.CompletionItemKind.Keyword},{label:\"@if\",documentation:o(\"scss.builtin.@if\",\"Includes the body if the expression does not evaluate to `false` or `null`.\"),insertText:\"@if ${1:expr} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@for\",documentation:o(\"scss.builtin.@for\",\"For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause.\"),insertText:\"@for \\\\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@each\",documentation:o(\"scss.builtin.@each\",\"Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`.\"),insertText:\"@each \\\\$${1:var} in ${2:list} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@while\",documentation:o(\"scss.builtin.@while\",\"While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`.\"),insertText:\"@while ${1:condition} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@mixin\",documentation:o(\"scss.builtin.@mixin\",\"Defines styles that can be re-used throughout the stylesheet with `@include`.\"),insertText:\"@mixin ${1:name} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@include\",documentation:o(\"scss.builtin.@include\",\"Includes the styles defined by another mixin into the current rule.\"),kind:i.CompletionItemKind.Keyword},{label:\"@function\",documentation:o(\"scss.builtin.@function\",\"Defines complex operations that can be re-used throughout stylesheets.\"),kind:i.CompletionItemKind.Keyword}],t.scssModuleLoaders=[{label:\"@use\",documentation:o(\"scss.builtin.@use\",\"Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/use\"}],insertText:\"@use '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@forward\",documentation:o(\"scss.builtin.@forward\",\"Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/forward\"}],insertText:\"@forward '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword}],t.scssModuleBuiltIns=[{label:\"sass:math\",documentation:o(\"scss.builtin.sass:math\",\"Provides functions that operate on numbers.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/math\"}],kind:i.CompletionItemKind.Module},{label:\"sass:string\",documentation:o(\"scss.builtin.sass:string\",\"Makes it easy to combine, search, or split apart strings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/string\"}],kind:i.CompletionItemKind.Module},{label:\"sass:color\",documentation:o(\"scss.builtin.sass:color\",\"Generates new colors based on existing ones, making it easy to build color themes.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/color\"}],kind:i.CompletionItemKind.Module},{label:\"sass:list\",documentation:o(\"scss.builtin.sass:list\",\"Lets you access and modify values in lists.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/list\"}],kind:i.CompletionItemKind.Module},{label:\"sass:map\",documentation:o(\"scss.builtin.sass:map\",\"Makes it possible to look up the value associated with a key in a map, and much more.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/map\"}],kind:i.CompletionItemKind.Module},{label:\"sass:selector\",documentation:o(\"scss.builtin.sass:selector\",\"Provides access to Sass’s powerful selector engine.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/selector\"}],kind:i.CompletionItemKind.Module},{label:\"sass:meta\",documentation:o(\"scss.builtin.sass:meta\",\"Exposes the details of Sass’s inner workings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/meta\"}],kind:i.CompletionItemKind.Module}],t}(n.CSSCompletion);function a(e){e.forEach((function(e){if(e.documentation&&e.references&&e.references.length>0){var t=\"string\"==typeof e.documentation?{kind:\"markdown\",value:e.documentation}:{kind:\"markdown\",value:e.documentation.value};t.value+=\"\\n\\n\",t.value+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"),e.documentation=t}}))}t.SCSSCompletion=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"`\".charCodeAt(0),l=\".\".charCodeAt(0),c=n.TokenType.CustomToken;t.Ellipsis=c++;var d=function(e){function c(){return null!==e&&e.apply(this,arguments)||this}return __extends(c,e),c.prototype.scanNext=function(n){var r=this.escapedJavaScript();return null!==r?this.finishToken(n,r):this.stream.advanceIfChars([l,l,l])?this.finishToken(n,t.Ellipsis):e.prototype.scanNext.call(this,n)},c.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},c.prototype.escapedJavaScript=function(){return this.stream.peekChar()===a?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==a})),this.stream.advanceIfChar(a)?n.TokenType.EscapedJavaScript:n.TokenType.BadEscapedJavaScript):null},c}(n.Scanner);t.LESSScanner=d}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessParser\",[\"require\",\"exports\",\"./lessScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./lessScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./cssErrors\"),a=function(e){function t(){return e.call(this,new n.LESSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\")&&!this.peekKeyword(\"@import-once\"))return null;var e=this.create(o.Import);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(!this.accept(r.TokenType.Ident))return this.finish(e,s.ParseError.IdentifierExpected,[r.TokenType.SemiColon]);do{if(!this.accept(r.TokenType.Comma))break}while(this.accept(r.TokenType.Ident));if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,s.ParseError.RightParenthesisExpected,[r.TokenType.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,s.ParseError.URIOrStringExpected,[r.TokenType.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword(\"@plugin\"))return null;var e=this.createNode(o.NodeType.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.TokenType.SemiColon)?this.finish(e):this.finish(e,s.ParseError.SemiColonExpected):this.finish(e,s.ParseError.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(o.MediaQuery);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(o.VariableDeclaration),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.TokenType.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,s.ParseError.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(o.MixinDeclaration);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);if(!this.accept(r.TokenType.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.TokenType.CurlyL))return null;var n=this.create(o.BodyDeclaration);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.TokenType.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(o.Node),t=this.mark();return this.accept(r.TokenType.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.TokenType.BracketR)||this.accept(r.TokenType.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim(\"$\");if(!this.peekDelim(\"@\")&&!n&&!this.peek(r.TokenType.AtKeyword))return null;for(var i=this.create(o.Variable),s=this.mark();this.acceptDelim(\"@\")||!e&&this.acceptDelim(\"$\");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return(this.accept(r.TokenType.AtKeyword)||this.accept(r.TokenType.Ident))&&(t||!this.peek(r.TokenType.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(s),null)},t.prototype._parseTerm=function(){var t=e.prototype._parseTerm.call(this);return t||((t=this.create(o.Term)).setExpression(this._parseVariable())||t.setExpression(this._parseEscaped())||t.setExpression(this._tryParseMixinReference(!1))?this.finish(t):null)},t.prototype._parseEscaped=function(){if(this.peek(r.TokenType.EscapedJavaScript)||this.peek(r.TokenType.BadEscapedJavaScript)){var e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim(\"~\")){e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.accept(r.TokenType.String)||this.accept(r.TokenType.EscapedJavaScript)?this.finish(e):this.finish(e,s.ParseError.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(\">\")){var e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}if(this.peekDelim(\"=\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"<\"),e}if(this.peekDelim(\"<\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseUnknownAtRule():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([o.ReferenceType.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(o.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.TokenType.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(o.NodeType.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(o.Identifier);r.isCustomProperty=this.acceptDelim(\"-\")&&this.acceptDelim(\"-\");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim(\"+\"),this.hasWhitespace()||this.acceptIdent(\"_\")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.TokenType.Ident)||this.peekDelim(\"@\")||this.peekDelim(\"$\")||this.peekDelim(\"-\")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim(\"-\")&&(n.hasWhitespace()||n.acceptDelim(\"-\"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.TokenType.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim(\"@\")||this.peekDelim(\"$\")){var t=this.createNode(o.NodeType.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.TokenType.CurlyR)?this.finish(t):this.finish(t,s.ParseError.RightCurlyExpected):this.finish(t,s.ParseError.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(o.MixinDeclaration);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);return this.accept(r.TokenType.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.TokenType.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(e=this.create(o.Identifier),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.TokenType.Hash))return null;e=this.create(o.Identifier),this.consumeToken()}return e.referenceTypes=[o.ReferenceType.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.TokenType.Colon))return null;var t=this.mark(),n=this.create(o.ExtendsReference);return this.consumeToken(),this.acceptIdent(\"extend\")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim(\"&\"))return null;var e=this.mark(),t=this.create(o.ExtendsReference);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.TokenType.Colon)&&this.acceptIdent(\"extend\")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,s.ParseError.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.TokenType.AtKeyword))return null;var e=this.mark(),t=this.create(o.MixinReference);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)?this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(o.MixinReference),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(\">\");var a=this._parseMixinDeclarationIdentifier();if(!a)break;n.getNamespaces().addChild(i),i=a}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var l=!1;if(!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)){if(l=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,s.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(n,s.ParseError.RightParenthesisExpected);i.referenceTypes=[o.ReferenceType.Mixin]}else i.referenceTypes=[o.ReferenceType.Mixin,o.ReferenceType.Rule];return this.peek(r.TokenType.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),l||this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.CurlyR)||this.peek(r.TokenType.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.TokenType.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(o.FunctionParameter);if(this.peekKeyword(\"@rest\")){var t=this.create(o.Node);return this.consumeToken(),this.accept(n.Ellipsis)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,s.ParseError.DotExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR])}if(this.peek(n.Ellipsis)){var i=this.create(o.Node);return this.consumeToken(),e.setIdentifier(this.finish(i)),this.finish(e)}var a=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.TokenType.Colon),a=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||a?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent(\"when\"))return null;var e=this.create(o.LessGuard);if(this.consumeToken(),e.isNegated=this.acceptIdent(\"not\"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);for(;this.acceptIdent(\"and\")||this.accept(r.TokenType.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.GuardCondition);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(o.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,s.ParseError.ExpressionExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim(\"%\")){var t=this.create(o.Identifier);return t.referenceTypes=[o.ReferenceType.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t}(i.Parser);t.LESSParser=a}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lessCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../cssLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),o=function(e){function t(t){return e.call(this,\"@\",t)||this}return __extends(t,e),t.prototype.createFunctionProposals=function(e,t,n,i){for(var o=0,s=e;o<s.length;o++){var a=s[o],l={label:a.name,detail:a.example,documentation:a.description,textEdit:r.TextEdit.replace(this.getCompletionRange(t),a.name+\"($0)\"),insertTextFormat:r.InsertTextFormat.Snippet,kind:r.CompletionItemKind.Function};n&&(l.sortText=\"z\"),i.items.push(l)}return i},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInProposals;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.builtInProposals=[{name:\"if\",example:\"if(condition, trueValue [, falseValue]);\",description:i(\"less.builtin.if\",\"returns one of two values depending on a condition.\")},{name:\"boolean\",example:\"boolean(condition);\",description:i(\"less.builtin.boolean\",'\"store\" a boolean test for later evaluation in a guard or if().')},{name:\"length\",example:\"length(@list);\",description:i(\"less.builtin.length\",\"returns the number of elements in a value list\")},{name:\"extract\",example:\"extract(@list, index);\",description:i(\"less.builtin.extract\",\"returns a value at the specified position in the list\")},{name:\"range\",example:\"range([start, ] end [, step]);\",description:i(\"less.builtin.range\",\"generate a list spanning a range of values\")},{name:\"each\",example:\"each(@list, ruleset);\",description:i(\"less.builtin.each\",\"bind the evaluation of a ruleset to each member of a list.\")},{name:\"escape\",example:\"escape(@string);\",description:i(\"less.builtin.escape\",\"URL encodes a string\")},{name:\"e\",example:\"e(@string);\",description:i(\"less.builtin.e\",\"escape string content\")},{name:\"replace\",example:\"replace(@string, @pattern, @replacement[, @flags]);\",description:i(\"less.builtin.replace\",\"string replace\")},{name:\"unit\",example:\"unit(@dimension, [@unit: '']);\",description:i(\"less.builtin.unit\",\"remove or change the unit of a dimension\")},{name:\"color\",example:\"color(@string);\",description:i(\"less.builtin.color\",\"parses a string to a color\"),type:\"color\"},{name:\"convert\",example:\"convert(@value, unit);\",description:i(\"less.builtin.convert\",\"converts numbers from one type into another\")},{name:\"data-uri\",example:\"data-uri([mimetype,] url);\",description:i(\"less.builtin.data-uri\",\"inlines a resource and falls back to `url()`\"),type:\"url\"},{name:\"abs\",description:i(\"less.builtin.abs\",\"absolute value of a number\"),example:\"abs(number);\"},{name:\"acos\",description:i(\"less.builtin.acos\",\"arccosine - inverse of cosine function\"),example:\"acos(number);\"},{name:\"asin\",description:i(\"less.builtin.asin\",\"arcsine - inverse of sine function\"),example:\"asin(number);\"},{name:\"ceil\",example:\"ceil(@number);\",description:i(\"less.builtin.ceil\",\"rounds up to an integer\")},{name:\"cos\",description:i(\"less.builtin.cos\",\"cosine function\"),example:\"cos(number);\"},{name:\"floor\",description:i(\"less.builtin.floor\",\"rounds down to an integer\"),example:\"floor(@number);\"},{name:\"percentage\",description:i(\"less.builtin.percentage\",\"converts to a %, e.g. 0.5 > 50%\"),example:\"percentage(@number);\",type:\"percentage\"},{name:\"round\",description:i(\"less.builtin.round\",\"rounds a number to a number of places\"),example:\"round(number, [places: 0]);\"},{name:\"sqrt\",description:i(\"less.builtin.sqrt\",\"calculates square root of a number\"),example:\"sqrt(number);\"},{name:\"sin\",description:i(\"less.builtin.sin\",\"sine function\"),example:\"sin(number);\"},{name:\"tan\",description:i(\"less.builtin.tan\",\"tangent function\"),example:\"tan(number);\"},{name:\"atan\",description:i(\"less.builtin.atan\",\"arctangent - inverse of tangent function\"),example:\"atan(number);\"},{name:\"pi\",description:i(\"less.builtin.pi\",\"returns pi\"),example:\"pi();\"},{name:\"pow\",description:i(\"less.builtin.pow\",\"first argument raised to the power of the second argument\"),example:\"pow(@base, @exponent);\"},{name:\"mod\",description:i(\"less.builtin.mod\",\"first argument modulus second argument\"),example:\"mod(number, number);\"},{name:\"min\",description:i(\"less.builtin.min\",\"returns the lowest of one or more values\"),example:\"min(@x, @y);\"},{name:\"max\",description:i(\"less.builtin.max\",\"returns the lowest of one or more values\"),example:\"max(@x, @y);\"}],t.colorProposals=[{name:\"argb\",example:\"argb(@color);\",description:i(\"less.builtin.argb\",\"creates a #AARRGGBB\")},{name:\"hsl\",example:\"hsl(@hue, @saturation, @lightness);\",description:i(\"less.builtin.hsl\",\"creates a color\")},{name:\"hsla\",example:\"hsla(@hue, @saturation, @lightness, @alpha);\",description:i(\"less.builtin.hsla\",\"creates a color\")},{name:\"hsv\",example:\"hsv(@hue, @saturation, @value);\",description:i(\"less.builtin.hsv\",\"creates a color\")},{name:\"hsva\",example:\"hsva(@hue, @saturation, @value, @alpha);\",description:i(\"less.builtin.hsva\",\"creates a color\")},{name:\"hue\",example:\"hue(@color);\",description:i(\"less.builtin.hue\",\"returns the `hue` channel of `@color` in the HSL space\")},{name:\"saturation\",example:\"saturation(@color);\",description:i(\"less.builtin.saturation\",\"returns the `saturation` channel of `@color` in the HSL space\")},{name:\"lightness\",example:\"lightness(@color);\",description:i(\"less.builtin.lightness\",\"returns the `lightness` channel of `@color` in the HSL space\")},{name:\"hsvhue\",example:\"hsvhue(@color);\",description:i(\"less.builtin.hsvhue\",\"returns the `hue` channel of `@color` in the HSV space\")},{name:\"hsvsaturation\",example:\"hsvsaturation(@color);\",description:i(\"less.builtin.hsvsaturation\",\"returns the `saturation` channel of `@color` in the HSV space\")},{name:\"hsvvalue\",example:\"hsvvalue(@color);\",description:i(\"less.builtin.hsvvalue\",\"returns the `value` channel of `@color` in the HSV space\")},{name:\"red\",example:\"red(@color);\",description:i(\"less.builtin.red\",\"returns the `red` channel of `@color`\")},{name:\"green\",example:\"green(@color);\",description:i(\"less.builtin.green\",\"returns the `green` channel of `@color`\")},{name:\"blue\",example:\"blue(@color);\",description:i(\"less.builtin.blue\",\"returns the `blue` channel of `@color`\")},{name:\"alpha\",example:\"alpha(@color);\",description:i(\"less.builtin.alpha\",\"returns the `alpha` channel of `@color`\")},{name:\"luma\",example:\"luma(@color);\",description:i(\"less.builtin.luma\",\"returns the `luma` value (perceptual brightness) of `@color`\")},{name:\"saturate\",example:\"saturate(@color, 10%);\",description:i(\"less.builtin.saturate\",\"return `@color` 10% points more saturated\")},{name:\"desaturate\",example:\"desaturate(@color, 10%);\",description:i(\"less.builtin.desaturate\",\"return `@color` 10% points less saturated\")},{name:\"lighten\",example:\"lighten(@color, 10%);\",description:i(\"less.builtin.lighten\",\"return `@color` 10% points lighter\")},{name:\"darken\",example:\"darken(@color, 10%);\",description:i(\"less.builtin.darken\",\"return `@color` 10% points darker\")},{name:\"fadein\",example:\"fadein(@color, 10%);\",description:i(\"less.builtin.fadein\",\"return `@color` 10% points less transparent\")},{name:\"fadeout\",example:\"fadeout(@color, 10%);\",description:i(\"less.builtin.fadeout\",\"return `@color` 10% points more transparent\")},{name:\"fade\",example:\"fade(@color, 50%);\",description:i(\"less.builtin.fade\",\"return `@color` with 50% transparency\")},{name:\"spin\",example:\"spin(@color, 10);\",description:i(\"less.builtin.spin\",\"return `@color` with a 10 degree larger in hue\")},{name:\"mix\",example:\"mix(@color1, @color2, [@weight: 50%]);\",description:i(\"less.builtin.mix\",\"return a mix of `@color1` and `@color2`\")},{name:\"greyscale\",example:\"greyscale(@color);\",description:i(\"less.builtin.greyscale\",\"returns a grey, 100% desaturated color\")},{name:\"contrast\",example:\"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);\",description:i(\"less.builtin.contrast\",\"return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes\")},{name:\"multiply\",example:\"multiply(@color1, @color2);\"},{name:\"screen\",example:\"screen(@color1, @color2);\"},{name:\"overlay\",example:\"overlay(@color1, @color2);\"},{name:\"softlight\",example:\"softlight(@color1, @color2);\"},{name:\"hardlight\",example:\"hardlight(@color1, @color2);\"},{name:\"difference\",example:\"difference(@color1, @color2);\"},{name:\"exclusion\",example:\"exclusion(@color1, @color2);\"},{name:\"average\",example:\"average(@color1, @color2);\"},{name:\"negation\",example:\"negation(@color1, @color2);\"}],t}(n.CSSCompletion);t.LESSCompletion=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssFolding\",[\"require\",\"exports\",\"../parser/cssScanner\",\"../parser/scssScanner\",\"../parser/lessScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssScanner\"),r=e(\"../parser/scssScanner\"),i=e(\"../parser/lessScanner\");function o(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}t.getFoldingRanges=function(e,t){return function(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine<o&&o<e.endLine||(i.push(e),o=e.endLine)})),i.length<n?i:i.slice(0,n)}(function(e){function t(t){return e.positionAt(t.offset).line}function s(t){return e.positionAt(t.offset+t.len).line}var a=[],l=[],c=function(){switch(e.languageId){case\"scss\":return new r.SCSSScanner;case\"less\":return new i.LESSScanner;default:return new n.Scanner}}();c.ignoreComment=!1,c.setSource(e.getText());var d=c.scan(),p=null,h=function(){switch(d.type){case n.TokenType.CurlyL:case r.InterpolationFunction:l.push({line:t(d),type:\"brace\",isStart:!0});break;case n.TokenType.CurlyR:if(0!==l.length){if(!(u=o(l,\"brace\")))break;var i=s(d);\"brace\"===u.type&&(p&&s(p)!==i&&i--,u.line!==i&&a.push({startLine:u.line,endLine:i,kind:void 0}))}break;case n.TokenType.Comment:var h=function(e){return\"#region\"===e?{line:t(d),type:\"comment\",isStart:!0}:{line:s(d),type:\"comment\",isStart:!1}},m=function(t){var n=t.text.match(/^\\s*\\/\\*\\s*(#region|#endregion)\\b\\s*(.*?)\\s*\\*\\//);if(n)return h(n[1]);if(\"scss\"===e.languageId||\"less\"===e.languageId){var r=t.text.match(/^\\s*\\/\\/\\s*(#region|#endregion)\\b\\s*(.*?)\\s*/);if(r)return h(r[1])}return null}(d);if(m)if(m.isStart)l.push(m);else{var u;if(!(u=o(l,\"comment\")))break;\"comment\"===u.type&&u.line!==m.line&&a.push({startLine:u.line,endLine:m.line,kind:\"region\"})}else{var f=function(e,n){var r=t(e),i=s(e);return r!==i?{startLine:r,endLine:i,kind:n}:null}(d,\"comment\");f&&a.push(f)}}p=d,d=c.scan()};for(;d.type!==n.TokenType.EOF;)h();return a}(e),t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssSelectionRange\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"../parser/cssNodes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"../parser/cssNodes\");t.getSelectionRanges=function(e,t,i){return t.map((function(t){for(var o=function(t){var n=i.findChildAtOffset(e.offsetAt(t),!0);if(!n)return[];var o=[];for(;n;)n.parent&&n.offset===n.parent.offset&&n.end===n.parent.end?n=n.parent:(n.type===r.NodeType.Declarations?o.push([n.offset+1,n.end-1]):o.push([n.offset,n.end]),n=n.parent);return o}(t),s=void 0,a=o.length-1;a>=0;a--)s=n.SelectionRange.create(n.Range.create(e.positionAt(o[a][0]),e.positionAt(o[a][1])),s);return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var i=navigator.userAgent;r=i.indexOf(\"Windows\")>=0}var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,i,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=i||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===i?i=this.query:null===i&&(i=\"\"),void 0===o?o=this.fragment:null===o&&(o=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new h(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new h(\"file\",t,e,\"\",\"\")},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===p?t.fsPath:null,n}return t},e}();t.URI=d;var p=r?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=p),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),m=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function u(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=m[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:u,r=\"\",i=e.scheme,o=e.authority,s=e.path,a=e.query,c=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var d=o.indexOf(\"@\");if(-1!==d){var p=o.substr(0,d);o=o.substr(d+1),-1===(d=p.indexOf(\":\"))?r+=n(p,!1):(r+=n(p.substr(0,d),!1),r+=\":\",r+=n(p.substr(d+1),!1)),r+=\"@\"}-1===(d=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,d),!1),r+=o.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}r+=n(s,!0)}return a&&(r+=\"?\",r+=n(a,!1)),c&&(r+=\"#\",r+=t?c:u(c,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssNavigation\",[\"require\",\"exports\",\"./cssNavigation\",\"../cssLanguageTypes\",\"../parser/cssNodes\",\"vscode-uri\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNavigation\"),r=e(\"../cssLanguageTypes\"),i=e(\"../parser/cssNodes\"),o=e(\"vscode-uri\"),s=function(e){function t(t){var n=e.call(this)||this;return n.fileSystemProvider=t,n}return __extends(t,e),t.prototype.isRawStringDocumentLinkNode=function(t){return e.prototype.isRawStringDocumentLinkNode.call(this,t)||t.type===i.NodeType.Use||t.type===i.NodeType.Forward},t.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){function i(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){switch(n.label){case 0:if(!a)return[2,!1];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,a.stat(e)];case 2:return(t=n.sent()).type===r.FileType.Unknown&&-1===t.size?[2,!1]:[2,!0];case 3:return n.sent(),[2,!1];case 4:return[2]}}))}))}var s,a,l,c,d,p,h,m;return __generator(this,(function(r){switch(r.label){case 0:if(s=this.findDocumentLinks(e,t,n),a=this.fileSystemProvider,l=[],!a)return[3,9];c=0,r.label=1;case 1:if(!(c<s.length))return[3,8];if(!(d=s[c].target))return[3,7];p=null;try{p=o.URI.parse(d)}catch(e){if(e instanceof URIError)return[3,7];throw e}return(h=function(e){if(\"\"!==e.path&&!e.path.endsWith(\".scss\")&&!e.path.endsWith(\".css\")){if(e.path.endsWith(\"/\"))return[e.with({path:e.path+\"index.scss\"}).toString(),e.with({path:e.path+\"_index.scss\"}).toString()];var t=e.path.split(\"/\"),n=t[t.length-1],r=e.path.slice(0,-n.length);if(n.startsWith(\"_\"))return e.path.endsWith(\".scss\")?void 0:[e.with({path:e.path+\".scss\"}).toString()];var i=n+\".scss\",o=function(t){return e.with({path:r+t}).toString()};return[o(i),o(\"_\"+i),o(i.slice(0,-5)+\"/index.scss\"),o(i.slice(0,-5)+\"/_index.scss\"),o(i.slice(0,-5)+\".css\")]}}(p))?[3,3]:[4,i(d)];case 2:return r.sent()&&l.push(s[c]),[3,7];case 3:m=0,r.label=4;case 4:return m<h.length?[4,i(h[m])]:[3,7];case 5:if(r.sent())return l.push(__assign(__assign({},s[c]),{target:h[m]})),[3,7];r.label=6;case 6:return m++,[3,4];case 7:return c++,[3,1];case 8:return[3,10];case 9:l.push.apply(l,s),r.label=10;case 10:return[2,l]}}))}))},t}(n.CSSNavigation);t.SCSSNavigation=s})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageService\",[\"require\",\"exports\",\"./parser/cssParser\",\"./services/cssCompletion\",\"./services/cssHover\",\"./services/cssNavigation\",\"./services/cssCodeActions\",\"./services/cssValidation\",\"./parser/scssParser\",\"./services/scssCompletion\",\"./parser/lessParser\",\"./services/lessCompletion\",\"./services/cssFolding\",\"./languageFacts/facts\",\"./services/cssSelectionRange\",\"./services/scssNavigation\",\"./cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./parser/cssParser\"),r=e(\"./services/cssCompletion\"),i=e(\"./services/cssHover\"),o=e(\"./services/cssNavigation\"),s=e(\"./services/cssCodeActions\"),a=e(\"./services/cssValidation\"),l=e(\"./parser/scssParser\"),c=e(\"./services/scssCompletion\"),d=e(\"./parser/lessParser\"),p=e(\"./services/lessCompletion\"),h=e(\"./services/cssFolding\"),m=e(\"./languageFacts/facts\"),u=e(\"./services/cssSelectionRange\"),f=e(\"./services/scssNavigation\");function g(e,t,n,r,i,o){return{configure:function(e){o.configure(e),t.configure(e)},doValidation:o.doValidation.bind(o),parseStylesheet:e.parseStylesheet.bind(e),doComplete:t.doComplete.bind(t),setCompletionParticipants:t.setCompletionParticipants.bind(t),doHover:n.doHover.bind(n),findDefinition:r.findDefinition.bind(r),findReferences:r.findReferences.bind(r),findDocumentHighlights:r.findDocumentHighlights.bind(r),findDocumentLinks:r.findDocumentLinks.bind(r),findDocumentLinks2:r.findDocumentLinks2.bind(r),findDocumentSymbols:r.findDocumentSymbols.bind(r),doCodeActions:i.doCodeActions.bind(i),doCodeActions2:i.doCodeActions2.bind(i),findColorSymbols:function(e,t){return r.findDocumentColors(e,t).map((function(e){return e.range}))},findDocumentColors:r.findDocumentColors.bind(r),getColorPresentations:r.getColorPresentations.bind(r),doRename:r.doRename.bind(r),getFoldingRanges:h.getFoldingRanges,getSelectionRanges:u.getSelectionRanges}}function b(e){e&&e.customDataProviders&&m.cssDataManager.addDataProviders(e.customDataProviders)}!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./cssLanguageTypes\")),t.getCSSLanguageService=function(e){return b(e),g(new n.Parser,new r.CSSCompletion(null,e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)},t.getSCSSLanguageService=function(e){return b(e),g(new l.SCSSParser,new c.SCSSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new f.SCSSNavigation(e&&e.fileSystemProvider),new s.CSSCodeActions,new a.CSSValidation)},t.getLESSLanguageService=function(e){return b(e),g(new d.LESSParser,new p.LESSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)}})),define(\"vscode-css-languageservice\",[\"vscode-css-languageservice/cssLanguageService\"],(function(e){return e})),define(\"vs/language/css/languageFeatures\",[\"require\",\"exports\",\"vscode-css-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=monaco.Uri,i=monaco.Range,o=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var i=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){window.clearTimeout(t),t=window.setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},o=function(e){monaco.editor.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(i)),this._disposables.push(monaco.editor.onWillDisposeModel(o)),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){o(e.model),i(e.model)}))),n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===r._languageId&&(o(e),i(e))}))})),this._disposables.push({dispose:function(){for(var e in r._listener)r._listener[e].dispose()}}),monaco.editor.getModels().forEach(i)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(t){return t.doValidation(e.toString())})).then((function(n){var r=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:s(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n})),i=monaco.editor.getModel(e);i.getModeId()===t&&monaco.editor.setModelMarkers(i,t,r)})).then(void 0,(function(e){console.error(e)}))},e}();function s(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function a(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function l(e){if(e)return new monaco.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function c(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function d(e){if(e)return{range:l(e.range),text:e.newText}}t.DiagnosticsAdapter=o;var p=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\" \",\":\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,r,o){var s=e.uri;return this._worker(s).then((function(e){return e.doComplete(s.toString(),a(t))})).then((function(r){if(r){var o=e.getWordUntilPosition(t),s=new i(t.lineNumber,o.startColumn,t.lineNumber,o.endColumn),a=r.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:s,kind:c(e.kind)};return e.textEdit&&(t.range=l(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:r.isIncomplete,suggestions:a}}}))},e}();function h(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function m(e){if(e)return Array.isArray(e)?e.map(h):[h(e)]}t.CompletionAdapter=p;var u=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),a(t))})).then((function(e){if(e)return{range:l(e.range),contents:m(e.contents)}}))},e}();function f(e){switch(e){case n.DocumentHighlightKind.Read:return monaco.languages.DocumentHighlightKind.Read;case n.DocumentHighlightKind.Write:return monaco.languages.DocumentHighlightKind.Write;case n.DocumentHighlightKind.Text:return monaco.languages.DocumentHighlightKind.Text}return monaco.languages.DocumentHighlightKind.Text}t.HoverAdapter=u;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDocumentHighlights(r.toString(),a(t))})).then((function(e){if(e)return e.map((function(e){return{range:l(e.range),kind:f(e.kind)}}))}))},e}();function b(e){return{uri:r.parse(e.uri),range:l(e.range)}}t.DocumentHighlightAdapter=g;var y=function(){function e(e){this._worker=e}return e.prototype.provideDefinition=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDefinition(r.toString(),a(t))})).then((function(e){if(e)return[b(e)]}))},e}();t.DefinitionAdapter=y;var v=function(){function e(e){this._worker=e}return e.prototype.provideReferences=function(e,t,n,r){var i=e.uri;return this._worker(i).then((function(e){return e.findReferences(i.toString(),a(t))})).then((function(e){if(e)return e.map(b)}))},e}();t.ReferenceAdapter=v;var w=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,i){var o=e.uri;return this._worker(o).then((function(e){return e.doRename(o.toString(),a(t),n)})).then((function(e){return function(e){if(e&&e.changes){var t=[];for(var n in e.changes)for(var i=r.parse(n),o=0,s=e.changes[n];o<s.length;o++){var a=s[o];t.push({resource:i,edit:{range:l(a.range),text:a.newText}})}return{edits:t}}}(e)}))},e}();function x(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.RenameAdapter=w;var S=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:x(e.kind),tags:[],range:l(e.location.range),selectionRange:l(e.location.range)}}))}))},e}();t.DocumentSymbolAdapter=S;var k=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:l(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,function(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=d(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),t}))}))},e}();t.DocumentColorAdapter=k;var C=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,r){var i=e.uri;return this._worker(i).then((function(e){return e.getFoldingRanges(i.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=C;var T=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(a))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:l(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=T})),define(\"vs/language/css/cssMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,r){\"use strict\";function i(e){return{dispose:function(){return o(e)}}}function o(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode=function(e){var t=[],s=[],a=new n.WorkerManager(e);t.push(a);var l,c,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return a.getLanguageServiceWorker.apply(a,e)};return l=e.languageId,c=e.modeConfiguration,o(s),c.completionItems&&s.push(monaco.languages.registerCompletionItemProvider(l,new r.CompletionAdapter(d))),c.hovers&&s.push(monaco.languages.registerHoverProvider(l,new r.HoverAdapter(d))),c.documentHighlights&&s.push(monaco.languages.registerDocumentHighlightProvider(l,new r.DocumentHighlightAdapter(d))),c.definitions&&s.push(monaco.languages.registerDefinitionProvider(l,new r.DefinitionAdapter(d))),c.references&&s.push(monaco.languages.registerReferenceProvider(l,new r.ReferenceAdapter(d))),c.documentSymbols&&s.push(monaco.languages.registerDocumentSymbolProvider(l,new r.DocumentSymbolAdapter(d))),c.rename&&s.push(monaco.languages.registerRenameProvider(l,new r.RenameAdapter(d))),c.colors&&s.push(monaco.languages.registerColorProvider(l,new r.DocumentColorAdapter(d))),c.foldingRanges&&s.push(monaco.languages.registerFoldingRangeProvider(l,new r.FoldingRangeAdapter(d))),c.diagnostics&&s.push(new r.DiagnosticsAdapter(l,d,e)),c.selectionRanges&&s.push(monaco.languages.registerSelectionRangeProvider(l,new r.SelectionRangeAdapter(d))),t.push(i(s)),i(t)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/css/cssWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssScanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ident=0]=\"Ident\",e[e.AtKeyword=1]=\"AtKeyword\",e[e.String=2]=\"String\",e[e.BadString=3]=\"BadString\",e[e.UnquotedString=4]=\"UnquotedString\",e[e.Hash=5]=\"Hash\",e[e.Num=6]=\"Num\",e[e.Percentage=7]=\"Percentage\",e[e.Dimension=8]=\"Dimension\",e[e.UnicodeRange=9]=\"UnicodeRange\",e[e.CDO=10]=\"CDO\",e[e.CDC=11]=\"CDC\",e[e.Colon=12]=\"Colon\",e[e.SemiColon=13]=\"SemiColon\",e[e.CurlyL=14]=\"CurlyL\",e[e.CurlyR=15]=\"CurlyR\",e[e.ParenthesisL=16]=\"ParenthesisL\",e[e.ParenthesisR=17]=\"ParenthesisR\",e[e.BracketL=18]=\"BracketL\",e[e.BracketR=19]=\"BracketR\",e[e.Whitespace=20]=\"Whitespace\",e[e.Includes=21]=\"Includes\",e[e.Dashmatch=22]=\"Dashmatch\",e[e.SubstringOperator=23]=\"SubstringOperator\",e[e.PrefixOperator=24]=\"PrefixOperator\",e[e.SuffixOperator=25]=\"SuffixOperator\",e[e.Delim=26]=\"Delim\",e[e.EMS=27]=\"EMS\",e[e.EXS=28]=\"EXS\",e[e.Length=29]=\"Length\",e[e.Angle=30]=\"Angle\",e[e.Time=31]=\"Time\",e[e.Freq=32]=\"Freq\",e[e.Exclamation=33]=\"Exclamation\",e[e.Resolution=34]=\"Resolution\",e[e.Comma=35]=\"Comma\",e[e.Charset=36]=\"Charset\",e[e.EscapedJavaScript=37]=\"EscapedJavaScript\",e[e.BadEscapedJavaScript=38]=\"BadEscapedJavaScript\",e[e.Comment=39]=\"Comment\",e[e.SingleLineComment=40]=\"SingleLineComment\",e[e.EOF=41]=\"EOF\",e[e.CustomToken=42]=\"CustomToken\"}(n=t.TokenType||(t.TokenType={}));var r=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}();t.MultiLineStream=r;var i=\"a\".charCodeAt(0),o=\"f\".charCodeAt(0),s=\"z\".charCodeAt(0),a=\"A\".charCodeAt(0),l=\"F\".charCodeAt(0),c=\"Z\".charCodeAt(0),d=\"0\".charCodeAt(0),p=\"9\".charCodeAt(0),h=\"~\".charCodeAt(0),m=\"^\".charCodeAt(0),u=\"=\".charCodeAt(0),f=\"|\".charCodeAt(0),g=\"-\".charCodeAt(0),b=\"_\".charCodeAt(0),y=\"%\".charCodeAt(0),v=\"*\".charCodeAt(0),w=\"(\".charCodeAt(0),x=\")\".charCodeAt(0),S=\"<\".charCodeAt(0),k=\">\".charCodeAt(0),C=\"@\".charCodeAt(0),T=\"#\".charCodeAt(0),F=\"$\".charCodeAt(0),D=\"\\\\\".charCodeAt(0),E=\"/\".charCodeAt(0),z=\"\\n\".charCodeAt(0),R=\"\\r\".charCodeAt(0),_=\"\\f\".charCodeAt(0),I='\"'.charCodeAt(0),P=\"'\".charCodeAt(0),N=\" \".charCodeAt(0),M=\"\\t\".charCodeAt(0),A=\";\".charCodeAt(0),O=\":\".charCodeAt(0),W=\"{\".charCodeAt(0),L=\"}\".charCodeAt(0),j=\"[\".charCodeAt(0),U=\"]\".charCodeAt(0),V=\",\".charCodeAt(0),K=\".\".charCodeAt(0),q=\"!\".charCodeAt(0),B={};B[A]=n.SemiColon,B[O]=n.Colon,B[W]=n.CurlyL,B[L]=n.CurlyR,B[U]=n.BracketR,B[j]=n.BracketL,B[w]=n.ParenthesisL,B[x]=n.ParenthesisR,B[V]=n.Comma;var $={};$.em=n.EMS,$.ex=n.EXS,$.px=n.Length,$.cm=n.Length,$.mm=n.Length,$.in=n.Length,$.pt=n.Length,$.pc=n.Length,$.deg=n.Angle,$.rad=n.Angle,$.grad=n.Angle,$.ms=n.Time,$.s=n.Time,$.hz=n.Freq,$.khz=n.Freq,$[\"%\"]=n.Percentage,$.fr=n.Percentage,$.dpi=n.Resolution,$.dpcm=n.Resolution;var G=function(){function e(){this.stream=new r(\"\"),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}return e.prototype.setSource=function(e){this.stream=new r(e)},e.prototype.finishToken=function(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}},e.prototype.substring=function(e,t){return this.stream.substring(e,e+t)},e.prototype.pos=function(){return this.stream.pos()},e.prototype.goBackTo=function(e){this.stream.goBackTo(e)},e.prototype.scanUnquotedString=function(){var e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,n.UnquotedString,t.join(\"\")):null},e.prototype.scan=function(){var e=this.trivia();if(null!==e)return e;var t=this.stream.pos();return this.stream.eos()?this.finishToken(t,n.EOF):this.scanNext(t)},e.prototype.scanNext=function(e){if(this.stream.advanceIfChars([S,q,g,g]))return this.finishToken(e,n.CDO);if(this.stream.advanceIfChars([g,g,k]))return this.finishToken(e,n.CDC);var t=[];if(this.ident(t))return this.finishToken(e,n.Ident,t.join(\"\"));if(this.stream.advanceIfChar(C)){if(t=[\"@\"],this._name(t)){var r=t.join(\"\");return\"@charset\"===r?this.finishToken(e,n.Charset,r):this.finishToken(e,n.AtKeyword,r)}return this.finishToken(e,n.Delim)}if(this.stream.advanceIfChar(T))return t=[\"#\"],this._name(t)?this.finishToken(e,n.Hash,t.join(\"\")):this.finishToken(e,n.Delim);if(this.stream.advanceIfChar(q))return this.finishToken(e,n.Exclamation);if(this._number()){var i=this.stream.pos();if(t=[this.stream.substring(e,i)],this.stream.advanceIfChar(y))return this.finishToken(e,n.Percentage);if(this.ident(t)){var o=this.stream.substring(i).toLowerCase(),s=$[o];return void 0!==s?this.finishToken(e,s,t.join(\"\")):this.finishToken(e,n.Dimension,t.join(\"\"))}return this.finishToken(e,n.Num)}t=[];var a=this._string(t);return null!==a?this.finishToken(e,a,t.join(\"\")):void 0!==(a=B[this.stream.peekChar()])?(this.stream.advance(1),this.finishToken(e,a)):this.stream.peekChar(0)===h&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Includes)):this.stream.peekChar(0)===f&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Dashmatch)):this.stream.peekChar(0)===v&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SubstringOperator)):this.stream.peekChar(0)===m&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.PrefixOperator)):this.stream.peekChar(0)===F&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SuffixOperator)):(this.stream.nextChar(),this.finishToken(e,n.Delim))},e.prototype._matchWordAnyCase=function(e){var t=0;return this.stream.advanceWhileChar((function(n){var r=e[t]===n||e[t+1]===n;return r&&(t+=2),r})),t===e.length||(this.stream.goBack(t/2),!1)},e.prototype.trivia=function(){for(;;){var e=this.stream.pos();if(this._whitespace()){if(!this.ignoreWhitespace)return this.finishToken(e,n.Whitespace)}else{if(!this.comment())return null;if(!this.ignoreComment)return this.finishToken(e,n.Comment)}}},e.prototype.comment=function(){if(this.stream.advanceIfChars([E,v])){var e=!1,t=!1;return this.stream.advanceWhileChar((function(n){return t&&n===E?(e=!0,!1):(t=n===v,!0)})),e&&this.stream.advance(1),!0}return!1},e.prototype._number=function(){var e,t=0;return this.stream.peekChar()===K&&(t=1),(e=this.stream.peekChar(t))>=d&&e<=p&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=d&&e<=p||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case R:case _:case z:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===R&&this.stream.advanceIfChar(z)&&e.push(\"\\n\"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===D){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=d&&n<=p||n>=i&&n<=o||n>=a&&n<=l);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-r),16);s&&e.push(String.fromCharCode(s))}catch(e){}return n===N||n===M?this.stream.advance(1):this._newline([]),!0}if(n!==R&&n!==_&&n!==z)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==D&&n!==R&&n!==_&&n!==z&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===P||this.stream.peekChar()===I){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),n.String):n.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==D&&t!==P&&t!==I&&t!==w&&t!==x&&t!==N&&t!==M&&t!==z&&t!==_&&t!==R&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===N||e===M||e===z||e===_||e===R}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===b||t>=i&&t<=s||t>=a&&t<=c||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===g&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===b||t===g||t>=i&&t<=s||t>=a&&t<=c||t>=d&&t<=p||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();t.Scanner=G}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssNodes\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;function r(e,t){var n=null;return!e||t<e.offset||t>e.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Undefined=0]=\"Undefined\",e[e.Identifier=1]=\"Identifier\",e[e.Stylesheet=2]=\"Stylesheet\",e[e.Ruleset=3]=\"Ruleset\",e[e.Selector=4]=\"Selector\",e[e.SimpleSelector=5]=\"SimpleSelector\",e[e.SelectorInterpolation=6]=\"SelectorInterpolation\",e[e.SelectorCombinator=7]=\"SelectorCombinator\",e[e.SelectorCombinatorParent=8]=\"SelectorCombinatorParent\",e[e.SelectorCombinatorSibling=9]=\"SelectorCombinatorSibling\",e[e.SelectorCombinatorAllSiblings=10]=\"SelectorCombinatorAllSiblings\",e[e.SelectorCombinatorShadowPiercingDescendant=11]=\"SelectorCombinatorShadowPiercingDescendant\",e[e.Page=12]=\"Page\",e[e.PageBoxMarginBox=13]=\"PageBoxMarginBox\",e[e.ClassSelector=14]=\"ClassSelector\",e[e.IdentifierSelector=15]=\"IdentifierSelector\",e[e.ElementNameSelector=16]=\"ElementNameSelector\",e[e.PseudoSelector=17]=\"PseudoSelector\",e[e.AttributeSelector=18]=\"AttributeSelector\",e[e.Declaration=19]=\"Declaration\",e[e.Declarations=20]=\"Declarations\",e[e.Property=21]=\"Property\",e[e.Expression=22]=\"Expression\",e[e.BinaryExpression=23]=\"BinaryExpression\",e[e.Term=24]=\"Term\",e[e.Operator=25]=\"Operator\",e[e.Value=26]=\"Value\",e[e.StringLiteral=27]=\"StringLiteral\",e[e.URILiteral=28]=\"URILiteral\",e[e.EscapedValue=29]=\"EscapedValue\",e[e.Function=30]=\"Function\",e[e.NumericValue=31]=\"NumericValue\",e[e.HexColorValue=32]=\"HexColorValue\",e[e.MixinDeclaration=33]=\"MixinDeclaration\",e[e.MixinReference=34]=\"MixinReference\",e[e.VariableName=35]=\"VariableName\",e[e.VariableDeclaration=36]=\"VariableDeclaration\",e[e.Prio=37]=\"Prio\",e[e.Interpolation=38]=\"Interpolation\",e[e.NestedProperties=39]=\"NestedProperties\",e[e.ExtendsReference=40]=\"ExtendsReference\",e[e.SelectorPlaceholder=41]=\"SelectorPlaceholder\",e[e.Debug=42]=\"Debug\",e[e.If=43]=\"If\",e[e.Else=44]=\"Else\",e[e.For=45]=\"For\",e[e.Each=46]=\"Each\",e[e.While=47]=\"While\",e[e.MixinContent=48]=\"MixinContent\",e[e.Media=49]=\"Media\",e[e.Keyframe=50]=\"Keyframe\",e[e.FontFace=51]=\"FontFace\",e[e.Import=52]=\"Import\",e[e.Namespace=53]=\"Namespace\",e[e.Invocation=54]=\"Invocation\",e[e.FunctionDeclaration=55]=\"FunctionDeclaration\",e[e.ReturnStatement=56]=\"ReturnStatement\",e[e.MediaQuery=57]=\"MediaQuery\",e[e.FunctionParameter=58]=\"FunctionParameter\",e[e.FunctionArgument=59]=\"FunctionArgument\",e[e.KeyframeSelector=60]=\"KeyframeSelector\",e[e.ViewPort=61]=\"ViewPort\",e[e.Document=62]=\"Document\",e[e.AtApplyRule=63]=\"AtApplyRule\",e[e.CustomPropertyDeclaration=64]=\"CustomPropertyDeclaration\",e[e.CustomPropertySet=65]=\"CustomPropertySet\",e[e.ListEntry=66]=\"ListEntry\",e[e.Supports=67]=\"Supports\",e[e.SupportsCondition=68]=\"SupportsCondition\",e[e.NamespacePrefix=69]=\"NamespacePrefix\",e[e.GridLine=70]=\"GridLine\",e[e.Plugin=71]=\"Plugin\",e[e.UnknownAtRule=72]=\"UnknownAtRule\",e[e.Use=73]=\"Use\",e[e.ModuleConfiguration=74]=\"ModuleConfiguration\",e[e.Forward=75]=\"Forward\",e[e.ForwardVisibility=76]=\"ForwardVisibility\",e[e.Module=77]=\"Module\"}(n=t.NodeType||(t.NodeType={})),function(e){e[e.Mixin=0]=\"Mixin\",e[e.Rule=1]=\"Rule\",e[e.Variable=2]=\"Variable\",e[e.Function=3]=\"Function\",e[e.Keyframe=4]=\"Keyframe\",e[e.Unknown=5]=\"Unknown\",e[e.Module=6]=\"Module\",e[e.Forward=7]=\"Forward\",e[e.ForwardVisibility=8]=\"ForwardVisibility\"}(t.ReferenceType||(t.ReferenceType={})),t.getNodeAtOffset=r,t.getNodePath=function(e,t){for(var n=r(e,t),i=[];n;)i.unshift(n),n=n.parent;return i},t.getParentDeclaration=function(e){var t=e.findParent(n.Declaration),r=t&&t.getValue();return r&&r.encloses(e)?t:null};var i=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,\"end\",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"type\",{get:function(){return this.nodeType||n.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return\"unknown\"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t<n.length;t++){n[t].accept(e)}},e.prototype.acceptVisitor=function(e){this.accept(e.visitNode.bind(e))},e.prototype.adoptChild=function(e,t){if(void 0===t&&(t=-1),e.parent&&e.parent.children){var n=e.parent.children.indexOf(e);n>=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offset<this.offset||-1===this.offset)&&(this.offset=e.offset);var t=e.end;(t>this.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e<this.children.length?this.children[e]:null},e.prototype.addChildren=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.addChild(r)}},e.prototype.findFirstChildBeforeOffset=function(e){if(this.children)for(var t=null,n=this.children.length-1;n>=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof o;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this;n&&!e.some((function(e){return n.type===e}));)n=n.parent;return n},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}();t.Node=i;var o=function(e){function t(t,n){void 0===n&&(n=-1);var r=e.call(this,-1,-1)||this;return r.attachTo(t,n),r.offset=-1,r.length=-1,r}return __extends(t,e),t}(i);t.Nodelist=o;var s=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.isCustomProperty=!1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Identifier},enumerable:!0,configurable:!0}),t.prototype.containsInterpolation=function(){return this.hasChildren()},t}(i);t.Identifier=s;var a=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Stylesheet},enumerable:!0,configurable:!0}),t}(i);t.Stylesheet=a;var l=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declarations},enumerable:!0,configurable:!0}),t}(i);t.Declarations=l;var c=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getDeclarations=function(){return this.declarations},t.prototype.setDeclarations=function(e){return this.setNode(\"declarations\",e)},t}(i);t.BodyDeclaration=c;var d=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Ruleset},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(n.Declarations)},t}(c);t.RuleSet=d;var p=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Selector},enumerable:!0,configurable:!0}),t}(i);t.Selector=p;var h=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SimpleSelector},enumerable:!0,configurable:!0}),t}(i);t.SimpleSelector=h;var m=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AtApplyRule},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(i);t.AtApplyRule=m;var u=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t}(i);t.AbstractDeclaration=u;var f=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertyDeclaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setPropertySet=function(e){return this.setNode(\"propertySet\",e)},t.prototype.getPropertySet=function(){return this.propertySet},t}(u);t.CustomPropertyDeclaration=f;var g=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertySet},enumerable:!0,configurable:!0}),t}(c);t.CustomPropertySet=g;var b=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.property=null,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():\"unknown\";if(this.parent instanceof l&&this.parent.getParent()instanceof _){var n=this.parent.getParent().getParent();if(n instanceof t)return n.getFullPropertyName()+e}return e},t.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&\"-\"===e.charAt(0)){var t=e.indexOf(\"-\",1);if(-1!==t)return e.substring(t+1)}return e},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setNestedProperties=function(e){return this.setNode(\"nestedProperties\",e)},t.prototype.getNestedProperties=function(){return this.nestedProperties},t}(u);t.Declaration=b;var y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Property},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.getText()},t.prototype.isCustomProperty=function(){return!!this.identifier&&this.identifier.isCustomProperty},t}(i);t.Property=y;var v=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Invocation},enumerable:!0,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t}(i);t.Invocation=v;var w=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Function},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(v);t.Function=w;var x=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionParameter},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setDefaultValue=function(e){return this.setNode(\"defaultValue\",e,0)},t.prototype.getDefaultValue=function(){return this.defaultValue},t}(i);t.FunctionParameter=x;var S=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionArgument},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.FunctionArgument=S;var k=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.If},enumerable:!0,configurable:!0}),t.prototype.setExpression=function(e){return this.setNode(\"expression\",e,0)},t.prototype.setElseClause=function(e){return this.setNode(\"elseClause\",e)},t}(c);t.IfStatement=k;var C=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.For},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e,0)},t}(c);t.ForStatement=C;var T=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Each},enumerable:!0,configurable:!0}),t.prototype.getVariables=function(){return this.variables||(this.variables=new o(this)),this.variables},t}(c);t.EachStatement=T;var F=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.While},enumerable:!0,configurable:!0}),t}(c);t.WhileStatement=F;var D=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Else},enumerable:!0,configurable:!0}),t}(c);t.ElseStatement=D;var E=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t}(c);t.FunctionDeclaration=E;var z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ViewPort},enumerable:!0,configurable:!0}),t}(c);t.ViewPort=z;var R=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FontFace},enumerable:!0,configurable:!0}),t}(c);t.FontFace=R;var _=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NestedProperties},enumerable:!0,configurable:!0}),t}(c);t.NestedProperties=_;var I=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Keyframe},enumerable:!0,configurable:!0}),t.prototype.setKeyword=function(e){return this.setNode(\"keyword\",e,0)},t.prototype.getKeyword=function(){return this.keyword},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(c);t.Keyframe=I;var P=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.KeyframeSelector},enumerable:!0,configurable:!0}),t}(c);t.KeyframeSelector=P;var N=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Import},enumerable:!0,configurable:!0}),t.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),!0)},t}(i);t.Import=N;var M=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Use},enumerable:!0,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Use=M;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ModuleConfiguration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.ModuleConfiguration=A;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Forward},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Forward=O;var W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ForwardVisibility},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.ForwardVisibility=W;var L=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Namespace},enumerable:!0,configurable:!0}),t}(i);t.Namespace=L;var j=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Media},enumerable:!0,configurable:!0}),t}(c);t.Media=j;var U=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Supports},enumerable:!0,configurable:!0}),t}(c);t.Supports=U;var V=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Document},enumerable:!0,configurable:!0}),t}(c);t.Document=V;var K=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getMediums=function(){return this.mediums||(this.mediums=new o(this)),this.mediums},t}(i);t.Medialist=K;var q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MediaQuery},enumerable:!0,configurable:!0}),t}(i);t.MediaQuery=q;var B=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SupportsCondition},enumerable:!0,configurable:!0}),t}(i);t.SupportsCondition=B;var $=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Page},enumerable:!0,configurable:!0}),t}(c);t.Page=$;var G=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.PageBoxMarginBox},enumerable:!0,configurable:!0}),t}(c);t.PageBoxMarginBox=G;var H=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Expression},enumerable:!0,configurable:!0}),t}(i);t.Expression=H;var J=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.BinaryExpression},enumerable:!0,configurable:!0}),t.prototype.setLeft=function(e){return this.setNode(\"left\",e)},t.prototype.getLeft=function(){return this.left},t.prototype.setRight=function(e){return this.setNode(\"right\",e)},t.prototype.getRight=function(){return this.right},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t}(i);t.BinaryExpression=J;var X=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Term},enumerable:!0,configurable:!0}),t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setExpression=function(e){return this.setNode(\"expression\",e)},t.prototype.getExpression=function(){return this.expression},t}(i);t.Term=X;var Y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AttributeSelector},enumerable:!0,configurable:!0}),t.prototype.setNamespacePrefix=function(e){return this.setNode(\"namespacePrefix\",e)},t.prototype.getNamespacePrefix=function(){return this.namespacePrefix},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t}(i);t.AttributeSelector=Y;var Z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Operator},enumerable:!0,configurable:!0}),t}(i);t.Operator=Z;var Q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.HexColorValue},enumerable:!0,configurable:!0}),t}(i);t.HexColorValue=Q;var ee=\".\".charCodeAt(0),te=\"0\".charCodeAt(0),ne=\"9\".charCodeAt(0),re=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NumericValue},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=0,i=t.length;r<i&&(e=t.charCodeAt(r),te<=e&&e<=ne||e===ee);r++)n+=1;return{value:t.substring(0,n),unit:n<t.length?t.substring(n):void 0}},t}(i);t.NumericValue=re;var ie=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.variable=null,r.value=null,r.needsSemicolon=!0,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableDeclaration},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return!!e&&(e.attachTo(this),this.variable=e,!0)},t.prototype.getVariable=function(){return this.variable},t.prototype.getName=function(){return this.variable?this.variable.getName():\"\"},t.prototype.setValue=function(e){return!!e&&(e.attachTo(this),this.value=e,!0)},t.prototype.getValue=function(){return this.value},t}(u);t.VariableDeclaration=ie;var oe=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Interpolation},enumerable:!0,configurable:!0}),t}(i);t.Interpolation=oe;var se=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableName},enumerable:!0,configurable:!0}),t.prototype.getName=function(){return this.getText()},t}(i);t.Variable=se;var ae=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ExtendsReference},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t}(i);t.ExtendsReference=ae;var le=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinReference},enumerable:!0,configurable:!0}),t.prototype.getNamespaces=function(){return this.namespaces||(this.namespaces=new o(this)),this.namespaces},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t.prototype.setContent=function(e){return this.setNode(\"content\",e)},t.prototype.getContent=function(){return this.content},t}(i);t.MixinReference=le;var ce=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setGuard=function(e){return e&&(e.attachTo(this),this.guard=e),!1},t}(c);t.MixinDeclaration=ce;var de=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.UnknownAtRule},enumerable:!0,configurable:!0}),t.prototype.setAtRuleName=function(e){this.atRuleName=e},t.prototype.getAtRuleName=function(){return this.atRuleName},t}(c);t.UnknownAtRule=de;var pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ListEntry},enumerable:!0,configurable:!0}),t.prototype.setKey=function(e){return this.setNode(\"key\",e,0)},t.prototype.setValue=function(e){return this.setNode(\"value\",e,1)},t}(i);t.ListEntry=pe;var he=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.getConditions=function(){return this.conditions||(this.conditions=new o(this)),this.conditions},t}(i);t.LessGuard=he;var me=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e)},t}(i);t.GuardCondition=me;var ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Module},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Module=ue,function(e){e[e.Ignore=1]=\"Ignore\",e[e.Warning=2]=\"Warning\",e[e.Error=4]=\"Error\"}(t.Level||(t.Level={}));var fe=function(){function e(e,t,n,r,i,o){void 0===i&&(i=e.offset),void 0===o&&(o=e.length),this.node=e,this.rule=t,this.level=n,this.message=r||t.message,this.offset=i,this.length=o}return e.prototype.getRule=function(){return this.rule},e.prototype.getLevel=function(){return this.level},e.prototype.getOffset=function(){return this.offset},e.prototype.getLength=function(){return this.length},e.prototype.getNode=function(){return this.node},e.prototype.getMessage=function(){return this.message},e}();t.Marker=fe;var ge=function(){function e(){this.entries=[]}return e.entries=function(t){var n=new e;return t.acceptVisitor(n),n.entries},e.prototype.visitNode=function(e){return e.isErroneous()&&e.collectIssues(this.entries),!0},e}();t.ParseErrorCollector=ge})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return n(t,r)}function i(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=i,t.config=function(e){return i}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.CSSIssueType=r,t.ParseError={NumberExpected:new r(\"css-numberexpected\",n(\"expected.number\",\"number expected\")),ConditionExpected:new r(\"css-conditionexpected\",n(\"expected.condt\",\"condition expected\")),RuleOrSelectorExpected:new r(\"css-ruleorselectorexpected\",n(\"expected.ruleorselector\",\"at-rule or selector expected\")),DotExpected:new r(\"css-dotexpected\",n(\"expected.dot\",\"dot expected\")),ColonExpected:new r(\"css-colonexpected\",n(\"expected.colon\",\"colon expected\")),SemiColonExpected:new r(\"css-semicolonexpected\",n(\"expected.semicolon\",\"semi-colon expected\")),TermExpected:new r(\"css-termexpected\",n(\"expected.term\",\"term expected\")),ExpressionExpected:new r(\"css-expressionexpected\",n(\"expected.expression\",\"expression expected\")),OperatorExpected:new r(\"css-operatorexpected\",n(\"expected.operator\",\"operator expected\")),IdentifierExpected:new r(\"css-identifierexpected\",n(\"expected.ident\",\"identifier expected\")),PercentageExpected:new r(\"css-percentageexpected\",n(\"expected.percentage\",\"percentage expected\")),URIOrStringExpected:new r(\"css-uriorstringexpected\",n(\"expected.uriorstring\",\"uri or string expected\")),URIExpected:new r(\"css-uriexpected\",n(\"expected.uri\",\"URI expected\")),VariableNameExpected:new r(\"css-varnameexpected\",n(\"expected.varname\",\"variable name expected\")),VariableValueExpected:new r(\"css-varvalueexpected\",n(\"expected.varvalue\",\"variable value expected\")),PropertyValueExpected:new r(\"css-propertyvalueexpected\",n(\"expected.propvalue\",\"property value expected\")),LeftCurlyExpected:new r(\"css-lcurlyexpected\",n(\"expected.lcurly\",\"{ expected\")),RightCurlyExpected:new r(\"css-rcurlyexpected\",n(\"expected.rcurly\",\"} expected\")),LeftSquareBracketExpected:new r(\"css-rbracketexpected\",n(\"expected.lsquare\",\"[ expected\")),RightSquareBracketExpected:new r(\"css-lbracketexpected\",n(\"expected.rsquare\",\"] expected\")),LeftParenthesisExpected:new r(\"css-lparentexpected\",n(\"expected.lparen\",\"( expected\")),RightParenthesisExpected:new r(\"css-rparentexpected\",n(\"expected.rparent\",\") expected\")),CommaExpected:new r(\"css-commaexpected\",n(\"expected.comma\",\"comma expected\")),PageDirectiveOrDeclarationExpected:new r(\"css-pagedirordeclexpected\",n(\"expected.pagedirordecl\",\"page directive or declaraton expected\")),UnknownAtRule:new r(\"css-unknownatrule\",n(\"unknown.atrule\",\"at-rule unknown\")),UnknownKeyword:new r(\"css-unknownkeyword\",n(\"unknown.keyword\",\"unknown keyword\")),SelectorExpected:new r(\"css-selectorexpected\",n(\"expected.selector\",\"selector expected\")),StringLiteralExpected:new r(\"css-stringliteralexpected\",n(\"expected.stringliteral\",\"string literal expected\")),WhitespaceExpected:new r(\"css-whitespaceexpected\",n(\"expected.whitespace\",\"whitespace expected\")),MediaQueryExpected:new r(\"css-mediaqueryexpected\",n(\"expected.mediaquery\",\"media query expected\")),IdentifierOrWildcardExpected:new r(\"css-idorwildcardexpected\",n(\"expected.idorwildcard\",\"identifier or wildcard expected\")),WildcardExpected:new r(\"css-wildcardexpected\",n(\"expected.wildcard\",\"wildcard expected\")),IdentifierOrVariableExpected:new r(\"css-idorvarexpected\",n(\"expected.idorvar\",\"identifier or variable expected\"))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.cssData={version:1.1,properties:[{name:\"width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/width\"}],description:\"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"height\",values:[{name:\"auto\",description:\"The height depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/height\"}],description:\"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"display\",values:[{name:\"block\",description:\"The element generates a block-level box\"},{name:\"contents\",description:\"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal.\"},{name:\"flex\",description:\"The element generates a principal flex container box and establishes a flex formatting context.\"},{name:\"flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"flow-root\",description:\"The element generates a block container box, and lays out its contents using flow layout.\"},{name:\"grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"inline\",description:\"The element generates an inline-level box.\"},{name:\"inline-block\",description:\"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box.\"},{name:\"inline-flex\",description:\"Inline-level flex container.\"},{name:\"inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"inline-table\",description:\"Inline-level table wrapper box containing table box.\"},{name:\"list-item\",description:\"One or more block boxes and one marker box.\"},{name:\"-moz-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-moz-deck\"},{name:\"-moz-grid\"},{name:\"-moz-grid-group\"},{name:\"-moz-grid-line\"},{name:\"-moz-groupbox\"},{name:\"-moz-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-moz-inline-grid\"},{name:\"-moz-inline-stack\"},{name:\"-moz-marker\"},{name:\"-moz-popup\"},{name:\"-moz-stack\"},{name:\"-ms-flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-ms-grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"-ms-inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-ms-inline-grid\",description:\"Inline-level grid container.\"},{name:\"none\",description:\"The element and its descendants generates no boxes.\"},{name:\"ruby\",description:\"The element generates a principal ruby container box, and establishes a ruby formatting context.\"},{name:\"ruby-base\"},{name:\"ruby-base-container\"},{name:\"ruby-text\"},{name:\"ruby-text-container\"},{name:\"run-in\",description:\"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements.\"},{name:\"table\",description:\"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context.\"},{name:\"table-caption\"},{name:\"table-cell\"},{name:\"table-column\"},{name:\"table-column-group\"},{name:\"table-footer-group\"},{name:\"table-header-group\"},{name:\"table-row\"},{name:\"table-row-group\"},{name:\"-webkit-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-webkit-flex\",description:\"The element lays out its contents using flow layout (block-and-inline layout).\"},{name:\"-webkit-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-webkit-inline-flex\",description:\"Inline-level flex container.\"}],syntax:\"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/display\"}],description:\"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.\",restrictions:[\"enum\"]},{name:\"padding\",values:[],syntax:\"[ <length> | <percentage> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"position\",values:[{name:\"absolute\",description:\"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'.\"},{name:\"fixed\",description:\"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins.\"},{name:\"-ms-page\",description:\"The box's position is calculated according to the 'absolute' model.\"},{name:\"relative\",description:\"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position.\"},{name:\"static\",description:\"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply.\"},{name:\"sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"},{name:\"-webkit-sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"}],syntax:\"static | relative | absolute | sticky | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/position\"}],restrictions:[\"enum\"]},{name:\"border\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border\"}],description:\"Shorthand property for setting border width, style, and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"margin\",values:[{name:\"auto\"}],syntax:\"[ <length> | <percentage> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.\",restrictions:[\"length\",\"percentage\"]},{name:\"top\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/top\"}],description:\"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"left\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/left\"}],description:\"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-top\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-top\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color\"}],description:\"Color of an element's text\",restrictions:[\"color\"]},{name:\"font-size\",values:[{name:\"large\"},{name:\"larger\"},{name:\"medium\"},{name:\"small\"},{name:\"smaller\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"<absolute-size> | <relative-size> | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size\"}],description:\"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-color\"}],description:\"Sets the background color of an element.\",restrictions:[\"color\"]},{name:\"text-align\",values:[{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"end\",description:\"The inline contents are aligned to the end edge of the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"},{name:\"start\",description:\"The inline contents are aligned to the start edge of the line box.\"}],syntax:\"start | end | left | right | center | justify | match-parent\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align\"}],description:\"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.\",restrictions:[\"string\"]},{name:\"opacity\",syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/opacity\"}],description:\"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.\",restrictions:[\"number(0-1)\"]},{name:\"background\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"},{name:\"none\",description:\"A value of 'none' counts as an image layer but draws nothing.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"}],syntax:\"[ <bg-layer> , ]* <final-bg-layer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background\"}],description:\"Shorthand property for setting most background properties at the same place in the style sheet.\",restrictions:[\"enum\",\"image\",\"color\",\"position\",\"length\",\"repeat\",\"percentage\",\"box\"]},{name:\"float\",values:[{name:\"inline-end\",description:\"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts.\"},{name:\"inline-start\",description:\"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts.\"},{name:\"left\",description:\"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property).\"},{name:\"none\",description:\"The box is not floated.\"},{name:\"right\",description:\"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top.\"}],syntax:\"left | right | none | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/float\"}],description:\"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.\",restrictions:[\"enum\"]},{name:\"font-weight\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"normal\",description:\"Same as 400\"}],syntax:\"<font-weight-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-weight\"}],description:\"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.\",restrictions:[\"enum\"]},{name:\"overflow\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"-moz-hidden-unscrollable\",description:\"Same as the standardized 'clip', except doesn’t establish a block formatting context.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"[ visible | hidden | clip | scroll | auto ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow\"}],description:\"Shorthand for setting 'overflow-x' and 'overflow-y'.\",restrictions:[\"enum\"]},{name:\"line-height\",values:[{name:\"normal\",description:\"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element.\"}],syntax:\"normal | <number> | <length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height\"}],description:\"Determines the block-progression dimension of the text content area of an inline box.\",restrictions:[\"number\",\"length\",\"percentage\"]},{name:\"font-family\",values:[{name:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\"},{name:\"Arial, Helvetica, sans-serif\"},{name:\"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"},{name:\"'Courier New', Courier, monospace\"},{name:\"cursive\"},{name:\"fantasy\"},{name:\"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif\"},{name:\"Georgia, 'Times New Roman', Times, serif\"},{name:\"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif\"},{name:\"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif\"},{name:\"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif\"},{name:\"monospace\"},{name:\"sans-serif\"},{name:\"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\"},{name:\"serif\"},{name:\"'Times New Roman', Times, serif\"},{name:\"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif\"},{name:\"Verdana, Geneva, Tahoma, sans-serif\"}],syntax:\"<family-name>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-family\"}],description:\"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.\",restrictions:[\"font\"]},{name:\"text-decoration\",values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"underline\",description:\"Each line of text is underlined.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration\"}],description:\"Decorations applied to font used for an element's text.\",restrictions:[\"enum\",\"color\"]},{name:\"box-sizing\",values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],syntax:\"content-box | border-box\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-sizing\"}],description:\"Specifies the behavior of the 'width' and 'height' properties.\",restrictions:[\"enum\"]},{name:\"z-index\",values:[{name:\"auto\",description:\"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element.\"}],syntax:\"auto | <integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/z-index\"}],description:\"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.\",restrictions:[\"integer\"]},{name:\"vertical-align\",values:[{name:\"auto\",description:\"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box.\"},{name:\"baseline\",description:\"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element.\"},{name:\"bottom\",description:\"Align the after edge of the extended inline box with the after-edge of the line box.\"},{name:\"middle\",description:\"Align the 'middle' baseline of the inline element with the middle baseline of the parent.\"},{name:\"sub\",description:\"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"super\",description:\"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"text-bottom\",description:\"Align the bottom of the box with the after-edge of the parent element's font.\"},{name:\"text-top\",description:\"Align the top of the box with the before-edge of the parent element's font.\"},{name:\"top\",description:\"Align the before edge of the extended inline box with the before-edge of the line box.\"},{name:\"-webkit-baseline-middle\"}],syntax:\"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/vertical-align\"}],description:\"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-radius\",syntax:\"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-radius\"}],description:\"Defines the radii of the outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-left\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-left\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"cursor\",values:[{name:\"alias\",description:\"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.\"},{name:\"all-scroll\",description:\"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.\"},{name:\"auto\",description:\"The UA determines the cursor to display based on the current context.\"},{name:\"cell\",description:\"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.\"},{name:\"col-resize\",description:\"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.\"},{name:\"context-menu\",description:\"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.\"},{name:\"copy\",description:\"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.\"},{name:\"crosshair\",description:\"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode.\"},{name:\"default\",description:\"The platform-dependent default cursor. Often rendered as an arrow.\"},{name:\"e-resize\",description:\"Indicates that east edge is to be moved.\"},{name:\"ew-resize\",description:\"Indicates a bidirectional east-west resize cursor.\"},{name:\"grab\",description:\"Indicates that something can be grabbed.\"},{name:\"grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"help\",description:\"Help is available for the object under the cursor. Often rendered as a question mark or a balloon.\"},{name:\"move\",description:\"Indicates something is to be moved.\"},{name:\"-moz-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-moz-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-moz-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-moz-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"ne-resize\",description:\"Indicates that movement starts from north-east corner.\"},{name:\"nesw-resize\",description:\"Indicates a bidirectional north-east/south-west cursor.\"},{name:\"no-drop\",description:\"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.\"},{name:\"none\",description:\"No cursor is rendered for the element.\"},{name:\"not-allowed\",description:\"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.\"},{name:\"n-resize\",description:\"Indicates that north edge is to be moved.\"},{name:\"ns-resize\",description:\"Indicates a bidirectional north-south cursor.\"},{name:\"nw-resize\",description:\"Indicates that movement starts from north-west corner.\"},{name:\"nwse-resize\",description:\"Indicates a bidirectional north-west/south-east cursor.\"},{name:\"pointer\",description:\"The cursor is a pointer that indicates a link.\"},{name:\"progress\",description:\"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.\"},{name:\"row-resize\",description:\"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.\"},{name:\"se-resize\",description:\"Indicates that movement starts from south-east corner.\"},{name:\"s-resize\",description:\"Indicates that south edge is to be moved.\"},{name:\"sw-resize\",description:\"Indicates that movement starts from south-west corner.\"},{name:\"text\",description:\"Indicates text that may be selected. Often rendered as a vertical I-beam.\"},{name:\"vertical-text\",description:\"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.\"},{name:\"wait\",description:\"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.\"},{name:\"-webkit-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-webkit-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-webkit-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-webkit-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"w-resize\",description:\"Indicates that west edge is to be moved.\"},{name:\"zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"}],syntax:\"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/cursor\"}],description:\"Allows control over cursor appearance in an element\",restrictions:[\"url\",\"number\",\"enum\"]},{name:\"margin-bottom\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-bottom\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"right\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/right\"}],description:\"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-right\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-right\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-left\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-left\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-top\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-top\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-width\",values:[{name:\"none\",description:\"No limit on the width of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"bottom\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/bottom\"}],description:\"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-image\",values:[{name:\"none\",description:\"Counts as an image layer but draws nothing.\"}],syntax:\"<bg-image>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-image\"}],description:\"Sets the background image(s) of an element.\",restrictions:[\"image\",\"enum\"]},{name:\"content\",values:[{name:\"attr()\",description:\"The attr(n) function returns as a string the value of attribute n for the subject of the selector.\"},{name:\"counter(name)\",description:\"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties).\"},{name:\"icon\",description:\"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element.\"},{name:\"none\",description:\"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content.\"},{name:\"normal\",description:\"See http://www.w3.org/TR/css3-content/#content for computation rules.\"},{name:\"url()\"}],syntax:\"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/content\"}],description:\"Determines which page-based occurrence of a given element is applied to a counter or string value.\",restrictions:[\"string\",\"url\"]},{name:\"padding-right\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-right\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"white-space\",values:[{name:\"normal\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'normal'.\"},{name:\"nowrap\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'none'.\"},{name:\"pre\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'none'.\"},{name:\"pre-line\",description:\"Sets 'white-space-collapsing' to 'preserve-breaks' and 'text-wrap' to 'normal'.\"},{name:\"pre-wrap\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'normal'.\"}],syntax:\"normal | pre | nowrap | pre-wrap | pre-line | break-spaces\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/white-space\"}],description:\"Shorthand property for the 'white-space-collapsing' and 'text-wrap' properties.\",restrictions:[\"enum\"]},{name:\"padding-bottom\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-bottom\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-bottom\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom\"}],description:\"Shorthand property for setting border width, style and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"box-shadow\",values:[{name:\"inset\",description:\"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).\"},{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-shadow\"}],description:\"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.\",restrictions:[\"length\",\"color\",\"enum\"]},{name:\"transform\",values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],syntax:\"none | <transform-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"min-height\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"visibility\",values:[{name:\"collapse\",description:\"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.\"},{name:\"hidden\",description:\"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.\"},{name:\"visible\",description:\"The generated box is visible.\"}],syntax:\"visible | hidden | collapse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/visibility\"}],description:\"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the ‘display’ property to ‘none’ to suppress box generation altogether).\",restrictions:[\"enum\"]},{name:\"background-position\",syntax:\"<bg-position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position\"}],description:\"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"min-width\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"outline\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"},{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline\"}],description:\"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\",\"enum\"]},{name:\"transition\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"<single-transition>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"clear\",values:[{name:\"both\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"left\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"none\",description:\"No constraint on the box's position with respect to floats.\"},{name:\"right\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document.\"}],syntax:\"none | left | right | both | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clear\"}],description:\"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.\",restrictions:[\"enum\"]},{name:\"border-color\",values:[],syntax:\"<color>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-color\"}],description:\"The color of the border around all four edges of an element.\",restrictions:[\"color\"]},{name:\"background-repeat\",values:[],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-repeat\"}],description:\"Specifies how background images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"background-size\",values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-size\"}],description:\"Specifies the size of the background images.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-transform\",values:[{name:\"capitalize\",description:\"Puts the first typographic letter unit of each word in titlecase.\"},{name:\"lowercase\",description:\"Puts all letters in lowercase.\"},{name:\"none\",description:\"No effects.\"},{name:\"uppercase\",description:\"Puts all letters in uppercase.\"}],syntax:\"none | capitalize | uppercase | lowercase | full-width | full-size-kana\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-transform\"}],description:\"Controls capitalization effects of an element’s text.\",restrictions:[\"enum\"]},{name:\"max-height\",values:[{name:\"none\",description:\"No limit on the height of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"list-style\",values:[{name:\"armenian\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\"},{name:\"decimal-leading-zero\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\"},{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"lower-alpha\"},{name:\"lower-greek\"},{name:\"lower-latin\"},{name:\"lower-roman\"},{name:\"none\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\"},{name:\"upper-latin\"},{name:\"upper-roman\"},{name:\"url()\"}],syntax:\"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style\"}],description:\"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'\",restrictions:[\"image\",\"enum\",\"url\"]},{name:\"font-style\",values:[{name:\"italic\",description:\"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not\"},{name:\"normal\",description:\"Selects a face that is classified as 'normal'.\"},{name:\"oblique\",description:\"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not.\"}],syntax:\"normal | italic | oblique <angle>{0,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-style\"}],description:\"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.\",restrictions:[\"enum\"]},{name:\"font\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"caption\",description:\"The font used for captioned controls (e.g., buttons, drop-downs, etc.).\"},{name:\"icon\",description:\"The font used to label icons.\"},{name:\"italic\",description:\"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'.\"},{name:\"large\"},{name:\"larger\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"medium\"},{name:\"menu\",description:\"The font used in menus (e.g., dropdown menus and menu lists).\"},{name:\"message-box\",description:\"The font used in dialog boxes.\"},{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"oblique\",description:\"Selects a font that is labeled 'oblique'.\"},{name:\"small\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"},{name:\"small-caption\",description:\"The font used for labeling small controls.\"},{name:\"smaller\"},{name:\"status-bar\",description:\"The font used in window status bars.\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font\"}],description:\"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.\",restrictions:[\"font\"]},{name:\"text-overflow\",values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],syntax:\"[ clip | ellipsis | <string> ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-overflow\"}],description:\"Text can overflow for example when it is prevented from wrapping.\",restrictions:[\"enum\",\"string\"]},{name:\"border-left\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-right\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-width\",values:[],syntax:\"<line-width>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-width\"}],description:\"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.\",restrictions:[\"length\",\"line-width\"]},{name:\"justify-content\",values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"start\",description:\"The items are packed flush to each other toward the start edge of the alignment container in the main axis.\"},{name:\"end\",description:\"The items are packed flush to each other toward the end edge of the alignment container in the main axis.\"},{name:\"left\",description:\"The items are packed flush to each other toward the left edge of the alignment container in the main axis.\"},{name:\"right\",description:\"The items are packed flush to each other toward the right edge of the alignment container in the main axis.\"},{name:\"safe\",description:\"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.\"},{name:\"unsafe\",description:\"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored.\"},{name:\"stretch\",description:\"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container.\"},{name:\"space-evenly\",description:\"The items are evenly distributed within the alignment container along the main axis.\"},{name:\"flex-end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"flex-start\",description:\"Flex items are packed toward the start of the line.\"},{name:\"space-around\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Flex items are evenly distributed in the line.\"},{name:\"baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"first baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"last baseline\",description:\"Specifies participation in last-baseline alignment.\"}],syntax:\"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]\",description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"align-items\",values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]\",description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"overflow-y\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-y\"}],description:\"Specifies the handling of overflow in the vertical direction.\",restrictions:[\"enum\"]},{name:\"pointer-events\",values:[{name:\"all\",description:\"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element.\"},{name:\"fill\",description:\"The given element can be the target element for pointer events whenever the pointer is over the interior of the element.\"},{name:\"none\",description:\"The given element does not receive pointer events.\"},{name:\"painted\",description:'The given element can be the target element for pointer events when the pointer is over a \"painted\" area. '},{name:\"stroke\",description:\"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element.\"},{name:\"visible\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and the pointer is over either the interior or the perimete of the element.\"},{name:\"visibleFill\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the interior of the element.\"},{name:\"visiblePainted\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over a ‘painted’ area.\"},{name:\"visibleStroke\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the perimeter of the element.\"}],syntax:\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/pointer-events\"}],description:\"Specifies under what circumstances a given element can be the target element for a pointer event.\",restrictions:[\"enum\"]},{name:\"letter-spacing\",values:[{name:\"normal\",description:\"The spacing is the normal spacing for the current font. It is typically zero-length.\"}],syntax:\"normal | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/letter-spacing\"}],description:\"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.\",restrictions:[\"length\"]},{name:\"border-style\",values:[],syntax:\"<line-style>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-style\"}],description:\"The style of the border around edges of an element.\",restrictions:[\"line-style\"]},{name:\"animation\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"timing-function\",\"enum\",\"identifier\",\"number\"]},{name:\"overflow-x\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-x\"}],description:\"Specifies the handling of overflow in the horizontal direction.\",restrictions:[\"enum\"]},{name:\"word-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"border-collapse\",values:[{name:\"collapse\",description:\"Selects the collapsing borders model.\"},{name:\"separate\",description:\"Selects the separated borders border model.\"}],syntax:\"collapse | separate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-collapse\"}],description:\"Selects a table's border model.\",restrictions:[\"enum\"]},{name:\"flex-direction\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],syntax:\"row | row-reverse | column | column-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-direction\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"zoom\",browsers:[\"E12\",\"S3.1\",\"C1\",\"IE5.5\",\"O15\"],values:[{name:\"normal\"}],syntax:\"auto | <number> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/zoom\"}],description:\"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"flex\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],syntax:\"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex\"}],description:\"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"text-shadow\",values:[{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow-t>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-shadow\"}],description:\"Enables shadow effects to be applied to the text of the element.\",restrictions:[\"length\",\"color\"]},{name:\"list-style-type\",values:[{name:\"armenian\",description:\"Traditional uppercase Armenian numbering.\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\",description:\"Western decimal numbers.\"},{name:\"decimal-leading-zero\",description:\"Decimal numbers padded by initial zeros.\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\",description:\"Traditional Georgian numbering.\"},{name:\"lower-alpha\",description:\"Lowercase ASCII letters.\"},{name:\"lower-greek\",description:\"Lowercase classical Greek.\"},{name:\"lower-latin\",description:\"Lowercase ASCII letters.\"},{name:\"lower-roman\",description:\"Lowercase ASCII Roman numerals.\"},{name:\"none\",description:\"No marker\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\",description:\"Uppercase ASCII letters.\"},{name:\"upper-latin\",description:\"Uppercase ASCII letters.\"},{name:\"upper-roman\",description:\"Uppercase ASCII Roman numerals.\"}],syntax:\"<counter-style> | <string> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-type\"}],description:\"Used to construct the default contents of a list item’s marker\",restrictions:[\"enum\",\"string\"]},{name:\"border-bottom-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius\"}],description:\"Defines the radii of the bottom left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"user-select\",values:[{name:\"all\",description:\"The content of the element must be selected atomically\"},{name:\"auto\"},{name:\"contain\",description:\"UAs must not allow a selection which is started in this element to be extended outside of this element.\"},{name:\"none\",description:\"The UA must not allow selections to be started in this element.\"},{name:\"text\",description:\"The element imposes no constraint on the selection.\"}],status:\"nonstandard\",syntax:\"auto | text | none | contain | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/user-select\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"fill\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints the interior of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transform-origin\",syntax:\"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-origin\"}],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius\"}],description:\"Defines the radii of the top left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-indent\",values:[],syntax:\"<length-percentage> && hanging? && each-line?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-indent\"}],description:\"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-bottom-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius\"}],description:\"Defines the radii of the bottom right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"flex-wrap\",values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"nowrap | wrap | wrap-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-wrap\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"border-spacing\",syntax:\"<length> <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-spacing\"}],description:\"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.\",restrictions:[\"length\"]},{name:\"border-top-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius\"}],description:\"Defines the radii of the top right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"clip\",values:[{name:\"auto\",description:\"The element does not clip.\"},{name:\"rect()\",description:\"Specifies offsets from the edges of the border box.\"}],syntax:\"<shape> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip\"}],description:\"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element’s box.\",restrictions:[\"enum\"]},{name:\"border-top-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-color\"}],description:\"Sets the color of the top border.\",restrictions:[\"color\"]},{name:\"word-break\",values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],syntax:\"normal | break-all | keep-all | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-break\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"border-bottom-color\",syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color\"}],description:\"Sets the color of the bottom border.\",restrictions:[\"color\"]},{name:\"flex-grow\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-grow\"}],description:\"Sets the flex grow factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"direction\",values:[{name:\"ltr\",description:\"Left-to-right direction.\"},{name:\"rtl\",description:\"Right-to-left direction.\"}],syntax:\"ltr | rtl\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/direction\"}],description:\"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.\",restrictions:[\"enum\"]},{name:\"align-self\",values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>\",description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"flex-shrink\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-shrink\"}],description:\"Sets the flex shrink factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"text-rendering\",browsers:[\"FF1\",\"S5\",\"C4\",\"O15\"],values:[{name:\"auto\"},{name:\"geometricPrecision\",description:\"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed.\"},{name:\"optimizeLegibility\",description:\"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision.\"},{name:\"optimizeSpeed\",description:\"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision.\"}],syntax:\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-rendering\"}],description:\"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The ‘text-rendering’ property provides these hints.\",restrictions:[\"enum\"]},{name:\"touch-action\",values:[{name:\"auto\",description:\"The user agent may determine any permitted touch behaviors for touches that begin on the element.\"},{name:\"cross-slide-x\"},{name:\"cross-slide-y\"},{name:\"double-tap-zoom\"},{name:\"manipulation\",description:\"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming.\"},{name:\"none\",description:\"Touches that begin on the element must not trigger default touch behaviors.\"},{name:\"pan-x\",description:\"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element’s nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element’s nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\"}],syntax:\"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/touch-action\"}],description:\"Determines whether touch input may trigger default behavior supplied by user agent.\",restrictions:[\"enum\"]},{name:\"background-clip\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-clip\"}],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"filter\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],description:\"A filter reference to a <filter> element.\"}],syntax:\"none | <filter-function-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/filter\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"src\",values:[{name:\"url()\",description:\"Reference font by URL\"},{name:\"format()\",description:\"Optional hint describing the format of the font resource.\"},{name:\"local()\",description:\"Format-specific string that identifies a locally available copy of a given font.\"}],syntax:\"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#\",description:\"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.\",restrictions:[\"enum\",\"url\",\"identifier\"]},{name:\"animation-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function\"}],description:\"Describes how the animation will progress over one cycle of its duration.\",restrictions:[\"timing-function\"]},{name:\"border-right-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-color\"}],description:\"Sets the color of the right border.\",restrictions:[\"color\"]},{name:\"font-variant\",values:[{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant\"}],description:\"Specifies variant representations of the font\",restrictions:[\"enum\"]},{name:\"border-left-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-color\"}],description:\"Sets the color of the left border.\",restrictions:[\"color\"]},{name:\"animation-name\",values:[{name:\"none\",description:\"No animation is performed\"}],syntax:\"[ none | <keyframes-name> ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-name\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"animation-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-duration\"}],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"will-change\",browsers:[\"FF36\",\"S9.1\",\"C36\",\"O24\"],values:[{name:\"auto\",description:\"Expresses no particular intent.\"},{name:\"contents\",description:\"Indicates that the author expects to animate or change something about the element’s contents in the near future.\"},{name:\"scroll-position\",description:\"Indicates that the author expects to animate or change the scroll position of the element in the near future.\"}],syntax:\"auto | <animateable-feature>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/will-change\"}],description:\"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.\",restrictions:[\"enum\",\"identifier\"]},{name:\"stroke\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints along the outline of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transition-property\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"none | <single-transition-property>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-property\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"table-layout\",values:[{name:\"auto\",description:\"Use any automatic table layout algorithm.\"},{name:\"fixed\",description:\"Use the fixed table layout algorithm.\"}],syntax:\"auto | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/table-layout\"}],description:\"Controls the algorithm used to lay out the table cells, rows, and columns.\",restrictions:[\"enum\"]},{name:\"transition-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-delay\"}],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"flex-basis\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"}],syntax:\"content | <'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-basis\"}],description:\"Sets the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"overflow-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.\",restrictions:[\"enum\"]},{name:\"border-top-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-width\"}],description:\"Sets the thickness of the top border.\",restrictions:[\"length\",\"line-width\"]},{name:\"outline-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-width\"}],description:\"Width of the outline.\",restrictions:[\"length\",\"line-width\"]},{name:\"order\",syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/order\"}],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"border-bottom-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width\"}],description:\"Sets the thickness of the bottom border.\",restrictions:[\"length\",\"line-width\"]},{name:\"animation-fill-mode\",values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],syntax:\"<single-animation-fill-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"outline-style\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"}],syntax:\"auto | <'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-style\"}],description:\"Style of the outline.\",restrictions:[\"line-style\",\"enum\"]},{name:\"object-fit\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],syntax:\"fill | contain | cover | none | scale-down\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-fit\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"stroke-width\",description:\"Specifies the width of the stroke on the current object.\",restrictions:[\"percentage\",\"length\"]},{name:\"transition-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-duration\"}],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"animation-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-delay\"}],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"outline-offset\",browsers:[\"E15\",\"FF1.5\",\"S1.2\",\"C1\",\"O9.5\"],syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-offset\"}],description:\"Offset the outline and draw it beyond the border edge.\",restrictions:[\"length\"]},{name:\"stroke-dashoffset\",description:\"Specifies the distance into the dash pattern to start the dash.\",restrictions:[\"percentage\",\"length\"]},{name:\"backface-visibility\",values:[{name:\"hidden\",description:\"Back side is hidden.\"},{name:\"visible\",description:\"Back side is visible.\"}],syntax:\"visible | hidden\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backface-visibility\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"border-right-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-width\"}],description:\"Sets the thickness of the right border.\",restrictions:[\"length\",\"line-width\"]},{name:\"flex-flow\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"<'flex-direction'> || <'flex-wrap'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-flow\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"word-spacing\",values:[{name:\"normal\",description:\"No additional spacing is applied. Computes to zero.\"}],syntax:\"normal | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-spacing\"}],description:\"Specifies additional spacing between “words”.\",restrictions:[\"length\",\"percentage\"]},{name:\"transition-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function\"}],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"resize\",browsers:[\"FF4\",\"S3\",\"C1\",\"O12.1\"],values:[{name:\"both\",description:\"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element.\"},{name:\"horizontal\",description:\"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element.\"},{name:\"none\",description:\"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element.\"},{name:\"vertical\",description:\"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element.\"}],syntax:\"none | both | horizontal | vertical | block | inline\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/resize\"}],description:\"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.\",restrictions:[\"enum\"]},{name:\"unicode-bidi\",values:[{name:\"bidi-override\",description:\"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored.\"},{name:\"embed\",description:\"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property.\"},{name:\"isolate\",description:\"The contents of the element are considered to be inside a separate, independent paragraph.\"},{name:\"isolate-override\",description:\"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'\"},{name:\"normal\",description:\"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries.\"},{name:\"plaintext\",description:\"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'.\"}],syntax:\"normal | embed | isolate | bidi-override | isolate-override | plaintext\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi\"}],description:\"The level of embedding with respect to the bidirectional algorithm.\",restrictions:[\"enum\"]},{name:\"unicode-range\",values:[{name:\"U+26\",description:\"Ampersand.\"},{name:\"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00–FB4F\",description:\"WGL4 character set (Pan-European).\"},{name:\"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF\",description:\"The Multilingual European Subset No. 1. Latin. Covers ~44 languages.\"},{name:\"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language.\"},{name:\"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts.\"},{name:\"U+00-7F\",description:\"Basic Latin (ASCII).\"},{name:\"U+80-FF\",description:\"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs.\"},{name:\"U+100-17F\",description:\"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish.\"},{name:\"U+180-24F\",description:\"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology.\"},{name:\"U+1E00-1EFF\",description:\"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use.\"},{name:\"U+250-2AF\",description:\"International Phonetic Alphabet Extensions.\"},{name:\"U+370-3FF\",description:\"Greek and Coptic.\"},{name:\"U+1F00-1FFF\",description:\"Greek Extended. Accented characters for polytonic Greek.\"},{name:\"U+400-4FF\",description:\"Cyrillic.\"},{name:\"U+500-52F\",description:\"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok.\"},{name:\"U+00-52F, U+1E00-1FFF, U+2200–22FF\",description:\"Latin, Greek, Cyrillic, some punctuation and symbols.\"},{name:\"U+530–58F\",description:\"Armenian.\"},{name:\"U+590–5FF\",description:\"Hebrew.\"},{name:\"U+600–6FF\",description:\"Arabic.\"},{name:\"U+750–77F\",description:\"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian.\"},{name:\"U+8A0–8FF\",description:\"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs.\"},{name:\"U+700–74F\",description:\"Syriac.\"},{name:\"U+900–97F\",description:\"Devanagari.\"},{name:\"U+980–9FF\",description:\"Bengali.\"},{name:\"U+A00–A7F\",description:\"Gurmukhi.\"},{name:\"U+A80–AFF\",description:\"Gujarati.\"},{name:\"U+B00–B7F\",description:\"Oriya.\"},{name:\"U+B80–BFF\",description:\"Tamil.\"},{name:\"U+C00–C7F\",description:\"Telugu.\"},{name:\"U+C80–CFF\",description:\"Kannada.\"},{name:\"U+D00–D7F\",description:\"Malayalam.\"},{name:\"U+D80–DFF\",description:\"Sinhala.\"},{name:\"U+118A0–118FF\",description:\"Warang Citi.\"},{name:\"U+E00–E7F\",description:\"Thai.\"},{name:\"U+1A20–1AAF\",description:\"Tai Tham.\"},{name:\"U+AA80–AADF\",description:\"Tai Viet.\"},{name:\"U+E80–EFF\",description:\"Lao.\"},{name:\"U+F00–FFF\",description:\"Tibetan.\"},{name:\"U+1000–109F\",description:\"Myanmar (Burmese).\"},{name:\"U+10A0–10FF\",description:\"Georgian.\"},{name:\"U+1200–137F\",description:\"Ethiopic.\"},{name:\"U+1380–139F\",description:\"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks\"},{name:\"U+2D80–2DDF\",description:\"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit.\"},{name:\"U+AB00–AB2F\",description:\"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz.\"},{name:\"U+1780–17FF\",description:\"Khmer.\"},{name:\"U+1800–18AF\",description:\"Mongolian.\"},{name:\"U+1B80–1BBF\",description:\"Sundanese.\"},{name:\"U+1CC0–1CCF\",description:\"Sundanese Supplement. Punctuation.\"},{name:\"U+4E00–9FD5\",description:\"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese.\"},{name:\"U+3400–4DB5\",description:\"CJK Unified Ideographs Extension A. Rare ideographs.\"},{name:\"U+2F00–2FDF\",description:\"Kangxi Radicals.\"},{name:\"U+2E80–2EFF\",description:\"CJK Radicals Supplement. Alternative forms of Kangxi Radicals.\"},{name:\"U+1100–11FF\",description:\"Hangul Jamo.\"},{name:\"U+AC00–D7AF\",description:\"Hangul Syllables.\"},{name:\"U+3040–309F\",description:\"Hiragana.\"},{name:\"U+30A0–30FF\",description:\"Katakana.\"},{name:\"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F\",description:\"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol.\"},{name:\"U+A4D0–A4FF\",description:\"Lisu.\"},{name:\"U+A000–A48F\",description:\"Yi Syllables.\"},{name:\"U+A490–A4CF\",description:\"Yi Radicals.\"},{name:\"U+2000-206F\",description:\"General Punctuation.\"},{name:\"U+3000–303F\",description:\"CJK Symbols and Punctuation.\"},{name:\"U+2070–209F\",description:\"Superscripts and Subscripts.\"},{name:\"U+20A0–20CF\",description:\"Currency Symbols.\"},{name:\"U+2100–214F\",description:\"Letterlike Symbols.\"},{name:\"U+2150–218F\",description:\"Number Forms.\"},{name:\"U+2190–21FF\",description:\"Arrows.\"},{name:\"U+2200–22FF\",description:\"Mathematical Operators.\"},{name:\"U+2300–23FF\",description:\"Miscellaneous Technical.\"},{name:\"U+E000-F8FF\",description:\"Private Use Area.\"},{name:\"U+FB00–FB4F\",description:\"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew.\"},{name:\"U+FB50–FDFF\",description:\"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures.\"},{name:\"U+1F600–1F64F\",description:\"Emoji: Emoticons.\"},{name:\"U+2600–26FF\",description:\"Emoji: Miscellaneous Symbols.\"},{name:\"U+1F300–1F5FF\",description:\"Emoji: Miscellaneous Symbols and Pictographs.\"},{name:\"U+1F900–1F9FF\",description:\"Emoji: Supplemental Symbols and Pictographs.\"},{name:\"U+1F680–1F6FF\",description:\"Emoji: Transport and Map Symbols.\"}],syntax:\"<unicode-range>#\",description:\"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.\",restrictions:[\"unicode-range\"]},{name:\"stroke-dasharray\",values:[{name:\"none\",description:\"Indicates that no dashing is used.\"}],description:\"Controls the pattern of dashes and gaps used to stroke paths.\",restrictions:[\"length\",\"percentage\",\"number\",\"enum\"]},{name:\"animation-iteration-count\",values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],syntax:\"<single-animation-iteration-count>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"image-rendering\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"],values:[{name:\"auto\",description:\"The image should be scaled with an algorithm that maximizes the appearance of the image.\"},{name:\"crisp-edges\",description:\"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process.\"},{name:\"-moz-crisp-edges\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"]},{name:\"optimizeQuality\",description:\"Deprecated.\"},{name:\"optimizeSpeed\",description:\"Deprecated.\"},{name:\"pixelated\",description:\"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels.\"}],syntax:\"auto | crisp-edges | pixelated\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-rendering\"}],description:\"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.\",restrictions:[\"enum\"]},{name:\"border-left-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-width\"}],description:\"Sets the thickness of the left border.\",restrictions:[\"length\",\"line-width\"]},{name:\"align-content\",values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"flex-end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"flex-start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"space-around\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],syntax:\"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>\",description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"border-bottom-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style\"}],description:\"Sets the style of the bottom border.\",restrictions:[\"line-style\"]},{name:\"perspective\",values:[{name:\"none\",description:\"No perspective transform is applied.\"}],syntax:\"none | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\",\"enum\"]},{name:\"border-top-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-style\"}],description:\"Sets the style of the top border.\",restrictions:[\"line-style\"]},{name:\"text-size-adjust\",status:\"experimental\",syntax:\"none | auto | <percentage>\",browsers:[\"E12\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust\"}],description:\"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property.\"},{name:\"transform-style\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"},{name:\"preserve-3d\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],description:\"Flattening is not performed, so children maintain their position in 3D space.\"}],syntax:\"flat | preserve-3d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-style\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"grid-template-columns\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"enum\"]},{name:\"list-style-position\",values:[{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"}],syntax:\"inside | outside\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-position\"}],description:\"Specifies the position of the '::marker' pseudo-element's box in the list item.\",restrictions:[\"enum\"]},{name:\"animation-direction\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation-direction>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-direction\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"animation-play-state\",values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],syntax:\"<single-animation-play-state>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-play-state\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"hyphens\",values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],syntax:\"none | manual | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hyphens\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"quotes\",values:[{name:\"none\",description:\"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively.\"}],syntax:\"none | auto | [ <string> <string> ]+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/quotes\"}],description:\"Specifies quotation marks for any number of embedded quotations.\",restrictions:[\"string\"]},{name:\"background-origin\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-origin\"}],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"background-attachment\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element’s contents: if the element has a scrolling mechanism, the background scrolls with the element’s contents.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element’s border.)\"}],syntax:\"<attachment>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-attachment\"}],description:\"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').\",restrictions:[\"enum\"]},{name:\"background-position-x\",values:[{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"left\",description:\"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\"},{name:\"right\",description:\"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-x\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-position-y\",values:[{name:\"bottom\",description:\"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\"},{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"top\",description:\"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-y\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-feature-settings\",values:[{name:'\"aalt\"',description:\"Access All Alternates.\"},{name:'\"abvf\"',description:\"Above-base Forms. Required in Khmer script.\"},{name:'\"abvm\"',description:\"Above-base Mark Positioning. Required in Indic scripts.\"},{name:'\"abvs\"',description:\"Above-base Substitutions. Required in Indic scripts.\"},{name:'\"afrc\"',description:\"Alternative Fractions.\"},{name:'\"akhn\"',description:\"Akhand. Required in most Indic scripts.\"},{name:'\"blwf\"',description:\"Below-base Form. Required in a number of Indic scripts.\"},{name:'\"blwm\"',description:\"Below-base Mark Positioning. Required in Indic scripts.\"},{name:'\"blws\"',description:\"Below-base Substitutions. Required in Indic scripts.\"},{name:'\"calt\"',description:\"Contextual Alternates.\"},{name:'\"case\"',description:\"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting.\"},{name:'\"ccmp\"',description:\"Glyph Composition/Decomposition.\"},{name:'\"cfar\"',description:\"Conjunct Form After Ro. Required in Khmer scripts.\"},{name:'\"cjct\"',description:\"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"clig\"',description:\"Contextual Ligatures.\"},{name:'\"cpct\"',description:\"Centered CJK Punctuation. Used primarily in Chinese fonts.\"},{name:'\"cpsp\"',description:\"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic).\"},{name:'\"cswh\"',description:\"Contextual Swash.\"},{name:'\"curs\"',description:\"Cursive Positioning. Can be used in any cursive script.\"},{name:'\"c2pc\"',description:\"Petite Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"c2sc\"',description:\"Small Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"dist\"',description:\"Distances. Required in Indic scripts.\"},{name:'\"dlig\"',description:\"Discretionary ligatures.\"},{name:'\"dnom\"',description:\"Denominators.\"},{name:'\"dtls\"',description:\"Dotless Forms. Applied to math formula layout.\"},{name:'\"expt\"',description:\"Expert Forms. Applies only to Japanese.\"},{name:'\"falt\"',description:\"Final Glyph on Line Alternates. Can be used in any cursive script.\"},{name:'\"fin2\"',description:\"Terminal Form #2. Used only with the Syriac script.\"},{name:'\"fin3\"',description:\"Terminal Form #3. Used only with the Syriac script.\"},{name:'\"fina\"',description:\"Terminal Forms. Can be used in any alphabetic script.\"},{name:'\"flac\"',description:\"Flattened ascent forms. Applied to math formula layout.\"},{name:'\"frac\"',description:\"Fractions.\"},{name:'\"fwid\"',description:\"Full Widths. Applies to any script which can use monospaced forms.\"},{name:'\"half\"',description:\"Half Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"haln\"',description:\"Halant Forms. Required in Indic scripts.\"},{name:'\"halt\"',description:\"Alternate Half Widths. Used only in CJKV fonts.\"},{name:'\"hist\"',description:\"Historical Forms.\"},{name:'\"hkna\"',description:\"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"hlig\"',description:\"Historical Ligatures.\"},{name:'\"hngl\"',description:\"Hangul. Korean only.\"},{name:'\"hojo\"',description:\"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script.\"},{name:'\"hwid\"',description:\"Half Widths. Generally used only in CJKV fonts.\"},{name:'\"init\"',description:\"Initial Forms. Can be used in any alphabetic script.\"},{name:'\"isol\"',description:\"Isolated Forms. Can be used in any cursive script.\"},{name:'\"ital\"',description:\"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well.\"},{name:'\"jalt\"',description:\"Justification Alternates. Can be used in any cursive script.\"},{name:'\"jp78\"',description:\"JIS78 Forms. Applies only to Japanese.\"},{name:'\"jp83\"',description:\"JIS83 Forms. Applies only to Japanese.\"},{name:'\"jp90\"',description:\"JIS90 Forms. Applies only to Japanese.\"},{name:'\"jp04\"',description:\"JIS2004 Forms. Applies only to Japanese.\"},{name:'\"kern\"',description:\"Kerning.\"},{name:'\"lfbd\"',description:\"Left Bounds.\"},{name:'\"liga\"',description:\"Standard Ligatures.\"},{name:'\"ljmo\"',description:\"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"lnum\"',description:\"Lining Figures.\"},{name:'\"locl\"',description:\"Localized Forms.\"},{name:'\"ltra\"',description:\"Left-to-right glyph alternates.\"},{name:'\"ltrm\"',description:\"Left-to-right mirrored forms.\"},{name:'\"mark\"',description:\"Mark Positioning.\"},{name:'\"med2\"',description:\"Medial Form #2. Used only with the Syriac script.\"},{name:'\"medi\"',description:\"Medial Forms.\"},{name:'\"mgrk\"',description:\"Mathematical Greek.\"},{name:'\"mkmk\"',description:\"Mark to Mark Positioning.\"},{name:'\"nalt\"',description:\"Alternate Annotation Forms.\"},{name:'\"nlck\"',description:\"NLC Kanji Forms. Used only with Kanji script.\"},{name:'\"nukt\"',description:\"Nukta Forms. Required in Indic scripts..\"},{name:'\"numr\"',description:\"Numerators.\"},{name:'\"onum\"',description:\"Oldstyle Figures.\"},{name:'\"opbd\"',description:\"Optical Bounds.\"},{name:'\"ordn\"',description:\"Ordinals. Applies mostly to Latin script.\"},{name:'\"ornm\"',description:\"Ornaments.\"},{name:'\"palt\"',description:\"Proportional Alternate Widths. Used mostly in CJKV fonts.\"},{name:'\"pcap\"',description:\"Petite Capitals.\"},{name:'\"pkna\"',description:\"Proportional Kana. Generally used only in Japanese fonts.\"},{name:'\"pnum\"',description:\"Proportional Figures.\"},{name:'\"pref\"',description:\"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra.\"},{name:'\"pres\"',description:\"Pre-base Substitutions. Required in Indic scripts.\"},{name:'\"pstf\"',description:\"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer.\"},{name:'\"psts\"',description:\"Post-base Substitutions.\"},{name:'\"pwid\"',description:\"Proportional Widths.\"},{name:'\"qwid\"',description:\"Quarter Widths. Generally used only in CJKV fonts.\"},{name:'\"rand\"',description:\"Randomize.\"},{name:'\"rclt\"',description:\"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic.\"},{name:'\"rlig\"',description:\"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts.\"},{name:'\"rkrf\"',description:\"Rakar Forms. Required in Devanagari and Gujarati scripts.\"},{name:'\"rphf\"',description:\"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada.\"},{name:'\"rtbd\"',description:\"Right Bounds.\"},{name:'\"rtla\"',description:\"Right-to-left alternates.\"},{name:'\"rtlm\"',description:\"Right-to-left mirrored forms.\"},{name:'\"ruby\"',description:\"Ruby Notation Forms. Applies only to Japanese.\"},{name:'\"salt\"',description:\"Stylistic Alternates.\"},{name:'\"sinf\"',description:\"Scientific Inferiors.\"},{name:'\"size\"',description:\"Optical size.\"},{name:'\"smcp\"',description:\"Small Capitals. Applies only to bicameral scripts.\"},{name:'\"smpl\"',description:\"Simplified Forms. Applies only to Chinese and Japanese.\"},{name:'\"ssty\"',description:\"Math script style alternates.\"},{name:'\"stch\"',description:\"Stretching Glyph Decomposition.\"},{name:'\"subs\"',description:\"Subscript.\"},{name:'\"sups\"',description:\"Superscript.\"},{name:'\"swsh\"',description:\"Swash. Does not apply to ideographic scripts.\"},{name:'\"titl\"',description:\"Titling.\"},{name:'\"tjmo\"',description:\"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"tnam\"',description:\"Traditional Name Forms. Applies only to Japanese.\"},{name:'\"tnum\"',description:\"Tabular Figures.\"},{name:'\"trad\"',description:\"Traditional Forms. Applies only to Chinese and Japanese.\"},{name:'\"twid\"',description:\"Third Widths. Generally used only in CJKV fonts.\"},{name:'\"unic\"',description:\"Unicase.\"},{name:'\"valt\"',description:\"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes.\"},{name:'\"vatu\"',description:\"Vattu Variants. Used for Indic scripts. E.g. Devanagari.\"},{name:'\"vert\"',description:\"Vertical Alternates. Applies only to scripts with vertical writing modes.\"},{name:'\"vhal\"',description:\"Alternate Vertical Half Metrics. Used only in CJKV fonts.\"},{name:'\"vjmo\"',description:\"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"vkna\"',description:\"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"vkrn\"',description:\"Vertical Kerning.\"},{name:'\"vpal\"',description:\"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts.\"},{name:'\"vrt2\"',description:\"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes.\"},{name:'\"zero\"',description:\"Slashed Zero.\"},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",description:\"Disable feature.\"},{name:\"on\",description:\"Enable feature.\"}],syntax:\"normal | <feature-tag-value>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings\"}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"border-left-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-style\"}],description:\"Sets the style of the left border.\",restrictions:[\"line-style\"]},{name:\"font-stretch\",values:[{name:\"condensed\"},{name:\"expanded\"},{name:\"extra-condensed\"},{name:\"extra-expanded\"},{name:\"narrower\",description:\"Indicates a narrower value relative to the width of the parent element.\"},{name:\"normal\"},{name:\"semi-condensed\"},{name:\"semi-expanded\"},{name:\"ultra-condensed\"},{name:\"ultra-expanded\"},{name:\"wider\",description:\"Indicates a wider value relative to the width of the parent element.\"}],syntax:\"<font-stretch-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-stretch\"}],description:\"Selects a normal, condensed, or expanded face from a font family.\",restrictions:[\"enum\"]},{name:\"outline-color\",values:[{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"<color> | invert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-color\"}],description:\"The color of the outline.\",restrictions:[\"enum\",\"color\"]},{name:\"border-right-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-style\"}],description:\"Sets the style of the right border.\",restrictions:[\"line-style\"]},{name:\"clip-path\",values:[{name:\"none\",description:\"No clipping path gets created.\"},{name:\"url()\",description:\"References a <clipPath> element to create a clipping path.\"}],syntax:\"<clip-source> | [ <basic-shape> || <geometry-box> ] | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip-path\"}],description:\"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"list-style-image\",values:[{name:\"none\",description:\"The default contents of the of the list item’s marker are given by 'list-style-type' instead.\"}],syntax:\"<url> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-image\"}],description:\"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.\",restrictions:[\"image\"]},{name:\"counter-increment\",values:[{name:\"none\",description:\"This element does not alter the value of any counters.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-increment\"}],description:\"Manipulate the value of existing counters.\",restrictions:[\"identifier\",\"integer\"]},{name:\"counter-reset\",values:[{name:\"none\",description:\"The counter is not modified.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-reset\"}],description:\"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.\",restrictions:[\"identifier\",\"integer\"]},{name:\"font-display\",status:\"experimental\",syntax:\"[ auto | block | swap | fallback | optional ]\",description:\"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use.\"},{name:\"border-image\",values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\",description:\"Use the border styles.\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],syntax:\"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"column-count\",values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],syntax:\"<integer> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-count\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\",\"enum\"]},{name:\"column-gap\",values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],syntax:\"normal | <length-percentage>\",description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\",\"enum\"]},{name:\"text-decoration-color\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color\"}],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"all\",browsers:[\"FF27\",\"S9.1\",\"C37\",\"O24\"],values:[],syntax:\"initial | inherit | unset | revert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/all\"}],description:\"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.\",restrictions:[\"enum\"]},{name:\"object-position\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-position\"}],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"page-break-inside\",values:[{name:\"auto\",description:\"Neither force nor forbid a page break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page break inside the generated box.\"}],syntax:\"auto | avoid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-inside\"}],description:\"Defines rules for page breaks inside an element.\",restrictions:[\"enum\"]},{name:\"stroke-linecap\",values:[{name:\"butt\",description:\"Indicates that the stroke for each subpath does not extend beyond its two endpoints.\"},{name:\"round\",description:\"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width.\"},{name:\"square\",description:\"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width.\"}],description:\"Specifies the shape to be used at the end of open subpaths when they are stroked.\",restrictions:[\"enum\"]},{name:\"size\",browsers:[\"C\",\"O8\"],restrictions:[\"length\"]},{name:\"empty-cells\",values:[{name:\"hide\",description:\"No borders or backgrounds are drawn around/behind empty cells.\"},{name:\"-moz-show-background\"},{name:\"show\",description:\"Borders and backgrounds are drawn around/behind empty cells (like normal cells).\"}],syntax:\"show | hide\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/empty-cells\"}],description:\"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.\",restrictions:[\"enum\"]},{name:\"page-break-after\",values:[{name:\"always\",description:\"Always force a page break after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break after generated box.\"},{name:\"avoid\",description:\"Avoid a page break after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-after\"}],description:\"Defines rules for page breaks after an element.\",restrictions:[\"enum\"]},{name:\"fill-opacity\",description:\"Specifies the opacity of the painting operation used to paint the interior the current object.\",restrictions:[\"number(0-1)\"]},{name:\"grid-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<'grid-row-gap'> <'grid-column-gap'>?\",description:\"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.\",restrictions:[\"length\"]},{name:\"margin-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-end\"}],description:\"Logical 'margin-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"contain\",browsers:[\"FF69\",\"C52\",\"O40\"],values:[{name:\"none\",description:\"Indicates that the property has no effect.\"},{name:\"strict\",description:\"Turns on all forms of containment for the element.\"},{name:\"content\",description:\"All containment rules except size are applied to the element.\"},{name:\"size\",description:\"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element.\"},{name:\"layout\",description:\"Turns on layout containment for the element.\"},{name:\"style\",description:\"Turns on style containment for the element.\"},{name:\"paint\",description:\"Turns on paint containment for the element.\"}],status:\"experimental\",syntax:\"none | strict | content | [ size || layout || style || paint ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/contain\"}],description:\"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.\",restrictions:[\"enum\"]},{name:\"padding-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start\"}],description:\"Logical 'padding-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start\"}],description:\"Logical 'margin-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end\"}],description:\"Logical 'margin-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"grid-template-rows\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"padding-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end\"}],description:\"Logical 'padding-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"stroke-opacity\",description:\"Specifies the opacity of the painting operation used to stroke the current object.\",restrictions:[\"number(0-1)\"]},{name:\"orphans\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/orphans\"}],description:\"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.\",restrictions:[\"integer\"]},{name:\"shape-outside\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],values:[{name:\"margin-box\",description:\"The background is painted within (clipped to) the margin box.\"},{name:\"none\",description:\"The float area is unaffected.\"}],syntax:\"none | <shape-box> || <basic-shape> | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-outside\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"image\",\"box\",\"shape\",\"enum\"]},{name:\"caption-side\",values:[{name:\"bottom\",description:\"Positions the caption box below the table box.\"},{name:\"top\",description:\"Positions the caption box above the table box.\"}],syntax:\"top | bottom | block-start | block-end | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caption-side\"}],description:\"Specifies the position of the caption box with respect to the table box.\",restrictions:[\"enum\"]},{name:\"widows\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/widows\"}],description:\"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.\",restrictions:[\"integer\"]},{name:\"grid-column\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column\"}],description:\"Shorthand for 'grid-column-start' and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"perspective-origin\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective-origin\"}],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"column-width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<length> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-width\"}],description:\"Describes the width of columns in multicol elements.\",restrictions:[\"length\",\"enum\"]},{name:\"mix-blend-mode\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode\"}],description:\"Defines the formula that must be used to mix the colors with the backdrop.\",restrictions:[\"enum\"]},{name:\"grid-auto-rows\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows\"}],description:\"Specifies the size of implicitly created rows.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-variant-ligatures\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],values:[{name:\"additional-ligatures\",description:\"Enables display of additional ligatures.\"},{name:\"common-ligatures\",description:\"Enables display of common ligatures.\"},{name:\"contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Enables display of contextual alternates.\"},{name:\"discretionary-ligatures\",description:\"Enables display of discretionary ligatures.\"},{name:\"historical-ligatures\",description:\"Enables display of historical ligatures.\"},{name:\"no-additional-ligatures\",description:\"Disables display of additional ligatures.\"},{name:\"no-common-ligatures\",description:\"Disables display of common ligatures.\"},{name:\"no-contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables display of contextual alternates.\"},{name:\"no-discretionary-ligatures\",description:\"Disables display of discretionary ligatures.\"},{name:\"no-historical-ligatures\",description:\"Disables display of historical ligatures.\"},{name:\"none\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables all ligatures.\"},{name:\"normal\",description:\"Implies that the defaults set by the font are used.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures\"}],description:\"Specifies control over which ligatures are enabled or disabled. A value of ‘normal’ implies that the defaults set by the font are used.\",restrictions:[\"enum\"]},{name:\"scroll-behavior\",browsers:[\"FF36\",\"C61\",\"O48\"],values:[{name:\"auto\",description:\"Scrolls in an instant fashion.\"},{name:\"smooth\",description:\"Scrolls in a smooth fashion using a user-agent-defined timing function and time period.\"}],syntax:\"auto | smooth\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior\"}],description:\"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip\",status:\"experimental\",syntax:\"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]\",browsers:[\"S12.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip\"}],description:\"The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors.\"},{name:\"columns\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<'column-width'> || <'column-count'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/columns\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\",\"enum\"]},{name:\"column-rule\",syntax:\"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule\"}],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"line-break\",values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"loose\",description:\"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks text using the most common set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],syntax:\"auto | loose | normal | strict | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-break\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"text-align-last\",browsers:[\"E12\",\"FF49\",\"C47\",\"IE5.5\",\"O\"],values:[{name:\"auto\",description:\"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'.\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],syntax:\"auto | start | end | left | right | center | justify\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align-last\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"border-image-width\",values:[{name:\"auto\",description:\"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"}],syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-width\"}],description:\"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.\",restrictions:[\"length\",\"percentage\",\"number\"]},{name:\"stroke-miterlimit\",description:\"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.\",restrictions:[\"number\"]},{name:\"border-image-repeat\",values:[{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],syntax:\"[ stretch | repeat | round | space ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat\"}],description:\"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.\",restrictions:[\"enum\"]},{name:\"grid-column-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid columns. Replaced by 'column-gap' property.\",restrictions:[\"length\"]},{name:\"border-image-slice\",values:[{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"}],syntax:\"<number-percentage>{1,4} && fill?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-slice\"}],description:\"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.\",restrictions:[\"number\",\"percentage\"]},{name:\"justify-self\",browsers:[\"E16\",\"FF45\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]\",description:\"Defines the way of justifying a box inside its container along the appropriate axis.\",restrictions:[\"enum\"]},{name:\"fill-rule\",values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"border-image-outset\",syntax:\"[ <length> | <number> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-outset\"}],description:\"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.\",restrictions:[\"length\",\"number\"]},{name:\"justify-items\",values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"},{name:\"legacy\"}],syntax:\"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]\",description:\"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis\",restrictions:[\"enum\"]},{name:\"break-inside\",values:[{name:\"auto\",description:\"Impose no additional breaking constraints within the box.\"},{name:\"avoid\",description:\"Avoid breaks within the box.\"},{name:\"avoid-column\",description:\"Avoid a column break within the box.\"},{name:\"avoid-page\",description:\"Avoid a page break within the box.\"}],syntax:\"auto | avoid | avoid-page | avoid-column | avoid-region\",description:\"Describes the page/column/region break behavior inside the principal box.\",restrictions:[\"enum\"]},{name:\"scroll-snap-type\",values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],syntax:\"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type\"}],description:\"Defines how strictly snap points are enforced on the scroll container.\",restrictions:[\"enum\"]},{name:\"text-decoration-line\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],syntax:\"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"scroll-snap-align\",syntax:\"[ none | start | end | center ]{1,2}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align\"}],description:\"The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value.\"},{name:\"grid-row\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row\"}],description:\"Shorthand for 'grid-row-start' and 'grid-row-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"caret-color\",browsers:[\"FF53\",\"S11.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\"}],syntax:\"auto | <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caret-color\"}],description:\"Controls the color of the text insertion indicator.\",restrictions:[\"color\",\"enum\"]},{name:\"stroke-linejoin\",values:[{name:\"bevel\",description:\"Indicates that a bevelled corner is to be used to join path segments.\"},{name:\"miter\",description:\"Indicates that a sharp corner is to be used to join path segments.\"},{name:\"round\",description:\"Indicates that a round corner is to be used to join path segments.\"}],description:\"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.\",restrictions:[\"enum\"]},{name:\"grid-area\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]{0,3}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-area\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\"]},{name:\"column-fill\",values:[{name:\"auto\",description:\"Fills columns sequentially.\"},{name:\"balance\",description:\"Balance content equally between columns, if possible.\"}],syntax:\"auto | balance | balance-all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-fill\"}],description:\"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.\",restrictions:[\"enum\"]},{name:\"tab-size\",browsers:[\"FF4\",\"S6.1\",\"C21\",\"O15\"],syntax:\"<integer> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/tab-size\"}],description:\"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"overflow-anchor\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF66\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor\"}],description:\"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts.\"},{name:\"border-image-source\",values:[{name:\"none\",description:\"Use the border styles.\"}],syntax:\"none | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-source\"}],description:\"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.\",restrictions:[\"image\"]},{name:\"grid-template-areas\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"The grid container doesn’t define any named grid areas.\"}],syntax:\"none | <string>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas\"}],description:\"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.\",restrictions:[\"string\"]},{name:\"font-kerning\",browsers:[\"FF32\",\"S7\",\"C32\",\"O19\"],values:[{name:\"auto\",description:\"Specifies that kerning is applied at the discretion of the user agent.\"},{name:\"none\",description:\"Specifies that kerning is not applied.\"},{name:\"normal\",description:\"Specifies that kerning is applied.\"}],syntax:\"auto | normal | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-kerning\"}],description:\"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.\",restrictions:[\"enum\"]},{name:\"page-break-before\",values:[{name:\"always\",description:\"Always force a page break before the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break before the generated box.\"},{name:\"avoid\",description:\"Avoid a page break before the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-before\"}],description:\"Defines rules for page breaks before an element.\",restrictions:[\"enum\"]},{name:\"text-decoration-style\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"solid | double | dotted | dashed | wavy\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"grid-row-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid rows. Replaced by 'row-gap' property.\",restrictions:[\"length\"]},{name:\"backdrop-filter\",status:\"experimental\",syntax:\"none | <filter-function-list>\",browsers:[\"E17\",\"FF70\",\"S9\",\"C76\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter\"}],description:\"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.\"},{name:\"grid-auto-flow\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"row\",description:\"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary.\"},{name:\"column\",description:\"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary.\"},{name:\"dense\",description:\"If specified, the auto-placement algorithm uses a “dense” packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later.\"}],syntax:\"[ row | column ] || dense\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow\"}],description:\"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.\",restrictions:[\"enum\"]},{name:\"grid-column-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"column-rule-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-color\"}],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"isolation\",browsers:[\"FF36\",\"S8\",\"C41\",\"O30\"],values:[{name:\"auto\",description:\"Elements are not isolated unless an operation is applied that causes the creation of a stacking context.\"},{name:\"isolate\",description:\"In CSS will turn the element into a stacking context.\"}],syntax:\"auto | isolate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/isolation\"}],description:\"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.\",restrictions:[\"enum\"]},{name:\"column-rule-style\",syntax:\"<'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-style\"}],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"stop-color\",description:\"Indicates what color to use at that gradient stop.\",restrictions:[\"color\"]},{name:\"clip-rule\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"background-blend-mode\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode\"}],description:\"Defines the blending mode of each background layer.\",restrictions:[\"enum\"]},{name:\"font-variant-numeric\",browsers:[\"FF34\",\"S9.1\",\"C52\",\"O39\"],values:[{name:\"diagonal-fractions\",description:\"Enables display of lining diagonal fractions.\"},{name:\"lining-nums\",description:\"Enables display of lining numerals.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"oldstyle-nums\",description:\"Enables display of old-style numerals.\"},{name:\"ordinal\",description:\"Enables display of letter forms used with ordinal numbers.\"},{name:\"proportional-nums\",description:\"Enables display of proportional numerals.\"},{name:\"slashed-zero\",description:\"Enables display of slashed zeros.\"},{name:\"stacked-fractions\",description:\"Enables display of lining stacked fractions.\"},{name:\"tabular-nums\",description:\"Enables display of tabular numerals.\"}],syntax:\"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric\"}],description:\"Specifies control over numerical forms.\",restrictions:[\"enum\"]},{name:\"grid-column-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"margin-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-start\"}],description:\"Logical 'margin-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"writing-mode\",values:[{name:\"horizontal-tb\",description:\"Top-to-bottom block flow direction. The writing mode is horizontal.\"},{name:\"sideways-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"sideways-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"vertical-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical.\"},{name:\"vertical-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical.\"}],syntax:\"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/writing-mode\"}],description:\"This is a shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"shape-rendering\",values:[{name:\"auto\",description:\"Suppresses aural rendering.\"},{name:\"crispEdges\",description:\"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision.\"},{name:\"geometricPrecision\",description:\"Emphasize geometric precision over speed and crisp edges.\"},{name:\"optimizeSpeed\",description:\"Emphasize rendering speed over geometric precision and crisp edges.\"}],description:\"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.\",restrictions:[\"enum\"]},{name:\"grid-row-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"grid-auto-columns\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns\"}],description:\"Specifies the size of implicitly created columns.\",restrictions:[\"length\",\"percentage\"]},{name:\"break-after\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip-ink\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF70\",\"C64\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink\"}],description:\"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders.\"},{name:\"grid-row-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"break-before\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"font-variant-caps\",browsers:[\"FF34\",\"C52\",\"O39\"],values:[{name:\"all-petite-caps\",description:\"Enables display of petite capitals for both upper and lowercase letters.\"},{name:\"all-small-caps\",description:\"Enables display of small capitals for both upper and lowercase letters.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"petite-caps\",description:\"Enables display of petite capitals.\"},{name:\"small-caps\",description:\"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"},{name:\"titling-caps\",description:\"Enables display of titling capitals.\"},{name:\"unicase\",description:\"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters.\"}],syntax:\"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps\"}],description:\"Specifies control over capitalized forms.\",restrictions:[\"enum\"]},{name:\"stop-opacity\",description:\"Defines the opacity of a given gradient stop.\",restrictions:[\"number(0-1)\"]},{name:\"column-span\",values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],syntax:\"none | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-span\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-anchor\",values:[{name:\"end\",description:\"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position.\"},{name:\"middle\",description:\"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position.\"},{name:\"start\",description:\"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position.\"}],description:\"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.\",restrictions:[\"enum\"]},{name:\"column-rule-width\",syntax:\"<'border-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-width\"}],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"mask\",syntax:\"<mask-layer>#\",browsers:[\"E12\",\"FF2\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask\"}],description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"text-underline-position\",browsers:[\"E12\",\"C33\",\"IE6\",\"O20\"],values:[{name:\"above\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline’s position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"below\",description:\"The underline is aligned with the under edge of the element’s content box.\"}],syntax:\"auto | [ under || [ left | right ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-position\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"mask-type\",browsers:[\"FF35\",\"S6.1\",\"C24\",\"O15\"],values:[{name:\"alpha\",description:\"Indicates that the alpha values of the mask should be used.\"},{name:\"luminance\",description:\"Indicates that the luminance values of the mask should be used.\"}],syntax:\"luminance | alpha\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-type\"}],description:\"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.\",restrictions:[\"enum\"]},{name:\"font-variant-east-asian\",browsers:[\"FF34\",\"C63\",\"O50\"],values:[{name:\"full-width\",description:\"Enables rendering of full-width variants.\"},{name:\"jis04\",description:\"Enables rendering of JIS04 forms.\"},{name:\"jis78\",description:\"Enables rendering of JIS78 forms.\"},{name:\"jis83\",description:\"Enables rendering of JIS83 forms.\"},{name:\"jis90\",description:\"Enables rendering of JIS90 forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"proportional-width\",description:\"Enables rendering of proportionally-spaced variants.\"},{name:\"ruby\",description:\"Enables display of ruby variant glyphs.\"},{name:\"simplified\",description:\"Enables rendering of simplified forms.\"},{name:\"traditional\",description:\"Enables rendering of traditional forms.\"}],syntax:\"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian\"}],description:\"Allows control of glyph substitute and positioning in East Asian text.\",restrictions:[\"enum\"]},{name:\"border-inline-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width\"}],description:\"Logical 'border-right-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-inline-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width\"}],description:\"Logical 'border-left-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"text-orientation\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],values:[{name:\"sideways\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode.\"},{name:\"sideways-right\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90° clockwise.\"},{name:\"upright\",description:\"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation.\"}],syntax:\"mixed | upright | sideways\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-orientation\"}],description:\"Specifies the orientation of text within a line.\",restrictions:[\"enum\"]},{name:\"shape-margin\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-margin\"}],description:\"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.\",restrictions:[\"url\",\"length\",\"percentage\"]},{name:\"shape-image-threshold\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold\"}],description:\"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.\",restrictions:[\"number\"]},{name:\"min-inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-inline-size\"}],description:\"Logical 'min-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inline-size\"}],description:\"Logical 'height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-combine-upright\",syntax:\"none | all | [ digits <integer>? ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright\"}],description:\"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\\n\\nThis is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese.\"},{name:\"block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/block-size\"}],description:\"Logical 'width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"min-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-block-size\"}],description:\"Logical 'min-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-start\"}],description:\"Logical 'padding-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-end\"}],description:\"Logical 'padding-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-inline-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color\"}],description:\"Logical 'border-left-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color\"}],description:\"Logical 'border-right-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style\"}],description:\"Logical 'border-right-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-inline-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style\"}],description:\"Logical 'border-left-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style\"}],description:\"Logical 'border-bottom-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color\"}],description:\"Logical 'border-bottom-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style\"}],description:\"Logical 'border-top-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color\"}],description:\"Logical 'border-top-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width\"}],description:\"Logical 'border-top-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-block-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width\"}],description:\"Logical 'border-bottom-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"row-gap\",syntax:\"normal | <length-percentage>\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The row-gap CSS property specifies the gutter between grid rows.\"},{name:\"grid-template\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"Sets all three properties to their initial values.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template\"}],description:\"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"color-interpolation-filters\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"auto\",description:\"Color operations are not required to occur in a particular color space.\"},{name:\"linearRGB\",description:\"Color operations should occur in the linearized RGB color space.\"},{name:\"sRGB\",description:\"Color operations should occur in the sRGB color space.\"}],description:\"Specifies the color space for imaging operations performed via filter effects.\",restrictions:[\"enum\"]},{name:\"paint-order\",browsers:[\"E17\",\"FF60\",\"S8\",\"C35\",\"O22\"],values:[{name:\"fill\"},{name:\"markers\"},{name:\"normal\",description:\"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers.\"},{name:\"stroke\"}],status:\"experimental\",syntax:\"normal | [ fill || stroke || markers ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/paint-order\"}],description:\"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.\",restrictions:[\"enum\"]},{name:\"flood-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what color to use to flood the current filter primitive subregion.\",restrictions:[\"color\"]},{name:\"flood-opacity\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what opacity to use to flood the current filter primitive subregion.\",restrictions:[\"number(0-1)\",\"percentage\"]},{name:\"scroll-snap-stop\",syntax:\"normal | always\",browsers:[\"C75\",\"O62\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop\"}],description:'The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions.'},{name:\"lighting-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.\",restrictions:[\"color\"]},{name:\"scroll-padding-left\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left\"}],description:\"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker-end\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the last vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-start\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the first vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-mid\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at all vertices except the first and last.\",restrictions:[\"url\"]},{name:\"offset-distance\",status:\"experimental\",syntax:\"<length-percentage>\",browsers:[\"FF69\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-distance\"}],description:\"The offset-distance CSS property specifies a position along an offset-path.\"},{name:\"place-content\",syntax:\"<'align-content'> <'justify-content'>?\",browsers:[\"FF53\",\"S9\",\"C59\",\"O\"],description:\"The place-content CSS shorthand property sets both the align-content and justify-content properties.\"},{name:\"font-variation-settings\",syntax:\"normal | [ <string> <number> ]#\",browsers:[\"E17\",\"FF62\",\"S11\",\"C62\",\"O49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings\"}],description:\"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values.\"},{name:\"offset-path\",status:\"experimental\",syntax:\"none | ray( [ <angle> && <size>? && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]\",browsers:[\"FF63\",\"C55\",\"O45\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-path\"}],description:'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\\n\\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'},{name:\"offset-rotate\",status:\"experimental\",syntax:\"[ auto | reverse ] || <angle>\",browsers:[\"FF69\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-rotate\"}],description:\"The offset-rotate CSS property defines the direction of the element while positioning along the offset path.\"},{name:\"max-inline-size\",browsers:[\"FF41\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the height of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-inline-size\"}],description:\"Logical 'max-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the width of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-block-size\"}],description:\"Logical 'max-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"scroll-padding\",syntax:\"[ auto | <length-percentage> ]{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding\"}],description:\"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands.\"},{name:\"transform-box\",syntax:\"border-box | fill-box | view-box\",browsers:[\"FF55\",\"S11\",\"C64\",\"O51\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-box\"}],description:\"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate.\"},{name:\"scroll-padding-top\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top\"}],description:\"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"gap\",syntax:\"<'row-gap'> <'column-gap'>?\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns.\"},{name:\"scroll-padding-right\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right\"}],description:\"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given ‘path’ element or basic shape.\",restrictions:[\"url\"]},{name:\"scroll-padding-bottom\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom\"}],description:\"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start\"}],description:\"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start\"}],description:\"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end\"}],description:\"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end\"}],description:\"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"place-self\",syntax:\"<'align-self'> <'justify-self'>?\",browsers:[\"FF45\",\"C59\",\"O46\"],description:\"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it.\"},{name:\"grid\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],syntax:\"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid\"}],description:\"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"place-items\",syntax:\"<'align-items'> <'justify-items'>?\",browsers:[\"FF45\",\"S11\",\"C59\",\"O46\"],description:\"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it.\"},{name:\"font-optical-sizing\",syntax:\"auto | none\",browsers:[\"E17\",\"FF62\",\"S11\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing\"}],description:\"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis.\"},{name:\"border-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start\"}],description:\"Logical 'border-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end\"}],description:\"Logical 'border-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start\"}],description:\"Logical 'border-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"offset\",status:\"experimental\",syntax:\"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\",browsers:[\"FF71\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset\"}],description:\"The offset CSS property is a shorthand property for animating an element along a defined path.\"},{name:\"border-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end\"}],description:\"Logical 'border-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"scroll-padding-block\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block\"}],description:\"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension.\"},{name:\"scroll-padding-inline\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline\"}],description:\"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension.\"},{name:\"motion\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"},{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.\",restrictions:[\"url\",\"length\",\"percentage\",\"angle\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"margin-inline\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline\"}],description:\"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-block\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block\"}],description:\"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-inline\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline\"}],description:\"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"font-size-adjust\",browsers:[\"FF40\",\"C54\",\"O41\"],values:[{name:\"none\",description:\"Do not preserve the font’s x-height.\"}],syntax:\"none | <number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust\"}],description:\"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.\",restrictions:[\"number\"]},{name:\"motion-path\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"}],description:\"Specifies the motion path the element gets positioned at.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"text-justify\",browsers:[\"E12\",\"FF55\",\"C32\",\"IE11\",\"O19\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"distribute-all-lines\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"},{name:\"newspaper\"}],syntax:\"auto | inter-character | inter-word | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-justify\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"motion-offset\",browsers:[\"C46\",\"O33\"],description:\"A distance that describes the position along the specified motion path.\",restrictions:[\"length\",\"percentage\"]},{name:\"inset-block-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-start\"}],description:\"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset\",syntax:\"<'top'>{1,4}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset\"}],description:\"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start\"}],description:\"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end\"}],description:\"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"scale\",syntax:\"none | <number>{1,3}\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scale\"}],description:\"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"translate\",syntax:\"none | <length-percentage> [ <length-percentage> <length>? ]?\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/translate\"}],description:\"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"rotate\",syntax:\"none | <angle> | [ x | y | z | <number>{3} ] && <angle>\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/rotate\"}],description:\"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"offset-anchor\",status:\"experimental\",syntax:\"auto | <position>\",browsers:[\"FF70\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-anchor\"}],description:\"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path.\"},{name:\"offset-position\",status:\"experimental\",syntax:\"auto | <position>\",description:\"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored.\"},{name:\"margin-block\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block\"}],description:\"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"user-zoom\",syntax:\"zoom | fixed\",description:\"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport.\"},{name:\"min-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"inset-block-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-end\"}],description:\"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"enable-background\",values:[{name:\"accumulate\",description:\"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target.\"},{name:\"new\",description:\"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device.\"}],description:\"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.\",restrictions:[\"integer\",\"length\",\"percentage\",\"enum\"]},{name:\"glyph-orientation-horizontal\",description:\"Controls glyph orientation when the inline-progression-direction is horizontal.\",restrictions:[\"angle\",\"number\"]},{name:\"glyph-orientation-vertical\",values:[{name:\"auto\",description:\"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation.\"}],description:\"Controls glyph orientation when the inline-progression-direction is vertical.\",restrictions:[\"angle\",\"number\",\"enum\"]},{name:\"kerning\",values:[{name:\"auto\",description:\"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used.\"}],description:\"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.\",restrictions:[\"length\",\"enum\"]},{name:\"image-orientation\",browsers:[\"FF26\"],values:[{name:\"flip\",description:\"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted.\"},{name:\"from-image\",description:\"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image.\"}],syntax:\"from-image | <angle> | [ <angle>? flip ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-orientation\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"angle\"]},{name:\"image-resolution\",status:\"experimental\",syntax:\"[ from-image || <resolution> ] && snap?\",description:\"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions.\"},{name:\"max-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The max-zoom CSS descriptor sets the maximum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom in any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"orientation\",syntax:\"auto | portrait | landscape\",description:\"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media).\"},{name:\"motion-rotation\",browsers:[\"C46\",\"O33\"],values:[{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Defines the direction of the element while positioning along the motion path.\",restrictions:[\"angle\"]},{name:\"scroll-snap-points-x\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x\"}],description:\"Defines the positioning of snap points along the x axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-points-y\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y\"}],description:\"Defines the positioning of snap points along the y axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-coordinate\",browsers:[\"FF39\"],values:[{name:\"none\",description:\"Specifies that this element does not contribute a snap point.\"}],status:\"obsolete\",syntax:\"none | <position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate\"}],description:\"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container’s snap-destination for the respective axis.\",restrictions:[\"position\",\"length\",\"percentage\",\"enum\"]},{name:\"scroll-snap-destination\",browsers:[\"FF39\"],status:\"obsolete\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination\"}],description:\"Define the x and y coordinate within the scroll container’s visual viewport which element snap points will align with.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-block-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-color\"}],description:\"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-style\"}],description:\"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-width\"}],description:\"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-color\"}],description:\"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-style\"}],description:\"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-width\"}],description:\"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block\"}],description:\"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet.\"},{name:\"border-inline\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline\"}],description:\"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet.\"},{name:\"inset-block\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block\"}],description:\"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline\"}],description:\"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"additive-symbols\",browsers:[\"FF33\"],syntax:\"[ <integer> && <symbol> ]#\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.\",restrictions:[\"integer\",\"string\",\"image\",\"identifier\"]},{name:\"alt\",browsers:[\"S9\"],values:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/alt\"}],description:\"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.\",restrictions:[\"string\",\"enum\"]},{name:\"behavior\",browsers:[\"IE6\"],description:\"IE only. Used to extend behaviors of the browser.\",restrictions:[\"url\"]},{name:\"box-decoration-break\",browsers:[\"FF32\",\"S6.1\",\"C22\",\"O15\"],values:[{name:\"clone\",description:\"Each box is independently wrapped with the border and padding.\"},{name:\"slice\",description:\"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward.\"}],syntax:\"slice | clone\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break\"}],description:\"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.\",restrictions:[\"enum\"]},{name:\"fallback\",browsers:[\"FF33\"],syntax:\"<counter-style-name>\",description:\"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can’t create a representation for a given counter value.\",restrictions:[\"identifier\"]},{name:\"font-language-override\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\"}],syntax:\"normal | <string>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-language-override\"}],description:\"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\",restrictions:[\"string\"]},{name:\"font-synthesis\",browsers:[\"FF34\",\"S9\"],values:[{name:\"none\",description:\"Disallow all synthetic faces.\"},{name:\"style\",description:\"Allow synthetic italic faces.\"},{name:\"weight\",description:\"Allow synthetic bold faces.\"}],syntax:\"none | [ weight || style ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-synthesis\"}],description:\"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.\",restrictions:[\"enum\"]},{name:\"font-variant-alternates\",browsers:[\"FF34\"],values:[{name:\"annotation()\",description:\"Enables display of alternate annotation forms.\"},{name:\"character-variant()\",description:\"Enables display of specific character variants.\"},{name:\"historical-forms\",description:\"Enables display of historical forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"ornaments()\",description:\"Enables replacement of default glyphs with ornaments, if provided in the font.\"},{name:\"styleset()\",description:\"Enables display with stylistic sets.\"},{name:\"stylistic()\",description:\"Enables display of stylistic alternates.\"},{name:\"swash()\",description:\"Enables display of swash glyphs.\"}],syntax:\"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates\"}],description:\"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.\",restrictions:[\"enum\"]},{name:\"font-variant-position\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"sub\",description:\"Enables display of subscript variants (OpenType feature: subs).\"},{name:\"super\",description:\"Enables display of superscript variants (OpenType feature: sups).\"}],syntax:\"normal | sub | super\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-position\"}],description:\"Specifies the vertical position\",restrictions:[\"enum\"]},{name:\"ime-mode\",browsers:[\"E12\",\"FF3\",\"IE5\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],status:\"obsolete\",syntax:\"auto | normal | active | inactive | disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ime-mode\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"mask-image\",browsers:[\"E16\",\"FF53\",\"S4\",\"C1\",\"O15\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],syntax:\"<mask-reference>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-image\"}],description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-mode\",browsers:[\"FF53\"],values:[{name:\"alpha\",description:\"Alpha values of the mask layer image should be used as the mask values.\"},{name:\"auto\",description:\"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image.\"},{name:\"luminance\",description:\"Luminance values of the mask layer image should be used as the mask values.\"}],syntax:\"<masking-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-mode\"}],description:\"Indicates whether the mask layer image is treated as luminance mask or alpha mask.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-origin\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],syntax:\"<geometry-box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-origin\"}],description:\"Specifies the mask positioning area.\",restrictions:[\"geometry-box\",\"enum\"]},{name:\"mask-position\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-position\"}],description:\"Specifies how mask layer images are positioned.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"mask-repeat\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-repeat\"}],description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"mask-size\",browsers:[\"E18\",\"FF53\",\"S4\",\"C4\",\"O15\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-size\"}],description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-moz-animation\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-moz-animation-delay\",browsers:[\"FF9\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-moz-animation-direction\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-moz-animation-duration\",browsers:[\"FF9\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-moz-animation-iteration-count\",browsers:[\"FF9\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-moz-animation-name\",browsers:[\"FF9\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-moz-animation-play-state\",browsers:[\"FF9\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-moz-animation-timing-function\",browsers:[\"FF9\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-moz-appearance\",browsers:[\"FF1\"],values:[{name:\"button\"},{name:\"button-arrow-down\"},{name:\"button-arrow-next\"},{name:\"button-arrow-previous\"},{name:\"button-arrow-up\"},{name:\"button-bevel\"},{name:\"checkbox\"},{name:\"checkbox-container\"},{name:\"checkbox-label\"},{name:\"dialog\"},{name:\"groupbox\"},{name:\"listbox\"},{name:\"menuarrow\"},{name:\"menuimage\"},{name:\"menuitem\"},{name:\"menuitemtext\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"menupopup\"},{name:\"menuradio\"},{name:\"menuseparator\"},{name:\"-moz-mac-unified-toolbar\"},{name:\"-moz-win-borderless-glass\"},{name:\"-moz-win-browsertabbar-toolbox\"},{name:\"-moz-win-communications-toolbox\"},{name:\"-moz-win-glass\"},{name:\"-moz-win-media-toolbox\"},{name:\"none\"},{name:\"progressbar\"},{name:\"progresschunk\"},{name:\"radio\"},{name:\"radio-container\"},{name:\"radio-label\"},{name:\"radiomenuitem\"},{name:\"resizer\"},{name:\"resizerpanel\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbar-small\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"separator\"},{name:\"spinner\"},{name:\"spinner-downbutton\"},{name:\"spinner-textfield\"},{name:\"spinner-upbutton\"},{name:\"statusbar\"},{name:\"statusbarpanel\"},{name:\"tab\"},{name:\"tabpanels\"},{name:\"tab-scroll-arrow-back\"},{name:\"tab-scroll-arrow-forward\"},{name:\"textfield\"},{name:\"textfield-multiline\"},{name:\"toolbar\"},{name:\"toolbox\"},{name:\"tooltip\"},{name:\"treeheadercell\"},{name:\"treeheadersortarrow\"},{name:\"treeitem\"},{name:\"treetwistyopen\"},{name:\"treeview\"},{name:\"treewisty\"},{name:\"window\"}],status:\"nonstandard\",syntax:\"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized\",description:\"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.\",restrictions:[\"enum\"]},{name:\"-moz-backface-visibility\",browsers:[\"FF10\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-moz-background-clip\",browsers:[\"FF1-3.6\"],values:[{name:\"padding\"}],description:\"Determines the background painting area.\",restrictions:[\"box\",\"enum\"]},{name:\"-moz-background-inline-policy\",browsers:[\"FF1\"],values:[{name:\"bounding-box\"},{name:\"continuous\"},{name:\"each-box\"}],description:\"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.\",restrictions:[\"enum\"]},{name:\"-moz-background-origin\",browsers:[\"FF1\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-moz-border-bottom-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-image\",browsers:[\"FF3.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-moz-border-left-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-right-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-top-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors\"}],description:\"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-box-align\",browsers:[\"FF1\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-direction\",browsers:[\"FF1\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-moz-box-flex\",browsers:[\"FF1\"],description:\"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.\",restrictions:[\"number\"]},{name:\"-moz-box-flexgroup\",browsers:[\"FF1\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-moz-box-ordinal-group\",browsers:[\"FF1\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-moz-box-orient\",browsers:[\"FF1\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-moz-box-pack\",browsers:[\"FF1\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-sizing\",browsers:[\"FF1\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"},{name:\"padding-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the padding box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-moz-column-count\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-moz-column-gap\",browsers:[\"FF3.5\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-moz-column-rule\",browsers:[\"FF3.5\"],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-moz-column-rule-color\",browsers:[\"FF3.5\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-moz-column-rule-style\",browsers:[\"FF3.5\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-moz-column-rule-width\",browsers:[\"FF3.5\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-moz-columns\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-moz-column-width\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-moz-font-feature-settings\",browsers:[\"FF4\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",browsers:[\"FF4\"]},{name:\"on\",browsers:[\"FF4\"]}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-moz-hyphens\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-moz-perspective\",browsers:[\"FF10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-moz-perspective-origin\",browsers:[\"FF10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-moz-text-align-last\",browsers:[\"FF12\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-color\",browsers:[\"FF6\"],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"-moz-text-decoration-line\",browsers:[\"FF6\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-style\",browsers:[\"FF6\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"-moz-text-size-adjust\",browsers:[\"FF\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-moz-transform\",browsers:[\"FF3.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-moz-transform-origin\",browsers:[\"FF3.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-moz-transition\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-moz-transition-delay\",browsers:[\"FF4\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-moz-transition-duration\",browsers:[\"FF4\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-moz-transition-property\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-moz-transition-timing-function\",browsers:[\"FF4\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-moz-user-focus\",browsers:[\"FF1\"],values:[{name:\"ignore\"},{name:\"normal\"}],status:\"nonstandard\",syntax:\"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus\"}],description:\"Used to indicate whether the element can have focus.\"},{name:\"-moz-user-select\",browsers:[\"FF1.5\"],values:[{name:\"all\"},{name:\"element\"},{name:\"elements\"},{name:\"-moz-all\"},{name:\"-moz-none\"},{name:\"none\"},{name:\"text\"},{name:\"toggle\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-accelerator\",browsers:[\"E\",\"IE10\"],values:[{name:\"false\",description:\"The element does not contain an accelerator key sequence.\"},{name:\"true\",description:\"The element contains an accelerator key sequence.\"}],status:\"nonstandard\",syntax:\"false | true\",description:\"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed\",restrictions:[\"enum\"]},{name:\"-ms-behavior\",browsers:[\"IE8\"],description:\"IE only. Used to extend behaviors of the browser\",restrictions:[\"url\"]},{name:\"-ms-block-progression\",browsers:[\"IE8\"],values:[{name:\"bt\",description:\"Bottom-to-top block flow. Layout is horizontal.\"},{name:\"lr\",description:\"Left-to-right direction. The flow orientation is vertical.\"},{name:\"rl\",description:\"Right-to-left direction. The flow orientation is vertical.\"},{name:\"tb\",description:\"Top-to-bottom direction. The flow orientation is horizontal.\"}],status:\"nonstandard\",syntax:\"tb | rl | bt | lr\",description:\"Sets the block-progression value and the flow orientation\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\",description:\"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown.\"},{name:\"none\",description:\"A bounce effect is shown when the user hits a zoom limit during a manipulation.\"}],status:\"nonstandard\",syntax:\"none | chained\",description:\"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation.\"},{name:\"-ms-content-zooming\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not zoomable.\"},{name:\"zoom\",description:\"The element is zoomable.\"}],status:\"nonstandard\",syntax:\"none | zoom\",description:\"Specifies whether zooming is enabled.\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-limit\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>\",description:\"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-max\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the maximum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the minimum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-snap\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'},{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>\",description:\"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.\"},{name:\"-ms-content-zoom-snap-points\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )\",description:\"Defines where zoom snap-points are located.\"},{name:\"-ms-content-zoom-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Specifies how zooming is affected by defined snap-points.\",restrictions:[\"enum\"]},{name:\"-ms-filter\",browsers:[\"IE8-9\"],status:\"nonstandard\",syntax:\"<string>\",description:\"IE only. Used to produce visual effects.\",restrictions:[\"string\"]},{name:\"-ms-flex\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],description:\"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"-ms-flex-align\",browsers:[\"IE10\"],values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'.\"}],description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-direction\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-flow\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"-ms-flex-item-align\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"-ms-flex-line-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"distribute\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"justify\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-order\",browsers:[\"IE10\"],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"-ms-flex-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"distribute\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"justify\",description:\"Flex items are evenly distributed in the line.\"},{name:\"start\",description:\"Flex items are packed toward the start of the line.\"}],description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-wrap\",browsers:[\"IE10\"],values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"-ms-flow-from\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-flow-into\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-grid-column\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"Used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-column-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's column.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column.\"}],description:\"Aligns the columns in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-columns\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-column-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of columns to span.\",restrictions:[\"integer\"]},{name:\"-ms-grid-layer\",browsers:[\"E\",\"IE10\"],description:\"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.\",restrictions:[\"integer\"]},{name:\"-ms-grid-row\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"grid-row is used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-row-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's row.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row.\"}],description:\"Aligns the rows in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-rows\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-row-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of rows to span.\",restrictions:[\"integer\"]},{name:\"-ms-high-contrast-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Properties will be adjusted as applicable.\"},{name:\"none\",description:\"No adjustments will be applied.\"}],status:\"nonstandard\",syntax:\"auto | none\",description:\"Specifies if properties should be adjusted in high contrast mode.\",restrictions:[\"enum\"]},{name:\"-ms-hyphenate-limit-chars\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The user agent chooses a value that adapts to the current layout.\"}],status:\"nonstandard\",syntax:\"auto | <integer>{1,3}\",description:\"Specifies the minimum number of characters in a hyphenated word.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-lines\",browsers:[\"E\",\"IE10\"],values:[{name:\"no-limit\",description:\"There is no limit.\"}],status:\"nonstandard\",syntax:\"no-limit | <integer>\",description:\"Indicates the maximum number of successive hyphenated lines in an element.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-zone\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage> | <length>\",description:\"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.\",restrictions:[\"percentage\",\"length\"]},{name:\"-ms-hyphens\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-ms-ime-mode\",browsers:[\"IE10\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"-ms-interpolation-mode\",browsers:[\"IE7\"],values:[{name:\"bicubic\"},{name:\"nearest-neighbor\"}],description:\"Gets or sets the interpolation (resampling) method used to stretch images.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid\",browsers:[\"E\",\"IE10\"],values:[{name:\"char\",description:\"Any of the range of character values available to the -ms-layout-grid-char property.\"},{name:\"line\",description:\"Any of the range of line values available to the -ms-layout-grid-line property.\"},{name:\"mode\",description:\"Any of the range of mode values available to the -ms-layout-grid-mode property.\"},{name:\"type\",description:\"Any of the range of type values available to the -ms-layout-grid-type property.\"}],description:\"Sets or retrieves the composite document grid properties that specify the layout of text characters.\"},{name:\"-ms-layout-grid-char\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No character grid is set.\"}],description:\"Sets or retrieves the size of the character grid used for rendering the text content of an element.\",restrictions:[\"enum\",\"length\",\"percentage\"]},{name:\"-ms-layout-grid-line\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No grid line is set.\"}],description:\"Sets or retrieves the gridline value used for rendering the text content of an element.\",restrictions:[\"length\"]},{name:\"-ms-layout-grid-mode\",browsers:[\"E\",\"IE10\"],values:[{name:\"both\",description:\"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element.\"},{name:\"char\",description:\"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled.\"},{name:\"line\",description:\"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout.\"},{name:\"none\",description:\"No grid is used.\"}],description:\"Gets or sets whether the text layout grid uses two dimensions.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"fixed\",description:\"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default.\"},{name:\"loose\",description:\"Default. Grid used for Japanese and Korean characters.\"},{name:\"strict\",description:\"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid.\"}],description:\"Sets or retrieves the type of grid used for rendering the text content of an element.\",restrictions:[\"enum\"]},{name:\"-ms-line-break\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"keep-all\",description:\"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean.\"},{name:\"newspaper\",description:\"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks CJK scripts using a normal set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"-ms-overflow-style\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"No preference, UA should use the first scrolling method in the list that it supports.\"},{name:\"-ms-autohiding-scrollbar\",description:\"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions.\"},{name:\"none\",description:\"Indicates the element does not display scrollbars or panning indicators, even when its content overflows.\"},{name:\"scrollbar\",description:'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element.'}],status:\"nonstandard\",syntax:\"auto | none | scrollbar | -ms-autohiding-scrollbar\",description:\"Specify whether content is clipped when it overflows the element's content area.\",restrictions:[\"enum\"]},{name:\"-ms-perspective\",browsers:[\"IE10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-ms-perspective-origin\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-x\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X  position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-y\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-progress-appearance\",browsers:[\"IE10\"],values:[{name:\"bar\"},{name:\"ring\"}],description:\"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.\",restrictions:[\"enum\"]},{name:\"-ms-scrollbar-3dlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-arrow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-base-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-darkshadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-face-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-highlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-shadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-track-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scroll-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\"},{name:\"none\"}],status:\"nonstandard\",syntax:\"chained | none\",description:\"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-limit\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-rails\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"railed\"}],status:\"nonstandard\",syntax:\"none | railed\",description:\"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-snap-points-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the x-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-points-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the y-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-translation\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"vertical-to-horizontal\"}],status:\"nonstandard\",syntax:\"none | vertical-to-horizontal\",description:\"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.\",restrictions:[\"enum\"]},{name:\"-ms-text-align-last\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-ms-text-autospace\",browsers:[\"E\",\"IE8\"],values:[{name:\"ideograph-alpha\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.\"},{name:\"ideograph-numeric\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs.\"},{name:\"ideograph-parenthesis\",description:\"Creates extra spacing between normal (non wide) parenthesis and ideographs.\"},{name:\"ideograph-space\",description:\"Extends the width of the space character while surrounded by ideographs.\"},{name:\"none\",description:\"No extra space is created.\"},{name:\"punctuation\",description:\"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.\"}],status:\"nonstandard\",syntax:\"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space\",description:\"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.\",restrictions:[\"enum\"]},{name:\"-ms-text-combine-horizontal\",browsers:[\"E\",\"IE11\"],values:[{name:\"all\",description:\"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box.\"},{name:\"digits\",description:\"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030–U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box.\"},{name:\"none\",description:\"No special processing.\"}],description:\"This property specifies the combination of multiple characters into the space of a single character.\",restrictions:[\"enum\",\"integer\"]},{name:\"-ms-text-justify\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"-ms-text-kashida-space\",browsers:[\"E\",\"IE10\"],description:\"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.\",restrictions:[\"percentage\"]},{name:\"-ms-text-overflow\",browsers:[\"IE10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-ms-text-size-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-ms-text-underline-position\",browsers:[\"E\",\"IE10\"],values:[{name:\"alphabetic\",description:\"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders.\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"over\",description:\"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides.\"},{name:\"under\",description:\"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline.\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"-ms-touch-action\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"The element is a passive element, with several exceptions.\"},{name:\"double-tap-zoom\",description:\"The element will zoom on double-tap.\"},{name:\"manipulation\",description:\"The element is a manipulation-causing element.\"},{name:\"none\",description:\"The element is a manipulation-blocking element.\"},{name:\"pan-x\",description:\"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\",description:\"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content.\"}],description:\"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.\",restrictions:[\"enum\"]},{name:\"-ms-touch-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"grippers\",description:\"Grippers are always on.\"},{name:\"none\",description:\"Grippers are always off.\"}],status:\"nonstandard\",syntax:\"grippers | none\",description:\"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.\",restrictions:[\"enum\"]},{name:\"-ms-transform\",browsers:[\"IE9-9\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-ms-transform-origin\",browsers:[\"IE9-9\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-ms-transform-origin-x\",browsers:[\"IE10\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-y\",browsers:[\"IE10\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-z\",browsers:[\"IE10\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-user-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"element\"},{name:\"none\"},{name:\"text\"}],status:\"nonstandard\",syntax:\"none | element | text\",description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-word-break\",browsers:[\"IE8\"],values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"-ms-word-wrap\",browsers:[\"IE8\"],values:[{name:\"break-word\",description:\"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-flow\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"For floats an exclusion is created, for all other elements an exclusion is not created.\"},{name:\"both\",description:\"Inline flow content can flow on all sides of the exclusion.\"},{name:\"clear\",description:\"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty.\"},{name:\"end\",description:\"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty.\"},{name:\"maximum\",description:\"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty.\"},{name:\"minimum\",description:\"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content’s containing block, and must leave the other edge of the exclusion empty.\"},{name:\"start\",description:\"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty.\"}],status:\"nonstandard\",syntax:\"auto | both | start | end | maximum | clear\",description:\"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-margin\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that is used to offset the inner wrap shape from other shapes.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-wrap-through\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element.\"},{name:\"wrap\",description:\"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element.\"}],status:\"nonstandard\",syntax:\"wrap | none\",description:\"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.\",restrictions:[\"enum\"]},{name:\"-ms-writing-mode\",browsers:[\"IE8\"],values:[{name:\"bt-lr\"},{name:\"bt-rl\"},{name:\"lr-bt\"},{name:\"lr-tb\"},{name:\"rl-bt\"},{name:\"rl-tb\"},{name:\"tb-lr\"},{name:\"tb-rl\"}],description:\"Shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"-ms-zoom\",browsers:[\"IE8\"],values:[{name:\"normal\"}],description:\"Sets or retrieves the magnification scale of the object.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"-ms-zoom-animation\",browsers:[\"IE10\"],values:[{name:\"default\"},{name:\"none\"}],description:\"Gets or sets a value that indicates whether an animation is used when zooming.\",restrictions:[\"enum\"]},{name:\"nav-down\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-index\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The element's sequential navigation order is assigned automatically by the user agent.\"}],description:\"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').\",restrictions:[\"number\"]},{name:\"nav-left\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-right\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-up\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"negative\",browsers:[\"FF33\"],syntax:\"<symbol> <symbol>?\",description:\"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.\",restrictions:[\"image\",\"identifier\",\"string\"]},{name:\"-o-animation\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-o-animation-delay\",browsers:[\"O12\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-o-animation-direction\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-o-animation-duration\",browsers:[\"O12\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-o-animation-fill-mode\",browsers:[\"O12\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-o-animation-iteration-count\",browsers:[\"O12\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-o-animation-name\",browsers:[\"O12\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-o-animation-play-state\",browsers:[\"O12\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-o-animation-timing-function\",browsers:[\"O12\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-o-border-image\",browsers:[\"O11.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"image\",\"enum\"]},{name:\"-o-object-fit\",browsers:[\"O10.6\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"-o-object-position\",browsers:[\"O10.6\"],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-o-table-baseline\",browsers:[\"O9.6\"],description:\"Determines which row of a inline-table should be used as baseline of inline-table.\",restrictions:[\"integer\"]},{name:\"-o-tab-size\",browsers:[\"O10.6\"],description:\"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"-o-text-overflow\",browsers:[\"O10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-o-transform\",browsers:[\"O10.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-o-transform-origin\",browsers:[\"O10.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"positon\",\"length\",\"percentage\"]},{name:\"-o-transition\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-o-transition-delay\",browsers:[\"O11.5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-o-transition-duration\",browsers:[\"O11.5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-o-transition-property\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-o-transition-timing-function\",browsers:[\"O11.5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"offset-block-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-block-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"pad\",browsers:[\"FF33\"],syntax:\"<integer> && <symbol>\",description:\"@counter-style descriptor. Specifies a “fixed-width” counter style, where representations shorter than the pad value are padded with a particular <symbol>\",restrictions:[\"integer\",\"image\",\"string\",\"identifier\"]},{name:\"prefix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"range\",browsers:[\"FF33\"],values:[{name:\"auto\",description:\"The range depends on the counter system.\"},{name:\"infinite\",description:\"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity.\"}],syntax:\"[ [ <integer> | infinite ]{2} ]# | auto\",description:\"@counter-style descriptor. Defines the ranges over which the counter style is defined.\",restrictions:[\"integer\",\"enum\"]},{name:\"ruby-align\",browsers:[\"FF38\"],values:[{name:\"auto\",browsers:[\"FF38\"],description:\"The user agent determines how the ruby contents are aligned. This is the initial value.\"},{name:\"center\",description:\"The ruby content is centered within its box.\"},{name:\"distribute-letter\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text.\"},{name:\"distribute-space\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text.\"},{name:\"left\",description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"line-edge\",browsers:[\"FF38\"],description:\"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base.\"},{name:\"right\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the end edge of the base.\"},{name:\"start\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"space-between\",browsers:[\"FF38\"],description:\"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),\"},{name:\"space-around\",browsers:[\"FF38\"],description:\"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content.\"}],status:\"experimental\",syntax:\"start | center | space-between | space-around\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-align\"}],description:\"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.\",restrictions:[\"enum\"]},{name:\"ruby-overhang\",browsers:[\"FF10\",\"IE5\"],values:[{name:\"auto\",description:\"The ruby text can overhang text adjacent to the base on either side. This is the initial value.\"},{name:\"end\",description:\"The ruby text can overhang the text that follows it.\"},{name:\"none\",description:\"The ruby text cannot overhang any text adjacent to its base, only its own base.\"},{name:\"start\",description:\"The ruby text can overhang the text that precedes it.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"ruby-position\",browsers:[\"E12\",\"FF38\"],values:[{name:\"after\",description:\"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text.\"},{name:\"before\",description:\"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems.\"},{name:\"inline\"},{name:\"right\",description:\"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction.\"}],status:\"experimental\",syntax:\"over | under | inter-character\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-position\"}],description:\"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.\",restrictions:[\"enum\"]},{name:\"ruby-span\",browsers:[\"FF10\"],values:[{name:\"attr(x)\",description:\"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element.\"},{name:\"none\",description:\"No spanning. The computed value is '1'.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"scrollbar-3dlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-arrow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color\"}],description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"scrollbar-base-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color\"}],description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"scrollbar-darkshadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color\"}],description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-face-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color\"}],description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-highlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-shadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color\"}],description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-track-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-track-color\"}],description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"suffix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"system\",browsers:[\"FF33\"],values:[{name:\"additive\",description:\"Represents “sign-value” numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together.\"},{name:\"alphabetic\",description:'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\".'},{name:\"cyclic\",description:\"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list.\"},{name:\"extends\",description:\"Use the algorithm of another counter style, but alter other aspects.\"},{name:\"fixed\",description:\"Runs through its list of counter symbols once, then falls back.\"},{name:\"numeric\",description:\"interprets the list of counter symbols as digits to a \\\"place-value\\\" numbering system, similar to the default 'decimal' counter style.\"},{name:\"symbolic\",description:\"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list.\"}],syntax:\"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]\",description:\"@counter-style descriptor. Specifies which algorithm will be used to construct the counter’s representation based on the counter value.\",restrictions:[\"enum\",\"integer\"]},{name:\"symbols\",browsers:[\"FF33\"],syntax:\"<symbol>+\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"-webkit-animation\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-webkit-animation-delay\",browsers:[\"C\",\"S5\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-webkit-animation-direction\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-duration\",browsers:[\"C\",\"S5\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-webkit-animation-fill-mode\",browsers:[\"C\",\"S5\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-iteration-count\",browsers:[\"C\",\"S5\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-webkit-animation-name\",browsers:[\"C\",\"S5\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-webkit-animation-play-state\",browsers:[\"C\",\"S5\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-timing-function\",browsers:[\"C\",\"S5\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-webkit-appearance\",browsers:[\"C\",\"S3\"],values:[{name:\"button\"},{name:\"button-bevel\"},{name:\"caps-lock-indicator\"},{name:\"caret\"},{name:\"checkbox\"},{name:\"default-button\"},{name:\"listbox\"},{name:\"listitem\"},{name:\"media-fullscreen-button\"},{name:\"media-mute-button\"},{name:\"media-play-button\"},{name:\"media-seek-back-button\"},{name:\"media-seek-forward-button\"},{name:\"media-slider\"},{name:\"media-sliderthumb\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"none\"},{name:\"push-button\"},{name:\"radio\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbargripper-horizontal\"},{name:\"scrollbargripper-vertical\"},{name:\"scrollbarthumb-horizontal\"},{name:\"scrollbarthumb-vertical\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"searchfield\"},{name:\"searchfield-cancel-button\"},{name:\"searchfield-decoration\"},{name:\"searchfield-results-button\"},{name:\"searchfield-results-decoration\"},{name:\"slider-horizontal\"},{name:\"sliderthumb-horizontal\"},{name:\"sliderthumb-vertical\"},{name:\"slider-vertical\"},{name:\"square-button\"},{name:\"textarea\"},{name:\"textfield\"}],status:\"nonstandard\",syntax:\"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\",description:\"Changes the appearance of buttons and other controls to resemble native controls.\",restrictions:[\"enum\"]},{name:\"-webkit-backdrop-filter\",browsers:[\"S9\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Applies a filter effect where the first filter in the list takes the element's background image as the input image.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-backface-visibility\",browsers:[\"C\",\"S5\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-webkit-background-clip\",browsers:[\"C\",\"S3\"],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"-webkit-background-composite\",browsers:[\"C\",\"S3\"],values:[{name:\"border\"},{name:\"padding\"}],restrictions:[\"enum\"]},{name:\"-webkit-background-origin\",browsers:[\"C\",\"S3\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-webkit-border-image\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-webkit-box-align\",browsers:[\"C\",\"S3\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies the alignment of nested elements within an outer flexible box element.\",restrictions:[\"enum\"]},{name:\"-webkit-box-direction\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-webkit-box-flex\",browsers:[\"C\",\"S3\"],description:\"Specifies an element's flexibility.\",restrictions:[\"number\"]},{name:\"-webkit-box-flex-group\",browsers:[\"C\",\"S3\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-webkit-box-ordinal-group\",browsers:[\"C\",\"S3\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-webkit-box-orient\",browsers:[\"C\",\"S3\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-webkit-box-pack\",browsers:[\"C\",\"S3\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies alignment of child elements within the current element in the direction of orientation.\",restrictions:[\"enum\"]},{name:\"-webkit-box-reflect\",browsers:[\"S4\",\"C4\",\"O15\"],values:[{name:\"above\",description:\"The reflection appears above the border box.\"},{name:\"below\",description:\"The reflection appears below the border box.\"},{name:\"left\",description:\"The reflection appears to the left of the border box.\"},{name:\"right\",description:\"The reflection appears to the right of the border box.\"}],status:\"nonstandard\",syntax:\"[ above | below | right | left ]? <length>? <image>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect\"}],description:\"Defines a reflection of a border box.\"},{name:\"-webkit-box-sizing\",browsers:[\"C\",\"S3\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-webkit-break-after\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-before\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-inside\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-after\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-before\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-inside\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-count\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-webkit-column-gap\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-webkit-column-rule\",browsers:[\"C\",\"S3\"],description:\"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-webkit-column-rule-color\",browsers:[\"C\",\"S3\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-webkit-column-rule-style\",browsers:[\"C\",\"S3\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-webkit-column-rule-width\",browsers:[\"C\",\"S3\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-webkit-columns\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-webkit-column-span\",browsers:[\"C\",\"S3\"],values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-width\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-webkit-filter\",browsers:[\"C18\",\"O15\",\"S6\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-flow-from\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-flow-into\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-font-feature-settings\",browsers:[\"C16\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\"},{name:\"on\"}],description:\"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-webkit-hyphens\",browsers:[\"S5.1\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-webkit-line-break\",browsers:[\"C\",\"S3\"],values:[{name:\"after-white-space\"},{name:\"normal\"}],description:\"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.\"},{name:\"-webkit-margin-bottom-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-start\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"}],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-margin-top-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-mask-clip\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content | text ]#\",description:\"Determines the mask painting area, which determines the area that is affected by the mask.\",restrictions:[\"box\"]},{name:\"-webkit-mask-image\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],status:\"nonstandard\",syntax:\"<mask-reference>#\",description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"-webkit-mask-origin\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content ]#\",description:\"Specifies the mask positioning area.\",restrictions:[\"box\"]},{name:\"-webkit-mask-repeat\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"<repeat-style>#\",description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"-webkit-mask-size\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],status:\"nonstandard\",syntax:\"<bg-size>#\",description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-webkit-nbsp-mode\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\"},{name:\"space\"}],description:\"Defines the behavior of nonbreaking spaces within text.\"},{name:\"-webkit-overflow-scrolling\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\"},{name:\"touch\"}],status:\"nonstandard\",syntax:\"auto | touch\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling\"}],description:\"Specifies whether to use native-style scrolling in an overflow:scroll element.\"},{name:\"-webkit-padding-start\",browsers:[\"C\",\"S3\"],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-perspective\",browsers:[\"C\",\"S4\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-webkit-perspective-origin\",browsers:[\"C\",\"S4\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-webkit-region-fragment\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Content flows as it would in a regular content box.\"},{name:\"break\",description:\"If the content fits within the CSS Region, then this property has no effect.\"}],description:\"The 'region-fragment' property controls the behavior of the last region associated with a named flow.\",restrictions:[\"enum\"]},{name:\"-webkit-tap-highlight-color\",browsers:[\"E\",\"C\",\"S3.1\"],status:\"nonstandard\",syntax:\"<color>\",restrictions:[\"color\"]},{name:\"-webkit-text-fill-color\",browsers:[\"E12\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-size-adjust\",browsers:[\"E\",\"C\",\"S3\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"percentage\"]},{name:\"-webkit-text-stroke\",browsers:[\"E15\",\"FF49\",\"S3\",\"C4\",\"O15\"],status:\"nonstandard\",syntax:\"<length> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke\"}],restrictions:[\"length\",\"line-width\",\"color\",\"percentage\"]},{name:\"-webkit-text-stroke-color\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-stroke-width\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width\"}],restrictions:[\"length\",\"line-width\",\"percentage\"]},{name:\"-webkit-touch-callout\",browsers:[\"S3\"],values:[{name:\"none\"}],status:\"nonstandard\",syntax:\"default | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout\"}],restrictions:[\"enum\"]},{name:\"-webkit-transform\",browsers:[\"C\",\"O12\",\"S3.1\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-webkit-transform-origin\",browsers:[\"C\",\"O15\",\"S3.1\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-x\",browsers:[\"C\",\"S3.1\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-y\",browsers:[\"C\",\"S3.1\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-z\",browsers:[\"C\",\"S4\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-style\",browsers:[\"C\",\"S4\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"-webkit-transition\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-webkit-transition-delay\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-webkit-transition-duration\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-webkit-transition-property\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-webkit-transition-timing-function\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-webkit-user-drag\",browsers:[\"S3\"],values:[{name:\"auto\"},{name:\"element\"},{name:\"none\"}],restrictions:[\"enum\"]},{name:\"-webkit-user-modify\",browsers:[\"C\",\"S3\"],values:[{name:\"read-only\"},{name:\"read-write\"},{name:\"read-write-plaintext-only\"}],status:\"nonstandard\",syntax:\"read-only | read-write | read-write-plaintext-only\",description:\"Determines whether a user can edit the content of an element.\",restrictions:[\"enum\"]},{name:\"-webkit-user-select\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"},{name:\"none\"},{name:\"text\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-ime-align\",status:\"nonstandard\",syntax:\"auto | after\",description:\"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active.\"},{name:\"-moz-binding\",status:\"nonstandard\",syntax:\"<url> | none\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-binding\"}],description:\"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element.\"},{name:\"-moz-context-properties\",status:\"nonstandard\",syntax:\"none | [ fill | fill-opacity | stroke | stroke-opacity ]#\",browsers:[\"FF55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties\"}],description:\"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\\n\\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.\"},{name:\"-moz-float-edge\",status:\"nonstandard\",syntax:\"border-box | content-box | margin-box | padding-box\",description:\"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.\"},{name:\"-moz-force-broken-image-icon\",status:\"nonstandard\",syntax:\"<integer>\",description:\"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.\"},{name:\"-moz-image-region\",status:\"nonstandard\",syntax:\"<shape> | auto\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region\"}],description:\"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\"},{name:\"-moz-orient\",status:\"nonstandard\",syntax:\"inline | block | horizontal | vertical\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-orient\"}],description:\"The -moz-orient CSS property specifies the orientation of the element to which it's applied.\"},{name:\"-moz-outline-radius\",status:\"nonstandard\",syntax:\"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?\",browsers:[\"FF1.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius\"}],description:\"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners.\"},{name:\"-moz-outline-radius-bottomleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline.\"},{name:\"-moz-outline-radius-bottomright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline.\"},{name:\"-moz-outline-radius-topleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline.\"},{name:\"-moz-outline-radius-topright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline.\"},{name:\"-moz-stack-sizing\",status:\"nonstandard\",syntax:\"ignore | stretch-to-fit\",description:\"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible.\"},{name:\"-moz-text-blink\",status:\"nonstandard\",syntax:\"none | blink\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink\"}],description:\"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode.\"},{name:\"-moz-user-input\",status:\"nonstandard\",syntax:\"auto | none | enabled | disabled\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input\"}],description:\"In Mozilla applications, -moz-user-input determines if an element will accept user input.\"},{name:\"-moz-user-modify\",status:\"nonstandard\",syntax:\"read-only | read-write | write-only\",description:\"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user.\"},{name:\"-moz-window-dragging\",status:\"nonstandard\",syntax:\"drag | no-drag\",description:\"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X.\"},{name:\"-moz-window-shadow\",status:\"nonstandard\",syntax:\"default | menu | tooltip | sheet | none\",browsers:[\"FF3.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow\"}],description:\"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X.\"},{name:\"-webkit-border-before\",status:\"nonstandard\",syntax:\"<'border-width'> || <'border-style'> || <'color'>\",browsers:[\"S5.1\",\"C8\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before\"}],description:\"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.\"},{name:\"-webkit-border-before-color\",status:\"nonstandard\",syntax:\"<'color'>\",description:\"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-style\",status:\"nonstandard\",syntax:\"<'border-style'>\",description:\"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-width\",status:\"nonstandard\",syntax:\"<'border-width'>\",description:\"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-line-clamp\",syntax:\"none | <integer>\",browsers:[\"E17\",\"FF68\",\"S5\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp\"}],description:\"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines.\"},{name:\"-webkit-mask\",status:\"nonstandard\",syntax:\"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#\",description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"-webkit-mask-attachment\",status:\"nonstandard\",syntax:\"<attachment>#\",browsers:[\"S4\",\"C1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment\"}],description:\"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block.\"},{name:\"-webkit-mask-composite\",status:\"nonstandard\",syntax:\"<composite-style>#\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite\"}],description:\"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\"},{name:\"-webkit-mask-position\",status:\"nonstandard\",syntax:\"<position>#\",description:\"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image.\"},{name:\"-webkit-mask-position-x\",status:\"nonstandard\",syntax:\"[ <length-percentage> | left | center | right ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x\"}],description:\"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.\"},{name:\"-webkit-mask-position-y\",status:\"nonstandard\",syntax:\"[ <length-percentage> | top | center | bottom ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y\"}],description:\"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.\"},{name:\"-webkit-mask-repeat-x\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x\"}],description:\"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.\"},{name:\"-webkit-mask-repeat-y\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y\"}],description:\"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically.\"},{name:\"appearance\",status:\"experimental\",syntax:\"none | auto | button | textfield | <compat>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/appearance\"}],description:\"Changes the appearance of buttons and other controls to resemble native controls.\"},{name:\"aspect-ratio\",status:\"experimental\",syntax:\"auto | <ratio>\",description:\"\"},{name:\"azimuth\",status:\"obsolete\",syntax:\"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/azimuth\"}],description:\"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage.\"},{name:\"border-end-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius\"}],description:\"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-end-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius\"}],description:\"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius\"}],description:\"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius\"}],description:\"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation.\"},{name:\"box-align\",status:\"nonstandard\",syntax:\"start | center | end | baseline | stretch\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-align\"}],description:\"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\"},{name:\"box-direction\",status:\"nonstandard\",syntax:\"normal | reverse | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-direction\"}],description:\"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\"},{name:\"box-flex\",status:\"nonstandard\",syntax:\"<number>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex\"}],description:\"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.\"},{name:\"box-flex-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex-group\"}],description:\"The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\"},{name:\"box-lines\",status:\"nonstandard\",syntax:\"single | multiple\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-lines\"}],description:\"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\"},{name:\"box-ordinal-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group\"}],description:\"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\"},{name:\"box-orient\",status:\"nonstandard\",syntax:\"horizontal | vertical | inline-axis | block-axis | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-orient\"}],description:\"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.\"},{name:\"box-pack\",status:\"nonstandard\",syntax:\"start | center | end | justify\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-pack\"}],description:\"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\"},{name:\"color-adjust\",syntax:\"economy | exact\",browsers:[\"FF48\",\"S6\",\"C49\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color-adjust\"}],description:\"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images in browsers based on the WebKit engine.\"},{name:\"counter-set\",syntax:\"[ <custom-ident> <integer>? ]+ | none\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-set\"}],description:\"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element.\"},{name:\"hanging-punctuation\",syntax:\"none | [ first || [ force-end | allow-end ] || last ]\",browsers:[\"S10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation\"}],description:\"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.\"},{name:\"initial-letter\",status:\"experimental\",syntax:\"normal | [ <number> <integer>? ]\",browsers:[\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter\"}],description:\"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters.\"},{name:\"initial-letter-align\",status:\"experimental\",syntax:\"[ auto | alphabetic | hanging | ideographic ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align\"}],description:\"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph.\"},{name:\"line-clamp\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content.\"},{name:\"line-height-step\",status:\"experimental\",syntax:\"<length>\",browsers:[\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height-step\"}],description:\"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid.\"},{name:\"mask-border\",status:\"experimental\",syntax:\"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>\",description:\"The mask-border CSS property lets you create a mask along the edge of an element's border.\\n\\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.\"},{name:\"mask-border-mode\",status:\"experimental\",syntax:\"luminance | alpha\",description:\"The mask-border-mode CSS property specifies the blending mode used in a mask border.\"},{name:\"mask-border-outset\",status:\"experimental\",syntax:\"[ <length> | <number> ]{1,4}\",description:\"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box.\"},{name:\"mask-border-repeat\",status:\"experimental\",syntax:\"[ stretch | repeat | round | space ]{1,2}\",description:\"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border.\"},{name:\"mask-border-slice\",status:\"experimental\",syntax:\"<number-percentage>{1,4} fill?\",description:\"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.\"},{name:\"mask-border-source\",status:\"experimental\",syntax:\"none | <image>\",description:\"The mask-border-source CSS property specifies the source image used to create an element's mask border.\\n\\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.\"},{name:\"mask-border-width\",status:\"experimental\",syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",description:\"The mask-border-width CSS property specifies the width of an element's mask border.\"},{name:\"mask-clip\",syntax:\"[ <geometry-box> | no-clip ]#\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-clip\"}],description:\"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area.\"},{name:\"mask-composite\",syntax:\"<compositing-operator>#\",browsers:[\"E18\",\"FF53\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-composite\"}],description:\"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.\"},{name:\"max-lines\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The max-liens property forces a break after a set number of lines\"},{name:\"overflow-block\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-block\"}],description:\"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis.\"},{name:\"overflow-clip-box\",status:\"nonstandard\",syntax:\"padding-box | content-box\",browsers:[\"FF29\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Mozilla/CSS/overflow-clip-box\"}],description:\"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties.\"},{name:\"overflow-inline\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-inline\"}],description:\"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis.\"},{name:\"overscroll-behavior\",status:\"nonstandard\",syntax:\"[ contain | none | auto ]{1,2}\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior\"}],description:\"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached.\"},{name:\"overscroll-behavior-x\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x\"}],description:\"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction.\"},{name:\"overscroll-behavior-y\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y\"}],description:\"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction.\"},{name:\"ruby-merge\",status:\"experimental\",syntax:\"separate | collapse | auto\",description:\"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available.\"},{name:\"scrollbar-color\",syntax:\"auto | dark | light | <color>{2}\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color\"}],description:\"The scrollbar-color CSS property sets the color of the scrollbar track and thumb.\"},{name:\"scrollbar-width\",syntax:\"auto | thin | none\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width\"}],description:\"The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. \"},{name:\"scroll-margin\",syntax:\"<length>{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin\"}],description:\"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands.\"},{name:\"scroll-margin-block\",syntax:\"<length>{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block\"}],description:\"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension.\"},{name:\"scroll-margin-block-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start\"}],description:\"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-block-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end\"}],description:\"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-bottom\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom\"}],description:\"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline\",syntax:\"<length>{1,2}\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline\"}],description:\"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension.\"},{name:\"scroll-margin-inline-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start\"}],description:\"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end\"}],description:\"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-left\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left\"}],description:\"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-right\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right\"}],description:\"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-top\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top\"}],description:\"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-snap-type-x\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\",\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x\"}],description:\"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"scroll-snap-type-y\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y\"}],description:\"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"text-decoration-thickness\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness\"}],description:\"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline.\"},{name:\"text-emphasis\",syntax:\"<'text-emphasis-style'> || <'text-emphasis-color'>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis\"}],description:\"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces,  and control characters.\"},{name:\"text-emphasis-color\",syntax:\"<color>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color\"}],description:\"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand.\"},{name:\"text-emphasis-position\",syntax:\"[ over | under ] && [ right | left ]\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position\"}],description:\"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased.\"},{name:\"text-emphasis-style\",syntax:\"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style\"}],description:\"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand.\"},{name:\"text-underline-offset\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset\"}],description:\"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.\"},{name:\"speak-as\",syntax:\"auto | bullets | numbers | words | spell-out | <counter-style-name>\",description:\"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue.\"},{name:\"bleed\",status:\"experimental\",syntax:\"auto | <length>\",description:\"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property.\"},{name:\"marks\",status:\"experimental\",syntax:\"none | [ crop || cross ]\",description:\"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets.\"}],atDirectives:[{name:\"@charset\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@charset\"}],description:\"Defines character set of the document.\"},{name:\"@counter-style\",browsers:[\"FF33\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@counter-style\"}],description:\"Defines a custom counter style.\"},{name:\"@font-face\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-face\"}],description:\"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment.\"},{name:\"@font-feature-values\",browsers:[\"FF34\",\"S9.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values\"}],description:\"Defines named values for the indices used to select alternate glyphs for a given font family.\"},{name:\"@import\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@import\"}],description:\"Includes content of another file.\"},{name:\"@keyframes\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@keyframes\"}],description:\"Defines set of animation key frames.\"},{name:\"@media\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@media\"}],description:\"Defines a stylesheet for a particular media type.\"},{name:\"@-moz-document\",browsers:[\"FF1.8\"],description:\"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document.\"},{name:\"@-moz-keyframes\",browsers:[\"FF5\"],description:\"Defines set of animation key frames.\"},{name:\"@-ms-viewport\",browsers:[\"E\",\"IE10\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@namespace\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@namespace\"}],description:\"Declares a prefix and associates it with a namespace name.\"},{name:\"@-o-keyframes\",browsers:[\"O12\"],description:\"Defines set of animation key frames.\"},{name:\"@-o-viewport\",browsers:[\"O11\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@page\",browsers:[\"E12\",\"FF19\",\"C2\",\"IE8\",\"O6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@page\"}],description:\"Directive defines various page parameters.\"},{name:\"@supports\",browsers:[\"E12\",\"FF22\",\"S9\",\"C28\",\"O12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@supports\"}],description:\"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.\"},{name:\"@-webkit-keyframes\",browsers:[\"C\",\"S4\"],description:\"Defines set of animation key frames.\"}],pseudoClasses:[{name:\":active\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:active\"}],description:\"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.\"},{name:\":any-link\",browsers:[\"FF50\",\"S9\",\"C65\",\"O52\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:any-link\"}],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":checked\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:checked\"}],description:\"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies.\"},{name:\":corner-present\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Indicates whether or not a scrollbar corner is present.\"},{name:\":decrement\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view’s position when used.\"},{name:\":default\",browsers:[\"FF4\",\"S5\",\"C10\",\"O10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:default\"}],description:\"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus.\"},{name:\":disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:disabled\"}],description:\"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state.\"},{name:\":double-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar.\"},{name:\":empty\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:empty\"}],description:\"Represents an element that has no children at all.\"},{name:\":enabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:enabled\"}],description:\"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state.\"},{name:\":end\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb.\"},{name:\":first\",browsers:[\"E12\",\"S6\",\"C18\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":first-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-child\"}],description:\"Same as :nth-child(1). Represents an element that is the first child of some other element.\"},{name:\":first-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-of-type\"}],description:\"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element.\"},{name:\":focus\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus\"}],description:\"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input).\"},{name:\":fullscreen\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:fullscreen\"}],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":future\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely after a :current element.\"},{name:\":horizontal\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation.\"},{name:\":host\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:host\"}],description:\"When evaluated in the context of a shadow tree, matches the shadow tree’s host element.\"},{name:\":host()\",browsers:[\"C35\",\"O22\"],description:\"When evaluated in the context of a shadow tree, it matches the shadow tree’s host element if the host element, in its normal context, matches the selector argument.\"},{name:\":host-context()\",browsers:[\"C35\",\"O22\"],description:\"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector.\"},{name:\":hover\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:hover\"}],description:\"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element.\"},{name:\":increment\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view’s position when used.\"},{name:\":indeterminate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:indeterminate\"}],description:\"Applies to UI elements whose value is in an indeterminate state.\"},{name:\":in-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:in-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":invalid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:invalid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":lang()\",browsers:[\"E\",\"C\",\"FF1\",\"IE8\",\"O8\",\"S3\"],description:\"Represents an element that is in language specified.\"},{name:\":last-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-child\"}],description:\"Same as :nth-last-child(1). Represents an element that is the last child of some other element.\"},{name:\":last-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-of-type\"}],description:\"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element.\"},{name:\":left\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:left\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":link\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:link\"}],description:\"Applies to links that have not yet been visited.\"},{name:\":matches()\",browsers:[\"S9\"],description:\"Takes a selector list as its argument. It represents an element that is represented by its argument.\"},{name:\":-moz-any()\",browsers:[\"FF4\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-moz-any-link\",browsers:[\"FF1\"],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":-moz-broken\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing broken images.\"},{name:\":-moz-drag-over\",browsers:[\"FF1\"],description:\"Non-standard. Matches elements when a drag-over event applies to it.\"},{name:\":-moz-first-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the first child node of some other element.\"},{name:\":-moz-focusring\",browsers:[\"FF4\"],description:\"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser.\"},{name:\":-moz-full-screen\",browsers:[\"FF9\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":-moz-last-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the last child node of some other element.\"},{name:\":-moz-loading\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements, such as images, that haven’t started loading yet.\"},{name:\":-moz-only-whitespace\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace\"}],description:\"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank.\"},{name:\":-moz-placeholder\",browsers:[\"FF4\"],description:\"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+.\"},{name:\":-moz-submit-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid\"}],description:\"Non-standard. Represents any submit button when the contents of the associated form are not valid.\"},{name:\":-moz-suppressed\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been blocked from loading.\"},{name:\":-moz-ui-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-invalid\"}],description:\"Non-standard. Represents any validated form element whose value isn't valid \"},{name:\":-moz-ui-valid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-valid\"}],description:\"Non-standard. Represents any validated form element whose value is valid \"},{name:\":-moz-user-disabled\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been disabled due to the user’s preferences.\"},{name:\":-moz-window-inactive\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive\"}],description:\"Non-standard. Matches elements in an inactive window.\"},{name:\":-ms-fullscreen\",browsers:[\"IE11\"],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":-ms-input-placeholder\",browsers:[\"IE10\"],description:\"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder.\"},{name:\":-ms-keyboard-active\",browsers:[\"IE10\"],description:\"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar.\"},{name:\":-ms-lang()\",browsers:[\"E\",\"IE10\"],description:\"Represents an element that is in the language specified. Accepts a comma separated list of language tokens.\"},{name:\":no-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track.\"},{name:\":not()\",browsers:[\"E\",\"C\",\"FF1\",\"IE9\",\"O9.5\",\"S2\"],description:\"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.\"},{name:\":nth-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":nth-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":only-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-child\"}],description:\"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity.\"},{name:\":only-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-of-type\"}],description:\"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity.\"},{name:\":optional\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:optional\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":out-of-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:out-of-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":past\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely prior to a :current element.\"},{name:\":read-only\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-only\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":read-write\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-write\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":required\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:required\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":right\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:right\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":root\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:root\"}],description:\"Represents an element that is the root of the document. In HTML 4, this is always the HTML element.\"},{name:\":scope\",browsers:[\"FF32\",\"S7\",\"C27\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:scope\"}],description:\"Represents any element that is in the contextual reference element set.\"},{name:\":single-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar.\"},{name:\":start\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb.\"},{name:\":target\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:target\"}],description:\"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier).\"},{name:\":valid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:valid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":vertical\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a vertical orientation.\"},{name:\":visited\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:visited\"}],description:\"Applies once the link has been visited by the user.\"},{name:\":-webkit-any()\",browsers:[\"C\",\"S5\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-webkit-full-screen\",browsers:[\"C\",\"S6\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":window-inactive\",browsers:[\"C\",\"S3\"],description:\"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active.\"},{name:\":blank\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:blank\"}],description:\"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).\"},{name:\":defined\",status:\"experimental\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:defined\"}],description:\"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).\"},{name:\":dir\",browsers:[\"FF49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:dir\"}],description:\"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.\"},{name:\":focus-visible\",status:\"experimental\",browsers:[\"FF4\",\"C67\",\"O54\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-visible\"}],description:\"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.\"},{name:\":focus-within\",status:\"experimental\",browsers:[\"FF52\",\"S10.1\",\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-within\"}],description:\"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.\"},{name:\":has\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:has\"}],description:\":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element.\"},{name:\":is\",status:\"experimental\",browsers:[\"FF4\",\"S9\",\"C68\",\"O55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:is\"}],description:\"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.\"},{name:\":placeholder-shown\",status:\"experimental\",browsers:[\"FF51\",\"S9\",\"C47\",\"IE10\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown\"}],description:\"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.\"},{name:\":where\",status:\"experimental\",description:\"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.\"}],pseudoElements:[{name:\"::after\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::after\"}],description:\"Represents a styleable child pseudo-element immediately after the originating element’s actual content.\"},{name:\"::backdrop\",browsers:[\"E12\",\"FF47\",\"C37\",\"IE11\",\"O24\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::backdrop\"}],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::before\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::before\"}],description:\"Represents a styleable child pseudo-element immediately before the originating element’s actual content.\"},{name:\"::content\",browsers:[\"C35\",\"O22\"],description:\"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility.\"},{name:\"::cue\",browsers:[\"FF55\",\"S6.1\",\"C26\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::cue\"}]},{name:\"::cue()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::first-letter\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-letter\"}],description:\"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line.\"},{name:\"::first-line\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-line\"}],description:\"Describes the contents of the first formatted line of its originating element.\"},{name:\"::-moz-focus-inner\",browsers:[\"FF4\"]},{name:\"::-moz-focus-outer\",browsers:[\"FF4\"]},{name:\"::-moz-list-bullet\",browsers:[\"FF1\"],description:\"Used to style the bullet of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-list-number\",browsers:[\"FF1\"],description:\"Used to style the numbers of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-placeholder\",browsers:[\"FF19\"],description:\"Represents placeholder text in an input field\"},{name:\"::-moz-progress-bar\",browsers:[\"FF9\"],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-moz-selection\",browsers:[\"FF1\"],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::-ms-backdrop\",browsers:[\"IE11\"],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::-ms-browse\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-browse\"}],description:\"Represents the browse button of an input type=file control.\"},{name:\"::-ms-check\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-check\"}],description:\"Represents the check of a checkbox or radio button input control.\"},{name:\"::-ms-clear\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-clear\"}],description:\"Represents the clear button of a text input control\"},{name:\"::-ms-expand\",browsers:[\"E\",\"IE10\"],description:\"Represents the drop-down button of a select control.\"},{name:\"::-ms-fill\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill\"}],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-ms-fill-lower\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-lower\"}],description:\"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb.\"},{name:\"::-ms-fill-upper\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-upper\"}],description:\"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb.\"},{name:\"::-ms-reveal\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-reveal\"}],description:\"Represents the password reveal button of an input type=password control.\"},{name:\"::-ms-thumb\",browsers:[\"E\",\"IE10\"],description:\"Represents the portion of range input control (also known as a slider control) that the user drags.\"},{name:\"::-ms-ticks-after\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb.\"},{name:\"::-ms-ticks-before\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb.\"},{name:\"::-ms-tooltip\",browsers:[\"E\",\"IE10\"],description:\"Represents the tooltip of a slider (input type=range).\"},{name:\"::-ms-track\",browsers:[\"E\",\"IE10\"],description:\"Represents the track of a slider.\"},{name:\"::-ms-value\",browsers:[\"E16\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-value\"}],description:\"Represents the content of a text or password input control, or a select control.\"},{name:\"::selection\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::selection\"}],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::shadow\",browsers:[\"C35\",\"O22\"],description:\"Matches the shadow root if an element has a shadow tree.\"},{name:\"::-webkit-file-upload-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-file-upload-button\"}]},{name:\"::-webkit-inner-spin-button\",browsers:[\"S4.1\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button\"}]},{name:\"::-webkit-input-placeholder\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-keygen-select\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-meter-bar\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar\"}]},{name:\"::-webkit-meter-even-less-good-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value\"}]},{name:\"::-webkit-meter-optimum-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value\"}]},{name:\"::-webkit-meter-suboptimal-value\",browsers:[\"E13\",\"C\",\"O15\",\"S6\"]},{name:\"::-webkit-outer-spin-button\",browsers:[\"S4.1\",\"C6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-outer-spin-button\"}]},{name:\"::-webkit-progress-bar\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar\"}]},{name:\"::-webkit-progress-inner-element\",browsers:[\"S6.1\",\"C23\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element\"}]},{name:\"::-webkit-progress-value\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value\"}]},{name:\"::-webkit-resizer\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-resizer\"}]},{name:\"::-webkit-scrollbar\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"}]},{name:\"::-webkit-scrollbar-button\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-button\"}]},{name:\"::-webkit-scrollbar-corner\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-corner\"}]},{name:\"::-webkit-scrollbar-thumb\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-thumb\"}]},{name:\"::-webkit-scrollbar-track\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track\"}]},{name:\"::-webkit-scrollbar-track-piece\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track-piece\"}]},{name:\"::-webkit-search-cancel-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button\"}]},{name:\"::-webkit-search-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-search-results-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button\"}]},{name:\"::-webkit-search-results-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-slider-runnable-track\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-slider-thumb\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-textfield-decoration-container\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow-clipper\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-heading\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-message\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-text-block\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-moz-range-progress\",status:\"nonstandard\",browsers:[\"FF22\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress\"}],description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'},{name:\"::-moz-range-thumb\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb\"}],description:'The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input\\'s track to alter its numerical value.'},{name:\"::-moz-range-track\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track\"}],description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".'},{name:\"::-webkit-progress-inner-value\",status:\"nonstandard\",description:\"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\\n\\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.\"},{name:\"::grammar-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::grammar-error\"}],description:\"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\"},{name:\"::marker\",browsers:[\"FF68\",\"C80\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::marker\"}],description:\"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements.\"},{name:\"::part\",status:\"experimental\",browsers:[\"FF69\",\"C73\",\"O60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::part\"}],description:\"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\"},{name:\"::placeholder\",browsers:[\"E12\",\"FF51\",\"S10.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::placeholder\"}],description:\"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.\"},{name:\"::slotted\",browsers:[\"FF63\",\"S10\",\"C50\",\"O37\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::slotted\"}],description:\"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template.\"},{name:\"::spelling-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::spelling-error\"}],description:\"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\"}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){return Object.keys(e).map((function(t){return e[t]}))},t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataManager\",[\"require\",\"exports\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/objects\"),r=function(){function e(e){this.dataProviders=e,this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.collectData()}return e.prototype.addDataProviders=function(e){this.dataProviders=this.dataProviders.concat(e),this.collectData()},e.prototype.collectData=function(){var e=this;this.dataProviders.forEach((function(t){t.provideProperties().forEach((function(t){e._propertySet[t.name]||(e._propertySet[t.name]=t)})),t.provideAtDirectives().forEach((function(t){e._atDirectiveSet[t.name]||(e._atDirectiveSet[t.name]=t)})),t.providePseudoClasses().forEach((function(t){e._pseudoClassSet[t.name]||(e._pseudoClassSet[t.name]=t)})),t.providePseudoElements().forEach((function(t){e._pseudoElementSet[t.name]||(e._pseudoElementSet[t.name]=t)}))})),this._properties=n.values(this._propertySet),this._atDirectives=n.values(this._atDirectiveSet),this._pseudoClasses=n.values(this._pseudoClassSet),this._pseudoElements=n.values(this._pseudoElementSet)},e.prototype.getProperty=function(e){return this._propertySet[e]},e.prototype.getAtDirective=function(e){return this._atDirectiveSet[e]},e.prototype.getPseudoClass=function(e){return this._pseudoClassSet[e]},e.prototype.getPseudoElement=function(e){return this._pseudoElementSet[e]},e.prototype.getProperties=function(){return this._properties},e.prototype.getAtDirectives=function(){return this._atDirectives},e.prototype.getPseudoClasses=function(){return this._pseudoClasses},e.prototype.getPseudoElements=function(){return this._pseudoElements},e.prototype.isKnownProperty=function(e){return e.toLowerCase()in this._propertySet},e.prototype.isStandardProperty=function(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||\"standard\"===this._propertySet[e.toLowerCase()].status)},e}();t.CSSDataManager=r})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return e.prototype.provideProperties=function(){return this._properties},e.prototype.provideAtDirectives=function(){return this._atDirectives},e.prototype.providePseudoClasses=function(){return this._pseudoClasses},e.prototype.providePseudoElements=function(){return this._pseudoElements},e.prototype.addData=function(e){e.properties&&(this._properties=this._properties.concat(e.properties)),e.atDirectives&&(this._atDirectives=this._atDirectives.concat(e.atDirectives)),e.pseudoClasses&&(this._pseudoClasses=this._pseudoClasses.concat(e.pseudoClasses)),e.pseudoElements&&(this._pseudoElements=this._pseudoElements.concat(e.pseudoElements))},e}();t.CSSDataProvider=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/entry\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){switch(e){case\"experimental\":return\"⚠️ Property is experimental. Be cautious when using it.️\\n\\n\";case\"nonstandard\":return\"🚨️ Property is nonstandard. Avoid using it.\\n\\n\";case\"obsolete\":return\"🚨️️️ Property is obsolete. Avoid using it.\\n\\n\";default:return\"\"}}function r(e){if(!e.description||\"\"===e.description)return\"\";if(\"string\"!=typeof e.description)return e.description.value;var t=\"\";e.status&&(t+=n(e.status)),t+=e.description;var r=o(e.browsers);return r&&(t+=\"\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return e.name+\": \"+e.url})).join(\" | \")),t}function i(e){if(!e.description||\"\"===e.description)return\"\";var t=\"\";e.status&&(t+=n(e.status)),\"string\"==typeof e.description?t+=e.description:t=e.description.value;var r=o(e.browsers);return r&&(t+=\"\\n\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \")),t}function o(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var n=\"\",r=e.match(/([A-Z]+)(\\d+)?/),i=r[1],o=r[2];return i in t.browserNames&&(n+=t.browserNames[i]),o&&(n+=\" \"+o),n})).join(\", \")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.browserNames={E:\"Edge\",FF:\"Firefox\",S:\"Safari\",C:\"Chrome\",IE:\"IE\",O:\"Opera\"},t.getEntryDescription=function(e,t){return t?{kind:\"markdown\",value:i(e)}:{kind:\"plaintext\",value:r(e)}},t.getBrowserLabel=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/colors\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle();function i(e,t){var n=e.getText().match(/^([-+]?[0-9]*\\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function o(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}t.colorFunctions=[{func:\"rgb($red, $green, $blue)\",desc:r(\"css.builtin.rgb\",\"Creates a Color from red, green, and blue values.\")},{func:\"rgba($red, $green, $blue, $alpha)\",desc:r(\"css.builtin.rgba\",\"Creates a Color from red, green, blue, and alpha values.\")},{func:\"hsl($hue, $saturation, $lightness)\",desc:r(\"css.builtin.hsl\",\"Creates a Color from hue, saturation, and lightness values.\")},{func:\"hsla($hue, $saturation, $lightness, $alpha)\",desc:r(\"css.builtin.hsla\",\"Creates a Color from hue, saturation, lightness, and alpha values.\")}],t.colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rebeccapurple:\"#663399\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"},t.colorKeywords={currentColor:\"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.\",transparent:\"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.\"},t.isColorConstructor=o,t.isColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return!0;if(e.type===n.NodeType.Function)return o(e);if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return!1;var r=e.getText().toLowerCase();if(\"none\"===r)return!1;if(t.colors[r])return!0}return!1};function s(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}function a(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:17*s(e.charCodeAt(4))/255};case 7:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:(16*s(e.charCodeAt(7))+s(e.charCodeAt(8)))/255}}return null}function l(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,(e/=60)+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}t.hexDigit=s,t.colorFromHex=a,t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}},t.colorFromHSL=l,t.hslFromColor=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-t)/d+2;break;case r:a=(t-n)/d+4}a*=60,a=Math.round(a)}return{h:a,s:l,l:c,a:i}},t.getColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return a(e.getText());if(e.type===n.NodeType.Function){var r=e,o=r.getName(),s=r.getArguments().getChildren();if(!o||s.length<3||s.length>4)return null;try{var c=4===s.length?i(s[3],1):1;if(\"rgb\"===o||\"rgba\"===o)return{red:i(s[0],255),green:i(s[1],255),blue:i(s[2],255),alpha:c};if(\"hsl\"===o||\"hsla\"===o)return l(function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(s[0]),i(s[1],100),i(s[2],100),c)}catch(e){return null}}else if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return null;var d=e.parent;if(d&&d.parent&&d.parent.type===n.NodeType.BinaryExpression){var p=d.parent;if(p.parent&&p.parent.type===n.NodeType.ListEntry&&p.parent.key===p)return null}var h=e.getText().toLowerCase();if(\"none\"===h)return null;var m=t.colors[h];if(m)return a(m)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/builtinData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.positionKeywords={bottom:\"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\",center:\"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.\",left:\"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\",right:\"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\",top:\"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"},t.repeatStyleKeywords={\"no-repeat\":\"Placed once and not repeated in this direction.\",repeat:\"Repeated in this direction as often as needed to cover the background painting area.\",\"repeat-x\":\"Computes to ‘repeat no-repeat’.\",\"repeat-y\":\"Computes to ‘no-repeat repeat’.\",round:\"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.\",space:\"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.\"},t.lineStyleKeywords={dashed:\"A series of square-ended dashes.\",dotted:\"A series of round dots.\",double:\"Two parallel solid lines with some space between them.\",groove:\"Looks as if it were carved in the canvas.\",hidden:\"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.\",inset:\"Looks as if the content on the inside of the border is sunken into the canvas.\",none:\"No border. Color and width are ignored.\",outset:\"Looks as if the content on the inside of the border is coming out of the canvas.\",ridge:\"Looks as if it were coming out of the canvas.\",solid:\"A single line segment.\"},t.lineWidthKeywords=[\"medium\",\"thick\",\"thin\"],t.boxKeywords={\"border-box\":\"The background is painted within (clipped to) the border box.\",\"content-box\":\"The background is painted within (clipped to) the content box.\",\"padding-box\":\"The background is painted within (clipped to) the padding box.\"},t.geometryBoxKeywords={\"margin-box\":\"Uses the margin box as reference box.\",\"fill-box\":\"Uses the object bounding box as reference box.\",\"stroke-box\":\"Uses the stroke bounding box as reference box.\",\"view-box\":\"Uses the nearest SVG viewport as reference box.\"},t.cssWideKeywords={initial:\"Represents the value specified as the property’s initial value.\",inherit:\"Represents the computed value of the property on the element’s parent.\",unset:\"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.\"},t.imageFunctions={\"url()\":\"Reference an image file by URL\",\"image()\":\"Provide image fallbacks and annotations.\",\"-webkit-image-set()\":\"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.\",\"image-set()\":\"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.\",\"-moz-element()\":\"Use an element in the document as an image. Remember to use unprefixed element() in addition.\",\"element()\":\"Use an element in the document as an image.\",\"cross-fade()\":\"Indicates the two images to be combined and how far along in the transition the combination is.\",\"-webkit-gradient()\":\"Deprecated. Use modern linear-gradient() or radial-gradient() instead.\",\"-webkit-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-o-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"linear-gradient()\":\"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.\",\"-webkit-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-o-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"repeating-linear-gradient()\":\"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\",\"-webkit-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"-moz-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"radial-gradient()\":\"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.\",\"-webkit-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"repeating-radial-gradient()\":\"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\"},t.transitionTimingFunctions={ease:\"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).\",\"ease-in\":\"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).\",\"ease-in-out\":\"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).\",\"ease-out\":\"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).\",linear:\"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).\",\"step-end\":\"Equivalent to steps(1, end).\",\"step-start\":\"Equivalent to steps(1, start).\",\"steps()\":\"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.\",\"cubic-bezier()\":\"Specifies a cubic-bezier curve. The four values specify points P1 and P2  of the curve as (x1, y1, x2, y2).\",\"cubic-bezier(0.6, -0.28, 0.735, 0.045)\":\"Ease-in Back. Overshoots.\",\"cubic-bezier(0.68, -0.55, 0.265, 1.55)\":\"Ease-in-out Back. Overshoots.\",\"cubic-bezier(0.175, 0.885, 0.32, 1.275)\":\"Ease-out Back. Overshoots.\",\"cubic-bezier(0.6, 0.04, 0.98, 0.335)\":\"Ease-in Circular. Based on half circle.\",\"cubic-bezier(0.785, 0.135, 0.15, 0.86)\":\"Ease-in-out Circular. Based on half circle.\",\"cubic-bezier(0.075, 0.82, 0.165, 1)\":\"Ease-out Circular. Based on half circle.\",\"cubic-bezier(0.55, 0.055, 0.675, 0.19)\":\"Ease-in Cubic. Based on power of three.\",\"cubic-bezier(0.645, 0.045, 0.355, 1)\":\"Ease-in-out Cubic. Based on power of three.\",\"cubic-bezier(0.215, 0.610, 0.355, 1)\":\"Ease-out Cubic. Based on power of three.\",\"cubic-bezier(0.95, 0.05, 0.795, 0.035)\":\"Ease-in Exponential. Based on two to the power ten.\",\"cubic-bezier(1, 0, 0, 1)\":\"Ease-in-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.19, 1, 0.22, 1)\":\"Ease-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.47, 0, 0.745, 0.715)\":\"Ease-in Sine.\",\"cubic-bezier(0.445, 0.05, 0.55, 0.95)\":\"Ease-in-out Sine.\",\"cubic-bezier(0.39, 0.575, 0.565, 1)\":\"Ease-out Sine.\",\"cubic-bezier(0.55, 0.085, 0.68, 0.53)\":\"Ease-in Quadratic. Based on power of two.\",\"cubic-bezier(0.455, 0.03, 0.515, 0.955)\":\"Ease-in-out Quadratic. Based on power of two.\",\"cubic-bezier(0.25, 0.46, 0.45, 0.94)\":\"Ease-out Quadratic. Based on power of two.\",\"cubic-bezier(0.895, 0.03, 0.685, 0.22)\":\"Ease-in Quartic. Based on power of four.\",\"cubic-bezier(0.77, 0, 0.175, 1)\":\"Ease-in-out Quartic. Based on power of four.\",\"cubic-bezier(0.165, 0.84, 0.44, 1)\":\"Ease-out Quartic. Based on power of four.\",\"cubic-bezier(0.755, 0.05, 0.855, 0.06)\":\"Ease-in Quintic. Based on power of five.\",\"cubic-bezier(0.86, 0, 0.07, 1)\":\"Ease-in-out Quintic. Based on power of five.\",\"cubic-bezier(0.23, 1, 0.320, 1)\":\"Ease-out Quintic. Based on power of five.\"},t.basicShapeFunctions={\"circle()\":\"Defines a circle.\",\"ellipse()\":\"Defines an ellipse.\",\"inset()\":\"Defines an inset rectangle.\",\"polygon()\":\"Defines a polygon.\"},t.units={length:[\"em\",\"rem\",\"ex\",\"px\",\"cm\",\"mm\",\"in\",\"pt\",\"pc\",\"ch\",\"vw\",\"vh\",\"vmin\",\"vmax\"],angle:[\"deg\",\"rad\",\"grad\",\"turn\"],time:[\"ms\",\"s\"],frequency:[\"Hz\",\"kHz\"],resolution:[\"dpi\",\"dpcm\",\"dppx\"],percentage:[\"%\",\"fr\"]},t.html5Tags=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"const\",\"video\",\"wbr\"],t.svgElements=[\"circle\",\"clipPath\",\"cursor\",\"defs\",\"desc\",\"ellipse\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\",\"filter\",\"foreignObject\",\"g\",\"hatch\",\"hatchpath\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"mesh\",\"meshpatch\",\"meshrow\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"set\",\"solidcolor\",\"stop\",\"svg\",\"switch\",\"symbol\",\"text\",\"textPath\",\"tspan\",\"use\",\"view\"],t.pageBoxDirectives=[\"@bottom-center\",\"@bottom-left\",\"@bottom-left-corner\",\"@bottom-right\",\"@bottom-right-corner\",\"@left-bottom\",\"@left-middle\",\"@left-top\",\"@right-bottom\",\"@right-middle\",\"@right-top\",\"@top-center\",\"@top-left\",\"@top-left-corner\",\"@top-right\",\"@top-right-corner\"]})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/facts\",[\"require\",\"exports\",\"../data/webCustomData\",\"./dataManager\",\"./dataProvider\",\"./entry\",\"./colors\",\"./builtinData\",\"./dataProvider\",\"./dataManager\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var r=e(\"../data/webCustomData\"),i=e(\"./dataManager\"),o=e(\"./dataProvider\");n(e(\"./entry\")),n(e(\"./colors\")),n(e(\"./builtinData\")),n(e(\"./dataProvider\")),n(e(\"./dataManager\")),t.cssDataManager=new i.CSSDataManager([new o.CSSDataProvider(r.cssData)])}));var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssParser\",[\"require\",\"exports\",\"./cssScanner\",\"./cssNodes\",\"./cssErrors\",\"../languageFacts/facts\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=e(\"./cssNodes\"),i=e(\"./cssErrors\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/objects\"),a=function(){function e(e){void 0===e&&(e=new n.Scanner),this.keyframeRegex=/^@(\\-(webkit|ms|moz|o)\\-)?keyframes$/i,this.scanner=e,this.token={type:n.TokenType.EOF,offset:-1,len:0,text:\"\"},this.prevToken=void 0}return e.prototype.peekIdent=function(e){return n.TokenType.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekKeyword=function(e){return n.TokenType.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekDelim=function(e){return n.TokenType.Delim===this.token.type&&e===this.token.text},e.prototype.peek=function(e){return e===this.token.type},e.prototype.peekRegExp=function(e,t){return e===this.token.type&&t.test(this.token.text)},e.prototype.hasWhitespace=function(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset},e.prototype.consumeToken=function(){this.prevToken=this.token,this.token=this.scanner.scan()},e.prototype.mark=function(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}},e.prototype.restoreAtMark=function(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)},e.prototype.try=function(e){var t=this.mark(),n=e();return n||(this.restoreAtMark(t),null)},e.prototype.acceptOneKeyword=function(e){if(n.TokenType.AtKeyword===this.token.type)for(var t=0,r=e;t<r.length;t++){var i=r[t];if(i.length===this.token.text.length&&i===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1},e.prototype.accept=function(e){return e===this.token.type&&(this.consumeToken(),!0)},e.prototype.acceptIdent=function(e){return!!this.peekIdent(e)&&(this.consumeToken(),!0)},e.prototype.acceptKeyword=function(e){return!!this.peekKeyword(e)&&(this.consumeToken(),!0)},e.prototype.acceptDelim=function(e){return!!this.peekDelim(e)&&(this.consumeToken(),!0)},e.prototype.acceptRegexp=function(e){return!!e.test(this.token.text)&&(this.consumeToken(),!0)},e.prototype._parseRegexp=function(e){var t=this.createNode(r.NodeType.Identifier);do{}while(this.acceptRegexp(e));return this.finish(t)},e.prototype.acceptUnquotedString=function(){var e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);var t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)},e.prototype.resync=function(e,t){for(;;){if(e&&-1!==e.indexOf(this.token.type))return this.consumeToken(),!0;if(t&&-1!==t.indexOf(this.token.type))return!0;if(this.token.type===n.TokenType.EOF)return!1;this.token=this.scanner.scan()}},e.prototype.createNode=function(e){return new r.Node(this.token.offset,this.token.len,e)},e.prototype.create=function(e){return new e(this.token.offset,this.token.len)},e.prototype.finish=function(e,t,n,i){if(!(e instanceof r.Nodelist)&&(t&&this.markError(e,t,n,i),this.prevToken)){var o=this.prevToken.offset+this.prevToken.len;e.length=o>e.offset?o-e.offset:0}return e},e.prototype.markError=function(e,t,n,i){this.token!==this.lastErrorToken&&(e.addIssue(new r.Marker(e,t,r.Level.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||i)&&this.resync(n,i)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error(\"Underlying model has changed, AST is no longer valid\");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(r.Stylesheet);e.addChild(this._parseStylesheetStart()););var t=!1;do{var o=!1;do{o=!1;var s=this._parseStylesheetStatement();for(s&&(e.addChild(s),o=!0,t=!1,this.peek(n.TokenType.EOF)||!this._needsSemicolonAfter(s)||this.accept(n.TokenType.SemiColon)||this.markError(e,i.ParseError.SemiColonExpected));this.accept(n.TokenType.SemiColon)||this.accept(n.TokenType.CDO)||this.accept(n.TokenType.CDC);)o=!0,t=!1}while(o);if(this.peek(n.TokenType.EOF))break;t||(this.peek(n.TokenType.AtKeyword)?this.markError(e,i.ParseError.UnknownAtRule):this.markError(e,i.ParseError.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(n.TokenType.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(n.TokenType.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(n.TokenType.Comma)&&this._parseSelector(e););if(this.accept(n.TokenType.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(r.RuleSet),o=t.getSelectors();if(!o.addChild(this._parseSelector(e)))return null;for(;this.accept(n.TokenType.Comma);)if(!o.addChild(this._parseSelector(e)))return this.finish(t,i.ParseError.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclaration=function(){return this._parseAtApply()||this._tryParseCustomPropertyDeclaration()||this._parseDeclaration()||this._parseUnknownAtRule()},e.prototype._parseAtApply=function(){if(!this.peekKeyword(\"@apply\"))return null;var e=this.create(r.AtApplyRule);return this.consumeToken(),e.setIdentifier(this._parseIdent([r.ReferenceType.Variable]))?this.finish(e):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case r.NodeType.Keyframe:case r.NodeType.ViewPort:case r.NodeType.Media:case r.NodeType.Ruleset:case r.NodeType.Namespace:case r.NodeType.If:case r.NodeType.For:case r.NodeType.Each:case r.NodeType.While:case r.NodeType.MixinDeclaration:case r.NodeType.FunctionDeclaration:return!1;case r.NodeType.ExtendsReference:case r.NodeType.MixinContent:case r.NodeType.ReturnStatement:case r.NodeType.MediaQuery:case r.NodeType.Debug:case r.NodeType.Import:case r.NodeType.AtApplyRule:case r.NodeType.CustomPropertyDeclaration:return!0;case r.NodeType.VariableDeclaration:return e.needsSemicolon;case r.NodeType.MixinReference:return!e.getContent();case r.NodeType.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(r.Declarations);if(!this.accept(n.TokenType.CurlyL))return null;for(var o=e();t.addChild(o)&&!this.peek(n.TokenType.CurlyR);){if(this._needsSemicolonAfter(o)&&!this.accept(n.TokenType.SemiColon))return this.finish(t,i.ParseError.SemiColonExpected,[n.TokenType.SemiColon,n.TokenType.CurlyR]);for(o&&this.prevToken&&this.prevToken.type===n.TokenType.SemiColon&&(o.semicolonPosition=this.prevToken.offset);this.accept(n.TokenType.SemiColon););o=e()}return this.accept(n.TokenType.CurlyR)?this.finish(t):this.finish(t,i.ParseError.RightCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,i.ParseError.LeftCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(r.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this.create(r.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon)){var o=e?__spreadArrays(e,[n.TokenType.SemiColon]):[n.TokenType.SemiColon];return this.finish(t,i.ParseError.ColonExpected,[n.TokenType.Colon],o)}return this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseExpr())?(t.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):this.finish(t,i.ParseError.PropertyValueExpected)},e.prototype._tryParseCustomPropertyDeclaration=function(){if(!this.peekRegExp(n.TokenType.Ident,/^--/))return null;var e=this.create(r.CustomPropertyDeclaration);if(!e.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon))return this.finish(e,i.ParseError.ColonExpected,[n.TokenType.Colon]);this.prevToken&&(e.colonPosition=this.prevToken.offset);var t=this.mark();if(this.peek(n.TokenType.CurlyL)){var o=this.create(r.CustomPropertySet),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(o.setDeclarations(a)&&!a.isErroneous(!0)&&(o.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)))return this.finish(o),e.setPropertySet(o),e.semicolonPosition=this.token.offset,this.finish(e);this.restoreAtMark(t)}var l=this._parseExpr();return l&&!l.isErroneous(!0)&&(this._parsePrio(),this.peek(n.TokenType.SemiColon))?(e.setValue(l),e.semicolonPosition=this.token.offset,this.finish(e)):(this.restoreAtMark(t),e.addChild(this._parseCustomPropertyValue()),e.addChild(this._parsePrio()),s.isDefined(e.colonPosition)&&this.token.offset===e.colonPosition+1?this.finish(e,i.ParseError.PropertyValueExpected):this.finish(e))},e.prototype._parseCustomPropertyValue=function(){var e=this.create(r.Node),t=function(){return 0===o&&0===s&&0===a},o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:case n.TokenType.Exclamation:if(t())break e;break;case n.TokenType.CurlyL:o++;break;case n.TokenType.CurlyR:if(--o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected);break;case n.TokenType.BadString:break e;case n.TokenType.EOF:var l=i.ParseError.RightCurlyExpected;return a>0?l=i.ParseError.RightSquareBracketExpected:s>0&&(l=i.ParseError.RightParenthesisExpected),this.finish(e,l)}this.consumeToken()}return this.finish(e)},e.prototype._tryToParseDeclaration=function(){var e=this.mark();return this._parseProperty()&&this.accept(n.TokenType.Colon)?(this.restoreAtMark(e),this._parseDeclaration()):(this.restoreAtMark(e),null)},e.prototype._parseProperty=function(){var e=this.create(r.Property),t=this.mark();return(this.acceptDelim(\"*\")||this.acceptDelim(\"_\"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(n.TokenType.Charset))return null;var e=this.create(r.Node);return this.consumeToken(),this.accept(n.TokenType.String)?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(r.Import);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(n.TokenType.SemiColon)||this.peek(n.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,i.ParseError.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword(\"@namespace\"))return null;var e=this.create(r.Namespace);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.URIExpected,[n.TokenType.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword(\"@font-face\"))return null;var e=this.create(r.FontFace);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword(\"@-ms-viewport\")&&!this.peekKeyword(\"@-o-viewport\")&&!this.peekKeyword(\"@viewport\"))return null;var e=this.create(r.ViewPort);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(n.TokenType.AtKeyword,this.keyframeRegex))return null;var e=this.create(r.Keyframe),t=this.create(r.Node);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches(\"@-ms-keyframes\")&&this.markError(t,i.ParseError.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,i.ParseError.IdentifierExpected,[n.TokenType.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([r.ReferenceType.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector);if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.finish(e,i.ParseError.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.restoreAtMark(t),null;return this.peek(n.TokenType.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@supports\"))return null;var t=this.create(r.Supports);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(r.SupportsCondition);if(this.acceptIdent(\"not\"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(n.TokenType.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(r.SupportsCondition);if(this.accept(n.TokenType.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration())||this._parseSupportsCondition()?this.accept(n.TokenType.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,i.ParseError.RightParenthesisExpected,[n.TokenType.ParenthesisR],[]):this.finish(e,i.ParseError.ConditionExpected);if(this.peek(n.TokenType.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){for(var o=1;this.token.type!==n.TokenType.EOF&&0!==o;)this.token.type===n.TokenType.ParenthesisL?o++:this.token.type===n.TokenType.ParenthesisR&&o--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,i.ParseError.LeftParenthesisExpected,[],[n.TokenType.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@media\"))return null;var t=this.create(r.Media);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,i.ParseError.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(r.Medialist);if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(r.MediaQuery),o=!0,s=!1;if(!this.peek(n.TokenType.ParenthesisL)){if(this.acceptIdent(\"only\")||this.acceptIdent(\"not\"),!t.addChild(this._parseIdent()))return null;s=!0,o=this.acceptIdent(\"and\")}for(;o;)if(t.addChild(this._parseMediaContentStart()))o=this.acceptIdent(\"and\");else{if(!this.accept(n.TokenType.ParenthesisL))return s?this.finish(t,i.ParseError.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,i.ParseError.IdentifierExpected,[],e);if(this.accept(n.TokenType.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,i.ParseError.TermExpected,[],e);if(!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected,[],e);o=this.acceptIdent(\"and\")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(r.Node);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword(\"@page\"))return null;var e=this.create(r.Page);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,i.ParseError.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.PageBoxMarginBox);return this.acceptOneKeyword(o.pageBoxDirectives)||this.markError(e,i.ParseError.UnknownAtRule,[],[n.TokenType.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(n.TokenType.Ident)&&!this.peek(n.TokenType.Colon))return null;var e=this.create(r.Node);return e.addChild(this._parseIdent()),this.accept(n.TokenType.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword(\"@-moz-document\"))return null;var e=this.create(r.Document);return this.consumeToken(),this.resync([],[n.TokenType.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.UnknownAtRule);e.addChild(this._parseUnknownAtRuleName());var t=0,o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:if(0===o&&0===s&&0===a)break e;break;case n.TokenType.EOF:return o>0?this.finish(e,i.ParseError.RightCurlyExpected):a>0?this.finish(e,i.ParseError.RightSquareBracketExpected):s>0?this.finish(e,i.ParseError.RightParenthesisExpected):this.finish(e);case n.TokenType.CurlyL:t++,o++;break;case n.TokenType.CurlyR:if(o--,t>0&&0===o){if(this.consumeToken(),a>0)return this.finish(e,i.ParseError.RightSquareBracketExpected);if(s>0)return this.finish(e,i.ParseError.RightParenthesisExpected);break e}if(o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(r.Node);return this.accept(n.TokenType.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim(\"/\")||this.peekDelim(\"*\")||this.peekDelim(\"+\")||this.peekDelim(\"-\")||this.peek(n.TokenType.Dashmatch)||this.peek(n.TokenType.Includes)||this.peek(n.TokenType.SubstringOperator)||this.peek(n.TokenType.PrefixOperator)||this.peek(n.TokenType.SuffixOperator)||this.peekDelim(\"=\")){var e=this.createNode(r.NodeType.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim(\"+\")&&!this.peekDelim(\"-\"))return null;var e=this.create(r.Node);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(\">\")){var e=this.create(r.Node);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(\">\")){if(!this.hasWhitespace()&&this.acceptDelim(\">\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=r.NodeType.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim(\"+\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim(\"~\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim(\"/\")){e=this.create(r.Node);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent(\"deep\")&&!this.hasWhitespace()&&this.acceptDelim(\"/\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(r.SimpleSelector),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(n.TokenType.Hash)&&!this.peekDelim(\"#\"))return null;var e=this.createNode(r.NodeType.IdentifierSelector);if(this.acceptDelim(\"#\")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,i.ParseError.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim(\".\"))return null;var e=this.createNode(r.NodeType.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(r.NodeType.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim(\"*\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(r.NodeType.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim(\"*\"),this.acceptDelim(\"|\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.create(r.AttributeSelector);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent(\"i\")),this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(r.Node);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(n.TokenType.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(n.TokenType.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(n.TokenType.Colon))return null;var e=this.mark(),t=this.createNode(r.NodeType.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(n.TokenType.Colon)&&this.hasWhitespace()&&this.markError(t,i.ParseError.IdentifierExpected),t.addChild(this._parseIdent())||this.markError(t,i.ParseError.IdentifierExpected),t)},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(n.TokenType.Exclamation))return null;var e=this.createNode(r.NodeType.Prio);return this.accept(n.TokenType.Exclamation)&&this.acceptIdent(\"important\")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(r.Expression);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(n.TokenType.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.createNode(r.NodeType.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(r.BinaryExpression);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,i.ParseError.TermExpected);n=this.finish(n);var o=this._parseOperator();return o&&(n=this._parseBinaryExpr(n,o)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(r.Term);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseURILiteral())||e.setExpression(this._parseFunction())||e.setExpression(this._parseIdent())||e.setExpression(this._parseStringLiteral())||e.setExpression(this._parseNumeric())||e.setExpression(this._parseHexColor())||e.setExpression(this._parseOperation())||e.setExpression(this._parseNamedLine())?this.finish(e):null},e.prototype._parseOperation=function(){if(!this.peek(n.TokenType.ParenthesisL))return null;var e=this.create(r.Node);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(n.TokenType.ParenthesisR)?this.finish(e):this.finish(e,i.ParseError.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(n.TokenType.Num)||this.peek(n.TokenType.Percentage)||this.peek(n.TokenType.Resolution)||this.peek(n.TokenType.Length)||this.peek(n.TokenType.EMS)||this.peek(n.TokenType.EXS)||this.peek(n.TokenType.Angle)||this.peek(n.TokenType.Time)||this.peek(n.TokenType.Dimension)||this.peek(n.TokenType.Freq)){var e=this.create(r.NumericValue);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(n.TokenType.String)&&!this.peek(n.TokenType.BadString))return null;var e=this.createNode(r.NodeType.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(n.TokenType.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(r.NodeType.URILiteral);return this.accept(n.TokenType.Ident),this.hasWhitespace()||!this.peek(n.TokenType.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(r.Node);return this.accept(n.TokenType.String)||this.accept(n.TokenType.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(n.TokenType.Ident))return null;var t=this.create(r.Identifier);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(n.TokenType.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(r.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(n.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(n.TokenType.Comma)&&!this.peek(n.TokenType.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,i.ParseError.ExpressionExpected);return this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(n.TokenType.Ident))return null;var e=this.create(r.Identifier);if(e.referenceTypes=[r.ReferenceType.Function],this.acceptIdent(\"progid\")){if(this.accept(n.TokenType.Colon))for(;this.accept(n.TokenType.Ident)&&this.acceptDelim(\".\"););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(r.FunctionArgument);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(n.TokenType.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(r.HexColorValue);return this.consumeToken(),this.finish(e)}return null},e}();t.Parser=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e,t){return-1!==e.indexOf(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.includes=n,t.union=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=[],i=0,o=e;i<o.length;i++)for(var s=o[i],a=0,l=s;a<l.length;a++){var c=l[a];n(r,c)||r.push(c)}return r}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssSymbolScope\",[\"require\",\"exports\",\"./cssNodes\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNodes\"),r=e(\"../utils/arrays\"),i=function(){function e(e,t){this.offset=e,this.length=t,this.symbols=[],this.parent=null,this.children=[]}return e.prototype.addChild=function(e){this.children.push(e),e.setParent(this)},e.prototype.setParent=function(e){this.parent=e},e.prototype.findScope=function(e,t){return void 0===t&&(t=0),this.offset<=e&&this.offset+this.length>e+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,i=r.findFirst(this.children,(function(e){return e.offset>n}));if(0===i)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n<this.symbols.length;n++){var r=this.symbols[n];if(r.name===e&&r.type===t)return r}return null},e.prototype.getSymbols=function(){return this.symbols},e}();t.Scope=i;var o=function(e){function t(){return e.call(this,0,Number.MAX_VALUE)||this}return __extends(t,e),t}(i);t.GlobalScope=o;var s=function(e,t,n,r){this.name=e,this.value=t,this.node=n,this.type=r};t.Symbol=s;var a=function(){function e(e){this.scope=e}return e.prototype.addSymbol=function(e,t,n,r){if(-1!==e.offset){var i=this.scope.findScope(e.offset,e.length);i&&i.addSymbol(new s(t,n,e,r))}},e.prototype.addScope=function(e){if(-1!==e.offset){var t=this.scope.findScope(e.offset,e.length);if(t&&(t.offset!==e.offset||t.length!==e.length)){var n=new i(e.offset,e.length);return t.addChild(n),n}return t}return null},e.prototype.addSymbolToChildScope=function(e,t,n,r,i){if(e&&-1!==e.offset){var o=this.addScope(e);o&&o.addSymbol(new s(n,r,t,i))}},e.prototype.visitNode=function(e){switch(e.type){case n.NodeType.Keyframe:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Keyframe),!0;case n.NodeType.CustomPropertyDeclaration:return this.visitCustomPropertyDeclarationNode(e);case n.NodeType.VariableDeclaration:return this.visitVariableDeclarationNode(e);case n.NodeType.Ruleset:return this.visitRuleSet(e);case n.NodeType.MixinDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Mixin),!0;case n.NodeType.FunctionDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Function),!0;case n.NodeType.FunctionParameter:return this.visitFunctionParameterNode(e);case n.NodeType.Declarations:return this.addScope(e),!0;case n.NodeType.For:var t=e,r=t.getDeclarations();return r&&t.variable&&this.addSymbolToChildScope(r,t.variable,t.variable.getName(),void 0,n.ReferenceType.Variable),!0;case n.NodeType.Each:var i=e,o=i.getDeclarations();if(o)for(var s=0,a=i.getVariables().getChildren();s<a.length;s++){var l=a[s];this.addSymbolToChildScope(o,l,l.getName(),void 0,n.ReferenceType.Variable)}return!0}return!0},e.prototype.visitRuleSet=function(e){var t=this.scope.findScope(e.offset,e.length);if(t)for(var r=0,i=e.getSelectors().getChildren();r<i.length;r++){var o=i[r];o instanceof n.Selector&&1===o.getChildren().length&&t.addSymbol(new s(o.getChild(0).getText(),void 0,o,n.ReferenceType.Rule))}return!0},e.prototype.visitVariableDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():void 0;return this.addSymbol(e,e.getName(),t,n.ReferenceType.Variable),!0},e.prototype.visitFunctionParameterNode=function(e){var t=e.getParent().getDeclarations();if(t){var r=e.getDefaultValue(),i=r?r.getText():void 0;this.addSymbolToChildScope(t,e,e.getName(),i,n.ReferenceType.Variable)}return!0},e.prototype.visitCustomPropertyDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():\"\";return this.addCSSVariable(e.getProperty(),e.getProperty().getName(),t,n.ReferenceType.Variable),!0},e.prototype.addCSSVariable=function(e,t,n,r){-1!==e.offset&&this.scope.addSymbol(new s(t,n,e,r))},e}();t.ScopeBuilder=a;var l=function(){function e(e){this.global=new o,e.acceptVisitor(new a(this.global))}return e.prototype.findSymbolsAtOffset=function(e,t){for(var n=this.global.findScope(e,0),r=[],i={};n;){for(var o=n.getSymbols(),s=0;s<o.length;s++){var a=o[s];a.type!==t||i[a.name]||(r.push(a),i[a.name]=!0)}n=n.parent}return r},e.prototype.internalFindSymbol=function(e,t){var r=e;if(e.parent instanceof n.FunctionParameter&&e.parent.getParent()instanceof n.BodyDeclaration&&(r=e.parent.getParent().getDeclarations()),e.parent instanceof n.FunctionArgument&&e.parent.getParent()instanceof n.Function){var i=e.parent.getParent().getIdentifier();if(i){var o=this.internalFindSymbol(i,[n.ReferenceType.Function]);o&&(r=o.node.getDeclarations())}}if(!r)return null;for(var s=e.getText(),a=this.global.findScope(r.offset,r.length);a;){for(var l=0;l<t.length;l++){var c=t[l],d=a.getSymbol(s,c);if(d)return d}a=a.parent}return null},e.prototype.evaluateReferenceTypes=function(e){if(e instanceof n.Identifier){var t=e.referenceTypes;if(t)return t;if(e.isCustomProperty)return[n.ReferenceType.Variable];var r=n.getParentDeclaration(e);if(r){var i=r.getNonPrefixedPropertyName();if((\"animation\"===i||\"animation-name\"===i)&&r.getValue()&&r.getValue().offset===e.offset)return[n.ReferenceType.Keyframe]}}else if(e instanceof n.Variable)return[n.ReferenceType.Variable];return e.findAParent(n.NodeType.Selector,n.NodeType.ExtendsReference)?[n.ReferenceType.Rule]:null},e.prototype.findSymbolFromNode=function(e){if(!e)return null;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();var t=this.evaluateReferenceTypes(e);return t?this.internalFindSymbol(e,t):null},e.prototype.matchesSymbol=function(e,t){if(!e)return!1;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();if(!e.matches(t.name))return!1;var r=this.evaluateReferenceTypes(e);return!(!r||-1===r.indexOf(t.type))&&this.internalFindSymbol(e,r)===t},e.prototype.findSymbol=function(e,t,n){for(var r=this.global.findScope(n);r;){var i=r.getSymbol(e,t);if(i)return i;r=r.parent}return null},e}();t.Symbols=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.difference=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;i<t.length+1;++i)a.push(0);for(i=0;i<e.length+1;++i)s.push(a);for(i=1;i<e.length+1;++i)for(o=1;o<t.length+1;++o)e[i-1]===t[o-1]?s[i][o]=s[i-1][o-1]+1:s[i][o]=Math.max(s[i-1][o],s[i][o-1]);return s[e.length][t.length]-Math.sqrt(r)},t.getLimitedString=function(e,t){return void 0===t&&(t=!0),e?e.length<140?e:e.slice(0,140)+(t?\"…\":\"\"):\"\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,i,o,s,a,l,c,d,p,h,m,u;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.number(t.line)&&x.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,i){if(x.number(e)&&x.number(t)&&x.number(r)&&x.number(i))return{start:n.create(e,t),end:n.create(r,i)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+i+\"]\")},e.is=function(e){var t=e;return x.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.string(t.uri)||x.undefined(t.uri))}}(i=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.targetRange)&&x.string(t.targetUri)&&(r.is(t.targetSelectionRange)||x.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||x.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return x.number(t.red)&&x.number(t.green)&&x.number(t.blue)&&x.number(t.alpha)}}(o=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&o.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return x.string(t.label)&&(x.undefined(t.textEdit)||c.is(t))&&(x.undefined(t.additionalTextEdits)||x.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return x.defined(n)&&(o.startCharacter=n),x.defined(r)&&(o.endCharacter=r),x.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return x.number(t.startLine)&&x.number(t.startLine)&&(x.undefined(t.startCharacter)||x.number(t.startCharacter))&&(x.undefined(t.endCharacter)||x.number(t.endCharacter))&&(x.undefined(t.kind)||x.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return x.defined(t)&&i.is(t.location)&&x.string(t.message)}}(s=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,i,o){var s={range:e,message:t};return x.defined(n)&&(s.severity=n),x.defined(r)&&(s.code=r),x.defined(i)&&(s.source=i),x.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&x.string(t.message)&&(x.number(t.severity)||x.undefined(t.severity))&&(x.number(t.code)||x.string(t.code)||x.undefined(t.code))&&(x.string(t.source)||x.undefined(t.source))&&(x.undefined(t.relatedInformation)||x.typedArray(t.relatedInformation,s.is))}}(a=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return x.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.title)&&x.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.string(t.newText)&&r.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return x.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(p=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&x.string(t.oldUri)&&x.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(h=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||x.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||x.boolean(t.options.ignoreIfNotExists)))}}(m=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return x.string(e.kind)?p.is(e)||h.is(e)||m.is(e):d.is(e)})))}}(u=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,y,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new v(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new v(i),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new v(i),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(m.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&(null===t.version||x.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&x.string(t.languageId)&&x.number(t.version)&&x.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return x.objectLiteral(e)&&g.is(t.kind)&&x.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return x.string(t)||x.objectLiteral(t)&&x.string(t.language)&&x.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&x.objectLiteral(t)&&(b.is(t.contents)||y.is(t.contents)||x.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return x.defined(t)&&(i.documentation=t),x.defined(n)?i.parameters=n:i.parameters=[],i}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return x.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,i,o){var s={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(s.children=o),s},e.is=function(e){var t=e;return t&&x.string(t.name)&&x.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||x.string(t.detail))&&(void 0===t.deprecated||x.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return x.defined(t)&&x.typedArray(t.diagnostics,a.is)&&(void 0===t.only||x.typedArray(t.only,x.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return l.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&x.string(t.title)&&(void 0===t.diagnostics||x.typedArray(t.diagnostics,a.is))&&(void 0===t.kind||x.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||x.boolean(t.isPreferred))&&(void 0===t.edit||u.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return x.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return x.defined(t)&&x.number(t.tabSize)&&x.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.target)||x.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new S(e,t,n,r)},e.is=function(e){var t=e;return!!(x.defined(t)&&x.string(t.uri)&&(x.undefined(t.languageId)||x.string(t.languageId))&&x.number(t.lineCount)&&x.func(t.getText)&&x.func(t.positionAt)&&x.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,o=r.length-1;o>=0;o--){var s=r[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,a)+s.newText+n.substring(l,n.length),i=a}return n}}(t.TextDocument||(t.TextDocument={}));var x,S=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n=\"\\r\"===i||\"\\n\"===i,\"\\r\"===i&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(0===i)return n.create(0,e);for(;r<i;){var o=Math.floor((r+i)/2);t[o]>e?i=o:r=o+1}var s=r-1;return n.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(x||(x={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var o=0,s=t;o<s.length;o++){var a=s[o];if(e.isIncremental(a)){var l=i(a.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+a.text+this._content.substring(d,this._content.length);var p=Math.max(l.start.line,0),h=Math.max(l.end.line,0),m=this._lineOffsets,u=r(a.text,!1,c);if(h-p===u.length)for(var f=0,g=u.length;f<g;f++)m[f+p+1]=u[f];else u.length<1e4?m.splice.apply(m,[p+1,h-p].concat(u)):this._lineOffsets=m=m.slice(0,p+1).concat(u,m.slice(h+1));var b=a.text.length-(d-c);if(0!==b)for(f=p+1+u.length,g=m.length;f<g;f++)m[f]=m[f]+b}else{if(!e.isFull(a))throw new Error(\"Unknown change event received\");this._content=a.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function i(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function o(e){var t=i(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,i){return new n(e,t,r,i)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t.map(o),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,s=r.length-1;s>=0;s--){var a=r[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+a.newText+n.substring(c,n.length),i=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.File=1]=\"File\",e[e.Directory=2]=\"Directory\",e[e.SymbolicLink=64]=\"SymbolicLink\"}(t.FileType||(t.FileType={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCompletion\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\",\"../cssLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"../parser/cssNodes\"),i=e(\"../parser/cssSymbolScope\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/strings\"),a=e(\"../cssLanguageTypes\"),l=e(\"vscode-nls\"),c=e(\"../utils/objects\"),d=l.loadMessageBundle(),p=a.InsertTextFormat.Snippet;!function(e){e.Enums=\" \",e.Normal=\"d\",e.VendorPrefixed=\"x\",e.Term=\"y\",e.Variable=\"z\"}(n||(n={}));var h=function(){function e(e,t){void 0===e&&(e=null),this.variablePrefix=e,this.clientCapabilities=t,this.completionParticipants=[],this.valueTypes=[r.NodeType.Identifier,r.NodeType.Value,r.NodeType.StringLiteral,r.NodeType.URILiteral,r.NodeType.NumericValue,r.NodeType.HexColorValue,r.NodeType.VariableName,r.NodeType.Prio]}return e.prototype.configure=function(e){this.settings=e},e.prototype.getSymbolContext=function(){return this.symbolContext||(this.symbolContext=new i.Symbols(this.styleSheet)),this.symbolContext},e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n){this.offset=e.offsetAt(t),this.position=t,this.currentWord=function(e,t){var n=t-1,r=e.getText();for(;n>=0&&-1===' \\t\\n\\r\":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n;try{var i={isIncomplete:!1,items:[]};this.nodePath=r.getNodePath(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof r.Property)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof r.Expression)s.parent instanceof r.Interpolation?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof r.SimpleSelector){var l=s.findAParent(r.NodeType.ExtendsReference,r.NodeType.Ruleset);if(l)if(l.type===r.NodeType.ExtendsReference)this.getCompletionsForExtendsReference(l,s,i);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),i)}}else if(s instanceof r.FunctionArgument)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof r.Declarations)this.getCompletionsForDeclarations(s,i);else if(s instanceof r.VariableDeclaration)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof r.RuleSet)this.getCompletionsForRuleSet(s,i);else if(s instanceof r.Interpolation)this.getCompletionsForInterpolation(s,i);else if(s instanceof r.FunctionDeclaration)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof r.MixinReference)this.getCompletionsForMixinReference(s,i);else if(s instanceof r.Function)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof r.Supports)this.getCompletionsForSupports(s,i);else if(s instanceof r.SupportsCondition)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof r.ExtendsReference)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===r.NodeType.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==r.NodeType.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===r.NodeType.Import},e.prototype.finalize=function(e){return e.items.some((function(e){return!!e.sortText||\"-\"===e.label[0]}))&&e.items.forEach((function(e,t){e.sortText?\"-\"===e.label[0]?e.sortText+=n.VendorPrefixed+\"_\"+u(t):e.sortText+=n.Normal+\"_\"+u(t):\"-\"===e.label[0]?e.sortText=n.VendorPrefixed+\"_\"+u(t):e.sortText=n.Normal+\"_\"+u(t)})),e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.nodePath.length-1;n>=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,l=this.isCompletePropertyWithSemicolonEnabled;return o.cssDataManager.getProperties().forEach((function(d){var p,h,u=!1;e?(p=r.getCompletionRange(e.getProperty()),h=d.name,c.isDefined(e.colonPosition)||(h+=\": \",u=!0)):(p=r.getCompletionRange(null),h=d.name+\": \",u=!0),!e&&l&&(h+=\"$0;\"),e&&!e.semicolonPosition&&l&&r.offset>=r.textDocument.offsetAt(p.end)&&(h+=\"$0;\");var f={label:d.name,documentation:o.getEntryDescription(d,r.doesSupportMarkdown()),tags:m(d)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(p,h),insertTextFormat:a.InsertTextFormat.Snippet,kind:a.CompletionItemKind.Property};d.restrictions||(u=!1),i&&u&&(f.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),s.startsWith(d.name,\"-\")&&(f.sortText=n.VendorPrefixed),t.items.push(f)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,\"isTriggerPropertyValueCompletionEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.triggerPropertyValueCompletion||this.settings.completion.triggerPropertyValueCompletion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCompletePropertyWithSemicolonEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.completePropertyWithSemicolon||this.settings.completion.completePropertyWithSemicolon},enumerable:!0,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,i=e.getFullPropertyName(),s=o.cssDataManager.getProperty(i),l=e.getValue()||null;l&&l.hasChildren();)l=l.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:i,propertyValue:n.currentWord,range:n.getCompletionRange(l)})})),s){if(s.restrictions)for(var c=0,d=s.restrictions;c<d.length;c++){switch(d[c]){case\"color\":this.getColorProposals(s,l,t);break;case\"position\":this.getPositionProposals(s,l,t);break;case\"repeat\":this.getRepeatStyleProposals(s,l,t);break;case\"line-style\":this.getLineStyleProposals(s,l,t);break;case\"line-width\":this.getLineWidthProposals(s,l,t);break;case\"geometry-box\":this.getGeometryBoxProposals(s,l,t);break;case\"box\":this.getBoxProposals(s,l,t);break;case\"image\":this.getImageProposals(s,l,t);break;case\"timing-function\":this.getTimingFunctionProposals(s,l,t);break;case\"shape\":this.getBasicShapeProposals(s,l,t)}}this.getValueEnumProposals(s,l,t),this.getCSSWideKeywordProposals(s,l,t),this.getUnitProposals(s,l,t)}else for(var p=0,h=function(e,t){var n=t.getFullPropertyName(),i=new f;function o(e){return(e instanceof r.Identifier||e instanceof r.NumericValue||e instanceof r.HexColorValue)&&i.add(e.getText()),!0}return e.accept((function(e){if(e instanceof r.Declaration&&e!==t&&function(e){var t=e.getFullPropertyName();return n===t}(e)){var i=e.getValue();i&&i.accept(o)}return!0})),i}(this.styleSheet,e).getEntries();p<h.length;p++){var m=h[p];t.items.push({label:m,textEdit:a.TextEdit.replace(this.getCompletionRange(l),m),kind:a.CompletionItemKind.Value})}return this.getVariableProposals(l,t),this.getTermProposals(s,l,t),t},e.prototype.getValueEnumProposals=function(e,t,r){if(e.values)for(var i=0,l=e.values;i<l.length;i++){var c=l[i],d=c.name,h=void 0;if(s.endsWith(d,\")\")){var u=d.lastIndexOf(\"(\");-1!==u&&(d=d.substr(0,u)+\"($1)\",h=p)}var f={label:c.name,documentation:o.getEntryDescription(c,this.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(this.getCompletionRange(t),d),sortText:n.Enums,kind:a.CompletionItemKind.Value,insertTextFormat:h};r.items.push(f)}return r},e.prototype.getCSSWideKeywordProposals=function(e,t,n){for(var r in o.cssWideKeywords)n.items.push({label:r,documentation:o.cssWideKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getCompletionsForInterpolation=function(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable);i<o.length;i++){var l=o[i],c=s.startsWith(l.name,\"--\")?\"var(\"+l.name+\")\":l.name,p={label:l.name,documentation:l.value?s.getLimitedString(l.value):l.value,textEdit:a.TextEdit.replace(this.getCompletionRange(e),c),kind:a.CompletionItemKind.Variable,sortText:n.Variable};if(\"string\"==typeof p.documentation&&y(p.documentation)&&(p.kind=a.CompletionItemKind.Color),l.node.type===r.NodeType.FunctionParameter){var h=l.node.getParent();h.type===r.NodeType.MixinDeclaration&&(p.detail=d(\"completion.argument\",\"argument from '{0}'\",h.getName()))}t.items.push(p)}return t},e.prototype.getVariableProposalsForCSSVarFunction=function(e){for(var t=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable),n=0,i=t=t.filter((function(e){return s.startsWith(e.name,\"--\")}));n<i.length;n++){var o=i[n],l={label:o.name,documentation:o.value?s.getLimitedString(o.value):o.value,textEdit:a.TextEdit.replace(this.getCompletionRange(null),o.name),kind:a.CompletionItemKind.Variable};\"string\"==typeof l.documentation&&y(l.documentation)&&(l.kind=a.CompletionItemKind.Color),e.items.push(l)}return e},e.prototype.getUnitProposals=function(e,t,n){var i=\"0\";if(this.currentWord.length>0){var s=this.currentWord.match(/^-?\\d[\\.\\d+]*/);s&&(i=s[0],n.isIncomplete=i.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===r.NodeType.Term&&(t=t.getParent()),e.restrictions)for(var l=0,c=e.restrictions;l<c.length;l++){var d=c[l],p=o.units[d];if(p)for(var h=0,m=p;h<m.length;h++){var u=i+m[h];n.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(t),u),kind:a.CompletionItemKind.Unit})}}return n},e.prototype.getCompletionRange=function(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){var t=-1!==e.end?this.textDocument.positionAt(e.end):this.position,n=this.textDocument.positionAt(e.offset);if(n.line===t.line)return a.Range.create(n,t)}return this.defaultReplaceRange},e.prototype.getColorProposals=function(e,t,n){for(var r in o.colors)n.items.push({label:r,documentation:o.colors[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color});for(var r in o.colorKeywords)n.items.push({label:r,documentation:o.colorKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});var i=new f;this.styleSheet.acceptVisitor(new b(i,this.offset));for(var s=0,l=i.getEntries();s<l.length;s++){r=l[s];n.items.push({label:r,textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color})}for(var c=function(e){var r=1,i=e.func.replace(/\\[?\\$(\\w+)\\]?/g,(function(e,t){return\"${\"+r+++\":\"+t+\"}\"}));n.items.push({label:e.func.substr(0,e.func.indexOf(\"(\")),detail:e.func,documentation:e.desc,textEdit:a.TextEdit.replace(d.getCompletionRange(t),i),insertTextFormat:p,kind:a.CompletionItemKind.Function})},d=this,h=0,m=o.colorFunctions;h<m.length;h++){c(m[h])}return n},e.prototype.getPositionProposals=function(e,t,n){for(var r in o.positionKeywords)n.items.push({label:r,documentation:o.positionKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getRepeatStyleProposals=function(e,t,n){for(var r in o.repeatStyleKeywords)n.items.push({label:r,documentation:o.repeatStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineStyleProposals=function(e,t,n){for(var r in o.lineStyleKeywords)n.items.push({label:r,documentation:o.lineStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineWidthProposals=function(e,t,n){for(var r=0,i=o.lineWidthKeywords;r<i.length;r++){var s=i[r];n.items.push({label:s,textEdit:a.TextEdit.replace(this.getCompletionRange(t),s),kind:a.CompletionItemKind.Value})}return n},e.prototype.getGeometryBoxProposals=function(e,t,n){for(var r in o.geometryBoxKeywords)n.items.push({label:r,documentation:o.geometryBoxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getBoxProposals=function(e,t,n){for(var r in o.boxKeywords)n.items.push({label:r,documentation:o.boxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getImageProposals=function(e,t,n){for(var r in o.imageFunctions){var i=g(r);n.items.push({label:r,documentation:o.imageFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getTimingFunctionProposals=function(e,t,n){for(var r in o.transitionTimingFunctions){var i=g(r);n.items.push({label:r,documentation:o.transitionTimingFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getBasicShapeProposals=function(e,t,n){for(var r in o.basicShapeFunctions){var i=g(r);n.items.push({label:r,documentation:o.basicShapeFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getCompletionsForStylesheet=function(e){var t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof r.RuleSet?this.getCompletionsForRuleSet(t,e):t instanceof r.Supports?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)},e.prototype.getCompletionForTopLevel=function(e){var t=this;return o.cssDataManager.getAtDirectives().forEach((function(n){e.items.push({label:n.name,textEdit:a.TextEdit.replace(t.getCompletionRange(null),n.name),documentation:o.getEntryDescription(n,t.doesSupportMarkdown()),tags:m(n)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Keyword})})),this.getCompletionsForSelector(null,!1,e),e},e.prototype.getCompletionsForRuleSet=function(e,t){var n=e.getDeclarations();return n&&n.endsWith(\"}\")&&this.offset>=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,i){var l=this,c=this.findInNodePath(r.NodeType.PseudoSelector,r.NodeType.IdentifierSelector,r.NodeType.ClassSelector,r.NodeType.ElementNameSelector);if(!c&&this.offset-this.currentWord.length>0&&\":\"===this.textDocument.getText()[this.offset-this.currentWord.length-1]&&(this.currentWord=\":\"+this.currentWord,this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position)),o.cssDataManager.getPseudoClasses().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\":-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),o.cssDataManager.getPseudoElements().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\"::-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),!t){for(var d=0,h=o.html5Tags;d<h.length;d++){var u=h[d];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}for(var f=0,b=o.svgElements;f<b.length;f++){u=b[f];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}}var y={};y[this.currentWord]=!0;var v=this.textDocument.getText();if(this.styleSheet.accept((function(e){if(e.type===r.NodeType.SimpleSelector&&e.length>0){var t=v.substr(e.offset,e.length);return\".\"!==t.charAt(0)||y[t]||(y[t]=!0,i.items.push({label:t,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),kind:a.CompletionItemKind.Keyword})),!1}return!0})),e&&e.isNested()){var w=e.getSelectors().findFirstChildBeforeOffset(this.offset);w&&0===e.getSelectors().getChildren().indexOf(w)&&this.getPropertyProposals(null,i)}return i},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof r.AbstractDeclaration){var i=n;if(!c.isDefined(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(c.isDefined(i.semicolonPosition)&&i.semicolonPosition<this.offset)return this.offset===i.semicolonPosition+1?t:this.getCompletionsForDeclarationProperty(null,t);if(i instanceof r.Declaration)return this.getCompletionsForDeclarationValue(i,t)}else n instanceof r.ExtendsReference?this.getCompletionsForExtendsReference(n,null,t):this.currentWord&&\"@\"===this.currentWord[0]&&this.getCompletionsForDeclarationProperty(null,t);return t},e.prototype.getCompletionsForVariableDeclaration=function(e,t){return this.offset&&c.isDefined(e.colonPosition)&&this.offset>e.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof r.FunctionArgument)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var i=e.findParent(r.NodeType.Declaration);if(!i)return this.getTermProposals(null,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof r.NumericValue||o instanceof r.Identifier?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches(\"var\")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offset<n.end&&this.getTermProposals(null,null,t),t},e.prototype.getCompletionsForMixinReference=function(e,t){for(var n=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Mixin);n<i.length;n++){var o=i[n];o.node instanceof r.MixinDeclaration&&t.items.push(this.makeTermProposal(o,o.node.getParameters(),null))}return t},e.prototype.getTermProposals=function(e,t,n){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Function);i<o.length;i++){var s=o[i];s.node instanceof r.FunctionDeclaration&&n.items.push(this.makeTermProposal(s,s.node.getParameters(),t))}return n},e.prototype.makeTermProposal=function(e,t,i){e.node;var o=t.getChildren().map((function(e){return e instanceof r.FunctionParameter?e.getName():e.getText()})),s=e.name+\"(\"+o.map((function(e,t){return\"${\"+(t+1)+\":\"+e+\"}\"})).join(\", \")+\")\";return{label:e.name,detail:e.name+\"(\"+o.join(\", \")+\")\",textEdit:a.TextEdit.replace(this.getCompletionRange(i),s),insertTextFormat:p,kind:a.CompletionItemKind.Function,sortText:n.Term}},e.prototype.getCompletionsForSupportsCondition=function(e,t){var n=e.findFirstChildBeforeOffset(this.offset);if(n){if(n instanceof r.Declaration)return!c.isDefined(n.colonPosition)||this.offset<=n.colonPosition?this.getCompletionsForDeclarationProperty(n,t):this.getCompletionsForDeclarationValue(n,t);if(n instanceof r.SupportsCondition)return this.getCompletionsForSupportsCondition(n,t)}return c.isDefined(e.lParent)&&this.offset>e.lParent&&(!c.isDefined(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof r.SupportsCondition?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n=\"\",r=this.position;var s=this.textDocument.positionAt(e.offset+\"url(\".length);i=a.Range.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.doesSupportMarkdown=function(){if(!c.isDefined(this.supportsMarkdown)){if(!c.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(a.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return!(!e.status||\"nonstandard\"!==e.status&&\"obsolete\"!==e.status)}function u(e){var t=e.toString();switch(t.length){case 4:return t;case 3:return\"0\"+t;case 2:return\"00\"+t;case 1:return\"000\"+t;default:return\"0000\"}}t.CSSCompletion=h;var f=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function g(e){return e.replace(/\\(\\)$/,\"($1)\")}var b=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof r.HexColorValue||e instanceof r.Function&&o.isColorConstructor(e))&&(this.currentOffset<e.offset||e.end<this.currentOffset)&&this.entries.add(e.getText()),!0},e}();function y(e){return e.toLowerCase()in o.colors||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/selectorPrinting\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssScanner\",\"../languageFacts/facts\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../parser/cssScanner\"),i=e(\"../languageFacts/facts\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t<n.length;t++){var r=n[t];if(r.name===e)return r.value}return null},e.prototype.addChild=function(t){t instanceof e&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)},e.prototype.append=function(e){if(this.attributes){var t=this.attributes[this.attributes.length-1];t.value=t.value+e}},e.prototype.prepend=function(e){if(this.attributes){var t=this.attributes[0];t.value=e+t.value}},e.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof a);)e=e.parent;return e},e.prototype.removeChild=function(e){if(this.children){var t=this.children.indexOf(e);if(-1!==t)return this.children.splice(t,1),!0}return!1},e.prototype.addAttr=function(e,t){this.attributes||(this.attributes=[]);for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return void(i.value+=\" \"+t)}this.attributes.push({name:e,value:t})},e.prototype.clone=function(t){void 0===t&&(t=!0);var n=new e;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var o=i[r];n.addAttr(o.name,o.value)}}if(t&&this.children){n.children=[];for(var s=0;s<this.children.length;s++)n.addChild(this.children[s].clone())}return n},e.prototype.cloneWithParent=function(){var e=this.clone(!1);!this.parent||this.parent instanceof a||this.parent.cloneWithParent().addChild(e);return e},e}();t.Element=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t}(s);t.RootElement=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.addAttr(\"name\",t),n}return __extends(t,e),t}(s);t.LabelElement=l;var c,d=function(){function e(e){this.quote=e,this.result=[]}return e.prototype.print=function(e){return this.result=[],e instanceof a?e.children&&this.doPrint(e.children,0):this.doPrint([e],0),[{language:\"html\",value:this.result.join(\"\\n\")}]},e.prototype.doPrint=function(e,t){for(var n=0,r=e;n<r.length;n++){var i=r[n];this.doPrintElement(i,t),i.children&&this.doPrint(i.children,t+1)}},e.prototype.writeLine=function(e,t){var n=new Array(e+1).join(\"  \");this.result.push(n+t)},e.prototype.doPrintElement=function(e,t){var n=e.findAttribute(\"name\");if(e instanceof l||\"…\"===n)this.writeLine(t,n);else{var r=[\"<\"];if(n?r.push(n):r.push(\"element\"),e.attributes)for(var i=0,o=e.attributes;i<o.length;i++){var s=o[i];if(\"name\"!==s.name){r.push(\" \"),r.push(s.name);var a=s.value;a&&(r.push(\"=\"),r.push(c.ensure(a,this.quote)))}}r.push(\">\"),this.writeLine(t,r.join(\"\"))}},e}();!function(e){function t(e){var t=e.match(/^['\"](.*)[\"']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(c||(c={}));var p=function(){this.id=0,this.attr=0,this.tag=0};function h(e,t){for(var r=new s,i=0,o=e.getChildren();i<o.length;i++){var a=o[i];switch(a.type){case n.NodeType.SelectorCombinator:if(t){var l=a.getText().split(\"&\");if(1===l.length){r.addAttr(\"name\",l[0]);break}if(r=t.cloneWithParent(),l[0])r.findRoot().prepend(l[0]);for(var d=1;d<l.length;d++){if(d>1){var p=t.cloneWithParent();r.addChild(p.findRoot()),r=p}r.append(l[d])}}break;case n.NodeType.SelectorPlaceholder:if(a.matches(\"@at-root\"))return r;case n.NodeType.ElementNameSelector:var h=a.getText();r.addAttr(\"name\",\"*\"===h?\"element\":m(h));break;case n.NodeType.ClassSelector:r.addAttr(\"class\",m(a.getText().substring(1)));break;case n.NodeType.IdentifierSelector:r.addAttr(\"id\",m(a.getText().substring(1)));break;case n.NodeType.MixinDeclaration:r.addAttr(\"class\",a.getName());break;case n.NodeType.PseudoSelector:r.addAttr(m(a.getText()),\"\");break;case n.NodeType.AttributeSelector:var u=a,f=u.getIdentifier();if(f){var g=u.getValue(),b=u.getOperator(),y=void 0;if(g&&b)switch(m(b.getText())){case\"|=\":y=c.remove(m(g.getText()))+\"-…\";break;case\"^=\":y=c.remove(m(g.getText()))+\"…\";break;case\"$=\":y=\"…\"+c.remove(m(g.getText()));break;case\"~=\":y=\" … \"+c.remove(m(g.getText()))+\" … \";break;case\"*=\":y=\"…\"+c.remove(m(g.getText()))+\"…\";break;default:y=c.remove(m(g.getText()))}r.addAttr(m(f.getText()),y)}}}return r}function m(e){var t=new r.Scanner;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}function u(e){var t=new p;return function e(r){r.getChildren().forEach((function(r){switch(r.type){case n.NodeType.IdentifierSelector:t.id++;break;case n.NodeType.ClassSelector:case n.NodeType.AttributeSelector:t.attr++;break;case n.NodeType.ElementNameSelector:if(r.matches(\"*\"))break;t.tag++;break;case n.NodeType.PseudoSelector:var o=r.getText();if(function(e){var t=e.match(/^::?([\\w-]+)/);return!!t&&!!i.cssDataManager.getPseudoElement(\"::\"+t[1])}(o))t.tag++;else{if(o.match(/^:not/i))break;t.attr++}}r.getChildren().length>0&&e(r)}))}(e),o(\"specificity\",\"[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})\",t.id,t.attr,t.tag)}t.toElement=h,t.selectorToMarkedString=function(e){var t=b(e);if(t){var n=new d('\"').print(t);return n.push(u(e)),n}return[]},t.simpleSelectorToMarkedString=function(e){var t=h(e),n=new d('\"').print(t);return n.push(u(e)),n};var f=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof a)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===n.NodeType.SelectorCombinator}))){var r=this.element.findRoot();r.parent instanceof a&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i<o.length;i++){var s=o[i];if(s instanceof n.SimpleSelector){if(this.prev instanceof n.SimpleSelector){var c=new l(\"…\");this.element.addChild(c),this.element=c}else this.prev&&(this.prev.matches(\"+\")||this.prev.matches(\"~\"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches(\"~\")&&(this.element.addChild(h(s)),this.element.addChild(new l(\"⋮\")));var d=h(s,t),p=d.findRoot();this.element.addChild(p),this.element=d}(s instanceof n.SimpleSelector||s.type===n.NodeType.SelectorCombinatorParent||s.type===n.NodeType.SelectorCombinatorShadowPiercingDescendant||s.type===n.NodeType.SelectorCombinatorSibling||s.type===n.NodeType.SelectorCombinatorAllSiblings)&&(this.prev=s)}},e}();function g(e){switch(e.type){case n.NodeType.MixinDeclaration:case n.NodeType.Stylesheet:return!0}return!1}function b(e){if(e.matches(\"@at-root\"))return null;var t=new a,r=[],i=e.getParent();if(i instanceof n.RuleSet)for(var o=i.getParent();o&&!g(o);){if(o instanceof n.RuleSet){if(o.getSelectors().matches(\"@at-root\"))break;r.push(o)}o=o.getParent()}for(var s=new f(t),l=r.length-1;l>=0;l--){var c=r[l].getSelectors().getChild(0);c&&s.processSelector(c)}return s.processSelector(e),t}t.selectorToElement=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssHover\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"./selectorPrinting\",\"../utils/strings\",\"../cssLanguageTypes\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"./selectorPrinting\"),o=e(\"../utils/strings\"),s=e(\"../cssLanguageTypes\"),a=e(\"../utils/objects\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,a){function l(t){return s.Range.create(e.positionAt(t.offset),e.positionAt(t.end))}for(var c=e.offsetAt(t),d=n.getNodePath(a,c),p=null,h=0;h<d.length;h++){var m=d[h];if(m instanceof n.Selector){p={contents:i.selectorToMarkedString(m),range:l(m)};break}if(m instanceof n.SimpleSelector){o.startsWith(m.getText(),\"@\")||(p={contents:i.simpleSelectorToMarkedString(m),range:l(m)});break}if(m instanceof n.Declaration){var u=m.getFullPropertyName();(g=r.cssDataManager.getProperty(u))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.UnknownAtRule){var f=m.getText();(g=r.cssDataManager.getAtDirective(f))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.Node&&m.type===n.NodeType.PseudoSelector){var g,b=m.getText();(g=\"::\"===b.slice(0,2)?r.cssDataManager.getPseudoElement(b):r.cssDataManager.getPseudoClass(b))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else;}return p&&(p.contents=this.convertContents(p.contents)),p},e.prototype.convertContents=function(e){return this.doesSupportMarkdown()?e:\"string\"==typeof e?e:\"kind\"in e?{kind:\"plaintext\",value:e.value}:Array.isArray(e)?e.map((function(e){return\"string\"==typeof e?e:e.value})):e.value},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){if(!a.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.CSSHover=l}));var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssNavigation\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"vscode-nls\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"vscode-nls\"),i=e(\"../parser/cssNodes\"),o=e(\"../parser/cssSymbolScope\"),s=e(\"../languageFacts/facts\"),a=e(\"../utils/strings\"),l=r.loadMessageBundle(),c=function(){function e(){}return e.prototype.findDefinition=function(e,t,n){var r=new o.Symbols(n),s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a)return null;var l=r.findSymbolFromNode(a);return l?{uri:e.uri,range:p(l.node,e)}:null},e.prototype.findReferences=function(e,t,n){return this.findDocumentHighlights(e,t,n).map((function(t){return{uri:e.uri,range:t.range}}))},e.prototype.findDocumentHighlights=function(e,t,n){var r=[],s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a||a.type===i.NodeType.Stylesheet||a.type===i.NodeType.Declarations)return r;a.type===i.NodeType.Identifier&&a.parent&&a.parent.type===i.NodeType.ClassSelector&&(a=a.parent);var l=new o.Symbols(n),c=l.findSymbolFromNode(a),d=a.getText();return n.accept((function(t){if(c){if(l.matchesSymbol(t,c))return r.push({kind:h(t),range:p(t,e)}),!1}else a&&a.type===t.type&&t.matches(d)&&r.push({kind:h(t),range:p(t,e)});return!0})),r},e.prototype.isRawStringDocumentLinkNode=function(e){return e.type===i.NodeType.Import},e.prototype.findDocumentLinks=function(e,t,n){var r=this,o=[];return t.accept((function(t){if(t.type===i.NodeType.URILiteral)return(s=function(e,t,n){if(0===t.getChildren().length)return null;var r=t.getChild(0);return d(e,r,n)}(e,t,n))&&o.push(s),!1;if(t.parent&&r.isRawStringDocumentLinkNode(t.parent)){var s,l=t.getText();if(a.startsWith(l,\"'\")||a.startsWith(l,'\"'))(s=d(e,t,n))&&o.push(s);return!1}return!0})),o},e.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(r){return[2,this.findDocumentLinks(e,t,n)]}))}))},e.prototype.findDocumentSymbols=function(e,t){var r=[];return t.accept((function(t){var o={name:null,kind:n.SymbolKind.Class,location:null},s=t;if(t instanceof i.Selector)return o.name=t.getText(),(s=t.findAParent(i.NodeType.Ruleset,i.NodeType.ExtendsReference))&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!1;if(t instanceof i.VariableDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Variable;else if(t instanceof i.MixinDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Method;else if(t instanceof i.FunctionDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Function;else if(t instanceof i.Keyframe)o.name=l(\"literal.keyframes\",\"@keyframes {0}\",t.getName());else if(t instanceof i.FontFace)o.name=l(\"literal.fontface\",\"@font-face\");else if(t instanceof i.Media){var a=t.getChild(0);a instanceof i.Medialist&&(o.name=\"@media \"+a.getText(),o.kind=n.SymbolKind.Module)}return o.name&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!0})),r},e.prototype.findDocumentColors=function(e,t){var n=[];return t.accept((function(t){var r=function(e,t){var n=s.getColorValue(e);if(n){var r=p(e,t);return{color:n,range:r}}return null}(t,e);return r&&n.push(r),!0})),n},e.prototype.getColorPresentations=function(e,t,r,i){var o,a=[],l=Math.round(255*r.red),c=Math.round(255*r.green),d=Math.round(255*r.blue);o=1===r.alpha?\"rgb(\"+l+\", \"+c+\", \"+d+\")\":\"rgba(\"+l+\", \"+c+\", \"+d+\", \"+r.alpha+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),o=1===r.alpha?\"#\"+m(l)+m(c)+m(d):\"#\"+m(l)+m(c)+m(d)+m(Math.round(255*r.alpha)),a.push({label:o,textEdit:n.TextEdit.replace(i,o)});var p=s.hslFromColor(r);return o=1===p.a?\"hsl(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%)\":\"hsla(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%, \"+p.a+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),a},e.prototype.doRename=function(e,t,r,i){var o,s=this.findDocumentHighlights(e,t,i).map((function(e){return n.TextEdit.replace(e.range,r)}));return{changes:(o={},o[e.uri]=s,o)}},e}();function d(e,t,n){if(!t)return null;var r=t.getText(),i=p(t,e);return i.start.line===i.end.line&&i.start.character===i.end.character?null:((a.startsWith(r,\"'\")||a.startsWith(r,'\"'))&&(r=r.slice(1,-1)),{range:i,target:a.startsWith(r,\"http://\")||a.startsWith(r,\"https://\")?r:/^\\w+:\\/\\//g.test(r)?r:n.resolveReference(r,e.uri)})}function p(e,t){return n.Range.create(t.positionAt(e.offset),t.positionAt(e.end))}function h(e){if(e.type===i.NodeType.Selector)return n.DocumentHighlightKind.Write;if(e instanceof i.Identifier&&e.parent&&e.parent instanceof i.Property&&e.isCustomProperty)return n.DocumentHighlightKind.Write;if(e.parent)switch(e.parent.type){case i.NodeType.FunctionDeclaration:case i.NodeType.MixinDeclaration:case i.NodeType.Keyframe:case i.NodeType.VariableDeclaration:case i.NodeType.FunctionParameter:return n.DocumentHighlightKind.Write}return n.DocumentHighlightKind.Read}function m(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}t.CSSNavigation=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintRules\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle(),i=n.Level.Warning,o=n.Level.Error,s=n.Level.Ignore,a=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Rule=a;var l=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Setting=l,t.Rules={AllVendorPrefixes:new a(\"compatibleVendorPrefixes\",r(\"rule.vendorprefixes.all\",\"When using a vendor-specific prefix make sure to also include all other vendor-specific properties\"),s),IncludeStandardPropertyWhenUsingVendorPrefix:new a(\"vendorPrefix\",r(\"rule.standardvendorprefix.all\",\"When using a vendor-specific prefix also include the standard property\"),i),DuplicateDeclarations:new a(\"duplicateProperties\",r(\"rule.duplicateDeclarations\",\"Do not use duplicate style definitions\"),s),EmptyRuleSet:new a(\"emptyRules\",r(\"rule.emptyRuleSets\",\"Do not use empty rulesets\"),i),ImportStatemement:new a(\"importStatement\",r(\"rule.importDirective\",\"Import statements do not load in parallel\"),s),BewareOfBoxModelSize:new a(\"boxModel\",r(\"rule.bewareOfBoxModelSize\",\"Do not use width or height when using padding or border\"),s),UniversalSelector:new a(\"universalSelector\",r(\"rule.universalSelector\",\"The universal selector (*) is known to be slow\"),s),ZeroWithUnit:new a(\"zeroUnits\",r(\"rule.zeroWidthUnit\",\"No unit for zero needed\"),s),RequiredPropertiesForFontFace:new a(\"fontFaceProperties\",r(\"rule.fontFaceProperties\",\"@font-face rule must define 'src' and 'font-family' properties\"),i),HexColorLength:new a(\"hexColorLength\",r(\"rule.hexColor\",\"Hex colors must consist of three, four, six or eight hex numbers\"),o),ArgsInColorFunction:new a(\"argumentsInColorFunction\",r(\"rule.colorFunction\",\"Invalid number of parameters\"),o),UnknownProperty:new a(\"unknownProperties\",r(\"rule.unknownProperty\",\"Unknown property.\"),i),UnknownAtRules:new a(\"unknownAtRules\",r(\"rule.unknownAtRules\",\"Unknown at-rule.\"),i),IEStarHack:new a(\"ieHack\",r(\"rule.ieHack\",\"IE hacks are only necessary when supporting IE7 and older\"),s),UnknownVendorSpecificProperty:new a(\"unknownVendorSpecificProperties\",r(\"rule.unknownVendorSpecificProperty\",\"Unknown vendor specific property.\"),s),PropertyIgnoredDueToDisplay:new a(\"propertyIgnoredDueToDisplay\",r(\"rule.propertyIgnoredDueToDisplay\",\"Property is ignored due to the display.\"),i),AvoidImportant:new a(\"important\",r(\"rule.avoidImportant\",\"Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.\"),s),AvoidFloat:new a(\"float\",r(\"rule.avoidFloat\",\"Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.\"),s),AvoidIdSelector:new a(\"idSelector\",r(\"rule.avoidIdSelector\",\"Selectors should not contain IDs because these rules are too tightly coupled with the HTML.\"),s)},t.Settings={ValidProperties:new l(\"validProperties\",r(\"rule.validProperties\",\"A list of properties that are not validated against the `unknownProperties` rule.\"),[])};var c=function(){function e(e){void 0===e&&(e={}),this.conf=e}return e.prototype.getRule=function(e){if(this.conf.hasOwnProperty(e.id)){var t=function(e){switch(e){case\"ignore\":return n.Level.Ignore;case\"warning\":return n.Level.Warning;case\"error\":return n.Level.Error}return null}(this.conf[e.id]);if(t)return t}return e.defaultValue},e.prototype.getSetting=function(e){return this.conf[e.id]},e}();t.LintConfigurationSettings=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCodeActions\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"../utils/strings\",\"../services/lintRules\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"../utils/strings\"),o=e(\"../services/lintRules\"),s=e(\"../cssLanguageTypes\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){}return e.prototype.doCodeActions=function(e,t,n,r){return this.doCodeActions2(e,t,n,r).map((function(t){var n=t.edit&&t.edit.documentChanges&&t.edit.documentChanges[0];return s.Command.create(t.title,\"_css.applyCodeAction\",e.uri,e.version,n&&n.edits)}))},e.prototype.doCodeActions2=function(e,t,n,r){var i=[];if(n.diagnostics)for(var o=0,s=n.diagnostics;o<s.length;o++){var a=s[o];this.appendFixesForMarker(e,r,a,i)}return i},e.prototype.getFixesForUnknownProperty=function(e,t,n,o){var l=t.getName(),c=[];r.cssDataManager.getProperties().forEach((function(e){var t=i.difference(l,e.name);t>=l.length/2&&c.push({property:e.name,score:t})})),c.sort((function(e,t){return t.score-e.score}));for(var d=3,p=0,h=c;p<h.length;p++){var m=h[p].property,u=a(\"css.codeaction.rename\",\"Rename to '{0}'\",m),f=s.TextEdit.replace(n.range,m),g=s.VersionedTextDocumentIdentifier.create(e.uri,e.version),b={documentChanges:[s.TextDocumentEdit.create(g,[f])]},y=s.CodeAction.create(u,b,s.CodeActionKind.QuickFix);if(y.diagnostics=[n],o.push(y),--d<=0)return}},e.prototype.appendFixesForMarker=function(e,t,r,i){if(r.code===o.Rules.UnknownProperty.id)for(var s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=n.getNodePath(t,s),c=l.length-1;c>=0;c--){var d=l[c];if(d instanceof n.Declaration){var p=d.getProperty();if(p&&p.offset===s&&p.end===a)return void this.getFixesForUnknownProperty(e,p,r,i)}}},e}();t.CSSCodeActions=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintUtil\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\"),r=function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e};function i(e,t,r,i){var o=e[t];o.value=r,r&&(n.includes(o.properties,i)||o.properties.push(i))}function o(e,t,n,r){\"top\"===t||\"right\"===t||\"bottom\"===t||\"left\"===t?i(e,t,n,r):function(e,t,n){i(e,\"top\",t,n),i(e,\"right\",t,n),i(e,\"bottom\",t,n),i(e,\"left\",t,n)}(e,n,r)}function s(e,t,n){switch(t.length){case 1:o(e,void 0,t[0],n);break;case 2:o(e,\"top\",t[0],n),o(e,\"bottom\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n);break;case 3:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n),o(e,\"bottom\",t[2],n);break;case 4:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"bottom\",t[2],n),o(e,\"left\",t[3],n)}}function a(e,t){for(var n=0,r=t;n<r.length;n++){var i=r[n];if(e.matches(i))return!0}return!1}function l(e,t){return void 0===t&&(t=!0),(!t||!a(e,[\"initial\",\"unset\"]))&&0!==parseFloat(e.getText())}function c(e,t){return void 0===t&&(t=!0),e.map((function(e){return l(e,t)}))}function d(e,t){return void 0===t&&(t=!0),!a(e,[\"none\",\"hidden\"])&&(!t||!a(e,[\"initial\",\"unset\"]))}function p(e,t){return void 0===t&&(t=!0),e.map((function(e){return d(e,t)}))}function h(e){var t=e.getChildren();if(1===t.length)return l(i=t[0])&&d(i);for(var n=0,r=t;n<r.length;n++){var i;if(!l(i=r[n],!1)||!d(i,!1))return!1}return!0}t.Element=r,t.default=function(e){for(var t={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}},n=0,r=e;n<r.length;n++){var i=r[n],a=i.node.value;if(void 0!==a)switch(i.fullPropertyName){case\"box-sizing\":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case\"width\":t.width=i;break;case\"height\":t.height=i;break;default:var m=i.fullPropertyName.split(\"-\");switch(m[0]){case\"border\":switch(m[1]){case void 0:case\"top\":case\"right\":case\"bottom\":case\"left\":switch(m[2]){case void 0:o(t,m[1],h(a),i);break;case\"width\":o(t,m[1],l(a,!1),i);break;case\"style\":o(t,m[1],d(a,!0),i)}break;case\"width\":s(t,c(a.getChildren(),!1),i);break;case\"style\":s(t,p(a.getChildren(),!0),i)}break;case\"padding\":1===m.length?s(t,c(a.getChildren(),!0),i):o(t,m[1],l(a,!0),i)}}}return t}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lint\",[\"require\",\"exports\",\"../languageFacts/facts\",\"./lintRules\",\"../parser/cssNodes\",\"./lintUtil\",\"../utils/arrays\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../languageFacts/facts\"),r=e(\"./lintRules\"),i=e(\"../parser/cssNodes\"),o=e(\"./lintUtil\"),s=e(\"../utils/arrays\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){this.data={}}return e.prototype.add=function(e,t,n){var r=this.data[e];r||(r={nodes:[],names:[]},this.data[e]=r),r.names.push(t),n&&r.nodes.push(n)},e}(),c=function(){function e(e,t){var n=this;this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new l,this.validProperties={};var i=t.getSetting(r.Settings.ValidProperties);Array.isArray(i)&&i.forEach((function(e){if(\"string\"==typeof e){var t=e.trim().toLowerCase();t.length&&(n.validProperties[t]=!0)}}))}return e.entries=function(t,n,r,i){var o=new e(n,r);return t.acceptVisitor(o),o.completeValidations(),o.getEntries(i)},e.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},e.prototype.fetch=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];o.fullPropertyName===t&&n.push(o)}return n},e.prototype.fetchWithValue=function(e,t,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i];if(s.fullPropertyName===t){var a=s.node.getValue();a&&this.findValueInExpression(a,n)&&r.push(s)}}return r},e.prototype.findValueInExpression=function(e,t){var n=!1;return e.accept((function(e){return e.type===i.NodeType.Identifier&&e.matches(t)&&(n=!0),!n})),n},e.prototype.getEntries=function(e){return void 0===e&&(e=i.Level.Warning|i.Level.Error),this.warnings.filter((function(t){return 0!=(t.getLevel()&e)}))},e.prototype.addEntry=function(e,t,n){var r=new i.Marker(e,t,this.settings.getRule(t),n);this.warnings.push(r)},e.prototype.getMissingNames=function(e,t){for(var n=e.slice(0),r=0;r<t.length;r++){var i=n.indexOf(t[r]);-1!==i&&(n[i]=null)}var o=null;for(r=0;r<n.length;r++){var s=n[r];s&&(o=null===o?a(\"namelist.single\",\"'{0}'\",s):a(\"namelist.concatenated\",\"{0}, '{1}'\",o,s))}return o},e.prototype.visitNode=function(e){switch(e.type){case i.NodeType.UnknownAtRule:return this.visitUnknownAtRule(e);case i.NodeType.Keyframe:return this.visitKeyframe(e);case i.NodeType.FontFace:return this.visitFontFace(e);case i.NodeType.Ruleset:return this.visitRuleSet(e);case i.NodeType.SimpleSelector:return this.visitSimpleSelector(e);case i.NodeType.Function:return this.visitFunction(e);case i.NodeType.NumericValue:return this.visitNumericValue(e);case i.NodeType.Import:return this.visitImport(e);case i.NodeType.HexColorValue:return this.visitHexColorValue(e);case i.NodeType.Prio:return this.visitPrio(e)}return!0},e.prototype.completeValidations=function(){this.validateKeyframes()},e.prototype.visitUnknownAtRule=function(e){var t=e.getChild(0);return!!t&&(!n.cssDataManager.getAtDirective(t.getText())&&(this.addEntry(t,r.Rules.UnknownAtRules,\"Unknown at rule \"+t.getText()),!0))},e.prototype.visitKeyframe=function(e){var t=e.getKeyword();if(!t)return!1;var n=t.getText();return this.keyframes.add(e.getName(),n,\"@keyframes\"!==n?t:null),!0},e.prototype.validateKeyframes=function(){var e=[\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"];for(var t in this.keyframes.data){var n=this.keyframes.data[t].names,i=-1===n.indexOf(\"@keyframes\");if(i||1!==n.length){var o=this.getMissingNames(e,n);if(o||i)for(var s=0,l=this.keyframes.data[t].nodes;s<l.length;s++){var c=l[s];if(i){var d=a(\"keyframes.standardrule.missing\",\"Always define standard rule '@keyframes' when defining keyframes.\");this.addEntry(c,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,d)}if(o){d=a(\"keyframes.vendorspecific.missing\",\"Always include all vendor specific rules: Missing: {0}\",o);this.addEntry(c,r.Rules.AllVendorPrefixes,d)}}}}return!0},e.prototype.visitSimpleSelector=function(e){var t=this.documentText.charAt(e.offset);return 1===e.length&&\"*\"===t&&this.addEntry(e,r.Rules.UniversalSelector),\"#\"===t&&this.addEntry(e,r.Rules.AvoidIdSelector),!0},e.prototype.visitImport=function(e){return this.addEntry(e,r.Rules.ImportStatemement),!0},e.prototype.visitRuleSet=function(t){var c=t.getDeclarations();if(!c)return!1;c.hasChildren()||this.addEntry(t.getSelectors(),r.Rules.EmptyRuleSet);for(var d=[],p=0,h=c.getChildren();p<h.length;p++){(R=h[p])instanceof i.Declaration&&d.push(new o.Element(R))}var m=o.default(d);if(m.width){var u=[];if(m.right.value&&(u=s.union(u,m.right.properties)),m.left.value&&(u=s.union(u,m.left.properties)),0!==u.length){for(var f=0,g=u;f<g.length;f++){var b=g[f];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.width.node,r.Rules.BewareOfBoxModelSize)}}if(m.height){u=[];if(m.top.value&&(u=s.union(u,m.top.properties)),m.bottom.value&&(u=s.union(u,m.bottom.properties)),0!==u.length){for(var y=0,v=u;y<v.length;y++){b=v[y];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.height.node,r.Rules.BewareOfBoxModelSize)}}var w=this.fetchWithValue(d,\"display\",\"inline\");if(w.length>0)for(var x=0,S=[\"width\",\"height\",\"margin-top\",\"margin-bottom\",\"float\"];x<S.length;x++)for(var k=S[x],C=this.fetch(d,k),T=0;T<C.length;T++){var F=C[T].node,D=F.getValue();(\"float\"!==k||D&&!D.matches(\"none\"))&&this.addEntry(F,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInline\",\"Property is ignored due to the display. With 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect.\"))}if((w=this.fetchWithValue(d,\"display\",\"inline-block\")).length>0)for(C=this.fetch(d,\"float\"),T=0;T<C.length;T++){var E=C[T].node;(D=E.getValue())&&!D.matches(\"none\")&&this.addEntry(E,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInlineBlock\",\"inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'\"))}if((w=this.fetchWithValue(d,\"display\",\"block\")).length>0)for(C=this.fetch(d,\"vertical-align\"),T=0;T<C.length;T++)this.addEntry(C[T].node,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayBlock\",\"Property is ignored due to the display. With 'display: block', vertical-align should not be used.\"));var z=this.fetch(d,\"float\");for(T=0;T<z.length;T++){var R=z[T];this.isValidPropertyDeclaration(R)||this.addEntry(R.node,r.Rules.AvoidFloat)}for(var _=0;_<d.length;_++){if(\"background\"!==(R=d[_]).fullPropertyName&&!this.validProperties[R.fullPropertyName])if((D=R.node.getValue())&&\"-\"!==this.documentText.charAt(D.offset)){var I=this.fetch(d,R.fullPropertyName);if(I.length>1)for(var P=0;P<I.length;P++){var N=I[P].node.getValue();N&&\"-\"!==this.documentText.charAt(N.offset)&&I[P]!==R&&this.addEntry(R.node,r.Rules.DuplicateDeclarations)}}}if(!t.getSelectors().matches(\":export\")){for(var M=new l,A=!1,O=0,W=d;O<W.length;O++){var L=(R=W[O]).node;if(this.isCSSDeclaration(L)){var j=R.fullPropertyName,U=j.charAt(0);if(\"-\"===U){if(\"-\"!==j.charAt(1)){n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownVendorSpecificProperty);var V=L.getNonPrefixedPropertyName();M.add(V,j,L.getProperty())}}else{var K=j;\"*\"!==U&&\"_\"!==U||(this.addEntry(L.getProperty(),r.Rules.IEStarHack),j=j.substr(1)),n.cssDataManager.isKnownProperty(K)||n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownProperty,a(\"property.unknownproperty.detailed\",\"Unknown property: '{0}'\",j)),M.add(j,j,null)}}else A=!0}if(!A)for(var q in M.data){var B=M.data[q],$=B.names,G=n.cssDataManager.isStandardProperty(q)&&-1===$.indexOf(q);if(G||1!==$.length){for(var H=[],J=(_=0,e.prefixes.length);_<J;_++){var X=e.prefixes[_];n.cssDataManager.isStandardProperty(X+q)&&H.push(X+q)}var Y=this.getMissingNames(H,$);if(Y||G)for(var Z=0,Q=B.nodes;Z<Q.length;Z++){var ee=Q[Z];if(G){var te=a(\"property.standard.missing\",\"Also define the standard property '{0}' for compatibility\",q);this.addEntry(ee,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,te)}if(Y){te=a(\"property.vendorspecific.missing\",\"Always include all vendor specific properties: Missing: {0}\",Y);this.addEntry(ee,r.Rules.AllVendorPrefixes,te)}}}}}return!0},e.prototype.visitPrio=function(e){return this.addEntry(e,r.Rules.AvoidImportant),!0},e.prototype.visitNumericValue=function(e){var t=e.findParent(i.NodeType.Function);if(t&&\"calc\"===t.getName())return!0;var o=e.findParent(i.NodeType.Declaration);if(o&&o.getValue()){var s=e.getValue();if(!s.unit||-1===n.units.length.indexOf(s.unit.toLowerCase()))return!0;0===parseFloat(s.value)&&s.unit&&!this.validProperties[o.getFullPropertyName()]&&this.addEntry(e,r.Rules.ZeroWithUnit)}return!0},e.prototype.visitFontFace=function(e){var t=e.getDeclarations();if(!t)return!1;for(var n=!1,i=!1,o=!1,s=0,a=t.getChildren();s<a.length;s++){var l=a[s];if(this.isCSSDeclaration(l)){var c=l.getProperty().getName().toLowerCase();\"src\"===c&&(n=!0),\"font-family\"===c&&(i=!0)}else o=!0}return o||n&&i||this.addEntry(e,r.Rules.RequiredPropertiesForFontFace),!0},e.prototype.isCSSDeclaration=function(e){if(e instanceof i.Declaration){if(!e.getValue())return!1;var t=e.getProperty();if(!t)return!1;var n=t.getIdentifier();return!(!n||n.containsInterpolation())}return!1},e.prototype.visitHexColorValue=function(e){var t=e.length;return 9!==t&&7!==t&&5!==t&&4!==t&&this.addEntry(e,r.Rules.HexColorLength),!1},e.prototype.visitFunction=function(e){var t=e.getName().toLowerCase(),n=-1,o=0;switch(t){case\"rgb(\":case\"hsl(\":n=3;break;case\"rgba(\":case\"hsla(\":n=4}return-1!==n&&(e.getArguments().accept((function(e){return!(e instanceof i.BinaryExpression)||(o+=1,!1)})),o!==n&&this.addEntry(e,r.Rules.ArgsInColorFunction)),!0},e.prefixes=[\"-ms-\",\"-moz-\",\"-o-\",\"-webkit-\"],e}();t.LintVisitor=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssValidation\",[\"require\",\"exports\",\"../parser/cssNodes\",\"./lintRules\",\"./lint\",\"../cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"./lintRules\"),i=e(\"./lint\"),o=e(\"../cssLanguageTypes\"),s=function(){function e(){}return e.prototype.configure=function(e){this.settings=e},e.prototype.doValidation=function(e,t,s){if(void 0===s&&(s=this.settings),s&&!1===s.validate)return[];var a=[];a.push.apply(a,n.ParseErrorCollector.entries(t)),a.push.apply(a,i.LintVisitor.entries(t,e,new r.LintConfigurationSettings(s&&s.lint)));var l=[];for(var c in r.Rules)l.push(r.Rules[c].id);return a.filter((function(e){return e.getLevel()!==n.Level.Ignore})).map((function(t){var r=o.Range.create(e.positionAt(t.getOffset()),e.positionAt(t.getOffset()+t.getLength())),i=e.languageId;return{code:t.getRule().id,source:i,message:t.getMessage(),severity:t.getLevel()===n.Level.Warning?o.DiagnosticSeverity.Warning:o.DiagnosticSeverity.Error,range:r}}))},e}();t.CSSValidation=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"$\".charCodeAt(0),l=\"#\".charCodeAt(0),c=\"{\".charCodeAt(0),d=\"=\".charCodeAt(0),p=\"!\".charCodeAt(0),h=\"<\".charCodeAt(0),m=\">\".charCodeAt(0),u=\".\".charCodeAt(0),f=\"@\".charCodeAt(0),g=n.TokenType.CustomToken;t.VariableName=g++,t.InterpolationFunction=g++,t.Default=g++,t.EqualsOperator=g++,t.NotEqualsOperator=g++,t.GreaterEqualsOperator=g++,t.SmallerEqualsOperator=g++,t.Ellipsis=g++,t.Module=g++,t.Forward=g++,t.Use=g++;var b=function(e){function g(){return null!==e&&e.apply(this,arguments)||this}return __extends(g,e),g.prototype.scanNext=function(r){if(this.stream.advanceIfChar(a)){var i=[\"$\"];if(this.ident(i))return this.finishToken(r,t.VariableName,i.join(\"\"));this.stream.goBackTo(r)}if(this.stream.advanceIfChars([l,c]))return this.finishToken(r,t.InterpolationFunction);if(this.stream.advanceIfChars([d,d]))return this.finishToken(r,t.EqualsOperator);if(this.stream.advanceIfChars([p,d]))return this.finishToken(r,t.NotEqualsOperator);if(this.stream.advanceIfChar(h))return this.stream.advanceIfChar(d)?this.finishToken(r,t.SmallerEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChar(m))return this.stream.advanceIfChar(d)?this.finishToken(r,t.GreaterEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChars([u,u,u]))return this.finishToken(r,t.Ellipsis);if(this.stream.advanceIfChar(f)){i=[\"@\"];if(this.ident(i)){var o=i.join(\"\");if(\"@forward\"===o)return this.finishToken(r,t.Forward,o);if(\"@use\"===o)return this.finishToken(r,t.Use,o)}this.stream.goBackTo(r)}return e.prototype.scanNext.call(this,r)},g.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},g}(n.Scanner);t.SCSSScanner=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.SCSSIssueType=r,t.SCSSParseError={FromExpected:new r(\"scss-fromexpected\",n(\"expected.from\",\"'from' expected\")),ThroughOrToExpected:new r(\"scss-throughexpected\",n(\"expected.through\",\"'through' or 'to' expected\")),InExpected:new r(\"scss-fromexpected\",n(\"expected.in\",\"'in' expected\"))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssParser\",[\"require\",\"exports\",\"./scssScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./scssErrors\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scssScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./scssErrors\"),a=e(\"./cssErrors\"),l=function(e){function t(){return e.call(this,new n.SCSSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStart=function(){return this._parseForward()||this._parseUse()||e.prototype._parseStylesheetStart.call(this)},t.prototype._parseStylesheetStatement=function(){return this.peek(r.TokenType.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||e.prototype._parseStylesheetAtStatement.call(this):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(o.Import);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);for(;this.accept(r.TokenType.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);return this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(n.VariableName))return null;var t=this.create(o.VariableDeclaration);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,a.ParseError.VariableValueExpected,[],e);for(;this.accept(r.TokenType.Exclamation);){if(!this.peekRegExp(r.TokenType.Ident,/^(default|global)$/))return this.finish(t,a.ParseError.UnknownKeyword);this.consumeToken()}return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(n.VariableName))return null;var e=this.create(o.Variable);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(o.Module);return t.setIdentifier(this._parseIdent([o.ReferenceType.Module]))?this.hasWhitespace()||!this.acceptDelim(\".\")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,a.ParseError.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.TokenType.Ident)&&!this.peek(n.InterpolationFunction)&&!this.peekDelim(\"-\"))return null;var i=this.create(o.Identifier);i.referenceTypes=e,i.isCustomProperty=this.peekRegExp(r.TokenType.Ident,/^--/);for(var s,a=!1;(this.accept(r.TokenType.Ident)||i.addChild((s=void 0,s=t.mark(),t.acceptDelim(\"-\")&&(t.hasWhitespace()||t.acceptDelim(\"-\"),t.hasWhitespace())?(t.restoreAtMark(s),null):t._parseInterpolation()))||a&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)))&&(a=!0,!this.hasWhitespace()););return a?this.finish(i):null},t.prototype._parseTerm=function(){var t=this.create(o.Term);if(t.setExpression(this._parseModuleMember()))return this.finish(t);var n=e.prototype._parseTerm.call(this);return n||(t.setExpression(this._parseVariable())||t.setExpression(this._parseSelectorCombinator())||t.setExpression(this._tryParsePrio())?this.finish(t):null)},t.prototype._parseInterpolation=function(){if(this.peek(n.InterpolationFunction)){var e=this.create(o.Interpolation);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.RightCurlyExpected):this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(n.EqualsOperator)||this.peek(n.NotEqualsOperator)||this.peek(n.GreaterEqualsOperator)||this.peek(n.SmallerEqualsOperator)||this.peekDelim(\">\")||this.peekDelim(\"<\")||this.peekIdent(\"and\")||this.peekIdent(\"or\")||this.peekDelim(\"%\")){var t=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent(\"not\")){var t=this.create(o.Node);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this.create(o.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected,[r.TokenType.Colon],e);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=!1;if(t.setValue(this._parseExpr())&&(n=!0,t.addChild(this._parsePrio())),this.peek(r.TokenType.CurlyL))t.setNestedProperties(this._parseNestedProperties());else if(!n)return this.finish(t,a.ParseError.PropertyValueExpected);return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseNestedProperties=function(){var e=this.create(o.NestedProperties);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword(\"@extend\")){var e=this.create(o.ExtendsReference);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,a.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.TokenType.Exclamation)&&!this.acceptIdent(\"optional\")?this.finish(e,a.ParseError.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim(\"%\")){var e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword(\"@at-root\")){e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.TokenType.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword(\"@debug\")&&!this.peekKeyword(\"@warn\")&&!this.peekKeyword(\"@error\"))return null;var e=this.createNode(o.NodeType.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.TokenType.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword(\"@if\")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(o.IfStatement);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,a.ParseError.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword(\"@else\"))if(this.peekIdent(\"if\"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.TokenType.CurlyL)){var n=this.create(o.ElseStatement);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword(\"@for\"))return null;var t=this.create(o.ForStatement);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent(\"from\")?t.addChild(this._parseBinaryExpr())?this.acceptIdent(\"to\")||this.acceptIdent(\"through\")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.ThroughOrToExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.FromExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword(\"@each\"))return null;var t=this.create(o.EachStatement);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);for(;this.accept(r.TokenType.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);return this.finish(n),this.acceptIdent(\"in\")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.InExpected,[r.TokenType.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword(\"@while\"))return null;var t=this.create(o.WhileStatement);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword(\"@function\"))return null;var e=this.create(o.FunctionDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Function])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);return this.accept(r.TokenType.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword(\"@return\"))return null;var e=this.createNode(o.NodeType.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword(\"@mixin\"))return null;var e=this.create(o.MixinDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Mixin])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(this.accept(r.TokenType.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(o.FunctionParameter);return e.setIdentifier(this._parseVariable())?(this.accept(n.Ellipsis),this.accept(r.TokenType.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword(\"@content\"))return null;var e=this.createNode(o.NodeType.MixinContent);return this.consumeToken(),this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword(\"@include\"))return null;var e=this.create(o.MixinReference);this.consumeToken();var t=this._parseIdent([o.ReferenceType.Mixin]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(\".\")&&!this.hasWhitespace()){var n=this._parseIdent([o.ReferenceType.Mixin]);if(!n)return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);var i=this.create(o.Module);t.referenceTypes=[o.ReferenceType.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}if(this.peek(r.TokenType.CurlyL)){var s=this.create(o.BodyDeclaration);this._parseBody(s,this._parseMixinReferenceBodyStatement.bind(this)),e.setContent(s)}return this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),i=this._parseVariable();if(i)if(this.accept(r.TokenType.Colon))e.setIdentifier(i);else{if(this.accept(n.Ellipsis))return e.setValue(i),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(n.Ellipsis),e.addChild(this._parsePrio()),this.finish(e)):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.Node);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.TokenType.Comma);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,a.ParseError.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(o.ListEntry),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.TokenType.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,a.ParseError.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peek(n.Use))return null;var e=this.create(o.Use);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|with/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")&&!e.setIdentifier(this._parseIdent([o.ReferenceType.Module]))&&!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.IdentifierOrWildcardExpected);if(this.acceptIdent(\"with\")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(o.ModuleConfiguration);return e.setIdentifier(this._parseVariable())?this.accept(r.TokenType.Colon)&&e.setValue(this._parseExpr(!0))?this.finish(e):this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peek(n.Forward))return null;var e=this.create(o.Forward);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|hide|show/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")){var t=this._parseIdent([o.ReferenceType.Forward]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.WildcardExpected)}if((this.peekIdent(\"hide\")||this.peekIdent(\"show\"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,a.ParseError.IdentifierOrVariableExpected)}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(o.ForwardVisibility);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent()););return e.getChildren().length>1?e:null},t}(i.Parser);t.SCSSParser=l}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../parser/cssNodes\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../parser/cssNodes\"),i=e(\"../cssLanguageTypes\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(e){function t(n){var r=e.call(this,\"$\",n)||this;return a(t.scssModuleLoaders),a(t.scssModuleBuiltIns),r}return __extends(t,e),t.prototype.isImportPathParent=function(t){return t===r.NodeType.Forward||t===r.NodeType.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,i){var o,s=n.getParent().type;return s!==r.NodeType.Forward&&s!==r.NodeType.Use||(o=i.items).push.apply(o,t.scssModuleBuiltIns),e.prototype.getCompletionForImportPath.call(this,n,i)},t.prototype.createReplaceFunction=function(){var e=1;return function(n,r){return\"\\\\\"+r+\": ${\"+e+++\":\"+(t.variableDefaults[r]||\"\")+\"}\"}},t.prototype.createFunctionProposals=function(e,t,n,r){for(var o=0,s=e;o<s.length;o++){var a=s[o],l=a.func.replace(/\\[?(\\$\\w+)\\]?/g,this.createReplaceFunction()),c={label:a.func.substr(0,a.func.indexOf(\"(\")),detail:a.func,documentation:a.desc,textEdit:i.TextEdit.replace(this.getCompletionRange(t),l),insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Function};n&&(c.sortText=\"z\"),r.items.push(c)}return r},t.prototype.getCompletionsForSelector=function(n,r,i){return this.createFunctionProposals(t.selectorFuncs,null,!0,i),e.prototype.getCompletionsForSelector.call(this,n,r,i)},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInFuncs;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionForAtDirectives(n),this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.prototype.getCompletionsForExtendsReference=function(e,t,n){for(var o=0,s=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Rule);o<s.length;o++){var a=s[o],l={label:a.name,textEdit:i.TextEdit.replace(this.getCompletionRange(t),a.name),kind:i.CompletionItemKind.Function};n.items.push(l)}return n},t.prototype.getCompletionForAtDirectives=function(e){var n;return(n=e.items).push.apply(n,t.scssAtDirectives),e},t.prototype.getCompletionForTopLevel=function(t){return this.getCompletionForAtDirectives(t),this.getCompletionForModuleLoaders(t),e.prototype.getCompletionForTopLevel.call(this,t),t},t.prototype.getCompletionForModuleLoaders=function(e){var n;return(n=e.items).push.apply(n,t.scssModuleLoaders),e},t.variableDefaults={$red:\"1\",$green:\"2\",$blue:\"3\",$alpha:\"1.0\",$color:\"#000000\",$weight:\"0.5\",$hue:\"0\",$saturation:\"0%\",$lightness:\"0%\",$degrees:\"0\",$amount:\"0\",$string:'\"\"',$substring:'\"s\"',$number:\"0\",$limit:\"1\"},t.colorProposals=[{func:\"red($color)\",desc:o(\"scss.builtin.red\",\"Gets the red component of a color.\")},{func:\"green($color)\",desc:o(\"scss.builtin.green\",\"Gets the green component of a color.\")},{func:\"blue($color)\",desc:o(\"scss.builtin.blue\",\"Gets the blue component of a color.\")},{func:\"mix($color, $color, [$weight])\",desc:o(\"scss.builtin.mix\",\"Mixes two colors together.\")},{func:\"hue($color)\",desc:o(\"scss.builtin.hue\",\"Gets the hue component of a color.\")},{func:\"saturation($color)\",desc:o(\"scss.builtin.saturation\",\"Gets the saturation component of a color.\")},{func:\"lightness($color)\",desc:o(\"scss.builtin.lightness\",\"Gets the lightness component of a color.\")},{func:\"adjust-hue($color, $degrees)\",desc:o(\"scss.builtin.adjust-hue\",\"Changes the hue of a color.\")},{func:\"lighten($color, $amount)\",desc:o(\"scss.builtin.lighten\",\"Makes a color lighter.\")},{func:\"darken($color, $amount)\",desc:o(\"scss.builtin.darken\",\"Makes a color darker.\")},{func:\"saturate($color, $amount)\",desc:o(\"scss.builtin.saturate\",\"Makes a color more saturated.\")},{func:\"desaturate($color, $amount)\",desc:o(\"scss.builtin.desaturate\",\"Makes a color less saturated.\")},{func:\"grayscale($color)\",desc:o(\"scss.builtin.grayscale\",\"Converts a color to grayscale.\")},{func:\"complement($color)\",desc:o(\"scss.builtin.complement\",\"Returns the complement of a color.\")},{func:\"invert($color)\",desc:o(\"scss.builtin.invert\",\"Returns the inverse of a color.\")},{func:\"alpha($color)\",desc:o(\"scss.builtin.alpha\",\"Gets the opacity component of a color.\")},{func:\"opacity($color)\",desc:\"Gets the alpha component (opacity) of a color.\"},{func:\"rgba($color, $alpha)\",desc:o(\"scss.builtin.rgba\",\"Changes the alpha component for a color.\")},{func:\"opacify($color, $amount)\",desc:o(\"scss.builtin.opacify\",\"Makes a color more opaque.\")},{func:\"fade-in($color, $amount)\",desc:o(\"scss.builtin.fade-in\",\"Makes a color more opaque.\")},{func:\"transparentize($color, $amount)\",desc:o(\"scss.builtin.transparentize\",\"Makes a color more transparent.\")},{func:\"fade-out($color, $amount)\",desc:o(\"scss.builtin.fade-out\",\"Makes a color more transparent.\")},{func:\"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.adjust-color\",\"Increases or decreases one or more components of a color.\")},{func:\"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.scale-color\",\"Fluidly scales one or more properties of a color.\")},{func:\"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.change-color\",\"Changes one or more properties of a color.\")},{func:\"ie-hex-str($color)\",desc:o(\"scss.builtin.ie-hex-str\",\"Converts a color into the format understood by IE filters.\")}],t.selectorFuncs=[{func:\"selector-nest($selectors…)\",desc:o(\"scss.builtin.selector-nest\",\"Nests selector beneath one another like they would be nested in the stylesheet.\")},{func:\"selector-append($selectors…)\",desc:o(\"scss.builtin.selector-append\",\"Appends selectors to one another without spaces in between.\")},{func:\"selector-extend($selector, $extendee, $extender)\",desc:o(\"scss.builtin.selector-extend\",\"Extends $extendee with $extender within $selector.\")},{func:\"selector-replace($selector, $original, $replacement)\",desc:o(\"scss.builtin.selector-replace\",\"Replaces $original with $replacement within $selector.\")},{func:\"selector-unify($selector1, $selector2)\",desc:o(\"scss.builtin.selector-unify\",\"Unifies two selectors to produce a selector that matches elements matched by both.\")},{func:\"is-superselector($super, $sub)\",desc:o(\"scss.builtin.is-superselector\",\"Returns whether $super matches all the elements $sub does, and possibly more.\")},{func:\"simple-selectors($selector)\",desc:o(\"scss.builtin.simple-selectors\",\"Returns the simple selectors that comprise a compound selector.\")},{func:\"selector-parse($selector)\",desc:o(\"scss.builtin.selector-parse\",\"Parses a selector into the format returned by &.\")}],t.builtInFuncs=[{func:\"unquote($string)\",desc:o(\"scss.builtin.unquote\",\"Removes quotes from a string.\")},{func:\"quote($string)\",desc:o(\"scss.builtin.quote\",\"Adds quotes to a string.\")},{func:\"str-length($string)\",desc:o(\"scss.builtin.str-length\",\"Returns the number of characters in a string.\")},{func:\"str-insert($string, $insert, $index)\",desc:o(\"scss.builtin.str-insert\",\"Inserts $insert into $string at $index.\")},{func:\"str-index($string, $substring)\",desc:o(\"scss.builtin.str-index\",\"Returns the index of the first occurance of $substring in $string.\")},{func:\"str-slice($string, $start-at, [$end-at])\",desc:o(\"scss.builtin.str-slice\",\"Extracts a substring from $string.\")},{func:\"to-upper-case($string)\",desc:o(\"scss.builtin.to-upper-case\",\"Converts a string to upper case.\")},{func:\"to-lower-case($string)\",desc:o(\"scss.builtin.to-lower-case\",\"Converts a string to lower case.\")},{func:\"percentage($number)\",desc:o(\"scss.builtin.percentage\",\"Converts a unitless number to a percentage.\"),type:\"percentage\"},{func:\"round($number)\",desc:o(\"scss.builtin.round\",\"Rounds a number to the nearest whole number.\")},{func:\"ceil($number)\",desc:o(\"scss.builtin.ceil\",\"Rounds a number up to the next whole number.\")},{func:\"floor($number)\",desc:o(\"scss.builtin.floor\",\"Rounds a number down to the previous whole number.\")},{func:\"abs($number)\",desc:o(\"scss.builtin.abs\",\"Returns the absolute value of a number.\")},{func:\"min($numbers)\",desc:o(\"scss.builtin.min\",\"Finds the minimum of several numbers.\")},{func:\"max($numbers)\",desc:o(\"scss.builtin.max\",\"Finds the maximum of several numbers.\")},{func:\"random([$limit])\",desc:o(\"scss.builtin.random\",\"Returns a random number.\")},{func:\"length($list)\",desc:o(\"scss.builtin.length\",\"Returns the length of a list.\")},{func:\"nth($list, $n)\",desc:o(\"scss.builtin.nth\",\"Returns a specific item in a list.\")},{func:\"set-nth($list, $n, $value)\",desc:o(\"scss.builtin.set-nth\",\"Replaces the nth item in a list.\")},{func:\"join($list1, $list2, [$separator])\",desc:o(\"scss.builtin.join\",\"Joins together two lists into one.\")},{func:\"append($list1, $val, [$separator])\",desc:o(\"scss.builtin.append\",\"Appends a single value onto the end of a list.\")},{func:\"zip($lists)\",desc:o(\"scss.builtin.zip\",\"Combines several lists into a single multidimensional list.\")},{func:\"index($list, $value)\",desc:o(\"scss.builtin.index\",\"Returns the position of a value within a list.\")},{func:\"list-separator(#list)\",desc:o(\"scss.builtin.list-separator\",\"Returns the separator of a list.\")},{func:\"map-get($map, $key)\",desc:o(\"scss.builtin.map-get\",\"Returns the value in a map associated with a given key.\")},{func:\"map-merge($map1, $map2)\",desc:o(\"scss.builtin.map-merge\",\"Merges two maps together into a new map.\")},{func:\"map-remove($map, $keys)\",desc:o(\"scss.builtin.map-remove\",\"Returns a new map with keys removed.\")},{func:\"map-keys($map)\",desc:o(\"scss.builtin.map-keys\",\"Returns a list of all keys in a map.\")},{func:\"map-values($map)\",desc:o(\"scss.builtin.map-values\",\"Returns a list of all values in a map.\")},{func:\"map-has-key($map, $key)\",desc:o(\"scss.builtin.map-has-key\",\"Returns whether a map has a value associated with a given key.\")},{func:\"keywords($args)\",desc:o(\"scss.builtin.keywords\",\"Returns the keywords passed to a function that takes variable arguments.\")},{func:\"feature-exists($feature)\",desc:o(\"scss.builtin.feature-exists\",\"Returns whether a feature exists in the current Sass runtime.\")},{func:\"variable-exists($name)\",desc:o(\"scss.builtin.variable-exists\",\"Returns whether a variable with the given name exists in the current scope.\")},{func:\"global-variable-exists($name)\",desc:o(\"scss.builtin.global-variable-exists\",\"Returns whether a variable with the given name exists in the global scope.\")},{func:\"function-exists($name)\",desc:o(\"scss.builtin.function-exists\",\"Returns whether a function with the given name exists.\")},{func:\"mixin-exists($name)\",desc:o(\"scss.builtin.mixin-exists\",\"Returns whether a mixin with the given name exists.\")},{func:\"inspect($value)\",desc:o(\"scss.builtin.inspect\",\"Returns the string representation of a value as it would be represented in Sass.\")},{func:\"type-of($value)\",desc:o(\"scss.builtin.type-of\",\"Returns the type of a value.\")},{func:\"unit($number)\",desc:o(\"scss.builtin.unit\",\"Returns the unit(s) associated with a number.\")},{func:\"unitless($number)\",desc:o(\"scss.builtin.unitless\",\"Returns whether a number has units.\")},{func:\"comparable($number1, $number2)\",desc:o(\"scss.builtin.comparable\",\"Returns whether two numbers can be added, subtracted, or compared.\")},{func:\"call($name, $args…)\",desc:o(\"scss.builtin.call\",\"Dynamically calls a Sass function.\")}],t.scssAtDirectives=[{label:\"@extend\",documentation:o(\"scss.builtin.@extend\",\"Inherits the styles of another selector.\"),kind:i.CompletionItemKind.Keyword},{label:\"@at-root\",documentation:o(\"scss.builtin.@at-root\",\"Causes one or more rules to be emitted at the root of the document.\"),kind:i.CompletionItemKind.Keyword},{label:\"@debug\",documentation:o(\"scss.builtin.@debug\",\"Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files.\"),kind:i.CompletionItemKind.Keyword},{label:\"@warn\",documentation:o(\"scss.builtin.@warn\",\"Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option.\"),kind:i.CompletionItemKind.Keyword},{label:\"@error\",documentation:o(\"scss.builtin.@error\",\"Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions.\"),kind:i.CompletionItemKind.Keyword},{label:\"@if\",documentation:o(\"scss.builtin.@if\",\"Includes the body if the expression does not evaluate to `false` or `null`.\"),insertText:\"@if ${1:expr} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@for\",documentation:o(\"scss.builtin.@for\",\"For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause.\"),insertText:\"@for \\\\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@each\",documentation:o(\"scss.builtin.@each\",\"Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`.\"),insertText:\"@each \\\\$${1:var} in ${2:list} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@while\",documentation:o(\"scss.builtin.@while\",\"While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`.\"),insertText:\"@while ${1:condition} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@mixin\",documentation:o(\"scss.builtin.@mixin\",\"Defines styles that can be re-used throughout the stylesheet with `@include`.\"),insertText:\"@mixin ${1:name} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@include\",documentation:o(\"scss.builtin.@include\",\"Includes the styles defined by another mixin into the current rule.\"),kind:i.CompletionItemKind.Keyword},{label:\"@function\",documentation:o(\"scss.builtin.@function\",\"Defines complex operations that can be re-used throughout stylesheets.\"),kind:i.CompletionItemKind.Keyword}],t.scssModuleLoaders=[{label:\"@use\",documentation:o(\"scss.builtin.@use\",\"Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/use\"}],insertText:\"@use '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@forward\",documentation:o(\"scss.builtin.@forward\",\"Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/forward\"}],insertText:\"@forward '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword}],t.scssModuleBuiltIns=[{label:\"sass:math\",documentation:o(\"scss.builtin.sass:math\",\"Provides functions that operate on numbers.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/math\"}],kind:i.CompletionItemKind.Module},{label:\"sass:string\",documentation:o(\"scss.builtin.sass:string\",\"Makes it easy to combine, search, or split apart strings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/string\"}],kind:i.CompletionItemKind.Module},{label:\"sass:color\",documentation:o(\"scss.builtin.sass:color\",\"Generates new colors based on existing ones, making it easy to build color themes.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/color\"}],kind:i.CompletionItemKind.Module},{label:\"sass:list\",documentation:o(\"scss.builtin.sass:list\",\"Lets you access and modify values in lists.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/list\"}],kind:i.CompletionItemKind.Module},{label:\"sass:map\",documentation:o(\"scss.builtin.sass:map\",\"Makes it possible to look up the value associated with a key in a map, and much more.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/map\"}],kind:i.CompletionItemKind.Module},{label:\"sass:selector\",documentation:o(\"scss.builtin.sass:selector\",\"Provides access to Sass’s powerful selector engine.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/selector\"}],kind:i.CompletionItemKind.Module},{label:\"sass:meta\",documentation:o(\"scss.builtin.sass:meta\",\"Exposes the details of Sass’s inner workings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/meta\"}],kind:i.CompletionItemKind.Module}],t}(n.CSSCompletion);function a(e){e.forEach((function(e){if(e.documentation&&e.references&&e.references.length>0){var t=\"string\"==typeof e.documentation?{kind:\"markdown\",value:e.documentation}:{kind:\"markdown\",value:e.documentation.value};t.value+=\"\\n\\n\",t.value+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"),e.documentation=t}}))}t.SCSSCompletion=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"`\".charCodeAt(0),l=\".\".charCodeAt(0),c=n.TokenType.CustomToken;t.Ellipsis=c++;var d=function(e){function c(){return null!==e&&e.apply(this,arguments)||this}return __extends(c,e),c.prototype.scanNext=function(n){var r=this.escapedJavaScript();return null!==r?this.finishToken(n,r):this.stream.advanceIfChars([l,l,l])?this.finishToken(n,t.Ellipsis):e.prototype.scanNext.call(this,n)},c.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},c.prototype.escapedJavaScript=function(){return this.stream.peekChar()===a?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==a})),this.stream.advanceIfChar(a)?n.TokenType.EscapedJavaScript:n.TokenType.BadEscapedJavaScript):null},c}(n.Scanner);t.LESSScanner=d}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessParser\",[\"require\",\"exports\",\"./lessScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./lessScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./cssErrors\"),a=function(e){function t(){return e.call(this,new n.LESSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\")&&!this.peekKeyword(\"@import-once\"))return null;var e=this.create(o.Import);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(!this.accept(r.TokenType.Ident))return this.finish(e,s.ParseError.IdentifierExpected,[r.TokenType.SemiColon]);do{if(!this.accept(r.TokenType.Comma))break}while(this.accept(r.TokenType.Ident));if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,s.ParseError.RightParenthesisExpected,[r.TokenType.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,s.ParseError.URIOrStringExpected,[r.TokenType.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword(\"@plugin\"))return null;var e=this.createNode(o.NodeType.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.TokenType.SemiColon)?this.finish(e):this.finish(e,s.ParseError.SemiColonExpected):this.finish(e,s.ParseError.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(o.MediaQuery);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(o.VariableDeclaration),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.TokenType.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,s.ParseError.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(o.MixinDeclaration);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);if(!this.accept(r.TokenType.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.TokenType.CurlyL))return null;var n=this.create(o.BodyDeclaration);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.TokenType.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(o.Node),t=this.mark();return this.accept(r.TokenType.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.TokenType.BracketR)||this.accept(r.TokenType.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim(\"$\");if(!this.peekDelim(\"@\")&&!n&&!this.peek(r.TokenType.AtKeyword))return null;for(var i=this.create(o.Variable),s=this.mark();this.acceptDelim(\"@\")||!e&&this.acceptDelim(\"$\");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return(this.accept(r.TokenType.AtKeyword)||this.accept(r.TokenType.Ident))&&(t||!this.peek(r.TokenType.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(s),null)},t.prototype._parseTerm=function(){var t=e.prototype._parseTerm.call(this);return t||((t=this.create(o.Term)).setExpression(this._parseVariable())||t.setExpression(this._parseEscaped())||t.setExpression(this._tryParseMixinReference(!1))?this.finish(t):null)},t.prototype._parseEscaped=function(){if(this.peek(r.TokenType.EscapedJavaScript)||this.peek(r.TokenType.BadEscapedJavaScript)){var e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim(\"~\")){e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.accept(r.TokenType.String)||this.accept(r.TokenType.EscapedJavaScript)?this.finish(e):this.finish(e,s.ParseError.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(\">\")){var e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}if(this.peekDelim(\"=\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"<\"),e}if(this.peekDelim(\"<\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseUnknownAtRule():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([o.ReferenceType.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(o.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.TokenType.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(o.NodeType.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(o.Identifier);r.isCustomProperty=this.acceptDelim(\"-\")&&this.acceptDelim(\"-\");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim(\"+\"),this.hasWhitespace()||this.acceptIdent(\"_\")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.TokenType.Ident)||this.peekDelim(\"@\")||this.peekDelim(\"$\")||this.peekDelim(\"-\")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim(\"-\")&&(n.hasWhitespace()||n.acceptDelim(\"-\"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.TokenType.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim(\"@\")||this.peekDelim(\"$\")){var t=this.createNode(o.NodeType.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.TokenType.CurlyR)?this.finish(t):this.finish(t,s.ParseError.RightCurlyExpected):this.finish(t,s.ParseError.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(o.MixinDeclaration);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);return this.accept(r.TokenType.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.TokenType.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(e=this.create(o.Identifier),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.TokenType.Hash))return null;e=this.create(o.Identifier),this.consumeToken()}return e.referenceTypes=[o.ReferenceType.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.TokenType.Colon))return null;var t=this.mark(),n=this.create(o.ExtendsReference);return this.consumeToken(),this.acceptIdent(\"extend\")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim(\"&\"))return null;var e=this.mark(),t=this.create(o.ExtendsReference);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.TokenType.Colon)&&this.acceptIdent(\"extend\")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,s.ParseError.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.TokenType.AtKeyword))return null;var e=this.mark(),t=this.create(o.MixinReference);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)?this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(o.MixinReference),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(\">\");var a=this._parseMixinDeclarationIdentifier();if(!a)break;n.getNamespaces().addChild(i),i=a}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var l=!1;if(!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)){if(l=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,s.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(n,s.ParseError.RightParenthesisExpected);i.referenceTypes=[o.ReferenceType.Mixin]}else i.referenceTypes=[o.ReferenceType.Mixin,o.ReferenceType.Rule];return this.peek(r.TokenType.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),l||this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.CurlyR)||this.peek(r.TokenType.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.TokenType.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(o.FunctionParameter);if(this.peekKeyword(\"@rest\")){var t=this.create(o.Node);return this.consumeToken(),this.accept(n.Ellipsis)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,s.ParseError.DotExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR])}if(this.peek(n.Ellipsis)){var i=this.create(o.Node);return this.consumeToken(),e.setIdentifier(this.finish(i)),this.finish(e)}var a=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.TokenType.Colon),a=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||a?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent(\"when\"))return null;var e=this.create(o.LessGuard);if(this.consumeToken(),e.isNegated=this.acceptIdent(\"not\"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);for(;this.acceptIdent(\"and\")||this.accept(r.TokenType.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.GuardCondition);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(o.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,s.ParseError.ExpressionExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim(\"%\")){var t=this.create(o.Identifier);return t.referenceTypes=[o.ReferenceType.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t}(i.Parser);t.LESSParser=a}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lessCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../cssLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),o=function(e){function t(t){return e.call(this,\"@\",t)||this}return __extends(t,e),t.prototype.createFunctionProposals=function(e,t,n,i){for(var o=0,s=e;o<s.length;o++){var a=s[o],l={label:a.name,detail:a.example,documentation:a.description,textEdit:r.TextEdit.replace(this.getCompletionRange(t),a.name+\"($0)\"),insertTextFormat:r.InsertTextFormat.Snippet,kind:r.CompletionItemKind.Function};n&&(l.sortText=\"z\"),i.items.push(l)}return i},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInProposals;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.builtInProposals=[{name:\"if\",example:\"if(condition, trueValue [, falseValue]);\",description:i(\"less.builtin.if\",\"returns one of two values depending on a condition.\")},{name:\"boolean\",example:\"boolean(condition);\",description:i(\"less.builtin.boolean\",'\"store\" a boolean test for later evaluation in a guard or if().')},{name:\"length\",example:\"length(@list);\",description:i(\"less.builtin.length\",\"returns the number of elements in a value list\")},{name:\"extract\",example:\"extract(@list, index);\",description:i(\"less.builtin.extract\",\"returns a value at the specified position in the list\")},{name:\"range\",example:\"range([start, ] end [, step]);\",description:i(\"less.builtin.range\",\"generate a list spanning a range of values\")},{name:\"each\",example:\"each(@list, ruleset);\",description:i(\"less.builtin.each\",\"bind the evaluation of a ruleset to each member of a list.\")},{name:\"escape\",example:\"escape(@string);\",description:i(\"less.builtin.escape\",\"URL encodes a string\")},{name:\"e\",example:\"e(@string);\",description:i(\"less.builtin.e\",\"escape string content\")},{name:\"replace\",example:\"replace(@string, @pattern, @replacement[, @flags]);\",description:i(\"less.builtin.replace\",\"string replace\")},{name:\"unit\",example:\"unit(@dimension, [@unit: '']);\",description:i(\"less.builtin.unit\",\"remove or change the unit of a dimension\")},{name:\"color\",example:\"color(@string);\",description:i(\"less.builtin.color\",\"parses a string to a color\"),type:\"color\"},{name:\"convert\",example:\"convert(@value, unit);\",description:i(\"less.builtin.convert\",\"converts numbers from one type into another\")},{name:\"data-uri\",example:\"data-uri([mimetype,] url);\",description:i(\"less.builtin.data-uri\",\"inlines a resource and falls back to `url()`\"),type:\"url\"},{name:\"abs\",description:i(\"less.builtin.abs\",\"absolute value of a number\"),example:\"abs(number);\"},{name:\"acos\",description:i(\"less.builtin.acos\",\"arccosine - inverse of cosine function\"),example:\"acos(number);\"},{name:\"asin\",description:i(\"less.builtin.asin\",\"arcsine - inverse of sine function\"),example:\"asin(number);\"},{name:\"ceil\",example:\"ceil(@number);\",description:i(\"less.builtin.ceil\",\"rounds up to an integer\")},{name:\"cos\",description:i(\"less.builtin.cos\",\"cosine function\"),example:\"cos(number);\"},{name:\"floor\",description:i(\"less.builtin.floor\",\"rounds down to an integer\"),example:\"floor(@number);\"},{name:\"percentage\",description:i(\"less.builtin.percentage\",\"converts to a %, e.g. 0.5 > 50%\"),example:\"percentage(@number);\",type:\"percentage\"},{name:\"round\",description:i(\"less.builtin.round\",\"rounds a number to a number of places\"),example:\"round(number, [places: 0]);\"},{name:\"sqrt\",description:i(\"less.builtin.sqrt\",\"calculates square root of a number\"),example:\"sqrt(number);\"},{name:\"sin\",description:i(\"less.builtin.sin\",\"sine function\"),example:\"sin(number);\"},{name:\"tan\",description:i(\"less.builtin.tan\",\"tangent function\"),example:\"tan(number);\"},{name:\"atan\",description:i(\"less.builtin.atan\",\"arctangent - inverse of tangent function\"),example:\"atan(number);\"},{name:\"pi\",description:i(\"less.builtin.pi\",\"returns pi\"),example:\"pi();\"},{name:\"pow\",description:i(\"less.builtin.pow\",\"first argument raised to the power of the second argument\"),example:\"pow(@base, @exponent);\"},{name:\"mod\",description:i(\"less.builtin.mod\",\"first argument modulus second argument\"),example:\"mod(number, number);\"},{name:\"min\",description:i(\"less.builtin.min\",\"returns the lowest of one or more values\"),example:\"min(@x, @y);\"},{name:\"max\",description:i(\"less.builtin.max\",\"returns the lowest of one or more values\"),example:\"max(@x, @y);\"}],t.colorProposals=[{name:\"argb\",example:\"argb(@color);\",description:i(\"less.builtin.argb\",\"creates a #AARRGGBB\")},{name:\"hsl\",example:\"hsl(@hue, @saturation, @lightness);\",description:i(\"less.builtin.hsl\",\"creates a color\")},{name:\"hsla\",example:\"hsla(@hue, @saturation, @lightness, @alpha);\",description:i(\"less.builtin.hsla\",\"creates a color\")},{name:\"hsv\",example:\"hsv(@hue, @saturation, @value);\",description:i(\"less.builtin.hsv\",\"creates a color\")},{name:\"hsva\",example:\"hsva(@hue, @saturation, @value, @alpha);\",description:i(\"less.builtin.hsva\",\"creates a color\")},{name:\"hue\",example:\"hue(@color);\",description:i(\"less.builtin.hue\",\"returns the `hue` channel of `@color` in the HSL space\")},{name:\"saturation\",example:\"saturation(@color);\",description:i(\"less.builtin.saturation\",\"returns the `saturation` channel of `@color` in the HSL space\")},{name:\"lightness\",example:\"lightness(@color);\",description:i(\"less.builtin.lightness\",\"returns the `lightness` channel of `@color` in the HSL space\")},{name:\"hsvhue\",example:\"hsvhue(@color);\",description:i(\"less.builtin.hsvhue\",\"returns the `hue` channel of `@color` in the HSV space\")},{name:\"hsvsaturation\",example:\"hsvsaturation(@color);\",description:i(\"less.builtin.hsvsaturation\",\"returns the `saturation` channel of `@color` in the HSV space\")},{name:\"hsvvalue\",example:\"hsvvalue(@color);\",description:i(\"less.builtin.hsvvalue\",\"returns the `value` channel of `@color` in the HSV space\")},{name:\"red\",example:\"red(@color);\",description:i(\"less.builtin.red\",\"returns the `red` channel of `@color`\")},{name:\"green\",example:\"green(@color);\",description:i(\"less.builtin.green\",\"returns the `green` channel of `@color`\")},{name:\"blue\",example:\"blue(@color);\",description:i(\"less.builtin.blue\",\"returns the `blue` channel of `@color`\")},{name:\"alpha\",example:\"alpha(@color);\",description:i(\"less.builtin.alpha\",\"returns the `alpha` channel of `@color`\")},{name:\"luma\",example:\"luma(@color);\",description:i(\"less.builtin.luma\",\"returns the `luma` value (perceptual brightness) of `@color`\")},{name:\"saturate\",example:\"saturate(@color, 10%);\",description:i(\"less.builtin.saturate\",\"return `@color` 10% points more saturated\")},{name:\"desaturate\",example:\"desaturate(@color, 10%);\",description:i(\"less.builtin.desaturate\",\"return `@color` 10% points less saturated\")},{name:\"lighten\",example:\"lighten(@color, 10%);\",description:i(\"less.builtin.lighten\",\"return `@color` 10% points lighter\")},{name:\"darken\",example:\"darken(@color, 10%);\",description:i(\"less.builtin.darken\",\"return `@color` 10% points darker\")},{name:\"fadein\",example:\"fadein(@color, 10%);\",description:i(\"less.builtin.fadein\",\"return `@color` 10% points less transparent\")},{name:\"fadeout\",example:\"fadeout(@color, 10%);\",description:i(\"less.builtin.fadeout\",\"return `@color` 10% points more transparent\")},{name:\"fade\",example:\"fade(@color, 50%);\",description:i(\"less.builtin.fade\",\"return `@color` with 50% transparency\")},{name:\"spin\",example:\"spin(@color, 10);\",description:i(\"less.builtin.spin\",\"return `@color` with a 10 degree larger in hue\")},{name:\"mix\",example:\"mix(@color1, @color2, [@weight: 50%]);\",description:i(\"less.builtin.mix\",\"return a mix of `@color1` and `@color2`\")},{name:\"greyscale\",example:\"greyscale(@color);\",description:i(\"less.builtin.greyscale\",\"returns a grey, 100% desaturated color\")},{name:\"contrast\",example:\"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);\",description:i(\"less.builtin.contrast\",\"return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes\")},{name:\"multiply\",example:\"multiply(@color1, @color2);\"},{name:\"screen\",example:\"screen(@color1, @color2);\"},{name:\"overlay\",example:\"overlay(@color1, @color2);\"},{name:\"softlight\",example:\"softlight(@color1, @color2);\"},{name:\"hardlight\",example:\"hardlight(@color1, @color2);\"},{name:\"difference\",example:\"difference(@color1, @color2);\"},{name:\"exclusion\",example:\"exclusion(@color1, @color2);\"},{name:\"average\",example:\"average(@color1, @color2);\"},{name:\"negation\",example:\"negation(@color1, @color2);\"}],t}(n.CSSCompletion);t.LESSCompletion=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssFolding\",[\"require\",\"exports\",\"../parser/cssScanner\",\"../parser/scssScanner\",\"../parser/lessScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssScanner\"),r=e(\"../parser/scssScanner\"),i=e(\"../parser/lessScanner\");function o(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}t.getFoldingRanges=function(e,t){return function(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine<o&&o<e.endLine||(i.push(e),o=e.endLine)})),i.length<n?i:i.slice(0,n)}(function(e){function t(t){return e.positionAt(t.offset).line}function s(t){return e.positionAt(t.offset+t.len).line}var a=[],l=[],c=function(){switch(e.languageId){case\"scss\":return new r.SCSSScanner;case\"less\":return new i.LESSScanner;default:return new n.Scanner}}();c.ignoreComment=!1,c.setSource(e.getText());var d=c.scan(),p=null,h=function(){switch(d.type){case n.TokenType.CurlyL:case r.InterpolationFunction:l.push({line:t(d),type:\"brace\",isStart:!0});break;case n.TokenType.CurlyR:if(0!==l.length){if(!(u=o(l,\"brace\")))break;var i=s(d);\"brace\"===u.type&&(p&&s(p)!==i&&i--,u.line!==i&&a.push({startLine:u.line,endLine:i,kind:void 0}))}break;case n.TokenType.Comment:var h=function(e){return\"#region\"===e?{line:t(d),type:\"comment\",isStart:!0}:{line:s(d),type:\"comment\",isStart:!1}},m=function(t){var n=t.text.match(/^\\s*\\/\\*\\s*(#region|#endregion)\\b\\s*(.*?)\\s*\\*\\//);if(n)return h(n[1]);if(\"scss\"===e.languageId||\"less\"===e.languageId){var r=t.text.match(/^\\s*\\/\\/\\s*(#region|#endregion)\\b\\s*(.*?)\\s*/);if(r)return h(r[1])}return null}(d);if(m)if(m.isStart)l.push(m);else{var u;if(!(u=o(l,\"comment\")))break;\"comment\"===u.type&&u.line!==m.line&&a.push({startLine:u.line,endLine:m.line,kind:\"region\"})}else{var f=function(e,n){var r=t(e),i=s(e);return r!==i?{startLine:r,endLine:i,kind:n}:null}(d,\"comment\");f&&a.push(f)}}p=d,d=c.scan()};for(;d.type!==n.TokenType.EOF;)h();return a}(e),t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssSelectionRange\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"../parser/cssNodes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"../parser/cssNodes\");t.getSelectionRanges=function(e,t,i){return t.map((function(t){for(var o=function(t){var n=i.findChildAtOffset(e.offsetAt(t),!0);if(!n)return[];var o=[];for(;n;)n.parent&&n.offset===n.parent.offset&&n.end===n.parent.end?n=n.parent:(n.type===r.NodeType.Declarations?o.push([n.offset+1,n.end-1]):o.push([n.offset,n.end]),n=n.parent);return o}(t),s=void 0,a=o.length-1;a>=0;a--)s=n.SelectionRange.create(n.Range.create(e.positionAt(o[a][0]),e.positionAt(o[a][1])),s);return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var i=navigator.userAgent;r=i.indexOf(\"Windows\")>=0}var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,i,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=i||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===i?i=this.query:null===i&&(i=\"\"),void 0===o?o=this.fragment:null===o&&(o=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new h(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new h(\"file\",t,e,\"\",\"\")},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===p?t.fsPath:null,n}return t},e}();t.URI=d;var p=r?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=p),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),m=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function u(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=m[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:u,r=\"\",i=e.scheme,o=e.authority,s=e.path,a=e.query,c=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var d=o.indexOf(\"@\");if(-1!==d){var p=o.substr(0,d);o=o.substr(d+1),-1===(d=p.indexOf(\":\"))?r+=n(p,!1):(r+=n(p.substr(0,d),!1),r+=\":\",r+=n(p.substr(d+1),!1)),r+=\"@\"}-1===(d=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,d),!1),r+=o.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}r+=n(s,!0)}return a&&(r+=\"?\",r+=n(a,!1)),c&&(r+=\"#\",r+=t?c:u(c,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssNavigation\",[\"require\",\"exports\",\"./cssNavigation\",\"../cssLanguageTypes\",\"../parser/cssNodes\",\"vscode-uri\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNavigation\"),r=e(\"../cssLanguageTypes\"),i=e(\"../parser/cssNodes\"),o=e(\"vscode-uri\"),s=function(e){function t(t){var n=e.call(this)||this;return n.fileSystemProvider=t,n}return __extends(t,e),t.prototype.isRawStringDocumentLinkNode=function(t){return e.prototype.isRawStringDocumentLinkNode.call(this,t)||t.type===i.NodeType.Use||t.type===i.NodeType.Forward},t.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){function i(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){switch(n.label){case 0:if(!a)return[2,!1];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,a.stat(e)];case 2:return(t=n.sent()).type===r.FileType.Unknown&&-1===t.size?[2,!1]:[2,!0];case 3:return n.sent(),[2,!1];case 4:return[2]}}))}))}var s,a,l,c,d,p,h,m;return __generator(this,(function(r){switch(r.label){case 0:if(s=this.findDocumentLinks(e,t,n),a=this.fileSystemProvider,l=[],!a)return[3,9];c=0,r.label=1;case 1:if(!(c<s.length))return[3,8];if(!(d=s[c].target))return[3,7];p=null;try{p=o.URI.parse(d)}catch(e){if(e instanceof URIError)return[3,7];throw e}return(h=function(e){if(\"\"!==e.path&&!e.path.endsWith(\".scss\")&&!e.path.endsWith(\".css\")){if(e.path.endsWith(\"/\"))return[e.with({path:e.path+\"index.scss\"}).toString(),e.with({path:e.path+\"_index.scss\"}).toString()];var t=e.path.split(\"/\"),n=t[t.length-1],r=e.path.slice(0,-n.length);if(n.startsWith(\"_\"))return e.path.endsWith(\".scss\")?void 0:[e.with({path:e.path+\".scss\"}).toString()];var i=n+\".scss\",o=function(t){return e.with({path:r+t}).toString()};return[o(i),o(\"_\"+i),o(i.slice(0,-5)+\"/index.scss\"),o(i.slice(0,-5)+\"/_index.scss\"),o(i.slice(0,-5)+\".css\")]}}(p))?[3,3]:[4,i(d)];case 2:return r.sent()&&l.push(s[c]),[3,7];case 3:m=0,r.label=4;case 4:return m<h.length?[4,i(h[m])]:[3,7];case 5:if(r.sent())return l.push(__assign(__assign({},s[c]),{target:h[m]})),[3,7];r.label=6;case 6:return m++,[3,4];case 7:return c++,[3,1];case 8:return[3,10];case 9:l.push.apply(l,s),r.label=10;case 10:return[2,l]}}))}))},t}(n.CSSNavigation);t.SCSSNavigation=s})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageService\",[\"require\",\"exports\",\"./parser/cssParser\",\"./services/cssCompletion\",\"./services/cssHover\",\"./services/cssNavigation\",\"./services/cssCodeActions\",\"./services/cssValidation\",\"./parser/scssParser\",\"./services/scssCompletion\",\"./parser/lessParser\",\"./services/lessCompletion\",\"./services/cssFolding\",\"./languageFacts/facts\",\"./services/cssSelectionRange\",\"./services/scssNavigation\",\"./cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./parser/cssParser\"),r=e(\"./services/cssCompletion\"),i=e(\"./services/cssHover\"),o=e(\"./services/cssNavigation\"),s=e(\"./services/cssCodeActions\"),a=e(\"./services/cssValidation\"),l=e(\"./parser/scssParser\"),c=e(\"./services/scssCompletion\"),d=e(\"./parser/lessParser\"),p=e(\"./services/lessCompletion\"),h=e(\"./services/cssFolding\"),m=e(\"./languageFacts/facts\"),u=e(\"./services/cssSelectionRange\"),f=e(\"./services/scssNavigation\");function g(e,t,n,r,i,o){return{configure:function(e){o.configure(e),t.configure(e)},doValidation:o.doValidation.bind(o),parseStylesheet:e.parseStylesheet.bind(e),doComplete:t.doComplete.bind(t),setCompletionParticipants:t.setCompletionParticipants.bind(t),doHover:n.doHover.bind(n),findDefinition:r.findDefinition.bind(r),findReferences:r.findReferences.bind(r),findDocumentHighlights:r.findDocumentHighlights.bind(r),findDocumentLinks:r.findDocumentLinks.bind(r),findDocumentLinks2:r.findDocumentLinks2.bind(r),findDocumentSymbols:r.findDocumentSymbols.bind(r),doCodeActions:i.doCodeActions.bind(i),doCodeActions2:i.doCodeActions2.bind(i),findColorSymbols:function(e,t){return r.findDocumentColors(e,t).map((function(e){return e.range}))},findDocumentColors:r.findDocumentColors.bind(r),getColorPresentations:r.getColorPresentations.bind(r),doRename:r.doRename.bind(r),getFoldingRanges:h.getFoldingRanges,getSelectionRanges:u.getSelectionRanges}}function b(e){e&&e.customDataProviders&&m.cssDataManager.addDataProviders(e.customDataProviders)}!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./cssLanguageTypes\")),t.getCSSLanguageService=function(e){return b(e),g(new n.Parser,new r.CSSCompletion(null,e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)},t.getSCSSLanguageService=function(e){return b(e),g(new l.SCSSParser,new c.SCSSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new f.SCSSNavigation(e&&e.fileSystemProvider),new s.CSSCodeActions,new a.CSSValidation)},t.getLESSLanguageService=function(e){return b(e),g(new d.LESSParser,new p.LESSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)}})),define(\"vscode-css-languageservice\",[\"vscode-css-languageservice/cssLanguageService\"],(function(e){return e})),define(\"vs/language/css/cssWorker\",[\"require\",\"exports\",\"vscode-css-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){switch(this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageId){case\"css\":this._languageService=n.getCSSLanguageService();break;case\"less\":this._languageService=n.getLESSLanguageService();break;case\"scss\":this._languageService=n.getSCSSLanguageService();break;default:throw new Error(\"Invalid language id: \"+this._languageId)}this._languageService.configure(this._languageSettings)}return e.prototype.doValidation=function(e){var t=this._getTextDocument(e);if(t){var n=this._languageService.parseStylesheet(t),r=this._languageService.doValidation(t,n);return Promise.resolve(r)}return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.doComplete(n,t,r);return Promise.resolve(i)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.doHover(n,t,r);return Promise.resolve(i)},e.prototype.findDefinition=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findDefinition(n,t,r);return Promise.resolve(i)},e.prototype.findReferences=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findReferences(n,t,r);return Promise.resolve(i)},e.prototype.findDocumentHighlights=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findDocumentHighlights(n,t,r);return Promise.resolve(i)},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseStylesheet(t),r=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(r)},e.prototype.doCodeActions=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.doCodeActions(r,t,n,i);return Promise.resolve(o)},e.prototype.findDocumentColors=function(e){var t=this._getTextDocument(e),n=this._languageService.parseStylesheet(t),r=this._languageService.findDocumentColors(t,n);return Promise.resolve(r)},e.prototype.getColorPresentations=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.getColorPresentations(r,i,t,n);return Promise.resolve(o)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.getFoldingRanges(n,t);return Promise.resolve(r)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.getSelectionRanges(n,t,r);return Promise.resolve(i)},e.prototype.doRename=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.doRename(r,t,n,i);return Promise.resolve(o)},e.prototype._getTextDocument=function(e){for(var t=0,r=this._ctx.getMirrorModels();t<r.length;t++){var i=r[t];if(i.uri.toString()===e)return n.TextDocument.create(e,this._languageId,i.version,i.getValue())}return null},e}();t.CSSWorker=r,t.create=function(e,t){return new r(e,t)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/html/htmlMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/html/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/html/htmlWorker\",createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0];return void 0!==t[i]?t[i]:e}))}function i(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];return n(t,i)}function r(e){return i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=r,t.config=function(e){return r}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i,r,a,o,s,l,c,d,h,u,p,m;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.number(t.line)&&y.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,i,r){if(y.number(e)&&y.number(t)&&y.number(i)&&y.number(r))return{start:n.create(e,t),end:n.create(i,r)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+i+\", \"+r+\"]\")},e.is=function(e){var t=e;return y.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(i=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.string(t.uri)||y.undefined(t.uri))}}(r=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,i){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:i}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.targetRange)&&y.string(t.targetUri)&&(i.is(t.targetSelectionRange)||y.undefined(t.targetSelectionRange))&&(i.is(t.originSelectionRange)||y.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return y.number(t.red)&&y.number(t.green)&&y.number(t.blue)&&y.number(t.alpha)}}(a=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return i.is(t.range)&&a.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return y.string(t.label)&&(y.undefined(t.textEdit)||c.is(t))&&(y.undefined(t.additionalTextEdits)||y.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,i,r){var a={startLine:e,endLine:t};return y.defined(n)&&(a.startCharacter=n),y.defined(i)&&(a.endCharacter=i),y.defined(r)&&(a.kind=r),a},e.is=function(e){var t=e;return y.number(t.startLine)&&y.number(t.startLine)&&(y.undefined(t.startCharacter)||y.number(t.startCharacter))&&(y.undefined(t.endCharacter)||y.number(t.endCharacter))&&(y.undefined(t.kind)||y.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return y.defined(t)&&r.is(t.location)&&y.string(t.message)}}(o=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,i,r,a){var o={range:e,message:t};return y.defined(n)&&(o.severity=n),y.defined(i)&&(o.code=i),y.defined(r)&&(o.source=r),y.defined(a)&&(o.relatedInformation=a),o},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&y.string(t.message)&&(y.number(t.severity)||y.undefined(t.severity))&&(y.number(t.code)||y.string(t.code)||y.undefined(t.code))&&(y.string(t.source)||y.undefined(t.source))&&(y.undefined(t.relatedInformation)||y.typedArray(t.relatedInformation,o.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={title:e,command:t};return y.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.title)&&y.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.string(t.newText)&&i.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return y.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(h=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var i={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),i},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&y.string(t.oldUri)&&y.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(u=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||y.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||y.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return y.string(e.kind)?h.is(e)||u.is(e)||p.is(e):d.is(e)})))}}(m=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,_,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var i=new v(e.changes[n]);t._textEditChanges[n]=i})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new v(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new v(r),this._textEditChanges[e]=i}return i},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(u.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&(null===t.version||y.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&y.string(t.languageId)&&y.number(t.version)&&y.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return y.objectLiteral(e)&&g.is(t.kind)&&y.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return y.string(t)||y.objectLiteral(t)&&y.string(t.language)&&y.string(t.value)}}(_=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&y.objectLiteral(t)&&(b.is(t.contents)||_.is(t.contents)||y.typedArray(t.contents,_.is))&&(void 0===e.range||i.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={label:e};return y.defined(t)&&(r.documentation=t),y.defined(n)?r.parameters=n:r.parameters=[],r}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return y.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,i,r){var a={name:e,kind:t,location:{uri:i,range:n}};return r&&(a.containerName=r),a}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,i,r,a){var o={name:e,detail:t,kind:n,range:i,selectionRange:r};return void 0!==a&&(o.children=a),o},e.is=function(e){var t=e;return t&&y.string(t.name)&&y.number(t.kind)&&i.is(t.range)&&i.is(t.selectionRange)&&(void 0===t.detail||y.string(t.detail))&&(void 0===t.deprecated||y.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return y.defined(t)&&y.typedArray(t.diagnostics,s.is)&&(void 0===t.only||y.typedArray(t.only,y.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var i={title:e};return l.is(t)?i.command=t:i.edit=t,void 0!==n&&(i.kind=n),i},e.is=function(e){var t=e;return t&&y.string(t.title)&&(void 0===t.diagnostics||y.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||y.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||y.boolean(t.isPreferred))&&(void 0===t.edit||m.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return y.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return y.defined(t)&&y.number(t.tabSize)&&y.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.target)||y.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&i.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,i){return new T(e,t,n,i)},e.is=function(e){var t=e;return!!(y.defined(t)&&y.string(t.uri)&&(y.undefined(t.languageId)||y.string(t.languageId))&&y.number(t.lineCount)&&y.func(t.getText)&&y.func(t.positionAt)&&y.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,a=i.length-1;a>=0;a--){var o=i[a],s=e.offsetAt(o.range.start),l=e.offsetAt(o.range.end);if(!(l<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+o.newText+n.substring(l,n.length),r=s}return n}}(t.TextDocument||(t.TextDocument={}));var y,T=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i<t.length;i++){n&&(e.push(i),n=!1);var r=t.charAt(i);n=\"\\r\"===r||\"\\n\"===r,\"\\r\"===r&&i+1<t.length&&\"\\n\"===t.charAt(i+1)&&i++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(0===r)return n.create(0,e);for(;i<r;){var a=Math.floor((i+r)/2);t[a]>e?r=a:i=a+1}var o=i-1;return n.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(y||(y={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");!function(e){e[e.StartCommentTag=0]=\"StartCommentTag\",e[e.Comment=1]=\"Comment\",e[e.EndCommentTag=2]=\"EndCommentTag\",e[e.StartTagOpen=3]=\"StartTagOpen\",e[e.StartTagClose=4]=\"StartTagClose\",e[e.StartTagSelfClose=5]=\"StartTagSelfClose\",e[e.StartTag=6]=\"StartTag\",e[e.EndTagOpen=7]=\"EndTagOpen\",e[e.EndTagClose=8]=\"EndTagClose\",e[e.EndTag=9]=\"EndTag\",e[e.DelimiterAssign=10]=\"DelimiterAssign\",e[e.AttributeName=11]=\"AttributeName\",e[e.AttributeValue=12]=\"AttributeValue\",e[e.StartDoctypeTag=13]=\"StartDoctypeTag\",e[e.Doctype=14]=\"Doctype\",e[e.EndDoctypeTag=15]=\"EndDoctypeTag\",e[e.Content=16]=\"Content\",e[e.Whitespace=17]=\"Whitespace\",e[e.Unknown=18]=\"Unknown\",e[e.Script=19]=\"Script\",e[e.Styles=20]=\"Styles\",e[e.EOS=21]=\"EOS\"}(t.TokenType||(t.TokenType={})),function(e){e[e.WithinContent=0]=\"WithinContent\",e[e.AfterOpeningStartTag=1]=\"AfterOpeningStartTag\",e[e.AfterOpeningEndTag=2]=\"AfterOpeningEndTag\",e[e.WithinDoctype=3]=\"WithinDoctype\",e[e.WithinTag=4]=\"WithinTag\",e[e.WithinEndTag=5]=\"WithinEndTag\",e[e.WithinComment=6]=\"WithinComment\",e[e.WithinScriptContent=7]=\"WithinScriptContent\",e[e.WithinStyleContent=8]=\"WithinStyleContent\",e[e.AfterAttributeName=9]=\"AfterAttributeName\",e[e.BeforeAttributeValue=10]=\"BeforeAttributeValue\"}(t.ScannerState||(t.ScannerState={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlScanner\",[\"require\",\"exports\",\"vscode-nls\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\"),i=e(\"../htmlLanguageTypes\"),r=n.loadMessageBundle(),a=function(){function e(e,t){this.source=e,this.len=e.length,this.position=t}return e.prototype.eos=function(){return this.len<=this.position},e.prototype.getSource=function(){return this.source},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.goToEnd=function(){this.position=this.source.length},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){var t;if(this.position+e.length>this.source.length)return!1;for(t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceIfRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index+t[0].length,t[0]):\"\"},e.prototype.advanceUntilRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index,t[0]):(this.goToEnd(),\"\")},e.prototype.advanceUntilChar=function(e){for(;this.position<this.source.length;){if(this.source.charCodeAt(this.position)===e)return!0;this.advance(1)}return!1},e.prototype.advanceUntilChars=function(e){for(;this.position+e.length<=this.source.length;){for(var t=0;t<e.length&&this.source.charCodeAt(this.position+t)===e[t];t++);if(t===e.length)return!0;this.advance(1)}return this.goToEnd(),!1},e.prototype.skipWhitespace=function(){return this.advanceWhileChar((function(e){return e===b||e===_||e===m||e===g||e===f}))>0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}(),o=\"!\".charCodeAt(0),s=\"-\".charCodeAt(0),l=\"<\".charCodeAt(0),c=\">\".charCodeAt(0),d=\"/\".charCodeAt(0),h=\"=\".charCodeAt(0),u='\"'.charCodeAt(0),p=\"'\".charCodeAt(0),m=\"\\n\".charCodeAt(0),f=\"\\r\".charCodeAt(0),g=\"\\f\".charCodeAt(0),b=\" \".charCodeAt(0),_=\"\\t\".charCodeAt(0),v={\"text/x-handlebars-template\":!0};t.createScanner=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=i.ScannerState.WithinContent);var m,f,g,b,_,w=new a(e,t),y=n,T=0,k=i.TokenType.Unknown;function S(){return w.advanceIfRegExp(/^[_:\\w][_:\\w-.\\d]*/).toLowerCase()}function x(e,t,n){return k=t,T=e,m=n,t}return{scan:function(){var e=w.pos(),t=y,n=function e(){var t,n=w.pos();if(w.eos())return x(n,i.TokenType.EOS);switch(y){case i.ScannerState.WithinComment:return w.advanceIfChars([s,s,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndCommentTag)):(w.advanceUntilChars([s,s,c]),x(n,i.TokenType.Comment));case i.ScannerState.WithinDoctype:return w.advanceIfChar(c)?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndDoctypeTag)):(w.advanceUntilChar(c),x(n,i.TokenType.Doctype));case i.ScannerState.WithinContent:if(w.advanceIfChar(l)){if(!w.eos()&&w.peekChar()===o){if(w.advanceIfChars([o,s,s]))return y=i.ScannerState.WithinComment,x(n,i.TokenType.StartCommentTag);if(w.advanceIfRegExp(/^!doctype/i))return y=i.ScannerState.WithinDoctype,x(n,i.TokenType.StartDoctypeTag)}return w.advanceIfChar(d)?(y=i.ScannerState.AfterOpeningEndTag,x(n,i.TokenType.EndTagOpen)):(y=i.ScannerState.AfterOpeningStartTag,x(n,i.TokenType.StartTagOpen))}return w.advanceUntilChar(l),x(n,i.TokenType.Content);case i.ScannerState.AfterOpeningEndTag:return S().length>0?(y=i.ScannerState.WithinEndTag,x(n,i.TokenType.EndTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinEndTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.endTagNameExpected\",\"End tag name expected.\")):e());case i.ScannerState.WithinEndTag:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);if(w.advanceIfChar(c))return y=i.ScannerState.WithinContent,x(n,i.TokenType.EndTagClose);t=r(\"error.tagNameExpected\",\"Closing bracket expected.\");break;case i.ScannerState.AfterOpeningStartTag:return g=S(),_=void 0,b=void 0,g.length>0?(f=!1,y=i.ScannerState.WithinTag,x(n,i.TokenType.StartTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.startTagNameExpected\",\"Start tag name expected.\")):e());case i.ScannerState.WithinTag:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):f&&(b=w.advanceIfRegExp(/^[^\\s\"'>/=\\x00-\\x0F\\x7F\\x80-\\x9F]*/).toLowerCase()).length>0?(y=i.ScannerState.AfterAttributeName,f=!1,x(n,i.TokenType.AttributeName)):w.advanceIfChars([d,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.StartTagSelfClose)):w.advanceIfChar(c)?(y=\"script\"===g?_&&v[_]?i.ScannerState.WithinContent:i.ScannerState.WithinScriptContent:\"style\"===g?i.ScannerState.WithinStyleContent:i.ScannerState.WithinContent,x(n,i.TokenType.StartTagClose)):(w.advance(1),x(n,i.TokenType.Unknown,r(\"error.unexpectedCharacterInTag\",\"Unexpected character in tag.\")));case i.ScannerState.AfterAttributeName:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):w.advanceIfChar(h)?(y=i.ScannerState.BeforeAttributeValue,x(n,i.TokenType.DelimiterAssign)):(y=i.ScannerState.WithinTag,e());case i.ScannerState.BeforeAttributeValue:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);var a=w.advanceIfRegExp(/^[^\\s\"'`=<>]+/);if(a.length>0)return w.peekChar()===c&&w.peekChar(-1)===d&&(w.goBack(1),a=a.substr(0,a.length-1)),\"type\"===b&&(_=a),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue);var m=w.peekChar();return m===p||m===u?(w.advance(1),w.advanceUntilChar(m)&&w.advance(1),\"type\"===b&&(_=w.getSource().substring(n+1,w.pos()-1)),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue)):(y=i.ScannerState.WithinTag,f=!1,e());case i.ScannerState.WithinScriptContent:for(var T=1;!w.eos();){var k=w.advanceIfRegExp(/<!--|-->|<\\/?script\\s*\\/?>?/i);if(0===k.length)return w.goToEnd(),x(n,i.TokenType.Script);if(\"\\x3c!--\"===k)1===T&&(T=2);else if(\"--\\x3e\"===k)T=1;else if(\"/\"!==k[1])2===T&&(T=3);else{if(3!==T){w.goBack(k.length);break}T=2}}return y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Script):e();case i.ScannerState.WithinStyleContent:return w.advanceUntilRegExp(/<\\/style/i),y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Styles):e()}return w.advance(1),y=i.ScannerState.WithinContent,x(n,i.TokenType.Unknown,t)}();return n!==i.TokenType.EOS&&e===w.pos()?(console.log(\"Scanner.scan has not advanced at offset \"+e+\", state before: \"+t+\" after: \"+y),w.advance(1),x(e,i.TokenType.Unknown)):n},getTokenType:function(){return k},getTokenOffset:function(){return T},getTokenLength:function(){return w.pos()-T},getTokenEnd:function(){return w.pos()},getTokenText:function(){return w.getSource().substring(T,w.pos())},getScannerState:function(){return y},getTokenError:function(){return m}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n},t.binarySearch=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var a=(i+r)/2|0,o=n(e[a],t);if(o<0)i=a+1;else{if(!(o>0))return a;r=a-1}}return-(i+1)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/fact\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\");t.VOID_ELEMENTS=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],t.isVoidElement=function(e){return!!e&&n.binarySearch(t.VOID_ELEMENTS,e.toLowerCase(),(function(e,t){return e.localeCompare(t)}))>=0}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlParser\",[\"require\",\"exports\",\"./htmlScanner\",\"../utils/arrays\",\"../htmlLanguageTypes\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./htmlScanner\"),i=e(\"../utils/arrays\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/fact\"),o=function(){function e(e,t,n,i){this.start=e,this.end=t,this.children=n,this.parent=i,this.closed=!1}return Object.defineProperty(e.prototype,\"attributeNames\",{get:function(){return this.attributes?Object.keys(this.attributes):[]},enumerable:!0,configurable:!0}),e.prototype.isSameTag=function(e){return this.tag&&e&&this.tag.length===e.length&&this.tag.toLowerCase()===e},Object.defineProperty(e.prototype,\"firstChild\",{get:function(){return this.children[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lastChild\",{get:function(){return this.children.length?this.children[this.children.length-1]:void 0},enumerable:!0,configurable:!0}),e.prototype.findNodeBefore=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start){if(e<n.end)return n.findNodeBefore(e);var r=n.lastChild;return r&&r.end===n.end?n.findNodeBefore(e):n}}return this},e.prototype.findNodeAt=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start&&e<=n.end)return n.findNodeAt(e)}return this},e}();t.Node=o,t.parse=function(e){for(var t=n.createScanner(e),i=new o(0,e.length,[],void 0),s=i,l=-1,c=null,d=null,h=t.scan();h!==r.TokenType.EOS;){switch(h){case r.TokenType.StartTagOpen:var u=new o(t.getTokenOffset(),e.length,[],s);s.children.push(u),s=u;break;case r.TokenType.StartTag:s.tag=t.getTokenText();break;case r.TokenType.StartTagClose:s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s.tag&&a.isVoidElement(s.tag)&&s.parent&&(s.closed=!0,s=s.parent);break;case r.TokenType.StartTagSelfClose:s.parent&&(s.closed=!0,s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s=s.parent);break;case r.TokenType.EndTagOpen:l=t.getTokenOffset(),c=null;break;case r.TokenType.EndTag:c=t.getTokenText().toLowerCase();break;case r.TokenType.EndTagClose:if(c){for(var p=s;!p.isSameTag(c)&&p.parent;)p=p.parent;if(p.parent){for(;s!==p;)s.end=l,s.closed=!1,s=s.parent;s.closed=!0,s.endTagStart=l,s.end=t.getTokenEnd(),s=s.parent}}break;case r.TokenType.AttributeName:d=t.getTokenText(),(m=s.attributes)||(s.attributes=m={}),m[d]=null;break;case r.TokenType.AttributeValue:var m,f=t.getTokenText();(m=s.attributes)&&d&&(m[d]=f,d=null)}h=t.scan()}for(;s.parent;)s.end=e.length,s.closed=!1,s=s.parent;return{roots:i.children,findNodeBefore:i.findNodeBefore.bind(i),findNodeAt:i.findNodeAt.bind(i)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlEntities\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.entities={\"Aacute;\":\"Á\",Aacute:\"Á\",\"aacute;\":\"á\",aacute:\"á\",\"Abreve;\":\"Ă\",\"abreve;\":\"ă\",\"ac;\":\"∾\",\"acd;\":\"∿\",\"acE;\":\"∾̳\",\"Acirc;\":\"Â\",Acirc:\"Â\",\"acirc;\":\"â\",acirc:\"â\",\"acute;\":\"´\",acute:\"´\",\"Acy;\":\"А\",\"acy;\":\"а\",\"AElig;\":\"Æ\",AElig:\"Æ\",\"aelig;\":\"æ\",aelig:\"æ\",\"af;\":\"⁡\",\"Afr;\":\"𝔄\",\"afr;\":\"𝔞\",\"Agrave;\":\"À\",Agrave:\"À\",\"agrave;\":\"à\",agrave:\"à\",\"alefsym;\":\"ℵ\",\"aleph;\":\"ℵ\",\"Alpha;\":\"Α\",\"alpha;\":\"α\",\"Amacr;\":\"Ā\",\"amacr;\":\"ā\",\"amalg;\":\"⨿\",\"AMP;\":\"&\",AMP:\"&\",\"amp;\":\"&\",amp:\"&\",\"And;\":\"⩓\",\"and;\":\"∧\",\"andand;\":\"⩕\",\"andd;\":\"⩜\",\"andslope;\":\"⩘\",\"andv;\":\"⩚\",\"ang;\":\"∠\",\"ange;\":\"⦤\",\"angle;\":\"∠\",\"angmsd;\":\"∡\",\"angmsdaa;\":\"⦨\",\"angmsdab;\":\"⦩\",\"angmsdac;\":\"⦪\",\"angmsdad;\":\"⦫\",\"angmsdae;\":\"⦬\",\"angmsdaf;\":\"⦭\",\"angmsdag;\":\"⦮\",\"angmsdah;\":\"⦯\",\"angrt;\":\"∟\",\"angrtvb;\":\"⊾\",\"angrtvbd;\":\"⦝\",\"angsph;\":\"∢\",\"angst;\":\"Å\",\"angzarr;\":\"⍼\",\"Aogon;\":\"Ą\",\"aogon;\":\"ą\",\"Aopf;\":\"𝔸\",\"aopf;\":\"𝕒\",\"ap;\":\"≈\",\"apacir;\":\"⩯\",\"apE;\":\"⩰\",\"ape;\":\"≊\",\"apid;\":\"≋\",\"apos;\":\"'\",\"ApplyFunction;\":\"⁡\",\"approx;\":\"≈\",\"approxeq;\":\"≊\",\"Aring;\":\"Å\",Aring:\"Å\",\"aring;\":\"å\",aring:\"å\",\"Ascr;\":\"𝒜\",\"ascr;\":\"𝒶\",\"Assign;\":\"≔\",\"ast;\":\"*\",\"asymp;\":\"≈\",\"asympeq;\":\"≍\",\"Atilde;\":\"Ã\",Atilde:\"Ã\",\"atilde;\":\"ã\",atilde:\"ã\",\"Auml;\":\"Ä\",Auml:\"Ä\",\"auml;\":\"ä\",auml:\"ä\",\"awconint;\":\"∳\",\"awint;\":\"⨑\",\"backcong;\":\"≌\",\"backepsilon;\":\"϶\",\"backprime;\":\"‵\",\"backsim;\":\"∽\",\"backsimeq;\":\"⋍\",\"Backslash;\":\"∖\",\"Barv;\":\"⫧\",\"barvee;\":\"⊽\",\"Barwed;\":\"⌆\",\"barwed;\":\"⌅\",\"barwedge;\":\"⌅\",\"bbrk;\":\"⎵\",\"bbrktbrk;\":\"⎶\",\"bcong;\":\"≌\",\"Bcy;\":\"Б\",\"bcy;\":\"б\",\"bdquo;\":\"„\",\"becaus;\":\"∵\",\"Because;\":\"∵\",\"because;\":\"∵\",\"bemptyv;\":\"⦰\",\"bepsi;\":\"϶\",\"bernou;\":\"ℬ\",\"Bernoullis;\":\"ℬ\",\"Beta;\":\"Β\",\"beta;\":\"β\",\"beth;\":\"ℶ\",\"between;\":\"≬\",\"Bfr;\":\"𝔅\",\"bfr;\":\"𝔟\",\"bigcap;\":\"⋂\",\"bigcirc;\":\"◯\",\"bigcup;\":\"⋃\",\"bigodot;\":\"⨀\",\"bigoplus;\":\"⨁\",\"bigotimes;\":\"⨂\",\"bigsqcup;\":\"⨆\",\"bigstar;\":\"★\",\"bigtriangledown;\":\"▽\",\"bigtriangleup;\":\"△\",\"biguplus;\":\"⨄\",\"bigvee;\":\"⋁\",\"bigwedge;\":\"⋀\",\"bkarow;\":\"⤍\",\"blacklozenge;\":\"⧫\",\"blacksquare;\":\"▪\",\"blacktriangle;\":\"▴\",\"blacktriangledown;\":\"▾\",\"blacktriangleleft;\":\"◂\",\"blacktriangleright;\":\"▸\",\"blank;\":\"␣\",\"blk12;\":\"▒\",\"blk14;\":\"░\",\"blk34;\":\"▓\",\"block;\":\"█\",\"bne;\":\"=⃥\",\"bnequiv;\":\"≡⃥\",\"bNot;\":\"⫭\",\"bnot;\":\"⌐\",\"Bopf;\":\"𝔹\",\"bopf;\":\"𝕓\",\"bot;\":\"⊥\",\"bottom;\":\"⊥\",\"bowtie;\":\"⋈\",\"boxbox;\":\"⧉\",\"boxDL;\":\"╗\",\"boxDl;\":\"╖\",\"boxdL;\":\"╕\",\"boxdl;\":\"┐\",\"boxDR;\":\"╔\",\"boxDr;\":\"╓\",\"boxdR;\":\"╒\",\"boxdr;\":\"┌\",\"boxH;\":\"═\",\"boxh;\":\"─\",\"boxHD;\":\"╦\",\"boxHd;\":\"╤\",\"boxhD;\":\"╥\",\"boxhd;\":\"┬\",\"boxHU;\":\"╩\",\"boxHu;\":\"╧\",\"boxhU;\":\"╨\",\"boxhu;\":\"┴\",\"boxminus;\":\"⊟\",\"boxplus;\":\"⊞\",\"boxtimes;\":\"⊠\",\"boxUL;\":\"╝\",\"boxUl;\":\"╜\",\"boxuL;\":\"╛\",\"boxul;\":\"┘\",\"boxUR;\":\"╚\",\"boxUr;\":\"╙\",\"boxuR;\":\"╘\",\"boxur;\":\"└\",\"boxV;\":\"║\",\"boxv;\":\"│\",\"boxVH;\":\"╬\",\"boxVh;\":\"╫\",\"boxvH;\":\"╪\",\"boxvh;\":\"┼\",\"boxVL;\":\"╣\",\"boxVl;\":\"╢\",\"boxvL;\":\"╡\",\"boxvl;\":\"┤\",\"boxVR;\":\"╠\",\"boxVr;\":\"╟\",\"boxvR;\":\"╞\",\"boxvr;\":\"├\",\"bprime;\":\"‵\",\"Breve;\":\"˘\",\"breve;\":\"˘\",\"brvbar;\":\"¦\",brvbar:\"¦\",\"Bscr;\":\"ℬ\",\"bscr;\":\"𝒷\",\"bsemi;\":\"⁏\",\"bsim;\":\"∽\",\"bsime;\":\"⋍\",\"bsol;\":\"\\\\\",\"bsolb;\":\"⧅\",\"bsolhsub;\":\"⟈\",\"bull;\":\"•\",\"bullet;\":\"•\",\"bump;\":\"≎\",\"bumpE;\":\"⪮\",\"bumpe;\":\"≏\",\"Bumpeq;\":\"≎\",\"bumpeq;\":\"≏\",\"Cacute;\":\"Ć\",\"cacute;\":\"ć\",\"Cap;\":\"⋒\",\"cap;\":\"∩\",\"capand;\":\"⩄\",\"capbrcup;\":\"⩉\",\"capcap;\":\"⩋\",\"capcup;\":\"⩇\",\"capdot;\":\"⩀\",\"CapitalDifferentialD;\":\"ⅅ\",\"caps;\":\"∩︀\",\"caret;\":\"⁁\",\"caron;\":\"ˇ\",\"Cayleys;\":\"ℭ\",\"ccaps;\":\"⩍\",\"Ccaron;\":\"Č\",\"ccaron;\":\"č\",\"Ccedil;\":\"Ç\",Ccedil:\"Ç\",\"ccedil;\":\"ç\",ccedil:\"ç\",\"Ccirc;\":\"Ĉ\",\"ccirc;\":\"ĉ\",\"Cconint;\":\"∰\",\"ccups;\":\"⩌\",\"ccupssm;\":\"⩐\",\"Cdot;\":\"Ċ\",\"cdot;\":\"ċ\",\"cedil;\":\"¸\",cedil:\"¸\",\"Cedilla;\":\"¸\",\"cemptyv;\":\"⦲\",\"cent;\":\"¢\",cent:\"¢\",\"CenterDot;\":\"·\",\"centerdot;\":\"·\",\"Cfr;\":\"ℭ\",\"cfr;\":\"𝔠\",\"CHcy;\":\"Ч\",\"chcy;\":\"ч\",\"check;\":\"✓\",\"checkmark;\":\"✓\",\"Chi;\":\"Χ\",\"chi;\":\"χ\",\"cir;\":\"○\",\"circ;\":\"ˆ\",\"circeq;\":\"≗\",\"circlearrowleft;\":\"↺\",\"circlearrowright;\":\"↻\",\"circledast;\":\"⊛\",\"circledcirc;\":\"⊚\",\"circleddash;\":\"⊝\",\"CircleDot;\":\"⊙\",\"circledR;\":\"®\",\"circledS;\":\"Ⓢ\",\"CircleMinus;\":\"⊖\",\"CirclePlus;\":\"⊕\",\"CircleTimes;\":\"⊗\",\"cirE;\":\"⧃\",\"cire;\":\"≗\",\"cirfnint;\":\"⨐\",\"cirmid;\":\"⫯\",\"cirscir;\":\"⧂\",\"ClockwiseContourIntegral;\":\"∲\",\"CloseCurlyDoubleQuote;\":\"”\",\"CloseCurlyQuote;\":\"’\",\"clubs;\":\"♣\",\"clubsuit;\":\"♣\",\"Colon;\":\"∷\",\"colon;\":\":\",\"Colone;\":\"⩴\",\"colone;\":\"≔\",\"coloneq;\":\"≔\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"∁\",\"compfn;\":\"∘\",\"complement;\":\"∁\",\"complexes;\":\"ℂ\",\"cong;\":\"≅\",\"congdot;\":\"⩭\",\"Congruent;\":\"≡\",\"Conint;\":\"∯\",\"conint;\":\"∮\",\"ContourIntegral;\":\"∮\",\"Copf;\":\"ℂ\",\"copf;\":\"𝕔\",\"coprod;\":\"∐\",\"Coproduct;\":\"∐\",\"COPY;\":\"©\",COPY:\"©\",\"copy;\":\"©\",copy:\"©\",\"copysr;\":\"℗\",\"CounterClockwiseContourIntegral;\":\"∳\",\"crarr;\":\"↵\",\"Cross;\":\"⨯\",\"cross;\":\"✗\",\"Cscr;\":\"𝒞\",\"cscr;\":\"𝒸\",\"csub;\":\"⫏\",\"csube;\":\"⫑\",\"csup;\":\"⫐\",\"csupe;\":\"⫒\",\"ctdot;\":\"⋯\",\"cudarrl;\":\"⤸\",\"cudarrr;\":\"⤵\",\"cuepr;\":\"⋞\",\"cuesc;\":\"⋟\",\"cularr;\":\"↶\",\"cularrp;\":\"⤽\",\"Cup;\":\"⋓\",\"cup;\":\"∪\",\"cupbrcap;\":\"⩈\",\"CupCap;\":\"≍\",\"cupcap;\":\"⩆\",\"cupcup;\":\"⩊\",\"cupdot;\":\"⊍\",\"cupor;\":\"⩅\",\"cups;\":\"∪︀\",\"curarr;\":\"↷\",\"curarrm;\":\"⤼\",\"curlyeqprec;\":\"⋞\",\"curlyeqsucc;\":\"⋟\",\"curlyvee;\":\"⋎\",\"curlywedge;\":\"⋏\",\"curren;\":\"¤\",curren:\"¤\",\"curvearrowleft;\":\"↶\",\"curvearrowright;\":\"↷\",\"cuvee;\":\"⋎\",\"cuwed;\":\"⋏\",\"cwconint;\":\"∲\",\"cwint;\":\"∱\",\"cylcty;\":\"⌭\",\"Dagger;\":\"‡\",\"dagger;\":\"†\",\"daleth;\":\"ℸ\",\"Darr;\":\"↡\",\"dArr;\":\"⇓\",\"darr;\":\"↓\",\"dash;\":\"‐\",\"Dashv;\":\"⫤\",\"dashv;\":\"⊣\",\"dbkarow;\":\"⤏\",\"dblac;\":\"˝\",\"Dcaron;\":\"Ď\",\"dcaron;\":\"ď\",\"Dcy;\":\"Д\",\"dcy;\":\"д\",\"DD;\":\"ⅅ\",\"dd;\":\"ⅆ\",\"ddagger;\":\"‡\",\"ddarr;\":\"⇊\",\"DDotrahd;\":\"⤑\",\"ddotseq;\":\"⩷\",\"deg;\":\"°\",deg:\"°\",\"Del;\":\"∇\",\"Delta;\":\"Δ\",\"delta;\":\"δ\",\"demptyv;\":\"⦱\",\"dfisht;\":\"⥿\",\"Dfr;\":\"𝔇\",\"dfr;\":\"𝔡\",\"dHar;\":\"⥥\",\"dharl;\":\"⇃\",\"dharr;\":\"⇂\",\"DiacriticalAcute;\":\"´\",\"DiacriticalDot;\":\"˙\",\"DiacriticalDoubleAcute;\":\"˝\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"˜\",\"diam;\":\"⋄\",\"Diamond;\":\"⋄\",\"diamond;\":\"⋄\",\"diamondsuit;\":\"♦\",\"diams;\":\"♦\",\"die;\":\"¨\",\"DifferentialD;\":\"ⅆ\",\"digamma;\":\"ϝ\",\"disin;\":\"⋲\",\"div;\":\"÷\",\"divide;\":\"÷\",divide:\"÷\",\"divideontimes;\":\"⋇\",\"divonx;\":\"⋇\",\"DJcy;\":\"Ђ\",\"djcy;\":\"ђ\",\"dlcorn;\":\"⌞\",\"dlcrop;\":\"⌍\",\"dollar;\":\"$\",\"Dopf;\":\"𝔻\",\"dopf;\":\"𝕕\",\"Dot;\":\"¨\",\"dot;\":\"˙\",\"DotDot;\":\"⃜\",\"doteq;\":\"≐\",\"doteqdot;\":\"≑\",\"DotEqual;\":\"≐\",\"dotminus;\":\"∸\",\"dotplus;\":\"∔\",\"dotsquare;\":\"⊡\",\"doublebarwedge;\":\"⌆\",\"DoubleContourIntegral;\":\"∯\",\"DoubleDot;\":\"¨\",\"DoubleDownArrow;\":\"⇓\",\"DoubleLeftArrow;\":\"⇐\",\"DoubleLeftRightArrow;\":\"⇔\",\"DoubleLeftTee;\":\"⫤\",\"DoubleLongLeftArrow;\":\"⟸\",\"DoubleLongLeftRightArrow;\":\"⟺\",\"DoubleLongRightArrow;\":\"⟹\",\"DoubleRightArrow;\":\"⇒\",\"DoubleRightTee;\":\"⊨\",\"DoubleUpArrow;\":\"⇑\",\"DoubleUpDownArrow;\":\"⇕\",\"DoubleVerticalBar;\":\"∥\",\"DownArrow;\":\"↓\",\"Downarrow;\":\"⇓\",\"downarrow;\":\"↓\",\"DownArrowBar;\":\"⤓\",\"DownArrowUpArrow;\":\"⇵\",\"DownBreve;\":\"̑\",\"downdownarrows;\":\"⇊\",\"downharpoonleft;\":\"⇃\",\"downharpoonright;\":\"⇂\",\"DownLeftRightVector;\":\"⥐\",\"DownLeftTeeVector;\":\"⥞\",\"DownLeftVector;\":\"↽\",\"DownLeftVectorBar;\":\"⥖\",\"DownRightTeeVector;\":\"⥟\",\"DownRightVector;\":\"⇁\",\"DownRightVectorBar;\":\"⥗\",\"DownTee;\":\"⊤\",\"DownTeeArrow;\":\"↧\",\"drbkarow;\":\"⤐\",\"drcorn;\":\"⌟\",\"drcrop;\":\"⌌\",\"Dscr;\":\"𝒟\",\"dscr;\":\"𝒹\",\"DScy;\":\"Ѕ\",\"dscy;\":\"ѕ\",\"dsol;\":\"⧶\",\"Dstrok;\":\"Đ\",\"dstrok;\":\"đ\",\"dtdot;\":\"⋱\",\"dtri;\":\"▿\",\"dtrif;\":\"▾\",\"duarr;\":\"⇵\",\"duhar;\":\"⥯\",\"dwangle;\":\"⦦\",\"DZcy;\":\"Џ\",\"dzcy;\":\"џ\",\"dzigrarr;\":\"⟿\",\"Eacute;\":\"É\",Eacute:\"É\",\"eacute;\":\"é\",eacute:\"é\",\"easter;\":\"⩮\",\"Ecaron;\":\"Ě\",\"ecaron;\":\"ě\",\"ecir;\":\"≖\",\"Ecirc;\":\"Ê\",Ecirc:\"Ê\",\"ecirc;\":\"ê\",ecirc:\"ê\",\"ecolon;\":\"≕\",\"Ecy;\":\"Э\",\"ecy;\":\"э\",\"eDDot;\":\"⩷\",\"Edot;\":\"Ė\",\"eDot;\":\"≑\",\"edot;\":\"ė\",\"ee;\":\"ⅇ\",\"efDot;\":\"≒\",\"Efr;\":\"𝔈\",\"efr;\":\"𝔢\",\"eg;\":\"⪚\",\"Egrave;\":\"È\",Egrave:\"È\",\"egrave;\":\"è\",egrave:\"è\",\"egs;\":\"⪖\",\"egsdot;\":\"⪘\",\"el;\":\"⪙\",\"Element;\":\"∈\",\"elinters;\":\"⏧\",\"ell;\":\"ℓ\",\"els;\":\"⪕\",\"elsdot;\":\"⪗\",\"Emacr;\":\"Ē\",\"emacr;\":\"ē\",\"empty;\":\"∅\",\"emptyset;\":\"∅\",\"EmptySmallSquare;\":\"◻\",\"emptyv;\":\"∅\",\"EmptyVerySmallSquare;\":\"▫\",\"emsp;\":\" \",\"emsp13;\":\" \",\"emsp14;\":\" \",\"ENG;\":\"Ŋ\",\"eng;\":\"ŋ\",\"ensp;\":\" \",\"Eogon;\":\"Ę\",\"eogon;\":\"ę\",\"Eopf;\":\"𝔼\",\"eopf;\":\"𝕖\",\"epar;\":\"⋕\",\"eparsl;\":\"⧣\",\"eplus;\":\"⩱\",\"epsi;\":\"ε\",\"Epsilon;\":\"Ε\",\"epsilon;\":\"ε\",\"epsiv;\":\"ϵ\",\"eqcirc;\":\"≖\",\"eqcolon;\":\"≕\",\"eqsim;\":\"≂\",\"eqslantgtr;\":\"⪖\",\"eqslantless;\":\"⪕\",\"Equal;\":\"⩵\",\"equals;\":\"=\",\"EqualTilde;\":\"≂\",\"equest;\":\"≟\",\"Equilibrium;\":\"⇌\",\"equiv;\":\"≡\",\"equivDD;\":\"⩸\",\"eqvparsl;\":\"⧥\",\"erarr;\":\"⥱\",\"erDot;\":\"≓\",\"Escr;\":\"ℰ\",\"escr;\":\"ℯ\",\"esdot;\":\"≐\",\"Esim;\":\"⩳\",\"esim;\":\"≂\",\"Eta;\":\"Η\",\"eta;\":\"η\",\"ETH;\":\"Ð\",ETH:\"Ð\",\"eth;\":\"ð\",eth:\"ð\",\"Euml;\":\"Ë\",Euml:\"Ë\",\"euml;\":\"ë\",euml:\"ë\",\"euro;\":\"€\",\"excl;\":\"!\",\"exist;\":\"∃\",\"Exists;\":\"∃\",\"expectation;\":\"ℰ\",\"ExponentialE;\":\"ⅇ\",\"exponentiale;\":\"ⅇ\",\"fallingdotseq;\":\"≒\",\"Fcy;\":\"Ф\",\"fcy;\":\"ф\",\"female;\":\"♀\",\"ffilig;\":\"ﬃ\",\"fflig;\":\"ﬀ\",\"ffllig;\":\"ﬄ\",\"Ffr;\":\"𝔉\",\"ffr;\":\"𝔣\",\"filig;\":\"ﬁ\",\"FilledSmallSquare;\":\"◼\",\"FilledVerySmallSquare;\":\"▪\",\"fjlig;\":\"fj\",\"flat;\":\"♭\",\"fllig;\":\"ﬂ\",\"fltns;\":\"▱\",\"fnof;\":\"ƒ\",\"Fopf;\":\"𝔽\",\"fopf;\":\"𝕗\",\"ForAll;\":\"∀\",\"forall;\":\"∀\",\"fork;\":\"⋔\",\"forkv;\":\"⫙\",\"Fouriertrf;\":\"ℱ\",\"fpartint;\":\"⨍\",\"frac12;\":\"½\",frac12:\"½\",\"frac13;\":\"⅓\",\"frac14;\":\"¼\",frac14:\"¼\",\"frac15;\":\"⅕\",\"frac16;\":\"⅙\",\"frac18;\":\"⅛\",\"frac23;\":\"⅔\",\"frac25;\":\"⅖\",\"frac34;\":\"¾\",frac34:\"¾\",\"frac35;\":\"⅗\",\"frac38;\":\"⅜\",\"frac45;\":\"⅘\",\"frac56;\":\"⅚\",\"frac58;\":\"⅝\",\"frac78;\":\"⅞\",\"frasl;\":\"⁄\",\"frown;\":\"⌢\",\"Fscr;\":\"ℱ\",\"fscr;\":\"𝒻\",\"gacute;\":\"ǵ\",\"Gamma;\":\"Γ\",\"gamma;\":\"γ\",\"Gammad;\":\"Ϝ\",\"gammad;\":\"ϝ\",\"gap;\":\"⪆\",\"Gbreve;\":\"Ğ\",\"gbreve;\":\"ğ\",\"Gcedil;\":\"Ģ\",\"Gcirc;\":\"Ĝ\",\"gcirc;\":\"ĝ\",\"Gcy;\":\"Г\",\"gcy;\":\"г\",\"Gdot;\":\"Ġ\",\"gdot;\":\"ġ\",\"gE;\":\"≧\",\"ge;\":\"≥\",\"gEl;\":\"⪌\",\"gel;\":\"⋛\",\"geq;\":\"≥\",\"geqq;\":\"≧\",\"geqslant;\":\"⩾\",\"ges;\":\"⩾\",\"gescc;\":\"⪩\",\"gesdot;\":\"⪀\",\"gesdoto;\":\"⪂\",\"gesdotol;\":\"⪄\",\"gesl;\":\"⋛︀\",\"gesles;\":\"⪔\",\"Gfr;\":\"𝔊\",\"gfr;\":\"𝔤\",\"Gg;\":\"⋙\",\"gg;\":\"≫\",\"ggg;\":\"⋙\",\"gimel;\":\"ℷ\",\"GJcy;\":\"Ѓ\",\"gjcy;\":\"ѓ\",\"gl;\":\"≷\",\"gla;\":\"⪥\",\"glE;\":\"⪒\",\"glj;\":\"⪤\",\"gnap;\":\"⪊\",\"gnapprox;\":\"⪊\",\"gnE;\":\"≩\",\"gne;\":\"⪈\",\"gneq;\":\"⪈\",\"gneqq;\":\"≩\",\"gnsim;\":\"⋧\",\"Gopf;\":\"𝔾\",\"gopf;\":\"𝕘\",\"grave;\":\"`\",\"GreaterEqual;\":\"≥\",\"GreaterEqualLess;\":\"⋛\",\"GreaterFullEqual;\":\"≧\",\"GreaterGreater;\":\"⪢\",\"GreaterLess;\":\"≷\",\"GreaterSlantEqual;\":\"⩾\",\"GreaterTilde;\":\"≳\",\"Gscr;\":\"𝒢\",\"gscr;\":\"ℊ\",\"gsim;\":\"≳\",\"gsime;\":\"⪎\",\"gsiml;\":\"⪐\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"≫\",\"gt;\":\">\",gt:\">\",\"gtcc;\":\"⪧\",\"gtcir;\":\"⩺\",\"gtdot;\":\"⋗\",\"gtlPar;\":\"⦕\",\"gtquest;\":\"⩼\",\"gtrapprox;\":\"⪆\",\"gtrarr;\":\"⥸\",\"gtrdot;\":\"⋗\",\"gtreqless;\":\"⋛\",\"gtreqqless;\":\"⪌\",\"gtrless;\":\"≷\",\"gtrsim;\":\"≳\",\"gvertneqq;\":\"≩︀\",\"gvnE;\":\"≩︀\",\"Hacek;\":\"ˇ\",\"hairsp;\":\" \",\"half;\":\"½\",\"hamilt;\":\"ℋ\",\"HARDcy;\":\"Ъ\",\"hardcy;\":\"ъ\",\"hArr;\":\"⇔\",\"harr;\":\"↔\",\"harrcir;\":\"⥈\",\"harrw;\":\"↭\",\"Hat;\":\"^\",\"hbar;\":\"ℏ\",\"Hcirc;\":\"Ĥ\",\"hcirc;\":\"ĥ\",\"hearts;\":\"♥\",\"heartsuit;\":\"♥\",\"hellip;\":\"…\",\"hercon;\":\"⊹\",\"Hfr;\":\"ℌ\",\"hfr;\":\"𝔥\",\"HilbertSpace;\":\"ℋ\",\"hksearow;\":\"⤥\",\"hkswarow;\":\"⤦\",\"hoarr;\":\"⇿\",\"homtht;\":\"∻\",\"hookleftarrow;\":\"↩\",\"hookrightarrow;\":\"↪\",\"Hopf;\":\"ℍ\",\"hopf;\":\"𝕙\",\"horbar;\":\"―\",\"HorizontalLine;\":\"─\",\"Hscr;\":\"ℋ\",\"hscr;\":\"𝒽\",\"hslash;\":\"ℏ\",\"Hstrok;\":\"Ħ\",\"hstrok;\":\"ħ\",\"HumpDownHump;\":\"≎\",\"HumpEqual;\":\"≏\",\"hybull;\":\"⁃\",\"hyphen;\":\"‐\",\"Iacute;\":\"Í\",Iacute:\"Í\",\"iacute;\":\"í\",iacute:\"í\",\"ic;\":\"⁣\",\"Icirc;\":\"Î\",Icirc:\"Î\",\"icirc;\":\"î\",icirc:\"î\",\"Icy;\":\"И\",\"icy;\":\"и\",\"Idot;\":\"İ\",\"IEcy;\":\"Е\",\"iecy;\":\"е\",\"iexcl;\":\"¡\",iexcl:\"¡\",\"iff;\":\"⇔\",\"Ifr;\":\"ℑ\",\"ifr;\":\"𝔦\",\"Igrave;\":\"Ì\",Igrave:\"Ì\",\"igrave;\":\"ì\",igrave:\"ì\",\"ii;\":\"ⅈ\",\"iiiint;\":\"⨌\",\"iiint;\":\"∭\",\"iinfin;\":\"⧜\",\"iiota;\":\"℩\",\"IJlig;\":\"Ĳ\",\"ijlig;\":\"ĳ\",\"Im;\":\"ℑ\",\"Imacr;\":\"Ī\",\"imacr;\":\"ī\",\"image;\":\"ℑ\",\"ImaginaryI;\":\"ⅈ\",\"imagline;\":\"ℐ\",\"imagpart;\":\"ℑ\",\"imath;\":\"ı\",\"imof;\":\"⊷\",\"imped;\":\"Ƶ\",\"Implies;\":\"⇒\",\"in;\":\"∈\",\"incare;\":\"℅\",\"infin;\":\"∞\",\"infintie;\":\"⧝\",\"inodot;\":\"ı\",\"Int;\":\"∬\",\"int;\":\"∫\",\"intcal;\":\"⊺\",\"integers;\":\"ℤ\",\"Integral;\":\"∫\",\"intercal;\":\"⊺\",\"Intersection;\":\"⋂\",\"intlarhk;\":\"⨗\",\"intprod;\":\"⨼\",\"InvisibleComma;\":\"⁣\",\"InvisibleTimes;\":\"⁢\",\"IOcy;\":\"Ё\",\"iocy;\":\"ё\",\"Iogon;\":\"Į\",\"iogon;\":\"į\",\"Iopf;\":\"𝕀\",\"iopf;\":\"𝕚\",\"Iota;\":\"Ι\",\"iota;\":\"ι\",\"iprod;\":\"⨼\",\"iquest;\":\"¿\",iquest:\"¿\",\"Iscr;\":\"ℐ\",\"iscr;\":\"𝒾\",\"isin;\":\"∈\",\"isindot;\":\"⋵\",\"isinE;\":\"⋹\",\"isins;\":\"⋴\",\"isinsv;\":\"⋳\",\"isinv;\":\"∈\",\"it;\":\"⁢\",\"Itilde;\":\"Ĩ\",\"itilde;\":\"ĩ\",\"Iukcy;\":\"І\",\"iukcy;\":\"і\",\"Iuml;\":\"Ï\",Iuml:\"Ï\",\"iuml;\":\"ï\",iuml:\"ï\",\"Jcirc;\":\"Ĵ\",\"jcirc;\":\"ĵ\",\"Jcy;\":\"Й\",\"jcy;\":\"й\",\"Jfr;\":\"𝔍\",\"jfr;\":\"𝔧\",\"jmath;\":\"ȷ\",\"Jopf;\":\"𝕁\",\"jopf;\":\"𝕛\",\"Jscr;\":\"𝒥\",\"jscr;\":\"𝒿\",\"Jsercy;\":\"Ј\",\"jsercy;\":\"ј\",\"Jukcy;\":\"Є\",\"jukcy;\":\"є\",\"Kappa;\":\"Κ\",\"kappa;\":\"κ\",\"kappav;\":\"ϰ\",\"Kcedil;\":\"Ķ\",\"kcedil;\":\"ķ\",\"Kcy;\":\"К\",\"kcy;\":\"к\",\"Kfr;\":\"𝔎\",\"kfr;\":\"𝔨\",\"kgreen;\":\"ĸ\",\"KHcy;\":\"Х\",\"khcy;\":\"х\",\"KJcy;\":\"Ќ\",\"kjcy;\":\"ќ\",\"Kopf;\":\"𝕂\",\"kopf;\":\"𝕜\",\"Kscr;\":\"𝒦\",\"kscr;\":\"𝓀\",\"lAarr;\":\"⇚\",\"Lacute;\":\"Ĺ\",\"lacute;\":\"ĺ\",\"laemptyv;\":\"⦴\",\"lagran;\":\"ℒ\",\"Lambda;\":\"Λ\",\"lambda;\":\"λ\",\"Lang;\":\"⟪\",\"lang;\":\"⟨\",\"langd;\":\"⦑\",\"langle;\":\"⟨\",\"lap;\":\"⪅\",\"Laplacetrf;\":\"ℒ\",\"laquo;\":\"«\",laquo:\"«\",\"Larr;\":\"↞\",\"lArr;\":\"⇐\",\"larr;\":\"←\",\"larrb;\":\"⇤\",\"larrbfs;\":\"⤟\",\"larrfs;\":\"⤝\",\"larrhk;\":\"↩\",\"larrlp;\":\"↫\",\"larrpl;\":\"⤹\",\"larrsim;\":\"⥳\",\"larrtl;\":\"↢\",\"lat;\":\"⪫\",\"lAtail;\":\"⤛\",\"latail;\":\"⤙\",\"late;\":\"⪭\",\"lates;\":\"⪭︀\",\"lBarr;\":\"⤎\",\"lbarr;\":\"⤌\",\"lbbrk;\":\"❲\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"⦋\",\"lbrksld;\":\"⦏\",\"lbrkslu;\":\"⦍\",\"Lcaron;\":\"Ľ\",\"lcaron;\":\"ľ\",\"Lcedil;\":\"Ļ\",\"lcedil;\":\"ļ\",\"lceil;\":\"⌈\",\"lcub;\":\"{\",\"Lcy;\":\"Л\",\"lcy;\":\"л\",\"ldca;\":\"⤶\",\"ldquo;\":\"“\",\"ldquor;\":\"„\",\"ldrdhar;\":\"⥧\",\"ldrushar;\":\"⥋\",\"ldsh;\":\"↲\",\"lE;\":\"≦\",\"le;\":\"≤\",\"LeftAngleBracket;\":\"⟨\",\"LeftArrow;\":\"←\",\"Leftarrow;\":\"⇐\",\"leftarrow;\":\"←\",\"LeftArrowBar;\":\"⇤\",\"LeftArrowRightArrow;\":\"⇆\",\"leftarrowtail;\":\"↢\",\"LeftCeiling;\":\"⌈\",\"LeftDoubleBracket;\":\"⟦\",\"LeftDownTeeVector;\":\"⥡\",\"LeftDownVector;\":\"⇃\",\"LeftDownVectorBar;\":\"⥙\",\"LeftFloor;\":\"⌊\",\"leftharpoondown;\":\"↽\",\"leftharpoonup;\":\"↼\",\"leftleftarrows;\":\"⇇\",\"LeftRightArrow;\":\"↔\",\"Leftrightarrow;\":\"⇔\",\"leftrightarrow;\":\"↔\",\"leftrightarrows;\":\"⇆\",\"leftrightharpoons;\":\"⇋\",\"leftrightsquigarrow;\":\"↭\",\"LeftRightVector;\":\"⥎\",\"LeftTee;\":\"⊣\",\"LeftTeeArrow;\":\"↤\",\"LeftTeeVector;\":\"⥚\",\"leftthreetimes;\":\"⋋\",\"LeftTriangle;\":\"⊲\",\"LeftTriangleBar;\":\"⧏\",\"LeftTriangleEqual;\":\"⊴\",\"LeftUpDownVector;\":\"⥑\",\"LeftUpTeeVector;\":\"⥠\",\"LeftUpVector;\":\"↿\",\"LeftUpVectorBar;\":\"⥘\",\"LeftVector;\":\"↼\",\"LeftVectorBar;\":\"⥒\",\"lEg;\":\"⪋\",\"leg;\":\"⋚\",\"leq;\":\"≤\",\"leqq;\":\"≦\",\"leqslant;\":\"⩽\",\"les;\":\"⩽\",\"lescc;\":\"⪨\",\"lesdot;\":\"⩿\",\"lesdoto;\":\"⪁\",\"lesdotor;\":\"⪃\",\"lesg;\":\"⋚︀\",\"lesges;\":\"⪓\",\"lessapprox;\":\"⪅\",\"lessdot;\":\"⋖\",\"lesseqgtr;\":\"⋚\",\"lesseqqgtr;\":\"⪋\",\"LessEqualGreater;\":\"⋚\",\"LessFullEqual;\":\"≦\",\"LessGreater;\":\"≶\",\"lessgtr;\":\"≶\",\"LessLess;\":\"⪡\",\"lesssim;\":\"≲\",\"LessSlantEqual;\":\"⩽\",\"LessTilde;\":\"≲\",\"lfisht;\":\"⥼\",\"lfloor;\":\"⌊\",\"Lfr;\":\"𝔏\",\"lfr;\":\"𝔩\",\"lg;\":\"≶\",\"lgE;\":\"⪑\",\"lHar;\":\"⥢\",\"lhard;\":\"↽\",\"lharu;\":\"↼\",\"lharul;\":\"⥪\",\"lhblk;\":\"▄\",\"LJcy;\":\"Љ\",\"ljcy;\":\"љ\",\"Ll;\":\"⋘\",\"ll;\":\"≪\",\"llarr;\":\"⇇\",\"llcorner;\":\"⌞\",\"Lleftarrow;\":\"⇚\",\"llhard;\":\"⥫\",\"lltri;\":\"◺\",\"Lmidot;\":\"Ŀ\",\"lmidot;\":\"ŀ\",\"lmoust;\":\"⎰\",\"lmoustache;\":\"⎰\",\"lnap;\":\"⪉\",\"lnapprox;\":\"⪉\",\"lnE;\":\"≨\",\"lne;\":\"⪇\",\"lneq;\":\"⪇\",\"lneqq;\":\"≨\",\"lnsim;\":\"⋦\",\"loang;\":\"⟬\",\"loarr;\":\"⇽\",\"lobrk;\":\"⟦\",\"LongLeftArrow;\":\"⟵\",\"Longleftarrow;\":\"⟸\",\"longleftarrow;\":\"⟵\",\"LongLeftRightArrow;\":\"⟷\",\"Longleftrightarrow;\":\"⟺\",\"longleftrightarrow;\":\"⟷\",\"longmapsto;\":\"⟼\",\"LongRightArrow;\":\"⟶\",\"Longrightarrow;\":\"⟹\",\"longrightarrow;\":\"⟶\",\"looparrowleft;\":\"↫\",\"looparrowright;\":\"↬\",\"lopar;\":\"⦅\",\"Lopf;\":\"𝕃\",\"lopf;\":\"𝕝\",\"loplus;\":\"⨭\",\"lotimes;\":\"⨴\",\"lowast;\":\"∗\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"↙\",\"LowerRightArrow;\":\"↘\",\"loz;\":\"◊\",\"lozenge;\":\"◊\",\"lozf;\":\"⧫\",\"lpar;\":\"(\",\"lparlt;\":\"⦓\",\"lrarr;\":\"⇆\",\"lrcorner;\":\"⌟\",\"lrhar;\":\"⇋\",\"lrhard;\":\"⥭\",\"lrm;\":\"‎\",\"lrtri;\":\"⊿\",\"lsaquo;\":\"‹\",\"Lscr;\":\"ℒ\",\"lscr;\":\"𝓁\",\"Lsh;\":\"↰\",\"lsh;\":\"↰\",\"lsim;\":\"≲\",\"lsime;\":\"⪍\",\"lsimg;\":\"⪏\",\"lsqb;\":\"[\",\"lsquo;\":\"‘\",\"lsquor;\":\"‚\",\"Lstrok;\":\"Ł\",\"lstrok;\":\"ł\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"≪\",\"lt;\":\"<\",lt:\"<\",\"ltcc;\":\"⪦\",\"ltcir;\":\"⩹\",\"ltdot;\":\"⋖\",\"lthree;\":\"⋋\",\"ltimes;\":\"⋉\",\"ltlarr;\":\"⥶\",\"ltquest;\":\"⩻\",\"ltri;\":\"◃\",\"ltrie;\":\"⊴\",\"ltrif;\":\"◂\",\"ltrPar;\":\"⦖\",\"lurdshar;\":\"⥊\",\"luruhar;\":\"⥦\",\"lvertneqq;\":\"≨︀\",\"lvnE;\":\"≨︀\",\"macr;\":\"¯\",macr:\"¯\",\"male;\":\"♂\",\"malt;\":\"✠\",\"maltese;\":\"✠\",\"Map;\":\"⤅\",\"map;\":\"↦\",\"mapsto;\":\"↦\",\"mapstodown;\":\"↧\",\"mapstoleft;\":\"↤\",\"mapstoup;\":\"↥\",\"marker;\":\"▮\",\"mcomma;\":\"⨩\",\"Mcy;\":\"М\",\"mcy;\":\"м\",\"mdash;\":\"—\",\"mDDot;\":\"∺\",\"measuredangle;\":\"∡\",\"MediumSpace;\":\" \",\"Mellintrf;\":\"ℳ\",\"Mfr;\":\"𝔐\",\"mfr;\":\"𝔪\",\"mho;\":\"℧\",\"micro;\":\"µ\",micro:\"µ\",\"mid;\":\"∣\",\"midast;\":\"*\",\"midcir;\":\"⫰\",\"middot;\":\"·\",middot:\"·\",\"minus;\":\"−\",\"minusb;\":\"⊟\",\"minusd;\":\"∸\",\"minusdu;\":\"⨪\",\"MinusPlus;\":\"∓\",\"mlcp;\":\"⫛\",\"mldr;\":\"…\",\"mnplus;\":\"∓\",\"models;\":\"⊧\",\"Mopf;\":\"𝕄\",\"mopf;\":\"𝕞\",\"mp;\":\"∓\",\"Mscr;\":\"ℳ\",\"mscr;\":\"𝓂\",\"mstpos;\":\"∾\",\"Mu;\":\"Μ\",\"mu;\":\"μ\",\"multimap;\":\"⊸\",\"mumap;\":\"⊸\",\"nabla;\":\"∇\",\"Nacute;\":\"Ń\",\"nacute;\":\"ń\",\"nang;\":\"∠⃒\",\"nap;\":\"≉\",\"napE;\":\"⩰̸\",\"napid;\":\"≋̸\",\"napos;\":\"ŉ\",\"napprox;\":\"≉\",\"natur;\":\"♮\",\"natural;\":\"♮\",\"naturals;\":\"ℕ\",\"nbsp;\":\" \",nbsp:\" \",\"nbump;\":\"≎̸\",\"nbumpe;\":\"≏̸\",\"ncap;\":\"⩃\",\"Ncaron;\":\"Ň\",\"ncaron;\":\"ň\",\"Ncedil;\":\"Ņ\",\"ncedil;\":\"ņ\",\"ncong;\":\"≇\",\"ncongdot;\":\"⩭̸\",\"ncup;\":\"⩂\",\"Ncy;\":\"Н\",\"ncy;\":\"н\",\"ndash;\":\"–\",\"ne;\":\"≠\",\"nearhk;\":\"⤤\",\"neArr;\":\"⇗\",\"nearr;\":\"↗\",\"nearrow;\":\"↗\",\"nedot;\":\"≐̸\",\"NegativeMediumSpace;\":\"​\",\"NegativeThickSpace;\":\"​\",\"NegativeThinSpace;\":\"​\",\"NegativeVeryThinSpace;\":\"​\",\"nequiv;\":\"≢\",\"nesear;\":\"⤨\",\"nesim;\":\"≂̸\",\"NestedGreaterGreater;\":\"≫\",\"NestedLessLess;\":\"≪\",\"NewLine;\":\"\\n\",\"nexist;\":\"∄\",\"nexists;\":\"∄\",\"Nfr;\":\"𝔑\",\"nfr;\":\"𝔫\",\"ngE;\":\"≧̸\",\"nge;\":\"≱\",\"ngeq;\":\"≱\",\"ngeqq;\":\"≧̸\",\"ngeqslant;\":\"⩾̸\",\"nges;\":\"⩾̸\",\"nGg;\":\"⋙̸\",\"ngsim;\":\"≵\",\"nGt;\":\"≫⃒\",\"ngt;\":\"≯\",\"ngtr;\":\"≯\",\"nGtv;\":\"≫̸\",\"nhArr;\":\"⇎\",\"nharr;\":\"↮\",\"nhpar;\":\"⫲\",\"ni;\":\"∋\",\"nis;\":\"⋼\",\"nisd;\":\"⋺\",\"niv;\":\"∋\",\"NJcy;\":\"Њ\",\"njcy;\":\"њ\",\"nlArr;\":\"⇍\",\"nlarr;\":\"↚\",\"nldr;\":\"‥\",\"nlE;\":\"≦̸\",\"nle;\":\"≰\",\"nLeftarrow;\":\"⇍\",\"nleftarrow;\":\"↚\",\"nLeftrightarrow;\":\"⇎\",\"nleftrightarrow;\":\"↮\",\"nleq;\":\"≰\",\"nleqq;\":\"≦̸\",\"nleqslant;\":\"⩽̸\",\"nles;\":\"⩽̸\",\"nless;\":\"≮\",\"nLl;\":\"⋘̸\",\"nlsim;\":\"≴\",\"nLt;\":\"≪⃒\",\"nlt;\":\"≮\",\"nltri;\":\"⋪\",\"nltrie;\":\"⋬\",\"nLtv;\":\"≪̸\",\"nmid;\":\"∤\",\"NoBreak;\":\"⁠\",\"NonBreakingSpace;\":\" \",\"Nopf;\":\"ℕ\",\"nopf;\":\"𝕟\",\"Not;\":\"⫬\",\"not;\":\"¬\",not:\"¬\",\"NotCongruent;\":\"≢\",\"NotCupCap;\":\"≭\",\"NotDoubleVerticalBar;\":\"∦\",\"NotElement;\":\"∉\",\"NotEqual;\":\"≠\",\"NotEqualTilde;\":\"≂̸\",\"NotExists;\":\"∄\",\"NotGreater;\":\"≯\",\"NotGreaterEqual;\":\"≱\",\"NotGreaterFullEqual;\":\"≧̸\",\"NotGreaterGreater;\":\"≫̸\",\"NotGreaterLess;\":\"≹\",\"NotGreaterSlantEqual;\":\"⩾̸\",\"NotGreaterTilde;\":\"≵\",\"NotHumpDownHump;\":\"≎̸\",\"NotHumpEqual;\":\"≏̸\",\"notin;\":\"∉\",\"notindot;\":\"⋵̸\",\"notinE;\":\"⋹̸\",\"notinva;\":\"∉\",\"notinvb;\":\"⋷\",\"notinvc;\":\"⋶\",\"NotLeftTriangle;\":\"⋪\",\"NotLeftTriangleBar;\":\"⧏̸\",\"NotLeftTriangleEqual;\":\"⋬\",\"NotLess;\":\"≮\",\"NotLessEqual;\":\"≰\",\"NotLessGreater;\":\"≸\",\"NotLessLess;\":\"≪̸\",\"NotLessSlantEqual;\":\"⩽̸\",\"NotLessTilde;\":\"≴\",\"NotNestedGreaterGreater;\":\"⪢̸\",\"NotNestedLessLess;\":\"⪡̸\",\"notni;\":\"∌\",\"notniva;\":\"∌\",\"notnivb;\":\"⋾\",\"notnivc;\":\"⋽\",\"NotPrecedes;\":\"⊀\",\"NotPrecedesEqual;\":\"⪯̸\",\"NotPrecedesSlantEqual;\":\"⋠\",\"NotReverseElement;\":\"∌\",\"NotRightTriangle;\":\"⋫\",\"NotRightTriangleBar;\":\"⧐̸\",\"NotRightTriangleEqual;\":\"⋭\",\"NotSquareSubset;\":\"⊏̸\",\"NotSquareSubsetEqual;\":\"⋢\",\"NotSquareSuperset;\":\"⊐̸\",\"NotSquareSupersetEqual;\":\"⋣\",\"NotSubset;\":\"⊂⃒\",\"NotSubsetEqual;\":\"⊈\",\"NotSucceeds;\":\"⊁\",\"NotSucceedsEqual;\":\"⪰̸\",\"NotSucceedsSlantEqual;\":\"⋡\",\"NotSucceedsTilde;\":\"≿̸\",\"NotSuperset;\":\"⊃⃒\",\"NotSupersetEqual;\":\"⊉\",\"NotTilde;\":\"≁\",\"NotTildeEqual;\":\"≄\",\"NotTildeFullEqual;\":\"≇\",\"NotTildeTilde;\":\"≉\",\"NotVerticalBar;\":\"∤\",\"npar;\":\"∦\",\"nparallel;\":\"∦\",\"nparsl;\":\"⫽⃥\",\"npart;\":\"∂̸\",\"npolint;\":\"⨔\",\"npr;\":\"⊀\",\"nprcue;\":\"⋠\",\"npre;\":\"⪯̸\",\"nprec;\":\"⊀\",\"npreceq;\":\"⪯̸\",\"nrArr;\":\"⇏\",\"nrarr;\":\"↛\",\"nrarrc;\":\"⤳̸\",\"nrarrw;\":\"↝̸\",\"nRightarrow;\":\"⇏\",\"nrightarrow;\":\"↛\",\"nrtri;\":\"⋫\",\"nrtrie;\":\"⋭\",\"nsc;\":\"⊁\",\"nsccue;\":\"⋡\",\"nsce;\":\"⪰̸\",\"Nscr;\":\"𝒩\",\"nscr;\":\"𝓃\",\"nshortmid;\":\"∤\",\"nshortparallel;\":\"∦\",\"nsim;\":\"≁\",\"nsime;\":\"≄\",\"nsimeq;\":\"≄\",\"nsmid;\":\"∤\",\"nspar;\":\"∦\",\"nsqsube;\":\"⋢\",\"nsqsupe;\":\"⋣\",\"nsub;\":\"⊄\",\"nsubE;\":\"⫅̸\",\"nsube;\":\"⊈\",\"nsubset;\":\"⊂⃒\",\"nsubseteq;\":\"⊈\",\"nsubseteqq;\":\"⫅̸\",\"nsucc;\":\"⊁\",\"nsucceq;\":\"⪰̸\",\"nsup;\":\"⊅\",\"nsupE;\":\"⫆̸\",\"nsupe;\":\"⊉\",\"nsupset;\":\"⊃⃒\",\"nsupseteq;\":\"⊉\",\"nsupseteqq;\":\"⫆̸\",\"ntgl;\":\"≹\",\"Ntilde;\":\"Ñ\",Ntilde:\"Ñ\",\"ntilde;\":\"ñ\",ntilde:\"ñ\",\"ntlg;\":\"≸\",\"ntriangleleft;\":\"⋪\",\"ntrianglelefteq;\":\"⋬\",\"ntriangleright;\":\"⋫\",\"ntrianglerighteq;\":\"⋭\",\"Nu;\":\"Ν\",\"nu;\":\"ν\",\"num;\":\"#\",\"numero;\":\"№\",\"numsp;\":\" \",\"nvap;\":\"≍⃒\",\"nVDash;\":\"⊯\",\"nVdash;\":\"⊮\",\"nvDash;\":\"⊭\",\"nvdash;\":\"⊬\",\"nvge;\":\"≥⃒\",\"nvgt;\":\">⃒\",\"nvHarr;\":\"⤄\",\"nvinfin;\":\"⧞\",\"nvlArr;\":\"⤂\",\"nvle;\":\"≤⃒\",\"nvlt;\":\"<⃒\",\"nvltrie;\":\"⊴⃒\",\"nvrArr;\":\"⤃\",\"nvrtrie;\":\"⊵⃒\",\"nvsim;\":\"∼⃒\",\"nwarhk;\":\"⤣\",\"nwArr;\":\"⇖\",\"nwarr;\":\"↖\",\"nwarrow;\":\"↖\",\"nwnear;\":\"⤧\",\"Oacute;\":\"Ó\",Oacute:\"Ó\",\"oacute;\":\"ó\",oacute:\"ó\",\"oast;\":\"⊛\",\"ocir;\":\"⊚\",\"Ocirc;\":\"Ô\",Ocirc:\"Ô\",\"ocirc;\":\"ô\",ocirc:\"ô\",\"Ocy;\":\"О\",\"ocy;\":\"о\",\"odash;\":\"⊝\",\"Odblac;\":\"Ő\",\"odblac;\":\"ő\",\"odiv;\":\"⨸\",\"odot;\":\"⊙\",\"odsold;\":\"⦼\",\"OElig;\":\"Œ\",\"oelig;\":\"œ\",\"ofcir;\":\"⦿\",\"Ofr;\":\"𝔒\",\"ofr;\":\"𝔬\",\"ogon;\":\"˛\",\"Ograve;\":\"Ò\",Ograve:\"Ò\",\"ograve;\":\"ò\",ograve:\"ò\",\"ogt;\":\"⧁\",\"ohbar;\":\"⦵\",\"ohm;\":\"Ω\",\"oint;\":\"∮\",\"olarr;\":\"↺\",\"olcir;\":\"⦾\",\"olcross;\":\"⦻\",\"oline;\":\"‾\",\"olt;\":\"⧀\",\"Omacr;\":\"Ō\",\"omacr;\":\"ō\",\"Omega;\":\"Ω\",\"omega;\":\"ω\",\"Omicron;\":\"Ο\",\"omicron;\":\"ο\",\"omid;\":\"⦶\",\"ominus;\":\"⊖\",\"Oopf;\":\"𝕆\",\"oopf;\":\"𝕠\",\"opar;\":\"⦷\",\"OpenCurlyDoubleQuote;\":\"“\",\"OpenCurlyQuote;\":\"‘\",\"operp;\":\"⦹\",\"oplus;\":\"⊕\",\"Or;\":\"⩔\",\"or;\":\"∨\",\"orarr;\":\"↻\",\"ord;\":\"⩝\",\"order;\":\"ℴ\",\"orderof;\":\"ℴ\",\"ordf;\":\"ª\",ordf:\"ª\",\"ordm;\":\"º\",ordm:\"º\",\"origof;\":\"⊶\",\"oror;\":\"⩖\",\"orslope;\":\"⩗\",\"orv;\":\"⩛\",\"oS;\":\"Ⓢ\",\"Oscr;\":\"𝒪\",\"oscr;\":\"ℴ\",\"Oslash;\":\"Ø\",Oslash:\"Ø\",\"oslash;\":\"ø\",oslash:\"ø\",\"osol;\":\"⊘\",\"Otilde;\":\"Õ\",Otilde:\"Õ\",\"otilde;\":\"õ\",otilde:\"õ\",\"Otimes;\":\"⨷\",\"otimes;\":\"⊗\",\"otimesas;\":\"⨶\",\"Ouml;\":\"Ö\",Ouml:\"Ö\",\"ouml;\":\"ö\",ouml:\"ö\",\"ovbar;\":\"⌽\",\"OverBar;\":\"‾\",\"OverBrace;\":\"⏞\",\"OverBracket;\":\"⎴\",\"OverParenthesis;\":\"⏜\",\"par;\":\"∥\",\"para;\":\"¶\",para:\"¶\",\"parallel;\":\"∥\",\"parsim;\":\"⫳\",\"parsl;\":\"⫽\",\"part;\":\"∂\",\"PartialD;\":\"∂\",\"Pcy;\":\"П\",\"pcy;\":\"п\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"‰\",\"perp;\":\"⊥\",\"pertenk;\":\"‱\",\"Pfr;\":\"𝔓\",\"pfr;\":\"𝔭\",\"Phi;\":\"Φ\",\"phi;\":\"φ\",\"phiv;\":\"ϕ\",\"phmmat;\":\"ℳ\",\"phone;\":\"☎\",\"Pi;\":\"Π\",\"pi;\":\"π\",\"pitchfork;\":\"⋔\",\"piv;\":\"ϖ\",\"planck;\":\"ℏ\",\"planckh;\":\"ℎ\",\"plankv;\":\"ℏ\",\"plus;\":\"+\",\"plusacir;\":\"⨣\",\"plusb;\":\"⊞\",\"pluscir;\":\"⨢\",\"plusdo;\":\"∔\",\"plusdu;\":\"⨥\",\"pluse;\":\"⩲\",\"PlusMinus;\":\"±\",\"plusmn;\":\"±\",plusmn:\"±\",\"plussim;\":\"⨦\",\"plustwo;\":\"⨧\",\"pm;\":\"±\",\"Poincareplane;\":\"ℌ\",\"pointint;\":\"⨕\",\"Popf;\":\"ℙ\",\"popf;\":\"𝕡\",\"pound;\":\"£\",pound:\"£\",\"Pr;\":\"⪻\",\"pr;\":\"≺\",\"prap;\":\"⪷\",\"prcue;\":\"≼\",\"prE;\":\"⪳\",\"pre;\":\"⪯\",\"prec;\":\"≺\",\"precapprox;\":\"⪷\",\"preccurlyeq;\":\"≼\",\"Precedes;\":\"≺\",\"PrecedesEqual;\":\"⪯\",\"PrecedesSlantEqual;\":\"≼\",\"PrecedesTilde;\":\"≾\",\"preceq;\":\"⪯\",\"precnapprox;\":\"⪹\",\"precneqq;\":\"⪵\",\"precnsim;\":\"⋨\",\"precsim;\":\"≾\",\"Prime;\":\"″\",\"prime;\":\"′\",\"primes;\":\"ℙ\",\"prnap;\":\"⪹\",\"prnE;\":\"⪵\",\"prnsim;\":\"⋨\",\"prod;\":\"∏\",\"Product;\":\"∏\",\"profalar;\":\"⌮\",\"profline;\":\"⌒\",\"profsurf;\":\"⌓\",\"prop;\":\"∝\",\"Proportion;\":\"∷\",\"Proportional;\":\"∝\",\"propto;\":\"∝\",\"prsim;\":\"≾\",\"prurel;\":\"⊰\",\"Pscr;\":\"𝒫\",\"pscr;\":\"𝓅\",\"Psi;\":\"Ψ\",\"psi;\":\"ψ\",\"puncsp;\":\" \",\"Qfr;\":\"𝔔\",\"qfr;\":\"𝔮\",\"qint;\":\"⨌\",\"Qopf;\":\"ℚ\",\"qopf;\":\"𝕢\",\"qprime;\":\"⁗\",\"Qscr;\":\"𝒬\",\"qscr;\":\"𝓆\",\"quaternions;\":\"ℍ\",\"quatint;\":\"⨖\",\"quest;\":\"?\",\"questeq;\":\"≟\",\"QUOT;\":'\"',QUOT:'\"',\"quot;\":'\"',quot:'\"',\"rAarr;\":\"⇛\",\"race;\":\"∽̱\",\"Racute;\":\"Ŕ\",\"racute;\":\"ŕ\",\"radic;\":\"√\",\"raemptyv;\":\"⦳\",\"Rang;\":\"⟫\",\"rang;\":\"⟩\",\"rangd;\":\"⦒\",\"range;\":\"⦥\",\"rangle;\":\"⟩\",\"raquo;\":\"»\",raquo:\"»\",\"Rarr;\":\"↠\",\"rArr;\":\"⇒\",\"rarr;\":\"→\",\"rarrap;\":\"⥵\",\"rarrb;\":\"⇥\",\"rarrbfs;\":\"⤠\",\"rarrc;\":\"⤳\",\"rarrfs;\":\"⤞\",\"rarrhk;\":\"↪\",\"rarrlp;\":\"↬\",\"rarrpl;\":\"⥅\",\"rarrsim;\":\"⥴\",\"Rarrtl;\":\"⤖\",\"rarrtl;\":\"↣\",\"rarrw;\":\"↝\",\"rAtail;\":\"⤜\",\"ratail;\":\"⤚\",\"ratio;\":\"∶\",\"rationals;\":\"ℚ\",\"RBarr;\":\"⤐\",\"rBarr;\":\"⤏\",\"rbarr;\":\"⤍\",\"rbbrk;\":\"❳\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"⦌\",\"rbrksld;\":\"⦎\",\"rbrkslu;\":\"⦐\",\"Rcaron;\":\"Ř\",\"rcaron;\":\"ř\",\"Rcedil;\":\"Ŗ\",\"rcedil;\":\"ŗ\",\"rceil;\":\"⌉\",\"rcub;\":\"}\",\"Rcy;\":\"Р\",\"rcy;\":\"р\",\"rdca;\":\"⤷\",\"rdldhar;\":\"⥩\",\"rdquo;\":\"”\",\"rdquor;\":\"”\",\"rdsh;\":\"↳\",\"Re;\":\"ℜ\",\"real;\":\"ℜ\",\"realine;\":\"ℛ\",\"realpart;\":\"ℜ\",\"reals;\":\"ℝ\",\"rect;\":\"▭\",\"REG;\":\"®\",REG:\"®\",\"reg;\":\"®\",reg:\"®\",\"ReverseElement;\":\"∋\",\"ReverseEquilibrium;\":\"⇋\",\"ReverseUpEquilibrium;\":\"⥯\",\"rfisht;\":\"⥽\",\"rfloor;\":\"⌋\",\"Rfr;\":\"ℜ\",\"rfr;\":\"𝔯\",\"rHar;\":\"⥤\",\"rhard;\":\"⇁\",\"rharu;\":\"⇀\",\"rharul;\":\"⥬\",\"Rho;\":\"Ρ\",\"rho;\":\"ρ\",\"rhov;\":\"ϱ\",\"RightAngleBracket;\":\"⟩\",\"RightArrow;\":\"→\",\"Rightarrow;\":\"⇒\",\"rightarrow;\":\"→\",\"RightArrowBar;\":\"⇥\",\"RightArrowLeftArrow;\":\"⇄\",\"rightarrowtail;\":\"↣\",\"RightCeiling;\":\"⌉\",\"RightDoubleBracket;\":\"⟧\",\"RightDownTeeVector;\":\"⥝\",\"RightDownVector;\":\"⇂\",\"RightDownVectorBar;\":\"⥕\",\"RightFloor;\":\"⌋\",\"rightharpoondown;\":\"⇁\",\"rightharpoonup;\":\"⇀\",\"rightleftarrows;\":\"⇄\",\"rightleftharpoons;\":\"⇌\",\"rightrightarrows;\":\"⇉\",\"rightsquigarrow;\":\"↝\",\"RightTee;\":\"⊢\",\"RightTeeArrow;\":\"↦\",\"RightTeeVector;\":\"⥛\",\"rightthreetimes;\":\"⋌\",\"RightTriangle;\":\"⊳\",\"RightTriangleBar;\":\"⧐\",\"RightTriangleEqual;\":\"⊵\",\"RightUpDownVector;\":\"⥏\",\"RightUpTeeVector;\":\"⥜\",\"RightUpVector;\":\"↾\",\"RightUpVectorBar;\":\"⥔\",\"RightVector;\":\"⇀\",\"RightVectorBar;\":\"⥓\",\"ring;\":\"˚\",\"risingdotseq;\":\"≓\",\"rlarr;\":\"⇄\",\"rlhar;\":\"⇌\",\"rlm;\":\"‏\",\"rmoust;\":\"⎱\",\"rmoustache;\":\"⎱\",\"rnmid;\":\"⫮\",\"roang;\":\"⟭\",\"roarr;\":\"⇾\",\"robrk;\":\"⟧\",\"ropar;\":\"⦆\",\"Ropf;\":\"ℝ\",\"ropf;\":\"𝕣\",\"roplus;\":\"⨮\",\"rotimes;\":\"⨵\",\"RoundImplies;\":\"⥰\",\"rpar;\":\")\",\"rpargt;\":\"⦔\",\"rppolint;\":\"⨒\",\"rrarr;\":\"⇉\",\"Rrightarrow;\":\"⇛\",\"rsaquo;\":\"›\",\"Rscr;\":\"ℛ\",\"rscr;\":\"𝓇\",\"Rsh;\":\"↱\",\"rsh;\":\"↱\",\"rsqb;\":\"]\",\"rsquo;\":\"’\",\"rsquor;\":\"’\",\"rthree;\":\"⋌\",\"rtimes;\":\"⋊\",\"rtri;\":\"▹\",\"rtrie;\":\"⊵\",\"rtrif;\":\"▸\",\"rtriltri;\":\"⧎\",\"RuleDelayed;\":\"⧴\",\"ruluhar;\":\"⥨\",\"rx;\":\"℞\",\"Sacute;\":\"Ś\",\"sacute;\":\"ś\",\"sbquo;\":\"‚\",\"Sc;\":\"⪼\",\"sc;\":\"≻\",\"scap;\":\"⪸\",\"Scaron;\":\"Š\",\"scaron;\":\"š\",\"sccue;\":\"≽\",\"scE;\":\"⪴\",\"sce;\":\"⪰\",\"Scedil;\":\"Ş\",\"scedil;\":\"ş\",\"Scirc;\":\"Ŝ\",\"scirc;\":\"ŝ\",\"scnap;\":\"⪺\",\"scnE;\":\"⪶\",\"scnsim;\":\"⋩\",\"scpolint;\":\"⨓\",\"scsim;\":\"≿\",\"Scy;\":\"С\",\"scy;\":\"с\",\"sdot;\":\"⋅\",\"sdotb;\":\"⊡\",\"sdote;\":\"⩦\",\"searhk;\":\"⤥\",\"seArr;\":\"⇘\",\"searr;\":\"↘\",\"searrow;\":\"↘\",\"sect;\":\"§\",sect:\"§\",\"semi;\":\";\",\"seswar;\":\"⤩\",\"setminus;\":\"∖\",\"setmn;\":\"∖\",\"sext;\":\"✶\",\"Sfr;\":\"𝔖\",\"sfr;\":\"𝔰\",\"sfrown;\":\"⌢\",\"sharp;\":\"♯\",\"SHCHcy;\":\"Щ\",\"shchcy;\":\"щ\",\"SHcy;\":\"Ш\",\"shcy;\":\"ш\",\"ShortDownArrow;\":\"↓\",\"ShortLeftArrow;\":\"←\",\"shortmid;\":\"∣\",\"shortparallel;\":\"∥\",\"ShortRightArrow;\":\"→\",\"ShortUpArrow;\":\"↑\",\"shy;\":\"­\",shy:\"­\",\"Sigma;\":\"Σ\",\"sigma;\":\"σ\",\"sigmaf;\":\"ς\",\"sigmav;\":\"ς\",\"sim;\":\"∼\",\"simdot;\":\"⩪\",\"sime;\":\"≃\",\"simeq;\":\"≃\",\"simg;\":\"⪞\",\"simgE;\":\"⪠\",\"siml;\":\"⪝\",\"simlE;\":\"⪟\",\"simne;\":\"≆\",\"simplus;\":\"⨤\",\"simrarr;\":\"⥲\",\"slarr;\":\"←\",\"SmallCircle;\":\"∘\",\"smallsetminus;\":\"∖\",\"smashp;\":\"⨳\",\"smeparsl;\":\"⧤\",\"smid;\":\"∣\",\"smile;\":\"⌣\",\"smt;\":\"⪪\",\"smte;\":\"⪬\",\"smtes;\":\"⪬︀\",\"SOFTcy;\":\"Ь\",\"softcy;\":\"ь\",\"sol;\":\"/\",\"solb;\":\"⧄\",\"solbar;\":\"⌿\",\"Sopf;\":\"𝕊\",\"sopf;\":\"𝕤\",\"spades;\":\"♠\",\"spadesuit;\":\"♠\",\"spar;\":\"∥\",\"sqcap;\":\"⊓\",\"sqcaps;\":\"⊓︀\",\"sqcup;\":\"⊔\",\"sqcups;\":\"⊔︀\",\"Sqrt;\":\"√\",\"sqsub;\":\"⊏\",\"sqsube;\":\"⊑\",\"sqsubset;\":\"⊏\",\"sqsubseteq;\":\"⊑\",\"sqsup;\":\"⊐\",\"sqsupe;\":\"⊒\",\"sqsupset;\":\"⊐\",\"sqsupseteq;\":\"⊒\",\"squ;\":\"□\",\"Square;\":\"□\",\"square;\":\"□\",\"SquareIntersection;\":\"⊓\",\"SquareSubset;\":\"⊏\",\"SquareSubsetEqual;\":\"⊑\",\"SquareSuperset;\":\"⊐\",\"SquareSupersetEqual;\":\"⊒\",\"SquareUnion;\":\"⊔\",\"squarf;\":\"▪\",\"squf;\":\"▪\",\"srarr;\":\"→\",\"Sscr;\":\"𝒮\",\"sscr;\":\"𝓈\",\"ssetmn;\":\"∖\",\"ssmile;\":\"⌣\",\"sstarf;\":\"⋆\",\"Star;\":\"⋆\",\"star;\":\"☆\",\"starf;\":\"★\",\"straightepsilon;\":\"ϵ\",\"straightphi;\":\"ϕ\",\"strns;\":\"¯\",\"Sub;\":\"⋐\",\"sub;\":\"⊂\",\"subdot;\":\"⪽\",\"subE;\":\"⫅\",\"sube;\":\"⊆\",\"subedot;\":\"⫃\",\"submult;\":\"⫁\",\"subnE;\":\"⫋\",\"subne;\":\"⊊\",\"subplus;\":\"⪿\",\"subrarr;\":\"⥹\",\"Subset;\":\"⋐\",\"subset;\":\"⊂\",\"subseteq;\":\"⊆\",\"subseteqq;\":\"⫅\",\"SubsetEqual;\":\"⊆\",\"subsetneq;\":\"⊊\",\"subsetneqq;\":\"⫋\",\"subsim;\":\"⫇\",\"subsub;\":\"⫕\",\"subsup;\":\"⫓\",\"succ;\":\"≻\",\"succapprox;\":\"⪸\",\"succcurlyeq;\":\"≽\",\"Succeeds;\":\"≻\",\"SucceedsEqual;\":\"⪰\",\"SucceedsSlantEqual;\":\"≽\",\"SucceedsTilde;\":\"≿\",\"succeq;\":\"⪰\",\"succnapprox;\":\"⪺\",\"succneqq;\":\"⪶\",\"succnsim;\":\"⋩\",\"succsim;\":\"≿\",\"SuchThat;\":\"∋\",\"Sum;\":\"∑\",\"sum;\":\"∑\",\"sung;\":\"♪\",\"Sup;\":\"⋑\",\"sup;\":\"⊃\",\"sup1;\":\"¹\",sup1:\"¹\",\"sup2;\":\"²\",sup2:\"²\",\"sup3;\":\"³\",sup3:\"³\",\"supdot;\":\"⪾\",\"supdsub;\":\"⫘\",\"supE;\":\"⫆\",\"supe;\":\"⊇\",\"supedot;\":\"⫄\",\"Superset;\":\"⊃\",\"SupersetEqual;\":\"⊇\",\"suphsol;\":\"⟉\",\"suphsub;\":\"⫗\",\"suplarr;\":\"⥻\",\"supmult;\":\"⫂\",\"supnE;\":\"⫌\",\"supne;\":\"⊋\",\"supplus;\":\"⫀\",\"Supset;\":\"⋑\",\"supset;\":\"⊃\",\"supseteq;\":\"⊇\",\"supseteqq;\":\"⫆\",\"supsetneq;\":\"⊋\",\"supsetneqq;\":\"⫌\",\"supsim;\":\"⫈\",\"supsub;\":\"⫔\",\"supsup;\":\"⫖\",\"swarhk;\":\"⤦\",\"swArr;\":\"⇙\",\"swarr;\":\"↙\",\"swarrow;\":\"↙\",\"swnwar;\":\"⤪\",\"szlig;\":\"ß\",szlig:\"ß\",\"Tab;\":\"\\t\",\"target;\":\"⌖\",\"Tau;\":\"Τ\",\"tau;\":\"τ\",\"tbrk;\":\"⎴\",\"Tcaron;\":\"Ť\",\"tcaron;\":\"ť\",\"Tcedil;\":\"Ţ\",\"tcedil;\":\"ţ\",\"Tcy;\":\"Т\",\"tcy;\":\"т\",\"tdot;\":\"⃛\",\"telrec;\":\"⌕\",\"Tfr;\":\"𝔗\",\"tfr;\":\"𝔱\",\"there4;\":\"∴\",\"Therefore;\":\"∴\",\"therefore;\":\"∴\",\"Theta;\":\"Θ\",\"theta;\":\"θ\",\"thetasym;\":\"ϑ\",\"thetav;\":\"ϑ\",\"thickapprox;\":\"≈\",\"thicksim;\":\"∼\",\"ThickSpace;\":\"  \",\"thinsp;\":\" \",\"ThinSpace;\":\" \",\"thkap;\":\"≈\",\"thksim;\":\"∼\",\"THORN;\":\"Þ\",THORN:\"Þ\",\"thorn;\":\"þ\",thorn:\"þ\",\"Tilde;\":\"∼\",\"tilde;\":\"˜\",\"TildeEqual;\":\"≃\",\"TildeFullEqual;\":\"≅\",\"TildeTilde;\":\"≈\",\"times;\":\"×\",times:\"×\",\"timesb;\":\"⊠\",\"timesbar;\":\"⨱\",\"timesd;\":\"⨰\",\"tint;\":\"∭\",\"toea;\":\"⤨\",\"top;\":\"⊤\",\"topbot;\":\"⌶\",\"topcir;\":\"⫱\",\"Topf;\":\"𝕋\",\"topf;\":\"𝕥\",\"topfork;\":\"⫚\",\"tosa;\":\"⤩\",\"tprime;\":\"‴\",\"TRADE;\":\"™\",\"trade;\":\"™\",\"triangle;\":\"▵\",\"triangledown;\":\"▿\",\"triangleleft;\":\"◃\",\"trianglelefteq;\":\"⊴\",\"triangleq;\":\"≜\",\"triangleright;\":\"▹\",\"trianglerighteq;\":\"⊵\",\"tridot;\":\"◬\",\"trie;\":\"≜\",\"triminus;\":\"⨺\",\"TripleDot;\":\"⃛\",\"triplus;\":\"⨹\",\"trisb;\":\"⧍\",\"tritime;\":\"⨻\",\"trpezium;\":\"⏢\",\"Tscr;\":\"𝒯\",\"tscr;\":\"𝓉\",\"TScy;\":\"Ц\",\"tscy;\":\"ц\",\"TSHcy;\":\"Ћ\",\"tshcy;\":\"ћ\",\"Tstrok;\":\"Ŧ\",\"tstrok;\":\"ŧ\",\"twixt;\":\"≬\",\"twoheadleftarrow;\":\"↞\",\"twoheadrightarrow;\":\"↠\",\"Uacute;\":\"Ú\",Uacute:\"Ú\",\"uacute;\":\"ú\",uacute:\"ú\",\"Uarr;\":\"↟\",\"uArr;\":\"⇑\",\"uarr;\":\"↑\",\"Uarrocir;\":\"⥉\",\"Ubrcy;\":\"Ў\",\"ubrcy;\":\"ў\",\"Ubreve;\":\"Ŭ\",\"ubreve;\":\"ŭ\",\"Ucirc;\":\"Û\",Ucirc:\"Û\",\"ucirc;\":\"û\",ucirc:\"û\",\"Ucy;\":\"У\",\"ucy;\":\"у\",\"udarr;\":\"⇅\",\"Udblac;\":\"Ű\",\"udblac;\":\"ű\",\"udhar;\":\"⥮\",\"ufisht;\":\"⥾\",\"Ufr;\":\"𝔘\",\"ufr;\":\"𝔲\",\"Ugrave;\":\"Ù\",Ugrave:\"Ù\",\"ugrave;\":\"ù\",ugrave:\"ù\",\"uHar;\":\"⥣\",\"uharl;\":\"↿\",\"uharr;\":\"↾\",\"uhblk;\":\"▀\",\"ulcorn;\":\"⌜\",\"ulcorner;\":\"⌜\",\"ulcrop;\":\"⌏\",\"ultri;\":\"◸\",\"Umacr;\":\"Ū\",\"umacr;\":\"ū\",\"uml;\":\"¨\",uml:\"¨\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"⏟\",\"UnderBracket;\":\"⎵\",\"UnderParenthesis;\":\"⏝\",\"Union;\":\"⋃\",\"UnionPlus;\":\"⊎\",\"Uogon;\":\"Ų\",\"uogon;\":\"ų\",\"Uopf;\":\"𝕌\",\"uopf;\":\"𝕦\",\"UpArrow;\":\"↑\",\"Uparrow;\":\"⇑\",\"uparrow;\":\"↑\",\"UpArrowBar;\":\"⤒\",\"UpArrowDownArrow;\":\"⇅\",\"UpDownArrow;\":\"↕\",\"Updownarrow;\":\"⇕\",\"updownarrow;\":\"↕\",\"UpEquilibrium;\":\"⥮\",\"upharpoonleft;\":\"↿\",\"upharpoonright;\":\"↾\",\"uplus;\":\"⊎\",\"UpperLeftArrow;\":\"↖\",\"UpperRightArrow;\":\"↗\",\"Upsi;\":\"ϒ\",\"upsi;\":\"υ\",\"upsih;\":\"ϒ\",\"Upsilon;\":\"Υ\",\"upsilon;\":\"υ\",\"UpTee;\":\"⊥\",\"UpTeeArrow;\":\"↥\",\"upuparrows;\":\"⇈\",\"urcorn;\":\"⌝\",\"urcorner;\":\"⌝\",\"urcrop;\":\"⌎\",\"Uring;\":\"Ů\",\"uring;\":\"ů\",\"urtri;\":\"◹\",\"Uscr;\":\"𝒰\",\"uscr;\":\"𝓊\",\"utdot;\":\"⋰\",\"Utilde;\":\"Ũ\",\"utilde;\":\"ũ\",\"utri;\":\"▵\",\"utrif;\":\"▴\",\"uuarr;\":\"⇈\",\"Uuml;\":\"Ü\",Uuml:\"Ü\",\"uuml;\":\"ü\",uuml:\"ü\",\"uwangle;\":\"⦧\",\"vangrt;\":\"⦜\",\"varepsilon;\":\"ϵ\",\"varkappa;\":\"ϰ\",\"varnothing;\":\"∅\",\"varphi;\":\"ϕ\",\"varpi;\":\"ϖ\",\"varpropto;\":\"∝\",\"vArr;\":\"⇕\",\"varr;\":\"↕\",\"varrho;\":\"ϱ\",\"varsigma;\":\"ς\",\"varsubsetneq;\":\"⊊︀\",\"varsubsetneqq;\":\"⫋︀\",\"varsupsetneq;\":\"⊋︀\",\"varsupsetneqq;\":\"⫌︀\",\"vartheta;\":\"ϑ\",\"vartriangleleft;\":\"⊲\",\"vartriangleright;\":\"⊳\",\"Vbar;\":\"⫫\",\"vBar;\":\"⫨\",\"vBarv;\":\"⫩\",\"Vcy;\":\"В\",\"vcy;\":\"в\",\"VDash;\":\"⊫\",\"Vdash;\":\"⊩\",\"vDash;\":\"⊨\",\"vdash;\":\"⊢\",\"Vdashl;\":\"⫦\",\"Vee;\":\"⋁\",\"vee;\":\"∨\",\"veebar;\":\"⊻\",\"veeeq;\":\"≚\",\"vellip;\":\"⋮\",\"Verbar;\":\"‖\",\"verbar;\":\"|\",\"Vert;\":\"‖\",\"vert;\":\"|\",\"VerticalBar;\":\"∣\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"❘\",\"VerticalTilde;\":\"≀\",\"VeryThinSpace;\":\" \",\"Vfr;\":\"𝔙\",\"vfr;\":\"𝔳\",\"vltri;\":\"⊲\",\"vnsub;\":\"⊂⃒\",\"vnsup;\":\"⊃⃒\",\"Vopf;\":\"𝕍\",\"vopf;\":\"𝕧\",\"vprop;\":\"∝\",\"vrtri;\":\"⊳\",\"Vscr;\":\"𝒱\",\"vscr;\":\"𝓋\",\"vsubnE;\":\"⫋︀\",\"vsubne;\":\"⊊︀\",\"vsupnE;\":\"⫌︀\",\"vsupne;\":\"⊋︀\",\"Vvdash;\":\"⊪\",\"vzigzag;\":\"⦚\",\"Wcirc;\":\"Ŵ\",\"wcirc;\":\"ŵ\",\"wedbar;\":\"⩟\",\"Wedge;\":\"⋀\",\"wedge;\":\"∧\",\"wedgeq;\":\"≙\",\"weierp;\":\"℘\",\"Wfr;\":\"𝔚\",\"wfr;\":\"𝔴\",\"Wopf;\":\"𝕎\",\"wopf;\":\"𝕨\",\"wp;\":\"℘\",\"wr;\":\"≀\",\"wreath;\":\"≀\",\"Wscr;\":\"𝒲\",\"wscr;\":\"𝓌\",\"xcap;\":\"⋂\",\"xcirc;\":\"◯\",\"xcup;\":\"⋃\",\"xdtri;\":\"▽\",\"Xfr;\":\"𝔛\",\"xfr;\":\"𝔵\",\"xhArr;\":\"⟺\",\"xharr;\":\"⟷\",\"Xi;\":\"Ξ\",\"xi;\":\"ξ\",\"xlArr;\":\"⟸\",\"xlarr;\":\"⟵\",\"xmap;\":\"⟼\",\"xnis;\":\"⋻\",\"xodot;\":\"⨀\",\"Xopf;\":\"𝕏\",\"xopf;\":\"𝕩\",\"xoplus;\":\"⨁\",\"xotime;\":\"⨂\",\"xrArr;\":\"⟹\",\"xrarr;\":\"⟶\",\"Xscr;\":\"𝒳\",\"xscr;\":\"𝓍\",\"xsqcup;\":\"⨆\",\"xuplus;\":\"⨄\",\"xutri;\":\"△\",\"xvee;\":\"⋁\",\"xwedge;\":\"⋀\",\"Yacute;\":\"Ý\",Yacute:\"Ý\",\"yacute;\":\"ý\",yacute:\"ý\",\"YAcy;\":\"Я\",\"yacy;\":\"я\",\"Ycirc;\":\"Ŷ\",\"ycirc;\":\"ŷ\",\"Ycy;\":\"Ы\",\"ycy;\":\"ы\",\"yen;\":\"¥\",yen:\"¥\",\"Yfr;\":\"𝔜\",\"yfr;\":\"𝔶\",\"YIcy;\":\"Ї\",\"yicy;\":\"ї\",\"Yopf;\":\"𝕐\",\"yopf;\":\"𝕪\",\"Yscr;\":\"𝒴\",\"yscr;\":\"𝓎\",\"YUcy;\":\"Ю\",\"yucy;\":\"ю\",\"Yuml;\":\"Ÿ\",\"yuml;\":\"ÿ\",yuml:\"ÿ\",\"Zacute;\":\"Ź\",\"zacute;\":\"ź\",\"Zcaron;\":\"Ž\",\"zcaron;\":\"ž\",\"Zcy;\":\"З\",\"zcy;\":\"з\",\"Zdot;\":\"Ż\",\"zdot;\":\"ż\",\"zeetrf;\":\"ℨ\",\"ZeroWidthSpace;\":\"​\",\"Zeta;\":\"Ζ\",\"zeta;\":\"ζ\",\"Zfr;\":\"ℨ\",\"zfr;\":\"𝔷\",\"ZHcy;\":\"Ж\",\"zhcy;\":\"ж\",\"zigrarr;\":\"⇝\",\"Zopf;\":\"ℤ\",\"zopf;\":\"𝕫\",\"Zscr;\":\"𝒵\",\"zscr;\":\"𝓏\",\"zwj;\":\"‍\",\"zwnj;\":\"‌\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n};var n=\"a\".charCodeAt(0),i=\"z\".charCodeAt(0),r=\"A\".charCodeAt(0),a=\"Z\".charCodeAt(0),o=\"0\".charCodeAt(0),s=\"9\".charCodeAt(0);t.isLetterOrDigit=function(e,t){var l=e.charCodeAt(t);return n<=l&&l<=i||r<=l&&l<=a||o<=l&&l<=s}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/markup\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalizeMarkupContent=function(e){if(e)return\"string\"==typeof e?{kind:\"markdown\",value:e}:{kind:\"markdown\",value:e.value}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\",\"../utils/markup\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/markup\"),i=function(){function e(e,t){var n=this;this.id=e,this._tags=[],this._tagMap={},this._attributeMap={},this._valueSetMap={},this._tags=t.tags||[],this._globalAttributes=t.globalAttributes||[],this._tags.forEach((function(e){n._tagMap[e.name]=e,e.attributes&&e.attributes.forEach((function(e){n._attributeMap[e.name]=e}))})),this._globalAttributes.forEach((function(e){n._attributeMap[e.name]=e})),t.valueSets&&t.valueSets.forEach((function(e){n._valueSetMap[e.name]=e.values}))}return e.prototype.isApplicable=function(){return!0},e.prototype.getId=function(){return this.id},e.prototype.provideTags=function(){return this._tags},e.prototype.provideAttributes=function(e){var t=[],n=function(e){t.push(e)};return this._tagMap[e]&&this._tagMap[e].attributes.forEach((function(e){n(e)})),this._globalAttributes.forEach((function(e){n(e)})),t},e.prototype.provideValues=function(e,t){var n=this,i=[],r=function(e){e.forEach((function(e){e.name===t&&(e.values&&e.values.forEach((function(e){i.push(e)})),e.valueSet&&n._valueSetMap[e.valueSet]&&n._valueSetMap[e.valueSet].forEach((function(e){i.push(e)})))}))};return this._tagMap[e]?(r(this._tagMap[e].attributes),r(this._globalAttributes),i):[]},e}();t.HTMLDataProvider=i,t.generateDocumentation=function(e,t){var i={kind:t?\"markdown\":\"plaintext\",value:\"\"};if(e.description){var r=n.normalizeMarkupContent(e.description);r&&(i.value+=r.value)}return e.references&&e.references.length>0&&(i.value+=\"\\n\\n\",i.value+=t?e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"):e.references.map((function(e){return e.name+\": \"+e.url})).join(\"\\n\")),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.htmlData={version:1.1,tags:[{name:\"html\",description:{kind:\"markdown\",value:\"The html element represents the root of an HTML document.\"},attributes:[{name:\"manifest\",description:{kind:\"markdown\",value:\"Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details.\"}},{name:\"version\",description:'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'},{name:\"xmlns\",description:'Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/html\"}]},{name:\"head\",description:{kind:\"markdown\",value:\"The head element represents a collection of metadata for the Document.\"},attributes:[{name:\"profile\",description:\"The URIs of one or more metadata profiles, separated by white space.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/head\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/title\"}]},{name:\"base\",description:{kind:\"markdown\",value:\"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed.\"}},{name:\"target\",description:{kind:\"markdown\",value:\"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the result into a new unnamed browsing context.\\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n\\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/base\"}]},{name:\"link\",description:{kind:\"markdown\",value:\"The link element allows authors to link their document to other resources.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\n`anonymous`\\n\\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\\'s credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"media\",description:{kind:\"markdown\",value:\"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\\n\\n**Notes:**\\n\\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:\"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports.'}},{name:\"sizes\",description:{kind:\"markdown\",value:\"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\\n\\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\\n\\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it.\"}},{name:\"as\",description:'This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.\") request header.'},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:'**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\\n\\n**`high`**: Indicates to the browser that the resource is of **high** priority.\\n\\n**`low`**: Indicates to the browser that the resource is of **low** priority.\\n\\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present.'},{name:\"integrity\",description:\"Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"referrerpolicy\",description:'A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\\'s path.\\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'},{name:\"title\",description:'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/link\"}]},{name:\"meta\",description:{kind:\"markdown\",value:\"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\\n\\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\\n\\n*   `application-name` which defines the name of the application running in the web page.\\n    \\n    **Note:**\\n    \\n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document\\'s title that is shown in a browser\\'s title bar or a page\\'s tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\\n    *   Simple web pages shouldn\\'t define an application-name.\\n    \\n*   `author` which defines the name of the document\\'s author.\\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\\n*   `generator` which contains the identifier of the software that generated the page.\\n*   `keywords` which contains words relevant to the page\\'s content separated by commas.\\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\\n    \\n    Values for the `content` attribute of `<meta name=\"referrer\">`\\n    \\n    `no-referrer`\\n    \\n    Do not send a HTTP `Referrer` header.\\n    \\n    `origin`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\\n    \\n    `no-referrer-when-downgrade`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\\n    \\n    `origin-when-cross-origin`\\n    \\n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\\n    \\n    `same-origin`\\n    \\n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\\n    \\n    `strict-origin`\\n    \\n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\\'t send it to a less secure destination (HTTPS->HTTP).\\n    \\n    `strict-origin-when-cross-origin`\\n    \\n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\\n    \\n    `unsafe-URL`\\n    \\n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\\n    \\n    **Notes:**\\n    \\n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\\n    *   Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\\n    \\n\\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\\n\\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\\n*   `publisher` which defines the name of the document\\'s publisher.\\n*   `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\\n    \\n    Values for the content of `<meta name=\"robots\">`\\n    \\n    Value\\n    \\n    Description\\n    \\n    Used by\\n    \\n    `index`\\n    \\n    Allows the robot to index the page (default).\\n    \\n    All\\n    \\n    `noindex`\\n    \\n    Requests the robot to not index the page.\\n    \\n    All\\n    \\n    `follow`\\n    \\n    Allows the robot to follow the links on the page (default).\\n    \\n    All\\n    \\n    `nofollow`\\n    \\n    Requests the robot to not follow the links on the page.\\n    \\n    All\\n    \\n    `none`\\n    \\n    Equivalent to `noindex, nofollow`\\n    \\n    [Google](https://support.google.com/webmasters/answer/79812)\\n    \\n    `noodp`\\n    \\n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\\n    \\n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noarchive`\\n    \\n    Requests the search engine not to cache the page content.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `nosnippet`\\n    \\n    Prevents displaying any description of the page in search engine results.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noimageindex`\\n    \\n    Requests this page not to appear as the referring page of an indexed image.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\\n    \\n    `nocache`\\n    \\n    Synonym of `noarchive`.\\n    \\n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    **Notes:**\\n    \\n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.\")_ file.\\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\\'s behaviour is undefined and may vary between them.\\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\\n    \\n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\\n    \\n    Values for the content of `<meta name=\"viewport\">`\\n    \\n    Value\\n    \\n    Possible subvalues\\n    \\n    Description\\n    \\n    `width`\\n    \\n    A positive integer number, or the text `device-width`\\n    \\n    Defines the pixel width of the viewport that you want the web site to be rendered at.\\n    \\n    `height`\\n    \\n    A positive integer, or the text `device-height`\\n    \\n    Defines the height of the viewport. Not used by any browser.\\n    \\n    `initial-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\\n    \\n    `maximum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `minimum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `user-scalable`\\n    \\n    `yes` or `no`\\n    \\n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\\n    \\n    Specification\\n    \\n    Status\\n    \\n    Comment\\n    \\n    [CSS Device Adaptation  \\n    The definition of \\'<meta name=\"viewport\">\\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\\n    \\n    Working Draft\\n    \\n    Non-normatively describes the Viewport META element\\n    \\n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\\'s primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\\n    \\n    **Notes:**\\n    \\n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\\n    *   The default values may vary between devices and browsers.\\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\").'}},{name:\"http-equiv\",description:{kind:\"markdown\",value:'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\\n\\n*   `\"content-language\"`  \\n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\\n    \\n*   `\"content-security-policy\"`  \\n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\\n*   `\"content-type\"`  \\n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \\'`text/html`\\' followed by a character set with the following syntax: \\'`; charset=_IANAcharset_`\\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\\n    \\n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can\\'t change documents\\' types in XHTML or HTML5\\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\\n    \\n*   `\"refresh\"`  \\n    This instruction specifies:\\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \\'`;url=`\\', and a valid URL.\\n*   `\"set-cookie\"`  \\n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\\n    \\n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'}},{name:\"content\",description:{kind:\"markdown\",value:\"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used.\"}},{name:\"charset\",description:{kind:\"markdown\",value:'This attribute declares the page\\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\\'t request a specific encoding, it suggests:\\n\\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\\n\\n**Note:** ASCII-incompatible encodings are those that don\\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\\n\\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\\n\\n**Notes:**\\n\\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page\\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\\n*   It is strongly recommended to define the character encoding. If a page\\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'}},{name:\"scheme\",description:\"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\\n\\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meta\"}]},{name:\"style\",description:{kind:\"markdown\",value:\"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.\"},attributes:[{name:\"media\",description:{kind:\"markdown\",value:\"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing.\"}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents.\"}},{name:\"scoped\",valueSet:\"v\"},{name:\"title\",description:\"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/style\"}]},{name:\"body\",description:{kind:\"markdown\",value:\"The body element represents the content of the document.\"},attributes:[{name:\"onafterprint\",description:{kind:\"markdown\",value:\"Function to call after the user has printed the document.\"}},{name:\"onbeforeprint\",description:{kind:\"markdown\",value:\"Function to call when the user requests printing of the document.\"}},{name:\"onbeforeunload\",description:{kind:\"markdown\",value:\"Function to call when the document is about to be unloaded.\"}},{name:\"onhashchange\",description:{kind:\"markdown\",value:\"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed.\"}},{name:\"onlanguagechange\",description:{kind:\"markdown\",value:\"Function to call when the preferred languages changed.\"}},{name:\"onmessage\",description:{kind:\"markdown\",value:\"Function to call when the document has received a message.\"}},{name:\"onoffline\",description:{kind:\"markdown\",value:\"Function to call when network communication has failed.\"}},{name:\"ononline\",description:{kind:\"markdown\",value:\"Function to call when network communication has been restored.\"}},{name:\"onpagehide\"},{name:\"onpageshow\"},{name:\"onpopstate\",description:{kind:\"markdown\",value:\"Function to call when the user has navigated session history.\"}},{name:\"onstorage\",description:{kind:\"markdown\",value:\"Function to call when the storage area has changed.\"}},{name:\"onunload\",description:{kind:\"markdown\",value:\"Function to call when the document is going away.\"}},{name:\"alink\",description:'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._'},{name:\"background\",description:'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._'},{name:\"bgcolor\",description:'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._'},{name:\"bottommargin\",description:'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"leftmargin\",description:'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"link\",description:'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._'},{name:\"onblur\",description:\"Function to call when the document loses focus.\"},{name:\"onerror\",description:\"Function to call when the document fails to load properly.\"},{name:\"onfocus\",description:\"Function to call when the document receives focus.\"},{name:\"onload\",description:\"Function to call when the document has finished loading.\"},{name:\"onredo\",description:\"Function to call when the user has moved forward in undo transaction history.\"},{name:\"onresize\",description:\"Function to call when the document has been resized.\"},{name:\"onundo\",description:\"Function to call when the user has moved backward in undo transaction history.\"},{name:\"rightmargin\",description:'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"text\",description:'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property on the element instead._'},{name:\"topmargin\",description:'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"vlink\",description:'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/body\"}]},{name:\"article\",description:{kind:\"markdown\",value:\"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/article\"}]},{name:\"section\",description:{kind:\"markdown\",value:\"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/section\"}]},{name:\"nav\",description:{kind:\"markdown\",value:\"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/nav\"}]},{name:\"aside\",description:{kind:\"markdown\",value:\"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/aside\"}]},{name:\"h1\",description:{kind:\"markdown\",value:\"The h1 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h2\",description:{kind:\"markdown\",value:\"The h2 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h3\",description:{kind:\"markdown\",value:\"The h3 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h4\",description:{kind:\"markdown\",value:\"The h4 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h5\",description:{kind:\"markdown\",value:\"The h5 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h6\",description:{kind:\"markdown\",value:\"The h6 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"header\",description:{kind:\"markdown\",value:\"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/header\"}]},{name:\"footer\",description:{kind:\"markdown\",value:\"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/footer\"}]},{name:\"address\",description:{kind:\"markdown\",value:\"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/address\"}]},{name:\"p\",description:{kind:\"markdown\",value:\"The p element represents a paragraph.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/p\"}]},{name:\"hr\",description:{kind:\"markdown\",value:\"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book.\"},attributes:[{name:\"align\",description:\"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`.\"},{name:\"color\",description:\"Sets the color of the rule through color name or hexadecimal value.\"},{name:\"noshade\",description:\"Sets the rule to have no shading.\"},{name:\"size\",description:\"Sets the height, in pixels, of the rule.\"},{name:\"width\",description:\"Sets the length of the rule on the page through a pixel or percentage value.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/hr\"}]},{name:\"pre\",description:{kind:\"markdown\",value:\"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.\"},attributes:[{name:\"cols\",description:'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"width\",description:'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"wrap\",description:'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/pre\"}]},{name:\"blockquote\",description:{kind:\"markdown\",value:\"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote\"}]},{name:\"ol\",description:{kind:\"markdown\",value:\"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.\"},attributes:[{name:\"reversed\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute specifies that the items of the list are specified in reversed order.\"}},{name:\"start\",description:{kind:\"markdown\",value:'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'}},{name:\"type\",valueSet:\"lt\",description:{kind:\"markdown\",value:\"Indicates the numbering type:\\n\\n*   `'a'` indicates lowercase letters,\\n*   `'A'` indicates uppercase letters,\\n*   `'i'` indicates lowercase Roman numerals,\\n*   `'I'` indicates uppercase Roman numerals,\\n*   and `'1'` indicates numbers (default).\\n\\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \\\"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\\\") element.\\n\\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \\\"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\\\") property should be used instead.\"}},{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ol\"}]},{name:\"ul\",description:{kind:\"markdown\",value:\"The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document.\"},attributes:[{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ul\"}]},{name:\"li\",description:{kind:\"markdown\",value:\"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed.'}},{name:\"type\",description:'This character attribute indicates the numbering type:\\n\\n*   `a`: lowercase letters\\n*   `A`: uppercase letters\\n*   `i`: lowercase Roman numerals\\n*   `I`: uppercase Roman numerals\\n*   `1`: numbers\\n\\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\\n\\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/li\"}]},{name:\"dl\",description:{kind:\"markdown\",value:\"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dl\"}]},{name:\"dt\",description:{kind:\"markdown\",value:\"The dt element represents the term, or name, part of a term-description group in a description list (dl element).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dt\"}]},{name:\"dd\",description:{kind:\"markdown\",value:\"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element).\"},attributes:[{name:\"nowrap\",description:\"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dd\"}]},{name:\"figure\",description:{kind:\"markdown\",value:\"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figure\"}]},{name:\"figcaption\",description:{kind:\"markdown\",value:\"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption\"}]},{name:\"main\",description:{kind:\"markdown\",value:\"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/main\"}]},{name:\"div\",description:{kind:\"markdown\",value:\"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/div\"}]},{name:\"a\",description:{kind:\"markdown\",value:\"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"Contains a URL or a URL fragment that the hyperlink points to.\"}},{name:\"target\",description:{kind:\"markdown\",value:'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\\n\\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\\n*   `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\\n\\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\\n\\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\\'s performance may suffer. To avoid this use `rel=\"noopener\"`.'}},{name:\"download\",description:{kind:\"markdown\",value:\"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\\n\\n**Notes:**\\n\\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute.\"}},{name:\"ping\",description:{kind:\"markdown\",value:'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\").'}},{name:\"type\",description:{kind:\"markdown\",value:'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A MIME type (now properly called \"media type\", but also sometimes \"content type\") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).\") for the linked URL. It is purely advisory, with no built-in functionality.'}},{name:\"referrerpolicy\",description:\"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\\n\\n*   `'no-referrer'` means the `Referer:` header will not be sent.\\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\\n*   `'strict-origin-when-cross-origin'`\\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/a\"}]},{name:\"em\",description:{kind:\"markdown\",value:\"The em element represents stress emphasis of its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/em\"}]},{name:\"strong\",description:{kind:\"markdown\",value:\"The strong element represents strong importance, seriousness, or urgency for its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/strong\"}]},{name:\"small\",description:{kind:\"markdown\",value:\"The small element represents side comments such as small print.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/small\"}]},{name:\"s\",description:{kind:\"markdown\",value:\"The s element represents contents that are no longer accurate or no longer relevant.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/s\"}]},{name:\"cite\",description:{kind:\"markdown\",value:\"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/cite\"}]},{name:\"q\",description:{kind:\"markdown\",value:\"The q element represents some phrasing content quoted from another source.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/q\"}]},{name:\"dfn\",description:{kind:\"markdown\",value:\"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dfn\"}]},{name:\"abbr\",description:{kind:\"markdown\",value:\"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/abbr\"}]},{name:\"ruby\",description:{kind:\"markdown\",value:\"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ruby\"}]},{name:\"rb\",description:{kind:\"markdown\",value:\"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rb\"}]},{name:\"rt\",description:{kind:\"markdown\",value:\"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rt\"}]},{name:\"rp\",description:{kind:\"markdown\",value:\"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rp\"}]},{name:\"time\",description:{kind:\"markdown\",value:\"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.\"},attributes:[{name:\"datetime\",description:{kind:\"markdown\",value:\"This attribute indicates the time and/or date of the element and must be in one of the formats described below.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/time\"}]},{name:\"code\",description:{kind:\"markdown\",value:\"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/code\"}]},{name:\"var\",description:{kind:\"markdown\",value:\"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/var\"}]},{name:\"samp\",description:{kind:\"markdown\",value:\"The samp element represents sample or quoted output from another program or computing system.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/samp\"}]},{name:\"kbd\",description:{kind:\"markdown\",value:\"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/kbd\"}]},{name:\"sub\",description:{kind:\"markdown\",value:\"The sub element represents a subscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sub\"}]},{name:\"sup\",description:{kind:\"markdown\",value:\"The sup element represents a superscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sup\"}]},{name:\"i\",description:{kind:\"markdown\",value:\"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/i\"}]},{name:\"b\",description:{kind:\"markdown\",value:\"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/b\"}]},{name:\"u\",description:{kind:\"markdown\",value:\"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/u\"}]},{name:\"mark\",description:{kind:\"markdown\",value:\"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/mark\"}]},{name:\"bdi\",description:{kind:\"markdown\",value:\"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdi\"}]},{name:\"bdo\",description:{kind:\"markdown\",value:\"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]\"},attributes:[{name:\"dir\",description:\"The direction in which text should be rendered in this element's contents. Possible values are:\\n\\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\\n*   `rtl`: Indicates that the text should go in a right-to-left direction.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdo\"}]},{name:\"span\",description:{kind:\"markdown\",value:\"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/span\"}]},{name:\"br\",description:{kind:\"markdown\",value:\"The br element represents a line break.\"},attributes:[{name:\"clear\",description:\"Indicates where to begin the next line after the break.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/br\"}]},{name:\"wbr\",description:{kind:\"markdown\",value:\"The wbr element represents a line break opportunity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/wbr\"}]},{name:\"ins\",description:{kind:\"markdown\",value:\"The ins element represents an addition to the document.\"},attributes:[{name:\"cite\",description:\"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system.\"},{name:\"datetime\",description:'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ins\"}]},{name:\"del\",description:{kind:\"markdown\",value:\"The del element represents a removal from the document.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URI for a resource that explains the change (for example, meeting minutes).\"}},{name:\"datetime\",description:{kind:\"markdown\",value:'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/del\"}]},{name:\"picture\",description:{kind:\"markdown\",value:\"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/picture\"}]},{name:\"img\",description:{kind:\"markdown\",value:\"An img element represents an image.\"},attributes:[{name:\"alt\",description:{kind:\"markdown\",value:'This attribute defines an alternative text description of the image.\\n\\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\\n\\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'}},{name:\"src\",description:{kind:\"markdown\",value:\"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors.\"}},{name:\"srcset\",description:{kind:\"markdown\",value:\"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\\n\\n1.  a URL to an image,\\n2.  optionally, whitespace followed by one of:\\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\\n\\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\\n\\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\\n\\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example.\"}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:'}},{name:\"usemap\",description:{kind:\"markdown\",value:'The partial URL (starting with \\'#\\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\\n\\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element.'}},{name:\"ismap\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\\n\\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The intrinsic width of the image in pixels.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The intrinsic height of the image in pixels.\"}},{name:\"decoding\",description:\"Provides an image decoding hint to the browser. The allowed values are:\"},{name:\"decoding\",description:\"`sync`\\n\\nDecode the image synchronously for atomic presentation with other content.\\n\\n`async`\\n\\nDecode the image asynchronously to reduce delay in presenting other content.\\n\\n`auto`\\n\\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.\"},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:\"`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\\n\\n`high`: Indicates to the browser that the image is of **high** priority.\\n\\n`low`: Indicates to the browser that the image is of **low** priority.\"},{name:\"intrinsicsize\",description:\"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)\"},{name:\"referrerpolicy\",description:\"A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \\\"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\\\") header will not be sent.\\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.\"},{name:\"sizes\",description:\"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\\n\\n1.  a media condition. This must be omitted for the last item.\\n2.  a source size value.\\n\\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/img\"}]},{name:\"iframe\",description:{kind:\"markdown\",value:\"The iframe element represents a nested browsing context.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'}},{name:\"srcdoc\",description:{kind:\"markdown\",value:\"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute.\"}},{name:\"name\",description:{kind:\"markdown\",value:'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The Window interface\\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method.'}},{name:\"sandbox\",valueSet:\"sb\",description:{kind:\"markdown\",value:'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\\n\\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\\n*   `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\\n\\n**Notes about sandboxing:**\\n\\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'}},{name:\"seamless\",valueSet:\"v\"},{name:\"allowfullscreen\",valueSet:\"v\",description:{kind:\"markdown\",value:'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the frame in CSS pixels. Default is `300`.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the frame in CSS pixels. Default is `150`.\"}},{name:\"allow\",description:\"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`.\"},{name:\"allowpaymentrequest\",description:\"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API).\"},{name:\"allowpaymentrequest\",description:'This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`.'},{name:\"csp\",description:'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details.'},{name:\"importance\",description:\"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\\n\\n`auto` (default)\\n\\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\\n\\n`high`\\n\\nThe resource should be downloaded before other lower-priority page resources.\\n\\n`low`\\n\\nThe resource should be downloaded after other higher-priority page resources.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\\'s resource:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don\\'t send it to a less secure destination (HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/iframe\"}]},{name:\"embed\",description:{kind:\"markdown\",value:\"The embed element provides an integration point for an external (typically non-HTML) application or interactive content.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"The URL of the resource being embedded.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME type to use to select the plug-in to instantiate.\"}},{name:\"width\",description:{kind:\"markdown\",value:\"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/embed\"}]},{name:\"object\",description:{kind:\"markdown\",value:\"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin.\"},attributes:[{name:\"data\",description:{kind:\"markdown\",value:\"The address of the resource as a valid URL. At least one of **data** and **type** must be defined.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined.\"}},{name:\"typemustmatch\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of valid browsing context (HTML5), or the name of the control (HTML 4).\"}},{name:\"usemap\",description:{kind:\"markdown\",value:\"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \\\"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\\\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"archive\",description:\"A space-separated list of URIs for archives of resources for the object.\"},{name:\"border\",description:\"The width of a border around the control, in pixels.\"},{name:\"classid\",description:\"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute.\"},{name:\"codebase\",description:\"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document.\"},{name:\"codetype\",description:\"The content type of the data specified by **classid**.\"},{name:\"declare\",description:\"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused.\"},{name:\"standby\",description:\"A message that the browser can show while loading the object's implementation and data.\"},{name:\"tabindex\",description:\"The position of the element in the tabbing navigation order for the current document.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/object\"}]},{name:\"param\",description:{kind:\"markdown\",value:\"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"Name of the parameter.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"Specifies the value of the parameter.\"}},{name:\"type\",description:'Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value.'},{name:\"valuetype\",description:'Specifies the type of the `value` attribute. Possible values are:\\n\\n*   data: Default value. The value is passed to the object\\'s implementation as a string.\\n*   ref: The value is a URI to a resource where run-time values are stored.\\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/param\"}]},{name:\"video\",description:{kind:\"markdown\",value:\"A video element is used for playing videos or movies, and audio files with captions.\"},attributes:[{name:\"src\"},{name:\"crossorigin\",valueSet:\"xo\"},{name:\"poster\"},{name:\"preload\",valueSet:\"pl\"},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\"},{name:\"muted\",valueSet:\"v\"},{name:\"controls\",valueSet:\"v\"},{name:\"width\"},{name:\"height\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/video\"}]},{name:\"audio\",description:{kind:\"markdown\",value:\"An audio element represents a sound or audio stream.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\nanonymous\\n\\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\\n\\nuse-credentials\\n\\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\\n\\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'}},{name:\"preload\",valueSet:\"pl\",description:{kind:\"markdown\",value:\"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\\n\\n*   `none`: Indicates that the audio should not be preloaded.\\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\\n*   _empty string_: A synonym of the `auto` value.\\n\\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\\n\\n**Usage notes:**\\n\\n*   The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint.\"}},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\\n\\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio.\"}},{name:\"muted\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`.\"}},{name:\"controls\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/audio\"}]},{name:\"source\",description:{kind:\"markdown\",value:\"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs.\"}},{name:\"sizes\",description:'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \\nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'},{name:\"srcset\",description:\"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\\n\\n1.  one URL to an image,\\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\\n\\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \\nThe browser chooses the most adequate image to display at a given point of time.  \\nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \\\"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\\\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \\\"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\\\") element.\"},{name:\"media\",description:'[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/source\"}]},{name:\"track\",description:{kind:\"markdown\",value:\"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.\"},attributes:[{name:\"default\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element.\"}},{name:\"kind\",valueSet:\"tk\",description:{kind:\"markdown\",value:\"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\\n\\n*   `subtitles`\\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\\n*   `captions`\\n    *   Closed captions provide a transcription and possibly a translation of audio.\\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\\n    *   Suitable for users who are deaf or when the sound is muted.\\n*   `descriptions`\\n    *   Textual description of the video content.\\n    *   Suitable for users who are blind or where the video cannot be seen.\\n*   `chapters`\\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\\n*   `metadata`\\n    *   Tracks used by scripts. Not visible to the user.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"A user-readable title of the text track which is used by the browser when listing available text tracks.\"}},{name:\"src\",description:{kind:\"markdown\",value:'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'}},{name:\"srclang\",description:{kind:\"markdown\",value:\"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/track\"}]},{name:\"map\",description:{kind:\"markdown\",value:\"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/map\"}]},{name:\"area\",description:{kind:\"markdown\",value:\"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.\"},attributes:[{name:\"alt\"},{name:\"coords\"},{name:\"shape\",valueSet:\"sh\"},{name:\"href\"},{name:\"target\"},{name:\"download\"},{name:\"ping\"},{name:\"rel\"},{name:\"hreflang\"},{name:\"type\"},{name:\"accesskey\",description:\"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/area\"}]},{name:\"table\",description:{kind:\"markdown\",value:\"The table element represents data with more than one dimension, in the form of a table.\"},attributes:[{name:\"border\"},{name:\"align\",description:'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\\n\\n*   left: the table is displayed on the left side of the document;\\n*   center: the table is displayed in the center of the document;\\n*   right: the table is displayed on the right side of the document.\\n\\n**Usage Note**\\n\\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/table\"}]},{name:\"caption\",description:{kind:\"markdown\",value:\"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"align\",description:'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\\n\\n`left`\\n\\nThe caption is displayed to the left of the table.\\n\\n`top`\\n\\nThe caption is displayed above the table.\\n\\n`right`\\n\\nThe caption is displayed to the right of the table.\\n\\n`bottom`\\n\\nThe caption is displayed below the table.\\n\\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table\\'s <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/caption\"}]},{name:\"colgroup\",description:{kind:\"markdown\",value:\"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup\"}]},{name:\"col\",description:{kind:\"markdown\",value:\"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/col\"}]},{name:\"tbody\",description:{kind:\"markdown\",value:\"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tbody\"}]},{name:\"thead\",description:{kind:\"markdown\",value:\"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/thead\"}]},{name:\"tfoot\",description:{kind:\"markdown\",value:\"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot\"}]},{name:\"tr\",description:{kind:\"markdown\",value:\"The tr element represents a row of cells in a table.\"},attributes:[{name:\"align\",description:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell\\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\\n\\n`left`\\n\\nAlign the content of each cell at its left edge.\\n\\n`center`\\n\\nCenter the contents of each cell between their left and right edges.\\n\\n`right`\\n\\nAlign the content of each cell at its right edge.\\n\\n`justify`\\n\\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\\n\\n`char`\\n\\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\\n\\nIf no value is expressly set for `align`, the parent node\\'s value is inherited.\\n\\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row\\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tr\"}]},{name:\"td\",description:{kind:\"markdown\",value:\"The td element represents a data cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"abbr\",description:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute.\"},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/td\"}]},{name:\"th\",description:{kind:\"markdown\",value:\"The th element represents a header cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"scope\",valueSet:\"s\"},{name:\"sorted\"},{name:\"abbr\",description:{kind:\"markdown\",value:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\"}},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/th\"}]},{name:\"form\",description:{kind:\"markdown\",value:\"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.\"},attributes:[{name:\"accept-charset\",description:{kind:\"markdown\",value:'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element.  \\nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'}},{name:\"action\",description:{kind:\"markdown\",value:'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"autocomplete\",valueSet:\"o\",description:{kind:\"markdown\",value:\"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\\n\\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\"}},{name:\"enctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\\n*   `text/plain`: (HTML5)\\n\\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"method\",valueSet:\"m\",description:{kind:\"markdown\",value:'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \\'?\\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n*   `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\\n\\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5.\"}},{name:\"novalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form.'}},{name:\"target\",description:{kind:\"markdown\",value:'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\\n\\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"accept\",description:'A comma-separated list of content types that the server accepts.\\n\\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'},{name:\"autocapitalize\",description:\"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/form\"}]},{name:\"label\",description:{kind:\"markdown\",value:\"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself.\"},attributes:[{name:\"form\",description:{kind:\"markdown\",value:'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"for\",description:{kind:\"markdown\",value:\"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\\n\\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/label\"}]},{name:\"input\",description:{kind:\"markdown\",value:\"The input element represents a typed data field, usually with a form control to allow the user to edit the data.\"},attributes:[{name:\"accept\"},{name:\"alt\"},{name:\"autocomplete\",valueSet:\"inputautocomplete\"},{name:\"autofocus\",valueSet:\"v\"},{name:\"checked\",valueSet:\"v\"},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\"},{name:\"form\"},{name:\"formaction\"},{name:\"formenctype\",valueSet:\"et\"},{name:\"formmethod\",valueSet:\"fm\"},{name:\"formnovalidate\",valueSet:\"v\"},{name:\"formtarget\"},{name:\"height\"},{name:\"inputmode\",valueSet:\"im\"},{name:\"list\"},{name:\"max\"},{name:\"maxlength\"},{name:\"min\"},{name:\"minlength\"},{name:\"multiple\",valueSet:\"v\"},{name:\"name\"},{name:\"pattern\"},{name:\"placeholder\"},{name:\"readonly\",valueSet:\"v\"},{name:\"required\",valueSet:\"v\"},{name:\"size\"},{name:\"src\"},{name:\"step\"},{name:\"type\",valueSet:\"t\"},{name:\"value\"},{name:\"width\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/input\"}]},{name:\"button\",description:{kind:\"markdown\",value:\"The button element represents a button labeled by its contents.\"},attributes:[{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\\n\\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements.'}},{name:\"formaction\",description:{kind:\"markdown\",value:\"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner.\"}},{name:\"formenctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\\n*   `text/plain`\\n\\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\\'s form owner.'}},{name:\"formmethod\",valueSet:\"fm\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: The data from the form are included in the body of the form and sent to the server.\\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n\\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner.\"}},{name:\"formnovalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.\"}},{name:\"formtarget\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed browsing context.\\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the button, which is submitted with the form data.\"}},{name:\"type\",valueSet:\"bt\",description:{kind:\"markdown\",value:\"The type of the button. Possible values are:\\n\\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\\n*   `reset`: The button resets all the controls to their initial values.\\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted.\"}},{name:\"autocomplete\",description:'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn\\'t return after refreshing the page\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/button\"}]},{name:\"select\",description:{kind:\"markdown\",value:\"The select element represents a control for selecting amongst a set of options.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent\\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent\\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute lets you specify the form element to which the select element is associated (that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"multiple\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"This attribute is used to specify the name of the control.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute indicating that an option with a non-empty string value must be selected.\"}},{name:\"size\",description:{kind:\"markdown\",value:\"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\\n\\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/select\"}]},{name:\"datalist\",description:{kind:\"markdown\",value:\"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/datalist\"}]},{name:\"optgroup\",description:{kind:\"markdown\",value:\"The optgroup element represents a group of option elements with a common label.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup\"}]},{name:\"option\",description:{kind:\"markdown\",value:\"The option element represents an option in a select element or as part of a list of suggestions in a datalist element.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element.'}},{name:\"label\",description:{kind:\"markdown\",value:\"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content.\"}},{name:\"selected\",valueSet:\"v\",description:{kind:\"markdown\",value:'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute.'}},{name:\"value\",description:{kind:\"markdown\",value:\"The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/option\"}]},{name:\"textarea\",description:{kind:\"markdown\",value:\"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\\n\\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\").'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"cols\",description:{kind:\"markdown\",value:\"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`.\"}},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'}},{name:\"inputmode\",valueSet:\"im\"},{name:\"maxlength\",description:{kind:\"markdown\",value:\"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.\"}},{name:\"minlength\",description:{kind:\"markdown\",value:\"The minimum number of characters (unicode code points) required that the user should enter.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the control.\"}},{name:\"placeholder\",description:{kind:\"markdown\",value:'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\\n\\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation.'}},{name:\"readonly\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute specifies that the user must fill in a value before submitting a form.\"}},{name:\"rows\",description:{kind:\"markdown\",value:\"The number of visible text lines for the control.\"}},{name:\"wrap\",valueSet:\"w\",description:{kind:\"markdown\",value:\"Indicates how the control wraps text. Possible values are:\\n\\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\\n\\nIf this attribute is not specified, `soft` is its default value.\"}},{name:\"autocapitalize\",description:\"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization.\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"},{name:\"spellcheck\",description:\"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\\n\\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\\n*   `false` : Indicates that the element should not be spell checked.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/textarea\"}]},{name:\"output\",description:{kind:\"markdown\",value:\"The output element represents the result of a calculation performed by the application, or the result of a user action.\"},attributes:[{name:\"for\",description:{kind:\"markdown\",value:\"A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/output\"}]},{name:\"progress\",description:{kind:\"markdown\",value:\"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/progress\"}]},{name:\"meter\",description:{kind:\"markdown\",value:\"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\\n\\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it.\"}},{name:\"min\",description:{kind:\"markdown\",value:\"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1.\"}},{name:\"low\",description:{kind:\"markdown\",value:\"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value.\"}},{name:\"high\",description:{kind:\"markdown\",value:\"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value.\"}},{name:\"optimum\",description:{kind:\"markdown\",value:\"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred.\"}},{name:\"form\",description:\"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meter\"}]},{name:\"fieldset\",description:{kind:\"markdown\",value:\"The fieldset element represents a set of form controls optionally grouped under a common name.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \\\"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\\\") element won't be disabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name associated with the group.\\n\\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset\"}]},{name:\"legend\",description:{kind:\"markdown\",value:\"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/legend\"}]},{name:\"details\",description:{kind:\"markdown\",value:\"The details element represents a disclosure widget from which the user can obtain additional information or controls.\"},attributes:[{name:\"open\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/details\"}]},{name:\"summary\",description:{kind:\"markdown\",value:\"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/summary\"}]},{name:\"dialog\",description:{kind:\"markdown\",value:\"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.\"},attributes:[{name:\"open\",description:\"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dialog\"}]},{name:\"script\",description:{kind:\"markdown\",value:\"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\\n\\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\\n\\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\\n*   **Any other value:** The embedded content is treated as a data block which won\\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\\n\\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\")).'}},{name:\"charset\"},{name:\"async\",valueSet:\"v\",description:{kind:\"markdown\",value:'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\\n\\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\\n\\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\\'t recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\\n\\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'}},{name:\"defer\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\\n\\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\\n\\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) to whitelist inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial.\"}},{name:\"integrity\",description:\"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"nomodule\",description:\"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don\\'t send it to a less secure destination (e.g. HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\\n\\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'},{name:\"text\",description:\"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/script\"}]},{name:\"noscript\",description:{kind:\"markdown\",value:\"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/noscript\"}]},{name:\"template\",description:{kind:\"markdown\",value:\"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/template\"}]},{name:\"canvas\",description:{kind:\"markdown\",value:\"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly.\"},attributes:[{name:\"width\",description:{kind:\"markdown\",value:\"The width of the coordinate space in CSS pixels. Defaults to 300.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the coordinate space in CSS pixels. Defaults to 150.\"}},{name:\"moz-opaque\",description:\"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \\\"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\\\") instead.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/canvas\"}]}],globalAttributes:[{name:\"accesskey\",description:{kind:\"markdown\",value:\"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey\"}]},{name:\"autocapitalize\",description:{kind:\"markdown\",value:\"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\\n\\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\\n*   `characters`, all letters should default to uppercase\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize\"}]},{name:\"class\",description:{kind:\"markdown\",value:'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](/en-US/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](/en-US/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\").'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class\"}]},{name:\"contenteditable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\\n\\n*   `true` or the _empty string_, which indicates that the element must be editable;\\n*   `false`, which indicates that the element must not be editable.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable\"}]},{name:\"contextmenu\",description:{kind:\"markdown\",value:'The `[**id**](#attr-id)` of a [`<menu>`](/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu\"}]},{name:\"dir\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\\n\\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element.\"},valueSet:\"d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir\"}]},{name:\"draggable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](/en-us/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `true`, which indicates that the element may be dragged\\n*   `false`, which indicates that the element may not be dragged.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable\"}]},{name:\"dropzone\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](/en-US/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\\n*   `link`, will create a link to the dragged data.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dropzone\"}]},{name:\"exportparts\",description:{kind:\"markdown\",value:\"Used to transitively export shadow parts from a nested shadow tree into a containing light tree.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts\"}]},{name:\"hidden\",description:{kind:\"markdown\",value:\"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden\"}]},{name:\"id\",description:{kind:\"markdown\",value:\"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id\"}]},{name:\"inputmode\",description:{kind:\"markdown\",value:'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode\"}]},{name:\"is\",description:{kind:\"markdown\",value:\"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](/en-US/docs/Web/Web_Components/Using_custom_elements) for more details).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is\"}]},{name:\"itemid\",description:{kind:\"markdown\",value:\"The unique, global identifier of an item.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid\"}]},{name:\"itemprop\",description:{kind:\"markdown\",value:\"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop\"}]},{name:\"itemref\",description:{kind:\"markdown\",value:\"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref\"}]},{name:\"itemscope\",description:{kind:\"markdown\",value:\"`itemscope` (usually) works along with `[itemtype](/en-US/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope\"}]},{name:\"itemtype\",description:{kind:\"markdown\",value:\"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](/en-US/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype\"}]},{name:\"lang\",description:{kind:\"markdown\",value:\"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang\"}]},{name:\"part\",description:{kind:\"markdown\",value:'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](/en-US/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part\"}]},{name:\"role\",valueSet:\"roles\"},{name:\"slot\",description:{kind:\"markdown\",value:\"Assigns a slot in a [shadow DOM](/en-US/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](/en-US/docs/Web/HTML/Element/slot \\\"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\\\") element whose `[name](/en-US/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot\"}]},{name:\"spellcheck\",description:{kind:\"markdown\",value:\"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\\n\\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\\n*   `false`, which indicates that the element should not be checked for spelling errors.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck\"}]},{name:\"style\",description:{kind:\"markdown\",value:'Contains [CSS](/en-US/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](/en-US/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style\"}]},{name:\"tabindex\",description:{kind:\"markdown\",value:\"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\\n\\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title\"}]},{name:\"translate\",description:{kind:\"markdown\",value:\"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](/en-US/docs/Web/API/Text \\\"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\\\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\\n\\n*   empty string and `yes`, which indicates that the element will be translated.\\n*   `no`, which indicates that the element will not be translated.\"},valueSet:\"y\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate\"}]},{name:\"onabort\",description:{kind:\"markdown\",value:\"The loading of a resource has been aborted.\"}},{name:\"onblur\",description:{kind:\"markdown\",value:\"An element has lost focus (does not bubble).\"}},{name:\"oncanplay\",description:{kind:\"markdown\",value:\"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\"}},{name:\"oncanplaythrough\",description:{kind:\"markdown\",value:\"The user agent can play the media up to its end without having to stop for further buffering of content.\"}},{name:\"onchange\",description:{kind:\"markdown\",value:\"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user.\"}},{name:\"onclick\",description:{kind:\"markdown\",value:\"A pointing device button has been pressed and released on an element.\"}},{name:\"oncontextmenu\",description:{kind:\"markdown\",value:\"The right button of the mouse is clicked (before the context menu is displayed).\"}},{name:\"ondblclick\",description:{kind:\"markdown\",value:\"A pointing device button is clicked twice on an element.\"}},{name:\"ondrag\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged (every 350ms).\"}},{name:\"ondragend\",description:{kind:\"markdown\",value:\"A drag operation is being ended (by releasing a mouse button or hitting the escape key).\"}},{name:\"ondragenter\",description:{kind:\"markdown\",value:\"A dragged element or text selection enters a valid drop target.\"}},{name:\"ondragleave\",description:{kind:\"markdown\",value:\"A dragged element or text selection leaves a valid drop target.\"}},{name:\"ondragover\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged over a valid drop target (every 350ms).\"}},{name:\"ondragstart\",description:{kind:\"markdown\",value:\"The user starts dragging an element or text selection.\"}},{name:\"ondrop\",description:{kind:\"markdown\",value:\"An element is dropped on a valid drop target.\"}},{name:\"ondurationchange\",description:{kind:\"markdown\",value:\"The duration attribute has been updated.\"}},{name:\"onemptied\",description:{kind:\"markdown\",value:\"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.\"}},{name:\"onended\",description:{kind:\"markdown\",value:\"Playback has stopped because the end of the media was reached.\"}},{name:\"onerror\",description:{kind:\"markdown\",value:\"A resource failed to load.\"}},{name:\"onfocus\",description:{kind:\"markdown\",value:\"An element has received focus (does not bubble).\"}},{name:\"onformchange\"},{name:\"onforminput\"},{name:\"oninput\",description:{kind:\"markdown\",value:\"The value of an element changes or the content of an element with the attribute contenteditable is modified.\"}},{name:\"oninvalid\",description:{kind:\"markdown\",value:\"A submittable element has been checked and doesn't satisfy its constraints.\"}},{name:\"onkeydown\",description:{kind:\"markdown\",value:\"A key is pressed down.\"}},{name:\"onkeypress\",description:{kind:\"markdown\",value:\"A key is pressed down and that key normally produces a character value (use input instead).\"}},{name:\"onkeyup\",description:{kind:\"markdown\",value:\"A key is released.\"}},{name:\"onload\",description:{kind:\"markdown\",value:\"A resource and its dependent resources have finished loading.\"}},{name:\"onloadeddata\",description:{kind:\"markdown\",value:\"The first frame of the media has finished loading.\"}},{name:\"onloadedmetadata\",description:{kind:\"markdown\",value:\"The metadata has been loaded.\"}},{name:\"onloadstart\",description:{kind:\"markdown\",value:\"Progress has begun.\"}},{name:\"onmousedown\",description:{kind:\"markdown\",value:\"A pointing device button (usually a mouse) is pressed on an element.\"}},{name:\"onmousemove\",description:{kind:\"markdown\",value:\"A pointing device is moved over an element.\"}},{name:\"onmouseout\",description:{kind:\"markdown\",value:\"A pointing device is moved off the element that has the listener attached or off one of its children.\"}},{name:\"onmouseover\",description:{kind:\"markdown\",value:\"A pointing device is moved onto the element that has the listener attached or onto one of its children.\"}},{name:\"onmouseup\",description:{kind:\"markdown\",value:\"A pointing device button is released over an element.\"}},{name:\"onmousewheel\"},{name:\"onpause\",description:{kind:\"markdown\",value:\"Playback has been paused.\"}},{name:\"onplay\",description:{kind:\"markdown\",value:\"Playback has begun.\"}},{name:\"onplaying\",description:{kind:\"markdown\",value:\"Playback is ready to start after having been paused or delayed due to lack of data.\"}},{name:\"onprogress\",description:{kind:\"markdown\",value:\"In progress.\"}},{name:\"onratechange\",description:{kind:\"markdown\",value:\"The playback rate has changed.\"}},{name:\"onreset\",description:{kind:\"markdown\",value:\"A form is reset.\"}},{name:\"onresize\",description:{kind:\"markdown\",value:\"The document view has been resized.\"}},{name:\"onreadystatechange\",description:{kind:\"markdown\",value:\"The readyState attribute of a document has changed.\"}},{name:\"onscroll\",description:{kind:\"markdown\",value:\"The document view or an element has been scrolled.\"}},{name:\"onseeked\",description:{kind:\"markdown\",value:\"A seek operation completed.\"}},{name:\"onseeking\",description:{kind:\"markdown\",value:\"A seek operation began.\"}},{name:\"onselect\",description:{kind:\"markdown\",value:\"Some text is being selected.\"}},{name:\"onshow\",description:{kind:\"markdown\",value:\"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute\"}},{name:\"onstalled\",description:{kind:\"markdown\",value:\"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\"}},{name:\"onsubmit\",description:{kind:\"markdown\",value:\"A form is submitted.\"}},{name:\"onsuspend\",description:{kind:\"markdown\",value:\"Media data loading has been suspended.\"}},{name:\"ontimeupdate\",description:{kind:\"markdown\",value:\"The time indicated by the currentTime attribute has been updated.\"}},{name:\"onvolumechange\",description:{kind:\"markdown\",value:\"The volume has changed.\"}},{name:\"onwaiting\",description:{kind:\"markdown\",value:\"Playback has stopped because of a temporary lack of data.\"}},{name:\"aria-activedescendant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant\"}],description:{kind:\"markdown\",value:\"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application).\"}},{name:\"aria-atomic\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic\"}],description:{kind:\"markdown\",value:\"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute.\"}},{name:\"aria-autocomplete\",valueSet:\"autocomplete\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete\"}],description:{kind:\"markdown\",value:\"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.\"}},{name:\"aria-busy\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-busy\"}],description:{kind:\"markdown\",value:\"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user.\"}},{name:\"aria-checked\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-checked\"}],description:{kind:\"markdown\",value:'Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-colcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex).\"}},{name:\"aria-colindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-colspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan\"}],description:{kind:\"markdown\",value:\"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-controls\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-controls\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns).\"}},{name:\"aria-current\",valueSet:\"current\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-current\"}],description:{kind:\"markdown\",value:\"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements.\"}},{name:\"aria-describedat\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedat\"}]},{name:\"aria-describedby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-disabled\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly).\"}},{name:\"aria-dropeffect\",valueSet:\"dropeffect\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect\"}],description:{kind:\"markdown\",value:\"\\\\[Deprecated in ARIA 1.1\\\\] Indicates what functions can be performed when a dragged object is released on the drop target.\"}},{name:\"aria-errormessage\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-expanded\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\"}],description:{kind:\"markdown\",value:\"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.\"}},{name:\"aria-flowto\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto\"}],description:{kind:\"markdown\",value:\"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.\"}},{name:\"aria-grabbed\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed\"}],description:{kind:\"markdown\",value:'\\\\[Deprecated in ARIA 1.1\\\\] Indicates an element\\'s \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'}},{name:\"aria-haspopup\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\"}],description:{kind:\"markdown\",value:\"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-hidden\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden\"}],description:{kind:\"markdown\",value:\"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-invalid\",valueSet:\"invalid\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid\"}],description:{kind:\"markdown\",value:\"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage).\"}},{name:\"aria-kbdshortcuts\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-kbdshortcuts\"}]},{name:\"aria-label\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-label\"}],description:{kind:\"markdown\",value:\"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-labelledby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-level\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-level\"}],description:{kind:\"markdown\",value:\"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure.\"}},{name:\"aria-live\",valueSet:\"live\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-live\"}],description:{kind:\"markdown\",value:\"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region).\"}},{name:\"aria-modal\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-modal\"}],description:{kind:\"markdown\",value:\"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed.\"}},{name:\"aria-multiline\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline\"}],description:{kind:\"markdown\",value:\"Indicates whether a text box accepts multiple lines of input or only a single line.\"}},{name:\"aria-multiselectable\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable\"}],description:{kind:\"markdown\",value:\"Indicates that the user may select more than one item from the current selectable descendants.\"}},{name:\"aria-orientation\",valueSet:\"orientation\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation\"}],description:{kind:\"markdown\",value:\"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\"}},{name:\"aria-owns\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-owns\"}],description:{kind:\"markdown\",value:\"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls).\"}},{name:\"aria-placeholder\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder\"}],description:{kind:\"markdown\",value:\"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.\"}},{name:\"aria-posinset\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset\"}],description:{kind:\"markdown\",value:\"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize).\"}},{name:\"aria-pressed\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\"}],description:{kind:\"markdown\",value:'Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-readonly\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-relevant\",valueSet:\"relevant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant\"}],description:{kind:\"markdown\",value:\"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic).\"}},{name:\"aria-required\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-required\"}],description:{kind:\"markdown\",value:\"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted.\"}},{name:\"aria-roledescription\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription\"}],description:{kind:\"markdown\",value:\"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-rowcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex).\"}},{name:\"aria-rowindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-rowspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan\"}],description:{kind:\"markdown\",value:\"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-selected\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-selected\"}],description:{kind:\"markdown\",value:'Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'}},{name:\"aria-setsize\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize\"}],description:{kind:\"markdown\",value:\"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset).\"}},{name:\"aria-sort\",valueSet:\"sort\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-sort\"}],description:{kind:\"markdown\",value:\"Indicates if items in a table or grid are sorted in ascending or descending order.\"}},{name:\"aria-valuemax\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax\"}],description:{kind:\"markdown\",value:\"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuemin\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin\"}],description:{kind:\"markdown\",value:\"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuenow\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow\"}],description:{kind:\"markdown\",value:\"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext).\"}},{name:\"aria-valuetext\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\"}],description:{kind:\"markdown\",value:\"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-details\",description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-keyshortcuts\",description:{kind:\"markdown\",value:\"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\"}}],valueSets:[{name:\"b\",values:[{name:\"true\"},{name:\"false\"}]},{name:\"u\",values:[{name:\"true\"},{name:\"false\"},{name:\"undefined\"}]},{name:\"o\",values:[{name:\"on\"},{name:\"off\"}]},{name:\"y\",values:[{name:\"yes\"},{name:\"no\"}]},{name:\"w\",values:[{name:\"soft\"},{name:\"hard\"}]},{name:\"d\",values:[{name:\"ltr\"},{name:\"rtl\"},{name:\"auto\"}]},{name:\"m\",values:[{name:\"GET\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\"}},{name:\"POST\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server.\"}},{name:\"dialog\",description:{kind:\"markdown\",value:\"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted.\"}}]},{name:\"fm\",values:[{name:\"GET\"},{name:\"POST\"}]},{name:\"s\",values:[{name:\"row\"},{name:\"col\"},{name:\"rowgroup\"},{name:\"colgroup\"}]},{name:\"t\",values:[{name:\"hidden\"},{name:\"text\"},{name:\"search\"},{name:\"tel\"},{name:\"url\"},{name:\"email\"},{name:\"password\"},{name:\"datetime\"},{name:\"date\"},{name:\"month\"},{name:\"week\"},{name:\"time\"},{name:\"datetime-local\"},{name:\"number\"},{name:\"range\"},{name:\"color\"},{name:\"checkbox\"},{name:\"radio\"},{name:\"file\"},{name:\"submit\"},{name:\"image\"},{name:\"reset\"},{name:\"button\"}]},{name:\"im\",values:[{name:\"verbatim\"},{name:\"latin\"},{name:\"latin-name\"},{name:\"latin-prose\"},{name:\"full-width-latin\"},{name:\"kana\"},{name:\"kana-name\"},{name:\"katakana\"},{name:\"numeric\"},{name:\"tel\"},{name:\"email\"},{name:\"url\"}]},{name:\"bt\",values:[{name:\"button\"},{name:\"submit\"},{name:\"reset\"},{name:\"menu\"}]},{name:\"lt\",values:[{name:\"1\"},{name:\"a\"},{name:\"A\"},{name:\"i\"},{name:\"I\"}]},{name:\"mt\",values:[{name:\"context\"},{name:\"toolbar\"}]},{name:\"mit\",values:[{name:\"command\"},{name:\"checkbox\"},{name:\"radio\"}]},{name:\"et\",values:[{name:\"application/x-www-form-urlencoded\"},{name:\"multipart/form-data\"},{name:\"text/plain\"}]},{name:\"tk\",values:[{name:\"subtitles\"},{name:\"captions\"},{name:\"descriptions\"},{name:\"chapters\"},{name:\"metadata\"}]},{name:\"pl\",values:[{name:\"none\"},{name:\"metadata\"},{name:\"auto\"}]},{name:\"sh\",values:[{name:\"circle\"},{name:\"default\"},{name:\"poly\"},{name:\"rect\"}]},{name:\"xo\",values:[{name:\"anonymous\"},{name:\"use-credentials\"}]},{name:\"sb\",values:[{name:\"allow-forms\"},{name:\"allow-modals\"},{name:\"allow-pointer-lock\"},{name:\"allow-popups\"},{name:\"allow-popups-to-escape-sandbox\"},{name:\"allow-same-origin\"},{name:\"allow-scripts\"},{name:\"allow-top-navigation\"}]},{name:\"tristate\",values:[{name:\"true\"},{name:\"false\"},{name:\"mixed\"},{name:\"undefined\"}]},{name:\"inputautocomplete\",values:[{name:\"additional-name\"},{name:\"address-level1\"},{name:\"address-level2\"},{name:\"address-level3\"},{name:\"address-level4\"},{name:\"address-line1\"},{name:\"address-line2\"},{name:\"address-line3\"},{name:\"bday\"},{name:\"bday-year\"},{name:\"bday-day\"},{name:\"bday-month\"},{name:\"billing\"},{name:\"cc-additional-name\"},{name:\"cc-csc\"},{name:\"cc-exp\"},{name:\"cc-exp-month\"},{name:\"cc-exp-year\"},{name:\"cc-family-name\"},{name:\"cc-given-name\"},{name:\"cc-name\"},{name:\"cc-number\"},{name:\"cc-type\"},{name:\"country\"},{name:\"country-name\"},{name:\"current-password\"},{name:\"email\"},{name:\"family-name\"},{name:\"fax\"},{name:\"given-name\"},{name:\"home\"},{name:\"honorific-prefix\"},{name:\"honorific-suffix\"},{name:\"impp\"},{name:\"language\"},{name:\"mobile\"},{name:\"name\"},{name:\"new-password\"},{name:\"nickname\"},{name:\"organization\"},{name:\"organization-title\"},{name:\"pager\"},{name:\"photo\"},{name:\"postal-code\"},{name:\"sex\"},{name:\"shipping\"},{name:\"street-address\"},{name:\"tel-area-code\"},{name:\"tel\"},{name:\"tel-country-code\"},{name:\"tel-extension\"},{name:\"tel-local\"},{name:\"tel-local-prefix\"},{name:\"tel-local-suffix\"},{name:\"tel-national\"},{name:\"transaction-amount\"},{name:\"transaction-currency\"},{name:\"url\"},{name:\"username\"},{name:\"work\"}]},{name:\"autocomplete\",values:[{name:\"inline\"},{name:\"list\"},{name:\"both\"},{name:\"none\"}]},{name:\"current\",values:[{name:\"page\"},{name:\"step\"},{name:\"location\"},{name:\"date\"},{name:\"time\"},{name:\"true\"},{name:\"false\"}]},{name:\"dropeffect\",values:[{name:\"copy\"},{name:\"move\"},{name:\"link\"},{name:\"execute\"},{name:\"popup\"},{name:\"none\"}]},{name:\"invalid\",values:[{name:\"grammar\"},{name:\"false\"},{name:\"spelling\"},{name:\"true\"}]},{name:\"live\",values:[{name:\"off\"},{name:\"polite\"},{name:\"assertive\"}]},{name:\"orientation\",values:[{name:\"vertical\"},{name:\"horizontal\"},{name:\"undefined\"}]},{name:\"relevant\",values:[{name:\"additions\"},{name:\"removals\"},{name:\"text\"},{name:\"all\"},{name:\"additions text\"}]},{name:\"sort\",values:[{name:\"ascending\"},{name:\"descending\"},{name:\"none\"},{name:\"other\"}]},{name:\"roles\",values:[{name:\"alert\"},{name:\"alertdialog\"},{name:\"button\"},{name:\"checkbox\"},{name:\"dialog\"},{name:\"gridcell\"},{name:\"link\"},{name:\"log\"},{name:\"marquee\"},{name:\"menuitem\"},{name:\"menuitemcheckbox\"},{name:\"menuitemradio\"},{name:\"option\"},{name:\"progressbar\"},{name:\"radio\"},{name:\"scrollbar\"},{name:\"searchbox\"},{name:\"slider\"},{name:\"spinbutton\"},{name:\"status\"},{name:\"switch\"},{name:\"tab\"},{name:\"tabpanel\"},{name:\"textbox\"},{name:\"timer\"},{name:\"tooltip\"},{name:\"treeitem\"},{name:\"combobox\"},{name:\"grid\"},{name:\"listbox\"},{name:\"menu\"},{name:\"menubar\"},{name:\"radiogroup\"},{name:\"tablist\"},{name:\"tree\"},{name:\"treegrid\"},{name:\"application\"},{name:\"article\"},{name:\"cell\"},{name:\"columnheader\"},{name:\"definition\"},{name:\"directory\"},{name:\"document\"},{name:\"feed\"},{name:\"figure\"},{name:\"group\"},{name:\"heading\"},{name:\"img\"},{name:\"list\"},{name:\"listitem\"},{name:\"math\"},{name:\"none\"},{name:\"note\"},{name:\"presentation\"},{name:\"region\"},{name:\"row\"},{name:\"rowgroup\"},{name:\"rowheader\"},{name:\"separator\"},{name:\"table\"},{name:\"term\"},{name:\"text\"},{name:\"toolbar\"},{name:\"banner\"},{name:\"complementary\"},{name:\"contentinfo\"},{name:\"form\"},{name:\"main\"},{name:\"navigation\"},{name:\"region\"},{name:\"search\"},{name:\"doc-abstract\"},{name:\"doc-acknowledgments\"},{name:\"doc-afterword\"},{name:\"doc-appendix\"},{name:\"doc-backlink\"},{name:\"doc-biblioentry\"},{name:\"doc-bibliography\"},{name:\"doc-biblioref\"},{name:\"doc-chapter\"},{name:\"doc-colophon\"},{name:\"doc-conclusion\"},{name:\"doc-cover\"},{name:\"doc-credit\"},{name:\"doc-credits\"},{name:\"doc-dedication\"},{name:\"doc-endnote\"},{name:\"doc-endnotes\"},{name:\"doc-epigraph\"},{name:\"doc-epilogue\"},{name:\"doc-errata\"},{name:\"doc-example\"},{name:\"doc-footnote\"},{name:\"doc-foreword\"},{name:\"doc-glossary\"},{name:\"doc-glossref\"},{name:\"doc-index\"},{name:\"doc-introduction\"},{name:\"doc-noteref\"},{name:\"doc-notice\"},{name:\"doc-pagebreak\"},{name:\"doc-pagelist\"},{name:\"doc-part\"},{name:\"doc-preface\"},{name:\"doc-prologue\"},{name:\"doc-pullquote\"},{name:\"doc-qna\"},{name:\"doc-subtitle\"},{name:\"doc-tip\"},{name:\"doc-toc\"}]},{name:\"metanames\",values:[{name:\"application-name\"},{name:\"author\"},{name:\"description\"},{name:\"format-detection\"},{name:\"generator\"},{name:\"keywords\"},{name:\"publisher\"},{name:\"referrer\"},{name:\"robots\"},{name:\"theme-color\"},{name:\"viewport\"}]}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/builtinDataProviders\",[\"require\",\"exports\",\"./dataProvider\",\"./data/webCustomData\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./dataProvider\"),i=e(\"./data/webCustomData\");t.builtinDataProviders=[new n.HTMLDataProvider(\"html5\",i.htmlData)];var r=[];t.getAllDataProviders=function(){return t.builtinDataProviders.concat(r)},t.handleCustomDataProviders=function(e){e.forEach((function(e){r.push(e)}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/object\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlCompletion\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../htmlLanguageTypes\",\"../parser/htmlEntities\",\"vscode-nls\",\"../utils/strings\",\"../languageFacts/builtinDataProviders\",\"../languageFacts/fact\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../parser/htmlEntities\"),o=e(\"vscode-nls\"),s=e(\"../utils/strings\"),l=e(\"../languageFacts/builtinDataProviders\"),c=e(\"../languageFacts/fact\"),d=e(\"../utils/object\"),h=e(\"../languageFacts/dataProvider\"),u=o.loadMessageBundle(),p=function(){function e(e){this.clientCapabilities=e,this.completionParticipants=[]}return e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n,i){var r=this._doComplete(e,t,n,i);return this.convertCompletionList(r)},e.prototype._doComplete=function(e,t,o,d){var p={isIncomplete:!1,items:[]},g=this.completionParticipants,b=l.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)&&(!d||!1!==d[t.getId()])})),_=this.doesSupportMarkdown(),v=e.getText(),w=e.offsetAt(t),y=o.findNodeBefore(w);if(!y)return p;var T,k=i.createScanner(v,y.start),S=\"\";function x(t,n){return void 0===n&&(n=w),t>w&&(t=w),{start:e.positionAt(t),end:e.positionAt(n)}}function L(e,t){var i=x(e,t);return b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(i,e.name),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p}function M(e){for(var t=e;t>0;){var n=v.charAt(t-1);if(\"\\n\\r\".indexOf(n)>=0)return v.substring(t,e);if(!m(n))return null;t--}return v.substring(0,e)}function E(e,t,i){void 0===i&&(i=w);var a=x(e,i),o=f(v,i,r.ScannerState.WithinEndTag,r.TokenType.EndTagClose)?\"\":\">\",s=y;for(t&&(s=s.parent);s;){var l=s.tag;if(l&&(!s.closed||s.endTagStart&&s.endTagStart>w)){var c={label:\"/\"+l,kind:n.CompletionItemKind.Property,filterText:\"/\"+l,textEdit:n.TextEdit.replace(a,\"/\"+l+o),insertTextFormat:n.InsertTextFormat.PlainText},d=M(s.start),u=M(e-1);if(null!==d&&null!==u&&d!==u){var m=d+\"</\"+l+o;c.textEdit=n.TextEdit.replace(x(e-1-u.length),m),c.filterText=u+\"</\"+l}return p.items.push(c),p}s=s.parent}return t?p:(b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:\"/\"+e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),filterText:\"/\"+e+o,textEdit:n.TextEdit.replace(a,\"/\"+e+o),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p)}function A(t,i){if(d&&d.hideAutoCompleteProposals)return p;if(!c.isVoidElement(i)){var r=e.positionAt(t);p.items.push({label:\"</\"+i+\">\",kind:n.CompletionItemKind.Property,filterText:\"</\"+i+\">\",textEdit:n.TextEdit.insert(r,\"$0</\"+i+\">\"),insertTextFormat:n.InsertTextFormat.Snippet})}return p}function R(e,t){return L(e,t),E(e,!0,t),p}function I(e,t){void 0===t&&(t=w);for(var i=w;i<t&&\"<\"!==v[i];)i++;var a=x(e,i),l=f(v,t,r.ScannerState.AfterAttributeName,r.TokenType.DelimiterAssign)?\"\":'=\"$1\"',c=S.toLowerCase(),d=Object.create(null);return b.forEach((function(e){e.provideAttributes(c).forEach((function(e){if(!d[e.name]){d[e.name]=!0;var t,i=e.name;\"v\"!==e.valueSet&&l.length&&(i+=l,(e.valueSet||\"style\"===e.name)&&(t={title:\"Suggest\",command:\"editor.action.triggerSuggest\"})),p.items.push({label:e.name,kind:\"handler\"===e.valueSet?n.CompletionItemKind.Function:n.CompletionItemKind.Value,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,i),insertTextFormat:n.InsertTextFormat.Snippet,command:t})}}))})),function(e,t){var i={};i[\"data-\"]='data-$1=\"$2\"',o&&o.roots.forEach((function(e){return function e(n){n.attributeNames.forEach((function(e){!s.startsWith(e,\"data-\")||i[e]||t[e]||(i[e]=e+'=\"$1\"')})),n.children.forEach((function(t){return e(t)}))}(e)}));Object.keys(i).forEach((function(t){return p.items.push({label:t,kind:n.CompletionItemKind.Value,textEdit:n.TextEdit.replace(e,i[t]),insertTextFormat:n.InsertTextFormat.Snippet})}))}(a,d),p}function C(i,r){var a,o,s,l;if(void 0===r&&(r=w),w>i&&w<=r&&(l=v[i],/^[\"']*$/.test(l))){var c=i+1,d=r;r>i&&v[r-1]===v[i]&&d--;var u=function(e,t,n){for(;t>n&&!m(e[t-1]);)t--;return t}(v,w,c),f=function(e,t,n){for(;t<n&&!m(e[t]);)t++;return t}(v,w,d);a=x(u,f),s=w>=c&&w<=d?v.substring(c,w):\"\",o=!1}else a=x(i,r),s=v.substring(i,w),o=!0;var y=S.toLowerCase(),k=T.toLowerCase();if(g.length>0)for(var L=x(i,r),M=0,E=g;M<E.length;M++){var A=E[M];A.onHtmlAttributeValue&&A.onHtmlAttributeValue({document:e,position:t,tag:y,attribute:k,value:s,range:L})}return b.forEach((function(e){e.provideValues(y,k).forEach((function(e){var t=o?'\"'+e.name+'\"':e.name;p.items.push({label:e.name,filterText:t,kind:n.CompletionItemKind.Unit,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,t),insertTextFormat:n.InsertTextFormat.PlainText})}))})),U(),p}function z(e){return w===k.getTokenEnd()&&(D=k.scan())===e&&k.getTokenOffset()===w?k.getTokenEnd():w}function H(){for(var n=0,i=g;n<i.length;n++){var r=i[n];r.onHtmlContent&&r.onHtmlContent({document:e,position:t})}return U()}function U(){for(var e=w-1,i=t.character;e>=0&&s.isLetterOrDigit(v,e);)e--,i--;if(e>=0&&\"&\"===v[e]){var r=n.Range.create(n.Position.create(t.line,i-1),t);for(var o in a.entities)if(s.endsWith(o,\";\")){var l=\"&\"+o;p.items.push({label:l,kind:n.CompletionItemKind.Keyword,documentation:u(\"entity.propose\",\"Character entity representing '\"+a.entities[o]+\"'\"),textEdit:n.TextEdit.replace(r,l),insertTextFormat:n.InsertTextFormat.PlainText})}}return p}for(var W,D=k.scan();D!==r.TokenType.EOS&&k.getTokenOffset()<=w;){switch(D){case r.TokenType.StartTagOpen:if(k.getTokenEnd()===w){var P=z(r.TokenType.StartTag);return 0===t.line&&(W=void 0,W=x(w,P),p.items.push({label:\"!DOCTYPE\",kind:n.CompletionItemKind.Property,documentation:\"A preamble for an HTML document.\",textEdit:n.TextEdit.replace(W,\"!DOCTYPE html>\"),insertTextFormat:n.InsertTextFormat.PlainText})),R(w,P)}break;case r.TokenType.StartTag:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return L(k.getTokenOffset(),k.getTokenEnd());S=k.getTokenText();break;case r.TokenType.AttributeName:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return I(k.getTokenOffset(),k.getTokenEnd());T=k.getTokenText();break;case r.TokenType.DelimiterAssign:if(k.getTokenEnd()===w){P=z(r.TokenType.AttributeValue);return C(w,P)}break;case r.TokenType.AttributeValue:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return C(k.getTokenOffset(),k.getTokenEnd());break;case r.TokenType.Whitespace:if(w<=k.getTokenEnd())switch(k.getScannerState()){case r.ScannerState.AfterOpeningStartTag:return R(k.getTokenOffset(),z(r.TokenType.StartTag));case r.ScannerState.WithinTag:case r.ScannerState.AfterAttributeName:return I(k.getTokenEnd());case r.ScannerState.BeforeAttributeValue:return C(k.getTokenEnd());case r.ScannerState.AfterOpeningEndTag:return E(k.getTokenOffset()-1,!1);case r.ScannerState.WithinContent:return H()}break;case r.TokenType.EndTagOpen:if(w<=k.getTokenEnd())return E(k.getTokenOffset()+1,!1,z(r.TokenType.EndTag));break;case r.TokenType.EndTag:if(w<=k.getTokenEnd())for(var q=k.getTokenOffset()-1;q>=0;){var O=v.charAt(q);if(\"/\"===O)return E(q,!1,k.getTokenEnd());if(!m(O))break;q--}break;case r.TokenType.StartTagClose:if(w<=k.getTokenEnd()&&S)return A(k.getTokenEnd(),S);break;case r.TokenType.Content:if(w<=k.getTokenEnd())return H();break;default:if(w<=k.getTokenEnd())return p}D=k.scan()}return p},e.prototype.doTagComplete=function(e,t,n){var a=e.offsetAt(t);if(a<=0)return null;var o=e.getText().charAt(a-1);if(\">\"===o){if((l=n.findNodeBefore(a))&&l.tag&&!c.isVoidElement(l.tag)&&l.start<a&&(!l.endTagStart||l.endTagStart>a))for(var s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.StartTagClose&&d.getTokenEnd()===a)return\"$0</\"+l.tag+\">\";s=d.scan()}}else if(\"/\"===o){for(var l=n.findNodeBefore(a);l&&l.closed;)l=l.parent;if(l&&l.tag){var d;for(s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.EndTagOpen&&d.getTokenEnd()===a)return l.tag+\">\";s=d.scan()}}}return null},e.prototype.convertCompletionList=function(e){return this.doesSupportMarkdown()||e.items.forEach((function(e){e.documentation&&\"string\"!=typeof e.documentation&&(e.documentation={kind:\"plaintext\",value:e.documentation.value})})),e},e.prototype.doesSupportMarkdown=function(){if(!d.isDefined(this.supportsMarkdown)){if(!d.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(n.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return/^\\s*$/.test(e)}function f(e,t,n,a){for(var o=i.createScanner(e,t,n),s=o.scan();s===r.TokenType.Whitespace;)s=o.scan();return s===a}t.HTMLCompletion=p})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHover\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../languageFacts/builtinDataProviders\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/builtinDataProviders\"),o=e(\"../utils/object\"),s=e(\"../languageFacts/dataProvider\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,i){var o=this.convertContents.bind(this),l=this.doesSupportMarkdown(),c=e.offsetAt(t),d=i.findNodeAt(c);if(!d||!d.tag)return null;var h=a.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)}));function u(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideTags().forEach((function(i){if(i.name.toLowerCase()===e.toLowerCase()){var a=n?\"<\"+e+\">\":\"</\"+e+\">\",o=s.generateDocumentation(i,l);o.value=\"```html\\n\"+a+\"\\n```\\n\"+o.value,r={contents:o,range:t}}})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}function p(t,i){for(var a=n.createScanner(e.getText(),i),o=a.scan();o!==r.TokenType.EOS&&(a.getTokenEnd()<c||a.getTokenEnd()===c&&o!==t);)o=a.scan();return o===t&&c<=a.getTokenEnd()?{start:e.positionAt(a.getTokenOffset()),end:e.positionAt(a.getTokenEnd())}:null}if(d.endTagStart&&c>=d.endTagStart){var m=p(r.TokenType.EndTag,d.endTagStart);return m?u(d.tag,m,!1):null}var f=p(r.TokenType.StartTag,d.start);if(f)return u(d.tag,f,!0);var g=p(r.TokenType.AttributeName,d.start);if(g)return function(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideAttributes(e).forEach((function(e){t===e.name&&e.description&&(r={contents:s.generateDocumentation(e,l),range:n})})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}(_=d.tag,e.getText(g),g);var b=p(r.TokenType.AttributeValue,d.start);if(b){var _=d.tag,v=function(e){if(e.length<=1)return e.replace(/['\"]/,\"\");\"'\"!==e[0]&&'\"'!==e[0]||(e=e.slice(1));\"'\"!==e[e.length-1]&&'\"'!==e[e.length-1]||(e=e.slice(0,-1));return e}(e.getText(b)),w=function(t,i){for(var a=n.createScanner(e.getText(),t),o=a.scan(),s=void 0;o!==r.TokenType.EOS&&a.getTokenEnd()<=i;)(o=a.scan())===r.TokenType.AttributeName&&(s=a.getTokenText());return s}(d.start,e.offsetAt(b.start));if(w)return function(e,t,n,i){e=e.toLowerCase();for(var r=function(r){var a=null;if(r.provideValues(e,t).forEach((function(e){n===e.name&&e.description&&(a={contents:s.generateDocumentation(e,l),range:i})})),a)return a.contents=o(a.contents),{value:a}},a=0,c=h;a<c.length;a++){var d=r(c[a]);if(\"object\"==typeof d)return d.value}return null}(_,w,v,b)}return null},e.prototype.convertContents=function(e){if(!this.doesSupportMarkdown()){if(\"string\"==typeof e)return e;if(\"kind\"in e)return{kind:\"plaintext\",value:e.value};if(!Array.isArray(e))return e.value;e.map((function(e){return\"string\"==typeof e?e:e.value}))}return e},e.prototype.doesSupportMarkdown=function(){if(!o.isDefined(this.supportsMarkdown)){if(!o.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(i.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.HTMLHover=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/beautify/beautify\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.js_beautify=function(e,t){return e}})),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=15)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},,,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},,,,,function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},,function(e,t,n){var i=n(16).Beautifier,r=n(17).Options;e.exports=function(e,t){return new i(e,t).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(17).Options,r=n(2).Output,a=n(8).InputScanner,o=new(0,n(13).Directives)(/\\/\\*/,/\\*\\//),s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=/\\s/,d=/(?:\\s|\\n)+/g,h=/\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g,u=/\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;function p(e,t){this._source_text=e||\"\",this._options=new i(t),this._ch=null,this._input=null,this.NESTED_AT_RULE={\"@page\":!0,\"@font-face\":!0,\"@keyframes\":!0,\"@media\":!0,\"@supports\":!0,\"@document\":!0},this.CONDITIONAL_GROUP_RULE={\"@media\":!0,\"@supports\":!0,\"@document\":!0}}p.prototype.eatString=function(e){var t=\"\";for(this._ch=this._input.next();this._ch;){if(t+=this._ch,\"\\\\\"===this._ch)t+=this._input.next();else if(-1!==e.indexOf(this._ch)||\"\\n\"===this._ch)break;this._ch=this._input.next()}return t},p.prototype.eatWhitespace=function(e){for(var t=c.test(this._input.peek()),n=!0;c.test(this._input.peek());)this._ch=this._input.next(),e&&\"\\n\"===this._ch&&(this._options.preserve_newlines||n)&&(n=!1,this._output.add_new_line(!0));return t},p.prototype.foundNestedPseudoClass=function(){for(var e=0,t=1,n=this._input.peek(t);n;){if(\"{\"===n)return!0;if(\"(\"===n)e+=1;else if(\")\"===n){if(0===e)return!1;e-=1}else if(\";\"===n||\"}\"===n)return!1;t++,n=this._input.peek(t)}return!1},p.prototype.print_string=function(e){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(e)},p.prototype.preserveSingleSpace=function(e){e&&(this._output.space_before_token=!0)},p.prototype.indent=function(){this._indentLevel++},p.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===t&&(t=\"\\n\",e&&s.test(e||\"\")&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0];this._output=new r(this._options,n),this._input=new a(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var i,p,m=0,f=!1,g=!1,b=!1,_=!1,v=!1,w=this._ch;i=\"\"!==this._input.read(d),p=w,this._ch=this._input.next(),\"\\\\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),w=this._ch,this._ch;)if(\"/\"===this._ch&&\"*\"===this._input.peek()){this._output.add_new_line(),this._input.back();var y=this._input.read(h),T=o.get_directives(y);T&&\"start\"===T.ignore&&(y+=o.readIgnored(this._input)),this.print_string(y),this.eatWhitespace(!0),this._output.add_new_line()}else if(\"/\"===this._ch&&\"/\"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if(\"@\"===this._ch)if(this.preserveSingleSpace(i),\"{\"===this._input.peek())this.print_string(this._ch+this.eatString(\"}\"));else{this.print_string(this._ch);var k=this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);k.match(/[ :]$/)&&(k=this.eatString(\": \").replace(/\\s$/,\"\"),this.print_string(k),this._output.space_before_token=!0),\"extend\"===(k=k.replace(/\\s$/,\"\"))?_=!0:\"import\"===k&&(v=!0),k in this.NESTED_AT_RULE?(this._nestedLevel+=1,k in this.CONDITIONAL_GROUP_RULE&&(b=!0)):f||0!==m||-1===k.indexOf(\":\")||(g=!0,this.indent())}else\"#\"===this._ch&&\"{\"===this._input.peek()?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(\"}\"))):\"{\"===this._ch?(g&&(g=!1,this.outdent()),this.indent(),this._output.space_before_token=!0,this.print_string(this._ch),b?(b=!1,f=this._indentLevel>this._nestedLevel):f=this._indentLevel>=this._nestedLevel,this._options.newline_between_rules&&f&&this._output.previous_line&&\"{\"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above(\"/\",\",\"),this.eatWhitespace(!0),this._output.add_new_line()):\"}\"===this._ch?(this.outdent(),this._output.add_new_line(),\"{\"===p&&this._output.trim(!0),v=!1,_=!1,g&&(this.outdent(),g=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&\"}\"!==this._input.peek()&&this._output.add_new_line(!0)):\":\"===this._ch?!f&&!b||this._input.lookBack(\"&\")||this.foundNestedPseudoClass()||this._input.lookBack(\"(\")||_||0!==m?(this._input.lookBack(\" \")&&(this._output.space_before_token=!0),\":\"===this._input.peek()?(this._ch=this._input.next(),this.print_string(\"::\")):this.print_string(\":\")):(this.print_string(\":\"),g||(g=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):'\"'===this._ch||\"'\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):\";\"===this._ch?0===m?(g&&(this.outdent(),g=!1),_=!1,v=!1,this.print_string(this._ch),this.eatWhitespace(!0),\"/\"!==this._input.peek()&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):\"(\"===this._ch?this._input.lookBack(\"url\")?(this.print_string(this._ch),this.eatWhitespace(),m++,this.indent(),this._ch=this._input.next(),\")\"===this._ch||'\"'===this._ch||\"'\"===this._ch?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(\")\")),m&&(m--,this.outdent()))):(this.preserveSingleSpace(i),this.print_string(this._ch),this.eatWhitespace(),m++,this.indent()):\")\"===this._ch?(m&&(m--,this.outdent()),this.print_string(this._ch)):\",\"===this._ch?(this.print_string(this._ch),this.eatWhitespace(!0),!this._options.selector_separator_newline||g||0!==m||v?this._output.space_before_token=!0:this._output.add_new_line()):\">\"!==this._ch&&\"+\"!==this._ch&&\"~\"!==this._ch||g||0!==m?\"]\"===this._ch?this.print_string(this._ch):\"[\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch)):\"=\"===this._ch?(this.eatWhitespace(),this.print_string(\"=\"),c.test(this._ch)&&(this._ch=\"\")):\"!\"!==this._ch||this._input.lookBack(\"\\\\\")?(this.preserveSingleSpace(i),this.print_string(this._ch)):(this.print_string(\" \"),this.print_string(this._ch)):this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&c.test(this._ch)&&(this._ch=\"\"));return this._output.get_code(t)},e.exports.Beautifier=p},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"css\"),this.selector_separator_newline=this._get_boolean(\"selector_separator_newline\",!0),this.newline_between_rules=this._get_boolean(\"newline_between_rules\",!0);var t=this._get_boolean(\"space_around_selector_separator\");this.space_around_combinator=this._get_boolean(\"space_around_combinator\")||t}r.prototype=new i,e.exports.Options=r}]);\"function\"==typeof define&&define.amd?define(\"vscode-html-languageservice/beautify/beautify-css\",[],(function(){return{css_beautify:e}})):\"undefined\"!=typeof exports?exports.css_beautify=e:\"undefined\"!=typeof window?window.css_beautify=e:\"undefined\"!=typeof global&&(global.css_beautify=e)}(),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=18)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},function(e,t,n){e.exports.Token=function(e,t,n,i){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||\"\",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}},,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},function(e,t,n){var i=n(8).InputScanner,r=n(3).Token,a=n(10).TokenStream,o=n(11).WhitespacePattern,s={START:\"TK_START\",RAW:\"TK_RAW\",EOF:\"TK_EOF\"},l=function(e,t){this._input=new i(e),this._options=t||{},this.__tokens=null,this._patterns={},this._patterns.whitespace=new o(this._input)};l.prototype.tokenize=function(){var e;this._input.restart(),this.__tokens=new a,this._reset();for(var t=new r(s.START,\"\"),n=null,i=[],o=new a;t.type!==s.EOF;){for(e=this._get_next_token(t,n);this._is_comment(e);)o.add(e),e=this._get_next_token(t,n);o.isEmpty()||(e.comments_before=o,o=new a),e.parent=n,this._is_opening(e)?(i.push(n),n=e):n&&this._is_closing(e,n)&&(e.opened=n,n.closed=e,n=i.pop(),e.parent=n),e.previous=t,t.next=e,this.__tokens.add(e),t=e}return this.__tokens},l.prototype._is_first_token=function(){return this.__tokens.isEmpty()},l.prototype._reset=function(){},l.prototype._get_next_token=function(e,t){this._readWhitespace();var n=this._input.read(/.+/g);return n?this._create_token(s.RAW,n):this._create_token(s.EOF,\"\")},l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return!1},l.prototype._is_closing=function(e,t){return!1},l.prototype._create_token=function(e,t){return new r(e,t,this._patterns.whitespace.newline_count,this._patterns.whitespace.whitespace_before_token)},l.prototype._readWhitespace=function(){return this._patterns.whitespace.read()},e.exports.Tokenizer=l,e.exports.TOKEN=s},function(e,t,n){function i(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}i.prototype.restart=function(){this.__position=0},i.prototype.isEmpty=function(){return 0===this.__tokens_length},i.prototype.hasNext=function(){return this.__position<this.__tokens_length},i.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__tokens[this.__position],this.__position+=1),e},i.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__tokens_length&&(t=this.__tokens[e]),t},i.prototype.add=function(e){this.__parent_token&&(e.parent=this.__parent_token),this.__tokens.push(e),this.__tokens_length+=1},e.exports.TokenStream=i},function(e,t,n){var i=n(12).Pattern;function r(e,t){i.call(this,e,t),t?this._line_regexp=this._input.get_regexp(t._line_regexp):this.__set_whitespace_patterns(\"\",\"\"),this.newline_count=0,this.whitespace_before_token=\"\"}r.prototype=new i,r.prototype.__set_whitespace_patterns=function(e,t){e+=\"\\\\t \",t+=\"\\\\n\\\\r\",this._match_pattern=this._input.get_regexp(\"[\"+e+t+\"]+\",!0),this._newline_regexp=this._input.get_regexp(\"\\\\r\\\\n|[\"+t+\"]\")},r.prototype.read=function(){this.newline_count=0,this.whitespace_before_token=\"\";var e=this._input.read(this._match_pattern);if(\" \"===e)this.whitespace_before_token=\" \";else if(e){var t=this.__split(this._newline_regexp,e);this.newline_count=t.length-1,this.whitespace_before_token=t[this.newline_count]}return e},r.prototype.matching=function(e,t){var n=this._create();return n.__set_whitespace_patterns(e,t),n._update(),n},r.prototype._create=function(){return new r(this._input,this)},r.prototype.__split=function(e,t){e.lastIndex=0;for(var n=0,i=[],r=e.exec(t);r;)i.push(t.substring(n,r.index)),n=r.index+r[0].length,r=e.exec(t);return n<t.length?i.push(t.substring(n,t.length)):i.push(\"\"),i},e.exports.WhitespacePattern=r},function(e,t,n){function i(e,t){this._input=e,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,t&&(this._starting_pattern=this._input.get_regexp(t._starting_pattern,!0),this._match_pattern=this._input.get_regexp(t._match_pattern,!0),this._until_pattern=this._input.get_regexp(t._until_pattern),this._until_after=t._until_after)}i.prototype.read=function(){var e=this._input.read(this._starting_pattern);return this._starting_pattern&&!e||(e+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),e},i.prototype.read_match=function(){return this._input.match(this._match_pattern)},i.prototype.until_after=function(e){var t=this._create();return t._until_after=!0,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.until=function(e){var t=this._create();return t._until_after=!1,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.starting_with=function(e){var t=this._create();return t._starting_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype.matching=function(e){var t=this._create();return t._match_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype._create=function(){return new i(this._input,this)},i.prototype._update=function(){},e.exports.Pattern=i},function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},function(e,t,n){var i=n(12).Pattern,r={django:!1,erb:!1,handlebars:!1,php:!1};function a(e,t){i.call(this,e,t),this.__template_pattern=null,this._disabled=Object.assign({},r),this._excluded=Object.assign({},r),t&&(this.__template_pattern=this._input.get_regexp(t.__template_pattern),this._excluded=Object.assign(this._excluded,t._excluded),this._disabled=Object.assign(this._disabled,t._disabled));var n=new i(e);this.__patterns={handlebars_comment:n.starting_with(/{{!--/).until_after(/--}}/),handlebars_unescaped:n.starting_with(/{{{/).until_after(/}}}/),handlebars:n.starting_with(/{{/).until_after(/}}/),php:n.starting_with(/<\\?(?:[=]|php)/).until_after(/\\?>/),erb:n.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:n.starting_with(/{%/).until_after(/%}/),django_value:n.starting_with(/{{/).until_after(/}}/),django_comment:n.starting_with(/{#/).until_after(/#}/)}}a.prototype=new i,a.prototype._create=function(){return new a(this._input,this)},a.prototype._update=function(){this.__set_templated_pattern()},a.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},a.prototype.read_options=function(e){var t=this._create();for(var n in r)t._disabled[n]=-1===e.templating.indexOf(n);return t._update(),t},a.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},a.prototype.read=function(){var e=\"\";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var t=this._read_template();t;)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},a.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp(\"(?:\"+e.join(\"|\")+\")\")},a.prototype._read_template=function(){var e=\"\",t=this._input.peek();if(\"<\"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||\"?\"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||\"%\"!==n||(e=e||this.__patterns.erb.read())}else\"{\"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=(e=(e=e||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=(e=e||this.__patterns.django_comment.read())||this.__patterns.django.read())));return e},e.exports.TemplatablePattern=a},,,,function(e,t,n){var i=n(19).Beautifier,r=n(20).Options;e.exports=function(e,t,n,r){return new i(e,t,n,r).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(20).Options,r=n(2).Output,a=n(21).Tokenizer,o=n(21).TOKEN,s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=function(e,t){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new r(e,t)};c.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},c.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},c.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},c.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},c.prototype.print_preserved_newlines=function(e){var t=0;e.type!==o.TEXT&&e.previous.type!==o.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines<this.max_preserve_newlines+1?e.newlines:this.max_preserve_newlines+1);for(var n=0;n<t;n++)this.print_newline(n>0);return 0!==t},c.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},c.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},c.prototype.print_newline=function(e){this._output.add_new_line(e)},c.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},c.prototype.indent=function(){this.indent_level++},c.prototype.get_full_indent=function(e){return(e=this.indent_level+(e||0))<1?\"\":this._output.get_indent_string(e)};var d=function(e,t){var n=null,i=null;return t.closed?(\"script\"===e?n=\"text/javascript\":\"style\"===e&&(n=\"text/css\"),(n=function(e){for(var t=null,n=e.next;n.type!==o.EOF&&e.closed!==n;){if(n.type===o.ATTRIBUTE&&\"type\"===n.text){n.next&&n.next.type===o.EQUALS&&n.next.next&&n.next.next.type===o.VALUE&&(t=n.next.next.text);break}n=n.next}return t}(t)||n).search(\"text/css\")>-1?i=\"css\":n.search(/(text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect)/)>-1?i=\"javascript\":n.search(/(text|application|dojo)\\/(x-)?(html)/)>-1?i=\"html\":n.search(/test\\/null/)>-1&&(i=\"null\"),i):null};function h(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:\"\",this.indent_level=n||0,this.parser_token=t||null}function p(e){this._printer=e,this._current_frame=null}function m(e,t,n,r){this._source_text=e||\"\",t=t||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var a=new i(t,\"html\");this._options=a,this._is_wrap_attributes_force=\"force\"===this._options.wrap_attributes.substr(0,\"force\".length),this._is_wrap_attributes_force_expand_multiline=\"force-expand-multiline\"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned=\"force-aligned\"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple=\"aligned-multiple\"===this._options.wrap_attributes,this._is_wrap_attributes_preserve=\"preserve\"===this._options.wrap_attributes.substr(0,\"preserve\".length),this._is_wrap_attributes_preserve_aligned=\"preserve-aligned\"===this._options.wrap_attributes}p.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},p.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},p.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},p.prototype._get_frame=function(e,t){for(var n=this._current_frame;n&&-1===e.indexOf(n.tag);){if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},p.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},p.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},m.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===this._options.eol&&(t=\"\\n\",e&&s.test(e)&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0],i={text:\"\",type:\"\"},r=new f,d=new c(this._options,n),h=new a(e,this._options).tokenize();this._tag_stack=new p(d);for(var u=null,m=h.next();m.type!==o.EOF;)m.type===o.TAG_OPEN||m.type===o.COMMENT?r=u=this._handle_tag_open(d,m,r,i):m.type===o.ATTRIBUTE||m.type===o.EQUALS||m.type===o.VALUE||m.type===o.TEXT&&!r.tag_complete?u=this._handle_inside_tag(d,m,r,h):m.type===o.TAG_CLOSE?u=this._handle_tag_close(d,m,r):m.type===o.TEXT?u=this._handle_text(d,m,r):d.add_raw_token(m),i=u,m=h.next();return d._output.get_code(t)},m.prototype._handle_tag_close=function(e,t,n){var i={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):(\"<\"===n.tag_start_char&&(e.set_space_before_token(\"/\"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),i},m.prototype._handle_inside_tag=function(e,t,n,i){var r=n.has_wrapped_attrs,a={text:t.text,type:t.type};if(e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted)e.add_raw_token(t);else if(\"{\"===n.tag_start_char&&t.type===o.TEXT)e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t);else{if(t.type===o.ATTRIBUTE?(e.set_space_before_token(!0),n.attr_count+=1):t.type===o.EQUALS?e.set_space_before_token(!1):t.type===o.VALUE&&t.previous.type===o.EQUALS&&e.set_space_before_token(!1),t.type===o.ATTRIBUTE&&\"<\"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),r=r||0!==t.newlines),this._is_wrap_attributes_force)){var s=n.attr_count>1;if(this._is_wrap_attributes_force_expand_multiline&&1===n.attr_count){var l,c=!0,d=0;do{if((l=i.peek(d)).type===o.ATTRIBUTE){c=!1;break}d+=1}while(d<4&&l.type!==o.EOF&&l.type!==o.TAG_CLOSE);s=!c}s&&(e.print_newline(!1),r=!0)}e.print_token(t),r=r||e.previous_token_wrapped(),n.has_wrapped_attrs=r}return a},m.prototype._handle_text=function(e,t,n){var i={text:t.text,type:\"TK_CONTENT\"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),i},m.prototype._print_custom_beatifier_text=function(e,t,n){var i=this;if(\"\"!==t.text){var r,a=t.text,o=1,s=\"\",l=\"\";\"javascript\"===n.custom_beautifier_name&&\"function\"==typeof this._js_beautify?r=this._js_beautify:\"css\"===n.custom_beautifier_name&&\"function\"==typeof this._css_beautify?r=this._css_beautify:\"html\"===n.custom_beautifier_name&&(r=function(e,t){return new m(e,t,i._js_beautify,i._css_beautify).beautify()}),\"keep\"===this._options.indent_scripts?o=0:\"separate\"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(a=a.replace(/\\n[ \\t]*$/,\"\"),\"html\"!==n.custom_beautifier_name&&\"<\"===a[0]&&a.match(/^(<!--|<!\\[CDATA\\[)/)){var d=/^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(a);if(!d)return void e.add_raw_token(t);s=c+d[1]+\"\\n\",a=d[4],d[5]&&(l=c+d[5]),a=a.replace(/\\n[ \\t]*$/,\"\"),(d[2]||-1!==d[3].indexOf(\"\\n\"))&&(d=d[3].match(/[ \\t]+$/))&&(t.whitespace_before=d[0])}if(a)if(r){var h=function(){this.eol=\"\\n\"};h.prototype=this._options.raw_options,a=r(c+a,new h)}else{var u=t.whitespace_before;u&&(a=a.replace(new RegExp(\"\\n(\"+u+\")?\",\"g\"),\"\\n\")),a=c+a.replace(/\\n/g,\"\\n\"+c)}s&&(a=a?s+a+\"\\n\"+l:s+l),e.print_newline(!1),a&&(t.text=a,t.whitespace_before=\"\",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},m.prototype._handle_tag_open=function(e,t,n,i){var r=this._get_tag_open_token(t);return(n.is_unformatted||n.is_content_unformatted)&&t.type===o.TAG_OPEN&&0===t.text.indexOf(\"</\")?e.add_raw_token(t):(e.traverse_whitespace(t),this._set_tag_position(e,t,r,n,i),r.is_inline_element||e.set_wrap_point(),e.print_token(t)),(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(r.alignment_size=t.text.length+1),r.tag_complete||r.is_unformatted||(e.alignment_size=r.alignment_size),r};var f=function(e,t){var n;(this.parent=e||null,this.text=\"\",this.type=\"TK_TAG_OPEN\",this.tag_name=\"\",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char=\"\",this.tag_check=\"\",t)?(this.tag_start_char=t.text[0],this.text=t.text,\"<\"===this.tag_start_char?(n=t.text.match(/^<([^\\s>]*)/),this.tag_check=n?n[1]:\"\"):(n=t.text.match(/^{{[#\\^]?([^\\s}]+)/),this.tag_check=n?n[1]:\"\"),this.tag_check=this.tag_check.toLowerCase(),t.type===o.COMMENT&&(this.tag_complete=!0),this.is_start_tag=\"/\"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&\"/>\"===t.closed.text,this.is_end_tag=this.is_end_tag||\"{\"===this.tag_start_char&&(this.text.length<3||/[^#\\^]/.test(this.text.charAt(2)))):this.tag_complete=!0};m.prototype._get_tag_open_token=function(e){var t=new f(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||h(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&h(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&h(t.tag_check,this._options.content_unformatted),t.is_inline_element=h(t.tag_name,this._options.inline)||\"{\"===t.tag_start_char,t},m.prototype._set_tag_position=function(e,t,n,i,r){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1))),this._tag_stack.record_tag(n),\"script\"!==n.tag_name&&\"style\"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=d(n.tag_check,t)))),h(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if(\"{\"===n.tag_start_char&&\"else\"===n.tag_check)this._tag_stack.indent_to_tag([\"if\",\"unless\",\"each\"]),n.indent_content=!0,e.current_line_has_match(/{{#if/)||e.print_newline(!1);\"!--\"===n.tag_name&&r.type===o.TAG_CLOSE&&i.is_end_tag&&-1===n.text.indexOf(\"\\n\")||n.is_inline_element||n.is_unformatted||e.print_newline(!1)}else n.is_unformatted||n.is_content_unformatted?n.is_inline_element||n.is_unformatted||e.print_newline(!1):n.is_end_tag?(n.start_tag_token&&n.start_tag_token.multiline_content||!(n.is_inline_element||i.is_inline_element||r.type===o.TAG_CLOSE&&n.start_tag_token===i||\"TK_CONTENT\"===r.type))&&e.print_newline(!1):(n.indent_content=!n.custom_beautifier_name,\"<\"===n.tag_start_char&&(\"html\"===n.tag_name?n.indent_content=this._options.indent_inner_html:\"head\"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:\"body\"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||\"TK_CONTENT\"===r.type||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1)))},m.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent)return\"body\"===e.tag_name?t=t||this._tag_stack.try_pop(\"head\"):\"li\"===e.tag_name?t=t||this._tag_stack.try_pop(\"li\",[\"ol\",\"ul\"]):\"dd\"===e.tag_name||\"dt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"dt\",[\"dl\"]))||this._tag_stack.try_pop(\"dd\",[\"dl\"]):\"rp\"===e.tag_name||\"rt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"rt\",[\"ruby\",\"rtc\"]))||this._tag_stack.try_pop(\"rp\",[\"ruby\",\"rtc\"]):\"optgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"optgroup\",[\"select\"]):\"option\"===e.tag_name?t=t||this._tag_stack.try_pop(\"option\",[\"select\",\"datalist\",\"optgroup\"]):\"colgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]):\"thead\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]):\"tbody\"===e.tag_name||\"tfoot\"===e.tag_name?t=(t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"thead\",[\"table\"]))||this._tag_stack.try_pop(\"tbody\",[\"table\"]):\"tr\"===e.tag_name?t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"tr\",[\"table\",\"thead\",\"tbody\",\"tfoot\"]):\"th\"!==e.tag_name&&\"td\"!==e.tag_name||(t=(t=t||this._tag_stack.try_pop(\"td\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"]))||this._tag_stack.try_pop(\"th\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"])),e.parent=this._tag_stack.get_parser_token(),t},e.exports.Beautifier=m},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"html\"),1===this.templating.length&&\"auto\"===this.templating[0]&&(this.templating=[\"django\",\"erb\",\"handlebars\",\"php\"]),this.indent_inner_html=this._get_boolean(\"indent_inner_html\"),this.indent_body_inner_html=this._get_boolean(\"indent_body_inner_html\",!0),this.indent_head_inner_html=this._get_boolean(\"indent_head_inner_html\",!0),this.indent_handlebars=this._get_boolean(\"indent_handlebars\",!0),this.wrap_attributes=this._get_selection(\"wrap_attributes\",[\"auto\",\"force\",\"force-aligned\",\"force-expand-multiline\",\"aligned-multiple\",\"preserve\",\"preserve-aligned\"]),this.wrap_attributes_indent_size=this._get_number(\"wrap_attributes_indent_size\",this.indent_size),this.extra_liners=this._get_array(\"extra_liners\",[\"head\",\"body\",\"/html\"]),this.inline=this._get_array(\"inline\",[\"a\",\"abbr\",\"area\",\"audio\",\"b\",\"bdi\",\"bdo\",\"br\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"map\",\"mark\",\"math\",\"meter\",\"noscript\",\"object\",\"output\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"select\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"var\",\"video\",\"wbr\",\"text\",\"acronym\",\"big\",\"strike\",\"tt\"]),this.void_elements=this._get_array(\"void_elements\",[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"!doctype\",\"?xml\",\"basefont\",\"isindex\"]),this.unformatted=this._get_array(\"unformatted\",[]),this.content_unformatted=this._get_array(\"content_unformatted\",[\"pre\",\"textarea\"]),this.unformatted_content_delimiter=this._get_characters(\"unformatted_content_delimiter\"),this.indent_scripts=this._get_selection(\"indent_scripts\",[\"normal\",\"keep\",\"separate\"])}r.prototype=new i,e.exports.Options=r},function(e,t,n){var i=n(9).Tokenizer,r=n(9).TOKEN,a=n(13).Directives,o=n(14).TemplatablePattern,s=n(12).Pattern,l={TAG_OPEN:\"TK_TAG_OPEN\",TAG_CLOSE:\"TK_TAG_CLOSE\",ATTRIBUTE:\"TK_ATTRIBUTE\",EQUALS:\"TK_EQUALS\",VALUE:\"TK_VALUE\",COMMENT:\"TK_COMMENT\",TEXT:\"TK_TEXT\",UNKNOWN:\"TK_UNKNOWN\",START:r.START,RAW:r.RAW,EOF:r.EOF},c=new a(/<\\!--/,/-->/),d=function(e,t){i.call(this,e,t),this._current_tag_name=\"\";var n=new o(this._input).read_options(this._options),r=new s(this._input);if(this.__patterns={word:n.until(/[\\n\\r\\t <]/),single_quote:n.until_after(/'/),double_quote:n.until_after(/\"/),attribute:n.until(/[\\n\\r\\t =\\/>]/),element_name:n.until(/[\\n\\r\\t >\\/]/),handlebars_comment:r.starting_with(/{{!--/).until_after(/--}}/),handlebars:r.starting_with(/{{/).until_after(/}}/),handlebars_open:r.until(/[\\n\\r\\t }]/),handlebars_raw_close:r.until(/}}/),comment:r.starting_with(/<!--/).until_after(/-->/),cdata:r.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),conditional_comment:r.starting_with(/<!\\[/).until_after(/]>/),processing:r.starting_with(/<\\?/).until_after(/\\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude(\"handlebars\")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=r.matching(a).until_after(a)}};(d.prototype=new i)._is_comment=function(e){return!1},d.prototype._is_opening=function(e){return e.type===l.TAG_OPEN},d.prototype._is_closing=function(e,t){return e.type===l.TAG_CLOSE&&t&&((\">\"===e.text||\"/>\"===e.text)&&\"<\"===t.text[0]||\"}}\"===e.text&&\"{\"===t.text[0]&&\"{\"===t.text[1])},d.prototype._reset=function(){this._current_tag_name=\"\"},d.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(l.EOF,\"\"):n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,t))||this._read_attribute(i,e,t))||this._read_raw_content(i,e,t))||this._read_close(i,t))||this._read_content_word(i))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,t))||this._create_token(l.UNKNOWN,this._input.next())},d.prototype._read_comment_or_cdata=function(e){var t=null,n=null,i=null;\"<\"===e&&(\"!\"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=c.get_directives(n))&&\"start\"===i.ignore&&(n+=c.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=i));return t},d.prototype._read_processing=function(e){var t=null,n=null;if(\"<\"===e){var i=this._input.peek(1);\"!\"!==i&&\"?\"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=null)}return t},d.prototype._read_open=function(e,t){var n=null,i=null;return t||\"<\"===e&&(n=this._input.next(),\"/\"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(l.TAG_OPEN,n)),i},d.prototype._read_open_handlebars=function(e,t){var n=null,i=null;return t||this._options.indent_handlebars&&\"{\"===e&&\"{\"===this._input.peek(1)&&(\"!\"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(l.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(l.TAG_OPEN,n))),i},d.prototype._read_close=function(e,t){var n=null,i=null;return t&&(\"<\"===t.text[0]&&(\">\"===e||\"/\"===e&&\">\"===this._input.peek(1))?(n=this._input.next(),\"/\"===e&&(n+=this._input.next()),i=this._create_token(l.TAG_CLOSE,n)):\"{\"===t.text[0]&&\"}\"===e&&\"}\"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(l.TAG_CLOSE,\"}}\"))),i},d.prototype._read_attribute=function(e,t,n){var i=null,r=\"\";if(n&&\"<\"===n.text[0])if(\"=\"===e)i=this._create_token(l.EQUALS,this._input.next());else if('\"'===e||\"'\"===e){var a=this._input.next();a+='\"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(l.VALUE,a)}else(r=this.__patterns.attribute.read())&&(i=t.type===l.EQUALS?this._create_token(l.VALUE,r):this._create_token(l.ATTRIBUTE,r));return i},d.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},d.prototype._read_raw_content=function(e,t,n){var i=\"\";if(n&&\"{\"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(t.type===l.TAG_CLOSE&&\"<\"===t.opened.text[0]){var r=t.opened.text.substr(1).toLowerCase();if(\"script\"===r||\"style\"===r){var a=this._read_comment_or_cdata(e);if(a)return a.type=l.TEXT,a;i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\")))}return i?this._create_token(l.TEXT,i):null},d.prototype._read_content_word=function(e){var t=\"\";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(l.TEXT,t)},e.exports.Tokenizer=d,e.exports.TOKEN=l}]);if(\"function\"==typeof define&&define.amd)define(\"vscode-html-languageservice/beautify/beautify-html\",[\"require\",\"./beautify\",\"./beautify-css\"],(function(t){var n=t(\"./beautify\"),i=t(\"./beautify-css\");return{html_beautify:function(t,r){return e(t,r,n.js_beautify,i.css_beautify)}}}));else if(\"undefined\"!=typeof exports){var t=require(\"./beautify.js\"),n=require(\"./beautify-css.js\");exports.html_beautify=function(i,r){return e(i,r,t.js_beautify,n.css_beautify)}}else\"undefined\"!=typeof window?window.html_beautify=function(t,n){return e(t,n,window.js_beautify,window.css_beautify)}:\"undefined\"!=typeof global&&(global.html_beautify=function(t,n){return e(t,n,global.js_beautify,global.css_beautify)})}(),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFormatter\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../beautify/beautify-html\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../beautify/beautify-html\"),r=e(\"../utils/strings\");function a(e,t,n){if(e&&e.hasOwnProperty(t)){var i=e[t];if(null!==i)return i}return n}function o(e,t,n){var i=a(e,t,null);return\"string\"==typeof i?i.length>0?i.split(\",\").map((function(e){return e.trim().toLowerCase()})):[]:n}function s(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}function l(e,t){return-1!==\" \\t\".indexOf(e.charAt(t))}t.format=function(e,t,c){var d=e.getText(),h=!0,u=0,p=c.tabSize||4;if(t){for(var m=e.offsetAt(t.start),f=m;f>0&&l(d,f-1);)f--;0===f||s(d,f-1)?m=f:f<m&&(m=f+1);for(var g=e.offsetAt(t.end),b=g;b<d.length&&l(d,b);)b++;(b===d.length||s(d,b))&&(g=b),t=n.Range.create(e.positionAt(m),e.positionAt(g));var _=d.substring(0,m);if(new RegExp(/.*[<][^>]*$/).test(_))return[{range:t,newText:d=d.substring(m,g)}];if(h=g===d.length,d=d.substring(m,g),0!==m){var v=e.offsetAt(n.Position.create(t.start.line,0));u=function(e,t,n){var i=t,r=0,a=n.tabSize||4;for(;i<e.length;){var o=e.charAt(i);if(\" \"===o)r++;else{if(\"\\t\"!==o)break;r+=a}i++}return Math.floor(r/a)}(e.getText(),v,c)}}else t=n.Range.create(n.Position.create(0,0),e.positionAt(d.length));var w={indent_size:p,indent_char:c.insertSpaces?\" \":\"\\t\",indent_empty_lines:a(c,\"indentEmptyLines\",!1),wrap_line_length:a(c,\"wrapLineLength\",120),unformatted:o(c,\"unformatted\",void 0),content_unformatted:o(c,\"contentUnformatted\",void 0),indent_inner_html:a(c,\"indentInnerHtml\",!1),preserve_newlines:a(c,\"preserveNewLines\",!0),max_preserve_newlines:a(c,\"maxPreserveNewLines\",32786),indent_handlebars:a(c,\"indentHandlebars\",!1),end_with_newline:h&&a(c,\"endWithNewline\",!1),extra_liners:o(c,\"extraLiners\",void 0),wrap_attributes:a(c,\"wrapAttributes\",\"auto\"),wrap_attributes_indent_size:a(c,\"wrapAttributesIndentSize\",void 0),eol:\"\\n\"},y=i.html_beautify(d.replace(/^\\s+/,\"\"),w);if(u>0){var T=c.insertSpaces?r.repeat(\" \",p*u):r.repeat(\"\\t\",u);y=y.split(\"\\n\").join(\"\\n\"+T),0===t.start.character&&(y=T+y)}return[{range:t,newText:y}]}}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)i=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var r=navigator.userAgent;i=r.indexOf(\"Windows\")>=0}var a=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,i,r,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=i||\"\",this.fragment=r||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!a.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,a=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===i?i=this.path:null===i&&(i=\"\"),void 0===r?r=this.query:null===r&&(r=\"\"),void 0===a?a=this.fragment:null===a&&(a=\"\"),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&a===this.fragment?this:new u(t,n,i,r,a)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new u(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new u(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(i&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new u(\"file\",t,e,\"\",\"\")},e.from=function(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new u(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=d;var h=i?1:void 0,u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function m(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var a=e.charCodeAt(r);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var o=p[a];void 0!==o?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=o):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=p[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,i&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:m,i=\"\",r=e.scheme,a=e.authority,o=e.path,s=e.query,c=e.fragment;if(r&&(i+=r,i+=\":\"),(a||\"file\"===r)&&(i+=l,i+=l),a){var d=a.indexOf(\"@\");if(-1!==d){var h=a.substr(0,d);a=a.substr(d+1),-1===(d=h.indexOf(\":\"))?i+=n(h,!1):(i+=n(h.substr(0,d),!1),i+=\":\",i+=n(h.substr(d+1),!1)),i+=\"@\"}-1===(d=(a=a.toLowerCase()).indexOf(\":\"))?i+=n(a,!1):(i+=n(a.substr(0,d),!1),i+=a.substr(d))}if(o){if(o.length>=3&&47===o.charCodeAt(0)&&58===o.charCodeAt(2))(u=o.charCodeAt(1))>=65&&u<=90&&(o=\"/\"+String.fromCharCode(u+32)+\":\"+o.substr(3));else if(o.length>=2&&58===o.charCodeAt(1)){var u;(u=o.charCodeAt(0))>=65&&u<=90&&(o=String.fromCharCode(u+32)+\":\"+o.substr(2))}i+=n(o,!0)}return s&&(i+=\"?\",i+=n(s,!1)),c&&(i+=\"#\",i+=t?c:m(c,!1)),i}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlLinks\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../utils/strings\",\"vscode-uri\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../utils/strings\"),a=e(\"vscode-uri\"),o=e(\"../htmlLanguageTypes\");function s(e){var t=e[0];return t!==e[e.length-1]||\"'\"!==t&&'\"'!==t||(e=e.substr(1,e.length-2)),e}function l(e,t,n,o,l,c){var d=s(n);if(h=d,u=e.languageId,h.length&&(\"handlebars\"!==u||!/{{.*}}/.test(h))&&/\\b(w[\\w\\d+.-]*:\\/\\/)?[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|\\/?))/.test(h)){var h,u;d.length<n.length&&(o++,l--);var p=function(e,t,n,i){if(!/^\\s*javascript\\:/i.test(t)&&!/[\\n\\r]/.test(t))return t=t.replace(/^\\s*/g,\"\"),/^https?:\\/\\//i.test(t)||/^file:\\/\\//i.test(t)?t:/^\\#/i.test(t)?e+t:/^\\/\\//i.test(t)?(r.startsWith(e,\"https://\")?\"https\":\"http\")+\":\"+t.replace(/^\\s*/g,\"\"):n?n.resolveReference(t,i||e):t}(e.uri,d,t,c);if(p&&function(e){try{return a.URI.parse(e),!0}catch(e){return!1}}(p))return{range:i.Range.create(e.positionAt(o),e.positionAt(l)),target:p}}}t.findDocumentLinks=function(e,t){for(var i=[],a=n.createScanner(e.getText(),0),c=a.scan(),d=void 0,h=!1,u=void 0,p={};c!==o.TokenType.EOS;){switch(c){case o.TokenType.StartTag:if(!u)h=\"base\"===a.getTokenText().toLowerCase();break;case o.TokenType.AttributeName:d=a.getTokenText().toLowerCase();break;case o.TokenType.AttributeValue:if(\"src\"===d||\"href\"===d){var m=a.getTokenText();if(!h)(b=l(e,t,m,a.getTokenOffset(),a.getTokenEnd(),u))&&i.push(b);h&&void 0===u&&(u=s(m))&&t&&(u=t.resolveReference(u,e.uri)),h=!1,d=void 0}else if(\"id\"===d){p[s(a.getTokenText())]=a.getTokenOffset()}}c=a.scan()}for(var f=0,g=i;f<g.length;f++){var b=g[f],_=e.uri+\"#\";if(b.target&&r.startsWith(b.target,_)){var v=p[b.target.substr(_.length)];if(void 0!==v){var w=e.positionAt(v);b.target=\"\"+_+(w.line+1)+\",\"+(w.character+1)}}}return i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHighlighting\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\");function a(e,t){return e.line<t.line||e.line===t.line&&e.character<=t.character}function o(e,t){return a(e.start,t)&&a(t,e.end)}function s(e,t,i){for(var a=n.createScanner(t.getText(),i),o=a.scan();o!==r.TokenType.EOS&&o!==e;)o=a.scan();return o!==r.TokenType.EOS?{start:t.positionAt(a.getTokenOffset()),end:t.positionAt(a.getTokenEnd())}:null}t.findDocumentHighlights=function(e,t,n){var a=e.offsetAt(t),l=n.findNodeAt(a);if(!l.tag)return[];var c=[],d=s(r.TokenType.StartTag,e,l.start),h=\"number\"==typeof l.endTagStart&&s(r.TokenType.EndTag,e,l.endTagStart);return(d&&o(d,t)||h&&o(h,t))&&(d&&c.push({kind:i.DocumentHighlightKind.Read,range:d}),h&&c.push({kind:i.DocumentHighlightKind.Read,range:h})),c}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSymbolsProvider\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");t.findDocumentSymbols=function(e,t){var i=[];return t.roots.forEach((function(t){!function e(t,i,r,a){var o=function(e){var t=e.tag;if(e.attributes){var n=e.attributes.id,i=e.attributes.class;n&&(t+=\"#\"+n.replace(/[\\\"\\']/g,\"\")),i&&(t+=i.replace(/[\\\"\\']/g,\"\").split(/\\s+/).map((function(e){return\".\"+e})).join(\"\"))}return t||\"?\"}(i),s=n.Location.create(t.uri,n.Range.create(t.positionAt(i.start),t.positionAt(i.end))),l={name:o,location:s,containerName:r,kind:n.SymbolKind.Field};a.push(l),i.children.forEach((function(n){e(t,n,o,a)}))}(e,t,\"\",i)})),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlRename\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.doRename=function(e,t,n,i){var r,a=e.offsetAt(t),o=i.findNodeAt(a);if(!o.tag)return null;if(!function(e,t,n){if(e.endTagStart&&e.endTagStart+\"</\".length<=t&&t<=e.endTagStart+\"</\".length+n.length)return!0;return e.start+\"<\".length<=t&&t<=e.start+\"<\".length+n.length}(o,a,o.tag))return null;var s=[],l={start:e.positionAt(o.start+\"<\".length),end:e.positionAt(o.start+\"<\".length+o.tag.length)};if(s.push({range:l,newText:n}),o.endTagStart){var c={start:e.positionAt(o.endTagStart+\"</\".length),end:e.positionAt(o.endTagStart+\"</\".length+o.tag.length)};s.push({range:c,newText:n})}return{changes:((r={})[e.uri.toString()]=s,r)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlMatchingTagPosition\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findMatchingTagPosition=function(e,t,n){var i=e.offsetAt(t),r=n.findNodeAt(i);if(!r.tag)return null;if(!r.endTagStart)return null;if(r.start+\"<\".length<=i&&i<=r.start+\"<\".length+r.tag.length){var a=i-\"<\".length-r.start+r.endTagStart+\"</\".length;return e.positionAt(a)}if(r.endTagStart+\"</\".length<=i&&i<=r.endTagStart+\"</\".length+r.tag.length){a=i-\"</\".length-r.endTagStart+r.start+\"<\".length;return e.positionAt(a)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFolding\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../parser/htmlScanner\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../htmlLanguageTypes\"),r=e(\"../parser/htmlScanner\"),a=e(\"../languageFacts/fact\");t.getFoldingRanges=function(e,t){var o=r.createScanner(e.getText()),s=o.scan(),l=[],c=[],d=null,h=-1;function u(e){l.push(e),h=e.startLine}for(;s!==i.TokenType.EOS;){switch(s){case i.TokenType.StartTag:var p=o.getTokenText(),m=e.positionAt(o.getTokenOffset()).line;c.push({startLine:m,tagName:p}),d=p;break;case i.TokenType.EndTag:d=o.getTokenText();break;case i.TokenType.StartTagClose:if(!d||!a.isVoidElement(d))break;case i.TokenType.EndTagClose:case i.TokenType.StartTagSelfClose:for(var f=c.length-1;f>=0&&c[f].tagName!==d;)f--;if(f>=0){var g=c[f];c.length=f,(_=e.positionAt(o.getTokenOffset()).line-1)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_})}break;case i.TokenType.Comment:m=e.positionAt(o.getTokenOffset()).line;var b=o.getTokenText().match(/^\\s*#(region\\b)|(endregion\\b)/);if(b)if(b[1])c.push({startLine:m,tagName:\"\"});else{for(f=c.length-1;f>=0&&c[f].tagName.length;)f--;if(f>=0){var _;g=c[f];c.length=f,(_=m)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Region})}}else m<(_=e.positionAt(o.getTokenOffset()+o.getTokenLength()).line)&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Comment})}s=o.scan()}var v=t&&t.rangeLimit||Number.MAX_VALUE;return l.length>v?function(e,t){e=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n}));for(var n=void 0,i=[],r=[],a=[],o=function(e,t){r[e]=t,t<30&&(a[t]=(a[t]||0)+1)},s=0;s<e.length;s++){var l=e[s];if(n){if(l.startLine>n.startLine)if(l.endLine<=n.endLine)i.push(n),n=l,o(s,i.length);else if(l.startLine>n.endLine){do{n=i.pop()}while(n&&l.startLine>n.endLine);n&&i.push(n),n=l,o(s,i.length)}}else n=l,o(s,0)}var c=0,d=0;for(s=0;s<a.length;s++){var h=a[s];if(h){if(h+c>t){d=s;break}c+=h}}var u=[];for(s=0;s<e.length;s++){var p=r[s];\"number\"==typeof p&&(p<d||p===d&&c++<t)&&u.push(e[s])}return u}(l,v):l}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSelectionRange\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../parser/htmlParser\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../parser/htmlParser\"),a=e(\"../htmlLanguageTypes\");function o(e,t,r){for(var o=n.Range.create(e.positionAt(t.start),e.positionAt(t.end)),s=e.getText(o),l=r-t.start,c=i.createScanner(s),d=c.scan(),h=t.start,u=[],p=!1,m=-1;d!==a.TokenType.EOS;){switch(d){case a.TokenType.AttributeName:if(l<c.getTokenOffset()){p=!1;break}l<=c.getTokenEnd()&&u.unshift([c.getTokenOffset(),c.getTokenEnd()]),p=!0,m=c.getTokenOffset();break;case a.TokenType.AttributeValue:if(!p)break;var f=c.getTokenText();if(l<c.getTokenOffset()){u.push([m,c.getTokenEnd()]);break}l>=c.getTokenOffset()&&l<=c.getTokenEnd()&&(u.unshift([c.getTokenOffset(),c.getTokenEnd()]),('\"'===f[0]&&'\"'===f[f.length-1]||\"'\"===f[0]&&\"'\"===f[f.length-1])&&l>=c.getTokenOffset()+1&&l<=c.getTokenEnd()-1&&u.unshift([c.getTokenOffset()+1,c.getTokenEnd()-1]),u.push([m,c.getTokenEnd()]))}d=c.scan()}return u.map((function(e){return[e[0]+h,e[1]+h]}))}t.getSelectionRanges=function(e,t){return t.map((function(t){for(var i=function(e,t){var i=r.parse(e.getText()),a=e.offsetAt(t),s=i.findNodeAt(a),l=function(e){var t=e,n=[];for(;t.parent;)t=t.parent,(i=t,i.startTagEnd&&i.endTagStart&&i.startTagEnd<i.endTagStart?[[i.startTagEnd,i.endTagStart],[i.start,i.end]]:[[i.start,i.end]]).forEach((function(e){return n.push(e)}));var i;return n}(s);if(s.startTagEnd&&!s.endTagStart){if(s.startTagEnd!==s.end)return[[s.start,s.end]];var c=n.Range.create(e.positionAt(s.startTagEnd-2),e.positionAt(s.startTagEnd));\"/>\"===e.getText(c)?l.unshift([s.start+1,s.startTagEnd-2]):l.unshift([s.start+1,s.startTagEnd-1]);var d=o(e,s,a);return l=d.concat(l)}if(!s.startTagEnd||!s.endTagStart)return l;if(l.unshift([s.start,s.end]),s.start<a&&a<s.startTagEnd){l.unshift([s.start+1,s.startTagEnd-1]);d=o(e,s,a);return l=d.concat(l)}return s.startTagEnd<=a&&a<=s.endTagStart?(l.unshift([s.startTagEnd,s.endTagStart]),l):(a>=s.endTagStart+2&&l.unshift([s.endTagStart+2,s.end-1]),l)}(e,t),a=void 0,s=void 0,l=i.length-1;l>=0;l--){var c=i[l];a&&c[0]===a[0]&&c[1]===a[1]||(s=n.SelectionRange.create(n.Range.create(e.positionAt(i[l][0]),e.positionAt(i[l][1])),s)),a=c}return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var a=0,o=t;a<o.length;a++){var s=o[a];if(e.isIncremental(s)){var l=r(s.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+s.text+this._content.substring(d,this._content.length);var h=Math.max(l.start.line,0),u=Math.max(l.end.line,0),p=this._lineOffsets,m=i(s.text,!1,c);if(u-h===m.length)for(var f=0,g=m.length;f<g;f++)p[f+h+1]=m[f];else m.length<1e4?p.splice.apply(p,[h+1,u-h].concat(m)):this._lineOffsets=p=p.slice(0,h+1).concat(m,p.slice(u+1));var b=s.text.length-(d-c);if(0!==b)for(f=h+1+m.length,g=p.length;f<g;f++)p[f]=p[f]+b}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=i(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,i=t.length;if(0===i)return{line:0,character:e};for(;n<i;){var r=Math.floor((n+i)/2);t[r]>e?i=r:n=r+1}var a=n-1;return{line:a,character:e-t[a]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function i(e,t,n){void 0===n&&(n=0);for(var i=t?[n]:[],r=0;r<e.length;r++){var a=e.charCodeAt(r);13!==a&&10!==a||(13===a&&r+1<e.length&&10===e.charCodeAt(r+1)&&r++,i.push(n+r+1))}return i}function r(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function a(e){var t=r(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,i,r){return new n(e,t,i,r)},e.update=function(e,t,i){if(e instanceof n)return e.update(t,i),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t.map(a),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,o=i.length-1;o>=0;o--){var s=i[o],l=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+s.newText+n.substring(c,n.length),r=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageService\",[\"require\",\"exports\",\"./parser/htmlScanner\",\"./parser/htmlParser\",\"./services/htmlCompletion\",\"./services/htmlHover\",\"./services/htmlFormatter\",\"./services/htmlLinks\",\"./services/htmlHighlighting\",\"./services/htmlSymbolsProvider\",\"./services/htmlRename\",\"./services/htmlMatchingTagPosition\",\"./services/htmlFolding\",\"./services/htmlSelectionRange\",\"./languageFacts/builtinDataProviders\",\"./languageFacts/dataProvider\",\"./htmlLanguageTypes\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var i=e(\"./parser/htmlScanner\"),r=e(\"./parser/htmlParser\"),a=e(\"./services/htmlCompletion\"),o=e(\"./services/htmlHover\"),s=e(\"./services/htmlFormatter\"),l=e(\"./services/htmlLinks\"),c=e(\"./services/htmlHighlighting\"),d=e(\"./services/htmlSymbolsProvider\"),h=e(\"./services/htmlRename\"),u=e(\"./services/htmlMatchingTagPosition\"),p=e(\"./services/htmlFolding\"),m=e(\"./services/htmlSelectionRange\"),f=e(\"./languageFacts/builtinDataProviders\"),g=e(\"./languageFacts/dataProvider\");n(e(\"./htmlLanguageTypes\"));var b=e(\"vscode-languageserver-textdocument\");t.TextDocument=b.TextDocument,n(e(\"vscode-languageserver-types\")),t.getLanguageService=function(e){var t=new o.HTMLHover(e&&e.clientCapabilities),n=new a.HTMLCompletion(e&&e.clientCapabilities);return e&&e.customDataProviders&&f.handleCustomDataProviders(e.customDataProviders),{createScanner:i.createScanner,parseHTMLDocument:function(e){return r.parse(e.getText())},doComplete:n.doComplete.bind(n),setCompletionParticipants:n.setCompletionParticipants.bind(n),doHover:t.doHover.bind(t),format:s.format,findDocumentHighlights:c.findDocumentHighlights,findDocumentLinks:l.findDocumentLinks,findDocumentSymbols:d.findDocumentSymbols,getFoldingRanges:p.getFoldingRanges,getSelectionRanges:m.getSelectionRanges,doTagComplete:n.doTagComplete.bind(n),doRename:h.doRename,findMatchingTagPosition:u.findMatchingTagPosition}},t.newHTMLDataProvider=function(e,t){return new g.HTMLDataProvider(e,t)}})),define(\"vscode-html-languageservice\",[\"vscode-html-languageservice/htmlLanguageService\"],(function(e){return e})),define(\"vs/language/html/languageFeatures\",[\"require\",\"exports\",\"vscode-html-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=monaco.Uri,r=monaco.Range,a=function(){function e(e,t,n){var i=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var r=function(e){var t,n=e.getModeId();n===i._languageId&&(i._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return i._doValidate(e.uri,n)}),500)})),i._doValidate(e.uri,n))},a=function(e){monaco.editor.setModelMarkers(e,i._languageId,[]);var t=e.uri.toString(),n=i._listener[t];n&&(n.dispose(),delete i._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(r)),this._disposables.push(monaco.editor.onWillDisposeModel((function(e){a(e)}))),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){a(e.model),r(e.model)}))),this._disposables.push(n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===i._languageId&&(a(e),r(e))}))}))),this._disposables.push({dispose:function(){for(var e in i._listener)i._listener[e].dispose()}}),monaco.editor.getModels().forEach(r)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var i=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:o(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n}));monaco.editor.setModelMarkers(monaco.editor.getModel(e),t,i)}))})).then(void 0,(function(e){console.error(e)}))},e}();function o(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function s(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function l(e){if(e)return new r(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function c(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function d(e){if(e)return{range:l(e.range),text:e.newText}}t.DiagnosticsAdapter=a;var h=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\".\",\":\",\"<\",'\"',\"=\",\"/\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,i,a){var o=e.uri;return this._worker(o).then((function(e){return e.doComplete(o.toString(),s(t))})).then((function(i){if(i){var a=e.getWordUntilPosition(t),o=new r(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn),s=i.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:o,kind:c(e.kind)};return e.textEdit&&(t.range=l(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:i.isIncomplete,suggestions:s}}}))},e}();function u(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function p(e){if(e)return Array.isArray(e)?e.map(u):[u(e)]}t.CompletionAdapter=h;var m=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.doHover(i.toString(),s(t))})).then((function(e){if(e)return{range:l(e.range),contents:p(e.contents)}}))},e}();function f(e){var t=monaco.languages.DocumentHighlightKind;switch(e){case n.DocumentHighlightKind.Read:return t.Read;case n.DocumentHighlightKind.Write:return t.Write;case n.DocumentHighlightKind.Text:return t.Text}return t.Text}t.HoverAdapter=m;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.findDocumentHighlights(i.toString(),s(t))})).then((function(e){if(e)return e.map((function(e){return{range:l(e.range),kind:f(e.kind)}}))}))},e}();function b(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.DocumentHighlightAdapter=g;var _=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:b(e.kind),tags:[],range:l(e.location.range),selectionRange:l(e.location.range)}}))}))},e}();t.DocumentSymbolAdapter=_;var v=function(){function e(e){this._worker=e}return e.prototype.provideLinks=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentLinks(n.toString())})).then((function(e){if(e)return{links:e.map((function(e){return{range:l(e.range),url:e.target}}))}}))},e}();function w(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}t.DocumentLinkAdapter=v;var y=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.format(i.toString(),null,w(t)).then((function(e){if(e&&0!==e.length)return e.map(d)}))}))},e}();t.DocumentFormattingEditProvider=y;var T=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,i){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),function(e){if(e)return{start:s(e.getStartPosition()),end:s(e.getEndPosition())}}(t),w(n)).then((function(e){if(e&&0!==e.length)return e.map(d)}))}))},e}();t.DocumentRangeFormattingEditProvider=T;var k=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,r){var a=e.uri;return this._worker(a).then((function(e){return e.doRename(a.toString(),s(t),n)})).then((function(e){return function(e){if(!e||!e.changes)return;var t=[];for(var n in e.changes)for(var r=i.parse(n),a=0,o=e.changes[n];a<o.length;a++){var s=o[a];t.push({resource:r,edit:{range:l(s.range),text:s.newText}})}return{edits:t}}(e)}))},e}();t.RenameAdapter=k;var S=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,i){var r=e.uri;return this._worker(r).then((function(e){return e.getFoldingRanges(r.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=S;var x=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.getSelectionRanges(i.toString(),t.map(s))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:l(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=x})),define(\"vs/language/html/htmlMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,i){\"use strict\";function r(e){return{dispose:function(){return a(e)}}}function a(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode1=function(e){var t=new n.WorkerManager(e),r=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.getLanguageServiceWorker.apply(t,e)},a=e.languageId;monaco.languages.registerCompletionItemProvider(a,new i.CompletionAdapter(r)),monaco.languages.registerHoverProvider(a,new i.HoverAdapter(r)),monaco.languages.registerDocumentHighlightProvider(a,new i.DocumentHighlightAdapter(r)),monaco.languages.registerLinkProvider(a,new i.DocumentLinkAdapter(r)),monaco.languages.registerFoldingRangeProvider(a,new i.FoldingRangeAdapter(r)),monaco.languages.registerDocumentSymbolProvider(a,new i.DocumentSymbolAdapter(r)),monaco.languages.registerSelectionRangeProvider(a,new i.SelectionRangeAdapter(r)),monaco.languages.registerRenameProvider(a,new i.RenameAdapter(r)),\"html\"===a&&(monaco.languages.registerDocumentFormattingEditProvider(a,new i.DocumentFormattingEditProvider(r)),monaco.languages.registerDocumentRangeFormattingEditProvider(a,new i.DocumentRangeFormattingEditProvider(r)),new i.DiagnosticsAdapter(a,r,e))},t.setupMode=function(e){var t=[],o=[],s=new n.WorkerManager(e);t.push(s);var l,c,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return s.getLanguageServiceWorker.apply(s,e)};return l=e.languageId,c=e.modeConfiguration,a(o),c.completionItems&&o.push(monaco.languages.registerCompletionItemProvider(l,new i.CompletionAdapter(d))),c.hovers&&o.push(monaco.languages.registerHoverProvider(l,new i.HoverAdapter(d))),c.documentHighlights&&o.push(monaco.languages.registerDocumentHighlightProvider(l,new i.DocumentHighlightAdapter(d))),c.links&&o.push(monaco.languages.registerLinkProvider(l,new i.DocumentLinkAdapter(d))),c.documentSymbols&&o.push(monaco.languages.registerDocumentSymbolProvider(l,new i.DocumentSymbolAdapter(d))),c.rename&&o.push(monaco.languages.registerRenameProvider(l,new i.RenameAdapter(d))),c.foldingRanges&&o.push(monaco.languages.registerFoldingRangeProvider(l,new i.FoldingRangeAdapter(d))),c.selectionRanges&&o.push(monaco.languages.registerSelectionRangeProvider(l,new i.SelectionRangeAdapter(d))),c.documentFormattingEdits&&o.push(monaco.languages.registerDocumentFormattingEditProvider(l,new i.DocumentFormattingEditProvider(d))),c.documentRangeFormattingEdits&&o.push(monaco.languages.registerDocumentRangeFormattingEditProvider(l,new i.DocumentRangeFormattingEditProvider(d))),c.diagnostics&&o.push(new i.DiagnosticsAdapter(l,d,e)),t.push(r(o)),r(t)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/html/htmlWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0];return void 0!==t[i]?t[i]:e}))}function i(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];return n(t,i)}function r(e){return i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=r,t.config=function(e){return r}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i,r,a,o,s,l,c,d,h,u,p,m;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.number(t.line)&&y.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,i,r){if(y.number(e)&&y.number(t)&&y.number(i)&&y.number(r))return{start:n.create(e,t),end:n.create(i,r)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+i+\", \"+r+\"]\")},e.is=function(e){var t=e;return y.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(i=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.string(t.uri)||y.undefined(t.uri))}}(r=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,i){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:i}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.targetRange)&&y.string(t.targetUri)&&(i.is(t.targetSelectionRange)||y.undefined(t.targetSelectionRange))&&(i.is(t.originSelectionRange)||y.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return y.number(t.red)&&y.number(t.green)&&y.number(t.blue)&&y.number(t.alpha)}}(a=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return i.is(t.range)&&a.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return y.string(t.label)&&(y.undefined(t.textEdit)||c.is(t))&&(y.undefined(t.additionalTextEdits)||y.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,i,r){var a={startLine:e,endLine:t};return y.defined(n)&&(a.startCharacter=n),y.defined(i)&&(a.endCharacter=i),y.defined(r)&&(a.kind=r),a},e.is=function(e){var t=e;return y.number(t.startLine)&&y.number(t.startLine)&&(y.undefined(t.startCharacter)||y.number(t.startCharacter))&&(y.undefined(t.endCharacter)||y.number(t.endCharacter))&&(y.undefined(t.kind)||y.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return y.defined(t)&&r.is(t.location)&&y.string(t.message)}}(o=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,i,r,a){var o={range:e,message:t};return y.defined(n)&&(o.severity=n),y.defined(i)&&(o.code=i),y.defined(r)&&(o.source=r),y.defined(a)&&(o.relatedInformation=a),o},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&y.string(t.message)&&(y.number(t.severity)||y.undefined(t.severity))&&(y.number(t.code)||y.string(t.code)||y.undefined(t.code))&&(y.string(t.source)||y.undefined(t.source))&&(y.undefined(t.relatedInformation)||y.typedArray(t.relatedInformation,o.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={title:e,command:t};return y.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.title)&&y.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.string(t.newText)&&i.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return y.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(h=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var i={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),i},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&y.string(t.oldUri)&&y.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(u=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||y.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||y.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return y.string(e.kind)?h.is(e)||u.is(e)||p.is(e):d.is(e)})))}}(m=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,_,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var i=new v(e.changes[n]);t._textEditChanges[n]=i})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new v(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new v(r),this._textEditChanges[e]=i}return i},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(u.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&(null===t.version||y.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&y.string(t.languageId)&&y.number(t.version)&&y.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return y.objectLiteral(e)&&g.is(t.kind)&&y.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return y.string(t)||y.objectLiteral(t)&&y.string(t.language)&&y.string(t.value)}}(_=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&y.objectLiteral(t)&&(b.is(t.contents)||_.is(t.contents)||y.typedArray(t.contents,_.is))&&(void 0===e.range||i.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={label:e};return y.defined(t)&&(r.documentation=t),y.defined(n)?r.parameters=n:r.parameters=[],r}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return y.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,i,r){var a={name:e,kind:t,location:{uri:i,range:n}};return r&&(a.containerName=r),a}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,i,r,a){var o={name:e,detail:t,kind:n,range:i,selectionRange:r};return void 0!==a&&(o.children=a),o},e.is=function(e){var t=e;return t&&y.string(t.name)&&y.number(t.kind)&&i.is(t.range)&&i.is(t.selectionRange)&&(void 0===t.detail||y.string(t.detail))&&(void 0===t.deprecated||y.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return y.defined(t)&&y.typedArray(t.diagnostics,s.is)&&(void 0===t.only||y.typedArray(t.only,y.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var i={title:e};return l.is(t)?i.command=t:i.edit=t,void 0!==n&&(i.kind=n),i},e.is=function(e){var t=e;return t&&y.string(t.title)&&(void 0===t.diagnostics||y.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||y.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||y.boolean(t.isPreferred))&&(void 0===t.edit||m.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return y.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return y.defined(t)&&y.number(t.tabSize)&&y.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.target)||y.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&i.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,i){return new T(e,t,n,i)},e.is=function(e){var t=e;return!!(y.defined(t)&&y.string(t.uri)&&(y.undefined(t.languageId)||y.string(t.languageId))&&y.number(t.lineCount)&&y.func(t.getText)&&y.func(t.positionAt)&&y.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,a=i.length-1;a>=0;a--){var o=i[a],s=e.offsetAt(o.range.start),l=e.offsetAt(o.range.end);if(!(l<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+o.newText+n.substring(l,n.length),r=s}return n}}(t.TextDocument||(t.TextDocument={}));var y,T=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i<t.length;i++){n&&(e.push(i),n=!1);var r=t.charAt(i);n=\"\\r\"===r||\"\\n\"===r,\"\\r\"===r&&i+1<t.length&&\"\\n\"===t.charAt(i+1)&&i++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(0===r)return n.create(0,e);for(;i<r;){var a=Math.floor((i+r)/2);t[a]>e?r=a:i=a+1}var o=i-1;return n.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(y||(y={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");!function(e){e[e.StartCommentTag=0]=\"StartCommentTag\",e[e.Comment=1]=\"Comment\",e[e.EndCommentTag=2]=\"EndCommentTag\",e[e.StartTagOpen=3]=\"StartTagOpen\",e[e.StartTagClose=4]=\"StartTagClose\",e[e.StartTagSelfClose=5]=\"StartTagSelfClose\",e[e.StartTag=6]=\"StartTag\",e[e.EndTagOpen=7]=\"EndTagOpen\",e[e.EndTagClose=8]=\"EndTagClose\",e[e.EndTag=9]=\"EndTag\",e[e.DelimiterAssign=10]=\"DelimiterAssign\",e[e.AttributeName=11]=\"AttributeName\",e[e.AttributeValue=12]=\"AttributeValue\",e[e.StartDoctypeTag=13]=\"StartDoctypeTag\",e[e.Doctype=14]=\"Doctype\",e[e.EndDoctypeTag=15]=\"EndDoctypeTag\",e[e.Content=16]=\"Content\",e[e.Whitespace=17]=\"Whitespace\",e[e.Unknown=18]=\"Unknown\",e[e.Script=19]=\"Script\",e[e.Styles=20]=\"Styles\",e[e.EOS=21]=\"EOS\"}(t.TokenType||(t.TokenType={})),function(e){e[e.WithinContent=0]=\"WithinContent\",e[e.AfterOpeningStartTag=1]=\"AfterOpeningStartTag\",e[e.AfterOpeningEndTag=2]=\"AfterOpeningEndTag\",e[e.WithinDoctype=3]=\"WithinDoctype\",e[e.WithinTag=4]=\"WithinTag\",e[e.WithinEndTag=5]=\"WithinEndTag\",e[e.WithinComment=6]=\"WithinComment\",e[e.WithinScriptContent=7]=\"WithinScriptContent\",e[e.WithinStyleContent=8]=\"WithinStyleContent\",e[e.AfterAttributeName=9]=\"AfterAttributeName\",e[e.BeforeAttributeValue=10]=\"BeforeAttributeValue\"}(t.ScannerState||(t.ScannerState={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlScanner\",[\"require\",\"exports\",\"vscode-nls\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\"),i=e(\"../htmlLanguageTypes\"),r=n.loadMessageBundle(),a=function(){function e(e,t){this.source=e,this.len=e.length,this.position=t}return e.prototype.eos=function(){return this.len<=this.position},e.prototype.getSource=function(){return this.source},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.goToEnd=function(){this.position=this.source.length},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){var t;if(this.position+e.length>this.source.length)return!1;for(t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceIfRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index+t[0].length,t[0]):\"\"},e.prototype.advanceUntilRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index,t[0]):(this.goToEnd(),\"\")},e.prototype.advanceUntilChar=function(e){for(;this.position<this.source.length;){if(this.source.charCodeAt(this.position)===e)return!0;this.advance(1)}return!1},e.prototype.advanceUntilChars=function(e){for(;this.position+e.length<=this.source.length;){for(var t=0;t<e.length&&this.source.charCodeAt(this.position+t)===e[t];t++);if(t===e.length)return!0;this.advance(1)}return this.goToEnd(),!1},e.prototype.skipWhitespace=function(){return this.advanceWhileChar((function(e){return e===b||e===_||e===m||e===g||e===f}))>0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}(),o=\"!\".charCodeAt(0),s=\"-\".charCodeAt(0),l=\"<\".charCodeAt(0),c=\">\".charCodeAt(0),d=\"/\".charCodeAt(0),h=\"=\".charCodeAt(0),u='\"'.charCodeAt(0),p=\"'\".charCodeAt(0),m=\"\\n\".charCodeAt(0),f=\"\\r\".charCodeAt(0),g=\"\\f\".charCodeAt(0),b=\" \".charCodeAt(0),_=\"\\t\".charCodeAt(0),v={\"text/x-handlebars-template\":!0};t.createScanner=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=i.ScannerState.WithinContent);var m,f,g,b,_,w=new a(e,t),y=n,T=0,k=i.TokenType.Unknown;function S(){return w.advanceIfRegExp(/^[_:\\w][_:\\w-.\\d]*/).toLowerCase()}function x(e,t,n){return k=t,T=e,m=n,t}return{scan:function(){var e=w.pos(),t=y,n=function e(){var t,n=w.pos();if(w.eos())return x(n,i.TokenType.EOS);switch(y){case i.ScannerState.WithinComment:return w.advanceIfChars([s,s,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndCommentTag)):(w.advanceUntilChars([s,s,c]),x(n,i.TokenType.Comment));case i.ScannerState.WithinDoctype:return w.advanceIfChar(c)?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndDoctypeTag)):(w.advanceUntilChar(c),x(n,i.TokenType.Doctype));case i.ScannerState.WithinContent:if(w.advanceIfChar(l)){if(!w.eos()&&w.peekChar()===o){if(w.advanceIfChars([o,s,s]))return y=i.ScannerState.WithinComment,x(n,i.TokenType.StartCommentTag);if(w.advanceIfRegExp(/^!doctype/i))return y=i.ScannerState.WithinDoctype,x(n,i.TokenType.StartDoctypeTag)}return w.advanceIfChar(d)?(y=i.ScannerState.AfterOpeningEndTag,x(n,i.TokenType.EndTagOpen)):(y=i.ScannerState.AfterOpeningStartTag,x(n,i.TokenType.StartTagOpen))}return w.advanceUntilChar(l),x(n,i.TokenType.Content);case i.ScannerState.AfterOpeningEndTag:return S().length>0?(y=i.ScannerState.WithinEndTag,x(n,i.TokenType.EndTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinEndTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.endTagNameExpected\",\"End tag name expected.\")):e());case i.ScannerState.WithinEndTag:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);if(w.advanceIfChar(c))return y=i.ScannerState.WithinContent,x(n,i.TokenType.EndTagClose);t=r(\"error.tagNameExpected\",\"Closing bracket expected.\");break;case i.ScannerState.AfterOpeningStartTag:return g=S(),_=void 0,b=void 0,g.length>0?(f=!1,y=i.ScannerState.WithinTag,x(n,i.TokenType.StartTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.startTagNameExpected\",\"Start tag name expected.\")):e());case i.ScannerState.WithinTag:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):f&&(b=w.advanceIfRegExp(/^[^\\s\"'>/=\\x00-\\x0F\\x7F\\x80-\\x9F]*/).toLowerCase()).length>0?(y=i.ScannerState.AfterAttributeName,f=!1,x(n,i.TokenType.AttributeName)):w.advanceIfChars([d,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.StartTagSelfClose)):w.advanceIfChar(c)?(y=\"script\"===g?_&&v[_]?i.ScannerState.WithinContent:i.ScannerState.WithinScriptContent:\"style\"===g?i.ScannerState.WithinStyleContent:i.ScannerState.WithinContent,x(n,i.TokenType.StartTagClose)):(w.advance(1),x(n,i.TokenType.Unknown,r(\"error.unexpectedCharacterInTag\",\"Unexpected character in tag.\")));case i.ScannerState.AfterAttributeName:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):w.advanceIfChar(h)?(y=i.ScannerState.BeforeAttributeValue,x(n,i.TokenType.DelimiterAssign)):(y=i.ScannerState.WithinTag,e());case i.ScannerState.BeforeAttributeValue:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);var a=w.advanceIfRegExp(/^[^\\s\"'`=<>]+/);if(a.length>0)return w.peekChar()===c&&w.peekChar(-1)===d&&(w.goBack(1),a=a.substr(0,a.length-1)),\"type\"===b&&(_=a),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue);var m=w.peekChar();return m===p||m===u?(w.advance(1),w.advanceUntilChar(m)&&w.advance(1),\"type\"===b&&(_=w.getSource().substring(n+1,w.pos()-1)),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue)):(y=i.ScannerState.WithinTag,f=!1,e());case i.ScannerState.WithinScriptContent:for(var T=1;!w.eos();){var k=w.advanceIfRegExp(/<!--|-->|<\\/?script\\s*\\/?>?/i);if(0===k.length)return w.goToEnd(),x(n,i.TokenType.Script);if(\"\\x3c!--\"===k)1===T&&(T=2);else if(\"--\\x3e\"===k)T=1;else if(\"/\"!==k[1])2===T&&(T=3);else{if(3!==T){w.goBack(k.length);break}T=2}}return y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Script):e();case i.ScannerState.WithinStyleContent:return w.advanceUntilRegExp(/<\\/style/i),y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Styles):e()}return w.advance(1),y=i.ScannerState.WithinContent,x(n,i.TokenType.Unknown,t)}();return n!==i.TokenType.EOS&&e===w.pos()?(console.log(\"Scanner.scan has not advanced at offset \"+e+\", state before: \"+t+\" after: \"+y),w.advance(1),x(e,i.TokenType.Unknown)):n},getTokenType:function(){return k},getTokenOffset:function(){return T},getTokenLength:function(){return w.pos()-T},getTokenEnd:function(){return w.pos()},getTokenText:function(){return w.getSource().substring(T,w.pos())},getScannerState:function(){return y},getTokenError:function(){return m}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n},t.binarySearch=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var a=(i+r)/2|0,o=n(e[a],t);if(o<0)i=a+1;else{if(!(o>0))return a;r=a-1}}return-(i+1)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/fact\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\");t.VOID_ELEMENTS=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],t.isVoidElement=function(e){return!!e&&n.binarySearch(t.VOID_ELEMENTS,e.toLowerCase(),(function(e,t){return e.localeCompare(t)}))>=0}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlParser\",[\"require\",\"exports\",\"./htmlScanner\",\"../utils/arrays\",\"../htmlLanguageTypes\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./htmlScanner\"),i=e(\"../utils/arrays\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/fact\"),o=function(){function e(e,t,n,i){this.start=e,this.end=t,this.children=n,this.parent=i,this.closed=!1}return Object.defineProperty(e.prototype,\"attributeNames\",{get:function(){return this.attributes?Object.keys(this.attributes):[]},enumerable:!0,configurable:!0}),e.prototype.isSameTag=function(e){return this.tag&&e&&this.tag.length===e.length&&this.tag.toLowerCase()===e},Object.defineProperty(e.prototype,\"firstChild\",{get:function(){return this.children[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lastChild\",{get:function(){return this.children.length?this.children[this.children.length-1]:void 0},enumerable:!0,configurable:!0}),e.prototype.findNodeBefore=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start){if(e<n.end)return n.findNodeBefore(e);var r=n.lastChild;return r&&r.end===n.end?n.findNodeBefore(e):n}}return this},e.prototype.findNodeAt=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start&&e<=n.end)return n.findNodeAt(e)}return this},e}();t.Node=o,t.parse=function(e){for(var t=n.createScanner(e),i=new o(0,e.length,[],void 0),s=i,l=-1,c=null,d=null,h=t.scan();h!==r.TokenType.EOS;){switch(h){case r.TokenType.StartTagOpen:var u=new o(t.getTokenOffset(),e.length,[],s);s.children.push(u),s=u;break;case r.TokenType.StartTag:s.tag=t.getTokenText();break;case r.TokenType.StartTagClose:s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s.tag&&a.isVoidElement(s.tag)&&s.parent&&(s.closed=!0,s=s.parent);break;case r.TokenType.StartTagSelfClose:s.parent&&(s.closed=!0,s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s=s.parent);break;case r.TokenType.EndTagOpen:l=t.getTokenOffset(),c=null;break;case r.TokenType.EndTag:c=t.getTokenText().toLowerCase();break;case r.TokenType.EndTagClose:if(c){for(var p=s;!p.isSameTag(c)&&p.parent;)p=p.parent;if(p.parent){for(;s!==p;)s.end=l,s.closed=!1,s=s.parent;s.closed=!0,s.endTagStart=l,s.end=t.getTokenEnd(),s=s.parent}}break;case r.TokenType.AttributeName:d=t.getTokenText(),(m=s.attributes)||(s.attributes=m={}),m[d]=null;break;case r.TokenType.AttributeValue:var m,f=t.getTokenText();(m=s.attributes)&&d&&(m[d]=f,d=null)}h=t.scan()}for(;s.parent;)s.end=e.length,s.closed=!1,s=s.parent;return{roots:i.children,findNodeBefore:i.findNodeBefore.bind(i),findNodeAt:i.findNodeAt.bind(i)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlEntities\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.entities={\"Aacute;\":\"Á\",Aacute:\"Á\",\"aacute;\":\"á\",aacute:\"á\",\"Abreve;\":\"Ă\",\"abreve;\":\"ă\",\"ac;\":\"∾\",\"acd;\":\"∿\",\"acE;\":\"∾̳\",\"Acirc;\":\"Â\",Acirc:\"Â\",\"acirc;\":\"â\",acirc:\"â\",\"acute;\":\"´\",acute:\"´\",\"Acy;\":\"А\",\"acy;\":\"а\",\"AElig;\":\"Æ\",AElig:\"Æ\",\"aelig;\":\"æ\",aelig:\"æ\",\"af;\":\"⁡\",\"Afr;\":\"𝔄\",\"afr;\":\"𝔞\",\"Agrave;\":\"À\",Agrave:\"À\",\"agrave;\":\"à\",agrave:\"à\",\"alefsym;\":\"ℵ\",\"aleph;\":\"ℵ\",\"Alpha;\":\"Α\",\"alpha;\":\"α\",\"Amacr;\":\"Ā\",\"amacr;\":\"ā\",\"amalg;\":\"⨿\",\"AMP;\":\"&\",AMP:\"&\",\"amp;\":\"&\",amp:\"&\",\"And;\":\"⩓\",\"and;\":\"∧\",\"andand;\":\"⩕\",\"andd;\":\"⩜\",\"andslope;\":\"⩘\",\"andv;\":\"⩚\",\"ang;\":\"∠\",\"ange;\":\"⦤\",\"angle;\":\"∠\",\"angmsd;\":\"∡\",\"angmsdaa;\":\"⦨\",\"angmsdab;\":\"⦩\",\"angmsdac;\":\"⦪\",\"angmsdad;\":\"⦫\",\"angmsdae;\":\"⦬\",\"angmsdaf;\":\"⦭\",\"angmsdag;\":\"⦮\",\"angmsdah;\":\"⦯\",\"angrt;\":\"∟\",\"angrtvb;\":\"⊾\",\"angrtvbd;\":\"⦝\",\"angsph;\":\"∢\",\"angst;\":\"Å\",\"angzarr;\":\"⍼\",\"Aogon;\":\"Ą\",\"aogon;\":\"ą\",\"Aopf;\":\"𝔸\",\"aopf;\":\"𝕒\",\"ap;\":\"≈\",\"apacir;\":\"⩯\",\"apE;\":\"⩰\",\"ape;\":\"≊\",\"apid;\":\"≋\",\"apos;\":\"'\",\"ApplyFunction;\":\"⁡\",\"approx;\":\"≈\",\"approxeq;\":\"≊\",\"Aring;\":\"Å\",Aring:\"Å\",\"aring;\":\"å\",aring:\"å\",\"Ascr;\":\"𝒜\",\"ascr;\":\"𝒶\",\"Assign;\":\"≔\",\"ast;\":\"*\",\"asymp;\":\"≈\",\"asympeq;\":\"≍\",\"Atilde;\":\"Ã\",Atilde:\"Ã\",\"atilde;\":\"ã\",atilde:\"ã\",\"Auml;\":\"Ä\",Auml:\"Ä\",\"auml;\":\"ä\",auml:\"ä\",\"awconint;\":\"∳\",\"awint;\":\"⨑\",\"backcong;\":\"≌\",\"backepsilon;\":\"϶\",\"backprime;\":\"‵\",\"backsim;\":\"∽\",\"backsimeq;\":\"⋍\",\"Backslash;\":\"∖\",\"Barv;\":\"⫧\",\"barvee;\":\"⊽\",\"Barwed;\":\"⌆\",\"barwed;\":\"⌅\",\"barwedge;\":\"⌅\",\"bbrk;\":\"⎵\",\"bbrktbrk;\":\"⎶\",\"bcong;\":\"≌\",\"Bcy;\":\"Б\",\"bcy;\":\"б\",\"bdquo;\":\"„\",\"becaus;\":\"∵\",\"Because;\":\"∵\",\"because;\":\"∵\",\"bemptyv;\":\"⦰\",\"bepsi;\":\"϶\",\"bernou;\":\"ℬ\",\"Bernoullis;\":\"ℬ\",\"Beta;\":\"Β\",\"beta;\":\"β\",\"beth;\":\"ℶ\",\"between;\":\"≬\",\"Bfr;\":\"𝔅\",\"bfr;\":\"𝔟\",\"bigcap;\":\"⋂\",\"bigcirc;\":\"◯\",\"bigcup;\":\"⋃\",\"bigodot;\":\"⨀\",\"bigoplus;\":\"⨁\",\"bigotimes;\":\"⨂\",\"bigsqcup;\":\"⨆\",\"bigstar;\":\"★\",\"bigtriangledown;\":\"▽\",\"bigtriangleup;\":\"△\",\"biguplus;\":\"⨄\",\"bigvee;\":\"⋁\",\"bigwedge;\":\"⋀\",\"bkarow;\":\"⤍\",\"blacklozenge;\":\"⧫\",\"blacksquare;\":\"▪\",\"blacktriangle;\":\"▴\",\"blacktriangledown;\":\"▾\",\"blacktriangleleft;\":\"◂\",\"blacktriangleright;\":\"▸\",\"blank;\":\"␣\",\"blk12;\":\"▒\",\"blk14;\":\"░\",\"blk34;\":\"▓\",\"block;\":\"█\",\"bne;\":\"=⃥\",\"bnequiv;\":\"≡⃥\",\"bNot;\":\"⫭\",\"bnot;\":\"⌐\",\"Bopf;\":\"𝔹\",\"bopf;\":\"𝕓\",\"bot;\":\"⊥\",\"bottom;\":\"⊥\",\"bowtie;\":\"⋈\",\"boxbox;\":\"⧉\",\"boxDL;\":\"╗\",\"boxDl;\":\"╖\",\"boxdL;\":\"╕\",\"boxdl;\":\"┐\",\"boxDR;\":\"╔\",\"boxDr;\":\"╓\",\"boxdR;\":\"╒\",\"boxdr;\":\"┌\",\"boxH;\":\"═\",\"boxh;\":\"─\",\"boxHD;\":\"╦\",\"boxHd;\":\"╤\",\"boxhD;\":\"╥\",\"boxhd;\":\"┬\",\"boxHU;\":\"╩\",\"boxHu;\":\"╧\",\"boxhU;\":\"╨\",\"boxhu;\":\"┴\",\"boxminus;\":\"⊟\",\"boxplus;\":\"⊞\",\"boxtimes;\":\"⊠\",\"boxUL;\":\"╝\",\"boxUl;\":\"╜\",\"boxuL;\":\"╛\",\"boxul;\":\"┘\",\"boxUR;\":\"╚\",\"boxUr;\":\"╙\",\"boxuR;\":\"╘\",\"boxur;\":\"└\",\"boxV;\":\"║\",\"boxv;\":\"│\",\"boxVH;\":\"╬\",\"boxVh;\":\"╫\",\"boxvH;\":\"╪\",\"boxvh;\":\"┼\",\"boxVL;\":\"╣\",\"boxVl;\":\"╢\",\"boxvL;\":\"╡\",\"boxvl;\":\"┤\",\"boxVR;\":\"╠\",\"boxVr;\":\"╟\",\"boxvR;\":\"╞\",\"boxvr;\":\"├\",\"bprime;\":\"‵\",\"Breve;\":\"˘\",\"breve;\":\"˘\",\"brvbar;\":\"¦\",brvbar:\"¦\",\"Bscr;\":\"ℬ\",\"bscr;\":\"𝒷\",\"bsemi;\":\"⁏\",\"bsim;\":\"∽\",\"bsime;\":\"⋍\",\"bsol;\":\"\\\\\",\"bsolb;\":\"⧅\",\"bsolhsub;\":\"⟈\",\"bull;\":\"•\",\"bullet;\":\"•\",\"bump;\":\"≎\",\"bumpE;\":\"⪮\",\"bumpe;\":\"≏\",\"Bumpeq;\":\"≎\",\"bumpeq;\":\"≏\",\"Cacute;\":\"Ć\",\"cacute;\":\"ć\",\"Cap;\":\"⋒\",\"cap;\":\"∩\",\"capand;\":\"⩄\",\"capbrcup;\":\"⩉\",\"capcap;\":\"⩋\",\"capcup;\":\"⩇\",\"capdot;\":\"⩀\",\"CapitalDifferentialD;\":\"ⅅ\",\"caps;\":\"∩︀\",\"caret;\":\"⁁\",\"caron;\":\"ˇ\",\"Cayleys;\":\"ℭ\",\"ccaps;\":\"⩍\",\"Ccaron;\":\"Č\",\"ccaron;\":\"č\",\"Ccedil;\":\"Ç\",Ccedil:\"Ç\",\"ccedil;\":\"ç\",ccedil:\"ç\",\"Ccirc;\":\"Ĉ\",\"ccirc;\":\"ĉ\",\"Cconint;\":\"∰\",\"ccups;\":\"⩌\",\"ccupssm;\":\"⩐\",\"Cdot;\":\"Ċ\",\"cdot;\":\"ċ\",\"cedil;\":\"¸\",cedil:\"¸\",\"Cedilla;\":\"¸\",\"cemptyv;\":\"⦲\",\"cent;\":\"¢\",cent:\"¢\",\"CenterDot;\":\"·\",\"centerdot;\":\"·\",\"Cfr;\":\"ℭ\",\"cfr;\":\"𝔠\",\"CHcy;\":\"Ч\",\"chcy;\":\"ч\",\"check;\":\"✓\",\"checkmark;\":\"✓\",\"Chi;\":\"Χ\",\"chi;\":\"χ\",\"cir;\":\"○\",\"circ;\":\"ˆ\",\"circeq;\":\"≗\",\"circlearrowleft;\":\"↺\",\"circlearrowright;\":\"↻\",\"circledast;\":\"⊛\",\"circledcirc;\":\"⊚\",\"circleddash;\":\"⊝\",\"CircleDot;\":\"⊙\",\"circledR;\":\"®\",\"circledS;\":\"Ⓢ\",\"CircleMinus;\":\"⊖\",\"CirclePlus;\":\"⊕\",\"CircleTimes;\":\"⊗\",\"cirE;\":\"⧃\",\"cire;\":\"≗\",\"cirfnint;\":\"⨐\",\"cirmid;\":\"⫯\",\"cirscir;\":\"⧂\",\"ClockwiseContourIntegral;\":\"∲\",\"CloseCurlyDoubleQuote;\":\"”\",\"CloseCurlyQuote;\":\"’\",\"clubs;\":\"♣\",\"clubsuit;\":\"♣\",\"Colon;\":\"∷\",\"colon;\":\":\",\"Colone;\":\"⩴\",\"colone;\":\"≔\",\"coloneq;\":\"≔\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"∁\",\"compfn;\":\"∘\",\"complement;\":\"∁\",\"complexes;\":\"ℂ\",\"cong;\":\"≅\",\"congdot;\":\"⩭\",\"Congruent;\":\"≡\",\"Conint;\":\"∯\",\"conint;\":\"∮\",\"ContourIntegral;\":\"∮\",\"Copf;\":\"ℂ\",\"copf;\":\"𝕔\",\"coprod;\":\"∐\",\"Coproduct;\":\"∐\",\"COPY;\":\"©\",COPY:\"©\",\"copy;\":\"©\",copy:\"©\",\"copysr;\":\"℗\",\"CounterClockwiseContourIntegral;\":\"∳\",\"crarr;\":\"↵\",\"Cross;\":\"⨯\",\"cross;\":\"✗\",\"Cscr;\":\"𝒞\",\"cscr;\":\"𝒸\",\"csub;\":\"⫏\",\"csube;\":\"⫑\",\"csup;\":\"⫐\",\"csupe;\":\"⫒\",\"ctdot;\":\"⋯\",\"cudarrl;\":\"⤸\",\"cudarrr;\":\"⤵\",\"cuepr;\":\"⋞\",\"cuesc;\":\"⋟\",\"cularr;\":\"↶\",\"cularrp;\":\"⤽\",\"Cup;\":\"⋓\",\"cup;\":\"∪\",\"cupbrcap;\":\"⩈\",\"CupCap;\":\"≍\",\"cupcap;\":\"⩆\",\"cupcup;\":\"⩊\",\"cupdot;\":\"⊍\",\"cupor;\":\"⩅\",\"cups;\":\"∪︀\",\"curarr;\":\"↷\",\"curarrm;\":\"⤼\",\"curlyeqprec;\":\"⋞\",\"curlyeqsucc;\":\"⋟\",\"curlyvee;\":\"⋎\",\"curlywedge;\":\"⋏\",\"curren;\":\"¤\",curren:\"¤\",\"curvearrowleft;\":\"↶\",\"curvearrowright;\":\"↷\",\"cuvee;\":\"⋎\",\"cuwed;\":\"⋏\",\"cwconint;\":\"∲\",\"cwint;\":\"∱\",\"cylcty;\":\"⌭\",\"Dagger;\":\"‡\",\"dagger;\":\"†\",\"daleth;\":\"ℸ\",\"Darr;\":\"↡\",\"dArr;\":\"⇓\",\"darr;\":\"↓\",\"dash;\":\"‐\",\"Dashv;\":\"⫤\",\"dashv;\":\"⊣\",\"dbkarow;\":\"⤏\",\"dblac;\":\"˝\",\"Dcaron;\":\"Ď\",\"dcaron;\":\"ď\",\"Dcy;\":\"Д\",\"dcy;\":\"д\",\"DD;\":\"ⅅ\",\"dd;\":\"ⅆ\",\"ddagger;\":\"‡\",\"ddarr;\":\"⇊\",\"DDotrahd;\":\"⤑\",\"ddotseq;\":\"⩷\",\"deg;\":\"°\",deg:\"°\",\"Del;\":\"∇\",\"Delta;\":\"Δ\",\"delta;\":\"δ\",\"demptyv;\":\"⦱\",\"dfisht;\":\"⥿\",\"Dfr;\":\"𝔇\",\"dfr;\":\"𝔡\",\"dHar;\":\"⥥\",\"dharl;\":\"⇃\",\"dharr;\":\"⇂\",\"DiacriticalAcute;\":\"´\",\"DiacriticalDot;\":\"˙\",\"DiacriticalDoubleAcute;\":\"˝\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"˜\",\"diam;\":\"⋄\",\"Diamond;\":\"⋄\",\"diamond;\":\"⋄\",\"diamondsuit;\":\"♦\",\"diams;\":\"♦\",\"die;\":\"¨\",\"DifferentialD;\":\"ⅆ\",\"digamma;\":\"ϝ\",\"disin;\":\"⋲\",\"div;\":\"÷\",\"divide;\":\"÷\",divide:\"÷\",\"divideontimes;\":\"⋇\",\"divonx;\":\"⋇\",\"DJcy;\":\"Ђ\",\"djcy;\":\"ђ\",\"dlcorn;\":\"⌞\",\"dlcrop;\":\"⌍\",\"dollar;\":\"$\",\"Dopf;\":\"𝔻\",\"dopf;\":\"𝕕\",\"Dot;\":\"¨\",\"dot;\":\"˙\",\"DotDot;\":\"⃜\",\"doteq;\":\"≐\",\"doteqdot;\":\"≑\",\"DotEqual;\":\"≐\",\"dotminus;\":\"∸\",\"dotplus;\":\"∔\",\"dotsquare;\":\"⊡\",\"doublebarwedge;\":\"⌆\",\"DoubleContourIntegral;\":\"∯\",\"DoubleDot;\":\"¨\",\"DoubleDownArrow;\":\"⇓\",\"DoubleLeftArrow;\":\"⇐\",\"DoubleLeftRightArrow;\":\"⇔\",\"DoubleLeftTee;\":\"⫤\",\"DoubleLongLeftArrow;\":\"⟸\",\"DoubleLongLeftRightArrow;\":\"⟺\",\"DoubleLongRightArrow;\":\"⟹\",\"DoubleRightArrow;\":\"⇒\",\"DoubleRightTee;\":\"⊨\",\"DoubleUpArrow;\":\"⇑\",\"DoubleUpDownArrow;\":\"⇕\",\"DoubleVerticalBar;\":\"∥\",\"DownArrow;\":\"↓\",\"Downarrow;\":\"⇓\",\"downarrow;\":\"↓\",\"DownArrowBar;\":\"⤓\",\"DownArrowUpArrow;\":\"⇵\",\"DownBreve;\":\"̑\",\"downdownarrows;\":\"⇊\",\"downharpoonleft;\":\"⇃\",\"downharpoonright;\":\"⇂\",\"DownLeftRightVector;\":\"⥐\",\"DownLeftTeeVector;\":\"⥞\",\"DownLeftVector;\":\"↽\",\"DownLeftVectorBar;\":\"⥖\",\"DownRightTeeVector;\":\"⥟\",\"DownRightVector;\":\"⇁\",\"DownRightVectorBar;\":\"⥗\",\"DownTee;\":\"⊤\",\"DownTeeArrow;\":\"↧\",\"drbkarow;\":\"⤐\",\"drcorn;\":\"⌟\",\"drcrop;\":\"⌌\",\"Dscr;\":\"𝒟\",\"dscr;\":\"𝒹\",\"DScy;\":\"Ѕ\",\"dscy;\":\"ѕ\",\"dsol;\":\"⧶\",\"Dstrok;\":\"Đ\",\"dstrok;\":\"đ\",\"dtdot;\":\"⋱\",\"dtri;\":\"▿\",\"dtrif;\":\"▾\",\"duarr;\":\"⇵\",\"duhar;\":\"⥯\",\"dwangle;\":\"⦦\",\"DZcy;\":\"Џ\",\"dzcy;\":\"џ\",\"dzigrarr;\":\"⟿\",\"Eacute;\":\"É\",Eacute:\"É\",\"eacute;\":\"é\",eacute:\"é\",\"easter;\":\"⩮\",\"Ecaron;\":\"Ě\",\"ecaron;\":\"ě\",\"ecir;\":\"≖\",\"Ecirc;\":\"Ê\",Ecirc:\"Ê\",\"ecirc;\":\"ê\",ecirc:\"ê\",\"ecolon;\":\"≕\",\"Ecy;\":\"Э\",\"ecy;\":\"э\",\"eDDot;\":\"⩷\",\"Edot;\":\"Ė\",\"eDot;\":\"≑\",\"edot;\":\"ė\",\"ee;\":\"ⅇ\",\"efDot;\":\"≒\",\"Efr;\":\"𝔈\",\"efr;\":\"𝔢\",\"eg;\":\"⪚\",\"Egrave;\":\"È\",Egrave:\"È\",\"egrave;\":\"è\",egrave:\"è\",\"egs;\":\"⪖\",\"egsdot;\":\"⪘\",\"el;\":\"⪙\",\"Element;\":\"∈\",\"elinters;\":\"⏧\",\"ell;\":\"ℓ\",\"els;\":\"⪕\",\"elsdot;\":\"⪗\",\"Emacr;\":\"Ē\",\"emacr;\":\"ē\",\"empty;\":\"∅\",\"emptyset;\":\"∅\",\"EmptySmallSquare;\":\"◻\",\"emptyv;\":\"∅\",\"EmptyVerySmallSquare;\":\"▫\",\"emsp;\":\" \",\"emsp13;\":\" \",\"emsp14;\":\" \",\"ENG;\":\"Ŋ\",\"eng;\":\"ŋ\",\"ensp;\":\" \",\"Eogon;\":\"Ę\",\"eogon;\":\"ę\",\"Eopf;\":\"𝔼\",\"eopf;\":\"𝕖\",\"epar;\":\"⋕\",\"eparsl;\":\"⧣\",\"eplus;\":\"⩱\",\"epsi;\":\"ε\",\"Epsilon;\":\"Ε\",\"epsilon;\":\"ε\",\"epsiv;\":\"ϵ\",\"eqcirc;\":\"≖\",\"eqcolon;\":\"≕\",\"eqsim;\":\"≂\",\"eqslantgtr;\":\"⪖\",\"eqslantless;\":\"⪕\",\"Equal;\":\"⩵\",\"equals;\":\"=\",\"EqualTilde;\":\"≂\",\"equest;\":\"≟\",\"Equilibrium;\":\"⇌\",\"equiv;\":\"≡\",\"equivDD;\":\"⩸\",\"eqvparsl;\":\"⧥\",\"erarr;\":\"⥱\",\"erDot;\":\"≓\",\"Escr;\":\"ℰ\",\"escr;\":\"ℯ\",\"esdot;\":\"≐\",\"Esim;\":\"⩳\",\"esim;\":\"≂\",\"Eta;\":\"Η\",\"eta;\":\"η\",\"ETH;\":\"Ð\",ETH:\"Ð\",\"eth;\":\"ð\",eth:\"ð\",\"Euml;\":\"Ë\",Euml:\"Ë\",\"euml;\":\"ë\",euml:\"ë\",\"euro;\":\"€\",\"excl;\":\"!\",\"exist;\":\"∃\",\"Exists;\":\"∃\",\"expectation;\":\"ℰ\",\"ExponentialE;\":\"ⅇ\",\"exponentiale;\":\"ⅇ\",\"fallingdotseq;\":\"≒\",\"Fcy;\":\"Ф\",\"fcy;\":\"ф\",\"female;\":\"♀\",\"ffilig;\":\"ﬃ\",\"fflig;\":\"ﬀ\",\"ffllig;\":\"ﬄ\",\"Ffr;\":\"𝔉\",\"ffr;\":\"𝔣\",\"filig;\":\"ﬁ\",\"FilledSmallSquare;\":\"◼\",\"FilledVerySmallSquare;\":\"▪\",\"fjlig;\":\"fj\",\"flat;\":\"♭\",\"fllig;\":\"ﬂ\",\"fltns;\":\"▱\",\"fnof;\":\"ƒ\",\"Fopf;\":\"𝔽\",\"fopf;\":\"𝕗\",\"ForAll;\":\"∀\",\"forall;\":\"∀\",\"fork;\":\"⋔\",\"forkv;\":\"⫙\",\"Fouriertrf;\":\"ℱ\",\"fpartint;\":\"⨍\",\"frac12;\":\"½\",frac12:\"½\",\"frac13;\":\"⅓\",\"frac14;\":\"¼\",frac14:\"¼\",\"frac15;\":\"⅕\",\"frac16;\":\"⅙\",\"frac18;\":\"⅛\",\"frac23;\":\"⅔\",\"frac25;\":\"⅖\",\"frac34;\":\"¾\",frac34:\"¾\",\"frac35;\":\"⅗\",\"frac38;\":\"⅜\",\"frac45;\":\"⅘\",\"frac56;\":\"⅚\",\"frac58;\":\"⅝\",\"frac78;\":\"⅞\",\"frasl;\":\"⁄\",\"frown;\":\"⌢\",\"Fscr;\":\"ℱ\",\"fscr;\":\"𝒻\",\"gacute;\":\"ǵ\",\"Gamma;\":\"Γ\",\"gamma;\":\"γ\",\"Gammad;\":\"Ϝ\",\"gammad;\":\"ϝ\",\"gap;\":\"⪆\",\"Gbreve;\":\"Ğ\",\"gbreve;\":\"ğ\",\"Gcedil;\":\"Ģ\",\"Gcirc;\":\"Ĝ\",\"gcirc;\":\"ĝ\",\"Gcy;\":\"Г\",\"gcy;\":\"г\",\"Gdot;\":\"Ġ\",\"gdot;\":\"ġ\",\"gE;\":\"≧\",\"ge;\":\"≥\",\"gEl;\":\"⪌\",\"gel;\":\"⋛\",\"geq;\":\"≥\",\"geqq;\":\"≧\",\"geqslant;\":\"⩾\",\"ges;\":\"⩾\",\"gescc;\":\"⪩\",\"gesdot;\":\"⪀\",\"gesdoto;\":\"⪂\",\"gesdotol;\":\"⪄\",\"gesl;\":\"⋛︀\",\"gesles;\":\"⪔\",\"Gfr;\":\"𝔊\",\"gfr;\":\"𝔤\",\"Gg;\":\"⋙\",\"gg;\":\"≫\",\"ggg;\":\"⋙\",\"gimel;\":\"ℷ\",\"GJcy;\":\"Ѓ\",\"gjcy;\":\"ѓ\",\"gl;\":\"≷\",\"gla;\":\"⪥\",\"glE;\":\"⪒\",\"glj;\":\"⪤\",\"gnap;\":\"⪊\",\"gnapprox;\":\"⪊\",\"gnE;\":\"≩\",\"gne;\":\"⪈\",\"gneq;\":\"⪈\",\"gneqq;\":\"≩\",\"gnsim;\":\"⋧\",\"Gopf;\":\"𝔾\",\"gopf;\":\"𝕘\",\"grave;\":\"`\",\"GreaterEqual;\":\"≥\",\"GreaterEqualLess;\":\"⋛\",\"GreaterFullEqual;\":\"≧\",\"GreaterGreater;\":\"⪢\",\"GreaterLess;\":\"≷\",\"GreaterSlantEqual;\":\"⩾\",\"GreaterTilde;\":\"≳\",\"Gscr;\":\"𝒢\",\"gscr;\":\"ℊ\",\"gsim;\":\"≳\",\"gsime;\":\"⪎\",\"gsiml;\":\"⪐\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"≫\",\"gt;\":\">\",gt:\">\",\"gtcc;\":\"⪧\",\"gtcir;\":\"⩺\",\"gtdot;\":\"⋗\",\"gtlPar;\":\"⦕\",\"gtquest;\":\"⩼\",\"gtrapprox;\":\"⪆\",\"gtrarr;\":\"⥸\",\"gtrdot;\":\"⋗\",\"gtreqless;\":\"⋛\",\"gtreqqless;\":\"⪌\",\"gtrless;\":\"≷\",\"gtrsim;\":\"≳\",\"gvertneqq;\":\"≩︀\",\"gvnE;\":\"≩︀\",\"Hacek;\":\"ˇ\",\"hairsp;\":\" \",\"half;\":\"½\",\"hamilt;\":\"ℋ\",\"HARDcy;\":\"Ъ\",\"hardcy;\":\"ъ\",\"hArr;\":\"⇔\",\"harr;\":\"↔\",\"harrcir;\":\"⥈\",\"harrw;\":\"↭\",\"Hat;\":\"^\",\"hbar;\":\"ℏ\",\"Hcirc;\":\"Ĥ\",\"hcirc;\":\"ĥ\",\"hearts;\":\"♥\",\"heartsuit;\":\"♥\",\"hellip;\":\"…\",\"hercon;\":\"⊹\",\"Hfr;\":\"ℌ\",\"hfr;\":\"𝔥\",\"HilbertSpace;\":\"ℋ\",\"hksearow;\":\"⤥\",\"hkswarow;\":\"⤦\",\"hoarr;\":\"⇿\",\"homtht;\":\"∻\",\"hookleftarrow;\":\"↩\",\"hookrightarrow;\":\"↪\",\"Hopf;\":\"ℍ\",\"hopf;\":\"𝕙\",\"horbar;\":\"―\",\"HorizontalLine;\":\"─\",\"Hscr;\":\"ℋ\",\"hscr;\":\"𝒽\",\"hslash;\":\"ℏ\",\"Hstrok;\":\"Ħ\",\"hstrok;\":\"ħ\",\"HumpDownHump;\":\"≎\",\"HumpEqual;\":\"≏\",\"hybull;\":\"⁃\",\"hyphen;\":\"‐\",\"Iacute;\":\"Í\",Iacute:\"Í\",\"iacute;\":\"í\",iacute:\"í\",\"ic;\":\"⁣\",\"Icirc;\":\"Î\",Icirc:\"Î\",\"icirc;\":\"î\",icirc:\"î\",\"Icy;\":\"И\",\"icy;\":\"и\",\"Idot;\":\"İ\",\"IEcy;\":\"Е\",\"iecy;\":\"е\",\"iexcl;\":\"¡\",iexcl:\"¡\",\"iff;\":\"⇔\",\"Ifr;\":\"ℑ\",\"ifr;\":\"𝔦\",\"Igrave;\":\"Ì\",Igrave:\"Ì\",\"igrave;\":\"ì\",igrave:\"ì\",\"ii;\":\"ⅈ\",\"iiiint;\":\"⨌\",\"iiint;\":\"∭\",\"iinfin;\":\"⧜\",\"iiota;\":\"℩\",\"IJlig;\":\"Ĳ\",\"ijlig;\":\"ĳ\",\"Im;\":\"ℑ\",\"Imacr;\":\"Ī\",\"imacr;\":\"ī\",\"image;\":\"ℑ\",\"ImaginaryI;\":\"ⅈ\",\"imagline;\":\"ℐ\",\"imagpart;\":\"ℑ\",\"imath;\":\"ı\",\"imof;\":\"⊷\",\"imped;\":\"Ƶ\",\"Implies;\":\"⇒\",\"in;\":\"∈\",\"incare;\":\"℅\",\"infin;\":\"∞\",\"infintie;\":\"⧝\",\"inodot;\":\"ı\",\"Int;\":\"∬\",\"int;\":\"∫\",\"intcal;\":\"⊺\",\"integers;\":\"ℤ\",\"Integral;\":\"∫\",\"intercal;\":\"⊺\",\"Intersection;\":\"⋂\",\"intlarhk;\":\"⨗\",\"intprod;\":\"⨼\",\"InvisibleComma;\":\"⁣\",\"InvisibleTimes;\":\"⁢\",\"IOcy;\":\"Ё\",\"iocy;\":\"ё\",\"Iogon;\":\"Į\",\"iogon;\":\"į\",\"Iopf;\":\"𝕀\",\"iopf;\":\"𝕚\",\"Iota;\":\"Ι\",\"iota;\":\"ι\",\"iprod;\":\"⨼\",\"iquest;\":\"¿\",iquest:\"¿\",\"Iscr;\":\"ℐ\",\"iscr;\":\"𝒾\",\"isin;\":\"∈\",\"isindot;\":\"⋵\",\"isinE;\":\"⋹\",\"isins;\":\"⋴\",\"isinsv;\":\"⋳\",\"isinv;\":\"∈\",\"it;\":\"⁢\",\"Itilde;\":\"Ĩ\",\"itilde;\":\"ĩ\",\"Iukcy;\":\"І\",\"iukcy;\":\"і\",\"Iuml;\":\"Ï\",Iuml:\"Ï\",\"iuml;\":\"ï\",iuml:\"ï\",\"Jcirc;\":\"Ĵ\",\"jcirc;\":\"ĵ\",\"Jcy;\":\"Й\",\"jcy;\":\"й\",\"Jfr;\":\"𝔍\",\"jfr;\":\"𝔧\",\"jmath;\":\"ȷ\",\"Jopf;\":\"𝕁\",\"jopf;\":\"𝕛\",\"Jscr;\":\"𝒥\",\"jscr;\":\"𝒿\",\"Jsercy;\":\"Ј\",\"jsercy;\":\"ј\",\"Jukcy;\":\"Є\",\"jukcy;\":\"є\",\"Kappa;\":\"Κ\",\"kappa;\":\"κ\",\"kappav;\":\"ϰ\",\"Kcedil;\":\"Ķ\",\"kcedil;\":\"ķ\",\"Kcy;\":\"К\",\"kcy;\":\"к\",\"Kfr;\":\"𝔎\",\"kfr;\":\"𝔨\",\"kgreen;\":\"ĸ\",\"KHcy;\":\"Х\",\"khcy;\":\"х\",\"KJcy;\":\"Ќ\",\"kjcy;\":\"ќ\",\"Kopf;\":\"𝕂\",\"kopf;\":\"𝕜\",\"Kscr;\":\"𝒦\",\"kscr;\":\"𝓀\",\"lAarr;\":\"⇚\",\"Lacute;\":\"Ĺ\",\"lacute;\":\"ĺ\",\"laemptyv;\":\"⦴\",\"lagran;\":\"ℒ\",\"Lambda;\":\"Λ\",\"lambda;\":\"λ\",\"Lang;\":\"⟪\",\"lang;\":\"⟨\",\"langd;\":\"⦑\",\"langle;\":\"⟨\",\"lap;\":\"⪅\",\"Laplacetrf;\":\"ℒ\",\"laquo;\":\"«\",laquo:\"«\",\"Larr;\":\"↞\",\"lArr;\":\"⇐\",\"larr;\":\"←\",\"larrb;\":\"⇤\",\"larrbfs;\":\"⤟\",\"larrfs;\":\"⤝\",\"larrhk;\":\"↩\",\"larrlp;\":\"↫\",\"larrpl;\":\"⤹\",\"larrsim;\":\"⥳\",\"larrtl;\":\"↢\",\"lat;\":\"⪫\",\"lAtail;\":\"⤛\",\"latail;\":\"⤙\",\"late;\":\"⪭\",\"lates;\":\"⪭︀\",\"lBarr;\":\"⤎\",\"lbarr;\":\"⤌\",\"lbbrk;\":\"❲\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"⦋\",\"lbrksld;\":\"⦏\",\"lbrkslu;\":\"⦍\",\"Lcaron;\":\"Ľ\",\"lcaron;\":\"ľ\",\"Lcedil;\":\"Ļ\",\"lcedil;\":\"ļ\",\"lceil;\":\"⌈\",\"lcub;\":\"{\",\"Lcy;\":\"Л\",\"lcy;\":\"л\",\"ldca;\":\"⤶\",\"ldquo;\":\"“\",\"ldquor;\":\"„\",\"ldrdhar;\":\"⥧\",\"ldrushar;\":\"⥋\",\"ldsh;\":\"↲\",\"lE;\":\"≦\",\"le;\":\"≤\",\"LeftAngleBracket;\":\"⟨\",\"LeftArrow;\":\"←\",\"Leftarrow;\":\"⇐\",\"leftarrow;\":\"←\",\"LeftArrowBar;\":\"⇤\",\"LeftArrowRightArrow;\":\"⇆\",\"leftarrowtail;\":\"↢\",\"LeftCeiling;\":\"⌈\",\"LeftDoubleBracket;\":\"⟦\",\"LeftDownTeeVector;\":\"⥡\",\"LeftDownVector;\":\"⇃\",\"LeftDownVectorBar;\":\"⥙\",\"LeftFloor;\":\"⌊\",\"leftharpoondown;\":\"↽\",\"leftharpoonup;\":\"↼\",\"leftleftarrows;\":\"⇇\",\"LeftRightArrow;\":\"↔\",\"Leftrightarrow;\":\"⇔\",\"leftrightarrow;\":\"↔\",\"leftrightarrows;\":\"⇆\",\"leftrightharpoons;\":\"⇋\",\"leftrightsquigarrow;\":\"↭\",\"LeftRightVector;\":\"⥎\",\"LeftTee;\":\"⊣\",\"LeftTeeArrow;\":\"↤\",\"LeftTeeVector;\":\"⥚\",\"leftthreetimes;\":\"⋋\",\"LeftTriangle;\":\"⊲\",\"LeftTriangleBar;\":\"⧏\",\"LeftTriangleEqual;\":\"⊴\",\"LeftUpDownVector;\":\"⥑\",\"LeftUpTeeVector;\":\"⥠\",\"LeftUpVector;\":\"↿\",\"LeftUpVectorBar;\":\"⥘\",\"LeftVector;\":\"↼\",\"LeftVectorBar;\":\"⥒\",\"lEg;\":\"⪋\",\"leg;\":\"⋚\",\"leq;\":\"≤\",\"leqq;\":\"≦\",\"leqslant;\":\"⩽\",\"les;\":\"⩽\",\"lescc;\":\"⪨\",\"lesdot;\":\"⩿\",\"lesdoto;\":\"⪁\",\"lesdotor;\":\"⪃\",\"lesg;\":\"⋚︀\",\"lesges;\":\"⪓\",\"lessapprox;\":\"⪅\",\"lessdot;\":\"⋖\",\"lesseqgtr;\":\"⋚\",\"lesseqqgtr;\":\"⪋\",\"LessEqualGreater;\":\"⋚\",\"LessFullEqual;\":\"≦\",\"LessGreater;\":\"≶\",\"lessgtr;\":\"≶\",\"LessLess;\":\"⪡\",\"lesssim;\":\"≲\",\"LessSlantEqual;\":\"⩽\",\"LessTilde;\":\"≲\",\"lfisht;\":\"⥼\",\"lfloor;\":\"⌊\",\"Lfr;\":\"𝔏\",\"lfr;\":\"𝔩\",\"lg;\":\"≶\",\"lgE;\":\"⪑\",\"lHar;\":\"⥢\",\"lhard;\":\"↽\",\"lharu;\":\"↼\",\"lharul;\":\"⥪\",\"lhblk;\":\"▄\",\"LJcy;\":\"Љ\",\"ljcy;\":\"љ\",\"Ll;\":\"⋘\",\"ll;\":\"≪\",\"llarr;\":\"⇇\",\"llcorner;\":\"⌞\",\"Lleftarrow;\":\"⇚\",\"llhard;\":\"⥫\",\"lltri;\":\"◺\",\"Lmidot;\":\"Ŀ\",\"lmidot;\":\"ŀ\",\"lmoust;\":\"⎰\",\"lmoustache;\":\"⎰\",\"lnap;\":\"⪉\",\"lnapprox;\":\"⪉\",\"lnE;\":\"≨\",\"lne;\":\"⪇\",\"lneq;\":\"⪇\",\"lneqq;\":\"≨\",\"lnsim;\":\"⋦\",\"loang;\":\"⟬\",\"loarr;\":\"⇽\",\"lobrk;\":\"⟦\",\"LongLeftArrow;\":\"⟵\",\"Longleftarrow;\":\"⟸\",\"longleftarrow;\":\"⟵\",\"LongLeftRightArrow;\":\"⟷\",\"Longleftrightarrow;\":\"⟺\",\"longleftrightarrow;\":\"⟷\",\"longmapsto;\":\"⟼\",\"LongRightArrow;\":\"⟶\",\"Longrightarrow;\":\"⟹\",\"longrightarrow;\":\"⟶\",\"looparrowleft;\":\"↫\",\"looparrowright;\":\"↬\",\"lopar;\":\"⦅\",\"Lopf;\":\"𝕃\",\"lopf;\":\"𝕝\",\"loplus;\":\"⨭\",\"lotimes;\":\"⨴\",\"lowast;\":\"∗\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"↙\",\"LowerRightArrow;\":\"↘\",\"loz;\":\"◊\",\"lozenge;\":\"◊\",\"lozf;\":\"⧫\",\"lpar;\":\"(\",\"lparlt;\":\"⦓\",\"lrarr;\":\"⇆\",\"lrcorner;\":\"⌟\",\"lrhar;\":\"⇋\",\"lrhard;\":\"⥭\",\"lrm;\":\"‎\",\"lrtri;\":\"⊿\",\"lsaquo;\":\"‹\",\"Lscr;\":\"ℒ\",\"lscr;\":\"𝓁\",\"Lsh;\":\"↰\",\"lsh;\":\"↰\",\"lsim;\":\"≲\",\"lsime;\":\"⪍\",\"lsimg;\":\"⪏\",\"lsqb;\":\"[\",\"lsquo;\":\"‘\",\"lsquor;\":\"‚\",\"Lstrok;\":\"Ł\",\"lstrok;\":\"ł\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"≪\",\"lt;\":\"<\",lt:\"<\",\"ltcc;\":\"⪦\",\"ltcir;\":\"⩹\",\"ltdot;\":\"⋖\",\"lthree;\":\"⋋\",\"ltimes;\":\"⋉\",\"ltlarr;\":\"⥶\",\"ltquest;\":\"⩻\",\"ltri;\":\"◃\",\"ltrie;\":\"⊴\",\"ltrif;\":\"◂\",\"ltrPar;\":\"⦖\",\"lurdshar;\":\"⥊\",\"luruhar;\":\"⥦\",\"lvertneqq;\":\"≨︀\",\"lvnE;\":\"≨︀\",\"macr;\":\"¯\",macr:\"¯\",\"male;\":\"♂\",\"malt;\":\"✠\",\"maltese;\":\"✠\",\"Map;\":\"⤅\",\"map;\":\"↦\",\"mapsto;\":\"↦\",\"mapstodown;\":\"↧\",\"mapstoleft;\":\"↤\",\"mapstoup;\":\"↥\",\"marker;\":\"▮\",\"mcomma;\":\"⨩\",\"Mcy;\":\"М\",\"mcy;\":\"м\",\"mdash;\":\"—\",\"mDDot;\":\"∺\",\"measuredangle;\":\"∡\",\"MediumSpace;\":\" \",\"Mellintrf;\":\"ℳ\",\"Mfr;\":\"𝔐\",\"mfr;\":\"𝔪\",\"mho;\":\"℧\",\"micro;\":\"µ\",micro:\"µ\",\"mid;\":\"∣\",\"midast;\":\"*\",\"midcir;\":\"⫰\",\"middot;\":\"·\",middot:\"·\",\"minus;\":\"−\",\"minusb;\":\"⊟\",\"minusd;\":\"∸\",\"minusdu;\":\"⨪\",\"MinusPlus;\":\"∓\",\"mlcp;\":\"⫛\",\"mldr;\":\"…\",\"mnplus;\":\"∓\",\"models;\":\"⊧\",\"Mopf;\":\"𝕄\",\"mopf;\":\"𝕞\",\"mp;\":\"∓\",\"Mscr;\":\"ℳ\",\"mscr;\":\"𝓂\",\"mstpos;\":\"∾\",\"Mu;\":\"Μ\",\"mu;\":\"μ\",\"multimap;\":\"⊸\",\"mumap;\":\"⊸\",\"nabla;\":\"∇\",\"Nacute;\":\"Ń\",\"nacute;\":\"ń\",\"nang;\":\"∠⃒\",\"nap;\":\"≉\",\"napE;\":\"⩰̸\",\"napid;\":\"≋̸\",\"napos;\":\"ŉ\",\"napprox;\":\"≉\",\"natur;\":\"♮\",\"natural;\":\"♮\",\"naturals;\":\"ℕ\",\"nbsp;\":\" \",nbsp:\" \",\"nbump;\":\"≎̸\",\"nbumpe;\":\"≏̸\",\"ncap;\":\"⩃\",\"Ncaron;\":\"Ň\",\"ncaron;\":\"ň\",\"Ncedil;\":\"Ņ\",\"ncedil;\":\"ņ\",\"ncong;\":\"≇\",\"ncongdot;\":\"⩭̸\",\"ncup;\":\"⩂\",\"Ncy;\":\"Н\",\"ncy;\":\"н\",\"ndash;\":\"–\",\"ne;\":\"≠\",\"nearhk;\":\"⤤\",\"neArr;\":\"⇗\",\"nearr;\":\"↗\",\"nearrow;\":\"↗\",\"nedot;\":\"≐̸\",\"NegativeMediumSpace;\":\"​\",\"NegativeThickSpace;\":\"​\",\"NegativeThinSpace;\":\"​\",\"NegativeVeryThinSpace;\":\"​\",\"nequiv;\":\"≢\",\"nesear;\":\"⤨\",\"nesim;\":\"≂̸\",\"NestedGreaterGreater;\":\"≫\",\"NestedLessLess;\":\"≪\",\"NewLine;\":\"\\n\",\"nexist;\":\"∄\",\"nexists;\":\"∄\",\"Nfr;\":\"𝔑\",\"nfr;\":\"𝔫\",\"ngE;\":\"≧̸\",\"nge;\":\"≱\",\"ngeq;\":\"≱\",\"ngeqq;\":\"≧̸\",\"ngeqslant;\":\"⩾̸\",\"nges;\":\"⩾̸\",\"nGg;\":\"⋙̸\",\"ngsim;\":\"≵\",\"nGt;\":\"≫⃒\",\"ngt;\":\"≯\",\"ngtr;\":\"≯\",\"nGtv;\":\"≫̸\",\"nhArr;\":\"⇎\",\"nharr;\":\"↮\",\"nhpar;\":\"⫲\",\"ni;\":\"∋\",\"nis;\":\"⋼\",\"nisd;\":\"⋺\",\"niv;\":\"∋\",\"NJcy;\":\"Њ\",\"njcy;\":\"њ\",\"nlArr;\":\"⇍\",\"nlarr;\":\"↚\",\"nldr;\":\"‥\",\"nlE;\":\"≦̸\",\"nle;\":\"≰\",\"nLeftarrow;\":\"⇍\",\"nleftarrow;\":\"↚\",\"nLeftrightarrow;\":\"⇎\",\"nleftrightarrow;\":\"↮\",\"nleq;\":\"≰\",\"nleqq;\":\"≦̸\",\"nleqslant;\":\"⩽̸\",\"nles;\":\"⩽̸\",\"nless;\":\"≮\",\"nLl;\":\"⋘̸\",\"nlsim;\":\"≴\",\"nLt;\":\"≪⃒\",\"nlt;\":\"≮\",\"nltri;\":\"⋪\",\"nltrie;\":\"⋬\",\"nLtv;\":\"≪̸\",\"nmid;\":\"∤\",\"NoBreak;\":\"⁠\",\"NonBreakingSpace;\":\" \",\"Nopf;\":\"ℕ\",\"nopf;\":\"𝕟\",\"Not;\":\"⫬\",\"not;\":\"¬\",not:\"¬\",\"NotCongruent;\":\"≢\",\"NotCupCap;\":\"≭\",\"NotDoubleVerticalBar;\":\"∦\",\"NotElement;\":\"∉\",\"NotEqual;\":\"≠\",\"NotEqualTilde;\":\"≂̸\",\"NotExists;\":\"∄\",\"NotGreater;\":\"≯\",\"NotGreaterEqual;\":\"≱\",\"NotGreaterFullEqual;\":\"≧̸\",\"NotGreaterGreater;\":\"≫̸\",\"NotGreaterLess;\":\"≹\",\"NotGreaterSlantEqual;\":\"⩾̸\",\"NotGreaterTilde;\":\"≵\",\"NotHumpDownHump;\":\"≎̸\",\"NotHumpEqual;\":\"≏̸\",\"notin;\":\"∉\",\"notindot;\":\"⋵̸\",\"notinE;\":\"⋹̸\",\"notinva;\":\"∉\",\"notinvb;\":\"⋷\",\"notinvc;\":\"⋶\",\"NotLeftTriangle;\":\"⋪\",\"NotLeftTriangleBar;\":\"⧏̸\",\"NotLeftTriangleEqual;\":\"⋬\",\"NotLess;\":\"≮\",\"NotLessEqual;\":\"≰\",\"NotLessGreater;\":\"≸\",\"NotLessLess;\":\"≪̸\",\"NotLessSlantEqual;\":\"⩽̸\",\"NotLessTilde;\":\"≴\",\"NotNestedGreaterGreater;\":\"⪢̸\",\"NotNestedLessLess;\":\"⪡̸\",\"notni;\":\"∌\",\"notniva;\":\"∌\",\"notnivb;\":\"⋾\",\"notnivc;\":\"⋽\",\"NotPrecedes;\":\"⊀\",\"NotPrecedesEqual;\":\"⪯̸\",\"NotPrecedesSlantEqual;\":\"⋠\",\"NotReverseElement;\":\"∌\",\"NotRightTriangle;\":\"⋫\",\"NotRightTriangleBar;\":\"⧐̸\",\"NotRightTriangleEqual;\":\"⋭\",\"NotSquareSubset;\":\"⊏̸\",\"NotSquareSubsetEqual;\":\"⋢\",\"NotSquareSuperset;\":\"⊐̸\",\"NotSquareSupersetEqual;\":\"⋣\",\"NotSubset;\":\"⊂⃒\",\"NotSubsetEqual;\":\"⊈\",\"NotSucceeds;\":\"⊁\",\"NotSucceedsEqual;\":\"⪰̸\",\"NotSucceedsSlantEqual;\":\"⋡\",\"NotSucceedsTilde;\":\"≿̸\",\"NotSuperset;\":\"⊃⃒\",\"NotSupersetEqual;\":\"⊉\",\"NotTilde;\":\"≁\",\"NotTildeEqual;\":\"≄\",\"NotTildeFullEqual;\":\"≇\",\"NotTildeTilde;\":\"≉\",\"NotVerticalBar;\":\"∤\",\"npar;\":\"∦\",\"nparallel;\":\"∦\",\"nparsl;\":\"⫽⃥\",\"npart;\":\"∂̸\",\"npolint;\":\"⨔\",\"npr;\":\"⊀\",\"nprcue;\":\"⋠\",\"npre;\":\"⪯̸\",\"nprec;\":\"⊀\",\"npreceq;\":\"⪯̸\",\"nrArr;\":\"⇏\",\"nrarr;\":\"↛\",\"nrarrc;\":\"⤳̸\",\"nrarrw;\":\"↝̸\",\"nRightarrow;\":\"⇏\",\"nrightarrow;\":\"↛\",\"nrtri;\":\"⋫\",\"nrtrie;\":\"⋭\",\"nsc;\":\"⊁\",\"nsccue;\":\"⋡\",\"nsce;\":\"⪰̸\",\"Nscr;\":\"𝒩\",\"nscr;\":\"𝓃\",\"nshortmid;\":\"∤\",\"nshortparallel;\":\"∦\",\"nsim;\":\"≁\",\"nsime;\":\"≄\",\"nsimeq;\":\"≄\",\"nsmid;\":\"∤\",\"nspar;\":\"∦\",\"nsqsube;\":\"⋢\",\"nsqsupe;\":\"⋣\",\"nsub;\":\"⊄\",\"nsubE;\":\"⫅̸\",\"nsube;\":\"⊈\",\"nsubset;\":\"⊂⃒\",\"nsubseteq;\":\"⊈\",\"nsubseteqq;\":\"⫅̸\",\"nsucc;\":\"⊁\",\"nsucceq;\":\"⪰̸\",\"nsup;\":\"⊅\",\"nsupE;\":\"⫆̸\",\"nsupe;\":\"⊉\",\"nsupset;\":\"⊃⃒\",\"nsupseteq;\":\"⊉\",\"nsupseteqq;\":\"⫆̸\",\"ntgl;\":\"≹\",\"Ntilde;\":\"Ñ\",Ntilde:\"Ñ\",\"ntilde;\":\"ñ\",ntilde:\"ñ\",\"ntlg;\":\"≸\",\"ntriangleleft;\":\"⋪\",\"ntrianglelefteq;\":\"⋬\",\"ntriangleright;\":\"⋫\",\"ntrianglerighteq;\":\"⋭\",\"Nu;\":\"Ν\",\"nu;\":\"ν\",\"num;\":\"#\",\"numero;\":\"№\",\"numsp;\":\" \",\"nvap;\":\"≍⃒\",\"nVDash;\":\"⊯\",\"nVdash;\":\"⊮\",\"nvDash;\":\"⊭\",\"nvdash;\":\"⊬\",\"nvge;\":\"≥⃒\",\"nvgt;\":\">⃒\",\"nvHarr;\":\"⤄\",\"nvinfin;\":\"⧞\",\"nvlArr;\":\"⤂\",\"nvle;\":\"≤⃒\",\"nvlt;\":\"<⃒\",\"nvltrie;\":\"⊴⃒\",\"nvrArr;\":\"⤃\",\"nvrtrie;\":\"⊵⃒\",\"nvsim;\":\"∼⃒\",\"nwarhk;\":\"⤣\",\"nwArr;\":\"⇖\",\"nwarr;\":\"↖\",\"nwarrow;\":\"↖\",\"nwnear;\":\"⤧\",\"Oacute;\":\"Ó\",Oacute:\"Ó\",\"oacute;\":\"ó\",oacute:\"ó\",\"oast;\":\"⊛\",\"ocir;\":\"⊚\",\"Ocirc;\":\"Ô\",Ocirc:\"Ô\",\"ocirc;\":\"ô\",ocirc:\"ô\",\"Ocy;\":\"О\",\"ocy;\":\"о\",\"odash;\":\"⊝\",\"Odblac;\":\"Ő\",\"odblac;\":\"ő\",\"odiv;\":\"⨸\",\"odot;\":\"⊙\",\"odsold;\":\"⦼\",\"OElig;\":\"Œ\",\"oelig;\":\"œ\",\"ofcir;\":\"⦿\",\"Ofr;\":\"𝔒\",\"ofr;\":\"𝔬\",\"ogon;\":\"˛\",\"Ograve;\":\"Ò\",Ograve:\"Ò\",\"ograve;\":\"ò\",ograve:\"ò\",\"ogt;\":\"⧁\",\"ohbar;\":\"⦵\",\"ohm;\":\"Ω\",\"oint;\":\"∮\",\"olarr;\":\"↺\",\"olcir;\":\"⦾\",\"olcross;\":\"⦻\",\"oline;\":\"‾\",\"olt;\":\"⧀\",\"Omacr;\":\"Ō\",\"omacr;\":\"ō\",\"Omega;\":\"Ω\",\"omega;\":\"ω\",\"Omicron;\":\"Ο\",\"omicron;\":\"ο\",\"omid;\":\"⦶\",\"ominus;\":\"⊖\",\"Oopf;\":\"𝕆\",\"oopf;\":\"𝕠\",\"opar;\":\"⦷\",\"OpenCurlyDoubleQuote;\":\"“\",\"OpenCurlyQuote;\":\"‘\",\"operp;\":\"⦹\",\"oplus;\":\"⊕\",\"Or;\":\"⩔\",\"or;\":\"∨\",\"orarr;\":\"↻\",\"ord;\":\"⩝\",\"order;\":\"ℴ\",\"orderof;\":\"ℴ\",\"ordf;\":\"ª\",ordf:\"ª\",\"ordm;\":\"º\",ordm:\"º\",\"origof;\":\"⊶\",\"oror;\":\"⩖\",\"orslope;\":\"⩗\",\"orv;\":\"⩛\",\"oS;\":\"Ⓢ\",\"Oscr;\":\"𝒪\",\"oscr;\":\"ℴ\",\"Oslash;\":\"Ø\",Oslash:\"Ø\",\"oslash;\":\"ø\",oslash:\"ø\",\"osol;\":\"⊘\",\"Otilde;\":\"Õ\",Otilde:\"Õ\",\"otilde;\":\"õ\",otilde:\"õ\",\"Otimes;\":\"⨷\",\"otimes;\":\"⊗\",\"otimesas;\":\"⨶\",\"Ouml;\":\"Ö\",Ouml:\"Ö\",\"ouml;\":\"ö\",ouml:\"ö\",\"ovbar;\":\"⌽\",\"OverBar;\":\"‾\",\"OverBrace;\":\"⏞\",\"OverBracket;\":\"⎴\",\"OverParenthesis;\":\"⏜\",\"par;\":\"∥\",\"para;\":\"¶\",para:\"¶\",\"parallel;\":\"∥\",\"parsim;\":\"⫳\",\"parsl;\":\"⫽\",\"part;\":\"∂\",\"PartialD;\":\"∂\",\"Pcy;\":\"П\",\"pcy;\":\"п\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"‰\",\"perp;\":\"⊥\",\"pertenk;\":\"‱\",\"Pfr;\":\"𝔓\",\"pfr;\":\"𝔭\",\"Phi;\":\"Φ\",\"phi;\":\"φ\",\"phiv;\":\"ϕ\",\"phmmat;\":\"ℳ\",\"phone;\":\"☎\",\"Pi;\":\"Π\",\"pi;\":\"π\",\"pitchfork;\":\"⋔\",\"piv;\":\"ϖ\",\"planck;\":\"ℏ\",\"planckh;\":\"ℎ\",\"plankv;\":\"ℏ\",\"plus;\":\"+\",\"plusacir;\":\"⨣\",\"plusb;\":\"⊞\",\"pluscir;\":\"⨢\",\"plusdo;\":\"∔\",\"plusdu;\":\"⨥\",\"pluse;\":\"⩲\",\"PlusMinus;\":\"±\",\"plusmn;\":\"±\",plusmn:\"±\",\"plussim;\":\"⨦\",\"plustwo;\":\"⨧\",\"pm;\":\"±\",\"Poincareplane;\":\"ℌ\",\"pointint;\":\"⨕\",\"Popf;\":\"ℙ\",\"popf;\":\"𝕡\",\"pound;\":\"£\",pound:\"£\",\"Pr;\":\"⪻\",\"pr;\":\"≺\",\"prap;\":\"⪷\",\"prcue;\":\"≼\",\"prE;\":\"⪳\",\"pre;\":\"⪯\",\"prec;\":\"≺\",\"precapprox;\":\"⪷\",\"preccurlyeq;\":\"≼\",\"Precedes;\":\"≺\",\"PrecedesEqual;\":\"⪯\",\"PrecedesSlantEqual;\":\"≼\",\"PrecedesTilde;\":\"≾\",\"preceq;\":\"⪯\",\"precnapprox;\":\"⪹\",\"precneqq;\":\"⪵\",\"precnsim;\":\"⋨\",\"precsim;\":\"≾\",\"Prime;\":\"″\",\"prime;\":\"′\",\"primes;\":\"ℙ\",\"prnap;\":\"⪹\",\"prnE;\":\"⪵\",\"prnsim;\":\"⋨\",\"prod;\":\"∏\",\"Product;\":\"∏\",\"profalar;\":\"⌮\",\"profline;\":\"⌒\",\"profsurf;\":\"⌓\",\"prop;\":\"∝\",\"Proportion;\":\"∷\",\"Proportional;\":\"∝\",\"propto;\":\"∝\",\"prsim;\":\"≾\",\"prurel;\":\"⊰\",\"Pscr;\":\"𝒫\",\"pscr;\":\"𝓅\",\"Psi;\":\"Ψ\",\"psi;\":\"ψ\",\"puncsp;\":\" \",\"Qfr;\":\"𝔔\",\"qfr;\":\"𝔮\",\"qint;\":\"⨌\",\"Qopf;\":\"ℚ\",\"qopf;\":\"𝕢\",\"qprime;\":\"⁗\",\"Qscr;\":\"𝒬\",\"qscr;\":\"𝓆\",\"quaternions;\":\"ℍ\",\"quatint;\":\"⨖\",\"quest;\":\"?\",\"questeq;\":\"≟\",\"QUOT;\":'\"',QUOT:'\"',\"quot;\":'\"',quot:'\"',\"rAarr;\":\"⇛\",\"race;\":\"∽̱\",\"Racute;\":\"Ŕ\",\"racute;\":\"ŕ\",\"radic;\":\"√\",\"raemptyv;\":\"⦳\",\"Rang;\":\"⟫\",\"rang;\":\"⟩\",\"rangd;\":\"⦒\",\"range;\":\"⦥\",\"rangle;\":\"⟩\",\"raquo;\":\"»\",raquo:\"»\",\"Rarr;\":\"↠\",\"rArr;\":\"⇒\",\"rarr;\":\"→\",\"rarrap;\":\"⥵\",\"rarrb;\":\"⇥\",\"rarrbfs;\":\"⤠\",\"rarrc;\":\"⤳\",\"rarrfs;\":\"⤞\",\"rarrhk;\":\"↪\",\"rarrlp;\":\"↬\",\"rarrpl;\":\"⥅\",\"rarrsim;\":\"⥴\",\"Rarrtl;\":\"⤖\",\"rarrtl;\":\"↣\",\"rarrw;\":\"↝\",\"rAtail;\":\"⤜\",\"ratail;\":\"⤚\",\"ratio;\":\"∶\",\"rationals;\":\"ℚ\",\"RBarr;\":\"⤐\",\"rBarr;\":\"⤏\",\"rbarr;\":\"⤍\",\"rbbrk;\":\"❳\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"⦌\",\"rbrksld;\":\"⦎\",\"rbrkslu;\":\"⦐\",\"Rcaron;\":\"Ř\",\"rcaron;\":\"ř\",\"Rcedil;\":\"Ŗ\",\"rcedil;\":\"ŗ\",\"rceil;\":\"⌉\",\"rcub;\":\"}\",\"Rcy;\":\"Р\",\"rcy;\":\"р\",\"rdca;\":\"⤷\",\"rdldhar;\":\"⥩\",\"rdquo;\":\"”\",\"rdquor;\":\"”\",\"rdsh;\":\"↳\",\"Re;\":\"ℜ\",\"real;\":\"ℜ\",\"realine;\":\"ℛ\",\"realpart;\":\"ℜ\",\"reals;\":\"ℝ\",\"rect;\":\"▭\",\"REG;\":\"®\",REG:\"®\",\"reg;\":\"®\",reg:\"®\",\"ReverseElement;\":\"∋\",\"ReverseEquilibrium;\":\"⇋\",\"ReverseUpEquilibrium;\":\"⥯\",\"rfisht;\":\"⥽\",\"rfloor;\":\"⌋\",\"Rfr;\":\"ℜ\",\"rfr;\":\"𝔯\",\"rHar;\":\"⥤\",\"rhard;\":\"⇁\",\"rharu;\":\"⇀\",\"rharul;\":\"⥬\",\"Rho;\":\"Ρ\",\"rho;\":\"ρ\",\"rhov;\":\"ϱ\",\"RightAngleBracket;\":\"⟩\",\"RightArrow;\":\"→\",\"Rightarrow;\":\"⇒\",\"rightarrow;\":\"→\",\"RightArrowBar;\":\"⇥\",\"RightArrowLeftArrow;\":\"⇄\",\"rightarrowtail;\":\"↣\",\"RightCeiling;\":\"⌉\",\"RightDoubleBracket;\":\"⟧\",\"RightDownTeeVector;\":\"⥝\",\"RightDownVector;\":\"⇂\",\"RightDownVectorBar;\":\"⥕\",\"RightFloor;\":\"⌋\",\"rightharpoondown;\":\"⇁\",\"rightharpoonup;\":\"⇀\",\"rightleftarrows;\":\"⇄\",\"rightleftharpoons;\":\"⇌\",\"rightrightarrows;\":\"⇉\",\"rightsquigarrow;\":\"↝\",\"RightTee;\":\"⊢\",\"RightTeeArrow;\":\"↦\",\"RightTeeVector;\":\"⥛\",\"rightthreetimes;\":\"⋌\",\"RightTriangle;\":\"⊳\",\"RightTriangleBar;\":\"⧐\",\"RightTriangleEqual;\":\"⊵\",\"RightUpDownVector;\":\"⥏\",\"RightUpTeeVector;\":\"⥜\",\"RightUpVector;\":\"↾\",\"RightUpVectorBar;\":\"⥔\",\"RightVector;\":\"⇀\",\"RightVectorBar;\":\"⥓\",\"ring;\":\"˚\",\"risingdotseq;\":\"≓\",\"rlarr;\":\"⇄\",\"rlhar;\":\"⇌\",\"rlm;\":\"‏\",\"rmoust;\":\"⎱\",\"rmoustache;\":\"⎱\",\"rnmid;\":\"⫮\",\"roang;\":\"⟭\",\"roarr;\":\"⇾\",\"robrk;\":\"⟧\",\"ropar;\":\"⦆\",\"Ropf;\":\"ℝ\",\"ropf;\":\"𝕣\",\"roplus;\":\"⨮\",\"rotimes;\":\"⨵\",\"RoundImplies;\":\"⥰\",\"rpar;\":\")\",\"rpargt;\":\"⦔\",\"rppolint;\":\"⨒\",\"rrarr;\":\"⇉\",\"Rrightarrow;\":\"⇛\",\"rsaquo;\":\"›\",\"Rscr;\":\"ℛ\",\"rscr;\":\"𝓇\",\"Rsh;\":\"↱\",\"rsh;\":\"↱\",\"rsqb;\":\"]\",\"rsquo;\":\"’\",\"rsquor;\":\"’\",\"rthree;\":\"⋌\",\"rtimes;\":\"⋊\",\"rtri;\":\"▹\",\"rtrie;\":\"⊵\",\"rtrif;\":\"▸\",\"rtriltri;\":\"⧎\",\"RuleDelayed;\":\"⧴\",\"ruluhar;\":\"⥨\",\"rx;\":\"℞\",\"Sacute;\":\"Ś\",\"sacute;\":\"ś\",\"sbquo;\":\"‚\",\"Sc;\":\"⪼\",\"sc;\":\"≻\",\"scap;\":\"⪸\",\"Scaron;\":\"Š\",\"scaron;\":\"š\",\"sccue;\":\"≽\",\"scE;\":\"⪴\",\"sce;\":\"⪰\",\"Scedil;\":\"Ş\",\"scedil;\":\"ş\",\"Scirc;\":\"Ŝ\",\"scirc;\":\"ŝ\",\"scnap;\":\"⪺\",\"scnE;\":\"⪶\",\"scnsim;\":\"⋩\",\"scpolint;\":\"⨓\",\"scsim;\":\"≿\",\"Scy;\":\"С\",\"scy;\":\"с\",\"sdot;\":\"⋅\",\"sdotb;\":\"⊡\",\"sdote;\":\"⩦\",\"searhk;\":\"⤥\",\"seArr;\":\"⇘\",\"searr;\":\"↘\",\"searrow;\":\"↘\",\"sect;\":\"§\",sect:\"§\",\"semi;\":\";\",\"seswar;\":\"⤩\",\"setminus;\":\"∖\",\"setmn;\":\"∖\",\"sext;\":\"✶\",\"Sfr;\":\"𝔖\",\"sfr;\":\"𝔰\",\"sfrown;\":\"⌢\",\"sharp;\":\"♯\",\"SHCHcy;\":\"Щ\",\"shchcy;\":\"щ\",\"SHcy;\":\"Ш\",\"shcy;\":\"ш\",\"ShortDownArrow;\":\"↓\",\"ShortLeftArrow;\":\"←\",\"shortmid;\":\"∣\",\"shortparallel;\":\"∥\",\"ShortRightArrow;\":\"→\",\"ShortUpArrow;\":\"↑\",\"shy;\":\"­\",shy:\"­\",\"Sigma;\":\"Σ\",\"sigma;\":\"σ\",\"sigmaf;\":\"ς\",\"sigmav;\":\"ς\",\"sim;\":\"∼\",\"simdot;\":\"⩪\",\"sime;\":\"≃\",\"simeq;\":\"≃\",\"simg;\":\"⪞\",\"simgE;\":\"⪠\",\"siml;\":\"⪝\",\"simlE;\":\"⪟\",\"simne;\":\"≆\",\"simplus;\":\"⨤\",\"simrarr;\":\"⥲\",\"slarr;\":\"←\",\"SmallCircle;\":\"∘\",\"smallsetminus;\":\"∖\",\"smashp;\":\"⨳\",\"smeparsl;\":\"⧤\",\"smid;\":\"∣\",\"smile;\":\"⌣\",\"smt;\":\"⪪\",\"smte;\":\"⪬\",\"smtes;\":\"⪬︀\",\"SOFTcy;\":\"Ь\",\"softcy;\":\"ь\",\"sol;\":\"/\",\"solb;\":\"⧄\",\"solbar;\":\"⌿\",\"Sopf;\":\"𝕊\",\"sopf;\":\"𝕤\",\"spades;\":\"♠\",\"spadesuit;\":\"♠\",\"spar;\":\"∥\",\"sqcap;\":\"⊓\",\"sqcaps;\":\"⊓︀\",\"sqcup;\":\"⊔\",\"sqcups;\":\"⊔︀\",\"Sqrt;\":\"√\",\"sqsub;\":\"⊏\",\"sqsube;\":\"⊑\",\"sqsubset;\":\"⊏\",\"sqsubseteq;\":\"⊑\",\"sqsup;\":\"⊐\",\"sqsupe;\":\"⊒\",\"sqsupset;\":\"⊐\",\"sqsupseteq;\":\"⊒\",\"squ;\":\"□\",\"Square;\":\"□\",\"square;\":\"□\",\"SquareIntersection;\":\"⊓\",\"SquareSubset;\":\"⊏\",\"SquareSubsetEqual;\":\"⊑\",\"SquareSuperset;\":\"⊐\",\"SquareSupersetEqual;\":\"⊒\",\"SquareUnion;\":\"⊔\",\"squarf;\":\"▪\",\"squf;\":\"▪\",\"srarr;\":\"→\",\"Sscr;\":\"𝒮\",\"sscr;\":\"𝓈\",\"ssetmn;\":\"∖\",\"ssmile;\":\"⌣\",\"sstarf;\":\"⋆\",\"Star;\":\"⋆\",\"star;\":\"☆\",\"starf;\":\"★\",\"straightepsilon;\":\"ϵ\",\"straightphi;\":\"ϕ\",\"strns;\":\"¯\",\"Sub;\":\"⋐\",\"sub;\":\"⊂\",\"subdot;\":\"⪽\",\"subE;\":\"⫅\",\"sube;\":\"⊆\",\"subedot;\":\"⫃\",\"submult;\":\"⫁\",\"subnE;\":\"⫋\",\"subne;\":\"⊊\",\"subplus;\":\"⪿\",\"subrarr;\":\"⥹\",\"Subset;\":\"⋐\",\"subset;\":\"⊂\",\"subseteq;\":\"⊆\",\"subseteqq;\":\"⫅\",\"SubsetEqual;\":\"⊆\",\"subsetneq;\":\"⊊\",\"subsetneqq;\":\"⫋\",\"subsim;\":\"⫇\",\"subsub;\":\"⫕\",\"subsup;\":\"⫓\",\"succ;\":\"≻\",\"succapprox;\":\"⪸\",\"succcurlyeq;\":\"≽\",\"Succeeds;\":\"≻\",\"SucceedsEqual;\":\"⪰\",\"SucceedsSlantEqual;\":\"≽\",\"SucceedsTilde;\":\"≿\",\"succeq;\":\"⪰\",\"succnapprox;\":\"⪺\",\"succneqq;\":\"⪶\",\"succnsim;\":\"⋩\",\"succsim;\":\"≿\",\"SuchThat;\":\"∋\",\"Sum;\":\"∑\",\"sum;\":\"∑\",\"sung;\":\"♪\",\"Sup;\":\"⋑\",\"sup;\":\"⊃\",\"sup1;\":\"¹\",sup1:\"¹\",\"sup2;\":\"²\",sup2:\"²\",\"sup3;\":\"³\",sup3:\"³\",\"supdot;\":\"⪾\",\"supdsub;\":\"⫘\",\"supE;\":\"⫆\",\"supe;\":\"⊇\",\"supedot;\":\"⫄\",\"Superset;\":\"⊃\",\"SupersetEqual;\":\"⊇\",\"suphsol;\":\"⟉\",\"suphsub;\":\"⫗\",\"suplarr;\":\"⥻\",\"supmult;\":\"⫂\",\"supnE;\":\"⫌\",\"supne;\":\"⊋\",\"supplus;\":\"⫀\",\"Supset;\":\"⋑\",\"supset;\":\"⊃\",\"supseteq;\":\"⊇\",\"supseteqq;\":\"⫆\",\"supsetneq;\":\"⊋\",\"supsetneqq;\":\"⫌\",\"supsim;\":\"⫈\",\"supsub;\":\"⫔\",\"supsup;\":\"⫖\",\"swarhk;\":\"⤦\",\"swArr;\":\"⇙\",\"swarr;\":\"↙\",\"swarrow;\":\"↙\",\"swnwar;\":\"⤪\",\"szlig;\":\"ß\",szlig:\"ß\",\"Tab;\":\"\\t\",\"target;\":\"⌖\",\"Tau;\":\"Τ\",\"tau;\":\"τ\",\"tbrk;\":\"⎴\",\"Tcaron;\":\"Ť\",\"tcaron;\":\"ť\",\"Tcedil;\":\"Ţ\",\"tcedil;\":\"ţ\",\"Tcy;\":\"Т\",\"tcy;\":\"т\",\"tdot;\":\"⃛\",\"telrec;\":\"⌕\",\"Tfr;\":\"𝔗\",\"tfr;\":\"𝔱\",\"there4;\":\"∴\",\"Therefore;\":\"∴\",\"therefore;\":\"∴\",\"Theta;\":\"Θ\",\"theta;\":\"θ\",\"thetasym;\":\"ϑ\",\"thetav;\":\"ϑ\",\"thickapprox;\":\"≈\",\"thicksim;\":\"∼\",\"ThickSpace;\":\"  \",\"thinsp;\":\" \",\"ThinSpace;\":\" \",\"thkap;\":\"≈\",\"thksim;\":\"∼\",\"THORN;\":\"Þ\",THORN:\"Þ\",\"thorn;\":\"þ\",thorn:\"þ\",\"Tilde;\":\"∼\",\"tilde;\":\"˜\",\"TildeEqual;\":\"≃\",\"TildeFullEqual;\":\"≅\",\"TildeTilde;\":\"≈\",\"times;\":\"×\",times:\"×\",\"timesb;\":\"⊠\",\"timesbar;\":\"⨱\",\"timesd;\":\"⨰\",\"tint;\":\"∭\",\"toea;\":\"⤨\",\"top;\":\"⊤\",\"topbot;\":\"⌶\",\"topcir;\":\"⫱\",\"Topf;\":\"𝕋\",\"topf;\":\"𝕥\",\"topfork;\":\"⫚\",\"tosa;\":\"⤩\",\"tprime;\":\"‴\",\"TRADE;\":\"™\",\"trade;\":\"™\",\"triangle;\":\"▵\",\"triangledown;\":\"▿\",\"triangleleft;\":\"◃\",\"trianglelefteq;\":\"⊴\",\"triangleq;\":\"≜\",\"triangleright;\":\"▹\",\"trianglerighteq;\":\"⊵\",\"tridot;\":\"◬\",\"trie;\":\"≜\",\"triminus;\":\"⨺\",\"TripleDot;\":\"⃛\",\"triplus;\":\"⨹\",\"trisb;\":\"⧍\",\"tritime;\":\"⨻\",\"trpezium;\":\"⏢\",\"Tscr;\":\"𝒯\",\"tscr;\":\"𝓉\",\"TScy;\":\"Ц\",\"tscy;\":\"ц\",\"TSHcy;\":\"Ћ\",\"tshcy;\":\"ћ\",\"Tstrok;\":\"Ŧ\",\"tstrok;\":\"ŧ\",\"twixt;\":\"≬\",\"twoheadleftarrow;\":\"↞\",\"twoheadrightarrow;\":\"↠\",\"Uacute;\":\"Ú\",Uacute:\"Ú\",\"uacute;\":\"ú\",uacute:\"ú\",\"Uarr;\":\"↟\",\"uArr;\":\"⇑\",\"uarr;\":\"↑\",\"Uarrocir;\":\"⥉\",\"Ubrcy;\":\"Ў\",\"ubrcy;\":\"ў\",\"Ubreve;\":\"Ŭ\",\"ubreve;\":\"ŭ\",\"Ucirc;\":\"Û\",Ucirc:\"Û\",\"ucirc;\":\"û\",ucirc:\"û\",\"Ucy;\":\"У\",\"ucy;\":\"у\",\"udarr;\":\"⇅\",\"Udblac;\":\"Ű\",\"udblac;\":\"ű\",\"udhar;\":\"⥮\",\"ufisht;\":\"⥾\",\"Ufr;\":\"𝔘\",\"ufr;\":\"𝔲\",\"Ugrave;\":\"Ù\",Ugrave:\"Ù\",\"ugrave;\":\"ù\",ugrave:\"ù\",\"uHar;\":\"⥣\",\"uharl;\":\"↿\",\"uharr;\":\"↾\",\"uhblk;\":\"▀\",\"ulcorn;\":\"⌜\",\"ulcorner;\":\"⌜\",\"ulcrop;\":\"⌏\",\"ultri;\":\"◸\",\"Umacr;\":\"Ū\",\"umacr;\":\"ū\",\"uml;\":\"¨\",uml:\"¨\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"⏟\",\"UnderBracket;\":\"⎵\",\"UnderParenthesis;\":\"⏝\",\"Union;\":\"⋃\",\"UnionPlus;\":\"⊎\",\"Uogon;\":\"Ų\",\"uogon;\":\"ų\",\"Uopf;\":\"𝕌\",\"uopf;\":\"𝕦\",\"UpArrow;\":\"↑\",\"Uparrow;\":\"⇑\",\"uparrow;\":\"↑\",\"UpArrowBar;\":\"⤒\",\"UpArrowDownArrow;\":\"⇅\",\"UpDownArrow;\":\"↕\",\"Updownarrow;\":\"⇕\",\"updownarrow;\":\"↕\",\"UpEquilibrium;\":\"⥮\",\"upharpoonleft;\":\"↿\",\"upharpoonright;\":\"↾\",\"uplus;\":\"⊎\",\"UpperLeftArrow;\":\"↖\",\"UpperRightArrow;\":\"↗\",\"Upsi;\":\"ϒ\",\"upsi;\":\"υ\",\"upsih;\":\"ϒ\",\"Upsilon;\":\"Υ\",\"upsilon;\":\"υ\",\"UpTee;\":\"⊥\",\"UpTeeArrow;\":\"↥\",\"upuparrows;\":\"⇈\",\"urcorn;\":\"⌝\",\"urcorner;\":\"⌝\",\"urcrop;\":\"⌎\",\"Uring;\":\"Ů\",\"uring;\":\"ů\",\"urtri;\":\"◹\",\"Uscr;\":\"𝒰\",\"uscr;\":\"𝓊\",\"utdot;\":\"⋰\",\"Utilde;\":\"Ũ\",\"utilde;\":\"ũ\",\"utri;\":\"▵\",\"utrif;\":\"▴\",\"uuarr;\":\"⇈\",\"Uuml;\":\"Ü\",Uuml:\"Ü\",\"uuml;\":\"ü\",uuml:\"ü\",\"uwangle;\":\"⦧\",\"vangrt;\":\"⦜\",\"varepsilon;\":\"ϵ\",\"varkappa;\":\"ϰ\",\"varnothing;\":\"∅\",\"varphi;\":\"ϕ\",\"varpi;\":\"ϖ\",\"varpropto;\":\"∝\",\"vArr;\":\"⇕\",\"varr;\":\"↕\",\"varrho;\":\"ϱ\",\"varsigma;\":\"ς\",\"varsubsetneq;\":\"⊊︀\",\"varsubsetneqq;\":\"⫋︀\",\"varsupsetneq;\":\"⊋︀\",\"varsupsetneqq;\":\"⫌︀\",\"vartheta;\":\"ϑ\",\"vartriangleleft;\":\"⊲\",\"vartriangleright;\":\"⊳\",\"Vbar;\":\"⫫\",\"vBar;\":\"⫨\",\"vBarv;\":\"⫩\",\"Vcy;\":\"В\",\"vcy;\":\"в\",\"VDash;\":\"⊫\",\"Vdash;\":\"⊩\",\"vDash;\":\"⊨\",\"vdash;\":\"⊢\",\"Vdashl;\":\"⫦\",\"Vee;\":\"⋁\",\"vee;\":\"∨\",\"veebar;\":\"⊻\",\"veeeq;\":\"≚\",\"vellip;\":\"⋮\",\"Verbar;\":\"‖\",\"verbar;\":\"|\",\"Vert;\":\"‖\",\"vert;\":\"|\",\"VerticalBar;\":\"∣\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"❘\",\"VerticalTilde;\":\"≀\",\"VeryThinSpace;\":\" \",\"Vfr;\":\"𝔙\",\"vfr;\":\"𝔳\",\"vltri;\":\"⊲\",\"vnsub;\":\"⊂⃒\",\"vnsup;\":\"⊃⃒\",\"Vopf;\":\"𝕍\",\"vopf;\":\"𝕧\",\"vprop;\":\"∝\",\"vrtri;\":\"⊳\",\"Vscr;\":\"𝒱\",\"vscr;\":\"𝓋\",\"vsubnE;\":\"⫋︀\",\"vsubne;\":\"⊊︀\",\"vsupnE;\":\"⫌︀\",\"vsupne;\":\"⊋︀\",\"Vvdash;\":\"⊪\",\"vzigzag;\":\"⦚\",\"Wcirc;\":\"Ŵ\",\"wcirc;\":\"ŵ\",\"wedbar;\":\"⩟\",\"Wedge;\":\"⋀\",\"wedge;\":\"∧\",\"wedgeq;\":\"≙\",\"weierp;\":\"℘\",\"Wfr;\":\"𝔚\",\"wfr;\":\"𝔴\",\"Wopf;\":\"𝕎\",\"wopf;\":\"𝕨\",\"wp;\":\"℘\",\"wr;\":\"≀\",\"wreath;\":\"≀\",\"Wscr;\":\"𝒲\",\"wscr;\":\"𝓌\",\"xcap;\":\"⋂\",\"xcirc;\":\"◯\",\"xcup;\":\"⋃\",\"xdtri;\":\"▽\",\"Xfr;\":\"𝔛\",\"xfr;\":\"𝔵\",\"xhArr;\":\"⟺\",\"xharr;\":\"⟷\",\"Xi;\":\"Ξ\",\"xi;\":\"ξ\",\"xlArr;\":\"⟸\",\"xlarr;\":\"⟵\",\"xmap;\":\"⟼\",\"xnis;\":\"⋻\",\"xodot;\":\"⨀\",\"Xopf;\":\"𝕏\",\"xopf;\":\"𝕩\",\"xoplus;\":\"⨁\",\"xotime;\":\"⨂\",\"xrArr;\":\"⟹\",\"xrarr;\":\"⟶\",\"Xscr;\":\"𝒳\",\"xscr;\":\"𝓍\",\"xsqcup;\":\"⨆\",\"xuplus;\":\"⨄\",\"xutri;\":\"△\",\"xvee;\":\"⋁\",\"xwedge;\":\"⋀\",\"Yacute;\":\"Ý\",Yacute:\"Ý\",\"yacute;\":\"ý\",yacute:\"ý\",\"YAcy;\":\"Я\",\"yacy;\":\"я\",\"Ycirc;\":\"Ŷ\",\"ycirc;\":\"ŷ\",\"Ycy;\":\"Ы\",\"ycy;\":\"ы\",\"yen;\":\"¥\",yen:\"¥\",\"Yfr;\":\"𝔜\",\"yfr;\":\"𝔶\",\"YIcy;\":\"Ї\",\"yicy;\":\"ї\",\"Yopf;\":\"𝕐\",\"yopf;\":\"𝕪\",\"Yscr;\":\"𝒴\",\"yscr;\":\"𝓎\",\"YUcy;\":\"Ю\",\"yucy;\":\"ю\",\"Yuml;\":\"Ÿ\",\"yuml;\":\"ÿ\",yuml:\"ÿ\",\"Zacute;\":\"Ź\",\"zacute;\":\"ź\",\"Zcaron;\":\"Ž\",\"zcaron;\":\"ž\",\"Zcy;\":\"З\",\"zcy;\":\"з\",\"Zdot;\":\"Ż\",\"zdot;\":\"ż\",\"zeetrf;\":\"ℨ\",\"ZeroWidthSpace;\":\"​\",\"Zeta;\":\"Ζ\",\"zeta;\":\"ζ\",\"Zfr;\":\"ℨ\",\"zfr;\":\"𝔷\",\"ZHcy;\":\"Ж\",\"zhcy;\":\"ж\",\"zigrarr;\":\"⇝\",\"Zopf;\":\"ℤ\",\"zopf;\":\"𝕫\",\"Zscr;\":\"𝒵\",\"zscr;\":\"𝓏\",\"zwj;\":\"‍\",\"zwnj;\":\"‌\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n};var n=\"a\".charCodeAt(0),i=\"z\".charCodeAt(0),r=\"A\".charCodeAt(0),a=\"Z\".charCodeAt(0),o=\"0\".charCodeAt(0),s=\"9\".charCodeAt(0);t.isLetterOrDigit=function(e,t){var l=e.charCodeAt(t);return n<=l&&l<=i||r<=l&&l<=a||o<=l&&l<=s}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/markup\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalizeMarkupContent=function(e){if(e)return\"string\"==typeof e?{kind:\"markdown\",value:e}:{kind:\"markdown\",value:e.value}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\",\"../utils/markup\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/markup\"),i=function(){function e(e,t){var n=this;this.id=e,this._tags=[],this._tagMap={},this._attributeMap={},this._valueSetMap={},this._tags=t.tags||[],this._globalAttributes=t.globalAttributes||[],this._tags.forEach((function(e){n._tagMap[e.name]=e,e.attributes&&e.attributes.forEach((function(e){n._attributeMap[e.name]=e}))})),this._globalAttributes.forEach((function(e){n._attributeMap[e.name]=e})),t.valueSets&&t.valueSets.forEach((function(e){n._valueSetMap[e.name]=e.values}))}return e.prototype.isApplicable=function(){return!0},e.prototype.getId=function(){return this.id},e.prototype.provideTags=function(){return this._tags},e.prototype.provideAttributes=function(e){var t=[],n=function(e){t.push(e)};return this._tagMap[e]&&this._tagMap[e].attributes.forEach((function(e){n(e)})),this._globalAttributes.forEach((function(e){n(e)})),t},e.prototype.provideValues=function(e,t){var n=this,i=[],r=function(e){e.forEach((function(e){e.name===t&&(e.values&&e.values.forEach((function(e){i.push(e)})),e.valueSet&&n._valueSetMap[e.valueSet]&&n._valueSetMap[e.valueSet].forEach((function(e){i.push(e)})))}))};return this._tagMap[e]?(r(this._tagMap[e].attributes),r(this._globalAttributes),i):[]},e}();t.HTMLDataProvider=i,t.generateDocumentation=function(e,t){var i={kind:t?\"markdown\":\"plaintext\",value:\"\"};if(e.description){var r=n.normalizeMarkupContent(e.description);r&&(i.value+=r.value)}return e.references&&e.references.length>0&&(i.value+=\"\\n\\n\",i.value+=t?e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"):e.references.map((function(e){return e.name+\": \"+e.url})).join(\"\\n\")),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.htmlData={version:1.1,tags:[{name:\"html\",description:{kind:\"markdown\",value:\"The html element represents the root of an HTML document.\"},attributes:[{name:\"manifest\",description:{kind:\"markdown\",value:\"Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details.\"}},{name:\"version\",description:'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'},{name:\"xmlns\",description:'Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/html\"}]},{name:\"head\",description:{kind:\"markdown\",value:\"The head element represents a collection of metadata for the Document.\"},attributes:[{name:\"profile\",description:\"The URIs of one or more metadata profiles, separated by white space.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/head\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/title\"}]},{name:\"base\",description:{kind:\"markdown\",value:\"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed.\"}},{name:\"target\",description:{kind:\"markdown\",value:\"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the result into a new unnamed browsing context.\\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n\\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/base\"}]},{name:\"link\",description:{kind:\"markdown\",value:\"The link element allows authors to link their document to other resources.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\n`anonymous`\\n\\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\\'s credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"media\",description:{kind:\"markdown\",value:\"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\\n\\n**Notes:**\\n\\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:\"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports.'}},{name:\"sizes\",description:{kind:\"markdown\",value:\"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\\n\\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\\n\\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it.\"}},{name:\"as\",description:'This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.\") request header.'},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:'**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\\n\\n**`high`**: Indicates to the browser that the resource is of **high** priority.\\n\\n**`low`**: Indicates to the browser that the resource is of **low** priority.\\n\\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present.'},{name:\"integrity\",description:\"Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"referrerpolicy\",description:'A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\\'s path.\\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'},{name:\"title\",description:'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/link\"}]},{name:\"meta\",description:{kind:\"markdown\",value:\"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\\n\\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\\n\\n*   `application-name` which defines the name of the application running in the web page.\\n    \\n    **Note:**\\n    \\n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document\\'s title that is shown in a browser\\'s title bar or a page\\'s tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\\n    *   Simple web pages shouldn\\'t define an application-name.\\n    \\n*   `author` which defines the name of the document\\'s author.\\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\\n*   `generator` which contains the identifier of the software that generated the page.\\n*   `keywords` which contains words relevant to the page\\'s content separated by commas.\\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\\n    \\n    Values for the `content` attribute of `<meta name=\"referrer\">`\\n    \\n    `no-referrer`\\n    \\n    Do not send a HTTP `Referrer` header.\\n    \\n    `origin`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\\n    \\n    `no-referrer-when-downgrade`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\\n    \\n    `origin-when-cross-origin`\\n    \\n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\\n    \\n    `same-origin`\\n    \\n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\\n    \\n    `strict-origin`\\n    \\n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\\'t send it to a less secure destination (HTTPS->HTTP).\\n    \\n    `strict-origin-when-cross-origin`\\n    \\n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\\n    \\n    `unsafe-URL`\\n    \\n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\\n    \\n    **Notes:**\\n    \\n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\\n    *   Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\\n    \\n\\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\\n\\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\\n*   `publisher` which defines the name of the document\\'s publisher.\\n*   `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\\n    \\n    Values for the content of `<meta name=\"robots\">`\\n    \\n    Value\\n    \\n    Description\\n    \\n    Used by\\n    \\n    `index`\\n    \\n    Allows the robot to index the page (default).\\n    \\n    All\\n    \\n    `noindex`\\n    \\n    Requests the robot to not index the page.\\n    \\n    All\\n    \\n    `follow`\\n    \\n    Allows the robot to follow the links on the page (default).\\n    \\n    All\\n    \\n    `nofollow`\\n    \\n    Requests the robot to not follow the links on the page.\\n    \\n    All\\n    \\n    `none`\\n    \\n    Equivalent to `noindex, nofollow`\\n    \\n    [Google](https://support.google.com/webmasters/answer/79812)\\n    \\n    `noodp`\\n    \\n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\\n    \\n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noarchive`\\n    \\n    Requests the search engine not to cache the page content.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `nosnippet`\\n    \\n    Prevents displaying any description of the page in search engine results.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noimageindex`\\n    \\n    Requests this page not to appear as the referring page of an indexed image.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\\n    \\n    `nocache`\\n    \\n    Synonym of `noarchive`.\\n    \\n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    **Notes:**\\n    \\n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.\")_ file.\\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\\'s behaviour is undefined and may vary between them.\\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\\n    \\n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\\n    \\n    Values for the content of `<meta name=\"viewport\">`\\n    \\n    Value\\n    \\n    Possible subvalues\\n    \\n    Description\\n    \\n    `width`\\n    \\n    A positive integer number, or the text `device-width`\\n    \\n    Defines the pixel width of the viewport that you want the web site to be rendered at.\\n    \\n    `height`\\n    \\n    A positive integer, or the text `device-height`\\n    \\n    Defines the height of the viewport. Not used by any browser.\\n    \\n    `initial-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\\n    \\n    `maximum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `minimum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `user-scalable`\\n    \\n    `yes` or `no`\\n    \\n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\\n    \\n    Specification\\n    \\n    Status\\n    \\n    Comment\\n    \\n    [CSS Device Adaptation  \\n    The definition of \\'<meta name=\"viewport\">\\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\\n    \\n    Working Draft\\n    \\n    Non-normatively describes the Viewport META element\\n    \\n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\\'s primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\\n    \\n    **Notes:**\\n    \\n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\\n    *   The default values may vary between devices and browsers.\\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\").'}},{name:\"http-equiv\",description:{kind:\"markdown\",value:'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\\n\\n*   `\"content-language\"`  \\n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\\n    \\n*   `\"content-security-policy\"`  \\n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\\n*   `\"content-type\"`  \\n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \\'`text/html`\\' followed by a character set with the following syntax: \\'`; charset=_IANAcharset_`\\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\\n    \\n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can\\'t change documents\\' types in XHTML or HTML5\\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\\n    \\n*   `\"refresh\"`  \\n    This instruction specifies:\\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \\'`;url=`\\', and a valid URL.\\n*   `\"set-cookie\"`  \\n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\\n    \\n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'}},{name:\"content\",description:{kind:\"markdown\",value:\"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used.\"}},{name:\"charset\",description:{kind:\"markdown\",value:'This attribute declares the page\\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\\'t request a specific encoding, it suggests:\\n\\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\\n\\n**Note:** ASCII-incompatible encodings are those that don\\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\\n\\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\\n\\n**Notes:**\\n\\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page\\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\\n*   It is strongly recommended to define the character encoding. If a page\\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'}},{name:\"scheme\",description:\"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\\n\\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meta\"}]},{name:\"style\",description:{kind:\"markdown\",value:\"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.\"},attributes:[{name:\"media\",description:{kind:\"markdown\",value:\"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing.\"}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents.\"}},{name:\"scoped\",valueSet:\"v\"},{name:\"title\",description:\"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/style\"}]},{name:\"body\",description:{kind:\"markdown\",value:\"The body element represents the content of the document.\"},attributes:[{name:\"onafterprint\",description:{kind:\"markdown\",value:\"Function to call after the user has printed the document.\"}},{name:\"onbeforeprint\",description:{kind:\"markdown\",value:\"Function to call when the user requests printing of the document.\"}},{name:\"onbeforeunload\",description:{kind:\"markdown\",value:\"Function to call when the document is about to be unloaded.\"}},{name:\"onhashchange\",description:{kind:\"markdown\",value:\"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed.\"}},{name:\"onlanguagechange\",description:{kind:\"markdown\",value:\"Function to call when the preferred languages changed.\"}},{name:\"onmessage\",description:{kind:\"markdown\",value:\"Function to call when the document has received a message.\"}},{name:\"onoffline\",description:{kind:\"markdown\",value:\"Function to call when network communication has failed.\"}},{name:\"ononline\",description:{kind:\"markdown\",value:\"Function to call when network communication has been restored.\"}},{name:\"onpagehide\"},{name:\"onpageshow\"},{name:\"onpopstate\",description:{kind:\"markdown\",value:\"Function to call when the user has navigated session history.\"}},{name:\"onstorage\",description:{kind:\"markdown\",value:\"Function to call when the storage area has changed.\"}},{name:\"onunload\",description:{kind:\"markdown\",value:\"Function to call when the document is going away.\"}},{name:\"alink\",description:'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._'},{name:\"background\",description:'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._'},{name:\"bgcolor\",description:'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._'},{name:\"bottommargin\",description:'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"leftmargin\",description:'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"link\",description:'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._'},{name:\"onblur\",description:\"Function to call when the document loses focus.\"},{name:\"onerror\",description:\"Function to call when the document fails to load properly.\"},{name:\"onfocus\",description:\"Function to call when the document receives focus.\"},{name:\"onload\",description:\"Function to call when the document has finished loading.\"},{name:\"onredo\",description:\"Function to call when the user has moved forward in undo transaction history.\"},{name:\"onresize\",description:\"Function to call when the document has been resized.\"},{name:\"onundo\",description:\"Function to call when the user has moved backward in undo transaction history.\"},{name:\"rightmargin\",description:'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"text\",description:'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property on the element instead._'},{name:\"topmargin\",description:'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"vlink\",description:'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/body\"}]},{name:\"article\",description:{kind:\"markdown\",value:\"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/article\"}]},{name:\"section\",description:{kind:\"markdown\",value:\"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/section\"}]},{name:\"nav\",description:{kind:\"markdown\",value:\"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/nav\"}]},{name:\"aside\",description:{kind:\"markdown\",value:\"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/aside\"}]},{name:\"h1\",description:{kind:\"markdown\",value:\"The h1 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h2\",description:{kind:\"markdown\",value:\"The h2 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h3\",description:{kind:\"markdown\",value:\"The h3 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h4\",description:{kind:\"markdown\",value:\"The h4 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h5\",description:{kind:\"markdown\",value:\"The h5 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h6\",description:{kind:\"markdown\",value:\"The h6 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"header\",description:{kind:\"markdown\",value:\"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/header\"}]},{name:\"footer\",description:{kind:\"markdown\",value:\"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/footer\"}]},{name:\"address\",description:{kind:\"markdown\",value:\"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/address\"}]},{name:\"p\",description:{kind:\"markdown\",value:\"The p element represents a paragraph.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/p\"}]},{name:\"hr\",description:{kind:\"markdown\",value:\"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book.\"},attributes:[{name:\"align\",description:\"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`.\"},{name:\"color\",description:\"Sets the color of the rule through color name or hexadecimal value.\"},{name:\"noshade\",description:\"Sets the rule to have no shading.\"},{name:\"size\",description:\"Sets the height, in pixels, of the rule.\"},{name:\"width\",description:\"Sets the length of the rule on the page through a pixel or percentage value.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/hr\"}]},{name:\"pre\",description:{kind:\"markdown\",value:\"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.\"},attributes:[{name:\"cols\",description:'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"width\",description:'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"wrap\",description:'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/pre\"}]},{name:\"blockquote\",description:{kind:\"markdown\",value:\"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote\"}]},{name:\"ol\",description:{kind:\"markdown\",value:\"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.\"},attributes:[{name:\"reversed\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute specifies that the items of the list are specified in reversed order.\"}},{name:\"start\",description:{kind:\"markdown\",value:'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'}},{name:\"type\",valueSet:\"lt\",description:{kind:\"markdown\",value:\"Indicates the numbering type:\\n\\n*   `'a'` indicates lowercase letters,\\n*   `'A'` indicates uppercase letters,\\n*   `'i'` indicates lowercase Roman numerals,\\n*   `'I'` indicates uppercase Roman numerals,\\n*   and `'1'` indicates numbers (default).\\n\\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \\\"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\\\") element.\\n\\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \\\"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\\\") property should be used instead.\"}},{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ol\"}]},{name:\"ul\",description:{kind:\"markdown\",value:\"The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document.\"},attributes:[{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ul\"}]},{name:\"li\",description:{kind:\"markdown\",value:\"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed.'}},{name:\"type\",description:'This character attribute indicates the numbering type:\\n\\n*   `a`: lowercase letters\\n*   `A`: uppercase letters\\n*   `i`: lowercase Roman numerals\\n*   `I`: uppercase Roman numerals\\n*   `1`: numbers\\n\\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\\n\\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/li\"}]},{name:\"dl\",description:{kind:\"markdown\",value:\"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dl\"}]},{name:\"dt\",description:{kind:\"markdown\",value:\"The dt element represents the term, or name, part of a term-description group in a description list (dl element).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dt\"}]},{name:\"dd\",description:{kind:\"markdown\",value:\"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element).\"},attributes:[{name:\"nowrap\",description:\"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dd\"}]},{name:\"figure\",description:{kind:\"markdown\",value:\"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figure\"}]},{name:\"figcaption\",description:{kind:\"markdown\",value:\"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption\"}]},{name:\"main\",description:{kind:\"markdown\",value:\"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/main\"}]},{name:\"div\",description:{kind:\"markdown\",value:\"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/div\"}]},{name:\"a\",description:{kind:\"markdown\",value:\"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"Contains a URL or a URL fragment that the hyperlink points to.\"}},{name:\"target\",description:{kind:\"markdown\",value:'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\\n\\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\\n*   `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\\n\\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\\n\\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\\'s performance may suffer. To avoid this use `rel=\"noopener\"`.'}},{name:\"download\",description:{kind:\"markdown\",value:\"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\\n\\n**Notes:**\\n\\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute.\"}},{name:\"ping\",description:{kind:\"markdown\",value:'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\").'}},{name:\"type\",description:{kind:\"markdown\",value:'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A MIME type (now properly called \"media type\", but also sometimes \"content type\") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).\") for the linked URL. It is purely advisory, with no built-in functionality.'}},{name:\"referrerpolicy\",description:\"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\\n\\n*   `'no-referrer'` means the `Referer:` header will not be sent.\\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\\n*   `'strict-origin-when-cross-origin'`\\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/a\"}]},{name:\"em\",description:{kind:\"markdown\",value:\"The em element represents stress emphasis of its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/em\"}]},{name:\"strong\",description:{kind:\"markdown\",value:\"The strong element represents strong importance, seriousness, or urgency for its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/strong\"}]},{name:\"small\",description:{kind:\"markdown\",value:\"The small element represents side comments such as small print.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/small\"}]},{name:\"s\",description:{kind:\"markdown\",value:\"The s element represents contents that are no longer accurate or no longer relevant.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/s\"}]},{name:\"cite\",description:{kind:\"markdown\",value:\"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/cite\"}]},{name:\"q\",description:{kind:\"markdown\",value:\"The q element represents some phrasing content quoted from another source.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/q\"}]},{name:\"dfn\",description:{kind:\"markdown\",value:\"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dfn\"}]},{name:\"abbr\",description:{kind:\"markdown\",value:\"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/abbr\"}]},{name:\"ruby\",description:{kind:\"markdown\",value:\"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ruby\"}]},{name:\"rb\",description:{kind:\"markdown\",value:\"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rb\"}]},{name:\"rt\",description:{kind:\"markdown\",value:\"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rt\"}]},{name:\"rp\",description:{kind:\"markdown\",value:\"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rp\"}]},{name:\"time\",description:{kind:\"markdown\",value:\"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.\"},attributes:[{name:\"datetime\",description:{kind:\"markdown\",value:\"This attribute indicates the time and/or date of the element and must be in one of the formats described below.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/time\"}]},{name:\"code\",description:{kind:\"markdown\",value:\"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/code\"}]},{name:\"var\",description:{kind:\"markdown\",value:\"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/var\"}]},{name:\"samp\",description:{kind:\"markdown\",value:\"The samp element represents sample or quoted output from another program or computing system.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/samp\"}]},{name:\"kbd\",description:{kind:\"markdown\",value:\"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/kbd\"}]},{name:\"sub\",description:{kind:\"markdown\",value:\"The sub element represents a subscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sub\"}]},{name:\"sup\",description:{kind:\"markdown\",value:\"The sup element represents a superscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sup\"}]},{name:\"i\",description:{kind:\"markdown\",value:\"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/i\"}]},{name:\"b\",description:{kind:\"markdown\",value:\"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/b\"}]},{name:\"u\",description:{kind:\"markdown\",value:\"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/u\"}]},{name:\"mark\",description:{kind:\"markdown\",value:\"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/mark\"}]},{name:\"bdi\",description:{kind:\"markdown\",value:\"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdi\"}]},{name:\"bdo\",description:{kind:\"markdown\",value:\"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]\"},attributes:[{name:\"dir\",description:\"The direction in which text should be rendered in this element's contents. Possible values are:\\n\\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\\n*   `rtl`: Indicates that the text should go in a right-to-left direction.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdo\"}]},{name:\"span\",description:{kind:\"markdown\",value:\"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/span\"}]},{name:\"br\",description:{kind:\"markdown\",value:\"The br element represents a line break.\"},attributes:[{name:\"clear\",description:\"Indicates where to begin the next line after the break.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/br\"}]},{name:\"wbr\",description:{kind:\"markdown\",value:\"The wbr element represents a line break opportunity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/wbr\"}]},{name:\"ins\",description:{kind:\"markdown\",value:\"The ins element represents an addition to the document.\"},attributes:[{name:\"cite\",description:\"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system.\"},{name:\"datetime\",description:'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ins\"}]},{name:\"del\",description:{kind:\"markdown\",value:\"The del element represents a removal from the document.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URI for a resource that explains the change (for example, meeting minutes).\"}},{name:\"datetime\",description:{kind:\"markdown\",value:'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/del\"}]},{name:\"picture\",description:{kind:\"markdown\",value:\"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/picture\"}]},{name:\"img\",description:{kind:\"markdown\",value:\"An img element represents an image.\"},attributes:[{name:\"alt\",description:{kind:\"markdown\",value:'This attribute defines an alternative text description of the image.\\n\\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\\n\\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'}},{name:\"src\",description:{kind:\"markdown\",value:\"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors.\"}},{name:\"srcset\",description:{kind:\"markdown\",value:\"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\\n\\n1.  a URL to an image,\\n2.  optionally, whitespace followed by one of:\\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\\n\\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\\n\\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\\n\\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example.\"}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:'}},{name:\"usemap\",description:{kind:\"markdown\",value:'The partial URL (starting with \\'#\\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\\n\\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element.'}},{name:\"ismap\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\\n\\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The intrinsic width of the image in pixels.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The intrinsic height of the image in pixels.\"}},{name:\"decoding\",description:\"Provides an image decoding hint to the browser. The allowed values are:\"},{name:\"decoding\",description:\"`sync`\\n\\nDecode the image synchronously for atomic presentation with other content.\\n\\n`async`\\n\\nDecode the image asynchronously to reduce delay in presenting other content.\\n\\n`auto`\\n\\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.\"},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:\"`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\\n\\n`high`: Indicates to the browser that the image is of **high** priority.\\n\\n`low`: Indicates to the browser that the image is of **low** priority.\"},{name:\"intrinsicsize\",description:\"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)\"},{name:\"referrerpolicy\",description:\"A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \\\"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\\\") header will not be sent.\\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.\"},{name:\"sizes\",description:\"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\\n\\n1.  a media condition. This must be omitted for the last item.\\n2.  a source size value.\\n\\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/img\"}]},{name:\"iframe\",description:{kind:\"markdown\",value:\"The iframe element represents a nested browsing context.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'}},{name:\"srcdoc\",description:{kind:\"markdown\",value:\"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute.\"}},{name:\"name\",description:{kind:\"markdown\",value:'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The Window interface\\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method.'}},{name:\"sandbox\",valueSet:\"sb\",description:{kind:\"markdown\",value:'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\\n\\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\\n*   `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\\n\\n**Notes about sandboxing:**\\n\\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'}},{name:\"seamless\",valueSet:\"v\"},{name:\"allowfullscreen\",valueSet:\"v\",description:{kind:\"markdown\",value:'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the frame in CSS pixels. Default is `300`.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the frame in CSS pixels. Default is `150`.\"}},{name:\"allow\",description:\"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`.\"},{name:\"allowpaymentrequest\",description:\"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API).\"},{name:\"allowpaymentrequest\",description:'This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`.'},{name:\"csp\",description:'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details.'},{name:\"importance\",description:\"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\\n\\n`auto` (default)\\n\\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\\n\\n`high`\\n\\nThe resource should be downloaded before other lower-priority page resources.\\n\\n`low`\\n\\nThe resource should be downloaded after other higher-priority page resources.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\\'s resource:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don\\'t send it to a less secure destination (HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/iframe\"}]},{name:\"embed\",description:{kind:\"markdown\",value:\"The embed element provides an integration point for an external (typically non-HTML) application or interactive content.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"The URL of the resource being embedded.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME type to use to select the plug-in to instantiate.\"}},{name:\"width\",description:{kind:\"markdown\",value:\"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/embed\"}]},{name:\"object\",description:{kind:\"markdown\",value:\"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin.\"},attributes:[{name:\"data\",description:{kind:\"markdown\",value:\"The address of the resource as a valid URL. At least one of **data** and **type** must be defined.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined.\"}},{name:\"typemustmatch\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of valid browsing context (HTML5), or the name of the control (HTML 4).\"}},{name:\"usemap\",description:{kind:\"markdown\",value:\"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \\\"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\\\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"archive\",description:\"A space-separated list of URIs for archives of resources for the object.\"},{name:\"border\",description:\"The width of a border around the control, in pixels.\"},{name:\"classid\",description:\"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute.\"},{name:\"codebase\",description:\"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document.\"},{name:\"codetype\",description:\"The content type of the data specified by **classid**.\"},{name:\"declare\",description:\"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused.\"},{name:\"standby\",description:\"A message that the browser can show while loading the object's implementation and data.\"},{name:\"tabindex\",description:\"The position of the element in the tabbing navigation order for the current document.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/object\"}]},{name:\"param\",description:{kind:\"markdown\",value:\"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"Name of the parameter.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"Specifies the value of the parameter.\"}},{name:\"type\",description:'Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value.'},{name:\"valuetype\",description:'Specifies the type of the `value` attribute. Possible values are:\\n\\n*   data: Default value. The value is passed to the object\\'s implementation as a string.\\n*   ref: The value is a URI to a resource where run-time values are stored.\\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/param\"}]},{name:\"video\",description:{kind:\"markdown\",value:\"A video element is used for playing videos or movies, and audio files with captions.\"},attributes:[{name:\"src\"},{name:\"crossorigin\",valueSet:\"xo\"},{name:\"poster\"},{name:\"preload\",valueSet:\"pl\"},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\"},{name:\"muted\",valueSet:\"v\"},{name:\"controls\",valueSet:\"v\"},{name:\"width\"},{name:\"height\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/video\"}]},{name:\"audio\",description:{kind:\"markdown\",value:\"An audio element represents a sound or audio stream.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\nanonymous\\n\\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\\n\\nuse-credentials\\n\\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\\n\\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'}},{name:\"preload\",valueSet:\"pl\",description:{kind:\"markdown\",value:\"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\\n\\n*   `none`: Indicates that the audio should not be preloaded.\\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\\n*   _empty string_: A synonym of the `auto` value.\\n\\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\\n\\n**Usage notes:**\\n\\n*   The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint.\"}},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\\n\\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio.\"}},{name:\"muted\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`.\"}},{name:\"controls\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/audio\"}]},{name:\"source\",description:{kind:\"markdown\",value:\"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs.\"}},{name:\"sizes\",description:'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \\nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'},{name:\"srcset\",description:\"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\\n\\n1.  one URL to an image,\\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\\n\\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \\nThe browser chooses the most adequate image to display at a given point of time.  \\nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \\\"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\\\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \\\"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\\\") element.\"},{name:\"media\",description:'[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/source\"}]},{name:\"track\",description:{kind:\"markdown\",value:\"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.\"},attributes:[{name:\"default\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element.\"}},{name:\"kind\",valueSet:\"tk\",description:{kind:\"markdown\",value:\"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\\n\\n*   `subtitles`\\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\\n*   `captions`\\n    *   Closed captions provide a transcription and possibly a translation of audio.\\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\\n    *   Suitable for users who are deaf or when the sound is muted.\\n*   `descriptions`\\n    *   Textual description of the video content.\\n    *   Suitable for users who are blind or where the video cannot be seen.\\n*   `chapters`\\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\\n*   `metadata`\\n    *   Tracks used by scripts. Not visible to the user.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"A user-readable title of the text track which is used by the browser when listing available text tracks.\"}},{name:\"src\",description:{kind:\"markdown\",value:'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'}},{name:\"srclang\",description:{kind:\"markdown\",value:\"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/track\"}]},{name:\"map\",description:{kind:\"markdown\",value:\"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/map\"}]},{name:\"area\",description:{kind:\"markdown\",value:\"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.\"},attributes:[{name:\"alt\"},{name:\"coords\"},{name:\"shape\",valueSet:\"sh\"},{name:\"href\"},{name:\"target\"},{name:\"download\"},{name:\"ping\"},{name:\"rel\"},{name:\"hreflang\"},{name:\"type\"},{name:\"accesskey\",description:\"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/area\"}]},{name:\"table\",description:{kind:\"markdown\",value:\"The table element represents data with more than one dimension, in the form of a table.\"},attributes:[{name:\"border\"},{name:\"align\",description:'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\\n\\n*   left: the table is displayed on the left side of the document;\\n*   center: the table is displayed in the center of the document;\\n*   right: the table is displayed on the right side of the document.\\n\\n**Usage Note**\\n\\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/table\"}]},{name:\"caption\",description:{kind:\"markdown\",value:\"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"align\",description:'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\\n\\n`left`\\n\\nThe caption is displayed to the left of the table.\\n\\n`top`\\n\\nThe caption is displayed above the table.\\n\\n`right`\\n\\nThe caption is displayed to the right of the table.\\n\\n`bottom`\\n\\nThe caption is displayed below the table.\\n\\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table\\'s <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/caption\"}]},{name:\"colgroup\",description:{kind:\"markdown\",value:\"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup\"}]},{name:\"col\",description:{kind:\"markdown\",value:\"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/col\"}]},{name:\"tbody\",description:{kind:\"markdown\",value:\"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tbody\"}]},{name:\"thead\",description:{kind:\"markdown\",value:\"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/thead\"}]},{name:\"tfoot\",description:{kind:\"markdown\",value:\"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot\"}]},{name:\"tr\",description:{kind:\"markdown\",value:\"The tr element represents a row of cells in a table.\"},attributes:[{name:\"align\",description:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell\\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\\n\\n`left`\\n\\nAlign the content of each cell at its left edge.\\n\\n`center`\\n\\nCenter the contents of each cell between their left and right edges.\\n\\n`right`\\n\\nAlign the content of each cell at its right edge.\\n\\n`justify`\\n\\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\\n\\n`char`\\n\\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\\n\\nIf no value is expressly set for `align`, the parent node\\'s value is inherited.\\n\\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row\\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tr\"}]},{name:\"td\",description:{kind:\"markdown\",value:\"The td element represents a data cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"abbr\",description:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute.\"},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/td\"}]},{name:\"th\",description:{kind:\"markdown\",value:\"The th element represents a header cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"scope\",valueSet:\"s\"},{name:\"sorted\"},{name:\"abbr\",description:{kind:\"markdown\",value:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\"}},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/th\"}]},{name:\"form\",description:{kind:\"markdown\",value:\"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.\"},attributes:[{name:\"accept-charset\",description:{kind:\"markdown\",value:'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element.  \\nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'}},{name:\"action\",description:{kind:\"markdown\",value:'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"autocomplete\",valueSet:\"o\",description:{kind:\"markdown\",value:\"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\\n\\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\"}},{name:\"enctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\\n*   `text/plain`: (HTML5)\\n\\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"method\",valueSet:\"m\",description:{kind:\"markdown\",value:'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \\'?\\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n*   `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\\n\\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5.\"}},{name:\"novalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form.'}},{name:\"target\",description:{kind:\"markdown\",value:'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\\n\\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"accept\",description:'A comma-separated list of content types that the server accepts.\\n\\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'},{name:\"autocapitalize\",description:\"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/form\"}]},{name:\"label\",description:{kind:\"markdown\",value:\"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself.\"},attributes:[{name:\"form\",description:{kind:\"markdown\",value:'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"for\",description:{kind:\"markdown\",value:\"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\\n\\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/label\"}]},{name:\"input\",description:{kind:\"markdown\",value:\"The input element represents a typed data field, usually with a form control to allow the user to edit the data.\"},attributes:[{name:\"accept\"},{name:\"alt\"},{name:\"autocomplete\",valueSet:\"inputautocomplete\"},{name:\"autofocus\",valueSet:\"v\"},{name:\"checked\",valueSet:\"v\"},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\"},{name:\"form\"},{name:\"formaction\"},{name:\"formenctype\",valueSet:\"et\"},{name:\"formmethod\",valueSet:\"fm\"},{name:\"formnovalidate\",valueSet:\"v\"},{name:\"formtarget\"},{name:\"height\"},{name:\"inputmode\",valueSet:\"im\"},{name:\"list\"},{name:\"max\"},{name:\"maxlength\"},{name:\"min\"},{name:\"minlength\"},{name:\"multiple\",valueSet:\"v\"},{name:\"name\"},{name:\"pattern\"},{name:\"placeholder\"},{name:\"readonly\",valueSet:\"v\"},{name:\"required\",valueSet:\"v\"},{name:\"size\"},{name:\"src\"},{name:\"step\"},{name:\"type\",valueSet:\"t\"},{name:\"value\"},{name:\"width\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/input\"}]},{name:\"button\",description:{kind:\"markdown\",value:\"The button element represents a button labeled by its contents.\"},attributes:[{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\\n\\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements.'}},{name:\"formaction\",description:{kind:\"markdown\",value:\"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner.\"}},{name:\"formenctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\\n*   `text/plain`\\n\\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\\'s form owner.'}},{name:\"formmethod\",valueSet:\"fm\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: The data from the form are included in the body of the form and sent to the server.\\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n\\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner.\"}},{name:\"formnovalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.\"}},{name:\"formtarget\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed browsing context.\\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the button, which is submitted with the form data.\"}},{name:\"type\",valueSet:\"bt\",description:{kind:\"markdown\",value:\"The type of the button. Possible values are:\\n\\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\\n*   `reset`: The button resets all the controls to their initial values.\\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted.\"}},{name:\"autocomplete\",description:'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn\\'t return after refreshing the page\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/button\"}]},{name:\"select\",description:{kind:\"markdown\",value:\"The select element represents a control for selecting amongst a set of options.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent\\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent\\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute lets you specify the form element to which the select element is associated (that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"multiple\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"This attribute is used to specify the name of the control.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute indicating that an option with a non-empty string value must be selected.\"}},{name:\"size\",description:{kind:\"markdown\",value:\"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\\n\\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/select\"}]},{name:\"datalist\",description:{kind:\"markdown\",value:\"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/datalist\"}]},{name:\"optgroup\",description:{kind:\"markdown\",value:\"The optgroup element represents a group of option elements with a common label.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup\"}]},{name:\"option\",description:{kind:\"markdown\",value:\"The option element represents an option in a select element or as part of a list of suggestions in a datalist element.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element.'}},{name:\"label\",description:{kind:\"markdown\",value:\"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content.\"}},{name:\"selected\",valueSet:\"v\",description:{kind:\"markdown\",value:'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute.'}},{name:\"value\",description:{kind:\"markdown\",value:\"The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/option\"}]},{name:\"textarea\",description:{kind:\"markdown\",value:\"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\\n\\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\").'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"cols\",description:{kind:\"markdown\",value:\"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`.\"}},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'}},{name:\"inputmode\",valueSet:\"im\"},{name:\"maxlength\",description:{kind:\"markdown\",value:\"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.\"}},{name:\"minlength\",description:{kind:\"markdown\",value:\"The minimum number of characters (unicode code points) required that the user should enter.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the control.\"}},{name:\"placeholder\",description:{kind:\"markdown\",value:'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\\n\\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation.'}},{name:\"readonly\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute specifies that the user must fill in a value before submitting a form.\"}},{name:\"rows\",description:{kind:\"markdown\",value:\"The number of visible text lines for the control.\"}},{name:\"wrap\",valueSet:\"w\",description:{kind:\"markdown\",value:\"Indicates how the control wraps text. Possible values are:\\n\\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\\n\\nIf this attribute is not specified, `soft` is its default value.\"}},{name:\"autocapitalize\",description:\"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization.\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"},{name:\"spellcheck\",description:\"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\\n\\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\\n*   `false` : Indicates that the element should not be spell checked.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/textarea\"}]},{name:\"output\",description:{kind:\"markdown\",value:\"The output element represents the result of a calculation performed by the application, or the result of a user action.\"},attributes:[{name:\"for\",description:{kind:\"markdown\",value:\"A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/output\"}]},{name:\"progress\",description:{kind:\"markdown\",value:\"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/progress\"}]},{name:\"meter\",description:{kind:\"markdown\",value:\"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\\n\\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it.\"}},{name:\"min\",description:{kind:\"markdown\",value:\"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1.\"}},{name:\"low\",description:{kind:\"markdown\",value:\"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value.\"}},{name:\"high\",description:{kind:\"markdown\",value:\"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value.\"}},{name:\"optimum\",description:{kind:\"markdown\",value:\"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred.\"}},{name:\"form\",description:\"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meter\"}]},{name:\"fieldset\",description:{kind:\"markdown\",value:\"The fieldset element represents a set of form controls optionally grouped under a common name.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \\\"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\\\") element won't be disabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name associated with the group.\\n\\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset\"}]},{name:\"legend\",description:{kind:\"markdown\",value:\"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/legend\"}]},{name:\"details\",description:{kind:\"markdown\",value:\"The details element represents a disclosure widget from which the user can obtain additional information or controls.\"},attributes:[{name:\"open\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/details\"}]},{name:\"summary\",description:{kind:\"markdown\",value:\"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/summary\"}]},{name:\"dialog\",description:{kind:\"markdown\",value:\"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.\"},attributes:[{name:\"open\",description:\"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dialog\"}]},{name:\"script\",description:{kind:\"markdown\",value:\"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\\n\\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\\n\\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\\n*   **Any other value:** The embedded content is treated as a data block which won\\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\\n\\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\")).'}},{name:\"charset\"},{name:\"async\",valueSet:\"v\",description:{kind:\"markdown\",value:'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\\n\\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\\n\\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\\'t recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\\n\\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'}},{name:\"defer\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\\n\\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\\n\\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) to whitelist inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial.\"}},{name:\"integrity\",description:\"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"nomodule\",description:\"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don\\'t send it to a less secure destination (e.g. HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\\n\\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'},{name:\"text\",description:\"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/script\"}]},{name:\"noscript\",description:{kind:\"markdown\",value:\"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/noscript\"}]},{name:\"template\",description:{kind:\"markdown\",value:\"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/template\"}]},{name:\"canvas\",description:{kind:\"markdown\",value:\"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly.\"},attributes:[{name:\"width\",description:{kind:\"markdown\",value:\"The width of the coordinate space in CSS pixels. Defaults to 300.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the coordinate space in CSS pixels. Defaults to 150.\"}},{name:\"moz-opaque\",description:\"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \\\"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\\\") instead.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/canvas\"}]}],globalAttributes:[{name:\"accesskey\",description:{kind:\"markdown\",value:\"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey\"}]},{name:\"autocapitalize\",description:{kind:\"markdown\",value:\"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\\n\\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\\n*   `characters`, all letters should default to uppercase\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize\"}]},{name:\"class\",description:{kind:\"markdown\",value:'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](/en-US/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](/en-US/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\").'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class\"}]},{name:\"contenteditable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\\n\\n*   `true` or the _empty string_, which indicates that the element must be editable;\\n*   `false`, which indicates that the element must not be editable.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable\"}]},{name:\"contextmenu\",description:{kind:\"markdown\",value:'The `[**id**](#attr-id)` of a [`<menu>`](/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu\"}]},{name:\"dir\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\\n\\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element.\"},valueSet:\"d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir\"}]},{name:\"draggable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](/en-us/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `true`, which indicates that the element may be dragged\\n*   `false`, which indicates that the element may not be dragged.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable\"}]},{name:\"dropzone\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](/en-US/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\\n*   `link`, will create a link to the dragged data.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dropzone\"}]},{name:\"exportparts\",description:{kind:\"markdown\",value:\"Used to transitively export shadow parts from a nested shadow tree into a containing light tree.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts\"}]},{name:\"hidden\",description:{kind:\"markdown\",value:\"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden\"}]},{name:\"id\",description:{kind:\"markdown\",value:\"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id\"}]},{name:\"inputmode\",description:{kind:\"markdown\",value:'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode\"}]},{name:\"is\",description:{kind:\"markdown\",value:\"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](/en-US/docs/Web/Web_Components/Using_custom_elements) for more details).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is\"}]},{name:\"itemid\",description:{kind:\"markdown\",value:\"The unique, global identifier of an item.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid\"}]},{name:\"itemprop\",description:{kind:\"markdown\",value:\"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop\"}]},{name:\"itemref\",description:{kind:\"markdown\",value:\"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref\"}]},{name:\"itemscope\",description:{kind:\"markdown\",value:\"`itemscope` (usually) works along with `[itemtype](/en-US/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope\"}]},{name:\"itemtype\",description:{kind:\"markdown\",value:\"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](/en-US/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype\"}]},{name:\"lang\",description:{kind:\"markdown\",value:\"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang\"}]},{name:\"part\",description:{kind:\"markdown\",value:'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](/en-US/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part\"}]},{name:\"role\",valueSet:\"roles\"},{name:\"slot\",description:{kind:\"markdown\",value:\"Assigns a slot in a [shadow DOM](/en-US/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](/en-US/docs/Web/HTML/Element/slot \\\"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\\\") element whose `[name](/en-US/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot\"}]},{name:\"spellcheck\",description:{kind:\"markdown\",value:\"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\\n\\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\\n*   `false`, which indicates that the element should not be checked for spelling errors.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck\"}]},{name:\"style\",description:{kind:\"markdown\",value:'Contains [CSS](/en-US/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](/en-US/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style\"}]},{name:\"tabindex\",description:{kind:\"markdown\",value:\"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\\n\\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title\"}]},{name:\"translate\",description:{kind:\"markdown\",value:\"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](/en-US/docs/Web/API/Text \\\"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\\\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\\n\\n*   empty string and `yes`, which indicates that the element will be translated.\\n*   `no`, which indicates that the element will not be translated.\"},valueSet:\"y\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate\"}]},{name:\"onabort\",description:{kind:\"markdown\",value:\"The loading of a resource has been aborted.\"}},{name:\"onblur\",description:{kind:\"markdown\",value:\"An element has lost focus (does not bubble).\"}},{name:\"oncanplay\",description:{kind:\"markdown\",value:\"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\"}},{name:\"oncanplaythrough\",description:{kind:\"markdown\",value:\"The user agent can play the media up to its end without having to stop for further buffering of content.\"}},{name:\"onchange\",description:{kind:\"markdown\",value:\"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user.\"}},{name:\"onclick\",description:{kind:\"markdown\",value:\"A pointing device button has been pressed and released on an element.\"}},{name:\"oncontextmenu\",description:{kind:\"markdown\",value:\"The right button of the mouse is clicked (before the context menu is displayed).\"}},{name:\"ondblclick\",description:{kind:\"markdown\",value:\"A pointing device button is clicked twice on an element.\"}},{name:\"ondrag\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged (every 350ms).\"}},{name:\"ondragend\",description:{kind:\"markdown\",value:\"A drag operation is being ended (by releasing a mouse button or hitting the escape key).\"}},{name:\"ondragenter\",description:{kind:\"markdown\",value:\"A dragged element or text selection enters a valid drop target.\"}},{name:\"ondragleave\",description:{kind:\"markdown\",value:\"A dragged element or text selection leaves a valid drop target.\"}},{name:\"ondragover\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged over a valid drop target (every 350ms).\"}},{name:\"ondragstart\",description:{kind:\"markdown\",value:\"The user starts dragging an element or text selection.\"}},{name:\"ondrop\",description:{kind:\"markdown\",value:\"An element is dropped on a valid drop target.\"}},{name:\"ondurationchange\",description:{kind:\"markdown\",value:\"The duration attribute has been updated.\"}},{name:\"onemptied\",description:{kind:\"markdown\",value:\"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.\"}},{name:\"onended\",description:{kind:\"markdown\",value:\"Playback has stopped because the end of the media was reached.\"}},{name:\"onerror\",description:{kind:\"markdown\",value:\"A resource failed to load.\"}},{name:\"onfocus\",description:{kind:\"markdown\",value:\"An element has received focus (does not bubble).\"}},{name:\"onformchange\"},{name:\"onforminput\"},{name:\"oninput\",description:{kind:\"markdown\",value:\"The value of an element changes or the content of an element with the attribute contenteditable is modified.\"}},{name:\"oninvalid\",description:{kind:\"markdown\",value:\"A submittable element has been checked and doesn't satisfy its constraints.\"}},{name:\"onkeydown\",description:{kind:\"markdown\",value:\"A key is pressed down.\"}},{name:\"onkeypress\",description:{kind:\"markdown\",value:\"A key is pressed down and that key normally produces a character value (use input instead).\"}},{name:\"onkeyup\",description:{kind:\"markdown\",value:\"A key is released.\"}},{name:\"onload\",description:{kind:\"markdown\",value:\"A resource and its dependent resources have finished loading.\"}},{name:\"onloadeddata\",description:{kind:\"markdown\",value:\"The first frame of the media has finished loading.\"}},{name:\"onloadedmetadata\",description:{kind:\"markdown\",value:\"The metadata has been loaded.\"}},{name:\"onloadstart\",description:{kind:\"markdown\",value:\"Progress has begun.\"}},{name:\"onmousedown\",description:{kind:\"markdown\",value:\"A pointing device button (usually a mouse) is pressed on an element.\"}},{name:\"onmousemove\",description:{kind:\"markdown\",value:\"A pointing device is moved over an element.\"}},{name:\"onmouseout\",description:{kind:\"markdown\",value:\"A pointing device is moved off the element that has the listener attached or off one of its children.\"}},{name:\"onmouseover\",description:{kind:\"markdown\",value:\"A pointing device is moved onto the element that has the listener attached or onto one of its children.\"}},{name:\"onmouseup\",description:{kind:\"markdown\",value:\"A pointing device button is released over an element.\"}},{name:\"onmousewheel\"},{name:\"onpause\",description:{kind:\"markdown\",value:\"Playback has been paused.\"}},{name:\"onplay\",description:{kind:\"markdown\",value:\"Playback has begun.\"}},{name:\"onplaying\",description:{kind:\"markdown\",value:\"Playback is ready to start after having been paused or delayed due to lack of data.\"}},{name:\"onprogress\",description:{kind:\"markdown\",value:\"In progress.\"}},{name:\"onratechange\",description:{kind:\"markdown\",value:\"The playback rate has changed.\"}},{name:\"onreset\",description:{kind:\"markdown\",value:\"A form is reset.\"}},{name:\"onresize\",description:{kind:\"markdown\",value:\"The document view has been resized.\"}},{name:\"onreadystatechange\",description:{kind:\"markdown\",value:\"The readyState attribute of a document has changed.\"}},{name:\"onscroll\",description:{kind:\"markdown\",value:\"The document view or an element has been scrolled.\"}},{name:\"onseeked\",description:{kind:\"markdown\",value:\"A seek operation completed.\"}},{name:\"onseeking\",description:{kind:\"markdown\",value:\"A seek operation began.\"}},{name:\"onselect\",description:{kind:\"markdown\",value:\"Some text is being selected.\"}},{name:\"onshow\",description:{kind:\"markdown\",value:\"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute\"}},{name:\"onstalled\",description:{kind:\"markdown\",value:\"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\"}},{name:\"onsubmit\",description:{kind:\"markdown\",value:\"A form is submitted.\"}},{name:\"onsuspend\",description:{kind:\"markdown\",value:\"Media data loading has been suspended.\"}},{name:\"ontimeupdate\",description:{kind:\"markdown\",value:\"The time indicated by the currentTime attribute has been updated.\"}},{name:\"onvolumechange\",description:{kind:\"markdown\",value:\"The volume has changed.\"}},{name:\"onwaiting\",description:{kind:\"markdown\",value:\"Playback has stopped because of a temporary lack of data.\"}},{name:\"aria-activedescendant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant\"}],description:{kind:\"markdown\",value:\"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application).\"}},{name:\"aria-atomic\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic\"}],description:{kind:\"markdown\",value:\"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute.\"}},{name:\"aria-autocomplete\",valueSet:\"autocomplete\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete\"}],description:{kind:\"markdown\",value:\"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.\"}},{name:\"aria-busy\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-busy\"}],description:{kind:\"markdown\",value:\"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user.\"}},{name:\"aria-checked\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-checked\"}],description:{kind:\"markdown\",value:'Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-colcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex).\"}},{name:\"aria-colindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-colspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan\"}],description:{kind:\"markdown\",value:\"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-controls\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-controls\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns).\"}},{name:\"aria-current\",valueSet:\"current\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-current\"}],description:{kind:\"markdown\",value:\"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements.\"}},{name:\"aria-describedat\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedat\"}]},{name:\"aria-describedby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-disabled\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly).\"}},{name:\"aria-dropeffect\",valueSet:\"dropeffect\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect\"}],description:{kind:\"markdown\",value:\"\\\\[Deprecated in ARIA 1.1\\\\] Indicates what functions can be performed when a dragged object is released on the drop target.\"}},{name:\"aria-errormessage\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-expanded\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\"}],description:{kind:\"markdown\",value:\"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.\"}},{name:\"aria-flowto\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto\"}],description:{kind:\"markdown\",value:\"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.\"}},{name:\"aria-grabbed\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed\"}],description:{kind:\"markdown\",value:'\\\\[Deprecated in ARIA 1.1\\\\] Indicates an element\\'s \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'}},{name:\"aria-haspopup\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\"}],description:{kind:\"markdown\",value:\"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-hidden\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden\"}],description:{kind:\"markdown\",value:\"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-invalid\",valueSet:\"invalid\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid\"}],description:{kind:\"markdown\",value:\"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage).\"}},{name:\"aria-kbdshortcuts\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-kbdshortcuts\"}]},{name:\"aria-label\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-label\"}],description:{kind:\"markdown\",value:\"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-labelledby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-level\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-level\"}],description:{kind:\"markdown\",value:\"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure.\"}},{name:\"aria-live\",valueSet:\"live\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-live\"}],description:{kind:\"markdown\",value:\"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region).\"}},{name:\"aria-modal\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-modal\"}],description:{kind:\"markdown\",value:\"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed.\"}},{name:\"aria-multiline\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline\"}],description:{kind:\"markdown\",value:\"Indicates whether a text box accepts multiple lines of input or only a single line.\"}},{name:\"aria-multiselectable\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable\"}],description:{kind:\"markdown\",value:\"Indicates that the user may select more than one item from the current selectable descendants.\"}},{name:\"aria-orientation\",valueSet:\"orientation\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation\"}],description:{kind:\"markdown\",value:\"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\"}},{name:\"aria-owns\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-owns\"}],description:{kind:\"markdown\",value:\"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls).\"}},{name:\"aria-placeholder\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder\"}],description:{kind:\"markdown\",value:\"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.\"}},{name:\"aria-posinset\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset\"}],description:{kind:\"markdown\",value:\"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize).\"}},{name:\"aria-pressed\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\"}],description:{kind:\"markdown\",value:'Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-readonly\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-relevant\",valueSet:\"relevant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant\"}],description:{kind:\"markdown\",value:\"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic).\"}},{name:\"aria-required\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-required\"}],description:{kind:\"markdown\",value:\"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted.\"}},{name:\"aria-roledescription\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription\"}],description:{kind:\"markdown\",value:\"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-rowcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex).\"}},{name:\"aria-rowindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-rowspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan\"}],description:{kind:\"markdown\",value:\"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-selected\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-selected\"}],description:{kind:\"markdown\",value:'Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'}},{name:\"aria-setsize\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize\"}],description:{kind:\"markdown\",value:\"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset).\"}},{name:\"aria-sort\",valueSet:\"sort\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-sort\"}],description:{kind:\"markdown\",value:\"Indicates if items in a table or grid are sorted in ascending or descending order.\"}},{name:\"aria-valuemax\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax\"}],description:{kind:\"markdown\",value:\"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuemin\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin\"}],description:{kind:\"markdown\",value:\"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuenow\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow\"}],description:{kind:\"markdown\",value:\"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext).\"}},{name:\"aria-valuetext\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\"}],description:{kind:\"markdown\",value:\"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-details\",description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-keyshortcuts\",description:{kind:\"markdown\",value:\"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\"}}],valueSets:[{name:\"b\",values:[{name:\"true\"},{name:\"false\"}]},{name:\"u\",values:[{name:\"true\"},{name:\"false\"},{name:\"undefined\"}]},{name:\"o\",values:[{name:\"on\"},{name:\"off\"}]},{name:\"y\",values:[{name:\"yes\"},{name:\"no\"}]},{name:\"w\",values:[{name:\"soft\"},{name:\"hard\"}]},{name:\"d\",values:[{name:\"ltr\"},{name:\"rtl\"},{name:\"auto\"}]},{name:\"m\",values:[{name:\"GET\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\"}},{name:\"POST\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server.\"}},{name:\"dialog\",description:{kind:\"markdown\",value:\"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted.\"}}]},{name:\"fm\",values:[{name:\"GET\"},{name:\"POST\"}]},{name:\"s\",values:[{name:\"row\"},{name:\"col\"},{name:\"rowgroup\"},{name:\"colgroup\"}]},{name:\"t\",values:[{name:\"hidden\"},{name:\"text\"},{name:\"search\"},{name:\"tel\"},{name:\"url\"},{name:\"email\"},{name:\"password\"},{name:\"datetime\"},{name:\"date\"},{name:\"month\"},{name:\"week\"},{name:\"time\"},{name:\"datetime-local\"},{name:\"number\"},{name:\"range\"},{name:\"color\"},{name:\"checkbox\"},{name:\"radio\"},{name:\"file\"},{name:\"submit\"},{name:\"image\"},{name:\"reset\"},{name:\"button\"}]},{name:\"im\",values:[{name:\"verbatim\"},{name:\"latin\"},{name:\"latin-name\"},{name:\"latin-prose\"},{name:\"full-width-latin\"},{name:\"kana\"},{name:\"kana-name\"},{name:\"katakana\"},{name:\"numeric\"},{name:\"tel\"},{name:\"email\"},{name:\"url\"}]},{name:\"bt\",values:[{name:\"button\"},{name:\"submit\"},{name:\"reset\"},{name:\"menu\"}]},{name:\"lt\",values:[{name:\"1\"},{name:\"a\"},{name:\"A\"},{name:\"i\"},{name:\"I\"}]},{name:\"mt\",values:[{name:\"context\"},{name:\"toolbar\"}]},{name:\"mit\",values:[{name:\"command\"},{name:\"checkbox\"},{name:\"radio\"}]},{name:\"et\",values:[{name:\"application/x-www-form-urlencoded\"},{name:\"multipart/form-data\"},{name:\"text/plain\"}]},{name:\"tk\",values:[{name:\"subtitles\"},{name:\"captions\"},{name:\"descriptions\"},{name:\"chapters\"},{name:\"metadata\"}]},{name:\"pl\",values:[{name:\"none\"},{name:\"metadata\"},{name:\"auto\"}]},{name:\"sh\",values:[{name:\"circle\"},{name:\"default\"},{name:\"poly\"},{name:\"rect\"}]},{name:\"xo\",values:[{name:\"anonymous\"},{name:\"use-credentials\"}]},{name:\"sb\",values:[{name:\"allow-forms\"},{name:\"allow-modals\"},{name:\"allow-pointer-lock\"},{name:\"allow-popups\"},{name:\"allow-popups-to-escape-sandbox\"},{name:\"allow-same-origin\"},{name:\"allow-scripts\"},{name:\"allow-top-navigation\"}]},{name:\"tristate\",values:[{name:\"true\"},{name:\"false\"},{name:\"mixed\"},{name:\"undefined\"}]},{name:\"inputautocomplete\",values:[{name:\"additional-name\"},{name:\"address-level1\"},{name:\"address-level2\"},{name:\"address-level3\"},{name:\"address-level4\"},{name:\"address-line1\"},{name:\"address-line2\"},{name:\"address-line3\"},{name:\"bday\"},{name:\"bday-year\"},{name:\"bday-day\"},{name:\"bday-month\"},{name:\"billing\"},{name:\"cc-additional-name\"},{name:\"cc-csc\"},{name:\"cc-exp\"},{name:\"cc-exp-month\"},{name:\"cc-exp-year\"},{name:\"cc-family-name\"},{name:\"cc-given-name\"},{name:\"cc-name\"},{name:\"cc-number\"},{name:\"cc-type\"},{name:\"country\"},{name:\"country-name\"},{name:\"current-password\"},{name:\"email\"},{name:\"family-name\"},{name:\"fax\"},{name:\"given-name\"},{name:\"home\"},{name:\"honorific-prefix\"},{name:\"honorific-suffix\"},{name:\"impp\"},{name:\"language\"},{name:\"mobile\"},{name:\"name\"},{name:\"new-password\"},{name:\"nickname\"},{name:\"organization\"},{name:\"organization-title\"},{name:\"pager\"},{name:\"photo\"},{name:\"postal-code\"},{name:\"sex\"},{name:\"shipping\"},{name:\"street-address\"},{name:\"tel-area-code\"},{name:\"tel\"},{name:\"tel-country-code\"},{name:\"tel-extension\"},{name:\"tel-local\"},{name:\"tel-local-prefix\"},{name:\"tel-local-suffix\"},{name:\"tel-national\"},{name:\"transaction-amount\"},{name:\"transaction-currency\"},{name:\"url\"},{name:\"username\"},{name:\"work\"}]},{name:\"autocomplete\",values:[{name:\"inline\"},{name:\"list\"},{name:\"both\"},{name:\"none\"}]},{name:\"current\",values:[{name:\"page\"},{name:\"step\"},{name:\"location\"},{name:\"date\"},{name:\"time\"},{name:\"true\"},{name:\"false\"}]},{name:\"dropeffect\",values:[{name:\"copy\"},{name:\"move\"},{name:\"link\"},{name:\"execute\"},{name:\"popup\"},{name:\"none\"}]},{name:\"invalid\",values:[{name:\"grammar\"},{name:\"false\"},{name:\"spelling\"},{name:\"true\"}]},{name:\"live\",values:[{name:\"off\"},{name:\"polite\"},{name:\"assertive\"}]},{name:\"orientation\",values:[{name:\"vertical\"},{name:\"horizontal\"},{name:\"undefined\"}]},{name:\"relevant\",values:[{name:\"additions\"},{name:\"removals\"},{name:\"text\"},{name:\"all\"},{name:\"additions text\"}]},{name:\"sort\",values:[{name:\"ascending\"},{name:\"descending\"},{name:\"none\"},{name:\"other\"}]},{name:\"roles\",values:[{name:\"alert\"},{name:\"alertdialog\"},{name:\"button\"},{name:\"checkbox\"},{name:\"dialog\"},{name:\"gridcell\"},{name:\"link\"},{name:\"log\"},{name:\"marquee\"},{name:\"menuitem\"},{name:\"menuitemcheckbox\"},{name:\"menuitemradio\"},{name:\"option\"},{name:\"progressbar\"},{name:\"radio\"},{name:\"scrollbar\"},{name:\"searchbox\"},{name:\"slider\"},{name:\"spinbutton\"},{name:\"status\"},{name:\"switch\"},{name:\"tab\"},{name:\"tabpanel\"},{name:\"textbox\"},{name:\"timer\"},{name:\"tooltip\"},{name:\"treeitem\"},{name:\"combobox\"},{name:\"grid\"},{name:\"listbox\"},{name:\"menu\"},{name:\"menubar\"},{name:\"radiogroup\"},{name:\"tablist\"},{name:\"tree\"},{name:\"treegrid\"},{name:\"application\"},{name:\"article\"},{name:\"cell\"},{name:\"columnheader\"},{name:\"definition\"},{name:\"directory\"},{name:\"document\"},{name:\"feed\"},{name:\"figure\"},{name:\"group\"},{name:\"heading\"},{name:\"img\"},{name:\"list\"},{name:\"listitem\"},{name:\"math\"},{name:\"none\"},{name:\"note\"},{name:\"presentation\"},{name:\"region\"},{name:\"row\"},{name:\"rowgroup\"},{name:\"rowheader\"},{name:\"separator\"},{name:\"table\"},{name:\"term\"},{name:\"text\"},{name:\"toolbar\"},{name:\"banner\"},{name:\"complementary\"},{name:\"contentinfo\"},{name:\"form\"},{name:\"main\"},{name:\"navigation\"},{name:\"region\"},{name:\"search\"},{name:\"doc-abstract\"},{name:\"doc-acknowledgments\"},{name:\"doc-afterword\"},{name:\"doc-appendix\"},{name:\"doc-backlink\"},{name:\"doc-biblioentry\"},{name:\"doc-bibliography\"},{name:\"doc-biblioref\"},{name:\"doc-chapter\"},{name:\"doc-colophon\"},{name:\"doc-conclusion\"},{name:\"doc-cover\"},{name:\"doc-credit\"},{name:\"doc-credits\"},{name:\"doc-dedication\"},{name:\"doc-endnote\"},{name:\"doc-endnotes\"},{name:\"doc-epigraph\"},{name:\"doc-epilogue\"},{name:\"doc-errata\"},{name:\"doc-example\"},{name:\"doc-footnote\"},{name:\"doc-foreword\"},{name:\"doc-glossary\"},{name:\"doc-glossref\"},{name:\"doc-index\"},{name:\"doc-introduction\"},{name:\"doc-noteref\"},{name:\"doc-notice\"},{name:\"doc-pagebreak\"},{name:\"doc-pagelist\"},{name:\"doc-part\"},{name:\"doc-preface\"},{name:\"doc-prologue\"},{name:\"doc-pullquote\"},{name:\"doc-qna\"},{name:\"doc-subtitle\"},{name:\"doc-tip\"},{name:\"doc-toc\"}]},{name:\"metanames\",values:[{name:\"application-name\"},{name:\"author\"},{name:\"description\"},{name:\"format-detection\"},{name:\"generator\"},{name:\"keywords\"},{name:\"publisher\"},{name:\"referrer\"},{name:\"robots\"},{name:\"theme-color\"},{name:\"viewport\"}]}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/builtinDataProviders\",[\"require\",\"exports\",\"./dataProvider\",\"./data/webCustomData\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./dataProvider\"),i=e(\"./data/webCustomData\");t.builtinDataProviders=[new n.HTMLDataProvider(\"html5\",i.htmlData)];var r=[];t.getAllDataProviders=function(){return t.builtinDataProviders.concat(r)},t.handleCustomDataProviders=function(e){e.forEach((function(e){r.push(e)}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/object\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlCompletion\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../htmlLanguageTypes\",\"../parser/htmlEntities\",\"vscode-nls\",\"../utils/strings\",\"../languageFacts/builtinDataProviders\",\"../languageFacts/fact\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../parser/htmlEntities\"),o=e(\"vscode-nls\"),s=e(\"../utils/strings\"),l=e(\"../languageFacts/builtinDataProviders\"),c=e(\"../languageFacts/fact\"),d=e(\"../utils/object\"),h=e(\"../languageFacts/dataProvider\"),u=o.loadMessageBundle(),p=function(){function e(e){this.clientCapabilities=e,this.completionParticipants=[]}return e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n,i){var r=this._doComplete(e,t,n,i);return this.convertCompletionList(r)},e.prototype._doComplete=function(e,t,o,d){var p={isIncomplete:!1,items:[]},g=this.completionParticipants,b=l.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)&&(!d||!1!==d[t.getId()])})),_=this.doesSupportMarkdown(),v=e.getText(),w=e.offsetAt(t),y=o.findNodeBefore(w);if(!y)return p;var T,k=i.createScanner(v,y.start),S=\"\";function x(t,n){return void 0===n&&(n=w),t>w&&(t=w),{start:e.positionAt(t),end:e.positionAt(n)}}function L(e,t){var i=x(e,t);return b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(i,e.name),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p}function M(e){for(var t=e;t>0;){var n=v.charAt(t-1);if(\"\\n\\r\".indexOf(n)>=0)return v.substring(t,e);if(!m(n))return null;t--}return v.substring(0,e)}function E(e,t,i){void 0===i&&(i=w);var a=x(e,i),o=f(v,i,r.ScannerState.WithinEndTag,r.TokenType.EndTagClose)?\"\":\">\",s=y;for(t&&(s=s.parent);s;){var l=s.tag;if(l&&(!s.closed||s.endTagStart&&s.endTagStart>w)){var c={label:\"/\"+l,kind:n.CompletionItemKind.Property,filterText:\"/\"+l,textEdit:n.TextEdit.replace(a,\"/\"+l+o),insertTextFormat:n.InsertTextFormat.PlainText},d=M(s.start),u=M(e-1);if(null!==d&&null!==u&&d!==u){var m=d+\"</\"+l+o;c.textEdit=n.TextEdit.replace(x(e-1-u.length),m),c.filterText=u+\"</\"+l}return p.items.push(c),p}s=s.parent}return t?p:(b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:\"/\"+e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),filterText:\"/\"+e+o,textEdit:n.TextEdit.replace(a,\"/\"+e+o),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p)}function A(t,i){if(d&&d.hideAutoCompleteProposals)return p;if(!c.isVoidElement(i)){var r=e.positionAt(t);p.items.push({label:\"</\"+i+\">\",kind:n.CompletionItemKind.Property,filterText:\"</\"+i+\">\",textEdit:n.TextEdit.insert(r,\"$0</\"+i+\">\"),insertTextFormat:n.InsertTextFormat.Snippet})}return p}function R(e,t){return L(e,t),E(e,!0,t),p}function z(e,t){void 0===t&&(t=w);for(var i=w;i<t&&\"<\"!==v[i];)i++;var a=x(e,i),l=f(v,t,r.ScannerState.AfterAttributeName,r.TokenType.DelimiterAssign)?\"\":'=\"$1\"',c=S.toLowerCase(),d=Object.create(null);return b.forEach((function(e){e.provideAttributes(c).forEach((function(e){if(!d[e.name]){d[e.name]=!0;var t,i=e.name;\"v\"!==e.valueSet&&l.length&&(i+=l,(e.valueSet||\"style\"===e.name)&&(t={title:\"Suggest\",command:\"editor.action.triggerSuggest\"})),p.items.push({label:e.name,kind:\"handler\"===e.valueSet?n.CompletionItemKind.Function:n.CompletionItemKind.Value,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,i),insertTextFormat:n.InsertTextFormat.Snippet,command:t})}}))})),function(e,t){var i={};i[\"data-\"]='data-$1=\"$2\"',o&&o.roots.forEach((function(e){return function e(n){n.attributeNames.forEach((function(e){!s.startsWith(e,\"data-\")||i[e]||t[e]||(i[e]=e+'=\"$1\"')})),n.children.forEach((function(t){return e(t)}))}(e)}));Object.keys(i).forEach((function(t){return p.items.push({label:t,kind:n.CompletionItemKind.Value,textEdit:n.TextEdit.replace(e,i[t]),insertTextFormat:n.InsertTextFormat.Snippet})}))}(a,d),p}function H(i,r){var a,o,s,l;if(void 0===r&&(r=w),w>i&&w<=r&&(l=v[i],/^[\"']*$/.test(l))){var c=i+1,d=r;r>i&&v[r-1]===v[i]&&d--;var u=function(e,t,n){for(;t>n&&!m(e[t-1]);)t--;return t}(v,w,c),f=function(e,t,n){for(;t<n&&!m(e[t]);)t++;return t}(v,w,d);a=x(u,f),s=w>=c&&w<=d?v.substring(c,w):\"\",o=!1}else a=x(i,r),s=v.substring(i,w),o=!0;var y=S.toLowerCase(),k=T.toLowerCase();if(g.length>0)for(var L=x(i,r),M=0,E=g;M<E.length;M++){var A=E[M];A.onHtmlAttributeValue&&A.onHtmlAttributeValue({document:e,position:t,tag:y,attribute:k,value:s,range:L})}return b.forEach((function(e){e.provideValues(y,k).forEach((function(e){var t=o?'\"'+e.name+'\"':e.name;p.items.push({label:e.name,filterText:t,kind:n.CompletionItemKind.Unit,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,t),insertTextFormat:n.InsertTextFormat.PlainText})}))})),U(),p}function I(e){return w===k.getTokenEnd()&&(D=k.scan())===e&&k.getTokenOffset()===w?k.getTokenEnd():w}function C(){for(var n=0,i=g;n<i.length;n++){var r=i[n];r.onHtmlContent&&r.onHtmlContent({document:e,position:t})}return U()}function U(){for(var e=w-1,i=t.character;e>=0&&s.isLetterOrDigit(v,e);)e--,i--;if(e>=0&&\"&\"===v[e]){var r=n.Range.create(n.Position.create(t.line,i-1),t);for(var o in a.entities)if(s.endsWith(o,\";\")){var l=\"&\"+o;p.items.push({label:l,kind:n.CompletionItemKind.Keyword,documentation:u(\"entity.propose\",\"Character entity representing '\"+a.entities[o]+\"'\"),textEdit:n.TextEdit.replace(r,l),insertTextFormat:n.InsertTextFormat.PlainText})}}return p}for(var W,D=k.scan();D!==r.TokenType.EOS&&k.getTokenOffset()<=w;){switch(D){case r.TokenType.StartTagOpen:if(k.getTokenEnd()===w){var q=I(r.TokenType.StartTag);return 0===t.line&&(W=void 0,W=x(w,q),p.items.push({label:\"!DOCTYPE\",kind:n.CompletionItemKind.Property,documentation:\"A preamble for an HTML document.\",textEdit:n.TextEdit.replace(W,\"!DOCTYPE html>\"),insertTextFormat:n.InsertTextFormat.PlainText})),R(w,q)}break;case r.TokenType.StartTag:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return L(k.getTokenOffset(),k.getTokenEnd());S=k.getTokenText();break;case r.TokenType.AttributeName:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return z(k.getTokenOffset(),k.getTokenEnd());T=k.getTokenText();break;case r.TokenType.DelimiterAssign:if(k.getTokenEnd()===w){q=I(r.TokenType.AttributeValue);return H(w,q)}break;case r.TokenType.AttributeValue:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return H(k.getTokenOffset(),k.getTokenEnd());break;case r.TokenType.Whitespace:if(w<=k.getTokenEnd())switch(k.getScannerState()){case r.ScannerState.AfterOpeningStartTag:return R(k.getTokenOffset(),I(r.TokenType.StartTag));case r.ScannerState.WithinTag:case r.ScannerState.AfterAttributeName:return z(k.getTokenEnd());case r.ScannerState.BeforeAttributeValue:return H(k.getTokenEnd());case r.ScannerState.AfterOpeningEndTag:return E(k.getTokenOffset()-1,!1);case r.ScannerState.WithinContent:return C()}break;case r.TokenType.EndTagOpen:if(w<=k.getTokenEnd())return E(k.getTokenOffset()+1,!1,I(r.TokenType.EndTag));break;case r.TokenType.EndTag:if(w<=k.getTokenEnd())for(var O=k.getTokenOffset()-1;O>=0;){var P=v.charAt(O);if(\"/\"===P)return E(O,!1,k.getTokenEnd());if(!m(P))break;O--}break;case r.TokenType.StartTagClose:if(w<=k.getTokenEnd()&&S)return A(k.getTokenEnd(),S);break;case r.TokenType.Content:if(w<=k.getTokenEnd())return C();break;default:if(w<=k.getTokenEnd())return p}D=k.scan()}return p},e.prototype.doTagComplete=function(e,t,n){var a=e.offsetAt(t);if(a<=0)return null;var o=e.getText().charAt(a-1);if(\">\"===o){if((l=n.findNodeBefore(a))&&l.tag&&!c.isVoidElement(l.tag)&&l.start<a&&(!l.endTagStart||l.endTagStart>a))for(var s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.StartTagClose&&d.getTokenEnd()===a)return\"$0</\"+l.tag+\">\";s=d.scan()}}else if(\"/\"===o){for(var l=n.findNodeBefore(a);l&&l.closed;)l=l.parent;if(l&&l.tag){var d;for(s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.EndTagOpen&&d.getTokenEnd()===a)return l.tag+\">\";s=d.scan()}}}return null},e.prototype.convertCompletionList=function(e){return this.doesSupportMarkdown()||e.items.forEach((function(e){e.documentation&&\"string\"!=typeof e.documentation&&(e.documentation={kind:\"plaintext\",value:e.documentation.value})})),e},e.prototype.doesSupportMarkdown=function(){if(!d.isDefined(this.supportsMarkdown)){if(!d.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(n.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return/^\\s*$/.test(e)}function f(e,t,n,a){for(var o=i.createScanner(e,t,n),s=o.scan();s===r.TokenType.Whitespace;)s=o.scan();return s===a}t.HTMLCompletion=p})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHover\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../languageFacts/builtinDataProviders\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/builtinDataProviders\"),o=e(\"../utils/object\"),s=e(\"../languageFacts/dataProvider\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,i){var o=this.convertContents.bind(this),l=this.doesSupportMarkdown(),c=e.offsetAt(t),d=i.findNodeAt(c);if(!d||!d.tag)return null;var h=a.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)}));function u(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideTags().forEach((function(i){if(i.name.toLowerCase()===e.toLowerCase()){var a=n?\"<\"+e+\">\":\"</\"+e+\">\",o=s.generateDocumentation(i,l);o.value=\"```html\\n\"+a+\"\\n```\\n\"+o.value,r={contents:o,range:t}}})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}function p(t,i){for(var a=n.createScanner(e.getText(),i),o=a.scan();o!==r.TokenType.EOS&&(a.getTokenEnd()<c||a.getTokenEnd()===c&&o!==t);)o=a.scan();return o===t&&c<=a.getTokenEnd()?{start:e.positionAt(a.getTokenOffset()),end:e.positionAt(a.getTokenEnd())}:null}if(d.endTagStart&&c>=d.endTagStart){var m=p(r.TokenType.EndTag,d.endTagStart);return m?u(d.tag,m,!1):null}var f=p(r.TokenType.StartTag,d.start);if(f)return u(d.tag,f,!0);var g=p(r.TokenType.AttributeName,d.start);if(g)return function(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideAttributes(e).forEach((function(e){t===e.name&&e.description&&(r={contents:s.generateDocumentation(e,l),range:n})})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}(_=d.tag,e.getText(g),g);var b=p(r.TokenType.AttributeValue,d.start);if(b){var _=d.tag,v=function(e){if(e.length<=1)return e.replace(/['\"]/,\"\");\"'\"!==e[0]&&'\"'!==e[0]||(e=e.slice(1));\"'\"!==e[e.length-1]&&'\"'!==e[e.length-1]||(e=e.slice(0,-1));return e}(e.getText(b)),w=function(t,i){for(var a=n.createScanner(e.getText(),t),o=a.scan(),s=void 0;o!==r.TokenType.EOS&&a.getTokenEnd()<=i;)(o=a.scan())===r.TokenType.AttributeName&&(s=a.getTokenText());return s}(d.start,e.offsetAt(b.start));if(w)return function(e,t,n,i){e=e.toLowerCase();for(var r=function(r){var a=null;if(r.provideValues(e,t).forEach((function(e){n===e.name&&e.description&&(a={contents:s.generateDocumentation(e,l),range:i})})),a)return a.contents=o(a.contents),{value:a}},a=0,c=h;a<c.length;a++){var d=r(c[a]);if(\"object\"==typeof d)return d.value}return null}(_,w,v,b)}return null},e.prototype.convertContents=function(e){if(!this.doesSupportMarkdown()){if(\"string\"==typeof e)return e;if(\"kind\"in e)return{kind:\"plaintext\",value:e.value};if(!Array.isArray(e))return e.value;e.map((function(e){return\"string\"==typeof e?e:e.value}))}return e},e.prototype.doesSupportMarkdown=function(){if(!o.isDefined(this.supportsMarkdown)){if(!o.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(i.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.HTMLHover=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/beautify/beautify\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.js_beautify=function(e,t){return e}})),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=15)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},,,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},,,,,function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},,function(e,t,n){var i=n(16).Beautifier,r=n(17).Options;e.exports=function(e,t){return new i(e,t).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(17).Options,r=n(2).Output,a=n(8).InputScanner,o=new(0,n(13).Directives)(/\\/\\*/,/\\*\\//),s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=/\\s/,d=/(?:\\s|\\n)+/g,h=/\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g,u=/\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;function p(e,t){this._source_text=e||\"\",this._options=new i(t),this._ch=null,this._input=null,this.NESTED_AT_RULE={\"@page\":!0,\"@font-face\":!0,\"@keyframes\":!0,\"@media\":!0,\"@supports\":!0,\"@document\":!0},this.CONDITIONAL_GROUP_RULE={\"@media\":!0,\"@supports\":!0,\"@document\":!0}}p.prototype.eatString=function(e){var t=\"\";for(this._ch=this._input.next();this._ch;){if(t+=this._ch,\"\\\\\"===this._ch)t+=this._input.next();else if(-1!==e.indexOf(this._ch)||\"\\n\"===this._ch)break;this._ch=this._input.next()}return t},p.prototype.eatWhitespace=function(e){for(var t=c.test(this._input.peek()),n=!0;c.test(this._input.peek());)this._ch=this._input.next(),e&&\"\\n\"===this._ch&&(this._options.preserve_newlines||n)&&(n=!1,this._output.add_new_line(!0));return t},p.prototype.foundNestedPseudoClass=function(){for(var e=0,t=1,n=this._input.peek(t);n;){if(\"{\"===n)return!0;if(\"(\"===n)e+=1;else if(\")\"===n){if(0===e)return!1;e-=1}else if(\";\"===n||\"}\"===n)return!1;t++,n=this._input.peek(t)}return!1},p.prototype.print_string=function(e){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(e)},p.prototype.preserveSingleSpace=function(e){e&&(this._output.space_before_token=!0)},p.prototype.indent=function(){this._indentLevel++},p.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===t&&(t=\"\\n\",e&&s.test(e||\"\")&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0];this._output=new r(this._options,n),this._input=new a(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var i,p,m=0,f=!1,g=!1,b=!1,_=!1,v=!1,w=this._ch;i=\"\"!==this._input.read(d),p=w,this._ch=this._input.next(),\"\\\\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),w=this._ch,this._ch;)if(\"/\"===this._ch&&\"*\"===this._input.peek()){this._output.add_new_line(),this._input.back();var y=this._input.read(h),T=o.get_directives(y);T&&\"start\"===T.ignore&&(y+=o.readIgnored(this._input)),this.print_string(y),this.eatWhitespace(!0),this._output.add_new_line()}else if(\"/\"===this._ch&&\"/\"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if(\"@\"===this._ch)if(this.preserveSingleSpace(i),\"{\"===this._input.peek())this.print_string(this._ch+this.eatString(\"}\"));else{this.print_string(this._ch);var k=this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);k.match(/[ :]$/)&&(k=this.eatString(\": \").replace(/\\s$/,\"\"),this.print_string(k),this._output.space_before_token=!0),\"extend\"===(k=k.replace(/\\s$/,\"\"))?_=!0:\"import\"===k&&(v=!0),k in this.NESTED_AT_RULE?(this._nestedLevel+=1,k in this.CONDITIONAL_GROUP_RULE&&(b=!0)):f||0!==m||-1===k.indexOf(\":\")||(g=!0,this.indent())}else\"#\"===this._ch&&\"{\"===this._input.peek()?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(\"}\"))):\"{\"===this._ch?(g&&(g=!1,this.outdent()),this.indent(),this._output.space_before_token=!0,this.print_string(this._ch),b?(b=!1,f=this._indentLevel>this._nestedLevel):f=this._indentLevel>=this._nestedLevel,this._options.newline_between_rules&&f&&this._output.previous_line&&\"{\"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above(\"/\",\",\"),this.eatWhitespace(!0),this._output.add_new_line()):\"}\"===this._ch?(this.outdent(),this._output.add_new_line(),\"{\"===p&&this._output.trim(!0),v=!1,_=!1,g&&(this.outdent(),g=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&\"}\"!==this._input.peek()&&this._output.add_new_line(!0)):\":\"===this._ch?!f&&!b||this._input.lookBack(\"&\")||this.foundNestedPseudoClass()||this._input.lookBack(\"(\")||_||0!==m?(this._input.lookBack(\" \")&&(this._output.space_before_token=!0),\":\"===this._input.peek()?(this._ch=this._input.next(),this.print_string(\"::\")):this.print_string(\":\")):(this.print_string(\":\"),g||(g=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):'\"'===this._ch||\"'\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):\";\"===this._ch?0===m?(g&&(this.outdent(),g=!1),_=!1,v=!1,this.print_string(this._ch),this.eatWhitespace(!0),\"/\"!==this._input.peek()&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):\"(\"===this._ch?this._input.lookBack(\"url\")?(this.print_string(this._ch),this.eatWhitespace(),m++,this.indent(),this._ch=this._input.next(),\")\"===this._ch||'\"'===this._ch||\"'\"===this._ch?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(\")\")),m&&(m--,this.outdent()))):(this.preserveSingleSpace(i),this.print_string(this._ch),this.eatWhitespace(),m++,this.indent()):\")\"===this._ch?(m&&(m--,this.outdent()),this.print_string(this._ch)):\",\"===this._ch?(this.print_string(this._ch),this.eatWhitespace(!0),!this._options.selector_separator_newline||g||0!==m||v?this._output.space_before_token=!0:this._output.add_new_line()):\">\"!==this._ch&&\"+\"!==this._ch&&\"~\"!==this._ch||g||0!==m?\"]\"===this._ch?this.print_string(this._ch):\"[\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch)):\"=\"===this._ch?(this.eatWhitespace(),this.print_string(\"=\"),c.test(this._ch)&&(this._ch=\"\")):\"!\"!==this._ch||this._input.lookBack(\"\\\\\")?(this.preserveSingleSpace(i),this.print_string(this._ch)):(this.print_string(\" \"),this.print_string(this._ch)):this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&c.test(this._ch)&&(this._ch=\"\"));return this._output.get_code(t)},e.exports.Beautifier=p},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"css\"),this.selector_separator_newline=this._get_boolean(\"selector_separator_newline\",!0),this.newline_between_rules=this._get_boolean(\"newline_between_rules\",!0);var t=this._get_boolean(\"space_around_selector_separator\");this.space_around_combinator=this._get_boolean(\"space_around_combinator\")||t}r.prototype=new i,e.exports.Options=r}]);\"function\"==typeof define&&define.amd?define(\"vscode-html-languageservice/beautify/beautify-css\",[],(function(){return{css_beautify:e}})):\"undefined\"!=typeof exports?exports.css_beautify=e:\"undefined\"!=typeof window?window.css_beautify=e:\"undefined\"!=typeof global&&(global.css_beautify=e)}(),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=18)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},function(e,t,n){e.exports.Token=function(e,t,n,i){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||\"\",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}},,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},function(e,t,n){var i=n(8).InputScanner,r=n(3).Token,a=n(10).TokenStream,o=n(11).WhitespacePattern,s={START:\"TK_START\",RAW:\"TK_RAW\",EOF:\"TK_EOF\"},l=function(e,t){this._input=new i(e),this._options=t||{},this.__tokens=null,this._patterns={},this._patterns.whitespace=new o(this._input)};l.prototype.tokenize=function(){var e;this._input.restart(),this.__tokens=new a,this._reset();for(var t=new r(s.START,\"\"),n=null,i=[],o=new a;t.type!==s.EOF;){for(e=this._get_next_token(t,n);this._is_comment(e);)o.add(e),e=this._get_next_token(t,n);o.isEmpty()||(e.comments_before=o,o=new a),e.parent=n,this._is_opening(e)?(i.push(n),n=e):n&&this._is_closing(e,n)&&(e.opened=n,n.closed=e,n=i.pop(),e.parent=n),e.previous=t,t.next=e,this.__tokens.add(e),t=e}return this.__tokens},l.prototype._is_first_token=function(){return this.__tokens.isEmpty()},l.prototype._reset=function(){},l.prototype._get_next_token=function(e,t){this._readWhitespace();var n=this._input.read(/.+/g);return n?this._create_token(s.RAW,n):this._create_token(s.EOF,\"\")},l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return!1},l.prototype._is_closing=function(e,t){return!1},l.prototype._create_token=function(e,t){return new r(e,t,this._patterns.whitespace.newline_count,this._patterns.whitespace.whitespace_before_token)},l.prototype._readWhitespace=function(){return this._patterns.whitespace.read()},e.exports.Tokenizer=l,e.exports.TOKEN=s},function(e,t,n){function i(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}i.prototype.restart=function(){this.__position=0},i.prototype.isEmpty=function(){return 0===this.__tokens_length},i.prototype.hasNext=function(){return this.__position<this.__tokens_length},i.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__tokens[this.__position],this.__position+=1),e},i.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__tokens_length&&(t=this.__tokens[e]),t},i.prototype.add=function(e){this.__parent_token&&(e.parent=this.__parent_token),this.__tokens.push(e),this.__tokens_length+=1},e.exports.TokenStream=i},function(e,t,n){var i=n(12).Pattern;function r(e,t){i.call(this,e,t),t?this._line_regexp=this._input.get_regexp(t._line_regexp):this.__set_whitespace_patterns(\"\",\"\"),this.newline_count=0,this.whitespace_before_token=\"\"}r.prototype=new i,r.prototype.__set_whitespace_patterns=function(e,t){e+=\"\\\\t \",t+=\"\\\\n\\\\r\",this._match_pattern=this._input.get_regexp(\"[\"+e+t+\"]+\",!0),this._newline_regexp=this._input.get_regexp(\"\\\\r\\\\n|[\"+t+\"]\")},r.prototype.read=function(){this.newline_count=0,this.whitespace_before_token=\"\";var e=this._input.read(this._match_pattern);if(\" \"===e)this.whitespace_before_token=\" \";else if(e){var t=this.__split(this._newline_regexp,e);this.newline_count=t.length-1,this.whitespace_before_token=t[this.newline_count]}return e},r.prototype.matching=function(e,t){var n=this._create();return n.__set_whitespace_patterns(e,t),n._update(),n},r.prototype._create=function(){return new r(this._input,this)},r.prototype.__split=function(e,t){e.lastIndex=0;for(var n=0,i=[],r=e.exec(t);r;)i.push(t.substring(n,r.index)),n=r.index+r[0].length,r=e.exec(t);return n<t.length?i.push(t.substring(n,t.length)):i.push(\"\"),i},e.exports.WhitespacePattern=r},function(e,t,n){function i(e,t){this._input=e,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,t&&(this._starting_pattern=this._input.get_regexp(t._starting_pattern,!0),this._match_pattern=this._input.get_regexp(t._match_pattern,!0),this._until_pattern=this._input.get_regexp(t._until_pattern),this._until_after=t._until_after)}i.prototype.read=function(){var e=this._input.read(this._starting_pattern);return this._starting_pattern&&!e||(e+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),e},i.prototype.read_match=function(){return this._input.match(this._match_pattern)},i.prototype.until_after=function(e){var t=this._create();return t._until_after=!0,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.until=function(e){var t=this._create();return t._until_after=!1,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.starting_with=function(e){var t=this._create();return t._starting_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype.matching=function(e){var t=this._create();return t._match_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype._create=function(){return new i(this._input,this)},i.prototype._update=function(){},e.exports.Pattern=i},function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},function(e,t,n){var i=n(12).Pattern,r={django:!1,erb:!1,handlebars:!1,php:!1};function a(e,t){i.call(this,e,t),this.__template_pattern=null,this._disabled=Object.assign({},r),this._excluded=Object.assign({},r),t&&(this.__template_pattern=this._input.get_regexp(t.__template_pattern),this._excluded=Object.assign(this._excluded,t._excluded),this._disabled=Object.assign(this._disabled,t._disabled));var n=new i(e);this.__patterns={handlebars_comment:n.starting_with(/{{!--/).until_after(/--}}/),handlebars_unescaped:n.starting_with(/{{{/).until_after(/}}}/),handlebars:n.starting_with(/{{/).until_after(/}}/),php:n.starting_with(/<\\?(?:[=]|php)/).until_after(/\\?>/),erb:n.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:n.starting_with(/{%/).until_after(/%}/),django_value:n.starting_with(/{{/).until_after(/}}/),django_comment:n.starting_with(/{#/).until_after(/#}/)}}a.prototype=new i,a.prototype._create=function(){return new a(this._input,this)},a.prototype._update=function(){this.__set_templated_pattern()},a.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},a.prototype.read_options=function(e){var t=this._create();for(var n in r)t._disabled[n]=-1===e.templating.indexOf(n);return t._update(),t},a.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},a.prototype.read=function(){var e=\"\";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var t=this._read_template();t;)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},a.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp(\"(?:\"+e.join(\"|\")+\")\")},a.prototype._read_template=function(){var e=\"\",t=this._input.peek();if(\"<\"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||\"?\"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||\"%\"!==n||(e=e||this.__patterns.erb.read())}else\"{\"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=(e=(e=e||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=(e=e||this.__patterns.django_comment.read())||this.__patterns.django.read())));return e},e.exports.TemplatablePattern=a},,,,function(e,t,n){var i=n(19).Beautifier,r=n(20).Options;e.exports=function(e,t,n,r){return new i(e,t,n,r).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(20).Options,r=n(2).Output,a=n(21).Tokenizer,o=n(21).TOKEN,s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=function(e,t){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new r(e,t)};c.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},c.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},c.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},c.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},c.prototype.print_preserved_newlines=function(e){var t=0;e.type!==o.TEXT&&e.previous.type!==o.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines<this.max_preserve_newlines+1?e.newlines:this.max_preserve_newlines+1);for(var n=0;n<t;n++)this.print_newline(n>0);return 0!==t},c.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},c.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},c.prototype.print_newline=function(e){this._output.add_new_line(e)},c.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},c.prototype.indent=function(){this.indent_level++},c.prototype.get_full_indent=function(e){return(e=this.indent_level+(e||0))<1?\"\":this._output.get_indent_string(e)};var d=function(e,t){var n=null,i=null;return t.closed?(\"script\"===e?n=\"text/javascript\":\"style\"===e&&(n=\"text/css\"),(n=function(e){for(var t=null,n=e.next;n.type!==o.EOF&&e.closed!==n;){if(n.type===o.ATTRIBUTE&&\"type\"===n.text){n.next&&n.next.type===o.EQUALS&&n.next.next&&n.next.next.type===o.VALUE&&(t=n.next.next.text);break}n=n.next}return t}(t)||n).search(\"text/css\")>-1?i=\"css\":n.search(/(text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect)/)>-1?i=\"javascript\":n.search(/(text|application|dojo)\\/(x-)?(html)/)>-1?i=\"html\":n.search(/test\\/null/)>-1&&(i=\"null\"),i):null};function h(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:\"\",this.indent_level=n||0,this.parser_token=t||null}function p(e){this._printer=e,this._current_frame=null}function m(e,t,n,r){this._source_text=e||\"\",t=t||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var a=new i(t,\"html\");this._options=a,this._is_wrap_attributes_force=\"force\"===this._options.wrap_attributes.substr(0,\"force\".length),this._is_wrap_attributes_force_expand_multiline=\"force-expand-multiline\"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned=\"force-aligned\"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple=\"aligned-multiple\"===this._options.wrap_attributes,this._is_wrap_attributes_preserve=\"preserve\"===this._options.wrap_attributes.substr(0,\"preserve\".length),this._is_wrap_attributes_preserve_aligned=\"preserve-aligned\"===this._options.wrap_attributes}p.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},p.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},p.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},p.prototype._get_frame=function(e,t){for(var n=this._current_frame;n&&-1===e.indexOf(n.tag);){if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},p.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},p.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},m.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===this._options.eol&&(t=\"\\n\",e&&s.test(e)&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0],i={text:\"\",type:\"\"},r=new f,d=new c(this._options,n),h=new a(e,this._options).tokenize();this._tag_stack=new p(d);for(var u=null,m=h.next();m.type!==o.EOF;)m.type===o.TAG_OPEN||m.type===o.COMMENT?r=u=this._handle_tag_open(d,m,r,i):m.type===o.ATTRIBUTE||m.type===o.EQUALS||m.type===o.VALUE||m.type===o.TEXT&&!r.tag_complete?u=this._handle_inside_tag(d,m,r,h):m.type===o.TAG_CLOSE?u=this._handle_tag_close(d,m,r):m.type===o.TEXT?u=this._handle_text(d,m,r):d.add_raw_token(m),i=u,m=h.next();return d._output.get_code(t)},m.prototype._handle_tag_close=function(e,t,n){var i={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):(\"<\"===n.tag_start_char&&(e.set_space_before_token(\"/\"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),i},m.prototype._handle_inside_tag=function(e,t,n,i){var r=n.has_wrapped_attrs,a={text:t.text,type:t.type};if(e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted)e.add_raw_token(t);else if(\"{\"===n.tag_start_char&&t.type===o.TEXT)e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t);else{if(t.type===o.ATTRIBUTE?(e.set_space_before_token(!0),n.attr_count+=1):t.type===o.EQUALS?e.set_space_before_token(!1):t.type===o.VALUE&&t.previous.type===o.EQUALS&&e.set_space_before_token(!1),t.type===o.ATTRIBUTE&&\"<\"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),r=r||0!==t.newlines),this._is_wrap_attributes_force)){var s=n.attr_count>1;if(this._is_wrap_attributes_force_expand_multiline&&1===n.attr_count){var l,c=!0,d=0;do{if((l=i.peek(d)).type===o.ATTRIBUTE){c=!1;break}d+=1}while(d<4&&l.type!==o.EOF&&l.type!==o.TAG_CLOSE);s=!c}s&&(e.print_newline(!1),r=!0)}e.print_token(t),r=r||e.previous_token_wrapped(),n.has_wrapped_attrs=r}return a},m.prototype._handle_text=function(e,t,n){var i={text:t.text,type:\"TK_CONTENT\"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),i},m.prototype._print_custom_beatifier_text=function(e,t,n){var i=this;if(\"\"!==t.text){var r,a=t.text,o=1,s=\"\",l=\"\";\"javascript\"===n.custom_beautifier_name&&\"function\"==typeof this._js_beautify?r=this._js_beautify:\"css\"===n.custom_beautifier_name&&\"function\"==typeof this._css_beautify?r=this._css_beautify:\"html\"===n.custom_beautifier_name&&(r=function(e,t){return new m(e,t,i._js_beautify,i._css_beautify).beautify()}),\"keep\"===this._options.indent_scripts?o=0:\"separate\"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(a=a.replace(/\\n[ \\t]*$/,\"\"),\"html\"!==n.custom_beautifier_name&&\"<\"===a[0]&&a.match(/^(<!--|<!\\[CDATA\\[)/)){var d=/^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(a);if(!d)return void e.add_raw_token(t);s=c+d[1]+\"\\n\",a=d[4],d[5]&&(l=c+d[5]),a=a.replace(/\\n[ \\t]*$/,\"\"),(d[2]||-1!==d[3].indexOf(\"\\n\"))&&(d=d[3].match(/[ \\t]+$/))&&(t.whitespace_before=d[0])}if(a)if(r){var h=function(){this.eol=\"\\n\"};h.prototype=this._options.raw_options,a=r(c+a,new h)}else{var u=t.whitespace_before;u&&(a=a.replace(new RegExp(\"\\n(\"+u+\")?\",\"g\"),\"\\n\")),a=c+a.replace(/\\n/g,\"\\n\"+c)}s&&(a=a?s+a+\"\\n\"+l:s+l),e.print_newline(!1),a&&(t.text=a,t.whitespace_before=\"\",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},m.prototype._handle_tag_open=function(e,t,n,i){var r=this._get_tag_open_token(t);return(n.is_unformatted||n.is_content_unformatted)&&t.type===o.TAG_OPEN&&0===t.text.indexOf(\"</\")?e.add_raw_token(t):(e.traverse_whitespace(t),this._set_tag_position(e,t,r,n,i),r.is_inline_element||e.set_wrap_point(),e.print_token(t)),(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(r.alignment_size=t.text.length+1),r.tag_complete||r.is_unformatted||(e.alignment_size=r.alignment_size),r};var f=function(e,t){var n;(this.parent=e||null,this.text=\"\",this.type=\"TK_TAG_OPEN\",this.tag_name=\"\",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char=\"\",this.tag_check=\"\",t)?(this.tag_start_char=t.text[0],this.text=t.text,\"<\"===this.tag_start_char?(n=t.text.match(/^<([^\\s>]*)/),this.tag_check=n?n[1]:\"\"):(n=t.text.match(/^{{[#\\^]?([^\\s}]+)/),this.tag_check=n?n[1]:\"\"),this.tag_check=this.tag_check.toLowerCase(),t.type===o.COMMENT&&(this.tag_complete=!0),this.is_start_tag=\"/\"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&\"/>\"===t.closed.text,this.is_end_tag=this.is_end_tag||\"{\"===this.tag_start_char&&(this.text.length<3||/[^#\\^]/.test(this.text.charAt(2)))):this.tag_complete=!0};m.prototype._get_tag_open_token=function(e){var t=new f(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||h(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&h(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&h(t.tag_check,this._options.content_unformatted),t.is_inline_element=h(t.tag_name,this._options.inline)||\"{\"===t.tag_start_char,t},m.prototype._set_tag_position=function(e,t,n,i,r){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1))),this._tag_stack.record_tag(n),\"script\"!==n.tag_name&&\"style\"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=d(n.tag_check,t)))),h(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if(\"{\"===n.tag_start_char&&\"else\"===n.tag_check)this._tag_stack.indent_to_tag([\"if\",\"unless\",\"each\"]),n.indent_content=!0,e.current_line_has_match(/{{#if/)||e.print_newline(!1);\"!--\"===n.tag_name&&r.type===o.TAG_CLOSE&&i.is_end_tag&&-1===n.text.indexOf(\"\\n\")||n.is_inline_element||n.is_unformatted||e.print_newline(!1)}else n.is_unformatted||n.is_content_unformatted?n.is_inline_element||n.is_unformatted||e.print_newline(!1):n.is_end_tag?(n.start_tag_token&&n.start_tag_token.multiline_content||!(n.is_inline_element||i.is_inline_element||r.type===o.TAG_CLOSE&&n.start_tag_token===i||\"TK_CONTENT\"===r.type))&&e.print_newline(!1):(n.indent_content=!n.custom_beautifier_name,\"<\"===n.tag_start_char&&(\"html\"===n.tag_name?n.indent_content=this._options.indent_inner_html:\"head\"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:\"body\"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||\"TK_CONTENT\"===r.type||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1)))},m.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent)return\"body\"===e.tag_name?t=t||this._tag_stack.try_pop(\"head\"):\"li\"===e.tag_name?t=t||this._tag_stack.try_pop(\"li\",[\"ol\",\"ul\"]):\"dd\"===e.tag_name||\"dt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"dt\",[\"dl\"]))||this._tag_stack.try_pop(\"dd\",[\"dl\"]):\"rp\"===e.tag_name||\"rt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"rt\",[\"ruby\",\"rtc\"]))||this._tag_stack.try_pop(\"rp\",[\"ruby\",\"rtc\"]):\"optgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"optgroup\",[\"select\"]):\"option\"===e.tag_name?t=t||this._tag_stack.try_pop(\"option\",[\"select\",\"datalist\",\"optgroup\"]):\"colgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]):\"thead\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]):\"tbody\"===e.tag_name||\"tfoot\"===e.tag_name?t=(t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"thead\",[\"table\"]))||this._tag_stack.try_pop(\"tbody\",[\"table\"]):\"tr\"===e.tag_name?t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"tr\",[\"table\",\"thead\",\"tbody\",\"tfoot\"]):\"th\"!==e.tag_name&&\"td\"!==e.tag_name||(t=(t=t||this._tag_stack.try_pop(\"td\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"]))||this._tag_stack.try_pop(\"th\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"])),e.parent=this._tag_stack.get_parser_token(),t},e.exports.Beautifier=m},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"html\"),1===this.templating.length&&\"auto\"===this.templating[0]&&(this.templating=[\"django\",\"erb\",\"handlebars\",\"php\"]),this.indent_inner_html=this._get_boolean(\"indent_inner_html\"),this.indent_body_inner_html=this._get_boolean(\"indent_body_inner_html\",!0),this.indent_head_inner_html=this._get_boolean(\"indent_head_inner_html\",!0),this.indent_handlebars=this._get_boolean(\"indent_handlebars\",!0),this.wrap_attributes=this._get_selection(\"wrap_attributes\",[\"auto\",\"force\",\"force-aligned\",\"force-expand-multiline\",\"aligned-multiple\",\"preserve\",\"preserve-aligned\"]),this.wrap_attributes_indent_size=this._get_number(\"wrap_attributes_indent_size\",this.indent_size),this.extra_liners=this._get_array(\"extra_liners\",[\"head\",\"body\",\"/html\"]),this.inline=this._get_array(\"inline\",[\"a\",\"abbr\",\"area\",\"audio\",\"b\",\"bdi\",\"bdo\",\"br\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"map\",\"mark\",\"math\",\"meter\",\"noscript\",\"object\",\"output\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"select\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"var\",\"video\",\"wbr\",\"text\",\"acronym\",\"big\",\"strike\",\"tt\"]),this.void_elements=this._get_array(\"void_elements\",[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"!doctype\",\"?xml\",\"basefont\",\"isindex\"]),this.unformatted=this._get_array(\"unformatted\",[]),this.content_unformatted=this._get_array(\"content_unformatted\",[\"pre\",\"textarea\"]),this.unformatted_content_delimiter=this._get_characters(\"unformatted_content_delimiter\"),this.indent_scripts=this._get_selection(\"indent_scripts\",[\"normal\",\"keep\",\"separate\"])}r.prototype=new i,e.exports.Options=r},function(e,t,n){var i=n(9).Tokenizer,r=n(9).TOKEN,a=n(13).Directives,o=n(14).TemplatablePattern,s=n(12).Pattern,l={TAG_OPEN:\"TK_TAG_OPEN\",TAG_CLOSE:\"TK_TAG_CLOSE\",ATTRIBUTE:\"TK_ATTRIBUTE\",EQUALS:\"TK_EQUALS\",VALUE:\"TK_VALUE\",COMMENT:\"TK_COMMENT\",TEXT:\"TK_TEXT\",UNKNOWN:\"TK_UNKNOWN\",START:r.START,RAW:r.RAW,EOF:r.EOF},c=new a(/<\\!--/,/-->/),d=function(e,t){i.call(this,e,t),this._current_tag_name=\"\";var n=new o(this._input).read_options(this._options),r=new s(this._input);if(this.__patterns={word:n.until(/[\\n\\r\\t <]/),single_quote:n.until_after(/'/),double_quote:n.until_after(/\"/),attribute:n.until(/[\\n\\r\\t =\\/>]/),element_name:n.until(/[\\n\\r\\t >\\/]/),handlebars_comment:r.starting_with(/{{!--/).until_after(/--}}/),handlebars:r.starting_with(/{{/).until_after(/}}/),handlebars_open:r.until(/[\\n\\r\\t }]/),handlebars_raw_close:r.until(/}}/),comment:r.starting_with(/<!--/).until_after(/-->/),cdata:r.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),conditional_comment:r.starting_with(/<!\\[/).until_after(/]>/),processing:r.starting_with(/<\\?/).until_after(/\\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude(\"handlebars\")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=r.matching(a).until_after(a)}};(d.prototype=new i)._is_comment=function(e){return!1},d.prototype._is_opening=function(e){return e.type===l.TAG_OPEN},d.prototype._is_closing=function(e,t){return e.type===l.TAG_CLOSE&&t&&((\">\"===e.text||\"/>\"===e.text)&&\"<\"===t.text[0]||\"}}\"===e.text&&\"{\"===t.text[0]&&\"{\"===t.text[1])},d.prototype._reset=function(){this._current_tag_name=\"\"},d.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(l.EOF,\"\"):n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,t))||this._read_attribute(i,e,t))||this._read_raw_content(i,e,t))||this._read_close(i,t))||this._read_content_word(i))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,t))||this._create_token(l.UNKNOWN,this._input.next())},d.prototype._read_comment_or_cdata=function(e){var t=null,n=null,i=null;\"<\"===e&&(\"!\"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=c.get_directives(n))&&\"start\"===i.ignore&&(n+=c.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=i));return t},d.prototype._read_processing=function(e){var t=null,n=null;if(\"<\"===e){var i=this._input.peek(1);\"!\"!==i&&\"?\"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=null)}return t},d.prototype._read_open=function(e,t){var n=null,i=null;return t||\"<\"===e&&(n=this._input.next(),\"/\"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(l.TAG_OPEN,n)),i},d.prototype._read_open_handlebars=function(e,t){var n=null,i=null;return t||this._options.indent_handlebars&&\"{\"===e&&\"{\"===this._input.peek(1)&&(\"!\"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(l.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(l.TAG_OPEN,n))),i},d.prototype._read_close=function(e,t){var n=null,i=null;return t&&(\"<\"===t.text[0]&&(\">\"===e||\"/\"===e&&\">\"===this._input.peek(1))?(n=this._input.next(),\"/\"===e&&(n+=this._input.next()),i=this._create_token(l.TAG_CLOSE,n)):\"{\"===t.text[0]&&\"}\"===e&&\"}\"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(l.TAG_CLOSE,\"}}\"))),i},d.prototype._read_attribute=function(e,t,n){var i=null,r=\"\";if(n&&\"<\"===n.text[0])if(\"=\"===e)i=this._create_token(l.EQUALS,this._input.next());else if('\"'===e||\"'\"===e){var a=this._input.next();a+='\"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(l.VALUE,a)}else(r=this.__patterns.attribute.read())&&(i=t.type===l.EQUALS?this._create_token(l.VALUE,r):this._create_token(l.ATTRIBUTE,r));return i},d.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},d.prototype._read_raw_content=function(e,t,n){var i=\"\";if(n&&\"{\"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(t.type===l.TAG_CLOSE&&\"<\"===t.opened.text[0]){var r=t.opened.text.substr(1).toLowerCase();if(\"script\"===r||\"style\"===r){var a=this._read_comment_or_cdata(e);if(a)return a.type=l.TEXT,a;i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\")))}return i?this._create_token(l.TEXT,i):null},d.prototype._read_content_word=function(e){var t=\"\";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(l.TEXT,t)},e.exports.Tokenizer=d,e.exports.TOKEN=l}]);if(\"function\"==typeof define&&define.amd)define(\"vscode-html-languageservice/beautify/beautify-html\",[\"require\",\"./beautify\",\"./beautify-css\"],(function(t){var n=t(\"./beautify\"),i=t(\"./beautify-css\");return{html_beautify:function(t,r){return e(t,r,n.js_beautify,i.css_beautify)}}}));else if(\"undefined\"!=typeof exports){var t=require(\"./beautify.js\"),n=require(\"./beautify-css.js\");exports.html_beautify=function(i,r){return e(i,r,t.js_beautify,n.css_beautify)}}else\"undefined\"!=typeof window?window.html_beautify=function(t,n){return e(t,n,window.js_beautify,window.css_beautify)}:\"undefined\"!=typeof global&&(global.html_beautify=function(t,n){return e(t,n,global.js_beautify,global.css_beautify)})}(),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFormatter\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../beautify/beautify-html\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../beautify/beautify-html\"),r=e(\"../utils/strings\");function a(e,t,n){if(e&&e.hasOwnProperty(t)){var i=e[t];if(null!==i)return i}return n}function o(e,t,n){var i=a(e,t,null);return\"string\"==typeof i?i.length>0?i.split(\",\").map((function(e){return e.trim().toLowerCase()})):[]:n}function s(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}function l(e,t){return-1!==\" \\t\".indexOf(e.charAt(t))}t.format=function(e,t,c){var d=e.getText(),h=!0,u=0,p=c.tabSize||4;if(t){for(var m=e.offsetAt(t.start),f=m;f>0&&l(d,f-1);)f--;0===f||s(d,f-1)?m=f:f<m&&(m=f+1);for(var g=e.offsetAt(t.end),b=g;b<d.length&&l(d,b);)b++;(b===d.length||s(d,b))&&(g=b),t=n.Range.create(e.positionAt(m),e.positionAt(g));var _=d.substring(0,m);if(new RegExp(/.*[<][^>]*$/).test(_))return[{range:t,newText:d=d.substring(m,g)}];if(h=g===d.length,d=d.substring(m,g),0!==m){var v=e.offsetAt(n.Position.create(t.start.line,0));u=function(e,t,n){var i=t,r=0,a=n.tabSize||4;for(;i<e.length;){var o=e.charAt(i);if(\" \"===o)r++;else{if(\"\\t\"!==o)break;r+=a}i++}return Math.floor(r/a)}(e.getText(),v,c)}}else t=n.Range.create(n.Position.create(0,0),e.positionAt(d.length));var w={indent_size:p,indent_char:c.insertSpaces?\" \":\"\\t\",indent_empty_lines:a(c,\"indentEmptyLines\",!1),wrap_line_length:a(c,\"wrapLineLength\",120),unformatted:o(c,\"unformatted\",void 0),content_unformatted:o(c,\"contentUnformatted\",void 0),indent_inner_html:a(c,\"indentInnerHtml\",!1),preserve_newlines:a(c,\"preserveNewLines\",!0),max_preserve_newlines:a(c,\"maxPreserveNewLines\",32786),indent_handlebars:a(c,\"indentHandlebars\",!1),end_with_newline:h&&a(c,\"endWithNewline\",!1),extra_liners:o(c,\"extraLiners\",void 0),wrap_attributes:a(c,\"wrapAttributes\",\"auto\"),wrap_attributes_indent_size:a(c,\"wrapAttributesIndentSize\",void 0),eol:\"\\n\"},y=i.html_beautify(d.replace(/^\\s+/,\"\"),w);if(u>0){var T=c.insertSpaces?r.repeat(\" \",p*u):r.repeat(\"\\t\",u);y=y.split(\"\\n\").join(\"\\n\"+T),0===t.start.character&&(y=T+y)}return[{range:t,newText:y}]}}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)i=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var r=navigator.userAgent;i=r.indexOf(\"Windows\")>=0}var a=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,i,r,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=i||\"\",this.fragment=r||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!a.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,a=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===i?i=this.path:null===i&&(i=\"\"),void 0===r?r=this.query:null===r&&(r=\"\"),void 0===a?a=this.fragment:null===a&&(a=\"\"),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&a===this.fragment?this:new u(t,n,i,r,a)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new u(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new u(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(i&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new u(\"file\",t,e,\"\",\"\")},e.from=function(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new u(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=d;var h=i?1:void 0,u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function m(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var a=e.charCodeAt(r);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var o=p[a];void 0!==o?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=o):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=p[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,i&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:m,i=\"\",r=e.scheme,a=e.authority,o=e.path,s=e.query,c=e.fragment;if(r&&(i+=r,i+=\":\"),(a||\"file\"===r)&&(i+=l,i+=l),a){var d=a.indexOf(\"@\");if(-1!==d){var h=a.substr(0,d);a=a.substr(d+1),-1===(d=h.indexOf(\":\"))?i+=n(h,!1):(i+=n(h.substr(0,d),!1),i+=\":\",i+=n(h.substr(d+1),!1)),i+=\"@\"}-1===(d=(a=a.toLowerCase()).indexOf(\":\"))?i+=n(a,!1):(i+=n(a.substr(0,d),!1),i+=a.substr(d))}if(o){if(o.length>=3&&47===o.charCodeAt(0)&&58===o.charCodeAt(2))(u=o.charCodeAt(1))>=65&&u<=90&&(o=\"/\"+String.fromCharCode(u+32)+\":\"+o.substr(3));else if(o.length>=2&&58===o.charCodeAt(1)){var u;(u=o.charCodeAt(0))>=65&&u<=90&&(o=String.fromCharCode(u+32)+\":\"+o.substr(2))}i+=n(o,!0)}return s&&(i+=\"?\",i+=n(s,!1)),c&&(i+=\"#\",i+=t?c:m(c,!1)),i}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlLinks\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../utils/strings\",\"vscode-uri\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../utils/strings\"),a=e(\"vscode-uri\"),o=e(\"../htmlLanguageTypes\");function s(e){var t=e[0];return t!==e[e.length-1]||\"'\"!==t&&'\"'!==t||(e=e.substr(1,e.length-2)),e}function l(e,t,n,o,l,c){var d=s(n);if(h=d,u=e.languageId,h.length&&(\"handlebars\"!==u||!/{{.*}}/.test(h))&&/\\b(w[\\w\\d+.-]*:\\/\\/)?[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|\\/?))/.test(h)){var h,u;d.length<n.length&&(o++,l--);var p=function(e,t,n,i){if(!/^\\s*javascript\\:/i.test(t)&&!/[\\n\\r]/.test(t))return t=t.replace(/^\\s*/g,\"\"),/^https?:\\/\\//i.test(t)||/^file:\\/\\//i.test(t)?t:/^\\#/i.test(t)?e+t:/^\\/\\//i.test(t)?(r.startsWith(e,\"https://\")?\"https\":\"http\")+\":\"+t.replace(/^\\s*/g,\"\"):n?n.resolveReference(t,i||e):t}(e.uri,d,t,c);if(p&&function(e){try{return a.URI.parse(e),!0}catch(e){return!1}}(p))return{range:i.Range.create(e.positionAt(o),e.positionAt(l)),target:p}}}t.findDocumentLinks=function(e,t){for(var i=[],a=n.createScanner(e.getText(),0),c=a.scan(),d=void 0,h=!1,u=void 0,p={};c!==o.TokenType.EOS;){switch(c){case o.TokenType.StartTag:if(!u)h=\"base\"===a.getTokenText().toLowerCase();break;case o.TokenType.AttributeName:d=a.getTokenText().toLowerCase();break;case o.TokenType.AttributeValue:if(\"src\"===d||\"href\"===d){var m=a.getTokenText();if(!h)(b=l(e,t,m,a.getTokenOffset(),a.getTokenEnd(),u))&&i.push(b);h&&void 0===u&&(u=s(m))&&t&&(u=t.resolveReference(u,e.uri)),h=!1,d=void 0}else if(\"id\"===d){p[s(a.getTokenText())]=a.getTokenOffset()}}c=a.scan()}for(var f=0,g=i;f<g.length;f++){var b=g[f],_=e.uri+\"#\";if(b.target&&r.startsWith(b.target,_)){var v=p[b.target.substr(_.length)];if(void 0!==v){var w=e.positionAt(v);b.target=\"\"+_+(w.line+1)+\",\"+(w.character+1)}}}return i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHighlighting\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\");function a(e,t){return e.line<t.line||e.line===t.line&&e.character<=t.character}function o(e,t){return a(e.start,t)&&a(t,e.end)}function s(e,t,i){for(var a=n.createScanner(t.getText(),i),o=a.scan();o!==r.TokenType.EOS&&o!==e;)o=a.scan();return o!==r.TokenType.EOS?{start:t.positionAt(a.getTokenOffset()),end:t.positionAt(a.getTokenEnd())}:null}t.findDocumentHighlights=function(e,t,n){var a=e.offsetAt(t),l=n.findNodeAt(a);if(!l.tag)return[];var c=[],d=s(r.TokenType.StartTag,e,l.start),h=\"number\"==typeof l.endTagStart&&s(r.TokenType.EndTag,e,l.endTagStart);return(d&&o(d,t)||h&&o(h,t))&&(d&&c.push({kind:i.DocumentHighlightKind.Read,range:d}),h&&c.push({kind:i.DocumentHighlightKind.Read,range:h})),c}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSymbolsProvider\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");t.findDocumentSymbols=function(e,t){var i=[];return t.roots.forEach((function(t){!function e(t,i,r,a){var o=function(e){var t=e.tag;if(e.attributes){var n=e.attributes.id,i=e.attributes.class;n&&(t+=\"#\"+n.replace(/[\\\"\\']/g,\"\")),i&&(t+=i.replace(/[\\\"\\']/g,\"\").split(/\\s+/).map((function(e){return\".\"+e})).join(\"\"))}return t||\"?\"}(i),s=n.Location.create(t.uri,n.Range.create(t.positionAt(i.start),t.positionAt(i.end))),l={name:o,location:s,containerName:r,kind:n.SymbolKind.Field};a.push(l),i.children.forEach((function(n){e(t,n,o,a)}))}(e,t,\"\",i)})),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlRename\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.doRename=function(e,t,n,i){var r,a=e.offsetAt(t),o=i.findNodeAt(a);if(!o.tag)return null;if(!function(e,t,n){if(e.endTagStart&&e.endTagStart+\"</\".length<=t&&t<=e.endTagStart+\"</\".length+n.length)return!0;return e.start+\"<\".length<=t&&t<=e.start+\"<\".length+n.length}(o,a,o.tag))return null;var s=[],l={start:e.positionAt(o.start+\"<\".length),end:e.positionAt(o.start+\"<\".length+o.tag.length)};if(s.push({range:l,newText:n}),o.endTagStart){var c={start:e.positionAt(o.endTagStart+\"</\".length),end:e.positionAt(o.endTagStart+\"</\".length+o.tag.length)};s.push({range:c,newText:n})}return{changes:((r={})[e.uri.toString()]=s,r)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlMatchingTagPosition\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findMatchingTagPosition=function(e,t,n){var i=e.offsetAt(t),r=n.findNodeAt(i);if(!r.tag)return null;if(!r.endTagStart)return null;if(r.start+\"<\".length<=i&&i<=r.start+\"<\".length+r.tag.length){var a=i-\"<\".length-r.start+r.endTagStart+\"</\".length;return e.positionAt(a)}if(r.endTagStart+\"</\".length<=i&&i<=r.endTagStart+\"</\".length+r.tag.length){a=i-\"</\".length-r.endTagStart+r.start+\"<\".length;return e.positionAt(a)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFolding\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../parser/htmlScanner\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../htmlLanguageTypes\"),r=e(\"../parser/htmlScanner\"),a=e(\"../languageFacts/fact\");t.getFoldingRanges=function(e,t){var o=r.createScanner(e.getText()),s=o.scan(),l=[],c=[],d=null,h=-1;function u(e){l.push(e),h=e.startLine}for(;s!==i.TokenType.EOS;){switch(s){case i.TokenType.StartTag:var p=o.getTokenText(),m=e.positionAt(o.getTokenOffset()).line;c.push({startLine:m,tagName:p}),d=p;break;case i.TokenType.EndTag:d=o.getTokenText();break;case i.TokenType.StartTagClose:if(!d||!a.isVoidElement(d))break;case i.TokenType.EndTagClose:case i.TokenType.StartTagSelfClose:for(var f=c.length-1;f>=0&&c[f].tagName!==d;)f--;if(f>=0){var g=c[f];c.length=f,(_=e.positionAt(o.getTokenOffset()).line-1)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_})}break;case i.TokenType.Comment:m=e.positionAt(o.getTokenOffset()).line;var b=o.getTokenText().match(/^\\s*#(region\\b)|(endregion\\b)/);if(b)if(b[1])c.push({startLine:m,tagName:\"\"});else{for(f=c.length-1;f>=0&&c[f].tagName.length;)f--;if(f>=0){var _;g=c[f];c.length=f,(_=m)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Region})}}else m<(_=e.positionAt(o.getTokenOffset()+o.getTokenLength()).line)&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Comment})}s=o.scan()}var v=t&&t.rangeLimit||Number.MAX_VALUE;return l.length>v?function(e,t){e=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n}));for(var n=void 0,i=[],r=[],a=[],o=function(e,t){r[e]=t,t<30&&(a[t]=(a[t]||0)+1)},s=0;s<e.length;s++){var l=e[s];if(n){if(l.startLine>n.startLine)if(l.endLine<=n.endLine)i.push(n),n=l,o(s,i.length);else if(l.startLine>n.endLine){do{n=i.pop()}while(n&&l.startLine>n.endLine);n&&i.push(n),n=l,o(s,i.length)}}else n=l,o(s,0)}var c=0,d=0;for(s=0;s<a.length;s++){var h=a[s];if(h){if(h+c>t){d=s;break}c+=h}}var u=[];for(s=0;s<e.length;s++){var p=r[s];\"number\"==typeof p&&(p<d||p===d&&c++<t)&&u.push(e[s])}return u}(l,v):l}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSelectionRange\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../parser/htmlParser\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../parser/htmlParser\"),a=e(\"../htmlLanguageTypes\");function o(e,t,r){for(var o=n.Range.create(e.positionAt(t.start),e.positionAt(t.end)),s=e.getText(o),l=r-t.start,c=i.createScanner(s),d=c.scan(),h=t.start,u=[],p=!1,m=-1;d!==a.TokenType.EOS;){switch(d){case a.TokenType.AttributeName:if(l<c.getTokenOffset()){p=!1;break}l<=c.getTokenEnd()&&u.unshift([c.getTokenOffset(),c.getTokenEnd()]),p=!0,m=c.getTokenOffset();break;case a.TokenType.AttributeValue:if(!p)break;var f=c.getTokenText();if(l<c.getTokenOffset()){u.push([m,c.getTokenEnd()]);break}l>=c.getTokenOffset()&&l<=c.getTokenEnd()&&(u.unshift([c.getTokenOffset(),c.getTokenEnd()]),('\"'===f[0]&&'\"'===f[f.length-1]||\"'\"===f[0]&&\"'\"===f[f.length-1])&&l>=c.getTokenOffset()+1&&l<=c.getTokenEnd()-1&&u.unshift([c.getTokenOffset()+1,c.getTokenEnd()-1]),u.push([m,c.getTokenEnd()]))}d=c.scan()}return u.map((function(e){return[e[0]+h,e[1]+h]}))}t.getSelectionRanges=function(e,t){return t.map((function(t){for(var i=function(e,t){var i=r.parse(e.getText()),a=e.offsetAt(t),s=i.findNodeAt(a),l=function(e){var t=e,n=[];for(;t.parent;)t=t.parent,(i=t,i.startTagEnd&&i.endTagStart&&i.startTagEnd<i.endTagStart?[[i.startTagEnd,i.endTagStart],[i.start,i.end]]:[[i.start,i.end]]).forEach((function(e){return n.push(e)}));var i;return n}(s);if(s.startTagEnd&&!s.endTagStart){if(s.startTagEnd!==s.end)return[[s.start,s.end]];var c=n.Range.create(e.positionAt(s.startTagEnd-2),e.positionAt(s.startTagEnd));\"/>\"===e.getText(c)?l.unshift([s.start+1,s.startTagEnd-2]):l.unshift([s.start+1,s.startTagEnd-1]);var d=o(e,s,a);return l=d.concat(l)}if(!s.startTagEnd||!s.endTagStart)return l;if(l.unshift([s.start,s.end]),s.start<a&&a<s.startTagEnd){l.unshift([s.start+1,s.startTagEnd-1]);d=o(e,s,a);return l=d.concat(l)}return s.startTagEnd<=a&&a<=s.endTagStart?(l.unshift([s.startTagEnd,s.endTagStart]),l):(a>=s.endTagStart+2&&l.unshift([s.endTagStart+2,s.end-1]),l)}(e,t),a=void 0,s=void 0,l=i.length-1;l>=0;l--){var c=i[l];a&&c[0]===a[0]&&c[1]===a[1]||(s=n.SelectionRange.create(n.Range.create(e.positionAt(i[l][0]),e.positionAt(i[l][1])),s)),a=c}return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var a=0,o=t;a<o.length;a++){var s=o[a];if(e.isIncremental(s)){var l=r(s.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+s.text+this._content.substring(d,this._content.length);var h=Math.max(l.start.line,0),u=Math.max(l.end.line,0),p=this._lineOffsets,m=i(s.text,!1,c);if(u-h===m.length)for(var f=0,g=m.length;f<g;f++)p[f+h+1]=m[f];else m.length<1e4?p.splice.apply(p,[h+1,u-h].concat(m)):this._lineOffsets=p=p.slice(0,h+1).concat(m,p.slice(u+1));var b=s.text.length-(d-c);if(0!==b)for(f=h+1+m.length,g=p.length;f<g;f++)p[f]=p[f]+b}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=i(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,i=t.length;if(0===i)return{line:0,character:e};for(;n<i;){var r=Math.floor((n+i)/2);t[r]>e?i=r:n=r+1}var a=n-1;return{line:a,character:e-t[a]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function i(e,t,n){void 0===n&&(n=0);for(var i=t?[n]:[],r=0;r<e.length;r++){var a=e.charCodeAt(r);13!==a&&10!==a||(13===a&&r+1<e.length&&10===e.charCodeAt(r+1)&&r++,i.push(n+r+1))}return i}function r(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function a(e){var t=r(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,i,r){return new n(e,t,i,r)},e.update=function(e,t,i){if(e instanceof n)return e.update(t,i),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t.map(a),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,o=i.length-1;o>=0;o--){var s=i[o],l=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+s.newText+n.substring(c,n.length),r=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageService\",[\"require\",\"exports\",\"./parser/htmlScanner\",\"./parser/htmlParser\",\"./services/htmlCompletion\",\"./services/htmlHover\",\"./services/htmlFormatter\",\"./services/htmlLinks\",\"./services/htmlHighlighting\",\"./services/htmlSymbolsProvider\",\"./services/htmlRename\",\"./services/htmlMatchingTagPosition\",\"./services/htmlFolding\",\"./services/htmlSelectionRange\",\"./languageFacts/builtinDataProviders\",\"./languageFacts/dataProvider\",\"./htmlLanguageTypes\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var i=e(\"./parser/htmlScanner\"),r=e(\"./parser/htmlParser\"),a=e(\"./services/htmlCompletion\"),o=e(\"./services/htmlHover\"),s=e(\"./services/htmlFormatter\"),l=e(\"./services/htmlLinks\"),c=e(\"./services/htmlHighlighting\"),d=e(\"./services/htmlSymbolsProvider\"),h=e(\"./services/htmlRename\"),u=e(\"./services/htmlMatchingTagPosition\"),p=e(\"./services/htmlFolding\"),m=e(\"./services/htmlSelectionRange\"),f=e(\"./languageFacts/builtinDataProviders\"),g=e(\"./languageFacts/dataProvider\");n(e(\"./htmlLanguageTypes\"));var b=e(\"vscode-languageserver-textdocument\");t.TextDocument=b.TextDocument,n(e(\"vscode-languageserver-types\")),t.getLanguageService=function(e){var t=new o.HTMLHover(e&&e.clientCapabilities),n=new a.HTMLCompletion(e&&e.clientCapabilities);return e&&e.customDataProviders&&f.handleCustomDataProviders(e.customDataProviders),{createScanner:i.createScanner,parseHTMLDocument:function(e){return r.parse(e.getText())},doComplete:n.doComplete.bind(n),setCompletionParticipants:n.setCompletionParticipants.bind(n),doHover:t.doHover.bind(t),format:s.format,findDocumentHighlights:c.findDocumentHighlights,findDocumentLinks:l.findDocumentLinks,findDocumentSymbols:d.findDocumentSymbols,getFoldingRanges:p.getFoldingRanges,getSelectionRanges:m.getSelectionRanges,doTagComplete:n.doTagComplete.bind(n),doRename:h.doRename,findMatchingTagPosition:u.findMatchingTagPosition}},t.newHTMLDataProvider=function(e,t){return new g.HTMLDataProvider(e,t)}})),define(\"vscode-html-languageservice\",[\"vscode-html-languageservice/htmlLanguageService\"],(function(e){return e})),define(\"vs/language/html/fillers/polyfills\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.polyfill=function(){\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(e,t){if(null!==e)for(var n=1;n<arguments.length;n++){var i=arguments[n];if(i)for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},writable:!0,configurable:!0})}})),define(\"vs/language/html/htmlWorker\",[\"require\",\"exports\",\"vscode-html-languageservice\",\"./fillers/polyfills\"],(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),i.polyfill();var r=function(){function e(e,t){this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageService=n.getLanguageService()}return e.prototype.doValidation=function(e){return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n);return Promise.resolve(this._languageService.doComplete(n,t,i,this._languageSettings&&this._languageSettings.suggest))},e.prototype.format=function(e,t,n){var i=this._getTextDocument(e),r=this._languageService.format(i,t,this._languageSettings&&this._languageSettings.format);return Promise.resolve(r)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n),r=this._languageService.doHover(n,t,i);return Promise.resolve(r)},e.prototype.findDocumentHighlights=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n),r=this._languageService.findDocumentHighlights(n,t,i);return Promise.resolve(r)},e.prototype.findDocumentLinks=function(e){var t=this._getTextDocument(e),n=this._languageService.findDocumentLinks(t,null);return Promise.resolve(n)},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseHTMLDocument(t),i=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(i)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),i=this._languageService.getFoldingRanges(n,t);return Promise.resolve(i)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),i=this._languageService.getSelectionRanges(n,t);return Promise.resolve(i)},e.prototype.doRename=function(e,t,n){var i=this._getTextDocument(e),r=this._languageService.parseHTMLDocument(i),a=this._languageService.doRename(i,t,n,r);return Promise.resolve(a)},e.prototype._getTextDocument=function(e){for(var t=0,i=this._ctx.getMirrorModels();t<i.length;t++){var r=i[t];if(r.uri.toString()===e)return n.TextDocument.create(e,this._languageId,r.version,r.getValue())}return null},e}();t.HTMLWorker=r,t.create=function(e,t){return new r(e,t)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/json/jsonMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/json/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/json/jsonWorker\",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/scanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function r(e){return 10===e||13===e||8232===e||8233===e}function o(e){return e>=48&&e<=57}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScanner=function(e,t){void 0===t&&(t=!1);var i=e.length,a=0,s=\"\",c=0,u=16,l=0,f=0,d=0,p=0,h=0;function m(t,n){for(var r=0,o=0;r<t||!n;){var i=e.charCodeAt(a);if(i>=48&&i<=57)o=16*o+i-48;else if(i>=65&&i<=70)o=16*o+i-65+10;else{if(!(i>=97&&i<=102))break;o=16*o+i-97+10}a++,r++}return r<t&&(o=-1),o}function g(){if(s=\"\",h=0,c=a,f=l,p=d,a>=i)return c=i,u=17;var t=e.charCodeAt(a);if(n(t)){do{a++,s+=String.fromCharCode(t),t=e.charCodeAt(a)}while(n(t));return u=15}if(r(t))return a++,s+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,s+=\"\\n\"),l++,d=a,u=14;switch(t){case 123:return a++,u=1;case 125:return a++,u=2;case 91:return a++,u=3;case 93:return a++,u=4;case 58:return a++,u=6;case 44:return a++,u=5;case 34:return a++,s=function(){for(var t=\"\",n=a;;){if(a>=i){t+=e.substring(n,a),h=2;break}var o=e.charCodeAt(a);if(34===o){t+=e.substring(n,a),a++;break}if(92!==o){if(o>=0&&o<=31){if(r(o)){t+=e.substring(n,a),h=2;break}h=6}a++}else{if(t+=e.substring(n,a),++a>=i){h=2;break}switch(e.charCodeAt(a++)){case 34:t+='\"';break;case 92:t+=\"\\\\\";break;case 47:t+=\"/\";break;case 98:t+=\"\\b\";break;case 102:t+=\"\\f\";break;case 110:t+=\"\\n\";break;case 114:t+=\"\\r\";break;case 116:t+=\"\\t\";break;case 117:var s=m(4,!0);s>=0?t+=String.fromCharCode(s):h=4;break;default:h=5}n=a}}return t}(),u=10;case 47:var g=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;a<i&&!r(e.charCodeAt(a));)a++;return s=e.substring(g,a),u=12}if(42===e.charCodeAt(a+1)){a+=2;for(var y=i-1,b=!1;a<y;){var x=e.charCodeAt(a);if(42===x&&47===e.charCodeAt(a+1)){a+=2,b=!0;break}a++,r(x)&&(13===x&&10===e.charCodeAt(a)&&a++,l++,d=a)}return b||(a++,h=1),s=e.substring(g,a),u=13}return s+=String.fromCharCode(t),a++,u=16;case 45:if(s+=String.fromCharCode(t),++a===i||!o(e.charCodeAt(a)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=function(){var t=a;if(48===e.charCodeAt(a))a++;else for(a++;a<e.length&&o(e.charCodeAt(a));)a++;if(a<e.length&&46===e.charCodeAt(a)){if(!(++a<e.length&&o(e.charCodeAt(a))))return h=3,e.substring(t,a);for(a++;a<e.length&&o(e.charCodeAt(a));)a++}var n=a;if(a<e.length&&(69===e.charCodeAt(a)||101===e.charCodeAt(a)))if((++a<e.length&&43===e.charCodeAt(a)||45===e.charCodeAt(a))&&a++,a<e.length&&o(e.charCodeAt(a))){for(a++;a<e.length&&o(e.charCodeAt(a));)a++;n=a}else h=3;return e.substring(t,n)}(),u=11;default:for(;a<i&&v(t);)a++,t=e.charCodeAt(a);if(c!==a){switch(s=e.substring(c,a)){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return s+=String.fromCharCode(t),a++,u=16}}function v(e){if(n(e)||r(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){a=e,s=\"\",c=0,u=16,h=0},getPosition:function(){return a},scan:t?function(){var e;do{e=g()}while(e>=12&&e<=15);return e}:g,getToken:function(){return u},getTokenValue:function(){return s},getTokenOffset:function(){return c},getTokenLength:function(){return a-c},getTokenStartLine:function(){return f},getTokenStartCharacter:function(){return c-p},getTokenError:function(){return h}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/format\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scanner\");function r(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n}function o(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}t.format=function(e,t,i){var a,s,c,u,l;if(t){for(u=t.offset,l=u+t.length,c=u;c>0&&!o(e,c-1);)c--;for(var f=l;f<e.length&&!o(e,f);)f++;s=e.substring(c,f),a=function(e,t){var n=0,r=0,o=t.tabSize||4;for(;n<e.length;){var i=e.charAt(n);if(\" \"===i)r++;else{if(\"\\t\"!==i)break;r+=o}n++}return Math.floor(r/o)}(s,i)}else s=e,a=0,c=0,u=0,l=e.length;var d,p=function(e,t){for(var n=0;n<t.length;n++){var r=t.charAt(n);if(\"\\r\"===r)return n+1<t.length&&\"\\n\"===t.charAt(n+1)?\"\\r\\n\":\"\\r\";if(\"\\n\"===r)return\"\\n\"}return e&&e.eol||\"\\n\"}(i,e),h=!1,m=0;d=i.insertSpaces?r(\" \",i.tabSize||4):\"\\t\";var g=n.createScanner(s,!1),v=!1;function y(){return p+r(d,a+m)}function b(){var e=g.scan();for(h=!1;15===e||14===e;)h=h||14===e,e=g.scan();return v=16===e||0!==g.getTokenError(),e}var x=[];function S(t,n,r){!v&&n<l&&r>u&&e.substring(n,r)!==t&&x.push({offset:n,length:r-n,content:t})}var C=b();if(17!==C){var k=g.getTokenOffset()+c;S(r(d,a),c,k)}for(;17!==C;){for(var T=g.getTokenOffset()+g.getTokenLength()+c,j=b(),E=\"\";!h&&(12===j||13===j);){S(\" \",T,g.getTokenOffset()+c),T=g.getTokenOffset()+g.getTokenLength()+c,E=12===j?y():\"\",j=b()}if(2===j)1!==C&&(m--,E=y());else if(4===j)3!==C&&(m--,E=y());else{switch(C){case 3:case 1:m++,E=y();break;case 5:case 12:E=y();break;case 13:E=h?y():\" \";break;case 6:E=\" \";break;case 10:if(6===j){E=\"\";break}case 7:case 8:case 9:case 11:case 2:case 4:12===j||13===j?E=\" \":5!==j&&17!==j&&(v=!0);break;case 16:v=!0}!h||12!==j&&13!==j||(E=y())}S(E,T,g.getTokenOffset()+c),C=j}return x},t.isEOL=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/parser\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"./scanner\");function o(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}function i(e,t,o){void 0===o&&(o=n.DEFAULT);var i=r.createScanner(e,!1);function a(e){return e?function(){return e(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}function s(e){return e?function(t){return e(t,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}var c=a(t.onObjectBegin),u=s(t.onObjectProperty),l=a(t.onObjectEnd),f=a(t.onArrayBegin),d=a(t.onArrayEnd),p=s(t.onLiteralValue),h=s(t.onSeparator),m=a(t.onComment),g=s(t.onError),v=o&&o.disallowComments,y=o&&o.allowTrailingComma;function b(){for(;;){var e=i.scan();switch(i.getTokenError()){case 4:x(14);break;case 5:x(15);break;case 3:x(13);break;case 1:v||x(11);break;case 2:x(12);break;case 6:x(16)}switch(e){case 12:case 13:v?x(10):m();break;case 16:x(1);break;case 15:case 14:break;default:return e}}}function x(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=[]),g(e),t.length+n.length>0)for(var r=i.getToken();17!==r;){if(-1!==t.indexOf(r)){b();break}if(-1!==n.indexOf(r))break;r=b()}}function S(e){var t=i.getTokenValue();return e?p(t):u(t),b(),!0}function C(){switch(i.getToken()){case 3:return function(){f(),b();for(var e=!1;4!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),4===i.getToken()&&y)break}else e&&x(6,[],[]);C()||x(4,[],[4,5]),e=!0}return d(),4!==i.getToken()?x(8,[4],[]):b(),!0}();case 1:return function(){c(),b();for(var e=!1;2!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),2===i.getToken()&&y)break}else e&&x(6,[],[]);(10!==i.getToken()?(x(3,[],[2,5]),0):(S(!1),6===i.getToken()?(h(\":\"),b(),C()||x(4,[],[2,5])):x(5,[],[2,5]),1))||x(4,[],[2,5]),e=!0}return l(),2!==i.getToken()?x(7,[2],[]):b(),!0}();case 10:return S(!0);default:return function(){switch(i.getToken()){case 11:var e=0;try{\"number\"!=typeof(e=JSON.parse(i.getTokenValue()))&&(x(2),e=0)}catch(e){x(2)}p(e);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return b(),!0}()}}return b(),17===i.getToken()?!!o.allowEmptyContent||(x(4,[],[]),!1):C()?(17!==i.getToken()&&x(9,[],[]),!0):(x(4,[],[]),!1)}function a(e){switch(typeof e){case\"boolean\":return\"boolean\";case\"number\":return\"number\";case\"string\":return\"string\";case\"object\":return e?Array.isArray(e)?\"array\":\"object\":\"null\";default:return\"null\"}}!function(e){e.DEFAULT={allowTrailingComma:!1}}(n||(n={})),t.getLocation=function(e,t){var n=[],r=new Object,o=void 0,s={value:{},offset:0,length:0,type:\"object\",parent:void 0},c=!1;function u(e,t,n,r){s.value=e,s.offset=t,s.length=n,s.type=r,s.colonOffset=void 0,o=s}try{i(e,{onObjectBegin:function(e,i){if(t<=e)throw r;o=void 0,c=t>e,n.push(\"\")},onObjectProperty:function(e,o,i){if(t<o)throw r;if(u(e,o,i,\"property\"),n[n.length-1]=e,t<=o+i)throw r},onObjectEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onArrayBegin:function(e,i){if(t<=e)throw r;o=void 0,n.push(0)},onArrayEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onLiteralValue:function(e,n,o){if(t<n)throw r;if(u(e,n,o,a(e)),t<=n+o)throw r},onSeparator:function(e,i,a){if(t<=i)throw r;if(\":\"===e&&o&&\"property\"===o.type)o.colonOffset=i,c=!1,o=void 0;else if(\",\"===e){var s=n[n.length-1];\"number\"==typeof s?n[n.length-1]=s+1:(c=!0,n[n.length-1]=\"\"),o=void 0}}})}catch(e){if(e!==r)throw e}return{path:n,previousNode:o,isAtPropertyKey:c,matches:function(e){for(var t=0,r=0;t<e.length&&r<n.length;r++)if(e[t]===n[r]||\"*\"===e[t])t++;else if(\"**\"!==e[t])return!1;return t===e.length}}},t.parse=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o=null,a=[],s=[];function c(e){Array.isArray(a)?a.push(e):null!==o&&(a[o]=e)}return i(e,{onObjectBegin:function(){var e={};c(e),s.push(a),a=e,o=null},onObjectProperty:function(e){o=e},onObjectEnd:function(){a=s.pop()},onArrayBegin:function(){var e=[];c(e),s.push(a),a=e,o=null},onArrayEnd:function(){a=s.pop()},onLiteralValue:c,onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r),a[0]},t.parseTree=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o={type:\"array\",offset:-1,length:-1,children:[],parent:void 0};function s(e){\"property\"===o.type&&(o.length=e-o.offset,o=o.parent)}function c(e){return o.children.push(e),e}i(e,{onObjectBegin:function(e){o=c({type:\"object\",offset:e,length:-1,parent:o,children:[]})},onObjectProperty:function(e,t,n){(o=c({type:\"property\",offset:t,length:-1,parent:o,children:[]})).children.push({type:\"string\",value:e,offset:t,length:n,parent:o})},onObjectEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onArrayBegin:function(e,t){o=c({type:\"array\",offset:e,length:-1,parent:o,children:[]})},onArrayEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onLiteralValue:function(e,t,n){c({type:a(e),offset:t,length:n,parent:o,value:e}),s(t+n)},onSeparator:function(e,t,n){\"property\"===o.type&&(\":\"===e?o.colonOffset=t:\",\"===e&&s(t))},onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r);var u=o.children[0];return u&&delete u.parent,u},t.findNodeAtLocation=function(e,t){if(e){for(var n=e,r=0,o=t;r<o.length;r++){var i=o[r];if(\"string\"==typeof i){if(\"object\"!==n.type||!Array.isArray(n.children))return;for(var a=!1,s=0,c=n.children;s<c.length;s++){var u=c[s];if(Array.isArray(u.children)&&u.children[0].value===i){n=u.children[1],a=!0;break}}if(!a)return}else{var l=i;if(\"array\"!==n.type||l<0||!Array.isArray(n.children)||l>=n.children.length)return;n=n.children[l]}}return n}},t.getNodePath=function e(t){if(!t.parent||!t.parent.children)return[];var n=e(t.parent);if(\"property\"===t.parent.type){var r=t.parent.children[0].value;n.push(r)}else if(\"array\"===t.parent.type){var o=t.parent.children.indexOf(t);-1!==o&&n.push(o)}return n},t.getNodeValue=function e(t){switch(t.type){case\"array\":return t.children.map(e);case\"object\":for(var n=Object.create(null),r=0,o=t.children;r<o.length;r++){var i=o[r],a=i.children[1];a&&(n[i.children[0].value]=e(a))}return n;case\"null\":case\"string\":case\"number\":case\"boolean\":return t.value;default:return}},t.contains=o,t.findNodeAtOffset=function e(t,n,r){if(void 0===r&&(r=!1),o(t,n,r)){var i=t.children;if(Array.isArray(i))for(var a=0;a<i.length&&i[a].offset<=n;a++){var s=e(i[a],n,r);if(s)return s}return t}},t.visit=i,t.stripComments=function(e,t){var n,o,i=r.createScanner(e),a=[],s=0;do{switch(o=i.getPosition(),n=i.scan()){case 12:case 13:case 17:s!==o&&a.push(e.substring(s,o)),void 0!==t&&a.push(i.getTokenValue().replace(/[^\\r\\n]/g,t)),s=i.getPosition()}}while(17!==n);return a.join(\"\")},t.getNodeType=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/edit\",[\"require\",\"exports\",\"./format\",\"./parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./format\"),r=e(\"./parser\");function o(e,t,n,o,a){for(var s,c=t.slice(),u=r.parseTree(e,[]),l=void 0,f=void 0;c.length>0&&(f=c.pop(),void 0===(l=r.findNodeAtLocation(u,c))&&void 0!==n);)\"string\"==typeof f?((s={})[f]=n,n=s):n=[n];if(l){if(\"object\"===l.type&&\"string\"==typeof f&&Array.isArray(l.children)){var d=r.findNodeAtLocation(l,[f]);if(void 0!==d){if(void 0===n){if(!d.parent)throw new Error(\"Malformed AST\");var p=l.children.indexOf(d.parent),h=void 0,m=d.parent.offset+d.parent.length;if(p>0)h=(S=l.children[p-1]).offset+S.length;else if(h=l.offset+1,l.children.length>1)m=l.children[1].offset;return i(e,{offset:h,length:m-h,content:\"\"},o)}return i(e,{offset:d.offset,length:d.length,content:JSON.stringify(n)},o)}if(void 0===n)return[];var g=JSON.stringify(f)+\": \"+JSON.stringify(n),v=a?a(l.children.map((function(e){return e.children[0].value}))):l.children.length,y=void 0;return i(e,y=v>0?{offset:(S=l.children[v-1]).offset+S.length,length:0,content:\",\"+g}:0===l.children.length?{offset:l.offset+1,length:0,content:g}:{offset:l.offset+1,length:0,content:g+\",\"},o)}if(\"array\"===l.type&&\"number\"==typeof f&&Array.isArray(l.children)){if(-1===f){g=\"\"+JSON.stringify(n),y=void 0;if(0===l.children.length)y={offset:l.offset+1,length:0,content:g};else y={offset:(S=l.children[l.children.length-1]).offset+S.length,length:0,content:\",\"+g};return i(e,y,o)}if(void 0===n&&l.children.length>=0){var b=f,x=l.children[b];y=void 0;if(1===l.children.length)y={offset:l.offset+1,length:l.length-2,content:\"\"};else if(l.children.length-1===b){var S,C=(S=l.children[b-1]).offset+S.length;y={offset:C,length:l.offset+l.length-2-C,content:\"\"}}else y={offset:x.offset,length:l.children[b+1].offset-x.offset,content:\"\"};return i(e,y,o)}throw new Error(\"Array modification not supported yet\")}throw new Error(\"Can not add \"+(\"number\"!=typeof f?\"index\":\"property\")+\" to parent of type \"+l.type)}if(void 0===n)throw new Error(\"Can not delete in empty document\");return i(e,{offset:u?u.offset:0,length:u?u.length:0,content:JSON.stringify(n)},o)}function i(e,t,r){var o=a(e,t),i=t.offset,s=t.offset+t.content.length;if(0===t.length||0===t.content.length){for(;i>0&&!n.isEOL(o,i-1);)i--;for(;s<o.length&&!n.isEOL(o,s);)s++}for(var c=n.format(o,{offset:i,length:s-i},r),u=c.length-1;u>=0;u--){var l=c[u];o=a(o,l),i=Math.min(i,l.offset),s=Math.max(s,l.offset+l.length),s+=l.content.length-l.length}return[{offset:i,length:e.length-(o.length-s)-i,content:o.substring(i,s)}]}function a(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}t.removeProperty=function(e,t,n){return o(e,t,void 0,n)},t.setProperty=o,t.applyEdit=a,t.isWS=function(e,t){return-1!==\"\\r\\n \\t\".indexOf(e.charAt(t))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/main\",[\"require\",\"exports\",\"./impl/format\",\"./impl/edit\",\"./impl/scanner\",\"./impl/parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./impl/format\"),r=e(\"./impl/edit\"),o=e(\"./impl/scanner\"),i=e(\"./impl/parser\");t.createScanner=o.createScanner,t.getLocation=i.getLocation,t.parse=i.parse,t.parseTree=i.parseTree,t.findNodeAtLocation=i.findNodeAtLocation,t.findNodeAtOffset=i.findNodeAtOffset,t.getNodePath=i.getNodePath,t.getNodeValue=i.getNodeValue,t.visit=i.visit,t.stripComments=i.stripComments,t.printParseErrorCode=function(e){switch(e){case 1:return\"InvalidSymbol\";case 2:return\"InvalidNumberFormat\";case 3:return\"PropertyNameExpected\";case 4:return\"ValueExpected\";case 5:return\"ColonExpected\";case 6:return\"CommaExpected\";case 7:return\"CloseBraceExpected\";case 8:return\"CloseBracketExpected\";case 9:return\"EndOfFileExpected\";case 10:return\"InvalidCommentToken\";case 11:return\"UnexpectedEndOfComment\";case 12:return\"UnexpectedEndOfString\";case 13:return\"UnexpectedEndOfNumber\";case 14:return\"InvalidUnicode\";case 15:return\"InvalidEscapeCharacter\";case 16:return\"InvalidCharacter\"}return\"<unknown ParseErrorCode>\"},t.format=function(e,t,r){return n.format(e,t,r)},t.modify=function(e,t,n,o){return r.setProperty(e,t,n,o.formattingOptions,o.getInsertionIndex)},t.applyEdits=function(e,t){for(var n=t.length-1;n>=0;n--)e=r.applyEdit(e,t[n]);return e}})),define(\"jsonc-parser\",[\"jsonc-parser/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var r,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1}else{var i=[];for(o in t)i.push(o);i.sort();var a=[];for(o in n)a.push(o);if(a.sort(),!e(i,a))return!1;for(r=0;r<i.length;r++)if(!e(t[i[r]],n[i[r]]))return!1}return!0},t.isNumber=function(e){return\"number\"==typeof e},t.isDefined=function(e){return void 0!==e},t.isBoolean=function(e){return\"boolean\"==typeof e},t.isString=function(e){return\"string\"==typeof e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,o,i,a,s,c,u,l,f,d,p,h;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.number(t.line)&&S.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,o){if(S.number(e)&&S.number(t)&&S.number(r)&&S.number(o))return{start:n.create(e,t),end:n.create(r,o)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+o+\"]\")},e.is=function(e){var t=e;return S.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.string(t.uri)||S.undefined(t.uri))}}(o=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.targetRange)&&S.string(t.targetUri)&&(r.is(t.targetSelectionRange)||S.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||S.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return S.number(t.red)&&S.number(t.green)&&S.number(t.blue)&&S.number(t.alpha)}}(i=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&i.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return S.string(t.label)&&(S.undefined(t.textEdit)||u.is(t))&&(S.undefined(t.additionalTextEdits)||S.typedArray(t.additionalTextEdits,u.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,o){var i={startLine:e,endLine:t};return S.defined(n)&&(i.startCharacter=n),S.defined(r)&&(i.endCharacter=r),S.defined(o)&&(i.kind=o),i},e.is=function(e){var t=e;return S.number(t.startLine)&&S.number(t.startLine)&&(S.undefined(t.startCharacter)||S.number(t.startCharacter))&&(S.undefined(t.endCharacter)||S.number(t.endCharacter))&&(S.undefined(t.kind)||S.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return S.defined(t)&&o.is(t.location)&&S.string(t.message)}}(a=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,o,i){var a={range:e,message:t};return S.defined(n)&&(a.severity=n),S.defined(r)&&(a.code=r),S.defined(o)&&(a.source=o),S.defined(i)&&(a.relatedInformation=i),a},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&S.string(t.message)&&(S.number(t.severity)||S.undefined(t.severity))&&(S.number(t.code)||S.string(t.code)||S.undefined(t.code))&&(S.string(t.source)||S.undefined(t.source))&&(S.undefined(t.relatedInformation)||S.typedArray(t.relatedInformation,a.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={title:e,command:t};return S.defined(n)&&n.length>0&&(o.arguments=n),o},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.title)&&S.string(t.command)}}(c=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.string(t.newText)&&r.is(t.range)}}(u=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return S.defined(t)&&m.is(t.textDocument)&&Array.isArray(t.edits)}}(l=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(f=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&S.string(t.oldUri)&&S.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(d=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||S.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||S.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return S.string(e.kind)?f.is(e)||d.is(e)||p.is(e):l.is(e)})))}}(h=t.WorkspaceEdit||(t.WorkspaceEdit={}));var m,g,v,y,b=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(u.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(u.replace(e,t))},e.prototype.delete=function(e){this.edits.push(u.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),x=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(l.is(e)){var n=new b(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new b(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(m.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:o=[]};this._workspaceEdit.documentChanges.push(n),r=new b(o),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var o=[];this._workspaceEdit.changes[e]=o,r=new b(o),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(f.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(d.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=x,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&(null===t.version||S.number(t.version))}}(m=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&S.string(t.languageId)&&S.number(t.version)&&S.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return S.objectLiteral(e)&&g.is(t.kind)&&S.string(t.value)}}(v=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return S.string(t)||S.objectLiteral(t)&&S.string(t.language)&&S.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&S.objectLiteral(t)&&(v.is(t.contents)||y.is(t.contents)||S.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={label:e};return S.defined(t)&&(o.documentation=t),S.defined(n)?o.parameters=n:o.parameters=[],o}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return S.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,o){var i={name:e,kind:t,location:{uri:r,range:n}};return o&&(i.containerName=o),i}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,o,i){var a={name:e,detail:t,kind:n,range:r,selectionRange:o};return void 0!==i&&(a.children=i),a},e.is=function(e){var t=e;return t&&S.string(t.name)&&S.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||S.string(t.detail))&&(void 0===t.deprecated||S.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return S.defined(t)&&S.typedArray(t.diagnostics,s.is)&&(void 0===t.only||S.typedArray(t.only,S.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return c.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&S.string(t.title)&&(void 0===t.diagnostics||S.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||S.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||c.is(t.command))&&(void 0===t.isPreferred||S.boolean(t.isPreferred))&&(void 0===t.edit||h.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return S.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.command)||c.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return S.defined(t)&&S.number(t.tabSize)&&S.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.target)||S.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new C(e,t,n,r)},e.is=function(e){var t=e;return!!(S.defined(t)&&S.string(t.uri)&&(S.undefined(t.languageId)||S.string(t.languageId))&&S.number(t.lineCount)&&S.func(t.getText)&&S.func(t.positionAt)&&S.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,i=r.length-1;i>=0;i--){var a=r[i],s=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+a.newText+n.substring(c,n.length),o=s}return n}}(t.TextDocument||(t.TextDocument={}));var S,C=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var o=t.charAt(r);n=\"\\r\"===o||\"\\n\"===o,\"\\r\"===o&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,o=t.length;if(0===o)return n.create(0,e);for(;r<o;){var i=Math.floor((r+o)/2);t[i]>e?o=i:r=i+1}var a=r-1;return n.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(S||(S={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var i=0,a=t;i<a.length;i++){var s=a[i];if(e.isIncremental(s)){var c=o(s.range),u=this.offsetAt(c.start),l=this.offsetAt(c.end);this._content=this._content.substring(0,u)+s.text+this._content.substring(l,this._content.length);var f=Math.max(c.start.line,0),d=Math.max(c.end.line,0),p=this._lineOffsets,h=r(s.text,!1,u);if(d-f===h.length)for(var m=0,g=h.length;m<g;m++)p[m+f+1]=h[m];else h.length<1e4?p.splice.apply(p,[f+1,d-f].concat(h)):this._lineOffsets=p=p.slice(0,f+1).concat(h,p.slice(d+1));var v=s.text.length-(l-u);if(0!==v)for(m=f+1+h.length,g=p.length;m<g;m++)p[m]=p[m]+v}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o+1}var i=n-1;return{line:i,character:e-t[i]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],o=0;o<e.length;o++){var i=e.charCodeAt(o);13!==i&&10!==i||(13===i&&o+1<e.length&&10===e.charCodeAt(o+1)&&o++,r.push(n+o+1))}return r}function o(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function i(e){var t=o(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,o){return new n(e,t,r,o)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t.map(i),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,a=r.length-1;a>=0;a--){var s=r[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,c)+s.newText+n.substring(u,n.length),o=c}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e[e.Undefined=0]=\"Undefined\",e[e.EnumValueMismatch=1]=\"EnumValueMismatch\",e[e.UnexpectedEndOfComment=257]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=258]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=259]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=260]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=261]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=262]=\"InvalidCharacter\",e[e.PropertyExpected=513]=\"PropertyExpected\",e[e.CommaExpected=514]=\"CommaExpected\",e[e.ColonExpected=515]=\"ColonExpected\",e[e.ValueExpected=516]=\"ValueExpected\",e[e.CommaOrCloseBacketExpected=517]=\"CommaOrCloseBacketExpected\",e[e.CommaOrCloseBraceExpected=518]=\"CommaOrCloseBraceExpected\",e[e.TrailingComma=519]=\"TrailingComma\",e[e.DuplicateKey=520]=\"DuplicateKey\",e[e.CommentNotPermitted=521]=\"CommentNotPermitted\",e[e.SchemaResolveError=768]=\"SchemaResolveError\"}(t.ErrorCode||(t.ErrorCode={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText],commitCharactersSupport:!0}}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],o=2;o<arguments.length;o++)r[o-2]=arguments[o];return n(t,r)}function o(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=o,t.config=function(e){return o}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/parser/jsonParser\",[\"require\",\"exports\",\"jsonc-parser\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../utils/objects\"),o=e(\"../jsonLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),a={\"color-hex\":{errorMessage:i(\"colorHexFormatWarning\",\"Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.\"),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},\"date-time\":{errorMessage:i(\"dateTimeFormatWarning\",\"String is not a RFC3339 date-time.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:i(\"dateFormatWarning\",\"String is not a RFC3339 date.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:i(\"timeFormatWarning\",\"String is not a RFC3339 time.\"),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:i(\"emailFormatWarning\",\"String is not an e-mail address.\"),pattern:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/}},s=function(){function e(e,t,n){this.offset=t,this.length=n,this.parent=e}return Object.defineProperty(e.prototype,\"children\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return\"type: \"+this.type+\" (\"+this.offset+\"/\"+this.length+\")\"+(this.parent?\" parent: {\"+this.parent.toString()+\"}\":\"\")},e}();t.ASTNodeImpl=s;var c=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"null\",r.value=null,r}return __extends(t,e),t}(s);t.NullASTNodeImpl=c;var u=function(e){function t(t,n,r){var o=e.call(this,t,r)||this;return o.type=\"boolean\",o.value=n,o}return __extends(t,e),t}(s);t.BooleanASTNodeImpl=u;var l=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"array\",r.items=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.items},enumerable:!0,configurable:!0}),t}(s);t.ArrayASTNodeImpl=l;var f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"number\",r.isInteger=!0,r.value=Number.NaN,r}return __extends(t,e),t}(s);t.NumberASTNodeImpl=f;var d=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.type=\"string\",o.value=\"\",o}return __extends(t,e),t}(s);t.StringASTNodeImpl=d;var p=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"property\",r.colonOffset=-1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]},enumerable:!0,configurable:!0}),t}(s);t.PropertyASTNodeImpl=p;var h=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"object\",r.properties=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.properties},enumerable:!0,configurable:!0}),t}(s);function m(e){return r.isBoolean(e)?e?{}:{not:{}}:e}t.ObjectASTNodeImpl=h,t.asSchema=m,function(e){e[e.Key=0]=\"Key\",e[e.Enum=1]=\"Enum\"}(t.EnumMatch||(t.EnumMatch={}));var g=function(){function e(e,t){void 0===e&&(e=-1),void 0===t&&(t=null),this.focusOffset=e,this.exclude=t,this.schemas=[]}return e.prototype.add=function(e){this.schemas.push(e)},e.prototype.merge=function(e){var t;(t=this.schemas).push.apply(t,e.schemas)},e.prototype.include=function(e){return(-1===this.focusOffset||x(e,this.focusOffset))&&e!==this.exclude},e.prototype.newSub=function(){return new e(-1,this.exclude)},e}(),v=function(){function e(){}return Object.defineProperty(e.prototype,\"schemas\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.add=function(e){},e.prototype.merge=function(e){},e.prototype.include=function(e){return!0},e.prototype.newSub=function(){return this},e.instance=new e,e}(),y=function(){function e(){this.problems=[],this.propertiesMatches=0,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=null}return e.prototype.hasProblems=function(){return!!this.problems.length},e.prototype.mergeAll=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.merge(r)}},e.prototype.merge=function(e){this.problems=this.problems.concat(e.problems)},e.prototype.mergeEnumValues=function(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(var t=0,n=this.problems;t<n.length;t++){var r=n[t];r.code===o.ErrorCode.EnumValueMismatch&&(r.message=i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",this.enumValues.map((function(e){return JSON.stringify(e)})).join(\", \")))}}},e.prototype.mergePropertyMatch=function(e){this.merge(e),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&1===e.enumValues.length&&this.primaryValueMatches++},e.prototype.compare=function(e){var t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches},e}();function b(e){return n.getNodeValue(e)}function x(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}t.ValidationResult=y,t.newJSONDocument=function(e,t){return void 0===t&&(t=[]),new S(e,t,[])},t.getNodeValue=b,t.getNodePath=function(e){return n.getNodePath(e)},t.contains=x;var S=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=[]),this.root=e,this.syntaxErrors=t,this.comments=n}return e.prototype.getNodeFromOffset=function(e,t){if(void 0===t&&(t=!1),this.root)return n.findNodeAtOffset(this.root,e,t)},e.prototype.visit=function(e){if(this.root){var t=function(n){var r=e(n),o=n.children;if(Array.isArray(o))for(var i=0;i<o.length&&r;i++)r=t(o[i]);return r};t(this.root)}},e.prototype.validate=function(e,t){if(this.root&&t){var n=new y;return C(this.root,t,n,v.instance),n.problems.map((function(t){var n=o.Range.create(e.positionAt(t.location.offset),e.positionAt(t.location.offset+t.location.length));return o.Diagnostic.create(n,t.message,t.severity,t.code)}))}return null},e.prototype.getMatchingSchemas=function(e,t,n){void 0===t&&(t=-1),void 0===n&&(n=null);var r=new g(t,n);return this.root&&e&&C(this.root,e,new y,r),r.schemas},e}();function C(e,t,n,s){if(e&&s.include(e)){switch(e.type){case\"object\":!function(e,t,n,a){for(var s=Object.create(null),c=[],u=0,l=e.properties;u<l.length;u++){var f=(j=l[u]).keyNode.value;s[f]=j.valueNode,c.push(f)}if(Array.isArray(t.required))for(var d=0,p=t.required;d<p.length;d++){var h=p[d];if(!s[h]){var g=e.parent&&\"property\"===e.parent.type&&e.parent.keyNode,b=g?{offset:g.offset,length:g.length}:{offset:e.offset,length:1};n.problems.push({location:b,severity:o.DiagnosticSeverity.Warning,message:i(\"MissingRequiredPropWarning\",'Missing property \"{0}\".',h)})}}var x=function(e){for(var t=c.indexOf(e);t>=0;)c.splice(t,1),t=c.indexOf(e)};if(t.properties)for(var S=0,k=Object.keys(t.properties);S<k.length;S++){h=k[S];x(h);var T=t.properties[h];if(L=s[h])if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{var j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{var E=new y;C(L,T,E,a),n.mergePropertyMatch(E)}}if(t.patternProperties)for(var O=0,A=Object.keys(t.patternProperties);O<A.length;O++)for(var I=A[O],w=new RegExp(I),_=0,P=c.slice(0);_<P.length;_++){h=P[_];if(w.test(h))if(x(h),L=s[h]){T=t.patternProperties[I];if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{E=new y;C(L,T,E,a),n.mergePropertyMatch(E)}}}if(\"object\"==typeof t.additionalProperties)for(var N=0,M=c;N<M.length;N++){h=M[N];if(L=s[h]){E=new y;C(L,t.additionalProperties,E,a),n.mergePropertyMatch(E)}}else if(!1===t.additionalProperties&&c.length>0)for(var D=0,F=c;D<F.length;D++){var L;h=F[D];if(L=s[h]){j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}}r.isNumber(t.maxProperties)&&e.properties.length>t.maxProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MaxPropWarning\",\"Object has more properties than limit of {0}.\",t.maxProperties)});r.isNumber(t.minProperties)&&e.properties.length<t.minProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MinPropWarning\",\"Object has fewer properties than the required number of {0}\",t.minProperties)});if(t.dependencies)for(var R=0,V=Object.keys(t.dependencies);R<V.length;R++){f=V[R];if(s[f]){var K=t.dependencies[f];if(Array.isArray(K))for(var $=0,q=K;$<q.length;$++){var W=q[$];s[W]?n.propertiesValueMatches++:n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"RequiredDependentPropWarning\",\"Object is missing property {0} required by property {1}.\",W,f)})}else if(T=m(K)){E=new y;C(e,T,E,a),n.mergePropertyMatch(E)}}}var U=m(t.propertyNames);if(U)for(var B=0,J=e.properties;B<J.length;B++){var H=J[B];(f=H.keyNode)&&C(f,U,n,v.instance)}}(e,t,n,s);break;case\"array\":!function(e,t,n,a){if(Array.isArray(t.items)){for(var s=t.items,c=0;c<s.length;c++){var u=m(s[c]),l=new y;(g=e.items[c])?(C(g,u,l,a),n.mergePropertyMatch(l)):e.items.length>=s.length&&n.propertiesValueMatches++}if(e.items.length>s.length)if(\"object\"==typeof t.additionalItems)for(var f=s.length;f<e.items.length;f++){l=new y;C(e.items[f],t.additionalItems,l,a),n.mergePropertyMatch(l)}else!1===t.additionalItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"additionalItemsWarning\",\"Array has too many items according to schema. Expected {0} or fewer.\",s.length)})}else{var d=m(t.items);if(d)for(var p=0,h=e.items;p<h.length;p++){var g=h[p];l=new y;C(g,d,l,a),n.mergePropertyMatch(l)}}var x=m(t.contains);if(x){e.items.some((function(e){var t=new y;return C(e,x,t,v.instance),!t.hasProblems()}))||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"requiredItemMissingWarning\",\"Array does not contain required item.\")})}r.isNumber(t.minItems)&&e.items.length<t.minItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minItemsWarning\",\"Array has too few items. Expected {0} or more.\",t.minItems)});r.isNumber(t.maxItems)&&e.items.length>t.maxItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxItemsWarning\",\"Array has too many items. Expected {0} or fewer.\",t.maxItems)});if(!0===t.uniqueItems){var S=b(e);S.some((function(e,t){return t!==S.lastIndexOf(e)}))&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"uniqueItemsWarning\",\"Array has duplicate items.\")})}}(e,t,n,s);break;case\"string\":!function(e,t,n,s){r.isNumber(t.minLength)&&e.value.length<t.minLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minLengthWarning\",\"String is shorter than the minimum length of {0}.\",t.minLength)});r.isNumber(t.maxLength)&&e.value.length>t.maxLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxLengthWarning\",\"String is longer than the maximum length of {0}.\",t.maxLength)});if(r.isString(t.pattern)){new RegExp(t.pattern).test(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"patternWarning\",'String does not match the pattern of \"{0}\".',t.pattern)})}if(t.format)switch(t.format){case\"uri\":case\"uri-reference\":var c=void 0;if(e.value){var u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(e.value);u?u[2]||\"uri\"!==t.format||(c=i(\"uriSchemeMissing\",\"URI with a scheme is expected.\")):c=i(\"uriMissing\",\"URI is expected.\")}else c=i(\"uriEmpty\",\"URI expected.\");c&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"uriFormatWarning\",\"String is not a URI: {0}\",c)});break;case\"color-hex\":case\"date-time\":case\"date\":case\"time\":case\"email\":var l=a[t.format];e.value&&l.pattern.exec(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||l.errorMessage})}}(e,t,n);break;case\"number\":!function(e,t,n,a){var s=e.value;r.isNumber(t.multipleOf)&&s%t.multipleOf!=0&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"multipleOfWarning\",\"Value is not divisible by {0}.\",t.multipleOf)});function c(e,t){return r.isNumber(t)?t:r.isBoolean(t)&&t?e:void 0}function u(e,t){if(!r.isBoolean(t)||!t)return e}var l=c(t.minimum,t.exclusiveMinimum);r.isNumber(l)&&s<=l&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMinimumWarning\",\"Value is below the exclusive minimum of {0}.\",l)});var f=c(t.maximum,t.exclusiveMaximum);r.isNumber(f)&&s>=f&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMaximumWarning\",\"Value is above the exclusive maximum of {0}.\",f)});var d=u(t.minimum,t.exclusiveMinimum);r.isNumber(d)&&s<d&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minimumWarning\",\"Value is below the minimum of {0}.\",d)});var p=u(t.maximum,t.exclusiveMaximum);r.isNumber(p)&&s>p&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maximumWarning\",\"Value is above the maximum of {0}.\",p)})}(e,t,n);break;case\"property\":return C(e.valueNode,t,n,s)}!function(){function a(t){return e.type===t||\"integer\"===t&&\"number\"===e.type&&e.isInteger}Array.isArray(t.type)?t.type.some(a)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeArrayMismatchWarning\",\"Incorrect type. Expected one of {0}.\",t.type.join(\", \"))}):t.type&&(a(t.type)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeMismatchWarning\",'Incorrect type. Expected \"{0}\".',t.type)}));if(Array.isArray(t.allOf))for(var c=0,u=t.allOf;c<u.length;c++){var l=u[c];C(e,m(l),n,s)}var f=m(t.not);if(f){var d=new y,p=s.newSub();C(e,f,d,p),d.hasProblems()||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"notSchemaWarning\",\"Matches a schema that is not allowed.\")});for(var h=0,g=p.schemas;h<g.length;h++){var v=g[h];v.inverted=!v.inverted,s.add(v)}}var x=function(t,r){for(var a=[],c=null,u=0,l=t;u<l.length;u++){var f=m(l[u]),d=new y,p=s.newSub();if(C(e,f,d,p),d.hasProblems()||a.push(f),c)if(r||d.hasProblems()||c.validationResult.hasProblems()){var h=d.compare(c.validationResult);h>0?c={schema:f,validationResult:d,matchingSchemas:p}:0===h&&(c.matchingSchemas.merge(p),c.validationResult.mergeEnumValues(d))}else c.matchingSchemas.merge(p),c.validationResult.propertiesMatches+=d.propertiesMatches,c.validationResult.propertiesValueMatches+=d.propertiesValueMatches;else c={schema:f,validationResult:d,matchingSchemas:p}}return a.length>1&&r&&n.problems.push({location:{offset:e.offset,length:1},severity:o.DiagnosticSeverity.Warning,message:i(\"oneOfWarning\",\"Matches multiple schemas when only one must validate.\")}),null!==c&&(n.merge(c.validationResult),n.propertiesMatches+=c.validationResult.propertiesMatches,n.propertiesValueMatches+=c.validationResult.propertiesValueMatches,s.merge(c.matchingSchemas)),a.length};Array.isArray(t.anyOf)&&x(t.anyOf,!1);Array.isArray(t.oneOf)&&x(t.oneOf,!0);var S=function(t){var r=new y,o=s.newSub();C(e,m(t),r,o),n.merge(r),n.propertiesMatches+=r.propertiesMatches,n.propertiesValueMatches+=r.propertiesValueMatches,s.merge(o)},k=m(t.if);k&&function(t,n,r){var o=m(t),i=new y,a=s.newSub();C(e,o,i,a),s.merge(a),i.hasProblems()?r&&S(r):n&&S(n)}(k,m(t.then),m(t.else));if(Array.isArray(t.enum)){for(var T=b(e),j=!1,E=0,O=t.enum;E<O.length;E++){var A=O[E];if(r.equals(T,A)){j=!0;break}}n.enumValues=t.enum,n.enumValueMatch=j,j||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",t.enum.map((function(e){return JSON.stringify(e)})).join(\", \"))})}if(r.isDefined(t.const)){T=b(e);r.equals(T,t.const)?n.enumValueMatch=!0:(n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"constWarning\",\"Value must be {0}.\",JSON.stringify(t.const))}),n.enumValueMatch=!1),n.enumValues=[t.const]}t.deprecationMessage&&e.parent&&n.problems.push({location:{offset:e.parent.offset,length:e.parent.length},severity:o.DiagnosticSeverity.Warning,message:t.deprecationMessage})}(),s.add({node:e,schema:t})}}t.JSONDocument=S,t.parse=function(e,t){var a=[],s=-1,m=e.getText(),g=n.createScanner(m,!1),v=t&&t.collectComments?[]:void 0;function y(){for(;;){var t=g.scan();switch(C(),t){case 12:case 13:Array.isArray(v)&&v.push(o.Range.create(e.positionAt(g.getTokenOffset()),e.positionAt(g.getTokenOffset()+g.getTokenLength())));break;case 15:case 14:break;default:return t}}}function b(t,n,r,i,c){if(void 0===c&&(c=o.DiagnosticSeverity.Error),0===a.length||r!==s){var u=o.Range.create(e.positionAt(r),e.positionAt(i));a.push(o.Diagnostic.create(u,t,c,n,e.languageId)),s=r}}function x(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r=[]),void 0===o&&(o=[]);var i=g.getTokenOffset(),a=g.getTokenOffset()+g.getTokenLength();if(i===a&&i>0){for(i--;i>0&&/\\s/.test(m.charAt(i));)i--;a=i+1}if(b(e,t,i,a),n&&k(n,!1),r.length+o.length>0)for(var s=g.getToken();17!==s;){if(-1!==r.indexOf(s)){y();break}if(-1!==o.indexOf(s))break;s=y()}return n}function C(){switch(g.getTokenError()){case 4:return x(i(\"InvalidUnicode\",\"Invalid unicode sequence in string.\"),o.ErrorCode.InvalidUnicode),!0;case 5:return x(i(\"InvalidEscapeCharacter\",\"Invalid escape character in string.\"),o.ErrorCode.InvalidEscapeCharacter),!0;case 3:return x(i(\"UnexpectedEndOfNumber\",\"Unexpected end of number.\"),o.ErrorCode.UnexpectedEndOfNumber),!0;case 1:return x(i(\"UnexpectedEndOfComment\",\"Unexpected end of comment.\"),o.ErrorCode.UnexpectedEndOfComment),!0;case 2:return x(i(\"UnexpectedEndOfString\",\"Unexpected end of string.\"),o.ErrorCode.UnexpectedEndOfString),!0;case 6:return x(i(\"InvalidCharacter\",\"Invalid characters in string. Control characters must be escaped.\"),o.ErrorCode.InvalidCharacter),!0}return!1}function k(e,t){return e.length=g.getTokenOffset()+g.getTokenLength()-e.offset,t&&y(),e}function T(t,n){var r=new p(t,g.getTokenOffset()),a=j(r);if(!a){if(16!==g.getToken())return null;x(i(\"DoubleQuotesExpected\",\"Property keys must be doublequoted\"),o.ErrorCode.Undefined);var s=new d(r,g.getTokenOffset(),g.getTokenLength());s.value=g.getTokenValue(),a=s,y()}r.keyNode=a;var c=n[a.value];if(c?(b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,r.keyNode.offset,r.keyNode.offset+r.keyNode.length,o.DiagnosticSeverity.Warning),\"object\"==typeof c&&b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,c.keyNode.offset,c.keyNode.offset+c.keyNode.length,o.DiagnosticSeverity.Warning),n[a.value]=!0):n[a.value]=r,6===g.getToken())r.colonOffset=g.getTokenOffset(),y();else if(x(i(\"ColonExpected\",\"Colon expected\"),o.ErrorCode.ColonExpected),10===g.getToken()&&e.positionAt(a.offset+a.length).line<e.positionAt(g.getTokenOffset()).line)return r.length=a.length,r;var u=E(r,a.value);return u?(r.valueNode=u,r.length=u.offset+u.length-r.offset,r):x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,r,[],[2,5])}function j(e){if(10!==g.getToken())return null;var t=new d(e,g.getTokenOffset());return t.value=g.getTokenValue(),k(t,!0)}function E(e,t){return function(e){if(3!==g.getToken())return null;var t=new l(e,g.getTokenOffset());y();for(var n=0,r=!1;4!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected);var a=g.getTokenOffset();if(y(),4===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=E(t,n++);s?t.items.push(s):x(i(\"PropertyExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,null,[],[4,5]),r=!0}return 4!==g.getToken()?x(i(\"ExpectedCloseBracket\",\"Expected comma or closing bracket\"),o.ErrorCode.CommaOrCloseBacketExpected,t):k(t,!0)}(e)||function(e){if(1!==g.getToken())return null;var t=new h(e,g.getTokenOffset()),n=Object.create(null);y();for(var r=!1;2!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected);var a=g.getTokenOffset();if(y(),2===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=T(t,n);s?t.properties.push(s):x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected,null,[],[2,5]),r=!0}return 2!==g.getToken()?x(i(\"ExpectedCloseBrace\",\"Expected comma or closing brace\"),o.ErrorCode.CommaOrCloseBraceExpected,t):k(t,!0)}(e)||j(e)||function(e){if(11!==g.getToken())return null;var t=new f(e,g.getTokenOffset());if(0===g.getTokenError()){var n=g.getTokenValue();try{var a=JSON.parse(n);if(!r.isNumber(a))return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t);t.value=a}catch(e){return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t)}t.isInteger=-1===n.indexOf(\".\")}return k(t,!0)}(e)||function(e){switch(g.getToken()){case 7:return k(new c(e,g.getTokenOffset()),!0);case 8:return k(new u(e,!0,g.getTokenOffset()),!0);case 9:return k(new u(e,!1,g.getTokenOffset()),!0);default:return null}}(e)}var O=null;return 17!==y()&&((O=E(null))?17!==g.getToken()&&x(i(\"End of file expected\",\"End of file expected.\"),o.ErrorCode.Undefined):x(i(\"Invalid symbol\",\"Expected a JSON object, array or literal.\"),o.ErrorCode.Undefined)),new S(O,a,v)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/json\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.stringifyObject=function e(t,n,r){if(null!==t&&\"object\"==typeof t){var o=n+\"\\t\";if(Array.isArray(t)){if(0===t.length)return\"[]\";for(var i=\"[\\n\",a=0;a<t.length;a++)i+=o+e(t[a],o,r),a<t.length-1&&(i+=\",\"),i+=\"\\n\";return i+=n+\"]\"}var s=Object.keys(t);if(0===s.length)return\"{}\";for(i=\"{\\n\",a=0;a<s.length;a++){var c=s[a];i+=o+JSON.stringify(c)+\": \"+e(t[c],o,r),a<s.length-1&&(i+=\",\"),i+=\"\\n\"}return i+=n+\"}\"}return r(t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonCompletion\",[\"require\",\"exports\",\"../parser/jsonParser\",\"jsonc-parser\",\"../utils/json\",\"../utils/strings\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"jsonc-parser\"),o=e(\"../utils/json\"),i=e(\"../utils/strings\"),a=e(\"../utils/objects\"),s=e(\"../jsonLanguageTypes\"),c=e(\"vscode-nls\").loadMessageBundle(),u=function(){function e(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=Promise),void 0===r&&(r={}),this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=r,this.templateVarIdCounter=0}return e.prototype.doResolve=function(e){for(var t=this.contributions.length-1;t>=0;t--)if(this.contributions[t].resolveCompletion){var n=this.contributions[t].resolveCompletion(e);if(n)return n}return this.promiseConstructor.resolve(e)},e.prototype.doComplete=function(e,t,r){var o=this,i={items:[],isIncomplete:!1},a=e.getText(),c=e.offsetAt(t),u=r.getNodeFromOffset(c,!0);if(this.isInComment(e,u?u.offset:0,c))return Promise.resolve(i);if(u&&c===u.offset+u.length&&c>0){var l=a[c-1];(\"object\"===u.type&&\"}\"===l||\"array\"===u.type&&\"]\"===l)&&(u=u.parent)}var f=this.getCurrentWord(e,c),d=null;if(!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type){var p=c-f.length;p>0&&'\"'===a[p-1]&&p--,d=s.Range.create(e.positionAt(p),t)}else d=s.Range.create(e.positionAt(u.offset),e.positionAt(u.offset+u.length));var h={},m={add:function(e){var t=e.label,n=h[t];if(n)n.documentation||(n.documentation=e.documentation);else{if((t=t.replace(/[\\n]/g,\"↵\")).length>60){var r=t.substr(0,57).trim()+\"...\";h[r]||(t=r)}d&&(e.textEdit=s.TextEdit.replace(d,e.insertText)),e.label=t,h[t]=e,i.items.push(e)}},setAsIncomplete:function(){i.isIncomplete=!0},error:function(e){console.error(e)},log:function(e){console.log(e)},getNumberOfProposals:function(){return i.items.length}};return this.schemaService.getSchemaForResource(e.uri,r).then((function(t){var l=[],p=!0,g=\"\",v=null;if(u&&\"string\"===u.type){var y=u.parent;y&&\"property\"===y.type&&y.keyNode===u&&(p=!y.valueNode,v=y,g=a.substr(u.offset+1,u.length-2),y&&(u=y.parent))}if(u&&\"object\"===u.type){if(u.offset===c)return i;u.properties.forEach((function(e){v&&v===e||(h[e.keyNode.value]=s.CompletionItem.create(\"__\"))}));var b=\"\";p&&(b=o.evaluateSeparatorAfter(e,e.offsetAt(d.end))),t?o.getPropertyCompletions(t,r,u,p,b,m):o.getSchemaLessPropertyCompletions(r,u,g,m);var x=n.getNodePath(u);o.contributions.forEach((function(t){var n=t.collectPropertyCompletions(e.uri,x,f,p,\"\"===b,m);n&&l.push(n)})),!t&&f.length>0&&'\"'!==a.charAt(c-f.length-1)&&(m.add({kind:s.CompletionItemKind.Property,label:o.getLabelForValue(f),insertText:o.getInsertTextForProperty(f,null,!1,b),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),m.setAsIncomplete())}var S={};return t?o.getValueCompletions(t,r,u,c,e,m,S):o.getSchemaLessValueCompletions(r,u,c,e,m),o.contributions.length>0&&o.getContributedValueCompletions(r,u,c,e,m,l),o.promiseConstructor.all(l).then((function(){if(0===m.getNumberOfProposals()){var t=c;!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type||(t=u.offset+u.length);var n=o.evaluateSeparatorAfter(e,t);o.addFillerValueCompletions(S,n,m)}return i}))}))},e.prototype.getPropertyCompletions=function(e,t,n,r,o,a){var c=this;t.getMatchingSchemas(e.schema,n.offset).forEach((function(e){if(e.node===n&&!e.inverted){var t=e.schema.properties;t&&Object.keys(t).forEach((function(e){var n=t[e];if(\"object\"==typeof n&&!n.deprecationMessage&&!n.doNotSuggest){var u={kind:s.CompletionItemKind.Property,label:e,insertText:c.getInsertTextForProperty(e,n,r,o),insertTextFormat:s.InsertTextFormat.Snippet,filterText:c.getFilterTextForValue(e),documentation:c.fromMarkup(n.markdownDescription)||n.description||\"\"};i.endsWith(u.insertText,\"$1\"+o)&&(u.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),a.add(u)}}))}}))},e.prototype.getSchemaLessPropertyCompletions=function(e,t,n,r){var o=this,i=function(e){e.properties.forEach((function(e){var t=e.keyNode.value;r.add({kind:s.CompletionItemKind.Property,label:t,insertText:o.getInsertTextForValue(t,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,filterText:o.getFilterTextForValue(t),documentation:\"\"})}))};if(t.parent)if(\"property\"===t.parent.type){var a=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e!==t.parent&&e.keyNode.value===a&&e.valueNode&&\"object\"===e.valueNode.type&&i(e.valueNode),!0}))}else\"array\"===t.parent.type&&t.parent.items.forEach((function(e){\"object\"===e.type&&e!==t&&i(e)}));else\"object\"===t.type&&r.add({kind:s.CompletionItemKind.Property,label:\"$schema\",insertText:this.getInsertTextForProperty(\"$schema\",null,!0,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\",filterText:this.getFilterTextForValue(\"$schema\")})},e.prototype.getSchemaLessValueCompletions=function(e,t,r,o,i){var a=this,c=r;if(!t||\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(c=t.offset+t.length,t=t.parent),!t)return i.add({kind:this.getSuggestionKind(\"object\"),label:\"Empty object\",insertText:this.getInsertTextForValue({},\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),void i.add({kind:this.getSuggestionKind(\"array\"),label:\"Empty array\",insertText:this.getInsertTextForValue([],\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"});var u=this.evaluateSeparatorAfter(o,c),l=function(e){n.contains(e.parent,r,!0)||i.add({kind:a.getSuggestionKind(e.type),label:a.getLabelTextForMatchingNode(e,o),insertText:a.getInsertTextForMatchingNode(e,o,u),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),\"boolean\"===e.type&&a.addBooleanValueCompletion(!e.value,u,i)};if(\"property\"===t.type&&r>t.colonOffset){var f=t.valueNode;if(f&&(r>f.offset+f.length||\"object\"===f.type||\"array\"===f.type))return;var d=t.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===d&&e.valueNode&&l(e.valueNode),!0})),\"$schema\"===d&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(u,i)}if(\"array\"===t.type)if(t.parent&&\"property\"===t.parent.type){var p=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===p&&e.valueNode&&\"array\"===e.valueNode.type&&e.valueNode.items.forEach(l),!0}))}else t.items.forEach(l)},e.prototype.getValueCompletions=function(e,t,n,r,o,i,a){var s=this,c=r,u=null,l=null;if(!n||\"string\"!==n.type&&\"number\"!==n.type&&\"boolean\"!==n.type&&\"null\"!==n.type||(c=n.offset+n.length,l=n,n=n.parent),n){if(\"property\"===n.type&&r>n.colonOffset){var f=n.valueNode;if(f&&r>f.offset+f.length)return;u=n.keyNode.value,n=n.parent}if(n&&(null!==u||\"array\"===n.type)){var d=this.evaluateSeparatorAfter(o,c);t.getMatchingSchemas(e.schema,n.offset,l).forEach((function(e){if(e.node===n&&!e.inverted&&e.schema){if(\"array\"===n.type&&e.schema.items)if(Array.isArray(e.schema.items)){var t=s.findItemAtOffset(n,o,r);t<e.schema.items.length&&s.addSchemaValueCompletions(e.schema.items[t],d,i,a)}else s.addSchemaValueCompletions(e.schema.items,d,i,a);if(e.schema.properties){var c=e.schema.properties[u];c&&s.addSchemaValueCompletions(c,d,i,a)}}})),\"$schema\"!==u||n.parent||this.addDollarSchemaCompletions(d,i),a.boolean&&(this.addBooleanValueCompletion(!0,d,i),this.addBooleanValueCompletion(!1,d,i)),a.null&&this.addNullValueCompletion(d,i)}}else this.addSchemaValueCompletions(e.schema,\"\",i,a)},e.prototype.getContributedValueCompletions=function(e,t,r,o,i,a){if(t){if(\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(t=t.parent),\"property\"===t.type&&r>t.colonOffset){var s=t.keyNode.value,c=t.valueNode;if(!c||r<=c.offset+c.length){var u=n.getNodePath(t.parent);this.contributions.forEach((function(e){var t=e.collectValueCompletions(o.uri,u,s,i);t&&a.push(t)}))}}}else this.contributions.forEach((function(e){var t=e.collectDefaultCompletions(o.uri,i);t&&a.push(t)}))},e.prototype.addSchemaValueCompletions=function(e,t,n,r){var o=this;\"object\"==typeof e&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,r),Array.isArray(e.allOf)&&e.allOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.anyOf)&&e.anyOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.oneOf)&&e.oneOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})))},e.prototype.addDefaultValueCompletions=function(e,t,n,r){var o=this;void 0===r&&(r=0);var i=!1;if(a.isDefined(e.default)){for(var u=e.type,l=e.default,f=r;f>0;f--)l=[l],u=\"array\";n.add({kind:this.getSuggestionKind(u),label:this.getLabelForValue(l),insertText:this.getInsertTextForValue(l,t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"json.suggest.default\",\"Default value\")}),i=!0}Array.isArray(e.examples)&&e.examples.forEach((function(a){for(var c=e.type,u=a,l=r;l>0;l--)u=[u],c=\"array\";n.add({kind:o.getSuggestionKind(c),label:o.getLabelForValue(u),insertText:o.getInsertTextForValue(u,t),insertTextFormat:s.InsertTextFormat.Snippet}),i=!0})),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach((function(c){var u,l,f=e.type,d=c.body,p=c.label;if(a.isDefined(d)){e.type;for(var h=r;h>0;h--)d=[d],\"array\";u=o.getInsertTextForSnippetValue(d,t),l=o.getFilterTextForSnippetValue(d),p=p||o.getLabelForSnippetValue(d)}else if(\"string\"==typeof c.bodyText){var m=\"\",g=\"\",v=\"\";for(h=r;h>0;h--)m=m+v+\"[\\n\",g=g+\"\\n\"+v+\"]\",v+=\"\\t\",f=\"array\";u=m+v+c.bodyText.split(\"\\n\").join(\"\\n\"+v)+g+t,p=p||u,l=u.replace(/[\\n]/g,\"\")}n.add({kind:o.getSuggestionKind(f),label:p,documentation:o.fromMarkup(c.markdownDescription)||c.description,insertText:u,insertTextFormat:s.InsertTextFormat.Snippet,filterText:l}),i=!0})),i||\"object\"!=typeof e.items||Array.isArray(e.items)||this.addDefaultValueCompletions(e.items,t,n,r+1)},e.prototype.addEnumValueCompletions=function(e,t,n){if(a.isDefined(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(var r=0,o=e.enum.length;r<o;r++){var i=e.enum[r],c=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&r<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?c=this.fromMarkup(e.markdownEnumDescriptions[r]):e.enumDescriptions&&r<e.enumDescriptions.length&&(c=e.enumDescriptions[r]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(i),insertText:this.getInsertTextForValue(i,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:c})}},e.prototype.collectTypes=function(e,t){if(!Array.isArray(e.enum)&&!a.isDefined(e.const)){var n=e.type;Array.isArray(n)?n.forEach((function(e){return t[e]=!0})):t[n]=!0}},e.prototype.addFillerValueCompletions=function(e,t,n){e.object&&n.add({kind:this.getSuggestionKind(\"object\"),label:\"{}\",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.object\",\"New object\"),documentation:\"\"}),e.array&&n.add({kind:this.getSuggestionKind(\"array\"),label:\"[]\",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.array\",\"New array\"),documentation:\"\"})},e.prototype.addBooleanValueCompletion=function(e,t,n){n.add({kind:this.getSuggestionKind(\"boolean\"),label:e?\"true\":\"false\",insertText:this.getInsertTextForValue(e,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addNullValueCompletion=function(e,t){t.add({kind:this.getSuggestionKind(\"null\"),label:\"null\",insertText:\"null\"+e,insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addDollarSchemaCompletions=function(e,t){var n=this;this.schemaService.getRegisteredSchemaIds((function(e){return\"http\"===e||\"https\"===e})).forEach((function(r){return t.add({kind:s.CompletionItemKind.Module,label:n.getLabelForValue(r),filterText:n.getFilterTextForValue(r),insertText:n.getInsertTextForValue(r,e),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})}))},e.prototype.getLabelForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getLabelForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getInsertTextForPlainText=function(e){return e.replace(/[\\\\\\$\\}]/g,\"\\\\$&\")},e.prototype.getInsertTextForValue=function(e,t){var n=JSON.stringify(e,null,\"\\t\");return\"{}\"===n?\"{$1}\"+t:\"[]\"===n?\"[$1]\"+t:this.getInsertTextForPlainText(n+t)},e.prototype.getInsertTextForSnippetValue=function(e,t){return o.stringifyObject(e,\"\",(function(e){return\"string\"==typeof e&&\"^\"===e[0]?e.substr(1):JSON.stringify(e)}))+t},e.prototype.getInsertTextForGuessedValue=function(e,t){switch(typeof e){case\"object\":return null===e?\"${1:null}\"+t:this.getInsertTextForValue(e,t);case\"string\":var n=JSON.stringify(e);return n=n.substr(1,n.length-2),'\"${1:'+(n=this.getInsertTextForPlainText(n))+'}\"'+t;case\"number\":case\"boolean\":return\"${1:\"+JSON.stringify(e)+\"}\"+t}return this.getInsertTextForValue(e,t)},e.prototype.getSuggestionKind=function(e){if(Array.isArray(e)){var t=e;e=t.length>0?t[0]:null}if(!e)return s.CompletionItemKind.Value;switch(e){case\"string\":return s.CompletionItemKind.Value;case\"object\":return s.CompletionItemKind.Module;case\"property\":return s.CompletionItemKind.Property;default:return s.CompletionItemKind.Value}},e.prototype.getLabelTextForMatchingNode=function(e,t){switch(e.type){case\"array\":return\"[]\";case\"object\":return\"{}\";default:return t.getText().substr(e.offset,e.length)}},e.prototype.getInsertTextForMatchingNode=function(e,t,n){switch(e.type){case\"array\":return this.getInsertTextForValue([],n);case\"object\":return this.getInsertTextForValue({},n);default:var r=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(r)}},e.prototype.getInsertTextForProperty=function(e,t,n,r){var o=this.getInsertTextForValue(e,\"\");if(!n)return o;var i,s=o+\": \",c=0;if(t){if(Array.isArray(t.defaultSnippets)){if(1===t.defaultSnippets.length){var u=t.defaultSnippets[0].body;a.isDefined(u)&&(i=this.getInsertTextForSnippetValue(u,\"\"))}c+=t.defaultSnippets.length}if(t.enum&&(i||1!==t.enum.length||(i=this.getInsertTextForGuessedValue(t.enum[0],\"\")),c+=t.enum.length),a.isDefined(t.default)&&(i||(i=this.getInsertTextForGuessedValue(t.default,\"\")),c++),Array.isArray(t.examples)&&t.examples.length&&(i||(i=this.getInsertTextForGuessedValue(t.examples[0],\"\")),c+=t.examples.length),0===c){var l=Array.isArray(t.type)?t.type[0]:t.type;switch(l||(t.properties?l=\"object\":t.items&&(l=\"array\")),l){case\"boolean\":i=\"$1\";break;case\"string\":i='\"$1\"';break;case\"object\":i=\"{$1}\";break;case\"array\":i=\"[$1]\";break;case\"number\":case\"integer\":i=\"${1:0}\";break;case\"null\":i=\"${1:null}\";break;default:return o}}}return(!i||c>1)&&(i=\"$1\"),s+i+r},e.prototype.getCurrentWord=function(e,t){for(var n=t-1,r=e.getText();n>=0&&-1===' \\t\\n\\r\\v\":{[,]}'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)},e.prototype.evaluateSeparatorAfter=function(e,t){var n=r.createScanner(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return\"\";default:return\",\"}},e.prototype.findItemAtOffset=function(e,t,n){for(var o=r.createScanner(t.getText(),!0),i=e.items,a=i.length-1;a>=0;a--){var s=i[a];if(n>s.offset+s.length)return o.setPosition(s.offset+s.length),5===o.scan()&&n>=o.getTokenOffset()+o.getTokenLength()?a+1:a;if(n>=s.offset)return a}return 0},e.prototype.isInComment=function(e,t,n){var o=r.createScanner(e.getText(),!1);o.setPosition(t);for(var i=o.scan();17!==i&&o.getTokenOffset()+o.getTokenLength()<n;)i=o.scan();return(12===i||13===i)&&o.getTokenOffset()<=n},e.prototype.fromMarkup=function(e){if(e&&this.doesSupportMarkdown())return{kind:s.MarkupKind.Markdown,value:e}},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e.prototype.doesSupportsCommitCharacters=function(){if(!a.isDefined(this.supportsCommitCharacters)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsCommitCharacters=e&&e.completionItem&&!!e.completionItem.commitCharactersSupport}return this.supportsCommitCharacters},e}();t.JSONCompletion=u})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonHover\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../jsonLanguageTypes\"),o=function(){function e(e,t,n){void 0===t&&(t=[]),this.schemaService=e,this.contributions=t,this.promise=n||Promise}return e.prototype.doHover=function(e,t,o){var a=e.offsetAt(t),s=o.getNodeFromOffset(a);if(!s||(\"object\"===s.type||\"array\"===s.type)&&a>s.offset+1&&a<s.offset+s.length-1)return this.promise.resolve(null);var c=s;if(\"string\"===s.type){var u=s.parent;if(u&&\"property\"===u.type&&u.keyNode===s&&!(s=u.valueNode))return this.promise.resolve(null)}for(var l=r.Range.create(e.positionAt(c.offset),e.positionAt(c.offset+c.length)),f=function(e){return{contents:e,range:l}},d=n.getNodePath(s),p=this.contributions.length-1;p>=0;p--){var h=this.contributions[p].getInfoContribution(e.uri,d);if(h)return h.then((function(e){return f(e)}))}return this.schemaService.getSchemaForResource(e.uri,o).then((function(e){if(e){var t=o.getMatchingSchemas(e.schema,s.offset),r=null,a=null,c=null,u=null;t.every((function(e){if(e.node===s&&!e.inverted&&e.schema&&(r=r||e.schema.title,a=a||e.schema.markdownDescription||i(e.schema.description),e.schema.enum)){var t=e.schema.enum.indexOf(n.getNodeValue(s));e.schema.markdownEnumDescriptions?c=e.schema.markdownEnumDescriptions[t]:e.schema.enumDescriptions&&(c=i(e.schema.enumDescriptions[t])),c&&\"string\"!=typeof(u=e.schema.enum[t])&&(u=JSON.stringify(u))}return!0}));var l=\"\";return r&&(l=i(r)),a&&(l.length>0&&(l+=\"\\n\\n\"),l+=a),c&&(l.length>0&&(l+=\"\\n\\n\"),l+=\"`\"+function(e){if(-1!==e.indexOf(\"`\"))return\"`` \"+e+\" ``\";return e}(u)+\"`: \"+c),f([l])}return null}))},e}();function i(e){if(e)return e.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm,\"$1\\n\\n$3\").replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}t.JSONHover=o}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var o=navigator.userAgent;r=o.indexOf(\"Windows\")>=0}var i=/^\\w[\\w\\d+.-]*$/,a=/^\\//,s=/^\\/\\//;var c=\"/\",u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,l=function(){function e(e,t,n,r,o,u){void 0===u&&(u=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,u),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=o||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!a.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,u))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,o=e.query,i=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===o?o=this.query:null===o&&(o=\"\"),void 0===i?i=this.fragment:null===i&&(i=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&i===this.fragment?this:new d(t,n,r,o,i)},e.parse=function(e,t){void 0===t&&(t=!1);var n=u.exec(e);return n?new d(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new d(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,c)),e[0]===c&&e[1]===c){var n=e.indexOf(c,2);-1===n?(t=e.substring(2),e=c):(t=e.substring(2,n),e=e.substring(n)||c)}return new d(\"file\",t,e,\"\",\"\")},e.from=function(e){return new d(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),v(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new d(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}();t.URI=l;var f=r?1:void 0,d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(l),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function h(e,t){for(var n=void 0,r=-1,o=0;o<e.length;o++){var i=e.charCodeAt(o);if(i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||45===i||46===i||95===i||126===i||t&&47===i)-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var a=p[i];void 0!==a?(-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),n+=a):-1===r&&(r=o)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function v(e,t){var n=t?m:h,r=\"\",o=e.scheme,i=e.authority,a=e.path,s=e.query,u=e.fragment;if(o&&(r+=o,r+=\":\"),(i||\"file\"===o)&&(r+=c,r+=c),i){var l=i.indexOf(\"@\");if(-1!==l){var f=i.substr(0,l);i=i.substr(l+1),-1===(l=f.indexOf(\":\"))?r+=n(f,!1):(r+=n(f.substr(0,l),!1),r+=\":\",r+=n(f.substr(l+1),!1)),r+=\"@\"}-1===(l=(i=i.toLowerCase()).indexOf(\":\"))?r+=n(i,!1):(r+=n(i.substr(0,l),!1),r+=i.substr(l))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(d=a.charCodeAt(1))>=65&&d<=90&&(a=\"/\"+String.fromCharCode(d+32)+\":\"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var d;(d=a.charCodeAt(0))>=65&&d<=90&&(a=String.fromCharCode(d+32)+\":\"+a.substr(2))}r+=n(a,!0)}return s&&(r+=\"?\",r+=n(s,!1)),u&&(r+=\"#\",r+=t?u:h(u,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSchemaService\",[\"require\",\"exports\",\"jsonc-parser\",\"vscode-uri\",\"../utils/strings\",\"../parser/jsonParser\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"vscode-uri\"),o=e(\"../utils/strings\"),i=e(\"../parser/jsonParser\"),a=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(e){try{this.patternRegExp=new RegExp(o.convertSimple2RegExpPattern(e)+\"$\")}catch(e){this.patternRegExp=null}this.schemas=[]}return e.prototype.addSchema=function(e){this.schemas.push(e)},e.prototype.matchesPattern=function(e){return this.patternRegExp&&this.patternRegExp.test(e)},e.prototype.getSchemas=function(){return this.schemas},e}(),c=function(){function e(e,t,n){this.service=e,this.url=t,this.dependencies={},n&&(this.unresolvedSchema=this.service.promise.resolve(new u(n)))}return e.prototype.getUnresolvedSchema=function(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.url)),this.unresolvedSchema},e.prototype.getResolvedSchema=function(){var e=this;return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then((function(t){return e.service.resolveSchemaContent(t,e.url,e.dependencies)}))),this.resolvedSchema},e.prototype.clearSchema=function(){this.resolvedSchema=null,this.unresolvedSchema=null,this.dependencies={}},e}(),u=function(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t};t.UnresolvedSchema=u;var l=function(){function e(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t}return e.prototype.getSection=function(e){return i.asSchema(this.getSectionRecursive(e,this.schema))},e.prototype.getSectionRecursive=function(e,t){if(!t||\"boolean\"==typeof t||0===e.length)return t;var n=e.shift();if(t.properties&&(t.properties[n],1))return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(var r=0,o=Object.keys(t.patternProperties);r<o.length;r++){var i=o[r];if(new RegExp(i).test(n))return this.getSectionRecursive(e,t.patternProperties[i])}else{if(\"object\"==typeof t.additionalProperties)return this.getSectionRecursive(e,t.additionalProperties);if(n.match(\"[0-9]+\"))if(Array.isArray(t.items)){var a=parseInt(n,10);if(!isNaN(a)&&t.items[a])return this.getSectionRecursive(e,t.items[a])}else if(t.items)return this.getSectionRecursive(e,t.items)}return null},e}();t.ResolvedSchema=l;var f=function(){function e(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations={},this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={}}return e.prototype.getRegisteredSchemaIds=function(e){return Object.keys(this.registeredSchemasIds).filter((function(t){var n=r.URI.parse(t).scheme;return\"schemaservice\"!==n&&(!e||e(n))}))},Object.defineProperty(e.prototype,\"promise\",{get:function(){return this.promiseConstructor},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()},e.prototype.onResourceChange=function(e){for(var t=this,n=!1,r=[e=this.normalizeId(e)],o=Object.keys(this.schemasById).map((function(e){return t.schemasById[e]}));r.length;)for(var i=r.pop(),a=0;a<o.length;a++){var s=o[a];s&&(s.url===i||s.dependencies[i])&&(s.url!==i&&r.push(s.url),s.clearSchema(),o[a]=void 0,n=!0)}return n},e.prototype.normalizeId=function(e){try{return r.URI.parse(e).toString()}catch(t){return e}},e.prototype.setSchemaContributions=function(e){if(e.schemas){var t=e.schemas;for(var n in t){var r=this.normalizeId(n);this.contributionSchemas[r]=this.addSchemaHandle(r,t[n])}}if(e.schemaAssociations){var o=e.schemaAssociations;for(var i in o){var a=o[i];this.contributionAssociations[i]=a;for(var s=this.getOrAddFilePatternAssociation(i),c=0,u=a;c<u.length;c++){var l=u[c];n=this.normalizeId(l);s.addSchema(n)}}}},e.prototype.addSchemaHandle=function(e,t){var n=new c(this,e,t);return this.schemasById[e]=n,n},e.prototype.getOrAddSchemaHandle=function(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)},e.prototype.getOrAddFilePatternAssociation=function(e){var t=this.filePatternAssociationById[e];return t||(t=new s(e),this.filePatternAssociationById[e]=t,this.filePatternAssociations.push(t)),t},e.prototype.registerExternalSchema=function(e,t,n){void 0===t&&(t=null);var r=this.normalizeId(e);if(this.registeredSchemasIds[r]=!0,t)for(var o=0,i=t;o<i.length;o++){var a=i[o];this.getOrAddFilePatternAssociation(a).addSchema(r)}return n?this.addSchemaHandle(r,n):this.getOrAddSchemaHandle(r)},e.prototype.clearExternalSchemas=function(){for(var e in this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={},this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(var t in this.contributionAssociations)for(var n=this.getOrAddFilePatternAssociation(t),r=0,o=this.contributionAssociations[t];r<o.length;r++){var i=o[r];e=this.normalizeId(i);n.addSchema(e)}},e.prototype.getResolvedSchema=function(e){var t=this.normalizeId(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(null)},e.prototype.loadSchema=function(e){if(!this.requestService){var t=a(\"json.schema.norequestservice\",\"Unable to load schema from '{0}'. No schema request service available\",d(e));return this.promise.resolve(new u({},[t]))}return this.requestService(e).then((function(t){if(!t){var r=a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': No content.\",d(e));return new u({},[r])}var o,i=[];o=n.parse(t,i);var s=i.length?[a(\"json.schema.invalidFormat\",\"Unable to parse content from '{0}': Parse error at offset {1}.\",d(e),i[0].offset)]:[];return new u(o,s)}),(function(t){var n=t.toString(),r=t.toString().split(\"Error: \");return r.length>1&&(n=r[1]),o.endsWith(n,\".\")&&(n=n.substr(0,n.length-1)),new u({},[a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': {1}.\",d(e),n)])}))},e.prototype.resolveSchemaContent=function(e,t,n){var r=this,o=e.errors.slice(0),i=e.schema;if(i.$schema){var s=this.normalizeId(i.$schema);if(\"http://json-schema.org/draft-03/schema\"===s)return this.promise.resolve(new l({},[a(\"json.schema.draft03.notsupported\",\"Draft-03 schemas are not supported.\")]));\"https://json-schema.org/draft/2019-09/schema\"===s&&e.errors.push(a(\"json.schema.draft201909.notsupported\",\"Draft 2019-09 schemas are not yet fully supported.\"))}var c=this.contextService,u=function(e,t,n,r){var i=function(e,t){if(!t)return e;var n=e;return\"/\"===t[0]&&(t=t.substr(1)),t.split(\"/\").some((function(e){return!(n=n[e])})),n}(t,r);if(i)for(var s in i)i.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(e[s]=i[s]);else o.push(a(\"json.schema.invalidref\",\"$ref '{0}' in '{1}' can not be resolved.\",r,n))},f=function(e,t,n,i,s){c&&!/^\\w+:\\/\\/.*/.test(t)&&(t=c.resolveRelativePath(t,i)),t=r.normalizeId(t);var l=r.getOrAddSchemaHandle(t);return l.getUnresolvedSchema().then((function(r){if(s[t]=!0,r.errors.length){var i=n?t+\"#\"+n:t;o.push(a(\"json.schema.problemloadingref\",\"Problems loading reference '{0}': {1}\",i,r.errors[0]))}return u(e,r.schema,t,n),d(e,r.schema,t,l.dependencies)}))},d=function(e,t,n,o){if(!e||\"object\"!=typeof e)return Promise.resolve(null);for(var i=[e],a=[],s=[],c=function(e){for(var r=[];e.$ref;){var a=e.$ref,c=a.split(\"#\",2);if(delete e.$ref,c[0].length>0)return void s.push(f(e,c[0],c[1],n,o));-1===r.indexOf(a)&&(u(e,t,n,c[1]),r.push(a))}!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];\"object\"==typeof o&&i.push(o)}}(e.items,e.additionalProperties,e.not,e.contains,e.propertyNames,e.if,e.then,e.else),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(\"object\"==typeof o)for(var a in o){var s=o[a];\"object\"==typeof s&&i.push(s)}}}(e.definitions,e.properties,e.patternProperties,e.dependencies),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(Array.isArray(o))for(var a=0,s=o;a<s.length;a++){var c=s[a];\"object\"==typeof c&&i.push(c)}}}(e.anyOf,e.allOf,e.oneOf,e.items)};i.length;){var l=i.pop();a.indexOf(l)>=0||(a.push(l),c(l))}return r.promise.all(s)};return d(i,i,t,n).then((function(e){return new l(i,o)}))},e.prototype.getSchemaForResource=function(e,t){if(t&&t.root&&\"object\"===t.root.type){var n=t.root.properties.filter((function(e){return\"$schema\"===e.keyNode.value&&e.valueNode&&\"string\"===e.valueNode.type}));if(n.length>0){var r=i.getNodeValue(n[0].valueNode);if(r&&o.startsWith(r,\".\")&&this.contextService&&(r=this.contextService.resolveRelativePath(r,e)),r){var a=this.normalizeId(r);return this.getOrAddSchemaHandle(a).getResolvedSchema()}}}for(var s=Object.create(null),c=[],u=0,l=this.filePatternAssociations;u<l.length;u++){var f=l[u];if(f.matchesPattern(e))for(var d=0,p=f.getSchemas();d<p.length;d++){var h=p[d];s[h]||(c.push(h),s[h]=!0)}}return c.length>0?this.createCombinedSchema(e,c).getResolvedSchema():this.promise.resolve(null)},e.prototype.createCombinedSchema=function(e,t){if(1===t.length)return this.getOrAddSchemaHandle(t[0]);var n=\"schemaservice://combinedSchema/\"+encodeURIComponent(e),r={allOf:t.map((function(e){return{$ref:e}}))};return this.addSchemaHandle(n,r)},e}();function d(e){try{var t=r.URI.parse(e);if(\"file\"===t.scheme)return t.fsPath}catch(e){}return e}t.JSONSchemaService=f})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonValidation\",[\"require\",\"exports\",\"./jsonSchemaService\",\"../jsonLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./jsonSchemaService\"),r=e(\"../jsonLanguageTypes\"),o=e(\"vscode-nls\"),i=e(\"../utils/objects\"),a=o.loadMessageBundle(),s=function(){function e(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}return e.prototype.configure=function(e){e&&(this.validationEnabled=e.validate,this.commentSeverity=e.allowComments?void 0:r.DiagnosticSeverity.Error)},e.prototype.doValidation=function(e,t,o,s){var l=this;if(!this.validationEnabled)return this.promise.resolve([]);var f=[],d={},p=function(e){var t=e.range.start.line+\" \"+e.range.start.character+\" \"+e.message;d[t]||(d[t]=!0,f.push(e))},h=function(n){var s=o?u(o.trailingCommas):r.DiagnosticSeverity.Error,c=o?u(o.comments):l.commentSeverity;if(n){if(n.errors.length&&t.root){var d=t.root,h=\"object\"===d.type?d.properties[0]:null;if(h&&\"$schema\"===h.keyNode.value){var m=h.valueNode||h,g=r.Range.create(e.positionAt(m.offset),e.positionAt(m.offset+m.length));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}else{g=r.Range.create(e.positionAt(d.offset),e.positionAt(d.offset+1));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}}else{var v=t.validate(e,n.schema);v&&v.forEach(p)}(function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowComments))return t.allowComments;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return})(n.schema)&&(c=void 0),function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowTrailingCommas))return t.allowTrailingCommas;if(i.isBoolean(t.allowsTrailingCommas))return t.allowsTrailingCommas;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return}(n.schema)&&(s=void 0)}for(var y=0,b=t.syntaxErrors;y<b.length;y++){var x=b[y];if(x.code===r.ErrorCode.TrailingComma){if(\"number\"!=typeof s)continue;x.severity=s}p(x)}if(\"number\"==typeof c){var S=a(\"InvalidCommentToken\",\"Comments are not permitted in JSON.\");t.comments.forEach((function(e){p(r.Diagnostic.create(e,S,c,r.ErrorCode.CommentNotPermitted))}))}return f};if(s){var m=s.id||\"schemaservice://untitled/\"+c++;return this.jsonSchemaService.resolveSchemaContent(new n.UnresolvedSchema(s),m,{}).then((function(e){return h(e)}))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then((function(e){return h(e)}))},e}();t.JSONValidation=s;var c=0;function u(e){switch(e){case\"error\":return r.DiagnosticSeverity.Error;case\"warning\":return r.DiagnosticSeverity.Warning;case\"ignore\":return}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/colors\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});function n(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}t.hexDigit=n,t.colorFromHex=function(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:17*n(e.charCodeAt(4))/255};case 7:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:(16*n(e.charCodeAt(7))+n(e.charCodeAt(8)))/255}}return null},t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonDocumentSymbols\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../utils/strings\",\"../utils/colors\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../utils/strings\"),o=e(\"../utils/colors\"),i=e(\"../jsonLanguageTypes\"),a=function(){function e(e){this.schemaService=e}return e.prototype.findDocumentSymbols=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,l=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===l||r.endsWith(l.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var f=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=i.Location.create(e.uri,s(e,h));if(f.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,location:y}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),f}}}return f}for(var b=[{node:c,containerName:\"\"}],x=0,S=!1,C=[],k=function(t,n){\"array\"===t.type?t.items.forEach((function(e){e&&b.push({node:e,containerName:n})})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=i.Location.create(e.uri,s(e,t)),c=n?n+\".\"+t.keyNode.value:t.keyNode.value;C.push({name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),location:o,containerName:n}),b.push({node:r,containerName:c})}else S=!0}))};x<b.length;){var T=b[x++];k(T.node,T.containerName)}return S&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),C},e.prototype.findDocumentSymbols2=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,l=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===l||r.endsWith(l.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var f=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=s(e,h),b=s(e,v.keyNode);if(f.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,range:y,selectionRange:b}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),f}}}return f}for(var x=[],S=[{node:c,result:x}],C=0,k=!1,T=function(t,n){\"array\"===t.type?t.items.forEach((function(t,r){if(t)if(u>0){u--;var o=s(e,t),i=o,c={name:String(r),kind:a.getSymbolKind(t.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:t})}else k=!0})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=s(e,t),i=s(e,t.keyNode),c={name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:r})}else k=!0}))};C<S.length;){var j=S[C++];T(j.node,j.result)}return k&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),x},e.prototype.getSymbolKind=function(e){switch(e){case\"object\":return i.SymbolKind.Module;case\"string\":return i.SymbolKind.String;case\"number\":return i.SymbolKind.Number;case\"array\":return i.SymbolKind.Array;case\"boolean\":return i.SymbolKind.Boolean;default:return i.SymbolKind.Variable}},e.prototype.getKeyLabel=function(e){var t=e.keyNode.value;return t&&(t=t.replace(/[\\n]/g,\"↵\")),t&&t.trim()?t:'\"'+t+'\"'},e.prototype.findDocumentColors=function(e,t,r){return this.schemaService.getSchemaForResource(e.uri,t).then((function(i){var a=[];if(i)for(var c=r&&\"number\"==typeof r.resultLimit?r.resultLimit:Number.MAX_VALUE,u={},l=0,f=t.getMatchingSchemas(i.schema);l<f.length;l++){var d=f[l];if(!d.inverted&&d.schema&&(\"color\"===d.schema.format||\"color-hex\"===d.schema.format)&&d.node&&\"string\"===d.node.type){var p=String(d.node.offset);if(!u[p]){var h=o.colorFromHex(n.getNodeValue(d.node));if(h){var m=s(e,d.node);a.push({color:h,range:m})}if(u[p]=!0,--c<=0)return r&&r.onResultLimitExceeded&&r.onResultLimitExceeded(e.uri),a}}}return a}))},e.prototype.getColorPresentations=function(e,t,n,r){var o,a=[],s=Math.round(255*n.red),c=Math.round(255*n.green),u=Math.round(255*n.blue);function l(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}return o=1===n.alpha?\"#\"+l(s)+l(c)+l(u):\"#\"+l(s)+l(c)+l(u)+l(Math.round(255*n.alpha)),a.push({label:o,textEdit:i.TextEdit.replace(r,JSON.stringify(o))}),a},e}();function s(e,t){return i.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length))}t.JSONDocumentSymbols=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/configuration\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle();t.schemaContributions={schemaAssociations:{},schemas:{\"http://json-schema.org/draft-04/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),$schema:\"http://json-schema.org/draft-04/schema#\",definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},positiveInteger:{type:\"integer\",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:\"#/definitions/positiveInteger\"},{default:0}]},simpleTypes:{type:\"string\",enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},minItems:1,uniqueItems:!0}},type:\"object\",properties:{id:{type:\"string\",format:\"uri\"},$schema:{type:\"string\",format:\"uri\"},title:{type:\"string\"},description:{type:\"string\"},default:{},multipleOf:{type:\"number\",minimum:0,exclusiveMinimum:!0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"boolean\",default:!1},minimum:{type:\"number\"},exclusiveMinimum:{type:\"boolean\",default:!1},maxLength:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minLength:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},pattern:{type:\"string\",format:\"regex\"},additionalItems:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:{}},maxItems:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minItems:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},uniqueItems:{type:\"boolean\",default:!1},maxProperties:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minProperties:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},required:{allOf:[{$ref:\"#/definitions/stringArray\"}]},additionalProperties:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},enum:{type:\"array\",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:\"string\",enum:[\"date-time\",\"uri\",\"email\",\"hostname\",\"ipv4\",\"ipv6\",\"regex\"]},{type:\"string\"}]},allOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},anyOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},oneOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},not:{allOf:[{$ref:\"#\"}]}},dependencies:{exclusiveMaximum:[\"maximum\"],exclusiveMinimum:[\"minimum\"]},default:{}},\"http://json-schema.org/draft-07/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:\"#/definitions/nonNegativeInteger\"},{default:0}]},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}},type:[\"object\",\"boolean\"],properties:{$id:{type:\"string\",format:\"uri-reference\"},$schema:{type:\"string\",format:\"uri\"},$ref:{type:\"string\",format:\"uri-reference\"},$comment:{type:\"string\"},title:{type:\"string\"},description:{type:\"string\"},default:!0,readOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/definitions/nonNegativeInteger\"},minLength:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},additionalItems:{$ref:\"#\"},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:!0},maxItems:{$ref:\"#/definitions/nonNegativeInteger\"},minItems:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},contains:{$ref:\"#\"},maxProperties:{$ref:\"#/definitions/nonNegativeInteger\"},minProperties:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},required:{$ref:\"#/definitions/stringArray\"},additionalProperties:{$ref:\"#\"},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},propertyNames:{format:\"regex\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},propertyNames:{$ref:\"#\"},const:!0,enum:{type:\"array\",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{type:\"string\"},contentMediaType:{type:\"string\"},contentEncoding:{type:\"string\"},if:{$ref:\"#\"},then:{$ref:\"#\"},else:{$ref:\"#\"},allOf:{$ref:\"#/definitions/schemaArray\"},anyOf:{$ref:\"#/definitions/schemaArray\"},oneOf:{$ref:\"#/definitions/schemaArray\"},not:{$ref:\"#\"}},default:!0}}};var r={id:n(\"schema.json.id\",\"A unique identifier for the schema.\"),$schema:n(\"schema.json.$schema\",\"The schema to verify this document against.\"),title:n(\"schema.json.title\",\"A descriptive title of the element.\"),description:n(\"schema.json.description\",\"A long description of the element. Used in hover menus and suggestions.\"),default:n(\"schema.json.default\",\"A default value. Used by suggestions.\"),multipleOf:n(\"schema.json.multipleOf\",\"A number that should cleanly divide the current value (i.e. have no remainder).\"),maximum:n(\"schema.json.maximum\",\"The maximum numerical value, inclusive by default.\"),exclusiveMaximum:n(\"schema.json.exclusiveMaximum\",\"Makes the maximum property exclusive.\"),minimum:n(\"schema.json.minimum\",\"The minimum numerical value, inclusive by default.\"),exclusiveMinimum:n(\"schema.json.exclusiveMininum\",\"Makes the minimum property exclusive.\"),maxLength:n(\"schema.json.maxLength\",\"The maximum length of a string.\"),minLength:n(\"schema.json.minLength\",\"The minimum length of a string.\"),pattern:n(\"schema.json.pattern\",\"A regular expression to match the string against. It is not implicitly anchored.\"),additionalItems:n(\"schema.json.additionalItems\",\"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),items:n(\"schema.json.items\",\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),maxItems:n(\"schema.json.maxItems\",\"The maximum number of items that can be inside an array. Inclusive.\"),minItems:n(\"schema.json.minItems\",\"The minimum number of items that can be inside an array. Inclusive.\"),uniqueItems:n(\"schema.json.uniqueItems\",\"If all of the items in the array must be unique. Defaults to false.\"),maxProperties:n(\"schema.json.maxProperties\",\"The maximum number of properties an object can have. Inclusive.\"),minProperties:n(\"schema.json.minProperties\",\"The minimum number of properties an object can have. Inclusive.\"),required:n(\"schema.json.required\",\"An array of strings that lists the names of all properties required on this object.\"),additionalProperties:n(\"schema.json.additionalProperties\",\"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),definitions:n(\"schema.json.definitions\",\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),properties:n(\"schema.json.properties\",\"A map of property names to schemas for each property.\"),patternProperties:n(\"schema.json.patternProperties\",\"A map of regular expressions on property names to schemas for matching properties.\"),dependencies:n(\"schema.json.dependencies\",\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),enum:n(\"schema.json.enum\",\"The set of literal values that are valid.\"),type:n(\"schema.json.type\",\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),format:n(\"schema.json.format\",\"Describes the format expected for the value.\"),allOf:n(\"schema.json.allOf\",\"An array of schemas, all of which must match.\"),anyOf:n(\"schema.json.anyOf\",\"An array of schemas, where at least one must match.\"),oneOf:n(\"schema.json.oneOf\",\"An array of schemas, exactly one of which must match.\"),not:n(\"schema.json.not\",\"A schema which must not match.\"),$id:n(\"schema.json.$id\",\"A unique identifier for the schema.\"),$ref:n(\"schema.json.$ref\",\"Reference a definition hosted on any location.\"),$comment:n(\"schema.json.$comment\",\"Comments from schema authors to readers or maintainers of the schema.\"),readOnly:n(\"schema.json.readOnly\",\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),examples:n(\"schema.json.examples\",\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),contains:n(\"schema.json.contains\",'An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema.'),propertyNames:n(\"schema.json.propertyNames\",\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),const:n(\"schema.json.const\",\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),contentMediaType:n(\"schema.json.contentMediaType\",\"Describes the media type of a string property.\"),contentEncoding:n(\"schema.json.contentEncoding\",\"Describes the content encoding of a string property.\"),if:n(\"schema.json.if\",'The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated.'),then:n(\"schema.json.then\",'The \"if\" subschema is used for validation when the \"if\" subschema succeeds.'),else:n(\"schema.json.else\",'The \"else\" subschema is used for validation when the \"if\" subschema fails.')};for(var o in t.schemaContributions.schemas){var i=t.schemaContributions.schemas[o];for(var a in i.properties){var s=i.properties[a];!0===s&&(s=i.properties[a]={});var c=r[a];c?s.description=c:console.log(a+\": localize('schema.json.\"+a+'\\', \"\")')}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonFolding\",[\"require\",\"exports\",\"jsonc-parser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../jsonLanguageTypes\");t.getFoldingRanges=function(e,t){var o=[],i=[],a=[],s=-1,c=n.createScanner(e.getText(),!1),u=c.scan();function l(e){o.push(e),i.push(a.length)}for(;17!==u;){switch(u){case 1:case 3:var f={startLine:h=e.positionAt(c.getTokenOffset()).line,endLine:h,kind:1===u?\"object\":\"array\"};a.push(f);break;case 2:case 4:var d=2===u?\"object\":\"array\";if(a.length>0&&a[a.length-1].kind===d){f=a.pop();var p=e.positionAt(c.getTokenOffset()).line;f&&p>f.startLine+1&&s!==f.startLine&&(f.endLine=p-1,l(f),s=f.startLine)}break;case 13:var h=e.positionAt(c.getTokenOffset()).line,m=e.positionAt(c.getTokenOffset()+c.getTokenLength()).line;1===c.getTokenError()&&h+1<e.lineCount?c.setPosition(e.offsetAt(r.Position.create(h+1,0))):h<m&&(l({startLine:h,endLine:m,kind:r.FoldingRangeKind.Comment}),s=h);break;case 12:var g=e.getText().substr(c.getTokenOffset(),c.getTokenLength()).match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);if(g){p=e.positionAt(c.getTokenOffset()).line;if(g[1]){f={startLine:p,endLine:p,kind:r.FoldingRangeKind.Region};a.push(f)}else{for(var v=a.length-1;v>=0&&a[v].kind!==r.FoldingRangeKind.Region;)v--;if(v>=0){f=a[v];a.length=v,p>f.startLine&&s!==f.startLine&&(f.endLine=p,l(f),s=f.startLine)}}}}u=c.scan()}var y=t&&t.rangeLimit;if(\"number\"!=typeof y||o.length<=y)return o;t&&t.onRangeLimitExceeded&&t.onRangeLimitExceeded(e.uri);for(var b=[],x=0,S=i;x<S.length;x++){(E=S[x])<30&&(b[E]=(b[E]||0)+1)}var C=0,k=0;for(v=0;v<b.length;v++){var T=b[v];if(T){if(T+C>y){k=v;break}C+=T}}var j=[];for(v=0;v<o.length;v++){var E;\"number\"==typeof(E=i[v])&&(E<k||E===k&&C++<y)&&j.push(o[v])}return j}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSelectionRanges\",[\"require\",\"exports\",\"../jsonLanguageTypes\",\"jsonc-parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../jsonLanguageTypes\"),r=e(\"jsonc-parser\");t.getSelectionRanges=function(e,t,o){function i(t,r){return n.Range.create(e.positionAt(t),e.positionAt(r))}var a=r.createScanner(e.getText(),!0);function s(e,t){return a.setPosition(e),a.scan()===t?a.getTokenOffset()+a.getTokenLength():-1}return t.map((function(t){for(var r=e.offsetAt(t),a=o.getNodeFromOffset(r,!0),c=[];a;){switch(a.type){case\"string\":case\"object\":case\"array\":var u=a.offset+1,l=a.offset+a.length-1;u<l&&r>=u&&r<=l&&c.push(i(u,l)),c.push(i(a.offset,a.offset+a.length));break;case\"number\":case\"boolean\":case\"null\":case\"property\":c.push(i(a.offset,a.offset+a.length))}if(\"property\"===a.type||a.parent&&\"array\"===a.parent.type){var f=s(a.offset+a.length,5);-1!==f&&c.push(i(a.offset,f))}a=a.parent}for(var d=void 0,p=c.length-1;p>=0;p--)d=n.SelectionRange.create(c[p],d);return d||(d=n.SelectionRange.create(n.Range.create(t,t))),d}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageService\",[\"require\",\"exports\",\"./services/jsonCompletion\",\"./services/jsonHover\",\"./services/jsonValidation\",\"./services/jsonDocumentSymbols\",\"./parser/jsonParser\",\"./services/configuration\",\"./services/jsonSchemaService\",\"./services/jsonFolding\",\"./services/jsonSelectionRanges\",\"jsonc-parser\",\"./jsonLanguageTypes\",\"./jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./services/jsonCompletion\"),r=e(\"./services/jsonHover\"),o=e(\"./services/jsonValidation\"),i=e(\"./services/jsonDocumentSymbols\"),a=e(\"./parser/jsonParser\"),s=e(\"./services/configuration\"),c=e(\"./services/jsonSchemaService\"),u=e(\"./services/jsonFolding\"),l=e(\"./services/jsonSelectionRanges\"),f=e(\"jsonc-parser\"),d=e(\"./jsonLanguageTypes\");!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./jsonLanguageTypes\")),t.getLanguageService=function(e){var t=e.promiseConstructor||Promise,p=new c.JSONSchemaService(e.schemaRequestService,e.workspaceContext,t);p.setSchemaContributions(s.schemaContributions);var h=new n.JSONCompletion(p,e.contributions,t,e.clientCapabilities),m=new r.JSONHover(p,e.contributions,t),g=new i.JSONDocumentSymbols(p),v=new o.JSONValidation(p,t);return{configure:function(e){p.clearExternalSchemas(),e.schemas&&e.schemas.forEach((function(e){p.registerExternalSchema(e.uri,e.fileMatch,e.schema)})),v.configure(e)},resetSchema:function(e){return p.onResourceChange(e)},doValidation:v.doValidation.bind(v),parseJSONDocument:function(e){return a.parse(e,{collectComments:!0})},newJSONDocument:function(e,t){return a.newJSONDocument(e,t)},doResolve:h.doResolve.bind(h),doComplete:h.doComplete.bind(h),findDocumentSymbols:g.findDocumentSymbols.bind(g),findDocumentSymbols2:g.findDocumentSymbols2.bind(g),findColorSymbols:function(e,t){return g.findDocumentColors(e,t).then((function(e){return e.map((function(e){return e.range}))}))},findDocumentColors:g.findDocumentColors.bind(g),getColorPresentations:g.getColorPresentations.bind(g),doHover:m.doHover.bind(m),getFoldingRanges:u.getFoldingRanges,getSelectionRanges:l.getSelectionRanges,format:function(e,t,n){var r=void 0;if(t){var o=e.offsetAt(t.start);r={offset:o,length:e.offsetAt(t.end)-o}}var i={tabSize:n?n.tabSize:4,insertSpaces:!n||n.insertSpaces,eol:\"\\n\"};return f.format(e.getText(),r,i).map((function(t){return d.TextEdit.replace(d.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length)),t.content)}))}}}})),define(\"vscode-json-languageservice\",[\"vscode-json-languageservice/jsonLanguageService\"],(function(e){return e})),define(\"vs/language/json/languageFeatures\",[\"require\",\"exports\",\"vscode-json-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});monaco.Uri;var r=monaco.Range,o=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var o=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},i=function(e){monaco.editor.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(o)),this._disposables.push(monaco.editor.onWillDisposeModel((function(e){i(e),r._resetSchema(e.uri)}))),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){i(e.model),o(e.model),r._resetSchema(e.model.uri)}))),this._disposables.push(n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===r._languageId&&(i(e),o(e))}))}))),this._disposables.push({dispose:function(){for(var e in monaco.editor.getModels().forEach(i),r._listener)r._listener[e].dispose()}}),monaco.editor.getModels().forEach(o)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._resetSchema=function(e){this._worker().then((function(t){t.resetSchema(e.toString())}))},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var r=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:i(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n})),o=monaco.editor.getModel(e);o&&o.getModeId()===t&&monaco.editor.setModelMarkers(o,t,r)}))})).then(void 0,(function(e){console.error(e)}))},e}();function i(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function a(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function s(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function c(e){if(e)return new r(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function u(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function l(e){if(e)return{range:c(e.range),text:e.newText}}t.DiagnosticsAdapter=o;var f=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\" \",\":\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,o,i){var s=e.uri;return this._worker(s).then((function(e){return e.doComplete(s.toString(),a(t))})).then((function(o){if(o){var i=e.getWordUntilPosition(t),a=new r(t.lineNumber,i.startColumn,t.lineNumber,i.endColumn),s=o.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:a,kind:u(e.kind)};return e.textEdit&&(t.range=c(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(l)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:o.isIncomplete,suggestions:s}}}))},e}();function d(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function p(e){if(e)return Array.isArray(e)?e.map(d):[d(e)]}t.CompletionAdapter=f;var h=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),a(t))})).then((function(e){if(e)return{range:c(e.range),contents:p(e.contents)}}))},e}();function m(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.HoverAdapter=h;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:m(e.kind),range:c(e.location.range),selectionRange:c(e.location.range),tags:[]}}))}))},e}();function v(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}t.DocumentSymbolAdapter=g;var y=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),null,v(t)).then((function(e){if(e&&0!==e.length)return e.map(l)}))}))},e}();t.DocumentFormattingEditProvider=y;var b=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){var o=e.uri;return this._worker(o).then((function(e){return e.format(o.toString(),s(t),v(n)).then((function(e){if(e&&0!==e.length)return e.map(l)}))}))},e}();t.DocumentRangeFormattingEditProvider=b;var x=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:c(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,s(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=l(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(l)),t}))}))},e}();t.DocumentColorAdapter=x;var S=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,r){var o=e.uri;return this._worker(o).then((function(e){return e.getFoldingRanges(o.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=S;var C=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(a))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:c(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=C})),define(\"vs/language/json/tokenization\",[\"require\",\"exports\",\"jsonc-parser\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createTokenizationSupport=function(e){return{getInitialState:function(){return new r(null,null,!1)},tokenize:function(o,i,a,s){return function(e,o,i,a,s){void 0===a&&(a=0);var c=0,u=!1;switch(i.scanError){case 2:o='\"'+o,c=1;break;case 1:o=\"/*\"+o,c=2}var l,f,d=n.createScanner(o),p=i.lastWasColon;f={tokens:[],endState:i.clone()};for(;;){var h=a+d.getPosition(),m=\"\";if(17===(l=d.scan()))break;if(h===a+d.getPosition())throw new Error(\"Scanner did not advance, next 3 characters are: \"+o.substr(d.getPosition(),3));switch(u&&(h-=c),u=c>0,l){case 1:case 2:m=t.TOKEN_DELIM_OBJECT,p=!1;break;case 3:case 4:m=t.TOKEN_DELIM_ARRAY,p=!1;break;case 6:m=t.TOKEN_DELIM_COLON,p=!0;break;case 5:m=t.TOKEN_DELIM_COMMA,p=!1;break;case 8:case 9:m=t.TOKEN_VALUE_BOOLEAN,p=!1;break;case 7:m=t.TOKEN_VALUE_NULL,p=!1;break;case 10:m=p?t.TOKEN_VALUE_STRING:t.TOKEN_PROPERTY_NAME,p=!1;break;case 11:m=t.TOKEN_VALUE_NUMBER,p=!1}if(e)switch(l){case 12:m=t.TOKEN_COMMENT_LINE;break;case 13:m=t.TOKEN_COMMENT_BLOCK}f.endState=new r(i.getStateData(),d.getTokenError(),p),f.tokens.push({startIndex:h,scopes:m})}return f}(e,o,i,a)}}},t.TOKEN_DELIM_OBJECT=\"delimiter.bracket.json\",t.TOKEN_DELIM_ARRAY=\"delimiter.array.json\",t.TOKEN_DELIM_COLON=\"delimiter.colon.json\",t.TOKEN_DELIM_COMMA=\"delimiter.comma.json\",t.TOKEN_VALUE_BOOLEAN=\"keyword.json\",t.TOKEN_VALUE_NULL=\"keyword.json\",t.TOKEN_VALUE_STRING=\"string.value.json\",t.TOKEN_VALUE_NUMBER=\"number.json\",t.TOKEN_PROPERTY_NAME=\"string.key.json\",t.TOKEN_COMMENT_BLOCK=\"comment.block.json\",t.TOKEN_COMMENT_LINE=\"comment.line.json\";var r=function(){function e(e,t,n){this._state=e,this.scanError=t,this.lastWasColon=n}return e.prototype.clone=function(){return new e(this._state,this.scanError,this.lastWasColon)},e.prototype.equals=function(t){return t===this||!!(t&&t instanceof e)&&(this.scanError===t.scanError&&this.lastWasColon===t.lastWasColon)},e.prototype.getStateData=function(){return this._state},e.prototype.setStateData=function(e){this._state=e},e}()})),define(\"vs/language/json/jsonMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\",\"./tokenization\"],(function(e,t,n,r,o){\"use strict\";function i(e){return{dispose:function(){return a(e)}}}function a(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode=function(e){var t=[],c=[],u=new n.WorkerManager(e);t.push(u);var l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.getLanguageServiceWorker.apply(u,e)};function f(){var t=e.languageId,n=e.modeConfiguration;a(c),n.documentFormattingEdits&&c.push(monaco.languages.registerDocumentFormattingEditProvider(t,new r.DocumentFormattingEditProvider(l))),n.documentRangeFormattingEdits&&c.push(monaco.languages.registerDocumentRangeFormattingEditProvider(t,new r.DocumentRangeFormattingEditProvider(l))),n.completionItems&&c.push(monaco.languages.registerCompletionItemProvider(t,new r.CompletionAdapter(l))),n.hovers&&c.push(monaco.languages.registerHoverProvider(t,new r.HoverAdapter(l))),n.documentSymbols&&c.push(monaco.languages.registerDocumentSymbolProvider(t,new r.DocumentSymbolAdapter(l))),n.tokens&&c.push(monaco.languages.setTokensProvider(t,o.createTokenizationSupport(!0))),n.colors&&c.push(monaco.languages.registerColorProvider(t,new r.DocumentColorAdapter(l))),n.foldingRanges&&c.push(monaco.languages.registerFoldingRangeProvider(t,new r.FoldingRangeAdapter(l))),n.diagnostics&&c.push(new r.DiagnosticsAdapter(t,l,e)),n.selectionRanges&&c.push(monaco.languages.registerSelectionRangeProvider(t,new r.SelectionRangeAdapter(l)))}f(),t.push(monaco.languages.setLanguageConfiguration(e.languageId,s));var d=e.modeConfiguration;return e.onDidChange((function(e){e.modeConfiguration!==d&&(d=e.modeConfiguration,f())})),t.push(i(c)),i(t)};var s={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]}]}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/json/jsonWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/scanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function r(e){return 10===e||13===e||8232===e||8233===e}function o(e){return e>=48&&e<=57}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScanner=function(e,t){void 0===t&&(t=!1);var i=e.length,a=0,s=\"\",c=0,u=16,f=0,l=0,d=0,p=0,h=0;function m(t,n){for(var r=0,o=0;r<t||!n;){var i=e.charCodeAt(a);if(i>=48&&i<=57)o=16*o+i-48;else if(i>=65&&i<=70)o=16*o+i-65+10;else{if(!(i>=97&&i<=102))break;o=16*o+i-97+10}a++,r++}return r<t&&(o=-1),o}function g(){if(s=\"\",h=0,c=a,l=f,p=d,a>=i)return c=i,u=17;var t=e.charCodeAt(a);if(n(t)){do{a++,s+=String.fromCharCode(t),t=e.charCodeAt(a)}while(n(t));return u=15}if(r(t))return a++,s+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,s+=\"\\n\"),f++,d=a,u=14;switch(t){case 123:return a++,u=1;case 125:return a++,u=2;case 91:return a++,u=3;case 93:return a++,u=4;case 58:return a++,u=6;case 44:return a++,u=5;case 34:return a++,s=function(){for(var t=\"\",n=a;;){if(a>=i){t+=e.substring(n,a),h=2;break}var o=e.charCodeAt(a);if(34===o){t+=e.substring(n,a),a++;break}if(92!==o){if(o>=0&&o<=31){if(r(o)){t+=e.substring(n,a),h=2;break}h=6}a++}else{if(t+=e.substring(n,a),++a>=i){h=2;break}switch(e.charCodeAt(a++)){case 34:t+='\"';break;case 92:t+=\"\\\\\";break;case 47:t+=\"/\";break;case 98:t+=\"\\b\";break;case 102:t+=\"\\f\";break;case 110:t+=\"\\n\";break;case 114:t+=\"\\r\";break;case 116:t+=\"\\t\";break;case 117:var s=m(4,!0);s>=0?t+=String.fromCharCode(s):h=4;break;default:h=5}n=a}}return t}(),u=10;case 47:var g=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;a<i&&!r(e.charCodeAt(a));)a++;return s=e.substring(g,a),u=12}if(42===e.charCodeAt(a+1)){a+=2;for(var y=i-1,b=!1;a<y;){var x=e.charCodeAt(a);if(42===x&&47===e.charCodeAt(a+1)){a+=2,b=!0;break}a++,r(x)&&(13===x&&10===e.charCodeAt(a)&&a++,f++,d=a)}return b||(a++,h=1),s=e.substring(g,a),u=13}return s+=String.fromCharCode(t),a++,u=16;case 45:if(s+=String.fromCharCode(t),++a===i||!o(e.charCodeAt(a)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=function(){var t=a;if(48===e.charCodeAt(a))a++;else for(a++;a<e.length&&o(e.charCodeAt(a));)a++;if(a<e.length&&46===e.charCodeAt(a)){if(!(++a<e.length&&o(e.charCodeAt(a))))return h=3,e.substring(t,a);for(a++;a<e.length&&o(e.charCodeAt(a));)a++}var n=a;if(a<e.length&&(69===e.charCodeAt(a)||101===e.charCodeAt(a)))if((++a<e.length&&43===e.charCodeAt(a)||45===e.charCodeAt(a))&&a++,a<e.length&&o(e.charCodeAt(a))){for(a++;a<e.length&&o(e.charCodeAt(a));)a++;n=a}else h=3;return e.substring(t,n)}(),u=11;default:for(;a<i&&v(t);)a++,t=e.charCodeAt(a);if(c!==a){switch(s=e.substring(c,a)){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return s+=String.fromCharCode(t),a++,u=16}}function v(e){if(n(e)||r(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){a=e,s=\"\",c=0,u=16,h=0},getPosition:function(){return a},scan:t?function(){var e;do{e=g()}while(e>=12&&e<=15);return e}:g,getToken:function(){return u},getTokenValue:function(){return s},getTokenOffset:function(){return c},getTokenLength:function(){return a-c},getTokenStartLine:function(){return l},getTokenStartCharacter:function(){return c-p},getTokenError:function(){return h}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/format\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scanner\");function r(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n}function o(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}t.format=function(e,t,i){var a,s,c,u,f;if(t){for(u=t.offset,f=u+t.length,c=u;c>0&&!o(e,c-1);)c--;for(var l=f;l<e.length&&!o(e,l);)l++;s=e.substring(c,l),a=function(e,t){var n=0,r=0,o=t.tabSize||4;for(;n<e.length;){var i=e.charAt(n);if(\" \"===i)r++;else{if(\"\\t\"!==i)break;r+=o}n++}return Math.floor(r/o)}(s,i)}else s=e,a=0,c=0,u=0,f=e.length;var d,p=function(e,t){for(var n=0;n<t.length;n++){var r=t.charAt(n);if(\"\\r\"===r)return n+1<t.length&&\"\\n\"===t.charAt(n+1)?\"\\r\\n\":\"\\r\";if(\"\\n\"===r)return\"\\n\"}return e&&e.eol||\"\\n\"}(i,e),h=!1,m=0;d=i.insertSpaces?r(\" \",i.tabSize||4):\"\\t\";var g=n.createScanner(s,!1),v=!1;function y(){return p+r(d,a+m)}function b(){var e=g.scan();for(h=!1;15===e||14===e;)h=h||14===e,e=g.scan();return v=16===e||0!==g.getTokenError(),e}var x=[];function S(t,n,r){!v&&n<f&&r>u&&e.substring(n,r)!==t&&x.push({offset:n,length:r-n,content:t})}var C=b();if(17!==C){var j=g.getTokenOffset()+c;S(r(d,a),c,j)}for(;17!==C;){for(var T=g.getTokenOffset()+g.getTokenLength()+c,k=b(),O=\"\";!h&&(12===k||13===k);){S(\" \",T,g.getTokenOffset()+c),T=g.getTokenOffset()+g.getTokenLength()+c,O=12===k?y():\"\",k=b()}if(2===k)1!==C&&(m--,O=y());else if(4===k)3!==C&&(m--,O=y());else{switch(C){case 3:case 1:m++,O=y();break;case 5:case 12:O=y();break;case 13:O=h?y():\" \";break;case 6:O=\" \";break;case 10:if(6===k){O=\"\";break}case 7:case 8:case 9:case 11:case 2:case 4:12===k||13===k?O=\" \":5!==k&&17!==k&&(v=!0);break;case 16:v=!0}!h||12!==k&&13!==k||(O=y())}S(O,T,g.getTokenOffset()+c),C=k}return x},t.isEOL=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/parser\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"./scanner\");function o(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}function i(e,t,o){void 0===o&&(o=n.DEFAULT);var i=r.createScanner(e,!1);function a(e){return e?function(){return e(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}function s(e){return e?function(t){return e(t,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}var c=a(t.onObjectBegin),u=s(t.onObjectProperty),f=a(t.onObjectEnd),l=a(t.onArrayBegin),d=a(t.onArrayEnd),p=s(t.onLiteralValue),h=s(t.onSeparator),m=a(t.onComment),g=s(t.onError),v=o&&o.disallowComments,y=o&&o.allowTrailingComma;function b(){for(;;){var e=i.scan();switch(i.getTokenError()){case 4:x(14);break;case 5:x(15);break;case 3:x(13);break;case 1:v||x(11);break;case 2:x(12);break;case 6:x(16)}switch(e){case 12:case 13:v?x(10):m();break;case 16:x(1);break;case 15:case 14:break;default:return e}}}function x(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=[]),g(e),t.length+n.length>0)for(var r=i.getToken();17!==r;){if(-1!==t.indexOf(r)){b();break}if(-1!==n.indexOf(r))break;r=b()}}function S(e){var t=i.getTokenValue();return e?p(t):u(t),b(),!0}function C(){switch(i.getToken()){case 3:return function(){l(),b();for(var e=!1;4!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),4===i.getToken()&&y)break}else e&&x(6,[],[]);C()||x(4,[],[4,5]),e=!0}return d(),4!==i.getToken()?x(8,[4],[]):b(),!0}();case 1:return function(){c(),b();for(var e=!1;2!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),2===i.getToken()&&y)break}else e&&x(6,[],[]);(10!==i.getToken()?(x(3,[],[2,5]),0):(S(!1),6===i.getToken()?(h(\":\"),b(),C()||x(4,[],[2,5])):x(5,[],[2,5]),1))||x(4,[],[2,5]),e=!0}return f(),2!==i.getToken()?x(7,[2],[]):b(),!0}();case 10:return S(!0);default:return function(){switch(i.getToken()){case 11:var e=0;try{\"number\"!=typeof(e=JSON.parse(i.getTokenValue()))&&(x(2),e=0)}catch(e){x(2)}p(e);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return b(),!0}()}}return b(),17===i.getToken()?!!o.allowEmptyContent||(x(4,[],[]),!1):C()?(17!==i.getToken()&&x(9,[],[]),!0):(x(4,[],[]),!1)}function a(e){switch(typeof e){case\"boolean\":return\"boolean\";case\"number\":return\"number\";case\"string\":return\"string\";case\"object\":return e?Array.isArray(e)?\"array\":\"object\":\"null\";default:return\"null\"}}!function(e){e.DEFAULT={allowTrailingComma:!1}}(n||(n={})),t.getLocation=function(e,t){var n=[],r=new Object,o=void 0,s={value:{},offset:0,length:0,type:\"object\",parent:void 0},c=!1;function u(e,t,n,r){s.value=e,s.offset=t,s.length=n,s.type=r,s.colonOffset=void 0,o=s}try{i(e,{onObjectBegin:function(e,i){if(t<=e)throw r;o=void 0,c=t>e,n.push(\"\")},onObjectProperty:function(e,o,i){if(t<o)throw r;if(u(e,o,i,\"property\"),n[n.length-1]=e,t<=o+i)throw r},onObjectEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onArrayBegin:function(e,i){if(t<=e)throw r;o=void 0,n.push(0)},onArrayEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onLiteralValue:function(e,n,o){if(t<n)throw r;if(u(e,n,o,a(e)),t<=n+o)throw r},onSeparator:function(e,i,a){if(t<=i)throw r;if(\":\"===e&&o&&\"property\"===o.type)o.colonOffset=i,c=!1,o=void 0;else if(\",\"===e){var s=n[n.length-1];\"number\"==typeof s?n[n.length-1]=s+1:(c=!0,n[n.length-1]=\"\"),o=void 0}}})}catch(e){if(e!==r)throw e}return{path:n,previousNode:o,isAtPropertyKey:c,matches:function(e){for(var t=0,r=0;t<e.length&&r<n.length;r++)if(e[t]===n[r]||\"*\"===e[t])t++;else if(\"**\"!==e[t])return!1;return t===e.length}}},t.parse=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o=null,a=[],s=[];function c(e){Array.isArray(a)?a.push(e):null!==o&&(a[o]=e)}return i(e,{onObjectBegin:function(){var e={};c(e),s.push(a),a=e,o=null},onObjectProperty:function(e){o=e},onObjectEnd:function(){a=s.pop()},onArrayBegin:function(){var e=[];c(e),s.push(a),a=e,o=null},onArrayEnd:function(){a=s.pop()},onLiteralValue:c,onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r),a[0]},t.parseTree=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o={type:\"array\",offset:-1,length:-1,children:[],parent:void 0};function s(e){\"property\"===o.type&&(o.length=e-o.offset,o=o.parent)}function c(e){return o.children.push(e),e}i(e,{onObjectBegin:function(e){o=c({type:\"object\",offset:e,length:-1,parent:o,children:[]})},onObjectProperty:function(e,t,n){(o=c({type:\"property\",offset:t,length:-1,parent:o,children:[]})).children.push({type:\"string\",value:e,offset:t,length:n,parent:o})},onObjectEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onArrayBegin:function(e,t){o=c({type:\"array\",offset:e,length:-1,parent:o,children:[]})},onArrayEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onLiteralValue:function(e,t,n){c({type:a(e),offset:t,length:n,parent:o,value:e}),s(t+n)},onSeparator:function(e,t,n){\"property\"===o.type&&(\":\"===e?o.colonOffset=t:\",\"===e&&s(t))},onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r);var u=o.children[0];return u&&delete u.parent,u},t.findNodeAtLocation=function(e,t){if(e){for(var n=e,r=0,o=t;r<o.length;r++){var i=o[r];if(\"string\"==typeof i){if(\"object\"!==n.type||!Array.isArray(n.children))return;for(var a=!1,s=0,c=n.children;s<c.length;s++){var u=c[s];if(Array.isArray(u.children)&&u.children[0].value===i){n=u.children[1],a=!0;break}}if(!a)return}else{var f=i;if(\"array\"!==n.type||f<0||!Array.isArray(n.children)||f>=n.children.length)return;n=n.children[f]}}return n}},t.getNodePath=function e(t){if(!t.parent||!t.parent.children)return[];var n=e(t.parent);if(\"property\"===t.parent.type){var r=t.parent.children[0].value;n.push(r)}else if(\"array\"===t.parent.type){var o=t.parent.children.indexOf(t);-1!==o&&n.push(o)}return n},t.getNodeValue=function e(t){switch(t.type){case\"array\":return t.children.map(e);case\"object\":for(var n=Object.create(null),r=0,o=t.children;r<o.length;r++){var i=o[r],a=i.children[1];a&&(n[i.children[0].value]=e(a))}return n;case\"null\":case\"string\":case\"number\":case\"boolean\":return t.value;default:return}},t.contains=o,t.findNodeAtOffset=function e(t,n,r){if(void 0===r&&(r=!1),o(t,n,r)){var i=t.children;if(Array.isArray(i))for(var a=0;a<i.length&&i[a].offset<=n;a++){var s=e(i[a],n,r);if(s)return s}return t}},t.visit=i,t.stripComments=function(e,t){var n,o,i=r.createScanner(e),a=[],s=0;do{switch(o=i.getPosition(),n=i.scan()){case 12:case 13:case 17:s!==o&&a.push(e.substring(s,o)),void 0!==t&&a.push(i.getTokenValue().replace(/[^\\r\\n]/g,t)),s=i.getPosition()}}while(17!==n);return a.join(\"\")},t.getNodeType=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/edit\",[\"require\",\"exports\",\"./format\",\"./parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./format\"),r=e(\"./parser\");function o(e,t,n,o,a){for(var s,c=t.slice(),u=r.parseTree(e,[]),f=void 0,l=void 0;c.length>0&&(l=c.pop(),void 0===(f=r.findNodeAtLocation(u,c))&&void 0!==n);)\"string\"==typeof l?((s={})[l]=n,n=s):n=[n];if(f){if(\"object\"===f.type&&\"string\"==typeof l&&Array.isArray(f.children)){var d=r.findNodeAtLocation(f,[l]);if(void 0!==d){if(void 0===n){if(!d.parent)throw new Error(\"Malformed AST\");var p=f.children.indexOf(d.parent),h=void 0,m=d.parent.offset+d.parent.length;if(p>0)h=(S=f.children[p-1]).offset+S.length;else if(h=f.offset+1,f.children.length>1)m=f.children[1].offset;return i(e,{offset:h,length:m-h,content:\"\"},o)}return i(e,{offset:d.offset,length:d.length,content:JSON.stringify(n)},o)}if(void 0===n)return[];var g=JSON.stringify(l)+\": \"+JSON.stringify(n),v=a?a(f.children.map((function(e){return e.children[0].value}))):f.children.length,y=void 0;return i(e,y=v>0?{offset:(S=f.children[v-1]).offset+S.length,length:0,content:\",\"+g}:0===f.children.length?{offset:f.offset+1,length:0,content:g}:{offset:f.offset+1,length:0,content:g+\",\"},o)}if(\"array\"===f.type&&\"number\"==typeof l&&Array.isArray(f.children)){if(-1===l){g=\"\"+JSON.stringify(n),y=void 0;if(0===f.children.length)y={offset:f.offset+1,length:0,content:g};else y={offset:(S=f.children[f.children.length-1]).offset+S.length,length:0,content:\",\"+g};return i(e,y,o)}if(void 0===n&&f.children.length>=0){var b=l,x=f.children[b];y=void 0;if(1===f.children.length)y={offset:f.offset+1,length:f.length-2,content:\"\"};else if(f.children.length-1===b){var S,C=(S=f.children[b-1]).offset+S.length;y={offset:C,length:f.offset+f.length-2-C,content:\"\"}}else y={offset:x.offset,length:f.children[b+1].offset-x.offset,content:\"\"};return i(e,y,o)}throw new Error(\"Array modification not supported yet\")}throw new Error(\"Can not add \"+(\"number\"!=typeof l?\"index\":\"property\")+\" to parent of type \"+f.type)}if(void 0===n)throw new Error(\"Can not delete in empty document\");return i(e,{offset:u?u.offset:0,length:u?u.length:0,content:JSON.stringify(n)},o)}function i(e,t,r){var o=a(e,t),i=t.offset,s=t.offset+t.content.length;if(0===t.length||0===t.content.length){for(;i>0&&!n.isEOL(o,i-1);)i--;for(;s<o.length&&!n.isEOL(o,s);)s++}for(var c=n.format(o,{offset:i,length:s-i},r),u=c.length-1;u>=0;u--){var f=c[u];o=a(o,f),i=Math.min(i,f.offset),s=Math.max(s,f.offset+f.length),s+=f.content.length-f.length}return[{offset:i,length:e.length-(o.length-s)-i,content:o.substring(i,s)}]}function a(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}t.removeProperty=function(e,t,n){return o(e,t,void 0,n)},t.setProperty=o,t.applyEdit=a,t.isWS=function(e,t){return-1!==\"\\r\\n \\t\".indexOf(e.charAt(t))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/main\",[\"require\",\"exports\",\"./impl/format\",\"./impl/edit\",\"./impl/scanner\",\"./impl/parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./impl/format\"),r=e(\"./impl/edit\"),o=e(\"./impl/scanner\"),i=e(\"./impl/parser\");t.createScanner=o.createScanner,t.getLocation=i.getLocation,t.parse=i.parse,t.parseTree=i.parseTree,t.findNodeAtLocation=i.findNodeAtLocation,t.findNodeAtOffset=i.findNodeAtOffset,t.getNodePath=i.getNodePath,t.getNodeValue=i.getNodeValue,t.visit=i.visit,t.stripComments=i.stripComments,t.printParseErrorCode=function(e){switch(e){case 1:return\"InvalidSymbol\";case 2:return\"InvalidNumberFormat\";case 3:return\"PropertyNameExpected\";case 4:return\"ValueExpected\";case 5:return\"ColonExpected\";case 6:return\"CommaExpected\";case 7:return\"CloseBraceExpected\";case 8:return\"CloseBracketExpected\";case 9:return\"EndOfFileExpected\";case 10:return\"InvalidCommentToken\";case 11:return\"UnexpectedEndOfComment\";case 12:return\"UnexpectedEndOfString\";case 13:return\"UnexpectedEndOfNumber\";case 14:return\"InvalidUnicode\";case 15:return\"InvalidEscapeCharacter\";case 16:return\"InvalidCharacter\"}return\"<unknown ParseErrorCode>\"},t.format=function(e,t,r){return n.format(e,t,r)},t.modify=function(e,t,n,o){return r.setProperty(e,t,n,o.formattingOptions,o.getInsertionIndex)},t.applyEdits=function(e,t){for(var n=t.length-1;n>=0;n--)e=r.applyEdit(e,t[n]);return e}})),define(\"jsonc-parser\",[\"jsonc-parser/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var r,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1}else{var i=[];for(o in t)i.push(o);i.sort();var a=[];for(o in n)a.push(o);if(a.sort(),!e(i,a))return!1;for(r=0;r<i.length;r++)if(!e(t[i[r]],n[i[r]]))return!1}return!0},t.isNumber=function(e){return\"number\"==typeof e},t.isDefined=function(e){return void 0!==e},t.isBoolean=function(e){return\"boolean\"==typeof e},t.isString=function(e){return\"string\"==typeof e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,o,i,a,s,c,u,f,l,d,p,h;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.number(t.line)&&S.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,o){if(S.number(e)&&S.number(t)&&S.number(r)&&S.number(o))return{start:n.create(e,t),end:n.create(r,o)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+o+\"]\")},e.is=function(e){var t=e;return S.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.string(t.uri)||S.undefined(t.uri))}}(o=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.targetRange)&&S.string(t.targetUri)&&(r.is(t.targetSelectionRange)||S.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||S.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return S.number(t.red)&&S.number(t.green)&&S.number(t.blue)&&S.number(t.alpha)}}(i=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&i.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return S.string(t.label)&&(S.undefined(t.textEdit)||u.is(t))&&(S.undefined(t.additionalTextEdits)||S.typedArray(t.additionalTextEdits,u.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,o){var i={startLine:e,endLine:t};return S.defined(n)&&(i.startCharacter=n),S.defined(r)&&(i.endCharacter=r),S.defined(o)&&(i.kind=o),i},e.is=function(e){var t=e;return S.number(t.startLine)&&S.number(t.startLine)&&(S.undefined(t.startCharacter)||S.number(t.startCharacter))&&(S.undefined(t.endCharacter)||S.number(t.endCharacter))&&(S.undefined(t.kind)||S.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return S.defined(t)&&o.is(t.location)&&S.string(t.message)}}(a=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,o,i){var a={range:e,message:t};return S.defined(n)&&(a.severity=n),S.defined(r)&&(a.code=r),S.defined(o)&&(a.source=o),S.defined(i)&&(a.relatedInformation=i),a},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&S.string(t.message)&&(S.number(t.severity)||S.undefined(t.severity))&&(S.number(t.code)||S.string(t.code)||S.undefined(t.code))&&(S.string(t.source)||S.undefined(t.source))&&(S.undefined(t.relatedInformation)||S.typedArray(t.relatedInformation,a.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={title:e,command:t};return S.defined(n)&&n.length>0&&(o.arguments=n),o},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.title)&&S.string(t.command)}}(c=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.string(t.newText)&&r.is(t.range)}}(u=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return S.defined(t)&&m.is(t.textDocument)&&Array.isArray(t.edits)}}(f=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(l=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&S.string(t.oldUri)&&S.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(d=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||S.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||S.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return S.string(e.kind)?l.is(e)||d.is(e)||p.is(e):f.is(e)})))}}(h=t.WorkspaceEdit||(t.WorkspaceEdit={}));var m,g,v,y,b=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(u.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(u.replace(e,t))},e.prototype.delete=function(e){this.edits.push(u.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),x=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(f.is(e)){var n=new b(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new b(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(m.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:o=[]};this._workspaceEdit.documentChanges.push(n),r=new b(o),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var o=[];this._workspaceEdit.changes[e]=o,r=new b(o),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(l.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(d.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=x,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&(null===t.version||S.number(t.version))}}(m=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&S.string(t.languageId)&&S.number(t.version)&&S.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return S.objectLiteral(e)&&g.is(t.kind)&&S.string(t.value)}}(v=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return S.string(t)||S.objectLiteral(t)&&S.string(t.language)&&S.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&S.objectLiteral(t)&&(v.is(t.contents)||y.is(t.contents)||S.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={label:e};return S.defined(t)&&(o.documentation=t),S.defined(n)?o.parameters=n:o.parameters=[],o}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return S.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,o){var i={name:e,kind:t,location:{uri:r,range:n}};return o&&(i.containerName=o),i}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,o,i){var a={name:e,detail:t,kind:n,range:r,selectionRange:o};return void 0!==i&&(a.children=i),a},e.is=function(e){var t=e;return t&&S.string(t.name)&&S.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||S.string(t.detail))&&(void 0===t.deprecated||S.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return S.defined(t)&&S.typedArray(t.diagnostics,s.is)&&(void 0===t.only||S.typedArray(t.only,S.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return c.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&S.string(t.title)&&(void 0===t.diagnostics||S.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||S.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||c.is(t.command))&&(void 0===t.isPreferred||S.boolean(t.isPreferred))&&(void 0===t.edit||h.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return S.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.command)||c.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return S.defined(t)&&S.number(t.tabSize)&&S.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.target)||S.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new C(e,t,n,r)},e.is=function(e){var t=e;return!!(S.defined(t)&&S.string(t.uri)&&(S.undefined(t.languageId)||S.string(t.languageId))&&S.number(t.lineCount)&&S.func(t.getText)&&S.func(t.positionAt)&&S.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,i=r.length-1;i>=0;i--){var a=r[i],s=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+a.newText+n.substring(c,n.length),o=s}return n}}(t.TextDocument||(t.TextDocument={}));var S,C=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var o=t.charAt(r);n=\"\\r\"===o||\"\\n\"===o,\"\\r\"===o&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,o=t.length;if(0===o)return n.create(0,e);for(;r<o;){var i=Math.floor((r+o)/2);t[i]>e?o=i:r=i+1}var a=r-1;return n.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(S||(S={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var i=0,a=t;i<a.length;i++){var s=a[i];if(e.isIncremental(s)){var c=o(s.range),u=this.offsetAt(c.start),f=this.offsetAt(c.end);this._content=this._content.substring(0,u)+s.text+this._content.substring(f,this._content.length);var l=Math.max(c.start.line,0),d=Math.max(c.end.line,0),p=this._lineOffsets,h=r(s.text,!1,u);if(d-l===h.length)for(var m=0,g=h.length;m<g;m++)p[m+l+1]=h[m];else h.length<1e4?p.splice.apply(p,[l+1,d-l].concat(h)):this._lineOffsets=p=p.slice(0,l+1).concat(h,p.slice(d+1));var v=s.text.length-(f-u);if(0!==v)for(m=l+1+h.length,g=p.length;m<g;m++)p[m]=p[m]+v}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o+1}var i=n-1;return{line:i,character:e-t[i]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],o=0;o<e.length;o++){var i=e.charCodeAt(o);13!==i&&10!==i||(13===i&&o+1<e.length&&10===e.charCodeAt(o+1)&&o++,r.push(n+o+1))}return r}function o(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function i(e){var t=o(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,o){return new n(e,t,r,o)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t.map(i),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,a=r.length-1;a>=0;a--){var s=r[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,c)+s.newText+n.substring(u,n.length),o=c}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e[e.Undefined=0]=\"Undefined\",e[e.EnumValueMismatch=1]=\"EnumValueMismatch\",e[e.UnexpectedEndOfComment=257]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=258]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=259]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=260]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=261]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=262]=\"InvalidCharacter\",e[e.PropertyExpected=513]=\"PropertyExpected\",e[e.CommaExpected=514]=\"CommaExpected\",e[e.ColonExpected=515]=\"ColonExpected\",e[e.ValueExpected=516]=\"ValueExpected\",e[e.CommaOrCloseBacketExpected=517]=\"CommaOrCloseBacketExpected\",e[e.CommaOrCloseBraceExpected=518]=\"CommaOrCloseBraceExpected\",e[e.TrailingComma=519]=\"TrailingComma\",e[e.DuplicateKey=520]=\"DuplicateKey\",e[e.CommentNotPermitted=521]=\"CommentNotPermitted\",e[e.SchemaResolveError=768]=\"SchemaResolveError\"}(t.ErrorCode||(t.ErrorCode={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText],commitCharactersSupport:!0}}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],o=2;o<arguments.length;o++)r[o-2]=arguments[o];return n(t,r)}function o(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=o,t.config=function(e){return o}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/parser/jsonParser\",[\"require\",\"exports\",\"jsonc-parser\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../utils/objects\"),o=e(\"../jsonLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),a={\"color-hex\":{errorMessage:i(\"colorHexFormatWarning\",\"Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.\"),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},\"date-time\":{errorMessage:i(\"dateTimeFormatWarning\",\"String is not a RFC3339 date-time.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:i(\"dateFormatWarning\",\"String is not a RFC3339 date.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:i(\"timeFormatWarning\",\"String is not a RFC3339 time.\"),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:i(\"emailFormatWarning\",\"String is not an e-mail address.\"),pattern:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/}},s=function(){function e(e,t,n){this.offset=t,this.length=n,this.parent=e}return Object.defineProperty(e.prototype,\"children\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return\"type: \"+this.type+\" (\"+this.offset+\"/\"+this.length+\")\"+(this.parent?\" parent: {\"+this.parent.toString()+\"}\":\"\")},e}();t.ASTNodeImpl=s;var c=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"null\",r.value=null,r}return __extends(t,e),t}(s);t.NullASTNodeImpl=c;var u=function(e){function t(t,n,r){var o=e.call(this,t,r)||this;return o.type=\"boolean\",o.value=n,o}return __extends(t,e),t}(s);t.BooleanASTNodeImpl=u;var f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"array\",r.items=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.items},enumerable:!0,configurable:!0}),t}(s);t.ArrayASTNodeImpl=f;var l=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"number\",r.isInteger=!0,r.value=Number.NaN,r}return __extends(t,e),t}(s);t.NumberASTNodeImpl=l;var d=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.type=\"string\",o.value=\"\",o}return __extends(t,e),t}(s);t.StringASTNodeImpl=d;var p=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"property\",r.colonOffset=-1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]},enumerable:!0,configurable:!0}),t}(s);t.PropertyASTNodeImpl=p;var h=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"object\",r.properties=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.properties},enumerable:!0,configurable:!0}),t}(s);function m(e){return r.isBoolean(e)?e?{}:{not:{}}:e}t.ObjectASTNodeImpl=h,t.asSchema=m,function(e){e[e.Key=0]=\"Key\",e[e.Enum=1]=\"Enum\"}(t.EnumMatch||(t.EnumMatch={}));var g=function(){function e(e,t){void 0===e&&(e=-1),void 0===t&&(t=null),this.focusOffset=e,this.exclude=t,this.schemas=[]}return e.prototype.add=function(e){this.schemas.push(e)},e.prototype.merge=function(e){var t;(t=this.schemas).push.apply(t,e.schemas)},e.prototype.include=function(e){return(-1===this.focusOffset||x(e,this.focusOffset))&&e!==this.exclude},e.prototype.newSub=function(){return new e(-1,this.exclude)},e}(),v=function(){function e(){}return Object.defineProperty(e.prototype,\"schemas\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.add=function(e){},e.prototype.merge=function(e){},e.prototype.include=function(e){return!0},e.prototype.newSub=function(){return this},e.instance=new e,e}(),y=function(){function e(){this.problems=[],this.propertiesMatches=0,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=null}return e.prototype.hasProblems=function(){return!!this.problems.length},e.prototype.mergeAll=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.merge(r)}},e.prototype.merge=function(e){this.problems=this.problems.concat(e.problems)},e.prototype.mergeEnumValues=function(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(var t=0,n=this.problems;t<n.length;t++){var r=n[t];r.code===o.ErrorCode.EnumValueMismatch&&(r.message=i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",this.enumValues.map((function(e){return JSON.stringify(e)})).join(\", \")))}}},e.prototype.mergePropertyMatch=function(e){this.merge(e),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&1===e.enumValues.length&&this.primaryValueMatches++},e.prototype.compare=function(e){var t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches},e}();function b(e){return n.getNodeValue(e)}function x(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}t.ValidationResult=y,t.newJSONDocument=function(e,t){return void 0===t&&(t=[]),new S(e,t,[])},t.getNodeValue=b,t.getNodePath=function(e){return n.getNodePath(e)},t.contains=x;var S=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=[]),this.root=e,this.syntaxErrors=t,this.comments=n}return e.prototype.getNodeFromOffset=function(e,t){if(void 0===t&&(t=!1),this.root)return n.findNodeAtOffset(this.root,e,t)},e.prototype.visit=function(e){if(this.root){var t=function(n){var r=e(n),o=n.children;if(Array.isArray(o))for(var i=0;i<o.length&&r;i++)r=t(o[i]);return r};t(this.root)}},e.prototype.validate=function(e,t){if(this.root&&t){var n=new y;return C(this.root,t,n,v.instance),n.problems.map((function(t){var n=o.Range.create(e.positionAt(t.location.offset),e.positionAt(t.location.offset+t.location.length));return o.Diagnostic.create(n,t.message,t.severity,t.code)}))}return null},e.prototype.getMatchingSchemas=function(e,t,n){void 0===t&&(t=-1),void 0===n&&(n=null);var r=new g(t,n);return this.root&&e&&C(this.root,e,new y,r),r.schemas},e}();function C(e,t,n,s){if(e&&s.include(e)){switch(e.type){case\"object\":!function(e,t,n,a){for(var s=Object.create(null),c=[],u=0,f=e.properties;u<f.length;u++){var l=(k=f[u]).keyNode.value;s[l]=k.valueNode,c.push(l)}if(Array.isArray(t.required))for(var d=0,p=t.required;d<p.length;d++){var h=p[d];if(!s[h]){var g=e.parent&&\"property\"===e.parent.type&&e.parent.keyNode,b=g?{offset:g.offset,length:g.length}:{offset:e.offset,length:1};n.problems.push({location:b,severity:o.DiagnosticSeverity.Warning,message:i(\"MissingRequiredPropWarning\",'Missing property \"{0}\".',h)})}}var x=function(e){for(var t=c.indexOf(e);t>=0;)c.splice(t,1),t=c.indexOf(e)};if(t.properties)for(var S=0,j=Object.keys(t.properties);S<j.length;S++){h=j[S];x(h);var T=t.properties[h];if(F=s[h])if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{var k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{var O=new y;C(F,T,O,a),n.mergePropertyMatch(O)}}if(t.patternProperties)for(var A=0,E=Object.keys(t.patternProperties);A<E.length;A++)for(var I=E[A],w=new RegExp(I),P=0,N=c.slice(0);P<N.length;P++){h=N[P];if(w.test(h))if(x(h),F=s[h]){T=t.patternProperties[I];if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{O=new y;C(F,T,O,a),n.mergePropertyMatch(O)}}}if(\"object\"==typeof t.additionalProperties)for(var M=0,_=c;M<_.length;M++){h=_[M];if(F=s[h]){O=new y;C(F,t.additionalProperties,O,a),n.mergePropertyMatch(O)}}else if(!1===t.additionalProperties&&c.length>0)for(var D=0,V=c;D<V.length;D++){var F;h=V[D];if(F=s[h]){k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}}r.isNumber(t.maxProperties)&&e.properties.length>t.maxProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MaxPropWarning\",\"Object has more properties than limit of {0}.\",t.maxProperties)});r.isNumber(t.minProperties)&&e.properties.length<t.minProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MinPropWarning\",\"Object has fewer properties than the required number of {0}\",t.minProperties)});if(t.dependencies)for(var L=0,R=Object.keys(t.dependencies);L<R.length;L++){l=R[L];if(s[l]){var $=t.dependencies[l];if(Array.isArray($))for(var q=0,W=$;q<W.length;q++){var U=W[q];s[U]?n.propertiesValueMatches++:n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"RequiredDependentPropWarning\",\"Object is missing property {0} required by property {1}.\",U,l)})}else if(T=m($)){O=new y;C(e,T,O,a),n.mergePropertyMatch(O)}}}var K=m(t.propertyNames);if(K)for(var B=0,J=e.properties;B<J.length;B++){var H=J[B];(l=H.keyNode)&&C(l,K,n,v.instance)}}(e,t,n,s);break;case\"array\":!function(e,t,n,a){if(Array.isArray(t.items)){for(var s=t.items,c=0;c<s.length;c++){var u=m(s[c]),f=new y;(g=e.items[c])?(C(g,u,f,a),n.mergePropertyMatch(f)):e.items.length>=s.length&&n.propertiesValueMatches++}if(e.items.length>s.length)if(\"object\"==typeof t.additionalItems)for(var l=s.length;l<e.items.length;l++){f=new y;C(e.items[l],t.additionalItems,f,a),n.mergePropertyMatch(f)}else!1===t.additionalItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"additionalItemsWarning\",\"Array has too many items according to schema. Expected {0} or fewer.\",s.length)})}else{var d=m(t.items);if(d)for(var p=0,h=e.items;p<h.length;p++){var g=h[p];f=new y;C(g,d,f,a),n.mergePropertyMatch(f)}}var x=m(t.contains);if(x){e.items.some((function(e){var t=new y;return C(e,x,t,v.instance),!t.hasProblems()}))||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"requiredItemMissingWarning\",\"Array does not contain required item.\")})}r.isNumber(t.minItems)&&e.items.length<t.minItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minItemsWarning\",\"Array has too few items. Expected {0} or more.\",t.minItems)});r.isNumber(t.maxItems)&&e.items.length>t.maxItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxItemsWarning\",\"Array has too many items. Expected {0} or fewer.\",t.maxItems)});if(!0===t.uniqueItems){var S=b(e);S.some((function(e,t){return t!==S.lastIndexOf(e)}))&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"uniqueItemsWarning\",\"Array has duplicate items.\")})}}(e,t,n,s);break;case\"string\":!function(e,t,n,s){r.isNumber(t.minLength)&&e.value.length<t.minLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minLengthWarning\",\"String is shorter than the minimum length of {0}.\",t.minLength)});r.isNumber(t.maxLength)&&e.value.length>t.maxLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxLengthWarning\",\"String is longer than the maximum length of {0}.\",t.maxLength)});if(r.isString(t.pattern)){new RegExp(t.pattern).test(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"patternWarning\",'String does not match the pattern of \"{0}\".',t.pattern)})}if(t.format)switch(t.format){case\"uri\":case\"uri-reference\":var c=void 0;if(e.value){var u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(e.value);u?u[2]||\"uri\"!==t.format||(c=i(\"uriSchemeMissing\",\"URI with a scheme is expected.\")):c=i(\"uriMissing\",\"URI is expected.\")}else c=i(\"uriEmpty\",\"URI expected.\");c&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"uriFormatWarning\",\"String is not a URI: {0}\",c)});break;case\"color-hex\":case\"date-time\":case\"date\":case\"time\":case\"email\":var f=a[t.format];e.value&&f.pattern.exec(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||f.errorMessage})}}(e,t,n);break;case\"number\":!function(e,t,n,a){var s=e.value;r.isNumber(t.multipleOf)&&s%t.multipleOf!=0&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"multipleOfWarning\",\"Value is not divisible by {0}.\",t.multipleOf)});function c(e,t){return r.isNumber(t)?t:r.isBoolean(t)&&t?e:void 0}function u(e,t){if(!r.isBoolean(t)||!t)return e}var f=c(t.minimum,t.exclusiveMinimum);r.isNumber(f)&&s<=f&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMinimumWarning\",\"Value is below the exclusive minimum of {0}.\",f)});var l=c(t.maximum,t.exclusiveMaximum);r.isNumber(l)&&s>=l&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMaximumWarning\",\"Value is above the exclusive maximum of {0}.\",l)});var d=u(t.minimum,t.exclusiveMinimum);r.isNumber(d)&&s<d&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minimumWarning\",\"Value is below the minimum of {0}.\",d)});var p=u(t.maximum,t.exclusiveMaximum);r.isNumber(p)&&s>p&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maximumWarning\",\"Value is above the maximum of {0}.\",p)})}(e,t,n);break;case\"property\":return C(e.valueNode,t,n,s)}!function(){function a(t){return e.type===t||\"integer\"===t&&\"number\"===e.type&&e.isInteger}Array.isArray(t.type)?t.type.some(a)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeArrayMismatchWarning\",\"Incorrect type. Expected one of {0}.\",t.type.join(\", \"))}):t.type&&(a(t.type)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeMismatchWarning\",'Incorrect type. Expected \"{0}\".',t.type)}));if(Array.isArray(t.allOf))for(var c=0,u=t.allOf;c<u.length;c++){var f=u[c];C(e,m(f),n,s)}var l=m(t.not);if(l){var d=new y,p=s.newSub();C(e,l,d,p),d.hasProblems()||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"notSchemaWarning\",\"Matches a schema that is not allowed.\")});for(var h=0,g=p.schemas;h<g.length;h++){var v=g[h];v.inverted=!v.inverted,s.add(v)}}var x=function(t,r){for(var a=[],c=null,u=0,f=t;u<f.length;u++){var l=m(f[u]),d=new y,p=s.newSub();if(C(e,l,d,p),d.hasProblems()||a.push(l),c)if(r||d.hasProblems()||c.validationResult.hasProblems()){var h=d.compare(c.validationResult);h>0?c={schema:l,validationResult:d,matchingSchemas:p}:0===h&&(c.matchingSchemas.merge(p),c.validationResult.mergeEnumValues(d))}else c.matchingSchemas.merge(p),c.validationResult.propertiesMatches+=d.propertiesMatches,c.validationResult.propertiesValueMatches+=d.propertiesValueMatches;else c={schema:l,validationResult:d,matchingSchemas:p}}return a.length>1&&r&&n.problems.push({location:{offset:e.offset,length:1},severity:o.DiagnosticSeverity.Warning,message:i(\"oneOfWarning\",\"Matches multiple schemas when only one must validate.\")}),null!==c&&(n.merge(c.validationResult),n.propertiesMatches+=c.validationResult.propertiesMatches,n.propertiesValueMatches+=c.validationResult.propertiesValueMatches,s.merge(c.matchingSchemas)),a.length};Array.isArray(t.anyOf)&&x(t.anyOf,!1);Array.isArray(t.oneOf)&&x(t.oneOf,!0);var S=function(t){var r=new y,o=s.newSub();C(e,m(t),r,o),n.merge(r),n.propertiesMatches+=r.propertiesMatches,n.propertiesValueMatches+=r.propertiesValueMatches,s.merge(o)},j=m(t.if);j&&function(t,n,r){var o=m(t),i=new y,a=s.newSub();C(e,o,i,a),s.merge(a),i.hasProblems()?r&&S(r):n&&S(n)}(j,m(t.then),m(t.else));if(Array.isArray(t.enum)){for(var T=b(e),k=!1,O=0,A=t.enum;O<A.length;O++){var E=A[O];if(r.equals(T,E)){k=!0;break}}n.enumValues=t.enum,n.enumValueMatch=k,k||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",t.enum.map((function(e){return JSON.stringify(e)})).join(\", \"))})}if(r.isDefined(t.const)){T=b(e);r.equals(T,t.const)?n.enumValueMatch=!0:(n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"constWarning\",\"Value must be {0}.\",JSON.stringify(t.const))}),n.enumValueMatch=!1),n.enumValues=[t.const]}t.deprecationMessage&&e.parent&&n.problems.push({location:{offset:e.parent.offset,length:e.parent.length},severity:o.DiagnosticSeverity.Warning,message:t.deprecationMessage})}(),s.add({node:e,schema:t})}}t.JSONDocument=S,t.parse=function(e,t){var a=[],s=-1,m=e.getText(),g=n.createScanner(m,!1),v=t&&t.collectComments?[]:void 0;function y(){for(;;){var t=g.scan();switch(C(),t){case 12:case 13:Array.isArray(v)&&v.push(o.Range.create(e.positionAt(g.getTokenOffset()),e.positionAt(g.getTokenOffset()+g.getTokenLength())));break;case 15:case 14:break;default:return t}}}function b(t,n,r,i,c){if(void 0===c&&(c=o.DiagnosticSeverity.Error),0===a.length||r!==s){var u=o.Range.create(e.positionAt(r),e.positionAt(i));a.push(o.Diagnostic.create(u,t,c,n,e.languageId)),s=r}}function x(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r=[]),void 0===o&&(o=[]);var i=g.getTokenOffset(),a=g.getTokenOffset()+g.getTokenLength();if(i===a&&i>0){for(i--;i>0&&/\\s/.test(m.charAt(i));)i--;a=i+1}if(b(e,t,i,a),n&&j(n,!1),r.length+o.length>0)for(var s=g.getToken();17!==s;){if(-1!==r.indexOf(s)){y();break}if(-1!==o.indexOf(s))break;s=y()}return n}function C(){switch(g.getTokenError()){case 4:return x(i(\"InvalidUnicode\",\"Invalid unicode sequence in string.\"),o.ErrorCode.InvalidUnicode),!0;case 5:return x(i(\"InvalidEscapeCharacter\",\"Invalid escape character in string.\"),o.ErrorCode.InvalidEscapeCharacter),!0;case 3:return x(i(\"UnexpectedEndOfNumber\",\"Unexpected end of number.\"),o.ErrorCode.UnexpectedEndOfNumber),!0;case 1:return x(i(\"UnexpectedEndOfComment\",\"Unexpected end of comment.\"),o.ErrorCode.UnexpectedEndOfComment),!0;case 2:return x(i(\"UnexpectedEndOfString\",\"Unexpected end of string.\"),o.ErrorCode.UnexpectedEndOfString),!0;case 6:return x(i(\"InvalidCharacter\",\"Invalid characters in string. Control characters must be escaped.\"),o.ErrorCode.InvalidCharacter),!0}return!1}function j(e,t){return e.length=g.getTokenOffset()+g.getTokenLength()-e.offset,t&&y(),e}function T(t,n){var r=new p(t,g.getTokenOffset()),a=k(r);if(!a){if(16!==g.getToken())return null;x(i(\"DoubleQuotesExpected\",\"Property keys must be doublequoted\"),o.ErrorCode.Undefined);var s=new d(r,g.getTokenOffset(),g.getTokenLength());s.value=g.getTokenValue(),a=s,y()}r.keyNode=a;var c=n[a.value];if(c?(b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,r.keyNode.offset,r.keyNode.offset+r.keyNode.length,o.DiagnosticSeverity.Warning),\"object\"==typeof c&&b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,c.keyNode.offset,c.keyNode.offset+c.keyNode.length,o.DiagnosticSeverity.Warning),n[a.value]=!0):n[a.value]=r,6===g.getToken())r.colonOffset=g.getTokenOffset(),y();else if(x(i(\"ColonExpected\",\"Colon expected\"),o.ErrorCode.ColonExpected),10===g.getToken()&&e.positionAt(a.offset+a.length).line<e.positionAt(g.getTokenOffset()).line)return r.length=a.length,r;var u=O(r,a.value);return u?(r.valueNode=u,r.length=u.offset+u.length-r.offset,r):x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,r,[],[2,5])}function k(e){if(10!==g.getToken())return null;var t=new d(e,g.getTokenOffset());return t.value=g.getTokenValue(),j(t,!0)}function O(e,t){return function(e){if(3!==g.getToken())return null;var t=new f(e,g.getTokenOffset());y();for(var n=0,r=!1;4!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected);var a=g.getTokenOffset();if(y(),4===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=O(t,n++);s?t.items.push(s):x(i(\"PropertyExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,null,[],[4,5]),r=!0}return 4!==g.getToken()?x(i(\"ExpectedCloseBracket\",\"Expected comma or closing bracket\"),o.ErrorCode.CommaOrCloseBacketExpected,t):j(t,!0)}(e)||function(e){if(1!==g.getToken())return null;var t=new h(e,g.getTokenOffset()),n=Object.create(null);y();for(var r=!1;2!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected);var a=g.getTokenOffset();if(y(),2===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=T(t,n);s?t.properties.push(s):x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected,null,[],[2,5]),r=!0}return 2!==g.getToken()?x(i(\"ExpectedCloseBrace\",\"Expected comma or closing brace\"),o.ErrorCode.CommaOrCloseBraceExpected,t):j(t,!0)}(e)||k(e)||function(e){if(11!==g.getToken())return null;var t=new l(e,g.getTokenOffset());if(0===g.getTokenError()){var n=g.getTokenValue();try{var a=JSON.parse(n);if(!r.isNumber(a))return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t);t.value=a}catch(e){return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t)}t.isInteger=-1===n.indexOf(\".\")}return j(t,!0)}(e)||function(e){switch(g.getToken()){case 7:return j(new c(e,g.getTokenOffset()),!0);case 8:return j(new u(e,!0,g.getTokenOffset()),!0);case 9:return j(new u(e,!1,g.getTokenOffset()),!0);default:return null}}(e)}var A=null;return 17!==y()&&((A=O(null))?17!==g.getToken()&&x(i(\"End of file expected\",\"End of file expected.\"),o.ErrorCode.Undefined):x(i(\"Invalid symbol\",\"Expected a JSON object, array or literal.\"),o.ErrorCode.Undefined)),new S(A,a,v)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/json\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.stringifyObject=function e(t,n,r){if(null!==t&&\"object\"==typeof t){var o=n+\"\\t\";if(Array.isArray(t)){if(0===t.length)return\"[]\";for(var i=\"[\\n\",a=0;a<t.length;a++)i+=o+e(t[a],o,r),a<t.length-1&&(i+=\",\"),i+=\"\\n\";return i+=n+\"]\"}var s=Object.keys(t);if(0===s.length)return\"{}\";for(i=\"{\\n\",a=0;a<s.length;a++){var c=s[a];i+=o+JSON.stringify(c)+\": \"+e(t[c],o,r),a<s.length-1&&(i+=\",\"),i+=\"\\n\"}return i+=n+\"}\"}return r(t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonCompletion\",[\"require\",\"exports\",\"../parser/jsonParser\",\"jsonc-parser\",\"../utils/json\",\"../utils/strings\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"jsonc-parser\"),o=e(\"../utils/json\"),i=e(\"../utils/strings\"),a=e(\"../utils/objects\"),s=e(\"../jsonLanguageTypes\"),c=e(\"vscode-nls\").loadMessageBundle(),u=function(){function e(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=Promise),void 0===r&&(r={}),this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=r,this.templateVarIdCounter=0}return e.prototype.doResolve=function(e){for(var t=this.contributions.length-1;t>=0;t--)if(this.contributions[t].resolveCompletion){var n=this.contributions[t].resolveCompletion(e);if(n)return n}return this.promiseConstructor.resolve(e)},e.prototype.doComplete=function(e,t,r){var o=this,i={items:[],isIncomplete:!1},a=e.getText(),c=e.offsetAt(t),u=r.getNodeFromOffset(c,!0);if(this.isInComment(e,u?u.offset:0,c))return Promise.resolve(i);if(u&&c===u.offset+u.length&&c>0){var f=a[c-1];(\"object\"===u.type&&\"}\"===f||\"array\"===u.type&&\"]\"===f)&&(u=u.parent)}var l=this.getCurrentWord(e,c),d=null;if(!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type){var p=c-l.length;p>0&&'\"'===a[p-1]&&p--,d=s.Range.create(e.positionAt(p),t)}else d=s.Range.create(e.positionAt(u.offset),e.positionAt(u.offset+u.length));var h={},m={add:function(e){var t=e.label,n=h[t];if(n)n.documentation||(n.documentation=e.documentation);else{if((t=t.replace(/[\\n]/g,\"↵\")).length>60){var r=t.substr(0,57).trim()+\"...\";h[r]||(t=r)}d&&(e.textEdit=s.TextEdit.replace(d,e.insertText)),e.label=t,h[t]=e,i.items.push(e)}},setAsIncomplete:function(){i.isIncomplete=!0},error:function(e){console.error(e)},log:function(e){console.log(e)},getNumberOfProposals:function(){return i.items.length}};return this.schemaService.getSchemaForResource(e.uri,r).then((function(t){var f=[],p=!0,g=\"\",v=null;if(u&&\"string\"===u.type){var y=u.parent;y&&\"property\"===y.type&&y.keyNode===u&&(p=!y.valueNode,v=y,g=a.substr(u.offset+1,u.length-2),y&&(u=y.parent))}if(u&&\"object\"===u.type){if(u.offset===c)return i;u.properties.forEach((function(e){v&&v===e||(h[e.keyNode.value]=s.CompletionItem.create(\"__\"))}));var b=\"\";p&&(b=o.evaluateSeparatorAfter(e,e.offsetAt(d.end))),t?o.getPropertyCompletions(t,r,u,p,b,m):o.getSchemaLessPropertyCompletions(r,u,g,m);var x=n.getNodePath(u);o.contributions.forEach((function(t){var n=t.collectPropertyCompletions(e.uri,x,l,p,\"\"===b,m);n&&f.push(n)})),!t&&l.length>0&&'\"'!==a.charAt(c-l.length-1)&&(m.add({kind:s.CompletionItemKind.Property,label:o.getLabelForValue(l),insertText:o.getInsertTextForProperty(l,null,!1,b),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),m.setAsIncomplete())}var S={};return t?o.getValueCompletions(t,r,u,c,e,m,S):o.getSchemaLessValueCompletions(r,u,c,e,m),o.contributions.length>0&&o.getContributedValueCompletions(r,u,c,e,m,f),o.promiseConstructor.all(f).then((function(){if(0===m.getNumberOfProposals()){var t=c;!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type||(t=u.offset+u.length);var n=o.evaluateSeparatorAfter(e,t);o.addFillerValueCompletions(S,n,m)}return i}))}))},e.prototype.getPropertyCompletions=function(e,t,n,r,o,a){var c=this;t.getMatchingSchemas(e.schema,n.offset).forEach((function(e){if(e.node===n&&!e.inverted){var t=e.schema.properties;t&&Object.keys(t).forEach((function(e){var n=t[e];if(\"object\"==typeof n&&!n.deprecationMessage&&!n.doNotSuggest){var u={kind:s.CompletionItemKind.Property,label:e,insertText:c.getInsertTextForProperty(e,n,r,o),insertTextFormat:s.InsertTextFormat.Snippet,filterText:c.getFilterTextForValue(e),documentation:c.fromMarkup(n.markdownDescription)||n.description||\"\"};i.endsWith(u.insertText,\"$1\"+o)&&(u.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),a.add(u)}}))}}))},e.prototype.getSchemaLessPropertyCompletions=function(e,t,n,r){var o=this,i=function(e){e.properties.forEach((function(e){var t=e.keyNode.value;r.add({kind:s.CompletionItemKind.Property,label:t,insertText:o.getInsertTextForValue(t,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,filterText:o.getFilterTextForValue(t),documentation:\"\"})}))};if(t.parent)if(\"property\"===t.parent.type){var a=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e!==t.parent&&e.keyNode.value===a&&e.valueNode&&\"object\"===e.valueNode.type&&i(e.valueNode),!0}))}else\"array\"===t.parent.type&&t.parent.items.forEach((function(e){\"object\"===e.type&&e!==t&&i(e)}));else\"object\"===t.type&&r.add({kind:s.CompletionItemKind.Property,label:\"$schema\",insertText:this.getInsertTextForProperty(\"$schema\",null,!0,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\",filterText:this.getFilterTextForValue(\"$schema\")})},e.prototype.getSchemaLessValueCompletions=function(e,t,r,o,i){var a=this,c=r;if(!t||\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(c=t.offset+t.length,t=t.parent),!t)return i.add({kind:this.getSuggestionKind(\"object\"),label:\"Empty object\",insertText:this.getInsertTextForValue({},\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),void i.add({kind:this.getSuggestionKind(\"array\"),label:\"Empty array\",insertText:this.getInsertTextForValue([],\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"});var u=this.evaluateSeparatorAfter(o,c),f=function(e){n.contains(e.parent,r,!0)||i.add({kind:a.getSuggestionKind(e.type),label:a.getLabelTextForMatchingNode(e,o),insertText:a.getInsertTextForMatchingNode(e,o,u),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),\"boolean\"===e.type&&a.addBooleanValueCompletion(!e.value,u,i)};if(\"property\"===t.type&&r>t.colonOffset){var l=t.valueNode;if(l&&(r>l.offset+l.length||\"object\"===l.type||\"array\"===l.type))return;var d=t.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===d&&e.valueNode&&f(e.valueNode),!0})),\"$schema\"===d&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(u,i)}if(\"array\"===t.type)if(t.parent&&\"property\"===t.parent.type){var p=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===p&&e.valueNode&&\"array\"===e.valueNode.type&&e.valueNode.items.forEach(f),!0}))}else t.items.forEach(f)},e.prototype.getValueCompletions=function(e,t,n,r,o,i,a){var s=this,c=r,u=null,f=null;if(!n||\"string\"!==n.type&&\"number\"!==n.type&&\"boolean\"!==n.type&&\"null\"!==n.type||(c=n.offset+n.length,f=n,n=n.parent),n){if(\"property\"===n.type&&r>n.colonOffset){var l=n.valueNode;if(l&&r>l.offset+l.length)return;u=n.keyNode.value,n=n.parent}if(n&&(null!==u||\"array\"===n.type)){var d=this.evaluateSeparatorAfter(o,c);t.getMatchingSchemas(e.schema,n.offset,f).forEach((function(e){if(e.node===n&&!e.inverted&&e.schema){if(\"array\"===n.type&&e.schema.items)if(Array.isArray(e.schema.items)){var t=s.findItemAtOffset(n,o,r);t<e.schema.items.length&&s.addSchemaValueCompletions(e.schema.items[t],d,i,a)}else s.addSchemaValueCompletions(e.schema.items,d,i,a);if(e.schema.properties){var c=e.schema.properties[u];c&&s.addSchemaValueCompletions(c,d,i,a)}}})),\"$schema\"!==u||n.parent||this.addDollarSchemaCompletions(d,i),a.boolean&&(this.addBooleanValueCompletion(!0,d,i),this.addBooleanValueCompletion(!1,d,i)),a.null&&this.addNullValueCompletion(d,i)}}else this.addSchemaValueCompletions(e.schema,\"\",i,a)},e.prototype.getContributedValueCompletions=function(e,t,r,o,i,a){if(t){if(\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(t=t.parent),\"property\"===t.type&&r>t.colonOffset){var s=t.keyNode.value,c=t.valueNode;if(!c||r<=c.offset+c.length){var u=n.getNodePath(t.parent);this.contributions.forEach((function(e){var t=e.collectValueCompletions(o.uri,u,s,i);t&&a.push(t)}))}}}else this.contributions.forEach((function(e){var t=e.collectDefaultCompletions(o.uri,i);t&&a.push(t)}))},e.prototype.addSchemaValueCompletions=function(e,t,n,r){var o=this;\"object\"==typeof e&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,r),Array.isArray(e.allOf)&&e.allOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.anyOf)&&e.anyOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.oneOf)&&e.oneOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})))},e.prototype.addDefaultValueCompletions=function(e,t,n,r){var o=this;void 0===r&&(r=0);var i=!1;if(a.isDefined(e.default)){for(var u=e.type,f=e.default,l=r;l>0;l--)f=[f],u=\"array\";n.add({kind:this.getSuggestionKind(u),label:this.getLabelForValue(f),insertText:this.getInsertTextForValue(f,t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"json.suggest.default\",\"Default value\")}),i=!0}Array.isArray(e.examples)&&e.examples.forEach((function(a){for(var c=e.type,u=a,f=r;f>0;f--)u=[u],c=\"array\";n.add({kind:o.getSuggestionKind(c),label:o.getLabelForValue(u),insertText:o.getInsertTextForValue(u,t),insertTextFormat:s.InsertTextFormat.Snippet}),i=!0})),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach((function(c){var u,f,l=e.type,d=c.body,p=c.label;if(a.isDefined(d)){e.type;for(var h=r;h>0;h--)d=[d],\"array\";u=o.getInsertTextForSnippetValue(d,t),f=o.getFilterTextForSnippetValue(d),p=p||o.getLabelForSnippetValue(d)}else if(\"string\"==typeof c.bodyText){var m=\"\",g=\"\",v=\"\";for(h=r;h>0;h--)m=m+v+\"[\\n\",g=g+\"\\n\"+v+\"]\",v+=\"\\t\",l=\"array\";u=m+v+c.bodyText.split(\"\\n\").join(\"\\n\"+v)+g+t,p=p||u,f=u.replace(/[\\n]/g,\"\")}n.add({kind:o.getSuggestionKind(l),label:p,documentation:o.fromMarkup(c.markdownDescription)||c.description,insertText:u,insertTextFormat:s.InsertTextFormat.Snippet,filterText:f}),i=!0})),i||\"object\"!=typeof e.items||Array.isArray(e.items)||this.addDefaultValueCompletions(e.items,t,n,r+1)},e.prototype.addEnumValueCompletions=function(e,t,n){if(a.isDefined(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(var r=0,o=e.enum.length;r<o;r++){var i=e.enum[r],c=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&r<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?c=this.fromMarkup(e.markdownEnumDescriptions[r]):e.enumDescriptions&&r<e.enumDescriptions.length&&(c=e.enumDescriptions[r]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(i),insertText:this.getInsertTextForValue(i,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:c})}},e.prototype.collectTypes=function(e,t){if(!Array.isArray(e.enum)&&!a.isDefined(e.const)){var n=e.type;Array.isArray(n)?n.forEach((function(e){return t[e]=!0})):t[n]=!0}},e.prototype.addFillerValueCompletions=function(e,t,n){e.object&&n.add({kind:this.getSuggestionKind(\"object\"),label:\"{}\",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.object\",\"New object\"),documentation:\"\"}),e.array&&n.add({kind:this.getSuggestionKind(\"array\"),label:\"[]\",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.array\",\"New array\"),documentation:\"\"})},e.prototype.addBooleanValueCompletion=function(e,t,n){n.add({kind:this.getSuggestionKind(\"boolean\"),label:e?\"true\":\"false\",insertText:this.getInsertTextForValue(e,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addNullValueCompletion=function(e,t){t.add({kind:this.getSuggestionKind(\"null\"),label:\"null\",insertText:\"null\"+e,insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addDollarSchemaCompletions=function(e,t){var n=this;this.schemaService.getRegisteredSchemaIds((function(e){return\"http\"===e||\"https\"===e})).forEach((function(r){return t.add({kind:s.CompletionItemKind.Module,label:n.getLabelForValue(r),filterText:n.getFilterTextForValue(r),insertText:n.getInsertTextForValue(r,e),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})}))},e.prototype.getLabelForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getLabelForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getInsertTextForPlainText=function(e){return e.replace(/[\\\\\\$\\}]/g,\"\\\\$&\")},e.prototype.getInsertTextForValue=function(e,t){var n=JSON.stringify(e,null,\"\\t\");return\"{}\"===n?\"{$1}\"+t:\"[]\"===n?\"[$1]\"+t:this.getInsertTextForPlainText(n+t)},e.prototype.getInsertTextForSnippetValue=function(e,t){return o.stringifyObject(e,\"\",(function(e){return\"string\"==typeof e&&\"^\"===e[0]?e.substr(1):JSON.stringify(e)}))+t},e.prototype.getInsertTextForGuessedValue=function(e,t){switch(typeof e){case\"object\":return null===e?\"${1:null}\"+t:this.getInsertTextForValue(e,t);case\"string\":var n=JSON.stringify(e);return n=n.substr(1,n.length-2),'\"${1:'+(n=this.getInsertTextForPlainText(n))+'}\"'+t;case\"number\":case\"boolean\":return\"${1:\"+JSON.stringify(e)+\"}\"+t}return this.getInsertTextForValue(e,t)},e.prototype.getSuggestionKind=function(e){if(Array.isArray(e)){var t=e;e=t.length>0?t[0]:null}if(!e)return s.CompletionItemKind.Value;switch(e){case\"string\":return s.CompletionItemKind.Value;case\"object\":return s.CompletionItemKind.Module;case\"property\":return s.CompletionItemKind.Property;default:return s.CompletionItemKind.Value}},e.prototype.getLabelTextForMatchingNode=function(e,t){switch(e.type){case\"array\":return\"[]\";case\"object\":return\"{}\";default:return t.getText().substr(e.offset,e.length)}},e.prototype.getInsertTextForMatchingNode=function(e,t,n){switch(e.type){case\"array\":return this.getInsertTextForValue([],n);case\"object\":return this.getInsertTextForValue({},n);default:var r=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(r)}},e.prototype.getInsertTextForProperty=function(e,t,n,r){var o=this.getInsertTextForValue(e,\"\");if(!n)return o;var i,s=o+\": \",c=0;if(t){if(Array.isArray(t.defaultSnippets)){if(1===t.defaultSnippets.length){var u=t.defaultSnippets[0].body;a.isDefined(u)&&(i=this.getInsertTextForSnippetValue(u,\"\"))}c+=t.defaultSnippets.length}if(t.enum&&(i||1!==t.enum.length||(i=this.getInsertTextForGuessedValue(t.enum[0],\"\")),c+=t.enum.length),a.isDefined(t.default)&&(i||(i=this.getInsertTextForGuessedValue(t.default,\"\")),c++),Array.isArray(t.examples)&&t.examples.length&&(i||(i=this.getInsertTextForGuessedValue(t.examples[0],\"\")),c+=t.examples.length),0===c){var f=Array.isArray(t.type)?t.type[0]:t.type;switch(f||(t.properties?f=\"object\":t.items&&(f=\"array\")),f){case\"boolean\":i=\"$1\";break;case\"string\":i='\"$1\"';break;case\"object\":i=\"{$1}\";break;case\"array\":i=\"[$1]\";break;case\"number\":case\"integer\":i=\"${1:0}\";break;case\"null\":i=\"${1:null}\";break;default:return o}}}return(!i||c>1)&&(i=\"$1\"),s+i+r},e.prototype.getCurrentWord=function(e,t){for(var n=t-1,r=e.getText();n>=0&&-1===' \\t\\n\\r\\v\":{[,]}'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)},e.prototype.evaluateSeparatorAfter=function(e,t){var n=r.createScanner(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return\"\";default:return\",\"}},e.prototype.findItemAtOffset=function(e,t,n){for(var o=r.createScanner(t.getText(),!0),i=e.items,a=i.length-1;a>=0;a--){var s=i[a];if(n>s.offset+s.length)return o.setPosition(s.offset+s.length),5===o.scan()&&n>=o.getTokenOffset()+o.getTokenLength()?a+1:a;if(n>=s.offset)return a}return 0},e.prototype.isInComment=function(e,t,n){var o=r.createScanner(e.getText(),!1);o.setPosition(t);for(var i=o.scan();17!==i&&o.getTokenOffset()+o.getTokenLength()<n;)i=o.scan();return(12===i||13===i)&&o.getTokenOffset()<=n},e.prototype.fromMarkup=function(e){if(e&&this.doesSupportMarkdown())return{kind:s.MarkupKind.Markdown,value:e}},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e.prototype.doesSupportsCommitCharacters=function(){if(!a.isDefined(this.supportsCommitCharacters)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsCommitCharacters=e&&e.completionItem&&!!e.completionItem.commitCharactersSupport}return this.supportsCommitCharacters},e}();t.JSONCompletion=u})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonHover\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../jsonLanguageTypes\"),o=function(){function e(e,t,n){void 0===t&&(t=[]),this.schemaService=e,this.contributions=t,this.promise=n||Promise}return e.prototype.doHover=function(e,t,o){var a=e.offsetAt(t),s=o.getNodeFromOffset(a);if(!s||(\"object\"===s.type||\"array\"===s.type)&&a>s.offset+1&&a<s.offset+s.length-1)return this.promise.resolve(null);var c=s;if(\"string\"===s.type){var u=s.parent;if(u&&\"property\"===u.type&&u.keyNode===s&&!(s=u.valueNode))return this.promise.resolve(null)}for(var f=r.Range.create(e.positionAt(c.offset),e.positionAt(c.offset+c.length)),l=function(e){return{contents:e,range:f}},d=n.getNodePath(s),p=this.contributions.length-1;p>=0;p--){var h=this.contributions[p].getInfoContribution(e.uri,d);if(h)return h.then((function(e){return l(e)}))}return this.schemaService.getSchemaForResource(e.uri,o).then((function(e){if(e){var t=o.getMatchingSchemas(e.schema,s.offset),r=null,a=null,c=null,u=null;t.every((function(e){if(e.node===s&&!e.inverted&&e.schema&&(r=r||e.schema.title,a=a||e.schema.markdownDescription||i(e.schema.description),e.schema.enum)){var t=e.schema.enum.indexOf(n.getNodeValue(s));e.schema.markdownEnumDescriptions?c=e.schema.markdownEnumDescriptions[t]:e.schema.enumDescriptions&&(c=i(e.schema.enumDescriptions[t])),c&&\"string\"!=typeof(u=e.schema.enum[t])&&(u=JSON.stringify(u))}return!0}));var f=\"\";return r&&(f=i(r)),a&&(f.length>0&&(f+=\"\\n\\n\"),f+=a),c&&(f.length>0&&(f+=\"\\n\\n\"),f+=\"`\"+function(e){if(-1!==e.indexOf(\"`\"))return\"`` \"+e+\" ``\";return e}(u)+\"`: \"+c),l([f])}return null}))},e}();function i(e){if(e)return e.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm,\"$1\\n\\n$3\").replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}t.JSONHover=o}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var o=navigator.userAgent;r=o.indexOf(\"Windows\")>=0}var i=/^\\w[\\w\\d+.-]*$/,a=/^\\//,s=/^\\/\\//;var c=\"/\",u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,f=function(){function e(e,t,n,r,o,u){void 0===u&&(u=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,u),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=o||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!a.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,u))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,o=e.query,i=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===o?o=this.query:null===o&&(o=\"\"),void 0===i?i=this.fragment:null===i&&(i=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&i===this.fragment?this:new d(t,n,r,o,i)},e.parse=function(e,t){void 0===t&&(t=!1);var n=u.exec(e);return n?new d(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new d(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,c)),e[0]===c&&e[1]===c){var n=e.indexOf(c,2);-1===n?(t=e.substring(2),e=c):(t=e.substring(2,n),e=e.substring(n)||c)}return new d(\"file\",t,e,\"\",\"\")},e.from=function(e){return new d(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),v(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new d(t);return n._formatted=t.external,n._fsPath=t._sep===l?t.fsPath:null,n}return t},e}();t.URI=f;var l=r?1:void 0,d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=l),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(f),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function h(e,t){for(var n=void 0,r=-1,o=0;o<e.length;o++){var i=e.charCodeAt(o);if(i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||45===i||46===i||95===i||126===i||t&&47===i)-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var a=p[i];void 0!==a?(-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),n+=a):-1===r&&(r=o)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function v(e,t){var n=t?m:h,r=\"\",o=e.scheme,i=e.authority,a=e.path,s=e.query,u=e.fragment;if(o&&(r+=o,r+=\":\"),(i||\"file\"===o)&&(r+=c,r+=c),i){var f=i.indexOf(\"@\");if(-1!==f){var l=i.substr(0,f);i=i.substr(f+1),-1===(f=l.indexOf(\":\"))?r+=n(l,!1):(r+=n(l.substr(0,f),!1),r+=\":\",r+=n(l.substr(f+1),!1)),r+=\"@\"}-1===(f=(i=i.toLowerCase()).indexOf(\":\"))?r+=n(i,!1):(r+=n(i.substr(0,f),!1),r+=i.substr(f))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(d=a.charCodeAt(1))>=65&&d<=90&&(a=\"/\"+String.fromCharCode(d+32)+\":\"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var d;(d=a.charCodeAt(0))>=65&&d<=90&&(a=String.fromCharCode(d+32)+\":\"+a.substr(2))}r+=n(a,!0)}return s&&(r+=\"?\",r+=n(s,!1)),u&&(r+=\"#\",r+=t?u:h(u,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSchemaService\",[\"require\",\"exports\",\"jsonc-parser\",\"vscode-uri\",\"../utils/strings\",\"../parser/jsonParser\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"vscode-uri\"),o=e(\"../utils/strings\"),i=e(\"../parser/jsonParser\"),a=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(e){try{this.patternRegExp=new RegExp(o.convertSimple2RegExpPattern(e)+\"$\")}catch(e){this.patternRegExp=null}this.schemas=[]}return e.prototype.addSchema=function(e){this.schemas.push(e)},e.prototype.matchesPattern=function(e){return this.patternRegExp&&this.patternRegExp.test(e)},e.prototype.getSchemas=function(){return this.schemas},e}(),c=function(){function e(e,t,n){this.service=e,this.url=t,this.dependencies={},n&&(this.unresolvedSchema=this.service.promise.resolve(new u(n)))}return e.prototype.getUnresolvedSchema=function(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.url)),this.unresolvedSchema},e.prototype.getResolvedSchema=function(){var e=this;return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then((function(t){return e.service.resolveSchemaContent(t,e.url,e.dependencies)}))),this.resolvedSchema},e.prototype.clearSchema=function(){this.resolvedSchema=null,this.unresolvedSchema=null,this.dependencies={}},e}(),u=function(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t};t.UnresolvedSchema=u;var f=function(){function e(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t}return e.prototype.getSection=function(e){return i.asSchema(this.getSectionRecursive(e,this.schema))},e.prototype.getSectionRecursive=function(e,t){if(!t||\"boolean\"==typeof t||0===e.length)return t;var n=e.shift();if(t.properties&&(t.properties[n],1))return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(var r=0,o=Object.keys(t.patternProperties);r<o.length;r++){var i=o[r];if(new RegExp(i).test(n))return this.getSectionRecursive(e,t.patternProperties[i])}else{if(\"object\"==typeof t.additionalProperties)return this.getSectionRecursive(e,t.additionalProperties);if(n.match(\"[0-9]+\"))if(Array.isArray(t.items)){var a=parseInt(n,10);if(!isNaN(a)&&t.items[a])return this.getSectionRecursive(e,t.items[a])}else if(t.items)return this.getSectionRecursive(e,t.items)}return null},e}();t.ResolvedSchema=f;var l=function(){function e(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations={},this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={}}return e.prototype.getRegisteredSchemaIds=function(e){return Object.keys(this.registeredSchemasIds).filter((function(t){var n=r.URI.parse(t).scheme;return\"schemaservice\"!==n&&(!e||e(n))}))},Object.defineProperty(e.prototype,\"promise\",{get:function(){return this.promiseConstructor},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()},e.prototype.onResourceChange=function(e){for(var t=this,n=!1,r=[e=this.normalizeId(e)],o=Object.keys(this.schemasById).map((function(e){return t.schemasById[e]}));r.length;)for(var i=r.pop(),a=0;a<o.length;a++){var s=o[a];s&&(s.url===i||s.dependencies[i])&&(s.url!==i&&r.push(s.url),s.clearSchema(),o[a]=void 0,n=!0)}return n},e.prototype.normalizeId=function(e){try{return r.URI.parse(e).toString()}catch(t){return e}},e.prototype.setSchemaContributions=function(e){if(e.schemas){var t=e.schemas;for(var n in t){var r=this.normalizeId(n);this.contributionSchemas[r]=this.addSchemaHandle(r,t[n])}}if(e.schemaAssociations){var o=e.schemaAssociations;for(var i in o){var a=o[i];this.contributionAssociations[i]=a;for(var s=this.getOrAddFilePatternAssociation(i),c=0,u=a;c<u.length;c++){var f=u[c];n=this.normalizeId(f);s.addSchema(n)}}}},e.prototype.addSchemaHandle=function(e,t){var n=new c(this,e,t);return this.schemasById[e]=n,n},e.prototype.getOrAddSchemaHandle=function(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)},e.prototype.getOrAddFilePatternAssociation=function(e){var t=this.filePatternAssociationById[e];return t||(t=new s(e),this.filePatternAssociationById[e]=t,this.filePatternAssociations.push(t)),t},e.prototype.registerExternalSchema=function(e,t,n){void 0===t&&(t=null);var r=this.normalizeId(e);if(this.registeredSchemasIds[r]=!0,t)for(var o=0,i=t;o<i.length;o++){var a=i[o];this.getOrAddFilePatternAssociation(a).addSchema(r)}return n?this.addSchemaHandle(r,n):this.getOrAddSchemaHandle(r)},e.prototype.clearExternalSchemas=function(){for(var e in this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={},this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(var t in this.contributionAssociations)for(var n=this.getOrAddFilePatternAssociation(t),r=0,o=this.contributionAssociations[t];r<o.length;r++){var i=o[r];e=this.normalizeId(i);n.addSchema(e)}},e.prototype.getResolvedSchema=function(e){var t=this.normalizeId(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(null)},e.prototype.loadSchema=function(e){if(!this.requestService){var t=a(\"json.schema.norequestservice\",\"Unable to load schema from '{0}'. No schema request service available\",d(e));return this.promise.resolve(new u({},[t]))}return this.requestService(e).then((function(t){if(!t){var r=a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': No content.\",d(e));return new u({},[r])}var o,i=[];o=n.parse(t,i);var s=i.length?[a(\"json.schema.invalidFormat\",\"Unable to parse content from '{0}': Parse error at offset {1}.\",d(e),i[0].offset)]:[];return new u(o,s)}),(function(t){var n=t.toString(),r=t.toString().split(\"Error: \");return r.length>1&&(n=r[1]),o.endsWith(n,\".\")&&(n=n.substr(0,n.length-1)),new u({},[a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': {1}.\",d(e),n)])}))},e.prototype.resolveSchemaContent=function(e,t,n){var r=this,o=e.errors.slice(0),i=e.schema;if(i.$schema){var s=this.normalizeId(i.$schema);if(\"http://json-schema.org/draft-03/schema\"===s)return this.promise.resolve(new f({},[a(\"json.schema.draft03.notsupported\",\"Draft-03 schemas are not supported.\")]));\"https://json-schema.org/draft/2019-09/schema\"===s&&e.errors.push(a(\"json.schema.draft201909.notsupported\",\"Draft 2019-09 schemas are not yet fully supported.\"))}var c=this.contextService,u=function(e,t,n,r){var i=function(e,t){if(!t)return e;var n=e;return\"/\"===t[0]&&(t=t.substr(1)),t.split(\"/\").some((function(e){return!(n=n[e])})),n}(t,r);if(i)for(var s in i)i.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(e[s]=i[s]);else o.push(a(\"json.schema.invalidref\",\"$ref '{0}' in '{1}' can not be resolved.\",r,n))},l=function(e,t,n,i,s){c&&!/^\\w+:\\/\\/.*/.test(t)&&(t=c.resolveRelativePath(t,i)),t=r.normalizeId(t);var f=r.getOrAddSchemaHandle(t);return f.getUnresolvedSchema().then((function(r){if(s[t]=!0,r.errors.length){var i=n?t+\"#\"+n:t;o.push(a(\"json.schema.problemloadingref\",\"Problems loading reference '{0}': {1}\",i,r.errors[0]))}return u(e,r.schema,t,n),d(e,r.schema,t,f.dependencies)}))},d=function(e,t,n,o){if(!e||\"object\"!=typeof e)return Promise.resolve(null);for(var i=[e],a=[],s=[],c=function(e){for(var r=[];e.$ref;){var a=e.$ref,c=a.split(\"#\",2);if(delete e.$ref,c[0].length>0)return void s.push(l(e,c[0],c[1],n,o));-1===r.indexOf(a)&&(u(e,t,n,c[1]),r.push(a))}!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];\"object\"==typeof o&&i.push(o)}}(e.items,e.additionalProperties,e.not,e.contains,e.propertyNames,e.if,e.then,e.else),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(\"object\"==typeof o)for(var a in o){var s=o[a];\"object\"==typeof s&&i.push(s)}}}(e.definitions,e.properties,e.patternProperties,e.dependencies),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(Array.isArray(o))for(var a=0,s=o;a<s.length;a++){var c=s[a];\"object\"==typeof c&&i.push(c)}}}(e.anyOf,e.allOf,e.oneOf,e.items)};i.length;){var f=i.pop();a.indexOf(f)>=0||(a.push(f),c(f))}return r.promise.all(s)};return d(i,i,t,n).then((function(e){return new f(i,o)}))},e.prototype.getSchemaForResource=function(e,t){if(t&&t.root&&\"object\"===t.root.type){var n=t.root.properties.filter((function(e){return\"$schema\"===e.keyNode.value&&e.valueNode&&\"string\"===e.valueNode.type}));if(n.length>0){var r=i.getNodeValue(n[0].valueNode);if(r&&o.startsWith(r,\".\")&&this.contextService&&(r=this.contextService.resolveRelativePath(r,e)),r){var a=this.normalizeId(r);return this.getOrAddSchemaHandle(a).getResolvedSchema()}}}for(var s=Object.create(null),c=[],u=0,f=this.filePatternAssociations;u<f.length;u++){var l=f[u];if(l.matchesPattern(e))for(var d=0,p=l.getSchemas();d<p.length;d++){var h=p[d];s[h]||(c.push(h),s[h]=!0)}}return c.length>0?this.createCombinedSchema(e,c).getResolvedSchema():this.promise.resolve(null)},e.prototype.createCombinedSchema=function(e,t){if(1===t.length)return this.getOrAddSchemaHandle(t[0]);var n=\"schemaservice://combinedSchema/\"+encodeURIComponent(e),r={allOf:t.map((function(e){return{$ref:e}}))};return this.addSchemaHandle(n,r)},e}();function d(e){try{var t=r.URI.parse(e);if(\"file\"===t.scheme)return t.fsPath}catch(e){}return e}t.JSONSchemaService=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonValidation\",[\"require\",\"exports\",\"./jsonSchemaService\",\"../jsonLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./jsonSchemaService\"),r=e(\"../jsonLanguageTypes\"),o=e(\"vscode-nls\"),i=e(\"../utils/objects\"),a=o.loadMessageBundle(),s=function(){function e(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}return e.prototype.configure=function(e){e&&(this.validationEnabled=e.validate,this.commentSeverity=e.allowComments?void 0:r.DiagnosticSeverity.Error)},e.prototype.doValidation=function(e,t,o,s){var f=this;if(!this.validationEnabled)return this.promise.resolve([]);var l=[],d={},p=function(e){var t=e.range.start.line+\" \"+e.range.start.character+\" \"+e.message;d[t]||(d[t]=!0,l.push(e))},h=function(n){var s=o?u(o.trailingCommas):r.DiagnosticSeverity.Error,c=o?u(o.comments):f.commentSeverity;if(n){if(n.errors.length&&t.root){var d=t.root,h=\"object\"===d.type?d.properties[0]:null;if(h&&\"$schema\"===h.keyNode.value){var m=h.valueNode||h,g=r.Range.create(e.positionAt(m.offset),e.positionAt(m.offset+m.length));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}else{g=r.Range.create(e.positionAt(d.offset),e.positionAt(d.offset+1));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}}else{var v=t.validate(e,n.schema);v&&v.forEach(p)}(function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowComments))return t.allowComments;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return})(n.schema)&&(c=void 0),function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowTrailingCommas))return t.allowTrailingCommas;if(i.isBoolean(t.allowsTrailingCommas))return t.allowsTrailingCommas;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return}(n.schema)&&(s=void 0)}for(var y=0,b=t.syntaxErrors;y<b.length;y++){var x=b[y];if(x.code===r.ErrorCode.TrailingComma){if(\"number\"!=typeof s)continue;x.severity=s}p(x)}if(\"number\"==typeof c){var S=a(\"InvalidCommentToken\",\"Comments are not permitted in JSON.\");t.comments.forEach((function(e){p(r.Diagnostic.create(e,S,c,r.ErrorCode.CommentNotPermitted))}))}return l};if(s){var m=s.id||\"schemaservice://untitled/\"+c++;return this.jsonSchemaService.resolveSchemaContent(new n.UnresolvedSchema(s),m,{}).then((function(e){return h(e)}))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then((function(e){return h(e)}))},e}();t.JSONValidation=s;var c=0;function u(e){switch(e){case\"error\":return r.DiagnosticSeverity.Error;case\"warning\":return r.DiagnosticSeverity.Warning;case\"ignore\":return}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/colors\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});function n(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}t.hexDigit=n,t.colorFromHex=function(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:17*n(e.charCodeAt(4))/255};case 7:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:(16*n(e.charCodeAt(7))+n(e.charCodeAt(8)))/255}}return null},t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonDocumentSymbols\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../utils/strings\",\"../utils/colors\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../utils/strings\"),o=e(\"../utils/colors\"),i=e(\"../jsonLanguageTypes\"),a=function(){function e(e){this.schemaService=e}return e.prototype.findDocumentSymbols=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,f=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===f||r.endsWith(f.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var l=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=i.Location.create(e.uri,s(e,h));if(l.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,location:y}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),l}}}return l}for(var b=[{node:c,containerName:\"\"}],x=0,S=!1,C=[],j=function(t,n){\"array\"===t.type?t.items.forEach((function(e){e&&b.push({node:e,containerName:n})})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=i.Location.create(e.uri,s(e,t)),c=n?n+\".\"+t.keyNode.value:t.keyNode.value;C.push({name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),location:o,containerName:n}),b.push({node:r,containerName:c})}else S=!0}))};x<b.length;){var T=b[x++];j(T.node,T.containerName)}return S&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),C},e.prototype.findDocumentSymbols2=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,f=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===f||r.endsWith(f.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var l=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=s(e,h),b=s(e,v.keyNode);if(l.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,range:y,selectionRange:b}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),l}}}return l}for(var x=[],S=[{node:c,result:x}],C=0,j=!1,T=function(t,n){\"array\"===t.type?t.items.forEach((function(t,r){if(t)if(u>0){u--;var o=s(e,t),i=o,c={name:String(r),kind:a.getSymbolKind(t.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:t})}else j=!0})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=s(e,t),i=s(e,t.keyNode),c={name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:r})}else j=!0}))};C<S.length;){var k=S[C++];T(k.node,k.result)}return j&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),x},e.prototype.getSymbolKind=function(e){switch(e){case\"object\":return i.SymbolKind.Module;case\"string\":return i.SymbolKind.String;case\"number\":return i.SymbolKind.Number;case\"array\":return i.SymbolKind.Array;case\"boolean\":return i.SymbolKind.Boolean;default:return i.SymbolKind.Variable}},e.prototype.getKeyLabel=function(e){var t=e.keyNode.value;return t&&(t=t.replace(/[\\n]/g,\"↵\")),t&&t.trim()?t:'\"'+t+'\"'},e.prototype.findDocumentColors=function(e,t,r){return this.schemaService.getSchemaForResource(e.uri,t).then((function(i){var a=[];if(i)for(var c=r&&\"number\"==typeof r.resultLimit?r.resultLimit:Number.MAX_VALUE,u={},f=0,l=t.getMatchingSchemas(i.schema);f<l.length;f++){var d=l[f];if(!d.inverted&&d.schema&&(\"color\"===d.schema.format||\"color-hex\"===d.schema.format)&&d.node&&\"string\"===d.node.type){var p=String(d.node.offset);if(!u[p]){var h=o.colorFromHex(n.getNodeValue(d.node));if(h){var m=s(e,d.node);a.push({color:h,range:m})}if(u[p]=!0,--c<=0)return r&&r.onResultLimitExceeded&&r.onResultLimitExceeded(e.uri),a}}}return a}))},e.prototype.getColorPresentations=function(e,t,n,r){var o,a=[],s=Math.round(255*n.red),c=Math.round(255*n.green),u=Math.round(255*n.blue);function f(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}return o=1===n.alpha?\"#\"+f(s)+f(c)+f(u):\"#\"+f(s)+f(c)+f(u)+f(Math.round(255*n.alpha)),a.push({label:o,textEdit:i.TextEdit.replace(r,JSON.stringify(o))}),a},e}();function s(e,t){return i.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length))}t.JSONDocumentSymbols=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/configuration\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle();t.schemaContributions={schemaAssociations:{},schemas:{\"http://json-schema.org/draft-04/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),$schema:\"http://json-schema.org/draft-04/schema#\",definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},positiveInteger:{type:\"integer\",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:\"#/definitions/positiveInteger\"},{default:0}]},simpleTypes:{type:\"string\",enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},minItems:1,uniqueItems:!0}},type:\"object\",properties:{id:{type:\"string\",format:\"uri\"},$schema:{type:\"string\",format:\"uri\"},title:{type:\"string\"},description:{type:\"string\"},default:{},multipleOf:{type:\"number\",minimum:0,exclusiveMinimum:!0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"boolean\",default:!1},minimum:{type:\"number\"},exclusiveMinimum:{type:\"boolean\",default:!1},maxLength:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minLength:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},pattern:{type:\"string\",format:\"regex\"},additionalItems:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:{}},maxItems:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minItems:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},uniqueItems:{type:\"boolean\",default:!1},maxProperties:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minProperties:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},required:{allOf:[{$ref:\"#/definitions/stringArray\"}]},additionalProperties:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},enum:{type:\"array\",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:\"string\",enum:[\"date-time\",\"uri\",\"email\",\"hostname\",\"ipv4\",\"ipv6\",\"regex\"]},{type:\"string\"}]},allOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},anyOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},oneOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},not:{allOf:[{$ref:\"#\"}]}},dependencies:{exclusiveMaximum:[\"maximum\"],exclusiveMinimum:[\"minimum\"]},default:{}},\"http://json-schema.org/draft-07/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:\"#/definitions/nonNegativeInteger\"},{default:0}]},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}},type:[\"object\",\"boolean\"],properties:{$id:{type:\"string\",format:\"uri-reference\"},$schema:{type:\"string\",format:\"uri\"},$ref:{type:\"string\",format:\"uri-reference\"},$comment:{type:\"string\"},title:{type:\"string\"},description:{type:\"string\"},default:!0,readOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/definitions/nonNegativeInteger\"},minLength:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},additionalItems:{$ref:\"#\"},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:!0},maxItems:{$ref:\"#/definitions/nonNegativeInteger\"},minItems:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},contains:{$ref:\"#\"},maxProperties:{$ref:\"#/definitions/nonNegativeInteger\"},minProperties:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},required:{$ref:\"#/definitions/stringArray\"},additionalProperties:{$ref:\"#\"},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},propertyNames:{format:\"regex\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},propertyNames:{$ref:\"#\"},const:!0,enum:{type:\"array\",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{type:\"string\"},contentMediaType:{type:\"string\"},contentEncoding:{type:\"string\"},if:{$ref:\"#\"},then:{$ref:\"#\"},else:{$ref:\"#\"},allOf:{$ref:\"#/definitions/schemaArray\"},anyOf:{$ref:\"#/definitions/schemaArray\"},oneOf:{$ref:\"#/definitions/schemaArray\"},not:{$ref:\"#\"}},default:!0}}};var r={id:n(\"schema.json.id\",\"A unique identifier for the schema.\"),$schema:n(\"schema.json.$schema\",\"The schema to verify this document against.\"),title:n(\"schema.json.title\",\"A descriptive title of the element.\"),description:n(\"schema.json.description\",\"A long description of the element. Used in hover menus and suggestions.\"),default:n(\"schema.json.default\",\"A default value. Used by suggestions.\"),multipleOf:n(\"schema.json.multipleOf\",\"A number that should cleanly divide the current value (i.e. have no remainder).\"),maximum:n(\"schema.json.maximum\",\"The maximum numerical value, inclusive by default.\"),exclusiveMaximum:n(\"schema.json.exclusiveMaximum\",\"Makes the maximum property exclusive.\"),minimum:n(\"schema.json.minimum\",\"The minimum numerical value, inclusive by default.\"),exclusiveMinimum:n(\"schema.json.exclusiveMininum\",\"Makes the minimum property exclusive.\"),maxLength:n(\"schema.json.maxLength\",\"The maximum length of a string.\"),minLength:n(\"schema.json.minLength\",\"The minimum length of a string.\"),pattern:n(\"schema.json.pattern\",\"A regular expression to match the string against. It is not implicitly anchored.\"),additionalItems:n(\"schema.json.additionalItems\",\"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),items:n(\"schema.json.items\",\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),maxItems:n(\"schema.json.maxItems\",\"The maximum number of items that can be inside an array. Inclusive.\"),minItems:n(\"schema.json.minItems\",\"The minimum number of items that can be inside an array. Inclusive.\"),uniqueItems:n(\"schema.json.uniqueItems\",\"If all of the items in the array must be unique. Defaults to false.\"),maxProperties:n(\"schema.json.maxProperties\",\"The maximum number of properties an object can have. Inclusive.\"),minProperties:n(\"schema.json.minProperties\",\"The minimum number of properties an object can have. Inclusive.\"),required:n(\"schema.json.required\",\"An array of strings that lists the names of all properties required on this object.\"),additionalProperties:n(\"schema.json.additionalProperties\",\"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),definitions:n(\"schema.json.definitions\",\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),properties:n(\"schema.json.properties\",\"A map of property names to schemas for each property.\"),patternProperties:n(\"schema.json.patternProperties\",\"A map of regular expressions on property names to schemas for matching properties.\"),dependencies:n(\"schema.json.dependencies\",\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),enum:n(\"schema.json.enum\",\"The set of literal values that are valid.\"),type:n(\"schema.json.type\",\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),format:n(\"schema.json.format\",\"Describes the format expected for the value.\"),allOf:n(\"schema.json.allOf\",\"An array of schemas, all of which must match.\"),anyOf:n(\"schema.json.anyOf\",\"An array of schemas, where at least one must match.\"),oneOf:n(\"schema.json.oneOf\",\"An array of schemas, exactly one of which must match.\"),not:n(\"schema.json.not\",\"A schema which must not match.\"),$id:n(\"schema.json.$id\",\"A unique identifier for the schema.\"),$ref:n(\"schema.json.$ref\",\"Reference a definition hosted on any location.\"),$comment:n(\"schema.json.$comment\",\"Comments from schema authors to readers or maintainers of the schema.\"),readOnly:n(\"schema.json.readOnly\",\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),examples:n(\"schema.json.examples\",\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),contains:n(\"schema.json.contains\",'An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema.'),propertyNames:n(\"schema.json.propertyNames\",\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),const:n(\"schema.json.const\",\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),contentMediaType:n(\"schema.json.contentMediaType\",\"Describes the media type of a string property.\"),contentEncoding:n(\"schema.json.contentEncoding\",\"Describes the content encoding of a string property.\"),if:n(\"schema.json.if\",'The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated.'),then:n(\"schema.json.then\",'The \"if\" subschema is used for validation when the \"if\" subschema succeeds.'),else:n(\"schema.json.else\",'The \"else\" subschema is used for validation when the \"if\" subschema fails.')};for(var o in t.schemaContributions.schemas){var i=t.schemaContributions.schemas[o];for(var a in i.properties){var s=i.properties[a];!0===s&&(s=i.properties[a]={});var c=r[a];c?s.description=c:console.log(a+\": localize('schema.json.\"+a+'\\', \"\")')}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonFolding\",[\"require\",\"exports\",\"jsonc-parser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../jsonLanguageTypes\");t.getFoldingRanges=function(e,t){var o=[],i=[],a=[],s=-1,c=n.createScanner(e.getText(),!1),u=c.scan();function f(e){o.push(e),i.push(a.length)}for(;17!==u;){switch(u){case 1:case 3:var l={startLine:h=e.positionAt(c.getTokenOffset()).line,endLine:h,kind:1===u?\"object\":\"array\"};a.push(l);break;case 2:case 4:var d=2===u?\"object\":\"array\";if(a.length>0&&a[a.length-1].kind===d){l=a.pop();var p=e.positionAt(c.getTokenOffset()).line;l&&p>l.startLine+1&&s!==l.startLine&&(l.endLine=p-1,f(l),s=l.startLine)}break;case 13:var h=e.positionAt(c.getTokenOffset()).line,m=e.positionAt(c.getTokenOffset()+c.getTokenLength()).line;1===c.getTokenError()&&h+1<e.lineCount?c.setPosition(e.offsetAt(r.Position.create(h+1,0))):h<m&&(f({startLine:h,endLine:m,kind:r.FoldingRangeKind.Comment}),s=h);break;case 12:var g=e.getText().substr(c.getTokenOffset(),c.getTokenLength()).match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);if(g){p=e.positionAt(c.getTokenOffset()).line;if(g[1]){l={startLine:p,endLine:p,kind:r.FoldingRangeKind.Region};a.push(l)}else{for(var v=a.length-1;v>=0&&a[v].kind!==r.FoldingRangeKind.Region;)v--;if(v>=0){l=a[v];a.length=v,p>l.startLine&&s!==l.startLine&&(l.endLine=p,f(l),s=l.startLine)}}}}u=c.scan()}var y=t&&t.rangeLimit;if(\"number\"!=typeof y||o.length<=y)return o;t&&t.onRangeLimitExceeded&&t.onRangeLimitExceeded(e.uri);for(var b=[],x=0,S=i;x<S.length;x++){(O=S[x])<30&&(b[O]=(b[O]||0)+1)}var C=0,j=0;for(v=0;v<b.length;v++){var T=b[v];if(T){if(T+C>y){j=v;break}C+=T}}var k=[];for(v=0;v<o.length;v++){var O;\"number\"==typeof(O=i[v])&&(O<j||O===j&&C++<y)&&k.push(o[v])}return k}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSelectionRanges\",[\"require\",\"exports\",\"../jsonLanguageTypes\",\"jsonc-parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../jsonLanguageTypes\"),r=e(\"jsonc-parser\");t.getSelectionRanges=function(e,t,o){function i(t,r){return n.Range.create(e.positionAt(t),e.positionAt(r))}var a=r.createScanner(e.getText(),!0);function s(e,t){return a.setPosition(e),a.scan()===t?a.getTokenOffset()+a.getTokenLength():-1}return t.map((function(t){for(var r=e.offsetAt(t),a=o.getNodeFromOffset(r,!0),c=[];a;){switch(a.type){case\"string\":case\"object\":case\"array\":var u=a.offset+1,f=a.offset+a.length-1;u<f&&r>=u&&r<=f&&c.push(i(u,f)),c.push(i(a.offset,a.offset+a.length));break;case\"number\":case\"boolean\":case\"null\":case\"property\":c.push(i(a.offset,a.offset+a.length))}if(\"property\"===a.type||a.parent&&\"array\"===a.parent.type){var l=s(a.offset+a.length,5);-1!==l&&c.push(i(a.offset,l))}a=a.parent}for(var d=void 0,p=c.length-1;p>=0;p--)d=n.SelectionRange.create(c[p],d);return d||(d=n.SelectionRange.create(n.Range.create(t,t))),d}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageService\",[\"require\",\"exports\",\"./services/jsonCompletion\",\"./services/jsonHover\",\"./services/jsonValidation\",\"./services/jsonDocumentSymbols\",\"./parser/jsonParser\",\"./services/configuration\",\"./services/jsonSchemaService\",\"./services/jsonFolding\",\"./services/jsonSelectionRanges\",\"jsonc-parser\",\"./jsonLanguageTypes\",\"./jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./services/jsonCompletion\"),r=e(\"./services/jsonHover\"),o=e(\"./services/jsonValidation\"),i=e(\"./services/jsonDocumentSymbols\"),a=e(\"./parser/jsonParser\"),s=e(\"./services/configuration\"),c=e(\"./services/jsonSchemaService\"),u=e(\"./services/jsonFolding\"),f=e(\"./services/jsonSelectionRanges\"),l=e(\"jsonc-parser\"),d=e(\"./jsonLanguageTypes\");!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./jsonLanguageTypes\")),t.getLanguageService=function(e){var t=e.promiseConstructor||Promise,p=new c.JSONSchemaService(e.schemaRequestService,e.workspaceContext,t);p.setSchemaContributions(s.schemaContributions);var h=new n.JSONCompletion(p,e.contributions,t,e.clientCapabilities),m=new r.JSONHover(p,e.contributions,t),g=new i.JSONDocumentSymbols(p),v=new o.JSONValidation(p,t);return{configure:function(e){p.clearExternalSchemas(),e.schemas&&e.schemas.forEach((function(e){p.registerExternalSchema(e.uri,e.fileMatch,e.schema)})),v.configure(e)},resetSchema:function(e){return p.onResourceChange(e)},doValidation:v.doValidation.bind(v),parseJSONDocument:function(e){return a.parse(e,{collectComments:!0})},newJSONDocument:function(e,t){return a.newJSONDocument(e,t)},doResolve:h.doResolve.bind(h),doComplete:h.doComplete.bind(h),findDocumentSymbols:g.findDocumentSymbols.bind(g),findDocumentSymbols2:g.findDocumentSymbols2.bind(g),findColorSymbols:function(e,t){return g.findDocumentColors(e,t).then((function(e){return e.map((function(e){return e.range}))}))},findDocumentColors:g.findDocumentColors.bind(g),getColorPresentations:g.getColorPresentations.bind(g),doHover:m.doHover.bind(m),getFoldingRanges:u.getFoldingRanges,getSelectionRanges:f.getSelectionRanges,format:function(e,t,n){var r=void 0;if(t){var o=e.offsetAt(t.start);r={offset:o,length:e.offsetAt(t.end)-o}}var i={tabSize:n?n.tabSize:4,insertSpaces:!n||n.insertSpaces,eol:\"\\n\"};return l.format(e.getText(),r,i).map((function(t){return d.TextEdit.replace(d.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length)),t.content)}))}}}})),define(\"vscode-json-languageservice\",[\"vscode-json-languageservice/jsonLanguageService\"],(function(e){return e})),define(\"vs/language/json/jsonWorker\",[\"require\",\"exports\",\"vscode-json-languageservice\"],(function(e,t,n){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0}),\"undefined\"!=typeof fetch&&(r=function(e){return fetch(e).then((function(e){return e.text()}))});var o=function(){function e(e){this.wrapped=new Promise(e)}return e.prototype.then=function(e,t){return this.wrapped.then(e,t)},e.prototype.getWrapped=function(){return this.wrapped},e.resolve=function(e){return Promise.resolve(e)},e.reject=function(e){return Promise.reject(e)},e.all=function(e){return Promise.all(e)},e}(),i=function(){function e(e,t){this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageService=n.getLanguageService({schemaRequestService:t.enableSchemaRequest&&r,promiseConstructor:o}),this._languageService.configure(this._languageSettings)}return e.prototype.doValidation=function(e){var t=this._getTextDocument(e);if(t){var n=this._languageService.parseJSONDocument(t);return this._languageService.doValidation(t,n)}return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n);return this._languageService.doComplete(n,t,r)},e.prototype.doResolve=function(e){return this._languageService.doResolve(e)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n);return this._languageService.doHover(n,t,r)},e.prototype.format=function(e,t,n){var r=this._getTextDocument(e),o=this._languageService.format(r,t,n);return Promise.resolve(o)},e.prototype.resetSchema=function(e){return Promise.resolve(this._languageService.resetSchema(e))},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseJSONDocument(t),r=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(r)},e.prototype.findDocumentColors=function(e){var t=this._getTextDocument(e),n=this._languageService.parseJSONDocument(t),r=this._languageService.findDocumentColors(t,n);return Promise.resolve(r)},e.prototype.getColorPresentations=function(e,t,n){var r=this._getTextDocument(e),o=this._languageService.parseJSONDocument(r),i=this._languageService.getColorPresentations(r,o,t,n);return Promise.resolve(i)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.getFoldingRanges(n,t);return Promise.resolve(r)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n),o=this._languageService.getSelectionRanges(n,t,r);return Promise.resolve(o)},e.prototype._getTextDocument=function(e){for(var t=0,r=this._ctx.getMirrorModels();t<r.length;t++){var o=r[t];if(o.uri.toString()===e)return n.TextDocument.create(e,this._languageId,o.version,o.getValue())}return null},e}();t.JSONWorker=i,t.create=function(e,t){return new i(e,t)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/typescript/tsMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\nvar __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};define(\"vs/language/typescript/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){var n=this;this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((function(){return n._stopWorker()})),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((function(){return n._updateExtraLibs()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()},e.prototype._updateExtraLibs=function(){return __awaiter(this,void 0,void 0,(function(){var e,t;return __generator(this,(function(n){switch(n.label){case 0:return this._worker?(e=++this._updateExtraLibsToken,[4,this._worker.getProxy()]):[2];case 1:return t=n.sent(),this._updateExtraLibsToken!==e?[2]:(t.updateExtraLibs(this._defaults.getExtraLibs()),[2])}}))}))},e.prototype._getClient=function(){var e=this;if(!this._client){this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/typescript/tsWorker\",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs()}});var t=this._worker.getProxy();this._defaults.getEagerModelSync()&&(t=t.then((function(t){return e._worker?e._worker.withSyncedResources(monaco.editor.getModels().filter((function(t){return t.getModeId()===e._modeId})).map((function(e){return e.uri}))):t}))),this._client=t}return this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){if(t._worker)return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};define(\"vs/language/typescript/languageFeatures\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=monaco.Uri,o=monaco.Range;function i(e,t,n){if(void 0===n&&(n=0),\"string\"==typeof e)return e;if(void 0===e)return\"\";var r=\"\";if(n){r+=t;for(var o=0;o<n;o++)r+=\"  \"}if(r+=e.messageText,n++,e.next)for(var a=0,s=e.next;a<s.length;a++){r+=i(s[a],t,n)}return r}function a(e){return e?e.map((function(e){return e.text})).join(\"\"):\"\"}!function(e){e[e.None=0]=\"None\",e[e.Block=1]=\"Block\",e[e.Smart=2]=\"Smart\"}(n||(n={})),t.flattenDiagnosticMessageText=i;var s,u=function(){function e(e){this._worker=e}return e.prototype._textSpanToRange=function(e,t){var n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length);return{startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:r.lineNumber,endColumn:r.column}},e}();t.Adapter=u,function(e){e[e.Warning=0]=\"Warning\",e[e.Error=1]=\"Error\",e[e.Suggestion=2]=\"Suggestion\",e[e.Message=3]=\"Message\"}(s||(s={}));var c=function(e){function t(t,n,r){var o=e.call(this,r)||this;o._defaults=t,o._selector=n,o._disposables=[],o._listener=Object.create(null);var i=function(e){if(e.getModeId()===n){var t,r=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return o._doValidate(e)}),500)}));o._listener[e.uri.toString()]={dispose:function(){r.dispose(),clearTimeout(t)}},o._doValidate(e)}},a=function(e){monaco.editor.setModelMarkers(e,o._selector,[]);var t=e.uri.toString();o._listener[t]&&(o._listener[t].dispose(),delete o._listener[t])};o._disposables.push(monaco.editor.onDidCreateModel(i)),o._disposables.push(monaco.editor.onWillDisposeModel(a)),o._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){a(e.model),i(e.model)}))),o._disposables.push({dispose:function(){for(var e=0,t=monaco.editor.getModels();e<t.length;e++){var n=t[e];a(n)}}});var s=function(){for(var e=0,t=monaco.editor.getModels();e<t.length;e++){var n=t[e];a(n),i(n)}};return o._disposables.push(o._defaults.onDidChange(s)),o._disposables.push(o._defaults.onDidExtraLibsChange(s)),monaco.editor.getModels().forEach(i),o}return __extends(t,e),t.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},t.prototype._doValidate=function(e){return __awaiter(this,void 0,void 0,(function(){var t,n,r,o,i,a,s,u,c=this;return __generator(this,(function(l){switch(l.label){case 0:return[4,this._worker(e.uri)];case 1:return t=l.sent(),e.isDisposed()?[2]:(n=[],r=this._defaults.getDiagnosticsOptions(),o=r.noSyntaxValidation,i=r.noSemanticValidation,a=r.noSuggestionDiagnostics,o||n.push(t.getSyntacticDiagnostics(e.uri.toString())),i||n.push(t.getSemanticDiagnostics(e.uri.toString())),a||n.push(t.getSuggestionDiagnostics(e.uri.toString())),[4,Promise.all(n)]);case 2:return!(s=l.sent())||e.isDisposed()?[2]:(u=s.reduce((function(e,t){return t.concat(e)}),[]).filter((function(e){return-1===(c._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)})).map((function(t){return c._convertDiagnostics(e,t)})),monaco.editor.setModelMarkers(e,this._selector,u),[2])}}))}))},t.prototype._convertDiagnostics=function(e,t){var n=t.start||0,r=t.length||1,o=e.getPositionAt(n),a=o.lineNumber,s=o.column,u=e.getPositionAt(n+r),c=u.lineNumber,l=u.column;return{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:s,endLineNumber:c,endColumn:l,message:i(t.messageText,\"\\n\"),code:t.code.toString(),tags:t.reportsUnnecessary?[monaco.MarkerTag.Unnecessary]:[],relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}},t.prototype._convertRelatedInformation=function(e,t){if(t){var n=[];return t.forEach((function(t){var r=e;if(t.file){var o=monaco.Uri.parse(t.file.fileName);r=monaco.editor.getModel(o)}if(r){var a=t.start||0,s=t.length||1,u=r.getPositionAt(a),c=u.lineNumber,l=u.column,p=r.getPositionAt(a+s),g=p.lineNumber,d=p.column;n.push({resource:r.uri,startLineNumber:c,startColumn:l,endLineNumber:g,endColumn:d,message:i(t.messageText,\"\\n\")})}})),n}},t.prototype._tsDiagnosticCategoryToMarkerSeverity=function(e){switch(e){case s.Error:return monaco.MarkerSeverity.Error;case s.Message:return monaco.MarkerSeverity.Info;case s.Warning:return monaco.MarkerSeverity.Warning;case s.Suggestion:return monaco.MarkerSeverity.Hint}return monaco.MarkerSeverity.Info},t}(u);t.DiagnosticsAdapter=c;var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"triggerCharacters\",{get:function(){return[\".\"]},enumerable:!0,configurable:!0}),t.prototype.provideCompletionItems=function(e,n,r,i){return __awaiter(this,void 0,void 0,(function(){var r,i,a,s,u;return __generator(this,(function(c){switch(c.label){case 0:return r=e.getWordUntilPosition(n),i=new o(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn),a=e.uri,s=e.getOffsetAt(n),[4,this._worker(a)];case 1:return[4,c.sent().getCompletionsAtPosition(a.toString(),s)];case 2:return!(u=c.sent())||e.isDisposed()?[2]:[2,{suggestions:u.entries.map((function(r){var s=i;if(r.replacementSpan){var u=e.getPositionAt(r.replacementSpan.start),c=e.getPositionAt(r.replacementSpan.start+r.replacementSpan.length);s=new o(u.lineNumber,u.column,c.lineNumber,c.column)}return{uri:a,position:n,range:s,label:r.name,insertText:r.name,sortText:r.sortText,kind:t.convertKind(r.kind)}}))}]}}))}))},t.prototype.resolveCompletionItem=function(e,n,r,o){return __awaiter(this,void 0,void 0,(function(){var n,o,i,s,u;return __generator(this,(function(c){switch(c.label){case 0:return o=(n=r).uri,i=n.position,s=e.getOffsetAt(i),[4,this._worker(o)];case 1:return[4,c.sent().getCompletionEntryDetails(o.toString(),s,n.label)];case 2:return!(u=c.sent())||e.isDisposed()?[2,n]:[2,{uri:o,position:i,label:u.name,kind:t.convertKind(u.kind),detail:a(u.displayParts),documentation:{value:a(u.documentation)}}]}}))}))},t.convertKind=function(e){switch(e){case _.primitiveType:case _.keyword:return monaco.languages.CompletionItemKind.Keyword;case _.variable:case _.localVariable:return monaco.languages.CompletionItemKind.Variable;case _.memberVariable:case _.memberGetAccessor:case _.memberSetAccessor:return monaco.languages.CompletionItemKind.Field;case _.function:case _.memberFunction:case _.constructSignature:case _.callSignature:case _.indexSignature:return monaco.languages.CompletionItemKind.Function;case _.enum:return monaco.languages.CompletionItemKind.Enum;case _.module:return monaco.languages.CompletionItemKind.Module;case _.class:return monaco.languages.CompletionItemKind.Class;case _.interface:return monaco.languages.CompletionItemKind.Interface;case _.warning:return monaco.languages.CompletionItemKind.File}return monaco.languages.CompletionItemKind.Property},t}(u);t.SuggestAdapter=l;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.signatureHelpTriggerCharacters=[\"(\",\",\"],t}return __extends(t,e),t.prototype.provideSignatureHelp=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i;return __generator(this,(function(s){switch(s.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,s.sent().getSignatureHelpItems(n.toString(),r)];case 2:return!(o=s.sent())||e.isDisposed()?[2]:(i={activeSignature:o.selectedItemIndex,activeParameter:o.argumentIndex,signatures:[]},o.items.forEach((function(e){var t={label:\"\",parameters:[]};t.documentation=a(e.documentation),t.label+=a(e.prefixDisplayParts),e.parameters.forEach((function(n,r,o){var i=a(n.displayParts),s={label:i,documentation:a(n.documentation)};t.label+=i,t.parameters.push(s),r<o.length-1&&(t.label+=a(e.separatorDisplayParts))})),t.label+=a(e.suffixDisplayParts),i.signatures.push(t)})),[2,{value:i,dispose:function(){}}])}}))}))},t}(u);t.SignatureHelpAdapter=p;var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideHover=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i,s,u;return __generator(this,(function(c){switch(c.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,c.sent().getQuickInfoAtPosition(n.toString(),r)];case 2:return!(o=c.sent())||e.isDisposed()?[2]:(i=a(o.documentation),s=o.tags?o.tags.map((function(e){var t=\"*@\"+e.name+\"*\";return e.text?t+(e.text.match(/\\r\\n|\\n/g)?\" \\n\"+e.text:\" - \"+e.text):t})).join(\"  \\n\\n\"):\"\",u=a(o.displayParts),[2,{range:this._textSpanToRange(e,o.textSpan),contents:[{value:\"```js\\n\"+u+\"\\n```\\n\"},{value:i+(s?\"\\n\\n\"+s:\"\")}]}])}}))}))},t}(u);t.QuickInfoAdapter=g;var d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentHighlights=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i=this;return __generator(this,(function(a){switch(a.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,a.sent().getOccurrencesAtPosition(n.toString(),r)];case 2:return!(o=a.sent())||e.isDisposed()?[2]:[2,o.map((function(t){return{range:i._textSpanToRange(e,t.textSpan),kind:t.isWriteAccess?monaco.languages.DocumentHighlightKind.Write:monaco.languages.DocumentHighlightKind.Text}}))]}}))}))},t}(u);t.OccurrencesAdapter=d;var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDefinition=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,o,i,a,s,u,c,l,p;return __generator(this,(function(g){switch(g.label){case 0:return n=e.uri,o=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,g.sent().getDefinitionAtPosition(n.toString(),o)];case 2:if(!(i=g.sent())||e.isDisposed())return[2];for(a=[],s=0,u=i;s<u.length;s++)c=u[s],l=r.parse(c.fileName),(p=monaco.editor.getModel(l))&&a.push({uri:l,range:this._textSpanToRange(p,c.textSpan)});return[2,a]}}))}))},t}(u);t.DefinitionAdapter=f;var m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideReferences=function(e,t,n,o){return __awaiter(this,void 0,void 0,(function(){var n,o,i,a,s,u,c,l,p;return __generator(this,(function(g){switch(g.label){case 0:return n=e.uri,o=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,g.sent().getReferencesAtPosition(n.toString(),o)];case 2:if(!(i=g.sent())||e.isDisposed())return[2];for(a=[],s=0,u=i;s<u.length;s++)c=u[s],l=r.parse(c.fileName),(p=monaco.editor.getModel(l))&&a.push({uri:l,range:this._textSpanToRange(p,c.textSpan)});return[2,a]}}))}))},t}(u);t.ReferenceAdapter=m;var h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentSymbols=function(e,t){return __awaiter(this,void 0,void 0,(function(){var t,n,r,o,i=this;return __generator(this,(function(a){switch(a.label){case 0:return t=e.uri,[4,this._worker(t)];case 1:return[4,a.sent().getNavigationBarItems(t.toString())];case 2:return!(n=a.sent())||e.isDisposed()?[2]:(r=function(t,n,o){var a={name:n.text,detail:\"\",kind:v[n.kind]||monaco.languages.SymbolKind.Variable,range:i._textSpanToRange(e,n.spans[0]),selectionRange:i._textSpanToRange(e,n.spans[0]),tags:[],containerName:o};if(n.childItems&&n.childItems.length>0)for(var s=0,u=n.childItems;s<u.length;s++){var c=u[s];r(t,c,a.name)}t.push(a)},o=[],n.forEach((function(e){return r(o,e)})),[2,o])}}))}))},t}(u);t.OutlineAdapter=h;var _=function(){function e(){}return e.unknown=\"\",e.keyword=\"keyword\",e.script=\"script\",e.module=\"module\",e.class=\"class\",e.interface=\"interface\",e.type=\"type\",e.enum=\"enum\",e.variable=\"var\",e.localVariable=\"local var\",e.function=\"function\",e.localFunction=\"local function\",e.memberFunction=\"method\",e.memberGetAccessor=\"getter\",e.memberSetAccessor=\"setter\",e.memberVariable=\"property\",e.constructorImplementation=\"constructor\",e.callSignature=\"call\",e.indexSignature=\"index\",e.constructSignature=\"construct\",e.parameter=\"parameter\",e.typeParameter=\"type parameter\",e.primitiveType=\"primitive type\",e.label=\"label\",e.alias=\"alias\",e.const=\"const\",e.let=\"let\",e.warning=\"warning\",e}();t.Kind=_;var v=Object.create(null);v[_.module]=monaco.languages.SymbolKind.Module,v[_.class]=monaco.languages.SymbolKind.Class,v[_.enum]=monaco.languages.SymbolKind.Enum,v[_.interface]=monaco.languages.SymbolKind.Interface,v[_.memberFunction]=monaco.languages.SymbolKind.Method,v[_.memberVariable]=monaco.languages.SymbolKind.Property,v[_.memberGetAccessor]=monaco.languages.SymbolKind.Property,v[_.memberSetAccessor]=monaco.languages.SymbolKind.Property,v[_.variable]=monaco.languages.SymbolKind.Variable,v[_.const]=monaco.languages.SymbolKind.Variable,v[_.localVariable]=monaco.languages.SymbolKind.Variable,v[_.variable]=monaco.languages.SymbolKind.Variable,v[_.function]=monaco.languages.SymbolKind.Function,v[_.localFunction]=monaco.languages.SymbolKind.Function;var b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t._convertOptions=function(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:n.Smart,NewLineCharacter:\"\\n\",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}},t.prototype._convertTextChanges=function(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}},t}(u);t.FormatHelper=b;var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s=this;return __generator(this,(function(u){switch(u.label){case 0:return r=e.uri,o=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),i=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),[4,this._worker(r)];case 1:return[4,u.sent().getFormattingEditsForRange(r.toString(),o,i,b._convertOptions(n))];case 2:return!(a=u.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return s._convertTextChanges(e,t)}))]}}))}))},t}(b);t.FormatAdapter=y;var S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"autoFormatTriggerCharacters\",{get:function(){return[\";\",\"}\",\"\\n\"]},enumerable:!0,configurable:!0}),t.prototype.provideOnTypeFormattingEdits=function(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function(){var o,i,a,s=this;return __generator(this,(function(u){switch(u.label){case 0:return o=e.uri,i=e.getOffsetAt(t),[4,this._worker(o)];case 1:return[4,u.sent().getFormattingEditsAfterKeystroke(o.toString(),i,n,b._convertOptions(r))];case 2:return!(a=u.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return s._convertTextChanges(e,t)}))]}}))}))},t}(b);t.FormatOnTypeAdapter=S;var w=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideCodeActions=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s,u,c=this;return __generator(this,(function(l){switch(l.label){case 0:return r=e.uri,o=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),i=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),a=b._convertOptions(e.getOptions()),s=n.markers.filter((function(e){return e.code})).map((function(e){return e.code})).map(Number),[4,this._worker(r)];case 1:return[4,l.sent().getCodeFixesAtPosition(r.toString(),o,i,s,a)];case 2:return!(u=l.sent())||e.isDisposed()?[2]:[2,{actions:u.filter((function(e){return 0===e.changes.filter((function(e){return e.isNewFile})).length})).map((function(t){return c._tsCodeFixActionToMonacoCodeAction(e,n,t)})),dispose:function(){}}]}}))}))},t.prototype._tsCodeFixActionToMonacoCodeAction=function(e,t,n){for(var r=[],o=0,i=n.changes;o<i.length;o++)for(var a=0,s=i[o].textChanges;a<s.length;a++){var u=s[a];r.push({resource:e.uri,edit:{range:this._textSpanToRange(e,u.span),text:u.newText}})}return{title:n.description,edit:{edits:r},diagnostics:t.markers,kind:\"quickfix\"}},t}(b);t.CodeActionAdaptor=w;var x=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideRenameEdits=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s,u,c,l,p,g;return __generator(this,(function(d){switch(d.label){case 0:return r=e.uri,o=r.toString(),i=e.getOffsetAt(t),[4,this._worker(r)];case 1:return[4,(a=d.sent()).getRenameInfo(o,i,{allowRenameOfImportPath:!1})];case 2:if(!1===(s=d.sent()).canRename)return[2,{edits:[],rejectReason:s.localizedErrorMessage}];if(void 0!==s.fileToRename)throw new Error(\"Renaming files is not supported.\");return[4,a.findRenameLocations(o,i,!1,!1,!1)];case 3:if(!(u=d.sent())||e.isDisposed())return[2];for(c=[],l=0,p=u;l<p.length;l++)g=p[l],c.push({resource:monaco.Uri.parse(g.fileName),edit:{range:this._textSpanToRange(e,g.textSpan),text:n}});return[2,{edits:c}]}}))}))},t}(u);t.RenameAdapter=x})),define(\"vs/language/typescript/tsMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,r){\"use strict\";var o,i;function a(e,t){var o=new n.WorkerManager(t,e),i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.getLanguageServiceWorker.apply(o,e)};return monaco.languages.registerCompletionItemProvider(t,new r.SuggestAdapter(i)),monaco.languages.registerSignatureHelpProvider(t,new r.SignatureHelpAdapter(i)),monaco.languages.registerHoverProvider(t,new r.QuickInfoAdapter(i)),monaco.languages.registerDocumentHighlightProvider(t,new r.OccurrencesAdapter(i)),monaco.languages.registerDefinitionProvider(t,new r.DefinitionAdapter(i)),monaco.languages.registerReferenceProvider(t,new r.ReferenceAdapter(i)),monaco.languages.registerDocumentSymbolProvider(t,new r.OutlineAdapter(i)),monaco.languages.registerDocumentRangeFormattingEditProvider(t,new r.FormatAdapter(i)),monaco.languages.registerOnTypeFormattingEditProvider(t,new r.FormatOnTypeAdapter(i)),monaco.languages.registerCodeActionProvider(t,new r.CodeActionAdaptor(i)),monaco.languages.registerRenameProvider(t,new r.RenameAdapter(i)),new r.DiagnosticsAdapter(e,t,i),i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupTypeScript=function(e){i=a(e,\"typescript\")},t.setupJavaScript=function(e){o=a(e,\"javascript\")},t.getJavaScriptWorker=function(){return new Promise((function(e,t){if(!o)return t(\"JavaScript not registered!\");e(o)}))},t.getTypeScriptWorker=function(){return new Promise((function(e,t){if(!i)return t(\"TypeScript not registered!\");e(i)}))}}));"
  },
  {
    "path": "app/assets/js/editor/vs/language/typescript/tsWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,n=0,t=arguments.length;n<t;n++)e+=arguments[n].length;var r=Array(e),a=0;for(n=0;n<t;n++)for(var i=arguments[n],o=0,s=i.length;o<s;o++,a++)r[a]=i[o];return r},__assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var a in n=arguments[t])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e}).apply(this,arguments)},__generator=this&&this.__generator||function(e,n){var t,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(t)throw new TypeError(\"Generator is already executing.\");for(;o;)try{if(t=1,r&&(a=2&i[0]?r.return:i[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,i[1])).done)return a;switch(r=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,r=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=n.call(e,o)}catch(e){i=[6,e],r=0}finally{t=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},__makeTemplateObject=this&&this.__makeTemplateObject||function(e,n){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:n}):e.raw=n,e},__extends=this&&this.__extends||function(){var e=function(n,t){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(n,t)};return function(n,t){function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}();!function(e){e.createMapShim=function(){function e(){var e=Object.create(null);return e.__=void 0,delete e.__,e}var n=function(){function e(e,n){this.currentEntry=e,this.selector=n}return e.prototype.next=function(){for(;this.currentEntry;){var e=!!this.currentEntry.skipNext;if(this.currentEntry=this.currentEntry.nextEntry,!e)break}return this.currentEntry?{value:this.selector(this.currentEntry.key,this.currentEntry.value),done:!1}:{value:void 0,done:!0}},e}();return(function(){function t(){this.data=e(),this.size=0,this.firstEntry={},this.lastEntry=this.firstEntry}return t.prototype.get=function(e){var n=this.data[e];return n&&n.value},t.prototype.set=function(e,n){if(this.has(e))this.data[e].value=n;else{this.size++;var t={key:e,value:n};this.data[e]=t;var r=this.lastEntry;r.nextEntry=t,t.previousEntry=r,this.lastEntry=t}return this},t.prototype.has=function(e){return e in this.data},t.prototype.delete=function(e){if(this.has(e)){this.size--;var n=this.data[e];delete this.data[e];var t=n.previousEntry;return t.nextEntry=n.nextEntry,n.nextEntry&&(n.nextEntry.previousEntry=t),this.lastEntry===n&&(this.lastEntry=t),n.previousEntry=void 0,n.nextEntry=t,n.skipNext=!0,!0}return!1},t.prototype.clear=function(){this.data=e(),this.size=0;for(var n=this.firstEntry,t=n.nextEntry;t;){var r=t.nextEntry;t.previousEntry=void 0,t.nextEntry=n,t.skipNext=!0,t=r}n.nextEntry=void 0,this.lastEntry=n},t.prototype.keys=function(){return new n(this.firstEntry,(function(e){return e}))},t.prototype.values=function(){return new n(this.firstEntry,(function(e,n){return n}))},t.prototype.entries=function(){return new n(this.firstEntry,(function(e,n){return[e,n]}))},t.prototype.forEach=function(e){for(var n=this.entries();;){var t=n.next();if(t.done)break;var r=t.value,a=r[0];e(r[1],a)}},t}())}}(ts||(ts={})),function(e){e.versionMajorMinor=\"3.7\",e.version=e.versionMajorMinor+\".5\"}(ts||(ts={})),function(e){!function(e){e[e.LessThan=-1]=\"LessThan\",e[e.EqualTo=0]=\"EqualTo\",e[e.GreaterThan=1]=\"GreaterThan\"}(e.Comparison||(e.Comparison={}))}(ts||(ts={})),function(e){e.tryGetNativeMap=function(){return\"undefined\"!=typeof Map&&\"entries\"in Map.prototype?Map:void 0}}(ts||(ts={})),function(e){function n(){return new e.Map}function t(e,n,t){if(void 0===t&&(t=L),e)for(var r=0,a=e;r<a.length;r++){if(t(a[r],n))return!0}return!1}function r(e,n){if(e){if(!n)return e.length>0;for(var t=0,r=e;t<r.length;t++){if(n(r[t]))return!0}}return!1}function a(e,n){return void 0===n?e:void 0===e?[n]:(e.push(n),e)}function i(e,n){return n<0?e.length+n:n}function o(e,n,t,r){if(void 0===n||0===n.length)return e;if(void 0===e)return n.slice(t,r);t=void 0===t?0:i(n,t),r=void 0===r?n.length:i(n,r);for(var a=t;a<r&&a<n.length;a++)void 0!==n[a]&&e.push(n[a]);return e}function s(e,n,r){return!t(e,n,r)&&(e.push(n),!0)}function c(e,n,t){n.sort((function(n,r){return t(e[n],e[r])||A(n,r)}))}function l(e,n){return 0===e.length?e:e.slice().sort(n)}function u(e){var n=0;return{next:function(){return n===e.length?{value:void 0,done:!0}:(n++,{value:e[n-1],done:!1})}}}function d(e,n,t,r,a){return p(e,t(n),t,r,a)}function p(e,n,t,a,i){if(!r(e))return-1;for(var o=i||0,s=e.length-1;o<=s;){var c=o+(s-o>>1);switch(a(t(e[c]),n)){case-1:o=c+1;break;case 0:return c;case 1:s=c-1}}return~o}function m(e,n,t,r,a){if(e&&e.length>0){var i=e.length;if(i>0){var o=void 0===r||r<0?0:r,s=void 0===a||o+a>i-1?i-1:o+a,c=void 0;for(arguments.length<=2?(c=e[o],o++):c=t;o<=s;)c=n(c,e[o],o),o++;return c}}return t}e.emptyArray=[],e.Map=e.tryGetNativeMap()||function(){if(\"function\"==typeof e.createMapShim)return e.createMapShim();throw new Error(\"TypeScript requires an environment that provides a compatible native Map implementation.\")}(),e.createMap=n,e.createMapFromEntries=function(e){for(var t=n(),r=0,a=e;r<a.length;r++){var i=a[r],o=i[0],s=i[1];t.set(o,s)}return t},e.createMapFromTemplate=function(n){var t=new e.Map;for(var r in n)f.call(n,r)&&t.set(r,n[r]);return t},e.length=function(e){return e?e.length:0},e.forEach=function(e,n){if(e)for(var t=0;t<e.length;t++){var r=n(e[t],t);if(r)return r}},e.forEachRight=function(e,n){if(e)for(var t=e.length-1;t>=0;t--){var r=n(e[t],t);if(r)return r}},e.firstDefined=function(e,n){if(void 0!==e)for(var t=0;t<e.length;t++){var r=n(e[t],t);if(void 0!==r)return r}},e.firstDefinedIterator=function(e,n){for(;;){var t=e.next();if(t.done)return;var r=n(t.value);if(void 0!==r)return r}},e.zipWith=function(n,t,r){var a=[];e.Debug.assertEqual(n.length,t.length);for(var i=0;i<n.length;i++)a.push(r(n[i],t[i],i));return a},e.zipToIterator=function(n,t){e.Debug.assertEqual(n.length,t.length);var r=0;return{next:function(){return r===n.length?{value:void 0,done:!0}:(r++,{value:[n[r-1],t[r-1]],done:!1})}}},e.zipToMap=function(t,r){e.Debug.assert(t.length===r.length);for(var a=n(),i=0;i<t.length;++i)a.set(t[i],r[i]);return a},e.every=function(e,n){if(e)for(var t=0;t<e.length;t++)if(!n(e[t],t))return!1;return!0},e.find=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(n(r,t))return r}},e.findLast=function(e,n){for(var t=e.length-1;t>=0;t--){var r=e[t];if(n(r,t))return r}},e.findIndex=function(e,n,t){for(var r=t||0;r<e.length;r++)if(n(e[r],r))return r;return-1},e.findLastIndex=function(e,n,t){for(var r=void 0===t?e.length-1:t;r>=0;r--)if(n(e[r],r))return r;return-1},e.findMap=function(n,t){for(var r=0;r<n.length;r++){var a=t(n[r],r);if(a)return a}return e.Debug.fail()},e.contains=t,e.arraysEqual=function(e,n,t){return void 0===t&&(t=L),e.length===n.length&&e.every((function(e,r){return t(e,n[r])}))},e.indexOfAnyCharCode=function(e,n,r){for(var a=r||0;a<e.length;a++)if(t(n,e.charCodeAt(a)))return a;return-1},e.countWhere=function(e,n){var t=0;if(e)for(var r=0;r<e.length;r++){n(e[r],r)&&t++}return t},e.filter=function(e,n){if(e){for(var t=e.length,r=0;r<t&&n(e[r]);)r++;if(r<t){var a=e.slice(0,r);for(r++;r<t;){var i=e[r];n(i)&&a.push(i),r++}return a}}return e},e.filterMutate=function(e,n){for(var t=0,r=0;r<e.length;r++)n(e[r],r,e)&&(e[t]=e[r],t++);e.length=t},e.clear=function(e){e.length=0},e.map=function(e,n){var t;if(e){t=[];for(var r=0;r<e.length;r++)t.push(n(e[r],r))}return t},e.mapIterator=function(e,n){return{next:function(){var t=e.next();return t.done?t:{value:n(t.value),done:!1}}}},e.sameMap=function(e,n){if(e)for(var t=0;t<e.length;t++){var r=e[t],a=n(r,t);if(r!==a){var i=e.slice(0,t);for(i.push(a),t++;t<e.length;t++)i.push(n(e[t],t));return i}}return e},e.flatten=function(e){for(var n=[],t=0,r=e;t<r.length;t++){var a=r[t];a&&(E(a)?o(n,a):n.push(a))}return n},e.flatMap=function(n,t){var r;if(n)for(var i=0;i<n.length;i++){var s=t(n[i],i);s&&(r=E(s)?o(r,s):a(r,s))}return r||e.emptyArray},e.flatMapToMutable=function(e,n){var t=[];if(e)for(var r=0;r<e.length;r++){var a=n(e[r],r);a&&(E(a)?o(t,a):t.push(a))}return t},e.flatMapIterator=function(n,t){var r=n.next();if(r.done)return e.emptyIterator;var a=i(r.value);return{next:function(){for(;;){var e=a.next();if(!e.done)return e;var t=n.next();if(t.done)return t;a=i(t.value)}}};function i(n){var r=t(n);return void 0===r?e.emptyIterator:E(r)?u(r):r}},e.sameFlatMap=function(e,n){var t;if(e)for(var r=0;r<e.length;r++){var a=e[r],i=n(a,r);(t||a!==i||E(i))&&(t||(t=e.slice(0,r)),E(i)?o(t,i):t.push(i))}return t||e},e.mapAllOrFail=function(e,n){for(var t=[],r=0;r<e.length;r++){var a=n(e[r],r);if(void 0===a)return;t.push(a)}return t},e.mapDefined=function(e,n){var t=[];if(e)for(var r=0;r<e.length;r++){var a=n(e[r],r);void 0!==a&&t.push(a)}return t},e.mapDefinedIterator=function(e,n){return{next:function(){for(;;){var t=e.next();if(t.done)return t;var r=n(t.value);if(void 0!==r)return{value:r,done:!1}}}}},e.emptyIterator={next:function(){return{value:void 0,done:!0}}},e.singleIterator=function(e){var n=!1;return{next:function(){var t=n;return n=!0,t?{value:void 0,done:!0}:{value:e,done:!1}}}},e.spanMap=function(e,n,t){var r;if(e){r=[];for(var a=e.length,i=void 0,o=void 0,s=0,c=0;s<a;){for(;c<a;){if(o=n(e[c],c),0===c)i=o;else if(o!==i)break;c++}if(s<c){var l=t(e.slice(s,c),i,s,c);l&&r.push(l),s=c}i=o,c++}}return r},e.mapEntries=function(e,t){if(e){var r=n();return e.forEach((function(e,n){var a=t(n,e),i=a[0],o=a[1];r.set(i,o)})),r}},e.some=r,e.getRangesWhere=function(e,n,t){for(var r,a=0;a<e.length;a++)n(e[a])?r=void 0===r?a:r:void 0!==r&&(t(r,a),r=void 0);void 0!==r&&t(r,e.length)},e.concatenate=function(e,n){return r(n)?r(e)?__spreadArrays(e,n):n:e},e.deduplicate=function(e,n,t){return 0===e.length?[]:1===e.length?e.slice():t?function(e,n,t){var r=e.map((function(e,n){return n}));c(e,r,t);for(var a=e[r[0]],i=[r[0]],o=1;o<r.length;o++){var s=r[o],l=e[s];n(a,l)||(i.push(s),a=l)}return i.sort(),i.map((function(n){return e[n]}))}(e,n,t):function(e,n){for(var t=[],r=0,a=e;r<a.length;r++){s(t,a[r],n)}return t}(e,n)},e.insertSorted=function(e,n,t){if(0!==e.length){var r=d(e,n,S,t);r<0&&e.splice(~r,0,n)}else e.push(n)},e.sortAndDeduplicate=function(n,t,r){return function(n,t){if(0===n.length)return e.emptyArray;for(var r=n[0],a=[r],i=1;i<n.length;i++){var o=n[i];switch(t(o,r)){case!0:case 0:continue;case-1:return e.Debug.fail(\"Array is unsorted.\")}a.push(r=o)}return a}(l(n,t),r||t||k)},e.arrayIsEqualTo=function(e,n,t){if(void 0===t&&(t=L),!e||!n)return e===n;if(e.length!==n.length)return!1;for(var r=0;r<e.length;r++)if(!t(e[r],n[r],r))return!1;return!0},e.compact=function(e){var n;if(e)for(var t=0;t<e.length;t++){var r=e[t];!n&&r||(n||(n=e.slice(0,t)),r&&n.push(r))}return n||e},e.relativeComplement=function(n,t,r){if(!t||!n||0===t.length||0===n.length)return t;var a=[];e:for(var i=0,o=0;o<t.length;o++){o>0&&e.Debug.assertGreaterThanOrEqual(r(t[o],t[o-1]),0);n:for(var s=i;i<n.length;i++)switch(i>s&&e.Debug.assertGreaterThanOrEqual(r(n[i],n[i-1]),0),r(t[o],n[i])){case-1:a.push(t[o]);continue e;case 0:continue e;case 1:continue n}}return a},e.sum=function(e,n){for(var t=0,r=0,a=e;r<a.length;r++){t+=a[r][n]}return t},e.append=a,e.addRange=o,e.pushIfUnique=s,e.appendIfUnique=function(e,n,t){return e?(s(e,n,t),e):[n]},e.sort=l,e.arrayIterator=u,e.arrayReverseIterator=function(e){var n=e.length;return{next:function(){return 0===n?{value:void 0,done:!0}:(n--,{value:e[n],done:!1})}}},e.stableSort=function(e,n){var t=e.map((function(e,n){return n}));return c(e,t,n),t.map((function(n){return e[n]}))},e.rangeEquals=function(e,n,t,r){for(;t<r;){if(e[t]!==n[t])return!1;t++}return!0},e.elementAt=function(e,n){if(e&&(n=i(e,n))<e.length)return e[n]},e.firstOrUndefined=function(e){return 0===e.length?void 0:e[0]},e.first=function(n){return e.Debug.assert(0!==n.length),n[0]},e.lastOrUndefined=function(e){return 0===e.length?void 0:e[e.length-1]},e.last=function(n){return e.Debug.assert(0!==n.length),n[n.length-1]},e.singleOrUndefined=function(e){return e&&1===e.length?e[0]:void 0},e.singleOrMany=function(e){return e&&1===e.length?e[0]:e},e.replaceElement=function(e,n,t){var r=e.slice(0);return r[n]=t,r},e.binarySearch=d,e.binarySearchKey=p,e.reduceLeft=m;var f=Object.prototype.hasOwnProperty;function _(e,n){return f.call(e,n)}function g(e,n){for(var t=[],r=e.next();!r.done;r=e.next())t.push(n?n(r.value):r.value);return t}function y(e,n,t){void 0===t&&(t=S);for(var r=v(),a=0,i=e;a<i.length;a++){var o=i[a];r.add(n(o),t(o))}return r}function v(){var e=n();return e.add=h,e.remove=b,e}function h(e,n){var t=this.get(e);return t?t.push(n):this.set(e,t=[n]),t}function b(e,n){var t=this.get(e);t&&(F(t,n),t.length||this.delete(e))}function E(e){return Array.isArray?Array.isArray(e):e instanceof Array}function T(e){}function S(e){return e}function x(e){return e.toLowerCase()}function L(e,n){return e===n}function C(e,n){return e===n?0:void 0===e?-1:void 0===n?1:e<n?-1:1}function A(e,n){return C(e,n)}function D(e,n){return e===n?0:void 0===e?-1:void 0===n?1:(e=e.toUpperCase())<(n=n.toUpperCase())?-1:e>n?1:0}function k(e,n){return C(e,n)}e.hasProperty=_,e.getProperty=function(e,n){return f.call(e,n)?e[n]:void 0},e.getOwnKeys=function(e){var n=[];for(var t in e)f.call(e,t)&&n.push(t);return n},e.getAllKeys=function(e){var n=[];do{for(var t=0,r=Object.getOwnPropertyNames(e);t<r.length;t++){s(n,r[t])}}while(e=Object.getPrototypeOf(e));return n},e.getOwnValues=function(e){var n=[];for(var t in e)f.call(e,t)&&n.push(e[t]);return n},e.arrayFrom=g,e.assign=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];for(var r=0,a=n;r<a.length;r++){var i=a[r];if(void 0!==i)for(var o in i)_(i,o)&&(e[o]=i[o])}return e},e.equalOwnProperties=function(e,n,t){if(void 0===t&&(t=L),e===n)return!0;if(!e||!n)return!1;for(var r in e)if(f.call(e,r)){if(!f.call(n,r))return!1;if(!t(e[r],n[r]))return!1}for(var r in n)if(f.call(n,r)&&!f.call(e,r))return!1;return!0},e.arrayToMap=function(e,t,r){void 0===r&&(r=S);for(var a=n(),i=0,o=e;i<o.length;i++){var s=o[i],c=t(s);void 0!==c&&a.set(c,r(s))}return a},e.arrayToNumericMap=function(e,n,t){void 0===t&&(t=S);for(var r=[],a=0,i=e;a<i.length;a++){var o=i[a];r[n(o)]=t(o)}return r},e.arrayToMultiMap=y,e.group=function(e,n){return g(y(e,n).values())},e.clone=function(e){var n={};for(var t in e)f.call(e,t)&&(n[t]=e[t]);return n},e.extend=function(e,n){var t={};for(var r in n)f.call(n,r)&&(t[r]=n[r]);for(var r in e)f.call(e,r)&&(t[r]=e[r]);return t},e.copyProperties=function(e,n){for(var t in n)f.call(n,t)&&(e[t]=n[t])},e.maybeBind=function(e,n){return n?n.bind(e):void 0},e.mapMap=function(e,t){var r=n();return e.forEach((function(e,n){return r.set.apply(r,t(e,n))})),r},e.createMultiMap=v,e.isArray=E,e.toArray=function(e){return E(e)?e:[e]},e.isString=function(e){return\"string\"==typeof e},e.isNumber=function(e){return\"number\"==typeof e},e.tryCast=function(e,n){return void 0!==e&&n(e)?e:void 0},e.cast=function(n,t){return void 0!==n&&t(n)?n:e.Debug.fail(\"Invalid cast. The supplied value \"+n+\" did not pass the test '\"+e.Debug.getFunctionName(t)+\"'.\")},e.noop=T,e.returnFalse=function(){return!1},e.returnTrue=function(){return!0},e.returnUndefined=function(){},e.identity=S,e.toLowerCase=x,e.notImplemented=function(){throw new Error(\"Not implemented\")},e.memoize=function(e){var n;return function(){return e&&(n=e(),e=void 0),n}},e.compose=function(e,n,t,r,a){if(a){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];return function(e){return m(i,(function(e,n){return n(e)}),e)}}return r?function(a){return r(t(n(e(a))))}:t?function(r){return t(n(e(r)))}:n?function(t){return n(e(t))}:e?function(n){return e(n)}:function(e){return e}},function(e){e[e.None=0]=\"None\",e[e.Normal=1]=\"Normal\",e[e.Aggressive=2]=\"Aggressive\",e[e.VeryAggressive=3]=\"VeryAggressive\"}(e.AssertionLevel||(e.AssertionLevel={})),e.equateValues=L,e.equateStringsCaseInsensitive=function(e,n){return e===n||void 0!==e&&void 0!==n&&e.toUpperCase()===n.toUpperCase()},e.equateStringsCaseSensitive=function(e,n){return L(e,n)},e.compareValues=A,e.min=function(e,n,t){return-1===t(e,n)?e:n},e.compareStringsCaseInsensitive=D,e.compareStringsCaseSensitive=k,e.getStringComparer=function(e){return e?D:k};var N,I,M=function(){var e,n,t=function(){if(\"object\"==typeof Intl&&\"function\"==typeof Intl.Collator)return a;if(\"function\"==typeof String.prototype.localeCompare&&\"function\"==typeof String.prototype.toLocaleUpperCase&&\"a\".localeCompare(\"B\")<0)return i;return o}();return function(r){return void 0===r?e||(e=t(r)):\"en-US\"===r?n||(n=t(r)):t(r)};function r(e,n,t){if(e===n)return 0;if(void 0===e)return-1;if(void 0===n)return 1;var r=t(e,n);return r<0?-1:r>0?1:0}function a(e){var n=new Intl.Collator(e,{usage:\"sort\",sensitivity:\"variant\"}).compare;return function(e,t){return r(e,t,n)}}function i(e){return void 0!==e?o():function(e,t){return r(e,t,n)};function n(e,n){return e.localeCompare(n)}}function o(){return function(n,t){return r(n,t,e)};function e(e,t){return n(e.toUpperCase(),t.toUpperCase())||n(e,t)}function n(e,n){return e<n?-1:e>n?1:0}}}();function O(e,n,t){for(var r=new Array(n.length+1),a=new Array(n.length+1),i=t+1,o=0;o<=n.length;o++)r[o]=o;for(o=1;o<=e.length;o++){var s=e.charCodeAt(o-1),c=o>t?o-t:1,l=n.length>t+o?t+o:n.length;a[0]=o;for(var u=o,d=1;d<c;d++)a[d]=i;for(d=c;d<=l;d++){var p=s===n.charCodeAt(d-1)?r[d-1]:Math.min(r[d]+1,a[d-1]+1,r[d-1]+2);a[d]=p,u=Math.min(u,p)}for(d=l+1;d<=n.length;d++)a[d]=i;if(u>t)return;var m=r;r=a,a=m}var f=r[n.length];return f>t?void 0:f}function R(e,n){var t=e.length-n.length;return t>=0&&e.indexOf(n,t)===t}function P(e,n){for(var t=n;t<e.length-1;t++)e[t]=e[t+1];e.pop()}function w(e,n){e[n]=e[e.length-1],e.pop()}function F(e,n){return function(e,n){for(var t=0;t<e.length;t++)if(n(e[t]))return w(e,t),!0;return!1}(e,(function(e){return e===n}))}function G(e,n){return 0===e.lastIndexOf(n,0)}function B(e,n){var t=e.prefix,r=e.suffix;return n.length>=t.length+r.length&&G(n,t)&&R(n,r)}e.getUILocale=function(){return I},e.setUILocale=function(e){I!==e&&(I=e,N=void 0)},e.compareStringsCaseSensitiveUI=function(e,n){return(N||(N=M(I)))(e,n)},e.compareProperties=function(e,n,t,r){return e===n?0:void 0===e?-1:void 0===n?1:r(e[t],n[t])},e.compareBooleans=function(e,n){return A(e?1:0,n?1:0)},e.getSpellingSuggestion=function(n,t,r){for(var a,i=Math.min(2,Math.floor(.34*n.length)),o=Math.floor(.4*n.length)+1,s=!1,c=n.toLowerCase(),l=0,u=t;l<u.length;l++){var d=u[l],p=r(d);if(void 0!==p&&Math.abs(p.length-c.length)<=i){var m=p.toLowerCase();if(m===c){if(p===n)continue;return d}if(s)continue;if(p.length<3)continue;var f=O(c,m,o-1);if(void 0===f)continue;f<3?(s=!0,a=d):(e.Debug.assert(f<o),o=f,a=d)}}return a},e.endsWith=R,e.removeSuffix=function(e,n){return R(e,n)?e.slice(0,e.length-n.length):e},e.tryRemoveSuffix=function(e,n){return R(e,n)?e.slice(0,e.length-n.length):void 0},e.stringContains=function(e,n){return-1!==e.indexOf(n)},e.removeMinAndVersionNumbers=function(e){var n=/[.-]((min)|(\\d+(\\.\\d+)*))$/;return e.replace(n,\"\").replace(n,\"\")},e.orderedRemoveItem=function(e,n){for(var t=0;t<e.length;t++)if(e[t]===n)return P(e,t),!0;return!1},e.orderedRemoveItemAt=P,e.unorderedRemoveItemAt=w,e.unorderedRemoveItem=F,e.createGetCanonicalFileName=function(e){return e?S:x},e.patternText=function(e){return e.prefix+\"*\"+e.suffix},e.matchedText=function(n,t){return e.Debug.assert(B(n,t)),t.substring(n.prefix.length,t.length-n.suffix.length)},e.findBestPatternMatch=function(e,n,t){for(var r,a=-1,i=0,o=e;i<o.length;i++){var s=o[i],c=n(s);B(c,t)&&c.prefix.length>a&&(a=c.prefix.length,r=s)}return r},e.startsWith=G,e.removePrefix=function(e,n){return G(e,n)?e.substr(n.length):e},e.tryRemovePrefix=function(e,n,t){return void 0===t&&(t=S),G(t(e),t(n))?e.substring(n.length):void 0},e.and=function(e,n){return function(t){return e(t)&&n(t)}},e.or=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return function(n){for(var t=0,r=e;t<r.length;t++){if((0,r[t])(n))return!0}return!1}},e.not=function(e){return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return!e.apply(void 0,n)}},e.assertType=function(e){},e.singleElementArray=function(e){return void 0===e?void 0:[e]},e.enumerateInsertsAndDeletes=function(e,n,t,r,a,i){i=i||T;for(var o=0,s=0,c=e.length,l=n.length;o<c&&s<l;){var u=e[o],d=n[s],p=t(u,d);-1===p?(r(u),o++):1===p?(a(d),s++):(i(d,u),o++,s++)}for(;o<c;)r(e[o++]);for(;s<l;)a(n[s++])},e.fill=function(e,n){for(var t=Array(e),r=0;r<e;r++)t[r]=n(r);return t},e.cartesianProduct=function(e){var n=[];return function e(n,t,r,a){for(var i=0,o=n[a];i<o.length;i++){var s=o[i],c=void 0;r?(c=r.slice()).push(s):c=[s],a===n.length-1?t.push(c):e(n,t,c,a+1)}}(e,n,void 0,0),n}}(ts||(ts={})),function(e){!function(n){function t(e){return n.currentAssertionLevel>=e}function r(e,n,t,i){e||(t&&(n+=\"\\r\\nVerbose Debug Information: \"+(\"string\"==typeof t?t:t())),a(n?\"False expression: \"+n:\"False expression.\",i||r))}function a(e,n){var t=new Error(e?\"Debug Failure. \"+e:\"Debug Failure.\");throw Error.captureStackTrace&&Error.captureStackTrace(t,n||a),t}function i(e,n){return null==e?a(n):e}function o(e){if(\"function\"!=typeof e)return\"\";if(e.hasOwnProperty(\"name\"))return e.name;var n=Function.prototype.toString.call(e),t=/^function\\s+([\\w\\$]+)\\s*\\(/.exec(n);return t?t[1]:\"\"}function s(n,t,r){void 0===n&&(n=0);var a=function(n){var t=[];for(var r in n){var a=n[r];\"number\"==typeof a&&t.push([a,r])}return e.stableSort(t,(function(n,t){return e.compareValues(n[0],t[0])}))}(t);if(0===n)return a.length>0&&0===a[0][0]?a[0][1]:\"0\";if(r){for(var i=\"\",o=n,s=a.length-1;s>=0&&0!==o;s--){var c=a[s],l=c[0],u=c[1];0!==l&&(o&l)===l&&(o&=~l,i=u+(i?\"|\":\"\")+i)}if(0===o)return i}else for(var d=0,p=a;d<p.length;d++){var m=p[d];l=m[0],u=m[1];if(l===n)return u}return n.toString()}function c(n){return s(n,e.SyntaxKind,!1)}function l(n){return s(n,e.NodeFlags,!0)}function u(n){return s(n,e.ModifierFlags,!0)}function d(n){return s(n,e.TransformFlags,!0)}function p(n){return s(n,e.EmitFlags,!0)}function m(n){return s(n,e.SymbolFlags,!0)}function f(n){return s(n,e.TypeFlags,!0)}function _(n){return s(n,e.ObjectFlags,!0)}n.currentAssertionLevel=0,n.isDebugging=!1,n.shouldAssert=t,n.assert=r,n.assertEqual=function(e,n,t,r){e!==n&&a(\"Expected \"+e+\" === \"+n+\". \"+(t?r?t+\" \"+r:t:\"\"))},n.assertLessThan=function(e,n,t){e>=n&&a(\"Expected \"+e+\" < \"+n+\". \"+(t||\"\"))},n.assertLessThanOrEqual=function(e,n){e>n&&a(\"Expected \"+e+\" <= \"+n)},n.assertGreaterThanOrEqual=function(e,n){e<n&&a(\"Expected \"+e+\" >= \"+n)},n.fail=a,n.assertDefined=i,n.assertEachDefined=function(e,n){for(var t=0,r=e;t<r.length;t++){i(r[t],n)}return e},n.assertNever=function n(t,r,i){return void 0===r&&(r=\"Illegal value:\"),a(r+\" \"+(\"object\"==typeof t&&e.hasProperty(t,\"kind\")&&e.hasProperty(t,\"pos\")&&c?\"SyntaxKind: \"+c(t.kind):JSON.stringify(t)),i||n)},n.getFunctionName=o,n.formatSymbol=function(n){return\"{ name: \"+e.unescapeLeadingUnderscores(n.escapedName)+\"; flags: \"+m(n.flags)+\"; declarations: \"+e.map(n.declarations,(function(e){return c(e.kind)}))+\" }\"},n.formatEnum=s,n.formatSyntaxKind=c,n.formatNodeFlags=l,n.formatModifierFlags=u,n.formatTransformFlags=d,n.formatEmitFlags=p,n.formatSymbolFlags=m,n.formatTypeFlags=f,n.formatObjectFlags=_,n.failBadSyntaxKind=function e(n,t){return a((t||\"Unexpected node.\")+\"\\r\\nNode \"+c(n.kind)+\" was unexpected.\",e)},n.assertEachNode=t(1)?function(t,a,i){return r(void 0===a||e.every(t,a),i||\"Unexpected node.\",(function(){return\"Node array did not pass test '\"+o(a)+\"'.\"}),n.assertEachNode)}:e.noop,n.assertNode=t(1)?function(e,t,a){return r(void 0===t||t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" did not pass test '\"+o(t)+\"'.\"}),n.assertNode)}:e.noop,n.assertNotNode=t(1)?function(e,t,a){return r(void 0===t||!t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" should not have passed test '\"+o(t)+\"'.\"}),n.assertNode)}:e.noop,n.assertOptionalNode=t(1)?function(e,t,a){return r(void 0===t||void 0===e||t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" did not pass test '\"+o(t)+\"'.\"}),n.assertOptionalNode)}:e.noop,n.assertOptionalToken=t(1)?function(e,t,a){return r(void 0===t||void 0===e||e.kind===t,a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" was not a '\"+c(t)+\"' token.\"}),n.assertOptionalToken)}:e.noop,n.assertMissingNode=t(1)?function(e,t){return r(void 0===e,t||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" was unexpected'.\"}),n.assertMissingNode)}:e.noop;var g,y=!1;function v(e){return function(){if(h(),!g)throw new Error(\"Debugging helpers could not be loaded.\");return g}().formatControlFlowGraph(e)}function h(){if(!y){Object.defineProperties(e.objectAllocator.getSymbolConstructor().prototype,{__debugFlags:{get:function(){return m(this.flags)}}}),Object.defineProperties(e.objectAllocator.getTypeConstructor().prototype,{__debugFlags:{get:function(){return f(this.flags)}},__debugObjectFlags:{get:function(){return 524288&this.flags?_(this.objectFlags):\"\"}},__debugTypeToString:{value:function(){return this.checker.typeToString(this)}}});for(var n=0,t=[e.objectAllocator.getNodeConstructor(),e.objectAllocator.getIdentifierConstructor(),e.objectAllocator.getTokenConstructor(),e.objectAllocator.getSourceFileConstructor()];n<t.length;n++){var r=t[n];r.prototype.hasOwnProperty(\"__debugKind\")||Object.defineProperties(r.prototype,{__debugKind:{get:function(){return c(this.kind)}},__debugNodeFlags:{get:function(){return l(this.flags)}},__debugModifierFlags:{get:function(){return u(e.getModifierFlagsNoCache(this))}},__debugTransformFlags:{get:function(){return d(this.transformFlags)}},__debugIsParseTreeNode:{get:function(){return e.isParseTreeNode(this)}},__debugEmitFlags:{get:function(){return p(e.getEmitFlags(this))}},__debugGetText:{value:function(n){if(e.nodeIsSynthesized(this))return\"\";var t=e.getParseTreeNode(this),r=t&&e.getSourceFileOfNode(t);return r?e.getSourceTextOfNodeFromSourceFile(r,t,n):\"\"}}})}try{if(e.sys&&e.sys.require){e.getDirectoryPath(e.resolvePath(e.sys.getExecutingFilePath()));var a=void 0;a.error||(a.module.init(e),g=a.module)}}catch(e){}y=!0}}n.printControlFlowGraph=function(e){return console.log(v(e))},n.formatControlFlowGraph=v,n.attachFlowNodeDebugInfo=function(n){y&&(\"__debugFlowFlags\"in n||Object.defineProperties(n,{__debugFlowFlags:{get:function(){return s(this.flags,e.FlowFlags,!0)}},__debugToString:{value:function(){return v(this)}}}))},n.enableDebugInfo=h}(e.Debug||(e.Debug={}))}(ts||(ts={})),function(e){e.timestamp=\"undefined\"!=typeof performance&&performance.now?function(){return performance.now()}:Date.now?Date.now:function(){return+new Date}}(ts||(ts={})),function(e){!function(n){var t,r,a,i=\"function\"==typeof onProfilerEvent&&!0===onProfilerEvent.profiler?onProfilerEvent:function(){},o=!1,s=0;function c(n,t,r){var a=0;return{enter:function(){1==++a&&l(t)},exit:function(){0==--a?(l(r),u(n,t,r)):a<0&&e.Debug.fail(\"enter/exit count does not match.\")}}}function l(n){o&&(r.set(n,e.timestamp()),t.set(n,(t.get(n)||0)+1),i(n))}function u(n,t,i){if(o){var c=i&&r.get(i)||e.timestamp(),l=t&&r.get(t)||s;a.set(n,(a.get(n)||0)+(c-l))}}n.createTimerIf=function(e,t,r,a){return e?c(t,r,a):n.nullTimer},n.createTimer=c,n.nullTimer={enter:e.noop,exit:e.noop},n.mark=l,n.measure=u,n.getCount=function(e){return t&&t.get(e)||0},n.getDuration=function(e){return a&&a.get(e)||0},n.forEachMeasure=function(e){a.forEach((function(n,t){e(t,n)}))},n.enable=function(){t=e.createMap(),r=e.createMap(),a=e.createMap(),o=!0,s=e.timestamp()},n.disable=function(){o=!1}}(e.performance||(e.performance={}))}(ts||(ts={})),function(e){var n,t={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop};try{n=void 0}catch(e){n=void 0}e.perfLogger=n&&n.logEvent?n:t}(ts||(ts={})),function(e){var n=/^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,t=/^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i,r=/^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i,a=/^(0|[1-9]\\d*)$/,i=function(){function n(n,a,i,s,c){if(void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=\"\"),void 0===c&&(c=\"\"),\"string\"==typeof n){var l=e.Debug.assertDefined(o(n),\"Invalid version\");n=l.major,a=l.minor,i=l.patch,s=l.prerelease,c=l.build}e.Debug.assert(n>=0,\"Invalid argument: major\"),e.Debug.assert(a>=0,\"Invalid argument: minor\"),e.Debug.assert(i>=0,\"Invalid argument: patch\"),e.Debug.assert(!s||t.test(s),\"Invalid argument: prerelease\"),e.Debug.assert(!c||r.test(c),\"Invalid argument: build\"),this.major=n,this.minor=a,this.patch=i,this.prerelease=s?s.split(\".\"):e.emptyArray,this.build=c?c.split(\".\"):e.emptyArray}return n.tryParse=function(e){var t=o(e);if(t)return new n(t.major,t.minor,t.patch,t.prerelease,t.build)},n.prototype.compareTo=function(n){return this===n?0:void 0===n?1:e.compareValues(this.major,n.major)||e.compareValues(this.minor,n.minor)||e.compareValues(this.patch,n.patch)||function(n,t){if(n===t)return 0;if(0===n.length)return 0===t.length?0:1;if(0===t.length)return-1;for(var r=Math.min(n.length,t.length),i=0;i<r;i++){var o=n[i],s=t[i];if(o!==s){var c=a.test(o),l=a.test(s);if(c||l){if(c!==l)return c?-1:1;if(u=e.compareValues(+o,+s))return u}else{var u;if(u=e.compareStringsCaseSensitive(o,s))return u}}}return e.compareValues(n.length,t.length)}(this.prerelease,n.prerelease)},n.prototype.increment=function(t){switch(t){case\"major\":return new n(this.major+1,0,0);case\"minor\":return new n(this.major,this.minor+1,0);case\"patch\":return new n(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(t)}},n.prototype.toString=function(){var n=this.major+\".\"+this.minor+\".\"+this.patch;return e.some(this.prerelease)&&(n+=\"-\"+this.prerelease.join(\".\")),e.some(this.build)&&(n+=\"+\"+this.build.join(\".\")),n},n.zero=new n(0,0,0),n}();function o(e){var a=n.exec(e);if(a){var i=a[1],o=a[2],s=void 0===o?\"0\":o,c=a[3],l=void 0===c?\"0\":c,u=a[4],d=void 0===u?\"\":u,p=a[5],m=void 0===p?\"\":p;if((!d||t.test(d))&&(!m||r.test(m)))return{major:parseInt(i,10),minor:parseInt(s,10),patch:parseInt(l,10),prerelease:d,build:m}}}e.Version=i;var s=function(){function n(n){this._alternatives=n?e.Debug.assertDefined(m(n),\"Invalid range spec.\"):e.emptyArray}return n.tryParse=function(e){var t=m(e);if(t){var r=new n(\"\");return r._alternatives=t,r}},n.prototype.test=function(e){return\"string\"==typeof e&&(e=new i(e)),function(e,n){if(0===n.length)return!0;for(var t=0,r=n;t<r.length;t++){var a=r[t];if(h(e,a))return!0}return!1}(e,this._alternatives)},n.prototype.toString=function(){return n=this._alternatives,e.map(n,E).join(\" || \")||\"*\";var n},n}();e.VersionRange=s;var c=/\\s*\\|\\|\\s*/g,l=/\\s+/g,u=/^([xX*0]|[1-9]\\d*)(?:\\.([xX*0]|[1-9]\\d*)(?:\\.([xX*0]|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,d=/^\\s*([a-z0-9-+.*]+)\\s+-\\s+([a-z0-9-+.*]+)\\s*$/i,p=/^\\s*(~|\\^|<|<=|>|>=|=)?\\s*([a-z0-9-+.*]+)$/i;function m(e){for(var n=[],t=0,r=e.trim().split(c);t<r.length;t++){var a=r[t];if(a){var i=[],o=d.exec(a);if(o){if(!_(o[1],o[2],i))return}else for(var s=0,u=a.split(l);s<u.length;s++){var m=u[s],f=p.exec(m);if(!f||!g(f[1],f[2],i))return}n.push(i)}}return n}function f(e){var n=u.exec(e);if(n){var t=n[1],r=n[2],a=void 0===r?\"*\":r,o=n[3],s=void 0===o?\"*\":o,c=n[4],l=n[5];return{version:new i(y(t)?0:parseInt(t,10),y(t)||y(a)?0:parseInt(a,10),y(t)||y(a)||y(s)?0:parseInt(s,10),c,l),major:t,minor:a,patch:s}}}function _(e,n,t){var r=f(e);if(!r)return!1;var a=f(n);return!!a&&(y(r.major)||t.push(v(\">=\",r.version)),y(a.major)||t.push(y(a.minor)?v(\"<\",a.version.increment(\"major\")):y(a.patch)?v(\"<\",a.version.increment(\"minor\")):v(\"<=\",a.version)),!0)}function g(e,n,t){var r=f(n);if(!r)return!1;var a=r.version,o=r.major,s=r.minor,c=r.patch;if(y(o))\"<\"!==e&&\">\"!==e||t.push(v(\"<\",i.zero));else switch(e){case\"~\":t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(y(s)?\"major\":\"minor\")));break;case\"^\":t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(a.major>0||y(s)?\"major\":a.minor>0||y(c)?\"minor\":\"patch\")));break;case\"<\":case\">=\":t.push(v(e,a));break;case\"<=\":case\">\":t.push(y(s)?v(\"<=\"===e?\"<\":\">=\",a.increment(\"major\")):y(c)?v(\"<=\"===e?\"<\":\">=\",a.increment(\"minor\")):v(e,a));break;case\"=\":case void 0:y(s)||y(c)?(t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(y(s)?\"major\":\"minor\")))):t.push(v(\"=\",a));break;default:return!1}return!0}function y(e){return\"*\"===e||\"x\"===e||\"X\"===e}function v(e,n){return{operator:e,operand:n}}function h(e,n){for(var t=0,r=n;t<r.length;t++){var a=r[t];if(!b(e,a.operator,a.operand))return!1}return!0}function b(n,t,r){var a=n.compareTo(r);switch(t){case\"<\":return a<0;case\"<=\":return a<=0;case\">\":return a>0;case\">=\":return a>=0;case\"=\":return 0===a;default:return e.Debug.assertNever(t)}}function E(n){return e.map(n,T).join(\" \")}function T(e){return\"\"+e.operator+e.operand}}(ts||(ts={})),function(e){!function(e){e[e.Unknown=0]=\"Unknown\",e[e.EndOfFileToken=1]=\"EndOfFileToken\",e[e.SingleLineCommentTrivia=2]=\"SingleLineCommentTrivia\",e[e.MultiLineCommentTrivia=3]=\"MultiLineCommentTrivia\",e[e.NewLineTrivia=4]=\"NewLineTrivia\",e[e.WhitespaceTrivia=5]=\"WhitespaceTrivia\",e[e.ShebangTrivia=6]=\"ShebangTrivia\",e[e.ConflictMarkerTrivia=7]=\"ConflictMarkerTrivia\",e[e.NumericLiteral=8]=\"NumericLiteral\",e[e.BigIntLiteral=9]=\"BigIntLiteral\",e[e.StringLiteral=10]=\"StringLiteral\",e[e.JsxText=11]=\"JsxText\",e[e.JsxTextAllWhiteSpaces=12]=\"JsxTextAllWhiteSpaces\",e[e.RegularExpressionLiteral=13]=\"RegularExpressionLiteral\",e[e.NoSubstitutionTemplateLiteral=14]=\"NoSubstitutionTemplateLiteral\",e[e.TemplateHead=15]=\"TemplateHead\",e[e.TemplateMiddle=16]=\"TemplateMiddle\",e[e.TemplateTail=17]=\"TemplateTail\",e[e.OpenBraceToken=18]=\"OpenBraceToken\",e[e.CloseBraceToken=19]=\"CloseBraceToken\",e[e.OpenParenToken=20]=\"OpenParenToken\",e[e.CloseParenToken=21]=\"CloseParenToken\",e[e.OpenBracketToken=22]=\"OpenBracketToken\",e[e.CloseBracketToken=23]=\"CloseBracketToken\",e[e.DotToken=24]=\"DotToken\",e[e.DotDotDotToken=25]=\"DotDotDotToken\",e[e.SemicolonToken=26]=\"SemicolonToken\",e[e.CommaToken=27]=\"CommaToken\",e[e.QuestionDotToken=28]=\"QuestionDotToken\",e[e.LessThanToken=29]=\"LessThanToken\",e[e.LessThanSlashToken=30]=\"LessThanSlashToken\",e[e.GreaterThanToken=31]=\"GreaterThanToken\",e[e.LessThanEqualsToken=32]=\"LessThanEqualsToken\",e[e.GreaterThanEqualsToken=33]=\"GreaterThanEqualsToken\",e[e.EqualsEqualsToken=34]=\"EqualsEqualsToken\",e[e.ExclamationEqualsToken=35]=\"ExclamationEqualsToken\",e[e.EqualsEqualsEqualsToken=36]=\"EqualsEqualsEqualsToken\",e[e.ExclamationEqualsEqualsToken=37]=\"ExclamationEqualsEqualsToken\",e[e.EqualsGreaterThanToken=38]=\"EqualsGreaterThanToken\",e[e.PlusToken=39]=\"PlusToken\",e[e.MinusToken=40]=\"MinusToken\",e[e.AsteriskToken=41]=\"AsteriskToken\",e[e.AsteriskAsteriskToken=42]=\"AsteriskAsteriskToken\",e[e.SlashToken=43]=\"SlashToken\",e[e.PercentToken=44]=\"PercentToken\",e[e.PlusPlusToken=45]=\"PlusPlusToken\",e[e.MinusMinusToken=46]=\"MinusMinusToken\",e[e.LessThanLessThanToken=47]=\"LessThanLessThanToken\",e[e.GreaterThanGreaterThanToken=48]=\"GreaterThanGreaterThanToken\",e[e.GreaterThanGreaterThanGreaterThanToken=49]=\"GreaterThanGreaterThanGreaterThanToken\",e[e.AmpersandToken=50]=\"AmpersandToken\",e[e.BarToken=51]=\"BarToken\",e[e.CaretToken=52]=\"CaretToken\",e[e.ExclamationToken=53]=\"ExclamationToken\",e[e.TildeToken=54]=\"TildeToken\",e[e.AmpersandAmpersandToken=55]=\"AmpersandAmpersandToken\",e[e.BarBarToken=56]=\"BarBarToken\",e[e.QuestionToken=57]=\"QuestionToken\",e[e.ColonToken=58]=\"ColonToken\",e[e.AtToken=59]=\"AtToken\",e[e.QuestionQuestionToken=60]=\"QuestionQuestionToken\",e[e.BacktickToken=61]=\"BacktickToken\",e[e.EqualsToken=62]=\"EqualsToken\",e[e.PlusEqualsToken=63]=\"PlusEqualsToken\",e[e.MinusEqualsToken=64]=\"MinusEqualsToken\",e[e.AsteriskEqualsToken=65]=\"AsteriskEqualsToken\",e[e.AsteriskAsteriskEqualsToken=66]=\"AsteriskAsteriskEqualsToken\",e[e.SlashEqualsToken=67]=\"SlashEqualsToken\",e[e.PercentEqualsToken=68]=\"PercentEqualsToken\",e[e.LessThanLessThanEqualsToken=69]=\"LessThanLessThanEqualsToken\",e[e.GreaterThanGreaterThanEqualsToken=70]=\"GreaterThanGreaterThanEqualsToken\",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=71]=\"GreaterThanGreaterThanGreaterThanEqualsToken\",e[e.AmpersandEqualsToken=72]=\"AmpersandEqualsToken\",e[e.BarEqualsToken=73]=\"BarEqualsToken\",e[e.CaretEqualsToken=74]=\"CaretEqualsToken\",e[e.Identifier=75]=\"Identifier\",e[e.BreakKeyword=76]=\"BreakKeyword\",e[e.CaseKeyword=77]=\"CaseKeyword\",e[e.CatchKeyword=78]=\"CatchKeyword\",e[e.ClassKeyword=79]=\"ClassKeyword\",e[e.ConstKeyword=80]=\"ConstKeyword\",e[e.ContinueKeyword=81]=\"ContinueKeyword\",e[e.DebuggerKeyword=82]=\"DebuggerKeyword\",e[e.DefaultKeyword=83]=\"DefaultKeyword\",e[e.DeleteKeyword=84]=\"DeleteKeyword\",e[e.DoKeyword=85]=\"DoKeyword\",e[e.ElseKeyword=86]=\"ElseKeyword\",e[e.EnumKeyword=87]=\"EnumKeyword\",e[e.ExportKeyword=88]=\"ExportKeyword\",e[e.ExtendsKeyword=89]=\"ExtendsKeyword\",e[e.FalseKeyword=90]=\"FalseKeyword\",e[e.FinallyKeyword=91]=\"FinallyKeyword\",e[e.ForKeyword=92]=\"ForKeyword\",e[e.FunctionKeyword=93]=\"FunctionKeyword\",e[e.IfKeyword=94]=\"IfKeyword\",e[e.ImportKeyword=95]=\"ImportKeyword\",e[e.InKeyword=96]=\"InKeyword\",e[e.InstanceOfKeyword=97]=\"InstanceOfKeyword\",e[e.NewKeyword=98]=\"NewKeyword\",e[e.NullKeyword=99]=\"NullKeyword\",e[e.ReturnKeyword=100]=\"ReturnKeyword\",e[e.SuperKeyword=101]=\"SuperKeyword\",e[e.SwitchKeyword=102]=\"SwitchKeyword\",e[e.ThisKeyword=103]=\"ThisKeyword\",e[e.ThrowKeyword=104]=\"ThrowKeyword\",e[e.TrueKeyword=105]=\"TrueKeyword\",e[e.TryKeyword=106]=\"TryKeyword\",e[e.TypeOfKeyword=107]=\"TypeOfKeyword\",e[e.VarKeyword=108]=\"VarKeyword\",e[e.VoidKeyword=109]=\"VoidKeyword\",e[e.WhileKeyword=110]=\"WhileKeyword\",e[e.WithKeyword=111]=\"WithKeyword\",e[e.ImplementsKeyword=112]=\"ImplementsKeyword\",e[e.InterfaceKeyword=113]=\"InterfaceKeyword\",e[e.LetKeyword=114]=\"LetKeyword\",e[e.PackageKeyword=115]=\"PackageKeyword\",e[e.PrivateKeyword=116]=\"PrivateKeyword\",e[e.ProtectedKeyword=117]=\"ProtectedKeyword\",e[e.PublicKeyword=118]=\"PublicKeyword\",e[e.StaticKeyword=119]=\"StaticKeyword\",e[e.YieldKeyword=120]=\"YieldKeyword\",e[e.AbstractKeyword=121]=\"AbstractKeyword\",e[e.AsKeyword=122]=\"AsKeyword\",e[e.AssertsKeyword=123]=\"AssertsKeyword\",e[e.AnyKeyword=124]=\"AnyKeyword\",e[e.AsyncKeyword=125]=\"AsyncKeyword\",e[e.AwaitKeyword=126]=\"AwaitKeyword\",e[e.BooleanKeyword=127]=\"BooleanKeyword\",e[e.ConstructorKeyword=128]=\"ConstructorKeyword\",e[e.DeclareKeyword=129]=\"DeclareKeyword\",e[e.GetKeyword=130]=\"GetKeyword\",e[e.InferKeyword=131]=\"InferKeyword\",e[e.IsKeyword=132]=\"IsKeyword\",e[e.KeyOfKeyword=133]=\"KeyOfKeyword\",e[e.ModuleKeyword=134]=\"ModuleKeyword\",e[e.NamespaceKeyword=135]=\"NamespaceKeyword\",e[e.NeverKeyword=136]=\"NeverKeyword\",e[e.ReadonlyKeyword=137]=\"ReadonlyKeyword\",e[e.RequireKeyword=138]=\"RequireKeyword\",e[e.NumberKeyword=139]=\"NumberKeyword\",e[e.ObjectKeyword=140]=\"ObjectKeyword\",e[e.SetKeyword=141]=\"SetKeyword\",e[e.StringKeyword=142]=\"StringKeyword\",e[e.SymbolKeyword=143]=\"SymbolKeyword\",e[e.TypeKeyword=144]=\"TypeKeyword\",e[e.UndefinedKeyword=145]=\"UndefinedKeyword\",e[e.UniqueKeyword=146]=\"UniqueKeyword\",e[e.UnknownKeyword=147]=\"UnknownKeyword\",e[e.FromKeyword=148]=\"FromKeyword\",e[e.GlobalKeyword=149]=\"GlobalKeyword\",e[e.BigIntKeyword=150]=\"BigIntKeyword\",e[e.OfKeyword=151]=\"OfKeyword\",e[e.QualifiedName=152]=\"QualifiedName\",e[e.ComputedPropertyName=153]=\"ComputedPropertyName\",e[e.TypeParameter=154]=\"TypeParameter\",e[e.Parameter=155]=\"Parameter\",e[e.Decorator=156]=\"Decorator\",e[e.PropertySignature=157]=\"PropertySignature\",e[e.PropertyDeclaration=158]=\"PropertyDeclaration\",e[e.MethodSignature=159]=\"MethodSignature\",e[e.MethodDeclaration=160]=\"MethodDeclaration\",e[e.Constructor=161]=\"Constructor\",e[e.GetAccessor=162]=\"GetAccessor\",e[e.SetAccessor=163]=\"SetAccessor\",e[e.CallSignature=164]=\"CallSignature\",e[e.ConstructSignature=165]=\"ConstructSignature\",e[e.IndexSignature=166]=\"IndexSignature\",e[e.TypePredicate=167]=\"TypePredicate\",e[e.TypeReference=168]=\"TypeReference\",e[e.FunctionType=169]=\"FunctionType\",e[e.ConstructorType=170]=\"ConstructorType\",e[e.TypeQuery=171]=\"TypeQuery\",e[e.TypeLiteral=172]=\"TypeLiteral\",e[e.ArrayType=173]=\"ArrayType\",e[e.TupleType=174]=\"TupleType\",e[e.OptionalType=175]=\"OptionalType\",e[e.RestType=176]=\"RestType\",e[e.UnionType=177]=\"UnionType\",e[e.IntersectionType=178]=\"IntersectionType\",e[e.ConditionalType=179]=\"ConditionalType\",e[e.InferType=180]=\"InferType\",e[e.ParenthesizedType=181]=\"ParenthesizedType\",e[e.ThisType=182]=\"ThisType\",e[e.TypeOperator=183]=\"TypeOperator\",e[e.IndexedAccessType=184]=\"IndexedAccessType\",e[e.MappedType=185]=\"MappedType\",e[e.LiteralType=186]=\"LiteralType\",e[e.ImportType=187]=\"ImportType\",e[e.ObjectBindingPattern=188]=\"ObjectBindingPattern\",e[e.ArrayBindingPattern=189]=\"ArrayBindingPattern\",e[e.BindingElement=190]=\"BindingElement\",e[e.ArrayLiteralExpression=191]=\"ArrayLiteralExpression\",e[e.ObjectLiteralExpression=192]=\"ObjectLiteralExpression\",e[e.PropertyAccessExpression=193]=\"PropertyAccessExpression\",e[e.ElementAccessExpression=194]=\"ElementAccessExpression\",e[e.CallExpression=195]=\"CallExpression\",e[e.NewExpression=196]=\"NewExpression\",e[e.TaggedTemplateExpression=197]=\"TaggedTemplateExpression\",e[e.TypeAssertionExpression=198]=\"TypeAssertionExpression\",e[e.ParenthesizedExpression=199]=\"ParenthesizedExpression\",e[e.FunctionExpression=200]=\"FunctionExpression\",e[e.ArrowFunction=201]=\"ArrowFunction\",e[e.DeleteExpression=202]=\"DeleteExpression\",e[e.TypeOfExpression=203]=\"TypeOfExpression\",e[e.VoidExpression=204]=\"VoidExpression\",e[e.AwaitExpression=205]=\"AwaitExpression\",e[e.PrefixUnaryExpression=206]=\"PrefixUnaryExpression\",e[e.PostfixUnaryExpression=207]=\"PostfixUnaryExpression\",e[e.BinaryExpression=208]=\"BinaryExpression\",e[e.ConditionalExpression=209]=\"ConditionalExpression\",e[e.TemplateExpression=210]=\"TemplateExpression\",e[e.YieldExpression=211]=\"YieldExpression\",e[e.SpreadElement=212]=\"SpreadElement\",e[e.ClassExpression=213]=\"ClassExpression\",e[e.OmittedExpression=214]=\"OmittedExpression\",e[e.ExpressionWithTypeArguments=215]=\"ExpressionWithTypeArguments\",e[e.AsExpression=216]=\"AsExpression\",e[e.NonNullExpression=217]=\"NonNullExpression\",e[e.MetaProperty=218]=\"MetaProperty\",e[e.SyntheticExpression=219]=\"SyntheticExpression\",e[e.TemplateSpan=220]=\"TemplateSpan\",e[e.SemicolonClassElement=221]=\"SemicolonClassElement\",e[e.Block=222]=\"Block\",e[e.EmptyStatement=223]=\"EmptyStatement\",e[e.VariableStatement=224]=\"VariableStatement\",e[e.ExpressionStatement=225]=\"ExpressionStatement\",e[e.IfStatement=226]=\"IfStatement\",e[e.DoStatement=227]=\"DoStatement\",e[e.WhileStatement=228]=\"WhileStatement\",e[e.ForStatement=229]=\"ForStatement\",e[e.ForInStatement=230]=\"ForInStatement\",e[e.ForOfStatement=231]=\"ForOfStatement\",e[e.ContinueStatement=232]=\"ContinueStatement\",e[e.BreakStatement=233]=\"BreakStatement\",e[e.ReturnStatement=234]=\"ReturnStatement\",e[e.WithStatement=235]=\"WithStatement\",e[e.SwitchStatement=236]=\"SwitchStatement\",e[e.LabeledStatement=237]=\"LabeledStatement\",e[e.ThrowStatement=238]=\"ThrowStatement\",e[e.TryStatement=239]=\"TryStatement\",e[e.DebuggerStatement=240]=\"DebuggerStatement\",e[e.VariableDeclaration=241]=\"VariableDeclaration\",e[e.VariableDeclarationList=242]=\"VariableDeclarationList\",e[e.FunctionDeclaration=243]=\"FunctionDeclaration\",e[e.ClassDeclaration=244]=\"ClassDeclaration\",e[e.InterfaceDeclaration=245]=\"InterfaceDeclaration\",e[e.TypeAliasDeclaration=246]=\"TypeAliasDeclaration\",e[e.EnumDeclaration=247]=\"EnumDeclaration\",e[e.ModuleDeclaration=248]=\"ModuleDeclaration\",e[e.ModuleBlock=249]=\"ModuleBlock\",e[e.CaseBlock=250]=\"CaseBlock\",e[e.NamespaceExportDeclaration=251]=\"NamespaceExportDeclaration\",e[e.ImportEqualsDeclaration=252]=\"ImportEqualsDeclaration\",e[e.ImportDeclaration=253]=\"ImportDeclaration\",e[e.ImportClause=254]=\"ImportClause\",e[e.NamespaceImport=255]=\"NamespaceImport\",e[e.NamedImports=256]=\"NamedImports\",e[e.ImportSpecifier=257]=\"ImportSpecifier\",e[e.ExportAssignment=258]=\"ExportAssignment\",e[e.ExportDeclaration=259]=\"ExportDeclaration\",e[e.NamedExports=260]=\"NamedExports\",e[e.ExportSpecifier=261]=\"ExportSpecifier\",e[e.MissingDeclaration=262]=\"MissingDeclaration\",e[e.ExternalModuleReference=263]=\"ExternalModuleReference\",e[e.JsxElement=264]=\"JsxElement\",e[e.JsxSelfClosingElement=265]=\"JsxSelfClosingElement\",e[e.JsxOpeningElement=266]=\"JsxOpeningElement\",e[e.JsxClosingElement=267]=\"JsxClosingElement\",e[e.JsxFragment=268]=\"JsxFragment\",e[e.JsxOpeningFragment=269]=\"JsxOpeningFragment\",e[e.JsxClosingFragment=270]=\"JsxClosingFragment\",e[e.JsxAttribute=271]=\"JsxAttribute\",e[e.JsxAttributes=272]=\"JsxAttributes\",e[e.JsxSpreadAttribute=273]=\"JsxSpreadAttribute\",e[e.JsxExpression=274]=\"JsxExpression\",e[e.CaseClause=275]=\"CaseClause\",e[e.DefaultClause=276]=\"DefaultClause\",e[e.HeritageClause=277]=\"HeritageClause\",e[e.CatchClause=278]=\"CatchClause\",e[e.PropertyAssignment=279]=\"PropertyAssignment\",e[e.ShorthandPropertyAssignment=280]=\"ShorthandPropertyAssignment\",e[e.SpreadAssignment=281]=\"SpreadAssignment\",e[e.EnumMember=282]=\"EnumMember\",e[e.UnparsedPrologue=283]=\"UnparsedPrologue\",e[e.UnparsedPrepend=284]=\"UnparsedPrepend\",e[e.UnparsedText=285]=\"UnparsedText\",e[e.UnparsedInternalText=286]=\"UnparsedInternalText\",e[e.UnparsedSyntheticReference=287]=\"UnparsedSyntheticReference\",e[e.SourceFile=288]=\"SourceFile\",e[e.Bundle=289]=\"Bundle\",e[e.UnparsedSource=290]=\"UnparsedSource\",e[e.InputFiles=291]=\"InputFiles\",e[e.JSDocTypeExpression=292]=\"JSDocTypeExpression\",e[e.JSDocAllType=293]=\"JSDocAllType\",e[e.JSDocUnknownType=294]=\"JSDocUnknownType\",e[e.JSDocNullableType=295]=\"JSDocNullableType\",e[e.JSDocNonNullableType=296]=\"JSDocNonNullableType\",e[e.JSDocOptionalType=297]=\"JSDocOptionalType\",e[e.JSDocFunctionType=298]=\"JSDocFunctionType\",e[e.JSDocVariadicType=299]=\"JSDocVariadicType\",e[e.JSDocNamepathType=300]=\"JSDocNamepathType\",e[e.JSDocComment=301]=\"JSDocComment\",e[e.JSDocTypeLiteral=302]=\"JSDocTypeLiteral\",e[e.JSDocSignature=303]=\"JSDocSignature\",e[e.JSDocTag=304]=\"JSDocTag\",e[e.JSDocAugmentsTag=305]=\"JSDocAugmentsTag\",e[e.JSDocAuthorTag=306]=\"JSDocAuthorTag\",e[e.JSDocClassTag=307]=\"JSDocClassTag\",e[e.JSDocCallbackTag=308]=\"JSDocCallbackTag\",e[e.JSDocEnumTag=309]=\"JSDocEnumTag\",e[e.JSDocParameterTag=310]=\"JSDocParameterTag\",e[e.JSDocReturnTag=311]=\"JSDocReturnTag\",e[e.JSDocThisTag=312]=\"JSDocThisTag\",e[e.JSDocTypeTag=313]=\"JSDocTypeTag\",e[e.JSDocTemplateTag=314]=\"JSDocTemplateTag\",e[e.JSDocTypedefTag=315]=\"JSDocTypedefTag\",e[e.JSDocPropertyTag=316]=\"JSDocPropertyTag\",e[e.SyntaxList=317]=\"SyntaxList\",e[e.NotEmittedStatement=318]=\"NotEmittedStatement\",e[e.PartiallyEmittedExpression=319]=\"PartiallyEmittedExpression\",e[e.CommaListExpression=320]=\"CommaListExpression\",e[e.MergeDeclarationMarker=321]=\"MergeDeclarationMarker\",e[e.EndOfDeclarationMarker=322]=\"EndOfDeclarationMarker\",e[e.SyntheticReferenceExpression=323]=\"SyntheticReferenceExpression\",e[e.Count=324]=\"Count\",e[e.FirstAssignment=62]=\"FirstAssignment\",e[e.LastAssignment=74]=\"LastAssignment\",e[e.FirstCompoundAssignment=63]=\"FirstCompoundAssignment\",e[e.LastCompoundAssignment=74]=\"LastCompoundAssignment\",e[e.FirstReservedWord=76]=\"FirstReservedWord\",e[e.LastReservedWord=111]=\"LastReservedWord\",e[e.FirstKeyword=76]=\"FirstKeyword\",e[e.LastKeyword=151]=\"LastKeyword\",e[e.FirstFutureReservedWord=112]=\"FirstFutureReservedWord\",e[e.LastFutureReservedWord=120]=\"LastFutureReservedWord\",e[e.FirstTypeNode=167]=\"FirstTypeNode\",e[e.LastTypeNode=187]=\"LastTypeNode\",e[e.FirstPunctuation=18]=\"FirstPunctuation\",e[e.LastPunctuation=74]=\"LastPunctuation\",e[e.FirstToken=0]=\"FirstToken\",e[e.LastToken=151]=\"LastToken\",e[e.FirstTriviaToken=2]=\"FirstTriviaToken\",e[e.LastTriviaToken=7]=\"LastTriviaToken\",e[e.FirstLiteralToken=8]=\"FirstLiteralToken\",e[e.LastLiteralToken=14]=\"LastLiteralToken\",e[e.FirstTemplateToken=14]=\"FirstTemplateToken\",e[e.LastTemplateToken=17]=\"LastTemplateToken\",e[e.FirstBinaryOperator=29]=\"FirstBinaryOperator\",e[e.LastBinaryOperator=74]=\"LastBinaryOperator\",e[e.FirstStatement=224]=\"FirstStatement\",e[e.LastStatement=240]=\"LastStatement\",e[e.FirstNode=152]=\"FirstNode\",e[e.FirstJSDocNode=292]=\"FirstJSDocNode\",e[e.LastJSDocNode=316]=\"LastJSDocNode\",e[e.FirstJSDocTagNode=304]=\"FirstJSDocTagNode\",e[e.LastJSDocTagNode=316]=\"LastJSDocTagNode\",e[e.FirstContextualKeyword=121]=\"FirstContextualKeyword\",e[e.LastContextualKeyword=151]=\"LastContextualKeyword\"}(e.SyntaxKind||(e.SyntaxKind={})),function(e){e[e.None=0]=\"None\",e[e.Let=1]=\"Let\",e[e.Const=2]=\"Const\",e[e.NestedNamespace=4]=\"NestedNamespace\",e[e.Synthesized=8]=\"Synthesized\",e[e.Namespace=16]=\"Namespace\",e[e.OptionalChain=32]=\"OptionalChain\",e[e.ExportContext=64]=\"ExportContext\",e[e.ContainsThis=128]=\"ContainsThis\",e[e.HasImplicitReturn=256]=\"HasImplicitReturn\",e[e.HasExplicitReturn=512]=\"HasExplicitReturn\",e[e.GlobalAugmentation=1024]=\"GlobalAugmentation\",e[e.HasAsyncFunctions=2048]=\"HasAsyncFunctions\",e[e.DisallowInContext=4096]=\"DisallowInContext\",e[e.YieldContext=8192]=\"YieldContext\",e[e.DecoratorContext=16384]=\"DecoratorContext\",e[e.AwaitContext=32768]=\"AwaitContext\",e[e.ThisNodeHasError=65536]=\"ThisNodeHasError\",e[e.JavaScriptFile=131072]=\"JavaScriptFile\",e[e.ThisNodeOrAnySubNodesHasError=262144]=\"ThisNodeOrAnySubNodesHasError\",e[e.HasAggregatedChildData=524288]=\"HasAggregatedChildData\",e[e.PossiblyContainsDynamicImport=1048576]=\"PossiblyContainsDynamicImport\",e[e.PossiblyContainsImportMeta=2097152]=\"PossiblyContainsImportMeta\",e[e.JSDoc=4194304]=\"JSDoc\",e[e.Ambient=8388608]=\"Ambient\",e[e.InWithStatement=16777216]=\"InWithStatement\",e[e.JsonFile=33554432]=\"JsonFile\",e[e.BlockScoped=3]=\"BlockScoped\",e[e.ReachabilityCheckFlags=768]=\"ReachabilityCheckFlags\",e[e.ReachabilityAndEmitFlags=2816]=\"ReachabilityAndEmitFlags\",e[e.ContextFlags=25358336]=\"ContextFlags\",e[e.TypeExcludesFlags=40960]=\"TypeExcludesFlags\",e[e.PermanentlySetIncrementalFlags=3145728]=\"PermanentlySetIncrementalFlags\"}(e.NodeFlags||(e.NodeFlags={})),function(e){e[e.None=0]=\"None\",e[e.Export=1]=\"Export\",e[e.Ambient=2]=\"Ambient\",e[e.Public=4]=\"Public\",e[e.Private=8]=\"Private\",e[e.Protected=16]=\"Protected\",e[e.Static=32]=\"Static\",e[e.Readonly=64]=\"Readonly\",e[e.Abstract=128]=\"Abstract\",e[e.Async=256]=\"Async\",e[e.Default=512]=\"Default\",e[e.Const=2048]=\"Const\",e[e.HasComputedFlags=536870912]=\"HasComputedFlags\",e[e.AccessibilityModifier=28]=\"AccessibilityModifier\",e[e.ParameterPropertyModifier=92]=\"ParameterPropertyModifier\",e[e.NonPublicAccessibilityModifier=24]=\"NonPublicAccessibilityModifier\",e[e.TypeScriptModifier=2270]=\"TypeScriptModifier\",e[e.ExportDefault=513]=\"ExportDefault\",e[e.All=3071]=\"All\"}(e.ModifierFlags||(e.ModifierFlags={})),function(e){e[e.None=0]=\"None\",e[e.IntrinsicNamedElement=1]=\"IntrinsicNamedElement\",e[e.IntrinsicIndexedElement=2]=\"IntrinsicIndexedElement\",e[e.IntrinsicElement=3]=\"IntrinsicElement\"}(e.JsxFlags||(e.JsxFlags={})),function(e){e[e.Succeeded=1]=\"Succeeded\",e[e.Failed=2]=\"Failed\",e[e.Reported=4]=\"Reported\",e[e.ReportsUnmeasurable=8]=\"ReportsUnmeasurable\",e[e.ReportsUnreliable=16]=\"ReportsUnreliable\",e[e.ReportsMask=24]=\"ReportsMask\"}(e.RelationComparisonResult||(e.RelationComparisonResult={})),function(e){e[e.None=0]=\"None\",e[e.Auto=1]=\"Auto\",e[e.Loop=2]=\"Loop\",e[e.Unique=3]=\"Unique\",e[e.Node=4]=\"Node\",e[e.KindMask=7]=\"KindMask\",e[e.ReservedInNestedScopes=8]=\"ReservedInNestedScopes\",e[e.Optimistic=16]=\"Optimistic\",e[e.FileLevel=32]=\"FileLevel\"}(e.GeneratedIdentifierFlags||(e.GeneratedIdentifierFlags={})),function(e){e[e.None=0]=\"None\",e[e.PrecedingLineBreak=1]=\"PrecedingLineBreak\",e[e.PrecedingJSDocComment=2]=\"PrecedingJSDocComment\",e[e.Unterminated=4]=\"Unterminated\",e[e.ExtendedUnicodeEscape=8]=\"ExtendedUnicodeEscape\",e[e.Scientific=16]=\"Scientific\",e[e.Octal=32]=\"Octal\",e[e.HexSpecifier=64]=\"HexSpecifier\",e[e.BinarySpecifier=128]=\"BinarySpecifier\",e[e.OctalSpecifier=256]=\"OctalSpecifier\",e[e.ContainsSeparator=512]=\"ContainsSeparator\",e[e.UnicodeEscape=1024]=\"UnicodeEscape\",e[e.BinaryOrOctalSpecifier=384]=\"BinaryOrOctalSpecifier\",e[e.NumericLiteralFlags=1008]=\"NumericLiteralFlags\"}(e.TokenFlags||(e.TokenFlags={})),function(e){e[e.Unreachable=1]=\"Unreachable\",e[e.Start=2]=\"Start\",e[e.BranchLabel=4]=\"BranchLabel\",e[e.LoopLabel=8]=\"LoopLabel\",e[e.Assignment=16]=\"Assignment\",e[e.TrueCondition=32]=\"TrueCondition\",e[e.FalseCondition=64]=\"FalseCondition\",e[e.SwitchClause=128]=\"SwitchClause\",e[e.ArrayMutation=256]=\"ArrayMutation\",e[e.Call=512]=\"Call\",e[e.Referenced=1024]=\"Referenced\",e[e.Shared=2048]=\"Shared\",e[e.PreFinally=4096]=\"PreFinally\",e[e.AfterFinally=8192]=\"AfterFinally\",e[e.Cached=16384]=\"Cached\",e[e.Label=12]=\"Label\",e[e.Condition=96]=\"Condition\"}(e.FlowFlags||(e.FlowFlags={}));var n,t=function(){};e.OperationCanceledException=t,function(e){e[e.Import=0]=\"Import\",e[e.ReferenceFile=1]=\"ReferenceFile\",e[e.TypeReferenceDirective=2]=\"TypeReferenceDirective\"}(e.RefFileKind||(e.RefFileKind={})),function(e){e[e.Not=0]=\"Not\",e[e.SafeModules=1]=\"SafeModules\",e[e.Completely=2]=\"Completely\"}(e.StructureIsReused||(e.StructureIsReused={})),function(e){e[e.Success=0]=\"Success\",e[e.DiagnosticsPresent_OutputsSkipped=1]=\"DiagnosticsPresent_OutputsSkipped\",e[e.DiagnosticsPresent_OutputsGenerated=2]=\"DiagnosticsPresent_OutputsGenerated\",e[e.InvalidProject_OutputsSkipped=3]=\"InvalidProject_OutputsSkipped\",e[e.ProjectReferenceCycle_OutputsSkipped=4]=\"ProjectReferenceCycle_OutputsSkipped\",e[e.ProjectReferenceCycle_OutputsSkupped=4]=\"ProjectReferenceCycle_OutputsSkupped\"}(e.ExitStatus||(e.ExitStatus={})),function(e){e[e.None=0]=\"None\",e[e.Literal=1]=\"Literal\",e[e.Subtype=2]=\"Subtype\"}(e.UnionReduction||(e.UnionReduction={})),function(e){e[e.None=0]=\"None\",e[e.Signature=1]=\"Signature\",e[e.NoConstraints=2]=\"NoConstraints\",e[e.Completion=4]=\"Completion\"}(e.ContextFlags||(e.ContextFlags={})),function(e){e[e.None=0]=\"None\",e[e.NoTruncation=1]=\"NoTruncation\",e[e.WriteArrayAsGenericType=2]=\"WriteArrayAsGenericType\",e[e.GenerateNamesForShadowedTypeParams=4]=\"GenerateNamesForShadowedTypeParams\",e[e.UseStructuralFallback=8]=\"UseStructuralFallback\",e[e.ForbidIndexedAccessSymbolReferences=16]=\"ForbidIndexedAccessSymbolReferences\",e[e.WriteTypeArgumentsOfSignature=32]=\"WriteTypeArgumentsOfSignature\",e[e.UseFullyQualifiedType=64]=\"UseFullyQualifiedType\",e[e.UseOnlyExternalAliasing=128]=\"UseOnlyExternalAliasing\",e[e.SuppressAnyReturnType=256]=\"SuppressAnyReturnType\",e[e.WriteTypeParametersInQualifiedName=512]=\"WriteTypeParametersInQualifiedName\",e[e.MultilineObjectLiterals=1024]=\"MultilineObjectLiterals\",e[e.WriteClassExpressionAsTypeLiteral=2048]=\"WriteClassExpressionAsTypeLiteral\",e[e.UseTypeOfFunction=4096]=\"UseTypeOfFunction\",e[e.OmitParameterModifiers=8192]=\"OmitParameterModifiers\",e[e.UseAliasDefinedOutsideCurrentScope=16384]=\"UseAliasDefinedOutsideCurrentScope\",e[e.AllowThisInObjectLiteral=32768]=\"AllowThisInObjectLiteral\",e[e.AllowQualifedNameInPlaceOfIdentifier=65536]=\"AllowQualifedNameInPlaceOfIdentifier\",e[e.AllowAnonymousIdentifier=131072]=\"AllowAnonymousIdentifier\",e[e.AllowEmptyUnionOrIntersection=262144]=\"AllowEmptyUnionOrIntersection\",e[e.AllowEmptyTuple=524288]=\"AllowEmptyTuple\",e[e.AllowUniqueESSymbolType=1048576]=\"AllowUniqueESSymbolType\",e[e.AllowEmptyIndexInfoType=2097152]=\"AllowEmptyIndexInfoType\",e[e.AllowNodeModulesRelativePaths=67108864]=\"AllowNodeModulesRelativePaths\",e[e.DoNotIncludeSymbolChain=134217728]=\"DoNotIncludeSymbolChain\",e[e.IgnoreErrors=70221824]=\"IgnoreErrors\",e[e.InObjectTypeLiteral=4194304]=\"InObjectTypeLiteral\",e[e.InTypeAlias=8388608]=\"InTypeAlias\",e[e.InInitialEntityName=16777216]=\"InInitialEntityName\",e[e.InReverseMappedType=33554432]=\"InReverseMappedType\"}(e.NodeBuilderFlags||(e.NodeBuilderFlags={})),function(e){e[e.None=0]=\"None\",e[e.NoTruncation=1]=\"NoTruncation\",e[e.WriteArrayAsGenericType=2]=\"WriteArrayAsGenericType\",e[e.UseStructuralFallback=8]=\"UseStructuralFallback\",e[e.WriteTypeArgumentsOfSignature=32]=\"WriteTypeArgumentsOfSignature\",e[e.UseFullyQualifiedType=64]=\"UseFullyQualifiedType\",e[e.SuppressAnyReturnType=256]=\"SuppressAnyReturnType\",e[e.MultilineObjectLiterals=1024]=\"MultilineObjectLiterals\",e[e.WriteClassExpressionAsTypeLiteral=2048]=\"WriteClassExpressionAsTypeLiteral\",e[e.UseTypeOfFunction=4096]=\"UseTypeOfFunction\",e[e.OmitParameterModifiers=8192]=\"OmitParameterModifiers\",e[e.UseAliasDefinedOutsideCurrentScope=16384]=\"UseAliasDefinedOutsideCurrentScope\",e[e.AllowUniqueESSymbolType=1048576]=\"AllowUniqueESSymbolType\",e[e.AddUndefined=131072]=\"AddUndefined\",e[e.WriteArrowStyleSignature=262144]=\"WriteArrowStyleSignature\",e[e.InArrayType=524288]=\"InArrayType\",e[e.InElementType=2097152]=\"InElementType\",e[e.InFirstTypeArgument=4194304]=\"InFirstTypeArgument\",e[e.InTypeAlias=8388608]=\"InTypeAlias\",e[e.WriteOwnNameForAnyLike=0]=\"WriteOwnNameForAnyLike\",e[e.NodeBuilderFlagsMask=9469291]=\"NodeBuilderFlagsMask\"}(e.TypeFormatFlags||(e.TypeFormatFlags={})),function(e){e[e.None=0]=\"None\",e[e.WriteTypeParametersOrArguments=1]=\"WriteTypeParametersOrArguments\",e[e.UseOnlyExternalAliasing=2]=\"UseOnlyExternalAliasing\",e[e.AllowAnyNodeKind=4]=\"AllowAnyNodeKind\",e[e.UseAliasDefinedOutsideCurrentScope=8]=\"UseAliasDefinedOutsideCurrentScope\",e[e.DoNotIncludeSymbolChain=16]=\"DoNotIncludeSymbolChain\"}(e.SymbolFormatFlags||(e.SymbolFormatFlags={})),function(e){e[e.Accessible=0]=\"Accessible\",e[e.NotAccessible=1]=\"NotAccessible\",e[e.CannotBeNamed=2]=\"CannotBeNamed\"}(e.SymbolAccessibility||(e.SymbolAccessibility={})),function(e){e[e.UnionOrIntersection=0]=\"UnionOrIntersection\",e[e.Spread=1]=\"Spread\"}(e.SyntheticSymbolKind||(e.SyntheticSymbolKind={})),function(e){e[e.This=0]=\"This\",e[e.Identifier=1]=\"Identifier\",e[e.AssertsThis=2]=\"AssertsThis\",e[e.AssertsIdentifier=3]=\"AssertsIdentifier\"}(e.TypePredicateKind||(e.TypePredicateKind={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.TypeWithConstructSignatureAndValue=1]=\"TypeWithConstructSignatureAndValue\",e[e.VoidNullableOrNeverType=2]=\"VoidNullableOrNeverType\",e[e.NumberLikeType=3]=\"NumberLikeType\",e[e.BigIntLikeType=4]=\"BigIntLikeType\",e[e.StringLikeType=5]=\"StringLikeType\",e[e.BooleanType=6]=\"BooleanType\",e[e.ArrayLikeType=7]=\"ArrayLikeType\",e[e.ESSymbolType=8]=\"ESSymbolType\",e[e.Promise=9]=\"Promise\",e[e.TypeWithCallSignature=10]=\"TypeWithCallSignature\",e[e.ObjectType=11]=\"ObjectType\"}(e.TypeReferenceSerializationKind||(e.TypeReferenceSerializationKind={})),function(e){e[e.None=0]=\"None\",e[e.FunctionScopedVariable=1]=\"FunctionScopedVariable\",e[e.BlockScopedVariable=2]=\"BlockScopedVariable\",e[e.Property=4]=\"Property\",e[e.EnumMember=8]=\"EnumMember\",e[e.Function=16]=\"Function\",e[e.Class=32]=\"Class\",e[e.Interface=64]=\"Interface\",e[e.ConstEnum=128]=\"ConstEnum\",e[e.RegularEnum=256]=\"RegularEnum\",e[e.ValueModule=512]=\"ValueModule\",e[e.NamespaceModule=1024]=\"NamespaceModule\",e[e.TypeLiteral=2048]=\"TypeLiteral\",e[e.ObjectLiteral=4096]=\"ObjectLiteral\",e[e.Method=8192]=\"Method\",e[e.Constructor=16384]=\"Constructor\",e[e.GetAccessor=32768]=\"GetAccessor\",e[e.SetAccessor=65536]=\"SetAccessor\",e[e.Signature=131072]=\"Signature\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.TypeAlias=524288]=\"TypeAlias\",e[e.ExportValue=1048576]=\"ExportValue\",e[e.Alias=2097152]=\"Alias\",e[e.Prototype=4194304]=\"Prototype\",e[e.ExportStar=8388608]=\"ExportStar\",e[e.Optional=16777216]=\"Optional\",e[e.Transient=33554432]=\"Transient\",e[e.Assignment=67108864]=\"Assignment\",e[e.ModuleExports=134217728]=\"ModuleExports\",e[e.All=67108863]=\"All\",e[e.Enum=384]=\"Enum\",e[e.Variable=3]=\"Variable\",e[e.Value=111551]=\"Value\",e[e.Type=788968]=\"Type\",e[e.Namespace=1920]=\"Namespace\",e[e.Module=1536]=\"Module\",e[e.Accessor=98304]=\"Accessor\",e[e.FunctionScopedVariableExcludes=111550]=\"FunctionScopedVariableExcludes\",e[e.BlockScopedVariableExcludes=111551]=\"BlockScopedVariableExcludes\",e[e.ParameterExcludes=111551]=\"ParameterExcludes\",e[e.PropertyExcludes=0]=\"PropertyExcludes\",e[e.EnumMemberExcludes=900095]=\"EnumMemberExcludes\",e[e.FunctionExcludes=110991]=\"FunctionExcludes\",e[e.ClassExcludes=899503]=\"ClassExcludes\",e[e.InterfaceExcludes=788872]=\"InterfaceExcludes\",e[e.RegularEnumExcludes=899327]=\"RegularEnumExcludes\",e[e.ConstEnumExcludes=899967]=\"ConstEnumExcludes\",e[e.ValueModuleExcludes=110735]=\"ValueModuleExcludes\",e[e.NamespaceModuleExcludes=0]=\"NamespaceModuleExcludes\",e[e.MethodExcludes=103359]=\"MethodExcludes\",e[e.GetAccessorExcludes=46015]=\"GetAccessorExcludes\",e[e.SetAccessorExcludes=78783]=\"SetAccessorExcludes\",e[e.TypeParameterExcludes=526824]=\"TypeParameterExcludes\",e[e.TypeAliasExcludes=788968]=\"TypeAliasExcludes\",e[e.AliasExcludes=2097152]=\"AliasExcludes\",e[e.ModuleMember=2623475]=\"ModuleMember\",e[e.ExportHasLocal=944]=\"ExportHasLocal\",e[e.BlockScoped=418]=\"BlockScoped\",e[e.PropertyOrAccessor=98308]=\"PropertyOrAccessor\",e[e.ClassMember=106500]=\"ClassMember\",e[e.ExportSupportsDefaultModifier=112]=\"ExportSupportsDefaultModifier\",e[e.ExportDoesNotSupportDefaultModifier=-113]=\"ExportDoesNotSupportDefaultModifier\",e[e.Classifiable=2885600]=\"Classifiable\",e[e.LateBindingContainer=6256]=\"LateBindingContainer\"}(e.SymbolFlags||(e.SymbolFlags={})),function(e){e[e.Numeric=0]=\"Numeric\",e[e.Literal=1]=\"Literal\"}(e.EnumKind||(e.EnumKind={})),function(e){e[e.Instantiated=1]=\"Instantiated\",e[e.SyntheticProperty=2]=\"SyntheticProperty\",e[e.SyntheticMethod=4]=\"SyntheticMethod\",e[e.Readonly=8]=\"Readonly\",e[e.ReadPartial=16]=\"ReadPartial\",e[e.WritePartial=32]=\"WritePartial\",e[e.HasNonUniformType=64]=\"HasNonUniformType\",e[e.HasLiteralType=128]=\"HasLiteralType\",e[e.ContainsPublic=256]=\"ContainsPublic\",e[e.ContainsProtected=512]=\"ContainsProtected\",e[e.ContainsPrivate=1024]=\"ContainsPrivate\",e[e.ContainsStatic=2048]=\"ContainsStatic\",e[e.Late=4096]=\"Late\",e[e.ReverseMapped=8192]=\"ReverseMapped\",e[e.OptionalParameter=16384]=\"OptionalParameter\",e[e.RestParameter=32768]=\"RestParameter\",e[e.DeferredType=65536]=\"DeferredType\",e[e.Synthetic=6]=\"Synthetic\",e[e.Discriminant=192]=\"Discriminant\",e[e.Partial=48]=\"Partial\"}(e.CheckFlags||(e.CheckFlags={})),function(e){e.Call=\"__call\",e.Constructor=\"__constructor\",e.New=\"__new\",e.Index=\"__index\",e.ExportStar=\"__export\",e.Global=\"__global\",e.Missing=\"__missing\",e.Type=\"__type\",e.Object=\"__object\",e.JSXAttributes=\"__jsxAttributes\",e.Class=\"__class\",e.Function=\"__function\",e.Computed=\"__computed\",e.Resolving=\"__resolving__\",e.ExportEquals=\"export=\",e.Default=\"default\",e.This=\"this\"}(e.InternalSymbolName||(e.InternalSymbolName={})),function(e){e[e.TypeChecked=1]=\"TypeChecked\",e[e.LexicalThis=2]=\"LexicalThis\",e[e.CaptureThis=4]=\"CaptureThis\",e[e.CaptureNewTarget=8]=\"CaptureNewTarget\",e[e.SuperInstance=256]=\"SuperInstance\",e[e.SuperStatic=512]=\"SuperStatic\",e[e.ContextChecked=1024]=\"ContextChecked\",e[e.AsyncMethodWithSuper=2048]=\"AsyncMethodWithSuper\",e[e.AsyncMethodWithSuperBinding=4096]=\"AsyncMethodWithSuperBinding\",e[e.CaptureArguments=8192]=\"CaptureArguments\",e[e.EnumValuesComputed=16384]=\"EnumValuesComputed\",e[e.LexicalModuleMergesWithClass=32768]=\"LexicalModuleMergesWithClass\",e[e.LoopWithCapturedBlockScopedBinding=65536]=\"LoopWithCapturedBlockScopedBinding\",e[e.ContainsCapturedBlockScopeBinding=131072]=\"ContainsCapturedBlockScopeBinding\",e[e.CapturedBlockScopedBinding=262144]=\"CapturedBlockScopedBinding\",e[e.BlockScopedBindingInLoop=524288]=\"BlockScopedBindingInLoop\",e[e.ClassWithBodyScopedClassBinding=1048576]=\"ClassWithBodyScopedClassBinding\",e[e.BodyScopedClassBinding=2097152]=\"BodyScopedClassBinding\",e[e.NeedsLoopOutParameter=4194304]=\"NeedsLoopOutParameter\",e[e.AssignmentsMarked=8388608]=\"AssignmentsMarked\",e[e.ClassWithConstructorReference=16777216]=\"ClassWithConstructorReference\",e[e.ConstructorReferenceInClass=33554432]=\"ConstructorReferenceInClass\"}(e.NodeCheckFlags||(e.NodeCheckFlags={})),function(e){e[e.Any=1]=\"Any\",e[e.Unknown=2]=\"Unknown\",e[e.String=4]=\"String\",e[e.Number=8]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Enum=32]=\"Enum\",e[e.BigInt=64]=\"BigInt\",e[e.StringLiteral=128]=\"StringLiteral\",e[e.NumberLiteral=256]=\"NumberLiteral\",e[e.BooleanLiteral=512]=\"BooleanLiteral\",e[e.EnumLiteral=1024]=\"EnumLiteral\",e[e.BigIntLiteral=2048]=\"BigIntLiteral\",e[e.ESSymbol=4096]=\"ESSymbol\",e[e.UniqueESSymbol=8192]=\"UniqueESSymbol\",e[e.Void=16384]=\"Void\",e[e.Undefined=32768]=\"Undefined\",e[e.Null=65536]=\"Null\",e[e.Never=131072]=\"Never\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.Object=524288]=\"Object\",e[e.Union=1048576]=\"Union\",e[e.Intersection=2097152]=\"Intersection\",e[e.Index=4194304]=\"Index\",e[e.IndexedAccess=8388608]=\"IndexedAccess\",e[e.Conditional=16777216]=\"Conditional\",e[e.Substitution=33554432]=\"Substitution\",e[e.NonPrimitive=67108864]=\"NonPrimitive\",e[e.AnyOrUnknown=3]=\"AnyOrUnknown\",e[e.Nullable=98304]=\"Nullable\",e[e.Literal=2944]=\"Literal\",e[e.Unit=109440]=\"Unit\",e[e.StringOrNumberLiteral=384]=\"StringOrNumberLiteral\",e[e.StringOrNumberLiteralOrUnique=8576]=\"StringOrNumberLiteralOrUnique\",e[e.DefinitelyFalsy=117632]=\"DefinitelyFalsy\",e[e.PossiblyFalsy=117724]=\"PossiblyFalsy\",e[e.Intrinsic=67359327]=\"Intrinsic\",e[e.Primitive=131068]=\"Primitive\",e[e.StringLike=132]=\"StringLike\",e[e.NumberLike=296]=\"NumberLike\",e[e.BigIntLike=2112]=\"BigIntLike\",e[e.BooleanLike=528]=\"BooleanLike\",e[e.EnumLike=1056]=\"EnumLike\",e[e.ESSymbolLike=12288]=\"ESSymbolLike\",e[e.VoidLike=49152]=\"VoidLike\",e[e.DisjointDomains=67238908]=\"DisjointDomains\",e[e.UnionOrIntersection=3145728]=\"UnionOrIntersection\",e[e.StructuredType=3670016]=\"StructuredType\",e[e.TypeVariable=8650752]=\"TypeVariable\",e[e.InstantiableNonPrimitive=58982400]=\"InstantiableNonPrimitive\",e[e.InstantiablePrimitive=4194304]=\"InstantiablePrimitive\",e[e.Instantiable=63176704]=\"Instantiable\",e[e.StructuredOrInstantiable=66846720]=\"StructuredOrInstantiable\",e[e.ObjectFlagsType=3899392]=\"ObjectFlagsType\",e[e.Simplifiable=25165824]=\"Simplifiable\",e[e.Narrowable=133970943]=\"Narrowable\",e[e.NotUnionOrUnit=67637251]=\"NotUnionOrUnit\",e[e.NotPrimitiveUnion=66994211]=\"NotPrimitiveUnion\",e[e.IncludesMask=68943871]=\"IncludesMask\",e[e.IncludesStructuredOrInstantiable=262144]=\"IncludesStructuredOrInstantiable\",e[e.IncludesNonWideningType=2097152]=\"IncludesNonWideningType\",e[e.IncludesWildcard=4194304]=\"IncludesWildcard\",e[e.IncludesEmptyObject=8388608]=\"IncludesEmptyObject\",e[e.GenericMappedType=131072]=\"GenericMappedType\"}(e.TypeFlags||(e.TypeFlags={})),function(e){e[e.Class=1]=\"Class\",e[e.Interface=2]=\"Interface\",e[e.Reference=4]=\"Reference\",e[e.Tuple=8]=\"Tuple\",e[e.Anonymous=16]=\"Anonymous\",e[e.Mapped=32]=\"Mapped\",e[e.Instantiated=64]=\"Instantiated\",e[e.ObjectLiteral=128]=\"ObjectLiteral\",e[e.EvolvingArray=256]=\"EvolvingArray\",e[e.ObjectLiteralPatternWithComputedProperties=512]=\"ObjectLiteralPatternWithComputedProperties\",e[e.ContainsSpread=1024]=\"ContainsSpread\",e[e.ReverseMapped=2048]=\"ReverseMapped\",e[e.JsxAttributes=4096]=\"JsxAttributes\",e[e.MarkerType=8192]=\"MarkerType\",e[e.JSLiteral=16384]=\"JSLiteral\",e[e.FreshLiteral=32768]=\"FreshLiteral\",e[e.ArrayLiteral=65536]=\"ArrayLiteral\",e[e.PrimitiveUnion=131072]=\"PrimitiveUnion\",e[e.ContainsWideningType=262144]=\"ContainsWideningType\",e[e.ContainsObjectOrArrayLiteral=524288]=\"ContainsObjectOrArrayLiteral\",e[e.NonInferrableType=1048576]=\"NonInferrableType\",e[e.ClassOrInterface=3]=\"ClassOrInterface\",e[e.RequiresWidening=786432]=\"RequiresWidening\",e[e.PropagatingFlags=1835008]=\"PropagatingFlags\"}(e.ObjectFlags||(e.ObjectFlags={})),function(e){e[e.Invariant=0]=\"Invariant\",e[e.Covariant=1]=\"Covariant\",e[e.Contravariant=2]=\"Contravariant\",e[e.Bivariant=3]=\"Bivariant\",e[e.Independent=4]=\"Independent\",e[e.VarianceMask=7]=\"VarianceMask\",e[e.Unmeasurable=8]=\"Unmeasurable\",e[e.Unreliable=16]=\"Unreliable\",e[e.AllowsStructuralFallback=24]=\"AllowsStructuralFallback\"}(e.VarianceFlags||(e.VarianceFlags={})),function(e){e[e.Component=0]=\"Component\",e[e.Function=1]=\"Function\",e[e.Mixed=2]=\"Mixed\"}(e.JsxReferenceKind||(e.JsxReferenceKind={})),function(e){e[e.Call=0]=\"Call\",e[e.Construct=1]=\"Construct\"}(e.SignatureKind||(e.SignatureKind={})),function(e){e[e.None=0]=\"None\",e[e.HasRestParameter=1]=\"HasRestParameter\",e[e.HasLiteralTypes=2]=\"HasLiteralTypes\",e[e.IsInnerCallChain=4]=\"IsInnerCallChain\",e[e.IsOuterCallChain=8]=\"IsOuterCallChain\",e[e.PropagatingFlags=3]=\"PropagatingFlags\",e[e.CallChainFlags=12]=\"CallChainFlags\"}(e.SignatureFlags||(e.SignatureFlags={})),function(e){e[e.String=0]=\"String\",e[e.Number=1]=\"Number\"}(e.IndexKind||(e.IndexKind={})),function(e){e[e.NakedTypeVariable=1]=\"NakedTypeVariable\",e[e.HomomorphicMappedType=2]=\"HomomorphicMappedType\",e[e.PartialHomomorphicMappedType=4]=\"PartialHomomorphicMappedType\",e[e.MappedTypeConstraint=8]=\"MappedTypeConstraint\",e[e.ReturnType=16]=\"ReturnType\",e[e.LiteralKeyof=32]=\"LiteralKeyof\",e[e.NoConstraints=64]=\"NoConstraints\",e[e.AlwaysStrict=128]=\"AlwaysStrict\",e[e.MaxValue=256]=\"MaxValue\",e[e.PriorityImpliesCombination=56]=\"PriorityImpliesCombination\",e[e.Circularity=-1]=\"Circularity\"}(e.InferencePriority||(e.InferencePriority={})),function(e){e[e.None=0]=\"None\",e[e.NoDefault=1]=\"NoDefault\",e[e.AnyDefault=2]=\"AnyDefault\",e[e.SkippedGenericFunction=4]=\"SkippedGenericFunction\"}(e.InferenceFlags||(e.InferenceFlags={})),function(e){e[e.False=0]=\"False\",e[e.Maybe=1]=\"Maybe\",e[e.True=-1]=\"True\"}(e.Ternary||(e.Ternary={})),function(e){e[e.None=0]=\"None\",e[e.ExportsProperty=1]=\"ExportsProperty\",e[e.ModuleExports=2]=\"ModuleExports\",e[e.PrototypeProperty=3]=\"PrototypeProperty\",e[e.ThisProperty=4]=\"ThisProperty\",e[e.Property=5]=\"Property\",e[e.Prototype=6]=\"Prototype\",e[e.ObjectDefinePropertyValue=7]=\"ObjectDefinePropertyValue\",e[e.ObjectDefinePropertyExports=8]=\"ObjectDefinePropertyExports\",e[e.ObjectDefinePrototypeProperty=9]=\"ObjectDefinePrototypeProperty\"}(e.AssignmentDeclarationKind||(e.AssignmentDeclarationKind={})),function(e){e[e.Warning=0]=\"Warning\",e[e.Error=1]=\"Error\",e[e.Suggestion=2]=\"Suggestion\",e[e.Message=3]=\"Message\"}(n=e.DiagnosticCategory||(e.DiagnosticCategory={})),e.diagnosticCategoryName=function(e,t){void 0===t&&(t=!0);var r=n[e.category];return t?r.toLowerCase():r},function(e){e[e.Classic=1]=\"Classic\",e[e.NodeJs=2]=\"NodeJs\"}(e.ModuleResolutionKind||(e.ModuleResolutionKind={})),function(e){e[e.None=0]=\"None\",e[e.CommonJS=1]=\"CommonJS\",e[e.AMD=2]=\"AMD\",e[e.UMD=3]=\"UMD\",e[e.System=4]=\"System\",e[e.ES2015=5]=\"ES2015\",e[e.ESNext=99]=\"ESNext\"}(e.ModuleKind||(e.ModuleKind={})),function(e){e[e.None=0]=\"None\",e[e.Preserve=1]=\"Preserve\",e[e.React=2]=\"React\",e[e.ReactNative=3]=\"ReactNative\"}(e.JsxEmit||(e.JsxEmit={})),function(e){e[e.CarriageReturnLineFeed=0]=\"CarriageReturnLineFeed\",e[e.LineFeed=1]=\"LineFeed\"}(e.NewLineKind||(e.NewLineKind={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.JS=1]=\"JS\",e[e.JSX=2]=\"JSX\",e[e.TS=3]=\"TS\",e[e.TSX=4]=\"TSX\",e[e.External=5]=\"External\",e[e.JSON=6]=\"JSON\",e[e.Deferred=7]=\"Deferred\"}(e.ScriptKind||(e.ScriptKind={})),function(e){e[e.ES3=0]=\"ES3\",e[e.ES5=1]=\"ES5\",e[e.ES2015=2]=\"ES2015\",e[e.ES2016=3]=\"ES2016\",e[e.ES2017=4]=\"ES2017\",e[e.ES2018=5]=\"ES2018\",e[e.ES2019=6]=\"ES2019\",e[e.ES2020=7]=\"ES2020\",e[e.ESNext=99]=\"ESNext\",e[e.JSON=100]=\"JSON\",e[e.Latest=99]=\"Latest\"}(e.ScriptTarget||(e.ScriptTarget={})),function(e){e[e.Standard=0]=\"Standard\",e[e.JSX=1]=\"JSX\"}(e.LanguageVariant||(e.LanguageVariant={})),function(e){e[e.None=0]=\"None\",e[e.Recursive=1]=\"Recursive\"}(e.WatchDirectoryFlags||(e.WatchDirectoryFlags={})),function(e){e[e.nullCharacter=0]=\"nullCharacter\",e[e.maxAsciiCharacter=127]=\"maxAsciiCharacter\",e[e.lineFeed=10]=\"lineFeed\",e[e.carriageReturn=13]=\"carriageReturn\",e[e.lineSeparator=8232]=\"lineSeparator\",e[e.paragraphSeparator=8233]=\"paragraphSeparator\",e[e.nextLine=133]=\"nextLine\",e[e.space=32]=\"space\",e[e.nonBreakingSpace=160]=\"nonBreakingSpace\",e[e.enQuad=8192]=\"enQuad\",e[e.emQuad=8193]=\"emQuad\",e[e.enSpace=8194]=\"enSpace\",e[e.emSpace=8195]=\"emSpace\",e[e.threePerEmSpace=8196]=\"threePerEmSpace\",e[e.fourPerEmSpace=8197]=\"fourPerEmSpace\",e[e.sixPerEmSpace=8198]=\"sixPerEmSpace\",e[e.figureSpace=8199]=\"figureSpace\",e[e.punctuationSpace=8200]=\"punctuationSpace\",e[e.thinSpace=8201]=\"thinSpace\",e[e.hairSpace=8202]=\"hairSpace\",e[e.zeroWidthSpace=8203]=\"zeroWidthSpace\",e[e.narrowNoBreakSpace=8239]=\"narrowNoBreakSpace\",e[e.ideographicSpace=12288]=\"ideographicSpace\",e[e.mathematicalSpace=8287]=\"mathematicalSpace\",e[e.ogham=5760]=\"ogham\",e[e._=95]=\"_\",e[e.$=36]=\"$\",e[e._0=48]=\"_0\",e[e._1=49]=\"_1\",e[e._2=50]=\"_2\",e[e._3=51]=\"_3\",e[e._4=52]=\"_4\",e[e._5=53]=\"_5\",e[e._6=54]=\"_6\",e[e._7=55]=\"_7\",e[e._8=56]=\"_8\",e[e._9=57]=\"_9\",e[e.a=97]=\"a\",e[e.b=98]=\"b\",e[e.c=99]=\"c\",e[e.d=100]=\"d\",e[e.e=101]=\"e\",e[e.f=102]=\"f\",e[e.g=103]=\"g\",e[e.h=104]=\"h\",e[e.i=105]=\"i\",e[e.j=106]=\"j\",e[e.k=107]=\"k\",e[e.l=108]=\"l\",e[e.m=109]=\"m\",e[e.n=110]=\"n\",e[e.o=111]=\"o\",e[e.p=112]=\"p\",e[e.q=113]=\"q\",e[e.r=114]=\"r\",e[e.s=115]=\"s\",e[e.t=116]=\"t\",e[e.u=117]=\"u\",e[e.v=118]=\"v\",e[e.w=119]=\"w\",e[e.x=120]=\"x\",e[e.y=121]=\"y\",e[e.z=122]=\"z\",e[e.A=65]=\"A\",e[e.B=66]=\"B\",e[e.C=67]=\"C\",e[e.D=68]=\"D\",e[e.E=69]=\"E\",e[e.F=70]=\"F\",e[e.G=71]=\"G\",e[e.H=72]=\"H\",e[e.I=73]=\"I\",e[e.J=74]=\"J\",e[e.K=75]=\"K\",e[e.L=76]=\"L\",e[e.M=77]=\"M\",e[e.N=78]=\"N\",e[e.O=79]=\"O\",e[e.P=80]=\"P\",e[e.Q=81]=\"Q\",e[e.R=82]=\"R\",e[e.S=83]=\"S\",e[e.T=84]=\"T\",e[e.U=85]=\"U\",e[e.V=86]=\"V\",e[e.W=87]=\"W\",e[e.X=88]=\"X\",e[e.Y=89]=\"Y\",e[e.Z=90]=\"Z\",e[e.ampersand=38]=\"ampersand\",e[e.asterisk=42]=\"asterisk\",e[e.at=64]=\"at\",e[e.backslash=92]=\"backslash\",e[e.backtick=96]=\"backtick\",e[e.bar=124]=\"bar\",e[e.caret=94]=\"caret\",e[e.closeBrace=125]=\"closeBrace\",e[e.closeBracket=93]=\"closeBracket\",e[e.closeParen=41]=\"closeParen\",e[e.colon=58]=\"colon\",e[e.comma=44]=\"comma\",e[e.dot=46]=\"dot\",e[e.doubleQuote=34]=\"doubleQuote\",e[e.equals=61]=\"equals\",e[e.exclamation=33]=\"exclamation\",e[e.greaterThan=62]=\"greaterThan\",e[e.hash=35]=\"hash\",e[e.lessThan=60]=\"lessThan\",e[e.minus=45]=\"minus\",e[e.openBrace=123]=\"openBrace\",e[e.openBracket=91]=\"openBracket\",e[e.openParen=40]=\"openParen\",e[e.percent=37]=\"percent\",e[e.plus=43]=\"plus\",e[e.question=63]=\"question\",e[e.semicolon=59]=\"semicolon\",e[e.singleQuote=39]=\"singleQuote\",e[e.slash=47]=\"slash\",e[e.tilde=126]=\"tilde\",e[e.backspace=8]=\"backspace\",e[e.formFeed=12]=\"formFeed\",e[e.byteOrderMark=65279]=\"byteOrderMark\",e[e.tab=9]=\"tab\",e[e.verticalTab=11]=\"verticalTab\"}(e.CharacterCodes||(e.CharacterCodes={})),function(e){e.Ts=\".ts\",e.Tsx=\".tsx\",e.Dts=\".d.ts\",e.Js=\".js\",e.Jsx=\".jsx\",e.Json=\".json\",e.TsBuildInfo=\".tsbuildinfo\"}(e.Extension||(e.Extension={})),function(e){e[e.None=0]=\"None\",e[e.ContainsTypeScript=1]=\"ContainsTypeScript\",e[e.ContainsJsx=2]=\"ContainsJsx\",e[e.ContainsESNext=4]=\"ContainsESNext\",e[e.ContainsES2019=8]=\"ContainsES2019\",e[e.ContainsES2018=16]=\"ContainsES2018\",e[e.ContainsES2017=32]=\"ContainsES2017\",e[e.ContainsES2016=64]=\"ContainsES2016\",e[e.ContainsES2015=128]=\"ContainsES2015\",e[e.ContainsGenerator=256]=\"ContainsGenerator\",e[e.ContainsDestructuringAssignment=512]=\"ContainsDestructuringAssignment\",e[e.ContainsTypeScriptClassSyntax=1024]=\"ContainsTypeScriptClassSyntax\",e[e.ContainsLexicalThis=2048]=\"ContainsLexicalThis\",e[e.ContainsRestOrSpread=4096]=\"ContainsRestOrSpread\",e[e.ContainsObjectRestOrSpread=8192]=\"ContainsObjectRestOrSpread\",e[e.ContainsComputedPropertyName=16384]=\"ContainsComputedPropertyName\",e[e.ContainsBlockScopedBinding=32768]=\"ContainsBlockScopedBinding\",e[e.ContainsBindingPattern=65536]=\"ContainsBindingPattern\",e[e.ContainsYield=131072]=\"ContainsYield\",e[e.ContainsHoistedDeclarationOrCompletion=262144]=\"ContainsHoistedDeclarationOrCompletion\",e[e.ContainsDynamicImport=524288]=\"ContainsDynamicImport\",e[e.ContainsClassFields=1048576]=\"ContainsClassFields\",e[e.HasComputedFlags=536870912]=\"HasComputedFlags\",e[e.AssertTypeScript=1]=\"AssertTypeScript\",e[e.AssertJsx=2]=\"AssertJsx\",e[e.AssertESNext=4]=\"AssertESNext\",e[e.AssertES2019=8]=\"AssertES2019\",e[e.AssertES2018=16]=\"AssertES2018\",e[e.AssertES2017=32]=\"AssertES2017\",e[e.AssertES2016=64]=\"AssertES2016\",e[e.AssertES2015=128]=\"AssertES2015\",e[e.AssertGenerator=256]=\"AssertGenerator\",e[e.AssertDestructuringAssignment=512]=\"AssertDestructuringAssignment\",e[e.OuterExpressionExcludes=536870912]=\"OuterExpressionExcludes\",e[e.PropertyAccessExcludes=536870912]=\"PropertyAccessExcludes\",e[e.NodeExcludes=536870912]=\"NodeExcludes\",e[e.ArrowFunctionExcludes=537371648]=\"ArrowFunctionExcludes\",e[e.FunctionExcludes=537373696]=\"FunctionExcludes\",e[e.ConstructorExcludes=537372672]=\"ConstructorExcludes\",e[e.MethodOrAccessorExcludes=537372672]=\"MethodOrAccessorExcludes\",e[e.PropertyExcludes=536872960]=\"PropertyExcludes\",e[e.ClassExcludes=536888320]=\"ClassExcludes\",e[e.ModuleExcludes=537168896]=\"ModuleExcludes\",e[e.TypeExcludes=-2]=\"TypeExcludes\",e[e.ObjectLiteralExcludes=536896512]=\"ObjectLiteralExcludes\",e[e.ArrayLiteralOrCallOrNewExcludes=536875008]=\"ArrayLiteralOrCallOrNewExcludes\",e[e.VariableDeclarationListExcludes=536944640]=\"VariableDeclarationListExcludes\",e[e.ParameterExcludes=536870912]=\"ParameterExcludes\",e[e.CatchClauseExcludes=536879104]=\"CatchClauseExcludes\",e[e.BindingPatternExcludes=536875008]=\"BindingPatternExcludes\",e[e.PropertyNamePropagatingFlags=2048]=\"PropertyNamePropagatingFlags\"}(e.TransformFlags||(e.TransformFlags={})),function(e){e[e.None=0]=\"None\",e[e.SingleLine=1]=\"SingleLine\",e[e.AdviseOnEmitNode=2]=\"AdviseOnEmitNode\",e[e.NoSubstitution=4]=\"NoSubstitution\",e[e.CapturesThis=8]=\"CapturesThis\",e[e.NoLeadingSourceMap=16]=\"NoLeadingSourceMap\",e[e.NoTrailingSourceMap=32]=\"NoTrailingSourceMap\",e[e.NoSourceMap=48]=\"NoSourceMap\",e[e.NoNestedSourceMaps=64]=\"NoNestedSourceMaps\",e[e.NoTokenLeadingSourceMaps=128]=\"NoTokenLeadingSourceMaps\",e[e.NoTokenTrailingSourceMaps=256]=\"NoTokenTrailingSourceMaps\",e[e.NoTokenSourceMaps=384]=\"NoTokenSourceMaps\",e[e.NoLeadingComments=512]=\"NoLeadingComments\",e[e.NoTrailingComments=1024]=\"NoTrailingComments\",e[e.NoComments=1536]=\"NoComments\",e[e.NoNestedComments=2048]=\"NoNestedComments\",e[e.HelperName=4096]=\"HelperName\",e[e.ExportName=8192]=\"ExportName\",e[e.LocalName=16384]=\"LocalName\",e[e.InternalName=32768]=\"InternalName\",e[e.Indented=65536]=\"Indented\",e[e.NoIndentation=131072]=\"NoIndentation\",e[e.AsyncFunctionBody=262144]=\"AsyncFunctionBody\",e[e.ReuseTempVariableScope=524288]=\"ReuseTempVariableScope\",e[e.CustomPrologue=1048576]=\"CustomPrologue\",e[e.NoHoisting=2097152]=\"NoHoisting\",e[e.HasEndOfDeclarationMarker=4194304]=\"HasEndOfDeclarationMarker\",e[e.Iterator=8388608]=\"Iterator\",e[e.NoAsciiEscaping=16777216]=\"NoAsciiEscaping\",e[e.TypeScriptClassWrapper=33554432]=\"TypeScriptClassWrapper\",e[e.NeverApplyImportHelper=67108864]=\"NeverApplyImportHelper\"}(e.EmitFlags||(e.EmitFlags={})),function(e){e[e.Extends=1]=\"Extends\",e[e.Assign=2]=\"Assign\",e[e.Rest=4]=\"Rest\",e[e.Decorate=8]=\"Decorate\",e[e.Metadata=16]=\"Metadata\",e[e.Param=32]=\"Param\",e[e.Awaiter=64]=\"Awaiter\",e[e.Generator=128]=\"Generator\",e[e.Values=256]=\"Values\",e[e.Read=512]=\"Read\",e[e.Spread=1024]=\"Spread\",e[e.SpreadArrays=2048]=\"SpreadArrays\",e[e.Await=4096]=\"Await\",e[e.AsyncGenerator=8192]=\"AsyncGenerator\",e[e.AsyncDelegator=16384]=\"AsyncDelegator\",e[e.AsyncValues=32768]=\"AsyncValues\",e[e.ExportStar=65536]=\"ExportStar\",e[e.MakeTemplateObject=131072]=\"MakeTemplateObject\",e[e.FirstEmitHelper=1]=\"FirstEmitHelper\",e[e.LastEmitHelper=131072]=\"LastEmitHelper\",e[e.ForOfIncludes=256]=\"ForOfIncludes\",e[e.ForAwaitOfIncludes=32768]=\"ForAwaitOfIncludes\",e[e.AsyncGeneratorIncludes=12288]=\"AsyncGeneratorIncludes\",e[e.AsyncDelegatorIncludes=53248]=\"AsyncDelegatorIncludes\",e[e.SpreadIncludes=1536]=\"SpreadIncludes\"}(e.ExternalEmitHelpers||(e.ExternalEmitHelpers={})),function(e){e[e.SourceFile=0]=\"SourceFile\",e[e.Expression=1]=\"Expression\",e[e.IdentifierName=2]=\"IdentifierName\",e[e.MappedTypeParameter=3]=\"MappedTypeParameter\",e[e.Unspecified=4]=\"Unspecified\",e[e.EmbeddedStatement=5]=\"EmbeddedStatement\"}(e.EmitHint||(e.EmitHint={})),function(e){e.Prologue=\"prologue\",e.EmitHelpers=\"emitHelpers\",e.NoDefaultLib=\"no-default-lib\",e.Reference=\"reference\",e.Type=\"type\",e.Lib=\"lib\",e.Prepend=\"prepend\",e.Text=\"text\",e.Internal=\"internal\"}(e.BundleFileSectionKind||(e.BundleFileSectionKind={})),function(e){e[e.None=0]=\"None\",e[e.SingleLine=0]=\"SingleLine\",e[e.MultiLine=1]=\"MultiLine\",e[e.PreserveLines=2]=\"PreserveLines\",e[e.LinesMask=3]=\"LinesMask\",e[e.NotDelimited=0]=\"NotDelimited\",e[e.BarDelimited=4]=\"BarDelimited\",e[e.AmpersandDelimited=8]=\"AmpersandDelimited\",e[e.CommaDelimited=16]=\"CommaDelimited\",e[e.AsteriskDelimited=32]=\"AsteriskDelimited\",e[e.DelimitersMask=60]=\"DelimitersMask\",e[e.AllowTrailingComma=64]=\"AllowTrailingComma\",e[e.Indented=128]=\"Indented\",e[e.SpaceBetweenBraces=256]=\"SpaceBetweenBraces\",e[e.SpaceBetweenSiblings=512]=\"SpaceBetweenSiblings\",e[e.Braces=1024]=\"Braces\",e[e.Parenthesis=2048]=\"Parenthesis\",e[e.AngleBrackets=4096]=\"AngleBrackets\",e[e.SquareBrackets=8192]=\"SquareBrackets\",e[e.BracketsMask=15360]=\"BracketsMask\",e[e.OptionalIfUndefined=16384]=\"OptionalIfUndefined\",e[e.OptionalIfEmpty=32768]=\"OptionalIfEmpty\",e[e.Optional=49152]=\"Optional\",e[e.PreferNewLine=65536]=\"PreferNewLine\",e[e.NoTrailingNewLine=131072]=\"NoTrailingNewLine\",e[e.NoInterveningComments=262144]=\"NoInterveningComments\",e[e.NoSpaceIfEmpty=524288]=\"NoSpaceIfEmpty\",e[e.SingleElement=1048576]=\"SingleElement\",e[e.Modifiers=262656]=\"Modifiers\",e[e.HeritageClauses=512]=\"HeritageClauses\",e[e.SingleLineTypeLiteralMembers=768]=\"SingleLineTypeLiteralMembers\",e[e.MultiLineTypeLiteralMembers=32897]=\"MultiLineTypeLiteralMembers\",e[e.TupleTypeElements=528]=\"TupleTypeElements\",e[e.UnionTypeConstituents=516]=\"UnionTypeConstituents\",e[e.IntersectionTypeConstituents=520]=\"IntersectionTypeConstituents\",e[e.ObjectBindingPatternElements=525136]=\"ObjectBindingPatternElements\",e[e.ArrayBindingPatternElements=524880]=\"ArrayBindingPatternElements\",e[e.ObjectLiteralExpressionProperties=526226]=\"ObjectLiteralExpressionProperties\",e[e.ArrayLiteralExpressionElements=8914]=\"ArrayLiteralExpressionElements\",e[e.CommaListElements=528]=\"CommaListElements\",e[e.CallExpressionArguments=2576]=\"CallExpressionArguments\",e[e.NewExpressionArguments=18960]=\"NewExpressionArguments\",e[e.TemplateExpressionSpans=262144]=\"TemplateExpressionSpans\",e[e.SingleLineBlockStatements=768]=\"SingleLineBlockStatements\",e[e.MultiLineBlockStatements=129]=\"MultiLineBlockStatements\",e[e.VariableDeclarationList=528]=\"VariableDeclarationList\",e[e.SingleLineFunctionBodyStatements=768]=\"SingleLineFunctionBodyStatements\",e[e.MultiLineFunctionBodyStatements=1]=\"MultiLineFunctionBodyStatements\",e[e.ClassHeritageClauses=0]=\"ClassHeritageClauses\",e[e.ClassMembers=129]=\"ClassMembers\",e[e.InterfaceMembers=129]=\"InterfaceMembers\",e[e.EnumMembers=145]=\"EnumMembers\",e[e.CaseBlockClauses=129]=\"CaseBlockClauses\",e[e.NamedImportsOrExportsElements=525136]=\"NamedImportsOrExportsElements\",e[e.JsxElementOrFragmentChildren=262144]=\"JsxElementOrFragmentChildren\",e[e.JsxElementAttributes=262656]=\"JsxElementAttributes\",e[e.CaseOrDefaultClauseStatements=163969]=\"CaseOrDefaultClauseStatements\",e[e.HeritageClauseTypes=528]=\"HeritageClauseTypes\",e[e.SourceFileStatements=131073]=\"SourceFileStatements\",e[e.Decorators=49153]=\"Decorators\",e[e.TypeArguments=53776]=\"TypeArguments\",e[e.TypeParameters=53776]=\"TypeParameters\",e[e.Parameters=2576]=\"Parameters\",e[e.IndexSignatureParameters=8848]=\"IndexSignatureParameters\",e[e.JSDocComment=33]=\"JSDocComment\"}(e.ListFormat||(e.ListFormat={})),function(e){e[e.None=0]=\"None\",e[e.TripleSlashXML=1]=\"TripleSlashXML\",e[e.SingleLine=2]=\"SingleLine\",e[e.MultiLine=4]=\"MultiLine\",e[e.All=7]=\"All\",e[e.Default=7]=\"Default\"}(e.PragmaKindFlags||(e.PragmaKindFlags={})),e.commentPragmas={reference:{args:[{name:\"types\",optional:!0,captureSpan:!0},{name:\"lib\",optional:!0,captureSpan:!0},{name:\"path\",optional:!0,captureSpan:!0},{name:\"no-default-lib\",optional:!0}],kind:1},\"amd-dependency\":{args:[{name:\"path\"},{name:\"name\",optional:!0}],kind:1},\"amd-module\":{args:[{name:\"name\"}],kind:1},\"ts-check\":{kind:2},\"ts-nocheck\":{kind:2},jsx:{args:[{name:\"factory\"}],kind:4}}}(ts||(ts={})),function(e){var n,t;function r(e){var n;return(n={})[t.Low]=e.Low,n[t.Medium]=e.Medium,n[t.High]=e.High,n}e.generateDjb2Hash=function(e){for(var n=5381,t=0;t<e.length;t++)n=(n<<5)+n+e.charCodeAt(t);return n.toString()},e.setStackTraceLimit=function(){Error.stackTraceLimit<100&&(Error.stackTraceLimit=100)},function(e){e[e.Created=0]=\"Created\",e[e.Changed=1]=\"Changed\",e[e.Deleted=2]=\"Deleted\"}(n=e.FileWatcherEventKind||(e.FileWatcherEventKind={})),function(e){e[e.High=2e3]=\"High\",e[e.Medium=500]=\"Medium\",e[e.Low=250]=\"Low\"}(t=e.PollingInterval||(e.PollingInterval={})),e.missingFileModifiedTime=new Date(0);var a={Low:32,Medium:64,High:256},i=r(a);function o(n){if(n.getEnvironmentVariable){var o=function(e,n){var t=s(e);if(t)return r(\"Low\"),r(\"Medium\"),r(\"High\"),!0;return!1;function r(e){n[e]=t[e]||n[e]}}(\"TSC_WATCH_POLLINGINTERVAL\",t);i=c(\"TSC_WATCH_POLLINGCHUNKSIZE\",a)||i,e.unchangedPollThresholds=c(\"TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS\",a)||e.unchangedPollThresholds}function s(e){var t;return r(\"Low\"),r(\"Medium\"),r(\"High\"),t;function r(r){var a=function(e,t){return n.getEnvironmentVariable(e+\"_\"+t.toUpperCase())}(e,r);a&&((t||(t={}))[r]=Number(a))}}function c(e,n){var t=s(e);return(o||t)&&r(t?__assign(__assign({},n),t):n)}}function s(e,n){var t=e.mtime.getTime(),r=n.getTime();return t!==r&&(e.mtime=n,e.callback(e.fileName,c(t,r)),!0)}function c(e,t){return 0===e?n.Created:0===t?n.Deleted:n.Changed}e.unchangedPollThresholds=r(a),e.setCustomPollingValues=o,e.createDynamicPriorityPollingWatchFile=function(n){var r=[],a=[],o=u(t.Low),c=u(t.Medium),l=u(t.High);return function(n,t,a){var i={fileName:n,callback:t,unchangedPolls:0,mtime:h(n)};return r.push(i),_(i,a),{close:function(){i.isClosed=!0,e.unorderedRemoveItem(r,i)}}};function u(e){var n=[];return n.pollingInterval=e,n.pollIndex=0,n.pollScheduled=!1,n}function d(n){n.pollIndex=m(n,n.pollingInterval,n.pollIndex,i[n.pollingInterval]),n.length?v(n.pollingInterval):(e.Debug.assert(0===n.pollIndex),n.pollScheduled=!1)}function p(e){m(a,t.Low,0,a.length),d(e),!e.pollScheduled&&a.length&&v(t.Low)}function m(n,r,i,o){for(var c=n.length,l=i,u=0;u<o&&c>0;m(),c--){var d=n[i];if(d)if(d.isClosed)n[i]=void 0;else{u++;var p=s(d,h(d.fileName));d.isClosed?n[i]=void 0:p?(d.unchangedPolls=0,n!==a&&(n[i]=void 0,g(d))):d.unchangedPolls!==e.unchangedPollThresholds[r]?d.unchangedPolls++:n===a?(d.unchangedPolls=1,n[i]=void 0,_(d,t.Low)):r!==t.High&&(d.unchangedPolls++,n[i]=void 0,_(d,r===t.Low?t.Medium:t.High)),n[i]&&(l<i&&(n[l]=d,n[i]=void 0),l++)}}return i;function m(){++i===n.length&&(l<i&&(n.length=l),i=0,l=0)}}function f(e){switch(e){case t.Low:return o;case t.Medium:return c;case t.High:return l}}function _(e,n){f(n).push(e),y(n)}function g(e){a.push(e),y(t.Low)}function y(e){f(e).pollScheduled||v(e)}function v(e){f(e).pollScheduled=n.setTimeout(e===t.Low?p:d,e,f(e))}function h(t){return n.getModifiedTime(t)||e.missingFileModifiedTime}},e.createSingleFileWatcherPerName=function(n,t){var r=e.createMap(),a=e.createMultiMap(),i=e.createGetCanonicalFileName(t);return function(t,o,s){var c=i(t),l=r.get(c);return l?l.refCount++:r.set(c,{watcher:n(t,(function(n,t){return e.forEach(a.get(c),(function(e){return e(n,t)}))}),s),refCount:1}),a.add(c,o),{close:function(){var n=e.Debug.assertDefined(r.get(c));a.remove(c,o),n.refCount--,n.refCount||(r.delete(c),e.closeFileWatcherOf(n))}}}},e.onWatchedFileStat=s,e.getFileWatcherEventKind=c,e.ignoredPaths=[\"/node_modules/.\",\"/.git\",\"/.#\"],e.sysLog=e.noop,e.createRecursiveDirectoryWatcher=function(n){var t=e.createMap(),r=e.createMultiMap(),a=e.getStringComparer(!n.useCaseSensitiveFileNames),i=e.createGetCanonicalFileName(n.useCaseSensitiveFileNames);return o;function o(a,o){var l=i(a),u=t.get(l);return u?u.refCount++:(u={watcher:n.watchDirectory(a,(function(n){c(n)||(r.forEach((function(t,r){(r===l||e.startsWith(l,r)&&l[r.length]===e.directorySeparator)&&t.forEach((function(e){return e(n)}))})),s(a,l))})),refCount:1,childWatches:e.emptyArray},t.set(l,u),s(a,l)),o&&r.add(l,o),{dirName:a,close:function(){var n=e.Debug.assertDefined(t.get(l));o&&r.remove(l,o),n.refCount--,n.refCount||(t.delete(l),e.closeFileWatcherOf(n),n.childWatches.forEach(e.closeFileWatcher))}}}function s(r,i){var s=t.get(i);s&&(s.childWatches=function(t,r){var i;return e.enumerateInsertsAndDeletes(n.directoryExists(t)?e.mapDefined(n.getAccessibleSortedChildDirectories(t),(function(r){var i=e.getNormalizedAbsolutePath(r,t);return c(i)||0!==a(i,e.normalizePath(n.realpath(i)))?void 0:i})):e.emptyArray,r,(function(e,n){return a(e,n.dirName)}),(function(e){s(o(e))}),e.closeFileWatcher,s),i||e.emptyArray;function s(e){(i||(i=[])).push(e)}}(r,s.childWatches))}function c(t){return e.some(e.ignoredPaths,(function(r){return function(t,r){return!!e.stringContains(t,r)||!n.useCaseSensitiveFileNames&&e.stringContains(i(t),r)}(t,r)}))}},e.patchWriteFileEnsuringDirectory=function(n){var t=n.writeFile;n.writeFile=function(r,a,i){var o=e.getDirectoryPath(e.normalizeSlashes(r));o&&!n.directoryExists(o)&&function n(t,r){var a=e.getDirectoryPath(t),i=\"\"!==a&&t!==a&&!r.directoryExists(a);i&&n(a,r),!i&&r.directoryExists(t)||r.createDirectory(t)}(o,n),t.call(n,r,a,i)}},e.getNodeMajorVersion=function(){if(\"undefined\"!=typeof process){var e=process.version;if(e){var n=e.indexOf(\".\");if(-1!==n)return parseInt(e.substring(1,n))}}},e.sys=void 0,e.sys&&e.sys.getEnvironmentVariable&&(o(e.sys),e.Debug.currentAssertionLevel=/^development$/i.test(e.sys.getEnvironmentVariable(\"NODE_ENV\"))?1:0),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)}(ts||(ts={})),function(e){e.directorySeparator=\"/\";var n=/\\\\/g;function t(e){return 47===e||92===e}function r(e){return l(e)>0}function a(e){return 0!==l(e)}function i(e){return/^\\.\\.?($|[\\\\/])/.test(e)}function o(n,t){return n.length>t.length&&e.endsWith(n,t)}function s(e){return e.length>0&&t(e.charCodeAt(e.length-1))}function c(e){return e>=97&&e<=122||e>=65&&e<=90}function l(n){if(!n)return 0;var t=n.charCodeAt(0);if(47===t||92===t){if(n.charCodeAt(1)!==t)return 1;var r=n.indexOf(47===t?e.directorySeparator:\"\\\\\",2);return r<0?n.length:r+1}if(c(t)&&58===n.charCodeAt(1)){var a=n.charCodeAt(2);if(47===a||92===a)return 3;if(2===n.length)return 2}var i=n.indexOf(\"://\");if(-1!==i){var o=i+\"://\".length,s=n.indexOf(e.directorySeparator,o);if(-1!==s){var l=n.slice(0,i),u=n.slice(o,s);if(\"file\"===l&&(\"\"===u||\"localhost\"===u)&&c(n.charCodeAt(s+1))){var d=function(e,n){var t=e.charCodeAt(n);if(58===t)return n+1;if(37===t&&51===e.charCodeAt(n+1)){var r=e.charCodeAt(n+2);if(97===r||65===r)return n+3}return-1}(n,s+2);if(-1!==d){if(47===n.charCodeAt(d))return~(d+1);if(d===n.length)return~d}}return~(s+1)}return~n.length}return 0}function u(e){var n=l(e);return n<0?~n:n}function d(n){var t=u(n=y(n));return t===n.length?n:(n=x(n)).slice(0,Math.max(t,n.lastIndexOf(e.directorySeparator)))}function p(n,t,r){if(u(n=y(n))===n.length)return\"\";var a=(n=x(n)).slice(Math.max(u(n),n.lastIndexOf(e.directorySeparator)+1)),i=void 0!==t&&void 0!==r?f(a,t,r):void 0;return i?a.slice(0,a.length-i.length):a}function m(n,t,r){if(e.startsWith(t,\".\")||(t=\".\"+t),n.length>=t.length&&46===n.charCodeAt(n.length-t.length)){var a=n.slice(n.length-t.length);if(r(a,t))return a}}function f(n,t,r){if(t)return function(e,n,t){if(\"string\"==typeof n)return m(e,n,t)||\"\";for(var r=0,a=n;r<a.length;r++){var i=m(e,a[r],t);if(i)return i}return\"\"}(x(n),t,r?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive);var a=p(n),i=a.lastIndexOf(\".\");return i>=0?a.substring(i):\"\"}function _(n,t){return void 0===t&&(t=\"\"),function(n,t){var r=n.substring(0,t),a=n.substring(t).split(e.directorySeparator);return a.length&&!e.lastOrUndefined(a)&&a.pop(),__spreadArrays([r],a)}(n=h(t,n),u(n))}function g(n){return 0===n.length?\"\":(n[0]&&L(n[0]))+n.slice(1).join(e.directorySeparator)}function y(t){return t.replace(n,e.directorySeparator)}function v(n){if(!e.some(n))return[];for(var t=[n[0]],r=1;r<n.length;r++){var a=n[r];if(a&&\".\"!==a){if(\"..\"===a)if(t.length>1){if(\"..\"!==t[t.length-1]){t.pop();continue}}else if(t[0])continue;t.push(a)}}return t}function h(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&(e=y(e));for(var r=0,a=n;r<a.length;r++){var i=a[r];i&&(i=y(i),e=e&&0===u(i)?L(e)+i:i)}return e}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return S(e.some(t)?h.apply(void 0,__spreadArrays([n],t)):y(n))}function E(e,n){return v(_(e,n))}function T(e,n){return g(E(e,n))}function S(e){var n=g(v(_(e=y(e))));return n&&s(e)?L(n):n}function x(e){return s(e)?e.substr(0,e.length-1):e}function L(n){return s(n)?n:n+e.directorySeparator}function C(e){return a(e)||i(e)?e:\"./\"+e}e.isAnyDirectorySeparator=t,e.isUrl=function(e){return l(e)<0},e.isRootedDiskPath=r,e.isDiskPathRoot=function(e){var n=l(e);return n>0&&n===e.length},e.pathIsAbsolute=a,e.pathIsRelative=i,e.hasExtension=function(n){return e.stringContains(p(n),\".\")},e.fileExtensionIs=o,e.fileExtensionIsOneOf=function(e,n){for(var t=0,r=n;t<r.length;t++){if(o(e,r[t]))return!0}return!1},e.hasTrailingDirectorySeparator=s,e.getRootLength=u,e.getDirectoryPath=d,e.getBaseFileName=p,e.getAnyExtensionFromPath=f,e.getPathComponents=_,e.getPathFromPathComponents=g,e.normalizeSlashes=y,e.reducePathComponents=v,e.combinePaths=h,e.resolvePath=b,e.getNormalizedPathComponents=E,e.getNormalizedAbsolutePath=T,e.normalizePath=S,e.getNormalizedAbsolutePathWithoutRoot=function(n,t){return function(n){return 0===n.length?\"\":n.slice(1).join(e.directorySeparator)}(E(n,t))},e.toPath=function(e,n,t){return t(r(e)?S(e):T(e,n))},e.normalizePathAndParts=function(n){var t=v(_(n=y(n))),r=t[0],a=t.slice(1);if(a.length){var i=r+a.join(e.directorySeparator);return{path:s(n)?L(i):i,parts:a}}return{path:r,parts:a}},e.removeTrailingDirectorySeparator=x,e.ensureTrailingDirectorySeparator=L,e.ensurePathIsNonModuleName=C,e.changeAnyExtension=function(n,t,r,a){var i=void 0!==r&&void 0!==a?f(n,r,a):f(n);return i?n.slice(0,n.length-i.length)+(e.startsWith(t,\".\")?t:\".\"+t):n};var A=/(^|\\/)\\.{0,2}($|\\/)/;function D(n,t,r){if(n===t)return 0;if(void 0===n)return-1;if(void 0===t)return 1;var a=n.substring(0,u(n)),i=t.substring(0,u(t)),o=e.compareStringsCaseInsensitive(a,i);if(0!==o)return o;var s=n.substring(a.length),c=t.substring(i.length);if(!A.test(s)&&!A.test(c))return r(s,c);for(var l=v(_(n)),d=v(_(t)),p=Math.min(l.length,d.length),m=1;m<p;m++){var f=r(l[m],d[m]);if(0!==f)return f}return e.compareValues(l.length,d.length)}function k(n,t,r,a){var i,o=v(_(n)),s=v(_(t));for(i=0;i<o.length&&i<s.length;i++){var c=a(o[i]),l=a(s[i]);if(!(0===i?e.equateStringsCaseInsensitive:r)(c,l))break}if(0===i)return s;for(var u=s.slice(i),d=[];i<o.length;i++)d.push(\"..\");return __spreadArrays([\"\"],d,u)}function N(n,t,r){e.Debug.assert(u(n)>0==u(t)>0,\"Paths must either both be absolute or both be relative\");var a=\"function\"==typeof r?r:e.identity;return g(k(n,t,\"boolean\"==typeof r&&r?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,a))}function I(n,t,a,i,o){var s=k(b(a,n),b(a,t),e.equateStringsCaseSensitive,i),c=s[0];if(o&&r(c)){var l=c.charAt(0)===e.directorySeparator?\"file://\":\"file:///\";s[0]=l+c}return g(s)}e.comparePathsCaseSensitive=function(n,t){return D(n,t,e.compareStringsCaseSensitive)},e.comparePathsCaseInsensitive=function(n,t){return D(n,t,e.compareStringsCaseInsensitive)},e.comparePaths=function(n,t,r,a){return\"string\"==typeof r?(n=h(r,n),t=h(r,t)):\"boolean\"==typeof r&&(a=r),D(n,t,e.getStringComparer(a))},e.containsPath=function(n,t,r,a){if(\"string\"==typeof r?(n=h(r,n),t=h(r,t)):\"boolean\"==typeof r&&(a=r),void 0===n||void 0===t)return!1;if(n===t)return!0;var i=v(_(n)),o=v(_(t));if(o.length<i.length)return!1;for(var s=a?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,c=0;c<i.length;c++){if(!(0===c?e.equateStringsCaseInsensitive:s)(i[c],o[c]))return!1}return!0},e.startsWithDirectory=function(n,t,r){var a=r(n),i=r(t);return e.startsWith(a,i+\"/\")||e.startsWith(a,i+\"\\\\\")},e.getPathComponentsRelativeTo=k,e.getRelativePathFromDirectory=N,e.convertToRelativePath=function(e,n,t){return r(e)?I(n,e,n,t,!1):e},e.getRelativePathFromFile=function(e,n,t){return C(N(d(e),n,t))},e.getRelativePathToDirectoryOrUrl=I,e.forEachAncestorDirectory=function(e,n){for(;;){var t=n(e);if(void 0!==t)return t;var r=d(e);if(r===e)return;e=r}}}(ts||(ts={})),function(e){function n(e,n,t,r,a,i){return{code:e,category:n,key:t,message:r,reportsUnnecessary:a,elidedInCompatabilityPyramid:i}}e.Diagnostics={Unterminated_string_literal:n(1002,e.DiagnosticCategory.Error,\"Unterminated_string_literal_1002\",\"Unterminated string literal.\"),Identifier_expected:n(1003,e.DiagnosticCategory.Error,\"Identifier_expected_1003\",\"Identifier expected.\"),_0_expected:n(1005,e.DiagnosticCategory.Error,\"_0_expected_1005\",\"'{0}' expected.\"),A_file_cannot_have_a_reference_to_itself:n(1006,e.DiagnosticCategory.Error,\"A_file_cannot_have_a_reference_to_itself_1006\",\"A file cannot have a reference to itself.\"),Trailing_comma_not_allowed:n(1009,e.DiagnosticCategory.Error,\"Trailing_comma_not_allowed_1009\",\"Trailing comma not allowed.\"),Asterisk_Slash_expected:n(1010,e.DiagnosticCategory.Error,\"Asterisk_Slash_expected_1010\",\"'*/' expected.\"),An_element_access_expression_should_take_an_argument:n(1011,e.DiagnosticCategory.Error,\"An_element_access_expression_should_take_an_argument_1011\",\"An element access expression should take an argument.\"),Unexpected_token:n(1012,e.DiagnosticCategory.Error,\"Unexpected_token_1012\",\"Unexpected token.\"),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:n(1013,e.DiagnosticCategory.Error,\"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\",\"A rest parameter or binding pattern may not have a trailing comma.\"),A_rest_parameter_must_be_last_in_a_parameter_list:n(1014,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_last_in_a_parameter_list_1014\",\"A rest parameter must be last in a parameter list.\"),Parameter_cannot_have_question_mark_and_initializer:n(1015,e.DiagnosticCategory.Error,\"Parameter_cannot_have_question_mark_and_initializer_1015\",\"Parameter cannot have question mark and initializer.\"),A_required_parameter_cannot_follow_an_optional_parameter:n(1016,e.DiagnosticCategory.Error,\"A_required_parameter_cannot_follow_an_optional_parameter_1016\",\"A required parameter cannot follow an optional parameter.\"),An_index_signature_cannot_have_a_rest_parameter:n(1017,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_rest_parameter_1017\",\"An index signature cannot have a rest parameter.\"),An_index_signature_parameter_cannot_have_an_accessibility_modifier:n(1018,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\",\"An index signature parameter cannot have an accessibility modifier.\"),An_index_signature_parameter_cannot_have_a_question_mark:n(1019,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_a_question_mark_1019\",\"An index signature parameter cannot have a question mark.\"),An_index_signature_parameter_cannot_have_an_initializer:n(1020,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_initializer_1020\",\"An index signature parameter cannot have an initializer.\"),An_index_signature_must_have_a_type_annotation:n(1021,e.DiagnosticCategory.Error,\"An_index_signature_must_have_a_type_annotation_1021\",\"An index signature must have a type annotation.\"),An_index_signature_parameter_must_have_a_type_annotation:n(1022,e.DiagnosticCategory.Error,\"An_index_signature_parameter_must_have_a_type_annotation_1022\",\"An index signature parameter must have a type annotation.\"),An_index_signature_parameter_type_must_be_either_string_or_number:n(1023,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_must_be_either_string_or_number_1023\",\"An index signature parameter type must be either 'string' or 'number'.\"),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:n(1024,e.DiagnosticCategory.Error,\"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\",\"'readonly' modifier can only appear on a property declaration or index signature.\"),Accessibility_modifier_already_seen:n(1028,e.DiagnosticCategory.Error,\"Accessibility_modifier_already_seen_1028\",\"Accessibility modifier already seen.\"),_0_modifier_must_precede_1_modifier:n(1029,e.DiagnosticCategory.Error,\"_0_modifier_must_precede_1_modifier_1029\",\"'{0}' modifier must precede '{1}' modifier.\"),_0_modifier_already_seen:n(1030,e.DiagnosticCategory.Error,\"_0_modifier_already_seen_1030\",\"'{0}' modifier already seen.\"),_0_modifier_cannot_appear_on_a_class_element:n(1031,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_class_element_1031\",\"'{0}' modifier cannot appear on a class element.\"),super_must_be_followed_by_an_argument_list_or_member_access:n(1034,e.DiagnosticCategory.Error,\"super_must_be_followed_by_an_argument_list_or_member_access_1034\",\"'super' must be followed by an argument list or member access.\"),Only_ambient_modules_can_use_quoted_names:n(1035,e.DiagnosticCategory.Error,\"Only_ambient_modules_can_use_quoted_names_1035\",\"Only ambient modules can use quoted names.\"),Statements_are_not_allowed_in_ambient_contexts:n(1036,e.DiagnosticCategory.Error,\"Statements_are_not_allowed_in_ambient_contexts_1036\",\"Statements are not allowed in ambient contexts.\"),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:n(1038,e.DiagnosticCategory.Error,\"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\",\"A 'declare' modifier cannot be used in an already ambient context.\"),Initializers_are_not_allowed_in_ambient_contexts:n(1039,e.DiagnosticCategory.Error,\"Initializers_are_not_allowed_in_ambient_contexts_1039\",\"Initializers are not allowed in ambient contexts.\"),_0_modifier_cannot_be_used_in_an_ambient_context:n(1040,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_in_an_ambient_context_1040\",\"'{0}' modifier cannot be used in an ambient context.\"),_0_modifier_cannot_be_used_with_a_class_declaration:n(1041,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_a_class_declaration_1041\",\"'{0}' modifier cannot be used with a class declaration.\"),_0_modifier_cannot_be_used_here:n(1042,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_here_1042\",\"'{0}' modifier cannot be used here.\"),_0_modifier_cannot_appear_on_a_data_property:n(1043,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_data_property_1043\",\"'{0}' modifier cannot appear on a data property.\"),_0_modifier_cannot_appear_on_a_module_or_namespace_element:n(1044,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\",\"'{0}' modifier cannot appear on a module or namespace element.\"),A_0_modifier_cannot_be_used_with_an_interface_declaration:n(1045,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_interface_declaration_1045\",\"A '{0}' modifier cannot be used with an interface declaration.\"),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:n(1046,e.DiagnosticCategory.Error,\"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\",\"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),A_rest_parameter_cannot_be_optional:n(1047,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_be_optional_1047\",\"A rest parameter cannot be optional.\"),A_rest_parameter_cannot_have_an_initializer:n(1048,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_have_an_initializer_1048\",\"A rest parameter cannot have an initializer.\"),A_set_accessor_must_have_exactly_one_parameter:n(1049,e.DiagnosticCategory.Error,\"A_set_accessor_must_have_exactly_one_parameter_1049\",\"A 'set' accessor must have exactly one parameter.\"),A_set_accessor_cannot_have_an_optional_parameter:n(1051,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_an_optional_parameter_1051\",\"A 'set' accessor cannot have an optional parameter.\"),A_set_accessor_parameter_cannot_have_an_initializer:n(1052,e.DiagnosticCategory.Error,\"A_set_accessor_parameter_cannot_have_an_initializer_1052\",\"A 'set' accessor parameter cannot have an initializer.\"),A_set_accessor_cannot_have_rest_parameter:n(1053,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_rest_parameter_1053\",\"A 'set' accessor cannot have rest parameter.\"),A_get_accessor_cannot_have_parameters:n(1054,e.DiagnosticCategory.Error,\"A_get_accessor_cannot_have_parameters_1054\",\"A 'get' accessor cannot have parameters.\"),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:n(1055,e.DiagnosticCategory.Error,\"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055\",\"Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.\"),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:n(1056,e.DiagnosticCategory.Error,\"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\",\"Accessors are only available when targeting ECMAScript 5 and higher.\"),An_async_function_or_method_must_have_a_valid_awaitable_return_type:n(1057,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_have_a_valid_awaitable_return_type_1057\",\"An async function or method must have a valid awaitable return type.\"),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1058,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\",\"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),A_promise_must_have_a_then_method:n(1059,e.DiagnosticCategory.Error,\"A_promise_must_have_a_then_method_1059\",\"A promise must have a 'then' method.\"),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:n(1060,e.DiagnosticCategory.Error,\"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\",\"The first parameter of the 'then' method of a promise must be a callback.\"),Enum_member_must_have_initializer:n(1061,e.DiagnosticCategory.Error,\"Enum_member_must_have_initializer_1061\",\"Enum member must have initializer.\"),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:n(1062,e.DiagnosticCategory.Error,\"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\",\"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),An_export_assignment_cannot_be_used_in_a_namespace:n(1063,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_namespace_1063\",\"An export assignment cannot be used in a namespace.\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:n(1064,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1064\",\"The return type of an async function or method must be the global Promise<T> type.\"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:n(1066,e.DiagnosticCategory.Error,\"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\",\"In ambient enum declarations member initializer must be constant expression.\"),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:n(1068,e.DiagnosticCategory.Error,\"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\",\"Unexpected token. A constructor, method, accessor, or property was expected.\"),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:n(1069,e.DiagnosticCategory.Error,\"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\",\"Unexpected token. A type parameter name was expected without curly braces.\"),_0_modifier_cannot_appear_on_a_type_member:n(1070,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_member_1070\",\"'{0}' modifier cannot appear on a type member.\"),_0_modifier_cannot_appear_on_an_index_signature:n(1071,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_an_index_signature_1071\",\"'{0}' modifier cannot appear on an index signature.\"),A_0_modifier_cannot_be_used_with_an_import_declaration:n(1079,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\",\"A '{0}' modifier cannot be used with an import declaration.\"),Invalid_reference_directive_syntax:n(1084,e.DiagnosticCategory.Error,\"Invalid_reference_directive_syntax_1084\",\"Invalid 'reference' directive syntax.\"),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:n(1085,e.DiagnosticCategory.Error,\"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085\",\"Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'.\"),_0_modifier_cannot_appear_on_a_constructor_declaration:n(1089,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\",\"'{0}' modifier cannot appear on a constructor declaration.\"),_0_modifier_cannot_appear_on_a_parameter:n(1090,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_parameter_1090\",\"'{0}' modifier cannot appear on a parameter.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:n(1091,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\",\"Only a single variable declaration is allowed in a 'for...in' statement.\"),Type_parameters_cannot_appear_on_a_constructor_declaration:n(1092,e.DiagnosticCategory.Error,\"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\",\"Type parameters cannot appear on a constructor declaration.\"),Type_annotation_cannot_appear_on_a_constructor_declaration:n(1093,e.DiagnosticCategory.Error,\"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\",\"Type annotation cannot appear on a constructor declaration.\"),An_accessor_cannot_have_type_parameters:n(1094,e.DiagnosticCategory.Error,\"An_accessor_cannot_have_type_parameters_1094\",\"An accessor cannot have type parameters.\"),A_set_accessor_cannot_have_a_return_type_annotation:n(1095,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_a_return_type_annotation_1095\",\"A 'set' accessor cannot have a return type annotation.\"),An_index_signature_must_have_exactly_one_parameter:n(1096,e.DiagnosticCategory.Error,\"An_index_signature_must_have_exactly_one_parameter_1096\",\"An index signature must have exactly one parameter.\"),_0_list_cannot_be_empty:n(1097,e.DiagnosticCategory.Error,\"_0_list_cannot_be_empty_1097\",\"'{0}' list cannot be empty.\"),Type_parameter_list_cannot_be_empty:n(1098,e.DiagnosticCategory.Error,\"Type_parameter_list_cannot_be_empty_1098\",\"Type parameter list cannot be empty.\"),Type_argument_list_cannot_be_empty:n(1099,e.DiagnosticCategory.Error,\"Type_argument_list_cannot_be_empty_1099\",\"Type argument list cannot be empty.\"),Invalid_use_of_0_in_strict_mode:n(1100,e.DiagnosticCategory.Error,\"Invalid_use_of_0_in_strict_mode_1100\",\"Invalid use of '{0}' in strict mode.\"),with_statements_are_not_allowed_in_strict_mode:n(1101,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_strict_mode_1101\",\"'with' statements are not allowed in strict mode.\"),delete_cannot_be_called_on_an_identifier_in_strict_mode:n(1102,e.DiagnosticCategory.Error,\"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\",\"'delete' cannot be called on an identifier in strict mode.\"),A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator:n(1103,e.DiagnosticCategory.Error,\"A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator_1103\",\"A 'for-await-of' statement is only allowed within an async function or async generator.\"),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:n(1104,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\",\"A 'continue' statement can only be used within an enclosing iteration statement.\"),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:n(1105,e.DiagnosticCategory.Error,\"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\",\"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),Jump_target_cannot_cross_function_boundary:n(1107,e.DiagnosticCategory.Error,\"Jump_target_cannot_cross_function_boundary_1107\",\"Jump target cannot cross function boundary.\"),A_return_statement_can_only_be_used_within_a_function_body:n(1108,e.DiagnosticCategory.Error,\"A_return_statement_can_only_be_used_within_a_function_body_1108\",\"A 'return' statement can only be used within a function body.\"),Expression_expected:n(1109,e.DiagnosticCategory.Error,\"Expression_expected_1109\",\"Expression expected.\"),Type_expected:n(1110,e.DiagnosticCategory.Error,\"Type_expected_1110\",\"Type expected.\"),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:n(1113,e.DiagnosticCategory.Error,\"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\",\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),Duplicate_label_0:n(1114,e.DiagnosticCategory.Error,\"Duplicate_label_0_1114\",\"Duplicate label '{0}'.\"),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:n(1115,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\",\"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:n(1116,e.DiagnosticCategory.Error,\"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\",\"A 'break' statement can only jump to a label of an enclosing statement.\"),An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode:n(1117,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode_1117\",\"An object literal cannot have multiple properties with the same name in strict mode.\"),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:n(1118,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\",\"An object literal cannot have multiple get/set accessors with the same name.\"),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:n(1119,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\",\"An object literal cannot have property and accessor with the same name.\"),An_export_assignment_cannot_have_modifiers:n(1120,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_have_modifiers_1120\",\"An export assignment cannot have modifiers.\"),Octal_literals_are_not_allowed_in_strict_mode:n(1121,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_strict_mode_1121\",\"Octal literals are not allowed in strict mode.\"),Variable_declaration_list_cannot_be_empty:n(1123,e.DiagnosticCategory.Error,\"Variable_declaration_list_cannot_be_empty_1123\",\"Variable declaration list cannot be empty.\"),Digit_expected:n(1124,e.DiagnosticCategory.Error,\"Digit_expected_1124\",\"Digit expected.\"),Hexadecimal_digit_expected:n(1125,e.DiagnosticCategory.Error,\"Hexadecimal_digit_expected_1125\",\"Hexadecimal digit expected.\"),Unexpected_end_of_text:n(1126,e.DiagnosticCategory.Error,\"Unexpected_end_of_text_1126\",\"Unexpected end of text.\"),Invalid_character:n(1127,e.DiagnosticCategory.Error,\"Invalid_character_1127\",\"Invalid character.\"),Declaration_or_statement_expected:n(1128,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_1128\",\"Declaration or statement expected.\"),Statement_expected:n(1129,e.DiagnosticCategory.Error,\"Statement_expected_1129\",\"Statement expected.\"),case_or_default_expected:n(1130,e.DiagnosticCategory.Error,\"case_or_default_expected_1130\",\"'case' or 'default' expected.\"),Property_or_signature_expected:n(1131,e.DiagnosticCategory.Error,\"Property_or_signature_expected_1131\",\"Property or signature expected.\"),Enum_member_expected:n(1132,e.DiagnosticCategory.Error,\"Enum_member_expected_1132\",\"Enum member expected.\"),Variable_declaration_expected:n(1134,e.DiagnosticCategory.Error,\"Variable_declaration_expected_1134\",\"Variable declaration expected.\"),Argument_expression_expected:n(1135,e.DiagnosticCategory.Error,\"Argument_expression_expected_1135\",\"Argument expression expected.\"),Property_assignment_expected:n(1136,e.DiagnosticCategory.Error,\"Property_assignment_expected_1136\",\"Property assignment expected.\"),Expression_or_comma_expected:n(1137,e.DiagnosticCategory.Error,\"Expression_or_comma_expected_1137\",\"Expression or comma expected.\"),Parameter_declaration_expected:n(1138,e.DiagnosticCategory.Error,\"Parameter_declaration_expected_1138\",\"Parameter declaration expected.\"),Type_parameter_declaration_expected:n(1139,e.DiagnosticCategory.Error,\"Type_parameter_declaration_expected_1139\",\"Type parameter declaration expected.\"),Type_argument_expected:n(1140,e.DiagnosticCategory.Error,\"Type_argument_expected_1140\",\"Type argument expected.\"),String_literal_expected:n(1141,e.DiagnosticCategory.Error,\"String_literal_expected_1141\",\"String literal expected.\"),Line_break_not_permitted_here:n(1142,e.DiagnosticCategory.Error,\"Line_break_not_permitted_here_1142\",\"Line break not permitted here.\"),or_expected:n(1144,e.DiagnosticCategory.Error,\"or_expected_1144\",\"'{' or ';' expected.\"),Declaration_expected:n(1146,e.DiagnosticCategory.Error,\"Declaration_expected_1146\",\"Declaration expected.\"),Import_declarations_in_a_namespace_cannot_reference_a_module:n(1147,e.DiagnosticCategory.Error,\"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\",\"Import declarations in a namespace cannot reference a module.\"),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:n(1148,e.DiagnosticCategory.Error,\"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\",\"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),File_name_0_differs_from_already_included_file_name_1_only_in_casing:n(1149,e.DiagnosticCategory.Error,\"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\",\"File name '{0}' differs from already included file name '{1}' only in casing.\"),const_declarations_must_be_initialized:n(1155,e.DiagnosticCategory.Error,\"const_declarations_must_be_initialized_1155\",\"'const' declarations must be initialized.\"),const_declarations_can_only_be_declared_inside_a_block:n(1156,e.DiagnosticCategory.Error,\"const_declarations_can_only_be_declared_inside_a_block_1156\",\"'const' declarations can only be declared inside a block.\"),let_declarations_can_only_be_declared_inside_a_block:n(1157,e.DiagnosticCategory.Error,\"let_declarations_can_only_be_declared_inside_a_block_1157\",\"'let' declarations can only be declared inside a block.\"),Unterminated_template_literal:n(1160,e.DiagnosticCategory.Error,\"Unterminated_template_literal_1160\",\"Unterminated template literal.\"),Unterminated_regular_expression_literal:n(1161,e.DiagnosticCategory.Error,\"Unterminated_regular_expression_literal_1161\",\"Unterminated regular expression literal.\"),An_object_member_cannot_be_declared_optional:n(1162,e.DiagnosticCategory.Error,\"An_object_member_cannot_be_declared_optional_1162\",\"An object member cannot be declared optional.\"),A_yield_expression_is_only_allowed_in_a_generator_body:n(1163,e.DiagnosticCategory.Error,\"A_yield_expression_is_only_allowed_in_a_generator_body_1163\",\"A 'yield' expression is only allowed in a generator body.\"),Computed_property_names_are_not_allowed_in_enums:n(1164,e.DiagnosticCategory.Error,\"Computed_property_names_are_not_allowed_in_enums_1164\",\"Computed property names are not allowed in enums.\"),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1165,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\",\"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1166,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_1166\",\"A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1168,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\",\"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1169,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\",\"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1170,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\",\"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_comma_expression_is_not_allowed_in_a_computed_property_name:n(1171,e.DiagnosticCategory.Error,\"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\",\"A comma expression is not allowed in a computed property name.\"),extends_clause_already_seen:n(1172,e.DiagnosticCategory.Error,\"extends_clause_already_seen_1172\",\"'extends' clause already seen.\"),extends_clause_must_precede_implements_clause:n(1173,e.DiagnosticCategory.Error,\"extends_clause_must_precede_implements_clause_1173\",\"'extends' clause must precede 'implements' clause.\"),Classes_can_only_extend_a_single_class:n(1174,e.DiagnosticCategory.Error,\"Classes_can_only_extend_a_single_class_1174\",\"Classes can only extend a single class.\"),implements_clause_already_seen:n(1175,e.DiagnosticCategory.Error,\"implements_clause_already_seen_1175\",\"'implements' clause already seen.\"),Interface_declaration_cannot_have_implements_clause:n(1176,e.DiagnosticCategory.Error,\"Interface_declaration_cannot_have_implements_clause_1176\",\"Interface declaration cannot have 'implements' clause.\"),Binary_digit_expected:n(1177,e.DiagnosticCategory.Error,\"Binary_digit_expected_1177\",\"Binary digit expected.\"),Octal_digit_expected:n(1178,e.DiagnosticCategory.Error,\"Octal_digit_expected_1178\",\"Octal digit expected.\"),Unexpected_token_expected:n(1179,e.DiagnosticCategory.Error,\"Unexpected_token_expected_1179\",\"Unexpected token. '{' expected.\"),Property_destructuring_pattern_expected:n(1180,e.DiagnosticCategory.Error,\"Property_destructuring_pattern_expected_1180\",\"Property destructuring pattern expected.\"),Array_element_destructuring_pattern_expected:n(1181,e.DiagnosticCategory.Error,\"Array_element_destructuring_pattern_expected_1181\",\"Array element destructuring pattern expected.\"),A_destructuring_declaration_must_have_an_initializer:n(1182,e.DiagnosticCategory.Error,\"A_destructuring_declaration_must_have_an_initializer_1182\",\"A destructuring declaration must have an initializer.\"),An_implementation_cannot_be_declared_in_ambient_contexts:n(1183,e.DiagnosticCategory.Error,\"An_implementation_cannot_be_declared_in_ambient_contexts_1183\",\"An implementation cannot be declared in ambient contexts.\"),Modifiers_cannot_appear_here:n(1184,e.DiagnosticCategory.Error,\"Modifiers_cannot_appear_here_1184\",\"Modifiers cannot appear here.\"),Merge_conflict_marker_encountered:n(1185,e.DiagnosticCategory.Error,\"Merge_conflict_marker_encountered_1185\",\"Merge conflict marker encountered.\"),A_rest_element_cannot_have_an_initializer:n(1186,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_an_initializer_1186\",\"A rest element cannot have an initializer.\"),A_parameter_property_may_not_be_declared_using_a_binding_pattern:n(1187,e.DiagnosticCategory.Error,\"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\",\"A parameter property may not be declared using a binding pattern.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:n(1188,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\",\"Only a single variable declaration is allowed in a 'for...of' statement.\"),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:n(1189,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\",\"The variable declaration of a 'for...in' statement cannot have an initializer.\"),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:n(1190,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\",\"The variable declaration of a 'for...of' statement cannot have an initializer.\"),An_import_declaration_cannot_have_modifiers:n(1191,e.DiagnosticCategory.Error,\"An_import_declaration_cannot_have_modifiers_1191\",\"An import declaration cannot have modifiers.\"),Module_0_has_no_default_export:n(1192,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_1192\",\"Module '{0}' has no default export.\"),An_export_declaration_cannot_have_modifiers:n(1193,e.DiagnosticCategory.Error,\"An_export_declaration_cannot_have_modifiers_1193\",\"An export declaration cannot have modifiers.\"),Export_declarations_are_not_permitted_in_a_namespace:n(1194,e.DiagnosticCategory.Error,\"Export_declarations_are_not_permitted_in_a_namespace_1194\",\"Export declarations are not permitted in a namespace.\"),Catch_clause_variable_cannot_have_a_type_annotation:n(1196,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_a_type_annotation_1196\",\"Catch clause variable cannot have a type annotation.\"),Catch_clause_variable_cannot_have_an_initializer:n(1197,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_an_initializer_1197\",\"Catch clause variable cannot have an initializer.\"),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:n(1198,e.DiagnosticCategory.Error,\"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\",\"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),Unterminated_Unicode_escape_sequence:n(1199,e.DiagnosticCategory.Error,\"Unterminated_Unicode_escape_sequence_1199\",\"Unterminated Unicode escape sequence.\"),Line_terminator_not_permitted_before_arrow:n(1200,e.DiagnosticCategory.Error,\"Line_terminator_not_permitted_before_arrow_1200\",\"Line terminator not permitted before arrow.\"),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:n(1202,e.DiagnosticCategory.Error,\"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\",\"Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \\\"mod\\\"', 'import {a} from \\\"mod\\\"', 'import d from \\\"mod\\\"', or another module format instead.\"),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:n(1203,e.DiagnosticCategory.Error,\"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\",\"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided:n(1205,e.DiagnosticCategory.Error,\"Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided_1205\",\"Cannot re-export a type when the '--isolatedModules' flag is provided.\"),Decorators_are_not_valid_here:n(1206,e.DiagnosticCategory.Error,\"Decorators_are_not_valid_here_1206\",\"Decorators are not valid here.\"),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:n(1207,e.DiagnosticCategory.Error,\"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\",\"Decorators cannot be applied to multiple get/set accessors of the same name.\"),All_files_must_be_modules_when_the_isolatedModules_flag_is_provided:n(1208,e.DiagnosticCategory.Error,\"All_files_must_be_modules_when_the_isolatedModules_flag_is_provided_1208\",\"All files must be modules when the '--isolatedModules' flag is provided.\"),Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode:n(1210,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode_1210\",\"Invalid use of '{0}'. Class definitions are automatically in strict mode.\"),A_class_declaration_without_the_default_modifier_must_have_a_name:n(1211,e.DiagnosticCategory.Error,\"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\",\"A class declaration without the 'default' modifier must have a name.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode:n(1212,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\",\"Identifier expected. '{0}' is a reserved word in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:n(1213,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\",\"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:n(1214,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\",\"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:n(1215,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\",\"Invalid use of '{0}'. Modules are automatically in strict mode.\"),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:n(1216,e.DiagnosticCategory.Error,\"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\",\"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),Export_assignment_is_not_supported_when_module_flag_is_system:n(1218,e.DiagnosticCategory.Error,\"Export_assignment_is_not_supported_when_module_flag_is_system_1218\",\"Export assignment is not supported when '--module' flag is 'system'.\"),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:n(1219,e.DiagnosticCategory.Error,\"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219\",\"Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\"),Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher:n(1220,e.DiagnosticCategory.Error,\"Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher_1220\",\"Generators are only available when targeting ECMAScript 2015 or higher.\"),Generators_are_not_allowed_in_an_ambient_context:n(1221,e.DiagnosticCategory.Error,\"Generators_are_not_allowed_in_an_ambient_context_1221\",\"Generators are not allowed in an ambient context.\"),An_overload_signature_cannot_be_declared_as_a_generator:n(1222,e.DiagnosticCategory.Error,\"An_overload_signature_cannot_be_declared_as_a_generator_1222\",\"An overload signature cannot be declared as a generator.\"),_0_tag_already_specified:n(1223,e.DiagnosticCategory.Error,\"_0_tag_already_specified_1223\",\"'{0}' tag already specified.\"),Signature_0_must_be_a_type_predicate:n(1224,e.DiagnosticCategory.Error,\"Signature_0_must_be_a_type_predicate_1224\",\"Signature '{0}' must be a type predicate.\"),Cannot_find_parameter_0:n(1225,e.DiagnosticCategory.Error,\"Cannot_find_parameter_0_1225\",\"Cannot find parameter '{0}'.\"),Type_predicate_0_is_not_assignable_to_1:n(1226,e.DiagnosticCategory.Error,\"Type_predicate_0_is_not_assignable_to_1_1226\",\"Type predicate '{0}' is not assignable to '{1}'.\"),Parameter_0_is_not_in_the_same_position_as_parameter_1:n(1227,e.DiagnosticCategory.Error,\"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\",\"Parameter '{0}' is not in the same position as parameter '{1}'.\"),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:n(1228,e.DiagnosticCategory.Error,\"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\",\"A type predicate is only allowed in return type position for functions and methods.\"),A_type_predicate_cannot_reference_a_rest_parameter:n(1229,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_a_rest_parameter_1229\",\"A type predicate cannot reference a rest parameter.\"),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:n(1230,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\",\"A type predicate cannot reference element '{0}' in a binding pattern.\"),An_export_assignment_can_only_be_used_in_a_module:n(1231,e.DiagnosticCategory.Error,\"An_export_assignment_can_only_be_used_in_a_module_1231\",\"An export assignment can only be used in a module.\"),An_import_declaration_can_only_be_used_in_a_namespace_or_module:n(1232,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_in_a_namespace_or_module_1232\",\"An import declaration can only be used in a namespace or module.\"),An_export_declaration_can_only_be_used_in_a_module:n(1233,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_in_a_module_1233\",\"An export declaration can only be used in a module.\"),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:n(1234,e.DiagnosticCategory.Error,\"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\",\"An ambient module declaration is only allowed at the top level in a file.\"),A_namespace_declaration_is_only_allowed_in_a_namespace_or_module:n(1235,e.DiagnosticCategory.Error,\"A_namespace_declaration_is_only_allowed_in_a_namespace_or_module_1235\",\"A namespace declaration is only allowed in a namespace or module.\"),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:n(1236,e.DiagnosticCategory.Error,\"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\",\"The return type of a property decorator function must be either 'void' or 'any'.\"),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:n(1237,e.DiagnosticCategory.Error,\"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\",\"The return type of a parameter decorator function must be either 'void' or 'any'.\"),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:n(1238,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\",\"Unable to resolve signature of class decorator when called as an expression.\"),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:n(1239,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\",\"Unable to resolve signature of parameter decorator when called as an expression.\"),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:n(1240,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\",\"Unable to resolve signature of property decorator when called as an expression.\"),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:n(1241,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\",\"Unable to resolve signature of method decorator when called as an expression.\"),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:n(1242,e.DiagnosticCategory.Error,\"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\",\"'abstract' modifier can only appear on a class, method, or property declaration.\"),_0_modifier_cannot_be_used_with_1_modifier:n(1243,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_1_modifier_1243\",\"'{0}' modifier cannot be used with '{1}' modifier.\"),Abstract_methods_can_only_appear_within_an_abstract_class:n(1244,e.DiagnosticCategory.Error,\"Abstract_methods_can_only_appear_within_an_abstract_class_1244\",\"Abstract methods can only appear within an abstract class.\"),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:n(1245,e.DiagnosticCategory.Error,\"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\",\"Method '{0}' cannot have an implementation because it is marked abstract.\"),An_interface_property_cannot_have_an_initializer:n(1246,e.DiagnosticCategory.Error,\"An_interface_property_cannot_have_an_initializer_1246\",\"An interface property cannot have an initializer.\"),A_type_literal_property_cannot_have_an_initializer:n(1247,e.DiagnosticCategory.Error,\"A_type_literal_property_cannot_have_an_initializer_1247\",\"A type literal property cannot have an initializer.\"),A_class_member_cannot_have_the_0_keyword:n(1248,e.DiagnosticCategory.Error,\"A_class_member_cannot_have_the_0_keyword_1248\",\"A class member cannot have the '{0}' keyword.\"),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:n(1249,e.DiagnosticCategory.Error,\"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\",\"A decorator can only decorate a method implementation, not an overload.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:n(1250,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:n(1251,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:n(1252,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode.\"),_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag:n(1253,e.DiagnosticCategory.Error,\"_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag_1253\",\"'{0}' tag cannot be used independently as a top level JSDoc tag.\"),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:n(1254,e.DiagnosticCategory.Error,\"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\",\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),A_definite_assignment_assertion_is_not_permitted_in_this_context:n(1255,e.DiagnosticCategory.Error,\"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\",\"A definite assignment assertion '!' is not permitted in this context.\"),A_rest_element_must_be_last_in_a_tuple_type:n(1256,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_tuple_type_1256\",\"A rest element must be last in a tuple type.\"),A_required_element_cannot_follow_an_optional_element:n(1257,e.DiagnosticCategory.Error,\"A_required_element_cannot_follow_an_optional_element_1257\",\"A required element cannot follow an optional element.\"),Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation:n(1258,e.DiagnosticCategory.Error,\"Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation_1258\",\"Definite assignment assertions can only be used along with a type annotation.\"),Module_0_can_only_be_default_imported_using_the_1_flag:n(1259,e.DiagnosticCategory.Error,\"Module_0_can_only_be_default_imported_using_the_1_flag_1259\",\"Module '{0}' can only be default-imported using the '{1}' flag\"),Keywords_cannot_contain_escape_characters:n(1260,e.DiagnosticCategory.Error,\"Keywords_cannot_contain_escape_characters_1260\",\"Keywords cannot contain escape characters.\"),with_statements_are_not_allowed_in_an_async_function_block:n(1300,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_an_async_function_block_1300\",\"'with' statements are not allowed in an async function block.\"),await_expression_is_only_allowed_within_an_async_function:n(1308,e.DiagnosticCategory.Error,\"await_expression_is_only_allowed_within_an_async_function_1308\",\"'await' expression is only allowed within an async function.\"),can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment:n(1312,e.DiagnosticCategory.Error,\"can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment_1312\",\"'=' can only be used in an object literal property inside a destructuring assignment.\"),The_body_of_an_if_statement_cannot_be_the_empty_statement:n(1313,e.DiagnosticCategory.Error,\"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\",\"The body of an 'if' statement cannot be the empty statement.\"),Global_module_exports_may_only_appear_in_module_files:n(1314,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_module_files_1314\",\"Global module exports may only appear in module files.\"),Global_module_exports_may_only_appear_in_declaration_files:n(1315,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_declaration_files_1315\",\"Global module exports may only appear in declaration files.\"),Global_module_exports_may_only_appear_at_top_level:n(1316,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_at_top_level_1316\",\"Global module exports may only appear at top level.\"),A_parameter_property_cannot_be_declared_using_a_rest_parameter:n(1317,e.DiagnosticCategory.Error,\"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\",\"A parameter property cannot be declared using a rest parameter.\"),An_abstract_accessor_cannot_have_an_implementation:n(1318,e.DiagnosticCategory.Error,\"An_abstract_accessor_cannot_have_an_implementation_1318\",\"An abstract accessor cannot have an implementation.\"),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:n(1319,e.DiagnosticCategory.Error,\"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\",\"A default export can only be used in an ECMAScript-style module.\"),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1320,e.DiagnosticCategory.Error,\"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\",\"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1321,e.DiagnosticCategory.Error,\"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\",\"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1322,e.DiagnosticCategory.Error,\"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\",\"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd:n(1323,e.DiagnosticCategory.Error,\"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd_1323\",\"Dynamic imports are only supported when the '--module' flag is set to 'esnext', 'commonjs',  'amd', 'system', or 'umd'.\"),Dynamic_import_must_have_one_specifier_as_an_argument:n(1324,e.DiagnosticCategory.Error,\"Dynamic_import_must_have_one_specifier_as_an_argument_1324\",\"Dynamic import must have one specifier as an argument.\"),Specifier_of_dynamic_import_cannot_be_spread_element:n(1325,e.DiagnosticCategory.Error,\"Specifier_of_dynamic_import_cannot_be_spread_element_1325\",\"Specifier of dynamic import cannot be spread element.\"),Dynamic_import_cannot_have_type_arguments:n(1326,e.DiagnosticCategory.Error,\"Dynamic_import_cannot_have_type_arguments_1326\",\"Dynamic import cannot have type arguments\"),String_literal_with_double_quotes_expected:n(1327,e.DiagnosticCategory.Error,\"String_literal_with_double_quotes_expected_1327\",\"String literal with double quotes expected.\"),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:n(1328,e.DiagnosticCategory.Error,\"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\",\"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:n(1329,e.DiagnosticCategory.Error,\"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\",\"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:n(1330,e.DiagnosticCategory.Error,\"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\",\"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:n(1331,e.DiagnosticCategory.Error,\"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\",\"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:n(1332,e.DiagnosticCategory.Error,\"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\",\"A variable whose type is a 'unique symbol' type must be 'const'.\"),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:n(1333,e.DiagnosticCategory.Error,\"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\",\"'unique symbol' types may not be used on a variable declaration with a binding name.\"),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:n(1334,e.DiagnosticCategory.Error,\"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\",\"'unique symbol' types are only allowed on variables in a variable statement.\"),unique_symbol_types_are_not_allowed_here:n(1335,e.DiagnosticCategory.Error,\"unique_symbol_types_are_not_allowed_here_1335\",\"'unique symbol' types are not allowed here.\"),An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead:n(1336,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead_1336\",\"An index signature parameter type cannot be a type alias. Consider writing '[{0}: {1}]: {2}' instead.\"),An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead:n(1337,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead_1337\",\"An index signature parameter type cannot be a union type. Consider using a mapped object type instead.\"),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:n(1338,e.DiagnosticCategory.Error,\"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\",\"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:n(1339,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\",\"Module '{0}' does not refer to a value, but is used as a value here.\"),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:n(1340,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\",\"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),Type_arguments_cannot_be_used_here:n(1342,e.DiagnosticCategory.Error,\"Type_arguments_cannot_be_used_here_1342\",\"Type arguments cannot be used here.\"),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system:n(1343,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system_1343\",\"The 'import.meta' meta-property is only allowed when the '--module' option is 'esnext' or 'system'.\"),A_label_is_not_allowed_here:n(1344,e.DiagnosticCategory.Error,\"A_label_is_not_allowed_here_1344\",\"'A label is not allowed here.\"),An_expression_of_type_void_cannot_be_tested_for_truthiness:n(1345,e.DiagnosticCategory.Error,\"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\",\"An expression of type 'void' cannot be tested for truthiness\"),This_parameter_is_not_allowed_with_use_strict_directive:n(1346,e.DiagnosticCategory.Error,\"This_parameter_is_not_allowed_with_use_strict_directive_1346\",\"This parameter is not allowed with 'use strict' directive.\"),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:n(1347,e.DiagnosticCategory.Error,\"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\",\"'use strict' directive cannot be used with non-simple parameter list.\"),Non_simple_parameter_declared_here:n(1348,e.DiagnosticCategory.Error,\"Non_simple_parameter_declared_here_1348\",\"Non-simple parameter declared here.\"),use_strict_directive_used_here:n(1349,e.DiagnosticCategory.Error,\"use_strict_directive_used_here_1349\",\"'use strict' directive used here.\"),Print_the_final_configuration_instead_of_building:n(1350,e.DiagnosticCategory.Message,\"Print_the_final_configuration_instead_of_building_1350\",\"Print the final configuration instead of building.\"),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:n(1351,e.DiagnosticCategory.Error,\"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\",\"An identifier or keyword cannot immediately follow a numeric literal.\"),A_bigint_literal_cannot_use_exponential_notation:n(1352,e.DiagnosticCategory.Error,\"A_bigint_literal_cannot_use_exponential_notation_1352\",\"A bigint literal cannot use exponential notation.\"),A_bigint_literal_must_be_an_integer:n(1353,e.DiagnosticCategory.Error,\"A_bigint_literal_must_be_an_integer_1353\",\"A bigint literal must be an integer.\"),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:n(1354,e.DiagnosticCategory.Error,\"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\",\"'readonly' type modifier is only permitted on array and tuple literal types.\"),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:n(1355,e.DiagnosticCategory.Error,\"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\",\"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),Did_you_mean_to_mark_this_function_as_async:n(1356,e.DiagnosticCategory.Error,\"Did_you_mean_to_mark_this_function_as_async_1356\",\"Did you mean to mark this function as 'async'?\"),An_enum_member_name_must_be_followed_by_a_or:n(1357,e.DiagnosticCategory.Error,\"An_enum_member_name_must_be_followed_by_a_or_1357\",\"An enum member name must be followed by a ',', '=', or '}'.\"),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:n(1358,e.DiagnosticCategory.Error,\"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\",\"Tagged template expressions are not permitted in an optional chain.\"),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:n(1359,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\",\"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),The_types_of_0_are_incompatible_between_these_types:n(2200,e.DiagnosticCategory.Error,\"The_types_of_0_are_incompatible_between_these_types_2200\",\"The types of '{0}' are incompatible between these types.\"),The_types_returned_by_0_are_incompatible_between_these_types:n(2201,e.DiagnosticCategory.Error,\"The_types_returned_by_0_are_incompatible_between_these_types_2201\",\"The types returned by '{0}' are incompatible between these types.\"),Call_signature_return_types_0_and_1_are_incompatible:n(2202,e.DiagnosticCategory.Error,\"Call_signature_return_types_0_and_1_are_incompatible_2202\",\"Call signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:n(2203,e.DiagnosticCategory.Error,\"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\"Construct signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:n(2204,e.DiagnosticCategory.Error,\"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:n(2205,e.DiagnosticCategory.Error,\"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Duplicate_identifier_0:n(2300,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_2300\",\"Duplicate identifier '{0}'.\"),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:n(2301,e.DiagnosticCategory.Error,\"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\",\"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),Static_members_cannot_reference_class_type_parameters:n(2302,e.DiagnosticCategory.Error,\"Static_members_cannot_reference_class_type_parameters_2302\",\"Static members cannot reference class type parameters.\"),Circular_definition_of_import_alias_0:n(2303,e.DiagnosticCategory.Error,\"Circular_definition_of_import_alias_0_2303\",\"Circular definition of import alias '{0}'.\"),Cannot_find_name_0:n(2304,e.DiagnosticCategory.Error,\"Cannot_find_name_0_2304\",\"Cannot find name '{0}'.\"),Module_0_has_no_exported_member_1:n(2305,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_2305\",\"Module '{0}' has no exported member '{1}'.\"),File_0_is_not_a_module:n(2306,e.DiagnosticCategory.Error,\"File_0_is_not_a_module_2306\",\"File '{0}' is not a module.\"),Cannot_find_module_0:n(2307,e.DiagnosticCategory.Error,\"Cannot_find_module_0_2307\",\"Cannot find module '{0}'.\"),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:n(2308,e.DiagnosticCategory.Error,\"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\",\"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:n(2309,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\",\"An export assignment cannot be used in a module with other exported elements.\"),Type_0_recursively_references_itself_as_a_base_type:n(2310,e.DiagnosticCategory.Error,\"Type_0_recursively_references_itself_as_a_base_type_2310\",\"Type '{0}' recursively references itself as a base type.\"),A_class_may_only_extend_another_class:n(2311,e.DiagnosticCategory.Error,\"A_class_may_only_extend_another_class_2311\",\"A class may only extend another class.\"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2312,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\",\"An interface can only extend an object type or intersection of object types with statically known members.\"),Type_parameter_0_has_a_circular_constraint:n(2313,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_constraint_2313\",\"Type parameter '{0}' has a circular constraint.\"),Generic_type_0_requires_1_type_argument_s:n(2314,e.DiagnosticCategory.Error,\"Generic_type_0_requires_1_type_argument_s_2314\",\"Generic type '{0}' requires {1} type argument(s).\"),Type_0_is_not_generic:n(2315,e.DiagnosticCategory.Error,\"Type_0_is_not_generic_2315\",\"Type '{0}' is not generic.\"),Global_type_0_must_be_a_class_or_interface_type:n(2316,e.DiagnosticCategory.Error,\"Global_type_0_must_be_a_class_or_interface_type_2316\",\"Global type '{0}' must be a class or interface type.\"),Global_type_0_must_have_1_type_parameter_s:n(2317,e.DiagnosticCategory.Error,\"Global_type_0_must_have_1_type_parameter_s_2317\",\"Global type '{0}' must have {1} type parameter(s).\"),Cannot_find_global_type_0:n(2318,e.DiagnosticCategory.Error,\"Cannot_find_global_type_0_2318\",\"Cannot find global type '{0}'.\"),Named_property_0_of_types_1_and_2_are_not_identical:n(2319,e.DiagnosticCategory.Error,\"Named_property_0_of_types_1_and_2_are_not_identical_2319\",\"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),Interface_0_cannot_simultaneously_extend_types_1_and_2:n(2320,e.DiagnosticCategory.Error,\"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\",\"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),Excessive_stack_depth_comparing_types_0_and_1:n(2321,e.DiagnosticCategory.Error,\"Excessive_stack_depth_comparing_types_0_and_1_2321\",\"Excessive stack depth comparing types '{0}' and '{1}'.\"),Type_0_is_not_assignable_to_type_1:n(2322,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_2322\",\"Type '{0}' is not assignable to type '{1}'.\"),Cannot_redeclare_exported_variable_0:n(2323,e.DiagnosticCategory.Error,\"Cannot_redeclare_exported_variable_0_2323\",\"Cannot redeclare exported variable '{0}'.\"),Property_0_is_missing_in_type_1:n(2324,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_2324\",\"Property '{0}' is missing in type '{1}'.\"),Property_0_is_private_in_type_1_but_not_in_type_2:n(2325,e.DiagnosticCategory.Error,\"Property_0_is_private_in_type_1_but_not_in_type_2_2325\",\"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),Types_of_property_0_are_incompatible:n(2326,e.DiagnosticCategory.Error,\"Types_of_property_0_are_incompatible_2326\",\"Types of property '{0}' are incompatible.\"),Property_0_is_optional_in_type_1_but_required_in_type_2:n(2327,e.DiagnosticCategory.Error,\"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\",\"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),Types_of_parameters_0_and_1_are_incompatible:n(2328,e.DiagnosticCategory.Error,\"Types_of_parameters_0_and_1_are_incompatible_2328\",\"Types of parameters '{0}' and '{1}' are incompatible.\"),Index_signature_is_missing_in_type_0:n(2329,e.DiagnosticCategory.Error,\"Index_signature_is_missing_in_type_0_2329\",\"Index signature is missing in type '{0}'.\"),Index_signatures_are_incompatible:n(2330,e.DiagnosticCategory.Error,\"Index_signatures_are_incompatible_2330\",\"Index signatures are incompatible.\"),this_cannot_be_referenced_in_a_module_or_namespace_body:n(2331,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\",\"'this' cannot be referenced in a module or namespace body.\"),this_cannot_be_referenced_in_current_location:n(2332,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_current_location_2332\",\"'this' cannot be referenced in current location.\"),this_cannot_be_referenced_in_constructor_arguments:n(2333,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_constructor_arguments_2333\",\"'this' cannot be referenced in constructor arguments.\"),this_cannot_be_referenced_in_a_static_property_initializer:n(2334,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_static_property_initializer_2334\",\"'this' cannot be referenced in a static property initializer.\"),super_can_only_be_referenced_in_a_derived_class:n(2335,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_a_derived_class_2335\",\"'super' can only be referenced in a derived class.\"),super_cannot_be_referenced_in_constructor_arguments:n(2336,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_constructor_arguments_2336\",\"'super' cannot be referenced in constructor arguments.\"),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:n(2337,e.DiagnosticCategory.Error,\"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\",\"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:n(2338,e.DiagnosticCategory.Error,\"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\",\"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),Property_0_does_not_exist_on_type_1:n(2339,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_2339\",\"Property '{0}' does not exist on type '{1}'.\"),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:n(2340,e.DiagnosticCategory.Error,\"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\",\"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),Property_0_is_private_and_only_accessible_within_class_1:n(2341,e.DiagnosticCategory.Error,\"Property_0_is_private_and_only_accessible_within_class_1_2341\",\"Property '{0}' is private and only accessible within class '{1}'.\"),An_index_expression_argument_must_be_of_type_string_number_symbol_or_any:n(2342,e.DiagnosticCategory.Error,\"An_index_expression_argument_must_be_of_type_string_number_symbol_or_any_2342\",\"An index expression argument must be of type 'string', 'number', 'symbol', or 'any'.\"),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:n(2343,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\",\"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),Type_0_does_not_satisfy_the_constraint_1:n(2344,e.DiagnosticCategory.Error,\"Type_0_does_not_satisfy_the_constraint_1_2344\",\"Type '{0}' does not satisfy the constraint '{1}'.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:n(2345,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\",\"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),Call_target_does_not_contain_any_signatures:n(2346,e.DiagnosticCategory.Error,\"Call_target_does_not_contain_any_signatures_2346\",\"Call target does not contain any signatures.\"),Untyped_function_calls_may_not_accept_type_arguments:n(2347,e.DiagnosticCategory.Error,\"Untyped_function_calls_may_not_accept_type_arguments_2347\",\"Untyped function calls may not accept type arguments.\"),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:n(2348,e.DiagnosticCategory.Error,\"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\",\"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),This_expression_is_not_callable:n(2349,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_2349\",\"This expression is not callable.\"),Only_a_void_function_can_be_called_with_the_new_keyword:n(2350,e.DiagnosticCategory.Error,\"Only_a_void_function_can_be_called_with_the_new_keyword_2350\",\"Only a void function can be called with the 'new' keyword.\"),This_expression_is_not_constructable:n(2351,e.DiagnosticCategory.Error,\"This_expression_is_not_constructable_2351\",\"This expression is not constructable.\"),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:n(2352,e.DiagnosticCategory.Error,\"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\",\"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:n(2353,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\",\"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:n(2354,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\",\"This syntax requires an imported helper but module '{0}' cannot be found.\"),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:n(2355,e.DiagnosticCategory.Error,\"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355\",\"A function whose declared type is neither 'void' nor 'any' must return a value.\"),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:n(2356,e.DiagnosticCategory.Error,\"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\",\"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:n(2357,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\",\"The operand of an increment or decrement operator must be a variable or a property access.\"),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:n(2358,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\",\"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:n(2359,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359\",\"The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.\"),The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol:n(2360,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol_2360\",\"The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'.\"),The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:n(2361,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter_2361\",\"The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.\"),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:n(2362,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\",\"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:n(2363,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\",\"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:n(2364,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\",\"The left-hand side of an assignment expression must be a variable or a property access.\"),Operator_0_cannot_be_applied_to_types_1_and_2:n(2365,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_types_1_and_2_2365\",\"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:n(2366,e.DiagnosticCategory.Error,\"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\",\"Function lacks ending return statement and return type does not include 'undefined'.\"),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:n(2367,e.DiagnosticCategory.Error,\"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367\",\"This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap.\"),Type_parameter_name_cannot_be_0:n(2368,e.DiagnosticCategory.Error,\"Type_parameter_name_cannot_be_0_2368\",\"Type parameter name cannot be '{0}'.\"),A_parameter_property_is_only_allowed_in_a_constructor_implementation:n(2369,e.DiagnosticCategory.Error,\"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\",\"A parameter property is only allowed in a constructor implementation.\"),A_rest_parameter_must_be_of_an_array_type:n(2370,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_of_an_array_type_2370\",\"A rest parameter must be of an array type.\"),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:n(2371,e.DiagnosticCategory.Error,\"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\",\"A parameter initializer is only allowed in a function or constructor implementation.\"),Parameter_0_cannot_be_referenced_in_its_initializer:n(2372,e.DiagnosticCategory.Error,\"Parameter_0_cannot_be_referenced_in_its_initializer_2372\",\"Parameter '{0}' cannot be referenced in its initializer.\"),Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it:n(2373,e.DiagnosticCategory.Error,\"Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it_2373\",\"Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.\"),Duplicate_string_index_signature:n(2374,e.DiagnosticCategory.Error,\"Duplicate_string_index_signature_2374\",\"Duplicate string index signature.\"),Duplicate_number_index_signature:n(2375,e.DiagnosticCategory.Error,\"Duplicate_number_index_signature_2375\",\"Duplicate number index signature.\"),A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties:n(2376,e.DiagnosticCategory.Error,\"A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_proper_2376\",\"A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.\"),Constructors_for_derived_classes_must_contain_a_super_call:n(2377,e.DiagnosticCategory.Error,\"Constructors_for_derived_classes_must_contain_a_super_call_2377\",\"Constructors for derived classes must contain a 'super' call.\"),A_get_accessor_must_return_a_value:n(2378,e.DiagnosticCategory.Error,\"A_get_accessor_must_return_a_value_2378\",\"A 'get' accessor must return a value.\"),Getter_and_setter_accessors_do_not_agree_in_visibility:n(2379,e.DiagnosticCategory.Error,\"Getter_and_setter_accessors_do_not_agree_in_visibility_2379\",\"Getter and setter accessors do not agree in visibility.\"),get_and_set_accessor_must_have_the_same_type:n(2380,e.DiagnosticCategory.Error,\"get_and_set_accessor_must_have_the_same_type_2380\",\"'get' and 'set' accessor must have the same type.\"),A_signature_with_an_implementation_cannot_use_a_string_literal_type:n(2381,e.DiagnosticCategory.Error,\"A_signature_with_an_implementation_cannot_use_a_string_literal_type_2381\",\"A signature with an implementation cannot use a string literal type.\"),Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature:n(2382,e.DiagnosticCategory.Error,\"Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature_2382\",\"Specialized overload signature is not assignable to any non-specialized signature.\"),Overload_signatures_must_all_be_exported_or_non_exported:n(2383,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_exported_or_non_exported_2383\",\"Overload signatures must all be exported or non-exported.\"),Overload_signatures_must_all_be_ambient_or_non_ambient:n(2384,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\",\"Overload signatures must all be ambient or non-ambient.\"),Overload_signatures_must_all_be_public_private_or_protected:n(2385,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_public_private_or_protected_2385\",\"Overload signatures must all be public, private or protected.\"),Overload_signatures_must_all_be_optional_or_required:n(2386,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_optional_or_required_2386\",\"Overload signatures must all be optional or required.\"),Function_overload_must_be_static:n(2387,e.DiagnosticCategory.Error,\"Function_overload_must_be_static_2387\",\"Function overload must be static.\"),Function_overload_must_not_be_static:n(2388,e.DiagnosticCategory.Error,\"Function_overload_must_not_be_static_2388\",\"Function overload must not be static.\"),Function_implementation_name_must_be_0:n(2389,e.DiagnosticCategory.Error,\"Function_implementation_name_must_be_0_2389\",\"Function implementation name must be '{0}'.\"),Constructor_implementation_is_missing:n(2390,e.DiagnosticCategory.Error,\"Constructor_implementation_is_missing_2390\",\"Constructor implementation is missing.\"),Function_implementation_is_missing_or_not_immediately_following_the_declaration:n(2391,e.DiagnosticCategory.Error,\"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\",\"Function implementation is missing or not immediately following the declaration.\"),Multiple_constructor_implementations_are_not_allowed:n(2392,e.DiagnosticCategory.Error,\"Multiple_constructor_implementations_are_not_allowed_2392\",\"Multiple constructor implementations are not allowed.\"),Duplicate_function_implementation:n(2393,e.DiagnosticCategory.Error,\"Duplicate_function_implementation_2393\",\"Duplicate function implementation.\"),This_overload_signature_is_not_compatible_with_its_implementation_signature:n(2394,e.DiagnosticCategory.Error,\"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\",\"This overload signature is not compatible with its implementation signature.\"),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:n(2395,e.DiagnosticCategory.Error,\"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\",\"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:n(2396,e.DiagnosticCategory.Error,\"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\",\"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),Declaration_name_conflicts_with_built_in_global_identifier_0:n(2397,e.DiagnosticCategory.Error,\"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\",\"Declaration name conflicts with built-in global identifier '{0}'.\"),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:n(2399,e.DiagnosticCategory.Error,\"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\",\"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:n(2400,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\",\"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference:n(2401,e.DiagnosticCategory.Error,\"Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference_2401\",\"Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.\"),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:n(2402,e.DiagnosticCategory.Error,\"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\",\"Expression resolves to '_super' that compiler uses to capture base class reference.\"),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:n(2403,e.DiagnosticCategory.Error,\"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\",\"Subsequent variable declarations must have the same type.  Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:n(2404,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\",\"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:n(2405,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\",\"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:n(2406,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\",\"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:n(2407,e.DiagnosticCategory.Error,\"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\",\"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),Setters_cannot_return_a_value:n(2408,e.DiagnosticCategory.Error,\"Setters_cannot_return_a_value_2408\",\"Setters cannot return a value.\"),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:n(2409,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\",\"Return type of constructor signature must be assignable to the instance type of the class.\"),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:n(2410,e.DiagnosticCategory.Error,\"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\",\"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),Property_0_of_type_1_is_not_assignable_to_string_index_type_2:n(2411,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_string_index_type_2_2411\",\"Property '{0}' of type '{1}' is not assignable to string index type '{2}'.\"),Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2:n(2412,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2_2412\",\"Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.\"),Numeric_index_type_0_is_not_assignable_to_string_index_type_1:n(2413,e.DiagnosticCategory.Error,\"Numeric_index_type_0_is_not_assignable_to_string_index_type_1_2413\",\"Numeric index type '{0}' is not assignable to string index type '{1}'.\"),Class_name_cannot_be_0:n(2414,e.DiagnosticCategory.Error,\"Class_name_cannot_be_0_2414\",\"Class name cannot be '{0}'.\"),Class_0_incorrectly_extends_base_class_1:n(2415,e.DiagnosticCategory.Error,\"Class_0_incorrectly_extends_base_class_1_2415\",\"Class '{0}' incorrectly extends base class '{1}'.\"),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:n(2416,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\",\"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),Class_static_side_0_incorrectly_extends_base_class_static_side_1:n(2417,e.DiagnosticCategory.Error,\"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\",\"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:n(2418,e.DiagnosticCategory.Error,\"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\",\"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),Class_0_incorrectly_implements_interface_1:n(2420,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_interface_1_2420\",\"Class '{0}' incorrectly implements interface '{1}'.\"),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2422,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\",\"A class can only implement an object type or intersection of object types with statically known members.\"),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:n(2423,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\",\"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:n(2425,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:n(2426,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),Interface_name_cannot_be_0:n(2427,e.DiagnosticCategory.Error,\"Interface_name_cannot_be_0_2427\",\"Interface name cannot be '{0}'.\"),All_declarations_of_0_must_have_identical_type_parameters:n(2428,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_type_parameters_2428\",\"All declarations of '{0}' must have identical type parameters.\"),Interface_0_incorrectly_extends_interface_1:n(2430,e.DiagnosticCategory.Error,\"Interface_0_incorrectly_extends_interface_1_2430\",\"Interface '{0}' incorrectly extends interface '{1}'.\"),Enum_name_cannot_be_0:n(2431,e.DiagnosticCategory.Error,\"Enum_name_cannot_be_0_2431\",\"Enum name cannot be '{0}'.\"),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:n(2432,e.DiagnosticCategory.Error,\"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\",\"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:n(2433,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\",\"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:n(2434,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\",\"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:n(2435,e.DiagnosticCategory.Error,\"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\",\"Ambient modules cannot be nested in other modules or namespaces.\"),Ambient_module_declaration_cannot_specify_relative_module_name:n(2436,e.DiagnosticCategory.Error,\"Ambient_module_declaration_cannot_specify_relative_module_name_2436\",\"Ambient module declaration cannot specify relative module name.\"),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:n(2437,e.DiagnosticCategory.Error,\"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\",\"Module '{0}' is hidden by a local declaration with the same name.\"),Import_name_cannot_be_0:n(2438,e.DiagnosticCategory.Error,\"Import_name_cannot_be_0_2438\",\"Import name cannot be '{0}'.\"),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:n(2439,e.DiagnosticCategory.Error,\"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\",\"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),Import_declaration_conflicts_with_local_declaration_of_0:n(2440,e.DiagnosticCategory.Error,\"Import_declaration_conflicts_with_local_declaration_of_0_2440\",\"Import declaration conflicts with local declaration of '{0}'.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:n(2441,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),Types_have_separate_declarations_of_a_private_property_0:n(2442,e.DiagnosticCategory.Error,\"Types_have_separate_declarations_of_a_private_property_0_2442\",\"Types have separate declarations of a private property '{0}'.\"),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:n(2443,e.DiagnosticCategory.Error,\"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\",\"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),Property_0_is_protected_in_type_1_but_public_in_type_2:n(2444,e.DiagnosticCategory.Error,\"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\",\"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:n(2445,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\",\"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1:n(2446,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_2446\",\"Property '{0}' is protected and only accessible through an instance of class '{1}'.\"),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:n(2447,e.DiagnosticCategory.Error,\"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\",\"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),Block_scoped_variable_0_used_before_its_declaration:n(2448,e.DiagnosticCategory.Error,\"Block_scoped_variable_0_used_before_its_declaration_2448\",\"Block-scoped variable '{0}' used before its declaration.\"),Class_0_used_before_its_declaration:n(2449,e.DiagnosticCategory.Error,\"Class_0_used_before_its_declaration_2449\",\"Class '{0}' used before its declaration.\"),Enum_0_used_before_its_declaration:n(2450,e.DiagnosticCategory.Error,\"Enum_0_used_before_its_declaration_2450\",\"Enum '{0}' used before its declaration.\"),Cannot_redeclare_block_scoped_variable_0:n(2451,e.DiagnosticCategory.Error,\"Cannot_redeclare_block_scoped_variable_0_2451\",\"Cannot redeclare block-scoped variable '{0}'.\"),An_enum_member_cannot_have_a_numeric_name:n(2452,e.DiagnosticCategory.Error,\"An_enum_member_cannot_have_a_numeric_name_2452\",\"An enum member cannot have a numeric name.\"),The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly:n(2453,e.DiagnosticCategory.Error,\"The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_typ_2453\",\"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.\"),Variable_0_is_used_before_being_assigned:n(2454,e.DiagnosticCategory.Error,\"Variable_0_is_used_before_being_assigned_2454\",\"Variable '{0}' is used before being assigned.\"),Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0:n(2455,e.DiagnosticCategory.Error,\"Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0_2455\",\"Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.\"),Type_alias_0_circularly_references_itself:n(2456,e.DiagnosticCategory.Error,\"Type_alias_0_circularly_references_itself_2456\",\"Type alias '{0}' circularly references itself.\"),Type_alias_name_cannot_be_0:n(2457,e.DiagnosticCategory.Error,\"Type_alias_name_cannot_be_0_2457\",\"Type alias name cannot be '{0}'.\"),An_AMD_module_cannot_have_multiple_name_assignments:n(2458,e.DiagnosticCategory.Error,\"An_AMD_module_cannot_have_multiple_name_assignments_2458\",\"An AMD module cannot have multiple name assignments.\"),Type_0_is_not_an_array_type:n(2461,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_2461\",\"Type '{0}' is not an array type.\"),A_rest_element_must_be_last_in_a_destructuring_pattern:n(2462,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\",\"A rest element must be last in a destructuring pattern.\"),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:n(2463,e.DiagnosticCategory.Error,\"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\",\"A binding pattern parameter cannot be optional in an implementation signature.\"),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:n(2464,e.DiagnosticCategory.Error,\"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\",\"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),this_cannot_be_referenced_in_a_computed_property_name:n(2465,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_computed_property_name_2465\",\"'this' cannot be referenced in a computed property name.\"),super_cannot_be_referenced_in_a_computed_property_name:n(2466,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_a_computed_property_name_2466\",\"'super' cannot be referenced in a computed property name.\"),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:n(2467,e.DiagnosticCategory.Error,\"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\",\"A computed property name cannot reference a type parameter from its containing type.\"),Cannot_find_global_value_0:n(2468,e.DiagnosticCategory.Error,\"Cannot_find_global_value_0_2468\",\"Cannot find global value '{0}'.\"),The_0_operator_cannot_be_applied_to_type_symbol:n(2469,e.DiagnosticCategory.Error,\"The_0_operator_cannot_be_applied_to_type_symbol_2469\",\"The '{0}' operator cannot be applied to type 'symbol'.\"),Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object:n(2470,e.DiagnosticCategory.Error,\"Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object_2470\",\"'Symbol' reference does not refer to the global Symbol constructor object.\"),A_computed_property_name_of_the_form_0_must_be_of_type_symbol:n(2471,e.DiagnosticCategory.Error,\"A_computed_property_name_of_the_form_0_must_be_of_type_symbol_2471\",\"A computed property name of the form '{0}' must be of type 'symbol'.\"),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:n(2472,e.DiagnosticCategory.Error,\"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\",\"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),Enum_declarations_must_all_be_const_or_non_const:n(2473,e.DiagnosticCategory.Error,\"Enum_declarations_must_all_be_const_or_non_const_2473\",\"Enum declarations must all be const or non-const.\"),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:n(2474,e.DiagnosticCategory.Error,\"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474\",\"const enum member initializers can only contain literal values and other computed enum values.\"),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:n(2475,e.DiagnosticCategory.Error,\"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\",\"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),A_const_enum_member_can_only_be_accessed_using_a_string_literal:n(2476,e.DiagnosticCategory.Error,\"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\",\"A const enum member can only be accessed using a string literal.\"),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:n(2477,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\",\"'const' enum member initializer was evaluated to a non-finite value.\"),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:n(2478,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\",\"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),Property_0_does_not_exist_on_const_enum_1:n(2479,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_const_enum_1_2479\",\"Property '{0}' does not exist on 'const' enum '{1}'.\"),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:n(2480,e.DiagnosticCategory.Error,\"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\",\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:n(2481,e.DiagnosticCategory.Error,\"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\",\"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:n(2483,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\",\"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),Export_declaration_conflicts_with_exported_declaration_of_0:n(2484,e.DiagnosticCategory.Error,\"Export_declaration_conflicts_with_exported_declaration_of_0_2484\",\"Export declaration conflicts with exported declaration of '{0}'.\"),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:n(2487,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\",\"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2488,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\",\"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),An_iterator_must_have_a_next_method:n(2489,e.DiagnosticCategory.Error,\"An_iterator_must_have_a_next_method_2489\",\"An iterator must have a 'next()' method.\"),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:n(2490,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\",\"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:n(2491,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\",\"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),Cannot_redeclare_identifier_0_in_catch_clause:n(2492,e.DiagnosticCategory.Error,\"Cannot_redeclare_identifier_0_in_catch_clause_2492\",\"Cannot redeclare identifier '{0}' in catch clause.\"),Tuple_type_0_of_length_1_has_no_element_at_index_2:n(2493,e.DiagnosticCategory.Error,\"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\",\"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:n(2494,e.DiagnosticCategory.Error,\"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\",\"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),Type_0_is_not_an_array_type_or_a_string_type:n(2495,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_2495\",\"Type '{0}' is not an array type or a string type.\"),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:n(2496,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496\",\"The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.\"),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:n(2497,e.DiagnosticCategory.Error,\"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\",\"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:n(2498,e.DiagnosticCategory.Error,\"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\",\"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:n(2499,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\",\"An interface can only extend an identifier/qualified-name with optional type arguments.\"),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:n(2500,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\",\"A class can only implement an identifier/qualified-name with optional type arguments.\"),A_rest_element_cannot_contain_a_binding_pattern:n(2501,e.DiagnosticCategory.Error,\"A_rest_element_cannot_contain_a_binding_pattern_2501\",\"A rest element cannot contain a binding pattern.\"),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:n(2502,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\",\"'{0}' is referenced directly or indirectly in its own type annotation.\"),Cannot_find_namespace_0:n(2503,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_2503\",\"Cannot find namespace '{0}'.\"),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:n(2504,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\",\"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),A_generator_cannot_have_a_void_type_annotation:n(2505,e.DiagnosticCategory.Error,\"A_generator_cannot_have_a_void_type_annotation_2505\",\"A generator cannot have a 'void' type annotation.\"),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:n(2506,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\",\"'{0}' is referenced directly or indirectly in its own base expression.\"),Type_0_is_not_a_constructor_function_type:n(2507,e.DiagnosticCategory.Error,\"Type_0_is_not_a_constructor_function_type_2507\",\"Type '{0}' is not a constructor function type.\"),No_base_constructor_has_the_specified_number_of_type_arguments:n(2508,e.DiagnosticCategory.Error,\"No_base_constructor_has_the_specified_number_of_type_arguments_2508\",\"No base constructor has the specified number of type arguments.\"),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2509,e.DiagnosticCategory.Error,\"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\",\"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),Base_constructors_must_all_have_the_same_return_type:n(2510,e.DiagnosticCategory.Error,\"Base_constructors_must_all_have_the_same_return_type_2510\",\"Base constructors must all have the same return type.\"),Cannot_create_an_instance_of_an_abstract_class:n(2511,e.DiagnosticCategory.Error,\"Cannot_create_an_instance_of_an_abstract_class_2511\",\"Cannot create an instance of an abstract class.\"),Overload_signatures_must_all_be_abstract_or_non_abstract:n(2512,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\",\"Overload signatures must all be abstract or non-abstract.\"),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:n(2513,e.DiagnosticCategory.Error,\"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\",\"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),Classes_containing_abstract_methods_must_be_marked_abstract:n(2514,e.DiagnosticCategory.Error,\"Classes_containing_abstract_methods_must_be_marked_abstract_2514\",\"Classes containing abstract methods must be marked abstract.\"),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:n(2515,e.DiagnosticCategory.Error,\"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\",\"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'.\"),All_declarations_of_an_abstract_method_must_be_consecutive:n(2516,e.DiagnosticCategory.Error,\"All_declarations_of_an_abstract_method_must_be_consecutive_2516\",\"All declarations of an abstract method must be consecutive.\"),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:n(2517,e.DiagnosticCategory.Error,\"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\",\"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:n(2518,e.DiagnosticCategory.Error,\"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\",\"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),An_async_iterator_must_have_a_next_method:n(2519,e.DiagnosticCategory.Error,\"An_async_iterator_must_have_a_next_method_2519\",\"An async iterator must have a 'next()' method.\"),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:n(2520,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\",\"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions:n(2521,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521\",\"Expression resolves to variable declaration '{0}' that compiler uses to support async functions.\"),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:n(2522,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522\",\"The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method.\"),yield_expressions_cannot_be_used_in_a_parameter_initializer:n(2523,e.DiagnosticCategory.Error,\"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\",\"'yield' expressions cannot be used in a parameter initializer.\"),await_expressions_cannot_be_used_in_a_parameter_initializer:n(2524,e.DiagnosticCategory.Error,\"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\",\"'await' expressions cannot be used in a parameter initializer.\"),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:n(2525,e.DiagnosticCategory.Error,\"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525\",\"Initializer provides no value for this binding element and the binding element has no default value.\"),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:n(2526,e.DiagnosticCategory.Error,\"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\",\"A 'this' type is available only in a non-static member of a class or interface.\"),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:n(2527,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\",\"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),A_module_cannot_have_multiple_default_exports:n(2528,e.DiagnosticCategory.Error,\"A_module_cannot_have_multiple_default_exports_2528\",\"A module cannot have multiple default exports.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:n(2529,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),Property_0_is_incompatible_with_index_signature:n(2530,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_index_signature_2530\",\"Property '{0}' is incompatible with index signature.\"),Object_is_possibly_null:n(2531,e.DiagnosticCategory.Error,\"Object_is_possibly_null_2531\",\"Object is possibly 'null'.\"),Object_is_possibly_undefined:n(2532,e.DiagnosticCategory.Error,\"Object_is_possibly_undefined_2532\",\"Object is possibly 'undefined'.\"),Object_is_possibly_null_or_undefined:n(2533,e.DiagnosticCategory.Error,\"Object_is_possibly_null_or_undefined_2533\",\"Object is possibly 'null' or 'undefined'.\"),A_function_returning_never_cannot_have_a_reachable_end_point:n(2534,e.DiagnosticCategory.Error,\"A_function_returning_never_cannot_have_a_reachable_end_point_2534\",\"A function returning 'never' cannot have a reachable end point.\"),Enum_type_0_has_members_with_initializers_that_are_not_literals:n(2535,e.DiagnosticCategory.Error,\"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535\",\"Enum type '{0}' has members with initializers that are not literals.\"),Type_0_cannot_be_used_to_index_type_1:n(2536,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_to_index_type_1_2536\",\"Type '{0}' cannot be used to index type '{1}'.\"),Type_0_has_no_matching_index_signature_for_type_1:n(2537,e.DiagnosticCategory.Error,\"Type_0_has_no_matching_index_signature_for_type_1_2537\",\"Type '{0}' has no matching index signature for type '{1}'.\"),Type_0_cannot_be_used_as_an_index_type:n(2538,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_as_an_index_type_2538\",\"Type '{0}' cannot be used as an index type.\"),Cannot_assign_to_0_because_it_is_not_a_variable:n(2539,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_not_a_variable_2539\",\"Cannot assign to '{0}' because it is not a variable.\"),Cannot_assign_to_0_because_it_is_a_read_only_property:n(2540,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\",\"Cannot assign to '{0}' because it is a read-only property.\"),The_target_of_an_assignment_must_be_a_variable_or_a_property_access:n(2541,e.DiagnosticCategory.Error,\"The_target_of_an_assignment_must_be_a_variable_or_a_property_access_2541\",\"The target of an assignment must be a variable or a property access.\"),Index_signature_in_type_0_only_permits_reading:n(2542,e.DiagnosticCategory.Error,\"Index_signature_in_type_0_only_permits_reading_2542\",\"Index signature in type '{0}' only permits reading.\"),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:n(2543,e.DiagnosticCategory.Error,\"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\",\"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:n(2544,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\",\"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:n(2545,e.DiagnosticCategory.Error,\"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\",\"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1:n(2546,e.DiagnosticCategory.Error,\"Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1_2546\",\"Property '{0}' has conflicting declarations and is inaccessible in type '{1}'.\"),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:n(2547,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\",\"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2548,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\",\"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2549,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\",\"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_2:n(2551,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\",\"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),Cannot_find_name_0_Did_you_mean_1:n(2552,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_1_2552\",\"Cannot find name '{0}'. Did you mean '{1}'?\"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:n(2553,e.DiagnosticCategory.Error,\"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\",\"Computed values are not permitted in an enum with string valued members.\"),Expected_0_arguments_but_got_1:n(2554,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_2554\",\"Expected {0} arguments, but got {1}.\"),Expected_at_least_0_arguments_but_got_1:n(2555,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_2555\",\"Expected at least {0} arguments, but got {1}.\"),Expected_0_arguments_but_got_1_or_more:n(2556,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_or_more_2556\",\"Expected {0} arguments, but got {1} or more.\"),Expected_at_least_0_arguments_but_got_1_or_more:n(2557,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_or_more_2557\",\"Expected at least {0} arguments, but got {1} or more.\"),Expected_0_type_arguments_but_got_1:n(2558,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_but_got_1_2558\",\"Expected {0} type arguments, but got {1}.\"),Type_0_has_no_properties_in_common_with_type_1:n(2559,e.DiagnosticCategory.Error,\"Type_0_has_no_properties_in_common_with_type_1_2559\",\"Type '{0}' has no properties in common with type '{1}'.\"),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:n(2560,e.DiagnosticCategory.Error,\"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\",\"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:n(2561,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\",\"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),Base_class_expressions_cannot_reference_class_type_parameters:n(2562,e.DiagnosticCategory.Error,\"Base_class_expressions_cannot_reference_class_type_parameters_2562\",\"Base class expressions cannot reference class type parameters.\"),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:n(2563,e.DiagnosticCategory.Error,\"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\",\"The containing function or module body is too large for control flow analysis.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:n(2564,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\",\"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),Property_0_is_used_before_being_assigned:n(2565,e.DiagnosticCategory.Error,\"Property_0_is_used_before_being_assigned_2565\",\"Property '{0}' is used before being assigned.\"),A_rest_element_cannot_have_a_property_name:n(2566,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_a_property_name_2566\",\"A rest element cannot have a property name.\"),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:n(2567,e.DiagnosticCategory.Error,\"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\",\"Enum declarations can only merge with namespace or other enum declarations.\"),Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators:n(2569,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterati_2569\",\"Type '{0}' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.\"),Object_is_of_type_unknown:n(2571,e.DiagnosticCategory.Error,\"Object_is_of_type_unknown_2571\",\"Object is of type 'unknown'.\"),Rest_signatures_are_incompatible:n(2572,e.DiagnosticCategory.Error,\"Rest_signatures_are_incompatible_2572\",\"Rest signatures are incompatible.\"),Property_0_is_incompatible_with_rest_element_type:n(2573,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_rest_element_type_2573\",\"Property '{0}' is incompatible with rest element type.\"),A_rest_element_type_must_be_an_array_type:n(2574,e.DiagnosticCategory.Error,\"A_rest_element_type_must_be_an_array_type_2574\",\"A rest element type must be an array type.\"),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:n(2575,e.DiagnosticCategory.Error,\"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\",\"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),Property_0_is_a_static_member_of_type_1:n(2576,e.DiagnosticCategory.Error,\"Property_0_is_a_static_member_of_type_1_2576\",\"Property '{0}' is a static member of type '{1}'\"),Return_type_annotation_circularly_references_itself:n(2577,e.DiagnosticCategory.Error,\"Return_type_annotation_circularly_references_itself_2577\",\"Return type annotation circularly references itself.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode:n(2580,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_2580\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i @types/node`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery:n(2581,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_2581\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha:n(2582,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashje_2582\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:n(2583,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:n(2584,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:n(2585,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\",\"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.\"),Enum_type_0_circularly_references_itself:n(2586,e.DiagnosticCategory.Error,\"Enum_type_0_circularly_references_itself_2586\",\"Enum type '{0}' circularly references itself.\"),JSDoc_type_0_circularly_references_itself:n(2587,e.DiagnosticCategory.Error,\"JSDoc_type_0_circularly_references_itself_2587\",\"JSDoc type '{0}' circularly references itself.\"),Cannot_assign_to_0_because_it_is_a_constant:n(2588,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_constant_2588\",\"Cannot assign to '{0}' because it is a constant.\"),Type_instantiation_is_excessively_deep_and_possibly_infinite:n(2589,e.DiagnosticCategory.Error,\"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\",\"Type instantiation is excessively deep and possibly infinite.\"),Expression_produces_a_union_type_that_is_too_complex_to_represent:n(2590,e.DiagnosticCategory.Error,\"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\",\"Expression produces a union type that is too complex to represent.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:n(2591,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_th_2591\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i @types/node` and then add `node` to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:n(2592,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_an_2592\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery` and then add `jquery` to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:n(2593,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashje_2593\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.\"),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:n(2594,e.DiagnosticCategory.Error,\"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594\",\"This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag.\"),JSX_element_attributes_type_0_may_not_be_a_union_type:n(2600,e.DiagnosticCategory.Error,\"JSX_element_attributes_type_0_may_not_be_a_union_type_2600\",\"JSX element attributes type '{0}' may not be a union type.\"),The_return_type_of_a_JSX_element_constructor_must_return_an_object_type:n(2601,e.DiagnosticCategory.Error,\"The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601\",\"The return type of a JSX element constructor must return an object type.\"),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:n(2602,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\",\"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),Property_0_in_type_1_is_not_assignable_to_type_2:n(2603,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_type_2_2603\",\"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:n(2604,e.DiagnosticCategory.Error,\"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\",\"JSX element type '{0}' does not have any construct or call signatures.\"),JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements:n(2605,e.DiagnosticCategory.Error,\"JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements_2605\",\"JSX element type '{0}' is not a constructor function for JSX elements.\"),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:n(2606,e.DiagnosticCategory.Error,\"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\",\"Property '{0}' of JSX spread attribute is not assignable to target property.\"),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:n(2607,e.DiagnosticCategory.Error,\"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\",\"JSX element class does not support attributes because it does not have a '{0}' property.\"),The_global_type_JSX_0_may_not_have_more_than_one_property:n(2608,e.DiagnosticCategory.Error,\"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\",\"The global type 'JSX.{0}' may not have more than one property.\"),JSX_spread_child_must_be_an_array_type:n(2609,e.DiagnosticCategory.Error,\"JSX_spread_child_must_be_an_array_type_2609\",\"JSX spread child must be an array type.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_property:n(2610,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_proper_2610\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member property.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_accessor:n(2611,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_access_2611\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member accessor.\"),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:n(2612,e.DiagnosticCategory.Error,\"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\",\"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:n(2613,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\",\"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:n(2614,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\",\"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:n(2649,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\",\"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:n(2651,e.DiagnosticCategory.Error,\"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\",\"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:n(2652,e.DiagnosticCategory.Error,\"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\",\"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:n(2653,e.DiagnosticCategory.Error,\"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\",\"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition:n(2654,e.DiagnosticCategory.Error,\"Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_pack_2654\",\"Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition.\"),Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition:n(2656,e.DiagnosticCategory.Error,\"Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_2656\",\"Exported external package typings file '{0}' is not a module. Please contact the package author to update the package definition.\"),JSX_expressions_must_have_one_parent_element:n(2657,e.DiagnosticCategory.Error,\"JSX_expressions_must_have_one_parent_element_2657\",\"JSX expressions must have one parent element.\"),Type_0_provides_no_match_for_the_signature_1:n(2658,e.DiagnosticCategory.Error,\"Type_0_provides_no_match_for_the_signature_1_2658\",\"Type '{0}' provides no match for the signature '{1}'.\"),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:n(2659,e.DiagnosticCategory.Error,\"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\",\"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:n(2660,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\",\"'super' can only be referenced in members of derived classes or object literal expressions.\"),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:n(2661,e.DiagnosticCategory.Error,\"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\",\"Cannot export '{0}'. Only local declarations can be exported from a module.\"),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:n(2662,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\",\"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:n(2663,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\",\"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:n(2664,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\",\"Invalid module name in augmentation, module '{0}' cannot be found.\"),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:n(2665,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\",\"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:n(2666,e.DiagnosticCategory.Error,\"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\",\"Exports and export assignments are not permitted in module augmentations.\"),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:n(2667,e.DiagnosticCategory.Error,\"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\",\"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:n(2668,e.DiagnosticCategory.Error,\"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\",\"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:n(2669,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\",\"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:n(2670,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\",\"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:n(2671,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\",\"Cannot augment module '{0}' because it resolves to a non-module entity.\"),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:n(2672,e.DiagnosticCategory.Error,\"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\",\"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:n(2673,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\",\"Constructor of class '{0}' is private and only accessible within the class declaration.\"),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:n(2674,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\",\"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:n(2675,e.DiagnosticCategory.Error,\"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\",\"Cannot extend a class '{0}'. Class constructor is marked as private.\"),Accessors_must_both_be_abstract_or_non_abstract:n(2676,e.DiagnosticCategory.Error,\"Accessors_must_both_be_abstract_or_non_abstract_2676\",\"Accessors must both be abstract or non-abstract.\"),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:n(2677,e.DiagnosticCategory.Error,\"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\",\"A type predicate's type must be assignable to its parameter's type.\"),Type_0_is_not_comparable_to_type_1:n(2678,e.DiagnosticCategory.Error,\"Type_0_is_not_comparable_to_type_1_2678\",\"Type '{0}' is not comparable to type '{1}'.\"),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:n(2679,e.DiagnosticCategory.Error,\"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\",\"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),A_0_parameter_must_be_the_first_parameter:n(2680,e.DiagnosticCategory.Error,\"A_0_parameter_must_be_the_first_parameter_2680\",\"A '{0}' parameter must be the first parameter.\"),A_constructor_cannot_have_a_this_parameter:n(2681,e.DiagnosticCategory.Error,\"A_constructor_cannot_have_a_this_parameter_2681\",\"A constructor cannot have a 'this' parameter.\"),get_and_set_accessor_must_have_the_same_this_type:n(2682,e.DiagnosticCategory.Error,\"get_and_set_accessor_must_have_the_same_this_type_2682\",\"'get' and 'set' accessor must have the same 'this' type.\"),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:n(2683,e.DiagnosticCategory.Error,\"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\",\"'this' implicitly has type 'any' because it does not have a type annotation.\"),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:n(2684,e.DiagnosticCategory.Error,\"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\",\"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),The_this_types_of_each_signature_are_incompatible:n(2685,e.DiagnosticCategory.Error,\"The_this_types_of_each_signature_are_incompatible_2685\",\"The 'this' types of each signature are incompatible.\"),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:n(2686,e.DiagnosticCategory.Error,\"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\",\"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),All_declarations_of_0_must_have_identical_modifiers:n(2687,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_modifiers_2687\",\"All declarations of '{0}' must have identical modifiers.\"),Cannot_find_type_definition_file_for_0:n(2688,e.DiagnosticCategory.Error,\"Cannot_find_type_definition_file_for_0_2688\",\"Cannot find type definition file for '{0}'.\"),Cannot_extend_an_interface_0_Did_you_mean_implements:n(2689,e.DiagnosticCategory.Error,\"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\",\"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:n(2691,e.DiagnosticCategory.Error,\"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691\",\"An import path cannot end with a '{0}' extension. Consider importing '{1}' instead.\"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:n(2692,e.DiagnosticCategory.Error,\"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\",\"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:n(2693,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\",\"'{0}' only refers to a type, but is being used as a value here.\"),Namespace_0_has_no_exported_member_1:n(2694,e.DiagnosticCategory.Error,\"Namespace_0_has_no_exported_member_1_2694\",\"Namespace '{0}' has no exported member '{1}'.\"),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:n(2695,e.DiagnosticCategory.Error,\"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\"Left side of comma operator is unused and has no side effects.\",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:n(2696,e.DiagnosticCategory.Error,\"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\",\"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:n(2697,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\",\"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your `--lib` option.\"),Spread_types_may_only_be_created_from_object_types:n(2698,e.DiagnosticCategory.Error,\"Spread_types_may_only_be_created_from_object_types_2698\",\"Spread types may only be created from object types.\"),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:n(2699,e.DiagnosticCategory.Error,\"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\",\"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),Rest_types_may_only_be_created_from_object_types:n(2700,e.DiagnosticCategory.Error,\"Rest_types_may_only_be_created_from_object_types_2700\",\"Rest types may only be created from object types.\"),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:n(2701,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\",\"The target of an object rest assignment must be a variable or a property access.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:n(2702,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\",\"'{0}' only refers to a type, but is being used as a namespace here.\"),The_operand_of_a_delete_operator_must_be_a_property_reference:n(2703,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\",\"The operand of a delete operator must be a property reference.\"),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:n(2704,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\",\"The operand of a delete operator cannot be a read-only property.\"),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:n(2705,e.DiagnosticCategory.Error,\"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705\",\"An async function or method in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your `--lib` option.\"),Required_type_parameters_may_not_follow_optional_type_parameters:n(2706,e.DiagnosticCategory.Error,\"Required_type_parameters_may_not_follow_optional_type_parameters_2706\",\"Required type parameters may not follow optional type parameters.\"),Generic_type_0_requires_between_1_and_2_type_arguments:n(2707,e.DiagnosticCategory.Error,\"Generic_type_0_requires_between_1_and_2_type_arguments_2707\",\"Generic type '{0}' requires between {1} and {2} type arguments.\"),Cannot_use_namespace_0_as_a_value:n(2708,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_value_2708\",\"Cannot use namespace '{0}' as a value.\"),Cannot_use_namespace_0_as_a_type:n(2709,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_type_2709\",\"Cannot use namespace '{0}' as a type.\"),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:n(2710,e.DiagnosticCategory.Error,\"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\",\"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:n(2711,e.DiagnosticCategory.Error,\"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\",\"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your `--lib` option.\"),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:n(2712,e.DiagnosticCategory.Error,\"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712\",\"A dynamic import call in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your `--lib` option.\"),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:n(2713,e.DiagnosticCategory.Error,\"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\",\"Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\\\"{1}\\\"]'?\"),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:n(2714,e.DiagnosticCategory.Error,\"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\",\"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:n(2715,e.DiagnosticCategory.Error,\"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\",\"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),Type_parameter_0_has_a_circular_default:n(2716,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_default_2716\",\"Type parameter '{0}' has a circular default.\"),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:n(2717,e.DiagnosticCategory.Error,\"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\",\"Subsequent property declarations must have the same type.  Property '{0}' must be of type '{1}', but here has type '{2}'.\"),Duplicate_property_0:n(2718,e.DiagnosticCategory.Error,\"Duplicate_property_0_2718\",\"Duplicate property '{0}'.\"),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:n(2719,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\",\"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:n(2720,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\",\"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),Cannot_invoke_an_object_which_is_possibly_null:n(2721,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_2721\",\"Cannot invoke an object which is possibly 'null'.\"),Cannot_invoke_an_object_which_is_possibly_undefined:n(2722,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_undefined_2722\",\"Cannot invoke an object which is possibly 'undefined'.\"),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:n(2723,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\",\"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),Module_0_has_no_exported_member_1_Did_you_mean_2:n(2724,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_2_2724\",\"Module '{0}' has no exported member '{1}'. Did you mean '{2}'?\"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:n(2725,e.DiagnosticCategory.Error,\"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725\",\"Class name cannot be 'Object' when targeting ES5 with module {0}.\"),Cannot_find_lib_definition_for_0:n(2726,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_2726\",\"Cannot find lib definition for '{0}'.\"),Cannot_find_lib_definition_for_0_Did_you_mean_1:n(2727,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\",\"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),_0_is_declared_here:n(2728,e.DiagnosticCategory.Message,\"_0_is_declared_here_2728\",\"'{0}' is declared here.\"),Property_0_is_used_before_its_initialization:n(2729,e.DiagnosticCategory.Error,\"Property_0_is_used_before_its_initialization_2729\",\"Property '{0}' is used before its initialization.\"),An_arrow_function_cannot_have_a_this_parameter:n(2730,e.DiagnosticCategory.Error,\"An_arrow_function_cannot_have_a_this_parameter_2730\",\"An arrow function cannot have a 'this' parameter.\"),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:n(2731,e.DiagnosticCategory.Error,\"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\",\"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:n(2732,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\",\"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension\"),Property_0_was_also_declared_here:n(2733,e.DiagnosticCategory.Error,\"Property_0_was_also_declared_here_2733\",\"Property '{0}' was also declared here.\"),It_is_highly_likely_that_you_are_missing_a_semicolon:n(2734,e.DiagnosticCategory.Error,\"It_is_highly_likely_that_you_are_missing_a_semicolon_2734\",\"It is highly likely that you are missing a semicolon.\"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:n(2735,e.DiagnosticCategory.Error,\"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\",\"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),Operator_0_cannot_be_applied_to_type_1:n(2736,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_type_1_2736\",\"Operator '{0}' cannot be applied to type '{1}'.\"),BigInt_literals_are_not_available_when_targeting_lower_than_ESNext:n(2737,e.DiagnosticCategory.Error,\"BigInt_literals_are_not_available_when_targeting_lower_than_ESNext_2737\",\"BigInt literals are not available when targeting lower than ESNext.\"),An_outer_value_of_this_is_shadowed_by_this_container:n(2738,e.DiagnosticCategory.Message,\"An_outer_value_of_this_is_shadowed_by_this_container_2738\",\"An outer value of 'this' is shadowed by this container.\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:n(2739,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\",\"Type '{0}' is missing the following properties from type '{1}': {2}\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:n(2740,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\",\"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),Property_0_is_missing_in_type_1_but_required_in_type_2:n(2741,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\",\"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:n(2742,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\",\"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:n(2743,e.DiagnosticCategory.Error,\"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\",\"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:n(2744,e.DiagnosticCategory.Error,\"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\",\"Type parameter defaults can only reference previously declared type parameters.\"),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:n(2745,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\",\"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:n(2746,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\",\"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:n(2747,e.DiagnosticCategory.Error,\"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\",\"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:n(2748,e.DiagnosticCategory.Error,\"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748\",\"Cannot access ambient const enums when the '--isolatedModules' flag is provided.\"),_0_refers_to_a_value_but_is_being_used_as_a_type_here:n(2749,e.DiagnosticCategory.Error,\"_0_refers_to_a_value_but_is_being_used_as_a_type_here_2749\",\"'{0}' refers to a value, but is being used as a type here.\"),The_implementation_signature_is_declared_here:n(2750,e.DiagnosticCategory.Error,\"The_implementation_signature_is_declared_here_2750\",\"The implementation signature is declared here.\"),Circularity_originates_in_type_at_this_location:n(2751,e.DiagnosticCategory.Error,\"Circularity_originates_in_type_at_this_location_2751\",\"Circularity originates in type at this location.\"),The_first_export_default_is_here:n(2752,e.DiagnosticCategory.Error,\"The_first_export_default_is_here_2752\",\"The first export default is here.\"),Another_export_default_is_here:n(2753,e.DiagnosticCategory.Error,\"Another_export_default_is_here_2753\",\"Another export default is here.\"),super_may_not_use_type_arguments:n(2754,e.DiagnosticCategory.Error,\"super_may_not_use_type_arguments_2754\",\"'super' may not use type arguments.\"),No_constituent_of_type_0_is_callable:n(2755,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_callable_2755\",\"No constituent of type '{0}' is callable.\"),Not_all_constituents_of_type_0_are_callable:n(2756,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_callable_2756\",\"Not all constituents of type '{0}' are callable.\"),Type_0_has_no_call_signatures:n(2757,e.DiagnosticCategory.Error,\"Type_0_has_no_call_signatures_2757\",\"Type '{0}' has no call signatures.\"),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:n(2758,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\",\"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),No_constituent_of_type_0_is_constructable:n(2759,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_constructable_2759\",\"No constituent of type '{0}' is constructable.\"),Not_all_constituents_of_type_0_are_constructable:n(2760,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_constructable_2760\",\"Not all constituents of type '{0}' are constructable.\"),Type_0_has_no_construct_signatures:n(2761,e.DiagnosticCategory.Error,\"Type_0_has_no_construct_signatures_2761\",\"Type '{0}' has no construct signatures.\"),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:n(2762,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\",\"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:n(2763,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:n(2764,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:n(2765,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:n(2766,e.DiagnosticCategory.Error,\"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\",\"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),The_0_property_of_an_iterator_must_be_a_method:n(2767,e.DiagnosticCategory.Error,\"The_0_property_of_an_iterator_must_be_a_method_2767\",\"The '{0}' property of an iterator must be a method.\"),The_0_property_of_an_async_iterator_must_be_a_method:n(2768,e.DiagnosticCategory.Error,\"The_0_property_of_an_async_iterator_must_be_a_method_2768\",\"The '{0}' property of an async iterator must be a method.\"),No_overload_matches_this_call:n(2769,e.DiagnosticCategory.Error,\"No_overload_matches_this_call_2769\",\"No overload matches this call.\"),The_last_overload_gave_the_following_error:n(2770,e.DiagnosticCategory.Error,\"The_last_overload_gave_the_following_error_2770\",\"The last overload gave the following error.\"),The_last_overload_is_declared_here:n(2771,e.DiagnosticCategory.Error,\"The_last_overload_is_declared_here_2771\",\"The last overload is declared here.\"),Overload_0_of_1_2_gave_the_following_error:n(2772,e.DiagnosticCategory.Error,\"Overload_0_of_1_2_gave_the_following_error_2772\",\"Overload {0} of {1}, '{2}', gave the following error.\"),Did_you_forget_to_use_await:n(2773,e.DiagnosticCategory.Error,\"Did_you_forget_to_use_await_2773\",\"Did you forget to use 'await'?\"),This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it_instead:n(2774,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it__2774\",\"This condition will always return true since the function is always defined. Did you mean to call it instead?\"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:n(2775,e.DiagnosticCategory.Error,\"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\",\"Assertions require every name in the call target to be declared with an explicit type annotation.\"),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:n(2776,e.DiagnosticCategory.Error,\"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\",\"Assertions require the call target to be an identifier or qualified name.\"),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:n(2777,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\",\"The operand of an increment or decrement operator may not be an optional property access.\"),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:n(2778,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\",\"The target of an object rest assignment may not be an optional property access.\"),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:n(2779,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\",\"The left-hand side of an assignment expression may not be an optional property access.\"),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:n(2780,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\",\"The left-hand side of a 'for...in' statement may not be an optional property access.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:n(2781,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\",\"The left-hand side of a 'for...of' statement may not be an optional property access.\"),Import_declaration_0_is_using_private_name_1:n(4e3,e.DiagnosticCategory.Error,\"Import_declaration_0_is_using_private_name_1_4000\",\"Import declaration '{0}' is using private name '{1}'.\"),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:n(4002,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\",\"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:n(4004,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\",\"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:n(4006,e.DiagnosticCategory.Error,\"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\",\"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:n(4008,e.DiagnosticCategory.Error,\"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\",\"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:n(4010,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\",\"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:n(4012,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\",\"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:n(4014,e.DiagnosticCategory.Error,\"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\",\"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:n(4016,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\",\"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:n(4019,e.DiagnosticCategory.Error,\"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\",\"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:n(4020,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\",\"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:n(4022,e.DiagnosticCategory.Error,\"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\",\"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4023,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\",\"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:n(4024,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\",\"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),Exported_variable_0_has_or_is_using_private_name_1:n(4025,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_private_name_1_4025\",\"Exported variable '{0}' has or is using private name '{1}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4026,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\",\"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4027,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\",\"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:n(4028,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\",\"Public static property '{0}' of exported class has or is using private name '{1}'.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4029,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\",\"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4030,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\",\"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_property_0_of_exported_class_has_or_is_using_private_name_1:n(4031,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\",\"Public property '{0}' of exported class has or is using private name '{1}'.\"),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4032,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\",\"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Property_0_of_exported_interface_has_or_is_using_private_name_1:n(4033,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\",\"Property '{0}' of exported interface has or is using private name '{1}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4034,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\",\"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:n(4035,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\",\"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4036,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\",\"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:n(4037,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\",\"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4038,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4039,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:n(4040,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\",\"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4041,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4042,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:n(4043,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\",\"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4044,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\",\"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:n(4045,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\",\"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4046,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\",\"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:n(4047,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\",\"Return type of call signature from exported interface has or is using private name '{0}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4048,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\",\"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:n(4049,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\",\"Return type of index signature from exported interface has or is using private name '{0}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4050,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\",\"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:n(4051,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\",\"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:n(4052,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\",\"Return type of public static method from exported class has or is using private name '{0}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4053,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\",\"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:n(4054,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\",\"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:n(4055,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\",\"Return type of public method from exported class has or is using private name '{0}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4056,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\",\"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:n(4057,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\",\"Return type of method from exported interface has or is using private name '{0}'.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4058,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\",\"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:n(4059,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\",\"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),Return_type_of_exported_function_has_or_is_using_private_name_0:n(4060,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\",\"Return type of exported function has or is using private name '{0}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4061,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4062,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:n(4063,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\",\"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4064,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\",\"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:n(4065,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\",\"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4066,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\",\"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:n(4067,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\",\"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4068,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4069,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:n(4070,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\",\"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4071,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4072,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:n(4073,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\",\"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4074,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\",\"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:n(4075,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\",\"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4076,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\",\"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:n(4077,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\",\"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_exported_function_has_or_is_using_private_name_1:n(4078,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\",\"Parameter '{0}' of exported function has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1:n(4081,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_4081\",\"Exported type alias '{0}' has or is using private name '{1}'.\"),Default_export_of_the_module_has_or_is_using_private_name_0:n(4082,e.DiagnosticCategory.Error,\"Default_export_of_the_module_has_or_is_using_private_name_0_4082\",\"Default export of the module has or is using private name '{0}'.\"),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:n(4083,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\",\"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:n(4090,e.DiagnosticCategory.Error,\"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090\",\"Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4091,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\",\"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:n(4092,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\",\"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),Property_0_of_exported_class_expression_may_not_be_private_or_protected:n(4094,e.DiagnosticCategory.Error,\"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094\",\"Property '{0}' of exported class expression may not be private or protected.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4095,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\",\"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4096,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\",\"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:n(4097,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\",\"Public static method '{0}' of exported class has or is using private name '{1}'.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4098,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\",\"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4099,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\",\"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_method_0_of_exported_class_has_or_is_using_private_name_1:n(4100,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\",\"Public method '{0}' of exported class has or is using private name '{1}'.\"),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4101,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\",\"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Method_0_of_exported_interface_has_or_is_using_private_name_1:n(4102,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\",\"Method '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:n(4103,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\",\"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:n(4104,e.DiagnosticCategory.Error,\"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\",\"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:n(4105,e.DiagnosticCategory.Error,\"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\",\"Private or protected member '{0}' cannot be accessed on a type parameter.\"),Parameter_0_of_accessor_has_or_is_using_private_name_1:n(4106,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\",\"Parameter '{0}' of accessor has or is using private name '{1}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:n(4107,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\",\"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4108,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\",\"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),Type_arguments_for_0_circularly_reference_themselves:n(4109,e.DiagnosticCategory.Error,\"Type_arguments_for_0_circularly_reference_themselves_4109\",\"Type arguments for '{0}' circularly reference themselves.\"),Tuple_type_arguments_circularly_reference_themselves:n(4110,e.DiagnosticCategory.Error,\"Tuple_type_arguments_circularly_reference_themselves_4110\",\"Tuple type arguments circularly reference themselves.\"),The_current_host_does_not_support_the_0_option:n(5001,e.DiagnosticCategory.Error,\"The_current_host_does_not_support_the_0_option_5001\",\"The current host does not support the '{0}' option.\"),Cannot_find_the_common_subdirectory_path_for_the_input_files:n(5009,e.DiagnosticCategory.Error,\"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\",\"Cannot find the common subdirectory path for the input files.\"),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:n(5010,e.DiagnosticCategory.Error,\"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\",\"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),Cannot_read_file_0_Colon_1:n(5012,e.DiagnosticCategory.Error,\"Cannot_read_file_0_Colon_1_5012\",\"Cannot read file '{0}': {1}.\"),Failed_to_parse_file_0_Colon_1:n(5014,e.DiagnosticCategory.Error,\"Failed_to_parse_file_0_Colon_1_5014\",\"Failed to parse file '{0}': {1}.\"),Unknown_compiler_option_0:n(5023,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_5023\",\"Unknown compiler option '{0}'.\"),Compiler_option_0_requires_a_value_of_type_1:n(5024,e.DiagnosticCategory.Error,\"Compiler_option_0_requires_a_value_of_type_1_5024\",\"Compiler option '{0}' requires a value of type {1}.\"),Could_not_write_file_0_Colon_1:n(5033,e.DiagnosticCategory.Error,\"Could_not_write_file_0_Colon_1_5033\",\"Could not write file '{0}': {1}.\"),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:n(5042,e.DiagnosticCategory.Error,\"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\",\"Option 'project' cannot be mixed with source files on a command line.\"),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:n(5047,e.DiagnosticCategory.Error,\"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\",\"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),Option_0_cannot_be_specified_when_option_target_is_ES3:n(5048,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_target_is_ES3_5048\",\"Option '{0}' cannot be specified when option 'target' is 'ES3'.\"),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:n(5051,e.DiagnosticCategory.Error,\"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\",\"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),Option_0_cannot_be_specified_without_specifying_option_1:n(5052,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_5052\",\"Option '{0}' cannot be specified without specifying option '{1}'.\"),Option_0_cannot_be_specified_with_option_1:n(5053,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_with_option_1_5053\",\"Option '{0}' cannot be specified with option '{1}'.\"),A_tsconfig_json_file_is_already_defined_at_Colon_0:n(5054,e.DiagnosticCategory.Error,\"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\",\"A 'tsconfig.json' file is already defined at: '{0}'.\"),Cannot_write_file_0_because_it_would_overwrite_input_file:n(5055,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\",\"Cannot write file '{0}' because it would overwrite input file.\"),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:n(5056,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\",\"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:n(5057,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\",\"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),The_specified_path_does_not_exist_Colon_0:n(5058,e.DiagnosticCategory.Error,\"The_specified_path_does_not_exist_Colon_0_5058\",\"The specified path does not exist: '{0}'.\"),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:n(5059,e.DiagnosticCategory.Error,\"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\",\"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),Option_paths_cannot_be_used_without_specifying_baseUrl_option:n(5060,e.DiagnosticCategory.Error,\"Option_paths_cannot_be_used_without_specifying_baseUrl_option_5060\",\"Option 'paths' cannot be used without specifying '--baseUrl' option.\"),Pattern_0_can_have_at_most_one_Asterisk_character:n(5061,e.DiagnosticCategory.Error,\"Pattern_0_can_have_at_most_one_Asterisk_character_5061\",\"Pattern '{0}' can have at most one '*' character.\"),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:n(5062,e.DiagnosticCategory.Error,\"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\",\"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),Substitutions_for_pattern_0_should_be_an_array:n(5063,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_should_be_an_array_5063\",\"Substitutions for pattern '{0}' should be an array.\"),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:n(5064,e.DiagnosticCategory.Error,\"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\",\"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:n(5065,e.DiagnosticCategory.Error,\"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\",\"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:n(5066,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\",\"Substitutions for pattern '{0}' shouldn't be an empty array.\"),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:n(5067,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\",\"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:n(5068,e.DiagnosticCategory.Error,\"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\",\"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:n(5069,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\",\"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:n(5070,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070\",\"Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy.\"),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:n(5071,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071\",\"Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'.\"),Unknown_build_option_0:n(5072,e.DiagnosticCategory.Error,\"Unknown_build_option_0_5072\",\"Unknown build option '{0}'.\"),Build_option_0_requires_a_value_of_type_1:n(5073,e.DiagnosticCategory.Error,\"Build_option_0_requires_a_value_of_type_1_5073\",\"Build option '{0}' requires a value of type {1}.\"),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:n(5074,e.DiagnosticCategory.Error,\"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\",\"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option `--tsBuildInfoFile` is specified.\"),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:n(5075,e.DiagnosticCategory.Error,\"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\",\"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),_0_and_1_operations_cannot_be_mixed_without_parentheses:n(5076,e.DiagnosticCategory.Error,\"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\",\"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),Generates_a_sourcemap_for_each_corresponding_d_ts_file:n(6e3,e.DiagnosticCategory.Message,\"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\",\"Generates a sourcemap for each corresponding '.d.ts' file.\"),Concatenate_and_emit_output_to_single_file:n(6001,e.DiagnosticCategory.Message,\"Concatenate_and_emit_output_to_single_file_6001\",\"Concatenate and emit output to single file.\"),Generates_corresponding_d_ts_file:n(6002,e.DiagnosticCategory.Message,\"Generates_corresponding_d_ts_file_6002\",\"Generates corresponding '.d.ts' file.\"),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:n(6003,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6003\",\"Specify the location where debugger should locate map files instead of generated locations.\"),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:n(6004,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\",\"Specify the location where debugger should locate TypeScript files instead of source locations.\"),Watch_input_files:n(6005,e.DiagnosticCategory.Message,\"Watch_input_files_6005\",\"Watch input files.\"),Redirect_output_structure_to_the_directory:n(6006,e.DiagnosticCategory.Message,\"Redirect_output_structure_to_the_directory_6006\",\"Redirect output structure to the directory.\"),Do_not_erase_const_enum_declarations_in_generated_code:n(6007,e.DiagnosticCategory.Message,\"Do_not_erase_const_enum_declarations_in_generated_code_6007\",\"Do not erase const enum declarations in generated code.\"),Do_not_emit_outputs_if_any_errors_were_reported:n(6008,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_if_any_errors_were_reported_6008\",\"Do not emit outputs if any errors were reported.\"),Do_not_emit_comments_to_output:n(6009,e.DiagnosticCategory.Message,\"Do_not_emit_comments_to_output_6009\",\"Do not emit comments to output.\"),Do_not_emit_outputs:n(6010,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_6010\",\"Do not emit outputs.\"),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:n(6011,e.DiagnosticCategory.Message,\"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\",\"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),Skip_type_checking_of_declaration_files:n(6012,e.DiagnosticCategory.Message,\"Skip_type_checking_of_declaration_files_6012\",\"Skip type checking of declaration files.\"),Do_not_resolve_the_real_path_of_symlinks:n(6013,e.DiagnosticCategory.Message,\"Do_not_resolve_the_real_path_of_symlinks_6013\",\"Do not resolve the real path of symlinks.\"),Only_emit_d_ts_declaration_files:n(6014,e.DiagnosticCategory.Message,\"Only_emit_d_ts_declaration_files_6014\",\"Only emit '.d.ts' declaration files.\"),Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT:n(6015,e.DiagnosticCategory.Message,\"Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT_6015\",\"Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'.\"),Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext:n(6016,e.DiagnosticCategory.Message,\"Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext_6016\",\"Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'.\"),Print_this_message:n(6017,e.DiagnosticCategory.Message,\"Print_this_message_6017\",\"Print this message.\"),Print_the_compiler_s_version:n(6019,e.DiagnosticCategory.Message,\"Print_the_compiler_s_version_6019\",\"Print the compiler's version.\"),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:n(6020,e.DiagnosticCategory.Message,\"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\",\"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),Syntax_Colon_0:n(6023,e.DiagnosticCategory.Message,\"Syntax_Colon_0_6023\",\"Syntax: {0}\"),options:n(6024,e.DiagnosticCategory.Message,\"options_6024\",\"options\"),file:n(6025,e.DiagnosticCategory.Message,\"file_6025\",\"file\"),Examples_Colon_0:n(6026,e.DiagnosticCategory.Message,\"Examples_Colon_0_6026\",\"Examples: {0}\"),Options_Colon:n(6027,e.DiagnosticCategory.Message,\"Options_Colon_6027\",\"Options:\"),Version_0:n(6029,e.DiagnosticCategory.Message,\"Version_0_6029\",\"Version {0}\"),Insert_command_line_options_and_files_from_a_file:n(6030,e.DiagnosticCategory.Message,\"Insert_command_line_options_and_files_from_a_file_6030\",\"Insert command line options and files from a file.\"),Starting_compilation_in_watch_mode:n(6031,e.DiagnosticCategory.Message,\"Starting_compilation_in_watch_mode_6031\",\"Starting compilation in watch mode...\"),File_change_detected_Starting_incremental_compilation:n(6032,e.DiagnosticCategory.Message,\"File_change_detected_Starting_incremental_compilation_6032\",\"File change detected. Starting incremental compilation...\"),KIND:n(6034,e.DiagnosticCategory.Message,\"KIND_6034\",\"KIND\"),FILE:n(6035,e.DiagnosticCategory.Message,\"FILE_6035\",\"FILE\"),VERSION:n(6036,e.DiagnosticCategory.Message,\"VERSION_6036\",\"VERSION\"),LOCATION:n(6037,e.DiagnosticCategory.Message,\"LOCATION_6037\",\"LOCATION\"),DIRECTORY:n(6038,e.DiagnosticCategory.Message,\"DIRECTORY_6038\",\"DIRECTORY\"),STRATEGY:n(6039,e.DiagnosticCategory.Message,\"STRATEGY_6039\",\"STRATEGY\"),FILE_OR_DIRECTORY:n(6040,e.DiagnosticCategory.Message,\"FILE_OR_DIRECTORY_6040\",\"FILE OR DIRECTORY\"),Generates_corresponding_map_file:n(6043,e.DiagnosticCategory.Message,\"Generates_corresponding_map_file_6043\",\"Generates corresponding '.map' file.\"),Compiler_option_0_expects_an_argument:n(6044,e.DiagnosticCategory.Error,\"Compiler_option_0_expects_an_argument_6044\",\"Compiler option '{0}' expects an argument.\"),Unterminated_quoted_string_in_response_file_0:n(6045,e.DiagnosticCategory.Error,\"Unterminated_quoted_string_in_response_file_0_6045\",\"Unterminated quoted string in response file '{0}'.\"),Argument_for_0_option_must_be_Colon_1:n(6046,e.DiagnosticCategory.Error,\"Argument_for_0_option_must_be_Colon_1_6046\",\"Argument for '{0}' option must be: {1}.\"),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:n(6048,e.DiagnosticCategory.Error,\"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\",\"Locale must be of the form <language> or <language>-<territory>. For example '{0}' or '{1}'.\"),Unsupported_locale_0:n(6049,e.DiagnosticCategory.Error,\"Unsupported_locale_0_6049\",\"Unsupported locale '{0}'.\"),Unable_to_open_file_0:n(6050,e.DiagnosticCategory.Error,\"Unable_to_open_file_0_6050\",\"Unable to open file '{0}'.\"),Corrupted_locale_file_0:n(6051,e.DiagnosticCategory.Error,\"Corrupted_locale_file_0_6051\",\"Corrupted locale file {0}.\"),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:n(6052,e.DiagnosticCategory.Message,\"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\",\"Raise error on expressions and declarations with an implied 'any' type.\"),File_0_not_found:n(6053,e.DiagnosticCategory.Error,\"File_0_not_found_6053\",\"File '{0}' not found.\"),File_0_has_unsupported_extension_The_only_supported_extensions_are_1:n(6054,e.DiagnosticCategory.Error,\"File_0_has_unsupported_extension_The_only_supported_extensions_are_1_6054\",\"File '{0}' has unsupported extension. The only supported extensions are {1}.\"),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:n(6055,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\",\"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:n(6056,e.DiagnosticCategory.Message,\"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\",\"Do not emit declarations for code that has an '@internal' annotation.\"),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:n(6058,e.DiagnosticCategory.Message,\"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\",\"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:n(6059,e.DiagnosticCategory.Error,\"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\",\"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:n(6060,e.DiagnosticCategory.Message,\"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\",\"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),NEWLINE:n(6061,e.DiagnosticCategory.Message,\"NEWLINE_6061\",\"NEWLINE\"),Option_0_can_only_be_specified_in_tsconfig_json_file:n(6064,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_6064\",\"Option '{0}' can only be specified in 'tsconfig.json' file.\"),Enables_experimental_support_for_ES7_decorators:n(6065,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_decorators_6065\",\"Enables experimental support for ES7 decorators.\"),Enables_experimental_support_for_emitting_type_metadata_for_decorators:n(6066,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\",\"Enables experimental support for emitting type metadata for decorators.\"),Enables_experimental_support_for_ES7_async_functions:n(6068,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_async_functions_6068\",\"Enables experimental support for ES7 async functions.\"),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:n(6069,e.DiagnosticCategory.Message,\"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069\",\"Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).\"),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:n(6070,e.DiagnosticCategory.Message,\"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\",\"Initializes a TypeScript project and creates a tsconfig.json file.\"),Successfully_created_a_tsconfig_json_file:n(6071,e.DiagnosticCategory.Message,\"Successfully_created_a_tsconfig_json_file_6071\",\"Successfully created a tsconfig.json file.\"),Suppress_excess_property_checks_for_object_literals:n(6072,e.DiagnosticCategory.Message,\"Suppress_excess_property_checks_for_object_literals_6072\",\"Suppress excess property checks for object literals.\"),Stylize_errors_and_messages_using_color_and_context_experimental:n(6073,e.DiagnosticCategory.Message,\"Stylize_errors_and_messages_using_color_and_context_experimental_6073\",\"Stylize errors and messages using color and context (experimental).\"),Do_not_report_errors_on_unused_labels:n(6074,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unused_labels_6074\",\"Do not report errors on unused labels.\"),Report_error_when_not_all_code_paths_in_function_return_a_value:n(6075,e.DiagnosticCategory.Message,\"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\",\"Report error when not all code paths in function return a value.\"),Report_errors_for_fallthrough_cases_in_switch_statement:n(6076,e.DiagnosticCategory.Message,\"Report_errors_for_fallthrough_cases_in_switch_statement_6076\",\"Report errors for fallthrough cases in switch statement.\"),Do_not_report_errors_on_unreachable_code:n(6077,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unreachable_code_6077\",\"Do not report errors on unreachable code.\"),Disallow_inconsistently_cased_references_to_the_same_file:n(6078,e.DiagnosticCategory.Message,\"Disallow_inconsistently_cased_references_to_the_same_file_6078\",\"Disallow inconsistently-cased references to the same file.\"),Specify_library_files_to_be_included_in_the_compilation:n(6079,e.DiagnosticCategory.Message,\"Specify_library_files_to_be_included_in_the_compilation_6079\",\"Specify library files to be included in the compilation.\"),Specify_JSX_code_generation_Colon_preserve_react_native_or_react:n(6080,e.DiagnosticCategory.Message,\"Specify_JSX_code_generation_Colon_preserve_react_native_or_react_6080\",\"Specify JSX code generation: 'preserve', 'react-native', or 'react'.\"),File_0_has_an_unsupported_extension_so_skipping_it:n(6081,e.DiagnosticCategory.Message,\"File_0_has_an_unsupported_extension_so_skipping_it_6081\",\"File '{0}' has an unsupported extension, so skipping it.\"),Only_amd_and_system_modules_are_supported_alongside_0:n(6082,e.DiagnosticCategory.Error,\"Only_amd_and_system_modules_are_supported_alongside_0_6082\",\"Only 'amd' and 'system' modules are supported alongside --{0}.\"),Base_directory_to_resolve_non_absolute_module_names:n(6083,e.DiagnosticCategory.Message,\"Base_directory_to_resolve_non_absolute_module_names_6083\",\"Base directory to resolve non-absolute module names.\"),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:n(6084,e.DiagnosticCategory.Message,\"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\",\"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),Enable_tracing_of_the_name_resolution_process:n(6085,e.DiagnosticCategory.Message,\"Enable_tracing_of_the_name_resolution_process_6085\",\"Enable tracing of the name resolution process.\"),Resolving_module_0_from_1:n(6086,e.DiagnosticCategory.Message,\"Resolving_module_0_from_1_6086\",\"======== Resolving module '{0}' from '{1}'. ========\"),Explicitly_specified_module_resolution_kind_Colon_0:n(6087,e.DiagnosticCategory.Message,\"Explicitly_specified_module_resolution_kind_Colon_0_6087\",\"Explicitly specified module resolution kind: '{0}'.\"),Module_resolution_kind_is_not_specified_using_0:n(6088,e.DiagnosticCategory.Message,\"Module_resolution_kind_is_not_specified_using_0_6088\",\"Module resolution kind is not specified, using '{0}'.\"),Module_name_0_was_successfully_resolved_to_1:n(6089,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_6089\",\"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),Module_name_0_was_not_resolved:n(6090,e.DiagnosticCategory.Message,\"Module_name_0_was_not_resolved_6090\",\"======== Module name '{0}' was not resolved. ========\"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:n(6091,e.DiagnosticCategory.Message,\"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\",\"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),Module_name_0_matched_pattern_1:n(6092,e.DiagnosticCategory.Message,\"Module_name_0_matched_pattern_1_6092\",\"Module name '{0}', matched pattern '{1}'.\"),Trying_substitution_0_candidate_module_location_Colon_1:n(6093,e.DiagnosticCategory.Message,\"Trying_substitution_0_candidate_module_location_Colon_1_6093\",\"Trying substitution '{0}', candidate module location: '{1}'.\"),Resolving_module_name_0_relative_to_base_url_1_2:n(6094,e.DiagnosticCategory.Message,\"Resolving_module_name_0_relative_to_base_url_1_2_6094\",\"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:n(6095,e.DiagnosticCategory.Message,\"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095\",\"Loading module as file / folder, candidate module location '{0}', target file type '{1}'.\"),File_0_does_not_exist:n(6096,e.DiagnosticCategory.Message,\"File_0_does_not_exist_6096\",\"File '{0}' does not exist.\"),File_0_exist_use_it_as_a_name_resolution_result:n(6097,e.DiagnosticCategory.Message,\"File_0_exist_use_it_as_a_name_resolution_result_6097\",\"File '{0}' exist - use it as a name resolution result.\"),Loading_module_0_from_node_modules_folder_target_file_type_1:n(6098,e.DiagnosticCategory.Message,\"Loading_module_0_from_node_modules_folder_target_file_type_1_6098\",\"Loading module '{0}' from 'node_modules' folder, target file type '{1}'.\"),Found_package_json_at_0:n(6099,e.DiagnosticCategory.Message,\"Found_package_json_at_0_6099\",\"Found 'package.json' at '{0}'.\"),package_json_does_not_have_a_0_field:n(6100,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_0_field_6100\",\"'package.json' does not have a '{0}' field.\"),package_json_has_0_field_1_that_references_2:n(6101,e.DiagnosticCategory.Message,\"package_json_has_0_field_1_that_references_2_6101\",\"'package.json' has '{0}' field '{1}' that references '{2}'.\"),Allow_javascript_files_to_be_compiled:n(6102,e.DiagnosticCategory.Message,\"Allow_javascript_files_to_be_compiled_6102\",\"Allow javascript files to be compiled.\"),Option_0_should_have_array_of_strings_as_a_value:n(6103,e.DiagnosticCategory.Error,\"Option_0_should_have_array_of_strings_as_a_value_6103\",\"Option '{0}' should have array of strings as a value.\"),Checking_if_0_is_the_longest_matching_prefix_for_1_2:n(6104,e.DiagnosticCategory.Message,\"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\",\"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),Expected_type_of_0_field_in_package_json_to_be_1_got_2:n(6105,e.DiagnosticCategory.Message,\"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\",\"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:n(6106,e.DiagnosticCategory.Message,\"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\",\"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:n(6107,e.DiagnosticCategory.Message,\"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\",\"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),Longest_matching_prefix_for_0_is_1:n(6108,e.DiagnosticCategory.Message,\"Longest_matching_prefix_for_0_is_1_6108\",\"Longest matching prefix for '{0}' is '{1}'.\"),Loading_0_from_the_root_dir_1_candidate_location_2:n(6109,e.DiagnosticCategory.Message,\"Loading_0_from_the_root_dir_1_candidate_location_2_6109\",\"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),Trying_other_entries_in_rootDirs:n(6110,e.DiagnosticCategory.Message,\"Trying_other_entries_in_rootDirs_6110\",\"Trying other entries in 'rootDirs'.\"),Module_resolution_using_rootDirs_has_failed:n(6111,e.DiagnosticCategory.Message,\"Module_resolution_using_rootDirs_has_failed_6111\",\"Module resolution using 'rootDirs' has failed.\"),Do_not_emit_use_strict_directives_in_module_output:n(6112,e.DiagnosticCategory.Message,\"Do_not_emit_use_strict_directives_in_module_output_6112\",\"Do not emit 'use strict' directives in module output.\"),Enable_strict_null_checks:n(6113,e.DiagnosticCategory.Message,\"Enable_strict_null_checks_6113\",\"Enable strict null checks.\"),Unknown_option_excludes_Did_you_mean_exclude:n(6114,e.DiagnosticCategory.Error,\"Unknown_option_excludes_Did_you_mean_exclude_6114\",\"Unknown option 'excludes'. Did you mean 'exclude'?\"),Raise_error_on_this_expressions_with_an_implied_any_type:n(6115,e.DiagnosticCategory.Message,\"Raise_error_on_this_expressions_with_an_implied_any_type_6115\",\"Raise error on 'this' expressions with an implied 'any' type.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:n(6116,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),Resolving_using_primary_search_paths:n(6117,e.DiagnosticCategory.Message,\"Resolving_using_primary_search_paths_6117\",\"Resolving using primary search paths...\"),Resolving_from_node_modules_folder:n(6118,e.DiagnosticCategory.Message,\"Resolving_from_node_modules_folder_6118\",\"Resolving from node_modules folder...\"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:n(6119,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\",\"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),Type_reference_directive_0_was_not_resolved:n(6120,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_not_resolved_6120\",\"======== Type reference directive '{0}' was not resolved. ========\"),Resolving_with_primary_search_path_0:n(6121,e.DiagnosticCategory.Message,\"Resolving_with_primary_search_path_0_6121\",\"Resolving with primary search path '{0}'.\"),Root_directory_cannot_be_determined_skipping_primary_search_paths:n(6122,e.DiagnosticCategory.Message,\"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\",\"Root directory cannot be determined, skipping primary search paths.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:n(6123,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),Type_declaration_files_to_be_included_in_compilation:n(6124,e.DiagnosticCategory.Message,\"Type_declaration_files_to_be_included_in_compilation_6124\",\"Type declaration files to be included in compilation.\"),Looking_up_in_node_modules_folder_initial_location_0:n(6125,e.DiagnosticCategory.Message,\"Looking_up_in_node_modules_folder_initial_location_0_6125\",\"Looking up in 'node_modules' folder, initial location '{0}'.\"),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:n(6126,e.DiagnosticCategory.Message,\"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\",\"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:n(6127,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\",\"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:n(6128,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\",\"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),Resolving_real_path_for_0_result_1:n(6130,e.DiagnosticCategory.Message,\"Resolving_real_path_for_0_result_1_6130\",\"Resolving real path for '{0}', result '{1}'.\"),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:n(6131,e.DiagnosticCategory.Error,\"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\",\"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),File_name_0_has_a_1_extension_stripping_it:n(6132,e.DiagnosticCategory.Message,\"File_name_0_has_a_1_extension_stripping_it_6132\",\"File name '{0}' has a '{1}' extension - stripping it.\"),_0_is_declared_but_its_value_is_never_read:n(6133,e.DiagnosticCategory.Error,\"_0_is_declared_but_its_value_is_never_read_6133\",\"'{0}' is declared but its value is never read.\",!0),Report_errors_on_unused_locals:n(6134,e.DiagnosticCategory.Message,\"Report_errors_on_unused_locals_6134\",\"Report errors on unused locals.\"),Report_errors_on_unused_parameters:n(6135,e.DiagnosticCategory.Message,\"Report_errors_on_unused_parameters_6135\",\"Report errors on unused parameters.\"),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:n(6136,e.DiagnosticCategory.Message,\"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\",\"The maximum dependency depth to search under node_modules and load JavaScript files.\"),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:n(6137,e.DiagnosticCategory.Error,\"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\",\"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),Property_0_is_declared_but_its_value_is_never_read:n(6138,e.DiagnosticCategory.Error,\"Property_0_is_declared_but_its_value_is_never_read_6138\",\"Property '{0}' is declared but its value is never read.\",!0),Import_emit_helpers_from_tslib:n(6139,e.DiagnosticCategory.Message,\"Import_emit_helpers_from_tslib_6139\",\"Import emit helpers from 'tslib'.\"),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:n(6140,e.DiagnosticCategory.Error,\"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\",\"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:n(6141,e.DiagnosticCategory.Message,\"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\",'Parse in strict mode and emit \"use strict\" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:n(6142,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\",\"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:n(6144,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\",\"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:n(6145,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145\",\"Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified.\"),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:n(6146,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\",\"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),Resolution_for_module_0_was_found_in_cache_from_location_1:n(6147,e.DiagnosticCategory.Message,\"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\",\"Resolution for module '{0}' was found in cache from location '{1}'.\"),Directory_0_does_not_exist_skipping_all_lookups_in_it:n(6148,e.DiagnosticCategory.Message,\"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\",\"Directory '{0}' does not exist, skipping all lookups in it.\"),Show_diagnostic_information:n(6149,e.DiagnosticCategory.Message,\"Show_diagnostic_information_6149\",\"Show diagnostic information.\"),Show_verbose_diagnostic_information:n(6150,e.DiagnosticCategory.Message,\"Show_verbose_diagnostic_information_6150\",\"Show verbose diagnostic information.\"),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:n(6151,e.DiagnosticCategory.Message,\"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\",\"Emit a single file with source maps instead of having a separate file.\"),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:n(6152,e.DiagnosticCategory.Message,\"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\",\"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:n(6153,e.DiagnosticCategory.Message,\"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\",\"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),Print_names_of_generated_files_part_of_the_compilation:n(6154,e.DiagnosticCategory.Message,\"Print_names_of_generated_files_part_of_the_compilation_6154\",\"Print names of generated files part of the compilation.\"),Print_names_of_files_part_of_the_compilation:n(6155,e.DiagnosticCategory.Message,\"Print_names_of_files_part_of_the_compilation_6155\",\"Print names of files part of the compilation.\"),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:n(6156,e.DiagnosticCategory.Message,\"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\",\"The locale used when displaying messages to the user (e.g. 'en-us')\"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:n(6157,e.DiagnosticCategory.Message,\"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\",\"Do not generate custom helper functions like '__extends' in compiled output.\"),Do_not_include_the_default_library_file_lib_d_ts:n(6158,e.DiagnosticCategory.Message,\"Do_not_include_the_default_library_file_lib_d_ts_6158\",\"Do not include the default library file (lib.d.ts).\"),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:n(6159,e.DiagnosticCategory.Message,\"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\",\"Do not add triple-slash references or imported modules to the list of compiled files.\"),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:n(6160,e.DiagnosticCategory.Message,\"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\",\"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),List_of_folders_to_include_type_definitions_from:n(6161,e.DiagnosticCategory.Message,\"List_of_folders_to_include_type_definitions_from_6161\",\"List of folders to include type definitions from.\"),Disable_size_limitations_on_JavaScript_projects:n(6162,e.DiagnosticCategory.Message,\"Disable_size_limitations_on_JavaScript_projects_6162\",\"Disable size limitations on JavaScript projects.\"),The_character_set_of_the_input_files:n(6163,e.DiagnosticCategory.Message,\"The_character_set_of_the_input_files_6163\",\"The character set of the input files.\"),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:n(6164,e.DiagnosticCategory.Message,\"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6164\",\"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),Do_not_truncate_error_messages:n(6165,e.DiagnosticCategory.Message,\"Do_not_truncate_error_messages_6165\",\"Do not truncate error messages.\"),Output_directory_for_generated_declaration_files:n(6166,e.DiagnosticCategory.Message,\"Output_directory_for_generated_declaration_files_6166\",\"Output directory for generated declaration files.\"),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:n(6167,e.DiagnosticCategory.Message,\"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\",\"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:n(6168,e.DiagnosticCategory.Message,\"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\",\"List of root folders whose combined content represents the structure of the project at runtime.\"),Show_all_compiler_options:n(6169,e.DiagnosticCategory.Message,\"Show_all_compiler_options_6169\",\"Show all compiler options.\"),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:n(6170,e.DiagnosticCategory.Message,\"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\",\"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),Command_line_Options:n(6171,e.DiagnosticCategory.Message,\"Command_line_Options_6171\",\"Command-line Options\"),Basic_Options:n(6172,e.DiagnosticCategory.Message,\"Basic_Options_6172\",\"Basic Options\"),Strict_Type_Checking_Options:n(6173,e.DiagnosticCategory.Message,\"Strict_Type_Checking_Options_6173\",\"Strict Type-Checking Options\"),Module_Resolution_Options:n(6174,e.DiagnosticCategory.Message,\"Module_Resolution_Options_6174\",\"Module Resolution Options\"),Source_Map_Options:n(6175,e.DiagnosticCategory.Message,\"Source_Map_Options_6175\",\"Source Map Options\"),Additional_Checks:n(6176,e.DiagnosticCategory.Message,\"Additional_Checks_6176\",\"Additional Checks\"),Experimental_Options:n(6177,e.DiagnosticCategory.Message,\"Experimental_Options_6177\",\"Experimental Options\"),Advanced_Options:n(6178,e.DiagnosticCategory.Message,\"Advanced_Options_6178\",\"Advanced Options\"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:n(6179,e.DiagnosticCategory.Message,\"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179\",\"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.\"),Enable_all_strict_type_checking_options:n(6180,e.DiagnosticCategory.Message,\"Enable_all_strict_type_checking_options_6180\",\"Enable all strict type-checking options.\"),List_of_language_service_plugins:n(6181,e.DiagnosticCategory.Message,\"List_of_language_service_plugins_6181\",\"List of language service plugins.\"),Scoped_package_detected_looking_in_0:n(6182,e.DiagnosticCategory.Message,\"Scoped_package_detected_looking_in_0_6182\",\"Scoped package detected, looking in '{0}'\"),Reusing_resolution_of_module_0_to_file_1_from_old_program:n(6183,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_to_file_1_from_old_program_6183\",\"Reusing resolution of module '{0}' to file '{1}' from old program.\"),Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program:n(6184,e.DiagnosticCategory.Message,\"Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program_6184\",\"Reusing module resolutions originating in '{0}' since resolutions are unchanged from old program.\"),Disable_strict_checking_of_generic_signatures_in_function_types:n(6185,e.DiagnosticCategory.Message,\"Disable_strict_checking_of_generic_signatures_in_function_types_6185\",\"Disable strict checking of generic signatures in function types.\"),Enable_strict_checking_of_function_types:n(6186,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_function_types_6186\",\"Enable strict checking of function types.\"),Enable_strict_checking_of_property_initialization_in_classes:n(6187,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_property_initialization_in_classes_6187\",\"Enable strict checking of property initialization in classes.\"),Numeric_separators_are_not_allowed_here:n(6188,e.DiagnosticCategory.Error,\"Numeric_separators_are_not_allowed_here_6188\",\"Numeric separators are not allowed here.\"),Multiple_consecutive_numeric_separators_are_not_permitted:n(6189,e.DiagnosticCategory.Error,\"Multiple_consecutive_numeric_separators_are_not_permitted_6189\",\"Multiple consecutive numeric separators are not permitted.\"),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:n(6191,e.DiagnosticCategory.Message,\"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\",\"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),All_imports_in_import_declaration_are_unused:n(6192,e.DiagnosticCategory.Error,\"All_imports_in_import_declaration_are_unused_6192\",\"All imports in import declaration are unused.\",!0),Found_1_error_Watching_for_file_changes:n(6193,e.DiagnosticCategory.Message,\"Found_1_error_Watching_for_file_changes_6193\",\"Found 1 error. Watching for file changes.\"),Found_0_errors_Watching_for_file_changes:n(6194,e.DiagnosticCategory.Message,\"Found_0_errors_Watching_for_file_changes_6194\",\"Found {0} errors. Watching for file changes.\"),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:n(6195,e.DiagnosticCategory.Message,\"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\",\"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),_0_is_declared_but_never_used:n(6196,e.DiagnosticCategory.Error,\"_0_is_declared_but_never_used_6196\",\"'{0}' is declared but never used.\",!0),Include_modules_imported_with_json_extension:n(6197,e.DiagnosticCategory.Message,\"Include_modules_imported_with_json_extension_6197\",\"Include modules imported with '.json' extension\"),All_destructured_elements_are_unused:n(6198,e.DiagnosticCategory.Error,\"All_destructured_elements_are_unused_6198\",\"All destructured elements are unused.\",!0),All_variables_are_unused:n(6199,e.DiagnosticCategory.Error,\"All_variables_are_unused_6199\",\"All variables are unused.\",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:n(6200,e.DiagnosticCategory.Error,\"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\",\"Definitions of the following identifiers conflict with those in another file: {0}\"),Conflicts_are_in_this_file:n(6201,e.DiagnosticCategory.Message,\"Conflicts_are_in_this_file_6201\",\"Conflicts are in this file.\"),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:n(6202,e.DiagnosticCategory.Error,\"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\",\"Project references may not form a circular graph. Cycle detected: {0}\"),_0_was_also_declared_here:n(6203,e.DiagnosticCategory.Message,\"_0_was_also_declared_here_6203\",\"'{0}' was also declared here.\"),and_here:n(6204,e.DiagnosticCategory.Message,\"and_here_6204\",\"and here.\"),All_type_parameters_are_unused:n(6205,e.DiagnosticCategory.Error,\"All_type_parameters_are_unused_6205\",\"All type parameters are unused\"),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:n(6206,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\",\"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:n(6207,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\",\"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:n(6208,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\",\"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:n(6209,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\",\"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),An_argument_for_0_was_not_provided:n(6210,e.DiagnosticCategory.Message,\"An_argument_for_0_was_not_provided_6210\",\"An argument for '{0}' was not provided.\"),An_argument_matching_this_binding_pattern_was_not_provided:n(6211,e.DiagnosticCategory.Message,\"An_argument_matching_this_binding_pattern_was_not_provided_6211\",\"An argument matching this binding pattern was not provided.\"),Did_you_mean_to_call_this_expression:n(6212,e.DiagnosticCategory.Message,\"Did_you_mean_to_call_this_expression_6212\",\"Did you mean to call this expression?\"),Did_you_mean_to_use_new_with_this_expression:n(6213,e.DiagnosticCategory.Message,\"Did_you_mean_to_use_new_with_this_expression_6213\",\"Did you mean to use 'new' with this expression?\"),Enable_strict_bind_call_and_apply_methods_on_functions:n(6214,e.DiagnosticCategory.Message,\"Enable_strict_bind_call_and_apply_methods_on_functions_6214\",\"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),Using_compiler_options_of_project_reference_redirect_0:n(6215,e.DiagnosticCategory.Message,\"Using_compiler_options_of_project_reference_redirect_0_6215\",\"Using compiler options of project reference redirect '{0}'.\"),Found_1_error:n(6216,e.DiagnosticCategory.Message,\"Found_1_error_6216\",\"Found 1 error.\"),Found_0_errors:n(6217,e.DiagnosticCategory.Message,\"Found_0_errors_6217\",\"Found {0} errors.\"),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:n(6218,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\",\"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:n(6219,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\",\"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),package_json_had_a_falsy_0_field:n(6220,e.DiagnosticCategory.Message,\"package_json_had_a_falsy_0_field_6220\",\"'package.json' had a falsy '{0}' field.\"),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:n(6221,e.DiagnosticCategory.Message,\"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\",\"Disable use of source files instead of declaration files from referenced projects.\"),Emit_class_fields_with_Define_instead_of_Set:n(6222,e.DiagnosticCategory.Message,\"Emit_class_fields_with_Define_instead_of_Set_6222\",\"Emit class fields with Define instead of Set.\"),Generates_a_CPU_profile:n(6223,e.DiagnosticCategory.Message,\"Generates_a_CPU_profile_6223\",\"Generates a CPU profile.\"),Projects_to_reference:n(6300,e.DiagnosticCategory.Message,\"Projects_to_reference_6300\",\"Projects to reference\"),Enable_project_compilation:n(6302,e.DiagnosticCategory.Message,\"Enable_project_compilation_6302\",\"Enable project compilation\"),Composite_projects_may_not_disable_declaration_emit:n(6304,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_declaration_emit_6304\",\"Composite projects may not disable declaration emit.\"),Output_file_0_has_not_been_built_from_source_file_1:n(6305,e.DiagnosticCategory.Error,\"Output_file_0_has_not_been_built_from_source_file_1_6305\",\"Output file '{0}' has not been built from source file '{1}'.\"),Referenced_project_0_must_have_setting_composite_Colon_true:n(6306,e.DiagnosticCategory.Error,\"Referenced_project_0_must_have_setting_composite_Colon_true_6306\",\"Referenced project '{0}' must have setting \\\"composite\\\": true.\"),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:n(6307,e.DiagnosticCategory.Error,\"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\",\"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:n(6308,e.DiagnosticCategory.Error,\"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308\",\"Cannot prepend project '{0}' because it does not have 'outFile' set\"),Output_file_0_from_project_1_does_not_exist:n(6309,e.DiagnosticCategory.Error,\"Output_file_0_from_project_1_does_not_exist_6309\",\"Output file '{0}' from project '{1}' does not exist\"),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:n(6350,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350\",\"Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'\"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:n(6351,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351\",\"Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'\"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:n(6352,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\",\"Project '{0}' is out of date because output file '{1}' does not exist\"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:n(6353,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\",\"Project '{0}' is out of date because its dependency '{1}' is out of date\"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:n(6354,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\",\"Project '{0}' is up to date with .d.ts files from its dependencies\"),Projects_in_this_build_Colon_0:n(6355,e.DiagnosticCategory.Message,\"Projects_in_this_build_Colon_0_6355\",\"Projects in this build: {0}\"),A_non_dry_build_would_delete_the_following_files_Colon_0:n(6356,e.DiagnosticCategory.Message,\"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\",\"A non-dry build would delete the following files: {0}\"),A_non_dry_build_would_build_project_0:n(6357,e.DiagnosticCategory.Message,\"A_non_dry_build_would_build_project_0_6357\",\"A non-dry build would build project '{0}'\"),Building_project_0:n(6358,e.DiagnosticCategory.Message,\"Building_project_0_6358\",\"Building project '{0}'...\"),Updating_output_timestamps_of_project_0:n(6359,e.DiagnosticCategory.Message,\"Updating_output_timestamps_of_project_0_6359\",\"Updating output timestamps of project '{0}'...\"),delete_this_Project_0_is_up_to_date_because_it_was_previously_built:n(6360,e.DiagnosticCategory.Message,\"delete_this_Project_0_is_up_to_date_because_it_was_previously_built_6360\",\"delete this - Project '{0}' is up to date because it was previously built\"),Project_0_is_up_to_date:n(6361,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_6361\",\"Project '{0}' is up to date\"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:n(6362,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\",\"Skipping build of project '{0}' because its dependency '{1}' has errors\"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:n(6363,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\",\"Project '{0}' can't be built because its dependency '{1}' has errors\"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:n(6364,e.DiagnosticCategory.Message,\"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\",\"Build one or more projects and their dependencies, if out of date\"),Delete_the_outputs_of_all_projects:n(6365,e.DiagnosticCategory.Message,\"Delete_the_outputs_of_all_projects_6365\",\"Delete the outputs of all projects\"),Enable_verbose_logging:n(6366,e.DiagnosticCategory.Message,\"Enable_verbose_logging_6366\",\"Enable verbose logging\"),Show_what_would_be_built_or_deleted_if_specified_with_clean:n(6367,e.DiagnosticCategory.Message,\"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\",\"Show what would be built (or deleted, if specified with '--clean')\"),Build_all_projects_including_those_that_appear_to_be_up_to_date:n(6368,e.DiagnosticCategory.Message,\"Build_all_projects_including_those_that_appear_to_be_up_to_date_6368\",\"Build all projects, including those that appear to be up to date\"),Option_build_must_be_the_first_command_line_argument:n(6369,e.DiagnosticCategory.Error,\"Option_build_must_be_the_first_command_line_argument_6369\",\"Option '--build' must be the first command line argument.\"),Options_0_and_1_cannot_be_combined:n(6370,e.DiagnosticCategory.Error,\"Options_0_and_1_cannot_be_combined_6370\",\"Options '{0}' and '{1}' cannot be combined.\"),Updating_unchanged_output_timestamps_of_project_0:n(6371,e.DiagnosticCategory.Message,\"Updating_unchanged_output_timestamps_of_project_0_6371\",\"Updating unchanged output timestamps of project '{0}'...\"),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:n(6372,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372\",\"Project '{0}' is out of date because output of its dependency '{1}' has changed\"),Updating_output_of_project_0:n(6373,e.DiagnosticCategory.Message,\"Updating_output_of_project_0_6373\",\"Updating output of project '{0}'...\"),A_non_dry_build_would_update_timestamps_for_output_of_project_0:n(6374,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\",\"A non-dry build would update timestamps for output of project '{0}'\"),A_non_dry_build_would_update_output_of_project_0:n(6375,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_output_of_project_0_6375\",\"A non-dry build would update output of project '{0}'\"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:n(6376,e.DiagnosticCategory.Message,\"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376\",\"Cannot update output of project '{0}' because there was error reading file '{1}'\"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:n(6377,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\",\"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),Enable_incremental_compilation:n(6378,e.DiagnosticCategory.Message,\"Enable_incremental_compilation_6378\",\"Enable incremental compilation\"),Composite_projects_may_not_disable_incremental_compilation:n(6379,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_incremental_compilation_6379\",\"Composite projects may not disable incremental compilation.\"),Specify_file_to_store_incremental_compilation_information:n(6380,e.DiagnosticCategory.Message,\"Specify_file_to_store_incremental_compilation_information_6380\",\"Specify file to store incremental compilation information\"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:n(6381,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\",\"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:n(6382,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\",\"Skipping build of project '{0}' because its dependency '{1}' was not built\"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:n(6383,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\",\"Project '{0}' can't be built because its dependency '{1}' was not built\"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:n(6500,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\",\"The expected type comes from property '{0}' which is declared here on type '{1}'\"),The_expected_type_comes_from_this_index_signature:n(6501,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_this_index_signature_6501\",\"The expected type comes from this index signature.\"),The_expected_type_comes_from_the_return_type_of_this_signature:n(6502,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_the_return_type_of_this_signature_6502\",\"The expected type comes from the return type of this signature.\"),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:n(6503,e.DiagnosticCategory.Message,\"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\",\"Print names of files that are part of the compilation and then stop processing.\"),Variable_0_implicitly_has_an_1_type:n(7005,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_an_1_type_7005\",\"Variable '{0}' implicitly has an '{1}' type.\"),Parameter_0_implicitly_has_an_1_type:n(7006,e.DiagnosticCategory.Error,\"Parameter_0_implicitly_has_an_1_type_7006\",\"Parameter '{0}' implicitly has an '{1}' type.\"),Member_0_implicitly_has_an_1_type:n(7008,e.DiagnosticCategory.Error,\"Member_0_implicitly_has_an_1_type_7008\",\"Member '{0}' implicitly has an '{1}' type.\"),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:n(7009,e.DiagnosticCategory.Error,\"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\",\"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:n(7010,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:n(7011,e.DiagnosticCategory.Error,\"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\",\"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:n(7013,e.DiagnosticCategory.Error,\"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\",\"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:n(7014,e.DiagnosticCategory.Error,\"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\",\"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:n(7015,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\",\"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:n(7016,e.DiagnosticCategory.Error,\"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\",\"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:n(7017,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\",\"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),Object_literal_s_property_0_implicitly_has_an_1_type:n(7018,e.DiagnosticCategory.Error,\"Object_literal_s_property_0_implicitly_has_an_1_type_7018\",\"Object literal's property '{0}' implicitly has an '{1}' type.\"),Rest_parameter_0_implicitly_has_an_any_type:n(7019,e.DiagnosticCategory.Error,\"Rest_parameter_0_implicitly_has_an_any_type_7019\",\"Rest parameter '{0}' implicitly has an 'any[]' type.\"),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:n(7020,e.DiagnosticCategory.Error,\"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\",\"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:n(7022,e.DiagnosticCategory.Error,\"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\",\"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:n(7023,e.DiagnosticCategory.Error,\"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\",\"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:n(7024,e.DiagnosticCategory.Error,\"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\",\"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:n(7025,e.DiagnosticCategory.Error,\"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025\",\"Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation.\"),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:n(7026,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\",\"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),Unreachable_code_detected:n(7027,e.DiagnosticCategory.Error,\"Unreachable_code_detected_7027\",\"Unreachable code detected.\",!0),Unused_label:n(7028,e.DiagnosticCategory.Error,\"Unused_label_7028\",\"Unused label.\",!0),Fallthrough_case_in_switch:n(7029,e.DiagnosticCategory.Error,\"Fallthrough_case_in_switch_7029\",\"Fallthrough case in switch.\"),Not_all_code_paths_return_a_value:n(7030,e.DiagnosticCategory.Error,\"Not_all_code_paths_return_a_value_7030\",\"Not all code paths return a value.\"),Binding_element_0_implicitly_has_an_1_type:n(7031,e.DiagnosticCategory.Error,\"Binding_element_0_implicitly_has_an_1_type_7031\",\"Binding element '{0}' implicitly has an '{1}' type.\"),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:n(7032,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\",\"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:n(7033,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\",\"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:n(7034,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\",\"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:n(7035,e.DiagnosticCategory.Error,\"Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_mod_7035\",\"Try `npm install @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:n(7036,e.DiagnosticCategory.Error,\"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\",\"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:n(7037,e.DiagnosticCategory.Message,\"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\",\"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:n(7038,e.DiagnosticCategory.Message,\"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\",\"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),Mapped_object_type_implicitly_has_an_any_template_type:n(7039,e.DiagnosticCategory.Error,\"Mapped_object_type_implicitly_has_an_any_template_type_7039\",\"Mapped object type implicitly has an 'any' template type.\"),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:n(7040,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\",\"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}`\"),The_containing_arrow_function_captures_the_global_value_of_this:n(7041,e.DiagnosticCategory.Error,\"The_containing_arrow_function_captures_the_global_value_of_this_7041\",\"The containing arrow function captures the global value of 'this'.\"),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:n(7042,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\",\"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7043,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\",\"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7044,e.DiagnosticCategory.Suggestion,\"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\",\"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7045,e.DiagnosticCategory.Suggestion,\"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\",\"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:n(7046,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\",\"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:n(7047,e.DiagnosticCategory.Suggestion,\"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\",\"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:n(7048,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\",\"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:n(7049,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\",\"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:n(7050,e.DiagnosticCategory.Suggestion,\"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\",\"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:n(7051,e.DiagnosticCategory.Error,\"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\",\"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:n(7052,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\",\"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}' ?\"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:n(7053,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\",\"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:n(7054,e.DiagnosticCategory.Error,\"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\",\"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:n(7055,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),You_cannot_rename_this_element:n(8e3,e.DiagnosticCategory.Error,\"You_cannot_rename_this_element_8000\",\"You cannot rename this element.\"),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:n(8001,e.DiagnosticCategory.Error,\"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\",\"You cannot rename elements that are defined in the standard TypeScript library.\"),import_can_only_be_used_in_a_ts_file:n(8002,e.DiagnosticCategory.Error,\"import_can_only_be_used_in_a_ts_file_8002\",\"'import ... =' can only be used in a .ts file.\"),export_can_only_be_used_in_a_ts_file:n(8003,e.DiagnosticCategory.Error,\"export_can_only_be_used_in_a_ts_file_8003\",\"'export=' can only be used in a .ts file.\"),type_parameter_declarations_can_only_be_used_in_a_ts_file:n(8004,e.DiagnosticCategory.Error,\"type_parameter_declarations_can_only_be_used_in_a_ts_file_8004\",\"'type parameter declarations' can only be used in a .ts file.\"),implements_clauses_can_only_be_used_in_a_ts_file:n(8005,e.DiagnosticCategory.Error,\"implements_clauses_can_only_be_used_in_a_ts_file_8005\",\"'implements clauses' can only be used in a .ts file.\"),interface_declarations_can_only_be_used_in_a_ts_file:n(8006,e.DiagnosticCategory.Error,\"interface_declarations_can_only_be_used_in_a_ts_file_8006\",\"'interface declarations' can only be used in a .ts file.\"),module_declarations_can_only_be_used_in_a_ts_file:n(8007,e.DiagnosticCategory.Error,\"module_declarations_can_only_be_used_in_a_ts_file_8007\",\"'module declarations' can only be used in a .ts file.\"),type_aliases_can_only_be_used_in_a_ts_file:n(8008,e.DiagnosticCategory.Error,\"type_aliases_can_only_be_used_in_a_ts_file_8008\",\"'type aliases' can only be used in a .ts file.\"),_0_can_only_be_used_in_a_ts_file:n(8009,e.DiagnosticCategory.Error,\"_0_can_only_be_used_in_a_ts_file_8009\",\"'{0}' can only be used in a .ts file.\"),types_can_only_be_used_in_a_ts_file:n(8010,e.DiagnosticCategory.Error,\"types_can_only_be_used_in_a_ts_file_8010\",\"'types' can only be used in a .ts file.\"),type_arguments_can_only_be_used_in_a_ts_file:n(8011,e.DiagnosticCategory.Error,\"type_arguments_can_only_be_used_in_a_ts_file_8011\",\"'type arguments' can only be used in a .ts file.\"),parameter_modifiers_can_only_be_used_in_a_ts_file:n(8012,e.DiagnosticCategory.Error,\"parameter_modifiers_can_only_be_used_in_a_ts_file_8012\",\"'parameter modifiers' can only be used in a .ts file.\"),non_null_assertions_can_only_be_used_in_a_ts_file:n(8013,e.DiagnosticCategory.Error,\"non_null_assertions_can_only_be_used_in_a_ts_file_8013\",\"'non-null assertions' can only be used in a .ts file.\"),enum_declarations_can_only_be_used_in_a_ts_file:n(8015,e.DiagnosticCategory.Error,\"enum_declarations_can_only_be_used_in_a_ts_file_8015\",\"'enum declarations' can only be used in a .ts file.\"),type_assertion_expressions_can_only_be_used_in_a_ts_file:n(8016,e.DiagnosticCategory.Error,\"type_assertion_expressions_can_only_be_used_in_a_ts_file_8016\",\"'type assertion expressions' can only be used in a .ts file.\"),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:n(8017,e.DiagnosticCategory.Error,\"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017\",\"Octal literal types must use ES2015 syntax. Use the syntax '{0}'.\"),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:n(8018,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018\",\"Octal literals are not allowed in enums members initializer. Use the syntax '{0}'.\"),Report_errors_in_js_files:n(8019,e.DiagnosticCategory.Message,\"Report_errors_in_js_files_8019\",\"Report errors in .js files.\"),JSDoc_types_can_only_be_used_inside_documentation_comments:n(8020,e.DiagnosticCategory.Error,\"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\",\"JSDoc types can only be used inside documentation comments.\"),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:n(8021,e.DiagnosticCategory.Error,\"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\",\"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),JSDoc_0_is_not_attached_to_a_class:n(8022,e.DiagnosticCategory.Error,\"JSDoc_0_is_not_attached_to_a_class_8022\",\"JSDoc '@{0}' is not attached to a class.\"),JSDoc_0_1_does_not_match_the_extends_2_clause:n(8023,e.DiagnosticCategory.Error,\"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\",\"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:n(8024,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:n(8025,e.DiagnosticCategory.Error,\"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\",\"Class declarations cannot have more than one `@augments` or `@extends` tag.\"),Expected_0_type_arguments_provide_these_with_an_extends_tag:n(8026,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\",\"Expected {0} type arguments; provide these with an '@extends' tag.\"),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:n(8027,e.DiagnosticCategory.Error,\"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\",\"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:n(8028,e.DiagnosticCategory.Error,\"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\",\"JSDoc '...' may only appear in the last parameter of a signature.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:n(8029,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),The_type_of_a_function_declaration_must_match_the_function_s_signature:n(8030,e.DiagnosticCategory.Error,\"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\",\"The type of a function declaration must match the function's signature.\"),You_cannot_rename_a_module_via_a_global_import:n(8031,e.DiagnosticCategory.Error,\"You_cannot_rename_a_module_via_a_global_import_8031\",\"You cannot rename a module via a global import.\"),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:n(8032,e.DiagnosticCategory.Error,\"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\",\"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clause:n(9002,e.DiagnosticCategory.Error,\"Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_clas_9002\",\"Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clause.\"),class_expressions_are_not_currently_supported:n(9003,e.DiagnosticCategory.Error,\"class_expressions_are_not_currently_supported_9003\",\"'class' expressions are not currently supported.\"),Language_service_is_disabled:n(9004,e.DiagnosticCategory.Error,\"Language_service_is_disabled_9004\",\"Language service is disabled.\"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:n(9005,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\",\"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:n(9006,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\",\"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),JSX_attributes_must_only_be_assigned_a_non_empty_expression:n(17e3,e.DiagnosticCategory.Error,\"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\",\"JSX attributes must only be assigned a non-empty 'expression'.\"),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:n(17001,e.DiagnosticCategory.Error,\"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\",\"JSX elements cannot have multiple attributes with the same name.\"),Expected_corresponding_JSX_closing_tag_for_0:n(17002,e.DiagnosticCategory.Error,\"Expected_corresponding_JSX_closing_tag_for_0_17002\",\"Expected corresponding JSX closing tag for '{0}'.\"),JSX_attribute_expected:n(17003,e.DiagnosticCategory.Error,\"JSX_attribute_expected_17003\",\"JSX attribute expected.\"),Cannot_use_JSX_unless_the_jsx_flag_is_provided:n(17004,e.DiagnosticCategory.Error,\"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\",\"Cannot use JSX unless the '--jsx' flag is provided.\"),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:n(17005,e.DiagnosticCategory.Error,\"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\",\"A constructor cannot contain a 'super' call when its class extends 'null'.\"),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:n(17006,e.DiagnosticCategory.Error,\"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\",\"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:n(17007,e.DiagnosticCategory.Error,\"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\",\"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),JSX_element_0_has_no_corresponding_closing_tag:n(17008,e.DiagnosticCategory.Error,\"JSX_element_0_has_no_corresponding_closing_tag_17008\",\"JSX element '{0}' has no corresponding closing tag.\"),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:n(17009,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\",\"'super' must be called before accessing 'this' in the constructor of a derived class.\"),Unknown_type_acquisition_option_0:n(17010,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_17010\",\"Unknown type acquisition option '{0}'.\"),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:n(17011,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\",\"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:n(17012,e.DiagnosticCategory.Error,\"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\",\"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:n(17013,e.DiagnosticCategory.Error,\"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\",\"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),JSX_fragment_has_no_corresponding_closing_tag:n(17014,e.DiagnosticCategory.Error,\"JSX_fragment_has_no_corresponding_closing_tag_17014\",\"JSX fragment has no corresponding closing tag.\"),Expected_corresponding_closing_tag_for_JSX_fragment:n(17015,e.DiagnosticCategory.Error,\"Expected_corresponding_closing_tag_for_JSX_fragment_17015\",\"Expected corresponding closing tag for JSX fragment.\"),JSX_fragment_is_not_supported_when_using_jsxFactory:n(17016,e.DiagnosticCategory.Error,\"JSX_fragment_is_not_supported_when_using_jsxFactory_17016\",\"JSX fragment is not supported when using --jsxFactory\"),JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma:n(17017,e.DiagnosticCategory.Error,\"JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma_17017\",\"JSX fragment is not supported when using an inline JSX factory pragma\"),Circularity_detected_while_resolving_configuration_Colon_0:n(18e3,e.DiagnosticCategory.Error,\"Circularity_detected_while_resolving_configuration_Colon_0_18000\",\"Circularity detected while resolving configuration: {0}\"),A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not:n(18001,e.DiagnosticCategory.Error,\"A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not_18001\",\"A path in an 'extends' option must be relative or rooted, but '{0}' is not.\"),The_files_list_in_config_file_0_is_empty:n(18002,e.DiagnosticCategory.Error,\"The_files_list_in_config_file_0_is_empty_18002\",\"The 'files' list in config file '{0}' is empty.\"),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:n(18003,e.DiagnosticCategory.Error,\"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\",\"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module:n(80001,e.DiagnosticCategory.Suggestion,\"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module_80001\",\"File is a CommonJS module; it may be converted to an ES6 module.\"),This_constructor_function_may_be_converted_to_a_class_declaration:n(80002,e.DiagnosticCategory.Suggestion,\"This_constructor_function_may_be_converted_to_a_class_declaration_80002\",\"This constructor function may be converted to a class declaration.\"),Import_may_be_converted_to_a_default_import:n(80003,e.DiagnosticCategory.Suggestion,\"Import_may_be_converted_to_a_default_import_80003\",\"Import may be converted to a default import.\"),JSDoc_types_may_be_moved_to_TypeScript_types:n(80004,e.DiagnosticCategory.Suggestion,\"JSDoc_types_may_be_moved_to_TypeScript_types_80004\",\"JSDoc types may be moved to TypeScript types.\"),require_call_may_be_converted_to_an_import:n(80005,e.DiagnosticCategory.Suggestion,\"require_call_may_be_converted_to_an_import_80005\",\"'require' call may be converted to an import.\"),This_may_be_converted_to_an_async_function:n(80006,e.DiagnosticCategory.Suggestion,\"This_may_be_converted_to_an_async_function_80006\",\"This may be converted to an async function.\"),await_has_no_effect_on_the_type_of_this_expression:n(80007,e.DiagnosticCategory.Suggestion,\"await_has_no_effect_on_the_type_of_this_expression_80007\",\"'await' has no effect on the type of this expression.\"),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:n(80008,e.DiagnosticCategory.Suggestion,\"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\",\"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),Add_missing_super_call:n(90001,e.DiagnosticCategory.Message,\"Add_missing_super_call_90001\",\"Add missing 'super()' call\"),Make_super_call_the_first_statement_in_the_constructor:n(90002,e.DiagnosticCategory.Message,\"Make_super_call_the_first_statement_in_the_constructor_90002\",\"Make 'super()' call the first statement in the constructor\"),Change_extends_to_implements:n(90003,e.DiagnosticCategory.Message,\"Change_extends_to_implements_90003\",\"Change 'extends' to 'implements'\"),Remove_declaration_for_Colon_0:n(90004,e.DiagnosticCategory.Message,\"Remove_declaration_for_Colon_0_90004\",\"Remove declaration for: '{0}'\"),Remove_import_from_0:n(90005,e.DiagnosticCategory.Message,\"Remove_import_from_0_90005\",\"Remove import from '{0}'\"),Implement_interface_0:n(90006,e.DiagnosticCategory.Message,\"Implement_interface_0_90006\",\"Implement interface '{0}'\"),Implement_inherited_abstract_class:n(90007,e.DiagnosticCategory.Message,\"Implement_inherited_abstract_class_90007\",\"Implement inherited abstract class\"),Add_0_to_unresolved_variable:n(90008,e.DiagnosticCategory.Message,\"Add_0_to_unresolved_variable_90008\",\"Add '{0}.' to unresolved variable\"),Remove_destructuring:n(90009,e.DiagnosticCategory.Message,\"Remove_destructuring_90009\",\"Remove destructuring\"),Remove_variable_statement:n(90010,e.DiagnosticCategory.Message,\"Remove_variable_statement_90010\",\"Remove variable statement\"),Remove_template_tag:n(90011,e.DiagnosticCategory.Message,\"Remove_template_tag_90011\",\"Remove template tag\"),Remove_type_parameters:n(90012,e.DiagnosticCategory.Message,\"Remove_type_parameters_90012\",\"Remove type parameters\"),Import_0_from_module_1:n(90013,e.DiagnosticCategory.Message,\"Import_0_from_module_1_90013\",\"Import '{0}' from module \\\"{1}\\\"\"),Change_0_to_1:n(90014,e.DiagnosticCategory.Message,\"Change_0_to_1_90014\",\"Change '{0}' to '{1}'\"),Add_0_to_existing_import_declaration_from_1:n(90015,e.DiagnosticCategory.Message,\"Add_0_to_existing_import_declaration_from_1_90015\",\"Add '{0}' to existing import declaration from \\\"{1}\\\"\"),Declare_property_0:n(90016,e.DiagnosticCategory.Message,\"Declare_property_0_90016\",\"Declare property '{0}'\"),Add_index_signature_for_property_0:n(90017,e.DiagnosticCategory.Message,\"Add_index_signature_for_property_0_90017\",\"Add index signature for property '{0}'\"),Disable_checking_for_this_file:n(90018,e.DiagnosticCategory.Message,\"Disable_checking_for_this_file_90018\",\"Disable checking for this file\"),Ignore_this_error_message:n(90019,e.DiagnosticCategory.Message,\"Ignore_this_error_message_90019\",\"Ignore this error message\"),Initialize_property_0_in_the_constructor:n(90020,e.DiagnosticCategory.Message,\"Initialize_property_0_in_the_constructor_90020\",\"Initialize property '{0}' in the constructor\"),Initialize_static_property_0:n(90021,e.DiagnosticCategory.Message,\"Initialize_static_property_0_90021\",\"Initialize static property '{0}'\"),Change_spelling_to_0:n(90022,e.DiagnosticCategory.Message,\"Change_spelling_to_0_90022\",\"Change spelling to '{0}'\"),Declare_method_0:n(90023,e.DiagnosticCategory.Message,\"Declare_method_0_90023\",\"Declare method '{0}'\"),Declare_static_method_0:n(90024,e.DiagnosticCategory.Message,\"Declare_static_method_0_90024\",\"Declare static method '{0}'\"),Prefix_0_with_an_underscore:n(90025,e.DiagnosticCategory.Message,\"Prefix_0_with_an_underscore_90025\",\"Prefix '{0}' with an underscore\"),Rewrite_as_the_indexed_access_type_0:n(90026,e.DiagnosticCategory.Message,\"Rewrite_as_the_indexed_access_type_0_90026\",\"Rewrite as the indexed access type '{0}'\"),Declare_static_property_0:n(90027,e.DiagnosticCategory.Message,\"Declare_static_property_0_90027\",\"Declare static property '{0}'\"),Call_decorator_expression:n(90028,e.DiagnosticCategory.Message,\"Call_decorator_expression_90028\",\"Call decorator expression\"),Add_async_modifier_to_containing_function:n(90029,e.DiagnosticCategory.Message,\"Add_async_modifier_to_containing_function_90029\",\"Add async modifier to containing function\"),Replace_infer_0_with_unknown:n(90030,e.DiagnosticCategory.Message,\"Replace_infer_0_with_unknown_90030\",\"Replace 'infer {0}' with 'unknown'\"),Replace_all_unused_infer_with_unknown:n(90031,e.DiagnosticCategory.Message,\"Replace_all_unused_infer_with_unknown_90031\",\"Replace all unused 'infer' with 'unknown'\"),Import_default_0_from_module_1:n(90032,e.DiagnosticCategory.Message,\"Import_default_0_from_module_1_90032\",\"Import default '{0}' from module \\\"{1}\\\"\"),Add_default_import_0_to_existing_import_declaration_from_1:n(90033,e.DiagnosticCategory.Message,\"Add_default_import_0_to_existing_import_declaration_from_1_90033\",\"Add default import '{0}' to existing import declaration from \\\"{1}\\\"\"),Add_parameter_name:n(90034,e.DiagnosticCategory.Message,\"Add_parameter_name_90034\",\"Add parameter name\"),Convert_function_to_an_ES2015_class:n(95001,e.DiagnosticCategory.Message,\"Convert_function_to_an_ES2015_class_95001\",\"Convert function to an ES2015 class\"),Convert_function_0_to_class:n(95002,e.DiagnosticCategory.Message,\"Convert_function_0_to_class_95002\",\"Convert function '{0}' to class\"),Extract_to_0_in_1:n(95004,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_95004\",\"Extract to {0} in {1}\"),Extract_function:n(95005,e.DiagnosticCategory.Message,\"Extract_function_95005\",\"Extract function\"),Extract_constant:n(95006,e.DiagnosticCategory.Message,\"Extract_constant_95006\",\"Extract constant\"),Extract_to_0_in_enclosing_scope:n(95007,e.DiagnosticCategory.Message,\"Extract_to_0_in_enclosing_scope_95007\",\"Extract to {0} in enclosing scope\"),Extract_to_0_in_1_scope:n(95008,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_scope_95008\",\"Extract to {0} in {1} scope\"),Annotate_with_type_from_JSDoc:n(95009,e.DiagnosticCategory.Message,\"Annotate_with_type_from_JSDoc_95009\",\"Annotate with type from JSDoc\"),Annotate_with_types_from_JSDoc:n(95010,e.DiagnosticCategory.Message,\"Annotate_with_types_from_JSDoc_95010\",\"Annotate with types from JSDoc\"),Infer_type_of_0_from_usage:n(95011,e.DiagnosticCategory.Message,\"Infer_type_of_0_from_usage_95011\",\"Infer type of '{0}' from usage\"),Infer_parameter_types_from_usage:n(95012,e.DiagnosticCategory.Message,\"Infer_parameter_types_from_usage_95012\",\"Infer parameter types from usage\"),Convert_to_default_import:n(95013,e.DiagnosticCategory.Message,\"Convert_to_default_import_95013\",\"Convert to default import\"),Install_0:n(95014,e.DiagnosticCategory.Message,\"Install_0_95014\",\"Install '{0}'\"),Replace_import_with_0:n(95015,e.DiagnosticCategory.Message,\"Replace_import_with_0_95015\",\"Replace import with '{0}'.\"),Use_synthetic_default_member:n(95016,e.DiagnosticCategory.Message,\"Use_synthetic_default_member_95016\",\"Use synthetic 'default' member.\"),Convert_to_ES6_module:n(95017,e.DiagnosticCategory.Message,\"Convert_to_ES6_module_95017\",\"Convert to ES6 module\"),Add_undefined_type_to_property_0:n(95018,e.DiagnosticCategory.Message,\"Add_undefined_type_to_property_0_95018\",\"Add 'undefined' type to property '{0}'\"),Add_initializer_to_property_0:n(95019,e.DiagnosticCategory.Message,\"Add_initializer_to_property_0_95019\",\"Add initializer to property '{0}'\"),Add_definite_assignment_assertion_to_property_0:n(95020,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertion_to_property_0_95020\",\"Add definite assignment assertion to property '{0}'\"),Add_all_missing_members:n(95022,e.DiagnosticCategory.Message,\"Add_all_missing_members_95022\",\"Add all missing members\"),Infer_all_types_from_usage:n(95023,e.DiagnosticCategory.Message,\"Infer_all_types_from_usage_95023\",\"Infer all types from usage\"),Delete_all_unused_declarations:n(95024,e.DiagnosticCategory.Message,\"Delete_all_unused_declarations_95024\",\"Delete all unused declarations\"),Prefix_all_unused_declarations_with_where_possible:n(95025,e.DiagnosticCategory.Message,\"Prefix_all_unused_declarations_with_where_possible_95025\",\"Prefix all unused declarations with '_' where possible\"),Fix_all_detected_spelling_errors:n(95026,e.DiagnosticCategory.Message,\"Fix_all_detected_spelling_errors_95026\",\"Fix all detected spelling errors\"),Add_initializers_to_all_uninitialized_properties:n(95027,e.DiagnosticCategory.Message,\"Add_initializers_to_all_uninitialized_properties_95027\",\"Add initializers to all uninitialized properties\"),Add_definite_assignment_assertions_to_all_uninitialized_properties:n(95028,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\",\"Add definite assignment assertions to all uninitialized properties\"),Add_undefined_type_to_all_uninitialized_properties:n(95029,e.DiagnosticCategory.Message,\"Add_undefined_type_to_all_uninitialized_properties_95029\",\"Add undefined type to all uninitialized properties\"),Change_all_jsdoc_style_types_to_TypeScript:n(95030,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_95030\",\"Change all jsdoc-style types to TypeScript\"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:n(95031,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\",\"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),Implement_all_unimplemented_interfaces:n(95032,e.DiagnosticCategory.Message,\"Implement_all_unimplemented_interfaces_95032\",\"Implement all unimplemented interfaces\"),Install_all_missing_types_packages:n(95033,e.DiagnosticCategory.Message,\"Install_all_missing_types_packages_95033\",\"Install all missing types packages\"),Rewrite_all_as_indexed_access_types:n(95034,e.DiagnosticCategory.Message,\"Rewrite_all_as_indexed_access_types_95034\",\"Rewrite all as indexed access types\"),Convert_all_to_default_imports:n(95035,e.DiagnosticCategory.Message,\"Convert_all_to_default_imports_95035\",\"Convert all to default imports\"),Make_all_super_calls_the_first_statement_in_their_constructor:n(95036,e.DiagnosticCategory.Message,\"Make_all_super_calls_the_first_statement_in_their_constructor_95036\",\"Make all 'super()' calls the first statement in their constructor\"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:n(95037,e.DiagnosticCategory.Message,\"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\",\"Add qualifier to all unresolved variables matching a member name\"),Change_all_extended_interfaces_to_implements:n(95038,e.DiagnosticCategory.Message,\"Change_all_extended_interfaces_to_implements_95038\",\"Change all extended interfaces to 'implements'\"),Add_all_missing_super_calls:n(95039,e.DiagnosticCategory.Message,\"Add_all_missing_super_calls_95039\",\"Add all missing super calls\"),Implement_all_inherited_abstract_classes:n(95040,e.DiagnosticCategory.Message,\"Implement_all_inherited_abstract_classes_95040\",\"Implement all inherited abstract classes\"),Add_all_missing_async_modifiers:n(95041,e.DiagnosticCategory.Message,\"Add_all_missing_async_modifiers_95041\",\"Add all missing 'async' modifiers\"),Add_ts_ignore_to_all_error_messages:n(95042,e.DiagnosticCategory.Message,\"Add_ts_ignore_to_all_error_messages_95042\",\"Add '@ts-ignore' to all error messages\"),Annotate_everything_with_types_from_JSDoc:n(95043,e.DiagnosticCategory.Message,\"Annotate_everything_with_types_from_JSDoc_95043\",\"Annotate everything with types from JSDoc\"),Add_to_all_uncalled_decorators:n(95044,e.DiagnosticCategory.Message,\"Add_to_all_uncalled_decorators_95044\",\"Add '()' to all uncalled decorators\"),Convert_all_constructor_functions_to_classes:n(95045,e.DiagnosticCategory.Message,\"Convert_all_constructor_functions_to_classes_95045\",\"Convert all constructor functions to classes\"),Generate_get_and_set_accessors:n(95046,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_95046\",\"Generate 'get' and 'set' accessors\"),Convert_require_to_import:n(95047,e.DiagnosticCategory.Message,\"Convert_require_to_import_95047\",\"Convert 'require' to 'import'\"),Convert_all_require_to_import:n(95048,e.DiagnosticCategory.Message,\"Convert_all_require_to_import_95048\",\"Convert all 'require' to 'import'\"),Move_to_a_new_file:n(95049,e.DiagnosticCategory.Message,\"Move_to_a_new_file_95049\",\"Move to a new file\"),Remove_unreachable_code:n(95050,e.DiagnosticCategory.Message,\"Remove_unreachable_code_95050\",\"Remove unreachable code\"),Remove_all_unreachable_code:n(95051,e.DiagnosticCategory.Message,\"Remove_all_unreachable_code_95051\",\"Remove all unreachable code\"),Add_missing_typeof:n(95052,e.DiagnosticCategory.Message,\"Add_missing_typeof_95052\",\"Add missing 'typeof'\"),Remove_unused_label:n(95053,e.DiagnosticCategory.Message,\"Remove_unused_label_95053\",\"Remove unused label\"),Remove_all_unused_labels:n(95054,e.DiagnosticCategory.Message,\"Remove_all_unused_labels_95054\",\"Remove all unused labels\"),Convert_0_to_mapped_object_type:n(95055,e.DiagnosticCategory.Message,\"Convert_0_to_mapped_object_type_95055\",\"Convert '{0}' to mapped object type\"),Convert_namespace_import_to_named_imports:n(95056,e.DiagnosticCategory.Message,\"Convert_namespace_import_to_named_imports_95056\",\"Convert namespace import to named imports\"),Convert_named_imports_to_namespace_import:n(95057,e.DiagnosticCategory.Message,\"Convert_named_imports_to_namespace_import_95057\",\"Convert named imports to namespace import\"),Add_or_remove_braces_in_an_arrow_function:n(95058,e.DiagnosticCategory.Message,\"Add_or_remove_braces_in_an_arrow_function_95058\",\"Add or remove braces in an arrow function\"),Add_braces_to_arrow_function:n(95059,e.DiagnosticCategory.Message,\"Add_braces_to_arrow_function_95059\",\"Add braces to arrow function\"),Remove_braces_from_arrow_function:n(95060,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_95060\",\"Remove braces from arrow function\"),Convert_default_export_to_named_export:n(95061,e.DiagnosticCategory.Message,\"Convert_default_export_to_named_export_95061\",\"Convert default export to named export\"),Convert_named_export_to_default_export:n(95062,e.DiagnosticCategory.Message,\"Convert_named_export_to_default_export_95062\",\"Convert named export to default export\"),Add_missing_enum_member_0:n(95063,e.DiagnosticCategory.Message,\"Add_missing_enum_member_0_95063\",\"Add missing enum member '{0}'\"),Add_all_missing_imports:n(95064,e.DiagnosticCategory.Message,\"Add_all_missing_imports_95064\",\"Add all missing imports\"),Convert_to_async_function:n(95065,e.DiagnosticCategory.Message,\"Convert_to_async_function_95065\",\"Convert to async function\"),Convert_all_to_async_functions:n(95066,e.DiagnosticCategory.Message,\"Convert_all_to_async_functions_95066\",\"Convert all to async functions\"),Add_unknown_conversion_for_non_overlapping_types:n(95069,e.DiagnosticCategory.Message,\"Add_unknown_conversion_for_non_overlapping_types_95069\",\"Add 'unknown' conversion for non-overlapping types\"),Add_unknown_to_all_conversions_of_non_overlapping_types:n(95070,e.DiagnosticCategory.Message,\"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\",\"Add 'unknown' to all conversions of non-overlapping types\"),Add_missing_new_operator_to_call:n(95071,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_call_95071\",\"Add missing 'new' operator to call\"),Add_missing_new_operator_to_all_calls:n(95072,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_all_calls_95072\",\"Add missing 'new' operator to all calls\"),Add_names_to_all_parameters_without_names:n(95073,e.DiagnosticCategory.Message,\"Add_names_to_all_parameters_without_names_95073\",\"Add names to all parameters without names\"),Enable_the_experimentalDecorators_option_in_your_configuration_file:n(95074,e.DiagnosticCategory.Message,\"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\",\"Enable the 'experimentalDecorators' option in your configuration file\"),Convert_parameters_to_destructured_object:n(95075,e.DiagnosticCategory.Message,\"Convert_parameters_to_destructured_object_95075\",\"Convert parameters to destructured object\"),Allow_accessing_UMD_globals_from_modules:n(95076,e.DiagnosticCategory.Message,\"Allow_accessing_UMD_globals_from_modules_95076\",\"Allow accessing UMD globals from modules.\"),Extract_type:n(95077,e.DiagnosticCategory.Message,\"Extract_type_95077\",\"Extract type\"),Extract_to_type_alias:n(95078,e.DiagnosticCategory.Message,\"Extract_to_type_alias_95078\",\"Extract to type alias\"),Extract_to_typedef:n(95079,e.DiagnosticCategory.Message,\"Extract_to_typedef_95079\",\"Extract to typedef\"),Infer_this_type_of_0_from_usage:n(95080,e.DiagnosticCategory.Message,\"Infer_this_type_of_0_from_usage_95080\",\"Infer 'this' type of '{0}' from usage\"),Add_const_to_unresolved_variable:n(95081,e.DiagnosticCategory.Message,\"Add_const_to_unresolved_variable_95081\",\"Add 'const' to unresolved variable\"),Add_const_to_all_unresolved_variables:n(95082,e.DiagnosticCategory.Message,\"Add_const_to_all_unresolved_variables_95082\",\"Add 'const' to all unresolved variables\"),Add_await:n(95083,e.DiagnosticCategory.Message,\"Add_await_95083\",\"Add 'await'\"),Add_await_to_initializer_for_0:n(95084,e.DiagnosticCategory.Message,\"Add_await_to_initializer_for_0_95084\",\"Add 'await' to initializer for '{0}'\"),Fix_all_expressions_possibly_missing_await:n(95085,e.DiagnosticCategory.Message,\"Fix_all_expressions_possibly_missing_await_95085\",\"Fix all expressions possibly missing 'await'\"),Remove_unnecessary_await:n(95086,e.DiagnosticCategory.Message,\"Remove_unnecessary_await_95086\",\"Remove unnecessary 'await'\"),Remove_all_unnecessary_uses_of_await:n(95087,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_uses_of_await_95087\",\"Remove all unnecessary uses of 'await'\"),Enable_the_jsx_flag_in_your_configuration_file:n(95088,e.DiagnosticCategory.Message,\"Enable_the_jsx_flag_in_your_configuration_file_95088\",\"Enable the '--jsx' flag in your configuration file\"),Add_await_to_initializers:n(95089,e.DiagnosticCategory.Message,\"Add_await_to_initializers_95089\",\"Add 'await' to initializers\"),Extract_to_interface:n(95090,e.DiagnosticCategory.Message,\"Extract_to_interface_95090\",\"Extract to interface\"),Convert_to_a_bigint_numeric_literal:n(95091,e.DiagnosticCategory.Message,\"Convert_to_a_bigint_numeric_literal_95091\",\"Convert to a bigint numeric literal\"),Convert_all_to_bigint_numeric_literals:n(95092,e.DiagnosticCategory.Message,\"Convert_all_to_bigint_numeric_literals_95092\",\"Convert all to bigint numeric literals\"),Convert_const_to_let:n(95093,e.DiagnosticCategory.Message,\"Convert_const_to_let_95093\",\"Convert 'const' to 'let'\"),Prefix_with_declare:n(95094,e.DiagnosticCategory.Message,\"Prefix_with_declare_95094\",\"Prefix with 'declare'\"),Prefix_all_incorrect_property_declarations_with_declare:n(95095,e.DiagnosticCategory.Message,\"Prefix_all_incorrect_property_declarations_with_declare_95095\",\"Prefix all incorrect property declarations with 'declare'\"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:n(18004,e.DiagnosticCategory.Error,\"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\",\"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),Classes_may_not_have_a_field_named_constructor:n(18006,e.DiagnosticCategory.Error,\"Classes_may_not_have_a_field_named_constructor_18006\",\"Classes may not have a field named 'constructor'.\"),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:n(18007,e.DiagnosticCategory.Error,\"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\",\"JSX expressions may not use the comma operator. Did you mean to write an array?\")}}(ts||(ts={})),function(e){var n;function t(e){return e>=75}e.tokenIsIdentifierOrKeyword=t,e.tokenIsIdentifierOrKeywordOrGreaterThan=function(e){return 31===e||t(e)};var r=((n={abstract:121,any:124,as:122,asserts:123,bigint:150,boolean:127,break:76,case:77,catch:78,class:79,continue:81,const:80}).constructor=128,n.debugger=82,n.declare=129,n.default=83,n.delete=84,n.do=85,n.else=86,n.enum=87,n.export=88,n.extends=89,n.false=90,n.finally=91,n.for=92,n.from=148,n.function=93,n.get=130,n.if=94,n.implements=112,n.import=95,n.in=96,n.infer=131,n.instanceof=97,n.interface=113,n.is=132,n.keyof=133,n.let=114,n.module=134,n.namespace=135,n.never=136,n.new=98,n.null=99,n.number=139,n.object=140,n.package=115,n.private=116,n.protected=117,n.public=118,n.readonly=137,n.require=138,n.global=149,n.return=100,n.set=141,n.static=119,n.string=142,n.super=101,n.switch=102,n.symbol=143,n.this=103,n.throw=104,n.true=105,n.try=106,n.type=144,n.typeof=107,n.undefined=145,n.unique=146,n.unknown=147,n.var=108,n.void=109,n.while=110,n.with=111,n.yield=120,n.async=125,n.await=126,n.of=151,n),a=e.createMapFromTemplate(r),i=e.createMapFromTemplate(__assign(__assign({},r),{\"{\":18,\"}\":19,\"(\":20,\")\":21,\"[\":22,\"]\":23,\".\":24,\"...\":25,\";\":26,\",\":27,\"<\":29,\">\":31,\"<=\":32,\">=\":33,\"==\":34,\"!=\":35,\"===\":36,\"!==\":37,\"=>\":38,\"+\":39,\"-\":40,\"**\":42,\"*\":41,\"/\":43,\"%\":44,\"++\":45,\"--\":46,\"<<\":47,\"</\":30,\">>\":48,\">>>\":49,\"&\":50,\"|\":51,\"^\":52,\"!\":53,\"~\":54,\"&&\":55,\"||\":56,\"?\":57,\"??\":60,\"?.\":28,\":\":58,\"=\":62,\"+=\":63,\"-=\":64,\"*=\":65,\"**=\":66,\"/=\":67,\"%=\":68,\"<<=\":69,\">>=\":70,\">>>=\":71,\"&=\":72,\"|=\":73,\"^=\":74,\"@\":59,\"`\":61})),o=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],s=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],c=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],l=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],u=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],d=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999];function p(e,n){if(e<n[0])return!1;for(var t,r=0,a=n.length;r+1<a;){if(t=r+(a-r)/2,n[t-=t%2]<=e&&e<=n[t+1])return!0;e<n[t]?a=t:r=t+2}return!1}function m(e,n){return p(e,n>=2?u:1===n?c:o)}e.isUnicodeIdentifierStart=m;var f,_=(f=[],i.forEach((function(e,n){f[e]=n})),f);function g(e){for(var n=new Array,t=0,r=0;t<e.length;){var a=e.charCodeAt(t);switch(t++,a){case 13:10===e.charCodeAt(t)&&t++;case 10:n.push(r),r=t;break;default:a>127&&T(a)&&(n.push(r),r=t)}}return n.push(r),n}function y(n,t,r,a,i){(t<0||t>=n.length)&&(i?t=t<0?0:t>=n.length?n.length-1:t:e.Debug.fail(\"Bad line number. Line: \"+t+\", lineStarts.length: \"+n.length+\" , line map is correct? \"+(void 0!==a?e.arraysEqual(n,g(a)):\"unknown\")));var o=n[t]+r;return i?o>n[t+1]?n[t+1]:\"string\"==typeof a&&o>a.length?a.length:o:(t<n.length-1?e.Debug.assert(o<n[t+1]):void 0!==a&&e.Debug.assert(o<=a.length),o)}function v(e){return e.lineMap||(e.lineMap=g(e.text))}function h(n,t){var r=e.binarySearch(n,t,e.identity,e.compareValues);return r<0&&(r=~r-1,e.Debug.assert(-1!==r,\"position cannot precede the beginning of the file\")),{line:r,character:t-n[r]}}function b(e){return E(e)||T(e)}function E(e){return 32===e||9===e||11===e||12===e||160===e||133===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function T(e){return 10===e||13===e||8232===e||8233===e}function S(e){return e>=48&&e<=57}function x(e){return e>=48&&e<=55}e.tokenToString=function(e){return _[e]},e.stringToToken=function(e){return i.get(e)},e.computeLineStarts=g,e.getPositionOfLineAndCharacter=function(e,n,t,r){return e.getPositionOfLineAndCharacter?e.getPositionOfLineAndCharacter(n,t,r):y(v(e),n,t,e.text,r)},e.computePositionOfLineAndCharacter=y,e.getLineStarts=v,e.computeLineAndCharacterOfPosition=h,e.getLineAndCharacterOfPosition=function(e,n){return h(v(e),n)},e.isWhiteSpaceLike=b,e.isWhiteSpaceSingleLine=E,e.isLineBreak=T,e.isOctalDigit=x,e.couldStartTrivia=function(e,n){var t=e.charCodeAt(n);switch(t){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return 0===n;default:return t>127}},e.skipTrivia=function(n,t,r,a){if(void 0===a&&(a=!1),e.positionIsSynthesized(t))return t;for(;;){var i=n.charCodeAt(t);switch(i){case 13:10===n.charCodeAt(t+1)&&t++;case 10:if(t++,r)return t;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(a)break;if(47===n.charCodeAt(t+1)){for(t+=2;t<n.length&&!T(n.charCodeAt(t));)t++;continue}if(42===n.charCodeAt(t+1)){for(t+=2;t<n.length;){if(42===n.charCodeAt(t)&&47===n.charCodeAt(t+1)){t+=2;break}t++}continue}break;case 60:case 124:case 61:case 62:if(C(n,t)){t=A(n,t);continue}break;case 35:if(0===t&&k(n,t)){t=N(n,t);continue}break;default:if(i>127&&b(i)){t++;continue}}return t}};var L=\"<<<<<<<\".length;function C(n,t){if(e.Debug.assert(t>=0),0===t||T(n.charCodeAt(t-1))){var r=n.charCodeAt(t);if(t+L<n.length){for(var a=0;a<L;a++)if(n.charCodeAt(t+a)!==r)return!1;return 61===r||32===n.charCodeAt(t+L)}}return!1}function A(n,t,r){r&&r(e.Diagnostics.Merge_conflict_marker_encountered,t,L);var a=n.charCodeAt(t),i=n.length;if(60===a||62===a)for(;t<i&&!T(n.charCodeAt(t));)t++;else for(e.Debug.assert(124===a||61===a);t<i;){var o=n.charCodeAt(t);if((61===o||62===o)&&o!==a&&C(n,t))break;t++}return t}var D=/^#!.*/;function k(n,t){return e.Debug.assert(0===t),D.test(n)}function N(e,n){return n+=D.exec(e)[0].length}function I(e,n,t,r,a,i,o){var s,c,l,u,d=!1,p=r,m=o;if(0===t){p=!0;var f=P(n);f&&(t=f.length)}e:for(;t>=0&&t<n.length;){var _=n.charCodeAt(t);switch(_){case 13:10===n.charCodeAt(t+1)&&t++;case 10:if(t++,r)break e;p=!0,d&&(u=!0);continue;case 9:case 11:case 12:case 32:t++;continue;case 47:var g=n.charCodeAt(t+1),y=!1;if(47===g||42===g){var v=47===g?2:3,h=t;if(t+=2,47===g)for(;t<n.length;){if(T(n.charCodeAt(t))){y=!0;break}t++}else for(;t<n.length;){if(42===n.charCodeAt(t)&&47===n.charCodeAt(t+1)){t+=2;break}t++}if(p){if(d&&(m=a(s,c,l,u,i,m),!e&&m))return m;s=h,c=t,l=v,u=y,d=!0}continue}break e;default:if(_>127&&b(_)){d&&T(_)&&(u=!0),t++;continue}break e}}return d&&(m=a(s,c,l,u,i,m)),m}function M(e,n,t,r,a){return I(!0,e,n,!1,t,r,a)}function O(e,n,t,r,a){return I(!0,e,n,!0,t,r,a)}function R(e,n,t,r,a,i){return i||(i=[]),i.push({kind:t,pos:e,end:n,hasTrailingNewLine:r}),i}function P(e){var n=D.exec(e);if(n)return n[0]}function w(e,n){return e>=65&&e<=90||e>=97&&e<=122||36===e||95===e||e>127&&m(e,n)}function F(e,n){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||36===e||95===e||e>127&&function(e,n){return p(e,n>=2?d:1===n?l:s)}(e,n)}e.isShebangTrivia=k,e.scanShebangTrivia=N,e.forEachLeadingCommentRange=function(e,n,t,r){return I(!1,e,n,!1,t,r)},e.forEachTrailingCommentRange=function(e,n,t,r){return I(!1,e,n,!0,t,r)},e.reduceEachLeadingCommentRange=M,e.reduceEachTrailingCommentRange=O,e.getLeadingCommentRanges=function(e,n){return M(e,n,R,void 0,void 0)},e.getTrailingCommentRanges=function(e,n){return O(e,n,R,void 0,void 0)},e.getShebang=P,e.isIdentifierStart=w,e.isIdentifierPart=F,e.isIdentifierText=function(e,n){var t=G(e,0);if(!w(t,n))return!1;for(var r=B(t);r<e.length;r+=B(t))if(!F(t=G(e,r),n))return!1;return!0},e.createScanner=function(n,r,i,o,s,c,l){void 0===i&&(i=0);var u,d,p,m,f,_,g,y=o,v=0;te(y,c,l);var h={getStartPos:function(){return p},getTextPos:function(){return u},getToken:function(){return f},getTokenPos:function(){return m},getTokenText:function(){return y.substring(m,u)},getTokenValue:function(){return _},hasUnicodeEscape:function(){return 0!=(1024&g)},hasExtendedUnicodeEscape:function(){return 0!=(8&g)},hasPrecedingLineBreak:function(){return 0!=(1&g)},isIdentifier:function(){return 75===f||f>111},isReservedWord:function(){return f>=76&&f<=111},isUnterminated:function(){return 0!=(4&g)},getTokenFlags:function(){return g},reScanGreaterToken:function(){if(31===f){if(62===y.charCodeAt(u))return 62===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=71):(u+=2,f=49):61===y.charCodeAt(u+1)?(u+=2,f=70):(u++,f=48);if(61===y.charCodeAt(u))return u++,f=33}return f},reScanSlashToken:function(){if(43===f||67===f){for(var t=m+1,r=!1,a=!1;;){if(t>=d){g|=4,L(e.Diagnostics.Unterminated_regular_expression_literal);break}var i=y.charCodeAt(t);if(T(i)){g|=4,L(e.Diagnostics.Unterminated_regular_expression_literal);break}if(r)r=!1;else{if(47===i&&!a){t++;break}91===i?a=!0:92===i?r=!0:93===i&&(a=!1)}t++}for(;t<d&&F(y.charCodeAt(t),n);)t++;u=t,_=y.substring(m,u),f=13}return f},reScanTemplateToken:function(){return e.Debug.assert(19===f,\"'reScanTemplateToken' should only be called on a '}'\"),u=m,f=j()},scanJsxIdentifier:function(){if(t(f))for(;u<d;){if(45!==y.charCodeAt(u)){var e=u;if(_+=X(),u===e)break}else _+=\"-\",u++}return f},scanJsxAttributeValue:function(){switch(p=u,y.charCodeAt(u)){case 34:case 39:return _=U(!0),f=10;default:return $()}},reScanJsxToken:function(){return u=m=p,f=ee()},reScanLessThanToken:function(){if(47===f)return u=m+1,f=29;return f},reScanQuestionToken:function(){return e.Debug.assert(60===f,\"'reScanQuestionToken' should only be called on a '??'\"),u=m+1,f=57},scanJsxToken:ee,scanJsDocToken:function(){if(p=m=u,g=0,u>=d)return f=1;var e=G(y,u);switch(u+=B(e),e){case 9:case 11:case 12:case 32:for(;u<d&&E(y.charCodeAt(u));)u++;return f=5;case 64:return f=59;case 10:case 13:return g|=1,f=4;case 42:return f=41;case 123:return f=18;case 125:return f=19;case 91:return f=22;case 93:return f=23;case 60:return f=29;case 62:return f=31;case 61:return f=62;case 44:return f=27;case 46:return f=24;case 96:return f=61;case 92:u--;var t=J();if(t>=0&&w(t,n))return u+=3,g|=8,_=W()+X(),f=Y();var r=q();return r>=0&&w(r,n)?(u+=6,g|=1024,_=String.fromCharCode(r)+X(),f=Y()):(u++,f=0)}if(w(e,n)){for(var a=e;u<d&&F(a=G(y,u),n)||45===y.charCodeAt(u);)u+=B(a);return _=y.substring(m,u),92===a&&(_+=X()),f=Y()}return f=0},scan:$,getText:function(){return y},setText:te,setScriptTarget:function(e){n=e},setLanguageVariant:function(e){i=e},setOnError:function(e){s=e},setTextPos:re,setInJSDocType:function(e){v+=e?1:-1},tryScan:function(e){return ne(e,!1)},lookAhead:function(e){return ne(e,!0)},scanRange:function(e,n,t){var r=d,a=u,i=p,o=m,s=f,c=_,l=g;te(y,e,n);var v=t();return d=r,u=a,p=i,m=o,f=s,_=c,g=l,v}};return e.Debug.isDebugging&&Object.defineProperty(h,\"__debugShowCurrentPositionInText\",{get:function(){var e=h.getText();return e.slice(0,h.getStartPos())+\"║\"+e.slice(h.getStartPos())}}),h;function L(e,n,t){if(void 0===n&&(n=u),s){var r=u;u=n,s(e,t||0),u=r}}function D(){for(var n=u,t=!1,r=!1,a=\"\";;){var i=y.charCodeAt(u);if(95!==i){if(!S(i))break;t=!0,r=!1,u++}else g|=512,t?(t=!1,r=!0,a+=y.substring(n,u)):L(r?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),n=++u}return 95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),a+y.substring(n,u)}function I(){var n,t,r=u,a=D();46===y.charCodeAt(u)&&(u++,n=D());var i,o=u;if(69===y.charCodeAt(u)||101===y.charCodeAt(u)){u++,g|=16,43!==y.charCodeAt(u)&&45!==y.charCodeAt(u)||u++;var s=u,c=D();c?(t=y.substring(o,s)+c,o=u):L(e.Diagnostics.Digit_expected)}if(512&g?(i=a,n&&(i+=\".\"+n),t&&(i+=t)):i=y.substring(r,o),void 0!==n||16&g)return M(r,void 0===n&&!!(16&g)),{type:8,value:\"\"+ +i};_=i;var l=Z();return M(r),{type:l,value:_}}function M(t,r){if(w(G(y,u),n)){var a=u,i=X().length;1===i&&\"n\"===y[a]?L(r?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,t,a-t+1):(L(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,a,i),u=a)}}function O(){for(var e=u;x(y.charCodeAt(u));)u++;return+y.substring(e,u)}function R(e,n){var t=V(e,!1,n);return t?parseInt(t,16):-1}function P(e,n){return V(e,!0,n)}function V(n,t,r){for(var a=[],i=!1,o=!1;a.length<n||t;){var s=y.charCodeAt(u);if(r&&95===s)g|=512,i?(i=!1,o=!0):L(o?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),u++;else{if(i=r,s>=65&&s<=70)s+=32;else if(!(s>=48&&s<=57||s>=97&&s<=102))break;a.push(s),u++,o=!1}}return a.length<n&&(a=[]),95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),String.fromCharCode.apply(String,a)}function U(n){void 0===n&&(n=!1);for(var t=y.charCodeAt(u),r=\"\",a=++u;;){if(u>=d){r+=y.substring(a,u),g|=4,L(e.Diagnostics.Unterminated_string_literal);break}var i=y.charCodeAt(u);if(i===t){r+=y.substring(a,u),u++;break}if(92!==i||n){if(T(i)&&!n){r+=y.substring(a,u),g|=4,L(e.Diagnostics.Unterminated_string_literal);break}u++}else r+=y.substring(a,u),r+=K(),a=u}return r}function j(){for(var n,t=96===y.charCodeAt(u),r=++u,a=\"\";;){if(u>=d){a+=y.substring(r,u),g|=4,L(e.Diagnostics.Unterminated_template_literal),n=t?14:17;break}var i=y.charCodeAt(u);if(96===i){a+=y.substring(r,u),u++,n=t?14:17;break}if(36===i&&u+1<d&&123===y.charCodeAt(u+1)){a+=y.substring(r,u),u+=2,n=t?15:16;break}92!==i?13!==i?u++:(a+=y.substring(r,u),++u<d&&10===y.charCodeAt(u)&&u++,a+=\"\\n\",r=u):(a+=y.substring(r,u),a+=K(),r=u)}return e.Debug.assert(void 0!==n),_=a,n}function K(){if(++u>=d)return L(e.Diagnostics.Unexpected_end_of_text),\"\";var n=y.charCodeAt(u);switch(u++,n){case 48:return\"\\0\";case 98:return\"\\b\";case 116:return\"\\t\";case 110:return\"\\n\";case 118:return\"\\v\";case 102:return\"\\f\";case 114:return\"\\r\";case 39:return\"'\";case 34:return'\"';case 117:return u<d&&123===y.charCodeAt(u)?(g|=8,u++,W()):(g|=1024,H(4));case 120:return H(2);case 13:u<d&&10===y.charCodeAt(u)&&u++;case 10:case 8232:case 8233:return\"\";default:return String.fromCharCode(n)}}function H(n){var t=R(n,!1);return t>=0?String.fromCharCode(t):(L(e.Diagnostics.Hexadecimal_digit_expected),\"\")}function W(){var n=P(1,!1),t=n?parseInt(n,16):-1,r=!1;return t<0?(L(e.Diagnostics.Hexadecimal_digit_expected),r=!0):t>1114111&&(L(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),r=!0),u>=d?(L(e.Diagnostics.Unexpected_end_of_text),r=!0):125===y.charCodeAt(u)?u++:(L(e.Diagnostics.Unterminated_Unicode_escape_sequence),r=!0),r?\"\":z(t)}function z(n){if(e.Debug.assert(0<=n&&n<=1114111),n<=65535)return String.fromCharCode(n);var t=Math.floor((n-65536)/1024)+55296,r=(n-65536)%1024+56320;return String.fromCharCode(t,r)}function q(){if(u+5<d&&117===y.charCodeAt(u+1)){var e=u;u+=2;var n=R(4,!1);return u=e,n}return-1}function J(){if(n>=2&&117===G(y,u+1)&&123===G(y,u+2)){var e=u;u+=3;var t=P(1,!1),r=t?parseInt(t,16):-1;return u=e,r}return-1}function X(){for(var e=\"\",t=u;u<d;){var r=G(y,u);if(F(r,n))u+=B(r);else{if(92!==r)break;if((r=J())>=0&&F(r,n)){u+=3,g|=8,e+=W(),t=u;continue}if(!((r=q())>=0&&F(r,n)))break;g|=1024,e+=y.substring(t,u),e+=z(r),t=u+=6}}return e+=y.substring(t,u)}function Y(){var e=_.length;if(e>=2&&e<=11){var n=_.charCodeAt(0);if(n>=97&&n<=122){var t=a.get(_);if(void 0!==t)return f=t}}return f=75}function Q(n){for(var t=\"\",r=!1,a=!1;;){var i=y.charCodeAt(u);if(95!==i){if(r=!0,!S(i)||i-48>=n)break;t+=y[u],u++,a=!1}else g|=512,r?(r=!1,a=!0):L(a?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),u++}return 95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),t}function Z(){if(110===y.charCodeAt(u))return _+=\"n\",384&g&&(_=e.parsePseudoBigInt(_)+\"n\"),u++,9;var n=128&g?parseInt(_.slice(2),2):256&g?parseInt(_.slice(2),8):+_;return _=\"\"+n,8}function $(){var t;p=u,g=0;for(var a=!1;;){if(m=u,u>=d)return f=1;var o=G(y,u);if(35===o&&0===u&&k(y,u)){if(u=N(y,u),r)continue;return f=6}switch(o){case 10:case 13:if(g|=1,r){u++;continue}return 13===o&&u+1<d&&10===y.charCodeAt(u+1)?u+=2:u++,f=4;case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8203:case 8239:case 8287:case 12288:case 65279:if(r){u++;continue}for(;u<d&&E(y.charCodeAt(u));)u++;return f=5;case 33:return 61===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=37):(u+=2,f=35):(u++,f=53);case 34:case 39:return _=U(),f=10;case 96:return f=j();case 37:return 61===y.charCodeAt(u+1)?(u+=2,f=68):(u++,f=44);case 38:return 38===y.charCodeAt(u+1)?(u+=2,f=55):61===y.charCodeAt(u+1)?(u+=2,f=72):(u++,f=50);case 40:return u++,f=20;case 41:return u++,f=21;case 42:if(61===y.charCodeAt(u+1))return u+=2,f=65;if(42===y.charCodeAt(u+1))return 61===y.charCodeAt(u+2)?(u+=3,f=66):(u+=2,f=42);if(u++,v&&!a&&1&g){a=!0;continue}return f=41;case 43:return 43===y.charCodeAt(u+1)?(u+=2,f=45):61===y.charCodeAt(u+1)?(u+=2,f=63):(u++,f=39);case 44:return u++,f=27;case 45:return 45===y.charCodeAt(u+1)?(u+=2,f=46):61===y.charCodeAt(u+1)?(u+=2,f=64):(u++,f=40);case 46:return S(y.charCodeAt(u+1))?(_=I().value,f=8):46===y.charCodeAt(u+1)&&46===y.charCodeAt(u+2)?(u+=3,f=25):(u++,f=24);case 47:if(47===y.charCodeAt(u+1)){for(u+=2;u<d&&!T(y.charCodeAt(u));)u++;if(r)continue;return f=2}if(42===y.charCodeAt(u+1)){u+=2,42===y.charCodeAt(u)&&47!==y.charCodeAt(u+1)&&(g|=2);for(var s=!1;u<d;){var c=y.charCodeAt(u);if(42===c&&47===y.charCodeAt(u+1)){u+=2,s=!0;break}T(c)&&(g|=1),u++}if(s||L(e.Diagnostics.Asterisk_Slash_expected),r)continue;return s||(g|=4),f=3}return 61===y.charCodeAt(u+1)?(u+=2,f=67):(u++,f=43);case 48:if(u+2<d&&(88===y.charCodeAt(u+1)||120===y.charCodeAt(u+1)))return u+=2,(_=P(1,!0))||(L(e.Diagnostics.Hexadecimal_digit_expected),_=\"0\"),_=\"0x\"+_,g|=64,f=Z();if(u+2<d&&(66===y.charCodeAt(u+1)||98===y.charCodeAt(u+1)))return u+=2,(_=Q(2))||(L(e.Diagnostics.Binary_digit_expected),_=\"0\"),_=\"0b\"+_,g|=128,f=Z();if(u+2<d&&(79===y.charCodeAt(u+1)||111===y.charCodeAt(u+1)))return u+=2,(_=Q(8))||(L(e.Diagnostics.Octal_digit_expected),_=\"0\"),_=\"0o\"+_,g|=256,f=Z();if(u+1<d&&x(y.charCodeAt(u+1)))return _=\"\"+O(),g|=32,f=8;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t=I(),f=t.type,_=t.value,f;case 58:return u++,f=58;case 59:return u++,f=26;case 60:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 60===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=69):(u+=2,f=47):61===y.charCodeAt(u+1)?(u+=2,f=32):1===i&&47===y.charCodeAt(u+1)&&42!==y.charCodeAt(u+2)?(u+=2,f=30):(u++,f=29);case 61:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 61===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=36):(u+=2,f=34):62===y.charCodeAt(u+1)?(u+=2,f=38):(u++,f=62);case 62:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return u++,f=31;case 63:return u++,46!==y.charCodeAt(u)||S(y.charCodeAt(u+1))?63===y.charCodeAt(u)?(u++,f=60):f=57:(u++,f=28);case 91:return u++,f=22;case 93:return u++,f=23;case 94:return 61===y.charCodeAt(u+1)?(u+=2,f=74):(u++,f=52);case 123:return u++,f=18;case 124:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 124===y.charCodeAt(u+1)?(u+=2,f=56):61===y.charCodeAt(u+1)?(u+=2,f=73):(u++,f=51);case 125:return u++,f=19;case 126:return u++,f=54;case 64:return u++,f=59;case 92:var l=J();if(l>=0&&w(l,n))return u+=3,g|=8,_=W()+X(),f=Y();var h=q();return h>=0&&w(h,n)?(u+=6,g|=1024,_=String.fromCharCode(h)+X(),f=Y()):(L(e.Diagnostics.Invalid_character),u++,f=0);default:if(w(o,n)){for(u+=B(o);u<d&&F(o=G(y,u),n);)u+=B(o);return _=y.substring(m,u),92===o&&(_+=X()),f=Y()}if(E(o)){u+=B(o);continue}if(T(o)){g|=1,u+=B(o);continue}return L(e.Diagnostics.Invalid_character),u+=B(o),f=0}}}function ee(){if(p=m=u,u>=d)return f=1;var e=y.charCodeAt(u);if(60===e)return 47===y.charCodeAt(u+1)?(u+=2,f=30):(u++,f=29);if(123===e)return u++,f=18;for(var n=0;u<d&&123!==(e=y.charCodeAt(u));){if(60===e){if(C(y,u))return u=A(y,u,L),f=7;break}T(e)&&0===n?n=-1:b(e)||(n=u),u++}return _=y.substring(p,u),-1===n?12:11}function ne(e,n){var t=u,r=p,a=m,i=f,o=_,s=g,c=e();return c&&!n||(u=t,p=r,m=a,f=i,_=o,g=s),c}function te(e,n,t){y=e||\"\",d=void 0===t?y.length:n+t,re(n||0)}function re(n){e.Debug.assert(n>=0),u=n,p=n,m=n,f=0,_=void 0,g=0}};var G=String.prototype.codePointAt?function(e,n){return e.codePointAt(n)}:function(e,n){var t=e.length;if(!(n<0||n>=t)){var r=e.charCodeAt(n);if(r>=55296&&r<=56319&&t>n+1){var a=e.charCodeAt(n+1);if(a>=56320&&a<=57343)return 1024*(r-55296)+a-56320+65536}return r}};function B(e){return e>=65536?2:1}}(ts||(ts={})),function(e){e.isExternalModuleNameRelative=function(n){return e.pathIsRelative(n)||e.isRootedDiskPath(n)},e.sortAndDeduplicateDiagnostics=function(n){return e.sortAndDeduplicate(n,e.compareDiagnostics)}}(ts||(ts={})),function(e){e.resolvingEmptyArray=[],e.emptyMap=e.createMap(),e.emptyUnderscoreEscapedMap=e.emptyMap,e.externalHelpersModuleNameText=\"tslib\",e.defaultMaximumTruncationLength=160,e.getDeclarationOfKind=function(e,n){var t=e.declarations;if(t)for(var r=0,a=t;r<a.length;r++){var i=a[r];if(i.kind===n)return i}},e.createUnderscoreEscapedMap=function(){return new e.Map},e.hasEntries=function(e){return!!e&&!!e.size},e.createSymbolTable=function(n){var t=e.createMap();if(n)for(var r=0,a=n;r<a.length;r++){var i=a[r];t.set(i.escapedName,i)}return t};var n,t,r=(n=\"\",{getText:function(){return n},write:t=function(e){return n+=e},rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:function(e,n){return t(e)},writeTrailingSemicolon:t,writeComment:t,getTextPos:function(){return n.length},getLine:function(){return 0},getColumn:function(){return 0},getIndent:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingComment:function(){return!1},hasTrailingWhitespace:function(){return!!n.length&&e.isWhiteSpaceLike(n.charCodeAt(n.length-1))},writeLine:function(){return n+=\" \"},increaseIndent:e.noop,decreaseIndent:e.noop,clear:function(){return n=\"\"},trackSymbol:e.noop,reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop});function a(n,t){return e.moduleResolutionOptionDeclarations.some((function(r){return!e.isJsonEqual(e.getCompilerOptionValue(n,r),e.getCompilerOptionValue(t,r))}))}function i(e,n){for(;e;){var t=n(e);if(\"quit\"===t)return;if(t)return e;e=e.parent}}function o(e,n){e.forEach((function(e,t){n.set(t,e)}))}function s(e){return e.end-e.pos}function c(n){return function(n){if(!(524288&n.flags)){(0!=(65536&n.flags)||e.forEachChild(n,c))&&(n.flags|=262144),n.flags|=524288}}(n),0!=(262144&n.flags)}function l(e){for(;e&&288!==e.kind;)e=e.parent;return e}function u(n,t){e.Debug.assert(n>=0);var r=e.getLineStarts(t),a=n,i=t.text;if(a+1===r.length)return i.length-1;var o=r[a],s=r[a+1]-1;for(e.Debug.assert(e.isLineBreak(i.charCodeAt(s)));o<=s&&e.isLineBreak(i.charCodeAt(s));)s--;return s}function d(e){return void 0===e||e.pos===e.end&&e.pos>=0&&1!==e.kind}function p(e){return!d(e)}function m(e,n,t){if(void 0===n||0===n.length)return e;for(var r=0;r<e.length&&t(e[r]);++r);return e.splice.apply(e,__spreadArrays([r,0],n)),e}function f(e,n,t){if(void 0===n)return e;for(var r=0;r<e.length&&t(e[r]);++r);return e.splice(r,0,n),e}function _(e){return V(e)||!!(1048576&T(e))}function g(e,n){return 42===e.charCodeAt(n+1)&&33===e.charCodeAt(n+2)}function y(n,t,r){return d(n)?n.pos:e.isJSDocNode(n)?e.skipTrivia((t||l(n)).text,n.pos,!1,!0):r&&e.hasJSDocNodes(n)?y(n.jsDoc[0]):317===n.kind&&n._children.length>0?y(n._children[0],t,r):e.skipTrivia((t||l(n)).text,n.pos)}function v(e,n,t){return void 0===t&&(t=!1),h(e.text,n,t)}function h(n,t,r){if(void 0===r&&(r=!1),d(t))return\"\";var a=n.substring(r?t.pos:e.skipTrivia(n,t.pos),t.end);return function e(n){return 292===n.kind||n.parent&&e(n.parent)}(t)&&(a=a.replace(/(^|\\r?\\n|\\r)\\s*\\*\\s*/g,\"$1\")),a}function b(e,n){return void 0===n&&(n=!1),v(l(e),e,n)}function E(e){return e.pos}function T(e){var n=e.emitNode;return n&&n.flags||0}function S(e){var n=cn(e);return 241===n.kind&&278===n.parent.kind}function x(n){return e.isModuleDeclaration(n)&&(10===n.name.kind||L(n))}function L(e){return!!(1024&e.flags)}function C(e){return x(e)&&A(e)}function A(n){switch(n.parent.kind){case 288:return e.isExternalModule(n.parent);case 249:return x(n.parent.parent)&&e.isSourceFile(n.parent.parent.parent)&&!e.isExternalModule(n.parent.parent.parent)}return!1}function D(n,t){switch(n.kind){case 288:case 250:case 278:case 248:case 229:case 230:case 231:case 161:case 160:case 162:case 163:case 243:case 200:case 201:return!0;case 222:return!e.isFunctionLike(t)}return!1}function k(n){switch(n.kind){case 164:case 165:case 159:case 166:case 169:case 170:case 298:case 244:case 213:case 245:case 246:case 314:case 243:case 160:case 161:case 162:case 163:case 200:case 201:return!0;default:return e.assertType(n),!1}}function N(e){switch(e.kind){case 253:case 252:return!0;default:return!1}}function I(e){return e&&0!==s(e)?b(e):\"(Missing)\"}function M(n){switch(n.kind){case 75:return n.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(n.text);case 153:return Qe(n.expression)?e.escapeLeadingUnderscores(n.expression.text):e.Debug.fail(\"Text of property name cannot be read from non-literal-valued ComputedPropertyNames\");default:return e.Debug.assertNever(n)}}function O(n,t,r,a,i,o,s){var c=P(n,t);return e.createFileDiagnostic(n,c.start,c.length,r,a,i,o,s)}function R(n,t){var r=e.createScanner(n.languageVersion,!0,n.languageVariant,n.text,void 0,t);r.scan();var a=r.getTokenPos();return e.createTextSpanFromBounds(a,r.getTextPos())}function P(n,t){var r=t;switch(t.kind){case 288:var a=e.skipTrivia(n.text,0,!1);return a===n.text.length?e.createTextSpan(0,0):R(n,a);case 241:case 190:case 244:case 213:case 245:case 248:case 247:case 282:case 243:case 200:case 160:case 162:case 163:case 246:case 158:case 157:r=t.name;break;case 201:return function(n,t){var r=e.skipTrivia(n.text,t.pos);if(t.body&&222===t.body.kind){var a=e.getLineAndCharacterOfPosition(n,t.body.pos).line;if(a<e.getLineAndCharacterOfPosition(n,t.body.end).line)return e.createTextSpan(r,u(a,n)-r+1)}return e.createTextSpanFromBounds(r,t.end)}(n,t);case 275:case 276:var i=e.skipTrivia(n.text,t.pos),o=t.statements.length>0?t.statements[0].pos:t.end;return e.createTextSpanFromBounds(i,o)}if(void 0===r)return R(n,t.pos);e.Debug.assert(!e.isJSDoc(r));var s=d(r),c=s||e.isJsxText(t)?r.pos:e.skipTrivia(n.text,r.pos);return s?(e.Debug.assert(c===r.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(c===r.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")):(e.Debug.assert(c>=r.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(c<=r.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")),e.createTextSpanFromBounds(c,r.end)}function w(e){return 6===e.scriptKind}function F(n){return!!(2&e.getCombinedNodeFlags(n))}function G(e){return 195===e.kind&&95===e.expression.kind}function B(n){return e.isImportTypeNode(n)&&e.isLiteralTypeNode(n.argument)&&e.isStringLiteral(n.argument.literal)}function V(e){return 225===e.kind&&10===e.expression.kind}e.changesAffectModuleResolution=function(e,n){return e.configFilePath!==n.configFilePath||a(e,n)},e.optionsHaveModuleResolutionChanges=a,e.findAncestor=i,e.forEachAncestor=function(n,t){for(;;){var r=t(n);if(\"quit\"===r)return;if(void 0!==r)return r;if(e.isSourceFile(n))return;n=n.parent}},e.forEachEntry=function(e,n){for(var t=e.entries(),r=t.next();!r.done;r=t.next()){var a=r.value,i=a[0],o=n(a[1],i);if(o)return o}},e.forEachKey=function(e,n){for(var t=e.keys(),r=t.next();!r.done;r=t.next()){var a=n(r.value);if(a)return a}},e.copyEntries=o,e.arrayToSet=function(n,t){return e.arrayToMap(n,t||function(e){return e},e.returnTrue)},e.cloneMap=function(n){var t=e.createMap();return o(n,t),t},e.usingSingleLineStringWriter=function(e){var n=r.getText();try{return e(r),r.getText()}finally{r.clear(),r.writeKeyword(n)}},e.getFullWidth=s,e.getResolvedModule=function(e,n){return e&&e.resolvedModules&&e.resolvedModules.get(n)},e.setResolvedModule=function(n,t,r){n.resolvedModules||(n.resolvedModules=e.createMap()),n.resolvedModules.set(t,r)},e.setResolvedTypeReferenceDirective=function(n,t,r){n.resolvedTypeReferenceDirectiveNames||(n.resolvedTypeReferenceDirectiveNames=e.createMap()),n.resolvedTypeReferenceDirectiveNames.set(t,r)},e.projectReferenceIsEqualTo=function(e,n){return e.path===n.path&&!e.prepend==!n.prepend&&!e.circular==!n.circular},e.moduleResolutionIsEqualTo=function(e,n){return e.isExternalLibraryImport===n.isExternalLibraryImport&&e.extension===n.extension&&e.resolvedFileName===n.resolvedFileName&&e.originalPath===n.originalPath&&(t=e.packageId,r=n.packageId,t===r||!!t&&!!r&&t.name===r.name&&t.subModuleName===r.subModuleName&&t.version===r.version);var t,r},e.packageIdToString=function(e){var n=e.name,t=e.subModuleName;return(t?n+\"/\"+t:n)+\"@\"+e.version},e.typeDirectiveIsEqualTo=function(e,n){return e.resolvedFileName===n.resolvedFileName&&e.primary===n.primary},e.hasChangesInResolutions=function(n,t,r,a){e.Debug.assert(n.length===t.length);for(var i=0;i<n.length;i++){var o=t[i],s=r&&r.get(n[i]);if(s?!o||!a(s,o):o)return!0}return!1},e.containsParseError=c,e.getSourceFileOfNode=l,e.isStatementWithLocals=function(e){switch(e.kind){case 222:case 250:case 229:case 230:case 231:return!0}return!1},e.getStartPositionOfLine=function(n,t){return e.Debug.assert(n>=0),e.getLineStarts(t)[n]},e.nodePosToString=function(n){var t=l(n),r=e.getLineAndCharacterOfPosition(t,n.pos);return t.fileName+\"(\"+(r.line+1)+\",\"+(r.character+1)+\")\"},e.getEndLinePosition=u,e.isFileLevelUniqueName=function(e,n,t){return!(t&&t(n)||e.identifiers.has(n))},e.nodeIsMissing=d,e.nodeIsPresent=p,e.insertStatementsAfterStandardPrologue=function(e,n){return m(e,n,V)},e.insertStatementsAfterCustomPrologue=function(e,n){return m(e,n,_)},e.insertStatementAfterStandardPrologue=function(e,n){return f(e,n,V)},e.insertStatementAfterCustomPrologue=function(e,n){return f(e,n,_)},e.isRecognizedTripleSlashComment=function(n,t,r){if(47===n.charCodeAt(t+1)&&t+2<r&&47===n.charCodeAt(t+2)){var a=n.substring(t,r);return!!(a.match(e.fullTripleSlashReferencePathRegEx)||a.match(e.fullTripleSlashAMDReferencePathRegEx)||a.match(U)||a.match(j))}return!1},e.isPinnedComment=g,e.getTokenPosOfNode=y,e.getNonDecoratorTokenPosOfNode=function(n,t){return d(n)||!n.decorators?y(n,t):e.skipTrivia((t||l(n)).text,n.decorators.end)},e.getSourceTextOfNodeFromSourceFile=v,e.getTextOfNodeFromSourceText=h,e.getTextOfNode=b,e.indexOfNode=function(n,t){return e.binarySearch(n,t,E,e.compareValues)},e.getEmitFlags=T,e.getLiteralText=function(n,t,r){if(!ln(n)&&n.parent&&!(e.isNumericLiteral(n)&&512&n.numericLiteralFlags||e.isBigIntLiteral(n)))return v(t,n);var a=r||16777216&T(n)?hn:Sn;switch(n.kind){case 10:return n.singleQuote?\"'\"+a(n.text,39)+\"'\":'\"'+a(n.text,34)+'\"';case 14:case 15:case 16:case 17:var i=n.rawText||function(e){return e.replace(fn,\"\\\\${\")}(a(n.text,96));switch(n.kind){case 14:return\"`\"+i+\"`\";case 15:return\"`\"+i+\"${\";case 16:return\"}\"+i+\"${\";case 17:return\"}\"+i+\"`\"}break;case 8:case 9:case 13:return n.text}return e.Debug.fail(\"Literal kind '\"+n.kind+\"' not accounted for.\")},e.getTextOfConstantValue=function(n){return e.isString(n)?'\"'+Sn(n)+'\"':\"\"+n},e.makeIdentifierFromModuleName=function(n){return e.getBaseFileName(n).replace(/^(\\d)/,\"_$1\").replace(/\\W/g,\"_\")},e.isBlockOrCatchScoped=function(n){return 0!=(3&e.getCombinedNodeFlags(n))||S(n)},e.isCatchClauseVariableDeclarationOrBindingElement=S,e.isAmbientModule=x,e.isModuleWithStringLiteralName=function(n){return e.isModuleDeclaration(n)&&10===n.name.kind},e.isNonGlobalAmbientModule=function(n){return e.isModuleDeclaration(n)&&e.isStringLiteral(n.name)},e.isEffectiveModuleDeclaration=function(n){return e.isModuleDeclaration(n)||e.isIdentifier(n)},e.isShorthandAmbientModuleSymbol=function(e){return(n=e.valueDeclaration)&&248===n.kind&&!n.body;var n},e.isBlockScopedContainerTopLevel=function(n){return 288===n.kind||248===n.kind||e.isFunctionLike(n)},e.isGlobalScopeAugmentation=L,e.isExternalModuleAugmentation=C,e.isModuleAugmentationExternal=A,e.getNonAugmentationDeclaration=function(n){return e.find(n.declarations,(function(n){return!(C(n)||e.isModuleDeclaration(n)&&L(n))}))},e.isEffectiveExternalModule=function(n,t){return e.isExternalModule(n)||t.isolatedModules||e.getEmitModuleKind(t)===e.ModuleKind.CommonJS&&!!n.commonJsModuleIndicator},e.isEffectiveStrictModeSourceFile=function(n,t){switch(n.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return!n.isDeclarationFile&&(!!e.getStrictOptionValue(t,\"alwaysStrict\")||(!!e.startsWithUseStrict(n.statements)||!(!e.isExternalModule(n)&&!t.isolatedModules)&&(e.getEmitModuleKind(t)>=e.ModuleKind.ES2015||!t.noImplicitUseStrict)))},e.isBlockScope=D,e.isDeclarationWithTypeParameters=function(n){switch(n.kind){case 308:case 315:case 303:return!0;default:return e.assertType(n),k(n)}},e.isDeclarationWithTypeParameterChildren=k,e.isAnyImportSyntax=N,e.isLateVisibilityPaintedStatement=function(e){switch(e.kind){case 253:case 252:case 224:case 244:case 243:case 248:case 246:case 245:case 247:return!0;default:return!1}},e.isAnyImportOrReExport=function(n){return N(n)||e.isExportDeclaration(n)},e.getEnclosingBlockScopeContainer=function(e){return i(e.parent,(function(e){return D(e,e.parent)}))},e.declarationNameToString=I,e.getNameFromIndexInfo=function(e){return e.declaration?I(e.declaration.parameters[0].name):void 0},e.getTextOfPropertyName=M,e.entityNameToString=function n(t){switch(t.kind){case 75:return 0===s(t)?e.idText(t):b(t);case 152:return n(t.left)+\".\"+n(t.right);case 193:return n(t.expression)+\".\"+n(t.name);default:throw e.Debug.assertNever(t)}},e.createDiagnosticForNode=function(e,n,t,r,a,i){return O(l(e),e,n,t,r,a,i)},e.createDiagnosticForNodeArray=function(n,t,r,a,i,o,s){var c=e.skipTrivia(n.text,t.pos);return e.createFileDiagnostic(n,c,t.end-c,r,a,i,o,s)},e.createDiagnosticForNodeInSourceFile=O,e.createDiagnosticForNodeFromMessageChain=function(e,n,t){var r=l(e),a=P(r,e);return{file:r,start:a.start,length:a.length,code:n.code,category:n.category,messageText:n.next?n:n.messageText,relatedInformation:t}},e.getSpanOfTokenAtPosition=R,e.getErrorSpanForNode=P,e.isExternalOrCommonJsModule=function(e){return void 0!==(e.externalModuleIndicator||e.commonJsModuleIndicator)},e.isJsonSourceFile=w,e.isEnumConst=function(n){return!!(2048&e.getCombinedModifierFlags(n))},e.isDeclarationReadonly=function(n){return!(!(64&e.getCombinedModifierFlags(n))||e.isParameterPropertyDeclaration(n,n.parent))},e.isVarConst=F,e.isLet=function(n){return!!(1&e.getCombinedNodeFlags(n))},e.isSuperCall=function(e){return 195===e.kind&&101===e.expression.kind},e.isImportCall=G,e.isImportMeta=function(n){return e.isMetaProperty(n)&&95===n.keywordToken&&\"meta\"===n.name.escapedText},e.isLiteralImportTypeNode=B,e.isPrologueDirective=V,e.getLeadingCommentRangesOfNode=function(n,t){return 11!==n.kind?e.getLeadingCommentRanges(t.text,n.pos):void 0},e.getJSDocCommentRanges=function(n,t){var r=155===n.kind||154===n.kind||200===n.kind||201===n.kind||199===n.kind?e.concatenate(e.getTrailingCommentRanges(t,n.pos),e.getLeadingCommentRanges(t,n.pos)):e.getLeadingCommentRanges(t,n.pos);return e.filter(r,(function(e){return 42===t.charCodeAt(e.pos+1)&&42===t.charCodeAt(e.pos+2)&&47!==t.charCodeAt(e.pos+3)}))},e.fullTripleSlashReferencePathRegEx=/^(\\/\\/\\/\\s*<reference\\s+path\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;var U=/^(\\/\\/\\/\\s*<reference\\s+types\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;e.fullTripleSlashAMDReferencePathRegEx=/^(\\/\\/\\/\\s*<amd-dependency\\s+path\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;var j=/^(\\/\\/\\/\\s*<reference\\s+no-default-lib\\s*=\\s*)('|\")(.+?)\\2\\s*\\/>/;function K(n){if(167<=n.kind&&n.kind<=187)return!0;switch(n.kind){case 124:case 147:case 139:case 150:case 142:case 127:case 143:case 140:case 145:case 136:return!0;case 109:return 204!==n.parent.kind;case 215:return!tt(n);case 154:return 185===n.parent.kind||180===n.parent.kind;case 75:152===n.parent.kind&&n.parent.right===n?n=n.parent:193===n.parent.kind&&n.parent.name===n&&(n=n.parent),e.Debug.assert(75===n.kind||152===n.kind||193===n.kind,\"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");case 152:case 193:case 103:var t=n.parent;if(171===t.kind)return!1;if(187===t.kind)return!t.isTypeOf;if(167<=t.kind&&t.kind<=187)return!0;switch(t.kind){case 215:return!tt(t);case 154:case 314:return n===t.constraint;case 158:case 157:case 155:case 241:return n===t.type;case 243:case 200:case 201:case 161:case 160:case 159:case 162:case 163:return n===t.type;case 164:case 165:case 166:case 198:return n===t.type;case 195:case 196:return e.contains(t.typeArguments,n);case 197:return!1}}return!1}function H(e){if(e)switch(e.kind){case 190:case 282:case 155:case 279:case 158:case 157:case 280:case 241:return!0}return!1}function W(e){return 242===e.parent.kind&&224===e.parent.parent.kind}function z(e,n,t){return e.properties.filter((function(e){if(279===e.kind){var r=M(e.name);return n===r||!!t&&t===r}return!1}))}function q(n){if(n&&n.statements.length){var t=n.statements[0].expression;return e.tryCast(t,e.isObjectLiteralExpression)}}function J(n,t){var r=q(n);return r?z(r,t):e.emptyArray}function X(n,t){for(e.Debug.assert(288!==n.kind);;){if(!(n=n.parent))return e.Debug.fail();switch(n.kind){case 153:if(e.isClassLike(n.parent.parent))return n;n=n.parent;break;case 156:155===n.parent.kind&&e.isClassElement(n.parent.parent)?n=n.parent.parent:e.isClassElement(n.parent)&&(n=n.parent);break;case 201:if(!t)continue;case 243:case 200:case 248:case 158:case 157:case 160:case 159:case 161:case 162:case 163:case 164:case 165:case 166:case 247:case 288:return n}}}function Y(e){var n=e.kind;return(193===n||194===n)&&101===e.expression.kind}function Q(e,n,t){switch(e.kind){case 244:return!0;case 158:return 244===n.kind;case 162:case 163:case 160:return void 0!==e.body&&244===n.kind;case 155:return void 0!==n.body&&(161===n.kind||160===n.kind||163===n.kind)&&244===t.kind}return!1}function Z(e,n,t){return void 0!==e.decorators&&Q(e,n,t)}function $(e,n,t){return Z(e,n,t)||ee(e,n)}function ee(n,t){switch(n.kind){case 244:return e.some(n.members,(function(e){return $(e,n,t)}));case 160:case 163:return e.some(n.parameters,(function(e){return Z(e,n,t)}));default:return!1}}function ne(e){var n=e.parent;return(266===n.kind||265===n.kind||267===n.kind)&&n.tagName===e}function te(e){switch(e.kind){case 101:case 99:case 105:case 90:case 13:case 191:case 192:case 193:case 194:case 195:case 196:case 197:case 216:case 198:case 217:case 199:case 200:case 213:case 201:case 204:case 202:case 203:case 206:case 207:case 208:case 209:case 212:case 210:case 214:case 264:case 265:case 268:case 211:case 205:case 218:return!0;case 152:for(;152===e.parent.kind;)e=e.parent;return 171===e.parent.kind||ne(e);case 75:if(171===e.parent.kind||ne(e))return!0;case 8:case 9:case 10:case 14:case 103:return re(e);default:return!1}}function re(e){var n=e.parent;switch(n.kind){case 241:case 155:case 158:case 157:case 282:case 279:case 190:return n.initializer===e;case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 275:case 238:return n.expression===e;case 229:var t=n;return t.initializer===e&&242!==t.initializer.kind||t.condition===e||t.incrementor===e;case 230:case 231:var r=n;return r.initializer===e&&242!==r.initializer.kind||r.expression===e;case 198:case 216:case 220:case 153:return e===n.expression;case 156:case 274:case 273:case 281:return!0;case 215:return n.expression===e&&tt(n);case 280:return n.objectAssignmentInitializer===e;default:return te(n)}}function ae(e){return 252===e.kind&&263===e.moduleReference.kind}function ie(e){return oe(e)}function oe(e){return!!e&&!!(131072&e.flags)}function se(n,t){if(195!==n.kind)return!1;var r=n,a=r.expression,i=r.arguments;if(75!==a.kind||\"require\"!==a.escapedText)return!1;if(1!==i.length)return!1;var o=i[0];return!t||e.isStringLiteralLike(o)}function ce(n){return oe(n)&&n.initializer&&e.isBinaryExpression(n.initializer)&&(56===n.initializer.operatorToken.kind||60===n.initializer.operatorToken.kind)&&n.name&&rt(n.name)&&ue(n.name,n.initializer.left)?n.initializer.right:n.initializer}function le(n,t){if(e.isCallExpression(n)){var r=Be(n.expression);return 200===r.kind||201===r.kind?n:void 0}return 200===n.kind||213===n.kind||201===n.kind?n:e.isObjectLiteralExpression(n)&&(0===n.properties.length||t)?n:void 0}function ue(n,t){return rn(n)&&rn(t)?an(n)==an(n):e.isIdentifier(n)&&_e(t)?(103===t.expression.kind||e.isIdentifier(t.expression)&&(\"window\"===t.expression.escapedText||\"self\"===t.expression.escapedText||\"global\"===t.expression.escapedText))&&ue(n,be(t)):!(!_e(n)||!_e(t))&&(Te(n)===Te(t)&&ue(n.expression,t.expression))}function de(n){return e.isIdentifier(n)&&\"exports\"===n.escapedText}function pe(n){return(e.isPropertyAccessExpression(n)||ge(n))&&e.isIdentifier(n.expression)&&\"module\"===n.expression.escapedText&&\"exports\"===Te(n)}function me(n){var t=function(n){if(e.isCallExpression(n)){if(!fe(n))return 0;var t=n.arguments[0];return de(t)||pe(t)?8:ye(t)&&\"prototype\"===Te(t)?9:7}if(62!==n.operatorToken.kind||!Tt(n.left))return 0;if(he(n.left.expression,!0)&&\"prototype\"===Te(n.left)&&e.isObjectLiteralExpression(xe(n)))return 6;return Se(n.left)}(n);return 5===t||oe(n)?t:0}function fe(n){return 3===e.length(n.arguments)&&e.isPropertyAccessExpression(n.expression)&&e.isIdentifier(n.expression.expression)&&\"Object\"===e.idText(n.expression.expression)&&\"defineProperty\"===e.idText(n.expression.name)&&Qe(n.arguments[1])&&he(n.arguments[0],!0)}function _e(n){return e.isPropertyAccessExpression(n)||ge(n)}function ge(n){return e.isElementAccessExpression(n)&&(Qe(n.argumentExpression)||nn(n.argumentExpression))}function ye(n,t){return e.isPropertyAccessExpression(n)&&(!t&&103===n.expression.kind||he(n.expression,!0))||ve(n,t)}function ve(e,n){return ge(e)&&(!n&&103===e.expression.kind||rt(e.expression)||ye(e.expression,!0))}function he(e,n){return rt(e)||ye(e,n)}function be(n){return e.isPropertyAccessExpression(n)?n.name:n.argumentExpression}function Ee(n){if(e.isPropertyAccessExpression(n))return n.name;var t=Be(n.argumentExpression);return e.isNumericLiteral(t)||e.isStringLiteralLike(t)?t:n}function Te(n){var t=Ee(n);if(t){if(e.isIdentifier(t))return t.escapedText;if(e.isStringLiteralLike(t)||e.isNumericLiteral(t))return e.escapeLeadingUnderscores(t.text)}if(e.isElementAccessExpression(n)&&nn(n.argumentExpression))return on(e.idText(n.argumentExpression.name))}function Se(n){if(103===n.expression.kind)return 4;if(pe(n))return 2;if(he(n.expression,!0)){if(it(n.expression))return 3;for(var t=n;!e.isIdentifier(t.expression);)t=t.expression;var r=t.expression;if((\"exports\"===r.escapedText||\"module\"===r.escapedText&&\"exports\"===Te(t))&&ye(n))return 1;if(he(n,!0)||e.isElementAccessExpression(n)&&en(n)&&103!==n.expression.kind)return 5}return 0}function xe(n){for(;e.isBinaryExpression(n.right);)n=n.right;return n.right}function Le(n){switch(n.parent.kind){case 253:case 259:return n.parent;case 263:return n.parent.parent;case 195:return G(n.parent)||se(n.parent,!1)?n.parent:void 0;case 186:return e.Debug.assert(e.isStringLiteral(n)),e.tryCast(n.parent.parent,e.isImportTypeNode);default:return}}function Ce(e){return 315===e.kind||308===e.kind||309===e.kind}function Ae(n){return e.isExpressionStatement(n)&&e.isBinaryExpression(n.expression)&&0!==me(n.expression)&&e.isBinaryExpression(n.expression.right)&&(56===n.expression.right.operatorToken.kind||60===n.expression.right.operatorToken.kind)?n.expression.right.right:void 0}function De(e){switch(e.kind){case 224:var n=ke(e);return n&&n.initializer;case 158:case 279:return e.initializer}}function ke(n){return e.isVariableStatement(n)?e.firstOrUndefined(n.declarationList.declarations):void 0}function Ne(n){return e.isModuleDeclaration(n)&&n.body&&248===n.body.kind?n.body:void 0}function Ie(n){var t=n.parent;return 279===t.kind||258===t.kind||158===t.kind||225===t.kind&&193===n.kind||Ne(t)||e.isBinaryExpression(n)&&62===n.operatorToken.kind?t:t.parent&&(ke(t.parent)===n||e.isBinaryExpression(t)&&62===t.operatorToken.kind)?t.parent:t.parent&&t.parent.parent&&(ke(t.parent.parent)||De(t.parent.parent)===n||Ae(t.parent.parent))?t.parent.parent:void 0}function Me(e){return Oe(Re(e))}function Oe(n){var t,r=Ae(n)||(t=n,e.isExpressionStatement(t)&&t.expression&&e.isBinaryExpression(t.expression)&&62===t.expression.operatorToken.kind?t.expression.right:void 0)||De(n)||ke(n)||Ne(n)||n;return r&&e.isFunctionLike(r)?r:void 0}function Re(n){return e.Debug.assertDefined(i(n.parent,e.isJSDoc)).parent}function Pe(n){var t=e.isJSDocParameterTag(n)?n.typeExpression&&n.typeExpression.type:n.type;return void 0!==n.dotDotDotToken||!!t&&299===t.kind}function we(e){for(var n=e.parent;;){switch(n.kind){case 208:var t=n.operatorToken.kind;return Zn(t)&&n.left===e?62===t?1:2:0;case 206:case 207:var r=n.operator;return 45===r||46===r?2:0;case 230:case 231:return n.initializer===e?1:0;case 199:case 191:case 212:case 217:e=n;break;case 280:if(n.name!==e)return 0;e=n.parent;break;case 279:if(n.name===e)return 0;e=n.parent;break;default:return 0}n=e.parent}}function Fe(e,n){for(;e&&e.kind===n;)e=e.parent;return e}function Ge(e){return Fe(e,199)}function Be(e){for(;199===e.kind;)e=e.expression;return e}function Ve(n){return rt(n)||e.isClassExpression(n)}function Ue(e){return Ve(je(e))}function je(n){return e.isExportAssignment(n)?n.expression:n.right}function Ke(n){var t=He(n);if(t&&oe(n)){var r=e.getJSDocAugmentsTag(n);if(r)return r.class}return t}function He(e){var n=qe(e.heritageClauses,89);return n&&n.types.length>0?n.types[0]:void 0}function We(e){var n=qe(e.heritageClauses,112);return n?n.types:void 0}function ze(e){var n=qe(e.heritageClauses,89);return n?n.types:void 0}function qe(e,n){if(e)for(var t=0,r=e;t<r.length;t++){var a=r[t];if(a.token===n)return a}}function Je(e){return 76<=e&&e<=151}function Xe(e){return 121<=e&&e<=151}function Ye(e){return Je(e)&&!Xe(e)}function Qe(n){return e.isStringLiteralLike(n)||e.isNumericLiteral(n)}function Ze(n){return e.isPrefixUnaryExpression(n)&&(39===n.operator||40===n.operator)&&e.isNumericLiteral(n.operand)}function $e(n){var t=e.getNameOfDeclaration(n);return!!t&&en(t)}function en(n){if(153!==n.kind&&194!==n.kind)return!1;var t=e.isElementAccessExpression(n)?n.argumentExpression:n.expression;return!Qe(t)&&!Ze(t)&&!nn(t)}function nn(n){return e.isPropertyAccessExpression(n)&&sn(n.expression)}function tn(n){switch(n.kind){case 75:return n.escapedText;case 10:case 8:return e.escapeLeadingUnderscores(n.text);case 153:var t=n.expression;return nn(t)?on(e.idText(t.name)):Qe(t)?e.escapeLeadingUnderscores(t.text):void 0;default:return e.Debug.assertNever(n)}}function rn(e){switch(e.kind){case 75:case 10:case 14:case 8:return!0;default:return!1}}function an(n){return 75===n.kind?e.idText(n):n.text}function on(e){return\"__@\"+e}function sn(e){return 75===e.kind&&\"Symbol\"===e.escapedText}function cn(e){for(;190===e.kind;)e=e.parent.parent;return e}function ln(n){return e.positionIsSynthesized(n.pos)||e.positionIsSynthesized(n.end)}function un(e,n,t){switch(e){case 196:return t?0:1;case 206:case 203:case 204:case 202:case 205:case 209:case 211:return 1;case 208:switch(n){case 42:case 62:case 63:case 64:case 66:case 65:case 67:case 68:case 69:case 70:case 71:case 72:case 74:case 73:return 1}}return 0}function dn(e){return 208===e.kind?e.operatorToken.kind:206===e.kind||207===e.kind?e.operator:e.kind}function pn(e,n,t){switch(e){case 320:return 0;case 212:return 1;case 211:return 2;case 209:return 4;case 208:switch(n){case 27:return 0;case 62:case 63:case 64:case 66:case 65:case 67:case 68:case 69:case 70:case 71:case 72:case 74:case 73:return 3;default:return mn(n)}case 206:case 203:case 204:case 202:case 205:return 16;case 207:return 17;case 195:return 18;case 196:return t?19:18;case 197:case 193:case 194:return 19;case 103:case 101:case 75:case 99:case 105:case 90:case 8:case 9:case 10:case 191:case 192:case 200:case 201:case 213:case 264:case 265:case 268:case 13:case 14:case 210:case 199:case 214:return 20;default:return-1}}function mn(e){switch(e){case 60:return 4;case 56:return 5;case 55:return 6;case 51:return 7;case 52:return 8;case 50:return 9;case 34:case 35:case 36:case 37:return 10;case 29:case 31:case 32:case 33:case 97:case 96:case 122:return 11;case 47:case 48:case 49:return 12;case 39:case 40:return 13;case 41:case 43:case 44:return 14;case 42:return 15}return-1}e.isPartOfTypeNode=K,e.isChildOfNodeWithKind=function(e,n){for(;e;){if(e.kind===n)return!0;e=e.parent}return!1},e.forEachReturnStatement=function(n,t){return function n(r){switch(r.kind){case 234:return t(r);case 250:case 222:case 226:case 227:case 228:case 229:case 230:case 231:case 235:case 236:case 275:case 276:case 237:case 239:case 278:return e.forEachChild(r,n)}}(n)},e.forEachYieldExpression=function(n,t){return function n(r){switch(r.kind){case 211:t(r);var a=r.expression;return void(a&&n(a));case 247:case 245:case 248:case 246:case 244:case 213:return;default:if(e.isFunctionLike(r)){if(r.name&&153===r.name.kind)return void n(r.name.expression)}else K(r)||e.forEachChild(r,n)}}(n)},e.getRestParameterElementType=function(n){return n&&173===n.kind?n.elementType:n&&168===n.kind?e.singleOrUndefined(n.typeArguments):void 0},e.getMembersOfDeclaration=function(e){switch(e.kind){case 245:case 244:case 213:case 172:return e.members;case 192:return e.properties}},e.isVariableLike=H,e.isVariableLikeOrAccessor=function(n){return H(n)||e.isAccessor(n)},e.isVariableDeclarationInVariableStatement=W,e.isValidESSymbolDeclaration=function(n){return e.isVariableDeclaration(n)?F(n)&&e.isIdentifier(n.name)&&W(n):e.isPropertyDeclaration(n)?qn(n)&&zn(n):e.isPropertySignature(n)&&qn(n)},e.introducesArgumentsExoticObject=function(e){switch(e.kind){case 160:case 159:case 161:case 162:case 163:case 243:case 200:return!0}return!1},e.unwrapInnermostStatementOfLabel=function(e,n){for(;;){if(n&&n(e),237!==e.statement.kind)return e.statement;e=e.statement}},e.isFunctionBlock=function(n){return n&&222===n.kind&&e.isFunctionLike(n.parent)},e.isObjectLiteralMethod=function(e){return e&&160===e.kind&&192===e.parent.kind},e.isObjectLiteralOrClassExpressionMethod=function(e){return 160===e.kind&&(192===e.parent.kind||213===e.parent.kind)},e.isIdentifierTypePredicate=function(e){return e&&1===e.kind},e.isThisTypePredicate=function(e){return e&&0===e.kind},e.getPropertyAssignment=z,e.getTsConfigObjectLiteralExpression=q,e.getTsConfigPropArrayElementValue=function(n,t,r){return e.firstDefined(J(n,t),(function(n){return e.isArrayLiteralExpression(n.initializer)?e.find(n.initializer.elements,(function(n){return e.isStringLiteral(n)&&n.text===r})):void 0}))},e.getTsConfigPropArray=J,e.getContainingFunction=function(n){return i(n.parent,e.isFunctionLike)},e.getContainingFunctionDeclaration=function(n){return i(n.parent,e.isFunctionLikeDeclaration)},e.getContainingClass=function(n){return i(n.parent,e.isClassLike)},e.getThisContainer=X,e.getNewTargetContainer=function(e){var n=X(e,!1);if(n)switch(n.kind){case 161:case 243:case 200:return n}},e.getSuperContainer=function(n,t){for(;;){if(!(n=n.parent))return n;switch(n.kind){case 153:n=n.parent;break;case 243:case 200:case 201:if(!t)continue;case 158:case 157:case 160:case 159:case 161:case 162:case 163:return n;case 156:155===n.parent.kind&&e.isClassElement(n.parent.parent)?n=n.parent.parent:e.isClassElement(n.parent)&&(n=n.parent)}}},e.getImmediatelyInvokedFunctionExpression=function(e){if(200===e.kind||201===e.kind){for(var n=e,t=e.parent;199===t.kind;)n=t,t=t.parent;if(195===t.kind&&t.expression===n)return t}},e.isSuperOrSuperProperty=function(e){return 101===e.kind||Y(e)},e.isSuperProperty=Y,e.isThisProperty=function(e){var n=e.kind;return(193===n||194===n)&&103===e.expression.kind},e.getEntityNameFromTypeNode=function(e){switch(e.kind){case 168:return e.typeName;case 215:return rt(e.expression)?e.expression:void 0;case 75:case 152:return e}},e.getInvokedExpression=function(e){switch(e.kind){case 197:return e.tag;case 266:case 265:return e.tagName;default:return e.expression}},e.nodeCanBeDecorated=Q,e.nodeIsDecorated=Z,e.nodeOrChildIsDecorated=$,e.childIsDecorated=ee,e.isJSXTagName=ne,e.isExpressionNode=te,e.isInExpressionContext=re,e.isExternalModuleImportEqualsDeclaration=ae,e.getExternalModuleImportEqualsDeclarationExpression=function(n){return e.Debug.assert(ae(n)),n.moduleReference.expression},e.isInternalModuleImportEqualsDeclaration=function(e){return 252===e.kind&&263!==e.moduleReference.kind},e.isSourceFileJS=ie,e.isSourceFileNotJS=function(e){return!oe(e)},e.isInJSFile=oe,e.isInJsonFile=function(e){return!!e&&!!(33554432&e.flags)},e.isSourceFileNotJson=function(e){return!w(e)},e.isInJSDoc=function(e){return!!e&&!!(4194304&e.flags)},e.isJSDocIndexSignature=function(n){return e.isTypeReferenceNode(n)&&e.isIdentifier(n.typeName)&&\"Object\"===n.typeName.escapedText&&n.typeArguments&&2===n.typeArguments.length&&(142===n.typeArguments[0].kind||139===n.typeArguments[0].kind)},e.isRequireCall=se,e.isSingleOrDoubleQuote=function(e){return 39===e||34===e},e.isStringDoubleQuoted=function(e,n){return 34===v(n,e).charCodeAt(0)},e.getDeclarationOfExpando=function(n){if(n.parent){var t,r;if(e.isVariableDeclaration(n.parent)&&n.parent.initializer===n){if(!oe(n)&&!F(n.parent))return;t=n.parent.name,r=n.parent}else if(e.isBinaryExpression(n.parent)){var a=n.parent,i=n.parent.operatorToken.kind;if(62===i&&a.right===n)r=t=a.left;else if(!(56!==i&&60!==i||(e.isVariableDeclaration(a.parent)&&a.parent.initializer===a?(t=a.parent.name,r=a.parent):e.isBinaryExpression(a.parent)&&62===a.parent.operatorToken.kind&&a.parent.right===a&&(r=t=a.parent.left),t&&he(t)&&ue(t,a.left))))return}if(t&&le(n,it(t)))return r}},e.isAssignmentDeclaration=function(n){return e.isBinaryExpression(n)||Tt(n)||e.isIdentifier(n)||e.isCallExpression(n)},e.getEffectiveInitializer=ce,e.getDeclaredExpandoInitializer=function(e){var n=ce(e);return n&&le(n,it(e.name))},e.getAssignedExpandoInitializer=function(n){if(n&&n.parent&&e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind){var t=it(n.parent.left);return le(n.parent.right,t)||function(n,t,r){var a=e.isBinaryExpression(t)&&(56===t.operatorToken.kind||60===t.operatorToken.kind)&&le(t.right,r);if(a&&ue(n,t.left))return a}(n.parent.left,n.parent.right,t)}if(n&&e.isCallExpression(n)&&fe(n)){var r=function(n,t){return e.forEach(n.properties,(function(n){return e.isPropertyAssignment(n)&&e.isIdentifier(n.name)&&\"value\"===n.name.escapedText&&n.initializer&&le(n.initializer,t)}))}(n.arguments[2],\"prototype\"===n.arguments[1].text);if(r)return r}},e.getExpandoInitializer=le,e.isDefaultedExpandoInitializer=function(n){var t=e.isVariableDeclaration(n.parent)?n.parent.name:e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind?n.parent.left:void 0;return t&&le(n.right,it(t))&&rt(t)&&ue(t,n.left)},e.getNameOfExpando=function(n){if(e.isBinaryExpression(n.parent)){var t=56!==n.parent.operatorToken.kind&&60!==n.parent.operatorToken.kind||!e.isBinaryExpression(n.parent.parent)?n.parent:n.parent.parent;if(62===t.operatorToken.kind&&e.isIdentifier(t.left))return t.left}else if(e.isVariableDeclaration(n.parent))return n.parent.name},e.getRightMostAssignedExpression=function(e){for(;nt(e,!0);)e=e.right;return e},e.isExportsIdentifier=de,e.isModuleExportsAccessExpression=pe,e.getAssignmentDeclarationKind=me,e.isBindableObjectDefinePropertyCall=fe,e.isLiteralLikeAccess=_e,e.isLiteralLikeElementAccess=ge,e.isBindableStaticAccessExpression=ye,e.isBindableStaticElementAccessExpression=ve,e.isBindableStaticNameExpression=he,e.getNameOrArgument=be,e.getElementOrPropertyAccessArgumentExpressionOrName=Ee,e.getElementOrPropertyAccessName=Te,e.getAssignmentDeclarationPropertyAccessKind=Se,e.getInitializerOfBinaryExpression=xe,e.isPrototypePropertyAssignment=function(n){return e.isBinaryExpression(n)&&3===me(n)},e.isSpecialPropertyDeclaration=function(n){return oe(n)&&n.parent&&225===n.parent.kind&&(!e.isElementAccessExpression(n)||ge(n))&&!!e.getJSDocTypeTag(n.parent)},e.isFunctionSymbol=function(n){if(!n||!n.valueDeclaration)return!1;var t=n.valueDeclaration;return 243===t.kind||e.isVariableDeclaration(t)&&t.initializer&&e.isFunctionLike(t.initializer)},e.importFromModuleSpecifier=function(n){return Le(n)||e.Debug.failBadSyntaxKind(n.parent)},e.tryGetImportFromModuleSpecifier=Le,e.getExternalModuleName=function(n){switch(n.kind){case 253:case 259:return n.moduleSpecifier;case 252:return 263===n.moduleReference.kind?n.moduleReference.expression:void 0;case 187:return B(n)?n.argument.literal:void 0;default:return e.Debug.assertNever(n)}},e.getNamespaceDeclarationNode=function(n){switch(n.kind){case 253:return n.importClause&&e.tryCast(n.importClause.namedBindings,e.isNamespaceImport);case 252:return n;case 259:return;default:return e.Debug.assertNever(n)}},e.isDefaultImport=function(e){return 253===e.kind&&!!e.importClause&&!!e.importClause.name},e.hasQuestionToken=function(e){if(e)switch(e.kind){case 155:case 160:case 159:case 280:case 279:case 158:case 157:return void 0!==e.questionToken}return!1},e.isJSDocConstructSignature=function(n){var t=e.isJSDocFunctionType(n)?e.firstOrUndefined(n.parameters):void 0,r=e.tryCast(t&&t.name,e.isIdentifier);return!!r&&\"new\"===r.escapedText},e.isJSDocTypeAlias=Ce,e.isTypeAlias=function(n){return Ce(n)||e.isTypeAliasDeclaration(n)},e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=De,e.getJSDocCommentsAndTags=function(n){var t;H(n)&&e.hasInitializer(n)&&e.hasJSDocNodes(n.initializer)&&(t=e.append(t,e.last(n.initializer.jsDoc)));for(var r=n;r&&r.parent;){if(e.hasJSDocNodes(r)&&(t=e.append(t,e.last(r.jsDoc))),155===r.kind){t=e.addRange(t,e.getJSDocParameterTags(r));break}if(154===r.kind){t=e.addRange(t,e.getJSDocTypeParameterTags(r));break}r=Ie(r)}return t||e.emptyArray},e.getParameterSymbolFromJSDoc=function(n){if(n.symbol)return n.symbol;if(e.isIdentifier(n.name)){var t=n.name.escapedText,r=Me(n);if(r){var a=e.find(r.parameters,(function(e){return 75===e.name.kind&&e.name.escapedText===t}));return a&&a.symbol}}},e.getHostSignatureFromJSDoc=Me,e.getHostSignatureFromJSDocHost=Oe,e.getJSDocHost=Re,e.getTypeParameterFromJsDoc=function(n){var t=n.name.escapedText,r=n.parent.parent.parent.typeParameters;return r&&e.find(r,(function(e){return e.name.escapedText===t}))},e.hasRestParameter=function(n){var t=e.lastOrUndefined(n.parameters);return!!t&&Pe(t)},e.isRestParameter=Pe,function(e){e[e.None=0]=\"None\",e[e.Definite=1]=\"Definite\",e[e.Compound=2]=\"Compound\"}(e.AssignmentKind||(e.AssignmentKind={})),e.getAssignmentTargetKind=we,e.isAssignmentTarget=function(e){return 0!==we(e)},e.isNodeWithPossibleHoistedDeclaration=function(e){switch(e.kind){case 222:case 224:case 235:case 226:case 236:case 250:case 275:case 276:case 237:case 229:case 230:case 231:case 227:case 228:case 239:case 278:return!0}return!1},e.isValueSignatureDeclaration=function(n){return e.isFunctionExpression(n)||e.isArrowFunction(n)||e.isMethodOrAccessor(n)||e.isFunctionDeclaration(n)||e.isConstructorDeclaration(n)},e.walkUpParenthesizedTypes=function(e){return Fe(e,181)},e.walkUpParenthesizedExpressions=Ge,e.skipParentheses=Be,e.isDeleteTarget=function(e){return(193===e.kind||194===e.kind)&&((e=Ge(e.parent))&&202===e.kind)},e.isNodeDescendantOf=function(e,n){for(;e;){if(e===n)return!0;e=e.parent}return!1},e.isDeclarationName=function(n){return!e.isSourceFile(n)&&!e.isBindingPattern(n)&&e.isDeclaration(n.parent)&&n.parent.name===n},e.getDeclarationFromName=function(n){var t=n.parent;switch(n.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(t))return t.parent;case 75:if(e.isDeclaration(t))return t.name===n?t:void 0;if(e.isQualifiedName(t)){var r=t.parent;return e.isJSDocParameterTag(r)&&r.name===t?r:void 0}var a=t.parent;return e.isBinaryExpression(a)&&0!==me(a)&&(a.left.symbol||a.symbol)&&e.getNameOfDeclaration(a)===n?a:void 0;default:return}},e.isLiteralComputedPropertyDeclarationName=function(n){return Qe(n)&&153===n.parent.kind&&e.isDeclaration(n.parent.parent)},e.isIdentifierName=function(e){var n=e.parent;switch(n.kind){case 158:case 157:case 160:case 159:case 162:case 163:case 282:case 279:case 193:return n.name===e;case 152:if(n.right===e){for(;152===n.kind;)n=n.parent;return 171===n.kind||168===n.kind}return!1;case 190:case 257:return n.propertyName===e;case 261:case 271:return!0}return!1},e.isAliasSymbolDeclaration=function(n){return 252===n.kind||251===n.kind||254===n.kind&&!!n.name||255===n.kind||257===n.kind||261===n.kind||258===n.kind&&Ue(n)||e.isBinaryExpression(n)&&2===me(n)&&Ue(n)||e.isPropertyAccessExpression(n)&&e.isBinaryExpression(n.parent)&&n.parent.left===n&&62===n.parent.operatorToken.kind&&Ve(n.parent.right)||280===n.kind||279===n.kind&&Ve(n.initializer)},e.exportAssignmentIsAlias=Ue,e.getExportAssignmentExpression=je,e.getPropertyAssignmentAliasLikeExpression=function(e){return 280===e.kind?e.name:279===e.kind?e.initializer:e.parent.right},e.getEffectiveBaseTypeNode=Ke,e.getClassExtendsHeritageElement=He,e.getClassImplementsHeritageClauseElements=We,e.getAllSuperTypeNodes=function(n){return e.isInterfaceDeclaration(n)?ze(n)||e.emptyArray:e.isClassLike(n)&&e.concatenate(e.singleElementArray(Ke(n)),We(n))||e.emptyArray},e.getInterfaceBaseTypeNodes=ze,e.getHeritageClause=qe,e.getAncestor=function(e,n){for(;e;){if(e.kind===n)return e;e=e.parent}},e.isKeyword=Je,e.isContextualKeyword=Xe,e.isNonContextualKeyword=Ye,e.isFutureReservedKeyword=function(e){return 112<=e&&e<=120},e.isStringANonContextualKeyword=function(n){var t=e.stringToToken(n);return void 0!==t&&Ye(t)},e.isStringAKeyword=function(n){var t=e.stringToToken(n);return void 0!==t&&Je(t)},e.isIdentifierANonContextualKeyword=function(e){var n=e.originalKeywordKind;return!!n&&!Xe(n)},e.isTrivia=function(e){return 2<=e&&e<=7},function(e){e[e.Normal=0]=\"Normal\",e[e.Generator=1]=\"Generator\",e[e.Async=2]=\"Async\",e[e.Invalid=4]=\"Invalid\",e[e.AsyncGenerator=3]=\"AsyncGenerator\"}(e.FunctionFlags||(e.FunctionFlags={})),e.getFunctionFlags=function(e){if(!e)return 4;var n=0;switch(e.kind){case 243:case 200:case 160:e.asteriskToken&&(n|=1);case 201:Wn(e,256)&&(n|=2)}return e.body||(n|=4),n},e.isAsyncFunction=function(e){switch(e.kind){case 243:case 200:case 201:case 160:return void 0!==e.body&&void 0===e.asteriskToken&&Wn(e,256)}return!1},e.isStringOrNumericLiteralLike=Qe,e.isSignedNumericLiteral=Ze,e.hasDynamicName=$e,e.isDynamicName=en,e.isWellKnownSymbolSyntactically=nn,e.getPropertyNameForPropertyNameNode=tn,e.isPropertyNameLiteral=rn,e.getTextOfIdentifierOrLiteral=an,e.getEscapedTextOfIdentifierOrLiteral=function(n){return 75===n.kind?n.escapedText:e.escapeLeadingUnderscores(n.text)},e.getPropertyNameForKnownSymbolName=on,e.isKnownSymbol=function(n){return e.startsWith(n.escapedName,\"__@\")},e.isESSymbolIdentifier=sn,e.isPushOrUnshiftIdentifier=function(e){return\"push\"===e.escapedText||\"unshift\"===e.escapedText},e.isParameterDeclaration=function(e){return 155===cn(e).kind},e.getRootDeclaration=cn,e.nodeStartsNewLexicalEnvironment=function(e){var n=e.kind;return 161===n||200===n||243===n||201===n||160===n||162===n||163===n||248===n||288===n},e.nodeIsSynthesized=ln,e.getOriginalSourceFile=function(n){return e.getParseTreeNode(n,e.isSourceFile)||n},function(e){e[e.Left=0]=\"Left\",e[e.Right=1]=\"Right\"}(e.Associativity||(e.Associativity={})),e.getExpressionAssociativity=function(e){var n=dn(e),t=196===e.kind&&void 0!==e.arguments;return un(e.kind,n,t)},e.getOperatorAssociativity=un,e.getExpressionPrecedence=function(e){var n=dn(e),t=196===e.kind&&void 0!==e.arguments;return pn(e.kind,n,t)},e.getOperator=dn,e.getOperatorPrecedence=pn,e.getBinaryOperatorPrecedence=mn,e.createDiagnosticCollection=function(){var n=[],t=[],r=e.createMap(),a=!1;return{add:function(i){var o;i.file?(o=r.get(i.file.fileName))||(o=[],r.set(i.file.fileName,o),e.insertSorted(t,i.file.fileName,e.compareStringsCaseSensitive)):(a&&(a=!1,n=n.slice()),o=n);e.insertSorted(o,i,e.compareDiagnostics)},lookup:function(t){var a;a=t.file?r.get(t.file.fileName):n;if(!a)return;var i=e.binarySearch(a,t,e.identity,e.compareDiagnosticsSkipRelatedInformation);if(i>=0)return a[i];return},getGlobalDiagnostics:function(){return a=!0,n},getDiagnostics:function(a){if(a)return r.get(a)||[];var i=e.flatMapToMutable(t,(function(e){return r.get(e)}));if(!n.length)return i;return i.unshift.apply(i,n),i},reattachFileDiagnostics:function(n){e.forEach(r.get(n.fileName),(function(e){return e.file=n}))}}};var fn=/\\$\\{/g;var _n=/[\\\\\\\"\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,gn=/[\\\\\\'\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,yn=/[\\\\\\`]/g,vn=e.createMapFromTemplate({\"\\t\":\"\\\\t\",\"\\v\":\"\\\\v\",\"\\f\":\"\\\\f\",\"\\b\":\"\\\\b\",\"\\r\":\"\\\\r\",\"\\n\":\"\\\\n\",\"\\\\\":\"\\\\\\\\\",'\"':'\\\\\"',\"'\":\"\\\\'\",\"`\":\"\\\\`\",\"\\u2028\":\"\\\\u2028\",\"\\u2029\":\"\\\\u2029\",\"\":\"\\\\u0085\"});function hn(e,n){var t=96===n?yn:39===n?gn:_n;return e.replace(t,bn)}function bn(e,n,t){if(0===e.charCodeAt(0)){var r=t.charCodeAt(n+e.length);return r>=48&&r<=57?\"\\\\x00\":\"\\\\0\"}return vn.get(e)||En(e.charCodeAt(0))}function En(e){return\"\\\\u\"+(\"0000\"+e.toString(16).toUpperCase()).slice(-4)}e.escapeString=hn,e.stripQuotes=function(e){var n,t=e.length;return t>=2&&e.charCodeAt(0)===e.charCodeAt(t-1)&&(39===(n=e.charCodeAt(0))||34===n||96===n)?e.substring(1,t-1):e},e.isIntrinsicJsxName=function(n){var t=n.charCodeAt(0);return t>=97&&t<=122||e.stringContains(n,\"-\")};var Tn=/[^\\u0000-\\u007F]/g;function Sn(e,n){return e=hn(e,n),Tn.test(e)?e.replace(Tn,(function(e){return En(e.charCodeAt(0))})):e}e.escapeNonAsciiString=Sn;var xn=[\"\",\"    \"];function Ln(e){return void 0===xn[e]&&(xn[e]=Ln(e-1)+xn[1]),xn[e]}function Cn(){return xn[1].length}function An(e,n,t){return n.moduleName||Dn(e,n.fileName,t&&t.fileName)}function Dn(n,t,r){var a=function(e){return n.getCanonicalFileName(e)},i=e.toPath(r?e.getDirectoryPath(r):n.getCommonSourceDirectory(),n.getCurrentDirectory(),a),o=e.getNormalizedAbsolutePath(t,n.getCurrentDirectory()),s=e.getRelativePathToDirectoryOrUrl(i,o,i,a,!1),c=e.removeFileExtension(s);return r?e.ensurePathIsNonModuleName(c):c}function kn(n,t,r,a,i){var o=t.declarationDir||t.outDir,s=o?Mn(n,o,r,a,i):n;return e.removeFileExtension(s)+\".d.ts\"}function Nn(e,n,t){return!(n.getCompilerOptions().noEmitForJsFiles&&ie(e))&&!e.isDeclarationFile&&!n.isSourceFileFromExternalLibrary(e)&&!(w(e)&&n.getResolvedProjectReferenceToRedirect(e.fileName))&&(t||!n.isSourceOfProjectReferenceRedirect(e.fileName))}function In(e,n,t){return Mn(e,t,n.getCurrentDirectory(),n.getCommonSourceDirectory(),(function(e){return n.getCanonicalFileName(e)}))}function Mn(n,t,r,a,i){var o=e.getNormalizedAbsolutePath(n,r);return o=0===i(o).indexOf(i(a))?o.substring(a.length):o,e.combinePaths(t,o)}function On(n,t){return e.getLineAndCharacterOfPosition(n,t).line}function Rn(n,t){return e.computeLineAndCharacterOfPosition(n,t).line}function Pn(e){if(e&&e.parameters.length>0){var n=2===e.parameters.length&&wn(e.parameters[0]);return e.parameters[n?1:0]}}function wn(e){return Fn(e.name)}function Fn(e){return!!e&&75===e.kind&&Gn(e)}function Gn(e){return 103===e.originalKeywordKind}function Bn(n){var t=n.type;return t||!oe(n)?t:e.isJSDocPropertyLikeTag(n)?n.typeExpression&&n.typeExpression.type:e.getJSDocType(n)}function Vn(e,n,t,r){Un(e,n,t.pos,r)}function Un(e,n,t,r){r&&r.length&&t!==r[0].pos&&Rn(e,t)!==Rn(e,r[0].pos)&&n.writeLine()}function jn(e,n,t,r,a,i,o,s){if(r&&r.length>0){a&&t.writeSpace(\" \");for(var c=!1,l=0,u=r;l<u.length;l++){var d=u[l];c&&(t.writeSpace(\" \"),c=!1),s(e,n,t,d.pos,d.end,o),d.hasTrailingNewLine?t.writeLine():c=!0}c&&i&&t.writeSpace(\" \")}}function Kn(e,n,t,r,a,i){var o=Math.min(n,i-1),s=e.substring(a,o).replace(/^\\s+|\\s+$/g,\"\");s?(t.writeComment(s),o!==n&&t.writeLine()):t.rawWrite(r)}function Hn(n,t,r){for(var a=0;t<r&&e.isWhiteSpaceSingleLine(n.charCodeAt(t));t++)9===n.charCodeAt(t)?a+=Cn()-a%Cn():a++;return a}function Wn(e,n){return!!Jn(e,n)}function zn(e){return Wn(e,32)}function qn(e){return Wn(e,64)}function Jn(e,n){return Xn(e)&n}function Xn(e){if(536870912&e.modifierFlagsCache)return-536870913&e.modifierFlagsCache;var n=Yn(e);return e.modifierFlagsCache=536870912|n,n}function Yn(e){var n=0;if(e.modifiers)for(var t=0,r=e.modifiers;t<r.length;t++){n|=Qn(r[t].kind)}return(4&e.flags||75===e.kind&&e.isInJSDocNamespace)&&(n|=1),n}function Qn(e){switch(e){case 119:return 32;case 118:return 4;case 117:return 16;case 116:return 8;case 121:return 128;case 88:return 1;case 129:return 2;case 80:return 2048;case 83:return 512;case 125:return 256;case 137:return 64}return 0}function Zn(e){return e>=62&&e<=74}function $n(e){var n=et(e);return n&&!n.isImplements?n.class:void 0}function et(n){return e.isExpressionWithTypeArguments(n)&&e.isHeritageClause(n.parent)&&e.isClassLike(n.parent.parent)?{class:n.parent.parent,isImplements:112===n.parent.token}:void 0}function nt(n,t){return e.isBinaryExpression(n)&&(t?62===n.operatorToken.kind:Zn(n.operatorToken.kind))&&e.isLeftHandSideExpression(n.left)}function tt(e){return void 0!==$n(e)}function rt(e){return 75===e.kind||at(e)}function at(n){return e.isPropertyAccessExpression(n)&&rt(n.expression)}function it(e){return ye(e)&&\"prototype\"===Te(e)}e.getIndentString=Ln,e.getIndentSize=Cn,e.createTextWriter=function(n){var t,r,a,i,o,s=!1;function c(n){var r=e.computeLineStarts(n);r.length>1?(i=i+r.length-1,o=t.length-n.length+e.last(r),a=o-t.length==0):a=!1}function l(e){e&&e.length&&(a&&(e=Ln(r)+e,a=!1),t+=e,c(e))}function u(e){e&&(s=!1),l(e)}function d(){t=\"\",r=0,a=!0,i=0,o=0,s=!1}return d(),{write:u,rawWrite:function(e){void 0!==e&&(t+=e,c(e),s=!1)},writeLiteral:function(e){e&&e.length&&u(e)},writeLine:function(){a||(i++,o=(t+=n).length,a=!0,s=!1)},increaseIndent:function(){r++},decreaseIndent:function(){r--},getIndent:function(){return r},getTextPos:function(){return t.length},getLine:function(){return i},getColumn:function(){return a?r*Cn():t.length-o},getText:function(){return t},isAtStartOfLine:function(){return a},hasTrailingComment:function(){return s},hasTrailingWhitespace:function(){return!!t.length&&e.isWhiteSpaceLike(t.charCodeAt(t.length-1))},clear:d,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:e.noop,writeKeyword:u,writeOperator:u,writeParameter:u,writeProperty:u,writePunctuation:u,writeSpace:u,writeStringLiteral:u,writeSymbol:function(e,n){return u(e)},writeTrailingSemicolon:u,writeComment:function(e){e&&(s=!0),l(e)},getTextPosWithWriteLine:function(){return a?t.length:t.length+n.length}}},e.getTrailingSemicolonDeferringWriter=function(e){var n=!1;function t(){n&&(e.writeTrailingSemicolon(\";\"),n=!1)}return __assign(__assign({},e),{writeTrailingSemicolon:function(){n=!0},writeLiteral:function(n){t(),e.writeLiteral(n)},writeStringLiteral:function(n){t(),e.writeStringLiteral(n)},writeSymbol:function(n,r){t(),e.writeSymbol(n,r)},writePunctuation:function(n){t(),e.writePunctuation(n)},writeKeyword:function(n){t(),e.writeKeyword(n)},writeOperator:function(n){t(),e.writeOperator(n)},writeParameter:function(n){t(),e.writeParameter(n)},writeSpace:function(n){t(),e.writeSpace(n)},writeProperty:function(n){t(),e.writeProperty(n)},writeComment:function(n){t(),e.writeComment(n)},writeLine:function(){t(),e.writeLine()},increaseIndent:function(){t(),e.increaseIndent()},decreaseIndent:function(){t(),e.decreaseIndent()}})},e.getResolvedExternalModuleName=An,e.getExternalModuleNameFromDeclaration=function(e,n,t){var r=n.getExternalModuleFileFromDeclaration(t);if(r&&!r.isDeclarationFile)return An(e,r)},e.getExternalModuleNameFromPath=Dn,e.getOwnEmitOutputFilePath=function(n,t,r){var a=t.getCompilerOptions();return(a.outDir?e.removeFileExtension(In(n,t,a.outDir)):e.removeFileExtension(n))+r},e.getDeclarationEmitOutputFilePath=function(e,n){return kn(e,n.getCompilerOptions(),n.getCurrentDirectory(),n.getCommonSourceDirectory(),(function(e){return n.getCanonicalFileName(e)}))},e.getDeclarationEmitOutputFilePathWorker=kn,e.getSourceFilesToEmit=function(n,t,r){var a=n.getCompilerOptions();if(a.outFile||a.out){var i=e.getEmitModuleKind(a),o=a.emitDeclarationOnly||i===e.ModuleKind.AMD||i===e.ModuleKind.System;return e.filter(n.getSourceFiles(),(function(t){return(o||!e.isExternalModule(t))&&Nn(t,n,r)}))}var s=void 0===t?n.getSourceFiles():[t];return e.filter(s,(function(e){return Nn(e,n,r)}))},e.sourceFileMayBeEmitted=Nn,e.getSourceFilePathInNewDir=In,e.getSourceFilePathInNewDirWorker=Mn,e.writeFile=function(n,t,r,a,i,o){n.writeFile(r,a,i,(function(n){t.add(e.createCompilerDiagnostic(e.Diagnostics.Could_not_write_file_0_Colon_1,r,n))}),o)},e.getLineOfLocalPosition=On,e.getLineOfLocalPositionFromLineMap=Rn,e.getFirstConstructorWithBody=function(n){return e.find(n.members,(function(n){return e.isConstructorDeclaration(n)&&p(n.body)}))},e.getSetAccessorValueParameter=Pn,e.getSetAccessorTypeAnnotationNode=function(e){var n=Pn(e);return n&&n.type},e.getThisParameter=function(n){if(n.parameters.length&&!e.isJSDocSignature(n)){var t=n.parameters[0];if(wn(t))return t}},e.parameterIsThisKeyword=wn,e.isThisIdentifier=Fn,e.identifierIsThisKeyword=Gn,e.getAllAccessorDeclarations=function(n,t){var r,a,i,o;return $e(t)?(r=t,162===t.kind?i=t:163===t.kind?o=t:e.Debug.fail(\"Accessor has wrong kind\")):e.forEach(n,(function(n){e.isAccessor(n)&&Wn(n,32)===Wn(t,32)&&(tn(n.name)===tn(t.name)&&(r?a||(a=n):r=n,162!==n.kind||i||(i=n),163!==n.kind||o||(o=n)))})),{firstAccessor:r,secondAccessor:a,getAccessor:i,setAccessor:o}},e.getEffectiveTypeAnnotationNode=Bn,e.getTypeAnnotationNode=function(e){return e.type},e.getEffectiveReturnTypeNode=function(n){return e.isJSDocSignature(n)?n.type&&n.type.typeExpression&&n.type.typeExpression.type:n.type||(oe(n)?e.getJSDocReturnType(n):void 0)},e.getJSDocTypeParameterDeclarations=function(n){return e.flatMap(e.getJSDocTags(n),(function(n){return function(n){return e.isJSDocTemplateTag(n)&&!(301===n.parent.kind&&n.parent.tags.some(Ce))}(n)?n.typeParameters:void 0}))},e.getEffectiveSetAccessorTypeAnnotationNode=function(e){var n=Pn(e);return n&&Bn(n)},e.emitNewLineBeforeLeadingComments=Vn,e.emitNewLineBeforeLeadingCommentsOfPosition=Un,e.emitNewLineBeforeLeadingCommentOfPosition=function(e,n,t,r){t!==r&&Rn(e,t)!==Rn(e,r)&&n.writeLine()},e.emitComments=jn,e.emitDetachedComments=function(n,t,r,a,i,o,s){var c,l;if(s?0===i.pos&&(c=e.filter(e.getLeadingCommentRanges(n,i.pos),(function(e){return g(n,e.pos)}))):c=e.getLeadingCommentRanges(n,i.pos),c){for(var u=[],d=void 0,p=0,m=c;p<m.length;p++){var f=m[p];if(d){var _=Rn(t,d.end);if(Rn(t,f.pos)>=_+2)break}u.push(f),d=f}if(u.length){_=Rn(t,e.last(u).end);Rn(t,e.skipTrivia(n,i.pos))>=_+2&&(Vn(t,r,i,c),jn(n,t,r,u,!1,!0,o,a),l={nodePos:i.pos,detachedCommentEndPos:e.last(u).end})}}return l},e.writeCommentRange=function(n,t,r,a,i,o){if(42===n.charCodeAt(a+1))for(var s=e.computeLineAndCharacterOfPosition(t,a),c=t.length,l=void 0,u=a,d=s.line;u<i;d++){var p=d+1===c?n.length+1:t[d+1];if(u!==a){void 0===l&&(l=Hn(n,t[s.line],a));var m=r.getIndent()*Cn()-l+Hn(n,u,p);if(m>0){var f=m%Cn(),_=Ln((m-f)/Cn());for(r.rawWrite(_);f;)r.rawWrite(\" \"),f--}else r.rawWrite(\"\")}Kn(n,i,r,o,u,p),u=p}else r.writeComment(n.substring(a,i))},e.hasModifiers=function(e){return 0!==Xn(e)},e.hasModifier=Wn,e.hasStaticModifier=zn,e.hasReadonlyModifier=qn,e.getSelectedModifierFlags=Jn,e.getModifierFlags=Xn,e.getModifierFlagsNoCache=Yn,e.modifierToFlag=Qn,e.isLogicalOperator=function(e){return 56===e||55===e||53===e},e.isAssignmentOperator=Zn,e.tryGetClassExtendingExpressionWithTypeArguments=$n,e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=et,e.isAssignmentExpression=nt,e.isDestructuringAssignment=function(e){if(nt(e,!0)){var n=e.left.kind;return 192===n||191===n}return!1},e.isExpressionWithTypeArgumentsInClassExtendsClause=tt,e.isEntityNameExpression=rt,e.getFirstIdentifier=function(e){switch(e.kind){case 75:return e;case 152:do{e=e.left}while(75!==e.kind);return e;case 193:do{e=e.expression}while(75!==e.kind);return e}},e.isDottedName=function e(n){return 75===n.kind||103===n.kind||193===n.kind&&e(n.expression)||199===n.kind&&e(n.expression)},e.isPropertyAccessEntityNameExpression=at,e.tryGetPropertyAccessOrIdentifierToString=function n(t){return e.isPropertyAccessExpression(t)?n(t.expression)+\".\"+t.name:e.isIdentifier(t)?e.unescapeLeadingUnderscores(t.escapedText):void 0},e.isPrototypeAccess=it,e.isRightSideOfQualifiedNameOrPropertyAccess=function(e){return 152===e.parent.kind&&e.parent.right===e||193===e.parent.kind&&e.parent.name===e},e.isEmptyObjectLiteral=function(e){return 192===e.kind&&0===e.properties.length},e.isEmptyArrayLiteral=function(e){return 191===e.kind&&0===e.elements.length},e.getLocalSymbolForExportDefault=function(n){return function(n){return n&&e.length(n.declarations)>0&&Wn(n.declarations[0],512)}(n)?n.declarations[0].localSymbol:void 0},e.tryExtractTSExtension=function(n){return e.find(e.supportedTSExtensionsForExtractExtension,(function(t){return e.fileExtensionIs(n,t)}))};var ot=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function st(n){for(var t,r,a,i,o=\"\",s=function(n){for(var t=[],r=n.length,a=0;a<r;a++){var i=n.charCodeAt(a);i<128?t.push(i):i<2048?(t.push(i>>6|192),t.push(63&i|128)):i<65536?(t.push(i>>12|224),t.push(i>>6&63|128),t.push(63&i|128)):i<131072?(t.push(i>>18|240),t.push(i>>12&63|128),t.push(i>>6&63|128),t.push(63&i|128)):e.Debug.assert(!1,\"Unexpected code point\")}return t}(n),c=0,l=s.length;c<l;)t=s[c]>>2,r=(3&s[c])<<4|s[c+1]>>4,a=(15&s[c+1])<<2|s[c+2]>>6,i=63&s[c+2],c+1>=l?a=i=64:c+2>=l&&(i=64),o+=ot.charAt(t)+ot.charAt(r)+ot.charAt(a)+ot.charAt(i),c+=3;return o}e.convertToBase64=st,e.base64encode=function(e,n){return e&&e.base64encode?e.base64encode(n):st(n)},e.base64decode=function(e,n){if(e&&e.base64decode)return e.base64decode(n);for(var t=n.length,r=[],a=0;a<t&&n.charCodeAt(a)!==ot.charCodeAt(64);){var i=ot.indexOf(n[a]),o=ot.indexOf(n[a+1]),s=ot.indexOf(n[a+2]),c=ot.indexOf(n[a+3]),l=(63&i)<<2|o>>4&3,u=(15&o)<<4|s>>2&15,d=(3&s)<<6|63&c;0===u&&0!==s?r.push(l):0===d&&0!==c?r.push(l,u):r.push(l,u,d),a+=4}return function(e){for(var n=\"\",t=0,r=e.length;t<r;){var a=e[t];if(a<128)n+=String.fromCharCode(a),t++;else if(192==(192&a)){for(var i=63&a,o=e[++t];128==(192&o);)i=i<<6|63&o,o=e[++t];n+=String.fromCharCode(i)}else n+=String.fromCharCode(a),t++}return n}(r)},e.readJson=function(n,t){try{var r=t.readFile(n);if(!r)return{};var a=e.parseConfigFileTextToJson(n,r);return a.error?{}:a.config}catch(e){return{}}},e.directoryProbablyExists=function(e,n){return!n.directoryExists||n.directoryExists(e)};var ct;function lt(n,t){return void 0===t&&(t=n),e.Debug.assert(t>=n||-1===t),{pos:n,end:t}}function ut(e,n){return lt(n,e.end)}function dt(e){return e.decorators&&e.decorators.length>0?ut(e,e.decorators.end):e}function pt(e,n,t){return mt(ft(e,t),n.end,t)}function mt(e,n,t){return e===n||On(t,e)===On(t,n)}function ft(n,t){return e.positionIsSynthesized(n.pos)?-1:e.skipTrivia(t.text,n.pos)}function _t(e){return void 0!==e.initializer}function gt(e){return 33554432&e.flags?e.checkFlags:0}function yt(n){var t=n.parent;if(!t)return 0;switch(t.kind){case 199:return yt(t);case 207:case 206:var r=t.operator;return 45===r||46===r?c():0;case 208:var a=t,i=a.left,o=a.operatorToken;return i===n&&Zn(o.kind)?62===o.kind?1:c():0;case 193:return t.name!==n?0:yt(t);case 279:var s=yt(t.parent);return n===t.name?function(n){switch(n){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(n)}}(s):s;case 280:return n===t.objectAssignmentInitializer?0:yt(t.parent);case 191:return yt(t);default:return 0}function c(){return t.parent&&225===function(e){for(;199===e.kind;)e=e.parent;return e}(t.parent).kind?1:2}}function vt(e,n,t){var r=t.onDeleteValue,a=t.onExistingValue;e.forEach((function(t,i){var o=n.get(i);void 0===o?(e.delete(i),r(t,i)):a&&a(t,o,i)}))}function ht(e){if(32&e.flags){var n=bt(e);return!!n&&Wn(n,128)}return!1}function bt(n){return e.find(n.declarations,e.isClassLike)}function Et(e){return 3899392&e.flags?e.objectFlags:0}function Tt(e){return 193===e.kind||194===e.kind}e.getNewLineCharacter=function(n,t){switch(n.newLine){case 0:return\"\\r\\n\";case 1:return\"\\n\"}return t?t():e.sys?e.sys.newLine:\"\\r\\n\"},e.createRange=lt,e.moveRangeEnd=function(e,n){return lt(e.pos,n)},e.moveRangePos=ut,e.moveRangePastDecorators=dt,e.moveRangePastModifiers=function(e){return e.modifiers&&e.modifiers.length>0?ut(e,e.modifiers.end):dt(e)},e.isCollapsedRange=function(e){return e.pos===e.end},e.createTokenRange=function(n,t){return lt(n,n+e.tokenToString(t).length)},e.rangeIsOnSingleLine=function(e,n){return pt(e,e,n)},e.rangeStartPositionsAreOnSameLine=function(e,n,t){return mt(ft(e,t),ft(n,t),t)},e.rangeEndPositionsAreOnSameLine=function(e,n,t){return mt(e.end,n.end,t)},e.rangeStartIsOnSameLineAsRangeEnd=pt,e.rangeEndIsOnSameLineAsRangeStart=function(e,n,t){return mt(e.end,ft(n,t),t)},e.isNodeArrayMultiLine=function(e,n){return!mt(e.pos,e.end,n)},e.positionsAreOnSameLine=mt,e.getStartPositionOfRange=ft,e.isDeclarationNameOfEnumOrNamespace=function(n){var t=e.getParseTreeNode(n);if(t)switch(t.parent.kind){case 247:case 248:return t===t.parent.name}return!1},e.getInitializedVariables=function(n){return e.filter(n.declarations,_t)},e.isWatchSet=function(e){return e.watch&&e.hasOwnProperty(\"watch\")},e.closeFileWatcher=function(e){e.close()},e.getCheckFlags=gt,e.getDeclarationModifierFlagsFromSymbol=function(n){if(n.valueDeclaration){var t=e.getCombinedModifierFlags(n.valueDeclaration);return n.parent&&32&n.parent.flags?t:-29&t}if(6&gt(n)){var r=n.checkFlags;return(1024&r?8:256&r?4:16)|(2048&r?32:0)}return 4194304&n.flags?36:0},e.skipAlias=function(e,n){return 2097152&e.flags?n.getAliasedSymbol(e):e},e.getCombinedLocalAndExportSymbolFlags=function(e){return e.exportSymbol?e.exportSymbol.flags|e.flags:e.flags},e.isWriteOnlyAccess=function(e){return 1===yt(e)},e.isWriteAccess=function(e){return 0!==yt(e)},function(e){e[e.Read=0]=\"Read\",e[e.Write=1]=\"Write\",e[e.ReadWrite=2]=\"ReadWrite\"}(ct||(ct={})),e.compareDataObjects=function e(n,t){if(!n||!t||Object.keys(n).length!==Object.keys(t).length)return!1;for(var r in n)if(\"object\"==typeof n[r]){if(!e(n[r],t[r]))return!1}else if(\"function\"!=typeof n[r]&&n[r]!==t[r])return!1;return!0},e.clearMap=function(e,n){e.forEach(n),e.clear()},e.mutateMapSkippingNewValues=vt,e.mutateMap=function(e,n,t){vt(e,n,t);var r=t.createNewValue;n.forEach((function(n,t){e.has(t)||e.set(t,r(t,n))}))},e.isAbstractConstructorType=function(e){return!!(16&Et(e))&&!!e.symbol&&ht(e.symbol)},e.isAbstractConstructorSymbol=ht,e.getClassLikeDeclarationOfSymbol=bt,e.getObjectFlags=Et,e.typeHasCallOrConstructSignatures=function(e,n){return 0!==n.getSignaturesOfType(e,0).length||0!==n.getSignaturesOfType(e,1).length},e.forSomeAncestorDirectory=function(n,t){return!!e.forEachAncestorDirectory(n,(function(e){return!!t(e)||void 0}))},e.isUMDExportSymbol=function(n){return!!n&&!!n.declarations&&!!n.declarations[0]&&e.isNamespaceExportDeclaration(n.declarations[0])},e.showModuleSpecifier=function(n){var t=n.moduleSpecifier;return e.isStringLiteral(t)?t.text:b(t)},e.getLastChild=function(n){var t;return e.forEachChild(n,(function(e){p(e)&&(t=e)}),(function(e){for(var n=e.length-1;n>=0;n--)if(p(e[n])){t=e[n];break}})),t},e.addToSeen=function(e,n,t){return void 0===t&&(t=!0),n=String(n),!e.has(n)&&(e.set(n,t),!0)},e.isObjectTypeDeclaration=function(n){return e.isClassLike(n)||e.isInterfaceDeclaration(n)||e.isTypeLiteralNode(n)},e.isTypeNodeKind=function(e){return e>=167&&e<=187||124===e||147===e||139===e||150===e||140===e||127===e||142===e||143===e||103===e||109===e||145===e||99===e||136===e||215===e||293===e||294===e||295===e||296===e||297===e||298===e||299===e},e.isAccessExpression=Tt,e.isBundleFileTextLike=function(e){switch(e.kind){case\"text\":case\"internal\":return!0;default:return!1}},e.getDotOrQuestionDotToken=function(n){return n.questionDotToken||e.createNode(24,n.expression.end,n.name.pos)}}(ts||(ts={})),function(e){function n(e){return e.start+e.length}function t(e){return 0===e.length}function r(e,n){var t=i(e,n);return t&&0===t.length?void 0:t}function a(e,n,t,r){return t<=e+n&&t+r>=e}function i(e,t){var r=Math.max(e.start,t.start),a=Math.min(n(e),n(t));return r<=a?s(r,a):void 0}function o(e,n){if(e<0)throw new Error(\"start < 0\");if(n<0)throw new Error(\"length < 0\");return{start:e,length:n}}function s(e,n){return o(e,n-e)}function c(e,n){if(n<0)throw new Error(\"newLength < 0\");return{span:e,newLength:n}}function l(n){return!!e.isBindingPattern(n)&&e.every(n.elements,u)}function u(n){return!!e.isOmittedExpression(n)||l(n.name)}function d(n){for(var t=n.parent;e.isBindingElement(t.parent);)t=t.parent.parent;return t.parent}function p(n,t){e.isBindingElement(n)&&(n=d(n));var r=t(n);return 241===n.kind&&(n=n.parent),n&&242===n.kind&&(r|=t(n),n=n.parent),n&&224===n.kind&&(r|=t(n)),r}function m(e,n){if(e)for(;void 0!==e.original;)e=e.original;return!n||n(e)?e:void 0}function f(e){return 0==(8&e.flags)}function _(e){var n=e;return n.length>=3&&95===n.charCodeAt(0)&&95===n.charCodeAt(1)&&95===n.charCodeAt(2)?n.substr(1):n}function g(e){return _(e.escapedText)}function y(n){var t=n.parent.parent;if(t){if(e.isDeclaration(t))return v(t);switch(t.kind){case 224:if(t.declarationList&&t.declarationList.declarations[0])return v(t.declarationList.declarations[0]);break;case 225:var r=t.expression;switch(208===r.kind&&62===r.operatorToken.kind&&(r=r.left),r.kind){case 193:return r.name;case 194:var a=r.argumentExpression;if(e.isIdentifier(a))return a}break;case 199:return v(t.expression);case 237:if(e.isDeclaration(t.statement)||e.isExpression(t.statement))return v(t.statement)}}}function v(n){var t=T(n);return t&&e.isIdentifier(t)?t:void 0}function h(e){return e.name||y(e)}function b(e){return!!e.name}function E(n){switch(n.kind){case 75:return n;case 316:case 310:var t=n.name;if(152===t.kind)return t.right;break;case 195:case 208:var r=n;switch(e.getAssignmentDeclarationKind(r)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}case 315:return h(n);case 309:return y(n);case 258:var a=n.expression;return e.isIdentifier(a)?a:void 0;case 194:var i=n;if(e.isBindableStaticElementAccessExpression(i))return i.argumentExpression}return n.name}function T(n){if(void 0!==n)return E(n)||(e.isFunctionExpression(n)||e.isClassExpression(n)?function(n){if(!n.parent)return;if(e.isPropertyAssignment(n.parent)||e.isBindingElement(n.parent))return n.parent.name;if(e.isBinaryExpression(n.parent)&&n===n.parent.right){if(e.isIdentifier(n.parent.left))return n.parent.left;if(e.isAccessExpression(n.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(n.parent.left)}else if(e.isVariableDeclaration(n.parent)&&e.isIdentifier(n.parent.name))return n.parent.name}(n):void 0)}function S(n){if(n.name){if(e.isIdentifier(n.name)){var t=n.name.escapedText;return A(n.parent).filter((function(n){return e.isJSDocParameterTag(n)&&e.isIdentifier(n.name)&&n.name.escapedText===t}))}var r=n.parent.parameters.indexOf(n);e.Debug.assert(r>-1,\"Parameters should always be in their parents' parameter list\");var a=A(n.parent).filter(e.isJSDocParameterTag);if(r<a.length)return[a[r]]}return e.emptyArray}function x(n){return D(n,e.isJSDocReturnTag)}function L(n){var t=D(n,e.isJSDocTypeTag);if(t&&t.typeExpression&&t.typeExpression.type)return t}function C(n){var t=D(n,e.isJSDocTypeTag);return!t&&e.isParameter(n)&&(t=e.find(S(n),(function(e){return!!e.typeExpression}))),t&&t.typeExpression&&t.typeExpression.type}function A(n){var t=n.jsDocCache;if(void 0===t){var r=e.getJSDocCommentsAndTags(n);e.Debug.assert(r.length<2||r[0]!==r[1]),n.jsDocCache=t=e.flatMap(r,(function(n){return e.isJSDoc(n)?n.tags:n}))}return t}function D(n,t){return e.find(A(n),t)}e.getDefaultLibFileName=function(e){switch(e.target){case 99:return\"lib.esnext.full.d.ts\";case 7:return\"lib.es2020.full.d.ts\";case 6:return\"lib.es2019.full.d.ts\";case 5:return\"lib.es2018.full.d.ts\";case 4:return\"lib.es2017.full.d.ts\";case 3:return\"lib.es2016.full.d.ts\";case 2:return\"lib.es6.d.ts\";default:return\"lib.d.ts\"}},e.textSpanEnd=n,e.textSpanIsEmpty=t,e.textSpanContainsPosition=function(e,t){return t>=e.start&&t<n(e)},e.textRangeContainsPositionInclusive=function(e,n){return n>=e.pos&&n<=e.end},e.textSpanContainsTextSpan=function(e,t){return t.start>=e.start&&n(t)<=n(e)},e.textSpanOverlapsWith=function(e,n){return void 0!==r(e,n)},e.textSpanOverlap=r,e.textSpanIntersectsWithTextSpan=function(e,n){return a(e.start,e.length,n.start,n.length)},e.textSpanIntersectsWith=function(e,n,t){return a(e.start,e.length,n,t)},e.decodedTextSpanIntersectsWith=a,e.textSpanIntersectsWithPosition=function(e,t){return t<=n(e)&&t>=e.start},e.textSpanIntersection=i,e.createTextSpan=o,e.createTextSpanFromBounds=s,e.textChangeRangeNewSpan=function(e){return o(e.span.start,e.newLength)},e.textChangeRangeIsUnchanged=function(e){return t(e.span)&&0===e.newLength},e.createTextChangeRange=c,e.unchangedTextChangeRange=c(o(0,0),0),e.collapseTextChangeRangesAcrossMultipleVersions=function(t){if(0===t.length)return e.unchangedTextChangeRange;if(1===t.length)return t[0];for(var r=t[0],a=r.span.start,i=n(r.span),o=a+r.newLength,l=1;l<t.length;l++){var u=t[l],d=a,p=i,m=o,f=u.span.start,_=n(u.span),g=f+u.newLength;a=Math.min(d,f),i=Math.max(p,p+(_-m)),o=Math.max(g,g+(m-_))}return c(s(a,i),o-a)},e.getTypeParameterOwner=function(n){if(n&&154===n.kind)for(var t=n;t;t=t.parent)if(e.isFunctionLike(t)||e.isClassLike(t)||245===t.kind)return t},e.isParameterPropertyDeclaration=function(n,t){return e.hasModifier(n,92)&&161===t.kind},e.isEmptyBindingPattern=l,e.isEmptyBindingElement=u,e.walkUpBindingElementsAndPatterns=d,e.getCombinedModifierFlags=function(n){return p(n,e.getModifierFlags)},e.getCombinedNodeFlags=function(e){return p(e,(function(e){return e.flags}))},e.validateLocaleAndSetLanguage=function(n,t,r){var a=/^([a-z]+)([_\\-]([a-z]+))?$/.exec(n.toLowerCase());if(a){var i=a[1];o(i,a[3],r)||o(i,void 0,r),e.setUILocale(n)}else r&&r.push(e.createCompilerDiagnostic(e.Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1,\"en\",\"ja-jp\"));function o(n,r,a){var i=e.normalizePath(t.getExecutingFilePath()),o=e.getDirectoryPath(i),s=e.combinePaths(o,n);if(r&&(s=s+\"-\"+r),s=t.resolvePath(e.combinePaths(s,\"diagnosticMessages.generated.json\")),!t.fileExists(s))return!1;var c=\"\";try{c=t.readFile(s)}catch(n){return a&&a.push(e.createCompilerDiagnostic(e.Diagnostics.Unable_to_open_file_0,s)),!1}try{e.localizedDiagnosticMessages=JSON.parse(c)}catch(n){return a&&a.push(e.createCompilerDiagnostic(e.Diagnostics.Corrupted_locale_file_0,s)),!1}return!0}},e.getOriginalNode=m,e.isParseTreeNode=f,e.getParseTreeNode=function(e,n){return void 0===e||f(e)?e:!f(e=m(e))||n&&!n(e)?void 0:e},e.escapeLeadingUnderscores=function(e){return e.length>=2&&95===e.charCodeAt(0)&&95===e.charCodeAt(1)?\"_\"+e:e},e.unescapeLeadingUnderscores=_,e.idText=g,e.symbolName=function(e){return _(e.escapedName)},e.nodeHasName=function n(t,r){return!(!b(t)||!e.isIdentifier(t.name)||g(t.name)!==g(r))||!(!e.isVariableStatement(t)||!e.some(t.declarationList.declarations,(function(e){return n(e,r)})))},e.getNameOfJSDocTypedef=h,e.isNamedDeclaration=b,e.getNonAssignedNameOfDeclaration=E,e.getNameOfDeclaration=T,e.getJSDocParameterTags=S,e.getJSDocTypeParameterTags=function(n){var t=n.name.escapedText;return A(n.parent).filter((function(n){return e.isJSDocTemplateTag(n)&&n.typeParameters.some((function(e){return e.name.escapedText===t}))}))},e.hasJSDocParameterTags=function(n){return!!D(n,e.isJSDocParameterTag)},e.getJSDocAugmentsTag=function(n){return D(n,e.isJSDocAugmentsTag)},e.getJSDocClassTag=function(n){return D(n,e.isJSDocClassTag)},e.getJSDocEnumTag=function(n){return D(n,e.isJSDocEnumTag)},e.getJSDocThisTag=function(n){return D(n,e.isJSDocThisTag)},e.getJSDocReturnTag=x,e.getJSDocTemplateTag=function(n){return D(n,e.isJSDocTemplateTag)},e.getJSDocTypeTag=L,e.getJSDocType=C,e.getJSDocReturnType=function(n){var t=x(n);if(t&&t.typeExpression)return t.typeExpression.type;var r=L(n);if(r&&r.typeExpression){var a=r.typeExpression.type;if(e.isTypeLiteralNode(a)){var i=e.find(a.members,e.isCallSignatureDeclaration);return i&&i.type}if(e.isFunctionTypeNode(a))return a.type}},e.getJSDocTags=A,e.getAllJSDocTagsOfKind=function(e,n){return A(e).filter((function(e){return e.kind===n}))},e.getEffectiveTypeParameterDeclarations=function(n){if(e.isJSDocSignature(n))return e.emptyArray;if(e.isJSDocTypeAlias(n))return e.Debug.assert(301===n.parent.kind),e.flatMap(n.parent.tags,(function(n){return e.isJSDocTemplateTag(n)?n.typeParameters:void 0}));if(n.typeParameters)return n.typeParameters;if(e.isInJSFile(n)){var t=e.getJSDocTypeParameterDeclarations(n);if(t.length)return t;var r=C(n);if(r&&e.isFunctionTypeNode(r)&&r.typeParameters)return r.typeParameters}return e.emptyArray},e.getEffectiveConstraintOfTypeParameter=function(n){return n.constraint?n.constraint:e.isJSDocTemplateTag(n.parent)&&n===n.parent.typeParameters[0]?n.parent.constraint:void 0}}(ts||(ts={})),function(e){function n(e){return 75===e.kind}function t(e){return 168===e.kind}function r(e){return 193===e.kind}function a(e){return 194===e.kind}function i(e){return 195===e.kind}function o(e){var n=e.kind;return!!(32&e.flags)&&(193===n||194===n||195===n)}function s(e){return o(e)&&!!e.questionDotToken}function c(e){switch(e.kind){case 285:case 286:return!0;default:return!1}}e.isNumericLiteral=function(e){return 8===e.kind},e.isBigIntLiteral=function(e){return 9===e.kind},e.isStringLiteral=function(e){return 10===e.kind},e.isJsxText=function(e){return 11===e.kind},e.isRegularExpressionLiteral=function(e){return 13===e.kind},e.isNoSubstitutionTemplateLiteral=function(e){return 14===e.kind},e.isTemplateHead=function(e){return 15===e.kind},e.isTemplateMiddle=function(e){return 16===e.kind},e.isTemplateTail=function(e){return 17===e.kind},e.isIdentifier=n,e.isQualifiedName=function(e){return 152===e.kind},e.isComputedPropertyName=function(e){return 153===e.kind},e.isTypeParameterDeclaration=function(e){return 154===e.kind},e.isParameter=function(e){return 155===e.kind},e.isDecorator=function(e){return 156===e.kind},e.isPropertySignature=function(e){return 157===e.kind},e.isPropertyDeclaration=function(e){return 158===e.kind},e.isMethodSignature=function(e){return 159===e.kind},e.isMethodDeclaration=function(e){return 160===e.kind},e.isConstructorDeclaration=function(e){return 161===e.kind},e.isGetAccessorDeclaration=function(e){return 162===e.kind},e.isSetAccessorDeclaration=function(e){return 163===e.kind},e.isCallSignatureDeclaration=function(e){return 164===e.kind},e.isConstructSignatureDeclaration=function(e){return 165===e.kind},e.isIndexSignatureDeclaration=function(e){return 166===e.kind},e.isGetOrSetAccessorDeclaration=function(e){return 163===e.kind||162===e.kind},e.isTypePredicateNode=function(e){return 167===e.kind},e.isTypeReferenceNode=t,e.isFunctionTypeNode=function(e){return 169===e.kind},e.isConstructorTypeNode=function(e){return 170===e.kind},e.isTypeQueryNode=function(e){return 171===e.kind},e.isTypeLiteralNode=function(e){return 172===e.kind},e.isArrayTypeNode=function(e){return 173===e.kind},e.isTupleTypeNode=function(e){return 174===e.kind},e.isUnionTypeNode=function(e){return 177===e.kind},e.isIntersectionTypeNode=function(e){return 178===e.kind},e.isConditionalTypeNode=function(e){return 179===e.kind},e.isInferTypeNode=function(e){return 180===e.kind},e.isParenthesizedTypeNode=function(e){return 181===e.kind},e.isThisTypeNode=function(e){return 182===e.kind},e.isTypeOperatorNode=function(e){return 183===e.kind},e.isIndexedAccessTypeNode=function(e){return 184===e.kind},e.isMappedTypeNode=function(e){return 185===e.kind},e.isLiteralTypeNode=function(e){return 186===e.kind},e.isImportTypeNode=function(e){return 187===e.kind},e.isObjectBindingPattern=function(e){return 188===e.kind},e.isArrayBindingPattern=function(e){return 189===e.kind},e.isBindingElement=function(e){return 190===e.kind},e.isArrayLiteralExpression=function(e){return 191===e.kind},e.isObjectLiteralExpression=function(e){return 192===e.kind},e.isPropertyAccessExpression=r,e.isPropertyAccessChain=function(e){return r(e)&&!!(32&e.flags)},e.isElementAccessExpression=a,e.isElementAccessChain=function(e){return a(e)&&!!(32&e.flags)},e.isCallExpression=i,e.isCallChain=function(e){return i(e)&&!!(32&e.flags)},e.isOptionalChain=o,e.isOptionalChainRoot=s,e.isExpressionOfOptionalChainRoot=function(e){return s(e.parent)&&e.parent.expression===e},e.isOutermostOptionalChain=function(e){return!o(e.parent)||s(e.parent)||e!==e.parent.expression},e.isNullishCoalesce=function(e){return 208===e.kind&&60===e.operatorToken.kind},e.isNewExpression=function(e){return 196===e.kind},e.isTaggedTemplateExpression=function(e){return 197===e.kind},e.isTypeAssertion=function(e){return 198===e.kind},e.isConstTypeReference=function(e){return t(e)&&n(e.typeName)&&\"const\"===e.typeName.escapedText&&!e.typeArguments},e.isParenthesizedExpression=function(e){return 199===e.kind},e.skipPartiallyEmittedExpressions=function(e){for(;319===e.kind;)e=e.expression;return e},e.isFunctionExpression=function(e){return 200===e.kind},e.isArrowFunction=function(e){return 201===e.kind},e.isDeleteExpression=function(e){return 202===e.kind},e.isTypeOfExpression=function(e){return 203===e.kind},e.isVoidExpression=function(e){return 204===e.kind},e.isAwaitExpression=function(e){return 205===e.kind},e.isPrefixUnaryExpression=function(e){return 206===e.kind},e.isPostfixUnaryExpression=function(e){return 207===e.kind},e.isBinaryExpression=function(e){return 208===e.kind},e.isConditionalExpression=function(e){return 209===e.kind},e.isTemplateExpression=function(e){return 210===e.kind},e.isYieldExpression=function(e){return 211===e.kind},e.isSpreadElement=function(e){return 212===e.kind},e.isClassExpression=function(e){return 213===e.kind},e.isOmittedExpression=function(e){return 214===e.kind},e.isExpressionWithTypeArguments=function(e){return 215===e.kind},e.isAsExpression=function(e){return 216===e.kind},e.isNonNullExpression=function(e){return 217===e.kind},e.isMetaProperty=function(e){return 218===e.kind},e.isTemplateSpan=function(e){return 220===e.kind},e.isSemicolonClassElement=function(e){return 221===e.kind},e.isBlock=function(e){return 222===e.kind},e.isVariableStatement=function(e){return 224===e.kind},e.isEmptyStatement=function(e){return 223===e.kind},e.isExpressionStatement=function(e){return 225===e.kind},e.isIfStatement=function(e){return 226===e.kind},e.isDoStatement=function(e){return 227===e.kind},e.isWhileStatement=function(e){return 228===e.kind},e.isForStatement=function(e){return 229===e.kind},e.isForInStatement=function(e){return 230===e.kind},e.isForOfStatement=function(e){return 231===e.kind},e.isContinueStatement=function(e){return 232===e.kind},e.isBreakStatement=function(e){return 233===e.kind},e.isBreakOrContinueStatement=function(e){return 233===e.kind||232===e.kind},e.isReturnStatement=function(e){return 234===e.kind},e.isWithStatement=function(e){return 235===e.kind},e.isSwitchStatement=function(e){return 236===e.kind},e.isLabeledStatement=function(e){return 237===e.kind},e.isThrowStatement=function(e){return 238===e.kind},e.isTryStatement=function(e){return 239===e.kind},e.isDebuggerStatement=function(e){return 240===e.kind},e.isVariableDeclaration=function(e){return 241===e.kind},e.isVariableDeclarationList=function(e){return 242===e.kind},e.isFunctionDeclaration=function(e){return 243===e.kind},e.isClassDeclaration=function(e){return 244===e.kind},e.isInterfaceDeclaration=function(e){return 245===e.kind},e.isTypeAliasDeclaration=function(e){return 246===e.kind},e.isEnumDeclaration=function(e){return 247===e.kind},e.isModuleDeclaration=function(e){return 248===e.kind},e.isModuleBlock=function(e){return 249===e.kind},e.isCaseBlock=function(e){return 250===e.kind},e.isNamespaceExportDeclaration=function(e){return 251===e.kind},e.isImportEqualsDeclaration=function(e){return 252===e.kind},e.isImportDeclaration=function(e){return 253===e.kind},e.isImportClause=function(e){return 254===e.kind},e.isNamespaceImport=function(e){return 255===e.kind},e.isNamedImports=function(e){return 256===e.kind},e.isImportSpecifier=function(e){return 257===e.kind},e.isExportAssignment=function(e){return 258===e.kind},e.isExportDeclaration=function(e){return 259===e.kind},e.isNamedExports=function(e){return 260===e.kind},e.isExportSpecifier=function(e){return 261===e.kind},e.isMissingDeclaration=function(e){return 262===e.kind},e.isExternalModuleReference=function(e){return 263===e.kind},e.isJsxElement=function(e){return 264===e.kind},e.isJsxSelfClosingElement=function(e){return 265===e.kind},e.isJsxOpeningElement=function(e){return 266===e.kind},e.isJsxClosingElement=function(e){return 267===e.kind},e.isJsxFragment=function(e){return 268===e.kind},e.isJsxOpeningFragment=function(e){return 269===e.kind},e.isJsxClosingFragment=function(e){return 270===e.kind},e.isJsxAttribute=function(e){return 271===e.kind},e.isJsxAttributes=function(e){return 272===e.kind},e.isJsxSpreadAttribute=function(e){return 273===e.kind},e.isJsxExpression=function(e){return 274===e.kind},e.isCaseClause=function(e){return 275===e.kind},e.isDefaultClause=function(e){return 276===e.kind},e.isHeritageClause=function(e){return 277===e.kind},e.isCatchClause=function(e){return 278===e.kind},e.isPropertyAssignment=function(e){return 279===e.kind},e.isShorthandPropertyAssignment=function(e){return 280===e.kind},e.isSpreadAssignment=function(e){return 281===e.kind},e.isEnumMember=function(e){return 282===e.kind},e.isSourceFile=function(e){return 288===e.kind},e.isBundle=function(e){return 289===e.kind},e.isUnparsedSource=function(e){return 290===e.kind},e.isUnparsedPrepend=function(e){return 284===e.kind},e.isUnparsedTextLike=c,e.isUnparsedNode=function(e){return c(e)||283===e.kind||287===e.kind},e.isJSDocTypeExpression=function(e){return 292===e.kind},e.isJSDocAllType=function(e){return 293===e.kind},e.isJSDocUnknownType=function(e){return 294===e.kind},e.isJSDocNullableType=function(e){return 295===e.kind},e.isJSDocNonNullableType=function(e){return 296===e.kind},e.isJSDocOptionalType=function(e){return 297===e.kind},e.isJSDocFunctionType=function(e){return 298===e.kind},e.isJSDocVariadicType=function(e){return 299===e.kind},e.isJSDoc=function(e){return 301===e.kind},e.isJSDocAuthorTag=function(e){return 306===e.kind},e.isJSDocAugmentsTag=function(e){return 305===e.kind},e.isJSDocClassTag=function(e){return 307===e.kind},e.isJSDocEnumTag=function(e){return 309===e.kind},e.isJSDocThisTag=function(e){return 312===e.kind},e.isJSDocParameterTag=function(e){return 310===e.kind},e.isJSDocReturnTag=function(e){return 311===e.kind},e.isJSDocTypeTag=function(e){return 313===e.kind},e.isJSDocTemplateTag=function(e){return 314===e.kind},e.isJSDocTypedefTag=function(e){return 315===e.kind},e.isJSDocPropertyTag=function(e){return 316===e.kind},e.isJSDocPropertyLikeTag=function(e){return 316===e.kind||310===e.kind},e.isJSDocTypeLiteral=function(e){return 302===e.kind},e.isJSDocCallbackTag=function(e){return 308===e.kind},e.isJSDocSignature=function(e){return 303===e.kind}}(ts||(ts={})),function(e){function n(e){return e>=152}function t(e){return 8<=e&&e<=14}function r(e){return 14<=e&&e<=17}function a(e){switch(e){case 121:case 125:case 80:case 129:case 83:case 88:case 118:case 116:case 117:case 137:case 119:return!0}return!1}function i(n){return!!(92&e.modifierToFlag(n))}function o(e){return e&&c(e.kind)}function s(e){switch(e){case 243:case 160:case 161:case 162:case 163:case 200:case 201:return!0;default:return!1}}function c(e){switch(e){case 159:case 164:case 303:case 165:case 166:case 169:case 298:case 170:return!0;default:return s(e)}}function l(e){var n=e.kind;return 161===n||158===n||160===n||162===n||163===n||166===n||221===n}function u(e){var n=e.kind;return 165===n||164===n||157===n||159===n||166===n}function d(e){var n=e.kind;return 279===n||280===n||281===n||160===n||162===n||163===n}function p(e){switch(e.kind){case 188:case 192:return!0}return!1}function m(e){switch(e.kind){case 189:case 191:return!0}return!1}function f(e){switch(e){case 193:case 194:case 196:case 195:case 264:case 265:case 268:case 197:case 191:case 199:case 192:case 213:case 200:case 75:case 13:case 8:case 9:case 10:case 14:case 210:case 90:case 99:case 103:case 105:case 101:case 217:case 218:case 95:return!0;default:return!1}}function _(e){switch(e){case 206:case 207:case 202:case 203:case 204:case 205:case 198:return!0;default:return f(e)}}function g(n){return function(e){switch(e){case 209:case 211:case 201:case 208:case 212:case 216:case 214:case 320:case 319:return!0;default:return _(e)}}(e.skipPartiallyEmittedExpressions(n).kind)}function y(e){return 319===e.kind}function v(e){return 318===e.kind}function h(n){return e.isExportAssignment(n)||e.isExportDeclaration(n)}function b(e){return 243===e||262===e||244===e||245===e||246===e||247===e||248===e||253===e||252===e||259===e||258===e||251===e}function E(e){return 233===e||232===e||240===e||227===e||225===e||223===e||230===e||231===e||229===e||226===e||237===e||234===e||236===e||238===e||239===e||224===e||228===e||235===e||318===e||322===e||321===e}function T(e){return e.kind>=304&&e.kind<=316}function S(e){return!!e.initializer}e.isSyntaxList=function(e){return 317===e.kind},e.isNode=function(e){return n(e.kind)},e.isNodeKind=n,e.isToken=function(e){return e.kind>=0&&e.kind<=151},e.isNodeArray=function(e){return e.hasOwnProperty(\"pos\")&&e.hasOwnProperty(\"end\")},e.isLiteralKind=t,e.isLiteralExpression=function(e){return t(e.kind)},e.isTemplateLiteralKind=r,e.isTemplateLiteralToken=function(e){return r(e.kind)},e.isTemplateMiddleOrTemplateTail=function(e){var n=e.kind;return 16===n||17===n},e.isImportOrExportSpecifier=function(n){return e.isImportSpecifier(n)||e.isExportSpecifier(n)},e.isStringTextContainingNode=function(e){return 10===e.kind||r(e.kind)},e.isGeneratedIdentifier=function(n){return e.isIdentifier(n)&&(7&n.autoGenerateFlags)>0},e.isModifierKind=a,e.isParameterPropertyModifier=i,e.isClassMemberModifier=function(e){return i(e)||119===e},e.isModifier=function(e){return a(e.kind)},e.isEntityName=function(e){var n=e.kind;return 152===n||75===n},e.isPropertyName=function(e){var n=e.kind;return 75===n||10===n||8===n||153===n},e.isBindingName=function(e){var n=e.kind;return 75===n||188===n||189===n},e.isFunctionLike=o,e.isFunctionLikeDeclaration=function(e){return e&&s(e.kind)},e.isFunctionLikeKind=c,e.isFunctionOrModuleBlock=function(n){return e.isSourceFile(n)||e.isModuleBlock(n)||e.isBlock(n)&&o(n.parent)},e.isClassElement=l,e.isClassLike=function(e){return e&&(244===e.kind||213===e.kind)},e.isAccessor=function(e){return e&&(162===e.kind||163===e.kind)},e.isMethodOrAccessor=function(e){switch(e.kind){case 160:case 162:case 163:return!0;default:return!1}},e.isTypeElement=u,e.isClassOrTypeElement=function(e){return u(e)||l(e)},e.isObjectLiteralElementLike=d,e.isTypeNode=function(n){return e.isTypeNodeKind(n.kind)},e.isFunctionOrConstructorTypeNode=function(e){switch(e.kind){case 169:case 170:return!0}return!1},e.isBindingPattern=function(e){if(e){var n=e.kind;return 189===n||188===n}return!1},e.isAssignmentPattern=function(e){var n=e.kind;return 191===n||192===n},e.isArrayBindingElement=function(e){var n=e.kind;return 190===n||214===n},e.isDeclarationBindingElement=function(e){switch(e.kind){case 241:case 155:case 190:return!0}return!1},e.isBindingOrAssignmentPattern=function(e){return p(e)||m(e)},e.isObjectBindingOrAssignmentPattern=p,e.isArrayBindingOrAssignmentPattern=m,e.isPropertyAccessOrQualifiedNameOrImportTypeNode=function(e){var n=e.kind;return 193===n||152===n||187===n},e.isPropertyAccessOrQualifiedName=function(e){var n=e.kind;return 193===n||152===n},e.isCallLikeExpression=function(e){switch(e.kind){case 266:case 265:case 195:case 196:case 197:case 156:return!0;default:return!1}},e.isCallOrNewExpression=function(e){return 195===e.kind||196===e.kind},e.isTemplateLiteral=function(e){var n=e.kind;return 210===n||14===n},e.isLeftHandSideExpression=function(n){return f(e.skipPartiallyEmittedExpressions(n).kind)},e.isUnaryExpression=function(n){return _(e.skipPartiallyEmittedExpressions(n).kind)},e.isUnaryExpressionWithWrite=function(e){switch(e.kind){case 207:return!0;case 206:return 45===e.operator||46===e.operator;default:return!1}},e.isExpression=g,e.isAssertionExpression=function(e){var n=e.kind;return 198===n||216===n},e.isPartiallyEmittedExpression=y,e.isNotEmittedStatement=v,e.isSyntheticReference=function(e){return 323===e.kind},e.isNotEmittedOrPartiallyEmittedNode=function(e){return v(e)||y(e)},e.isIterationStatement=function e(n,t){switch(n.kind){case 229:case 230:case 231:case 227:case 228:return!0;case 237:return t&&e(n.statement,t)}return!1},e.isScopeMarker=h,e.hasScopeMarker=function(n){return e.some(n,h)},e.needsScopeMarker=function(n){return!(e.isAnyImportOrReExport(n)||e.isExportAssignment(n)||e.hasModifier(n,1)||e.isAmbientModule(n))},e.isExternalModuleIndicator=function(n){return e.isAnyImportOrReExport(n)||e.isExportAssignment(n)||e.hasModifier(n,1)},e.isForInOrOfStatement=function(e){return 230===e.kind||231===e.kind},e.isConciseBody=function(n){return e.isBlock(n)||g(n)},e.isFunctionBody=function(n){return e.isBlock(n)},e.isForInitializer=function(n){return e.isVariableDeclarationList(n)||g(n)},e.isModuleBody=function(e){var n=e.kind;return 249===n||248===n||75===n},e.isNamespaceBody=function(e){var n=e.kind;return 249===n||248===n},e.isJSDocNamespaceBody=function(e){var n=e.kind;return 75===n||248===n},e.isNamedImportBindings=function(e){var n=e.kind;return 256===n||255===n},e.isModuleOrEnumDeclaration=function(e){return 248===e.kind||247===e.kind},e.isDeclaration=function(n){return 154===n.kind?n.parent&&314!==n.parent.kind||e.isInJSFile(n):201===(t=n.kind)||190===t||244===t||213===t||161===t||247===t||282===t||261===t||243===t||200===t||162===t||254===t||252===t||257===t||245===t||271===t||160===t||159===t||248===t||251===t||255===t||155===t||279===t||158===t||157===t||163===t||280===t||246===t||154===t||241===t||315===t||308===t||316===t;var t},e.isDeclarationStatement=function(e){return b(e.kind)},e.isStatementButNotDeclaration=function(e){return E(e.kind)},e.isStatement=function(n){var t=n.kind;return E(t)||b(t)||function(n){if(222!==n.kind)return!1;if(void 0!==n.parent&&(239===n.parent.kind||278===n.parent.kind))return!1;return!e.isFunctionBlock(n)}(n)},e.isModuleReference=function(e){var n=e.kind;return 263===n||152===n||75===n},e.isJsxTagNameExpression=function(e){var n=e.kind;return 103===n||75===n||193===n},e.isJsxChild=function(e){var n=e.kind;return 264===n||274===n||265===n||11===n||268===n},e.isJsxAttributeLike=function(e){var n=e.kind;return 271===n||273===n},e.isStringLiteralOrJsxExpression=function(e){var n=e.kind;return 10===n||274===n},e.isJsxOpeningLikeElement=function(e){var n=e.kind;return 266===n||265===n},e.isCaseOrDefaultClause=function(e){var n=e.kind;return 275===n||276===n},e.isJSDocNode=function(e){return e.kind>=292&&e.kind<=316},e.isJSDocCommentContainingNode=function(n){return 301===n.kind||T(n)||e.isJSDocTypeLiteral(n)||e.isJSDocSignature(n)},e.isJSDocTag=T,e.isSetAccessor=function(e){return 163===e.kind},e.isGetAccessor=function(e){return 162===e.kind},e.hasJSDocNodes=function(e){var n=e.jsDoc;return!!n&&n.length>0},e.hasType=function(e){return!!e.type},e.hasInitializer=S,e.hasOnlyExpressionInitializer=function(n){return S(n)&&!e.isForStatement(n)&&!e.isForInStatement(n)&&!e.isForOfStatement(n)&&!e.isJsxAttribute(n)},e.isObjectLiteralElement=function(e){return 271===e.kind||273===e.kind||d(e)},e.isTypeReferenceType=function(e){return 168===e.kind||215===e.kind};e.guessIndentation=function(n){for(var t=1073741823,r=0,a=n;r<a.length;r++){var i=a[r];if(i.length){for(var o=0;o<i.length&&o<t&&e.isWhiteSpaceLike(i.charCodeAt(o));o++);if(o<t&&(t=o),0===t)return 0}}return 1073741823===t?void 0:t},e.isStringLiteralLike=function(e){return 10===e.kind||14===e.kind}}(ts||(ts={})),function(e){function n(e,n){this.flags=e,this.escapedName=n,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function t(n,t){this.flags=t,e.Debug.isDebugging&&(this.checker=n)}function r(n,t){this.flags=t,e.Debug.isDebugging&&(this.checker=n)}function a(e,n,t){this.pos=n,this.end=t,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function i(e,n,t){this.fileName=e,this.text=n,this.skipTrivia=t||function(e){return e}}function o(n,t,r){return void 0===r&&(r=0),n.replace(/{(\\d+)}/g,(function(n,a){return\"\"+e.Debug.assertDefined(t[+a+r])}))}function s(n){return e.localizedDiagnosticMessages&&e.localizedDiagnosticMessages[n.key]||n.message}function c(e){return e.file?e.file.path:void 0}function l(n,t){return u(n,t)||function(n,t){if(!n.relatedInformation&&!t.relatedInformation)return 0;if(n.relatedInformation&&t.relatedInformation)return e.compareValues(n.relatedInformation.length,t.relatedInformation.length)||e.forEach(n.relatedInformation,(function(e,n){return l(e,t.relatedInformation[n])}))||0;return n.relatedInformation?-1:1}(n,t)||0}function u(n,t){return e.compareStringsCaseSensitive(c(n),c(t))||e.compareValues(n.start,t.start)||e.compareValues(n.length,t.length)||e.compareValues(n.code,t.code)||function n(t,r){if(\"string\"==typeof t&&\"string\"==typeof r)return e.compareStringsCaseSensitive(t,r);if(\"string\"==typeof t)return-1;if(\"string\"==typeof r)return 1;var a=e.compareStringsCaseSensitive(t.messageText,r.messageText);if(a)return a;if(!t.next&&!r.next)return 0;if(!t.next)return-1;if(!r.next)return 1;for(var i=Math.min(t.next.length,r.next.length),o=0;o<i;o++)if(a=n(t.next[o],r.next[o]))return a;if(t.next.length<r.next.length)return-1;if(t.next.length>r.next.length)return 1;return 0}(n.messageText,t.messageText)||0}function d(e){return e.target||0}function p(n){return\"number\"==typeof n.module?n.module:d(n)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}function m(e){return!(!e.declaration&&!e.composite)}function f(e,n){return void 0===e[n]?!!e.strict:!!e[n]}function _(e,n){return n.strictFlag?f(e,n.name):e[n.name]}function g(n,t,r,a){for(var i=e.getPathComponents(e.toPath(n,r,a)),o=e.getPathComponents(e.toPath(t,r,a));!y(i[i.length-2],a)&&!y(o[o.length-2],a)&&a(i[i.length-1])===a(o[o.length-1]);)i.pop(),o.pop();return[e.getPathFromPathComponents(i),e.getPathFromPathComponents(o)]}function y(n,t){return\"node_modules\"===t(n)||e.startsWith(n,\"@\")}e.isNamedImportsOrExports=function(e){return 256===e.kind||260===e.kind},e.objectAllocator={getNodeConstructor:function(){return a},getTokenConstructor:function(){return a},getIdentifierConstructor:function(){return a},getSourceFileConstructor:function(){return a},getSymbolConstructor:function(){return n},getTypeConstructor:function(){return t},getSignatureConstructor:function(){return r},getSourceMapSourceConstructor:function(){return i}},e.formatStringFromArgs=o,e.getLocaleSpecificMessage=s,e.createFileDiagnostic=function(n,t,r,a){e.Debug.assertGreaterThanOrEqual(t,0),e.Debug.assertGreaterThanOrEqual(r,0),n&&(e.Debug.assertLessThanOrEqual(t,n.text.length),e.Debug.assertLessThanOrEqual(t+r,n.text.length));var i=s(a);return arguments.length>4&&(i=o(i,arguments,4)),{file:n,start:t,length:r,messageText:i,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary}},e.formatMessage=function(e,n){var t=s(n);return arguments.length>2&&(t=o(t,arguments,2)),t},e.createCompilerDiagnostic=function(e){var n=s(e);return arguments.length>1&&(n=o(n,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:n,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary}},e.createCompilerDiagnosticFromMessageChain=function(e){return{file:void 0,start:void 0,length:void 0,code:e.code,category:e.category,messageText:e.next?e:e.messageText}},e.chainDiagnosticMessages=function(e,n){var t=s(n);return arguments.length>2&&(t=o(t,arguments,2)),{messageText:t,category:n.category,code:n.code,next:void 0===e||Array.isArray(e)?e:[e]}},e.concatenateDiagnosticMessageChains=function(e,n){for(var t=e;t.next;)t=t.next[0];t.next=[n]},e.compareDiagnostics=l,e.compareDiagnosticsSkipRelatedInformation=u,e.getEmitScriptTarget=d,e.getEmitModuleKind=p,e.getEmitModuleResolutionKind=function(n){var t=n.moduleResolution;return void 0===t&&(t=p(n)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic),t},e.hasJsonModuleEmitEnabled=function(n){switch(p(n)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ESNext:return!0;default:return!1}},e.unreachableCodeIsError=function(e){return!1===e.allowUnreachableCode},e.unusedLabelIsError=function(e){return!1===e.allowUnusedLabels},e.getAreDeclarationMapsEnabled=function(e){return!(!m(e)||!e.declarationMap)},e.getAllowSyntheticDefaultImports=function(n){var t=p(n);return void 0!==n.allowSyntheticDefaultImports?n.allowSyntheticDefaultImports:n.esModuleInterop||t===e.ModuleKind.System},e.getEmitDeclarations=m,e.isIncrementalCompilation=function(e){return!(!e.incremental&&!e.composite)},e.getStrictOptionValue=f,e.compilerOptionsAffectSemanticDiagnostics=function(n,t){return t!==n&&e.semanticDiagnosticsOptionDeclarations.some((function(r){return!e.isJsonEqual(_(t,r),_(n,r))}))},e.compilerOptionsAffectEmit=function(n,t){return t!==n&&e.affectsEmitOptionDeclarations.some((function(r){return!e.isJsonEqual(_(t,r),_(n,r))}))},e.getCompilerOptionValue=_,e.hasZeroOrOneAsteriskCharacter=function(e){for(var n=!1,t=0;t<e.length;t++)if(42===e.charCodeAt(t)){if(n)return!1;n=!0}return!0},e.discoverProbableSymlinks=function(n,t,r){for(var a=e.createMap(),i=0,o=e.flatten(e.mapDefined(n,(function(n){return n.resolvedModules&&e.compact(e.arrayFrom(e.mapIterator(n.resolvedModules.values(),(function(e){return e&&e.originalPath&&e.resolvedFileName!==e.originalPath?[e.resolvedFileName,e.originalPath]:void 0}))))})));i<o.length;i++){var s=o[i],c=g(s[0],s[1],r,t),l=c[0],u=c[1];a.set(u,l)}return a}}(ts||(ts={})),function(e){e.tryRemoveDirectoryPrefix=function(n,t,r){var a,i=e.tryRemovePrefix(n,t,r);return void 0===i?void 0:(a=i,e.isAnyDirectorySeparator(a.charCodeAt(0))?a.slice(1):void 0)};var n=/[^\\w\\s\\/]/g;function t(e){return\"\\\\\"+e}e.regExpEscape=function(e){return e.replace(n,t)};var r=[42,63];e.commonPackageFolders=[\"node_modules\",\"bower_components\",\"jspm_packages\"];var a=\"(?!(\"+e.commonPackageFolders.join(\"|\")+\")(/|$))\",i={singleAsteriskRegexFragment:\"([^./]|(\\\\.(?!min\\\\.js$))?)*\",doubleAsteriskRegexFragment:\"(/\"+a+\"[^/.][^/]*)*?\",replaceWildcardCharacter:function(e){return p(e,i.singleAsteriskRegexFragment)}},o={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/\"+a+\"[^/.][^/]*)*?\",replaceWildcardCharacter:function(e){return p(e,o.singleAsteriskRegexFragment)}},s={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/.+?)?\",replaceWildcardCharacter:function(e){return p(e,s.singleAsteriskRegexFragment)}},c={files:i,directories:o,exclude:s};function l(e,n,t){var r=u(e,n,t);if(r&&r.length)return\"^(\"+r.map((function(e){return\"(\"+e+\")\"})).join(\"|\")+\")\"+(\"exclude\"===t?\"($|/)\":\"$\")}function u(t,r,i){if(void 0!==t&&0!==t.length)return e.flatMap(t,(function(t){return t&&function(t,r,i,o){var s=o.singleAsteriskRegexFragment,c=o.doubleAsteriskRegexFragment,l=o.replaceWildcardCharacter,u=\"\",p=!1,m=e.getNormalizedPathComponents(t,r),f=e.last(m);if(\"exclude\"!==i&&\"**\"===f)return;m[0]=e.removeTrailingDirectorySeparator(m[0]),d(f)&&m.push(\"**\",\"*\");for(var _=0,g=0,y=m;g<y.length;g++){var v=y[g];if(\"**\"===v)u+=c;else if(\"directories\"===i&&(u+=\"(\",_++),p&&(u+=e.directorySeparator),\"exclude\"!==i){var h=\"\";42===v.charCodeAt(0)?(h+=\"([^./]\"+s+\")?\",v=v.substr(1)):63===v.charCodeAt(0)&&(h+=\"[^./]\",v=v.substr(1)),(h+=v.replace(n,l))!==v&&(u+=a),u+=h}else u+=v.replace(n,l);p=!0}for(;_>0;)u+=\")?\",_--;return u}(t,r,i,c[i])}))}function d(e){return!/[.*?]/.test(e)}function p(e,n){return\"*\"===e?n:\"?\"===e?\"[^/]\":\"\\\\\"+e}function m(n,t,r,a,i){n=e.normalizePath(n),i=e.normalizePath(i);var o=e.combinePaths(i,n);return{includeFilePatterns:e.map(u(r,o,\"files\"),(function(e){return\"^\"+e+\"$\"})),includeFilePattern:l(r,o,\"files\"),includeDirectoryPattern:l(r,o,\"directories\"),excludePattern:l(t,o,\"exclude\"),basePaths:_(n,r,a)}}function f(e,n){return new RegExp(e,n?\"\":\"i\")}function _(n,t,r){var a=[n];if(t){for(var i=[],o=0,s=t;o<s.length;o++){var c=s[o],l=e.isRootedDiskPath(c)?c:e.normalizePath(e.combinePaths(n,c));i.push(g(l))}i.sort(e.getStringComparer(!r));for(var u=function(t){e.every(a,(function(a){return!e.containsPath(a,t,n,!r)}))&&a.push(t)},d=0,p=i;d<p.length;d++){u(p[d])}}return a}function g(n){var t=e.indexOfAnyCharCode(n,r);return t<0?e.hasExtension(n)?e.removeTrailingDirectorySeparator(e.getDirectoryPath(n)):n:n.substring(0,n.lastIndexOf(e.directorySeparator,t))}function y(e){switch(e.substr(e.lastIndexOf(\".\")).toLowerCase()){case\".js\":return 1;case\".jsx\":return 2;case\".ts\":return 3;case\".tsx\":return 4;case\".json\":return 6;default:return 0}}e.getRegularExpressionForWildcard=l,e.getRegularExpressionsForWildcards=u,e.isImplicitGlob=d,e.getFileMatcherPatterns=m,e.getRegexFromPattern=f,e.matchFiles=function(n,t,r,a,i,o,s,c,l){n=e.normalizePath(n),o=e.normalizePath(o);for(var u=m(n,r,a,i,o),d=u.includeFilePatterns&&u.includeFilePatterns.map((function(e){return f(e,i)})),p=u.includeDirectoryPattern&&f(u.includeDirectoryPattern,i),_=u.excludePattern&&f(u.excludePattern,i),g=d?d.map((function(){return[]})):[[]],y=e.createMap(),v=e.createGetCanonicalFileName(i),h=0,b=u.basePaths;h<b.length;h++){var E=b[h];T(E,e.combinePaths(o,E),s)}return e.flatten(g);function T(n,r,a){var i=v(l(r));if(!y.has(i)){y.set(i,!0);for(var o=c(n),s=o.files,u=o.directories,m=function(a){var i=e.combinePaths(n,a),o=e.combinePaths(r,a);if(t&&!e.fileExtensionIsOneOf(i,t))return\"continue\";if(_&&_.test(o))return\"continue\";if(d){var s=e.findIndex(d,(function(e){return e.test(o)}));-1!==s&&g[s].push(i)}else g[0].push(i)},f=0,h=e.sort(s,e.compareStringsCaseSensitive);f<h.length;f++){m(S=h[f])}if(void 0===a||0!=--a)for(var b=0,E=e.sort(u,e.compareStringsCaseSensitive);b<E.length;b++){var S=E[b],x=e.combinePaths(n,S),L=e.combinePaths(r,S);p&&!p.test(L)||_&&_.test(L)||T(x,L,a)}}}},e.ensureScriptKind=function(e,n){return n||y(e)||3},e.getScriptKindFromFileName=y,e.supportedTSExtensions=[\".ts\",\".tsx\",\".d.ts\"],e.supportedTSExtensionsWithJson=[\".ts\",\".tsx\",\".d.ts\",\".json\"],e.supportedTSExtensionsForExtractExtension=[\".d.ts\",\".ts\",\".tsx\"],e.supportedJSExtensions=[\".js\",\".jsx\"],e.supportedJSAndJsonExtensions=[\".js\",\".jsx\",\".json\"];var v=__spreadArrays(e.supportedTSExtensions,e.supportedJSExtensions),h=__spreadArrays(e.supportedTSExtensions,e.supportedJSExtensions,[\".json\"]);function b(n,t){var r=n&&n.allowJs;if(!t||0===t.length)return r?v:e.supportedTSExtensions;var a=__spreadArrays(r?v:e.supportedTSExtensions,e.mapDefined(t,(function(e){return 7===e.scriptKind||r&&(1===(n=e.scriptKind)||2===n)?e.extension:void 0;var n})));return e.deduplicate(a,e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function E(n,t){return n&&n.resolveJsonModule?t===v?h:t===e.supportedTSExtensions?e.supportedTSExtensionsWithJson:__spreadArrays(t,[\".json\"]):t}function T(e,n){return e<2?0:e<n.length?2:n.length}e.getSupportedExtensions=b,e.getSuppoertedExtensionsWithJsonIfResolveJsonModule=E,e.hasJSFileExtension=function(n){return e.some(e.supportedJSExtensions,(function(t){return e.fileExtensionIs(n,t)}))},e.hasJSOrJsonFileExtension=function(n){return e.supportedJSAndJsonExtensions.some((function(t){return e.fileExtensionIs(n,t)}))},e.hasTSFileExtension=function(n){return e.some(e.supportedTSExtensions,(function(t){return e.fileExtensionIs(n,t)}))},e.isSupportedSourceFileName=function(n,t,r){if(!n)return!1;for(var a=0,i=E(t,b(t,r));a<i.length;a++){var o=i[a];if(e.fileExtensionIs(n,o))return!0}return!1},function(e){e[e.TypeScriptFiles=0]=\"TypeScriptFiles\",e[e.DeclarationAndJavaScriptFiles=2]=\"DeclarationAndJavaScriptFiles\",e[e.Highest=0]=\"Highest\",e[e.Lowest=2]=\"Lowest\"}(e.ExtensionPriority||(e.ExtensionPriority={})),e.getExtensionPriority=function(n,t){for(var r=t.length-1;r>=0;r--)if(e.fileExtensionIs(n,t[r]))return T(r,t);return 0},e.adjustExtensionPriority=T,e.getNextLowestExtensionPriority=function(e,n){return e<2?2:n.length};var S=[\".d.ts\",\".ts\",\".js\",\".tsx\",\".jsx\",\".json\"];function x(n,t){return e.fileExtensionIs(n,t)?L(n,t):void 0}function L(e,n){return e.substring(0,e.length-n.length)}function C(n){e.Debug.assert(e.hasZeroOrOneAsteriskCharacter(n));var t=n.indexOf(\"*\");return-1===t?void 0:{prefix:n.substr(0,t),suffix:n.substr(t+1)}}function A(e){return\".ts\"===e||\".tsx\"===e||\".d.ts\"===e}function D(n){return e.find(S,(function(t){return e.fileExtensionIs(n,t)}))}e.removeFileExtension=function(e){for(var n=0,t=S;n<t.length;n++){var r=x(e,t[n]);if(void 0!==r)return r}return e},e.tryRemoveExtension=x,e.removeExtension=L,e.changeExtension=function(n,t){return e.changeAnyExtension(n,t,S,!1)},e.tryParsePattern=C,e.positionIsSynthesized=function(e){return!(e>=0)},e.extensionIsTS=A,e.resolutionExtensionIsTSOrJson=function(e){return A(e)||\".json\"===e},e.extensionFromPath=function(n){var t=D(n);return void 0!==t?t:e.Debug.fail(\"File \"+n+\" has unknown extension.\")},e.isAnySupportedFileExtension=function(e){return void 0!==D(e)},e.tryGetExtensionFromPath=D,e.isCheckJsEnabledForFile=function(e,n){return e.checkJsDirective?e.checkJsDirective.enabled:n.checkJs},e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray},e.matchPatternOrExact=function(n,t){for(var r=[],a=0,i=n;a<i.length;a++){var o=i[a];if(e.hasZeroOrOneAsteriskCharacter(o)){var s=C(o);if(s)r.push(s);else if(o===t)return o}}return e.findBestPatternMatch(r,(function(e){return e}),t)},e.sliceAfter=function(n,t){var r=n.indexOf(t);return e.Debug.assert(-1!==r),n.slice(r)},e.addRelatedInfo=function(e){for(var n,t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e.relatedInformation||(e.relatedInformation=[]),(n=e.relatedInformation).push.apply(n,t),e},e.minAndMax=function(n,t){e.Debug.assert(0!==n.length);for(var r=t(n[0]),a=r,i=1;i<n.length;i++){var o=t(n[i]);o<r?r=o:o>a&&(a=o)}return{min:r,max:a}};var k=function(){function n(){this.map=e.createMap()}return n.prototype.add=function(n){this.map.set(String(e.getNodeId(n)),n)},n.prototype.tryAdd=function(e){return!this.has(e)&&(this.add(e),!0)},n.prototype.has=function(n){return this.map.has(String(e.getNodeId(n)))},n.prototype.forEach=function(e){this.map.forEach(e)},n.prototype.some=function(n){return e.forEachEntry(this.map,n)||!1},n}();e.NodeSet=k;var N=function(){function n(){this.map=e.createMap()}return n.prototype.get=function(n){var t=this.map.get(String(e.getNodeId(n)));return t&&t.value},n.prototype.getOrUpdate=function(e,n){var t=this.get(e);if(t)return t;var r=n();return this.set(e,r),r},n.prototype.set=function(n,t){this.map.set(String(e.getNodeId(n)),{node:n,value:t})},n.prototype.has=function(n){return this.map.has(String(e.getNodeId(n)))},n.prototype.forEach=function(e){this.map.forEach((function(n){var t=n.node,r=n.value;return e(r,t)}))},n}();e.NodeMap=N,e.rangeOfNode=function(n){return{pos:e.getTokenPosOfNode(n),end:n.end}},e.rangeOfTypeParameters=function(e){return{pos:e.pos-1,end:e.end+1}},e.skipTypeChecking=function(e,n,t){return n.skipLibCheck&&e.isDeclarationFile||n.skipDefaultLibCheck&&e.hasNoDefaultLib||t.isSourceOfProjectReferenceRedirect(e.fileName)},e.isJsonEqual=function n(t,r){return t===r||\"object\"==typeof t&&null!==t&&\"object\"==typeof r&&null!==r&&e.equalOwnProperties(t,r,n)},e.getOrUpdate=function(e,n,t){var r=e.get(n);if(void 0===r){var a=t();return e.set(n,a),a}return r},e.parsePseudoBigInt=function(e){var n;switch(e.charCodeAt(1)){case 98:case 66:n=1;break;case 111:case 79:n=3;break;case 120:case 88:n=4;break;default:for(var t=e.length-1,r=0;48===e.charCodeAt(r);)r++;return e.slice(r,t)||\"0\"}for(var a=e.length-1,i=(a-2)*n,o=new Uint16Array((i>>>4)+(15&i?1:0)),s=a-1,c=0;s>=2;s--,c+=n){var l=c>>>4,u=e.charCodeAt(s),d=(u<=57?u-48:10+u-(u<=70?65:97))<<(15&c);o[l]|=d;var p=d>>>16;p&&(o[l+1]|=p)}for(var m=\"\",f=o.length-1,_=!0;_;){var g=0;_=!1;for(l=f;l>=0;l--){var y=g<<16|o[l],v=y/10|0;o[l]=v,g=y-10*v,v&&!_&&(f=l,_=!0)}m=g+m}return m},e.pseudoBigIntToString=function(e){var n=e.negative,t=e.base10Value;return(n&&\"0\"!==t?\"-\":\"\")+t}}(ts||(ts={})),function(e){var n,t,r,a,i,o,s;function c(e,n){return n&&e(n)}function l(e,n,t){if(t){if(n)return n(t);for(var r=0,a=t;r<a.length;r++){var i=e(a[r]);if(i)return i}}}function u(e,n){return 42===e.charCodeAt(n+1)&&42===e.charCodeAt(n+2)&&47!==e.charCodeAt(n+3)}function d(n,t,r){if(n&&!(n.kind<=151))switch(n.kind){case 152:return c(t,n.left)||c(t,n.right);case 154:return c(t,n.name)||c(t,n.constraint)||c(t,n.default)||c(t,n.expression);case 280:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||c(t,n.equalsToken)||c(t,n.objectAssignmentInitializer);case 281:return c(t,n.expression);case 155:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.dotDotDotToken)||c(t,n.name)||c(t,n.questionToken)||c(t,n.type)||c(t,n.initializer);case 158:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||c(t,n.type)||c(t,n.initializer);case 157:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.type)||c(t,n.initializer);case 279:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.initializer);case 241:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.exclamationToken)||c(t,n.type)||c(t,n.initializer);case 190:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.dotDotDotToken)||c(t,n.propertyName)||c(t,n.name)||c(t,n.initializer);case 169:case 170:case 164:case 165:case 166:return l(t,r,n.decorators)||l(t,r,n.modifiers)||l(t,r,n.typeParameters)||l(t,r,n.parameters)||c(t,n.type);case 160:case 159:case 161:case 162:case 163:case 200:case 243:case 201:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.asteriskToken)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||l(t,r,n.typeParameters)||l(t,r,n.parameters)||c(t,n.type)||c(t,n.equalsGreaterThanToken)||c(t,n.body);case 168:return c(t,n.typeName)||l(t,r,n.typeArguments);case 167:return c(t,n.assertsModifier)||c(t,n.parameterName)||c(t,n.type);case 171:return c(t,n.exprName);case 172:return l(t,r,n.members);case 173:return c(t,n.elementType);case 174:return l(t,r,n.elementTypes);case 177:case 178:return l(t,r,n.types);case 179:return c(t,n.checkType)||c(t,n.extendsType)||c(t,n.trueType)||c(t,n.falseType);case 180:return c(t,n.typeParameter);case 187:return c(t,n.argument)||c(t,n.qualifier)||l(t,r,n.typeArguments);case 181:case 183:return c(t,n.type);case 184:return c(t,n.objectType)||c(t,n.indexType);case 185:return c(t,n.readonlyToken)||c(t,n.typeParameter)||c(t,n.questionToken)||c(t,n.type);case 186:return c(t,n.literal);case 188:case 189:case 191:return l(t,r,n.elements);case 192:return l(t,r,n.properties);case 193:return c(t,n.expression)||c(t,n.questionDotToken)||c(t,n.name);case 194:return c(t,n.expression)||c(t,n.questionDotToken)||c(t,n.argumentExpression);case 195:case 196:return c(t,n.expression)||c(t,n.questionDotToken)||l(t,r,n.typeArguments)||l(t,r,n.arguments);case 197:return c(t,n.tag)||c(t,n.questionDotToken)||l(t,r,n.typeArguments)||c(t,n.template);case 198:return c(t,n.type)||c(t,n.expression);case 199:case 202:case 203:case 204:return c(t,n.expression);case 206:return c(t,n.operand);case 211:return c(t,n.asteriskToken)||c(t,n.expression);case 205:return c(t,n.expression);case 207:return c(t,n.operand);case 208:return c(t,n.left)||c(t,n.operatorToken)||c(t,n.right);case 216:return c(t,n.expression)||c(t,n.type);case 217:return c(t,n.expression);case 218:return c(t,n.name);case 209:return c(t,n.condition)||c(t,n.questionToken)||c(t,n.whenTrue)||c(t,n.colonToken)||c(t,n.whenFalse);case 212:return c(t,n.expression);case 222:case 249:return l(t,r,n.statements);case 288:return l(t,r,n.statements)||c(t,n.endOfFileToken);case 224:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.declarationList);case 242:return l(t,r,n.declarations);case 225:return c(t,n.expression);case 226:return c(t,n.expression)||c(t,n.thenStatement)||c(t,n.elseStatement);case 227:return c(t,n.statement)||c(t,n.expression);case 228:return c(t,n.expression)||c(t,n.statement);case 229:return c(t,n.initializer)||c(t,n.condition)||c(t,n.incrementor)||c(t,n.statement);case 230:return c(t,n.initializer)||c(t,n.expression)||c(t,n.statement);case 231:return c(t,n.awaitModifier)||c(t,n.initializer)||c(t,n.expression)||c(t,n.statement);case 232:case 233:return c(t,n.label);case 234:return c(t,n.expression);case 235:return c(t,n.expression)||c(t,n.statement);case 236:return c(t,n.expression)||c(t,n.caseBlock);case 250:return l(t,r,n.clauses);case 275:return c(t,n.expression)||l(t,r,n.statements);case 276:return l(t,r,n.statements);case 237:return c(t,n.label)||c(t,n.statement);case 238:return c(t,n.expression);case 239:return c(t,n.tryBlock)||c(t,n.catchClause)||c(t,n.finallyBlock);case 278:return c(t,n.variableDeclaration)||c(t,n.block);case 156:return c(t,n.expression);case 244:case 213:case 245:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.typeParameters)||l(t,r,n.heritageClauses)||l(t,r,n.members);case 246:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.typeParameters)||c(t,n.type);case 247:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.members);case 282:return c(t,n.name)||c(t,n.initializer);case 248:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.body);case 252:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.moduleReference);case 253:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.importClause)||c(t,n.moduleSpecifier);case 254:return c(t,n.name)||c(t,n.namedBindings);case 251:case 255:return c(t,n.name);case 256:case 260:return l(t,r,n.elements);case 259:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.exportClause)||c(t,n.moduleSpecifier);case 257:case 261:return c(t,n.propertyName)||c(t,n.name);case 258:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.expression);case 210:return c(t,n.head)||l(t,r,n.templateSpans);case 220:return c(t,n.expression)||c(t,n.literal);case 153:return c(t,n.expression);case 277:return l(t,r,n.types);case 215:return c(t,n.expression)||l(t,r,n.typeArguments);case 263:return c(t,n.expression);case 262:return l(t,r,n.decorators);case 320:return l(t,r,n.elements);case 264:return c(t,n.openingElement)||l(t,r,n.children)||c(t,n.closingElement);case 268:return c(t,n.openingFragment)||l(t,r,n.children)||c(t,n.closingFragment);case 265:case 266:return c(t,n.tagName)||l(t,r,n.typeArguments)||c(t,n.attributes);case 272:return l(t,r,n.properties);case 271:return c(t,n.name)||c(t,n.initializer);case 273:return c(t,n.expression);case 274:return c(t,n.dotDotDotToken)||c(t,n.expression);case 267:return c(t,n.tagName);case 175:case 176:case 292:case 296:case 295:case 297:case 299:return c(t,n.type);case 298:return l(t,r,n.parameters)||c(t,n.type);case 301:return l(t,r,n.tags);case 310:case 316:return c(t,n.tagName)||(n.isNameFirst?c(t,n.name)||c(t,n.typeExpression):c(t,n.typeExpression)||c(t,n.name));case 306:return c(t,n.tagName);case 305:return c(t,n.tagName)||c(t,n.class);case 314:return c(t,n.tagName)||c(t,n.constraint)||l(t,r,n.typeParameters);case 315:return c(t,n.tagName)||(n.typeExpression&&292===n.typeExpression.kind?c(t,n.typeExpression)||c(t,n.fullName):c(t,n.fullName)||c(t,n.typeExpression));case 308:return c(t,n.tagName)||c(t,n.fullName)||c(t,n.typeExpression);case 311:case 313:case 312:case 309:return c(t,n.tagName)||c(t,n.typeExpression);case 303:return e.forEach(n.typeParameters,t)||e.forEach(n.parameters,t)||c(t,n.type);case 302:return e.forEach(n.jsDocPropertyTags,t);case 304:case 307:return c(t,n.tagName);case 319:return c(t,n.expression)}}function p(n){return e.fileExtensionIs(n,\".d.ts\")}function m(n,t){for(var r=[],a=0,i=e.getLeadingCommentRanges(t,0)||e.emptyArray;a<i.length;a++){var o=i[a];h(r,o,t.substring(o.pos,o.end))}n.pragmas=e.createMap();for(var s=0,c=r;s<c.length;s++){var l=c[s];if(n.pragmas.has(l.name)){var u=n.pragmas.get(l.name);u instanceof Array?u.push(l.args):n.pragmas.set(l.name,[u,l.args])}else n.pragmas.set(l.name,l.args)}}function f(n,t){n.checkJsDirective=void 0,n.referencedFiles=[],n.typeReferenceDirectives=[],n.libReferenceDirectives=[],n.amdDependencies=[],n.hasNoDefaultLib=!1,n.pragmas.forEach((function(r,a){switch(a){case\"reference\":var i=n.referencedFiles,o=n.typeReferenceDirectives,s=n.libReferenceDirectives;e.forEach(e.toArray(r),(function(r){var a=r.arguments,c=a.types,l=a.lib,u=a.path;r.arguments[\"no-default-lib\"]?n.hasNoDefaultLib=!0:c?o.push({pos:c.pos,end:c.end,fileName:c.value}):l?s.push({pos:l.pos,end:l.end,fileName:l.value}):u?i.push({pos:u.pos,end:u.end,fileName:u.value}):t(r.range.pos,r.range.end-r.range.pos,e.Diagnostics.Invalid_reference_directive_syntax)}));break;case\"amd-dependency\":n.amdDependencies=e.map(e.toArray(r),(function(e){return{name:e.arguments.name,path:e.arguments.path}}));break;case\"amd-module\":if(r instanceof Array)for(var c=0,l=r;c<l.length;c++){var u=l[c];n.moduleName&&t(u.range.pos,u.range.end-u.range.pos,e.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments),n.moduleName=u.arguments.name}else n.moduleName=r.arguments.name;break;case\"ts-nocheck\":case\"ts-check\":e.forEach(e.toArray(r),(function(e){(!n.checkJsDirective||e.range.pos>n.checkJsDirective.pos)&&(n.checkJsDirective={enabled:\"ts-check\"===a,end:e.range.end,pos:e.range.pos})}));break;case\"jsx\":return;default:e.Debug.fail(\"Unhandled pragma kind\")}}))}!function(e){e[e.None=0]=\"None\",e[e.Yield=1]=\"Yield\",e[e.Await=2]=\"Await\",e[e.Type=4]=\"Type\",e[e.IgnoreMissingOpenBrace=16]=\"IgnoreMissingOpenBrace\",e[e.JSDoc=32]=\"JSDoc\"}(n||(n={})),e.createNode=function(n,o,s){return 288===n?new(i||(i=e.objectAllocator.getSourceFileConstructor()))(n,o,s):75===n?new(a||(a=e.objectAllocator.getIdentifierConstructor()))(n,o,s):e.isNodeKind(n)?new(t||(t=e.objectAllocator.getNodeConstructor()))(n,o,s):new(r||(r=e.objectAllocator.getTokenConstructor()))(n,o,s)},e.isJSDocLikeText=u,e.forEachChild=d,e.createSourceFile=function(n,t,r,a,i){var s;return void 0===a&&(a=!1),e.performance.mark(\"beforeParse\"),e.perfLogger.logStartParseSourceFile(n),s=100===r?o.parseSourceFile(n,t,r,void 0,a,6):o.parseSourceFile(n,t,r,void 0,a,i),e.perfLogger.logStopParseSourceFile(),e.performance.mark(\"afterParse\"),e.performance.measure(\"Parse\",\"beforeParse\",\"afterParse\"),s},e.parseIsolatedEntityName=function(e,n){return o.parseIsolatedEntityName(e,n)},e.parseJsonText=function(e,n){return o.parseJsonText(e,n)},e.isExternalModule=function(e){return void 0!==e.externalModuleIndicator},e.updateSourceFile=function(e,n,t,r){void 0===r&&(r=!1);var a=s.updateSourceFile(e,n,t,r);return a.flags|=3145728&e.flags,a},e.parseIsolatedJSDocComment=function(e,n,t){var r=o.JSDocParser.parseIsolatedJSDocComment(e,n,t);return r&&r.jsDoc&&o.fixupParentReferences(r.jsDoc),r},e.parseJSDocTypeExpressionForTests=function(e,n,t){return o.JSDocParser.parseJSDocTypeExpressionForTests(e,n,t)},function(n){var t,r,a,i,o,s,c,l,_,g,y,v,h,b,T,S,x,L,C=e.createScanner(99,!0),A=!1;function D(n,t,r,a,i){void 0===r&&(r=2),N(t,r,a,6),(o=P(n,2,6,!1)).flags=T,ae();var c=ne();if(1===te())o.statements=xe([],c,c),o.endOfFileToken=he();else{var l=Te(225);switch(te()){case 22:l.expression=Bt();break;case 105:case 90:case 99:l.expression=he();break;case 40:de((function(){return 8===ae()&&58!==ae()}))?l.expression=gt():l.expression=Ut();break;case 8:case 10:if(de((function(){return 58!==ae()}))){l.expression=ln();break}default:l.expression=Ut()}Le(l),o.statements=xe([l],c),o.endOfFileToken=ve(1,e.Diagnostics.Unexpected_token)}i&&R(o),o.nodeCount=g,o.identifierCount=v,o.identifiers=y,o.parseDiagnostics=s;var u=o;return I(),u}function k(e){return 4===e||2===e||1===e||6===e?1:0}function N(n,o,l,u){switch(t=e.objectAllocator.getNodeConstructor(),r=e.objectAllocator.getTokenConstructor(),a=e.objectAllocator.getIdentifierConstructor(),i=e.objectAllocator.getSourceFileConstructor(),_=n,c=l,s=[],h=0,y=e.createMap(),v=0,g=0,u){case 1:case 2:T=131072;break;case 6:T=33685504;break;default:T=0}A=!1,C.setText(_),C.setOnError(ee),C.setScriptTarget(o),C.setLanguageVariant(k(u))}function I(){C.setText(\"\"),C.setOnError(void 0),s=void 0,o=void 0,y=void 0,c=void 0,_=void 0,b=void 0}function M(n,t,r,a){var i=p(n);return i&&(T|=8388608),(o=P(n,t,a,i)).flags=T,ae(),m(o,_),f(o,(function(n,t,r){s.push(e.createFileDiagnostic(o,n,t,r))})),o.statements=Je(0,ar),e.Debug.assert(1===te()),o.endOfFileToken=O(he()),function(n){n.externalModuleIndicator=e.forEach(n.statements,qr)||function(e){return 2097152&e.flags?Jr(e):void 0}(n)}(o),o.nodeCount=g,o.identifierCount=v,o.identifiers=y,o.parseDiagnostics=s,r&&R(o),o}function O(n){e.Debug.assert(!n.jsDoc);var t=e.mapDefined(e.getJSDocCommentRanges(n,o.text),(function(e){return L.parseJSDocComment(n,e.pos,e.end-e.pos)}));return t.length&&(n.jsDoc=t),n}function R(n){var t=n;return void d(n,(function n(r){if(r.parent!==t){r.parent=t;var a=t;if(t=r,d(r,n),e.hasJSDocNodes(r))for(var i=0,o=r.jsDoc;i<o.length;i++){var s=o[i];s.parent=r,t=s,d(s,n)}t=a}}))}function P(n,t,r,a){var o=new i(288,0,_.length);return g++,o.text=_,o.bindDiagnostics=[],o.bindSuggestionDiagnostics=void 0,o.languageVersion=t,o.fileName=e.normalizePath(n),o.languageVariant=k(r),o.isDeclarationFile=a,o.scriptKind=r,o}function w(e,n){e?T|=n:T&=~n}function F(e){w(e,4096)}function G(e){w(e,8192)}function B(e){w(e,16384)}function V(e){w(e,32768)}function U(e,n){var t=e&T;if(t){w(!1,t);var r=n();return w(!0,t),r}return n()}function j(e,n){var t=e&~T;if(t){w(!0,t);var r=n();return w(!1,t),r}return n()}function K(e){return U(4096,e)}function H(e){return j(32768,e)}function W(e){return 0!=(T&e)}function z(){return W(8192)}function q(){return W(4096)}function J(){return W(16384)}function X(){return W(32768)}function Y(e,n){Z(C.getTokenPos(),C.getTextPos(),e,n)}function Q(n,t,r,a){var i=e.lastOrUndefined(s);i&&n===i.start||s.push(e.createFileDiagnostic(o,n,t,r,a)),A=!0}function Z(e,n,t,r){Q(e,n-e,t,r)}function $(e,n,t){Z(e.pos,e.end,n,t)}function ee(e,n){Q(C.getTextPos(),n,e)}function ne(){return C.getStartPos()}function te(){return l}function re(){return l=C.scan()}function ae(){return e.isKeyword(l)&&(C.hasUnicodeEscape()||C.hasExtendedUnicodeEscape())&&Z(C.getTokenPos(),C.getTextPos(),e.Diagnostics.Keywords_cannot_contain_escape_characters),re()}function ie(){return l=C.scanJsDocToken()}function oe(){return l=C.reScanGreaterToken()}function se(){return l=C.reScanLessThanToken()}function ce(){return l=C.scanJsxIdentifier()}function le(){return l=C.scanJsxToken()}function ue(n,t){var r=l,a=s.length,i=A,o=T,c=t?C.lookAhead(n):C.tryScan(n);return e.Debug.assert(o===T),c&&!t||(l=r,s.length=a,A=i),c}function de(e){return ue(e,!0)}function pe(e){return ue(e,!1)}function me(){return 75===te()||(120!==te()||!z())&&((126!==te()||!X())&&te()>111)}function fe(n,t,r){return void 0===r&&(r=!0),te()===n?(r&&ae(),!0):(t?Y(t):Y(e.Diagnostics._0_expected,e.tokenToString(n)),!1)}function _e(e){return te()===e&&(ae(),!0)}function ge(e){if(te()===e)return he()}function ye(e){if(te()===e)return n=Te(te()),ie(),Le(n);var n}function ve(n,t,r){return ge(n)||Ce(n,!1,t||e.Diagnostics._0_expected,r||e.tokenToString(n))}function he(){var e=Te(te());return ae(),Le(e)}function be(){return 26===te()||(19===te()||1===te()||C.hasPrecedingLineBreak())}function Ee(){return be()?(26===te()&&ae(),!0):fe(26)}function Te(n,i){g++;var o=i>=0?i:C.getStartPos();return e.isNodeKind(n)||0===n?new t(n,o,o):75===n?new a(n,o,o):new r(n,o,o)}function Se(e,n){var t=Te(e,n);return 2&C.getTokenFlags()&&O(t),t}function xe(e,n,t){var r=e.length,a=r>=1&&r<=4?e.slice():e;return a.pos=n,a.end=void 0===t?C.getStartPos():t,a}function Le(e,n){return e.end=void 0===n?C.getStartPos():n,T&&(e.flags|=T),A&&(A=!1,e.flags|=65536),e}function Ce(n,t,r,a){t?Q(C.getStartPos(),0,r,a):r&&Y(r,a);var i=Te(n);return 75===n?i.escapedText=\"\":(e.isLiteralKind(n)||e.isTemplateLiteralKind(n))&&(i.text=\"\"),Le(i)}function Ae(e){var n=y.get(e);return void 0===n&&y.set(e,n=e),n}function De(n,t){if(v++,n){var r=Te(75);return 75!==te()&&(r.originalKeywordKind=te()),r.escapedText=e.escapeLeadingUnderscores(Ae(C.getTokenValue())),re(),Le(r)}var a=1===te(),i=C.isReservedWord(),o=C.getTokenText(),s=i?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return Ce(75,a,t||s,o)}function ke(e){return De(me(),e)}function Ne(n){return De(e.tokenIsIdentifierOrKeyword(te()),n)}function Ie(){return e.tokenIsIdentifierOrKeyword(te())||10===te()||8===te()}function Me(e){if(10===te()||8===te()){var n=ln();return n.text=Ae(n.text),n}return e&&22===te()?function(){var e=Te(153);return fe(22),e.expression=K(tt),fe(23),Le(e)}():Ne()}function Oe(){return Me(!0)}function Re(e){return te()===e&&pe(we)}function Pe(){return ae(),!C.hasPrecedingLineBreak()&&Fe()}function we(){switch(te()){case 80:return 87===ae();case 88:return ae(),83===te()?de(Ge):41!==te()&&122!==te()&&18!==te()&&Fe();case 83:return Ge();case 119:case 130:case 141:return ae(),Fe();default:return Pe()}}function Fe(){return 22===te()||18===te()||41===te()||25===te()||Ie()}function Ge(){return ae(),79===te()||93===te()||113===te()||121===te()&&de(Qt)||125===te()&&de(Zt)}function Be(n,t){if(Ye(n))return!0;switch(n){case 0:case 1:case 3:return!(26===te()&&t)&&tr();case 2:return 77===te()||83===te();case 4:return de(An);case 5:return de(Lr)||26===te()&&!t;case 6:return 22===te()||Ie();case 12:switch(te()){case 22:case 41:case 25:case 24:return!0;default:return Ie()}case 18:return Ie();case 9:return 22===te()||25===te()||Ie();case 7:return 18===te()?de(Ve):t?me()&&!He():et()&&!He();case 8:return pr();case 10:return 27===te()||25===te()||pr();case 19:return me();case 15:switch(te()){case 27:case 24:return!0}case 11:return 25===te()||nt();case 16:return hn(!1);case 17:return hn(!0);case 20:case 21:return 27===te()||jn();case 22:return wr();case 23:return e.tokenIsIdentifierOrKeyword(te());case 13:return e.tokenIsIdentifierOrKeyword(te())||18===te();case 14:return!0}return e.Debug.fail(\"Non-exhaustive case in 'isListElement'.\")}function Ve(){if(e.Debug.assert(18===te()),19===ae()){var n=ae();return 27===n||18===n||89===n||112===n}return!0}function Ue(){return ae(),me()}function je(){return ae(),e.tokenIsIdentifierOrKeyword(te())}function Ke(){return ae(),e.tokenIsIdentifierOrKeywordOrGreaterThan(te())}function He(){return(112===te()||89===te())&&de(We)}function We(){return ae(),nt()}function ze(){return ae(),jn()}function qe(e){if(1===te())return!0;switch(e){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:return 19===te();case 3:return 19===te()||77===te()||83===te();case 7:return 18===te()||89===te()||112===te();case 8:return function(){if(be())return!0;if(pt(te()))return!0;if(38===te())return!0;return!1}();case 19:return 31===te()||20===te()||18===te()||89===te()||112===te();case 11:return 21===te()||26===te();case 15:case 21:case 10:return 23===te();case 17:case 16:case 18:return 21===te()||23===te();case 20:return 27!==te();case 22:return 18===te()||19===te();case 13:return 31===te()||43===te();case 14:return 29===te()&&de(Ur);default:return!1}}function Je(e,n){var t=h;h|=1<<e;for(var r=[],a=ne();!qe(e);)if(Be(e,!1)){var i=Xe(e,n);r.push(i)}else if(Ze(e))break;return h=t,xe(r,a)}function Xe(e,n){var t=Ye(e);return t?Qe(t):n()}function Ye(n){if(c&&function(e){switch(e){case 5:case 2:case 0:case 1:case 3:case 6:case 4:case 8:case 17:case 16:return!0}return!1}(n)&&!A){var t=c.currentNode(C.getStartPos());if(!(e.nodeIsMissing(t)||t.intersectsChange||e.containsParseError(t)))if((25358336&t.flags)===T&&function(e,n){switch(n){case 5:return function(e){if(e)switch(e.kind){case 161:case 166:case 162:case 163:case 158:case 221:return!0;case 160:var n=e;return!(75===n.name.kind&&128===n.name.originalKeywordKind)}return!1}(e);case 2:return function(e){if(e)switch(e.kind){case 275:case 276:return!0}return!1}(e);case 0:case 1:case 3:return function(e){if(e)switch(e.kind){case 243:case 224:case 222:case 226:case 225:case 238:case 234:case 236:case 233:case 232:case 230:case 231:case 229:case 228:case 235:case 223:case 239:case 237:case 227:case 240:case 253:case 252:case 259:case 258:case 248:case 244:case 245:case 247:case 246:return!0}return!1}(e);case 6:return function(e){return 282===e.kind}(e);case 4:return function(e){if(e)switch(e.kind){case 165:case 159:case 166:case 157:case 164:return!0}return!1}(e);case 8:return function(e){if(241!==e.kind)return!1;return void 0===e.initializer}(e);case 17:case 16:return function(e){if(155!==e.kind)return!1;return void 0===e.initializer}(e)}return!1}(t,n))return t.jsDocCache&&(t.jsDocCache=void 0),t}}function Qe(e){return C.setTextPos(e.end),ae(),e}function Ze(n){return Y(function(n){switch(n){case 0:case 1:return e.Diagnostics.Declaration_or_statement_expected;case 2:return e.Diagnostics.case_or_default_expected;case 3:return e.Diagnostics.Statement_expected;case 18:case 4:return e.Diagnostics.Property_or_signature_expected;case 5:return e.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected;case 6:return e.Diagnostics.Enum_member_expected;case 7:return e.Diagnostics.Expression_expected;case 8:return e.Diagnostics.Variable_declaration_expected;case 9:return e.Diagnostics.Property_destructuring_pattern_expected;case 10:return e.Diagnostics.Array_element_destructuring_pattern_expected;case 11:return e.Diagnostics.Argument_expression_expected;case 12:return e.Diagnostics.Property_assignment_expected;case 15:return e.Diagnostics.Expression_or_comma_expected;case 17:case 16:return e.Diagnostics.Parameter_declaration_expected;case 19:return e.Diagnostics.Type_parameter_declaration_expected;case 20:return e.Diagnostics.Type_argument_expected;case 21:return e.Diagnostics.Type_expected;case 22:return e.Diagnostics.Unexpected_token_expected;case 23:case 13:case 14:return e.Diagnostics.Identifier_expected;default:return}}(n)),!!function(){for(var e=0;e<24;e++)if(h&1<<e&&(Be(e,!0)||qe(e)))return!0;return!1}()||(ae(),!1)}function $e(e,n,t){var r=h;h|=1<<e;for(var a=[],i=ne(),o=-1;;)if(Be(e,!1)){var s=C.getStartPos();if(a.push(Xe(e,n)),o=C.getTokenPos(),_e(27))continue;if(o=-1,qe(e))break;fe(27,en(e)),t&&26===te()&&!C.hasPrecedingLineBreak()&&ae(),s===C.getStartPos()&&ae()}else{if(qe(e))break;if(Ze(e))break}h=r;var c=xe(a,i);return o>=0&&(c.hasTrailingComma=!0),c}function en(n){return 6===n?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function nn(){var e=xe([],ne());return e.isMissingList=!0,e}function tn(e,n,t,r){if(fe(t)){var a=$e(e,n);return fe(r),a}return nn()}function rn(e,n){for(var t=e?Ne(n):ke(n),r=C.getStartPos();_e(24);){if(29===te()){t.jsdocDotPos=r;break}r=C.getStartPos(),t=an(t,on(e))}return t}function an(e,n){var t=Te(152,e.pos);return t.left=e,t.right=n,Le(t)}function on(n){if(C.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(te())&&de(Yt))return Ce(75,!0,e.Diagnostics.Identifier_expected);return n?Ne():ke()}function sn(){var n,t=Te(210);t.head=(n=un(te()),e.Debug.assert(15===n.kind,\"Template head has wrong token kind\"),n),e.Debug.assert(15===t.head.kind,\"Template head has wrong token kind\");var r=[],a=ne();do{r.push(cn())}while(16===e.last(r).literal.kind);return t.templateSpans=xe(r,a),Le(t)}function cn(){var n,t,r=Te(220);return r.expression=K(tt),19===te()?(l=C.reScanTemplateToken(),t=un(te()),e.Debug.assert(16===t.kind||17===t.kind,\"Template fragment has wrong token kind\"),n=t):n=ve(17,e.Diagnostics._0_expected,e.tokenToString(19)),r.literal=n,Le(r)}function ln(){return un(te())}function un(e){var n=Te(e);switch(n.text=C.getTokenValue(),e){case 14:case 15:case 16:case 17:var t=14===e||17===e,r=C.getTokenText();n.rawText=r.substring(1,r.length-(C.isUnterminated()?0:t?1:2))}return C.hasExtendedUnicodeEscape()&&(n.hasExtendedUnicodeEscape=!0),C.isUnterminated()&&(n.isUnterminated=!0),8===n.kind&&(n.numericLiteralFlags=1008&C.getTokenFlags()),ae(),Le(n),n}function dn(){var n=Te(168);return n.typeName=rn(!0,e.Diagnostics.Type_expected),C.hasPrecedingLineBreak()||29!==se()||(n.typeArguments=tn(20,Qn,29,31)),Le(n)}function pn(){var e=Te(182);return ae(),Le(e)}function mn(e){var n=Te(293);return e?Hn(297,n):(ae(),Le(n))}function fn(){var e=Te(155);return 103!==te()&&98!==te()||(e.name=Ne(),fe(58)),e.type=_n(),Le(e)}function _n(){C.setInJSDocType(!0);var e=ge(134);if(e){var n=Te(300,e.pos);e:for(;;)switch(te()){case 19:case 1:case 27:case 5:break e;default:ie()}return C.setInJSDocType(!1),Le(n)}var t=ge(25),r=Xn();if(C.setInJSDocType(!1),t){var a=Te(299,t.pos);a.type=r,r=Le(a)}return 62===te()?Hn(297,r):r}function gn(){var e=Te(154);return e.name=ke(),_e(89)&&(jn()||!nt()?e.constraint=Qn():e.expression=yt()),_e(62)&&(e.default=Qn()),Le(e)}function yn(){if(29===te())return tn(19,gn,29,31)}function vn(){if(_e(58))return Qn()}function hn(n){return 25===te()||pr()||e.isModifierKind(te())||59===te()||jn(!n)}function bn(){var n=Se(155);return 103===te()?(n.name=De(!0),n.type=vn(),Le(n)):(n.decorators=Cr(),n.modifiers=Ar(),n.dotDotDotToken=ge(25),n.name=mr(),0===e.getFullWidth(n.name)&&!e.hasModifiers(n)&&e.isModifierKind(te())&&ae(),n.questionToken=ge(57),n.type=vn(),n.initializer=rt(),Le(n))}function En(n,t,r){32&t||(r.typeParameters=yn());var a=function(e,n){if(!fe(20))return e.parameters=nn(),!1;var t=z(),r=X();return G(!!(1&n)),V(!!(2&n)),e.parameters=32&n?$e(17,fn):$e(16,bn),G(t),V(r),fe(21)}(r,t);return(!function(n,t){if(38===n)return fe(n),!0;if(_e(58))return!0;if(t&&38===te())return Y(e.Diagnostics._0_expected,e.tokenToString(58)),ae(),!0;return!1}(n,!!(4&t))||(r.type=Xn(),!function n(t){switch(t.kind){case 168:return e.nodeIsMissing(t.typeName);case 169:case 170:var r=t,a=r.parameters,i=r.type;return!!a.isMissingList||n(i);case 181:return n(t.type);default:return!1}}(r.type)))&&a}function Tn(){_e(27)||Ee()}function Sn(e){var n=Se(e);return 165===e&&fe(98),En(58,4,n),Tn(),Le(n)}function xn(){return 22===te()&&de(Ln)}function Ln(){if(ae(),25===te()||23===te())return!0;if(e.isModifierKind(te())){if(ae(),me())return!0}else{if(!me())return!1;ae()}return 58===te()||27===te()||57===te()&&(ae(),58===te()||27===te()||23===te())}function Cn(e){return e.kind=166,e.parameters=tn(16,bn,22,23),e.type=$n(),Tn(),Le(e)}function An(){if(20===te()||29===te())return!0;for(var n=!1;e.isModifierKind(te());)n=!0,ae();return 22===te()||(Ie()&&(n=!0,ae()),!!n&&(20===te()||29===te()||57===te()||58===te()||27===te()||be()))}function Dn(){if(20===te()||29===te())return Sn(164);if(98===te()&&de(kn))return Sn(165);var e=Se(0);return e.modifiers=Ar(),xn()?Cn(e):function(e){return e.name=Oe(),e.questionToken=ge(57),20===te()||29===te()?(e.kind=159,En(58,4,e)):(e.kind=157,e.type=$n(),62===te()&&(e.initializer=rt())),Tn(),Le(e)}(e)}function kn(){return ae(),20===te()||29===te()}function Nn(){return 24===ae()}function In(){switch(ae()){case 20:case 29:case 24:return!0}return!1}function Mn(){var e;return fe(18)?(e=Je(4,Dn),fe(19)):e=nn(),e}function On(){return ae(),39===te()||40===te()?137===ae():(137===te()&&ae(),22===te()&&Ue()&&96===ae())}function Rn(){var e=Te(185);return fe(18),137!==te()&&39!==te()&&40!==te()||(e.readonlyToken=he(),137!==e.readonlyToken.kind&&ve(137)),fe(22),e.typeParameter=function(){var e=Te(154);return e.name=ke(),fe(96),e.constraint=Qn(),Le(e)}(),fe(23),57!==te()&&39!==te()&&40!==te()||(e.questionToken=he(),57!==e.questionToken.kind&&ve(57)),e.type=$n(),Ee(),fe(19),Le(e)}function Pn(){var e=ne();if(_e(25)){var n=Te(176,e);return n.type=Qn(),Le(n)}var t=Qn();return 4194304&T||295!==t.kind||t.pos!==t.type.pos||(t.kind=175),t}function wn(){var e=he();return 24===te()?void 0:e}function Fn(e){var n,t=Te(186);e&&((n=Te(206)).operator=40,ae());var r=105===te()||90===te()?he():un(te());return e&&(n.operand=r,Le(n),r=n),t.literal=r,Le(t)}function Gn(){return ae(),95===te()}function Bn(){o.flags|=1048576;var n=Te(187);return _e(107)&&(n.isTypeOf=!0),fe(95),fe(20),n.argument=Qn(),fe(21),_e(24)&&(n.qualifier=rn(!0,e.Diagnostics.Type_expected)),C.hasPrecedingLineBreak()||29!==se()||(n.typeArguments=tn(20,Qn,29,31)),Le(n)}function Vn(){return ae(),8===te()||9===te()}function Un(){switch(te()){case 124:case 147:case 142:case 139:case 150:case 143:case 127:case 145:case 136:case 140:return pe(wn)||dn();case 41:return mn(!1);case 65:return mn(!0);case 60:C.reScanQuestionToken();case 57:return r=C.getStartPos(),ae(),27===te()||19===te()||21===te()||31===te()||62===te()||51===te()?Le(t=Te(294,r)):((t=Te(295,r)).type=Qn(),Le(t));case 93:return function(){if(de(Vr)){var e=Se(298);return ae(),En(58,36,e),Le(e)}var n=Te(168);return n.typeName=Ne(),Le(n)}();case 53:return function(){var e=Te(296);return ae(),e.type=Un(),Le(e)}();case 14:case 10:case 8:case 9:case 105:case 90:return Fn();case 40:return de(Vn)?Fn(!0):dn();case 109:case 99:return he();case 103:var e=pn();return 132!==te()||C.hasPrecedingLineBreak()?e:function(e){ae();var n=Te(167,e.pos);return n.parameterName=e,n.type=Qn(),Le(n)}(e);case 107:return de(Gn)?Bn():(n=Te(171),fe(107),n.exprName=rn(!0),Le(n));case 18:return de(On)?Rn():function(){var e=Te(172);return e.members=Mn(),Le(e)}();case 22:return function(){var e=Te(174);return e.elementTypes=tn(21,Pn,22,23),Le(e)}();case 20:return function(){var e=Te(181);return fe(20),e.type=Qn(),fe(21),Le(e)}();case 95:return Bn();case 123:return de(Yt)?function(){var e=Te(167);return e.assertsModifier=ve(123),e.parameterName=103===te()?pn():ke(),e.type=_e(132)?Qn():void 0,Le(e)}():dn();default:return dn()}var n,t,r}function jn(e){switch(te()){case 124:case 147:case 142:case 139:case 150:case 127:case 137:case 143:case 146:case 109:case 145:case 99:case 103:case 107:case 136:case 18:case 22:case 29:case 51:case 50:case 98:case 10:case 8:case 9:case 105:case 90:case 140:case 41:case 57:case 53:case 25:case 131:case 95:case 123:return!0;case 93:return!e;case 40:return!e&&de(Vn);case 20:return!e&&de(Kn);default:return me()}}function Kn(){return ae(),21===te()||hn(!1)||jn()}function Hn(e,n){ae();var t=Te(e,n.pos);return t.type=n,Le(t)}function Wn(){var e=te();switch(e){case 133:case 146:case 137:return function(e){var n=Te(183);return fe(e),n.operator=e,n.type=Wn(),Le(n)}(e);case 131:return function(){var e=Te(180);fe(131);var n=Te(154);return n.name=ke(),e.typeParameter=Le(n),Le(e)}()}return function(){for(var e=Un();!C.hasPrecedingLineBreak();)switch(te()){case 53:e=Hn(296,e);break;case 57:if(!(4194304&T)&&de(ze))return e;e=Hn(295,e);break;case 22:var n;if(fe(22),jn())(n=Te(184,e.pos)).objectType=e,n.indexType=Qn(),fe(23),e=Le(n);else(n=Te(173,e.pos)).elementType=e,fe(23),e=Le(n);break;default:return e}return e}()}function zn(e,n,t){var r=C.getStartPos(),a=_e(t),i=n();if(te()===t||a){for(var o=[i];_e(t);)o.push(n());var s=Te(e,r);s.types=xe(o,r),i=Le(s)}return i}function qn(){return zn(178,Wn,50)}function Jn(){if(ae(),21===te()||25===te())return!0;if(function(){if(e.isModifierKind(te())&&Ar(),me()||103===te())return ae(),!0;if(22===te()||18===te()){var n=s.length;return mr(),n===s.length}return!1}()){if(58===te()||27===te()||57===te()||62===te())return!0;if(21===te()&&(ae(),38===te()))return!0}return!1}function Xn(){var e=me()&&pe(Yn),n=Qn();if(e){var t=Te(167,e.pos);return t.assertsModifier=void 0,t.parameterName=e,t.type=n,Le(t)}return n}function Yn(){var e=ke();if(132===te()&&!C.hasPrecedingLineBreak())return ae(),e}function Qn(){return U(40960,Zn)}function Zn(e){if(29===te()||20===te()&&de(Jn)||98===te())return function(){var e=ne(),n=Se(_e(98)?170:169,e);return En(38,4,n),Le(n)}();var n=zn(177,qn,51);if(!e&&!C.hasPrecedingLineBreak()&&_e(89)){var t=Te(179,n.pos);return t.checkType=n,t.extendsType=Zn(!0),fe(57),t.trueType=Zn(),fe(58),t.falseType=Zn(),Le(t)}return n}function $n(){return _e(58)?Qn():void 0}function et(){switch(te()){case 103:case 101:case 99:case 105:case 90:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 93:case 79:case 98:case 43:case 67:case 75:return!0;case 95:return de(In);default:return me()}}function nt(){if(et())return!0;switch(te()){case 39:case 40:case 54:case 53:case 84:case 107:case 109:case 45:case 46:case 29:case 126:case 120:return!0;default:return!!function(){if(q()&&96===te())return!1;return e.getBinaryOperatorPrecedence(te())>0}()||me()}}function tt(){var e=J();e&&B(!1);for(var n,t=at();n=ge(27);)t=ft(t,n,at());return e&&B(!0),t}function rt(){return _e(62)?at():void 0}function at(){if(function(){if(120===te())return!!z()||de($t);return!1}())return n=Te(211),ae(),C.hasPrecedingLineBreak()||41!==te()&&!nt()?Le(n):(n.asteriskToken=ge(41),n.expression=at(),Le(n));var n,t=function(){var n=function(){if(20===te()||29===te()||125===te())return de(ot);if(38===te())return 1;return 0}();if(0===n)return;var t=1===n?lt(!0):pe(st);if(!t)return;var r=e.hasModifier(t,256),a=te();return t.equalsGreaterThanToken=ve(38),t.body=38===a||18===a?ut(r):ke(),Le(t)}()||function(){if(125===te()&&1===de(ct)){var e=Dr();return it(dt(0),e)}return}();if(t)return t;var r=dt(0);return 75===r.kind&&38===te()?it(r):e.isLeftHandSideExpression(r)&&e.isAssignmentOperator(oe())?ft(r,he(),at()):function(n){var t=ge(57);if(!t)return n;var r=Te(209,n.pos);return r.condition=n,r.questionToken=t,r.whenTrue=U(20480,at),r.colonToken=ve(58),r.whenFalse=e.nodeIsPresent(r.colonToken)?at():Ce(75,!1,e.Diagnostics._0_expected,e.tokenToString(58)),Le(r)}(r)}function it(n,t){var r;e.Debug.assert(38===te(),\"parseSimpleArrowFunctionExpression should only have been called if we had a =>\"),t?(r=Te(201,t.pos)).modifiers=t:r=Te(201,n.pos);var a=Te(155,n.pos);return a.name=n,Le(a),r.parameters=xe([a],a.pos,a.end),r.equalsGreaterThanToken=ve(38),r.body=ut(!!t),O(Le(r))}function ot(){if(125===te()){if(ae(),C.hasPrecedingLineBreak())return 0;if(20!==te()&&29!==te())return 0}var n=te(),t=ae();if(20===n){if(21===t)switch(ae()){case 38:case 58:case 18:return 1;default:return 0}if(22===t||18===t)return 2;if(25===t)return 1;if(e.isModifierKind(t)&&125!==t&&de(Ue))return 1;if(!me()&&103!==t)return 0;switch(ae()){case 58:return 1;case 57:return ae(),58===te()||27===te()||62===te()||21===te()?1:0;case 27:case 62:case 21:return 2}return 0}return e.Debug.assert(29===n),me()?1===o.languageVariant?de((function(){var e=ae();if(89===e)switch(ae()){case 62:case 31:return!1;default:return!0}else if(27===e)return!0;return!1}))?1:0:2:0}function st(){var n=C.getTokenPos();if(!b||!b.has(n.toString())){var t=lt(!1);return t||(b||(b=e.createMap())).set(n.toString(),!0),t}}function ct(){if(125===te()){if(ae(),C.hasPrecedingLineBreak()||38===te())return 0;var e=dt(0);if(!C.hasPrecedingLineBreak()&&75===e.kind&&38===te())return 1}return 0}function lt(n){var t=Se(201);if(t.modifiers=Dr(),En(58,e.hasModifier(t,256)?2:0,t)||n){var r=t.type&&e.isJSDocFunctionType(t.type);if(n||38===te()||!r&&18===te())return t}}function ut(e){return 18===te()?Wt(e?2:0):26===te()||93===te()||79===te()||!tr()||18!==te()&&93!==te()&&79!==te()&&59!==te()&&nt()?e?H(at):U(32768,at):Wt(16|(e?2:0))}function dt(e){return mt(e,yt())}function pt(e){return 96===e||151===e}function mt(n,t){for(;;){oe();var r=e.getBinaryOperatorPrecedence(te());if(!(42===te()?r>=n:r>n))break;if(96===te()&&q())break;if(122===te()){if(C.hasPrecedingLineBreak())break;ae(),t=_t(t,Qn())}else t=ft(t,he(),dt(r))}return t}function ft(e,n,t){var r=Te(208,e.pos);return r.left=e,r.operatorToken=n,r.right=t,Le(r)}function _t(e,n){var t=Te(216,e.pos);return t.expression=e,t.type=n,Le(t)}function gt(){var e=Te(206);return e.operator=te(),ae(),e.operand=vt(),Le(e)}function yt(){if(function(){switch(te()){case 39:case 40:case 54:case 53:case 84:case 107:case 109:case 126:return!1;case 29:if(1!==o.languageVariant)return!1;default:return!0}}()){var n=ht();return 42===te()?mt(e.getBinaryOperatorPrecedence(te()),n):n}var t=te(),r=vt();if(42===te()){var a=e.skipTrivia(_,r.pos),i=r.end;198===r.kind?Z(a,i,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):Z(a,i,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(t))}return r}function vt(){switch(te()){case 39:case 40:case 54:case 53:return gt();case 84:return e=Te(202),ae(),e.expression=vt(),Le(e);case 107:return function(){var e=Te(203);return ae(),e.expression=vt(),Le(e)}();case 109:return function(){var e=Te(204);return ae(),e.expression=vt(),Le(e)}();case 29:return function(){var e=Te(198);return fe(29),e.type=Qn(),fe(31),e.expression=vt(),Le(e)}();case 126:if(126===te()&&(X()||de($t)))return function(){var e=Te(205);return ae(),e.expression=vt(),Le(e)}();default:return ht()}var e}function ht(){if(45===te()||46===te())return(n=Te(206)).operator=te(),ae(),n.operand=bt(),Le(n);if(1===o.languageVariant&&29===te()&&de(Ke))return Tt(!0);var n,t=bt();return e.Debug.assert(e.isLeftHandSideExpression(t)),45!==te()&&46!==te()||C.hasPrecedingLineBreak()?t:((n=Te(207,t.pos)).operand=t,n.operator=te(),ae(),Le(n))}function bt(){var n;if(95===te())if(de(kn))o.flags|=1048576,n=he();else if(de(Nn)){var t=C.getStartPos();ae(),ae();var r=Te(218,t);r.keywordToken=95,r.name=Ne(),n=Le(r),o.flags|=2097152}else n=Et();else n=101===te()?function(){var n=he();if(29===te()){var t=ne();void 0!==pe(Pt)&&Z(t,ne(),e.Diagnostics.super_may_not_use_type_arguments)}if(20===te()||24===te()||22===te())return n;var r=Te(193,n.pos);return r.expression=n,ve(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),r.name=on(!0),Le(r)}():Et();return function(n){for(;;){n=It(n,!0);var t=ge(28);if(29===te()||47===te()){var r=pe(Pt);if(r){if(Mt()){n=Ot(n,t,r);continue}(a=Te(195,n.pos)).expression=n,a.questionDotToken=t,a.typeArguments=r,a.arguments=Rt(),(t||32&n.flags)&&(a.flags|=32),n=Le(a);continue}}else if(20===te()){var a;(a=Te(195,n.pos)).expression=n,a.questionDotToken=t,a.arguments=Rt(),(t||32&n.flags)&&(a.flags|=32),n=Le(a);continue}if(t){var i=Te(193,n.pos);i.expression=n,i.questionDotToken=t,i.name=Ce(75,!1,e.Diagnostics.Identifier_expected),i.flags|=32,n=Le(i)}break}return n}(n)}function Et(){return It(wt(),!0)}function Tt(n){var t,r=function(e){var n=C.getStartPos();if(fe(29),31===te()){var t=Te(269,n);return le(),Le(t)}var r,a=Lt(),i=Pr(),o=(s=Te(272),s.properties=Je(13,At),Le(s));var s;31===te()?(r=Te(266,n),le()):(fe(43),e?fe(31):(fe(31,void 0,!1),le()),r=Te(265,n));return r.tagName=a,r.typeArguments=i,r.attributes=o,Le(r)}(n);if(266===r.kind)(a=Te(264,r.pos)).openingElement=r,a.children=xt(a.openingElement),a.closingElement=function(e){var n=Te(267);fe(30),n.tagName=Lt(),e?fe(31):(fe(31,void 0,!1),le());return Le(n)}(n),E(a.openingElement.tagName,a.closingElement.tagName)||$(a.closingElement,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(_,a.openingElement.tagName)),t=Le(a);else if(269===r.kind){var a;(a=Te(268,r.pos)).openingFragment=r,a.children=xt(a.openingFragment),a.closingFragment=function(n){var t=Te(270);fe(30),e.tokenIsIdentifierOrKeyword(te())&&$(Lt(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);n?fe(31):(fe(31,void 0,!1),le());return Le(t)}(n),t=Le(a)}else e.Debug.assert(265===r.kind),t=r;if(n&&29===te()){var i=pe((function(){return Tt(!0)}));if(i){Y(e.Diagnostics.JSX_expressions_must_have_one_parent_element);var o=Te(208,t.pos);return o.end=i.end,o.left=t,o.right=i,o.operatorToken=Ce(27,!1),o.operatorToken.pos=o.operatorToken.end=o.right.pos,o}}return t}function St(n,t){switch(t){case 1:return void(e.isJsxOpeningFragment(n)?$(n,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag):$(n.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(_,n.tagName)));case 30:case 7:return;case 11:case 12:return(r=Te(11)).text=C.getTokenValue(),r.containsOnlyTriviaWhiteSpaces=12===l,l=C.scanJsxToken(),Le(r);case 18:return Ct(!1);case 29:return Tt(!1);default:return e.Debug.assertNever(t)}var r}function xt(e){var n=[],t=ne(),r=h;for(h|=16384;;){var a=St(e,l=C.reScanJsxToken());if(!a)break;n.push(a)}return h=r,xe(n,t)}function Lt(){ce();for(var e=103===te()?he():Ne();_e(24);){var n=Te(193,e.pos);n.expression=e,n.name=on(!0),e=Le(n)}return e}function Ct(e){var n=Te(274);if(fe(18))return 19!==te()&&(n.dotDotDotToken=ge(25),n.expression=tt()),e?fe(19):fe(19,void 0,!1)&&le(),Le(n)}function At(){if(18===te())return function(){var e=Te(273);return fe(18),fe(25),e.expression=tt(),fe(19),Le(e)}();ce();var e=Te(271);if(e.name=Ne(),62===te())switch(l=C.scanJsxAttributeValue()){case 10:e.initializer=ln();break;default:e.initializer=Ct(!0)}return Le(e)}function Dt(){return ae(),e.tokenIsIdentifierOrKeyword(te())||22===te()||Mt()}function kt(e,n){var t=Te(193,e.pos);return t.expression=e,t.questionDotToken=n,t.name=on(!0),(n||32&e.flags)&&(t.flags|=32),Le(t)}function Nt(n,t){var r=Te(194,n.pos);if(r.expression=n,r.questionDotToken=t,23===te())r.argumentExpression=Ce(75,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var a=K(tt);e.isStringOrNumericLiteralLike(a)&&(a.text=Ae(a.text)),r.argumentExpression=a}return fe(23),(t||32&n.flags)&&(r.flags|=32),Le(r)}function It(n,t){for(;;){var r=void 0,a=!1;if(t&&28===te()&&de(Dt)?(r=ve(28),a=e.tokenIsIdentifierOrKeyword(te())):a=_e(24),a)n=kt(n,r);else if(r||53!==te()||C.hasPrecedingLineBreak())if(!r&&J()||!_e(22)){if(!Mt())return n;n=Ot(n,r,void 0)}else n=Nt(n,r);else{ae();var i=Te(217,n.pos);i.expression=n,n=Le(i)}}}function Mt(){return 14===te()||15===te()}function Ot(e,n,t){var r=Te(197,e.pos);return r.tag=e,r.questionDotToken=n,r.typeArguments=t,r.template=14===te()?ln():sn(),(n||32&e.flags)&&(r.flags|=32),Le(r)}function Rt(){fe(20);var e=$e(11,Gt);return fe(21),e}function Pt(){if(29===se()){ae();var e=$e(20,Qn);if(fe(31))return e&&function(){switch(te()){case 20:case 14:case 15:case 24:case 21:case 23:case 58:case 26:case 57:case 34:case 36:case 35:case 37:case 55:case 56:case 60:case 52:case 50:case 51:case 19:case 1:return!0;case 27:case 18:default:return!1}}()?e:void 0}}function wt(){switch(te()){case 8:case 9:case 10:case 14:return ln();case 103:case 101:case 99:case 105:case 90:return he();case 20:return n=Se(199),fe(20),n.expression=K(tt),fe(21),Le(n);case 22:return Bt();case 18:return Ut();case 125:if(!de(Zt))break;return jt();case 79:return Ir(Se(0),213);case 93:return jt();case 98:return function(){var n=C.getStartPos();if(fe(98),_e(24)){var t=Te(218,n);return t.keywordToken=98,t.name=Ne(),Le(t)}var r,a=wt();for(;;){a=It(a,!1),r=pe(Pt),Mt()&&(e.Debug.assert(!!r,\"Expected a type argument list; all plain tagged template starts should be consumed in 'parseMemberExpressionRest'\"),a=Ot(a,void 0,r),r=void 0);break}var i=Te(196,n);i.expression=a,i.typeArguments=r,(i.typeArguments||20===te())&&(i.arguments=Rt());return Le(i)}();case 43:case 67:if(13===(l=C.reScanSlashToken()))return ln();break;case 15:return sn()}var n;return ke(e.Diagnostics.Expression_expected)}function Ft(){return 25===te()?(e=Te(212),fe(25),e.expression=at(),Le(e)):27===te()?Te(214):at();var e}function Gt(){return U(20480,Ft)}function Bt(){var e=Te(191);return fe(22),C.hasPrecedingLineBreak()&&(e.multiLine=!0),e.elements=$e(15,Ft),fe(23),Le(e)}function Vt(){var e=Se(0);if(ge(25))return e.kind=281,e.expression=at(),Le(e);if(e.decorators=Cr(),e.modifiers=Ar(),Re(130))return xr(e,162);if(Re(141))return xr(e,163);var n=ge(41),t=me();if(e.name=Oe(),e.questionToken=ge(57),e.exclamationToken=ge(53),n||20===te()||29===te())return Er(e,n);if(t&&58!==te()){e.kind=280;var r=ge(62);r&&(e.equalsToken=r,e.objectAssignmentInitializer=K(at))}else e.kind=279,fe(58),e.initializer=K(at);return Le(e)}function Ut(){var e=Te(192);return fe(18),C.hasPrecedingLineBreak()&&(e.multiLine=!0),e.properties=$e(12,Vt,!0),fe(19),Le(e)}function jt(){var n=J();n&&B(!1);var t=Se(200);t.modifiers=Ar(),fe(93),t.asteriskToken=ge(41);var r=t.asteriskToken?1:0,a=e.hasModifier(t,256)?2:0;return t.name=r&&a?j(40960,Kt):r?function(e){return j(8192,e)}(Kt):a?H(Kt):Kt(),En(58,r|a,t),t.body=Wt(r|a),n&&B(!0),Le(t)}function Kt(){return me()?ke():void 0}function Ht(e,n){var t=Te(222);return fe(18,n)||e?(C.hasPrecedingLineBreak()&&(t.multiLine=!0),t.statements=Je(1,ar),fe(19)):t.statements=nn(),Le(t)}function Wt(e,n){var t=z();G(!!(1&e));var r=X();V(!!(2&e));var a=J();a&&B(!1);var i=Ht(!!(16&e),n);return a&&B(!0),G(t),V(r),i}function zt(){var e=ne();fe(92);var n,t,r=ge(126);if(fe(20),26!==te()&&(n=108===te()||114===te()||80===te()?gr(!0):j(4096,tt)),r?fe(151):_e(151)){var a=Te(231,e);a.awaitModifier=r,a.initializer=n,a.expression=K(at),fe(21),t=a}else if(_e(96)){var i=Te(230,e);i.initializer=n,i.expression=K(tt),fe(21),t=i}else{var o=Te(229,e);o.initializer=n,fe(26),26!==te()&&21!==te()&&(o.condition=K(tt)),fe(26),21!==te()&&(o.incrementor=K(tt)),fe(21),t=o}return t.statement=ar(),Le(t)}function qt(e){var n=Te(e);return fe(233===e?76:81),be()||(n.label=ke()),Ee(),Le(n)}function Jt(){return 77===te()?(e=Te(275),fe(77),e.expression=K(tt),fe(58),e.statements=Je(3,ar),Le(e)):function(){var e=Te(276);return fe(83),fe(58),e.statements=Je(3,ar),Le(e)}();var e}function Xt(){var e=Te(239);return fe(106),e.tryBlock=Ht(!1),e.catchClause=78===te()?function(){var e=Te(278);fe(78),_e(20)?(e.variableDeclaration=_r(),fe(21)):e.variableDeclaration=void 0;return e.block=Ht(!1),Le(e)}():void 0,e.catchClause&&91!==te()||(fe(91),e.finallyBlock=Ht(!1)),Le(e)}function Yt(){return ae(),e.tokenIsIdentifierOrKeyword(te())&&!C.hasPrecedingLineBreak()}function Qt(){return ae(),79===te()&&!C.hasPrecedingLineBreak()}function Zt(){return ae(),93===te()&&!C.hasPrecedingLineBreak()}function $t(){return ae(),(e.tokenIsIdentifierOrKeyword(te())||8===te()||9===te()||10===te())&&!C.hasPrecedingLineBreak()}function er(){for(;;)switch(te()){case 108:case 114:case 80:case 93:case 79:case 87:return!0;case 113:case 144:return ae(),!C.hasPrecedingLineBreak()&&me();case 134:case 135:return cr();case 121:case 125:case 129:case 116:case 117:case 118:case 137:if(ae(),C.hasPrecedingLineBreak())return!1;continue;case 149:return ae(),18===te()||75===te()||88===te();case 95:return ae(),10===te()||41===te()||18===te()||e.tokenIsIdentifierOrKeyword(te());case 88:if(ae(),62===te()||41===te()||18===te()||83===te()||122===te())return!0;continue;case 119:ae();continue;default:return!1}}function nr(){return de(er)}function tr(){switch(te()){case 59:case 26:case 18:case 108:case 114:case 93:case 79:case 87:case 94:case 85:case 110:case 92:case 81:case 76:case 100:case 111:case 102:case 104:case 106:case 82:case 78:case 91:return!0;case 95:return nr()||de(In);case 80:case 88:return nr();case 125:case 129:case 113:case 134:case 135:case 144:case 149:return!0;case 118:case 116:case 117:case 119:case 137:return nr()||!de(Yt);default:return nt()}}function rr(){return ae(),me()||18===te()||22===te()}function ar(){switch(te()){case 26:return e=Te(223),fe(26),Le(e);case 18:return Ht(!1);case 108:return vr(Se(241));case 114:if(de(rr))return vr(Se(241));break;case 93:return hr(Se(243));case 79:return Nr(Se(244));case 94:return function(){var e=Te(226);return fe(94),fe(20),e.expression=K(tt),fe(21),e.thenStatement=ar(),e.elseStatement=_e(86)?ar():void 0,Le(e)}();case 85:return function(){var e=Te(227);return fe(85),e.statement=ar(),fe(110),fe(20),e.expression=K(tt),fe(21),_e(26),Le(e)}();case 110:return function(){var e=Te(228);return fe(110),fe(20),e.expression=K(tt),fe(21),e.statement=ar(),Le(e)}();case 92:return zt();case 81:return qt(232);case 76:return qt(233);case 100:return function(){var e=Te(234);return fe(100),be()||(e.expression=K(tt)),Ee(),Le(e)}();case 111:return function(){var e=Te(235);return fe(111),fe(20),e.expression=K(tt),fe(21),e.statement=j(16777216,ar),Le(e)}();case 102:return function(){var e=Te(236);fe(102),fe(20),e.expression=K(tt),fe(21);var n=Te(250);return fe(18),n.clauses=Je(2,Jt),fe(19),e.caseBlock=Le(n),Le(e)}();case 104:return function(){var e=Te(238);return fe(104),e.expression=C.hasPrecedingLineBreak()?void 0:K(tt),Ee(),Le(e)}();case 106:case 78:case 91:return Xt();case 82:return function(){var e=Te(240);return fe(82),Ee(),Le(e)}();case 59:return or();case 125:case 113:case 144:case 134:case 135:case 129:case 80:case 87:case 88:case 95:case 116:case 117:case 118:case 121:case 119:case 137:case 149:if(nr())return or()}var e;return function(){var e=Se(0),n=K(tt);return 75===n.kind&&_e(58)?(e.kind=237,e.label=n,e.statement=ar()):(e.kind=225,e.expression=n,Ee()),Le(e)}()}function ir(e){return 129===e.kind}function or(){var n=de((function(){return Cr(),Ar()})),t=e.some(n,ir);if(t){var r=j(8388608,(function(){var e=Ye(h);if(e)return Qe(e)}));if(r)return r}var a=Se(0);if(a.decorators=Cr(),a.modifiers=Ar(),t){for(var i=0,o=a.modifiers;i<o.length;i++){o[i].flags|=8388608}return j(8388608,(function(){return sr(a)}))}return sr(a)}function sr(n){switch(te()){case 108:case 114:case 80:return vr(n);case 93:return hr(n);case 79:return Nr(n);case 113:return function(e){return e.kind=245,fe(113),e.name=ke(),e.typeParameters=yn(),e.heritageClauses=Mr(),e.members=Mn(),Le(e)}(n);case 144:return function(e){return e.kind=246,fe(144),e.name=ke(),e.typeParameters=yn(),fe(62),e.type=Qn(),Ee(),Le(e)}(n);case 87:return function(e){e.kind=247,fe(87),e.name=ke(),fe(18)?(e.members=$e(6,Fr),fe(19)):e.members=nn();return Le(e)}(n);case 149:case 134:case 135:return function(e){var n=0;if(149===te())return Br(e);if(_e(135))n|=16;else if(fe(134),10===te())return Br(e);return function e(n,t){n.kind=248;var r=16&t;return n.flags|=t,n.name=ke(),n.body=_e(24)?e(Te(0),4|r):Gr(),Le(n)}(e,n)}(n);case 95:return function(e){fe(95);var n,t=C.getStartPos();if(me()&&(n=ke(),27!==te()&&148!==te()))return function(e,n){return e.kind=252,e.name=n,fe(62),e.moduleReference=function(){return 138===te()&&de(Vr)?function(){var e=Te(263);return fe(138),fe(20),e.expression=jr(),fe(21),Le(e)}():rn(!1)}(),Ee(),Le(e)}(e,n);e.kind=253,(n||41===te()||18===te())&&(e.importClause=function(e,n){var t=Te(254,n);e&&(t.name=e);t.name&&!_e(27)||(t.namedBindings=41===te()?(r=Te(255),fe(41),fe(122),r.name=ke(),Le(r)):Kr(256));var r;return Le(t)}(n,t),fe(148));return e.moduleSpecifier=jr(),Ee(),Le(e)}(n);case 88:switch(ae(),te()){case 83:case 62:return function(e){e.kind=258,_e(62)?e.isExportEquals=!0:fe(83);return e.expression=at(),Ee(),Le(e)}(n);case 122:return function(e){return e.kind=251,fe(122),fe(135),e.name=ke(),Ee(),Le(e)}(n);default:return function(e){e.kind=259,_e(41)?(fe(148),e.moduleSpecifier=jr()):(e.exportClause=Kr(260),(148===te()||10===te()&&!C.hasPrecedingLineBreak())&&(fe(148),e.moduleSpecifier=jr()));return Ee(),Le(e)}(n)}default:if(n.decorators||n.modifiers){var t=Ce(262,!0,e.Diagnostics.Declaration_expected);return t.pos=n.pos,t.decorators=n.decorators,t.modifiers=n.modifiers,Le(t)}return}}function cr(){return ae(),!C.hasPrecedingLineBreak()&&(me()||10===te())}function lr(e,n){if(18===te()||!be())return Wt(e,n);Ee()}function ur(){if(27===te())return Te(214);var e=Te(190);return e.dotDotDotToken=ge(25),e.name=mr(),e.initializer=rt(),Le(e)}function dr(){var e=Te(190);e.dotDotDotToken=ge(25);var n=me(),t=Oe();return n&&58!==te()?e.name=t:(fe(58),e.propertyName=t,e.name=mr()),e.initializer=rt(),Le(e)}function pr(){return 18===te()||22===te()||me()}function mr(){return 22===te()?(e=Te(189),fe(22),e.elements=$e(10,ur),fe(23),Le(e)):18===te()?function(){var e=Te(188);return fe(18),e.elements=$e(9,dr),fe(19),Le(e)}():ke();var e}function fr(){return _r(!0)}function _r(e){var n=Te(241);return n.name=mr(),e&&75===n.name.kind&&53===te()&&!C.hasPrecedingLineBreak()&&(n.exclamationToken=he()),n.type=$n(),pt(te())||(n.initializer=rt()),Le(n)}function gr(n){var t=Te(242);switch(te()){case 108:break;case 114:t.flags|=1;break;case 80:t.flags|=2;break;default:e.Debug.fail()}if(ae(),151===te()&&de(yr))t.declarations=nn();else{var r=q();F(n),t.declarations=$e(8,n?_r:fr),F(r)}return Le(t)}function yr(){return Ue()&&21===ae()}function vr(e){return e.kind=224,e.declarationList=gr(!1),Ee(),Le(e)}function hr(n){n.kind=243,fe(93),n.asteriskToken=ge(41),n.name=e.hasModifier(n,512)?Kt():ke();var t=n.asteriskToken?1:0,r=e.hasModifier(n,256)?2:0;return En(58,t|r,n),n.body=lr(t|r,e.Diagnostics.or_expected),Le(n)}function br(n){return pe((function(){if(128===te()?fe(128):10===te()&&20===de(ae)?pe((function(){var e=ln();return\"constructor\"===e.text?e:void 0})):void 0)return n.kind=161,En(58,0,n),n.body=lr(0,e.Diagnostics.or_expected),Le(n)}))}function Er(n,t,r){n.kind=160,n.asteriskToken=t;var a=t?1:0,i=e.hasModifier(n,256)?2:0;return En(58,a|i,n),n.body=lr(a|i,r),Le(n)}function Tr(n){return n.kind=158,n.questionToken||53!==te()||C.hasPrecedingLineBreak()||(n.exclamationToken=he()),n.type=$n(),n.initializer=e.hasModifier(n,32)?K(rt):U(12288,rt),Ee(),Le(n)}function Sr(n){var t=ge(41);return n.name=Oe(),n.questionToken=ge(57),t||20===te()||29===te()?Er(n,t,e.Diagnostics.or_expected):Tr(n)}function xr(e,n){return e.kind=n,e.name=Oe(),En(58,0,e),e.body=lr(0),Le(e)}function Lr(){var n;if(59===te())return!0;for(;e.isModifierKind(te());){if(n=te(),e.isClassMemberModifier(n))return!0;ae()}if(41===te())return!0;if(Ie()&&(n=te(),ae()),22===te())return!0;if(void 0!==n){if(!e.isKeyword(n)||141===n||130===n)return!0;switch(te()){case 20:case 29:case 53:case 58:case 62:case 57:return!0;default:return be()}}return!1}function Cr(){for(var e,n=ne();;){var t=ne();if(!_e(59))break;var r=Te(156,t);r.expression=j(16384,bt),Le(r),(e||(e=[])).push(r)}return e&&xe(e,n)}function Ar(n){for(var t,r=ne();;){var a=C.getStartPos(),i=te();if(80===te()&&n){if(!pe(Pe))break}else if(!e.isModifierKind(te())||!pe(we))break;var o=Le(Te(i,a));(t||(t=[])).push(o)}return t&&xe(t,r)}function Dr(){var e;if(125===te()){var n=C.getStartPos(),t=te();ae(),e=xe([Le(Te(t,n))],n)}return e}function kr(){if(26===te()){var n=Te(221);return ae(),Le(n)}var t=Se(0);if(t.decorators=Cr(),t.modifiers=Ar(!0),Re(130))return xr(t,162);if(Re(141))return xr(t,163);if(128===te()||10===te()){var r=br(t);if(r)return r}if(xn())return Cn(t);if(e.tokenIsIdentifierOrKeyword(te())||10===te()||8===te()||41===te()||22===te()){if(t.modifiers&&e.some(t.modifiers,ir)){for(var a=0,i=t.modifiers;a<i.length;a++){i[a].flags|=8388608}return j(8388608,(function(){return Sr(t)}))}return Sr(t)}return t.decorators||t.modifiers?(t.name=Ce(75,!0,e.Diagnostics.Declaration_expected),Tr(t)):e.Debug.fail(\"Should not have attempted to parse class member declaration.\")}function Nr(e){return Ir(e,244)}function Ir(e,n){return e.kind=n,fe(79),e.name=!me()||112===te()&&de(je)?void 0:ke(),e.typeParameters=yn(),e.heritageClauses=Mr(),fe(18)?(e.members=Je(5,kr),fe(19)):e.members=nn(),Le(e)}function Mr(){if(wr())return Je(22,Or)}function Or(){var n=te();e.Debug.assert(89===n||112===n);var t=Te(277);return t.token=n,ae(),t.types=$e(7,Rr),Le(t)}function Rr(){var e=Te(215);return e.expression=bt(),e.typeArguments=Pr(),Le(e)}function Pr(){return 29===te()?tn(20,Qn,29,31):void 0}function wr(){return 89===te()||112===te()}function Fr(){var e=Se(282);return e.name=Oe(),e.initializer=K(rt),Le(e)}function Gr(){var e=Te(249);return fe(18)?(e.statements=Je(1,ar),fe(19)):e.statements=nn(),Le(e)}function Br(e){return e.kind=248,149===te()?(e.name=ke(),e.flags|=1024):(e.name=ln(),e.name.text=Ae(e.name.text)),18===te()?e.body=Gr():Ee(),Le(e)}function Vr(){return 20===ae()}function Ur(){return 43===ae()}function jr(){if(10===te()){var e=ln();return e.text=Ae(e.text),e}return tt()}function Kr(e){var n=Te(e);return n.elements=tn(23,256===e?Wr:Hr,18,19),Le(n)}function Hr(){return zr(261)}function Wr(){return zr(257)}function zr(n){var t=Te(n),r=e.isKeyword(te())&&!me(),a=C.getTokenPos(),i=C.getTextPos(),o=Ne();return 122===te()?(t.propertyName=o,fe(122),r=e.isKeyword(te())&&!me(),a=C.getTokenPos(),i=C.getTextPos(),t.name=Ne()):t.name=o,257===n&&r&&Z(a,i,e.Diagnostics.Identifier_expected),Le(t)}function qr(n){return e.hasModifier(n,1)||252===n.kind&&263===n.moduleReference.kind||253===n.kind||258===n.kind||259===n.kind?n:void 0}function Jr(n){return function(n){return e.isMetaProperty(n)&&95===n.keywordToken&&\"meta\"===n.name.escapedText}(n)?n:d(n,Jr)}n.parseSourceFile=function(n,t,r,a,i,o){if(void 0===i&&(i=!1),6===(o=e.ensureScriptKind(n,o))){var s=D(n,t,r,a,i);return e.convertToObjectWorker(s,s.parseDiagnostics,!1,void 0,void 0),s.referencedFiles=e.emptyArray,s.typeReferenceDirectives=e.emptyArray,s.libReferenceDirectives=e.emptyArray,s.amdDependencies=e.emptyArray,s.hasNoDefaultLib=!1,s.pragmas=e.emptyMap,s}N(t,r,a,o);var c=M(n,r,i,o);return I(),c},n.parseIsolatedEntityName=function(e,n){N(e,n,void 0,1),ae();var t=rn(!0),r=1===te()&&!s.length;return I(),r?t:void 0},n.parseJsonText=D,n.fixupParentReferences=R,function(e){e[e.SourceElements=0]=\"SourceElements\",e[e.BlockStatements=1]=\"BlockStatements\",e[e.SwitchClauses=2]=\"SwitchClauses\",e[e.SwitchClauseStatements=3]=\"SwitchClauseStatements\",e[e.TypeMembers=4]=\"TypeMembers\",e[e.ClassMembers=5]=\"ClassMembers\",e[e.EnumMembers=6]=\"EnumMembers\",e[e.HeritageClauseElement=7]=\"HeritageClauseElement\",e[e.VariableDeclarations=8]=\"VariableDeclarations\",e[e.ObjectBindingElements=9]=\"ObjectBindingElements\",e[e.ArrayBindingElements=10]=\"ArrayBindingElements\",e[e.ArgumentExpressions=11]=\"ArgumentExpressions\",e[e.ObjectLiteralMembers=12]=\"ObjectLiteralMembers\",e[e.JsxAttributes=13]=\"JsxAttributes\",e[e.JsxChildren=14]=\"JsxChildren\",e[e.ArrayLiteralMembers=15]=\"ArrayLiteralMembers\",e[e.Parameters=16]=\"Parameters\",e[e.JSDocParameters=17]=\"JSDocParameters\",e[e.RestProperties=18]=\"RestProperties\",e[e.TypeParameters=19]=\"TypeParameters\",e[e.TypeArguments=20]=\"TypeArguments\",e[e.TupleElementTypes=21]=\"TupleElementTypes\",e[e.HeritageClauses=22]=\"HeritageClauses\",e[e.ImportOrExportSpecifiers=23]=\"ImportOrExportSpecifiers\",e[e.Count=24]=\"Count\"}(S||(S={})),function(e){e[e.False=0]=\"False\",e[e.True=1]=\"True\",e[e.Unknown=2]=\"Unknown\"}(x||(x={})),function(n){function t(n){var t,r=Te(292),a=(n?_e:fe)(18);return r.type=j(4194304,_n),n&&!a||(t=19,te()===t?ie():Y(e.Diagnostics._0_expected,e.tokenToString(t))),R(r),Le(r)}var r,a;function i(n,r){void 0===n&&(n=0);var a=_,i=void 0===r?a.length:n+r;if(r=i-n,e.Debug.assert(n>=0),e.Debug.assert(n<=i),e.Debug.assert(i<=a.length),u(a,n)){var o,s,c,l=[];return C.scanRange(n+3,r-5,(function(){var e,t,r=1,u=n-Math.max(a.lastIndexOf(\"\\n\",n),0)+4;function m(n){e||(e=u),l.push(n),u+=n.length}for(ie();O(5););O(4)&&(r=0,u=0);e:for(;;){switch(te()){case 59:0===r||1===r?(p(l),b(y(u)),r=0,e=void 0):m(C.getTokenText());break;case 4:l.push(C.getTokenText()),r=0,u=0;break;case 41:var f=C.getTokenText();1===r||2===r?(r=2,m(f)):(r=1,u+=f.length);break;case 5:var _=C.getTokenText();2===r?l.push(_):void 0!==e&&u+_.length>e&&l.push(_.slice(e-u-1)),u+=_.length;break;case 1:break e;default:r=2,m(C.getTokenText())}ie()}return d(l),p(l),(t=Te(301,n)).tags=o&&xe(o,s,c),t.comment=l.length?l.join(\"\"):void 0,Le(t,i)}))}function d(e){for(;e.length&&(\"\\n\"===e[0]||\"\\r\"===e[0]);)e.shift()}function p(e){for(;e.length&&\"\"===e[e.length-1].trim();)e.pop()}function m(){for(;;){if(ie(),1===te())return!0;if(5!==te()&&4!==te())return!1}}function f(){if(5!==te()&&4!==te()||!de(m))for(;5===te()||4===te();)ie()}function g(){if((5===te()||4===te())&&de(m))return\"\";for(var e=C.hasPrecedingLineBreak(),n=!1,t=\"\";e&&41===te()||5===te()||4===te();)t+=C.getTokenText(),4===te()?(e=!0,n=!0,t=\"\"):41===te()&&(e=!1),ie();return n?t:\"\"}function y(n){e.Debug.assert(59===te());var r=C.getTokenPos();ie();var a,i=R(void 0),s=g();switch(i.escapedText){case\"author\":a=function(e,n,t){var r=Te(306,e);r.tagName=n;var a=pe((function(){return function(){var e=[],n=!1,t=!1,r=C.getToken();e:for(;;){switch(r){case 75:case 5:case 24:case 59:e.push(C.getTokenText());break;case 29:if(n||t)return;n=!0,e.push(C.getTokenText());break;case 31:if(!n||t)return;t=!0,e.push(C.getTokenText()),C.setTextPos(C.getTokenPos()+1);break e;case 4:case 1:break e}r=ie()}if(n&&t)return 0===e.length?void 0:e.join(\"\")}()}));if(!a)return Le(r);if(r.comment=a,de((function(){return 4!==ae()}))){var i=h(t);i&&(r.comment+=i)}return Le(r)}(r,i,n);break;case\"augments\":case\"extends\":a=function(e,n){var t=Te(305,e);return t.tagName=n,t.class=function(){var e=_e(18),n=Te(215);n.expression=function(){var e=R();for(;_e(24);){var n=Te(193,e.pos);n.expression=e,n.name=R(),e=Le(n)}return e}(),n.typeArguments=Pr();var t=Le(n);e&&fe(19);return t}(),Le(t)}(r,i);break;case\"class\":case\"constructor\":a=function(e,n){var t=Te(307,e);return t.tagName=n,Le(t)}(r,i);break;case\"this\":a=function(e,n){var r=Te(312,e);return r.tagName=n,r.typeExpression=t(!0),f(),Le(r)}(r,i);break;case\"enum\":a=function(e,n){var r=Te(309,e);return r.tagName=n,r.typeExpression=t(!0),f(),Le(r)}(r,i);break;case\"arg\":case\"argument\":case\"param\":return x(r,i,2,n);case\"return\":case\"returns\":a=function(n,t){e.some(o,e.isJSDocReturnTag)&&Z(t.pos,C.getTokenPos(),e.Diagnostics._0_tag_already_specified,t.escapedText);var r=Te(311,n);return r.tagName=t,r.typeExpression=E(),Le(r)}(r,i);break;case\"template\":a=function(n,r){var a;18===te()&&(a=t());var i=[],o=ne();do{f();var s=Te(154);s.name=R(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Le(s),f(),i.push(s)}while(O(27));var c=Te(314,n);return c.tagName=r,c.constraint=a,c.typeParameters=xe(i,o),Le(c),c}(r,i);break;case\"type\":a=L(r,i);break;case\"typedef\":a=function(n,t,r){var a=E();g();var i,o=Te(315,n);if(o.tagName=t,o.fullName=A(),o.name=D(o.fullName),f(),o.comment=h(r),o.typeExpression=a,!a||S(a.type)){for(var s=void 0,c=void 0,l=void 0;s=pe((function(){return N(r)}));)if(c||(c=Te(302,n)),313===s.kind){if(l)break;l=s}else c.jsDocPropertyTags=e.append(c.jsDocPropertyTags,s);c&&(a&&173===a.type.kind&&(c.isArrayType=!0),o.typeExpression=l&&l.typeExpression&&!S(l.typeExpression.type)?l.typeExpression:Le(c),i=o.typeExpression.end)}return Le(o,i||void 0!==o.comment?C.getStartPos():(o.fullName||o.typeExpression||o.tagName).end)}(r,i,n);break;case\"callback\":a=function(n,t,r){var a,i=Te(308,n);i.tagName=t,i.fullName=A(),i.name=D(i.fullName),f(),i.comment=h(r);var o=Te(303,n);o.parameters=[];for(;a=pe((function(){return I(4,r)}));)o.parameters=e.append(o.parameters,a);var s=pe((function(){if(O(59)){var e=y(r);if(e&&311===e.kind)return e}}));s&&(o.type=s);return i.typeExpression=Le(o),Le(i)}(r,i,n);break;default:a=function(e,n){var t=Te(304,e);return t.tagName=n,Le(t)}(r,i)}return a.comment||(s||(n+=a.end-a.pos),a.comment=h(n,s.slice(n))),a}function h(n,t){var r,a=[],i=0;function o(e){r||(r=n),a.push(e),n+=e.length}t&&(o(t),i=2);var s=te();e:for(;;){switch(s){case 4:i>=1&&(i=0,a.push(C.getTokenText())),n=0;break;case 59:if(3===i){a.push(C.getTokenText());break}C.setTextPos(C.getTextPos()-1);case 1:break e;case 5:if(2===i||3===i)o(C.getTokenText());else{var c=C.getTokenText();void 0!==r&&n+c.length>r&&a.push(c.slice(r-n)),n+=c.length}break;case 18:i=2,de((function(){return 59===ie()&&e.tokenIsIdentifierOrKeyword(ie())&&\"link\"===C.getTokenText()}))&&(o(C.getTokenText()),ie(),o(C.getTokenText()),ie()),o(C.getTokenText());break;case 61:i=3===i?2:3,o(C.getTokenText());break;case 41:if(0===i){i=1,n+=1;break}default:3!==i&&(i=2),o(C.getTokenText())}s=ie()}return d(a),p(a),0===a.length?void 0:a.join(\"\")}function b(e){e&&(o?o.push(e):(o=[e],s=e.pos),c=e.end)}function E(){return g(),18===te()?t():void 0}function T(){var n=O(22);n&&f();var t,r=O(61),a=function(){var e=R();_e(22)&&fe(23);for(;_e(24);){var n=R();_e(22)&&fe(23),e=an(e,n)}return e}();return r&&(ye(t=61)||Ce(t,!1,e.Diagnostics._0_expected,e.tokenToString(t))),n&&(f(),ge(62)&&tt(),fe(23)),{name:a,isBracketed:n}}function S(n){switch(n.kind){case 140:return!0;case 173:return S(n.elementType);default:return e.isTypeReferenceNode(n)&&e.isIdentifier(n.typeName)&&\"Object\"===n.typeName.escapedText}}function x(n,t,r,a){var i=E(),o=!i;g();var s=T(),c=s.name,l=s.isBracketed;f(),o&&(i=E());var u=Te(1===r?316:310,n),d=h(a+C.getStartPos()-n),p=4!==r&&function(n,t,r,a){if(n&&S(n.type)){for(var i=Te(292,C.getTokenPos()),o=void 0,s=void 0,c=C.getStartPos(),l=void 0;o=pe((function(){return I(r,a,t)}));)310!==o.kind&&316!==o.kind||(l=e.append(l,o));if(l)return(s=Te(302,c)).jsDocPropertyTags=l,173===n.type.kind&&(s.isArrayType=!0),i.type=Le(s),Le(i)}}(i,c,r,a);return p&&(i=p,o=!0),u.tagName=t,u.typeExpression=i,u.name=c,u.isNameFirst=o,u.isBracketed=l,u.comment=d,Le(u)}function L(n,r){e.some(o,e.isJSDocTypeTag)&&Z(r.pos,C.getTokenPos(),e.Diagnostics._0_tag_already_specified,r.escapedText);var a=Te(313,n);return a.tagName=r,a.typeExpression=t(!0),Le(a)}function A(n){var t=C.getTokenPos();if(e.tokenIsIdentifierOrKeyword(te())){var r=R();if(_e(24)){var a=Te(248,t);return n&&(a.flags|=4),a.name=r,a.body=A(!0),Le(a)}return n&&(r.isInJSDocNamespace=!0),r}}function D(n){if(n)for(var t=n;;){if(e.isIdentifier(t)||!t.body)return e.isIdentifier(t)?t:t.name;t=t.body}}function k(n,t){for(;!e.isIdentifier(n)||!e.isIdentifier(t);){if(e.isIdentifier(n)||e.isIdentifier(t)||n.right.escapedText!==t.right.escapedText)return!1;n=n.left,t=t.left}return n.escapedText===t.escapedText}function N(e){return I(1,e)}function I(n,t,r){for(var a=!0,i=!1;;)switch(ie()){case 59:if(a){var o=M(n,t);return!(o&&(310===o.kind||316===o.kind)&&4!==n&&r&&(e.isIdentifier(o.name)||!k(r,o.name.left)))&&o}i=!1;break;case 4:a=!0,i=!1;break;case 41:i&&(a=!1),i=!0;break;case 75:a=!1;break;case 1:return!1}}function M(n,t){e.Debug.assert(59===te());var r=C.getStartPos();ie();var a,i=R();switch(f(),i.escapedText){case\"type\":return 1===n&&L(r,i);case\"prop\":case\"property\":a=1;break;case\"arg\":case\"argument\":case\"param\":a=6;break;default:return!1}return!!(n&a)&&x(r,i,n,t)}function O(e){return te()===e&&(ie(),!0)}function R(n){if(!e.tokenIsIdentifierOrKeyword(te()))return Ce(75,!n,n||e.Diagnostics.Identifier_expected);v++;var t=C.getTokenPos(),r=C.getTextPos(),a=Te(75,t);return 75!==te()&&(a.originalKeywordKind=te()),a.escapedText=e.escapeLeadingUnderscores(Ae(C.getTokenValue())),Le(a,r),ie(),a}}n.parseJSDocTypeExpressionForTests=function(e,n,r){N(e,99,void 0,1),o=P(\"file.js\",99,1,!1),C.setText(e,n,r),l=C.scan();var a=t(),i=s;return I(),a?{jsDocTypeExpression:a,diagnostics:i}:void 0},n.parseJSDocTypeExpression=t,n.parseIsolatedJSDocComment=function(e,n,t){N(e,99,void 0,1),o={languageVariant:0,text:e};var r=j(4194304,(function(){return i(n,t)})),a=s;return I(),r?{jsDoc:r,diagnostics:a}:void 0},n.parseJSDocComment=function(e,n,t){var r,a=l,c=s.length,u=A,d=j(4194304,(function(){return i(n,t)}));return d&&(d.parent=e),131072&T&&(o.jsDocDiagnostics||(o.jsDocDiagnostics=[]),(r=o.jsDocDiagnostics).push.apply(r,s)),l=a,s.length=c,A=u,d},function(e){e[e.BeginningOfLine=0]=\"BeginningOfLine\",e[e.SawAsterisk=1]=\"SawAsterisk\",e[e.SavingComments=2]=\"SavingComments\",e[e.SavingBackticks=3]=\"SavingBackticks\"}(r||(r={})),function(e){e[e.Property=1]=\"Property\",e[e.Parameter=2]=\"Parameter\",e[e.CallbackParameter=4]=\"CallbackParameter\"}(a||(a={}))}(L=n.JSDocParser||(n.JSDocParser={}))}(o||(o={})),function(n){function t(n,t,a,o,s,c){return void(t?u(n):l(n));function l(n){var t=\"\";if(c&&r(n)&&(t=o.substring(n.pos,n.end)),n._children&&(n._children=void 0),n.pos+=a,n.end+=a,c&&r(n)&&e.Debug.assert(t===s.substring(n.pos,n.end)),d(n,l,u),e.hasJSDocNodes(n))for(var p=0,m=n.jsDoc;p<m.length;p++){l(m[p])}i(n,c)}function u(e){e._children=void 0,e.pos+=a,e.end+=a;for(var n=0,t=e;n<t.length;n++){l(t[n])}}}function r(e){switch(e.kind){case 10:case 8:case 75:return!0}return!1}function a(n,t,r,a,i){e.Debug.assert(n.end>=t,\"Adjusting an element that was entirely before the change range\"),e.Debug.assert(n.pos<=r,\"Adjusting an element that was entirely after the change range\"),e.Debug.assert(n.pos<=n.end),n.pos=Math.min(n.pos,a),n.end>=r?n.end+=i:n.end=Math.min(n.end,a),e.Debug.assert(n.pos<=n.end),n.parent&&(e.Debug.assert(n.pos>=n.parent.pos),e.Debug.assert(n.end<=n.parent.end))}function i(n,t){if(t){var r=n.pos,a=function(n){e.Debug.assert(n.pos>=r),r=n.end};if(e.hasJSDocNodes(n))for(var i=0,o=n.jsDoc;i<o.length;i++){a(o[i])}d(n,a),e.Debug.assert(r<=n.end)}}function s(n,t){var r,a=n;if(d(n,(function n(i){if(e.nodeIsMissing(i))return;if(!(i.pos<=t))return e.Debug.assert(i.pos>t),!0;if(i.pos>=a.pos&&(a=i),t<i.end)return d(i,n),!0;e.Debug.assert(i.end<=t),r=i})),r){var i=function(n){for(;;){var t=e.getLastChild(n);if(!t)return n;n=t}}(r);i.pos>a.pos&&(a=i)}return a}function c(n,t,r,a){var i=n.text;if(r&&(e.Debug.assert(i.length-r.span.length+r.newLength===t.length),a||e.Debug.shouldAssert(3))){var o=i.substr(0,r.span.start),s=t.substr(0,r.span.start);e.Debug.assert(o===s);var c=i.substring(e.textSpanEnd(r.span),i.length),l=t.substring(e.textSpanEnd(e.textChangeRangeNewSpan(r)),t.length);e.Debug.assert(c===l)}}var l;n.updateSourceFile=function(n,r,l,u){if(c(n,r,l,u=u||e.Debug.shouldAssert(2)),e.textChangeRangeIsUnchanged(l))return n;if(0===n.statements.length)return o.parseSourceFile(n.fileName,r,n.languageVersion,void 0,!0,n.scriptKind);var p=n;e.Debug.assert(!p.hasBeenIncrementallyParsed),p.hasBeenIncrementallyParsed=!0;var m=n.text,f=function(n){var t=n.statements,r=0;e.Debug.assert(r<t.length);var a=t[r],i=-1;return{currentNode:function(o){return o!==i&&(a&&a.end===o&&r<t.length-1&&(r++,a=t[r]),a&&a.pos===o||function(e){return t=void 0,r=-1,a=void 0,void d(n,i,o);function i(n){return e>=n.pos&&e<n.end&&(d(n,i,o),!0)}function o(n){if(e>=n.pos&&e<n.end)for(var s=0;s<n.length;s++){var c=n[s];if(c){if(c.pos===e)return t=n,r=s,a=c,!0;if(c.pos<e&&e<c.end)return d(c,i,o),!0}}return!1}}(o)),i=o,e.Debug.assert(!a||a.pos===o),a}}}(n),_=function(n,t){for(var r=t.span.start,a=0;r>0&&a<=1;a++){var i=s(n,r);e.Debug.assert(i.pos<=r);var o=i.pos;r=Math.max(0,o-1)}var c=e.createTextSpanFromBounds(r,e.textSpanEnd(t.span)),l=t.newLength+(t.span.start-r);return e.createTextChangeRange(c,l)}(n,l);c(n,r,_,u),e.Debug.assert(_.span.start<=l.span.start),e.Debug.assert(e.textSpanEnd(_.span)===e.textSpanEnd(l.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(_))===e.textSpanEnd(e.textChangeRangeNewSpan(l)));var g=e.textChangeRangeNewSpan(_).length-_.span.length;return function(n,r,o,s,c,l,u,p){return void m(n);function m(n){if(e.Debug.assert(n.pos<=n.end),n.pos>o)t(n,!1,c,l,u,p);else{var _=n.end;if(_>=r){if(n.intersectsChange=!0,n._children=void 0,a(n,r,o,s,c),d(n,m,f),e.hasJSDocNodes(n))for(var g=0,y=n.jsDoc;g<y.length;g++){m(y[g])}i(n,p)}else e.Debug.assert(_<r)}}function f(n){if(e.Debug.assert(n.pos<=n.end),n.pos>o)t(n,!0,c,l,u,p);else{var i=n.end;if(i>=r){n.intersectsChange=!0,n._children=void 0,a(n,r,o,s,c);for(var d=0,f=n;d<f.length;d++){m(f[d])}}else e.Debug.assert(i<r)}}}(p,_.span.start,e.textSpanEnd(_.span),e.textSpanEnd(e.textChangeRangeNewSpan(_)),g,m,r,u),o.parseSourceFile(n.fileName,r,n.languageVersion,f,!0,n.scriptKind)},function(e){e[e.Value=-1]=\"Value\"}(l||(l={}))}(s||(s={})),e.isDeclarationFileName=p,e.processCommentPragmas=m,e.processPragmasIntoFields=f;var _=e.createMap();function g(e){if(_.has(e))return _.get(e);var n=new RegExp(\"(\\\\s\"+e+\"\\\\s*=\\\\s*)('|\\\")(.+?)\\\\2\",\"im\");return _.set(e,n),n}var y=/^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/im,v=/^\\/\\/\\/?\\s*@(\\S+)\\s*(.*)\\s*$/im;function h(n,t,r){var a=2===t.kind&&y.exec(r);if(a){var i=a[1].toLowerCase(),o=e.commentPragmas[i];if(!(o&&1&o.kind))return;if(o.args){for(var s={},c=0,l=o.args;c<l.length;c++){var u=l[c],d=g(u.name).exec(r);if(!d&&!u.optional)return;if(d)if(u.captureSpan){var p=t.pos+d.index+d[1].length+d[2].length;s[u.name]={value:d[3],pos:p,end:p+d[3].length}}else s[u.name]=d[3]}n.push({name:i,args:{arguments:s,range:t}})}else n.push({name:i,args:{arguments:{},range:t}})}else{var m=2===t.kind&&v.exec(r);if(m)return b(n,t,2,m);if(3===t.kind)for(var f=/\\s*@(\\S+)\\s*(.*)\\s*$/gim,_=void 0;_=f.exec(r);)b(n,t,4,_)}}function b(n,t,r,a){if(a){var i=a[1].toLowerCase(),o=e.commentPragmas[i];if(o&&o.kind&r){var s=function(n,t){if(!t)return{};if(!n.args)return{};for(var r=t.split(/\\s+/),a={},i=0;i<n.args.length;i++){var o=n.args[i];if(!r[i]&&!o.optional)return\"fail\";if(o.captureSpan)return e.Debug.fail(\"Capture spans not yet implemented for non-xml pragmas\");a[o.name]=r[i]}return a}(o,a[2]);\"fail\"!==s&&n.push({name:i,args:{arguments:s,range:t}})}}}function E(e,n){return e.kind===n.kind&&(75===e.kind?e.escapedText===n.escapedText:103===e.kind||e.name.escapedText===n.name.escapedText&&E(e.expression,n.expression))}e.tagNamesAreEquivalent=E}(ts||(ts={})),function(e){e.compileOnSaveCommandLineOption={name:\"compileOnSave\",type:\"boolean\"};var n,t,r=[[\"es5\",\"lib.es5.d.ts\"],[\"es6\",\"lib.es2015.d.ts\"],[\"es2015\",\"lib.es2015.d.ts\"],[\"es7\",\"lib.es2016.d.ts\"],[\"es2016\",\"lib.es2016.d.ts\"],[\"es2017\",\"lib.es2017.d.ts\"],[\"es2018\",\"lib.es2018.d.ts\"],[\"es2019\",\"lib.es2019.d.ts\"],[\"es2020\",\"lib.es2020.d.ts\"],[\"esnext\",\"lib.esnext.d.ts\"],[\"dom\",\"lib.dom.d.ts\"],[\"dom.iterable\",\"lib.dom.iterable.d.ts\"],[\"webworker\",\"lib.webworker.d.ts\"],[\"webworker.importscripts\",\"lib.webworker.importscripts.d.ts\"],[\"scripthost\",\"lib.scripthost.d.ts\"],[\"es2015.core\",\"lib.es2015.core.d.ts\"],[\"es2015.collection\",\"lib.es2015.collection.d.ts\"],[\"es2015.generator\",\"lib.es2015.generator.d.ts\"],[\"es2015.iterable\",\"lib.es2015.iterable.d.ts\"],[\"es2015.promise\",\"lib.es2015.promise.d.ts\"],[\"es2015.proxy\",\"lib.es2015.proxy.d.ts\"],[\"es2015.reflect\",\"lib.es2015.reflect.d.ts\"],[\"es2015.symbol\",\"lib.es2015.symbol.d.ts\"],[\"es2015.symbol.wellknown\",\"lib.es2015.symbol.wellknown.d.ts\"],[\"es2016.array.include\",\"lib.es2016.array.include.d.ts\"],[\"es2017.object\",\"lib.es2017.object.d.ts\"],[\"es2017.sharedmemory\",\"lib.es2017.sharedmemory.d.ts\"],[\"es2017.string\",\"lib.es2017.string.d.ts\"],[\"es2017.intl\",\"lib.es2017.intl.d.ts\"],[\"es2017.typedarrays\",\"lib.es2017.typedarrays.d.ts\"],[\"es2018.asyncgenerator\",\"lib.es2018.asyncgenerator.d.ts\"],[\"es2018.asynciterable\",\"lib.es2018.asynciterable.d.ts\"],[\"es2018.intl\",\"lib.es2018.intl.d.ts\"],[\"es2018.promise\",\"lib.es2018.promise.d.ts\"],[\"es2018.regexp\",\"lib.es2018.regexp.d.ts\"],[\"es2019.array\",\"lib.es2019.array.d.ts\"],[\"es2019.object\",\"lib.es2019.object.d.ts\"],[\"es2019.string\",\"lib.es2019.string.d.ts\"],[\"es2019.symbol\",\"lib.es2019.symbol.d.ts\"],[\"es2020.string\",\"lib.es2020.string.d.ts\"],[\"es2020.symbol.wellknown\",\"lib.es2020.symbol.wellknown.d.ts\"],[\"esnext.array\",\"lib.es2019.array.d.ts\"],[\"esnext.symbol\",\"lib.es2019.symbol.d.ts\"],[\"esnext.asynciterable\",\"lib.es2018.asynciterable.d.ts\"],[\"esnext.intl\",\"lib.esnext.intl.d.ts\"],[\"esnext.bigint\",\"lib.esnext.bigint.d.ts\"]];function a(e){return e&&void 0!==e.enableAutoDiscovery&&void 0===e.enable?{enable:e.enableAutoDiscovery,include:e.include||[],exclude:e.exclude||[]}:e}function i(){return n||(n=o(e.optionDeclarations))}function o(n){var t=e.createMap(),r=e.createMap();return e.forEach(n,(function(e){t.set(e.name.toLowerCase(),e),e.shortName&&r.set(e.shortName,e.name)})),{optionNameMap:t,shortOptionNames:r}}function s(n){return c(n,e.createCompilerDiagnostic)}function c(n,t){var r=e.arrayFrom(n.type.keys()).map((function(e){return\"'\"+e+\"'\"})).join(\", \");return t(e.Diagnostics.Argument_for_0_option_must_be_Colon_1,\"--\"+n.name,r)}function l(e,n,t){return H(e,W(n||\"\"),t)}function u(n,t,r){if(void 0===t&&(t=\"\"),t=W(t),!e.startsWith(t,\"-\")){if(\"\"===t)return[];var a=t.split(\",\");switch(n.element.type){case\"number\":return e.map(a,parseInt);case\"string\":return e.map(a,(function(e){return e||\"\"}));default:return e.mapDefined(a,(function(e){return l(n.element,e,r)}))}}}function d(n,t,r,a){var i=t[0],o=t[1],s={},c=[],d=[];return p(r),{options:s,fileNames:c,errors:d};function p(t){for(var r=0;r<t.length;){var a=t[r];if(r++,64===a.charCodeAt(0))f(a.slice(1));else if(45===a.charCodeAt(0)){var p=m(n,a.slice(45===a.charCodeAt(1)?2:1),!0);if(p)if(p.isTSConfigOnly)d.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file,p.name));else switch(t[r]||\"boolean\"===p.type||d.push(e.createCompilerDiagnostic(o,p.name)),p.type){case\"number\":s[p.name]=parseInt(t[r]),r++;break;case\"boolean\":var _=t[r];s[p.name]=\"false\"!==_,\"false\"!==_&&\"true\"!==_||r++;break;case\"string\":s[p.name]=t[r]||\"\",r++;break;case\"list\":var g=u(p,t[r],d);s[p.name]=g||[],g&&r++;break;default:s[p.name]=l(p,t[r],d),r++}else d.push(e.createCompilerDiagnostic(i,a))}else c.push(a)}}function f(n){var t=a?a(n):e.sys.readFile(n);if(t){for(var r=[],i=0;;){for(;i<t.length&&t.charCodeAt(i)<=32;)i++;if(i>=t.length)break;var o=i;if(34===t.charCodeAt(o)){for(i++;i<t.length&&34!==t.charCodeAt(i);)i++;i<t.length?(r.push(t.substring(o+1,i)),i++):d.push(e.createCompilerDiagnostic(e.Diagnostics.Unterminated_quoted_string_in_response_file_0,n))}else{for(;t.charCodeAt(i)>32;)i++;r.push(t.substring(o,i))}}p(r)}else d.push(e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,n))}}function p(e,n){return m(i,e,n)}function m(e,n,t){void 0===t&&(t=!1),n=n.toLowerCase();var r=e(),a=r.optionNameMap,i=r.shortOptionNames;if(t){var o=i.get(n);void 0!==o&&(n=o)}return a.get(n)}function f(n,t){var r=e.parseJsonText(n,t);return{config:v(r,r.parseDiagnostics),error:r.parseDiagnostics.length?r.parseDiagnostics[0]:void 0}}function _(n,t){var r=g(n,t);return e.isString(r)?e.parseJsonText(n,r):{parseDiagnostics:[r]}}function g(n,t){var r;try{r=t(n)}catch(t){return e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0_Colon_1,n,t.message)}return void 0===r?e.createCompilerDiagnostic(e.Diagnostics.The_specified_path_does_not_exist_Colon_0,n):r}function y(n){return e.arrayToMap(n,(function(e){return e.name}))}function v(e,n){return h(e,n,!0,void 0,void 0)}function h(n,t,r,a,i){return n.statements.length?l(n.statements[0].expression,a):r?{}:void 0;function o(e){return a&&a.elementOptions===e}function s(a,s,c,d){for(var p=r?{}:void 0,m=0,f=a.properties;m<f.length;m++){var _=f[m];if(279===_.kind){_.questionToken&&t.push(e.createDiagnosticForNodeInSourceFile(n,_.questionToken,e.Diagnostics._0_can_only_be_used_in_a_ts_file,\"?\")),u(_.name)||t.push(e.createDiagnosticForNodeInSourceFile(n,_.name,e.Diagnostics.String_literal_with_double_quotes_expected));var g=e.getTextOfPropertyName(_.name),y=g&&e.unescapeLeadingUnderscores(g),v=y&&s?s.get(y):void 0;y&&c&&!v&&t.push(e.createDiagnosticForNodeInSourceFile(n,_.name,c,y));var h=l(_.initializer,v);if(void 0!==y&&(r&&(p[y]=h),i&&(d||o(s)))){var b=E(v,h);d?b&&i.onSetValidOptionKeyValueInParent(d,v,h):o(s)&&(b?i.onSetValidOptionKeyValueInRoot(y,_.name,h,_.initializer):v||i.onSetUnknownOptionKeyValueInRoot(y,_.name,h,_.initializer))}}else t.push(e.createDiagnosticForNodeInSourceFile(n,_,e.Diagnostics.Property_assignment_expected))}return p}function l(a,i){switch(a.kind){case 105:return g(i&&\"boolean\"!==i.type),!0;case 90:return g(i&&\"boolean\"!==i.type),!1;case 99:return g(i&&\"extends\"===i.name),null;case 10:u(a)||t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.String_literal_with_double_quotes_expected)),g(i&&e.isString(i.type)&&\"string\"!==i.type);var o=a.text;if(i&&!e.isString(i.type)){var d=i;d.type.has(o.toLowerCase())||t.push(c(d,(function(t,r,i){return e.createDiagnosticForNodeInSourceFile(n,a,t,r,i)})))}return o;case 8:return g(i&&\"number\"!==i.type),Number(a.text);case 206:if(40!==a.operator||8!==a.operand.kind)break;return g(i&&\"number\"!==i.type),-Number(a.operand.text);case 192:g(i&&\"object\"!==i.type);var p=a;if(i){var m=i;return s(p,m.elementOptions,m.extraKeyDiagnosticMessage,m.name)}return s(p,void 0,void 0,void 0);case 191:return g(i&&\"list\"!==i.type),f=a.elements,_=i&&i.element,r?e.filter(f.map((function(e){return l(e,_)})),(function(e){return void 0!==e})):f.forEach((function(e){return l(e,_)}))}var f,_;return void(i?g(!0):t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal)));function g(r){r&&t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,i.name,b(i)))}}function u(t){return e.isStringLiteral(t)&&e.isStringDoubleQuoted(t,n)}}function b(n){return\"list\"===n.type?\"Array\":e.isString(n.type)?n.type:\"string\"}function E(n,t){return!!n&&(!!D(t)||(\"list\"===n.type?e.isArray(t):typeof t===(e.isString(n.type)?n.type:\"string\")))}function T(n){if(e.length(n)){if(1!==e.length(n))return n;if(\"**/*\"!==n[0])return n}}function S(n,t){return e.forEachEntry(t,(function(e,t){if(e===n)return t}))}function x(n,t){var r=e.createMap(),a=i().optionNameMap,o=t&&e.createGetCanonicalFileName(t.useCaseSensitiveFileNames),s=function(i){if(e.hasProperty(n,i)){if(a.has(i)&&a.get(i).category===e.Diagnostics.Command_line_Options)return\"continue\";var s=n[i],c=a.get(i.toLowerCase());if(c){var l=function e(n){return\"string\"===n.type||\"number\"===n.type||\"boolean\"===n.type||\"object\"===n.type?void 0:\"list\"===n.type?e(n.element):n.type}(c);l?\"list\"===c.type?r.set(i,s.map((function(e){return S(e,l)}))):r.set(i,S(s,l)):t&&c.isFilePath?r.set(i,e.getRelativePathFromFile(t.configFilePath,e.getNormalizedAbsolutePath(s,e.getDirectoryPath(t.configFilePath)),o)):r.set(i,s)}}};for(var c in n)s(c);return r}function L(e,n,t){if(e)if(\"list\"===e.type){var r=n;if(e.element.isFilePath&&r.length)return r.map(t)}else if(e.isFilePath)return t(n);return n}function C(e,n,t,r,a,i,o,s){return N(void 0,e,n,t,r,a,i,o,s)}function A(e,n){n&&Object.defineProperty(e,\"configFile\",{enumerable:!1,writable:!1,value:n})}function D(e){return null==e}function k(n,t){return e.getDirectoryPath(e.getNormalizedAbsolutePath(n,t))}function N(n,t,r,a,i,o,s,c,l){void 0===i&&(i={}),void 0===s&&(s=[]),void 0===c&&(c=[]),e.Debug.assert(void 0===n&&void 0!==t||void 0!==n&&void 0===t);var u,d=[],p=P(n,t,r,a,o,s,d,l),m=p.raw,f=e.extend(i,p.options||{});f.configFilePath=o&&e.normalizeSlashes(o),A(f,t);var _=function(){var n,i,l;if(e.hasProperty(m,\"files\")&&!D(m.files))if(e.isArray(m.files)){n=m.files;var p=!(e.hasProperty(m,\"references\")&&!D(m.references))||0===m.references.length,_=e.hasProperty(m,\"extends\");if(0===n.length&&p&&!_)if(t){var g=o||\"tsconfig.json\",y=e.Diagnostics.The_files_list_in_config_file_0_is_empty,v=e.firstDefined(e.getTsConfigPropArray(t,\"files\"),(function(e){return e.initializer})),b=v?e.createDiagnosticForNodeInSourceFile(t,v,y,g):e.createCompilerDiagnostic(y,g);d.push(b)}else h(e.Diagnostics.The_files_list_in_config_file_0_is_empty,o||\"tsconfig.json\")}else h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"files\",\"Array\");e.hasProperty(m,\"include\")&&!D(m.include)&&(e.isArray(m.include)?i=m.include:h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"include\",\"Array\"));if(e.hasProperty(m,\"exclude\")&&!D(m.exclude))e.isArray(m.exclude)?l=m.exclude:h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"exclude\",\"Array\");else if(m.compilerOptions){var E=m.compilerOptions.outDir,T=m.compilerOptions.declarationDir;(E||T)&&(l=[E,T].filter((function(e){return!!e})))}void 0===n&&void 0===i&&(i=[\"**/*\"]);var S=function(n,t,r,a,i,o,s,c,l){var u,d;a=e.normalizePath(a),t&&(u=Q(t,s,!1,l,\"include\"));r&&(d=Q(r,s,!0,l,\"exclude\"));var p=function(n,t,r,a){var i=e.getRegularExpressionForWildcard(t,r,\"exclude\"),o=i&&new RegExp(i,a?\"\":\"i\"),s={};if(void 0!==n){for(var c=[],l=0,u=n;l<u.length;l++){var d=u[l],p=e.normalizePath(e.combinePaths(r,d));if(!o||!o.test(p)){var m=Z(p,a);if(m){var f=m.key,_=m.flags,g=s[f];(void 0===g||g<_)&&(s[f]=_,1===_&&c.push(f))}}}for(var f in s)if(e.hasProperty(s,f))for(var y=0,v=c;y<v.length;y++){var h=v[y];f!==h&&e.containsPath(h,f,r,!a)&&delete s[f]}}return s}(u,d,a,o.useCaseSensitiveFileNames);return Y({filesSpecs:n,includeSpecs:t,excludeSpecs:r,validatedIncludeSpecs:u,validatedExcludeSpecs:d,wildcardDirectories:p},a,i,o,c)}(n,i,l,o?k(o,a):a,f,r,d,c,t);M(S,O(m),s)&&d.push(I(S.spec,o));if(e.hasProperty(m,\"references\")&&!D(m.references))if(e.isArray(m.references))for(var x=0,L=m.references;x<L.length;x++){var C=L[x];\"string\"!=typeof C.path?h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"reference.path\",\"string\"):(u||(u=[])).push({path:e.getNormalizedAbsolutePath(C.path,a),originalPath:C.path,prepend:C.prepend,circular:C.circular})}else h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"references\",\"Array\");return S}(),g=_.fileNames,y=_.wildcardDirectories,v=_.spec;return{options:f,fileNames:g,projectReferences:u,typeAcquisition:p.typeAcquisition||B(),raw:m,errors:d,wildcardDirectories:y,compileOnSave:!!m.compileOnSave,configFileSpecs:v};function h(n,r,a){t||d.push(e.createCompilerDiagnostic(n,r,a))}}function I(n,t){var r=n.includeSpecs,a=n.excludeSpecs;return e.createCompilerDiagnostic(e.Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2,t||\"tsconfig.json\",JSON.stringify(r||[]),JSON.stringify(a||[]))}function M(e,n,t){return 0===e.fileNames.length&&n&&(!t||0===t.length)}function O(n){return!e.hasProperty(n,\"files\")&&!e.hasProperty(n,\"references\")}function R(e){return!!e.options}function P(n,r,a,i,o,s,c,l){i=e.normalizeSlashes(i);var u=e.getNormalizedAbsolutePath(o||\"\",i);if(s.indexOf(u)>=0)return c.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,__spreadArrays(s,[u]).join(\" -> \"))),{raw:n||v(r,c)};var d=n?function(n,t,r,a,i){e.hasProperty(n,\"excludes\")&&i.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var o,s=G(n.compilerOptions,r,i,a),c=V(n.typeAcquisition||n.typingOptions,r,i,a);if(n.compileOnSave=function(n,t,r){if(!e.hasProperty(n,e.compileOnSaveCommandLineOption.name))return!1;var a=j(e.compileOnSaveCommandLineOption,n.compileOnSave,t,r);return\"boolean\"==typeof a&&a}(n,r,i),n.extends)if(e.isString(n.extends)){var l=a?k(a,r):r;o=w(n.extends,t,l,i,e.createCompilerDiagnostic)}else i.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"extends\",\"string\"));return{raw:n,options:s,typeAcquisition:c,extendedConfigPath:o}}(n,a,i,o,c):function(n,r,a,i,o){var s,c,l,u=F(i),d={onSetValidOptionKeyValueInParent:function(n,t,r){e.Debug.assert(\"compilerOptions\"===n||\"typeAcquisition\"===n||\"typingOptions\"===n),(\"compilerOptions\"===n?u:\"typeAcquisition\"===n?s||(s=B(i)):c||(c=B(i)))[t.name]=function n(t,r,a){if(D(a))return;if(\"list\"===t.type){var i=t;return i.element.isFilePath||!e.isString(i.element.type)?e.filter(e.map(a,(function(e){return n(i.element,r,e)})),(function(e){return!!e})):a}if(!e.isString(t.type))return t.type.get(e.isString(a)?a.toLowerCase():a);return K(t,r,a)}(t,a,r)},onSetValidOptionKeyValueInRoot:function(t,s,c,u){switch(t){case\"extends\":var d=i?k(i,a):a;return void(l=w(c,r,d,o,(function(t,r){return e.createDiagnosticForNodeInSourceFile(n,u,t,r)})))}},onSetUnknownOptionKeyValueInRoot:function(t,r,a,i){\"excludes\"===t&&o.push(e.createDiagnosticForNodeInSourceFile(n,r,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude))}},p=h(n,o,!0,(void 0===t&&(t={name:void 0,type:\"object\",elementOptions:y([{name:\"compilerOptions\",type:\"object\",elementOptions:y(e.optionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_compiler_option_0},{name:\"typingOptions\",type:\"object\",elementOptions:y(e.typeAcquisitionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_type_acquisition_option_0},{name:\"typeAcquisition\",type:\"object\",elementOptions:y(e.typeAcquisitionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_type_acquisition_option_0},{name:\"extends\",type:\"string\"},{name:\"references\",type:\"list\",element:{name:\"references\",type:\"object\"}},{name:\"files\",type:\"list\",element:{name:\"files\",type:\"string\"}},{name:\"include\",type:\"list\",element:{name:\"include\",type:\"string\"}},{name:\"exclude\",type:\"list\",element:{name:\"exclude\",type:\"string\"}},e.compileOnSaveCommandLineOption])}),t),d);s||(s=c?void 0!==c.enableAutoDiscovery?{enable:c.enableAutoDiscovery,include:c.include,exclude:c.exclude}:c:B(i));return{raw:p,options:u,typeAcquisition:s,extendedConfigPath:l}}(r,a,i,o,c);if(d.extendedConfigPath){s=s.concat([u]);var p=function(n,t,r,a,i,o,s){var c,l,u,d,p=r.useCaseSensitiveFileNames?t:e.toLowerCase(t);if(s&&(l=s.get(p)))u=l.extendedResult,d=l.extendedConfig;else{if(!(u=_(t,(function(e){return r.readFile(e)}))).parseDiagnostics.length){var m=e.getDirectoryPath(t);if(R(d=P(void 0,u,r,m,e.getBaseFileName(t),i,o,s))){var f=e.convertToRelativePath(m,a,e.identity),g=function(n){return e.isRootedDiskPath(n)?n:e.combinePaths(f,n)},y=function(n){v[n]&&(v[n]=e.map(v[n],g))},v=d.raw;y(\"include\"),y(\"exclude\"),y(\"files\")}}s&&s.set(p,{extendedResult:u,extendedConfig:d})}n&&(n.extendedSourceFiles=[u.fileName],u.extendedSourceFiles&&(c=n.extendedSourceFiles).push.apply(c,u.extendedSourceFiles));if(u.parseDiagnostics.length)return void o.push.apply(o,u.parseDiagnostics);return d}(r,d.extendedConfigPath,a,i,s,c,l);if(p&&R(p)){var m=p.raw,f=d.raw,g=function(e){var n=f[e]||m[e];n&&(f[e]=n)};g(\"include\"),g(\"exclude\"),g(\"files\"),void 0===f.compileOnSave&&(f.compileOnSave=m.compileOnSave),d.options=e.assign({},p.options,d.options)}}return d}function w(n,t,r,a,i){if(n=e.normalizeSlashes(n),e.isRootedDiskPath(n)||e.startsWith(n,\"./\")||e.startsWith(n,\"../\")){var o=e.getNormalizedAbsolutePath(n,r);return t.fileExists(o)||e.endsWith(o,\".json\")||(o+=\".json\",t.fileExists(o))?o:void a.push(i(e.Diagnostics.File_0_not_found,n))}var s=e.nodeModuleNameResolver(n,e.combinePaths(r,\"tsconfig.json\"),{moduleResolution:e.ModuleResolutionKind.NodeJs},t,void 0,void 0,!0);if(s.resolvedModule)return s.resolvedModule.resolvedFileName;a.push(i(e.Diagnostics.File_0_not_found,n))}function F(n){return n&&\"jsconfig.json\"===e.getBaseFileName(n)?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{}}function G(n,t,r,a){var i=F(a);return U(e.optionDeclarations,n,t,i,e.Diagnostics.Unknown_compiler_option_0,r),a&&(i.configFilePath=e.normalizeSlashes(a)),i}function B(n){return{enable:!!n&&\"jsconfig.json\"===e.getBaseFileName(n),include:[],exclude:[]}}function V(n,t,r,i){var o=B(i),s=a(n);return U(e.typeAcquisitionDeclarations,s,t,o,e.Diagnostics.Unknown_type_acquisition_option_0,r),o}function U(n,t,r,a,i,o){if(t){var s=y(n);for(var c in t){var l=s.get(c);l?a[l.name]=j(l,t[c],r,o):o.push(e.createCompilerDiagnostic(i,c))}}}function j(n,t,r,a){if(E(n,t)){var i=n.type;return\"list\"===i&&e.isArray(t)?function(n,t,r,a){return e.filter(e.map(t,(function(e){return j(n.element,e,r,a)})),(function(e){return!!e}))}(n,t,r,a):e.isString(i)?K(n,r,t):H(n,t,a)}a.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,n.name,b(n)))}function K(n,t,r){return n.isFilePath&&\"\"===(r=e.getNormalizedAbsolutePath(r,t))&&(r=\".\"),r}function H(e,n,t){if(!D(n)){var r=n.toLowerCase(),a=e.type.get(r);if(void 0!==a)return a;t.push(s(e))}}function W(e){return\"function\"==typeof e.trim?e.trim():e.replace(/^[\\s]+|[\\s]+$/g,\"\")}e.libs=r.map((function(e){return e[0]})),e.libMap=e.createMapFromEntries(r),e.commonOptionsWithBuild=[{name:\"help\",shortName:\"h\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Print_this_message},{name:\"help\",shortName:\"?\",type:\"boolean\"},{name:\"watch\",shortName:\"w\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Watch_input_files},{name:\"preserveWatchOutput\",type:\"boolean\",showInSimplifiedHelpView:!1,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen},{name:\"listFiles\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Print_names_of_files_part_of_the_compilation},{name:\"listEmittedFiles\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Print_names_of_generated_files_part_of_the_compilation},{name:\"pretty\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Stylize_errors_and_messages_using_color_and_context_experimental},{name:\"traceResolution\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Enable_tracing_of_the_name_resolution_process},{name:\"diagnostics\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Show_diagnostic_information},{name:\"extendedDiagnostics\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Show_verbose_diagnostic_information},{name:\"generateCpuProfile\",type:\"string\",isFilePath:!0,paramType:e.Diagnostics.FILE_OR_DIRECTORY,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Generates_a_CPU_profile},{name:\"incremental\",shortName:\"i\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Enable_incremental_compilation,transpileOptionValue:void 0},{name:\"locale\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_locale_used_when_displaying_messages_to_the_user_e_g_en_us}],e.optionDeclarations=__spreadArrays(e.commonOptionsWithBuild,[{name:\"all\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Show_all_compiler_options},{name:\"version\",shortName:\"v\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Print_the_compiler_s_version},{name:\"init\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file},{name:\"project\",shortName:\"p\",type:\"string\",isFilePath:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,paramType:e.Diagnostics.FILE_OR_DIRECTORY,description:e.Diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json},{name:\"build\",type:\"boolean\",shortName:\"b\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date},{name:\"showConfig\",type:\"boolean\",category:e.Diagnostics.Command_line_Options,isCommandLineOnly:!0,description:e.Diagnostics.Print_the_final_configuration_instead_of_building},{name:\"listFilesOnly\",type:\"boolean\",category:e.Diagnostics.Command_line_Options,affectsSemanticDiagnostics:!0,affectsEmit:!0,isCommandLineOnly:!0,description:e.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing},{name:\"target\",shortName:\"t\",type:e.createMapFromTemplate({es3:0,es5:1,es6:2,es2015:2,es2016:3,es2017:4,es2018:5,es2019:6,es2020:7,esnext:99}),affectsSourceFile:!0,affectsModuleResolution:!0,affectsEmit:!0,paramType:e.Diagnostics.VERSION,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT},{name:\"module\",shortName:\"m\",type:e.createMapFromTemplate({none:e.ModuleKind.None,commonjs:e.ModuleKind.CommonJS,amd:e.ModuleKind.AMD,system:e.ModuleKind.System,umd:e.ModuleKind.UMD,es6:e.ModuleKind.ES2015,es2015:e.ModuleKind.ES2015,esnext:e.ModuleKind.ESNext}),affectsModuleResolution:!0,affectsEmit:!0,paramType:e.Diagnostics.KIND,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext},{name:\"lib\",type:\"list\",element:{name:\"lib\",type:e.libMap},affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_library_files_to_be_included_in_the_compilation,transpileOptionValue:void 0},{name:\"allowJs\",type:\"boolean\",affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Allow_javascript_files_to_be_compiled},{name:\"checkJs\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Report_errors_in_js_files},{name:\"jsx\",type:e.createMapFromTemplate({preserve:1,\"react-native\":3,react:2}),affectsSourceFile:!0,paramType:e.Diagnostics.KIND,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_JSX_code_generation_Colon_preserve_react_native_or_react},{name:\"declaration\",shortName:\"d\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_corresponding_d_ts_file,transpileOptionValue:void 0},{name:\"declarationMap\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_a_sourcemap_for_each_corresponding_d_ts_file,transpileOptionValue:void 0},{name:\"emitDeclarationOnly\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Only_emit_d_ts_declaration_files,transpileOptionValue:void 0},{name:\"sourceMap\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_corresponding_map_file},{name:\"outFile\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.FILE,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Concatenate_and_emit_output_to_single_file,transpileOptionValue:void 0},{name:\"outDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.DIRECTORY,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Redirect_output_structure_to_the_directory},{name:\"rootDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir},{name:\"composite\",type:\"boolean\",affectsEmit:!0,isTSConfigOnly:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Enable_project_compilation,transpileOptionValue:void 0},{name:\"tsBuildInfoFile\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.FILE,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_file_to_store_incremental_compilation_information,transpileOptionValue:void 0},{name:\"removeComments\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Do_not_emit_comments_to_output},{name:\"noEmit\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Do_not_emit_outputs,transpileOptionValue:void 0},{name:\"importHelpers\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Import_emit_helpers_from_tslib},{name:\"downlevelIteration\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3},{name:\"isolatedModules\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule,transpileOptionValue:!0},{name:\"strict\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_all_strict_type_checking_options},{name:\"noImplicitAny\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Raise_error_on_expressions_and_declarations_with_an_implied_any_type},{name:\"strictNullChecks\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_null_checks},{name:\"strictFunctionTypes\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_checking_of_function_types},{name:\"strictBindCallApply\",type:\"boolean\",strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_bind_call_and_apply_methods_on_functions},{name:\"strictPropertyInitialization\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_checking_of_property_initialization_in_classes},{name:\"noImplicitThis\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Raise_error_on_this_expressions_with_an_implied_any_type},{name:\"alwaysStrict\",type:\"boolean\",affectsSourceFile:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Parse_in_strict_mode_and_emit_use_strict_for_each_source_file},{name:\"noUnusedLocals\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_on_unused_locals},{name:\"noUnusedParameters\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_on_unused_parameters},{name:\"noImplicitReturns\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_error_when_not_all_code_paths_in_function_return_a_value},{name:\"noFallthroughCasesInSwitch\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_for_fallthrough_cases_in_switch_statement},{name:\"moduleResolution\",type:e.createMapFromTemplate({node:e.ModuleResolutionKind.NodeJs,classic:e.ModuleResolutionKind.Classic}),affectsModuleResolution:!0,paramType:e.Diagnostics.STRATEGY,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6},{name:\"baseUrl\",type:\"string\",affectsModuleResolution:!0,isFilePath:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Base_directory_to_resolve_non_absolute_module_names},{name:\"paths\",type:\"object\",affectsModuleResolution:!0,isTSConfigOnly:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl,transpileOptionValue:void 0},{name:\"rootDirs\",type:\"list\",isTSConfigOnly:!0,element:{name:\"rootDirs\",type:\"string\",isFilePath:!0},affectsModuleResolution:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime,transpileOptionValue:void 0},{name:\"typeRoots\",type:\"list\",element:{name:\"typeRoots\",type:\"string\",isFilePath:!0},affectsModuleResolution:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.List_of_folders_to_include_type_definitions_from},{name:\"types\",type:\"list\",element:{name:\"types\",type:\"string\"},affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Type_declaration_files_to_be_included_in_compilation,transpileOptionValue:void 0},{name:\"allowSyntheticDefaultImports\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking},{name:\"esModuleInterop\",type:\"boolean\",affectsSemanticDiagnostics:!0,affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports},{name:\"preserveSymlinks\",type:\"boolean\",category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Do_not_resolve_the_real_path_of_symlinks},{name:\"allowUmdGlobalAccess\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Allow_accessing_UMD_globals_from_modules},{name:\"sourceRoot\",type:\"string\",affectsEmit:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations},{name:\"mapRoot\",type:\"string\",affectsEmit:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations},{name:\"inlineSourceMap\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file},{name:\"inlineSources\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set},{name:\"experimentalDecorators\",type:\"boolean\",category:e.Diagnostics.Experimental_Options,description:e.Diagnostics.Enables_experimental_support_for_ES7_decorators},{name:\"emitDecoratorMetadata\",type:\"boolean\",category:e.Diagnostics.Experimental_Options,description:e.Diagnostics.Enables_experimental_support_for_emitting_type_metadata_for_decorators},{name:\"jsxFactory\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h},{name:\"resolveJsonModule\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Include_modules_imported_with_json_extension},{name:\"out\",type:\"string\",affectsEmit:!0,isFilePath:!1,category:e.Diagnostics.Advanced_Options,paramType:e.Diagnostics.FILE,description:e.Diagnostics.Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file,transpileOptionValue:void 0},{name:\"reactNamespace\",type:\"string\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit},{name:\"skipDefaultLibCheck\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files},{name:\"charset\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_character_set_of_the_input_files},{name:\"emitBOM\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files},{name:\"newLine\",type:e.createMapFromTemplate({crlf:0,lf:1}),affectsEmit:!0,paramType:e.Diagnostics.NEWLINE,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix},{name:\"noErrorTruncation\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_truncate_error_messages},{name:\"noLib\",type:\"boolean\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_include_the_default_library_file_lib_d_ts,transpileOptionValue:!0},{name:\"noResolve\",type:\"boolean\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files,transpileOptionValue:!0},{name:\"stripInternal\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation},{name:\"disableSizeLimit\",type:\"boolean\",affectsSourceFile:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_size_limitations_on_JavaScript_projects},{name:\"disableSourceOfProjectReferenceRedirect\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects},{name:\"noImplicitUseStrict\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_use_strict_directives_in_module_output},{name:\"noEmitHelpers\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_generate_custom_helper_functions_like_extends_in_compiled_output},{name:\"noEmitOnError\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_outputs_if_any_errors_were_reported,transpileOptionValue:void 0},{name:\"preserveConstEnums\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code},{name:\"declarationDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.DIRECTORY,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Output_directory_for_generated_declaration_files,transpileOptionValue:void 0},{name:\"skipLibCheck\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Skip_type_checking_of_declaration_files},{name:\"allowUnusedLabels\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_report_errors_on_unused_labels},{name:\"allowUnreachableCode\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_report_errors_on_unreachable_code},{name:\"suppressExcessPropertyErrors\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Suppress_excess_property_checks_for_object_literals},{name:\"suppressImplicitAnyIndexErrors\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures},{name:\"forceConsistentCasingInFileNames\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disallow_inconsistently_cased_references_to_the_same_file},{name:\"maxNodeModuleJsDepth\",type:\"number\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files},{name:\"noStrictGenericChecks\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types},{name:\"useDefineForClassFields\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Emit_class_fields_with_Define_instead_of_Set},{name:\"keyofStringsOnly\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols},{name:\"plugins\",type:\"list\",isTSConfigOnly:!0,element:{name:\"plugin\",type:\"object\"},description:e.Diagnostics.List_of_language_service_plugins}]),e.semanticDiagnosticsOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsSemanticDiagnostics})),e.affectsEmitOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsEmit})),e.moduleResolutionOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsModuleResolution})),e.sourceFileAffectingCompilerOptions=e.optionDeclarations.filter((function(e){return!!e.affectsSourceFile||!!e.affectsModuleResolution||!!e.affectsBindDiagnostics})),e.transpileOptionValueCompilerOptions=e.optionDeclarations.filter((function(n){return e.hasProperty(n,\"transpileOptionValue\")})),e.buildOpts=__spreadArrays(e.commonOptionsWithBuild,[{name:\"verbose\",shortName:\"v\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Enable_verbose_logging,type:\"boolean\"},{name:\"dry\",shortName:\"d\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,type:\"boolean\"},{name:\"force\",shortName:\"f\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,type:\"boolean\"},{name:\"clean\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Delete_the_outputs_of_all_projects,type:\"boolean\"}]),e.typeAcquisitionDeclarations=[{name:\"enableAutoDiscovery\",type:\"boolean\"},{name:\"enable\",type:\"boolean\"},{name:\"include\",type:\"list\",element:{name:\"include\",type:\"string\"}},{name:\"exclude\",type:\"list\",element:{name:\"exclude\",type:\"string\"}}],e.defaultInitCompilerOptions={module:e.ModuleKind.CommonJS,target:1,strict:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0},e.convertEnableAutoDiscoveryToEnable=a,e.getOptionNameMap=i,e.createOptionNameMap=o,e.createCompilerDiagnosticForInvalidCustomType=s,e.parseCustomTypeOption=l,e.parseListTypeOption=u,e.parseCommandLine=function(n,t){return d(i,[e.Diagnostics.Unknown_compiler_option_0,e.Diagnostics.Compiler_option_0_expects_an_argument],n,t)},e.getOptionFromName=p,e.parseBuildCommand=function(n){var t,r=d((function(){return t||(t=o(e.buildOpts))}),[e.Diagnostics.Unknown_build_option_0,e.Diagnostics.Build_option_0_requires_a_value_of_type_1],n),a=r.options,i=r.fileNames,s=r.errors,c=a;return 0===i.length&&i.push(\".\"),c.clean&&c.force&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"force\")),c.clean&&c.verbose&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"verbose\")),c.clean&&c.watch&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"watch\")),c.watch&&c.dry&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"watch\",\"dry\")),{buildOptions:c,projects:i,errors:s}},e.getDiagnosticText=function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var a=e.createCompilerDiagnostic.apply(void 0,arguments);return a.messageText},e.getParsedCommandLineOfConfigFile=function(n,t,r,a){var i;try{i=r.readFile(n)}catch(t){var o=e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0_Colon_1,n,t.message);return void r.onUnRecoverableConfigFileDiagnostic(o)}if(i){var s=e.parseJsonText(n,i),c=r.getCurrentDirectory();return s.path=e.toPath(n,c,e.createGetCanonicalFileName(r.useCaseSensitiveFileNames)),s.resolvedPath=s.path,s.originalFileName=s.fileName,C(s,r,e.getNormalizedAbsolutePath(e.getDirectoryPath(n),c),t,e.getNormalizedAbsolutePath(n,c),void 0,void 0,a)}o=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,n),r.onUnRecoverableConfigFileDiagnostic(o)},e.readConfigFile=function(n,t){var r=g(n,t);return e.isString(r)?f(n,r):{config:{},error:r}},e.parseConfigFileTextToJson=f,e.readJsonConfigFile=_,e.convertToObject=v,e.convertToObjectWorker=h,e.convertToTSConfig=function(n,t,r){var a=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames),i=e.map(e.filter(n.fileNames,n.configFileSpecs&&n.configFileSpecs.validatedIncludeSpecs?function(n,t,r,a){if(!t)return function(e){return!0};var i=e.getFileMatcherPatterns(n,r,t,a.useCaseSensitiveFileNames,a.getCurrentDirectory()),o=i.excludePattern&&e.getRegexFromPattern(i.excludePattern,a.useCaseSensitiveFileNames),s=i.includeFilePattern&&e.getRegexFromPattern(i.includeFilePattern,a.useCaseSensitiveFileNames);if(s)return o?function(e){return!(s.test(e)&&!o.test(e))}:function(e){return!s.test(e)};if(o)return function(e){return o.test(e)};return function(e){return!0}}(t,n.configFileSpecs.validatedIncludeSpecs,n.configFileSpecs.validatedExcludeSpecs,r):function(e){return!0}),(function(n){return e.getRelativePathFromFile(e.getNormalizedAbsolutePath(t,r.getCurrentDirectory()),e.getNormalizedAbsolutePath(n,r.getCurrentDirectory()),a)})),o=x(n.options,{configFilePath:e.getNormalizedAbsolutePath(t,r.getCurrentDirectory()),useCaseSensitiveFileNames:r.useCaseSensitiveFileNames});return __assign(__assign({compilerOptions:__assign(__assign({},e.arrayFrom(o.entries()).reduce((function(e,n){var t;return __assign(__assign({},e),((t={})[n[0]]=n[1],t))}),{})),{showConfig:void 0,configFile:void 0,configFilePath:void 0,help:void 0,init:void 0,listFiles:void 0,listEmittedFiles:void 0,project:void 0,build:void 0,version:void 0}),references:e.map(n.projectReferences,(function(e){return __assign(__assign({},e),{path:e.originalPath?e.originalPath:\"\",originalPath:void 0})})),files:e.length(i)?i:void 0},n.configFileSpecs?{include:T(n.configFileSpecs.validatedIncludeSpecs),exclude:n.configFileSpecs.validatedExcludeSpecs}:{}),{compileOnSave:!!n.compileOnSave||void 0})},e.generateTSConfig=function(n,t,r){var a=x(e.extend(n,e.defaultInitCompilerOptions));return function(){for(var n=e.createMultiMap(),c=0,l=e.optionDeclarations;c<l.length;c++){var u=l[c],d=u.category;s(u)&&n.add(e.getLocaleSpecificMessage(d),u)}var p=0,m=0,f=[],_=[];n.forEach((function(n,t){0!==f.length&&(f.push(\"\"),_.push(\"\")),f.push(\"/* \"+t+\" */\"),_.push(\"\");for(var r=0,o=n;r<o.length;r++){var s=o[r],c=void 0;c=a.has(s.name)?'\"'+s.name+'\": '+JSON.stringify(a.get(s.name))+((m+=1)===a.size?\"\":\",\"):'// \"'+s.name+'\": '+JSON.stringify(i(s))+\",\",f.push(c),_.push(\"/* \"+(s.description&&e.getLocaleSpecificMessage(s.description)||s.name)+\" */\"),p=Math.max(c.length,p)}}));var g=o(2),y=[];y.push(\"{\"),y.push(g+'\"compilerOptions\": {');for(var v=0;v<f.length;v++){var h=f[v],b=_[v];y.push(h&&\"\"+g+g+h+(b&&o(p-h.length+2)+b))}if(t.length){y.push(g+\"},\"),y.push(g+'\"files\": [');for(v=0;v<t.length;v++)y.push(\"\"+g+g+JSON.stringify(t[v])+(v===t.length-1?\"\":\",\"));y.push(g+\"]\")}else y.push(g+\"}\");return y.push(\"}\"),y.join(r)+r}();function i(n){switch(n.type){case\"number\":return 1;case\"boolean\":return!0;case\"string\":return n.isFilePath?\"./\":\"\";case\"list\":return[];case\"object\":return{};default:var t=n.type.keys().next();return t.done?e.Debug.fail(\"Expected 'option.type' to have entries.\"):t.value}}function o(e){return Array(e+1).join(\" \")}function s(n){var t=n.category,r=n.name;return void 0!==t&&t!==e.Diagnostics.Command_line_Options&&(t!==e.Diagnostics.Advanced_Options||a.has(r))}},e.convertToOptionsWithAbsolutePaths=function(n,t){var r={},a=i().optionNameMap;for(var o in n)e.hasProperty(n,o)&&(r[o]=L(a.get(o.toLowerCase()),n[o],t));return r.configFilePath&&(r.configFilePath=t(r.configFilePath)),r},e.parseJsonConfigFileContent=function(e,n,t,r,a,i,o,s){return N(e,void 0,n,t,r,a,i,o,s)},e.parseJsonSourceFileConfigFileContent=C,e.setConfigFileInOptions=A,e.canJsonReportNoInutFiles=O,e.updateErrorForNoInputFiles=function(n,t,r,a,i){var o=a.length;return M(n,i)?a.push(I(r,t)):e.filterMutate(a,(function(n){return!function(n){return n.code===e.Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code}(n)})),o!==a.length},e.convertCompilerOptionsFromJson=function(e,n,t){var r=[];return{options:G(e,n,r,t),errors:r}},e.convertTypeAcquisitionFromJson=function(e,n,t){var r=[];return{options:V(e,n,r,t),errors:r}};var z=/(^|\\/)\\*\\*\\/?$/,q=/(^|\\/)\\*\\*\\/(.*\\/)?\\.\\.($|\\/)/,J=/\\/[^/]*?[*?][^/]*\\//,X=/^[^*?]*(?=\\/[^/]*[*?])/;function Y(n,t,r,a,i){void 0===i&&(i=[]),t=e.normalizePath(t);var o,s=a.useCaseSensitiveFileNames?e.identity:e.toLowerCase,c=e.createMap(),l=e.createMap(),u=e.createMap(),d=n.filesSpecs,p=n.validatedIncludeSpecs,m=n.validatedExcludeSpecs,f=n.wildcardDirectories,_=e.getSupportedExtensions(r,i),g=e.getSuppoertedExtensionsWithJsonIfResolveJsonModule(r,_);if(d)for(var y=0,v=d;y<v.length;y++){var h=v[y],b=e.getNormalizedAbsolutePath(h,t);c.set(s(b),b)}if(p&&p.length>0)for(var E=function(n){if(e.fileExtensionIs(n,\".json\")){if(!o){var r=p.filter((function(n){return e.endsWith(n,\".json\")})),i=e.map(e.getRegularExpressionsForWildcards(r,t,\"files\"),(function(e){return\"^\"+e+\"$\"}));o=i?i.map((function(n){return e.getRegexFromPattern(n,a.useCaseSensitiveFileNames)})):e.emptyArray}if(-1!==e.findIndex(o,(function(e){return e.test(n)}))){var d=s(n);c.has(d)||u.has(d)||u.set(d,n)}return\"continue\"}if(function(n,t,r,a,i){for(var o=e.getExtensionPriority(n,a),s=e.adjustExtensionPriority(o,a),c=0;c<s;c++){var l=a[c],u=i(e.changeExtension(n,l));if(t.has(u)||r.has(u))return!0}return!1}(n,c,l,_,s))return\"continue\";!function(n,t,r,a){for(var i=e.getExtensionPriority(n,r),o=e.getNextLowestExtensionPriority(i,r);o<r.length;o++){var s=r[o],c=a(e.changeExtension(n,s));t.delete(c)}}(n,l,_,s);var m=s(n);c.has(m)||l.has(m)||l.set(m,n)},T=0,S=a.readDirectory(t,g,m,p,void 0);T<S.length;T++){E(b=S[T])}var x=e.arrayFrom(c.values()),L=e.arrayFrom(l.values());return{fileNames:x.concat(L,e.arrayFrom(u.values())),wildcardDirectories:f,spec:n}}function Q(n,t,r,a,i){return n.filter((function(n){var o=function(n,t){if(!t&&z.test(n))return e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0;if(q.test(n))return e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0}(n,r);return void 0!==o&&t.push(function(n,t){var r=e.getTsConfigPropArrayElementValue(a,i,t);return r?e.createDiagnosticForNodeInSourceFile(a,r,n,t):e.createCompilerDiagnostic(n,t)}(o,n)),void 0===o}))}function Z(n,t){var r=X.exec(n);return r?{key:t?r[0]:r[0].toLowerCase(),flags:J.test(n)?1:0}:e.isImplicitGlob(n)?{key:n,flags:1}:void 0}function $(n,t){switch(t.type){case\"object\":case\"string\":return\"\";case\"number\":return\"number\"==typeof n?n:\"\";case\"boolean\":return\"boolean\"==typeof n?n:\"\";case\"list\":var r=t.element;return e.isArray(n)?n.map((function(e){return $(e,r)})):\"\";default:return e.forEachEntry(t.type,(function(e,t){if(e===n)return t}))}}e.getFileNamesFromConfigSpecs=Y,e.convertCompilerOptionsForTelemetry=function(e){var n={};for(var t in e)if(e.hasOwnProperty(t)){var r=p(t);void 0!==r&&(n[t]=$(e[t],r))}return n}}(ts||(ts={})),function(e){function n(n){n.trace(e.formatMessage.apply(void 0,arguments))}function t(e,n){return!!e.traceResolution&&void 0!==n.trace}function r(n,t){var r;if(t&&n){var a=n.packageJsonContent;\"string\"==typeof a.name&&\"string\"==typeof a.version&&(r={name:a.name,subModuleName:t.path.slice(n.packageDirectory.length+e.directorySeparator.length),version:a.version})}return t&&{path:t.path,extension:t.ext,packageId:r}}function a(e){return r(void 0,e)}function i(n){if(n)return e.Debug.assert(void 0===n.packageId),{path:n.path,ext:n.extension}}var o,s;function c(n){if(n)return e.Debug.assert(e.extensionIsTS(n.extension)),{fileName:n.path,packageId:n.packageId}}function l(e,n,t){return{resolvedModule:e&&{resolvedFileName:e.path,originalPath:!0===e.originalPath?void 0:e.originalPath,extension:e.extension,isExternalLibraryImport:n,packageId:e.packageId},failedLookupLocations:t}}function u(t,r,a,i){if(e.hasProperty(t,r)){var o=t[r];if(typeof o===a&&null!==o)return o;i.traceEnabled&&n(i.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,r,a,null===o?\"null\":typeof o)}else i.traceEnabled&&n(i.host,e.Diagnostics.package_json_does_not_have_a_0_field,r)}function d(t,r,a,i){var o=u(t,r,\"string\",i);if(void 0!==o){if(o){var s=e.normalizePath(e.combinePaths(a,o));return i.traceEnabled&&n(i.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,r,o,s),s}i.traceEnabled&&n(i.host,e.Diagnostics.package_json_had_a_falsy_0_field,r)}}function p(e,n,t){return d(e,\"typings\",n,t)||d(e,\"types\",n,t)}function m(e,n,t){return d(e,\"main\",n,t)}function f(t,r){var a=function(t,r){var a=u(t,\"typesVersions\",\"object\",r);if(void 0!==a)return r.traceEnabled&&n(r.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),a}(t,r);if(void 0!==a){if(r.traceEnabled)for(var i in a)e.hasProperty(a,i)&&!e.VersionRange.tryParse(i)&&n(r.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,i);var o=_(a);if(o){var s=o.version,c=o.paths;if(\"object\"==typeof c)return o;r.traceEnabled&&n(r.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,\"typesVersions['\"+s+\"']\",\"object\",typeof c)}else r.traceEnabled&&n(r.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor)}}function _(n){for(var t in s||(s=new e.Version(e.version)),n)if(e.hasProperty(n,t)){var r=e.VersionRange.tryParse(t);if(void 0!==r&&r.test(s))return{version:t,paths:n[t]}}}function g(n,t){return n.typeRoots?n.typeRoots:(n.configFilePath?r=e.getDirectoryPath(n.configFilePath):t.getCurrentDirectory&&(r=t.getCurrentDirectory()),void 0!==r?function(n,t){if(!t.directoryExists)return[e.combinePaths(n,y)];var r;return e.forEachAncestorDirectory(e.normalizePath(n),(function(n){var a=e.combinePaths(n,y);t.directoryExists(a)&&(r||(r=[])).push(a)})),r}(r,t):void 0);var r}e.trace=n,e.isTraceEnabled=t,function(e){e[e.TypeScript=0]=\"TypeScript\",e[e.JavaScript=1]=\"JavaScript\",e[e.Json=2]=\"Json\",e[e.TSConfig=3]=\"TSConfig\",e[e.DtsOnly=4]=\"DtsOnly\"}(o||(o={})),e.getPackageJsonTypesVersionsPaths=_,e.getEffectiveTypeRoots=g;var y=e.combinePaths(\"node_modules\",\"@types\");function v(n){var t=e.createMap(),r=e.createMap();return{ownMap:t,redirectsMap:r,getOrCreateMapOfCacheRedirects:function(a){if(!a)return t;var i=a.sourceFile.path,o=r.get(i);o||(o=!n||e.optionsHaveModuleResolutionChanges(n,a.commandLine.options)?e.createMap():t,r.set(i,o));return o},clear:function(){t.clear(),r.clear()},setOwnOptions:function(e){n=e},setOwnMap:function(e){t=e}}}function h(n,t,r,a){return{getOrCreateCacheForDirectory:function(t,o){var s=e.toPath(t,r,a);return i(n,o,s,e.createMap)},getOrCreateCacheForModuleName:function(n,r){return e.Debug.assert(!e.isExternalModuleNameRelative(n)),i(t,r,n,o)},directoryToModuleNameMap:n,moduleNameToDirectoryMap:t};function i(e,n,t,r){var a=e.getOrCreateMapOfCacheRedirects(n),i=a.get(t);return i||(i=r(),a.set(t,i)),i}function o(){var n=e.createMap();return{get:function(t){return n.get(e.toPath(t,r,a))},set:function(t,i){var o=e.toPath(t,r,a);if(n.has(o))return;n.set(o,i);var s=i.resolvedModule&&(i.resolvedModule.originalPath||i.resolvedModule.resolvedFileName),c=s&&function(n,t){var i=e.toPath(e.getDirectoryPath(t),r,a),o=0,s=Math.min(n.length,i.length);for(;o<s&&n.charCodeAt(o)===i.charCodeAt(o);)o++;if(o===n.length&&(i.length===o||i[o]===e.directorySeparator))return n;var c=e.getRootLength(n);if(o<c)return;var l=n.lastIndexOf(e.directorySeparator,o-1);if(-1===l)return;return n.substr(0,Math.max(l,c))}(o,s),l=o;for(;l!==c;){var u=e.getDirectoryPath(l);if(u===l||n.has(u))break;n.set(u,i),l=u}}}}}function b(t,r,a,i,o){var s=function(t,r,a,i){var o=i.compilerOptions,s=o.baseUrl,c=o.paths;if(s&&c&&!e.pathIsRelative(r))return i.traceEnabled&&(n(i.host,e.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,s,r),n(i.host,e.Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0,r)),H(t,r,s,c,a,!1,i)}(t,r,i,o);return s?s.value:e.isExternalModuleNameRelative(r)?function(t,r,a,i,o){if(!o.compilerOptions.rootDirs)return;o.traceEnabled&&n(o.host,e.Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0,r);for(var s,c,l=e.normalizePath(e.combinePaths(a,r)),u=0,d=o.compilerOptions.rootDirs;u<d.length;u++){var p=d[u],m=e.normalizePath(p);e.endsWith(m,e.directorySeparator)||(m+=e.directorySeparator);var f=e.startsWith(l,m)&&(void 0===c||c.length<m.length);o.traceEnabled&&n(o.host,e.Diagnostics.Checking_if_0_is_the_longest_matching_prefix_for_1_2,m,l,f),f&&(c=m,s=p)}if(c){o.traceEnabled&&n(o.host,e.Diagnostics.Longest_matching_prefix_for_0_is_1,l,c);var _=l.substr(c.length);o.traceEnabled&&n(o.host,e.Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2,_,c,l);var g=i(t,l,!e.directoryProbablyExists(a,o.host),o);if(g)return g;o.traceEnabled&&n(o.host,e.Diagnostics.Trying_other_entries_in_rootDirs);for(var y=0,v=o.compilerOptions.rootDirs;y<v.length;y++){if((p=v[y])!==s){var h=e.combinePaths(e.normalizePath(p),_);o.traceEnabled&&n(o.host,e.Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2,_,p,h);var b=e.getDirectoryPath(h),E=i(t,h,!e.directoryProbablyExists(b,o.host),o);if(E)return E}}o.traceEnabled&&n(o.host,e.Diagnostics.Module_resolution_using_rootDirs_has_failed)}return}(t,r,a,i,o):function(t,r,a,i){var o=i.compilerOptions.baseUrl;if(!o)return;i.traceEnabled&&n(i.host,e.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,o,r);var s=e.normalizePath(e.combinePaths(o,r));i.traceEnabled&&n(i.host,e.Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2,r,o,s);return a(t,s,!e.directoryProbablyExists(e.getDirectoryPath(s),i.host),i)}(t,r,i,o)}e.resolveTypeReferenceDirective=function(r,a,i,s,l){var u=t(i,s);l&&(i=l.commandLine.options);var d=[],p={compilerOptions:i,host:s,traceEnabled:u,failedLookupLocations:d},m=g(i,s);u&&(void 0===a?void 0===m?n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,r):n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,r,m):void 0===m?n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,r,a):n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,r,a,m),l&&n(s,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,l.sourceFile.fileName));var f,_=function(){if(m&&m.length)return u&&n(s,e.Diagnostics.Resolving_with_primary_search_path_0,m.join(\", \")),e.firstDefined(m,(function(t){var a=e.combinePaths(t,r),i=e.getDirectoryPath(a),l=e.directoryProbablyExists(i,s);return!l&&u&&n(s,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,i),c(w(o.DtsOnly,a,!l,p))}));u&&n(s,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}(),y=!0;if(_||(_=function(){var t=a&&e.getDirectoryPath(a);if(void 0!==t){u&&n(s,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,t);var i=void 0;if(e.isExternalModuleNameRelative(r)){var l=e.normalizePathAndParts(e.combinePaths(t,r)).path;i=k(o.DtsOnly,l,!1,p,!0)}else{var d=V(o.DtsOnly,r,t,p,void 0,void 0);i=d&&d.value}var m=c(i);return!m&&u&&n(s,e.Diagnostics.Type_reference_directive_0_was_not_resolved,r),m}u&&n(s,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}(),y=!1),_){var v=_.fileName,h=_.packageId,b=i.preserveSymlinks?v:D(v,s,u);u&&(h?n(s,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,r,b,e.packageIdToString(h),y):n(s,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,r,b,y)),f={primary:y,resolvedFileName:b,packageId:h,isExternalLibraryImport:N(v)}}return{resolvedTypeReferenceDirective:f,failedLookupLocations:d}},e.getAutomaticTypeDirectiveNames=function(n,t){if(n.types)return n.types;var r=[];if(t.directoryExists&&t.getDirectories){var a=g(n,t);if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];if(t.directoryExists(s))for(var c=0,l=t.getDirectories(s);c<l.length;c++){var u=l[c],d=e.normalizePath(u),p=e.combinePaths(s,d,\"package.json\");if(!(t.fileExists(p)&&null===e.readJson(p,t).typings)){var m=e.getBaseFileName(d);46!==m.charCodeAt(0)&&r.push(m)}}}}return r},e.createModuleResolutionCache=function(e,n,t){return h(v(t),v(t),e,n)},e.createCacheWithRedirects=v,e.createModuleResolutionCacheWithMaps=h,e.resolveModuleNameFromCache=function(n,t,r){var a=e.getDirectoryPath(t),i=r&&r.getOrCreateCacheForDirectory(a);return i&&i.get(n)},e.resolveModuleName=function(r,a,i,o,s,c){var l=t(i,o);c&&(i=c.commandLine.options),l&&(n(o,e.Diagnostics.Resolving_module_0_from_1,r,a),c&&n(o,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,c.sourceFile.fileName));var u=e.getDirectoryPath(a),d=s&&s.getOrCreateCacheForDirectory(u,c),p=d&&d.get(r);if(p)l&&n(o,e.Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1,r,u);else{var m=i.moduleResolution;switch(void 0===m?(m=e.getEmitModuleKind(i)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic,l&&n(o,e.Diagnostics.Module_resolution_kind_is_not_specified_using_0,e.ModuleResolutionKind[m])):l&&n(o,e.Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0,e.ModuleResolutionKind[m]),e.perfLogger.logStartResolveModule(r),m){case e.ModuleResolutionKind.NodeJs:p=C(r,a,i,o,s,c);break;case e.ModuleResolutionKind.Classic:p=J(r,a,i,o,s,c);break;default:return e.Debug.fail(\"Unexpected moduleResolution: \"+m)}p&&p.resolvedModule&&e.perfLogger.logInfoEvent('Module \"'+r+'\" resolved to \"'+p.resolvedModule.resolvedFileName+'\"'),e.perfLogger.logStopResolveModule(p&&p.resolvedModule?\"\"+p.resolvedModule.resolvedFileName:\"null\"),d&&(d.set(r,p),e.isExternalModuleNameRelative(r)||s.getOrCreateCacheForModuleName(r,c).set(u,p))}return l&&(p.resolvedModule?p.resolvedModule.packageId?n(o,e.Diagnostics.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2,r,p.resolvedModule.resolvedFileName,e.packageIdToString(p.resolvedModule.packageId)):n(o,e.Diagnostics.Module_name_0_was_successfully_resolved_to_1,r,p.resolvedModule.resolvedFileName):n(o,e.Diagnostics.Module_name_0_was_not_resolved,r)),p},e.resolveJSModule=function(e,n,t){var r=L(e,n,t),a=r.resolvedModule,i=r.failedLookupLocations;if(!a)throw new Error(\"Could not resolve JS module '\"+e+\"' starting at '\"+n+\"'. Looked in: \"+i.join(\", \"));return a.resolvedFileName},e.tryResolveJSModule=function(e,n,t){var r=L(e,n,t).resolvedModule;return r&&r.resolvedFileName};var E=[o.JavaScript],T=[o.TypeScript,o.JavaScript],S=__spreadArrays(T,[o.Json]),x=[o.TSConfig];function L(n,t,r){return A(n,t,{moduleResolution:e.ModuleResolutionKind.NodeJs,allowJs:!0},r,void 0,E,void 0)}function C(n,t,r,a,i,o,s){return A(n,e.getDirectoryPath(t),r,a,i,s?x:r.resolveJsonModule?S:T,o)}function A(r,a,i,s,c,u,d){var p=t(i,s),m=[],f={compilerOptions:i,host:s,traceEnabled:p,failedLookupLocations:m},_=e.forEach(u,(function(t){return function(t){var l=b(t,r,a,(function(e,n,t,r){return k(e,n,t,r,!0)}),f);if(l)return X({resolved:l,isExternalLibraryImport:N(l.path)});if(e.isExternalModuleNameRelative(r)){var u=e.normalizePathAndParts(e.combinePaths(a,r)),m=u.path,_=u.parts,g=k(t,m,!1,f,!0);return g&&X({resolved:g,isExternalLibraryImport:e.contains(_,\"node_modules\")})}p&&n(s,e.Diagnostics.Loading_module_0_from_node_modules_folder_target_file_type_1,r,o[t]);var y=V(t,r,a,f,c,d);if(!y)return;var v=y.value;if(!i.preserveSymlinks&&v&&!v.originalPath){var h=D(v.path,s,p),E=h===v.path?void 0:v.path;v=__assign(__assign({},v),{path:h,originalPath:E})}return{value:v&&{resolved:v,isExternalLibraryImport:!0}}}(t)}));if(_&&_.value){var g=_.value;return l(g.resolved,g.isExternalLibraryImport,m)}return{resolvedModule:void 0,failedLookupLocations:m}}function D(t,r,a){if(!r.realpath)return t;var i=e.normalizePath(r.realpath(t));return a&&n(r,e.Diagnostics.Resolving_real_path_for_0_result_1,t,i),e.Debug.assert(r.fileExists(i),t+\" linked to nonexistent file \"+i),i}function k(t,a,i,s,c){if(s.traceEnabled&&n(s.host,e.Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1,a,o[t]),!e.hasTrailingDirectorySeparator(a)){if(!i){var l=e.getDirectoryPath(a);e.directoryProbablyExists(l,s.host)||(s.traceEnabled&&n(s.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,l),i=!0)}var u=O(t,a,i,s);if(u){var d=c?function(n){var t=e.normalizePath(n.path),r=t.lastIndexOf(e.nodeModulesPathPart);if(-1===r)return;var a=r+e.nodeModulesPathPart.length,i=I(t,a);64===t.charCodeAt(a)&&(i=I(t,i));return t.slice(0,i)}(u):void 0;return r(d?F(d,!1,s):void 0,u)}}i||(e.directoryProbablyExists(a,s.host)||(s.traceEnabled&&n(s.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,a),i=!0));return w(t,a,i,s,c)}function N(n){return e.stringContains(n,e.nodeModulesPathPart)}function I(n,t){var r=n.indexOf(e.directorySeparator,t+1);return-1===r?t:r}function M(e,n,t,r){return a(O(e,n,t,r))}function O(t,r,a,i){if(t===o.Json||t===o.TSConfig){var s=e.tryRemoveExtension(r,\".json\");return void 0===s&&t===o.Json?void 0:R(s||r,t,a,i)}var c=R(r,t,a,i);if(c)return c;if(e.hasJSFileExtension(r)){var l=e.removeFileExtension(r);if(i.traceEnabled){var u=r.substring(l.length);n(i.host,e.Diagnostics.File_name_0_has_a_1_extension_stripping_it,r,u)}return R(l,t,a,i)}}function R(n,t,r,a){if(!r){var i=e.getDirectoryPath(n);i&&(r=!e.directoryProbablyExists(i,a.host))}switch(t){case o.DtsOnly:return s(\".d.ts\");case o.TypeScript:return s(\".ts\")||s(\".tsx\")||s(\".d.ts\");case o.JavaScript:return s(\".js\")||s(\".jsx\");case o.TSConfig:case o.Json:return s(\".json\")}function s(e){var t=P(n+e,r,a);return void 0===t?void 0:{path:t,ext:e}}}function P(t,r,a){if(!r){if(a.host.fileExists(t))return a.traceEnabled&&n(a.host,e.Diagnostics.File_0_exist_use_it_as_a_name_resolution_result,t),t;a.traceEnabled&&n(a.host,e.Diagnostics.File_0_does_not_exist,t)}a.failedLookupLocations.push(t)}function w(e,n,t,a,i){void 0===i&&(i=!0);var o=i?F(n,t,a):void 0;return r(o,G(e,n,t,a,o&&o.packageJsonContent,o&&o.versionPaths))}function F(t,r,a){var i=a.host,o=a.traceEnabled,s=!r&&e.directoryProbablyExists(t,i),c=e.combinePaths(t,\"package.json\");if(s&&i.fileExists(c)){var l=e.readJson(c,i);return o&&n(i,e.Diagnostics.Found_package_json_at_0,c),{packageDirectory:t,packageJsonContent:l,versionPaths:f(l,a)}}s&&o&&n(i,e.Diagnostics.File_0_does_not_exist,c),a.failedLookupLocations.push(c)}function G(t,r,s,c,l,u){var f;if(l)switch(t){case o.JavaScript:case o.Json:f=m(l,r,c);break;case o.TypeScript:f=p(l,r,c)||m(l,r,c);break;case o.DtsOnly:f=p(l,r,c);break;case o.TSConfig:f=function(e,n,t){return d(e,\"tsconfig\",n,t)}(l,r,c);break;default:return e.Debug.assertNever(t)}var _=function(t,r,i,s){var c=P(r,i,s);if(c){var l=function(n,t){var r=e.tryGetExtensionFromPath(t);return void 0!==r&&function(e,n){switch(e){case o.JavaScript:return\".js\"===n||\".jsx\"===n;case o.TSConfig:case o.Json:return\".json\"===n;case o.TypeScript:return\".ts\"===n||\".tsx\"===n||\".d.ts\"===n;case o.DtsOnly:return\".d.ts\"===n}}(n,r)?{path:t,ext:r}:void 0}(t,c);if(l)return a(l);s.traceEnabled&&n(s.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,c)}return k(t===o.DtsOnly?o.TypeScript:t,r,i,s,!1)},g=f?!e.directoryProbablyExists(e.getDirectoryPath(f),c.host):void 0,y=s||!e.directoryProbablyExists(r,c.host),v=e.combinePaths(r,t===o.TSConfig?\"tsconfig\":\"index\");if(u&&(!f||e.containsPath(r,f))){var h=e.getRelativePathFromDirectory(r,f||v,!1);c.traceEnabled&&n(c.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,u.version,e.version,h);var b=H(t,h,r,u.paths,_,g||y,c);if(b)return i(b.value)}var E=f&&i(_(t,f,g,c));return E||O(t,v,y,c)}function B(n){var t=n.indexOf(e.directorySeparator);return\"@\"===n[0]&&(t=n.indexOf(e.directorySeparator,t+1)),-1===t?{packageName:n,rest:\"\"}:{packageName:n.slice(0,t),rest:n.slice(t+1)}}function V(e,n,t,r,a,i){return U(e,n,t,r,!1,a,i)}function U(n,t,r,a,i,o,s){var c=o&&o.getOrCreateCacheForModuleName(t,s);return e.forEachAncestorDirectory(e.normalizeSlashes(r),(function(r){if(\"node_modules\"!==e.getBaseFileName(r)){var o=q(c,t,r,a);return o||X(j(n,t,r,a,i))}}))}function j(t,r,a,i,s){var c=e.combinePaths(a,\"node_modules\"),l=e.directoryProbablyExists(c,i.host);!l&&i.traceEnabled&&n(i.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,c);var u=s?void 0:K(t,r,c,l,i);if(u)return u;if(t===o.TypeScript||t===o.DtsOnly){var d=e.combinePaths(c,\"@types\"),p=l;return l&&!e.directoryProbablyExists(d,i.host)&&(i.traceEnabled&&n(i.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,d),p=!1),K(o.DtsOnly,function(t,r){var a=W(t);r.traceEnabled&&a!==t&&n(r.host,e.Diagnostics.Scoped_package_detected_looking_in_0,a);return a}(r,i),d,p,i)}}function K(t,i,o,s,c){var l=e.normalizePath(e.combinePaths(o,i)),u=F(l,!s,c);if(u){var d=O(t,l,!s,c);if(d)return a(d);var p=G(t,l,!s,c,u.packageJsonContent,u.versionPaths);return r(u,p)}var m=function(e,n,t,a){var i=O(e,n,t,a)||G(e,n,t,a,u&&u.packageJsonContent,u&&u.versionPaths);return r(u,i)},f=B(i),_=f.packageName,g=f.rest;if(\"\"!==g){var y=e.combinePaths(o,_);if((u=F(y,!s,c))&&u.versionPaths){c.traceEnabled&&n(c.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,u.versionPaths.version,e.version,g);var v=s&&e.directoryProbablyExists(y,c.host),h=H(t,g,y,u.versionPaths.paths,m,!v,c);if(h)return h.value}}return m(t,l,!s,c)}function H(t,r,i,o,s,c,l){var u=e.matchPatternOrExact(e.getOwnKeys(o),r);if(u){var d=e.isString(u)?void 0:e.matchedText(u,r),p=e.isString(u)?u:e.patternText(u);return l.traceEnabled&&n(l.host,e.Diagnostics.Module_name_0_matched_pattern_1,r,p),{value:e.forEach(o[p],(function(r){var o=d?r.replace(\"*\",d):r,u=e.normalizePath(e.combinePaths(i,o));l.traceEnabled&&n(l.host,e.Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1,r,o);var p=e.tryGetExtensionFromPath(u);if(void 0!==p){var m=P(u,c,l);if(void 0!==m)return a({path:m,ext:p})}return s(t,u,c||!e.directoryProbablyExists(e.getDirectoryPath(u),l.host),l)}))}}}e.nodeModuleNameResolver=C,e.nodeModulesPathPart=\"/node_modules/\",e.pathContainsNodeModules=N,e.parsePackageName=B;function W(n){if(e.startsWith(n,\"@\")){var t=n.replace(e.directorySeparator,\"__\");if(t!==n)return t.slice(1)}return n}function z(n){return e.stringContains(n,\"__\")?\"@\"+n.replace(\"__\",e.directorySeparator):n}function q(t,r,a,i){var o,s=t&&t.get(a);if(s)return i.traceEnabled&&n(i.host,e.Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1,r,a),(o=i.failedLookupLocations).push.apply(o,s.failedLookupLocations),{value:s.resolvedModule&&{path:s.resolvedModule.resolvedFileName,originalPath:s.resolvedModule.originalPath||!0,extension:s.resolvedModule.extension,packageId:s.resolvedModule.packageId}}}function J(n,r,a,i,s,c){var u=[],d={compilerOptions:a,host:i,traceEnabled:t(a,i),failedLookupLocations:u},p=e.getDirectoryPath(r),m=f(o.TypeScript)||f(o.JavaScript);return l(m&&m.value,!1,u);function f(t){var r=b(t,n,p,M,d);if(r)return{value:r};if(e.isExternalModuleNameRelative(n)){var a=e.normalizePath(e.combinePaths(p,n));return X(M(t,a,!1,d))}var i=s&&s.getOrCreateCacheForModuleName(n,c),l=e.forEachAncestorDirectory(p,(function(r){var a=q(i,n,r,d);if(a)return a;var o=e.normalizePath(e.combinePaths(r,n));return X(M(t,o,!1,d))}));return l||(t===o.TypeScript?function(e,n,t){return U(o.DtsOnly,e,n,t,!0,void 0,void 0)}(n,p,d):void 0)}}function X(e){return void 0!==e?{value:e}:void 0}e.getTypesPackageName=function(e){return\"@types/\"+W(e)},e.mangleScopedPackageName=W,e.getPackageNameFromTypesPackageName=function(n){var t=e.removePrefix(n,\"@types/\");return t!==n?z(t):n},e.unmangleScopedPackageName=z,e.classicNameResolver=J,e.loadModuleFromGlobalCache=function(r,a,i,s,c){var u=t(i,s);u&&n(s,e.Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2,a,r,c);var d=[],p={compilerOptions:i,host:s,traceEnabled:u,failedLookupLocations:d};return l(j(o.DtsOnly,r,c,p,!1),!0,d)}}(ts||(ts={})),function(e){var n;function t(e,n){return e.body&&!e.body.parent&&f(e,e.body),e.body?r(e.body,n):1}function r(n,i){void 0===i&&(i=e.createMap());var o=\"\"+e.getNodeId(n);if(i.has(o))return i.get(o)||0;i.set(o,void 0);var s=function(n,i){switch(n.kind){case 245:case 246:return 0;case 247:if(e.isEnumConst(n))return 2;break;case 253:case 252:if(!e.hasModifier(n,1))return 0;break;case 259:if(!n.moduleSpecifier&&n.exportClause){for(var o=0,s=0,c=n.exportClause.elements;s<c.length;s++){var l=a(c[s],i);if(l>o&&(o=l),1===o)return o}return o}break;case 249:var u=0;return e.forEachChild(n,(function(n){var t=r(n,i);switch(t){case 0:return;case 2:return void(u=2);case 1:return u=1,!0;default:e.Debug.assertNever(t)}})),u;case 248:return t(n,i);case 75:if(n.isInJSDocNamespace)return 0}return 1}(n,i);return i.set(o,s),s}function a(n,t){for(var a=n.propertyName||n.name,i=n.parent;i;){if(e.isBlock(i)||e.isModuleBlock(i)||e.isSourceFile(i)){for(var o=void 0,s=0,c=i.statements;s<c.length;s++){var l=c[s];if(e.nodeHasName(l,a)){l.parent||f(i,l);var u=r(l,t);if((void 0===o||u>o)&&(o=u),1===o)return o}}if(void 0!==o)return o}i=i.parent}return 1}function i(n){return e.Debug.attachFlowNodeDebugInfo(n),n}!function(e){e[e.NonInstantiated=0]=\"NonInstantiated\",e[e.Instantiated=1]=\"Instantiated\",e[e.ConstEnumOnly=2]=\"ConstEnumOnly\"}(e.ModuleInstanceState||(e.ModuleInstanceState={})),e.getModuleInstanceState=t,function(e){e[e.None=0]=\"None\",e[e.IsContainer=1]=\"IsContainer\",e[e.IsBlockScopedContainer=2]=\"IsBlockScopedContainer\",e[e.IsControlFlowContainer=4]=\"IsControlFlowContainer\",e[e.IsFunctionLike=8]=\"IsFunctionLike\",e[e.IsFunctionExpression=16]=\"IsFunctionExpression\",e[e.HasLocals=32]=\"HasLocals\",e[e.IsInterface=64]=\"IsInterface\",e[e.IsObjectLiteralOrClassExpressionMethod=128]=\"IsObjectLiteralOrClassExpressionMethod\"}(n||(n={}));var o=i,s=function(){var n,r,a,s,p,_,g,y,v,h,b,E,T,S,x,L,C,A,D,k,N,I,M,O,R=0,P={flags:1},w={flags:1},F=0;function G(t,r,a,i,o){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(t)||n,t,r,a,i,o)}return function(t,o){n=t,r=o,a=e.getEmitScriptTarget(r),N=function(n,t){return!(!e.getStrictOptionValue(t,\"alwaysStrict\")||n.isDeclarationFile)||!!n.externalModuleIndicator}(n,o),M=e.createUnderscoreEscapedMap(),R=0,O=n.isDeclarationFile,I=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(P),e.Debug.attachFlowNodeDebugInfo(w),n.locals||(Pe(n),n.symbolCount=R,n.classifiableNames=M,function(){if(!v)return;for(var t=p,r=y,a=g,o=s,c=b,l=0,u=v;l<u.length;l++){var d=u[l],m=e.getJSDocHost(d);p=e.findAncestor(m.parent,(function(e){return!!(1&Te(e))}))||n,g=e.getEnclosingBlockScopeContainer(m)||n,b=i({flags:2}),s=d,Pe(d.typeExpression);var f=e.getNameOfDeclaration(d);if((e.isJSDocEnumTag(d)||!d.fullName)&&f&&e.isPropertyAccessEntityNameExpression(f.parent)){var _=Je(f.parent);if(_){ze(n.symbol,f.parent,_,!!e.findAncestor(f,(function(n){return e.isPropertyAccessExpression(n)&&\"prototype\"===n.name.escapedText})),!1);var h=p;switch(e.getAssignmentDeclarationPropertyAccessKind(f.parent)){case 1:case 2:p=e.isExternalOrCommonJsModule(n)?n:void 0;break;case 4:p=f.parent.expression;break;case 3:p=f.parent.expression.name;break;case 5:p=e.isPropertyAccessExpression(f.parent.expression)?f.parent.expression.name:f.parent.expression;break;case 0:return e.Debug.fail(\"Shouldn't have detected typedef or enum on non-assignment declaration\")}p&&W(d,524288,788968),p=h}}else e.isJSDocEnumTag(d)||!d.fullName||75===d.fullName.kind?(s=d.parent,De(d,524288,788968)):Pe(d.fullName)}p=t,y=r,g=a,s=o,b=c}()),n=void 0,r=void 0,a=void 0,s=void 0,p=void 0,_=void 0,g=void 0,y=void 0,v=void 0,h=!1,b=void 0,E=void 0,T=void 0,S=void 0,x=void 0,L=void 0,A=void 0,D=!1,k=0,F=0};function B(e,n){return R++,new I(e,n)}function V(n,t,r){n.flags|=r,t.symbol=n,n.declarations=e.appendIfUnique(n.declarations,t),1955&r&&!n.exports&&(n.exports=e.createSymbolTable()),6240&r&&!n.members&&(n.members=e.createSymbolTable()),n.constEnumOnlyModule&&304&n.flags&&(n.constEnumOnlyModule=!1),111551&r&&U(n,t)}function U(n,t){var r=n.valueDeclaration;(!r||e.isAssignmentDeclaration(r)&&!e.isAssignmentDeclaration(t)||r.kind!==t.kind&&e.isEffectiveModuleDeclaration(r))&&(n.valueDeclaration=t)}function j(n){if(258===n.kind)return n.isExportEquals?\"export=\":\"default\";var t=e.getNameOfDeclaration(n);if(t){if(e.isAmbientModule(n)){var r=e.getTextOfIdentifierOrLiteral(t);return e.isGlobalScopeAugmentation(n)?\"__global\":'\"'+r+'\"'}if(153===t.kind){var a=t.expression;return e.isStringOrNumericLiteralLike(a)?e.escapeLeadingUnderscores(a.text):e.isSignedNumericLiteral(a)?e.tokenToString(a.operator)+a.operand.text:(e.Debug.assert(e.isWellKnownSymbolSyntactically(a)),e.getPropertyNameForKnownSymbolName(e.idText(a.name)))}return e.isWellKnownSymbolSyntactically(t)?e.getPropertyNameForKnownSymbolName(e.idText(t.name)):e.isPropertyNameLiteral(t)?e.getEscapedTextOfIdentifierOrLiteral(t):void 0}switch(n.kind){case 161:return\"__constructor\";case 169:case 164:case 303:return\"__call\";case 170:case 165:return\"__new\";case 166:return\"__index\";case 259:return\"__export\";case 288:return\"export=\";case 208:if(2===e.getAssignmentDeclarationKind(n))return\"export=\";e.Debug.fail(\"Unknown binary declaration kind\");break;case 298:return e.isJSDocConstructSignature(n)?\"__new\":\"__call\";case 155:return e.Debug.assert(298===n.parent.kind,\"Impossible parameter parent kind\",(function(){return\"parent is: \"+(e.SyntaxKind?e.SyntaxKind[n.parent.kind]:n.parent.kind)+\", expected JSDocFunctionType\"})),\"arg\"+n.parent.parameters.indexOf(n)}}function K(n){return e.isNamedDeclaration(n)?e.declarationNameToString(n.name):e.unescapeLeadingUnderscores(e.Debug.assertDefined(j(n)))}function H(t,r,a,i,o,s){e.Debug.assert(!e.hasDynamicName(a));var c,l=e.hasModifier(a,512),u=l&&r?\"default\":j(a);if(void 0===u)c=B(0,\"__missing\");else if(c=t.get(u),2885600&i&&M.set(u,!0),c){if(s&&!c.isReplaceableByMethod)return c;if(c.flags&o)if(c.isReplaceableByMethod)t.set(u,c=B(0,u));else if(!(3&i&&67108864&c.flags)){e.isNamedDeclaration(a)&&(a.name.parent=a);var d=2&c.flags?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,p=!0;(384&c.flags||384&i)&&(d=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,p=!1);var m=!1;e.length(c.declarations)&&(l?(d=e.Diagnostics.A_module_cannot_have_multiple_default_exports,p=!1,m=!0):c.declarations&&c.declarations.length&&258===a.kind&&!a.isExportEquals&&(d=e.Diagnostics.A_module_cannot_have_multiple_default_exports,p=!1,m=!0));var f=e.getNameOfDeclaration(a)||a,_=[];e.forEach(c.declarations,(function(t,r){var a=e.getNameOfDeclaration(t)||t,i=G(a,d,p?K(t):void 0);n.bindDiagnostics.push(m?e.addRelatedInfo(i,G(f,0===r?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):i),m&&_.push(G(a,e.Diagnostics.The_first_export_default_is_here))}));var g=G(f,d,p?K(a):void 0);n.bindDiagnostics.push(m?e.addRelatedInfo.apply(void 0,__spreadArrays([g],_)):g),c=B(0,u)}}else t.set(u,c=B(0,u)),s&&(c.isReplaceableByMethod=!0);return V(c,a,i),c.parent?e.Debug.assert(c.parent===r,\"Existing symbol parent should match new one\"):c.parent=r,c}function W(n,t,r){var a=1&e.getCombinedModifierFlags(n);if(2097152&t)return 261===n.kind||252===n.kind&&a?H(p.symbol.exports,p.symbol,n,t,r):H(p.locals,void 0,n,t,r);if(e.isJSDocTypeAlias(n)&&e.Debug.assert(e.isInJSFile(n)),!e.isAmbientModule(n)&&(a||64&p.flags)||e.isJSDocTypeAlias(n)){if(!p.locals||e.hasModifier(n,512)&&!j(n))return H(p.symbol.exports,p.symbol,n,t,r);var i=111551&t?1048576:0,o=H(p.locals,void 0,n,i,r);return o.exportSymbol=H(p.symbol.exports,p.symbol,n,t,r),n.localSymbol=o,o}return H(p.locals,void 0,n,t,r)}function z(e){if(O)Y(e);else if(536870912&e.transformFlags)O=!0,Y(e),O=!1,F|=e.transformFlags&~m(e.kind);else{var n=F;F=0,Y(e),F=n|d(e,F)}}function q(e){J(e,(function(e){return 243===e.kind?Pe(e):void 0})),J(e,(function(e){return 243!==e.kind?Pe(e):void 0}))}function J(n,t){if(void 0===t&&(t=Pe),void 0!==n)if(O)e.forEach(n,t);else{var r=F;F=0;for(var a=0,i=0,o=n;i<o.length;i++){var s=o[i];t(s),a|=-536870913&s.transformFlags}n.transformFlags=536870912|a,F|=r}}function X(n){e.forEachChild(n,Pe,J)}function Y(n){if(function(n){if(!(1&b.flags))return!1;if(b===P){if((e.isStatementButNotDeclaration(n)&&223!==n.kind||244===n.kind||248===n.kind&&function(e){var n=t(e);return 1===n||2===n&&!!r.preserveConstEnums}(n))&&(b=w,!r.allowUnreachableCode)){var a=e.unreachableCodeIsError(r)&&!(8388608&n.flags)&&(!e.isVariableStatement(n)||!!(3&e.getCombinedNodeFlags(n.declarationList))||n.declarationList.declarations.some((function(e){return!!e.initializer})));!function(n,t){if(e.isStatement(n)&&c(n)&&e.isBlock(n.parent)){var r=n.parent.statements,a=e.sliceAfter(r,n);e.getRangesWhere(a,c,(function(e,n){return t(a[e],a[n-1])}))}else t(n,n)}(n,(function(n,t){return Re(a,n,t,e.Diagnostics.Unreachable_code_detected)}))}}return!0}(n))return X(n),void we(n);switch(n.kind>=224&&n.kind<=240&&!r.allowUnreachableCode&&(n.flowNode=b),n.kind){case 228:!function(e){var n=te(),t=ne(),r=ne();ae(n,b),b=n,me(e.expression,t,r),b=le(t),fe(e.statement,r,n),ae(n,b),b=le(r)}(n);break;case 227:!function(n){var t=te(),r=237===n.parent.kind?e.lastOrUndefined(A):void 0,a=r?r.continueTarget:ne(),i=r?r.breakTarget:ne();ae(t,b),b=t,fe(n.statement,i,a),ae(a,b),b=le(a),me(n.expression,t,i),b=le(i)}(n);break;case 229:!function(e){var n=te(),t=ne(),r=ne();Pe(e.initializer),ae(n,b),b=n,me(e.condition,t,r),b=le(t),fe(e.statement,r,n),Pe(e.incrementor),ae(n,b),b=le(r)}(n);break;case 230:case 231:!function(e){var n=te(),t=ne();Pe(e.expression),ae(n,b),b=n,231===e.kind&&Pe(e.awaitModifier);ae(t,b),Pe(e.initializer),242!==e.initializer.kind&&ye(e.initializer);fe(e.statement,t,n),ae(n,b),b=le(t)}(n);break;case 226:!function(e){var n=ne(),t=ne(),r=ne();me(e.expression,n,t),b=le(n),Pe(e.thenStatement),ae(r,b),b=le(t),Pe(e.elseStatement),ae(r,b),b=le(r)}(n);break;case 234:case 238:!function(e){Pe(e.expression),234===e.kind&&(D=!0,S&&ae(S,b));b=P}(n);break;case 233:case 232:!function(e){if(Pe(e.label),e.label){var n=function(e){if(A)for(var n=0,t=A;n<t.length;n++){var r=t[n];if(r.name===e)return r}return}(e.label.escapedText);n&&(n.referenced=!0,_e(e,n.breakTarget,n.continueTarget))}else _e(e,E,T)}(n);break;case 239:!function(e){var n=ne(),t=b,r=[],a=o;(e.catchClause||e.finallyBlock)&&(o=function(e){return r.push(e),i(e)});Pe(e.tryBlock),o=a,ae(n,b);var s=b,c=P;if(e.catchClause){if(b=t,r.length){var l=ne();ae(l,b);for(var u=0,d=r;u<d.length;u++){var p=d[u];ae(l,p)}b=le(l)}Pe(e.catchClause),ae(n,b),c=b}if(e.finallyBlock){var m=t;if(!e.catchClause&&r.length){var f=ne();ae(f,t);for(var _=0,g=r;_<g.length;_++){p=g[_];ae(f,p)}m=le(f)}var y=i({flags:4096,antecedent:m,lock:{}});if(ae(n,y),b=le(n),Pe(e.finallyBlock),1&b.flags||1&s.flags&&1&c.flags&&(b=s===w||c===w?w:P),!(1&b.flags)){var v=o({flags:8192,antecedent:b});y.lock=v,b=v}}else b=le(n)}(n);break;case 236:!function(n){var t=ne();Pe(n.expression);var r=E,a=C;E=t,C=b,Pe(n.caseBlock),ae(t,b);var i=e.forEach(n.caseBlock.clauses,(function(e){return 276===e.kind}));n.possiblyExhaustive=!i&&!t.antecedents,i||ae(t,oe(C,n,0,0));E=r,C=a,b=le(t)}(n);break;case 250:!function(e){var n=F;F=0;for(var t=e.clauses,a=P,i=0;i<t.length;i++){for(var o=i;!t[i].statements.length&&i+1<t.length;)Pe(t[i]),i++;var s=ne();ae(s,oe(C,e.parent,o,i+1)),ae(s,a),b=le(s);var c=t[i];Pe(c),a=b,1&b.flags||i===t.length-1||!r.noFallthroughCasesInSwitch||(c.fallthroughFlowNode=b)}t.transformFlags=536870912|F,F|=n}(n);break;case 275:!function(e){var n=b;b=C,Pe(e.expression),b=n,J(e.statements)}(n);break;case 225:!function(n){if(Pe(n.expression),195===n.expression.kind){var t=n.expression;e.isDottedName(t.expression)&&(b=function(e,n){return re(e),o({flags:512,antecedent:e,node:n})}(b,t))}}(n);break;case 237:!function(n){var t=te(),a=ne();Pe(n.label),ae(t,b);var i=function(e,n,t){var r={name:e,breakTarget:n,continueTarget:t,referenced:!1};return(A||(A=[])).push(r),r}(n.label.escapedText,a,t);Pe(n.statement),A.pop(),i.referenced||r.allowUnusedLabels||function(e,n,t){Re(e,n,n,t)}(e.unusedLabelIsError(r),n.label,e.Diagnostics.Unused_label);n.statement&&227===n.statement.kind||(ae(a,b),b=le(a))}(n);break;case 206:!function(e){if(53===e.operator){var n=x;x=L,L=n,X(e),L=x,x=n}else X(e),45!==e.operator&&46!==e.operator||ye(e.operand)}(n);break;case 207:!function(e){X(e),(45===e.operator||46===e.operator)&&ye(e.operand)}(n);break;case 208:!function(n){var t=n.operatorToken.kind;if(55===t||56===t||60===t)if(de(n)){var r=ne();ve(n,r,r),b=le(r)}else ve(n,x,L);else{if(X(n),e.isAssignmentOperator(t)&&!e.isAssignmentTarget(n))if(ye(n.left),62===t&&194===n.left.kind)ee(n.left.expression)&&(b=ce(b,n))}}(n);break;case 202:!function(e){X(e),193===e.expression.kind&&ye(e.expression)}(n);break;case 209:!function(e){var n=ne(),t=ne(),r=ne();me(e.condition,n,t),b=le(n),Pe(e.questionToken),Pe(e.whenTrue),ae(r,b),b=le(t),Pe(e.colonToken),Pe(e.whenFalse),ae(r,b),b=le(r)}(n);break;case 241:!function(n){X(n),(n.initializer||e.isForInOrOfStatement(n.parent.parent))&&function n(t){var r=e.isOmittedExpression(t)?void 0:t.name;if(e.isBindingPattern(r))for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];n(o)}else b=se(b,t)}(n)}(n);break;case 193:case 194:!function(n){e.isOptionalChain(n)?Ee(n):X(n)}(n);break;case 195:!function(n){if(e.isOptionalChain(n))Ee(n);else{var t=e.skipParentheses(n.expression);200===t.kind||201===t.kind?(J(n.typeArguments),J(n.arguments),Pe(n.expression)):X(n)}if(193===n.expression.kind){var r=n.expression;ee(r.expression)&&e.isPushOrUnshiftIdentifier(r.name)&&(b=ce(b,n))}}(n);break;case 315:case 308:case 309:!function(e){e.tagName.parent=e,309!==e.kind&&e.fullName&&f(e,e.fullName)}(n);break;case 288:q(n.statements),Pe(n.endOfFileToken);break;case 222:case 249:q(n.statements);break;default:X(n)}we(n)}function Q(n){switch(n.kind){case 75:case 103:case 193:case 194:return Z(n);case 195:return function(e){if(e.arguments)for(var n=0,t=e.arguments;n<t.length;n++){if(Z(t[n]))return!0}if(193===e.expression.kind&&Z(e.expression.expression))return!0;return!1}(n);case 199:return Q(n.expression);case 208:return function(n){switch(n.operatorToken.kind){case 62:return Z(n.left);case 34:case 35:case 36:case 37:return ee(n.left)||ee(n.right)||$(n.right,n.left)||$(n.left,n.right);case 97:return ee(n.left);case 96:return t=n.left,r=n.right,e.isStringLiteralLike(t)&&Q(r);case 27:return Q(n.right)}var t,r;return!1}(n);case 206:return 53===n.operator&&Q(n.operand);case 203:return Q(n.expression)}return!1}function Z(n){return 75===n.kind||103===n.kind||101===n.kind||(e.isPropertyAccessExpression(n)||e.isNonNullExpression(n)||e.isParenthesizedExpression(n))&&Z(n.expression)||e.isElementAccessExpression(n)&&e.isStringOrNumericLiteralLike(n.argumentExpression)&&Z(n.expression)||e.isOptionalChain(n)}function $(n,t){return e.isTypeOfExpression(n)&&ee(n.expression)&&e.isStringLiteralLike(t)}function ee(e){switch(e.kind){case 199:return ee(e.expression);case 208:switch(e.operatorToken.kind){case 62:return ee(e.left);case 27:return ee(e.right)}}return Z(e)}function ne(){return i({flags:4,antecedents:void 0})}function te(){return i({flags:8,antecedents:void 0})}function re(e){e.flags|=1024&e.flags?2048:1024}function ae(n,t){1&t.flags||e.contains(n.antecedents,t)||((n.antecedents||(n.antecedents=[])).push(t),re(t))}function ie(n,t,r){return 1&t.flags?t:r?!(105===r.kind&&64&n||90===r.kind&&32&n)||e.isExpressionOfOptionalChainRoot(r)||e.isNullishCoalesce(r.parent)?Q(r)?(re(t),o({flags:n,antecedent:t,node:r})):t:P:32&n?t:P}function oe(e,n,t,r){return Q(n.expression)?(re(e),o({flags:128,antecedent:e,switchStatement:n,clauseStart:t,clauseEnd:r})):e}function se(e,n){return re(e),o({flags:16,antecedent:e,node:n})}function ce(e,n){return re(e),o({flags:256,antecedent:e,node:n})}function le(e){var n=e.antecedents;return n?1===n.length?n[0]:e:P}function ue(e){for(;;)if(199===e.kind)e=e.expression;else{if(206!==e.kind||53!==e.operator)return 208===e.kind&&(55===e.operatorToken.kind||56===e.operatorToken.kind||60===e.operatorToken.kind);e=e.operand}}function de(n){for(;e.isParenthesizedExpression(n.parent)||e.isPrefixUnaryExpression(n.parent)&&53===n.parent.operator;)n=n.parent;return!(function(e){var n=e.parent;switch(n.kind){case 226:case 228:case 227:return n.expression===e;case 229:case 209:return n.condition===e}return!1}(n)||ue(n.parent)||e.isOptionalChain(n.parent)&&n.parent.expression===n)}function pe(e,n,t,r){var a=x,i=L;x=t,L=r,e(n),x=a,L=i}function me(n,t,r){pe(Pe,n,t,r),n&&(ue(n)||e.isOptionalChain(n)&&e.isOutermostOptionalChain(n))||(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}function fe(e,n,t){var r=E,a=T;E=n,T=t,Pe(e),E=r,T=a}function _e(e,n,t){var r=233===e.kind?n:t;r&&(ae(r,b),b=P)}function ge(e){208===e.kind&&62===e.operatorToken.kind?ye(e.left):ye(e)}function ye(e){if(Z(e))b=se(b,e);else if(191===e.kind)for(var n=0,t=e.elements;n<t.length;n++){var r=t[n];212===r.kind?ye(r.expression):ge(r)}else if(192===e.kind)for(var a=0,i=e.properties;a<i.length;a++){var o=i[a];279===o.kind?ge(o.initializer):280===o.kind?ye(o.name):281===o.kind&&ye(o.expression)}}function ve(e,n,t){var r=ne();55===e.operatorToken.kind?me(e.left,r,t):me(e.left,n,r),b=le(r),Pe(e.operatorToken),me(e.right,n,t)}function he(e){switch(Pe(e.questionDotToken),e.kind){case 193:Pe(e.name);break;case 194:Pe(e.argumentExpression);break;case 195:J(e.typeArguments),J(e.arguments)}}function be(n,t,r){var a=n.questionDotToken?ne():void 0;!function(n,t,r){pe(Pe,n,t,r),e.isOptionalChain(n)&&!e.isOutermostOptionalChain(n)||(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}(n.expression,a||t,r),a&&(b=le(a)),pe(he,n,t,r),e.isOutermostOptionalChain(n)&&(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}function Ee(e){if(de(e)){var n=ne();be(e,n,n),b=le(n)}else be(e,x,L)}function Te(n){switch(n.kind){case 213:case 244:case 247:case 192:case 172:case 302:case 272:return 1;case 245:return 65;case 248:case 246:case 185:return 33;case 288:return 37;case 160:if(e.isObjectLiteralOrClassExpressionMethod(n))return 173;case 161:case 243:case 159:case 162:case 163:case 164:case 303:case 298:case 169:case 165:case 166:case 170:return 45;case 200:case 201:return 61;case 249:return 4;case 158:return n.initializer?4:0;case 278:case 229:case 230:case 231:case 250:return 2;case 222:return e.isFunctionLike(n.parent)?0:2}return 0}function Se(e){y&&(y.nextContainer=e),y=e}function xe(t,r,a){switch(p.kind){case 248:return W(t,r,a);case 288:return function(t,r,a){return e.isExternalModule(n)?W(t,r,a):H(n.locals,void 0,t,r,a)}(t,r,a);case 213:case 244:return function(n,t,r){return e.hasModifier(n,32)?H(p.symbol.exports,p.symbol,n,t,r):H(p.symbol.members,p.symbol,n,t,r)}(t,r,a);case 247:return H(p.symbol.exports,p.symbol,t,r,a);case 172:case 302:case 192:case 245:case 272:return H(p.symbol.members,p.symbol,t,r,a);case 169:case 170:case 164:case 165:case 303:case 166:case 160:case 159:case 161:case 162:case 163:case 243:case 200:case 201:case 298:case 315:case 308:case 246:case 185:return H(p.locals,void 0,t,r,a)}}function Le(n){8388608&n.flags&&!function(n){var t=e.isSourceFile(n)?n:e.tryCast(n.body,e.isModuleBlock);return!!t&&t.statements.some((function(n){return e.isExportDeclaration(n)||e.isExportAssignment(n)}))}(n)?n.flags|=64:n.flags&=-65}function Ce(e){var n=t(e),r=0!==n;return xe(e,r?512:1024,r?110735:0),n}function Ae(e,n,t){var r=B(n,t);return 106508&n&&(r.parent=p.symbol),V(r,e,n),r}function De(n,t,r){switch(g.kind){case 248:W(n,t,r);break;case 288:if(e.isExternalOrCommonJsModule(p)){W(n,t,r);break}default:g.locals||(g.locals=e.createSymbolTable(),Se(g)),H(g.locals,void 0,n,t,r)}}function ke(t){!(N&&t.originalKeywordKind>=112&&t.originalKeywordKind<=120)||e.isIdentifierName(t)||8388608&t.flags||4194304&t.flags||n.parseDiagnostics.length||n.bindDiagnostics.push(G(t,function(t){if(e.getContainingClass(t))return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}(t),e.declarationNameToString(t)))}function Ne(t,r){if(r&&75===r.kind){var a=r;if(o=a,e.isIdentifier(o)&&(\"eval\"===o.escapedText||\"arguments\"===o.escapedText)){var i=e.getErrorSpanForNode(n,r);n.bindDiagnostics.push(e.createFileDiagnostic(n,i.start,i.length,function(t){if(e.getContainingClass(t))return e.Diagnostics.Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Invalid_use_of_0_in_strict_mode}(t),e.idText(a)))}}var o}function Ie(e){N&&Ne(e,e.name)}function Me(t){if(a<2&&288!==g.kind&&248!==g.kind&&!e.isFunctionLike(g)){var r=e.getErrorSpanForNode(n,t);n.bindDiagnostics.push(e.createFileDiagnostic(n,r.start,r.length,function(t){return e.getContainingClass(t)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:n.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}(t)))}}function Oe(t,r,a,i,o){var s=e.getSpanOfTokenAtPosition(n,t.pos);n.bindDiagnostics.push(e.createFileDiagnostic(n,s.start,s.length,r,a,i,o))}function Re(t,r,a,i){!function(t,r,a){var i=e.createFileDiagnostic(n,r.pos,r.end-r.pos,a);t?n.bindDiagnostics.push(i):n.bindSuggestionDiagnostics=e.append(n.bindSuggestionDiagnostics,__assign(__assign({},i),{category:e.DiagnosticCategory.Suggestion}))}(t,{pos:e.getTokenPosOfNode(r,n),end:a.end},i)}function Pe(t){if(t){t.parent=s;var a=N;if(function(t){switch(t.kind){case 75:if(t.isInJSDocNamespace){for(var a=t.parent;a&&!e.isJSDocTypeAlias(a);)a=a.parent;De(a,524288,788968);break}case 103:return b&&(e.isExpression(t)||280===s.kind)&&(t.flowNode=b),ke(t);case 193:case 194:var i=t;b&&Z(i)&&(i.flowNode=b),e.isSpecialPropertyDeclaration(i)&&function(n){103===n.expression.kind?Ue(n):e.isBindableStaticAccessExpression(n)&&288===n.parent.parent.kind&&(e.isPrototypeAccess(n.expression)?He(n,n.parent):We(n))}(i),e.isInJSFile(i)&&n.commonJsModuleIndicator&&e.isModuleExportsAccessExpression(i)&&!u(g,\"module\")&&H(n.locals,void 0,i.expression,134217729,111550);break;case 208:switch(e.getAssignmentDeclarationKind(t)){case 1:Ve(t);break;case 2:!function(t){if(!Be(t))return;var r=e.getRightMostAssignedExpression(t.right);if(e.isEmptyObjectLiteral(r)||p===n&&l(n,r))return;var a=e.exportAssignmentIsAlias(t)?2097152:1049092;U(H(n.symbol.exports,n.symbol,t,67108864|a,0),t)}(t);break;case 3:He(t.left,t);break;case 6:!function(e){e.left.parent=e,e.right.parent=e,Xe(e.left.expression,e.left,!1,!0)}(t);break;case 4:Ue(t);break;case 5:!function(t){var r=Ye(t.left.expression);if(!e.isInJSFile(t)&&!e.isFunctionSymbol(r))return;if(t.left.parent=t,t.right.parent=t,e.isIdentifier(t.left.expression)&&p===n&&l(n,t.left.expression))Ve(t);else if(e.hasDynamicName(t)){Ae(t,67108868,\"__computed\");var a=ze(r,t.left.expression,Je(t.left),!1,!1);Ke(t,a)}else We(e.cast(t.left,e.isBindableStaticAccessExpression))}(t);break;case 0:break;default:e.Debug.fail(\"Unknown binary expression special property assignment kind\")}return function(n){N&&e.isLeftHandSideExpression(n.left)&&e.isAssignmentOperator(n.operatorToken.kind)&&Ne(n,n.left)}(t);case 278:return function(e){N&&e.variableDeclaration&&Ne(e,e.variableDeclaration.name)}(t);case 202:return function(t){if(N&&75===t.expression.kind){var r=e.getErrorSpanForNode(n,t.expression);n.bindDiagnostics.push(e.createFileDiagnostic(n,r.start,r.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}(t);case 8:return function(t){N&&32&t.numericLiteralFlags&&n.bindDiagnostics.push(G(t,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}(t);case 207:return function(e){N&&Ne(e,e.operand)}(t);case 206:return function(e){N&&(45!==e.operator&&46!==e.operator||Ne(e,e.operand))}(t);case 235:return function(n){N&&Oe(n,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}(t);case 237:return function(n){N&&r.target>=2&&(e.isDeclarationStatement(n.statement)||e.isVariableStatement(n.statement))&&Oe(n.label,e.Diagnostics.A_label_is_not_allowed_here)}(t);case 182:return void(h=!0);case 167:break;case 154:return function(n){if(e.isJSDocTemplateTag(n.parent)){var t=e.find(n.parent.parent.tags,e.isJSDocTypeAlias)||e.getHostSignatureFromJSDoc(n.parent);t?(t.locals||(t.locals=e.createSymbolTable()),H(t.locals,void 0,n,262144,526824)):xe(n,262144,526824)}else if(180===n.parent.kind){var r=function(n){var t=e.findAncestor(n,(function(n){return n.parent&&e.isConditionalTypeNode(n.parent)&&n.parent.extendsType===n}));return t&&t.parent}(n.parent);r?(r.locals||(r.locals=e.createSymbolTable()),H(r.locals,void 0,n,262144,526824)):Ae(n,262144,j(n))}else xe(n,262144,526824)}(t);case 155:return $e(t);case 241:return Ze(t);case 190:return t.flowNode=b,Ze(t);case 158:case 157:return function(e){return en(e,4|(e.questionToken?16777216:0),0)}(t);case 279:case 280:return en(t,4,0);case 282:return en(t,8,900095);case 164:case 165:case 166:return xe(t,131072,0);case 160:case 159:return en(t,8192|(t.questionToken?16777216:0),e.isObjectLiteralMethod(t)?0:103359);case 243:return function(t){n.isDeclarationFile||8388608&t.flags||e.isAsyncFunction(t)&&(k|=2048);Ie(t),N?(Me(t),De(t,16,110991)):xe(t,16,110991)}(t);case 161:return xe(t,16384,0);case 162:return en(t,32768,46015);case 163:return en(t,65536,78783);case 169:case 298:case 303:case 170:return function(n){var t=B(131072,j(n));V(t,n,131072);var r=B(2048,\"__type\");V(r,n,2048),r.members=e.createSymbolTable(),r.members.set(t.escapedName,t)}(t);case 172:case 302:case 185:return function(e){return Ae(e,2048,\"__type\")}(t);case 307:return function(n){X(n);var t=e.getHostSignatureFromJSDoc(n);t&&160!==t.kind&&V(t.symbol,t,32)}(t);case 192:return function(t){var r;if(function(e){e[e.Property=1]=\"Property\",e[e.Accessor=2]=\"Accessor\"}(r||(r={})),N)for(var a=e.createUnderscoreEscapedMap(),i=0,o=t.properties;i<o.length;i++){var s=o[i];if(281!==s.kind&&75===s.name.kind){var c=s.name,l=279===s.kind||280===s.kind||160===s.kind?1:2,u=a.get(c.escapedText);if(u){if(1===l&&1===u){var d=e.getErrorSpanForNode(n,c);n.bindDiagnostics.push(e.createFileDiagnostic(n,d.start,d.length,e.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode))}}else a.set(c.escapedText,l)}}return Ae(t,4096,\"__object\")}(t);case 200:case 201:return function(t){n.isDeclarationFile||8388608&t.flags||e.isAsyncFunction(t)&&(k|=2048);b&&(t.flowNode=b);Ie(t);var r=t.name?t.name.escapedText:\"__function\";return Ae(t,16,r)}(t);case 195:switch(e.getAssignmentDeclarationKind(t)){case 7:return function(e){var n=Ye(e.arguments[0]),t=288===e.parent.parent.kind;n=ze(n,e.arguments[0],t,!1,!1),qe(e,n,!1)}(t);case 8:return function(e){if(!Be(e))return;var n=Qe(e.arguments[0],void 0,(function(e,n){return n&&V(n,e,67110400),n}));if(n){H(n.exports,n,e,1048580,0)}}(t);case 9:return function(e){var n=Ye(e.arguments[0].expression);n&&n.valueDeclaration&&V(n,n.valueDeclaration,32);qe(e,n,!0)}(t);case 0:break;default:return e.Debug.fail(\"Unknown call expression assignment declaration kind\")}e.isInJSFile(t)&&function(t){!n.commonJsModuleIndicator&&e.isRequireCall(t,!1)&&Be(t)}(t);break;case 213:case 244:return N=!0,function(t){if(244===t.kind)De(t,32,899503);else{var r=t.name?t.name.escapedText:\"__class\";Ae(t,32,r),t.name&&M.set(t.name.escapedText,!0)}var a=t.symbol,i=B(4194308,\"prototype\"),o=a.exports.get(i.escapedName);o&&(t.name&&(t.name.parent=t),n.bindDiagnostics.push(G(o.declarations[0],e.Diagnostics.Duplicate_identifier_0,e.symbolName(i))));a.exports.set(i.escapedName,i),i.parent=a}(t);case 245:return De(t,64,788872);case 246:return De(t,524288,788968);case 247:return function(n){return e.isEnumConst(n)?De(n,128,899967):De(n,256,899327)}(t);case 248:return function(t){if(Le(t),e.isAmbientModule(t))if(e.hasModifier(t,1)&&Oe(t,e.Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible),e.isModuleAugmentationExternal(t))Ce(t);else{var r=void 0;if(10===t.name.kind){var a=t.name.text;e.hasZeroOrOneAsteriskCharacter(a)?r=e.tryParsePattern(a):Oe(t.name,e.Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,a)}var i=xe(t,512,110735);n.patternAmbientModules=e.append(n.patternAmbientModules,r&&{pattern:r,symbol:i})}else{var o=Ce(t);if(0!==o)(i=t.symbol).constEnumOnlyModule=!(304&i.flags)&&2===o&&!1!==i.constEnumOnlyModule}}(t);case 272:return function(e){return Ae(e,4096,\"__jsxAttributes\")}(t);case 271:return function(e,n,t){return xe(e,n,t)}(t,4,0);case 252:case 255:case 257:case 261:return xe(t,2097152,2097152);case 251:return function(t){t.modifiers&&t.modifiers.length&&n.bindDiagnostics.push(G(t,e.Diagnostics.Modifiers_cannot_appear_here));var r=e.isSourceFile(t.parent)?e.isExternalModule(t.parent)?t.parent.isDeclarationFile?void 0:e.Diagnostics.Global_module_exports_may_only_appear_in_declaration_files:e.Diagnostics.Global_module_exports_may_only_appear_in_module_files:e.Diagnostics.Global_module_exports_may_only_appear_at_top_level;r?n.bindDiagnostics.push(G(t,r)):(n.symbol.globalExports=n.symbol.globalExports||e.createSymbolTable(),H(n.symbol.globalExports,n.symbol,t,2097152,2097152))}(t);case 254:return function(e){e.name&&xe(e,2097152,2097152)}(t);case 259:return function(e){p.symbol&&p.symbol.exports?e.exportClause||H(p.symbol.exports,p.symbol,e,8388608,0):Ae(e,8388608,j(e))}(t);case 258:return function(n){if(p.symbol&&p.symbol.exports){var t=e.exportAssignmentIsAlias(n)?2097152:4,r=H(p.symbol.exports,p.symbol,n,t,67108863);n.isExportEquals&&U(r,n)}else Ae(n,2097152,j(n))}(t);case 288:return Fe(t.statements),function(){if(Le(n),e.isExternalModule(n))Ge();else if(e.isJsonSourceFile(n)){Ge();var t=n.symbol;H(n.symbol.exports,n.symbol,n,4,67108863),n.symbol=t}}();case 222:if(!e.isFunctionLike(t.parent))return;case 249:return Fe(t.statements);case 310:if(303===t.parent.kind)return $e(t);if(302!==t.parent.kind)break;case 316:var o=t,c=o.isBracketed||o.typeExpression&&297===o.typeExpression.type.kind?16777220:4;return xe(o,c,0);case 315:case 308:case 309:(v||(v=[])).push(t)}}(t),t.kind>151){var c=s;s=t;var m=Te(t);0===m?z(t):function(n,t){var r=p,a=_,s=g;if(1&t?(201!==n.kind&&(_=p),p=g=n,32&t&&(p.locals=e.createSymbolTable()),Se(p)):2&t&&((g=n).locals=void 0),4&t){var c=o,l=b,u=E,d=T,m=S,f=A,y=D,v=16&t&&!e.hasModifier(n,256)&&!n.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(n);v||(b=i({flags:2}),144&t&&(b.node=n)),S=v||161===n.kind?ne():void 0,E=void 0,T=void 0,A=void 0,D=!1,o=i,z(n),n.flags&=-2817,!(1&b.flags)&&8&t&&e.nodeIsPresent(n.body)&&(n.flags|=256,D&&(n.flags|=512),n.endFlowNode=b),288===n.kind&&(n.flags|=k),S&&(ae(S,b),b=le(S),161===n.kind&&(n.returnFlowNode=b)),v||(b=l),E=u,T=d,S=m,A=f,D=y,o=c}else 64&t?(h=!1,z(n),n.flags=h?128|n.flags:-129&n.flags):z(n);p=r,_=a,g=s}(t,m),s=c}else if(!O&&0==(536870912&t.transformFlags)){F|=d(t,0);c=s;1===t.kind&&(s=t),we(t),s=c}N=a}}function we(n){if(e.hasJSDocNodes(n))if(e.isInJSFile(n))for(var t=0,r=n.jsDoc;t<r.length;t++){Pe(r[t])}else for(var a=0,i=n.jsDoc;a<i.length;a++){f(n,i[a])}}function Fe(t){if(!N)for(var r=0,a=t;r<a.length;r++){var i=a[r];if(!e.isPrologueDirective(i))return;if(o=i,s=void 0,'\"use strict\"'===(s=e.getSourceTextOfNodeFromSourceFile(n,o.expression))||\"'use strict'\"===s)return void(N=!0)}var o,s}function Ge(){Ae(n,512,'\"'+e.removeFileExtension(n.fileName)+'\"')}function Be(e){return!n.externalModuleIndicator&&(n.commonJsModuleIndicator||(n.commonJsModuleIndicator=e,Ge()),!0)}function Ve(n){if(Be(n)){var t=Qe(n.left.expression,void 0,(function(e,n){return n&&V(n,e,67110400),n}));if(t){var r=e.isClassExpression(n.right)?1048612:1048580;H(t.exports,t,n.left,r,0)}}}function Ue(n){e.Debug.assert(e.isInJSFile(n));var t=e.getThisContainer(n,!1);switch(t.kind){case 243:case 200:var r=t.symbol;if(e.isBinaryExpression(t.parent)&&62===t.parent.operatorToken.kind){var a=t.parent.left;e.isBindableStaticAccessExpression(a)&&e.isPrototypeAccess(a.expression)&&(r=Ye(a.expression.expression,_))}r&&r.valueDeclaration&&(r.members=r.members||e.createSymbolTable(),e.hasDynamicName(n)?je(n,r):H(r.members,r,n,67108868,0),V(r,r.valueDeclaration,32));break;case 161:case 158:case 160:case 162:case 163:var i=t.parent,o=e.hasModifier(t,32)?i.symbol.exports:i.symbol.members;e.hasDynamicName(n)?je(n,i.symbol):H(o,i.symbol,n,67108868,0,!0);break;case 288:if(e.hasDynamicName(n))break;t.commonJsModuleIndicator?H(t.symbol.exports,t.symbol,n,1048580,0):xe(n,1,111550);break;default:e.Debug.failBadSyntaxKind(t)}}function je(e,n){Ae(e,4,\"__computed\"),Ke(e,n)}function Ke(n,t){t&&(t.assignmentDeclarationMembers||(t.assignmentDeclarationMembers=e.createMap())).set(\"\"+e.getNodeId(n),n)}function He(e,n){var t=e.expression,r=t.expression;e.parent=n,r.parent=t,t.parent=e,Xe(r,e,!0,!0)}function We(e){e.expression.parent=e,Xe(e.expression,e,!1,!1)}function ze(t,r,a,i,o){if(a&&!i){t=Qe(r,t,(function(t,r,a){return r?(V(r,t,67110400),r):H(a?a.exports:n.jsGlobalAugmentations||(n.jsGlobalAugmentations=e.createSymbolTable()),a,t,67110400,110735)}))}return o&&t&&t.valueDeclaration&&V(t,t.valueDeclaration,32),t}function qe(n,t,r){if(t&&function(n){if(1072&n.flags)return!0;var t=n.valueDeclaration;if(t&&e.isCallExpression(t))return!!e.getAssignedExpandoInitializer(t);var r=t?e.isVariableDeclaration(t)?t.initializer:e.isBinaryExpression(t)?t.right:e.isPropertyAccessExpression(t)&&e.isBinaryExpression(t.parent)?t.parent.right:void 0:void 0;if(r=r&&e.getRightMostAssignedExpression(r)){var a=e.isPrototypeAccess(e.isVariableDeclaration(t)?t.name:e.isBinaryExpression(t)?t.left:t);return!!e.getExpandoInitializer(!e.isBinaryExpression(r)||56!==r.operatorToken.kind&&60!==r.operatorToken.kind?r:r.right,a)}return!1}(t)){var a=r?t.members||(t.members=e.createSymbolTable()):t.exports||(t.exports=e.createSymbolTable()),i=0,o=0;e.isFunctionLikeDeclaration(e.getAssignedExpandoInitializer(n))?(i=8192,o=103359):e.isCallExpression(n)&&e.isBindableObjectDefinePropertyCall(n)&&(e.some(n.arguments[2].properties,(function(n){var t=e.getNameOfDeclaration(n);return!!t&&e.isIdentifier(t)&&\"set\"===e.idText(t)}))&&(i|=65540,o|=78783),e.some(n.arguments[2].properties,(function(n){var t=e.getNameOfDeclaration(n);return!!t&&e.isIdentifier(t)&&\"get\"===e.idText(t)}))&&(i|=32772,o|=46015)),0===i&&(i=4,o=0),H(a,t,n,67108864|i,-67108865&o)}}function Je(n){return e.isBinaryExpression(n.parent)?288===function(n){for(;e.isBinaryExpression(n.parent);)n=n.parent;return n.parent}(n.parent).parent.kind:288===n.parent.parent.kind}function Xe(e,n,t,r){var a=Ye(e),i=Je(n);qe(n,a=ze(a,n.expression,i,t,r),t)}function Ye(n,t){if(void 0===t&&(t=p),e.isIdentifier(n))return u(t,n.escapedText);var r=Ye(n.expression);return r&&r.exports&&r.exports.get(e.getElementOrPropertyAccessName(n))}function Qe(t,r,a){if(l(n,t))return n.symbol;if(e.isIdentifier(t))return a(t,Ye(t),r);var i=Qe(t.expression,r,a);return a(e.getNameOrArgument(t),i&&i.exports&&i.exports.get(e.getElementOrPropertyAccessName(t)),i)}function Ze(n){N&&Ne(n,n.name),e.isBindingPattern(n.name)||(e.isBlockOrCatchScoped(n)?De(n,2,111551):e.isParameterDeclaration(n)?xe(n,1,111551):xe(n,1,111550))}function $e(n){if((310!==n.kind||303===p.kind)&&(!N||8388608&n.flags||Ne(n,n.name),e.isBindingPattern(n.name)?Ae(n,1,\"__\"+n.parent.parameters.indexOf(n)):xe(n,1,111551),e.isParameterPropertyDeclaration(n,n.parent))){var t=n.parent.parent;H(t.symbol.members,t.symbol,n,4|(n.questionToken?16777216:0),0)}}function en(t,r,a){return n.isDeclarationFile||8388608&t.flags||!e.isAsyncFunction(t)||(k|=2048),b&&e.isObjectLiteralOrClassExpressionMethod(t)&&(t.flowNode=b),e.hasDynamicName(t)?Ae(t,r,\"__computed\"):xe(t,r,a)}}();function c(n){return!(e.isFunctionDeclaration(n)||function(n){switch(n.kind){case 245:case 246:return!0;case 248:return 1!==t(n);case 247:return e.hasModifier(n,2048);default:return!1}}(n)||e.isEnumDeclaration(n)||e.isVariableStatement(n)&&!(3&e.getCombinedNodeFlags(n))&&n.declarationList.declarations.some((function(e){return!e.initializer})))}function l(n,t){for(var r=0,a=[t];a.length&&r<100;){if(r++,t=a.shift(),e.isExportsIdentifier(t)||e.isModuleExportsAccessExpression(t))return!0;if(e.isIdentifier(t)){var i=u(n,t.escapedText);if(i&&i.valueDeclaration&&e.isVariableDeclaration(i.valueDeclaration)&&i.valueDeclaration.initializer){var o=i.valueDeclaration.initializer;a.push(o),e.isAssignmentExpression(o,!0)&&(a.push(o.left),a.push(o.right))}}}return!1}function u(n,t){var r=n.locals&&n.locals.get(t);return r?r.exportSymbol||r:e.isSourceFile(n)&&n.jsGlobalAugmentations&&n.jsGlobalAugmentations.has(t)?n.jsGlobalAugmentations.get(t):n.symbol&&n.symbol.exports&&n.symbol.exports.get(t)}function d(n,t){var r=n.kind;switch(r){case 195:return function(n,t){var r=t,a=e.skipOuterExpressions(n.expression),i=n.expression;32&n.flags&&(r|=4);n.typeArguments&&(r|=1);(4096&t||e.isSuperOrSuperProperty(a))&&(r|=128,e.isSuperProperty(a)&&(r|=2048));95===i.kind&&(r|=524288);return n.transformFlags=536870912|r,-536875009&r}(n,t);case 196:return function(e,n){var t=n;e.typeArguments&&(t|=1);4096&n&&(t|=128);return e.transformFlags=536870912|t,-536875009&t}(n,t);case 248:return function(n,t){var r=1;0==(2&e.getModifierFlags(n))&&(r|=t);return n.transformFlags=536870912|r,-537168897&r}(n,t);case 199:return function(e,n){var t=n,r=e.expression.kind;216!==r&&198!==r||(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 208:return function(e,n){var t=n,r=e.operatorToken.kind,a=e.left.kind;60===r?t|=4:62===r&&192===a?t|=656:62===r&&191===a?t|=640:42!==r&&66!==r||(t|=64);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 225:return function(e,n){var t=n;return e.transformFlags=536870912|t,-536870913&t}(n,t);case 155:return function(n,t){var r=t,a=n.name,i=n.initializer,o=n.dotDotDotToken;(n.questionToken||n.type||1024&t&&e.some(n.decorators)||e.isThisIdentifier(a))&&(r|=1);e.hasModifier(n,92)&&(r|=1025);8192&t&&(r|=16);(65536&t||i||o)&&(r|=128);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 201:return function(n,t){var r=128|t;(e.hasModifier(n,2270)||n.typeParameters||n.type)&&(r|=1);e.hasModifier(n,256)&&(r|=32);8192&t&&(r|=16);return n.transformFlags=536870912|r,-537371649&r}(n,t);case 200:return function(n,t){var r=t;(e.hasModifier(n,2270)||n.typeParameters||n.type)&&(r|=1);e.hasModifier(n,256)&&(r|=n.asteriskToken?16:32);8192&t&&(r|=16);n.asteriskToken&&(r|=256);return n.transformFlags=536870912|r,-537373697&r}(n,t);case 243:return function(n,t){var r,a=e.getModifierFlags(n);!n.body||2&a?r=1:(r=262144|t,(2270&a||n.typeParameters||n.type)&&(r|=1),256&a&&(r|=n.asteriskToken?16:32),8192&t&&(r|=16),n.asteriskToken&&(r|=256));return n.transformFlags=536870912|r,-537373697&r}(n,t);case 241:return function(e,n){var t=n;t|=65664,8192&n&&(t|=16);e.type&&(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 242:return function(e,n){var t=262144|n;65536&n&&(t|=128);3&e.flags&&(t|=32896);return e.transformFlags=536870912|t,-536944641&t}(n,t);case 224:return function(n,t){var r,a=n.declarationList.transformFlags;e.hasModifier(n,2)?r=1:(r=t,65536&a&&(r|=128));return n.transformFlags=536870912|r,-536870913&r}(n,t);case 237:return function(n,t){var r=t;32768&t&&e.isIterationStatement(n,!0)&&(r|=128);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 244:return function(n,t){var r;e.hasModifier(n,2)?r=1:(r=128|t,(1024&t||n.typeParameters)&&(r|=1));return n.transformFlags=536870912|r,-536888321&r}(n,t);case 213:return function(e,n){var t=128|n;(1024&n||e.typeParameters)&&(t|=1);return e.transformFlags=536870912|t,-536888321&t}(n,t);case 277:return function(n,t){var r=t;switch(n.token){case 89:r|=128;break;case 112:r|=1;break;default:e.Debug.fail(\"Unexpected token for heritage clause\")}return n.transformFlags=536870912|r,-536870913&r}(n,t);case 278:return function(n,t){var r=t;n.variableDeclaration?e.isBindingPattern(n.variableDeclaration.name)&&(r|=128):r|=8;return n.transformFlags=536870912|r,-536879105&r}(n,t);case 215:return function(e,n){var t=128|n;e.typeArguments&&(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 161:return function(n,t){var r=t;!e.hasModifier(n,2270)&&n.body||(r|=1);8192&t&&(r|=16);return n.transformFlags=536870912|r,-537372673&r}(n,t);case 158:return function(n,t){var r=1048576|t;(e.some(n.decorators)||e.hasModifier(n,2270)||n.type||n.questionToken)&&(r|=1);(e.isComputedPropertyName(n.name)||e.hasStaticModifier(n)&&n.initializer)&&(r|=1024);return n.transformFlags=536870912|r,p(n.name,-536872961&r)}(n,t);case 160:return function(n,t){var r=128|t;(n.decorators||e.hasModifier(n,2270)||n.typeParameters||n.type||!n.body||n.questionToken)&&(r|=1);8192&t&&(r|=16);e.hasModifier(n,256)&&(r|=n.asteriskToken?16:32);n.asteriskToken&&(r|=256);return n.transformFlags=536870912|r,p(n.name,-537372673&r)}(n,t);case 162:case 163:return function(n,t){var r=t;(n.decorators||e.hasModifier(n,2270)||n.type||!n.body)&&(r|=1);8192&t&&(r|=16);return n.transformFlags=536870912|r,p(n.name,-537372673&r)}(n,t);case 252:return function(n,t){var r=t;e.isExternalModuleImportEqualsDeclaration(n)||(r|=1);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 193:case 194:return function(e,n){var t=n;32&e.flags&&(t|=4);101===e.expression.kind&&(t|=48);return e.transformFlags=536870912|t,-536870913&t}(n,t);default:return function(e,n,t){var r=t,a=536870912;switch(n){case 125:case 205:r|=48;break;case 198:case 216:case 319:r|=1,a=536870912;break;case 118:case 116:case 117:case 121:case 129:case 80:case 247:case 282:case 217:case 137:r|=1;break;case 264:case 265:case 266:case 11:case 267:case 268:case 269:case 270:case 271:case 272:case 273:case 274:r|=2;break;case 14:case 15:case 16:case 17:case 210:case 197:case 280:case 119:case 218:r|=128;break;case 10:e.hasExtendedUnicodeEscape&&(r|=128);break;case 8:384&e.numericLiteralFlags&&(r|=128);break;case 9:r|=4;break;case 231:e.awaitModifier&&(r|=16),r|=128;break;case 211:r|=131216;break;case 124:case 139:case 150:case 136:case 140:case 142:case 127:case 143:case 109:case 154:case 157:case 159:case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 245:case 246:case 182:case 183:case 184:case 185:case 186:case 251:r=1,a=-2;break;case 153:r|=16384;break;case 212:r|=4224;break;case 281:r|=8208;break;case 101:r|=128,a=536870912;break;case 103:r|=2048;break;case 188:r|=65664,4096&t&&(r|=8208),a=536875008;break;case 189:r|=65664,a=536875008;break;case 190:r|=128,e.dotDotDotToken&&(r|=4096);break;case 156:r|=1025;break;case 192:a=536896512,16384&t&&(r|=128),8192&t&&(r|=16);break;case 191:a=536875008;break;case 227:case 228:case 229:case 230:32768&t&&(r|=128);break;case 288:break;case 234:r|=262160;break;case 232:case 233:r|=262144}return e.transformFlags=536870912|r,r&~a}(n,r,t)}}function p(e,n){return n|2048&e.transformFlags}function m(e){if(e>=167&&e<=187)return-2;switch(e){case 195:case 196:case 191:return 536875008;case 248:return 537168896;case 155:return 536870912;case 201:return 537371648;case 200:case 243:return 537373696;case 242:return 536944640;case 244:case 213:return 536888320;case 161:return 537372672;case 160:case 162:case 163:return 537372672;case 124:case 139:case 150:case 136:case 142:case 140:case 127:case 143:case 109:case 154:case 157:case 159:case 164:case 165:case 166:case 245:case 246:return-2;case 192:return 536896512;case 278:return 536879104;case 188:case 189:return 536875008;case 198:case 216:case 319:case 199:case 101:return 536870912;case 193:case 194:default:return 536870912}}function f(n,t){t.parent=n,e.forEachChild(t,(function(e){return f(t,e)}))}e.bindSourceFile=function(n,t){e.performance.mark(\"beforeBind\"),e.perfLogger.logStartBindFile(\"\"+n.fileName),s(n,t),e.perfLogger.logStopBindFile(),e.performance.mark(\"afterBind\"),e.performance.measure(\"Bind\",\"beforeBind\",\"afterBind\")},e.isExportsOrModuleExportsOrAlias=l,e.computeTransformFlagsForNode=d,e.getTransformFlagsSubtreeExclusions=m}(ts||(ts={})),function(e){e.createGetSymbolWalker=function(n,t,r,a,i,o,s,c,l,u,d){return function(p){void 0===p&&(p=function(){return!0});var m=[],f=[];return{walkType:function(n){try{return _(n),{visitedTypes:e.getOwnValues(m),visitedSymbols:e.getOwnValues(f)}}finally{e.clear(m),e.clear(f)}},walkSymbol:function(n){try{return v(n),{visitedTypes:e.getOwnValues(m),visitedSymbols:e.getOwnValues(f)}}finally{e.clear(m),e.clear(f)}}};function _(n){if(n&&(!m[n.id]&&(m[n.id]=n,!v(n.symbol)))){if(524288&n.flags){var t=n,r=t.objectFlags;4&r&&function(n){_(n.target),e.forEach(d(n),_)}(n),32&r&&function(e){_(e.typeParameter),_(e.constraintType),_(e.templateType),_(e.modifiersType)}(n),3&r&&(y(i=n),e.forEach(i.typeParameters,_),e.forEach(a(i),_),_(i.thisType)),24&r&&y(t)}var i;262144&n.flags&&function(e){_(l(e))}(n),3145728&n.flags&&function(n){e.forEach(n.types,_)}(n),4194304&n.flags&&function(e){_(e.type)}(n),8388608&n.flags&&function(e){_(e.objectType),_(e.indexType),_(e.constraint)}(n)}}function g(a){var i=t(a);i&&_(i.type),e.forEach(a.typeParameters,_);for(var o=0,s=a.parameters;o<s.length;o++){v(s[o])}_(n(a)),_(r(a))}function y(e){_(c(e,0)),_(c(e,1));for(var n=i(e),t=0,r=n.callSignatures;t<r.length;t++){g(r[t])}for(var a=0,o=n.constructSignatures;a<o.length;a++){g(o[a])}for(var s=0,l=n.properties;s<l.length;s++){v(l[s])}}function v(n){if(!n)return!1;var t=e.getSymbolId(n);return!f[t]&&(f[t]=n,!p(n)||(_(o(n)),n.exports&&n.exports.forEach(v),e.forEach(n.declarations,(function(e){if(e.type&&171===e.type.kind){var n=e.type;v(s(u(n.exprName)))}})),!1))}}}}(ts||(ts={})),function(e){var n,t,r,a,i=/^\".+\"$/,o=1,s=1,c=1,l=1;!function(e){e[e.AllowsSyncIterablesFlag=1]=\"AllowsSyncIterablesFlag\",e[e.AllowsAsyncIterablesFlag=2]=\"AllowsAsyncIterablesFlag\",e[e.AllowsStringInputFlag=4]=\"AllowsStringInputFlag\",e[e.ForOfFlag=8]=\"ForOfFlag\",e[e.YieldStarFlag=16]=\"YieldStarFlag\",e[e.SpreadFlag=32]=\"SpreadFlag\",e[e.DestructuringFlag=64]=\"DestructuringFlag\",e[e.Element=1]=\"Element\",e[e.Spread=33]=\"Spread\",e[e.Destructuring=65]=\"Destructuring\",e[e.ForOf=13]=\"ForOf\",e[e.ForAwaitOf=15]=\"ForAwaitOf\",e[e.YieldStar=17]=\"YieldStar\",e[e.AsyncYieldStar=19]=\"AsyncYieldStar\",e[e.GeneratorReturnType=1]=\"GeneratorReturnType\",e[e.AsyncGeneratorReturnType=2]=\"AsyncGeneratorReturnType\"}(n||(n={})),function(e){e[e.Yield=0]=\"Yield\",e[e.Return=1]=\"Return\",e[e.Next=2]=\"Next\"}(t||(t={})),function(e){e[e.Normal=0]=\"Normal\",e[e.GeneratorYield=1]=\"GeneratorYield\"}(r||(r={})),function(e){e[e.None=0]=\"None\",e[e.TypeofEQString=1]=\"TypeofEQString\",e[e.TypeofEQNumber=2]=\"TypeofEQNumber\",e[e.TypeofEQBigInt=4]=\"TypeofEQBigInt\",e[e.TypeofEQBoolean=8]=\"TypeofEQBoolean\",e[e.TypeofEQSymbol=16]=\"TypeofEQSymbol\",e[e.TypeofEQObject=32]=\"TypeofEQObject\",e[e.TypeofEQFunction=64]=\"TypeofEQFunction\",e[e.TypeofEQHostObject=128]=\"TypeofEQHostObject\",e[e.TypeofNEString=256]=\"TypeofNEString\",e[e.TypeofNENumber=512]=\"TypeofNENumber\",e[e.TypeofNEBigInt=1024]=\"TypeofNEBigInt\",e[e.TypeofNEBoolean=2048]=\"TypeofNEBoolean\",e[e.TypeofNESymbol=4096]=\"TypeofNESymbol\",e[e.TypeofNEObject=8192]=\"TypeofNEObject\",e[e.TypeofNEFunction=16384]=\"TypeofNEFunction\",e[e.TypeofNEHostObject=32768]=\"TypeofNEHostObject\",e[e.EQUndefined=65536]=\"EQUndefined\",e[e.EQNull=131072]=\"EQNull\",e[e.EQUndefinedOrNull=262144]=\"EQUndefinedOrNull\",e[e.NEUndefined=524288]=\"NEUndefined\",e[e.NENull=1048576]=\"NENull\",e[e.NEUndefinedOrNull=2097152]=\"NEUndefinedOrNull\",e[e.Truthy=4194304]=\"Truthy\",e[e.Falsy=8388608]=\"Falsy\",e[e.All=16777215]=\"All\",e[e.BaseStringStrictFacts=3735041]=\"BaseStringStrictFacts\",e[e.BaseStringFacts=12582401]=\"BaseStringFacts\",e[e.StringStrictFacts=16317953]=\"StringStrictFacts\",e[e.StringFacts=16776705]=\"StringFacts\",e[e.EmptyStringStrictFacts=12123649]=\"EmptyStringStrictFacts\",e[e.EmptyStringFacts=12582401]=\"EmptyStringFacts\",e[e.NonEmptyStringStrictFacts=7929345]=\"NonEmptyStringStrictFacts\",e[e.NonEmptyStringFacts=16776705]=\"NonEmptyStringFacts\",e[e.BaseNumberStrictFacts=3734786]=\"BaseNumberStrictFacts\",e[e.BaseNumberFacts=12582146]=\"BaseNumberFacts\",e[e.NumberStrictFacts=16317698]=\"NumberStrictFacts\",e[e.NumberFacts=16776450]=\"NumberFacts\",e[e.ZeroNumberStrictFacts=12123394]=\"ZeroNumberStrictFacts\",e[e.ZeroNumberFacts=12582146]=\"ZeroNumberFacts\",e[e.NonZeroNumberStrictFacts=7929090]=\"NonZeroNumberStrictFacts\",e[e.NonZeroNumberFacts=16776450]=\"NonZeroNumberFacts\",e[e.BaseBigIntStrictFacts=3734276]=\"BaseBigIntStrictFacts\",e[e.BaseBigIntFacts=12581636]=\"BaseBigIntFacts\",e[e.BigIntStrictFacts=16317188]=\"BigIntStrictFacts\",e[e.BigIntFacts=16775940]=\"BigIntFacts\",e[e.ZeroBigIntStrictFacts=12122884]=\"ZeroBigIntStrictFacts\",e[e.ZeroBigIntFacts=12581636]=\"ZeroBigIntFacts\",e[e.NonZeroBigIntStrictFacts=7928580]=\"NonZeroBigIntStrictFacts\",e[e.NonZeroBigIntFacts=16775940]=\"NonZeroBigIntFacts\",e[e.BaseBooleanStrictFacts=3733256]=\"BaseBooleanStrictFacts\",e[e.BaseBooleanFacts=12580616]=\"BaseBooleanFacts\",e[e.BooleanStrictFacts=16316168]=\"BooleanStrictFacts\",e[e.BooleanFacts=16774920]=\"BooleanFacts\",e[e.FalseStrictFacts=12121864]=\"FalseStrictFacts\",e[e.FalseFacts=12580616]=\"FalseFacts\",e[e.TrueStrictFacts=7927560]=\"TrueStrictFacts\",e[e.TrueFacts=16774920]=\"TrueFacts\",e[e.SymbolStrictFacts=7925520]=\"SymbolStrictFacts\",e[e.SymbolFacts=16772880]=\"SymbolFacts\",e[e.ObjectStrictFacts=7888800]=\"ObjectStrictFacts\",e[e.ObjectFacts=16736160]=\"ObjectFacts\",e[e.FunctionStrictFacts=7880640]=\"FunctionStrictFacts\",e[e.FunctionFacts=16728e3]=\"FunctionFacts\",e[e.UndefinedFacts=9830144]=\"UndefinedFacts\",e[e.NullFacts=9363232]=\"NullFacts\",e[e.EmptyObjectStrictFacts=16318463]=\"EmptyObjectStrictFacts\",e[e.EmptyObjectFacts=16777215]=\"EmptyObjectFacts\"}(a||(a={}));var u,d,p,m,f,_,g,y,v=e.createMapFromTemplate({string:1,number:2,bigint:4,boolean:8,symbol:16,undefined:65536,object:32,function:64}),h=e.createMapFromTemplate({string:256,number:512,bigint:1024,boolean:2048,symbol:4096,undefined:524288,object:8192,function:16384});!function(e){e[e.Type=0]=\"Type\",e[e.ResolvedBaseConstructorType=1]=\"ResolvedBaseConstructorType\",e[e.DeclaredType=2]=\"DeclaredType\",e[e.ResolvedReturnType=3]=\"ResolvedReturnType\",e[e.ImmediateBaseConstraint=4]=\"ImmediateBaseConstraint\",e[e.EnumTagType=5]=\"EnumTagType\",e[e.JSDocTypeReference=6]=\"JSDocTypeReference\",e[e.ResolvedTypeArguments=7]=\"ResolvedTypeArguments\"}(u||(u={})),function(e){e[e.Normal=0]=\"Normal\",e[e.Contextual=1]=\"Contextual\",e[e.Inferential=2]=\"Inferential\",e[e.SkipContextSensitive=4]=\"SkipContextSensitive\",e[e.SkipGenericFunctions=8]=\"SkipGenericFunctions\",e[e.IsForSignatureHelp=16]=\"IsForSignatureHelp\"}(d||(d={})),function(e){e[e.None=0]=\"None\",e[e.NoIndexSignatures=1]=\"NoIndexSignatures\",e[e.Writing=2]=\"Writing\",e[e.CacheSymbol=4]=\"CacheSymbol\",e[e.NoTupleBoundsCheck=8]=\"NoTupleBoundsCheck\"}(p||(p={})),function(e){e[e.None=0]=\"None\",e[e.Bivariant=1]=\"Bivariant\",e[e.Strict=2]=\"Strict\"}(m||(m={})),function(e){e[e.IncludeReadonly=1]=\"IncludeReadonly\",e[e.ExcludeReadonly=2]=\"ExcludeReadonly\",e[e.IncludeOptional=4]=\"IncludeOptional\",e[e.ExcludeOptional=8]=\"ExcludeOptional\"}(f||(f={})),function(e){e[e.None=0]=\"None\",e[e.Source=1]=\"Source\",e[e.Target=2]=\"Target\",e[e.Both=3]=\"Both\"}(_||(_={})),function(e){e.resolvedExports=\"resolvedExports\",e.resolvedMembers=\"resolvedMembers\"}(g||(g={})),function(e){e[e.Local=0]=\"Local\",e[e.Parameter=1]=\"Parameter\"}(y||(y={}));var b,E,T,S=e.and(A,(function(n){return!e.isAccessor(n)}));function x(e){return e.id||(e.id=s,s++),e.id}function L(e){return e.id||(e.id=o,o++),e.id}function C(n,t){var r=e.getModuleInstanceState(n);return 1===r||t&&2===r}function A(e){return 243!==e.kind&&160!==e.kind||!!e.body}function D(n){switch(n.parent.kind){case 257:case 261:return e.isIdentifier(n);default:return e.isDeclarationName(n)}}function k(e){switch(e.kind){case 254:case 252:case 255:case 257:return!0;case 75:return 257===e.parent.kind;default:return!1}}function N(e){switch(e){case 0:return\"yieldType\";case 1:return\"returnType\";case 2:return\"nextType\"}}function I(e){return!!(1&e.flags)}function M(e){return!!(2&e.flags)}!function(e){e[e.GetAccessor=1]=\"GetAccessor\",e[e.SetAccessor=2]=\"SetAccessor\",e[e.PropertyAssignment=4]=\"PropertyAssignment\",e[e.Method=8]=\"Method\",e[e.GetOrSetAccessor=3]=\"GetOrSetAccessor\",e[e.PropertyAssignmentOrMethod=12]=\"PropertyAssignmentOrMethod\"}(b||(b={})),function(e){e[e.None=0]=\"None\",e[e.ExportValue=1]=\"ExportValue\",e[e.ExportType=2]=\"ExportType\",e[e.ExportNamespace=4]=\"ExportNamespace\"}(E||(E={})),e.getNodeId=x,e.getSymbolId=L,e.isInstantiatedModule=C,e.createTypeChecker=function(n,t){var r,a,o,s,u=e.memoize((function(){var t=e.createMap();return n.getSourceFiles().forEach((function(n){n.resolvedModules&&e.forEachEntry(n.resolvedModules,(function(e){e&&e.packageId&&t.set(e.packageId.name,!0)}))})),t})),d=e.objectAllocator.getSymbolConstructor(),p=e.objectAllocator.getTypeConstructor(),m=e.objectAllocator.getSignatureConstructor(),f=0,_=0,g=0,y=0,b=0,E=0,O=e.createSymbolTable(),R=e.identity,P=n.getCompilerOptions(),w=e.getEmitScriptTarget(P),F=e.getEmitModuleKind(P),G=e.getAllowSyntheticDefaultImports(P),B=e.getStrictOptionValue(P,\"strictNullChecks\"),V=e.getStrictOptionValue(P,\"strictFunctionTypes\"),U=e.getStrictOptionValue(P,\"strictBindCallApply\"),j=e.getStrictOptionValue(P,\"strictPropertyInitialization\"),K=e.getStrictOptionValue(P,\"noImplicitAny\"),H=e.getStrictOptionValue(P,\"noImplicitThis\"),W=!!P.keyofStringsOnly,z=P.suppressExcessPropertyErrors?0:32768,q=function(){var t,r=n.getResolvedTypeReferenceDirectives();r&&(t=e.createMap(),r.forEach((function(r,a){r&&r.resolvedFileName&&function r(a,i){if(t.has(a.path))return;t.set(a.path,i);for(var o=0,s=a.referencedFiles;o<s.length;o++){var c=s[o].fileName,l=e.resolveTripleslashReference(c,a.originalFileName),u=n.getSourceFile(l);u&&r(u,i)}}(n.getSourceFile(r.resolvedFileName),a)})));return{getReferencedExportContainer:db,getReferencedImportDeclaration:pb,getReferencedDeclarationWithCollidingName:fb,isDeclarationWithCollidingName:_b,isValueAliasDeclaration:function(n){return!(n=e.getParseTreeNode(n))||gb(n)},hasGlobalName:Rb,isReferencedAliasDeclaration:function(n,t){return!(n=e.getParseTreeNode(n))||function n(t,r){if(e.isAliasSymbolDeclaration(t)){var a=Yr(t);if(a&&ir(a).referenced)return!0;var i=ir(a).target;if(i&&1&e.getModifierFlags(t)&&111551&i.flags&&(P.preserveConstEnums||!hb(i)))return!0}if(r)return!!e.forEachChild(t,(function(e){return n(e,r)}));return!1}(n,t)},getNodeCheckFlags:function(n){return(n=e.getParseTreeNode(n))?Lb(n):0},isTopLevelValueImportEqualsWithEntityName:yb,isDeclarationVisible:Fa,isImplementationOfOverload:bb,isRequiredInitializedParameter:Eb,isOptionalUninitializedParameterProperty:Tb,isExpandoFunctionDeclaration:Sb,getPropertiesOfContainerFunction:xb,createTypeOfDeclaration:Ib,createReturnTypeOfSignatureDeclaration:Mb,createTypeOfExpression:Ob,createLiteralConstValue:Gb,isSymbolAccessible:ha,isEntityNameVisible:xa,getConstantValue:function(n){var t=e.getParseTreeNode(n,Ab);return t?Db(t):void 0},collectLinkedAliases:Ga,getReferencedValueDeclaration:wb,getTypeReferenceSerializationKind:Nb,isOptionalParameter:Ls,moduleExportsSomeValue:ub,isArgumentsLocalBinding:lb,getExternalModuleFileFromDeclaration:Bb,getTypeReferenceDirectivesForEntityName:function(e){if(!t)return;var n=790504;(75===e.kind&&Dp(e)||193===e.kind&&!function(e){return e.parent&&215===e.parent.kind&&e.parent.parent&&277===e.parent.parent.kind}(e))&&(n=1160127);var r=Rr(e,n,!0);return r&&r!==de?a(r,n):void 0},getTypeReferenceDirectivesForSymbol:a,isLiteralConstDeclaration:Fb,isLateBound:function(n){var t=e.getParseTreeNode(n,e.isDeclaration),r=t&&Yr(t);return!!(r&&4096&e.getCheckFlags(r))},getJsxFactoryEntity:function(n){return n?(Ht(n),e.getSourceFileOfNode(n).localJsxFactory||Hn):Hn},getAllAccessorDeclarations:function(n){var t=163===(n=e.getParseTreeNode(n,e.isGetOrSetAccessorDeclaration)).kind?162:163,r=e.getDeclarationOfKind(Yr(n),t);return{firstAccessor:r&&r.pos<n.pos?r:n,secondAccessor:r&&r.pos<n.pos?n:r,setAccessor:163===n.kind?n:r,getAccessor:162===n.kind?n:r}},getSymbolOfExternalModuleSpecifier:function(e){return Fr(e,e,void 0)},isBindingCapturedByNode:function(n,t){var r=e.getParseTreeNode(n),a=e.getParseTreeNode(t);return!!r&&!!a&&(e.isVariableDeclaration(a)||e.isBindingElement(a))&&function(n,t){var r=or(n);return!!r&&e.contains(r.capturedBlockScopeBindings,Yr(t))}(r,a)},getDeclarationStatementsForSourceFile:function(n,t,r,a){var i=e.getParseTreeNode(n);e.Debug.assert(i&&288===i.kind,\"Non-sourcefile node passed into getDeclarationsForSourceFile\");var o=Yr(n);return o?o.exports?J.symbolTableToDeclarationStatements(o.exports,n,t,r,a):[]:n.locals?J.symbolTableToDeclarationStatements(n.locals,n,t,r,a):[]}};function a(n,r){if(t&&function(n){if(!n.declarations)return!1;var r=n;for(;;){var a=Qr(r);if(!a)break;r=a}if(r.valueDeclaration&&288===r.valueDeclaration.kind&&512&r.flags)return!1;for(var i=0,o=n.declarations;i<o.length;i++){var s=o[i],c=e.getSourceFileOfNode(s);if(t.has(c.path))return!0}return!1}(n)){for(var a,i=0,o=n.declarations;i<o.length;i++){var s=o[i];if(s.symbol&&s.symbol.flags&r){var c=e.getSourceFileOfNode(s),l=t.get(c.path);if(!l)return;(a||(a=[])).push(l)}}return a}}}(),J=function(){return{typeToTypeNode:function(e,n,r,a){return t(n,r,a,(function(n){return o(e,n)}))},indexInfoToIndexSignatureDeclaration:function(e,n,r,a,i){return t(r,a,i,(function(t){return u(e,n,t)}))},signatureToSignatureDeclaration:function(e,n,r,a,i){return t(r,a,i,(function(t){return d(e,n,t)}))},symbolToEntityName:function(e,n,r,a,i){return t(r,a,i,(function(t){return C(e,t,n,!1)}))},symbolToExpression:function(e,n,r,a,i){return t(r,a,i,(function(t){return A(e,t,n)}))},symbolToTypeParameterDeclarations:function(e,n,r,a){return t(n,r,a,(function(n){return v(e,n)}))},symbolToParameterDeclaration:function(e,n,r,a){return t(n,r,a,(function(n){return f(e,n)}))},typeParameterToDeclaration:function(e,n,r,a){return t(n,r,a,(function(n){return m(e,n)}))},symbolTableToDeclarationStatements:function(r,a,i,s,c){return t(a,i,s,(function(t){return function(t,r,a){var i,s=K(e.createProperty,160,!0),c=K((function(n,t,r,a,i,o){return e.createPropertySignature(t,r,a,i,o)}),159,!1),l=r.enclosingDeclaration,p=[],f=e.createMap(),_=r;r=__assign(__assign({},_),{usedSymbolNames:e.createMap(),remappedSymbolNames:e.createMap(),tracker:__assign(__assign({},_.tracker),{trackSymbol:function(e,n,t){if(0===ha(e,n,t,!1).accessibility){var a=y(e,r,t);4&e.flags||M(a[0])}else _.tracker&&_.tracker.trackSymbol&&_.tracker.trackSymbol(e,n,t)}})}),_.usedSymbolNames&&_.usedSymbolNames.forEach((function(e,n){r.usedSymbolNames.set(n,!0)}));e.forEachEntry(t,(function(n,t){Q(n,e.unescapeLeadingUnderscores(t))}));var g=!a,v=t.get(\"export=\");v&&t.size>1&&2097152&v.flags&&(t=e.createSymbolTable()).set(\"export=\",v);return N(t),T(p);function h(e){return!!e&&75===e.kind}function E(n){var t=e.find(n,e.isExportAssignment),r=e.find(n,e.isModuleDeclaration);if(r&&t&&t.isExportEquals&&e.isIdentifier(t.expression)&&e.isIdentifier(r.name)&&e.idText(r.name)===e.idText(t.expression)&&r.body&&e.isModuleBlock(r.body)){var a=e.filter(n,(function(n){return!!(1&e.getModifierFlags(n))}));e.length(a)&&(r.body.statements=e.createNodeArray(__spreadArrays(r.body.statements,[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.map(e.flatMap(a,(function(n){return t=n,e.isVariableStatement(t)?e.filter(e.map(t.declarationList.declarations,e.getNameOfDeclaration),h):e.filter([e.getNameOfDeclaration(t)],h);var t})),(function(n){return e.createExportSpecifier(void 0,n)}))),void 0)]))),e.find(n,(function(n){return n!==r&&e.nodeHasName(n,r.name)}))||(p=[],e.forEach(r.body.statements,(function(e){O(e,0)})),n=__spreadArrays(e.filter(n,(function(e){return e!==r&&e!==t})),p))}return n}function T(n){return n=function(n){var t=e.find(n,(function(n){return e.isExportDeclaration(n)&&!n.moduleSpecifier&&!!n.exportClause}));if(t){var r=e.mapDefined(t.exportClause.elements,(function(t){if(!t.propertyName){var r=e.filter(n,(function(n){return e.nodeHasName(n,t.name)}));if(e.length(r)&&e.every(r,x))return void e.forEach(r,k)}return t}));e.length(r)?t.exportClause.elements=e.createNodeArray(r):n=e.filter(n,(function(e){return e!==t}))}return n}(n=function(n){var t=e.filter(n,(function(n){return e.isExportDeclaration(n)&&!n.moduleSpecifier&&!!n.exportClause}));if(e.length(t)>1){var r=e.filter(n,(function(n){return!e.isExportDeclaration(n)||!!n.moduleSpecifier||!n.exportClause}));n=__spreadArrays(r,[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.flatMap(t,(function(e){return e.exportClause.elements}))),void 0)])}var a=e.filter(n,(function(n){return e.isExportDeclaration(n)&&!!n.moduleSpecifier&&!!n.exportClause}));if(e.length(a)>1){var i=e.group(a,(function(n){return e.isStringLiteral(n.moduleSpecifier)?\">\"+n.moduleSpecifier.text:\">\"}));if(i.length!==a.length)for(var o=function(t){t.length>1&&(n=__spreadArrays(e.filter(n,(function(e){return-1===t.indexOf(e)})),[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.flatMap(t,(function(e){return e.exportClause.elements}))),t[0].moduleSpecifier)]))},s=0,c=i;s<c.length;s++){o(c[s])}}return n}(n=E(n))),l&&(e.isSourceFile(l)&&e.isExternalOrCommonJsModule(l)||e.isModuleDeclaration(l))&&(!e.some(n,e.isExternalModuleIndicator)||!e.hasScopeMarker(n)&&e.some(n,e.needsScopeMarker))&&n.push(e.createEmptyExports()),n}function x(n){return e.isEnumDeclaration(n)||e.isVariableStatement(n)||e.isFunctionDeclaration(n)||e.isClassDeclaration(n)||e.isModuleDeclaration(n)&&!e.isExternalModuleAugmentation(n)&&!e.isGlobalScopeAugmentation(n)||e.isInterfaceDeclaration(n)||Xh(n)}function k(n){var t=-3&(1|e.getModifierFlags(n));n.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(t)),n.modifierFlagsCache=0}function N(n,t,r){var a=i;t||(i=e.createMap()),n.forEach((function(e){I(e,!1,!!r)})),t||i.forEach((function(e){I(e,!0,!!r)})),i=a}function I(n,t,a){var i=Xr(n);if(!f.has(\"\"+L(i))&&(f.set(\"\"+L(i),!0),!t||e.length(n.declarations)&&e.some(n.declarations,(function(n){return!!e.findAncestor(n,(function(e){return e===l}))})))){var u=r;r=function(n){var t=__assign({},n);t.typeParameterNames&&(t.typeParameterNames=e.cloneMap(t.typeParameterNames));t.typeParameterNamesByText&&(t.typeParameterNamesByText=e.cloneMap(t.typeParameterNamesByText));t.typeParameterSymbolList&&(t.typeParameterSymbolList=e.cloneMap(t.typeParameterSymbolList));return t}(r);var d=function(n,t,a){var i=e.unescapeLeadingUnderscores(n.escapedName),l=\"default\"===n.escapedName;if(e.isStringANonContextualKeyword(i)&&!l)return void(r.encounteredError=!0);var u=l&&!!(-113&n.flags||16&n.flags&&e.length(Xo(Ci(n))))&&!(2097152&n.flags);u&&(t=!0);var d=(t?0:1)|(l&&!u?512:0),p=1536&n.flags&&7&n.flags&&\"export=\"!==n.escapedName,f=p&&j(Ci(n),n);(16&n.flags||f)&&F(Ci(n),n,Q(n,i),d);524288&n.flags&&function(n,t,a){var i=Ki(n),s=ir(n).typeParameters,c=e.map(s,(function(e){return m(e,r)})),l=e.find(n.declarations,e.isJSDocTypeAlias),u=l?l.comment||l.parent.comment:void 0,d=r.flags;r.flags|=8388608,O(e.setSyntheticLeadingComments(e.createTypeAliasDeclaration(void 0,void 0,Q(n,t),c,o(i,r)),u?[{kind:3,text:\"*\\n * \"+u.replace(/\\n/g,\"\\n * \")+\"\\n \",pos:-1,end:-1,hasTrailingNewLine:!0}]:[]),a),r.flags=d}(n,i,d);!(7&n.flags&&\"export=\"!==n.escapedName)||4194304&n.flags||32&n.flags||f||function(n,t,r,a,i,o){if(i)U(n);else{var s=Ci(n),c=Q(n,t);if(16&n.flags||!j(s,n)){var l=2&n.flags?Im(n)?2:1:void 0,u=!a&&4&n.flags?X(c,n):c,d=n.declarations&&e.find(n.declarations,(function(n){return e.isVariableDeclaration(n)}));d&&e.isVariableDeclarationList(d.parent)&&1===d.parent.declarations.length&&(d=d.parent.parent),O(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(u,W(s,n))],l)),d),u!==c?-2&o:o),u===c||r||O(e.createExportDeclaration(void 0,void 0,e.createNamedExports([e.createExportSpecifier(u,c)])),0)}else F(s,n,c,o)}}(n,i,t,u,a,d);384&n.flags&&function(n,t,r){O(e.createEnumDeclaration(void 0,e.createModifiersFromModifierFlags(uy(n)?2048:0),Q(n,t),e.map(e.filter(Xo(Ci(n)),(function(e){return!!(8&e.flags)})),(function(n){var t=n.declarations&&n.declarations[0]&&e.isEnumMember(n.declarations[0])&&Db(n.declarations[0]);return e.createEnumMember(e.unescapeLeadingUnderscores(n.escapedName),void 0===t?void 0:e.createLiteral(t))}))),r)}(n,i,d);32&n.flags&&(4&n.flags?B(n,Q(n,i),d):function(n,t,a){for(var i=Oi(n),c=e.map(i,(function(e){return m(e,r)})),l=ji(n),u=Vi(l),d=Ci(n),p=Bi(d),f=e.length(u)?[e.createHeritageClause(89,e.map(u,(function(n){return function(n,t,a){var i=J(n);if(i)return i;var s=X(a+\"_base\");return O(e.createVariableStatement(undefined,e.createVariableDeclarationList([e.createVariableDeclaration(s,o(t,r))],2)),0),e.createExpressionWithTypeArguments(void 0,e.createIdentifier(s))}(n,p,t)})))]:void 0,_=e.flatMap(Xo(l),(function(e){return s(e,!1,u[0])})),g=528&n.flags?[]:e.flatMap(e.filter(Xo(d),(function(e){return!(4194304&e.flags)&&\"prototype\"!==e.escapedName})),(function(e){return s(e,!0,p)})),y=z(1,d,u[0],161),v=0,h=y;v<h.length;v++){var b=h[v];b.type=void 0,b.typeParameters=void 0}var E=q(l,u[0]);O(e.setTextRange(e.createClassDeclaration(void 0,void 0,t,c,f,__spreadArrays(E,g,y,_)),n.declarations&&e.filter(n.declarations,(function(n){return e.isClassDeclaration(n)||e.isClassExpression(n)}))[0]),a)}(n,Q(n,i),d));(1536&n.flags&&(!p||function(n){return e.every(R(n),(function(e){return!(111551&Dr(e).flags)}))}(n))||f)&&function(n,t,r){var a=R(n),i=e.arrayToMultiMap(a,(function(e){return e.parent&&e.parent===n?\"real\":\"merged\"})),o=i.get(\"real\")||e.emptyArray,s=i.get(\"merged\")||e.emptyArray;if(e.length(o)){var c=Q(n,t);G(o,c,r,!!(67108880&n.flags))}if(e.length(s)){c=Q(n,t);var l=e.createModuleBlock([e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.map(e.filter(s,(function(e){return\"export=\"!==e.escapedName})),(function(n){var t=e.unescapeLeadingUnderscores(n.escapedName),r=Q(n,t),a=n.declarations&&hr(n),i=a&&Cr(a,!0);M(i||n);var o=i?Q(i,e.unescapeLeadingUnderscores(i.escapedName)):r;return e.createExportSpecifier(t===o?void 0:o,t)}))))]);O(e.createModuleDeclaration(void 0,void 0,e.createIdentifier(c),l,16),0)}}(n,i,d);64&n.flags&&function(n,t,a){var i=ji(n),o=Oi(n),s=e.map(o,(function(e){return m(e,r)})),l=Vi(i),u=e.length(l)?Zc(l):void 0,d=e.flatMap(Xo(i),(function(e){return function(e,n){return c(e,!1,n)}(e,u)})),p=z(0,i,u,164),f=z(1,i,u,165),_=q(i,u),g=e.length(l)?[e.createHeritageClause(89,e.mapDefined(l,(function(e){return J(e)})))]:void 0;O(e.createInterfaceDeclaration(void 0,void 0,Q(n,t),s,g,__spreadArrays(_,f,p,d)),a)}(n,i,d);2097152&n.flags&&B(n,Q(n,i),d);4&n.flags&&\"export=\"===n.escapedName&&U(n);if(8388608&n.flags)for(var _=0,g=n.declarations;_<g.length;_++){var y=g[_],v=wr(y,y.moduleSpecifier);v&&O(e.createExportDeclaration(void 0,void 0,void 0,e.createLiteral(b(v,r))),0)}u&&O(e.createExportAssignment(void 0,void 0,!1,e.createIdentifier(Q(n,i))),0)}(n,t,a);return r=u,d}}function M(n){e.some(n.declarations,e.isParameterDeclaration)||(e.Debug.assertDefined(i),X(e.unescapeLeadingUnderscores(n.escapedName),n),i.set(\"\"+L(n),n))}function O(n,t){var r=0;1&t&&l&&function(n){return e.isSourceFile(n)&&(e.isExternalOrCommonJsModule(n)||e.isJsonSourceFile(n))||e.isAmbientModule(n)&&!e.isGlobalScopeAugmentation(n)}(l)&&x(n)&&(r|=1),!g||1&r||l&&8388608&l.flags||!(e.isEnumDeclaration(n)||e.isVariableStatement(n)||e.isFunctionDeclaration(n)||e.isClassDeclaration(n)||e.isModuleDeclaration(n))||(r|=2),512&t&&(e.isClassDeclaration(n)||e.isInterfaceDeclaration(n)||e.isFunctionDeclaration(n))&&(r|=512),r&&(n.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(r|e.getModifierFlags(n))),n.modifierFlagsCache=0),p.push(n)}function R(n){return n.exports?e.filter(e.arrayFrom(n.exports.values()),(function(e){return!(4194304&e.flags||\"prototype\"===e.escapedName)})):[]}function F(n,t,a,i){for(var o=0,s=_s(n,0);o<s.length;o++){var c=s[o],l=d(c,243,r);l.name=e.createIdentifier(a),O(e.setTextRange(l,c.declaration),i)}1536&t.flags&&t.exports&&t.exports.size||G(e.filter(Xo(n),(function(e){return!(4194304&e.flags||\"prototype\"===e.escapedName)})),a,i,!0)}function G(n,t,a,i){if(e.length(n)){var o=e.arrayToMultiMap(n,(function(n){return!e.length(n.declarations)||e.some(n.declarations,(function(n){return e.getSourceFileOfNode(n)===e.getSourceFileOfNode(r.enclosingDeclaration)}))?\"local\":\"remote\"})).get(\"local\")||e.emptyArray,s=e.createModuleDeclaration(void 0,void 0,e.createIdentifier(t),e.createModuleBlock([]),16);s.flags^=8,s.parent=l,s.locals=e.createSymbolTable(n),s.symbol=n[0].parent;var c=p;p=[];var u=g;g=!1;var d=__assign(__assign({},r),{enclosingDeclaration:s}),m=r;r=d,N(e.createSymbolTable(o),i,!0),r=m,g=u;var f=p;p=c,s.flags^=8,s.parent=void 0,s.locals=void 0,s.symbol=void 0,s.body=e.createModuleBlock(f),O(s,a)}}function B(n,t,a){var i=hr(n);if(!i)return e.Debug.fail();var o=Xr(Cr(i,!0));if(o){var s=e.unescapeLeadingUnderscores(o.escapedName);\"export=\"===s&&(P.esModuleInterop||P.allowSyntheticDefaultImports)&&(s=\"default\");var c=Q(o,s);switch(M(o),i.kind){case 252:var l=!(512&o.flags);O(e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(t),l?C(o,r,67108863,!1):e.createExternalModuleReference(e.createLiteral(b(n,r)))),l?a:0);break;case 251:O(e.createNamespaceExportDeclaration(e.idText(i.name)),0);break;case 254:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(e.createIdentifier(t),void 0),e.createLiteral(b(o.parent||o,r))),0);break;case 255:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(e.createIdentifier(t))),e.createLiteral(b(o,r))),0);break;case 257:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamedImports([e.createImportSpecifier(t!==s?e.createIdentifier(s):void 0,e.createIdentifier(t))])),e.createLiteral(b(o.parent||o,r))),0);break;case 261:var u=i.parent.parent.moduleSpecifier;V(e.unescapeLeadingUnderscores(n.escapedName),u?s:c,u&&e.isStringLiteralLike(u)?e.createLiteral(u.text):void 0);break;case 258:U(n);break;case 208:case 193:\"default\"===n.escapedName||\"export=\"===n.escapedName?U(n):V(t,c);break;default:return e.Debug.failBadSyntaxKind(i,\"Unhandled alias declaration kind in symbol serializer!\")}}}function V(n,t,r){O(e.createExportDeclaration(void 0,void 0,e.createNamedExports([e.createExportSpecifier(n!==t?t:void 0,n)]),r),0)}function U(n){if(!(4194304&n.flags)){var t=e.unescapeLeadingUnderscores(n.escapedName),a=\"export=\"===t,i=a||\"default\"===t,o=n.declarations&&hr(n),s=o&&Cr(o,!0);if(s&&e.length(s.declarations)&&e.some(s.declarations,(function(n){return e.getSourceFileOfNode(n)===e.getSourceFileOfNode(l)}))){var c=i?e.getExportAssignmentExpression(o):e.getPropertyAssignmentAliasLikeExpression(o),u=e.isEntityNameExpression(c)?function(n){switch(n.kind){case 75:return n;case 152:do{n=n.left}while(75!==n.kind);return n;case 193:do{if(e.isModuleExportsAccessExpression(n.expression))return n.name;n=n.expression}while(75!==n.kind);return n}}(c):void 0,d=u&&Rr(u,67108863,!0,!0,l);(d||s)&&M(d||s);var m=r.tracker.trackSymbol;if(r.tracker.trackSymbol=e.noop,i)p.push(e.createExportAssignment(void 0,void 0,a,A(s,r,67108863)));else if(u===c)V(t,e.idText(u));else if(e.isClassExpression(c))V(t,Q(s,e.symbolName(s)));else{var f=X(t,n);O(e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(f),C(s,r,67108863,!1)),0),V(t,f)}r.tracker.trackSymbol=m}else{f=X(t,n);var _=Xd(Ci(n));if(j(_,n))F(_,n,f,i?0:1);else O(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(f,W(_,n))],2)),t===f?1:0);i?p.push(e.createExportAssignment(void 0,void 0,a,e.createIdentifier(f))):t!==f&&V(t,f)}}}function j(n,t){var a=e.getSourceFileOfNode(r.enclosingDeclaration);return 48&e.getObjectFlags(n)&&!vs(n,0)&&!vs(n,1)&&!(!e.length(Xo(n))&&!e.length(_s(n,0)))&&!e.length(_s(n,1))&&!H(t)&&!(n.symbol&&e.some(n.symbol.declarations,(function(n){return e.getSourceFileOfNode(n)!==a})))&&!e.some(Xo(n),(function(e){return so(e.escapedName)}))&&!e.some(Xo(n),(function(n){return e.some(n.declarations,(function(n){return e.getSourceFileOfNode(n)!==a}))}))&&e.every(Xo(n),(function(n){return e.isIdentifierText(e.symbolName(n),w)&&!e.isStringAKeyword(e.symbolName(n))}))}function K(n,t,a){return function(i,o,s){if(o&&2887656&i.flags)return[];if(4194304&i.flags||s&&ms(s,i.escapedName)&&ny(ms(s,i.escapedName))===ny(i)&&(16777216&i.flags)==(16777216&ms(s,i.escapedName).flags)&&hu(Ci(i),Ha(s,i.escapedName)))return[];var c=o?32:0,l=function(n,t){var r=function(n,t){var r=n.nameType;if(r){if(384&r.flags){var a=\"\"+r.value;return e.isIdentifierText(a,P.target)||Df(a)?Df(a)&&e.startsWith(a,\"-\")?e.createComputedPropertyName(e.createLiteral(+a)):D(a):e.createLiteral(a)}if(8192&r.flags)return e.createComputedPropertyName(A(r.symbol,t,111551))}}(n,t);if(r)return r;return D(e.unescapeLeadingUnderscores(n.escapedName))}(i,r),u=e.find(i.declarations,e.or(e.isPropertyDeclaration,e.isAccessor,e.isVariableDeclaration,e.isPropertySignature,e.isBinaryExpression,e.isPropertyAccessExpression));if(98304&i.flags&&a){var p=[];return 65536&i.flags&&p.push(e.setTextRange(e.createSetAccessor(void 0,e.createModifiersFromModifierFlags(c),l,[e.createParameter(void 0,void 0,void 0,\"arg\",void 0,W(Ci(i),i))],void 0),e.find(i.declarations,e.isSetAccessor)||u)),32768&i.flags&&p.push(e.setTextRange(e.createGetAccessor(void 0,e.createModifiersFromModifierFlags(c),l,[],W(Ci(i),i),void 0),e.find(i.declarations,e.isGetAccessor)||u)),p}if(7&i.flags)return e.setTextRange(n(void 0,e.createModifiersFromModifierFlags((ny(i)?64:0)|c),l,16777216&i.flags?e.createToken(57):void 0,W(Ci(i),i),void 0),e.find(i.declarations,e.or(e.isPropertyDeclaration,e.isVariableDeclaration))||u);if(8208&i.flags){for(var m=[],f=0,_=_s(Ci(i),0);f<_.length;f++){var g=_[f],y=d(g,t,r);y.name=l,c&&(y.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(c))),16777216&i.flags&&(y.questionToken=e.createToken(57)),m.push(e.setTextRange(y,g.declaration))}return m}return e.Debug.fail(\"Unhandled class member kind! \"+(i.__debugFlags||i.flags))}}function H(n){return e.find(n.declarations,(function(n){return!!e.getEffectiveTypeAnnotationNode(n)&&!!e.findAncestor(n,(function(e){return e===l}))}))}function W(t,i){var s=H(i);if(s&&!e.isFunctionLikeDeclaration(s)){var c=e.getEffectiveTypeAnnotationNode(s),l=e.visitNode(c,(function t(i){if(e.isJSDocAllType(i))return e.createKeywordTypeNode(124);if(e.isJSDocUnknownType(i))return e.createKeywordTypeNode(147);if(e.isJSDocNullableType(i))return e.createUnionTypeNode([e.visitNode(i.type,t),e.createKeywordTypeNode(99)]);if(e.isJSDocOptionalType(i))return e.createUnionTypeNode([e.visitNode(i.type,t),e.createKeywordTypeNode(145)]);if(e.isJSDocNonNullableType(i))return e.visitNode(i.type,t);if((e.isExpressionWithTypeArguments(i)||e.isTypeReferenceNode(i))&&e.isJSDocIndexSignature(i))return e.createTypeLiteralNode([e.createIndexSignature(void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"x\",void 0,e.visitNode(i.typeArguments[0],t))],e.visitNode(i.typeArguments[1],t))]);if(e.isJSDocFunctionType(i)){var o;return e.isJSDocConstructSignature(i)?e.createConstructorTypeNode(e.visitNodes(i.typeParameters,t),e.mapDefined(i.parameters,(function(n,r){return n.name&&e.isIdentifier(n.name)&&\"new\"===n.name.escapedText?void(o=n.type):e.createParameter(void 0,void 0,n.dotDotDotToken,n.name||n.dotDotDotToken?\"args\":\"arg\"+r,n.questionToken,e.visitNode(n.type,t),void 0)})),e.visitNode(o||i.type,t)):e.createFunctionTypeNode(e.visitNodes(i.typeParameters,t),e.map(i.parameters,(function(n,r){return e.createParameter(void 0,void 0,n.dotDotDotToken,n.name||n.dotDotDotToken?\"args\":\"arg\"+r,n.questionToken,e.visitNode(n.type,t),void 0)})),e.visitNode(i.type,t))}if(e.isLiteralImportTypeNode(i))return e.updateImportTypeNode(i,e.updateLiteralTypeNode(i.argument,function(t,i){if(a){if(r.tracker&&r.tracker.moduleResolverHost){var o=Bb(t);if(o){var s={getCanonicalFileName:e.createGetCanonicalFileName(!!n.useCaseSensitiveFileNames),getCurrentDirectory:r.tracker.moduleResolverHost.getCurrentDirectory?function(){return r.tracker.moduleResolverHost.getCurrentDirectory()}:function(){return\"\"},getCommonSourceDirectory:function(){return r.tracker.moduleResolverHost.getCommonSourceDirectory()}},c=e.getResolvedExternalModuleName(s,o);return e.createLiteral(c)}}}else if(r.tracker&&r.tracker.trackExternalModuleSymbolOfImportTypeNode){var l=Fr(i,i,void 0);l&&r.tracker.trackExternalModuleSymbolOfImportTypeNode(l)}return i}(i,i.argument.literal)),i.qualifier,e.visitNodes(i.typeArguments,t,e.isTypeNode),i.isTypeOf);if(e.isEntityName(i)||e.isEntityNameExpression(i)){var s=Rr(e.getFirstIdentifier(i),67108863,!0,!0);if(s&&(M(s),e.isIdentifier(i)&&262144&s.flags)){var c=S(Yi(s),r);return e.idText(c)!==e.idText(i)?c:i}}return e.visitEachChild(i,t,e.nullTransformationContext)}));return l===c?e.getMutableClone(c):l}var u=r.flags;8192&t.flags&&t.symbol===i&&(r.flags|=1048576);var d=o(t,r);return r.flags=u,d}function z(n,t,a,i){var o=_s(t,n);if(1===n){if(!a&&e.every(o,(function(n){return 0===e.length(n.parameters)})))return[];if(a){var s=_s(a,1);if(!e.length(s)&&e.every(o,(function(n){return 0===e.length(n.parameters)})))return[];if(s.length===o.length){for(var c=!1,l=0;l<s.length;l++)if(!ld(o[l],s[l],!1,!1,!0,bu)){c=!0;break}if(!c)return[]}}}for(var u=[],p=0,m=o;p<m.length;p++){var f=m[p],_=d(f,i,r);u.push(e.setTextRange(_,f.declaration))}return u}function q(e,n){for(var t=[],a=0,i=[0,1];a<i.length;a++){var o=i[a],s=vs(e,o);if(s){if(n){var c=vs(n,o);if(c&&hu(s.type,c.type))continue}t.push(u(s,o,r))}}return t}function J(n){var t,a;if(n.target&&_a(n.target.symbol,l,111551,!1)?(t=e.map(ic(n),(function(e){return o(e,r)})),a=A(n.target.symbol,r,788968)):n.symbol&&_a(n.symbol,l,111551,!1)&&(a=A(n.symbol,r,788968)),a)return e.createExpressionWithTypeArguments(t,a)}function X(e,n){if(n&&r.remappedSymbolNames.has(\"\"+L(n)))return r.remappedSymbolNames.get(\"\"+L(n));n&&(e=Y(n,e));for(var t=0,a=e;r.usedSymbolNames.has(e);)e=a+\"_\"+ ++t;return r.usedSymbolNames.set(e,!0),n&&r.remappedSymbolNames.set(\"\"+L(n),e),e}function Y(n,t){if(\"default\"===t||\"__class\"===t||\"__function\"===t){var a=r.flags;r.flags|=16777216;var i=wa(n,r);r.flags=a,t=i.length>0&&e.isSingleOrDoubleQuote(i.charCodeAt(0))?e.stripQuotes(i):i}return\"default\"===t?t=\"_default\":\"export=\"===t&&(t=\"_exports\"),t=e.isIdentifierText(t,w)&&!e.isStringANonContextualKeyword(t)?t:\"_\"+t.replace(/[^a-zA-Z0-9]/g,\"_\")}function Q(e,n){return r.remappedSymbolNames.has(\"\"+L(e))?r.remappedSymbolNames.get(\"\"+L(e)):(n=Y(e,n),r.remappedSymbolNames.set(\"\"+L(e),n),n)}}(r,t,c)}))}};function t(t,r,a,i){e.Debug.assert(void 0===t||0==(8&t.flags));var o={enclosingDeclaration:t,flags:r||0,tracker:a&&a.trackSymbol?a:{trackSymbol:e.noop,moduleResolverHost:134217728&r?{getCommonSourceDirectory:n.getCommonSourceDirectory?function(){return n.getCommonSourceDirectory()}:function(){return\"\"},getSourceFiles:function(){return n.getSourceFiles()},getCurrentDirectory:e.maybeBind(n,n.getCurrentDirectory),getProbableSymlinks:e.maybeBind(n,n.getProbableSymlinks)}:void 0},encounteredError:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0},s=i(o);return o.encounteredError?void 0:s}function a(n){return n.truncating?n.truncating:n.truncating=!(1&n.flags)&&n.approximateLength>e.defaultMaximumTruncationLength}function o(n,t){r&&r.throwIfCancellationRequested&&r.throwIfCancellationRequested();var i=8388608&t.flags;if(t.flags&=-8388609,n){if(1&n.flags)return t.approximateLength+=3,e.createKeywordTypeNode(124);if(2&n.flags)return e.createKeywordTypeNode(147);if(4&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(142);if(8&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(139);if(64&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(150);if(16&n.flags)return t.approximateLength+=7,e.createKeywordTypeNode(127);if(1024&n.flags&&!(1048576&n.flags)){var m=Qr(n.symbol),f=E(m,t,788968);return Yi(m)===n?f:F(f,e.createTypeReferenceNode(e.symbolName(n.symbol),void 0))}if(1056&n.flags)return E(n.symbol,t,788968);if(128&n.flags)return t.approximateLength+=n.value.length+2,e.createLiteralTypeNode(e.setEmitFlags(e.createLiteral(n.value),16777216));if(256&n.flags){var _=n.value;return t.approximateLength+=(\"\"+_).length,e.createLiteralTypeNode(_<0?e.createPrefix(40,e.createLiteral(-_)):e.createLiteral(_))}if(2048&n.flags)return t.approximateLength+=e.pseudoBigIntToString(n.value).length+1,e.createLiteralTypeNode(e.createLiteral(n.value));if(512&n.flags)return t.approximateLength+=n.intrinsicName.length,\"true\"===n.intrinsicName?e.createTrue():e.createFalse();if(8192&n.flags){if(!(1048576&t.flags)){if(va(n.symbol,t.enclosingDeclaration))return t.approximateLength+=6,E(n.symbol,t,111551);t.tracker.reportInaccessibleUniqueSymbolError&&t.tracker.reportInaccessibleUniqueSymbolError()}return t.approximateLength+=13,e.createTypeOperatorNode(146,e.createKeywordTypeNode(143))}if(16384&n.flags)return t.approximateLength+=4,e.createKeywordTypeNode(109);if(32768&n.flags)return t.approximateLength+=9,e.createKeywordTypeNode(145);if(65536&n.flags)return t.approximateLength+=4,e.createKeywordTypeNode(99);if(131072&n.flags)return t.approximateLength+=5,e.createKeywordTypeNode(136);if(4096&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(143);if(67108864&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(140);if(pl(n))return 4194304&t.flags&&(t.encounteredError||32768&t.flags||(t.encounteredError=!0),t.tracker.reportInaccessibleThisError&&t.tracker.reportInaccessibleThisError()),t.approximateLength+=4,e.createThis();if(!i&&n.aliasSymbol&&(16384&t.flags||ya(n.aliasSymbol,t.enclosingDeclaration))){var g=l(n.aliasTypeArguments,t);return!la(n.aliasSymbol.escapedName)||32&n.aliasSymbol.flags?E(n.aliasSymbol,t,788968,g):e.createTypeReferenceNode(e.createIdentifier(\"\"),g)}var y=e.getObjectFlags(n);if(4&y)return e.Debug.assert(!!(524288&n.flags)),n.node?R(n,w):w(n);if(262144&n.flags||3&y){if(262144&n.flags&&e.contains(t.inferTypeParameters,n))return t.approximateLength+=e.symbolName(n.symbol).length+6,e.createInferTypeNode(p(n,t,void 0));if(4&t.flags&&262144&n.flags&&!ya(n.symbol,t.enclosingDeclaration)){var v=S(n,t);return t.approximateLength+=e.idText(v).length,e.createTypeReferenceNode(e.createIdentifier(e.idText(v)),void 0)}return n.symbol?E(n.symbol,t,788968):e.createTypeReferenceNode(e.createIdentifier(\"?\"),void 0)}if(3145728&n.flags){var h=1048576&n.flags?function(e){for(var n=[],t=0,r=0;r<e.length;r++){var a=e[r];if(t|=a.flags,!(98304&a.flags)){if(1536&a.flags){var i=512&a.flags?Ne:zi(a);if(1048576&i.flags){var o=i.types.length;if(r+o<=e.length&&Gl(e[r+o-1])===Gl(i.types[o-1])){n.push(i),r+=o-1;continue}}}n.push(a)}}65536&t&&n.push(Ee);32768&t&&n.push(ve);return n||e}(n.types):n.types;if(1===e.length(h))return o(h[0],t);var b=l(h,t,!0);return b&&b.length>0?e.createUnionOrIntersectionTypeNode(1048576&n.flags?177:178,b):void(t.encounteredError||262144&t.flags||(t.encounteredError=!0))}if(48&y)return e.Debug.assert(!!(524288&n.flags)),O(n);if(4194304&n.flags){var T=n.type;t.approximateLength+=6;var C=o(T,t);return e.createTypeOperatorNode(C)}if(8388608&n.flags){var A=o(n.objectType,t);C=o(n.indexType,t);return t.approximateLength+=2,e.createIndexedAccessTypeNode(A,C)}if(16777216&n.flags){var D=o(n.checkType,t),k=t.inferTypeParameters;t.inferTypeParameters=n.root.inferTypeParameters;var N=o(n.extendsType,t);t.inferTypeParameters=k;var I=o(Sl(n),t),M=o(xl(n),t);return t.approximateLength+=15,e.createConditionalTypeNode(D,N,I,M)}return 33554432&n.flags?o(n.typeVariable,t):e.Debug.fail(\"Should be unreachable.\")}function O(n){var r=\"\"+n.id,a=n.symbol;if(a){if(_g(a.valueDeclaration)){var i=n===ji(a)?788968:111551;return E(a,t,i)}if(32&a.flags&&!Ti(a)&&!(213===a.valueDeclaration.kind&&2048&t.flags)||896&a.flags||function(){var n=!!(8192&a.flags)&&e.some(a.declarations,(function(n){return e.hasModifier(n,32)})),i=!!(16&a.flags)&&(a.parent||e.forEach(a.declarations,(function(e){return 288===e.parent.kind||249===e.parent.kind})));if(n||i)return(!!(4096&t.flags)||t.visitedTypes&&t.visitedTypes.has(r))&&(!(8&t.flags)||va(a,t.enclosingDeclaration))}())return E(a,t,111551);if(t.visitedTypes&&t.visitedTypes.has(r)){var o=function(n){if(n.symbol&&2048&n.symbol.flags){var t=e.findAncestor(n.symbol.declarations[0].parent,(function(e){return 181!==e.kind}));if(246===t.kind)return Yr(t)}return}(n);return o?E(o,t,788968):s(t)}return R(n,P)}return P(n)}function R(n,r){var a,i=\"\"+n.id,o=16&e.getObjectFlags(n)&&n.symbol&&32&n.symbol.flags,c=4&e.getObjectFlags(n)&&n.node?\"N\"+x(n.node):n.symbol?(o?\"+\":\"\")+L(n.symbol):void 0;if(t.visitedTypes||(t.visitedTypes=e.createMap()),c&&!t.symbolDepth&&(t.symbolDepth=e.createMap()),c){if((a=t.symbolDepth.get(c)||0)>10)return s(t);t.symbolDepth.set(c,a+1)}t.visitedTypes.set(i,!0);var l=r(n);return t.visitedTypes.delete(i),c&&t.symbolDepth.set(c,a),l}function P(n){if(Ho(n))return function(n){e.Debug.assert(!!(524288&n.flags));var r,a=n.declaration.readonlyToken?e.createToken(n.declaration.readonlyToken.kind):void 0,i=n.declaration.questionToken?e.createToken(n.declaration.questionToken.kind):void 0;r=Bo(n)?e.createTypeOperatorNode(o(Vo(n),t)):o(wo(n),t);var s=p(Po(n),t,r),c=o(Fo(n),t),l=e.createMappedTypeNode(a,s,i,c);return t.approximateLength+=10,e.setEmitFlags(l,1)}(n);var r=Wo(n);if(!r.properties.length&&!r.stringIndexInfo&&!r.numberIndexInfo){if(!r.callSignatures.length&&!r.constructSignatures.length)return t.approximateLength+=2,e.setEmitFlags(e.createTypeLiteralNode(void 0),1);if(1===r.callSignatures.length&&!r.constructSignatures.length)return d(r.callSignatures[0],169,t);if(1===r.constructSignatures.length&&!r.callSignatures.length)return d(r.constructSignatures[0],170,t)}var i=t.flags;t.flags|=4194304;var l=function(n){if(a(t))return[e.createPropertySignature(void 0,\"...\",void 0,void 0,void 0)];for(var r=[],i=0,o=n.callSignatures;i<o.length;i++){var l=o[i];r.push(d(l,164,t))}for(var p=0,m=n.constructSignatures;p<m.length;p++){l=m[p];r.push(d(l,165,t))}if(n.stringIndexInfo){var f=void 0;2048&n.objectFlags?(f=u(Xs(me,n.stringIndexInfo.isReadonly,n.stringIndexInfo.declaration),0,t)).type=s(t):f=u(n.stringIndexInfo,0,t),r.push(f)}n.numberIndexInfo&&r.push(u(n.numberIndexInfo,1,t));var _=n.properties;if(!_)return r;for(var g=0,y=0,v=_;y<v.length;y++){var h=v[y];if(g++,2048&t.flags){if(4194304&h.flags)continue;24&e.getDeclarationModifierFlagsFromSymbol(h)&&t.tracker.reportPrivateInBaseOfClassExpression&&t.tracker.reportPrivateInBaseOfClassExpression(e.unescapeLeadingUnderscores(h.escapedName))}if(a(t)&&g+2<_.length-1){r.push(e.createPropertySignature(void 0,\"... \"+(_.length-g)+\" more ...\",void 0,void 0,void 0)),c(_[_.length-1],t,r);break}c(h,t,r)}return r.length?r:void 0}(r);t.flags=i;var m=e.createTypeLiteralNode(l);return t.approximateLength+=2,e.setEmitFlags(m,1024&t.flags?0:1)}function w(n){var r=ic(n);if(n.target===cn||n.target===ln){if(2&t.flags){var a=o(r[0],t);return e.createTypeReferenceNode(n.target===cn?\"Array\":\"ReadonlyArray\",[a])}var i=o(r[0],t),s=e.createArrayTypeNode(i);return n.target===cn?s:e.createTypeOperatorNode(137,s)}if(!(8&n.target.objectFlags)){if(2048&t.flags&&n.symbol.valueDeclaration&&e.isClassLike(n.symbol.valueDeclaration)&&!va(n.symbol,t.enclosingDeclaration))return O(n);var c=n.target.outerTypeParameters,u=(L=0,void 0);if(c)for(var d=c.length;L<d;){var p=L,m=$s(c[L]);do{L++}while(L<d&&$s(c[L])===m);if(!e.rangeEquals(c,r,p,L)){var f=l(r.slice(p,L),t),_=t.flags;t.flags|=16;var g=E(m,t,788968,f);t.flags=_,u=u?F(u,g):g}}var y=void 0;if(r.length>0){var v=(n.target.typeParameters||e.emptyArray).length;y=l(r.slice(L,v),t)}var h=t.flags;t.flags|=16;var b=E(n.symbol,t,788968,y);return t.flags=h,u?F(u,b):b}if(r.length>0){var T=oc(n),S=l(r.slice(0,T),t),x=n.target.hasRestElement;if(S){for(var L=n.target.minLength;L<Math.min(T,S.length);L++)S[L]=x&&L===T-1?e.createRestTypeNode(e.createArrayTypeNode(S[L])):e.createOptionalTypeNode(S[L]);var C=e.createTupleTypeNode(S);return n.target.readonly?e.createTypeOperatorNode(137,C):C}}if(t.encounteredError||524288&t.flags){C=e.createTupleTypeNode([]);return n.target.readonly?e.createTypeOperatorNode(137,C):C}t.encounteredError=!0}function F(n,t){if(e.isImportTypeNode(n)){var r=n.typeArguments;n.qualifier&&((e.isIdentifier(n.qualifier)?n.qualifier:n.qualifier.right).typeArguments=r),n.typeArguments=t.typeArguments;for(var a=0,i=G(t);a<i.length;a++){var o=i[a];n.qualifier=n.qualifier?e.createQualifiedName(n.qualifier,o):o}return n}r=n.typeArguments;(e.isIdentifier(n.typeName)?n.typeName:n.typeName.right).typeArguments=r,n.typeArguments=t.typeArguments;for(var s=0,c=G(t);s<c.length;s++){o=c[s];n.typeName=e.createQualifiedName(n.typeName,o)}return n}function G(n){for(var t=n.typeName,r=[];!e.isIdentifier(t);)r.unshift(t.right),t=t.left;return r.unshift(t),r}t.encounteredError=!0}function s(n){return n.approximateLength+=3,1&n.flags?e.createKeywordTypeNode(124):e.createTypeReferenceNode(e.createIdentifier(\"...\"),void 0)}function c(n,t,r){var a=!!(8192&e.getCheckFlags(n)),i=a&&33554432&t.flags?me:Ci(n),c=t.enclosingDeclaration;if(t.enclosingDeclaration=void 0,t.tracker.trackSymbol&&4096&e.getCheckFlags(n)){var l=e.first(n.declarations);if(co(l))if(e.isBinaryExpression(l)){var u=e.getNameOfDeclaration(l);u&&e.isElementAccessExpression(u)&&e.isPropertyAccessEntityNameExpression(u.argumentExpression)&&_(u.argumentExpression,c,t)}else _(l.name.expression,c,t)}var p=C(n,t,111551,!0);t.approximateLength+=e.symbolName(n).length+1,t.enclosingDeclaration=c;var m=16777216&n.flags?e.createToken(57):void 0;if(8208&n.flags&&!zo(i).length&&!ny(n))for(var f=0,g=_s(am(i,(function(e){return!(32768&e.flags)})),0);f<g.length;f++){var y=d(g[f],159,t);y.name=p,y.questionToken=m,r.push(T(y))}else{var v=t.flags;t.flags|=a?33554432:0;var h=void 0;h=a&&33554432&v?s(t):i?o(i,t):e.createKeywordTypeNode(124),t.flags=v;var b=ny(n)?[e.createToken(137)]:void 0;b&&(t.approximateLength+=9);var E=e.createPropertySignature(b,p,m,h,void 0);r.push(T(E))}function T(t){if(e.some(n.declarations,(function(e){return 316===e.kind}))){var r=e.find(n.declarations,(function(e){return 316===e.kind})).comment;r&&e.setSyntheticLeadingComments(t,[{kind:3,text:\"*\\n * \"+r.replace(/\\n/g,\"\\n * \")+\"\\n \",pos:-1,end:-1,hasTrailingNewLine:!0}])}else n.valueDeclaration&&e.setCommentRange(t,n.valueDeclaration);return t}}function l(n,t,r){if(e.some(n)){if(a(t)){if(!r)return[e.createTypeReferenceNode(\"...\",void 0)];if(n.length>2)return[o(n[0],t),e.createTypeReferenceNode(\"... \"+(n.length-2)+\" more ...\",void 0),o(n[n.length-1],t)]}for(var i=[],s=0,c=0,l=n;c<l.length;c++){var u=l[c];if(s++,a(t)&&s+2<n.length-1){i.push(e.createTypeReferenceNode(\"... \"+(n.length-s)+\" more ...\",void 0));var d=o(n[n.length-1],t);d&&i.push(d);break}t.approximateLength+=2;var p=o(u,t);p&&i.push(p)}return i}}function u(n,t,r){var a=e.getNameFromIndexInfo(n)||\"x\",i=e.createKeywordTypeNode(0===t?142:139),s=e.createParameter(void 0,void 0,void 0,a,void 0,i,void 0),c=o(n.type||me,r);return n.type||2097152&r.flags||(r.encounteredError=!0),r.approximateLength+=a.length+4,e.createIndexSignature(void 0,n.isReadonly?[e.createToken(137)]:void 0,[s],c)}function d(n,t,r){var a,i;32&r.flags&&n.target&&n.mapper&&n.target.typeParameters?i=n.target.typeParameters.map((function(e){return o(uu(e,n.mapper),r)})):a=n.typeParameters&&n.typeParameters.map((function(e){return m(e,r)}));var s,c=To(n).map((function(e){return f(e,r,161===t)}));if(n.thisParameter){var l=f(n.thisParameter,r);c.unshift(l)}var u=Ps(n);if(u){var d=2===u.kind||3===u.kind?e.createToken(123):void 0,p=1===u.kind||3===u.kind?e.setEmitFlags(e.createIdentifier(u.parameterName),16777216):e.createThisTypeNode(),_=u.type&&o(u.type,r);s=e.createTypePredicateNodeWithModifier(d,p,_)}else{var g=ws(n);s=g&&o(g,r)}return 256&r.flags?s&&124===s.kind&&(s=void 0):s||(s=e.createKeywordTypeNode(124)),r.approximateLength+=3,e.createSignatureDeclaration(t,a,c,s,i)}function p(n,t,r){var a=t.flags;t.flags&=-513;var i=S(n,t),s=ss(n),c=s&&o(s,t);return t.flags=a,e.createTypeParameterDeclaration(i,r,c)}function m(e,n,t){return void 0===t&&(t=Qo(e)),p(e,n,t&&o(t,n))}function f(n,t,r){var a=e.getDeclarationOfKind(n,155);a||Yt(n)||(a=e.getDeclarationOfKind(n,310));var i=Ci(n);a&&Eb(a)&&(i=Pd(i));var s=o(i,t),c=!(8192&t.flags)&&r&&a&&a.modifiers?a.modifiers.map(e.getSynthesizedClone):void 0,l=a&&e.isRestParameter(a)||32768&e.getCheckFlags(n)?e.createToken(25):void 0,u=a&&a.name?75===a.name.kind?e.setEmitFlags(e.getSynthesizedClone(a.name),16777216):152===a.name.kind?e.setEmitFlags(e.getSynthesizedClone(a.name.right),16777216):function n(r){t.tracker.trackSymbol&&e.isComputedPropertyName(r)&&oo(r)&&_(r.expression,t.enclosingDeclaration,t);var a=e.visitEachChild(r,n,e.nullTransformationContext,void 0,n),i=e.nodeIsSynthesized(a)?a:e.getSynthesizedClone(a);return 190===i.kind&&(i.initializer=void 0),e.setEmitFlags(i,16777217)}(a.name):e.symbolName(n),d=a&&Ls(a)||16384&e.getCheckFlags(n)?e.createToken(57):void 0,p=e.createParameter(void 0,c,l,u,d,s,void 0);return t.approximateLength+=e.symbolName(n).length+3,p}function _(n,t,r){if(r.tracker.trackSymbol){var a=e.getFirstIdentifier(n),i=ur(a,a.escapedText,1160127,void 0,void 0,!0);i&&r.tracker.trackSymbol(i,t,111551)}}function g(e,n,t,r){return n.tracker.trackSymbol(e,n.enclosingDeclaration,t),y(e,n,t,r)}function y(n,t,r,a){var i;return 262144&n.flags||!(t.enclosingDeclaration||64&t.flags)||134217728&t.flags?i=[n]:(i=e.Debug.assertDefined(function n(r,i,o){var s,c=_a(r,t.enclosingDeclaration,i,!!(128&t.flags));if(!c||ga(c[0],t.enclosingDeclaration,1===c.length?i:fa(i))){var l=Zr(c?c[0]:r,t.enclosingDeclaration);if(e.length(l)){s=l.map((function(n){return e.some(n.declarations,Ta)?b(n,t):void 0}));var u=l.map((function(e,n){return n}));u.sort((function(n,t){var r=s[n],a=s[t];if(r&&a){var i=e.pathIsRelative(a);return e.pathIsRelative(r)===i?e.moduleSpecifiers.countPathComponents(r)-e.moduleSpecifiers.countPathComponents(a):i?-1:1}return 0}));for(var d=u.map((function(e){return l[e]})),p=0,m=d;p<m.length;p++){var f=m[p],_=n(f,fa(i),!1);if(_){if(f.exports&&f.exports.get(\"export=\")&&ea(f.exports.get(\"export=\"),r)){c=_;break}c=_.concat(c||[$r(f,r)||r]);break}}}}if(c)return c;if(o||!(6144&r.flags)){if(!o&&!a&&e.forEach(r.declarations,Ta))return;return[r]}}(n,r,!0)),e.Debug.assert(i&&i.length>0)),i}function v(n,t){var r;return 524384&Ch(n).flags&&(r=e.createNodeArray(e.map(Oi(n),(function(e){return m(e,t)})))),r}function h(n,t,r){e.Debug.assert(n&&0<=t&&t<n.length);var a=n[t],i=\"\"+L(a);if(!r.typeParameterSymbolList||!r.typeParameterSymbolList.get(i)){var o;if((r.typeParameterSymbolList||(r.typeParameterSymbolList=e.createMap())).set(i,!0),512&r.flags&&t<n.length-1){var s=a,c=n[t+1];if(1&e.getCheckFlags(c)){var u=function(n){return e.concatenate(Mi(n),Oi(n))}(2097152&s.flags?kr(s):s);o=l(e.map(u,c.mapper),r)}else o=v(a,r)}return o}}function b(t,r){var a=e.getDeclarationOfKind(t,288);if(a&&void 0!==a.moduleName)return a.moduleName;if(!a){if(r.tracker.trackReferencedAmbientModule){var o=e.filter(t.declarations,e.isAmbientModule);if(e.length(o))for(var s=0,c=o;s<c.length;s++){var l=c[s];r.tracker.trackReferencedAmbientModule(l,t)}}if(i.test(t.escapedName))return t.escapedName.substring(1,t.escapedName.length-1)}if(!r.enclosingDeclaration||!r.tracker.moduleResolverHost)return i.test(t.escapedName)?t.escapedName.substring(1,t.escapedName.length-1):e.getSourceFileOfNode(e.getNonAugmentationDeclaration(t)).fileName;var u=e.getSourceFileOfNode(e.getOriginalNode(r.enclosingDeclaration)),d=ir(t),p=d.specifierCache&&d.specifierCache.get(u.path);if(!p){var m=P.out||P.outFile,f=r.tracker.moduleResolverHost,_=m?__assign(__assign({},P),{baseUrl:f.getCommonSourceDirectory()}):P;p=e.first(e.moduleSpecifiers.getModuleSpecifiers(t,_,u,f,n.getSourceFiles(),{importModuleSpecifierPreference:m?\"non-relative\":\"relative\"},n.redirectTargetsMap)),d.specifierCache=d.specifierCache||e.createMap(),d.specifierCache.set(u.path,p)}return p}function E(n,t,r,a){var i=g(n,t,r,!(16384&t.flags)),o=111551===r;if(e.some(i[0].declarations,Ta)){var s=i.length>1?y(i,i.length-1,1):void 0,c=a||h(i,0,t),l=b(i[0],t);!(67108864&t.flags)&&e.getEmitModuleResolutionKind(P)===e.ModuleResolutionKind.NodeJs&&l.indexOf(\"/node_modules/\")>=0&&(t.encounteredError=!0,t.tracker.reportLikelyUnsafeImportRequiredError&&t.tracker.reportLikelyUnsafeImportRequiredError(l));var u=e.createLiteralTypeNode(e.createLiteral(l));if(t.tracker.trackExternalModuleSymbolOfImportTypeNode&&t.tracker.trackExternalModuleSymbolOfImportTypeNode(i[0]),t.approximateLength+=l.length+10,!s||e.isEntityName(s)){if(s)(f=e.isIdentifier(s)?s:s.right).typeArguments=void 0;return e.createImportTypeNode(u,s,c,o)}var d=function n(t){return e.isIndexedAccessTypeNode(t.objectType)?n(t.objectType):t}(s),p=d.objectType.typeName;return e.createIndexedAccessTypeNode(e.createImportTypeNode(u,p,c,o),d.indexType)}var m=y(i,i.length-1,0);if(e.isIndexedAccessTypeNode(m))return m;if(o)return e.createTypeQueryNode(m);var f,_=(f=e.isIdentifier(m)?m:m.right).typeArguments;return f.typeArguments=void 0,e.createTypeReferenceNode(m,_);function y(n,r,i){var o,s=r===n.length-1?a:h(n,r,t),c=n[r],l=n[r-1];if(0===r)t.flags|=16777216,o=wa(c,t),t.approximateLength+=(o?o.length:0)+1,t.flags^=16777216;else if(l&&Wr(l)){var u=Wr(l);e.forEachEntry(u,(function(n,t){if(ea(n,c)&&!so(t)&&\"export=\"!==t)return o=e.unescapeLeadingUnderscores(t),!0}))}if(o||(o=wa(c,t)),t.approximateLength+=o.length+1,!(16&t.flags)&&l&&fo(l)&&fo(l).get(c.escapedName)&&ea(fo(l).get(c.escapedName),c)){var d=y(n,r-1,i);return e.isIndexedAccessTypeNode(d)?e.createIndexedAccessTypeNode(d,e.createLiteralTypeNode(e.createLiteral(o))):e.createIndexedAccessTypeNode(e.createTypeReferenceNode(d,s),e.createLiteralTypeNode(e.createLiteral(o)))}var p=e.setEmitFlags(e.createIdentifier(o,s),16777216);if(p.symbol=c,r>i){d=y(n,r-1,i);return e.isEntityName(d)?e.createQualifiedName(d,p):e.Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\")}return p}}function T(e,n){return!!ur(n.enclosingDeclaration,e,788968,void 0,e,!1)}function S(n,t){if(4&t.flags&&t.typeParameterNames){var r=t.typeParameterNames.get(\"\"+Bc(n));if(r)return r}var a=C(n.symbol,t,788968,!0);if(!(75&a.kind))return e.createIdentifier(\"(Missing type parameter)\");if(4&t.flags){for(var i=a.escapedText,o=0,s=i;t.typeParameterNamesByText&&t.typeParameterNamesByText.get(s)||T(s,t);)s=i+\"_\"+ ++o;s!==i&&(a=e.createIdentifier(s,a.typeArguments)),(t.typeParameterNames||(t.typeParameterNames=e.createMap())).set(\"\"+Bc(n),a),(t.typeParameterNamesByText||(t.typeParameterNamesByText=e.createMap())).set(a.escapedText,!0)}return a}function C(n,t,r,a){var i=g(n,t,r);return!a||1===i.length||t.encounteredError||65536&t.flags||(t.encounteredError=!0),function n(r,a){var i=h(r,a,t),o=r[a];0===a&&(t.flags|=16777216);var s=wa(o,t);0===a&&(t.flags^=16777216);var c=e.setEmitFlags(e.createIdentifier(s,i),16777216);return c.symbol=o,a>0?e.createQualifiedName(n(r,a-1),c):c}(i,i.length-1)}function A(n,t,r){var a=g(n,t,r);return function n(r,a){var i=h(r,a,t),o=r[a];0===a&&(t.flags|=16777216);var s=wa(o,t);0===a&&(t.flags^=16777216);var c=s.charCodeAt(0);if(e.isSingleOrDoubleQuote(c)&&e.some(o.declarations,Ta))return e.createLiteral(b(o,t));var l=e.isIdentifierStart(c,w);if(0===a||l){var u=e.setEmitFlags(e.createIdentifier(s,i),16777216);return u.symbol=o,a>0?e.createPropertyAccess(n(r,a-1),u):u}91===c&&(s=s.substring(1,s.length-1),c=s.charCodeAt(0));var d=void 0;return e.isSingleOrDoubleQuote(c)?(d=e.createLiteral(s.substring(1,s.length-1).replace(/\\\\./g,(function(e){return e.substring(1)})))).singleQuote=39===c:\"\"+ +s===s&&(d=e.createLiteral(+s)),d||((d=e.setEmitFlags(e.createIdentifier(s,i),16777216)).symbol=o),e.createElementAccess(n(r,a-1),d)}(a,a.length-1)}function D(n){return e.isIdentifierText(n,P.target)?e.createIdentifier(n):e.createLiteral(Df(n)?+n:n)}}(),X=e.createSymbolTable(),Y=Xt(4,\"undefined\");Y.declarations=[];var Q=Xt(1536,\"globalThis\",8);Q.exports=X,X.set(Q.escapedName,Q);var Z,$=Xt(4,\"arguments\"),ee=Xt(4,\"require\"),ne={getNodeCount:function(){return e.sum(n.getSourceFiles(),\"nodeCount\")},getIdentifierCount:function(){return e.sum(n.getSourceFiles(),\"identifierCount\")},getSymbolCount:function(){return e.sum(n.getSourceFiles(),\"symbolCount\")+_},getTypeCount:function(){return f},getRelationCacheSizes:function(){return{assignable:Bt.size,identity:Ut.size,subtype:Gt.size}},isUndefinedSymbol:function(e){return e===Y},isArgumentsSymbol:function(e){return e===$},isUnknownSymbol:function(e){return e===de},getMergedSymbol:Xr,getDiagnostics:qh,getGlobalDiagnostics:function(){return Jh(),Rt.getGlobalDiagnostics()},getTypeOfSymbolAtLocation:function(n,t){return(t=e.getParseTreeNode(t))?function(n,t){if(n=n.exportSymbol||n,75===t.kind&&(e.isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent),e.isExpressionNode(t)&&!e.isAssignmentTarget(t))){var r=Oy(t);if(na(or(t).resolvedSymbol)===n)return r}return Ci(n)}(n,t):ge},getSymbolsOfParameterPropertyDeclaration:function(n,t){var r=e.getParseTreeNode(n,e.isParameter);return void 0===r?e.Debug.fail(\"Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.\"):function(n,t){var r=n.parent,a=n.parent.parent,i=cr(r.locals,t,111551),o=cr(fo(a.symbol),t,111551);if(i&&o)return[i,o];return e.Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\")}(r,e.escapeLeadingUnderscores(t))},getDeclaredTypeOfSymbol:Yi,getPropertiesOfType:Xo,getPropertyOfType:function(n,t){return ms(n,e.escapeLeadingUnderscores(t))},getTypeOfPropertyOfType:function(n,t){return Ha(n,e.escapeLeadingUnderscores(t))},getIndexInfoOfType:vs,getSignaturesOfType:_s,getIndexTypeOfType:hs,getBaseTypes:Vi,getBaseTypeOfLiteralType:Ed,getWidenedType:Xd,getTypeFromTypeNode:function(n){var t=e.getParseTreeNode(n,e.isTypeNode);return t?Kl(t):ge},getParameterType:Ag,getPromisedTypeOfPromise:rv,getReturnTypeOfSignature:ws,isNullableType:a_,getNullableType:Rd,getNonNullableType:wd,getNonOptionalType:Bd,getTypeArguments:ic,typeToTypeNode:J.typeToTypeNode,indexInfoToIndexSignatureDeclaration:J.indexInfoToIndexSignatureDeclaration,signatureToSignatureDeclaration:J.signatureToSignatureDeclaration,symbolToEntityName:J.symbolToEntityName,symbolToExpression:J.symbolToExpression,symbolToTypeParameterDeclarations:J.symbolToTypeParameterDeclarations,symbolToParameterDeclaration:J.symbolToParameterDeclaration,typeParameterToDeclaration:J.typeParameterToDeclaration,getSymbolsInScope:function(n,t){return(n=e.getParseTreeNode(n))?function(n,t){if(16777216&n.flags)return[];var r=e.createSymbolTable(),a=!1;return i(),r.delete(\"this\"),Ts(r);function i(){for(;n;){switch(n.locals&&!sr(n)&&s(n.locals,t),n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;case 248:s(Yr(n).exports,2623475&t);break;case 247:s(Yr(n).exports,8&t);break;case 213:n.name&&o(n.symbol,t);case 244:case 245:a||s(fo(Yr(n)),788968&t);break;case 200:n.name&&o(n.symbol,t)}e.introducesArgumentsExoticObject(n)&&o($,t),a=e.hasModifier(n,32),n=n.parent}s(X,t)}function o(n,t){if(e.getCombinedLocalAndExportSymbolFlags(n)&t){var a=n.escapedName;r.has(a)||r.set(a,n)}}function s(e,n){n&&e.forEach((function(e){o(e,n)}))}}(n,t):[]},getSymbolAtLocation:function(n){return(n=e.getParseTreeNode(n))?nb(n):void 0},getShorthandAssignmentValueSymbol:function(n){return(n=e.getParseTreeNode(n))?function(e){if(e&&280===e.kind)return Rr(e.name,2208703);return}(n):void 0},getExportSpecifierLocalTargetSymbol:function(n){var t=e.getParseTreeNode(n,e.isExportSpecifier);return t?function(e){return e.parent.parent.moduleSpecifier?Sr(e.parent.parent,e):Rr(e.propertyName||e.name,2998271)}(t):void 0},getExportSymbolOfSymbol:function(e){return Xr(e.exportSymbol||e)},getTypeAtLocation:function(n){return(n=e.getParseTreeNode(n))?tb(n):ge},getTypeOfAssignmentPattern:function(n){var t=e.getParseTreeNode(n,e.isAssignmentPattern);return t&&rb(t)||ge},getPropertySymbolOfDestructuringAssignment:function(n){var t=e.getParseTreeNode(n,e.isIdentifier);return t?function(n){var t=rb(e.cast(n.parent.parent,e.isAssignmentPattern));return t&&ms(t,n.escapedText)}(t):void 0},signatureToString:function(n,t,r,a){return Ca(n,e.getParseTreeNode(t),r,a)},typeToString:function(n,t,r){return Aa(n,e.getParseTreeNode(t),r)},symbolToString:function(n,t,r,a){return La(n,e.getParseTreeNode(t),r,a)},typePredicateToString:function(n,t,r){return Ia(n,e.getParseTreeNode(t),r)},writeSignature:function(n,t,r,a,i){return Ca(n,e.getParseTreeNode(t),r,a,i)},writeType:function(n,t,r,a){return Aa(n,e.getParseTreeNode(t),r,a)},writeSymbol:function(n,t,r,a,i){return La(n,e.getParseTreeNode(t),r,a,i)},writeTypePredicate:function(n,t,r,a){return Ia(n,e.getParseTreeNode(t),r,a)},getAugmentedPropertiesOfType:sb,getRootSymbols:function n(t){var r=function(n){if(6&e.getCheckFlags(n))return e.mapDefined(ir(n).containingType.types,(function(e){return ms(e,n.escapedName)}));if(33554432&n.flags){var t=n,r=t.leftSpread,a=t.rightSpread,i=t.syntheticOrigin;return r?[r,a]:i?[i]:e.singleElementArray(function(e){var n,t=e;for(;t=ir(t).target;)n=t;return n}(n))}return}(t);return r?e.flatMap(r,n):[t]},getContextualType:function(n,t){var r=e.getParseTreeNode(n,e.isExpression);return r?ff(r,t):void 0},getContextualTypeForObjectLiteralElement:function(n){var t=e.getParseTreeNode(n,e.isObjectLiteralElementLike);return t?of(t):void 0},getContextualTypeForArgumentAtIndex:function(n,t){var r=e.getParseTreeNode(n,e.isCallLikeExpression);return r&&nf(r,t)},getContextualTypeForJsxAttribute:function(n){var t=e.getParseTreeNode(n,e.isJsxAttributeLike);return t&&lf(t)},isContextSensitive:fu,getFullyQualifiedName:Or,getResolvedSignature:function(e,n,t){return te(e,n,t,0)},getResolvedSignatureForSignatureHelp:function(e,n,t){return te(e,n,t,16)},getExpandedParameters:To,hasEffectiveRestParameter:Mg,getConstantValue:function(n){var t=e.getParseTreeNode(n,Ab);return t?Db(t):void 0},isValidPropertyAccess:function(n,t){var r=e.getParseTreeNode(n,e.isPropertyAccessOrQualifiedNameOrImportTypeNode);return!!r&&function(e,n){switch(e.kind){case 193:return x_(e,101===e.expression.kind,n,Xd(Py(e.expression)));case 152:return x_(e,!1,n,Xd(Py(e.left)));case 187:return x_(e,!1,n,Kl(e))}}(r,e.escapeLeadingUnderscores(t))},isValidPropertyAccessForCompletions:function(n,t,r){var a=e.getParseTreeNode(n,e.isPropertyAccessExpression);return!!a&&function(e,n,t){return x_(e,193===e.kind&&101===e.expression.kind,t.escapedName,n)}(a,t,r)},getSignatureFromDeclaration:function(n){var t=e.getParseTreeNode(n,e.isFunctionLike);return t?Ns(t):void 0},isImplementationOfOverload:function(n){var t=e.getParseTreeNode(n,e.isFunctionLike);return t?bb(t):void 0},getImmediateAliasedSymbol:If,getAliasedSymbol:kr,getEmitResolver:function(e,n){return qh(e,n),q},getExportsOfModule:Kr,getExportsAndPropertiesOfModule:function(n){var t=Kr(n),r=Vr(n);r!==n&&e.addRange(t,Xo(Ci(r)));return t},getSymbolWalker:e.createGetSymbolWalker((function(e){return Bs(e)||me}),Ps,ws,Vi,Wo,Ci,Ap,ys,Qo,e.getFirstIdentifier,ic),getAmbientModules:function(){en||(en=[],X.forEach((function(e,n){i.test(n)&&en.push(e)})));return en},getJsxIntrinsicTagNamesAt:function(n){var t=Bf(T.IntrinsicElements,n);return t?Xo(t):e.emptyArray},isOptionalParameter:function(n){var t=e.getParseTreeNode(n,e.isParameter);return!!t&&Ls(t)},tryGetMemberInModuleExports:function(n,t){return Hr(e.escapeLeadingUnderscores(n),t)},tryGetMemberInModuleExportsAndProperties:function(n,t){return function(e,n){var t=Hr(e,n);if(t)return t;var r=Vr(n);if(r===n)return;var a=Ci(r);return 131068&a.flags?void 0:ms(a,e)}(e.escapeLeadingUnderscores(n),t)},tryFindAmbientModuleWithoutAugmentations:function(e){return xs(e,!1)},getApparentType:ls,getUnionType:Wc,isTypeAssignableTo:function(e,n){return xu(e,n)},createAnonymousType:pa,createSignature:vo,createSymbol:Xt,createIndexInfo:Xs,getAnyType:function(){return me},getStringType:function(){return Se},getNumberType:function(){return xe},createPromiseType:Bg,createArrayType:Oc,getElementTypeOfArrayType:md,getBooleanType:function(){return Ne},getFalseType:function(e){return e?Ce:Ae},getTrueType:function(e){return e?De:ke},getVoidType:function(){return Me},getUndefinedType:function(){return ve},getNullType:function(){return Ee},getESSymbolType:function(){return Ie},getNeverType:function(){return Oe},getOptionalType:function(){return be},isSymbolAccessible:ha,getObjectFlags:e.getObjectFlags,isArrayType:dd,isTupleType:Cd,isArrayLikeType:fd,isTypeInvalidDueToUnionDiscriminant:function(e,n){return n.properties.some((function(n){var t=n.name&&el(n.name),r=t&&io(t)?uo(t):void 0,a=void 0===r?void 0:Ha(e,r);return!!a&&bd(a)&&!xu(tb(n),a)}))},getAllPossiblePropertiesOfTypes:function(n){var t=Wc(n);if(!(1048576&t.flags))return sb(t);for(var r=e.createSymbolTable(),a=0,i=n;a<i.length;a++)for(var o=i[a],s=0,c=sb(o);s<c.length;s++){var l=c[s].escapedName;if(!r.has(l)){var u=us(t,l);u&&r.set(l,u)}}return e.arrayFrom(r.values())},getSuggestionForNonexistentProperty:function(e,n){return h_(e,n)},getSuggestionForNonexistentSymbol:function(n,t,r){return function(n,t,r){var a=b_(n,t,r);return a&&e.symbolName(a)}(n,e.escapeLeadingUnderscores(t),r)},getSuggestionForNonexistentExport:function(n,t){return(r=E_(n,t))&&e.symbolName(r);var r},getBaseConstraintOfType:ts,getDefaultFromTypeParameter:function(e){return e&&262144&e.flags?ss(e):void 0},resolveName:function(n,t,r,a){return ur(t,e.escapeLeadingUnderscores(n),r,void 0,void 0,!1,a)},getJsxNamespace:function(n){return e.unescapeLeadingUnderscores(Ht(n))},getAccessibleSymbolChain:_a,getTypePredicateOfSignature:Ps,resolveExternalModuleSymbol:Vr,tryGetThisTypeAt:function(n,t){return(n=e.getParseTreeNode(n))&&Km(n,t)},getTypeArgumentConstraint:function(n){var t=e.getParseTreeNode(n,e.isTypeNode);return t&&function(n){var t=e.tryCast(n.parent,e.isTypeReferenceType);if(!t)return;var r=Jy(t),a=Qo(r[t.typeArguments.indexOf(n)]);return a&&uu(a,Jl(r,zy(t,r)))}(t)},getSuggestionDiagnostics:function(t,a){if(e.skipTypeChecking(t,P,n))return e.emptyArray;var i;try{return r=a,Hh(t),e.Debug.assert(!!(1&or(t).flags)),i=e.addRange(i,Pt.getDiagnostics(t.fileName)),t.isDeclarationFile||Wh(0)&&Wh(1)||gv(zh(t),(function(n,t,r){e.containsParseError(n)||Wh(t)||(i||(i=[])).push(__assign(__assign({},r),{category:e.DiagnosticCategory.Suggestion}))})),i||e.emptyArray}finally{r=void 0}},runWithCancellationToken:function(e,n){try{return r=e,n(ne)}finally{r=void 0}},getLocalTypeParametersOfClassOrInterfaceOrTypeAlias:Oi};function te(n,t,r,a){var i=e.getParseTreeNode(n,e.isCallLikeExpression);Z=r;var o=i?fg(i,t,a):void 0;return Z=void 0,o}var re=e.createMap(),ae=e.createMap(),ie=e.createMap(),oe=e.createMap(),se=e.createMap(),ce=e.createMap(),le=[],ue=e.createMap(),de=Xt(4,\"unknown\"),pe=Xt(0,\"__resolving__\"),me=ia(1,\"any\"),fe=ia(1,\"any\"),_e=ia(1,\"any\"),ge=ia(1,\"error\"),ye=ia(2,\"unknown\"),ve=ia(32768,\"undefined\"),he=B?ve:ia(32768,\"undefined\",262144),be=ia(32768,\"undefined\"),Ee=ia(65536,\"null\"),Te=B?Ee:ia(65536,\"null\",262144),Se=ia(4,\"string\"),xe=ia(8,\"number\"),Le=ia(64,\"bigint\"),Ce=ia(512,\"false\"),Ae=ia(512,\"false\"),De=ia(512,\"true\"),ke=ia(512,\"true\");De.regularType=ke,De.freshType=De,ke.regularType=ke,ke.freshType=De,Ce.regularType=Ae,Ce.freshType=Ce,Ae.regularType=Ae,Ae.freshType=Ce;var Ne=oa([Ae,ke]);oa([Ae,De]),oa([Ce,ke]),oa([Ce,De]);var Ie=ia(4096,\"symbol\"),Me=ia(16384,\"void\"),Oe=ia(131072,\"never\"),Re=ia(131072,\"never\"),Pe=ia(131072,\"never\",1048576),we=ia(131072,\"never\"),Fe=ia(131072,\"never\"),Ge=ia(67108864,\"object\"),Be=Wc([Se,xe,Ie]),Ve=W?Se:Be,Ue=Wc([xe,Le]),je=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Ke=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);Ke.objectFlags|=4096;var He=Xt(2048,\"__type\");He.members=e.createSymbolTable();var We=pa(He,O,e.emptyArray,e.emptyArray,void 0,void 0),ze=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);ze.instantiations=e.createMap();var qe=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);qe.objectFlags|=1048576;var Je=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Xe=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Ye=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Qe=ca(),Ze=ca();Ze.constraint=Qe;var $e,en,nn,tn,rn,an,on,sn,cn,ln,un,dn,pn,mn,fn,_n,gn,yn,vn,hn,bn,En,Tn,Sn,xn,Ln,Cn,An,Dn,kn,Nn,In,Mn,On,Rn,Pn,wn,Fn,Gn,Bn,Vn,Un,jn,Kn,Hn,Wn,zn=ca(),qn=As(1,\"<<unresolved>>\",0,me),Jn=vo(void 0,void 0,void 0,e.emptyArray,me,void 0,0,0),Xn=vo(void 0,void 0,void 0,e.emptyArray,ge,void 0,0,0),Yn=vo(void 0,void 0,void 0,e.emptyArray,me,void 0,0,0),Qn=vo(void 0,void 0,void 0,e.emptyArray,Re,void 0,0,0),Zn=Xs(Se,!0),$n=e.createMap(),et={get yieldType(){throw new Error(\"Not supported\")},get returnType(){throw new Error(\"Not supported\")},get nextType(){throw new Error(\"Not supported\")}},nt=Xv(me,me,me),tt=Xv(me,me,ye),rt=Xv(Oe,me,ve),at={iterableCacheKey:\"iterationTypesOfAsyncIterable\",iteratorCacheKey:\"iterationTypesOfAsyncIterator\",iteratorSymbolName:\"asyncIterator\",getGlobalIteratorType:function(e){return On||(On=xc(\"AsyncIterator\",3,e))||ze},getGlobalIterableType:function(e){return Mn||(Mn=xc(\"AsyncIterable\",1,e))||ze},getGlobalIterableIteratorType:function(e){return Rn||(Rn=xc(\"AsyncIterableIterator\",1,e))||ze},getGlobalGeneratorType:function(e){return Pn||(Pn=xc(\"AsyncGenerator\",3,e))||ze},resolveIterationType:iv,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},it={iterableCacheKey:\"iterationTypesOfIterable\",iteratorCacheKey:\"iterationTypesOfIterator\",iteratorSymbolName:\"iterator\",getGlobalIteratorType:function(e){return An||(An=xc(\"Iterator\",3,e))||ze},getGlobalIterableType:kc,getGlobalIterableIteratorType:function(e){return Dn||(Dn=xc(\"IterableIterator\",1,e))||ze},getGlobalGeneratorType:function(e){return kn||(kn=xc(\"Generator\",3,e))||ze},resolveIterationType:function(e,n){return e},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},ot=e.createMap(),st=e.createMap(),ct=0,lt=0,ut=0,dt=!1,pt=0,mt=Vl(\"\"),ft=Vl(0),_t=Vl({negative:!1,base10Value:\"0\"}),gt=[],yt=[],vt=[],ht=0,bt=[],Et=[],Tt=[],St=[],xt=[],Lt=[],Ct=[],At=[],Dt=[],kt=[],Nt=[],It=[],Mt=[],Ot=[],Rt=e.createDiagnosticCollection(),Pt=e.createDiagnosticCollection(),wt=e.createMapFromTemplate({string:Se,number:xe,bigint:Le,boolean:Ne,symbol:Ie,undefined:ve}),Ft=Wc(e.arrayFrom(v.keys(),Vl)),Gt=e.createMap(),Bt=e.createMap(),Vt=e.createMap(),Ut=e.createMap(),jt=e.createMap(),Kt=e.createSymbolTable();return Kt.set(Y.escapedName,Y),function(){for(var t=0,r=n.getSourceFiles();t<r.length;t++){var a=r[t];e.bindSourceFile(a,P)}var i;$e=e.createMap();for(var o=0,s=n.getSourceFiles();o<s.length;o++){if(!(a=s[o]).redirectInfo){if(!e.isExternalOrCommonJsModule(a)){var c=a.locals.get(\"globalThis\");if(c)for(var l=0,u=c.declarations;l<u.length;l++){var d=u[l];Rt.add(e.createDiagnosticForNode(d,e.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0,\"globalThis\"))}rr(X,a.locals)}if(a.jsGlobalAugmentations&&rr(X,a.jsGlobalAugmentations),a.patternAmbientModules&&a.patternAmbientModules.length&&(nn=e.concatenate(nn,a.patternAmbientModules)),a.moduleAugmentations.length&&(i||(i=[])).push(a.moduleAugmentations),a.symbol&&a.symbol.globalExports)a.symbol.globalExports.forEach((function(e,n){X.has(n)||X.set(n,e)}))}}if(i)for(var p=0,m=i;p<m.length;p++)for(var f=m[p],_=0,g=f;_<g.length;_++){var y=g[_];e.isGlobalScopeAugmentation(y.parent)&&ar(y)}(function(n,t,r){t.forEach((function(t,a){var i=n.get(a);i?e.forEach(i.declarations,function(n,t){return function(r){return Rt.add(e.createDiagnosticForNode(r,t,n))}}(e.unescapeLeadingUnderscores(a),r)):n.set(a,t)}))})(X,Kt,e.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0),ir(Y).type=he,ir($).type=xc(\"IArguments\",0,!0),ir(de).type=ge,ir(Q).type=sa(16,Q),cn=xc(\"Array\",1,!0),rn=xc(\"Object\",0,!0),an=xc(\"Function\",0,!0),on=U&&xc(\"CallableFunction\",0,!0)||an,sn=U&&xc(\"NewableFunction\",0,!0)||an,un=xc(\"String\",0,!0),dn=xc(\"Number\",0,!0),pn=xc(\"Boolean\",0,!0),mn=xc(\"RegExp\",0,!0),_n=Oc(me),(gn=Oc(fe))===je&&(gn=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0));if(ln=Nc(\"ReadonlyArray\",1)||cn,yn=ln?Ic(ln,[me]):_n,fn=Nc(\"ThisType\",1),i)for(var v=0,h=i;v<h.length;v++){f=h[v];for(var b=0,E=f;b<E.length;b++){y=E[b];e.isGlobalScopeAugmentation(y.parent)||ar(y)}}$e.forEach((function(n){var t=n.firstFile,r=n.secondFile,a=n.conflictingSymbols;if(a.size<8)a.forEach((function(n,t){for(var r=n.isBlockScoped,a=n.firstFileLocations,i=n.secondFileLocations,o=r?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,s=0,c=a;s<c.length;s++){tr(c[s],o,t,i)}for(var l=0,u=i;l<u.length;l++){tr(u[l],o,t,a)}}));else{var i=e.arrayFrom(a.keys()).join(\", \");Rt.add(e.addRelatedInfo(e.createDiagnosticForNode(t,e.Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,i),e.createDiagnosticForNode(r,e.Diagnostics.Conflicts_are_in_this_file))),Rt.add(e.addRelatedInfo(e.createDiagnosticForNode(r,e.Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,i),e.createDiagnosticForNode(t,e.Diagnostics.Conflicts_are_in_this_file)))}})),$e=void 0}(),ne;function Ht(n){if(n){var t=e.getSourceFileOfNode(n);if(t){if(t.localJsxNamespace)return t.localJsxNamespace;var r=t.pragmas.get(\"jsx\");if(r){var a=e.isArray(r)?r[0]:r;if(t.localJsxFactory=e.parseIsolatedEntityName(a.arguments.factory,w),t.localJsxFactory)return t.localJsxNamespace=e.getFirstIdentifier(t.localJsxFactory).escapedText}}}return Kn||(Kn=\"React\",P.jsxFactory?(Hn=e.parseIsolatedEntityName(P.jsxFactory,w))&&(Kn=e.getFirstIdentifier(Hn).escapedText):P.reactNamespace&&(Kn=e.escapeLeadingUnderscores(P.reactNamespace))),Kn}function Wt(n,t,r,a,i,o){var s=n?e.createDiagnosticForNode(n,t,r,a,i,o):e.createCompilerDiagnostic(t,r,a,i,o);return Rt.add(s),s}function zt(n,t){n?Rt.add(t):Pt.add(__assign(__assign({},t),{category:e.DiagnosticCategory.Suggestion}))}function qt(n,t,r,a,i,o,s){zt(n,\"message\"in r?e.createDiagnosticForNode(t,r,a,i,o,s):e.createDiagnosticForNodeFromMessageChain(t,r))}function Jt(n,t,r,a,i,o,s){var c=Wt(n,r,a,i,o,s);if(t){var l=e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(c,l)}return c}function Xt(e,n,t){_++;var r=new d(33554432|e,n);return r.checkFlags=t||0,r}function Yt(e){return 0!=(33554432&e.flags)}function Qt(e){var n=0;return 2&e&&(n|=111551),1&e&&(n|=111550),4&e&&(n|=0),8&e&&(n|=900095),16&e&&(n|=110991),32&e&&(n|=899503),64&e&&(n|=788872),256&e&&(n|=899327),128&e&&(n|=899967),512&e&&(n|=110735),8192&e&&(n|=103359),32768&e&&(n|=46015),65536&e&&(n|=78783),262144&e&&(n|=526824),524288&e&&(n|=788968),2097152&e&&(n|=2097152),n}function Zt(e,n){n.mergeId||(n.mergeId=c,c++),bt[n.mergeId]=e}function $t(n){var t=Xt(n.flags,n.escapedName);return t.declarations=n.declarations?n.declarations.slice():[],t.parent=n.parent,n.valueDeclaration&&(t.valueDeclaration=n.valueDeclaration),n.constEnumOnlyModule&&(t.constEnumOnlyModule=!0),n.members&&(t.members=e.cloneMap(n.members)),n.exports&&(t.exports=e.cloneMap(n.exports)),Zt(t,n),t}function er(n,t,r){if(void 0===r&&(r=!1),!(n.flags&Qt(t.flags))||67108864&(t.flags|n.flags)){if(t===n)return n;if(!(33554432&n.flags)){var a=Dr(n);if(a===de)return t;n=$t(a)}512&t.flags&&512&n.flags&&n.constEnumOnlyModule&&!t.constEnumOnlyModule&&(n.constEnumOnlyModule=!1),n.flags|=t.flags,t.valueDeclaration&&(!n.valueDeclaration||e.isAssignmentDeclaration(n.valueDeclaration)&&!e.isAssignmentDeclaration(t.valueDeclaration)||e.isEffectiveModuleDeclaration(n.valueDeclaration)&&!e.isEffectiveModuleDeclaration(t.valueDeclaration))&&(n.valueDeclaration=t.valueDeclaration),e.addRange(n.declarations,t.declarations),t.members&&(n.members||(n.members=e.createSymbolTable()),rr(n.members,t.members,r)),t.exports&&(n.exports||(n.exports=e.createSymbolTable()),rr(n.exports,t.exports,r)),r||Zt(n,t)}else if(1024&n.flags)n!==Q&&Wt(e.getNameOfDeclaration(t.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,La(n));else{var i=!!(384&n.flags||384&t.flags),o=!!(2&n.flags||2&t.flags),s=i?e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:o?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,c=t.declarations&&e.getSourceFileOfNode(t.declarations[0]),l=n.declarations&&e.getSourceFileOfNode(n.declarations[0]),u=La(t);if(c&&l&&$e&&!i&&c!==l){var d=-1===e.comparePaths(c.path,l.path)?c:l,p=d===c?l:c,m=e.getOrUpdate($e,d.path+\"|\"+p.path,(function(){return{firstFile:d,secondFile:p,conflictingSymbols:e.createMap()}})),f=e.getOrUpdate(m.conflictingSymbols,u,(function(){return{isBlockScoped:o,firstFileLocations:[],secondFileLocations:[]}}));_(f.firstFileLocations,t),_(f.secondFileLocations,n)}else nr(t,s,u,n),nr(n,s,u,t)}return n;function _(n,t){for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];e.pushIfUnique(n,(e.getExpandoInitializer(i,!1)?e.getNameOfExpando(i):e.getNameOfDeclaration(i))||i)}}}function nr(n,t,r,a){e.forEach(n.declarations,(function(n){tr((e.getExpandoInitializer(n,!1)?e.getNameOfExpando(n):e.getNameOfDeclaration(n))||n,t,r,a.declarations)}))}function tr(n,t,r,a){for(var i=function(n,t,r,a,i,o){var s=n?e.createDiagnosticForNode(n,t,r,a,i,o):e.createCompilerDiagnostic(t,r,a,i,o),c=Rt.lookup(s);return c||(Rt.add(s),s)}(n,t,r),o=0,s=a||e.emptyArray;o<s.length;o++){var c=s[o];i.relatedInformation=i.relatedInformation||[],e.length(i.relatedInformation)>=5||e.addRelatedInfo(i,e.length(i.relatedInformation)?e.createDiagnosticForNode(c,e.Diagnostics.and_here):e.createDiagnosticForNode(c,e.Diagnostics._0_was_also_declared_here,r))}}function rr(e,n,t){void 0===t&&(t=!1),n.forEach((function(n,r){var a=e.get(r);e.set(r,a?er(a,n,t):n)}))}function ar(n){var t=n.parent;if(t.symbol.declarations[0]===t)if(e.isGlobalScopeAugmentation(t))rr(X,t.symbol.exports);else{var r=Fr(n,n,8388608&n.parent.parent.flags?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,!0);if(!r)return;if(1920&(r=Vr(r)).flags)if(e.some(nn,(function(e){return r===e.symbol}))){var a=er(t.symbol,r,!0);tn||(tn=e.createMap()),tn.set(n.text,a)}else er(r,t.symbol);else Wt(n,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,n.text)}else e.Debug.assert(t.symbol.declarations.length>1)}function ir(e){if(33554432&e.flags)return e;var n=L(e);return Et[n]||(Et[n]={})}function or(e){var n=x(e);return Tt[n]||(Tt[n]={flags:0})}function sr(n){return 288===n.kind&&!e.isExternalOrCommonJsModule(n)}function cr(n,t,r){if(r){var a=n.get(t);if(a){if(e.Debug.assert(0==(1&e.getCheckFlags(a)),\"Should never get an instantiated symbol here.\"),a.flags&r)return a;if(2097152&a.flags){var i=kr(a);if(i===de||i.flags&r)return a}}}}function lr(t,r){var a=e.getSourceFileOfNode(t),i=e.getSourceFileOfNode(r);if(a!==i){if(F&&(a.externalModuleIndicator||i.externalModuleIndicator)||!P.outFile&&!P.out||Dp(r)||8388608&t.flags)return!0;if(l(r,t))return!0;var o=n.getSourceFiles();return o.indexOf(a)<=o.indexOf(i)}if(t.pos<=r.pos){if(190===t.kind){var s=e.getAncestor(r,190);return s?e.findAncestor(s,e.isBindingElement)!==e.findAncestor(t,e.isBindingElement)||t.pos<s.pos:lr(e.getAncestor(t,241),r)}return 241===t.kind?!function(n,t){var r=e.getEnclosingBlockScopeContainer(n);switch(n.parent.parent.kind){case 224:case 229:case 231:if(yr(t,n,r))return!0}var a=n.parent.parent;return e.isForInOrOfStatement(a)&&yr(t,a.expression,r)}(t,r):e.isClassDeclaration(t)?!e.findAncestor(r,(function(n){return e.isComputedPropertyName(n)&&n.parent.parent===t})):!e.isPropertyDeclaration(t)||!function(n,t){if(t.end>n.end)return!1;return void 0===e.findAncestor(t,(function(e){if(e===n)return\"quit\";switch(e.kind){case 201:case 158:return!0;case 222:switch(e.parent.kind){case 162:case 160:case 163:return!0;default:return!1}default:return!1}}))}(t,r)}if(261===r.parent.kind||258===r.parent.kind&&r.parent.isExportEquals)return!0;if(258===r.kind&&r.isExportEquals)return!0;var c=e.getEnclosingBlockScopeContainer(t);return!!(4194304&r.flags)||Dp(r)||l(r,t,c);function l(n,t,r){return!!e.findAncestor(n,(function(a){if(a===r)return\"quit\";if(e.isFunctionLike(a))return!0;if(a.parent&&158===a.parent.kind&&a.parent.initializer===a)if(e.hasModifier(a.parent,32)){if(160===t.kind)return!0}else if(!(158===t.kind&&!e.hasModifier(t,32))||e.getContainingClass(n)!==e.getContainingClass(t))return!0;return!1}))}}function ur(e,n,t,r,a,i,o,s){return void 0===o&&(o=!1),dr(e,n,t,r,a,i,o,cr,s)}function dr(n,t,r,a,i,o,s,c,l){var u,d,p,m,f,_,g=n,y=!1,v=n,h=!1;e:for(;n;){if(n.locals&&!sr(n)&&(u=c(n.locals,t,r))){var b=!0;if(e.isFunctionLike(n)&&d&&d!==n.body){if(r&u.flags&788968&&301!==d.kind&&(b=!!(262144&u.flags)&&(d===n.type||155===d.kind||154===d.kind)),r&u.flags&3){var E=n;P.target&&P.target>=2&&e.isParameter(d)&&E.body&&u.valueDeclaration.pos>=E.body.pos&&u.valueDeclaration.end<=E.body.end?b=!1:1&u.flags&&(b=155===d.kind||d===n.type&&!!e.findAncestor(u.valueDeclaration,e.isParameter))}}else 179===n.kind&&(b=d===n.trueType);if(b)break e;u=void 0}switch(y=y||pr(n,d),n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;h=!0;case 248:var T=Yr(n).exports||O;if(288===n.kind||e.isModuleDeclaration(n)&&8388608&n.flags&&!e.isGlobalScopeAugmentation(n)){if(u=T.get(\"default\")){var S=e.getLocalSymbolForExportDefault(u);if(S&&u.flags&r&&S.escapedName===t)break e;u=void 0}var x=T.get(t);if(x&&2097152===x.flags&&e.getDeclarationOfKind(x,261))break}if(\"default\"!==t&&(u=c(T,t,2623475&r))){if(!e.isSourceFile(n)||!n.commonJsModuleIndicator||u.declarations.some(e.isJSDocTypeAlias))break e;u=void 0}break;case 247:if(u=c(Yr(n).exports,t,8&r))break e;break;case 158:if(!e.hasModifier(n,32)){var L=ra(n.parent);L&&L.locals&&c(L.locals,t,111551&r)&&(m=n)}break;case 244:case 213:case 245:if(u=c(Yr(n).members||O,t,788968&r)){if(!_r(u,n)){u=void 0;break}if(d&&e.hasModifier(d,32))return void Wt(v,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);break e}if(213===n.kind&&32&r){var C=n.name;if(C&&t===C.escapedText){u=n.symbol;break e}}break;case 215:if(d===n.expression&&89===n.parent.token){var A=n.parent.parent;if(e.isClassLike(A)&&(u=c(Yr(A).members,t,788968&r)))return void(a&&Wt(v,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters))}break;case 153:if(_=n.parent.parent,(e.isClassLike(_)||245===_.kind)&&(u=c(Yr(_).members,t,788968&r)))return void Wt(v,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);break;case 201:if(P.target>=2)break;case 160:case 161:case 162:case 163:case 243:if(3&r&&\"arguments\"===t){u=$;break e}break;case 200:if(3&r&&\"arguments\"===t){u=$;break e}if(16&r){var D=n.name;if(D&&t===D.escapedText){u=n.symbol;break e}}break;case 156:n.parent&&155===n.parent.kind&&(n=n.parent),n.parent&&(e.isClassElement(n.parent)||244===n.parent.kind)&&(n=n.parent);break;case 315:case 308:case 309:n=e.getJSDocHost(n);break;case 155:d&&d===n.initializer&&(f=n);break;case 190:if(d&&d===n.initializer)155===(R=e.getRootDeclaration(n)).kind&&(f=n)}mr(n)&&(p=n),d=n,n=n.parent}if(!o||!u||p&&u===p.symbol||(u.isReferenced|=r),!u){if(d&&(e.Debug.assert(288===d.kind),d.commonJsModuleIndicator&&\"exports\"===t&&r&d.symbol.flags))return d.symbol;s||(u=c(X,t,r))}if(!u&&g&&e.isInJSFile(g)&&g.parent&&e.isRequireCall(g.parent,!1))return ee;if(u){if(a){if(m){var k=m.name;return void Wt(v,e.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,e.declarationNameToString(k),fr(i))}if(v&&(2&r||(32&r||384&r)&&111551==(111551&r))){var N=na(u);(2&N.flags||32&N.flags||384&N.flags)&&function(n,t){if(e.Debug.assert(!!(2&n.flags||32&n.flags||384&n.flags)),67108881&n.flags&&32&n.flags)return;var r=e.find(n.declarations,(function(n){return e.isBlockOrCatchScoped(n)||e.isClassLike(n)||247===n.kind}));if(void 0===r)return e.Debug.fail(\"checkResolvedBlockScopedVariable could not find block-scoped declaration\");if(!(8388608&r.flags||lr(r,t))){var a=void 0,i=e.declarationNameToString(e.getNameOfDeclaration(r));2&n.flags?a=Wt(t,e.Diagnostics.Block_scoped_variable_0_used_before_its_declaration,i):32&n.flags?a=Wt(t,e.Diagnostics.Class_0_used_before_its_declaration,i):256&n.flags?a=Wt(t,e.Diagnostics.Enum_0_used_before_its_declaration,i):(e.Debug.assert(!!(128&n.flags)),P.preserveConstEnums&&(a=Wt(t,e.Diagnostics.Class_0_used_before_its_declaration,i))),a&&e.addRelatedInfo(a,e.createDiagnosticForNode(r,e.Diagnostics._0_is_declared_here,i))}}(N,v)}if(u&&h&&111551==(111551&r)&&!(4194304&g.flags)){var I=Xr(u);e.length(I.declarations)&&e.every(I.declarations,(function(n){return e.isNamespaceExportDeclaration(n)||e.isSourceFile(n)&&!!n.symbol.globalExports}))&&qt(!P.allowUmdGlobalAccess,v,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead,e.unescapeLeadingUnderscores(t))}if(u&&f&&!y&&111551==(111551&r)){var M=Xr(_o(u)),R=e.getRootDeclaration(f);M===Yr(f)?Wt(v,e.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer,e.declarationNameToString(f.name)):M.valueDeclaration&&M.valueDeclaration.pos>f.pos&&R.parent.locals&&c(R.parent.locals,M.escapedName,r)===M&&Wt(v,e.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(f.name),e.declarationNameToString(v))}}return u}if(a&&!(v&&(function(n,t,r){if(!e.isIdentifier(n)||n.escapedText!==t||Yh(n)||Dp(n))return!1;var a=e.getThisContainer(n,!1),i=a;for(;i;){if(e.isClassLike(i.parent)){var o=Yr(i.parent);if(!o)break;if(ms(Ci(o),t))return Wt(n,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0,fr(r),La(o)),!0;if(i===a&&!e.hasModifier(i,32))if(ms(Yi(o).thisType,t))return Wt(n,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0,fr(r)),!0}i=i.parent}return!1}(v,t,i)||gr(v)||function(n,t,r){var a=1920|(e.isInJSFile(n)?111551:0);if(r===a){var i=Dr(ur(n,t,788968&~a,void 0,void 0,!1)),o=n.parent;if(i){if(e.isQualifiedName(o)){e.Debug.assert(o.left===n,\"Should only be resolving left side of qualified name as a namespace\");var s=o.right.escapedText;if(ms(Yi(i),s))return Wt(o,e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,e.unescapeLeadingUnderscores(t),e.unescapeLeadingUnderscores(s)),!0}return Wt(n,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here,e.unescapeLeadingUnderscores(t)),!0}}return!1}(v,t,r)||function(n,t,r){if(111551&r){if(\"any\"===t||\"string\"===t||\"number\"===t||\"boolean\"===t||\"never\"===t)return Wt(n,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,e.unescapeLeadingUnderscores(t)),!0;var a=Dr(ur(n,t,788544,void 0,void 0,!1));if(a&&!(1024&a.flags)){var i=function(e){switch(e){case\"Promise\":case\"Symbol\":case\"Map\":case\"WeakMap\":case\"Set\":case\"WeakSet\":return!0}return!1}(t)?e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here;return Wt(n,i,e.unescapeLeadingUnderscores(t)),!0}}return!1}(v,t,r)||function(n,t,r){if(111127&r){if(Dr(ur(n,t,1024,void 0,void 0,!1)))return Wt(n,e.Diagnostics.Cannot_use_namespace_0_as_a_value,e.unescapeLeadingUnderscores(t)),!0}else if(788544&r){if(Dr(ur(n,t,1536,void 0,void 0,!1)))return Wt(n,e.Diagnostics.Cannot_use_namespace_0_as_a_type,e.unescapeLeadingUnderscores(t)),!0}return!1}(v,t,r)||function(n,t,r){if(788584&r){var a=Dr(ur(n,t,111127,void 0,void 0,!1));if(a&&!(1920&a.flags))return Wt(n,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here,e.unescapeLeadingUnderscores(t)),!0}return!1}(v,t,r)))){var w=void 0;if(l&&ht<10&&(w=b_(g,t,r))){var F=La(w),G=Wt(v,l,fr(i),F);w.valueDeclaration&&e.addRelatedInfo(G,e.createDiagnosticForNode(w.valueDeclaration,e.Diagnostics._0_is_declared_here,F))}w||Wt(v,a,fr(i)),ht++}}function pr(n,t){return 201!==n.kind&&200!==n.kind?e.isTypeQueryNode(n)||(e.isFunctionLikeDeclaration(n)||158===n.kind&&!e.hasModifier(n,32))&&(!t||t!==n.name):(!t||t!==n.name)&&(!(!n.asteriskToken&&!e.hasModifier(n,256))||!e.getImmediatelyInvokedFunctionExpression(n))}function mr(e){switch(e.kind){case 243:case 244:case 245:case 247:case 246:case 248:return!0;default:return!1}}function fr(n){return e.isString(n)?e.unescapeLeadingUnderscores(n):e.declarationNameToString(n)}function _r(n,t){for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(154===i.kind)if((e.isJSDocTemplateTag(i.parent)?e.getJSDocHost(i.parent):i.parent)===t)return!(e.isJSDocTemplateTag(i.parent)&&e.find(i.parent.parent.tags,e.isJSDocTypeAlias))}return!1}function gr(n){var t=function n(t){switch(t.kind){case 75:case 193:return t.parent?n(t.parent):void 0;case 215:if(e.isEntityNameExpression(t.expression))return t.expression;default:return}}(n);return!(!t||!Rr(t,64,!0))&&(Wt(n,e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements,e.getTextOfNode(t)),!0)}function yr(n,t,r){return!!t&&!!e.findAncestor(n,(function(n){return n===r||e.isFunctionLike(n)?\"quit\":n===t}))}function vr(e){switch(e.kind){case 252:return e;case 254:return e.parent;case 255:return e.parent.parent;case 257:return e.parent.parent.parent;default:return}}function hr(n){return e.find(n.declarations,e.isAliasSymbolDeclaration)}function br(e,n,t){var r=e.exports.get(\"export=\");return r?ms(Ci(r),n):Dr(e.exports.get(n),t)}function Er(n){return e.isExportAssignment(n)&&!n.isExportEquals||e.hasModifier(n,512)||e.isExportSpecifier(n)}function Tr(n,t,r){if(!G)return!1;if(!n||n.isDeclarationFile){var a=br(t,\"default\",!0);return(!a||!e.some(a.declarations,Er))&&!br(t,e.escapeLeadingUnderscores(\"__esModule\"),r)}return e.isSourceFileJS(n)?!n.externalModuleIndicator&&!br(t,e.escapeLeadingUnderscores(\"__esModule\"),r):jr(t)}function Sr(n,t,r){void 0===r&&(r=!1);var a=wr(n,n.moduleSpecifier),i=t.propertyName||t.name,o=\"default\"===i.escapedText&&!(!P.allowSyntheticDefaultImports&&!P.esModuleInterop),s=Ur(a,n.moduleSpecifier,r,o);if(s&&i.escapedText){if(e.isShorthandAmbientModuleSymbol(a))return a;var c=void 0;c=a&&a.exports&&a.exports.get(\"export=\")?ms(Ci(s),i.escapedText):function(e,n){if(3&e.flags){var t=e.valueDeclaration.type;if(t)return Dr(ms(Kl(t),n))}}(s,i.escapedText),c=Dr(c,r);var l=function(e,n,t){if(1536&e.flags)return Dr(Wr(e).get(n),t)}(s,i.escapedText,r);!l&&G&&\"default\"===i.escapedText&&(l=Vr(a,r)||Dr(a,r));var u=l&&c&&l!==c?function(n,t){if(n===de&&t===de)return de;if(790504&n.flags)return n;var r=Xt(n.flags|t.flags,n.escapedName);return r.declarations=e.deduplicate(e.concatenate(n.declarations,t.declarations),e.equateValues),r.parent=n.parent||t.parent,n.valueDeclaration&&(r.valueDeclaration=n.valueDeclaration),t.members&&(r.members=t.members),n.exports&&(r.exports=n.exports),r}(c,l):l||c;if(!u){var d=Or(a,n),p=e.declarationNameToString(i),m=E_(i,s);if(void 0!==m){var f=La(m),_=Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_2,d,p,f);m.valueDeclaration&&e.addRelatedInfo(_,e.createDiagnosticForNode(m.valueDeclaration,e.Diagnostics._0_is_declared_here,f))}else a.exports&&a.exports.has(\"default\")?Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,d,p):Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1,d,p)}return u}}function xr(e,n,t){return e.parent.parent.moduleSpecifier?Sr(e.parent.parent,e,t):Rr(e.propertyName||e.name,n,!1,t)}function Lr(n,t){if(e.isClassExpression(n))return hy(n).symbol;if(e.isEntityName(n)||e.isEntityNameExpression(n)){var r=Rr(n,901119,!0,t);return r||(hy(n),or(n).resolvedSymbol)}}function Cr(n,t){switch(void 0===t&&(t=!1),n.kind){case 252:return function(n,t){return 263===n.moduleReference.kind?Vr(wr(n,e.getExternalModuleImportEqualsDeclarationExpression(n))):Mr(n.moduleReference,t)}(n,t);case 254:return function(n,t){var r=wr(n,n.parent.moduleSpecifier);if(r){var a=void 0;a=e.isShorthandAmbientModuleSymbol(r)?r:br(r,\"default\",t);var i=Tr(e.find(r.declarations,e.isSourceFile),r,t);if(a||i){if(i)return Vr(r,t)||Dr(r,t)}else if(jr(r)){var o=F>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\",s=r.exports.get(\"export=\").valueDeclaration,c=Wt(n.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,La(r),o);e.addRelatedInfo(c,e.createDiagnosticForNode(s,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,o))}else r.exports&&r.exports.has(n.symbol.escapedName)?Wt(n.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,La(r),La(n.symbol)):Wt(n.name,e.Diagnostics.Module_0_has_no_default_export,La(r));return a}}(n,t);case 255:return function(e,n){var t=e.parent.parent.moduleSpecifier;return Ur(wr(e,t),t,n,!1)}(n,t);case 257:return function(e,n){return Sr(e.parent.parent.parent,e,n)}(n,t);case 261:return xr(n,901119,t);case 258:case 208:return function(n,t){return Lr(e.isExportAssignment(n)?n.expression:n.right,t)}(n,t);case 251:return function(e,n){return Vr(e.parent.symbol,n)}(n,t);case 280:return Rr(n.name,901119,!0,t);case 279:return function(e,n){return Lr(e.initializer,n)}(n,t);case 193:return function(n,t){if(e.isBinaryExpression(n.parent)&&n.parent.left===n&&62===n.parent.operatorToken.kind)return Lr(n.parent.right,t)}(n,t);default:return e.Debug.fail()}}function Ar(e,n){return void 0===n&&(n=901119),!!e&&(2097152==(e.flags&(2097152|n))||!!(2097152&e.flags&&67108864&e.flags))}function Dr(e,n){return!n&&Ar(e)?kr(e):e}function kr(n){e.Debug.assert(0!=(2097152&n.flags),\"Should only get Alias here.\");var t=ir(n);if(t.target)t.target===pe&&(t.target=de);else{t.target=pe;var r=hr(n);if(!r)return e.Debug.fail();var a=Cr(r);t.target===pe?t.target=a||de:Wt(r,e.Diagnostics.Circular_definition_of_import_alias_0,La(n))}return t.target}function Nr(e){var n=Yr(e),t=kr(n);t&&((t===de||111551&t.flags&&!hb(t))&&Ir(n))}function Ir(n){var t=ir(n);if(!t.referenced){t.referenced=!0;var r=hr(n);if(!r)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(r)){var a=Dr(n);(a===de||111551&a.flags)&&hy(r.moduleReference)}}}function Mr(n,t){return 75===n.kind&&e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),75===n.kind||152===n.parent.kind?Rr(n,1920,!1,t):(e.Debug.assert(252===n.parent.kind),Rr(n,901119,!1,t))}function Or(e,n){return e.parent?Or(e.parent,n)+\".\"+La(e):La(e,n,void 0,20)}function Rr(n,t,r,a,i){if(!e.nodeIsMissing(n)){var o,s=1920|(e.isInJSFile(n)?111551&t:0);if(75===n.kind){var c=t===s?e.Diagnostics.Cannot_find_namespace_0:Cp(e.getFirstIdentifier(n)),l=e.isInJSFile(n)?function(n,t){if(gc(n.parent)){var r=function(n){if(e.findAncestor(n,(function(n){return e.isJSDocNode(n)||4194304&n.flags?e.isJSDocTypeAlias(n):\"quit\"})))return;var t=e.getJSDocHost(n);if(e.isExpressionStatement(t)&&e.isBinaryExpression(t.expression)&&3===e.getAssignmentDeclarationKind(t.expression)){if(a=Yr(t.expression.left))return Pr(a)}if((e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&6===e.getAssignmentDeclarationKind(t.parent.parent)){if(a=Yr(t.parent.parent.left))return Pr(a)}var r=e.getHostSignatureFromJSDocHost(t);if(r){var a;return(a=Yr(r))&&a.valueDeclaration}}(n.parent);if(r)return ur(r,n.escapedText,t,void 0,n,!0)}}(n,t):void 0;if(!(o=ur(i||n,n.escapedText,t,r||l?void 0:c,n,!0)))return l}else{if(152!==n.kind&&193!==n.kind)throw e.Debug.assertNever(n,\"Unknown entity name kind.\");var u=152===n.kind?n.left:n.expression,d=152===n.kind?n.right:n.name,p=Rr(u,s,r,!1,i);if(!p||e.nodeIsMissing(d))return;if(p===de)return p;if(e.isInJSFile(n)&&p.valueDeclaration&&e.isVariableDeclaration(p.valueDeclaration)&&p.valueDeclaration.initializer&&Eg(p.valueDeclaration.initializer)){var m=p.valueDeclaration.initializer.arguments[0],f=wr(m,m);if(f){var _=Vr(f);_&&(p=_)}}if(!(o=cr(Wr(p),d.escapedText,t)))return void(r||Wt(d,e.Diagnostics.Namespace_0_has_no_exported_member_1,Or(p),e.declarationNameToString(d)))}return e.Debug.assert(0==(1&e.getCheckFlags(o)),\"Should never get an instantiated symbol here.\"),o.flags&t||a?o:kr(o)}}function Pr(n){var t=n.parent.valueDeclaration;if(t)return(e.isAssignmentDeclaration(t)?e.getAssignedExpandoInitializer(t):e.hasOnlyExpressionInitializer(t)?e.getDeclaredExpandoInitializer(t):void 0)||t}function wr(n,t,r){return Fr(n,t,r?void 0:e.Diagnostics.Cannot_find_module_0)}function Fr(n,t,r,a){return void 0===a&&(a=!1),e.isStringLiteralLike(t)?Gr(n,t.text,r,t,a):void 0}function Gr(t,r,a,i,o){(void 0===o&&(o=!1),e.startsWith(r,\"@types/\"))&&Wt(i,e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,e.removePrefix(r,\"@types/\"),r);var s=xs(r,!0);if(s)return s;var c=e.getSourceFileOfNode(t),l=e.getResolvedModule(c,r),u=l&&e.getResolutionDiagnostic(P,l),d=l&&!u&&n.getSourceFile(l.resolvedFileName);if(d)return d.symbol?(l.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(l.extension)&&Br(!1,i,l,r),Xr(d.symbol)):void(a&&Wt(i,e.Diagnostics.File_0_is_not_a_module,d.fileName));if(nn){var p=e.findBestPatternMatch(nn,(function(e){return e.pattern}),r);if(p){var m=tn&&tn.get(r);return Xr(m?m:p.symbol)}}if(l&&!e.resolutionExtensionIsTSOrJson(l.extension)&&void 0===u||u===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type)o?Wt(i,e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented,r,l.resolvedFileName):Br(K&&!!a,i,l,r);else if(a){if(l){var f=n.getProjectReferenceRedirect(l.resolvedFileName);if(f)return void Wt(i,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,f,l.resolvedFileName)}if(u)Wt(i,u,r,l.resolvedFileName);else{var _=e.tryExtractTSExtension(r);if(_)Wt(i,e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,_,e.removeExtension(r,_));else!P.resolveJsonModule&&e.fileExtensionIs(r,\".json\")&&e.getEmitModuleResolutionKind(P)===e.ModuleResolutionKind.NodeJs&&e.hasJsonModuleEmitEnabled(P)?Wt(i,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,r):Wt(i,a,r)}}}function Br(n,t,r,a){var i,o=r.packageId,s=r.resolvedFileName,c=!e.isExternalModuleNameRelative(a)&&o?(i=o.name,u().has(e.getTypesPackageName(i))?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,o.name,e.mangleScopedPackageName(o.name)):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,a,e.mangleScopedPackageName(o.name))):void 0;qt(n,t,e.chainDiagnosticMessages(c,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,a,s))}function Vr(n,t){if(n){var r=function(n,t){if(!n||n===de||n===t||1===t.exports.size||2097152&n.flags)return n;var r=ir(n);if(r.cjsExportMerged)return r.cjsExportMerged;var a=33554432&n.flags?n:$t(n);a.flags=512|a.flags,void 0===a.exports&&(a.exports=e.createSymbolTable());return t.exports.forEach((function(e,n){\"export=\"!==n&&a.exports.set(n,a.exports.has(n)?er(a.exports.get(n),e):e)})),ir(a).cjsExportMerged=a,r.cjsExportMerged=a}(Xr(Dr(n.exports.get(\"export=\"),t)),Xr(n));return Xr(r)||n}}function Ur(n,t,r,a){var i=Vr(n,r);if(!r&&i){if(!(a||1539&i.flags||e.getDeclarationOfKind(i,288))){var o=F>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\";return Wt(t,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,o),i}if(P.esModuleInterop){var s=t.parent;if(e.isImportDeclaration(s)&&e.getNamespaceDeclarationNode(s)||e.isImportCall(s)){var c=Ci(i),l=fs(c,0);if(l&&l.length||(l=fs(c,1)),l&&l.length){var u=bg(c,i,n),d=Xt(i.flags,i.escapedName);d.declarations=i.declarations?i.declarations.slice():[],d.parent=i.parent,d.target=i,d.originatingImport=s,i.valueDeclaration&&(d.valueDeclaration=i.valueDeclaration),i.constEnumOnlyModule&&(d.constEnumOnlyModule=!0),i.members&&(d.members=e.cloneMap(i.members)),i.exports&&(d.exports=e.cloneMap(i.exports));var p=Wo(u);return d.type=pa(d,p.members,e.emptyArray,e.emptyArray,p.stringIndexInfo,p.numberIndexInfo),d}}}}return i}function jr(e){return void 0!==e.exports.get(\"export=\")}function Kr(e){return Ts(zr(e))}function Hr(e,n){var t=zr(n);if(t)return t.get(e)}function Wr(e){return 6256&e.flags?mo(e,\"resolvedExports\"):1536&e.flags?zr(e):e.exports||O}function zr(e){var n=ir(e);return n.resolvedExports||(n.resolvedExports=Jr(e))}function qr(n,t,r,a){t&&t.forEach((function(t,i){if(\"default\"!==i){var o=n.get(i);if(o){if(r&&a&&o&&Dr(o)!==Dr(t)){var s=r.get(i);s.exportsWithDuplicate?s.exportsWithDuplicate.push(a):s.exportsWithDuplicate=[a]}}else n.set(i,t),r&&a&&r.set(i,{specifierText:e.getTextOfNode(a.moduleSpecifier)})}}))}function Jr(n){var t=[];return function n(r){if(!(r&&r.exports&&e.pushIfUnique(t,r)))return;var a=e.cloneMap(r.exports),i=r.exports.get(\"__export\");if(i){for(var o=e.createSymbolTable(),s=e.createMap(),c=0,l=i.declarations;c<l.length;c++){var u=l[c],d=wr(u,u.moduleSpecifier),p=n(d);qr(o,p,s,u)}s.forEach((function(n,t){var r=n.exportsWithDuplicate;if(\"export=\"!==t&&r&&r.length&&!a.has(t))for(var i=0,o=r;i<o.length;i++){var c=o[i];Rt.add(e.createDiagnosticForNode(c,e.Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity,s.get(t).specifierText,e.unescapeLeadingUnderscores(t)))}})),qr(a,o)}return a}(n=Vr(n))||O}function Xr(e){var n;return e&&e.mergeId&&(n=bt[e.mergeId])?n:e}function Yr(e){return Xr(e.symbol&&_o(e.symbol))}function Qr(e){return Xr(e.parent&&_o(e.parent))}function Zr(t,r){var a=Qr(t);if(a&&!(262144&t.flags)){var i=e.mapDefined(a.declarations,(function(e){var n=ba(e),t=n&&n.exports&&n.exports.get(\"export=\");return t&&a&&ea(t,a)?n:void 0})),o=r&&function(t,r){var a,i=e.getSourceFileOfNode(r),o=\"\"+x(i),s=ir(t);if(s.extendedContainersByFile&&(a=s.extendedContainersByFile.get(o)))return a;if(i&&i.imports){for(var c=0,l=i.imports;c<l.length;c++){var u=l[c];if(!e.nodeIsSynthesized(u)){var d=wr(r,u,!0);if(d)$r(d,t)&&(a=e.append(a,d))}}if(e.length(a))return(s.extendedContainersByFile||(s.extendedContainersByFile=e.createMap())).set(o,a),a}if(s.extendedContainers)return s.extendedContainers;for(var p=0,m=n.getSourceFiles();p<m.length;p++){var f=m[p];if(e.isExternalModule(f)){var _=Yr(f);$r(_,t)&&(a=e.append(a,_))}}return s.extendedContainers=a||e.emptyArray}(t,r);if(r&&_a(a,r,1920,!1))return e.concatenate(e.concatenate([a],i),o);var s=e.append(i,a);return e.concatenate(s,o)}var c=e.mapDefined(t.declarations,(function(n){return!e.isAmbientModule(n)&&n.parent&&Ta(n.parent)?Yr(n.parent):e.isClassExpression(n)&&e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind&&e.isAccessExpression(n.parent.left)&&e.isEntityNameExpression(n.parent.left.expression)?e.isModuleExportsAccessExpression(n.parent.left)||e.isExportsIdentifier(n.parent.left.expression)?Yr(e.getSourceFileOfNode(n)):(hy(n.parent.left.expression),or(n.parent.left.expression).resolvedSymbol):void 0}));if(e.length(c))return e.mapDefined(c,(function(e){return $r(e,t)?e:void 0}))}function $r(n,t){if(n===Qr(t))return t;var r=n.exports&&n.exports.get(\"export=\");if(r&&ea(r,t))return n;var a=Wr(n),i=a.get(t.escapedName);return i&&ea(i,t)?i:e.forEachEntry(a,(function(e){if(ea(e,t))return e}))}function ea(e,n){if(Xr(Dr(Xr(e)))===Xr(Dr(Xr(n))))return e}function na(e){return Xr(e&&0!=(1048576&e.flags)?e.exportSymbol:e)}function ta(e){return!!(111551&e.flags||2097152&e.flags&&111551&kr(e).flags)}function ra(n){for(var t=0,r=n.members;t<r.length;t++){var a=r[t];if(161===a.kind&&e.nodeIsPresent(a.body))return a}}function aa(e){var n=new p(ne,e);return f++,n.id=f,n}function ia(e,n,t){void 0===t&&(t=0);var r=aa(e);return r.intrinsicName=n,r.objectFlags=t,r}function oa(e){var n=Wc(e);return n.flags|=16,n.intrinsicName=\"boolean\",n}function sa(e,n){var t=aa(524288);return t.objectFlags=e,t.symbol=n,t.members=void 0,t.properties=void 0,t.callSignatures=void 0,t.constructSignatures=void 0,t.stringIndexInfo=void 0,t.numberIndexInfo=void 0,t}function ca(e){var n=aa(262144);return e&&(n.symbol=e),n}function la(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&95!==e.charCodeAt(2)&&64!==e.charCodeAt(2)}function ua(n){var t;return n.forEach((function(e,n){!la(n)&&ta(e)&&(t||(t=[])).push(e)})),t||e.emptyArray}function da(n,t,r,a,i,o){return n.members=t,n.properties=t===O?e.emptyArray:ua(t),n.callSignatures=r,n.constructSignatures=a,n.stringIndexInfo=i,n.numberIndexInfo=o,n}function pa(e,n,t,r,a,i){return da(sa(16,e),n,t,r,a,i)}function ma(n,t){for(var r,a=function(n){if(n.locals&&!sr(n)&&(r=t(n.locals)))return{value:r};switch(n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;case 248:var a=Yr(n);if(r=t(a.exports||O))return{value:r};break;case 244:case 213:case 245:var i;if((Yr(n).members||O).forEach((function(n,t){788968&n.flags&&(i||(i=e.createSymbolTable())).set(t,n)})),i&&(r=t(i)))return{value:r}}},i=n;i;i=i.parent){var o=a(i);if(\"object\"==typeof o)return o.value}return t(X)}function fa(e){return 111551===e?111551:1920}function _a(n,t,r,a,i){if(void 0===i&&(i=e.createMap()),n&&!function(e){if(e.declarations&&e.declarations.length){for(var n=0,t=e.declarations;n<t.length;n++){switch(t[n].kind){case 158:case 160:case 162:case 163:continue;default:return!1}}return!0}return!1}(n)){var o=\"\"+L(n),s=i.get(o);return s||i.set(o,s=[]),ma(t,c)}function c(i,o){if(e.pushIfUnique(s,i)){var d=function(i,o){if(u(i.get(n.escapedName),void 0,o))return[n];return e.forEachEntry(i,(function(i){if(2097152&i.flags&&\"export=\"!==i.escapedName&&\"default\"!==i.escapedName&&!(e.isUMDExportSymbol(i)&&t&&e.isExternalModule(e.getSourceFileOfNode(t)))&&(!a||e.some(i.declarations,e.isExternalModuleImportEqualsDeclaration))&&(o||!e.getDeclarationOfKind(i,261))){var s=kr(i);if(u(i,s,o))return[i];var d=Wr(s),p=d&&c(d,!0);if(p&&l(i,fa(r)))return[i].concat(p)}if(i.escapedName===n.escapedName&&i.exportSymbol&&u(Xr(i.exportSymbol),void 0,o))return[n]}))}(i,o);return s.pop(),d}}function l(e,n){return!ga(e,t,n)||!!_a(e.parent,t,fa(n),a,i)}function u(t,a,i){return(n===(a||t)||Xr(n)===Xr(a||t))&&!e.some(t.declarations,Ta)&&(i||l(Xr(t),r))}}function ga(n,t,r){var a=!1;return ma(t,(function(t){var i=Xr(t.get(n.escapedName));return!!i&&(i===n||!!((i=2097152&i.flags&&!e.getDeclarationOfKind(i,261)?kr(i):i).flags&r)&&(a=!0,!0))})),a}function ya(e,n){return 0===ha(e,n,788968,!1).accessibility}function va(e,n){return 0===ha(e,n,111551,!1).accessibility}function ha(n,t,r,a){if(n&&t){var i=function n(t,r,a,i,o){if(e.length(t)){for(var s,c=0,l=t;c<l.length;c++){var u=l[c],d=_a(u,r,i,!1);if(d){s=u;var p=Sa(d[0],o);if(p)return p}else if(e.some(u.declarations,Ta))return{accessibility:0};var m=Zr(u,r),f=e.first(u.declarations);!e.length(m)&&111551&i&&f&&e.isObjectLiteralExpression(f)&&f.parent&&e.isVariableDeclaration(f.parent)&&f===f.parent.initializer&&(m=[Yr(f.parent)]);var _=n(m,r,a,a===u?fa(i):i,o);if(_)return _}return s?{accessibility:1,errorSymbolName:La(a,r,i),errorModuleName:s!==a?La(s,r,1920):void 0}:void 0}}([n],t,n,r,a);if(i)return i;var o=e.forEach(n.declarations,ba);if(o)if(o!==ba(t))return{accessibility:2,errorSymbolName:La(n,t,r),errorModuleName:La(o)};return{accessibility:1,errorSymbolName:La(n,t,r)}}return{accessibility:0}}function ba(n){var t=e.findAncestor(n,Ea);return t&&Yr(t)}function Ea(n){return e.isAmbientModule(n)||288===n.kind&&e.isExternalOrCommonJsModule(n)}function Ta(n){return e.isModuleWithStringLiteralName(n)||288===n.kind&&e.isExternalOrCommonJsModule(n)}function Sa(n,t){var r;if(e.every(e.filter(n.declarations,(function(e){return 75!==e.kind})),(function(n){if(!Fa(n)){var t=vr(n);return t&&!e.hasModifier(t,1)&&Fa(t.parent)?a(n,t):e.isVariableDeclaration(n)&&e.isVariableStatement(n.parent.parent)&&!e.hasModifier(n.parent.parent,1)&&Fa(n.parent.parent.parent)?a(n,n.parent.parent):!(!e.isLateVisibilityPaintedStatement(n)||e.hasModifier(n,1)||!Fa(n.parent))&&a(n,n)}return!0})))return{accessibility:0,aliasesToMakeVisible:r};function a(n,a){return t&&(or(n).isVisible=!0,r=e.appendIfUnique(r,a)),!0}}function xa(n,t){var r;r=171===n.parent.kind||e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)||153===n.parent.kind?1160127:152===n.kind||193===n.kind||252===n.parent.kind?1920:788968;var a=e.getFirstIdentifier(n),i=ur(t,a.escapedText,r,void 0,void 0,!1);return i&&Sa(i,!0)||{accessibility:1,errorSymbolName:e.getTextOfNode(a),errorNode:a}}function La(n,t,r,a,i){void 0===a&&(a=4);var o=70221824;2&a&&(o|=128),1&a&&(o|=512),8&a&&(o|=16384),16&a&&(o|=134217728);var s=4&a?J.symbolToExpression:J.symbolToEntityName;return i?c(i).getText():e.usingSingleLineStringWriter(c);function c(a){var i=s(n,r,t,o),c=e.createPrinter({removeComments:!0}),l=t&&e.getSourceFileOfNode(t);return c.writeNode(4,i,l,a),a}}function Ca(n,t,r,a,i){return void 0===r&&(r=0),i?o(i).getText():e.usingSingleLineStringWriter(o);function o(i){var o;o=262144&r?1===a?170:169:1===a?165:164;var s=J.signatureToSignatureDeclaration(n,o,t,70222336|Na(r)),c=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0}),l=t&&e.getSourceFileOfNode(t);return c.writeNode(4,s,l,e.getTrailingSemicolonDeferringWriter(i)),i}}function Aa(n,t,r,a){void 0===r&&(r=1064960),void 0===a&&(a=e.createTextWriter(\"\"));var i=P.noErrorTruncation||1&r,o=J.typeToTypeNode(n,t,70221824|Na(r)|(i?1:0),a);if(void 0===o)return e.Debug.fail(\"should always get typenode\");var s=e.createPrinter({removeComments:!0}),c=t&&e.getSourceFileOfNode(t);s.writeNode(4,o,c,a);var l=a.getText(),u=i?void 0:2*e.defaultMaximumTruncationLength;return u&&l&&l.length>=u?l.substr(0,u-\"...\".length)+\"...\":l}function Da(e,n){var t=ka(e.symbol)?Aa(e,e.symbol.valueDeclaration):Aa(e),r=ka(n.symbol)?Aa(n,n.symbol.valueDeclaration):Aa(n);return t===r&&(t=Aa(e,void 0,64),r=Aa(n,void 0,64)),[t,r]}function ka(n){return n&&n.valueDeclaration&&e.isExpression(n.valueDeclaration)&&!fu(n.valueDeclaration)}function Na(e){return void 0===e&&(e=0),9469291&e}function Ia(n,t,r,a){return void 0===r&&(r=16384),a?i(a).getText():e.usingSingleLineStringWriter(i);function i(a){var i=e.createTypePredicateNodeWithModifier(2===n.kind||3===n.kind?e.createToken(123):void 0,1===n.kind||3===n.kind?e.createIdentifier(n.parameterName):e.createThisTypeNode(),n.type&&J.typeToTypeNode(n.type,t,70222336|Na(r))),o=e.createPrinter({removeComments:!0}),s=t&&e.getSourceFileOfNode(t);return o.writeNode(4,i,s,a),a}}function Ma(e){return 8===e?\"private\":16===e?\"protected\":\"public\"}function Oa(n){return n&&n.parent&&249===n.parent.kind&&e.isExternalModuleAugmentation(n.parent.parent)}function Ra(n){return 288===n.kind||e.isAmbientModule(n)}function Pa(n,t){var r=n.nameType;if(r){if(384&r.flags){var a=\"\"+r.value;return e.isIdentifierText(a,P.target)||Df(a)?Df(a)&&e.startsWith(a,\"-\")?\"[\"+a+\"]\":a:'\"'+e.escapeString(a,34)+'\"'}if(8192&r.flags)return\"[\"+wa(r.symbol,t)+\"]\"}}function wa(n,t){if(t&&\"default\"===n.escapedName&&!(16384&t.flags)&&(!(16777216&t.flags)||!n.declarations||t.enclosingDeclaration&&e.findAncestor(n.declarations[0],Ra)!==e.findAncestor(t.enclosingDeclaration,Ra)))return\"default\";if(n.declarations&&n.declarations.length){var r=e.firstDefined(n.declarations,(function(n){return e.getNameOfDeclaration(n)?n:void 0})),a=r&&e.getNameOfDeclaration(r);if(r&&a){if(e.isCallExpression(r)&&e.isBindableObjectDefinePropertyCall(r))return e.symbolName(n);if(e.isComputedPropertyName(a)&&!(4096&e.getCheckFlags(n))&&n.nameType&&384&n.nameType.flags){var i=Pa(n,t);if(void 0!==i)return i}return e.declarationNameToString(a)}if(r||(r=n.declarations[0]),r.parent&&241===r.parent.kind)return e.declarationNameToString(r.parent.name);switch(r.kind){case 213:case 200:case 201:return!t||t.encounteredError||131072&t.flags||(t.encounteredError=!0),213===r.kind?\"(Anonymous class)\":\"(Anonymous function)\"}}var o=Pa(n,t);return void 0!==o?o:e.symbolName(n)}function Fa(n){if(n){var t=or(n);return void 0===t.isVisible&&(t.isVisible=!!function(){switch(n.kind){case 308:case 315:case 309:return!!(n.parent&&n.parent.parent&&n.parent.parent.parent&&e.isSourceFile(n.parent.parent.parent));case 190:return Fa(n.parent.parent);case 241:if(e.isBindingPattern(n.name)&&!n.name.elements.length)return!1;case 248:case 244:case 245:case 246:case 243:case 247:case 252:if(e.isExternalModuleAugmentation(n))return!0;var t=Ka(n);return 1&e.getCombinedModifierFlags(n)||252!==n.kind&&288!==t.kind&&8388608&t.flags?Fa(t):sr(t);case 158:case 157:case 162:case 163:case 160:case 159:if(e.hasModifier(n,24))return!1;case 161:case 165:case 164:case 166:case 155:case 249:case 169:case 170:case 172:case 168:case 173:case 174:case 177:case 178:case 181:return Fa(n.parent);case 254:case 255:case 257:return!1;case 154:case 288:case 251:return!0;case 258:default:return!1}}()),t.isVisible}return!1}function Ga(n,t){var r,a,i;return n.parent&&258===n.parent.kind?r=ur(n,n.escapedText,2998271,void 0,n,!1):261===n.parent.kind&&(r=xr(n.parent,2998271)),r&&((i=e.createMap()).set(\"\"+L(r),!0),function n(r){e.forEach(r,(function(r){var o=vr(r)||r;if(t?or(r).isVisible=!0:(a=a||[],e.pushIfUnique(a,o)),e.isInternalModuleImportEqualsDeclaration(r)){var s=r.moduleReference,c=ur(r,e.getFirstIdentifier(s).escapedText,901119,void 0,void 0,!1),l=c&&\"\"+L(c);c&&!i.has(l)&&(i.set(l,!0),n(c.declarations))}}))}(r.declarations)),a}function Ba(e,n){var t=Va(e,n);if(t>=0){for(var r=gt.length,a=t;a<r;a++)yt[a]=!1;return!1}return gt.push(e),yt.push(!0),vt.push(n),!0}function Va(e,n){for(var t=gt.length-1;t>=0;t--){if(Ua(gt[t],vt[t]))return-1;if(gt[t]===e&&vt[t]===n)return t}return-1}function Ua(n,t){switch(t){case 0:return!!ir(n).type;case 5:return!!or(n).resolvedEnumType;case 2:return!!ir(n).declaredType;case 1:return!!n.resolvedBaseConstructorType;case 3:return!!n.resolvedReturnType;case 4:return!!n.immediateBaseConstraint;case 6:return!!ir(n).resolvedJSDocType;case 7:return!!n.resolvedTypeArguments}return e.Debug.assertNever(t)}function ja(){return gt.pop(),vt.pop(),yt.pop()}function Ka(n){return e.findAncestor(e.getRootDeclaration(n),(function(e){switch(e.kind){case 241:case 242:case 257:case 256:case 255:case 254:return!1;default:return!0}})).parent}function Ha(e,n){var t=ms(e,n);return t?Ci(t):void 0}function Wa(e){return e&&0!=(1&e.flags)}function za(e){var n=Yr(e);return n&&ir(n).type||ri(e,!1)}function qa(n){return 153===n.kind&&!e.isStringOrNumericLiteralLike(n.expression)}function Ja(n,t,r){if(131072&(n=am(n,(function(e){return!(98304&e.flags)}))).flags)return je;if(1048576&n.flags)return om(n,(function(e){return Ja(e,t,r)}));var a=Wc(e.map(t,el));if(ul(n)||dl(a)){if(131072&a.flags)return n;var i=Bn||(Bn=Sc(\"Omit\",524288,e.Diagnostics.Cannot_find_global_type_0));return i?cc(i,[n,a]):ge}for(var o=e.createSymbolTable(),s=0,c=Xo(n);s<c.length;s++){var l=c[s];xu(nl(l,8576),a)||24&e.getDeclarationModifierFlagsFromSymbol(l)||!Ol(l)||o.set(l.escapedName,Rl(l,!1))}var u=vs(n,0),d=vs(n,1);return pa(r,o,e.emptyArray,e.emptyArray,u,d)}function Xa(e,n){var t=Ya(e);return t?Am(t,n):n}function Ya(n){var t=function(e){var n=e.parent.parent;switch(n.kind){case 190:case 279:return Ya(n);case 191:return Ya(e.parent);case 241:return n.initializer;case 208:return n.right}}(n);if(t&&t.flowNode){var r=function(e){var n=e.parent;if(190===e.kind&&188===n.kind)return Qa(e.propertyName||e.name);if(279===e.kind||280===e.kind)return Qa(e.name);return\"\"+n.elements.indexOf(e)}(n);if(r){var a=e.createNode(194,n.pos,n.end);a.parent=n,a.expression=t;var i=e.createNode(10,n.pos,n.end);return i.parent=a,i.text=r,a.argumentExpression=i,a.flowNode=t.flowNode,a}}}function Qa(e){var n=el(e);return 384&n.flags?\"\"+n.value:void 0}function Za(n){var t,r=n.parent,a=za(r.parent);if(!a||Wa(a))return a;if(B&&8388608&n.flags&&e.isParameterDeclaration(n)&&(a=wd(a)),188===r.kind)if(n.dotDotDotToken){if(2&a.flags||!Of(a))return Wt(n,e.Diagnostics.Rest_types_may_only_be_created_from_object_types),ge;for(var i=[],o=0,s=r.elements;o<s.length;o++){var c=s[o];c.dotDotDotToken||i.push(c.propertyName||c.name)}t=Ja(a,i,n.symbol)}else{var l=n.propertyName||n.name;t=Xa(n,Rm(yl(a,p=el(l),l),n.name))}else{var u=zv(65,a,ve,r),d=r.elements.indexOf(n);if(n.dotDotDotToken)t=rm(a,Cd)?om(a,(function(e){return Gc(e,d)})):Oc(u);else if(fd(a)){var p=Vl(d),m=Tf(n)?8:0;t=Xa(n,Rm(vl(a,p,n.name,m)||ge,n.name))}else t=u}return n.initializer?e.getEffectiveTypeAnnotationNode(e.walkUpBindingElementsAndPatterns(n))?!B||32768&Id(Ey(n))?t:Up(t,524288):Wc([Up(t,524288),Ey(n)],2):t}function $a(n){var t=e.getJSDocType(n);if(t)return Kl(t)}function ei(n){var t=e.skipParentheses(n);return 191===t.kind&&0===t.elements.length}function ni(e,n){return void 0===n&&(n=!0),B&&n?Pd(e):e}function ti(e){return 155===e.kind&&(200===e.parent.kind||201===e.parent.kind)&&!!ff(e.parent)}function ri(n,t){if(e.isVariableDeclaration(n)&&230===n.parent.parent.kind){var r=al(i_(Py(n.parent.parent.expression)));return 4456448&r.flags?il(r):Se}if(e.isVariableDeclaration(n)&&231===n.parent.parent.kind){var a=n.parent.parent;return Wv(a.expression,a.awaitModifier)||me}if(e.isBindingPattern(n.parent))return Za(n);var i,o,s=t&&(e.isParameter(n)&&Ss(n)||!e.isBindingElement(n)&&!e.isVariableDeclaration(n)&&!!n.questionToken),c=_i(n);if(c)return ni(c,s);if((K||e.isInJSFile(n))&&241===n.kind&&!e.isBindingPattern(n.name)&&!(1&e.getCombinedModifierFlags(n))&&!(8388608&n.flags)){if(!(2&e.getCombinedNodeFlags(n)||n.initializer&&(i=n.initializer,o=e.skipParentheses(i),99!==o.kind&&(75!==o.kind||Ap(o)!==Y))))return fe;if(n.initializer&&ei(n.initializer))return gn}if(155===n.kind){var l,u=n.parent;if(163===u.kind&&!lo(u)){var d=e.getDeclarationOfKind(Yr(n.parent),162);if(d){var p=Ns(d),m=rE(u);return m&&n===m?(e.Debug.assert(!m.type),Ci(p.thisParameter)):ws(p)}}if(e.isInJSFile(n)){var f=e.getJSDocType(u);if(f&&e.isFunctionTypeNode(f))return Ag(Ns(f),u.parameters.indexOf(n))}if(l=\"this\"===n.symbol.escapedName?Jm(u):Xm(n,!0))return ni(l,s)}else if(e.isInJSFile(n)){var _=ii(n,Yr(n),e.getDeclaredExpandoInitializer(n));if(_)return _}return n.initializer&&!ti(n)?ni(l=Ey(n),s):e.isJsxAttribute(n)?De:e.isBindingPattern(n.name)&&!ti(n)?di(n.name,!1,!0):void 0}function ai(n,t){var r=e.getAssignedExpandoInitializer(n.valueDeclaration);if(r){var a=e.getJSDocTypeTag(r);return a&&a.typeExpression?Kl(a.typeExpression):ii(n.valueDeclaration,n,r)||Td(hy(r))}for(var i,o,s=!1,c=!1,l=0,u=n.declarations;l<u.length;l++){var d=u[l],p=e.isBinaryExpression(d)||e.isCallExpression(d)?d:e.isAccessExpression(d)?e.isBinaryExpression(d.parent)?d.parent:d:void 0;if(p){var m=e.isAccessExpression(p)?e.getAssignmentDeclarationPropertyAccessKind(p):e.getAssignmentDeclarationKind(p);4===m&&(ci(p)?s=!0:c=!0),e.isCallExpression(p)||(i=oi(i,p,n,d)),i||(o||(o=[])).push(e.isBinaryExpression(p)||e.isCallExpression(p)?si(n,t,p,m):Oe)}}var f=i;if(!f){if(!e.length(o))return ge;var _=s?function(n,t){return e.Debug.assert(n.length===t.length),n.filter((function(n,r){var a=t[r],i=e.isBinaryExpression(a)?a:e.isBinaryExpression(a.parent)?a.parent:void 0;return i&&ci(i)}))}(o,n.declarations):void 0;if(c){var g=function(n){var t=e.forEach(n.declarations,(function(n){var t=e.getThisContainer(n,!1).parent;return e.isClassLike(t)&&t}));if(t){var r=Yi(Yr(t)),a=r&&Vi(r)[0];if(a)return Ha(a,n.escapedName)}}(n);g&&((_||(_=[])).push(g),s=!0)}f=Wc(e.some(_,(function(e){return!!(-98305&e.flags)}))?_:o,2)}var y=Xd(ni(f,c&&!s));return am(y,(function(e){return!!(-98305&e.flags)}))===Oe?(Qd(n.valueDeclaration,me),me):y}function ii(n,t,r){if(e.isInJSFile(n)&&r&&e.isObjectLiteralExpression(r)&&!r.properties.length){for(var a=e.createSymbolTable();e.isBinaryExpression(n)||e.isPropertyAccessExpression(n);){var i=Yr(n);i&&e.hasEntries(i.exports)&&rr(a,i.exports),n=e.isBinaryExpression(n)?n.parent:n.parent.parent}var o=Yr(n);o&&e.hasEntries(o.exports)&&rr(a,o.exports);var s=pa(t,a,e.emptyArray,e.emptyArray,void 0,void 0);return s.objectFlags|=16384,s}}function oi(n,t,r,a){var i=e.getEffectiveTypeAnnotationNode(t.parent);if(i){var o=Xd(Kl(i));if(!n)return o;n===ge||o===ge||hu(n,o)||wv(void 0,n,a,o)}if(r.parent){var s=e.getEffectiveTypeAnnotationNode(r.parent.valueDeclaration);if(s)return Ha(Kl(s),r.escapedName)}return n}function si(n,t,r,a){if(e.isCallExpression(r)){if(t)return Ci(t);var i=hy(r.arguments[2]),o=Ha(i,\"value\");if(o)return o;var s=Ha(i,\"get\");if(s){var c=F_(s);if(c)return ws(c)}var l=Ha(i,\"set\");if(l){var u=F_(l);if(u)return Pg(u)}return me}var d=t?Ci(t):Td(hy(r.right));if(524288&d.flags&&2===a&&\"export=\"===n.escapedName){var p=Wo(d),m=e.createSymbolTable();e.copyEntries(p.members,m),t&&!t.exports&&(t.exports=e.createSymbolTable()),(t||n).exports.forEach((function(e,n){if(m.has(n)){var t=p.members.get(n),r=Xt(e.flags|t.flags,n);r.type=Wc([Ci(e),Ci(t)]),m.set(n,r)}else m.set(n,e)}));var f=pa(p.symbol,m,p.callSignatures,p.constructSignatures,p.stringIndexInfo,p.numberIndexInfo);return f.objectFlags|=16384&e.getObjectFlags(d),f}return _d(d)?(Qd(r,_n),_n):d}function ci(n){var t=e.getThisContainer(n,!1);return 161===t.kind||243===t.kind||200===t.kind&&!e.isPrototypePropertyAssignment(t.parent)}function li(n,t,r){return n.initializer?ni(Ey(n)):e.isBindingPattern(n.name)?di(n.name,t,r):(r&&!fi(n)&&Qd(n,me),me)}function ui(n,t,r){var a,i=n.elements,o=e.lastOrUndefined(i),s=!(!o||190!==o.kind||!o.dotDotDotToken);if(0===i.length||1===i.length&&s)return w>=2?(a=me,Ic(kc(!0),[a])):_n;var c=Fc(e.map(i,(function(n){return e.isOmittedExpression(n)?me:li(n,t,r)})),e.findLastIndex(i,(function(n){return!e.isOmittedExpression(n)&&!Tf(n)}),i.length-(s?2:1))+1,s);return t&&((c=rc(c)).pattern=n),c}function di(n,t,r){return void 0===t&&(t=!1),void 0===r&&(r=!1),188===n.kind?function(n,t,r){var a,i=e.createSymbolTable(),o=524416;e.forEach(n.elements,(function(e){var n=e.propertyName||e.name;if(e.dotDotDotToken)a=Xs(me,!1);else{var s=el(n);if(io(s)){var c=uo(s),l=Xt(4|(e.initializer?16777216:0),c);l.type=li(e,t,r),l.bindingElement=e,i.set(l.escapedName,l)}else o|=512}}));var s=pa(void 0,i,e.emptyArray,e.emptyArray,a,void 0);return s.objectFlags|=o,t&&(s.pattern=n),s}(n,t,r):ui(n,t,r)}function pi(e,n){return mi(ri(e,!0),e,n)}function mi(n,t,r){return n?(r&&Zd(t,n),8192&n.flags&&(e.isBindingElement(t)||!t.type)&&n.symbol!==Yr(t)&&(n=Ie),Xd(n)):(n=e.isParameter(t)&&t.dotDotDotToken?_n:me,r&&(fi(t)||Qd(t,n)),n)}function fi(n){var t=e.getRootDeclaration(n);return Zy(155===t.kind?t.parent:t)}function _i(n){var t=e.getEffectiveTypeAnnotationNode(n);if(t)return Kl(t)}function gi(n){var t=ir(n);if(!t.type){var r=function(n){if(4194304&n.flags)return(t=Yi(Qr(n))).typeParameters?tc(t,e.map(t.typeParameters,(function(e){return me}))):t;var t;if(n===ee)return me;if(134217728&n.flags){var r=Yr(e.getSourceFileOfNode(n.valueDeclaration)),a=e.createSymbolTable();return a.set(\"exports\",r),pa(n,a,e.emptyArray,e.emptyArray,void 0,void 0)}var i,o=n.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(o))return me;if(e.isSourceFile(o)&&e.isJsonSourceFile(o)){if(!o.statements.length)return je;var s=Td(Py(o.statements[0].expression));return 524288&s.flags?Hd(s):s}if(!Ba(n,0))return 512&n.flags&&!(67108864&n.flags)?Si(n):Li(n);if(258===o.kind)i=mi(hy(o.expression),o);else if(e.isBinaryExpression(o)||e.isInJSFile(o)&&(e.isCallExpression(o)||(e.isPropertyAccessExpression(o)||e.isBindableStaticElementAccessExpression(o))&&e.isBinaryExpression(o.parent)))i=ai(n);else if(e.isJSDocPropertyLikeTag(o)||e.isPropertyAccessExpression(o)||e.isElementAccessExpression(o)||e.isIdentifier(o)||e.isStringLiteralLike(o)||e.isNumericLiteral(o)||e.isClassDeclaration(o)||e.isFunctionDeclaration(o)||e.isMethodDeclaration(o)&&!e.isObjectLiteralMethod(o)||e.isMethodSignature(o)||e.isSourceFile(o)){if(9136&n.flags)return Si(n);i=e.isBinaryExpression(o.parent)?ai(n):_i(o)||me}else if(e.isPropertyAssignment(o))i=_i(o)||Ly(o);else if(e.isJsxAttribute(o))i=_i(o)||wf(o);else if(e.isShorthandPropertyAssignment(o))i=_i(o)||xy(o.name,0);else if(e.isObjectLiteralMethod(o))i=_i(o)||Cy(o,0);else if(e.isParameter(o)||e.isPropertyDeclaration(o)||e.isPropertySignature(o)||e.isVariableDeclaration(o)||e.isBindingElement(o))i=pi(o,!0);else if(e.isEnumDeclaration(o))i=Si(n);else if(e.isEnumMember(o))i=xi(n);else{if(!e.isAccessor(o))return e.Debug.fail(\"Unhandled declaration kind! \"+e.Debug.formatSyntaxKind(o.kind)+\" for \"+e.Debug.formatSymbol(n));i=Ei(n)}if(!ja())return 512&n.flags&&!(67108864&n.flags)?Si(n):Li(n);return i}(n);t.type||(t.type=r)}return t.type}function yi(n){if(n)return 162===n.kind?e.getEffectiveReturnTypeNode(n):e.getEffectiveSetAccessorTypeAnnotationNode(n)}function vi(e){var n=yi(e);return n&&Kl(n)}function hi(e){return Rs(Ns(e))}function bi(n){var t=ir(n);return t.type||(t.type=function(n){if(!Ba(n,0))return ge;var t=Ei(n);if(!ja()){if(t=me,K)Wt(e.getDeclarationOfKind(n,162),e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,La(n))}return t}(n))}function Ei(n){var t=e.getDeclarationOfKind(n,162),r=e.getDeclarationOfKind(n,163);if(t&&e.isInJSFile(t)){var a=$a(t);if(a)return a}var i=vi(t);if(i)return i;var o=vi(r);return o||(t&&t.body?jg(t):(r?Zy(r)||qt(K,r,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,La(n)):(e.Debug.assert(!!t,\"there must exist a getter as we are current checking either setter or getter in this function\"),Zy(t)||qt(K,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,La(n))),me))}function Ti(n){var t=Bi(ji(n));return 8650752&t.flags?t:2097152&t.flags?e.find(t.types,(function(e){return!!(8650752&e.flags)})):void 0}function Si(n){var t=ir(n),r=t;if(!t.type){var a=e.getDeclarationOfExpando(n.valueDeclaration);if(a){var i=gg(n,Yr(a));i&&(n=t=i)}r.type=t.type=function(n){var t=n.valueDeclaration;if(1536&n.flags&&e.isShorthandAmbientModuleSymbol(n))return me;if(208===t.kind||(193===t.kind||194===t.kind)&&208===t.parent.kind)return ai(n);if(512&n.flags&&t&&e.isSourceFile(t)&&t.commonJsModuleIndicator){var r=Vr(n);if(r!==n){if(!Ba(n,0))return ge;var a=Xr(n.exports.get(\"export=\")),i=ai(a,a===r?void 0:r);return ja()?i:Li(n)}}var o=sa(16,n);if(32&n.flags){var s=Ti(n);return s?Zc([o,s]):o}return B&&16777216&n.flags?Pd(o):o}(n)}return t.type}function xi(e){var n=ir(e);return n.type||(n.type=Ji(e))}function Li(n){var t=n.valueDeclaration;return e.getEffectiveTypeAnnotationNode(t)?(Wt(n.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,La(n)),ge):(K&&(155!==t.kind||t.initializer)&&Wt(n.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,La(n)),me)}function Ci(n){return 65536&e.getCheckFlags(n)?function(n){var t=ir(n);return t.type||(e.Debug.assertDefined(t.deferralParent),e.Debug.assertDefined(t.deferralConstituents),t.type=1048576&t.deferralParent.flags?Wc(t.deferralConstituents):Zc(t.deferralConstituents)),t.type}(n):1&e.getCheckFlags(n)?function(e){var n=ir(e);if(!n.type){if(!Ba(e,0))return n.type=ge;var t=uu(Ci(n.target),n.mapper);ja()||(t=Li(e)),n.type=t}return n.type}(n):8192&e.getCheckFlags(n)?function(e){return dp(e.propertyType,e.mappedType,e.constraintType)}(n):7&n.flags?gi(n):9136&n.flags?Si(n):8&n.flags?xi(n):98304&n.flags?bi(n):2097152&n.flags?function(e){var n=ir(e);if(!n.type){var t=kr(e);n.type=111551&t.flags?Ci(t):ge}return n.type}(n):ge}function Ai(n,t){return void 0!==n&&void 0!==t&&0!=(4&e.getObjectFlags(n))&&n.target===t}function Di(n){return 4&e.getObjectFlags(n)?n.target:n}function ki(n,t){return function n(r){if(7&e.getObjectFlags(r)){var a=Di(r);return a===t||e.some(Vi(a),n)}if(2097152&r.flags)return e.some(r.types,n);return!1}(n)}function Ni(n,t){for(var r=0,a=t;r<a.length;r++){var i=a[r];n=e.appendIfUnique(n,Xi(Yr(i)))}return n}function Ii(n,t){for(;;){if((n=n.parent)&&e.isBinaryExpression(n)){var r=e.getAssignmentDeclarationKind(n);if(6===r||3===r){var a=Yr(n.left);a&&a.parent&&!e.findAncestor(a.parent.valueDeclaration,(function(e){return n===e}))&&(n=a.parent.valueDeclaration)}}if(!n)return;switch(n.kind){case 244:case 213:case 245:case 164:case 165:case 159:case 169:case 170:case 298:case 243:case 160:case 200:case 201:case 246:case 314:case 315:case 309:case 308:case 185:case 179:var i=Ii(n,t);if(185===n.kind)return e.append(i,Xi(Yr(n.typeParameter)));if(179===n.kind)return e.concatenate(i,Ll(n));var o=Ni(i,e.getEffectiveTypeParameterDeclarations(n)),s=t&&(244===n.kind||213===n.kind||245===n.kind||_g(n))&&ji(Yr(n)).thisType;return s?e.append(o,s):o}}}function Mi(n){var t=32&n.flags?n.valueDeclaration:e.getDeclarationOfKind(n,245);return e.Debug.assert(!!t,\"Class was missing valueDeclaration -OR- non-class had no interface declarations\"),Ii(t)}function Oi(n){for(var t,r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(245===i.kind||244===i.kind||213===i.kind||_g(i)||e.isTypeAlias(i)){var o=i;t=Ni(t,e.getEffectiveTypeParameterDeclarations(o))}}return t}function Ri(e){var n=_s(e,1);if(1===n.length){var t=n[0];return!t.typeParameters&&1===t.parameters.length&&I(t)&&md(Lg(t.parameters[0]))===me}return!1}function Pi(e){if(_s(e,1).length>0)return!0;if(8650752&e.flags){var n=ts(e);return!!n&&Ri(n)}return!1}function wi(n){return e.getEffectiveBaseTypeNode(n.symbol.valueDeclaration)}function Fi(n,t,r){var a=e.length(t),i=e.isInJSFile(r);return e.filter(_s(n,1),(function(n){return(i||a>=Ds(n.typeParameters))&&a<=e.length(n.typeParameters)}))}function Gi(n,t,r){var a=Fi(n,t,r),i=e.map(t,Kl);return e.sameMap(a,(function(n){return e.some(n.typeParameters)?Vs(n,i,e.isInJSFile(r)):n}))}function Bi(n){if(!n.resolvedBaseConstructorType){var t=n.symbol.valueDeclaration,r=e.getEffectiveBaseTypeNode(t),a=wi(n);if(!a)return n.resolvedBaseConstructorType=ve;if(!Ba(n,1))return ge;var i=Py(a.expression);if(r&&a!==r&&(e.Debug.assert(!r.typeArguments),Py(r.expression)),2621440&i.flags&&Wo(i),!ja())return Wt(n.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,La(n.symbol)),n.resolvedBaseConstructorType=ge;if(!(1&i.flags||i===Te||Pi(i))){var o=Wt(a.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Aa(i));if(262144&i.flags){var s=Zs(i),c=ye;if(s){var l=_s(s,1);l[0]&&(c=ws(l[0]))}e.addRelatedInfo(o,e.createDiagnosticForNode(i.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,La(i.symbol),Aa(c)))}return n.resolvedBaseConstructorType=ge}n.resolvedBaseConstructorType=i}return n.resolvedBaseConstructorType}function Vi(n){return n.resolvedBaseTypes||(8&n.objectFlags?n.resolvedBaseTypes=[Oc(Wc(n.typeParameters||e.emptyArray),n.readonly)]:96&n.symbol.flags?(32&n.symbol.flags&&function(n){n.resolvedBaseTypes=e.resolvingEmptyArray;var t=ls(Bi(n));if(!(2621441&t.flags))return n.resolvedBaseTypes=e.emptyArray;var r,a=wi(n),i=t.symbol?Yi(t.symbol):void 0;if(t.symbol&&32&t.symbol.flags&&function(e){var n=e.outerTypeParameters;if(n){var t=n.length-1,r=ic(e);return n[t].symbol!==r[t].symbol}return!0}(i))r=sc(a,t.symbol);else if(1&t.flags)r=t;else{var o=Gi(t,a.typeArguments,a);if(!o.length)return Wt(a.expression,e.Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments),n.resolvedBaseTypes=e.emptyArray;r=ws(o[0])}if(r===ge)return n.resolvedBaseTypes=e.emptyArray;if(!Ui(r))return Wt(a.expression,e.Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members,Aa(r)),n.resolvedBaseTypes=e.emptyArray;if(n===r||ki(r,n))return Wt(n.symbol.valueDeclaration,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,Aa(n,void 0,2)),n.resolvedBaseTypes=e.emptyArray;n.resolvedBaseTypes===e.resolvingEmptyArray&&(n.members=void 0);n.resolvedBaseTypes=[r]}(n),64&n.symbol.flags&&function(n){n.resolvedBaseTypes=n.resolvedBaseTypes||e.emptyArray;for(var t=0,r=n.symbol.declarations;t<r.length;t++){var a=r[t];if(245===a.kind&&e.getInterfaceBaseTypeNodes(a))for(var i=0,o=e.getInterfaceBaseTypeNodes(a);i<o.length;i++){var s=o[i],c=Kl(s);c!==ge&&(Ui(c)?n===c||ki(c,n)?Wt(a,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,Aa(n,void 0,2)):n.resolvedBaseTypes===e.emptyArray?n.resolvedBaseTypes=[c]:n.resolvedBaseTypes.push(c):Wt(s,e.Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members))}}}(n)):e.Debug.fail(\"type must be class or interface\")),n.resolvedBaseTypes}function Ui(n){if(262144&n.flags){var t=ts(n);if(t)return Ui(t)}return!!(67633153&n.flags)&&!Ho(n)||!!(2097152&n.flags)&&e.every(n.types,Ui)}function ji(n){var t,r,a,i,o=ir(n),s=o;if(!o.declaredType){var c=32&n.flags?1:2,l=gg(n,(t=n.valueDeclaration,r=t&&t.parent&&(e.isFunctionDeclaration(t)&&Yr(t)||e.isBinaryExpression(t.parent)&&Yr(t.parent.left)||e.isVariableDeclaration(t.parent)&&Yr(t.parent)),a=r&&r.exports&&r.exports.get(\"prototype\"),(i=a&&a.valueDeclaration&&function(n){if(!n.parent)return!1;for(var t=n.parent;t&&193===t.kind;)t=t.parent;if(t&&e.isBinaryExpression(t)&&e.isPrototypeAccess(t.left)&&62===t.operatorToken.kind){var r=e.getInitializerOfBinaryExpression(t);return e.isObjectLiteralExpression(r)&&r}}(a.valueDeclaration))?Yr(i):void 0));l&&(n=o=l);var u=s.declaredType=o.declaredType=sa(c,n),d=Mi(n),p=Oi(n);(d||p||1===c||!function(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t];if(245===a.kind){if(128&a.flags)return!1;var i=e.getInterfaceBaseTypeNodes(a);if(i)for(var o=0,s=i;o<s.length;o++){var c=s[o];if(e.isEntityNameExpression(c.expression)){var l=Rr(c.expression,788968,!0);if(!l||!(64&l.flags)||ji(l).thisType)return!1}}}}return!0}(n))&&(u.objectFlags|=4,u.typeParameters=e.concatenate(d,p),u.outerTypeParameters=d,u.localTypeParameters=p,u.instantiations=e.createMap(),u.instantiations.set(ec(u.typeParameters),u),u.target=u,u.resolvedTypeArguments=u.typeParameters,u.thisType=ca(n),u.thisType.isThisType=!0,u.thisType.constraint=u)}return o.declaredType}function Ki(n){var t=ir(n);if(!t.declaredType){if(!Ba(n,2))return ge;var r=e.find(n.declarations,e.isTypeAlias);if(!r)return e.Debug.fail(\"Type alias symbol with no valid declaration found\");var a=e.isJSDocTypeAlias(r)?r.typeExpression:r.type,i=a?Kl(a):ge;if(ja()){var o=Oi(n);o&&(t.typeParameters=o,t.instantiations=e.createMap(),t.instantiations.set(ec(o),i))}else i=ge,Wt(e.isJSDocEnumTag(r)?r:r.name||r,e.Diagnostics.Type_alias_0_circularly_references_itself,La(n));t.declaredType=i}return t.declaredType}function Hi(n){var t=n.initializer;if(!t)return!(8388608&n.flags);switch(t.kind){case 10:case 8:case 14:return!0;case 206:return 40===t.operator&&8===t.operand.kind;case 75:return e.nodeIsMissing(t)||!!Yr(n.parent).exports.get(t.escapedText);case 208:return function n(t){return!!e.isStringLiteralLike(t)||208===t.kind&&(n(t.left)&&n(t.right))}(t);default:return!1}}function Wi(n){var t=ir(n);if(void 0!==t.enumKind)return t.enumKind;for(var r=!1,a=0,i=n.declarations;a<i.length;a++){var o=i[a];if(247===o.kind)for(var s=0,c=o.members;s<c.length;s++){var l=c[s];if(l.initializer&&e.isStringLiteralLike(l.initializer))return t.enumKind=1;Hi(l)||(r=!0)}}return t.enumKind=r?0:1}function zi(e){return 1024&e.flags&&!(1048576&e.flags)?Yi(Qr(e.symbol)):e}function qi(e){var n=ir(e);if(n.declaredType)return n.declaredType;if(1===Wi(e)){g++;for(var t=[],r=0,a=e.declarations;r<a.length;r++){var i=a[r];if(247===i.kind)for(var o=0,s=i.members;o<s.length;o++){var c=s[o],l=Cb(c),u=Fl(Vl(void 0!==l?l:0,g,Yr(c)));ir(Yr(c)).declaredType=u,t.push(Gl(u))}}if(t.length){var d=Wc(t,1,e,void 0);return 1048576&d.flags&&(d.flags|=1024,d.symbol=e),n.declaredType=d}}var p=aa(32);return p.symbol=e,n.declaredType=p}function Ji(e){var n=ir(e);if(!n.declaredType){var t=qi(Qr(e));n.declaredType||(n.declaredType=t)}return n.declaredType}function Xi(e){var n=ir(e);return n.declaredType||(n.declaredType=ca(e))}function Yi(e){return Qi(e)||ge}function Qi(e){return 96&e.flags?ji(e):524288&e.flags?Ki(e):262144&e.flags?Xi(e):384&e.flags?qi(e):8&e.flags?Ji(e):2097152&e.flags?function(e){var n=ir(e);return n.declaredType||(n.declaredType=Yi(kr(e)))}(e):void 0}function Zi(e){switch(e.kind){case 124:case 147:case 142:case 139:case 150:case 127:case 143:case 140:case 109:case 145:case 99:case 136:case 186:return!0;case 173:return Zi(e.elementType);case 168:return!e.typeArguments||e.typeArguments.every(Zi)}return!1}function $i(n){var t=e.getEffectiveConstraintOfTypeParameter(n);return!t||Zi(t)}function eo(n){var t=e.getEffectiveTypeAnnotationNode(n);return t?Zi(t):!e.hasInitializer(n)}function no(n){if(n.declarations&&1===n.declarations.length){var t=n.declarations[0];if(t)switch(t.kind){case 158:case 157:return eo(t);case 160:case 159:case 161:case 162:case 163:return r=t,a=e.getEffectiveReturnTypeNode(r),i=e.getEffectiveTypeParameterDeclarations(r),(161===r.kind||!!a&&Zi(a))&&r.parameters.every(eo)&&i.every($i)}}var r,a,i;return!1}function to(n,t,r){for(var a=e.createSymbolTable(),i=0,o=n;i<o.length;i++){var s=o[i];a.set(s.escapedName,r&&no(s)?s:tu(s,t))}return a}function ro(e,n){for(var t=0,r=n;t<r.length;t++){var a=r[t];e.has(a.escapedName)||e.set(a.escapedName,a)}}function ao(n){if(!n.declaredProperties){var t=n.symbol,r=fo(t);n.declaredProperties=ua(r),n.declaredCallSignatures=e.emptyArray,n.declaredConstructSignatures=e.emptyArray,n.declaredCallSignatures=Os(r.get(\"__call\")),n.declaredConstructSignatures=Os(r.get(\"__new\")),n.declaredStringIndexInfo=Ys(t,0),n.declaredNumberIndexInfo=Ys(t,1)}return n}function io(e){return!!(8576&e.flags)}function oo(n){if(!e.isComputedPropertyName(n)&&!e.isElementAccessExpression(n))return!1;var t=e.isComputedPropertyName(n)?n.expression:n.argumentExpression;return e.isEntityNameExpression(t)&&io(e.isComputedPropertyName(n)?kf(n):hy(t))}function so(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&64===e.charCodeAt(2)}function co(n){var t=e.getNameOfDeclaration(n);return!!t&&oo(t)}function lo(n){return e.hasDynamicName(n)&&!co(n)}function uo(n){return 8192&n.flags?n.escapedName:384&n.flags?e.escapeLeadingUnderscores(\"\"+n.value):e.Debug.fail()}function po(n,t,r,a){e.Debug.assert(!!a.symbol,\"The member is expected to have a symbol.\");var i=or(a);if(!i.resolvedSymbol){i.resolvedSymbol=a.symbol;var o=e.isBinaryExpression(a)?a.left:a.name,s=e.isElementAccessExpression(o)?hy(o.argumentExpression):kf(o);if(io(s)){var c=uo(s),l=a.symbol.flags,u=r.get(c);u||r.set(c,u=Xt(0,c,4096));var d=t&&t.get(c);if(u.flags&Qt(l)||d){var p=d?e.concatenate(d.declarations,u.declarations):u.declarations,m=!(8192&s.flags)&&e.unescapeLeadingUnderscores(c)||e.declarationNameToString(o);e.forEach(p,(function(n){return Wt(e.getNameOfDeclaration(n)||n,e.Diagnostics.Property_0_was_also_declared_here,m)})),Wt(o||a,e.Diagnostics.Duplicate_property_0,m),u=Xt(0,c,4096)}return u.nameType=s,function(n,t,r){e.Debug.assert(!!(4096&e.getCheckFlags(n)),\"Expected a late-bound symbol.\"),n.flags|=r,ir(t.symbol).lateSymbol=n,n.declarations?n.declarations.push(t):n.declarations=[t],111551&r&&(n.valueDeclaration&&n.valueDeclaration.kind===t.kind||(n.valueDeclaration=t))}(u,a,l),u.parent?e.Debug.assert(u.parent===n,\"Existing symbol parent should match new one\"):u.parent=n,i.resolvedSymbol=u}}return i.resolvedSymbol}function mo(n,t){var r=ir(n);if(!r[t]){var a=\"resolvedExports\"===t,i=a?1536&n.flags?Jr(n):n.exports:n.members;r[t]=i||O;for(var o=e.createSymbolTable(),s=0,c=n.declarations;s<c.length;s++){var l=c[s],u=e.getMembersOfDeclaration(l);if(u)for(var d=0,p=u;d<p.length;d++){var m=p[d];a===e.hasStaticModifier(m)&&co(m)&&po(n,i,o,m)}}var f=n.assignmentDeclarationMembers;if(f)for(var _=0,g=e.arrayFrom(f.values());_<g.length;_++){m=g[_];var y=e.getAssignmentDeclarationKind(m);a===!(3===y||4===y||9===y||6===y)&&co(m)&&po(n,i,o,m)}r[t]=function(n,t){if(!e.hasEntries(n))return t;if(!e.hasEntries(t))return n;var r=e.createSymbolTable();return rr(r,n),rr(r,t),r}(i,o)||O}return r[t]}function fo(e){return 6256&e.flags?mo(e,\"resolvedMembers\"):e.members||O}function _o(n){if(106500&n.flags&&\"__computed\"===n.escapedName){var t=ir(n);if(!t.lateSymbol&&e.some(n.declarations,co)){var r=Xr(n.parent);e.some(n.declarations,e.hasStaticModifier)?Wr(r):fo(r)}return t.lateSymbol||(t.lateSymbol=n)}return n}function go(n,t,r){if(4&e.getObjectFlags(n)){var a=n.target,i=ic(n);if(e.length(a.typeParameters)===e.length(i)){var o=tc(a,e.concatenate(i,[t||a.thisType]));return r?ls(o):o}}else if(2097152&n.flags)return Zc(e.map(n.types,(function(e){return go(e,t,r)})));return r?ls(n):n}function yo(n,t,r,a){var i,o,s,c,l,u;e.rangeEquals(r,a,0,r.length)?(i=R,o=t.symbol?fo(t.symbol):e.createSymbolTable(t.declaredProperties),s=t.declaredCallSignatures,c=t.declaredConstructSignatures,l=t.declaredStringIndexInfo,u=t.declaredNumberIndexInfo):(i=Jl(r,a),o=to(t.declaredProperties,i,1===r.length),s=zl(t.declaredCallSignatures,i),c=zl(t.declaredConstructSignatures,i),l=mu(t.declaredStringIndexInfo,i),u=mu(t.declaredNumberIndexInfo,i));var d=Vi(t);if(d.length){t.symbol&&o===fo(t.symbol)&&(o=e.createSymbolTable(t.declaredProperties)),da(n,o,s,c,l,u);for(var p=e.lastOrUndefined(a),m=0,f=d;m<f.length;m++){var _=f[m],g=p?go(uu(_,i),p):_;ro(o,Xo(g)),s=e.concatenate(s,_s(g,0)),c=e.concatenate(c,_s(g,1)),l||(l=g===me?Xs(me,!1):vs(g,0)),u=u||vs(g,1)}}da(n,o,s,c,l,u)}function vo(e,n,t,r,a,i,o,s){var c=new m(ne,s);return c.declaration=e,c.typeParameters=n,c.parameters=r,c.thisParameter=t,c.resolvedReturnType=a,c.resolvedTypePredicate=i,c.minArgumentCount=o,c.target=void 0,c.mapper=void 0,c}function ho(e){var n=vo(e.declaration,e.typeParameters,e.thisParameter,e.parameters,void 0,void 0,e.minArgumentCount,3&e.flags);return n.target=e.target,n.mapper=e.mapper,n}function bo(e,n){var t=ho(e);return t.unionSignatures=n,t.target=void 0,t.mapper=void 0,t}function Eo(n,t){if((12&n.flags)===t)return n;n.optionalCallSignatureCache||(n.optionalCallSignatureCache={});var r=4===t?\"inner\":\"outer\";return n.optionalCallSignatureCache[r]||(n.optionalCallSignatureCache[r]=function(n,t){e.Debug.assert(4===t||8===t,\"An optional call signature can either be for an inner call chain or an outer call chain, but not both.\");var r=ho(n);return r.flags|=t,r}(n,t))}function To(n){if(I(n)){var t=n.parameters.length-1,r=Ci(n.parameters[t]);if(Cd(r)){var a=ic(r),i=r.target.minLength,o=r.target.hasRestElement?a.length-1:-1,s=e.map(a,(function(e,r){var a=Xt(1,Cg(n,t+r),r===o?32768:r>=i?16384:0);return a.type=r===o?Oc(e):e,a}));return e.concatenate(n.parameters.slice(0,t),s)}}return n.parameters}function So(e,n,t,r,a){for(var i=0,o=e;i<o.length;i++){var s=o[i];if(ld(s,n,t,r,a,t?Tu:bu))return s}}function xo(n,t,r){if(t.typeParameters){if(r>0)return;for(var a=1;a<n.length;a++)if(!So(n[a],t,!1,!1,!1))return;return[t]}var i;for(a=0;a<n.length;a++){var o=a===r?t:So(n[a],t,!0,!1,!0);if(!o)return;i=e.appendIfUnique(i,o)}return i}function Lo(n){for(var t,r,a=0;a<n.length;a++){if(0===n[a].length)return e.emptyArray;n[a].length>1&&(r=void 0===r?a:-1);for(var i=0,o=n[a];i<o.length;i++){var s=o[i];if(!t||!So(t,s,!1,!1,!0)){var c=xo(n,s,a);if(c){var l=s;if(c.length>1){var u=s.thisParameter,d=e.forEach(c,(function(e){return e.thisParameter}));if(d)u=Kd(d,Zc(e.mapDefined(c,(function(e){return e.thisParameter&&Ci(e.thisParameter)}))));(l=bo(s,c)).thisParameter=u}(t||(t=[])).push(l)}}}}if(!e.length(t)&&-1!==r){for(var p=n[void 0!==r?r:0],m=p.slice(),f=function(n){if(n!==p){var t=n[0];if(e.Debug.assert(!!t,\"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\"),!(m=t.typeParameters&&e.some(m,(function(e){return!!e.typeParameters}))?void 0:e.map(m,(function(n){return function(n,t){var r=n.declaration,a=function(e,n){for(var t=Ng(e),r=Ng(n),a=t>=r?e:n,i=a===e?n:e,o=a===e?t:r,s=Mg(e)||Mg(n),c=s&&!Mg(a),l=new Array(o+(c?1:0)),u=0;u<o;u++){var d=Dg(a,u),p=Dg(i,u)||ye,m=Zc([d,p]),f=s&&!c&&u===o-1,_=u>=Ig(a)&&u>=Ig(i),g=u>=t?void 0:Cg(e,u),y=u>=r?void 0:Cg(n,u),v=Xt(1|(_&&!f?16777216:0),(g===y?g:g?y?void 0:g:y)||\"arg\"+u);v.type=f?Oc(m):m,l[u]=v}if(c){var h=Xt(1,\"args\");h.type=Oc(Ag(i,o)),l[o]=h}return l}(n,t),i=function(e,n){if(!e||!n)return e||n;var t=Zc([Ci(e),Ci(n)]);return Kd(e,t)}(n.thisParameter,t.thisParameter),o=Math.max(n.minArgumentCount,t.minArgumentCount),s=vo(r,n.typeParameters||t.typeParameters,i,a,void 0,void 0,o,3&(n.flags|t.flags));return s.unionSignatures=e.concatenate(n.unionSignatures||[n],[t]),s}(n,t)}))))return\"break\"}},_=0,g=n;_<g.length;_++){if(\"break\"===f(g[_]))break}t=m}return t||e.emptyArray}function Co(e,n){for(var t=[],r=!1,a=0,i=e;a<i.length;a++){var o=vs(i[a],n);if(!o)return;t.push(o.type),r=r||o.isReadonly}return Xs(Wc(t,2),r)}function Ao(e,n){return e?n?Zc([e,n]):e:n}function Do(e,n){return e?n?Xs(Zc([e.type,n.type]),e.isReadonly&&n.isReadonly):e:n}function ko(e,n){return e&&n&&Xs(Wc([e.type,n.type]),e.isReadonly||n.isReadonly)}function No(n){var t=e.countWhere(n,(function(e){return _s(e,1).length>0})),r=e.map(n,Ri);if(t>0&&t===e.countWhere(r,(function(e){return e}))){var a=r.indexOf(!0);r[a]=!1}return r}function Io(n){for(var t,r,a,i,o=n.types,s=No(o),c=e.countWhere(s,(function(e){return e})),l=function(l){var u=n.types[l];if(!s[l]){var d=_s(u,1);d.length&&c>0&&(d=e.map(d,(function(e){var n=ho(e);return n.resolvedReturnType=function(e,n,t,r){for(var a=[],i=0;i<n.length;i++)i===r?a.push(e):t[i]&&a.push(ws(_s(n[i],1)[0]));return Zc(a)}(ws(e),o,s,l),n}))),r=Mo(r,d)}t=Mo(t,_s(u,0)),a=Do(a,vs(u,0)),i=Do(i,vs(u,1))},u=0;u<o.length;u++)l(u);da(n,O,t||e.emptyArray,r||e.emptyArray,a,i)}function Mo(n,t){for(var r=function(t){n&&!e.every(n,(function(e){return!ld(e,t,!1,!1,!1,bu)}))||(n=e.append(n,t))},a=0,i=t;a<i.length;a++){r(i[a])}return n}function Oo(n){var t=Xr(n.symbol);if(n.target)da(n,O,e.emptyArray,e.emptyArray,void 0,void 0),da(n,i=to(zo(n.target),n.mapper,!1),r=zl(_s(n.target,0),n.mapper),a=zl(_s(n.target,1),n.mapper),o=mu(vs(n.target,0),n.mapper),l=mu(vs(n.target,1),n.mapper));else if(2048&t.flags){da(n,O,e.emptyArray,e.emptyArray,void 0,void 0);var r=Os((i=fo(t)).get(\"__call\")),a=Os(i.get(\"__new\"));da(n,i,r,a,o=Ys(t,0),l=Ys(t,1))}else{var i=O,o=void 0;if(t.exports&&(i=Wr(t),t===Q)){var s=e.createMap();i.forEach((function(e){418&e.flags||s.set(e.escapedName,e)})),i=s}if(da(n,i,e.emptyArray,e.emptyArray,void 0,void 0),32&t.flags){var c=Bi(ji(t));11272192&c.flags?ro(i=e.createSymbolTable(ua(i)),Xo(c)):c===me&&(o=Xs(me,!1))}var l=384&t.flags&&(32&Yi(t).flags||e.some(n.properties,(function(e){return!!(296&Ci(e).flags)})))?Zn:void 0;if(da(n,i,e.emptyArray,e.emptyArray,o,l),8208&t.flags&&(n.callSignatures=Os(t)),32&t.flags){var u=ji(t);a=t.members?Os(t.members.get(\"__constructor\")):e.emptyArray;16&t.flags&&(a=e.addRange(a.slice(),e.mapDefined(n.callSignatures,(function(e){return _g(e.declaration)?vo(e.declaration,e.typeParameters,e.thisParameter,e.parameters,u,void 0,e.minArgumentCount,3&e.flags):void 0})))),a.length||(a=function(n){var t=_s(Bi(n),1);if(0===t.length)return[vo(void 0,n.localTypeParameters,void 0,e.emptyArray,n,void 0,0,0)];for(var r=wi(n),a=e.isInJSFile(r),i=hc(r),o=e.length(i),s=[],c=0,l=t;c<l.length;c++){var u=l[c],d=Ds(u.typeParameters),p=e.length(u.typeParameters);if(a||o>=d&&o<=p){var m=p?js(u,ks(i,u.typeParameters,d,a)):ho(u);m.typeParameters=n.localTypeParameters,m.resolvedReturnType=n,s.push(m)}}return s}(u)),n.constructSignatures=a}}}function Ro(n){if(131069&n.flags)return n;if(4194304&n.flags)return al(ls(n.type));if(16777216&n.flags){if(n.root.isDistributive){var t=n.checkType,r=Ro(t);if(r!==t)return lu(n,Yl(ql(n.root.checkType,r),n.mapper))}return n}return 1048576&n.flags?Wc(e.sameMap(n.types,Ro)):2097152&n.flags?Zc(e.sameMap(n.types,Ro)):Oe}function Po(e){return e.typeParameter||(e.typeParameter=Xi(Yr(e.declaration.typeParameter)))}function wo(e){return e.constraintType||(e.constraintType=Qo(Po(e))||ge)}function Fo(e){return e.templateType||(e.templateType=e.declaration.type?uu(ni(Kl(e.declaration.type),!!(4&Uo(e))),e.mapper||R):ge)}function Go(n){return e.getEffectiveConstraintOfTypeParameter(n.declaration.typeParameter)}function Bo(e){var n=Go(e);return 183===n.kind&&133===n.operator}function Vo(e){if(!e.modifiersType)if(Bo(e))e.modifiersType=uu(Kl(Go(e).type),e.mapper||R);else{var n=wo(bl(e.declaration)),t=n&&262144&n.flags?Qo(n):n;e.modifiersType=t&&4194304&t.flags?uu(t.type,e.mapper||R):ye}return e.modifiersType}function Uo(e){var n=e.declaration;return(n.readonlyToken?40===n.readonlyToken.kind?2:1:0)|(n.questionToken?40===n.questionToken.kind?8:4:0)}function jo(e){var n=Uo(e);return 8&n?-1:4&n?1:0}function Ko(e){var n=jo(e),t=Vo(e);return n||(Ho(t)?jo(t):0)}function Ho(n){return!!(32&e.getObjectFlags(n))&&dl(wo(n))}function Wo(n){return n.members||(524288&n.flags?4&n.objectFlags?function(n){var t=ao(n.target),r=e.concatenate(t.typeParameters,[t.thisType]),a=ic(n);yo(n,t,r,a.length===r.length?a:e.concatenate(a,[n]))}(n):3&n.objectFlags?function(n){yo(n,ao(n),e.emptyArray,e.emptyArray)}(n):2048&n.objectFlags?function(n){for(var t=vs(n.source,0),r=Uo(n.mappedType),a=!(1&r),i=4&r?0:16777216,o=t&&Xs(dp(t.type,n.mappedType,n.constraintType),a&&t.isReadonly),s=e.createSymbolTable(),c=0,l=Xo(n.source);c<l.length;c++){var u=l[c],d=8192|(a&&ny(u)?8:0),p=Xt(4|u.flags&i,u.escapedName,d);p.declarations=u.declarations,p.nameType=u.nameType,p.propertyType=Ci(u),p.mappedType=n.mappedType,p.constraintType=n.constraintType,s.set(u.escapedName,p)}da(n,s,e.emptyArray,e.emptyArray,o,void 0)}(n):16&n.objectFlags?Oo(n):32&n.objectFlags&&function(n){var t,r,a=e.createSymbolTable();da(n,O,e.emptyArray,e.emptyArray,void 0,void 0);var i=Po(n),o=wo(n),s=Fo(n.target||n),c=ls(Vo(n)),l=Uo(n),u=W?128:8576;if(Bo(n)){for(var d=0,p=Xo(c);d<p.length;d++){m(nl(p[d],u))}(1&c.flags||vs(c,0))&&m(Se),!W&&vs(c,1)&&m(xe)}else tm(Ro(o),m);function m(e){var o=Yl(n.mapper,Jl([i],[e])),u=uu(s,o);if(io(e)){var d=uo(e),p=ms(c,d),m=!!(4&l||!(8&l)&&p&&16777216&p.flags),f=Xt(4|(m?16777216:0),d,!!(1&l||!(2&l)&&p&&ny(p))?8:0);f.type=B&&m&&!xu(ve,u)?Pd(u):B&&!m&&p&&16777216&p.flags?Up(u,524288):u,p&&(f.syntheticOrigin=p,f.declarations=p.declarations),f.nameType=e,a.set(d,f)}else 5&e.flags?t=Xs(u,!!(1&l)):40&e.flags&&(r=Xs(r?Wc([r.type,u]):u,!!(1&l)))}da(n,a,e.emptyArray,e.emptyArray,t,r)}(n):1048576&n.flags?function(n){var t=Lo(e.map(n.types,(function(e){return e===an?[Xn]:_s(e,0)}))),r=Lo(e.map(n.types,(function(e){return _s(e,1)}))),a=Co(n.types,0),i=Co(n.types,1);da(n,O,t,r,a,i)}(n):2097152&n.flags&&Io(n)),n}function zo(n){return 524288&n.flags?Wo(n).properties:e.emptyArray}function qo(e,n){if(524288&e.flags){var t=Wo(e).members.get(n);if(t&&ta(t))return t}}function Jo(n){if(n.possiblePropertyCache)return n.possiblePropertyCache.size?e.arrayFrom(n.possiblePropertyCache.values()):e.emptyArray;n.possiblePropertyCache=e.createSymbolTable();for(var t=0,r=n.types;t<r.length;t++)for(var a=0,i=Xo(r[t]);a<i.length;a++){var o=i[a];if(!n.possiblePropertyCache.has(o.escapedName)){var s=ds(n,o.escapedName);s&&n.possiblePropertyCache.set(o.escapedName,s)}}return n.possiblePropertyCache.size?e.arrayFrom(n.possiblePropertyCache.values()):e.emptyArray}function Xo(n){return 3145728&(n=ls(n)).flags?function(n){if(!n.resolvedProperties){for(var t=e.createSymbolTable(),r=0,a=n.types;r<a.length;r++){for(var i=0,o=Xo(a[r]);i<o.length;i++){var s=o[i];if(!t.has(s.escapedName)){var c=ps(n,s.escapedName);c&&t.set(s.escapedName,c)}}if(1048576&n.flags)break}n.resolvedProperties=ua(t)}return n.resolvedProperties}(n):zo(n)}function Yo(e){return 262144&e.flags?Qo(e):8388608&e.flags?function(e){return as(e)?function(e){var n=Zo(e.indexType);if(n&&n!==e.indexType){var t=vl(e.objectType,n);if(t)return t}var r=Zo(e.objectType);if(r&&r!==e.objectType)return vl(r,e.indexType);return}(e):void 0}(e):16777216&e.flags?function(e){return as(e)?ns(e):void 0}(e):ts(e)}function Qo(e){return as(e)?Zs(e):void 0}function Zo(e){var n=ml(e,!1);return n!==e?n:Yo(e)}function $o(e){if(!e.resolvedDefaultConstraint){var n=function(e){return e.resolvedInferredTrueType||(e.resolvedInferredTrueType=e.combinedMapper?uu(e.root.trueType,e.combinedMapper):Sl(e))}(e),t=xl(e);e.resolvedDefaultConstraint=Wa(n)?t:Wa(t)?n:Wc([n,t])}return e.resolvedDefaultConstraint}function es(e){if(e.root.isDistributive&&e.restrictiveInstantiation!==e){var n=ml(e.checkType,!1),t=n===e.checkType?Yo(n):n;if(t&&t!==e.checkType){var r=lu(e,Yl(ql(e.root.checkType,t),e.mapper));if(!(131072&r.flags))return r}}}function ns(e){return es(e)||$o(e)}function ts(e){if(62128128&e.flags){var n=is(e);return n!==Je&&n!==Xe?n:void 0}return 4194304&e.flags?Ve:void 0}function rs(e){return ts(e)||e}function as(e){return is(e)!==Xe}function is(n){var t=!1;return n.resolvedBaseConstraint||(n.resolvedBaseConstraint=go(r(n),n));function r(n){if(!n.immediateBaseConstraint){if(!Ba(n,4))return Xe;if(E>=50)return Wt(s,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),t=!0,n.immediateBaseConstraint=Je;E++;var r=function(e){if(262144&e.flags){var n=Zs(e);return e.isThisType||!n?n:a(n)}if(3145728&e.flags){for(var t=e.types,r=[],i=0,o=t;i<o.length;i++){var s=a(o[i]);s&&r.push(s)}return 1048576&e.flags&&r.length===t.length?Wc(r):2097152&e.flags&&r.length?Zc(r):void 0}if(4194304&e.flags)return Ve;if(8388608&e.flags){var c=a(e.objectType),l=a(e.indexType),u=c&&l&&vl(c,l);return u&&a(u)}if(16777216&e.flags){n=ns(e);E++;var d=n&&a(n);return E--,d}if(33554432&e.flags)return a(e.substitute);return e}(ml(n,!1));if(E--,!ja()){if(262144&n.flags){var i=Qs(n);if(i){var o=Wt(i,e.Diagnostics.Type_parameter_0_has_a_circular_constraint,Aa(n));!s||e.isNodeDescendantOf(i,s)||e.isNodeDescendantOf(s,i)||e.addRelatedInfo(o,e.createDiagnosticForNode(s,e.Diagnostics.Circularity_originates_in_type_at_this_location))}}r=Xe}t&&(r=Xe),n.immediateBaseConstraint=r||Je}return n.immediateBaseConstraint}function a(e){var n=r(e);return n!==Je&&n!==Xe?n:void 0}}function os(n){if(n.default)n.default===Ye&&(n.default=Xe);else if(n.target){var t=os(n.target);n.default=t?uu(t,n.mapper):Je}else{n.default=Ye;var r=n.symbol&&e.forEach(n.symbol.declarations,(function(n){return e.isTypeParameterDeclaration(n)&&n.default})),a=r?Kl(r):Je;n.default===Ye&&(n.default=a)}return n.default}function ss(e){var n=os(e);return n!==Je&&n!==Xe?n:void 0}function cs(e){return e.resolvedApparentType||(e.resolvedApparentType=function(e){var n=iu(e);if(n){var t=Qo(n);if(t&&(dd(t)||Cd(t))){var r=ql(n,t);return uu(e,Yl(r,e.mapper))}}return e}(e))}function ls(n){var t,r=63176704&n.flags?ts(n)||ye:n;return 32&e.getObjectFlags(r)?cs(r):2097152&r.flags?function(e){return e.resolvedApparentType||(e.resolvedApparentType=go(e,e,!0))}(r):132&r.flags?un:296&r.flags?dn:2112&r.flags?(t=w>=99,Vn||(Vn=xc(\"BigInt\",0,t))||je):528&r.flags?pn:12288&r.flags?Cc(w>=2):67108864&r.flags?je:4194304&r.flags?Ve:2&r.flags&&!B?je:r}function us(n,t){for(var r,a=e.createMap(),i=1048576&n.flags,o=i?24:0,s=i?0:16777216,c=4,l=0,u=0,d=n.types;u<d.length;u++){if((C=ls(d[u]))!==ge){var p=(x=ms(C,t))?e.getDeclarationModifierFlagsFromSymbol(x):0;if(!x||p&o){if(i){var m=!so(t)&&(Df(t)&&vs(C,1)||vs(C,0));m?(l|=32|(m.isReadonly?8:0),r=e.append(r,Cd(C)?Ad(C)||ve:m.type)):hp(C)?(l|=32,r=e.append(r,ve)):l|=16}}else{i?s|=16777216&x.flags:s&=x.flags;var f=\"\"+L(x);a.has(f)||a.set(f,x),l|=(ny(x)?8:0)|(24&p?0:256)|(16&p?512:0)|(8&p?1024:0)|(32&p?2048:0),e_(x)||(c=2)}}}if(a.size){var _,g,y,v=e.arrayFrom(a.values());if(!(1!==v.length||16&l||r))return v[0];for(var h,b=[],E=!1,T=0,S=v;T<S.length;T++){var x=S[T];h?x.valueDeclaration!==h&&(E=!0):h=x.valueDeclaration,_=e.addRange(_,x.declarations);var C=Ci(x);g?C!==g&&(l|=64):(g=C,y=x.nameType),bd(C)&&(l|=128),b.push(C)}e.addRange(b,r);var A=Xt(4|s,t,c|l);return A.containingType=n,!E&&h&&(A.valueDeclaration=h,h.symbol.parent&&(A.parent=h.symbol.parent)),A.declarations=_,A.nameType=y,b.length>2?(A.checkFlags|=65536,A.deferralParent=n,A.deferralConstituents=b):A.type=i?Wc(b):Zc(b),A}}function ds(n,t){var r=n.propertyCache||(n.propertyCache=e.createSymbolTable()),a=r.get(t);return a||(a=us(n,t))&&r.set(t,a),a}function ps(n,t){var r=ds(n,t);return!r||16&e.getCheckFlags(r)?void 0:r}function ms(e,n){if(524288&(e=ls(e)).flags){var t=Wo(e),r=t.members.get(n);if(r&&ta(r))return r;var a=t===qe?an:t.callSignatures.length?on:t.constructSignatures.length?sn:void 0;if(a){var i=qo(a,n);if(i)return i}return qo(rn,n)}if(3145728&e.flags)return ps(e,n)}function fs(n,t){if(3670016&n.flags){var r=Wo(n);return 0===t?r.callSignatures:r.constructSignatures}return e.emptyArray}function _s(e,n){return fs(ls(e),n)}function gs(e,n){if(3670016&e.flags){var t=Wo(e);return 0===n?t.stringIndexInfo:t.numberIndexInfo}}function ys(e,n){var t=gs(e,n);return t&&t.type}function vs(e,n){return gs(ls(e),n)}function hs(e,n){return ys(ls(e),n)}function bs(n,t){if(jd(n)){for(var r=[],a=0,i=Xo(n);a<i.length;a++){var o=i[a];(0===t||Df(o.escapedName))&&r.push(Ci(o))}if(0===t&&e.append(r,hs(n,1)),r.length)return Wc(r,2)}}function Es(n){for(var t,r=0,a=e.getEffectiveTypeParameterDeclarations(n);r<a.length;r++){var i=a[r];t=e.appendIfUnique(t,Xi(i.symbol))}return t}function Ts(e){var n=[];return e.forEach((function(e,t){la(t)||n.push(e)})),n}function Ss(n){return e.isInJSFile(n)&&(n.type&&297===n.type.kind||e.getJSDocParameterTags(n).some((function(e){var n=e.isBracketed,t=e.typeExpression;return n||!!t&&297===t.type.kind})))}function xs(n,t){if(!e.isExternalModuleNameRelative(n)){var r=cr(X,'\"'+n+'\"',512);return r&&t?Xr(r):r}}function Ls(n){if(e.hasQuestionToken(n)||Cs(n)||Ss(n))return!0;if(n.initializer){var t=Ns(n.parent),r=n.parent.parameters.indexOf(n);return e.Debug.assert(r>=0),r>=Ig(t)}var a=e.getImmediatelyInvokedFunctionExpression(n.parent);return!!a&&(!n.type&&!n.dotDotDotToken&&n.parent.parameters.indexOf(n)>=a.arguments.length)}function Cs(n){if(!e.isJSDocParameterTag(n))return!1;var t=n.isBracketed,r=n.typeExpression;return t||!!r&&297===r.type.kind}function As(e,n,t,r){return{kind:e,parameterName:n,parameterIndex:t,type:r}}function Ds(n){var t,r=0;if(n)for(var a=0;a<n.length;a++)(t=n[a]).symbol&&e.forEach(t.symbol.declarations,(function(n){return e.isTypeParameterDeclaration(n)&&n.default}))||(r=a+1);return r}function ks(n,t,r,a){var i=e.length(t);if(!i)return[];var o=e.length(n);if(a||o>=r&&o<=i){for(var s=n?n.slice():[],c=o;c<i;c++)s[c]=ge;var l=xp(a);for(c=o;c<i;c++){var u=ss(t[c]);a&&u&&(hu(u,ye)||hu(u,je))&&(u=me),s[c]=u?uu(u,Jl(t,s)):l}return s.length=t.length,s}return n&&n.slice()}function Ns(n){var t,r=or(n);if(!r.resolvedSignature){for(var a=[],i=0,o=0,s=void 0,c=!1,l=e.getImmediatelyInvokedFunctionExpression(n),u=e.isJSDocConstructSignature(n),d=!l&&e.isInJSFile(n)&&e.isValueSignatureDeclaration(n)&&!e.hasJSDocParameterTags(n)&&!e.getJSDocType(n),p=u?1:0;p<n.parameters.length;p++){var m=n.parameters[p],f=m.symbol,_=e.isJSDocParameterTag(m)?m.typeExpression&&m.typeExpression.type:m.type;if(f&&4&f.flags&&!e.isBindingPattern(m.name))f=ur(m,f.escapedName,111551,void 0,void 0,!1);0===p&&\"this\"===f.escapedName?(c=!0,s=m.symbol):a.push(f),_&&186===_.kind&&(i|=2),Cs(m)||m.initializer||m.questionToken||m.dotDotDotToken||l&&a.length>l.arguments.length&&!_||d||Ss(m)||(o=a.length)}if(!(162!==n.kind&&163!==n.kind||lo(n)||c&&s)){var g=162===n.kind?163:162,y=e.getDeclarationOfKind(Yr(n),g);y&&(s=(t=rE(y))&&t.symbol)}var v=161===n.kind?ji(Xr(n.parent.symbol)):void 0,h=v?v.localTypeParameters:Es(n);(e.hasRestParameter(n)||e.isInJSFile(n)&&function(n,t){if(e.isJSDocSignature(n)||!Ms(n))return!1;var r=e.lastOrUndefined(n.parameters),a=r?e.getJSDocParameterTags(r):e.getJSDocTags(n).filter(e.isJSDocParameterTag),i=e.firstDefined(a,(function(n){return n.typeExpression&&e.isJSDocVariadicType(n.typeExpression.type)?n.typeExpression.type:void 0})),o=Xt(3,\"args\",32768);o.type=i?Oc(Kl(i.type)):_n,i&&t.pop();return t.push(o),!0}(n,a))&&(i|=1),r.resolvedSignature=vo(n,h,s,a,void 0,void 0,o,i)}return r.resolvedSignature}function Is(n){var t=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0,r=t&&t.typeExpression&&F_(Kl(t.typeExpression));return r&&Ks(r)}function Ms(n){var t=or(n);return void 0===t.containsArgumentsReference&&(8192&t.flags?t.containsArgumentsReference=!0:t.containsArgumentsReference=function n(t){if(!t)return!1;switch(t.kind){case 75:return\"arguments\"===t.escapedText&&e.isExpressionNode(t);case 158:case 160:case 162:case 163:return 153===t.name.kind&&n(t.name);default:return!e.nodeStartsNewLexicalEnvironment(t)&&!e.isPartOfTypeNode(t)&&!!e.forEachChild(t,n)}}(n.body)),t.containsArgumentsReference}function Os(n){if(!n)return e.emptyArray;for(var t=[],r=0;r<n.declarations.length;r++){var a=n.declarations[r];if(e.isFunctionLike(a)){if(r>0&&a.body){var i=n.declarations[r-1];if(a.parent===i.parent&&a.kind===i.kind&&a.pos===i.end)continue}t.push(Ns(a))}}return t}function Rs(e){if(e.thisParameter)return Ci(e.thisParameter)}function Ps(n){if(!n.resolvedTypePredicate){if(n.target){var t=Ps(n.target);n.resolvedTypePredicate=t?(o=t,s=n.mapper,As(o.kind,o.parameterName,o.parameterIndex,uu(o.type,s))):qn}else if(n.unionSignatures)n.resolvedTypePredicate=function(e){for(var n,t=[],r=0,a=e;r<a.length;r++){var i=Ps(a[r]);if(i&&2!==i.kind&&3!==i.kind){if(n){if(!zc(n,i))return}else n=i;t.push(i.type)}}if(!n)return;var o=Wc(t);return As(n.kind,n.parameterName,n.parameterIndex,o)}(n.unionSignatures)||qn;else{var r=n.declaration&&e.getEffectiveReturnTypeNode(n.declaration),a=void 0;if(!r&&e.isInJSFile(n.declaration)){var i=Is(n.declaration);i&&n!==i&&(a=Ps(i))}n.resolvedTypePredicate=r&&e.isTypePredicateNode(r)?function(n,t){var r=n.parameterName,a=n.type&&Kl(n.type);return 182===r.kind?As(n.assertsModifier?2:0,void 0,void 0,a):As(n.assertsModifier?3:1,r.escapedText,e.findIndex(t.parameters,(function(e){return e.escapedName===r.escapedText})),a)}(r,n):a||qn}e.Debug.assert(!!n.resolvedTypePredicate)}var o,s;return n.resolvedTypePredicate===qn?void 0:n.resolvedTypePredicate}function ws(n){if(!n.resolvedReturnType){if(!Ba(n,3))return ge;var t=n.target?uu(ws(n.target),n.mapper):n.unionSignatures?Wc(e.map(n.unionSignatures,ws),2):Fs(n.declaration)||(e.nodeIsMissing(n.declaration.body)?me:jg(n.declaration));if(4&n.flags?t=Fd(t):8&n.flags&&(t=Pd(t)),!ja()){if(n.declaration){var r=e.getEffectiveReturnTypeNode(n.declaration);if(r)Wt(r,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(K){var a=n.declaration,i=e.getNameOfDeclaration(a);i?Wt(i,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,e.declarationNameToString(i)):Wt(a,e.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}t=me}n.resolvedReturnType=t}return n.resolvedReturnType}function Fs(n){if(161===n.kind)return ji(Xr(n.parent.symbol));if(e.isJSDocConstructSignature(n))return Kl(n.parameters[0].type);var t,r=e.getEffectiveReturnTypeNode(n);if(r)return Kl(r);if(162===n.kind&&!lo(n)){var a=e.isInJSFile(n)&&$a(n);if(a)return a;var i=vi(e.getDeclarationOfKind(Yr(n),163));if(i)return i}return(t=Is(n))&&ws(t)}function Gs(e){return!e.resolvedReturnType&&Va(e,3)>=0}function Bs(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]),t=Cd(n)?Ad(n):n;return t&&hs(t,1)}}function Vs(e,n,t,r){var a=Us(e,ks(n,e.typeParameters,Ds(e.typeParameters),t));if(r){var i=G_(ws(a));if(i){var o=ho(i);o.typeParameters=r;var s=ho(a);return s.resolvedReturnType=zs(o),s}}return a}function Us(n,t){var r=n.instantiations||(n.instantiations=e.createMap()),a=ec(t),i=r.get(a);return i||r.set(a,i=js(n,t)),i}function js(e,n){return nu(e,function(e,n){return Jl(e.typeParameters,n)}(e,n),!0)}function Ks(e){return e.typeParameters?e.erasedSignatureCache||(e.erasedSignatureCache=function(e){return nu(e,Xl(e.typeParameters),!0)}(e)):e}function Hs(n){return n.typeParameters?n.canonicalSignatureCache||(n.canonicalSignatureCache=function(n){return Vs(n,e.map(n.typeParameters,(function(e){return e.target&&!Qo(e.target)?e.target:e})),e.isInJSFile(n.declaration))}(n)):n}function Ws(n){var t=n.typeParameters;if(t){var r=Xl(t);return nu(n,Jl(t,e.map(t,(function(e){return uu(ts(e),r)||ye}))),!0)}return n}function zs(n){if(!n.isolatedSignatureType){var t=n.declaration?n.declaration.kind:0,r=161===t||165===t||170===t,a=sa(16);a.members=O,a.properties=e.emptyArray,a.callSignatures=r?e.emptyArray:[n],a.constructSignatures=r?[n]:e.emptyArray,n.isolatedSignatureType=a}return n.isolatedSignatureType}function qs(e){return e.members.get(\"__index\")}function Js(n,t){var r=1===t?139:142,a=qs(n);if(a)for(var i=0,o=a.declarations;i<o.length;i++){var s=o[i],c=e.cast(s,e.isIndexSignatureDeclaration);if(1===c.parameters.length){var l=c.parameters[0];if(l.type&&l.type.kind===r)return c}}}function Xs(e,n,t){return{type:e,isReadonly:n,declaration:t}}function Ys(n,t){var r=Js(n,t);if(r)return Xs(r.type?Kl(r.type):me,e.hasModifier(r,64),r)}function Qs(n){return e.mapDefined(e.filter(n.symbol&&n.symbol.declarations,e.isTypeParameterDeclaration),e.getEffectiveConstraintOfTypeParameter)[0]}function Zs(n){if(!n.constraint)if(n.target){var t=Qo(n.target);n.constraint=t?uu(t,n.mapper):Je}else{var r=Qs(n);n.constraint=r?Kl(r):function(n){var t;if(n.symbol)for(var r=0,a=n.symbol.declarations;r<a.length;r++){var i=a[r];if(180===i.parent.kind){var o=i.parent.parent;if(168===o.kind){var s=o,c=Jy(s);if(c){var l=s.typeArguments.indexOf(i.parent);if(l<c.length){var u=Qo(c[l]);if(u){var d=uu(u,Jl(c,zy(s,c)));d!==n&&(t=e.append(t,d))}}}}else 155===o.kind&&o.dotDotDotToken&&(t=e.append(t,Oc(ye)))}}return t&&Zc(t)}(n)||Je}return n.constraint===Je?void 0:n.constraint}function $s(n){var t=e.getDeclarationOfKind(n.symbol,154),r=e.isJSDocTemplateTag(t.parent)?e.getHostSignatureFromJSDoc(t.parent):t.parent;return r&&Yr(r)}function ec(e){var n=\"\";if(e)for(var t=e.length,r=0;r<t;){for(var a=e[r].id,i=1;r+i<t&&e[r+i].id===a+i;)i++;n.length&&(n+=\",\"),n+=a,i>1&&(n+=\":\"+i),r+=i}return n}function nc(n,t){for(var r=0,a=0,i=n;a<i.length;a++){var o=i[a];o.flags&t||(r|=e.getObjectFlags(o))}return 1835008&r}function tc(e,n){var t=ec(n),r=e.instantiations.get(t);return r||(r=sa(4,e.symbol),e.instantiations.set(t,r),r.objectFlags|=n?nc(n,0):0,r.target=e,r.resolvedTypeArguments=n),r}function rc(e){var n=aa(e.flags);return n.symbol=e.symbol,n.objectFlags=e.objectFlags,n.target=e.target,n.resolvedTypeArguments=e.resolvedTypeArguments,n}function ac(e,n,t){var r=kl(n),a=Nl(r),i=sa(4,e.symbol);return i.target=e,i.node=n,i.mapper=t,i.aliasSymbol=r,i.aliasTypeArguments=t?Wl(a,t):a,i}function ic(n){var t,r;if(!n.resolvedTypeArguments){if(!Ba(n,7))return(null===(t=n.target.localTypeParameters)||void 0===t?void 0:t.map((function(){return ge})))||e.emptyArray;var a=n.node,i=a?168===a.kind?e.concatenate(n.target.outerTypeParameters,zy(a,n.target.localTypeParameters)):173===a.kind?[Kl(a.elementType)]:e.map(a.elementTypes,Kl):e.emptyArray;ja()?n.resolvedTypeArguments=n.mapper?Wl(i,n.mapper):i:(n.resolvedTypeArguments=(null===(r=n.target.localTypeParameters)||void 0===r?void 0:r.map((function(){return ge})))||e.emptyArray,Wt(n.node||s,n.target.symbol?e.Diagnostics.Type_arguments_for_0_circularly_reference_themselves:e.Diagnostics.Tuple_type_arguments_circularly_reference_themselves,n.target.symbol&&La(n.target.symbol)))}return n.resolvedTypeArguments}function oc(n){return e.length(n.target.typeParameters)}function sc(n,t){var r=Yi(Xr(t)),a=r.localTypeParameters;if(a){var i=e.length(n.typeArguments),o=Ds(a),s=e.isInJSFile(n);if(!(!K&&s)&&(i<o||i>a.length)){var c=s&&e.isExpressionWithTypeArguments(n)&&!e.isJSDocAugmentsTag(n.parent);if(Wt(n,o===a.length?c?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:c?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,Aa(r,void 0,2),o,a.length),!s)return ge}return 168===n.kind&&Pc(n)?ac(r,n,void 0):tc(r,e.concatenate(r.outerTypeParameters,ks(hc(n),a,o,s)))}return yc(n,t)?r:ge}function cc(n,t){var r=Yi(n),a=ir(n),i=a.typeParameters,o=ec(t),s=a.instantiations.get(o);return s||a.instantiations.set(o,s=uu(r,Jl(i,ks(t,i,Ds(i),e.isInJSFile(n.valueDeclaration))))),s}function lc(n){switch(n.kind){case 168:return n.typeName;case 215:var t=n.expression;if(e.isEntityNameExpression(t))return t}}function uc(e,n,t){return e&&Rr(e,n,t)||de}function dc(n,t){if(t===de)return ge;if(96&(t=function(n){var t=n.valueDeclaration;if(t&&e.isInJSFile(t)&&!(524288&n.flags)){var r=e.isVariableDeclaration(t)?e.getDeclaredExpandoInitializer(t):e.getAssignedExpandoInitializer(t);return r&&Yr(r)||void 0}}(t)||t).flags)return sc(n,t);if(524288&t.flags)return function(n,t){var r=Yi(t),a=ir(t).typeParameters;if(a){var i=e.length(n.typeArguments),o=Ds(a);return i<o||i>a.length?(Wt(n,o===a.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,La(t),o,a.length),ge):cc(t,hc(n))}return yc(n,t)?r:ge}(n,t);var r=Qi(t);if(r)return yc(n,t)?262144&r.flags?_c(r,n):Gl(r):ge;if(111551&t.flags&&gc(n)){var a=function(n,t){var r=Ci(t),a=r;if(t.valueDeclaration){var i=e.getRootDeclaration(t.valueDeclaration),o=!1;if(e.isVariableDeclaration(i)&&i.initializer){for(var s=i.initializer;e.isPropertyAccessExpression(s);)s=s.expression;o=e.isCallExpression(s)&&e.isRequireCall(s,!0)&&!!r.symbol}var c=t!==r.symbol&&Xr(t)===r.symbol,l=187===n.kind&&n.qualifier;r.symbol&&(o||l||c)&&(a=dc(n,r.symbol))}return ir(t).resolvedJSDocType=a}(n,t);return a||(uc(lc(n),788968),Ci(t))}return ge}function pc(e,n){if(3&n.flags||n===e)return e;var t=Bc(e)+\">\"+Bc(n),r=ce.get(t);if(r)return r;var a=aa(33554432);return a.typeVariable=e,a.substitute=n,ce.set(t,a),a}function mc(e){return 174===e.kind&&1===e.elementTypes.length}function fc(e,n,t){return mc(n)&&mc(t)?fc(e,n.elementTypes[0],t.elementTypes[0]):El(Kl(n))===e?Kl(t):void 0}function _c(n,t){for(var r;t&&!e.isStatement(t)&&301!==t.kind;){var a=t.parent;if(179===a.kind&&t===a.trueType){var i=fc(n,a.checkType,a.extendsType);i&&(r=e.append(r,i))}t=a}return r?pc(n,Zc(e.append(r,n))):n}function gc(e){return!!(4194304&e.flags)&&(168===e.kind||187===e.kind)}function yc(n,t){return!n.typeArguments||(Wt(n,e.Diagnostics.Type_0_is_not_generic,t?La(t):n.typeName?e.declarationNameToString(n.typeName):\"(anonymous)\"),!1)}function vc(n){var t=or(n);if(!t.resolvedType){var r=void 0,a=void 0;gc(n)&&((a=function(n){if(e.isIdentifier(n.typeName)){var t=n.typeArguments;switch(n.typeName.escapedText){case\"String\":return yc(n),Se;case\"Number\":return yc(n),xe;case\"Boolean\":return yc(n),Ne;case\"Void\":return yc(n),Me;case\"Undefined\":return yc(n),ve;case\"Null\":return yc(n),Ee;case\"Function\":case\"function\":return yc(n),an;case\"Array\":case\"array\":return t&&t.length||K?void 0:_n;case\"Promise\":case\"promise\":return t&&t.length||K?void 0:Bg(me);case\"Object\":if(t&&2===t.length){if(e.isJSDocIndexSignature(n)){var r=Kl(t[0]),a=Xs(Kl(t[1]),!1);return pa(void 0,O,e.emptyArray,e.emptyArray,r===Se?a:void 0,r===xe?a:void 0)}return me}return yc(n),K?void 0:me}}}(n))||((r=uc(lc(n),788968,!0))===de?r=uc(lc(n),900095):uc(lc(n),788968),a=dc(n,r))),a||(a=dc(n,r=uc(lc(n),788968))),t.resolvedSymbol=r,t.resolvedType=a}return t.resolvedType}function hc(n){return e.map(n.typeArguments,Kl)}function bc(e){var n=or(e);return n.resolvedType||(n.resolvedType=Gl(Xd(Py(e.exprName)))),n.resolvedType}function Ec(n,t){function r(e){for(var n=0,t=e.declarations;n<t.length;n++){var r=t[n];switch(r.kind){case 244:case 245:case 247:return r}}}if(!n)return t?ze:je;var a=Yi(n);return 524288&a.flags?e.length(a.typeParameters)!==t?(Wt(r(n),e.Diagnostics.Global_type_0_must_have_1_type_parameter_s,e.symbolName(n),t),t?ze:je):a:(Wt(r(n),e.Diagnostics.Global_type_0_must_be_a_class_or_interface_type,e.symbolName(n)),t?ze:je)}function Tc(n,t){return Sc(n,111551,t?e.Diagnostics.Cannot_find_global_value_0:void 0)}function Sc(e,n,t){return ur(void 0,e,n,t,e,!1)}function xc(n,t,r){var a=function(n,t){return Sc(n,788968,t?e.Diagnostics.Cannot_find_global_type_0:void 0)}(n,r);return a||r?Ec(a,t):void 0}function Lc(e){return hn||(hn=Tc(\"Symbol\",e))}function Cc(e){return bn||(bn=xc(\"Symbol\",0,e))||je}function Ac(e){return Tn||(Tn=xc(\"Promise\",1,e))||ze}function Dc(e){return xn||(xn=Tc(\"Promise\",e))}function kc(e){return Cn||(Cn=xc(\"Iterable\",1,e))||ze}function Nc(e,n){void 0===n&&(n=0);var t=Sc(e,788968,void 0);return t&&Ec(t,n)}function Ic(e,n){return e!==ze?tc(e,n):je}function Mc(e){return Ic(En||(En=xc(\"TypedPropertyDescriptor\",1,!0))||ze,[e])}function Oc(e,n){return Ic(n?ln:cn,[e])}function Rc(n){var t=function(n){return e.isTypeOperatorNode(n)&&137===n.operator}(n.parent);if(173===n.kind||1===n.elementTypes.length&&176===n.elementTypes[0].kind)return t?ln:cn;var r=e.lastOrUndefined(n.elementTypes),a=r&&176===r.kind?r:void 0,i=e.findLastIndex(n.elementTypes,(function(e){return 175!==e.kind&&e!==a}))+1;return wc(n.elementTypes.length,i,!!a,t,void 0)}function Pc(e){var n=e.parent;switch(n.kind){case 181:case 168:case 177:case 178:case 184:case 179:case 183:return Pc(n);case 246:return!0}return!1}function wc(n,t,r,a,i){var o=n+(r?\"+\":\",\")+t+(a?\"R\":\"\")+(i&&i.length?\",\"+i.join(\",\"):\"\"),s=re.get(o);return s||re.set(o,s=function(n,t,r,a,i){var o,s=[],c=r?n-1:n;if(n){o=new Array(n);for(var l=0;l<n;l++){var u=o[l]=ca();if(l<c){var d=Xt(4|(l>=t?16777216:0),\"\"+l,a?8:0);d.type=u,s.push(d)}}}var p=[];for(l=t;l<=c;l++)p.push(Vl(l));var m=Xt(4,\"length\");m.type=r?xe:Wc(p),s.push(m);var f=sa(12);return f.typeParameters=o,f.outerTypeParameters=void 0,f.localTypeParameters=o,f.instantiations=e.createMap(),f.instantiations.set(ec(f.typeParameters),f),f.target=f,f.resolvedTypeArguments=f.typeParameters,f.thisType=ca(),f.thisType.isThisType=!0,f.thisType.constraint=f,f.declaredProperties=s,f.declaredCallSignatures=e.emptyArray,f.declaredConstructSignatures=e.emptyArray,f.declaredStringIndexInfo=void 0,f.declaredNumberIndexInfo=void 0,f.minLength=t,f.hasRestElement=r,f.readonly=a,f.associatedNames=i,f}(n,t,r,a,i)),s}function Fc(e,n,t,r,a){void 0===n&&(n=e.length),void 0===t&&(t=!1),void 0===r&&(r=!1);var i=e.length;if(1===i&&t)return Oc(e[0],r);var o=wc(i,n,i>0&&t,r,a);return e.length?tc(o,e):o}function Gc(e,n){var t=e.target;return t.hasRestElement&&(n=Math.min(n,oc(e)-1)),Fc(ic(e).slice(n),Math.max(0,t.minLength-n),t.hasRestElement,t.readonly,t.associatedNames&&t.associatedNames.slice(n))}function Bc(e){return e.id}function Vc(n,t){return e.binarySearch(n,t,Bc,e.compareValues)>=0}function Uc(n,t){var r=e.binarySearch(n,t,Bc,e.compareValues);return r<0&&(n.splice(~r,0,t),!0)}function jc(n,t,r){var a=r.flags;if(1048576&a)return Kc(n,t,r.types);if(!(131072&a))if(t|=68943871&a,66846720&a&&(t|=262144),r===_e&&(t|=4194304),!B&&98304&a)262144&e.getObjectFlags(r)||(t|=2097152);else{var i=n.length,o=i&&r.id>n[i-1].id?~i:e.binarySearch(n,r,Bc,e.compareValues);o<0&&n.splice(~o,0,r)}return t}function Kc(e,n,t){for(var r=0,a=t;r<a.length;r++){n=jc(e,n,a[r])}return n}function Hc(n,t){var r=n.length;if(0===r||function(e){var n=e[0];if(1024&n.flags){for(var t=Qr(n.symbol),r=1;r<e.length;r++){var a=e[r];if(!(1024&a.flags)||t!==Qr(a.symbol))return!1}return!0}return!1}(n))return!0;for(var a=r,i=0;a>0;)for(var o=n[--a],c=0,l=n;c<l.length;c++){var u=l[c];if(o!==u){if(1e5===i)if(i/(r-a)*r>(t?25e6:1e6))return Wt(s,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1;if(i++,Su(o,u)&&(!(1&e.getObjectFlags(Di(o)))||!(1&e.getObjectFlags(Di(u)))||Lu(o,u))){e.orderedRemoveItemAt(n,a);break}}}return!0}function Wc(n,t,r,a){if(void 0===t&&(t=1),0===n.length)return Oe;if(1===n.length)return n[0];var i=[],o=Kc(i,0,n);if(0!==t){if(3&o)return 1&o?4194304&o?_e:me:ye;switch(t){case 1:11136&o&&function(n,t){for(var r=n.length;r>0;){var a=n[--r];(128&a.flags&&4&t||256&a.flags&&8&t||2048&a.flags&&64&t||8192&a.flags&&4096&t||Bl(a)&&Vc(n,a.regularType))&&e.orderedRemoveItemAt(n,r)}}(i,o);break;case 2:if(!Hc(i,!(262144&o)))return ge}if(0===i.length)return 65536&o?2097152&o?Ee:Te:32768&o?2097152&o?ve:he:Oe}return qc(i,66994211&o?0:131072,r,a)}function zc(e,n){return e.kind===n.kind&&e.parameterIndex===n.parameterIndex}function qc(e,n,t,r){if(0===e.length)return Oe;if(1===e.length)return e[0];var a=ec(e),i=ae.get(a);return i||(i=aa(1048576),ae.set(a,i),i.objectFlags=n|nc(e,98304),i.types=e,i.aliasSymbol=t,i.aliasTypeArguments=r),i}function Jc(e,n,t){var r=t.flags;return 2097152&r?Xc(e,n,t.types):(Uu(t)?8388608&n||(n|=8388608,e.set(t.id.toString(),t)):(3&r?t===_e&&(n|=4194304):!B&&98304&r||e.has(t.id.toString())||(109440&t.flags&&109440&n&&(n|=67108864),e.set(t.id.toString(),t)),n|=68943871&r),n)}function Xc(e,n,t){for(var r=0,a=t;r<a.length;r++){n=Jc(e,n,Gl(a[r]))}return n}function Yc(e,n){for(var t=0,r=e;t<r.length;t++){var a=r[t];if(!Vc(a.types,n)){var i=128&n.flags?Se:256&n.flags?xe:2048&n.flags?Le:8192&n.flags?Ie:void 0;if(!i||!Vc(a.types,i))return!1}}return!0}function Qc(n,t){if(e.every(n,(function(n){return!!(1048576&n.flags)&&e.some(n.types,(function(e){return!!(e.flags&t)}))}))){for(var r=0;r<n.length;r++)n[r]=am(n[r],(function(e){return!(e.flags&t)}));return!0}return!1}function Zc(n,t,r){var a=e.createMap(),i=Xc(a,0,n),o=e.arrayFrom(a.values());if(131072&i||B&&98304&i&&76021760&i||67108864&i&&130044&i||132&i&&67238776&i||296&i&&67238612&i||2112&i&&67236796&i||12288&i&&67226620&i||49152&i&&67189756&i)return Oe;if(1&i)return 4194304&i?_e:me;if(!B&&98304&i)return 32768&i?ve:Ee;if((4&i&&128&i||8&i&&256&i||64&i&&2048&i||4096&i&&8192&i)&&function(n,t){for(var r=n.length;r>0;){var a=n[--r];(4&a.flags&&128&t||8&a.flags&&256&t||64&a.flags&&2048&t||4096&a.flags&&8192&t)&&e.orderedRemoveItemAt(n,r)}}(o,i),8388608&i&&524288&i&&e.orderedRemoveItemAt(o,e.findIndex(o,Uu)),0===o.length)return ye;if(1===o.length)return o[0];var c=ec(o),l=ie.get(c);if(!l){if(1048576&i)if(function(n){var t,r=e.findIndex(n,(function(n){return!!(131072&e.getObjectFlags(n))}));if(r<0)return!1;for(var a=r+1;a<n.length;){var i=n[a];131072&e.getObjectFlags(i)?((t||(t=[n[r]])).push(i),e.orderedRemoveItemAt(n,a)):a++}if(!t)return!1;for(var o=[],s=[],c=0,l=t;c<l.length;c++)for(var u=0,d=l[c].types;u<d.length;u++){Uc(o,i=d[u])&&Yc(t,i)&&Uc(s,i)}return n[r]=qc(s,131072),!0}(o))l=Zc(o,t,r);else if(Qc(o,32768))l=Wc([Zc(o),ve],1,t,r);else if(Qc(o,65536))l=Wc([Zc(o),Ee],1,t,r);else{if(e.reduceLeft(o,(function(e,n){return e*(1048576&n.flags?n.types.length:1)}),1)>=1e5)return Wt(s,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),ge;var u=e.findIndex(o,(function(e){return 0!=(1048576&e.flags)})),d=o[u];l=Wc(e.map(d.types,(function(n){return Zc(e.replaceElement(o,u,n))})),1,t,r)}else l=function(e,n,t){var r=aa(2097152);return r.objectFlags=nc(e,98304),r.types=e,r.aliasSymbol=n,r.aliasTypeArguments=t,r}(o,t,r);ie.set(c,l)}return l}function $c(e,n){var t=aa(4194304);return t.type=e,t.stringsOnly=n,t}function el(n){return e.isIdentifier(n)?Vl(e.unescapeLeadingUnderscores(n.escapedText)):Gl(e.isComputedPropertyName(n)?kf(n):Py(n))}function nl(n,t){if(!(24&e.getDeclarationModifierFlagsFromSymbol(n))){var r=_o(n).nameType;if(!r&&!e.isKnownSymbol(n))if(\"default\"===n.escapedName)r=Vl(\"default\");else{var a=n.valueDeclaration&&e.getNameOfDeclaration(n.valueDeclaration);r=a&&el(a)||Vl(e.symbolName(n))}if(r&&r.flags&t)return r}return Oe}function tl(n,t){return Wc(e.map(Xo(n),(function(e){return nl(e,t)})))}function rl(e){var n=vs(e,1);return n!==Zn?n:void 0}function al(n,t,r){return void 0===t&&(t=W),1048576&n.flags?Zc(e.map(n.types,(function(e){return al(e,t,r)}))):2097152&n.flags?Wc(e.map(n.types,(function(e){return al(e,t,r)}))):oy(n,58982400)?function(e,n){return n?e.resolvedStringIndexType||(e.resolvedStringIndexType=$c(e,!0)):e.resolvedIndexType||(e.resolvedIndexType=$c(e,!1))}(n,t):32&e.getObjectFlags(n)?am(wo(n),(function(e){return!(r&&5&e.flags)})):n===_e?_e:2&n.flags?Oe:131073&n.flags?Ve:t?!r&&vs(n,0)?Se:tl(n,128):!r&&vs(n,0)?Wc([Se,xe,tl(n,8192)]):rl(n)?Wc([xe,tl(n,8320)]):tl(n,8576)}function il(n){if(W)return n;var t=Gn||(Gn=Sc(\"Extract\",524288,e.Diagnostics.Cannot_find_global_type_0));return t?cc(t,[n,Se]):Se}function ol(n){return!K&&(!!(16384&e.getObjectFlags(n))||(1048576&n.flags?e.every(n.types,ol):2097152&n.flags?e.some(n.types,ol):!!(63176704&n.flags)&&ol(is(n))))}function sl(n,t){var r=t&&194===t.kind?t:void 0;return io(n)?uo(n):r&&D_(r.argumentExpression,n,!1)?e.getPropertyNameForKnownSymbolName(e.idText(r.argumentExpression.name)):t&&e.isPropertyName(t)?e.getPropertyNameForPropertyNameNode(t):void 0}function cl(n,t,r,a,i,o,s){var c=o&&194===o.kind?o:void 0,l=sl(r,o);if(void 0!==l){var u=ms(t,l);if(u){if(c){if(S_(u,c,103===c.expression.kind),e.isAssignmentTarget(c)&&(ty(c,u)||ry(c)))return void Wt(c.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,La(u));4&s&&(or(o).resolvedSymbol=u)}var d=Ci(u);return c&&1!==e.getAssignmentTargetKind(c)?Am(c,d):d}if(rm(t,Cd)&&Df(l)&&+l>=0){if(o&&rm(t,(function(e){return!e.target.hasRestElement}))&&!(8&s)){var p=ll(o);Cd(t)?Wt(p,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Aa(t),oc(t),e.unescapeLeadingUnderscores(l)):Wt(p,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(l),Aa(t))}return h(vs(t,1)),om(t,(function(e){return Ad(e)||ve}))}}if(!(98304&r.flags)&&sy(r,12716)){if(131073&t.flags)return t;var m=vs(t,0),f=sy(r,296)&&vs(t,1)||m;if(f)return 1&s&&f===m?void(c&&Wt(c,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Aa(r),Aa(n))):o&&!sy(r,12)?(Wt(p=ll(o),e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Aa(r)),f.type):(h(f),f.type);if(131072&r.flags)return Oe;if(ol(t))return me;if(c&&!ly(t)){if(t.symbol===Q&&void 0!==l&&Q.exports.has(l)&&418&Q.exports.get(l).flags)Wt(c,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(l),Aa(t));else if(K&&!P.suppressImplicitAnyIndexErrors&&!i)if(void 0!==l&&y_(l,t))Wt(c,e.Diagnostics.Property_0_is_a_static_member_of_type_1,l,Aa(t));else if(hs(t,1))Wt(c.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var _=void 0;if(void 0!==l&&(_=h_(l,t)))void 0!==_&&Wt(c.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,l,Aa(t),_);else{var g=function(n,t){var r=e.isAssignmentTarget(t)?\"set\":\"get\";if(!function(e,t){void 0===t&&(t=1);var r=qo(n,e);if(r){var a=F_(Ci(r));if(a&&Ig(a)===t&&\"string\"===Aa(Ag(a,0)))return!0}return!1}(r))return;var a=e.tryGetPropertyAccessOrIdentifierToString(t);void 0===a?a=r:a+=\".\"+r;return a}(t,c);if(void 0!==g)Wt(c,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Aa(t),g);else{var y=void 0;if(1024&r.flags)y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Aa(r)+\"]\",Aa(t));else if(8192&r.flags){var v=Or(r.symbol,c);y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+v+\"]\",Aa(t))}else 128&r.flags?y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,Aa(t)):256&r.flags?y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,Aa(t)):12&r.flags&&(y=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Aa(r),Aa(t)));y=e.chainDiagnosticMessages(y,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Aa(a),Aa(t)),Rt.add(e.createDiagnosticForNodeFromMessageChain(c,y))}}}return}}if(ol(t))return me;if(o){p=ll(o);384&r.flags?Wt(p,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"\"+r.value,Aa(t)):12&r.flags?Wt(p,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Aa(t),Aa(r)):Wt(p,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Aa(r))}return Wa(r)?r:void 0;function h(n){n&&n.isReadonly&&c&&(e.isAssignmentTarget(c)||e.isDeleteTarget(c))&&Wt(c,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(t))}}function ll(e){return 194===e.kind?e.argumentExpression:184===e.kind?e.indexType:153===e.kind?e.expression:e}function ul(e){return oy(e,59113472)}function dl(e){return oy(e,63176704)}function pl(e){return!!(262144&e.flags&&e.isThisType)}function ml(n,t){return 8388608&n.flags?function(n,t){var r=t?\"simplifiedForWriting\":\"simplifiedForReading\";if(n[r])return n[r]===Xe?n:n[r];n[r]=Xe;var a=ml(n.objectType,t),i=ml(n.indexType,t),o=function(n,t,r){if(1048576&t.flags){var a=e.map(t.types,(function(e){return ml(yl(n,e),r)}));return r?Zc(a):Wc(a)}}(a,i,t);if(o)return n[r]=o;if(!(63176704&i.flags)){var s=fl(a,i,t);if(s)return n[r]=s}if(Ho(a))return n[r]=om(gl(a,n.indexType),(function(e){return ml(e,t)}));return n[r]=n}(n,t):16777216&n.flags?function(e,n){var t=e.checkType,r=e.extendsType,a=Sl(e),i=xl(e);if(131072&i.flags&&El(a)===El(t)){if(1&t.flags||xu(pu(t),pu(r)))return ml(a,n);if(_l(t,r))return Oe}else if(131072&a.flags&&El(i)===El(t)){if(!(1&t.flags)&&xu(pu(t),pu(r)))return Oe;if(1&t.flags||_l(t,r))return ml(i,n)}return e}(n,t):n}function fl(n,t,r){if(3145728&n.flags){var a=e.map(n.types,(function(e){return ml(yl(e,t),r)}));return 2097152&n.flags||r?Zc(a):Wc(a)}}function _l(e,n){return!!(131072&Wc([Ao(e,n),Oe]).flags)}function gl(e,n){var t=Jl([Po(e)],[n]),r=Yl(e.mapper,t);return uu(Fo(e),r)}function yl(e,n,t){return vl(e,n,t,0)||(t?ge:ye)}function vl(e,n,t,r){if(void 0===r&&(r=0),e===_e||n===_e)return _e;if(!ju(e)||98304&n.flags||!sy(n,12)||(n=Se),dl(n)||(!t||184===t.kind)&&ul(e)){if(3&e.flags)return e;var a=e.id+\",\"+n.id,i=se.get(a);return i||se.set(a,i=function(e,n){var t=aa(8388608);return t.objectType=e,t.indexType=n,t}(e,n)),i}var o=ls(e);if(1048576&n.flags&&!(16&n.flags)){for(var s=[],c=!1,l=0,u=n.types;l<u.length;l++){var d=cl(e,o,u[l],n,c,t,r);if(d)s.push(d);else{if(!t)return;c=!0}}if(c)return;return 2&r?Zc(s):Wc(s)}return cl(e,o,n,n,!1,t,4|r)}function hl(e){var n=or(e);if(!n.resolvedType){var t=Kl(e.objectType),r=Kl(e.indexType),a=yl(t,r,e);n.resolvedType=8388608&a.flags&&a.objectType===t&&a.indexType===r?_c(a,e):a}return n.resolvedType}function bl(e){var n=or(e);if(!n.resolvedType){var t=sa(32,e.symbol);t.declaration=e,t.aliasSymbol=kl(e),t.aliasTypeArguments=Nl(t.aliasSymbol),n.resolvedType=t,wo(t)}return n.resolvedType}function El(e){return 33554432&e.flags?e.typeVariable:8388608&e.flags&&(33554432&e.objectType.flags||33554432&e.indexType.flags)?yl(El(e.objectType),El(e.indexType)):e}function Tl(e,n){var t=uu(e.checkType,n),r=uu(e.extendsType,n);if(t===_e||r===_e)return _e;var a,i=oy(t,63307776);if(e.inferTypeParameters){var o=np(e.inferTypeParameters,void 0,0);i||gp(o.inferences,t,r,192),a=Yl(n,o.mapper)}var s=a?uu(e.extendsType,a):r;if(!i&&!oy(s,63307776)){if(3&s.flags)return uu(e.trueType,a||n);if(1&t.flags)return Wc([uu(e.trueType,a||n),uu(e.falseType,n)]);if(!xu(du(t),du(s)))return uu(e.falseType,n);if(xu(pu(t),pu(s)))return uu(e.trueType,a||n)}var c=El(t),l=aa(16777216);return l.root=e,l.checkType=c,l.extendsType=r,l.mapper=n,l.combinedMapper=a,l.aliasSymbol=e.aliasSymbol,l.aliasTypeArguments=Wl(e.aliasTypeArguments,n),l}function Sl(e){return e.resolvedTrueType||(e.resolvedTrueType=uu(e.root.trueType,e.mapper))}function xl(e){return e.resolvedFalseType||(e.resolvedFalseType=uu(e.root.falseType,e.mapper))}function Ll(n){var t;return n.locals&&n.locals.forEach((function(n){262144&n.flags&&(t=e.append(t,Yi(n)))})),t}function Cl(n){var t=or(n);if(!t.resolvedType){if(n.isTypeOf&&n.typeArguments)return Wt(n,e.Diagnostics.Type_arguments_cannot_be_used_here),t.resolvedSymbol=de,t.resolvedType=ge;if(!e.isLiteralImportTypeNode(n))return Wt(n.argument,e.Diagnostics.String_literal_expected),t.resolvedSymbol=de,t.resolvedType=ge;var r=n.isTypeOf?111551:4194304&n.flags?900095:788968,a=wr(n,n.argument.literal);if(!a)return t.resolvedSymbol=de,t.resolvedType=ge;var i=Vr(a,!1);if(e.nodeIsMissing(n.qualifier)){if(i.flags&r)t.resolvedType=Al(n,t,i,r);else Wt(n,111551===r?e.Diagnostics.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0,n.argument.literal.text),t.resolvedSymbol=de,t.resolvedType=ge}else{for(var o=function n(t){return e.isIdentifier(t)?[t]:e.append(n(t.left),t.right)}(n.qualifier),s=i,c=void 0;c=o.shift();){var l=o.length?1920:r,u=cr(Wr(Xr(Dr(s))),c.escapedText,l);if(!u)return Wt(c,e.Diagnostics.Namespace_0_has_no_exported_member_1,Or(s),e.declarationNameToString(c)),t.resolvedType=ge;or(c).resolvedSymbol=u,or(c.parent).resolvedSymbol=u,s=u}t.resolvedType=Al(n,t,s,r)}}return t.resolvedType}function Al(e,n,t,r){var a=Dr(t);return n.resolvedSymbol=a,111551===r?Ci(t):dc(e,a)}function Dl(n){var t=or(n);if(!t.resolvedType){var r=kl(n);if(0!==fo(n.symbol).size||r){var a=sa(16,n.symbol);a.aliasSymbol=r,a.aliasTypeArguments=Nl(r),e.isJSDocTypeLiteral(n)&&n.isArrayType&&(a=Oc(a)),t.resolvedType=a}else t.resolvedType=We}return t.resolvedType}function kl(n){for(var t=n.parent;e.isParenthesizedTypeNode(t)||e.isTypeOperatorNode(t)&&137===t.operator;)t=t.parent;return e.isTypeAlias(t)?Yr(t):void 0}function Nl(e){return e?Oi(e):void 0}function Il(e){return!!(524288&e.flags)&&!Ho(e)}function Ml(n,t,r,a,i){if(1&n.flags||1&t.flags)return me;if(2&n.flags||2&t.flags)return ye;if(131072&n.flags)return t;if(131072&t.flags)return n;if(1048576&n.flags)return om(n,(function(e){return Ml(e,t,r,a,i)}));if(1048576&t.flags)return om(t,(function(e){return Ml(n,e,r,a,i)}));if(71307260&t.flags)return n;if(ul(n)||ul(t)){if(Vu(n))return t;if(2097152&n.flags){var o=n.types,s=o[o.length-1];if(Il(s)&&Il(t))return Zc(e.concatenate(o.slice(0,o.length-1),[Ml(s,t,r,a,i)]))}return Zc([n,t])}var c,l,u=e.createSymbolTable(),d=e.createUnderscoreEscapedMap();n===je?(c=vs(t,0),l=vs(t,1)):(c=ko(vs(n,0),vs(t,0)),l=ko(vs(n,1),vs(t,1)));for(var p=0,m=Xo(t);p<m.length;p++){var f=m[p];24&e.getDeclarationModifierFlagsFromSymbol(f)?d.set(f.escapedName,!0):Ol(f)&&u.set(f.escapedName,Rl(f,i))}for(var _=0,g=Xo(n);_<g.length;_++){var y=g[_];if(!d.has(y.escapedName)&&Ol(y))if(u.has(y.escapedName)){var v=Ci(f=u.get(y.escapedName));if(16777216&f.flags){var h=e.concatenate(y.declarations,f.declarations),b=Xt(4|16777216&y.flags,y.escapedName);b.type=Wc([Ci(y),Up(v,524288)]),b.leftSpread=y,b.rightSpread=f,b.declarations=h,b.nameType=y.nameType,u.set(y.escapedName,b)}}else u.set(y.escapedName,Rl(y,i))}var E=pa(r,u,e.emptyArray,e.emptyArray,Pl(c,i),Pl(l,i));return E.objectFlags|=525440|a,E}function Ol(n){return!(106496&n.flags&&n.declarations.some((function(n){return e.isClassLike(n.parent)})))}function Rl(e,n){var t=65536&e.flags&&!(32768&e.flags);if(!t&&n===ny(e))return e;var r=Xt(4|16777216&e.flags,e.escapedName,n?8:0);return r.type=t?ve:Ci(e),r.declarations=e.declarations,r.nameType=e.nameType,r.syntheticOrigin=e,r}function Pl(e,n){return e&&e.isReadonly!==n?Xs(e.type,n,e.declaration):e}function wl(e,n,t){var r=aa(e);return r.symbol=t,r.value=n,r}function Fl(e){if(2944&e.flags){if(!e.freshType){var n=wl(e.flags,e.value,e.symbol);n.regularType=e,n.freshType=n,e.freshType=n}return e.freshType}return e}function Gl(n){return 2944&n.flags?n.regularType:1048576&n.flags?Wc(e.sameMap(n.types,Gl)):n}function Bl(e){return!!(2944&e.flags)&&e.freshType===e}function Vl(n,t,r){var a=(t||\"\")+(\"number\"==typeof n?\"#\":\"string\"==typeof n?\"@\":\"n\")+(\"object\"==typeof n?e.pseudoBigIntToString(n):n),i=oe.get(a);if(!i){var o=(\"number\"==typeof n?256:\"string\"==typeof n?128:2048)|(t?1024:0);oe.set(a,i=wl(o,n,r)),i.regularType=i}return i}function Ul(n){if(e.isValidESSymbolDeclaration(n)){var t=Yr(n),r=ir(t);return r.uniqueESSymbolType||(r.uniqueESSymbolType=function(e){var n=aa(8192);return n.symbol=e,n.escapedName=\"__@\"+n.symbol.escapedName+\"@\"+L(n.symbol),n}(t))}return Ie}function jl(n){var t=or(n);return t.resolvedType||(t.resolvedType=function(n){var t=e.getThisContainer(n,!1),r=t&&t.parent;if(r&&(e.isClassLike(r)||245===r.kind)&&!e.hasModifier(t,32)&&(!e.isConstructorDeclaration(t)||e.isNodeDescendantOf(n,t.body)))return ji(Yr(r)).thisType;if(r&&e.isObjectLiteralExpression(r)&&e.isBinaryExpression(r.parent)&&6===e.getAssignmentDeclarationKind(r.parent))return ji(Yr(r.parent.left).parent).thisType;var a=4194304&n.flags?e.getHostSignatureFromJSDoc(n):void 0;return a&&e.isFunctionExpression(a)&&e.isBinaryExpression(a.parent)&&3===e.getAssignmentDeclarationKind(a.parent)?ji(Yr(a.parent.left).parent).thisType:_g(t)&&e.isNodeDescendantOf(n,t.body)?ji(Yr(t)).thisType:(Wt(n,e.Diagnostics.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface),ge)}(n)),t.resolvedType}function Kl(n){switch(n.kind){case 124:case 293:case 294:return me;case 147:return ye;case 142:return Se;case 139:return xe;case 150:return Le;case 127:return Ne;case 143:return Ie;case 109:return Me;case 145:return ve;case 99:return Ee;case 136:return Oe;case 140:return 131072&n.flags?me:Ge;case 182:case 103:return jl(n);case 186:return function(e){var n=or(e);return n.resolvedType||(n.resolvedType=Gl(Py(e.literal))),n.resolvedType}(n);case 168:return vc(n);case 167:return n.assertsModifier?Me:Ne;case 215:return vc(n);case 171:return bc(n);case 173:case 174:return function(n){var t=or(n);if(!t.resolvedType){var r=Rc(n);if(r===ze)t.resolvedType=je;else if(Pc(n))t.resolvedType=174===n.kind&&0===n.elementTypes.length?r:ac(r,n,void 0);else{var a=173===n.kind?[Kl(n.elementType)]:e.map(n.elementTypes,Kl);t.resolvedType=tc(r,a)}}return t.resolvedType}(n);case 175:return function(e){var n=Kl(e.type);return B?Pd(n):n}(n);case 177:return function(n){var t=or(n);if(!t.resolvedType){var r=kl(n);t.resolvedType=Wc(e.map(n.types,Kl),1,r,Nl(r))}return t.resolvedType}(n);case 178:return function(n){var t=or(n);if(!t.resolvedType){var r=kl(n);t.resolvedType=Zc(e.map(n.types,Kl),r,Nl(r))}return t.resolvedType}(n);case 295:return function(e){var n=Kl(e.type);return B?Rd(n,65536):n}(n);case 297:return ni(Kl(n.type));case 181:case 296:case 292:return Kl(n.type);case 176:return md(Kl(n.type))||ge;case 299:return function(n){var t=Kl(n.type),r=n.parent,a=n.parent.parent;if(e.isJSDocTypeExpression(n.parent)&&e.isJSDocParameterTag(a)){var i=e.getHostSignatureFromJSDoc(a);if(i){var o=e.lastOrUndefined(i.parameters),s=e.getParameterSymbolFromJSDoc(a);if(!o||s&&o.symbol===s&&e.isRestParameter(o))return Oc(t)}}if(e.isParameter(r)&&e.isJSDocFunctionType(r.parent))return Oc(t);return ni(t)}(n);case 169:case 170:case 172:case 302:case 298:case 303:return Dl(n);case 183:return function(n){var t=or(n);if(!t.resolvedType)switch(n.operator){case 133:t.resolvedType=al(Kl(n.type));break;case 146:t.resolvedType=143===n.type.kind?Ul(e.walkUpParenthesizedTypes(n.parent)):ge;break;case 137:t.resolvedType=Kl(n.type);break;default:throw e.Debug.assertNever(n.operator)}return t.resolvedType}(n);case 184:return hl(n);case 185:return bl(n);case 179:return function(n){var t=or(n);if(!t.resolvedType){var r=Kl(n.checkType),a=kl(n),i=Nl(a),o=Ii(n,!0),s=i?o:e.filter(o,(function(e){return au(e,n)})),c={node:n,checkType:r,extendsType:Kl(n.extendsType),trueType:Kl(n.trueType),falseType:Kl(n.falseType),isDistributive:!!(262144&r.flags),inferTypeParameters:Ll(n),outerTypeParameters:s,instantiations:void 0,aliasSymbol:a,aliasTypeArguments:i};t.resolvedType=Tl(c,void 0),s&&(c.instantiations=e.createMap(),c.instantiations.set(ec(s),t.resolvedType))}return t.resolvedType}(n);case 180:return function(e){var n=or(e);return n.resolvedType||(n.resolvedType=Xi(Yr(e.typeParameter))),n.resolvedType}(n);case 187:return Cl(n);case 75:case 152:var t=nb(n);return t?Yi(t):ge;default:return ge}}function Hl(e,n,t){if(e&&e.length)for(var r=0;r<e.length;r++){var a=e[r],i=t(a,n);if(a!==i){var o=0===r?[]:e.slice(0,r);for(o.push(i),r++;r<e.length;r++)o.push(t(e[r],n));return o}}return e}function Wl(e,n){return Hl(e,n,uu)}function zl(e,n){return Hl(e,n,nu)}function ql(e,n){return function(t){return t===e?n:t}}function Jl(n,t){return e.Debug.assert(void 0===t||n.length===t.length),1===n.length?ql(n[0],t?t[0]:me):2===n.length?(r=n[0],a=t?t[0]:me,i=n[1],o=t?t[1]:me,function(e){return e===r?a:e===i?o:e}):function(e,n){return function(t){for(var r=0;r<e.length;r++)if(t===e[r])return n?n[r]:me;return t}}(n,t);var r,a,i,o}function Xl(e){return Jl(e,void 0)}function Yl(e,n){return e?n?function(t){return uu(e(t),n)}:e:n}function Ql(e,n,t){return function(r){return r===e?n:t(r)}}function Zl(e){return 262144&e.flags?_e:e}function $l(e){return 262144&e.flags?(n=e).constraint===ye?n:n.restrictiveInstantiation||(n.restrictiveInstantiation=ca(n.symbol),n.restrictiveInstantiation.constraint=ye,n.restrictiveInstantiation):e;var n}function eu(e){var n=ca(e.symbol);return n.target=e,n}function nu(n,t,r){var a;if(n.typeParameters&&!r){a=e.map(n.typeParameters,eu),t=Yl(Jl(n.typeParameters,a),t);for(var i=0,o=a;i<o.length;i++){o[i].mapper=t}}var s=vo(n.declaration,a,n.thisParameter&&tu(n.thisParameter,t),Hl(n.parameters,t,tu),void 0,void 0,n.minArgumentCount,3&n.flags);return s.target=n,s.mapper=t,s}function tu(n,t){var r=ir(n);if(r.type&&!oy(r.type,63700992))return n;1&e.getCheckFlags(n)&&(n=r.target,t=Yl(r.mapper,t));var a=Xt(n.flags,n.escapedName,1|53256&e.getCheckFlags(n));return a.declarations=n.declarations,a.parent=n.parent,a.target=n,a.mapper=t,n.valueDeclaration&&(a.valueDeclaration=n.valueDeclaration),n.nameType&&(a.nameType=n.nameType),a}function ru(n,t){var r=64&n.objectFlags?n.target:n,a=4&n.objectFlags?n.node:n.symbol.declarations[0],i=or(a),o=i.outerTypeParameters;if(!o){var s=a;if(e.isInJSFile(s)){var c=e.findAncestor(s,e.isJSDocParameterTag);if(c){var l=e.getParameterSymbolFromJSDoc(c);l&&(s=l.valueDeclaration)}}var u=Ii(s,!0);if(_g(s)){var d=Es(s);u=e.addRange(u,d)}o=u||e.emptyArray,o=(4&r.objectFlags||2048&r.symbol.flags)&&!r.aliasTypeArguments?e.filter(o,(function(e){return au(e,s)})):o,i.outerTypeParameters=o,o.length&&(i.instantiations=e.createMap(),i.instantiations.set(ec(o),r))}if(o.length){var p=e.map(o,Yl(n.mapper,t)),m=ec(p),f=i.instantiations.get(m);if(!f){var _=Jl(o,p);f=4&r.objectFlags?ac(n.target,n.node,_):32&r.objectFlags?function(n,t){var r=iu(n);if(r){var a=uu(r,t);if(r!==a)return om(a,(function(a){if(61603843&a.flags&&a!==_e&&a!==ge){var i=Ql(r,a,t);return dd(a)?function(e,n,t){var r=su(n,xe,!0,t);return r===ge?ge:Oc(r,ou(pd(e),Uo(n)))}(a,n,i):Cd(a)?function(n,t,r){var a=n.target.minLength,i=e.map(ic(n),(function(e,n){return su(t,Vl(\"\"+n),n>=a,r)})),o=Uo(t),s=4&o?0:8&o?oc(n)-(n.target.hasRestElement?1:0):a,c=ou(n.target.readonly,o);return e.contains(i,ge)?ge:Fc(i,s,n.target.hasRestElement,c,n.target.associatedNames)}(a,n,i):cu(n,i)}return a}))}return cu(n,t)}(r,_):cu(r,_),i.instantiations.set(m,f)}return f}return n}function au(n,t){if(n.symbol&&n.symbol.declarations&&1===n.symbol.declarations.length){for(var r=n.symbol.declarations[0].parent,a=t;a!==r;a=a.parent)if(!a||222===a.kind||179===a.kind&&e.forEachChild(a.extendsType,i))return!0;return!!e.forEachChild(t,i)}return!0;function i(t){switch(t.kind){case 182:return!!n.isThisType;case 75:return!n.isThisType&&e.isPartOfTypeNode(t)&&function(e){return!(152===e.kind||168===e.parent.kind&&e.parent.typeArguments&&e===e.parent.typeName||187===e.parent.kind&&e.parent.typeArguments&&e===e.parent.qualifier)}(t)&&Kl(t)===n;case 171:return!0}return!!e.forEachChild(t,i)}}function iu(e){var n=wo(e);if(4194304&n.flags){var t=El(n.type);if(262144&t.flags)return t}}function ou(e,n){return!!(1&n)||!(2&n)&&e}function su(e,n,t,r){var a=Yl(r,Jl([Po(e)],[n])),i=uu(Fo(e.target||e),a),o=Uo(e);return B&&4&o&&!xu(ve,i)?Pd(i):B&&8&o&&t?Up(i,524288):i}function cu(e,n){var t=sa(64|e.objectFlags,e.symbol);if(32&e.objectFlags){t.declaration=e.declaration;var r=Po(e),a=eu(r);t.typeParameter=a,n=Yl(ql(r,a),n),a.mapper=n}return t.target=e,t.mapper=n,t.aliasSymbol=e.aliasSymbol,t.aliasTypeArguments=Wl(e.aliasTypeArguments,n),t}function lu(n,t){var r=n.root;if(r.outerTypeParameters){var a=e.map(r.outerTypeParameters,t),i=ec(a),o=r.instantiations.get(i);if(!o)o=function(e,n){if(e.isDistributive){var t=e.checkType,r=n(t);if(t!==r&&1179648&r.flags)return om(r,(function(r){return Tl(e,Ql(t,r,n))}))}return Tl(e,n)}(r,Jl(r.outerTypeParameters,a)),r.instantiations.set(i,o);return o}return n}function uu(n,t){if(!n||!t||t===R)return n;if(50===b||y>=5e6)return Wt(s,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),ge;y++,b++;var r=function(e,n){var t=e.flags;if(262144&t)return n(e);if(524288&t){var r=e.objectFlags;if(16&r)return cp(e)?ru(e,n):e;if(32&r)return ru(e,n);if(4&r){if(e.node)return ru(e,n);var a=e.resolvedTypeArguments,i=Wl(a,n);return i!==a?tc(e.target,i):e}return e}if(1048576&t&&!(131068&t)){var o=e.types;return(s=Wl(o,n))!==o?Wc(s,1,e.aliasSymbol,Wl(e.aliasTypeArguments,n)):e}if(2097152&t){var s;o=e.types;return(s=Wl(o,n))!==o?Zc(s,e.aliasSymbol,Wl(e.aliasTypeArguments,n)):e}if(4194304&t)return al(uu(e.type,n));if(8388608&t)return yl(uu(e.objectType,n),uu(e.indexType,n));if(16777216&t)return lu(e,Yl(e.mapper,n));if(33554432&t){var c=uu(e.typeVariable,n);if(8650752&c.flags)return pc(c,uu(e.substitute,n));var l=uu(e.substitute,n);return 3&l.flags||xu(pu(c),pu(l))?c:l}return e}(n,t);return b--,r}function du(e){return 262143&e.flags?e:e.permissiveInstantiation||(e.permissiveInstantiation=uu(e,Zl))}function pu(e){return 262143&e.flags?e:e.restrictiveInstantiation?e.restrictiveInstantiation:(e.restrictiveInstantiation=uu(e,$l),e.restrictiveInstantiation.restrictiveInstantiation=e.restrictiveInstantiation,e.restrictiveInstantiation)}function mu(e,n){return e&&Xs(uu(e.type,n),e.isReadonly,e.declaration)}function fu(n){switch(e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n)),n.kind){case 200:case 201:case 160:case 243:return _u(n);case 192:return e.some(n.properties,fu);case 191:return e.some(n.elements,fu);case 209:return fu(n.whenTrue)||fu(n.whenFalse);case 208:return(56===n.operatorToken.kind||60===n.operatorToken.kind)&&(fu(n.left)||fu(n.right));case 279:return fu(n.initializer);case 199:return fu(n.expression);case 272:return e.some(n.properties,fu)||e.isJsxOpeningElement(n.parent)&&e.some(n.parent.parent.children,fu);case 271:var t=n.initializer;return!!t&&fu(t);case 274:var r=n.expression;return!!r&&fu(r)}return!1}function _u(n){if(e.isFunctionDeclaration(n)&&(!e.isInJSFile(n)||!$a(n)))return!1;if(n.typeParameters)return!1;if(e.some(n.parameters,(function(n){return!e.getEffectiveTypeAnnotationNode(n)})))return!0;if(201!==n.kind){var t=e.firstOrUndefined(n.parameters);if(!t||!e.parameterIsThisKeyword(t))return!0}return gu(n)}function gu(e){return!!e.body&&222!==e.body.kind&&fu(e.body)}function yu(n){return(e.isInJSFile(n)&&e.isFunctionDeclaration(n)||hf(n)||e.isObjectLiteralMethod(n))&&_u(n)}function vu(n){if(524288&n.flags){var t=Wo(n);if(t.constructSignatures.length||t.callSignatures.length){var r=sa(16,n.symbol);return r.members=t.members,r.properties=t.properties,r.callSignatures=e.emptyArray,r.constructSignatures=e.emptyArray,r}}else if(2097152&n.flags)return Zc(e.map(n.types,vu));return n}function hu(e,n){return Wu(e,n,Ut)}function bu(e,n){return Wu(e,n,Ut)?-1:0}function Eu(e,n){return Wu(e,n,Bt)?-1:0}function Tu(e,n){return Wu(e,n,Gt)?-1:0}function Su(e,n){return Wu(e,n,Gt)}function xu(e,n){return Wu(e,n,Bt)}function Lu(n,t){return 1048576&n.flags?e.every(n.types,(function(e){return Lu(e,t)})):1048576&t.flags?e.some(t.types,(function(e){return Lu(n,e)})):58982400&n.flags?Lu(ts(n)||ye,t):t===rn?!!(67633152&n.flags):t===an?!!(524288&n.flags)&&Bp(n):ki(n,Di(t))}function Cu(e,n){return Wu(e,n,Vt)}function Au(e,n){return Cu(e,n)||Cu(n,e)}function Du(e,n,t,r,a,i){return qu(e,n,Bt,t,r,a,i)}function ku(e,n,t,r,a,i){return Nu(e,n,Bt,t,r,a,i,void 0)}function Nu(e,n,t,r,a,i,o,s){return!!Wu(e,n,t)||(!r||!Mu(a,e,n,t,i,o,s))&&qu(e,n,t,r,i,o,s)}function Iu(n){return!!(16777216&n.flags||2097152&n.flags&&e.some(n.types,Iu))}function Mu(n,t,r,a,i,o,s){if(!n||Iu(r))return!1;if(!qu(t,r,a,void 0)&&function(n,t,r,a,i,o,s){for(var c=_s(t,0),l=_s(t,1),u=0,d=[l,c];u<d.length;u++){var p=d[u];if(e.some(p,(function(e){var n=ws(e);return!(131073&n.flags)&&qu(n,r,a,void 0)}))){var m=s||{};Du(t,r,n,i,o,m);var f=m.errors[m.errors.length-1];return e.addRelatedInfo(f,e.createDiagnosticForNode(n,p===l?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}(n,t,r,a,i,o,s))return!0;switch(n.kind){case 274:case 199:return Mu(n.expression,t,r,a,i,o,s);case 208:switch(n.operatorToken.kind){case 62:case 27:return Mu(n.right,t,r,a,i,o,s)}break;case 192:return function(n,t,r,a,i,o){return!(131068&r.flags)&&Ou(function(n){var t,r,a,i;return __generator(this,(function(o){switch(o.label){case 0:if(!e.length(n.properties))return[2];t=0,r=n.properties,o.label=1;case 1:if(!(t<r.length))return[3,8];if(a=r[t],e.isSpreadAssignment(a))return[3,7];if(!(i=nl(Yr(a),8576))||131072&i.flags)return[3,7];switch(a.kind){case 163:case 162:case 160:case 280:return[3,2];case 279:return[3,4]}return[3,6];case 2:return[4,{errorNode:a.name,innerExpression:void 0,nameType:i}];case 3:return o.sent(),[3,7];case 4:return[4,{errorNode:a.name,innerExpression:a.initializer,nameType:i,errorMessage:qa(a.name)?e.Diagnostics.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:void 0}];case 5:return o.sent(),[3,7];case 6:e.Debug.assertNever(a),o.label=7;case 7:return t++,[3,1];case 8:return[2]}}))}(n),t,r,a,i,o)}(n,t,r,a,o,s);case 191:return function(e,n,t,r,a,i){if(131068&t.flags)return!1;if(gd(n))return Ou(wu(e,t),n,t,r,a,i);var o=Sf(e,1,!0);if(gd(o))return Ou(wu(e,t),o,t,r,a,i);return!1}(n,t,r,a,o,s);case 272:return function(n,t,r,a,i,o){var s,c=Ou(function(n){var t,r,a;return __generator(this,(function(i){switch(i.label){case 0:if(!e.length(n.properties))return[2];t=0,r=n.properties,i.label=1;case 1:return t<r.length?(a=r[t],e.isJsxSpreadAttribute(a)?[3,3]:[4,{errorNode:a.name,innerExpression:a.initializer,nameType:Vl(e.idText(a.name))}]):[3,4];case 2:i.sent(),i.label=3;case 3:return t++,[3,1];case 4:return[2]}}))}(n),t,r,a,i,o);if(e.isJsxOpeningElement(n.parent)&&e.isJsxElement(n.parent.parent)){var l=n.parent.parent,u=Kf(Uf(n)),d=void 0===u?\"children\":e.unescapeLeadingUnderscores(u),p=Vl(d),m=yl(r,p),f=Pu(l.children);if(!e.length(f))return c;var _=e.length(f)>1,g=am(m,yd),y=am(m,(function(e){return!yd(e)}));if(_){if(g!==Oe){var v=Fc(Ff(l,0)),h=function(n,t){var r,a,i,o,s;return __generator(this,(function(c){switch(c.label){case 0:if(!e.length(n.children))return[2];r=0,a=0,c.label=1;case 1:return a<n.children.length?(i=n.children[a],o=Vl(a-r),(s=Ru(i,o,t))?[4,s]:[3,3]):[3,5];case 2:return c.sent(),[3,4];case 3:r++,c.label=4;case 4:return a++,[3,1];case 5:return[2]}}))}(l,T);c=Ou(h,v,g,a,i,o)||c}else if(!Wu(yl(t,p),m,a)){c=!0;var b=Wt(l.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,d,Aa(m));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(b)}}else if(y!==Oe){var E=Ru(f[0],p,T);E&&(c=Ou(function(){return __generator(this,(function(e){switch(e.label){case 0:return[4,E];case 1:return e.sent(),[2]}}))}(),t,r,a,i,o)||c)}else if(!Wu(yl(t,p),m,a)){c=!0;b=Wt(l.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,d,Aa(m));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(b)}}return c;function T(){if(!s){var t=e.getTextOfNode(n.parent.tagName),a=Kf(Uf(n)),i=void 0===a?\"children\":e.unescapeLeadingUnderscores(a),o=yl(r,Vl(i)),c=e.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;s=__assign(__assign({},c),{key:\"!!ALREADY FORMATTED!!\",message:e.formatMessage(void 0,c,t,i,Aa(o))})}return s}}(n,t,r,a,o,s);case 201:return function(n,t,r,a,i,o){if(e.isBlock(n.body))return!1;if(e.some(n.parameters,e.hasType))return!1;var s=F_(t);if(!s)return!1;var c=_s(r,0);if(!e.length(c))return!1;var l=n.body,u=ws(s),d=Wc(e.map(c,ws));if(!qu(u,d,a,void 0)){var p=l&&Mu(l,u,d,a,void 0,i,o);if(p)return p;var m=o||{};if(qu(u,d,a,l,void 0,i,m),m.errors)return r.symbol&&e.length(r.symbol.declarations)&&e.addRelatedInfo(m.errors[m.errors.length-1],e.createDiagnosticForNode(r.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),!0}return!1}(n,t,r,a,o,s)}return!1}function Ou(n,t,r,a,i,o){for(var s=!1,c=n.next();!c.done;c=n.next()){var l=c.value,u=l.errorNode,d=l.innerExpression,p=l.nameType,m=l.errorMessage,f=vl(r,p);if(f&&!(8388608&f.flags)){var _=vl(t,p);if(_&&!qu(_,f,a,void 0))if(d&&Mu(d,_,f,a,void 0,i,o))s=!0;else{var g=o||{},y=d?xy(d,0,_):_;if(qu(y,f,a,u,m,i,g)&&y!==_&&qu(_,f,a,u,m,i,g),g.errors){var v=g.errors[g.errors.length-1],h=io(p)?uo(p):void 0,b=void 0!==h?ms(r,h):void 0,E=!1;if(!b){var T=sy(p,296)&&vs(r,1)||vs(r,0)||void 0;T&&T.declaration&&!e.getSourceFileOfNode(T.declaration).hasNoDefaultLib&&(E=!0,e.addRelatedInfo(v,e.createDiagnosticForNode(T.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!E&&(b&&e.length(b.declarations)||r.symbol&&e.length(r.symbol.declarations))){var S=b&&e.length(b.declarations)?b.declarations[0]:r.symbol.declarations[0];e.getSourceFileOfNode(S).hasNoDefaultLib||e.addRelatedInfo(v,e.createDiagnosticForNode(S,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,!h||8192&p.flags?Aa(p):e.unescapeLeadingUnderscores(h),Aa(r)))}}s=!0}}}return s}function Ru(n,t,r){switch(n.kind){case 274:return{errorNode:n,innerExpression:n.expression,nameType:t};case 11:if(n.containsOnlyTriviaWhiteSpaces)break;return{errorNode:n,innerExpression:void 0,nameType:t,errorMessage:r()};case 264:case 265:case 268:return{errorNode:n,innerExpression:n,nameType:t};default:return e.Debug.assertNever(n,\"Found invalid jsx child\")}}function Pu(n){return e.filter(n,(function(n){return!e.isJsxText(n)||!n.containsOnlyTriviaWhiteSpaces}))}function wu(n,t){var r,a,i,o;return __generator(this,(function(s){switch(s.label){case 0:if(!(r=e.length(n.elements)))return[2];a=0,s.label=1;case 1:return a<r?gd(t)&&!ms(t,\"\"+a)?[3,3]:(i=n.elements[a],e.isOmittedExpression(i)?[3,3]:(o=Vl(a),[4,{errorNode:i,innerExpression:i,nameType:o}])):[3,4];case 2:s.sent(),s.label=3;case 3:return a++,[3,1];case 4:return[2]}}))}function Fu(e,n,t,r,a){return qu(e,n,Vt,t,r,a)}function Gu(n,t,r,a,i,o,s,c){if(n===t)return-1;if(!(l=t).typeParameters&&(!l.thisParameter||Wa(Lg(l.thisParameter)))&&1===l.parameters.length&&I(l)&&(Lg(l.parameters[0])===_n||Wa(Lg(l.parameters[0])))&&Wa(ws(l)))return-1;var l,u=Ng(t);if(!Mg(t)&&Ig(n)>u)return 0;n.typeParameters&&n.typeParameters!==t.typeParameters&&(n=V_(n,t=Hs(t),void 0,c));var d=Ng(n),p=Rg(n),m=Rg(t);if(p&&m&&d!==u)return 0;var f=t.declaration?t.declaration.kind:0,_=!r&&V&&160!==f&&159!==f&&161!==f,g=-1,y=Rs(n);if(y&&y!==Me){var v=Rs(t);if(v){if(!(T=!_&&c(y,v,!1)||c(v,y,i)))return i&&o(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;g&=T}}for(var h=p||m?Math.min(d,u):Math.max(d,u),b=p||m?h-1:-1,E=0;E<h;E++){var T,S=E===b?kg(n,E):Ag(n,E),x=E===b?kg(t,E):Ag(t,E),L=r?void 0:F_(wd(S)),C=r?void 0:F_(wd(x));if(!(T=L&&C&&!Ps(L)&&!Ps(C)&&(98304&Id(S))==(98304&Id(x))?Gu(C,L,_?2:1,!1,i,o,s,c):!r&&!_&&c(S,x,!1)||c(x,S,i)))return i&&o(e.Diagnostics.Types_of_parameters_0_and_1_are_incompatible,e.unescapeLeadingUnderscores(Cg(n,E)),e.unescapeLeadingUnderscores(Cg(t,E))),0;g&=T}if(!a){var A=Gs(t)?me:t.declaration&&_g(t.declaration)?ji(Xr(t.declaration.symbol)):ws(t);if(A===Me)return g;var D=Gs(n)?me:n.declaration&&_g(n.declaration)?ji(Xr(n.declaration.symbol)):ws(n),k=Ps(t);if(k){var N=Ps(n);if(N)g&=function(n,t,r,a,i){if(n.kind!==t.kind)return r&&(a(e.Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard),a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t))),0;if((1===n.kind||3===n.kind)&&n.parameterIndex!==t.parameterIndex)return r&&(a(e.Diagnostics.Parameter_0_is_not_in_the_same_position_as_parameter_1,n.parameterName,t.parameterName),a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t))),0;var o=n.type===t.type?-1:n.type&&t.type?i(n.type,t.type,r):0;0===o&&r&&a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t));return o}(N,k,i,o,c);else if(e.isIdentifierTypePredicate(k))return i&&o(e.Diagnostics.Signature_0_must_be_a_type_predicate,Ca(n)),0}else!(g&=1===r&&c(A,D,!1)||c(D,A,i))&&i&&s&&s(D,A)}return g}function Bu(e,n){var t=Ks(e),r=Ks(n),a=ws(t),i=ws(r);return!(i!==Me&&!Wu(i,a,Bt)&&!Wu(a,i,Bt))&&0!==Gu(t,r,0,!0,!1,void 0,void 0,Eu)}function Vu(n){return 524288&n.flags?!Ho(n)&&(0===(t=Wo(n)).properties.length&&0===t.callSignatures.length&&0===t.constructSignatures.length&&!t.stringIndexInfo&&!t.numberIndexInfo):!!(67108864&n.flags)||(1048576&n.flags?e.some(n.types,Vu):!!(2097152&n.flags)&&e.every(n.types,Vu));var t}function Uu(n){return!!(16&e.getObjectFlags(n))&&Vu(n)}function ju(n){return 524288&n.flags&&!Ho(n)&&0===Xo(n).length&&vs(n,0)&&!vs(n,1)||3145728&n.flags&&e.every(n.types,ju)||!1}function Ku(n,t,r){if(n===t)return!0;var a=L(n)+\",\"+L(t),i=jt.get(a);if(void 0!==i&&(4&i||!(2&i)||!r))return!!(1&i);if(!(n.escapedName===t.escapedName&&256&n.flags&&256&t.flags))return jt.set(a,6),!1;for(var o=Ci(t),s=0,c=Xo(Ci(n));s<c.length;s++){var l=c[s];if(8&l.flags){var u=ms(o,l.escapedName);if(!(u&&8&u.flags))return r?(r(e.Diagnostics.Property_0_is_missing_in_type_1,e.symbolName(l),Aa(Yi(t),void 0,64)),jt.set(a,6)):jt.set(a,2),!1}}return jt.set(a,1),!0}function Hu(e,n,t,r){var a=e.flags,i=n.flags;if(3&i||131072&a||e===_e)return!0;if(131072&i)return!1;if(132&a&&4&i)return!0;if(128&a&&1024&a&&128&i&&!(1024&i)&&e.value===n.value)return!0;if(296&a&&8&i)return!0;if(256&a&&1024&a&&256&i&&!(1024&i)&&e.value===n.value)return!0;if(2112&a&&64&i)return!0;if(528&a&&16&i)return!0;if(12288&a&&4096&i)return!0;if(32&a&&32&i&&Ku(e.symbol,n.symbol,r))return!0;if(1024&a&&1024&i){if(1048576&a&&1048576&i&&Ku(e.symbol,n.symbol,r))return!0;if(2944&a&&2944&i&&e.value===n.value&&Ku(Qr(e.symbol),Qr(n.symbol),r))return!0}if(32768&a&&(!B||49152&i))return!0;if(65536&a&&(!B||65536&i))return!0;if(524288&a&&67108864&i)return!0;if(t===Bt||t===Vt){if(1&a)return!0;if(264&a&&!(1024&a)&&(32&i||256&i&&1024&i))return!0}return!1}function Wu(e,n,t){if(Bl(e)&&(e=e.regularType),Bl(n)&&(n=n.regularType),e===n||t===Vt&&!(131072&n.flags)&&Hu(n,e,t)||t!==Ut&&Hu(e,n,t))return!0;if(524288&e.flags&&524288&n.flags){var r=t.get(rd(e,n,!1,t));if(void 0!==r)return!!(1&r)}return!!(66846720&e.flags||66846720&n.flags)&&qu(e,n,t,void 0)}function zu(n,t){return 4096&e.getObjectFlags(n)&&!Rf(t.escapedName)}function qu(n,t,r,a,i,o,s){var c,l,u,d,p,m,f=0,_=0,g=0,y=!1,v=0,h=[];e.Debug.assert(r!==Ut||!a,\"no error reporting in identity checking\");var b=R(n,t,!!a,i);if(h.length&&N(),y){var E=Wt(a,e.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1,Aa(n),Aa(t));s&&(s.errors||(s.errors=[])).push(E)}else if(c){if(o){var S=o();S&&(e.concatenateDiagnosticMessageChains(S,c),c=S)}var x=void 0;if(i&&a&&!b&&n.symbol){var L=ir(n.symbol);if(L.originatingImport&&!e.isImportCall(L.originatingImport))if(qu(Ci(L.target),t,r,void 0)){var C=e.createDiagnosticForNode(L.originatingImport,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead);x=e.append(x,C)}}E=e.createDiagnosticForNodeFromMessageChain(a,c,x);l&&e.addRelatedInfo.apply(void 0,__spreadArrays([E],l)),s&&(s.errors||(s.errors=[])).push(E),s&&s.skipLogging||Rt.add(E)}return a&&s&&s.skipLogging&&0===b&&e.Debug.assert(!!s.errors,\"missed opportunity to interact with error.\"),0!==b;function A(e){c=e.errorInfo,m=e.lastSkippedInfo,h=e.incompatibleStack,v=e.overrideNextErrorInfo,l=e.relatedInfo}function D(){return{errorInfo:c,lastSkippedInfo:m,incompatibleStack:h.slice(),overrideNextErrorInfo:v,relatedInfo:l?l.slice():void 0}}function k(e,n,t,r,a){v++,m=void 0,h.push([e,n,t,r,a])}function N(){var n=h;h=[];var t=m;if(m=void 0,1===n.length)return I.apply(void 0,n[0]),void(t&&M.apply(void 0,__spreadArrays([void 0],t)));for(var r=\"\",a=[];n.length;){var i=n.pop(),o=i[0],s=i.slice(1);switch(o.code){case e.Diagnostics.Types_of_property_0_are_incompatible.code:0===r.indexOf(\"new \")&&(r=\"(\"+r+\")\");var c=\"\"+s[0];r=0===r.length?\"\"+c:e.isIdentifierText(c,P.target)?r+\".\"+c:\"[\"===c[0]&&\"]\"===c[c.length-1]?\"\"+r+c:r+\"[\"+c+\"]\";break;case e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible.code:case e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code:case e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:case e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:if(0===r.length){var l=o;o.code===e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?l=e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible:o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code&&(l=e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible),a.unshift([l,s[0],s[1]])}else{r=\"\"+(o.code===e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code||o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?\"new \":\"\")+r+\"(\"+(o.code===e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code||o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?\"\":\"...\")+\")\"}break;default:return e.Debug.fail(\"Unhandled Diagnostic: \"+o.code)}}r?I(\")\"===r[r.length-1]?e.Diagnostics.The_types_returned_by_0_are_incompatible_between_these_types:e.Diagnostics.The_types_of_0_are_incompatible_between_these_types,r):a.shift();for(var u=0,d=a;u<d.length;u++){var p=d[u],f=(o=p[0],s=p.slice(1),o.elidedInCompatabilityPyramid);o.elidedInCompatabilityPyramid=!1,I.apply(void 0,__spreadArrays([o],s)),o.elidedInCompatabilityPyramid=f}t&&M.apply(void 0,__spreadArrays([void 0],t))}function I(n,t,r,i,o){e.Debug.assert(!!a),h.length&&N(),n.elidedInCompatabilityPyramid||(c=e.chainDiagnosticMessages(c,n,t,r,i,o))}function M(n,t,a){h.length&&N();var i=Da(t,a),o=i[0],s=i[1];262144&a.flags&&void 0!==a.immediateBaseConstraint&&xu(t,a.immediateBaseConstraint)&&I(e.Diagnostics._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2,o,s,Aa(a.immediateBaseConstraint)),n||(n=r===Vt?e.Diagnostics.Type_0_is_not_comparable_to_type_1:o===s?e.Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:e.Diagnostics.Type_0_is_not_assignable_to_type_1),I(n,o,s)}function O(n,t,r){if(gd(n)){var a=n.target;return a&&a.readonly&&yd(t)&&(!pd(t)||Cd(t)&&!t.target.readonly)?(r&&I(e.Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,Aa(n),Aa(t)),!1):fd(t)}return gd(t)?fd(n):!(pd(n)&&dd(t)&&!pd(t))||(r&&I(e.Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,Aa(n),Aa(t)),!1)}function R(n,t,i,o,s){if(void 0===i&&(i=!1),Bl(n)&&(n=n.regularType),Bl(t)&&(t=t.regularType),33554432&n.flags&&(n=n.substitute),33554432&t.flags&&(t=t.typeVariable),25165824&n.flags&&(n=ml(n,!1)),25165824&t.flags&&(t=ml(t,!0)),1048576&t.flags&&524288&n.flags&&t.types.length<=3&&oy(t,98304)){var l=sm(t,-98305);1179648&l.flags||(t=l)}if(n===t)return-1;if(r===Ut)return function(e,n){var t,r=e.flags&n.flags;if(524288&r||8388608&r||16777216&r||4194304&r||33554432&r)return U(e,n,!1,!1);if(3145728&r&&(t=w(e,n))&&(t&=w(n,e)))return t;return 0}(n,t);if(r===Vt&&!(131072&t.flags)&&Hu(t,n,r)||Hu(n,t,r,i?I:void 0))return-1;var u=!!(4096&e.getObjectFlags(n)),d=!s&&hp(n)&&32768&e.getObjectFlags(n);if(d){var p=1048576&t.flags?G(n,t):void 0;if(function n(t,i,o,s){if(!K&&16384&e.getObjectFlags(i))return!1;if(Qf(i)){var c=!!(4096&e.getObjectFlags(t));if((r===Bt||r===Vt)&&(nm(rn,i)||!c&&Vu(i)))return!1;if(o)return n(t,o,void 0,s);for(var l=function(n){if(function(e,n){return e.valueDeclaration&&n.valueDeclaration&&e.valueDeclaration.parent===n.valueDeclaration}(n,t.symbol)&&!Yf(i,n.escapedName,c)){if(s){var r=am(i,Qf);if(!a)return{value:e.Debug.fail()};if(e.isJsxAttributes(a)||e.isJsxOpeningLikeElement(a)||e.isJsxOpeningLikeElement(a.parent))n.valueDeclaration&&e.isJsxAttribute(n.valueDeclaration)&&(a=n.valueDeclaration.name),I(e.Diagnostics.Property_0_does_not_exist_on_type_1,La(n),Aa(r));else{var o=t.symbol&&e.firstOrUndefined(t.symbol.declarations),l=void 0;if(n.valueDeclaration&&e.findAncestor(n.valueDeclaration,(function(e){return e===o}))){var u=n.valueDeclaration;e.Debug.assertNode(u,e.isObjectLiteralElementLike),a=u;var d=u.name;e.isIdentifier(d)&&(l=h_(d,r))}void 0!==l?I(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,La(n),Aa(r),l):I(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,La(n),Aa(r))}}return{value:!0}}},u=0,d=Xo(t);u<d.length;u++){var p=d[u],m=l(p);if(\"object\"==typeof m)return m.value}}return!1}(n,t,p,i))return i&&M(o,n,t),0}var f=r!==Vt&&!s&&2752508&n.flags&&n!==rn&&2621440&t.flags&&Xu(t)&&(Xo(n).length>0||cb(n));if(f&&!function(e,n,t){for(var r=0,a=Xo(e);r<a.length;r++){var i=a[r];if(Yf(n,i.escapedName,t))return!0}return!1}(n,t,u)){if(i){var _=_s(n,0),g=_s(n,1);_.length>0&&R(ws(_[0]),t,!1)||g.length>0&&R(ws(g[0]),t,!1)?I(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,Aa(n),Aa(t)):I(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,Aa(n),Aa(t))}return 0}var y=0,h=D(),b=!!s;if(1048576&n.flags)y=r===Vt?V(n,t,i&&!(131068&n.flags)):function(e,n,t){for(var r=-1,a=e.types,i=0,o=a;i<o.length;i++){var s=R(o[i],n,t);if(!s)return 0;r&=s}return r}(n,t,i&&!(131068&n.flags));else{if(1048576&t.flags){if((y=F(Hd(n),t,i&&!(131068&n.flags)&&!(131068&t.flags)))&&(d||f)){p=G(n,t)||function(e){if(oy(e,67108864)){var n=am(e,(function(e){return!(131068&e.flags)}));if(!(131072&n.flags))return n}return e}(t);if(!q(n,p,i,void 0,b))return 0}}else if(2097152&t.flags){if(b=!0,(y=function(e,n,t){for(var r=-1,a=n.types,i=0,o=a;i<o.length;i++){var s=o[i],c=R(e,s,t,void 0,!0);if(!c)return 0;r&=c}return r}(Hd(n),t,i))&&(d||f)&&!q(n,t,i,void 0,!1))return 0}else 2097152&n.flags&&(y=V(n,t,!1));!y&&(66846720&n.flags||66846720&t.flags)&&(y=U(n,t,i,b))&&A(h)}if(!y&&2359296&n.flags){var E=function(n,t){for(var r,a=!1,i=0,o=n;i<o.length;i++){if(63176704&(u=o[i]).flags){for(var s=Yo(u);s&&21233664&s.flags;)s=Yo(s);s&&(r=e.append(r,s),t&&(r=e.append(r,u)))}else 67238908&u.flags&&(a=!0)}if(r&&(t||a)){if(a)for(var c=0,l=n;c<l.length;c++){var u;67238908&(u=l[c]).flags&&(r=e.append(r,u))}return Zc(r)}}(2097152&n.flags?n.types:[n],!!(1048576&t.flags));E&&(2097152&n.flags||1048576&t.flags)&&rm(E,(function(e){return e!==n}))&&(y=R(E,t,!1,void 0,b))&&A(h)}if(!y&&i){var S=v>0;if(S&&v--,524288&n.flags&&524288&t.flags){var x=c;O(n,t,i),c!==x&&(S=!!c)}if(524288&n.flags&&131068&t.flags)!function(n,t){var r=ka(n.symbol)?Aa(n,n.symbol.valueDeclaration):Aa(n),a=ka(t.symbol)?Aa(t,t.symbol.valueDeclaration):Aa(t);(un===n&&Se===t||dn===n&&xe===t||pn===n&&Ne===t||Cc(!1)===n&&Ie===t)&&I(e.Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible,a,r)}(n,t);else if(n.symbol&&524288&n.flags&&rn===n)I(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(u&&2097152&t.flags){var L=t.types,C=Bf(T.IntrinsicAttributes,a),k=Bf(T.IntrinsicClassAttributes,a);if(C!==ge&&k!==ge&&(e.contains(L,C)||e.contains(L,k)))return y}if(!o&&S)return m=[n,t],y;M(o,n,t)}return y}function w(e,n){for(var t=-1,r=0,a=e.types;r<a.length;r++){var i=F(a[r],n,!1);if(!i)return 0;t&=i}return t}function F(n,t,r){var a=t.types;if(1048576&t.flags&&Vc(a,n))return-1;for(var i=0,o=a;i<o.length;i++){var s=R(n,o[i],!1);if(s)return s}r&&R(n,G(n,t)||function(n,t){var r=e.getObjectFlags(n);if(20&r&&1048576&t.flags)return e.find(t.types,(function(t){if(524288&t.flags){var a=r&e.getObjectFlags(t);if(4&a)return n.target===t.target;if(16&a)return!!n.aliasSymbol&&n.aliasSymbol===t.aliasSymbol}return!1}))}(n,t)||function(n,t){if(128&e.getObjectFlags(n)&&tm(t,fd))return e.find(t.types,(function(e){return!fd(e)}))}(n,t)||function(n,t){var r=0;if(_s(n,r).length>0||_s(n,r=1).length>0)return e.find(t.types,(function(e){return _s(e,r).length>0}))}(n,t)||function(n,t){for(var r,a=0,i=0,o=t.types;i<o.length;i++){var s=o[i],c=Zc([al(n),al(s)]);if(4194304&c.flags)r=s,a=1/0;else if(1048576&c.flags){var l=e.length(e.filter(c.types,hd));l>=a&&(r=s,a=l)}else hd(c)&&1>=a&&(r=s,a=1)}return r}(n,t)||a[a.length-1],!0);return 0}function G(n,t){if(1048576&t.flags&&2621440&n.flags){var r=Xo(n);if(r){var a=Pp(r,t);if(a)return Ju(t,e.map(a,(function(e){return[function(){return Ci(e)},e.escapedName]})),R)}}}function V(e,n,t){var r=e.types;if(1048576&e.flags&&Vc(r,n))return-1;for(var a=r.length,i=0;i<a;i++){var o=R(r[i],n,t&&i===a-1);if(o)return o}return 0}function U(n,t,a,i){if(y)return 0;var o=rd(n,t,i,r),s=r.get(o);if(void 0!==s&&(!(a&&2&s)||4&s)){if(Wn){var l=24&s;8&l&&uu(n,j),16&l&&uu(n,H)}return 1&s?-1:0}if(u){for(var m=0;m<f;m++)if(o===u[m])return 1;if(100===_)return y=!0,0}else u=[],d=[],p=[];var v=f;u[f]=o,f++,d[_]=n,p[_]=t,_++;var h,b=g;1&g||!od(n,d,_)||(g|=1),2&g||!od(t,p,_)||(g|=2);var E=0;Wn&&(h=Wn,Wn=function(e){return E|=e?16:8,h(e)});var T=3!==g?function(n,t,a,i){var o,s,l=n.flags&t.flags;if(r===Ut&&!(524288&l)){if(4194304&l)return R(n.type,t.type,!1);var u=0;return 8388608&l&&(u=R(n.objectType,t.objectType,!1))&&(u&=R(n.indexType,t.indexType,!1))?u:16777216&l&&n.root.isDistributive===t.root.isDistributive&&(u=R(n.checkType,t.checkType,!1))&&(u&=R(n.extendsType,t.extendsType,!1))&&(u&=R(Sl(n),Sl(t),!1))&&(u&=R(xl(n),xl(t),!1))?u:33554432&l?R(n.substitute,t.substitute,!1):0}var d=!1,p=D();if(17301504&n.flags&&n.aliasSymbol&&n.aliasTypeArguments&&n.aliasSymbol===t.aliasSymbol&&!n.aliasTypeArgumentsContainsMarker&&!t.aliasTypeArgumentsContainsMarker){var m=Qu(n.aliasSymbol);if(void 0!==(B=X(n.aliasTypeArguments,t.aliasTypeArguments,m,i)))return B}if(262144&t.flags){if(32&e.getObjectFlags(n)&&R(al(t),wo(n))&&!(4&Uo(n))){var f=Fo(n),_=yl(t,Po(n));if(o=R(f,_,a))return o}}else if(4194304&t.flags){if(4194304&n.flags&&(o=R(t.type,n.type,!1)))return o;if((N=Zo(t.type))&&-1===R(n,al(N,t.stringsOnly),a))return-1}else if(8388608&t.flags){if(r!==Ut){var g=t.objectType,y=t.indexType,v=ts(g)||g,h=ts(y)||y;if(!ul(v)&&!dl(h))if((N=vl(v,h,void 0,2|(v!==g?1:0)))&&(o=R(n,N,a)))return o}}else if(Ho(t)){var b=Fo(t),E=Uo(t);if(!(8&E)){if(8388608&b.flags&&b.objectType===n&&b.indexType===Po(t))return-1;if(!Ho(n)){var T=wo(t),S=al(n,void 0,!0),x=4&E,L=x?Ao(T,S):void 0;if(x?!(131072&L.flags):R(T,S)){var C=Po(t),k=L?Zc([L,C]):C;_=yl(n,k),f=Fo(t);if(o=R(_,f,a))return o}s=c,A(p)}}}if(8650752&n.flags){var N;if(8388608&n.flags&&8388608&t.flags){if((o=R(n.objectType,t.objectType,a))&&(o&=R(n.indexType,t.indexType,a)),o)return A(p),o}else if(!(N=Yo(n))||262144&n.flags&&1&N.flags){if(o=R(je,sm(t,-67108865)))return A(p),o}else{if(o=R(N,t,!1,void 0,i))return A(p),o;if(o=R(go(N,n),t,a,void 0,i))return A(p),o}}else if(4194304&n.flags){if(o=R(Ve,t,a))return A(p),o}else if(16777216&n.flags)if(16777216&t.flags){var I=n.root.inferTypeParameters,M=n.extendsType,O=void 0;if(I){var P=np(I,void 0,0,R);gp(P.inferences,t.extendsType,M,192),M=uu(M,P.mapper),O=P.mapper}if(hu(M,t.extendsType)&&(R(n.checkType,t.checkType)||R(t.checkType,n.checkType))&&((o=R(uu(Sl(n),O),Sl(t),a))&&(o&=R(xl(n),xl(t),a)),o))return A(p),o}else{var w=es(n);if(w&&(o=R(w,t,a)))return A(p),o;var F=$o(n);if(F&&(o=R(F,t,a)))return A(p),o}else{if(r!==Gt&&(W=t,32&e.getObjectFlags(W)&&4&Uo(W))&&Vu(n))return-1;if(Ho(t))return Ho(n)&&(o=function(e,n,t){if(r===Vt||(r===Ut?Uo(e)===Uo(n):Ko(e)<=Ko(n))){var a,i=wo(n),o=uu(wo(e),Ko(e)<0?j:H);if(a=R(i,o,t)){var s=Jl([Po(e)],[Po(n)]);return a&R(uu(Fo(e),s),Fo(n),t)}}return 0}(n,t,a))?(A(p),o):0;var G=!!(131068&n.flags);if(r!==Ut)n=ls(n);else if(Ho(n))return 0;if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)&&n.target===t.target&&!(8192&e.getObjectFlags(n)||8192&e.getObjectFlags(t))){var B;m=$u(n.target);if(void 0!==(B=X(ic(n),ic(t),m,i)))return B}else{if(pd(t)?dd(n)||Cd(n):dd(t)&&Cd(n)&&!n.target.readonly)return r!==Ut?R(hs(n,1)||me,hs(t,1)||me,a):0;if(r===Gt&&Vu(t)&&32768&e.getObjectFlags(t)&&!Vu(n))return 0}if(2621440&n.flags&&524288&t.flags){var V=a&&c===p.errorInfo&&!G;if((o=q(n,t,V,void 0,i))&&(o&=J(n,t,0,V))&&(o&=J(n,t,1,V))&&(o&=$(n,t,0,G,V))&&(o&=$(n,t,1,G,V)),d&&o)c=s||c||p.errorInfo;else if(o)return o}if(2621440&n.flags&&1048576&t.flags){var U=sm(t,524288);if(1048576&U.flags){var K=function(n,t){var r=Pp(zo(n),t);if(!r)return 0;for(var a=1,i=0,o=r;i<o.length;i++){var s=o[i];if((a*=im(Ci(s)))>25)return 0}for(var c=new Array(r.length),l=e.createUnderscoreEscapedMap(),u=0;u<r.length;u++){var d=Ci(s=r[u]);c[u]=1048576&d.flags?d.types:[d],l.set(s.escapedName,!0)}for(var p=e.cartesianProduct(c),m=[],f=function(a){var i=!1;e:for(var o=0,s=t.types;o<s.length;o++){for(var c=s[o],l=function(e){var i=r[e],o=qo(c,i.escapedName);return o?i===o?\"continue\":z(n,t,i,o,(function(n){return a[e]}),!1,!1)?void 0:\"continue-outer\":\"continue-outer\"},u=0;u<r.length;u++){switch(l(u)){case\"continue-outer\":continue e}}e.pushIfUnique(m,c,e.equateValues),i=!0}if(!i)return{value:0}},_=0,g=p;_<g.length;_++){var y=g[_],v=f(y);if(\"object\"==typeof v)return v.value}for(var h=-1,b=0,E=m;b<E.length;b++){var T=E[b];if((h&=q(n,T,!1,l,!1))&&(h&=J(n,T,0,!1))&&(h&=J(n,T,1,!1))&&(h&=$(n,T,0,!1,!1))&&(h&=$(n,T,1,!1,!1)),!h)return h}return h}(n,U);if(K)return K}}}var W;return 0;function X(n,t,i,l){if(o=function(n,t,a,i,o){if(void 0===n&&(n=e.emptyArray),void 0===t&&(t=e.emptyArray),void 0===a&&(a=e.emptyArray),n.length!==t.length&&r===Ut)return 0;for(var s=n.length<=t.length?n.length:t.length,c=-1,l=0;l<s;l++){var u=l<a.length?a[l]:1,d=7&u;if(4!==d){var p=n[l],m=t[l],f=-1;if(8&u?f=r===Ut?R(p,m,!1):bu(p,m):1===d?f=R(p,m,i,void 0,o):2===d?f=R(m,p,i,void 0,o):3===d?(f=R(m,p,!1))||(f=R(p,m,i,void 0,o)):(f=R(p,m,i,void 0,o))&&(f&=R(m,p,i,void 0,o)),!f)return 0;c&=f}}return c}(n,t,i,a,l))return o;if(e.some(i,(function(e){return!!(24&e)})))return s=void 0,void A(p);var u=t&&function(e,n){for(var t=0;t<n.length;t++)if(1==(7&n[t])&&16384&e[t].flags)return!0;return!1}(t,i);if(d=!u,i!==e.emptyArray&&!u){if(d&&(!a||!e.some(i,(function(e){return 0==(7&e)}))))return 0;s=c,A(p)}}}(n,t,a,i):1;if(Wn&&(Wn=h),g=b,_--,T){if(-1===T||0===_){for(m=v;m<f;m++)r.set(u[m],1|E);f=v}}else r.set(o,2|(a?4:0)|E),f=v;return T}function j(e){return!Wn||e!==Qe&&e!==Ze&&e!==zn||Wn(!1),e}function H(e){return!Wn||e!==Qe&&e!==Ze&&e!==zn||Wn(!0),e}function W(e,n){if(!n||0===e.length)return e;for(var t,r=0;r<e.length;r++)n.has(e[r].escapedName)?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t||e}function z(n,t,a,i,o,s,c){var l=e.getDeclarationModifierFlagsFromSymbol(a),u=e.getDeclarationModifierFlagsFromSymbol(i);if(8&l||8&u){var d=a.valueDeclaration!==i.valueDeclaration;if(1024&e.getCheckFlags(a)&&d)return s&&I(e.Diagnostics.Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1,La(a),Aa(n)),0;if(d)return s&&(8&l&&8&u?I(e.Diagnostics.Types_have_separate_declarations_of_a_private_property_0,La(i)):I(e.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2,La(i),Aa(8&l?n:t),Aa(8&l?t:n))),0}else if(16&u){if(!function(n,t){return!ad(t,(function(t){return!!(16&e.getDeclarationModifierFlagsFromSymbol(t))&&(r=n,a=id(t),!ad(r,(function(e){var n=id(e);return!!n&&ki(n,a)})));var r,a}))}(a,i))return s&&I(e.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2,La(i),Aa(id(a)||n),Aa(id(i)||t)),0}else if(16&l)return s&&I(e.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2,La(i),Aa(n),Aa(t)),0;var p=function(n,t,r,a,i){var o=B&&!!(48&e.getCheckFlags(t)),s=r(n);if(65536&e.getCheckFlags(t)&&!ir(t).type){var c=ir(t);e.Debug.assertDefined(c.deferralParent),e.Debug.assertDefined(c.deferralConstituents);for(var l=!!(1048576&c.deferralParent.flags),u=l?0:-1,d=0,p=c.deferralConstituents;d<p.length;d++){var m=R(s,p[d],!1,void 0,!l);if(l){if(m)return m}else{if(!m)return R(s,ni(Ci(t),o),a);u&=m}}return l&&!u&&o&&(u=R(s,ve)),l&&!u&&a?R(s,ni(Ci(t),o),a):u}return R(s,ni(Ci(t),o),a,void 0,i)}(a,i,o,s,c);return p?r!==Vt&&16777216&a.flags&&!(16777216&i.flags)?(s&&I(e.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2,La(i),Aa(n),Aa(t)),0):p:(s&&k(e.Diagnostics.Types_of_property_0_are_incompatible,La(i)),0)}function q(n,t,a,o,s){if(r===Ut)return function(e,n,t){if(!(524288&e.flags&&524288&n.flags))return 0;var r=W(zo(e),t),a=W(zo(n),t);if(r.length!==a.length)return 0;for(var i=-1,o=0,s=r;o<s.length;o++){var c=s[o],l=qo(n,c.escapedName);if(!l)return 0;var u=cd(c,l,R);if(!u)return 0;i&=u}return i}(n,t,o);var u,d=r===Gt&&!hp(n)&&!_d(n)&&!Cd(n),p=mp(n,t,d,!1);if(p){if(a){var m=e.arrayFrom(pp(n,t,d,!1)),f=!1;if((!i||i.code!==e.Diagnostics.Class_0_incorrectly_implements_interface_1.code&&i.code!==e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code)&&(f=!0),1===m.length){var _=La(p);I.apply(void 0,__spreadArrays([e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2,_],Da(n,t))),e.length(p.declarations)&&(u=e.createDiagnosticForNode(p.declarations[0],e.Diagnostics._0_is_declared_here,_),e.Debug.assert(!!c),l?l.push(u):l=[u]),f&&c&&v++}else O(n,t,!1)&&(m.length>5?I(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Aa(n),Aa(t),e.map(m.slice(0,4),(function(e){return La(e)})).join(\", \"),m.length-4):I(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Aa(n),Aa(t),e.map(m,(function(e){return La(e)})).join(\", \")),f&&c&&v++)}return 0}if(hp(t))for(var g=0,y=W(Xo(n),o);g<y.length;g++){if(!qo(t,(M=y[g]).escapedName)){var h=Ci(M);if(h!==ve&&h!==he&&h!==be)return a&&I(e.Diagnostics.Property_0_does_not_exist_on_type_1,La(M),Aa(t)),0}}var b=-1;if(Cd(t)){var E=Ad(t);if(E){if(!Cd(n))return 0;var T=Ad(n);if(T&&!R(T,E,a))return a&&I(e.Diagnostics.Rest_signatures_are_incompatible),0;for(var S=oc(t)-1,x=oc(n)-(T?1:0),L=ic(n),C=S;C<x;C++){if(!(F=R(L[C],E,a)))return a&&I(e.Diagnostics.Property_0_is_incompatible_with_rest_element_type,\"\"+C),0;b&=F}}}for(var A=1048576&t.flags?Jo(t):Xo(t),D=Cd(n)&&Cd(t),k=0,N=W(A,o);k<N.length;k++){var M,P=N[k],w=P.escapedName;if(!(4194304&P.flags)&&(!D||Df(w)||\"length\"===w))if((M=ms(n,w))&&M!==P){var F;if(!(F=z(n,t,M,P,Ci,a,s)))return 0;b&=F}}return b}function J(n,t,a,i){if(r===Ut)return function(e,n,t){var r=_s(e,t),a=_s(n,t);if(r.length!==a.length)return 0;for(var i=-1,o=0;o<r.length;o++){var s=ld(r[o],a[o],!1,!1,!1,R);if(!s)return 0;i&=s}return i}(n,t,a);if(t===qe||n===qe)return-1;var o=n.symbol&&_g(n.symbol.valueDeclaration),s=t.symbol&&_g(t.symbol.valueDeclaration),c=_s(n,o&&1===a?0:a),l=_s(t,s&&1===a?0:a);if(1===a&&c.length&&l.length){if(e.isAbstractConstructorType(n)&&!e.isAbstractConstructorType(t))return i&&I(e.Diagnostics.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type),0;if(!function(n,t,r){if(!n.declaration||!t.declaration)return!0;var a=e.getSelectedModifierFlags(n.declaration,24),i=e.getSelectedModifierFlags(t.declaration,24);if(8===i)return!0;if(16===i&&8!==a)return!0;if(16!==i&&!a)return!0;r&&I(e.Diagnostics.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type,Ma(a),Ma(i));return!1}(c[0],l[0],i))return 0}var u=-1,d=D(),p=1===a?Y:X;if(64&e.getObjectFlags(n)&&64&e.getObjectFlags(t)&&n.symbol===t.symbol)for(var m=0;m<l.length;m++){if(!(E=Q(c[m],l[m],!0,i,p(c[m],l[m]))))return 0;u&=E}else if(1===c.length&&1===l.length){var f=r===Vt||!!P.noStrictGenericChecks;u=Q(c[0],l[0],f,i,p(c[0],l[0]))}else e:for(var _=0,g=l;_<g.length;_++){for(var y=g[_],v=i,h=0,b=c;h<b.length;h++){var E,T=b[h];if(E=Q(T,y,!0,v,p(T,y))){u&=E,A(d);continue e}v=!1}return v&&I(e.Diagnostics.Type_0_provides_no_match_for_the_signature_1,Aa(n),Ca(y,void 0,void 0,a)),0}return u}function X(n,t){return 0===n.parameters.length&&0===t.parameters.length?function(n,t){return k(e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,Aa(n),Aa(t))}:function(n,t){return k(e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible,Aa(n),Aa(t))}}function Y(n,t){return 0===n.parameters.length&&0===t.parameters.length?function(n,t){return k(e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,Aa(n),Aa(t))}:function(n,t){return k(e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible,Aa(n),Aa(t))}}function Q(e,n,t,r,a){return Gu(t?Ks(e):e,t?Ks(n):n,0,!1,r,I,a,R)}function Z(n,t,r){var a=R(n.type,t.type,r);return!a&&r&&I(e.Diagnostics.Index_signatures_are_incompatible),a}function $(n,t,a,i,o){if(r===Ut)return function(e,n,t){var r=vs(n,t),a=vs(e,t);if(!a&&!r)return-1;if(a&&r&&a.isReadonly===r.isReadonly)return R(a.type,r.type);return 0}(n,t,a);var s=vs(t,a);if(!s||1&s.type.flags&&!i)return-1;var c=vs(n,a)||1===a&&vs(n,0);if(c)return Z(c,s,o);if(Ho(n))return 0===a?R(Fo(n),s.type,o):0;if(jd(n)){var l=-1;if(0===a){var u=vs(n,1);u&&(l=Z(u,s,o))}return l&&(l&=function(n,t,r,a){for(var i=-1,o=0,s=zo(n);o<s.length;o++){var c=s[o];if(!zu(n,c)&&(!(c.nameType&&8192&c.nameType.flags)&&(0===r||Df(c.escapedName)))){var l=R(Ci(c),t,a);if(!l)return a&&I(e.Diagnostics.Property_0_is_incompatible_with_index_signature,La(c)),0;i&=l}}return i}(n,s.type,a,o)),l}return o&&I(e.Diagnostics.Index_signature_is_missing_in_type_0,Aa(n)),0}}function Ju(e,n,t,r){for(var a=e.types.map((function(e){})),i=0,o=n;i<o.length;i++)for(var s=o[i],c=s[0],l=s[1],u=0,d=0,p=e.types;d<p.length;d++){var m=Ha(p[d],l);m&&t(c(),m)?a[u]=void 0===a[u]||a[u]:a[u]=!1,u++}var f=a.indexOf(!0);return-1===f||-1!==a.indexOf(!0,f+1)?r:e.types[f]}function Xu(n){if(524288&n.flags){var t=Wo(n);return 0===t.callSignatures.length&&0===t.constructSignatures.length&&!t.stringIndexInfo&&!t.numberIndexInfo&&t.properties.length>0&&e.every(t.properties,(function(e){return!!(16777216&e.flags)}))}return!!(2097152&n.flags)&&e.every(n.types,Xu)}function Yu(n,t,r){var a=tc(n,e.map(n.typeParameters,(function(e){return e===t?r:e})));return a.objectFlags|=8192,a}function Qu(e){var n=ir(e);return Zu(n.typeParameters,n,(function(t,r,a){var i=cc(e,Wl(n.typeParameters,ql(r,a)));return i.aliasTypeArgumentsContainsMarker=!0,i}))}function Zu(n,t,r){void 0===n&&(n=e.emptyArray);var a=t.variances;if(!a){t.variances=e.emptyArray,a=[];for(var i=function(e){var n=!1,i=!1,o=Wn;Wn=function(e){return e?i=!0:n=!0};var s=r(t,e,Qe),c=r(t,e,Ze),l=(xu(c,s)?1:0)|(xu(s,c)?2:0);3===l&&xu(r(t,e,zn),s)&&(l=4),Wn=o,(n||i)&&(n&&(l|=8),i&&(l|=16)),a.push(l)},o=0,s=n;o<s.length;o++){i(s[o])}t.variances=a}return a}function $u(n){return n===cn||n===ln||8&n.objectFlags?e.emptyArray:Zu(n.typeParameters,n,Yu)}function ed(e){return 262144&e.flags&&!Qo(e)}function nd(n){return function(n){return!!(4&e.getObjectFlags(n))&&!n.node}(n)&&e.some(ic(n),(function(e){return ed(e)||nd(e)}))}function td(e,n,t){void 0===t&&(t=0);for(var r=\"\"+e.target.id,a=0,i=ic(e);a<i.length;a++){var o=i[a];if(ed(o)){var s=n.indexOf(o);s<0&&(s=n.length,n.push(o)),r+=\"=\"+s}else t<4&&nd(o)?r+=\"<\"+td(o,n,t+1)+\">\":r+=\"-\"+o.id}return r}function rd(e,n,t,r){if(r===Ut&&e.id>n.id){var a=e;e=n,n=a}var i=t?\"&\":\"\";if(nd(e)&&nd(n)){var o=[];return td(e,o)+\",\"+td(n,o)+i}return e.id+\",\"+n.id+i}function ad(n,t){if(!(6&e.getCheckFlags(n)))return t(n);for(var r=0,a=n.containingType.types;r<a.length;r++){var i=ms(a[r],n.escapedName),o=i&&ad(i,t);if(o)return o}}function id(e){return e.parent&&32&e.parent.flags?Yi(Qr(e)):void 0}function od(e,n,t){if(t>=5&&524288&e.flags){var r=e.symbol;if(r)for(var a=0,i=0;i<t;i++){if(524288&(s=n[i]).flags&&s.symbol===r&&++a>=5)return!0}}if(t>=5&&8388608&e.flags){var o=sd(e);for(a=0,i=0;i<t;i++){var s;if(sd(s=n[i])===o&&++a>=5)return!0}}return!1}function sd(e){for(var n=e;8388608&n.flags;)n=n.objectType;return n}function cd(n,t,r){if(n===t)return-1;var a=24&e.getDeclarationModifierFlagsFromSymbol(n);if(a!==(24&e.getDeclarationModifierFlagsFromSymbol(t)))return 0;if(a){if(Ch(n)!==Ch(t))return 0}else if((16777216&n.flags)!=(16777216&t.flags))return 0;return ny(n)!==ny(t)?0:r(Ci(n),Ci(t))}function ld(n,t,r,a,i,o){if(n===t)return-1;if(!function(e,n,t){var r=Ng(e),a=Ng(n),i=Ig(e),o=Ig(n),s=Mg(e),c=Mg(n);return r===a&&i===o&&s===c||!!(t&&i<=o)}(n,t,r))return 0;if(e.length(n.typeParameters)!==e.length(t.typeParameters))return 0;if(t.typeParameters){for(var s=Jl(n.typeParameters,t.typeParameters),c=0;c<t.typeParameters.length;c++){if(!((_=n.typeParameters[c])===(m=t.typeParameters[c])||o(uu(Zs(_),s)||ye,Zs(m)||ye)&&o(uu(ss(_),s)||ye,ss(m)||ye)))return 0}n=nu(n,s,!0)}var l=-1;if(!a){var u=Rs(n);if(u){var d=Rs(t);if(d){if(!(f=o(u,d)))return 0;l&=f}}}var p=Ng(t);for(c=0;c<p;c++){var m,f,_=Ag(n,c);if(!(f=o(m=Ag(t,c),_)))return 0;l&=f}if(!i){var g=Ps(n),y=Ps(t);l&=g||y?function(e,n,t){return e&&n&&zc(e,n)?e.type===n.type?-1:e.type&&n.type?t(e.type,n.type):0:0}(g,y,o):o(ws(n),ws(t))}return l}function ud(n){return function(e){for(var n,t=0,r=e;t<r.length;t++){var a=r[t],i=Ed(a);if(n||(n=i),i===a||i!==n)return!1}return!0}(n)?Wc(n):e.reduceLeft(n,(function(e,n){return Su(e,n)?n:e}))}function dd(n){return!!(4&e.getObjectFlags(n))&&(n.target===cn||n.target===ln)}function pd(n){return!!(4&e.getObjectFlags(n))&&n.target===ln}function md(e){return dd(e)?ic(e)[0]:void 0}function fd(e){return dd(e)||!(98304&e.flags)&&xu(e,yn)}function _d(e){var n=dd(e)?ic(e)[0]:void 0;return n===he||n===we}function gd(e){return Cd(e)||!!ms(e,\"0\")}function yd(e){return fd(e)||gd(e)}function vd(e){return!(240512&e.flags)}function hd(e){return!!(109440&e.flags)}function bd(n){return!!(16&n.flags)||(1048576&n.flags?!!(1024&n.flags)||e.every(n.types,hd):hd(n))}function Ed(n){return 1024&n.flags?zi(n):128&n.flags?Se:256&n.flags?xe:2048&n.flags?Le:512&n.flags?Ne:1048576&n.flags?Wc(e.sameMap(n.types,Ed)):n}function Td(n){return 1024&n.flags&&Bl(n)?zi(n):128&n.flags&&Bl(n)?Se:256&n.flags&&Bl(n)?xe:2048&n.flags&&Bl(n)?Le:512&n.flags&&Bl(n)?Ne:1048576&n.flags?Wc(e.sameMap(n.types,Td)):n}function Sd(n){return 8192&n.flags?Ie:1048576&n.flags?Wc(e.sameMap(n.types,Sd)):n}function xd(e,n){return Ty(e,n)||(e=Sd(Td(e))),e}function Ld(e,n,t,r){e&&hd(e)&&(e=xd(e,n?mh(t,n,r):void 0));return e}function Cd(n){return!!(4&e.getObjectFlags(n)&&8&n.target.objectFlags)}function Ad(e){return e.target.hasRestElement?ic(e)[e.target.typeParameters.length-1]:void 0}function Dd(e){return oc(e)-(e.target.hasRestElement?1:0)}function kd(e){return\"0\"===e.value.base10Value}function Nd(e){for(var n=0,t=0,r=e;t<r.length;t++){n|=Id(r[t])}return n}function Id(e){return 1048576&e.flags?Nd(e.types):128&e.flags?\"\"===e.value?128:0:256&e.flags?0===e.value?256:0:2048&e.flags?kd(e)?2048:0:512&e.flags?e===Ce||e===Ae?512:0:117724&e.flags}function Md(e){return 117632&Id(e)?am(e,(function(e){return!(117632&Id(e))})):e}function Od(e){return 4&e.flags?mt:8&e.flags?ft:64&e.flags?_t:e===Ae||e===Ce||114688&e.flags||128&e.flags&&\"\"===e.value||256&e.flags&&0===e.value||2048&e.flags&&kd(e)?e:Oe}function Rd(e,n){var t=n&~e.flags&98304;return 0===t?e:Wc(32768===t?[e,ve]:65536===t?[e,Ee]:[e,ve,Ee])}function Pd(n){return e.Debug.assert(B),32768&n.flags?n:Wc([n,ve])}function wd(e){return B?function(e){return vn||(vn=Sc(\"NonNullable\",524288,void 0)||de),vn!==de?cc(vn,[e]):Up(e,2097152)}(e):e}function Fd(e){return B?Wc([e,be]):e}function Gd(e){return e!==be}function Bd(e){return B?am(e,Gd):e}function Vd(n,t,r){return r?e.isOutermostOptionalChain(t)?Pd(n):Fd(n):n}function Ud(n,t){return e.isExpressionOfOptionalChainRoot(t)?wd(n):e.isOptionalChain(t)?Bd(n):n}function jd(n){return!(!n.symbol||0==(7040&n.symbol.flags)||cb(n))||!!(2048&e.getObjectFlags(n)&&jd(n.source))}function Kd(n,t){var r=Xt(n.flags,n.escapedName,8&e.getCheckFlags(n));return r.declarations=n.declarations,r.parent=n.parent,r.type=t,r.target=n,n.valueDeclaration&&(r.valueDeclaration=n.valueDeclaration),n.nameType&&(r.nameType=n.nameType),r}function Hd(n){if(!(hp(n)&&32768&e.getObjectFlags(n)))return n;var t=n.regularType;if(t)return t;var r=n,a=function(n,t){for(var r=e.createSymbolTable(),a=0,i=zo(n);a<i.length;a++){var o=i[a],s=Ci(o),c=t(s);r.set(o.escapedName,c===s?o:Kd(o,c))}return r}(n,Hd),i=pa(r.symbol,a,r.callSignatures,r.constructSignatures,r.stringIndexInfo,r.numberIndexInfo);return i.flags=r.flags,i.objectFlags|=-32769&r.objectFlags,n.regularType=i,i}function Wd(e,n,t){return{parent:e,propertyName:n,siblings:t,resolvedProperties:void 0}}function zd(n){if(!n.resolvedProperties){for(var t=e.createMap(),r=0,a=function e(n){if(!n.siblings){for(var t=[],r=0,a=e(n.parent);r<a.length;r++){var i=a[r];if(hp(i)){var o=qo(i,n.propertyName);o&&tm(Ci(o),(function(e){t.push(e)}))}}n.siblings=t}return n.siblings}(n);r<a.length;r++){var i=a[r];if(hp(i)&&!(1024&e.getObjectFlags(i)))for(var o=0,s=Xo(i);o<s.length;o++){var c=s[o];t.set(c.escapedName,c)}}n.resolvedProperties=e.arrayFrom(t.values())}return n.resolvedProperties}function qd(e,n){if(!(4&e.flags))return e;var t=Ci(e),r=Yd(t,n&&Wd(n,e.escapedName,void 0));return r===t?e:Kd(e,r)}function Jd(e){var n=ue.get(e.escapedName);if(n)return n;var t=Kd(e,ve);return t.flags|=16777216,ue.set(e.escapedName,t),t}function Xd(e){return Yd(e,void 0)}function Yd(n,t){if(786432&e.getObjectFlags(n)){if(void 0===t&&n.widened)return n.widened;var r=void 0;if(98304&n.flags)r=me;else if(hp(n))r=function(n,t){for(var r=e.createSymbolTable(),a=0,i=zo(n);a<i.length;a++){var o=i[a];r.set(o.escapedName,qd(o,t))}if(t)for(var s=0,c=zd(t);s<c.length;s++){o=c[s];r.has(o.escapedName)||r.set(o.escapedName,Jd(o))}var l=vs(n,0),u=vs(n,1),d=pa(n.symbol,r,e.emptyArray,e.emptyArray,l&&Xs(Xd(l.type),l.isReadonly),u&&Xs(Xd(u.type),u.isReadonly));return d.objectFlags|=1064960&e.getObjectFlags(n),d}(n,t);else if(1048576&n.flags){var a=t||Wd(void 0,void 0,n.types),i=e.sameMap(n.types,(function(e){return 98304&e.flags?e:Yd(e,a)}));r=Wc(i,e.some(i,Vu)?2:1)}else 2097152&n.flags?r=Zc(e.sameMap(n.types,Xd)):(dd(n)||Cd(n))&&(r=tc(n.target,e.sameMap(ic(n),Xd)));return r&&void 0===t&&(n.widened=r),r||n}return n}function Qd(n,t,r){var a=Aa(Xd(t));if(!e.isInJSFile(n)||e.isCheckJsEnabledForFile(e.getSourceFileOfNode(n),P)){var i;switch(n.kind){case 208:case 158:case 157:i=K?e.Diagnostics.Member_0_implicitly_has_an_1_type:e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 155:var o=n;if(e.isIdentifier(o.name)&&(e.isCallSignatureDeclaration(o.parent)||e.isMethodSignature(o.parent)||e.isFunctionTypeNode(o.parent))&&o.parent.parameters.indexOf(o)>-1&&(ur(o,o.name.escapedText,788968,void 0,o.name.escapedText,!0)||o.name.originalKeywordKind&&e.isTypeNodeKind(o.name.originalKeywordKind))){var s=\"arg\"+o.parent.parameters.indexOf(o);return void qt(K,n,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,s,e.declarationNameToString(o.name))}i=n.dotDotDotToken?K?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:K?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 190:if(i=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!K)return;break;case 298:return void Wt(n,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,a);case 243:case 160:case 159:case 162:case 163:case 200:case 201:if(K&&!n.name)return void Wt(n,1===r?e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,a);i=K?1===r?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 185:return void(K&&Wt(n,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type));default:i=K?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}qt(K,n,i,e.declarationNameToString(e.getNameOfDeclaration(n)),a)}}function Zd(n,r,a){t&&K&&262144&e.getObjectFlags(r)&&(function n(t){var r=!1;if(262144&e.getObjectFlags(t)){if(1048576&t.flags)if(e.some(t.types,Vu))r=!0;else for(var a=0,i=t.types;a<i.length;a++){n(d=i[a])&&(r=!0)}if(dd(t)||Cd(t))for(var o=0,s=ic(t);o<s.length;o++){n(d=s[o])&&(r=!0)}if(hp(t))for(var c=0,l=zo(t);c<l.length;c++){var u=l[c],d=Ci(u);262144&e.getObjectFlags(d)&&(n(d)||Wt(u.valueDeclaration,e.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type,La(u),Aa(Xd(d))),r=!0)}}return r}(r)||Qd(n,r,a))}function $d(e,n,t){var r=Ng(e),a=Ng(n),i=Og(e),o=Og(n),s=o?a-1:a,c=i?s:Math.min(r,s),l=Rs(e);if(l){var u=Rs(n);u&&t(l,u)}for(var d=0;d<c;d++)t(Ag(e,d),Ag(n,d));o&&t(kg(e,c),o)}function ep(e,n,t){var r=Ps(e),a=Ps(n);r&&a&&zc(r,a)&&r.type&&a.type?t(r.type,a.type):t(ws(e),ws(n))}function np(e,n,t,r){return tp(e.map(ip),n,t,r||Eu)}function tp(e,n,t,r){var a={inferences:e,signature:n,flags:t,compareTypes:r,mapper:function(e){return rp(a,e,!0)},nonFixingMapper:function(e){return rp(a,e,!1)}};return a}function rp(e,n,t){for(var r=e.inferences,a=0;a<r.length;a++){var i=r[a];if(n===i.typeParameter)return t&&!i.isFixed&&(ap(r),i.isFixed=!0),Sp(e,a)}return n}function ap(e){for(var n=0,t=e;n<t.length;n++){var r=t[n];r.isFixed||(r.inferredType=void 0)}}function ip(e){return{typeParameter:e,candidates:void 0,contraCandidates:void 0,inferredType:void 0,priority:void 0,topLevel:!0,isFixed:!1}}function op(e){return{typeParameter:e.typeParameter,candidates:e.candidates&&e.candidates.slice(),contraCandidates:e.contraCandidates&&e.contraCandidates.slice(),inferredType:e.inferredType,priority:e.priority,topLevel:e.topLevel,isFixed:e.isFixed}}function sp(e){return e&&e.mapper}function cp(n){var t=e.getObjectFlags(n);return!!(63176704&n.flags||4&t&&(n.node||e.forEach(ic(n),cp))||16&t&&n.symbol&&14384&n.symbol.flags&&n.symbol.declarations||32&t||3145728&n.flags&&!(1024&n.flags)&&function(n){void 0===n.couldContainTypeVariables&&(n.couldContainTypeVariables=e.some(n.types,cp));return n.couldContainTypeVariables}(n))}function lp(n,t){return!!(n===t||3145728&n.flags&&e.some(n.types,(function(e){return lp(e,t)}))||16777216&n.flags&&(lp(Sl(n),t)||lp(xl(n),t)))}function up(n,t,r){var a=n.id+\",\"+t.id+\",\"+r.id;if(ot.has(a))return ot.get(a);ot.set(a,void 0);var i=function(n,t,r){if(!(vs(n,0)||0!==Xo(n).length&&function n(t){return!(1048576&e.getObjectFlags(t))||hp(t)&&e.some(Xo(t),(function(e){return n(Ci(e))}))}(n)))return;if(dd(n))return Oc(dp(ic(n)[0],t,r),pd(n));if(Cd(n)){var a=e.map(ic(n),(function(e){return dp(e,t,r)})),i=4&Uo(t)?oc(n)-(n.target.hasRestElement?1:0):n.target.minLength;return Fc(a,i,n.target.hasRestElement,n.target.readonly,n.target.associatedNames)}var o=sa(2064,void 0);return o.source=n,o.mappedType=t,o.constraintType=r,o}(n,t,r);return ot.set(a,i),i}function dp(e,n,t){var r=yl(t.type,Po(n)),a=Fo(n),i=ip(r);return gp([i],e,a),_p(i)||ye}function pp(n,t,r,a){var i,o,s,c,l,u,d;return __generator(this,(function(p){switch(p.label){case 0:i=1048576&t.flags?Jo(t):Xo(t),o=0,s=i,p.label=1;case 1:return o<s.length?(c=s[o],!r&&(16777216&c.flags||48&e.getCheckFlags(c))?[3,5]:(l=ms(n,c.escapedName))?[3,3]:[4,c]):[3,6];case 2:return p.sent(),[3,5];case 3:return a&&109440&(u=Ci(c)).flags?1&(d=Ci(l)).flags||Gl(d)===Gl(u)?[3,5]:[4,c]:[3,5];case 4:p.sent(),p.label=5;case 5:return o++,[3,1];case 6:return[2]}}))}function mp(e,n,t,r){var a=pp(e,n,t,r).next();if(!a.done)return a.value}function fp(e,n){return Cd(e)&&Cd(n)&&function(e,n){return n.target.minLength>e.target.minLength||!Ad(n)&&(!!Ad(e)||Dd(n)<Dd(e))}(e,n)||!!mp(e,n,!1,!0)&&!!mp(n,e,!1,!0)}function _p(e){return e.candidates?Wc(e.candidates,2):e.contraCandidates?Zc(e.contraCandidates):void 0}function gp(n,t,r,a,i){var o,s;void 0===a&&(a=0),void 0===i&&(i=!1);var c,l=!1,u=256,d=!0;function p(t,o){if(cp(o)){if(t===_e){var s=c;return c=t,p(o,o),void(c=s)}if(t.aliasSymbol&&t.aliasTypeArguments&&t.aliasSymbol===o.aliasSymbol)g(t.aliasTypeArguments,o.aliasTypeArguments,Qu(t.aliasSymbol));else if(t===o&&3145728&t.flags)for(var y=0,E=t.types;y<E.length;y++){var T=E[y];p(T,T)}else{if(1048576&o.flags){var S=_(1048576&t.flags?t.types:[t],o.types,yp),x=_(S[0],S[1],vp),L=x[0];if(0===(A=x[1]).length)return;if(o=Wc(A),0===L.length)return void m(t,o,1);t=Wc(L)}else if(2097152&o.flags&&e.some(o.types,(function(e){return!!v(e)||Ho(e)&&!!v(iu(e)||Oe)}))){if(!(1048576&t.flags)){var C=_(2097152&t.flags?t.types:[t],o.types,hu),A=(L=C[0],C[1]);if(0===L.length||0===A.length)return;t=Zc(L),o=Zc(A)}}else 41943040&o.flags&&(o=El(o));if(8650752&o.flags){if(1048576&e.getObjectFlags(t)||t===Re||16&a&&(t===fe||t===gn))return;var D=v(o);if(D){if(!D.isFixed){if((void 0===D.priority||a<D.priority)&&(D.candidates=void 0,D.contraCandidates=void 0,D.topLevel=!0,D.priority=a),a===D.priority){var k=c||t;i&&!l?e.contains(D.contraCandidates,k)||(D.contraCandidates=e.append(D.contraCandidates,k),ap(n)):e.contains(D.candidates,k)||(D.candidates=e.append(D.candidates,k),ap(n))}!(16&a)&&262144&o.flags&&D.topLevel&&!lp(r,o)&&(D.topLevel=!1,ap(n))}return void(u=Math.min(u,a))}var N=ml(o,!1);if(N!==o)f(t,N,p);else if(8388608&o.flags){var I=ml(o.indexType,!1);if(63176704&I.flags){var M=fl(ml(o.objectType,!1),I,!1);M&&M!==o&&f(t,M,p)}}}if(!(4&e.getObjectFlags(t)&&4&e.getObjectFlags(o)&&(t.target===o.target||dd(t)&&dd(o)))||t.node&&o.node)if(4194304&t.flags&&4194304&o.flags)i=!i,p(t.type,o.type),i=!i;else if((bd(t)||4&t.flags)&&4194304&o.flags){var O=function(n){var t=e.createSymbolTable();tm(n,(function(n){if(128&n.flags){var r=e.escapeLeadingUnderscores(n.value),a=Xt(4,r);a.type=me,n.symbol&&(a.declarations=n.symbol.declarations,a.valueDeclaration=n.symbol.valueDeclaration),t.set(r,a)}}));var r=4&n.flags?Xs(je,!1):void 0;return pa(void 0,t,e.emptyArray,e.emptyArray,r,void 0)}(t);i=!i,m(O,o.type,32),i=!i}else if(8388608&t.flags&&8388608&o.flags)p(t.objectType,o.objectType),p(t.indexType,o.indexType);else if(16777216&t.flags&&16777216&o.flags)p(t.checkType,o.checkType),p(t.extendsType,o.extendsType),p(Sl(t),Sl(o)),p(xl(t),xl(o));else if(16777216&o.flags&&!i){h(t,[Sl(o),xl(o)],o.flags)}else if(3145728&o.flags)h(t,o.types,o.flags);else if(1048576&t.flags)for(var R=0,P=t.types;R<P.length;R++){p(P[R],o)}else{if(!(64&a&&65273856&t.flags)){var w=ls(t);if(w!==t&&d&&!(2621440&w.flags))return d=!1,p(w,o);t=w}2621440&t.flags&&f(t,o,b)}else g(ic(t),ic(o),$u(t.target))}}}function m(e,n,t){var r=a;a|=t,p(e,n),a=r}function f(n,t,r){var a=n.id+\",\"+t.id,i=s&&s.get(a);if(void 0===i){(s||(s=e.createMap())).set(a,-1);var o=u;u=256,r(n,t),s.set(a,u),u=Math.min(u,o)}else u=Math.min(u,i)}function _(n,t,r){for(var a,i,o=0,s=t;o<s.length;o++)for(var c=s[o],l=0,u=n;l<u.length;l++){var d=u[l];r(d,c)&&(p(d,c),a=e.appendIfUnique(a,d),i=e.appendIfUnique(i,c))}return[a?e.filter(n,(function(n){return!e.contains(a,n)})):n,i?e.filter(t,(function(n){return!e.contains(i,n)})):t]}function g(e,n,t){for(var r=e.length<n.length?e.length:n.length,a=0;a<r;a++)a<t.length&&2==(7&t[a])?y(e[a],n[a]):p(e[a],n[a])}function y(e,n){V||128&a?(i=!i,p(e,n),i=!i):p(e,n)}function v(e){if(8650752&e.flags)for(var t=0,r=n;t<r.length;t++){var a=r[t];if(e===a.typeParameter)return a}}function h(n,t,r){var i=0;if(1048576&r){for(var o=void 0,s=1048576&n.flags?n.types:[n],c=new Array(s.length),l=!1,d=0,f=t;d<f.length;d++){if(v(x=f[d]))o=x,i++;else for(var _=0;_<s.length;_++){var g=u;u=256,p(s[_],x),u===a&&(c[_]=!0),l=l||-1===u,u=Math.min(u,g)}}if(0===i){var y=function(n){for(var t,r=0,a=n;r<a.length;r++){var i=a[r],o=2097152&i.flags&&e.find(i.types,(function(e){return!!v(e)}));if(!o||t&&o!==t)return;t=o}return t}(t);return void(y&&m(n,y,1))}if(1===i&&!l){var h=e.flatMap(s,(function(e,n){return c[n]?void 0:e}));if(h.length)return void p(Wc(h),o)}}else for(var b=0,E=t;b<E.length;b++){v(x=E[b])?i++:p(n,x)}if(2097152&r?1===i:i>0)for(var T=0,S=t;T<S.length;T++){var x;v(x=S[T])&&m(n,x,1)}}function b(n,t){var r=524288&t.flags&&!(16&e.getObjectFlags(t)&&t.symbol&&32&t.symbol.flags)?t.symbol:void 0;if(r){if(e.contains(o,r))return void(u=-1);(o||(o=[])).push(r),E(n,t),o.pop()}else E(n,t)}function E(n,t){if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)&&(n.target===t.target||dd(n)&&dd(t)))g(ic(n),ic(t),$u(n.target));else{if(Ho(n)&&Ho(t)&&(p(wo(n),wo(t)),p(Fo(n),Fo(t))),32&e.getObjectFlags(t))if(function n(t,r,a){if(1048576&a.flags){for(var i=!1,o=0,s=a.types;o<s.length;o++){i=n(t,r,s[o])||i}return i}if(4194304&a.flags){var c=v(a.type);if(c&&!c.isFixed){var l=up(t,r,a);l&&m(l,c.typeParameter,1048576&e.getObjectFlags(t)?4:2)}return!0}if(262144&a.flags){m(al(t),a,8);var u=Yo(a);if(u&&n(t,r,u))return!0;var d=e.map(Xo(t),Ci),f=hs(t,0),_=rl(t),g=_&&_.type;return p(Wc(e.append(e.append(d,f),g)),Fo(r)),!0}return!1}(n,t,wo(t)))return;fp(n,t)||(!function(e,n){if(dd(e)||Cd(e)){if(Cd(n)){for(var t=Cd(e)?Dd(e):0,r=Dd(n),a=Cd(e)?Ad(e):md(e),i=Ad(n),o=r<t||a?r:t,s=0;s<o;s++)p(s<t?ic(e)[s]:a,ic(n)[s]);if(i){var c=o<t?ic(e).slice(o,t):[];a&&c.push(a),c.length&&p(Wc(c),i)}return}if(dd(n))return void x(e,n)}for(var l=zo(n),u=0,d=l;u<d.length;u++){var m=d[u],f=ms(e,m.escapedName);f&&p(Ci(f),Ci(m))}}(n,t),T(n,t,0),T(n,t,1),x(n,t))}}function T(n,t,r){for(var a=_s(n,r),i=_s(t,r),o=a.length,s=i.length,c=o<s?o:s,l=!!(1048576&e.getObjectFlags(n)),u=0;u<c;u++)S(Ws(a[o-c+u]),Ws(i[s-c+u]),l)}function S(e,n,t){if(!t){var r=l,a=n.declaration?n.declaration.kind:0;l=l||160===a||159===a||161===a,$d(e,n,y),l=r}ep(e,n,p)}function x(e,n){var t=hs(n,0);t&&((r=hs(e,0)||bs(e,0))&&p(r,t));var r,a=hs(n,1);a&&((r=hs(e,1)||hs(e,0)||bs(e,1))&&p(r,a))}p(t,r)}function yp(e,n){return hu(e,n)||!!(384&e.flags)&&hu(Ed(e),n)}function vp(e,n){return!!(524288&e.flags&&524288&n.flags&&e.symbol&&e.symbol===n.symbol||e.aliasSymbol&&e.aliasTypeArguments&&e.aliasSymbol===n.aliasSymbol)}function hp(n){return!!(128&e.getObjectFlags(n))}function bp(n){return!!(65664&e.getObjectFlags(n))}function Ep(n){return 56&n.priority?Zc(n.contraCandidates):(t=n.contraCandidates,e.reduceLeft(t,(function(e,n){return Su(n,e)?n:e})));var t}function Tp(n,t){var r,a,i=function(n){if(n.length>1){var t=e.filter(n,bp);if(t.length){var r=Wc(t,2);return e.concatenate(e.filter(n,(function(e){return!bp(e)})),[r])}}return n}(n.candidates),o=(r=n.typeParameter,!!(a=Qo(r))&&oy(16777216&a.flags?$o(a):a,4325372)),s=!o&&n.topLevel&&(n.isFixed||!lp(ws(t),n.typeParameter)),c=o?e.sameMap(i,Gl):s?e.sameMap(i,Td):i;return Xd(56&n.priority?Wc(c,2):function(n){if(!B)return ud(n);var t=e.filter(n,(function(e){return!(98304&e.flags)}));return t.length?Rd(ud(t),98304&Nd(n)):Wc(n,2)}(c))}function Sp(n,t){var r=n.inferences[t];if(!r.inferredType){var a=void 0,i=n.signature;if(i){var o=r.candidates?Tp(r,i):void 0;if(r.contraCandidates){var s=Ep(r);a=!o||131072&o.flags||!Su(o,s)?s:o}else if(o)a=o;else if(1&n.flags)a=Re;else{var c=ss(r.typeParameter);c&&(a=uu(c,Yl(function(n,t){return function(r){return e.findIndex(n.inferences,(function(e){return e.typeParameter===r}))>=t?ye:r}}(n,t),n.nonFixingMapper)))}}else a=_p(r);r.inferredType=a||xp(!!(2&n.flags));var l=Qo(r.typeParameter);if(l){var u=uu(l,n.nonFixingMapper);a&&n.compareTypes(a,go(u,a))||(r.inferredType=a=u)}}return r.inferredType}function xp(e){return e?me:ye}function Lp(e){for(var n=[],t=0;t<e.inferences.length;t++)n.push(Sp(e,t));return n}function Cp(n){switch(n.escapedText){case\"document\":case\"console\":return e.Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;case\"$\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery;case\"describe\":case\"suite\":case\"it\":case\"test\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha;case\"process\":case\"require\":case\"Buffer\":case\"module\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode;case\"Map\":case\"Set\":case\"Promise\":case\"Symbol\":case\"WeakMap\":case\"WeakSet\":case\"Iterator\":case\"AsyncIterator\":return e.Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later;default:return 280===n.parent.kind?e.Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:e.Diagnostics.Cannot_find_name_0}}function Ap(n){var t=or(n);return t.resolvedSymbol||(t.resolvedSymbol=!e.nodeIsMissing(n)&&ur(n,n.escapedText,1160127,Cp(n),n,!e.isWriteOnlyAccess(n),!1,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1)||de),t.resolvedSymbol}function Dp(n){return!!e.findAncestor(n,(function(e){return 171===e.kind||75!==e.kind&&152!==e.kind&&\"quit\"}))}function kp(n,t){switch(t.kind){case 199:case 217:return kp(n,t.expression)}switch(n.kind){case 75:return 75===t.kind&&Ap(n)===Ap(t)||(241===t.kind||190===t.kind)&&na(Ap(n))===Yr(t);case 103:return 103===t.kind;case 101:return 101===t.kind;case 217:case 199:return kp(n.expression,t);case 193:case 194:return e.isAccessExpression(t)&&Np(n)===Np(t)&&kp(n.expression,t.expression)}return!1}function Np(n){return 193===n.kind?n.name.escapedText:e.isStringOrNumericLiteralLike(n.argumentExpression)?e.escapeLeadingUnderscores(n.argumentExpression.text):void 0}function Ip(n,t){for(;e.isAccessExpression(n);)if(kp(n=n.expression,t))return!0;return!1}function Mp(n,t){for(;e.isOptionalChain(n);)if(kp(n=n.expression,t))return!0;return!1}function Op(n,t){var r;return e.isAccessExpression(t)&&Ip(n,t.expression)&&void 0!==(r=Np(t))&&Rp(function n(t){if(75===t.kind)return Ci(Ap(t));if(e.isAccessExpression(t)){var r=n(t.expression);if(r){var a=Np(t);return void 0!==a?Ha(r,a):void 0}}return}(t.expression),r)}function Rp(n,t){if(n&&1048576&n.flags){var r=ds(n,t);if(r&&2&e.getCheckFlags(r))return void 0===r.isDiscriminantProperty&&(r.isDiscriminantProperty=192==(192&r.checkFlags)&&function(e){return!!(1048576&e.flags&&(1040&e.flags||!dl(e)))}(Ci(r))),!!r.isDiscriminantProperty}return!1}function Pp(e,n){for(var t,r=0,a=e;r<a.length;r++){var i=a[r];if(Rp(n,i.escapedName)){if(t){t.push(i);continue}t=[i]}}return t}function wp(e,n){return kp(e,n)||Ip(e,n)}function Fp(e){return(!e.id||e.id<0)&&(e.id=l,l++),e.id}function Gp(e,n){if(e!==n){if(131072&n.flags)return n;var t=am(e,(function(e){return function(e,n){if(!(1048576&e.flags))return xu(e,n);for(var t=0,r=e.types;t<r.length;t++){if(xu(r[t],n))return!0}return!1}(n,e)}));if(512&n.flags&&Bl(n)&&(t=om(t,Fl)),xu(n,t))return t}return e}function Bp(e){var n=Wo(e);return!!(n.callSignatures.length||n.constructSignatures.length||n.members.get(\"bind\")&&Su(e,an))}function Vp(n){var t=n.flags;if(4&t)return B?16317953:16776705;if(128&t){var r=\"\"===n.value;return B?r?12123649:7929345:r?12582401:16776705}if(40&t)return B?16317698:16776450;if(256&t){var a=0===n.value;return B?a?12123394:7929090:a?12582146:16776450}if(64&t)return B?16317188:16775940;if(2048&t){a=kd(n);return B?a?12122884:7928580:a?12581636:16775940}return 16&t?B?16316168:16774920:528&t?B?n===Ce||n===Ae?12121864:7927560:n===Ce||n===Ae?12580616:16774920:524288&t?16&e.getObjectFlags(n)&&Vu(n)?B?16318463:16777215:Bp(n)?B?7880640:16728e3:B?7888800:16736160:49152&t?9830144:65536&t?9363232:12288&t?B?7925520:16772880:67108864&t?B?7888800:16736160:63176704&t?Vp(ts(n)||ye):3145728&t?function(e){for(var n=0,t=0,r=e;t<r.length;t++){n|=Vp(r[t])}return n}(n.types):16777215}function Up(e,n){return am(e,(function(e){return 0!=(Vp(e)&n)}))}function jp(e,n){if(n){var t=Oy(n);return Wc([Up(e,524288),t])}return e}function Kp(e,n){var t=el(n);if(!io(t))return ge;var r=uo(t);return Rm(Ha(e,r),n)||Df(r)&&hs(e,1)||hs(e,0)||ge}function Hp(e,n){return rm(e,gd)&&function(e,n){var t=Ha(e,\"\"+n);return t||(rm(e,Cd)?om(e,(function(e){return Ad(e)||ve})):void 0)}(e,n)||zv(65,e,ve,void 0)||ge}function Wp(e){return Oc(zv(65,e,ve,void 0)||ge)}function zp(e){return 208===e.parent.kind&&e.parent.left===e||231===e.parent.kind&&e.parent.initializer===e}function qp(e){return Kp(Jp(e.parent),e.name)}function Jp(e){var n=e.parent;switch(n.kind){case 230:return Se;case 231:return Wv(n.expression,n.awaitModifier)||ge;case 208:return function(e){return 191===e.parent.kind&&zp(e.parent)||279===e.parent.kind&&zp(e.parent.parent)?jp(Jp(e),e.right):Oy(e.right)}(n);case 202:return ve;case 191:return function(e,n){return Hp(Jp(e),e.elements.indexOf(n))}(n,e);case 212:return function(e){return Wp(Jp(e.parent))}(n);case 279:return qp(n);case 280:return function(e){return jp(qp(e),e.objectAssignmentInitializer)}(n)}return ge}function Xp(e){return e.initializer?function(e){return or(e).resolvedType||Oy(e)}(e.initializer):230===e.parent.parent.kind?Se:231===e.parent.parent.kind&&Wv(e.parent.parent.expression,e.parent.parent.awaitModifier)||ge}function Yp(e){return 241===e.kind?Xp(e):function(e){var n=e.parent,t=Yp(n.parent);return jp(188===n.kind?Kp(t,e.propertyName||e.name):e.dotDotDotToken?Wp(t):Hp(t,n.elements.indexOf(e)),e.initializer)}(e)}function Qp(e){switch(e.kind){case 199:return Qp(e.expression);case 208:switch(e.operatorToken.kind){case 62:return Qp(e.left);case 27:return Qp(e.right)}}return e}function Zp(e){return 275===e.kind?Gl(Oy(e.expression)):Oe}function $p(e){var n=or(e);if(!n.switchTypes){n.switchTypes=[];for(var t=0,r=e.caseBlock.clauses;t<r.length;t++){var a=r[t];n.switchTypes.push(Zp(a))}}return n.switchTypes}function em(n){for(var t=[],r=0,a=n.caseBlock.clauses;r<a.length;r++){var i=a[r];if(275===i.kind){if(e.isStringLiteralLike(i.expression)){t.push(i.expression.text);continue}return e.emptyArray}t.push(void 0)}return t}function nm(e,n){return e===n||1048576&n.flags&&function(e,n){if(1048576&e.flags){for(var t=0,r=e.types;t<r.length;t++){var a=r[t];if(!Vc(n.types,a))return!1}return!0}if(1024&e.flags&&zi(e)===n)return!0;return Vc(n.types,e)}(e,n)}function tm(n,t){return 1048576&n.flags?e.forEach(n.types,t):t(n)}function rm(n,t){return 1048576&n.flags?e.every(n.types,t):t(n)}function am(n,t){if(1048576&n.flags){var r=n.types,a=e.filter(r,t);return a===r?n:qc(a,n.objectFlags)}return t(n)?n:Oe}function im(e){return 1048576&e.flags?e.types.length:1}function om(e,n,t){if(131072&e.flags)return e;if(!(1048576&e.flags))return n(e);for(var r,a=0,i=e.types;a<i.length;a++){var o=n(i[a]);o&&(r?r.push(o):r=[o])}return r&&Wc(r,t?0:1)}function sm(e,n){return am(e,(function(e){return 0!=(e.flags&n)}))}function cm(e,n){return nm(Se,e)&&oy(n,128)||nm(xe,e)&&oy(n,256)||nm(Le,e)&&oy(n,2048)?om(e,(function(e){return 4&e.flags?sm(n,132):8&e.flags?sm(n,264):64&e.flags?sm(n,2112):e})):e}function lm(e){return 0===e.flags}function um(e){return 0===e.flags?e.type:e}function dm(e,n){return n?{flags:0,type:e}:e}function pm(e){return le[e.id]||(le[e.id]=function(e){var n=sa(256);return n.elementType=e,n}(e))}function mm(e,n){var t=Ed(Ry(n));return nm(t,e.elementType)?e:pm(Wc([e.elementType,t]))}function fm(e){return e.finalArrayType||(e.finalArrayType=131072&(n=e.elementType).flags?gn:Oc(1048576&n.flags?Wc(n.types,2):n));var n}function _m(n){return 256&e.getObjectFlags(n)?fm(n):n}function gm(n){return 256&e.getObjectFlags(n)?n.elementType:Oe}function ym(n,t){return function(n){for(var t=!1,r=0,a=n;r<a.length;r++){var i=a[r];if(!(131072&i.flags)){if(!(256&e.getObjectFlags(i)))return!1;t=!0}}return t}(n)?pm(Wc(e.map(n,gm))):Wc(e.sameMap(n,_m),t)}function vm(n){var t=function e(n){var t=n.parent;return 199===t.kind||208===t.kind&&62===t.operatorToken.kind&&t.left===n||208===t.kind&&27===t.operatorToken.kind&&t.right===n?e(t):n}(n),r=t.parent,a=193===r.kind&&(\"length\"===r.name.escapedText||195===r.parent.kind&&e.isPushOrUnshiftIdentifier(r.name)),i=194===r.kind&&r.expression===t&&208===r.parent.kind&&62===r.parent.operatorToken.kind&&r.parent.left===r&&!e.isAssignmentTarget(r.parent)&&sy(Oy(r.argumentExpression),296);return a||i}function hm(n,t){if(8752&n.flags)return Ci(n);if(7&n.flags){if((r=n.valueDeclaration)&&(241===r.kind||155===r.kind||158===r.kind||157===r.kind)&&e.getEffectiveTypeAnnotationNode(r))return Ci(n);t&&n.valueDeclaration&&e.addRelatedInfo(t,e.createDiagnosticForNode(n.valueDeclaration,e.Diagnostics._0_is_declared_here,La(n)))}var r}function bm(n,t){if(!(16777216&n.flags))switch(n.kind){case 75:var r=na(Ap(n));return hm(2097152&r.flags?kr(r):r,t);case 103:return function(n){var t=e.getThisContainer(n,!1);if(e.isFunctionLike(t)){var r=Ns(t);if(r.thisParameter)return hm(r.thisParameter)}if(e.isClassLike(t.parent)){var a=Yr(t.parent);return e.hasModifier(t,32)?Ci(a):Yi(a).thisType}}(n);case 193:var a=bm(n.expression,t),i=a&&ms(a,n.name.escapedText);return i&&hm(i,t);case 199:return bm(n.expression,t)}}function Em(n){var t=or(n),r=t.effectsSignature;if(void 0===r){var a=void 0;225===n.parent.kind?a=bm(n.expression,void 0):101!==n.expression.kind&&(a=e.isOptionalChain(n)?l_(Ud(Py(n.expression),n.expression),n.expression):r_(n.expression));var i=_s(a&&ls(a)||ye,0),o=1!==i.length||i[0].typeParameters?e.some(i,Tm)?fg(n):void 0:i[0];r=t.effectsSignature=o&&Tm(o)?o:Xn}return r===Xn?void 0:r}function Tm(e){return!!(Ps(e)||e.declaration&&131072&(Fs(e.declaration)||ye).flags)}function Sm(e){var n=Cm(e,!1);return Un=e,jn=n,n}function xm(e){return!(4096&e.flags&&e.lock.locked)&&Cm(e,!1)}function Lm(n){var t=e.skipParentheses(n);return 90===t.kind||208===t.kind&&(55===t.operatorToken.kind&&(Lm(t.left)||Lm(t.right))||56===t.operatorToken.kind&&Lm(t.left)&&Lm(t.right))}function Cm(n,t){for(;;){if(n===Un)return jn;var r=n.flags;if(2048&r){if(!t){var a=Fp(n),i=Nt[a];return void 0!==i?i:Nt[a]=Cm(n,!0)}t=!1}if(4464&r)n=n.antecedent;else if(512&r){var o=Em(n.node);if(o){var s=Ps(o);if(s&&3===s.kind){var c=n.node.arguments[s.parameterIndex];if(c&&Lm(c))return!1}if(131072&ws(o).flags)return!1}n=n.antecedent}else{if(4&r)return e.some(n.antecedents,xm);if(8&r)n=n.antecedents[0];else{if(!(128&r)){if(8192&r){Un=void 0,n.locked=!0;var l=Cm(n.antecedent,!1);return n.locked=!1,l}return!(1&r)}if(n.clauseStart===n.clauseEnd&&zg(n.switchStatement))return!1;n=n.antecedent}}}}function Am(n,t,r,a,i){var o;void 0===r&&(r=t);var s=!1,c=0;if(dt)return ge;if(!n.flowNode||!i&&!(133970943&t.flags))return t;pt++;var l=ut,u=um(m(n.flowNode));ut=l;var d=256&e.getObjectFlags(u)&&vm(n)?gn:_m(u);return d===Fe||n.parent&&217===n.parent.kind&&131072&Up(d,2097152).flags?t:d;function p(){return s?o:(s=!0,o=function e(n,t,r,a){switch(n.kind){case 75:var i=Ap(n);return i!==de?(a?x(a):\"-1\")+\"|\"+Bc(t)+\"|\"+Bc(r)+\"|\"+(Mm(n)?\"@\":\"\")+L(i):void 0;case 103:return\"0\";case 217:case 199:return e(n.expression,t,r,a);case 193:case 194:var o=Np(n);if(void 0!==o){var s=e(n.expression,t,r,a);return s&&s+\".\"+o}}}(n,t,r,a))}function m(i){if(2e3===c)return dt=!0,o=n,s=e.findAncestor(o,e.isFunctionOrModuleBlock),u=e.getSourceFileOfNode(o),d=e.getSpanOfTokenAtPosition(u,s.statements.pos),Rt.add(e.createFileDiagnostic(u,d.start,d.length,e.Diagnostics.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis)),ge;var o,s,u,d;for(c++;;){var p=i.flags;if(2048&p)for(var f=l;f<ut;f++)if(Dt[f]===i)return c--,kt[f];var v=void 0;if(8192&p)i.locked=!0,v=m(i.antecedent),i.locked=!1;else{if(4096&p){i=i.antecedent;continue}if(16&p){if(!(v=_(i))){i=i.antecedent;continue}}else if(512&p){if(!(v=g(i))){i=i.antecedent;continue}}else if(96&p)v=b(i);else if(128&p)v=E(i);else if(12&p){if(1===i.antecedents.length){i=i.antecedents[0];continue}v=4&p?T(i):S(i)}else if(256&p){if(!(v=y(i))){i=i.antecedent;continue}}else if(2&p){var h=i.node;if(h&&h!==a&&193!==n.kind&&194!==n.kind&&103!==n.kind){i=h.flowNode;continue}v=r}else v=Rv(t)}return 2048&p&&(Dt[ut]=i,kt[ut]=v,ut++),c--,v}}function f(e){var t=e.node;if(16384&e.flags){var r=xt[x(t)];if(r)return r}var a=pt,i=Rm(241===t.kind||190===t.kind?Yp(t):Jp(t),n);return pt!==a&&lt===ct&&(e.flags|=16384,xt[x(t)]=i),i}function _(r){var a=r.node;if(kp(n,a)){if(!Sm(r))return Fe;if(2===e.getAssignmentTargetKind(a)){var i=m(r.antecedent);return dm(Ed(um(i)),lm(i))}if(t===fe||t===gn){if(function(e){return 241===e.kind&&e.initializer&&ei(e.initializer)||190!==e.kind&&208===e.parent.kind&&ei(e.parent.right)}(a))return pm(Oe);var o=Ed(f(r));return xu(o,t)?o:_n}return 1048576&t.flags?Gp(t,f(r)):t}if(Ip(n,a)){if(!Sm(r))return Fe;if(e.isVariableDeclaration(a)&&(e.isInJSFile(a)||e.isVarConst(a))){var s=e.getDeclaredExpandoInitializer(a);if(s&&(200===s.kind||201===s.kind))return m(r.antecedent)}return t}if(e.isVariableDeclaration(a)&&230===a.parent.parent.kind&&kp(n,a.parent.parent.expression))return i_(um(m(r.antecedent)))}function g(n){var t=Em(n.node);if(t){var r=Ps(t);if(r&&(2===r.kind||3===r.kind)){var a=m(n.antecedent),i=um(a),o=r.type?G(i,r,n.node,!0):3===r.kind&&r.parameterIndex>=0&&r.parameterIndex<n.node.arguments.length?function n(t,r){var a=e.skipParentheses(r);if(90===a.kind)return Fe;if(208===a.kind){if(55===a.operatorToken.kind)return n(n(t,a.left),a.right);if(56===a.operatorToken.kind)return Wc([n(t,a.left),n(t,a.right)])}return V(t,a,!0)}(i,n.node.arguments[r.parameterIndex]):i;return o===i?a:dm(o,lm(a))}if(131072&ws(t).flags)return Fe}}function y(r){if(t===fe||t===gn){var a=r.node,i=195===a.kind?a.expression.expression:a.left.expression;if(kp(n,Qp(i))){var o=m(r.antecedent),s=um(o);if(256&e.getObjectFlags(s)){var c=s;if(195===a.kind)for(var l=0,u=a.arguments;l<u.length;l++){c=mm(c,u[l])}else sy(Ry(a.left.argumentExpression),296)&&(c=mm(c,a.right));return c===s?o:dm(c,lm(o))}return o}}}function b(e){var n=m(e.antecedent),t=um(n);if(131072&t.flags)return n;var r=0!=(32&e.flags),a=_m(t),i=V(a,e.node,r);if(i===a)return n;var o=lm(n);return dm(o&&131072&i.flags?Re:i,o)}function E(r){var a=r.switchStatement.expression,i=m(r.antecedent),o=um(i);if(kp(n,a))o=P(o,r.switchStatement,r.clauseStart,r.clauseEnd);else if(203===a.kind&&kp(n,a.expression))o=function(n,t,r,a){var i=em(t);if(!i.length)return n;var o,s,c=e.findIndex(i,(function(e){return void 0===e})),l=r===a||c>=r&&c<a;if(c>-1){var u=i.filter((function(e){return void 0!==e})),d=c<r?r-1:r,p=c<a?a-1:a;o=u.slice(d,p),s=Wg(d,p,u,l)}else o=i.slice(r,a),s=Wg(r,a,i,l);if(l)return am(n,(function(e){return(Vp(e)&s)===s}));var m=Up(Wc(o.map((function(e){return function(e,n){switch(n){case\"function\":return 1&e.flags?e:an;case\"object\":return 2&e.flags?Wc([Ge,Ee]):e;default:return wt.get(n)||e}}(n,e)}))),s);1048576&m.flags&&(m=Gp(m,rs(n)));return Up(om(n,(f=m,function(e){if(Su(f,e))return f;if(63176704&e.flags){var n=ts(e)||me;if(Su(f,n))return Zc([e,f])}return e})),s);var f}(o,r.switchStatement,r.clauseStart,r.clauseEnd);else if(B&&(Mp(a,n)?o=R(o,r.switchStatement,r.clauseStart,r.clauseEnd,(function(e){return!(163840&e.flags)})):203===a.kind&&Mp(a.expression,n)&&(o=R(o,r.switchStatement,r.clauseStart,r.clauseEnd,(function(e){return!(131072&e.flags||128&e.flags&&\"undefined\"===e.value)})))),C(a,o))o=A(o,a,(function(e){return P(e,r.switchStatement,r.clauseStart,r.clauseEnd)}));else if(Op(n,a))o=t;else if(r.clauseStart===r.clauseEnd&&zg(r.switchStatement))return Fe;return dm(o,lm(i))}function T(n){for(var a=[],i=!1,o=!1,s=0,c=n.antecedents;s<c.length;s++){var l=c[s];if(!(4096&l.flags&&l.lock.locked)){var u=m(l),d=um(u);if(d===t&&t===r)return d;e.pushIfUnique(a,d),nm(d,t)||(i=!0),lm(u)&&(o=!0)}}return dm(ym(a,i?2:1),o)}function S(n){var r=Fp(n),a=St[r]||(St[r]=e.createMap()),i=p();if(!i)return t;var o=a.get(i);if(o)return o;for(var s=ct;s<lt;s++)if(Lt[s]===n&&Ct[s]===i&&At[s].length)return dm(ym(At[s],1),!0);for(var c,l=[],u=!1,d=0,f=n.antecedents;d<f.length;d++){var _=f[d],g=void 0;if(c){Lt[lt]=n,Ct[lt]=i,At[lt]=l,lt++,g=m(_),lt--;var y=a.get(i);if(y)return y}else g=c=m(_);var v=um(g);if(e.pushIfUnique(l,v),nm(v,t)||(u=!0),v===t)break}var h=ym(l,u?2:1);return lm(c)?dm(h,!0):(a.set(i,h),h)}function C(t,r){if(!(1048576&r.flags&&e.isAccessExpression(t)))return!1;var a=Np(t);return void 0!==a&&(kp(n,t.expression)&&Rp(r,a))}function A(e,n,t){var r=Np(n);if(void 0===r)return e;var a=Ha(e,r),i=a&&t(a);return a===i?e:am(e,(function(e){return Cu(function(e,n){return Ha(e,n)||Df(n)&&hs(e,1)||hs(e,0)||ye}(e,r),i)}))}function D(e,r,a){return kp(n,r)?Up(e,a?4194304:8388608):(B&&a&&Mp(r,n)&&(e=Up(e,2097152)),C(r,t)?A(e,r,(function(e){return Up(e,a?4194304:8388608)})):Op(n,r)?t:e)}function k(n,t,r){if(1572864&n.flags||pl(n)){var a=e.escapeLeadingUnderscores(t.text);return am(n,(function(e){return function(e,n,t){if(vs(e,0))return!0;var r=ms(e,n);return r?!!(16777216&r.flags)||t:!t}(e,a,r)}))}return n}function N(r,a,i){switch(a.operatorToken.kind){case 62:return D(V(r,a.right,i),a.left,i);case 34:case 35:case 36:case 37:var o=a.operatorToken.kind,s=Qp(a.left),c=Qp(a.right);if(203===s.kind&&e.isStringLiteralLike(c))return O(r,s,o,c,i);if(203===c.kind&&e.isStringLiteralLike(s))return O(r,c,o,s,i);if(kp(n,s))return M(r,o,c,i);if(kp(n,c))return M(r,o,s,i);if(B&&(Mp(s,n)?r=I(r,o,c,i):Mp(c,n)&&(r=I(r,o,s,i))),C(s,t))return A(r,s,(function(e){return M(e,o,c,i)}));if(C(c,t))return A(r,c,(function(e){return M(e,o,s,i)}));if(Op(n,s)||Op(n,c))return t;break;case 97:return function(r,a,i){var o=Qp(a.left);if(!kp(n,o))return i&&B&&Mp(o,n)?Up(r,2097152):Ip(n,o)&&!function(n){return e.isAccessExpression(n)&&103===n.expression.kind&&!!(8&n.expression.flags)}(n)?t:r;var s,c=Oy(a.right);if(!Lu(c,an))return r;var l=ms(c,\"prototype\");if(l){var u=Ci(l);Wa(u)||(s=u)}if(Wa(r)&&(s===rn||s===an))return r;if(!s){var d=_s(c,1);s=d.length?Wc(e.map(d,(function(e){return ws(Ks(e))}))):je}return w(r,s,i,Lu)}(r,a,i);case 96:var l=Qp(a.right);if(e.isStringLiteralLike(a.left)&&kp(n,l))return k(r,a.left,i);break;case 27:return V(r,a.right,i)}return r}function I(e,n,t,r){var a=34===n||35===n;return(34===n||36===n?r:!r)===!(Vp(Oy(t))&(a?262144:65536))?Up(e,2097152):e}function M(e,n,t,r){if(1&e.flags)return e;35!==n&&37!==n||(r=!r);var a=Oy(t);if(2&e.flags&&r&&(36===n||37===n))return 67239932&a.flags?a:524288&a.flags?Ge:e;if(98304&a.flags)return B?Up(e,34===n||35===n?r?262144:2097152:65536&a.flags?r?131072:1048576:r?65536:524288):e;if(67637251&e.flags)return e;if(r){var i=am(e,34===n?function(e){return Au(e,a)||(n=a,0!=(524&e.flags)&&0!=(28&n.flags));var n}:function(e){return Au(e,a)});return 131072&i.flags?e:cm(i,a)}if(hd(a)){var o=Gl(a);return am(e,(function(e){return Gl(e)!==o}))}return e}function O(e,r,a,i,o){35!==a&&37!==a||(o=!o);var s=Qp(r.expression);if(!kp(n,s))return B&&Mp(s,n)&&o===(\"undefined\"!==i.text)?Up(e,2097152):Ip(n,s)?t:e;if(1&e.flags&&\"function\"===i.text)return e;var c=o?v.get(i.text)||128:h.get(i.text)||32768;return Up(o?om(e,(function(e){if(2&e.flags&&\"object\"===i.text)return Wc([Ge,Ee]);var n=\"function\"===i.text?an:wt.get(i.text);if(n){if(Su(e,n))return e;if(Su(n,e))return n;if(63176704&e.flags){var t=ts(e)||me;if(Su(n,t))return Zc([e,n])}}return e})):e,c)}function R(n,t,r,a,i){return r!==a&&e.every($p(t).slice(r,a),i)?Up(n,2097152):n}function P(n,t,r,a){var i=$p(t);if(!i.length)return n;var o=i.slice(r,a),s=r===a||e.contains(o,Oe);if(2&n.flags&&!s){for(var c=void 0,l=0;l<o.length;l+=1){var u=o[l];if(67239932&u.flags)void 0!==c&&c.push(u);else{if(!(524288&u.flags))return n;void 0===c&&(c=o.slice(0,l)),c.push(Ge)}}return Wc(void 0===c?o:c)}var d=Wc(o),p=131072&d.flags?Oe:cm(am(n,(function(e){return Au(d,e)})),d);if(!s)return p;var m=am(n,(function(n){return!(hd(n)&&e.contains(i,Gl(n)))}));return 131072&p.flags?m:Wc([p,m])}function w(e,n,t,r){if(!t)return am(e,(function(e){return!r(e,n)}));if(1048576&e.flags){var a=am(e,(function(e){return r(e,n)}));if(!(131072&a.flags))return a}return Su(n,e)?n:xu(e,n)?e:xu(n,e)?n:Zc([e,n])}function F(t,r,a){if(function(e,n){if(e.arguments)for(var t=0,r=e.arguments;t<r.length;t++){if(wp(n,r[t]))return!0}return!(193!==e.expression.kind||!wp(n,e.expression.expression))}(r,n)){var i=a||!e.isCallChain(r)?Em(r):void 0,o=i&&Ps(i);if(o&&(0===o.kind||1===o.kind))return G(t,o,r,a)}return t}function G(r,a,i,o){if(a.type&&(!Wa(r)||a.type!==rn&&a.type!==an)){var s=function(n,t){if(1===n.kind||3===n.kind)return t.arguments[n.parameterIndex];var r=e.skipParentheses(t.expression);return e.isAccessExpression(r)?e.skipParentheses(r.expression):void 0}(a,i);if(s){if(kp(n,s))return w(r,a.type,o,Su);if(B&&o&&Mp(s,n)&&!(65536&Vp(a.type)))return Up(r,2097152);if(Ip(n,s))return t}}return r}function V(r,a,i){if(e.isExpressionOfOptionalChainRoot(a)||e.isBinaryExpression(a.parent)&&60===a.parent.operatorToken.kind&&a.parent.left===a)return function(e,r,a){if(kp(n,r))return Up(e,a?2097152:262144);if(C(r,t))return A(e,r,(function(e){return Up(e,a?2097152:262144)}));if(Op(n,r))return t;return e}(r,a,i);switch(a.kind){case 75:case 103:case 101:case 193:case 194:return D(r,a,i);case 195:return F(r,a,i);case 199:return V(r,a.expression,i);case 208:return N(r,a,i);case 206:if(53===a.operator)return V(r,a.operand,!i)}return r}}function Dm(n){return e.findAncestor(n.parent,(function(n){return e.isFunctionLike(n)&&!e.getImmediatelyInvokedFunctionExpression(n)||249===n.kind||288===n.kind||158===n.kind}))}function km(n){var t,r=e.getRootDeclaration(n.valueDeclaration).parent,a=or(r);return 8388608&a.flags||(a.flags|=8388608,t=r,e.findAncestor(t.parent,(function(n){return e.isFunctionLike(n)&&!!(8388608&or(n).flags)}))||Nm(r)),n.isAssigned||!1}function Nm(n){if(75===n.kind){if(e.isAssignmentTarget(n)){var t=Ap(n);t.valueDeclaration&&155===e.getRootDeclaration(t.valueDeclaration).kind&&(t.isAssigned=!0)}}else e.forEachChild(n,Nm)}function Im(e){return 3&e.flags&&0!=(2&$f(e))&&Ci(e)!==gn}function Mm(e){var n=e.parent;return 193===n.kind||195===n.kind&&n.expression===e||194===n.kind&&n.expression===e||190===n.kind&&n.name===e&&!!n.initializer}function Om(e){return 58982400&e.flags&&oy(ts(e)||ye,98304)}function Rm(e,n){return e&&Mm(n)&&tm(e,Om)?om(Xd(e),rs):e}function Pm(n,t){Ar(n,111551)&&!Dp(t)&&(P.preserveConstEnums&&function(n){return!!e.findAncestor(n,(function(n){return n.parent&&e.isExportAssignment(n.parent)&&n.parent.expression===n&&e.isEntityNameExpression(n)}))}(t)||!hb(kr(n)))&&Ir(n)}function wm(n){var t=Ap(n);if(t===de)return ge;if(t===$){var r=e.getContainingFunction(n);return w<2&&(201===r.kind?Wt(n,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasModifier(r,256)&&Wt(n,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),or(r).flags|=8192,Ci(t)}n.parent&&e.isPropertyAccessExpression(n.parent)&&n.parent.expression===n||Pm(t,n);var a=na(t),i=a.valueDeclaration;if(32&a.flags)if(244===i.kind&&e.nodeIsDecorated(i))for(r=e.getContainingClass(n);void 0!==r;){if(r===i&&r.name!==n){or(i).flags|=16777216,or(n).flags|=33554432;break}r=e.getContainingClass(r)}else if(213===i.kind)for(r=e.getThisContainer(n,!1);288!==r.kind;){if(r.parent===i){158===r.kind&&e.hasModifier(r,32)&&(or(i).flags|=16777216,or(n).flags|=33554432);break}r=e.getThisContainer(r,!1)}!function(n,t){if(w>=2||0==(34&t.flags)||e.isSourceFile(t.valueDeclaration)||278===t.valueDeclaration.parent.kind)return;var r=e.getEnclosingBlockScopeContainer(t.valueDeclaration),a=function(n,t){return!!e.findAncestor(n,(function(n){return n===t?\"quit\":e.isFunctionLike(n)}))}(n.parent,r),i=r,o=!1;for(;i&&!e.nodeStartsNewLexicalEnvironment(i);){if(e.isIterationStatement(i,!1)){o=!0;break}i=i.parent}if(o){if(a){var s=!0;if(e.isForStatement(r)&&e.getAncestor(t.valueDeclaration,242).parent===r){var c=function(n,t){return e.findAncestor(n,(function(e){return e===t?\"quit\":e===t.initializer||e===t.condition||e===t.incrementor||e===t.statement}))}(n.parent,r);if(c){var l=or(c);l.flags|=131072;var u=l.capturedBlockScopeBindings||(l.capturedBlockScopeBindings=[]);e.pushIfUnique(u,t),c===r.initializer&&(s=!1)}}s&&(or(i).flags|=65536)}229===r.kind&&e.getAncestor(t.valueDeclaration,242).parent===r&&function(n,t){var r=n;for(;199===r.parent.kind;)r=r.parent;var a=!1;if(e.isAssignmentTarget(r))a=!0;else if(206===r.parent.kind||207===r.parent.kind){var i=r.parent;a=45===i.operator||46===i.operator}if(!a)return!1;return!!e.findAncestor(r,(function(e){return e===t?\"quit\":e===t.statement}))}(n,r)&&(or(t.valueDeclaration).flags|=4194304),or(t.valueDeclaration).flags|=524288}a&&(or(t.valueDeclaration).flags|=262144)}(n,t);var o=Rm(Ci(a),n),s=e.getAssignmentTargetKind(n);if(s){if(!(3&a.flags||e.isInJSFile(n)&&512&a.flags))return Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable,La(t)),ge;if(ny(a))return 3&a.flags?Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,La(t)):Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,La(t)),ge}var c=2097152&a.flags;if(3&a.flags){if(1===s)return o}else{if(!c)return o;i=e.find(t.declarations,k)}if(!i)return o;for(var l=155===e.getRootDeclaration(i).kind,u=Dm(i),d=Dm(n),p=d!==u,m=n.parent&&n.parent.parent&&e.isSpreadAssignment(n.parent)&&zp(n.parent.parent),f=134217728&t.flags;d!==u&&(200===d.kind||201===d.kind||e.isObjectLiteralOrClassExpressionMethod(d))&&(Im(a)||l&&!km(a));)d=Dm(d);var _=l||c||p||m||f||e.isBindingElement(i)||o!==fe&&o!==gn&&(!B||0!=(16387&o.flags)||Dp(n)||261===n.parent.kind)||217===n.parent.kind||241===i.kind&&i.exclamationToken||8388608&i.flags,g=Am(n,o,_?l?function(e,n){return B&&155===n.kind&&n.initializer&&32768&Id(e)&&!(32768&Id(Py(n.initializer)))?Up(e,524288):e}(o,i):o:o===fe||o===gn?ve:Pd(o),d,!_);if(vm(n)||o!==fe&&o!==gn){if(!_&&!(32768&Id(o))&&32768&Id(g))return Wt(n,e.Diagnostics.Variable_0_is_used_before_being_assigned,La(t)),o}else if(g===fe||g===gn)return K&&(Wt(e.getNameOfDeclaration(i),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,La(t),Aa(g)),Wt(n,e.Diagnostics.Variable_0_implicitly_has_an_1_type,La(t),Aa(g))),Rv(g);return s?Ed(g):g}function Fm(e,n){(or(e).flags|=2,158===n.kind||161===n.kind)?or(n.parent).flags|=4:or(n).flags|=4}function Gm(n){return e.isSuperCall(n)?n:e.isFunctionLike(n)?void 0:e.forEachChild(n,Gm)}function Bm(e){var n=or(e);return void 0===n.hasSuperCall&&(n.superCall=Gm(e.body),n.hasSuperCall=!!n.superCall),n.superCall}function Vm(e){return Bi(Yi(Yr(e)))===Te}function Um(n,t,r){var a=t.parent;if(e.getClassExtendsHeritageElement(a)&&!Vm(a)){var i=Bm(t);(!i||i.end>n.pos)&&Wt(n,r)}}function jm(n){var t=e.getThisContainer(n,!0),r=!1;switch(161===t.kind&&Um(n,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),201===t.kind&&(t=e.getThisContainer(t,!1),r=!0),t.kind){case 248:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 247:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 161:Hm(n,t)&&Wt(n,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 158:case 157:e.hasModifier(t,32)&&Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);break;case 153:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name)}r&&w<2&&Fm(n,t);var a=Km(n,!0,t);if(H){var i=Ci(Q);if(a===i&&r)Wt(n,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!a){var o=Wt(n,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var s=Km(t);s&&s!==i&&e.addRelatedInfo(o,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return a||me}function Km(n,t,r){void 0===t&&(t=!0),void 0===r&&(r=e.getThisContainer(n,!1));var a=e.isInJSFile(n);if(e.isFunctionLike(r)&&(!Qm(n)||e.getThisParameter(r))){var i=function(n){if(200===n.kind&&e.isBinaryExpression(n.parent)&&3===e.getAssignmentDeclarationKind(n.parent))return n.parent.left.expression.expression;if(160===n.kind&&192===n.parent.kind&&e.isBinaryExpression(n.parent.parent)&&6===e.getAssignmentDeclarationKind(n.parent.parent))return n.parent.parent.left.expression;if(200===n.kind&&279===n.parent.kind&&192===n.parent.parent.kind&&e.isBinaryExpression(n.parent.parent.parent)&&6===e.getAssignmentDeclarationKind(n.parent.parent.parent))return n.parent.parent.parent.left.expression;if(200===n.kind&&e.isPropertyAssignment(n.parent)&&e.isIdentifier(n.parent.name)&&(\"value\"===n.parent.name.escapedText||\"get\"===n.parent.name.escapedText||\"set\"===n.parent.name.escapedText)&&e.isObjectLiteralExpression(n.parent.parent)&&e.isCallExpression(n.parent.parent.parent)&&n.parent.parent.parent.arguments[2]===n.parent.parent&&9===e.getAssignmentDeclarationKind(n.parent.parent.parent))return n.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(n)&&e.isIdentifier(n.name)&&(\"value\"===n.name.escapedText||\"get\"===n.name.escapedText||\"set\"===n.name.escapedText)&&e.isObjectLiteralExpression(n.parent)&&e.isCallExpression(n.parent.parent)&&n.parent.parent.arguments[2]===n.parent&&9===e.getAssignmentDeclarationKind(n.parent.parent))return n.parent.parent.arguments[0].expression}(r);if(a&&i){var o=Py(i).symbol;if(o&&o.members&&16&o.flags)return Am(n,Yi(o).thisType)}else if(a&&(200===r.kind||243===r.kind)&&e.getJSDocClassTag(r)){return Am(n,Yi(Xr(r.symbol)).thisType)}var s=hi(r)||Jm(r);if(s)return Am(n,s)}if(e.isClassLike(r.parent)){var c,l=Yr(r.parent);return Am(n,c=e.hasModifier(r,32)?Ci(l):Yi(l).thisType)}if(a&&((c=function(n){var t=e.getJSDocType(n);if(t&&298===t.kind){var r=t;if(r.parameters.length>0&&r.parameters[0].name&&\"this\"===r.parameters[0].name.escapedText)return Kl(r.parameters[0].type)}var a=e.getJSDocThisTag(n);if(a&&a.typeExpression)return Kl(a.typeExpression)}(r))&&c!==ge))return Am(n,c);if(e.isSourceFile(r)){if(r.commonJsModuleIndicator){var u=Yr(r);return u&&Ci(u)}if(t)return Ci(Q)}}function Hm(n,t){return!!e.findAncestor(n,(function(n){return e.isFunctionLikeDeclaration(n)?\"quit\":155===n.kind&&n.parent===t}))}function Wm(n){var t=195===n.parent.kind&&n.parent.expression===n,r=e.getSuperContainer(n,!0),a=!1;if(!t)for(;r&&201===r.kind;)r=e.getSuperContainer(r,!0),a=w<2;var i=0;if(!function(n){if(!n)return!1;if(t)return 161===n.kind;if(e.isClassLike(n.parent)||192===n.parent.kind)return e.hasModifier(n,32)?160===n.kind||159===n.kind||162===n.kind||163===n.kind:160===n.kind||159===n.kind||162===n.kind||163===n.kind||158===n.kind||157===n.kind||161===n.kind;return!1}(r)){var o=e.findAncestor(n,(function(e){return e===r?\"quit\":153===e.kind}));return o&&153===o.kind?Wt(n,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):t?Wt(n,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):r&&r.parent&&(e.isClassLike(r.parent)||192===r.parent.kind)?Wt(n,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class):Wt(n,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions),ge}if(t||161!==r.kind||Um(n,r,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),i=e.hasModifier(r,32)||t?512:256,or(n).flags|=i,160===r.kind&&e.hasModifier(r,256)&&(e.isSuperProperty(n.parent)&&e.isAssignmentTarget(n.parent)?or(r).flags|=4096:or(r).flags|=2048),a&&Fm(n.parent,r),192===r.parent.kind)return w<2?(Wt(n,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),ge):me;var s=r.parent;if(!e.getClassExtendsHeritageElement(s))return Wt(n,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),ge;var c=Yi(Yr(s)),l=c&&Vi(c)[0];return l?161===r.kind&&Hm(n,r)?(Wt(n,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),ge):512===i?Bi(c):go(l,c.thisType):ge}function zm(n){return 4&e.getObjectFlags(n)&&n.target===fn?ic(n)[0]:void 0}function qm(n){return om(n,(function(n){return 2097152&n.flags?e.forEach(n.types,zm):zm(n)}))}function Jm(n){if(201!==n.kind){if(yu(n)){var t=Ef(n);if(t){var r=t.thisParameter;if(r)return Ci(r)}}var a=e.isInJSFile(n);if(H||a){var i=function(e){return 160!==e.kind&&162!==e.kind&&163!==e.kind||192!==e.parent.kind?200===e.kind&&279===e.parent.kind?e.parent.parent:void 0:e.parent}(n);if(i){for(var o=df(i),s=i,c=o;c;){var l=qm(c);if(l)return uu(l,sp(_f(i)));if(279!==s.parent.kind)break;c=df(s=s.parent.parent)}return Xd(o?wd(o):hy(i))}var u=n.parent;if(208===u.kind&&62===u.operatorToken.kind){var d=u.left;if(193===d.kind||194===d.kind){var p=d.expression;if(a&&e.isIdentifier(p)){var m=e.getSourceFileOfNode(u);if(m.commonJsModuleIndicator&&Ap(p)===m.symbol)return}return Xd(hy(p))}}}}}function Xm(n,t){var r=n.parent;if(yu(r)){var a=e.getImmediatelyInvokedFunctionExpression(r);if(a&&a.arguments){var i=J_(a),o=r.parameters.indexOf(n);if(n.dotDotDotToken)return j_(i,o,i.length,me,void 0);var s=or(a),c=s.resolvedSignature;s.resolvedSignature=Jn;var l=o<i.length?Td(Py(i[o])):n.initializer?void 0:he;return s.resolvedSignature=c,l}var u=Ef(r);if(u){if(t){if(Qg(r),Wa(l=Ci(Xr(r.symbol))))return l;u=_s(l,0)[0]}var d=r.parameters.indexOf(n)-(e.getThisParameter(r)?1:0);return n.dotDotDotToken&&e.lastOrUndefined(r.parameters)===n?kg(u,d):Dg(u,d)}}}function Ym(n){var t=e.getEffectiveTypeAnnotationNode(n);if(t)return Kl(t);switch(n.kind){case 155:return Xm(n,!1);case 190:return function(n){var t=n.parent.parent,r=n.propertyName||n.name,a=Ym(t);if(a&&!e.isBindingPattern(r)&&!qa(r)){var i=el(r);if(io(i)){var o=uo(i);return Ha(a,o)}}}(n)}}function Qm(n){for(var t=!1;n.parent&&!e.isFunctionLike(n.parent);){if(e.isParameter(n.parent)&&(t||n.parent.initializer===n))return!0;e.isBindingElement(n.parent)&&n.parent.initializer===n&&(t=!0),n=n.parent}return!1}function Zm(n,t){var r=!!(2&e.getFunctionFlags(t)),a=$m(t);if(a)return mh(n,a,r)||void 0}function $m(e){var n=Fs(e);if(n)return n;var t=bf(e);return t&&!Gs(t)?ws(t):void 0}function ef(e,n,t){var r=J_(e).indexOf(n);return-1===r?void 0:nf(e,r,t)}function nf(n,t,r){var a=or(n).resolvedSignature===Yn?Yn:fg(n);if(e.isJsxOpeningLikeElement(n)&&0===t)return gf(a,n);if(r&&4&r&&a.target){var i=Ws(a.target);return Ao(Ag(a,t),Ag(i,t))}return Ag(a,t)}function tf(n,t){var r=n.parent,a=r.left,i=r.operatorToken,o=r.right;switch(i.kind){case 62:if(n!==o)return;var s=function(n){var t=e.getAssignmentDeclarationKind(n);switch(t){case 0:return!0;case 5:case 1:case 6:case 3:if(n.left.symbol){var r=n.left.symbol.valueDeclaration;if(!r)return!1;var a=e.cast(n.left,e.isAccessExpression),i=e.getEffectiveTypeAnnotationNode(r);if(i)return Kl(i);if(e.isIdentifier(a.expression)){var o=a.expression,s=ur(o,o.escapedText,111551,void 0,o.escapedText,!0);if(s){if(l=e.getEffectiveTypeAnnotationNode(s.valueDeclaration)){var c=e.getElementOrPropertyAccessName(a);if(void 0!==c)return(u=rf(Kl(l),c))||!1}return!1}}return!e.isInJSFile(r)}return!0;case 2:case 4:if(!n.symbol)return!0;var l,u;if(n.symbol.valueDeclaration)if(l=e.getEffectiveTypeAnnotationNode(n.symbol.valueDeclaration))if(u=Kl(l))return u;if(2===t)return!1;var d=e.cast(n.left,e.isAccessExpression);if(!e.isObjectLiteralMethod(e.getThisContainer(d.expression,!1)))return!1;var p=jm(d.expression),m=e.getElementOrPropertyAccessName(d);return void 0!==m&&p&&rf(p,m)||!1;case 7:case 8:case 9:return e.Debug.fail(\"Does not apply\");default:return e.Debug.assertNever(t)}}(r);if(!s)return;return!0===s?Oy(a):s;case 56:case 60:var c=ff(r,t);return n===o&&(c&&c.pattern||!c&&!e.isDefaultedExpandoInitializer(r))?Oy(a):c;case 55:case 27:return n===o?ff(r,t):void 0;default:return}}function rf(n,t){return om(n,(function(n){if(Ho(n)){var r=wo(n),a=ts(r)||r,i=Vl(e.unescapeLeadingUnderscores(t));if(xu(i,a))return gl(n,i)}else if(3670016&n.flags){var o=ms(n,t);if(o)return Ci(o);if(Cd(n)){var s=Ad(n);if(s&&Df(t)&&+t>=0)return s}return Df(t)&&af(n,1)||af(n,0)}}),!0)}function af(e,n){return om(e,(function(e){return ys(e,n)}),!0)}function of(e,n){var t=df(e.parent,n);if(t){if(!lo(e)){var r=rf(t,Yr(e).escapedName);if(r)return r}return Cf(e.name)&&af(t,1)||af(t,0)}}function sf(e,n){return e&&(rf(e,\"\"+n)||qv(1,e,ve,void 0,!1))}function cf(n){var t=n.parent;return e.isJsxAttributeLike(t)?ff(n):e.isJsxElement(t)?function(e,n){var t=df(e.openingElement.tagName),r=Kf(Uf(e));if(t&&!Wa(t)&&r&&\"\"!==r){var a=Pu(e.children),i=a.indexOf(n),o=rf(t,r);return o&&(1===a.length?o:om(o,(function(e){return fd(e)?yl(e,Vl(i)):e}),!0))}}(t,n):void 0}function lf(n){if(e.isJsxAttribute(n)){var t=df(n.parent);if(!t||Wa(t))return;return rf(t,n.name.escapedText)}return ff(n.parent)}function uf(e){switch(e.kind){case 10:case 8:case 9:case 14:case 105:case 90:case 99:case 75:case 145:return!0;case 193:case 199:return uf(e.expression);case 274:return!e.expression||uf(e.expression)}return!1}function df(n,t){var r=pf(e.isObjectLiteralMethod(n)?function(n,t){if(e.Debug.assert(e.isObjectLiteralMethod(n)),!(16777216&n.flags))return of(n,t)}(n,t):ff(n,t),n,t);if(r&&!(t&&2&t&&8650752&r.flags)){var a=om(r,ls,!0);if(1048576&a.flags){if(e.isObjectLiteralExpression(n))return function(n,t){return Ju(t,e.map(e.filter(n.properties,(function(e){return!!e.symbol&&279===e.kind&&uf(e.initializer)&&Rp(t,e.symbol.escapedName)})),(function(e){return[function(){return Py(e.initializer)},e.symbol.escapedName]})),xu,t)}(n,a);if(e.isJsxAttributes(n))return function(n,t){return Ju(t,e.map(e.filter(n.properties,(function(e){return!!e.symbol&&271===e.kind&&Rp(t,e.symbol.escapedName)&&(!e.initializer||uf(e.initializer))})),(function(e){return[e.initializer?function(){return Py(e.initializer)}:function(){return De},e.symbol.escapedName]})),xu,t)}(n,a)}return a}}function pf(n,t,r){if(n&&oy(n,63176704)){var a=_f(t);if(a&&e.some(a.inferences,ky)){if(r&&1&r)return mf(n,a.nonFixingMapper);if(a.returnMapper)return mf(n,a.returnMapper)}}return n}function mf(n,t){return 63176704&n.flags?uu(n,t):1048576&n.flags?Wc(e.map(n.types,(function(e){return mf(e,t)})),0):2097152&n.flags?Zc(e.map(n.types,(function(e){return mf(e,t)}))):n}function ff(n,t){if(!(16777216&n.flags)){if(n.contextualType)return n.contextualType;var r=n.parent;switch(r.kind){case 241:case 155:case 158:case 157:case 190:return function(n){var t=n.parent;if(e.hasInitializer(t)&&n===t.initializer){var r=Ym(t);if(r)return r;if(e.isBindingPattern(t.name))return di(t.name,!0,!1)}}(n);case 201:case 234:return function(n){var t=e.getContainingFunction(n);if(t){var r=e.getFunctionFlags(t);if(1&r)return;var a=$m(t);if(a){if(2&r){var i=tv(a);return i&&Wc([i,Vg(i)])}return a}}}(n);case 211:return function(n){var t=e.getContainingFunction(n);if(t){var r=e.getFunctionFlags(t),a=$m(t);if(a)return n.asteriskToken?a:mh(0,a,0!=(2&r))}}(r);case 205:return function(e){var n=ff(e);if(n){var t=iv(n);return t&&Wc([t,Vg(t)])}}(r);case 195:if(95===r.expression.kind)return Se;case 196:return ef(r,n,t);case 198:case 216:return e.isConstTypeReference(r.type)?void 0:Kl(r.type);case 208:return tf(n,t);case 279:case 280:return of(r,t);case 281:return df(r.parent,t);case 191:var a=r;return sf(df(a,t),e.indexOfNode(a.elements,n));case 209:return function(e,n){var t=e.parent;return e===t.whenTrue||e===t.whenFalse?ff(t,n):void 0}(n,t);case 220:return e.Debug.assert(210===r.parent.kind),function(e,n){if(197===e.parent.kind)return ef(e.parent,n)}(r.parent,n);case 199:var i=e.isInJSFile(r)?e.getJSDocTypeTag(r):void 0;return i?Kl(i.typeExpression.type):ff(r,t);case 274:return cf(r);case 271:case 273:return lf(r);case 266:case 265:return function(n){if(e.isJsxOpeningElement(n)&&n.parent.contextualType)return n.parent.contextualType;return nf(n,0)}(r)}}}function _f(n){var t=e.findAncestor(n,(function(e){return!!e.inferenceContext}));return t&&t.inferenceContext}function gf(n,t){return 0!==H_(t)?function(e,n){var t=wg(e,ye);t=yf(n,Uf(n),t);var r=Bf(T.IntrinsicAttributes,n);r!==ge&&(t=Ao(r,t));return t}(n,t):function(n,t){var r=Uf(t),a=(o=r,jf(T.ElementAttributesPropertyNameContainer,o)),i=void 0===a?wg(n,ye):\"\"===a?ws(n):function(e,n){if(e.unionSignatures){for(var t=[],r=0,a=e.unionSignatures;r<a.length;r++){var i=ws(a[r]);if(Wa(i))return i;var o=Ha(i,n);if(!o)return;t.push(o)}return Zc(t)}var s=ws(e);return Wa(s)?s:Ha(s,n)}(n,a);var o;if(!i)return a&&e.length(t.attributes.properties)&&Wt(t,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(a)),ye;if(Wa(i=yf(t,r,i)))return i;var s=i,c=Bf(T.IntrinsicClassAttributes,t);if(c!==ge){var l=Oi(c.symbol),u=ws(n);s=Ao(l?tc(c,ks([u],l,Ds(l),e.isInJSFile(t))):c,s)}var d=Bf(T.IntrinsicAttributes,t);return d!==ge&&(s=Ao(d,s)),s}(n,t)}function yf(n,t,r){var a,i=(a=t)&&cr(a.exports,T.LibraryManagedAttributes,788968);if(i){var o=Yi(i),s=function(e){if(Pf(e.tagName))return zs(dg(e,n=Wf(e)));var n,t=hy(e.tagName);return 128&t.flags?(n=Hf(t,e))?zs(dg(e,n)):ge:t}(n);if(e.length(o.typeParameters)>=2)return tc(o,c=ks([s,r],o.typeParameters,2,e.isInJSFile(n)));if(e.length(o.aliasTypeArguments)>=2){var c=ks([s,r],o.aliasTypeArguments,2,e.isInJSFile(n));return cc(o.aliasSymbol,c)}}return r}function vf(n,t){var r=_s(n,0);if(1===r.length){var a=r[0];if(!function(n,t){for(var r=0;r<t.parameters.length;r++){var a=t.parameters[r];if(a.initializer||a.questionToken||a.dotDotDotToken||Ss(a))break}t.parameters.length&&e.parameterIsThisKeyword(t.parameters[0])&&r--;return!Mg(n)&&Ng(n)<r}(a,t))return a}}function hf(e){return 200===e.kind||201===e.kind}function bf(n){return hf(n)||e.isObjectLiteralMethod(n)?Ef(n):void 0}function Ef(n){e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n));var t=Is(n);if(t)return t;var r=df(n,1);if(r){if(!(1048576&r.flags))return vf(r,n);for(var a,i=0,o=r.types;i<o.length;i++){var s=vf(o[i],n);if(s)if(a){if(!ld(a[0],s,!1,!0,!0,bu))return;a.push(s)}else a=[s]}return a?1===a.length?a[0]:bo(a[0],a):void 0}}function Tf(e){return 190===e.kind&&!!e.initializer||208===e.kind&&62===e.operatorToken.kind}function Sf(n,t,r){for(var a=n.elements,i=a.length,o=!1,s=[],c=e.isAssignmentTarget(n),l=df(n),u=Sy(n),d=0;d<i;d++){var p=a[d];if(c&&212===p.kind){var m=Py(p.expression,t,r),f=hs(m,1)||qv(65,m,ve,void 0,!1);f&&s.push(f)}else{var _=xy(p,t,sf(l,d),r);s.push(_)}d<i-1&&212===p.kind&&(o=!0)}if(!o){var g=i>0&&212===a[i-1].kind,y=i-(g?1:0),v=void 0;if(c&&y>0)return(_=rc(Fc(s,y,g))).pattern=n,_;if(v=Lf(s,l,g,i,u))return xf(v);if(r)return xf(Fc(s,y,g))}return xf(Oc(s.length?Wc(s,2):B?we:he,u))}function xf(n){if(!(4&e.getObjectFlags(n)))return n;var t=n.literalType;return t||((t=n.literalType=rc(n)).objectFlags|=589824),t}function Lf(e,n,t,r,a){if(void 0===r&&(r=e.length),void 0===a&&(a=!1),a||n&&tm(n,gd))return Fc(e,r-(t?1:0),t,a)}function Cf(e){switch(e.kind){case 153:return function(e){return sy(kf(e),296)}(e);case 75:return Df(e.escapedText);case 8:case 10:return Df(e.text);default:return!1}}function Af(e){return\"Infinity\"===e||\"-Infinity\"===e||\"NaN\"===e}function Df(e){return(+e).toString()===e}function kf(n){var t=or(n.expression);return t.resolvedType||(t.resolvedType=Py(n.expression),98304&t.resolvedType.flags||!sy(t.resolvedType,12716)&&!xu(t.resolvedType,Be)?Wt(n,e.Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any):D_(n.expression,t.resolvedType,!0)),t.resolvedType}function Nf(e,n,t,r){for(var a=[],i=0;i<t.length;i++)(0===r||Cf(e.properties[i+n].name))&&a.push(Ci(t[i]));return Xs(a.length?Wc(a,2):ve,Sy(e))}function If(n){e.Debug.assert(0!=(2097152&n.flags),\"Should only get Alias here.\");var t=ir(n);if(!t.immediateTarget){var r=hr(n);if(!r)return e.Debug.fail();t.immediateTarget=Cr(r,!0)}return t.immediateTarget}function Mf(n,t){var r,a=e.isAssignmentTarget(n);!function(n,t){for(var r=e.createUnderscoreEscapedMap(),a=0,i=n.properties;a<i.length;a++){var o=i[a];if(281!==o.kind){var s=o.name;if(153===s.kind&&Zb(s),280===o.kind&&!t&&o.objectAssignmentInitializer)return pE(o.equalsToken,e.Diagnostics.can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment);if(o.modifiers)for(var c=0,l=o.modifiers;c<l.length;c++){var u=l[c];125===u.kind&&160===o.kind||pE(u,e.Diagnostics._0_modifier_cannot_be_used_here,e.getTextOfNode(u))}var d=void 0;switch(o.kind){case 280:nE(o.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context);case 279:eE(o.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional),8===s.kind&&_E(s),d=4;break;case 160:d=8;break;case 162:d=1;break;case 163:d=2;break;default:throw e.Debug.assertNever(o,\"Unexpected syntax kind:\"+o.kind)}var p=e.getPropertyNameForPropertyNameNode(s);if(void 0!==p){var m=r.get(p);if(m)if(12&d&&12&m)pE(s,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(s));else{if(!(3&d&&3&m))return pE(s,e.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);if(3===m||d===m)return pE(s,e.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);r.set(p,d|m)}else r.set(p,d)}}else if(t){var f=e.skipParentheses(o.expression);if(e.isArrayLiteralExpression(f)||e.isObjectLiteralExpression(f))return pE(o.expression,e.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern)}}}(n,a);var i=[],o=je,s=df(n),c=s&&s.pattern&&(188===s.pattern.kind||192===s.pattern.kind),l=Sy(n),u=l?8:0,d=e.isInJSFile(n)&&!e.isInJsonFile(n),p=e.getJSDocEnumTag(n),m=!s&&d&&!p,f=z,_=!1,g=!1,y=!1;r=e.createSymbolTable();for(var v=0,h=0;h<n.properties.length;h++){var b=n.properties[h],E=Yr(b),T=b.name&&153===b.name.kind&&!e.isWellKnownSymbolSyntactically(b.name.expression)?kf(b.name):void 0;if(279===b.kind||280===b.kind||e.isObjectLiteralMethod(b)){var S=279===b.kind?Ly(b,t):280===b.kind?xy(b.name,t):Cy(b,t);if(d){var x=$a(b);x?(Du(S,x,b),S=x):p&&p.typeExpression&&Du(S,Kl(p.typeExpression),b)}f|=1835008&e.getObjectFlags(S);var L=T&&io(T)?T:void 0,C=L?Xt(4|E.flags,uo(L),4096|u):Xt(4|E.flags,E.escapedName,u);if(L&&(C.nameType=L),a)(279===b.kind&&Tf(b.initializer)||280===b.kind&&b.objectAssignmentInitializer)&&(C.flags|=16777216);else if(c&&!(512&e.getObjectFlags(s))){var A=ms(s,E.escapedName);A?C.flags|=16777216&A.flags:P.suppressExcessPropertyErrors||vs(s,0)||Wt(b.name,e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,La(E),Aa(s))}C.declarations=E.declarations,C.parent=E.parent,E.valueDeclaration&&(C.valueDeclaration=E.valueDeclaration),C.type=S,C.target=E,E=C}else{if(281===b.kind){if(w<2&&Vb(b,2),i.length>0&&(o=Ml(o,N(),n.symbol,f,l),i=[],r=e.createSymbolTable(),g=!1,y=!1),!Of(S=Py(b.expression)))return Wt(b,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),ge;o=Ml(o,S,n.symbol,f,l),v=h+1;continue}e.Debug.assert(162===b.kind||163===b.kind),jh(b)}!T||8576&T.flags?r.set(E.escapedName,E):xu(T,Be)&&(xu(T,xe)?y=!0:g=!0,a&&(_=!0)),i.push(E)}if(c)for(var D=0,k=Xo(s);D<k.length;D++){C=k[D];r.get(C.escapedName)||o&&ms(o,C.escapedName)||(16777216&C.flags||Wt(C.valueDeclaration||C.bindingElement,e.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value),r.set(C.escapedName,C),i.push(C))}return o!==je?(i.length>0&&(o=Ml(o,N(),n.symbol,f,l)),o):N();function N(){var t=g?Nf(n,v,i,0):void 0,o=y?Nf(n,v,i,1):void 0,s=pa(n.symbol,r,e.emptyArray,e.emptyArray,t,o);return s.objectFlags|=524416|f,m&&(s.objectFlags|=16384),_&&(s.objectFlags|=512),a&&(s.pattern=n),s}}function Of(n){if(63176704&n.flags){var t=ts(n);if(void 0!==t)return Of(t)}return!!(126615553&n.flags||117632&Id(n)&&Of(Md(n))||3145728&n.flags&&e.every(n.types,Of))}function Rf(n){return!e.stringContains(n,\"-\")}function Pf(n){return 75===n.kind&&e.isIntrinsicJsxName(n.escapedText)}function wf(e,n){return e.initializer?xy(e.initializer,n):De}function Ff(e,n){for(var t=[],r=0,a=e.children;r<a.length;r++){var i=a[r];11===i.kind?i.containsOnlyTriviaWhiteSpaces||t.push(Se):t.push(xy(i,n))}return t}function Gf(n,t){return function(n,t){for(var r,a=n.attributes,i=e.createSymbolTable(),o=Ke,s=!1,c=!1,l=4096,u=Kf(Uf(n)),d=0,p=a.properties;d<p.length;d++){var m=p[d],f=m.symbol;if(e.isJsxAttribute(m)){var _=wf(m,t);l|=1835008&e.getObjectFlags(_);var g=Xt(33554436|f.flags,f.escapedName);g.declarations=f.declarations,g.parent=f.parent,f.valueDeclaration&&(g.valueDeclaration=f.valueDeclaration),g.type=_,g.target=f,i.set(g.escapedName,g),m.name.escapedText===u&&(c=!0)}else{e.Debug.assert(273===m.kind),i.size>0&&(o=Ml(o,S(),a.symbol,l,!1),i=e.createSymbolTable()),Wa(_=hy(m.expression,t))&&(s=!0),Of(_)?o=Ml(o,_,a.symbol,l,!1):r=r?Zc([r,_]):_}}s||i.size>0&&(o=Ml(o,S(),a.symbol,l,!1));var y=264===n.parent.kind?n.parent:void 0;if(y&&y.openingElement===n&&y.children.length>0){var v=Ff(y,t);if(!s&&u&&\"\"!==u){c&&Wt(a,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores(u));var h=df(n.attributes),b=h&&rf(h,u),E=Xt(33554436,u);E.type=1===v.length?v[0]:Lf(v,b,!1)||Oc(Wc(v)),E.valueDeclaration=e.createPropertySignature(void 0,e.unescapeLeadingUnderscores(u),void 0,void 0,void 0),E.valueDeclaration.parent=a,E.valueDeclaration.symbol=E;var T=e.createSymbolTable();T.set(u,E),o=Ml(o,pa(a.symbol,T,e.emptyArray,e.emptyArray,void 0,void 0),a.symbol,l,!1)}}return s?me:r&&o!==Ke?Zc([r,o]):r||(o===Ke?S():o);function S(){l|=z;var n=pa(a.symbol,i,e.emptyArray,e.emptyArray,void 0,void 0);return n.objectFlags|=524416|l,n}}(n.parent,t)}function Bf(e,n){var t=Uf(n),r=t&&Wr(t),a=r&&cr(r,e,788968);return a?Yi(a):ge}function Vf(n){var t=or(n);if(!t.resolvedSymbol){var r=Bf(T.IntrinsicElements,n);if(r!==ge){if(!e.isIdentifier(n.tagName))return e.Debug.fail();var a=ms(r,n.tagName.escapedText);return a?(t.jsxFlags|=1,t.resolvedSymbol=a):hs(r,0)?(t.jsxFlags|=2,t.resolvedSymbol=r.symbol):(Wt(n,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.idText(n.tagName),\"JSX.\"+T.IntrinsicElements),t.resolvedSymbol=de)}return K&&Wt(n,e.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists,e.unescapeLeadingUnderscores(T.IntrinsicElements)),t.resolvedSymbol=de}return t.resolvedSymbol}function Uf(e){var n=e&&or(e);if(n&&n.jsxNamespace)return n.jsxNamespace;if(!n||!1!==n.jsxNamespace){var t=Ht(e),r=ur(e,t,1920,void 0,t,!1);if(r){var a=Dr(cr(Wr(Dr(r)),T.JSX,1920));if(a)return n&&(n.jsxNamespace=a),a;n&&(n.jsxNamespace=!1)}}return Sc(T.JSX,1920,void 0)}function jf(n,t){var r=t&&cr(t.exports,n,788968),a=r&&Yi(r),i=a&&Xo(a);if(i){if(0===i.length)return\"\";if(1===i.length)return i[0].escapedName;i.length>1&&Wt(r.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(n))}}function Kf(e){return jf(T.ElementChildrenAttributeNameContainer,e)}function Hf(n,t){var r=Bf(T.IntrinsicElements,t);if(r!==ge){var a=n.value,i=ms(r,e.escapeLeadingUnderscores(a));if(i)return Ci(i);var o=hs(r,0);return o||void 0}return me}function Wf(n){e.Debug.assert(Pf(n.tagName));var t=or(n);if(!t.resolvedJsxElementAttributesType){var r=Vf(n);return 1&t.jsxFlags?t.resolvedJsxElementAttributesType=Ci(r):2&t.jsxFlags?t.resolvedJsxElementAttributesType=Ys(r,0).type:t.resolvedJsxElementAttributesType=ge}return t.resolvedJsxElementAttributesType}function zf(e){var n=Bf(T.ElementClass,e);if(n!==ge)return n}function qf(e){return Bf(T.Element,e)}function Jf(e){var n=qf(e);if(n)return Wc([n,Ee])}function Xf(n){var t,r=e.isJsxOpeningLikeElement(n);r&&function(n){Jb(n,n.typeArguments);for(var t=e.createUnderscoreEscapedMap(),r=0,a=n.attributes.properties;r<a.length;r++){var i=a[r];if(273!==i.kind){var o=i.name,s=i.initializer;if(t.get(o.escapedText))return pE(o,e.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);if(t.set(o.escapedText,!0),s&&274===s.kind&&!s.expression)return pE(s,e.Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression)}}}(n),t=n,0===(P.jsx||0)&&Wt(t,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),void 0===qf(t)&&K&&Wt(t,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);var a=Rt&&2===P.jsx?e.Diagnostics.Cannot_find_name_0:void 0,i=Ht(n),o=ur(r?n.tagName:n,i,111551,a,i,!0);if(o&&(o.isReferenced=67108863,2097152&o.flags&&Ir(o)),r){var s=fg(n);!function(n,t,r){if(1===n)(a=Jf(r))&&qu(t,a,Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements);else if(0===n){(i=zf(r))&&qu(t,i,Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements)}else{var a=Jf(r),i=zf(r);if(!a||!i)return;qu(t,Wc([a,i]),Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements)}}(H_(n),ws(s),n)}}function Yf(e,n,t){if(524288&e.flags){var r=Wo(e);if(r.stringIndexInfo||r.numberIndexInfo&&Df(n)||qo(e,n)||t&&!Rf(n))return!0}else if(3145728&e.flags&&Qf(e))for(var a=0,i=e.types;a<i.length;a++){if(Yf(i[a],n,t))return!0}return!1}function Qf(n){return!!(524288&n.flags&&!(512&e.getObjectFlags(n))||67108864&n.flags||1048576&n.flags&&e.some(n.types,Qf)||2097152&n.flags&&e.every(n.types,Qf))}function Zf(n,t){if(function(n){if(n.expression&&e.isCommaSequence(n.expression))pE(n.expression,e.Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array)}(n),n.expression){var r=Py(n.expression,t);return n.dotDotDotToken&&r!==me&&!dd(r)&&Wt(n,e.Diagnostics.JSX_spread_child_must_be_an_array_type),r}return ge}function $f(n){return n.valueDeclaration?e.getCombinedNodeFlags(n.valueDeclaration):0}function e_(n){if(8192&n.flags||4&e.getCheckFlags(n))return!0;if(e.isInJSFile(n.valueDeclaration)){var t=n.valueDeclaration.parent;return t&&e.isBinaryExpression(t)&&3===e.getAssignmentDeclarationKind(t)}}function n_(n,t,r,a){var i,o=e.getDeclarationModifierFlagsFromSymbol(a),s=152===n.kind?n.right:187===n.kind?n:n.name;if(1024&e.getCheckFlags(a))return Wt(s,e.Diagnostics.Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1,La(a),Aa(r)),!1;if(t){if(w<2&&t_(a))return Wt(s,e.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword),!1;if(128&o)return Wt(s,e.Diagnostics.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression,La(a),Aa(id(a))),!1}if(128&o&&e.isThisProperty(n)&&t_(a)&&((i=e.getClassLikeDeclarationOfSymbol(Qr(a)))&&function(n){return!!e.findAncestor(n,(function(n){return!!(e.isConstructorDeclaration(n)&&e.nodeIsPresent(n.body)||e.isPropertyDeclaration(n))||!(!e.isClassLike(n)&&!e.isFunctionLikeDeclaration(n))&&\"quit\"}))}(n)))return Wt(s,e.Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor,La(a),e.getTextOfIdentifierOrLiteral(i.name)),!1;if(!(24&o))return!0;if(8&o)return!!Zh(n,i=e.getClassLikeDeclarationOfSymbol(Qr(a)))||(Wt(s,e.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1,La(a),Aa(id(a))),!1);if(t)return!0;var c=Qh(n,(function(n){var t=Yi(Yr(n));return function(n,t){return ad(t,(function(t){return!!(16&e.getDeclarationModifierFlagsFromSymbol(t))&&!ki(n,id(t))}))?void 0:n}(t,a)?t:void 0}));if(!c){var l=void 0;if(32&o||!(l=function(n){var t=e.getThisContainer(n,!1);return t&&e.isFunctionLike(t)?e.getThisParameter(t):void 0}(n))||!l.type)return Wt(s,e.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses,La(a),Aa(id(a)||r)),!1;var u=Kl(l.type);c=262144&u.flags?Qo(u):u}return!!(32&o)||(262144&r.flags&&(r=r.isThisType?Qo(r):ts(r)),!(!r||!ki(r,c))||(Wt(s,e.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1,La(a),Aa(c)),!1))}function t_(e){return!!ad(e,(function(e){return!(8192&e.flags)}))}function r_(e){return l_(Py(e),e)}function a_(e){return!!(98304&(B?Id(e):e.flags))}function i_(e){return a_(e)?wd(e):e}function o_(n,t){Wt(n,32768&t?65536&t?e.Diagnostics.Object_is_possibly_null_or_undefined:e.Diagnostics.Object_is_possibly_undefined:e.Diagnostics.Object_is_possibly_null)}function s_(n,t){Wt(n,32768&t?65536&t?e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined:e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined:e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null)}function c_(n,t,r){if(B&&2&n.flags)return Wt(t,e.Diagnostics.Object_is_of_type_unknown),ge;var a=98304&(B?Id(n):n.flags);if(a){r(t,a);var i=wd(n);return 229376&i.flags?ge:i}return n}function l_(e,n){return c_(e,n,o_)}function u_(n,t){var r=l_(n,t);return r!==ge&&16384&r.flags&&Wt(t,e.Diagnostics.Object_is_possibly_undefined),r}function d_(e){return 32&e.flags?function(e){var n=Py(e.expression),t=Ud(n,e.expression);return Vd(f_(e,e.expression,l_(t,e.expression),e.name),e,t!==n)}(e):f_(e,e.expression,r_(e.expression),e.name)}function p_(e){return f_(e,e.left,r_(e.left),e.right)}function m_(n){for(;199===n.parent.kind;)n=n.parent;return e.isCallOrNewExpression(n.parent)&&n.parent.expression===n}function f_(n,t,r,a){var i=or(t).resolvedSymbol,o=e.getAssignmentTargetKind(n),s=ls(0!==o||m_(n)?Xd(r):r);if(Wa(s)||s===Re)return e.isIdentifier(t)&&i&&Pm(i,n),s;var c,l=ms(s,a.escapedText);if(!e.isIdentifier(t)||!i||l&&hb(l)||Pm(i,n),l){if(function(n,t,r){var a,i=n.valueDeclaration;if(!i||e.getSourceFileOfNode(t).isDeclarationFile)return;var o=e.idText(r);!function(n){return!!e.findAncestor(n,(function(n){switch(n.kind){case 158:return!0;case 279:case 160:case 162:case 163:case 281:case 153:case 220:case 274:case 271:case 272:case 273:case 266:case 215:case 277:return!1;default:return!e.isExpressionNode(n)&&\"quit\"}}))}(t)||lr(i,r)||function(e){if(!(32&e.parent.flags))return!1;var n=Ci(e.parent);for(;;){if(!(n=n.symbol&&g_(n)))return!1;var t=ms(n,e.escapedName);if(t&&t.valueDeclaration)return!0}}(n)?244!==i.kind||168===t.parent.kind||8388608&i.flags||lr(i,r)||(a=Wt(r,e.Diagnostics.Class_0_used_before_its_declaration,o)):a=Wt(r,e.Diagnostics.Property_0_is_used_before_its_initialization,o);a&&e.addRelatedInfo(a,e.createDiagnosticForNode(i,e.Diagnostics._0_is_declared_here,o))}(l,n,a),S_(l,n,103===t.kind),or(n).resolvedSymbol=l,n_(n,101===t.kind,s,l),o&&(ty(n,l)||ry(n)))return Wt(a,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,e.idText(a)),ge;c=Rm(Ci(l),n)}else{var u=0===o||!ul(r)||pl(r)?vs(s,0):void 0;if(!u||!u.type)return ol(r)?me:r.symbol===Q?(Q.exports.has(a.escapedText)&&418&Q.exports.get(a.escapedText).flags?Wt(a,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(a.escapedText),Aa(r)):K&&Wt(a,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature,Aa(r)),me):(a.escapedText&&!gr(n)&&function(n,t){var r,a;if(1048576&t.flags&&!(131068&t.flags))for(var i=0,o=t.types;i<o.length;i++){var s=o[i];if(!ms(s,n.escapedText)&&!vs(s,0)){r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(s));break}}if(y_(n.escapedText,t))r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_is_a_static_member_of_type_1,e.declarationNameToString(n),Aa(t));else{var c=rv(t);if(c&&ms(c,n.escapedText))r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(t)),a=e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await);else{var l=v_(n,t);if(void 0!==l){var u=e.symbolName(l);r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,e.declarationNameToString(n),Aa(t),u),a=l.valueDeclaration&&e.createDiagnosticForNode(l.valueDeclaration,e.Diagnostics._0_is_declared_here,u)}else r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(t))}}var d=e.createDiagnosticForNodeFromMessageChain(n,r);a&&e.addRelatedInfo(d,a);Rt.add(d)}(a,pl(r)?s:r),ge);u.isReadonly&&(e.isAssignmentTarget(n)||e.isDeleteTarget(n))&&Wt(n,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(s)),c=u.type}return __(n,l,c,a)}function __(n,t,r,a){var i=e.getAssignmentTargetKind(n);if(194!==n.kind&&193!==n.kind||1===i||t&&!(98311&t.flags)&&!(8192&t.flags&&1048576&r.flags))return r;var o=!1;if(B&&j&&103===n.expression.kind){var s=t&&t.valueDeclaration;if(s&&Ah(s)){var c=Dm(n);161===c.kind&&c.parent===s.parent&&(o=!0)}}else B&&t&&t.valueDeclaration&&e.isPropertyAccessExpression(t.valueDeclaration)&&e.getAssignmentDeclarationPropertyAccessKind(t.valueDeclaration)&&Dm(n)===Dm(t.valueDeclaration)&&(o=!0);var l=Am(n,r,o?Pd(r):r);return o&&!(32768&Id(r))&&32768&Id(l)?(Wt(a,e.Diagnostics.Property_0_is_used_before_being_assigned,La(t)),r):i?Ed(l):l}function g_(e){var n=Vi(e);if(0!==n.length)return Zc(n)}function y_(n,t){var r=t.symbol&&ms(Ci(t.symbol),n);return void 0!==r&&r.valueDeclaration&&e.hasModifier(r.valueDeclaration,32)}function v_(n,t){return T_(e.isString(n)?n:e.idText(n),Xo(t),111551)}function h_(n,t){var r=v_(n,t);return r&&e.symbolName(r)}function b_(n,t,r){return e.Debug.assert(void 0!==t,\"outername should always be defined\"),dr(n,t,r,void 0,t,!1,!1,(function(n,r,a){return e.Debug.assertEqual(t,r,\"name should equal outerName\"),cr(n,r,a)||T_(e.unescapeLeadingUnderscores(r),e.arrayFrom(n.values()),a)}))}function E_(n,t){return t.exports&&T_(e.idText(n),Kr(t),2623475)}function T_(n,t,r){return e.getSpellingSuggestion(n,t,(function(n){var t=e.symbolName(n);return!e.startsWith(t,'\"')&&n.flags&r?t:void 0}))}function S_(n,t,r){if(n&&106500&n.flags&&n.valueDeclaration&&e.hasModifier(n.valueDeclaration,8)&&(!t||!e.isWriteOnlyAccess(t)||65536&n.flags&&!(32768&n.flags))){if(r){var a=e.findAncestor(t,e.isFunctionLikeDeclaration);if(a&&a.symbol===n)return}(1&e.getCheckFlags(n)?ir(n).target:n).isReferenced=67108863}}function x_(n,t,r,a){if(a===ge||Wa(a))return!0;var i=ms(a,r);return i?n_(n,t,a,i):e.isInJSFile(n)&&0!=(1048576&a.flags)&&a.types.some((function(e){return x_(n,t,r,e)}))}function L_(n){var t=n.initializer;if(242===t.kind){var r=t.declarations[0];if(r&&!e.isBindingPattern(r.name))return Yr(r)}else if(75===t.kind)return Ap(t)}function C_(e){return 32&e.flags?function(e){var n=Py(e.expression),t=Ud(n,e.expression);return Vd(A_(e,l_(t,e.expression)),e,t!==n)}(e):A_(e,r_(e.expression))}function A_(n,t){var r=0!==e.getAssignmentTargetKind(n)||m_(n)?Xd(t):t,a=n.argumentExpression,i=Py(a);if(r===ge||r===Re)return r;if(ly(r)&&!e.isStringLiteralLike(a))return Wt(a,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),ge;var o=vl(r,function(n){var t,r=e.skipParentheses(n);if(75===r.kind){var a=Ap(r);if(3&a.flags)for(var i=n,o=n.parent;o;){if(230===o.kind&&i===o.statement&&L_(o)===a&&(hs(t=Oy(o.expression),1)&&!hs(t,0)))return!0;i=o,o=o.parent}}return!1}(a)?xe:i,n,e.isAssignmentTarget(n)?2|(ul(r)&&!pl(r)?1:0):0)||ge;return Yy(__(n,o.symbol,o,a),n)}function D_(n,t,r){if(t===ge)return!1;if(!e.isWellKnownSymbolSyntactically(n))return!1;if(0==(12288&t.flags))return r&&Wt(n,e.Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol,e.getTextOfNode(n)),!1;var a=n.expression,i=Ap(a);if(!i)return!1;var o=Lc(!0);return!!o&&(i===o||(r&&Wt(a,e.Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object),!1))}function k_(n){return e.isCallOrNewExpression(n)||e.isTaggedTemplateExpression(n)||e.isJsxOpeningLikeElement(n)}function N_(n){return k_(n)&&e.forEach(n.typeArguments,Vh),197===n.kind?Py(n.template):e.isJsxOpeningLikeElement(n)?Py(n.attributes):156!==n.kind&&e.forEach(n.arguments,(function(e){Py(e)})),Jn}function I_(e){return N_(e),Xn}function M_(e){return!!e&&(212===e.kind||219===e.kind&&e.isSpread)}function O_(n){return e.findIndex(n,M_)}function R_(e){return!!(16384&e.flags)}function P_(n,t,r,a){var i;void 0===a&&(a=!1);var o=!1,s=Ng(r),c=Ig(r);if(197===n.kind)if(i=t.length,210===n.template.kind){var l=e.last(n.template.templateSpans);o=e.nodeIsMissing(l.literal)||!!l.literal.isUnterminated}else{var u=n.template;e.Debug.assert(14===u.kind),o=!!u.isUnterminated}else if(156===n.kind)i=X_(n,r);else if(e.isJsxOpeningLikeElement(n)){if(o=n.attributes.end===n.end)return!0;i=0===c?t.length:1,s=0===t.length?s:1,c=Math.min(c,1)}else{if(!n.arguments)return e.Debug.assert(196===n.kind),0===Ig(r);i=a?t.length+1:t.length,o=n.arguments.end===n.end;var d=O_(t);if(d>=0)return d>=Ig(r)&&(Mg(r)||d<Ng(r))}if(!Mg(r)&&i>s)return!1;if(o||i>=c)return!0;for(var p=i;p<c;p++){if(131072&am(Ag(r,p),R_).flags)return!1}return!0}function w_(n,t){var r=e.length(n.typeParameters),a=Ds(n.typeParameters);return!t||t.length>=a&&t.length<=r}function F_(e){return B_(e,0,!1)}function G_(e){return B_(e,0,!1)||B_(e,1,!1)}function B_(e,n,t){if(524288&e.flags){var r=Wo(e);if(t||0===r.properties.length&&!r.stringIndexInfo&&!r.numberIndexInfo){if(0===n&&1===r.callSignatures.length&&0===r.constructSignatures.length)return r.callSignatures[0];if(1===n&&1===r.constructSignatures.length&&0===r.callSignatures.length)return r.constructSignatures[0]}}}function V_(n,t,r,a){var i=np(n.typeParameters,n,0,a),o=Og(t),s=r&&(o&&262144&o.flags?r.nonFixingMapper:r.mapper);return $d(s?nu(t,s):t,n,(function(e,n){gp(i.inferences,e,n)})),r||ep(t,n,(function(e,n){gp(i.inferences,e,n,16)})),Vs(n,Lp(i),e.isInJSFile(t.declaration))}function U_(n,t,r,a,i){if(e.isJsxOpeningLikeElement(n))return function(e,n,t,r){var a=gf(n,e),i=vy(e.attributes,a,r,t);return gp(r.inferences,i,a),Lp(r)}(n,t,a,i);if(156!==n.kind){var o=ff(n);if(o){var s=_f(n),c=uu(o,sp(function(n,t){return void 0===t&&(t=0),n&&tp(e.map(n.inferences,op),n.signature,n.flags|t,n.compareTypes)}(s,1))),l=F_(c),u=l&&l.typeParameters?zs(Us(l,l.typeParameters)):c,d=ws(t);gp(i.inferences,u,d,16);var p=np(t.typeParameters,t,i.flags),m=uu(o,s&&s.returnMapper);gp(p.inferences,m,d),i.returnMapper=e.some(p.inferences,ky)?sp(function(n){var t=e.filter(n.inferences,ky);return t.length?tp(e.map(t,op),n.signature,n.flags,n.compareTypes):void 0}(p)):void 0}}var f=Rs(t);if(f){var _=z_(n),g=_?Py(_):Me;gp(i.inferences,g,f)}for(var y=Rg(t),v=y?Math.min(Ng(t)-1,r.length):r.length,h=0;h<v;h++){var b=r[h];if(214!==b.kind){var E=Ag(t,h),T=vy(b,E,i,a);gp(i.inferences,T,E)}}if(y){var S=j_(r,v,r.length,y,i);gp(i.inferences,S,y)}return Lp(i)}function j_(n,t,r,a,i){if(t>=r-1){var o=n[r-1];if(M_(o))return 219===o.kind?Oc(o.type):tm(s=vy(o.expression,a,i,0),(function(e){return!(63176705&e.flags||dd(e)||Cd(e))}))?Oc(yl(s,xe)):s}for(var s,c=[],l=-1,u=t;u<r;u++){var d=yl(a,Vl(u-t)),p=vy(n[u],d,i,0);l<0&&M_(n[u])&&(l=u-t);var m=oy(d,4325372);c.push(m?Gl(p):Td(p))}return l<0?Fc(c):Fc(e.append(c.slice(0,l),Wc(c.slice(l))),l,!0)}function K_(n,t,r,a){for(var i,o=e.isInJSFile(n.declaration),s=n.typeParameters,c=ks(e.map(t,Kl),s,Ds(s),o),l=0;l<t.length;l++){e.Debug.assert(void 0!==s[l],\"Should not call checkTypeArguments with too many type arguments\");var u=Qo(s[l]);if(u){var d=r&&a?function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1)}:void 0,p=a||e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1;i||(i=Jl(s,c));var m=c[l];if(!Du(m,go(uu(u,i),m),r?t[l]:void 0,p,d))return}}return c}function H_(n){if(Pf(n.tagName))return 2;var t=ls(Py(n.tagName));return e.length(_s(t,1))?0:e.length(_s(t,0))?1:2}function W_(n,t,r,a,i,o,s){var c={errors:void 0,skipLogging:!0};if(e.isJsxOpeningLikeElement(n))return function(e,n,t,r,a,i,o){var s=gf(n,e);return Nu(vy(e.attributes,s,void 0,r),s,t,a?e.tagName:void 0,e.attributes,void 0,i,o)}(n,r,a,i,o,s,c)?void 0:(e.Debug.assert(!o||!!c.errors,\"jsx should have errors when reporting errors\"),c.errors||e.emptyArray);var l=Rs(r);if(l&&l!==Me&&196!==n.kind){var u=z_(n),d=void 0;u?(d=Py(u),e.isOptionalChainRoot(u.parent)?d=wd(d):e.isOptionalChain(u.parent)&&(d=Bd(d))):d=Me;var p=o?u||n:void 0,m=e.Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;if(!qu(d,l,a,p,m,s,c))return e.Debug.assert(!o||!!c.errors,\"this parameter should have errors when reporting errors\"),c.errors||e.emptyArray}for(var f=e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1,_=Rg(r),g=_?Math.min(Ng(r)-1,t.length):t.length,y=0;y<g;y++){var v=t[y];if(214!==v.kind){var h=Ag(r,y),b=vy(v,h,void 0,i),E=4&i?Hd(b):b;if(!Nu(E,h,a,o?v:void 0,v,f,s,c))return e.Debug.assert(!o||!!c.errors,\"parameter should have errors when reporting errors\"),S(v,E,h),c.errors||e.emptyArray}}if(_){var T=j_(t,g,t.length,_,void 0);p=o?g<t.length?t[g]:n:void 0;if(!qu(T,_,a,p,f,void 0,c))return e.Debug.assert(!o||!!c.errors,\"rest parameter should have errors when reporting errors\"),S(p,T,_),c.errors||e.emptyArray}return;function S(n,t,r){if(n&&o&&c.errors&&c.errors.length){if(tv(r))return;var i=tv(t);i&&Wu(i,r,a)&&e.addRelatedInfo(c.errors[0],e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await))}}}function z_(n){if(195===n.kind){var t=e.skipOuterExpressions(n.expression);if(193===t.kind||194===t.kind)return t.expression}}function q_(n,t,r){var a=e.createNode(219,n.pos,n.end);return a.parent=n,a.type=t,a.isSpread=r||!1,a}function J_(n){if(197===n.kind){var t=n.template,r=[q_(t,wn||(wn=xc(\"TemplateStringsArray\",0,!0))||je)];return 210===t.kind&&e.forEach(t.templateSpans,(function(e){r.push(e.expression)})),r}if(156===n.kind)return function(n){var t=n.parent,r=n.expression;switch(t.kind){case 244:case 213:return[q_(r,Ci(Yr(t)))];case 155:var a=t.parent;return[q_(r,161===t.parent.kind?Ci(Yr(a)):ge),q_(r,me),q_(r,xe)];case 158:case 160:case 162:case 163:var i=158!==t.kind&&0!==w;return[q_(r,ib(t)),q_(r,ob(t)),q_(r,i?Mc(tb(t)):me)]}return e.Debug.fail()}(n);if(e.isJsxOpeningLikeElement(n))return n.attributes.properties.length>0||e.isJsxOpeningElement(n)&&n.parent.children.length>0?[n.attributes]:e.emptyArray;var a=n.arguments||e.emptyArray,i=a.length;if(i&&M_(a[i-1])&&O_(a)===i-1){var o=a[i-1],s=lt?Py(o.expression):hy(o.expression);if(Cd(s)){var c=ic(s),l=s.target.hasRestElement?c.length-1:-1,u=e.map(c,(function(e,n){return q_(o,e,n===l)}));return e.concatenate(a.slice(0,i-1),u)}}return a}function X_(n,t){switch(n.parent.kind){case 244:case 213:return 1;case 158:return 2;case 160:case 162:case 163:return 0===w||t.parameters.length<=2?2:3;case 155:return 3;default:return e.Debug.fail()}}function Y_(n,t){var r,a,i=e.getSourceFileOfNode(n);if(e.isPropertyAccessExpression(n.expression)){var o=e.getErrorSpanForNode(i,n.expression.name);r=o.start,a=t?o.length:n.end-r}else{var s=e.getErrorSpanForNode(i,n.expression);r=s.start,a=t?s.length:n.end-r}return{start:r,length:a,sourceFile:i}}function Q_(n,t,r,a,i,o){if(e.isCallExpression(n)){var s=Y_(n),c=s.sourceFile,l=s.start,u=s.length;return e.createFileDiagnostic(c,l,u,t,r,a,i,o)}return e.createDiagnosticForNode(n,t,r,a,i,o)}function Z_(n,t,r){for(var a,i=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY,l=r.length,u=0,d=t;u<d.length;u++){var p=d[u],m=Ig(p),f=Ng(p);m<l&&m>s&&(s=m),l<f&&f<c&&(c=f),m<i&&(i=m,a=p),o=Math.max(o,f)}var _,g,y=e.some(t,Mg),v=y?i:i<o?i+\"-\"+o:i,h=O_(r)>-1;l<=o&&h&&l--;var b=y||h?y&&h?e.Diagnostics.Expected_at_least_0_arguments_but_got_1_or_more:y?e.Diagnostics.Expected_at_least_0_arguments_but_got_1:e.Diagnostics.Expected_0_arguments_but_got_1_or_more:e.Diagnostics.Expected_0_arguments_but_got_1;if(a&&Ig(a)>l&&a.declaration){var E=a.declaration.parameters[a.thisParameter?l+1:l];E&&(g=e.createDiagnosticForNode(E,e.isBindingPattern(E.name)?e.Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided:e.Diagnostics.An_argument_for_0_was_not_provided,E.name?e.isBindingPattern(E.name)?void 0:e.idText(e.getFirstIdentifier(E.name)):l))}if(i<l&&l<o)return Q_(n,e.Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments,l,s,c);if(!h&&l<i){var T=Q_(n,b,v,l);return g?e.addRelatedInfo(T,g):T}if(y||h){if(_=e.createNodeArray(r),h&&l){var S=e.elementAt(r,O_(r)+1)||void 0;_=e.createNodeArray(r.slice(o>l&&S?r.indexOf(S):Math.min(o,r.length-1)))}}else _=e.createNodeArray(r.slice(o));_.pos=e.first(_).pos,_.end=e.last(_).end,_.end===_.pos&&_.end++;var x=e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),_,b,v,l);return g?e.addRelatedInfo(x,g):x}function $_(n,r,a,i,o,s){var c,l=197===n.kind,u=156===n.kind,d=e.isJsxOpeningLikeElement(n),p=!a;u||(c=n.typeArguments,(l||d||101!==n.expression.kind)&&e.forEach(c,Vh));var m=a||[];if(function(n,t,r){var a,i,o,s,c=0,l=-1;e.Debug.assert(!t.length);for(var u=0,d=n;u<d.length;u++){var p=d[u],m=p.declaration&&Yr(p.declaration),f=p.declaration&&p.declaration.parent;i&&m!==i?(o=c=t.length,a=f):a&&f===a?o+=1:(a=f,o=c),i=m,M(p)?(s=++l,c++):s=o,t.splice(s,0,r?Eo(p,r):p)}}(r,m,o),!m.length)return p&&Rt.add(Q_(n,e.Diagnostics.Call_target_does_not_contain_any_signatures)),I_(n);var f,_,g,y,v=J_(n),h=1===m.length&&!m[0].typeParameters,b=u||h||!e.some(v,fu)?0:4,E=!!(16&i)&&195===n.kind&&n.arguments.hasTrailingComma;if(m.length>1&&(y=z(m,Gt,E)),y||(y=z(m,Bt,E)),y)return y;if(p)if(f)if(1===f.length||f.length>3){var T,S=f[f.length-1];f.length>3&&(T=e.chainDiagnosticMessages(T,e.Diagnostics.The_last_overload_gave_the_following_error),T=e.chainDiagnosticMessages(T,e.Diagnostics.No_overload_matches_this_call));var x=W_(n,v,S,Bt,0,!0,(function(){return T}));if(x)for(var L=0,C=x;L<C.length;L++){var A=C[L];S.declaration&&f.length>3&&e.addRelatedInfo(A,e.createDiagnosticForNode(S.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Rt.add(A)}else e.Debug.fail(\"No error for last overload signature\")}else{for(var D=[],k=0,N=Number.MAX_VALUE,O=0,R=0,P=function(t){var r=W_(n,v,t,Bt,0,!0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,R+1,m.length,Ca(t))}));r?(r.length<=N&&(N=r.length,O=R),k=Math.max(k,r.length),D.push(r)):e.Debug.fail(\"No error for 3 or fewer overload signatures\"),R++},w=0,F=f;w<F.length;w++){P(F[w])}var G=k>1?D[O]:e.flatten(D);e.Debug.assert(G.length>0,\"No errors reported for 3 or fewer overload signatures\");var B=e.chainDiagnosticMessages(e.map(G,(function(e){return\"string\"==typeof e.messageText?e:e.messageText})),e.Diagnostics.No_overload_matches_this_call),V=e.flatMap(G,(function(e){return e.relatedInformation}));if(e.every(G,(function(e){return e.start===G[0].start&&e.length===G[0].length&&e.file===G[0].file}))){var U=G[0],j=U.file,K=U.start,H=U.length;Rt.add({file:j,start:K,length:H,code:B.code,category:B.category,messageText:B,relatedInformation:V})}else Rt.add(e.createDiagnosticForNodeFromMessageChain(n,B,V))}else if(_)Rt.add(Z_(n,[_],v));else if(g)K_(g,n.typeArguments,!0,s);else{var W=e.filter(r,(function(e){return w_(e,c)}));0===W.length?Rt.add(function(n,t,r){var a=r.length;if(1===t.length){var i=Ds((d=t[0]).typeParameters),o=e.length(d.typeParameters);return e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.Expected_0_type_arguments_but_got_1,i<o?i+\"-\"+o:i,a)}for(var s=-1/0,c=1/0,l=0,u=t;l<u.length;l++){var d,p=Ds((d=u[l]).typeParameters);o=e.length(d.typeParameters);p>a?c=Math.min(c,p):o<a&&(s=Math.max(s,o))}return s!==-1/0&&c!==1/0?e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments,a,s,c):e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.Expected_0_type_arguments_but_got_1,s===-1/0?c:s,a)}(n,r,c)):u?s&&Rt.add(Q_(n,s)):Rt.add(Z_(n,W,v))}return t||!v?I_(n):function(n,t,r,a){return e.Debug.assert(t.length>0),a||1===t.length||t.some((function(e){return!!e.typeParameters}))?function(n,t,r){var a=function(e,n){for(var t=-1,r=-1,a=0;a<e.length;a++){var i=e[a],o=Ng(i);if(Mg(i)||o>=n)return a;o>r&&(r=o,t=a)}return t}(t,void 0===Z?r.length:Z),i=t[a],o=i.typeParameters;if(!o)return i;var s=k_(n)?n.typeArguments:void 0,c=s?js(i,function(e,n,t){var r=e.map(tb);for(;r.length>n.length;)r.pop();for(;r.length<n.length;)r.push(Qo(n[r.length])||xp(t));return r}(s,o,e.isInJSFile(n))):function(n,t,r,a){var i=np(t,r,e.isInJSFile(n)?2:0),o=U_(n,r,a,12,i);return js(r,o)}(n,o,i,r);return t[a]=c,c}(n,t,r):function(n){var t,r=e.mapDefined(n,(function(e){return e.thisParameter}));r.length&&(t=ng(r,r.map(Lg)));for(var a=e.minAndMax(n,eg),i=a.min,o=a.max,s=[],c=function(t){var r=e.mapDefined(n,(function(n){return I(n)?t<n.parameters.length-1?n.parameters[t]:e.last(n.parameters):t<n.parameters.length?n.parameters[t]:void 0}));e.Debug.assert(0!==r.length),s.push(ng(r,e.mapDefined(n,(function(e){return Dg(e,t)}))))},l=0;l<o;l++)c(l);var u=e.mapDefined(n,(function(n){return I(n)?e.last(n.parameters):void 0})),d=0;if(0!==u.length){var p=Oc(Wc(e.mapDefined(n,Bs),2));s.push(tg(u,p)),d|=1}n.some(M)&&(d|=2);return vo(n[0].declaration,void 0,t,s,Zc(n.map(ws)),void 0,i,d)}(t)}(n,m,v,!!a);function z(t,r,a){if(void 0===a&&(a=!1),f=void 0,_=void 0,g=void 0,h){var i=t[0];if(c||!P_(n,v,i,a))return;return W_(n,v,i,r,0,!1,void 0)?void(f=[i]):i}for(var o=0;o<t.length;o++){if(w_(i=t[o],c)&&P_(n,v,i,a)){var s=void 0,l=void 0;if(i.typeParameters){var u=void 0;if(c){if(!(u=K_(i,c,!1))){g=i;continue}}else l=np(i.typeParameters,i,e.isInJSFile(n)?2:0),u=U_(n,i,v,8|b,l),b|=4&l.flags?8:0;if(s=Vs(i,u,e.isInJSFile(i.declaration),l&&l.inferredTypeParameters),Rg(i)&&!P_(n,v,s,a)){_=s;continue}}else s=i;if(!W_(n,v,s,r,b,!1,void 0)){if(b){if(b=0,l)if(s=Vs(i,u=U_(n,i,v,b,l),e.isInJSFile(i.declaration),l&&l.inferredTypeParameters),Rg(i)&&!P_(n,v,s,a)){_=s;continue}if(W_(n,v,s,r,b,!1,void 0)){(f||(f=[])).push(s);continue}}return t[o]=s,s}(f||(f=[])).push(s)}}}}function eg(e){var n=e.parameters.length;return I(e)?n-1:n}function ng(e,n){return tg(e,Wc(n,2))}function tg(n,t){return Kd(e.first(n),t)}function rg(e){return!(!e.typeParameters||!kb(ws(e)))}function ag(e,n,t,r){return Wa(e)||Wa(n)&&!!(262144&e.flags)||!t&&!r&&!(1179648&n.flags)&&xu(e,an)}function ig(n,t,r){if(n.arguments&&w<1){var a=O_(n.arguments);a>=0&&Wt(n.arguments[a],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var i=r_(n.expression);if(i===Re)return Qn;if((i=ls(i))===ge)return I_(n);if(Wa(i))return n.typeArguments&&Wt(n,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),N_(n);var o=_s(i,1);if(o.length){if(!function(n,t){if(!t||!t.declaration)return!0;var r=t.declaration,a=e.getSelectedModifierFlags(r,24);if(!a)return!0;var i=e.getClassLikeDeclarationOfSymbol(r.parent.symbol),o=Yi(r.parent.symbol);if(!Zh(n,i)){var s=e.getContainingClass(n);if(s&&16&a){var c=tb(s);if(function n(t,r){var a=Vi(r);if(!e.length(a))return!1;var i=a[0];if(2097152&i.flags){for(var o=No(i.types),s=0,c=0,l=i.types;c<l.length;c++){var u=l[c];if(!o[s]&&3&e.getObjectFlags(u)){if(u.symbol===t)return!0;if(n(t,u))return!0}s++}return!1}if(i.symbol===t)return!0;return n(t,i)}(r.parent.symbol,c))return!0}return 8&a&&Wt(n,e.Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration,Aa(o)),16&a&&Wt(n,e.Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration,Aa(o)),!1}return!0}(n,o[0]))return I_(n);var s=i.symbol&&e.getClassLikeDeclarationOfSymbol(i.symbol);return s&&e.hasModifier(s,128)?(Wt(n,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),I_(n)):$_(n,o,t,r,0)}var c=_s(i,0);if(c.length){var l=$_(n,c,t,r,0);return K||(l.declaration&&!_g(l.declaration)&&ws(l)!==Me&&Wt(n,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),Rs(l)===Me&&Wt(n,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),l}return sg(n.expression,i,1),I_(n)}function og(n,t){var r,a=0===t,i=iv(n),o=i&&_s(i,t).length>0;if(1048576&n.flags){for(var s=!1,c=0,l=n.types;c<l.length;c++){var u=l[c];if(0!==_s(u,t).length){if(s=!0,r)break}else if(r||(r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Aa(u)),r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Aa(n))),s)break}s||(r=e.chainDiagnosticMessages(void 0,a?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Aa(n))),r||(r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Aa(n)))}else r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Aa(n));return{messageChain:e.chainDiagnosticMessages(r,a?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable),relatedMessage:o?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function sg(n,t,r,a){var i=og(t,r),o=i.messageChain,s=i.relatedMessage,c=e.createDiagnosticForNodeFromMessageChain(n,o);if(s&&e.addRelatedInfo(c,e.createDiagnosticForNode(n,s)),e.isCallExpression(n.parent)){var l=Y_(n.parent,!0),u=l.start,d=l.length;c.start=u,c.length=d}Rt.add(c),cg(t,r,a?e.addRelatedInfo(c,a):c)}function cg(n,t,r){if(n.symbol){var a=ir(n.symbol).originatingImport;if(a&&!e.isImportCall(a)){var i=_s(Ci(ir(n.symbol).target),t);if(!i||!i.length)return;e.addRelatedInfo(r,e.createDiagnosticForNode(a,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}}function lg(n){switch(n.parent.kind){case 244:case 213:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 155:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 158:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 160:case 162:case 163:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function ug(n,t,r){var a=Py(n.expression),i=ls(a);if(i===ge)return I_(n);var o,s,c=_s(i,0),l=_s(i,1).length;if(ag(a,i,c.length,l))return N_(n);if(o=n,(s=c).length&&e.every(s,(function(e){return 0===e.minArgumentCount&&!I(e)&&e.parameters.length<X_(o,e)}))){var u=e.getTextOfNode(n.expression,!1);return Wt(n,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,u),I_(n)}var d=lg(n);if(!c.length){var p=og(i,0),m=e.chainDiagnosticMessages(p.messageChain,d),f=e.createDiagnosticForNodeFromMessageChain(n.expression,m);return p.relatedMessage&&e.addRelatedInfo(f,e.createDiagnosticForNode(n.expression,p.relatedMessage)),Rt.add(f),cg(i,0,f),I_(n)}return $_(n,c,t,r,0,d)}function dg(n,t){var r=Uf(n),a=r&&Wr(r),i=a&&cr(a,T.Element,788968),o=i&&J.symbolToEntityName(i,788968,n),s=e.createFunctionTypeNode(void 0,[e.createParameter(void 0,void 0,void 0,\"props\",void 0,J.typeToTypeNode(t,n))],o?e.createTypeReferenceNode(o,void 0):e.createKeywordTypeNode(124)),c=Xt(1,\"props\");return c.type=t,vo(s,void 0,void 0,[c],i?Yi(i):ge,void 0,1,0)}function pg(n,t,r){if(Pf(n.tagName)){var a=Wf(n),i=dg(n,a);return ku(vy(n.attributes,gf(i,n),void 0,0),a,n.tagName,n.attributes),i}var o=Py(n.tagName),s=ls(o);if(s===ge)return I_(n);var c=function n(t,r){if(4&t.flags)return[Jn];if(128&t.flags){var a=Hf(t,r);return a?[dg(r,a)]:(Wt(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,\"JSX.\"+T.IntrinsicElements),e.emptyArray)}var i=ls(t),o=_s(i,1);return 0===o.length&&(o=_s(i,0)),0===o.length&&1048576&i.flags&&(o=Lo(e.map(i.types,(function(e){return n(e,r)})))),o}(o,n);return ag(o,s,c.length,0)?N_(n):0===c.length?(Wt(n.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(n.tagName)),I_(n)):$_(n,c,t,r,0)}function mg(n,t,r){switch(n.kind){case 195:return function(n,t,r){if(101===n.expression.kind){var a=Wm(n.expression);if(Wa(a)){for(var i=0,o=n.arguments;i<o.length;i++){Py(o[i])}return Jn}if(a!==ge){var s=e.getEffectiveBaseTypeNode(e.getContainingClass(n));if(s)return $_(n,Gi(a,s.typeArguments,s),t,r,0)}return N_(n)}var c,l=Py(n.expression);if(e.isCallChain(n)){var u=Ud(l,n.expression);c=u===l?0:e.isOutermostOptionalChain(n)?8:4,l=u}else c=0;if((l=c_(l,n.expression,s_))===Re)return Qn;var d=ls(l);if(d===ge)return I_(n);var p=_s(d,0),m=_s(d,1).length;if(ag(l,d,p.length,m))return l!==ge&&n.typeArguments&&Wt(n,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),N_(n);if(!p.length){if(m)Wt(n,e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new,Aa(l));else{var f=void 0;if(1===n.arguments.length){var _=e.getSourceFileOfNode(n).text;e.isLineBreak(_.charCodeAt(e.skipTrivia(_,n.expression.end,!0)-1))&&(f=e.createDiagnosticForNode(n.expression,e.Diagnostics.It_is_highly_likely_that_you_are_missing_a_semicolon))}sg(n.expression,d,0,f)}return I_(n)}return 8&r&&!n.typeArguments&&p.some(rg)?(Dy(n,r),Yn):p.some((function(n){return e.isInJSFile(n.declaration)&&!!e.getJSDocClassTag(n.declaration)}))?(Wt(n,e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new,Aa(l)),I_(n)):$_(n,p,t,r,c)}(n,t,r);case 196:return ig(n,t,r);case 197:return function(e,n,t){var r=Py(e.tag),a=ls(r);if(a===ge)return I_(e);var i=_s(a,0),o=_s(a,1).length;return ag(r,a,i.length,o)?N_(e):i.length?$_(e,i,n,t,0):(sg(e.tag,a,0),I_(e))}(n,t,r);case 156:return ug(n,t,r);case 266:case 265:return pg(n,t,r)}throw e.Debug.assertNever(n,\"Branch in 'resolveSignature' should be unreachable.\")}function fg(e,n,t){var r=or(e),a=r.resolvedSignature;if(a&&a!==Yn&&!n)return a;r.resolvedSignature=Yn;var i=mg(e,n,t||0);return i!==Yn&&(r.resolvedSignature=ct===lt?i:a),i}function _g(n){if(!n||!e.isInJSFile(n))return!1;var t=e.isFunctionDeclaration(n)||e.isFunctionExpression(n)?n:e.isVariableDeclaration(n)&&n.initializer&&e.isFunctionExpression(n.initializer)?n.initializer:void 0;if(t){if(e.getJSDocClassTag(n))return!0;var r=Yr(t);return!!r&&e.hasEntries(r.members)}return!1}function gg(n,t){if(t&&(e.hasEntries(t.exports)||e.hasEntries(t.members))){var r=ir(t);if(!r.inferredClassSymbol||!r.inferredClassSymbol.has(\"\"+L(n))){var a=Yt(n)?n:$t(n);return a.exports=a.exports||e.createSymbolTable(),a.members=a.members||e.createSymbolTable(),a.flags|=32&t.flags,e.hasEntries(t.exports)&&rr(a.exports,t.exports),e.hasEntries(t.members)&&rr(a.members,t.members),(r.inferredClassSymbol||(r.inferredClassSymbol=e.createMap())).set(\"\"+L(a),a),a}return r.inferredClassSymbol.get(\"\"+L(n))}}function yg(n,t){Jb(n,n.typeArguments)||Xb(n.arguments);var r=fg(n,void 0,t);if(r===Yn)return Pe;if(101===n.expression.kind)return Me;if(196===n.kind){var a=r.declaration;if(a&&161!==a.kind&&165!==a.kind&&170!==a.kind&&!e.isJSDocConstructSignature(a)&&!_g(a))return K&&Wt(n,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),me}if(e.isInJSFile(n)&&Eg(n))return function(e){var n=wr(e,e);if(n){var t=Vr(n);if(t)return Ci(t)}return me}(n.arguments[0]);var i=ws(r);if(12288&i.flags&&vg(n))return Ul(e.walkUpParenthesizedExpressions(n.parent));if(195===n.kind&&225===n.parent.kind&&16384&i.flags&&Ps(r))if(e.isDottedName(n.expression)){if(!Em(n)){var o=Wt(n.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);bm(n.expression,o)}}else Wt(n.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);if(e.isInJSFile(n)){var s=e.getDeclarationOfExpando(n);if(s){var c=Yr(s);if(c&&e.hasEntries(c.exports)){var l=pa(c,c.exports,e.emptyArray,e.emptyArray,void 0,void 0);return l.objectFlags|=16384,Zc([i,l])}}}return i}function vg(n){if(!e.isCallExpression(n))return!1;var t=n.expression;if(e.isPropertyAccessExpression(t)&&\"for\"===t.name.escapedText&&(t=t.expression),!e.isIdentifier(t)||\"Symbol\"!==t.escapedText)return!1;var r=Lc(!1);return!!r&&r===ur(t,\"Symbol\",111551,void 0,void 0,!1)}function hg(n){if(Xb(n.arguments)||function(n){if(F===e.ModuleKind.ES2015)return pE(n,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd);if(n.typeArguments)return pE(n,e.Diagnostics.Dynamic_import_cannot_have_type_arguments);var t=n.arguments;if(1!==t.length)return pE(n,e.Diagnostics.Dynamic_import_must_have_one_specifier_as_an_argument);if(Hb(t),e.isSpreadElement(t[0]))return pE(t[0],e.Diagnostics.Specifier_of_dynamic_import_cannot_be_spread_element)}(n),0===n.arguments.length)return Ug(n,me);for(var t=n.arguments[0],r=hy(t),a=1;a<n.arguments.length;++a)hy(n.arguments[a]);(32768&r.flags||65536&r.flags||!xu(r,Se))&&Wt(t,e.Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0,Aa(r));var i=wr(n,t);if(i){var o=Ur(i,t,!0,!1);if(o)return Ug(n,bg(Ci(o),o,i))}return Ug(n,me)}function bg(n,t,r){if(G&&n&&n!==ge){var a=n;if(!a.syntheticType)if(Tr(e.find(r.declarations,e.isSourceFile),r,!1)){var i=e.createSymbolTable(),o=Xt(2097152,\"default\");o.nameType=Vl(\"default\"),o.target=Dr(t),i.set(\"default\",o);var s=Xt(2048,\"__type\"),c=pa(s,i,e.emptyArray,e.emptyArray,void 0,void 0);s.type=c,a.syntheticType=Of(n)?Ml(n,c,s,0,!1):c}else a.syntheticType=n;return a.syntheticType}return n}function Eg(n){if(!e.isRequireCall(n,!0))return!1;if(!e.isIdentifier(n.expression))return e.Debug.fail();var t=ur(n.expression,n.expression.escapedText,111551,void 0,void 0,!0);if(t===ee)return!0;if(2097152&t.flags)return!1;var r=16&t.flags?243:3&t.flags?241:0;if(0!==r){var a=e.getDeclarationOfKind(t,r);return!!a&&!!(8388608&a.flags)}return!1}function Tg(n){return function(n){if(n.questionDotToken||32&n.flags)return pE(n.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain);return!1}(n)||Jb(n,n.typeArguments),w<2&&Vb(n,131072),ws(fg(n))}function Sg(n,r,a,i){var o=Py(a,i);if(e.isConstTypeReference(r))return function n(t){switch(t.kind){case 10:case 14:case 8:case 9:case 105:case 90:case 191:case 192:return!0;case 199:return n(t.expression);case 206:var r=t.operator,a=t.operand;return 40===r&&(8===a.kind||9===a.kind)||39===r&&8===a.kind;case 193:case 194:var i=t.expression;if(e.isIdentifier(i)){var o=nb(i);return o&&2097152&o.flags&&(o=kr(o)),!!(o&&384&o.flags&&1===Wi(o))}}return!1}(a)||Wt(a,e.Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals),Gl(o);Vh(r),o=Hd(Ed(o));var s=Kl(r);t&&s!==ge&&(Cu(s,Xd(o))||Fu(o,s,n,e.Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first));return s}function xg(n){return function(n){var t=n.name.escapedText;switch(n.keywordToken){case 98:if(\"target\"!==t)return pE(n.name,e.Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,n.name.escapedText,e.tokenToString(n.keywordToken),\"target\");break;case 95:if(\"meta\"!==t)pE(n.name,e.Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,n.name.escapedText,e.tokenToString(n.keywordToken),\"meta\")}}(n),98===n.keywordToken?function(n){var t=e.getNewTargetContainer(n);return t?161===t.kind?Ci(Yr(t.parent)):Ci(Yr(t)):(Wt(n,e.Diagnostics.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor,\"new.target\"),ge)}(n):95===n.keywordToken?function(n){F!==e.ModuleKind.ESNext&&F!==e.ModuleKind.System&&Wt(n,e.Diagnostics.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system);var t=e.getSourceFileOfNode(n);return e.Debug.assert(!!(2097152&t.flags),\"Containing file is missing import meta node flag.\"),e.Debug.assert(!!t.externalModuleIndicator,\"Containing file should be a module.\"),\"meta\"===n.name.escapedText?function(){return Fn||(Fn=xc(\"ImportMeta\",0,!0))||je}():ge}(n):e.Debug.assertNever(n.keywordToken)}function Lg(n){var t=Ci(n);if(B){var r=n.valueDeclaration;if(r&&e.hasInitializer(r))return Pd(t)}return t}function Cg(e,n){var t=e.parameters.length-(I(e)?1:0);if(n<t)return e.parameters[n].escapedName;var r=e.parameters[t]||de,a=Ci(r);if(Cd(a)){var i=a.target.associatedNames,o=n-t;return i&&i[o]||r.escapedName+\"_\"+o}return r.escapedName}function Ag(e,n){return Dg(e,n)||me}function Dg(e,n){var t=e.parameters.length-(I(e)?1:0);if(n<t)return Lg(e.parameters[n]);if(I(e)){var r=Ci(e.parameters[t]),a=n-t;if(!Cd(r)||r.target.hasRestElement||a<ic(r).length)return yl(r,Vl(a))}}function kg(e,n){var t=Ng(e),r=Og(e),a=t-(r?1:0);if(r&&n===a)return r;for(var i=[],o=[],s=n;s<a;s++)i.push(Ag(e,s)),o.push(Cg(e,s));r&&(i.push(yl(r,xe)),o.push(Cg(e,a)));var c=Ig(e);return Fc(i,c<n?0:c-n,!!r,!1,o)}function Ng(e){var n=e.parameters.length;if(I(e)){var t=Ci(e.parameters[n-1]);if(Cd(t))return n+ic(t).length-1}return n}function Ig(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);if(Cd(n)){var t=n.target.minLength;if(t>0)return e.parameters.length-1+t}}return e.minArgumentCount}function Mg(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);return!Cd(n)||n.target.hasRestElement}return!1}function Og(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);return Cd(n)?function(e){var n=Ad(e);return n&&Oc(n)}(n):n}}function Rg(e){var n=Og(e);return!n||dd(n)||Wa(n)?void 0:n}function Pg(e){return wg(e,Oe)}function wg(e,n){return e.parameters.length>0?Ag(e,0):n}function Fg(n,t){(n.typeParameters=t.typeParameters,t.thisParameter)&&((!(i=n.thisParameter)||i.valueDeclaration&&!i.valueDeclaration.type)&&(i||(n.thisParameter=Kd(t.thisParameter,void 0)),Gg(n.thisParameter,Ci(t.thisParameter))));for(var r=n.parameters.length-(I(n)?1:0),a=0;a<r;a++){var i=n.parameters[a];if(!e.getEffectiveTypeAnnotationNode(i.valueDeclaration))Gg(i,Ag(t,a))}I(n)&&(!Yt(i=e.last(n.parameters))&&e.getEffectiveTypeAnnotationNode(i.valueDeclaration)||Gg(i,kg(t,r)))}function Gg(n,t){var r=ir(n);if(!r.type){r.type=t;var a=n.valueDeclaration;75!==a.name.kind&&(r.type===ye&&(r.type=di(a.name)),function n(t){for(var r=0,a=t.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||(75===i.name.kind?ir(Yr(i)).type=Za(i):n(i.name))}}(a.name))}}function Bg(e){var n=Ac(!0);return n!==ze?tc(n,[e=iv(e)||ye]):ye}function Vg(e){var n,t=(n=!0,Sn||(Sn=xc(\"PromiseLike\",1,n))||ze);return t!==ze?tc(t,[e=iv(e)||ye]):ye}function Ug(n,t){var r=Bg(t);return r===ye?(Wt(n,e.isImportCall(n)?e.Diagnostics.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:e.Diagnostics.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option),ge):(Dc(!0)||Wt(n,e.isImportCall(n)?e.Diagnostics.A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option),r)}function jg(n,t){if(!n.body)return ge;var r,a,i,o=e.getFunctionFlags(n),s=0!=(2&o),c=0!=(1&o),l=Me;if(222!==n.body.kind)r=hy(n.body,t&&-9&t),s&&(r=av(r,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member));else if(c){var u=Jg(n,t);u?u.length>0&&(r=Wc(u,2)):l=Oe;var d=function(n,t){var r=[],a=[],i=0!=(2&e.getFunctionFlags(n));return e.forEachYieldExpression(n.body,(function(n){var o,s=n.expression?Py(n.expression,t):he;if(e.pushIfUnique(r,Hg(n,s,me,i)),n.asteriskToken){var c=Qv(s,i?19:17,n.expression);o=c&&c.nextType}else o=ff(n);o&&e.pushIfUnique(a,o)})),{yieldTypes:r,nextTypes:a}}(n,t),p=d.yieldTypes,m=d.nextTypes;a=e.some(p)?Wc(p,2):void 0,i=e.some(m)?Zc(m):void 0}else{var f=Jg(n,t);if(!f)return 2&o?Ug(n,Oe):Oe;if(0===f.length)return 2&o?Ug(n,Me):Me;r=Wc(f,2)}if(r||a||i){var _=bf(n);if(_||(a&&Zd(n,a,1),r&&Zd(n,r),i&&Zd(n,i)),r&&hd(r)||a&&hd(a)||i&&hd(i)){var g=_?_===Ns(n)?c?void 0:r:pf(ws(_),n):void 0;c?(a=Ld(a,g,0,s),r=Ld(r,g,1,s),i=Ld(i,g,2,s)):r=function(e,n,t){return e&&hd(e)&&(e=xd(e,n?t?rv(n):n:void 0)),e}(r,g,s)}a&&(a=Xd(a)),r&&(r=Xd(r)),i&&(i=Xd(i))}return c?Kg(a||Oe,r||l,i||Zm(2,n)||ye,s):s?Bg(r||l):r||l}function Kg(e,n,t,r){var a=r?at:it,i=a.getGlobalGeneratorType(!1);if(e=a.resolveIterationType(e,void 0)||ye,n=a.resolveIterationType(n,void 0)||ye,t=a.resolveIterationType(t,void 0)||ye,i===ze){var o=a.getGlobalIterableIteratorType(!1),s=o!==ze?nh(o,a):void 0,c=s?s.returnType:me,l=s?s.nextType:ve;return xu(n,c)&&xu(l,t)?o!==ze?Ic(o,[e]):(a.getGlobalIterableIteratorType(!0),je):(a.getGlobalGeneratorType(!0),je)}return Ic(i,[e,n,t])}function Hg(n,t,r,a){var i=n.expression||n,o=n.asteriskToken?zv(a?19:17,t,r,i):t;return a?iv(o,i,n.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):o}function Wg(e,n,t,r){var a=0;if(r){for(var i=n;i<t.length;i++)a|=h.get(t[i])||32768;for(i=e;i<n;i++)a&=~(h.get(t[i])||0);for(i=0;i<e;i++)a|=h.get(t[i])||32768}else{for(i=e;i<n;i++)a|=v.get(t[i])||128;for(i=0;i<e;i++)a&=~(v.get(t[i])||0)}return a}function zg(n){var t=or(n);return void 0!==t.isExhaustive?t.isExhaustive:t.isExhaustive=function(n){if(203===n.expression.kind){var t=Oy(n.expression.expression),r=Wg(0,0,em(n),!0);return!!(131072&am(ts(t)||t,(function(e){return(Vp(e)&r)===r})).flags)}var a=Oy(n.expression);if(!bd(a))return!1;var i=$p(n);if(!i.length||e.some(i,vd))return!1;return o=om(a,Gl),s=i,1048576&o.flags?!e.forEach(o.types,(function(n){return!e.contains(s,n)})):e.contains(s,o);var o,s}(n)}function qg(e){return e.endFlowNode&&Sm(e.endFlowNode)}function Jg(n,t){var r=e.getFunctionFlags(n),a=[],i=qg(n),o=!1;if(e.forEachReturnStatement(n.body,(function(s){var c=s.expression;if(c){var l=hy(c,t&&-9&t);2&r&&(l=av(l,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)),131072&l.flags&&(o=!0),e.pushIfUnique(a,l)}else i=!0})),0!==a.length||i||!o&&!function(e){switch(e.kind){case 200:case 201:return!0;case 160:return 192===e.parent.kind;default:return!1}}(n))return!(B&&a.length&&i)||_g(n)&&a.some((function(e){return e.symbol===n.symbol}))||e.pushIfUnique(a,ve),a}function Xg(n,r){if(t){var a=e.getFunctionFlags(n),i=r&&Zg(r,a);if((!i||!oy(i,16385))&&159!==n.kind&&!e.nodeIsMissing(n.body)&&222===n.body.kind&&qg(n)){var o=512&n.flags;if(i&&131072&i.flags)Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point);else if(i&&!o)Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value);else if(i&&B&&!xu(ve,i))Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);else if(P.noImplicitReturns){if(!i){if(!o)return;if(yh(n,ws(Ns(n))))return}Wt(e.getEffectiveReturnTypeNode(n)||n,e.Diagnostics.Not_all_code_paths_return_a_value)}}}}function Yg(n,t){if(e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n)),jh(n),t&&4&t&&fu(n)){if(!e.getEffectiveReturnTypeNode(n)&&gu(n)){var r=or(n);if(r.contextFreeType)return r.contextFreeType;var a=jg(n,t),i=vo(void 0,void 0,void 0,e.emptyArray,a,void 0,0,0),o=pa(n.symbol,O,[i],e.emptyArray,void 0,void 0);return o.objectFlags|=1048576,r.contextFreeType=o}return qe}qb(n)||200!==n.kind||$b(n);var s=Ci(Xr(n.symbol));return Wa(s)?s:(Qg(n,t),s)}function Qg(n,t){var r=or(n);if(!(1024&r.flags)){var a=Ef(n);if(!(1024&r.flags)){if(r.flags|=1024,a){var i=Ci(Xr(n.symbol));if(Wa(i))return;var o=_s(i,0)[0];if(fu(n)){var s=_f(n);t&&2&t&&function(n,t,r){for(var a=n.parameters.length-(I(n)?1:0),i=0;i<a;i++){var o=n.parameters[i].valueDeclaration;if(o.type){var s=e.getEffectiveTypeAnnotationNode(o);s&&gp(r.inferences,Kl(s),Ag(t,i))}}var c=Og(t);if(c&&262144&c.flags){Fg(n,nu(t,r.nonFixingMapper));var l=Ng(t)-1;gp(r.inferences,kg(n,l),c)}}(o,a,s),Fg(o,s?nu(a,s.mapper):a)}if(!Fs(n)&&!o.resolvedReturnType){var c=jg(n,t);o.resolvedReturnType||(o.resolvedReturnType=c)}}By(n)}}}function Zg(e,n){var t=!!(2&n);return e&&!!(1&n)?mh(1,e,t)||ge:e&&t?iv(e)||ge:e}function $g(e,n,t,r){if(void 0===r&&(r=!1),!xu(n,Ue)){var a=r&&tv(n);return Jt(e,!!a&&xu(a,Ue),t),!1}return!0}function ey(n){if(!e.isCallExpression(n))return!1;if(!e.isBindableObjectDefinePropertyCall(n))return!1;var t=hy(n.arguments[2]);if(Ha(t,\"value\")){var r=ms(t,\"writable\"),a=r&&Ci(r);if(!a||a===Ce||a===Ae)return!0;if(r&&r.valueDeclaration&&e.isPropertyAssignment(r.valueDeclaration)){var i=Py(r.valueDeclaration.initializer);if(i===Ce||i===Ae)return!0}return!1}return!ms(t,\"set\")}function ny(n){return!!(8&e.getCheckFlags(n)||4&n.flags&&64&e.getDeclarationModifierFlagsFromSymbol(n)||3&n.flags&&2&$f(n)||98304&n.flags&&!(65536&n.flags)||8&n.flags||e.some(n.declarations,ey))}function ty(n,t){if(ny(t)){if(4&t.flags&&(193===n.kind||194===n.kind)&&103===n.expression.kind){var r=e.getContainingFunction(n);return!r||161!==r.kind||(!t.valueDeclaration||!(r.parent===t.valueDeclaration.parent||r===t.valueDeclaration.parent))}return!0}return!1}function ry(n){if(193===n.kind||194===n.kind){var t=e.skipParentheses(n.expression);if(75===t.kind){var r=or(t).resolvedSymbol;if(2097152&r.flags){var a=hr(r);return!!a&&255===a.kind}}}return!1}function ay(n,t,r){var a=e.skipOuterExpressions(n,3);return 75!==a.kind&&193!==a.kind&&194!==a.kind?(Wt(n,t),!1):!(32&a.flags)||(Wt(n,r),!1)}function iy(e){return oy(e,2112)?sy(e,3)||oy(e,296)?Ue:Le:xe}function oy(e,n){if(e.flags&n&-131073||131072&n&&Ho(e))return!0;if(3145728&e.flags)for(var t=0,r=e.types;t<r.length;t++){if(oy(r[t],n))return!0}return!1}function sy(e,n,t){return!!(e.flags&n)||!(t&&114691&e.flags)&&(!!(296&n)&&xu(e,xe)||!!(2112&n)&&xu(e,Le)||!!(132&n)&&xu(e,Se)||!!(528&n)&&xu(e,Ne)||!!(16384&n)&&xu(e,Me)||!!(131072&n)&&xu(e,Oe)||!!(65536&n)&&xu(e,Ee)||!!(32768&n)&&xu(e,ve)||!!(4096&n)&&xu(e,Ie)||!!(67108864&n)&&xu(e,Ge))}function cy(n,t,r){return 1048576&n.flags?e.every(n.types,(function(e){return cy(e,t,r)})):sy(n,t,r)}function ly(n){return!!(16&e.getObjectFlags(n))&&!!n.symbol&&uy(n.symbol)}function uy(e){return 0!=(128&e.flags)}function dy(n,t,r,a,i){void 0===i&&(i=!1);var o=n.properties,s=o[r];if(279===s.kind||280===s.kind){var c=s.name,l=el(c);if(io(l)){var u=ms(t,uo(l));u&&(S_(u,s,i),n_(s,!1,t,u))}var d=Xa(s,yl(t,l,c));return my(280===s.kind?s:s.initializer,d)}if(281===s.kind){if(!(r<o.length-1)){w<99&&Vb(s,4);var p=[];if(a)for(var m=0,f=a;m<f.length;m++){var _=f[m];e.isSpreadAssignment(_)||p.push(_.name)}d=Ja(t,p,t.symbol);return Hb(a,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),my(s.expression,d)}Wt(s,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern)}else Wt(s,e.Diagnostics.Property_assignment_expected)}function py(n,t,r,a,i){var o=n.elements,s=o[r];if(214!==s.kind){if(212!==s.kind){var c=Vl(r);if(fd(t)){var l=Tf(s)?8:0,u=vl(t,c,q_(s,c),l)||ge;return my(s,Xa(s,Tf(s)?Up(u,524288):u),i)}return my(s,a,i)}if(r<o.length-1)Wt(s,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);else{var d=s.expression;if(208!==d.kind||62!==d.operatorToken.kind)return Hb(n.elements,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),my(d,rm(t,Cd)?om(t,(function(e){return Gc(e,r)})):Oc(a),i);Wt(d.operatorToken,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}}}function my(n,t,r,a){var i;if(280===n.kind){var o=n;o.objectAssignmentInitializer&&(!B||32768&Id(Py(o.objectAssignmentInitializer))||(t=Up(t,524288)),gy(o.name,o.equalsToken,o.objectAssignmentInitializer,r)),i=n.name}else i=n;return 208===i.kind&&62===i.operatorToken.kind&&(_y(i,r),i=i.left),192===i.kind?function(e,n,t){var r=e.properties;if(B&&0===r.length)return l_(n,e);for(var a=0;a<r.length;a++)dy(e,n,a,r,t);return n}(i,t,a):191===i.kind?function(e,n,t){var r=e.elements;w<2&&P.downlevelIteration&&Vb(e,512);for(var a=zv(65,n,ve,e)||ge,i=0;i<r.length;i++)py(e,n,i,a,t);return n}(i,t,r):function(n,t,r){var a=Py(n,r),i=281===n.parent.kind?e.Diagnostics.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:e.Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,o=281===n.parent.kind?e.Diagnostics.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:e.Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access;ay(n,i,o)&&ku(t,a,n,n);return t}(i,t,r)}function fy(e,n){return 0!=(98304&n.flags)||Cu(e,n)}function _y(n,t){return e.isInJSFile(n)&&e.getAssignedExpandoInitializer(n)?Py(n.right,t):(function(n){var t=n.left,r=n.operatorToken,a=n.right;60===r.kind&&(!e.isBinaryExpression(t)||56!==t.operatorToken.kind&&55!==t.operatorToken.kind||pE(t,e.Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses,e.tokenToString(t.operatorToken.kind),e.tokenToString(r.kind)),!e.isBinaryExpression(a)||56!==a.operatorToken.kind&&55!==a.operatorToken.kind||pE(a,e.Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses,e.tokenToString(a.operatorToken.kind),e.tokenToString(r.kind)))}(n),gy(n.left,n.operatorToken,n.right,t,n))}function gy(n,r,a,i,o){var s,c=r.kind;if(62===c&&(192===n.kind||191===n.kind))return my(n,Py(a,i),i,103===a.kind);s=55===c||56===c||60===c?jv(n,i):Py(n,i);var l,u,d=Py(a,i);switch(c){case 41:case 42:case 65:case 66:case 43:case 67:case 44:case 68:case 40:case 64:case 47:case 69:case 48:case 70:case 49:case 71:case 51:case 73:case 52:case 74:case 50:case 72:if(s===Re||d===Re)return Re;s=l_(s,n),d=l_(d,a);var p=void 0;if(528&s.flags&&528&d.flags&&void 0!==(p=function(e){switch(e){case 51:case 73:return 56;case 52:case 74:return 37;case 50:case 72:return 55;default:return}}(r.kind)))return Wt(o||r,e.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead,e.tokenToString(r.kind),e.tokenToString(p)),xe;var m,f=$g(n,s,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,!0),_=$g(a,d,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,!0);if(sy(s,3)&&sy(d,3)||!oy(s,2112)&&!oy(d,2112))m=xe;else if(v(s,d)){switch(c){case 49:case 71:T()}m=Le}else T(v),m=ge;return f&&_&&b(m),m;case 39:case 63:if(s===Re||d===Re)return Re;sy(s,132)||sy(d,132)||(s=l_(s,n),d=l_(d,a));var g=void 0;if(sy(s,296,!0)&&sy(d,296,!0)?g=xe:sy(s,2112,!0)&&sy(d,2112,!0)?g=Le:sy(s,132,!0)||sy(d,132,!0)?g=Se:(Wa(s)||Wa(d))&&(g=s===ge||d===ge?ge:me),g&&!h(c))return g;if(!g){return T((function(e,n){return sy(e,2543)&&sy(n,2543)})),me}return 63===c&&b(g),g;case 29:case 31:case 32:case 33:return h(c)&&(s=Ed(l_(s,n)),d=Ed(l_(d,a)),E((function(e,n){return Cu(e,n)||Cu(n,e)||xu(e,Ue)&&xu(n,Ue)}))),Ne;case 34:case 35:case 36:case 37:return E((function(e,n){return fy(e,n)||fy(n,e)})),Ne;case 97:return function(n,t,r,a){return r===Re||a===Re?Re:(!Wa(r)&&cy(r,131068)&&Wt(n,e.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter),Wa(a)||cb(a)||Su(a,an)||Wt(t,e.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type),Ne)}(n,a,s,d);case 96:return function(n,t,r,a){return r===Re||a===Re?Re:(r=l_(r,n),a=l_(a,t),Cu(r,Se)||sy(r,12584)||Wt(n,e.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol),cy(a,126091264)||Wt(t,e.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter),Ne)}(n,a,s,d);case 55:return 4194304&Vp(s)?Wc([(u=B?s:Ed(d),om(u,Od)),d]):s;case 56:return 8388608&Vp(s)?Wc([Md(s),d],2):s;case 60:return 262144&Vp(s)?Wc([wd(s),d],2):s;case 62:var y=e.isBinaryExpression(n.parent)?e.getAssignmentDeclarationKind(n.parent):0;return function(n,t){if(2===n)for(var r=0,a=zo(t);r<a.length;r++){var i=a[r],o=Ci(i);if(o.symbol&&32&o.symbol.flags){var s=i.escapedName,c=ur(i.valueDeclaration,s,788968,void 0,s,!1);if(c&&c.declarations.some(e.isJSDocTypedefTag))return pE(c.declarations[0],e.Diagnostics.Duplicate_identifier_0,e.unescapeLeadingUnderscores(s)),pE(i.valueDeclaration,e.Diagnostics.Duplicate_identifier_0,e.unescapeLeadingUnderscores(s))}}}(y,d),function(t){switch(t){case 2:return!0;case 1:case 5:case 6:case 3:case 4:var r=Yr(n),i=e.getAssignedExpandoInitializer(a);return i&&e.isObjectLiteralExpression(i)&&r&&e.hasEntries(r.exports);default:return!1}}(y)?(524288&d.flags&&(2===y||6===y||Vu(d)||Bp(d)||1&e.getObjectFlags(d))||b(d),s):(b(d),Hd(d));case 27:return!P.allowUnreachableCode&&function n(t){switch((t=e.skipParentheses(t)).kind){case 75:case 10:case 13:case 197:case 210:case 14:case 8:case 9:case 105:case 90:case 99:case 145:case 200:case 213:case 201:case 191:case 192:case 203:case 217:case 265:case 264:return!0;case 209:return n(t.whenTrue)&&n(t.whenFalse);case 208:return!e.isAssignmentOperator(t.operatorToken.kind)&&(n(t.left)&&n(t.right));case 206:case 207:switch(t.operator){case 53:case 39:case 40:case 54:return!0}return!1;case 204:case 198:case 216:default:return!1}}(n)&&(75!==(l=a).kind||\"eval\"!==l.escapedText)&&Wt(n,e.Diagnostics.Left_side_of_comma_operator_is_unused_and_has_no_side_effects),d;default:return e.Debug.fail()}function v(e,n){return sy(e,2112)&&sy(n,2112)}function h(t){var r=oy(s,12288)?n:oy(d,12288)?a:void 0;return!r||(Wt(r,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(t)),!1)}function b(r){t&&e.isAssignmentOperator(c)&&(!ay(n,e.Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)||e.isIdentifier(n)&&\"exports\"===e.unescapeLeadingUnderscores(n.escapedText)||ku(r,s,n,a))}function E(e){return!e(s,d)&&(T(e),!0)}function T(n){var t,a=!1,i=o||r;if(n){var c=iv(s),l=iv(d);a=!(c===s&&l===d)&&!(!c||!l)&&n(c,l)}var u=s,p=d;!a&&n&&(t=function(e,n,t){var r=e,a=n,i=Ed(e),o=Ed(n);t(i,o)||(r=i,a=o);return[r,a]}(s,d,n),u=t[0],p=t[1]);var m=Da(u,p),f=m[0],_=m[1];(function(n,t,a,i){var o;switch(r.kind){case 36:case 34:o=\"false\";break;case 37:case 35:o=\"true\"}if(o)return Jt(n,t,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap,o,a,i);return})(i,a,f,_)||Jt(i,a,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2,e.tokenToString(r.kind),f,_)}}function yy(n){t&&(8192&n.flags&&!function(n){for(var t=n,r=n.parent;r;){if(e.isFunctionLike(r)&&t===r.body)return!1;if(e.isClassLike(t))return!0;t=r,r=r.parent}return!1}(n)||uE(n,e.Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body),Qm(n)&&Wt(n,e.Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer));var r=e.getContainingFunction(n);if(!r)return me;var a=e.getFunctionFlags(r);if(!(1&a))return me;var i=0!=(2&a);n.asteriskToken&&(i&&w<99&&Vb(n,53248),!i&&w<2&&P.downlevelIteration&&Vb(n,256));var o=Fs(r),s=o&&fh(o,i),c=s&&s.yieldType||me,l=s&&s.nextType||me,u=i?iv(l)||me:l,d=n.expression?Py(n.expression):he,p=Hg(n,d,u,i);return o&&p&&ku(p,c,n.expression||n,n.expression),n.asteriskToken?Jv(i?19:17,1,d,n.expression)||me:o?mh(2,o,i)||me:Zm(2,r)||me}function vy(n,t,r,a){var i=function(n){return 272!==n.kind||e.isJsxSelfClosingElement(n.parent)?n:n.parent.parent}(n),o=i.contextualType,s=i.inferenceContext;i.contextualType=t,i.inferenceContext=r;var c=Py(n,1|a|(r?2:0)),l=oy(c,2944)&&Ty(c,pf(t,n))?Gl(c):c;return i.contextualType=o,i.inferenceContext=s,l}function hy(e,n){var t=or(e);if(!t.resolvedType){if(n&&0!==n)return Py(e,n);var r=ct;ct=lt,t.resolvedType=Py(e,n),ct=r}return t.resolvedType}function by(n){return 198===(n=e.skipParentheses(n)).kind||216===n.kind}function Ey(n){var t=e.getEffectiveInitializer(n),r=Oy(t,!0),a=e.isParameter(n)&&189===n.name.kind&&Cd(r)&&!r.target.hasRestElement&&oc(r)<n.name.elements.length?function(n,t){for(var r=t.elements,a=oc(n),i=a?ic(n).slice():[],o=a;o<r.length;o++){var s=r[o];(o<r.length-1||190!==s.kind||!s.dotDotDotToken)&&(i.push(!e.isOmittedExpression(s)&&Tf(s)?li(s,!1,!1):me),e.isOmittedExpression(s)||Tf(s)||Qd(s,me))}return Fc(i,n.target.minLength,!1,n.target.readonly)}(r,n.name):r,i=2&e.getCombinedNodeFlags(n)||e.isDeclarationReadonly(n)||by(t)||Ty(a,ff(t))?a:Td(a);if(e.isInJSFile(n)){if(98304&i.flags)return Qd(n,me),me;if(_d(i))return Qd(n,_n),_n}return i}function Ty(n,t){if(t){if(3145728&t.flags){var r=t.types;return e.some(r,(function(e){return Ty(n,e)}))}if(58982400&t.flags){var a=ts(t)||ye;return oy(a,4)&&oy(n,128)||oy(a,8)&&oy(n,256)||oy(a,64)&&oy(n,2048)||oy(a,4096)&&oy(n,8192)||Ty(n,a)}return!!(4194432&t.flags&&oy(n,128)||256&t.flags&&oy(n,256)||2048&t.flags&&oy(n,2048)||512&t.flags&&oy(n,512)||8192&t.flags&&oy(n,8192))}return!1}function Sy(n){var t=n.parent;return e.isAssertionExpression(t)&&e.isConstTypeReference(t.type)||(e.isParenthesizedExpression(t)||e.isArrayLiteralExpression(t)||e.isSpreadElement(t))&&Sy(t)||(e.isPropertyAssignment(t)||e.isShorthandPropertyAssignment(t))&&Sy(t.parent)}function xy(e,n,t,r){var a=Py(e,n,r);return Sy(e)?Gl(a):by(e)?a:xd(a,pf(2===arguments.length?ff(e):t,e))}function Ly(e,n){return 153===e.name.kind&&kf(e.name),xy(e.initializer,n)}function Cy(e,n){return iE(e),153===e.name.kind&&kf(e.name),Ay(e,Yg(e,n),n)}function Ay(n,t,r){if(r&&10&r){var a=B_(t,0,!0),i=B_(t,1,!0),o=a||i;if(o&&o.typeParameters){var s=df(n,2);if(s){var c=B_(wd(s),a?0:1,!1);if(c&&!c.typeParameters){if(8&r)return Dy(n,r),qe;var l=_f(n),u=l.signature&&ws(l.signature),d=u&&G_(u);if(d&&!d.typeParameters&&!e.every(l.inferences,ky)){var p=function(n,t){for(var r,a,i=[],o=0,s=t;o<s.length;o++){var c=(m=s[o]).symbol.escapedName;if(Ny(n.inferredTypeParameters,c)||Ny(i,c)){var l=ca(Xt(262144,Iy(e.concatenate(n.inferredTypeParameters,i),c)));l.target=m,r=e.append(r,m),a=e.append(a,l),i.push(l)}else i.push(m)}if(a)for(var u=Jl(r,a),d=0,p=a;d<p.length;d++){var m;(m=p[d]).mapper=u}return i}(l,o.typeParameters),m=Us(o,p),f=e.map(l.inferences,(function(e){return ip(e.typeParameter)}));if($d(m,c,(function(e,n){gp(f,e,n,0,!0)})),e.some(f,ky)&&(ep(m,c,(function(e,n){gp(f,e,n)})),!function(e,n){for(var t=0;t<e.length;t++)if(ky(e[t])&&ky(n[t]))return!0;return!1}(l.inferences,f)))return function(e,n){for(var t=0;t<e.length;t++)!ky(e[t])&&ky(n[t])&&(e[t]=n[t])}(l.inferences,f),l.inferredTypeParameters=e.concatenate(l.inferredTypeParameters,p),zs(m)}return zs(V_(o,c,l))}}}}return t}function Dy(e,n){2&n&&(_f(e).flags|=4)}function ky(e){return!(!e.candidates&&!e.contraCandidates)}function Ny(n,t){return e.some(n,(function(e){return e.symbol.escapedName===t}))}function Iy(e,n){for(var t=n.length;t>1&&n.charCodeAt(t-1)>=48&&n.charCodeAt(t-1)<=57;)t--;for(var r=n.slice(0,t),a=1;;a++){var i=r+a;if(!Ny(e,i))return i}}function My(e){var n=F_(e);if(n&&!n.typeParameters)return ws(n)}function Oy(n,t){var r=e.skipParentheses(n);if(!e.isCallExpression(r)||101===r.expression.kind||e.isRequireCall(r,!0)||vg(r)){if(e.isAssertionExpression(r)&&!e.isConstTypeReference(r.type))return Kl(r.type)}else{var a=e.isCallChain(r)?function(e){var n=Py(e.expression),t=Ud(n,e.expression),r=My(n);return r&&Vd(r,e,t!==n)}(r):My(r_(r.expression));if(a)return a}return t?hy(n):Py(n)}function Ry(e){var n=or(e);if(n.contextFreeType)return n.contextFreeType;var t=e.contextualType;e.contextualType=me;var r=n.contextFreeType=Py(e,4);return e.contextualType=t,r}function Py(n,a,i){var o=s;s=n,y=0;var c=Ay(n,function(n,a,i){var o=n.kind;if(r)switch(o){case 213:case 200:case 201:r.throwIfCancellationRequested()}switch(o){case 75:return wm(n);case 103:return jm(n);case 101:return Wm(n);case 99:return Te;case 14:case 10:return Fl(Vl(n.text));case 8:return _E(n),Fl(Vl(+n.text));case 9:return function(n){if(!(e.isLiteralTypeNode(n.parent)||e.isPrefixUnaryExpression(n.parent)&&e.isLiteralTypeNode(n.parent.parent))&&w<99&&pE(n,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ESNext))return!0}(n),Fl(function(n){return Vl({negative:!1,base10Value:e.parsePseudoBigInt(n.text)})}(n));case 105:return De;case 90:return Ce;case 210:return function(n){return e.forEach(n.templateSpans,(function(n){oy(Py(n.expression),12288)&&Wt(n.expression,e.Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String)})),Se}(n);case 13:return mn;case 191:return Sf(n,a,i);case 192:return Mf(n,a);case 193:return d_(n);case 152:return p_(n);case 194:return C_(n);case 195:if(95===n.expression.kind)return hg(n);case 196:return yg(n,a);case 197:return Tg(n);case 199:return function(n,t){var r=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0;if(r)return Sg(r,r.typeExpression.type,n.expression,t);return Py(n.expression,t)}(n,a);case 213:return function(e){return xh(e),jh(e),Ci(Yr(e))}(n);case 200:case 201:return Yg(n,a);case 203:return function(e){return Py(e.expression),Ft}(n);case 198:case 216:return function(e){return Sg(e,e.type,e.expression)}(n);case 217:return function(e){return wd(Py(e.expression))}(n);case 218:return xg(n);case 202:return function(n){Py(n.expression);var t=e.skipParentheses(n.expression);if(193!==t.kind&&194!==t.kind)return Wt(t,e.Diagnostics.The_operand_of_a_delete_operator_must_be_a_property_reference),Ne;var r=na(or(t).resolvedSymbol);return r&&ny(r)&&Wt(t,e.Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property),Ne}(n);case 204:return function(e){return Py(e.expression),he}(n);case 205:return function(n){if(t){if(!(32768&n.flags)){var r=e.getSourceFileOfNode(n);if(!lE(r)){var a=e.getSpanOfTokenAtPosition(r,n.pos),i=e.createFileDiagnostic(r,a.start,a.length,e.Diagnostics.await_expression_is_only_allowed_within_an_async_function),o=e.getContainingFunction(n);if(o&&161!==o.kind){e.Debug.assert(0==(2&e.getFunctionFlags(o)),\"Enclosing function should never be an async function.\");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(i,s)}Rt.add(i)}}Qm(n)&&Wt(n,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}var c=Py(n.expression),l=av(c,n,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return l!==c||l===ge||3&c.flags||zt(!1,e.createDiagnosticForNode(n,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),l}(n);case 206:return function(n){var t=Py(n.operand);if(t===Re)return Re;switch(n.operand.kind){case 8:switch(n.operator){case 40:return Fl(Vl(-n.operand.text));case 39:return Fl(Vl(+n.operand.text))}break;case 9:if(40===n.operator)return Fl(Vl({negative:!0,base10Value:e.parsePseudoBigInt(n.operand.text)}))}switch(n.operator){case 39:case 40:case 54:return l_(t,n.operand),oy(t,12288)&&Wt(n.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(n.operator)),39===n.operator?(oy(t,2112)&&Wt(n.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(n.operator),Aa(Ed(t))),xe):iy(t);case 53:jv(n.operand);var r=12582912&Vp(t);return 4194304===r?Ce:8388608===r?De:Ne;case 45:case 46:return $g(n.operand,l_(t,n.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&ay(n.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),iy(t)}return ge}(n);case 207:return function(n){var t=Py(n.operand);return t===Re?Re:($g(n.operand,l_(t,n.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&ay(n.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),iy(t))}(n);case 208:return _y(n,a);case 209:return function(e,n){return jv(e.condition),Wc([Py(e.whenTrue,n),Py(e.whenFalse,n)],2)}(n,a);case 212:return function(e,n){return w<2&&Vb(e,P.downlevelIteration?1536:2048),zv(33,Py(e.expression,n),ve,e.expression)}(n,a);case 214:return he;case 211:return yy(n);case 219:return n.type;case 274:return Zf(n,a);case 264:case 265:return function(e,n){return jh(e),qf(e)||me}(n);case 268:return function(n){return Xf(n.openingFragment),2===P.jsx&&(P.jsxFactory||e.getSourceFileOfNode(n).pragmas.has(\"jsx\"))&&Wt(n,P.jsxFactory?e.Diagnostics.JSX_fragment_is_not_supported_when_using_jsxFactory:e.Diagnostics.JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma),Ff(n),qf(n)||me}(n);case 272:return Gf(n,a);case 266:e.Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\")}return ge}(n,a,i),a);return ly(c)&&function(n,t){193===n.parent.kind&&n.parent.expression===n||194===n.parent.kind&&n.parent.expression===n||(75===n.kind||152===n.kind)&&$h(n)||171===n.parent.kind&&n.parent.exprName===n||261===n.parent.kind||Wt(n,e.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query);if(P.isolatedModules){e.Debug.assert(!!(128&t.symbol.flags)),8388608&t.symbol.valueDeclaration.flags&&Wt(n,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}(n,c),s=o,c}function wy(n){n.expression&&uE(n.expression,e.Diagnostics.Type_expected),Vh(n.constraint),Vh(n.default);var r=Xi(Yr(n));ts(r),function(e){return os(e)!==Xe}(r)||Wt(n.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Aa(r));var a=Qo(r),i=ss(r);a&&i&&Du(i,go(uu(a,ql(r,i)),i),n.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),t&&bh(n.name,e.Diagnostics.Type_parameter_name_cannot_be_0)}function Fy(n){jb(n),Pv(n);var t=e.getContainingFunction(n);e.hasModifier(n,92)&&(161===t.kind&&e.nodeIsPresent(t.body)||Wt(n,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation)),n.questionToken&&e.isBindingPattern(n.name)&&t.body&&Wt(n,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),n.name&&e.isIdentifier(n.name)&&(\"this\"===n.name.escapedText||\"new\"===n.name.escapedText)&&(0!==t.parameters.indexOf(n)&&Wt(n,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,n.name.escapedText),161!==t.kind&&165!==t.kind&&170!==t.kind||Wt(n,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),201===t.kind&&Wt(n,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter)),!n.dotDotDotToken||e.isBindingPattern(n.name)||xu(Ci(n.symbol),yn)||Wt(n,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function Gy(n,t,r){for(var a=0,i=n.elements;a<i.length;a++){var o=i[a];if(!e.isOmittedExpression(o)){var s=o.name;if(75===s.kind&&s.escapedText===r)return Wt(t,e.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern,r),!0;if((189===s.kind||188===s.kind)&&Gy(s,t,r))return!0}}}function By(n){166===n.kind?function(n){jb(n)||function(n){var t=n.parameters[0];if(1!==n.parameters.length)return pE(t?t.name:n,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(t.dotDotDotToken)return pE(t.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasModifiers(t))return pE(t.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(t.questionToken)return pE(t.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(t.initializer)return pE(t.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!t.type)return pE(t.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);if(142!==t.type.kind&&139!==t.type.kind){var r=Kl(t.type);return 4&r.flags||8&r.flags?pE(t.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead,e.getTextOfNode(t.name),Aa(r),Aa(n.type?Kl(n.type):me)):1048576&r.flags&&cy(r,384,!0)?pE(t.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead):pE(t.name,e.Diagnostics.An_index_signature_parameter_type_must_be_either_string_or_number)}if(!n.type)return pE(n,e.Diagnostics.An_index_signature_must_have_a_type_annotation)}(n)}(n):169!==n.kind&&243!==n.kind&&170!==n.kind&&164!==n.kind&&161!==n.kind&&165!==n.kind||qb(n);var r=e.getFunctionFlags(n);if(4&r||(3==(3&r)&&w<99&&Vb(n,12288),2==(3&r)&&w<4&&Vb(n,64),0!=(3&r)&&w<2&&Vb(n,128)),Eh(n.typeParameters),e.forEach(n.parameters,Fy),n.type&&Vh(n.type),t){!function(n){if(w>=2||P.noEmit||!e.hasRestParameter(n)||8388608&n.flags||e.nodeIsMissing(n.body))return;e.forEach(n.parameters,(function(n){n.name&&!e.isBindingPattern(n.name)&&n.name.escapedText===$.escapedName&&Wt(n,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)}))}(n);var a=e.getEffectiveReturnTypeNode(n);if(K&&!a)switch(n.kind){case 165:Wt(n,e.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);break;case 164:Wt(n,e.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type)}if(a){var i=e.getFunctionFlags(n);if(1==(5&i)){var o=Kl(a);if(o===Me)Wt(a,e.Diagnostics.A_generator_cannot_have_a_void_type_annotation);else{var s=mh(0,o,0!=(2&i))||me;Du(Kg(s,mh(1,o,0!=(2&i))||s,mh(2,o,0!=(2&i))||ye,!!(2&i)),o,a)}}else 2==(3&i)&&function(n,t){var r=Kl(t);if(w>=2){if(r===ge)return;var a=Ac(!0);if(a!==ze&&!Ai(r,a))return void Wt(t,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type)}else{if(function(n){sv(n&&e.getEntityNameFromTypeNode(n))}(t),r===ge)return;var i=e.getEntityNameFromTypeNode(t);if(void 0===i)return void Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,Aa(r));var o=Rr(i,111551,!0),s=o?Ci(o):ge;if(s===ge)return void(75===i.kind&&\"Promise\"===i.escapedText&&Di(r)===Ac(!1)?Wt(t,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(i)));var c=(d=!0,Ln||(Ln=xc(\"PromiseConstructorLike\",0,d))||je);if(c===je)return void Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(i));if(!Du(s,c,t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var l=i&&e.getFirstIdentifier(i),u=cr(n.locals,l.escapedText,111551);if(u)return void Wt(u.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(l),e.entityNameToString(i))}var d;av(r,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}(n,a)}166!==n.kind&&298!==n.kind&&_v(n)}}function Vy(n){for(var t=e.createMap(),r=0,a=n.members;r<a.length;r++){var i=a[r];if(157===i.kind){var o=void 0,s=i.name;switch(s.kind){case 10:case 8:o=s.text;break;case 75:o=e.idText(s);break;default:continue}t.get(o)?(Wt(e.getNameOfDeclaration(i.symbol.valueDeclaration),e.Diagnostics.Duplicate_identifier_0,o),Wt(i.name,e.Diagnostics.Duplicate_identifier_0,o)):t.set(o,!0)}}}function Uy(n){if(245===n.kind){var t=Yr(n);if(t.declarations.length>0&&t.declarations[0]!==n)return}var r=qs(Yr(n));if(r)for(var a=!1,i=!1,o=0,s=r.declarations;o<s.length;o++){var c=s[o];if(1===c.parameters.length&&c.parameters[0].type)switch(c.parameters[0].type.kind){case 142:i?Wt(c,e.Diagnostics.Duplicate_string_index_signature):i=!0;break;case 139:a?Wt(c,e.Diagnostics.Duplicate_number_index_signature):a=!0}}}function jy(n){jb(n)||function(n){if(e.isClassLike(n.parent)){if(e.isStringLiteral(n.name)&&\"constructor\"===n.name.text)return pE(n.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(aE(n.name,e.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0}else if(245===n.parent.kind){if(aE(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return pE(n.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(172===n.parent.kind){if(aE(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return pE(n.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}8388608&n.flags&&sE(n);if(e.isPropertyDeclaration(n)&&n.exclamationToken&&(!e.isClassLike(n.parent)||!n.type||n.initializer||8388608&n.flags||e.hasModifier(n,160)))return pE(n.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context)}(n)||Zb(n.name),Pv(n)}function Ky(n){By(n),function(n){var t=e.isInJSFile(n)?e.getJSDocTypeParameterDeclarations(n):void 0,r=n.typeParameters||t&&e.firstOrUndefined(t);if(r){var a=r.pos===r.end?r.pos:e.skipTrivia(e.getSourceFileOfNode(n).text,r.pos);return dE(n,a,r.end-a,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}(n)||function(n){var t=e.getEffectiveReturnTypeNode(n);if(t)pE(t,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}(n),Vh(n.body);var r=Yr(n);if(n===e.getDeclarationOfKind(r,n.kind)&&ev(r),!e.nodeIsMissing(n.body)&&t){var a=n.parent;if(e.getClassExtendsHeritageElement(a)){Fm(n.parent,a);var i=Vm(a),o=Bm(n);if(o){if(i&&Wt(o,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null),e.some(n.parent.members,(function(n){return 158===n.kind&&!e.hasModifier(n,32)&&!!n.initializer}))||e.some(n.parameters,(function(n){return e.hasModifier(n,92)}))){for(var s=void 0,c=0,l=n.body.statements;c<l.length;c++){var u=l[c];if(225===u.kind&&e.isSuperCall(u.expression)){s=u;break}if(!e.isPrologueDirective(u))break}s||Wt(n,e.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties)}}else i||Wt(n,e.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call)}}}function Hy(n){if(t){if(qb(n)||function(n){if(!(8388608&n.flags)){if(w<1)return pE(n.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(void 0===n.body&&!e.hasModifier(n,128))return dE(n,n.end-1,\";\".length,e.Diagnostics._0_expected,\"{\")}if(n.body&&e.hasModifier(n,128))return pE(n,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(n.typeParameters)return pE(n.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!function(e){return rE(e)||e.parameters.length===(162===e.kind?0:1)}(n))return pE(n.name,162===n.kind?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(163===n.kind){if(n.type)return pE(n.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var t=e.Debug.assertDefined(e.getSetAccessorValueParameter(n),\"Return value does not match parameter count assertion.\");if(t.dotDotDotToken)return pE(t.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(t.questionToken)return pE(t.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(t.initializer)return pE(n.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}(n)||Zb(n.name),pv(n),By(n),162===n.kind&&!(8388608&n.flags)&&e.nodeIsPresent(n.body)&&256&n.flags&&(512&n.flags||Wt(n.name,e.Diagnostics.A_get_accessor_must_return_a_value)),153===n.name.kind&&kf(n.name),!lo(n)){var r=162===n.kind?163:162,a=e.getDeclarationOfKind(Yr(n),r);if(a){var i=e.getModifierFlags(n),o=e.getModifierFlags(a);(28&i)!=(28&o)&&Wt(n.name,e.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility),(128&i)!=(128&o)&&Wt(n.name,e.Diagnostics.Accessors_must_both_be_abstract_or_non_abstract),Wy(n,a,vi,e.Diagnostics.get_and_set_accessor_must_have_the_same_type),Wy(n,a,hi,e.Diagnostics.get_and_set_accessor_must_have_the_same_this_type)}}var s=bi(Yr(n));162===n.kind&&Xg(n,s)}Vh(n.body)}function Wy(e,n,t,r){var a=t(e),i=t(n);a&&i&&!hu(a,i)&&Wt(e,r)}function zy(n,t){return ks(e.map(n.typeArguments,Kl),t,Ds(t),e.isInJSFile(n))}function qy(n,t){for(var r,a,i=!0,o=0;o<t.length;o++){var s=Qo(t[o]);s&&(r||(a=Jl(t,r=zy(n,t))),i=i&&Du(r[o],uu(s,a),n.typeArguments[o],e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1))}return i}function Jy(n){var t=vc(n);if(t!==ge){var r=or(n).resolvedSymbol;if(r)return 524288&r.flags&&ir(r).typeParameters||(4&e.getObjectFlags(t)?t.target.localTypeParameters:void 0)}}function Xy(n){Jb(n,n.typeArguments),168!==n.kind||void 0===n.typeName.jsdocDotPos||e.isInJSFile(n)||e.isInJSDoc(n)||dE(n,n.typeName.jsdocDotPos,1,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments),e.forEach(n.typeArguments,Vh);var r=vc(n);if(r!==ge){if(n.typeArguments&&t){var a=Jy(n);a&&qy(n,a)}32&r.flags&&8&or(n).resolvedSymbol.flags&&Wt(n,e.Diagnostics.Enum_type_0_has_members_with_initializers_that_are_not_literals,Aa(r))}}function Yy(n,t){if(!(8388608&n.flags))return n;var r=n.objectType,a=n.indexType;if(xu(a,al(r,!1)))return 194===t.kind&&e.isAssignmentTarget(t)&&32&e.getObjectFlags(r)&&1&Uo(r)&&Wt(t,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(r)),n;var i=ls(r);if(vs(i,1)&&sy(a,296))return n;if(ul(r)){var o=sl(a,t);if(o){var s=tm(i,(function(e){return ms(e,o)}));if(s&&24&e.getDeclarationModifierFlagsFromSymbol(s))return Wt(t,e.Diagnostics.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter,e.unescapeLeadingUnderscores(o)),ge}}return Wt(t,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Aa(a),Aa(r)),ge}function Qy(n){!function(n){if(146===n.operator){if(143!==n.type.kind)return pE(n.type,e.Diagnostics._0_expected,e.tokenToString(143));var t=e.walkUpParenthesizedTypes(n.parent);switch(t.kind){case 241:var r=t;if(75!==r.name.kind)return pE(n,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(r))return pE(n,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(2&r.parent.flags))return pE(t.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 158:if(!e.hasModifier(t,32)||!e.hasModifier(t,64))return pE(t.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 157:if(!e.hasModifier(t,64))return pE(t.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:pE(n,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(137===n.operator&&173!==n.type.kind&&174!==n.type.kind)uE(n,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(143))}(n),Vh(n.type)}function Zy(n){return e.hasModifier(n,8)&&!!(8388608&n.flags)}function $y(n,t){var r=e.getCombinedModifierFlags(n);return 245!==n.parent.kind&&244!==n.parent.kind&&213!==n.parent.kind&&8388608&n.flags&&(2&r||e.isModuleBlock(n.parent)&&e.isModuleDeclaration(n.parent.parent)&&e.isGlobalScopeAugmentation(n.parent.parent)||(r|=1),r|=2),r&t}function ev(n){if(t){for(var r,a,i,o=0,s=155,c=!1,l=!0,u=!1,d=n.declarations,p=0!=(16384&n.flags),m=!1,f=!1,_=!1,g=0,y=d;g<y.length;g++){var v=y[g],h=8388608&v.flags,b=245===v.parent.kind||172===v.parent.kind||h;if(b&&(i=void 0),244!==v.kind&&213!==v.kind||h||(_=!0),243===v.kind||160===v.kind||159===v.kind||161===v.kind){var E=$y(v,155);o|=E,s&=E,c=c||e.hasQuestionToken(v),l=l&&e.hasQuestionToken(v),e.nodeIsPresent(v.body)&&r?p?f=!0:m=!0:i&&i.parent===v.parent&&i.end!==v.pos&&D(i),e.nodeIsPresent(v.body)?r||(r=v):u=!0,i=v,b||(a=v)}}if(f&&e.forEach(d,(function(n){Wt(n,e.Diagnostics.Multiple_constructor_implementations_are_not_allowed)})),m&&e.forEach(d,(function(n){Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_function_implementation)})),_&&!p&&16&n.flags&&e.forEach(d,(function(t){tr(e.getNameOfDeclaration(t)||t,e.Diagnostics.Duplicate_identifier_0,e.symbolName(n),e.filter(d,(function(e){return e!==t})))})),!a||a.body||e.hasModifier(a,128)||a.questionToken||D(a),u&&(function(n,t,r,a,i){if(0!==(a^i)){var o=$y(A(n,t),r);e.forEach(n,(function(n){var t=$y(n,r)^o;1&t?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported):2&t?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient):24&t?Wt(e.getNameOfDeclaration(n)||n,e.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected):128&t&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract)}))}}(d,r,155,o,s),function(n,t,r,a){if(r!==a){var i=e.hasQuestionToken(A(n,t));e.forEach(n,(function(n){e.hasQuestionToken(n)!==i&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_optional_or_required)}))}}(d,r,c,l),r))for(var T=Os(n),S=Ns(r),x=0,L=T;x<L.length;x++){var C=L[x];if(!Bu(S,C)){e.addRelatedInfo(Wt(C.declaration,e.Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),e.createDiagnosticForNode(r,e.Diagnostics.The_implementation_signature_is_declared_here));break}}}function A(e,n){return void 0!==n&&n.parent===e[0].parent?n:e[0]}function D(n){if(!n.name||!e.nodeIsMissing(n.name)){var t=!1,r=e.forEachChild(n.parent,(function(e){if(t)return e;t=e===n}));if(r&&r.pos===n.end&&r.kind===n.kind){var a=r.name||r,i=r.name;if(n.name&&i&&(e.isComputedPropertyName(n.name)&&e.isComputedPropertyName(i)||!e.isComputedPropertyName(n.name)&&!e.isComputedPropertyName(i)&&e.getEscapedTextOfIdentifierOrLiteral(n.name)===e.getEscapedTextOfIdentifierOrLiteral(i))){if((160===n.kind||159===n.kind)&&e.hasModifier(n,32)!==e.hasModifier(r,32))Wt(a,e.hasModifier(n,32)?e.Diagnostics.Function_overload_must_be_static:e.Diagnostics.Function_overload_must_not_be_static);return}if(e.nodeIsPresent(r.body))return void Wt(a,e.Diagnostics.Function_implementation_name_must_be_0,e.declarationNameToString(n.name))}var o=n.name||n;p?Wt(o,e.Diagnostics.Constructor_implementation_is_missing):e.hasModifier(n,128)?Wt(o,e.Diagnostics.All_declarations_of_an_abstract_method_must_be_consecutive):Wt(o,e.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration)}}}function nv(n){if(t){var r=n.localSymbol;if((r||(r=Yr(n)).exportSymbol)&&e.getDeclarationOfKind(r,n.kind)===n){for(var a=0,i=0,o=0,s=0,c=r.declarations;s<c.length;s++){var l=y(_=c[s]),u=$y(_,513);1&u?512&u?o|=l:a|=l:i|=l}var d=a&i,p=o&(a|i);if(d||p)for(var m=0,f=r.declarations;m<f.length;m++){l=y(_=f[m]);var _,g=e.getNameOfDeclaration(_);l&p?Wt(g,e.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead,e.declarationNameToString(g)):l&d&&Wt(g,e.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local,e.declarationNameToString(g))}}}function y(n){var t=n;switch(t.kind){case 245:case 246:case 315:case 308:case 309:return 2;case 248:return e.isAmbientModule(t)||0!==e.getModuleInstanceState(t)?5:4;case 244:case 247:return 3;case 288:return 7;case 258:if(!e.isEntityNameExpression(t.expression))return 1;t=t.expression;case 252:case 255:case 254:var r=0,a=kr(Yr(t));return e.forEach(a.declarations,(function(e){r|=y(e)})),r;case 241:case 190:case 243:case 257:return 1;default:return e.Debug.failBadSyntaxKind(t)}}}function tv(e,n,t,r){var a=rv(e,n);return a&&iv(a,n,t,r)}function rv(n,t){if(!Wa(n)){var r=n;if(r.promisedTypeOfPromise)return r.promisedTypeOfPromise;if(Ai(n,Ac(!1)))return r.promisedTypeOfPromise=ic(n)[0];var a=Ha(n,\"then\");if(!Wa(a)){var i=a?_s(a,0):e.emptyArray;if(0!==i.length){var o=Up(Wc(e.map(i,Pg)),2097152);if(!Wa(o)){var s=_s(o,0);if(0!==s.length)return r.promisedTypeOfPromise=Wc(e.map(s,Pg),2);t&&Wt(t,e.Diagnostics.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback)}}else t&&Wt(t,e.Diagnostics.A_promise_must_have_a_then_method)}}}function av(e,n,t,r){return iv(e,n,t,r)||ge}function iv(n,t,r,a){var i=n;if(i.awaitedTypeOfType)return i.awaitedTypeOfType;if(Wa(n))return i.awaitedTypeOfType=n;if(1048576&n.flags){for(var o=void 0,s=0,c=n.types;s<c.length;s++){var l=c[s];o=e.append(o,iv(l,t,r,a))}if(!o)return;return i.awaitedTypeOfType=Wc(o)}var u=rv(n);if(u){if(n.id===u.id||Ot.indexOf(u.id)>=0)return void(t&&Wt(t,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method));Ot.push(n.id);var d=iv(u,t,r,a);if(Ot.pop(),!d)return;return i.awaitedTypeOfType=d}var p=Ha(n,\"then\");if(!(p&&_s(p,0).length>0))return i.awaitedTypeOfType=n;if(t){if(!r)return e.Debug.fail();Wt(t,r,a)}}function ov(n){var t=ws(fg(n));if(!(1&t.flags)){var r,a,i=lg(n);switch(n.parent.kind){case 244:r=Wc([Ci(Yr(n.parent)),Me]);break;case 155:r=Me,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);break;case 158:r=Me,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);break;case 160:case 162:case 163:r=Wc([Mc(tb(n.parent)),Me]);break;default:return e.Debug.fail()}Du(t,r,n,i,(function(){return a}))}}function sv(n){if(n){var t=e.getFirstIdentifier(n),r=2097152|(75===n.kind?788968:1920),a=ur(t,t.escapedText,r,void 0,void 0,!0);a&&2097152&a.flags&&ta(a)&&!hb(kr(a))&&Ir(a)}}function cv(n){var t=lv(n);t&&e.isEntityName(t)&&sv(t)}function lv(e){if(e)switch(e.kind){case 178:case 177:return uv(e.types);case 179:return uv([e.trueType,e.falseType]);case 181:return lv(e.type);case 168:return e.typeName}}function uv(n){for(var t,r=0,a=n;r<a.length;r++){for(var i=a[r];181===i.kind;)i=i.type;if(136!==i.kind&&(B||99!==i.kind&&145!==i.kind)){var o=lv(i);if(!o)return;if(t){if(!e.isIdentifier(t)||!e.isIdentifier(o)||t.escapedText!==o.escapedText)return}else t=o}}return t}function dv(n){var t=e.getEffectiveTypeAnnotationNode(n);return e.isRestParameter(n)?e.getRestParameterElementType(t):t}function pv(n){if(n.decorators&&e.nodeCanBeDecorated(n,n.parent,n.parent.parent)){P.experimentalDecorators||Wt(n,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning);var t=n.decorators[0];if(Vb(t,8),155===n.kind&&Vb(t,32),P.emitDecoratorMetadata)switch(Vb(t,16),n.kind){case 244:var r=e.getFirstConstructorWithBody(n);if(r)for(var a=0,i=r.parameters;a<i.length;a++){cv(dv(i[a]))}break;case 162:case 163:var o=162===n.kind?163:162,s=e.getDeclarationOfKind(Yr(n),o);cv(yi(n)||s&&yi(s));break;case 160:for(var c=0,l=n.parameters;c<l.length;c++){cv(dv(l[c]))}cv(e.getEffectiveReturnTypeNode(n));break;case 158:cv(e.getEffectiveTypeAnnotationNode(n));break;case 155:cv(dv(n));for(var u=0,d=n.parent.parameters;u<d.length;u++){cv(dv(d[u]))}}e.forEach(n.decorators,ov)}}function mv(e){switch(e.kind){case 75:return e;case 193:return e.name;default:return}}function fv(n){pv(n),By(n);var r=e.getFunctionFlags(n);if(n.name&&153===n.name.kind&&kf(n.name),!lo(n)){var a=Yr(n),i=n.localSymbol||a,o=e.find(i.declarations,(function(e){return e.kind===n.kind&&!(131072&e.flags)}));n===o&&ev(i),a.parent&&e.getDeclarationOfKind(a,n.kind)===n&&ev(a)}var s=159===n.kind?void 0:n.body;if(Vh(s),Xg(n,Fs(n)),t&&!e.getEffectiveReturnTypeNode(n)&&(e.nodeIsMissing(s)&&!Zy(n)&&Qd(n,me),1&r&&e.nodeIsPresent(s)&&ws(Ns(n))),e.isInJSFile(n)){var c=e.getJSDocTypeTag(n);c&&c.typeExpression&&!vf(Kl(c.typeExpression),n)&&Wt(c,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}}function _v(n){if(t&&!(8388608&n.flags)){var r=e.getSourceFileOfNode(n),a=st.get(r.path);a||(a=[],st.set(r.path,a)),a.push(n)}}function gv(n,t){for(var r=0,a=n;r<a.length;r++){var i=a[r];switch(i.kind){case 244:case 213:hv(i,t),Ev(i,t);break;case 288:case 248:case 222:case 250:case 229:case 230:case 231:Lv(i,t);break;case 161:case 200:case 243:case 201:case 160:case 162:case 163:i.body&&Lv(i,t),Ev(i,t);break;case 159:case 164:case 165:case 169:case 170:case 246:case 245:Ev(i,t);break;case 180:bv(i,t);break;default:e.Debug.assertNever(i,\"Node should not have been registered for unused identifiers check\")}}}function yv(n,t,r){var a=e.getNameOfDeclaration(n)||n,i=Xh(n)?e.Diagnostics._0_is_declared_but_never_used:e.Diagnostics._0_is_declared_but_its_value_is_never_read;r(n,0,e.createDiagnosticForNode(a,i,t))}function vv(n){return e.isIdentifier(n)&&95===e.idText(n).charCodeAt(0)}function hv(n,t){for(var r=0,a=n.members;r<a.length;r++){var i=a[r];switch(i.kind){case 160:case 158:case 162:case 163:if(163===i.kind&&32768&i.symbol.flags)break;var o=Yr(i);!o.isReferenced&&e.hasModifier(i,8)&&t(i,0,e.createDiagnosticForNode(i.name,e.Diagnostics._0_is_declared_but_its_value_is_never_read,La(o)));break;case 161:for(var s=0,c=i.parameters;s<c.length;s++){var l=c[s];!l.symbol.isReferenced&&e.hasModifier(l,8)&&t(l,0,e.createDiagnosticForNode(l.name,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read,e.symbolName(l.symbol)))}break;case 166:case 221:break;default:e.Debug.fail()}}}function bv(n,t){var r=n.typeParameter;Tv(r)&&t(n,1,e.createDiagnosticForNode(n,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.idText(r.name)))}function Ev(n,t){if(e.last(Yr(n).declarations)===n)for(var r=e.getEffectiveTypeParameterDeclarations(n),a=new e.NodeSet,i=0,o=r;i<o.length;i++){var s=o[i];if(Tv(s)){var c=e.idText(s.name),l=s.parent;if(180!==l.kind&&l.typeParameters.every(Tv)){if(a.tryAdd(l)){var u=e.isJSDocTemplateTag(l)?e.rangeOfNode(l):e.rangeOfTypeParameters(l.typeParameters),d=1===r.length,p=d?e.Diagnostics._0_is_declared_but_its_value_is_never_read:e.Diagnostics.All_type_parameters_are_unused,m=d?c:void 0;t(s,1,e.createFileDiagnostic(e.getSourceFileOfNode(l),u.pos,u.end-u.pos,p,m))}}else t(s,1,e.createDiagnosticForNode(s,e.Diagnostics._0_is_declared_but_its_value_is_never_read,c))}}}function Tv(e){return!(262144&Xr(e.symbol).isReferenced||vv(e.name))}function Sv(e,n,t,r){var a=String(r(n)),i=e.get(a);i?i[1].push(t):e.set(a,[n,[t]])}function xv(n){return e.tryCast(e.getRootDeclaration(n),e.isParameter)}function Lv(n,t){if(!(8388608&n.flags)){var r=e.createMap(),a=e.createMap(),i=e.createMap();n.locals.forEach((function(n){var o;if(262144&n.flags?3&n.flags&&!(3&n.isReferenced):!n.isReferenced&&!n.exportSymbol)for(var s=0,c=n.declarations;s<c.length;s++){var l=c[s];if(!(e.isAmbientModule(l)||(e.isVariableDeclaration(l)&&e.isForInOrOfStatement(l.parent.parent)||Av(l))&&vv(l.name)))if(Av(l))Sv(r,254===(o=l).kind?o:255===o.kind?o.parent:o.parent.parent,l,x);else if(e.isBindingElement(l)&&e.isObjectBindingPattern(l.parent)){l!==e.last(l.parent.elements)&&e.last(l.parent.elements).dotDotDotToken||Sv(a,l.parent,l,x)}else if(e.isVariableDeclaration(l))Sv(i,l.parent,l,x);else{var u=n.valueDeclaration&&xv(n.valueDeclaration),d=n.valueDeclaration&&e.getNameOfDeclaration(n.valueDeclaration);u&&d?e.isParameterPropertyDeclaration(u,u.parent)||e.parameterIsThisKeyword(u)||vv(d)||t(u,1,e.createDiagnosticForNode(d,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.symbolName(n))):yv(l,e.symbolName(n),t)}}})),r.forEach((function(n){var r=n[0],a=n[1],i=r.parent;if((r.name?1:0)+(r.namedBindings?255===r.namedBindings.kind?1:r.namedBindings.elements.length:0)===a.length)t(i,0,1===a.length?e.createDiagnosticForNode(i,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.idText(e.first(a).name)):e.createDiagnosticForNode(i,e.Diagnostics.All_imports_in_import_declaration_are_unused));else for(var o=0,s=a;o<s.length;o++){var c=s[o];yv(c,e.idText(c.name),t)}})),a.forEach((function(n){var r=n[0],a=n[1],o=xv(r.parent)?1:0;if(r.elements.length===a.length)1===a.length&&241===r.parent.kind&&242===r.parent.parent.kind?Sv(i,r.parent.parent,r.parent,x):t(r,o,1===a.length?e.createDiagnosticForNode(r,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(e.first(a).name)):e.createDiagnosticForNode(r,e.Diagnostics.All_destructured_elements_are_unused));else for(var s=0,c=a;s<c.length;s++){var l=c[s];t(l,o,e.createDiagnosticForNode(l,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(l.name)))}})),i.forEach((function(n){var r=n[0],a=n[1];if(r.declarations.length===a.length)t(r,0,1===a.length?e.createDiagnosticForNode(e.first(a).name,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(e.first(a).name)):e.createDiagnosticForNode(224===r.parent.kind?r.parent:r,e.Diagnostics.All_variables_are_unused));else for(var i=0,o=a;i<o.length;i++){var s=o[i];t(s,0,e.createDiagnosticForNode(s,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(s.name)))}}))}}function Cv(n){switch(n.kind){case 75:return e.idText(n);case 189:case 188:return Cv(e.cast(e.first(n.elements),e.isBindingElement).name);default:return e.Debug.assertNever(n)}}function Av(e){return 254===e.kind||257===e.kind||255===e.kind}function Dv(n){if(222===n.kind&&fE(n),e.isFunctionOrModuleBlock(n)){var t=dt;e.forEach(n.statements,Vh),dt=t}else e.forEach(n.statements,Vh);n.locals&&_v(n)}function kv(n,t,r){if(!t||t.escapedText!==r)return!1;if(158===n.kind||157===n.kind||160===n.kind||159===n.kind||162===n.kind||163===n.kind)return!1;if(8388608&n.flags)return!1;var a=e.getRootDeclaration(n);return 155!==a.kind||!e.nodeIsMissing(a.parent.body)}function Nv(n){e.findAncestor(n,(function(t){return!!(4&Lb(t))&&(75!==n.kind?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Wt(n,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0)}))}function Iv(n){e.findAncestor(n,(function(t){return!!(8&Lb(t))&&(75!==n.kind?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Wt(n,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0)}))}function Mv(n,t){if(!(F>=e.ModuleKind.ES2015||P.noEmit)&&(kv(n,t,\"require\")||kv(n,t,\"exports\"))&&(!e.isModuleDeclaration(n)||1===e.getModuleInstanceState(n))){var r=Ka(n);288===r.kind&&e.isExternalOrCommonJsModule(r)&&Wt(t,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(t),e.declarationNameToString(t))}}function Ov(n,t){if(!(w>=4||P.noEmit)&&kv(n,t,\"Promise\")&&(!e.isModuleDeclaration(n)||1===e.getModuleInstanceState(n))){var r=Ka(n);288===r.kind&&e.isExternalOrCommonJsModule(r)&&2048&r.flags&&Wt(t,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(t),e.declarationNameToString(t))}}function Rv(e){return e===fe?me:e===gn?_n:e}function Pv(n){if(pv(n),e.isBindingElement(n)||Vh(n.type),n.name){if(153===n.name.kind&&(kf(n.name),n.initializer&&hy(n.initializer)),190===n.kind){188===n.parent.kind&&w<99&&Vb(n,4),n.propertyName&&153===n.propertyName.kind&&kf(n.propertyName);var t=n.parent.parent,r=za(t),a=n.propertyName||n.name;if(r&&!e.isBindingPattern(a)){var i=el(a);if(io(i)){var o=ms(r,uo(i));o&&(S_(o,void 0,!1),n_(t,!!t.initializer&&101===t.initializer.kind,r,o))}}}if(e.isBindingPattern(n.name)&&(189===n.name.kind&&w<2&&P.downlevelIteration&&Vb(n,512),e.forEach(n.name.elements,Vh)),n.initializer&&155===e.getRootDeclaration(n).kind&&e.nodeIsMissing(e.getContainingFunction(n).body))Wt(n,e.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);else if(e.isBindingPattern(n.name)){var s=n.initializer&&230!==n.parent.parent.kind,c=0===n.name.elements.length;if(s||c){var l=pi(n);if(s){var u=hy(n.initializer);B&&c?u_(u,n):ku(u,pi(n),n,n.initializer)}c&&(e.isArrayBindingPattern(n.name)?zv(65,l,ve,n):B&&u_(l,n))}}else{var d=Yr(n),p=Rv(Ci(d));if(n===d.valueDeclaration){var m=e.getEffectiveInitializer(n);if(m)e.isInJSFile(n)&&e.isObjectLiteralExpression(m)&&(0===m.properties.length||e.isPrototypeAccess(n.name))&&e.hasEntries(d.exports)||230===n.parent.parent.kind||ku(hy(m),p,n,m,void 0);d.declarations.length>1&&e.some(d.declarations,(function(t){return t!==n&&e.isVariableLike(t)&&!Fv(t,n)}))&&Wt(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}else{var f=Rv(pi(n));p===ge||f===ge||hu(p,f)||67108864&d.flags||wv(d.valueDeclaration,p,n,f),n.initializer&&ku(hy(n.initializer),f,n,n.initializer,void 0),Fv(n,d.valueDeclaration)||Wt(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}158!==n.kind&&157!==n.kind&&(nv(n),241!==n.kind&&190!==n.kind||function(n){if(0==(3&e.getCombinedNodeFlags(n))&&!e.isParameterDeclaration(n)&&(241!==n.kind||n.initializer)){var t=Yr(n);if(1&t.flags){if(!e.isIdentifier(n.name))return e.Debug.fail();var r=ur(n,n.name.escapedText,3,void 0,void 0,!1);if(r&&r!==t&&2&r.flags&&3&$f(r)){var a=e.getAncestor(r.valueDeclaration,242),i=224===a.parent.kind&&a.parent.parent?a.parent.parent:void 0;if(!(i&&(222===i.kind&&e.isFunctionLike(i.parent)||249===i.kind||248===i.kind||288===i.kind))){var o=La(r);Wt(n,e.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1,o,o)}}}}}(n),Mv(n,n.name),Ov(n,n.name))}}}function wv(n,t,r,a){var i=e.getNameOfDeclaration(r),o=158===r.kind||157===r.kind?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,s=e.declarationNameToString(i),c=Wt(i,o,s,Aa(t),Aa(a));n&&e.addRelatedInfo(c,e.createDiagnosticForNode(n,e.Diagnostics._0_was_also_declared_here,s))}function Fv(n,t){if(155===n.kind&&241===t.kind||241===n.kind&&155===t.kind)return!0;if(e.hasQuestionToken(n)!==e.hasQuestionToken(t))return!1;return e.getSelectedModifierFlags(n,504)===e.getSelectedModifierFlags(t,504)}function Gv(n){return function(n){if(230!==n.parent.parent.kind&&231!==n.parent.parent.kind)if(8388608&n.flags)sE(n);else if(!n.initializer){if(e.isBindingPattern(n.name)&&!e.isBindingPattern(n.parent))return pE(n,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(n))return pE(n,e.Diagnostics.const_declarations_must_be_initialized)}if(n.exclamationToken&&(224!==n.parent.parent.kind||!n.type||n.initializer||8388608&n.flags))return pE(n.exclamationToken,e.Diagnostics.Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation);P.module===e.ModuleKind.ES2015||P.module===e.ModuleKind.ESNext||P.module===e.ModuleKind.System||P.noEmit||8388608&n.parent.parent.flags||!e.hasModifier(n.parent.parent,1)||function n(t){if(75===t.kind){if(\"__esModule\"===e.idText(t))return pE(t,e.Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules)}else for(var r=t.elements,a=0,i=r;a<i.length;a++){var o=i[a];if(!e.isOmittedExpression(o))return n(o.name)}return!1}(n.name);(e.isLet(n)||e.isVarConst(n))&&function n(t){if(75===t.kind){if(114===t.originalKeywordKind)return pE(t,e.Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations)}else for(var r=t.elements,a=0,i=r;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||n(o.name)}return!1}(n.name)}(n),Pv(n)}function Bv(n){return function(n){if(n.dotDotDotToken){var t=n.parent.elements;if(n!==e.last(t))return pE(n,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(Hb(t,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),n.propertyName)return pE(n.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name);if(n.initializer)dE(n,n.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}}(n),Pv(n)}function Vv(n){jb(n)||cE(n.declarationList)||function(n){if(!function e(n){switch(n.kind){case 226:case 227:case 228:case 235:case 229:case 230:case 231:return!1;case 237:return e(n.parent)}return!0}(n.parent)){if(e.isLet(n.declarationList))return pE(n,e.Diagnostics.let_declarations_can_only_be_declared_inside_a_block);if(e.isVarConst(n.declarationList))pE(n,e.Diagnostics.const_declarations_can_only_be_declared_inside_a_block)}}(n),e.forEach(n.declarationList.declarations,Vh)}function Uv(n){fE(n),function(n,t){if(!B)return;var r=e.isIdentifier(n.expression)?n.expression:e.isPropertyAccessExpression(n.expression)?n.expression.name:void 0;if(!r)return;if(Id(t))return;if(0===_s(t,0).length)return;var a=nb(r);if(!a)return;e.forEachChild(n.thenStatement,(function n(t){if(e.isIdentifier(t)){var r=nb(t);if(r&&r.id===a.id)return!0}return e.forEachChild(t,n)}))||Wt(n.expression,e.Diagnostics.This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it_instead)}(n,jv(n.expression)),Vh(n.thenStatement),223===n.thenStatement.kind&&Wt(n.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),Vh(n.elseStatement)}function jv(n,t){var r=Py(n,t);return 16384&r.flags&&Wt(n,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Kv(n){tE(n);var t,r=i_(Py(n.expression));if(242===n.initializer.kind){var a=n.initializer.declarations[0];a&&e.isBindingPattern(a.name)&&Wt(a.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),Hv(n)}else{var i=n.initializer,o=Py(i);191===i.kind||192===i.kind?Wt(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):xu(131072&(t=il(al(r))).flags?Se:t,o)?ay(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access):Wt(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}r!==Oe&&sy(r,126091264)||Wt(n.expression,e.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0,Aa(r)),Vh(n.statement),n.locals&&_v(n)}function Hv(e){var n=e.initializer;n.declarations.length>=1&&Gv(n.declarations[0])}function Wv(e,n){return zv(n?15:13,r_(e),ve,e)}function zv(e,n,t,r){return Wa(n)?n:qv(e,n,t,r,!0)||me}function qv(n,t,r,a,i){var o=0!=(2&n);if(t!==Oe){var s=w>=2,c=!s&&P.downlevelIteration;if(s||c||o){var l=Qv(t,n,s?a:void 0);if(i&&l){var u=8&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:32&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:64&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:16&n?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;u&&Du(r,l.nextType,a,u)}if(l||s)return l&&l.yieldType}var d=t,p=!1,m=!1;if(4&n){if(1048576&d.flags){var f=t.types,_=e.filter(f,(function(e){return!(132&e.flags)}));_!==f&&(d=Wc(_,2))}else 132&d.flags&&(d=Oe);if((m=d!==t)&&(w<1&&a&&(Wt(a,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),p=!0),131072&d.flags))return Se}if(!fd(d)){if(a&&!p){var g=Jv(n,0,t,void 0),y=4&n&&!m?c?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:g?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1]:[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:c?[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:g?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1]:[e.Diagnostics.Type_0_is_not_an_array_type,!0],v=y[0];Jt(a,y[1]&&!!tv(d),v,Aa(d))}return m?Se:void 0}var h=hs(d,1);return m&&h?132&h.flags?Se:Wc([h,Se],2):h}ah(a,t,o)}function Jv(e,n,t,r){if(!Wa(t)){var a=Qv(t,e,r);return a&&a[N(n)]}}function Xv(e,n,t){if(void 0===e&&(e=Oe),void 0===n&&(n=Oe),void 0===t&&(t=ye),67359327&e.flags&&180227&n.flags&&180227&t.flags){var r=ec([e,n,t]),a=$n.get(r);return a||(a={yieldType:e,returnType:n,nextType:t},$n.set(r,a)),a}return{yieldType:e,returnType:n,nextType:t}}function Yv(n){for(var t,r,a,i=0,o=n;i<o.length;i++){var s=o[i];if(void 0!==s&&s!==et){if(s===nt)return nt;t=e.append(t,s.yieldType),r=e.append(r,s.returnType),a=e.append(a,s.nextType)}}return t||r||a?Xv(t&&Wc(t),r&&Wc(r),a&&Zc(a)):et}function Qv(n,t,r){if(Wa(n))return nt;if(!(1048576&n.flags)){var a=$v(n,t,r);return a===et?void(r&&ah(r,n,!!(2&t))):a}var i,o=2&t?\"iterationTypesOfAsyncIterable\":\"iterationTypesOfIterable\",s=n[o];if(s)return s===et?void 0:s;for(var c=0,l=n.types;c<l.length;c++){var u=$v(l[c],t,r);u===et?r&&(ah(r,n,!!(2&t)),r=void 0):i=e.append(i,u)}var d=i?Yv(i):et;return n[o]=d,d===et?void 0:d}function Zv(e,n){if(e===et)return et;if(e===nt)return nt;var t=e.yieldType,r=e.returnType,a=e.nextType;return Xv(iv(t,n)||me,iv(r,n)||me,a)}function $v(e,n,t){if(Wa(e))return nt;var r;if(2&n&&(r=eh(e,at)||th(e,at)))return r;if(1&n&&(r=eh(e,it)||th(e,it))){if(!(2&n))return r;if(r!==et)return e.iterationTypesOfAsyncIterable=Zv(r,t)}if(2&n&&(r=rh(e,at,t))!==et)return r;if(1&n&&(r=rh(e,it,t))!==et)return 2&n?e.iterationTypesOfAsyncIterable=r?Zv(r,t):et:r;return et}function eh(e,n){return e[n.iterableCacheKey]}function nh(e,n){var t=eh(e,n)||rh(e,n,void 0);return t===et?rt:t}function th(e,n){var t;if(Ai(e,t=n.getGlobalIterableType(!1))||Ai(e,t=n.getGlobalIterableIteratorType(!1))){var r=ic(e)[0],a=nh(t,n),i=a.returnType,o=a.nextType;return e[n.iterableCacheKey]=Xv(r,i,o)}if(Ai(e,n.getGlobalGeneratorType(!1))){var s=ic(e);r=s[0],i=s[1],o=s[2];return e[n.iterableCacheKey]=Xv(r,i,o)}}function rh(n,t,r){var a=ms(n,e.getPropertyNameForKnownSymbolName(t.iteratorSymbolName)),i=!a||16777216&a.flags?void 0:Ci(a);if(Wa(i))return n[t.iterableCacheKey]=nt;var o=i?_s(i,0):void 0;if(!e.some(o))return n[t.iterableCacheKey]=et;var s=ih(Wc(e.map(o,ws),2),t,r)||et;return n[t.iterableCacheKey]=s}function ah(n,t,r){var a=r?e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator;Jt(n,!!tv(t),a,Aa(t))}function ih(e,n,t){if(Wa(e))return nt;var r=oh(e,n)||function(e,n){var t=n.getGlobalIterableIteratorType(!1);if(Ai(e,t)){var r=ic(e)[0],a=oh(t,n)||ph(t,n,void 0),i=a===et?rt:a,o=i.returnType,s=i.nextType;return e[n.iteratorCacheKey]=Xv(r,o,s)}if(Ai(e,n.getGlobalIteratorType(!1))||Ai(e,n.getGlobalGeneratorType(!1))){var c=ic(e);r=c[0],o=c[1],s=c[2];return e[n.iteratorCacheKey]=Xv(r,o,s)}}(e,n)||ph(e,n,t);return r===et?void 0:r}function oh(e,n){return e[n.iteratorCacheKey]}function sh(e,n){var t=Ha(e,\"done\")||Ce;return xu(0===n?Ce:De,t)}function ch(e){return sh(e,0)}function lh(e){return sh(e,1)}function uh(e){if(Wa(e))return nt;var n,t=e.iterationTypesOfIteratorResult;if(t)return t;if(Ai(e,(n=!1,Nn||(Nn=xc(\"IteratorYieldResult\",1,n))||ze))){var r=ic(e)[0];return e.iterationTypesOfIteratorResult=Xv(r,void 0,void 0)}if(Ai(e,function(e){return In||(In=xc(\"IteratorReturnResult\",1,e))||ze}(!1))){var a=ic(e)[0];return e.iterationTypesOfIteratorResult=Xv(void 0,a,void 0)}var i=am(e,ch),o=i!==Oe?Ha(i,\"value\"):void 0,s=am(e,lh),c=s!==Oe?Ha(s,\"value\"):void 0;return e.iterationTypesOfIteratorResult=o||c?Xv(o,c||Me,void 0):et}function dh(n,t,r,a){var i=ms(n,r);if(i||\"next\"===r){var o=!i||\"next\"===r&&16777216&i.flags?void 0:\"next\"===r?Ci(i):Up(Ci(i),2097152);if(Wa(o))return\"next\"===r?nt:tt;var s,c,l,u,d,p=o?_s(o,0):e.emptyArray;if(0===p.length){if(a)Wt(a,\"next\"===r?t.mustHaveANextMethodDiagnostic:t.mustBeAMethodDiagnostic,r);return\"next\"===r?nt:void 0}for(var m=0,f=p;m<f.length;m++){var _=f[m];\"throw\"!==r&&e.some(_.parameters)&&(s=e.append(s,Ag(_,0))),c=e.append(c,ws(_))}if(\"throw\"!==r){var g=s?Wc(s):ye;if(\"next\"===r)u=g;else if(\"return\"===r){var y=t.resolveIterationType(g,a)||me;l=e.append(l,y)}}var v=c?Wc(c,2):Oe,h=uh(t.resolveIterationType(v,a)||me);return h===et?(a&&Wt(a,t.mustHaveAValueDiagnostic,r),d=me,l=e.append(l,me)):(d=h.yieldType,l=e.append(l,h.returnType)),Xv(d,Wc(l),u)}}function ph(e,n,t){var r=Yv([dh(e,n,\"next\",t),dh(e,n,\"return\",t),dh(e,n,\"throw\",t)]);return e[n.iteratorCacheKey]=r}function mh(e,n,t){if(!Wa(n)){var r=fh(n,t);return r&&r[N(e)]}}function fh(e,n){if(Wa(e))return nt;var t=n?at:it;return Qv(e,n?2:1,void 0)||ih(e,t,void 0)}function _h(n){fE(n)||function(n){var t=n;for(;t;){if(e.isFunctionLike(t))return pE(n,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(t.kind){case 237:if(n.label&&t.label.escapedText===n.label.escapedText)return!!(232===n.kind&&!e.isIterationStatement(t.statement,!0))&&pE(n,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);break;case 236:if(233===n.kind&&!n.label)return!1;break;default:if(e.isIterationStatement(t,!1)&&!n.label)return!1}t=t.parent}if(n.label){var r=233===n.kind?e.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;return pE(n,r)}r=233===n.kind?e.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:e.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;pE(n,r)}(n)}function gh(e,n){var t=!!(2&n);return!!(1&n)?mh(1,e,t)||ge:t?rv(e)||ge:e}function yh(n,t){var r=gh(t,e.getFunctionFlags(n));return!!r&&oy(r,16387)}function vh(n){fE(n)||void 0===n.expression&&function(n,t,r,a,i){var o=e.getSourceFileOfNode(n);if(!lE(o)){var s=e.getSpanOfTokenAtPosition(o,n.pos);return Rt.add(e.createFileDiagnostic(o,e.textSpanEnd(s),0,t,r,a,i)),!0}}(n,e.Diagnostics.Line_break_not_permitted_here),n.expression&&Py(n.expression)}function hh(n){var t,r=Js(n.symbol,1),a=Js(n.symbol,0),i=hs(n,0),o=hs(n,1);if(i||o){e.forEach(zo(n),(function(e){var t=Ci(e);m(e,t,n,a,i,0),m(e,t,n,r,o,1)}));var s=n.symbol.valueDeclaration;if(1&e.getObjectFlags(n)&&e.isClassLike(s))for(var c=0,l=s.members;c<l.length;c++){var u=l[c];if(!e.hasModifier(u,32)&&lo(u)){var d=Yr(u),p=Ci(d);m(d,p,n,a,i,0),m(d,p,n,r,o,1)}}}i&&o&&(!(t=r||a)&&2&e.getObjectFlags(n)&&(t=e.forEach(Vi(n),(function(e){return hs(e,0)&&hs(e,1)}))?void 0:n.symbol.declarations[0]));function m(n,t,r,a,i,o){if(i&&!e.isKnownSymbol(n)){var s=n.valueDeclaration,c=s&&e.getNameOfDeclaration(s);if(1!==o||(c?Cf(c):Df(n.escapedName))){var l;if(s&&c&&(208===s.kind||153===c.kind||n.parent===r.symbol))l=s;else if(a)l=a;else if(2&e.getObjectFlags(r)){l=e.forEach(Vi(r),(function(e){return qo(e,n.escapedName)&&hs(e,o)}))?void 0:r.symbol.declarations[0]}if(l&&!xu(t,i))Wt(l,0===o?e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2:e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2,La(n),Aa(t),Aa(i))}}}t&&!xu(o,i)&&Wt(t,e.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1,Aa(o),Aa(i))}function bh(e,n){switch(e.escapedText){case\"any\":case\"unknown\":case\"number\":case\"bigint\":case\"boolean\":case\"string\":case\"symbol\":case\"void\":case\"object\":Wt(e,n,e.escapedText)}}function Eh(n){if(n)for(var r=!1,a=0;a<n.length;a++){var i=n[a];if(wy(i),t){i.default?(r=!0,Th(i.default,n,a)):r&&Wt(i,e.Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters);for(var o=0;o<a;o++)n[o].symbol===i.symbol&&Wt(i.name,e.Diagnostics.Duplicate_identifier_0,e.declarationNameToString(i.name))}}}function Th(n,t,r){!function n(a){if(168===a.kind){var i=vc(a);if(262144&i.flags)for(var o=r;o<t.length;o++)i.symbol===Yr(t[o])&&Wt(a,e.Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters)}e.forEachChild(a,n)}(n)}function Sh(n){if(1!==n.declarations.length){var t=ir(n);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var r=function(n){return e.filter(n.declarations,(function(e){return 244===e.kind||245===e.kind}))}(n);if(r.length<=1)return;if(!function(n,t){for(var r=e.length(t),a=Ds(t),i=0,o=n;i<o.length;i++){var s=o[i],c=e.getEffectiveTypeParameterDeclarations(s),l=c.length;if(l<a||l>r)return!1;for(var u=0;u<l;u++){var d=c[u],p=t[u];if(d.name.escapedText!==p.symbol.escapedName)return!1;var m=e.getEffectiveConstraintOfTypeParameter(d),f=m&&Kl(m),_=Qo(p);if(f&&_&&!hu(f,_))return!1;var g=d.default&&Kl(d.default),y=ss(p);if(g&&y&&!hu(g,y))return!1}}return!0}(r,Yi(n).localTypeParameters))for(var a=La(n),i=0,o=r;i<o.length;i++){Wt(o[i].name,e.Diagnostics.All_declarations_of_0_must_have_identical_type_parameters,a)}}}}function xh(n){var r;!function(n){var t=e.getSourceFileOfNode(n);(function(n){var t=!1,r=!1;if(!jb(n)&&n.heritageClauses)for(var a=0,i=n.heritageClauses;a<i.length;a++){var o=i[a];if(89===o.token){if(t)return uE(o,e.Diagnostics.extends_clause_already_seen);if(r)return uE(o,e.Diagnostics.extends_clause_must_precede_implements_clause);if(o.types.length>1)return uE(o.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);t=!0}else{if(e.Debug.assert(112===o.token),r)return uE(o,e.Diagnostics.implements_clause_already_seen);r=!0}Yb(o)}})(n)||Wb(n.typeParameters,t)}(n),pv(n),n.name&&(bh(n.name,e.Diagnostics.Class_name_cannot_be_0),Mv(n,n.name),Ov(n,n.name),8388608&n.flags||(r=n.name,1===w&&\"Object\"===r.escapedText&&F!==e.ModuleKind.ES2015&&F!==e.ModuleKind.ESNext&&Wt(r,e.Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0,e.ModuleKind[F]))),Eh(e.getEffectiveTypeParameterDeclarations(n)),nv(n);var a=Yr(n),i=Yi(a),o=go(i),s=Ci(a);Sh(a),function(n){for(var t=e.createUnderscoreEscapedMap(),r=e.createUnderscoreEscapedMap(),a=0,i=n.members;a<i.length;a++){var o=i[a];if(161===o.kind)for(var s=0,c=o.parameters;s<c.length;s++){var l=c[s];e.isParameterPropertyDeclaration(l,o)&&!e.isBindingPattern(l.name)&&m(t,l.name,l.name.escapedText,3)}else{var u=e.hasModifier(o,32)?r:t,d=o.name,p=d&&e.getPropertyNameForPropertyNameNode(d);if(d&&p)switch(o.kind){case 162:m(u,d,p,1);break;case 163:m(u,d,p,2);break;case 158:m(u,d,p,3);break;case 160:m(u,d,p,8)}}}function m(n,t,r,a){var i=n.get(r);i?8&i?8!==a&&Wt(t,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(t)):i&a?Wt(t,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(t)):n.set(r,i|a):n.set(r,a)}}(n),8388608&n.flags||function(n){for(var t=0,r=n.members;t<r.length;t++){var a=r[t],i=a.name;if(e.hasModifier(a,32)&&i){var o=e.getPropertyNameForPropertyNameNode(i);switch(o){case\"name\":case\"length\":case\"caller\":case\"arguments\":case\"prototype\":Wt(i,e.Diagnostics.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1,o,wa(Yr(n)))}}}}(n);var c=e.getEffectiveBaseTypeNode(n);if(c){e.forEach(c.typeArguments,Vh),w<2&&Vb(c.parent,1);var l=e.getClassExtendsHeritageElement(n);l&&l!==c&&Py(l.expression);var u=Vi(i);if(u.length&&t){var d=u[0],p=Bi(i),m=ls(p);if(function(n,t){var r=_s(n,1);if(r.length){var a=r[0].declaration;if(a&&e.hasModifier(a,8)){var i=e.getClassLikeDeclarationOfSymbol(n.symbol);Zh(t,i)||Wt(t,e.Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private,Or(n.symbol))}}}(m,c),Vh(c.expression),e.some(c.typeArguments)){e.forEach(c.typeArguments,Vh);for(var f=0,_=Fi(m,c.typeArguments,c);f<_.length;f++){if(!qy(c,_[f].typeParameters))break}}if(Du(o,T=go(d,i.thisType),void 0)?Du(s,vu(m),n.name||n,e.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1):Lh(n,o,T,e.Diagnostics.Class_0_incorrectly_extends_base_class_1),8650752&p.flags&&!Ri(s)&&Wt(n.name||n,e.Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any),!(m.symbol&&32&m.symbol.flags||8650752&p.flags)){var g=Gi(m,c.typeArguments,c);e.forEach(g,(function(e){return!_g(e.declaration)&&!hu(ws(e),d)}))&&Wt(c.expression,e.Diagnostics.Base_constructors_must_all_have_the_same_return_type)}!function(n,t){var r=Xo(t);e:for(var a=0,i=r;a<i.length;a++){var o=i[a],s=Ch(o);if(!(4194304&s.flags)){var c=Ch(qo(n,s.escapedName)),l=e.getDeclarationModifierFlagsFromSymbol(s);if(e.Debug.assert(!!c,\"derived should point to something, even if it is the base class' declaration.\"),c===s){var u=e.getClassLikeDeclarationOfSymbol(n.symbol);if(128&l&&(!u||!e.hasModifier(u,128))){for(var d=0,p=Vi(n);d<p.length;d++){var m=p[d];if(m!==t){var f=qo(m,s.escapedName),_=f&&Ch(f);if(_&&_!==s)continue e}}213===u.kind?Wt(u,e.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1,La(o),Aa(t)):Wt(u,e.Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2,Aa(n),La(o),Aa(t))}}else{var g=e.getDeclarationModifierFlagsFromSymbol(c);if(8&l||8&g)continue;var y=void 0,v=98308&s.flags,h=98308&c.flags;if(v&&h){if(!P.useDefineForClassFields||128&l&&!(s.valueDeclaration&&e.isPropertyDeclaration(s.valueDeclaration)&&s.valueDeclaration.initializer)||s.valueDeclaration&&245===s.valueDeclaration.parent.kind||c.valueDeclaration&&e.isBinaryExpression(c.valueDeclaration))continue;if(4!==v&&4===h)y=e.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_property;else{if(4!==v||4===h){var b=e.find(c.declarations,(function(e){return 158===e.kind&&!e.initializer}));if(b&&!(33554432&c.flags)&&!(128&l)&&!(128&g)&&!c.declarations.some((function(e){return 8388608&e.flags}))){var E=ra(e.getClassLikeDeclarationOfSymbol(n.symbol)),T=b.name;if(b.exclamationToken||!E||!e.isIdentifier(T)||!B||!Dh(T,n,E)){var S=e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;Wt(e.getNameOfDeclaration(c.valueDeclaration)||c.valueDeclaration,S,La(s),Aa(t))}}continue}y=e.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_accessor}}else if(e_(s)){if(e_(c)||4&c.flags)continue;e.Debug.assert(!!(98304&c.flags)),y=e.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor}else y=98304&s.flags?e.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:e.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;Wt(e.getNameOfDeclaration(c.valueDeclaration)||c.valueDeclaration,y,Aa(t),La(s),Aa(n))}}}}(i,d)}}var y=e.getClassImplementsHeritageClauseElements(n);if(y)for(var v=0,h=y;v<h.length;v++){var b=h[v];if(e.isEntityNameExpression(b.expression)||Wt(b.expression,e.Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments),Xy(b),t){var E=Kl(b);if(E!==ge)if(Ui(E)){var T,S=E.symbol&&32&E.symbol.flags?e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:e.Diagnostics.Class_0_incorrectly_implements_interface_1;Du(o,T=go(E,i.thisType),void 0)||Lh(n,o,T,S)}else Wt(b,e.Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members)}}t&&(hh(i),Uy(n),function(n){if(!B||!j||8388608&n.flags)return;for(var t=ra(n),r=0,a=n.members;r<a.length;r++){var i=a[r];if(!(2&e.getModifierFlags(i))&&Ah(i)){var o=i.name;if(e.isIdentifier(o)){var s=Ci(Yr(i));3&s.flags||32768&Id(s)||t&&Dh(o,s,t)||Wt(i.name,e.Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor,e.declarationNameToString(o))}}}}(n))}function Lh(n,t,r,a){for(var i=!1,o=function(n){if(e.hasStaticModifier(n))return\"continue\";var a=n.name&&nb(n.name)||nb(n);if(a){var o=ms(t,a.escapedName),s=ms(r,a.escapedName);if(o&&s){Du(Ci(o),Ci(s),n.name||n,void 0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2,La(a),Aa(t),Aa(r))}))||(i=!0)}}},s=0,c=n.members;s<c.length;s++){o(c[s])}i||Du(t,r,n.name||n,a)}function Ch(n){return 1&e.getCheckFlags(n)?n.target:n}function Ah(n){return 158===n.kind&&!e.hasModifier(n,160)&&!n.exclamationToken&&!n.initializer}function Dh(n,t,r){var a=e.createPropertyAccess(e.createThis(),n);return a.expression.parent=a,a.parent=r,a.flowNode=r.returnFlowNode,!(32768&Id(Am(a,t,Pd(t))))}function kh(n){if(jb(n)||function(n){var t=!1;if(n.heritageClauses)for(var r=0,a=n.heritageClauses;r<a.length;r++){var i=a[r];if(89!==i.token)return e.Debug.assert(112===i.token),uE(i,e.Diagnostics.Interface_declaration_cannot_have_implements_clause);if(t)return uE(i,e.Diagnostics.extends_clause_already_seen);t=!0,Yb(i)}}(n),Eh(n.typeParameters),t){bh(n.name,e.Diagnostics.Interface_name_cannot_be_0),nv(n);var r=Yr(n);if(Sh(r),n===e.getDeclarationOfKind(r,245)){var a=Yi(r),i=go(a);if(function(n,t){var r=Vi(n);if(r.length<2)return!0;var a=e.createUnderscoreEscapedMap();e.forEach(ao(n).declaredProperties,(function(e){a.set(e.escapedName,{prop:e,containingType:n})}));for(var i=!0,o=0,s=r;o<s.length;o++)for(var c=s[o],l=0,u=Xo(go(c,n.thisType));l<u.length;l++){var d=u[l],p=a.get(d.escapedName);if(p){if(p.containingType!==n&&0===cd(p.prop,d,bu)){i=!1;var m=Aa(p.containingType),f=Aa(c),_=e.chainDiagnosticMessages(void 0,e.Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical,La(d),m,f);_=e.chainDiagnosticMessages(_,e.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2,Aa(n),m,f),Rt.add(e.createDiagnosticForNodeFromMessageChain(t,_))}}else a.set(d.escapedName,{prop:d,containingType:c})}return i}(a,n.name)){for(var o=0,s=Vi(a);o<s.length;o++){Du(i,go(s[o],a.thisType),n.name,e.Diagnostics.Interface_0_incorrectly_extends_interface_1)}hh(a)}}Vy(n)}e.forEach(e.getInterfaceBaseTypeNodes(n),(function(n){e.isEntityNameExpression(n.expression)||Wt(n.expression,e.Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments),Xy(n)})),e.forEach(n.members,Vh),t&&(Uy(n),_v(n))}function Nh(e){var n=or(e);if(!(16384&n.flags)){n.flags|=16384;for(var t=0,r=0,a=e.members;r<a.length;r++){var i=a[r],o=Ih(i,t);or(i).enumMemberValue=o,t=\"number\"==typeof o?o+1:void 0}}}function Ih(n,t){if(qa(n.name))Wt(n.name,e.Diagnostics.Computed_property_names_are_not_allowed_in_enums);else{var r=e.getTextOfPropertyName(n.name);Df(r)&&!Af(r)&&Wt(n.name,e.Diagnostics.An_enum_member_cannot_have_a_numeric_name)}return n.initializer?function(n){var t=Wi(Yr(n.parent)),r=e.isEnumConst(n.parent),a=n.initializer,i=1!==t||Hi(n)?function t(r){switch(r.kind){case 206:var a=t(r.operand);if(\"number\"==typeof a)switch(r.operator){case 39:return a;case 40:return-a;case 54:return~a}break;case 208:var i=t(r.left),s=t(r.right);if(\"number\"==typeof i&&\"number\"==typeof s)switch(r.operatorToken.kind){case 51:return i|s;case 50:return i&s;case 48:return i>>s;case 49:return i>>>s;case 47:return i<<s;case 52:return i^s;case 41:return i*s;case 43:return i/s;case 39:return i+s;case 40:return i-s;case 44:return i%s;case 42:return Math.pow(i,s)}else if(\"string\"==typeof i&&\"string\"==typeof s&&39===r.operatorToken.kind)return i+s;break;case 10:case 14:return r.text;case 8:return _E(r),+r.text;case 199:return t(r.expression);case 75:var c=r;return Af(c.escapedText)?+c.escapedText:e.nodeIsMissing(r)?0:o(r,Yr(n.parent),c.escapedText);case 194:case 193:var l=r;if(function n(t){return 75===t.kind||193===t.kind&&n(t.expression)||194===t.kind&&n(t.expression)&&e.isStringLiteralLike(t.argumentExpression)}(l)){var u=Oy(l.expression);if(u.symbol&&384&u.symbol.flags){var d=void 0;return d=193===l.kind?l.name.escapedText:e.escapeLeadingUnderscores(e.cast(l.argumentExpression,e.isLiteralExpression).text),o(r,u.symbol,d)}}}return}(a):void 0;if(void 0!==i)r&&\"number\"==typeof i&&!isFinite(i)&&Wt(a,isNaN(i)?e.Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:e.Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value);else{if(1===t)return Wt(a,e.Diagnostics.Computed_values_are_not_permitted_in_an_enum_with_string_valued_members),0;r?Wt(a,e.Diagnostics.const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values):8388608&n.parent.flags?Wt(a,e.Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression):Du(Py(a),Yi(Yr(n.parent)),a,void 0)}return i;function o(t,r,a){var i=r.exports.get(a);if(i){var o=i.valueDeclaration;if(o!==n)return lr(o,n)?Cb(o):(Wt(t,e.Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums),0)}}}(n):8388608&n.parent.flags&&!e.isEnumConst(n.parent)&&0===Wi(Yr(n.parent))?void 0:void 0!==t?t:void Wt(n.name,e.Diagnostics.Enum_member_must_have_initializer)}function Mh(n){if(t){var r=e.isGlobalScopeAugmentation(n),a=8388608&n.flags;r&&!a&&Wt(n.name,e.Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);var i=e.isAmbientModule(n);if(Fh(n,i?e.Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:e.Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module))return;jb(n)||a||10!==n.name.kind||pE(n.name,e.Diagnostics.Only_ambient_modules_can_use_quoted_names),e.isIdentifier(n.name)&&(Mv(n,n.name),Ov(n,n.name)),nv(n);var o=Yr(n);if(512&o.flags&&!a&&o.declarations.length>1&&C(n,!!P.preserveConstEnums||!!P.isolatedModules)){var s=function(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t];if((244===a.kind||243===a.kind&&e.nodeIsPresent(a.body))&&!(8388608&a.flags))return a}}(o);s&&(e.getSourceFileOfNode(n)!==e.getSourceFileOfNode(s)?Wt(n.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):n.pos<s.pos&&Wt(n.name,e.Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged));var c=e.getDeclarationOfKind(o,244);c&&(d=n,p=c,m=e.getEnclosingBlockScopeContainer(d),f=e.getEnclosingBlockScopeContainer(p),sr(m)?sr(f):!sr(f)&&m===f)&&(or(n).flags|=32768)}if(i)if(e.isExternalModuleAugmentation(n)){if((r||33554432&Yr(n).flags)&&n.body)for(var l=0,u=n.body.statements;l<u.length;l++){Oh(u[l],r)}}else sr(n.parent)?r?Wt(n.name,e.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations):e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(n.name))&&Wt(n.name,e.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name):Wt(n.name,r?e.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:e.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces)}var d,p,m,f;n.body&&(Vh(n.body),e.isGlobalScopeAugmentation(n)||_v(n))}function Oh(n,t){switch(n.kind){case 224:for(var r=0,a=n.declarationList.declarations;r<a.length;r++){Oh(a[r],t)}break;case 258:case 259:uE(n,e.Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);break;case 252:case 253:uE(n,e.Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);break;case 190:case 241:var i=n.name;if(e.isBindingPattern(i)){for(var o=0,s=i.elements;o<s.length;o++){Oh(s[o],t)}break}case 244:case 247:case 243:case 245:case 248:case 246:if(t)return;var c=Yr(n);if(c){var l=!(33554432&c.flags);l||(l=!!c.parent&&e.isExternalModuleAugmentation(c.parent.declarations[0]))}}}function Rh(n){var t=e.getExternalModuleName(n);if(!t||e.nodeIsMissing(t))return!1;if(!e.isStringLiteral(t))return Wt(t,e.Diagnostics.String_literal_expected),!1;var r=249===n.parent.kind&&e.isAmbientModule(n.parent.parent);return 288===n.parent.kind||r?!(r&&e.isExternalModuleNameRelative(t.text)&&!Oa(n))||(Wt(n,e.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name),!1):(Wt(t,259===n.kind?e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace:e.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module),!1)}function Ph(n){var t=Yr(n),r=kr(t);if(!(67108864&t.flags)&&r!==de){var a=(1160127&(t=Xr(t.exportSymbol||t)).flags?111551:0)|(788968&t.flags?788968:0)|(1920&t.flags?1920:0);if(r.flags&a)Wt(n,261===n.kind?e.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0:e.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0,La(t));!P.isolatedModules||261!==n.kind||111551&r.flags||8388608&n.flags||Wt(n,e.Diagnostics.Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided)}}function wh(e){Mv(e,e.name),Ov(e,e.name),Ph(e)}function Fh(e,n){var t=288===e.parent.kind||249===e.parent.kind||248===e.parent.kind;return t||uE(e,n),!t}function Gh(n){if(Ph(n),e.getEmitDeclarations(P)&&Ga(n.propertyName||n.name,!0),!n.parent.parent.moduleSpecifier){var t=n.propertyName||n.name,r=ur(t,t.escapedText,2998271,void 0,void 0,!0);if(r&&(r===Y||r===Q||sr(Ka(r.declarations[0]))))Wt(t,e.Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module,e.idText(t));else{Nr(n);var a=r&&(2097152&r.flags?kr(r):r);(!a||a===de||111551&a.flags)&&hy(n.propertyName||n.name)}}}function Bh(n){var t=Yr(n),r=ir(t);if(!r.exportsChecked){var a=t.exports.get(\"export=\");if(a&&function(n){return e.forEachEntry(n.exports,(function(e,n){return\"export=\"!==n}))}(t)){var i=hr(a)||a.valueDeclaration;Oa(i)||e.isInJSFile(i)||Wt(i,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var o=zr(t);o&&o.forEach((function(n,t){var r=n.declarations,a=n.flags;if(\"__export\"!==t&&!(1984&a)){var i=e.countWhere(r,S);if(!(524288&a&&i<=2)&&i>1)for(var o=0,s=r;o<s.length;o++){var c=s[o];A(c)&&Rt.add(e.createDiagnosticForNode(c,e.Diagnostics.Cannot_redeclare_exported_variable_0,e.unescapeLeadingUnderscores(t)))}}})),r.exportsChecked=!0}}function Vh(n){if(n){var a=s;s=n,y=0,function(n){e.isInJSFile(n)&&e.forEach(n.jsDoc,(function(n){var t=n.tags;return e.forEach(t,Vh)}));var a=n.kind;if(r)switch(a){case 248:case 244:case 245:case 243:r.throwIfCancellationRequested()}a>=224&&a<=240&&n.flowNode&&!Sm(n.flowNode)&&qt(!1===P.allowUnreachableCode,n,e.Diagnostics.Unreachable_code_detected);switch(a){case 154:return wy(n);case 155:return Fy(n);case 158:case 157:return jy(n);case 169:case 170:case 164:case 165:case 166:return By(n);case 160:case 159:return function(n){iE(n)||Zb(n.name),fv(n),e.hasModifier(n,128)&&160===n.kind&&n.body&&Wt(n,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(n.name))}(n);case 161:return Ky(n);case 162:case 163:return Hy(n);case 168:return Xy(n);case 167:return function(n){var t=function(e){switch(e.parent.kind){case 201:case 164:case 243:case 200:case 169:case 160:case 159:var n=e.parent;if(e===n.type)return n}}(n);if(t){var r=Ns(t),a=Ps(r);if(a){Vh(n.type);var i=n.parameterName;if(0===a.kind||2===a.kind)jl(i);else if(a.parameterIndex>=0){if(I(r)&&a.parameterIndex===r.parameters.length-1)Wt(i,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);else if(a.type){Du(a.type,Ci(r.parameters[a.parameterIndex]),n.type,void 0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)}))}}else if(i){for(var o=!1,s=0,c=t.parameters;s<c.length;s++){var l=c[s].name;if(e.isBindingPattern(l)&&Gy(l,i,a.parameterName)){o=!0;break}}o||Wt(n.parameterName,e.Diagnostics.Cannot_find_parameter_0,a.parameterName)}}}else Wt(n,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods)}(n);case 171:return function(e){bc(e)}(n);case 172:return function(n){e.forEach(n.members,Vh),t&&(hh(Dl(n)),Uy(n),Vy(n))}(n);case 173:return function(e){Vh(e.elementType)}(n);case 174:return function(n){for(var t=n.elementTypes,r=!1,a=0;a<t.length;a++){var i=t[a];if(176===i.kind){if(a!==t.length-1){pE(i,e.Diagnostics.A_rest_element_must_be_last_in_a_tuple_type);break}dd(Kl(i.type))||Wt(i,e.Diagnostics.A_rest_element_type_must_be_an_array_type)}else if(175===i.kind)r=!0;else if(r){pE(i,e.Diagnostics.A_required_element_cannot_follow_an_optional_element);break}}e.forEach(n.elementTypes,Vh)}(n);case 177:case 178:return function(n){e.forEach(n.types,Vh)}(n);case 181:case 175:case 176:return Vh(n.type);case 182:return function(e){jl(e)}(n);case 183:return Qy(n);case 179:return function(n){e.forEachChild(n,Vh)}(n);case 180:return function(n){e.findAncestor(n,(function(e){return e.parent&&179===e.parent.kind&&e.parent.extendsType===e}))||pE(n,e.Diagnostics.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type),Vh(n.typeParameter),_v(n)}(n);case 187:return function(e){Vh(e.argument),Kl(e)}(n);case 305:return function(n){var t=e.getJSDocHost(n);if(e.isClassDeclaration(t)||e.isClassExpression(t)){var r=e.getJSDocTags(t).filter(e.isJSDocAugmentsTag);e.Debug.assert(r.length>0),r.length>1&&Wt(r[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var a=mv(n.class.expression),i=e.getClassExtendsHeritageElement(t);if(i){var o=mv(i.expression);o&&a.escapedText!==o.escapedText&&Wt(a,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(n.tagName),e.idText(a),e.idText(o))}}else Wt(t,e.Diagnostics.JSDoc_0_is_not_attached_to_a_class,e.idText(n.tagName))}(n);case 315:case 308:case 309:return function(n){n.typeExpression||Wt(n.name,e.Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags),n.name&&bh(n.name,e.Diagnostics.Type_alias_name_cannot_be_0),Vh(n.typeExpression)}(n);case 314:return function(e){Vh(e.constraint);for(var n=0,t=e.typeParameters;n<t.length;n++){Vh(t[n])}}(n);case 313:return function(e){Vh(e.typeExpression)}(n);case 310:return function(n){if(Vh(n.typeExpression),!e.getParameterSymbolFromJSDoc(n)){var t=e.getHostSignatureFromJSDoc(n);if(t){var r=e.getJSDocTags(t).filter(e.isJSDocParameterTag).indexOf(n);if(r>-1&&r<t.parameters.length&&e.isBindingPattern(t.parameters[r].name))return;Ms(t)?e.findLast(e.getJSDocTags(t),e.isJSDocParameterTag)===n&&n.typeExpression&&n.typeExpression.type&&!dd(Kl(n.typeExpression.type))&&Wt(n.name,e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type,e.idText(152===n.name.kind?n.name.right:n.name)):e.isQualifiedName(n.name)?Wt(n.name,e.Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1,e.entityNameToString(n.name),e.entityNameToString(n.name.left)):Wt(n.name,e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name,e.idText(n.name))}}}(n);case 298:!function(n){!t||n.type||e.isJSDocConstructSignature(n)||Qd(n,me),By(n)}(n);case 296:case 295:case 293:case 294:case 302:return Uh(n),void e.forEachChild(n,Vh);case 299:return void function(n){Uh(n),Vh(n.type);var t=n.parent;if(e.isParameter(t)&&e.isJSDocFunctionType(t.parent))return void(e.last(t.parent.parameters)!==t&&Wt(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list));e.isJSDocTypeExpression(t)||Wt(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var r=n.parent.parent;if(!e.isJSDocParameterTag(r))return void Wt(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var a=e.getParameterSymbolFromJSDoc(r);if(!a)return;var i=e.getHostSignatureFromJSDoc(r);i&&e.last(i.parameters).symbol===a||Wt(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}(n);case 292:return Vh(n.type);case 184:return function(e){Vh(e.objectType),Vh(e.indexType),Yy(hl(e),e)}(n);case 185:return function(n){Vh(n.typeParameter),Vh(n.type),n.type||Qd(n,me),Du(wo(bl(n)),Ve,e.getEffectiveConstraintOfTypeParameter(n.typeParameter))}(n);case 243:return function(e){t&&(fv(e),$b(e),Mv(e,e.name),Ov(e,e.name))}(n);case 222:case 249:return Dv(n);case 224:return Vv(n);case 225:return function(e){fE(e),Py(e.expression)}(n);case 226:return Uv(n);case 227:return function(e){fE(e),Vh(e.statement),jv(e.expression)}(n);case 228:return function(e){fE(e),jv(e.expression),Vh(e.statement)}(n);case 229:return function(n){fE(n)||n.initializer&&242===n.initializer.kind&&cE(n.initializer),n.initializer&&(242===n.initializer.kind?e.forEach(n.initializer.declarations,Gv):Py(n.initializer)),n.condition&&jv(n.condition),n.incrementor&&Py(n.incrementor),Vh(n.statement),n.locals&&_v(n)}(n);case 230:return Kv(n);case 231:return function(n){if(tE(n),n.awaitModifier?2==(6&e.getFunctionFlags(e.getContainingFunction(n)))&&w<99&&Vb(n,32768):P.downlevelIteration&&w<2&&Vb(n,256),242===n.initializer.kind)Hv(n);else{var t=n.initializer,r=Wv(n.expression,n.awaitModifier);if(191===t.kind||192===t.kind)my(t,r||ge);else{var a=Py(t);ay(t,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access),r&&ku(r,a,t,n.expression)}}Vh(n.statement),n.locals&&_v(n)}(n);case 232:case 233:return _h(n);case 234:return function(n){if(!fE(n)){var t=e.getContainingFunction(n);if(t){var r=ws(Ns(t)),a=e.getFunctionFlags(t);if(B||n.expression||131072&r.flags){var i=n.expression?hy(n.expression):ve;if(163===t.kind)n.expression&&Wt(n,e.Diagnostics.Setters_cannot_return_a_value);else if(161===t.kind)n.expression&&!ku(i,r,n,n.expression)&&Wt(n,e.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);else if(Fs(t)){var o=gh(r,a),s=2&a?av(i,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):i;o&&ku(s,o,n,n.expression)}}else 161!==t.kind&&P.noImplicitReturns&&!yh(t,r)&&Wt(n,e.Diagnostics.Not_all_code_paths_return_a_value)}else uE(n,e.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body)}}(n);case 235:return function(n){fE(n)||32768&n.flags&&uE(n,e.Diagnostics.with_statements_are_not_allowed_in_an_async_function_block),Py(n.expression);var t=e.getSourceFileOfNode(n);if(!lE(t)){var r=e.getSpanOfTokenAtPosition(t,n.pos).start;dE(t,r,n.statement.pos-r,e.Diagnostics.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any)}}(n);case 236:return function(n){var r;fE(n);var a=!1,i=Py(n.expression),o=bd(i);e.forEach(n.caseBlock.clauses,(function(n){if(276!==n.kind||a||(void 0===r?r=n:(pE(n,e.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement),a=!0)),t&&275===n.kind){var s=Py(n.expression),c=bd(s),l=i;c&&o||(s=c?Ed(s):s,l=Ed(i)),fy(l,s)||Fu(s,l,n.expression,void 0)}e.forEach(n.statements,Vh),P.noFallthroughCasesInSwitch&&n.fallthroughFlowNode&&Sm(n.fallthroughFlowNode)&&Wt(n,e.Diagnostics.Fallthrough_case_in_switch)})),n.caseBlock.locals&&_v(n.caseBlock)}(n);case 237:return function(n){fE(n)||e.findAncestor(n.parent,(function(t){return e.isFunctionLike(t)?\"quit\":237===t.kind&&t.label.escapedText===n.label.escapedText&&(pE(n.label,e.Diagnostics.Duplicate_label_0,e.getTextOfNode(n.label)),!0)})),Vh(n.statement)}(n);case 238:return vh(n);case 239:return function(n){fE(n),Dv(n.tryBlock);var t=n.catchClause;if(t){if(t.variableDeclaration)if(t.variableDeclaration.type)uE(t.variableDeclaration.type,e.Diagnostics.Catch_clause_variable_cannot_have_a_type_annotation);else if(t.variableDeclaration.initializer)uE(t.variableDeclaration.initializer,e.Diagnostics.Catch_clause_variable_cannot_have_an_initializer);else{var r=t.block.locals;r&&e.forEachKey(t.locals,(function(n){var t=r.get(n);t&&0!=(2&t.flags)&&pE(t.valueDeclaration,e.Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause,n)}))}Dv(t.block)}n.finallyBlock&&Dv(n.finallyBlock)}(n);case 241:return Gv(n);case 190:return Bv(n);case 244:return function(n){n.name||e.hasModifier(n,512)||uE(n,e.Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name),xh(n),e.forEach(n.members,Vh),_v(n)}(n);case 245:return kh(n);case 246:return function(n){jb(n),bh(n.name,e.Diagnostics.Type_alias_name_cannot_be_0),Eh(n.typeParameters),Vh(n.type),_v(n)}(n);case 247:return function(n){if(t){jb(n),bh(n.name,e.Diagnostics.Enum_name_cannot_be_0),Mv(n,n.name),Ov(n,n.name),nv(n),Nh(n);var r=Yr(n);if(n===e.getDeclarationOfKind(r,n.kind)){if(r.declarations.length>1){var a=e.isEnumConst(n);e.forEach(r.declarations,(function(n){e.isEnumDeclaration(n)&&e.isEnumConst(n)!==a&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)}))}var i=!1;e.forEach(r.declarations,(function(n){if(247!==n.kind)return!1;var t=n;if(!t.members.length)return!1;var r=t.members[0];r.initializer||(i?Wt(r.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):i=!0)}))}}}(n);case 248:return Mh(n);case 253:return function(n){if(!Fh(n,e.Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)&&(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_import_declaration_cannot_have_modifiers),Rh(n))){var t=n.importClause;if(t)if(t.name&&wh(t),t.namedBindings)if(255===t.namedBindings.kind)wh(t.namedBindings);else wr(n,n.moduleSpecifier)&&e.forEach(t.namedBindings.elements,wh)}}(n);case 252:return function(n){if(!Fh(n,e.Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)&&(jb(n),e.isInternalModuleImportEqualsDeclaration(n)||Rh(n)))if(wh(n),e.hasModifier(n,1)&&Nr(n),263!==n.moduleReference.kind){var t=kr(Yr(n));if(t!==de){if(111551&t.flags){var r=e.getFirstIdentifier(n.moduleReference);1920&Rr(r,112575).flags||Wt(r,e.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name,e.declarationNameToString(r))}788968&t.flags&&bh(n.name,e.Diagnostics.Import_name_cannot_be_0)}}else F>=e.ModuleKind.ES2015&&!(8388608&n.flags)&&pE(n,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}(n);case 259:return function(n){if(!Fh(n,e.Diagnostics.An_export_declaration_can_only_be_used_in_a_module)&&(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_export_declaration_cannot_have_modifiers),!n.moduleSpecifier||Rh(n)))if(n.exportClause){e.forEach(n.exportClause.elements,Gh);var t=249===n.parent.kind&&e.isAmbientModule(n.parent.parent),r=!t&&249===n.parent.kind&&!n.moduleSpecifier&&8388608&n.flags;288===n.parent.kind||t||r||Wt(n,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var a=wr(n,n.moduleSpecifier);a&&jr(a)&&Wt(n.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,La(a)),F!==e.ModuleKind.System&&F!==e.ModuleKind.ES2015&&F!==e.ModuleKind.ESNext&&Vb(n,65536)}}(n);case 258:return function(n){if(!Fh(n,e.Diagnostics.An_export_assignment_can_only_be_used_in_a_module)){var t=288===n.parent.kind?n.parent:n.parent.parent;if(248!==t.kind||e.isAmbientModule(t)){if(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_export_assignment_cannot_have_modifiers),75===n.expression.kind){var r=n.expression,a=Rr(r,67108863,!0,!0,n);if(a){Pm(a,r);var i=2097152&a.flags?kr(a):a;(i===de||111551&i.flags)&&hy(n.expression)}e.getEmitDeclarations(P)&&Ga(n.expression,!0)}else hy(n.expression);Bh(t),8388608&n.flags&&!e.isEntityNameExpression(n.expression)&&pE(n.expression,e.Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context),!n.isExportEquals||8388608&n.flags||(F>=e.ModuleKind.ES2015?pE(n,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):F===e.ModuleKind.System&&pE(n,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}else n.isExportEquals?Wt(n,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace):Wt(n,e.Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module)}}(n);case 223:case 240:return void fE(n);case 262:(function(e){pv(e)})(n)}}(n),s=a}}function Uh(n){e.isInJSFile(n)||pE(n,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function jh(n){var t=or(e.getSourceFileOfNode(n));if(!(1&t.flags)){t.deferredNodes=t.deferredNodes||e.createMap();var r=\"\"+x(n);t.deferredNodes.set(r,n)}}function Kh(n){var t=s;switch(s=n,y=0,n.kind){case 200:case 201:case 160:case 159:!function(n){e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n));var t=e.getFunctionFlags(n),r=Fs(n);if(Xg(n,r),n.body)if(e.getEffectiveReturnTypeNode(n)||ws(Ns(n)),222===n.body.kind)Vh(n.body);else{var a=Py(n.body),i=Zg(r,t);if(i)if(2==(3&t))ku(av(a,n.body,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member),i,n.body,n.body);else ku(a,i,n.body,n.body)}}(n);break;case 162:case 163:Hy(n);break;case 213:!function(n){e.forEach(n.members,Vh),_v(n)}(n);break;case 265:!function(e){Xf(e)}(n);break;case 264:!function(e){Xf(e.openingElement),Pf(e.closingElement.tagName)?Vf(e.closingElement):Py(e.closingElement.tagName),Ff(e)}(n)}s=t}function Hh(t){e.performance.mark(\"beforeCheck\"),function(t){var r=or(t);if(!(1&r.flags)){if(e.skipTypeChecking(t,P,n))return;!function(n){!!(8388608&n.flags)&&function(n){for(var t=0,r=n.statements;t<r.length;t++){var a=r[t];if((e.isDeclaration(a)||224===a.kind)&&mE(a))return!0}}(n)}(t),e.clear(It),e.clear(Mt),e.forEach(t.statements,Vh),Vh(t.endOfFileToken),function(e){var n=or(e);n.deferredNodes&&n.deferredNodes.forEach(Kh)}(t),e.isExternalOrCommonJsModule(t)&&_v(t),t.isDeclarationFile||!P.noUnusedLocals&&!P.noUnusedParameters||gv(zh(t),(function(n,t,r){!e.containsParseError(n)&&Wh(t)&&Rt.add(r)})),e.isExternalOrCommonJsModule(t)&&Bh(t),It.length&&(e.forEach(It,Nv),e.clear(It)),Mt.length&&(e.forEach(Mt,Iv),e.clear(Mt)),r.flags|=1}}(t),e.performance.mark(\"afterCheck\"),e.performance.measure(\"Check\",\"beforeCheck\",\"afterCheck\")}function Wh(n){switch(n){case 0:return!!P.noUnusedLocals;case 1:return!!P.noUnusedParameters;default:return e.Debug.assertNever(n)}}function zh(n){return st.get(n.path)||e.emptyArray}function qh(t,a){try{return r=a,function(t){if(Jh(),t){var r=Rt.getGlobalDiagnostics(),a=r.length;Hh(t);var i=Rt.getDiagnostics(t.fileName),o=Rt.getGlobalDiagnostics();if(o!==r){var s=e.relativeComplement(r,o,e.compareDiagnostics);return e.concatenate(s,i)}return 0===a&&o.length>0?e.concatenate(o,i):i}return e.forEach(n.getSourceFiles(),Hh),Rt.getDiagnostics()}(t)}finally{r=void 0}}function Jh(){if(!t)throw new Error(\"Trying to get diagnostics from a type checker that does not produce them.\")}function Xh(e){switch(e.kind){case 154:case 244:case 245:case 246:case 247:return!0;default:return!1}}function Yh(e){for(;152===e.parent.kind;)e=e.parent;return 168===e.parent.kind}function Qh(n,t){for(var r;(n=e.getContainingClass(n))&&!(r=t(n)););return r}function Zh(e,n){return!!Qh(e,(function(e){return e===n}))}function $h(e){return void 0!==function(e){for(;152===e.parent.kind;)e=e.parent;return 252===e.parent.kind?e.parent.moduleReference===e?e.parent:void 0:258===e.parent.kind&&e.parent.expression===e?e.parent:void 0}(e)}function eb(n){if(e.isDeclarationName(n))return Yr(n.parent);if(e.isInJSFile(n)&&193===n.parent.kind&&n.parent===n.parent.parent.left){var t=function(n){switch(e.getAssignmentDeclarationKind(n.parent.parent)){case 1:case 3:return Yr(n.parent);case 4:case 2:case 5:return Yr(n.parent.parent)}}(n);if(t)return t}if(258===n.parent.kind&&e.isEntityNameExpression(n)){var r=Rr(n,2998271,!0);if(r&&r!==de)return r}else if(!e.isPropertyAccessExpression(n)&&$h(n)){var a=e.getAncestor(n,252);return e.Debug.assert(void 0!==a),Mr(n,!0)}if(!e.isPropertyAccessExpression(n)){var i=function(n){for(var t=n.parent;e.isQualifiedName(t);)n=t,t=t.parent;if(t&&187===t.kind&&t.qualifier===n)return t}(n);if(i){Kl(i);var o=or(n).resolvedSymbol;return o===de?void 0:o}}for(;e.isRightSideOfQualifiedNameOrPropertyAccess(n);)n=n.parent;if(function(e){for(;193===e.parent.kind;)e=e.parent;return 215===e.parent.kind}(n)){var s=0;215===n.parent.kind?(s=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)&&(s|=111551)):s=1920,s|=2097152;var c=e.isEntityNameExpression(n)?Rr(n,s):void 0;if(c)return c}if(310===n.parent.kind)return e.getParameterSymbolFromJSDoc(n.parent);if(154===n.parent.kind&&314===n.parent.parent.kind){e.Debug.assert(!e.isInJSFile(n));var l=e.getTypeParameterFromJsDoc(n.parent);return l&&l.symbol}if(e.isExpressionNode(n)){if(e.nodeIsMissing(n))return;if(75===n.kind){if(e.isJSXTagName(n)&&Pf(n)){var u=Vf(n.parent);return u===de?void 0:u}return Rr(n,111551,!1,!0)}if(193===n.kind||152===n.kind){var d=or(n);return d.resolvedSymbol?d.resolvedSymbol:(193===n.kind?d_(n):p_(n),d.resolvedSymbol)}}else if(Yh(n)){return Rr(n,s=168===n.parent.kind?788968:1920,!1,!0)}return 167===n.parent.kind?Rr(n,1):void 0}function nb(n){if(288===n.kind)return e.isExternalModule(n)?Xr(n.symbol):void 0;var t=n.parent,r=t.parent;if(!(16777216&n.flags)){if(D(n)){var a=Yr(t);return e.isImportOrExportSpecifier(n.parent)&&n.parent.propertyName===n?If(a):a}if(e.isLiteralComputedPropertyDeclarationName(n))return Yr(t.parent);if(75===n.kind){if($h(n))return eb(n);if(190===t.kind&&188===r.kind&&n===t.propertyName){var i=ms(tb(r),n.escapedText);if(i)return i}}switch(n.kind){case 75:case 193:case 152:return eb(n);case 103:var o=e.getThisContainer(n,!1);if(e.isFunctionLike(o)){var s=Ns(o);if(s.thisParameter)return s.thisParameter}if(e.isInExpressionContext(n))return Py(n).symbol;case 182:return jl(n).symbol;case 101:return Py(n).symbol;case 128:var c=n.parent;return c&&161===c.kind?c.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(n.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(n.parent.parent)===n||(253===n.parent.kind||259===n.parent.kind)&&n.parent.moduleSpecifier===n||e.isInJSFile(n)&&e.isRequireCall(n.parent,!1)||e.isImportCall(n.parent)||e.isLiteralTypeNode(n.parent)&&e.isLiteralImportTypeNode(n.parent.parent)&&n.parent.parent.argument===n.parent)return wr(n,n);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===n)return Yr(t);case 8:var l=e.isElementAccessExpression(t)?t.argumentExpression===n?Oy(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(r)?Kl(r.objectType):void 0;return l&&ms(l,e.escapeLeadingUnderscores(n.text));case 83:case 93:case 38:case 79:return Yr(n.parent);case 187:return e.isLiteralImportTypeNode(n)?nb(n.argument.literal):void 0;case 88:return e.isExportAssignment(n.parent)?e.Debug.assertDefined(n.parent.symbol):void 0;default:return}}}function tb(n){if(16777216&n.flags)return ge;var t,r,a=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(n),i=a&&ji(Yr(a.class));if(e.isPartOfTypeNode(n)){var o=Kl(n);return i?go(o,i.thisType):o}if(e.isExpressionNode(n))return ab(n);if(i&&!a.isImplements){var s=e.firstOrUndefined(Vi(i));return s?go(s,i.thisType):ge}if(Xh(n))return Yi(r=Yr(n));if(75===(t=n).kind&&Xh(t.parent)&&t.parent.name===t)return(r=nb(n))?Yi(r):ge;if(e.isDeclaration(n))return Ci(r=Yr(n));if(D(n))return(r=nb(n))?Ci(r):ge;if(e.isBindingPattern(n))return ri(n.parent,!0)||ge;if($h(n)&&(r=nb(n))){var c=Yi(r);return c!==ge?c:Ci(r)}return ge}function rb(n){if(e.Debug.assert(192===n.kind||191===n.kind),231===n.parent.kind)return my(n,Wv(n.parent.expression,n.parent.awaitModifier)||ge);if(208===n.parent.kind)return my(n,Oy(n.parent.right)||ge);if(279===n.parent.kind){var t=e.cast(n.parent.parent,e.isObjectLiteralExpression);return dy(t,rb(t)||ge,e.indexOfNode(t.properties,n.parent))}var r=e.cast(n.parent,e.isArrayLiteralExpression),a=rb(r)||ge,i=zv(65,a,ve,n.parent)||ge;return py(r,a,r.elements.indexOf(n),i)}function ab(n){return e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),Gl(Oy(n))}function ib(n){var t=Yr(n.parent);return e.hasModifier(n,32)?Ci(t):Yi(t)}function ob(n){var t=n.name;switch(t.kind){case 75:return Vl(e.idText(t));case 8:case 10:return Vl(t.text);case 153:var r=kf(t);return sy(r,12288)?r:Se;default:return e.Debug.fail(\"Unsupported property name.\")}}function sb(n){n=ls(n);var t=e.createSymbolTable(Xo(n)),r=_s(n,0).length?on:_s(n,1).length?sn:void 0;return r&&e.forEach(Xo(r),(function(e){t.has(e.escapedName)||t.set(e.escapedName,e)})),ua(t)}function cb(n){return e.typeHasCallOrConstructSignatures(n,ne)}function lb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t)return!(193===t.parent.kind&&t.parent.name===t)&&Pb(t)===$}return!1}function ub(n){var t=wr(n.parent,n);if(!t||e.isShorthandAmbientModuleSymbol(t))return!0;var r=jr(t),a=ir(t=Vr(t));return void 0===a.exportsSomeValue&&(a.exportsSomeValue=r?!!(111551&t.flags):e.forEachEntry(zr(t),(function(e){return(e=Dr(e))&&!!(111551&e.flags)}))),a.exportsSomeValue}function db(n,t){var r=e.getParseTreeNode(n,e.isIdentifier);if(r){var a=Pb(r,function(n){return e.isModuleOrEnumDeclaration(n.parent)&&n===n.parent.name}(r));if(a){if(1048576&a.flags){var i=Xr(a.exportSymbol);if(!t&&944&i.flags&&!(3&i.flags))return;a=i}var o=Qr(a);if(o){if(512&o.flags&&288===o.valueDeclaration.kind){var s=o.valueDeclaration;return s!==e.getSourceFileOfNode(r)?void 0:s}return e.findAncestor(r.parent,(function(n){return e.isModuleOrEnumDeclaration(n)&&Yr(n)===o}))}}}}function pb(n){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(Ar(r,111551))return hr(r)}}function mb(n){if(418&n.flags&&!e.isSourceFile(n.valueDeclaration)){var t=ir(n);if(void 0===t.isDeclarationWithCollidingName){var r=e.getEnclosingBlockScopeContainer(n.valueDeclaration);if(e.isStatementWithLocals(r)||function(n){return e.isBindingElement(n.valueDeclaration)&&278===e.walkUpBindingElementsAndPatterns(n.valueDeclaration).parent.kind}(n)){var a=or(n.valueDeclaration);if(ur(r.parent,n.escapedName,111551,void 0,void 0,!1))t.isDeclarationWithCollidingName=!0;else if(262144&a.flags){var i=524288&a.flags,o=e.isIterationStatement(r,!1),s=222===r.kind&&e.isIterationStatement(r.parent,!1);t.isDeclarationWithCollidingName=!(e.isBlockScopedContainerTopLevel(r)||i&&(o||s))}else t.isDeclarationWithCollidingName=!1}}return t.isDeclarationWithCollidingName}return!1}function fb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(r&&mb(r))return r.valueDeclaration}}}function _b(n){var t=e.getParseTreeNode(n,e.isDeclaration);if(t){var r=Yr(t);if(r)return mb(r)}return!1}function gb(n){switch(n.kind){case 252:case 254:case 255:case 257:case 261:return vb(Yr(n)||de);case 259:var t=n.exportClause;return!!t&&e.some(t.elements,gb);case 258:return!n.expression||75!==n.expression.kind||vb(Yr(n)||de)}return!1}function yb(n){var t=e.getParseTreeNode(n,e.isImportEqualsDeclaration);return!(void 0===t||288!==t.parent.kind||!e.isInternalModuleImportEqualsDeclaration(t))&&(vb(Yr(t))&&t.moduleReference&&!e.nodeIsMissing(t.moduleReference))}function vb(e){var n=kr(e);return n===de||!!(111551&n.flags)&&(P.preserveConstEnums||!hb(n))}function hb(e){return uy(e)||!!e.constEnumOnlyModule}function bb(n){if(e.nodeIsPresent(n.body)){if(e.isGetAccessor(n)||e.isSetAccessor(n))return!1;var t=Os(Yr(n));return t.length>1||1===t.length&&t[0].declaration!==n}return!1}function Eb(n){return!(!B||Ls(n)||e.isJSDocParameterTag(n)||!n.initializer||e.hasModifier(n,92))}function Tb(n){return B&&Ls(n)&&!n.initializer&&e.hasModifier(n,92)}function Sb(n){var t=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!t)return!1;var r=Yr(t);return!!(r&&16&r.flags)&&!!e.forEachEntry(Wr(r),(function(n){return 111551&n.flags&&n.valueDeclaration&&e.isPropertyAccessExpression(n.valueDeclaration)}))}function xb(n){var t=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!t)return e.emptyArray;var r=Yr(t);return r&&Xo(Ci(r))||e.emptyArray}function Lb(e){return or(e).flags||0}function Cb(e){return Nh(e.parent),or(e).enumMemberValue}function Ab(e){switch(e.kind){case 282:case 193:case 194:return!0}return!1}function Db(n){if(282===n.kind)return Cb(n);var t=or(n).resolvedSymbol;if(t&&8&t.flags){var r=t.valueDeclaration;if(e.isEnumConst(r.parent))return Cb(r)}}function kb(e){return!!(524288&e.flags)&&_s(e,0).length>0}function Nb(n,t){var r=e.getParseTreeNode(n,e.isEntityName);if(!r)return e.TypeReferenceSerializationKind.Unknown;if(t&&!(t=e.getParseTreeNode(t)))return e.TypeReferenceSerializationKind.Unknown;var a=Rr(r,111551,!0,!1,t),i=Rr(r,788968,!0,!1,t);if(a&&a===i){var o=Dc(!1);if(o&&a===o)return e.TypeReferenceSerializationKind.Promise;var s=Ci(a);if(s&&Pi(s))return e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!i)return e.TypeReferenceSerializationKind.Unknown;var c=Yi(i);return c===ge?e.TypeReferenceSerializationKind.Unknown:3&c.flags?e.TypeReferenceSerializationKind.ObjectType:sy(c,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:sy(c,528)?e.TypeReferenceSerializationKind.BooleanType:sy(c,296)?e.TypeReferenceSerializationKind.NumberLikeType:sy(c,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:sy(c,132)?e.TypeReferenceSerializationKind.StringLikeType:Cd(c)?e.TypeReferenceSerializationKind.ArrayLikeType:sy(c,12288)?e.TypeReferenceSerializationKind.ESSymbolType:kb(c)?e.TypeReferenceSerializationKind.TypeWithCallSignature:dd(c)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function Ib(n,t,r,a,i){var o=e.getParseTreeNode(n,e.isVariableLikeOrAccessor);if(!o)return e.createToken(124);var s=Yr(o),c=!s||133120&s.flags?ge:Td(Ci(s));return 8192&c.flags&&c.symbol===s&&(r|=1048576),i&&(c=Pd(c)),J.typeToTypeNode(c,t,1024|r,a)}function Mb(n,t,r,a){var i=e.getParseTreeNode(n,e.isFunctionLike);if(!i)return e.createToken(124);var o=Ns(i);return J.typeToTypeNode(ws(o),t,1024|r,a)}function Ob(n,t,r,a){var i=e.getParseTreeNode(n,e.isExpression);if(!i)return e.createToken(124);var o=Xd(ab(i));return J.typeToTypeNode(o,t,1024|r,a)}function Rb(n){return X.has(e.escapeLeadingUnderscores(n))}function Pb(n,t){var r=or(n).resolvedSymbol;if(r)return r;var a=n;if(t){var i=n.parent;e.isDeclaration(i)&&n===i.name&&(a=Ka(i))}return ur(a,n.escapedText,3257279,void 0,void 0,!0)}function wb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(r)return na(r).valueDeclaration}}}function Fb(n){return!!(e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n))&&Bl(Ci(Yr(n)))}function Gb(n,t){return function(n,t,r){return(1024&n.flags?J.symbolToExpression(n.symbol,111551,t,void 0,r):n===De?e.createTrue():n===Ce&&e.createFalse())||e.createLiteral(n.value)}(Ci(Yr(n)),n,t)}function Bb(n){var t=248===n.kind?e.tryCast(n.name,e.isStringLiteral):e.getExternalModuleName(n),r=Fr(t,t,void 0);if(r)return e.getDeclarationOfKind(r,288)}function Vb(n,t){if((a&t)!==t&&P.importHelpers){var r=e.getSourceFileOfNode(n);if(e.isEffectiveExternalModule(r,P)&&!(8388608&n.flags)){var i=function(n,t){o||(o=Gr(n,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,t)||de);return o}(r,n);if(i!==de)for(var s=t&~a,c=1;c<=131072;c<<=1)if(s&c){var l=Ub(c);cr(i.exports,e.escapeLeadingUnderscores(l),111551)||Wt(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,l)}a|=t}}}function Ub(n){switch(n){case 1:return\"__extends\";case 2:return\"__assign\";case 4:return\"__rest\";case 8:return\"__decorate\";case 16:return\"__metadata\";case 32:return\"__param\";case 64:return\"__awaiter\";case 128:return\"__generator\";case 256:return\"__values\";case 512:return\"__read\";case 1024:return\"__spread\";case 2048:return\"__spreadArrays\";case 4096:return\"__await\";case 8192:return\"__asyncGenerator\";case 16384:return\"__asyncDelegator\";case 32768:return\"__asyncValues\";case 65536:return\"__exportStar\";case 131072:return\"__makeTemplateObject\";default:return e.Debug.fail(\"Unrecognized helper\")}}function jb(n){return function(n){if(!n.decorators)return!1;if(!e.nodeCanBeDecorated(n,n.parent,n.parent.parent))return 160!==n.kind||e.nodeIsPresent(n.body)?uE(n,e.Diagnostics.Decorators_are_not_valid_here):uE(n,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);if(162===n.kind||163===n.kind){var t=e.getAllAccessorDeclarations(n.parent.members,n);if(t.firstAccessor.decorators&&n===t.secondAccessor)return uE(n,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}return!1}(n)||function(n){var t,r,a,i,o=function(n){return!!n.modifiers&&(function(n){switch(n.kind){case 162:case 163:case 161:case 158:case 157:case 160:case 159:case 166:case 248:case 253:case 252:case 259:case 258:case 200:case 201:case 155:return!1;default:if(249===n.parent.kind||288===n.parent.kind)return!1;switch(n.kind){case 243:return Kb(n,125);case 244:return Kb(n,121);case 245:case 224:case 246:return!0;case 247:return Kb(n,80);default:return e.Debug.fail(),!1}}}(n)?uE(n,e.Diagnostics.Modifiers_cannot_appear_here):void 0)}(n);if(void 0!==o)return o;for(var s=0,c=0,l=n.modifiers;c<l.length;c++){var u=l[c];if(137!==u.kind){if(157===n.kind||159===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_type_member,e.tokenToString(u.kind));if(166===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_an_index_signature,e.tokenToString(u.kind))}switch(u.kind){case 80:if(247!==n.kind)return pE(n,e.Diagnostics.A_class_member_cannot_have_the_0_keyword,e.tokenToString(80));break;case 118:case 117:case 116:var d=Ma(e.modifierToFlag(u.kind));if(28&s)return pE(u,e.Diagnostics.Accessibility_modifier_already_seen);if(32&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"static\");if(64&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"readonly\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"async\");if(249===n.parent.kind||288===n.parent.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element,d);if(128&s)return 116===u.kind?pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,d,\"abstract\"):pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"abstract\");s|=e.modifierToFlag(u.kind);break;case 119:if(32&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"static\");if(64&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"static\",\"readonly\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"static\",\"async\");if(249===n.parent.kind||288===n.parent.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element,\"static\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"static\");if(128&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"static\",\"abstract\");s|=32,t=u;break;case 137:if(64&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"readonly\");if(158!==n.kind&&157!==n.kind&&166!==n.kind&&155!==n.kind)return pE(u,e.Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);s|=64,i=u;break;case 88:if(1&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"export\");if(2&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"declare\");if(128&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"abstract\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"async\");if(e.isClassLike(n.parent))return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_class_element,\"export\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"export\");s|=1;break;case 83:var p=288===n.parent.kind?n.parent:n.parent.parent;if(248===p.kind&&!e.isAmbientModule(p))return pE(u,e.Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);s|=512;break;case 129:if(2&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"declare\");if(256&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context,\"async\");if(e.isClassLike(n.parent)&&!e.isPropertyDeclaration(n))return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_class_element,\"declare\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"declare\");if(8388608&n.parent.flags&&249===n.parent.kind)return pE(u,e.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);s|=2,r=u;break;case 121:if(128&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"abstract\");if(244!==n.kind){if(160!==n.kind&&158!==n.kind&&162!==n.kind&&163!==n.kind)return pE(u,e.Diagnostics.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);if(244!==n.parent.kind||!e.hasModifier(n.parent,128))return pE(u,e.Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class);if(32&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"static\",\"abstract\");if(8&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"private\",\"abstract\")}s|=128;break;case 125:if(256&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"async\");if(2&s||8388608&n.parent.flags)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context,\"async\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"async\");s|=256,a=u}}if(161===n.kind)return 32&s?pE(t,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"static\"):128&s?pE(t,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"abstract\"):256&s?pE(a,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"async\"):!!(64&s)&&pE(i,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"readonly\");if((253===n.kind||252===n.kind)&&2&s)return pE(r,e.Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration,\"declare\");if(155===n.kind&&92&s&&e.isBindingPattern(n.name))return pE(n,e.Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern);if(155===n.kind&&92&s&&n.dotDotDotToken)return pE(n,e.Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter);if(256&s)return function(n,t){switch(n.kind){case 160:case 243:case 200:case 201:return!1}return pE(t,e.Diagnostics._0_modifier_cannot_be_used_here,\"async\")}(n,a);return!1}(n)}function Kb(e,n){return e.modifiers.length>1||e.modifiers[0].kind!==n}function Hb(n,t){return void 0===t&&(t=e.Diagnostics.Trailing_comma_not_allowed),!(!n||!n.hasTrailingComma)&&dE(n[0],n.end-\",\".length,\",\".length,t)}function Wb(n,t){if(n&&0===n.length){var r=n.pos-\"<\".length;return dE(t,r,e.skipTrivia(t.text,n.end)+\">\".length-r,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function zb(n){if(w>=3){var t=n.body&&e.isBlock(n.body)&&e.findUseStrictPrologue(n.body.statements);if(t){var r=(i=n.parameters,e.filter(i,(function(n){return!!n.initializer||e.isBindingPattern(n.name)||e.isRestParameter(n)})));if(e.length(r)){e.forEach(r,(function(n){e.addRelatedInfo(Wt(n,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(t,e.Diagnostics.use_strict_directive_used_here))}));var a=r.map((function(n,t){return 0===t?e.createDiagnosticForNode(n,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(n,e.Diagnostics.and_here)}));return e.addRelatedInfo.apply(void 0,__spreadArrays([Wt(t,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],a)),!0}}}var i;return!1}function qb(n){var t=e.getSourceFileOfNode(n);return jb(n)||Wb(n.typeParameters,t)||function(n){for(var t=!1,r=n.length,a=0;a<r;a++){var i=n[a];if(i.dotDotDotToken){if(a!==r-1)return pE(i.dotDotDotToken,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);if(8388608&i.flags||Hb(n,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),i.questionToken)return pE(i.questionToken,e.Diagnostics.A_rest_parameter_cannot_be_optional);if(i.initializer)return pE(i.name,e.Diagnostics.A_rest_parameter_cannot_have_an_initializer)}else if(i.questionToken){if(t=!0,i.initializer)return pE(i.name,e.Diagnostics.Parameter_cannot_have_question_mark_and_initializer)}else if(t&&!i.initializer)return pE(i.name,e.Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter)}}(n.parameters)||function(n,t){if(!e.isArrowFunction(n))return!1;var r=n.equalsGreaterThanToken,a=e.getLineAndCharacterOfPosition(t,r.pos).line,i=e.getLineAndCharacterOfPosition(t,r.end).line;return a!==i&&pE(r,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}(n,t)||e.isFunctionLikeDeclaration(n)&&zb(n)}function Jb(n,t){return Hb(t)||function(n,t){if(t&&0===t.length){var r=e.getSourceFileOfNode(n),a=t.pos-\"<\".length;return dE(r,a,e.skipTrivia(r.text,t.end)+\">\".length-a,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}(n,t)}function Xb(n){return function(n){if(n)for(var t=0,r=n;t<r.length;t++){var a=r[t];if(214===a.kind)return dE(a,a.pos,0,e.Diagnostics.Argument_expression_expected)}return!1}(n)}function Yb(n){var t=n.types;if(Hb(t))return!0;if(t&&0===t.length){var r=e.tokenToString(n.token);return dE(n,t.pos,0,e.Diagnostics._0_list_cannot_be_empty,r)}return e.some(t,Qb)}function Qb(e){return Jb(e,e.typeArguments)}function Zb(n){if(153!==n.kind)return!1;var t=n;return 208===t.expression.kind&&27===t.expression.operatorToken.kind&&pE(t.expression,e.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name)}function $b(n){if(n.asteriskToken){if(e.Debug.assert(243===n.kind||200===n.kind||160===n.kind),8388608&n.flags)return pE(n.asteriskToken,e.Diagnostics.Generators_are_not_allowed_in_an_ambient_context);if(!n.body)return pE(n.asteriskToken,e.Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator)}}function eE(e,n){return!!e&&pE(e,n)}function nE(e,n){return!!e&&pE(e,n)}function tE(n){if(fE(n))return!0;if(231===n.kind&&n.awaitModifier&&0==(32768&n.flags)){if(!lE(e.getSourceFileOfNode(n))){var t=e.createDiagnosticForNode(n.awaitModifier,e.Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator),r=e.getContainingFunction(n);if(r&&161!==r.kind){e.Debug.assert(0==(2&e.getFunctionFlags(r)),\"Enclosing function should never be an async function.\");var a=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,a)}return Rt.add(t),!0}return!1}if(242===n.initializer.kind){var i=n.initializer;if(!cE(i)){var o=i.declarations;if(!o.length)return!1;if(o.length>1){t=230===n.kind?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return uE(i.declarations[1],t)}var s=o[0];if(s.initializer){var t=230===n.kind?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return pE(s.name,t)}if(s.type)return pE(s,t=230===n.kind?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation)}}return!1}function rE(n){if(n.parameters.length===(162===n.kind?1:2))return e.getThisParameter(n)}function aE(n,t){if(function(n){return e.isDynamicName(n)&&!oo(n)}(n))return pE(n,t)}function iE(n){if(qb(n))return!0;if(160===n.kind){if(192===n.parent.kind){if(n.modifiers&&(1!==n.modifiers.length||125!==e.first(n.modifiers).kind))return uE(n,e.Diagnostics.Modifiers_cannot_appear_here);if(eE(n.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(nE(n.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(void 0===n.body)return dE(n,n.end-1,\";\".length,e.Diagnostics._0_expected,\"{\")}if($b(n))return!0}if(e.isClassLike(n.parent)){if(8388608&n.flags)return aE(n.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(160===n.kind&&!n.body)return aE(n.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(245===n.parent.kind)return aE(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(172===n.parent.kind)return aE(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function oE(n){return e.isStringOrNumericLiteralLike(n)||206===n.kind&&40===n.operator&&8===n.operand.kind}function sE(n){var t,r=n.initializer;if(r){var a=!(oE(r)||function(n){if((e.isPropertyAccessExpression(n)||e.isElementAccessExpression(n)&&oE(n.argumentExpression))&&e.isEntityNameExpression(n.expression))return!!(1024&hy(n).flags)}(r)||105===r.kind||90===r.kind||(t=r,9===t.kind||206===t.kind&&40===t.operator&&9===t.operand.kind)),i=e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n);if(!i||n.type)return pE(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(a)return pE(r,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);if(!i||a)return pE(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function cE(n){var t=n.declarations;return!!Hb(n.declarations)||!n.declarations.length&&dE(n,t.pos,t.end-t.pos,e.Diagnostics.Variable_declaration_list_cannot_be_empty)}function lE(e){return e.parseDiagnostics.length>0}function uE(n,t,r,a,i){var o=e.getSourceFileOfNode(n);if(!lE(o)){var s=e.getSpanOfTokenAtPosition(o,n.pos);return Rt.add(e.createFileDiagnostic(o,s.start,s.length,t,r,a,i)),!0}return!1}function dE(n,t,r,a,i,o,s){var c=e.getSourceFileOfNode(n);return!lE(c)&&(Rt.add(e.createFileDiagnostic(c,t,r,a,i,o,s)),!0)}function pE(n,t,r,a,i){return!lE(e.getSourceFileOfNode(n))&&(Rt.add(e.createDiagnosticForNode(n,t,r,a,i)),!0)}function mE(n){return 245!==n.kind&&246!==n.kind&&253!==n.kind&&252!==n.kind&&259!==n.kind&&258!==n.kind&&251!==n.kind&&!e.hasModifier(n,515)&&uE(n,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function fE(n){if(8388608&n.flags){if(!or(n).hasReportedStatementInAmbientContext&&(e.isFunctionLike(n.parent)||e.isAccessor(n.parent)))return or(n).hasReportedStatementInAmbientContext=uE(n,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);if(222===n.parent.kind||249===n.parent.kind||288===n.parent.kind){var t=or(n.parent);if(!t.hasReportedStatementInAmbientContext)return t.hasReportedStatementInAmbientContext=uE(n,e.Diagnostics.Statements_are_not_allowed_in_ambient_contexts)}}return!1}function _E(n){if(32&n.numericLiteralFlags){var t=void 0;if(w>=1?t=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(n,186)?t=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(n,282)&&(t=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),t){var r=e.isPrefixUnaryExpression(n.parent)&&40===n.parent.operator,a=(r?\"-\":\"\")+\"0o\"+n.text;return pE(r?n.parent:n,t,a)}}return function(n){if(16&n.numericLiteralFlags||n.text.length<=15||-1!==n.text.indexOf(\".\"))return;var t=+e.getTextOfNode(n);if(t<=Math.pow(2,53)-1&&t+1>t)return;zt(!1,e.createDiagnosticForNode(n,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}(n),!1}},function(e){e.JSX=\"JSX\",e.IntrinsicElements=\"IntrinsicElements\",e.ElementClass=\"ElementClass\",e.ElementAttributesPropertyNameContainer=\"ElementAttributesProperty\",e.ElementChildrenAttributeNameContainer=\"ElementChildrenAttribute\",e.Element=\"Element\",e.IntrinsicAttributes=\"IntrinsicAttributes\",e.IntrinsicClassAttributes=\"IntrinsicClassAttributes\",e.LibraryManagedAttributes=\"LibraryManagedAttributes\"}(T||(T={})),e.signatureHasRestParameter=I,e.signatureHasLiteralTypes=M}(ts||(ts={})),function(e){function n(n){var t=e.createNode(n,-1,-1);return t.flags|=8,t}function t(n,t){return n!==t&&(pt(n,t),ot(n,t),e.aggregateTransformFlags(n)),n}function r(n,t){if(n&&n!==e.emptyArray){if(e.isNodeArray(n))return n}else n=[];var r=n;return r.pos=-1,r.end=-1,r.hasTrailingComma=t,r}function a(e){if(void 0===e)return e;var t=n(e.kind);for(var r in t.flags|=e.flags,pt(t,e),e)!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function i(n,t){if(\"number\"==typeof n)return o(n+\"\");if(\"object\"==typeof n&&\"base10Value\"in n)return s(e.pseudoBigIntToString(n)+\"n\");if(\"boolean\"==typeof n)return n?f():_();if(e.isString(n)){var r=c(n);return t&&(r.singleQuote=!0),r}return a=n,(i=c(e.getTextOfIdentifierOrLiteral(a))).textSourceNode=a,i;var a,i}function o(e,t){void 0===t&&(t=0);var r=n(8);return r.text=e,r.numericLiteralFlags=t,r}function s(e){var t=n(9);return t.text=e,t}function c(e){var t=n(10);return t.text=e,t}function l(t,a){var i=n(75);return i.escapedText=e.escapeLeadingUnderscores(t),i.originalKeywordKind=t?e.stringToToken(t):0,i.autoGenerateFlags=0,i.autoGenerateId=0,a&&(i.typeArguments=r(a)),i}e.updateNode=t,e.createNodeArray=r,e.getSynthesizedClone=a,e.createLiteral=i,e.createNumericLiteral=o,e.createBigIntLiteral=s,e.createStringLiteral=c,e.createRegularExpressionLiteral=function(e){var t=n(13);return t.text=e,t},e.createIdentifier=l,e.updateIdentifier=function(n,r){return n.typeArguments!==r?t(l(e.idText(n),r),n):n};var u,d=0;function p(e){var n=l(e);return n.autoGenerateFlags=19,n.autoGenerateId=d,d++,n}function m(e){return n(e)}function f(){return n(105)}function _(){return n(90)}function g(e){return m(e)}function y(e,t){var r=n(152);return r.left=e,r.right=nt(t),r}function v(t){var r=n(153);return r.expression=function(n){return e.isCommaSequence(n)?ge(n):n}(t),r}function h(e,t,r){var a=n(154);return a.name=nt(e),a.constraint=t,a.default=r,a}function b(t,r,a,i,o,s,c){var l=n(155);return l.decorators=rt(t),l.modifiers=rt(r),l.dotDotDotToken=a,l.name=nt(i),l.questionToken=o,l.type=s,l.initializer=c?e.parenthesizeExpressionForList(c):void 0,l}function E(t){var r=n(156);return r.expression=e.parenthesizeForAccess(t),r}function T(e,t,r,a,i){var o=n(157);return o.modifiers=rt(e),o.name=nt(t),o.questionToken=r,o.type=a,o.initializer=i,o}function S(e,t,r,a,i,o){var s=n(158);return s.decorators=rt(e),s.modifiers=rt(t),s.name=nt(r),s.questionToken=void 0!==a&&57===a.kind?a:void 0,s.exclamationToken=void 0!==a&&53===a.kind?a:void 0,s.type=i,s.initializer=o,s}function x(e,n,t,r,a){var i=M(159,e,n,t);return i.name=nt(r),i.questionToken=a,i}function L(e,t,a,i,o,s,c,l,u){var d=n(160);return d.decorators=rt(e),d.modifiers=rt(t),d.asteriskToken=a,d.name=nt(i),d.questionToken=o,d.typeParameters=rt(s),d.parameters=r(c),d.type=l,d.body=u,d}function C(e,n,t){return function(e,n,t){return ue(ae(e,nt(n)),void 0,t)}(l(e),n,t)}function A(e,n,t){return!!t&&(e.push(Kn(n,t)),!0)}function D(e,t,a,i){var o=n(161);return o.decorators=rt(e),o.modifiers=rt(t),o.typeParameters=void 0,o.parameters=r(a),o.type=void 0,o.body=i,o}function k(e,t,a,i,o,s){var c=n(162);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=void 0,c.parameters=r(i),c.type=o,c.body=s,c}function N(e,t,a,i,o){var s=n(163);return s.decorators=rt(e),s.modifiers=rt(t),s.name=nt(a),s.typeParameters=void 0,s.parameters=r(i),s.body=o,s}function I(e,t,a,i){var o=n(166);return o.decorators=rt(e),o.modifiers=rt(t),o.parameters=r(a),o.type=i,o}function M(e,t,r,a,i){var o=n(e);return o.typeParameters=rt(t),o.parameters=rt(r),o.type=a,o.typeArguments=rt(i),o}function O(e,n,r,a){return e.typeParameters!==n||e.parameters!==r||e.type!==a?t(M(e.kind,n,r,a),e):e}function R(e,t,r){var a=n(167);return a.assertsModifier=e,a.parameterName=nt(t),a.type=r,a}function P(e,n,r,a){return e.assertsModifier!==n||e.parameterName!==r||e.type!==a?t(R(n,r,a),e):e}function w(t,r){var a=n(168);return a.typeName=nt(t),a.typeArguments=r&&e.parenthesizeTypeParameters(r),a}function F(e){var t=n(171);return t.exprName=e,t}function G(e){var t=n(172);return t.members=r(e),t}function B(t){var r=n(173);return r.elementType=e.parenthesizeArrayTypeMember(t),r}function V(e){var t=n(174);return t.elementTypes=r(e),t}function U(t){var r=n(175);return r.type=e.parenthesizeArrayTypeMember(t),r}function j(e){var t=n(176);return t.type=e,t}function K(t,r){var a=n(t);return a.types=e.parenthesizeElementTypeMembers(r),a}function H(e,n){return e.types!==n?t(K(e.kind,n),e):e}function W(t,r,a,i){var o=n(179);return o.checkType=e.parenthesizeConditionalTypeMember(t),o.extendsType=e.parenthesizeConditionalTypeMember(r),o.trueType=a,o.falseType=i,o}function z(e){var t=n(180);return t.typeParameter=e,t}function q(t,r,a,i){var o=n(187);return o.argument=t,o.qualifier=r,o.typeArguments=e.parenthesizeTypeParameters(a),o.isTypeOf=i,o}function J(e){var t=n(181);return t.type=e,t}function X(t,r){var a=n(183);return a.operator=\"number\"==typeof t?t:133,a.type=e.parenthesizeElementTypeMember(\"number\"==typeof t?r:t),a}function Y(t,r){var a=n(184);return a.objectType=e.parenthesizeElementTypeMember(t),a.indexType=r,a}function Q(e,t,r,a){var i=n(185);return i.readonlyToken=e,i.typeParameter=t,i.questionToken=r,i.type=a,i}function Z(e){var t=n(186);return t.literal=e,t}function $(e){var t=n(188);return t.elements=r(e),t}function ee(e){var t=n(189);return t.elements=r(e),t}function ne(e,t,r,a){var i=n(190);return i.dotDotDotToken=e,i.propertyName=nt(t),i.name=nt(r),i.initializer=a,i}function te(t,a){var i=n(191);return i.elements=e.parenthesizeListElements(r(t)),a&&(i.multiLine=!0),i}function re(e,t){var a=n(192);return a.properties=r(e),t&&(a.multiLine=!0),a}function ae(t,r){var a=n(193);return a.expression=e.parenthesizeForAccess(t),a.name=nt(r),st(a,131072),a}function ie(t,r,a){var i=n(193);return i.flags|=32,i.expression=e.parenthesizeForAccess(t),i.questionDotToken=r,i.name=nt(a),st(i,131072),i}function oe(n,r,a,i){return e.Debug.assert(!!(32&n.flags),\"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead.\"),n.expression!==r||n.questionDotToken!==a||n.name!==i?t(st(ie(r,a,i),e.getEmitFlags(n)),n):n}function se(t,r){var a=n(194);return a.expression=e.parenthesizeForAccess(t),a.argumentExpression=tt(r),a}function ce(t,r,a){var i=n(194);return i.flags|=32,i.expression=e.parenthesizeForAccess(t),i.questionDotToken=r,i.argumentExpression=tt(a),i}function le(n,r,a,i){return e.Debug.assert(!!(32&n.flags),\"Cannot update an ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead.\"),n.expression!==r||n.questionDotToken!==a||n.argumentExpression!==i?t(ce(r,a,i),n):n}function ue(t,a,i){var o=n(195);return o.expression=e.parenthesizeForAccess(t),o.typeArguments=rt(a),o.arguments=e.parenthesizeListElements(r(i)),o}function de(t,a,i,o){var s=n(195);return s.flags|=32,s.expression=e.parenthesizeForAccess(t),s.questionDotToken=a,s.typeArguments=rt(i),s.arguments=e.parenthesizeListElements(r(o)),s}function pe(n,r,a,i,o){return e.Debug.assert(!!(32&n.flags),\"Cannot update a CallExpression using updateCallChain. Use updateCall instead.\"),n.expression!==r||n.questionDotToken!==a||n.typeArguments!==i||n.arguments!==o?t(de(r,a,i,o),n):n}function me(t,a,i){var o=n(196);return o.expression=e.parenthesizeForNew(t),o.typeArguments=rt(a),o.arguments=i?e.parenthesizeListElements(r(i)):void 0,o}function fe(t,r,a){var i=n(197);return i.tag=e.parenthesizeForAccess(t),a?(i.typeArguments=rt(r),i.template=a):(i.typeArguments=void 0,i.template=r),i}function _e(t,r){var a=n(198);return a.type=t,a.expression=e.parenthesizePrefixOperand(r),a}function ge(e){var t=n(199);return t.expression=e,t}function ye(e,t,a,i,o,s,c){var l=n(200);return l.modifiers=rt(e),l.asteriskToken=t,l.name=nt(a),l.typeParameters=rt(i),l.parameters=r(o),l.type=s,l.body=c,l}function ve(t,a,i,o,s,c){var l=n(201);return l.modifiers=rt(t),l.typeParameters=rt(a),l.parameters=r(i),l.type=o,l.equalsGreaterThanToken=s||m(38),l.body=e.parenthesizeConciseBody(c),l}function he(t){var r=n(202);return r.expression=e.parenthesizePrefixOperand(t),r}function be(t){var r=n(203);return r.expression=e.parenthesizePrefixOperand(t),r}function Ee(t){var r=n(204);return r.expression=e.parenthesizePrefixOperand(t),r}function Te(t){var r=n(205);return r.expression=e.parenthesizePrefixOperand(t),r}function Se(t,r){var a=n(206);return a.operator=t,a.operand=e.parenthesizePrefixOperand(r),a}function xe(t,r){var a=n(207);return a.operand=e.parenthesizePostfixOperand(t),a.operator=r,a}function Le(t,r,a){var i,o=n(208),s=\"number\"==typeof(i=r)?m(i):i,c=s.kind;return o.left=e.parenthesizeBinaryOperand(c,t,!0,void 0),o.operatorToken=s,o.right=e.parenthesizeBinaryOperand(c,a,!1,o.left),o}function Ce(t,r,a,i,o){var s=n(209);return s.condition=e.parenthesizeForConditionalHead(t),s.questionToken=o?r:m(57),s.whenTrue=e.parenthesizeSubexpressionOfConditionalExpression(o?a:r),s.colonToken=o?i:m(58),s.whenFalse=e.parenthesizeSubexpressionOfConditionalExpression(o||a),s}function Ae(e,t){var a=n(210);return a.head=e,a.templateSpans=r(t),a}e.createTempVariable=function(e,n){var t=l(\"\");return t.autoGenerateFlags=1,t.autoGenerateId=d,d++,e&&e(t),n&&(t.autoGenerateFlags|=8),t},e.createLoopVariable=function(){var e=l(\"\");return e.autoGenerateFlags=2,e.autoGenerateId=d,d++,e},e.createUniqueName=function(e){var n=l(e);return n.autoGenerateFlags=3,n.autoGenerateId=d,d++,n},e.createOptimisticUniqueName=p,e.createFileLevelUniqueName=function(e){var n=p(e);return n.autoGenerateFlags|=32,n},e.getGeneratedNameForNode=function(n,t){var r=l(n&&e.isIdentifier(n)?e.idText(n):\"\");return r.autoGenerateFlags=4|t,r.autoGenerateId=d,r.original=n,d++,r},e.createToken=m,e.createSuper=function(){return n(101)},e.createThis=function(){return n(103)},e.createNull=function(){return n(99)},e.createTrue=f,e.createFalse=_,e.createModifier=g,e.createModifiersFromModifierFlags=function(e){var n=[];return 1&e&&n.push(g(88)),2&e&&n.push(g(129)),512&e&&n.push(g(83)),2048&e&&n.push(g(80)),4&e&&n.push(g(118)),8&e&&n.push(g(116)),16&e&&n.push(g(117)),128&e&&n.push(g(121)),32&e&&n.push(g(119)),64&e&&n.push(g(137)),256&e&&n.push(g(125)),n},e.createQualifiedName=y,e.updateQualifiedName=function(e,n,r){return e.left!==n||e.right!==r?t(y(n,r),e):e},e.createComputedPropertyName=v,e.updateComputedPropertyName=function(e,n){return e.expression!==n?t(v(n),e):e},e.createTypeParameterDeclaration=h,e.updateTypeParameterDeclaration=function(e,n,r,a){return e.name!==n||e.constraint!==r||e.default!==a?t(h(n,r,a),e):e},e.createParameter=b,e.updateParameter=function(e,n,r,a,i,o,s,c){return e.decorators!==n||e.modifiers!==r||e.dotDotDotToken!==a||e.name!==i||e.questionToken!==o||e.type!==s||e.initializer!==c?t(b(n,r,a,i,o,s,c),e):e},e.createDecorator=E,e.updateDecorator=function(e,n){return e.expression!==n?t(E(n),e):e},e.createPropertySignature=T,e.updatePropertySignature=function(e,n,r,a,i,o){return e.modifiers!==n||e.name!==r||e.questionToken!==a||e.type!==i||e.initializer!==o?t(T(n,r,a,i,o),e):e},e.createProperty=S,e.updateProperty=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.questionToken!==(void 0!==i&&57===i.kind?i:void 0)||e.exclamationToken!==(void 0!==i&&53===i.kind?i:void 0)||e.type!==o||e.initializer!==s?t(S(n,r,a,i,o,s),e):e},e.createMethodSignature=x,e.updateMethodSignature=function(e,n,r,a,i,o){return e.typeParameters!==n||e.parameters!==r||e.type!==a||e.name!==i||e.questionToken!==o?t(x(n,r,a,i,o),e):e},e.createMethod=L,e.createObjectDefinePropertyCall=function(e,n,t){return C(\"Object\",\"defineProperty\",[e,tt(n),t])},e.createPropertyDescriptor=function(n,t){var r=[];A(r,\"enumerable\",tt(n.enumerable)),A(r,\"configurable\",tt(n.configurable));var a=A(r,\"writable\",tt(n.writable));a=A(r,\"value\",n.value)||a;var i=A(r,\"get\",n.get);return i=A(r,\"set\",n.set)||i,e.Debug.assert(!(a&&i),\"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor.\"),re(r,!t)},e.updateMethod=function(e,n,r,a,i,o,s,c,l,u){return e.decorators!==n||e.modifiers!==r||e.asteriskToken!==a||e.name!==i||e.questionToken!==o||e.typeParameters!==s||e.parameters!==c||e.type!==l||e.body!==u?t(L(n,r,a,i,o,s,c,l,u),e):e},e.createConstructor=D,e.updateConstructor=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.parameters!==a||e.body!==i?t(D(n,r,a,i),e):e},e.createGetAccessor=k,e.updateGetAccessor=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.parameters!==i||e.type!==o||e.body!==s?t(k(n,r,a,i,o,s),e):e},e.createSetAccessor=N,e.updateSetAccessor=function(e,n,r,a,i,o){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.parameters!==i||e.body!==o?t(N(n,r,a,i,o),e):e},e.createCallSignature=function(e,n,t){return M(164,e,n,t)},e.updateCallSignature=function(e,n,t,r){return O(e,n,t,r)},e.createConstructSignature=function(e,n,t){return M(165,e,n,t)},e.updateConstructSignature=function(e,n,t,r){return O(e,n,t,r)},e.createIndexSignature=I,e.updateIndexSignature=function(e,n,r,a,i){return e.parameters!==a||e.type!==i||e.decorators!==n||e.modifiers!==r?t(I(n,r,a,i),e):e},e.createSignatureDeclaration=M,e.createKeywordTypeNode=function(e){return n(e)},e.createTypePredicateNode=function(e,n){return R(void 0,e,n)},e.createTypePredicateNodeWithModifier=R,e.updateTypePredicateNode=function(e,n,t){return P(e,e.assertsModifier,n,t)},e.updateTypePredicateNodeWithModifier=P,e.createTypeReferenceNode=w,e.updateTypeReferenceNode=function(e,n,r){return e.typeName!==n||e.typeArguments!==r?t(w(n,r),e):e},e.createFunctionTypeNode=function(e,n,t){return M(169,e,n,t)},e.updateFunctionTypeNode=function(e,n,t,r){return O(e,n,t,r)},e.createConstructorTypeNode=function(e,n,t){return M(170,e,n,t)},e.updateConstructorTypeNode=function(e,n,t,r){return O(e,n,t,r)},e.createTypeQueryNode=F,e.updateTypeQueryNode=function(e,n){return e.exprName!==n?t(F(n),e):e},e.createTypeLiteralNode=G,e.updateTypeLiteralNode=function(e,n){return e.members!==n?t(G(n),e):e},e.createArrayTypeNode=B,e.updateArrayTypeNode=function(e,n){return e.elementType!==n?t(B(n),e):e},e.createTupleTypeNode=V,e.updateTupleTypeNode=function(e,n){return e.elementTypes!==n?t(V(n),e):e},e.createOptionalTypeNode=U,e.updateOptionalTypeNode=function(e,n){return e.type!==n?t(U(n),e):e},e.createRestTypeNode=j,e.updateRestTypeNode=function(e,n){return e.type!==n?t(j(n),e):e},e.createUnionTypeNode=function(e){return K(177,e)},e.updateUnionTypeNode=function(e,n){return H(e,n)},e.createIntersectionTypeNode=function(e){return K(178,e)},e.updateIntersectionTypeNode=function(e,n){return H(e,n)},e.createUnionOrIntersectionTypeNode=K,e.createConditionalTypeNode=W,e.updateConditionalTypeNode=function(e,n,r,a,i){return e.checkType!==n||e.extendsType!==r||e.trueType!==a||e.falseType!==i?t(W(n,r,a,i),e):e},e.createInferTypeNode=z,e.updateInferTypeNode=function(e,n){return e.typeParameter!==n?t(z(n),e):e},e.createImportTypeNode=q,e.updateImportTypeNode=function(e,n,r,a,i){return e.argument!==n||e.qualifier!==r||e.typeArguments!==a||e.isTypeOf!==i?t(q(n,r,a,i),e):e},e.createParenthesizedType=J,e.updateParenthesizedType=function(e,n){return e.type!==n?t(J(n),e):e},e.createThisTypeNode=function(){return n(182)},e.createTypeOperatorNode=X,e.updateTypeOperatorNode=function(e,n){return e.type!==n?t(X(e.operator,n),e):e},e.createIndexedAccessTypeNode=Y,e.updateIndexedAccessTypeNode=function(e,n,r){return e.objectType!==n||e.indexType!==r?t(Y(n,r),e):e},e.createMappedTypeNode=Q,e.updateMappedTypeNode=function(e,n,r,a,i){return e.readonlyToken!==n||e.typeParameter!==r||e.questionToken!==a||e.type!==i?t(Q(n,r,a,i),e):e},e.createLiteralTypeNode=Z,e.updateLiteralTypeNode=function(e,n){return e.literal!==n?t(Z(n),e):e},e.createObjectBindingPattern=$,e.updateObjectBindingPattern=function(e,n){return e.elements!==n?t($(n),e):e},e.createArrayBindingPattern=ee,e.updateArrayBindingPattern=function(e,n){return e.elements!==n?t(ee(n),e):e},e.createBindingElement=ne,e.updateBindingElement=function(e,n,r,a,i){return e.propertyName!==r||e.dotDotDotToken!==n||e.name!==a||e.initializer!==i?t(ne(n,r,a,i),e):e},e.createArrayLiteral=te,e.updateArrayLiteral=function(e,n){return e.elements!==n?t(te(n,e.multiLine),e):e},e.createObjectLiteral=re,e.updateObjectLiteral=function(e,n){return e.properties!==n?t(re(n,e.multiLine),e):e},e.createPropertyAccess=ae,e.updatePropertyAccess=function(n,r,a){return e.isOptionalChain(n)?oe(n,r,n.questionDotToken,a):n.expression!==r||n.name!==a?t(st(ae(r,a),e.getEmitFlags(n)),n):n},e.createPropertyAccessChain=ie,e.updatePropertyAccessChain=oe,e.createElementAccess=se,e.updateElementAccess=function(n,r,a){return e.isOptionalChain(n)?le(n,r,n.questionDotToken,a):n.expression!==r||n.argumentExpression!==a?t(se(r,a),n):n},e.createElementAccessChain=ce,e.updateElementAccessChain=le,e.createCall=ue,e.updateCall=function(n,r,a,i){return e.isOptionalChain(n)?pe(n,r,n.questionDotToken,a,i):n.expression!==r||n.typeArguments!==a||n.arguments!==i?t(ue(r,a,i),n):n},e.createCallChain=de,e.updateCallChain=pe,e.createNew=me,e.updateNew=function(e,n,r,a){return e.expression!==n||e.typeArguments!==r||e.arguments!==a?t(me(n,r,a),e):e},e.createTaggedTemplate=fe,e.updateTaggedTemplate=function(e,n,r,a){return e.tag!==n||(a?e.typeArguments!==r||e.template!==a:void 0!==e.typeArguments||e.template!==r)?t(fe(n,r,a),e):e},e.createTypeAssertion=_e,e.updateTypeAssertion=function(e,n,r){return e.type!==n||e.expression!==r?t(_e(n,r),e):e},e.createParen=ge,e.updateParen=function(e,n){return e.expression!==n?t(ge(n),e):e},e.createFunctionExpression=ye,e.updateFunctionExpression=function(e,n,r,a,i,o,s,c){return e.name!==a||e.modifiers!==n||e.asteriskToken!==r||e.typeParameters!==i||e.parameters!==o||e.type!==s||e.body!==c?t(ye(n,r,a,i,o,s,c),e):e},e.createArrowFunction=ve,e.updateArrowFunction=function(e,n,r,a,i,o,s){return e.modifiers!==n||e.typeParameters!==r||e.parameters!==a||e.type!==i||e.equalsGreaterThanToken!==o||e.body!==s?t(ve(n,r,a,i,o,s),e):e},e.createDelete=he,e.updateDelete=function(e,n){return e.expression!==n?t(he(n),e):e},e.createTypeOf=be,e.updateTypeOf=function(e,n){return e.expression!==n?t(be(n),e):e},e.createVoid=Ee,e.updateVoid=function(e,n){return e.expression!==n?t(Ee(n),e):e},e.createAwait=Te,e.updateAwait=function(e,n){return e.expression!==n?t(Te(n),e):e},e.createPrefix=Se,e.updatePrefix=function(e,n){return e.operand!==n?t(Se(e.operator,n),e):e},e.createPostfix=xe,e.updatePostfix=function(e,n){return e.operand!==n?t(xe(n,e.operator),e):e},e.createBinary=Le,e.updateBinary=function(e,n,r,a){return e.left!==n||e.right!==r?t(Le(n,a||e.operatorToken,r),e):e},e.createConditional=Ce,e.updateConditional=function(e,n,r,a,i,o){return e.condition!==n||e.questionToken!==r||e.whenTrue!==a||e.colonToken!==i||e.whenFalse!==o?t(Ce(n,r,a,i,o),e):e},e.createTemplateExpression=Ae,e.updateTemplateExpression=function(e,n,r){return e.head!==n||e.templateSpans!==r?t(Ae(n,r),e):e};var De,ke,Ne={};function Ie(t,r,a){var i=n(t);if(i.text=r,void 0===a||r===a)i.rawText=a;else{var o=function(n,t){switch(u||(u=e.createScanner(99,!1,0)),n){case 14:u.setText(\"`\"+t+\"`\");break;case 15:u.setText(\"`\"+t+\"${\");break;case 16:u.setText(\"}\"+t+\"${\");break;case 17:u.setText(\"}\"+t+\"`\")}var r,a=u.scan();if(23===a&&(a=u.reScanTemplateToken()),u.isUnterminated())return u.setText(void 0),Ne;switch(a){case 14:case 15:case 16:case 17:r=u.getTokenValue()}return 1!==u.scan()?(u.setText(void 0),Ne):(u.setText(void 0),r)}(t,a);if(\"object\"==typeof o)return e.Debug.fail(\"Invalid raw text\");e.Debug.assert(r===o,\"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.\"),i.rawText=a}return i}function Me(e,t){var r=n(211);return r.asteriskToken=e&&41===e.kind?e:void 0,r.expression=e&&41!==e.kind?e:t,r}function Oe(t){var r=n(212);return r.expression=e.parenthesizeExpressionForList(t),r}function Re(e,t,a,i,o){var s=n(213);return s.decorators=void 0,s.modifiers=rt(e),s.name=nt(t),s.typeParameters=rt(a),s.heritageClauses=rt(i),s.members=r(o),s}function Pe(t,r){var a=n(215);return a.expression=e.parenthesizeForAccess(r),a.typeArguments=rt(t),a}function we(e,t){var r=n(216);return r.expression=e,r.type=t,r}function Fe(t){var r=n(217);return r.expression=e.parenthesizeForAccess(t),r}function Ge(e,t){var r=n(218);return r.keywordToken=e,r.name=t,r}function Be(e,t){var r=n(220);return r.expression=e,r.literal=t,r}function Ve(e,t){var a=n(222);return a.statements=r(e),t&&(a.multiLine=t),a}function Ue(t,r){var a=n(224);return a.decorators=void 0,a.modifiers=rt(t),a.declarationList=e.isArray(r)?sn(r):r,a}function je(){return n(223)}function Ke(t){var r=n(225);return r.expression=e.parenthesizeExpressionForExpressionStatement(t),r}function He(e,n){return e.expression!==n?t(Ke(n),e):e}function We(e,t,r){var a=n(226);return a.expression=e,a.thenStatement=at(t),a.elseStatement=at(r),a}function ze(e,t){var r=n(227);return r.statement=at(e),r.expression=t,r}function qe(e,t){var r=n(228);return r.expression=e,r.statement=at(t),r}function Je(e,t,r,a){var i=n(229);return i.initializer=e,i.condition=t,i.incrementor=r,i.statement=at(a),i}function Xe(e,t,r){var a=n(230);return a.initializer=e,a.expression=t,a.statement=at(r),a}function Ye(t,r,a,i){var o=n(231);return o.awaitModifier=t,o.initializer=r,o.expression=e.isCommaSequence(a)?ge(a):a,o.statement=at(i),o}function Qe(e){var t=n(232);return t.label=nt(e),t}function Ze(e){var t=n(233);return t.label=nt(e),t}function $e(e){var t=n(234);return t.expression=e,t}function en(e,t){var r=n(235);return r.expression=e,r.statement=at(t),r}function nn(t,r){var a=n(236);return a.expression=e.parenthesizeExpressionForList(t),a.caseBlock=r,a}function tn(e,t){var r=n(237);return r.label=nt(e),r.statement=at(t),r}function rn(e){var t=n(238);return t.expression=e,t}function an(e,t,r){var a=n(239);return a.tryBlock=e,a.catchClause=t,a.finallyBlock=r,a}function on(t,r,a){var i=n(241);return i.name=nt(t),i.type=r,i.initializer=void 0!==a?e.parenthesizeExpressionForList(a):void 0,i}function sn(e,t){void 0===t&&(t=0);var a=n(242);return a.flags|=3&t,a.declarations=r(e),a}function cn(e,t,a,i,o,s,c,l){var u=n(243);return u.decorators=rt(e),u.modifiers=rt(t),u.asteriskToken=a,u.name=nt(i),u.typeParameters=rt(o),u.parameters=r(s),u.type=c,u.body=l,u}function ln(e,t,a,i,o,s){var c=n(244);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=rt(i),c.heritageClauses=rt(o),c.members=r(s),c}function un(e,t,a,i,o,s){var c=n(245);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=rt(i),c.heritageClauses=rt(o),c.members=r(s),c}function dn(e,t,r,a,i){var o=n(246);return o.decorators=rt(e),o.modifiers=rt(t),o.name=nt(r),o.typeParameters=rt(a),o.type=i,o}function pn(e,t,a,i){var o=n(247);return o.decorators=rt(e),o.modifiers=rt(t),o.name=nt(a),o.members=r(i),o}function mn(e,t,r,a,i){void 0===i&&(i=0);var o=n(248);return o.flags|=1044&i,o.decorators=rt(e),o.modifiers=rt(t),o.name=r,o.body=a,o}function fn(e){var t=n(249);return t.statements=r(e),t}function _n(e){var t=n(250);return t.clauses=r(e),t}function gn(e){var t=n(251);return t.name=nt(e),t}function yn(e,t,r,a){var i=n(252);return i.decorators=rt(e),i.modifiers=rt(t),i.name=nt(r),i.moduleReference=a,i}function vn(e,t,r,a){var i=n(253);return i.decorators=rt(e),i.modifiers=rt(t),i.importClause=r,i.moduleSpecifier=a,i}function hn(e,t){var r=n(254);return r.name=e,r.namedBindings=t,r}function bn(e){var t=n(255);return t.name=e,t}function En(e){var t=n(256);return t.elements=r(e),t}function Tn(e,t){var r=n(257);return r.propertyName=e,r.name=t,r}function Sn(t,r,a,i){var o=n(258);return o.decorators=rt(t),o.modifiers=rt(r),o.isExportEquals=a,o.expression=a?e.parenthesizeBinaryOperand(62,i,!1,void 0):e.parenthesizeDefaultExpression(i),o}function xn(e,t,r,a){var i=n(259);return i.decorators=rt(e),i.modifiers=rt(t),i.exportClause=r,i.moduleSpecifier=a,i}function Ln(e){var t=n(260);return t.elements=r(e),t}function Cn(e,t){var r=n(261);return r.propertyName=nt(e),r.name=nt(t),r}function An(e){var t=n(263);return t.expression=e,t}function Dn(e,t){var r=n(e);return r.tagName=l(t),r}function kn(e,t,a){var i=n(264);return i.openingElement=e,i.children=r(t),i.closingElement=a,i}function Nn(e,t,r){var a=n(265);return a.tagName=e,a.typeArguments=rt(t),a.attributes=r,a}function In(e,t,r){var a=n(266);return a.tagName=e,a.typeArguments=rt(t),a.attributes=r,a}function Mn(e){var t=n(267);return t.tagName=e,t}function On(e,t,a){var i=n(268);return i.openingFragment=e,i.children=r(t),i.closingFragment=a,i}function Rn(e,t){var r=n(11);return r.text=e,r.containsOnlyTriviaWhiteSpaces=!!t,r}function Pn(e,t){var r=n(271);return r.name=e,r.initializer=t,r}function wn(e){var t=n(272);return t.properties=r(e),t}function Fn(e){var t=n(273);return t.expression=e,t}function Gn(e,t){var r=n(274);return r.dotDotDotToken=e,r.expression=t,r}function Bn(t,a){var i=n(275);return i.expression=e.parenthesizeExpressionForList(t),i.statements=r(a),i}function Vn(e){var t=n(276);return t.statements=r(e),t}function Un(e,t){var a=n(277);return a.token=e,a.types=r(t),a}function jn(t,r){var a=n(278);return a.variableDeclaration=e.isString(t)?on(t):t,a.block=r,a}function Kn(t,r){var a=n(279);return a.name=nt(t),a.questionToken=void 0,a.initializer=e.parenthesizeExpressionForList(r),a}function Hn(t,r){var a=n(280);return a.name=nt(t),a.objectAssignmentInitializer=void 0!==r?e.parenthesizeExpressionForList(r):void 0,a}function Wn(t){var r=n(281);return r.expression=e.parenthesizeExpressionForList(t),r}function zn(t,r){var a=n(282);return a.name=nt(t),a.initializer=r&&e.parenthesizeExpressionForList(r),a}function qn(e,t){var r=n(319);return r.expression=e,r.original=t,ot(r,t),r}function Jn(n){if(e.nodeIsSynthesized(n)&&!e.isParseTreeNode(n)&&!n.original&&!n.emitNode&&!n.id){if(320===n.kind)return n.elements;if(e.isBinaryExpression(n)&&27===n.operatorToken.kind)return[n.left,n.right]}return n}function Xn(t){var a=n(320);return a.elements=r(e.sameFlatMap(t,Jn)),a}function Yn(e,t){var r=n(323);return r.expression=e,r.thisArg=t,r}function Qn(n,t){void 0===t&&(t=e.emptyArray);var r=e.createNode(289);return r.prepends=t,r.sourceFiles=n,r}function Zn(){return De||(De=e.arrayToMap([e.valuesHelper,e.readHelper,e.spreadHelper,e.spreadArraysHelper,e.restHelper,e.decorateHelper,e.metadataHelper,e.paramHelper,e.awaiterHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.extendsHelper,e.templateObjectHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper],(function(e){return e.name})))}function $n(n,t){var r=e.createNode(function(n){switch(n){case\"prologue\":return 283;case\"prepend\":return 284;case\"internal\":return 286;case\"text\":return 285;case\"emitHelpers\":case\"no-default-lib\":case\"reference\":case\"type\":case\"lib\":return e.Debug.fail(\"BundleFileSectionKind: \"+n+\" not yet mapped to SyntaxKind\");default:return e.Debug.assertNever(n)}}(n.kind),n.pos,n.end);return r.parent=t,r.data=n.data,r}function et(n,t){var r=e.createNode(287,n.pos,n.end);return r.parent=t,r.data=n.data,r.section=n,r}function nt(n){return e.isString(n)?l(n):n}function tt(e){return\"string\"==typeof e?c(e):\"number\"==typeof e?o(\"\"+e):\"boolean\"==typeof e?e?f():_():e}function rt(e){return e?r(e):void 0}function at(n){return n&&e.isNotEmittedStatement(n)?ot(pt(je(),n),n):n}function it(n){if(!n.emitNode){if(e.isParseTreeNode(n)){if(288===n.kind)return n.emitNode={annotatedNodes:[n]};it(e.getSourceFileOfNode(e.getParseTreeNode(e.getSourceFileOfNode(n)))).annotatedNodes.push(n)}n.emitNode={}}return n.emitNode}function ot(e,n){return n&&(e.pos=n.pos,e.end=n.end),e}function st(e,n){return it(e).flags=n,e}function ct(e){var n=e.emitNode;return n&&n.leadingComments}function lt(e,n){return it(e).leadingComments=n,e}function ut(e){var n=e.emitNode;return n&&n.trailingComments}function dt(e,n){return it(e).trailingComments=n,e}function pt(n,t){if(n.original=t,t){var r=t.emitNode;r&&(n.emitNode=function(n,t){var r=n.flags,a=n.leadingComments,i=n.trailingComments,o=n.commentRange,s=n.sourceMapRange,c=n.tokenSourceMapRanges,l=n.constantValue,u=n.helpers,d=n.startsOnNewLine;t||(t={});a&&(t.leadingComments=e.addRange(a.slice(),t.leadingComments));i&&(t.trailingComments=e.addRange(i.slice(),t.trailingComments));r&&(t.flags=r);o&&(t.commentRange=o);s&&(t.sourceMapRange=s);c&&(t.tokenSourceMapRanges=function(e,n){n||(n=[]);for(var t in e)n[t]=e[t];return n}(c,t.tokenSourceMapRanges));void 0!==l&&(t.constantValue=l);u&&(t.helpers=e.addRange(t.helpers,u));void 0!==d&&(t.startsOnNewLine=d);return t}(r,n.emitNode))}return n}e.createTemplateHead=function(e,n){var t=Ie(15,e,n);return t.text=e,t},e.createTemplateMiddle=function(e,n){var t=Ie(16,e,n);return t.text=e,t},e.createTemplateTail=function(e,n){var t=Ie(17,e,n);return t.text=e,t},e.createNoSubstitutionTemplateLiteral=function(e,n){return Ie(14,e,n)},e.createYield=Me,e.updateYield=function(e,n,r){return e.expression!==r||e.asteriskToken!==n?t(Me(n,r),e):e},e.createSpread=Oe,e.updateSpread=function(e,n){return e.expression!==n?t(Oe(n),e):e},e.createClassExpression=Re,e.updateClassExpression=function(e,n,r,a,i,o){return e.modifiers!==n||e.name!==r||e.typeParameters!==a||e.heritageClauses!==i||e.members!==o?t(Re(n,r,a,i,o),e):e},e.createOmittedExpression=function(){return n(214)},e.createExpressionWithTypeArguments=Pe,e.updateExpressionWithTypeArguments=function(e,n,r){return e.typeArguments!==n||e.expression!==r?t(Pe(n,r),e):e},e.createAsExpression=we,e.updateAsExpression=function(e,n,r){return e.expression!==n||e.type!==r?t(we(n,r),e):e},e.createNonNullExpression=Fe,e.updateNonNullExpression=function(e,n){return e.expression!==n?t(Fe(n),e):e},e.createMetaProperty=Ge,e.updateMetaProperty=function(e,n){return e.name!==n?t(Ge(e.keywordToken,n),e):e},e.createTemplateSpan=Be,e.updateTemplateSpan=function(e,n,r){return e.expression!==n||e.literal!==r?t(Be(n,r),e):e},e.createSemicolonClassElement=function(){return n(221)},e.createBlock=Ve,e.updateBlock=function(e,n){return e.statements!==n?t(Ve(n,e.multiLine),e):e},e.createVariableStatement=Ue,e.updateVariableStatement=function(e,n,r){return e.modifiers!==n||e.declarationList!==r?t(Ue(n,r),e):e},e.createEmptyStatement=je,e.createExpressionStatement=Ke,e.updateExpressionStatement=He,e.createStatement=Ke,e.updateStatement=He,e.createIf=We,e.updateIf=function(e,n,r,a){return e.expression!==n||e.thenStatement!==r||e.elseStatement!==a?t(We(n,r,a),e):e},e.createDo=ze,e.updateDo=function(e,n,r){return e.statement!==n||e.expression!==r?t(ze(n,r),e):e},e.createWhile=qe,e.updateWhile=function(e,n,r){return e.expression!==n||e.statement!==r?t(qe(n,r),e):e},e.createFor=Je,e.updateFor=function(e,n,r,a,i){return e.initializer!==n||e.condition!==r||e.incrementor!==a||e.statement!==i?t(Je(n,r,a,i),e):e},e.createForIn=Xe,e.updateForIn=function(e,n,r,a){return e.initializer!==n||e.expression!==r||e.statement!==a?t(Xe(n,r,a),e):e},e.createForOf=Ye,e.updateForOf=function(e,n,r,a,i){return e.awaitModifier!==n||e.initializer!==r||e.expression!==a||e.statement!==i?t(Ye(n,r,a,i),e):e},e.createContinue=Qe,e.updateContinue=function(e,n){return e.label!==n?t(Qe(n),e):e},e.createBreak=Ze,e.updateBreak=function(e,n){return e.label!==n?t(Ze(n),e):e},e.createReturn=$e,e.updateReturn=function(e,n){return e.expression!==n?t($e(n),e):e},e.createWith=en,e.updateWith=function(e,n,r){return e.expression!==n||e.statement!==r?t(en(n,r),e):e},e.createSwitch=nn,e.updateSwitch=function(e,n,r){return e.expression!==n||e.caseBlock!==r?t(nn(n,r),e):e},e.createLabel=tn,e.updateLabel=function(e,n,r){return e.label!==n||e.statement!==r?t(tn(n,r),e):e},e.createThrow=rn,e.updateThrow=function(e,n){return e.expression!==n?t(rn(n),e):e},e.createTry=an,e.updateTry=function(e,n,r,a){return e.tryBlock!==n||e.catchClause!==r||e.finallyBlock!==a?t(an(n,r,a),e):e},e.createDebuggerStatement=function(){return n(240)},e.createVariableDeclaration=on,e.updateVariableDeclaration=function(e,n,r,a){return e.name!==n||e.type!==r||e.initializer!==a?t(on(n,r,a),e):e},e.createVariableDeclarationList=sn,e.updateVariableDeclarationList=function(e,n){return e.declarations!==n?t(sn(n,e.flags),e):e},e.createFunctionDeclaration=cn,e.updateFunctionDeclaration=function(e,n,r,a,i,o,s,c,l){return e.decorators!==n||e.modifiers!==r||e.asteriskToken!==a||e.name!==i||e.typeParameters!==o||e.parameters!==s||e.type!==c||e.body!==l?t(cn(n,r,a,i,o,s,c,l),e):e},e.createClassDeclaration=ln,e.updateClassDeclaration=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.heritageClauses!==o||e.members!==s?t(ln(n,r,a,i,o,s),e):e},e.createInterfaceDeclaration=un,e.updateInterfaceDeclaration=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.heritageClauses!==o||e.members!==s?t(un(n,r,a,i,o,s),e):e},e.createTypeAliasDeclaration=dn,e.updateTypeAliasDeclaration=function(e,n,r,a,i,o){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.type!==o?t(dn(n,r,a,i,o),e):e},e.createEnumDeclaration=pn,e.updateEnumDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.members!==i?t(pn(n,r,a,i),e):e},e.createModuleDeclaration=mn,e.updateModuleDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.body!==i?t(mn(n,r,a,i,e.flags),e):e},e.createModuleBlock=fn,e.updateModuleBlock=function(e,n){return e.statements!==n?t(fn(n),e):e},e.createCaseBlock=_n,e.updateCaseBlock=function(e,n){return e.clauses!==n?t(_n(n),e):e},e.createNamespaceExportDeclaration=gn,e.updateNamespaceExportDeclaration=function(e,n){return e.name!==n?t(gn(n),e):e},e.createImportEqualsDeclaration=yn,e.updateImportEqualsDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.moduleReference!==i?t(yn(n,r,a,i),e):e},e.createImportDeclaration=vn,e.updateImportDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.importClause!==a||e.moduleSpecifier!==i?t(vn(n,r,a,i),e):e},e.createImportClause=hn,e.updateImportClause=function(e,n,r){return e.name!==n||e.namedBindings!==r?t(hn(n,r),e):e},e.createNamespaceImport=bn,e.updateNamespaceImport=function(e,n){return e.name!==n?t(bn(n),e):e},e.createNamedImports=En,e.updateNamedImports=function(e,n){return e.elements!==n?t(En(n),e):e},e.createImportSpecifier=Tn,e.updateImportSpecifier=function(e,n,r){return e.propertyName!==n||e.name!==r?t(Tn(n,r),e):e},e.createExportAssignment=Sn,e.updateExportAssignment=function(e,n,r,a){return e.decorators!==n||e.modifiers!==r||e.expression!==a?t(Sn(n,r,e.isExportEquals,a),e):e},e.createExportDeclaration=xn,e.updateExportDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.exportClause!==a||e.moduleSpecifier!==i?t(xn(n,r,a,i),e):e},e.createEmptyExports=function(){return xn(void 0,void 0,Ln([]),void 0)},e.createNamedExports=Ln,e.updateNamedExports=function(e,n){return e.elements!==n?t(Ln(n),e):e},e.createExportSpecifier=Cn,e.updateExportSpecifier=function(e,n,r){return e.propertyName!==n||e.name!==r?t(Cn(n,r),e):e},e.createExternalModuleReference=An,e.updateExternalModuleReference=function(e,n){return e.expression!==n?t(An(n),e):e},e.createJSDocTypeExpression=function(e){var t=n(292);return t.type=e,t},e.createJSDocTypeTag=function(e,n){var t=Dn(313,\"type\");return t.typeExpression=e,t.comment=n,t},e.createJSDocReturnTag=function(e,n){var t=Dn(311,\"returns\");return t.typeExpression=e,t.comment=n,t},e.createJSDocThisTag=function(e){var n=Dn(312,\"this\");return n.typeExpression=e,n},e.createJSDocParamTag=function(e,n,t,r){var a=Dn(310,\"param\");return a.typeExpression=t,a.name=e,a.isBracketed=n,a.comment=r,a},e.createJSDocComment=function(e,t){var r=n(301);return r.comment=e,r.tags=t,r},e.createJsxElement=kn,e.updateJsxElement=function(e,n,r,a){return e.openingElement!==n||e.children!==r||e.closingElement!==a?t(kn(n,r,a),e):e},e.createJsxSelfClosingElement=Nn,e.updateJsxSelfClosingElement=function(e,n,r,a){return e.tagName!==n||e.typeArguments!==r||e.attributes!==a?t(Nn(n,r,a),e):e},e.createJsxOpeningElement=In,e.updateJsxOpeningElement=function(e,n,r,a){return e.tagName!==n||e.typeArguments!==r||e.attributes!==a?t(In(n,r,a),e):e},e.createJsxClosingElement=Mn,e.updateJsxClosingElement=function(e,n){return e.tagName!==n?t(Mn(n),e):e},e.createJsxFragment=On,e.createJsxText=Rn,e.updateJsxText=function(e,n,r){return e.text!==n||e.containsOnlyTriviaWhiteSpaces!==r?t(Rn(n,r),e):e},e.createJsxOpeningFragment=function(){return n(269)},e.createJsxJsxClosingFragment=function(){return n(270)},e.updateJsxFragment=function(e,n,r,a){return e.openingFragment!==n||e.children!==r||e.closingFragment!==a?t(On(n,r,a),e):e},e.createJsxAttribute=Pn,e.updateJsxAttribute=function(e,n,r){return e.name!==n||e.initializer!==r?t(Pn(n,r),e):e},e.createJsxAttributes=wn,e.updateJsxAttributes=function(e,n){return e.properties!==n?t(wn(n),e):e},e.createJsxSpreadAttribute=Fn,e.updateJsxSpreadAttribute=function(e,n){return e.expression!==n?t(Fn(n),e):e},e.createJsxExpression=Gn,e.updateJsxExpression=function(e,n){return e.expression!==n?t(Gn(e.dotDotDotToken,n),e):e},e.createCaseClause=Bn,e.updateCaseClause=function(e,n,r){return e.expression!==n||e.statements!==r?t(Bn(n,r),e):e},e.createDefaultClause=Vn,e.updateDefaultClause=function(e,n){return e.statements!==n?t(Vn(n),e):e},e.createHeritageClause=Un,e.updateHeritageClause=function(e,n){return e.types!==n?t(Un(e.token,n),e):e},e.createCatchClause=jn,e.updateCatchClause=function(e,n,r){return e.variableDeclaration!==n||e.block!==r?t(jn(n,r),e):e},e.createPropertyAssignment=Kn,e.updatePropertyAssignment=function(e,n,r){return e.name!==n||e.initializer!==r?t(Kn(n,r),e):e},e.createShorthandPropertyAssignment=Hn,e.updateShorthandPropertyAssignment=function(e,n,r){return e.name!==n||e.objectAssignmentInitializer!==r?t(Hn(n,r),e):e},e.createSpreadAssignment=Wn,e.updateSpreadAssignment=function(e,n){return e.expression!==n?t(Wn(n),e):e},e.createEnumMember=zn,e.updateEnumMember=function(e,n,r){return e.name!==n||e.initializer!==r?t(zn(n,r),e):e},e.updateSourceFileNode=function(e,a,i,o,s,c,l){if(e.statements!==a||void 0!==i&&e.isDeclarationFile!==i||void 0!==o&&e.referencedFiles!==o||void 0!==s&&e.typeReferenceDirectives!==s||void 0!==l&&e.libReferenceDirectives!==l||void 0!==c&&e.hasNoDefaultLib!==c){var u=n(288);return u.flags|=e.flags,u.statements=r(a),u.endOfFileToken=e.endOfFileToken,u.fileName=e.fileName,u.path=e.path,u.text=e.text,u.isDeclarationFile=void 0===i?e.isDeclarationFile:i,u.referencedFiles=void 0===o?e.referencedFiles:o,u.typeReferenceDirectives=void 0===s?e.typeReferenceDirectives:s,u.hasNoDefaultLib=void 0===c?e.hasNoDefaultLib:c,u.libReferenceDirectives=void 0===l?e.libReferenceDirectives:l,void 0!==e.amdDependencies&&(u.amdDependencies=e.amdDependencies),void 0!==e.moduleName&&(u.moduleName=e.moduleName),void 0!==e.languageVariant&&(u.languageVariant=e.languageVariant),void 0!==e.renamedDependencies&&(u.renamedDependencies=e.renamedDependencies),void 0!==e.languageVersion&&(u.languageVersion=e.languageVersion),void 0!==e.scriptKind&&(u.scriptKind=e.scriptKind),void 0!==e.externalModuleIndicator&&(u.externalModuleIndicator=e.externalModuleIndicator),void 0!==e.commonJsModuleIndicator&&(u.commonJsModuleIndicator=e.commonJsModuleIndicator),void 0!==e.identifiers&&(u.identifiers=e.identifiers),void 0!==e.nodeCount&&(u.nodeCount=e.nodeCount),void 0!==e.identifierCount&&(u.identifierCount=e.identifierCount),void 0!==e.symbolCount&&(u.symbolCount=e.symbolCount),void 0!==e.parseDiagnostics&&(u.parseDiagnostics=e.parseDiagnostics),void 0!==e.bindDiagnostics&&(u.bindDiagnostics=e.bindDiagnostics),void 0!==e.bindSuggestionDiagnostics&&(u.bindSuggestionDiagnostics=e.bindSuggestionDiagnostics),void 0!==e.lineMap&&(u.lineMap=e.lineMap),void 0!==e.classifiableNames&&(u.classifiableNames=e.classifiableNames),void 0!==e.resolvedModules&&(u.resolvedModules=e.resolvedModules),void 0!==e.resolvedTypeReferenceDirectiveNames&&(u.resolvedTypeReferenceDirectiveNames=e.resolvedTypeReferenceDirectiveNames),void 0!==e.imports&&(u.imports=e.imports),void 0!==e.moduleAugmentations&&(u.moduleAugmentations=e.moduleAugmentations),void 0!==e.pragmas&&(u.pragmas=e.pragmas),void 0!==e.localJsxFactory&&(u.localJsxFactory=e.localJsxFactory),void 0!==e.localJsxNamespace&&(u.localJsxNamespace=e.localJsxNamespace),t(u,e)}return e},e.getMutableClone=function(e){var n=a(e);return n.pos=e.pos,n.end=e.end,n.parent=e.parent,n},e.createNotEmittedStatement=function(e){var t=n(318);return t.original=e,ot(t,e),t},e.createEndOfDeclarationMarker=function(e){var t=n(322);return t.emitNode={},t.original=e,t},e.createMergeDeclarationMarker=function(e){var t=n(321);return t.emitNode={},t.original=e,t},e.createPartiallyEmittedExpression=qn,e.updatePartiallyEmittedExpression=function(e,n){return e.expression!==n?t(qn(n,e.original),e):e},e.createCommaList=Xn,e.updateCommaList=function(e,n){return e.elements!==n?t(Xn(n),e):e},e.createSyntheticReferenceExpression=Yn,e.updateSyntheticReferenceExpression=function(e,n,r){return e.expression!==n||e.thisArg!==r?t(Yn(n,r),e):e},e.createBundle=Qn,e.createUnparsedSourceFile=function(n,t,r){var a,i,o=function(){var n=e.createNode(290);return n.prologues=e.emptyArray,n.referencedFiles=e.emptyArray,n.libReferenceDirectives=e.emptyArray,n.getLineAndCharacterOfPosition=function(t){return e.getLineAndCharacterOfPosition(n,t)},n}();if(e.isString(n))o.fileName=\"\",o.text=n,o.sourceMapPath=t,o.sourceMapText=r;else if(e.Debug.assert(\"js\"===t||\"dts\"===t),o.fileName=(\"js\"===t?n.javascriptPath:n.declarationPath)||\"\",o.sourceMapPath=\"js\"===t?n.javascriptMapPath:n.declarationMapPath,Object.defineProperties(o,{text:{get:function(){return\"js\"===t?n.javascriptText:n.declarationText}},sourceMapText:{get:function(){return\"js\"===t?n.javascriptMapText:n.declarationMapText}}}),n.buildInfo&&n.buildInfo.bundle&&(o.oldFileOfCurrentEmit=n.oldFileOfCurrentEmit,e.Debug.assert(void 0===r||\"boolean\"==typeof r),a=r,i=\"js\"===t?n.buildInfo.bundle.js:n.buildInfo.bundle.dts,o.oldFileOfCurrentEmit))return function(n,t){var r,a;e.Debug.assert(!!n.oldFileOfCurrentEmit);for(var i=0,o=t.sections;i<o.length;i++){var s=o[i];switch(s.kind){case\"internal\":case\"text\":(r||(r=[])).push($n(s,n));break;case\"no-default-lib\":case\"reference\":case\"type\":case\"lib\":(a||(a=[])).push(et(s,n));break;case\"prologue\":case\"emitHelpers\":case\"prepend\":break;default:e.Debug.assertNever(s)}}n.texts=r||e.emptyArray,n.helpers=e.map(t.sources&&t.sources.helpers,(function(e){return Zn().get(e)})),n.syntheticReferences=a}(o,e.Debug.assertDefined(i)),o;return e.Debug.assert(!o.oldFileOfCurrentEmit),function(n,t,r){for(var a,i,o,s,c,l,u=0,d=t?t.sections:e.emptyArray;u<d.length;u++){var p=d[u];switch(p.kind){case\"prologue\":(a||(a=[])).push($n(p,n));break;case\"emitHelpers\":(i||(i=[])).push(Zn().get(p.data));break;case\"no-default-lib\":n.hasNoDefaultLib=!0;break;case\"reference\":(o||(o=[])).push({pos:-1,end:-1,fileName:p.data});break;case\"type\":(s||(s=[])).push(p.data);break;case\"lib\":(c||(c=[])).push({pos:-1,end:-1,fileName:p.data});break;case\"prepend\":for(var m=$n(p,n),f=void 0,_=0,g=p.texts;_<g.length;_++){var y=g[_];r&&\"internal\"===y.kind||(f||(f=[])).push($n(y,n))}m.texts=f||e.emptyArray,(l||(l=[])).push(m);break;case\"internal\":if(r){l||(l=[]);break}case\"text\":(l||(l=[])).push($n(p,n));break;default:e.Debug.assertNever(p)}}n.prologues=a||e.emptyArray,n.helpers=i,n.referencedFiles=o||e.emptyArray,n.typeReferenceDirectives=s,n.libReferenceDirectives=c||e.emptyArray,n.texts=l||[$n({kind:\"text\",pos:0,end:n.text.length},n)]}(o,i,a),o},e.createInputFiles=function(n,t,r,a,i,o,s,c,l,u,d){var p=e.createNode(291);if(e.isString(n))p.javascriptText=n,p.javascriptMapPath=r,p.javascriptMapText=a,p.declarationText=t,p.declarationMapPath=i,p.declarationMapText=o,p.javascriptPath=s,p.declarationPath=c,p.buildInfoPath=l,p.buildInfo=u,p.oldFileOfCurrentEmit=d;else{var m,f=e.createMap(),_=function(e){if(void 0!==e){var t=f.get(e);return void 0===t&&(t=n(e),f.set(e,void 0!==t&&t)),!1!==t?t:void 0}},g=function(e){var n=_(e);return void 0!==n?n:\"/* Input file \"+e+\" was missing */\\r\\n\"};p.javascriptPath=t,p.javascriptMapPath=r,p.declarationPath=e.Debug.assertDefined(a),p.declarationMapPath=i,p.buildInfoPath=o,Object.defineProperties(p,{javascriptText:{get:function(){return g(t)}},javascriptMapText:{get:function(){return _(r)}},declarationText:{get:function(){return g(e.Debug.assertDefined(a))}},declarationMapText:{get:function(){return _(i)}},buildInfo:{get:function(){return function(n){if(void 0===m){var t=n();m=void 0!==t&&e.getBuildInfo(t)}return m||void 0}((function(){return _(o)}))}}})}return p},e.updateBundle=function(n,t,r){return void 0===r&&(r=e.emptyArray),n.sourceFiles!==t||n.prepends!==r?Qn(t,r):n},e.createImmediatelyInvokedFunctionExpression=function(e,n,t){return ue(ye(void 0,void 0,void 0,void 0,n?[n]:[],void 0,Ve(e,!0)),void 0,t?[t]:[])},e.createImmediatelyInvokedArrowFunction=function(e,n,t){return ue(ve(void 0,void 0,n?[n]:[],void 0,void 0,Ve(e,!0)),void 0,t?[t]:[])},e.createComma=function(e,n){return Le(e,27,n)},e.createLessThan=function(e,n){return Le(e,29,n)},e.createAssignment=function(e,n){return Le(e,62,n)},e.createStrictEquality=function(e,n){return Le(e,36,n)},e.createStrictInequality=function(e,n){return Le(e,37,n)},e.createAdd=function(e,n){return Le(e,39,n)},e.createSubtract=function(e,n){return Le(e,40,n)},e.createPostfixIncrement=function(e){return xe(e,45)},e.createLogicalAnd=function(e,n){return Le(e,55,n)},e.createLogicalOr=function(e,n){return Le(e,56,n)},e.createNullishCoalesce=function(e,n){return Le(e,60,n)},e.createLogicalNot=function(e){return Se(53,e)},e.createVoidZero=function(){return Ee(i(0))},e.createExportDefault=function(e){return Sn(void 0,void 0,!1,e)},e.createExternalModuleExport=function(e){return xn(void 0,void 0,Ln([Cn(void 0,e)]))},e.disposeEmitNodes=function(n){var t=(n=e.getSourceFileOfNode(e.getParseTreeNode(n)))&&n.emitNode,r=t&&t.annotatedNodes;if(r)for(var a=0,i=r;a<i.length;a++){i[a].emitNode=void 0}},e.getOrCreateEmitNode=it,e.removeAllComments=function(e){var n=it(e);return n.flags|=1536,n.leadingComments=void 0,n.trailingComments=void 0,e},e.setTextRange=ot,e.setEmitFlags=st,e.addEmitFlags=function(e,n){var t=it(e);return t.flags=t.flags|n,e},e.getSourceMapRange=function(e){var n=e.emitNode;return n&&n.sourceMapRange||e},e.setSourceMapRange=function(e,n){return it(e).sourceMapRange=n,e},e.createSourceMapSource=function(n,t,r){return new(ke||(ke=e.objectAllocator.getSourceMapSourceConstructor()))(n,t,r)},e.getTokenSourceMapRange=function(e,n){var t=e.emitNode,r=t&&t.tokenSourceMapRanges;return r&&r[n]},e.setTokenSourceMapRange=function(e,n,t){var r=it(e);return(r.tokenSourceMapRanges||(r.tokenSourceMapRanges=[]))[n]=t,e},e.getStartsOnNewLine=function(e){var n=e.emitNode;return n&&n.startsOnNewLine},e.setStartsOnNewLine=function(e,n){return it(e).startsOnNewLine=n,e},e.getCommentRange=function(e){var n=e.emitNode;return n&&n.commentRange||e},e.setCommentRange=function(e,n){return it(e).commentRange=n,e},e.getSyntheticLeadingComments=ct,e.setSyntheticLeadingComments=lt,e.addSyntheticLeadingComment=function(n,t,r,a){return lt(n,e.append(ct(n),{kind:t,pos:-1,end:-1,hasTrailingNewLine:a,text:r}))},e.getSyntheticTrailingComments=ut,e.setSyntheticTrailingComments=dt,e.addSyntheticTrailingComment=function(n,t,r,a){return dt(n,e.append(ut(n),{kind:t,pos:-1,end:-1,hasTrailingNewLine:a,text:r}))},e.moveSyntheticComments=function(e,n){lt(e,ct(n)),dt(e,ut(n));var t=it(n);return t.leadingComments=void 0,t.trailingComments=void 0,e},e.getConstantValue=function(e){var n=e.emitNode;return n&&n.constantValue},e.setConstantValue=function(e,n){return it(e).constantValue=n,e},e.addEmitHelper=function(n,t){var r=it(n);return r.helpers=e.append(r.helpers,t),n},e.addEmitHelpers=function(n,t){if(e.some(t))for(var r=it(n),a=0,i=t;a<i.length;a++){var o=i[a];r.helpers=e.appendIfUnique(r.helpers,o)}return n},e.removeEmitHelper=function(n,t){var r=n.emitNode;if(r){var a=r.helpers;if(a)return e.orderedRemoveItem(a,t)}return!1},e.getEmitHelpers=function(e){var n=e.emitNode;return n&&n.helpers},e.moveEmitHelpers=function(n,t,r){var a=n.emitNode,i=a&&a.helpers;if(e.some(i)){for(var o=it(t),s=0,c=0;c<i.length;c++){var l=i[c];r(l)?(s++,o.helpers=e.appendIfUnique(o.helpers,l)):s>0&&(i[c-s]=l)}s>0&&(i.length-=s)}},e.compareEmitHelpers=function(n,t){return n===t?0:n.priority===t.priority?0:void 0===n.priority?1:void 0===t.priority?-1:e.compareValues(n.priority,t.priority)},e.setOriginalNode=pt}(ts||(ts={})),function(e){function n(n,t,r){if(e.isComputedPropertyName(t))return e.setTextRange(e.createElementAccess(n,t.expression),r);var a=e.setTextRange(e.isIdentifier(t)?e.createPropertyAccess(n,t):e.createElementAccess(n,t),t);return e.getOrCreateEmitNode(a).flags|=64,a}function t(n,t){var r=e.createIdentifier(n||\"React\");return r.flags&=-9,r.parent=e.getParseTreeNode(t),r}function r(n,r,a){return n?function n(r,a){if(e.isQualifiedName(r)){var i=n(r.left,a),o=e.createIdentifier(e.idText(r.right));return o.escapedText=r.right.escapedText,e.createPropertyAccess(i,o)}return t(e.idText(r),a)}(n,a):e.createPropertyAccess(t(r,a),\"createElement\")}function a(n){return e.setEmitFlags(e.createIdentifier(n),4098)}function i(n,t){var r=e.skipParentheses(n);switch(r.kind){case 75:return t;case 103:case 8:case 9:case 10:return!1;case 191:return 0!==r.elements.length;case 192:return r.properties.length>0;default:return!0}}function o(n){return e.isIdentifier(n)?e.createLiteral(n):e.isComputedPropertyName(n)?e.getMutableClone(n.expression):e.getMutableClone(n)}function s(e,n,t){return c(e,n,t,8192)}function c(n,t,r,a){void 0===a&&(a=0);var i=e.getNameOfDeclaration(n);if(i&&e.isIdentifier(i)&&!e.isGeneratedIdentifier(i)){var o=e.getMutableClone(i);return a|=e.getEmitFlags(i),r||(a|=48),t||(a|=1536),a&&e.setEmitFlags(o,a),o}return e.getGeneratedNameForNode(n)}function l(n,t,r,a){var i=e.createPropertyAccess(n,e.nodeIsSynthesized(t)?t:e.getSynthesizedClone(t));e.setTextRange(i,t);var o=0;return a||(o|=48),r||(o|=1536),o&&e.setEmitFlags(i,o),i}function u(n){return e.isStringLiteral(n.expression)&&\"use strict\"===n.expression.text}function d(n,t,r){e.Debug.assert(0===n.length,\"Prologue directives should be at the first statement in the target statements array\");for(var a=!1,i=0,o=t.length;i<o;){var s=t[i];if(!e.isPrologueDirective(s))break;u(s)&&(a=!0),n.push(s),i++}return r&&!a&&n.push(L(e.createStatement(e.createLiteral(\"use strict\")))),i}function p(n,t,r,a){for(var i=t.length;void 0!==r&&r<i;){var o=t[r];if(!(1048576&e.getEmitFlags(o)))break;e.append(n,a?e.visitNode(o,a,e.isStatement):o),r++}return r}function m(n){for(var t=0,r=n;t<r.length;t++){var a=r[t];if(!e.isPrologueDirective(a))break;if(u(a))return a}}function f(n){if(n=e.skipPartiallyEmittedExpressions(n),e.isLiteralKind(n.kind))return n.kind;if(208===n.kind&&39===n.operatorToken.kind){if(void 0!==n.cachedLiteralKind)return n.cachedLiteralKind;var t=f(n.left),r=e.isLiteralKind(t)&&t===f(n.right)?t:0;return n.cachedLiteralKind=r,r}return 0}function _(n){var t=e.skipPartiallyEmittedExpressions(n);return e.isLeftHandSideExpression(t)&&(196!==t.kind||t.arguments)?n:e.setTextRange(e.createParen(n),n)}function g(n){var t=e.skipPartiallyEmittedExpressions(n);return e.getExpressionPrecedence(t)>e.getOperatorPrecedence(208,27)?n:e.setTextRange(e.createParen(n),n)}function y(n){return 179===n.kind?e.createParenthesizedType(n):n}function v(n){switch(n.kind){case 177:case 178:case 169:case 170:return e.createParenthesizedType(n)}return y(n)}function h(e,n){for(;;){switch(e.kind){case 207:e=e.operand;continue;case 208:e=e.left;continue;case 209:e=e.condition;continue;case 197:e=e.tag;continue;case 195:if(n)return e;case 216:case 194:case 193:case 217:case 319:e=e.expression;continue}return e}}function b(e){return 208===e.kind&&27===e.operatorToken.kind||320===e.kind}function E(e,n){switch(void 0===n&&(n=7),e.kind){case 199:return 0!=(1&n);case 198:case 216:case 217:return 0!=(2&n);case 319:return 0!=(4&n)}return!1}function T(n,t){var r;void 0===t&&(t=7);do{r=n,1&t&&(n=e.skipParentheses(n)),2&t&&(n=S(n)),4&t&&(n=e.skipPartiallyEmittedExpressions(n))}while(r!==n);return n}function S(n){for(;e.isAssertionExpression(n)||217===n.kind;)n=n.expression;return n}function x(n,t,r){return void 0===r&&(r=7),n&&E(n,r)&&(!(199===(a=n).kind&&e.nodeIsSynthesized(a)&&e.nodeIsSynthesized(e.getSourceMapRange(a))&&e.nodeIsSynthesized(e.getCommentRange(a)))||e.some(e.getSyntheticLeadingComments(a))||e.some(e.getSyntheticTrailingComments(a)))?function(n,t){switch(n.kind){case 199:return e.updateParen(n,t);case 198:return e.updateTypeAssertion(n,n.type,t);case 216:return e.updateAsExpression(n,t,n.type);case 217:return e.updateNonNullExpression(n,t);case 319:return e.updatePartiallyEmittedExpression(n,t)}}(n,x(n.expression,t)):t;var a}function L(n){return e.setStartsOnNewLine(n,!0)}function C(n){var t=e.getOriginalNode(n,e.isSourceFile),r=t&&t.emitNode;return r&&r.externalHelpersModuleName}function A(n,t,r,a){if(t.importHelpers&&e.isEffectiveExternalModule(n,t)){var i=C(n);if(i)return i;var o=e.getEmitModuleKind(t),s=(r||t.esModuleInterop&&a)&&o!==e.ModuleKind.System&&o!==e.ModuleKind.ES2015&&o!==e.ModuleKind.ESNext;if(!s){var c=e.getEmitHelpers(n);if(c)for(var l=0,u=c;l<u.length;l++){if(!u[l].scoped){s=!0;break}}}if(s){var d=e.getOriginalNode(n,e.isSourceFile),p=e.getOrCreateEmitNode(d);return p.externalHelpersModuleName||(p.externalHelpersModuleName=e.createUniqueName(e.externalHelpersModuleNameText))}}}function D(n,t,r){if(n)return n.moduleName?e.createLiteral(n.moduleName):n.isDeclarationFile||!r.out&&!r.outFile?void 0:e.createLiteral(e.getExternalModuleNameFromPath(t,n.fileName))}function k(n){if(e.isDeclarationBindingElement(n))return n.name;if(!e.isObjectLiteralElementLike(n))return e.isAssignmentExpression(n,!0)?k(n.left):e.isSpreadElement(n)?k(n.expression):n;switch(n.kind){case 279:return k(n.initializer);case 280:return n.name;case 281:return k(n.expression)}}function N(e){var n=e.kind;return 10===n||8===n}function I(n){if(e.isBindingElement(n)){if(n.dotDotDotToken)return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createSpread(n.name),n),n);var t=w(n.name);return n.initializer?e.setOriginalNode(e.setTextRange(e.createAssignment(t,n.initializer),n),n):t}return e.Debug.assertNode(n,e.isExpression),n}function M(n){if(e.isBindingElement(n)){if(n.dotDotDotToken)return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createSpreadAssignment(n.name),n),n);if(n.propertyName){var t=w(n.name);return e.setOriginalNode(e.setTextRange(e.createPropertyAssignment(n.propertyName,n.initializer?e.createAssignment(t,n.initializer):t),n),n)}return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createShorthandPropertyAssignment(n.name,n.initializer),n),n)}return e.Debug.assertNode(n,e.isObjectLiteralElementLike),n}function O(e){switch(e.kind){case 189:case 191:return P(e);case 188:case 192:return R(e)}}function R(n){return e.isObjectBindingPattern(n)?e.setOriginalNode(e.setTextRange(e.createObjectLiteral(e.map(n.elements,M)),n),n):(e.Debug.assertNode(n,e.isObjectLiteralExpression),n)}function P(n){return e.isArrayBindingPattern(n)?e.setOriginalNode(e.setTextRange(e.createArrayLiteral(e.map(n.elements,I)),n),n):(e.Debug.assertNode(n,e.isArrayLiteralExpression),n)}function w(n){return e.isBindingPattern(n)?O(n):(e.Debug.assertNode(n,e.isExpression),n)}e.nullTransformationContext={enableEmitNotification:e.noop,enableSubstitution:e.noop,endLexicalEnvironment:e.returnUndefined,getCompilerOptions:e.notImplemented,getEmitHost:e.notImplemented,getEmitResolver:e.notImplemented,hoistFunctionDeclaration:e.noop,hoistVariableDeclaration:e.noop,isEmitNotificationEnabled:e.notImplemented,isSubstitutionEnabled:e.notImplemented,onEmitNode:e.noop,onSubstituteNode:e.notImplemented,readEmitHelpers:e.notImplemented,requestEmitHelper:e.noop,resumeLexicalEnvironment:e.noop,startLexicalEnvironment:e.noop,suspendLexicalEnvironment:e.noop,addDiagnostic:e.noop},e.createTypeCheck=function(n,t){return\"undefined\"===t?e.createStrictEquality(n,e.createVoidZero()):e.createStrictEquality(e.createTypeOf(n),e.createLiteral(t))},e.createMemberAccessForPropertyName=n,e.createFunctionCall=function(n,t,r,a){return e.setTextRange(e.createCall(e.createPropertyAccess(n,\"call\"),void 0,__spreadArrays([t],r)),a)},e.createFunctionApply=function(n,t,r,a){return e.setTextRange(e.createCall(e.createPropertyAccess(n,\"apply\"),void 0,[t,r]),a)},e.createArraySlice=function(n,t){var r=[];return void 0!==t&&r.push(\"number\"==typeof t?e.createLiteral(t):t),e.createCall(e.createPropertyAccess(n,\"slice\"),void 0,r)},e.createArrayConcat=function(n,t){return e.createCall(e.createPropertyAccess(n,\"concat\"),void 0,t)},e.createMathPow=function(n,t,r){return e.setTextRange(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Math\"),\"pow\"),void 0,[n,t]),r)},e.createExpressionForJsxElement=function(n,t,a,i,o,s,c){var l=[a];if(i&&l.push(i),o&&o.length>0)if(i||l.push(e.createNull()),o.length>1)for(var u=0,d=o;u<d.length;u++){var p=d[u];L(p),l.push(p)}else l.push(o[0]);return e.setTextRange(e.createCall(r(n,t,s),void 0,l),c)},e.createExpressionForJsxFragment=function(n,a,i,o,s){var c=[e.createPropertyAccess(t(a,o),\"Fragment\")];if(c.push(e.createNull()),i&&i.length>0)if(i.length>1)for(var l=0,u=i;l<u.length;l++){var d=u[l];L(d),c.push(d)}else c.push(i[0]);return e.setTextRange(e.createCall(r(n,a,o),void 0,c),s)},e.getUnscopedHelperName=a,e.valuesHelper={name:\"typescript:values\",importName:\"__values\",scoped:!1,text:'\\n            var __values = (this && this.__values) || function(o) {\\n                var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\\n                if (m) return m.call(o);\\n                if (o && typeof o.length === \"number\") return {\\n                    next: function () {\\n                        if (o && i >= o.length) o = void 0;\\n                        return { value: o && o[i++], done: !o };\\n                    }\\n                };\\n                throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\\n            };'},e.createValuesHelper=function(n,t,r){return n.requestEmitHelper(e.valuesHelper),e.setTextRange(e.createCall(a(\"__values\"),void 0,[t]),r)},e.readHelper={name:\"typescript:read\",importName:\"__read\",scoped:!1,text:'\\n            var __read = (this && this.__read) || function (o, n) {\\n                var m = typeof Symbol === \"function\" && o[Symbol.iterator];\\n                if (!m) return o;\\n                var i = m.call(o), r, ar = [], e;\\n                try {\\n                    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\n                }\\n                catch (error) { e = { error: error }; }\\n                finally {\\n                    try {\\n                        if (r && !r.done && (m = i[\"return\"])) m.call(i);\\n                    }\\n                    finally { if (e) throw e.error; }\\n                }\\n                return ar;\\n            };'},e.createReadHelper=function(n,t,r,i){return n.requestEmitHelper(e.readHelper),e.setTextRange(e.createCall(a(\"__read\"),void 0,void 0!==r?[t,e.createLiteral(r)]:[t]),i)},e.spreadHelper={name:\"typescript:spread\",importName:\"__spread\",scoped:!1,text:\"\\n            var __spread = (this && this.__spread) || function () {\\n                for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\\n                return ar;\\n            };\"},e.createSpreadHelper=function(n,t,r){return n.requestEmitHelper(e.readHelper),n.requestEmitHelper(e.spreadHelper),e.setTextRange(e.createCall(a(\"__spread\"),void 0,t),r)},e.spreadArraysHelper={name:\"typescript:spreadArrays\",importName:\"__spreadArrays\",scoped:!1,text:\"\\n            var __spreadArrays = (this && this.__spreadArrays) || function () {\\n                for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\n                for (var r = Array(s), k = 0, i = 0; i < il; i++)\\n                    for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\n                        r[k] = a[j];\\n                return r;\\n            };\"},e.createSpreadArraysHelper=function(n,t,r){return n.requestEmitHelper(e.spreadArraysHelper),e.setTextRange(e.createCall(a(\"__spreadArrays\"),void 0,t),r)},e.createForOfBindingStatement=function(n,t){if(e.isVariableDeclarationList(n)){var r=e.first(n.declarations),a=e.updateVariableDeclaration(r,r.name,void 0,t);return e.setTextRange(e.createVariableStatement(void 0,e.updateVariableDeclarationList(n,[a])),n)}var i=e.setTextRange(e.createAssignment(n,t),n);return e.setTextRange(e.createStatement(i),n)},e.insertLeadingStatement=function(n,t){return e.isBlock(n)?e.updateBlock(n,e.setTextRange(e.createNodeArray(__spreadArrays([t],n.statements)),n.statements)):e.createBlock(e.createNodeArray([n,t]),!0)},e.restoreEnclosingLabel=function n(t,r,a){if(!r)return t;var i=e.updateLabel(r,r.label,237===r.statement.kind?n(t,r.statement):t);return a&&a(r),i},e.createCallBinding=function(n,t,r,a){void 0===a&&(a=!1);var o,s,c=T(n,7);if(e.isSuperProperty(c))o=e.createThis(),s=c;else if(101===c.kind)o=e.createThis(),s=r<2?e.setTextRange(e.createIdentifier(\"_super\"),c):c;else if(4096&e.getEmitFlags(c))o=e.createVoidZero(),s=_(c);else switch(c.kind){case 193:i(c.expression,a)?(o=e.createTempVariable(t),s=e.createPropertyAccess(e.setTextRange(e.createAssignment(o,c.expression),c.expression),c.name),e.setTextRange(s,c)):(o=c.expression,s=c);break;case 194:i(c.expression,a)?(o=e.createTempVariable(t),s=e.createElementAccess(e.setTextRange(e.createAssignment(o,c.expression),c.expression),c.argumentExpression),e.setTextRange(s,c)):(o=c.expression,s=c);break;default:o=e.createVoidZero(),s=_(n)}return{target:s,thisArg:o}},e.inlineExpressions=function(n){return n.length>10?e.createCommaList(n):e.reduceLeft(n,e.createComma)},e.createExpressionFromEntityName=function n(t){if(e.isQualifiedName(t)){var r=n(t.left),a=e.getMutableClone(t.right);return e.setTextRange(e.createPropertyAccess(r,a),t)}return e.getMutableClone(t)},e.createExpressionForPropertyName=o,e.createExpressionForObjectLiteralElementLike=function(t,r,a){switch(r.kind){case 162:case 163:return function(n,t,r,a){var i=e.getAllAccessorDeclarations(n,t),s=i.firstAccessor,c=i.getAccessor,l=i.setAccessor;if(t===s){var u=[];if(c){var d=e.createFunctionExpression(c.modifiers,void 0,void 0,void 0,c.parameters,void 0,c.body);e.setTextRange(d,c),e.setOriginalNode(d,c);var p=e.createPropertyAssignment(\"get\",d);u.push(p)}if(l){var m=e.createFunctionExpression(l.modifiers,void 0,void 0,void 0,l.parameters,void 0,l.body);e.setTextRange(m,l),e.setOriginalNode(m,l);var f=e.createPropertyAssignment(\"set\",m);u.push(f)}u.push(e.createPropertyAssignment(\"enumerable\",e.createTrue())),u.push(e.createPropertyAssignment(\"configurable\",e.createTrue()));var _=e.setTextRange(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[r,o(t.name),e.createObjectLiteral(u,a)]),s);return e.aggregateTransformFlags(_)}return}(t.properties,r,a,!!t.multiLine);case 279:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),t.initializer),t),t))}(r,a);case 280:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),e.getSynthesizedClone(t.name)),t),t))}(r,a);case 160:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),e.setOriginalNode(e.setTextRange(e.createFunctionExpression(t.modifiers,t.asteriskToken,void 0,void 0,t.parameters,void 0,t.body),t),t)),t),t))}(r,a)}},e.getInternalName=function(e,n,t){return c(e,n,t,49152)},e.isInternalName=function(n){return 0!=(32768&e.getEmitFlags(n))},e.getLocalName=function(e,n,t){return c(e,n,t,16384)},e.isLocalName=function(n){return 0!=(16384&e.getEmitFlags(n))},e.getExportName=s,e.isExportName=function(n){return 0!=(8192&e.getEmitFlags(n))},e.getDeclarationName=function(e,n,t){return c(e,n,t)},e.getExternalModuleOrNamespaceExportName=function(n,t,r,a){return n&&e.hasModifier(t,1)?l(n,c(t),r,a):s(t,r,a)},e.getNamespaceMemberName=l,e.convertToFunctionBody=function(n,t){return e.isBlock(n)?n:e.setTextRange(e.createBlock([e.setTextRange(e.createReturn(n),n)],t),n)},e.convertFunctionDeclarationToExpression=function(n){if(!n.body)return e.Debug.fail();var t=e.createFunctionExpression(n.modifiers,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body);return e.setOriginalNode(t,n),e.setTextRange(t,n),e.getStartsOnNewLine(n)&&e.setStartsOnNewLine(t,!0),e.aggregateTransformFlags(t),t},e.addPrologue=function(e,n,t,r){return p(e,n,d(e,n,t),r)},e.addStandardPrologue=d,e.addCustomPrologue=p,e.findUseStrictPrologue=m,e.startsWithUseStrict=function(n){var t=e.firstOrUndefined(n);return void 0!==t&&e.isPrologueDirective(t)&&u(t)},e.ensureUseStrict=function(n){return m(n)?n:e.setTextRange(e.createNodeArray(__spreadArrays([L(e.createStatement(e.createLiteral(\"use strict\")))],n)),n)},e.parenthesizeBinaryOperand=function(n,t,r,a){return 199===e.skipPartiallyEmittedExpressions(t).kind?t:function(n,t,r,a){var i=e.getOperatorPrecedence(208,n),o=e.getOperatorAssociativity(208,n),s=e.skipPartiallyEmittedExpressions(t);if(!r&&201===t.kind&&i>3)return!0;var c=e.getExpressionPrecedence(s);switch(e.compareValues(c,i)){case-1:return!(!r&&1===o&&211===t.kind);case 1:return!1;case 0:if(r)return 1===o;if(e.isBinaryExpression(s)&&s.operatorToken.kind===n){if(function(e){return 41===e||51===e||50===e||52===e}(n))return!1;if(39===n){var l=a?f(a):0;if(e.isLiteralKind(l)&&l===f(s))return!1}}return 0===e.getExpressionAssociativity(s)}}(n,t,r,a)?e.createParen(t):t},e.parenthesizeForConditionalHead=function(n){var t=e.getOperatorPrecedence(209,57),r=e.skipPartiallyEmittedExpressions(n),a=e.getExpressionPrecedence(r);return 1!==e.compareValues(a,t)?e.createParen(n):n},e.parenthesizeSubexpressionOfConditionalExpression=function(n){return b(e.skipPartiallyEmittedExpressions(n))?e.createParen(n):n},e.parenthesizeDefaultExpression=function(n){var t=e.skipPartiallyEmittedExpressions(n),r=b(t);if(!r)switch(h(t,!1).kind){case 213:case 200:r=!0}return r?e.createParen(n):n},e.parenthesizeForNew=function(n){var t=h(n,!0);switch(t.kind){case 195:return e.createParen(n);case 196:return t.arguments?n:e.createParen(n)}return _(n)},e.parenthesizeForAccess=_,e.parenthesizePostfixOperand=function(n){return e.isLeftHandSideExpression(n)?n:e.setTextRange(e.createParen(n),n)},e.parenthesizePrefixOperand=function(n){return e.isUnaryExpression(n)?n:e.setTextRange(e.createParen(n),n)},e.parenthesizeListElements=function(n){for(var t,r=0;r<n.length;r++){var a=g(n[r]);void 0===t&&a===n[r]||(void 0===t&&(t=n.slice(0,r)),t.push(a))}return void 0!==t?e.setTextRange(e.createNodeArray(t,n.hasTrailingComma),n):n},e.parenthesizeExpressionForList=g,e.parenthesizeExpressionForExpressionStatement=function(n){var t=e.skipPartiallyEmittedExpressions(n);if(e.isCallExpression(t)){var r=t.expression,a=e.skipPartiallyEmittedExpressions(r).kind;if(200===a||201===a){var i=e.getMutableClone(t);return i.expression=e.setTextRange(e.createParen(r),r),x(n,i,4)}}var o=h(t,!1).kind;return 192===o||200===o?e.setTextRange(e.createParen(n),n):n},e.parenthesizeConditionalTypeMember=y,e.parenthesizeElementTypeMember=v,e.parenthesizeArrayTypeMember=function(n){switch(n.kind){case 171:case 183:case 180:return e.createParenthesizedType(n)}return v(n)},e.parenthesizeElementTypeMembers=function(n){return e.createNodeArray(e.sameMap(n,v))},e.parenthesizeTypeParameters=function(n){if(e.some(n)){for(var t=[],r=0;r<n.length;++r){var a=n[r];t.push(0===r&&e.isFunctionOrConstructorTypeNode(a)&&a.typeParameters?e.createParenthesizedType(a):a)}return e.createNodeArray(t)}},e.getLeftmostExpression=h,e.parenthesizeConciseBody=function(n){return e.isBlock(n)||!b(n)&&192!==h(n,!1).kind?n:e.setTextRange(e.createParen(n),n)},e.isCommaSequence=b,function(e){e[e.Parentheses=1]=\"Parentheses\",e[e.Assertions=2]=\"Assertions\",e[e.PartiallyEmittedExpressions=4]=\"PartiallyEmittedExpressions\",e[e.All=7]=\"All\"}(e.OuterExpressionKinds||(e.OuterExpressionKinds={})),e.isOuterExpression=E,e.skipOuterExpressions=T,e.skipAssertions=S,e.recreateOuterExpressions=x,e.startOnNewLine=L,e.getExternalHelpersModuleName=C,e.hasRecordedExternalHelpers=function(n){var t=e.getOriginalNode(n,e.isSourceFile),r=t&&t.emitNode;return!(!r||!r.externalHelpersModuleName&&!r.externalHelpers)},e.createExternalHelpersImportDeclarationIfNeeded=function(n,t,r,i,o){if(t.importHelpers&&e.isEffectiveExternalModule(n,t)){var s=void 0,c=e.getEmitModuleKind(t);if(c>=e.ModuleKind.ES2015&&c<=e.ModuleKind.ESNext){var l=e.getEmitHelpers(n);if(l){for(var u=[],d=0,p=l;d<p.length;d++){var m=p[d];if(!m.scoped){var f=m.importName;f&&e.pushIfUnique(u,f)}}if(e.some(u)){u.sort(e.compareStringsCaseSensitive),s=e.createNamedImports(e.map(u,(function(t){return e.isFileLevelUniqueName(n,t)?e.createImportSpecifier(void 0,e.createIdentifier(t)):e.createImportSpecifier(e.createIdentifier(t),a(t))})));var _=e.getOriginalNode(n,e.isSourceFile);e.getOrCreateEmitNode(_).externalHelpers=!0}}}else{var g=A(n,t,r,i||o);g&&(s=e.createNamespaceImport(g))}if(s){var y=e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,s),e.createLiteral(e.externalHelpersModuleNameText));return e.addEmitFlags(y,67108864),y}}},e.getOrCreateExternalHelpersModuleNameIfNeeded=A,e.getLocalNameForExternalImport=function(n,t){var r=e.getNamespaceDeclarationNode(n);if(r&&!e.isDefaultImport(n)){var a=r.name;return e.isGeneratedIdentifier(a)?a:e.createIdentifier(e.getSourceTextOfNodeFromSourceFile(t,a)||e.idText(a))}return 253===n.kind&&n.importClause?e.getGeneratedNameForNode(n):259===n.kind&&n.moduleSpecifier?e.getGeneratedNameForNode(n):void 0},e.getExternalModuleNameLiteral=function(n,t,r,a,i){var o=e.getExternalModuleName(n);if(10===o.kind)return function(e,n,t,r){return D(t.getExternalModuleFileFromDeclaration(e),n,r)}(n,r,a,i)||function(n,t){var r=t.renamedDependencies&&t.renamedDependencies.get(n.text);return r&&e.createLiteral(r)}(o,t)||e.getSynthesizedClone(o)},e.tryGetModuleNameFromFile=D,e.getInitializerOfBindingOrAssignmentElement=function n(t){if(e.isDeclarationBindingElement(t))return t.initializer;if(e.isPropertyAssignment(t)){var r=t.initializer;return e.isAssignmentExpression(r,!0)?r.right:void 0}return e.isShorthandPropertyAssignment(t)?t.objectAssignmentInitializer:e.isAssignmentExpression(t,!0)?t.right:e.isSpreadElement(t)?n(t.expression):void 0},e.getTargetOfBindingOrAssignmentElement=k,e.getRestIndicatorOfBindingOrAssignmentElement=function(e){switch(e.kind){case 155:case 190:return e.dotDotDotToken;case 212:case 281:return e}},e.getPropertyNameOfBindingOrAssignmentElement=function(n){switch(n.kind){case 190:if(n.propertyName){var t=n.propertyName;return e.isComputedPropertyName(t)&&N(t.expression)?t.expression:t}break;case 279:if(n.name){t=n.name;return e.isComputedPropertyName(t)&&N(t.expression)?t.expression:t}break;case 281:return n.name}var r=k(n);if(r&&e.isPropertyName(r))return e.isComputedPropertyName(r)&&N(r.expression)?r.expression:r;e.Debug.fail(\"Invalid property name for binding element.\")},e.getElementsOfBindingOrAssignmentPattern=function(e){switch(e.kind){case 188:case 189:case 191:return e.elements;case 192:return e.properties}},e.convertToArrayAssignmentElement=I,e.convertToObjectAssignmentElement=M,e.convertToAssignmentPattern=O,e.convertToObjectAssignmentPattern=R,e.convertToArrayAssignmentPattern=P,e.convertToAssignmentElementTarget=w}(ts||(ts={})),function(e){var n=e.or(e.isTypeNode,e.isTypeParameterDeclaration);function t(n,t,r,a){if(void 0===n||void 0===t)return n;e.aggregateTransformFlags(n);var i,o=t(n);return o===n?n:void 0!==o?(i=e.isArray(o)?(a||s)(o):o,e.Debug.assertNode(i,r),e.aggregateTransformFlags(i),i):void 0}function r(n,t,r,a,i){if(void 0===n||void 0===t)return n;var o,s=n.length;(void 0===a||a<0)&&(a=0),(void 0===i||i>s-a)&&(i=s-a),(a>0||i<s)&&(o=e.createNodeArray([],n.hasTrailingComma&&a+i===s));for(var c=0;c<i;c++){var l=n[c+a];e.aggregateTransformFlags(l);var u=void 0!==l?t(l):void 0;if((void 0!==o||void 0===u||u!==l)&&(void 0===o&&(o=e.createNodeArray(n.slice(0,c),n.hasTrailingComma),e.setTextRange(o,n)),u))if(e.isArray(u))for(var d=0,p=u;d<p.length;d++){var m=p[d];e.Debug.assertNode(m,r),e.aggregateTransformFlags(m),o.push(m)}else e.Debug.assertNode(u,r),e.aggregateTransformFlags(u),o.push(u)}return o||n}function a(n,t,a,i,o){return a.startLexicalEnvironment(),n=r(n,t,e.isStatement,i),o&&(n=e.ensureUseStrict(n)),e.mergeLexicalEnvironment(n,a.endLexicalEnvironment())}function i(n,t,a,i){void 0===i&&(i=r),a.startLexicalEnvironment();var o=i(n,t,e.isParameterDeclaration);return a.suspendLexicalEnvironment(),o}function o(n,r,a){a.resumeLexicalEnvironment();var i=t(n,r,e.isConciseBody),o=a.endLexicalEnvironment();if(e.some(o)){var s=e.convertToFunctionBody(i),c=e.mergeLexicalEnvironment(s.statements,o);return e.updateBlock(s,c)}return i}function s(n){return e.Debug.assert(n.length<=1,\"Too many nodes written to output.\"),e.singleOrUndefined(n)}e.visitNode=t,e.visitNodes=r,e.visitLexicalEnvironment=a,e.visitParameterList=i,e.visitFunctionBody=o,e.visitEachChild=function(s,c,l,u,d){if(void 0===u&&(u=r),void 0!==s){var p=s.kind;if(p>0&&p<=151||182===p)return s;switch(p){case 75:return e.updateIdentifier(s,u(s.typeArguments,c,n));case 152:return e.updateQualifiedName(s,t(s.left,c,e.isEntityName),t(s.right,c,e.isIdentifier));case 153:return e.updateComputedPropertyName(s,t(s.expression,c,e.isExpression));case 154:return e.updateTypeParameterDeclaration(s,t(s.name,c,e.isIdentifier),t(s.constraint,c,e.isTypeNode),t(s.default,c,e.isTypeNode));case 155:return e.updateParameter(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.dotDotDotToken,d,e.isToken),t(s.name,c,e.isBindingName),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 156:return e.updateDecorator(s,t(s.expression,c,e.isExpression));case 157:return e.updatePropertySignature(s,u(s.modifiers,c,e.isToken),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 158:return e.updateProperty(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),t(s.questionToken||s.exclamationToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 159:return e.updateMethodSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken));case 160:return e.updateMethod(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 161:return e.updateConstructor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),i(s.parameters,c,l,u),o(s.body,c,l));case 162:return e.updateGetAccessor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 163:return e.updateSetAccessor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),i(s.parameters,c,l,u),o(s.body,c,l));case 164:return e.updateCallSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 165:return e.updateConstructSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 166:return e.updateIndexSignature(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 167:return e.updateTypePredicateNodeWithModifier(s,t(s.assertsModifier,c),t(s.parameterName,c),t(s.type,c,e.isTypeNode));case 168:return e.updateTypeReferenceNode(s,t(s.typeName,c,e.isEntityName),u(s.typeArguments,c,e.isTypeNode));case 169:return e.updateFunctionTypeNode(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 170:return e.updateConstructorTypeNode(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 171:return e.updateTypeQueryNode(s,t(s.exprName,c,e.isEntityName));case 172:return e.updateTypeLiteralNode(s,u(s.members,c,e.isTypeElement));case 173:return e.updateArrayTypeNode(s,t(s.elementType,c,e.isTypeNode));case 174:return e.updateTupleTypeNode(s,u(s.elementTypes,c,e.isTypeNode));case 175:return e.updateOptionalTypeNode(s,t(s.type,c,e.isTypeNode));case 176:return e.updateRestTypeNode(s,t(s.type,c,e.isTypeNode));case 177:return e.updateUnionTypeNode(s,u(s.types,c,e.isTypeNode));case 178:return e.updateIntersectionTypeNode(s,u(s.types,c,e.isTypeNode));case 179:return e.updateConditionalTypeNode(s,t(s.checkType,c,e.isTypeNode),t(s.extendsType,c,e.isTypeNode),t(s.trueType,c,e.isTypeNode),t(s.falseType,c,e.isTypeNode));case 180:return e.updateInferTypeNode(s,t(s.typeParameter,c,e.isTypeParameterDeclaration));case 187:return e.updateImportTypeNode(s,t(s.argument,c,e.isTypeNode),t(s.qualifier,c,e.isEntityName),r(s.typeArguments,c,e.isTypeNode),s.isTypeOf);case 181:return e.updateParenthesizedType(s,t(s.type,c,e.isTypeNode));case 183:return e.updateTypeOperatorNode(s,t(s.type,c,e.isTypeNode));case 184:return e.updateIndexedAccessTypeNode(s,t(s.objectType,c,e.isTypeNode),t(s.indexType,c,e.isTypeNode));case 185:return e.updateMappedTypeNode(s,t(s.readonlyToken,d,e.isToken),t(s.typeParameter,c,e.isTypeParameterDeclaration),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode));case 186:return e.updateLiteralTypeNode(s,t(s.literal,c,e.isExpression));case 188:return e.updateObjectBindingPattern(s,u(s.elements,c,e.isBindingElement));case 189:return e.updateArrayBindingPattern(s,u(s.elements,c,e.isArrayBindingElement));case 190:return e.updateBindingElement(s,t(s.dotDotDotToken,d,e.isToken),t(s.propertyName,c,e.isPropertyName),t(s.name,c,e.isBindingName),t(s.initializer,c,e.isExpression));case 191:return e.updateArrayLiteral(s,u(s.elements,c,e.isExpression));case 192:return e.updateObjectLiteral(s,u(s.properties,c,e.isObjectLiteralElementLike));case 193:return 32&s.flags?e.updatePropertyAccessChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),t(s.name,c,e.isIdentifier)):e.updatePropertyAccess(s,t(s.expression,c,e.isExpression),t(s.name,c,e.isIdentifier));case 194:return 32&s.flags?e.updateElementAccessChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),t(s.argumentExpression,c,e.isExpression)):e.updateElementAccess(s,t(s.expression,c,e.isExpression),t(s.argumentExpression,c,e.isExpression));case 195:return 32&s.flags?e.updateCallChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression)):e.updateCall(s,t(s.expression,c,e.isExpression),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression));case 196:return e.updateNew(s,t(s.expression,c,e.isExpression),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression));case 197:return e.updateTaggedTemplate(s,t(s.tag,c,e.isExpression),r(s.typeArguments,c,e.isExpression),t(s.template,c,e.isTemplateLiteral));case 198:return e.updateTypeAssertion(s,t(s.type,c,e.isTypeNode),t(s.expression,c,e.isExpression));case 199:return e.updateParen(s,t(s.expression,c,e.isExpression));case 200:return e.updateFunctionExpression(s,u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 201:return e.updateArrowFunction(s,u(s.modifiers,c,e.isModifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),t(s.equalsGreaterThanToken,c,e.isToken),o(s.body,c,l));case 202:return e.updateDelete(s,t(s.expression,c,e.isExpression));case 203:return e.updateTypeOf(s,t(s.expression,c,e.isExpression));case 204:return e.updateVoid(s,t(s.expression,c,e.isExpression));case 205:return e.updateAwait(s,t(s.expression,c,e.isExpression));case 206:return e.updatePrefix(s,t(s.operand,c,e.isExpression));case 207:return e.updatePostfix(s,t(s.operand,c,e.isExpression));case 208:return e.updateBinary(s,t(s.left,c,e.isExpression),t(s.right,c,e.isExpression),t(s.operatorToken,c,e.isToken));case 209:return e.updateConditional(s,t(s.condition,c,e.isExpression),t(s.questionToken,c,e.isToken),t(s.whenTrue,c,e.isExpression),t(s.colonToken,c,e.isToken),t(s.whenFalse,c,e.isExpression));case 210:return e.updateTemplateExpression(s,t(s.head,c,e.isTemplateHead),u(s.templateSpans,c,e.isTemplateSpan));case 211:return e.updateYield(s,t(s.asteriskToken,d,e.isToken),t(s.expression,c,e.isExpression));case 212:return e.updateSpread(s,t(s.expression,c,e.isExpression));case 213:return e.updateClassExpression(s,u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isClassElement));case 215:return e.updateExpressionWithTypeArguments(s,u(s.typeArguments,c,e.isTypeNode),t(s.expression,c,e.isExpression));case 216:return e.updateAsExpression(s,t(s.expression,c,e.isExpression),t(s.type,c,e.isTypeNode));case 217:return e.updateNonNullExpression(s,t(s.expression,c,e.isExpression));case 218:return e.updateMetaProperty(s,t(s.name,c,e.isIdentifier));case 220:return e.updateTemplateSpan(s,t(s.expression,c,e.isExpression),t(s.literal,c,e.isTemplateMiddleOrTemplateTail));case 222:return e.updateBlock(s,u(s.statements,c,e.isStatement));case 224:return e.updateVariableStatement(s,u(s.modifiers,c,e.isModifier),t(s.declarationList,c,e.isVariableDeclarationList));case 225:return e.updateExpressionStatement(s,t(s.expression,c,e.isExpression));case 226:return e.updateIf(s,t(s.expression,c,e.isExpression),t(s.thenStatement,c,e.isStatement,e.liftToBlock),t(s.elseStatement,c,e.isStatement,e.liftToBlock));case 227:return e.updateDo(s,t(s.statement,c,e.isStatement,e.liftToBlock),t(s.expression,c,e.isExpression));case 228:return e.updateWhile(s,t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 229:return e.updateFor(s,t(s.initializer,c,e.isForInitializer),t(s.condition,c,e.isExpression),t(s.incrementor,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 230:return e.updateForIn(s,t(s.initializer,c,e.isForInitializer),t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 231:return e.updateForOf(s,t(s.awaitModifier,c,e.isToken),t(s.initializer,c,e.isForInitializer),t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 232:return e.updateContinue(s,t(s.label,c,e.isIdentifier));case 233:return e.updateBreak(s,t(s.label,c,e.isIdentifier));case 234:return e.updateReturn(s,t(s.expression,c,e.isExpression));case 235:return e.updateWith(s,t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 236:return e.updateSwitch(s,t(s.expression,c,e.isExpression),t(s.caseBlock,c,e.isCaseBlock));case 237:return e.updateLabel(s,t(s.label,c,e.isIdentifier),t(s.statement,c,e.isStatement,e.liftToBlock));case 238:return e.updateThrow(s,t(s.expression,c,e.isExpression));case 239:return e.updateTry(s,t(s.tryBlock,c,e.isBlock),t(s.catchClause,c,e.isCatchClause),t(s.finallyBlock,c,e.isBlock));case 241:return e.updateVariableDeclaration(s,t(s.name,c,e.isBindingName),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 242:return e.updateVariableDeclarationList(s,u(s.declarations,c,e.isVariableDeclaration));case 243:return e.updateFunctionDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 244:return e.updateClassDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isClassElement));case 245:return e.updateInterfaceDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isTypeElement));case 246:return e.updateTypeAliasDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),t(s.type,c,e.isTypeNode));case 247:return e.updateEnumDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.members,c,e.isEnumMember));case 248:return e.updateModuleDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),t(s.body,c,e.isModuleBody));case 249:return e.updateModuleBlock(s,u(s.statements,c,e.isStatement));case 250:return e.updateCaseBlock(s,u(s.clauses,c,e.isCaseOrDefaultClause));case 251:return e.updateNamespaceExportDeclaration(s,t(s.name,c,e.isIdentifier));case 252:return e.updateImportEqualsDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),t(s.moduleReference,c,e.isModuleReference));case 253:return e.updateImportDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.importClause,c,e.isImportClause),t(s.moduleSpecifier,c,e.isExpression));case 254:return e.updateImportClause(s,t(s.name,c,e.isIdentifier),t(s.namedBindings,c,e.isNamedImportBindings));case 255:return e.updateNamespaceImport(s,t(s.name,c,e.isIdentifier));case 256:return e.updateNamedImports(s,u(s.elements,c,e.isImportSpecifier));case 257:return e.updateImportSpecifier(s,t(s.propertyName,c,e.isIdentifier),t(s.name,c,e.isIdentifier));case 258:return e.updateExportAssignment(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.expression,c,e.isExpression));case 259:return e.updateExportDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.exportClause,c,e.isNamedExports),t(s.moduleSpecifier,c,e.isExpression));case 260:return e.updateNamedExports(s,u(s.elements,c,e.isExportSpecifier));case 261:return e.updateExportSpecifier(s,t(s.propertyName,c,e.isIdentifier),t(s.name,c,e.isIdentifier));case 263:return e.updateExternalModuleReference(s,t(s.expression,c,e.isExpression));case 264:return e.updateJsxElement(s,t(s.openingElement,c,e.isJsxOpeningElement),u(s.children,c,e.isJsxChild),t(s.closingElement,c,e.isJsxClosingElement));case 265:return e.updateJsxSelfClosingElement(s,t(s.tagName,c,e.isJsxTagNameExpression),u(s.typeArguments,c,e.isTypeNode),t(s.attributes,c,e.isJsxAttributes));case 266:return e.updateJsxOpeningElement(s,t(s.tagName,c,e.isJsxTagNameExpression),u(s.typeArguments,c,e.isTypeNode),t(s.attributes,c,e.isJsxAttributes));case 267:return e.updateJsxClosingElement(s,t(s.tagName,c,e.isJsxTagNameExpression));case 268:return e.updateJsxFragment(s,t(s.openingFragment,c,e.isJsxOpeningFragment),u(s.children,c,e.isJsxChild),t(s.closingFragment,c,e.isJsxClosingFragment));case 271:return e.updateJsxAttribute(s,t(s.name,c,e.isIdentifier),t(s.initializer,c,e.isStringLiteralOrJsxExpression));case 272:return e.updateJsxAttributes(s,u(s.properties,c,e.isJsxAttributeLike));case 273:return e.updateJsxSpreadAttribute(s,t(s.expression,c,e.isExpression));case 274:return e.updateJsxExpression(s,t(s.expression,c,e.isExpression));case 275:return e.updateCaseClause(s,t(s.expression,c,e.isExpression),u(s.statements,c,e.isStatement));case 276:return e.updateDefaultClause(s,u(s.statements,c,e.isStatement));case 277:return e.updateHeritageClause(s,u(s.types,c,e.isExpressionWithTypeArguments));case 278:return e.updateCatchClause(s,t(s.variableDeclaration,c,e.isVariableDeclaration),t(s.block,c,e.isBlock));case 279:return e.updatePropertyAssignment(s,t(s.name,c,e.isPropertyName),t(s.initializer,c,e.isExpression));case 280:return e.updateShorthandPropertyAssignment(s,t(s.name,c,e.isIdentifier),t(s.objectAssignmentInitializer,c,e.isExpression));case 281:return e.updateSpreadAssignment(s,t(s.expression,c,e.isExpression));case 282:return e.updateEnumMember(s,t(s.name,c,e.isPropertyName),t(s.initializer,c,e.isExpression));case 288:return e.updateSourceFileNode(s,a(s.statements,c,l));case 319:return e.updatePartiallyEmittedExpression(s,t(s.expression,c,e.isExpression));case 320:return e.updateCommaList(s,u(s.elements,c,e.isExpression));default:return s}}}}(ts||(ts={})),function(e){function n(e,n,t){return e?n(t,e):t}function t(e,n,t){return e?n(t,e):t}function r(r,a,i,o){if(void 0===r)return a;var s=o?t:e.reduceLeft,c=o||i,l=r.kind;if(l>0&&l<=151)return a;if(l>=167&&l<=186)return a;var u=a;switch(r.kind){case 221:case 223:case 214:case 240:case 318:break;case 152:u=n(r.left,i,u),u=n(r.right,i,u);break;case 153:u=n(r.expression,i,u);break;case 155:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 156:u=n(r.expression,i,u);break;case 157:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.questionToken,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 158:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 160:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 161:u=s(r.modifiers,c,u),u=s(r.parameters,c,u),u=n(r.body,i,u);break;case 162:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 163:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.parameters,c,u),u=n(r.body,i,u);break;case 188:case 189:u=s(r.elements,c,u);break;case 190:u=n(r.propertyName,i,u),u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 191:u=s(r.elements,c,u);break;case 192:u=s(r.properties,c,u);break;case 193:u=n(r.expression,i,u),u=n(r.name,i,u);break;case 194:u=n(r.expression,i,u),u=n(r.argumentExpression,i,u);break;case 195:case 196:u=n(r.expression,i,u),u=s(r.typeArguments,c,u),u=s(r.arguments,c,u);break;case 197:u=n(r.tag,i,u),u=s(r.typeArguments,c,u),u=n(r.template,i,u);break;case 198:u=n(r.type,i,u),u=n(r.expression,i,u);break;case 200:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 201:u=s(r.modifiers,c,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 199:case 202:case 203:case 204:case 205:case 211:case 212:case 217:u=n(r.expression,i,u);break;case 206:case 207:u=n(r.operand,i,u);break;case 208:u=n(r.left,i,u),u=n(r.right,i,u);break;case 209:u=n(r.condition,i,u),u=n(r.whenTrue,i,u),u=n(r.whenFalse,i,u);break;case 210:u=n(r.head,i,u),u=s(r.templateSpans,c,u);break;case 213:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.heritageClauses,c,u),u=s(r.members,c,u);break;case 215:u=n(r.expression,i,u),u=s(r.typeArguments,c,u);break;case 216:u=n(r.expression,i,u),u=n(r.type,i,u);break;case 220:u=n(r.expression,i,u),u=n(r.literal,i,u);break;case 222:u=s(r.statements,c,u);break;case 224:u=s(r.modifiers,c,u),u=n(r.declarationList,i,u);break;case 225:u=n(r.expression,i,u);break;case 226:u=n(r.expression,i,u),u=n(r.thenStatement,i,u),u=n(r.elseStatement,i,u);break;case 227:u=n(r.statement,i,u),u=n(r.expression,i,u);break;case 228:case 235:u=n(r.expression,i,u),u=n(r.statement,i,u);break;case 229:u=n(r.initializer,i,u),u=n(r.condition,i,u),u=n(r.incrementor,i,u),u=n(r.statement,i,u);break;case 230:case 231:u=n(r.initializer,i,u),u=n(r.expression,i,u),u=n(r.statement,i,u);break;case 234:case 238:u=n(r.expression,i,u);break;case 236:u=n(r.expression,i,u),u=n(r.caseBlock,i,u);break;case 237:u=n(r.label,i,u),u=n(r.statement,i,u);break;case 239:u=n(r.tryBlock,i,u),u=n(r.catchClause,i,u),u=n(r.finallyBlock,i,u);break;case 241:u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 242:u=s(r.declarations,c,u);break;case 243:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 244:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.heritageClauses,c,u),u=s(r.members,c,u);break;case 247:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.members,c,u);break;case 248:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.body,i,u);break;case 249:u=s(r.statements,c,u);break;case 250:u=s(r.clauses,c,u);break;case 252:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.moduleReference,i,u);break;case 253:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.importClause,i,u),u=n(r.moduleSpecifier,i,u);break;case 254:u=n(r.name,i,u),u=n(r.namedBindings,i,u);break;case 255:u=n(r.name,i,u);break;case 256:case 260:u=s(r.elements,c,u);break;case 257:case 261:u=n(r.propertyName,i,u),u=n(r.name,i,u);break;case 258:u=e.reduceLeft(r.decorators,i,u),u=e.reduceLeft(r.modifiers,i,u),u=n(r.expression,i,u);break;case 259:u=e.reduceLeft(r.decorators,i,u),u=e.reduceLeft(r.modifiers,i,u),u=n(r.exportClause,i,u),u=n(r.moduleSpecifier,i,u);break;case 263:u=n(r.expression,i,u);break;case 264:u=n(r.openingElement,i,u),u=e.reduceLeft(r.children,i,u),u=n(r.closingElement,i,u);break;case 268:u=n(r.openingFragment,i,u),u=e.reduceLeft(r.children,i,u),u=n(r.closingFragment,i,u);break;case 265:case 266:u=n(r.tagName,i,u),u=s(r.typeArguments,i,u),u=n(r.attributes,i,u);break;case 272:u=s(r.properties,c,u);break;case 267:u=n(r.tagName,i,u);break;case 271:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 273:case 274:u=n(r.expression,i,u);break;case 275:u=n(r.expression,i,u);case 276:u=s(r.statements,c,u);break;case 277:u=s(r.types,c,u);break;case 278:u=n(r.variableDeclaration,i,u),u=n(r.block,i,u);break;case 279:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 280:u=n(r.name,i,u),u=n(r.objectAssignmentInitializer,i,u);break;case 281:u=n(r.expression,i,u);break;case 282:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 288:u=s(r.statements,c,u);break;case 319:u=n(r.expression,i,u);break;case 320:u=s(r.elements,c,u)}return u}function a(n){if(void 0===n)return 0;if(536870912&n.transformFlags)return n.transformFlags&~e.getTransformFlagsSubtreeExclusions(n.kind);var t=function(n){if(e.hasModifier(n,2)||e.isTypeNode(n)&&215!==n.kind)return 0;return r(n,0,i,o)}(n);return e.computeTransformFlagsForNode(n,t)}function i(e,n){return e|a(n)}function o(e,n){return e|function(e){if(void 0===e)return 0;for(var n=0,t=0,r=0,i=e;r<i.length;r++){var o=i[r];n|=a(o),t|=-536870913&o.transformFlags}return e.transformFlags=536870912|t,n}(n)}e.reduceEachChild=r,e.mergeLexicalEnvironment=function(n,t){return e.some(t)?e.isNodeArray(n)?e.setTextRange(e.createNodeArray(e.insertStatementsAfterStandardPrologue(n.slice(),t)),n):e.insertStatementsAfterStandardPrologue(n,t):n},e.liftToBlock=function(n){return e.Debug.assert(e.every(n,e.isStatement),\"Cannot lift nodes to a Block.\"),e.singleOrUndefined(n)||e.createBlock(n)},e.aggregateTransformFlags=function(e){return a(e),e}}(ts||(ts={})),function(e){e.createSourceMapGenerator=function(n,t,r,a,o){var c,l,u=o.extendedDiagnostics?e.performance.createTimer(\"Source Map\",\"beforeSourcemap\",\"afterSourcemap\"):e.performance.nullTimer,d=u.enter,p=u.exit,m=[],f=[],_=e.createMap(),g=[],y=\"\",v=0,h=0,b=0,E=0,T=0,S=0,x=!1,L=0,C=0,A=0,D=0,k=0,N=0,I=!1,M=!1,O=!1;return{getSources:function(){return m},addSource:R,setSourceContent:P,addName:w,addMapping:F,appendSourceMap:function(n,t,r,a,o,s){e.Debug.assert(n>=L,\"generatedLine cannot backtrack\"),e.Debug.assert(t>=0,\"generatedCharacter cannot be negative\"),d();for(var c,l=[],u=i(r.mappings),m=u.next();!m.done;m=u.next()){var f=m.value;if(s&&(f.generatedLine>s.line||f.generatedLine===s.line&&f.generatedCharacter>s.character))break;if(!o||!(f.generatedLine<o.line||o.line===f.generatedLine&&f.generatedCharacter<o.character)){var _=void 0,g=void 0,y=void 0,v=void 0;if(void 0!==f.sourceIndex){if(void 0===(_=l[f.sourceIndex])){var h=r.sources[f.sourceIndex],b=r.sourceRoot?e.combinePaths(r.sourceRoot,h):h,E=e.combinePaths(e.getDirectoryPath(a),b);l[f.sourceIndex]=_=R(E),r.sourcesContent&&\"string\"==typeof r.sourcesContent[f.sourceIndex]&&P(_,r.sourcesContent[f.sourceIndex])}g=f.sourceLine,y=f.sourceCharacter,r.names&&void 0!==f.nameIndex&&(c||(c=[]),void 0===(v=c[f.nameIndex])&&(c[f.nameIndex]=v=w(r.names[f.nameIndex])))}var T=f.generatedLine-(o?o.line:0),S=T+n,x=o&&o.line===f.generatedLine?f.generatedCharacter-o.character:f.generatedCharacter;F(S,0===T?x+t:x,_,g,y,v)}}p()},toJSON:B,toString:function(){return JSON.stringify(B())}};function R(t){d();var r=e.getRelativePathToDirectoryOrUrl(a,t,n.getCurrentDirectory(),n.getCanonicalFileName,!0),i=_.get(r);return void 0===i&&(i=f.length,f.push(r),m.push(t),_.set(r,i)),p(),i}function P(e,n){if(d(),null!==n){for(c||(c=[]);c.length<e;)c.push(null);c[e]=n}p()}function w(n){d(),l||(l=e.createMap());var t=l.get(n);return void 0===t&&(t=g.length,g.push(n),l.set(n,t)),p(),t}function F(n,t,r,a,i,o){e.Debug.assert(n>=L,\"generatedLine cannot backtrack\"),e.Debug.assert(t>=0,\"generatedCharacter cannot be negative\"),e.Debug.assert(void 0===r||r>=0,\"sourceIndex cannot be negative\"),e.Debug.assert(void 0===a||a>=0,\"sourceLine cannot be negative\"),e.Debug.assert(void 0===i||i>=0,\"sourceCharacter cannot be negative\"),d(),(function(e,n){return!I||L!==e||C!==n}(n,t)||function(e,n,t){return void 0!==e&&void 0!==n&&void 0!==t&&A===e&&(D>n||D===n&&k>t)}(r,a,i))&&(G(),L=n,C=t,M=!1,O=!1,I=!0),void 0!==r&&void 0!==a&&void 0!==i&&(A=r,D=a,k=i,M=!0,void 0!==o&&(N=o,O=!0)),p()}function G(){if(I&&(!x||v!==L||h!==C||b!==A||E!==D||T!==k||S!==N)){if(d(),v<L)do{y+=\";\",v++,h=0}while(v<L);else e.Debug.assertEqual(v,L,\"generatedLine cannot backtrack\"),x&&(y+=\",\");y+=s(C-h),h=C,M&&(y+=s(A-b),b=A,y+=s(D-E),E=D,y+=s(k-T),T=k,O&&(y+=s(N-S),S=N)),x=!0,p()}}function B(){return G(),{version:3,file:t,sourceRoot:r,sources:f,names:g,mappings:y,sourcesContent:c}}};var n=/^\\/\\/[@#] source[M]appingURL=(.+)\\s*$/,t=/^\\s*(\\/\\/[@#] .*)?$/;function r(e){return\"string\"==typeof e||null===e}function a(n){return null!==n&&\"object\"==typeof n&&3===n.version&&\"string\"==typeof n.file&&\"string\"==typeof n.mappings&&e.isArray(n.sources)&&e.every(n.sources,e.isString)&&(void 0===n.sourceRoot||null===n.sourceRoot||\"string\"==typeof n.sourceRoot)&&(void 0===n.sourcesContent||null===n.sourcesContent||e.isArray(n.sourcesContent)&&e.every(n.sourcesContent,r))&&(void 0===n.names||null===n.names||e.isArray(n.names)&&e.every(n.names,e.isString))}function i(e){var n,t=!1,r=0,a=0,i=0,o=0,s=0,c=0,l=0;return{get pos(){return r},get error(){return n},get state(){return u(!0,!0)},next:function(){for(;!t&&r<e.length;){var n=e.charCodeAt(r);if(59!==n){if(44!==n){var p=!1,y=!1;if(i+=g(),f())return d();if(i<0)return m(\"Invalid generatedCharacter found\");if(!_()){if(p=!0,o+=g(),f())return d();if(o<0)return m(\"Invalid sourceIndex found\");if(_())return m(\"Unsupported Format: No entries after sourceIndex\");if(s+=g(),f())return d();if(s<0)return m(\"Invalid sourceLine found\");if(_())return m(\"Unsupported Format: No entries after sourceLine\");if(c+=g(),f())return d();if(c<0)return m(\"Invalid sourceCharacter found\");if(!_()){if(y=!0,l+=g(),f())return d();if(l<0)return m(\"Invalid nameIndex found\");if(!_())return m(\"Unsupported Error Format: Entries after nameIndex\")}}return{value:u(p,y),done:t}}r++}else a++,i=0,r++}return d()}};function u(e,n){return{generatedLine:a,generatedCharacter:i,sourceIndex:e?o:void 0,sourceLine:e?s:void 0,sourceCharacter:e?c:void 0,nameIndex:n?l:void 0}}function d(){return t=!0,{value:void 0,done:!0}}function p(e){void 0===n&&(n=e)}function m(e){return p(e),d()}function f(){return void 0!==n}function _(){return r===e.length||44===e.charCodeAt(r)||59===e.charCodeAt(r)}function g(){for(var n,t=!0,a=0,i=0;t;r++){if(r>=e.length)return p(\"Error in decoding base64VLQFormatDecode, past the mapping string\"),-1;var o=(n=e.charCodeAt(r))>=65&&n<=90?n-65:n>=97&&n<=122?n-97+26:n>=48&&n<=57?n-48+52:43===n?62:47===n?63:-1;if(-1===o)return p(\"Invalid character in VLQ\"),-1;t=0!=(32&o),i|=(31&o)<<a,a+=5}return 0==(1&i)?i>>=1:i=-(i>>=1),i}}function o(e){return void 0!==e.sourceIndex&&void 0!==e.sourceLine&&void 0!==e.sourceCharacter}function s(n){n<0?n=1+(-n<<1):n<<=1;var t,r=\"\";do{var a=31&n;(n>>=5)>0&&(a|=32),r+=String.fromCharCode((t=a)>=0&&t<26?65+t:t>=26&&t<52?97+t-26:t>=52&&t<62?48+t-52:62===t?43:63===t?47:e.Debug.fail(t+\": not a base64 value\"))}while(n>0);return r}function c(e){return void 0!==e.sourceIndex&&void 0!==e.sourcePosition}function l(e,n){return e.generatedPosition===n.generatedPosition&&e.sourceIndex===n.sourceIndex&&e.sourcePosition===n.sourcePosition}function u(n,t){return e.Debug.assert(n.sourceIndex===t.sourceIndex),e.compareValues(n.sourcePosition,t.sourcePosition)}function d(n,t){return e.compareValues(n.generatedPosition,t.generatedPosition)}function p(e){return e.sourcePosition}function m(e){return e.generatedPosition}e.getLineInfo=function(e,n){return{getLineCount:function(){return n.length},getLineText:function(t){return e.substring(n[t],n[t+1])}}},e.tryGetSourceMappingURL=function(e){for(var r=e.getLineCount()-1;r>=0;r--){var a=e.getLineText(r),i=n.exec(a);if(i)return i[1];if(!a.match(t))break}},e.isRawSourceMap=a,e.tryParseRawSourceMap=function(e){try{var n=JSON.parse(e);if(a(n))return n}catch(e){}},e.decodeMappings=i,e.sameMapping=function(e,n){return e===n||e.generatedLine===n.generatedLine&&e.generatedCharacter===n.generatedCharacter&&e.sourceIndex===n.sourceIndex&&e.sourceLine===n.sourceLine&&e.sourceCharacter===n.sourceCharacter&&e.nameIndex===n.nameIndex},e.isSourceMapping=o,e.createDocumentPositionMapper=function(n,t,r){var a,s,f,_=e.getDirectoryPath(r),g=t.sourceRoot?e.getNormalizedAbsolutePath(t.sourceRoot,_):_,y=e.getNormalizedAbsolutePath(t.file,_),v=n.getSourceFileLike(y),h=t.sources.map((function(n){return e.getNormalizedAbsolutePath(n,g)})),b=e.createMapFromEntries(h.map((function(e,t){return[n.getCanonicalFileName(e),t]})));return{getSourcePosition:function(n){var t=x();if(!e.some(t))return n;var r=e.binarySearchKey(t,n.pos,m,e.compareValues);r<0&&(r=~r);var a=t[r];if(void 0===a||!c(a))return n;return{fileName:h[a.sourceIndex],pos:a.sourcePosition}},getGeneratedPosition:function(t){var r=b.get(n.getCanonicalFileName(t.fileName));if(void 0===r)return t;var a=S(r);if(!e.some(a))return t;var i=e.binarySearchKey(a,t.pos,p,e.compareValues);i<0&&(i=~i);var o=a[i];if(void 0===o||o.sourceIndex!==r)return t;return{fileName:y,pos:o.generatedPosition}}};function E(r){var a,i,s=void 0!==v?e.getPositionOfLineAndCharacter(v,r.generatedLine,r.generatedCharacter,!0):-1;if(o(r)){var c=n.getSourceFileLike(h[r.sourceIndex]);a=t.sources[r.sourceIndex],i=void 0!==c?e.getPositionOfLineAndCharacter(c,r.sourceLine,r.sourceCharacter,!0):-1}return{generatedPosition:s,source:a,sourceIndex:r.sourceIndex,sourcePosition:i,nameIndex:r.nameIndex}}function T(){if(void 0===a){var r=i(t.mappings),o=e.arrayFrom(r,E);void 0!==r.error?(n.log&&n.log(\"Encountered error while decoding sourcemap: \"+r.error),a=e.emptyArray):a=o}return a}function S(n){if(void 0===f){for(var t=[],r=0,a=T();r<a.length;r++){var i=a[r];if(c(i)){var o=t[i.sourceIndex];o||(t[i.sourceIndex]=o=[]),o.push(i)}}f=t.map((function(n){return e.sortAndDeduplicate(n,u,l)}))}return f[n]}function x(){if(void 0===s){for(var n=[],t=0,r=T();t<r.length;t++){var a=r[t];n.push(a)}s=e.sortAndDeduplicate(n,d,l)}return s}},e.identitySourceMapConsumer={getSourcePosition:e.identity,getGeneratedPosition:e.identity}}(ts||(ts={})),function(e){function n(n){return(n=e.getOriginalNode(n))?e.getNodeId(n):0}function t(e){return void 0!==e.propertyName&&\"default\"===e.propertyName.escapedText}function r(n){if(e.getNamespaceDeclarationNode(n))return!0;var r=n.importClause&&n.importClause.namedBindings;if(!r)return!1;if(!e.isNamedImports(r))return!1;for(var a=0,i=0,o=r.elements;i<o.length;i++){t(o[i])&&a++}return a>0&&a!==r.elements.length||!!(r.elements.length-a)&&e.isDefaultImport(n)}function a(n){return!r(n)&&(e.isDefaultImport(n)||!!n.importClause&&e.isNamedImports(n.importClause.namedBindings)&&function(n){return!!n&&(!!e.isNamedImports(n)&&e.some(n.elements,t))}(n.importClause.namedBindings))}function i(n,t,r){if(e.isBindingPattern(n.name))for(var a=0,o=n.name.elements;a<o.length;a++){var s=o[a];e.isOmittedExpression(s)||(r=i(s,t,r))}else if(!e.isGeneratedIdentifier(n.name)){var c=e.idText(n.name);t.get(c)||(t.set(c,!0),r=e.append(r,n.name))}return r}function o(e,n,t){var r=e[n];return r?r.push(t):e[n]=r=[t],r}function s(n){return e.isStringLiteralLike(n)||8===n.kind||e.isKeyword(n.kind)||e.isIdentifier(n)}e.getOriginalNodeId=n,e.chainBundle=function(n){return function(t){return 288===t.kind?n(t):function(t){return e.createBundle(e.map(t.sourceFiles,n),t.prepends)}(t)}},e.getImportNeedsImportStarHelper=r,e.getImportNeedsImportDefaultHelper=a,e.collectExternalModuleInfo=function(t,s,c){for(var l,u,d=[],p=e.createMultiMap(),m=[],f=e.createMap(),_=!1,g=!1,y=!1,v=!1,h=0,b=t.statements;h<b.length;h++){var E=b[h];switch(E.kind){case 253:d.push(E),!y&&r(E)&&(y=!0),!v&&a(E)&&(v=!0);break;case 252:263===E.moduleReference.kind&&d.push(E);break;case 259:if(E.moduleSpecifier)E.exportClause?d.push(E):(d.push(E),g=!0);else for(var T=0,S=E.exportClause.elements;T<S.length;T++){var x=S[T];if(!f.get(e.idText(x.name))){var L=x.propertyName||x.name;p.add(e.idText(L),x),(D=s.getReferencedImportDeclaration(L)||s.getReferencedValueDeclaration(L))&&o(m,n(D),x.name),f.set(e.idText(x.name),!0),l=e.append(l,x.name)}}break;case 258:E.isExportEquals&&!u&&(u=E);break;case 224:if(e.hasModifier(E,1))for(var C=0,A=E.declarationList.declarations;C<A.length;C++){var D;l=i(D=A[C],f,l)}break;case 243:if(e.hasModifier(E,1))if(e.hasModifier(E,512))_||(o(m,n(E),e.getDeclarationName(E)),_=!0);else{L=E.name;f.get(e.idText(L))||(o(m,n(E),L),f.set(e.idText(L),!0),l=e.append(l,L))}break;case 244:if(e.hasModifier(E,1))if(e.hasModifier(E,512))_||(o(m,n(E),e.getDeclarationName(E)),_=!0);else(L=E.name)&&!f.get(e.idText(L))&&(o(m,n(E),L),f.set(e.idText(L),!0),l=e.append(l,L))}}var k=e.createExternalHelpersImportDeclarationIfNeeded(t,c,g,y,v);return k&&d.unshift(k),{externalImports:d,exportSpecifiers:p,exportEquals:u,hasExportStarsToExportValues:g,exportedBindings:m,exportedNames:l,externalHelpersImportDeclaration:k}},e.isSimpleCopiableExpression=s,e.isSimpleInlineableExpression=function(n){return!e.isIdentifier(n)&&s(n)||e.isWellKnownSymbolSyntactically(n)},e.addPrologueDirectivesAndInitialSuperCall=function(n,t,r){if(n.body){var a=n.body.statements,i=e.addPrologue(t,a,!1,r);if(i===a.length)return i;var o=a[i];return 225===o.kind&&e.isSuperCall(o.expression)?(t.push(e.visitNode(o,r,e.isStatement)),i+1):i}return 0},e.helperString=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return function(t){for(var r=\"\",a=0;a<n.length;a++)r+=e[a],r+=t(n[a]);return r+=e[e.length-1]}},e.getProperties=function(n,t,r){return e.filter(n.members,(function(n){return function(n,t,r){return e.isPropertyDeclaration(n)&&(!!n.initializer||!t)&&e.hasStaticModifier(n)===r}(n,t,r)}))},e.isInitializedProperty=function(n,t){return e.isPropertyDeclaration(n)&&(!!n.initializer||!t)}}(ts||(ts={})),function(e){function n(t,r){var a=e.getTargetOfBindingOrAssignmentElement(t);return e.isBindingOrAssignmentPattern(a)?function(t,r){for(var a=e.getElementsOfBindingOrAssignmentPattern(t),i=0,o=a;i<o.length;i++){if(n(o[i],r))return!0}return!1}(a,r):!!e.isIdentifier(a)&&a.escapedText===r}function t(n,i,o,s,c){if(!c){var l=e.visitNode(e.getInitializerOfBindingOrAssignmentElement(i),n.visitor,e.isExpression);l?o=o?function(n,t,r,i){return t=a(n,t,!0,i),e.createConditional(e.createTypeCheck(t,\"undefined\"),r,t)}(n,o,l,s):l:o||(o=e.createVoidZero())}var u=e.getTargetOfBindingOrAssignmentElement(i);e.isObjectBindingOrAssignmentPattern(u)?function(n,i,o,s,c){var l,u,p=e.getElementsOfBindingOrAssignmentPattern(o),m=p.length;if(1!==m){var f=!e.isDeclarationBindingElement(i)||0!==m;s=a(n,s,f,c)}for(var _=0;_<m;_++){var g=p[_];if(e.getRestIndicatorOfBindingOrAssignmentElement(g)){if(_===m-1){l&&(n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o),l=void 0);v=d(n.context,s,p,u,o);t(n,g,v,g)}}else{var y=e.getPropertyNameOfBindingOrAssignmentElement(g);if(!(n.level>=1)||12288&g.transformFlags||12288&e.getTargetOfBindingOrAssignmentElement(g).transformFlags||e.isComputedPropertyName(y)){l&&(n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o),l=void 0);var v=r(n,s,y);e.isComputedPropertyName(y)&&(u=e.append(u,v.argumentExpression)),t(n,g,v,g)}else l=e.append(l,g)}}l&&n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o)}(n,i,u,o,s):e.isArrayBindingOrAssignmentPattern(u)?function(n,r,i,o,s){var c,l,u=e.getElementsOfBindingOrAssignmentPattern(i),d=u.length;if(n.level<1&&n.downlevelIteration)o=a(n,e.createReadHelper(n.context,o,d>0&&e.getRestIndicatorOfBindingOrAssignmentElement(u[d-1])?void 0:d,s),!1,s);else if(1!==d&&(n.level<1||0===d)||e.every(u,e.isOmittedExpression)){var p=!e.isDeclarationBindingElement(r)||0!==d;o=a(n,o,p,s)}for(var m=0;m<d;m++){var f=u[m];if(n.level>=1)if(8192&f.transformFlags){var _=e.createTempVariable(void 0);n.hoistTempVariables&&n.context.hoistVariableDeclaration(_),l=e.append(l,[_,f]),c=e.append(c,n.createArrayBindingOrAssignmentElement(_))}else c=e.append(c,f);else{if(e.isOmittedExpression(f))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(f)){if(m===d-1){g=e.createArraySlice(o,m);t(n,f,g,f)}}else{var g=e.createElementAccess(o,m);t(n,f,g,f)}}}c&&n.emitBindingOrAssignment(n.createArrayBindingOrAssignmentPattern(c),o,s,i);if(l)for(var y=0,v=l;y<v.length;y++){var h=v[y],b=h[0];f=h[1];t(n,f,b,f)}}(n,i,u,o,s):n.emitBindingOrAssignment(u,o,s,i)}function r(n,t,r){if(e.isComputedPropertyName(r)){var i=a(n,e.visitNode(r.expression,n.visitor),!1,r);return e.createElementAccess(t,i)}if(e.isStringOrNumericLiteralLike(r))return(i=e.getSynthesizedClone(r)).text=i.text,e.createElementAccess(t,i);var o=e.createIdentifier(e.idText(r));return e.createPropertyAccess(t,o)}function a(n,t,r,a){if(e.isIdentifier(t)&&r)return t;var i=e.createTempVariable(void 0);return n.hoistTempVariables?(n.context.hoistVariableDeclaration(i),n.emitExpression(e.setTextRange(e.createAssignment(i,t),a))):n.emitBindingOrAssignment(i,t,a,void 0),i}function i(n){return e.Debug.assertEachNode(n,e.isArrayBindingElement),e.createArrayBindingPattern(n)}function o(n){return e.createArrayLiteral(e.map(n,e.convertToArrayAssignmentElement))}function s(n){return e.Debug.assertEachNode(n,e.isBindingElement),e.createObjectBindingPattern(n)}function c(n){return e.createObjectLiteral(e.map(n,e.convertToObjectAssignmentElement))}function l(n){return e.createBindingElement(void 0,void 0,n)}function u(e){return e}function d(n,t,r,a,i){n.requestEmitHelper(e.restHelper);for(var o=[],s=0,c=0;c<r.length-1;c++){var l=e.getPropertyNameOfBindingOrAssignmentElement(r[c]);if(l)if(e.isComputedPropertyName(l)){var u=a[s];s++,o.push(e.createConditional(e.createTypeCheck(u,\"symbol\"),u,e.createAdd(u,e.createLiteral(\"\"))))}else o.push(e.createLiteral(l))}return e.createCall(e.getUnscopedHelperName(\"__rest\"),void 0,[t,e.setTextRange(e.createArrayLiteral(o),i)])}!function(e){e[e.All=0]=\"All\",e[e.ObjectRest=1]=\"ObjectRest\"}(e.FlattenLevel||(e.FlattenLevel={})),e.flattenDestructuringAssignment=function(r,i,s,l,d,p){var m,f,_=r;if(e.isDestructuringAssignment(r))for(m=r.right;e.isEmptyArrayLiteral(r.left)||e.isEmptyObjectLiteral(r.left);){if(!e.isDestructuringAssignment(m))return e.visitNode(m,i,e.isExpression);_=r=m,m=r.right}var g={context:s,level:l,downlevelIteration:!!s.getCompilerOptions().downlevelIteration,hoistTempVariables:!0,emitExpression:y,emitBindingOrAssignment:function(n,t,r,a){e.Debug.assertNode(n,p?e.isIdentifier:e.isExpression);var o=p?p(n,t,r):e.setTextRange(e.createAssignment(e.visitNode(n,i,e.isExpression),t),r);o.original=a,y(o)},createArrayBindingOrAssignmentPattern:o,createObjectBindingOrAssignmentPattern:c,createArrayBindingOrAssignmentElement:u,visitor:i};if(m&&(m=e.visitNode(m,i,e.isExpression),e.isIdentifier(m)&&n(r,m.escapedText)?m=a(g,m,!1,_):d?m=a(g,m,!0,_):e.nodeIsSynthesized(r)&&(_=m)),t(g,r,m,_,e.isDestructuringAssignment(r)),m&&d){if(!e.some(f))return m;f.push(m)}return e.aggregateTransformFlags(e.inlineExpressions(f))||e.createOmittedExpression();function y(n){e.setEmitFlags(n,64),e.aggregateTransformFlags(n),f=e.append(f,n)}},e.flattenDestructuringBinding=function(r,o,c,u,d,p,m){var f;void 0===p&&(p=!1);var _=[],g=[],y={context:c,level:u,downlevelIteration:!!c.getCompilerOptions().downlevelIteration,hoistTempVariables:p,emitExpression:function(n){f=e.append(f,n)},emitBindingOrAssignment:N,createArrayBindingOrAssignmentPattern:i,createObjectBindingOrAssignmentPattern:s,createArrayBindingOrAssignmentElement:l,visitor:o};if(e.isVariableDeclaration(r)){var v=e.getInitializerOfBindingOrAssignmentElement(r);v&&e.isIdentifier(v)&&n(r,v.escapedText)&&(v=a(y,v,!1,v),r=e.updateVariableDeclaration(r,r.name,r.type,v))}if(t(y,r,d,r,m),f){var h=e.createTempVariable(void 0);if(p){var b=e.inlineExpressions(f);f=void 0,N(h,b,void 0,void 0)}else{c.hoistVariableDeclaration(h);var E=e.last(_);E.pendingExpressions=e.append(E.pendingExpressions,e.createAssignment(h,E.value)),e.addRange(E.pendingExpressions,f),E.value=h}}for(var T=0,S=_;T<S.length;T++){var x=S[T],L=x.pendingExpressions,C=x.name,A=(b=x.value,x.location),D=x.original,k=e.createVariableDeclaration(C,void 0,L?e.inlineExpressions(e.append(L,b)):b);k.original=D,e.setTextRange(k,A),e.isIdentifier(C)&&e.setEmitFlags(k,64),e.aggregateTransformFlags(k),g.push(k)}return g;function N(n,t,r,a){e.Debug.assertNode(n,e.isBindingName),f&&(t=e.inlineExpressions(e.append(f,t)),f=void 0),_.push({pendingExpressions:f,name:n,value:t,location:r,original:a})}},e.restHelper={name:\"typescript:rest\",importName:\"__rest\",scoped:!1,text:'\\n            var __rest = (this && this.__rest) || function (s, e) {\\n                var t = {};\\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\n                    t[p] = s[p];\\n                if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\\n                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\n                        if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\n                            t[p[i]] = s[p[i]];\\n                    }\\n                return t;\\n            };'}}(ts||(ts={})),function(e){var n,t;function r(n,t,r,a,i,o){var s=[];return s.push(e.createArrayLiteral(t,!0)),s.push(r),a&&(s.push(a),i&&s.push(i)),n.requestEmitHelper(e.decorateHelper),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__decorate\"),void 0,s),o)}function a(n,t,r){return n.requestEmitHelper(e.metadataHelper),e.createCall(e.getUnscopedHelperName(\"__metadata\"),void 0,[e.createLiteral(t),r])}function i(n,t,r,a){return n.requestEmitHelper(e.paramHelper),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__param\"),void 0,[e.createLiteral(r),t]),a)}!function(e){e[e.ClassAliases=1]=\"ClassAliases\",e[e.NamespaceExports=2]=\"NamespaceExports\",e[e.NonQualifiedEnumMembers=8]=\"NonQualifiedEnumMembers\"}(n||(n={})),function(e){e[e.None=0]=\"None\",e[e.HasStaticInitializedProperties=1]=\"HasStaticInitializedProperties\",e[e.HasConstructorDecorators=2]=\"HasConstructorDecorators\",e[e.HasMemberDecorators=4]=\"HasMemberDecorators\",e[e.IsExportOfNamespace=8]=\"IsExportOfNamespace\",e[e.IsNamedExternalExport=16]=\"IsNamedExternalExport\",e[e.IsDefaultExternalExport=32]=\"IsDefaultExternalExport\",e[e.IsDerivedClass=64]=\"IsDerivedClass\",e[e.UseImmediatelyInvokedFunctionExpression=128]=\"UseImmediatelyInvokedFunctionExpression\",e[e.HasAnyDecorators=6]=\"HasAnyDecorators\",e[e.NeedsName=5]=\"NeedsName\",e[e.MayNeedImmediatelyInvokedFunctionExpression=7]=\"MayNeedImmediatelyInvokedFunctionExpression\",e[e.IsExported=56]=\"IsExported\"}(t||(t={})),e.transformTypeScript=function(n){var t,o,s,c,l,u,d,p,m,f,_=n.startLexicalEnvironment,g=n.resumeLexicalEnvironment,y=n.endLexicalEnvironment,v=n.hoistVariableDeclaration,h=n.getEmitResolver(),b=n.getCompilerOptions(),E=e.getStrictOptionValue(b,\"strictNullChecks\"),T=e.getEmitScriptTarget(b),S=e.getEmitModuleKind(b),x=n.onEmitNode,L=n.onSubstituteNode;return n.onEmitNode=function(n,r,a){var i=f,o=t;e.isSourceFile(r)&&(t=r);2&p&&function(n){return 248===e.getOriginalNode(n).kind}(r)&&(f|=2);8&p&&function(n){return 247===e.getOriginalNode(n).kind}(r)&&(f|=8);x(n,r,a),f=i,t=o},n.onSubstituteNode=function(n,t){if(t=L(n,t),1===n)return function(n){switch(n.kind){case 75:return function(n){return function(n){if(1&p&&33554432&h.getNodeCheckFlags(n)){var t=h.getReferencedValueDeclaration(n);if(t){var r=m[t.id];if(r){var a=e.getSynthesizedClone(r);return e.setSourceMapRange(a,n),e.setCommentRange(a,n),a}}}return}(n)||Be(n)||n}(n);case 193:case 194:return function(e){return Ve(e)}(n)}return n}(t);if(e.isShorthandPropertyAssignment(t))return function(n){if(2&p){var t=n.name,r=Be(t);if(r){if(n.objectAssignmentInitializer){var a=e.createAssignment(r,n.objectAssignmentInitializer);return e.setTextRange(e.createPropertyAssignment(t,a),n)}return e.setTextRange(e.createPropertyAssignment(t,r),n)}}return n}(t);return t},n.enableSubstitution(193),n.enableSubstitution(194),function(n){if(289===n.kind)return function(n){return e.createBundle(n.sourceFiles.map(C),e.mapDefined(n.prepends,(function(n){return 291===n.kind?e.createUnparsedSourceFile(n,\"js\"):n})))}(n);return C(n)};function C(r){if(r.isDeclarationFile)return r;t=r;var a=A(r,G);return e.addEmitHelpers(a,n.readEmitHelpers()),t=void 0,a}function A(n,t){var r=c,a=l,i=u,o=d;!function(n){switch(n.kind){case 288:case 250:case 249:case 222:c=n,l=void 0,u=void 0;break;case 244:case 243:if(e.hasModifier(n,2))break;n.name?be(n):e.Debug.assert(244===n.kind||e.hasModifier(n,512)),e.isClassDeclaration(n)&&(l=n)}}(n);var s=t(n);return c!==r&&(u=i),c=r,l=a,d=o,s}function D(e){return A(e,k)}function k(e){return 1&e.transformFlags?F(e):e}function N(e){return A(e,I)}function I(t){switch(t.kind){case 253:case 252:case 258:case 259:return function(t){if(e.getParseTreeNode(t)!==t)return 1&t.transformFlags?e.visitEachChild(t,D,n):t;switch(t.kind){case 253:return function(n){if(!n.importClause)return n;var t=e.visitNode(n.importClause,xe,e.isImportClause);return t?e.updateImportDeclaration(n,void 0,void 0,t,n.moduleSpecifier):void 0}(t);case 252:return ke(t);case 258:return function(t){return h.isValueAliasDeclaration(t)?e.visitEachChild(t,D,n):void 0}(t);case 259:return function(n){if(!n.exportClause)return b.isolatedModules||h.moduleExportsSomeValue(n.moduleSpecifier)?n:void 0;if(!h.isValueAliasDeclaration(n))return;var t=e.visitNode(n.exportClause,Ae,e.isNamedExports);return t?e.updateExportDeclaration(n,void 0,void 0,t,n.moduleSpecifier):void 0}(t);default:e.Debug.fail(\"Unhandled ellided statement\")}}(t);default:return k(t)}}function M(e){return A(e,O)}function O(n){if(259!==n.kind&&253!==n.kind&&254!==n.kind&&(252!==n.kind||263!==n.moduleReference.kind))return 1&n.transformFlags||e.hasModifier(n,1)?F(n):n}function R(e){return A(e,P)}function P(n){switch(n.kind){case 161:return fe(n);case 158:return me(n);case 166:case 162:case 163:case 160:return k(n);case 221:return n;default:return e.Debug.failBadSyntaxKind(n)}}function w(n){if(!(2270&e.modifierToFlag(n.kind)||o&&88===n.kind))return n}function F(a){if(e.isStatement(a)&&e.hasModifier(a,2))return e.createNotEmittedStatement(a);switch(a.kind){case 88:case 83:return o?void 0:a;case 118:case 116:case 117:case 121:case 80:case 129:case 137:case 173:case 174:case 175:case 176:case 172:case 167:case 154:case 124:case 147:case 127:case 142:case 139:case 136:case 109:case 143:case 170:case 169:case 171:case 168:case 177:case 178:case 179:case 181:case 182:case 183:case 184:case 185:case 186:case 166:case 156:case 246:return;case 158:return me(a);case 251:return;case 161:return fe(a);case 245:return e.createNotEmittedStatement(a);case 244:return function(a){if(!(U(a)||o&&e.hasModifier(a,1)))return e.visitEachChild(a,D,n);var i=e.getProperties(a,!0,!0),s=function(n,t){var r=0;e.some(t)&&(r|=1);var a=e.getEffectiveBaseTypeNode(n);a&&99!==e.skipOuterExpressions(a.expression).kind&&(r|=64);(function(n){if(n.decorators&&n.decorators.length>0)return!0;var t=e.getFirstConstructorWithBody(n);if(t)return e.forEach(t.parameters,B);return!1})(n)&&(r|=2);e.childIsDecorated(n)&&(r|=4);Ne(n)?r|=8:!function(n){return Ie(n)&&e.hasModifier(n,512)}(n)?Me(n)&&(r|=16):r|=32;T<=1&&7&r&&(r|=128);return r}(a,i);128&s&&n.startLexicalEnvironment();var c=a.name||(5&s?e.getGeneratedNameForNode(a):void 0),l=2&s?function(t,r){var a=e.moveRangePastDecorators(t),i=function(t){if(16777216&h.getNodeCheckFlags(t)){0==(1&p)&&(p|=1,n.enableSubstitution(75),m=[]);var r=e.createUniqueName(t.name&&!e.isGeneratedIdentifier(t.name)?e.idText(t.name):\"default\");return m[e.getOriginalNodeId(t)]=r,v(r),r}}(t),o=e.getLocalName(t,!1,!0),s=e.visitNodes(t.heritageClauses,D,e.isHeritageClause),c=j(t),l=e.createClassExpression(void 0,r,void 0,s,c);e.aggregateTransformFlags(l),e.setOriginalNode(l,t),e.setTextRange(l,a);var u=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(o,void 0,i?e.createAssignment(i,l):l)],1));return e.setOriginalNode(u,t),e.setTextRange(u,a),e.setCommentRange(u,t),u}(a,c):function(n,t,r){var a=128&r?void 0:e.visitNodes(n.modifiers,w,e.isModifier),i=e.createClassDeclaration(void 0,a,t,void 0,e.visitNodes(n.heritageClauses,D,e.isHeritageClause),j(n)),o=e.getEmitFlags(n);1&r&&(o|=32);return e.aggregateTransformFlags(i),e.setTextRange(i,n),e.setOriginalNode(i,n),e.setEmitFlags(i,o),i}(a,c,s),u=[l];if(J(u,a,!1),J(u,a,!0),function(t,a){var i=function(t){var a=function(n){var t=n.decorators,r=W(e.getFirstConstructorWithBody(n));if(!t&&!r)return;return{decorators:t,parameters:r}}(t),i=q(t,t,a);if(!i)return;var o=m&&m[e.getOriginalNodeId(t)],s=e.getLocalName(t,!1,!0),c=r(n,i,s),l=e.createAssignment(s,o?e.createAssignment(o,c):c);return e.setEmitFlags(l,1536),e.setSourceMapRange(l,e.moveRangePastDecorators(t)),l}(a);i&&t.push(e.setOriginalNode(e.createExpressionStatement(i),a))}(u,a),128&s){var d=e.createTokenRange(e.skipTrivia(t.text,a.members.end),19),f=e.getInternalName(a),_=e.createPartiallyEmittedExpression(f);_.end=d.end,e.setEmitFlags(_,1536);var g=e.createReturn(_);g.pos=d.pos,e.setEmitFlags(g,1920),u.push(g),e.insertStatementsAfterStandardPrologue(u,n.endLexicalEnvironment());var y=e.createImmediatelyInvokedArrowFunction(u);e.setEmitFlags(y,33554432);var b=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getLocalName(a,!1,!1),void 0,y)]));e.setOriginalNode(b,a),e.setCommentRange(b,a),e.setSourceMapRange(b,e.moveRangePastDecorators(a)),e.startOnNewLine(b),u=[b]}8&s?Re(u,a):(128&s||2&s)&&(32&s?u.push(e.createExportDefault(e.getLocalName(a,!1,!0))):16&s&&u.push(e.createExternalModuleExport(e.getLocalName(a,!1,!0))));u.length>1&&(u.push(e.createEndOfDeclarationMarker(a)),e.setEmitFlags(l,4194304|e.getEmitFlags(l)));return e.singleOrMany(u)}(a);case 213:return function(t){if(!U(t))return e.visitEachChild(t,D,n);var r=e.createClassExpression(void 0,t.name,void 0,e.visitNodes(t.heritageClauses,D,e.isHeritageClause),j(t));return e.aggregateTransformFlags(r),e.setOriginalNode(r,t),e.setTextRange(r,t),r}(a);case 277:return function(t){if(112===t.token)return;return e.visitEachChild(t,D,n)}(a);case 215:return function(n){return e.updateExpressionWithTypeArguments(n,void 0,e.visitNode(n.expression,D,e.isLeftHandSideExpression))}(a);case 160:return function(t){if(!pe(t))return;var r=e.updateMethod(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,de(t),void 0,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 162:return function(t){if(!ge(t))return;var r=e.updateGetAccessor(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),de(t),e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 163:return function(t){if(!ge(t))return;var r=e.updateSetAccessor(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),de(t),e.visitParameterList(t.parameters,D,n),e.visitFunctionBody(t.body,D,n)||e.createBlock([]));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 243:return function(t){if(!pe(t))return e.createNotEmittedStatement(t);var r=e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]));if(Ne(t)){var a=[r];return Re(a,t),a}return r}(a);case 200:return function(t){if(!pe(t))return e.createOmittedExpression();return e.updateFunctionExpression(t,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]))}(a);case 201:return function(t){return e.updateArrowFunction(t,e.visitNodes(t.modifiers,w,e.isModifier),void 0,e.visitParameterList(t.parameters,D,n),void 0,t.equalsGreaterThanToken,e.visitFunctionBody(t.body,D,n))}(a);case 155:return function(n){if(e.parameterIsThisKeyword(n))return;var t=e.updateParameter(n,void 0,void 0,n.dotDotDotToken,e.visitNode(n.name,D,e.isBindingName),void 0,void 0,e.visitNode(n.initializer,D,e.isExpression));t!==n&&(e.setCommentRange(t,n),e.setTextRange(t,e.moveRangePastModifiers(n)),e.setSourceMapRange(t,e.moveRangePastModifiers(n)),e.setEmitFlags(t.name,32));return t}(a);case 199:return function(r){var a=e.skipOuterExpressions(r.expression,-3);if(e.isAssertionExpression(a)){var i=e.visitNode(r.expression,D,e.isExpression);return e.length(e.getLeadingCommentRangesOfNode(i,t))?e.updateParen(r,i):e.createPartiallyEmittedExpression(i,r)}return e.visitEachChild(r,D,n)}(a);case 198:case 216:return function(n){var t=e.visitNode(n.expression,D,e.isExpression);return e.createPartiallyEmittedExpression(t,n)}(a);case 195:return function(n){return e.updateCall(n,e.visitNode(n.expression,D,e.isExpression),void 0,e.visitNodes(n.arguments,D,e.isExpression))}(a);case 196:return function(n){return e.updateNew(n,e.visitNode(n.expression,D,e.isExpression),void 0,e.visitNodes(n.arguments,D,e.isExpression))}(a);case 197:return function(n){return e.updateTaggedTemplate(n,e.visitNode(n.tag,D,e.isExpression),void 0,e.visitNode(n.template,D,e.isExpression))}(a);case 217:return function(n){var t=e.visitNode(n.expression,D,e.isLeftHandSideExpression);return e.createPartiallyEmittedExpression(t,n)}(a);case 247:return function(n){if(!function(n){return!e.isEnumConst(n)||b.preserveConstEnums||b.isolatedModules}(n))return e.createNotEmittedStatement(n);var r=[],a=2,i=Te(r,n);i&&(S===e.ModuleKind.System&&c===t||(a|=512));var o=Fe(n),l=Ge(n),u=e.hasModifier(n,1)?e.getExternalModuleOrNamespaceExportName(s,n,!1,!0):e.getLocalName(n,!1,!0),d=e.createLogicalOr(u,e.createAssignment(u,e.createObjectLiteral()));if(he(n)){var p=e.getLocalName(n,!1,!0);d=e.createAssignment(p,d)}var m=e.createExpressionStatement(e.createCall(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,o)],void 0,function(n,t){var r=s;s=t;var a=[];_();var i=e.map(n.members,ve);return e.insertStatementsAfterStandardPrologue(a,y()),e.addRange(a,i),s=r,e.createBlock(e.setTextRange(e.createNodeArray(a),n.members),!0)}(n,l)),void 0,[d]));e.setOriginalNode(m,n),i&&(e.setSyntheticLeadingComments(m,void 0),e.setSyntheticTrailingComments(m,void 0));return e.setTextRange(m,n),e.addEmitFlags(m,a),r.push(m),r.push(e.createEndOfDeclarationMarker(n)),r}(a);case 224:return function(t){if(Ne(t)){var r=e.getInitializedVariables(t.declarationList);if(0===r.length)return;return e.setTextRange(e.createExpressionStatement(e.inlineExpressions(e.map(r,ye))),t)}return e.visitEachChild(t,D,n)}(a);case 241:return function(n){return e.updateVariableDeclaration(n,e.visitNode(n.name,D,e.isBindingName),void 0,e.visitNode(n.initializer,D,e.isExpression))}(a);case 248:return Se(a);case 252:return ke(a);default:return e.visitEachChild(a,D,n)}}function G(t){var r=e.getStrictOptionValue(b,\"alwaysStrict\")&&!(e.isExternalModule(t)&&S>=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(t);return e.updateSourceFileNode(t,e.visitLexicalEnvironment(t.statements,N,n,0,r))}function B(e){return void 0!==e.decorators&&e.decorators.length>0}function V(e){return!!(1024&e.transformFlags)}function U(n){return e.some(n.decorators)||e.some(n.typeParameters)||e.some(n.heritageClauses,V)||e.some(n.members,V)}function j(n){var t=[],r=e.getFirstConstructorWithBody(n),a=r&&e.filter(r.parameters,(function(n){return e.isParameterPropertyDeclaration(n,r)}));if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];e.isIdentifier(s.name)&&t.push(e.setOriginalNode(e.aggregateTransformFlags(e.createProperty(void 0,void 0,s.name,void 0,void 0,void 0)),s))}return e.addRange(t,e.visitNodes(n.members,R,e.isClassElement)),e.setTextRange(e.createNodeArray(t),n.members)}function K(n,t){return e.filter(n.members,t?function(e){return H(e,!0,n)}:function(e){return H(e,!1,n)})}function H(n,t,r){return e.nodeOrChildIsDecorated(n,r)&&t===e.hasModifier(n,32)}function W(n){var t;if(n)for(var r=n.parameters,a=r.length>0&&e.parameterIsThisKeyword(r[0]),i=a?1:0,o=a?r.length-1:r.length,s=0;s<o;s++){var c=r[s+i];(t||c.decorators)&&(t||(t=new Array(o)),t[s]=c.decorators)}return t}function z(n,t){switch(t.kind){case 162:case 163:return function(n,t){if(!t.body)return;var r=e.getAllAccessorDeclarations(n.members,t),a=r.firstAccessor,i=r.secondAccessor,o=r.setAccessor,s=a.decorators?a:i&&i.decorators?i:void 0;if(!s||t!==s)return;var c=s.decorators,l=W(o);if(!c&&!l)return;return{decorators:c,parameters:l}}(n,t);case 160:return function(e){if(!e.body)return;var n=e.decorators,t=W(e);if(!n&&!t)return;return{decorators:n,parameters:t}}(t);case 158:return function(e){var n=e.decorators;if(!n)return;return{decorators:n}}(t);default:return}}function q(t,r,i){if(i){var o=[];return e.addRange(o,e.map(i.decorators,Y)),e.addRange(o,e.flatMap(i.parameters,Q)),function(e,t,r){(function(e,t,r){b.emitDecoratorMetadata&&(Z(e)&&r.push(a(n,\"design:type\",ne(e))),ee(e)&&r.push(a(n,\"design:paramtypes\",te(e,t))),$(e)&&r.push(a(n,\"design:returntype\",re(e))))})(e,t,r)}(t,r,o),o}}function J(n,t,r){e.addRange(n,e.map(function(e,n){for(var t,r=K(e,n),a=0,i=r;a<i.length;a++){var o=i[a],s=X(e,o);s&&(t?t.push(s):t=[s])}return t}(t,r),Oe))}function X(t,a){var i=q(a,t,z(t,a));if(i){var o=function(n,t){return e.hasModifier(t,32)?e.getDeclarationName(n):function(n){return e.createPropertyAccess(e.getDeclarationName(n),\"prototype\")}(n)}(t,a),s=ue(a,!0),c=T>0?158===a.kind?e.createVoidZero():e.createNull():void 0,l=r(n,i,o,s,c,e.moveRangePastDecorators(a));return e.setEmitFlags(l,1536),l}}function Y(n){return e.visitNode(n.expression,D,e.isExpression)}function Q(t,r){var a;if(t){a=[];for(var o=0,s=t;o<s.length;o++){var c=s[o],l=i(n,Y(c),r,c.expression);e.setEmitFlags(l,1536),a.push(l)}}return a}function Z(e){var n=e.kind;return 160===n||162===n||163===n||158===n}function $(e){return 160===e.kind}function ee(n){switch(n.kind){case 244:case 213:return void 0!==e.getFirstConstructorWithBody(n);case 160:case 162:case 163:return!0}return!1}function ne(n){switch(n.kind){case 158:case 155:return ae(n.type);case 163:case 162:return ae(function(n){var t=h.getAllAccessorDeclarations(n);return t.setAccessor&&e.getSetAccessorTypeAnnotationNode(t.setAccessor)||t.getAccessor&&e.getEffectiveReturnTypeNode(t.getAccessor)}(n));case 244:case 213:case 160:return e.createIdentifier(\"Function\");default:return e.createVoidZero()}}function te(n,t){var r=e.isClassLike(n)?e.getFirstConstructorWithBody(n):e.isFunctionLike(n)&&e.nodeIsPresent(n.body)?n:void 0,a=[];if(r)for(var i=function(n,t){if(t&&162===n.kind){var r=e.getAllAccessorDeclarations(t.members,n).setAccessor;if(r)return r.parameters}return n.parameters}(r,t),o=i.length,s=0;s<o;s++){var c=i[s];0===s&&e.isIdentifier(c.name)&&\"this\"===c.name.escapedText||(c.dotDotDotToken?a.push(ae(e.getRestParameterElementType(c.type))):a.push(ne(c)))}return e.createArrayLiteral(a)}function re(n){return e.isFunctionLike(n)&&n.type?ae(n.type):e.isAsyncFunction(n)?e.createIdentifier(\"Promise\"):e.createVoidZero()}function ae(n){if(void 0===n)return e.createIdentifier(\"Object\");switch(n.kind){case 109:case 145:case 99:case 136:return e.createVoidZero();case 181:return ae(n.type);case 169:case 170:return e.createIdentifier(\"Function\");case 173:case 174:return e.createIdentifier(\"Array\");case 167:case 127:return e.createIdentifier(\"Boolean\");case 142:return e.createIdentifier(\"String\");case 140:return e.createIdentifier(\"Object\");case 186:switch(n.literal.kind){case 10:return e.createIdentifier(\"String\");case 206:case 8:return e.createIdentifier(\"Number\");case 9:return le();case 105:case 90:return e.createIdentifier(\"Boolean\");default:return e.Debug.failBadSyntaxKind(n.literal)}case 139:return e.createIdentifier(\"Number\");case 150:return le();case 143:return T<2?ce():e.createIdentifier(\"Symbol\");case 168:return function(n){var t=h.getTypeReferenceSerializationKind(n.typeName,l||c);switch(t){case e.TypeReferenceSerializationKind.Unknown:if(e.findAncestor(n,(function(n){return n.parent&&e.isConditionalTypeNode(n.parent)&&(n.parent.trueType===n||n.parent.falseType===n)})))return e.createIdentifier(\"Object\");var r=function n(t){if(75===t.kind){var r=se(t);return oe(r,r)}if(75===t.left.kind)return oe(se(t.left),se(t));var a=n(t.left),i=e.createTempVariable(v);return e.createLogicalAnd(e.createLogicalAnd(a.left,e.createStrictInequality(e.createAssignment(i,a.right),e.createVoidZero())),e.createPropertyAccess(i,t.right))}(n.typeName),a=e.createTempVariable(v);return e.createConditional(e.createTypeCheck(e.createAssignment(a,r),\"function\"),a,e.createIdentifier(\"Object\"));case e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue:return se(n.typeName);case e.TypeReferenceSerializationKind.VoidNullableOrNeverType:return e.createVoidZero();case e.TypeReferenceSerializationKind.BigIntLikeType:return le();case e.TypeReferenceSerializationKind.BooleanType:return e.createIdentifier(\"Boolean\");case e.TypeReferenceSerializationKind.NumberLikeType:return e.createIdentifier(\"Number\");case e.TypeReferenceSerializationKind.StringLikeType:return e.createIdentifier(\"String\");case e.TypeReferenceSerializationKind.ArrayLikeType:return e.createIdentifier(\"Array\");case e.TypeReferenceSerializationKind.ESSymbolType:return T<2?ce():e.createIdentifier(\"Symbol\");case e.TypeReferenceSerializationKind.TypeWithCallSignature:return e.createIdentifier(\"Function\");case e.TypeReferenceSerializationKind.Promise:return e.createIdentifier(\"Promise\");case e.TypeReferenceSerializationKind.ObjectType:return e.createIdentifier(\"Object\");default:return e.Debug.assertNever(t)}}(n);case 178:case 177:return ie(n.types);case 179:return ie([n.trueType,n.falseType]);case 183:if(137===n.operator)return ae(n.type);break;case 171:case 184:case 185:case 172:case 124:case 147:case 182:case 187:break;default:return e.Debug.failBadSyntaxKind(n)}return e.createIdentifier(\"Object\")}function ie(n){for(var t,r=0,a=n;r<a.length;r++){for(var i=a[r];181===i.kind;)i=i.type;if(136!==i.kind&&(E||99!==i.kind&&145!==i.kind)){var o=ae(i);if(e.isIdentifier(o)&&\"Object\"===o.escapedText)return o;if(t){if(!e.isIdentifier(t)||!e.isIdentifier(o)||t.escapedText!==o.escapedText)return e.createIdentifier(\"Object\")}else t=o}}return t||e.createVoidZero()}function oe(n,t){return e.createLogicalAnd(e.createStrictInequality(e.createTypeOf(n),e.createLiteral(\"undefined\")),t)}function se(n){switch(n.kind){case 75:var t=e.getMutableClone(n);return t.flags&=-9,t.original=void 0,t.parent=e.getParseTreeNode(c),t;case 152:return function(n){return e.createPropertyAccess(se(n.left),n.right)}(n)}}function ce(){return e.createConditional(e.createTypeCheck(e.createIdentifier(\"Symbol\"),\"function\"),e.createIdentifier(\"Symbol\"),e.createIdentifier(\"Object\"))}function le(){return T<99?e.createConditional(e.createTypeCheck(e.createIdentifier(\"BigInt\"),\"function\"),e.createIdentifier(\"BigInt\"),e.createIdentifier(\"Object\")):e.createIdentifier(\"BigInt\")}function ue(n,t){var r=n.name;return e.isComputedPropertyName(r)?t&&!e.isSimpleInlineableExpression(r.expression)?e.getGeneratedNameForNode(r):r.expression:e.isIdentifier(r)?e.createLiteral(e.idText(r)):e.getSynthesizedClone(r)}function de(n){var t=n.name;if(e.isComputedPropertyName(t)&&(!e.hasStaticModifier(n)&&d||e.some(n.decorators))){var r=e.visitNode(t.expression,D,e.isExpression),a=e.skipPartiallyEmittedExpressions(r);if(!e.isSimpleInlineableExpression(a)){var i=e.getGeneratedNameForNode(t);return v(i),e.updateComputedPropertyName(t,e.createAssignment(i,r))}}return e.visitNode(t,D,e.isPropertyName)}function pe(n){return!e.nodeIsMissing(n.body)}function me(n){if(!(8388608&n.flags)){var t=e.updateProperty(n,void 0,e.visitNodes(n.modifiers,D,e.isModifier),de(n),void 0,void 0,e.visitNode(n.initializer,D));return t!==n&&(e.setCommentRange(t,n),e.setSourceMapRange(t,e.moveRangePastDecorators(n))),t}}function fe(t){if(pe(t))return e.updateConstructor(t,void 0,void 0,e.visitParameterList(t.parameters,D,n),function(t,r){var a=r&&e.filter(r.parameters,(function(n){return e.isParameterPropertyDeclaration(n,r)}));if(!e.some(a))return e.visitFunctionBody(t,D,n);var i,o=[];g(),i=e.addPrologueDirectivesAndInitialSuperCall(r,o,D),e.addRange(o,e.map(a,_e)),e.addRange(o,e.visitNodes(t.statements,D,e.isStatement,i)),o=e.mergeLexicalEnvironment(o,y());var s=e.createBlock(e.setTextRange(e.createNodeArray(o),t.statements),!0);return e.setTextRange(s,t),e.setOriginalNode(s,t),s}(t.body,t))}function _e(n){var t=n.name;if(e.isIdentifier(t)){var r=e.getMutableClone(t);e.setEmitFlags(r,1584);var a=e.getMutableClone(t);return e.setEmitFlags(a,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(e.createExpressionStatement(e.createAssignment(e.setTextRange(e.createPropertyAccess(e.createThis(),r),n.name),a)),n),e.moveRangePos(n,-1))))}}function ge(n){return!(e.nodeIsMissing(n.body)&&e.hasModifier(n,128))}function ye(t){var r=t.name;return e.isBindingPattern(r)?e.flattenDestructuringAssignment(t,D,n,0,!1,Pe):e.setTextRange(e.createAssignment(we(r),e.visitNode(t.initializer,D,e.isExpression)),t)}function ve(t){var r=ue(t,!1),a=function(t){var r=h.getConstantValue(t);return void 0!==r?e.createLiteral(r):(0==(8&p)&&(p|=8,n.enableSubstitution(75)),t.initializer?e.visitNode(t.initializer,D,e.isExpression):e.createVoidZero())}(t),i=e.createAssignment(e.createElementAccess(s,r),a),o=10===a.kind?i:e.createAssignment(e.createElementAccess(s,i),r);return e.setTextRange(e.createExpressionStatement(e.setTextRange(o,t)),t)}function he(n){return Ne(n)||Ie(n)&&S!==e.ModuleKind.ES2015&&S!==e.ModuleKind.ESNext&&S!==e.ModuleKind.System}function be(n){u||(u=e.createUnderscoreEscapedMap());var t=Ee(n);u.has(t)||u.set(t,n)}function Ee(n){return e.Debug.assertNode(n.name,e.isIdentifier),n.name.escapedText}function Te(n,t){var r=e.createVariableStatement(e.visitNodes(t.modifiers,w,e.isModifier),e.createVariableDeclarationList([e.createVariableDeclaration(e.getLocalName(t,!1,!0))],288===c.kind?0:1));if(e.setOriginalNode(r,t),be(t),function(e){if(u){var n=Ee(e);return u.get(n)===e}return!0}(t))return 247===t.kind?e.setSourceMapRange(r.declarationList,t):e.setSourceMapRange(r,t),e.setCommentRange(r,t),e.addEmitFlags(r,4195328),n.push(r),!0;var a=e.createMergeDeclarationMarker(r);return e.setEmitFlags(a,4195840),n.push(a),!1}function Se(r){if(!function(n){var t=e.getParseTreeNode(n,e.isModuleDeclaration);return!t||e.isInstantiatedModule(t,!!b.preserveConstEnums||!!b.isolatedModules)}(r))return e.createNotEmittedStatement(r);e.Debug.assertNode(r.name,e.isIdentifier,\"A TypeScript namespace should have an Identifier name.\"),0==(2&p)&&(p|=2,n.enableSubstitution(75),n.enableSubstitution(280),n.enableEmitNotification(248));var a=[],i=2,l=Te(a,r);l&&(S===e.ModuleKind.System&&c===t||(i|=512));var d=Fe(r),m=Ge(r),f=e.hasModifier(r,1)?e.getExternalModuleOrNamespaceExportName(s,r,!1,!0):e.getLocalName(r,!1,!0),g=e.createLogicalOr(f,e.createAssignment(f,e.createObjectLiteral()));if(he(r)){var v=e.getLocalName(r,!1,!0);g=e.createAssignment(v,g)}var h=e.createExpressionStatement(e.createCall(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,d)],void 0,function(n,t){var r=s,a=o,i=u;s=t,o=n,u=void 0;var c,l,d=[];_();var p=n.body;if(249===p.kind)A(p,(function(n){return e.addRange(d,e.visitNodes(n.statements,M,e.isStatement))})),c=p.statements,l=p;else{var m=Se(p);m&&(e.isArray(m)?e.addRange(d,m):d.push(m));var f=function e(n){if(248===n.body.kind){return e(n.body)||n.body}}(n).body;c=e.moveRangePos(f.statements,-1)}e.insertStatementsAfterStandardPrologue(d,y()),s=r,o=a,u=i;var g=e.createBlock(e.setTextRange(e.createNodeArray(d),c),!0);e.setTextRange(g,l),249!==p.kind&&e.setEmitFlags(g,1536|e.getEmitFlags(g));return g}(r,m)),void 0,[g]));return e.setOriginalNode(h,r),l&&(e.setSyntheticLeadingComments(h,void 0),e.setSyntheticTrailingComments(h,void 0)),e.setTextRange(h,r),e.addEmitFlags(h,i),a.push(h),a.push(e.createEndOfDeclarationMarker(r)),a}function xe(n){var t=h.isReferencedAliasDeclaration(n)?n.name:void 0,r=e.visitNode(n.namedBindings,Le,e.isNamedImportBindings);return t||r?e.updateImportClause(n,t,r):void 0}function Le(n){if(255===n.kind)return h.isReferencedAliasDeclaration(n)?n:void 0;var t=e.visitNodes(n.elements,Ce,e.isImportSpecifier);return e.some(t)?e.updateNamedImports(n,t):void 0}function Ce(e){return h.isReferencedAliasDeclaration(e)?e:void 0}function Ae(n){var t=e.visitNodes(n.elements,De,e.isExportSpecifier);return e.some(t)?e.updateNamedExports(n,t):void 0}function De(e){return h.isValueAliasDeclaration(e)?e:void 0}function ke(r){if(e.isExternalModuleImportEqualsDeclaration(r))return h.isReferencedAliasDeclaration(r)?e.visitEachChild(r,D,n):void 0;if(function(n){return h.isReferencedAliasDeclaration(n)||!e.isExternalModule(t)&&h.isTopLevelValueImportEqualsWithEntityName(n)}(r)){var a,i,o,c=e.createExpressionFromEntityName(r.moduleReference);return e.setEmitFlags(c,3584),Me(r)||!Ne(r)?e.setOriginalNode(e.setTextRange(e.createVariableStatement(e.visitNodes(r.modifiers,w,e.isModifier),e.createVariableDeclarationList([e.setOriginalNode(e.createVariableDeclaration(r.name,void 0,c),r)])),r),r):e.setOriginalNode((a=r.name,i=c,o=r,e.setTextRange(e.createExpressionStatement(e.createAssignment(e.getNamespaceMemberName(s,a,!1,!0),i)),o)),r)}}function Ne(n){return void 0!==o&&e.hasModifier(n,1)}function Ie(n){return void 0===o&&e.hasModifier(n,1)}function Me(n){return Ie(n)&&!e.hasModifier(n,512)}function Oe(n){return e.createExpressionStatement(n)}function Re(n,t){var r=e.createAssignment(e.getExternalModuleOrNamespaceExportName(s,t,!1,!0),e.getLocalName(t));e.setSourceMapRange(r,e.createRange(t.name?t.name.pos:t.pos,t.end));var a=e.createExpressionStatement(r);e.setSourceMapRange(a,e.createRange(-1,t.end)),n.push(a)}function Pe(n,t,r){return e.setTextRange(e.createAssignment(we(n),t),r)}function we(n){return e.getNamespaceMemberName(s,n,!1,!0)}function Fe(n){var t=e.getGeneratedNameForNode(n);return e.setSourceMapRange(t,n.name),t}function Ge(n){return e.getGeneratedNameForNode(n)}function Be(n){if(p&f&&!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var t=h.getReferencedExportContainer(n,!1);if(t&&288!==t.kind)if(2&f&&248===t.kind||8&f&&247===t.kind)return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(t),n),n)}}function Ve(n){var t=function(n){if(b.isolatedModules)return;return e.isPropertyAccessExpression(n)||e.isElementAccessExpression(n)?h.getConstantValue(n):void 0}(n);if(void 0!==t){e.setConstantValue(n,t);var r=e.createLiteral(t);if(!b.removeComments){var a=e.getOriginalNode(n,e.isAccessExpression),i=e.isPropertyAccessExpression(a)?e.declarationNameToString(a.name):e.getTextOfNode(a.argumentExpression);e.addSyntheticTrailingComment(r,3,\" \"+i+\" \")}return r}return n}},e.decorateHelper={name:\"typescript:decorate\",importName:\"__decorate\",scoped:!1,priority:2,text:'\\n            var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\\n                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\n                if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\\n                else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\n                return c > 3 && r && Object.defineProperty(target, key, r), r;\\n            };'},e.metadataHelper={name:\"typescript:metadata\",importName:\"__metadata\",scoped:!1,priority:3,text:'\\n            var __metadata = (this && this.__metadata) || function (k, v) {\\n                if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\\n            };'},e.paramHelper={name:\"typescript:param\",importName:\"__param\",scoped:!1,priority:4,text:\"\\n            var __param = (this && this.__param) || function (paramIndex, decorator) {\\n                return function (target, key) { decorator(target, key, paramIndex); }\\n            };\"}}(ts||(ts={})),function(e){var n;!function(e){e[e.ClassAliases=1]=\"ClassAliases\"}(n||(n={})),e.transformClassFields=function(n){var t,r,a,i,o=n.hoistVariableDeclaration,s=n.endLexicalEnvironment,c=n.resumeLexicalEnvironment,l=n.getEmitResolver(),u=n.onSubstituteNode;return n.onSubstituteNode=function(n,a){if(a=u(n,a),1===n)return function(n){switch(n.kind){case 75:return function(n){return function(n){if(1&t&&33554432&l.getNodeCheckFlags(n)){var a=l.getReferencedValueDeclaration(n);if(a){var i=r[a.id];if(i){var o=e.getSynthesizedClone(i);return e.setSourceMapRange(o,n),e.setCommentRange(o,n),o}}}return}(n)||n}(n)}return n}(a);return a},e.chainBundle((function(t){var r=n.getCompilerOptions();if(t.isDeclarationFile||r.useDefineForClassFields&&99===r.target)return t;var a=e.visitEachChild(t,d,n);return e.addEmitHelpers(a,n.readEmitHelpers()),a}));function d(s){if(!(1048576&s.transformFlags))return s;switch(s.kind){case 213:return function(s){if(!e.forEach(s.members,e.isPropertyDeclaration))return e.visitEachChild(s,d,n);var c=a;a=void 0;var u=e.isClassDeclaration(e.getOriginalNode(s)),p=e.getProperties(s,!0,!0),g=e.getEffectiveBaseTypeNode(s),y=!(!g||99===e.skipOuterExpressions(g.expression).kind),v=e.updateClassExpression(s,s.modifiers,s.name,void 0,e.visitNodes(s.heritageClauses,d,e.isHeritageClause),m(s,y));if(e.some(p)||e.some(a)){if(u)return e.Debug.assertDefined(i,\"Decorated classes transformed by TypeScript are expected to be within a variable declaration.\"),i&&a&&e.some(a)&&i.push(e.createExpressionStatement(e.inlineExpressions(a))),a=c,i&&e.some(p)&&f(i,p,e.getInternalName(s)),v;var h=[],b=16777216&l.getNodeCheckFlags(s),E=e.createTempVariable(o,!!b);if(b){0==(1&t)&&(t|=1,n.enableSubstitution(75),r=[]);var T=e.getSynthesizedClone(E);T.autoGenerateFlags&=-9,r[e.getOriginalNodeId(s)]=T}return e.setEmitFlags(v,65536|e.getEmitFlags(v)),h.push(e.startOnNewLine(e.createAssignment(E,v))),e.addRange(h,e.map(a,e.startOnNewLine)),e.addRange(h,function(n,t){for(var r=[],a=0,i=n;a<i.length;a++){var o=i[a],s=_(o,t);e.startOnNewLine(s),e.setSourceMapRange(s,e.moveRangePastModifiers(o)),e.setCommentRange(s,o),e.setOriginalNode(s,o),r.push(s)}return r}(p,E)),h.push(e.startOnNewLine(E)),a=c,e.inlineExpressions(h)}return a=c,v}(s);case 244:return function(t){if(!e.forEach(t.members,e.isPropertyDeclaration))return e.visitEachChild(t,d,n);var r=a;a=void 0;var i=e.getEffectiveBaseTypeNode(t),o=!(!i||99===e.skipOuterExpressions(i.expression).kind),s=[e.updateClassDeclaration(t,void 0,t.modifiers,t.name,void 0,e.visitNodes(t.heritageClauses,d,e.isHeritageClause),m(t,o))];e.some(a)&&s.push(e.createExpressionStatement(e.inlineExpressions(a)));a=r;var c=e.getProperties(t,!0,!0);e.some(c)&&f(s,c,e.getInternalName(t));return s}(s);case 224:return function(t){var r=i;i=[];var a=e.visitEachChild(t,d,n),o=e.some(i)?__spreadArrays([a],i):a;return i=r,o}(s)}return e.visitEachChild(s,d,n)}function p(t){switch(t.kind){case 161:return;case 162:case 163:case 160:return e.visitEachChild(t,p,n);case 158:return function(t){e.Debug.assert(!e.some(t.decorators));var r=function(n,t){if(e.isComputedPropertyName(n)){var r=e.visitNode(n.expression,d,e.isExpression),a=e.skipPartiallyEmittedExpressions(r),i=e.isSimpleInlineableExpression(a);if(!(e.isAssignmentExpression(a)&&e.isGeneratedIdentifier(a.left))&&!i&&t){var s=e.getGeneratedNameForNode(n);return o(s),e.createAssignment(s,r)}return i||e.isIdentifier(a)?void 0:r}}(t.name,!!t.initializer||!!n.getCompilerOptions().useDefineForClassFields);r&&!e.isSimpleInlineableExpression(r)&&(a||(a=[])).push(r);return}(t);case 153:return function(t){var r=e.visitEachChild(t,d,n);if(e.some(a)){var i=a;i.push(t.expression),a=[],r=e.updateComputedPropertyName(r,e.inlineExpressions(i))}return r}(t);case 221:return t;default:return d(t)}}function m(t,r){var a=[],i=function(t,r){var a=e.visitNode(e.getFirstConstructorWithBody(t),d,e.isConstructorDeclaration);if(!e.forEach(t.members,(function(t){return e.isInitializedProperty(t,!n.getCompilerOptions().useDefineForClassFields)})))return a;var i=e.visitParameterList(a?a.parameters:void 0,d,n),o=function(t,r,a){var i,o=n.getCompilerOptions().useDefineForClassFields,l=e.getProperties(t,!o,!1);if(!r&&!e.some(l))return e.visitFunctionBody(void 0,d,n);c();var u=0,p=[];!r&&a&&p.push(e.createExpressionStatement(e.createCall(e.createSuper(),void 0,[e.createSpread(e.createIdentifier(\"arguments\"))])));r&&(u=e.addPrologueDirectivesAndInitialSuperCall(r,p,d));if(null===(i=r)||void 0===i?void 0:i.body){var m=e.findIndex(r.body.statements,(function(n){return!e.isParameterPropertyDeclaration(e.getOriginalNode(n),r)}),u);-1===m&&(m=r.body.statements.length),m>u&&(o||e.addRange(p,e.visitNodes(r.body.statements,d,e.isStatement,u,m-u)),u=m)}f(p,l,e.createThis()),r&&e.addRange(p,e.visitNodes(r.body.statements,d,e.isStatement,u));return p=e.mergeLexicalEnvironment(p,s()),e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(p),r?r.body.statements:t.members),!0),r?r.body:void 0)}(t,a,r);if(!o)return;return e.startOnNewLine(e.setOriginalNode(e.setTextRange(e.createConstructor(void 0,void 0,i,o),a||t),a))}(t,r);return i&&a.push(i),e.addRange(a,e.visitNodes(t.members,p,e.isClassElement)),e.setTextRange(e.createNodeArray(a),t.members)}function f(n,t,r){for(var a=0,i=t;a<i.length;a++){var o=i[a],s=e.createExpressionStatement(_(o,r));e.setSourceMapRange(s,e.moveRangePastModifiers(o)),e.setCommentRange(s,o),e.setOriginalNode(s,o),n.push(s)}}function _(t,r){var a=!n.getCompilerOptions().useDefineForClassFields,i=e.isComputedPropertyName(t.name)&&!e.isSimpleInlineableExpression(t.name.expression)?e.updateComputedPropertyName(t.name,e.getGeneratedNameForNode(t.name)):t.name,o=t.initializer||a?e.visitNode(t.initializer,d,e.isExpression):e.hasModifier(e.getOriginalNode(t),92)&&e.isIdentifier(i)?i:e.createVoidZero();if(a){var s=e.createMemberAccessForPropertyName(r,i,i);return e.createAssignment(s,o)}var c=e.isComputedPropertyName(i)?i.expression:e.isIdentifier(i)?e.createStringLiteral(e.unescapeLeadingUnderscores(i.escapedText)):i,l=e.createPropertyDescriptor({value:o,configurable:!0,writable:!0,enumerable:!0});return e.createObjectDefinePropertyCall(r,c,l)}}}(ts||(ts={})),function(e){var n;function t(n,t,r){var a=0!=(4096&n.getNodeCheckFlags(t)),i=[];return r.forEach((function(n,t){var r=e.unescapeLeadingUnderscores(t),o=[];o.push(e.createPropertyAssignment(\"get\",e.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(e.createPropertyAccess(e.setEmitFlags(e.createSuper(),4),r),4)))),a&&o.push(e.createPropertyAssignment(\"set\",e.createArrowFunction(void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"v\",void 0,void 0,void 0)],void 0,void 0,e.createAssignment(e.setEmitFlags(e.createPropertyAccess(e.setEmitFlags(e.createSuper(),4),r),4),e.createIdentifier(\"v\"))))),i.push(e.createPropertyAssignment(r,e.createObjectLiteral(o)))})),e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_super\"),void 0,e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"create\"),void 0,[e.createNull(),e.createObjectLiteral(i,!0)]))],2))}function r(n,t,r,a,i){n.requestEmitHelper(e.awaiterHelper);var o=e.createFunctionExpression(void 0,e.createToken(41),void 0,void 0,[],void 0,i);return(o.emitNode||(o.emitNode={})).flags|=786432,e.createCall(e.getUnscopedHelperName(\"__awaiter\"),void 0,[t?e.createThis():e.createVoidZero(),r?e.createIdentifier(\"arguments\"):e.createVoidZero(),a?e.createExpressionFromEntityName(a):e.createVoidZero(),o])}!function(e){e[e.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"}(n||(n={})),e.transformES2017=function(n){var a,i,o,s,c,l=n.resumeLexicalEnvironment,u=n.endLexicalEnvironment,d=n.hoistVariableDeclaration,p=n.getEmitResolver(),m=n.getCompilerOptions(),f=e.getEmitScriptTarget(m),_=0,g=[],y=n.onEmitNode,v=n.onSubstituteNode;return n.onEmitNode=function(n,t,r){if(1&a&&function(e){var n=e.kind;return 244===n||161===n||160===n||162===n||163===n}(t)){var i=6144&p.getNodeCheckFlags(t);if(i!==_){var o=_;return _=i,y(n,t,r),void(_=o)}}else if(a&&g[e.getNodeId(t)]){o=_;return _=0,y(n,t,r),void(_=o)}y(n,t,r)},n.onSubstituteNode=function(n,t){if(t=v(n,t),1===n&&_)return function(n){switch(n.kind){case 193:return R(n);case 194:return P(n);case 195:return function(n){var t=n.expression;if(e.isSuperProperty(t)){var r=e.isPropertyAccessExpression(t)?R(t):P(t);return e.createCall(e.createPropertyAccess(r,\"call\"),void 0,__spreadArrays([e.createThis()],n.arguments))}return n}(n)}return n}(t);return t},e.chainBundle((function(t){if(t.isDeclarationFile)return t;c=e.isEffectiveStrictModeSourceFile(t,m);var r=e.visitEachChild(t,E,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function h(e,n){if(c){c=!1;var t=e(n);return c=!0,t}return e(n)}function b(t){return e.visitEachChild(t,E,n)}function E(t){if(0==(32&t.transformFlags))return t;switch(t.kind){case 125:return;case 205:return function(n){return e.setOriginalNode(e.setTextRange(e.createYield(void 0,e.visitNode(n.expression,E,e.isExpression)),n),n)}(t);case 160:return h(S,t);case 243:return h(x,t);case 200:return h(L,t);case 201:return function(t){return e.updateArrowFunction(t,e.visitNodes(t.modifiers,E,e.isModifier),void 0,e.visitParameterList(t.parameters,E,n),void 0,t.equalsGreaterThanToken,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}(t);case 193:return o&&e.isPropertyAccessExpression(t)&&101===t.expression.kind&&o.set(t.name.escapedText,!0),e.visitEachChild(t,E,n);case 194:return o&&101===t.expression.kind&&(s=!0),e.visitEachChild(t,E,n);case 162:case 163:case 161:case 244:case 213:return h(b,t);default:return e.visitEachChild(t,E,n)}}function T(t){if(e.isNodeWithPossibleHoistedDeclaration(t))switch(t.kind){case 224:return function(t){if(A(t.declarationList)){var r=D(t.declarationList,!1);return r?e.createExpressionStatement(r):void 0}return e.visitEachChild(t,E,n)}(t);case 229:return function(n){var t=n.initializer;return e.updateFor(n,A(t)?D(t,!1):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.condition,E,e.isExpression),e.visitNode(n.incrementor,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 230:return function(n){return e.updateForIn(n,A(n.initializer)?D(n.initializer,!0):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.expression,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 231:return function(n){return e.updateForOf(n,e.visitNode(n.awaitModifier,E,e.isToken),A(n.initializer)?D(n.initializer,!0):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.expression,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 278:return function(t){var r,a=e.createUnderscoreEscapedMap();if(C(t.variableDeclaration,a),a.forEach((function(n,t){i.has(t)&&(r||(r=e.cloneMap(i)),r.delete(t))})),r){var o=i;i=r;var s=e.visitEachChild(t,T,n);return i=o,s}return e.visitEachChild(t,T,n)}(t);case 222:case 236:case 250:case 275:case 276:case 239:case 227:case 228:case 226:case 235:case 237:return e.visitEachChild(t,T,n);default:return e.Debug.assertNever(t,\"Unhandled node.\")}return E(t)}function S(t){return e.updateMethod(t,void 0,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function x(t){return e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function L(t){return e.updateFunctionExpression(t,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function C(n,t){var r=n.name;if(e.isIdentifier(r))t.set(r.escapedText,!0);else for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||C(o,t)}}function A(n){return!!n&&e.isVariableDeclarationList(n)&&!(3&n.flags)&&n.declarations.some(I)}function D(n,t){!function(n){e.forEach(n.declarations,k)}(n);var r=e.getInitializedVariables(n);return 0===r.length?t?e.visitNode(e.convertToAssignmentElementTarget(n.declarations[0].name),E,e.isExpression):void 0:e.inlineExpressions(e.map(r,N))}function k(n){var t=n.name;if(e.isIdentifier(t))d(t);else for(var r=0,a=t.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||k(i)}}function N(n){var t=e.setSourceMapRange(e.createAssignment(e.convertToAssignmentElementTarget(n.name),n.initializer),n);return e.visitNode(t,E,e.isExpression)}function I(n){var t=n.name;if(e.isIdentifier(t))return i.has(t.escapedText);for(var r=0,a=t.elements;r<a.length;r++){var o=a[r];if(!e.isOmittedExpression(o)&&I(o))return!0}return!1}function M(d){l();var m=e.getOriginalNode(d,e.isFunctionLike).type,_=f<2?function(n){var t=n&&e.getEntityNameFromTypeNode(n);if(t&&e.isEntityName(t)){var r=p.getTypeReferenceSerializationKind(t);if(r===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||r===e.TypeReferenceSerializationKind.Unknown)return t}return}(m):void 0,y=201===d.kind,v=0!=(8192&p.getNodeCheckFlags(d)),h=i;i=e.createUnderscoreEscapedMap();for(var b=0,T=d.parameters;b<T.length;b++){C(T[b],i)}var S,x=o,L=s;if(y||(o=e.createUnderscoreEscapedMap(),s=!1),y){var A=r(n,!c,v,_,O(d.body)),D=u();if(e.some(D)){R=e.convertToFunctionBody(A);S=e.updateBlock(R,e.setTextRange(e.createNodeArray(e.concatenate(D,R.statements)),R.statements))}else S=A}else{var k=[],N=e.addPrologue(k,d.body.statements,!1,E);k.push(e.createReturn(r(n,!c,v,_,O(d.body,N)))),e.insertStatementsAfterStandardPrologue(k,u());var I=f>=2&&6144&p.getNodeCheckFlags(d);if(I&&(0==(1&a)&&(a|=1,n.enableSubstitution(195),n.enableSubstitution(193),n.enableSubstitution(194),n.enableEmitNotification(244),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(161),n.enableEmitNotification(224)),e.hasEntries(o))){var M=t(p,d,o);g[e.getNodeId(M)]=!0,e.insertStatementsAfterStandardPrologue(k,[M])}var R=e.createBlock(k,!0);e.setTextRange(R,d.body),I&&s&&(4096&p.getNodeCheckFlags(d)?e.addEmitHelper(R,e.advancedAsyncSuperHelper):2048&p.getNodeCheckFlags(d)&&e.addEmitHelper(R,e.asyncSuperHelper)),S=R}return i=h,y||(o=x,s=L),S}function O(n,t){return e.isBlock(n)?e.updateBlock(n,e.visitNodes(n.statements,T,e.isStatement,t)):e.convertToFunctionBody(e.visitNode(n,T,e.isConciseBody))}function R(n){return 101===n.expression.kind?e.setTextRange(e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),n.name),n):n}function P(n){return 101===n.expression.kind?(t=n.argumentExpression,r=n,4096&_?e.setTextRange(e.createPropertyAccess(e.createCall(e.createFileLevelUniqueName(\"_superIndex\"),void 0,[t]),\"value\"),r):e.setTextRange(e.createCall(e.createFileLevelUniqueName(\"_superIndex\"),void 0,[t]),r)):n;var t,r}},e.createSuperAccessVariableStatement=t,e.awaiterHelper={name:\"typescript:awaiter\",importName:\"__awaiter\",scoped:!1,priority:5,text:'\\n            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\\n                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\n                return new (P || (P = Promise))(function (resolve, reject) {\\n                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\n                    function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\\n                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\n                    step((generator = generator.apply(thisArg, _arguments || [])).next());\\n                });\\n            };'},e.asyncSuperHelper={name:\"typescript:async-super\",scoped:!0,text:e.helperString(__makeTemplateObject([\"\\n            const \",\" = name => super[name];\"],[\"\\n            const \",\" = name => super[name];\"]),\"_superIndex\")},e.advancedAsyncSuperHelper={name:\"typescript:advanced-async-super\",scoped:!0,text:e.helperString(__makeTemplateObject([\"\\n            const \",\" = (function (geti, seti) {\\n                const cache = Object.create(null);\\n                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\\n            })(name => super[name], (name, value) => super[name] = value);\"],[\"\\n            const \",\" = (function (geti, seti) {\\n                const cache = Object.create(null);\\n                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\\n            })(name => super[name], (name, value) => super[name] = value);\"]),\"_superIndex\")}}(ts||(ts={})),function(e){var n;function t(n,t){return n.getCompilerOptions().target>=2?e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"assign\"),void 0,t):(n.requestEmitHelper(e.assignHelper),e.createCall(e.getUnscopedHelperName(\"__assign\"),void 0,t))}function r(n,t){return n.requestEmitHelper(e.awaitHelper),e.createCall(e.getUnscopedHelperName(\"__await\"),void 0,[t])}function a(n,t,r){return n.requestEmitHelper(e.asyncValues),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__asyncValues\"),void 0,[t]),r)}!function(e){e[e.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"}(n||(n={})),e.transformES2018=function(n){var i=n.resumeLexicalEnvironment,o=n.endLexicalEnvironment,s=n.hoistVariableDeclaration,c=n.getEmitResolver(),l=n.getCompilerOptions(),u=e.getEmitScriptTarget(l),d=n.onEmitNode;n.onEmitNode=function(n,t,r){if(1&m&&function(e){var n=e.kind;return 244===n||161===n||160===n||162===n||163===n}(t)){var a=6144&c.getNodeCheckFlags(t);if(a!==h){var i=h;return h=a,d(n,t,r),void(h=i)}}else if(m&&b[e.getNodeId(t)]){i=h;return h=0,d(n,t,r),void(h=i)}d(n,t,r)};var p=n.onSubstituteNode;n.onSubstituteNode=function(n,t){if(t=p(n,t),1===n&&h)return function(n){switch(n.kind){case 193:return B(n);case 194:return V(n);case 195:return function(n){var t=n.expression;if(e.isSuperProperty(t)){var r=e.isPropertyAccessExpression(t)?B(t):V(t);return e.createCall(e.createPropertyAccess(r,\"call\"),void 0,__spreadArrays([e.createThis()],n.arguments))}return n}(n)}return n}(t);return t};var m,f,_,g,y,v=!1,h=0,b=[];return e.chainBundle((function(t){if(t.isDeclarationFile)return t;v=!1,_=e.isEffectiveStrictModeSourceFile(t,l);var r=e.visitEachChild(t,E,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function E(e){return C(e,!1)}function T(e){return C(e,!0)}function S(e){if(125!==e.kind)return e}function x(e,n){if(_){_=!1;var t=e(n);return _=!0,t}return e(n)}function L(t){return e.visitEachChild(t,E,n)}function C(i,o){if(0==(16&i.transformFlags))return i;switch(i.kind){case 205:return function(t){if(2&f&&1&f)return e.setOriginalNode(e.setTextRange(e.createYield(r(n,e.visitNode(t.expression,E,e.isExpression))),t),t);return e.visitEachChild(t,E,n)}(i);case 211:return function(t){if(2&f&&1&f){if(t.asteriskToken){var i=e.visitNode(t.expression,E,e.isExpression);return e.setOriginalNode(e.setTextRange(e.createYield(r(n,e.updateYield(t,t.asteriskToken,function(n,t,r){return n.requestEmitHelper(e.awaitHelper),n.requestEmitHelper(e.asyncDelegator),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__asyncDelegator\"),void 0,[t]),r)}(n,a(n,i,i),i)))),t),t)}return e.setOriginalNode(e.setTextRange(e.createYield(k(t.expression?e.visitNode(t.expression,E,e.isExpression):e.createVoidZero())),t),t)}return e.visitEachChild(t,E,n)}(i);case 234:return function(t){if(2&f&&1&f)return e.updateReturn(t,k(t.expression?e.visitNode(t.expression,E,e.isExpression):e.createVoidZero()));return e.visitEachChild(t,E,n)}(i);case 237:return function(t){if(2&f){var r=e.unwrapInnermostStatementOfLabel(t);return 231===r.kind&&r.awaitModifier?D(r,t):e.restoreEnclosingLabel(e.visitEachChild(r,E,n),t)}return e.visitEachChild(t,E,n)}(i);case 192:return function(r){if(8192&r.transformFlags){var a=function(n){for(var t,r=[],a=0,i=n;a<i.length;a++){var o=i[a];if(281===o.kind){t&&(r.push(e.createObjectLiteral(t)),t=void 0);var s=o.expression;r.push(e.visitNode(s,E,e.isExpression))}else t=e.append(t,279===o.kind?e.createPropertyAssignment(o.name,e.visitNode(o.initializer,E,e.isExpression)):e.visitNode(o,E,e.isObjectLiteralElementLike))}t&&r.push(e.createObjectLiteral(t));return r}(r.properties);a.length&&192!==a[0].kind&&a.unshift(e.createObjectLiteral());var i=a[0];if(a.length>1){for(var o=1;o<a.length;o++)i=t(n,[i,a[o]]);return i}return t(n,a)}return e.visitEachChild(r,E,n)}(i);case 208:return function(t,r){if(e.isDestructuringAssignment(t)&&8192&t.left.transformFlags)return e.flattenDestructuringAssignment(t,E,n,1,!r);if(27===t.operatorToken.kind)return e.updateBinary(t,e.visitNode(t.left,T,e.isExpression),e.visitNode(t.right,r?T:E,e.isExpression));return e.visitEachChild(t,E,n)}(i,o);case 278:return function(t){if(t.variableDeclaration&&e.isBindingPattern(t.variableDeclaration.name)&&8192&t.variableDeclaration.name.transformFlags){var r=e.getGeneratedNameForNode(t.variableDeclaration.name),a=e.updateVariableDeclaration(t.variableDeclaration,t.variableDeclaration.name,void 0,r),i=e.flattenDestructuringBinding(a,E,n,1),o=e.visitNode(t.block,E,e.isBlock);return e.some(i)&&(o=e.updateBlock(o,__spreadArrays([e.createVariableStatement(void 0,i)],o.statements))),e.updateCatchClause(t,e.updateVariableDeclaration(t.variableDeclaration,r,void 0,void 0),o)}return e.visitEachChild(t,E,n)}(i);case 224:return function(t){if(e.hasModifier(t,1)){var r=v;v=!0;var a=e.visitEachChild(t,E,n);return v=r,a}return e.visitEachChild(t,E,n)}(i);case 241:return function(e){if(v){var n=v;v=!1;var t=A(e,!0);return v=n,t}return A(e,!1)}(i);case 231:return D(i,void 0);case 229:return function(n){return e.updateFor(n,e.visitNode(n.initializer,T,e.isForInitializer),e.visitNode(n.condition,E,e.isExpression),e.visitNode(n.incrementor,E,e.isExpression),e.visitNode(n.statement,E,e.isStatement))}(i);case 204:return function(t){return e.visitEachChild(t,T,n)}(i);case 161:return x(N,i);case 160:return x(O,i);case 162:return x(I,i);case 163:return x(M,i);case 243:return x(R,i);case 200:return x(P,i);case 201:return function(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateArrowFunction(t,t.modifiers,void 0,e.visitParameterList(t.parameters,E,n),void 0,t.equalsGreaterThanToken,F(t));return f=r,a}(i);case 155:return function(t){if(8192&t.transformFlags)return e.updateParameter(t,void 0,void 0,t.dotDotDotToken,e.getGeneratedNameForNode(t),void 0,void 0,e.visitNode(t.initializer,E,e.isExpression));return e.visitEachChild(t,E,n)}(i);case 225:return function(t){return e.visitEachChild(t,T,n)}(i);case 199:return function(t,r){return e.visitEachChild(t,r?T:E,n)}(i,o);case 193:return g&&e.isPropertyAccessExpression(i)&&101===i.expression.kind&&g.set(i.name.escapedText,!0),e.visitEachChild(i,E,n);case 194:return g&&101===i.expression.kind&&(y=!0),e.visitEachChild(i,E,n);case 244:case 213:return x(L,i);default:return e.visitEachChild(i,E,n)}}function A(t,r){return e.isBindingPattern(t.name)&&8192&t.name.transformFlags?e.flattenDestructuringBinding(t,E,n,1,void 0,r):e.visitEachChild(t,E,n)}function D(t,r){return 8192&t.initializer.transformFlags&&(t=function(n){var t=e.skipParentheses(n.initializer);if(e.isVariableDeclarationList(t)||e.isAssignmentPattern(t)){var r=void 0,a=void 0,i=e.createTempVariable(void 0),o=[e.createForOfBindingStatement(t,i)];return e.isBlock(n.statement)?(e.addRange(o,n.statement.statements),r=n.statement,a=n.statement.statements):n.statement&&(e.append(o,n.statement),r=n.statement,a=n.statement),e.updateForOf(n,n.awaitModifier,e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(i),n.initializer)],1),n.initializer),n.expression,e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(o),a),!0),r))}return n}(t)),t.awaitModifier?function(t,r){var i=e.visitNode(t.expression,E,e.isExpression),o=e.isIdentifier(i)?e.getGeneratedNameForNode(i):e.createTempVariable(void 0),c=e.isIdentifier(i)?e.getGeneratedNameForNode(o):e.createTempVariable(void 0),l=e.createUniqueName(\"e\"),u=e.getGeneratedNameForNode(l),d=e.createTempVariable(void 0),p=a(n,i,t.expression),m=e.createCall(e.createPropertyAccess(o,\"next\"),void 0,[]),f=e.createPropertyAccess(c,\"done\"),_=e.createPropertyAccess(c,\"value\"),g=e.createFunctionCall(d,o,[]);s(l),s(d);var y=e.setEmitFlags(e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(o,void 0,p),t.expression),e.createVariableDeclaration(c)]),t.expression),2097152),e.createComma(e.createAssignment(c,k(m)),e.createLogicalNot(f)),void 0,function(n,t){var r,a,i=e.createForOfBindingStatement(n.initializer,t),o=[e.visitNode(i,E,e.isStatement)],s=e.visitNode(n.statement,E,e.isStatement);e.isBlock(s)?(e.addRange(o,s.statements),r=s,a=s.statements):o.push(s);return e.setEmitFlags(e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(o),a),!0),r),432)}(t,_)),t),256);return e.createTry(e.createBlock([e.restoreEnclosingLabel(y,r)]),e.createCatchClause(e.createVariableDeclaration(u),e.setEmitFlags(e.createBlock([e.createExpressionStatement(e.createAssignment(l,e.createObjectLiteral([e.createPropertyAssignment(\"error\",u)])))]),1)),e.createBlock([e.createTry(e.createBlock([e.setEmitFlags(e.createIf(e.createLogicalAnd(e.createLogicalAnd(c,e.createLogicalNot(f)),e.createAssignment(d,e.createPropertyAccess(o,\"return\"))),e.createExpressionStatement(k(g))),1)]),void 0,e.setEmitFlags(e.createBlock([e.setEmitFlags(e.createIf(l,e.createThrow(e.createPropertyAccess(l,\"error\"))),1)]),1))]))}(t,r):e.restoreEnclosingLabel(e.visitEachChild(t,E,n),r)}function k(t){return 1&f?e.createYield(void 0,r(n,t)):e.createAwait(t)}function N(t){var r=f;f=0;var a=e.updateConstructor(t,void 0,t.modifiers,e.visitParameterList(t.parameters,E,n),F(t));return f=r,a}function I(t){var r=f;f=0;var a=e.updateGetAccessor(t,void 0,t.modifiers,e.visitNode(t.name,E,e.isPropertyName),e.visitParameterList(t.parameters,E,n),void 0,F(t));return f=r,a}function M(t){var r=f;f=0;var a=e.updateSetAccessor(t,void 0,t.modifiers,e.visitNode(t.name,E,e.isPropertyName),e.visitParameterList(t.parameters,E,n),F(t));return f=r,a}function O(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateMethod(t,void 0,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,e.visitNode(t.name,E,e.isPropertyName),e.visitNode(void 0,E,e.isToken),void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function R(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateFunctionDeclaration(t,void 0,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function P(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateFunctionExpression(t,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function w(t){i();var r=[],a=e.addPrologue(r,t.body.statements,!1,E);G(r,t);var s=g,l=y;g=e.createUnderscoreEscapedMap(),y=!1;var d=e.createReturn(function(n,t,r){return n.requestEmitHelper(e.awaitHelper),n.requestEmitHelper(e.asyncGeneratorHelper),(t.emitNode||(t.emitNode={})).flags|=262144,e.createCall(e.getUnscopedHelperName(\"__asyncGenerator\"),void 0,[r?e.createThis():e.createVoidZero(),e.createIdentifier(\"arguments\"),t])}(n,e.createFunctionExpression(void 0,e.createToken(41),t.name&&e.getGeneratedNameForNode(t.name),void 0,[],void 0,e.updateBlock(t.body,e.visitLexicalEnvironment(t.body.statements,E,n,a))),!_)),p=u>=2&&6144&c.getNodeCheckFlags(t);if(p){0==(1&m)&&(m|=1,n.enableSubstitution(195),n.enableSubstitution(193),n.enableSubstitution(194),n.enableEmitNotification(244),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(161),n.enableEmitNotification(224));var f=e.createSuperAccessVariableStatement(c,t,g);b[e.getNodeId(f)]=!0,e.insertStatementsAfterStandardPrologue(r,[f])}r.push(d),e.insertStatementsAfterStandardPrologue(r,o());var v=e.updateBlock(t.body,r);return p&&y&&(4096&c.getNodeCheckFlags(t)?e.addEmitHelper(v,e.advancedAsyncSuperHelper):2048&c.getNodeCheckFlags(t)&&e.addEmitHelper(v,e.asyncSuperHelper)),g=s,y=l,v}function F(n){i();var t=0,r=[],a=e.visitNode(n.body,E,e.isConciseBody);e.isBlock(a)&&(t=e.addPrologue(r,a.statements,!1,E)),e.addRange(r,G(void 0,n));var s=o();if(t>0||e.some(r)||e.some(s)){var c=e.convertToFunctionBody(a,!0);return e.insertStatementsAfterStandardPrologue(r,s),e.addRange(r,c.statements.slice(t)),e.updateBlock(c,e.setTextRange(e.createNodeArray(r),c.statements))}return a}function G(t,r){for(var a=0,i=r.parameters;a<i.length;a++){var o=i[a];if(8192&o.transformFlags){var s=e.getGeneratedNameForNode(o),c=e.flattenDestructuringBinding(o,E,n,1,s,!1,!0);if(e.some(c)){var l=e.createVariableStatement(void 0,e.createVariableDeclarationList(c));e.setEmitFlags(l,1048576),t=e.append(t,l)}}}return t}function B(n){return 101===n.expression.kind?e.setTextRange(e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),n.name),n):n}function V(n){return 101===n.expression.kind?(t=n.argumentExpression,r=n,4096&h?e.setTextRange(e.createPropertyAccess(e.createCall(e.createIdentifier(\"_superIndex\"),void 0,[t]),\"value\"),r):e.setTextRange(e.createCall(e.createIdentifier(\"_superIndex\"),void 0,[t]),r)):n;var t,r}},e.assignHelper={name:\"typescript:assign\",importName:\"__assign\",scoped:!1,priority:1,text:\"\\n            var __assign = (this && this.__assign) || function () {\\n                __assign = Object.assign || function(t) {\\n                    for (var s, i = 1, n = arguments.length; i < n; i++) {\\n                        s = arguments[i];\\n                        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\\n                            t[p] = s[p];\\n                    }\\n                    return t;\\n                };\\n                return __assign.apply(this, arguments);\\n            };\"},e.createAssignHelper=t,e.awaitHelper={name:\"typescript:await\",importName:\"__await\",scoped:!1,text:\"\\n            var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\"},e.asyncGeneratorHelper={name:\"typescript:asyncGenerator\",importName:\"__asyncGenerator\",scoped:!1,text:'\\n            var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\\n                var g = generator.apply(thisArg, _arguments || []), i, q = [];\\n                return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\n                function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\n                function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\n                function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\n                function fulfill(value) { resume(\"next\", value); }\\n                function reject(value) { resume(\"throw\", value); }\\n                function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\n            };'},e.asyncDelegator={name:\"typescript:asyncDelegator\",importName:\"__asyncDelegator\",scoped:!1,text:'\\n            var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\\n                var i, p;\\n                return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\\n                function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\\n            };'},e.asyncValues={name:\"typescript:asyncValues\",importName:\"__asyncValues\",scoped:!1,text:'\\n            var __asyncValues = (this && this.__asyncValues) || function (o) {\\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\\n                var m = o[Symbol.asyncIterator], i;\\n                return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\n                function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\n                function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\n            };'}}(ts||(ts={})),function(e){e.transformES2019=function(n){return e.chainBundle((function(r){if(r.isDeclarationFile)return r;return e.visitEachChild(r,t,n)}));function t(r){if(0==(8&r.transformFlags))return r;switch(r.kind){case 278:return function(r){if(!r.variableDeclaration)return e.updateCatchClause(r,e.createVariableDeclaration(e.createTempVariable(void 0)),e.visitNode(r.block,t,e.isBlock));return e.visitEachChild(r,t,n)}(r);default:return e.visitEachChild(r,t,n)}}}}(ts||(ts={})),function(e){e.transformESNext=function(n){var t=n.hoistVariableDeclaration;return e.chainBundle((function(t){if(t.isDeclarationFile)return t;return e.visitEachChild(t,r,n)}));function r(a){if(0==(4&a.transformFlags))return a;switch(a.kind){case 193:case 194:case 195:if(32&a.flags){var o=i(a,!1);return e.Debug.assertNotNode(o,e.isSyntheticReference),o}return e.visitEachChild(a,r,n);case 208:return 60===a.operatorToken.kind?function(n){var a=[],i=e.visitNode(n.left,r,e.isExpression);if(!e.isIdentifier(i)){var o=e.createTempVariable(t);a.push(e.createAssignment(o,i)),i=o}return a.push(e.createParen(e.createConditional(function(n){return e.createBinary(e.createBinary(n,e.createToken(37),e.createNull()),e.createToken(55),e.createBinary(n,e.createToken(37),e.createVoidZero()))}(i),i,e.visitNode(n.right,r,e.isExpression)))),e.inlineExpressions(a)}(a):e.visitEachChild(a,r,n);default:return e.visitEachChild(a,r,n)}}function a(o,s){switch(o.kind){case 199:return function(n,t){var r=a(n.expression,t);return e.isSyntheticReference(r)?e.createSyntheticReferenceExpression(e.updateParen(n,r.expression),r.thisArg):e.updateParen(n,r)}(o,s);case 193:return function(n,a){if(e.isOptionalChain(n))return i(n,a);var o,s=e.visitNode(n.expression,r,e.isExpression);return e.Debug.assertNotNode(s,e.isSyntheticReference),a&&(o=e.createTempVariable(t),s=e.createParen(e.createAssignment(o,s))),s=e.updatePropertyAccess(n,s,e.visitNode(n.name,r,e.isIdentifier)),o?e.createSyntheticReferenceExpression(s,o):s}(o,s);case 194:return function(n,a){if(e.isOptionalChain(n))return i(n,a);var o,s=e.visitNode(n.expression,r,e.isExpression);return e.Debug.assertNotNode(s,e.isSyntheticReference),a&&(o=e.createTempVariable(t),s=e.createParen(e.createAssignment(o,s))),s=e.updateElementAccess(n,s,e.visitNode(n.argumentExpression,r,e.isExpression)),o?e.createSyntheticReferenceExpression(s,o):s}(o,s);case 195:return function(t,a){return e.isOptionalChain(t)?i(t,a):e.visitEachChild(t,r,n)}(o,s);default:return e.visitNode(o,r,e.isExpression)}}function i(n,i){for(var o,s=function(n){for(var t=[n];!n.questionDotToken&&!e.isTaggedTemplateExpression(n);)n=e.cast(n.expression,e.isOptionalChain),t.unshift(n);return{expression:n.expression,chain:t}}(n),c=s.expression,l=s.chain,u=a(c,e.isCallChain(l[0])),d=e.createTempVariable(t),p=e.isSyntheticReference(u)?u.thisArg:void 0,m=e.isSyntheticReference(u)?u.expression:u,f=d,_=0;_<l.length;_++){var g=l[_];switch(g.kind){case 193:_===l.length-1&&i&&(o=e.createTempVariable(t),f=e.createParen(e.createAssignment(o,f))),f=e.createPropertyAccess(f,e.visitNode(g.name,r,e.isIdentifier));break;case 194:_===l.length-1&&i&&(o=e.createTempVariable(t),f=e.createParen(e.createAssignment(o,f))),f=e.createElementAccess(f,e.visitNode(g.argumentExpression,r,e.isExpression));break;case 195:f=0===_&&p?e.createFunctionCall(f,p,e.visitNodes(g.arguments,r,e.isExpression)):e.createCall(f,void 0,e.visitNodes(g.arguments,r,e.isExpression))}e.setOriginalNode(f,g)}var y=e.createConditional(e.createLogicalOr(e.createStrictEquality(e.createAssignment(d,m),e.createNull()),e.createStrictEquality(d,e.createVoidZero())),e.createVoidZero(),f);return o?e.createSyntheticReferenceExpression(y,o):y}}}(ts||(ts={})),function(e){e.transformJsx=function(t){var r,a=t.getCompilerOptions();return e.chainBundle((function(n){if(n.isDeclarationFile)return n;r=n;var a=e.visitEachChild(n,i,t);return e.addEmitHelpers(a,t.readEmitHelpers()),a}));function i(n){return 2&n.transformFlags?function(n){switch(n.kind){case 264:return s(n,!1);case 265:return c(n,!1);case 268:return l(n,!1);case 274:return _(n);default:return e.visitEachChild(n,i,t)}}(n):n}function o(n){switch(n.kind){case 11:return function(n){var t=function(n){for(var t,r=0,a=-1,i=0;i<n.length;i++){var o=n.charCodeAt(i);e.isLineBreak(o)?(-1!==r&&-1!==a&&(t=m(t,n.substr(r,a-r+1))),r=-1):e.isWhiteSpaceSingleLine(o)||(a=i,-1===r&&(r=i))}return-1!==r?m(t,n.substr(r)):t}(n.text);return void 0===t?void 0:e.createLiteral(t)}(n);case 274:return _(n);case 264:return s(n,!0);case 265:return c(n,!0);case 268:return l(n,!0);default:return e.Debug.failBadSyntaxKind(n)}}function s(e,n){return u(e.openingElement,e.children,n,e)}function c(e,n){return u(e,void 0,n,e)}function l(n,i){return function(n,i,s,c){var l=e.createExpressionForJsxFragment(t.getEmitResolver().getJsxFactoryEntity(r),a.reactNamespace,e.mapDefined(i,o),n,c);s&&e.startOnNewLine(l);return l}(n.openingFragment,n.children,i,n)}function u(n,i,s,c){var l,u=function n(t){if(264===t.kind)return n(t.openingElement);var r=t.tagName;return e.isIdentifier(r)&&e.isIntrinsicJsxName(r.escapedText)?e.createLiteral(e.idText(r)):e.createExpressionFromEntityName(r)}(n),m=n.attributes.properties;if(0===m.length)l=e.createNull();else{var f=e.flatten(e.spanMap(m,e.isJsxSpreadAttribute,(function(n,t){return t?e.map(n,d):e.createObjectLiteral(e.map(n,p))})));e.isJsxSpreadAttribute(m[0])&&f.unshift(e.createObjectLiteral()),(l=e.singleOrUndefined(f))||(l=e.createAssignHelper(t,f))}var _=e.createExpressionForJsxElement(t.getEmitResolver().getJsxFactoryEntity(r),a.reactNamespace,u,l,e.mapDefined(i,o),n,c);return s&&e.startOnNewLine(_),_}function d(n){return e.visitNode(n.expression,i,e.isExpression)}function p(n){var t=function(n){var t=n.name,r=e.idText(t);return/^[A-Za-z_]\\w*$/.test(r)?t:e.createLiteral(r)}(n),a=function(n){if(void 0===n)return e.createTrue();if(10===n.kind){var t=e.createLiteral((a=n.text,((i=f(a))===a?void 0:i)||n.text));return t.singleQuote=void 0!==n.singleQuote?n.singleQuote:!e.isStringDoubleQuoted(n,r),e.setTextRange(t,n)}return 274===n.kind?void 0===n.expression?e.createTrue():_(n):e.Debug.failBadSyntaxKind(n);var a,i}(n.initializer);return e.createPropertyAssignment(t,a)}function m(e,n){var t=f(n);return void 0===e?t:e+\" \"+t}function f(e){return e.replace(/&((#((\\d+)|x([\\da-fA-F]+)))|(\\w+));/g,(function(e,t,r,a,i,o,s){if(i)return String.fromCharCode(parseInt(i,10));if(o)return String.fromCharCode(parseInt(o,16));var c=n.get(s);return c?String.fromCharCode(c):e}))}function _(n){return e.visitNode(n.expression,i,e.isExpression)}};var n=e.createMapFromTemplate({quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830})}(ts||(ts={})),function(e){e.transformES2016=function(n){var t=n.hoistVariableDeclaration;return e.chainBundle((function(t){if(t.isDeclarationFile)return t;return e.visitEachChild(t,r,n)}));function r(a){if(0==(64&a.transformFlags))return a;switch(a.kind){case 208:return function(a){switch(a.operatorToken.kind){case 66:return function(n){var a,i,o=e.visitNode(n.left,r,e.isExpression),s=e.visitNode(n.right,r,e.isExpression);if(e.isElementAccessExpression(o)){var c=e.createTempVariable(t),l=e.createTempVariable(t);a=e.setTextRange(e.createElementAccess(e.setTextRange(e.createAssignment(c,o.expression),o.expression),e.setTextRange(e.createAssignment(l,o.argumentExpression),o.argumentExpression)),o),i=e.setTextRange(e.createElementAccess(c,l),o)}else if(e.isPropertyAccessExpression(o)){c=e.createTempVariable(t);a=e.setTextRange(e.createPropertyAccess(e.setTextRange(e.createAssignment(c,o.expression),o.expression),o.name),o),i=e.setTextRange(e.createPropertyAccess(c,o.name),o)}else a=o,i=o;return e.setTextRange(e.createAssignment(a,e.createMathPow(i,s,n)),n)}(a);case 42:return function(n){var t=e.visitNode(n.left,r,e.isExpression),a=e.visitNode(n.right,r,e.isExpression);return e.createMathPow(t,a,n)}(a);default:return e.visitEachChild(a,r,n)}}(a);default:return e.visitEachChild(a,r,n)}}}}(ts||(ts={})),function(e){var n,t,r,a,i;!function(e){e[e.CapturedThis=1]=\"CapturedThis\",e[e.BlockScopedBindings=2]=\"BlockScopedBindings\"}(n||(n={})),function(e){e[e.Body=1]=\"Body\",e[e.Initializer=2]=\"Initializer\"}(t||(t={})),function(e){e[e.ToOriginal=0]=\"ToOriginal\",e[e.ToOutParameter=1]=\"ToOutParameter\"}(r||(r={})),function(e){e[e.Break=2]=\"Break\",e[e.Continue=4]=\"Continue\",e[e.Return=8]=\"Return\"}(a||(a={})),function(e){e[e.None=0]=\"None\",e[e.Function=1]=\"Function\",e[e.ArrowFunction=2]=\"ArrowFunction\",e[e.AsyncFunctionBody=4]=\"AsyncFunctionBody\",e[e.NonStaticClassElement=8]=\"NonStaticClassElement\",e[e.CapturesThis=16]=\"CapturesThis\",e[e.ExportedVariableStatement=32]=\"ExportedVariableStatement\",e[e.TopLevel=64]=\"TopLevel\",e[e.Block=128]=\"Block\",e[e.IterationStatement=256]=\"IterationStatement\",e[e.IterationStatementBlock=512]=\"IterationStatementBlock\",e[e.IterationContainer=1024]=\"IterationContainer\",e[e.ForStatement=2048]=\"ForStatement\",e[e.ForInOrForOfStatement=4096]=\"ForInOrForOfStatement\",e[e.ConstructorWithCapturedSuper=8192]=\"ConstructorWithCapturedSuper\",e[e.AncestorFactsMask=16383]=\"AncestorFactsMask\",e[e.BlockScopeIncludes=0]=\"BlockScopeIncludes\",e[e.BlockScopeExcludes=7104]=\"BlockScopeExcludes\",e[e.SourceFileIncludes=64]=\"SourceFileIncludes\",e[e.SourceFileExcludes=8064]=\"SourceFileExcludes\",e[e.FunctionIncludes=65]=\"FunctionIncludes\",e[e.FunctionExcludes=16286]=\"FunctionExcludes\",e[e.AsyncFunctionBodyIncludes=69]=\"AsyncFunctionBodyIncludes\",e[e.AsyncFunctionBodyExcludes=16278]=\"AsyncFunctionBodyExcludes\",e[e.ArrowFunctionIncludes=66]=\"ArrowFunctionIncludes\",e[e.ArrowFunctionExcludes=15232]=\"ArrowFunctionExcludes\",e[e.ConstructorIncludes=73]=\"ConstructorIncludes\",e[e.ConstructorExcludes=16278]=\"ConstructorExcludes\",e[e.DoOrWhileStatementIncludes=1280]=\"DoOrWhileStatementIncludes\",e[e.DoOrWhileStatementExcludes=0]=\"DoOrWhileStatementExcludes\",e[e.ForStatementIncludes=3328]=\"ForStatementIncludes\",e[e.ForStatementExcludes=5056]=\"ForStatementExcludes\",e[e.ForInOrForOfStatementIncludes=5376]=\"ForInOrForOfStatementIncludes\",e[e.ForInOrForOfStatementExcludes=3008]=\"ForInOrForOfStatementExcludes\",e[e.BlockIncludes=128]=\"BlockIncludes\",e[e.BlockExcludes=6976]=\"BlockExcludes\",e[e.IterationStatementBlockIncludes=512]=\"IterationStatementBlockIncludes\",e[e.IterationStatementBlockExcludes=7104]=\"IterationStatementBlockExcludes\",e[e.NewTarget=16384]=\"NewTarget\",e[e.CapturedLexicalThis=32768]=\"CapturedLexicalThis\",e[e.SubtreeFactsMask=-16384]=\"SubtreeFactsMask\",e[e.ArrowFunctionSubtreeExcludes=0]=\"ArrowFunctionSubtreeExcludes\",e[e.FunctionSubtreeExcludes=49152]=\"FunctionSubtreeExcludes\"}(i||(i={})),e.transformES2015=function(n){var t,r,a,i,o,s,c=n.startLexicalEnvironment,l=n.resumeLexicalEnvironment,u=n.endLexicalEnvironment,d=n.hoistVariableDeclaration,p=n.getCompilerOptions(),m=n.getEmitResolver(),f=n.onSubstituteNode,_=n.onEmitNode;return n.onEmitNode=function(n,t,r){if(1&s&&e.isFunctionLike(t)){var a=g(16286,8&e.getEmitFlags(t)?81:65);return _(n,t,r),void y(a,0,0)}_(n,t,r)},n.onSubstituteNode=function(n,t){if(t=f(n,t),1===n)return function(n){switch(n.kind){case 75:return function(n){if(2&s&&!e.isInternalName(n)){var t=m.getReferencedDeclarationWithCollidingName(n);if(t&&(!e.isClassLike(t)||!function(n,t){var r=e.getParseTreeNode(t);if(!r||r===n||r.end<=n.pos||r.pos>=n.end)return!1;var a=e.getEnclosingBlockScopeContainer(n);for(;r;){if(r===a||r===n)return!1;if(e.isClassElement(r)&&r.parent===n)return!0;r=r.parent}return!1}(t,n)))return e.setTextRange(e.getGeneratedNameForNode(e.getNameOfDeclaration(t)),n)}return n}(n);case 103:return function(n){if(1&s&&16&a)return e.setTextRange(e.createFileLevelUniqueName(\"_this\"),n);return n}(n)}return n}(t);if(e.isIdentifier(t))return function(n){if(2&s&&!e.isInternalName(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t&&function(e){switch(e.parent.kind){case 190:case 244:case 247:case 241:return e.parent.name===e&&m.isDeclarationWithCollidingName(e.parent)}return!1}(t))return e.setTextRange(e.getGeneratedNameForNode(t),n)}return n}(t);return t},e.chainBundle((function(o){if(o.isDeclarationFile)return o;t=o,r=o.text;var s=function(n){var t=g(8064,64),r=[],a=[];c();var o=e.addStandardPrologue(r,n.statements,!1);o=e.addCustomPrologue(r,n.statements,o,h),e.addRange(a,e.visitNodes(n.statements,h,e.isStatement,o)),i&&a.push(e.createVariableStatement(void 0,e.createVariableDeclarationList(i)));return e.mergeLexicalEnvironment(r,u()),N(r,n),y(t,0,0),e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray(e.concatenate(r,a)),n.statements))}(o);return e.addEmitHelpers(s,n.readEmitHelpers()),t=void 0,r=void 0,i=void 0,a=0,s}));function g(e,n){var t=a;return a=16383&(a&~e|n),t}function y(e,n,t){a=-16384&(a&~n|t)|e}function v(e){return 0!=(8192&a)&&234===e.kind&&!e.expression}function h(r){return function(n){return 0!=(128&n.transformFlags)||void 0!==o||8192&a&&(e.isStatement(n)||222===n.kind)||e.isIterationStatement(n,!1)&&re(n)||0!=(33554432&e.getEmitFlags(n))}(r)?function(r){switch(r.kind){case 119:return;case 244:return function(n){var t=e.createVariableDeclaration(e.getLocalName(n,!0),void 0,T(n));e.setOriginalNode(t,n);var r=[],a=e.createVariableStatement(void 0,e.createVariableDeclarationList([t]));if(e.setOriginalNode(a,n),e.setTextRange(a,n),e.startOnNewLine(a),r.push(a),e.hasModifier(n,1)){var i=e.hasModifier(n,512)?e.createExportDefault(e.getLocalName(n)):e.createExternalModuleExport(e.getLocalName(n));e.setOriginalNode(i,a),r.push(i)}var o=e.getEmitFlags(n);0==(4194304&o)&&(r.push(e.createEndOfDeclarationMarker(n)),e.setEmitFlags(a,4194304|o));return e.singleOrMany(r)}(r);case 213:return function(e){return T(e)}(r);case 155:return function(n){return n.dotDotDotToken?void 0:e.isBindingPattern(n.name)?e.setOriginalNode(e.setTextRange(e.createParameter(void 0,void 0,void 0,e.getGeneratedNameForNode(n),void 0,void 0,void 0),n),n):n.initializer?e.setOriginalNode(e.setTextRange(e.createParameter(void 0,void 0,void 0,n.name,void 0,void 0,void 0),n),n):n}(r);case 243:return function(t){var r=o;o=void 0;var i=g(16286,65),s=e.visitParameterList(t.parameters,h,n),c=G(t),l=16384&a?e.getLocalName(t):t.name;return y(i,49152,0),o=r,e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,h,e.isModifier),t.asteriskToken,l,void 0,s,void 0,c)}(r);case 201:return function(t){2048&t.transformFlags&&(a|=32768);var r=o;o=void 0;var i=g(15232,66),s=e.createFunctionExpression(void 0,void 0,void 0,void 0,e.visitParameterList(t.parameters,h,n),void 0,G(t));e.setTextRange(s,t),e.setOriginalNode(s,t),e.setEmitFlags(s,8),32768&a&&Ae();return y(i,0,0),o=r,s}(r);case 200:return function(t){var r=262144&e.getEmitFlags(t)?g(16278,69):g(16286,65),i=o;o=void 0;var s=e.visitParameterList(t.parameters,h,n),c=G(t),l=16384&a?e.getLocalName(t):t.name;return y(r,49152,0),o=i,e.updateFunctionExpression(t,void 0,t.asteriskToken,l,void 0,s,void 0,c)}(r);case 241:return j(r);case 75:return function(n){if(!o)return n;if(e.isGeneratedIdentifier(n))return n;if(\"arguments\"!==n.escapedText||!m.isArgumentsLocalBinding(n))return n;return o.argumentsName||(o.argumentsName=e.createUniqueName(\"arguments\"))}(r);case 242:return function(t){if(3&t.flags||65536&t.transformFlags){3&t.flags&&Ce();var r=e.flatMap(t.declarations,1&t.flags?U:j),a=e.createVariableDeclarationList(r);return e.setOriginalNode(a,t),e.setTextRange(a,t),e.setCommentRange(a,t),65536&t.transformFlags&&(e.isBindingPattern(t.declarations[0].name)||e.isBindingPattern(e.last(t.declarations).name))&&e.setSourceMapRange(a,function(n){for(var t=-1,r=-1,a=0,i=n;a<i.length;a++){var o=i[a];t=-1===t?o.pos:-1===o.pos?t:Math.min(t,o.pos),r=Math.max(r,o.end)}return e.createRange(t,r)}(r)),a}return e.visitEachChild(t,h,n)}(r);case 236:return function(t){if(void 0!==o){var r=o.allowedNonLabeledJumps;o.allowedNonLabeledJumps|=2;var a=e.visitEachChild(t,h,n);return o.allowedNonLabeledJumps=r,a}return e.visitEachChild(t,h,n)}(r);case 250:return function(t){var r=g(7104,0),a=e.visitEachChild(t,h,n);return y(r,0,0),a}(r);case 222:return function(t,r){if(r)return e.visitEachChild(t,h,n);var i=256&a?g(7104,512):g(6976,128),o=e.visitEachChild(t,h,n);return y(i,0,0),o}(r,!1);case 233:case 232:return function(t){if(o){var r=233===t.kind?2:4;if(!(t.label&&o.labels&&o.labels.get(e.idText(t.label))||!t.label&&o.allowedNonLabeledJumps&r)){var a=void 0,i=t.label;i?233===t.kind?(a=\"break-\"+i.escapedText,ue(o,!0,e.idText(i),a)):(a=\"continue-\"+i.escapedText,ue(o,!1,e.idText(i),a)):233===t.kind?(o.nonLocalJumps|=2,a=\"break\"):(o.nonLocalJumps|=4,a=\"continue\");var s=e.createLiteral(a);if(o.loopOutParameters.length){for(var c=o.loopOutParameters,l=void 0,u=0;u<c.length;u++){var d=ce(c[u],1);l=0===u?d:e.createBinary(l,27,d)}s=e.createBinary(l,27,s)}return e.createReturn(s)}}return e.visitEachChild(t,h,n)}(r);case 237:return function(n){o&&!o.labels&&(o.labels=e.createMap());var t=e.unwrapInnermostStatementOfLabel(n,o&&K);return e.isIterationStatement(t,!1)?function(e,n){switch(e.kind){case 227:case 228:return z(e,n);case 229:return q(e,n);case 230:return J(e,n);case 231:return X(e,n)}}(t,n):e.restoreEnclosingLabel(e.visitNode(t,h,e.isStatement,e.liftToBlock),n,o&&H)}(r);case 227:case 228:return z(r,void 0);case 229:return q(r,void 0);case 230:return J(r,void 0);case 231:return X(r,void 0);case 225:return function(t){switch(t.expression.kind){case 199:return e.updateExpressionStatement(t,B(t.expression,!1));case 208:return e.updateExpressionStatement(t,V(t.expression,!1))}return e.visitEachChild(t,h,n)}(r);case 192:return function(t){for(var r=t.properties,i=r.length,o=i,s=i,c=0;c<i;c++){var l=r[c];if(131072&l.transformFlags&&4&a&&c<s&&(s=c),153===l.name.kind){o=c;break}}if(o!==i){s<o&&(o=s);var u=e.createTempVariable(d),p=[],m=e.createAssignment(u,e.setEmitFlags(e.createObjectLiteral(e.visitNodes(r,h,e.isObjectLiteralElementLike,0,o),t.multiLine),65536));return t.multiLine&&e.startOnNewLine(m),p.push(m),function(n,t,r,a){for(var i=t.properties,o=i.length,s=a;s<o;s++){var c=i[s];switch(c.kind){case 162:case 163:var l=e.getAllAccessorDeclarations(t.properties,c);c===l.firstAccessor&&n.push(w(r,l,t,!!t.multiLine));break;case 160:n.push(_e(c,r,t,t.multiLine));break;case 279:n.push(me(c,r,t.multiLine));break;case 280:n.push(fe(c,r,t.multiLine));break;default:e.Debug.failBadSyntaxKind(t)}}}(p,t,u,o),p.push(t.multiLine?e.startOnNewLine(e.getMutableClone(u)):u),e.inlineExpressions(p)}return e.visitEachChild(t,h,n)}(r);case 278:return function(t){var r,a=g(7104,0);if(e.Debug.assert(!!t.variableDeclaration,\"Catch clause variable should always be present when downleveling ES2015.\"),e.isBindingPattern(t.variableDeclaration.name)){var i=e.createTempVariable(void 0),o=e.createVariableDeclaration(i);e.setTextRange(o,t.variableDeclaration);var s=e.flattenDestructuringBinding(t.variableDeclaration,h,n,0,i),c=e.createVariableDeclarationList(s);e.setTextRange(c,t.variableDeclaration);var l=e.createVariableStatement(void 0,c);r=e.updateCatchClause(t,o,(u=t.block,d=l,p=e.visitNodes(u.statements,h,e.isStatement),e.updateBlock(u,__spreadArrays([d],p))))}else r=e.visitEachChild(t,h,n);var u,d,p;return y(a,0,0),r}(r);case 280:return function(n){return e.setTextRange(e.createPropertyAssignment(n.name,e.getSynthesizedClone(n.name)),n)}(r);case 153:return function(t){return e.visitEachChild(t,h,n)}(r);case 191:return function(t){if(e.some(t.elements,e.isSpreadElement))return ye(t.elements,!0,!!t.multiLine,!!t.elements.hasTrailingComma);return e.visitEachChild(t,h,n)}(r);case 195:return function(n){if(33554432&e.getEmitFlags(n))return function(n){var t=e.cast(e.cast(e.skipOuterExpressions(n.expression),e.isArrowFunction).body,e.isBlock),r=function(n){return e.isVariableStatement(n)&&!!e.first(n.declarationList.declarations).initializer},a=e.visitNodes(t.statements,h,e.isStatement),i=e.filter(a,r),o=e.filter(a,(function(e){return!r(e)})),s=e.cast(e.first(i),e.isVariableStatement).declarationList.declarations[0],c=e.skipOuterExpressions(s.initializer),l=e.tryCast(c,e.isAssignmentExpression),u=e.cast(l?e.skipOuterExpressions(l.right):c,e.isCallExpression),d=e.cast(e.skipOuterExpressions(u.expression),e.isFunctionExpression),p=d.body.statements,m=0,f=-1,_=[];if(l){var g=e.tryCast(p[m],e.isExpressionStatement);g&&(_.push(g),m++),_.push(p[m]),m++,_.push(e.createExpressionStatement(e.createAssignment(l.left,e.cast(s.name,e.isIdentifier))))}for(;!e.isReturnStatement(e.elementAt(p,f));)f--;e.addRange(_,p,m,f),f<-1&&e.addRange(_,p,f+1);return e.addRange(_,o),e.addRange(_,i,1),e.recreateOuterExpressions(n.expression,e.recreateOuterExpressions(s.initializer,e.recreateOuterExpressions(l&&l.right,e.updateCall(u,e.recreateOuterExpressions(u.expression,e.updateFunctionExpression(d,void 0,void 0,void 0,void 0,d.parameters,void 0,e.updateBlock(d.body,_))),void 0,u.arguments))))}(n);var t=e.skipOuterExpressions(n.expression);if(101===t.kind||e.isSuperProperty(t)||e.some(n.arguments,e.isSpreadElement))return ge(n,!0);return e.updateCall(n,e.visitNode(n.expression,b,e.isExpression),void 0,e.visitNodes(n.arguments,h,e.isExpression))}(r);case 196:return function(t){if(e.some(t.arguments,e.isSpreadElement)){var r=e.createCallBinding(e.createPropertyAccess(t.expression,\"bind\"),d),a=r.target,i=r.thisArg;return e.createNew(e.createFunctionApply(e.visitNode(a,h,e.isExpression),i,ye(e.createNodeArray(__spreadArrays([e.createVoidZero()],t.arguments)),!1,!1,!1)),void 0,[])}return e.visitEachChild(t,h,n)}(r);case 199:return B(r,!0);case 208:return V(r,!0);case 14:case 15:case 16:case 17:return function(n){return e.setTextRange(e.createLiteral(n.text),n)}(r);case 10:return function(n){if(n.hasExtendedUnicodeEscape)return e.setTextRange(e.createLiteral(n.text),n);return n}(r);case 8:return function(n){if(384&n.numericLiteralFlags)return e.setTextRange(e.createNumericLiteral(n.text),n);return n}(r);case 197:return function(r){var a=e.visitNode(r.tag,h,e.isExpression),o=[void 0],s=[],c=[],l=r.template;if(e.isNoSubstitutionTemplateLiteral(l))s.push(e.createLiteral(l.text)),c.push(xe(l));else{s.push(e.createLiteral(l.head.text)),c.push(xe(l.head));for(var u=0,d=l.templateSpans;u<d.length;u++){var p=d[u];s.push(e.createLiteral(p.literal.text)),c.push(xe(p.literal)),o.push(e.visitNode(p.expression,h,e.isExpression))}}var m=function(n,t,r){return n.requestEmitHelper(e.templateObjectHelper),e.createCall(e.getUnscopedHelperName(\"__makeTemplateObject\"),void 0,[t,r])}(n,e.createArrayLiteral(s),e.createArrayLiteral(c));if(e.isExternalModule(t)){var f=e.createUniqueName(\"templateObject\");_=f,i=e.append(i,e.createVariableDeclaration(_)),o[0]=e.createLogicalOr(f,e.createAssignment(f,m))}else o[0]=m;var _;return e.createCall(a,void 0,o)}(r);case 210:return function(n){var t=[];(function(n,t){if(!function(n){return e.Debug.assert(0!==n.templateSpans.length),0!==n.head.text.length||0===n.templateSpans[0].literal.text.length}(t))return;n.push(e.createLiteral(t.head.text))})(t,n),function(n,t){for(var r=0,a=t.templateSpans;r<a.length;r++){var i=a[r];n.push(e.visitNode(i.expression,h,e.isExpression)),0!==i.literal.text.length&&n.push(e.createLiteral(i.literal.text))}}(t,n);var r=e.reduceLeft(t,e.createAdd);e.nodeIsSynthesized(r)&&(r.pos=n.pos,r.end=n.end);return r}(r);case 211:return function(t){return e.visitEachChild(t,h,n)}(r);case 212:return function(n){return e.visitNode(n.expression,h,e.isExpression)}(r);case 101:return Le(!1);case 103:return function(n){2&a&&(a|=32768);if(o)return 2&a?(o.containsLexicalThis=!0,n):o.thisName||(o.thisName=e.createUniqueName(\"this\"));return n}(r);case 218:return function(n){if(98===n.keywordToken&&\"target\"===n.name.escapedText)return a|=16384,e.createFileLevelUniqueName(\"_newTarget\");return n}(r);case 160:return function(n){e.Debug.assert(!e.isComputedPropertyName(n.name));var t=F(n,e.moveRangePos(n,-1),void 0,void 0);return e.setEmitFlags(t,512|e.getEmitFlags(t)),e.setTextRange(e.createPropertyAssignment(n.name,t),n)}(r);case 162:case 163:return function(t){e.Debug.assert(!e.isComputedPropertyName(t.name));var r=o;o=void 0;var a,i=g(16286,65),s=e.visitParameterList(t.parameters,h,n),c=G(t);a=162===t.kind?e.updateGetAccessor(t,t.decorators,t.modifiers,t.name,s,t.type,c):e.updateSetAccessor(t,t.decorators,t.modifiers,t.name,s,c);return y(i,49152,0),o=r,a}(r);case 224:return function(t){var r,a=g(0,e.hasModifier(t,1)?32:0);if(o&&0==(3&t.declarationList.flags)){for(var i=void 0,s=0,c=t.declarationList.declarations;s<c.length;s++){var l=c[s];if(ie(o,l),l.initializer){var u=void 0;e.isBindingPattern(l.name)?u=e.flattenDestructuringAssignment(l,h,n,0):(u=e.createBinary(l.name,62,e.visitNode(l.initializer,h,e.isExpression)),e.setTextRange(u,l)),i=e.append(i,u)}}r=i?e.setTextRange(e.createExpressionStatement(e.inlineExpressions(i)),t):void 0}else r=e.visitEachChild(t,h,n);return y(a,0,0),r}(r);case 234:return function(t){if(o)return o.nonLocalJumps|=8,v(t)&&(t=E(t)),e.createReturn(e.createObjectLiteral([e.createPropertyAssignment(e.createIdentifier(\"value\"),t.expression?e.visitNode(t.expression,h,e.isExpression):e.createVoidZero())]));if(v(t))return E(t);return e.visitEachChild(t,h,n)}(r);default:return e.visitEachChild(r,h,n)}}(r):r}function b(e){return 101===e.kind?Le(!0):h(e)}function E(n){return e.setOriginalNode(e.createReturn(e.createFileLevelUniqueName(\"_this\")),n)}function T(i){i.name&&Ce();var s=e.getClassExtendsHeritageElement(i),d=e.createFunctionExpression(void 0,void 0,void 0,void 0,s?[e.createParameter(void 0,void 0,void 0,e.createFileLevelUniqueName(\"_super\"))]:[],void 0,function(i,s){var d=[];c(),function(t,r,a){a&&t.push(e.setTextRange(e.createExpressionStatement(function(n,t){return n.requestEmitHelper(e.extendsHelper),e.createCall(e.getUnscopedHelperName(\"__extends\"),void 0,[t,e.createFileLevelUniqueName(\"_super\")])}(n,e.getInternalName(r))),a))}(d,i,s),function(t,r,i){var s=o;o=void 0;var c=g(16278,73),d=e.getFirstConstructorWithBody(r),p=function(n,t){if(!n||!t)return!1;if(e.some(n.parameters))return!1;var r=e.firstOrUndefined(n.body.statements);if(!r||!e.nodeIsSynthesized(r)||225!==r.kind)return!1;var a=r.expression;if(!e.nodeIsSynthesized(a)||195!==a.kind)return!1;var i=a.expression;if(!e.nodeIsSynthesized(i)||101!==i.kind)return!1;var o=e.singleOrUndefined(a.arguments);if(!o||!e.nodeIsSynthesized(o)||212!==o.kind)return!1;var s=o.expression;return e.isIdentifier(s)&&\"arguments\"===s.escapedText}(d,void 0!==i),m=e.createFunctionDeclaration(void 0,void 0,void 0,e.getInternalName(r),void 0,function(t,r){return e.visitParameterList(t&&!r?t.parameters:void 0,h,n)||[]}(d,p),void 0,function(n,t,r,i){var o=!!r&&99!==e.skipOuterExpressions(r.expression).kind;if(!n)return function(n,t){var r=[];l(),e.mergeLexicalEnvironment(r,u()),t&&r.push(e.createReturn(x()));var a=e.createNodeArray(r);e.setTextRange(a,n.members);var i=e.createBlock(a,!0);return e.setTextRange(i,n),e.setEmitFlags(i,1536),i}(t,o);var s=[],c=[];l();var d,p=0;i||(p=e.addStandardPrologue(s,n.body.statements,!1));C(c,n),k(c,n,i),i||(p=e.addCustomPrologue(c,n.body.statements,p,h));if(i)d=x();else if(o&&p<n.body.statements.length){var m=n.body.statements[p];e.isExpressionStatement(m)&&e.isSuperCall(m.expression)&&(d=function(e){return ge(e,!1)}(m.expression))}d&&(a|=8192,p++);if(e.addRange(c,e.visitNodes(n.body.statements,h,e.isStatement,p)),e.mergeLexicalEnvironment(s,u()),M(s,n,!1),o)if(!d||p!==n.body.statements.length||2048&n.body.transformFlags)I(c,n,d||S()),function n(t){if(234===t.kind)return!0;if(226===t.kind){var r=t;if(r.elseStatement)return n(r.thenStatement)&&n(r.elseStatement)}else if(222===t.kind){var a=e.lastOrUndefined(t.statements);if(a&&n(a))return!0}return!1}(n.body)||c.push(e.createReturn(e.createFileLevelUniqueName(\"_this\")));else{var f=e.cast(e.cast(d,e.isBinaryExpression).left,e.isCallExpression),_=e.createReturn(d);e.setCommentRange(_,e.getCommentRange(f)),e.setEmitFlags(f,1536),c.push(_)}else N(s,n);var g=e.createBlock(e.setTextRange(e.createNodeArray(e.concatenate(s,c)),n.body.statements),!0);return e.setTextRange(g,n.body),g}(d,r,i,p));e.setTextRange(m,d||r),i&&e.setEmitFlags(m,8);t.push(m),y(c,49152,0),o=s}(d,i,s),function(n,r){for(var a=0,i=r.members;a<i.length;a++){var o=i[a];switch(o.kind){case 221:n.push(O(o));break;case 160:n.push(R(De(r,o),o,r));break;case 162:case 163:var s=e.getAllAccessorDeclarations(r.members,o);o===s.firstAccessor&&n.push(P(De(r,o),s,r));break;case 161:break;default:e.Debug.failBadSyntaxKind(o,t&&t.fileName)}}}(d,i);var p=e.createTokenRange(e.skipTrivia(r,i.members.end),19),m=e.getInternalName(i),f=e.createPartiallyEmittedExpression(m);f.end=p.end,e.setEmitFlags(f,1536);var _=e.createReturn(f);_.pos=p.pos,e.setEmitFlags(_,1920),d.push(_),e.insertStatementsAfterStandardPrologue(d,u());var v=e.createBlock(e.setTextRange(e.createNodeArray(d),i.members),!0);return e.setEmitFlags(v,1536),v}(i,s));e.setEmitFlags(d,65536&e.getEmitFlags(i)|524288);var p=e.createPartiallyEmittedExpression(d);p.end=i.end,e.setEmitFlags(p,1536);var m=e.createPartiallyEmittedExpression(p);m.end=e.skipTrivia(r,i.pos),e.setEmitFlags(m,1536);var f=e.createParen(e.createCall(m,void 0,s?[e.visitNode(s.expression,h,e.isExpression)]:[]));return e.addSyntheticLeadingComment(f,3,\"* @class \"),f}function S(){return e.setEmitFlags(e.createThis(),4)}function x(){return e.createLogicalOr(e.createLogicalAnd(e.createStrictInequality(e.createFileLevelUniqueName(\"_super\"),e.createNull()),e.createFunctionApply(e.createFileLevelUniqueName(\"_super\"),S(),e.createIdentifier(\"arguments\"))),S())}function L(n){return void 0!==n.initializer||e.isBindingPattern(n.name)}function C(n,t){if(!e.some(t.parameters,L))return!1;for(var r=!1,a=0,i=t.parameters;a<i.length;a++){var o=i[a],s=o.name,c=o.initializer;o.dotDotDotToken||(e.isBindingPattern(s)?r=A(n,o,s,c)||r:c&&(D(n,o,s,c),r=!0))}return r}function A(t,r,a,i){return a.elements.length>0?(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(e.createVariableStatement(void 0,e.createVariableDeclarationList(e.flattenDestructuringBinding(r,h,n,0,e.getGeneratedNameForNode(r)))),1048576)),!0):!!i&&(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(e.createExpressionStatement(e.createAssignment(e.getGeneratedNameForNode(r),e.visitNode(i,h,e.isExpression))),1048576)),!0)}function D(n,t,r,a){a=e.visitNode(a,h,e.isExpression);var i=e.createIf(e.createTypeCheck(e.getSynthesizedClone(r),\"undefined\"),e.setEmitFlags(e.setTextRange(e.createBlock([e.createExpressionStatement(e.setEmitFlags(e.setTextRange(e.createAssignment(e.setEmitFlags(e.getMutableClone(r),48),e.setEmitFlags(a,1584|e.getEmitFlags(a))),t),1536))]),t),1953));e.startOnNewLine(i),e.setTextRange(i,t),e.setEmitFlags(i,1050528),e.insertStatementAfterCustomPrologue(n,i)}function k(t,r,a){var i=[],o=e.lastOrUndefined(r.parameters);if(!function(e,n){return!(!e||!e.dotDotDotToken||n)}(o,a))return!1;var s=75===o.name.kind?e.getMutableClone(o.name):e.createTempVariable(void 0);e.setEmitFlags(s,48);var c=75===o.name.kind?e.getSynthesizedClone(o.name):s,l=r.parameters.length-1,u=e.createLoopVariable();i.push(e.setEmitFlags(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(s,void 0,e.createArrayLiteral([]))])),o),1048576));var d=e.createFor(e.setTextRange(e.createVariableDeclarationList([e.createVariableDeclaration(u,void 0,e.createLiteral(l))]),o),e.setTextRange(e.createLessThan(u,e.createPropertyAccess(e.createIdentifier(\"arguments\"),\"length\")),o),e.setTextRange(e.createPostfixIncrement(u),o),e.createBlock([e.startOnNewLine(e.setTextRange(e.createExpressionStatement(e.createAssignment(e.createElementAccess(c,0===l?u:e.createSubtract(u,e.createLiteral(l))),e.createElementAccess(e.createIdentifier(\"arguments\"),u))),o))]));return e.setEmitFlags(d,1048576),e.startOnNewLine(d),i.push(d),75!==o.name.kind&&i.push(e.setEmitFlags(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList(e.flattenDestructuringBinding(o,h,n,0,c))),o),1048576)),e.insertStatementsAfterCustomPrologue(t,i),!0}function N(n,t){return!!(32768&a&&201!==t.kind)&&(I(n,t,e.createThis()),!0)}function I(n,t,r){Ae();var a=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_this\"),void 0,r)]));e.setEmitFlags(a,1050112),e.setSourceMapRange(a,t),e.insertStatementAfterCustomPrologue(n,a)}function M(n,t,r){if(16384&a){var i=void 0;switch(t.kind){case 201:return n;case 160:case 162:case 163:i=e.createVoidZero();break;case 161:i=e.createPropertyAccess(e.setEmitFlags(e.createThis(),4),\"constructor\");break;case 243:case 200:i=e.createConditional(e.createLogicalAnd(e.setEmitFlags(e.createThis(),4),e.createBinary(e.setEmitFlags(e.createThis(),4),97,e.getLocalName(t))),e.createPropertyAccess(e.setEmitFlags(e.createThis(),4),\"constructor\"),e.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(t)}var o=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_newTarget\"),void 0,i)]));e.setEmitFlags(o,1050112),r&&(n=n.slice()),e.insertStatementAfterCustomPrologue(n,o)}return n}function O(n){return e.setTextRange(e.createEmptyStatement(),n)}function R(t,r,a){var i,o=e.getCommentRange(r),s=e.getSourceMapRange(r),c=F(r,r,void 0,a);if(n.getCompilerOptions().useDefineForClassFields){var l=e.visitNode(r.name,h,e.isPropertyName),u=e.isComputedPropertyName(l)?l.expression:e.isIdentifier(l)?e.createStringLiteral(e.unescapeLeadingUnderscores(l.escapedText)):l;i=e.createObjectDefinePropertyCall(t,u,e.createPropertyDescriptor({value:c,enumerable:!1,writable:!0,configurable:!0}))}else{var d=e.createMemberAccessForPropertyName(t,e.visitNode(r.name,h,e.isPropertyName),r.name);i=e.createAssignment(d,c)}e.setEmitFlags(c,1536),e.setSourceMapRange(c,s);var p=e.setTextRange(e.createExpressionStatement(i),r);return e.setOriginalNode(p,r),e.setCommentRange(p,o),e.setEmitFlags(p,48),p}function P(n,t,r){var a=e.createExpressionStatement(w(n,t,r,!1));return e.setEmitFlags(a,1536),e.setSourceMapRange(a,e.getSourceMapRange(t.firstAccessor)),a}function w(n,t,r,a){var i=t.firstAccessor,o=t.getAccessor,s=t.setAccessor,c=e.getMutableClone(n);e.setEmitFlags(c,1568),e.setSourceMapRange(c,i.name);var l=e.createExpressionForPropertyName(e.visitNode(i.name,h,e.isPropertyName));e.setEmitFlags(l,1552),e.setSourceMapRange(l,i.name);var u=[];if(o){var d=F(o,void 0,void 0,r);e.setSourceMapRange(d,e.getSourceMapRange(o)),e.setEmitFlags(d,512);var p=e.createPropertyAssignment(\"get\",d);e.setCommentRange(p,e.getCommentRange(o)),u.push(p)}if(s){var m=F(s,void 0,void 0,r);e.setSourceMapRange(m,e.getSourceMapRange(s)),e.setEmitFlags(m,512);var f=e.createPropertyAssignment(\"set\",m);e.setCommentRange(f,e.getCommentRange(s)),u.push(f)}u.push(e.createPropertyAssignment(\"enumerable\",e.createTrue()),e.createPropertyAssignment(\"configurable\",e.createTrue()));var _=e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[c,l,e.createObjectLiteral(u,!0)]);return a&&e.startOnNewLine(_),_}function F(t,r,i,s){var c=o;o=void 0;var l=s&&e.isClassLike(s)&&!e.hasModifier(t,32)?g(16286,73):g(16286,65),u=e.visitParameterList(t.parameters,h,n),d=G(t);return 16384&a&&!i&&(243===t.kind||200===t.kind)&&(i=e.getGeneratedNameForNode(t)),y(l,49152,0),o=c,e.setOriginalNode(e.setTextRange(e.createFunctionExpression(void 0,t.asteriskToken,i,void 0,u,void 0,d),r),t)}function G(n){var r,a,i,o=!1,s=!1,c=[],d=[],p=n.body;if(l(),e.isBlock(p)&&(i=e.addStandardPrologue(c,p.statements,!1)),o=C(d,n)||o,o=k(d,n,!1)||o,e.isBlock(p))i=e.addCustomPrologue(d,p.statements,i,h),r=p.statements,e.addRange(d,e.visitNodes(p.statements,h,e.isStatement,i)),!o&&p.multiLine&&(o=!0);else{e.Debug.assert(201===n.kind),r=e.moveRangeEnd(p,-1);var m=n.equalsGreaterThanToken;e.nodeIsSynthesized(m)||e.nodeIsSynthesized(p)||(e.rangeEndIsOnSameLineAsRangeStart(m,p,t)?s=!0:o=!0);var f=e.visitNode(p,h,e.isExpression),_=e.createReturn(f);e.setTextRange(_,p),e.moveSyntheticComments(_,p),e.setEmitFlags(_,1440),d.push(_),a=p}if(e.mergeLexicalEnvironment(c,u()),M(c,n,!1),N(c,n),e.some(c)&&(o=!0),d.unshift.apply(d,c),e.isBlock(p)&&e.arrayIsEqualTo(d,p.statements))return p;var g=e.createBlock(e.setTextRange(e.createNodeArray(d),r),o);return e.setTextRange(g,n.body),!o&&s&&e.setEmitFlags(g,1),a&&e.setTokenSourceMapRange(g,19,a),e.setOriginalNode(g,n.body),g}function B(t,r){if(!r)switch(t.expression.kind){case 199:return e.updateParen(t,B(t.expression,!1));case 208:return e.updateParen(t,V(t.expression,!1))}return e.visitEachChild(t,h,n)}function V(t,r){return e.isDestructuringAssignment(t)?e.flattenDestructuringAssignment(t,h,n,0,r):e.visitEachChild(t,h,n)}function U(t){var r=t.name;if(e.isBindingPattern(r))return j(t);if(!t.initializer&&function(e){var n=m.getNodeCheckFlags(e),t=262144&n,r=524288&n;return!(0!=(64&a)||t&&r&&0!=(512&a))&&0==(4096&a)&&(!m.isDeclarationWithCollidingName(e)||r&&!t&&0==(6144&a))}(t)){var i=e.getMutableClone(t);return i.initializer=e.createVoidZero(),i}return e.visitEachChild(t,h,n)}function j(t){var r,a=g(32,0);return r=e.isBindingPattern(t.name)?e.flattenDestructuringBinding(t,h,n,0,void 0,0!=(32&a)):e.visitEachChild(t,h,n),y(a,0,0),r}function K(n){o.labels.set(e.idText(n.label),!0)}function H(n){o.labels.set(e.idText(n.label),!1)}function W(t,r,i,s,l){var d=g(t,r),p=function(t,r,i,s){if(!re(t)){var l=void 0;o&&(l=o.allowedNonLabeledJumps,o.allowedNonLabeledJumps=6);var d=s?s(t,r,void 0,i):e.restoreEnclosingLabel(e.visitEachChild(t,h,n),r,o&&H);return o&&(o.allowedNonLabeledJumps=l),d}var p=function(n){var t;switch(n.kind){case 229:case 230:case 231:var r=n.initializer;r&&242===r.kind&&(t=r)}var a=[],i=[];if(t&&3&e.getCombinedNodeFlags(t))for(var s=ne(n),c=0,l=t.declarations;c<l.length;c++){var u=l[c];pe(n,u,a,i,s)}var d={loopParameters:a,loopOutParameters:i};o&&(o.argumentsName&&(d.argumentsName=o.argumentsName),o.thisName&&(d.thisName=o.thisName),o.hoistedLocalVariables&&(d.hoistedLocalVariables=o.hoistedLocalVariables));return d}(t),m=[],f=o;o=p;var _,g=ne(t)?function(n,t){var r=e.createUniqueName(\"_loop_init\"),i=0!=(131072&n.initializer.transformFlags),o=0;t.containsLexicalThis&&(o|=8);i&&4&a&&(o|=262144);var s=[];s.push(e.createVariableStatement(void 0,n.initializer)),le(t.loopOutParameters,2,1,s);var c=e.createVariableStatement(void 0,e.setEmitFlags(e.createVariableDeclarationList([e.createVariableDeclaration(r,void 0,e.setEmitFlags(e.createFunctionExpression(void 0,i?e.createToken(41):void 0,void 0,void 0,void 0,void 0,e.visitNode(e.createBlock(s,!0),h,e.isBlock)),o))]),2097152)),l=e.createVariableDeclarationList(e.map(t.loopOutParameters,se));return{functionName:r,containsYield:i,functionDeclaration:c,part:l}}(t,p):void 0,y=ae(t)?function(n,t,r){var i=e.createUniqueName(\"_loop\");c();var o=e.visitNode(n.statement,h,e.isStatement,e.liftToBlock),s=u(),l=[];(te(n)||function(n){return e.isForStatement(n)&&!!n.incrementor&&ee(n.incrementor)}(n))&&(t.conditionVariable=e.createUniqueName(\"inc\"),l.push(e.createIf(t.conditionVariable,e.createStatement(e.visitNode(n.incrementor,h,e.isExpression)),e.createStatement(e.createAssignment(t.conditionVariable,e.createTrue())))),te(n)&&l.push(e.createIf(e.createPrefix(53,e.visitNode(n.condition,h,e.isExpression)),e.visitNode(e.createBreak(),h,e.isStatement))));e.isBlock(o)?e.addRange(l,o.statements):l.push(o);le(t.loopOutParameters,1,1,l),e.insertStatementsAfterStandardPrologue(l,s);var d=e.createBlock(l,!0);e.isBlock(o)&&e.setOriginalNode(d,o);var p=0!=(131072&n.statement.transformFlags),m=0;t.containsLexicalThis&&(m|=8);p&&0!=(4&a)&&(m|=262144);var f=e.createVariableStatement(void 0,e.setEmitFlags(e.createVariableDeclarationList([e.createVariableDeclaration(i,void 0,e.setEmitFlags(e.createFunctionExpression(void 0,p?e.createToken(41):void 0,void 0,void 0,t.loopParameters,void 0,d),m))]),2097152)),_=function(n,t,r,a){var i=[],o=!(-5&t.nonLocalJumps||t.labeledNonLocalBreaks||t.labeledNonLocalContinues),s=e.createCall(n,void 0,e.map(t.loopParameters,(function(e){return e.name}))),c=a?e.createYield(e.createToken(41),e.setEmitFlags(s,8388608)):s;if(o)i.push(e.createExpressionStatement(c)),le(t.loopOutParameters,1,0,i);else{var l=e.createUniqueName(\"state\"),u=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(l,void 0,c)]));if(i.push(u),le(t.loopOutParameters,1,0,i),8&t.nonLocalJumps){var d=void 0;r?(r.nonLocalJumps|=8,d=e.createReturn(l)):d=e.createReturn(e.createPropertyAccess(l,\"value\")),i.push(e.createIf(e.createBinary(e.createTypeOf(l),36,e.createLiteral(\"object\")),d))}if(2&t.nonLocalJumps&&i.push(e.createIf(e.createBinary(l,36,e.createLiteral(\"break\")),e.createBreak())),t.labeledNonLocalBreaks||t.labeledNonLocalContinues){var p=[];de(t.labeledNonLocalBreaks,!0,l,r,p),de(t.labeledNonLocalContinues,!1,l,r,p),i.push(e.createSwitch(l,e.createCaseBlock(p)))}}return i}(i,t,r,p);return{functionName:i,containsYield:p,functionDeclaration:f,part:_}}(t,p,f):void 0;o=f,g&&m.push(g.functionDeclaration);y&&m.push(y.functionDeclaration);(function(n,t,r){var a;t.argumentsName&&(r?r.argumentsName=t.argumentsName:(a||(a=[])).push(e.createVariableDeclaration(t.argumentsName,void 0,e.createIdentifier(\"arguments\"))));t.thisName&&(r?r.thisName=t.thisName:(a||(a=[])).push(e.createVariableDeclaration(t.thisName,void 0,e.createIdentifier(\"this\"))));if(t.hoistedLocalVariables)if(r)r.hoistedLocalVariables=t.hoistedLocalVariables;else{a||(a=[]);for(var i=0,o=t.hoistedLocalVariables;i<o.length;i++){var s=o[i];a.push(e.createVariableDeclaration(s))}}if(t.loopOutParameters.length){a||(a=[]);for(var c=0,l=t.loopOutParameters;c<l.length;c++){var u=l[c];a.push(e.createVariableDeclaration(u.outParamName))}}t.conditionVariable&&(a||(a=[]),a.push(e.createVariableDeclaration(t.conditionVariable,void 0,e.createFalse())));a&&n.push(e.createVariableStatement(void 0,e.createVariableDeclarationList(a)))})(m,p,f),g&&m.push((v=g.functionName,b=g.containsYield,E=e.createCall(v,void 0,[]),T=b?e.createYield(e.createToken(41),e.setEmitFlags(E,8388608)):E,e.createStatement(T)));var v,b,E,T;if(y)if(s)_=s(t,r,y.part,i);else{var S=oe(t,g,e.createBlock(y.part,!0));e.aggregateTransformFlags(S),_=e.restoreEnclosingLabel(S,r,o&&H)}else{var x=oe(t,g,e.visitNode(t.statement,h,e.isStatement,e.liftToBlock));e.aggregateTransformFlags(x),_=e.restoreEnclosingLabel(x,r,o&&H)}return m.push(_),m}(i,s,d,l);return y(d,0,0),p}function z(e,n){return W(0,1280,e,n)}function q(e,n){return W(5056,3328,e,n)}function J(e,n){return W(3008,5376,e,n)}function X(e,n){return W(3008,5376,e,n,p.downlevelIteration?$:Z)}function Y(t,r,a){var i=[],o=t.initializer;if(e.isVariableDeclarationList(o)){3&t.initializer.flags&&Ce();var s=e.firstOrUndefined(o.declarations);if(s&&e.isBindingPattern(s.name)){var c=e.flattenDestructuringBinding(s,h,n,0,r),l=e.setTextRange(e.createVariableDeclarationList(c),t.initializer);e.setOriginalNode(l,t.initializer),e.setSourceMapRange(l,e.createRange(c[0].pos,e.last(c).end)),i.push(e.createVariableStatement(void 0,l))}else i.push(e.setTextRange(e.createVariableStatement(void 0,e.setOriginalNode(e.setTextRange(e.createVariableDeclarationList([e.createVariableDeclaration(s?s.name:e.createTempVariable(void 0),void 0,r)]),e.moveRangePos(o,-1)),o)),e.moveRangeEnd(o,-1)))}else{var u=e.createAssignment(o,r);e.isDestructuringAssignment(u)?(e.aggregateTransformFlags(u),i.push(e.createExpressionStatement(V(u,!1)))):(u.end=o.end,i.push(e.setTextRange(e.createExpressionStatement(e.visitNode(u,h,e.isExpression)),e.moveRangeEnd(o,-1))))}if(a)return Q(e.addRange(i,a));var d=e.visitNode(t.statement,h,e.isStatement,e.liftToBlock);return e.isBlock(d)?e.updateBlock(d,e.setTextRange(e.createNodeArray(e.concatenate(i,d.statements)),d.statements)):(i.push(d),Q(i))}function Q(n){return e.setEmitFlags(e.createBlock(e.createNodeArray(n),!0),432)}function Z(n,t,r){var a=e.visitNode(n.expression,h,e.isExpression),i=e.createLoopVariable(),s=e.isIdentifier(a)?e.getGeneratedNameForNode(a):e.createTempVariable(void 0);e.setEmitFlags(a,48|e.getEmitFlags(a));var c=e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(i,void 0,e.createLiteral(0)),e.moveRangePos(n.expression,-1)),e.setTextRange(e.createVariableDeclaration(s,void 0,a),n.expression)]),n.expression),2097152),e.setTextRange(e.createLessThan(i,e.createPropertyAccess(s,\"length\")),n.expression),e.setTextRange(e.createPostfixIncrement(i),n.expression),Y(n,e.createElementAccess(s,i),r)),n);return e.setEmitFlags(c,256),e.setTextRange(c,n),e.restoreEnclosingLabel(c,t,o&&H)}function $(t,r,a,i){var s=e.visitNode(t.expression,h,e.isExpression),c=e.isIdentifier(s)?e.getGeneratedNameForNode(s):e.createTempVariable(void 0),l=e.isIdentifier(s)?e.getGeneratedNameForNode(c):e.createTempVariable(void 0),u=e.createUniqueName(\"e\"),p=e.getGeneratedNameForNode(u),m=e.createTempVariable(void 0),f=e.createValuesHelper(n,s,t.expression),_=e.createCall(e.createPropertyAccess(c,\"next\"),void 0,[]);d(u),d(m);var g=1024&i?e.inlineExpressions([e.createAssignment(u,e.createVoidZero()),f]):f,y=e.setEmitFlags(e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(c,void 0,g),t.expression),e.createVariableDeclaration(l,void 0,_)]),t.expression),2097152),e.createLogicalNot(e.createPropertyAccess(l,\"done\")),e.createAssignment(l,_),Y(t,e.createPropertyAccess(l,\"value\"),a)),t),256);return e.createTry(e.createBlock([e.restoreEnclosingLabel(y,r,o&&H)]),e.createCatchClause(e.createVariableDeclaration(p),e.setEmitFlags(e.createBlock([e.createExpressionStatement(e.createAssignment(u,e.createObjectLiteral([e.createPropertyAssignment(\"error\",p)])))]),1)),e.createBlock([e.createTry(e.createBlock([e.setEmitFlags(e.createIf(e.createLogicalAnd(e.createLogicalAnd(l,e.createLogicalNot(e.createPropertyAccess(l,\"done\"))),e.createAssignment(m,e.createPropertyAccess(c,\"return\"))),e.createExpressionStatement(e.createFunctionCall(m,c,[]))),1)]),void 0,e.setEmitFlags(e.createBlock([e.setEmitFlags(e.createIf(u,e.createThrow(e.createPropertyAccess(u,\"error\"))),1)]),1))]))}function ee(e){return 0!=(131072&m.getNodeCheckFlags(e))}function ne(n){return e.isForStatement(n)&&!!n.initializer&&ee(n.initializer)}function te(n){return e.isForStatement(n)&&!!n.condition&&ee(n.condition)}function re(e){return ae(e)||ne(e)}function ae(e){return 0!=(65536&m.getNodeCheckFlags(e))}function ie(n,t){n.hoistedLocalVariables||(n.hoistedLocalVariables=[]),function t(r){if(75===r.kind)n.hoistedLocalVariables.push(r);else for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||t(o.name)}}(t.name)}function oe(n,t,r){switch(n.kind){case 229:return function(n,t,r){var a=n.condition&&ee(n.condition),i=a||n.incrementor&&ee(n.incrementor);return e.updateFor(n,e.visitNode(t?t.part:n.initializer,h,e.isForInitializer),e.visitNode(a?void 0:n.condition,h,e.isExpression),e.visitNode(i?void 0:n.incrementor,h,e.isExpression),r)}(n,t,r);case 230:return function(n,t){return e.updateForIn(n,e.visitNode(n.initializer,h,e.isForInitializer),e.visitNode(n.expression,h,e.isExpression),t)}(n,r);case 231:return function(n,t){return e.updateForOf(n,void 0,e.visitNode(n.initializer,h,e.isForInitializer),e.visitNode(n.expression,h,e.isExpression),t)}(n,r);case 227:return function(n,t){return e.updateDo(n,t,e.visitNode(n.expression,h,e.isExpression))}(n,r);case 228:return function(n,t){return e.updateWhile(n,e.visitNode(n.expression,h,e.isExpression),t)}(n,r);default:return e.Debug.failBadSyntaxKind(n,\"IterationStatement expected\")}}function se(n){return e.createVariableDeclaration(n.originalName,void 0,n.outParamName)}function ce(n,t){var r=0===t?n.outParamName:n.originalName,a=0===t?n.originalName:n.outParamName;return e.createBinary(a,62,r)}function le(n,t,r,a){for(var i=0,o=n;i<o.length;i++){var s=o[i];s.flags&t&&a.push(e.createExpressionStatement(ce(s,r)))}}function ue(n,t,r,a){t?(n.labeledNonLocalBreaks||(n.labeledNonLocalBreaks=e.createMap()),n.labeledNonLocalBreaks.set(r,a)):(n.labeledNonLocalContinues||(n.labeledNonLocalContinues=e.createMap()),n.labeledNonLocalContinues.set(r,a))}function de(n,t,r,a,i){n&&n.forEach((function(n,o){var s=[];if(!a||a.labels&&a.labels.get(o)){var c=e.createIdentifier(o);s.push(t?e.createBreak(c):e.createContinue(c))}else ue(a,t,o,n),s.push(e.createReturn(r));i.push(e.createCaseClause(e.createLiteral(n),s))}))}function pe(n,t,r,a,i){var o=t.name;if(e.isBindingPattern(o))for(var s=0,c=o.elements;s<c.length;s++){var l=c[s];e.isOmittedExpression(l)||pe(n,l,r,a,i)}else{r.push(e.createParameter(void 0,void 0,void 0,o));var u=m.getNodeCheckFlags(t);if(4194304&u||i){var d=e.createUniqueName(\"out_\"+e.idText(o)),p=0;4194304&u&&(p|=1),e.isForStatement(n)&&n.initializer&&m.isBindingCapturedByNode(n.initializer,t)&&(p|=2),a.push({flags:p,originalName:o,outParamName:d})}}}function me(n,t,r){var a=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),e.visitNode(n.initializer,h,e.isExpression));return e.setTextRange(a,n),r&&e.startOnNewLine(a),a}function fe(n,t,r){var a=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),e.getSynthesizedClone(n.name));return e.setTextRange(a,n),r&&e.startOnNewLine(a),a}function _e(n,t,r,a){var i=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),F(n,n,void 0,r));return e.setTextRange(i,n),a&&e.startOnNewLine(i),i}function ge(t,r){if(4096&t.transformFlags||101===t.expression.kind||e.isSuperProperty(e.skipOuterExpressions(t.expression))){var a=e.createCallBinding(t.expression,d),i=a.target,o=a.thisArg;101===t.expression.kind&&e.setEmitFlags(o,4);var s=void 0;if(s=4096&t.transformFlags?e.createFunctionApply(e.visitNode(i,b,e.isExpression),101===t.expression.kind?o:e.visitNode(o,h,e.isExpression),ye(t.arguments,!1,!1,!1)):e.createFunctionCall(e.visitNode(i,b,e.isExpression),101===t.expression.kind?o:e.visitNode(o,h,e.isExpression),e.visitNodes(t.arguments,h,e.isExpression),t),101===t.expression.kind){var c=e.createLogicalOr(s,S());s=r?e.createAssignment(e.createFileLevelUniqueName(\"_this\"),c):c}return e.setOriginalNode(s,t)}return e.visitEachChild(t,h,n)}function ye(t,r,a,i){var o,s=t.length,c=e.flatten(e.spanMap(t,be,(function(e,n,t,r){return n(e,a,i&&r===s)})));if(p.downlevelIteration){if(1===c.length)if(he(l=c[0],\"___spread\"))return c[0];return e.createSpreadHelper(n,c)}if(1===c.length){var l=c[0];if(!r||(o=l,e.isArrayLiteralExpression(o)&&e.every(o.elements,ve))||he(l,\"___spreadArrays\"))return c[0]}return e.createSpreadArraysHelper(n,c)}function ve(n){return!e.isOmittedExpression(n)}function he(n,t){return e.isCallExpression(n)&&e.isIdentifier(n.expression)&&4096&e.getEmitFlags(n.expression)&&n.expression.escapedText===t}function be(n){return e.isSpreadElement(n)?Ee:Te}function Ee(n){return e.map(n,Se)}function Te(n,t,r){return e.createArrayLiteral(e.visitNodes(e.createNodeArray(n,r),h,e.isExpression),t)}function Se(n){return e.visitNode(n.expression,h,e.isExpression)}function xe(n){var r=n.rawText;if(void 0===r){r=e.getSourceTextOfNodeFromSourceFile(t,n);var a=14===n.kind||17===n.kind;r=r.substring(1,r.length-(a?1:2))}return r=r.replace(/\\r\\n?/g,\"\\n\"),e.setTextRange(e.createLiteral(r),n)}function Le(n){return 8&a&&!n?e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),\"prototype\"):e.createFileLevelUniqueName(\"_super\")}function Ce(){0==(2&s)&&(s|=2,n.enableSubstitution(75))}function Ae(){0==(1&s)&&(s|=1,n.enableSubstitution(103),n.enableEmitNotification(161),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(201),n.enableEmitNotification(200),n.enableEmitNotification(243))}function De(n,t){return e.hasModifier(t,32)?e.getInternalName(n):e.createPropertyAccess(e.getInternalName(n),\"prototype\")}},e.extendsHelper={name:\"typescript:extends\",importName:\"__extends\",scoped:!1,priority:0,text:\"\\n            var __extends = (this && this.__extends) || (function () {\\n                var extendStatics = function (d, b) {\\n                    extendStatics = Object.setPrototypeOf ||\\n                        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\n                        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\n                    return extendStatics(d, b);\\n                };\\n\\n                return function (d, b) {\\n                    extendStatics(d, b);\\n                    function __() { this.constructor = d; }\\n                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\n                };\\n            })();\"},e.templateObjectHelper={name:\"typescript:makeTemplateObject\",importName:\"__makeTemplateObject\",scoped:!1,priority:0,text:'\\n            var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\\n                if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\\n                return cooked;\\n            };'}}(ts||(ts={})),function(e){e.transformES5=function(n){var t,r,a=n.getCompilerOptions();1!==a.jsx&&3!==a.jsx||(t=n.onEmitNode,n.onEmitNode=function(n,a,i){switch(a.kind){case 266:case 267:case 265:var o=a.tagName;r[e.getOriginalNodeId(o)]=!0}t(n,a,i)},n.enableEmitNotification(266),n.enableEmitNotification(267),n.enableEmitNotification(265),r=[]);var i=n.onSubstituteNode;return n.onSubstituteNode=function(n,t){if(t.id&&r&&r[t.id])return i(n,t);if(t=i(n,t),e.isPropertyAccessExpression(t))return function(n){var t=o(n.name);if(t)return e.setTextRange(e.createElementAccess(n.expression,t),n);return n}(t);if(e.isPropertyAssignment(t))return function(n){var t=e.isIdentifier(n.name)&&o(n.name);if(t)return e.updatePropertyAssignment(n,t,n.initializer);return n}(t);return t},n.enableSubstitution(193),n.enableSubstitution(279),e.chainBundle((function(e){return e}));function o(n){var t=n.originalKeywordKind||(e.nodeIsSynthesized(n)?e.stringToToken(e.idText(n)):void 0);if(void 0!==t&&t>=76&&t<=111)return e.setTextRange(e.createLiteral(n),n)}}}(ts||(ts={})),function(e){var n,t,r,a,i;!function(e){e[e.Nop=0]=\"Nop\",e[e.Statement=1]=\"Statement\",e[e.Assign=2]=\"Assign\",e[e.Break=3]=\"Break\",e[e.BreakWhenTrue=4]=\"BreakWhenTrue\",e[e.BreakWhenFalse=5]=\"BreakWhenFalse\",e[e.Yield=6]=\"Yield\",e[e.YieldStar=7]=\"YieldStar\",e[e.Return=8]=\"Return\",e[e.Throw=9]=\"Throw\",e[e.Endfinally=10]=\"Endfinally\"}(n||(n={})),function(e){e[e.Open=0]=\"Open\",e[e.Close=1]=\"Close\"}(t||(t={})),function(e){e[e.Exception=0]=\"Exception\",e[e.With=1]=\"With\",e[e.Switch=2]=\"Switch\",e[e.Loop=3]=\"Loop\",e[e.Labeled=4]=\"Labeled\"}(r||(r={})),function(e){e[e.Try=0]=\"Try\",e[e.Catch=1]=\"Catch\",e[e.Finally=2]=\"Finally\",e[e.Done=3]=\"Done\"}(a||(a={})),function(e){e[e.Next=0]=\"Next\",e[e.Throw=1]=\"Throw\",e[e.Return=2]=\"Return\",e[e.Break=3]=\"Break\",e[e.Yield=4]=\"Yield\",e[e.YieldStar=5]=\"YieldStar\",e[e.Catch=6]=\"Catch\",e[e.Endfinally=7]=\"Endfinally\"}(i||(i={})),e.transformGenerators=function(n){var t,r,a,i,o,s,c,l,u,d,p=n.resumeLexicalEnvironment,m=n.endLexicalEnvironment,f=n.hoistFunctionDeclaration,_=n.hoistVariableDeclaration,g=n.getCompilerOptions(),y=e.getEmitScriptTarget(g),v=n.getEmitResolver(),h=n.onSubstituteNode;n.onSubstituteNode=function(n,a){if(a=h(n,a),1===n)return function(n){if(e.isIdentifier(n))return function(n){if(!e.isGeneratedIdentifier(n)&&t&&t.has(e.idText(n))){var a=e.getOriginalNode(n);if(e.isIdentifier(a)&&a.parent){var i=v.getReferencedValueDeclaration(a);if(i){var o=r[e.getOriginalNodeId(i)];if(o){var s=e.getMutableClone(o);return e.setSourceMapRange(s,n),e.setCommentRange(s,n),s}}}}return n}(n);return n}(a);return a};var b,E,T,S,x,L,C,A,D,k,N,I,M=1,O=0,R=0;return e.chainBundle((function(t){if(t.isDeclarationFile||0==(256&t.transformFlags))return t;var r=e.visitEachChild(t,P,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function P(t){var r=t.transformFlags;return i?function(t){switch(t.kind){case 227:case 228:return function(t){return i?(te(),t=e.visitEachChild(t,P,n),ae(),t):e.visitEachChild(t,P,n)}(t);case 236:return function(t){i&&Z({kind:2,isScript:!0,breakLabel:-1});t=e.visitEachChild(t,P,n),i&&ie();return t}(t);case 237:return function(t){i&&Z({kind:4,isScript:!0,labelText:e.idText(t.label),breakLabel:-1});t=e.visitEachChild(t,P,n),i&&oe();return t}(t);default:return w(t)}}(t):a?w(t):e.isFunctionLikeDeclaration(t)&&t.asteriskToken?function(n){switch(n.kind){case 243:return F(n);case 200:return G(n);default:return e.Debug.failBadSyntaxKind(n)}}(t):256&r?e.visitEachChild(t,P,n):t}function w(t){switch(t.kind){case 243:return F(t);case 200:return G(t);case 162:case 163:return function(t){var r=a,o=i;return a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o,t}(t);case 224:return function(n){if(131072&n.transformFlags)return void H(n.declarationList);if(1048576&e.getEmitFlags(n))return n;for(var t=0,r=n.declarationList.declarations;t<r.length;t++){var a=r[t];_(a.name)}var i=e.getInitializedVariables(n.declarationList);if(0===i.length)return;return e.setSourceMapRange(e.createExpressionStatement(e.inlineExpressions(e.map(i,W))),n)}(t);case 229:return function(t){i&&te();var r=t.initializer;if(r&&e.isVariableDeclarationList(r)){for(var a=0,o=r.declarations;a<o.length;a++){var s=o[a];_(s.name)}var c=e.getInitializedVariables(r);t=e.updateFor(t,c.length>0?e.inlineExpressions(e.map(c,W)):void 0,e.visitNode(t.condition,P,e.isExpression),e.visitNode(t.incrementor,P,e.isExpression),e.visitNode(t.statement,P,e.isStatement,e.liftToBlock))}else t=e.visitEachChild(t,P,n);i&&ae();return t}(t);case 230:return function(t){i&&te();var r=t.initializer;if(e.isVariableDeclarationList(r)){for(var a=0,o=r.declarations;a<o.length;a++){var s=o[a];_(s.name)}t=e.updateForIn(t,r.declarations[0].name,e.visitNode(t.expression,P,e.isExpression),e.visitNode(t.statement,P,e.isStatement,e.liftToBlock))}else t=e.visitEachChild(t,P,n);i&&ae();return t}(t);case 233:return function(t){if(i){var r=de(t.label&&e.idText(t.label));if(r>0)return _e(r,t)}return e.visitEachChild(t,P,n)}(t);case 232:return function(t){if(i){var r=pe(t.label&&e.idText(t.label));if(r>0)return _e(r,t)}return e.visitEachChild(t,P,n)}(t);case 234:return function(n){return t=e.visitNode(n.expression,P,e.isExpression),r=n,e.setTextRange(e.createReturn(e.createArrayLiteral(t?[fe(2),t]:[fe(2)])),r);var t,r}(t);default:return 131072&t.transformFlags?function(t){switch(t.kind){case 208:return function(t){var r=e.getExpressionAssociativity(t);switch(r){case 0:return function(t){if(z(t.right)){if(e.isLogicalOperator(t.operatorToken.kind))return function(n){var t=Y(),r=X();ve(r,e.visitNode(n.left,P,e.isExpression),n.left),55===n.operatorToken.kind?Ee(t,r,n.left):be(t,r,n.left);return ve(r,e.visitNode(n.right,P,e.isExpression),n.right),Q(t),r}(t);if(27===t.operatorToken.kind)return function(n){var t=[];return r(n.left),r(n.right),e.inlineExpressions(t);function r(n){e.isBinaryExpression(n)&&27===n.operatorToken.kind?(r(n.left),r(n.right)):(z(n)&&t.length>0&&(Te(1,[e.createExpressionStatement(e.inlineExpressions(t))]),t=[]),t.push(e.visitNode(n,P,e.isExpression)))}}(t);var r=e.getMutableClone(t);return r.left=J(e.visitNode(t.left,P,e.isExpression)),r.right=e.visitNode(t.right,P,e.isExpression),r}return e.visitEachChild(t,P,n)}(t);case 1:return function(t){var r=t.left,a=t.right;if(z(a)){var i=void 0;switch(r.kind){case 193:i=e.updatePropertyAccess(r,J(e.visitNode(r.expression,P,e.isLeftHandSideExpression)),r.name);break;case 194:i=e.updateElementAccess(r,J(e.visitNode(r.expression,P,e.isLeftHandSideExpression)),J(e.visitNode(r.argumentExpression,P,e.isExpression)));break;default:i=e.visitNode(r,P,e.isExpression)}var o=t.operatorToken.kind;return(s=o)>=63&&s<=74?e.setTextRange(e.createAssignment(i,e.setTextRange(e.createBinary(J(i),function(e){switch(e){case 63:return 39;case 64:return 40;case 65:return 41;case 66:return 42;case 67:return 43;case 68:return 44;case 69:return 47;case 70:return 48;case 71:return 49;case 72:return 50;case 73:return 51;case 74:return 52}}(o),e.visitNode(a,P,e.isExpression)),t)),t):e.updateBinary(t,i,e.visitNode(a,P,e.isExpression))}var s;return e.visitEachChild(t,P,n)}(t);default:return e.Debug.assertNever(r)}}(t);case 209:return function(t){if(z(t.whenTrue)||z(t.whenFalse)){var r=Y(),a=Y(),i=X();return Ee(r,e.visitNode(t.condition,P,e.isExpression),t.condition),ve(i,e.visitNode(t.whenTrue,P,e.isExpression),t.whenTrue),he(a),Q(r),ve(i,e.visitNode(t.whenFalse,P,e.isExpression),t.whenFalse),Q(a),i}return e.visitEachChild(t,P,n)}(t);case 211:return function(t){var r=Y(),a=e.visitNode(t.expression,P,e.isExpression);if(t.asteriskToken){!function(e,n){Te(7,[e],n)}(0==(8388608&e.getEmitFlags(t.expression))?e.createValuesHelper(n,a,t):a,t)}else!function(e,n){Te(6,[e],n)}(a,t);return Q(r),function(n){return e.setTextRange(e.createCall(e.createPropertyAccess(S,\"sent\"),void 0,[]),n)}(t)}(t);case 191:return function(e){return V(e.elements,void 0,void 0,e.multiLine)}(t);case 192:return function(n){var t=n.properties,r=n.multiLine,a=q(t),i=X();ve(i,e.createObjectLiteral(e.visitNodes(t,P,e.isObjectLiteralElementLike,0,a),r));var o=e.reduceLeft(t,(function(t,a){z(a)&&t.length>0&&(ye(e.createExpressionStatement(e.inlineExpressions(t))),t=[]);var o=e.createExpressionForObjectLiteralElementLike(n,a,i),s=e.visitNode(o,P,e.isExpression);s&&(r&&e.startOnNewLine(s),t.push(s));return t}),[],a);return o.push(r?e.startOnNewLine(e.getMutableClone(i)):i),e.inlineExpressions(o)}(t);case 194:return function(t){if(z(t.argumentExpression)){var r=e.getMutableClone(t);return r.expression=J(e.visitNode(t.expression,P,e.isLeftHandSideExpression)),r.argumentExpression=e.visitNode(t.argumentExpression,P,e.isExpression),r}return e.visitEachChild(t,P,n)}(t);case 195:return function(t){if(!e.isImportCall(t)&&e.forEach(t.arguments,z)){var r=e.createCallBinding(t.expression,_,y,!0),a=r.target,i=r.thisArg;return e.setOriginalNode(e.createFunctionApply(J(e.visitNode(a,P,e.isLeftHandSideExpression)),i,V(t.arguments),t),t)}return e.visitEachChild(t,P,n)}(t);case 196:return function(t){if(e.forEach(t.arguments,z)){var r=e.createCallBinding(e.createPropertyAccess(t.expression,\"bind\"),_),a=r.target,i=r.thisArg;return e.setOriginalNode(e.setTextRange(e.createNew(e.createFunctionApply(J(e.visitNode(a,P,e.isExpression)),i,V(t.arguments,e.createVoidZero())),void 0,[]),t),t)}return e.visitEachChild(t,P,n)}(t);default:return e.visitEachChild(t,P,n)}}(t):262400&t.transformFlags?e.visitEachChild(t,P,n):t}}function F(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(e.createFunctionDeclaration(void 0,t.modifiers,void 0,t.name,void 0,e.visitParameterList(t.parameters,P,n),void 0,B(t.body)),t),t);else{var r=a,o=i;a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o}return a?void f(t):t}function G(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(e.createFunctionExpression(void 0,void 0,t.name,void 0,e.visitParameterList(t.parameters,P,n),void 0,B(t.body)),t),t);else{var r=a,o=i;a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o}return t}function B(n){var t=[],r=a,f=i,_=o,g=s,y=c,v=l,h=u,x=d,L=M,C=b,A=E,D=T,k=S;a=!0,i=!1,o=void 0,s=void 0,c=void 0,l=void 0,u=void 0,d=void 0,M=1,b=void 0,E=void 0,T=void 0,S=e.createTempVariable(void 0),p();var N=e.addPrologue(t,n.statements,!1,P);U(n.statements,N);var I=Se();return e.insertStatementsAfterStandardPrologue(t,m()),t.push(e.createReturn(I)),a=r,i=f,o=_,s=g,c=y,l=v,u=h,d=x,M=L,b=C,E=A,T=D,S=k,e.setTextRange(e.createBlock(t,n.multiLine),n)}function V(n,t,r,a){var i,o=q(n);if(o>0){i=X();var s=e.visitNodes(n,P,e.isExpression,0,o);ve(i,e.createArrayLiteral(t?__spreadArrays([t],s):s)),t=void 0}var c=e.reduceLeft(n,(function(n,r){if(z(r)&&n.length>0){var o=void 0!==i;i||(i=X()),ve(i,o?e.createArrayConcat(i,[e.createArrayLiteral(n,a)]):e.createArrayLiteral(t?__spreadArrays([t],n):n,a)),t=void 0,n=[]}return n.push(e.visitNode(r,P,e.isExpression)),n}),[],o);return i?e.createArrayConcat(i,[e.createArrayLiteral(c,a)]):e.setTextRange(e.createArrayLiteral(t?__spreadArrays([t],c):c,a),r)}function U(e,n){void 0===n&&(n=0);for(var t=e.length,r=n;r<t;r++)K(e[r])}function j(n){e.isBlock(n)?U(n.statements):K(n)}function K(a){var o=i;i||(i=z(a)),function(a){switch(a.kind){case 222:return function(n){z(n)?U(n.statements):ye(e.visitNode(n,P,e.isStatement))}(a);case 225:return function(n){ye(e.visitNode(n,P,e.isStatement))}(a);case 226:return function(n){if(z(n))if(z(n.thenStatement)||z(n.elseStatement)){var t=Y(),r=n.elseStatement?Y():void 0;Ee(n.elseStatement?r:t,e.visitNode(n.expression,P,e.isExpression),n.expression),j(n.thenStatement),n.elseStatement&&(he(t),Q(r),j(n.elseStatement)),Q(t)}else ye(e.visitNode(n,P,e.isStatement));else ye(e.visitNode(n,P,e.isStatement))}(a);case 227:return function(n){if(z(n)){var t=Y(),r=Y();re(t),Q(r),j(n.statement),Q(t),be(r,e.visitNode(n.expression,P,e.isExpression)),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 228:return function(n){if(z(n)){var t=Y(),r=re(t);Q(t),Ee(r,e.visitNode(n.expression,P,e.isExpression)),j(n.statement),he(t),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 229:return function(n){if(z(n)){var t=Y(),r=Y(),a=re(r);if(n.initializer){var i=n.initializer;e.isVariableDeclarationList(i)?H(i):ye(e.setTextRange(e.createExpressionStatement(e.visitNode(i,P,e.isExpression)),i))}Q(t),n.condition&&Ee(a,e.visitNode(n.condition,P,e.isExpression)),j(n.statement),Q(r),n.incrementor&&ye(e.setTextRange(e.createExpressionStatement(e.visitNode(n.incrementor,P,e.isExpression)),n.incrementor)),he(t),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 230:return function(n){if(z(n)){var t=X(),r=X(),a=e.createLoopVariable(),i=n.initializer;_(a),ve(t,e.createArrayLiteral()),ye(e.createForIn(r,e.visitNode(n.expression,P,e.isExpression),e.createExpressionStatement(e.createCall(e.createPropertyAccess(t,\"push\"),void 0,[r])))),ve(a,e.createLiteral(0));var o=Y(),s=Y(),c=re(s);Q(o),Ee(c,e.createLessThan(a,e.createPropertyAccess(t,\"length\")));var l=void 0;if(e.isVariableDeclarationList(i)){for(var u=0,d=i.declarations;u<d.length;u++){var p=d[u];_(p.name)}l=e.getSynthesizedClone(i.declarations[0].name)}else l=e.visitNode(i,P,e.isExpression),e.Debug.assert(e.isLeftHandSideExpression(l));ve(l,e.createElementAccess(t,a)),j(n.statement),Q(s),ye(e.createExpressionStatement(e.createPostfixIncrement(a))),he(o),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 232:return function(n){var t=pe(n.label?e.idText(n.label):void 0);t>0?he(t,n):ye(n)}(a);case 233:return function(n){var t=de(n.label?e.idText(n.label):void 0);t>0?he(t,n):ye(n)}(a);case 234:return function(n){t=e.visitNode(n.expression,P,e.isExpression),r=n,Te(8,[t],r);var t,r}(a);case 235:return function(n){z(n)?(t=J(e.visitNode(n.expression,P,e.isExpression)),r=Y(),a=Y(),Q(r),Z({kind:1,expression:t,startLabel:r,endLabel:a}),j(n.statement),e.Debug.assert(1===ne()),Q($().endLabel)):ye(e.visitNode(n,P,e.isStatement));var t,r,a}(a);case 236:return function(n){if(z(n.caseBlock)){for(var t=n.caseBlock,r=t.clauses.length,a=(Z({kind:2,isScript:!1,breakLabel:m=Y()}),m),i=J(e.visitNode(n.expression,P,e.isExpression)),o=[],s=-1,c=0;c<r;c++){var l=t.clauses[c];o.push(Y()),276===l.kind&&-1===s&&(s=c)}for(var u=0,d=[];u<r;){var p=0;for(c=u;c<r;c++){if(275===(l=t.clauses[c]).kind){if(z(l.expression)&&d.length>0)break;d.push(e.createCaseClause(e.visitNode(l.expression,P,e.isExpression),[_e(o[c],l.expression)]))}else p++}d.length&&(ye(e.createSwitch(i,e.createCaseBlock(d))),u+=d.length,d=[]),p>0&&(u+=p,p=0)}he(s>=0?o[s]:a);for(c=0;c<r;c++)Q(o[c]),U(t.clauses[c].statements);ie()}else ye(e.visitNode(n,P,e.isStatement));var m}(a);case 237:return function(n){z(n)?(t=e.idText(n.label),r=Y(),Z({kind:4,isScript:!1,labelText:t,breakLabel:r}),j(n.statement),oe()):ye(e.visitNode(n,P,e.isStatement));var t,r}(a);case 238:return function(n){t=e.visitNode(n.expression,P,e.isExpression),r=n,Te(9,[t],r);var t,r}(a);case 239:return function(a){z(a)?(i=Y(),o=Y(),Q(i),Z({kind:0,state:0,startLabel:i,endLabel:o}),ge(),j(a.tryBlock),a.catchClause&&(!function(a){var i;if(e.Debug.assert(0===ne()),e.isGeneratedIdentifier(a.name))i=a.name,_(a.name);else{var o=e.idText(a.name);i=X(o),t||(t=e.createMap(),r=[],n.enableSubstitution(75)),t.set(o,!0),r[e.getOriginalNodeId(a)]=i}var s=ee();e.Debug.assert(s.state<1),he(s.endLabel);var c=Y();Q(c),s.state=1,s.catchVariable=i,s.catchLabel=c,ve(i,e.createCall(e.createPropertyAccess(S,\"sent\"),void 0,[])),ge()}(a.catchClause.variableDeclaration),j(a.catchClause.block)),a.finallyBlock&&(!function(){e.Debug.assert(0===ne());var n=ee();e.Debug.assert(n.state<2),he(n.endLabel);var t=Y();Q(t),n.state=2,n.finallyLabel=t}(),j(a.finallyBlock)),function(){e.Debug.assert(0===ne());var n=$();n.state<2?he(n.endLabel):Te(10);Q(n.endLabel),ge(),n.state=3}()):ye(e.visitEachChild(a,P,n));var i,o}(a);default:ye(e.visitNode(a,P,e.isStatement))}}(a),i=o}function H(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t],i=e.getSynthesizedClone(a.name);e.setCommentRange(i,a.name),_(i)}for(var o=e.getInitializedVariables(n),s=o.length,c=0,l=[];c<s;){for(var u=c;u<s;u++){if(z((a=o[u]).initializer)&&l.length>0)break;l.push(W(a))}l.length&&(ye(e.createExpressionStatement(e.inlineExpressions(l))),c+=l.length,l=[])}}function W(n){return e.setSourceMapRange(e.createAssignment(e.setSourceMapRange(e.getSynthesizedClone(n.name),n.name),e.visitNode(n.initializer,P,e.isExpression)),n)}function z(e){return!!e&&0!=(131072&e.transformFlags)}function q(e){for(var n=e.length,t=0;t<n;t++)if(z(e[t]))return t;return-1}function J(n){if(e.isGeneratedIdentifier(n)||4096&e.getEmitFlags(n))return n;var t=e.createTempVariable(_);return ve(t,n,n),t}function X(n){var t=n?e.createUniqueName(n):e.createTempVariable(void 0);return _(t),t}function Y(){u||(u=[]);var e=M;return M++,u[e]=-1,e}function Q(n){e.Debug.assert(void 0!==u,\"No labels were defined.\"),u[n]=b?b.length:0}function Z(e){o||(o=[],c=[],s=[],l=[]);var n=c.length;return c[n]=0,s[n]=b?b.length:0,o[n]=e,l.push(e),n}function $(){var n=ee();if(void 0===n)return e.Debug.fail(\"beginBlock was never called.\");var t=c.length;return c[t]=1,s[t]=b?b.length:0,o[t]=n,l.pop(),n}function ee(){return e.lastOrUndefined(l)}function ne(){var e=ee();return e&&e.kind}function te(){Z({kind:3,isScript:!0,breakLabel:-1,continueLabel:-1})}function re(e){var n=Y();return Z({kind:3,isScript:!1,breakLabel:n,continueLabel:e}),n}function ae(){e.Debug.assert(3===ne());var n=$(),t=n.breakLabel;n.isScript||Q(t)}function ie(){e.Debug.assert(2===ne());var n=$(),t=n.breakLabel;n.isScript||Q(t)}function oe(){e.Debug.assert(4===ne());var n=$();n.isScript||Q(n.breakLabel)}function se(e){return 2===e.kind||3===e.kind}function ce(e){return 4===e.kind}function le(e){return 3===e.kind}function ue(e,n){for(var t=n;t>=0;t--){var r=l[t];if(!ce(r))break;if(r.labelText===e)return!0}return!1}function de(e){if(l)if(e)for(var n=l.length-1;n>=0;n--){if(ce(t=l[n])&&t.labelText===e)return t.breakLabel;if(se(t)&&ue(e,n-1))return t.breakLabel}else for(n=l.length-1;n>=0;n--){var t;if(se(t=l[n]))return t.breakLabel}return 0}function pe(e){if(l)if(e)for(var n=l.length-1;n>=0;n--){if(le(t=l[n])&&ue(e,n-1))return t.continueLabel}else for(n=l.length-1;n>=0;n--){var t;if(le(t=l[n]))return t.continueLabel}return 0}function me(n){if(void 0!==n&&n>0){void 0===d&&(d=[]);var t=e.createLiteral(-1);return void 0===d[n]?d[n]=[t]:d[n].push(t),t}return e.createOmittedExpression()}function fe(n){var t=e.createLiteral(n);return e.addSyntheticTrailingComment(t,3,function(e){switch(e){case 2:return\"return\";case 3:return\"break\";case 4:return\"yield\";case 5:return\"yield*\";case 7:return\"endfinally\";default:return}}(n)),t}function _e(n,t){return e.Debug.assertLessThan(0,n,\"Invalid label\"),e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),t)}function ge(){Te(0)}function ye(e){e?Te(1,[e]):ge()}function ve(e,n,t){Te(2,[e,n],t)}function he(e,n){Te(3,[e],n)}function be(e,n,t){Te(4,[e,n],t)}function Ee(e,n,t){Te(5,[e,n],t)}function Te(e,n,t){void 0===b&&(b=[],E=[],T=[]),void 0===u&&Q(Y());var r=b.length;b[r]=e,E[r]=n,T[r]=t}function Se(){O=0,R=0,x=void 0,L=!1,C=!1,A=void 0,D=void 0,k=void 0,N=void 0,I=void 0;var t=function(){if(b){for(var n=0;n<b.length;n++)Ae(n);xe(b.length)}else xe(0);if(A){var t=e.createPropertyAccess(S,\"label\"),r=e.createSwitch(t,e.createCaseBlock(A));return[e.startOnNewLine(r)]}if(D)return D;return[]}();return function(n,t){return n.requestEmitHelper(e.generatorHelper),e.createCall(e.getUnscopedHelperName(\"__generator\"),void 0,[e.createThis(),t])}(n,e.setEmitFlags(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,S)],void 0,e.createBlock(t,t.length>0)),524288))}function xe(e){(function(e){if(!C)return!0;if(!u||!d)return!1;for(var n=0;n<u.length;n++)if(u[n]===e&&d[n])return!0;return!1})(e)&&(Ce(e),I=void 0,ke(void 0,void 0)),D&&A&&Le(!1),function(){if(void 0!==d&&void 0!==x)for(var e=0;e<x.length;e++){var n=x[e];if(void 0!==n)for(var t=0,r=n;t<r.length;t++){var a=r[t],i=d[a];if(void 0!==i)for(var o=0,s=i;o<s.length;o++){s[o].text=String(e)}}}}()}function Le(n){if(A||(A=[]),D){if(I)for(var t=I.length-1;t>=0;t--){var r=I[t];D=[e.createWith(r.expression,e.createBlock(D))]}if(N){var a=N.startLabel,i=N.catchLabel,o=N.finallyLabel,s=N.endLabel;D.unshift(e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createPropertyAccess(S,\"trys\"),\"push\"),void 0,[e.createArrayLiteral([me(a),me(i),me(o),me(s)])]))),N=void 0}n&&D.push(e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(S,\"label\"),e.createLiteral(R+1))))}A.push(e.createCaseClause(e.createLiteral(R),D||[])),D=void 0}function Ce(e){if(u)for(var n=0;n<u.length;n++)u[n]===e&&(D&&(Le(!L),L=!1,C=!1,R++),void 0===x&&(x=[]),void 0===x[R]?x[R]=[n]:x[R].push(n))}function Ae(n){if(Ce(n),function(e){if(o)for(;O<c.length&&s[O]<=e;O++){var n=o[O],t=c[O];switch(n.kind){case 0:0===t?(k||(k=[]),D||(D=[]),k.push(N),N=n):1===t&&(N=k.pop());break;case 1:0===t?(I||(I=[]),I.push(n)):1===t&&I.pop()}}}(n),!L){L=!1,C=!1;var t=b[n];if(0!==t){if(10===t)return L=!0,void De(e.createReturn(e.createArrayLiteral([fe(7)])));var r=E[n];if(1===t)return De(r[0]);var a,i,l,u=T[n];switch(t){case 2:return a=r[0],i=r[1],l=u,void De(e.setTextRange(e.createExpressionStatement(e.createAssignment(a,i)),l));case 3:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),t),384))}(r[0],u);case 4:return function(n,t,r){De(e.setEmitFlags(e.createIf(t,e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),r),384)),1))}(r[0],r[1],u);case 5:return function(n,t,r){De(e.setEmitFlags(e.createIf(e.createLogicalNot(t),e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),r),384)),1))}(r[0],r[1],u);case 6:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral(n?[fe(4),n]:[fe(4)])),t),384))}(r[0],u);case 7:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(5),n])),t),384))}(r[0],u);case 8:return ke(r[0],u);case 9:return function(n,t){L=!0,C=!0,De(e.setTextRange(e.createThrow(n),t))}(r[0],u)}}}}function De(e){e&&(D?D.push(e):D=[e])}function ke(n,t){L=!0,C=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral(n?[fe(2),n]:[fe(2)])),t),384))}},e.generatorHelper={name:\"typescript:generator\",importName:\"__generator\",scoped:!1,priority:6,text:'\\n            var __generator = (this && this.__generator) || function (thisArg, body) {\\n                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\n                return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\\n                function verb(n) { return function (v) { return step([n, v]); }; }\\n                function step(op) {\\n                    if (f) throw new TypeError(\"Generator is already executing.\");\\n                    while (_) try {\\n                        if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\n                        if (y = 0, t) op = [op[0] & 2, t.value];\\n                        switch (op[0]) {\\n                            case 0: case 1: t = op; break;\\n                            case 4: _.label++; return { value: op[1], done: false };\\n                            case 5: _.label++; y = op[1]; op = [0]; continue;\\n                            case 7: op = _.ops.pop(); _.trys.pop(); continue;\\n                            default:\\n                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\n                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\n                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\n                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\n                                if (t[2]) _.ops.pop();\\n                                _.trys.pop(); continue;\\n                        }\\n                        op = body.call(thisArg, _);\\n                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\n                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\n                }\\n            };'}}(ts||(ts={})),function(e){e.transformModule=function(r){var a=r.startLexicalEnvironment,i=r.endLexicalEnvironment,o=r.hoistVariableDeclaration,s=r.getCompilerOptions(),c=r.getEmitResolver(),l=r.getEmitHost(),u=e.getEmitScriptTarget(s),d=e.getEmitModuleKind(s),p=r.onSubstituteNode,m=r.onEmitNode;r.onSubstituteNode=function(n,t){if((t=p(n,t)).id&&g[t.id])return t;if(1===n)return function(n){switch(n.kind){case 75:return q(n);case 208:return function(n){if(e.isAssignmentOperator(n.operatorToken.kind)&&e.isIdentifier(n.left)&&!e.isGeneratedIdentifier(n.left)&&!e.isLocalName(n.left)&&!e.isDeclarationNameOfEnumOrNamespace(n.left)){var t=J(n.left);if(t){for(var r=n,a=0,i=t;a<i.length;a++){var o=i[a];g[e.getNodeId(r)]=!0,r=W(o,r,n)}return r}}return n}(n);case 207:case 206:return function(n){if((45===n.operator||46===n.operator)&&e.isIdentifier(n.operand)&&!e.isGeneratedIdentifier(n.operand)&&!e.isLocalName(n.operand)&&!e.isDeclarationNameOfEnumOrNamespace(n.operand)){var t=J(n.operand);if(t){for(var r=207===n.kind?e.setTextRange(e.createBinary(n.operand,e.createToken(45===n.operator?63:64),e.createLiteral(1)),n):n,a=0,i=t;a<i.length;a++){var o=i[a];g[e.getNodeId(r)]=!0,r=W(o,r)}return r}}return n}(n)}return n}(t);if(e.isShorthandPropertyAssignment(t))return function(n){var t=n.name,r=q(t);if(r!==t){if(n.objectAssignmentInitializer){var a=e.createAssignment(r,n.objectAssignmentInitializer);return e.setTextRange(e.createPropertyAssignment(t,a),n)}return e.setTextRange(e.createPropertyAssignment(t,r),n)}return n}(t);return t},r.onEmitNode=function(n,t,r){288===t.kind?(f=t,_=v[e.getOriginalNodeId(f)],g=[],m(n,t,r),f=void 0,_=void 0,g=void 0):m(n,t,r)},r.enableSubstitution(75),r.enableSubstitution(208),r.enableSubstitution(206),r.enableSubstitution(207),r.enableSubstitution(280),r.enableEmitNotification(288);var f,_,g,y,v=[],h=[];return e.chainBundle((function(n){if(n.isDeclarationFile||!(e.isEffectiveExternalModule(n,s)||524288&n.transformFlags||e.isJsonSourceFile(n)&&e.hasJsonModuleEmitEnabled(s)&&(s.out||s.outFile)))return n;f=n,_=e.collectExternalModuleInfo(n,c,s),v[e.getOriginalNodeId(n)]=_;var t=function(n){switch(n){case e.ModuleKind.AMD:return T;case e.ModuleKind.UMD:return S;default:return E}}(d)(n);return f=void 0,_=void 0,y=!1,e.aggregateTransformFlags(t)}));function b(){return!(_.exportEquals||!e.isExternalModule(f))}function E(t){a();var o=[],c=e.getStrictOptionValue(s,\"alwaysStrict\")||!s.noImplicitUseStrict&&e.isExternalModule(f),l=e.addPrologue(o,t.statements,c,D);b()&&e.append(o,H()),e.append(o,e.visitNode(_.externalHelpersImportDeclaration,D,e.isStatement)),e.addRange(o,e.visitNodes(t.statements,D,e.isStatement,l)),A(o,!1),e.insertStatementsAfterStandardPrologue(o,i());var u=e.updateSourceFileNode(t,e.setTextRange(e.createNodeArray(o),t.statements));return _.hasExportStarsToExportValues&&!s.importHelpers&&e.addEmitHelper(u,n),e.addEmitHelpers(u,r.readEmitHelpers()),u}function T(n){var t=e.createIdentifier(\"define\"),a=e.tryGetModuleNameFromFile(n,l,s),i=e.isJsonSourceFile(n)&&n,o=x(n,!0),c=o.aliasedModuleNames,u=o.unaliasedModuleNames,d=o.importAliasNames,p=e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(t,void 0,__spreadArrays(a?[a]:[],[e.createArrayLiteral(i?e.emptyArray:__spreadArrays([e.createLiteral(\"require\"),e.createLiteral(\"exports\")],c,u)),i?i.statements.length?i.statements[0].expression:e.createObjectLiteral():e.createFunctionExpression(void 0,void 0,void 0,void 0,__spreadArrays([e.createParameter(void 0,void 0,void 0,\"require\"),e.createParameter(void 0,void 0,void 0,\"exports\")],d),void 0,C(n))])))]),n.statements));return e.addEmitHelpers(p,r.readEmitHelpers()),p}function S(n){var t=x(n,!1),a=t.aliasedModuleNames,i=t.unaliasedModuleNames,o=t.importAliasNames,c=e.tryGetModuleNameFromFile(n,l,s),u=e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"factory\")],void 0,e.setTextRange(e.createBlock([e.createIf(e.createLogicalAnd(e.createTypeCheck(e.createIdentifier(\"module\"),\"object\"),e.createTypeCheck(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),\"object\")),e.createBlock([e.createVariableStatement(void 0,[e.createVariableDeclaration(\"v\",void 0,e.createCall(e.createIdentifier(\"factory\"),void 0,[e.createIdentifier(\"require\"),e.createIdentifier(\"exports\")]))]),e.setEmitFlags(e.createIf(e.createStrictInequality(e.createIdentifier(\"v\"),e.createIdentifier(\"undefined\")),e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),e.createIdentifier(\"v\")))),1)]),e.createIf(e.createLogicalAnd(e.createTypeCheck(e.createIdentifier(\"define\"),\"function\"),e.createPropertyAccess(e.createIdentifier(\"define\"),\"amd\")),e.createBlock([e.createExpressionStatement(e.createCall(e.createIdentifier(\"define\"),void 0,__spreadArrays(c?[c]:[],[e.createArrayLiteral(__spreadArrays([e.createLiteral(\"require\"),e.createLiteral(\"exports\")],a,i)),e.createIdentifier(\"factory\")])))])))],!0),void 0)),d=e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(u,void 0,[e.createFunctionExpression(void 0,void 0,void 0,void 0,__spreadArrays([e.createParameter(void 0,void 0,void 0,\"require\"),e.createParameter(void 0,void 0,void 0,\"exports\")],o),void 0,C(n))]))]),n.statements));return e.addEmitHelpers(d,r.readEmitHelpers()),d}function x(n,t){for(var r=[],a=[],i=[],o=0,u=n.amdDependencies;o<u.length;o++){var d=u[o];d.name?(r.push(e.createLiteral(d.path)),i.push(e.createParameter(void 0,void 0,void 0,d.name))):a.push(e.createLiteral(d.path))}for(var p=0,m=_.externalImports;p<m.length;p++){var g=m[p],y=e.getExternalModuleNameLiteral(g,f,l,c,s),v=e.getLocalNameForExternalImport(g,f);y&&(t&&v?(e.setEmitFlags(v,4),r.push(y),i.push(e.createParameter(void 0,void 0,void 0,v))):a.push(y))}return{aliasedModuleNames:r,unaliasedModuleNames:a,importAliasNames:i}}function L(n){if(!e.isImportEqualsDeclaration(n)&&!e.isExportDeclaration(n)&&e.getExternalModuleNameLiteral(n,f,l,c,s)){var t=e.getLocalNameForExternalImport(n,f),r=M(n,t);if(r!==t)return e.createExpressionStatement(e.createAssignment(t,r))}}function C(r){a();var o=[],c=e.addPrologue(o,r.statements,!s.noImplicitUseStrict,D);b()&&e.append(o,H()),e.append(o,e.visitNode(_.externalHelpersImportDeclaration,D,e.isStatement)),d===e.ModuleKind.AMD&&e.addRange(o,e.mapDefined(_.externalImports,L)),e.addRange(o,e.visitNodes(r.statements,D,e.isStatement,c)),A(o,!0),e.insertStatementsAfterStandardPrologue(o,i());var l=e.createBlock(o,!0);return _.hasExportStarsToExportValues&&!s.importHelpers&&e.addEmitHelper(l,n),y&&e.addEmitHelper(l,t),l}function A(n,t){if(_.exportEquals){var r=e.visitNode(_.exportEquals.expression,k);if(r)if(t){var a=e.createReturn(r);e.setTextRange(a,_.exportEquals),e.setEmitFlags(a,1920),n.push(a)}else{a=e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),r));e.setTextRange(a,_.exportEquals),e.setEmitFlags(a,1536),n.push(a)}}}function D(n){switch(n.kind){case 253:return function(n){var t,r=e.getNamespaceDeclarationNode(n);if(d!==e.ModuleKind.AMD){if(!n.importClause)return e.setOriginalNode(e.setTextRange(e.createExpressionStatement(O(n)),n),n);var a=[];r&&!e.isDefaultImport(n)?a.push(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,M(n,O(n)))):(a.push(e.createVariableDeclaration(e.getGeneratedNameForNode(n),void 0,M(n,O(n)))),r&&e.isDefaultImport(n)&&a.push(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,e.getGeneratedNameForNode(n)))),t=e.append(t,e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList(a,u>=2?2:0)),n),n))}else r&&e.isDefaultImport(n)&&(t=e.append(t,e.createVariableStatement(void 0,e.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,e.getGeneratedNameForNode(n)),n),n)],u>=2?2:0))));if(w(n)){var i=e.getOriginalNodeId(n);h[i]=F(h[i],n)}else t=F(t,n);return e.singleOrMany(t)}(n);case 252:return function(n){var t;e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(n),\"import= for internal module references should be handled in an earlier transformer.\"),d!==e.ModuleKind.AMD?t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(n.name,O(n))),n),n)):e.append(t,e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedClone(n.name),void 0,O(n))],u>=2?2:0)),n),n)):e.hasModifier(n,1)&&(t=e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(e.getExportName(n),e.getLocalName(n))),n),n)));if(w(n)){var r=e.getOriginalNodeId(n);h[r]=G(h[r],n)}else t=G(t,n);return e.singleOrMany(t)}(n);case 259:return function(n){if(!n.moduleSpecifier)return;var t=e.getGeneratedNameForNode(n);if(n.exportClause){var a=[];d!==e.ModuleKind.AMD&&a.push(e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(t,void 0,O(n))])),n),n));for(var i=0,o=n.exportClause.elements;i<o.length;i++){var s=o[i],c=e.createPropertyAccess(t,s.propertyName||s.name);a.push(e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(e.getExportName(s),c)),s),s))}return e.singleOrMany(a)}return e.setOriginalNode(e.setTextRange(e.createExpressionStatement(function(n,t){return n.getCompilerOptions().importHelpers?e.createCall(e.getUnscopedHelperName(\"__exportStar\"),void 0,[t,e.createIdentifier(\"exports\")]):e.createCall(e.createIdentifier(\"__export\"),void 0,[t])}(r,d!==e.ModuleKind.AMD?O(n):t)),n),n)}(n);case 258:return function(n){if(n.isExportEquals)return;var t,r=n.original;if(r&&w(r)){var a=e.getOriginalNodeId(n);h[a]=K(h[a],e.createIdentifier(\"default\"),e.visitNode(n.expression,k),n,!0)}else t=K(t,e.createIdentifier(\"default\"),e.visitNode(n.expression,k),n,!0);return e.singleOrMany(t)}(n);case 224:return function(n){var t,a,i;if(e.hasModifier(n,1)){for(var o=void 0,s=0,c=n.declarationList.declarations;s<c.length;s++){var l=c[s];e.isIdentifier(l.name)&&e.isLocalName(l.name)?(o||(o=e.visitNodes(n.modifiers,z,e.isModifier)),a=e.append(a,l)):l.initializer&&(i=e.append(i,P(l)))}a&&(t=e.append(t,e.updateVariableStatement(n,o,e.updateVariableDeclarationList(n.declarationList,a)))),i&&(t=e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(e.inlineExpressions(i)),n),n)))}else t=e.append(t,e.visitEachChild(n,k,r));if(w(n)){var u=e.getOriginalNodeId(n);h[u]=B(h[u],n)}else t=B(t,n);return e.singleOrMany(t)}(n);case 243:return function(n){var t;t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createFunctionDeclaration(void 0,e.visitNodes(n.modifiers,z,e.isModifier),n.asteriskToken,e.getDeclarationName(n,!0,!0),void 0,e.visitNodes(n.parameters,k),void 0,e.visitEachChild(n.body,k,r)),n),n)):e.append(t,e.visitEachChild(n,k,r));if(w(n)){var a=e.getOriginalNodeId(n);h[a]=U(h[a],n)}else t=U(t,n);return e.singleOrMany(t)}(n);case 244:return function(n){var t;t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createClassDeclaration(void 0,e.visitNodes(n.modifiers,z,e.isModifier),e.getDeclarationName(n,!0,!0),void 0,e.visitNodes(n.heritageClauses,k),e.visitNodes(n.members,k)),n),n)):e.append(t,e.visitEachChild(n,k,r));if(w(n)){var a=e.getOriginalNodeId(n);h[a]=U(h[a],n)}else t=U(t,n);return e.singleOrMany(t)}(n);case 321:return function(n){if(w(n)&&224===n.original.kind){var t=e.getOriginalNodeId(n);h[t]=B(h[t],n.original)}return n}(n);case 322:return function(n){var t=e.getOriginalNodeId(n),r=h[t];if(r)return delete h[t],e.append(r,n);return n}(n);default:return e.visitEachChild(n,k,r)}}function k(n){return 524288&n.transformFlags||512&n.transformFlags?e.isImportCall(n)?function(n){var t=e.visitNode(e.firstOrUndefined(n.arguments),k),r=!!(2048&n.transformFlags);switch(s.module){case e.ModuleKind.AMD:return N(t,r);case e.ModuleKind.UMD:return function(n,t){if(y=!0,e.isSimpleCopiableExpression(n)){var r=e.isGeneratedIdentifier(n)?n:e.isStringLiteral(n)?e.createLiteral(n):e.setEmitFlags(e.setTextRange(e.getSynthesizedClone(n),n),1536);return e.createConditional(e.createIdentifier(\"__syncRequire\"),I(n,t),N(r,t))}var a=e.createTempVariable(o);return e.createComma(e.createAssignment(a,n),e.createConditional(e.createIdentifier(\"__syncRequire\"),I(a,t),N(a,t)))}(t,r);case e.ModuleKind.CommonJS:default:return I(t,r)}}(n):e.isDestructuringAssignment(n)?function(n){if(function n(t){if(e.isObjectLiteralExpression(t))for(var r=0,a=t.properties;r<a.length;r++){switch((s=a[r]).kind){case 279:if(n(s.initializer))return!0;break;case 280:if(n(s.name))return!0;break;case 281:if(n(s.expression))return!0;break;case 160:case 162:case 163:return!1;default:e.Debug.assertNever(s,\"Unhandled object member kind\")}}else if(e.isArrayLiteralExpression(t))for(var i=0,o=t.elements;i<o.length;i++){var s=o[i];if(e.isSpreadElement(s)){if(n(s.expression))return!0}else if(n(s))return!0}else if(e.isIdentifier(t))return e.length(J(t))>(e.isExportName(t)?1:0);return!1}(n.left))return e.flattenDestructuringAssignment(n,k,r,0,!1,R);return e.visitEachChild(n,k,r)}(n):e.visitEachChild(n,k,r):n}function N(n,t){var a,i=e.createUniqueName(\"resolve\"),o=e.createUniqueName(\"reject\"),c=[e.createParameter(void 0,void 0,void 0,i),e.createParameter(void 0,void 0,void 0,o)],l=e.createBlock([e.createExpressionStatement(e.createCall(e.createIdentifier(\"require\"),void 0,[e.createArrayLiteral([n||e.createOmittedExpression()]),i,o]))]);u>=2?a=e.createArrowFunction(void 0,void 0,c,void 0,void 0,l):(a=e.createFunctionExpression(void 0,void 0,void 0,void 0,c,void 0,l),t&&e.setEmitFlags(a,8));var d=e.createNew(e.createIdentifier(\"Promise\"),void 0,[a]);return s.esModuleInterop?(r.requestEmitHelper(e.importStarHelper),e.createCall(e.createPropertyAccess(d,e.createIdentifier(\"then\")),void 0,[e.getUnscopedHelperName(\"__importStar\")])):d}function I(n,t){var a,i=e.createCall(e.createPropertyAccess(e.createIdentifier(\"Promise\"),\"resolve\"),void 0,[]),o=e.createCall(e.createIdentifier(\"require\"),void 0,n?[n]:[]);return s.esModuleInterop&&(r.requestEmitHelper(e.importStarHelper),o=e.createCall(e.getUnscopedHelperName(\"__importStar\"),void 0,[o])),u>=2?a=e.createArrowFunction(void 0,void 0,[],void 0,void 0,o):(a=e.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,e.createBlock([e.createReturn(o)])),t&&e.setEmitFlags(a,8)),e.createCall(e.createPropertyAccess(i,\"then\"),void 0,[a])}function M(n,t){return!s.esModuleInterop||67108864&e.getEmitFlags(n)?t:e.getImportNeedsImportStarHelper(n)?(r.requestEmitHelper(e.importStarHelper),e.createCall(e.getUnscopedHelperName(\"__importStar\"),void 0,[t])):e.getImportNeedsImportDefaultHelper(n)?(r.requestEmitHelper(e.importDefaultHelper),e.createCall(e.getUnscopedHelperName(\"__importDefault\"),void 0,[t])):t}function O(n){var t=e.getExternalModuleNameLiteral(n,f,l,c,s),r=[];return t&&r.push(t),e.createCall(e.createIdentifier(\"require\"),void 0,r)}function R(n,t,r){var a=J(n);if(a){for(var i=e.isExportName(n)?t:e.createAssignment(n,t),o=0,s=a;o<s.length;o++){var c=s[o];e.setEmitFlags(i,4),i=W(c,i,r)}return i}return e.createAssignment(n,t)}function P(n){return e.isBindingPattern(n.name)?e.flattenDestructuringAssignment(e.visitNode(n,k),void 0,r,0,!1,R):e.createAssignment(e.setTextRange(e.createPropertyAccess(e.createIdentifier(\"exports\"),n.name),n.name),e.visitNode(n.initializer,k))}function w(n){return 0!=(4194304&e.getEmitFlags(n))}function F(e,n){if(_.exportEquals)return e;var t=n.importClause;if(!t)return e;t.name&&(e=j(e,t));var r=t.namedBindings;if(r)switch(r.kind){case 255:e=j(e,r);break;case 256:for(var a=0,i=r.elements;a<i.length;a++){e=j(e,i[a])}}return e}function G(e,n){return _.exportEquals?e:j(e,n)}function B(e,n){if(_.exportEquals)return e;for(var t=0,r=n.declarationList.declarations;t<r.length;t++){e=V(e,r[t])}return e}function V(n,t){if(_.exportEquals)return n;if(e.isBindingPattern(t.name))for(var r=0,a=t.name.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||(n=V(n,i))}else e.isGeneratedIdentifier(t.name)||(n=j(n,t));return n}function U(n,t){if(_.exportEquals)return n;e.hasModifier(t,1)&&(n=K(n,e.hasModifier(t,512)?e.createIdentifier(\"default\"):e.getDeclarationName(t),e.getLocalName(t),t));return t.name&&(n=j(n,t)),n}function j(n,t){var r=e.getDeclarationName(t),a=_.exportSpecifiers.get(e.idText(r));if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];n=K(n,s.name,r,s.name)}return n}function K(n,t,r,a,i){return n=e.append(n,function(n,t,r,a){var i=e.setTextRange(e.createExpressionStatement(W(n,t)),r);e.startOnNewLine(i),a||e.setEmitFlags(i,1536);return i}(t,r,a,i))}function H(){var n;return n=0===u?e.createExpressionStatement(W(e.createIdentifier(\"__esModule\"),e.createLiteral(!0))):e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[e.createIdentifier(\"exports\"),e.createLiteral(\"__esModule\"),e.createObjectLiteral([e.createPropertyAssignment(\"value\",e.createLiteral(!0))])])),e.setEmitFlags(n,1048576),n}function W(n,t,r){return e.setTextRange(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.getSynthesizedClone(n)),t),r)}function z(e){switch(e.kind){case 88:case 83:return}return e}function q(n){if(4096&e.getEmitFlags(n)){var t=e.getExternalHelpersModuleName(f);return t?e.createPropertyAccess(t,n):n}if(!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var r=c.getReferencedExportContainer(n,e.isExportName(n));if(r&&288===r.kind)return e.setTextRange(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.getSynthesizedClone(n)),n);var a=c.getReferencedImportDeclaration(n);if(a){if(e.isImportClause(a))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(a.parent),e.createIdentifier(\"default\")),n);if(e.isImportSpecifier(a)){var i=a.propertyName||a.name;return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(a.parent.parent.parent),e.getSynthesizedClone(i)),n)}}}return n}function J(n){if(!e.isGeneratedIdentifier(n)){var t=c.getReferencedImportDeclaration(n)||c.getReferencedValueDeclaration(n);if(t)return _&&_.exportedBindings[e.getOriginalNodeId(t)]}}};var n={name:\"typescript:export-star\",scoped:!0,text:\"\\n            function __export(m) {\\n                for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\\n            }\"};var t={name:\"typescript:dynamicimport-sync-require\",scoped:!0,text:'\\n            var __syncRequire = typeof module === \"object\" && typeof module.exports === \"object\";'};e.importStarHelper={name:\"typescript:commonjsimportstar\",importName:\"__importStar\",scoped:!1,text:'\\nvar __importStar = (this && this.__importStar) || function (mod) {\\n    if (mod && mod.__esModule) return mod;\\n    var result = {};\\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\\n    result[\"default\"] = mod;\\n    return result;\\n};'},e.importDefaultHelper={name:\"typescript:commonjsimportdefault\",importName:\"__importDefault\",scoped:!1,text:'\\nvar __importDefault = (this && this.__importDefault) || function (mod) {\\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\\n};'}}(ts||(ts={})),function(e){e.transformSystemModule=function(n){var t=n.startLexicalEnvironment,r=n.endLexicalEnvironment,a=n.hoistVariableDeclaration,i=n.getCompilerOptions(),o=n.getEmitResolver(),s=n.getEmitHost(),c=n.onSubstituteNode,l=n.onEmitNode;n.onSubstituteNode=function(n,t){if(function(e){return g&&e.id&&g[e.id]}(t=c(n,t)))return t;if(1===n)return function(n){switch(n.kind){case 75:return function(n){if(4096&e.getEmitFlags(n)){var t=e.getExternalHelpersModuleName(u);return t?e.createPropertyAccess(t,n):n}if(!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var r=o.getReferencedImportDeclaration(n);if(r){if(e.isImportClause(r))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(r.parent),e.createIdentifier(\"default\")),n);if(e.isImportSpecifier(r))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(r.parent.parent.parent),e.getSynthesizedClone(r.propertyName||r.name)),n)}}return n}(n);case 208:return function(n){if(e.isAssignmentOperator(n.operatorToken.kind)&&e.isIdentifier(n.left)&&!e.isGeneratedIdentifier(n.left)&&!e.isLocalName(n.left)&&!e.isDeclarationNameOfEnumOrNamespace(n.left)){var t=z(n.left);if(t){for(var r=n,a=0,i=t;a<i.length;a++){var o=i[a];r=V(o,q(r))}return r}}return n}(n);case 206:case 207:return function(n){if((45===n.operator||46===n.operator)&&e.isIdentifier(n.operand)&&!e.isGeneratedIdentifier(n.operand)&&!e.isLocalName(n.operand)&&!e.isDeclarationNameOfEnumOrNamespace(n.operand)){var t=z(n.operand);if(t){for(var r=207===n.kind?e.setTextRange(e.createPrefix(n.operator,n.operand),n):n,a=0,i=t;a<i.length;a++){var o=i[a];r=V(o,q(r))}return 207===n.kind&&(r=45===n.operator?e.createSubtract(q(r),e.createLiteral(1)):e.createAdd(q(r),e.createLiteral(1))),r}}return n}(n);case 218:return function(n){if(e.isImportMeta(n))return e.createPropertyAccess(m,e.createIdentifier(\"meta\"));return n}(n)}return n}(t);if(4===n)return function(n){switch(n.kind){case 280:return function(n){var t=n.name;if(!e.isGeneratedIdentifier(t)&&!e.isLocalName(t)){var r=o.getReferencedImportDeclaration(t);if(r){if(e.isImportClause(r))return e.setTextRange(e.createPropertyAssignment(e.getSynthesizedClone(t),e.createPropertyAccess(e.getGeneratedNameForNode(r.parent),e.createIdentifier(\"default\"))),n);if(e.isImportSpecifier(r))return e.setTextRange(e.createPropertyAssignment(e.getSynthesizedClone(t),e.createPropertyAccess(e.getGeneratedNameForNode(r.parent.parent.parent),e.getSynthesizedClone(r.propertyName||r.name))),n)}}return n}(n)}return n}(t);return t},n.onEmitNode=function(n,t,r){if(288===t.kind){var a=e.getOriginalNodeId(t);u=t,d=y[a],p=h[a],g=b[a],m=E[a],g&&delete b[a],l(n,t,r),u=void 0,d=void 0,p=void 0,m=void 0,g=void 0}else l(n,t,r)},n.enableSubstitution(75),n.enableSubstitution(280),n.enableSubstitution(208),n.enableSubstitution(206),n.enableSubstitution(207),n.enableSubstitution(218),n.enableEmitNotification(288);var u,d,p,m,f,_,g,y=[],v=[],h=[],b=[],E=[];return e.chainBundle((function(n){if(n.isDeclarationFile||!(e.isEffectiveExternalModule(n,i)||524288&n.transformFlags))return n;var a=e.getOriginalNodeId(n);u=n,_=n,d=y[a]=e.collectExternalModuleInfo(n,o,i),p=e.createUniqueName(\"exports\"),h[a]=p,m=E[a]=e.createUniqueName(\"context\");var c=function(n){for(var t=e.createMap(),r=[],a=0,c=n;a<c.length;a++){var l=c[a],d=e.getExternalModuleNameLiteral(l,u,s,o,i);if(d){var p=d.text,m=t.get(p);void 0!==m?r[m].externalImports.push(l):(t.set(p,r.length),r.push({name:d,externalImports:[l]}))}}return r}(d.externalImports),l=function(n,a){var o=[];t();var s=e.getStrictOptionValue(i,\"alwaysStrict\")||!i.noImplicitUseStrict&&e.isExternalModule(u),c=e.addPrologue(o,n.statements,s,x);o.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(\"__moduleName\",void 0,e.createLogicalAnd(m,e.createPropertyAccess(m,\"id\")))]))),e.visitNode(d.externalHelpersImportDeclaration,x,e.isStatement);var l=e.visitNodes(n.statements,x,e.isStatement,c);e.addRange(o,f),e.insertStatementsAfterStandardPrologue(o,r());var p=function(n){if(!d.hasExportStarsToExportValues)return;if(!d.exportedNames&&0===d.exportSpecifiers.size){for(var t=!1,r=0,a=d.externalImports;r<a.length;r++){if(259===(m=a[r]).kind&&m.exportClause){t=!0;break}}if(!t){var i=T(void 0);return n.push(i),i.name}}var o=[];if(d.exportedNames)for(var s=0,c=d.exportedNames;s<c.length;s++){var l=c[s];\"default\"!==l.escapedText&&o.push(e.createPropertyAssignment(e.createLiteral(l),e.createTrue()))}for(var u=0,p=d.externalImports;u<p.length;u++){var m;if(259===(m=p[u]).kind&&m.exportClause)for(var f=0,_=m.exportClause.elements;f<_.length;f++){var g=_[f];o.push(e.createPropertyAssignment(e.createLiteral(e.idText(g.name||g.propertyName)),e.createTrue()))}}var y=e.createUniqueName(\"exportedNames\");n.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(y,void 0,e.createObjectLiteral(o,!0))])));var v=T(y);return n.push(v),v.name}(o),_=e.createObjectLiteral([e.createPropertyAssignment(\"setters\",S(p,a)),e.createPropertyAssignment(\"execute\",e.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,e.createBlock(l,!0)))]);return _.multiLine=!0,o.push(e.createReturn(_)),e.createBlock(o,!0)}(n,c),v=e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,p),e.createParameter(void 0,void 0,void 0,m)],void 0,l),L=e.tryGetModuleNameFromFile(n,s,i),C=e.createArrayLiteral(e.map(c,(function(e){return e.name}))),A=e.setEmitFlags(e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createIdentifier(\"System\"),\"register\"),void 0,L?[L,C,v]:[C,v]))]),n.statements)),1024);i.outFile||i.out||e.moveEmitHelpers(A,l,(function(e){return!e.scoped}));g&&(b[a]=g,g=void 0);return u=void 0,d=void 0,p=void 0,m=void 0,f=void 0,_=void 0,e.aggregateTransformFlags(A)}));function T(n){var t=e.createUniqueName(\"exportStar\"),r=e.createIdentifier(\"m\"),a=e.createIdentifier(\"n\"),i=e.createIdentifier(\"exports\"),o=e.createStrictInequality(a,e.createLiteral(\"default\"));return n&&(o=e.createLogicalAnd(o,e.createLogicalNot(e.createCall(e.createPropertyAccess(n,\"hasOwnProperty\"),void 0,[a])))),e.createFunctionDeclaration(void 0,void 0,void 0,t,void 0,[e.createParameter(void 0,void 0,void 0,r)],void 0,e.createBlock([e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(i,void 0,e.createObjectLiteral([]))])),e.createForIn(e.createVariableDeclarationList([e.createVariableDeclaration(a,void 0)]),r,e.createBlock([e.setEmitFlags(e.createIf(o,e.createExpressionStatement(e.createAssignment(e.createElementAccess(i,a),e.createElementAccess(r,a)))),1)])),e.createExpressionStatement(e.createCall(p,void 0,[i]))],!0))}function S(n,t){for(var r=[],a=0,i=t;a<i.length;a++){for(var o=i[a],s=e.forEach(o.externalImports,(function(n){return e.getLocalNameForExternalImport(n,u)})),c=s?e.getGeneratedNameForNode(s):e.createUniqueName(\"\"),l=[],d=0,m=o.externalImports;d<m.length;d++){var f=m[d],_=e.getLocalNameForExternalImport(f,u);switch(f.kind){case 253:if(!f.importClause)break;case 252:e.Debug.assert(void 0!==_),l.push(e.createExpressionStatement(e.createAssignment(_,c)));break;case 259:if(e.Debug.assert(void 0!==_),f.exportClause){for(var g=[],y=0,v=f.exportClause.elements;y<v.length;y++){var h=v[y];g.push(e.createPropertyAssignment(e.createLiteral(e.idText(h.name)),e.createElementAccess(c,e.createLiteral(e.idText(h.propertyName||h.name)))))}l.push(e.createExpressionStatement(e.createCall(p,void 0,[e.createObjectLiteral(g,!0)])))}else l.push(e.createExpressionStatement(e.createCall(n,void 0,[c])))}}r.push(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,c)],void 0,e.createBlock(l,!0)))}return e.createArrayLiteral(r,!0)}function x(n){switch(n.kind){case 253:return function(n){var t;n.importClause&&a(e.getLocalNameForExternalImport(n,u));if(I(n)){var r=e.getOriginalNodeId(n);v[r]=M(v[r],n)}else t=M(t,n);return e.singleOrMany(t)}(n);case 252:return function(n){var t;if(e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(n),\"import= for internal module references should be handled in an earlier transformer.\"),a(e.getLocalNameForExternalImport(n,u)),I(n)){var r=e.getOriginalNodeId(n);v[r]=O(v[r],n)}else t=O(t,n);return e.singleOrMany(t)}(n);case 259:return;case 258:return function(n){if(n.isExportEquals)return;var t=e.visitNode(n.expression,K,e.isExpression),r=n.original;if(!r||!I(r))return B(e.createIdentifier(\"default\"),t,!0);var a=e.getOriginalNodeId(n);v[a]=G(v[a],e.createIdentifier(\"default\"),t,!0)}(n);default:return U(n)}}function L(n){if(e.isBindingPattern(n.name))for(var t=0,r=n.name.elements;t<r.length;t++){var i=r[t];e.isOmittedExpression(i)||L(i)}else a(e.getSynthesizedClone(n.name))}function C(n){return 0==(2097152&e.getEmitFlags(n))&&(288===_.kind||0==(3&e.getOriginalNode(n).flags))}function A(t,r){var a=r?D:k;return e.isBindingPattern(t.name)?e.flattenDestructuringAssignment(t,K,n,0,!1,a):t.initializer?a(t.name,e.visitNode(t.initializer,K,e.isExpression)):t.name}function D(e,n,t){return N(e,n,t,!0)}function k(e,n,t){return N(e,n,t,!1)}function N(n,t,r,i){return a(e.getSynthesizedClone(n)),i?V(n,q(e.setTextRange(e.createAssignment(n,t),r))):q(e.setTextRange(e.createAssignment(n,t),r))}function I(n){return 0!=(4194304&e.getEmitFlags(n))}function M(e,n){if(d.exportEquals)return e;var t=n.importClause;if(!t)return e;t.name&&(e=F(e,t));var r=t.namedBindings;if(r)switch(r.kind){case 255:e=F(e,r);break;case 256:for(var a=0,i=r.elements;a<i.length;a++){e=F(e,i[a])}}return e}function O(e,n){return d.exportEquals?e:F(e,n)}function R(e,n,t){if(d.exportEquals)return e;for(var r=0,a=n.declarationList.declarations;r<a.length;r++){var i=a[r];(i.initializer||t)&&(e=P(e,i,t))}return e}function P(n,t,r){if(d.exportEquals)return n;if(e.isBindingPattern(t.name))for(var a=0,i=t.name.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||(n=P(n,o,r))}else if(!e.isGeneratedIdentifier(t.name)){var s=void 0;r&&(n=G(n,t.name,e.getLocalName(t)),s=e.idText(t.name)),n=F(n,t,s)}return n}function w(n,t){if(d.exportEquals)return n;var r;if(e.hasModifier(t,1)){var a=e.hasModifier(t,512)?e.createLiteral(\"default\"):t.name;n=G(n,a,e.getLocalName(t)),r=e.getTextOfIdentifierOrLiteral(a)}return t.name&&(n=F(n,t,r)),n}function F(n,t,r){if(d.exportEquals)return n;var a=e.getDeclarationName(t),i=d.exportSpecifiers.get(e.idText(a));if(i)for(var o=0,s=i;o<s.length;o++){var c=s[o];c.name.escapedText!==r&&(n=G(n,c.name,a))}return n}function G(n,t,r,a){return n=e.append(n,B(t,r,a))}function B(n,t,r){var a=e.createExpressionStatement(V(n,t));return e.startOnNewLine(a),r||e.setEmitFlags(a,1536),a}function V(n,t){var r=e.isIdentifier(n)?e.createLiteral(n):n;return e.setEmitFlags(t,1536|e.getEmitFlags(t)),e.setCommentRange(e.createCall(p,void 0,[r,t]),t)}function U(t){switch(t.kind){case 224:return function(n){if(!C(n.declarationList))return e.visitNode(n,K,e.isStatement);for(var t,r,a=e.hasModifier(n,1),i=I(n),o=0,s=n.declarationList.declarations;o<s.length;o++){var c=s[o];c.initializer?t=e.append(t,A(c,a&&!i)):L(c)}if(t&&(r=e.append(r,e.setTextRange(e.createExpressionStatement(e.inlineExpressions(t)),n))),i){var l=e.getOriginalNodeId(n);v[l]=R(v[l],n,a)}else r=R(r,n,!1);return e.singleOrMany(r)}(t);case 243:return function(t){if(f=e.hasModifier(t,1)?e.append(f,e.updateFunctionDeclaration(t,t.decorators,e.visitNodes(t.modifiers,W,e.isModifier),t.asteriskToken,e.getDeclarationName(t,!0,!0),void 0,e.visitNodes(t.parameters,K,e.isParameterDeclaration),void 0,e.visitNode(t.body,K,e.isBlock))):e.append(f,e.visitEachChild(t,K,n)),I(t)){var r=e.getOriginalNodeId(t);v[r]=w(v[r],t)}else f=w(f,t)}(t);case 244:return function(n){var t,r=e.getLocalName(n);if(a(r),t=e.append(t,e.setTextRange(e.createExpressionStatement(e.createAssignment(r,e.setTextRange(e.createClassExpression(void 0,n.name,void 0,e.visitNodes(n.heritageClauses,K,e.isHeritageClause),e.visitNodes(n.members,K,e.isClassElement)),n))),n)),I(n)){var i=e.getOriginalNodeId(n);v[i]=w(v[i],n)}else t=w(t,n);return e.singleOrMany(t)}(t);case 229:return function(n){var t=_;return _=n,n=e.updateFor(n,n.initializer&&j(n.initializer),e.visitNode(n.condition,K,e.isExpression),e.visitNode(n.incrementor,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement)),_=t,n}(t);case 230:return function(n){var t=_;return _=n,n=e.updateForIn(n,j(n.initializer),e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock)),_=t,n}(t);case 231:return function(n){var t=_;return _=n,n=e.updateForOf(n,n.awaitModifier,j(n.initializer),e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock)),_=t,n}(t);case 227:return function(n){return e.updateDo(n,e.visitNode(n.statement,U,e.isStatement,e.liftToBlock),e.visitNode(n.expression,K,e.isExpression))}(t);case 228:return function(n){return e.updateWhile(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 237:return function(n){return e.updateLabel(n,n.label,e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 235:return function(n){return e.updateWith(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 236:return function(n){return e.updateSwitch(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.caseBlock,U,e.isCaseBlock))}(t);case 250:return function(n){var t=_;return _=n,n=e.updateCaseBlock(n,e.visitNodes(n.clauses,U,e.isCaseOrDefaultClause)),_=t,n}(t);case 275:return function(n){return e.updateCaseClause(n,e.visitNode(n.expression,K,e.isExpression),e.visitNodes(n.statements,U,e.isStatement))}(t);case 276:case 239:return function(t){return e.visitEachChild(t,U,n)}(t);case 278:return function(n){var t=_;return _=n,n=e.updateCatchClause(n,n.variableDeclaration,e.visitNode(n.block,U,e.isBlock)),_=t,n}(t);case 222:return function(t){var r=_;return _=t,t=e.visitEachChild(t,U,n),_=r,t}(t);case 321:return function(n){if(I(n)&&224===n.original.kind){var t=e.getOriginalNodeId(n),r=e.hasModifier(n.original,1);v[t]=R(v[t],n.original,r)}return n}(t);case 322:return function(n){var t=e.getOriginalNodeId(n),r=v[t];if(r)return delete v[t],e.append(r,n);var a=e.getOriginalNode(n);return e.isModuleOrEnumDeclaration(a)?e.append(F(r,a),n):n}(t);default:return K(t)}}function j(t){if(function(n){return e.isVariableDeclarationList(n)&&C(n)}(t)){for(var r=void 0,a=0,i=t.declarations;a<i.length;a++){var o=i[a];r=e.append(r,A(o,!1)),o.initializer||L(o)}return r?e.inlineExpressions(r):e.createOmittedExpression()}return e.visitEachChild(t,U,n)}function K(t){return e.isDestructuringAssignment(t)?function(t){if(H(t.left))return e.flattenDestructuringAssignment(t,K,n,0,!0);return e.visitEachChild(t,K,n)}(t):e.isImportCall(t)?function(n){return e.createCall(e.createPropertyAccess(m,e.createIdentifier(\"import\")),void 0,e.some(n.arguments)?[e.visitNode(n.arguments[0],K)]:[])}(t):512&t.transformFlags||524288&t.transformFlags?e.visitEachChild(t,K,n):t}function H(n){if(e.isAssignmentExpression(n,!0))return H(n.left);if(e.isSpreadElement(n))return H(n.expression);if(e.isObjectLiteralExpression(n))return e.some(n.properties,H);if(e.isArrayLiteralExpression(n))return e.some(n.elements,H);if(e.isShorthandPropertyAssignment(n))return H(n.name);if(e.isPropertyAssignment(n))return H(n.initializer);if(e.isIdentifier(n)){var t=o.getReferencedExportContainer(n);return void 0!==t&&288===t.kind}return!1}function W(e){switch(e.kind){case 88:case 83:return}return e}function z(n){var t;if(!e.isGeneratedIdentifier(n)){var r=o.getReferencedImportDeclaration(n)||o.getReferencedValueDeclaration(n);if(r){var a=o.getReferencedExportContainer(n,!1);a&&288===a.kind&&(t=e.append(t,e.getDeclarationName(r))),t=e.addRange(t,d&&d.exportedBindings[e.getOriginalNodeId(r)])}}return t}function q(n){return void 0===g&&(g=[]),g[e.getNodeId(n)]=!0,n}}}(ts||(ts={})),function(e){e.transformES2015Module=function(n){var t,r=n.getCompilerOptions(),a=n.onEmitNode,i=n.onSubstituteNode;return n.onEmitNode=function(n,r,i){e.isSourceFile(r)?(t=e.createMap(),a(n,r,i),t=void 0):a(n,r,i)},n.onSubstituteNode=function(n,r){if(r=i(n,r),t&&e.isIdentifier(r)&&4096&e.getEmitFlags(r))return function(n){var r=e.idText(n),a=t.get(r);a||t.set(r,a=e.createFileLevelUniqueName(r));return a}(r);return r},n.enableEmitNotification(288),n.enableSubstitution(75),e.chainBundle((function(t){if(t.isDeclarationFile)return t;if(e.isExternalModule(t)||r.isolatedModules){var a=e.createExternalHelpersImportDeclarationIfNeeded(t,r);if(a){var i=[],s=e.addPrologue(i,t.statements);return e.append(i,a),e.addRange(i,e.visitNodes(t.statements,o,e.isStatement,s)),e.updateSourceFileNode(t,e.setTextRange(e.createNodeArray(i),t.statements))}return e.visitEachChild(t,o,n)}return t}));function o(e){switch(e.kind){case 252:return;case 258:return function(e){return e.isExportEquals?void 0:e}(e)}return e}}}(ts||(ts={})),function(e){function n(n){return e.isVariableDeclaration(n)||e.isPropertyDeclaration(n)||e.isPropertySignature(n)||e.isPropertyAccessExpression(n)||e.isBindingElement(n)||e.isConstructorDeclaration(n)?t:e.isSetAccessor(n)||e.isGetAccessor(n)?function(t){var r;r=163===n.kind?e.hasModifier(n,32)?t.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;return{diagnosticMessage:r,errorNode:n.name,typeName:n.name}}:e.isConstructSignatureDeclaration(n)||e.isCallSignatureDeclaration(n)||e.isMethodDeclaration(n)||e.isMethodSignature(n)||e.isFunctionDeclaration(n)||e.isIndexSignatureDeclaration(n)?function(t){var r;switch(n.kind){case 165:r=t.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 164:r=t.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 166:r=t.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 160:case 159:r=e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:244===n.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:t.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 243:r=t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail(\"This is unknown kind for signature: \"+n.kind)}return{diagnosticMessage:r,errorNode:n.name||n}}:e.isParameter(n)?e.isParameterPropertyDeclaration(n,n.parent)&&e.hasModifier(n.parent,8)?t:function(t){var r=function(t){switch(n.parent.kind){case 161:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 165:case 170:return t.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 164:return t.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 166:return t.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 160:case 159:return e.hasModifier(n.parent,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:244===n.parent.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 243:case 169:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 163:case 162:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail(\"Unknown parent for parameter: \"+e.SyntaxKind[n.parent.kind])}}(t);return void 0!==r?{diagnosticMessage:r,errorNode:n,typeName:n.name}:void 0}:e.isTypeParameterDeclaration(n)?function(){var t;switch(n.parent.kind){case 244:t=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 245:t=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 185:t=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 170:case 165:t=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 164:t=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 160:case 159:t=e.hasModifier(n.parent,32)?e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:244===n.parent.parent.kind?e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 243:t=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 246:t=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail(\"This is unknown parent for type parameter: \"+n.parent.kind)}return{diagnosticMessage:t,errorNode:n,typeName:n.name}}:e.isExpressionWithTypeArguments(n)?function(){var t;t=244===n.parent.parent.kind?e.isHeritageClause(n.parent)&&112===n.parent.token?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;return{diagnosticMessage:t,errorNode:n,typeName:e.getNameOfDeclaration(n.parent.parent)}}:e.isImportEqualsDeclaration(n)?function(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:n,typeName:n.name}}:e.isTypeAliasDeclaration(n)?function(){return{diagnosticMessage:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:n.type,typeName:n.name}}:e.Debug.assertNever(n,\"Attempted to set a declaration diagnostic context for unhandled node kind: \"+e.SyntaxKind[n.kind]);function t(t){var r=function(t){return 241===n.kind||190===n.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1:158===n.kind||193===n.kind||157===n.kind||155===n.kind&&e.hasModifier(n.parent,8)?e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:244===n.parent.kind||155===n.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1:void 0}(t);return void 0!==r?{diagnosticMessage:r,errorNode:n,typeName:n.name}:void 0}}e.canProduceDiagnostics=function(n){return e.isVariableDeclaration(n)||e.isPropertyDeclaration(n)||e.isPropertySignature(n)||e.isBindingElement(n)||e.isSetAccessor(n)||e.isGetAccessor(n)||e.isConstructSignatureDeclaration(n)||e.isCallSignatureDeclaration(n)||e.isMethodDeclaration(n)||e.isMethodSignature(n)||e.isFunctionDeclaration(n)||e.isParameter(n)||e.isTypeParameterDeclaration(n)||e.isExpressionWithTypeArguments(n)||e.isImportEqualsDeclaration(n)||e.isTypeAliasDeclaration(n)||e.isConstructorDeclaration(n)||e.isIndexSignatureDeclaration(n)||e.isPropertyAccessExpression(n)},e.createGetSymbolAccessibilityDiagnosticForNodeName=function(t){return e.isSetAccessor(t)||e.isGetAccessor(t)?function(n){var r=function(n){return e.hasModifier(t,32)?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:244===t.parent.kind?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:n.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}(n);return void 0!==r?{diagnosticMessage:r,errorNode:t,typeName:t.name}:void 0}:e.isMethodSignature(t)||e.isMethodDeclaration(t)?function(n){var r=function(n){return e.hasModifier(t,32)?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:244===t.parent.kind?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:n.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}(n);return void 0!==r?{diagnosticMessage:r,errorNode:t,typeName:t.name}:void 0}:n(t)},e.createGetSymbolAccessibilityDiagnosticForNode=n}(ts||(ts={})),function(e){function n(n,t){var r=t.text.substring(n.pos,n.end);return e.stringContains(r,\"@internal\")}function t(t,r){var a=e.getParseTreeNode(t);if(a&&155===a.kind){var i=a.parent.parameters.indexOf(a),o=i>0?a.parent.parameters[i-1]:void 0,s=r.text,c=o?e.concatenate(e.getTrailingCommentRanges(s,e.skipTrivia(s,o.end+1,!1,!0)),e.getLeadingCommentRanges(s,t.pos)):e.getTrailingCommentRanges(s,e.skipTrivia(s,t.pos,!1,!0));return c&&c.length&&n(e.last(c),r)}var l=a&&e.getLeadingCommentRangesOfNode(a,r);return!!e.forEach(l,(function(e){return n(e,r)}))}e.getDeclarationDiagnostics=function(n,t,a){if(a&&e.isJsonSourceFile(a))return[];var i=n.getCompilerOptions();return e.transformNodes(t,n,i,a?[a]:e.filter(n.getSourceFiles(),e.isSourceFileNotJson),[r],!1).diagnostics},e.isInternalDeclaration=t;function r(n){var r,o,s,c,l,u,d,p,m,f,_,g=function(){return e.Debug.fail(\"Diagnostic emitted without context\")},y=g,v=!0,h=!1,b=!1,E=!1,T=!1,S=n.getEmitHost(),x={trackSymbol:function(e,n,t){if(262144&e.flags)return;N(L.isSymbolAccessible(e,n,t,!0)),k(L.getTypeReferenceDirectivesForSymbol(e,t))},reportInaccessibleThisError:function(){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(d),\"this\"))},reportInaccessibleUniqueSymbolError:function(){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(d),\"unique symbol\"))},reportPrivateInBaseOfClassExpression:function(t){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.Property_0_of_exported_class_expression_may_not_be_private_or_protected,t))},reportLikelyUnsafeImportRequiredError:function(t){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary,e.declarationNameToString(d),t))},moduleResolverHost:S,trackReferencedAmbientModule:function(n,t){var r=L.getTypeReferenceDirectivesForSymbol(t,67108863);if(e.length(r))return k(r);var a=e.getSourceFileOfNode(n);m.set(\"\"+e.getOriginalNodeId(a),a)},trackExternalModuleSymbolOfImportTypeNode:function(e){h||(u||(u=[])).push(e)}},L=n.getEmitResolver(),C=n.getCompilerOptions(),A=C.noResolve,D=C.stripInternal;return function(t){if(288===t.kind&&t.isDeclarationFile)return t;if(289===t.kind){h=!0,m=e.createMap(),f=e.createMap();var a=!1,i=e.createBundle(e.map(t.sourceFiles,(function(t){if(!t.isDeclarationFile){if(a=a||t.hasNoDefaultLib,p=t,r=t,s=void 0,l=!1,c=e.createMap(),y=g,E=!1,T=!1,M(t,m),O(t,f),e.isExternalOrCommonJsModule(t)||e.isJsonSourceFile(t)){b=!1,v=!1;var i=e.isSourceFileJS(t)?e.createNodeArray(I(t,!0)):e.visitNodes(t.statements,X);return e.updateSourceFileNode(t,[e.createModuleDeclaration([],[e.createModifier(129)],e.createLiteral(e.getResolvedExternalModuleName(n.getEmitHost(),t)),e.createModuleBlock(e.setTextRange(e.createNodeArray(q(i)),t.statements)))],!0,[],[],!1,[])}v=!0;var o=e.isSourceFileJS(t)?e.createNodeArray(I(t)):e.visitNodes(t.statements,X);return e.updateSourceFileNode(t,q(o),!0,[],[],!1,[])}})),e.mapDefined(t.prepends,(function(n){if(291===n.kind){var t=e.createUnparsedSourceFile(n,\"dts\",D);return a=a||!!t.hasNoDefaultLib,M(t,m),k(t.typeReferenceDirectives),O(t,f),t}return n})));i.syntheticFileReferences=[],i.syntheticTypeReferences=G(),i.syntheticLibReferences=F(),i.hasNoDefaultLib=a;var d=e.getDirectoryPath(e.normalizeSlashes(e.getOutputPathsFor(t,S,!0).declarationFilePath)),x=V(i.syntheticFileReferences,d);return m.forEach(x),i}v=!0,E=!1,T=!1,r=t,p=t,y=g,h=!1,b=!1,l=!1,s=void 0,c=e.createMap(),o=void 0,m=M(p,e.createMap()),f=O(p,e.createMap());var L,A=[],N=e.getDirectoryPath(e.normalizeSlashes(e.getOutputPathsFor(t,S,!0).declarationFilePath)),R=V(A,N);if(e.isSourceFileJS(p))L=e.createNodeArray(I(t)),m.forEach(R),_=e.filter(L,e.isAnyImportSyntax);else{var P=e.visitNodes(t.statements,X);L=e.setTextRange(e.createNodeArray(q(P)),t.statements),m.forEach(R),_=e.filter(L,e.isAnyImportSyntax),e.isExternalModule(t)&&(!b||E&&!T)&&(L=e.setTextRange(e.createNodeArray(__spreadArrays(L,[e.createEmptyExports()])),L))}var w=e.updateSourceFileNode(t,L,!0,A,G(),t.hasNoDefaultLib,F());return w.exportedModulesFromDeclarationEmit=u,w;function F(){return e.map(e.arrayFrom(f.keys()),(function(e){return{fileName:e,pos:-1,end:-1}}))}function G(){return o?e.mapDefined(e.arrayFrom(o.keys()),B):[]}function B(n){if(_)for(var t=0,r=_;t<r.length;t++){var a=r[t];if(e.isImportEqualsDeclaration(a)&&e.isExternalModuleReference(a.moduleReference)){var i=a.moduleReference.expression;if(e.isStringLiteralLike(i)&&i.text===n)return}else if(e.isImportDeclaration(a)&&e.isStringLiteral(a.moduleSpecifier)&&a.moduleSpecifier.text===n)return}return{fileName:n,pos:-1,end:-1}}function V(n,r){return function(a){var i;if(a.isDeclarationFile)i=a.fileName;else{if(h&&e.contains(t.sourceFiles,a))return;var o=e.getOutputPathsFor(a,S,!0);i=o.declarationFilePath||o.jsFilePath||a.fileName}if(i){var s=e.moduleSpecifiers.getModuleSpecifier(__assign(__assign({},C),{baseUrl:C.baseUrl&&e.toPath(C.baseUrl,S.getCurrentDirectory(),S.getCanonicalFileName)}),p,e.toPath(r,S.getCurrentDirectory(),S.getCanonicalFileName),e.toPath(i,S.getCurrentDirectory(),S.getCanonicalFileName),S,S.getSourceFiles(),void 0,S.redirectTargetsMap);if(!e.pathIsRelative(s))return void k([s]);var c=e.getRelativePathToDirectoryOrUrl(r,i,S.getCurrentDirectory(),S.getCanonicalFileName,!1);if(e.startsWith(c,\"./\")&&e.hasExtension(c)&&(c=c.substring(2)),e.startsWith(c,\"node_modules/\")||-1!==c.indexOf(\"/node_modules/\"))return;n.push({pos:-1,end:-1,fileName:c})}}}};function k(n){if(n){o=o||e.createMap();for(var t=0,r=n;t<r.length;t++){var a=r[t];o.set(a,!0)}}}function N(t){if(0===t.accessibility){if(t&&t.aliasesToMakeVisible)if(s)for(var r=0,a=t.aliasesToMakeVisible;r<a.length;r++){var i=a[r];e.pushIfUnique(s,i)}else s=t.aliasesToMakeVisible}else{var o=y(t);o&&(o.typeName?n.addDiagnostic(e.createDiagnosticForNode(t.errorNode||o.errorNode,o.diagnosticMessage,e.getTextOfNode(o.typeName),t.errorSymbolName,t.errorModuleName)):n.addDiagnostic(e.createDiagnosticForNode(t.errorNode||o.errorNode,o.diagnosticMessage,t.errorSymbolName,t.errorModuleName)))}}function I(n,t){var r=y;y=function(t){return{diagnosticMessage:t.errorModuleName?e.Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:e.Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,errorNode:t.errorNode||n}};var a=L.getDeclarationStatementsForSourceFile(n,531469,x,t);return y=r,a}function M(n,t){return A||!e.isUnparsedSource(n)&&e.isSourceFileJS(n)?t:(e.forEach(n.referencedFiles,(function(r){var a=S.getSourceFileFromReference(n,r);a&&t.set(\"\"+e.getOriginalNodeId(a),a)})),t)}function O(n,t){return e.forEach(n.libReferenceDirectives,(function(e){S.getLibFileFromReference(e)&&t.set(e.fileName.toLocaleLowerCase(),!0)})),t}function R(n,t,r){var i;l||(i=y,y=e.createGetSymbolAccessibilityDiagnosticForNode(n));var o=e.updateParameter(n,void 0,function(n,t,r){return e.createModifiersFromModifierFlags(a(n,t,r))}(n,t),n.dotDotDotToken,function n(t){return 75===t.kind?t:189===t.kind?e.updateArrayBindingPattern(t,e.visitNodes(t.elements,r)):e.updateObjectBindingPattern(t,e.visitNodes(t.elements,r));function r(t){return 214===t.kind?t:e.updateBindingElement(t,t.dotDotDotToken,t.propertyName,n(t.name),P(t)?t.initializer:void 0)}}(n.name),L.isOptionalParameter(n)?n.questionToken||e.createToken(57):void 0,F(n,r||n.type,!0),w(n));return l||(y=i),o}function P(n){return function(n){switch(n.kind){case 158:case 157:return!e.hasModifier(n,8);case 155:case 241:return!0}return!1}(n)&&L.isLiteralConstDeclaration(e.getParseTreeNode(n))}function w(n){if(P(n))return L.createLiteralConstValue(e.getParseTreeNode(n),x)}function F(n,t,a){if((a||!e.hasModifier(n,8))&&!P(n)){var i,o=155===n.kind&&(L.isRequiredInitializedParameter(n)||L.isOptionalUninitializedParameterProperty(n));return t&&!o?e.visitNode(t,J):e.getParseTreeNode(n)?163===n.kind?e.createKeywordTypeNode(124):(d=n.name,l||(i=y,y=e.createGetSymbolAccessibilityDiagnosticForNode(n)),241===n.kind||190===n.kind?s(L.createTypeOfDeclaration(n,r,531469,x)):155===n.kind||158===n.kind||157===n.kind?n.initializer?s(L.createTypeOfDeclaration(n,r,531469,x,o)||L.createTypeOfExpression(n.initializer,r,531469,x)):s(L.createTypeOfDeclaration(n,r,531469,x,o)):s(L.createReturnTypeOfSignatureDeclaration(n,r,531469,x))):t?e.visitNode(t,J):e.createKeywordTypeNode(124)}function s(n){return d=void 0,l||(y=i),n||e.createKeywordTypeNode(124)}}function G(n){switch((n=e.getParseTreeNode(n)).kind){case 243:case 248:case 245:case 244:case 246:case 247:return!L.isDeclarationVisible(n);case 241:return!B(n);case 252:case 253:case 259:case 258:return!1}return!1}function B(n){return!e.isOmittedExpression(n)&&(e.isBindingPattern(n.name)?e.some(n.name.elements,B):L.isDeclarationVisible(n))}function V(n,t,r){if(!e.hasModifier(n,8)){var a=e.map(t,(function(e){return R(e,r)}));if(a)return e.createNodeArray(a,t.hasTrailingComma)}}function U(n,t){var r;if(!t){var a=e.getThisParameter(n);a&&(r=[R(a)])}if(e.isSetAccessorDeclaration(n)){var i=void 0;if(!t){var o=e.getSetAccessorValueParameter(n);if(o)i=R(o,void 0,te(n,L.getAllAccessorDeclarations(n)))}i||(i=e.createParameter(void 0,void 0,void 0,\"value\")),r=e.append(r,i)}return e.createNodeArray(r||e.emptyArray)}function j(n,t){return e.hasModifier(n,8)?void 0:e.visitNodes(t,J)}function K(n){return e.isSourceFile(n)||e.isTypeAliasDeclaration(n)||e.isModuleDeclaration(n)||e.isClassDeclaration(n)||e.isInterfaceDeclaration(n)||e.isFunctionLike(n)||e.isIndexSignatureDeclaration(n)||e.isMappedTypeNode(n)}function H(e,n){N(L.isEntityNameVisible(e,n)),k(L.getTypeReferenceDirectivesForEntityName(e))}function W(n,t){return e.hasJSDocNodes(n)&&e.hasJSDocNodes(t)&&(n.jsDoc=t.jsDoc),e.setCommentRange(n,e.getCommentRange(t))}function z(t,r){if(r){if(b=b||248!==t.kind&&187!==t.kind,e.isStringLiteralLike(r))if(h){var a=e.getExternalModuleNameFromDeclaration(n.getEmitHost(),L,t);if(a)return e.createLiteral(a)}else{var i=L.getSymbolOfExternalModuleSpecifier(r);i&&(u||(u=[])).push(i)}return r}}function q(n){for(;e.length(s);){var t=s.shift();if(!e.isLateVisibilityPaintedStatement(t))return e.Debug.fail(\"Late replaced statement was found which is not handled by the declaration transformer!: \"+(e.SyntaxKind?e.SyntaxKind[t.kind]:t.kind));var r=v;v=t.parent&&e.isSourceFile(t.parent)&&!(e.isExternalModule(t.parent)&&h);var a=Q(t);v=r,c.set(\"\"+e.getOriginalNodeId(t),a)}return e.visitNodes(n,(function(n){if(e.isLateVisibilityPaintedStatement(n)){var t=\"\"+e.getOriginalNodeId(n);if(c.has(t)){var r=c.get(t);return c.delete(t),r&&((e.isArray(r)?e.some(r,e.needsScopeMarker):e.needsScopeMarker(r))&&(E=!0),e.isSourceFile(n.parent)&&(e.isArray(r)?e.some(r,e.isExternalModuleIndicator):e.isExternalModuleIndicator(r))&&(b=!0)),r}}return n}))}function J(t){if(!$(t)){if(e.isDeclaration(t)){if(G(t))return;if(e.hasDynamicName(t)&&!L.isLateBound(e.getParseTreeNode(t)))return}if(!(e.isFunctionLike(t)&&L.isImplementationOfOverload(t)||e.isSemicolonClassElement(t))){var a;K(t)&&(a=r,r=t);var i=y,o=e.canProduceDiagnostics(t),s=l,c=(172===t.kind||185===t.kind)&&246!==t.parent.kind;if((e.isMethodDeclaration(t)||e.isMethodSignature(t))&&e.hasModifier(t,8)){if(t.symbol&&t.symbol.declarations&&t.symbol.declarations[0]!==t)return;return T(e.createProperty(void 0,ne(t),t.name,void 0,void 0,void 0))}if(o&&!l&&(y=e.createGetSymbolAccessibilityDiagnosticForNode(t)),e.isTypeQueryNode(t)&&H(t.exprName,r),c&&(l=!0),function(e){switch(e.kind){case 165:case 161:case 160:case 162:case 163:case 158:case 157:case 159:case 164:case 166:case 241:case 154:case 215:case 168:case 179:case 169:case 170:case 187:return!0}return!1}(t))switch(t.kind){case 215:(e.isEntityName(t.expression)||e.isEntityNameExpression(t.expression))&&H(t.expression,r);var u=e.visitEachChild(t,J,n);return T(e.updateExpressionWithTypeArguments(u,e.parenthesizeTypeParameters(u.typeArguments),u.expression));case 168:H(t.typeName,r);u=e.visitEachChild(t,J,n);return T(e.updateTypeReferenceNode(u,u.typeName,e.parenthesizeTypeParameters(u.typeArguments)));case 165:return T(e.updateConstructSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type)));case 161:var p=e.hasModifier(t,8),m=e.createSignatureDeclaration(161,p?void 0:j(t,t.typeParameters),p?void 0:V(t,t.parameters,0),void 0);return m.modifiers=e.createNodeArray(ne(t)),T(m);case 160:var f=e.createSignatureDeclaration(159,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type));return f.name=t.name,f.modifiers=e.createNodeArray(ne(t)),f.questionToken=t.questionToken,T(f);case 162:p=e.hasModifier(t,8);var _=te(t,L.getAllAccessorDeclarations(t));return T(e.updateGetAccessor(t,void 0,ne(t),t.name,U(t,p),p?void 0:F(t,_),void 0));case 163:return T(e.updateSetAccessor(t,void 0,ne(t),t.name,U(t,e.hasModifier(t,8)),void 0));case 158:return T(e.updateProperty(t,void 0,ne(t),t.name,t.questionToken,e.hasModifier(t,8)?void 0:F(t,t.type),w(t)));case 157:return T(e.updatePropertySignature(t,ne(t),t.name,t.questionToken,e.hasModifier(t,8)?void 0:F(t,t.type),w(t)));case 159:return T(e.updateMethodSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type),t.name,t.questionToken));case 164:return T(e.updateCallSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type)));case 166:return T(e.updateIndexSignature(t,void 0,ne(t),V(t,t.parameters),e.visitNode(t.type,J)||e.createKeywordTypeNode(124)));case 241:return e.isBindingPattern(t.name)?Z(t.name):(c=!0,l=!0,T(e.updateVariableDeclaration(t,t.name,F(t,t.type),w(t))));case 154:return function(n){return 160===n.parent.kind&&e.hasModifier(n.parent,8)}(t)&&(t.default||t.constraint)?T(e.updateTypeParameterDeclaration(t,t.name,void 0,void 0)):T(e.visitEachChild(t,J,n));case 179:var g=e.visitNode(t.checkType,J),v=e.visitNode(t.extendsType,J),h=r;r=t.trueType;var b=e.visitNode(t.trueType,J);r=h;var E=e.visitNode(t.falseType,J);return T(e.updateConditionalTypeNode(t,g,v,b,E));case 169:return T(e.updateFunctionTypeNode(t,e.visitNodes(t.typeParameters,J),V(t,t.parameters),e.visitNode(t.type,J)));case 170:return T(e.updateConstructorTypeNode(t,e.visitNodes(t.typeParameters,J),V(t,t.parameters),e.visitNode(t.type,J)));case 187:return e.isLiteralImportTypeNode(t)?T(e.updateImportTypeNode(t,e.updateLiteralTypeNode(t.argument,z(t,t.argument.literal)),t.qualifier,e.visitNodes(t.typeArguments,J,e.isTypeNode),t.isTypeOf)):T(t);default:e.Debug.assertNever(t,\"Attempted to process unhandled node kind: \"+e.SyntaxKind[t.kind])}return T(e.visitEachChild(t,J,n))}}function T(n){return n&&o&&e.hasDynamicName(t)&&function(n){var t;l||(t=y,y=e.createGetSymbolAccessibilityDiagnosticForNodeName(n));d=n.name,e.Debug.assert(L.isLateBound(e.getParseTreeNode(n))),H(n.name.expression,r),l||(y=t);d=void 0}(t),K(t)&&(r=a),o&&!l&&(y=i),c&&(l=s),n===t?n:n&&e.setOriginalNode(W(n,t),t)}}function X(n){if(function(e){switch(e.kind){case 243:case 248:case 252:case 245:case 244:case 246:case 247:case 224:case 253:case 259:case 258:return!0}return!1}(n)&&!$(n)){switch(n.kind){case 259:return e.isSourceFile(n.parent)&&(b=!0),T=!0,e.updateExportDeclaration(n,void 0,n.modifiers,n.exportClause,z(n,n.moduleSpecifier));case 258:if(e.isSourceFile(n.parent)&&(b=!0),T=!0,75===n.expression.kind)return n;var t=e.createOptimisticUniqueName(\"_default\");y=function(){return{diagnosticMessage:e.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,errorNode:n}};var r=e.createVariableDeclaration(t,L.createTypeOfExpression(n.expression,n,531469,x),void 0);return[e.createVariableStatement(v?[e.createModifier(129)]:[],e.createVariableDeclarationList([r],2)),e.updateExportAssignment(n,n.decorators,n.modifiers,t)]}var a=Q(n);return c.set(\"\"+e.getOriginalNodeId(n),a),n}}function Y(n){if(e.isImportEqualsDeclaration(n)||e.hasModifier(n,512))return n;var t=e.getMutableClone(n),r=e.createModifiersFromModifierFlags(3070&e.getModifierFlags(n));return t.modifiers=r.length?e.createNodeArray(r):void 0,t}function Q(n){if(!$(n)){switch(n.kind){case 252:return function(n){if(L.isDeclarationVisible(n)){if(263===n.moduleReference.kind){var t=e.getExternalModuleImportEqualsDeclarationExpression(n);return e.updateImportEqualsDeclaration(n,void 0,n.modifiers,n.name,e.updateExternalModuleReference(n.moduleReference,z(n,t)))}var a=y;return y=e.createGetSymbolAccessibilityDiagnosticForNode(n),H(n.moduleReference,r),y=a,n}}(n);case 253:return function(n){if(!n.importClause)return e.updateImportDeclaration(n,void 0,n.modifiers,n.importClause,z(n,n.moduleSpecifier));var t=n.importClause&&n.importClause.name&&L.isDeclarationVisible(n.importClause)?n.importClause.name:void 0;if(!n.importClause.namedBindings)return t&&e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,void 0),z(n,n.moduleSpecifier));if(255===n.importClause.namedBindings.kind){var r=L.isDeclarationVisible(n.importClause.namedBindings)?n.importClause.namedBindings:void 0;return t||r?e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,r),z(n,n.moduleSpecifier)):void 0}var a=e.mapDefined(n.importClause.namedBindings.elements,(function(e){return L.isDeclarationVisible(e)?e:void 0}));return a&&a.length||t?e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,a&&a.length?e.updateNamedImports(n.importClause.namedBindings,a):void 0),z(n,n.moduleSpecifier)):void 0}(n)}if(!(e.isDeclaration(n)&&G(n)||e.isFunctionLike(n)&&L.isImplementationOfOverload(n))){var t;K(n)&&(t=r,r=n);var a=e.canProduceDiagnostics(n),i=y;a&&(y=e.createGetSymbolAccessibilityDiagnosticForNode(n));var o=v;switch(n.kind){case 246:return oe(e.updateTypeAliasDeclaration(n,void 0,ne(n),n.name,e.visitNodes(n.typeParameters,J,e.isTypeParameterDeclaration),e.visitNode(n.type,J,e.isTypeNode)));case 245:return oe(e.updateInterfaceDeclaration(n,void 0,ne(n),n.name,j(n,n.typeParameters),re(n.heritageClauses),e.visitNodes(n.members,J)));case 243:var s=oe(e.updateFunctionDeclaration(n,void 0,ne(n),void 0,n.name,j(n,n.typeParameters),V(n,n.parameters),F(n,n.type),void 0));if(s&&L.isExpandoFunctionDeclaration(n)){var l=L.getPropertiesOfContainerFunction(n),u=e.createModuleDeclaration(void 0,void 0,s.name||e.createIdentifier(\"_default\"),e.createModuleBlock([]),16);u.flags^=8,u.parent=r,u.locals=e.createSymbolTable(l),u.symbol=l[0].parent;var d=e.mapDefined(l,(function(n){if(e.isPropertyAccessExpression(n.valueDeclaration)){y=e.createGetSymbolAccessibilityDiagnosticForNode(n.valueDeclaration);var t=L.createTypeOfDeclaration(n.valueDeclaration,u,531469,x);y=i;var r=e.createVariableDeclaration(e.unescapeLeadingUnderscores(n.escapedName),t,void 0);return e.createVariableStatement(void 0,e.createVariableDeclarationList([r]))}})),p=e.createModuleDeclaration(void 0,ne(n),n.name,e.createModuleBlock(d),16);if(!e.hasModifier(s,512))return[s,p];var m=e.createModifiersFromModifierFlags(-514&e.getModifierFlags(s)|2),f=e.updateFunctionDeclaration(s,void 0,m,void 0,s.name,s.typeParameters,s.parameters,s.type,void 0),_=e.updateModuleDeclaration(p,void 0,m,p.name,p.body),g=e.createExportAssignment(void 0,void 0,!1,p.name);return e.isSourceFile(n.parent)&&(b=!0),T=!0,[f,_,g]}return s;case 248:v=!1;var h=n.body;if(h&&249===h.kind){var S=E,C=T;T=!1,E=!1;var A=q(e.visitNodes(h.statements,X));8388608&n.flags&&(E=!1),e.isGlobalScopeAugmentation(n)||function(n){return e.some(n,ee)}(A)||T||(A=E?e.createNodeArray(__spreadArrays(A,[e.createEmptyExports()])):e.visitNodes(A,Y));var D=e.updateModuleBlock(h,A);v=o,E=S,T=C;var k=ne(n);return oe(e.updateModuleDeclaration(n,void 0,k,e.isExternalModuleAugmentation(n)?z(n,n.name):n.name,D))}v=o;k=ne(n);v=!1,e.visitNode(h,X);var N=\"\"+e.getOriginalNodeId(h);D=c.get(N);return c.delete(N),oe(e.updateModuleDeclaration(n,void 0,k,n.name,D));case 244:m=e.createNodeArray(ne(n));var I=j(n,n.typeParameters),M=e.getFirstConstructorWithBody(n),O=void 0;if(M){var R=y;O=e.compact(e.flatMap(M.parameters,(function(n){if(e.hasModifier(n,92)&&!$(n))return y=e.createGetSymbolAccessibilityDiagnosticForNode(n),75===n.name.kind?W(e.createProperty(void 0,ne(n),n.name,n.questionToken,F(n,n.type),w(n)),n):function t(r){for(var a,i=0,o=r.elements;i<o.length;i++){var s=o[i];e.isOmittedExpression(s)||(e.isBindingPattern(s.name)&&(a=e.concatenate(a,t(s.name))),(a=a||[]).push(e.createProperty(void 0,ne(n),s.name,void 0,F(s,void 0),void 0)))}return a}(n.name)}))),y=R}var P=e.createNodeArray(e.concatenate(O,e.visitNodes(n.members,J))),U=e.getEffectiveBaseTypeNode(n);if(U&&!e.isEntityNameExpression(U.expression)&&99!==U.expression.kind){var Q=n.name?e.unescapeLeadingUnderscores(n.name.escapedText):\"default\",Z=e.createOptimisticUniqueName(Q+\"_base\");y=function(){return{diagnosticMessage:e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,errorNode:U,typeName:n.name}};var te=e.createVariableDeclaration(Z,L.createTypeOfExpression(U.expression,n,531469,x),void 0),ae=e.createVariableStatement(v?[e.createModifier(129)]:[],e.createVariableDeclarationList([te],2)),ie=e.createNodeArray(e.map(n.heritageClauses,(function(n){if(89===n.token){var t=y;y=e.createGetSymbolAccessibilityDiagnosticForNode(n.types[0]);var r=e.updateHeritageClause(n,e.map(n.types,(function(n){return e.updateExpressionWithTypeArguments(n,e.visitNodes(n.typeArguments,J),Z)})));return y=t,r}return e.updateHeritageClause(n,e.visitNodes(e.createNodeArray(e.filter(n.types,(function(n){return e.isEntityNameExpression(n.expression)||99===n.expression.kind}))),J))})));return[ae,oe(e.updateClassDeclaration(n,void 0,m,n.name,I,ie,P))]}ie=re(n.heritageClauses);return oe(e.updateClassDeclaration(n,void 0,m,n.name,I,ie,P));case 224:return oe(function(n){if(!e.forEach(n.declarationList.declarations,B))return;var t=e.visitNodes(n.declarationList.declarations,J);if(!e.length(t))return;return e.updateVariableStatement(n,e.createNodeArray(ne(n)),e.updateVariableDeclarationList(n.declarationList,t))}(n));case 247:return oe(e.updateEnumDeclaration(n,void 0,e.createNodeArray(ne(n)),n.name,e.createNodeArray(e.mapDefined(n.members,(function(n){if(!$(n)){var t=L.getConstantValue(n);return W(e.updateEnumMember(n,n.name,void 0!==t?e.createLiteral(t):void 0),n)}})))))}return e.Debug.assertNever(n,\"Unhandled top-level node in declaration emit: \"+e.SyntaxKind[n.kind])}}function oe(s){return K(n)&&(r=t),a&&(y=i),248===n.kind&&(v=o),s===n?s:s&&e.setOriginalNode(W(s,n),n)}}function Z(n){return e.flatten(e.mapDefined(n.elements,(function(n){return function(n){if(214===n.kind)return;if(n.name){if(!B(n))return;return e.isBindingPattern(n.name)?Z(n.name):e.createVariableDeclaration(n.name,F(n,void 0),void 0)}}(n)})))}function $(e){return!!D&&!!e&&t(e,p)}function ee(n){return e.isExportAssignment(n)||e.isExportDeclaration(n)}function ne(n){var t=e.getModifierFlags(n),r=function(n){var t=2811,r=v&&!function(e){if(245===e.kind)return!0;return!1}(n)?2:0,i=288===n.parent.kind;(!i||h&&i&&e.isExternalModule(n.parent))&&(t^=2,r=0);return a(n,t,r)}(n);return t===r?n.modifiers:e.createModifiersFromModifierFlags(r)}function te(n,t){var r=i(n);return r||n===t.firstAccessor||(r=i(t.firstAccessor),y=e.createGetSymbolAccessibilityDiagnosticForNode(t.firstAccessor)),!r&&t.secondAccessor&&n!==t.secondAccessor&&(r=i(t.secondAccessor),y=e.createGetSymbolAccessibilityDiagnosticForNode(t.secondAccessor)),r}function re(n){return e.createNodeArray(e.filter(e.map(n,(function(n){return e.updateHeritageClause(n,e.visitNodes(e.createNodeArray(e.filter(n.types,(function(t){return e.isEntityNameExpression(t.expression)||89===n.token&&99===t.expression.kind}))),J))})),(function(e){return e.types&&!!e.types.length})))}}function a(n,t,r){void 0===t&&(t=3067),void 0===r&&(r=0);var a=e.getModifierFlags(n)&t|r;return 512&a&&!(1&a)&&(a^=1),512&a&&2&a&&(a^=2),a}function i(e){if(e)return 162===e.kind?e.type:e.parameters.length>0?e.parameters[0].type:void 0}e.transformDeclarations=r}(ts||(ts={})),function(e){var n,t;function r(n,t,r){if(r)return e.emptyArray;var a=n.jsx,i=e.getEmitScriptTarget(n),s=e.getEmitModuleKind(n),c=[];return e.addRange(c,t&&e.map(t.before,o)),c.push(e.transformTypeScript),c.push(e.transformClassFields),2===a&&c.push(e.transformJsx),i<99&&c.push(e.transformESNext),i<6&&c.push(e.transformES2019),i<5&&c.push(e.transformES2018),i<4&&c.push(e.transformES2017),i<3&&c.push(e.transformES2016),i<2&&(c.push(e.transformES2015),c.push(e.transformGenerators)),c.push(function(n){switch(n){case e.ModuleKind.ESNext:case e.ModuleKind.ES2015:return e.transformES2015Module;case e.ModuleKind.System:return e.transformSystemModule;default:return e.transformModule}}(s)),i<1&&c.push(e.transformES5),e.addRange(c,t&&e.map(t.after,o)),c}function a(n){var t=[];return t.push(e.transformDeclarations),e.addRange(t,n&&e.map(n.afterDeclarations,s)),t}function i(n,t){return function(r){var a=n(r);return\"function\"==typeof a?t(a):function(n){return function(t){return e.isBundle(t)?n.transformBundle(t):n.transformSourceFile(t)}}(a)}}function o(n){return i(n,e.chainBundle)}function s(n){return i(n,e.identity)}function c(e,n){return n}function l(e,n,t){t(e,n)}!function(e){e[e.Uninitialized=0]=\"Uninitialized\",e[e.Initialized=1]=\"Initialized\",e[e.Completed=2]=\"Completed\",e[e.Disposed=3]=\"Disposed\"}(n||(n={})),function(e){e[e.Substitution=1]=\"Substitution\",e[e.EmitNotifications=2]=\"EmitNotifications\"}(t||(t={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray},e.getTransformers=function(e,n,t){return{scriptTransformers:r(e,n,t),declarationTransformers:a(n)}},e.noEmitSubstitution=c,e.noEmitNotification=l,e.transformNodes=function(n,t,r,a,i,o){for(var s,u,d,p=new Array(324),m=[],f=[],_=0,g=!1,y=c,v=l,h=0,b=[],E={getCompilerOptions:function(){return r},getEmitResolver:function(){return n},getEmitHost:function(){return t},startLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is suspended.\"),m[_]=s,f[_]=u,_++,s=void 0,u=void 0},suspendLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is already suspended.\"),g=!0},resumeLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(g,\"Lexical environment is not suspended.\"),g=!1},endLexicalEnvironment:function(){var n;if(e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is suspended.\"),(s||u)&&(u&&(n=__spreadArrays(u)),s)){var t=e.createVariableStatement(void 0,e.createVariableDeclarationList(s));e.setEmitFlags(t,1048576),n?n.push(t):n=[t]}_--,s=m[_],u=f[_],0===_&&(m=[],f=[]);return n},hoistVariableDeclaration:function(n){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\");var t=e.setEmitFlags(e.createVariableDeclaration(n),64);s?s.push(t):s=[t]},hoistFunctionDeclaration:function(n){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),u?u.push(n):u=[n]},requestEmitHelper:function(n){e.Debug.assert(h>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),e.Debug.assert(!n.scoped,\"Cannot request a scoped emit helper.\"),d=e.append(d,n)},readEmitHelpers:function(){e.Debug.assert(h>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\");var n=d;return d=void 0,n},enableSubstitution:function(n){e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),p[n]|=1},enableEmitNotification:function(n){e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),p[n]|=2},isSubstitutionEnabled:D,isEmitNotificationEnabled:k,get onSubstituteNode(){return y},set onSubstituteNode(n){e.Debug.assert(h<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(void 0!==n,\"Value must not be 'undefined'\"),y=n},get onEmitNode(){return v},set onEmitNode(n){e.Debug.assert(h<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(void 0!==n,\"Value must not be 'undefined'\"),v=n},addDiagnostic:function(e){b.push(e)}},T=0,S=a;T<S.length;T++){var x=S[T];e.disposeEmitNodes(e.getSourceFileOfNode(e.getParseTreeNode(x)))}e.performance.mark(\"beforeTransform\");var L=i.map((function(e){return e(E)})),C=function(e){for(var n=0,t=L;n<t.length;n++){e=(0,t[n])(e)}return e};h=1;var A=e.map(a,o?C:function(n){return!n||e.isSourceFile(n)&&n.isDeclarationFile?n:C(n)});return h=2,e.performance.mark(\"afterTransform\"),e.performance.measure(\"transformTime\",\"beforeTransform\",\"afterTransform\"),{transformed:A,substituteNode:function(n,t){return e.Debug.assert(h<3,\"Cannot substitute a node after the result is disposed.\"),t&&D(t)&&y(n,t)||t},emitNodeWithNotification:function(n,t,r){e.Debug.assert(h<3,\"Cannot invoke TransformationResult callbacks after the result is disposed.\"),t&&(k(t)?v(n,t,r):r(n,t))},dispose:function(){if(h<3){for(var n=0,t=a;n<t.length;n++){var r=t[n];e.disposeEmitNodes(e.getSourceFileOfNode(e.getParseTreeNode(r)))}s=void 0,m=void 0,u=void 0,f=void 0,y=void 0,v=void 0,d=void 0,h=3}},diagnostics:b};function D(n){return 0!=(1&p[n.kind])&&0==(4&e.getEmitFlags(n))}function k(n){return 0!=(2&p[n.kind])||0!=(2&e.getEmitFlags(n))}}}(ts||(ts={})),function(e){var n,t,r=function(){var e=[];return e[1024]=[\"{\",\"}\"],e[2048]=[\"(\",\")\"],e[4096]=[\"<\",\">\"],e[8192]=[\"[\",\"]\"],e}(),a={pos:-1,end:-1};function i(n,t,r,a,i,s){void 0===a&&(a=!1);var l=e.isArray(r)?r:e.getSourceFilesToEmit(n,r,a),u=n.getCompilerOptions();if(u.outFile||u.out){var d=n.getPrependNodes();if(l.length||d.length){var p=e.createBundle(l,d);if(_=t(c(p,n,a),p))return _}}else{if(!i)for(var m=0,f=l;m<f.length;m++){var _,g=f[m];if(_=t(c(g,n,a),g))return _}if(s){var y=o(n.getCompilerOptions());if(y)return t({buildInfoPath:y},void 0)}}}function o(n){var t=n.configFilePath;if(e.isIncrementalCompilation(n)){if(n.tsBuildInfoFile)return n.tsBuildInfoFile;var r,a=n.outFile||n.out;if(a)r=e.removeFileExtension(a);else{if(!t)return;var i=e.removeFileExtension(t);r=n.outDir?n.rootDir?e.resolvePath(n.outDir,e.getRelativePathFromDirectory(n.rootDir,i,!0)):e.combinePaths(n.outDir,e.getBaseFileName(i)):i}return r+\".tsbuildinfo\"}}function s(n,t){var r=n.outFile||n.out,a=n.emitDeclarationOnly?void 0:r,i=a&&l(a,n),s=t||e.getEmitDeclarations(n)?e.removeFileExtension(r)+\".d.ts\":void 0;return{jsFilePath:a,sourceMapFilePath:i,declarationFilePath:s,declarationMapPath:s&&e.getAreDeclarationMapsEnabled(n)?s+\".map\":void 0,buildInfoPath:o(n)}}function c(n,t,r){var a=t.getCompilerOptions();if(289===n.kind)return s(a,r);var i=e.getOwnEmitOutputFilePath(n.fileName,t,u(n,a)),o=e.isJsonSourceFile(n),c=o&&0===e.comparePaths(n.fileName,i,t.getCurrentDirectory(),!t.useCaseSensitiveFileNames()),d=a.emitDeclarationOnly||c?void 0:i,p=!d||e.isJsonSourceFile(n)?void 0:l(d,a),m=r||e.getEmitDeclarations(a)&&!o?e.getDeclarationEmitOutputFilePath(n.fileName,t):void 0;return{jsFilePath:d,sourceMapFilePath:p,declarationFilePath:m,declarationMapPath:m&&e.getAreDeclarationMapsEnabled(a)?m+\".map\":void 0,buildInfoPath:void 0}}function l(e,n){return n.sourceMap&&!n.inlineSourceMap?e+\".map\":void 0}function u(n,t){if(e.isJsonSourceFile(n))return\".json\";if(1===t.jsx)if(e.isSourceFileJS(n)){if(e.fileExtensionIs(n.fileName,\".jsx\"))return\".jsx\"}else if(1===n.languageVariant)return\".jsx\";return\".js\"}function d(n,t,r,a){return a?e.resolvePath(a,e.getRelativePathFromDirectory(function(n){return n.options.rootDir||e.getDirectoryPath(e.Debug.assertDefined(n.options.configFilePath))}(t),n,r)):n}function p(n,t,r){return e.Debug.assert(!e.fileExtensionIs(n,\".d.ts\")&&!e.fileExtensionIs(n,\".json\")),e.changeExtension(d(n,t,r,t.options.declarationDir||t.options.outDir),\".d.ts\")}function m(n,t,r){if(!t.options.emitDeclarationOnly){var a=e.fileExtensionIs(n,\".json\"),i=e.changeExtension(d(n,t,r,t.options.outDir),a?\".json\":e.fileExtensionIs(n,\".tsx\")&&1===t.options.jsx?\".jsx\":\".js\");return a&&0===e.comparePaths(n,i,e.Debug.assertDefined(t.options.configFilePath),r)?void 0:i}}function f(){var n;return{addOutput:function(e){e&&(n||(n=[])).push(e)},getOutputs:function(){return n||e.emptyArray}}}function _(e,n){var t=s(e.options,!1),r=t.jsFilePath,a=t.sourceMapFilePath,i=t.declarationFilePath,o=t.declarationMapPath,c=t.buildInfoPath;n(r),n(a),n(i),n(o),n(c)}function g(n,t,r,a){if(!e.fileExtensionIs(t,\".d.ts\")){var i=m(t,n,r);if(a(i),!e.fileExtensionIs(t,\".json\")&&(i&&n.options.sourceMap&&a(i+\".map\"),e.getEmitDeclarations(n.options))){var o=p(t,n,r);a(o),n.options.declarationMap&&a(o+\".map\")}}}function y(n,t,r,a,o,s,c){var l,u,d=a.scriptTransformers,p=a.declarationTransformers,m=t.getCompilerOptions(),f=m.sourceMap||m.inlineSourceMap||e.getAreDeclarationMapsEnabled(m)?[]:void 0,_=m.listEmittedFiles?[]:void 0,g=e.createDiagnosticCollection(),y=e.getNewLineCharacter(m,(function(){return t.getNewLine()})),h=e.createTextWriter(y),E=e.performance.createTimer(\"printTime\",\"beforePrint\",\"afterPrint\"),T=E.enter,S=E.exit,x=!1;return T(),i(t,(function(a,i){var s,f=a.jsFilePath,y=a.sourceMapFilePath,h=a.declarationFilePath,E=a.declarationMapPath,T=a.buildInfoPath;T&&i&&e.isBundle(i)&&(s=e.getDirectoryPath(e.getNormalizedAbsolutePath(T,t.getCurrentDirectory())),l={commonSourceDirectory:S(t.getCommonSourceDirectory()),sourceFiles:i.sourceFiles.map((function(n){return S(e.getNormalizedAbsolutePath(n.fileName,t.getCurrentDirectory()))}))});(function(r,a,i,s){if(!r||o||!a)return;if(a&&t.isEmitBlocked(a)||m.noEmit)return void(x=!0);var c=e.transformNodes(n,t,m,[r],d,!1),u=b({removeComments:m.removeComments,newLine:m.newLine,noEmitHelpers:m.noEmitHelpers,module:m.module,target:m.target,sourceMap:m.sourceMap,inlineSourceMap:m.inlineSourceMap,inlineSources:m.inlineSources,extendedDiagnostics:m.extendedDiagnostics,writeBundleFileInfo:!!l,relativeToBuildInfo:s},{hasGlobalName:n.hasGlobalName,onEmitNode:c.emitNodeWithNotification,substituteNode:c.substituteNode});e.Debug.assert(1===c.transformed.length,\"Should only see one output from the transform\"),C(a,i,c.transformed[0],u,m),c.dispose(),l&&(l.js=u.bundleFileInfo)})(i,f,y,S),function(r,a,i,s){if(!r)return;if(!a)return void((o||m.emitDeclarationOnly)&&(x=!0));var d=e.isSourceFile(r)?[r]:r.sourceFiles,f=c?d:e.filter(d,e.isSourceFileNotJson),_=m.outFile||m.out?[e.createBundle(f,e.isSourceFile(r)?void 0:r.prepends)]:f;o&&!e.getEmitDeclarations(m)&&f.forEach(L);var y=e.transformNodes(n,t,m,_,p,!1);if(e.length(y.diagnostics))for(var v=0,h=y.diagnostics;v<h.length;v++){var E=h[v];g.add(E)}var T=b({removeComments:m.removeComments,newLine:m.newLine,noEmitHelpers:!0,module:m.module,target:m.target,sourceMap:m.sourceMap,inlineSourceMap:m.inlineSourceMap,extendedDiagnostics:m.extendedDiagnostics,onlyPrintJsDocStyle:!0,writeBundleFileInfo:!!l,recordInternalSection:!!l,relativeToBuildInfo:s},{hasGlobalName:n.hasGlobalName,onEmitNode:y.emitNodeWithNotification,substituteNode:y.substituteNode}),S=!!y.diagnostics&&!!y.diagnostics.length||!!t.isEmitBlocked(a)||!!m.noEmit;if(x=x||S,(!S||c)&&(e.Debug.assert(1===y.transformed.length,\"Should only see one output from the decl transform\"),C(a,i,y.transformed[0],T,{sourceMap:m.declarationMap,sourceRoot:m.sourceRoot,mapRoot:m.mapRoot,extendedDiagnostics:m.extendedDiagnostics}),c&&288===y.transformed[0].kind)){var A=y.transformed[0];u=A.exportedModulesFromDeclarationEmit}y.dispose(),l&&(l.dts=T.bundleFileInfo)}(i,h,E,S),function(n,a){if(!a||r||x)return;var i=t.getProgramBuildInfo();if(t.isEmitBlocked(a)||m.noEmit)return void(x=!0);e.writeFile(t,g,a,v({bundle:n,program:i,version:e.version}),!1)}(l,T),!x&&_&&(o||(f&&_.push(f),y&&_.push(y),T&&_.push(T)),h&&_.push(h),E&&_.push(E));function S(n){return e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(s,n,t.getCanonicalFileName))}}),e.getSourceFilesToEmit(t,r,c),c,s,!r),S(),{emitSkipped:x,diagnostics:g.getDiagnostics(),emittedFiles:_,sourceMaps:f,exportedModulesFromDeclarationEmit:u};function L(t){e.isExportAssignment(t)?75===t.expression.kind&&n.collectLinkedAliases(t.expression,!0):e.isExportSpecifier(t)?n.collectLinkedAliases(t.propertyName||t.name,!0):e.forEachChild(t,L)}function C(n,r,a,i,o){var s,c=289===a.kind?a:void 0,l=288===a.kind?a:void 0,u=c?c.sourceFiles:[l];if(function(n,t){return(n.sourceMap||n.inlineSourceMap)&&(288!==t.kind||!e.fileExtensionIs(t.fileName,\".json\"))}(o,a)&&(s=e.createSourceMapGenerator(t,e.getBaseFileName(e.normalizeSlashes(n)),function(n){var t=e.normalizeSlashes(n.sourceRoot||\"\");return t?e.ensureTrailingDirectorySeparator(t):t}(o),function(n,r,a){if(n.sourceRoot)return t.getCommonSourceDirectory();if(n.mapRoot){var i=e.normalizeSlashes(n.mapRoot);return a&&(i=e.getDirectoryPath(e.getSourceFilePathInNewDir(a.fileName,t,i))),0===e.getRootLength(i)&&(i=e.combinePaths(t.getCommonSourceDirectory(),i)),i}return e.getDirectoryPath(e.normalizePath(r))}(o,n,l),o)),c?i.writeBundle(c,h,s):i.writeFile(l,h,s),s){f&&f.push({inputSourceFileNames:s.getSources(),sourceMap:s.toJSON()});var d=function(n,r,a,i,o){if(n.inlineSourceMap){var s=r.toString();return\"data:application/json;base64,\"+e.base64encode(e.sys,s)}var c=e.getBaseFileName(e.normalizeSlashes(e.Debug.assertDefined(i)));if(n.mapRoot){var l=e.normalizeSlashes(n.mapRoot);return o&&(l=e.getDirectoryPath(e.getSourceFilePathInNewDir(o.fileName,t,l))),0===e.getRootLength(l)?(l=e.combinePaths(t.getCommonSourceDirectory(),l),e.getRelativePathToDirectoryOrUrl(e.getDirectoryPath(e.normalizePath(a)),e.combinePaths(l,c),t.getCurrentDirectory(),t.getCanonicalFileName,!0)):e.combinePaths(l,c)}return c}(o,s,n,r,l);if(d&&(h.isAtStartOfLine()||h.rawWrite(y),h.writeComment(\"//# sourceMappingURL=\"+d)),r){var p=s.toString();e.writeFile(t,g,r,p,!1,u)}}else h.writeLine();e.writeFile(t,g,n,h.getText(),!!m.emitBOM,u),h.clear()}}function v(e){return JSON.stringify(e,void 0,2)}function h(e){return JSON.parse(e)}function b(n,t){void 0===n&&(n={}),void 0===t&&(t={});var i,o,s,c,l,u,d,p,m,f,_,g,y,v,h,b,E,T=t.hasGlobalName,S=t.onEmitNode,x=void 0===S?e.noEmitNotification:S,L=t.substituteNode,C=void 0===L?e.noEmitSubstitution:L,A=t.onBeforeEmitNodeArray,D=t.onAfterEmitNodeArray,k=t.onBeforeEmitToken,N=t.onAfterEmitToken,I=!!n.extendedDiagnostics,M=e.getNewLineCharacter(n),O=e.getEmitModuleKind(n),R=e.createMap(),P=function(e){m.write(e)},w=n.writeBundleFileInfo?{sections:[]}:void 0,F=w?e.Debug.assertDefined(n.relativeToBuildInfo):void 0,G=n.recordInternalSection,B=0,V=\"text\",U=!0,j=-1,K=-1,H=-1,W=-1,z=!1,q=!!n.removeComments,J=e.performance.createTimerIf(I,\"commentTime\",\"beforeComment\",\"afterComment\"),X=J.enter,Y=J.exit;return me(),{printNode:function(n,t,r){switch(n){case 0:e.Debug.assert(e.isSourceFile(t),\"Expected a SourceFile node.\");break;case 2:e.Debug.assert(e.isIdentifier(t),\"Expected an Identifier node.\");break;case 1:e.Debug.assert(e.isExpression(t),\"Expected an Expression node.\")}switch(t.kind){case 288:return Z(t);case 289:return Q(t);case 290:return function(e,n){var t=m;pe(n,void 0),ue(4,e,void 0),me(),m=t}(t,ce()),le()}return $(n,t,r,ce()),le()},printList:function(e,n,t){return ee(e,n,t,ce()),le()},printFile:Z,printBundle:Q,writeNode:$,writeList:ee,writeFile:se,writeBundle:oe,bundleFileInfo:w};function Q(e){return oe(e,ce(),void 0),le()}function Z(e){return se(e,ce(),void 0),le()}function $(e,n,t,r){var a=m;pe(r,void 0),ue(e,n,t),me(),m=a}function ee(e,n,t,r){var i=m;pe(r,void 0),t&&de(t),yn(a,n,e),me(),m=i}function ne(){return m.getTextPosWithWriteLine?m.getTextPosWithWriteLine():m.getTextPos()}function te(n,t,r){var a=e.lastOrUndefined(w.sections);a&&a.kind===r?a.end=t:w.sections.push({pos:n,end:t,kind:r})}function re(n){if(G&&w&&i&&(e.isDeclaration(n)||e.isVariableStatement(n))&&e.isInternalDeclaration(n,i)&&\"internal\"!==V){var t=V;return ie(m.getTextPos()),B=ne(),V=\"internal\",t}}function ae(e){e&&(ie(m.getTextPos()),B=ne(),V=e)}function ie(e){return B<e&&(te(B,e,V),!0)}function oe(t,r,a){var i;_=!1;var o=m;pe(r,a),rn(t),tn(t),xe(t),function(n){Ze(!!n.hasNoDefaultLib,n.syntheticFileReferences||[],n.syntheticTypeReferences||[],n.syntheticLibReferences||[]);for(var t=0,r=n.prepends;t<r.length;t++){var a=r[t];if(e.isUnparsedSource(a)&&a.syntheticReferences)for(var i=0,o=a.syntheticReferences;i<o.length;i++){_e(o[i]),Nn()}}}(t);for(var s=0,c=t.prepends;s<c.length;s++){var l=c[s];Nn();var u=m.getTextPos(),d=w&&w.sections;if(d&&(w.sections=[]),ue(4,l,void 0),w){var p=w.sections;w.sections=d,l.oldFileOfCurrentEmit?(i=w.sections).push.apply(i,p):(p.forEach((function(n){return e.Debug.assert(e.isBundleFileTextLike(n))})),w.sections.push({pos:u,end:m.getTextPos(),kind:\"prepend\",data:F(l.fileName),texts:p}))}}B=ne();for(var f=0,g=t.sourceFiles;f<g.length;f++){var y=g[f];ue(0,y,y)}if(w&&t.sourceFiles.length&&ie(m.getTextPos())){var v=function(n){for(var t,r=e.createMap(),a=0;a<n.sourceFiles.length;a++){for(var i=n.sourceFiles[a],o=void 0,s=0,c=0,l=i.statements;c<l.length;c++){var u=l[c];if(!e.isPrologueDirective(u))break;r.has(u.expression.text)||(r.set(u.expression.text,!0),(o||(o=[])).push({pos:u.pos,end:u.end,expression:{pos:u.expression.pos,end:u.expression.end,text:u.expression.text}}),s=s<u.end?u.end:s)}o&&(t||(t=[])).push({file:a,text:i.text.substring(0,s),directives:o})}return t}(t);v&&(w.sources||(w.sources={}),w.sources.prologues=v);var h=function(t){var r;if(O===e.ModuleKind.None||n.noEmitHelpers)return;for(var a=e.createMap(),i=0,o=t.sourceFiles;i<o.length;i++){var s=o[i],c=void 0!==e.getExternalHelpersModuleName(s),l=Le(s);if(l)for(var u=0,d=l;u<d.length;u++){var p=d[u];p.scoped||c||a.get(p.name)||(a.set(p.name,!0),(r||(r=[])).push(p.name))}}return r}(t);h&&(w.sources||(w.sources={}),w.sources.helpers=h)}me(),m=o}function se(e,n,t){_=!0;var r=m;pe(n,t),rn(e),tn(e),ue(0,e,e),me(),m=r}function ce(){return f||(f=e.createTextWriter(M))}function le(){var e=f.getText();return f.clear(),e}function ue(e,n,t){t&&de(t),ve(e,n)}function de(e){i=e,v=void 0,h=void 0,e&&Dt(e)}function pe(t,r){t&&n.omitTrailingSemicolon&&(t=e.getTrailingSemicolonDeferringWriter(t)),g=r,U=!(m=t)||!g}function me(){o=[],s=[],c=e.createMap(),l=[],u=0,d=[],i=void 0,v=void 0,h=void 0,b=void 0,E=void 0,pe(void 0,void 0)}function fe(){return v||(v=e.getLineStarts(i))}function _e(e){if(void 0!==e){var n=re(e),t=ve(4,e);return ae(n),t}}function ge(e){if(void 0!==e)return ve(2,e)}function ye(e){if(void 0!==e)return ve(1,e)}function ve(n,t){var r=b,a=E;b=t,E=void 0,he(0,t)(n,t),e.Debug.assert(b===t);var i=E;return b=r,E=a,i||t}function he(n,t){switch(n){case 0:if(x!==e.noEmitNotification)return Ee;case 1:if(C!==e.noEmitSubstitution)return Se;case 2:if(!q&&288!==t.kind)return ct;case 3:if(!U&&288!==t.kind&&!e.isInJsonFile(t))return xt;case 4:return Te;default:return e.Debug.assertNever(n)}}function be(e,n){return he(e+1,n)}function Ee(n,t){e.Debug.assert(b===t);var r=be(0,t);x(n,t,r),e.Debug.assert(b===t)}function Te(n,t){if(e.Debug.assert(b===t||E===t),0===n)return function(n){Nn();var t=n.statements;if(pt){if(0===t.length||!e.isPrologueDirective(t[0])||e.nodeIsSynthesized(t[0]))return void pt(n,t,$e)}$e(n)}(e.cast(t,e.isSourceFile));if(2===n)return De(e.cast(t,e.isIdentifier));if(3===n)return function(e){_e(e.name),Dn(),xn(\"in\"),Dn(),_e(e.constraint)}(e.cast(t,e.isTypeParameterDeclaration));if(5===n)return e.Debug.assertNode(t,e.isEmptyStatement),Ie(!0);if(4===n){if(e.isKeyword(t.kind))return Rn(t,xn);switch(t.kind){case 15:case 16:case 17:return Ce(t);case 290:case 284:return function(e){for(var n=0,t=e.texts;n<t.length;n++){var r=t[n];Nn(),_e(r)}}(t);case 283:return Ae(t);case 285:case 286:return o=t,s=ne(),Ae(o),void(w&&te(s,m.getTextPos(),285===o.kind?\"text\":\"internal\"));case 287:return function(n){var t=ne();if(Ae(n),w){var r=e.clone(n.section);r.pos=t,r.end=m.getTextPos(),w.sections.push(r)}}(t);case 75:return De(t);case 152:return function(e){(function(e){75===e.kind?ye(e):_e(e)})(e.left),Tn(\".\"),_e(e.right)}(t);case 153:return function(e){Tn(\"[\"),ye(e.expression),Tn(\"]\")}(t);case 154:return function(e){_e(e.name),e.constraint&&(Dn(),xn(\"extends\"),Dn(),_e(e.constraint));e.default&&(Dn(),Ln(\"=\"),Dn(),_e(e.default))}(t);case 155:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.dotDotDotToken),an(e.name,Cn),_e(e.questionToken),e.parent&&298===e.parent.kind&&!e.name?_e(e.type):sn(e.type);cn(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name?e.name.end:e.modifiers?e.modifiers.end:e.decorators?e.decorators.end:e.pos,e)}(t);case 156:return a=t,Tn(\"@\"),void ye(a.expression);case 157:return function(e){pn(e,e.decorators),on(e,e.modifiers),an(e.name,kn),_e(e.questionToken),sn(e.type),Sn()}(t);case 158:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.name),_e(e.questionToken),_e(e.exclamationToken),sn(e.type),cn(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name.end,e),Sn()}(t);case 159:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),_e(e.name),_e(e.questionToken),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 160:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.asteriskToken),_e(e.name),_e(e.questionToken),Fe(e,Ge)}(t);case 161:return function(e){on(e,e.modifiers),xn(\"constructor\"),Fe(e,Ge)}(t);case 162:case 163:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(162===e.kind?\"get\":\"set\"),Dn(),_e(e.name),Fe(e,Ge)}(t);case 164:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 165:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),xn(\"new\"),Dn(),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 166:return function(e){pn(e,e.decorators),on(e,e.modifiers),n=e,t=e.parameters,yn(n,t,8848),sn(e.type),Sn();var n,t}(t);case 167:return function(e){e.assertsModifier&&(_e(e.assertsModifier),Dn());_e(e.parameterName),e.type&&(Dn(),xn(\"is\"),Dn(),_e(e.type))}(t);case 168:return function(e){_e(e.typeName),mn(e,e.typeArguments)}(t);case 169:return function(e){Xn(e),fn(e,e.typeParameters),gn(e,e.parameters),Dn(),Tn(\"=>\"),Dn(),_e(e.type),Yn(e)}(t);case 298:return function(e){xn(\"function\"),_n(e,e.parameters),Tn(\":\"),_e(e.type)}(t);case 170:return function(e){Xn(e),xn(\"new\"),Dn(),fn(e,e.typeParameters),_n(e,e.parameters),Dn(),Tn(\"=>\"),Dn(),_e(e.type),Yn(e)}(t);case 171:return function(e){xn(\"typeof\"),Dn(),_e(e.exprName)}(t);case 172:return function(n){Tn(\"{\");var t=1&e.getEmitFlags(n)?768:32897;yn(n,n.members,524288|t),Tn(\"}\")}(t);case 173:return function(e){_e(e.elementType),Tn(\"[\"),Tn(\"]\")}(t);case 174:return function(e){Tn(\"[\"),yn(e,e.elementTypes,528),Tn(\"]\")}(t);case 175:return function(e){_e(e.type),Tn(\"?\")}(t);case 177:return function(e){yn(e,e.types,516)}(t);case 178:return function(e){yn(e,e.types,520)}(t);case 179:return function(e){_e(e.checkType),Dn(),xn(\"extends\"),Dn(),_e(e.extendsType),Dn(),Tn(\"?\"),Dn(),_e(e.trueType),Dn(),Tn(\":\"),Dn(),_e(e.falseType)}(t);case 180:return function(e){xn(\"infer\"),Dn(),_e(e.typeParameter)}(t);case 181:return function(e){Tn(\"(\"),_e(e.type),Tn(\")\")}(t);case 215:return function(e){ye(e.expression),mn(e,e.typeArguments)}(t);case 182:return void xn(\"this\");case 183:return function(e){Pn(e.operator,xn),Dn(),_e(e.type)}(t);case 184:return function(e){_e(e.objectType),Tn(\"[\"),_e(e.indexType),Tn(\"]\")}(t);case 185:return function(n){var t=e.getEmitFlags(n);Tn(\"{\"),1&t?Dn():(Nn(),In());n.readonlyToken&&(_e(n.readonlyToken),137!==n.readonlyToken.kind&&xn(\"readonly\"),Dn());Tn(\"[\"),ve(3,n.typeParameter),Tn(\"]\"),n.questionToken&&(_e(n.questionToken),57!==n.questionToken.kind&&Tn(\"?\"));Tn(\":\"),Dn(),_e(n.type),Sn(),1&t?Dn():(Nn(),Mn());Tn(\"}\")}(t);case 186:return function(e){ye(e.literal)}(t);case 187:return function(e){e.isTypeOf&&(xn(\"typeof\"),Dn());xn(\"import\"),Tn(\"(\"),_e(e.argument),Tn(\")\"),e.qualifier&&(Tn(\".\"),_e(e.qualifier));mn(e,e.typeArguments)}(t);case 293:return void Tn(\"*\");case 294:return void Tn(\"?\");case 295:return function(e){Tn(\"?\"),_e(e.type)}(t);case 296:return function(e){Tn(\"!\"),_e(e.type)}(t);case 297:return function(e){_e(e.type),Tn(\"=\")}(t);case 176:case 299:return function(e){Tn(\"...\"),_e(e.type)}(t);case 188:return function(e){Tn(\"{\"),yn(e,e.elements,525136),Tn(\"}\")}(t);case 189:return function(e){Tn(\"[\"),yn(e,e.elements,524880),Tn(\"]\")}(t);case 190:return function(e){_e(e.dotDotDotToken),e.propertyName&&(_e(e.propertyName),Tn(\":\"),Dn());_e(e.name),cn(e.initializer,e.name.end,e)}(t);case 220:return function(e){ye(e.expression),_e(e.literal)}(t);case 221:return void Sn();case 222:return function(e){Ne(e,!e.multiLine&&Wn(e))}(t);case 224:return function(e){on(e,e.modifiers),_e(e.declarationList),Sn()}(t);case 223:return Ie(!1);case 225:return function(n){ye(n.expression),(!e.isJsonSourceFile(i)||e.nodeIsSynthesized(n.expression))&&Sn()}(t);case 226:return function(e){var n=Re(94,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.thenStatement),e.elseStatement&&(wn(e),Re(86,e.thenStatement.end,xn,e),226===e.elseStatement.kind?(Dn(),_e(e.elseStatement)):dn(e,e.elseStatement))}(t);case 227:return function(n){Re(85,n.pos,xn,n),dn(n,n.statement),e.isBlock(n.statement)?Dn():wn(n);Me(n,n.statement.end),Sn()}(t);case 228:return function(e){Me(e,e.pos),dn(e,e.statement)}(t);case 229:return function(e){var n=Re(92,e.pos,xn,e);Dn();var t=Re(20,n,Tn,e);Oe(e.initializer),t=Re(26,e.initializer?e.initializer.end:t,Tn,e),un(e.condition),t=Re(26,e.condition?e.condition.end:t,Tn,e),un(e.incrementor),Re(21,e.incrementor?e.incrementor.end:t,Tn,e),dn(e,e.statement)}(t);case 230:return function(e){var n=Re(92,e.pos,xn,e);Dn(),Re(20,n,Tn,e),Oe(e.initializer),Dn(),Re(96,e.initializer.end,xn,e),Dn(),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 231:return function(e){var n=Re(92,e.pos,xn,e);Dn(),function(e){e&&(_e(e),Dn())}(e.awaitModifier),Re(20,n,Tn,e),Oe(e.initializer),Dn(),Re(151,e.initializer.end,xn,e),Dn(),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 232:return function(e){Re(81,e.pos,xn,e),ln(e.label),Sn()}(t);case 233:return function(e){Re(76,e.pos,xn,e),ln(e.label),Sn()}(t);case 234:return function(e){Re(100,e.pos,xn,e),un(e.expression),Sn()}(t);case 235:return function(e){var n=Re(111,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 236:return function(e){var n=Re(102,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),Dn(),_e(e.caseBlock)}(t);case 237:return function(e){_e(e.label),Re(58,e.label.end,Tn,e),Dn(),_e(e.statement)}(t);case 238:return function(e){Re(104,e.pos,xn,e),un(e.expression),Sn()}(t);case 239:return function(e){Re(106,e.pos,xn,e),Dn(),_e(e.tryBlock),e.catchClause&&(wn(e),_e(e.catchClause));e.finallyBlock&&(wn(e),Re(91,(e.catchClause||e.tryBlock).end,xn,e),Dn(),_e(e.finallyBlock))}(t);case 240:return function(e){On(82,e.pos,xn),Sn()}(t);case 241:return function(e){_e(e.name),sn(e.type),cn(e.initializer,e.type?e.type.end:e.name.end,e)}(t);case 242:return function(n){xn(e.isLet(n)?\"let\":e.isVarConst(n)?\"const\":\"var\"),Dn(),yn(n,n.declarations,528)}(t);case 243:return function(e){Pe(e)}(t);case 244:return function(e){je(e)}(t);case 245:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"interface\"),Dn(),_e(e.name),fn(e,e.typeParameters),yn(e,e.heritageClauses,512),Dn(),Tn(\"{\"),yn(e,e.members,129),Tn(\"}\")}(t);case 246:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"type\"),Dn(),_e(e.name),fn(e,e.typeParameters),Dn(),Tn(\"=\"),Dn(),_e(e.type),Sn()}(t);case 247:return function(e){on(e,e.modifiers),xn(\"enum\"),Dn(),_e(e.name),Dn(),Tn(\"{\"),yn(e,e.members,145),Tn(\"}\")}(t);case 248:return function(e){on(e,e.modifiers),1024&~e.flags&&(xn(16&e.flags?\"namespace\":\"module\"),Dn());_e(e.name);var n=e.body;if(!n)return Sn();for(;248===n.kind;)Tn(\".\"),_e(n.name),n=n.body;Dn(),_e(n)}(t);case 249:return function(n){Xn(n),e.forEach(n.statements,Zn),Ne(n,Wn(n)),Yn(n)}(t);case 250:return function(e){Re(18,e.pos,Tn,e),yn(e,e.clauses,129),Re(19,e.clauses.end,Tn,e,!0)}(t);case 251:return function(e){var n=Re(88,e.pos,xn,e);Dn(),n=Re(122,n,xn,e),Dn(),n=Re(135,n,xn,e),Dn(),_e(e.name),Sn()}(t);case 252:return function(e){on(e,e.modifiers),Re(95,e.modifiers?e.modifiers.end:e.pos,xn,e),Dn(),_e(e.name),Dn(),Re(62,e.name.end,Tn,e),Dn(),function(e){75===e.kind?ye(e):_e(e)}(e.moduleReference),Sn()}(t);case 253:return function(e){on(e,e.modifiers),Re(95,e.modifiers?e.modifiers.end:e.pos,xn,e),Dn(),e.importClause&&(_e(e.importClause),Dn(),Re(148,e.importClause.end,xn,e),Dn());ye(e.moduleSpecifier),Sn()}(t);case 254:return function(e){_e(e.name),e.name&&e.namedBindings&&(Re(27,e.name.end,Tn,e),Dn());_e(e.namedBindings)}(t);case 255:return function(e){var n=Re(41,e.pos,Tn,e);Dn(),Re(122,n,xn,e),Dn(),_e(e.name)}(t);case 256:return function(e){Ke(e)}(t);case 257:return function(e){He(e)}(t);case 258:return function(e){var n=Re(88,e.pos,xn,e);Dn(),e.isExportEquals?Re(62,n,Ln,e):Re(83,n,xn,e);Dn(),ye(e.expression),Sn()}(t);case 259:return function(e){var n=Re(88,e.pos,xn,e);Dn(),e.exportClause?_e(e.exportClause):n=Re(41,n,Tn,e);if(e.moduleSpecifier){Dn(),Re(148,e.exportClause?e.exportClause.end:n,xn,e),Dn(),ye(e.moduleSpecifier)}Sn()}(t);case 260:return function(e){Ke(e)}(t);case 261:return function(e){He(e)}(t);case 262:return;case 263:return function(e){xn(\"require\"),Tn(\"(\"),ye(e.expression),Tn(\")\")}(t);case 11:return function(e){m.writeLiteral(e.text)}(t);case 266:case 269:return function(n){Tn(\"<\"),e.isJsxOpeningElement(n)&&(We(n.tagName),mn(n,n.typeArguments),n.attributes.properties&&n.attributes.properties.length>0&&Dn(),_e(n.attributes));Tn(\">\")}(t);case 267:case 270:return function(n){Tn(\"</\"),e.isJsxClosingElement(n)&&We(n.tagName);Tn(\">\")}(t);case 271:return function(e){_e(e.name),function(e,n,t,r){t&&(n(e),r(t))}(\"=\",Tn,e.initializer,_e)}(t);case 272:return function(e){yn(e,e.properties,262656)}(t);case 273:return function(e){Tn(\"{...\"),ye(e.expression),Tn(\"}\")}(t);case 274:return function(e){e.expression&&(Tn(\"{\"),_e(e.dotDotDotToken),ye(e.expression),Tn(\"}\"))}(t);case 275:return function(e){Re(77,e.pos,xn,e),Dn(),ye(e.expression),ze(e,e.statements,e.expression.end)}(t);case 276:return function(e){var n=Re(83,e.pos,xn,e);ze(e,e.statements,n)}(t);case 277:return function(e){Dn(),Pn(e.token,xn),Dn(),yn(e,e.types,528)}(t);case 278:return function(e){var n=Re(78,e.pos,xn,e);Dn(),e.variableDeclaration&&(Re(20,n,Tn,e),_e(e.variableDeclaration),Re(21,e.variableDeclaration.end,Tn,e),Dn());_e(e.block)}(t);case 279:return function(n){_e(n.name),Tn(\":\"),Dn();var t=n.initializer;if(ht&&0==(512&e.getEmitFlags(t))){ht(e.getCommentRange(t).pos)}ye(t)}(t);case 280:return function(e){_e(e.name),e.objectAssignmentInitializer&&(Dn(),Tn(\"=\"),Dn(),ye(e.objectAssignmentInitializer))}(t);case 281:return function(e){e.expression&&(Re(25,e.pos,Tn,e),ye(e.expression))}(t);case 282:return function(e){_e(e.name),cn(e.initializer,e.name.end,e)}(t);case 310:case 316:return function(e){Xe(e.tagName),Qe(e.typeExpression),Dn(),e.isBracketed&&Tn(\"[\");_e(e.name),e.isBracketed&&Tn(\"]\");Ye(e.comment)}(t);case 311:case 313:case 312:case 309:return Xe((r=t).tagName),Qe(r.typeExpression),void Ye(r.comment);case 305:return function(e){Xe(e.tagName),Dn(),Tn(\"{\"),_e(e.class),Tn(\"}\"),Ye(e.comment)}(t);case 314:return function(e){Xe(e.tagName),Qe(e.constraint),Dn(),yn(e,e.typeParameters,528),Ye(e.comment)}(t);case 315:return function(e){Xe(e.tagName),e.typeExpression&&(292===e.typeExpression.kind?Qe(e.typeExpression):(Dn(),Tn(\"{\"),P(\"Object\"),e.typeExpression.isArrayType&&(Tn(\"[\"),Tn(\"]\")),Tn(\"}\")));e.fullName&&(Dn(),_e(e.fullName));Ye(e.comment),e.typeExpression&&302===e.typeExpression.kind&&qe(e.typeExpression)}(t);case 308:return function(e){Xe(e.tagName),e.name&&(Dn(),_e(e.name));Ye(e.comment),Je(e.typeExpression)}(t);case 303:return Je(t);case 302:return qe(t);case 307:case 304:return function(e){Xe(e.tagName),Ye(e.comment)}(t);case 301:return function(e){if(P(\"/**\"),e.comment)for(var n=e.comment.split(/\\r\\n?|\\n/g),t=0,r=n;t<r.length;t++){var a=r[t];Nn(),Dn(),Tn(\"*\"),Dn(),P(a)}e.tags&&(1!==e.tags.length||313!==e.tags[0].kind||e.comment?yn(e,e.tags,33):(Dn(),_e(e.tags[0])));Dn(),P(\"*/\")}(t)}if(e.isExpression(t))n=1,C!==e.noEmitSubstitution&&(E=t=C(n,t));else if(e.isToken(t))return Rn(t,Tn)}var r,a,o,s;if(1===n)switch(t.kind){case 8:case 9:return function(e){Ce(e)}(t);case 10:case 13:case 14:return Ce(t);case 75:return De(t);case 90:case 99:case 101:case 105:case 103:case 95:return void Rn(t,xn);case 191:return function(e){var n=e.elements,t=e.multiLine?65536:0;vn(e,n,8914|t)}(t);case 192:return function(n){e.forEach(n.properties,$n);var t=65536&e.getEmitFlags(n);t&&In();var r=n.multiLine?65536:0,a=i.languageVersion>=1&&!e.isJsonSourceFile(i)?64:0;yn(n,n.properties,526226|a|r),t&&Mn()}(t);case 193:return function(n){var t=e.cast(ye(n.expression),e.isExpression),r=e.getDotOrQuestionDotToken(n),a=Hn(n,n.expression,r),i=Hn(n,r,n.name);Gn(a,!1),28===r.kind||!function(n){if(n=e.skipPartiallyEmittedExpressions(n),e.isNumericLiteral(n)){var t=Jn(n,!0);return!n.numericLiteralFlags&&!e.stringContains(t,e.tokenToString(24))}if(e.isAccessExpression(n)){var r=e.getConstantValue(n);return\"number\"==typeof r&&isFinite(r)&&Math.floor(r)===r}}(t)||m.hasTrailingComment()||m.hasTrailingWhitespace()||Tn(\".\");Re(r.kind,n.expression.end,Tn,n),Gn(i,!1),_e(n.name),Bn(a,i)}(t);case 194:return function(e){ye(e.expression),_e(e.questionDotToken),Re(22,e.expression.end,Tn,e),ye(e.argumentExpression),Re(23,e.argumentExpression.end,Tn,e)}(t);case 195:return function(e){ye(e.expression),_e(e.questionDotToken),mn(e,e.typeArguments),vn(e,e.arguments,2576)}(t);case 196:return function(e){Re(98,e.pos,xn,e),Dn(),ye(e.expression),mn(e,e.typeArguments),vn(e,e.arguments,18960)}(t);case 197:return function(e){ye(e.tag),mn(e,e.typeArguments),Dn(),ye(e.template)}(t);case 198:return function(e){Tn(\"<\"),_e(e.type),Tn(\">\"),ye(e.expression)}(t);case 199:return function(e){var n=Re(20,e.pos,Tn,e);ye(e.expression),Re(21,e.expression?e.expression.end:n,Tn,e)}(t);case 200:return function(e){et(e.name),Pe(e)}(t);case 201:return function(e){pn(e,e.decorators),on(e,e.modifiers),Fe(e,ke)}(t);case 202:return function(e){Re(84,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 203:return function(e){Re(107,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 204:return function(e){Re(109,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 205:return function(e){Re(126,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 206:return function(e){Pn(e.operator,Ln),function(e){var n=e.operand;return 206===n.kind&&(39===e.operator&&(39===n.operator||45===n.operator)||40===e.operator&&(40===n.operator||46===n.operator))}(e)&&Dn();ye(e.operand)}(t);case 207:return function(e){ye(e.operand),Pn(e.operator,Ln)}(t);case 208:return function(e){var n=27!==e.operatorToken.kind,t=Hn(e,e.left,e.operatorToken),r=Hn(e,e.operatorToken,e.right);ye(e.left),Gn(t,n),yt(e.operatorToken.pos),Rn(e.operatorToken,96===e.operatorToken.kind?xn:Ln),ht(e.operatorToken.end,!0),Gn(r,!0),ye(e.right),Bn(t,r)}(t);case 209:return function(e){var n=Hn(e,e.condition,e.questionToken),t=Hn(e,e.questionToken,e.whenTrue),r=Hn(e,e.whenTrue,e.colonToken),a=Hn(e,e.colonToken,e.whenFalse);ye(e.condition),Gn(n,!0),_e(e.questionToken),Gn(t,!0),ye(e.whenTrue),Bn(n,t),Gn(r,!0),_e(e.colonToken),Gn(a,!0),ye(e.whenFalse),Bn(r,a)}(t);case 210:return function(e){_e(e.head),yn(e,e.templateSpans,262144)}(t);case 211:return function(e){Re(120,e.pos,xn,e),_e(e.asteriskToken),un(e.expression)}(t);case 212:return function(e){Re(25,e.pos,Tn,e),ye(e.expression)}(t);case 213:return function(e){et(e.name),je(e)}(t);case 214:return;case 216:return function(e){ye(e.expression),e.type&&(Dn(),xn(\"as\"),Dn(),_e(e.type))}(t);case 217:return function(e){ye(e.expression),Ln(\"!\")}(t);case 218:return function(e){On(e.keywordToken,e.pos,Tn),Tn(\".\"),_e(e.name)}(t);case 264:return function(e){_e(e.openingElement),yn(e,e.children,262144),_e(e.closingElement)}(t);case 265:return function(e){Tn(\"<\"),We(e.tagName),mn(e,e.typeArguments),Dn(),_e(e.attributes),Tn(\"/>\")}(t);case 268:return function(e){_e(e.openingFragment),yn(e,e.children,262144),_e(e.closingFragment)}(t);case 319:return function(e){ye(e.expression)}(t);case 320:return function(e){vn(e,e.elements,528)}(t)}}function Se(n,t){e.Debug.assert(b===t||E===t),be(1,t)(n,E=C(n,t)),e.Debug.assert(b===t||E===t)}function xe(t){var r=!1,a=289===t.kind?t:void 0;if(!a||O!==e.ModuleKind.None){for(var o=a?a.prepends.length:0,s=a?a.sourceFiles.length+o:1,c=0;c<s;c++){var l=a?c<o?a.prepends[c]:a.sourceFiles[c-o]:t,u=e.isSourceFile(l)?l:e.isUnparsedSource(l)?void 0:i,d=n.noEmitHelpers||!!u&&e.hasRecordedExternalHelpers(u),p=(e.isSourceFile(l)||e.isUnparsedSource(l))&&!_,f=e.isUnparsedSource(l)?l.helpers:Le(l);if(f)for(var g=0,y=f;g<y.length;g++){var v=y[g];if(v.scoped){if(a)continue}else{if(d)continue;if(p){if(R.get(v.name))continue;R.set(v.name,!0)}}var h=ne();\"string\"==typeof v.text?Fn(v.text):Fn(v.text(st)),w&&w.sections.push({pos:h,end:m.getTextPos(),kind:\"emitHelpers\",data:v.name}),r=!0}}return r}}function Le(n){var t=e.getEmitHelpers(n);return t&&e.stableSort(t,e.compareEmitHelpers)}function Ce(t){var r,a=Jn(t,n.neverAsciiEscape);!n.sourceMap&&!n.inlineSourceMap||10!==t.kind&&!e.isTemplateLiteralKind(t.kind)?function(e){m.writeStringLiteral(e)}(a):(r=a,m.writeLiteral(r))}function Ae(e){m.rawWrite(e.parent.text.substring(e.pos,e.end))}function De(e){(e.symbol?En:P)(qn(e,!1),e.symbol),yn(e,e.typeArguments,53776)}function ke(e){fn(e,e.typeParameters),gn(e,e.parameters),sn(e.type),Dn(),_e(e.equalsGreaterThanToken)}function Ne(n,t){Re(18,n.pos,Tn,n);var r=t||1&e.getEmitFlags(n)?768:129;yn(n,n.statements,r),Re(19,n.statements.end,Tn,n,!!(1&r))}function Ie(e){e?Tn(\";\"):Sn()}function Me(e,n){var t=Re(110,n,xn,e);Dn(),Re(20,t,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e)}function Oe(e){void 0!==e&&(242===e.kind?_e(e):ye(e))}function Re(n,t,r,a,o){var s=e.getParseTreeNode(a),c=s&&s.kind===a.kind,l=t;if(c&&(t=e.skipTrivia(i.text,t)),yt&&c&&a.pos!==l){var u=o&&!e.positionsAreOnSameLine(l,t,i);u&&In(),yt(l),u&&Mn()}return t=Pn(n,r,t),ht&&c&&a.end!==t&&ht(t,!0),t}function Pe(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"function\"),_e(e.asteriskToken),Dn(),ge(e.name),Fe(e,Ge)}function we(e,n){Be(n)}function Fe(n,t){var r=n.body;if(r)if(e.isBlock(r)){var a=65536&e.getEmitFlags(n);a&&In(),Xn(n),e.forEach(n.parameters,Zn),Zn(n.body),t(n),x?x(4,r,we):Be(r),Yn(n),a&&Mn()}else t(n),Dn(),ye(r);else t(n),Sn()}function Ge(e){fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type)}function Be(n){Dn(),Tn(\"{\"),In();var t=function(n){if(1&e.getEmitFlags(n))return!0;if(n.multiLine)return!1;if(!e.nodeIsSynthesized(n)&&!e.rangeIsOnSingleLine(n,i))return!1;if(Vn(n,n.statements,2)||jn(n,n.statements,2))return!1;for(var t,r=0,a=n.statements;r<a.length;r++){var o=a[r];if(Un(t,o,2))return!1;t=o}return!0}(n)?Ve:Ue;pt?pt(n,n.statements,t):t(n),Mn(),On(19,n.statements.end,Tn,n)}function Ve(e){Ue(e,!0)}function Ue(e,n){var t=en(e.statements),r=m.getTextPos();xe(e),0===t&&r===m.getTextPos()&&n?(Mn(),yn(e,e.statements,768),In()):yn(e,e.statements,1,t)}function je(n){e.forEach(n.members,$n),pn(n,n.decorators),on(n,n.modifiers),xn(\"class\"),n.name&&(Dn(),ge(n.name));var t=65536&e.getEmitFlags(n);t&&In(),fn(n,n.typeParameters),yn(n,n.heritageClauses,0),Dn(),Tn(\"{\"),yn(n,n.members,129),Tn(\"}\"),t&&Mn()}function Ke(e){Tn(\"{\"),yn(e,e.elements,525136),Tn(\"}\")}function He(e){e.propertyName&&(_e(e.propertyName),Dn(),Re(122,e.propertyName.end,xn,e),Dn()),_e(e.name)}function We(e){75===e.kind?ye(e):_e(e)}function ze(n,t,r){var a=163969;1===t.length&&(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t[0])||e.rangeStartPositionsAreOnSameLine(n,t[0],i))?(On(58,r,Tn,n),Dn(),a&=-130):Re(58,r,Tn,n),yn(n,t,a)}function qe(n){yn(n,e.createNodeArray(n.jsDocPropertyTags),33)}function Je(n){n.typeParameters&&yn(n,e.createNodeArray(n.typeParameters),33),n.parameters&&yn(n,e.createNodeArray(n.parameters),33),n.type&&(Nn(),Dn(),Tn(\"*\"),Dn(),_e(n.type))}function Xe(e){Tn(\"@\"),_e(e)}function Ye(e){e&&(Dn(),P(e))}function Qe(e){e&&(Dn(),Tn(\"{\"),_e(e.type),Tn(\"}\"))}function Ze(e,n,t,r){if(e){var a=m.getTextPos();An('/// <reference no-default-lib=\"true\"/>'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"no-default-lib\"}),Nn()}if(i&&i.moduleName&&(An('/// <amd-module name=\"'+i.moduleName+'\" />'),Nn()),i&&i.amdDependencies)for(var o=0,s=i.amdDependencies;o<s.length;o++){var c=s[o];c.name?An('/// <amd-dependency name=\"'+c.name+'\" path=\"'+c.path+'\" />'):An('/// <amd-dependency path=\"'+c.path+'\" />'),Nn()}for(var l=0,u=n;l<u.length;l++){var d=u[l];a=m.getTextPos();An('/// <reference path=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"reference\",data:d.fileName}),Nn()}for(var p=0,f=t;p<f.length;p++){d=f[p],a=m.getTextPos();An('/// <reference types=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"type\",data:d.fileName}),Nn()}for(var _=0,g=r;_<g.length;_++){d=g[_],a=m.getTextPos();An('/// <reference lib=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"lib\",data:d.fileName}),Nn()}}function $e(n){var t=n.statements;Xn(n),e.forEach(n.statements,Zn),xe(n);var r=e.findIndex(t,(function(n){return!e.isPrologueDirective(n)}));!function(e){e.isDeclarationFile&&Ze(e.hasNoDefaultLib,e.referencedFiles,e.typeReferenceDirectives,e.libReferenceDirectives)}(n),yn(n,t,1,-1===r?t.length:r),Yn(n)}function en(n,t,r,a){for(var i=!!t,o=0;o<n.length;o++){var s=n[o];if(!e.isPrologueDirective(s))return o;if(!r||!r.has(s.expression.text)){i&&(i=!1,de(t)),Nn();var c=m.getTextPos();_e(s),a&&w&&w.sections.push({pos:c,end:m.getTextPos(),kind:\"prologue\",data:s.expression.text}),r&&r.set(s.expression.text,!0)}}return n.length}function nn(e,n){for(var t=0,r=e;t<r.length;t++){var a=r[t];if(!n.has(a.data)){Nn();var i=m.getTextPos();_e(a),w&&w.sections.push({pos:i,end:m.getTextPos(),kind:\"prologue\",data:a.data}),n&&n.set(a.data,!0)}}}function tn(n){if(e.isSourceFile(n))en(n.statements,n);else{for(var t=e.createMap(),r=0,a=n.prepends;r<a.length;r++){nn(a[r].prologues,t)}for(var i=0,o=n.sourceFiles;i<o.length;i++){var s=o[i];en(s.statements,s,t,!0)}de(void 0)}}function rn(n){if(e.isSourceFile(n)||e.isUnparsedSource(n)){var t=e.getShebang(n.text);if(t)return An(t),Nn(),!0}else{for(var r=0,a=n.prepends;r<a.length;r++){var i=a[r];if(e.Debug.assertNode(i,e.isUnparsedSource),rn(i))return!0}for(var o=0,s=n.sourceFiles;o<s.length;o++){if(rn(s[o]))return!0}}}function an(e,n){if(e){var t=P;P=n,_e(e),P=t}}function on(e,n){n&&n.length&&(yn(e,n,262656),Dn())}function sn(e){e&&(Tn(\":\"),Dn(),_e(e))}function cn(e,n,t){e&&(Dn(),Re(62,n,Ln,t),Dn(),ye(e))}function ln(e){e&&(Dn(),_e(e))}function un(e){e&&(Dn(),ye(e))}function dn(n,t){e.isBlock(t)||1&e.getEmitFlags(n)?(Dn(),_e(t)):(Nn(),In(),e.isEmptyStatement(t)?ve(5,t):_e(t),Mn())}function pn(e,n){yn(e,n,49153)}function mn(e,n){yn(e,n,53776)}function fn(n,t){if(e.isFunctionLike(n)&&n.typeArguments)return mn(n,n.typeArguments);yn(n,t,53776)}function _n(e,n){yn(e,n,2576)}function gn(n,t){!function(n,t){var r=e.singleOrUndefined(t);return r&&r.pos===n.pos&&e.isArrowFunction(n)&&!n.type&&!e.some(n.decorators)&&!e.some(n.modifiers)&&!e.some(n.typeParameters)&&!e.some(r.decorators)&&!e.some(r.modifiers)&&!r.dotDotDotToken&&!r.questionToken&&!r.type&&!r.initializer&&e.isIdentifier(r.name)}(n,t)?_n(n,t):yn(n,t,528)}function yn(e,n,t,r,a){bn(_e,e,n,t,r,a)}function vn(e,n,t,r,a){bn(ye,e,n,t,r,a)}function hn(e){switch(60&e){case 0:break;case 16:Tn(\",\");break;case 4:Dn(),Tn(\"|\");break;case 32:Dn(),Tn(\"*\"),Dn();break;case 8:Dn(),Tn(\"&\")}}function bn(n,t,a,i,o,s){void 0===o&&(o=0),void 0===s&&(s=a?a.length-o:0);var c=void 0===a;if(!(c&&16384&i)){var l=void 0===a||o>=a.length||0===s;if(l&&32768&i)return A&&A(a),void(D&&D(a));if(15360&i&&(Tn(function(e){return r[15360&e][0]}(i)),l&&!c&&ht(a.pos,!0)),A&&A(a),l)1&i?Nn():256&i&&!(524288&i)&&Dn();else{var u=0==(262144&i),d=u;Vn(t,a,i)?(Nn(),d=!1):256&i&&Dn(),128&i&&In();for(var p=void 0,m=void 0,f=!1,_=0;_<s;_++){var g=a[o+_];if(32&i?(Nn(),hn(i)):p&&(60&i&&p.end!==t.end&&yt(p.end),hn(i),ae(m),Un(p,g,i)?(0==(131&i)&&(In(),f=!0),Nn(),d=!1):p&&512&i&&Dn()),m=re(g),d){if(ht)ht(e.getCommentRange(g).pos)}else d=u;n(g),f&&(Mn(),f=!1),p=g}var y=64&i&&a.hasTrailingComma;16&i&&y&&Tn(\",\"),p&&60&i&&p.end!==t.end&&!(1024&e.getEmitFlags(p))&&yt(p.end),128&i&&Mn(),ae(m),jn(t,a,i)?Nn():256&i&&Dn()}D&&D(a),15360&i&&(l&&!c&&yt(a.end),Tn(function(e){return r[15360&e][1]}(i)))}}function En(e,n){m.writeSymbol(e,n)}function Tn(e){m.writePunctuation(e)}function Sn(){m.writeTrailingSemicolon(\";\")}function xn(e){m.writeKeyword(e)}function Ln(e){m.writeOperator(e)}function Cn(e){m.writeParameter(e)}function An(e){m.writeComment(e)}function Dn(){m.writeSpace(\" \")}function kn(e){m.writeProperty(e)}function Nn(){m.writeLine()}function In(){m.increaseIndent()}function Mn(){m.decreaseIndent()}function On(n,t,r,a){return U?Pn(n,r,t):function(n,t,r,a,i){if(U||n&&e.isInJsonFile(n))return i(t,r,a);var o=n&&n.emitNode,s=o&&o.flags||0,c=o&&o.tokenSourceMapRanges&&o.tokenSourceMapRanges[t],l=c&&c.source||y;a=Lt(l,c?c.pos:a),0==(128&s)&&a>=0&&At(l,a);a=i(t,r,a),c&&(a=c.end);0==(256&s)&&a>=0&&At(l,a);return a}(a,n,r,t,Pn)}function Rn(n,t){k&&k(n),t(e.tokenToString(n.kind)),N&&N(n)}function Pn(n,t,r){var a=e.tokenToString(n);return t(a),r<0?r:r+a.length}function wn(n){1&e.getEmitFlags(n)?Dn():Nn()}function Fn(n){for(var t=n.split(/\\r\\n?|\\n/g),r=e.guessIndentation(t),a=0,i=t;a<i.length;a++){var o=i[a],s=r?o.slice(r):o;s.length&&(Nn(),P(s))}}function Gn(e,n){e?(In(),Nn()):n&&Dn()}function Bn(e,n){e&&Mn(),n&&Mn()}function Vn(n,t,r){if(1&r)return!0;if(2&r){if(65536&r)return!0;var a=t[0];return void 0===a?!e.rangeIsOnSingleLine(n,i):e.positionIsSynthesized(n.pos)||e.nodeIsSynthesized(a)?Kn(a,r):!e.rangeStartPositionsAreOnSameLine(n,a,i)}return!1}function Un(n,t,r){return!!(1&r)||(2&r?void 0!==n&&void 0!==t&&(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t)?Kn(n,r)||Kn(t,r):!e.rangeEndIsOnSameLineAsRangeStart(n,t,i)):e.getStartsOnNewLine(t))}function jn(n,t,r){if(1&r)return 0==(131072&r);if(2&r){if(65536&r)return!0;var a=e.lastOrUndefined(t);return void 0===a?!e.rangeIsOnSingleLine(n,i):e.positionIsSynthesized(n.pos)||e.nodeIsSynthesized(a)?Kn(a,r):!e.rangeEndPositionsAreOnSameLine(n,a,i)}return!1}function Kn(n,t){if(e.nodeIsSynthesized(n)){var r=e.getStartsOnNewLine(n);return void 0===r?0!=(65536&t):r}return 0!=(65536&t)}function Hn(n,t,r){return!(131072&e.getEmitFlags(n))&&(n=zn(n),t=zn(t),r=zn(r),!!e.getStartsOnNewLine(r)||!(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t)||e.nodeIsSynthesized(r)||e.rangeEndIsOnSameLineAsRangeStart(t,r,i)))}function Wn(n){return 0===n.statements.length&&e.rangeEndIsOnSameLineAsRangeStart(n,n,i)}function zn(n){for(;199===n.kind&&e.nodeIsSynthesized(n);)n=n.expression;return n}function qn(n,t){return e.isGeneratedIdentifier(n)?nt(n):e.isIdentifier(n)&&(e.nodeIsSynthesized(n)||!n.parent||!i||n.parent&&i&&e.getSourceFileOfNode(n)!==e.getOriginalNode(i))?e.idText(n):10===n.kind&&n.textSourceNode?qn(n.textSourceNode,t):!e.isLiteralExpression(n)||!e.nodeIsSynthesized(n)&&n.parent?e.getSourceTextOfNodeFromSourceFile(i,n,t):n.text}function Jn(n,t){if(10===n.kind&&n.textSourceNode){var r=n.textSourceNode;return e.isIdentifier(r)?t||16777216&e.getEmitFlags(n)?'\"'+e.escapeString(qn(r))+'\"':'\"'+e.escapeNonAsciiString(qn(r))+'\"':Jn(r,t)}return e.getLiteralText(n,i,t)}function Xn(n){n&&524288&e.getEmitFlags(n)||(l.push(u),u=0,d.push(p))}function Yn(n){n&&524288&e.getEmitFlags(n)||(u=l.pop(),p=d.pop())}function Qn(n){p&&p!==e.lastOrUndefined(d)||(p=e.createMap()),p.set(n,!0)}function Zn(n){if(n)switch(n.kind){case 222:e.forEach(n.statements,Zn);break;case 237:case 235:case 227:case 228:Zn(n.statement);break;case 226:Zn(n.thenStatement),Zn(n.elseStatement);break;case 229:case 231:case 230:Zn(n.initializer),Zn(n.statement);break;case 236:Zn(n.caseBlock);break;case 250:e.forEach(n.clauses,Zn);break;case 275:case 276:e.forEach(n.statements,Zn);break;case 239:Zn(n.tryBlock),Zn(n.catchClause),Zn(n.finallyBlock);break;case 278:Zn(n.variableDeclaration),Zn(n.block);break;case 224:Zn(n.declarationList);break;case 242:e.forEach(n.declarations,Zn);break;case 241:case 155:case 190:case 244:et(n.name);break;case 243:et(n.name),524288&e.getEmitFlags(n)&&(e.forEach(n.parameters,Zn),Zn(n.body));break;case 188:case 189:e.forEach(n.elements,Zn);break;case 253:Zn(n.importClause);break;case 254:et(n.name),Zn(n.namedBindings);break;case 255:et(n.name);break;case 256:e.forEach(n.elements,Zn);break;case 257:et(n.propertyName||n.name)}}function $n(e){if(e)switch(e.kind){case 279:case 280:case 158:case 160:case 162:case 163:et(e.name)}}function et(n){n&&(e.isGeneratedIdentifier(n)?nt(n):e.isBindingPattern(n)&&Zn(n))}function nt(n){if(4==(7&n.autoGenerateFlags))return tt(function(n){var t=n.autoGenerateId,r=n,a=r.original;for(;a&&(r=a,!(e.isIdentifier(r)&&4&r.autoGenerateFlags&&r.autoGenerateId!==t));)a=r.original;return r}(n),n.autoGenerateFlags);var t=n.autoGenerateId;return s[t]||(s[t]=function(n){switch(7&n.autoGenerateFlags){case 1:return it(0,!!(8&n.autoGenerateFlags));case 2:return it(268435456,!!(8&n.autoGenerateFlags));case 3:return ot(e.idText(n),32&n.autoGenerateFlags?at:rt,!!(16&n.autoGenerateFlags),!!(8&n.autoGenerateFlags))}return e.Debug.fail(\"Unsupported GeneratedIdentifierKind.\")}(n))}function tt(n,t){var r=e.getNodeId(n);return o[r]||(o[r]=function(n,t){switch(n.kind){case 75:return ot(qn(n),rt,!!(16&t),!!(8&t));case 248:case 247:return function(n){var t=qn(n.name);return function(n,t){for(var r=t;e.isNodeDescendantOf(r,t);r=r.nextContainer)if(r.locals){var a=r.locals.get(e.escapeLeadingUnderscores(n));if(a&&3257279&a.flags)return!1}return!0}(t,n)?t:ot(t)}(n);case 253:case 259:return function(n){var t=e.getExternalModuleName(n);return ot(e.isStringLiteral(t)?e.makeIdentifierFromModuleName(t.text):\"module\")}(n);case 243:case 244:case 258:return ot(\"default\");case 213:return ot(\"class\");case 160:case 162:case 163:return function(n){if(e.isIdentifier(n.name))return tt(n.name);return it(0)}(n);case 153:return it(0,!0);default:return it(0)}}(n,t))}function rt(e){return at(e)&&!c.has(e)&&!(p&&p.has(e))}function at(n){return!i||e.isFileLevelUniqueName(i,n,T)}function it(e,n){if(e&&!(u&e)&&rt(t=268435456===e?\"_i\":\"_n\"))return u|=e,n&&Qn(t),t;for(;;){var t,r=268435455&u;if(u++,8!==r&&13!==r)if(rt(t=r<26?\"_\"+String.fromCharCode(97+r):\"_\"+(r-26)))return n&&Qn(t),t}}function ot(e,n,t,r){if(void 0===n&&(n=rt),t&&n(e))return r?Qn(e):c.set(e,!0),e;95!==e.charCodeAt(e.length-1)&&(e+=\"_\");for(var a=1;;){var i=e+a;if(n(i))return r?Qn(i):c.set(i,!0),i;a++}}function st(e){return ot(e,at,!0)}function ct(n,t){e.Debug.assert(b===t||E===t),X(),z=!1;var r=e.getEmitFlags(t),a=e.getCommentRange(t),i=a.pos,o=a.end,s=318!==t.kind,c=i<0||0!=(512&r)||11===t.kind,l=o<0||0!=(1024&r)||11===t.kind,u=K,d=H,p=W;(i>0||o>0)&&i!==o&&(c||mt(i,s),(!c||i>=0&&0!=(512&r))&&(K=i),(!l||o>=0&&0!=(1024&r))&&(H=o,242===t.kind&&(W=o))),e.forEach(e.getSyntheticLeadingComments(t),lt),Y();var m=be(2,t);2048&r?(q=!0,m(n,t),q=!1):m(n,t),X(),e.forEach(e.getSyntheticTrailingComments(t),ut),(i>0||o>0)&&i!==o&&(K=u,H=d,W=p,!l&&s&&function(e){Tt(e,vt)}(o)),Y(),e.Debug.assert(b===t||E===t)}function lt(e){2===e.kind&&m.writeLine(),dt(e),e.hasTrailingNewLine||2===e.kind?m.writeLine():m.writeSpace(\" \")}function ut(e){m.isAtStartOfLine()||m.writeSpace(\" \"),dt(e),e.hasTrailingNewLine&&m.writeLine()}function dt(n){var t=function(e){return 3===e.kind?\"/*\"+e.text+\"*/\":\"//\"+e.text}(n),r=3===n.kind?e.computeLineStarts(t):void 0;e.writeCommentRange(t,r,m,0,t.length,M)}function pt(n,t,r){X();var a,o,s=t.pos,c=t.end,l=e.getEmitFlags(n),u=q||c<0||0!=(1024&l);s<0||0!=(512&l)||(a=t,(o=e.emitDetachedComments(i.text,fe(),m,St,a,M,q))&&(h?h.push(o):h=[o])),Y(),2048&l&&!q?(q=!0,r(n),q=!1):r(n),X(),u||(mt(t.end,!0),z&&!m.isAtStartOfLine()&&m.writeLine()),Y()}function mt(e,n){z=!1,n?Et(e,gt):0===e&&Et(e,ft)}function ft(n,t,r,a,o){(function(n,t){return e.isRecognizedTripleSlashComment(i.text,n,t)})(n,t)&&gt(n,t,r,a,o)}function _t(t,r){return!n.onlyPrintJsDocStyle||(e.isJSDocLikeText(t,r)||e.isPinnedComment(t,r))}function gt(n,t,r,a,o){_t(i.text,n)&&(z||(e.emitNewLineBeforeLeadingCommentOfPosition(fe(),m,o,n),z=!0),Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a?m.writeLine():3===r&&m.writeSpace(\" \"))}function yt(e){q||-1===e||mt(e,!0)}function vt(n,t,r,a){_t(i.text,n)&&(m.isAtStartOfLine()||m.writeSpace(\" \"),Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a&&m.writeLine())}function ht(e,n){q||(X(),Tt(e,n?vt:bt),Y())}function bt(n,t,r,a){Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a?m.writeLine():m.writeSpace(\" \")}function Et(n,t){!i||-1!==K&&n===K||(function(n){return void 0!==h&&e.last(h).nodePos===n}(n)?function(n){var t=e.last(h).detachedCommentEndPos;h.length-1?h.pop():h=void 0;e.forEachLeadingCommentRange(i.text,t,n,t)}(t):e.forEachLeadingCommentRange(i.text,n,t,n))}function Tt(n,t){i&&(-1===H||n!==H&&n!==W)&&e.forEachTrailingCommentRange(i.text,n,t)}function St(n,t,r,a,o,s){_t(i.text,a)&&(Ct(a),e.writeCommentRange(n,t,r,a,o,s),Ct(o))}function xt(n,t){e.Debug.assert(b===t||E===t);var r=be(3,t);if(e.isUnparsedSource(t)||e.isUnparsedPrepend(t))r(n,t);else if(e.isUnparsedNode(t)){var a=function(n){return void 0===n.parsedSourceMap&&void 0!==n.sourceMapText&&(n.parsedSourceMap=e.tryParseRawSourceMap(n.sourceMapText)||!1),n.parsedSourceMap||void 0}(t.parent);a&&g&&g.appendSourceMap(m.getLine(),m.getColumn(),a,t.parent.sourceMapPath,t.parent.getLineAndCharacterOfPosition(t.pos),t.parent.getLineAndCharacterOfPosition(t.end)),r(n,t)}else{var i=e.getSourceMapRange(t),o=i.pos,s=i.end,c=i.source,l=void 0===c?y:c,u=e.getEmitFlags(t);318!==t.kind&&0==(16&u)&&o>=0&&At(l,Lt(l,o)),64&u?(U=!0,r(n,t),U=!1):r(n,t),318!==t.kind&&0==(32&u)&&s>=0&&At(l,s)}e.Debug.assert(b===t||E===t)}function Lt(n,t){return n.skipTrivia?n.skipTrivia(t):e.skipTrivia(n.text,t)}function Ct(n){if(!(U||e.positionIsSynthesized(n)||kt(y))){var t=e.getLineAndCharacterOfPosition(y,n),r=t.line,a=t.character;g.addMapping(m.getLine(),m.getColumn(),j,r,a,void 0)}}function At(e,n){if(e!==y){var t=y;Dt(e),Ct(n),Dt(t)}else Ct(n)}function Dt(e){U||(y=e,kt(e)||(j=g.addSource(e.fileName),n.inlineSources&&g.setSourceContent(j,e.text)))}function kt(n){return e.fileExtensionIs(n.fileName,\".json\")}}e.isBuildInfoFile=function(n){return e.fileExtensionIs(n,\".tsbuildinfo\")},e.forEachEmittedFile=i,e.getTsBuildInfoEmitOutputFilePath=o,e.getOutputPathsForBundle=s,e.getOutputPathsFor=c,e.getOutputExtension=u,e.getOutputDeclarationFileName=p,e.getAllProjectOutputs=function(e,n){var t=f(),r=t.addOutput,a=t.getOutputs;if(e.options.outFile||e.options.out)_(e,r);else{for(var i=0,s=e.fileNames;i<s.length;i++){g(e,s[i],n,r)}r(o(e.options))}return a()},e.getOutputFileNames=function(n,t,r){t=e.normalizePath(t),e.Debug.assert(e.contains(n.fileNames,t),\"Expected fileName to be present in command line\");var a=f(),i=a.addOutput,o=a.getOutputs;return n.options.outFile||n.options.out?_(n,i):g(n,t,r,i),o()},e.getFirstProjectOutput=function(n,t){if(n.options.outFile||n.options.out){var r=s(n.options,!1).jsFilePath;return e.Debug.assertDefined(r,\"project \"+n.options.configFilePath+\" expected to have at least one output\")}for(var a=0,i=n.fileNames;a<i.length;a++){var c=i[a];if(!e.fileExtensionIs(c,\".d.ts\")){if(r=m(c,n,t))return r;if(!e.fileExtensionIs(c,\".json\")&&e.getEmitDeclarations(n.options))return p(c,n,t)}}var l=o(n.options);return l||e.Debug.fail(\"project \"+n.options.configFilePath+\" expected to have at least one output\")},e.emitFiles=y,e.getBuildInfoText=v,e.getBuildInfo=h,e.notImplementedResolver={hasGlobalName:e.notImplemented,getReferencedExportContainer:e.notImplemented,getReferencedImportDeclaration:e.notImplemented,getReferencedDeclarationWithCollidingName:e.notImplemented,isDeclarationWithCollidingName:e.notImplemented,isValueAliasDeclaration:e.notImplemented,isReferencedAliasDeclaration:e.notImplemented,isTopLevelValueImportEqualsWithEntityName:e.notImplemented,getNodeCheckFlags:e.notImplemented,isDeclarationVisible:e.notImplemented,isLateBound:function(e){return!1},collectLinkedAliases:e.notImplemented,isImplementationOfOverload:e.notImplemented,isRequiredInitializedParameter:e.notImplemented,isOptionalUninitializedParameterProperty:e.notImplemented,isExpandoFunctionDeclaration:e.notImplemented,getPropertiesOfContainerFunction:e.notImplemented,createTypeOfDeclaration:e.notImplemented,createReturnTypeOfSignatureDeclaration:e.notImplemented,createTypeOfExpression:e.notImplemented,createLiteralConstValue:e.notImplemented,isSymbolAccessible:e.notImplemented,isEntityNameVisible:e.notImplemented,getConstantValue:e.notImplemented,getReferencedValueDeclaration:e.notImplemented,getTypeReferenceSerializationKind:e.notImplemented,isOptionalParameter:e.notImplemented,moduleExportsSomeValue:e.notImplemented,isArgumentsLocalBinding:e.notImplemented,getExternalModuleFileFromDeclaration:e.notImplemented,getTypeReferenceDirectivesForEntityName:e.notImplemented,getTypeReferenceDirectivesForSymbol:e.notImplemented,isLiteralConstDeclaration:e.notImplemented,getJsxFactoryEntity:e.notImplemented,getAllAccessorDeclarations:e.notImplemented,getSymbolOfExternalModuleSpecifier:e.notImplemented,isBindingCapturedByNode:e.notImplemented,getDeclarationStatementsForSourceFile:e.notImplemented},e.emitUsingBuildInfo=function(n,t,r,a){var i=s(n.options,!1),o=i.buildInfoPath,c=i.jsFilePath,l=i.sourceMapFilePath,u=i.declarationFilePath,d=i.declarationMapPath,p=t.readFile(e.Debug.assertDefined(o));if(!p)return o;var m=t.readFile(e.Debug.assertDefined(c));if(!m)return c;var f=l&&t.readFile(l);if(l&&!f||n.options.inlineSourceMap)return l||\"inline sourcemap decoding\";var _=u&&t.readFile(u);if(u&&!_)return u;var g=d&&t.readFile(d);if(d&&!g||n.options.inlineSourceMap)return d||\"inline sourcemap decoding\";var b=h(p);if(!b.bundle||!b.bundle.js||_&&!b.bundle.dts)return o;var E=e.getDirectoryPath(e.getNormalizedAbsolutePath(o,t.getCurrentDirectory())),T=e.createInputFiles(m,_,l,f,d,g,c,u,o,b,!0),S=[],x=e.createPrependNodes(n.projectReferences,r,(function(e){return t.readFile(e)})),L=function(n,t,r){var a=n.sourceFiles.map((function(n){var a=e.createNode(288,0,0);return a.fileName=e.getRelativePathFromDirectory(r.getCurrentDirectory(),e.getNormalizedAbsolutePath(n,t),!r.useCaseSensitiveFileNames()),a.text=\"\",a.statements=e.createNodeArray(),a})),i=e.Debug.assertDefined(n.js);return e.forEach(i.sources&&i.sources.prologues,(function(n){var t=a[n.file];t.text=n.text,t.end=n.text.length,t.statements=e.createNodeArray(n.directives.map((function(n){var t=e.createNode(225,n.pos,n.end);return t.expression=e.createNode(10,n.expression.pos,n.expression.end),t.expression.text=n.expression.text,t})))})),a}(b.bundle,E,t),C={getPrependNodes:e.memoize((function(){return __spreadArrays(x,[T])})),getCanonicalFileName:t.getCanonicalFileName,getCommonSourceDirectory:function(){return e.getNormalizedAbsolutePath(b.bundle.commonSourceDirectory,E)},getCompilerOptions:function(){return n.options},getCurrentDirectory:function(){return t.getCurrentDirectory()},getNewLine:function(){return t.getNewLine()},getSourceFile:e.returnUndefined,getSourceFileByPath:e.returnUndefined,getSourceFiles:function(){return L},getLibFileFromReference:e.notImplemented,isSourceFileFromExternalLibrary:e.returnFalse,getResolvedProjectReferenceToRedirect:e.returnUndefined,isSourceOfProjectReferenceRedirect:e.returnFalse,writeFile:function(n,t,r){switch(n){case c:if(m===t)return;break;case l:if(f===t)return;break;case o:var a=h(t);a.program=b.program;var i=b.bundle,s=i.js,p=i.dts,y=i.sourceFiles;return a.bundle.js.sources=s.sources,p&&(a.bundle.dts.sources=p.sources),a.bundle.sourceFiles=y,void S.push({name:n,text:v(a),writeByteOrderMark:r});case u:if(_===t)return;break;case d:if(g===t)return;break;default:e.Debug.fail(\"Unexpected path: \"+n)}S.push({name:n,text:t,writeByteOrderMark:r})},isEmitBlocked:e.returnFalse,readFile:function(e){return t.readFile(e)},fileExists:function(e){return t.fileExists(e)},directoryExists:t.directoryExists&&function(e){return t.directoryExists(e)},useCaseSensitiveFileNames:function(){return t.useCaseSensitiveFileNames()},getProgramBuildInfo:e.returnUndefined,getSourceFileFromReference:e.returnUndefined,redirectTargetsMap:e.createMultiMap()};return y(e.notImplementedResolver,C,void 0,e.getTransformers(n.options,a)),S},function(e){e[e.Notification=0]=\"Notification\",e[e.Substitution=1]=\"Substitution\",e[e.Comments=2]=\"Comments\",e[e.SourceMaps=3]=\"SourceMaps\",e[e.Emit=4]=\"Emit\"}(n||(n={})),e.createPrinter=b,function(e){e[e.Auto=0]=\"Auto\",e[e.CountMask=268435455]=\"CountMask\",e[e._i=268435456]=\"_i\"}(t||(t={}))}(ts||(ts={})),function(e){var n;function t(e,n,t,r){return e.watchFile(n,t,r)}function r(e,n,t,r){return e.watchDirectory(n,t,0!=(1&r))}function a(e,t){switch(e){case n.None:return t;case n.TriggerOnly:return s;case n.Verbose:return t===r?o:i}}function i(e,n,t,r,a,i,o,l,u,d,p){u(d+\":: Added:: \"+c(n,r,i,o,p));var m=s(e,n,t,r,a,i,o,l,u,d,p);return{close:function(){u(d+\":: Close:: \"+c(n,r,i,o,p)),m.close()}}}function o(n,t,r,a,i,o,l,u,d,p,m){var f=p+\":: Added:: \"+c(t,a,o,l,m);d(f);var _=e.timestamp(),g=s(n,t,r,a,i,o,l,u,d,p,m),y=e.timestamp()-_;return d(\"Elapsed:: \"+y+\"ms \"+f),{close:function(){var n=p+\":: Close:: \"+c(t,a,o,l,m);d(n);var r=e.timestamp();g.close();var i=e.timestamp()-r;d(\"Elapsed:: \"+i+\"ms \"+n)}}}function s(n,t,r,a,i,o,s,l,u,d,p){return l(n,t,(function(n,l){var m=d+\":: Triggered with \"+n+\" \"+(void 0!==l?l:\"\")+\":: \"+c(t,a,o,s,p);u(m);var f=e.timestamp();r(n,l,i);var _=e.timestamp()-f;u(\"Elapsed:: \"+_+\"ms \"+m)}),a)}function c(e,n,t,r,a){return\"WatchInfo: \"+e+\" \"+n+\" \"+(a?a(t,r):void 0===r?t:t+\" \"+r)}function l(e){e.watcher.close()}e.createCachedDirectoryStructureHost=function(n,t,r){if(n.getDirectories&&n.readDirectory){var a=e.createMap(),i=e.createGetCanonicalFileName(r);return{useCaseSensitiveFileNames:r,fileExists:function(e){var t=c(o(e));return t&&p(t.files,l(e))||n.fileExists(e)},readFile:function(e,t){return n.readFile(e,t)},directoryExists:n.directoryExists&&function(t){var r=o(t);return a.has(e.ensureTrailingDirectorySeparator(r))||n.directoryExists(t)},getDirectories:function(e){var t=o(e),r=u(e,t);if(r)return r.directories.slice();return n.getDirectories(e)},readDirectory:function(a,i,s,c,l){var d=o(a),p=u(a,d);if(p)return e.matchFiles(a,i,s,c,r,t,l,(function(n){var t=o(n);if(t===d)return p;return u(n,t)||e.emptyFileSystemEntries}),f);return n.readDirectory(a,i,s,c,l)},createDirectory:n.createDirectory&&function(e){var t=c(o(e)),r=l(e);t&&m(t.directories,r,!0);n.createDirectory(e)},writeFile:n.writeFile&&function(e,t,r){var a=c(o(e));a&&_(a,l(e),!0);return n.writeFile(e,t,r)},addOrDeleteFileOrDirectory:function(e,t){if(s(t))return void g();var r=c(t);if(!r)return;if(!n.directoryExists)return void g();var a=l(e),i={fileExists:n.fileExists(t),directoryExists:n.directoryExists(t)};i.directoryExists||p(r.directories,a)?g():_(r,a,i.fileExists);return i},addOrDeleteFile:function(n,t,r){if(r===e.FileWatcherEventKind.Changed)return;var a=c(t);a&&_(a,l(n),r===e.FileWatcherEventKind.Created)},clearCache:g,realpath:n.realpath&&f}}function o(n){return e.toPath(n,t,i)}function s(n){return a.get(e.ensureTrailingDirectorySeparator(n))}function c(n){return s(e.getDirectoryPath(n))}function l(n){return e.getBaseFileName(e.normalizePath(n))}function u(t,r){var i=s(r=e.ensureTrailingDirectorySeparator(r));if(i)return i;try{return function(t,r){var i={files:e.map(n.readDirectory(t,void 0,void 0,[\"*.*\"]),l)||[],directories:n.getDirectories(t)||[]};return a.set(e.ensureTrailingDirectorySeparator(r),i),i}(t,r)}catch(n){return void e.Debug.assert(!a.has(e.ensureTrailingDirectorySeparator(r)))}}function d(e,n){return i(e)===i(n)}function p(n,t){return e.some(n,(function(e){return d(e,t)}))}function m(n,t,r){if(p(n,t)){if(!r)return e.filterMutate(n,(function(e){return!d(e,t)}))}else if(r)return n.push(t)}function f(e){return n.realpath?n.realpath(e):e}function _(e,n,t){m(e.files,n,t)}function g(){a.clear()}},function(e){e[e.None=0]=\"None\",e[e.Partial=1]=\"Partial\",e[e.Full=2]=\"Full\"}(e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={})),e.updateMissingFilePathsWatch=function(n,t,r){var a=n.getMissingFilePaths(),i=e.arrayToSet(a);e.mutateMap(t,i,{createNewValue:r,onDeleteValue:e.closeFileWatcher})},e.updateWatchingWildcardDirectories=function(n,t,r){function a(e,n){return{watcher:r(e,n),flags:n}}e.mutateMap(n,t,{createNewValue:a,onDeleteValue:l,onExistingValue:function(e,t,r){if(e.flags===t)return;e.watcher.close(),n.set(r,a(r,t))}})},e.isEmittedFileOfProgram=function(e,n){return!!e&&e.isEmittedFile(n)},function(e){e[e.None=0]=\"None\",e[e.TriggerOnly=1]=\"TriggerOnly\",e[e.Verbose=2]=\"Verbose\"}(n=e.WatchLogLevel||(e.WatchLogLevel={})),e.getWatchFactory=function(i,o,s){return function(t,r,i,o,s){var c=a(t,o),l=t===n.None?function(e,n,t,r,a){return o(e,n,(function(e,n){return t(e,n,a)}),r)}:c,u=a(t,s);t===n.Verbose&&e.sysLog===e.noop&&(e.sysLog=function(e){return r(e)});return{watchFile:function(e,n,t,a,s,l){return c(e,n,t,a,void 0,s,l,o,r,\"FileWatcher\",i)},watchFilePath:function(e,n,t,a,s,c,u){return l(e,n,t,a,s,c,u,o,r,\"FileWatcher\",i)},watchDirectory:function(e,n,t,a,o,c){return u(e,n,t,a,void 0,o,c,s,r,\"DirectoryWatcher\",i)}}}(i,o,s,t,r)},e.closeFileWatcherOf=l}(ts||(ts={})),function(e){var n,t=/(^\\s*$)|(^\\s*\\/\\/\\/?\\s*(@ts-ignore)?)/;function r(n,t){var r=e.getDirectoryPath(t),a=e.isRootedDiskPath(n)?n:e.combinePaths(r,n);return e.normalizePath(a)}function a(n,t,r){var a;return e.forEach(n,(function(n){var i=e.getNormalizedPathComponents(n,t);if(i.pop(),a){for(var o=Math.min(a.length,i.length),s=0;s<o;s++)if(r(a[s])!==r(i[s])){if(0===s)return!0;a.length=s;break}i.length<a.length&&(a.length=i.length)}else a=i}))?\"\":a?e.getPathFromPathComponents(a):t}function i(e,n){return o(e,n)}function o(n,t,r){void 0===r&&(r=e.sys);var a,i=e.createMap(),o=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames);function s(n){n.length>e.getRootLength(n)&&!function(e){return!!i.has(e)||!!r.directoryExists(e)&&(i.set(e,!0),!0)}(n)&&(s(e.getDirectoryPath(n)),d.createDirectory?d.createDirectory(n):r.createDirectory(n))}function c(){return e.getDirectoryPath(e.normalizePath(r.getExecutingFilePath()))}var l=e.getNewLineCharacter(n,(function(){return r.newLine})),u=r.realpath&&function(e){return r.realpath(e)},d={getSourceFile:function(n,r,a){var i;try{e.performance.mark(\"beforeIORead\"),i=d.readFile(n),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(e){a&&a(e.message),i=\"\"}return void 0!==i?e.createSourceFile(n,i,r,t):void 0},getDefaultLibLocation:c,getDefaultLibFileName:function(n){return e.combinePaths(c(),e.getDefaultLibFileName(n))},writeFile:function(t,i,o,c){try{e.performance.mark(\"beforeIOWrite\"),s(e.getDirectoryPath(e.normalizePath(t))),e.isWatchSet(n)&&r.createHash&&r.getModifiedTime?function(n,t,i){a||(a=e.createMap());var o=r.createHash(t),s=r.getModifiedTime(n);if(s){var c=a.get(n);if(c&&c.byteOrderMark===i&&c.hash===o&&c.mtime.getTime()===s.getTime())return}r.writeFile(n,t,i);var l=r.getModifiedTime(n)||e.missingFileModifiedTime;a.set(n,{hash:o,byteOrderMark:i,mtime:l})}(t,i,o):r.writeFile(t,i,o),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(e){c&&c(e.message)}},getCurrentDirectory:e.memoize((function(){return r.getCurrentDirectory()})),useCaseSensitiveFileNames:function(){return r.useCaseSensitiveFileNames},getCanonicalFileName:o,getNewLine:function(){return l},fileExists:function(e){return r.fileExists(e)},readFile:function(e){return r.readFile(e)},trace:function(e){return r.write(e+l)},directoryExists:function(e){return r.directoryExists(e)},getEnvironmentVariable:function(e){return r.getEnvironmentVariable?r.getEnvironmentVariable(e):\"\"},getDirectories:function(e){return r.getDirectories(e)},realpath:u,readDirectory:function(e,n,t,a,i){return r.readDirectory(e,n,t,a,i)},createDirectory:function(e){return r.createDirectory(e)},createHash:e.maybeBind(r,r.createHash)};return d}function s(n,t){var r=e.diagnosticCategoryName(n)+\" TS\"+n.code+\": \"+m(n.messageText,t.getNewLine())+t.getNewLine();if(n.file){var a=e.getLineAndCharacterOfPosition(n.file,n.start),i=a.line,o=a.character,s=n.file.fileName;return e.convertToRelativePath(s,t.getCurrentDirectory(),(function(e){return t.getCanonicalFileName(e)}))+\"(\"+(i+1)+\",\"+(o+1)+\"): \"+r}return r}e.findConfigFile=function(n,t,r){return void 0===r&&(r=\"tsconfig.json\"),e.forEachAncestorDirectory(n,(function(n){var a=e.combinePaths(n,r);return t(a)?a:void 0}))},e.resolveTripleslashReference=r,e.computeCommonSourceDirectoryOfFilenames=a,e.createCompilerHost=i,e.createCompilerHostWorker=o,e.changeCompilerHostLikeToUseCache=function(n,t,r){var a=n.readFile,i=n.fileExists,o=n.directoryExists,s=n.createDirectory,c=n.writeFile,l=e.createMap(),u=e.createMap(),d=e.createMap(),p=e.createMap(),m=function(e,t){var r=a.call(n,t);return l.set(e,void 0!==r&&r),r};n.readFile=function(r){var i=t(r),o=l.get(i);return void 0!==o?!1!==o?o:void 0:e.fileExtensionIs(r,\".json\")||e.isBuildInfoFile(r)?m(i,r):a.call(n,r)};var f=r?function(n,a,i,o){var s=t(n),c=p.get(s);if(c)return c;var l=r(n,a,i,o);return l&&(e.isDeclarationFileName(n)||e.fileExtensionIs(n,\".json\"))&&p.set(s,l),l}:void 0;return n.fileExists=function(e){var r=t(e),a=u.get(r);if(void 0!==a)return a;var o=i.call(n,e);return u.set(r,!!o),o},c&&(n.writeFile=function(e,r,a,i,o){var s=t(e);u.delete(s);var d=l.get(s);if(void 0!==d&&d!==r)l.delete(s),p.delete(s);else if(f){var m=p.get(s);m&&m.text!==r&&p.delete(s)}c.call(n,e,r,a,i,o)}),o&&s&&(n.directoryExists=function(e){var r=t(e),a=d.get(r);if(void 0!==a)return a;var i=o.call(n,e);return d.set(r,!!i),i},n.createDirectory=function(e){var r=t(e);d.delete(r),s.call(n,e)}),{originalReadFile:a,originalFileExists:i,originalDirectoryExists:o,originalCreateDirectory:s,originalWriteFile:c,getSourceFileWithCache:f,readFileWithCache:function(e){var n=t(e),r=l.get(n);return void 0!==r?!1!==r?r:void 0:m(n,e)}}},e.getPreEmitDiagnostics=function(n,t,r){var a=__spreadArrays(n.getConfigFileParsingDiagnostics(),n.getOptionsDiagnostics(r),n.getSyntacticDiagnostics(t,r),n.getGlobalDiagnostics(r),n.getSemanticDiagnostics(t,r));return e.getEmitDeclarations(n.getCompilerOptions())&&e.addRange(a,n.getDeclarationDiagnostics(t,r)),e.sortAndDeduplicateDiagnostics(a)},e.formatDiagnostics=function(e,n){for(var t=\"\",r=0,a=e;r<a.length;r++){t+=s(a[r],n)}return t},e.formatDiagnostic=s,function(e){e.Grey=\"\u001b[90m\",e.Red=\"\u001b[91m\",e.Yellow=\"\u001b[93m\",e.Blue=\"\u001b[94m\",e.Cyan=\"\u001b[96m\"}(n=e.ForegroundColorEscapeSequences||(e.ForegroundColorEscapeSequences={}));function c(t){switch(t){case e.DiagnosticCategory.Error:return n.Red;case e.DiagnosticCategory.Warning:return n.Yellow;case e.DiagnosticCategory.Suggestion:return e.Debug.fail(\"Should never get an Info diagnostic on the command line.\");case e.DiagnosticCategory.Message:return n.Blue}}function l(e,n){return n+e+\"\u001b[0m\"}function u(e,n){for(;e.length<n;)e=\" \"+e;return e}function d(n,t,r,a,i,o){var s=e.getLineAndCharacterOfPosition(n,t),c=s.line,d=s.character,p=e.getLineAndCharacterOfPosition(n,t+r),m=p.line,f=p.character,_=e.getLineAndCharacterOfPosition(n,n.text.length).line,g=m-c>=4,y=(m+1+\"\").length;g&&(y=Math.max(\"...\".length,y));for(var v=\"\",h=c;h<=m;h++){v+=o.getNewLine(),g&&c+1<h&&h<m-1&&(v+=a+l(u(\"...\",y),\"\u001b[7m\")+\" \"+o.getNewLine(),h=m-1);var b=e.getPositionOfLineAndCharacter(n,h,0),E=h<_?e.getPositionOfLineAndCharacter(n,h+1,0):n.text.length,T=n.text.slice(b,E);if(T=(T=T.replace(/\\s+$/g,\"\")).replace(\"\\t\",\" \"),v+=a+l(u(h+1+\"\",y),\"\u001b[7m\")+\" \",v+=T+o.getNewLine(),v+=a+l(u(\"\",y),\"\u001b[7m\")+\" \",v+=i,h===c){var S=h===m?f:void 0;v+=T.slice(0,d).replace(/\\S/g,\" \"),v+=T.slice(d,S).replace(/./g,\"~\")}else v+=h===m?T.slice(0,f).replace(/./g,\"~\"):T.replace(/./g,\"~\");v+=\"\u001b[0m\"}return v}function p(t,r,a,i){void 0===i&&(i=l);var o=e.getLineAndCharacterOfPosition(t,r),s=o.line,c=o.character,u=\"\";return u+=i(a?e.convertToRelativePath(t.fileName,a.getCurrentDirectory(),(function(e){return a.getCanonicalFileName(e)})):t.fileName,n.Cyan),u+=\":\",u+=i(\"\"+(s+1),n.Yellow),u+=\":\",u+=i(\"\"+(c+1),n.Yellow)}function m(n,t,r){if(void 0===r&&(r=0),e.isString(n))return n;if(void 0===n)return\"\";var a=\"\";if(r){a+=t;for(var i=0;i<r;i++)a+=\"  \"}if(a+=n.messageText,r++,n.next)for(var o=0,s=n.next;o<s.length;o++){a+=m(s[o],t,r)}return a}function f(n,t,r,a){if(0===n.length)return[];for(var i=[],o=e.createMap(),s=0,c=n;s<c.length;s++){var l=c[s],u=void 0;o.has(l)?u=o.get(l):o.set(l,u=a(l,t,r)),i.push(u)}return i}function _(n,t){return void 0===t&&(t=n),{fileExists:function(e){return t.fileExists(e)},readDirectory:function(n,r,a,i,o){return e.Debug.assertDefined(t.readDirectory,\"'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),t.readDirectory(n,r,a,i,o)},readFile:function(e){return t.readFile(e)},useCaseSensitiveFileNames:n.useCaseSensitiveFileNames(),getCurrentDirectory:function(){return n.getCurrentDirectory()},onUnRecoverableConfigFileDiagnostic:n.onUnRecoverableConfigFileDiagnostic||e.returnUndefined,trace:n.trace?function(e){return n.trace(e)}:void 0}}function g(n,t,r){if(!n)return e.emptyArray;for(var a,i=0;i<n.length;i++){var o=n[i],s=t(o,i);if(o.prepend&&s&&s.options){if(!(s.options.outFile||s.options.out))continue;var c=e.getOutputPathsForBundle(s.options,!0),l=c.jsFilePath,u=c.sourceMapFilePath,d=c.declarationFilePath,p=c.declarationMapPath,m=c.buildInfoPath,f=e.createInputFiles(r,l,u,d,p,m);(a||(a=[])).push(f)}}return a||e.emptyArray}function y(n,t){var r=t||n;return e.resolveConfigFileProjectName(r.path)}function v(n,t){switch(t.extension){case\".ts\":case\".d.ts\":return;case\".tsx\":return r();case\".jsx\":return r()||a();case\".js\":return a();case\".json\":return n.resolveJsonModule?void 0:e.Diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used}function r(){return n.jsx?void 0:e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set}function a(){return n.allowJs||!e.getStrictOptionValue(n,\"noImplicitAny\")?void 0:e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type}}function h(e){for(var n=e.imports,t=e.moduleAugmentations,r=n.map((function(e){return e.text})),a=0,i=t;a<i.length;a++){var o=i[a];10===o.kind&&r.push(o.text)}return r}e.formatColorAndReset=l,e.formatLocation=p,e.formatDiagnosticsWithColorAndContext=function(t,r){for(var a=\"\",i=0,o=t;i<o.length;i++){var s=o[i];if(s.file)a+=p(g=s.file,y=s.start,r),a+=\" - \";if(a+=l(e.diagnosticCategoryName(s),c(s.category)),a+=l(\" TS\"+s.code+\": \",n.Grey),a+=m(s.messageText,r.getNewLine()),s.file&&(a+=r.getNewLine(),a+=d(s.file,s.start,s.length,\"\",c(s.category),r),s.relatedInformation)){a+=r.getNewLine();for(var u=0,f=s.relatedInformation;u<f.length;u++){var _=f[u],g=_.file,y=_.start,v=_.length,h=_.messageText;g&&(a+=r.getNewLine(),a+=\"  \"+p(g,y,r),a+=d(g,y,v,\"    \",n.Cyan,r)),a+=r.getNewLine(),a+=\"    \"+m(h,r.getNewLine())}}a+=r.getNewLine()}return a},e.flattenDiagnosticMessageText=m,e.loadWithLocalCache=f,e.inferredTypesContainingFile=\"__inferred type names__.ts\",e.isProgramUptoDate=function(n,t,r,a,i,o,s,c){if(!n||s)return!1;if(n.getRootFileNames().length!==t.length)return!1;var l;if(!e.arrayIsEqualTo(n.getProjectReferences(),c,(function(t,r,a){if(!e.projectReferenceIsEqualTo(t,r))return!1;return function n(t,r){if(t)return!!e.contains(l,t)||!!d(t.sourceFile)&&((l||(l=[])).push(t),!e.forEach(t.references,(function(e,r){return!n(e,t.commandLine.projectReferences[r])})));return!i(y(r))}(n.getResolvedProjectReferences()[a],t)})))return!1;if(n.getSourceFiles().some((function(e){return!d(e)||o(e.path)})))return!1;if(n.getMissingFilePaths().some(i))return!1;var u=n.getCompilerOptions();return!!e.compareDataObjects(u,r)&&(!u.configFile||!r.configFile||u.configFile.text===r.configFile.text);function d(e){return e.version===a(e.resolvedPath)}},e.getConfigFileParsingDiagnostics=function(e){return e.options.configFile?__spreadArrays(e.options.configFile.parseDiagnostics,e.errors):e.errors},e.createProgram=function(n,o,s,c,l){var u,d,p,m,b,E,T,S,x,L=e.isArray(n)?function(e,n,t,r,a){return{rootNames:e,options:n,host:t,oldProgram:r,configFileParsingDiagnostics:a}}(n,o,s,c,l):n,C=L.rootNames,A=L.options,D=L.configFileParsingDiagnostics,k=L.projectReferences,N=L.oldProgram,I=e.createMap(),M={},O={},R=e.createMap(),P=e.createDiagnosticCollection(),w=\"number\"==typeof A.maxNodeModuleJsDepth?A.maxNodeModuleJsDepth:0,F=0,G=e.createMap(),B=e.createMap();e.performance.mark(\"beforeProgram\");var V,U,j,K,H=L.host||i(A),W=_(H),z=A.noLib,q=e.memoize((function(){return H.getDefaultLibFileName(A)})),J=H.getDefaultLibLocation?H.getDefaultLibLocation():e.getDirectoryPath(q()),X=e.createDiagnosticCollection(),Y=H.getCurrentDirectory(),Q=e.getSupportedExtensions(A),Z=e.getSuppoertedExtensionsWithJsonIfResolveJsonModule(A,Q),$=e.createMap(),ee=H.hasInvalidatedResolution||e.returnFalse;if(H.resolveModuleNames)j=function(n,t,r,a){return H.resolveModuleNames(e.Debug.assertEachDefined(n),t,r,a,A).map((function(n){if(!n||void 0!==n.extension)return n;var t=e.clone(n);return t.extension=e.extensionFromPath(n.resolvedFileName),t}))};else{U=e.createModuleResolutionCache(Y,(function(e){return H.getCanonicalFileName(e)}),A);var ne=function(n,t,r){return e.resolveModuleName(n,t,A,H,U,r).resolvedModule};j=function(n,t,r,a){return f(e.Debug.assertEachDefined(n),t,a,ne)}}if(H.resolveTypeReferenceDirectives)K=function(n,t,r){return H.resolveTypeReferenceDirectives(e.Debug.assertEachDefined(n),t,r,A)};else{var te=function(n,t,r){return e.resolveTypeReferenceDirective(n,t,A,H,r).resolvedTypeReferenceDirective};K=function(n,t,r){return f(e.Debug.assertEachDefined(n),t,r,te)}}var re,ae,ie,oe,se,ce,le=e.createMap(),ue=e.createMap(),de=e.createMultiMap(),pe=e.createMap(),me=H.useCaseSensitiveFileNames()?e.createMap():void 0,fe=!!H.useSourceOfProjectReferenceRedirect&&H.useSourceOfProjectReferenceRedirect(),_e=function(n,t){if(!n)return!1;var r=n.getCompilerOptions();return!!e.sourceFileAffectingCompilerOptions.some((function(n){return!e.isJsonEqual(e.getCompilerOptionValue(r,n),e.getCompilerOptionValue(t,n))}))}(N,A);if(2!==(ce=function(){if(!N)return 0;var n=N.getCompilerOptions();if(e.changesAffectModuleResolution(n,A))return N.structureIsReused=0;e.Debug.assert(!(3&N.structureIsReused));var t=N.getRootFileNames();if(!e.arrayIsEqualTo(t,C))return N.structureIsReused=0;if(!e.arrayIsEqualTo(A.types,n.types))return N.structureIsReused=0;if(Tn(N.getProjectReferences(),N.getResolvedProjectReferences(),(function(e,n,t){var r=Mn((t?t.commandLine.projectReferences:k)[n]);return e?!r||r.sourceFile!==e.sourceFile:void 0!==r}),(function(n,t){var r=t?Sn(t.sourceFile.path).commandLine.projectReferences:k;return!e.arrayIsEqualTo(n,r,e.projectReferenceIsEqualTo)})))return N.structureIsReused=0;k&&(ae=k.map(Mn),H.setResolvedProjectReferenceCallbacks&&H.setResolvedProjectReferenceCallbacks({getSourceOfProjectReferenceRedirect:bn,forEachResolvedProjectReference:hn}));var r=[],a=[];if(N.structureIsReused=2,N.getMissingFilePaths().some((function(e){return H.fileExists(e)})))return N.structureIsReused=0;var i,o=N.getSourceFiles();!function(e){e[e.Exists=0]=\"Exists\",e[e.Modified=1]=\"Modified\"}(i||(i={}));for(var s=e.createMap(),c=0,l=o;c<l.length;c++){var u=l[c];if(!(O=H.getSourceFileByPath?H.getSourceFileByPath(u.fileName,u.resolvedPath,A.target,void 0,_e):H.getSourceFile(u.fileName,A.target,void 0,_e)))return N.structureIsReused=0;e.Debug.assert(!O.redirectInfo,\"Host should not return a redirect source file from `getSourceFile`\");var d=void 0;if(u.redirectInfo){if(O!==u.redirectInfo.unredirected)return N.structureIsReused=0;d=!1,O=u}else if(N.redirectTargetsMap.has(u.path)){if(O!==u)return N.structureIsReused=0;d=!1}else d=O!==u;O.path=u.path,O.originalFileName=u.originalFileName,O.resolvedPath=u.resolvedPath,O.fileName=u.fileName;var m=N.sourceFileToPackageName.get(u.path);if(void 0!==m){var f=s.get(m),_=d?1:0;if(void 0!==f&&1===_||1===f)return N.structureIsReused=0;s.set(m,_)}if(d){if(!e.arrayIsEqualTo(u.libReferenceDirectives,O.libReferenceDirectives,on))return N.structureIsReused=0;u.hasNoDefaultLib!==O.hasNoDefaultLib&&(N.structureIsReused=1),e.arrayIsEqualTo(u.referencedFiles,O.referencedFiles,on)||(N.structureIsReused=1),cn(O),e.arrayIsEqualTo(u.imports,O.imports,sn)||(N.structureIsReused=1),e.arrayIsEqualTo(u.moduleAugmentations,O.moduleAugmentations,sn)||(N.structureIsReused=1),(3145728&u.flags)!=(3145728&O.flags)&&(N.structureIsReused=1),e.arrayIsEqualTo(u.typeReferenceDirectives,O.typeReferenceDirectives,on)||(N.structureIsReused=1),a.push({oldFile:u,newFile:O})}else ee(u.path)&&(N.structureIsReused=1,a.push({oldFile:u,newFile:O}));r.push(O)}if(2!==N.structureIsReused)return N.structureIsReused;for(var g=a.map((function(e){return e.oldFile})),y=0,v=o;y<v.length;y++){var b=v[y];if(!e.contains(g,b))for(var E=0,T=b.ambientModuleNames;E<T.length;E++){var S=T[E];I.set(S,b.fileName)}}for(var L=0,D=a;L<D.length;L++){var M=D[L],O=(u=M.oldFile,M.newFile),w=e.getNormalizedAbsolutePath(O.originalFileName,Y),F=h(O),G=Be(F,w,O);if(e.hasChangesInResolutions(F,G,u.resolvedModules,e.moduleResolutionIsEqualTo)?(N.structureIsReused=1,O.resolvedModules=e.zipToMap(F,G)):O.resolvedModules=u.resolvedModules,K){var V=e.map(O.typeReferenceDirectives,(function(e){return e.fileName.toLocaleLowerCase()})),U=K(V,w,vn(O.originalFileName));e.hasChangesInResolutions(V,U,u.resolvedTypeReferenceDirectiveNames,e.typeDirectiveIsEqualTo)?(N.structureIsReused=1,O.resolvedTypeReferenceDirectiveNames=e.zipToMap(V,U)):O.resolvedTypeReferenceDirectiveNames=u.resolvedTypeReferenceDirectiveNames}}if(2!==N.structureIsReused)return N.structureIsReused;if(H.hasChangedAutomaticTypeDirectiveNames)return N.structureIsReused=1;re=N.getMissingFilePaths(),x=N.getRefFileMap();for(var j=0,W=r;j<W.length;j++){var z=(O=W[j]).path;if(fn(O,z,O.resolvedPath),fe){var q=gn(O.fileName);if(q&&!q.commandLine.options.outFile&&!q.commandLine.options.out){var J=yn(q,O.fileName);fn(O,Fe(J),void 0)}}N.isSourceFileFromExternalLibrary(N.getSourceFileByPath(O.resolvedPath))&&B.set(z,!0)}p=r,P=N.getFileProcessingDiagnostics();for(var X=0,Q=a;X<Q.length;X++){var Z=Q[X];P.reattachFileDiagnostics(Z.newFile)}return R=N.getResolvedTypeReferenceDirectives(),ue=N.sourceFileToPackageName,de=N.redirectTargetsMap,N.structureIsReused=2}())){if(u=[],d=[],k&&(ae||(ae=k.map(Mn)),H.setResolvedProjectReferenceCallbacks&&H.setResolvedProjectReferenceCallbacks({getSourceOfProjectReferenceRedirect:bn,forEachResolvedProjectReference:hn}),C.length))for(var ge=0,ye=ae;ge<ye.length;ge++){var ve=ye[ge];if(ve){var he=ve.commandLine.options.outFile||ve.commandLine.options.out;if(fe){if(he||e.getEmitModuleKind(ve.commandLine.options)===e.ModuleKind.None)for(var be=0,Ee=ve.commandLine.fileNames;be<Ee.length;be++){un(xe=Ee[be],!1,!1,void 0)}}else if(he)un(e.changeExtension(he,\".d.ts\"),!1,!1,void 0);else if(e.getEmitModuleKind(ve.commandLine.options)===e.ModuleKind.None)for(var Te=0,Se=ve.commandLine.fileNames;Te<Se.length;Te++){var xe=Se[Te];e.fileExtensionIs(xe,\".d.ts\")||e.fileExtensionIs(xe,\".json\")||un(e.getOutputDeclarationFileName(xe,ve.commandLine,!H.useCaseSensitiveFileNames()),!1,!1,void 0)}}}e.forEach(C,(function(e){return an(e,!1,!1)}));var Le=C.length?e.getAutomaticTypeDirectiveNames(A,H):e.emptyArray;if(Le.length)for(var Ce=A.configFilePath?e.getDirectoryPath(A.configFilePath):H.getCurrentDirectory(),Ae=e.combinePaths(Ce,e.inferredTypesContainingFile),De=K(Le,Ae),ke=0;ke<Le.length;ke++)Cn(Le[ke],De[ke]);if(C.length&&!z){var Ne=q();!A.lib&&Ne?an(Ne,!0,!1):e.forEach(A.lib,(function(n){an(e.combinePaths(J,n),!0,!1)}))}re=e.arrayFrom(e.mapDefinedIterator(pe.entries(),(function(e){var n=e[0];return void 0===e[1]?n:void 0}))),p=e.stableSort(u,(function(n,t){return e.compareValues(we(n),we(t))})).concat(d),u=void 0,d=void 0}if(e.Debug.assert(!!re),N&&H.onReleaseOldSourceFile){for(var Ie=0,Me=N.getSourceFiles();Ie<Me.length;Ie++){var Oe=Me[Ie],Re=qe(Oe.resolvedPath);(_e||!Re||Oe.resolvedPath===Oe.path&&Re.resolvedPath!==Oe.path)&&H.onReleaseOldSourceFile(Oe,N.getCompilerOptions(),!!qe(Oe.path))}N.forEachResolvedProjectReference((function(e,n){e&&!Sn(n)&&H.onReleaseOldSourceFile(e.sourceFile,N.getCompilerOptions(),!1)}))}N=void 0;var Pe={getRootFileNames:function(){return C},getSourceFile:ze,getSourceFileByPath:qe,getSourceFiles:function(){return p},getMissingFilePaths:function(){return re},getRefFileMap:function(){return x},getCompilerOptions:function(){return A},getSyntacticDiagnostics:function(e,n){return Je(e,Xe,n)},getOptionsDiagnostics:function(){return e.sortAndDeduplicateDiagnostics(e.concatenate(P.getGlobalDiagnostics(),e.concatenate(X.getGlobalDiagnostics(),function(){if(!A.configFile)return e.emptyArray;var n=X.getDiagnostics(A.configFile.fileName);return hn((function(t){t&&(n=e.concatenate(n,X.getDiagnostics(t.sourceFile.fileName)))})),n}())))},getGlobalDiagnostics:function(){return C.length?e.sortAndDeduplicateDiagnostics(Ke().getGlobalDiagnostics().slice()):e.emptyArray},getSemanticDiagnostics:function(e,n){return Je(e,Qe,n)},getSuggestionDiagnostics:function(e,n){return Ye((function(){return Ke().getSuggestionDiagnostics(e,n)}))},getDeclarationDiagnostics:function(e,n){var t=Pe.getCompilerOptions();return!e||t.out||t.outFile?en(e,n):Je(e,rn,n)},getTypeChecker:He,getClassifiableNames:function(){if(!S){He(),S=e.createUnderscoreEscapedMap();for(var n=0,t=p;n<t.length;n++){var r=t[n];e.copyEntries(r.classifiableNames,S)}}return S},getDiagnosticsProducingTypeChecker:Ke,getCommonSourceDirectory:Ge,emit:function(n,t,r,a,i,o){return Ye((function(){return function(n,t,r,a,i,o,s){var c=[];if(!s){if(A.noEmit)return{diagnostics:c,sourceMaps:void 0,emittedFiles:void 0,emitSkipped:!0};if(A.noEmitOnError){var l=__spreadArrays(n.getOptionsDiagnostics(a),n.getSyntacticDiagnostics(t,a),n.getGlobalDiagnostics(a),n.getSemanticDiagnostics(t,a));if(0===l.length&&e.getEmitDeclarations(n.getCompilerOptions())&&(c=n.getDeclarationDiagnostics(void 0,a)),l.length>0||c.length>0)return{diagnostics:e.concatenate(l,c),sourceMaps:void 0,emittedFiles:void 0,emitSkipped:!0}}}var u=Ke().getEmitResolver(A.outFile||A.out?void 0:t,a);e.performance.mark(\"beforeEmit\");var d=e.emitFiles(u,Ve(r),t,e.getTransformers(A,o,i),i,!1,s);return e.performance.mark(\"afterEmit\"),e.performance.measure(\"Emit\",\"beforeEmit\",\"afterEmit\"),d}(Pe,n,t,r,a,i,o)}))},getCurrentDirectory:function(){return Y},getNodeCount:function(){return Ke().getNodeCount()},getIdentifierCount:function(){return Ke().getIdentifierCount()},getSymbolCount:function(){return Ke().getSymbolCount()},getTypeCount:function(){return Ke().getTypeCount()},getRelationCacheSizes:function(){return Ke().getRelationCacheSizes()},getFileProcessingDiagnostics:function(){return P},getResolvedTypeReferenceDirectives:function(){return R},isSourceFileFromExternalLibrary:je,isSourceFileDefaultLibrary:function(n){if(n.hasNoDefaultLib)return!0;if(!A.noLib)return!1;var t=H.useCaseSensitiveFileNames()?e.equateStringsCaseSensitive:e.equateStringsCaseInsensitive;return A.lib?e.some(A.lib,(function(r){return t(n.fileName,e.combinePaths(J,r))})):t(n.fileName,q())},dropDiagnosticsProducingTypeChecker:function(){E=void 0},getSourceFileFromReference:function(e,n){return ln(r(n.fileName,e.fileName),(function(e){return pe.get(Fe(e))||void 0}))},getLibFileFromReference:function(n){var t=n.fileName.toLocaleLowerCase(),r=e.libMap.get(t);if(r)return ze(e.combinePaths(J,r))},sourceFileToPackageName:ue,redirectTargetsMap:de,isEmittedFile:function(n){if(A.noEmit)return!1;var t=Fe(n);if(qe(t))return!1;var r=A.outFile||A.out;if(r)return Hn(t,r)||Hn(t,e.removeFileExtension(r)+\".d.ts\");if(A.declarationDir&&e.containsPath(A.declarationDir,t,Y,!H.useCaseSensitiveFileNames()))return!0;if(A.outDir)return e.containsPath(A.outDir,t,Y,!H.useCaseSensitiveFileNames());if(e.fileExtensionIsOneOf(t,e.supportedJSExtensions)||e.fileExtensionIs(t,\".d.ts\")){var a=e.removeFileExtension(t);return!!qe(a+\".ts\")||!!qe(a+\".tsx\")}return!1},getConfigFileParsingDiagnostics:function(){return D||e.emptyArray},getResolvedModuleWithFailedLookupLocationsFromCache:function(n,t){return U&&e.resolveModuleNameFromCache(n,t,U)},getProjectReferences:function(){return k},getResolvedProjectReferences:function(){return ae},getProjectReferenceRedirect:_n,getResolvedProjectReferenceToRedirect:vn,getResolvedProjectReferenceByPath:Sn,forEachResolvedProjectReference:hn,isSourceOfProjectReferenceRedirect:En,emitBuildInfo:function(n){e.Debug.assert(!A.out&&!A.outFile),e.performance.mark(\"beforeEmit\");var t=e.emitFiles(e.notImplementedResolver,Ve(n),void 0,e.noTransformers,!1,!0);return e.performance.mark(\"afterEmit\"),e.performance.measure(\"Emit\",\"beforeEmit\",\"afterEmit\"),t},getProbableSymlinks:Wn};return function(){A.strictPropertyInitialization&&!e.getStrictOptionValue(A,\"strictNullChecks\")&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"strictPropertyInitialization\",\"strictNullChecks\");A.isolatedModules&&(A.out&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"out\",\"isolatedModules\"),A.outFile&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"outFile\",\"isolatedModules\"));A.inlineSourceMap&&(A.sourceMap&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"sourceMap\",\"inlineSourceMap\"),A.mapRoot&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"mapRoot\",\"inlineSourceMap\"));A.paths&&void 0===A.baseUrl&&Fn(e.Diagnostics.Option_paths_cannot_be_used_without_specifying_baseUrl_option,\"paths\");A.composite&&(!1===A.declaration&&Fn(e.Diagnostics.Composite_projects_may_not_disable_declaration_emit,\"declaration\"),!1===A.incremental&&Fn(e.Diagnostics.Composite_projects_may_not_disable_incremental_compilation,\"declaration\"));A.tsBuildInfoFile?e.isIncrementalCompilation(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"tsBuildInfoFile\",\"incremental\",\"composite\"):!A.incremental||A.outFile||A.out||A.configFilePath||X.add(e.createCompilerDiagnostic(e.Diagnostics.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified));if(function(){var n=A.noEmit||A.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(A);Tn(k,ae,(function(t,r,a){var i=(a?a.commandLine.projectReferences:k)[r],o=a&&a.sourceFile;if(t){var s=t.commandLine.options;if(!s.composite)(a?a.commandLine.fileNames:C).length&&Bn(o,r,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,i.path);if(i.prepend){var c=s.outFile||s.out;c?H.fileExists(c)||Bn(o,r,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,c,i.path):Bn(o,r,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,i.path)}!a&&n&&n===e.getTsBuildInfoEmitOutputFilePath(s)&&(Bn(o,r,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,n,i.path),$.set(Fe(n),!0))}else Bn(o,r,e.Diagnostics.File_0_not_found,i.path)}))}(),A.composite)for(var n=e.arrayToSet(C,Fe),t=0,r=p;t<r.length;t++){var a=r[t];e.sourceFileMayBeEmitted(a,Pe)&&!n.has(a.path)&&On(a,n,e.Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern,a.fileName,A.configFilePath||\"\")}if(A.paths)for(var i in A.paths)if(e.hasProperty(A.paths,i))if(e.hasZeroOrOneAsteriskCharacter(i)||Pn(!0,i,e.Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,i),e.isArray(A.paths[i])){var o=A.paths[i].length;0===o&&Pn(!1,i,e.Diagnostics.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array,i);for(var s=0;s<o;s++){var c=A.paths[i][s],l=typeof c;\"string\"===l?e.hasZeroOrOneAsteriskCharacter(c)||Rn(i,s,e.Diagnostics.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character,c,i):Rn(i,s,e.Diagnostics.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2,c,i,l)}}else Pn(!1,i,e.Diagnostics.Substitutions_for_pattern_0_should_be_an_array,i);A.sourceMap||A.inlineSourceMap||(A.inlineSources&&Fn(e.Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided,\"inlineSources\"),A.sourceRoot&&Fn(e.Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided,\"sourceRoot\"));A.out&&A.outFile&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"out\",\"outFile\");!A.mapRoot||A.sourceMap||A.declarationMap||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"mapRoot\",\"sourceMap\",\"declarationMap\");A.declarationDir&&(e.getEmitDeclarations(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"declarationDir\",\"declaration\",\"composite\"),(A.out||A.outFile)&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"declarationDir\",A.out?\"out\":\"outFile\"));A.declarationMap&&!e.getEmitDeclarations(A)&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"declarationMap\",\"declaration\",\"composite\");A.lib&&A.noLib&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"lib\",\"noLib\");A.noImplicitUseStrict&&e.getStrictOptionValue(A,\"alwaysStrict\")&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"noImplicitUseStrict\",\"alwaysStrict\");var u=A.target||0,d=A.outFile||A.out,m=e.find(p,(function(n){return e.isExternalModule(n)&&!n.isDeclarationFile}));if(A.isolatedModules){A.module===e.ModuleKind.None&&u<2&&Fn(e.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher,\"isolatedModules\",\"target\");var f=e.find(p,(function(n){return!e.isExternalModule(n)&&!e.isSourceFileJS(n)&&!n.isDeclarationFile&&6!==n.scriptKind}));if(f){var _=e.getErrorSpanForNode(f,f);X.add(e.createFileDiagnostic(f,_.start,_.length,e.Diagnostics.All_files_must_be_modules_when_the_isolatedModules_flag_is_provided))}}else if(m&&u<2&&A.module===e.ModuleKind.None){_=e.getErrorSpanForNode(m,m.externalModuleIndicator);X.add(e.createFileDiagnostic(m,_.start,_.length,e.Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none))}if(d&&!A.emitDeclarationOnly)if(A.module&&A.module!==e.ModuleKind.AMD&&A.module!==e.ModuleKind.System)Fn(e.Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0,A.out?\"out\":\"outFile\",\"module\");else if(void 0===A.module&&m){_=e.getErrorSpanForNode(m,m.externalModuleIndicator);X.add(e.createFileDiagnostic(m,_.start,_.length,e.Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system,A.out?\"out\":\"outFile\"))}A.resolveJsonModule&&(e.getEmitModuleResolutionKind(A)!==e.ModuleResolutionKind.NodeJs?Fn(e.Diagnostics.Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy,\"resolveJsonModule\"):e.hasJsonModuleEmitEnabled(A)||Fn(e.Diagnostics.Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext,\"resolveJsonModule\",\"module\"));if(A.outDir||A.sourceRoot||A.mapRoot){var g=Ge();A.outDir&&\"\"===g&&p.some((function(n){return e.getRootLength(n.fileName)>1}))&&Fn(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,\"outDir\")}A.useDefineForClassFields&&0===u&&Fn(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,\"useDefineForClassFields\");A.checkJs&&!A.allowJs&&X.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"checkJs\",\"allowJs\"));A.emitDeclarationOnly&&(e.getEmitDeclarations(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"emitDeclarationOnly\",\"declaration\",\"composite\"),A.noEmit&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"emitDeclarationOnly\",\"noEmit\"));A.emitDecoratorMetadata&&!A.experimentalDecorators&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"emitDecoratorMetadata\",\"experimentalDecorators\");A.jsxFactory?(A.reactNamespace&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"reactNamespace\",\"jsxFactory\"),e.parseIsolatedEntityName(A.jsxFactory,u)||Gn(\"jsxFactory\",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,A.jsxFactory)):A.reactNamespace&&!e.isIdentifierText(A.reactNamespace,u)&&Gn(\"reactNamespace\",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,A.reactNamespace);if(!A.noEmit&&!A.suppressOutputPathCheck){var y=Ve(),v=e.createMap();e.forEachEmittedFile(y,(function(e){A.emitDeclarationOnly||h(e.jsFilePath,v),h(e.declarationFilePath,v)}))}function h(n,t){if(n){var r=Fe(n);if(pe.has(r)){var a=void 0;A.configFilePath||(a=e.chainDiagnosticMessages(void 0,e.Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)),a=e.chainDiagnosticMessages(a,e.Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file,n),Kn(n,e.createCompilerDiagnosticFromMessageChain(a))}var i=H.useCaseSensitiveFileNames()?r:r.toLocaleLowerCase();t.has(i)?Kn(n,e.createCompilerDiagnostic(e.Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files,n)):t.set(i,!0)}}}(),e.performance.mark(\"afterProgram\"),e.performance.measure(\"Program\",\"beforeProgram\",\"afterProgram\"),Pe;function we(n){if(e.containsPath(J,n.fileName,!1)){var t=e.getBaseFileName(n.fileName);if(\"lib.d.ts\"===t||\"lib.es6.d.ts\"===t)return 0;var r=e.removeSuffix(e.removePrefix(t,\"lib.\"),\".d.ts\"),a=e.libs.indexOf(r);if(-1!==a)return a+1}return e.libs.length+2}function Fe(n){return e.toPath(n,Y,kn)}function Ge(){if(void 0===b){var n=e.filter(p,(function(n){return e.sourceFileMayBeEmitted(n,Pe)}));A.rootDir&&In(n,A.rootDir)?b=e.getNormalizedAbsolutePath(A.rootDir,Y):A.composite&&A.configFilePath?In(n,b=e.getDirectoryPath(e.normalizeSlashes(A.configFilePath))):(t=n,b=a(e.mapDefined(t,(function(e){return e.isDeclarationFile?void 0:e.fileName})),Y,kn)),b&&b[b.length-1]!==e.directorySeparator&&(b+=e.directorySeparator)}var t;return b}function Be(n,t,r){if(0===ce&&!r.ambientModuleNames.length)return j(n,t,void 0,vn(r.originalFileName));var a,i,o,s=N&&N.getSourceFile(t);if(s!==r&&r.resolvedModules){for(var c=[],l=0,u=n;l<u.length;l++){var d=u[l],p=r.resolvedModules.get(d);c.push(p)}return c}for(var m={},f=0;f<n.length;f++){d=n[f];if(r===s&&!ee(s.path)){var _=s&&s.resolvedModules.get(d);if(_){e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Reusing_resolution_of_module_0_to_file_1_from_old_program,d,t),(i||(i=new Array(n.length)))[f]=_,(o||(o=[])).push(d);continue}}var g=!1;e.contains(r.ambientModuleNames,d)?(g=!0,e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1,d,t)):g=h(d),g?(i||(i=new Array(n.length)))[f]=m:(a||(a=[])).push(d)}var y=a&&a.length?j(a,t,o,vn(r.originalFileName)):e.emptyArray;if(!i)return e.Debug.assert(y.length===n.length),y;var v=0;for(f=0;f<i.length;f++)i[f]?i[f]===m&&(i[f]=void 0):(i[f]=y[v],v++);return e.Debug.assert(v===y.length),i;function h(n){var t=e.getResolvedModule(s,n),r=t&&N.getSourceFile(t.resolvedFileName);if(t&&r)return!1;var a=I.get(n);return!!a&&(e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,n,a),!0)}}function Ve(n){return __assign(__assign({getPrependNodes:Ue,getCanonicalFileName:kn,getCommonSourceDirectory:Pe.getCommonSourceDirectory,getCompilerOptions:Pe.getCompilerOptions,getCurrentDirectory:function(){return Y},getNewLine:function(){return H.getNewLine()},getSourceFile:Pe.getSourceFile,getSourceFileByPath:Pe.getSourceFileByPath,getSourceFiles:Pe.getSourceFiles,getLibFileFromReference:Pe.getLibFileFromReference,isSourceFileFromExternalLibrary:je,getResolvedProjectReferenceToRedirect:vn,isSourceOfProjectReferenceRedirect:En,getProbableSymlinks:Wn,writeFile:n||function(e,n,t,r,a){return H.writeFile(e,n,t,r,a)},isEmitBlocked:We,readFile:function(e){return H.readFile(e)},fileExists:function(n){var t=Fe(n);return!!qe(t)||!e.contains(re,t)&&H.fileExists(n)}},H.directoryExists?{directoryExists:function(e){return H.directoryExists(e)}}:{}),{useCaseSensitiveFileNames:function(){return H.useCaseSensitiveFileNames()},getProgramBuildInfo:function(){return Pe.getProgramBuildInfo&&Pe.getProgramBuildInfo()},getSourceFileFromReference:function(e,n){return Pe.getSourceFileFromReference(e,n)},redirectTargetsMap:de})}function Ue(){return g(k,(function(e,n){return ae[n].commandLine}),(function(e){var n=Fe(e),t=qe(n);return t?t.text:pe.has(n)?void 0:H.readFile(n)}))}function je(e){return!!B.get(e.path)}function Ke(){return E||(E=e.createTypeChecker(Pe,!0))}function He(){return T||(T=e.createTypeChecker(Pe,!1))}function We(e){return $.has(Fe(e))}function ze(e){return qe(Fe(e))}function qe(e){return pe.get(e)||void 0}function Je(n,t,r){return n?t(n,r):e.sortAndDeduplicateDiagnostics(e.flatMap(Pe.getSourceFiles(),(function(e){return r&&r.throwIfCancellationRequested(),t(e,r)})))}function Xe(n){return e.isSourceFileJS(n)?(n.additionalSyntacticDiagnostics||(n.additionalSyntacticDiagnostics=function(n){return Ye((function(){var t=[],r=n;return a(n),t;function a(n){switch(r.kind){case 155:case 158:case 160:if(r.questionToken===n)return void t.push(s(n,e.Diagnostics._0_can_only_be_used_in_a_ts_file,\"?\"));case 159:case 161:case 162:case 163:case 200:case 243:case 201:case 241:if(r.type===n)return void t.push(s(n,e.Diagnostics.types_can_only_be_used_in_a_ts_file))}switch(n.kind){case 252:return void t.push(s(n,e.Diagnostics.import_can_only_be_used_in_a_ts_file));case 258:if(n.isExportEquals)return void t.push(s(n,e.Diagnostics.export_can_only_be_used_in_a_ts_file));break;case 277:if(112===n.token)return void t.push(s(n,e.Diagnostics.implements_clauses_can_only_be_used_in_a_ts_file));break;case 245:return void t.push(s(n,e.Diagnostics.interface_declarations_can_only_be_used_in_a_ts_file));case 248:return void t.push(s(n,e.Diagnostics.module_declarations_can_only_be_used_in_a_ts_file));case 246:return void t.push(s(n,e.Diagnostics.type_aliases_can_only_be_used_in_a_ts_file));case 247:return void t.push(s(n,e.Diagnostics.enum_declarations_can_only_be_used_in_a_ts_file));case 217:return void t.push(s(n,e.Diagnostics.non_null_assertions_can_only_be_used_in_a_ts_file));case 216:return void t.push(s(n.type,e.Diagnostics.type_assertion_expressions_can_only_be_used_in_a_ts_file));case 198:e.Debug.fail()}var o=r;r=n,e.forEachChild(n,a,i),r=o}function i(n){switch(r.decorators!==n||A.experimentalDecorators||t.push(s(r,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning)),r.kind){case 244:case 213:case 160:case 161:case 162:case 163:case 200:case 243:case 201:if(n===r.typeParameters)return void t.push(o(n,e.Diagnostics.type_parameter_declarations_can_only_be_used_in_a_ts_file));case 224:if(n===r.modifiers)return function(n,r){for(var a=0,i=n;a<i.length;a++){var o=i[a];switch(o.kind){case 80:if(r)continue;case 118:case 116:case 117:case 137:case 129:case 121:t.push(s(o,e.Diagnostics._0_can_only_be_used_in_a_ts_file,e.tokenToString(o.kind)))}}}(r.modifiers,224===r.kind);break;case 158:if(n===r.modifiers){for(var i=0,c=n;i<c.length;i++){var l=c[i];119!==l.kind&&t.push(s(l,e.Diagnostics._0_can_only_be_used_in_a_ts_file,e.tokenToString(l.kind)))}return}break;case 155:if(n===r.modifiers)return void t.push(o(n,e.Diagnostics.parameter_modifiers_can_only_be_used_in_a_ts_file));break;case 195:case 196:case 215:case 265:case 266:case 197:if(n===r.typeArguments)return void t.push(o(n,e.Diagnostics.type_arguments_can_only_be_used_in_a_ts_file))}for(var u=0,d=n;u<d.length;u++){a(d[u])}}function o(t,r,a,i,o){var s=t.pos;return e.createFileDiagnostic(n,s,t.end-s,r,a,i,o)}function s(t,r,a,i,o){return e.createDiagnosticForNodeInSourceFile(n,t,r,a,i,o)}}))}(n)),e.concatenate(n.additionalSyntacticDiagnostics,n.parseDiagnostics)):n.parseDiagnostics}function Ye(n){try{return n()}catch(n){throw n instanceof e.OperationCanceledException&&(T=void 0,E=void 0),n}}function Qe(e,n){return tn(e,n,M,Ze)}function Ze(n,t){return Ye((function(){if(e.skipTypeChecking(n,A,Pe))return e.emptyArray;var r=Ke();e.Debug.assert(!!n.bindDiagnostics);for(var a,i=e.isCheckJsEnabledForFile(n,A),o=!(!!n.checkJsDirective&&!1===n.checkJsDirective.enabled)&&(3===n.scriptKind||4===n.scriptKind||5===n.scriptKind||i||7===n.scriptKind),s=0,c=[o?n.bindDiagnostics:e.emptyArray,o?r.getDiagnostics(n,t):e.emptyArray,P.getDiagnostics(n.fileName),X.getDiagnostics(n.fileName),i?n.jsDocDiagnostics:void 0];s<c.length;s++){var l=c[s];if(l)for(var u=0,d=l;u<d.length;u++){var p=d[u];$e(p)&&(a=e.append(a,p))}}return a}))}function $e(n){var r=n.file,a=n.start;if(r)for(var i=e.getLineStarts(r),o=e.computeLineAndCharacterOfPosition(i,a).line;o>0;){var s=r.text.slice(i[o-1],i[o]),c=t.exec(s);if(!c)return!0;if(c[3])return!1;o--}return!0}function en(e,n){return tn(e,n,O,nn)}function nn(n,t){return Ye((function(){var r=Ke().getEmitResolver(n,t);return e.getDeclarationDiagnostics(Ve(e.noop),r,n)}))}function tn(n,t,r,a){var i=n?r.perFile&&r.perFile.get(n.path):r.allDiagnostics;if(i)return i;var o=a(n,t)||e.emptyArray;return n?(r.perFile||(r.perFile=e.createMap()),r.perFile.set(n.path,o)):r.allDiagnostics=o,o}function rn(e,n){return e.isDeclarationFile?[]:en(e,n)}function an(n,t,r){un(e.normalizePath(n),t,r,void 0)}function on(e,n){return e.fileName===n.fileName}function sn(e,n){return 75===e.kind?75===n.kind&&e.escapedText===n.escapedText:10===n.kind&&e.text===n.text}function cn(n){if(!n.imports){var t,r,a,i=e.isSourceFileJS(n),o=e.isExternalModule(n);if(A.importHelpers&&(A.isolatedModules||o)&&!n.isDeclarationFile){var s=e.createLiteral(e.externalHelpersModuleNameText),c=e.createImportDeclaration(void 0,void 0,void 0,s);e.addEmitFlags(c,67108864),s.parent=c,c.parent=n,t=[s]}for(var l=0,u=n.statements;l<u.length;l++){d(u[l],!1)}return(1048576&n.flags||i)&&function(n){var r=/import|require/g;for(;null!==r.exec(n.text);){var a=p(n,r.lastIndex);e.isRequireCall(a,!0)?t=e.append(t,a.arguments[0]):e.isImportCall(a)&&1===a.arguments.length&&e.isStringLiteralLike(a.arguments[0])?t=e.append(t,a.arguments[0]):e.isLiteralImportTypeNode(a)&&(t=e.append(t,a.argument.literal))}}(n),n.imports=t||e.emptyArray,n.moduleAugmentations=r||e.emptyArray,void(n.ambientModuleNames=a||e.emptyArray)}function d(i,s){if(e.isAnyImportOrReExport(i)){var c=e.getExternalModuleName(i);!(c&&e.isStringLiteral(c)&&c.text)||s&&e.isExternalModuleNameRelative(c.text)||(t=e.append(t,c))}else if(e.isModuleDeclaration(i)&&e.isAmbientModule(i)&&(s||e.hasModifier(i,2)||n.isDeclarationFile)){var l=e.getTextOfIdentifierOrLiteral(i.name);if(o||s&&!e.isExternalModuleNameRelative(l))(r||(r=[])).push(i.name);else if(!s){n.isDeclarationFile&&(a||(a=[])).push(l);var u=i.body;if(u)for(var p=0,m=u.statements;p<m.length;p++){d(m[p],!0)}}}}function p(n,t){for(var r=n,a=function(e){if(e.pos<=t&&(t<e.end||t===e.end&&1===e.kind))return e};;){var o=i&&e.hasJSDocNodes(r)&&e.forEach(r.jsDoc,a)||e.forEachChild(r,a);if(!o)return r;r=o}}}function ln(n,t,r,a){if(e.hasExtension(n)){if(!A.allowNonTsExtensions&&!e.forEach(Z,(function(t){return e.fileExtensionIs(H.getCanonicalFileName(n),t)})))return void(r&&r(e.Diagnostics.File_0_has_unsupported_extension_The_only_supported_extensions_are_1,n,\"'\"+Q.join(\"', '\")+\"'\"));var i=t(n);if(r)if(i)a&&H.getCanonicalFileName(n)===H.getCanonicalFileName(a.fileName)&&r(e.Diagnostics.A_file_cannot_have_a_reference_to_itself);else{var o=_n(n);o?r(e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,o,n):r(e.Diagnostics.File_0_not_found,n)}return i}var s=A.allowNonTsExtensions&&t(n);if(s)return s;if(!r||!A.allowNonTsExtensions){var c=e.forEach(Q,(function(e){return t(n+e)}));return r&&!c&&r(e.Diagnostics.File_0_not_found,n+\".ts\"),c}r(e.Diagnostics.File_0_not_found,n)}function un(e,n,t,r,a){ln(e,(function(e){return pn(e,Fe(e),n,t,a,r)}),(function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return P.add(Dn.apply(void 0,__spreadArrays([a,e],n)))}),a&&a.file)}function dn(n,t,r){P.add(Dn(r,e.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing,n,t))}function pn(n,t,r,a,i,o){if(fe){var s=bn(n);if(!s&&H.realpath&&A.preserveSymlinks&&e.isDeclarationFileName(n)&&e.stringContains(n,e.nodeModulesPathPart)){var c=H.realpath(n);c!==n&&(s=bn(c))}if(s){var l=e.isString(s)?pn(s,Fe(s),r,a,i,o):void 0;return l&&fn(l,t,void 0),l}}var p,m=n;if(pe.has(t)){var f=pe.get(t);if(f&&A.forceConsistentCasingInFileNames){var _=n,g=f.fileName;Fe(g)!==Fe(_)&&(_=_n(n)||n),e.getNormalizedAbsolutePathWithoutRoot(g,Y)!==e.getNormalizedAbsolutePathWithoutRoot(_,Y)&&dn(_,g,i)}return f&&B.get(f.path)&&0===F?(B.set(f.path,!1),A.noResolve||(xn(f,r),Ln(f)),A.noLib||An(f),G.set(f.path,!1),Nn(f)):f&&G.get(f.path)&&F<w&&(G.set(f.path,!1),Nn(f)),mn(f||void 0,i),f||void 0}if(i&&!fe){var y=gn(n);if(y){if(y.commandLine.options.outFile||y.commandLine.options.out)return;var v=yn(y,n);n=v,p=Fe(v)}}var h=H.getSourceFile(n,A.target,(function(t){return P.add(Dn(i,e.Diagnostics.Cannot_read_file_0_Colon_1,n,t))}),_e);if(o){var b=e.packageIdToString(o),E=le.get(b);if(E){var T=function(e,n,t,r,a,i){var o=Object.create(e);return o.fileName=t,o.path=r,o.resolvedPath=a,o.originalFileName=i,o.redirectInfo={redirectTarget:e,unredirected:n},B.set(r,F>0),Object.defineProperties(o,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(e){this.redirectInfo.redirectTarget.id=e}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(e){this.redirectInfo.redirectTarget.symbol=e}}}),o}(E,h,n,t,Fe(n),m);return de.add(E.path,n),fn(T,t,p),ue.set(t,o.name),d.push(T),T}h&&(le.set(b,h),ue.set(t,o.name))}if(fn(h,t,p),h){if(B.set(t,F>0),h.path=t,h.resolvedPath=Fe(n),h.originalFileName=m,H.useCaseSensitiveFileNames()){var S=t.toLowerCase(),x=me.get(S);x?dn(n,x.fileName,i):me.set(S,h)}z=z||h.hasNoDefaultLib&&!a,A.noResolve||(xn(h,r),Ln(h)),A.noLib||An(h),Nn(h),r?u.push(h):d.push(h)}return mn(h,i),h}function mn(n,t){t&&n&&(x||(x=e.createMultiMap())).add(n.path,{kind:t.kind,index:t.index,file:t.file.path})}function fn(e,n,t){t?(pe.set(t,e),pe.set(n,e||!1)):pe.set(n,e)}function _n(e){var n=gn(e);return n&&yn(n,e)}function gn(n){if(ae&&ae.length&&!e.fileExtensionIs(n,\".d.ts\")&&!e.fileExtensionIs(n,\".json\"))return vn(n)}function yn(n,t){var r=n.commandLine.options.outFile||n.commandLine.options.out;return r?e.changeExtension(r,\".d.ts\"):e.getOutputDeclarationFileName(t,n.commandLine,!H.useCaseSensitiveFileNames())}function vn(n){void 0===oe&&(oe=e.createMap(),hn((function(e,n){e&&Fe(A.configFilePath)!==n&&e.commandLine.fileNames.forEach((function(e){return oe.set(Fe(e),n)}))})));var t=oe.get(Fe(n));return t&&Sn(t)}function hn(e){return Tn(k,ae,(function(n,t,r){var a=Fe(y((r?r.commandLine.projectReferences:k)[t]));return e(n,a)}))}function bn(n){if(e.isDeclarationFileName(n))return void 0===se&&(se=e.createMap(),hn((function(n){if(n){var t=n.commandLine.options.outFile||n.commandLine.options.out;if(t){var r=e.changeExtension(t,\".d.ts\");se.set(Fe(r),!0)}else e.forEach(n.commandLine.fileNames,(function(t){if(!e.fileExtensionIs(t,\".d.ts\")&&!e.fileExtensionIs(t,\".json\")){var r=e.getOutputDeclarationFileName(t,n.commandLine,H.useCaseSensitiveFileNames());se.set(Fe(r),t)}}))}}))),se.get(Fe(n))}function En(e){return fe&&!!vn(e)}function Tn(n,t,r,a){var i;return function n(t,r,a,o,s){if(s){var c=s(t,a);if(c)return c}return e.forEach(r,(function(t,r){if(!e.contains(i,t)){var c=o(t,r,a);if(c)return c;if(t)return(i||(i=[])).push(t),n(t.commandLine.projectReferences,t.references,t,o,s)}}))}(n,t,void 0,r,a)}function Sn(e){if(ie)return ie.get(e)||void 0}function xn(n,t){e.forEach(n.referencedFiles,(function(a,i){un(r(a.fileName,n.originalFileName),t,!1,void 0,{kind:e.RefFileKind.ReferenceFile,index:i,file:n,pos:a.pos,end:a.end})}))}function Ln(n){var t=e.map(n.typeReferenceDirectives,(function(e){return e.fileName.toLocaleLowerCase()}));if(t)for(var r=K(t,n.originalFileName,vn(n.originalFileName)),a=0;a<t.length;a++){var i=n.typeReferenceDirectives[a],o=r[a],s=i.fileName.toLocaleLowerCase();e.setResolvedTypeReferenceDirective(n,s,o),Cn(s,o,{kind:e.RefFileKind.TypeReferenceDirective,index:a,file:n,pos:i.pos,end:i.end})}}function Cn(n,t,r){var a=R.get(n);if(!a||!a.primary){var i=!0;if(t){if(t.isExternalLibraryImport&&F++,t.primary)un(t.resolvedFileName,!1,!1,t.packageId,r);else if(a){if(t.resolvedFileName!==a.resolvedFileName)H.readFile(t.resolvedFileName)!==ze(a.resolvedFileName).text&&P.add(Dn(r,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,n,t.resolvedFileName,a.resolvedFileName));i=!1}else un(t.resolvedFileName,!1,!1,t.packageId,r);t.isExternalLibraryImport&&F--}else P.add(Dn(r,e.Diagnostics.Cannot_find_type_definition_file_for_0,n));i&&R.set(n,t)}}function An(n){e.forEach(n.libReferenceDirectives,(function(t){var r=t.fileName.toLocaleLowerCase(),a=e.libMap.get(r);if(a)an(e.combinePaths(J,a),!0,!0);else{var i=e.removeSuffix(e.removePrefix(r,\"lib.\"),\".d.ts\"),o=e.getSpellingSuggestion(i,e.libs,e.identity),s=o?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;P.add(e.createFileDiagnostic(n,t.pos,t.end-t.pos,s,r,o))}}))}function Dn(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];return n?e.createFileDiagnostic.apply(void 0,__spreadArrays([n.file,n.pos,n.end-n.pos,t],r)):e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r))}function kn(e){return H.getCanonicalFileName(e)}function Nn(n){if(cn(n),n.imports.length||n.moduleAugmentations.length){var t=h(n),r=Be(t,e.getNormalizedAbsolutePath(n.originalFileName,Y),n);e.Debug.assert(r.length===t.length);for(var a=0;a<t.length;a++){var i=r[a];if(e.setResolvedModule(n,t[a],i),i){var o=i.isExternalLibraryImport,s=!e.resolutionExtensionIsTSOrJson(i.extension),c=o&&s,l=i.resolvedFileName;o&&F++;var u=c&&F>w,d=l&&!v(A,i)&&!A.noResolve&&a<n.imports.length&&!u&&!(s&&!A.allowJs)&&(e.isInJSFile(n.imports[a])||!(4194304&n.imports[a].flags));if(u)G.set(n.path,!0);else if(d){var p=Fe(l),m=e.skipTrivia(n.text,n.imports[a].pos);pn(l,p,!1,!1,{kind:e.RefFileKind.Import,index:a,file:n,pos:m,end:n.imports[a].end},i.packageId)}o&&F--}}}else n.resolvedModules=void 0}function In(n,t){for(var r,a=!0,i=H.getCanonicalFileName(e.getNormalizedAbsolutePath(t,Y)),o=0,s=n;o<s.length;o++){var c=s[o];if(!c.isDeclarationFile)0!==H.getCanonicalFileName(e.getNormalizedAbsolutePath(c.fileName,Y)).indexOf(i)&&(r||(r=e.arrayToSet(C,Fe)),On(c,r,e.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files,c.fileName,t),a=!1)}return a}function Mn(n){ie||(ie=e.createMap());var t,r,a=y(n),i=Fe(a),o=ie.get(i);if(void 0!==o)return o||void 0;if(H.getParsedCommandLine){if(!(t=H.getParsedCommandLine(a)))return fn(void 0,i,void 0),void ie.set(i,!1);r=e.Debug.assertDefined(t.options.configFile),e.Debug.assert(!r.path||r.path===i),fn(r,i,void 0)}else{var s=e.getNormalizedAbsolutePath(e.getDirectoryPath(a),H.getCurrentDirectory());if(fn(r=H.getSourceFile(a,100),i,void 0),void 0===r)return void ie.set(i,!1);t=e.parseJsonSourceFileConfigFileContent(r,W,s,void 0,a)}r.path=i,r.resolvedPath=i,r.originalFileName=a;var c={commandLine:t,sourceFile:r};return ie.set(i,c),t.projectReferences&&(c.references=t.projectReferences.map(Mn)),c}function On(n,t,r){for(var a,i,o=[],s=3;s<arguments.length;s++)o[s-3]=arguments[s];var c=x&&x.get(n.path),l=e.forEach(c,(function(e){return t.has(e.file)?e:void 0}))||e.elementAt(c,0);if(l){var u=e.Debug.assertDefined(qe(l.file)),d=l.kind,p=l.index,m=void 0,f=void 0;switch(d){case e.RefFileKind.Import:m=e.skipTrivia(u.text,u.imports[p].pos),f=u.imports[p].end;break;case e.RefFileKind.ReferenceFile:m=(a=u.referencedFiles[p]).pos,f=a.end;break;case e.RefFileKind.TypeReferenceDirective:m=(i=u.typeReferenceDirectives[p]).pos,f=i.end;break;default:return e.Debug.assertNever(d)}X.add(e.createFileDiagnostic.apply(void 0,__spreadArrays([u,m,f-m,r],o)))}else X.add(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([r],o)))}function Rn(n,t,r,a,i,o){for(var s=!0,c=0,l=wn();c<l.length;c++){var u=l[c];if(e.isObjectLiteralExpression(u.initializer))for(var d=0,p=e.getPropertyAssignment(u.initializer,n);d<p.length;d++){var m=p[d].initializer;e.isArrayLiteralExpression(m)&&m.elements.length>t&&(X.add(e.createDiagnosticForNodeInSourceFile(A.configFile,m.elements[t],r,a,i,o)),s=!1)}}s&&X.add(e.createCompilerDiagnostic(r,a,i,o))}function Pn(n,t,r,a){for(var i=!0,o=0,s=wn();o<s.length;o++){var c=s[o];e.isObjectLiteralExpression(c.initializer)&&jn(c.initializer,n,t,void 0,r,a)&&(i=!1)}i&&X.add(e.createCompilerDiagnostic(r,a))}function wn(){return function(n){var t=Un();if(t)return e.getPropertyAssignment(t,n)}(\"paths\")||e.emptyArray}function Fn(e,n,t,r){Vn(!0,n,t,e,n,t,r)}function Gn(e,n,t){Vn(!1,e,void 0,n,t)}function Bn(n,t,r,a,i){var o=e.firstDefined(e.getTsConfigPropArray(n||A.configFile,\"references\"),(function(n){return e.isArrayLiteralExpression(n.initializer)?n.initializer:void 0}));o&&o.elements.length>t?X.add(e.createDiagnosticForNodeInSourceFile(n||A.configFile,o.elements[t],r,a,i)):X.add(e.createCompilerDiagnostic(r,a,i))}function Vn(n,t,r,a,i,o,s){var c=Un();(!c||!jn(c,n,t,r,a,i,o,s))&&X.add(e.createCompilerDiagnostic(a,i,o,s))}function Un(){if(void 0===V){V=null;var n=e.getTsConfigObjectLiteralExpression(A.configFile);if(n)for(var t=0,r=e.getPropertyAssignment(n,\"compilerOptions\");t<r.length;t++){var a=r[t];if(e.isObjectLiteralExpression(a.initializer)){V=a.initializer;break}}}return V}function jn(n,t,r,a,i,o,s,c){for(var l=e.getPropertyAssignment(n,r,a),u=0,d=l;u<d.length;u++){var p=d[u];X.add(e.createDiagnosticForNodeInSourceFile(A.configFile,t?p.name:p.initializer,i,o,s,c))}return!!l.length}function Kn(e,n){$.set(Fe(e),!0),X.add(n)}function Hn(n,t){return 0===e.comparePaths(n,t,Y,!H.useCaseSensitiveFileNames())}function Wn(){return H.getSymlinks?H.getSymlinks():m||(m=e.discoverProbableSymlinks(p,kn,H.getCurrentDirectory()))}},e.parseConfigHostFromCompilerHostLike=_,e.createPrependNodes=g,e.resolveProjectReferencePath=y,e.getResolutionDiagnostic=v}(ts||(ts={})),function(e){e.getFileEmitOutput=function(e,n,t,r,a,i){var o=[],s=e.emit(n,(function(e,n,t){o.push({name:e,writeByteOrderMark:t,text:n})}),r,t,a,i);return{outputFiles:o,emitSkipped:s.emitSkipped,exportedModulesFromDeclarationEmit:s.exportedModulesFromDeclarationEmit}},e.cloneMapOrUndefined=function(n){return n?e.cloneMap(n):void 0}}(ts||(ts={})),function(e){!function(n){function t(n){if(n.declarations&&n.declarations[0]){var t=e.getSourceFileOfNode(n.declarations[0]);return t&&t.resolvedPath}}function r(e,n){var r=e.getSymbolAtLocation(n);return r&&t(r)}function a(n,t,r,a){return e.toPath(n.getProjectReferenceRedirect(t)||t,r,a)}function i(n,t,i){var o;if(t.imports&&t.imports.length>0)for(var s=n.getTypeChecker(),c=0,l=t.imports;c<l.length;c++){var u=r(s,l[c]);u&&S(u)}var d=e.getDirectoryPath(t.path);if(t.referencedFiles&&t.referencedFiles.length>0)for(var p=0,m=t.referencedFiles;p<m.length;p++){var f=m[p];S(a(n,f.fileName,d,i))}if(t.resolvedTypeReferenceDirectiveNames&&t.resolvedTypeReferenceDirectiveNames.forEach((function(e){if(e){var t=e.resolvedFileName;S(a(n,t,d,i))}})),t.moduleAugmentations.length){s=n.getTypeChecker();for(var _=0,g=t.moduleAugmentations;_<g.length;_++){var y=g[_];if(e.isStringLiteral(y)){var v=s.getSymbolAtLocation(y);v&&T(v)}}}for(var h=0,b=n.getTypeChecker().getAmbientModules();h<b.length;h++){var E=b[h];E.declarations.length>1&&T(E)}return o;function T(n){for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r],o=e.getSourceFileOfNode(i);o&&o!==t&&S(o.resolvedPath)}}function S(n){o||(o=e.createMap()),o.set(n,!0)}}function o(e,n){return n&&!n.referencedMap==!e}function s(e,n){n.forEach((function(n,t){e.fileInfos.get(t).signature=n,e.hasCalledUpdateShapeSignature.set(t,!0)}))}function c(n,r,a,i,o,s,c){if(e.Debug.assert(!!a),e.Debug.assert(!c||!!n.exportedModulesMap,\"Compute visible to outside map only if visibleToOutsideReferencedMap present in the state\"),n.hasCalledUpdateShapeSignature.has(a.path)||i.has(a.path))return!1;var l=n.fileInfos.get(a.path);if(!l)return e.Debug.fail();var u,d=l.signature;if(a.isDeclarationFile){if(u=a.version,c&&u!==d){var p=n.referencedMap?n.referencedMap.get(a.path):void 0;c.set(a.path,p||!1)}}else{var m=e.getFileEmitOutput(r,a,!0,o,void 0,!0),f=m.outputFiles&&r.getCompilerOptions().declarationMap?m.outputFiles.length>1?m.outputFiles[1]:void 0:m.outputFiles.length>0?m.outputFiles[0]:void 0;f?(e.Debug.assert(e.fileExtensionIs(f.name,\".d.ts\"),\"File extension for signature expected to be dts\",(function(){return\"Found: \"+e.getAnyExtensionFromPath(f.name)+\" for \"+f.name+\":: All output files: \"+JSON.stringify(m.outputFiles.map((function(e){return e.name})))})),u=s(f.text),c&&u!==d&&function(n,r,a){if(!r)return void a.set(n.path,!1);var i;r.forEach((function(n){var r;(r=t(n))&&(i||(i=e.createMap()),i.set(r,!0))})),a.set(n.path,i||!1)}(a,m.exportedModulesFromDeclarationEmit,c)):u=d}return i.set(a.path,u),!d||u!==d}function l(n,t){if(!n.allFileNames){var r=t.getSourceFiles();n.allFileNames=r===e.emptyArray?e.emptyArray:r.map((function(e){return e.fileName}))}return n.allFileNames}function u(n,t){return e.arrayFrom(e.mapDefinedIterator(n.referencedMap.entries(),(function(e){var n=e[0];return e[1].has(t)?n:void 0})))}function d(n){return function(n){return e.some(n.moduleAugmentations,(function(n){return e.isGlobalScopeAugmentation(n.parent)}))}(n)||!e.isExternalModule(n)&&!function(n){for(var t=0,r=n.statements;t<r.length;t++){var a=r[t];if(!e.isModuleWithStringLiteralName(a))return!1}return!0}(n)}function p(n,t,r){if(n.allFilesExcludingDefaultLibraryFile)return n.allFilesExcludingDefaultLibraryFile;var a;c(r);for(var i=0,o=t.getSourceFiles();i<o.length;i++){var s=o[i];s!==r&&c(s)}return n.allFilesExcludingDefaultLibraryFile=a||e.emptyArray,n.allFilesExcludingDefaultLibraryFile;function c(e){t.isSourceFileDefaultLibrary(e)||(a||(a=[])).push(e)}}function m(e,n,t){var r=n.getCompilerOptions();return r&&(r.out||r.outFile)?[t]:p(e,n,t)}function f(n,t,r,a,i,o,s){if(d(r))return p(n,t,r);var l=t.getCompilerOptions();if(l&&(l.isolatedModules||l.out||l.outFile))return[r];var m=e.createMap();m.set(r.path,r);for(var f=u(n,r.resolvedPath);f.length>0;){var _=f.pop();if(!m.has(_)){var g=t.getSourceFileByPath(_);m.set(_,g),g&&c(n,t,g,a,i,o,s)&&f.push.apply(f,u(n,g.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(m.values(),(function(e){return e})))}n.canReuseOldState=o,n.create=function(n,t,r){for(var a=e.createMap(),s=n.getCompilerOptions().module!==e.ModuleKind.None?e.createMap():void 0,c=s?e.createMap():void 0,l=e.createMap(),u=o(s,r),d=0,p=n.getSourceFiles();d<p.length;d++){var m=p[d],f=e.Debug.assertDefined(m.version,\"Program intended to be used with Builder should have source files with versions set\"),_=u?r.fileInfos.get(m.path):void 0;if(s){var g=i(n,m,t);if(g&&s.set(m.path,g),u){var y=r.exportedModulesMap.get(m.path);y&&c.set(m.path,y)}}a.set(m.path,{version:f,signature:_&&_.signature})}return{fileInfos:a,referencedMap:s,exportedModulesMap:c,hasCalledUpdateShapeSignature:l}},n.releaseCache=function(e){e.allFilesExcludingDefaultLibraryFile=void 0,e.allFileNames=void 0},n.clone=function(n){var t=e.createMap();return n.fileInfos.forEach((function(e,n){t.set(n,__assign({},e))})),{fileInfos:t,referencedMap:e.cloneMapOrUndefined(n.referencedMap),exportedModulesMap:e.cloneMapOrUndefined(n.exportedModulesMap),hasCalledUpdateShapeSignature:e.cloneMap(n.hasCalledUpdateShapeSignature)}},n.getFilesAffectedBy=function(n,t,r,a,i,o,l){var u=o||e.createMap(),d=t.getSourceFileByPath(r);if(!d)return e.emptyArray;if(!c(n,t,d,u,a,i,l))return[d];var p=(n.referencedMap?f:m)(n,t,d,u,a,i,l);return o||s(n,u),p},n.updateSignaturesFromCache=s,n.updateShapeSignature=c,n.updateExportedFilesMapFromCache=function(n,t){t&&(e.Debug.assert(!!n.exportedModulesMap),t.forEach((function(e,t){e?n.exportedModulesMap.set(t,e):n.exportedModulesMap.delete(t)})))},n.getAllDependencies=function(n,t,r){var a=t.getCompilerOptions();if(a.outFile||a.out)return l(n,t);if(!n.referencedMap||d(r))return l(n,t);for(var i=e.createMap(),o=[r.path];o.length;){var s=o.pop();if(!i.has(s)){i.set(s,!0);var c=n.referencedMap.get(s);if(c)for(var u=c.keys(),p=u.next();!p.done;p=u.next())o.push(p.value)}}return e.arrayFrom(e.mapDefinedIterator(i.keys(),(function(e){var n=t.getSourceFileByPath(e);return n?n.fileName:e})))},n.getReferencedByPaths=u}(e.BuilderState||(e.BuilderState={}))}(ts||(ts={})),function(e){var n;function t(n,t,a){var i=e.BuilderState.create(n,t,a);i.program=n;var o=n.getCompilerOptions();i.compilerOptions=o,o.outFile||o.out||(i.semanticDiagnosticsPerFile=e.createMap()),i.changedFilesSet=e.createMap();var s=e.BuilderState.canReuseOldState(i.referencedMap,a),c=s?a.compilerOptions:void 0,l=s&&a.semanticDiagnosticsPerFile&&!!i.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(o,c);if(s){if(!a.currentChangedFilePath){var u=a.currentAffectedFilesSignatures;e.Debug.assert(!(a.affectedFiles||u&&u.size),\"Cannot reuse if only few affected files of currentChangedFile were iterated\")}var d=a.changedFilesSet;l&&e.Debug.assert(!d||!e.forEachKey(d,(function(e){return a.semanticDiagnosticsPerFile.has(e)})),\"Semantic diagnostics shouldnt be available for changed files\"),d&&e.copyEntries(d,i.changedFilesSet),o.outFile||o.out||!a.affectedFilesPendingEmit||(i.affectedFilesPendingEmit=a.affectedFilesPendingEmit.slice(),i.affectedFilesPendingEmitKind=e.cloneMapOrUndefined(a.affectedFilesPendingEmitKind),i.affectedFilesPendingEmitIndex=a.affectedFilesPendingEmitIndex)}var p=i.referencedMap,m=s?a.referencedMap:void 0,f=l&&!o.skipLibCheck==!c.skipLibCheck,_=f&&!o.skipDefaultLibCheck==!c.skipDefaultLibCheck;return i.fileInfos.forEach((function(o,c){var u,d,g,y;if(!s||!(u=a.fileInfos.get(c))||u.version!==o.version||(g=d=p&&p.get(c),y=m&&m.get(c),g!==y&&(void 0===g||void 0===y||g.size!==y.size||e.forEachKey(g,(function(e){return!y.has(e)}))))||d&&e.forEachKey(d,(function(e){return!i.fileInfos.has(e)&&a.fileInfos.has(e)})))i.changedFilesSet.set(c,!0);else if(l){var v=n.getSourceFileByPath(c);if(v.isDeclarationFile&&!f)return;if(v.hasNoDefaultLib&&!_)return;var h=a.semanticDiagnosticsPerFile.get(c);h&&(i.semanticDiagnosticsPerFile.set(c,a.hasReusableDiagnostic?function(n,t,a){if(!n.length)return e.emptyArray;var i=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(t.getCompilerOptions()),t.getCurrentDirectory()));return n.map((function(n){var a=r(n,t,o);a.reportsUnnecessary=n.reportsUnnecessary,a.source=n.source;var i=n.relatedInformation;return a.relatedInformation=i?i.length?i.map((function(e){return r(e,t,o)})):e.emptyArray:void 0,a}));function o(n){return e.toPath(n,i,a)}}(h,n,t):h),i.semanticDiagnosticsFromOldState||(i.semanticDiagnosticsFromOldState=e.createMap()),i.semanticDiagnosticsFromOldState.set(c,!0))}})),c&&e.compilerOptionsAffectEmit(o,c)&&(n.getSourceFiles().forEach((function(e){return v(i,e.path,1)})),e.Debug.assert(void 0===i.seenAffectedFiles),i.seenAffectedFiles=e.createMap()),i.emittedBuildInfo=!i.changedFilesSet.size&&!i.affectedFilesPendingEmit,i}function r(e,n,t){var r=e.file;return __assign(__assign({},e),{file:r?n.getSourceFileByPath(t(r)):void 0})}function a(n,t){e.Debug.assert(!t||!n.affectedFiles||n.affectedFiles[n.affectedFilesIndex-1]!==t||!n.semanticDiagnosticsPerFile.has(t.path))}function i(n,t,r){for(;;){var a=n.affectedFiles;if(a){for(var i=n.seenAffectedFiles,s=n.affectedFilesIndex;s<a.length;){var c=a[s];if(!i.has(c.path))return n.affectedFilesIndex=s,o(n,c,t,r),c;s++}n.changedFilesSet.delete(n.currentChangedFilePath),n.currentChangedFilePath=void 0,e.BuilderState.updateSignaturesFromCache(n,n.currentAffectedFilesSignatures),n.currentAffectedFilesSignatures.clear(),e.BuilderState.updateExportedFilesMapFromCache(n,n.currentAffectedFilesExportedModulesMap),n.affectedFiles=void 0}var l=n.changedFilesSet.keys().next();if(l.done)return;var u=e.Debug.assertDefined(n.program),d=u.getCompilerOptions();if(d.outFile||d.out)return e.Debug.assert(!n.semanticDiagnosticsPerFile),u;n.currentAffectedFilesSignatures=n.currentAffectedFilesSignatures||e.createMap(),n.exportedModulesMap&&(n.currentAffectedFilesExportedModulesMap=n.currentAffectedFilesExportedModulesMap||e.createMap()),n.affectedFiles=e.BuilderState.getFilesAffectedBy(n,u,l.value,t,r,n.currentAffectedFilesSignatures,n.currentAffectedFilesExportedModulesMap),n.currentChangedFilePath=l.value,n.affectedFilesIndex=0,n.seenAffectedFiles=n.seenAffectedFiles||e.createMap()}}function o(n,t,r,a){if(s(n,t.path),n.allFilesExcludingDefaultLibraryFile!==n.affectedFiles)!function(n,t,r){if(!n.exportedModulesMap||!n.changedFilesSet.has(t.path))return;if(!c(n,t.path))return;if(n.compilerOptions.isolatedModules){var a=e.createMap();a.set(t.path,!0);for(var i=e.BuilderState.getReferencedByPaths(n,t.resolvedPath);i.length>0;){var o=i.pop();if(!a.has(o))if(a.set(o,!0),r(n,o)&&c(n,o)){var s=e.Debug.assertDefined(n.program).getSourceFileByPath(o);i.push.apply(i,e.BuilderState.getReferencedByPaths(n,s.resolvedPath))}}}e.Debug.assert(!!n.currentAffectedFilesExportedModulesMap);var u=e.createMap();if(e.forEachEntry(n.currentAffectedFilesExportedModulesMap,(function(e,a){return e&&e.has(t.path)&&l(n,a,u,r)})))return;e.forEachEntry(n.exportedModulesMap,(function(e,a){return!n.currentAffectedFilesExportedModulesMap.has(a)&&e.has(t.path)&&l(n,a,u,r)}))}(n,t,(function(n,t){return function(n,t,r,a){if(s(n,t),!n.changedFilesSet.has(t)){var i=e.Debug.assertDefined(n.program),o=i.getSourceFileByPath(t);o&&(e.BuilderState.updateShapeSignature(n,i,o,e.Debug.assertDefined(n.currentAffectedFilesSignatures),r,a,n.currentAffectedFilesExportedModulesMap),e.getEmitDeclarations(n.compilerOptions)&&v(n,t,0))}return!1}(n,t,r,a)}));else if(!n.cleanedDiagnosticsOfLibFiles){n.cleanedDiagnosticsOfLibFiles=!0;var i=e.Debug.assertDefined(n.program),o=i.getCompilerOptions();e.forEach(i.getSourceFiles(),(function(t){return i.isSourceFileDefaultLibrary(t)&&!e.skipTypeChecking(t,o,i)&&s(n,t.path)}))}}function s(e,n){return!e.semanticDiagnosticsFromOldState||(e.semanticDiagnosticsFromOldState.delete(n),e.semanticDiagnosticsPerFile.delete(n),!e.semanticDiagnosticsFromOldState.size)}function c(n,t){return e.Debug.assertDefined(n.currentAffectedFilesSignatures).get(t)!==e.Debug.assertDefined(n.fileInfos.get(t)).signature}function l(n,t,r,a){return e.forEachEntry(n.referencedMap,(function(i,o){return i.has(t)&&function n(t,r,a,i){if(!e.addToSeen(a,r))return!1;if(i(t,r))return!0;if(e.Debug.assert(!!t.currentAffectedFilesExportedModulesMap),e.forEachEntry(t.currentAffectedFilesExportedModulesMap,(function(e,o){return e&&e.has(r)&&n(t,o,a,i)})))return!0;if(e.forEachEntry(t.exportedModulesMap,(function(e,o){return!t.currentAffectedFilesExportedModulesMap.has(o)&&e.has(r)&&n(t,o,a,i)})))return!0;return!!e.forEachEntry(t.referencedMap,(function(e,n){return e.has(r)&&!a.has(n)&&i(t,n)}))}(n,o,r,a)}))}function u(n,t,r,a,i){i?n.emittedBuildInfo=!0:t===n.program?(n.changedFilesSet.clear(),n.programEmitComplete=!0):(n.seenAffectedFiles.set(t.path,!0),void 0!==r&&(n.seenEmittedFiles||(n.seenEmittedFiles=e.createMap())).set(t.path,r),a?n.affectedFilesPendingEmitIndex++:n.affectedFilesIndex++)}function d(e,n,t){return u(e,t),{result:n,affected:t}}function p(e,n,t,r,a,i){return u(e,t,r,a,i),{result:n,affected:t}}function m(n,t,r){var a=t.path;if(n.semanticDiagnosticsPerFile){var i=n.semanticDiagnosticsPerFile.get(a);if(i)return i}var o=e.Debug.assertDefined(n.program).getSemanticDiagnostics(t,r);return n.semanticDiagnosticsPerFile&&n.semanticDiagnosticsPerFile.set(a,o),o}function f(n,t){var r={},a=e.getOptionNameMap().optionNameMap;for(var i in n)e.hasProperty(n,i)&&(r[i]=_(a.get(i.toLowerCase()),n[i],t));return r.configFilePath&&(r.configFilePath=t(r.configFilePath)),r}function _(e,n,t){if(e)if(\"list\"===e.type){var r=n;if(e.element.isFilePath&&r.length)return r.map(t)}else if(e.isFilePath)return t(n);return n}function g(n,t){return e.Debug.assert(!!n.length),n.map((function(n){var r=y(n,t);r.reportsUnnecessary=n.reportsUnnecessary,r.source=n.source;var a=n.relatedInformation;return r.relatedInformation=a?a.length?a.map((function(e){return y(e,t)})):e.emptyArray:void 0,r}))}function y(e,n){var t=e.file;return __assign(__assign({},e),{file:t?n(t.path):void 0})}function v(n,t,r){n.affectedFilesPendingEmit||(n.affectedFilesPendingEmit=[]),n.affectedFilesPendingEmitKind||(n.affectedFilesPendingEmitKind=e.createMap());var a=n.affectedFilesPendingEmitKind.get(t);n.affectedFilesPendingEmit.push(t),n.affectedFilesPendingEmitKind.set(t,a||r),void 0===n.affectedFilesPendingEmitIndex&&(n.affectedFilesPendingEmitIndex=0)}function h(n,t){if(n){var r=e.createMap();for(var a in n)e.hasProperty(n,a)&&r.set(t(a),e.arrayToSet(n[a],t));return r}}function b(n,t){return{getState:e.notImplemented,backupState:e.noop,restoreState:e.noop,getProgram:r,getProgramOrUndefined:function(){return n.program},releaseProgram:function(){return n.program=void 0},getCompilerOptions:function(){return n.compilerOptions},getSourceFile:function(e){return r().getSourceFile(e)},getSourceFiles:function(){return r().getSourceFiles()},getOptionsDiagnostics:function(e){return r().getOptionsDiagnostics(e)},getGlobalDiagnostics:function(e){return r().getGlobalDiagnostics(e)},getConfigFileParsingDiagnostics:function(){return t},getSyntacticDiagnostics:function(e,n){return r().getSyntacticDiagnostics(e,n)},getDeclarationDiagnostics:function(e,n){return r().getDeclarationDiagnostics(e,n)},getSemanticDiagnostics:function(e,n){return r().getSemanticDiagnostics(e,n)},emit:function(e,n,t,a,i){return r().emit(e,n,t,a,i)},getAllDependencies:e.notImplemented,getCurrentDirectory:function(){return r().getCurrentDirectory()}};function r(){return e.Debug.assertDefined(n.program)}}!function(e){e[e.DtsOnly=0]=\"DtsOnly\",e[e.Full=1]=\"Full\"}(e.BuilderFileEmit||(e.BuilderFileEmit={})),function(e){e[e.SemanticDiagnosticsBuilderProgram=0]=\"SemanticDiagnosticsBuilderProgram\",e[e.EmitAndSemanticDiagnosticsBuilderProgram=1]=\"EmitAndSemanticDiagnosticsBuilderProgram\"}(n=e.BuilderProgramKind||(e.BuilderProgramKind={})),e.getBuilderCreationParameters=function(n,t,r,a,i,o){var s,c,l;return void 0===n?(e.Debug.assert(void 0===t),s=r,l=a,e.Debug.assert(!!l),c=l.getProgram()):e.isArray(n)?(l=a,c=e.createProgram({rootNames:n,options:t,host:r,oldProgram:l&&l.getProgramOrUndefined(),configFileParsingDiagnostics:i,projectReferences:o}),s=r):(c=n,s=t,l=r,i=a),{host:s,newProgram:c,oldProgram:l,configFileParsingDiagnostics:i||e.emptyArray}},e.createBuilderProgram=function(r,o){var s=o.newProgram,c=o.host,l=o.oldProgram,_=o.configFileParsingDiagnostics,y=l&&l.getState();if(y&&s===y.program&&_===s.getConfigFileParsingDiagnostics())return s=void 0,y=void 0,l;var h,E=e.createGetCanonicalFileName(c.useCaseSensitiveFileNames()),T=c.createHash||e.generateDjb2Hash,S=t(s,E,y);s.getProgramBuildInfo=function(){return function(n,t){if(!n.compilerOptions.outFile&&!n.compilerOptions.out){var r=e.Debug.assertDefined(n.program).getCurrentDirectory(),a=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(n.compilerOptions),r)),i={};n.fileInfos.forEach((function(e,t){var r=n.currentAffectedFilesSignatures&&n.currentAffectedFilesSignatures.get(t);i[u(t)]=void 0===r?e:{version:e.version,signature:r}}));var o={fileInfos:i,options:f(n.compilerOptions,(function(n){return u(e.getNormalizedAbsolutePath(n,r))}))};if(n.referencedMap){var s={};n.referencedMap.forEach((function(n,t){s[u(t)]=e.arrayFrom(n.keys(),u)})),o.referencedMap=s}if(n.exportedModulesMap){var c={};n.exportedModulesMap.forEach((function(t,r){var a=n.currentAffectedFilesExportedModulesMap&&n.currentAffectedFilesExportedModulesMap.get(r);void 0===a?c[u(r)]=e.arrayFrom(t.keys(),u):a&&(c[u(r)]=e.arrayFrom(a.keys(),u))})),o.exportedModulesMap=c}if(n.semanticDiagnosticsPerFile){var l=[];n.semanticDiagnosticsPerFile.forEach((function(e,t){return l.push(e.length?[u(t),n.hasReusableDiagnostic?e:g(e,u)]:u(t))})),o.semanticDiagnosticsPerFile=l}return o}function u(n){return e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(a,n,t))}}(S,E)},s=void 0,l=void 0,y=void 0;var x=b(S,_);return x.getState=function(){return S},x.backupState=function(){e.Debug.assert(void 0===h),h=function(n){var t=e.BuilderState.clone(n);return t.semanticDiagnosticsPerFile=e.cloneMapOrUndefined(n.semanticDiagnosticsPerFile),t.changedFilesSet=e.cloneMap(n.changedFilesSet),t.affectedFiles=n.affectedFiles,t.affectedFilesIndex=n.affectedFilesIndex,t.currentChangedFilePath=n.currentChangedFilePath,t.currentAffectedFilesSignatures=e.cloneMapOrUndefined(n.currentAffectedFilesSignatures),t.currentAffectedFilesExportedModulesMap=e.cloneMapOrUndefined(n.currentAffectedFilesExportedModulesMap),t.seenAffectedFiles=e.cloneMapOrUndefined(n.seenAffectedFiles),t.cleanedDiagnosticsOfLibFiles=n.cleanedDiagnosticsOfLibFiles,t.semanticDiagnosticsFromOldState=e.cloneMapOrUndefined(n.semanticDiagnosticsFromOldState),t.program=n.program,t.compilerOptions=n.compilerOptions,t.affectedFilesPendingEmit=n.affectedFilesPendingEmit&&n.affectedFilesPendingEmit.slice(),t.affectedFilesPendingEmitKind=e.cloneMapOrUndefined(n.affectedFilesPendingEmitKind),t.affectedFilesPendingEmitIndex=n.affectedFilesPendingEmitIndex,t.seenEmittedFiles=e.cloneMapOrUndefined(n.seenEmittedFiles),t.programEmitComplete=n.programEmitComplete,t}(S)},x.restoreState=function(){S=e.Debug.assertDefined(h),h=void 0},x.getAllDependencies=function(n){return e.BuilderState.getAllDependencies(S,e.Debug.assertDefined(S.program),n)},x.getSemanticDiagnostics=function(n,t){a(S,n);var r,i=e.Debug.assertDefined(S.program).getCompilerOptions();if(i.outFile||i.out)return e.Debug.assert(!S.semanticDiagnosticsPerFile),e.Debug.assertDefined(S.program).getSemanticDiagnostics(n,t);if(n)return m(S,n,t);for(;C(t););for(var o=0,s=e.Debug.assertDefined(S.program).getSourceFiles();o<s.length;o++){var c=s[o];r=e.addRange(r,m(S,c,t))}return r||e.emptyArray},x.emit=function(t,i,o,s,l){if(r===n.EmitAndSemanticDiagnosticsBuilderProgram&&(a(S,t),!t)){for(var u=[],d=!1,p=void 0,m=[],f=void 0;f=L(i,o,s,l);)d=d||f.result.emitSkipped,p=e.addRange(p,f.result.diagnostics),m=e.addRange(m,f.result.emittedFiles),u=e.addRange(u,f.result.sourceMaps);return{emitSkipped:d,diagnostics:p||e.emptyArray,emittedFiles:m,sourceMaps:u}}return e.Debug.assertDefined(S.program).emit(t,i||e.maybeBind(c,c.writeFile),o,s,l)},x.releaseProgram=function(){!function(n){e.BuilderState.releaseCache(n),n.program=void 0}(S),h=void 0},r===n.SemanticDiagnosticsBuilderProgram?x.getSemanticDiagnosticsOfNextAffectedFile=C:r===n.EmitAndSemanticDiagnosticsBuilderProgram?(x.getSemanticDiagnosticsOfNextAffectedFile=C,x.emitNextAffectedFile=L):e.notImplemented(),x;function L(n,t,r,a){var o=i(S,t,T),s=1,l=!1;if(!o)if(S.compilerOptions.out||S.compilerOptions.outFile){var u=e.Debug.assertDefined(S.program);if(S.programEmitComplete||!e.some(u.getProjectReferences(),(function(e){return!!e.prepend})))return void(S.programEmitComplete=!0);o=u}else{var d=function(n){var t=n.affectedFilesPendingEmit;if(t){for(var r=n.seenEmittedFiles||(n.seenEmittedFiles=e.createMap()),a=n.affectedFilesPendingEmitIndex;a<t.length;a++){var i=e.Debug.assertDefined(n.program).getSourceFileByPath(t[a]);if(i){var o=r.get(i.path),s=e.Debug.assertDefined(e.Debug.assertDefined(n.affectedFilesPendingEmitKind).get(i.path));if(void 0===o||o<s)return n.affectedFilesPendingEmitIndex=a,{affectedFile:i,emitKind:s}}}n.affectedFilesPendingEmit=void 0,n.affectedFilesPendingEmitKind=void 0,n.affectedFilesPendingEmitIndex=void 0}}(S);if(!d){if(S.emittedBuildInfo)return;var m=e.Debug.assertDefined(S.program);return p(S,m.emitBuildInfo(n||e.maybeBind(c,c.writeFile),t),m,1,!1,!0)}o=d.affectedFile,s=d.emitKind,l=!0}return p(S,e.Debug.assertDefined(S.program).emit(o===S.program?void 0:o,n||e.maybeBind(c,c.writeFile),t,r||0===s,a),o,s,l)}function C(e,t){for(;;){var a=i(S,e,T);if(!a)return;if(a===S.program)return d(S,S.program.getSemanticDiagnostics(void 0,e),a);if(r===n.EmitAndSemanticDiagnosticsBuilderProgram&&v(S,a.path,1),!t||!t(a))return d(S,m(S,a,e),a);u(S,a)}}},e.createBuildProgramUsingProgramBuildInfo=function(n,t,r){var a=e.getDirectoryPath(e.getNormalizedAbsolutePath(t,r.getCurrentDirectory())),i=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames()),o=e.createMap();for(var s in n.fileInfos)e.hasProperty(n.fileInfos,s)&&o.set(l(s),n.fileInfos[s]);var c={fileInfos:o,compilerOptions:e.convertToOptionsWithAbsolutePaths(n.options,(function(n){return e.getNormalizedAbsolutePath(n,a)})),referencedMap:h(n.referencedMap,l),exportedModulesMap:h(n.exportedModulesMap,l),semanticDiagnosticsPerFile:n.semanticDiagnosticsPerFile&&e.arrayToMap(n.semanticDiagnosticsPerFile,(function(n){return l(e.isString(n)?n:n[0])}),(function(n){return e.isString(n)?e.emptyArray:n[1]})),hasReusableDiagnostic:!0};return{getState:function(){return c},backupState:e.noop,restoreState:e.noop,getProgram:e.notImplemented,getProgramOrUndefined:e.returnUndefined,releaseProgram:e.noop,getCompilerOptions:function(){return c.compilerOptions},getSourceFile:e.notImplemented,getSourceFiles:e.notImplemented,getOptionsDiagnostics:e.notImplemented,getGlobalDiagnostics:e.notImplemented,getConfigFileParsingDiagnostics:e.notImplemented,getSyntacticDiagnostics:e.notImplemented,getDeclarationDiagnostics:e.notImplemented,getSemanticDiagnostics:e.notImplemented,emit:e.notImplemented,getAllDependencies:e.notImplemented,getCurrentDirectory:e.notImplemented,emitNextAffectedFile:e.notImplemented,getSemanticDiagnosticsOfNextAffectedFile:e.notImplemented};function l(n){return e.toPath(n,a,i)}},e.createRedirectedBuilderProgram=b}(ts||(ts={})),function(e){e.createSemanticDiagnosticsBuilderProgram=function(n,t,r,a,i,o){return e.createBuilderProgram(e.BuilderProgramKind.SemanticDiagnosticsBuilderProgram,e.getBuilderCreationParameters(n,t,r,a,i,o))},e.createEmitAndSemanticDiagnosticsBuilderProgram=function(n,t,r,a,i,o){return e.createBuilderProgram(e.BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram,e.getBuilderCreationParameters(n,t,r,a,i,o))},e.createAbstractBuilder=function(n,t,r,a,i,o){var s=e.getBuilderCreationParameters(n,t,r,a,i,o),c=s.newProgram,l=s.configFileParsingDiagnostics;return e.createRedirectedBuilderProgram({program:c,compilerOptions:c.getCompilerOptions()},l)}}(ts||(ts={})),function(e){function n(n){return e.some(e.ignoredPaths,(function(t){return e.stringContains(n,t)}))}function t(n){var t=e.getRootLength(n);if(n.length===t)return!1;var r=n.indexOf(e.directorySeparator,t);if(-1===r)return!1;var a=n.substring(t,r+1),i=t>1||47!==n.charCodeAt(0);if(i&&0!==n.search(/[a-zA-Z]:/)&&0===a.search(/[a-zA-z]\\$\\//)){if(-1===(r=n.indexOf(e.directorySeparator,r+1)))return!1;a=n.substring(t+a.length,r+1)}if(i&&0!==a.search(/users\\//i))return!0;for(var o=r+1,s=2;s>0;s--)if(0===(o=n.indexOf(e.directorySeparator,o)+1))return!1;return!0}e.isPathIgnored=n,e.canWatchDirectory=t,e.maxNumberOfFilesToIterateForInvalidation=256,e.createResolutionCache=function(r,a,i){var o,s,c,l=!1,u=e.createMultiMap(),d=e.memoize((function(){return r.getCurrentDirectory()})),p=r.getCachedDirectoryStructureHost(),m=e.createMap(),f=e.createCacheWithRedirects(),_=e.createCacheWithRedirects(),g=e.createModuleResolutionCacheWithMaps(f,_,d(),r.getCanonicalFileName),y=e.createMap(),v=e.createCacheWithRedirects(),h=[\".ts\",\".tsx\",\".js\",\".jsx\",\".json\"],b=e.createMap(),E=e.createMap(),T=a&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(a,d())),S=T&&r.toPath(T),x=e.createMap();return{startRecordingFilesWithChangedResolutions:function(){o=[]},finishRecordingFilesWithChangedResolutions:function(){var e=o;return o=void 0,e},startCachingPerDirectoryResolution:k,finishCachingPerDirectoryResolution:function(){l=!1,c=void 0,k(),E.forEach((function(e,n){0===e.refCount&&(E.delete(n),e.watcher.close())}))},resolveModuleNames:function(n,t,r,a){return I(n,t,a,m,f,N,L,(function(n){return!n.resolvedModule||!e.resolutionExtensionIsTSOrJson(n.resolvedModule.extension)}),r,i)},getResolvedModuleWithFailedLookupLocationsFromCache:function(e,n){var t=m.get(r.toPath(n));return t&&t.get(e)},resolveTypeReferenceDirectives:function(n,t,r){return I(n,t,r,y,v,e.resolveTypeReferenceDirective,C,(function(e){return void 0===e.resolvedTypeReferenceDirective}),void 0,!1)},removeResolutionsFromProjectReferenceRedirects:function(n){if(!e.fileExtensionIs(n,\".json\"))return;var t=r.getCurrentProgram();if(!t)return;var a=t.getResolvedProjectReferenceByPath(n);if(!a)return;a.commandLine.fileNames.forEach((function(e){return z(r.toPath(e))}))},removeResolutionsOfFile:z,invalidateResolutionOfFile:function(e){z(e),J((function(n,t){var a=t(n);return!!a&&r.toPath(a.resolvedFileName)===e}))},setFilesWithInvalidatedNonRelativeUnresolvedImports:function(n){e.Debug.assert(c===n||void 0===c),c=n},createHasInvalidatedResolution:function(n){if(l||n)return s=void 0,e.returnTrue;var t=s;return s=void 0,function(e){return!!t&&t.has(e)||D(e)}},updateTypeRootsWatch:function(){var n=r.getCompilationSettings();if(n.types)return void Y();var t=e.getEffectiveTypeRoots(n,{directoryExists:Z,getCurrentDirectory:d});t?e.mutateMap(x,e.arrayToMap(t,(function(e){return r.toPath(e)})),{createNewValue:Q,onDeleteValue:e.closeFileWatcher}):Y()},closeTypeRootsWatch:Y,clear:function(){e.clearMap(E,e.closeFileWatcherOf),b.clear(),u.clear(),Y(),m.clear(),y.clear(),l=!1,k()}};function L(e){return e.resolvedModule}function C(e){return e.resolvedTypeReferenceDirective}function A(n,t){return!(void 0===n||t.length<=n.length)&&(e.startsWith(t,n)&&t[n.length]===e.directorySeparator)}function D(e){if(!c)return!1;var n=c.get(e);return!!n&&!!n.length}function k(){f.clear(),_.clear(),v.clear(),u.forEach(V),u.clear()}function N(n,t,a,i,o){var s=e.resolveModuleName(n,t,a,i,g,o);if(!r.getGlobalCache)return s;var c=r.getGlobalCache();if(!(void 0===c||e.isExternalModuleNameRelative(n)||s.resolvedModule&&e.extensionIsTS(s.resolvedModule.extension))){var l=e.loadModuleFromGlobalCache(e.Debug.assertDefined(r.globalCacheResolutionModuleName)(n),r.projectName,a,i,c),u=l.resolvedModule,d=l.failedLookupLocations;if(u)return{resolvedModule:u,failedLookupLocations:e.addRange(s.failedLookupLocations,d)}}return s}function I(n,t,a,i,s,c,u,d,p,m){var f=r.toPath(t),_=i.get(f)||i.set(f,e.createMap()).get(f),g=e.getDirectoryPath(f),y=s.getOrCreateMapOfCacheRedirects(a),v=y.get(g);v||(v=e.createMap(),y.set(g,v));for(var h=[],b=r.getCompilationSettings(),E=m&&D(f),T=r.getCurrentProgram(),S=T&&T.getResolvedProjectReferenceToRedirect(t),x=S?!a||a.sourceFile.path!==S.sourceFile.path:!!a,L=e.createMap(),C=0,A=n;C<A.length;C++){var k=A[C],N=_.get(k);if(!L.has(k)&&l||x||!N||N.isInvalidated||E&&!e.isExternalModuleNameRelative(k)&&d(N)){var I=N,M=v.get(k);M?N=M:(N=c(k,t,b,r,a),v.set(k,N)),_.set(k,N),F(k,N),I&&j(I),m&&o&&!O(I,N)&&(o.push(f),m=!1)}e.Debug.assert(void 0!==N&&!N.isInvalidated),L.set(k,!0),h.push(u(N))}return _.forEach((function(n,t){L.has(t)||e.contains(p,t)||(j(n),_.delete(t))})),h;function O(e,n){if(e===n)return!0;if(!e||!n)return!1;var t=u(e),r=u(n);return t===r||!(!t||!r)&&t.resolvedFileName===r.resolvedFileName}}function M(n){return e.endsWith(n,\"/node_modules\")}function O(n){return e.endsWith(n,\"/node_modules/@types\")}function R(n,t){if(A(S,t)){n=e.isRootedDiskPath(n)?e.normalizePath(n):e.getNormalizedAbsolutePath(n,d()),e.Debug.assert(n.length===t.length,\"FailedLookup: \"+n+\" failedLookupLocationPath: \"+t);var r=t.indexOf(e.directorySeparator,S.length+1);return-1!==r?{dir:n.substr(0,r),dirPath:t.substr(0,r)}:{dir:T,dirPath:S,nonRecursive:!1}}return P(e.getDirectoryPath(e.getNormalizedAbsolutePath(n,d())),e.getDirectoryPath(t))}function P(n,r){for(;e.pathContainsNodeModules(r);)n=e.getDirectoryPath(n),r=e.getDirectoryPath(r);if(M(r))return t(e.getDirectoryPath(r))?{dir:n,dirPath:r}:void 0;var a,i,o=!0;if(void 0!==S)for(;!A(r,S);){var s=e.getDirectoryPath(r);if(s===r)break;o=!1,a=r,i=n,r=s,n=e.getDirectoryPath(n)}return t(r)?{dir:i||n,dirPath:a||r,nonRecursive:o}:void 0}function w(n){return e.fileExtensionIsOneOf(n,h)}function F(n,t){t.failedLookupLocations&&t.failedLookupLocations.length&&(t.refCount?t.refCount++:(t.refCount=1,e.isExternalModuleNameRelative(n)?G(t):u.add(n,t)))}function G(n){e.Debug.assert(!!n.refCount);for(var t=!1,a=0,i=n.failedLookupLocations;a<i.length;a++){var o=i[a],s=r.toPath(o),c=R(o,s);if(c){var l=c.dir,u=c.dirPath,d=c.nonRecursive;if(!w(s)){var p=b.get(s)||0;b.set(s,p+1)}u===S?(e.Debug.assert(!d),t=!0):U(l,u,d)}}t&&U(T,S,!0)}function B(e){e.refCount=void 0}function V(e,n){var t=r.getCurrentProgram(),a=t&&t.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(n)?B:G;e.forEach(a)}function U(n,t,r){var a=E.get(t);a?(e.Debug.assert(!!r==!!a.nonRecursive),a.refCount++):E.set(t,{watcher:H(n,t,r),refCount:1,nonRecursive:r})}function j(n){if(n.refCount&&(n.refCount--,!n.refCount)){for(var t=!1,a=0,i=n.failedLookupLocations;a<i.length;a++){var o=i[a],s=r.toPath(o),c=R(o,s);if(c){var l=c.dirPath,u=b.get(s);u&&(1===u?b.delete(s):(e.Debug.assert(u>1),b.set(s,u-1))),l===S?t=!0:K(l)}}t&&K(S)}}function K(e){E.get(e).refCount--}function H(e,n,t){return r.watchDirectoryOfFailedLookupLocation(e,(function(e){var t=r.toPath(e);p&&p.addOrDeleteFileOrDirectory(e,t),!l&&X(t,n===t)&&r.onInvalidatedResolution()}),t?0:1)}function W(e,n){var t=e.get(n);t&&(t.forEach(j),e.delete(n))}function z(e){W(m,e),W(y,e)}function q(n,t,a){var i=e.createMap();n.forEach((function(n,o){var c=e.getDirectoryPath(o),l=i.get(c);l||(l=e.createMap(),i.set(c,l)),n.forEach((function(n,i){l.has(i)||(l.set(i,!0),!n.isInvalidated&&t(n,a)&&(n.isInvalidated=!0,(s||(s=e.createMap())).set(o,!0),o.endsWith(e.inferredTypesContainingFile)&&r.onChangedAutomaticTypeDirectiveNames()))}))}))}function J(n){var t;(t=r.maxNumberOfFilesToIterateForInvalidation||e.maxNumberOfFilesToIterateForInvalidation,m.size>t||y.size>t)?l=!0:(q(m,n,L),q(y,n,C))}function X(t,a){var i;if(a)i=function(e){return A(t,r.toPath(e))};else{if(n(t))return!1;if(r.fileIsOpen(t))return!1;var o=e.getDirectoryPath(t);if(O(t)||M(t)||O(o)||M(o))i=function(n){return r.toPath(n)===t||e.startsWith(r.toPath(n),t)};else{if(!w(t)&&!b.has(t))return!1;if(e.isEmittedFileOfProgram(r.getCurrentProgram(),t))return!1;i=function(e){return r.toPath(e)===t}}}var c=s&&s.size;return J((function(n){return e.some(n.failedLookupLocations,i)})),l||s&&s.size!==c}function Y(){e.clearMap(x,e.closeFileWatcher)}function Q(e,n){return r.watchTypeRootsDirectory(n,(function(t){var a=r.toPath(t);p&&p.addOrDeleteFileOrDirectory(t,a),r.onChangedAutomaticTypeDirectiveNames();var i=function(e,n){if(!l){if(A(S,n))return S;var t=P(e,n);return t&&E.has(t.dirPath)?t.dirPath:void 0}}(n,e);i&&X(a,i===a)&&r.onInvalidatedResolution()}),1)}function Z(n){var a=e.getDirectoryPath(e.getDirectoryPath(n)),i=r.toPath(a);return i===S||t(i)}}}(ts||(ts={})),function(e){!function(n){var t,r;function a(n,t,r){var a=n.importModuleSpecifierPreference,i=n.importModuleSpecifierEnding;return{relativePreference:\"relative\"===a?0:\"non-relative\"===a?1:2,ending:function(){switch(i){case\"minimal\":return 0;case\"index\":return 1;case\"js\":return 2;default:return function(n){var t=n.imports;return e.firstDefined(t,(function(n){var t=n.text;return e.pathIsRelative(t)?e.hasJSOrJsonFileExtension(t):void 0}))||!1}(r)?2:e.getEmitModuleResolutionKind(t)!==e.ModuleResolutionKind.NodeJs?1:0}}()}}function i(n,t,r,a,i,c,l){var u=o(t,a),p=d(i,t,r,u.getCanonicalFileName,a,c);return e.firstDefined(p,(function(e){return m(e,u,a,n)}))||s(r,u,n,l)}function o(n,t){return{getCanonicalFileName:e.createGetCanonicalFileName(!t.useCaseSensitiveFileNames||t.useCaseSensitiveFileNames()),sourceDirectory:e.getDirectoryPath(n)}}function s(n,t,r,a){var i=t.getCanonicalFileName,o=t.sourceDirectory,s=a.ending,l=a.relativePreference,u=r.baseUrl,d=r.paths,m=r.rootDirs,v=m&&function(n,t,r,a,i,o){var s=f(t,n,a);if(void 0===s)return;var c=f(r,n,a),l=void 0!==c?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(c,s,a)):s;return e.getEmitModuleResolutionKind(o)===e.ModuleResolutionKind.NodeJs?_(l,i,o):e.removeFileExtension(l)}(m,n,o,i,s,r)||_(e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(o,n,i)),s,r);if(!u||0===l)return v;var h=g(n,u,i);if(!h)return v;var b=_(h,s,r),E=d&&p(e.removeFileExtension(h),b,d),T=void 0===E?b:E;return 1===l?T:(2!==l&&e.Debug.assertNever(l),y(T)||c(v)<c(T)?v:T)}function c(n){for(var t=0,r=e.startsWith(n,\"./\")?2:0;r<n.length;r++)47===n.charCodeAt(r)&&t++;return t}function l(e){var n=e.match(/\\//g);return n?n.length:0}function u(n,t){return e.compareValues(l(n),l(t))}function d(n,t,r,a,i,o){var s=o.get(r),c=s?__spreadArrays(s,[r]):[r],l=i.getCurrentDirectory?i.getCurrentDirectory():\"\",d=c.map((function(n){return e.getNormalizedAbsolutePath(n,l)})),p=i.getProbableSymlinks?i.getProbableSymlinks(n):e.discoverProbableSymlinks(n,a,l),m=[],f=!i.useCaseSensitiveFileNames||i.useCaseSensitiveFileNames()?e.compareStringsCaseSensitive:e.compareStringsCaseInsensitive;if(p.forEach((function(n,r){if(!e.startsWithDirectory(t,n,a)){var o=e.find(d,(function(e){return 0===f(e.slice(0,n.length+1),n+\"/\")}));if(void 0!==o){var s=e.getRelativePathFromDirectory(n,o,a),c=e.resolvePath(r,s);i.fileExists&&!i.fileExists(c)||m.push(c)}}})),m.push.apply(m,d),m.length<2)return m;for(var _,g=e.arrayToMap(m,e.identity,a),y=[],v=function(n){var t,r=e.ensureTrailingDirectorySeparator(n);g.forEach((function(n,a){e.startsWith(n,r)&&((t||(t=[])).push(a),g.delete(a))})),t&&(t.length>1&&t.sort(u),y.push.apply(y,t));var a=e.getDirectoryPath(n);if(a===n)return _=n,\"break\";_=n=a},h=e.getDirectoryPath(e.toPath(t,l,a));0!==g.size;){var b=v(h);if(h=_,\"break\"===b)break}if(g.size){var E=e.arrayFrom(g.values());E.length>1&&E.sort(u),y.push.apply(y,E)}return y}function p(n,t,r){for(var a in r)for(var i=0,o=r[a];i<o.length;i++){var s=o[i],c=e.removeFileExtension(e.normalizePath(s)),l=c.indexOf(\"*\");if(-1!==l){var u=c.substr(0,l),d=c.substr(l+1);if(t.length>=u.length+d.length&&e.startsWith(t,u)&&e.endsWith(t,d)||!d&&t===e.removeTrailingDirectorySeparator(u)){var p=t.substr(u.length,t.length-d.length);return a.replace(\"*\",p)}}else if(c===t||c===n)return a}}function m(n,t,r,a,i){var o=t.getCanonicalFileName,s=t.sourceDirectory;if(r.fileExists&&r.readFile){var c=function(n){var t,r,a=0,i=0,o=0;!function(e){e[e.BeforeNodeModules=0]=\"BeforeNodeModules\",e[e.NodeModules=1]=\"NodeModules\",e[e.Scope=2]=\"Scope\",e[e.PackageContent=3]=\"PackageContent\"}(r||(r={}));var s=0,c=0,l=0;for(;c>=0;)switch(s=c,c=n.indexOf(\"/\",s+1),l){case 0:n.indexOf(e.nodeModulesPathPart,s)===s&&(a=s,i=c,l=1);break;case 1:case 2:1===l&&\"@\"===n.charAt(s+1)?l=2:(o=c,l=3);break;case 3:l=n.indexOf(e.nodeModulesPathPart,s)===s?1:3}return t=s,l>1?{topLevelNodeModulesIndex:a,topLevelPackageNameIndex:i,packageRootIndex:o,fileNameIndex:t}:void 0}(n);if(c){var l,u=n.substring(0,c.packageRootIndex);if(!i){var d=e.combinePaths(u,\"package.json\"),m=(l=r.fileExists(d)?JSON.parse(r.readFile(d)):void 0)&&l.typesVersions?e.getPackageJsonTypesVersionsPaths(l.typesVersions):void 0;if(m){var f=n.slice(c.packageRootIndex+1),g=p(e.removeFileExtension(f),_(f,0,a),m.paths);void 0!==g&&(n=e.combinePaths(n.slice(0,c.packageRootIndex),g))}}var y=i?n:function(n){if(l){var t=l.typings||l.types||l.main;if(t){var a=e.toPath(t,u,o);if(e.removeFileExtension(a)===e.removeFileExtension(o(n)))return u}}var i=e.removeFileExtension(n);if(\"/index\"===o(i.substring(c.fileNameIndex))&&!function(n,t){if(!n.fileExists)return;for(var r=e.getSupportedExtensions({allowJs:!0},[{extension:\"node\",isMixedContent:!1},{extension:\"json\",isMixedContent:!1,scriptKind:6}]),a=0,i=r;a<i.length;a++){var o=i[a],s=t+o;if(n.fileExists(s))return s}}(r,i.substring(0,c.fileNameIndex)))return i.substring(0,c.fileNameIndex);return i}(n),v=r.getGlobalTypingsCacheLocation&&r.getGlobalTypingsCacheLocation(),h=o(y.substring(0,c.topLevelNodeModulesIndex));if(e.startsWith(s,h)||v&&e.startsWith(o(v),h)){var b=y.substring(c.topLevelPackageNameIndex+1),E=e.getPackageNameFromTypesPackageName(b);return e.getEmitModuleResolutionKind(a)!==e.ModuleResolutionKind.NodeJs&&E===b?void 0:E}}}}function f(n,t,r){return e.firstDefined(t,(function(e){var t=g(n,e,r);return y(t)?void 0:t}))}function _(n,t,r){if(e.fileExtensionIs(n,\".json\"))return n;var a=e.removeFileExtension(n);switch(t){case 0:return e.removeSuffix(a,\"/index\");case 1:return a;case 2:return a+function(n,t){var r=e.extensionFromPath(n);switch(r){case\".ts\":case\".d.ts\":return\".js\";case\".tsx\":return 1===t.jsx?\".jsx\":\".js\";case\".js\":case\".jsx\":case\".json\":return r;case\".tsbuildinfo\":return e.Debug.fail(\"Extension .tsbuildinfo is unsupported:: FileName:: \"+n);default:return e.Debug.assertNever(r)}}(n,r);default:return e.Debug.assertNever(t)}}function g(n,t,r){var a=e.getRelativePathToDirectoryOrUrl(t,n,t,r,!1);return e.isRootedDiskPath(a)?void 0:a}function y(n){return e.startsWith(n,\"..\")}!function(e){e[e.Relative=0]=\"Relative\",e[e.NonRelative=1]=\"NonRelative\",e[e.Auto=2]=\"Auto\"}(t||(t={})),function(e){e[e.Minimal=0]=\"Minimal\",e[e.Index=1]=\"Index\",e[e.JsExtension=2]=\"JsExtension\"}(r||(r={})),n.updateModuleSpecifier=function(n,t,r,a,o,s,c){var l=i(n,t,r,a,o,s,function(n,t){return{relativePreference:e.isExternalModuleNameRelative(t)?0:1,ending:e.hasJSOrJsonFileExtension(t)?2:e.getEmitModuleResolutionKind(n)!==e.ModuleResolutionKind.NodeJs||e.endsWith(t,\"index\")?1:0}}(n,c));if(l!==c)return l},n.getModuleSpecifier=function(e,n,t,r,o,s,c,l){return void 0===c&&(c={}),i(e,t,r,o,s,l,a(c,e,n))},n.getNodeModulesPackageName=function(n,t,r,a,i,s){var c=o(t,a),l=d(i,t,r,c.getCanonicalFileName,a,s);return e.firstDefined(l,(function(e){return m(e,c,a,n,!0)}))},n.getModuleSpecifiers=function(n,t,r,i,c,l,u){var p=function(n){var t=e.find(n.declarations,(function(n){return e.isNonGlobalAmbientModule(n)&&(!e.isExternalModuleAugmentation(n)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(n.name)))}));if(t)return t.name.text}(n);if(p)return[p];var f=o(r.path,i),_=e.getSourceFileOfNode(n.valueDeclaration||e.getNonAugmentationDeclaration(n)),g=d(c,r.path,_.originalFileName,f.getCanonicalFileName,i,u),y=a(l,t,r),v=e.mapDefined(g,(function(e){return m(e,f,i,t)}));return v.length?v:g.map((function(e){return s(e,f,t,y)}))},n.countPathComponents=c}(e.moduleSpecifiers||(e.moduleSpecifiers={}))}(ts||(ts={})),function(e){var n=e.sys?{getCurrentDirectory:function(){return e.sys.getCurrentDirectory()},getNewLine:function(){return e.sys.newLine},getCanonicalFileName:e.createGetCanonicalFileName(e.sys.useCaseSensitiveFileNames)}:void 0;function t(t,r){var a=t===e.sys?n:{getCurrentDirectory:function(){return t.getCurrentDirectory()},getNewLine:function(){return t.newLine},getCanonicalFileName:e.createGetCanonicalFileName(t.useCaseSensitiveFileNames)};if(!r)return function(n){return t.write(e.formatDiagnostic(n,a))};var i=new Array(1);return function(n){i[0]=n,t.write(e.formatDiagnosticsWithColorAndContext(i,a)+a.getNewLine()),i[0]=void 0}}function r(n,t,r){return!(!n.clearScreen||r.preserveWatchOutput||r.extendedDiagnostics||r.diagnostics||!e.contains(e.screenStartingMessageCodes,t.code))&&(n.clearScreen(),!0)}function a(e){return e.now?e.now().toLocaleTimeString(\"en-US\",{timeZone:\"UTC\"}):(new Date).toLocaleTimeString()}function i(n,t){return t?function(t,i,o){r(n,t,o);var s=\"[\"+e.formatColorAndReset(a(n),e.ForegroundColorEscapeSequences.Grey)+\"] \";s+=\"\"+e.flattenDiagnosticMessageText(t.messageText,n.newLine)+(i+i),n.write(s)}:function(t,i,o){var s=\"\";r(n,t,o)||(s+=i),s+=a(n)+\" - \",s+=\"\"+e.flattenDiagnosticMessageText(t.messageText,n.newLine)+function(n,t){return e.contains(e.screenStartingMessageCodes,n.code)?t+t:t}(t,i),n.write(s)}}function o(n){return e.countWhere(n,(function(n){return n.category===e.DiagnosticCategory.Error}))}function s(n){return 1===n?e.Diagnostics.Found_1_error_Watching_for_file_changes:e.Diagnostics.Found_0_errors_Watching_for_file_changes}function c(n,t){if(0===n)return\"\";var r=e.createCompilerDiagnostic(1===n?e.Diagnostics.Found_1_error:e.Diagnostics.Found_0_errors,n);return\"\"+t+e.flattenDiagnosticMessageText(r.messageText,t)+t+t}function l(n,t){(n.getCompilerOptions().listFiles||n.getCompilerOptions().listFilesOnly)&&e.forEach(n.getSourceFiles(),(function(e){t(e.fileName)}))}function u(n,t,r,a,i,s,c,u){var d=!!n.getCompilerOptions().listFilesOnly,p=n.getConfigFileParsingDiagnostics().slice(),m=p.length;e.addRange(p,n.getSyntacticDiagnostics(void 0,s)),p.length===m&&(e.addRange(p,n.getOptionsDiagnostics(s)),d||(e.addRange(p,n.getGlobalDiagnostics(s)),p.length===m&&e.addRange(p,n.getSemanticDiagnostics(void 0,s))));var f=d?{emitSkipped:!0,diagnostics:e.emptyArray}:n.emit(void 0,i,s,c,u),_=f.emittedFiles,g=f.diagnostics;if(e.addRange(p,g),e.sortAndDeduplicateDiagnostics(p).forEach(t),r){var y=n.getCurrentDirectory();e.forEach(_,(function(n){var t=e.getNormalizedAbsolutePath(n,y);r(\"TSFILE: \"+t)})),l(n,r)}return a&&a(o(p)),{emitResult:f,diagnostics:p}}function d(n,t,r,a,i,o,s,c){var l=u(n,t,r,a,i,o,s,c),d=l.emitResult,p=l.diagnostics;return d.emitSkipped&&p.length>0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:p.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}function p(n,t){return void 0===n&&(n=e.sys),{onWatchStatusChange:t||i(n),watchFile:e.maybeBind(n,n.watchFile)||function(){return e.noopFileWatcher},watchDirectory:e.maybeBind(n,n.watchDirectory)||function(){return e.noopFileWatcher},setTimeout:e.maybeBind(n,n.setTimeout)||e.noop,clearTimeout:e.maybeBind(n,n.clearTimeout)||e.noop}}function m(n,t){var r=e.memoize((function(){return e.getDirectoryPath(e.normalizePath(n.getExecutingFilePath()))}));return{useCaseSensitiveFileNames:function(){return n.useCaseSensitiveFileNames},getNewLine:function(){return n.newLine},getCurrentDirectory:e.memoize((function(){return n.getCurrentDirectory()})),getDefaultLibLocation:r,getDefaultLibFileName:function(n){return e.combinePaths(r(),e.getDefaultLibFileName(n))},fileExists:function(e){return n.fileExists(e)},readFile:function(e,t){return n.readFile(e,t)},directoryExists:function(e){return n.directoryExists(e)},getDirectories:function(e){return n.getDirectories(e)},readDirectory:function(e,t,r,a,i){return n.readDirectory(e,t,r,a,i)},realpath:e.maybeBind(n,n.realpath),getEnvironmentVariable:e.maybeBind(n,n.getEnvironmentVariable),trace:function(e){return n.write(e+n.newLine)},createDirectory:function(e){return n.createDirectory(e)},writeFile:function(e,t,r){return n.writeFile(e,t,r)},onCachedDirectoryStructureHostCreate:function(e){return e||n},createHash:e.maybeBind(n,n.createHash),createProgram:t||e.createEmitAndSemanticDiagnosticsBuilderProgram}}function f(n,t,r,a){void 0===n&&(n=e.sys);var i=function(e){return n.write(e+n.newLine)},o=m(n,t);return e.copyProperties(o,p(n,a)),o.afterProgramCreate=function(t){var a=t.getCompilerOptions(),c=e.getNewLineCharacter(a,(function(){return n.newLine}));u(t,r,i,(function(n){return o.onWatchStatusChange(e.createCompilerDiagnostic(s(n),n),c,a,n)}))},o}function _(n,t,r){t(r),n.exit(e.ExitStatus.DiagnosticsPresent_OutputsSkipped)}e.createDiagnosticReporter=t,e.screenStartingMessageCodes=[e.Diagnostics.Starting_compilation_in_watch_mode.code,e.Diagnostics.File_change_detected_Starting_incremental_compilation.code],e.getLocaleTimeString=a,e.createWatchStatusReporter=i,e.parseConfigFileWithSystem=function(n,t,r,a){var i=r;i.onUnRecoverableConfigFileDiagnostic=function(e){return _(r,a,e)};var o=e.getParsedCommandLineOfConfigFile(n,t,i);return i.onUnRecoverableConfigFileDiagnostic=void 0,o},e.getErrorCountForSummary=o,e.getWatchErrorSummaryDiagnosticMessage=s,e.getErrorSummaryText=c,e.listFiles=l,e.emitFilesAndReportErrors=u,e.emitFilesAndReportErrorsAndGetExitStatus=d,e.noopFileWatcher={close:e.noop},e.createWatchHost=p,function(e){e.ConfigFile=\"Config file\",e.SourceFile=\"Source file\",e.MissingFile=\"Missing file\",e.WildcardDirectory=\"Wild card directory\",e.FailedLookupLocations=\"Failed Lookup Locations\",e.TypeRoots=\"Type roots\"}(e.WatchType||(e.WatchType={})),e.createWatchFactory=function(n,t){var r=n.trace?t.extendedDiagnostics?e.WatchLogLevel.Verbose:t.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,a=r!==e.WatchLogLevel.None?function(e){return n.trace(e)}:e.noop,i=e.getWatchFactory(r,a);return i.writeLog=a,i},e.createCompilerHostFromProgramHost=function(n,t,r){void 0===r&&(r=n);var a=n.useCaseSensitiveFileNames(),i=e.memoize((function(){return n.getNewLine()}));return{getSourceFile:function(r,a,i){var o;try{e.performance.mark(\"beforeIORead\"),o=n.readFile(r,t().charset),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(e){i&&i(e.message),o=\"\"}return void 0!==o?e.createSourceFile(r,o,a):void 0},getDefaultLibLocation:e.maybeBind(n,n.getDefaultLibLocation),getDefaultLibFileName:function(e){return n.getDefaultLibFileName(e)},writeFile:function(t,r,a,i){try{e.performance.mark(\"beforeIOWrite\"),function t(r){if(r.length>e.getRootLength(r)&&!n.directoryExists(r)){var a=e.getDirectoryPath(r);t(a),n.createDirectory&&n.createDirectory(r)}}(e.getDirectoryPath(e.normalizePath(t))),n.writeFile(t,r,a),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(e){i&&i(e.message)}},getCurrentDirectory:e.memoize((function(){return n.getCurrentDirectory()})),useCaseSensitiveFileNames:function(){return a},getCanonicalFileName:e.createGetCanonicalFileName(a),getNewLine:function(){return e.getNewLineCharacter(t(),i)},fileExists:function(e){return n.fileExists(e)},readFile:function(e){return n.readFile(e)},trace:e.maybeBind(n,n.trace),directoryExists:e.maybeBind(r,r.directoryExists),getDirectories:e.maybeBind(r,r.getDirectories),realpath:e.maybeBind(n,n.realpath),getEnvironmentVariable:e.maybeBind(n,n.getEnvironmentVariable)||function(){return\"\"},createHash:e.maybeBind(n,n.createHash),readDirectory:e.maybeBind(n,n.readDirectory)}},e.setGetSourceFileAsHashVersioned=function(n,t){var r=n.getSourceFile,a=t.createHash||e.generateDjb2Hash;n.getSourceFile=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var o=r.call.apply(r,__spreadArrays([n],e));return o&&(o.version=a.call(t,o.text)),o}},e.createProgramHost=m,e.createWatchCompilerHostOfConfigFile=function(e,n,r,a,i,o){var s=i||t(r),c=f(r,a,s,o);return c.onUnRecoverableConfigFileDiagnostic=function(e){return _(r,s,e)},c.configFileName=e,c.optionsToExtend=n,c},e.createWatchCompilerHostOfFilesAndCompilerOptions=function(e,n,r,a,i,o,s){var c=f(r,a,i||t(r),o);return c.rootFiles=e,c.options=n,c.projectReferences=s,c},e.performIncrementalCompilation=function(n){var r=n.system||e.sys,a=n.host||(n.host=e.createIncrementalCompilerHost(n.options,r)),i=e.createIncrementalProgram(n),o=d(i,n.reportDiagnostic||t(r),(function(e){return a.trace&&a.trace(e)}),n.reportErrorSummary||n.options.pretty?function(e){return r.write(c(e,r.newLine))}:void 0);return n.afterProgramEmitAndDiagnostics&&n.afterProgramEmitAndDiagnostics(i),o}}(ts||(ts={})),function(e){function n(n,t){if(!n.out&&!n.outFile){var r=e.getTsBuildInfoEmitOutputFilePath(n);if(r){var a=t.readFile(r);if(a){var i=e.getBuildInfo(a);if(i.version===e.version&&i.program)return e.createBuildProgramUsingProgramBuildInfo(i.program,r,t)}}}}function t(n,t){void 0===t&&(t=e.sys);var r=e.createCompilerHostWorker(n,void 0,t);return r.createHash=e.maybeBind(t,t.createHash),e.setGetSourceFileAsHashVersioned(r,t),e.changeCompilerHostLikeToUseCache(r,(function(n){return e.toPath(n,r.getCurrentDirectory(),r.getCanonicalFileName)})),r}e.readBuilderProgram=n,e.createIncrementalCompilerHost=t,e.createIncrementalProgram=function(r){var a=r.rootNames,i=r.options,o=r.configFileParsingDiagnostics,s=r.projectReferences,c=r.host,l=r.createProgram;return c=c||t(i),(l=l||e.createEmitAndSemanticDiagnosticsBuilderProgram)(a,i,c,n(i,c),o,s)},e.createWatchCompilerHost=function(n,t,r,a,i,o,s){return e.isArray(n)?e.createWatchCompilerHostOfFilesAndCompilerOptions(n,t,r,a,i,o,s):e.createWatchCompilerHostOfConfigFile(n,t,r,a,i,o)},e.createWatchProgram=function(t){var r,a,i,o,s,c,l,u,d=e.createMap(),p=!1,m=!1,f=t.useCaseSensitiveFileNames(),_=t.getCurrentDirectory(),g=t.configFileName,y=t.optionsToExtend,v=void 0===y?{}:y,h=t.createProgram,b=t.rootFiles,E=t.options,T=t.projectReferences,S=!1,x=!1,L=void 0===g?void 0:e.createCachedDirectoryStructureHost(t,_,f);L&&t.onCachedDirectoryStructureHostCreate&&t.onCachedDirectoryStructureHostCreate(L);var C=L||t,A=e.parseConfigHostFromCompilerHostLike(t,C),D=H();g&&t.configFileParsingResult&&(ne(t.configFileParsingResult),D=H()),Q(e.Diagnostics.Starting_compilation_in_watch_mode),g&&!t.configFileParsingResult&&(D=e.getNewLineCharacter(v,(function(){return t.getNewLine()})),e.Debug.assert(!b),ee(),D=H());var k,N=e.createWatchFactory(t,E),I=N.watchFile,M=N.watchFilePath,O=N.watchDirectory,R=N.writeLog,P=e.createGetCanonicalFileName(f);R(\"Current directory: \"+_+\" CaseSensitiveFileNames: \"+f),g&&(k=I(t,g,(function(){e.Debug.assert(!!g),a=e.ConfigFileProgramReloadLevel.Full,Z()}),e.PollingInterval.High,\"Config file\"));var w=e.createCompilerHostFromProgramHost(t,(function(){return E}),C);e.setGetSourceFileAsHashVersioned(w,t);var F=w.getSourceFile;w.getSourceFile=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return J.apply(void 0,__spreadArrays([e,W(e)],n))},w.getSourceFileByPath=J,w.getNewLine=function(){return D},w.fileExists=q,w.onReleaseOldSourceFile=function(e,n,t){var r=d.get(e.resolvedPath);void 0!==r&&(z(r)?(c||(c=[])).push(e.path):r.sourceFile===e&&(r.fileWatcher&&r.fileWatcher.close(),d.delete(e.resolvedPath),t||G.removeResolutionsOfFile(e.path)))},w.toPath=W,w.getCompilationSettings=function(){return E},w.watchDirectoryOfFailedLookupLocation=function(e,n,r){return O(t,e,n,r,\"Failed Lookup Locations\")},w.watchTypeRootsDirectory=function(e,n,r){return O(t,e,n,r,\"Type roots\")},w.getCachedDirectoryStructureHost=function(){return L},w.onInvalidatedResolution=Z,w.onChangedAutomaticTypeDirectiveNames=function(){m=!0,Z()},w.fileIsOpen=e.returnFalse,w.maxNumberOfFilesToIterateForInvalidation=t.maxNumberOfFilesToIterateForInvalidation,w.getCurrentProgram=j,w.writeLog=R;var G=e.createResolutionCache(w,g?e.getDirectoryPath(e.getNormalizedAbsolutePath(g,_)):_,!1);w.resolveModuleNames=t.resolveModuleNames?function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.resolveModuleNames.apply(t,e)}:function(e,n,t,r){return G.resolveModuleNames(e,n,t,r)},w.resolveTypeReferenceDirectives=t.resolveTypeReferenceDirectives?function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.resolveTypeReferenceDirectives.apply(t,e)}:function(e,n,t){return G.resolveTypeReferenceDirectives(e,n,t)};var B=!!t.resolveModuleNames||!!t.resolveTypeReferenceDirectives;return r=n(E,w),K(),oe(),g?{getCurrentProgram:U,getProgram:K,close:V}:{getCurrentProgram:U,getProgram:K,updateRootFileNames:function(n){e.Debug.assert(!g,\"Cannot update root file names with config file watch mode\"),b=n,Z()},close:V};function V(){G.clear(),e.clearMap(d,(function(e){e&&e.fileWatcher&&(e.fileWatcher.close(),e.fileWatcher=void 0)})),k&&(k.close(),k=void 0),o&&(e.clearMap(o,e.closeFileWatcherOf),o=void 0),i&&(e.clearMap(i,e.closeFileWatcher),i=void 0)}function U(){return r}function j(){return r&&r.getProgramOrUndefined()}function K(){R(\"Synchronizing program\");var n=U();p&&(D=H(),n&&e.changesAffectModuleResolution(n.getCompilerOptions(),E)&&G.clear());var a=G.createHasInvalidatedResolution(B);return e.isProgramUptoDate(j(),b,E,Y,q,a,m,T)?x&&(r=h(void 0,void 0,w,r,u,T),x=!1):function(n){R(\"CreatingProgramWith::\"),R(\"  roots: \"+JSON.stringify(b)),R(\"  options: \"+JSON.stringify(E));var t=p||!j();p=!1,x=!1,G.startCachingPerDirectoryResolution(),w.hasInvalidatedResolution=n,w.hasChangedAutomaticTypeDirectiveNames=m,r=h(b,E,w,r,u,T),G.finishCachingPerDirectoryResolution(),e.updateMissingFilePathsWatch(r.getProgram(),i||(i=e.createMap()),ae),t&&G.updateTypeRootsWatch();if(c){for(var a=0,o=c;a<o.length;a++){var s=o[a];i.has(s)||d.delete(s)}c=void 0}}(a),t.afterProgramCreate&&t.afterProgramCreate(r),r}function H(){return e.getNewLineCharacter(E||v,(function(){return t.getNewLine()}))}function W(n){return e.toPath(n,_,P)}function z(e){return\"boolean\"==typeof e}function q(e){var n=W(e);return!!z(d.get(n))||C.fileExists(e)}function J(n,r,a,i,o){var s=d.get(r);if(!z(s)){if(void 0===s||o||function(e){return\"boolean\"==typeof e.version}(s)){var c=F(n,a,i);if(s)c?(s.sourceFile=c,s.version=c.version,s.fileWatcher||(s.fileWatcher=M(t,n,te,e.PollingInterval.Low,r,\"Source file\"))):(s.fileWatcher&&s.fileWatcher.close(),d.set(r,!1));else if(c){var l=M(t,n,te,e.PollingInterval.Low,r,\"Source file\");d.set(r,{sourceFile:c,version:c.version,fileWatcher:l})}else d.set(r,!1);return c}return s.sourceFile}}function X(e){var n=d.get(e);void 0!==n&&(z(n)?d.set(e,{version:!1}):n.version=!1)}function Y(e){var n=d.get(e);return n&&n.version?n.version:void 0}function Q(n){t.onWatchStatusChange&&t.onWatchStatusChange(e.createCompilerDiagnostic(n),D,E||v)}function Z(){t.setTimeout&&t.clearTimeout&&(s&&t.clearTimeout(s),R(\"Scheduling update\"),s=t.setTimeout($,250))}function $(){switch(s=void 0,Q(e.Diagnostics.File_change_detected_Starting_incremental_compilation),a){case e.ConfigFileProgramReloadLevel.Partial:e.perfLogger.logStartUpdateProgram(\"PartialConfigReload\"),function(){R(\"Reloading new file names and options\");var n=e.getFileNamesFromConfigSpecs(l,e.getDirectoryPath(g),E,A);e.updateErrorForNoInputFiles(n,g,l,u,S)&&(x=!0);b=n.fileNames,K()}();break;case e.ConfigFileProgramReloadLevel.Full:e.perfLogger.logStartUpdateProgram(\"FullConfigReload\"),function(){R(\"Reloading config file: \"+g),a=e.ConfigFileProgramReloadLevel.None,L&&L.clearCache();ee(),p=!0,K(),oe()}();break;default:e.perfLogger.logStartUpdateProgram(\"SynchronizeProgram\"),K()}e.perfLogger.logStopUpdateProgram(\"Done\")}function ee(){ne(e.getParsedCommandLineOfConfigFile(g,v,A))}function ne(n){b=n.fileNames,E=n.options,l=n.configFileSpecs,T=n.projectReferences,u=e.getConfigFileParsingDiagnostics(n).slice(),S=e.canJsonReportNoInutFiles(n.raw),x=!0}function te(n,t,r){re(n,r,t),t===e.FileWatcherEventKind.Deleted&&d.has(r)&&G.invalidateResolutionOfFile(r),G.removeResolutionsFromProjectReferenceRedirects(r),X(r),Z()}function re(e,n,t){L&&L.addOrDeleteFile(e,n,t)}function ae(n){return M(t,n,ie,e.PollingInterval.Medium,n,\"Missing file\")}function ie(n,t,r){re(n,r,t),t===e.FileWatcherEventKind.Created&&i.has(r)&&(i.get(r).close(),i.delete(r),X(r),Z())}function oe(){l?e.updateWatchingWildcardDirectories(o||(o=e.createMap()),e.createMapFromTemplate(l.wildcardDirectories),se):o&&e.clearMap(o,e.closeFileWatcherOf)}function se(n,r){return O(t,n,(function(t){e.Debug.assert(!!g);var r=W(t);L&&L.addOrDeleteFileOrDirectory(t,r),X(r),e.isPathIgnored(r)||(r===n||!e.hasExtension(r)||e.isSupportedSourceFileName(t,E)?a!==e.ConfigFileProgramReloadLevel.Full&&(a=e.ConfigFileProgramReloadLevel.Partial,Z()):R(\"Project: \"+g+\" Detected file add/remove of non supported extension: \"+t))}),r,\"Wild card directory\")}}}(ts||(ts={})),function(e){!function(e){e[e.Unbuildable=0]=\"Unbuildable\",e[e.UpToDate=1]=\"UpToDate\",e[e.UpToDateWithUpstreamTypes=2]=\"UpToDateWithUpstreamTypes\",e[e.OutOfDateWithPrepend=3]=\"OutOfDateWithPrepend\",e[e.OutputMissing=4]=\"OutputMissing\",e[e.OutOfDateWithSelf=5]=\"OutOfDateWithSelf\",e[e.OutOfDateWithUpstream=6]=\"OutOfDateWithUpstream\",e[e.UpstreamOutOfDate=7]=\"UpstreamOutOfDate\",e[e.UpstreamBlocked=8]=\"UpstreamBlocked\",e[e.ComputingUpstream=9]=\"ComputingUpstream\",e[e.TsVersionOutputOfDate=10]=\"TsVersionOutputOfDate\",e[e.ContainerOnly=11]=\"ContainerOnly\"}(e.UpToDateStatusType||(e.UpToDateStatusType={})),e.resolveConfigFileProjectName=function(n){return e.fileExtensionIs(n,\".json\")?n:e.combinePaths(n,\"tsconfig.json\")}}(ts||(ts={})),function(e){var n,t,r=new Date(-864e13),a=new Date(864e13);function i(){return e.createMap()}function o(n,t){return function(e,n,t){var r,a=e.get(n);return a||(r=t(),e.set(n,r)),a||r}(n,t,e.createMap)}function s(e,n){return n>e?n:e}function c(n){return e.fileExtensionIs(n,\".d.ts\")}function l(e){return!!e&&!!e.buildOrder}function u(e){return l(e)?e.buildOrder:e}function d(n,t){return function(r){var a=t?\"[\"+e.formatColorAndReset(e.getLocaleTimeString(n),e.ForegroundColorEscapeSequences.Grey)+\"] \":e.getLocaleTimeString(n)+\" - \";a+=\"\"+e.flattenDiagnosticMessageText(r.messageText,n.newLine)+(n.newLine+n.newLine),n.write(a)}}function p(n,t,r,a){var i=e.createProgramHost(n,t);return i.getModifiedTime=n.getModifiedTime?function(e){return n.getModifiedTime(e)}:e.returnUndefined,i.setModifiedTime=n.setModifiedTime?function(e,t){return n.setModifiedTime(e,t)}:e.noop,i.deleteFile=n.deleteFile?function(e){return n.deleteFile(e)}:e.noop,i.reportDiagnostic=r||e.createDiagnosticReporter(n),i.reportSolutionBuilderStatus=a||d(n),i}function m(n,t,r,a){var o,s,c=t,l=t,u=c.getCurrentDirectory(),d=e.createGetCanonicalFileName(c.useCaseSensitiveFileNames()),p=(o=a,s={},e.commonOptionsWithBuild.forEach((function(n){e.hasProperty(o,n.name)&&(s[n.name]=o[n.name])})),s),m=e.createCompilerHostFromProgramHost(c,(function(){return S.projectCompilerOptions}));e.setGetSourceFileAsHashVersioned(m,c),m.getParsedCommandLine=function(e){return y(S,e,_(S,e))},m.resolveModuleNames=e.maybeBind(c,c.resolveModuleNames),m.resolveTypeReferenceDirectives=e.maybeBind(c,c.resolveTypeReferenceDirectives);var f=m.resolveModuleNames?void 0:e.createModuleResolutionCache(u,d);if(!m.resolveModuleNames){var g=function(n,t,r){return e.resolveModuleName(n,t,S.projectCompilerOptions,m,f,r).resolvedModule};m.resolveModuleNames=function(n,t,r,a){return e.loadWithLocalCache(e.Debug.assertEachDefined(n),t,a,g)}}var v=e.createWatchFactory(l,a),h=v.watchFile,b=v.watchFilePath,E=v.watchDirectory,T=v.writeLog,S={host:c,hostWithWatch:l,currentDirectory:u,getCanonicalFileName:d,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(c),writeFileName:c.trace?function(e){return c.trace(e)}:void 0,options:a,baseCompilerOptions:p,rootNames:r,resolvedConfigFilePaths:e.createMap(),configFileCache:i(),projectStatus:i(),buildInfoChecked:i(),extendedConfigCache:e.createMap(),builderPrograms:i(),diagnostics:i(),projectPendingBuild:i(),projectErrorsReported:i(),compilerHost:m,moduleResolutionCache:f,buildOrder:void 0,readFileWithCache:function(e){return c.readFile(e)},projectCompilerOptions:p,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:n,currentInvalidatedProject:void 0,watch:n,allWatchedWildcardDirectories:i(),allWatchedInputFiles:i(),allWatchedConfigFiles:i(),timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:h,watchFilePath:b,watchDirectory:E,writeLog:T};return S}function f(n,t){return e.toPath(t,n.currentDirectory,n.getCanonicalFileName)}function _(e,n){var t=e.resolvedConfigFilePaths,r=t.get(n);if(void 0!==r)return r;var a=f(e,n);return t.set(n,a),a}function g(e){return!!e.options}function y(n,t,r){var a,i=n.configFileCache,o=i.get(r);if(o)return g(o)?o:void 0;var s,c=n.parseConfigFileHost,l=n.baseCompilerOptions,u=n.extendedConfigCache,d=n.host;return d.getParsedCommandLine?(s=d.getParsedCommandLine(t))||(a=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,t)):(c.onUnRecoverableConfigFileDiagnostic=function(e){return a=e},s=e.getParsedCommandLineOfConfigFile(t,l,c,u),c.onUnRecoverableConfigFileDiagnostic=e.noop),i.set(r,s||a),s}function v(n,t){return e.resolveConfigFileProjectName(e.resolvePath(n.currentDirectory,t))}function h(n,t){for(var r,a,i=e.createMap(),o=e.createMap(),s=[],c=0,l=t;c<l.length;c++){u(l[c])}return a?{buildOrder:r||e.emptyArray,circularDiagnostics:a}:r||e.emptyArray;function u(t,c){var l=_(n,t);if(!o.has(l))if(i.has(l))c||(a||(a=[])).push(e.createCompilerDiagnostic(e.Diagnostics.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0,s.join(\"\\r\\n\")));else{i.set(l,!0),s.push(t);var d=y(n,t,l);if(d&&d.projectReferences)for(var p=0,m=d.projectReferences;p<m.length;p++){var f=m[p];u(v(n,f.path),c||f.circular)}s.pop(),o.set(l,!0),(r||(r=[])).push(t)}}}function b(n){return n.buildOrder||function(n){var t=h(n,n.rootNames.map((function(e){return v(n,e)})));n.resolvedConfigFilePaths.clear();var r=e.arrayToSet(u(t),(function(e){return _(n,e)})),a={onDeleteValue:e.noop};e.mutateMapSkippingNewValues(n.configFileCache,r,a),e.mutateMapSkippingNewValues(n.projectStatus,r,a),e.mutateMapSkippingNewValues(n.buildInfoChecked,r,a),e.mutateMapSkippingNewValues(n.builderPrograms,r,a),e.mutateMapSkippingNewValues(n.diagnostics,r,a),e.mutateMapSkippingNewValues(n.projectPendingBuild,r,a),e.mutateMapSkippingNewValues(n.projectErrorsReported,r,a),n.watch&&(e.mutateMapSkippingNewValues(n.allWatchedConfigFiles,r,{onDeleteValue:e.closeFileWatcher}),e.mutateMapSkippingNewValues(n.allWatchedWildcardDirectories,r,{onDeleteValue:function(n){return n.forEach(e.closeFileWatcherOf)}}),e.mutateMapSkippingNewValues(n.allWatchedInputFiles,r,{onDeleteValue:function(n){return n.forEach(e.closeFileWatcher)}}));return n.buildOrder=t}(n)}function E(n,t,r){var a=t&&v(n,t),i=b(n);if(l(i))return i;if(a){var o=_(n,a);if(-1===e.findIndex(i,(function(e){return _(n,e)===o})))return}var s=a?h(n,[a]):i;return e.Debug.assert(!l(s)),e.Debug.assert(!r||void 0!==a),e.Debug.assert(!r||s[s.length-1]===a),r?s.slice(0,s.length-1):s}function T(n){n.cache&&S(n);var t=n.compilerHost,r=n.host,a=n.readFileWithCache,i=t.getSourceFile,o=e.changeCompilerHostLikeToUseCache(r,(function(e){return f(n,e)}),(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i.call.apply(i,__spreadArrays([t],e))})),s=o.originalReadFile,c=o.originalFileExists,l=o.originalDirectoryExists,u=o.originalCreateDirectory,d=o.originalWriteFile,p=o.getSourceFileWithCache,m=o.readFileWithCache;n.readFileWithCache=m,t.getSourceFile=p,n.cache={originalReadFile:s,originalFileExists:c,originalDirectoryExists:l,originalCreateDirectory:u,originalWriteFile:d,originalReadFileWithCache:a,originalGetSourceFile:i}}function S(e){if(e.cache){var n=e.cache,t=e.host,r=e.compilerHost,a=e.extendedConfigCache,i=e.moduleResolutionCache;t.readFile=n.originalReadFile,t.fileExists=n.originalFileExists,t.directoryExists=n.originalDirectoryExists,t.createDirectory=n.originalCreateDirectory,t.writeFile=n.originalWriteFile,r.getSourceFile=n.originalGetSourceFile,e.readFileWithCache=n.originalReadFileWithCache,a.clear(),i&&(i.directoryToModuleNameMap.clear(),i.moduleNameToDirectoryMap.clear()),e.cache=void 0}}function x(e,n){e.projectStatus.delete(n),e.diagnostics.delete(n)}function L(e,n,t){var r=e.projectPendingBuild,a=r.get(n);void 0===a?r.set(n,t):a<t&&r.set(n,t)}function C(n,t){n.allProjectBuildPending&&(n.allProjectBuildPending=!1,n.options.watch&&$(n,e.Diagnostics.Starting_compilation_in_watch_mode),T(n),u(b(n)).forEach((function(t){return n.projectPendingBuild.set(_(n,t),e.ConfigFileProgramReloadLevel.None)})),t&&t.throwIfCancellationRequested())}function A(n,t){return n.projectPendingBuild.delete(t),n.currentInvalidatedProject=void 0,n.diagnostics.has(t)?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:e.ExitStatus.Success}function D(e,n,r,a,i){var o=!0;return{kind:t.UpdateOutputFileStamps,project:n,projectPath:r,buildOrder:i,getCompilerOptions:function(){return a.options},getCurrentDirectory:function(){return e.currentDirectory},updateOutputFileStatmps:function(){G(e,a,r),o=!1},done:function(){return o&&G(e,a,r),A(e,r)}}}function k(i,o,l,u,d,p,m){var g;!function(e){e[e.CreateProgram=0]=\"CreateProgram\",e[e.SyntaxDiagnostics=1]=\"SyntaxDiagnostics\",e[e.SemanticDiagnostics=2]=\"SemanticDiagnostics\",e[e.Emit=3]=\"Emit\",e[e.EmitBundle=4]=\"EmitBundle\",e[e.BuildInvalidatedProjectOfBundle=5]=\"BuildInvalidatedProjectOfBundle\",e[e.QueueReferencingProjects=6]=\"QueueReferencingProjects\",e[e.Done=7]=\"Done\"}(g||(g={}));var h,b,E,T=i===t.Build?g.CreateProgram:g.EmitBundle;return i===t.Build?{kind:i,project:l,projectPath:u,buildOrder:m,getCompilerOptions:function(){return p.options},getCurrentDirectory:function(){return o.currentDirectory},getBuilderProgram:function(){return x(e.identity)},getProgram:function(){return x((function(e){return e.getProgramOrUndefined()}))},getSourceFile:function(e){return x((function(n){return n.getSourceFile(e)}))},getSourceFiles:function(){return L((function(e){return e.getSourceFiles()}))},getOptionsDiagnostics:function(e){return L((function(n){return n.getOptionsDiagnostics(e)}))},getGlobalDiagnostics:function(e){return L((function(n){return n.getGlobalDiagnostics(e)}))},getConfigFileParsingDiagnostics:function(){return L((function(e){return e.getConfigFileParsingDiagnostics()}))},getSyntacticDiagnostics:function(e,n){return L((function(t){return t.getSyntacticDiagnostics(e,n)}))},getAllDependencies:function(e){return L((function(n){return n.getAllDependencies(e)}))},getSemanticDiagnostics:function(e,n){return L((function(t){return t.getSemanticDiagnostics(e,n)}))},getSemanticDiagnosticsOfNextAffectedFile:function(e,n){return x((function(t){return t.getSemanticDiagnosticsOfNextAffectedFile&&t.getSemanticDiagnosticsOfNextAffectedFile(e,n)}))},emit:function(e,n,t,r,a){return e||r?x((function(i){return i.emit(e,n,t,r,a)})):(V(g.SemanticDiagnostics,t),T===g.Emit?P(n,t,a):void 0)},done:S}:{kind:i,project:l,projectPath:u,buildOrder:m,getCompilerOptions:function(){return p.options},getCurrentDirectory:function(){return o.currentDirectory},emit:function(e,n){return T!==g.EmitBundle?E:G(e,n)},done:S};function S(e,n,t){return V(g.Done,e,n,t),A(o,u)}function x(e){return V(g.CreateProgram),h&&e(h)}function L(n){return x(n)||e.emptyArray}function C(){if(e.Debug.assert(void 0===h),o.options.dry)return Z(o,e.Diagnostics.A_non_dry_build_would_build_project_0,l),b=n.Success,void(T=g.QueueReferencingProjects);if(o.options.verbose&&Z(o,e.Diagnostics.Building_project_0,l),0===p.fileNames.length)return ne(o,u,p.errors),b=n.None,void(T=g.QueueReferencingProjects);var t=o.host,r=o.compilerHost;o.projectCompilerOptions=p.options,function(n,t,r){if(!n.moduleResolutionCache)return;var a=n.moduleResolutionCache,i=f(n,t);if(0===a.directoryToModuleNameMap.redirectsMap.size)e.Debug.assert(0===a.moduleNameToDirectoryMap.redirectsMap.size),a.directoryToModuleNameMap.redirectsMap.set(i,a.directoryToModuleNameMap.ownMap),a.moduleNameToDirectoryMap.redirectsMap.set(i,a.moduleNameToDirectoryMap.ownMap);else{e.Debug.assert(a.moduleNameToDirectoryMap.redirectsMap.size>0);var o={sourceFile:r.options.configFile,commandLine:r};a.directoryToModuleNameMap.setOwnMap(a.directoryToModuleNameMap.getOrCreateMapOfCacheRedirects(o)),a.moduleNameToDirectoryMap.setOwnMap(a.moduleNameToDirectoryMap.getOrCreateMapOfCacheRedirects(o))}a.directoryToModuleNameMap.setOwnOptions(r.options),a.moduleNameToDirectoryMap.setOwnOptions(r.options)}(o,l,p),h=t.createProgram(p.fileNames,p.options,r,function(n,t,r){var a=n.options,i=n.builderPrograms,o=n.compilerHost;if(a.force)return;var s=i.get(t);return s||e.readBuilderProgram(r.options,o)}(o,u,p),p.errors,p.projectReferences),T++}function D(e,n,t){e.length?(b=R(o,u,h,e,n,t),T=g.QueueReferencingProjects):T++}function N(t){e.Debug.assertDefined(h),D(__spreadArrays(h.getConfigFileParsingDiagnostics(),h.getOptionsDiagnostics(t),h.getGlobalDiagnostics(t),h.getSyntacticDiagnostics(void 0,t)),n.SyntaxErrors,\"Syntactic\")}function I(t){D(e.Debug.assertDefined(h).getSemanticDiagnostics(void 0,t),n.TypeErrors,\"Semantic\")}function P(t,a,i){var l;e.Debug.assertDefined(h),e.Debug.assert(T===g.Emit),h.backupState();var d=[],m=e.emitFilesAndReportErrors(h,(function(e){return(l||(l=[])).push(e)}),void 0,void 0,(function(e,n,t){return d.push({name:e,text:n,writeByteOrderMark:t})}),a,!1,i).emitResult;if(l)return h.restoreState(),b=R(o,u,h,l,n.DeclarationEmitErrors,\"Declaration file\"),T=g.QueueReferencingProjects,{emitSkipped:!0,diagnostics:m.diagnostics};var _=o.host,y=o.compilerHost,v=n.DeclarationOutputUnchanged,E=r,S=!1,x=e.createDiagnosticCollection(),L=e.createMap();return d.forEach((function(r){var a,i=r.name,l=r.text,u=r.writeByteOrderMark;!S&&c(i)&&(_.fileExists(i)&&o.readFileWithCache(i)===l?a=_.getModifiedTime(i):(v&=~n.DeclarationOutputUnchanged,S=!0)),L.set(f(o,i),i),e.writeFile(t?{writeFile:t}:y,x,i,l,u),void 0!==a&&(E=s(a,E))})),w(x,L,E,S,d.length?d[0].name:e.getFirstProjectOutput(p,!_.useCaseSensitiveFileNames()),v),m}function w(t,r,i,s,c,l){var d=t.getDiagnostics();if(d.length)return b=R(o,u,h,d,n.EmitErrors,\"Emit\"),T=g.QueueReferencingProjects,d;o.writeFileName&&(r.forEach((function(e){return M(o,p,e)})),h&&e.listFiles(h,o.writeFileName));var m=F(o,p,i,e.Diagnostics.Updating_unchanged_output_timestamps_of_project_0,r);return o.diagnostics.delete(u),o.projectStatus.set(u,{type:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:s?a:m,oldestOutputFileName:c}),h&&O(o,u,h),o.projectCompilerOptions=o.baseCompilerOptions,T=g.QueueReferencingProjects,b=l,d}function G(a,s){if(e.Debug.assert(i===t.UpdateBundle),o.options.dry)return Z(o,e.Diagnostics.A_non_dry_build_would_update_output_of_project_0,l),b=n.Success,void(T=g.QueueReferencingProjects);o.options.verbose&&Z(o,e.Diagnostics.Updating_output_of_project_0,l);var c=o.compilerHost;o.projectCompilerOptions=p.options;var h=e.emitUsingBuildInfo(p,c,(function(e){var n=v(o,e.path);return y(o,n,_(o,n))}),s);if(e.isString(h))return Z(o,e.Diagnostics.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1,l,Q(o,h)),T=g.BuildInvalidatedProjectOfBundle,E=k(t.Build,o,l,u,d,p,m);e.Debug.assert(!!h.length);var S=e.createDiagnosticCollection(),x=e.createMap();return h.forEach((function(n){var t=n.name,r=n.text,i=n.writeByteOrderMark;x.set(f(o,t),t),e.writeFile(a?{writeFile:a}:c,S,t,r,i)})),{emitSkipped:!1,diagnostics:w(S,x,r,!1,h[0].name,n.DeclarationOutputUnchanged)}}function V(n,t,r,a){for(;T<=n&&T<g.Done;){var i=T;switch(T){case g.CreateProgram:C();break;case g.SyntaxDiagnostics:N(t);break;case g.SemanticDiagnostics:I(t);break;case g.Emit:P(r,t,a);break;case g.EmitBundle:G(r,a);break;case g.BuildInvalidatedProjectOfBundle:e.Debug.assertDefined(E).done(t),T=g.Done;break;case g.QueueReferencingProjects:B(o,l,u,d,p,m,e.Debug.assertDefined(b)),T++;break;case g.Done:default:e.assertType(T)}e.Debug.assert(T>i)}}}function N(n,t,r){var a=n.options;return!(t.type===e.UpToDateStatusType.OutOfDateWithPrepend&&!a.force)||(0===r.fileNames.length||!!r.errors.length||!e.isIncrementalCompilation(r.options))}function I(n,r,a){if(n.projectPendingBuild.size&&!l(r)){if(n.currentInvalidatedProject)return e.arrayIsEqualTo(n.currentInvalidatedProject.buildOrder,r)?n.currentInvalidatedProject:void 0;for(var i=n.options,o=n.projectPendingBuild,s=0;s<r.length;s++){var c=r[s],u=_(n,c),d=n.projectPendingBuild.get(u);if(void 0!==d){a&&(a=!1,ae(n,r));var p=y(n,c,u);if(p){if(d===e.ConfigFileProgramReloadLevel.Full)z(n,c,u),J(n,c,u,p),X(n,c,u,p);else if(d===e.ConfigFileProgramReloadLevel.Partial){var m=e.getFileNamesFromConfigSpecs(p.configFileSpecs,e.getDirectoryPath(c),p.options,n.parseConfigFileHost);e.updateErrorForNoInputFiles(m,c,p.configFileSpecs,p.errors,e.canJsonReportNoInutFiles(p.raw)),p.fileNames=m.fileNames,X(n,c,u,p)}var f=w(n,p,u);if(ie(n,c,f),!i.force){if(f.type===e.UpToDateStatusType.UpToDate){ne(n,u,p.errors),o.delete(u),i.dry&&Z(n,e.Diagnostics.Project_0_is_up_to_date,c);continue}if(f.type===e.UpToDateStatusType.UpToDateWithUpstreamTypes)return ne(n,u,p.errors),D(n,c,u,p,r)}if(f.type!==e.UpToDateStatusType.UpstreamBlocked){if(f.type!==e.UpToDateStatusType.ContainerOnly)return k(N(n,f,p)?t.Build:t.UpdateBundle,n,c,u,s,p,r);ne(n,u,p.errors),o.delete(u)}else ne(n,u,p.errors),o.delete(u),i.verbose&&Z(n,f.upstreamProjectBlocked?e.Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_was_not_built:e.Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors,c,f.upstreamProjectName)}else te(n,u),o.delete(u)}}}}function M(e,n,t){var r=e.writeFileName;r&&n.options.listEmittedFiles&&r(\"TSFILE: \"+t)}function O(e,n,t){var r=e.host,a=e.watch,i=e.builderPrograms;r.afterProgramEmitAndDiagnostics&&r.afterProgramEmitAndDiagnostics(t),a&&(t.releaseProgram(),i.set(n,t))}function R(n,t,r,a,i,o){return ne(n,t,a),r&&n.writeFileName&&e.listFiles(r,n.writeFileName),n.projectStatus.set(t,{type:e.UpToDateStatusType.Unbuildable,reason:o+\" errors\"}),r&&O(n,t,r),n.projectCompilerOptions=n.baseCompilerOptions,i}function P(n,t,r,a){if(r<(n.host.getModifiedTime(t)||e.missingFileModifiedTime))return{type:e.UpToDateStatusType.OutOfDateWithSelf,outOfDateOutputFileName:a,newerInputFileName:t}}function w(n,t,i){if(void 0===t)return{type:e.UpToDateStatusType.Unbuildable,reason:\"File deleted mid-build\"};var o=n.projectStatus.get(i);if(void 0!==o)return o;var l=function(n,t,i){for(var o=void 0,l=r,u=n.host,d=0,p=t.fileNames;d<p.length;d++){var m=p[d];if(!u.fileExists(m))return{type:e.UpToDateStatusType.Unbuildable,reason:m+\" does not exist\"};var f=u.getModifiedTime(m)||e.missingFileModifiedTime;f>l&&(o=m,l=f)}if(!t.fileNames.length&&!e.canJsonReportNoInutFiles(t.raw))return{type:e.UpToDateStatusType.ContainerOnly};for(var g,v=e.getAllProjectOutputs(t,!u.useCaseSensitiveFileNames()),h=\"(none)\",b=a,E=\"(none)\",T=r,S=r,x=!1,L=0,C=v;L<C.length;L++){var A=C[L];if(!u.fileExists(A)){g=A;break}var D=u.getModifiedTime(A)||e.missingFileModifiedTime;if(D<b&&(b=D,h=A),D<l){x=!0;break}if(D>T&&(T=D,E=A),c(A))S=s(S,u.getModifiedTime(A)||e.missingFileModifiedTime)}var k,N=!1,I=!1;if(t.projectReferences){n.projectStatus.set(i,{type:e.UpToDateStatusType.ComputingUpstream});for(var M=0,O=t.projectReferences;M<O.length;M++){var R=O[M];I=I||!!R.prepend;var F=e.resolveProjectReferencePath(R),G=_(n,F),B=w(n,y(n,F,G),G);if(B.type!==e.UpToDateStatusType.ComputingUpstream&&B.type!==e.UpToDateStatusType.ContainerOnly){if(B.type===e.UpToDateStatusType.Unbuildable||B.type===e.UpToDateStatusType.UpstreamBlocked)return{type:e.UpToDateStatusType.UpstreamBlocked,upstreamProjectName:R.path,upstreamProjectBlocked:B.type===e.UpToDateStatusType.UpstreamBlocked};if(B.type!==e.UpToDateStatusType.UpToDate)return{type:e.UpToDateStatusType.UpstreamOutOfDate,upstreamProjectName:R.path};if(!g){if(B.newestInputFileTime&&B.newestInputFileTime<=b)continue;if(B.newestDeclarationFileContentChangedTime&&B.newestDeclarationFileContentChangedTime<=b){N=!0,k=R.path;continue}return e.Debug.assert(void 0!==h,\"Should have an oldest output filename here\"),{type:e.UpToDateStatusType.OutOfDateWithUpstream,outOfDateOutputFileName:h,newerProjectName:R.path}}}}}if(void 0!==g)return{type:e.UpToDateStatusType.OutputMissing,missingOutputFileName:g};if(x)return{type:e.UpToDateStatusType.OutOfDateWithSelf,outOfDateOutputFileName:h,newerInputFileName:o};var V=P(n,t.options.configFilePath,b,h);if(V)return V;var U=e.forEach(t.options.configFile.extendedSourceFiles||e.emptyArray,(function(e){return P(n,e,b,h)}));if(U)return U;if(!n.buildInfoChecked.has(i)){n.buildInfoChecked.set(i,!0);var j=e.getTsBuildInfoEmitOutputFilePath(t.options);if(j){var K=n.readFileWithCache(j),H=K&&e.getBuildInfo(K);if(H&&(H.bundle||H.program)&&H.version!==e.version)return{type:e.UpToDateStatusType.TsVersionOutputOfDate,version:H.version}}}return I&&N?{type:e.UpToDateStatusType.OutOfDateWithPrepend,outOfDateOutputFileName:h,newerProjectName:k}:{type:N?e.UpToDateStatusType.UpToDateWithUpstreamTypes:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:S,newestInputFileTime:l,newestOutputFileTime:T,newestInputFileName:o,newestOutputFileName:E,oldestOutputFileName:h}}(n,t,i);return n.projectStatus.set(i,l),l}function F(n,t,r,a,i){var o=n.host,l=e.getAllProjectOutputs(t,!o.useCaseSensitiveFileNames());if(!i||l.length!==i.size)for(var u=!!n.options.verbose,d=o.now?o.now():new Date,p=0,m=l;p<m.length;p++){var _=m[p];i&&i.has(f(n,_))||(u&&(u=!1,Z(n,a,t.options.configFilePath)),c(_)&&(r=s(r,o.getModifiedTime(_)||e.missingFileModifiedTime)),o.setModifiedTime(_,d),M(n,t,_))}return r}function G(n,t,a){if(n.options.dry)return Z(n,e.Diagnostics.A_non_dry_build_would_update_timestamps_for_output_of_project_0,t.options.configFilePath);var i=F(n,t,r,e.Diagnostics.Updating_output_timestamps_of_project_0);n.projectStatus.set(a,{type:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:i,oldestOutputFileName:e.getFirstProjectOutput(t,!n.host.useCaseSensitiveFileNames())})}function B(t,r,a,i,o,s,c){if(!(c&n.AnyErrors)&&o.options.composite)for(var l=i+1;l<s.length;l++){var u=s[l],d=_(t,u);if(!t.projectPendingBuild.has(d)){var p=y(t,u,d);if(p&&p.projectReferences)for(var m=0,f=p.projectReferences;m<f.length;m++){var g=f[m];if(_(t,v(t,g.path))===a){var h=t.projectStatus.get(d);if(h)switch(h.type){case e.UpToDateStatusType.UpToDate:if(c&n.DeclarationOutputUnchanged){g.prepend?t.projectStatus.set(d,{type:e.UpToDateStatusType.OutOfDateWithPrepend,outOfDateOutputFileName:h.oldestOutputFileName,newerProjectName:r}):h.type=e.UpToDateStatusType.UpToDateWithUpstreamTypes;break}case e.UpToDateStatusType.UpToDateWithUpstreamTypes:case e.UpToDateStatusType.OutOfDateWithPrepend:c&n.DeclarationOutputUnchanged||t.projectStatus.set(d,{type:e.UpToDateStatusType.OutOfDateWithUpstream,outOfDateOutputFileName:h.type===e.UpToDateStatusType.OutOfDateWithPrepend?h.outOfDateOutputFileName:h.oldestOutputFileName,newerProjectName:r});break;case e.UpToDateStatusType.UpstreamBlocked:_(t,v(t,h.upstreamProjectName))===a&&x(t,d)}L(t,d,e.ConfigFileProgramReloadLevel.None);break}}}}}function V(n,t,r,a){var i=E(n,t,a);if(!i)return e.ExitStatus.InvalidProject_OutputsSkipped;C(n,r);for(var o=!0,s=0;;){var c=I(n,i,o);if(!c)break;o=!1,c.done(r),n.diagnostics.has(c.projectPath)||s++}return S(n),re(n,i),function(e,n){if(!e.watchAllProjectsPending)return;e.watchAllProjectsPending=!1;for(var t=0,r=u(n);t<r.length;t++){var a=r[t],i=_(e,a);z(e,a,i);var o=y(e,a,i);o&&(J(e,a,i,o),X(e,a,i,o))}}(n,i),l(i)?e.ExitStatus.ProjectReferenceCycle_OutputsSkipped:i.some((function(e){return n.diagnostics.has(_(n,e))}))?s?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.DiagnosticsPresent_OutputsSkipped:e.ExitStatus.Success}function U(n,t,r){var a=E(n,t,r);if(!a)return e.ExitStatus.InvalidProject_OutputsSkipped;if(l(a))return ee(n,a.circularDiagnostics),e.ExitStatus.ProjectReferenceCycle_OutputsSkipped;for(var i=n.options,o=n.host,s=i.dry?[]:void 0,c=0,u=a;c<u.length;c++){var d=u[c],p=_(n,d),m=y(n,d,p);if(void 0!==m)for(var f=0,g=e.getAllProjectOutputs(m,!o.useCaseSensitiveFileNames());f<g.length;f++){var v=g[f];o.fileExists(v)&&(s?s.push(v):(o.deleteFile(v),j(n,p,e.ConfigFileProgramReloadLevel.None)))}else te(n,p)}return s&&Z(n,e.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0,s.map((function(e){return\"\\r\\n * \"+e})).join(\"\")),e.ExitStatus.Success}function j(n,t,r){n.host.getParsedCommandLine&&r===e.ConfigFileProgramReloadLevel.Partial&&(r=e.ConfigFileProgramReloadLevel.Full),r===e.ConfigFileProgramReloadLevel.Full&&(n.configFileCache.delete(t),n.buildOrder=void 0),n.needsSummary=!0,x(n,t),L(n,t,r),T(n)}function K(e,n,t){e.reportFileChangeDetected=!0,j(e,n,t),H(e)}function H(e){var n=e.hostWithWatch;n.setTimeout&&n.clearTimeout&&(e.timerToBuildInvalidatedProject&&n.clearTimeout(e.timerToBuildInvalidatedProject),e.timerToBuildInvalidatedProject=n.setTimeout(W,250,e))}function W(n){n.timerToBuildInvalidatedProject=void 0,n.reportFileChangeDetected&&(n.reportFileChangeDetected=!1,n.projectErrorsReported.clear(),$(n,e.Diagnostics.File_change_detected_Starting_incremental_compilation));var t=b(n),r=I(n,t,!1);r&&(r.done(),n.projectPendingBuild.size)?n.watch&&!n.timerToBuildInvalidatedProject&&H(n):(S(n),re(n,t))}function z(n,t,r){n.watch&&!n.allWatchedConfigFiles.has(r)&&n.allWatchedConfigFiles.set(r,n.watchFile(n.hostWithWatch,t,(function(){K(n,r,e.ConfigFileProgramReloadLevel.Full)}),e.PollingInterval.High,\"Config file\",t))}function q(n,t,r){return 0===e.comparePaths(t,r,n.currentDirectory,!n.host.useCaseSensitiveFileNames())}function J(n,t,r,a){n.watch&&e.updateWatchingWildcardDirectories(o(n.allWatchedWildcardDirectories,r),e.createMapFromTemplate(a.configFileSpecs.wildcardDirectories),(function(i,o){return n.watchDirectory(n.hostWithWatch,i,(function(o){var s=f(n,o);s===f(n,i)||!e.hasExtension(s)||e.isSupportedSourceFileName(o,a.options)?!function(n,t,r){if(r.options.noEmit)return!1;if(!e.fileExtensionIs(t,\".d.ts\")&&(e.fileExtensionIs(t,\".ts\")||e.fileExtensionIs(t,\".tsx\")))return!1;var a=r.options.outFile||r.options.out;return!(!a||!q(n,t,a)&&!q(n,t,e.removeFileExtension(a)+\".d.ts\"))||(!(!r.options.declarationDir||!e.containsPath(r.options.declarationDir,t,n.currentDirectory,!n.host.useCaseSensitiveFileNames()))||(!(!r.options.outDir||!e.containsPath(r.options.outDir,t,n.currentDirectory,!n.host.useCaseSensitiveFileNames()))||!e.forEach(r.fileNames,(function(e){return q(n,t,e)}))))}(n,o,a)?K(n,r,e.ConfigFileProgramReloadLevel.Partial):n.writeLog(o+\" is output file\"):n.writeLog(\"Project: \"+t+\" Detected file add/remove of non supported extension: \"+o)}),o,\"Wild card directory\",t)}))}function X(n,t,r,a){n.watch&&e.mutateMap(o(n.allWatchedInputFiles,r),e.arrayToMap(a.fileNames,(function(e){return f(n,e)})),{createNewValue:function(a,i){return n.watchFilePath(n.hostWithWatch,i,(function(){return K(n,r,e.ConfigFileProgramReloadLevel.None)}),e.PollingInterval.Low,a,\"Source file\",t)},onDeleteValue:e.closeFileWatcher})}function Y(n,t,r,a){var i=m(n,t,r,a);return{build:function(e,n){return V(i,e,n)},clean:function(e){return U(i,e)},buildReferences:function(e,n){return V(i,e,n,!0)},cleanReferences:function(e){return U(i,e,!0)},getNextInvalidatedProject:function(e){return C(i,e),I(i,b(i),!1)},getBuildOrder:function(){return b(i)},getUpToDateStatusOfProject:function(e){var n=v(i,e),t=_(i,n);return w(i,y(i,n,t),t)},invalidateProject:function(n,t){return j(i,n,t||e.ConfigFileProgramReloadLevel.None)},buildNextInvalidatedProject:function(){return W(i)},getAllParsedConfigs:function(){return e.arrayFrom(e.mapDefinedIterator(i.configFileCache.values(),(function(e){return g(e)?e:void 0})))}}}function Q(n,t){return e.convertToRelativePath(t,n.currentDirectory,(function(e){return n.getCanonicalFileName(e)}))}function Z(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];n.host.reportSolutionBuilderStatus(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r)))}function $(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];n.hostWithWatch.onWatchStatusChange&&n.hostWithWatch.onWatchStatusChange(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r)),n.host.getNewLine(),n.baseCompilerOptions)}function ee(e,n){var t=e.host;n.forEach((function(e){return t.reportDiagnostic(e)}))}function ne(e,n,t){ee(e,t),e.projectErrorsReported.set(n,!0),t.length&&e.diagnostics.set(n,t)}function te(e,n){ne(e,n,[e.configFileCache.get(n)])}function re(n,t){if(n.needsSummary){n.needsSummary=!1;var r=n.watch||!!n.host.reportErrorSummary,a=n.diagnostics,i=0;l(t)?(ae(n,t.buildOrder),ee(n,t.circularDiagnostics),r&&(i+=e.getErrorCountForSummary(t.circularDiagnostics))):(t.forEach((function(t){var r=_(n,t);n.projectErrorsReported.has(r)||ee(n,a.get(r)||e.emptyArray)})),r&&a.forEach((function(n){return i+=e.getErrorCountForSummary(n)}))),n.watch?$(n,e.getWatchErrorSummaryDiagnosticMessage(i),i):n.host.reportErrorSummary&&n.host.reportErrorSummary(i)}}function ae(n,t){n.options.verbose&&Z(n,e.Diagnostics.Projects_in_this_build_Colon_0,t.map((function(e){return\"\\r\\n    * \"+Q(n,e)})).join(\"\"))}function ie(n,t,r){n.options.verbose&&function(n,t,r){switch(r.type){case e.UpToDateStatusType.OutOfDateWithSelf:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2,Q(n,t),Q(n,r.outOfDateOutputFileName),Q(n,r.newerInputFileName));case e.UpToDateStatusType.OutOfDateWithUpstream:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2,Q(n,t),Q(n,r.outOfDateOutputFileName),Q(n,r.newerProjectName));case e.UpToDateStatusType.OutputMissing:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist,Q(n,t),Q(n,r.missingOutputFileName));case e.UpToDateStatusType.UpToDate:if(void 0!==r.newestInputFileTime)return Z(n,e.Diagnostics.Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2,Q(n,t),Q(n,r.newestInputFileName||\"\"),Q(n,r.oldestOutputFileName||\"\"));break;case e.UpToDateStatusType.OutOfDateWithPrepend:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed,Q(n,t),Q(n,r.newerProjectName));case e.UpToDateStatusType.UpToDateWithUpstreamTypes:return Z(n,e.Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,Q(n,t));case e.UpToDateStatusType.UpstreamOutOfDate:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,Q(n,t),Q(n,r.upstreamProjectName));case e.UpToDateStatusType.UpstreamBlocked:return Z(n,r.upstreamProjectBlocked?e.Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_was_not_built:e.Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_has_errors,Q(n,t),Q(n,r.upstreamProjectName));case e.UpToDateStatusType.Unbuildable:return Z(n,e.Diagnostics.Failed_to_parse_file_0_Colon_1,Q(n,t),r.reason);case e.UpToDateStatusType.TsVersionOutputOfDate:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,Q(n,t),r.version,e.version);case e.UpToDateStatusType.ContainerOnly:case e.UpToDateStatusType.ComputingUpstream:break;default:e.assertType(r)}}(n,t,r)}!function(e){e[e.None=0]=\"None\",e[e.Success=1]=\"Success\",e[e.DeclarationOutputUnchanged=2]=\"DeclarationOutputUnchanged\",e[e.ConfigFileErrors=4]=\"ConfigFileErrors\",e[e.SyntaxErrors=8]=\"SyntaxErrors\",e[e.TypeErrors=16]=\"TypeErrors\",e[e.DeclarationEmitErrors=32]=\"DeclarationEmitErrors\",e[e.EmitErrors=64]=\"EmitErrors\",e[e.AnyErrors=124]=\"AnyErrors\"}(n||(n={})),e.isCircularBuildOrder=l,e.getBuildOrderFromAnyBuildOrder=u,e.createBuilderStatusReporter=d,e.createSolutionBuilderHost=function(n,t,r,a,i){void 0===n&&(n=e.sys);var o=p(n,t,r,a);return o.reportErrorSummary=i,o},e.createSolutionBuilderWithWatchHost=function(n,t,r,a,i){void 0===n&&(n=e.sys);var o=p(n,t,r,a),s=e.createWatchHost(n,i);return e.copyProperties(o,s),o},e.createSolutionBuilder=function(e,n,t){return Y(!1,e,n,t)},e.createSolutionBuilderWithWatch=function(e,n,t){return Y(!0,e,n,t)},function(e){e[e.Build=0]=\"Build\",e[e.UpdateBundle=1]=\"UpdateBundle\",e[e.UpdateOutputFileStamps=2]=\"UpdateOutputFileStamps\"}(t=e.InvalidatedProjectKind||(e.InvalidatedProjectKind={}))}(ts||(ts={})),function(e){!function(n){n.ActionSet=\"action::set\",n.ActionInvalidate=\"action::invalidate\",n.ActionPackageInstalled=\"action::packageInstalled\",n.EventTypesRegistry=\"event::typesRegistry\",n.EventBeginInstallTypes=\"event::beginInstallTypes\",n.EventEndInstallTypes=\"event::endInstallTypes\",n.EventInitializationFailed=\"event::initializationFailed\",function(e){e.GlobalCacheLocation=\"--globalTypingsCacheLocation\",e.LogFile=\"--logFile\",e.EnableTelemetry=\"--enableTelemetry\",e.TypingSafeListLocation=\"--typingSafeListLocation\",e.TypesMapLocation=\"--typesMapLocation\",e.NpmLocation=\"--npmLocation\",e.ValidateDefaultNpmLocation=\"--validateDefaultNpmLocation\"}(n.Arguments||(n.Arguments={})),n.hasArgument=function(n){return e.sys.args.indexOf(n)>=0},n.findArgument=function(n){var t=e.sys.args.indexOf(n);return t>=0&&t<e.sys.args.length-1?e.sys.args[t+1]:void 0},n.nowString=function(){var e=new Date;return e.getHours()+\":\"+e.getMinutes()+\":\"+e.getSeconds()+\".\"+e.getMilliseconds()}}(e.server||(e.server={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){return new e.Version(e.getProperty(t,\"ts\"+e.versionMajorMinor)||e.getProperty(t,\"latest\")).compareTo(n.version)<=0}function r(e){return n.nodeCoreModules.has(e)?\"node\":e}n.isTypingUpToDate=t,n.nodeCoreModuleList=[\"assert\",\"async_hooks\",\"buffer\",\"child_process\",\"cluster\",\"console\",\"constants\",\"crypto\",\"dgram\",\"dns\",\"domain\",\"events\",\"fs\",\"http\",\"https\",\"http2\",\"inspector\",\"net\",\"os\",\"path\",\"perf_hooks\",\"process\",\"punycode\",\"querystring\",\"readline\",\"repl\",\"stream\",\"string_decoder\",\"timers\",\"tls\",\"tty\",\"url\",\"util\",\"v8\",\"vm\",\"zlib\"],n.nodeCoreModules=e.arrayToSet(n.nodeCoreModuleList),n.nonRelativeModuleNameForTypingCache=r,n.loadSafeList=function(n,t){var r=e.readConfigFile(t,(function(e){return n.readFile(e)}));return e.createMapFromTemplate(r.config)},n.loadTypesMap=function(n,t){var r=e.readConfigFile(t,(function(e){return n.readFile(e)}));if(r.config)return e.createMapFromTemplate(r.config.simpleMap)},n.discoverTypings=function(n,a,i,o,s,c,l,u,d){if(!l||!l.enable)return{cachedTypingPaths:[],newTypingNames:[],filesToWatch:[]};var p=e.createMap();i=e.mapDefined(i,(function(n){var t=e.normalizePath(n);if(e.hasJSFileExtension(t))return t}));var m=[];l.include&&S(l.include,\"Explicitly included types\");var f=l.exclude||[],_=e.arrayToSet(i,e.getDirectoryPath);_.set(o,!0),_.forEach((function(n,t){x(e.combinePaths(t,\"package.json\"),m),x(e.combinePaths(t,\"bower.json\"),m),L(e.combinePaths(t,\"bower_components\"),m),L(e.combinePaths(t,\"node_modules\"),m)})),function(n){var t=e.mapDefined(n,(function(n){if(e.hasJSFileExtension(n)){var t=e.removeFileExtension(e.getBaseFileName(n.toLowerCase())),r=e.removeMinAndVersionNumbers(t);return s.get(r)}}));t.length&&S(t,\"Inferred typings from file names\");e.some(n,(function(n){return e.fileExtensionIs(n,\".jsx\")}))&&(a&&a(\"Inferred 'react' typings due to presence of '.jsx' extension\"),T(\"react\"))}(i),u&&S(e.deduplicate(u.map(r),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive),\"Inferred typings from unresolved imports\"),c.forEach((function(e,n){var r=d.get(n);p.has(n)&&void 0===p.get(n)&&void 0!==r&&t(e,r)&&p.set(n,e.typingLocation)}));for(var g=0,y=f;g<y.length;g++){var v=y[g];p.delete(v)&&a&&a(\"Typing for \"+v+\" is in exclude list, will be ignored.\")}var h=[],b=[];p.forEach((function(e,n){void 0!==e?b.push(e):h.push(n)}));var E={cachedTypingPaths:b,newTypingNames:h,filesToWatch:m};return a&&a(\"Result: \"+JSON.stringify(E)),E;function T(e){p.has(e)||p.set(e,void 0)}function S(n,t){a&&a(t+\": \"+JSON.stringify(n)),e.forEach(n,T)}function x(t,r){if(n.fileExists(t)){r.push(t);var a=e.readConfigFile(t,(function(e){return n.readFile(e)})).config;S(e.flatMap([a.dependencies,a.devDependencies,a.optionalDependencies,a.peerDependencies],e.getOwnKeys),\"Typing names in '\"+t+\"' dependencies\")}}function L(t,r){if(r.push(t),n.directoryExists(t)){var i=n.readDirectory(t,[\".json\"],void 0,void 0,2);a&&a(\"Searching for typing names in \"+t+\"; all files: \"+JSON.stringify(i));for(var o=[],s=0,c=i;s<c.length;s++){var l=c[s],u=e.normalizePath(l),d=e.getBaseFileName(u);if(\"package.json\"===d||\"bower.json\"===d){var m=e.readConfigFile(u,(function(e){return n.readFile(e)})).config;if((\"package.json\"!==d||!m._requiredBy||0!==e.filter(m._requiredBy,(function(e){return\"#\"===e[0]||\"/\"===e})).length)&&m.name){var f=m.types||m.typings;if(f){var _=e.getNormalizedAbsolutePath(f,e.getDirectoryPath(u));a&&a(\"    Package '\"+m.name+\"' provides its own types.\"),p.set(m.name,_)}else o.push(m.name)}}}S(o,\"    Found package names\")}}},function(e){e[e.Ok=0]=\"Ok\",e[e.EmptyName=1]=\"EmptyName\",e[e.NameTooLong=2]=\"NameTooLong\",e[e.NameStartsWithDot=3]=\"NameStartsWithDot\",e[e.NameStartsWithUnderscore=4]=\"NameStartsWithUnderscore\",e[e.NameContainsNonURISafeCharacters=5]=\"NameContainsNonURISafeCharacters\"}(n.NameValidationResult||(n.NameValidationResult={}));function a(n,t,r,a){var i=a?\"Scope\":\"Package\";switch(t){case 1:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot be empty\";case 2:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' should be less than 214 characters\";case 3:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot start with '.'\";case 4:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot start with '_'\";case 5:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' contains non URI safe characters\";case 0:return e.Debug.fail();default:throw e.Debug.assertNever(t)}}n.validatePackageName=function(e){return function e(n,t){if(!n)return 1;if(n.length>214)return 2;if(46===n.charCodeAt(0))return 3;if(95===n.charCodeAt(0))return 4;if(t){var r=/^@([^/]+)\\/([^/]+)$/.exec(n);if(r){var a=e(r[1],!1);if(0!==a)return{name:r[1],isScopeName:!0,result:a};var i=e(r[2],!1);return 0!==i?{name:r[2],isScopeName:!1,result:i}:0}}if(encodeURIComponent(n)!==n)return 5;return 0}(e,!0)},n.renderPackageNameValidationFailure=function(e,n){return\"object\"==typeof e?a(n,e.result,e.name,e.isScopeName):a(n,e,n,!1)}}(e.JsTyping||(e.JsTyping={}))}(ts||(ts={})),function(e){var n,t;function r(e){return{indentSize:4,tabSize:4,newLineCharacter:e||\"\\n\",convertTabsToSpaces:!0,indentStyle:n.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:t.Ignore}}!function(e){var n=function(){function e(e){this.text=e}return e.prototype.getText=function(e,n){return 0===e&&n===this.text.length?this.text:this.text.substring(e,n)},e.prototype.getLength=function(){return this.text.length},e.prototype.getChangeRange=function(){},e}();e.fromString=function(e){return new n(e)}}(e.ScriptSnapshot||(e.ScriptSnapshot={})),function(e){e[e.Dependencies=1]=\"Dependencies\",e[e.DevDependencies=2]=\"DevDependencies\",e[e.PeerDependencies=4]=\"PeerDependencies\",e[e.OptionalDependencies=8]=\"OptionalDependencies\",e[e.All=15]=\"All\"}(e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={})),e.emptyOptions={},function(e){e.none=\"none\",e.definition=\"definition\",e.reference=\"reference\",e.writtenReference=\"writtenReference\"}(e.HighlightSpanKind||(e.HighlightSpanKind={})),function(e){e[e.None=0]=\"None\",e[e.Block=1]=\"Block\",e[e.Smart=2]=\"Smart\"}(n=e.IndentStyle||(e.IndentStyle={})),function(e){e.Ignore=\"ignore\",e.Insert=\"insert\",e.Remove=\"remove\"}(t=e.SemicolonPreference||(e.SemicolonPreference={})),e.getDefaultFormatCodeSettings=r,e.testFormatSettings=r(\"\\n\"),function(e){e[e.aliasName=0]=\"aliasName\",e[e.className=1]=\"className\",e[e.enumName=2]=\"enumName\",e[e.fieldName=3]=\"fieldName\",e[e.interfaceName=4]=\"interfaceName\",e[e.keyword=5]=\"keyword\",e[e.lineBreak=6]=\"lineBreak\",e[e.numericLiteral=7]=\"numericLiteral\",e[e.stringLiteral=8]=\"stringLiteral\",e[e.localName=9]=\"localName\",e[e.methodName=10]=\"methodName\",e[e.moduleName=11]=\"moduleName\",e[e.operator=12]=\"operator\",e[e.parameterName=13]=\"parameterName\",e[e.propertyName=14]=\"propertyName\",e[e.punctuation=15]=\"punctuation\",e[e.space=16]=\"space\",e[e.text=17]=\"text\",e[e.typeParameterName=18]=\"typeParameterName\",e[e.enumMemberName=19]=\"enumMemberName\",e[e.functionName=20]=\"functionName\",e[e.regularExpressionLiteral=21]=\"regularExpressionLiteral\"}(e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={})),function(e){e.Comment=\"comment\",e.Region=\"region\",e.Code=\"code\",e.Imports=\"imports\"}(e.OutliningSpanKind||(e.OutliningSpanKind={})),function(e){e[e.JavaScript=0]=\"JavaScript\",e[e.SourceMap=1]=\"SourceMap\",e[e.Declaration=2]=\"Declaration\"}(e.OutputFileType||(e.OutputFileType={})),function(e){e[e.None=0]=\"None\",e[e.InMultiLineCommentTrivia=1]=\"InMultiLineCommentTrivia\",e[e.InSingleQuoteStringLiteral=2]=\"InSingleQuoteStringLiteral\",e[e.InDoubleQuoteStringLiteral=3]=\"InDoubleQuoteStringLiteral\",e[e.InTemplateHeadOrNoSubstitutionTemplate=4]=\"InTemplateHeadOrNoSubstitutionTemplate\",e[e.InTemplateMiddleOrTail=5]=\"InTemplateMiddleOrTail\",e[e.InTemplateSubstitutionPosition=6]=\"InTemplateSubstitutionPosition\"}(e.EndOfLineState||(e.EndOfLineState={})),function(e){e[e.Punctuation=0]=\"Punctuation\",e[e.Keyword=1]=\"Keyword\",e[e.Operator=2]=\"Operator\",e[e.Comment=3]=\"Comment\",e[e.Whitespace=4]=\"Whitespace\",e[e.Identifier=5]=\"Identifier\",e[e.NumberLiteral=6]=\"NumberLiteral\",e[e.BigIntLiteral=7]=\"BigIntLiteral\",e[e.StringLiteral=8]=\"StringLiteral\",e[e.RegExpLiteral=9]=\"RegExpLiteral\"}(e.TokenClass||(e.TokenClass={})),function(e){e.unknown=\"\",e.warning=\"warning\",e.keyword=\"keyword\",e.scriptElement=\"script\",e.moduleElement=\"module\",e.classElement=\"class\",e.localClassElement=\"local class\",e.interfaceElement=\"interface\",e.typeElement=\"type\",e.enumElement=\"enum\",e.enumMemberElement=\"enum member\",e.variableElement=\"var\",e.localVariableElement=\"local var\",e.functionElement=\"function\",e.localFunctionElement=\"local function\",e.memberFunctionElement=\"method\",e.memberGetAccessorElement=\"getter\",e.memberSetAccessorElement=\"setter\",e.memberVariableElement=\"property\",e.constructorImplementationElement=\"constructor\",e.callSignatureElement=\"call\",e.indexSignatureElement=\"index\",e.constructSignatureElement=\"construct\",e.parameterElement=\"parameter\",e.typeParameterElement=\"type parameter\",e.primitiveType=\"primitive type\",e.label=\"label\",e.alias=\"alias\",e.constElement=\"const\",e.letElement=\"let\",e.directory=\"directory\",e.externalModuleName=\"external module name\",e.jsxAttribute=\"JSX attribute\",e.string=\"string\"}(e.ScriptElementKind||(e.ScriptElementKind={})),function(e){e.none=\"\",e.publicMemberModifier=\"public\",e.privateMemberModifier=\"private\",e.protectedMemberModifier=\"protected\",e.exportedModifier=\"export\",e.ambientModifier=\"declare\",e.staticModifier=\"static\",e.abstractModifier=\"abstract\",e.optionalModifier=\"optional\",e.dtsModifier=\".d.ts\",e.tsModifier=\".ts\",e.tsxModifier=\".tsx\",e.jsModifier=\".js\",e.jsxModifier=\".jsx\",e.jsonModifier=\".json\"}(e.ScriptElementKindModifier||(e.ScriptElementKindModifier={})),function(e){e.comment=\"comment\",e.identifier=\"identifier\",e.keyword=\"keyword\",e.numericLiteral=\"number\",e.bigintLiteral=\"bigint\",e.operator=\"operator\",e.stringLiteral=\"string\",e.whiteSpace=\"whitespace\",e.text=\"text\",e.punctuation=\"punctuation\",e.className=\"class name\",e.enumName=\"enum name\",e.interfaceName=\"interface name\",e.moduleName=\"module name\",e.typeParameterName=\"type parameter name\",e.typeAliasName=\"type alias name\",e.parameterName=\"parameter name\",e.docCommentTagName=\"doc comment tag name\",e.jsxOpenTagName=\"jsx open tag name\",e.jsxCloseTagName=\"jsx close tag name\",e.jsxSelfClosingTagName=\"jsx self closing tag name\",e.jsxAttribute=\"jsx attribute\",e.jsxText=\"jsx text\",e.jsxAttributeStringLiteralValue=\"jsx attribute string literal value\"}(e.ClassificationTypeNames||(e.ClassificationTypeNames={})),function(e){e[e.comment=1]=\"comment\",e[e.identifier=2]=\"identifier\",e[e.keyword=3]=\"keyword\",e[e.numericLiteral=4]=\"numericLiteral\",e[e.operator=5]=\"operator\",e[e.stringLiteral=6]=\"stringLiteral\",e[e.regularExpressionLiteral=7]=\"regularExpressionLiteral\",e[e.whiteSpace=8]=\"whiteSpace\",e[e.text=9]=\"text\",e[e.punctuation=10]=\"punctuation\",e[e.className=11]=\"className\",e[e.enumName=12]=\"enumName\",e[e.interfaceName=13]=\"interfaceName\",e[e.moduleName=14]=\"moduleName\",e[e.typeParameterName=15]=\"typeParameterName\",e[e.typeAliasName=16]=\"typeAliasName\",e[e.parameterName=17]=\"parameterName\",e[e.docCommentTagName=18]=\"docCommentTagName\",e[e.jsxOpenTagName=19]=\"jsxOpenTagName\",e[e.jsxCloseTagName=20]=\"jsxCloseTagName\",e[e.jsxSelfClosingTagName=21]=\"jsxSelfClosingTagName\",e[e.jsxAttribute=22]=\"jsxAttribute\",e[e.jsxText=23]=\"jsxText\",e[e.jsxAttributeStringLiteralValue=24]=\"jsxAttributeStringLiteralValue\",e[e.bigintLiteral=25]=\"bigintLiteral\"}(e.ClassificationType||(e.ClassificationType={}))}(ts||(ts={})),function(e){function n(n){switch(n.kind){case 241:return e.isInJSFile(n)&&e.getJSDocEnumTag(n)?7:1;case 155:case 190:case 158:case 157:case 279:case 280:case 160:case 159:case 161:case 162:case 163:case 243:case 200:case 201:case 278:case 271:return 1;case 154:case 245:case 246:case 172:return 2;case 315:return void 0===n.name?3:2;case 282:case 244:return 3;case 248:return e.isAmbientModule(n)?5:1===e.getModuleInstanceState(n)?5:4;case 247:case 256:case 257:case 252:case 253:case 258:case 259:return 7;case 288:return 5}return 7}function t(n){for(;152===n.parent.kind;)n=n.parent;return e.isInternalModuleImportEqualsDeclaration(n.parent)&&n.parent.moduleReference===n}function r(e,n){var t=a(e);return!!t&&!!t.parent&&n(t.parent)&&t.parent.expression===t}function a(e){return s(e)?e.parent:e}function i(n){return 75===n.kind&&e.isBreakOrContinueStatement(n.parent)&&n.parent.label===n}function o(n){return 75===n.kind&&e.isLabeledStatement(n.parent)&&n.parent.label===n}function s(e){return e&&e.parent&&193===e.parent.kind&&e.parent.name===e}e.scanner=e.createScanner(99,!0),function(e){e[e.None=0]=\"None\",e[e.Value=1]=\"Value\",e[e.Type=2]=\"Type\",e[e.Namespace=4]=\"Namespace\",e[e.All=7]=\"All\"}(e.SemanticMeaning||(e.SemanticMeaning={})),e.getMeaningFromDeclaration=n,e.getMeaningFromLocation=function(r){return 288===r.kind?1:258===r.parent.kind||263===r.parent.kind?7:t(r)?function(n){var t=152===n.kind?n:e.isQualifiedName(n.parent)&&n.parent.right===n?n.parent:void 0;return t&&252===t.parent.kind?7:4}(r):e.isDeclarationName(r)?n(r.parent):function(n){e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent);switch(n.kind){case 103:return!e.isExpressionNode(n);case 182:return!0}switch(n.parent.kind){case 168:return!0;case 187:return!n.parent.isTypeOf;case 215:return!e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)}return!1}(r)?2:function(e){return function(e){var n=e,t=!0;if(152===n.parent.kind){for(;n.parent&&152===n.parent.kind;)n=n.parent;t=n.right===e}return 168===n.parent.kind&&!t}(e)||function(e){var n=e,t=!0;if(193===n.parent.kind){for(;n.parent&&193===n.parent.kind;)n=n.parent;t=n.name===e}if(!t&&215===n.parent.kind&&277===n.parent.parent.kind){var r=n.parent.parent.parent;return 244===r.kind&&112===n.parent.parent.token||245===r.kind&&89===n.parent.parent.token}return!1}(e)}(r)?4:e.isTypeParameterDeclaration(r.parent)?(e.Debug.assert(e.isJSDocTemplateTag(r.parent.parent)),2):e.isLiteralTypeNode(r.parent)?3:1},e.isInRightSideOfInternalImportEqualsDeclaration=t,e.isCallExpressionTarget=function(n){return r(n,e.isCallExpression)},e.isNewExpressionTarget=function(n){return r(n,e.isNewExpression)},e.isCallOrNewExpressionTarget=function(n){return r(n,e.isCallOrNewExpression)},e.climbPastPropertyAccess=a,e.getTargetLabel=function(e,n){for(;e;){if(237===e.kind&&e.label.escapedText===n)return e.label;e=e.parent}},e.hasPropertyAccessExpressionWithName=function(n,t){return!!e.isPropertyAccessExpression(n.expression)&&n.expression.name.text===t},e.isJumpStatementTarget=i,e.isLabelOfLabeledStatement=o,e.isLabelName=function(e){return o(e)||i(e)},e.isTagName=function(n){return e.isJSDocTag(n.parent)&&n.parent.tagName===n},e.isRightSideOfQualifiedName=function(e){return 152===e.parent.kind&&e.parent.right===e},e.isRightSideOfPropertyAccess=s,e.isNameOfModuleDeclaration=function(e){return 248===e.parent.kind&&e.parent.name===e},e.isNameOfFunctionDeclaration=function(n){return 75===n.kind&&e.isFunctionLike(n.parent)&&n.parent.name===n},e.isLiteralNameOfPropertyDeclarationOrIndexAccess=function(n){switch(n.parent.kind){case 158:case 157:case 279:case 282:case 160:case 159:case 162:case 163:case 248:return e.getNameOfDeclaration(n.parent)===n;case 194:return n.parent.argumentExpression===n;case 153:return!0;case 186:return 184===n.parent.parent.kind;default:return!1}},e.isExpressionOfExternalModuleImportEqualsDeclaration=function(n){return e.isExternalModuleImportEqualsDeclaration(n.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(n.parent.parent)===n},e.getContainerNode=function(n){for(e.isJSDocTypeAlias(n)&&(n=n.parent.parent);;){if(!(n=n.parent))return;switch(n.kind){case 288:case 160:case 159:case 243:case 200:case 162:case 163:case 244:case 245:case 247:case 248:return n}}},e.getNodeKind=function n(t){switch(t.kind){case 288:return e.isExternalModule(t)?\"module\":\"script\";case 248:return\"module\";case 244:case 213:return\"class\";case 245:return\"interface\";case 246:case 308:case 315:return\"type\";case 247:return\"enum\";case 241:return s(t);case 190:return s(e.getRootDeclaration(t));case 201:case 243:case 200:return\"function\";case 162:return\"getter\";case 163:return\"setter\";case 160:case 159:return\"method\";case 279:var r=t.initializer;return e.isFunctionLike(r)?\"method\":\"property\";case 158:case 157:case 280:case 281:return\"property\";case 166:return\"index\";case 165:return\"construct\";case 164:return\"call\";case 161:return\"constructor\";case 154:return\"type parameter\";case 282:return\"enum member\";case 155:return e.hasModifier(t,92)?\"property\":\"parameter\";case 252:case 257:case 261:case 255:return\"alias\";case 208:var a=e.getAssignmentDeclarationKind(t),i=t.right;switch(a){case 7:case 8:case 9:case 0:return\"\";case 1:case 2:var o=n(i);return\"\"===o?\"const\":o;case 3:return e.isFunctionExpression(i)?\"method\":\"property\";case 4:return\"property\";case 5:return e.isFunctionExpression(i)?\"method\":\"property\";case 6:return\"local class\";default:return e.assertType(a),\"\"}case 75:return e.isImportClause(t.parent)?\"alias\":\"\";default:return\"\"}function s(n){return e.isVarConst(n)?\"const\":e.isLet(n)?\"let\":\"var\"}},e.isThis=function(n){switch(n.kind){case 103:return!0;case 75:return e.identifierIsThisKeyword(n)&&155===n.parent.kind;default:return!1}};var c=/^\\/\\/\\/\\s*</;function l(e,n){return d(e.pos,e.end,n)}function u(e,n){return e.pos<n&&n<e.end}function d(e,n,t){return e<=t.pos&&n>=t.end}function p(e,n,t,r){return Math.max(e,t)<Math.min(n,r)}function m(n,t,r){var a=n.getChildren(r);if(a.length){var i=e.last(a);if(i.kind===t)return!0;if(26===i.kind&&1!==a.length)return a[a.length-2].kind===t}return!1}function f(e,n,t){return!!_(e,n,t)}function _(n,t,r){return e.find(n.getChildren(r),(function(e){return e.kind===t}))}function g(n){var t=e.find(n.parent.getChildren(),(function(t){return e.isSyntaxList(t)&&l(t,n)}));return e.Debug.assert(!t||e.contains(t.getChildren(),n)),t}function y(e,n,t){return h(e,n,!1,t,!1)}function v(e,n){return h(e,n,!0,void 0,!1)}function h(e,n,t,r,a){var i=e;e:for(;;){for(var o=0,s=i.getChildren(e);o<s.length;o++){var c=s[o];if((t?c.getFullStart():c.getStart(e,!0))>n)break;var l=c.getEnd();if(n<l||n===l&&(1===c.kind||a)){i=c;continue e}if(r&&l===n){var u=b(n,e,c);if(u&&r(u))return u}}return i}}function b(n,t,r,a){var i=function i(o){if(E(o)&&1!==o.kind)return o;for(var s=o.getChildren(t),c=0;c<s.length;c++){var l=s[c];if(n<l.end){if(l.getStart(t,!a)>=n||!N(l,t)||x(l)){var u=S(s,c,t);return u&&T(u,t)}return i(l)}}e.Debug.assert(void 0!==r||288===o.kind||1===o.kind||e.isJSDocCommentContainingNode(o));var d=S(s,s.length,t);return d&&T(d,t)}(r||t);return e.Debug.assert(!(i&&x(i))),i}function E(n){return e.isToken(n)&&!x(n)}function T(e,n){if(E(e))return e;var t=e.getChildren(n),r=S(t,t.length,n);return r&&T(r,n)}function S(n,t,r){for(var a=t-1;a>=0;a--){if(x(n[a]))e.Debug.assert(a>0,\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");else if(N(n[a],r))return n[a]}}function x(n){return e.isJsxText(n)&&n.containsOnlyTriviaWhiteSpaces}function L(e,n,t){for(var r=e.kind,a=0;;){var i=b(e.getFullStart(),t);if(!i)return;if((e=i).kind===n){if(0===a)return e;a--}else e.kind===r&&a++}}function C(e,n,t){return n?e.getNonNullableType():t?e.getNonOptionalType():e}function A(n,t,r){var a=r.getTypeAtLocation(n);return e.isOptionalChain(n.parent)&&(a=C(a,!!n.parent.questionDotToken,!0)),(e.isNewExpression(n.parent)?a.getConstructSignatures():a.getCallSignatures()).filter((function(e){return!!e.typeParameters&&e.typeParameters.length>=t}))}function D(n,t){for(var r=n,a=0,i=0;r;){switch(r.kind){case 29:if((r=b(r.getFullStart(),t))&&28===r.kind&&(r=b(r.getFullStart(),t)),!r||!e.isIdentifier(r))return;if(!a)return e.isDeclarationName(r)?void 0:{called:r,nTypeArguments:i};a--;break;case 49:a=3;break;case 48:a=2;break;case 31:a++;break;case 19:if(!(r=L(r,18,t)))return;break;case 21:if(!(r=L(r,20,t)))return;break;case 23:if(!(r=L(r,22,t)))return;break;case 27:i++;break;case 38:case 75:case 10:case 8:case 9:case 105:case 90:case 107:case 89:case 133:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(r))break;return}r=b(r.getFullStart(),t)}}function k(n,t,r){return e.formatting.getRangeOfEnclosingComment(n,t,void 0,r)}function N(e,n){return 1===e.kind?!!e.jsDoc:0!==e.getWidth(n)}function I(e,n,t){var r=k(e,n,void 0);return!!r&&t===c.test(e.text.substring(r.pos,r.end))}function M(e,n){return{span:e,newText:n}}function O(e){return!!e.useCaseSensitiveFileNames&&e.useCaseSensitiveFileNames()}function R(n,t,r,a){return e.createImportDeclaration(void 0,void 0,n||t?e.createImportClause(n,t&&t.length?e.createNamedImports(t):void 0):void 0,\"string\"==typeof r?P(r,a):r)}function P(n,t){return e.createLiteral(n,0===t)}function w(n,t){return e.isStringDoubleQuoted(n,t)?1:0}function F(n){return\"default\"!==n.escapedName?n.escapedName:e.firstDefined(n.declarations,(function(n){var t=e.getNameOfDeclaration(n);return t&&75===t.kind?t.escapedText:void 0}))}function G(n,t,r,a){var i=e.createMap();return function n(o){if(!(96&o.flags&&e.addToSeen(i,e.getSymbolId(o))))return;return e.firstDefined(o.declarations,(function(i){return e.firstDefined(e.getAllSuperTypeNodes(i),(function(i){var o=r.getTypeAtLocation(i),s=o&&o.symbol&&r.getPropertyOfType(o,t);return o&&s&&(e.firstDefined(r.getRootSymbols(s),a)||n(o.symbol))}))}))}(n)}function B(n,t,r){return e.textSpanContainsPosition(n,t.getStart(r))&&t.getEnd()<=e.textSpanEnd(n)}function V(e,n){return!!e&&!!n&&e.start===n.start&&e.length===n.length}e.getLineStartPositionForPosition=function(n,t){return e.getLineStarts(t)[t.getLineAndCharacterOfPosition(n).line]},e.rangeContainsRange=l,e.rangeContainsRangeExclusive=function(e,n){return u(e,n.pos)&&u(e,n.end)},e.rangeContainsPosition=function(e,n){return e.pos<=n&&n<=e.end},e.rangeContainsPositionExclusive=u,e.startEndContainsRange=d,e.rangeContainsStartEnd=function(e,n,t){return e.pos<=n&&e.end>=t},e.rangeOverlapsWithStartEnd=function(e,n,t){return p(e.pos,e.end,n,t)},e.nodeOverlapsWithStartEnd=function(e,n,t,r){return p(e.getStart(n),e.end,t,r)},e.startEndOverlapsWithStartEnd=p,e.positionBelongsToNode=function(n,t,r){return e.Debug.assert(n.pos<=t),t<n.end||!function n(t,r){if(void 0===t||e.nodeIsMissing(t))return!1;switch(t.kind){case 244:case 245:case 247:case 192:case 188:case 172:case 222:case 249:case 250:case 256:case 260:return m(t,19,r);case 278:return n(t.block,r);case 196:if(!t.arguments)return!0;case 195:case 199:case 181:return m(t,21,r);case 169:case 170:return n(t.type,r);case 161:case 162:case 163:case 243:case 200:case 160:case 159:case 165:case 164:case 201:return t.body?n(t.body,r):t.type?n(t.type,r):f(t,21,r);case 248:return!!t.body&&n(t.body,r);case 226:return t.elseStatement?n(t.elseStatement,r):n(t.thenStatement,r);case 225:return n(t.expression,r)||f(t,26,r);case 191:case 189:case 194:case 153:case 174:return m(t,23,r);case 166:return t.type?n(t.type,r):f(t,23,r);case 275:case 276:return!1;case 229:case 230:case 231:case 228:return n(t.statement,r);case 227:return f(t,110,r)?m(t,21,r):n(t.statement,r);case 171:return n(t.exprName,r);case 203:case 202:case 204:case 211:case 212:return n(t.expression,r);case 197:return n(t.template,r);case 210:var a=e.lastOrUndefined(t.templateSpans);return n(a,r);case 220:return e.nodeIsPresent(t.literal);case 259:case 253:return e.nodeIsPresent(t.moduleSpecifier);case 206:return n(t.operand,r);case 208:return n(t.right,r);case 209:return n(t.whenFalse,r);default:return!0}}(n,r)},e.findListItemInfo=function(n){var t=g(n);if(t){var r=t.getChildren();return{listItemIndex:e.indexOfNode(r,n),list:t}}},e.hasChildOfKind=f,e.findChildOfKind=_,e.findContainingList=g,e.getTouchingPropertyName=function(n,t){return y(n,t,(function(n){return e.isPropertyNameLiteral(n)||e.isKeyword(n.kind)}))},e.getTouchingToken=y,e.getTokenAtPosition=v,e.findTokenOnLeftOfPosition=function(n,t){var r=v(n,t);return e.isToken(r)&&t>r.getStart(n)&&t<r.getEnd()?r:b(t,n)},e.findNextToken=function(n,t,r){return function t(a){if(e.isToken(a)&&a.pos===n.end)return a;return e.firstDefined(a.getChildren(r),(function(e){return(e.pos<=n.pos&&e.end>n.end||e.pos===n.end)&&N(e,r)?t(e):void 0}))}(t)},e.findPrecedingToken=b,e.isInString=function(n,t,r){if(void 0===r&&(r=b(t,n)),r&&e.isStringTextContainingNode(r)){var a=r.getStart(n),i=r.getEnd();if(a<t&&t<i)return!0;if(t===i)return!!r.isUnterminated}return!1},e.isInsideJsxElementOrAttribute=function(e,n){var t=v(e,n);return!!t&&(11===t.kind||(29===t.kind&&11===t.parent.kind||(29===t.kind&&274===t.parent.kind||(!(!t||19!==t.kind||274!==t.parent.kind)||29===t.kind&&267===t.parent.kind))))},e.isInTemplateString=function(n,t){var r=v(n,t);return e.isTemplateLiteralKind(r.kind)&&t>r.getStart(n)},e.isInJSXText=function(n,t){var r=v(n,t);return!!e.isJsxText(r)||(!(18!==r.kind||!e.isJsxExpression(r.parent)||!e.isJsxElement(r.parent.parent))||!(29!==r.kind||!e.isJsxOpeningLikeElement(r.parent)||!e.isJsxElement(r.parent.parent)))},e.findPrecedingMatchingToken=L,e.removeOptionality=C,e.isPossiblyTypeArgumentPosition=function n(t,r,a){var i=D(t,r);return void 0!==i&&(e.isPartOfTypeNode(i.called)||0!==A(i.called,i.nTypeArguments,a).length||n(i.called,r,a))},e.getPossibleGenericSignatures=A,e.getPossibleTypeArgumentsInfo=D,e.isInComment=k,e.hasDocComment=function(n,t){var r=v(n,t);return!!e.findAncestor(r,e.isJSDoc)},e.getNodeModifiers=function(n){var t=e.isDeclaration(n)?e.getCombinedModifierFlags(n):0,r=[];return 8&t&&r.push(\"private\"),16&t&&r.push(\"protected\"),4&t&&r.push(\"public\"),32&t&&r.push(\"static\"),128&t&&r.push(\"abstract\"),1&t&&r.push(\"export\"),8388608&n.flags&&r.push(\"declare\"),r.length>0?r.join(\",\"):\"\"},e.getTypeArgumentOrTypeParameterList=function(n){return 168===n.kind||195===n.kind?n.typeArguments:e.isFunctionLike(n)||244===n.kind||245===n.kind?n.typeParameters:void 0},e.isComment=function(e){return 2===e||3===e},e.isStringOrRegularExpressionOrTemplateLiteral=function(n){return!(10!==n&&13!==n&&!e.isTemplateLiteralKind(n))},e.isPunctuation=function(e){return 18<=e&&e<=74},e.isInsideTemplateLiteral=function(n,t,r){return e.isTemplateLiteralKind(n.kind)&&n.getStart(r)<t&&t<n.end||!!n.isUnterminated&&t===n.end},e.isAccessibilityModifier=function(e){switch(e){case 118:case 116:case 117:return!0}return!1},e.cloneCompilerOptions=function(n){var t=e.clone(n);return e.setConfigFileInOptions(t,n&&n.configFile),t},e.isArrayLiteralOrObjectLiteralDestructuringPattern=function e(n){if(191===n.kind||192===n.kind){if(208===n.parent.kind&&n.parent.left===n&&62===n.parent.operatorToken.kind)return!0;if(231===n.parent.kind&&n.parent.initializer===n)return!0;if(e(279===n.parent.kind?n.parent.parent:n.parent))return!0}return!1},e.isInReferenceComment=function(e,n){return I(e,n,!0)},e.isInNonReferenceComment=function(e,n){return I(e,n,!1)},e.createTextSpanFromNode=function(n,t,r){return e.createTextSpanFromBounds(n.getStart(t),(r||n).getEnd())},e.createTextRangeFromNode=function(n,t){return e.createRange(n.getStart(t),n.end)},e.createTextSpanFromRange=function(n){return e.createTextSpanFromBounds(n.pos,n.end)},e.createTextRangeFromSpan=function(n){return e.createRange(n.start,n.start+n.length)},e.createTextChangeFromStartLength=function(n,t,r){return M(e.createTextSpan(n,t),r)},e.createTextChange=M,e.typeKeywords=[124,150,127,90,133,136,99,139,140,137,142,143,105,109,145,146,147],e.isTypeKeyword=function(n){return e.contains(e.typeKeywords,n)},e.isExternalModuleSymbol=function(e){return!!(1536&e.flags)&&34===e.name.charCodeAt(0)},e.nodeSeenTracker=function(){var n=[];return function(t){var r=e.getNodeId(t);return!n[r]&&(n[r]=!0)}},e.getSnapshotText=function(e){return e.getText(0,e.getLength())},e.repeatString=function(e,n){for(var t=\"\",r=0;r<n;r++)t+=e;return t},e.skipConstraint=function(e){return e.isTypeParameter()&&e.getConstraint()||e},e.getNameFromPropertyName=function(n){return 153===n.kind?e.isStringOrNumericLiteralLike(n.expression)?n.expression.text:void 0:e.getTextOfIdentifierOrLiteral(n)},e.programContainsEs6Modules=function(e){return e.getSourceFiles().some((function(n){return!n.isDeclarationFile&&!e.isSourceFileFromExternalLibrary(n)&&!!n.externalModuleIndicator}))},e.compilerOptionsIndicateEs6Modules=function(e){return!!e.module||e.target>=2||!!e.noEmit},e.hostUsesCaseSensitiveFileNames=O,e.hostGetCanonicalFileName=function(n){return e.createGetCanonicalFileName(O(n))},e.makeImportIfNecessary=function(e,n,t,r){return e||n&&n.length?R(e,n,t,r):void 0},e.makeImport=R,e.makeStringLiteral=P,function(e){e[e.Single=0]=\"Single\",e[e.Double=1]=\"Double\"}(e.QuotePreference||(e.QuotePreference={})),e.quotePreferenceFromString=w,e.getQuotePreference=function(n,t){if(t.quotePreference&&\"auto\"!==t.quotePreference)return\"single\"===t.quotePreference?0:1;var r=n.imports&&e.find(n.imports,e.isStringLiteral);return r?w(r,n):1},e.getQuoteFromPreference=function(n){switch(n){case 0:return\"'\";case 1:return'\"';default:return e.Debug.assertNever(n)}},e.symbolNameNoDefault=function(n){var t=F(n);return void 0===t?void 0:e.unescapeLeadingUnderscores(t)},e.symbolEscapedNameNoDefault=F,e.isObjectBindingElementWithoutPropertyName=function(n){return e.isBindingElement(n)&&e.isObjectBindingPattern(n.parent)&&e.isIdentifier(n.name)&&!n.propertyName},e.getPropertySymbolFromBindingElement=function(e,n){var t=e.getTypeAtLocation(n.parent);return t&&e.getPropertyOfType(t,n.name.text)},e.getPropertySymbolsFromBaseTypes=G,e.isMemberSymbolInBaseType=function(e,n){return G(e.parent,e.name,n,(function(e){return!0}))||!1},e.getParentNodeInSpan=function(n,t,r){if(n)for(;n.parent;){if(e.isSourceFile(n.parent)||!B(r,n.parent,t))return n;n=n.parent}},e.findModifier=function(n,t){return n.modifiers&&e.find(n.modifiers,(function(e){return e.kind===t}))},e.insertImport=function(n,t,r){var a=e.findLast(t.statements,e.isAnyImportSyntax);a?n.insertNodeAfter(t,a,r):n.insertNodeAtTopOfFile(t,r,!0)},e.textSpansEqual=V,e.documentSpansEqual=function(e,n){return e.fileName===n.fileName&&V(e.textSpan,n.textSpan)},e.forEachUnique=function(e,n){if(e)for(var t=0;t<e.length;t++)if(e.indexOf(e[t])===t){var r=n(e[t],t);if(r)return r}}}(ts||(ts={})),function(e){function n(e){return e.declarations&&e.declarations.length>0&&155===e.declarations[0].kind}e.isFirstDeclarationOfSymbolParameter=n;var t=function(){var n,t,i,o,c=10*e.defaultMaximumTruncationLength;p();var l=function(n){return d(n,e.SymbolDisplayPartKind.text)};return{displayParts:function(){var t=n.length&&n[n.length-1].text;return o>c&&t&&\"...\"!==t&&(e.isWhiteSpaceLike(t.charCodeAt(t.length-1))||n.push(a(\" \",e.SymbolDisplayPartKind.space)),n.push(a(\"...\",e.SymbolDisplayPartKind.punctuation))),n},writeKeyword:function(n){return d(n,e.SymbolDisplayPartKind.keyword)},writeOperator:function(n){return d(n,e.SymbolDisplayPartKind.operator)},writePunctuation:function(n){return d(n,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(n){return d(n,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(n){return d(n,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(n){return d(n,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(n){return d(n,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(n){return d(n,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(n){return d(n,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:function(e,t){if(o>c)return;u(),o+=e.length,n.push(r(e,t))},writeLine:function(){if(o>c)return;o+=1,n.push(s()),t=!0},write:l,writeComment:l,getText:function(){return\"\"},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return i},increaseIndent:function(){i++},decreaseIndent:function(){i--},clear:p,trackSymbol:e.noop,reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function u(){if(!(o>c)&&t){var r=e.getIndentString(i);r&&(o+=r.length,n.push(a(r,e.SymbolDisplayPartKind.space))),t=!1}}function d(e,t){o>c||(u(),o+=e.length,n.push(a(e,t)))}function p(){n=[],t=!0,i=0,o=0}}();function r(t,r){return a(t,function(t){var r=t.flags;if(3&r)return n(t)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName;if(4&r)return e.SymbolDisplayPartKind.propertyName;if(32768&r)return e.SymbolDisplayPartKind.propertyName;if(65536&r)return e.SymbolDisplayPartKind.propertyName;if(8&r)return e.SymbolDisplayPartKind.enumMemberName;if(16&r)return e.SymbolDisplayPartKind.functionName;if(32&r)return e.SymbolDisplayPartKind.className;if(64&r)return e.SymbolDisplayPartKind.interfaceName;if(384&r)return e.SymbolDisplayPartKind.enumName;if(1536&r)return e.SymbolDisplayPartKind.moduleName;if(8192&r)return e.SymbolDisplayPartKind.methodName;if(262144&r)return e.SymbolDisplayPartKind.typeParameterName;if(524288&r)return e.SymbolDisplayPartKind.aliasName;if(2097152&r)return e.SymbolDisplayPartKind.aliasName;return e.SymbolDisplayPartKind.text}(r))}function a(n,t){return{text:n,kind:e.SymbolDisplayPartKind[t]}}function i(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.keyword)}function o(n){return a(n,e.SymbolDisplayPartKind.text)}e.symbolPart=r,e.displayPart=a,e.spacePart=function(){return a(\" \",e.SymbolDisplayPartKind.space)},e.keywordPart=i,e.punctuationPart=function(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.punctuation)},e.operatorPart=function(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.operator)},e.textOrKeywordPart=function(n){var t=e.stringToToken(n);return void 0===t?o(n):i(t)},e.textPart=o;function s(){return a(\"\\n\",e.SymbolDisplayPartKind.lineBreak)}function c(e){try{return e(t),t.displayParts()}finally{t.clear()}}function l(n,t){return e.ensureScriptKind(n,t&&t.getScriptKind&&t.getScriptKind(n))}function u(e){return 0!=(33554432&e.flags)}function d(e){return 0!=(2097152&e.flags)}function p(e,n){void 0===n&&(n=!0);var t=e&&f(e);return t&&!n&&_(t),t}function m(n,t,r,a,i){var o;if(void 0===t&&(t=!0),r&&a&&e.isBindingElement(n)&&e.isIdentifier(n.name)&&e.isObjectBindingPattern(n.parent))(c=(s=a.getSymbolAtLocation(n.name))&&r.get(String(e.getSymbolId(s))))&&c.text!==(n.name||n.propertyName).getText()&&(o=e.createBindingElement(n.dotDotDotToken,n.propertyName||n.name,c,n.initializer));else if(r&&a&&e.isIdentifier(n)){var s,c;(c=(s=a.getSymbolAtLocation(n))&&r.get(String(e.getSymbolId(s))))&&(o=e.createIdentifier(c.text))}return o||(o=f(n,r,a,i)),o&&!t&&_(o),i&&o&&i(n,o),o}function f(n,t,r,a){var i=t||r||a?e.visitEachChild(n,(function(e){return m(e,!0,t,r,a)}),e.nullTransformationContext):e.visitEachChild(n,p,e.nullTransformationContext);if(i===n){var o=e.getSynthesizedClone(n);return e.isStringLiteral(o)?o.textSourceNode=n:e.isNumericLiteral(o)&&(o.numericLiteralFlags=n.numericLiteralFlags),e.setTextRange(o,n)}return i.parent=void 0,i}function _(e){g(e),y(e)}function g(e){v(e,512,h)}function y(n){v(n,1024,e.getLastChild)}function v(n,t,r){e.addEmitFlags(n,t);var a=r(n);a&&v(a,t,r)}function h(e){return e.forEachChild((function(e){return e}))}function b(e,n,t,r,a){return function(i,o,s,c){3===s?(i+=2,o-=2):i+=2,a(e,t||s,n.text.slice(i,o),void 0!==r?r:c)}}function E(n,t){if(e.startsWith(n,t))return 0;var r=n.indexOf(\" \"+t);return-1===r&&(r=n.indexOf(\".\"+t)),-1===r&&(r=n.indexOf('\"'+t)),-1===r?-1:r+1}function T(e){switch(e){case 36:case 34:case 37:case 35:return!0;default:return!1}}function S(e,n){return n.getTypeAtLocation(e.parent.parent.expression)}function x(e){return 164===e||165===e||166===e||157===e||159===e}function L(e){return 243===e||161===e||160===e||162===e||163===e}function C(e){return 248===e}function A(e){return 224===e||225===e||227===e||232===e||233===e||234===e||238===e||240===e||158===e||246===e||253===e||252===e||259===e||251===e||258===e}function D(e,n){return N(e,e.fileExists,n)}function k(e){try{return e()}catch(e){return}}function N(e,n){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];return k((function(){return n&&n.apply(e,t)}))}function I(n,t){if(t.readFile){var r=t.readFile(n);if(r){var a=function(e){try{return JSON.parse(e)}catch(e){return}}(r);if(!a)return!1;for(var i={},o=0,s=[\"dependencies\",\"devDependencies\",\"optionalDependencies\",\"peerDependencies\"];o<s.length;o++){var c=s[o],l=a[c];if(l){var u=e.createMap();for(var d in l)u.set(d,l[d]);i[c]=u}}var p=[[1,i.dependencies],[2,i.devDependencies],[8,i.optionalDependencies],[4,i.peerDependencies]];return __assign(__assign({},i),{fileName:n,get:m,has:function(e,n){return!!m(e,n)}})}}function m(e,n){void 0===n&&(n=15);for(var t=0,r=p;t<r.length;t++){var a=r[t],i=a[0],o=a[1];if(o&&n&i){var s=o.get(e);if(void 0!==s)return s}}}}e.getNewLineOrDefaultFromHost=function(e,n){return n&&n.newLineCharacter||e.getNewLine&&e.getNewLine()||\"\\r\\n\"},e.lineBreakPart=s,e.mapToDisplayParts=c,e.typeToDisplayParts=function(e,n,t,r){return void 0===r&&(r=0),c((function(a){e.writeType(n,t,17408|r,a)}))},e.symbolToDisplayParts=function(e,n,t,r,a){return void 0===a&&(a=0),c((function(i){e.writeSymbol(n,t,r,8|a,i)}))},e.signatureToDisplayParts=function(e,n,t,r){return void 0===r&&(r=0),r|=25632,c((function(a){e.writeSignature(n,t,r,void 0,a)}))},e.isImportOrExportSpecifierName=function(n){return!!n.parent&&e.isImportOrExportSpecifier(n.parent)&&n.parent.propertyName===n},e.scriptKindIs=function(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];var i=l(n,t);return e.some(r,(function(e){return e===i}))},e.getScriptKind=l,e.getSymbolTarget=function(n,t){for(var r=n;d(r)||u(r)&&r.target;)r=u(r)&&r.target?r.target:e.skipAlias(r,t);return r},e.getUniqueSymbolId=function(n,t){return e.getSymbolId(e.skipAlias(n,t))},e.getFirstNonSpaceCharacterPosition=function(n,t){for(;e.isWhiteSpaceLike(n.charCodeAt(t));)t+=1;return t},e.getPrecedingNonSpaceCharacterPosition=function(n,t){for(;t>-1&&e.isWhiteSpaceSingleLine(n.charCodeAt(t));)t-=1;return t+1},e.getSynthesizedDeepClone=p,e.getSynthesizedDeepCloneWithRenames=m,e.getSynthesizedDeepClones=function(n,t){return void 0===t&&(t=!0),n&&e.createNodeArray(n.map((function(e){return p(e,t)})),n.hasTrailingComma)},e.suppressLeadingAndTrailingTrivia=_,e.suppressLeadingTrivia=g,e.suppressTrailingTrivia=y,e.getUniqueName=function(n,t){for(var r=n,a=1;!e.isFileLevelUniqueName(t,r);a++)r=n+\"_\"+a;return r},e.getRenameLocation=function(n,t,r,a){for(var i=0,o=-1,s=0,c=n;s<c.length;s++){var l=c[s],u=l.fileName,d=l.textChanges;e.Debug.assert(u===t);for(var p=0,m=d;p<m.length;p++){var f=m[p],_=f.span,g=f.newText,y=E(g,r);if(-1!==y&&(o=_.start+i+y,!a))return o;i+=g.length-_.length}}return e.Debug.assert(a),e.Debug.assert(o>=0),o},e.copyLeadingComments=function(n,t,r,a,i){e.forEachLeadingCommentRange(r.text,n.pos,b(t,r,a,i,e.addSyntheticLeadingComment))},e.copyTrailingComments=function(n,t,r,a,i){e.forEachTrailingCommentRange(r.text,n.end,b(t,r,a,i,e.addSyntheticTrailingComment))},e.copyTrailingAsLeadingComments=function(n,t,r,a,i){e.forEachTrailingCommentRange(r.text,n.pos,b(t,r,a,i,e.addSyntheticLeadingComment))},e.getContextualTypeFromParent=function(e,n){var t=e.parent;switch(t.kind){case 196:return n.getContextualType(t);case 208:var r=t,a=r.left,i=r.operatorToken,o=r.right;return T(i.kind)?n.getTypeAtLocation(e===o?a:o):n.getContextualType(e);case 275:return t.expression===e?S(t,n):void 0;default:return n.getContextualType(e)}},e.quote=function(n,t){if(/^\\d+$/.test(n))return n;var r=t.quotePreference||\"auto\",a=JSON.stringify(n);switch(r){case\"auto\":case\"double\":return a;case\"single\":return\"'\"+e.stripQuotes(a).replace(\"'\",\"\\\\'\").replace('\\\\\"','\"')+\"'\";default:return e.Debug.assertNever(r)}},e.isEqualityOperatorKind=T,e.isStringLiteralOrTemplate=function(e){switch(e.kind){case 10:case 14:case 210:case 197:return!0;default:return!1}},e.hasIndexSignature=function(e){return!!e.getStringIndexType()||!!e.getNumberIndexType()},e.getSwitchedType=S,e.getTypeNodeIfAccessible=function(e,n,t,r){var a=t.getTypeChecker(),i=!0,o=function(){i=!1},s=a.typeToTypeNode(e,n,void 0,{trackSymbol:function(e,n,t){i=i&&0===a.isSymbolAccessible(e,n,t,!1).accessibility},reportInaccessibleThisError:o,reportPrivateInBaseOfClassExpression:o,reportInaccessibleUniqueSymbolError:o,moduleResolverHost:{readFile:r.readFile,fileExists:r.fileExists,directoryExists:r.directoryExists,getSourceFiles:t.getSourceFiles,getCurrentDirectory:t.getCurrentDirectory,getCommonSourceDirectory:t.getCommonSourceDirectory}});return i?s:void 0},e.syntaxRequiresTrailingCommaOrSemicolonOrASI=x,e.syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI=L,e.syntaxRequiresTrailingModuleBlockOrSemicolonOrASI=C,e.syntaxRequiresTrailingSemicolonOrASI=A,e.syntaxMayBeASICandidate=e.or(x,L,C,A),e.isASICandidate=function(n,t){var r=n.getLastToken(t);if(r&&26===r.kind)return!1;if(x(n.kind)){if(r&&27===r.kind)return!1}else if(C(n.kind)){if((a=e.last(n.getChildren(t)))&&e.isModuleBlock(a))return!1}else if(L(n.kind)){var a;if((a=e.last(n.getChildren(t)))&&e.isFunctionBlock(a))return!1}else if(!A(n.kind))return!1;if(227===n.kind)return!0;var i=e.findAncestor(n,(function(e){return!e.parent})),o=e.findNextToken(n,i,t);return!o||19===o.kind||t.getLineAndCharacterOfPosition(n.getEnd()).line!==t.getLineAndCharacterOfPosition(o.getStart(t)).line},e.probablyUsesSemicolons=function(n){var t=0,r=0;return e.forEachChild(n,(function a(i){if(A(i.kind)){var o=i.getLastToken(n);o&&26===o.kind?t++:r++}return t+r>=5||e.forEachChild(i,a)})),0===t&&r<=1||t/r>.2},e.tryGetDirectories=function(e,n){return N(e,e.getDirectories,n)||[]},e.tryReadDirectory=function(n,t,r,a,i){return N(n,n.readDirectory,t,r,a,i)||e.emptyArray},e.tryFileExists=D,e.tryDirectoryExists=function(n,t){return k((function(){return e.directoryProbablyExists(t,n)}))||!1},e.tryAndIgnoreErrors=k,e.tryIOAndConsumeErrors=N,e.findPackageJsons=function(n,t,r){var a=[];return e.forEachAncestorDirectory(n,(function(n){if(n===r)return!0;var i=e.combinePaths(n,\"package.json\");D(t,i)&&a.push(i)})),a},e.findPackageJson=function(n,t){var r;return e.forEachAncestorDirectory(n,(function(n){return\"node_modules\"===n||(!!(r=e.findConfigFile(n,(function(e){return D(t,e)}),\"package.json\"))||void 0)})),r},e.getPackageJsonsVisibleToFile=function(n,t){if(!t.fileExists)return[];var r=[];return e.forEachAncestorDirectory(e.getDirectoryPath(n),(function(n){var a=e.combinePaths(n,\"package.json\");if(t.fileExists(a)){var i=I(a,t);i&&r.push(i)}})),r},e.createPackageJsonInfo=I,e.consumesNodeCoreModules=function(n){return e.some(n.imports,(function(n){var t=n.text;return e.JsTyping.nodeCoreModules.has(t)}))},e.isInsideNodeModules=function(n){return e.contains(e.getPathComponents(n),\"node_modules\")}}(ts||(ts={})),function(e){e.createClassifier=function(){var o=e.createScanner(99,!1);function s(a,s,c){var l=0,u=0,d=[],p=function(n){switch(n){case 3:return{prefix:'\"\\\\\\n'};case 2:return{prefix:\"'\\\\\\n\"};case 1:return{prefix:\"/*\\n\"};case 4:return{prefix:\"`\\n\"};case 5:return{prefix:\"}\\n\",pushTemplate:!0};case 6:return{prefix:\"\",pushTemplate:!0};case 0:return{prefix:\"\"};default:return e.Debug.assertNever(n)}}(s),m=p.prefix,f=p.pushTemplate;a=m+a;var _=m.length;f&&d.push(15),o.setText(a);var g=0,y=[],v=0;do{l=o.scan(),e.isTrivia(l)||(E(),u=l);var h=o.getTextPos();if(r(o.getTokenPos(),h,_,i(l),y),h>=a.length){var b=t(o,l,e.lastOrUndefined(d));void 0!==b&&(g=b)}}while(1!==l);function E(){switch(l){case 43:case 67:n[u]||13!==o.reScanSlashToken()||(l=13);break;case 29:75===u&&v++;break;case 31:v>0&&v--;break;case 124:case 142:case 139:case 127:case 143:v>0&&!c&&(l=75);break;case 15:d.push(l);break;case 18:d.length>0&&d.push(l);break;case 19:if(d.length>0){var t=e.lastOrUndefined(d);15===t?17===(l=o.reScanTemplateToken())?d.pop():e.Debug.assertEqual(l,16,\"Should have been a template middle.\"):(e.Debug.assertEqual(t,18,\"Should have been an open brace\"),d.pop())}break;default:if(!e.isKeyword(l))break;24===u?l=75:e.isKeyword(u)&&e.isKeyword(l)&&!function(n,t){if(!e.isAccessibilityModifier(n))return!0;switch(t){case 130:case 141:case 128:case 119:return!0;default:return!1}}(u,l)&&(l=75)}}return{endOfLineState:g,spans:y}}return{getClassificationsForLine:function(n,t,r){return function(n,t){for(var r=[],i=n.spans,o=0,s=0;s<i.length;s+=3){var c=i[s],l=i[s+1],u=i[s+2];if(o>=0){var d=c-o;d>0&&r.push({length:d,classification:e.TokenClass.Whitespace})}r.push({length:l,classification:a(u)}),o=c+l}var p=t.length-o;p>0&&r.push({length:p,classification:e.TokenClass.Whitespace});return{entries:r,finalLexState:n.endOfLineState}}(s(n,t,r),n)},getEncodedLexicalClassifications:s}};var n=e.arrayToNumericMap([75,10,8,9,13,103,45,46,21,23,19,105,90],(function(e){return e}),(function(){return!0}));function t(n,t,r){switch(t){case 10:if(!n.isUnterminated())return;for(var a=n.getTokenText(),i=a.length-1,o=0;92===a.charCodeAt(i-o);)o++;if(0==(1&o))return;return 34===a.charCodeAt(0)?3:2;case 3:return n.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(t)){if(!n.isUnterminated())return;switch(t){case 17:return 5;case 14:return 4;default:return e.Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\"+t)}}return 15===r?6:void 0}}function r(e,n,t,r,a){if(8!==r){0===e&&t>0&&(e+=t);var i=n-e;i>0&&a.push(e-t,i,r)}}function a(n){switch(n){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function i(n){if(e.isKeyword(n))return 3;if(function(e){switch(e){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 97:case 96:case 122:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 73:case 72:case 74:case 69:case 70:case 71:case 63:case 64:case 65:case 67:case 68:case 62:case 27:case 60:return!0;default:return!1}}(n)||function(e){switch(e){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}(n))return 5;if(n>=18&&n<=74)return 10;switch(n){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 75:default:return e.isTemplateLiteralKind(n)?6:2}}function o(e,n){switch(n){case 248:case 244:case 245:case 243:e.throwIfCancellationRequested()}}function s(n,t,r,a,i){var s=[];return r.forEachChild((function c(l){if(l&&e.textSpanIntersectsWith(i,l.pos,l.getFullWidth())){if(o(t,l.kind),e.isIdentifier(l)&&!e.nodeIsMissing(l)&&a.has(l.escapedText)){var u=n.getSymbolAtLocation(l),d=u&&function n(t,r,a){var i=t.getFlags();return 0==(2885600&i)?void 0:32&i?11:384&i?12:524288&i?16:1536&i?4&r||1&r&&function(n){return e.some(n.declarations,(function(n){return e.isModuleDeclaration(n)&&1===e.getModuleInstanceState(n)}))}(t)?14:void 0:2097152&i?n(a.getAliasedSymbol(t),r,a):2&r?64&i?13:262144&i?15:void 0:void 0}(u,e.getMeaningFromLocation(l),n);d&&function(n,t,r){var a=t-n;e.Debug.assert(a>0,\"Classification had non-positive length of \"+a),s.push(n),s.push(a),s.push(r)}(l.getStart(r),l.getEnd(),d)}l.forEachChild(c)}})),{spans:s,endOfLineState:0}}function c(e){switch(e){case 1:return\"comment\";case 2:return\"identifier\";case 3:return\"keyword\";case 4:return\"number\";case 25:return\"bigint\";case 5:return\"operator\";case 6:return\"string\";case 8:return\"whitespace\";case 9:return\"text\";case 10:return\"punctuation\";case 11:return\"class name\";case 12:return\"enum name\";case 13:return\"interface name\";case 14:return\"module name\";case 15:return\"type parameter name\";case 16:return\"type alias name\";case 17:return\"parameter name\";case 18:return\"doc comment tag name\";case 19:return\"jsx open tag name\";case 20:return\"jsx close tag name\";case 21:return\"jsx self closing tag name\";case 22:return\"jsx attribute\";case 23:return\"jsx text\";case 24:return\"jsx attribute string literal value\";default:return}}function l(n){e.Debug.assert(n.spans.length%3==0);for(var t=n.spans,r=[],a=0;a<t.length;a+=3)r.push({textSpan:e.createTextSpan(t[a],t[a+1]),classificationType:c(t[a+2])});return r}function u(n,t,r){var a=r.start,i=r.length,s=e.createScanner(99,!1,t.languageVariant,t.text),c=e.createScanner(99,!1,t.languageVariant,t.text),l=[];return v(t),{spans:l,endOfLineState:0};function u(e,n,t){l.push(e),l.push(n),l.push(t)}function d(n,r,a,i){if(3===r){var o=e.parseIsolatedJSDocComment(t.text,a,i);if(o&&o.jsDoc)return o.jsDoc.parent=n,void function(e){var n=e.pos;if(e.tags)for(var t=0,r=e.tags;t<r.length;t++){var a=r[t];switch(a.pos!==n&&p(n,a.pos-n),u(a.pos,1,10),u(a.tagName.pos,a.tagName.end-a.tagName.pos,18),n=a.tagName.end,a.kind){case 310:i(a);break;case 314:m(a),n=a.end;break;case 313:case 311:v(a.typeExpression),n=a.end}}n!==e.end&&p(n,e.end-n);return;function i(e){e.isNameFirst&&(p(n,e.name.pos-n),u(e.name.pos,e.name.end-e.name.pos,17),n=e.name.end),e.typeExpression&&(p(n,e.typeExpression.pos-n),v(e.typeExpression),n=e.typeExpression.end),e.isNameFirst||(p(n,e.name.pos-n),u(e.name.pos,e.name.end-e.name.pos,17),n=e.name.end)}}(o.jsDoc)}else if(2===r&&function(n,r){var a=/(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/gim,i=t.text.substr(n,r),o=/^(\\/\\/\\/\\s*)(<)(?:(\\S+)((?:[^/]|\\/[^>])*)(\\/>)?)?/im.exec(i);if(!o)return!1;if(!(o[3]&&o[3]in e.commentPragmas))return!1;var s=n;p(s,o[1].length),u(s+=o[1].length,o[2].length,10),u(s+=o[2].length,o[3].length,21),s+=o[3].length;var c=o[4],l=s;for(;;){var d=a.exec(c);if(!d)break;var m=s+d.index;m>l&&(p(l,m-l),l=m),u(l,d[1].length,22),l+=d[1].length,d[2].length&&(p(l,d[2].length),l+=d[2].length),u(l,d[3].length,5),l+=d[3].length,d[4].length&&(p(l,d[4].length),l+=d[4].length),u(l,d[5].length,24),l+=d[5].length}(s+=o[4].length)>l&&p(l,s-l);o[5]&&(u(s,o[5].length,10),s+=o[5].length);var f=n+r;s<f&&p(s,f-s);return!0}(a,i))return;p(a,i)}function p(e,n){u(e,n,1)}function m(e){for(var n=0,t=e.getChildren();n<t.length;n++){v(t[n])}}function f(n,t,r){var a;for(a=t;a<r&&!e.isLineBreak(n.charCodeAt(a));a++);for(u(t,a-t,1),c.setTextPos(a);c.getTextPos()<r;)_()}function _(){var e=c.getTextPos(),n=c.scan(),t=c.getTextPos(),r=y(n);r&&u(e,t-e,r)}function g(n){if(e.isJSDoc(n))return!0;if(e.nodeIsMissing(n))return!0;var r=function(e){switch(e.parent&&e.parent.kind){case 266:if(e.parent.tagName===e)return 19;break;case 267:if(e.parent.tagName===e)return 20;break;case 265:if(e.parent.tagName===e)return 21;break;case 271:if(e.parent.name===e)return 22}return}(n);if(!e.isToken(n)&&11!==n.kind&&void 0===r)return!1;var a=11===n.kind?n.pos:function(n){for(s.setTextPos(n.pos);;){var r=s.getTextPos();if(!e.couldStartTrivia(t.text,r))return r;var a=s.scan(),i=s.getTextPos(),o=i-r;if(!e.isTrivia(a))return r;switch(a){case 4:case 5:continue;case 2:case 3:d(n,a,r,o),s.setTextPos(i);continue;case 7:var c=t.text,l=c.charCodeAt(r);if(60===l||62===l){u(r,o,1);continue}e.Debug.assert(124===l||61===l),f(c,r,i);break;case 6:break;default:e.Debug.assertNever(a)}}}(n),i=n.end-a;if(e.Debug.assert(i>=0),i>0){var o=r||y(n.kind,n);o&&u(a,i,o)}return!0}function y(n,t){if(e.isKeyword(n))return 3;if((29===n||31===n)&&t&&e.getTypeArgumentOrTypeParameterList(t.parent))return 10;if(e.isPunctuation(n)){if(t){var r=t.parent;if(62===n&&(241===r.kind||158===r.kind||155===r.kind||271===r.kind))return 5;if(208===r.kind||206===r.kind||207===r.kind||209===r.kind)return 5}return 10}if(8===n)return 4;if(9===n)return 25;if(10===n)return t&&271===t.parent.kind?24:6;if(13===n)return 6;if(e.isTemplateLiteralKind(n))return 6;if(11===n)return 23;if(75===n){if(t)switch(t.parent.kind){case 244:return t.parent.name===t?11:void 0;case 154:return t.parent.name===t?15:void 0;case 245:return t.parent.name===t?13:void 0;case 247:return t.parent.name===t?12:void 0;case 248:return t.parent.name===t?14:void 0;case 155:return t.parent.name===t?e.isThisIdentifier(t)?3:17:void 0}return 2}}function v(r){if(r&&e.decodedTextSpanIntersectsWith(a,i,r.pos,r.getFullWidth())){o(n,r.kind);for(var s=0,c=r.getChildren(t);s<c.length;s++){var l=c[s];g(l)||v(l)}}}}e.getSemanticClassifications=function(e,n,t,r,a){return l(s(e,n,t,r,a))},e.getEncodedSemanticClassifications=s,e.getSyntacticClassifications=function(e,n,t){return l(u(e,n,t))},e.getEncodedSyntacticClassifications=u}(ts||(ts={})),function(e){!function(n){!function(t){function r(e){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!0,entries:e.map((function(e){var t=e.name,r=e.kind,i=e.span;return{name:t,kind:r,kindModifiers:a(e.extension),sortText:n.SortText.LocationPriority,replacementSpan:i}}))}}function a(n){switch(n){case\".d.ts\":return\".d.ts\";case\".js\":return\".js\";case\".json\":return\".json\";case\".jsx\":return\".jsx\";case\".ts\":return\".ts\";case\".tsx\":return\".tsx\";case\".tsbuildinfo\":return e.Debug.fail(\"Extension .tsbuildinfo is unsupported.\");case void 0:return\"\";default:return e.Debug.assertNever(n)}}var i;function o(n,t,r,a,i,o){var l,u,d=t.parent;switch(d.kind){case 186:switch(d.parent.kind){case 168:return{kind:2,types:c(a.getTypeArgumentConstraint(d)),isNewIdentifier:!1};case 184:return s(a.getTypeFromTypeNode(d.parent.objectType));case 187:return{kind:0,paths:p(n,t,i,o,a)};case 177:if(!e.isTypeReferenceNode(d.parent.parent))return;var m=(l=d.parent,u=d,e.mapDefined(l.types,(function(n){return n!==u&&e.isLiteralTypeNode(n)&&e.isStringLiteral(n.literal)?n.literal.text:void 0})));return{kind:2,types:c(a.getTypeArgumentConstraint(d.parent)).filter((function(n){return!e.contains(m,n.value)})),isNewIdentifier:!1};default:return}case 279:return e.isObjectLiteralExpression(d.parent)&&d.name===t?s(a.getContextualType(d.parent)):v();case 194:var f=d,_=f.expression,g=f.argumentExpression;return t===g?s(a.getTypeAtLocation(_)):void 0;case 195:case 196:if(!e.isRequireCall(d,!1)&&!e.isImportCall(d)){var y=e.SignatureHelp.getArgumentInfoForCompletions(t,r,n);return y?function(n,t){var r=!1,a=e.createMap(),i=[];return t.getResolvedSignature(n.invocation,i,n.argumentCount),{kind:2,types:e.flatMap(i,(function(i){if(e.signatureHasRestParameter(i)||!(n.argumentCount>i.parameters.length)){var o=t.getParameterType(i,n.argumentIndex);return r=r||!!(4&o.flags),c(o,a)}})),isNewIdentifier:r}}(y,a):v()}case 253:case 259:case 263:return{kind:0,paths:p(n,t,i,o,a)};default:return v()}function v(){return{kind:2,types:c(e.getContextualTypeFromParent(t,a)),isNewIdentifier:!1}}}function s(n){return n&&{kind:1,symbols:n.getApparentProperties(),hasIndexSignature:e.hasIndexSignature(n)}}function c(n,t){return void 0===t&&(t=e.createMap()),n?(n=e.skipConstraint(n)).isUnion()?e.flatMap(n.types,(function(e){return c(e,t)})):!n.isStringLiteral()||1024&n.flags||!e.addToSeen(t,n.value)?e.emptyArray:[n]:e.emptyArray}function l(e,n,t){return{name:e,kind:n,extension:t}}function u(e){return l(e,\"directory\",void 0)}function d(n,t,r){var a=function(n,t){var r=Math.max(n.lastIndexOf(e.directorySeparator),n.lastIndexOf(\"\\\\\")),a=-1!==r?r+1:0,i=n.length-a;return 0===i||e.isIdentifierText(n.substr(a,i),99)?void 0:e.createTextSpan(t+a,i)}(n,t);return r.map((function(e){return{name:e.name,kind:e.kind,extension:e.extension,span:a}}))}function p(n,t,r,a,i){return d(t.text,t.getStart(n)+1,function(n,t,r,a,i){var o=e.normalizeSlashes(t.text),s=n.path,c=e.getDirectoryPath(s);return function(e){if(e&&e.length>=2&&46===e.charCodeAt(0)){var n=e.length>=3&&46===e.charCodeAt(1)?2:1,t=e.charCodeAt(n);return 47===t||92===t}return!1}(o)||!r.baseUrl&&(e.isRootedDiskPath(o)||e.isUrl(o))?function(n,t,r,a,i){var o=m(r);return r.rootDirs?function(n,t,r,a,i,o,s){var c=i.project||o.getCurrentDirectory(),l=!(o.useCaseSensitiveFileNames&&o.useCaseSensitiveFileNames()),u=function(n,t,r,a){n=n.map((function(n){return e.normalizePath(e.isRootedDiskPath(n)?n:e.combinePaths(t,n))}));var i=e.firstDefined(n,(function(n){return e.containsPath(n,r,t,a)?r.substr(n.length):void 0}));return e.deduplicate(__spreadArrays(n.map((function(n){return e.combinePaths(n,i)})),[r]),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}(n,c,r,l);return e.flatMap(u,(function(e){return _(t,e,a,o,s)}))}(r.rootDirs,n,t,o,r,a,i):_(n,t,o,a,i)}(o,c,r,a,s):function(n,t,r,a,i){var o=r.baseUrl,s=r.paths,c=[],u=m(r);if(o){var d=r.project||a.getCurrentDirectory(),p=e.normalizePath(e.combinePaths(d,o));_(n,p,u,a,void 0,c),s&&g(c,n,p,u.extensions,s,a)}for(var f=y(n),v=0,b=function(n,t,r){var a=r.getAmbientModules().map((function(n){return e.stripQuotes(n.name)})).filter((function(t){return e.startsWith(t,n)}));if(void 0!==t){var i=e.ensureTrailingDirectorySeparator(t);return a.map((function(n){return e.removePrefix(n,i)}))}return a}(n,f,i);v<b.length;v++){var T=b[v];c.push(l(T,\"external module name\",void 0))}if(h(a,r,t,f,u,c),e.getEmitModuleResolutionKind(r)===e.ModuleResolutionKind.NodeJs){var S=!1;if(void 0===f)for(var x=function(e){c.some((function(n){return n.name===e}))||(S=!0,c.push(l(e,\"external module name\",void 0)))},L=0,C=function(n,t){if(!n.readFile||!n.fileExists)return e.emptyArray;for(var r=[],a=0,i=e.findPackageJsons(t,n);a<i.length;a++)for(var o=i[a],s=e.readJson(o,n),c=0,l=E;c<l.length;c++){var u=l[c],d=s[u];if(d)for(var p in d)d.hasOwnProperty(p)&&!e.startsWith(p,\"@types/\")&&r.push(p)}return r}(a,t);L<C.length;L++){var A=C[L];x(A)}S||e.forEachAncestorDirectory(t,(function(t){var r=e.combinePaths(t,\"node_modules\");e.tryDirectoryExists(a,r)&&_(n,r,u,a,void 0,c)}))}return c}(o,c,r,a,i)}(n,t,r,a,i))}function m(e,n){return void 0===n&&(n=!1),{extensions:f(e),includeExtensions:n}}function f(n){var t=e.getSupportedExtensions(n);return n.resolveJsonModule&&e.getEmitModuleResolutionKind(n)===e.ModuleResolutionKind.NodeJs?t.concat(\".json\"):t}function _(n,t,r,a,i,o){var s=r.extensions,c=r.includeExtensions;void 0===o&&(o=[]),void 0===n&&(n=\"\"),n=e.normalizeSlashes(n),e.hasTrailingDirectorySeparator(n)||(n=e.getDirectoryPath(n)),\"\"===n&&(n=\".\"+e.directorySeparator),n=e.ensureTrailingDirectorySeparator(n);var d=e.resolvePath(t,n),p=e.hasTrailingDirectorySeparator(d)?d:e.getDirectoryPath(d),m=!(a.useCaseSensitiveFileNames&&a.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(a,p))return o;var f=e.tryReadDirectory(a,p,s,void 0,[\"./*\"]);if(f){for(var _=e.createMap(),y=0,v=f;y<v.length;y++){var h=v[y];if(h=e.normalizePath(h),!i||0!==e.comparePaths(h,i,t,m)){var b=c||e.fileExtensionIs(h,\".json\")?e.getBaseFileName(h):e.removeFileExtension(e.getBaseFileName(h));_.set(b,e.tryGetExtensionFromPath(h))}}_.forEach((function(e,n){o.push(l(n,\"script\",e))}))}var E=e.tryGetDirectories(a,p);if(E)for(var T=0,S=E;T<S.length;T++){var x=S[T],L=e.getBaseFileName(e.normalizePath(x));\"@types\"!==L&&o.push(u(L))}var C=e.findPackageJson(p,a);if(C){var A=e.readJson(C,a).typesVersions;if(\"object\"==typeof A){var D=e.getPackageJsonTypesVersionsPaths(A),k=D&&D.paths,N=d.slice(e.ensureTrailingDirectorySeparator(p).length);k&&g(o,N,p,s,k,a)}}return o}function g(n,t,r,a,i,o){for(var s in i)if(e.hasProperty(i,s)){var c=i[s];if(c)for(var u=function(e,t,r){n.some((function(n){return n.name===e}))||n.push(l(e,t,r))},d=0,p=v(s,c,t,r,a,o);d<p.length;d++){var m=p[d];u(m.name,m.kind,m.extension)}}}function y(n){return T(n)?e.hasTrailingDirectorySeparator(n)?n:e.getDirectoryPath(n):void 0}function v(n,t,r,a,i,o){if(!e.endsWith(n,\"*\"))return e.stringContains(n,\"*\")?e.emptyArray:d(n);var s=n.slice(0,n.length-1),c=e.tryRemovePrefix(r,s);return void 0===c?d(s):e.flatMap(t,(function(n){return function(n,t,r,a,i){if(!i.readDirectory)return;var o=e.hasZeroOrOneAsteriskCharacter(r)?e.tryParsePattern(r):void 0;if(!o)return;var s=e.resolvePath(o.prefix),c=e.hasTrailingDirectorySeparator(o.prefix)?s:e.getDirectoryPath(s),d=e.hasTrailingDirectorySeparator(o.prefix)?\"\":e.getBaseFileName(s),p=T(n),m=p?e.hasTrailingDirectorySeparator(n)?n:e.getDirectoryPath(n):void 0,f=p?e.combinePaths(c,d+m):c,_=e.normalizePath(o.suffix),g=e.normalizePath(e.combinePaths(t,f)),y=p?g:e.ensureTrailingDirectorySeparator(g)+d,v=_?\"**/*\":\"./*\",h=e.mapDefined(e.tryReadDirectory(i,g,a,void 0,[v]),(function(n){var t=e.tryGetExtensionFromPath(n),r=E(n);return void 0===r?void 0:l(e.removeFileExtension(r),\"script\",t)})),b=e.mapDefined(e.tryGetDirectories(i,g).map((function(n){return e.combinePaths(g,n)})),(function(e){var n=E(e);return void 0===n?void 0:u(n)}));return __spreadArrays(h,b);function E(n){var t,r,a,i=(t=e.normalizePath(n),r=y,a=_,e.startsWith(t,r)&&e.endsWith(t,a)?t.slice(r.length,t.length-a.length):void 0);return void 0===i?void 0:function(n){return n[0]===e.directorySeparator?n.slice(1):n}(i)}}(c,a,n,i,o)}));function d(n){return e.startsWith(n,r)?[u(n)]:e.emptyArray}}function h(n,t,r,a,i,o){void 0===o&&(o=[]);for(var s=e.createMap(),c=0,u=e.tryAndIgnoreErrors((function(){return e.getEffectiveTypeRoots(t,n)}))||e.emptyArray;c<u.length;c++){f(u[c])}for(var d=0,p=e.findPackageJsons(r,n);d<p.length;d++){var m=p[d];f(e.combinePaths(e.getDirectoryPath(m),\"node_modules/@types\"))}return o;function f(r){if(e.tryDirectoryExists(n,r))for(var c=0,u=e.tryGetDirectories(n,r);c<u.length;c++){var d=u[c],p=e.unmangleScopedPackageName(d);if(!t.types||e.contains(t.types,p))if(void 0===a)s.has(p)||(o.push(l(p,\"external module name\",void 0)),s.set(p,!0));else{var m=e.combinePaths(r,d),f=e.tryRemoveDirectoryPrefix(a,p,e.hostGetCanonicalFileName(n));void 0!==f&&_(f,m,i,n,void 0,o)}}}}t.getStringLiteralCompletions=function(t,a,i,s,c,l,u,p){if(e.isInReferenceComment(t,a)){var f=function(n,t,r,a){var i=e.getTokenAtPosition(n,t),o=e.getLeadingCommentRanges(n.text,i.pos),s=o&&e.find(o,(function(e){return t>=e.pos&&t<=e.end}));if(!s)return;var c=n.text.slice(s.pos,t),l=b.exec(c);if(!l)return;var u=l[1],p=l[2],f=l[3],g=e.getDirectoryPath(n.path),v=\"path\"===p?_(f,g,m(r,!0),a,n.path):\"types\"===p?h(a,r,g,y(f),m(r)):e.Debug.fail();return d(f,s.pos+u.length,v)}(t,a,c,l);return f&&r(f)}if(e.isInString(t,a,i))return i&&e.isStringLiteralLike(i)?function(t,a,i,o,s){if(void 0===t)return;switch(t.kind){case 0:return r(t.paths);case 1:var c=[];return n.getCompletionEntriesFromSymbols(t.symbols,c,a,a,i,99,o,4,s),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:t.hasIndexSignature,entries:c};case 2:c=t.types.map((function(e){return{name:e.value,kindModifiers:\"\",kind:\"string\",sortText:\"0\"}}));return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:t.isNewIdentifier,entries:c};default:return e.Debug.assertNever(t)}}(o(t,i,a,s,c,l),t,s,u,p):void 0},t.getStringLiteralCompletionDetails=function(t,r,i,s,c,l,u,d){if(s&&e.isStringLiteralLike(s)){var p=o(r,s,i,c,l,u);return p&&function(t,r,i,o,s,c){switch(i.kind){case 0:return(l=e.find(i.paths,(function(e){return e.name===t})))&&n.createCompletionDetails(t,a(l.extension),l.kind,[e.textPart(t)]);case 1:var l;return(l=e.find(i.symbols,(function(e){return e.name===t})))&&n.createCompletionDetailsForSymbol(l,s,o,r,c);case 2:return e.find(i.types,(function(e){return e.value===t}))?n.createCompletionDetails(t,\"\",\"type\",[e.textPart(t)]):void 0;default:return e.Debug.assertNever(i)}}(t,s,p,r,c,d)}},function(e){e[e.Paths=0]=\"Paths\",e[e.Properties=1]=\"Properties\",e[e.Types=2]=\"Types\"}(i||(i={}));var b=/^(\\/\\/\\/\\s*<reference\\s+(path|types)\\s*=\\s*(?:'|\"))([^\\3\"]*)$/,E=[\"dependencies\",\"devDependencies\",\"peerDependencies\",\"optionalDependencies\"];function T(n){return e.stringContains(n,e.directorySeparator)}}(n.StringCompletions||(n.StringCompletions={}))}(e.Completions||(e.Completions={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i;function o(e){return!!(4&e.kind)}function s(e){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:e}}function c(n,t){return e.isSourceFileJS(n)&&!e.isCheckJsEnabledForFile(n,t)}function l(e){switch(e){case 0:case 3:case 2:return!0;default:return!1}}!function(e){e.LocationPriority=\"0\",e.OptionalMember=\"1\",e.MemberDeclaredBySpreadAssignment=\"2\",e.SuggestedClassMembers=\"3\",e.GlobalsOrKeywords=\"4\",e.AutoImportSuggestions=\"5\",e.JavascriptIdentifiers=\"6\"}(t=n.SortText||(n.SortText={})),function(e){e[e.ThisType=1]=\"ThisType\",e[e.SymbolMember=2]=\"SymbolMember\",e[e.Export=4]=\"Export\",e[e.Promise=8]=\"Promise\",e[e.Nullable=16]=\"Nullable\",e[e.SymbolMemberNoExport=2]=\"SymbolMemberNoExport\",e[e.SymbolMemberExport=6]=\"SymbolMemberExport\"}(r||(r={})),function(e){e[e.None=0]=\"None\",e[e.All=1]=\"All\",e[e.ClassElementKeywords=2]=\"ClassElementKeywords\",e[e.InterfaceElementKeywords=3]=\"InterfaceElementKeywords\",e[e.ConstructorParameterKeywords=4]=\"ConstructorParameterKeywords\",e[e.FunctionLikeBodyKeywords=5]=\"FunctionLikeBodyKeywords\",e[e.TypeAssertionKeywords=6]=\"TypeAssertionKeywords\",e[e.TypeKeywords=7]=\"TypeKeywords\",e[e.Last=7]=\"Last\"}(a||(a={})),function(e){e[e.Continue=0]=\"Continue\",e[e.Success=1]=\"Success\",e[e.Fail=2]=\"Fail\"}(i||(i={})),n.createImportSuggestionsForFileCache=function(){var n,t,r;return{isEmpty:function(){return!n},clear:function(){n=void 0,r=void 0,t=void 0},set:function(e,a,i){n=a,r=e,i&&(t=i)},get:function(a,i,o){if(a===r)return o?t===o?n:void 0:(e.forEach(n,(function(e){e.symbol.declarations&&(e.symbol=i.getMergedSymbol(e.origin.isDefaultExport&&e.symbol.declarations[0].localSymbol||e.symbol.declarations[0].symbol)),e.origin.moduleSymbol.declarations&&(e.origin.moduleSymbol=i.getMergedSymbol(e.origin.moduleSymbol.declarations[0].symbol))})),n)}}},n.getCompletionsAtPosition=function(r,a,i,o,u,d,m){var f=a.getTypeChecker(),_=a.getCompilerOptions(),g=e.findPrecedingToken(u,o);if(!m||e.isInString(o,u,g)||function(n,t,r,a){switch(t){case\".\":case\"@\":return!0;case'\"':case\"'\":case\"`\":return!!r&&e.isStringLiteralOrTemplate(r)&&a===r.getStart(n)+1;case\"<\":return!!r&&29===r.kind&&(!e.isBinaryExpression(r.parent)||w(r.parent));case\"/\":return!!r&&(e.isStringLiteralLike(r)?!!e.tryGetImportFromModuleSpecifier(r):43===r.kind&&e.isJsxClosingElement(r.parent));default:return e.Debug.assertNever(t)}}(o,m,g,u)){var v=n.StringCompletions.getStringLiteralCompletions(o,u,g,f,_,r,i,d);if(v)return v;if(g&&e.isBreakOrContinueStatement(g.parent)&&(76===g.kind||81===g.kind||75===g.kind))return function(n){var r=function(n){var r=[],a=e.createMap(),i=n;for(;i&&!e.isFunctionLike(i);){if(e.isLabeledStatement(i)){var o=i.label.text;a.has(o)||(a.set(o,!0),r.push({name:o,kindModifiers:\"\",kind:\"label\",sortText:t.LocationPriority}))}i=i.parent}return r}(n);if(r.length)return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:r}}(g.parent);var h=x(a,i,o,c(o,_),u,d,void 0,r);if(h)switch(h.kind){case 0:return function(n,r,a,i,o,s){var u=o.symbols,d=o.completionKind,m=o.isInSnippetScope,f=o.isNewIdentifierLocation,_=o.location,g=o.propertyAccessToConvert,v=o.keywordFilters,h=o.literals,b=o.symbolToOriginInfoMap,E=o.recommendedCompletion,T=o.isJsxInitializer,S=o.insideJsDocTagTypeExpression,x=o.symbolToSortTextMap;if(_&&_.parent&&e.isJsxClosingElement(_.parent)){var L=_.parent.parent.openingElement.tagName,A=!!e.findChildOfKind(_.parent,31,n);return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,entries:[{name:L.getFullText(n)+(A?\"\":\">\"),kind:\"class\",kindModifiers:void 0,sortText:t.LocationPriority}]}}var k=[];if(c(n,a)){var N=y(u,k,_,n,r,a.target,i,d,s,g,T,E,b,x);!function(n,r,a,i,o){e.getNameTable(n).forEach((function(n,s){if(n!==r){var c=e.unescapeLeadingUnderscores(s);e.addToSeen(a,c)&&e.isIdentifierText(c,i)&&o.push({name:c,kind:\"warning\",kindModifiers:\"\",sortText:t.JavascriptIdentifiers})}}))}(n,_.pos,N,a.target,k)}else{if(!(f||u&&0!==u.length||0!==v))return;y(u,k,_,n,r,a.target,i,d,s,g,T,E,b,x)}if(0!==v)for(var I=e.arrayToSet(k,(function(e){return e.name})),M=0,O=function(n,t){if(!t)return D(n);var r=n+7+1;return C[r]||(C[r]=D(n).filter((function(n){return!function(e){switch(e){case 121:case 124:case 150:case 127:case 129:case 87:case 149:case 112:case 131:case 113:case 132:case 133:case 134:case 135:case 136:case 139:case 140:case 116:case 117:case 118:case 137:case 142:case 143:case 144:case 146:case 147:return!0;default:return!1}}(e.stringToToken(n.name))})))}(v,!S&&e.isSourceFileJS(n));M<O.length;M++){var R=O[M];I.has(R.name)||k.push(R)}for(var P=0,w=h;P<w.length;P++){var F=w[P];k.push(p(F))}return{isGlobalCompletion:m,isMemberCompletion:l(d),isNewIdentifierLocation:f,entries:k}}(o,f,_,i,h,d);case 1:return s(e.JsDoc.getJSDocTagNameCompletions());case 2:return s(e.JsDoc.getJSDocTagCompletions());case 3:return s(e.JsDoc.getJSDocParameterNameCompletions(h.tag));default:return e.Debug.assertNever(h)}}};var u,d=function(n){return\"object\"==typeof n?e.pseudoBigIntToString(n)+\"n\":JSON.stringify(n)};function p(e){return{name:d(e),kind:\"string\",kindModifiers:\"\",sortText:t.LocationPriority}}function m(n,t,r,a,i,s,c,l,u,d,p,m){var y,v,h=l&&function(e){return!!(16&e.kind)}(l),b=l&&function(e){return!!(2&e.kind)}(l)||c;if(l&&function(e){return!!(1&e.kind)}(l))y=c?\"this\"+(h?\"?.\":\"\")+\"[\"+e.quote(s,m)+\"]\":\"this\"+(h?\"?.\":\".\")+s;else if((b||h)&&d){y=b?c?\"[\"+e.quote(s,m)+\"]\":\"[\"+s+\"]\":s,(h||d.questionDotToken)&&(y=\"?.\"+y);var E=e.findChildOfKind(d,24,a)||e.findChildOfKind(d,28,a);if(!E)return;var T=e.startsWith(s,d.name.text)?d.name.end:E.end;v=e.createTextSpanFromBounds(E.getStart(a),T)}if(p&&(void 0===y&&(y=s),y=\"{\"+y+\"}\",\"boolean\"!=typeof p&&(v=e.createTextSpanFromNode(p,a))),l&&function(e){return!!(8&e.kind)}(l)&&d){void 0===y&&(y=s);var S=\"(await \"+d.expression.getText()+\")\";y=c?\"\"+S+y:S+(h?\"?.\":\".\")+y,v=e.createTextSpanFromBounds(d.getStart(a),d.end)}if(void 0===y||m.includeCompletionsWithInsertText)return{name:s,kind:e.SymbolDisplay.getSymbolKind(i,n,r),kindModifiers:e.SymbolDisplay.getSymbolModifiers(n),sortText:t,source:g(l),hasAction:_(!!l&&o(l)),isRecommended:_(f(n,u,i)),insertText:y,replacementSpan:v}}function f(e,n,t){return e===n||!!(1048576&e.flags)&&t.getExportSymbolOfSymbol(e)===n}function _(e){return!!e||void 0}function g(n){return n&&o(n)?e.stripQuotes(n.moduleSymbol.name):void 0}function y(n,r,a,i,o,s,c,l,u,d,p,f,_,g){for(var y=e.timestamp(),v=e.createMap(),h=0,b=n;h<b.length;h++){var E=b[h],T=_?_[e.getSymbolId(E)]:void 0,S=L(E,s,T,l);if(S){var x=S.name,C=S.needsConvertPropertyAccess;if(!v.has(x)){var A=m(E,g&&g[e.getSymbolId(E)]||t.LocationPriority,a,i,o,x,C,T,f,d,p,u);A&&(T||void 0===E.parent&&!e.some(E.declarations,(function(e){return e.getSourceFile()===a.getSourceFile()}))||v.set(x,!0),r.push(A))}}}return c(\"getCompletionsAtPosition: getCompletionEntriesFromSymbols: \"+(e.timestamp()-y)),v}function v(n,t,r,a,i,o){var s=n.getCompilerOptions(),l=x(n,t,r,c(r,s),a,{includeCompletionsForModuleExports:!0,includeCompletionsWithInsertText:!0},i,o);if(!l)return{type:\"none\"};if(0!==l.kind)return{type:\"request\",request:l};var u=l.symbols,p=l.literals,m=l.location,f=l.completionKind,_=l.symbolToOriginInfoMap,y=l.previousToken,v=l.isJsxInitializer,h=e.find(p,(function(e){return d(e)===i.name}));return void 0!==h?{type:\"literal\",literal:h}:e.firstDefined(u,(function(n){var t=_[e.getSymbolId(n)],r=L(n,s.target,t,f);return r&&r.name===i.name&&g(t)===i.source?{type:\"symbol\",symbol:n,location:m,symbolToOriginInfoMap:_,previousToken:y,isJsxInitializer:v}:void 0}))||{type:\"none\"}}function h(n,t,r){return t&&o(t)&&(t.isDefaultExport&&\"default\"===n.escapedName||\"export=\"===n.escapedName)?e.firstDefined(n.declarations,(function(n){return e.isExportAssignment(n)&&e.isIdentifier(n.expression)?n.expression.text:void 0}))||e.codefix.moduleSymbolToValidIdentifier(t.moduleSymbol,r):n.name}function b(n,t,r){return T(n,\"\",t,[e.displayPart(n,r)])}function E(n,t,r,a,i,o,s){var c=t.runWithCancellationToken(i,(function(t){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(t,n,r,a,a,7)})),l=c.displayParts,u=c.documentation,d=c.symbolKind,p=c.tags;return T(n.name,e.SymbolDisplay.getSymbolModifiers(n),d,l,u,p,o,s)}function T(e,n,t,r,a,i,o,s){return{name:e,kindModifiers:n,kind:t,displayParts:r,documentation:a,tags:i,codeActions:o,source:s}}function S(n,t,r){var a=r.getAccessibleSymbolChain(n,t,67108863,!1);return a?e.first(a):n.parent&&(function(e){return e.declarations.some((function(e){return 288===e.kind}))}(n.parent)?n:S(n.parent,t,r))}function x(n,r,a,i,o,s,c,l){var u=n.getTypeChecker(),d=e.timestamp(),p=e.getTokenAtPosition(a,o);r(\"getCompletionData: Get current token: \"+(e.timestamp()-d)),d=e.timestamp();var m=e.isInComment(a,o,p);r(\"getCompletionData: Is inside comment: \"+(e.timestamp()-d));var f=!1,_=!1;if(m){if(e.hasDocComment(a,o)){if(64===a.text.charCodeAt(o-1))return{kind:1};var g=e.getLineStartPositionForPosition(o,a);if(!a.text.substring(g,o).match(/[^\\*|\\s|(/\\*\\*)]/))return{kind:2}}var y=function(n,t){var r=e.findAncestor(n,e.isJSDoc);return r&&r.tags&&(e.rangeContainsPosition(r,t)?e.findLast(r.tags,(function(e){return e.pos<t})):void 0)}(p,o);if(y){if(y.tagName.pos<=o&&o<=y.tagName.end)return{kind:1};if(function(e){switch(e.kind){case 310:case 316:case 311:case 313:case 315:return!0;default:return!1}}(y)&&y.typeExpression&&292===y.typeExpression.kind&&((p=e.getTokenAtPosition(a,o))&&(e.isDeclarationName(p)||316===p.parent.kind&&p.parent.name===p)||(f=le(y.typeExpression))),e.isJSDocParameterTag(y)&&(e.nodeIsMissing(y.name)||y.name.pos<=o&&o<=y.name.end))return{kind:3,tag:y}}if(!f)return void r(\"Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.\")}d=e.timestamp();var v=e.findPrecedingToken(o,a,void 0);r(\"getCompletionData: Get previous token 1: \"+(e.timestamp()-d));var b=v;if(b&&o<=b.end&&(e.isIdentifier(b)||e.isKeyword(b.kind))){var E=e.timestamp();b=e.findPrecedingToken(b.getFullStart(),a,void 0),r(\"getCompletionData: Get previous token 2: \"+(e.timestamp()-E))}var T,x=p,L=!1,C=!1,A=!1,D=!1,I=!1,F=e.getTouchingPropertyName(a,o);if(b){if(function(n){var t=e.timestamp(),a=function(n){return(e.isRegularExpressionLiteral(n)||e.isStringTextContainingNode(n))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(n)),o)||o===n.end&&(!!n.isUnterminated||e.isRegularExpressionLiteral(n)))}(n)||function(n){var t=n.parent,r=t.kind;switch(n.kind){case 27:return 241===r||242===r||224===r||247===r||ie(r)||245===r||189===r||246===r||e.isClassLike(t)&&!!t.typeParameters&&t.typeParameters.end>=n.pos;case 24:return 189===r;case 58:return 190===r;case 22:return 189===r;case 20:return 278===r||ie(r);case 18:return 247===r;case 29:return 244===r||213===r||245===r||246===r||e.isFunctionLikeKind(r);case 119:return 158===r&&!e.isClassLike(t.parent);case 25:return 155===r||!!t.parent&&189===t.parent.kind;case 118:case 116:case 117:return 155===r&&!e.isConstructorDeclaration(t.parent);case 122:return 257===r||261===r||255===r;case 130:case 141:return!P(n);case 79:case 87:case 113:case 93:case 108:case 95:case 114:case 80:case 120:case 144:return!0;case 41:return e.isFunctionLike(n.parent)&&!e.isMethodDeclaration(n.parent)}if(N(M(n))&&P(n))return!1;if(ae(n)&&(!e.isIdentifier(n)||e.isParameterPropertyModifier(M(n))||le(n)))return!1;switch(M(n)){case 121:case 79:case 80:case 129:case 87:case 93:case 113:case 114:case 116:case 117:case 118:case 119:case 108:case 120:return!0;case 125:return e.isPropertyDeclaration(n.parent)}return e.isDeclarationName(n)&&!e.isJsxAttribute(n.parent)&&!(e.isClassLike(n.parent)&&(n!==v||o>v.end))}(n)||function(e){if(8===e.kind){var n=e.getFullText();return\".\"===n.charAt(n.length-1)}return!1}(n)||function(e){if(11===e.kind)return!0;if(31===e.kind&&e.parent){if(266===e.parent.kind)return!0;if(267===e.parent.kind||265===e.parent.kind)return!!e.parent.parent&&264===e.parent.parent.kind}return!1}(n);return r(\"getCompletionsAtPosition: isCompletionListBlocker: \"+(e.timestamp()-t)),a}(b))return void r(\"Returning an empty list because completion was requested in an invalid position.\");var G=b.parent;if(24===b.kind||28===b.kind)switch(L=24===b.kind,C=28===b.kind,G.kind){case 193:if((x=(T=G).expression).end===b.pos&&e.isCallExpression(x)&&x.getChildCount(a)&&21!==e.last(x.getChildren(a)).kind)return;break;case 152:x=G.left;break;case 248:x=G.name;break;case 187:case 218:x=G;break;default:return}else if(1===a.languageVariant){if(G&&193===G.kind&&(b=G,G=G.parent),p.parent===F)switch(p.kind){case 31:264!==p.parent.kind&&266!==p.parent.kind||(F=p);break;case 43:265===p.parent.kind&&(F=p)}switch(G.kind){case 267:43===b.kind&&(D=!0,F=b);break;case 208:if(!w(G))break;case 265:case 264:case 266:29===b.kind&&(A=!0,F=b);break;case 271:switch(v.kind){case 62:I=!0;break;case 75:G!==v.parent&&!G.initializer&&e.findChildOfKind(G,62,a)&&(I=v)}}}}var B=e.timestamp(),V=5,U=!1,j=0,K=[],H=[],W=[],z=l.getImportSuggestionsCache&&l.getImportSuggestionsCache();if(L||C)!function(){V=2;var n=e.isLiteralImportTypeNode(x),t=f||n&&!x.isTypeOf||e.isPartOfTypeNode(x.parent)||e.isPossiblyTypeArgumentPosition(b,a,u),r=e.isInRightSideOfInternalImportEqualsDeclaration(x);if(e.isEntityName(x)||n){var i=e.isModuleDeclaration(x.parent);i&&(U=!0);var o=u.getSymbolAtLocation(x);if(o&&1920&(o=e.skipAlias(o,u)).flags){for(var c=e.Debug.assertEachDefined(u.getExportsOfModule(o),\"getExportsOfModule() should all be defined\"),l=function(e){return u.isValidPropertyAccess(n?x:x.parent,e.name)},d=function(e){return re(e)},p=i?function(e){return!!(1920&e.flags)&&!e.declarations.every((function(e){return e.parent===x.parent}))}:r?function(e){return d(e)||l(e)}:t?d:l,m=0,_=c;m<_.length;m++){var g=_[m];p(g)&&K.push(g)}if(!t&&o.declarations&&o.declarations.some((function(e){return 288!==e.kind&&248!==e.kind&&247!==e.kind}))){var y=u.getTypeOfSymbolAtLocation(o,x).getNonOptionalType(),v=!1;if(y.isNullableType())((E=L&&!C&&!1!==s.includeAutomaticOptionalChainCompletions)||C)&&(y=y.getNonNullableType(),E&&(v=!0));$(y,!!(32768&x.flags),v)}return}}if(e.isMetaProperty(x)&&(98===x.keywordToken||95===x.keywordToken)){var h=98===x.keywordToken?\"target\":\"meta\";return void K.push(u.createSymbol(4,e.escapeLeadingUnderscores(h)))}if(!t){var E;y=u.getTypeAtLocation(x).getNonOptionalType(),v=!1;if(y.isNullableType())((E=L&&!C&&!1!==s.includeAutomaticOptionalChainCompletions)||C)&&(y=y.getNonNullableType(),E&&(v=!0));$(y,!!(32768&x.flags),v)}}();else if(A){var q=e.Debug.assertEachDefined(u.getJsxIntrinsicTagNamesAt(F),\"getJsxIntrinsicTagNames() should all be defined\");ne(),K=q.concat(K),V=3,j=0}else if(D){var J=b.parent.parent.openingElement.tagName,X=u.getSymbolAtLocation(J);X&&(K=[X]),V=3,j=0}else if(!ne())return;r(\"getCompletionData: Semantic work: \"+(e.timestamp()-B));var Y=v&&function(n,t,r,a){var i=n.parent;switch(n.kind){case 75:return e.getContextualTypeFromParent(n,a);case 62:switch(i.kind){case 241:return a.getContextualType(i.initializer);case 208:return a.getTypeAtLocation(i.left);case 271:return a.getContextualTypeForJsxAttribute(i);default:return}case 98:return a.getContextualType(i);case 77:return e.getSwitchedType(e.cast(i,e.isCaseClause),a);case 18:return e.isJsxExpression(i)&&264!==i.parent.kind?a.getContextualTypeForJsxAttribute(i.parent):void 0;default:var o=e.SignatureHelp.getArgumentInfoForCompletions(n,t,r);return o?a.getContextualTypeForArgumentAtIndex(o.invocation,o.argumentIndex+(27===n.kind?1:0)):e.isEqualityOperatorKind(n.kind)&&e.isBinaryExpression(i)&&e.isEqualityOperatorKind(i.operatorToken.kind)?a.getTypeAtLocation(i.left):a.getContextualType(n)}}(v,o,a,u),Q=e.mapDefined(Y&&(Y.isUnion()?Y.types:[Y]),(function(e){return e.isLiteral()?e.value:void 0})),Z=v&&Y&&function(n,t,r){return e.firstDefined(t&&(t.isUnion()?t.types:[t]),(function(t){var a=t&&t.symbol;return a&&424&a.flags&&!e.isAbstractConstructorSymbol(a)?S(a,n,r):void 0}))}(v,Y,u);return{kind:0,symbols:K,completionKind:V,isInSnippetScope:_,propertyAccessToConvert:T,isNewIdentifierLocation:U,location:F,keywordFilters:j,literals:Q,symbolToOriginInfoMap:H,recommendedCompletion:Z,previousToken:v,isJsxInitializer:I,insideJsDocTagTypeExpression:f,symbolToSortTextMap:W};function $(n,t,r){U=!!n.getStringIndexType(),C&&e.some(n.getCallSignatures())&&(U=!0);var a=187===x.kind?x:x.parent;if(i)K.push.apply(K,R(n,u));else for(var o=0,c=n.getApparentProperties();o<c.length;o++){var l=c[o];u.isValidPropertyAccessForCompletions(a,n,l)&&ee(l,!1,r)}if(t&&s.includeCompletionsWithInsertText){var d=u.getPromisedTypeOfPromise(n);if(d)for(var p=0,m=d.getApparentProperties();p<m.length;p++){l=m[p];u.isValidPropertyAccessForCompletions(a,d,l)&&ee(l,!0,r)}}}function ee(n,t,r){var a=e.firstDefined(n.declarations,(function(n){return e.tryCast(e.getNameOfDeclaration(n),e.isComputedPropertyName)}));if(a){var i=function n(t){return e.isIdentifier(t)?t:e.isPropertyAccessExpression(t)?n(t.expression):void 0}(a.expression),o=i&&u.getSymbolAtLocation(i),c=o&&S(o,b,u);if(c&&!H[e.getSymbolId(c)]){K.push(c);var l=c.parent;H[e.getSymbolId(c)]=l&&e.isExternalModuleSymbol(l)?{kind:p(6),moduleSymbol:l,isDefaultExport:!1}:{kind:p(2)}}else s.includeCompletionsWithInsertText&&(d(n),K.push(n))}else d(n),K.push(n);function d(n){s.includeCompletionsWithInsertText&&(t&&!H[e.getSymbolId(n)]?H[e.getSymbolId(n)]={kind:p(8)}:r&&(H[e.getSymbolId(n)]={kind:16}))}function p(e){return r?16|e:e}}function ne(){var i,d;return 1===(function(){var n,t,r=function(n){if(n){var t=n.parent;switch(n.kind){case 18:case 27:if(e.isObjectLiteralExpression(t)||e.isObjectBindingPattern(t))return t;break;case 41:return e.isMethodDeclaration(t)?e.tryCast(t.parent,e.isObjectLiteralExpression):void 0;case 75:return\"async\"===n.text&&e.isShorthandPropertyAssignment(n.parent)?n.parent.parent:void 0}}return}(b);if(!r)return 0;if(V=0,192===r.kind){if(!(o=u.getContextualType(r,4)))return 2;U=e.hasIndexSignature(o),n=O(o,r,u),t=r.properties}else{e.Debug.assert(188===r.kind),U=!1;var a=e.getRootDeclaration(r.parent);if(!e.isVariableLike(a))return e.Debug.fail(\"Root declaration is not variable-like.\");var i=e.hasInitializer(a)||e.hasType(a)||231===a.parent.parent.kind;if(i||155!==a.kind||(e.isExpression(a.parent)?i=!!u.getContextualType(a.parent):160!==a.parent.kind&&163!==a.parent.kind||(i=e.isExpression(a.parent.parent)&&!!u.getContextualType(a.parent.parent))),i){var o;if(!(o=u.getTypeAtLocation(r)))return 2;n=u.getPropertiesOfType(o).filter((function(n){return!(24&e.getDeclarationModifierFlagsFromSymbol(n))})),t=r.elements}}n&&n.length>0&&(K=function(n,t){if(0===t.length)return n;for(var r=e.createMap(),a=e.createUnderscoreEscapedMap(),i=0,o=t;i<o.length;i++){var s=o[i];if((279===s.kind||280===s.kind||190===s.kind||160===s.kind||162===s.kind||163===s.kind||281===s.kind)&&!le(s)){var c=void 0;if(e.isSpreadAssignment(s))oe(s,r);else if(e.isBindingElement(s)&&s.propertyName)75===s.propertyName.kind&&(c=s.propertyName.escapedText);else{var l=e.getNameOfDeclaration(s);c=l&&e.isPropertyNameLiteral(l)?e.getEscapedTextOfIdentifierOrLiteral(l):void 0}a.set(c,!0)}}var u=n.filter((function(e){return!a.get(e.escapedName)}));return ce(r,u),u}(n,e.Debug.assertDefined(t)));return se(),1}()||function(){var n=!b||18!==b.kind&&27!==b.kind?void 0:e.tryCast(b.parent,e.isNamedImportsOrExports);if(!n)return 0;var t=(256===n.kind?n.parent.parent:n.parent).moduleSpecifier,r=u.getSymbolAtLocation(t);if(!r)return 2;V=3,U=!1;var a=u.getExportsAndPropertiesOfModule(r),i=e.arrayToSet(n.elements,(function(e){return le(e)?void 0:(e.propertyName||e.name).escapedText}));return K=a.filter((function(e){return\"default\"!==e.escapedName&&!i.get(e.escapedName)})),1}()||(function(n){if(n){var t=n.parent;switch(n.kind){case 20:case 27:return e.isConstructorDeclaration(n.parent)?n.parent:void 0;default:if(ae(n))return t.parent}}}(b)?(V=5,U=!0,j=4,1):0)||function(){var n=function(n,t,r,a){switch(r.kind){case 317:return e.tryCast(r.parent,e.isObjectTypeDeclaration);case 1:var i=e.tryCast(e.lastOrUndefined(e.cast(r.parent,e.isSourceFile).statements),e.isObjectTypeDeclaration);if(i&&!e.findChildOfKind(i,19,n))return i;break;case 75:if(P(r))return e.findAncestor(r,e.isObjectTypeDeclaration)}if(!t)return;switch(t.kind){case 26:case 19:return P(r)&&r.parent.name===r?r.parent.parent:e.tryCast(r,e.isObjectTypeDeclaration);case 18:case 27:return e.tryCast(t.parent,e.isObjectTypeDeclaration);default:if(!P(t))return e.getLineAndCharacterOfPosition(n,t.getEnd()).line!==e.getLineAndCharacterOfPosition(n,a).line&&e.isObjectTypeDeclaration(r)?r:void 0;var o=e.isClassLike(t.parent.parent)?N:k;return o(t.kind)||41===t.kind||e.isIdentifier(t)&&o(e.stringToToken(t.text))?t.parent.parent:void 0}}(a,b,F,o);if(!n)return 0;if(V=3,U=!0,j=41===b.kind?0:e.isClassLike(n)?2:3,!e.isClassLike(n))return 1;var t=26===b.kind?b.parent.parent:b.parent,r=e.isClassElement(t)?e.getModifierFlags(t):0;if(75===b.kind&&!le(b))switch(b.getText()){case\"private\":r|=8;break;case\"static\":r|=32}if(!(8&r)){var i=e.flatMap(e.getAllSuperTypeNodes(n),(function(e){var t=u.getTypeAtLocation(e);return t&&u.getPropertiesOfType(32&r?u.getTypeOfSymbolAtLocation(t.symbol,n):t)}));K=function(n,t,r){for(var a=e.createUnderscoreEscapedMap(),i=0,o=t;i<o.length;i++){var s=o[i];if((158===s.kind||160===s.kind||162===s.kind||163===s.kind)&&(!le(s)&&!e.hasModifier(s,8)&&e.hasModifier(s,32)===!!(32&r))){var c=e.getPropertyNameForPropertyNameNode(s.name);c&&a.set(c,!0)}}return n.filter((function(n){return!(a.has(n.escapedName)||!n.declarations||8&e.getDeclarationModifierFlagsFromSymbol(n))}))}(i,n.members,r)}return 1}()||(i=function(n){if(n){var t=n.parent;switch(n.kind){case 31:case 30:case 43:case 75:case 193:case 272:case 271:case 273:if(t&&(265===t.kind||266===t.kind)){if(31===n.kind){var r=e.findPrecedingToken(n.pos,a,void 0);if(!t.typeArguments||r&&43===r.kind)break}return t}if(271===t.kind)return t.parent.parent;break;case 10:if(t&&(271===t.kind||273===t.kind))return t.parent.parent;break;case 19:if(t&&274===t.kind&&t.parent&&271===t.parent.kind)return t.parent.parent.parent;if(t&&273===t.kind)return t.parent.parent}}}(b),(d=i&&u.getContextualType(i.attributes))?(K=function(n,t){for(var r=e.createUnderscoreEscapedMap(),a=e.createMap(),i=0,o=t;i<o.length;i++){var s=o[i];le(s)||(271===s.kind?r.set(s.name.escapedText,!0):e.isJsxSpreadAttribute(s)&&oe(s,a))}var c=n.filter((function(e){return!r.get(e.escapedName)}));return ce(a,c),c}(O(d,i.attributes,u),i.attributes.properties),se(),V=3,U=!1,1):0)||(function(){j=function(n){if(n){var t,r=e.findAncestor(n.parent,(function(n){return e.isClassLike(n)?\"quit\":!(!e.isFunctionLikeDeclaration(n)||t!==n.body)||(t=n,!1)}));return r&&r}}(b)?5:1,V=1,U=function(e){if(e){var n=e.parent.kind;switch(M(e)){case 27:return 195===n||161===n||196===n||191===n||208===n||169===n;case 20:return 195===n||161===n||196===n||199===n||181===n;case 22:return 191===n||166===n||153===n;case 134:case 135:return!0;case 24:return 248===n;case 18:return 244===n;case 62:return 241===n||208===n;case 15:return 210===n;case 16:return 220===n;case 118:case 116:case 117:return 158===n}}return!1}(b),v!==b&&e.Debug.assert(!!v,\"Expected 'contextToken' to be defined when different from 'previousToken'.\");var i=v!==b?v.getStart():o,d=function(n,t,r){var a=n;for(;a&&!e.positionBelongsToNode(a,t,r);)a=a.parent;return a}(b,i,a)||a;_=function(n){switch(n.kind){case 288:case 210:case 274:case 222:return!0;default:return e.isStatement(n)}}(d);var p=2887656|(te()?0:111551);K=e.Debug.assertEachDefined(u.getSymbolsInScope(d,p),\"getSymbolsInScope() should all be defined\");for(var m=0,f=K;m<f.length;m++){var g=f[m];u.isArgumentsSymbol(g)||e.some(g.declarations,(function(e){return e.getSourceFile()===a}))||(W[e.getSymbolId(g)]=t.GlobalsOrKeywords)}if(s.includeCompletionsWithInsertText&&288!==d.kind){var y=u.tryGetThisTypeAt(d,!1);if(y)for(var E=0,T=R(y,u);E<T.length;E++){g=T[E];H[e.getSymbolId(g)]={kind:1},K.push(g),W[e.getSymbolId(g)]=t.SuggestedClassMembers}}if(s.includeCompletionsForModuleExports&&(a.externalModuleIndicator||!a.commonJsModuleIndicator&&(e.compilerOptionsIndicateEs6Modules(n.getCompilerOptions())||e.programContainsEs6Modules(n)))){var S=v&&e.isIdentifier(v)?v.text.toLowerCase():\"\",x=function(t,i){var o=z&&z.get(a.fileName,u,c&&i.getProjectVersion?i.getProjectVersion():void 0);if(o)return r(\"getSymbolsFromOtherSourceFileExports: Using cached list\"),o;var s=e.timestamp();r(\"getSymbolsFromOtherSourceFileExports: Recomputing list\"+(c?\" for details entry\":\"\"));var l=e.createMap(),d=e.createMap(),p=e.createMap(),m=[],f=e.createMap();return e.codefix.forEachExternalModuleToImportFrom(n,i,a,!c,(function(n){if(!c||!c.source||e.stripQuotes(n.name)===c.source){var t=u.resolveExternalModuleSymbol(n);if(e.addToSeen(l,e.getSymbolId(t))){t!==n&&e.every(t.declarations,(function(n){return!!n.getSourceFile().externalModuleIndicator&&!e.findAncestor(n,e.isGlobalScopeAugmentation)}))&&_(t,n,!0);for(var r=0,a=u.getExportsOfModule(n);r<a.length;r++){var i=a[r];if(!e.some(i.declarations,(function(n){return e.isExportSpecifier(n)&&!!n.propertyName&&e.isIdentifierANonContextualKeyword(n.name)}))){var o=e.getSymbolId(i).toString(),s=u.getMergedSymbol(i.parent)!==t;if(s||e.some(i.declarations,(function(n){return e.isExportSpecifier(n)&&!n.propertyName&&!!n.parent.parent.moduleSpecifier}))){var m=s?i:function(e,n,t){var r=n;for(;2097152&r.flags&&(r=e.getImmediateAliasedSymbol(r));)if(t(r))return r}(u,i,(function(n){return e.some(n.declarations,(function(n){return e.isExportSpecifier(n)||!!n.localSymbol}))}));if(!m)continue;var g=e.getSymbolId(m).toString();f.has(g)||d.has(g)?e.addToSeen(d,o):(p.set(g,{alias:i,moduleSymbol:n}),d.set(o,!0))}else p.delete(o),_(i,n)}}}}})),p.forEach((function(e){return _(e.alias,e.moduleSymbol)})),r(\"getSymbolsFromOtherSourceFileExports: \"+(e.timestamp()-s)),m;function _(n,r,a){void 0===a&&(a=!1);var i=\"default\"===n.escapedName;i&&(n=e.getLocalSymbolForExportDefault(n)||n),e.addToSeen(f,e.getSymbolId(n));var o={kind:4,moduleSymbol:r,isDefaultExport:i};m.push({symbol:n,symbolName:h(n,o,t),origin:o,skipFilter:a})}}(n.getCompilerOptions().target,l);!c&&z&&z.set(a.fileName,x,l.getProjectVersion&&l.getProjectVersion()),x.forEach((function(n){var r=n.symbol,a=n.symbolName,i=n.skipFilter,o=n.origin;if(c){if(c.source&&e.stripQuotes(o.moduleSymbol.name)!==c.source)return}else if(!i&&!function(e,n){if(0===n.length)return!0;for(var t=0,r=0;r<e.length;r++)if(e.charCodeAt(r)===n.charCodeAt(t)&&++t===n.length)return!0;return!1}(a.toLowerCase(),S))return;var s=e.getSymbolId(r);K.push(r),H[s]=o,W[s]=t.AutoImportSuggestions}))}!function(n){var t=te();t&&(j=e.isAssertionExpression(b.parent)?6:7);e.filterMutate(n,(function(n){if(!e.isSourceFile(F)){if(e.isExportAssignment(F.parent))return!0;if(n=e.skipAlias(n,u),e.isInRightSideOfInternalImportEqualsDeclaration(F))return!!(1920&n.flags);if(t)return re(n)}return!!(111551&e.getCombinedLocalAndExportSymbolFlags(n))}))}(K)}(),1))}function te(){return f||!function(n){return n&&107===n.kind&&(171===n.parent.kind||e.isTypeOfExpression(n.parent))}(b)&&(e.isPossiblyTypeArgumentPosition(b,a,u)||e.isPartOfTypeNode(F)||function(n){if(n){var t=n.parent.kind;switch(n.kind){case 58:return 158===t||157===t||155===t||241===t||e.isFunctionLikeKind(t);case 62:return 246===t;case 122:return 216===t;case 29:return 168===t||198===t;case 89:return 154===t}}return!1}(b))}function re(n,t){void 0===t&&(t=e.createMap());var r=e.skipAlias(n.exportSymbol||n,u);return!!(788968&r.flags)||!!(1536&r.flags)&&e.addToSeen(t,e.getSymbolId(r))&&u.getExportsOfModule(r).some((function(e){return re(e,t)}))}function ae(n){return!!n.parent&&e.isParameter(n.parent)&&e.isConstructorDeclaration(n.parent.parent)&&(e.isParameterPropertyModifier(n.kind)||e.isDeclarationName(n))}function ie(n){return e.isFunctionLikeKind(n)&&161!==n}function oe(e,n){var t=e.expression,r=u.getSymbolAtLocation(t),a=r&&u.getTypeOfSymbolAtLocation(r,t),i=a&&a.properties;i&&i.forEach((function(e){n.set(e.name,!0)}))}function se(){K.forEach((function(n){16777216&n.flags&&(W[e.getSymbolId(n)]=W[e.getSymbolId(n)]||t.OptionalMember)}))}function ce(n,r){if(0!==n.size)for(var a=0,i=r;a<i.length;a++){var o=i[a];n.has(o.name)&&(W[e.getSymbolId(o)]=t.MemberDeclaredBySpreadAssignment)}}function le(e){return e.getStart(a)<=o&&o<=e.getEnd()}}function L(n,t,r,a){var i=h(n,r,t);if(!(void 0===i||1536&n.flags&&e.isSingleOrDoubleQuote(i.charCodeAt(0))||e.isKnownSymbol(n))){var o={name:i,needsConvertPropertyAccess:!1};if(e.isIdentifierText(i,t))return o;switch(a){case 3:return;case 0:return{name:JSON.stringify(i),needsConvertPropertyAccess:!1};case 2:case 1:return 32===i.charCodeAt(0)?void 0:{name:i,needsConvertPropertyAccess:!0};case 5:case 4:return o;default:e.Debug.assertNever(a)}}}n.getCompletionEntriesFromSymbols=y,n.getCompletionEntryDetails=function(t,r,a,i,s,c,l,u,p){var m=t.getTypeChecker(),f=t.getCompilerOptions(),_=s.name,g=e.findPrecedingToken(i,a);if(e.isInString(a,i,g))return n.StringCompletions.getStringLiteralCompletionDetails(_,a,i,g,m,f,c,p);var y=v(t,r,a,i,s,c);switch(y.type){case\"request\":var T=y.request;switch(T.kind){case 1:return e.JsDoc.getJSDocTagNameCompletionDetails(_);case 2:return e.JsDoc.getJSDocTagCompletionDetails(_);case 3:return e.JsDoc.getJSDocParameterNameCompletionDetails(_);default:return e.Debug.assertNever(T)}case\"symbol\":var S=y.symbol,x=y.location,L=function(n,t,r,a,i,s,c,l,u,d,p){var m=n[e.getSymbolId(t)];if(!m||!o(m))return{codeActions:void 0,sourceDisplay:void 0};var f=m.moduleSymbol,_=a.getMergedSymbol(e.skipAlias(t.exportSymbol||t,a)),g=e.codefix.getImportCompletionAction(_,f,c,h(t,m,s.target),i,r,d,u&&e.isIdentifier(u)?u.getStart(c):l,p),y=g.moduleSpecifier,v=g.codeAction;return{sourceDisplay:[e.textPart(y)],codeActions:[v]}}(y.symbolToOriginInfoMap,S,t,m,c,f,a,i,y.previousToken,l,u);return E(S,m,a,x,p,L.codeActions,L.sourceDisplay);case\"literal\":var C=y.literal;return b(d(C),\"string\",\"string\"==typeof C?e.SymbolDisplayPartKind.stringLiteral:e.SymbolDisplayPartKind.numericLiteral);case\"none\":return A().some((function(e){return e.name===_}))?b(_,\"keyword\",e.SymbolDisplayPartKind.keyword):void 0;default:e.Debug.assertNever(y)}},n.createCompletionDetailsForSymbol=E,n.createCompletionDetails=T,n.getCompletionEntrySymbol=function(e,n,t,r,a,i){var o=v(e,n,t,r,a,i);return\"symbol\"===o.type?o.symbol:void 0},function(e){e[e.Data=0]=\"Data\",e[e.JsDocTagName=1]=\"JsDocTagName\",e[e.JsDocTag=2]=\"JsDocTag\",e[e.JsDocParameterName=3]=\"JsDocParameterName\"}(u||(u={})),function(e){e[e.ObjectPropertyDeclaration=0]=\"ObjectPropertyDeclaration\",e[e.Global=1]=\"Global\",e[e.PropertyAccess=2]=\"PropertyAccess\",e[e.MemberLike=3]=\"MemberLike\",e[e.String=4]=\"String\",e[e.None=5]=\"None\"}(n.CompletionKind||(n.CompletionKind={}));var C=[],A=e.memoize((function(){for(var n=[],r=76;r<=151;r++)n.push({name:e.tokenToString(r),kind:\"keyword\",kindModifiers:\"\",sortText:t.GlobalsOrKeywords});return n}));function D(n){return C[n]||(C[n]=A().filter((function(t){var r=e.stringToToken(t.name);switch(n){case 0:return!1;case 1:return I(r)||129===r||134===r||144===r||135===r||e.isTypeKeyword(r)&&145!==r;case 5:return I(r);case 2:return N(r);case 3:return k(r);case 4:return e.isParameterPropertyModifier(r);case 6:return e.isTypeKeyword(r)||80===r;case 7:return e.isTypeKeyword(r);default:return e.Debug.assertNever(n)}})))}function k(e){return 137===e}function N(n){switch(n){case 121:case 128:case 130:case 141:case 125:return!0;default:return e.isClassMemberModifier(n)}}function I(n){return 125===n||126===n||!e.isContextualKeyword(n)&&!N(n)}function M(n){return e.isIdentifier(n)?n.originalKeywordKind||0:n.kind}function O(n,t,r){return n.isUnion()?r.getAllPossiblePropertiesOfTypes(n.types.filter((function(n){return!(131068&n.flags||r.isArrayLikeType(n)||e.typeHasCallOrConstructSignatures(n,r)||r.isTypeInvalidDueToUnionDiscriminant(n,t))}))):n.getApparentProperties()}function R(n,t){return n.isUnion()?e.Debug.assertEachDefined(t.getAllPossiblePropertiesOfTypes(n.types),\"getAllPossiblePropertiesOfTypes() should all be defined\"):e.Debug.assertEachDefined(n.getApparentProperties(),\"getApparentProperties() should all be defined\")}function P(n){return n.parent&&e.isClassOrTypeElement(n.parent)&&e.isObjectTypeDeclaration(n.parent.parent)}function w(n){var t=n.left;return e.nodeIsMissing(t)}}(e.Completions||(e.Completions={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){return{fileName:t.fileName,textSpan:e.createTextSpanFromNode(n,t),kind:\"none\"}}function r(n){return e.isThrowStatement(n)?[n]:e.isTryStatement(n)?e.concatenate(n.catchClause?r(n.catchClause):n.tryBlock&&r(n.tryBlock),n.finallyBlock&&r(n.finallyBlock)):e.isFunctionLike(n)?void 0:i(n,r)}function a(n){return e.isBreakOrContinueStatement(n)?[n]:e.isFunctionLike(n)?void 0:i(n,a)}function i(n,t){var r=[];return n.forEachChild((function(n){var a=t(n);void 0!==a&&r.push.apply(r,e.toArray(a))})),r}function o(e,n){var t=s(n);return!!t&&t===e}function s(n){return e.findAncestor(n,(function(t){switch(t.kind){case 236:if(232===n.kind)return!1;case 229:case 230:case 231:case 228:case 227:return!n.label||function(n,t){return!!e.findAncestor(n.parent,(function(n){return e.isLabeledStatement(n)?n.label.escapedText===t:\"quit\"}))}(t,n.label.escapedText);default:return e.isFunctionLike(t)&&\"quit\"}}))}function c(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];return!(!t||!e.contains(r,t.kind))&&(n.push(t),!0)}function l(n){var t=[];if(c(t,n.getFirstToken(),92,110,85)&&227===n.kind)for(var r=n.getChildren(),i=r.length-1;i>=0&&!c(t,r[i],110);i--);return e.forEach(a(n.statement),(function(e){o(n,e)&&c(t,e.getFirstToken(),76,81)})),t}function u(e){var n=s(e);if(n)switch(n.kind){case 229:case 230:case 231:case 227:case 228:return l(n);case 236:return d(n)}}function d(n){var t=[];return c(t,n.getFirstToken(),102),e.forEach(n.caseBlock.clauses,(function(r){c(t,r.getFirstToken(),77,83),e.forEach(a(r),(function(e){o(n,e)&&c(t,e.getFirstToken(),76)}))})),t}function p(n,t){var r=[];(c(r,n.getFirstToken(),106),n.catchClause&&c(r,n.catchClause.getFirstToken(),78),n.finallyBlock)&&c(r,e.findChildOfKind(n,91,t),91);return r}function m(n,t){var a=function(n){for(var t=n;t.parent;){var r=t.parent;if(e.isFunctionBlock(r)||288===r.kind)return r;if(e.isTryStatement(r)&&r.tryBlock===t&&r.catchClause)return t;t=r}}(n);if(a){var i=[];return e.forEach(r(a),(function(n){i.push(e.findChildOfKind(n,104,t))})),e.isFunctionBlock(a)&&e.forEachReturnStatement(a,(function(n){i.push(e.findChildOfKind(n,100,t))})),i}}function f(n,t){var a=e.getContainingFunction(n);if(a){var i=[];return e.forEachReturnStatement(e.cast(a.body,e.isBlock),(function(n){i.push(e.findChildOfKind(n,100,t))})),e.forEach(r(a.body),(function(n){i.push(e.findChildOfKind(n,104,t))})),i}}function _(n){var t=e.getContainingFunction(n);if(t){var r=[];return t.modifiers&&t.modifiers.forEach((function(e){c(r,e,125)})),e.forEachChild(t,(function(n){g(n,(function(n){e.isAwaitExpression(n)&&c(r,n.getFirstToken(),126)}))})),r}}function g(n,t){t(n),e.isFunctionLike(n)||e.isClassLike(n)||e.isInterfaceDeclaration(n)||e.isModuleDeclaration(n)||e.isTypeAliasDeclaration(n)||e.isTypeNode(n)||e.forEachChild(n,(function(e){return g(e,t)}))}n.getDocumentHighlights=function(n,r,a,i,o){var s=e.getTouchingPropertyName(a,i);if(s.parent&&(e.isJsxOpeningElement(s.parent)&&s.parent.tagName===s||e.isJsxClosingElement(s.parent))){var y=s.parent.parent,v=[y.openingElement,y.closingElement].map((function(e){return t(e.tagName,a)}));return[{fileName:a.fileName,highlightSpans:v}]}return function(n,t,r,a,i){var o=e.arrayToSet(i,(function(e){return e.fileName})),s=e.FindAllReferences.getReferenceEntriesForNode(n,t,r,i,a,void 0,o);if(!s)return;var c=e.arrayToMultiMap(s.map(e.FindAllReferences.toHighlightSpan),(function(e){return e.fileName}),(function(e){return e.span}));return e.arrayFrom(c.entries(),(function(n){var t=n[0],a=n[1];if(!o.has(t)){e.Debug.assert(r.redirectTargetsMap.has(t));var s=r.getSourceFile(t);t=e.find(i,(function(e){return!!e.redirectInfo&&e.redirectInfo.redirectTarget===s})).fileName,e.Debug.assert(o.has(t))}return{fileName:t,highlightSpans:a}}))}(i,s,n,r,o)||function(n,r){var a=function(n,r){switch(n.kind){case 94:case 86:return e.isIfStatement(n.parent)?function(n,r){for(var a=function(n,t){var r=[];for(;e.isIfStatement(n.parent)&&n.parent.elseStatement===n;)n=n.parent;for(;;){var a=n.getChildren(t);c(r,a[0],94);for(var i=a.length-1;i>=0&&!c(r,a[i],86);i--);if(!n.elseStatement||!e.isIfStatement(n.elseStatement))break;n=n.elseStatement}return r}(n,r),i=[],o=0;o<a.length;o++){if(86===a[o].kind&&o<a.length-1){for(var s=a[o],l=a[o+1],u=!0,d=l.getStart(r)-1;d>=s.end;d--)if(!e.isWhiteSpaceSingleLine(r.text.charCodeAt(d))){u=!1;break}if(u){i.push({fileName:r.fileName,textSpan:e.createTextSpanFromBounds(s.getStart(),l.end),kind:\"reference\"}),o++;continue}}i.push(t(a[o],r))}return i}(n.parent,r):void 0;case 100:return s(n.parent,e.isReturnStatement,f);case 104:return s(n.parent,e.isThrowStatement,m);case 106:case 78:case 91:return s(78===n.kind?n.parent.parent:n.parent,e.isTryStatement,p);case 102:return s(n.parent,e.isSwitchStatement,d);case 77:case 83:return s(n.parent.parent.parent,e.isSwitchStatement,d);case 76:case 81:return s(n.parent,e.isBreakOrContinueStatement,u);case 92:case 110:case 85:return s(n.parent,(function(n){return e.isIterationStatement(n,!0)}),l);case 128:return o(e.isConstructorDeclaration,[128]);case 130:case 141:return o(e.isAccessor,[130,141]);case 126:return s(n.parent,e.isAwaitExpression,_);case 125:return y(_(n));case 120:return y(function(n){var t=e.getContainingFunction(n);if(!t)return;var r=[];return e.forEachChild(t,(function(n){g(n,(function(n){e.isYieldExpression(n)&&c(r,n.getFirstToken(),120)}))})),r}(n));default:return e.isModifierKind(n.kind)&&(e.isDeclaration(n.parent)||e.isVariableStatement(n.parent))?y((a=n.kind,i=n.parent,e.mapDefined(function(n,t){var r=n.parent;switch(r.kind){case 249:case 288:case 222:case 275:case 276:return 128&t&&e.isClassDeclaration(n)?__spreadArrays(n.members,[n]):r.statements;case 161:case 160:case 243:return __spreadArrays(r.parameters,e.isClassLike(r.parent)?r.parent.members:[]);case 244:case 213:case 245:case 172:var a=r.members;if(92&t){var i=e.find(r.members,e.isConstructorDeclaration);if(i)return __spreadArrays(a,i.parameters)}else if(128&t)return __spreadArrays(a,[r]);return a;default:e.Debug.assertNever(r,\"Invalid container kind.\")}}(i,e.modifierToFlag(a)),(function(n){return e.findModifier(n,a)})))):void 0}var a,i;function o(t,a){return s(n.parent,t,(function(n){return e.mapDefined(n.symbol.declarations,(function(n){return t(n)?e.find(n.getChildren(r),(function(n){return e.contains(a,n.kind)})):void 0}))}))}function s(e,n,t){return n(e)?y(t(e,r)):void 0}function y(e){return e&&e.map((function(e){return t(e,r)}))}}(n,r);return a&&[{fileName:r.fileName,highlightSpans:a}]}(s,a)}}(e.DocumentHighlights||(e.DocumentHighlights={}))}(ts||(ts={})),function(e){function n(n,r,a){void 0===r&&(r=\"\");var i=e.createMap(),o=e.createGetCanonicalFileName(!!n);function s(e,n,t,r,a,i,o){return l(e,n,t,r,a,i,!0,o)}function c(e,n,t,r,a,i,o){return l(e,n,t,r,a,i,!1,o)}function l(n,t,r,o,s,c,l,u){var d=e.getOrUpdate(i,o,e.createMap),p=d.get(t),m=6===u?100:r.target||1;!p&&a&&((f=a.getDocument(o,t))&&(e.Debug.assert(l),p={sourceFile:f,languageServiceRefCount:0},d.set(t,p)));if(p)p.sourceFile.version!==c&&(p.sourceFile=e.updateLanguageServiceSourceFile(p.sourceFile,s,c,s.getChangeRange(p.sourceFile.scriptSnapshot)),a&&a.setDocument(o,t,p.sourceFile)),l&&p.languageServiceRefCount++;else{var f=e.createLanguageServiceSourceFile(n,s,m,c,!1,u);a&&a.setDocument(o,t,f),p={sourceFile:f,languageServiceRefCount:1},d.set(t,p)}return e.Debug.assert(0!==p.languageServiceRefCount),p.sourceFile}function u(n,t){var r=e.Debug.assertDefined(i.get(t)),a=r.get(n);a.languageServiceRefCount--,e.Debug.assert(a.languageServiceRefCount>=0),0===a.languageServiceRefCount&&r.delete(n)}return{acquireDocument:function(n,a,i,c,l){return s(n,e.toPath(n,r,o),a,t(a),i,c,l)},acquireDocumentWithKey:s,updateDocument:function(n,a,i,s,l){return c(n,e.toPath(n,r,o),a,t(a),i,s,l)},updateDocumentWithKey:c,releaseDocument:function(n,a){return u(e.toPath(n,r,o),t(a))},releaseDocumentWithKey:u,getLanguageServiceRefCounts:function(n){return e.arrayFrom(i.entries(),(function(e){var t=e[0],r=e[1].get(n);return[t,r&&r.languageServiceRefCount]}))},reportStats:function(){var n=e.arrayFrom(i.keys()).filter((function(e){return e&&\"_\"===e.charAt(0)})).map((function(e){var n=i.get(e),t=[];return n.forEach((function(e,n){t.push({name:n,refCount:e.languageServiceRefCount})})),t.sort((function(e,n){return n.refCount-e.refCount})),{bucket:e,sourceFiles:t}}));return JSON.stringify(n,void 0,2)},getKeyForCompilationSettings:t}}function t(n){return e.sourceFileAffectingCompilerOptions.map((function(t){return e.getCompilerOptionValue(n,t)})).join(\"|\")}e.createDocumentRegistry=function(e,t){return n(e,t)},e.createDocumentRegistryInternal=n}(ts||(ts={})),function(e){!function(n){function t(n,t){return e.forEach(288===n.kind?n.statements:n.body.statements,(function(n){return t(n)||s(n)&&e.forEach(n.body&&n.body.statements,t)}))}function r(n,r){if(n.externalModuleIndicator||void 0!==n.imports)for(var a=0,i=n.imports;a<i.length;a++){var o=i[a];r(e.importFromModuleSpecifier(o),o)}else t(n,(function(n){switch(n.kind){case 259:case 253:(t=n).moduleSpecifier&&e.isStringLiteral(t.moduleSpecifier)&&r(t,t.moduleSpecifier);break;case 252:var t;c(t=n)&&r(t,t.moduleReference.expression)}}))}function a(n,t,r){var a=n.parent;if(a){var i=r.getMergedSymbol(a);return e.isExternalModuleSymbol(i)?{exportingModuleSymbol:i,exportKind:t}:void 0}}function i(e,n){return n.getMergedSymbol(o(e).symbol)}function o(n){if(195===n.kind)return n.getSourceFile();var t=n.parent;return 288===t.kind?t:(e.Debug.assert(249===t.kind),e.cast(t.parent,s))}function s(e){return 248===e.kind&&10===e.name.kind}function c(e){return 263===e.moduleReference.kind&&10===e.moduleReference.expression.kind}n.createImportTracker=function(n,a,s,l){var u=function(n,t,a){for(var i=e.createMap(),o=0,s=n;o<s.length;o++){var c=s[o];a&&a.throwIfCancellationRequested(),r(c,(function(n,r){var a=t.getSymbolAtLocation(r);if(a){var o=e.getSymbolId(a).toString(),s=i.get(o);s||i.set(o,s=[]),s.push(n)}}))}return i}(n,s,l);return function(r,d,p){var m=function(n,r,a,s,c,l){var u=s.exportingModuleSymbol,d=s.exportKind,p=e.nodeSeenTracker(),m=e.nodeSeenTracker(),f=[],_=!!u.globalExports,g=_?void 0:[];return v(u),{directImports:f,indirectUsers:y()};function y(){if(_)return n;for(var t=0,a=u.declarations;t<a.length;t++){var i=a[t];e.isExternalModuleAugmentation(i)&&r.has(i.getSourceFile().fileName)&&b(i)}return g.map(e.getSourceFileOfNode)}function v(n){var t=E(n);if(t)for(var r=0,a=t;r<a.length;r++){var s=a[r];if(p(s))switch(l&&l.throwIfCancellationRequested(),s.kind){case 195:if(!_){var u=s.parent;if(2===d&&241===u.kind){var m=u.name;if(75===m.kind){f.push(m);break}}b(s.getSourceFile())}break;case 75:break;case 252:h(s,s.name,e.hasModifier(s,1),!1);break;case 253:f.push(s);var g=s.importClause&&s.importClause.namedBindings;g&&255===g.kind?h(s,g.name,!1,!0):!_&&e.isDefaultImport(s)&&b(o(s));break;case 259:s.exportClause?f.push(s):v(i(s,c));break;case 187:f.push(s);break;default:e.Debug.failBadSyntaxKind(s,\"Unexpected import kind.\")}}}function h(n,r,a,i){if(2===d)i||f.push(n);else if(!_){var s=o(n);e.Debug.assert(288===s.kind||248===s.kind),a||function(n,r,a){var i=a.getSymbolAtLocation(r);return!!t(n,(function(n){if(e.isExportDeclaration(n)){var t=n.exportClause;return!n.moduleSpecifier&&t&&t.elements.some((function(e){return a.getExportSpecifierLocalTargetSymbol(e)===i}))}}))}(s,r,c)?function n(t){if(!b(t))return;var r=c.getMergedSymbol(t.symbol);e.Debug.assert(!!(1536&r.flags));var a=E(r);if(a)for(var i=0,s=a;i<s.length;i++){var l=s[i];n(o(l))}}(s):b(s)}}function b(n){e.Debug.assert(!_);var t=m(n);return t&&g.push(n),t}function E(n){return a.get(e.getSymbolId(n).toString())}}(n,a,u,d,s,l),f=m.directImports,_=m.indirectUsers;return __assign({indirectUsers:_},function(n,t,r,a,i){var o=[],s=[];function l(e,n){o.push([e,n])}if(n)for(var u=0,d=n;u<d.length;u++){p(d[u])}return{importSearches:o,singleReferences:s};function p(n){if(252!==n.kind)if(75!==n.kind)if(187!==n.kind){if(10===n.moduleSpecifier.kind)if(259!==n.kind){var o=n.importClause||{name:void 0,namedBindings:void 0},u=o.name,d=o.namedBindings;if(d)switch(d.kind){case 255:m(d.name);break;case 256:0!==r&&1!==r||f(d);break;default:e.Debug.assertNever(d)}if(u&&(1===r||2===r)&&(!i||u.escapedText===e.symbolEscapedNameNoDefault(t)))l(u,a.getSymbolAtLocation(u))}else f(n.exportClause)}else n.qualifier?e.isIdentifier(n.qualifier)&&n.qualifier.escapedText===e.symbolName(t)&&s.push(n.qualifier):2===r&&s.push(n.argument.literal);else m(n);else c(n)&&m(n.name)}function m(e){2!==r||i&&!_(e.escapedText)||l(e,a.getSymbolAtLocation(e))}function f(e){if(e)for(var n=0,r=e.elements;n<r.length;n++){var o=r[n],c=o.name,u=o.propertyName;if(_((u||c).escapedText))if(u)s.push(u),i&&c.escapedText!==t.escapedName||l(c,a.getSymbolAtLocation(c));else l(c,261===o.kind&&o.propertyName?a.getExportSpecifierLocalTargetSymbol(o):a.getSymbolAtLocation(c))}}function _(e){return e===t.escapedName||0!==r&&\"default\"===e}}(f,r,d.exportKind,s,p))}},function(e){e[e.Named=0]=\"Named\",e[e.Default=1]=\"Default\",e[e.ExportEquals=2]=\"ExportEquals\"}(n.ExportKind||(n.ExportKind={})),function(e){e[e.Import=0]=\"Import\",e[e.Export=1]=\"Export\"}(n.ImportExport||(n.ImportExport={})),n.findModuleReferences=function(e,n,t){for(var a=[],i=e.getTypeChecker(),o=0,s=n;o<s.length;o++){var c=s[o],l=t.valueDeclaration;if(288===l.kind){for(var u=0,d=c.referencedFiles;u<d.length;u++){var p=d[u];e.getSourceFileFromReference(c,p)===l&&a.push({kind:\"reference\",referencingFile:c,ref:p})}for(var m=0,f=c.typeReferenceDirectives;m<f.length;m++){p=f[m];var _=e.getResolvedTypeReferenceDirectives().get(p.fileName);void 0!==_&&_.resolvedFileName===l.fileName&&a.push({kind:\"reference\",referencingFile:c,ref:p})}}r(c,(function(e,n){i.getSymbolAtLocation(n)===t&&a.push({kind:\"import\",literal:n})}))}return a},n.getImportOrExportSymbol=function(n,t,r,i){return i?o():o()||function(){if(!function(n){var t=n.parent;switch(t.kind){case 252:return t.name===n&&c(t);case 257:return!t.propertyName;case 254:case 255:return e.Debug.assert(t.name===n),!0;default:return!1}}(n))return;var a=r.getImmediateAliasedSymbol(t);if(!a)return;\"export=\"===(a=function(n,t){if(n.declarations)for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(e.isExportSpecifier(i)&&!i.propertyName&&!i.parent.parent.moduleSpecifier)return t.getExportSpecifierLocalTargetSymbol(i)}return n}(a,r)).escapedName&&(a=function(n,t){if(2097152&n.flags)return e.Debug.assertDefined(t.getImmediateAliasedSymbol(n));var r=n.valueDeclaration;if(e.isExportAssignment(r))return e.Debug.assertDefined(r.expression.symbol);if(e.isBinaryExpression(r))return e.Debug.assertDefined(r.right.symbol);if(e.isSourceFile(r))return e.Debug.assertDefined(r.symbol);return e.Debug.fail()}(a,r));var i=e.symbolEscapedNameNoDefault(a);if(void 0===i||\"default\"===i||i===t.escapedName)return{kind:0,symbol:a}}();function o(){var a=n.parent,o=a.parent;if(t.exportSymbol)return 193===a.kind?t.declarations.some((function(e){return e===a}))&&e.isBinaryExpression(o)?d(o,!1):void 0:s(t.exportSymbol,l(a));var c=function(n,t){var r=e.isVariableDeclaration(n)?n:e.isBindingElement(n)?e.walkUpBindingElementsAndPatterns(n):void 0;return r?n.name!==t?void 0:e.isCatchClause(r.parent)?void 0:e.isVariableStatement(r.parent.parent)?r.parent.parent:void 0:n}(a,n);if(c&&e.hasModifier(c,1)){if(e.isImportEqualsDeclaration(c)&&c.moduleReference===n){if(i)return;return{kind:0,symbol:r.getSymbolAtLocation(c.name)}}return s(t,l(c))}if(e.isExportAssignment(a))return u(a);if(e.isExportAssignment(o))return u(o);if(e.isBinaryExpression(a))return d(a,!0);if(e.isBinaryExpression(o))return d(o,!0);if(e.isJSDocTypedefTag(a))return s(t,0);function u(n){var r=e.Debug.assertDefined(n.symbol.parent,\"Expected export symbol to have a parent\"),a=n.isExportEquals?2:1;return{kind:1,symbol:t,exportInfo:{exportingModuleSymbol:r,exportKind:a}}}function d(n,a){var i;switch(e.getAssignmentDeclarationKind(n)){case 1:i=0;break;case 2:i=2;break;default:return}var o=a?r.getSymbolAtLocation(e.cast(n.left,e.isPropertyAccessExpression).name):t;return!o||1536&r.getMergedSymbol(o.parent).flags||e.Debug.fail(\"Special property assignment kind does not have a module as its parent. Assignment is \"+e.Debug.formatSymbol(o)+\", parent is \"+e.Debug.formatSymbol(o.parent)),o&&s(o,i)}}function s(e,n){var t=a(e,n,r);return t&&{kind:1,symbol:e,exportInfo:t}}function l(n){return e.hasModifier(n,512)?1:0}},n.getExportInfo=a}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){!function(n){function t(e,n){return void 0===n&&(n=1),{kind:n,node:e.name||e,context:a(e)}}function r(e){return e&&void 0===e.kind}function a(n){if(e.isDeclaration(n))return i(n);if(n.parent){if(!e.isDeclaration(n.parent)&&!e.isExportAssignment(n.parent)){if(e.isInJSFile(n)){var t=e.isBinaryExpression(n.parent)?n.parent:e.isAccessExpression(n.parent)&&e.isBinaryExpression(n.parent.parent)&&n.parent.parent.left===n.parent?n.parent.parent:void 0;if(t&&0!==e.getAssignmentDeclarationKind(t))return i(t)}if(e.isJsxOpeningElement(n.parent)||e.isJsxClosingElement(n.parent))return n.parent.parent;if(e.isJsxSelfClosingElement(n.parent)||e.isLabeledStatement(n.parent)||e.isBreakOrContinueStatement(n.parent))return n.parent;if(e.isStringLiteralLike(n)){var r=e.tryGetImportFromModuleSpecifier(n);if(r){var a=e.findAncestor(r,(function(n){return e.isDeclaration(n)||e.isStatement(n)||e.isJSDocTag(n)}));return e.isDeclaration(a)?i(a):a}}var o=e.findAncestor(n,e.isComputedPropertyName);return o?i(o.parent):void 0}return n.parent.name===n||e.isConstructorDeclaration(n.parent)||e.isExportAssignment(n.parent)||(e.isImportOrExportSpecifier(n.parent)||e.isBindingElement(n.parent))&&n.parent.propertyName===n||83===n.kind&&e.hasModifier(n.parent,513)?i(n.parent):void 0}}function i(n){if(n)switch(n.kind){case 241:return e.isVariableDeclarationList(n.parent)&&1===n.parent.declarations.length?e.isVariableStatement(n.parent.parent)?n.parent.parent:e.isForInOrOfStatement(n.parent.parent)?i(n.parent.parent):n.parent:n;case 190:return i(n.parent.parent);case 257:return n.parent.parent.parent;case 261:case 255:return n.parent.parent;case 254:return n.parent;case 208:return e.isExpressionStatement(n.parent)?n.parent:n;case 231:case 230:return{start:n.initializer,end:n.expression};case 279:case 280:return e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)?i(e.findAncestor(n.parent,(function(n){return e.isBinaryExpression(n)||e.isForInOrOfStatement(n)}))):n;default:return n}}function o(e,n,t){if(t){var a=r(t)?p(t.start,n,t.end):p(t,n);return a.start!==e.start||a.length!==e.length?{contextSpan:a}:void 0}}function s(t,r,a,i,o,s,l){return void 0===s&&(s={}),void 0===l&&(l=e.arrayToSet(i,(function(e){return e.fileName}))),c(n.Core.getReferencedSymbolsForNode(t,r,a,i,o,s,l))}function c(n){return n&&e.flatMap(n,(function(e){return e.references}))}function l(t,r,a){var i=n.Core.getIntersectingMeaningFromDeclarations(a,t),o=t.declarations&&e.firstOrUndefined(t.declarations)||a,s=e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(r,t,o.getSourceFile(),o,o,i);return{displayParts:s.displayParts,kind:s.symbolKind}}function u(n){var t=d(n);if(0===n.kind)return __assign(__assign({},t),{isWriteAccess:!1,isDefinition:!1});var r=n.kind,a=n.node;return __assign(__assign({},t),{isWriteAccess:m(a),isDefinition:83===a.kind||!!e.getDeclarationFromName(a)||e.isLiteralComputedPropertyDeclarationName(a),isInString:2===r||void 0})}function d(e){if(0===e.kind)return{textSpan:e.textSpan,fileName:e.fileName};var n=e.node.getSourceFile(),t=p(e.node,n);return __assign({textSpan:t,fileName:n.fileName},o(t,n,e.context))}function p(n,t,r){var a=n.getStart(t),i=(r||n).getEnd();return e.isStringLiteralLike(n)&&(e.Debug.assert(void 0===r),a+=1,i-=1),e.createTextSpanFromBounds(a,i)}function m(n){var t=e.getDeclarationFromName(n);return!!t&&function(n){if(8388608&n.flags)return!0;switch(n.kind){case 208:case 190:case 244:case 213:case 83:case 247:case 282:case 261:case 254:case 252:case 257:case 245:case 308:case 315:case 271:case 248:case 251:case 255:case 155:case 280:case 246:case 154:return!0;case 279:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent);case 243:case 200:case 161:case 160:case 162:case 163:return!!n.body;case 241:case 158:return!!n.initializer||e.isCatchClause(n.parent);case 159:case 157:case 316:case 310:return!1;default:return e.Debug.failBadSyntaxKind(n)}}(t)||83===n.kind||e.isWriteAccess(n)}!function(e){e[e.Symbol=0]=\"Symbol\",e[e.Label=1]=\"Label\",e[e.Keyword=2]=\"Keyword\",e[e.This=3]=\"This\",e[e.String=4]=\"String\"}(n.DefinitionKind||(n.DefinitionKind={})),function(e){e[e.Span=0]=\"Span\",e[e.Node=1]=\"Node\",e[e.StringLiteral=2]=\"StringLiteral\",e[e.SearchedLocalFoundProperty=3]=\"SearchedLocalFoundProperty\",e[e.SearchedPropertyFoundLocal=4]=\"SearchedPropertyFoundLocal\"}(n.EntryKind||(n.EntryKind={})),n.nodeEntry=t,n.isContextWithStartAndEndNode=r,n.getContextNode=i,n.toContextSpan=o,n.findReferencedSymbols=function(t,r,a,s,c){var d=e.getTouchingPropertyName(s,c),m=n.Core.getReferencedSymbolsForNode(c,d,t,a,r),f=t.getTypeChecker();return m&&m.length?e.mapDefined(m,(function(n){var t=n.definition,a=n.references;return t&&{definition:f.runWithCancellationToken(r,(function(n){return function(n,t,r){var a=function(){switch(n.type){case 0:var a=l(f=n.symbol,t,r),o=a.displayParts,s=a.kind,c=o.map((function(e){return e.text})).join(\"\"),u=f.declarations?e.first(f.declarations):void 0;return{node:u?e.getNameOfDeclaration(u)||u:r,name:c,kind:s,displayParts:o,context:i(u)};case 1:var d=n.node;return{node:d,name:d.text,kind:\"label\",displayParts:[e.displayPart(d.text,e.SymbolDisplayPartKind.text)]};case 2:var p=n.node,m=e.tokenToString(p.kind);return{node:p,name:m,kind:\"keyword\",displayParts:[{text:m,kind:\"keyword\"}]};case 3:var f,_=n.node,g=(f=t.getSymbolAtLocation(_))&&e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(t,f,_.getSourceFile(),e.getContainerNode(_),_).displayParts||[e.textPart(\"this\")];return{node:_,name:\"this\",kind:\"var\",displayParts:g};case 4:var y=n.node;return{node:y,name:y.text,kind:\"var\",displayParts:[e.displayPart(e.getTextOfNode(y),e.SymbolDisplayPartKind.stringLiteral)]};default:return e.Debug.assertNever(n)}}(),s=a.node,c=a.name,u=a.kind,d=a.displayParts,m=a.context,f=s.getSourceFile(),_=p(e.isComputedPropertyName(s)?s.expression:s,f);return __assign({containerKind:\"\",containerName:\"\",fileName:f.fileName,kind:u,name:c,textSpan:_,displayParts:d},o(_,f,m))}(t,n,d)})),references:a.map(u)}})):void 0},n.getImplementationsAtPosition=function(r,a,i,o,c){var u=function(r,a,i,o,c){if(288===o.kind)return;var l=r.getTypeChecker();if(280===o.parent.kind){var u=[];return n.Core.getReferenceEntriesForShorthandPropertyAssignment(o,l,(function(e){return u.push(t(e))})),u}if(101===o.kind||e.isSuperProperty(o.parent)){var d=l.getSymbolAtLocation(o);return d.valueDeclaration&&[t(d.valueDeclaration)]}return s(c,o,r,i,a,{implementations:!0})}(r,a,i,e.getTouchingPropertyName(o,c),c),p=r.getTypeChecker();return e.map(u,(function(n){return function(n,t){var r=d(n);if(0!==n.kind){var a=n.node;return __assign(__assign({},r),function(n,t){var r=t.getSymbolAtLocation(e.isDeclaration(n)&&n.name?n.name:n);return r?l(r,t,n):192===n.kind?{kind:\"interface\",displayParts:[e.punctuationPart(20),e.textPart(\"object literal\"),e.punctuationPart(21)]}:213===n.kind?{kind:\"local class\",displayParts:[e.punctuationPart(20),e.textPart(\"anonymous local class\"),e.punctuationPart(21)]}:{kind:e.getNodeKind(n),displayParts:[]}}(a,t))}return __assign(__assign({},r),{kind:\"\",displayParts:[]})}(n,p)}))},n.findReferenceOrRenameEntries=function(t,r,a,i,o,s,l){return e.map(c(n.Core.getReferencedSymbolsForNode(o,i,t,a,r,s)),(function(e){return l(e,i,t.getTypeChecker())}))},n.getReferenceEntriesForNode=s,n.toRenameLocation=function(n,t,r,a){return __assign(__assign({},d(n)),a&&function(n,t,r){if(0!==n.kind&&e.isIdentifier(t)){var a=n.node,i=n.kind,o=t.text,s=e.isShorthandPropertyAssignment(a.parent);if(s||e.isObjectBindingElementWithoutPropertyName(a.parent)){var c={prefixText:o+\": \"},l={suffixText:\": \"+o};return 3===i?c:4===i?l:s?l:c}if(e.isImportSpecifier(n.node.parent)&&!n.node.parent.propertyName){var u=e.isExportSpecifier(t.parent)?r.getExportSpecifierLocalTargetSymbol(t.parent):r.getSymbolAtLocation(t);return e.contains(u.declarations,n.node.parent)?{prefixText:o+\" as \"}:e.emptyOptions}if(e.isExportSpecifier(n.node.parent)&&!n.node.parent.propertyName)return t===n.node?{prefixText:o+\" as \"}:{suffixText:\" as \"+o}}return e.emptyOptions}(n,t,r))},n.toReferenceEntry=u,n.toHighlightSpan=function(e){var n=d(e);if(0===e.kind)return{fileName:n.fileName,span:{textSpan:n.textSpan,kind:\"reference\"}};var t=m(e.node),r=__assign({textSpan:n.textSpan,kind:t?\"writtenReference\":\"reference\",isInString:2===e.kind||void 0},n.contextSpan&&{contextSpan:n.contextSpan});return{fileName:n.fileName,span:r}},n.getTextSpanOfEntry=function(e){return 0===e.kind?e.textSpan:p(e.node,e.node.getSourceFile())}}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){!function(n){!function(t){function r(n,t,r){if(n.parent&&e.isNamespaceExportDeclaration(n.parent)){var a=r.getAliasedSymbol(t),i=r.getMergedSymbol(a);if(a!==i)return i}}function a(n,t,r,a,o,c){var u=1536&n.flags?e.find(n.declarations,e.isSourceFile):void 0;if(u){var d=n.exports.get(\"export=\"),p=s(t,n,!!d,r,c);if(!d||!c.has(u.fileName))return p;var m=t.getTypeChecker();return i(t,p,l(n=e.skipAlias(d,m),void 0,r,c,m,a,o))}}function i(t){for(var r,a=[],i=1;i<arguments.length;i++)a[i-1]=arguments[i];for(var s=0,c=a;s<c.length;s++){var l=c[s];if(l&&l.length)if(r)for(var u=function(a){if(!a.definition||0!==a.definition.type)return r.push(a),\"continue\";var i=a.definition.symbol,s=e.findIndex(r,(function(e){return!!e.definition&&0===e.definition.type&&e.definition.symbol===i}));if(-1===s)return r.push(a),\"continue\";var c=r[s];r[s]={definition:c.definition,references:c.references.concat(a.references).sort((function(r,a){var i=o(t,r),s=o(t,a);if(i!==s)return e.compareValues(i,s);var c=n.getTextSpanOfEntry(r),l=n.getTextSpanOfEntry(a);return c.start!==l.start?e.compareValues(c.start,l.start):e.compareValues(c.length,l.length)}))}},d=0,p=l;d<p.length;d++){var m=p[d];u(m)}else r=l}return r}function o(e,n){var t=0===n.kind?e.getSourceFile(n.fileName):n.node.getSourceFile();return e.getSourceFiles().indexOf(t)}function s(t,r,a,i,o){e.Debug.assert(!!r.valueDeclaration);for(var s=e.mapDefined(n.findModuleReferences(t,i,r),(function(t){if(\"import\"===t.kind){var r=t.literal.parent;if(e.isLiteralTypeNode(r)){var i=e.cast(r.parent,e.isImportTypeNode);if(a&&!i.qualifier)return}return n.nodeEntry(t.literal)}return{kind:0,fileName:t.referencingFile.fileName,textSpan:e.createTextSpanFromRange(t.ref)}})),c=0,l=r.declarations;c<l.length;c++){switch((m=l[c]).kind){case 288:break;case 248:o.has(m.getSourceFile().fileName)&&s.push(n.nodeEntry(m.name));break;default:e.Debug.assert(!!(33554432&r.flags),\"Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.\")}}var u=r.exports.get(\"export=\");if(u)for(var d=0,p=u.declarations;d<p.length;d++){var m,f=(m=p[d]).getSourceFile();if(o.has(f.fileName)){var _=e.isBinaryExpression(m)&&e.isPropertyAccessExpression(m.left)?m.left.expression:e.isExportAssignment(m)?e.Debug.assertDefined(e.findChildOfKind(m,88,f)):e.getNameOfDeclaration(m)||m;s.push(n.nodeEntry(_))}}return s.length?[{definition:{type:0,symbol:r},references:s}]:e.emptyArray}function c(n){return 137===n.kind&&e.isTypeOperatorNode(n.parent)&&137===n.parent.operator}function l(n,t,r,a,i,o,s){var c=t&&function(n,t,r,a){var i=t.parent;if(e.isExportSpecifier(i)&&a)return C(t,n,i,r);return e.firstDefined(n.declarations,(function(a){if(!a.parent){if(33554432&n.flags)return;e.Debug.fail(\"Unexpected symbol at \"+e.Debug.formatSyntaxKind(t.kind)+\": \"+e.Debug.formatSymbol(n))}return e.isTypeLiteralNode(a.parent)&&e.isUnionTypeNode(a.parent.parent)?r.getPropertyOfType(r.getTypeFromTypeNode(a.parent.parent),n.name):void 0}))}(n,t,i,!P(s))||n,l=t?M(t,c):7,d=[],f=new p(r,a,t?function(n){switch(n.kind){case 128:return 1;case 75:if(e.isClassLike(n.parent))return e.Debug.assert(n.parent.name===n),2;default:return 0}}(t):0,i,o,l,s,d),_=P(s)?e.find(c.declarations,e.isExportSpecifier):void 0;if(_)L(_.name,c,_,f.createSearch(t,n,void 0),f,!0,!0);else if(t&&83===t.kind)A(t,c,f),m(t,c,{exportingModuleSymbol:e.Debug.assertDefined(c.parent,\"Expected export symbol to have a parent\"),exportKind:1},f);else{var g=f.createSearch(t,c,void 0,{allSearchSymbols:t?N(c,t,i,!!s.isForRename,!!s.providePrefixAndSuffixTextForRename,!!s.implementations):[c]});u(c,f,g)}return d}function u(n,t,r){var a=function(n){var t=n.declarations,r=n.flags,a=n.parent,i=n.valueDeclaration;if(i&&(200===i.kind||213===i.kind))return i;if(!t)return;if(8196&r){var o=e.find(t,(function(n){return e.hasModifier(n,8)}));return o?e.getAncestor(o,244):void 0}if(t.some(e.isObjectBindingElementWithoutPropertyName))return;var s,c=a&&!(262144&n.flags);if(c&&(!e.isExternalModuleSymbol(a)||a.globalExports))return;for(var l=0,u=t;l<u.length;l++){var d=u[l],p=e.getContainerNode(d);if(s&&s!==p)return;if(!p||288===p.kind&&!e.isExternalOrCommonJsModule(p))return;s=p}return c?s.getSourceFile():s}(n);if(a)T(a,a.getSourceFile(),r,t,!(e.isSourceFile(a)&&!e.contains(t.sourceFiles,a)));else for(var i=0,o=t.sourceFiles;i<o.length;i++){var s=o[i];t.cancellationToken.throwIfCancellationRequested(),g(s,r,t)}}var d;t.getReferencedSymbolsForNode=function(t,o,u,d,p,m,f){if(void 0===m&&(m={}),void 0===f&&(f=e.arrayToSet(d,(function(e){return e.fileName}))),e.isSourceFile(o)){var _=e.GoToDefinition.getReferenceAtPosition(o,t,u),g=_&&u.getTypeChecker().getMergedSymbol(_.file.symbol);return g&&s(u,g,!1,d,f)}if(!m.implementations){var y=function(t,r,a){if(e.isTypeKeyword(t.kind)){if(137===t.kind&&!c(t))return;return function(t,r,a,i){var o=e.flatMap(t,(function(t){return a.throwIfCancellationRequested(),e.mapDefined(v(t,e.tokenToString(r),t),(function(e){if(e.kind===r&&(!i||i(e)))return n.nodeEntry(e)}))}));return o.length?[{definition:{type:2,node:o[0].node},references:o}]:void 0}(r,t.kind,a,137===t.kind?c:void 0)}if(e.isJumpStatementTarget(t)){var i=e.getTargetLabel(t.parent,t.text);return i&&b(i.parent,i)}if(e.isLabelOfLabeledStatement(t))return b(t.parent,t);if(e.isThis(t))return function(t,r,a){var i=e.getThisContainer(t,!1),o=32;switch(i.kind){case 160:case 159:if(e.isObjectLiteralMethod(i))break;case 158:case 157:case 161:case 162:case 163:o&=e.getModifierFlags(i),i=i.parent;break;case 288:if(e.isExternalModule(i)||k(t))return;case 243:case 200:break;default:return}var s=e.flatMap(288===i.kind?r:[i.getSourceFile()],(function(n){return a.throwIfCancellationRequested(),v(n,\"this\",e.isSourceFile(i)?n:i).filter((function(n){if(!e.isThis(n))return!1;var t=e.getThisContainer(n,!1);switch(i.kind){case 200:case 243:return i.symbol===t.symbol;case 160:case 159:return e.isObjectLiteralMethod(i)&&i.symbol===t.symbol;case 213:case 244:return t.parent&&i.symbol===t.parent.symbol&&(32&e.getModifierFlags(t))===o;case 288:return 288===t.kind&&!e.isExternalModule(t)&&!k(n)}}))})).map((function(e){return n.nodeEntry(e)}));return[{definition:{type:3,node:e.firstDefined(s,(function(n){return e.isParameter(n.node.parent)?n.node:void 0}))||t},references:s}]}(t,r,a);if(101===t.kind)return function(t){var r=e.getSuperContainer(t,!1);if(!r)return;var a=32;switch(r.kind){case 158:case 157:case 160:case 159:case 161:case 162:case 163:a&=e.getModifierFlags(r),r=r.parent;break;default:return}var i=r.getSourceFile(),o=e.mapDefined(v(i,\"super\",r),(function(t){if(101===t.kind){var i=e.getSuperContainer(t,!1);return i&&(32&e.getModifierFlags(i))===a&&i.parent.symbol===r.symbol?n.nodeEntry(t):void 0}}));return[{definition:{type:0,symbol:r.symbol},references:o}]}(t);return}(o,d,p);if(y)return y}var h=u.getTypeChecker(),E=h.getSymbolAtLocation(o);if(!E)return!m.implementations&&e.isStringLiteral(o)?function(t,r,a){var i=e.flatMap(r,(function(r){return a.throwIfCancellationRequested(),e.mapDefined(v(r,t.text),(function(r){return e.isStringLiteral(r)&&r.text===t.text?n.nodeEntry(r,2):void 0}))}));return[{definition:{type:4,node:t},references:i}]}(o,d,p):void 0;if(\"export=\"===E.escapedName)return s(u,E.parent,!1,d,f);var T=a(E,u,d,p,m,f);if(T&&!(33554432&E.flags))return T;var S=r(o,E,h),x=S&&a(S,u,d,p,m,f);return i(u,T,l(E,o,d,f,h,p,m),x)},function(e){e[e.None=0]=\"None\",e[e.Constructor=1]=\"Constructor\",e[e.Class=2]=\"Class\"}(d||(d={}));var p=function(){function t(n,t,r,a,i,o,s,c){this.sourceFiles=n,this.sourceFilesSet=t,this.specialSearchKind=r,this.checker=a,this.cancellationToken=i,this.searchMeaning=o,this.options=s,this.result=c,this.inheritsFromCache=e.createMap(),this.markSeenContainingTypeReference=e.nodeSeenTracker(),this.markSeenReExportRHS=e.nodeSeenTracker(),this.symbolIdToReferences=[],this.sourceFileToSeenSymbols=[]}return t.prototype.includesSourceFile=function(e){return this.sourceFilesSet.has(e.fileName)},t.prototype.getImportSearches=function(e,t){return this.importTracker||(this.importTracker=n.createImportTracker(this.sourceFiles,this.sourceFilesSet,this.checker,this.cancellationToken)),this.importTracker(e,t,!!this.options.isForRename)},t.prototype.createSearch=function(n,t,r,a){void 0===a&&(a={});var i=a.text,o=void 0===i?e.stripQuotes(e.unescapeLeadingUnderscores((e.getLocalSymbolForExportDefault(t)||function(n){if(33555968&n.flags){var t=n.declarations&&e.find(n.declarations,(function(n){return!e.isSourceFile(n)&&!e.isModuleDeclaration(n)}));return t&&t.symbol}}(t)||t).escapedName)):i,s=a.allSearchSymbols,c=void 0===s?[t]:s;return{symbol:t,comingFrom:r,text:o,escapedText:e.escapeLeadingUnderscores(o),parents:this.options.implementations&&n?function(n,t,r){var a=e.isRightSideOfPropertyAccess(n)?n.parent:void 0,i=a&&r.getTypeAtLocation(a.expression),o=e.mapDefined(i&&(i.isUnionOrIntersection()?i.types:i.symbol===t.parent?void 0:[i]),(function(e){return e.symbol&&96&e.symbol.flags?e.symbol:void 0}));return 0===o.length?void 0:o}(n,t,this.checker):void 0,allSearchSymbols:c,includes:function(n){return e.contains(c,n)}}},t.prototype.referenceAdder=function(t){var r=e.getSymbolId(t),a=this.symbolIdToReferences[r];return a||(a=this.symbolIdToReferences[r]=[],this.result.push({definition:{type:0,symbol:t},references:a})),function(e,t){return a.push(n.nodeEntry(e,t))}},t.prototype.addStringOrCommentReference=function(e,n){this.result.push({definition:void 0,references:[{kind:0,fileName:e,textSpan:n}]})},t.prototype.markSearchedSymbols=function(n,t){for(var r=e.getNodeId(n),a=this.sourceFileToSeenSymbols[r]||(this.sourceFileToSeenSymbols[r]=e.createMap()),i=!1,o=0,s=t;o<s.length;o++){var c=s[o];i=e.addToSeen(a,e.getSymbolId(c))||i}return i},t}();function m(e,n,t,r){var a=r.getImportSearches(n,t),i=a.importSearches,o=a.singleReferences,s=a.indirectUsers;if(o.length)for(var c=r.referenceAdder(n),l=0,u=o;l<u.length;l++){var d=u[l];f(d,r)&&c(d)}for(var p=0,m=i;p<m.length;p++){var _=m[p],y=_[0],v=_[1];E(y.getSourceFile(),r.createSearch(y,v,1),r)}if(s.length){var h=void 0;switch(t.exportKind){case 0:h=r.createSearch(e,n,1);break;case 1:h=r.options.isForRename?void 0:r.createSearch(e,n,1,{text:\"default\"})}if(h)for(var b=0,T=s;b<T.length;b++){g(T[b],h,r)}}}function f(n,t){return!!S(n,t)&&(!t.options.isForRename||!!e.isIdentifier(n)&&!(e.isImportOrExportSpecifier(n.parent)&&\"default\"===n.escapedText))}function _(e,n){for(var t=0,r=e.declarations;t<r.length;t++){var a=r[t],i=a.getSourceFile();E(i,n.createSearch(a,e,0),n,n.includesSourceFile(i))}}function g(n,t,r){void 0!==e.getNameTable(n).get(t.escapedText)&&E(n,t,r)}function y(n,t,r,a){var i=e.isParameterPropertyDeclaration(n.parent,n.parent.parent)?e.first(t.getSymbolsOfParameterPropertyDeclaration(n.parent,n.text)):t.getSymbolAtLocation(n);if(i)for(var o=0,s=v(r,i.name);o<s.length;o++){var c=s[o];if(e.isIdentifier(c)&&c!==n&&c.escapedText===n.escapedText){var l=t.getSymbolAtLocation(c);if(l===i||t.getShorthandAssignmentValueSymbol(c.parent)===i||e.isExportSpecifier(c.parent)&&C(c,l,c.parent,t)===i){var u=a(c);if(u)return u}}}}function v(n,t,r){return void 0===r&&(r=n),h(n,t,r).map((function(t){return e.getTouchingPropertyName(n,t)}))}function h(n,t,r){void 0===r&&(r=n);var a=[];if(!t||!t.length)return a;for(var i=n.text,o=i.length,s=t.length,c=i.indexOf(t,r.pos);c>=0&&!(c>r.end);){var l=c+s;0!==c&&e.isIdentifierPart(i.charCodeAt(c-1),99)||l!==o&&e.isIdentifierPart(i.charCodeAt(l),99)||a.push(c),c=i.indexOf(t,c+s+1)}return a}function b(t,r){var a=t.getSourceFile(),i=r.text,o=e.mapDefined(v(a,i,t),(function(t){return t===r||e.isJumpStatementTarget(t)&&e.getTargetLabel(t,i)===r?n.nodeEntry(t):void 0}));return[{definition:{type:1,node:r},references:o}]}function E(e,n,t,r){return void 0===r&&(r=!0),t.cancellationToken.throwIfCancellationRequested(),T(e,e,n,t,r)}function T(e,n,t,r,a){if(r.markSearchedSymbols(n,t.allSearchSymbols))for(var i=0,o=h(n,t.text,e);i<o.length;i++){x(n,o[i],t,r,a)}}function S(n,t){return!!(e.getMeaningFromLocation(n)&t.searchMeaning)}function x(t,r,a,i,o){var s=e.getTouchingPropertyName(t,r);if(function(n,t){switch(n.kind){case 75:return n.text.length===t.length;case 14:case 10:var r=n;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(r)||e.isNameOfModuleDeclaration(n)||e.isExpressionOfExternalModuleImportEqualsDeclaration(n)||e.isCallExpression(n.parent)&&e.isBindableObjectDefinePropertyCall(n.parent)&&n.parent.arguments[1]===n)&&r.text.length===t.length;case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(n)&&n.text.length===t.length;case 83:return\"default\".length===t.length;default:return!1}}(s,a.text)){if(S(s,i)){var c=i.checker.getSymbolAtLocation(s);if(c){var l=s.parent;if(!e.isImportSpecifier(l)||l.propertyName!==s){if(e.isExportSpecifier(l))return e.Debug.assert(75===s.kind),void L(s,c,l,a,i,o);var d=function(n,t,r,a){var i=a.checker;return I(t,r,i,!1,!a.options.isForRename||!!a.options.providePrefixAndSuffixTextForRename,(function(t,r,a,i){return n.includes(a||r||t)?{symbol:!r||6&e.getCheckFlags(t)?t:r,kind:i}:void 0}),(function(t){return!(n.parents&&!n.parents.some((function(n){return function n(t,r,a,i){if(t===r)return!0;var o=e.getSymbolId(t)+\",\"+e.getSymbolId(r),s=a.get(o);if(void 0!==s)return s;a.set(o,!1);var c=t.declarations.some((function(t){return e.getAllSuperTypeNodes(t).some((function(e){var t=i.getTypeAtLocation(e);return!!t&&!!t.symbol&&n(t.symbol,r,a,i)}))}));return a.set(o,c),c}(t.parent,n,a.inheritsFromCache,i)})))}))}(a,c,s,i);if(d){switch(i.specialSearchKind){case 0:o&&A(s,d,i);break;case 1:!function(n,t,r,a){e.isNewExpressionTarget(n)&&A(n,r.symbol,a);var i=function(){return a.referenceAdder(r.symbol)};if(e.isClassLike(n.parent))e.Debug.assert(83===n.kind||n.parent.name===n),function(n,t,r){var a=D(n);if(a)for(var i=0,o=a.declarations;i<o.length;i++){var s=o[i],c=e.findChildOfKind(s,128,t);e.Debug.assert(161===s.kind&&!!c),r(c)}n.exports&&n.exports.forEach((function(n){var t=n.valueDeclaration;if(t&&160===t.kind){var a=t.body;a&&R(a,103,(function(n){e.isNewExpressionTarget(n)&&r(n)}))}}))}(r.symbol,t,i());else{var o=(s=n,e.tryGetClassExtendingExpressionWithTypeArguments(e.climbPastPropertyAccess(s).parent));o&&(function(n,t){var r=D(n.symbol);if(!r)return;for(var a=0,i=r.declarations;a<i.length;a++){var o=i[a];e.Debug.assert(161===o.kind);var s=o.body;s&&R(s,101,(function(n){e.isCallExpressionTarget(n)&&t(n)}))}}(o,i()),function(e,n){if(function(e){return!!D(e.symbol)}(e))return;var t=e.symbol,r=n.createSearch(void 0,t,void 0);u(t,n,r)}(o,a))}var s}(s,t,a,i);break;case 2:!function(n,t,r){A(n,t.symbol,r);var a=n.parent;if(r.options.isForRename||!e.isClassLike(a))return;e.Debug.assert(a.name===n);for(var i=r.referenceAdder(t.symbol),o=0,s=a.members;o<s.length;o++){var c=s[o];e.isMethodOrAccessor(c)&&e.hasModifier(c,32)&&(c.body&&c.body.forEachChild((function n(t){103===t.kind?i(t):e.isFunctionLike(t)||e.isClassLike(t)||t.forEachChild(n)})))}}(s,a,i);break;default:e.Debug.assertNever(i.specialSearchKind)}!function(e,t,r,a){var i=n.getImportOrExportSymbol(e,t,a.checker,1===r.comingFrom);if(!i)return;var o=i.symbol;0===i.kind?P(a.options)||_(o,a):m(e,o,i.exportInfo,a)}(s,c,a,i)}else!function(n,t,r){var a=n.flags,i=n.valueDeclaration,o=r.checker.getShorthandAssignmentValueSymbol(i),s=i&&e.getNameOfDeclaration(i);33554432&a||!s||!t.includes(o)||A(s,o,r)}(c,a,i)}}}}else!i.options.implementations&&(i.options.findInStrings&&e.isInString(t,r)||i.options.findInComments&&e.isInNonReferenceComment(t,r))&&i.addStringOrCommentReference(t.fileName,e.createTextSpan(r,a.text.length))}function L(t,r,a,i,o,s,c){e.Debug.assert(!c||!!o.options.providePrefixAndSuffixTextForRename,\"If alwaysGetReferences is true, then prefix/suffix text must be enabled\");var l=a.parent,u=a.propertyName,d=a.name,p=l.parent,f=C(t,r,a,o.checker);if(c||i.includes(f)){if(u?t===u?(p.moduleSpecifier||b(),s&&!o.options.isForRename&&o.markSeenReExportRHS(d)&&A(d,e.Debug.assertDefined(a.symbol),o)):o.markSeenReExportRHS(t)&&b():o.options.isForRename&&\"default\"===d.escapedText||b(),!P(o.options)||c){var g=83===t.originalKeywordKind||83===a.name.originalKeywordKind?1:0,y=e.Debug.assertDefined(a.symbol),v=n.getExportInfo(y,g,o.checker);v&&m(t,y,v,o)}if(1!==i.comingFrom&&p.moduleSpecifier&&!u&&!P(o.options)){var h=o.checker.getExportSpecifierLocalTargetSymbol(a);h&&_(h,o)}}function b(){s&&A(t,f,o)}}function C(n,t,r,a){return function(n,t){var r=t.parent,a=t.propertyName,i=t.name;return e.Debug.assert(a===n||i===n),a?a===n:!r.parent.moduleSpecifier}(n,r)&&a.getExportSpecifierLocalTargetSymbol(r)||t}function A(n,t,r){var a=\"kind\"in t?t:{kind:void 0,symbol:t},i=a.kind,o=a.symbol,s=r.referenceAdder(o);r.options.implementations?function(n,t,r){if(e.isDeclarationName(n)&&(a=n.parent,8388608&a.flags?!e.isInterfaceDeclaration(a)&&!e.isTypeAliasDeclaration(a):e.isVariableLike(a)?e.hasInitializer(a):e.isFunctionLikeDeclaration(a)?a.body:e.isClassLike(a)||e.isModuleOrEnumDeclaration(a)))return void t(n);var a;if(75!==n.kind)return;280===n.parent.kind&&O(n,r.checker,t);var i=function n(t){return e.isIdentifier(t)||e.isPropertyAccessExpression(t)?n(t.parent):e.isExpressionWithTypeArguments(t)?e.tryCast(t.parent.parent,e.isClassLike):void 0}(n);if(i)return void t(i);var o=e.findAncestor(n,(function(n){return!e.isQualifiedName(n.parent)&&!e.isTypeNode(n.parent)&&!e.isTypeElement(n.parent)})),s=o.parent;if(e.hasType(s)&&s.type===o&&r.markSeenContainingTypeReference(s))if(e.hasInitializer(s))l(s.initializer);else if(e.isFunctionLike(s)&&s.body){var c=s.body;222===c.kind?e.forEachReturnStatement(c,(function(e){e.expression&&l(e.expression)})):l(c)}else e.isAssertionExpression(s)&&l(s.expression);function l(e){(function e(n){switch(n.kind){case 199:return e(n.expression);case 201:case 200:case 192:case 213:case 191:return!0;default:return!1}})(e)&&t(e)}}(n,s,r):s(n,i)}function D(e){return e.members&&e.members.get(\"__constructor\")}function k(e){return 75===e.kind&&155===e.parent.kind&&e.parent.name===e}function N(e,n,t,r,a,i){var o=[];return I(e,n,t,r,!(r&&a),(function(e,n,t){o.push(t||n||e)}),(function(){return!i})),o}function I(n,t,a,i,o,s,c){var l=e.getContainingObjectLiteralElement(t);if(l){var u=a.getShorthandAssignmentValueSymbol(t.parent);if(u&&i)return s(u,void 0,void 0,3);var d=a.getContextualType(l.parent),p=d&&e.firstDefined(e.getPropertySymbolsFromContextualType(l,a,d,!0),(function(e){return E(e,4)}));if(p)return p;var m=function(n,t){return e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent.parent)?t.getPropertySymbolOfDestructuringAssignment(n):void 0}(t,a),f=m&&s(m,void 0,void 0,4);if(f)return f;var _=u&&s(u,void 0,void 0,3);if(_)return _}var g=r(t,n,a);if(g){var y=s(g,void 0,void 0,1);if(y)return y}var v=E(n);if(v)return v;if(n.valueDeclaration&&e.isParameterPropertyDeclaration(n.valueDeclaration,n.valueDeclaration.parent)){var h=a.getSymbolsOfParameterPropertyDeclaration(e.cast(n.valueDeclaration,e.isParameter),n.name);return e.Debug.assert(2===h.length&&!!(1&h[0].flags)&&!!(4&h[1].flags)),E(1&n.flags?h[1]:h[0])}if(!i){var b=void 0;return(b=o?e.isObjectBindingElementWithoutPropertyName(t.parent)?e.getPropertySymbolFromBindingElement(a,t.parent):void 0:T(n,a))&&E(b,4)}if(e.Debug.assert(i),o)return(b=T(n,a))&&E(b,4);function E(n,t){return e.firstDefined(a.getRootSymbols(n),(function(r){return s(n,r,void 0,t)||(r.parent&&96&r.parent.flags&&c(r)?e.getPropertySymbolsFromBaseTypes(r.parent,r.name,a,(function(e){return s(n,r,e,t)})):void 0)}))}function T(n,t){var r=e.getDeclarationOfKind(n,190);if(r&&e.isObjectBindingElementWithoutPropertyName(r))return e.getPropertySymbolFromBindingElement(t,r)}}function M(n,t){var r=e.getMeaningFromLocation(n),a=t.declarations;if(a){var i=void 0;do{i=r;for(var o=0,s=a;o<s.length;o++){var c=s[o],l=e.getMeaningFromDeclaration(c);l&r&&(r|=l)}}while(r!==i)}return r}function O(n,t,r){var a=t.getSymbolAtLocation(n),i=t.getShorthandAssignmentValueSymbol(a.valueDeclaration);if(i)for(var o=0,s=i.getDeclarations();o<s.length;o++){var c=s[o];1&e.getMeaningFromDeclaration(c)&&r(c)}}function R(n,t,r){e.forEachChild(n,(function(e){e.kind===t&&r(e),R(e,t,r)}))}function P(e){return e.isForRename&&e.providePrefixAndSuffixTextForRename}t.eachExportReference=function(t,r,a,i,o,s,c,l){for(var u=n.createImportTracker(t,e.arrayToSet(t,(function(e){return e.fileName})),r,a)(i,{exportKind:c?1:0,exportingModuleSymbol:o},!1),d=u.importSearches,p=u.indirectUsers,m=0,f=d;m<f.length;m++){l(f[m][0])}for(var _=0,g=p;_<g.length;_++)for(var y=0,h=v(g[_],c?\"default\":s);y<h.length;y++){var b=h[y];e.isIdentifier(b)&&!e.isImportOrExportSpecifier(b.parent)&&r.getSymbolAtLocation(b)===i&&l(b)}},t.isSymbolReferencedInFile=function(e,n,t){return y(e,n,t,(function(){return!0}))||!1},t.eachSymbolReferenceInFile=y,t.eachSignatureCall=function(n,t,r,a){if(n.name&&e.isIdentifier(n.name))for(var i=e.Debug.assertDefined(r.getSymbolAtLocation(n.name)),o=0,s=t;o<s.length;o++)for(var c=0,l=v(s[o],i.name);c<l.length;c++){var u=l[c];if(e.isIdentifier(u)&&u!==n.name&&u.escapedText===n.name.escapedText){var d=e.climbPastPropertyAccess(u),p=d.parent;if(e.isCallExpression(p)&&p.expression===d){var m=r.getSymbolAtLocation(u);m&&r.getRootSymbols(m).some((function(e){return e===i}))&&a(p)}}}},t.getIntersectingMeaningFromDeclarations=M,t.getReferenceEntriesForShorthandPropertyAssignment=O}(n.Core||(n.Core={}))}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){function n(n,r,a,i){var o=a(n);return function(n){var s=i&&i.tryGetSourcePosition({fileName:n,pos:0}),c=function(n){if(a(n)===o)return r;var t=e.tryRemoveDirectoryPrefix(n,o,a);return void 0===t?void 0:r+\"/\"+t}(s?s.fileName:n);return s?void 0===c?void 0:function(n,r,a,i){var o=e.getRelativePathFromFile(n,r,i);return t(e.getDirectoryPath(a),o)}(s.fileName,c,n,a):c}}function t(n,t){return e.ensurePathIsNonModuleName(function(n,t){return e.normalizePath(e.combinePaths(n,t))}(n,t))}function r(n,t){if(n){if(n.resolvedModule){var r=i(n.resolvedModule.resolvedFileName);if(r)return r}var a=e.forEach(n.failedLookupLocations,(function(n){return e.endsWith(n,\"/package.json\")?void 0:i(n)}));return a||n.resolvedModule&&{newFileName:n.resolvedModule.resolvedFileName,updated:!1}}function i(e){var n=t(e);return n&&{newFileName:n,updated:!0}}}function a(n,t){return e.createRange(n.getStart(t)+1,n.end-1)}function i(n,t){if(e.isObjectLiteralExpression(n))for(var r=0,a=n.properties;r<a.length;r++){var i=a[r];e.isPropertyAssignment(i)&&e.isStringLiteral(i.name)&&t(i,i.name.text)}}e.getEditsForFileRename=function(o,s,c,l,u,d,p){var m=e.hostUsesCaseSensitiveFileNames(l),f=e.createGetCanonicalFileName(m),_=n(s,c,f,p),g=n(c,s,f,p);return e.textChanges.ChangeTracker.with({host:l,formatContext:u,preferences:d},(function(n){!function(n,r,o,s,c,l,u){var d=n.getCompilerOptions().configFile;if(!d)return;var p=e.getDirectoryPath(d.fileName),m=e.getTsConfigObjectLiteralExpression(d);if(!m)return;function f(n){for(var t=!1,r=0,a=e.isArrayLiteralExpression(n.initializer)?n.initializer.elements:[n.initializer];r<a.length;r++){t=_(a[r])||t}return t}function _(n){if(!e.isStringLiteral(n))return!1;var i=t(p,n.text),s=o(i);return void 0!==s&&(r.replaceRangeWithText(d,a(n,d),g(s)),!0)}function g(n){return e.getRelativePathFromDirectory(p,n,!u)}i(m,(function(n,t){switch(t){case\"files\":case\"include\":case\"exclude\":if(!f(n)&&\"include\"===t&&e.isArrayLiteralExpression(n.initializer)){var a=e.mapDefined(n.initializer.elements,(function(n){return e.isStringLiteral(n)?n.text:void 0})),o=e.getFileMatcherPatterns(p,[],a,u,l);e.getRegexFromPattern(e.Debug.assertDefined(o.includeFilePattern),u).test(s)&&!e.getRegexFromPattern(e.Debug.assertDefined(o.includeFilePattern),u).test(c)&&r.insertNodeAfter(d,e.last(n.initializer.elements),e.createStringLiteral(g(c)))}break;case\"compilerOptions\":i(n.initializer,(function(n,t){var r=e.getOptionFromName(t);r&&(r.isFilePath||\"list\"===r.type&&r.element.isFilePath)?f(n):\"paths\"===t&&i(n.initializer,(function(n){if(e.isArrayLiteralExpression(n.initializer))for(var t=0,r=n.initializer.elements;t<r.length;t++){_(r[t])}}))}))}}))}(o,n,_,s,c,l.getCurrentDirectory(),m),function(n,i,o,s,c,l){for(var u=n.getSourceFiles(),d=function(d){var p=o(d.path),m=void 0!==p?p:d.path,f=e.getDirectoryPath(m),_=s(d.fileName),g=_||d.fileName,y=e.getDirectoryPath(g),v=void 0!==p||void 0!==_;!function(n,t,r,i){for(var o=0,s=n.referencedFiles||e.emptyArray;o<s.length;o++){var c=s[o];void 0!==(d=r(c.fileName))&&d!==n.text.slice(c.pos,c.end)&&t.replaceRangeWithText(n,c,d)}for(var l=0,u=n.imports;l<u.length;l++){var d,p=u[l];void 0!==(d=i(p))&&d!==p.text&&t.replaceRangeWithText(n,a(p,n),d)}}(d,i,(function(n){if(e.pathIsRelative(n)){var r=t(y,n),a=o(r);return void 0===a?void 0:e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(f,a,l))}}),(function(t){var a=n.getTypeChecker().getSymbolAtLocation(t);if(!a||!a.declarations.some((function(n){return e.isAmbientModule(n)}))){var i=void 0!==_?r(e.resolveModuleName(t.text,g,n.getCompilerOptions(),c),o):function(n,t,a,i,o,s){if(n){var c=e.find(n.declarations,e.isSourceFile).fileName,l=s(c);return void 0===l?{newFileName:c,updated:!1}:{newFileName:l,updated:!0}}return r(o.resolveModuleNames?o.getResolvedModuleWithFailedLookupLocationsFromCache&&o.getResolvedModuleWithFailedLookupLocationsFromCache(t.text,a.fileName):i.getResolvedModuleWithFailedLookupLocationsFromCache(t.text,a.fileName),s)}(a,t,d,n,c,o);return void 0!==i&&(i.updated||v&&e.pathIsRelative(t.text))?e.moduleSpecifiers.updateModuleSpecifier(n.getCompilerOptions(),m,i.newFileName,c,u,n.redirectTargetsMap,t.text):void 0}}))},p=0,m=u;p<m.length;p++){var f=m[p];d(f)}}(o,n,_,g,l,f)}))},e.getPathUpdater=n}(ts||(ts={})),function(e){!function(n){function t(n,t,a){var l,u,d=r(t,a,n);if(d)return[(l=d.fileName,u=d.file.fileName,{fileName:u,textSpan:e.createTextSpanFromBounds(0,0),kind:\"script\",name:l,containerName:void 0,containerKind:void 0})];var p=e.getTouchingPropertyName(t,a);if(p!==t){var m=p.parent;if(e.isJumpStatementTarget(p)){var f=e.getTargetLabel(p.parent,p.text);return f?[s(f,\"label\",p.text,void 0)]:void 0}var _=n.getTypeChecker(),g=function(e,n){var t=n.getSymbolAtLocation(e);if(t&&2097152&t.flags&&function(e,n){if(75!==e.kind)return!1;if(e.parent===n)return!0;switch(n.kind){case 254:case 252:return!0;case 257:return 256===n.parent.kind;default:return!1}}(e,t.declarations[0])){var r=n.getAliasedSymbol(t);if(r.declarations)return r}return t}(p,_);if(!g)return function(n,t){if(!e.isPropertyAccessExpression(n.parent)||n.parent.name!==n)return;var r=t.getTypeAtLocation(n.parent.expression);return e.mapDefined(r.isUnionOrIntersection()?r.types:[r],(function(e){var n=t.getIndexInfoOfType(e,0);return n&&n.declaration&&c(t,n.declaration)}))}(p,_);var y=function(n,t){var r=function(n){var t=function n(t){return e.isRightSideOfPropertyAccess(t)?n(t.parent):t}(n),r=t.parent;return r&&e.isCallLikeExpression(r)&&e.getInvokedExpression(r)===t?r:void 0}(t),a=r&&n.getResolvedSignature(r);return e.tryCast(a&&a.declaration,(function(n){return e.isFunctionLike(n)&&!e.isFunctionTypeNode(n)}))}(_,p);if(y&&(!e.isJsxOpeningLikeElement(p.parent)||!function(e){switch(e.kind){case 161:case 170:case 165:return!0;default:return!1}}(y))){var v=c(_,y);if(_.getRootSymbols(g).some((function(n){return function(n,t){return n===t.symbol||n===t.symbol.parent||!e.isCallLikeExpression(t.parent)&&n===t.parent.symbol}(n,y)}))||g.declarations&&g.declarations.some((function(n){return e.isVariableDeclaration(n)&&!!n.initializer&&e.isRequireCall(n.initializer,!1)})))return[v];var h=i(_,g,p,y)||e.emptyArray;return 101===p.kind?__spreadArrays([v],h):__spreadArrays(h,[v])}if(280===p.parent.kind){var b=_.getShorthandAssignmentValueSymbol(g.valueDeclaration);return b?b.declarations.map((function(e){return o(e,_,b,p)})):[]}if(e.isPropertyName(p)&&e.isBindingElement(m)&&e.isObjectBindingPattern(m.parent)&&p===(m.propertyName||m.name)){var E=e.getNameFromPropertyName(p),T=_.getTypeAtLocation(m.parent);return void 0===E?e.emptyArray:e.flatMap(T.isUnion()?T.types:[T],(function(e){var n=e.getProperty(E);return n&&i(_,n,p)}))}var S=e.getContainingObjectLiteralElement(p);if(S){var x=S&&_.getContextualType(S.parent);if(x)return e.flatMap(e.getPropertySymbolsFromContextualType(S,_,x,!1),(function(e){return i(_,e,p)}))}return i(_,g,p)}}function r(e,n,t){var r=l(e.referencedFiles,n);if(r)return(o=t.getSourceFileFromReference(e,r))&&{fileName:r.fileName,file:o};var a=l(e.typeReferenceDirectives,n);if(a){var i=t.getResolvedTypeReferenceDirectives().get(a.fileName);return(o=i&&t.getSourceFile(i.resolvedFileName))&&{fileName:a.fileName,file:o}}var o,s=l(e.libReferenceDirectives,n);return s?(o=t.getLibFileFromReference(s))&&{fileName:s.fileName,file:o}:void 0}function a(n,t,r){return e.flatMap(!n.isUnion()||32&n.flags?[n]:n.types,(function(e){return e.symbol&&i(t,e.symbol,r)}))}function i(n,t,r,a){var i=e.filter(t.declarations,(function(n){return n!==a&&(!e.isAssignmentDeclaration(n)||n===t.valueDeclaration)}))||void 0;return function(){if(32&t.flags&&!(16&t.flags)&&(e.isNewExpressionTarget(r)||128===r.kind)){return s((e.find(i,e.isClassLike)||e.Debug.fail(\"Expected declaration to have at least one class-like declaration\")).members,!0)}}()||(e.isCallOrNewExpressionTarget(r)||e.isNameOfFunctionDeclaration(r)?s(i,!1):void 0)||e.map(i,(function(e){return o(e,n,t,r)}));function s(a,i){if(a){var s=a.filter(i?e.isConstructorDeclaration:e.isFunctionLike),c=s.filter((function(e){return!!e.body}));return s.length?0!==c.length?c.map((function(e){return o(e,n,t,r)})):[o(e.last(s),n,t,r)]:void 0}}}function o(n,t,r,a){var i=t.symbolToString(r);return s(n,e.SymbolDisplay.getSymbolKind(t,r,a),i,r.parent?t.symbolToString(r.parent,a):\"\")}function s(n,t,r,a){var i=e.getNameOfDeclaration(n)||n,o=i.getSourceFile(),s=e.createTextSpanFromNode(i,o);return __assign({fileName:o.fileName,textSpan:s,kind:t,name:r,containerKind:void 0,containerName:a},e.FindAllReferences.toContextSpan(s,o,e.FindAllReferences.getContextNode(n)))}function c(e,n){return o(n,e,n.symbol,n)}function l(n,t){return e.find(n,(function(n){return e.textRangeContainsPositionInclusive(n,t)}))}n.getDefinitionAtPosition=t,n.getReferenceAtPosition=r,n.getTypeDefinitionAtPosition=function(n,t,r){var i=e.getTouchingPropertyName(t,r);if(i!==t){var o=n.getSymbolAtLocation(i);if(o){var s=n.getTypeOfSymbolAtLocation(o,i),c=function(n,t,r){if(t.symbol===n||n.valueDeclaration&&t.symbol&&e.isVariableDeclaration(n.valueDeclaration)&&n.valueDeclaration.initializer===t.symbol.valueDeclaration){var a=t.getCallSignatures();if(1===a.length)return r.getReturnTypeOfSignature(e.first(a))}return}(o,s,n),l=c&&a(c,n,i);return l&&0!==l.length?l:a(s,n,i)}}},n.getDefinitionAndBoundSpan=function(n,r,a){var i=t(n,r,a);if(i&&0!==i.length){var o=l(r.referencedFiles,a)||l(r.typeReferenceDirectives,a)||l(r.libReferenceDirectives,a);if(o)return{definitions:i,textSpan:e.createTextSpanFromRange(o)};var s=e.getTouchingPropertyName(r,a);return{definitions:i,textSpan:e.createTextSpan(s.getStart(),s.getWidth())}}},n.findReferenceInPosition=l}(e.GoToDefinition||(e.GoToDefinition={}))}(ts||(ts={})),function(e){!function(n){var t,r,a=[\"abstract\",\"access\",\"alias\",\"argument\",\"async\",\"augments\",\"author\",\"borrows\",\"callback\",\"class\",\"classdesc\",\"constant\",\"constructor\",\"constructs\",\"copyright\",\"default\",\"deprecated\",\"description\",\"emits\",\"enum\",\"event\",\"example\",\"exports\",\"extends\",\"external\",\"field\",\"file\",\"fileoverview\",\"fires\",\"function\",\"generator\",\"global\",\"hideconstructor\",\"host\",\"ignore\",\"implements\",\"inheritdoc\",\"inner\",\"instance\",\"interface\",\"kind\",\"lends\",\"license\",\"listens\",\"member\",\"memberof\",\"method\",\"mixes\",\"module\",\"name\",\"namespace\",\"override\",\"package\",\"param\",\"private\",\"property\",\"protected\",\"public\",\"readonly\",\"requires\",\"returns\",\"see\",\"since\",\"static\",\"summary\",\"template\",\"this\",\"throws\",\"todo\",\"tutorial\",\"type\",\"typedef\",\"var\",\"variation\",\"version\",\"virtual\",\"yields\"];function i(e){var n=e.comment;switch(e.kind){case 305:return r(e.class);case 314:return a(e.typeParameters.map((function(e){return e.getText()})).join(\", \"));case 313:return r(e.typeExpression);case 315:case 308:case 316:case 310:var t=e.name;return t?r(t):n;default:return n}function r(e){return a(e.getText())}function a(e){return void 0===n?e:e+\" \"+n}}function o(n){return{name:n,kind:\"\",kindModifiers:\"\",displayParts:[e.textPart(n)],documentation:e.emptyArray,tags:void 0,codeActions:void 0}}function s(n){switch(n.kind){case 243:case 200:case 160:case 161:case 159:return{commentOwner:n,parameters:n.parameters};case 279:return s(n.initializer);case 244:case 245:case 157:case 247:case 282:case 246:return{commentOwner:n};case 224:var t=n.declarationList.declarations;return{commentOwner:n,parameters:1===t.length&&t[0].initializer?function(n){for(;199===n.kind;)n=n.expression;switch(n.kind){case 200:case 201:return n.parameters;case 213:var t=e.find(n.members,e.isConstructorDeclaration);return t?t.parameters:e.emptyArray}return e.emptyArray}(t[0].initializer):void 0};case 288:return\"quit\";case 248:return 248===n.parent.kind?void 0:{commentOwner:n};case 208:var r=n;return 0===e.getAssignmentDeclarationKind(r)?\"quit\":{commentOwner:n,parameters:e.isFunctionLike(r.right)?r.right.parameters:e.emptyArray}}}n.getJsDocCommentsFromDeclarations=function(n){var t=[];return e.forEachUnique(n,(function(n){for(var r=0,a=function(n){switch(n.kind){case 310:case 316:return[n];case 308:case 315:return[n,n.parent];default:return e.getJSDocCommentsAndTags(n)}}(n);r<a.length;r++){var i=a[r].comment;void 0!==i&&(t.length&&t.push(e.lineBreakPart()),t.push(e.textPart(i)))}})),t},n.getJsDocTagsFromDeclarations=function(n){var t=[];return e.forEachUnique(n,(function(n){for(var r=0,a=e.getJSDocTags(n);r<a.length;r++){var o=a[r];t.push({name:o.tagName.text,text:i(o)})}})),t},n.getJSDocTagNameCompletions=function(){return t||(t=e.map(a,(function(e){return{name:e,kind:\"keyword\",kindModifiers:\"\",sortText:\"0\"}})))},n.getJSDocTagNameCompletionDetails=o,n.getJSDocTagCompletions=function(){return r||(r=e.map(a,(function(e){return{name:\"@\"+e,kind:\"keyword\",kindModifiers:\"\",sortText:\"0\"}})))},n.getJSDocTagCompletionDetails=o,n.getJSDocParameterNameCompletions=function(n){if(!e.isIdentifier(n.name))return e.emptyArray;var t=n.name.text,r=n.parent,a=r.parent;return e.isFunctionLike(a)?e.mapDefined(a.parameters,(function(a){if(e.isIdentifier(a.name)){var i=a.name.text;if(!r.tags.some((function(t){return t!==n&&e.isJSDocParameterTag(t)&&e.isIdentifier(t.name)&&t.name.escapedText===i}))&&(void 0===t||e.startsWith(i,t)))return{name:i,kind:\"parameter\",kindModifiers:\"\",sortText:\"0\"}}})):[]},n.getJSDocParameterNameCompletionDetails=function(n){return{name:n,kind:\"parameter\",kindModifiers:\"\",displayParts:[e.textPart(n)],documentation:e.emptyArray,tags:void 0,codeActions:void 0}},n.getDocCommentTemplateAtPosition=function(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.findAncestor(a,e.isJSDoc);if(!i||void 0===i.comment&&!e.length(i.tags)){var o=a.getStart(t);if(i||!(o<r)){var c=function(n){return e.forEachAncestor(n,s)}(a);if(c){var l=c.commentOwner,u=c.parameters;if(!(l.getStart(t)<r)){if(!u||0===u.length){return{newText:\"/** */\",caretOffset:3}}var d=function(n,t){for(var r=n.text,a=e.getLineStartPositionForPosition(t,n),i=a;i<=t&&e.isWhiteSpaceSingleLine(r.charCodeAt(i));i++);return r.slice(a,i)}(t,r),p=\"/**\"+n+d+\" * \";return{newText:p+n+function(e,n,t,r){return e.map((function(e,a){var i=e.name,o=e.dotDotDotToken,s=75===i.kind?i.text:\"param\"+a;return t+\" * @param \"+(n?o?\"{...any} \":\"{any} \":\"\")+s+r})).join(\"\")}(u,e.hasJSFileExtension(t.fileName),d,n)+d+\" */\"+(o===r?n+d:\"\"),caretOffset:p.length}}}}}}}(e.JsDoc||(e.JsDoc={}))}(ts||(ts={})),function(e){!function(n){function t(e,n){switch(e.kind){case 254:case 257:case 252:var t=n.getSymbolAtLocation(e.name),r=n.getAliasedSymbol(t);return t.escapedName!==r.escapedName;default:return!0}}function r(n,t){var r=e.getNameOfDeclaration(n);return!!r&&(i(r,t)||153===r.kind&&a(r.expression,t))}function a(n,t){return i(n,t)||e.isPropertyAccessExpression(n)&&(t.push(n.name.text),!0)&&a(n.expression,t)}function i(n,t){return e.isPropertyNameLiteral(n)&&(t.push(e.getTextOfIdentifierOrLiteral(n)),!0)}function o(n){var t=[],i=e.getNameOfDeclaration(n);if(i&&153===i.kind&&!a(i.expression,t))return e.emptyArray;t.shift();for(var o=e.getContainerNode(n);o;){if(!r(o,t))return e.emptyArray;o=e.getContainerNode(o)}return t.reverse()}function s(n,t){return e.compareValues(n.matchKind,t.matchKind)||e.compareStringsCaseSensitiveUI(n.name,t.name)}function c(n){var t=n.declaration,r=e.getContainerNode(t),a=r&&e.getNameOfDeclaration(r);return{name:n.name,kind:e.getNodeKind(t),kindModifiers:e.getNodeModifiers(t),matchKind:e.PatternMatchKind[n.matchKind],isCaseSensitive:n.isCaseSensitive,fileName:n.fileName,textSpan:e.createTextSpanFromNode(t),containerName:a?a.text:\"\",containerKind:a?e.getNodeKind(r):\"\"}}n.getNavigateToItems=function(n,r,a,i,l,u){var d=e.createPatternMatcher(i);if(!d)return e.emptyArray;for(var p=[],m=function(e){if(a.throwIfCancellationRequested(),u&&e.isDeclarationFile)return\"continue\";e.getNamedDeclarations().forEach((function(n,a){!function(e,n,r,a,i,s){var c=e.getMatchForLastSegmentOfPattern(n);if(!c)return;for(var l=0,u=r;l<u.length;l++){var d=u[l];if(t(d,a))if(e.patternContainsDots){var p=e.getFullMatch(o(d),n);p&&s.push({name:n,fileName:i,matchKind:p.kind,isCaseSensitive:p.isCaseSensitive,declaration:d})}else s.push({name:n,fileName:i,matchKind:c.kind,isCaseSensitive:c.isCaseSensitive,declaration:d})}}(d,a,n,r,e.fileName,p)}))},f=0,_=n;f<_.length;f++){m(_[f])}return p.sort(s),(void 0===l?p:p.slice(0,l)).map(c)}}(e.NavigateTo||(e.NavigateTo={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i,o,s=/\\s+/g,c=[],l=[],u=[];function d(){a=void 0,r=void 0,c=[],i=void 0,u=[]}function p(e){return U(e.getText(a))}function m(e){return e.node.kind}function f(e,n){e.children?e.children.push(n):e.children=[n]}function _(n){e.Debug.assert(!c.length);var t={node:n,name:void 0,additionalNodes:void 0,parent:void 0,children:void 0,indent:0};i=t;for(var r=0,a=n.statements;r<a.length;r++){x(a[r])}return T(),e.Debug.assert(!i&&!c.length),t}function g(e,n){f(i,y(e,n))}function y(n,t){return{node:n,name:t||(e.isDeclaration(n)||e.isExpression(n)?e.getNameOfDeclaration(n):void 0),additionalNodes:void 0,parent:i,children:void 0,indent:i.indent+1}}function v(n){o||(o=e.createMap()),o.set(n,!0)}function h(e){for(var n=0;n<e;n++)T()}function b(n,t){for(var r=[];!e.isPropertyNameLiteral(t);){var a=e.getNameOrArgument(t),i=e.getElementOrPropertyAccessName(t);t=t.expression,\"prototype\"!==i&&r.push(a)}r.push(t);for(var o=r.length-1;o>0;o--){E(n,a=r[o])}return[r.length-1,r[0]]}function E(e,n){var t=y(e,n);f(i,t),c.push(i),l.push(o),i=t}function T(){i.children&&(L(i.children,i),k(i.children)),i=c.pop(),o=l.pop()}function S(e,n,t){E(e,t),x(n),T()}function x(n){var t;if(r.throwIfCancellationRequested(),n&&!e.isToken(n))switch(n.kind){case 161:var a=n;S(a,a.body);for(var i=0,s=a.parameters;i<s.length;i++){var c=s[i];e.isParameterPropertyDeclaration(c,a)&&g(c)}break;case 160:case 162:case 163:case 159:e.hasDynamicName(n)||S(n,n.body);break;case 158:case 157:e.hasDynamicName(n)||g(n);break;case 254:var l=n;l.name&&g(l.name);var u=l.namedBindings;if(u)if(255===u.kind)g(u);else for(var d=0,p=u.elements;d<p.length;d++){g(p[d])}break;case 280:S(n,n.name);break;case 281:var m=n.expression;e.isIdentifier(m)?g(n,m):g(n);break;case 190:case 279:case 241:var f=n,_=f.name,y=f.initializer;e.isBindingPattern(_)?x(_):y&&function(e){switch(e.kind){case 201:case 200:case 213:return!0;default:return!1}}(y)?(E(n),e.forEachChild(y,x),T()):S(n,y);break;case 243:var L=n.name;L&&e.isIdentifier(L)&&v(L.text),S(n,n.body);break;case 201:case 200:S(n,n.body);break;case 247:E(n);for(var C=0,A=n.members;C<A.length;C++){F(N=A[C])||g(N)}T();break;case 244:case 213:case 245:E(n);for(var D=0,k=n.members;D<k.length;D++){var N;x(N=k[D])}T();break;case 248:S(n,function n(t){return t.body&&e.isModuleDeclaration(t.body)?n(t.body):t}(n).body);break;case 261:case 252:case 166:case 164:case 165:case 246:g(n);break;case 195:case 208:var I=e.getAssignmentDeclarationKind(n);switch(I){case 1:case 2:return void S(n,n.right);case 6:case 3:var M=(V=n).left,O=3===I?M.expression:M,R=0,P=void 0;return e.isIdentifier(O.expression)?(v(O.expression.text),P=O.expression):(R=(t=b(V,O.expression))[0],P=t[1]),6===I?e.isObjectLiteralExpression(V.right)&&V.right.properties.length>0&&(E(V,P),e.forEachChild(V.right,x),T()):e.isFunctionExpression(V.right)||e.isArrowFunction(V.right)?S(n,V.right,P):(E(V,P),S(n,V.right,M.name),T()),void h(R);case 7:case 9:var w=n,G=(P=7===I?w.arguments[0]:w.arguments[0].expression,w.arguments[1]),B=b(n,P);R=B[0];return E(n,B[1]),E(n,e.setTextRange(e.createIdentifier(G.text),G)),x(n.arguments[2]),T(),T(),void h(R);case 5:var V,U=(M=(V=n).left).expression;if(e.isIdentifier(U)&&\"prototype\"!==e.getElementOrPropertyAccessName(M)&&o&&o.has(U.text))return void(e.isFunctionExpression(V.right)||e.isArrowFunction(V.right)?S(n,V.right,U):e.isBindableStaticAccessExpression(M)&&(E(V,U),S(V.left,V.right,e.getNameOrArgument(M)),T()));break;case 4:case 0:case 8:break;default:e.Debug.assertNever(I)}default:e.hasJSDocNodes(n)&&e.forEach(n.jsDoc,(function(n){e.forEach(n.tags,(function(n){e.isJSDocTypeAlias(n)&&g(n)}))})),e.forEachChild(n,x)}}function L(n,t){var r=e.createMap();e.filterMutate(n,(function(n,a){var i=n.name||e.getNameOfDeclaration(n.node),o=i&&p(i);if(!o)return!0;var s=r.get(o);if(!s)return r.set(o,n),!0;if(s instanceof Array){for(var c=0,l=s;c<l.length;c++){var u;if(A(u=l[c],n,a,t))return!1}return s.push(n),!0}return!A(u=s,n,a,t)&&(r.set(o,[u,n]),!0)}))}n.getNavigationBarItems=function(n,t){r=t,a=n;try{return e.map(function(e){var n=[];function t(e){if(function(e){if(e.children)return!0;switch(m(e)){case 244:case 213:case 247:case 245:case 248:case 288:case 246:case 315:case 308:return!0;case 201:case 243:case 200:return function(e){if(!e.node.body)return!1;switch(m(e.parent)){case 249:case 288:case 160:case 161:return!0;default:return!1}}(e);default:return!1}}(e)&&(n.push(e),e.children))for(var r=0,a=e.children;r<a.length;r++){t(a[r])}}return t(e),n}(_(n)),R)}finally{d()}},n.getNavigationTree=function(e,n){r=n,a=e;try{return O(_(e))}finally{d()}};var C=((t={})[5]=!0,t[3]=!0,t[7]=!0,t[9]=!0,t[0]=!1,t[1]=!1,t[2]=!1,t[8]=!1,t[6]=!0,t[4]=!1,t);function A(n,t,r,a){return!!function(n,t,r,a){function i(n){return e.isFunctionExpression(n)||e.isFunctionDeclaration(n)||e.isVariableDeclaration(n)}var o=e.isBinaryExpression(t.node)||e.isCallExpression(t.node)?e.getAssignmentDeclarationKind(t.node):0,s=e.isBinaryExpression(n.node)||e.isCallExpression(n.node)?e.getAssignmentDeclarationKind(n.node):0;if(C[o]&&C[s]||i(n.node)&&C[o]||i(t.node)&&C[s]||e.isClassDeclaration(n.node)&&C[o]||e.isClassDeclaration(t.node)&&C[s]||e.isClassDeclaration(n.node)&&i(t.node)||e.isClassDeclaration(t.node)&&i(n.node)){var c=n.additionalNodes&&e.lastOrUndefined(n.additionalNodes)||n.node;if(!e.isClassDeclaration(n.node)&&!e.isClassDeclaration(t.node)||i(n.node)||i(t.node)){var l=i(n.node)?n.node:i(t.node)?t.node:void 0;if(void 0!==l){var u=y(e.setTextRange(e.createConstructor(void 0,void 0,[],void 0),l));u.indent=n.indent+1,u.children=n.node===l?n.children:t.children,n.children=n.node===l?e.concatenate([u],t.children||[t]):e.concatenate(n.children||[n],[u])}else(n.children||t.children)&&(n.children=e.concatenate(n.children||[n],t.children||[t]),n.children&&(L(n.children,n),k(n.children)));c=n.node=e.setTextRange(e.createClassDeclaration(void 0,void 0,n.name||e.createIdentifier(\"__class__\"),void 0,void 0,[]),n.node)}else n.children=e.concatenate(n.children,t.children),n.children&&L(n.children,n);var d=t.node;return a.children[r-1].node.end===c.end?e.setTextRange(c,{pos:c.pos,end:d.end}):(n.additionalNodes||(n.additionalNodes=[]),n.additionalNodes.push(e.setTextRange(e.createClassDeclaration(void 0,void 0,n.name||e.createIdentifier(\"__class__\"),void 0,void 0,[]),t.node))),!0}return 0!==o}(n,t,r,a)||!!function(n,t,r){if(n.kind!==t.kind||n.parent!==t.parent&&(!D(n,r)||!D(t,r)))return!1;switch(n.kind){case 158:case 160:case 162:case 163:return e.hasModifier(n,32)===e.hasModifier(t,32);case 248:return function e(n,t){return n.body.kind===t.body.kind&&(248!==n.body.kind||e(n.body,t.body))}(n,t);default:return!0}}(n.node,t.node,a)&&(function(n,t){var r;n.additionalNodes=n.additionalNodes||[],n.additionalNodes.push(t.node),t.additionalNodes&&(r=n.additionalNodes).push.apply(r,t.additionalNodes);n.children=e.concatenate(n.children,t.children),n.children&&(L(n.children,n),k(n.children))}(n,t),!0)}function D(n,t){var r=e.isModuleBlock(n.parent)?n.parent.parent:n.parent;return r===t.node||e.contains(t.additionalNodes,r)}function k(e){e.sort(N)}function N(n,t){return e.compareStringsCaseSensitiveUI(I(n.node),I(t.node))||e.compareValues(m(n),m(t))}function I(n){if(248===n.kind)return w(n);var t=e.getNameOfDeclaration(n);if(t&&e.isPropertyName(t)){var r=e.getPropertyNameForPropertyNameNode(t);return r&&e.unescapeLeadingUnderscores(r)}switch(n.kind){case 200:case 201:case 213:return V(n);default:return}}function M(n,t){if(248===n.kind)return U(w(n));if(t){var r=e.isIdentifier(t)?t.text:e.isElementAccessExpression(t)?\"[\"+p(t.argumentExpression)+\"]\":p(t);if(r.length>0)return U(r)}switch(n.kind){case 288:var a=n;return e.isExternalModule(a)?'\"'+e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(a.fileName))))+'\"':\"<global>\";case 201:case 243:case 200:case 244:case 213:return 512&e.getModifierFlags(n)?\"default\":V(n);case 161:return\"constructor\";case 165:return\"new()\";case 164:return\"()\";case 166:return\"[]\";default:return\"<unknown>\"}}function O(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:B(n.node),spans:P(n),nameSpan:n.name&&G(n.name),childItems:e.map(n.children,O)}}function R(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:B(n.node),spans:P(n),childItems:e.map(n.children,(function(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:e.getNodeModifiers(n.node),spans:P(n),childItems:u,indent:0,bolded:!1,grayed:!1}}))||u,indent:n.indent,bolded:!1,grayed:!1}}function P(e){var n=[G(e.node)];if(e.additionalNodes)for(var t=0,r=e.additionalNodes;t<r.length;t++){var a=r[t];n.push(G(a))}return n}function w(n){if(e.isAmbientModule(n))return e.getTextOfNode(n.name);var t=[];for(t.push(e.getTextOfIdentifierOrLiteral(n.name));n.body&&248===n.body.kind;)n=n.body,t.push(e.getTextOfIdentifierOrLiteral(n.name));return t.join(\".\")}function F(e){return!e.name||153===e.name.kind}function G(n){return 288===n.kind?e.createTextSpanFromRange(n):e.createTextSpanFromNode(n,a)}function B(n){return n.parent&&241===n.parent.kind&&(n=n.parent),e.getNodeModifiers(n)}function V(n){var t=n.parent;if(n.name&&e.getFullWidth(n.name)>0)return U(e.declarationNameToString(n.name));if(e.isVariableDeclaration(t))return U(e.declarationNameToString(t.name));if(e.isBinaryExpression(t)&&62===t.operatorToken.kind)return p(t.left).replace(s,\"\");if(e.isPropertyAssignment(t))return p(t.name);if(512&e.getModifierFlags(n))return\"default\";if(e.isClassLike(n))return\"<class>\";if(e.isCallExpression(t)){var r=function n(t){if(e.isIdentifier(t))return t.text;if(e.isPropertyAccessExpression(t)){var r=n(t.expression),a=t.name.text;return void 0===r?a:r+\".\"+a}return}(t.expression);if(void 0!==r)return(r=U(r)).length>150?r+\" callback\":r+\"(\"+U(e.mapDefined(t.arguments,(function(n){return e.isStringLiteralLike(n)?n.getText(a):void 0})).join(\", \"))+\") callback\"}return\"<function>\"}function U(e){return(e=e.length>150?e.substring(0,150)+\"...\":e).replace(/\\\\?(\\r?\\n|\\r|\\u2028|\\u2029)/g,\"\")}}(e.NavigationBar||(e.NavigationBar={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){var r=e.isStringLiteral(t)&&t.text;return e.isString(r)&&e.some(n.moduleAugmentations,(function(n){return e.isStringLiteral(n)&&n.text===r}))}function r(n){return void 0!==n&&e.isStringLiteralLike(n)?n.text:void 0}function a(n){if(0===n.length)return n;var t=function(n){for(var t,r=[],a=[],i=[],o=0,s=n;o<s.length;o++){var c=s[o];if(void 0!==c.importClause){var l=c.importClause,u=l.name,d=l.namedBindings;u&&r.push(c),d&&(e.isNamespaceImport(d)?a.push(c):i.push(c))}else t=t||c}return{importWithoutClause:t,defaultImports:r,namespaceImports:a,namedImports:i}}(n),r=t.importWithoutClause,a=t.defaultImports,i=t.namespaceImports,c=t.namedImports,u=[];if(r&&u.push(r),1===a.length&&1===i.length&&0===c.length){var d=a[0];return u.push(o(d,d.importClause.name,i[0].importClause.namedBindings)),u}for(var p,m=0,f=e.stableSort(i,(function(e,n){return l(e.importClause.namedBindings.name,n.importClause.namedBindings.name)}));m<f.length;m++){var _=f[m];u.push(o(_,void 0,_.importClause.namedBindings))}if(0===a.length&&0===c.length)return u;var g=[];if(1===a.length)p=a[0].importClause.name;else for(var y=0,v=a;y<v.length;y++){d=v[y];g.push(e.createImportSpecifier(e.createIdentifier(\"default\"),d.importClause.name))}g.push.apply(g,e.flatMap(c,(function(e){return e.importClause.namedBindings.elements})));var h=s(g),b=a.length>0?a[0]:c[0],E=0===h.length?p?void 0:e.createNamedImports(e.emptyArray):0===c.length?e.createNamedImports(h):e.updateNamedImports(c[0].importClause.namedBindings,h);return u.push(o(b,p,E)),u}function i(n){if(0===n.length)return n;var t=function(e){for(var n,t=[],r=0,a=e;r<a.length;r++){var i=a[r];void 0===i.exportClause?n=n||i:t.push(i)}return{exportWithoutClause:n,namedExports:t}}(n),r=t.exportWithoutClause,a=t.namedExports,i=[];if(r&&i.push(r),0===a.length)return i;var o=[];o.push.apply(o,e.flatMap(a,(function(e){return e.exportClause.elements})));var c=s(o),l=a[0];return i.push(e.updateExportDeclaration(l,l.decorators,l.modifiers,e.updateNamedExports(l.exportClause,c),l.moduleSpecifier)),i}function o(n,t,r){return e.updateImportDeclaration(n,n.decorators,n.modifiers,e.updateImportClause(n.importClause,t,r),n.moduleSpecifier)}function s(n){return e.stableSort(n,(function(e,n){return l(e.propertyName||e.name,n.propertyName||n.name)||l(e.name,n.name)}))}function c(n,t){var a=r(n),i=r(t);return e.compareBooleans(void 0===a,void 0===i)||e.compareBooleans(e.isExternalModuleNameRelative(a),e.isExternalModuleNameRelative(i))||e.compareStringsCaseInsensitive(a,i)}function l(n,t){return e.compareStringsCaseInsensitive(n.text,t.text)}n.organizeImports=function(n,s,l,u,d){var p=e.textChanges.ChangeTracker.fromContext({host:l,formatContext:s,preferences:d}),m=function(r){return a(function(n,r,a){for(var i=a.getTypeChecker(),s=i.getJsxNamespace(r),c=!!(2&r.transformFlags),l=[],u=0,d=n;u<d.length;u++){var p=d[u],m=p.importClause,f=p.moduleSpecifier;if(m){var _=m.name,g=m.namedBindings;if(_&&!v(_)&&(_=void 0),g)if(e.isNamespaceImport(g))v(g.name)||(g=void 0);else{var y=g.elements.filter((function(e){return v(e.name)}));y.length<g.elements.length&&(g=y.length?e.updateNamedImports(g,y):void 0)}_||g?l.push(o(p,_,g)):t(r,f)&&(r.isDeclarationFile?l.push(e.createImportDeclaration(p.decorators,p.modifiers,void 0,f)):l.push(p))}else l.push(p)}return l;function v(n){return c&&n.text===s||e.FindAllReferences.Core.isSymbolReferencedInFile(n,i,r)}}(r,n,u))};y(n.statements.filter(e.isImportDeclaration),m),y(n.statements.filter(e.isExportDeclaration),i);for(var f=0,_=n.statements.filter(e.isAmbientModule);f<_.length;f++){var g=_[f];if(g.body)y(g.body.statements.filter(e.isImportDeclaration),m),y(g.body.statements.filter(e.isExportDeclaration),i)}return p.getChanges();function y(t,a){if(0!==e.length(t)){e.suppressLeadingTrivia(t[0]);var i=e.group(t,(function(e){return r(e.moduleSpecifier)})),o=e.stableSort(i,(function(e,n){return c(e[0].moduleSpecifier,n[0].moduleSpecifier)})),u=e.flatMap(o,(function(e){return r(e[0].moduleSpecifier)?a(e):e}));0===u.length?p.delete(n,t[0]):p.replaceNodeWithNodes(n,t[0],u,{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include,suffix:e.getNewLineOrDefaultFromHost(l,s.options)});for(var d=1;d<t.length;d++)p.delete(n,t[d])}}},n.coalesceImports=a,n.coalesceExports=i,n.compareModuleSpecifiers=c}(e.OrganizeImports||(e.OrganizeImports={}))}(ts||(ts={})),function(e){!function(n){n.collectElements=function(n,t){var c=[];return function(n,t,r){var c=40,l=0,u=n.statements,d=u.length;for(;l<d;){for(;l<d&&!e.isAnyImportSyntax(u[l]);)f(u[l]),l++;if(l===d)break;for(var p=l;l<d&&e.isAnyImportSyntax(u[l]);)a(u[l],n,t,r),l++;var m=l-1;m!==p&&r.push(i(e.findChildOfKind(u[p],95,n).getStart(n),u[m].getEnd(),\"imports\"))}function f(l){if(0!==c){t.throwIfCancellationRequested(),e.isDeclaration(l)&&a(l,n,t,r),function(n){if(!e.isFunctionExpression(n)&&!e.isArrowFunction(n))return!1;var t=e.findAncestor(n,e.isVariableStatement);return!!t&&e.getSingleInitializerOfVariableStatementOrPropertyDeclaration(t)===n}(l)&&a(l.parent.parent.parent,n,t,r);var u=function(n,t){switch(n.kind){case 222:if(e.isFunctionLike(n.parent))return function(n,t,r){var a=e.isNodeArrayMultiLine(n.parameters,r)?e.findChildOfKind(n,20,r):e.findChildOfKind(t,18,r),i=e.findChildOfKind(t,19,r);return a&&i&&o(a,i,n,r,201!==n.kind)}(n.parent,n,t);switch(n.parent.kind){case 227:case 230:case 231:case 229:case 226:case 228:case 235:case 278:return d(n.parent);case 239:var r=n.parent;if(r.tryBlock===n)return d(n.parent);if(r.finallyBlock===n)return d(e.findChildOfKind(r,91,t));default:return s(e.createTextSpanFromNode(n,t),\"code\")}case 249:return d(n.parent);case 244:case 213:case 245:case 247:case 250:return d(n);case 192:return u(n);case 191:return u(n,22);case 264:return a=n,c=e.createTextSpanFromBounds(a.openingElement.getStart(t),a.closingElement.getEnd()),l=a.openingElement.tagName.getText(t),s(c,\"code\",c,!1,\"<\"+l+\">...</\"+l+\">\");case 268:return function(n){var r=e.createTextSpanFromBounds(n.openingFragment.getStart(t),n.closingFragment.getEnd());return s(r,\"code\",r,!1,\"<>...</>\")}(n);case 265:case 266:return function(e){if(0===e.properties.length)return;return i(e.getStart(t),e.getEnd(),\"code\")}(n.attributes)}var a,c,l;function u(n,t){return void 0===t&&(t=18),d(n,!1,!e.isArrayLiteralExpression(n.parent)&&!e.isCallExpression(n.parent),t)}function d(r,a,i,s,c){void 0===a&&(a=!1),void 0===i&&(i=!0),void 0===s&&(s=18),void 0===c&&(c=18===s?19:23);var l=e.findChildOfKind(n,s,t),u=e.findChildOfKind(n,c,t);return l&&u&&o(l,u,r,t,a,i)}}(l,n);u&&r.push(u),c--,e.isIfStatement(l)&&l.elseStatement&&e.isIfStatement(l.elseStatement)?(f(l.expression),f(l.thenStatement),c++,f(l.elseStatement),c--):l.forEachChild(f),c++}}}(n,t,c),function(n,t){for(var a=[],i=n.getLineStarts(),o=0,c=i;o<c.length;o++){var l=c[o],u=n.getLineEndOfPosition(l),d=r(n.text.substring(l,u));if(d&&!e.isInComment(n,l))if(d[1]){var p=a.pop();p&&(p.textSpan.length=u-p.textSpan.start,p.hintSpan.length=u-p.textSpan.start,t.push(p))}else{var m=e.createTextSpanFromBounds(n.text.indexOf(\"//\",l),u);a.push(s(m,\"region\",m,!1,d[2]||\"#region\"))}}}(n,c),c.sort((function(e,n){return e.textSpan.start-n.textSpan.start}))};var t=/^\\s*\\/\\/\\s*#(end)?region(?:\\s+(.*))?(?:\\r)?$/;function r(e){return t.exec(e)}function a(n,t,a,o){var s=e.getLeadingCommentRangesOfNode(n,t);if(s){for(var c=-1,l=-1,u=0,d=t.getFullText(),p=0,m=s;p<m.length;p++){var f=m[p],_=f.kind,g=f.pos,y=f.end;switch(a.throwIfCancellationRequested(),_){case 2:if(r(d.slice(g,y))){v(),u=0;break}0===u&&(c=g),l=y,u++;break;case 3:v(),o.push(i(g,y,\"comment\")),u=0;break;default:e.Debug.assertNever(_)}}v()}function v(){u>1&&o.push(i(c,l,\"comment\"))}}function i(n,t,r){return s(e.createTextSpanFromBounds(n,t),r)}function o(n,t,r,a,i,o){return void 0===i&&(i=!1),void 0===o&&(o=!0),s(e.createTextSpanFromBounds(o?n.getFullStart():n.getStart(a),t.getEnd()),\"code\",e.createTextSpanFromNode(r,a),i)}function s(e,n,t,r,a){return void 0===t&&(t=e),void 0===r&&(r=!1),void 0===a&&(a=\"...\"),{textSpan:e,kind:n,hintSpan:t,bannerText:a,autoCollapse:r}}}(e.OutliningElementsCollector||(e.OutliningElementsCollector={}))}(ts||(ts={})),function(e){var n;function t(e,n){return{kind:e,isCaseSensitive:n}}function r(e,n){var t=n.get(e);return t||n.set(e,t=v(e)),t}function a(a,i,o){var s=function(e,n){for(var t=e.length-n.length,r=function(t){if(L(n,(function(n,r){return p(e.charCodeAt(r+t))===n})))return{value:t}},a=0;a<=t;a++){var i=r(a);if(\"object\"==typeof i)return i.value}return-1}(a,i.textLowerCase);if(0===s)return t(i.text.length===a.length?n.exact:n.prefix,e.startsWith(a,i.text));if(i.isLowerCase){if(-1===s)return;for(var d=0,m=r(a,o);d<m.length;d++){var f=m[d];if(c(a,f,i.text,!0))return t(n.substring,c(a,f,i.text,!1))}if(i.text.length<a.length&&u(a.charCodeAt(s)))return t(n.substring,!1)}else{if(a.indexOf(i.text)>0)return t(n.substring,!0);if(i.characterSpans.length>0){var _=r(a,o),g=!!l(a,_,i,!1)||!l(a,_,i,!0)&&void 0;if(void 0!==g)return t(n.camelCase,g)}}}function i(e,n,t){if(L(n.totalTextChunk.text,(function(e){return 32!==e&&42!==e}))){var r=a(e,n.totalTextChunk,t);if(r)return r}for(var i,s=0,c=n.subWordTextChunks;s<c.length;s++){i=o(i,a(e,c[s],t))}return i}function o(n,t){return e.min(n,t,s)}function s(n,t){return void 0===n?1:void 0===t?-1:e.compareValues(n.kind,t.kind)||e.compareBooleans(!n.isCaseSensitive,!t.isCaseSensitive)}function c(e,n,t,r,a){return void 0===a&&(a={start:0,length:t.length}),a.length<=n.length&&x(0,a.length,(function(i){return function(e,n,t){return t?p(e)===p(n):e===n}(t.charCodeAt(a.start+i),e.charCodeAt(n.start+i),r)}))}function l(n,t,r,a){for(var i,o,s=r.characterSpans,l=0,d=0;;){if(d===s.length)return!0;if(l===t.length)return!1;for(var p=t[l],m=!1;d<s.length;d++){var f=s[d];if(m&&(!u(r.text.charCodeAt(s[d-1].start))||!u(r.text.charCodeAt(s[d].start))))break;if(!c(n,p,r.text,a,f))break;m=!0,i=void 0===i?l:i,o=void 0===o||o,p=e.createTextSpan(p.start+f.length,p.length-f.length)}m||void 0===o||(o=!1),l++}}function u(n){if(n>=65&&n<=90)return!0;if(n<127||!e.isUnicodeIdentifierStart(n,99))return!1;var t=String.fromCharCode(n);return t===t.toUpperCase()}function d(n){if(n>=97&&n<=122)return!0;if(n<127||!e.isUnicodeIdentifierStart(n,99))return!1;var t=String.fromCharCode(n);return t===t.toLowerCase()}function p(e){return e>=65&&e<=90?e-65+97:e<127?e:String.fromCharCode(e).toLowerCase().charCodeAt(0)}function m(e){return e>=48&&e<=57}function f(e){return u(e)||d(e)||m(e)||95===e||36===e}function _(e){for(var n=[],t=0,r=0,a=0;a<e.length;a++){f(e.charCodeAt(a))?(0===r&&(t=a),r++):r>0&&(n.push(g(e.substr(t,r))),r=0)}return r>0&&n.push(g(e.substr(t,r))),n}function g(e){var n=e.toLowerCase();return{text:e,textLowerCase:n,isLowerCase:e===n,characterSpans:y(e)}}function y(e){return h(e,!1)}function v(e){return h(e,!0)}function h(n,t){for(var r=[],a=0,i=1;i<n.length;i++){var o=m(n.charCodeAt(i-1)),s=m(n.charCodeAt(i)),c=S(n,t,i),l=t&&T(n,i,a);(b(n.charCodeAt(i-1))||b(n.charCodeAt(i))||o!==s||c||l)&&(E(n,a,i)||r.push(e.createTextSpan(a,i-a)),a=i)}return E(n,a,n.length)||r.push(e.createTextSpan(a,n.length-a)),r}function b(e){switch(e){case 33:case 34:case 35:case 37:case 38:case 39:case 40:case 41:case 42:case 44:case 45:case 46:case 47:case 58:case 59:case 63:case 64:case 91:case 92:case 93:case 95:case 123:case 125:return!0}return!1}function E(e,n,t){return L(e,(function(e){return b(e)&&95!==e}),n,t)}function T(e,n,t){return n!==t&&n+1<e.length&&u(e.charCodeAt(n))&&d(e.charCodeAt(n+1))&&L(e,u,t,n)}function S(e,n,t){var r=u(e.charCodeAt(t-1));return u(e.charCodeAt(t))&&(!n||!r)}function x(e,n,t){for(var r=e;r<n;r++)if(!t(r))return!1;return!0}function L(e,n,t,r){return void 0===t&&(t=0),void 0===r&&(r=e.length),x(t,r,(function(t){return n(e.charCodeAt(t),t)}))}!function(e){e[e.exact=0]=\"exact\",e[e.prefix=1]=\"prefix\",e[e.substring=2]=\"substring\",e[e.camelCase=3]=\"camelCase\"}(n=e.PatternMatchKind||(e.PatternMatchKind={})),e.createPatternMatcher=function(n){var t=e.createMap(),r=n.trim().split(\".\").map((function(e){return{totalTextChunk:g(n=e.trim()),subWordTextChunks:_(n)};var n}));if(!r.some((function(e){return!e.subWordTextChunks.length})))return{getFullMatch:function(n,a){return function(n,t,r,a){var s;if(!i(t,e.last(r),a))return;if(r.length-1>n.length)return;for(var c=r.length-2,l=n.length-1;c>=0;c-=1,l-=1)s=o(s,i(n[l],r[c],a));return s}(n,a,r,t)},getMatchForLastSegmentOfPattern:function(n){return i(n,e.last(r),t)},patternContainsDots:r.length>1}},e.breakIntoCharacterSpans=y,e.breakIntoWordSpans=v}(ts||(ts={})),function(e){e.preProcessFile=function(n,t,r){void 0===t&&(t=!0),void 0===r&&(r=!1);var a,i,o,s={languageVersion:1,pragmas:void 0,checkJsDirective:void 0,referencedFiles:[],typeReferenceDirectives:[],libReferenceDirectives:[],amdDependencies:[],hasNoDefaultLib:void 0,moduleName:void 0},c=[],l=0,u=!1;function d(){return i=o,18===(o=e.scanner.scan())?l++:19===o&&l--,o}function p(){var n=e.scanner.getTokenValue(),t=e.scanner.getTokenPos();return{fileName:n,pos:t,end:t+n.length}}function m(){c.push(p()),f()}function f(){0===l&&(u=!0)}function _(){var n=e.scanner.getToken();return 129===n&&(134===(n=d())&&10===(n=d())&&(a||(a=[]),a.push({ref:p(),depth:l})),!0)}function g(){if(24===i)return!1;var n=e.scanner.getToken();if(95===n){if(20===(n=d())){if(10===(n=d()))return m(),!0}else{if(10===n)return m(),!0;if(75===n||e.isKeyword(n))if(148===(n=d())){if(10===(n=d()))return m(),!0}else if(62===n){if(v(!0))return!0}else{if(27!==n)return!0;n=d()}if(18===n){for(n=d();19!==n&&1!==n;)n=d();19===n&&148===(n=d())&&10===(n=d())&&m()}else 41===n&&122===(n=d())&&(75===(n=d())||e.isKeyword(n))&&148===(n=d())&&10===(n=d())&&m()}return!0}return!1}function y(){var n=e.scanner.getToken();if(88===n){if(f(),18===(n=d())){for(n=d();19!==n&&1!==n;)n=d();19===n&&148===(n=d())&&10===(n=d())&&m()}else if(41===n)148===(n=d())&&10===(n=d())&&m();else if(95===n&&(75===(n=d())||e.isKeyword(n))&&62===(n=d())&&v(!0))return!0;return!0}return!1}function v(n){var t=n?d():e.scanner.getToken();return 138===t&&(20===(t=d())&&10===(t=d())&&m(),!0)}function h(){var n=e.scanner.getToken();if(75===n&&\"define\"===e.scanner.getTokenValue()){if(20!==(n=d()))return!0;if(10===(n=d())){if(27!==(n=d()))return!0;n=d()}if(22!==n)return!0;for(n=d();23!==n&&1!==n;)10===n&&m(),n=d();return!0}return!1}if(t&&function(){for(e.scanner.setText(n),d();1!==e.scanner.getToken();)_()||g()||y()||r&&(v(!1)||h())||d();e.scanner.setText(void 0)}(),e.processCommentPragmas(s,n),e.processPragmasIntoFields(s,e.noop),u){if(a)for(var b=0,E=a;b<E.length;b++){var T=E[b];c.push(T.ref)}return{referencedFiles:s.referencedFiles,typeReferenceDirectives:s.typeReferenceDirectives,libReferenceDirectives:s.libReferenceDirectives,importedFiles:c,isLibFile:!!s.hasNoDefaultLib,ambientExternalModules:void 0}}var S=void 0;if(a)for(var x=0,L=a;x<L.length;x++){0===(T=L[x]).depth?(S||(S=[]),S.push(T.ref.fileName)):c.push(T.ref)}return{referencedFiles:s.referencedFiles,typeReferenceDirectives:s.typeReferenceDirectives,libReferenceDirectives:s.libReferenceDirectives,importedFiles:c,isLibFile:!!s.hasNoDefaultLib,ambientExternalModules:S}}}(ts||(ts={})),function(e){!function(n){function t(n){return{canRename:!1,localizedErrorMessage:e.getLocaleSpecificMessage(n)}}function r(n,t){var r=n.getStart(t),a=n.getWidth(t);return e.isStringLiteralLike(n)&&(r+=1,a-=2),e.createTextSpan(r,a)}n.getRenameInfo=function(n,a,i,o){var s=e.getTouchingPropertyName(a,i);return(s&&function(n){switch(n.kind){case 75:case 10:case 14:case 103:return!0;case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(n);default:return!1}}(s)?function(n,a,i,o,s){var c=a.getSymbolAtLocation(n);if(!c)return;var l=c.declarations;if(!l||0===l.length)return;if(l.some(o))return t(e.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);if(e.isIdentifier(n)&&83===n.originalKeywordKind&&1536&c.parent.flags)return;if(e.isStringLiteralLike(n)&&e.tryGetImportFromModuleSpecifier(n))return s&&s.allowRenameOfImportPath?function(n,r,a){if(!e.isExternalModuleNameRelative(n.text))return t(e.Diagnostics.You_cannot_rename_a_module_via_a_global_import);var i=e.find(a.declarations,e.isSourceFile);if(!i)return;var o=e.endsWith(n.text,\"/index\")||e.endsWith(n.text,\"/index.js\")?void 0:e.tryRemoveSuffix(e.removeFileExtension(i.fileName),\"/index\"),s=void 0===o?i.fileName:o,c=void 0===o?\"module\":\"directory\",l=n.text.lastIndexOf(\"/\")+1,u=e.createTextSpan(n.getStart(r)+1+l,n.text.length-l);return{canRename:!0,fileToRename:s,kind:c,displayName:s,fullDisplayName:s,kindModifiers:\"\",triggerSpan:u}}(n,i,c):void 0;var u=e.SymbolDisplay.getSymbolKind(a,c,n),d=e.isImportOrExportSpecifierName(n)||e.isStringOrNumericLiteralLike(n)&&153===n.parent.kind?e.stripQuotes(e.getTextOfIdentifierOrLiteral(n)):void 0,p=d||a.symbolToString(c),m=d||a.getFullyQualifiedName(c);return function(e,n,t,a,i,o){return{canRename:!0,fileToRename:void 0,kind:t,displayName:e,fullDisplayName:n,kindModifiers:a,triggerSpan:r(i,o)}}(p,m,u,e.SymbolDisplay.getSymbolModifiers(c),n,i)}(s,n.getTypeChecker(),a,(function(e){return n.isSourceFileDefaultLibrary(e.getSourceFile())}),o):void 0)||t(e.Diagnostics.You_cannot_rename_this_element)}}(e.Rename||(e.Rename={}))}(ts||(ts={})),function(e){!function(n){function t(n,t,r){return e.Debug.assert(r.pos<=t),t<r.end||r.getEnd()===t&&e.getTouchingPropertyName(n,t).pos<r.end}n.getSmartSelectionRange=function(n,r){var i,o,s={textSpan:e.createTextSpanFromBounds(r.getFullStart(),r.getEnd())},l=r;e:for(;;){var u=a(l);if(!u.length)break;for(var d=0;d<u.length;d++){var p=u[d-1],m=u[d],f=u[d+1];if(m.getStart(r)>n)break e;if(t(r,n,m)){if(e.isBlock(m)||e.isTemplateSpan(m)||e.isTemplateHead(m)||e.isTemplateTail(m)||p&&e.isTemplateHead(p)||e.isVariableDeclarationList(m)&&e.isVariableStatement(l)||e.isSyntaxList(m)&&e.isVariableDeclarationList(l)||e.isVariableDeclaration(m)&&e.isSyntaxList(l)&&1===u.length){l=m;break}if(e.isTemplateSpan(l)&&f&&e.isTemplateMiddleOrTemplateTail(f))h(m.getFullStart()-\"${\".length,f.getStart()+\"}\".length);var _=e.isSyntaxList(m)&&(o=void 0,18===(o=(i=p)&&i.kind)||22===o||20===o||266===o)&&c(f)&&!e.positionsAreOnSameLine(p.getStart(),f.getStart(),r),g=e.hasJSDocNodes(m)&&m.jsDoc[0].getStart(),y=_?p.getEnd():m.getStart(),v=_?f.getStart():m.getEnd();e.isNumber(g)&&h(g,v),h(y,v),(e.isStringLiteral(m)||e.isTemplateLiteral(m))&&h(y+1,v-1),l=m;break}if(d===u.length-1)break e}}return s;function h(t,r){if(t!==r){var a=e.createTextSpanFromBounds(t,r);(!s||!e.textSpansEqual(a,s.textSpan)&&e.textSpanIntersectsWithPosition(a,n))&&(s=__assign({textSpan:a},s&&{parent:s}))}}};var r=e.or(e.isImportDeclaration,e.isImportEqualsDeclaration);function a(n){if(e.isSourceFile(n))return i(n.getChildAt(0).getChildren(),r);if(e.isMappedTypeNode(n)){var t=n.getChildren(),a=t[0],c=t.slice(1),l=e.Debug.assertDefined(c.pop());e.Debug.assertEqual(a.kind,18),e.Debug.assertEqual(l.kind,19);var u=i(c,(function(e){return e===n.readonlyToken||137===e.kind||e===n.questionToken||57===e.kind}));return[a,s(o(i(u,(function(e){var n=e.kind;return 22===n||154===n||23===n})),(function(e){return 58===e.kind}))),l]}if(e.isPropertySignature(n))return o(c=i(n.getChildren(),(function(t){return t===n.name||e.contains(n.modifiers,t)})),(function(e){return 58===e.kind}));if(e.isParameter(n)){var d=i(n.getChildren(),(function(e){return e===n.dotDotDotToken||e===n.name}));return o(i(d,(function(e){return e===d[0]||e===n.questionToken})),(function(e){return 62===e.kind}))}return e.isBindingElement(n)?o(n.getChildren(),(function(e){return 62===e.kind})):n.getChildren()}function i(e,n){for(var t,r=[],a=0,i=e;a<i.length;a++){var o=i[a];n(o)?(t=t||[]).push(o):(t&&(r.push(s(t)),t=void 0),r.push(o))}return t&&r.push(s(t)),r}function o(n,t,r){if(void 0===r&&(r=!0),n.length<2)return n;var a=e.findIndex(n,t);if(-1===a)return n;var i=n.slice(0,a),o=n[a],c=e.last(n),l=r&&26===c.kind,u=n.slice(a+1,l?n.length-1:void 0),d=e.compact([i.length?s(i):void 0,o,u.length?s(u):void 0]);return l?d.concat(c):d}function s(n){e.Debug.assertGreaterThanOrEqual(n.length,1);var t=e.createNode(317,n[0].pos,e.last(n).end);return t._children=n,t}function c(e){var n=e&&e.kind;return 19===n||23===n||21===n||267===n}}(e.SmartSelectionRange||(e.SmartSelectionRange={}))}(ts||(ts={})),function(e){!function(n){var t,r;function a(n,t,r){for(var a=n.getFullStart(),i=n.parent;i;){var o=e.findPrecedingToken(a,t,i,!0);if(o)return e.rangeContainsRange(r,o);i=i.parent}return e.Debug.fail(\"Could not find preceding token\")}function i(n,t){var r=function(n,t){if(29===n.kind||20===n.kind)return{list:p(n.parent,n,t),argumentIndex:0};var r=e.findContainingList(n);return r&&{list:r,argumentIndex:l(r,n)}}(n,t);if(r){var a=r.list,i=r.argumentIndex,o=function(n){var t=n.getChildren(),r=e.countWhere(t,(function(e){return 27!==e.kind}));t.length>0&&27===e.last(t).kind&&r++;return r}(a);return 0!==i&&e.Debug.assertLessThan(i,o),{list:a,argumentIndex:i,argumentCount:o,argumentsSpan:function(n,t){var r=n.getFullStart(),a=e.skipTrivia(t.text,n.getEnd(),!1);return e.createTextSpan(r,a-r)}(a,t)}}}function o(n,t,r){var a=n.parent;if(e.isCallOrNewExpression(a)){var o=a,s=i(n,r);if(!s)return;var c=s.list,l=s.argumentIndex,d=s.argumentCount,p=s.argumentsSpan;return{isTypeParameterList:!!a.typeArguments&&a.typeArguments.pos===c.pos,invocation:{kind:0,node:o},argumentsSpan:p,argumentIndex:l,argumentCount:d}}if(e.isNoSubstitutionTemplateLiteral(n)&&e.isTaggedTemplateExpression(a))return e.isInsideTemplateLiteral(n,t,r)?u(a,0,r):void 0;if(e.isTemplateHead(n)&&197===a.parent.kind){var m=a,f=m.parent;return e.Debug.assert(210===m.kind),u(f,l=e.isInsideTemplateLiteral(n,t,r)?0:1,r)}if(e.isTemplateSpan(a)&&e.isTaggedTemplateExpression(a.parent.parent)){var _=a;f=a.parent.parent;if(e.isTemplateTail(n)&&!e.isInsideTemplateLiteral(n,t,r))return;return u(f,l=function(n,t,r,a){if(e.Debug.assert(r>=t.getStart(),\"Assumed 'position' could not occur before node.\"),e.isTemplateLiteralToken(t))return e.isInsideTemplateLiteral(t,r,a)?0:n+2;return n+1}(_.parent.templateSpans.indexOf(_),n,t,r),r)}if(e.isJsxOpeningLikeElement(a)){var g=a.attributes.pos,y=e.skipTrivia(r.text,a.attributes.end,!1);return{isTypeParameterList:!1,invocation:{kind:0,node:a},argumentsSpan:e.createTextSpan(g,y-g),argumentIndex:0,argumentCount:1}}var v=e.getPossibleTypeArgumentsInfo(n,r);if(v){var h=v.called,b=v.nTypeArguments;return{isTypeParameterList:!0,invocation:o={kind:1,called:h},argumentsSpan:p=e.createTextSpanFromBounds(h.getStart(r),n.end),argumentIndex:b,argumentCount:b+1}}}function s(n){return e.isBinaryExpression(n.left)?s(n.left)+1:2}function c(n){return\"__type\"===n.name&&e.firstDefined(n.declarations,(function(n){return e.isFunctionTypeNode(n)?n.parent.symbol:void 0}))||n}function l(e,n){for(var t=0,r=0,a=e.getChildren();r<a.length;r++){var i=a[r];if(i===n)break;27!==i.kind&&t++}return t}function u(n,t,r){var a=e.isNoSubstitutionTemplateLiteral(n.template)?1:n.template.templateSpans.length+1;return 0!==t&&e.Debug.assertLessThan(t,a),{isTypeParameterList:!1,invocation:{kind:0,node:n},argumentsSpan:d(n,r),argumentIndex:t,argumentCount:a}}function d(n,t){var r=n.template,a=r.getStart(),i=r.getEnd();210===r.kind&&(0===e.last(r.templateSpans).literal.getFullWidth()&&(i=e.skipTrivia(t.text,i,!1)));return e.createTextSpan(a,i-a)}function p(n,t,r){var a=n.getChildren(r),i=a.indexOf(t);return e.Debug.assert(i>=0&&a.length>i+1),a[i+1]}function m(n){return 0===n.kind?e.getInvokedExpression(n.node):n.called}function f(e){return 0===e.kind?e.node:1===e.kind?e.called:e.node}!function(e){e[e.Call=0]=\"Call\",e[e.TypeArgs=1]=\"TypeArgs\",e[e.Contextual=2]=\"Contextual\"}(t||(t={})),n.getSignatureHelpItems=function(n,t,r,l,u){var d=n.getTypeChecker(),p=e.findTokenOnLeftOfPosition(t,r);if(p){var y=!!l&&\"characterTyped\"===l.kind;if(!y||!e.isInString(t,r,p)&&!e.isInComment(t,r)){var v=!!l&&\"invoked\"===l.kind,h=function(n,t,r,a,l){for(var u=function(n){e.Debug.assert(e.rangeContainsRange(n.parent,n),\"Not a subspan\",(function(){return\"Child: \"+e.Debug.formatSyntaxKind(n.kind)+\", parent: \"+e.Debug.formatSyntaxKind(n.parent.kind)}));var l=function(n,t,r,a){return function(n,t,r,a){var o=function(n,t,r){if(20!==n.kind&&27!==n.kind)return;var a=n.parent;switch(a.kind){case 199:case 160:case 200:case 201:var o=i(n,t);if(!o)return;var c=o.argumentIndex,l=o.argumentCount,u=o.argumentsSpan,d=e.isMethodDeclaration(a)?r.getContextualTypeForObjectLiteralElement(a):r.getContextualType(a);return d&&{contextualType:d,argumentIndex:c,argumentCount:l,argumentsSpan:u};case 208:var p=function n(t){return e.isBinaryExpression(t.parent)?n(t.parent):t}(a),m=r.getContextualType(p),f=20===n.kind?0:s(a)-1,_=s(p);return m&&{contextualType:m,argumentIndex:f,argumentCount:_,argumentsSpan:e.createTextSpanFromNode(a)};default:return}}(n,r,a);if(!o)return;var l=o.contextualType,u=o.argumentIndex,d=o.argumentCount,p=o.argumentsSpan,m=l.getCallSignatures();return 1!==m.length?void 0:{isTypeParameterList:!1,invocation:{kind:2,signature:e.first(m),node:n,symbol:c(l.symbol)},argumentsSpan:p,argumentIndex:u,argumentCount:d}}(n,0,r,a)||o(n,t,r)}(n,t,r,a);if(l)return{value:l}},d=n;!e.isSourceFile(d)&&(l||!e.isBlock(d));d=d.parent){var p=u(d);if(\"object\"==typeof p)return p.value}return}(p,r,t,d,v);if(h){u.throwIfCancellationRequested();var b=function(n,t,r,i,o){var s=n.invocation,c=n.argumentCount;switch(s.kind){case 0:if(o&&!function(n,t,r){if(!e.isCallOrNewExpression(t))return!1;var i=t.getChildren(r);switch(n.kind){case 20:return e.contains(i,n);case 27:var o=e.findContainingList(n);return!!o&&e.contains(i,o);case 29:return a(n,r,t.expression);default:return!1}}(i,s.node,r))return;var l=[],u=t.getResolvedSignatureForSignatureHelp(s.node,l,c);return 0===l.length?void 0:{kind:0,candidates:l,resolvedSignature:u};case 1:var d=s.called;if(o&&!a(i,r,e.isIdentifier(d)?d.parent:d))return;if(0!==(l=e.getPossibleGenericSignatures(d,c,t)).length)return{kind:0,candidates:l,resolvedSignature:e.first(l)};var p=t.getSymbolAtLocation(d);return p&&{kind:1,symbol:p};case 2:return{kind:0,candidates:[s.signature],resolvedSignature:s.signature};default:return e.Debug.assertNever(s)}}(h,d,t,p,y);return u.throwIfCancellationRequested(),b?d.runWithCancellationToken(u,(function(e){return 0===b.kind?_(b.candidates,b.resolvedSignature,h,t,e):function(e,n,t,r){var a=n.argumentCount,i=n.argumentsSpan,o=n.invocation,s=n.argumentIndex,c=r.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);return c?{items:[g(e,c,r,f(o),t)],applicableSpan:i,selectedItemIndex:0,argumentIndex:s,argumentCount:a}:void 0}(b.symbol,h,t,e)})):e.isSourceFileJS(t)?function(n,t,r){if(2===n.invocation.kind)return;var a=m(n.invocation),i=e.isIdentifier(a)?a.text:e.isPropertyAccessExpression(a)?a.name.text:void 0,o=t.getTypeChecker();return void 0===i?void 0:e.firstDefined(t.getSourceFiles(),(function(t){return e.firstDefined(t.getNamedDeclarations().get(i),(function(e){var a=e.symbol&&o.getTypeOfSymbolAtLocation(e.symbol,e),i=a&&a.getCallSignatures();if(i&&i.length)return o.runWithCancellationToken(r,(function(e){return _(i,i[0],n,t,e)}))}))}))}(h,n,u):void 0}}}},function(e){e[e.Candidate=0]=\"Candidate\",e[e.Type=1]=\"Type\"}(r||(r={})),n.getArgumentInfoForCompletions=function(e,n,t){var r=o(e,n,t);return!r||r.isTypeParameterList||0!==r.invocation.kind?void 0:{invocation:r.invocation.node,argumentCount:r.argumentCount,argumentIndex:r.argumentIndex}};function _(n,t,r,a,i){var o=r.isTypeParameterList,s=r.argumentCount,c=r.argumentsSpan,l=r.invocation,u=r.argumentIndex,d=f(l),p=2===l.kind?l.symbol:i.getSymbolAtLocation(m(l)),_=p?e.symbolToDisplayParts(i,p,void 0,void 0):e.emptyArray,g=n.map((function(n){return function(n,t,r,a,i,o){var s=(r?v:h)(n,a,i,o),c=s.isVariadic,l=s.parameters,u=s.prefix,d=s.suffix,p=__spreadArrays(t,u),m=__spreadArrays(d,function(n,t,r){return e.mapToDisplayParts((function(e){e.writePunctuation(\":\"),e.writeSpace(\" \");var a=r.getTypePredicateOfSignature(n);a?r.writeTypePredicate(a,t,void 0,e):r.writeType(r.getReturnTypeOfSignature(n),t,void 0,e)}))}(n,i,a)),f=n.getDocumentationComment(a),_=n.getJsDocTags();return{isVariadic:c,prefixDisplayParts:p,suffixDisplayParts:m,separatorDisplayParts:y,parameters:l,documentation:f,tags:_}}(n,_,o,i,d,a)}));0!==u&&e.Debug.assertLessThan(u,s);var b=n.indexOf(t);return e.Debug.assert(-1!==b),{items:g,applicableSpan:c,selectedItemIndex:b,argumentIndex:u,argumentCount:s}}function g(n,t,r,a,i){var o=e.symbolToDisplayParts(r,n),s=e.createPrinter({removeComments:!0}),c=t.map((function(e){return b(e,r,a,i,s)})),l=n.getDocumentationComment(r),u=n.getJsDocTags();return{isVariadic:!1,prefixDisplayParts:__spreadArrays(o,[e.punctuationPart(29)]),suffixDisplayParts:[e.punctuationPart(31)],separatorDisplayParts:y,parameters:c,documentation:l,tags:u}}var y=[e.punctuationPart(27),e.spacePart()];function v(n,t,r,a){var i=(n.target||n).typeParameters,o=e.createPrinter({removeComments:!0}),s=(i||e.emptyArray).map((function(e){return b(e,t,r,a,o)})),c=e.mapToDisplayParts((function(i){var s=n.thisParameter?[t.symbolToParameterDeclaration(n.thisParameter,r,70246400)]:[],c=e.createNodeArray(__spreadArrays(s,t.getExpandedParameters(n).map((function(e){return t.symbolToParameterDeclaration(e,r,70246400)}))));o.writeList(2576,c,a,i)}));return{isVariadic:!1,parameters:s,prefix:[e.punctuationPart(29)],suffix:__spreadArrays([e.punctuationPart(31)],c)}}function h(n,t,r,a){var i=t.hasEffectiveRestParameter(n),o=e.createPrinter({removeComments:!0}),s=e.mapToDisplayParts((function(i){if(n.typeParameters&&n.typeParameters.length){var s=e.createNodeArray(n.typeParameters.map((function(e){return t.typeParameterToDeclaration(e,r)})));o.writeList(53776,s,a,i)}}));return{isVariadic:i,parameters:t.getExpandedParameters(n).map((function(n){return function(n,t,r,a,i){var o=e.mapToDisplayParts((function(e){var o=t.symbolToParameterDeclaration(n,r,70246400);i.writeNode(4,o,a,e)})),s=t.isOptionalParameter(n.valueDeclaration);return{name:n.name,documentation:n.getDocumentationComment(t),displayParts:o,isOptional:s}}(n,t,r,a,o)})),prefix:__spreadArrays(s,[e.punctuationPart(20)]),suffix:[e.punctuationPart(21)]}}function b(n,t,r,a,i){var o=e.mapToDisplayParts((function(e){var o=t.typeParameterToDeclaration(n,r);i.writeNode(4,o,a,e)}));return{name:n.symbol.name,documentation:n.symbol.getDocumentationComment(t),displayParts:o,isOptional:!1}}}(e.SignatureHelp||(e.SignatureHelp={}))}(ts||(ts={})),function(e){var n=/^data:(?:application\\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\\/=]+)$)?/;function t(n,t,r){var a=e.tryParseRawSourceMap(t);if(a&&a.sources&&a.file&&a.mappings)return e.createDocumentPositionMapper(n,a,r)}e.getSourceMapper=function(n){var t=e.createGetCanonicalFileName(n.useCaseSensitiveFileNames()),r=n.getCurrentDirectory(),a=e.createMap(),i=e.createMap();return{tryGetSourcePosition:function n(t){if(!e.isDeclarationFileName(t.fileName))return;if(!c(t.fileName))return;var r=s(t.fileName).getSourcePosition(t);return r&&r!==t?n(r)||r:void 0},tryGetGeneratedPosition:function(a){if(e.isDeclarationFileName(a.fileName))return;var i=c(a.fileName);if(!i)return;var o=n.getProgram();if(o.isSourceOfProjectReferenceRedirect(i.fileName))return;var l=o.getCompilerOptions(),u=l.outFile||l.out,d=u?e.removeFileExtension(u)+\".d.ts\":e.getDeclarationEmitOutputFilePathWorker(a.fileName,o.getCompilerOptions(),r,o.getCommonSourceDirectory(),t);if(void 0===d)return;var p=s(d,a.fileName).getGeneratedPosition(a);return p===a?void 0:p},toLineColumnOffset:function(e,n){return u(e).getLineAndCharacterOfPosition(n)},clearCache:function(){a.clear(),i.clear()}};function o(n){return e.toPath(n,r,t)}function s(r,a){var s,c=o(r),l=i.get(c);if(l)return l;if(n.getDocumentPositionMapper)s=n.getDocumentPositionMapper(r,a);else if(n.readFile){var d=u(r);s=d&&e.getDocumentPositionMapper({getSourceFileLike:u,getCanonicalFileName:t,log:function(e){return n.log(e)}},r,e.getLineInfo(d.text,e.getLineStarts(d)),(function(e){return!n.fileExists||n.fileExists(e)?n.readFile(e):void 0}))}return i.set(c,s||e.identitySourceMapConsumer),s||e.identitySourceMapConsumer}function c(e){var t=n.getProgram();if(t){var r=o(e),a=t.getSourceFileByPath(r);return a&&a.resolvedPath===r?a:void 0}}function l(t){var r=o(t),i=a.get(r);if(void 0!==i)return i||void 0;if(n.readFile&&(!n.fileExists||n.fileExists(r))){var s=n.readFile(r),c=!!s&&function(n,t){return{text:n,lineMap:t,getLineAndCharacterOfPosition:function(n){return e.computeLineAndCharacterOfPosition(e.getLineStarts(this),n)}}}(s);return a.set(r,c),c||void 0}a.set(r,!1)}function u(e){return n.getSourceFileLike?n.getSourceFileLike(e):c(e)||l(e)}},e.getDocumentPositionMapper=function(r,a,i,o){var s=e.tryGetSourceMappingURL(i);if(s){var c=n.exec(s);if(c){if(c[1]){var l=c[1];return t(r,e.base64decode(e.sys,l),a)}s=void 0}}var u=[];s&&u.push(s),u.push(a+\".map\");for(var d=s&&e.getNormalizedAbsolutePath(s,e.getDirectoryPath(a)),p=0,m=u;p<m.length;p++){var f=m[p],_=e.getNormalizedAbsolutePath(f,e.getDirectoryPath(a)),g=o(_,d);if(e.isString(g))return t(r,g,_);if(void 0!==g)return g||void 0}}}(ts||(ts={})),function(e){var n=e.createMap();function t(n){switch(n.kind){case 253:var t=n.importClause,r=n.moduleSpecifier;return t&&!t.name&&t.namedBindings&&255===t.namedBindings.kind&&e.isStringLiteral(r)?t.namedBindings.name:void 0;case 252:return n.name;default:return}}function r(n){return e.isReturnStatement(n)&&!!n.expression&&a(n.expression)}function a(n){if(!i(n)||!n.arguments.every(o))return!1;for(var t=n.expression;i(t)||e.isPropertyAccessExpression(t);){if(e.isCallExpression(t)&&!t.arguments.every(o))return!1;t=t.expression}return!0}function i(n){return e.isCallExpression(n)&&(e.hasPropertyAccessExpressionWithName(n,\"then\")||e.hasPropertyAccessExpressionWithName(n,\"catch\"))}function o(e){switch(e.kind){case 243:case 200:case 201:n.set(s(e),!0);case 99:case 75:return!0;default:return!1}}function s(e){return e.pos.toString()+\":\"+e.end.toString()}e.computeSuggestionDiagnostics=function(a,i,o){i.getSemanticDiagnostics(a,o);var c,l=[],u=i.getTypeChecker();a.commonJsModuleIndicator&&(e.programContainsEs6Modules(i)||e.compilerOptionsIndicateEs6Modules(i.getCompilerOptions()))&&function(n){return n.statements.some((function(n){switch(n.kind){case 224:return n.declarationList.declarations.some((function(n){return!!n.initializer&&e.isRequireCall(function n(t){return e.isPropertyAccessExpression(t)?n(t.expression):t}(n.initializer),!0)}));case 225:var t=n.expression;if(!e.isBinaryExpression(t))return e.isRequireCall(t,!0);var r=e.getAssignmentDeclarationKind(t);return 1===r||2===r;default:return!1}}))}(a)&&l.push(e.createDiagnosticForNode((c=a.commonJsModuleIndicator,e.isBinaryExpression(c)?c.left:c),e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module));var d=e.isSourceFileJS(a);if(n.clear(),function t(i){if(d)switch(i.kind){case 200:var o=e.getDeclarationOfExpando(i);if(o){var c=o.symbol;if(c&&(c.exports&&c.exports.size||c.members&&c.members.size)){l.push(e.createDiagnosticForNode(e.isVariableDeclaration(i.parent)?i.parent.name:i,e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration));break}}case 243:var p=i.symbol;p.members&&p.members.size>0&&l.push(e.createDiagnosticForNode(e.isVariableDeclaration(i.parent)?i.parent.name:i,e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration))}else{if(e.isVariableStatement(i)&&i.parent===a&&2&i.declarationList.flags&&1===i.declarationList.declarations.length){var m=i.declarationList.declarations[0].initializer;m&&e.isRequireCall(m,!0)&&l.push(e.createDiagnosticForNode(m,e.Diagnostics.require_call_may_be_converted_to_an_import))}e.codefix.parameterShouldGetTypeFromJSDoc(i)&&l.push(e.createDiagnosticForNode(i.name||i,e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types))}e.isFunctionLikeDeclaration(i)&&function(t,a,i){(function(n,t){return!e.isAsyncFunction(n)&&n.body&&e.isBlock(n.body)&&(a=n.body,!!e.forEachReturnStatement(a,r))&&function(e,n){var t=n.getTypeAtLocation(e),r=n.getSignaturesOfType(t,0),a=r.length?n.getReturnTypeOfSignature(r[0]):void 0;return!!a&&!!n.getPromisedTypeOfPromise(a)}(n,t);var a})(t,a)&&!n.has(s(t))&&i.push(e.createDiagnosticForNode(!t.name&&e.isVariableDeclaration(t.parent)&&e.isIdentifier(t.parent.name)?t.parent.name:t,e.Diagnostics.This_may_be_converted_to_an_async_function))}(i,u,l);i.forEachChild(t)}(a),e.getAllowSyntheticDefaultImports(i.getCompilerOptions()))for(var p=0,m=a.imports;p<m.length;p++){var f=m[p],_=t(e.importFromModuleSpecifier(f));if(_){var g=e.getResolvedModule(a,f.text),y=g&&i.getSourceFile(g.resolvedFileName);y&&y.externalModuleIndicator&&e.isExportAssignment(y.externalModuleIndicator)&&y.externalModuleIndicator.isExportEquals&&l.push(e.createDiagnosticForNode(_,e.Diagnostics.Import_may_be_converted_to_a_default_import))}}return e.addRange(l,a.bindSuggestionDiagnostics),e.addRange(l,i.getSuggestionDiagnostics(a,o)),l.sort((function(e,n){return e.start-n.start}))},e.isReturnStatementWithFixablePromiseHandler=r,e.isFixablePromiseHandler=a}(ts||(ts={})),function(e){!function(n){function t(n,t,a){var i=r(n,t,a);if(\"\"!==i)return i;var o=e.getCombinedLocalAndExportSymbolFlags(t);return 32&o?e.getDeclarationOfKind(t,213)?\"local class\":\"class\":384&o?\"enum\":524288&o?\"type\":64&o?\"interface\":262144&o?\"type parameter\":262144&o?\"type parameter\":8&o?\"enum member\":2097152&o?\"alias\":1536&o?\"module\":i}function r(n,t,r){var i=n.getRootSymbols(t);if(1===i.length&&8192&e.first(i).flags&&0!==n.getTypeOfSymbolAtLocation(t,r).getNonNullableType().getCallSignatures().length)return\"method\";if(n.isUndefinedSymbol(t))return\"var\";if(n.isArgumentsSymbol(t))return\"local var\";if(103===r.kind&&e.isExpression(r))return\"parameter\";var o=e.getCombinedLocalAndExportSymbolFlags(t);if(3&o)return e.isFirstDeclarationOfSymbolParameter(t)?\"parameter\":t.valueDeclaration&&e.isVarConst(t.valueDeclaration)?\"const\":e.forEach(t.declarations,e.isLet)?\"let\":a(t)?\"local var\":\"var\";if(16&o)return a(t)?\"local function\":\"function\";if(32768&o)return\"getter\";if(65536&o)return\"setter\";if(8192&o)return\"method\";if(16384&o)return\"constructor\";if(4&o){if(33554432&o&&6&t.checkFlags){var s=e.forEach(n.getRootSymbols(t),(function(n){var t=n.getFlags();if(98311&t)return\"property\";e.Debug.assert(!!(8208&t))}));return s||(n.getTypeOfSymbolAtLocation(t,r).getCallSignatures().length?\"method\":\"property\")}switch(r.parent&&r.parent.kind){case 266:case 264:case 265:return 75===r.kind?\"property\":\"JSX attribute\";case 271:return\"JSX attribute\";default:return\"property\"}}return\"\"}function a(n){return!n.parent&&e.forEach(n.declarations,(function(n){if(200===n.kind)return!0;if(241!==n.kind&&243!==n.kind)return!1;for(var t=n.parent;!e.isFunctionBlock(t);t=t.parent)if(288===t.kind||249===t.kind)return!1;return!0}))}n.getSymbolKind=t,n.getSymbolModifiers=function(n){var t=n&&n.declarations&&n.declarations.length>0?e.getNodeModifiers(n.declarations[0]):\"\",r=n&&16777216&n.flags?\"optional\":\"\";return t&&r?t+\",\"+r:t||r},n.getSymbolDisplayPartsDocumentationAndSymbolKind=function n(a,i,o,s,c,l,u){void 0===l&&(l=e.getMeaningFromLocation(c));var d,p,m,f,_,g,y=[],v=e.getCombinedLocalAndExportSymbolFlags(i),h=1&l?r(a,i,c):\"\",b=!1,E=103===c.kind&&e.isInExpressionContext(c);if(103===c.kind&&!E)return{displayParts:[e.keywordPart(103)],documentation:[],symbolKind:\"primitive type\",tags:void 0};if(\"\"!==h||32&v||2097152&v){\"getter\"!==h&&\"setter\"!==h||(h=\"property\");var T=void 0;if(m=E?a.getTypeAtLocation(c):a.getTypeOfSymbolAtLocation(i.exportSymbol||i,c),c.parent&&193===c.parent.kind){var S=c.parent.name;(S===c||S&&0===S.getFullWidth())&&(c=c.parent)}var x=void 0;if(e.isCallOrNewExpression(c)?x=c:e.isCallExpressionTarget(c)||e.isNewExpressionTarget(c)?x=c.parent:c.parent&&e.isJsxOpeningLikeElement(c.parent)&&e.isFunctionLike(i.valueDeclaration)&&(x=c.parent),x){T=a.getResolvedSignature(x);var L=196===x.kind||e.isCallExpression(x)&&101===x.expression.kind,C=L?m.getConstructSignatures():m.getCallSignatures();if(e.contains(C,T.target)||e.contains(C,T)||(T=C.length?C[0]:void 0),T){switch(L&&32&v?(h=\"constructor\",q(m.symbol,h)):2097152&v?(J(h=\"alias\"),y.push(e.spacePart()),L&&(y.push(e.keywordPart(98)),y.push(e.spacePart())),z(i)):q(i,h),h){case\"JSX attribute\":case\"property\":case\"var\":case\"const\":case\"let\":case\"parameter\":case\"local var\":y.push(e.punctuationPart(58)),y.push(e.spacePart()),16&e.getObjectFlags(m)||!m.symbol||(e.addRange(y,e.symbolToDisplayParts(a,m.symbol,s,void 0,5)),y.push(e.lineBreakPart())),L&&(y.push(e.keywordPart(98)),y.push(e.spacePart())),X(T,C,262144);break;default:X(T,C)}b=!0}}else if(e.isNameOfFunctionDeclaration(c)&&!(98304&v)||128===c.kind&&161===c.parent.kind){var A=c.parent;if(i.declarations&&e.find(i.declarations,(function(e){return e===(128===c.kind?A.parent:A)}))){C=161===A.kind?m.getNonNullableType().getConstructSignatures():m.getNonNullableType().getCallSignatures();T=a.isImplementationOfOverload(A)?C[0]:a.getSignatureFromDeclaration(A),161===A.kind?(h=\"constructor\",q(m.symbol,h)):q(164!==A.kind||2048&m.symbol.flags||4096&m.symbol.flags?i:m.symbol,h),X(T,C),b=!0}}}if(32&v&&!b&&!E&&(H(),e.getDeclarationOfKind(i,213)?J(\"local class\"):y.push(e.keywordPart(79)),y.push(e.spacePart()),z(i),Y(i,o)),64&v&&2&l&&(K(),y.push(e.keywordPart(113)),y.push(e.spacePart()),z(i),Y(i,o)),524288&v&&2&l&&(K(),y.push(e.keywordPart(144)),y.push(e.spacePart()),z(i),Y(i,o),y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),e.addRange(y,e.typeToDisplayParts(a,a.getDeclaredTypeOfSymbol(i),s,8388608))),384&v&&(K(),e.some(i.declarations,(function(n){return e.isEnumDeclaration(n)&&e.isEnumConst(n)}))&&(y.push(e.keywordPart(80)),y.push(e.spacePart())),y.push(e.keywordPart(87)),y.push(e.spacePart()),z(i)),1536&v&&!E){K();var D=(V=e.getDeclarationOfKind(i,248))&&V.name&&75===V.name.kind;y.push(e.keywordPart(D?135:134)),y.push(e.spacePart()),z(i)}if(262144&v&&2&l)if(K(),y.push(e.punctuationPart(20)),y.push(e.textPart(\"type parameter\")),y.push(e.punctuationPart(21)),y.push(e.spacePart()),z(i),i.parent)W(),z(i.parent,s),Y(i.parent,s);else{var k=e.getDeclarationOfKind(i,154);if(void 0===k)return e.Debug.fail();if(V=k.parent)if(e.isFunctionLikeKind(V.kind)){W();T=a.getSignatureFromDeclaration(V);165===V.kind?(y.push(e.keywordPart(98)),y.push(e.spacePart())):164!==V.kind&&V.name&&z(V.symbol),e.addRange(y,e.signatureToDisplayParts(a,T,o,32))}else 246===V.kind&&(W(),y.push(e.keywordPart(144)),y.push(e.spacePart()),z(V.symbol),Y(V.symbol,o))}if(8&v&&(h=\"enum member\",q(i,\"enum member\"),282===(V=i.declarations[0]).kind)){var N=a.getConstantValue(V);void 0!==N&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.displayPart(e.getTextOfConstantValue(N),\"number\"==typeof N?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}if(2097152&v){if(K(),!b){var I=a.getAliasedSymbol(i);if(I!==i&&I.declarations&&I.declarations.length>0){var M=I.declarations[0],O=e.getNameOfDeclaration(M);if(O){var R=e.isModuleWithStringLiteralName(M)&&e.hasModifier(M,2),P=\"default\"!==i.name&&!R,w=n(a,I,e.getSourceFileOfNode(M),M,O,l,P?i:I);y.push.apply(y,w.displayParts),y.push(e.lineBreakPart()),_=w.documentation,g=w.tags}}}switch(i.declarations[0].kind){case 251:y.push(e.keywordPart(88)),y.push(e.spacePart()),y.push(e.keywordPart(135));break;case 258:y.push(e.keywordPart(88)),y.push(e.spacePart()),y.push(e.keywordPart(i.declarations[0].isExportEquals?62:83));break;case 261:y.push(e.keywordPart(88));break;default:y.push(e.keywordPart(95))}y.push(e.spacePart()),z(i),e.forEach(i.declarations,(function(n){if(252===n.kind){var t=n;if(e.isExternalModuleImportEqualsDeclaration(t))y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.keywordPart(138)),y.push(e.punctuationPart(20)),y.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(t)),e.SymbolDisplayPartKind.stringLiteral)),y.push(e.punctuationPart(21));else{var r=a.getSymbolAtLocation(t.moduleReference);r&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),z(r,s))}return!0}}))}if(!b)if(\"\"!==h){if(m)if(E?(K(),y.push(e.keywordPart(103))):q(i,h),\"property\"===h||\"JSX attribute\"===h||3&v||\"local var\"===h||E)if(y.push(e.punctuationPart(58)),y.push(e.spacePart()),m.symbol&&262144&m.symbol.flags){var F=e.mapToDisplayParts((function(n){var t=a.typeParameterToDeclaration(m,s);j().writeNode(4,t,e.getSourceFileOfNode(e.getParseTreeNode(s)),n)}));e.addRange(y,F)}else e.addRange(y,e.typeToDisplayParts(a,m,s));else if(16&v||8192&v||16384&v||131072&v||98304&v||\"method\"===h){(C=m.getNonNullableType().getCallSignatures()).length&&X(C[0],C)}}else h=t(a,i,c);if(!d&&(d=i.getDocumentationComment(a),p=i.getJsDocTags(),0===d.length&&4&v&&i.parent&&e.forEach(i.parent.declarations,(function(e){return 288===e.kind}))))for(var G=0,B=i.declarations;G<B.length;G++){var V;if((V=B[G]).parent&&208===V.parent.kind){var U=a.getSymbolAtLocation(V.parent.right);if(U&&(d=U.getDocumentationComment(a),p=U.getJsDocTags(),d.length>0))break}}return 0===d.length&&_&&(d=_),0===p.length&&g&&(p=g),{displayParts:y,documentation:d,symbolKind:h,tags:0===p.length?void 0:p};function j(){return f||(f=e.createPrinter({removeComments:!0})),f}function K(){y.length&&y.push(e.lineBreakPart()),H()}function H(){u&&(J(\"alias\"),y.push(e.spacePart()))}function W(){y.push(e.spacePart()),y.push(e.keywordPart(96)),y.push(e.spacePart())}function z(n,t){u&&n===i&&(n=u);var r=e.symbolToDisplayParts(a,n,t||o,void 0,7);e.addRange(y,r),16777216&i.flags&&y.push(e.punctuationPart(57))}function q(n,t){K(),t&&(J(t),n&&!e.some(n.declarations,(function(n){return e.isArrowFunction(n)||(e.isFunctionExpression(n)||e.isClassExpression(n))&&!n.name}))&&(y.push(e.spacePart()),z(n)))}function J(n){switch(n){case\"var\":case\"function\":case\"let\":case\"const\":case\"constructor\":return void y.push(e.textOrKeywordPart(n));default:return y.push(e.punctuationPart(20)),y.push(e.textOrKeywordPart(n)),void y.push(e.punctuationPart(21))}}function X(n,t,r){void 0===r&&(r=0),e.addRange(y,e.signatureToDisplayParts(a,n,s,32|r)),t.length>1&&(y.push(e.spacePart()),y.push(e.punctuationPart(20)),y.push(e.operatorPart(39)),y.push(e.displayPart((t.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),y.push(e.spacePart()),y.push(e.textPart(2===t.length?\"overload\":\"overloads\")),y.push(e.punctuationPart(21)));var i=n.getDocumentationComment(a);d=0===i.length?void 0:i,p=n.getJsDocTags()}function Y(n,t){var r=e.mapToDisplayParts((function(r){var i=a.symbolToTypeParameterDeclarations(n,t);j().writeList(53776,i,e.getSourceFileOfNode(e.getParseTreeNode(t)),r)}));e.addRange(y,r)}}}(e.SymbolDisplay||(e.SymbolDisplay={}))}(ts||(ts={})),function(e){function n(n,t){var a=[],i=t.compilerOptions?r(t.compilerOptions,a):{},o=e.getDefaultCompilerOptions();for(var s in o)e.hasProperty(o,s)&&void 0===i[s]&&(i[s]=o[s]);for(var c=0,l=e.transpileOptionValueCompilerOptions;c<l.length;c++){var u=l[c];i[u.name]=u.transpileOptionValue}i.suppressOutputPathCheck=!0,i.allowNonTsExtensions=!0;var d=t.fileName||(t.compilerOptions&&t.compilerOptions.jsx?\"module.tsx\":\"module.ts\"),p=e.createSourceFile(d,n,i.target);t.moduleName&&(p.moduleName=t.moduleName),t.renamedDependencies&&(p.renamedDependencies=e.createMapFromTemplate(t.renamedDependencies));var m,f,_=e.getNewLineCharacter(i),g={getSourceFile:function(n){return n===e.normalizePath(d)?p:void 0},writeFile:function(n,t){e.fileExtensionIs(n,\".map\")?(e.Debug.assertEqual(f,void 0,\"Unexpected multiple source map outputs, file:\",n),f=t):(e.Debug.assertEqual(m,void 0,\"Unexpected multiple outputs, file:\",n),m=t)},getDefaultLibFileName:function(){return\"lib.d.ts\"},useCaseSensitiveFileNames:function(){return!1},getCanonicalFileName:function(e){return e},getCurrentDirectory:function(){return\"\"},getNewLine:function(){return _},fileExists:function(e){return e===d},readFile:function(){return\"\"},directoryExists:function(){return!0},getDirectories:function(){return[]}},y=e.createProgram([d],i,g);return t.reportDiagnostics&&(e.addRange(a,y.getSyntacticDiagnostics(p)),e.addRange(a,y.getOptionsDiagnostics())),y.emit(void 0,void 0,void 0,void 0,t.transformers),void 0===m?e.Debug.fail(\"Output generation failed\"):{outputText:m,diagnostics:a,sourceMapText:f}}var t;function r(n,r){t=t||e.filter(e.optionDeclarations,(function(n){return\"object\"==typeof n.type&&!e.forEachEntry(n.type,(function(e){return\"number\"!=typeof e}))})),n=e.cloneCompilerOptions(n);for(var a=function(t){if(!e.hasProperty(n,t.name))return\"continue\";var a=n[t.name];e.isString(a)?n[t.name]=e.parseCustomTypeOption(t,a,r):e.forEachEntry(t.type,(function(e){return e===a}))||r.push(e.createCompilerDiagnosticForInvalidCustomType(t))},i=0,o=t;i<o.length;i++){a(o[i])}return n}e.transpileModule=n,e.transpile=function(t,r,a,i,o){var s=n(t,{compilerOptions:r,fileName:a,reportDiagnostics:!!i,moduleName:o});return e.addRange(i,s.diagnostics),s.outputText},e.fixupCompilerOptions=r}(ts||(ts={})),function(e){!function(n){!function(e){e[e.FormatDocument=0]=\"FormatDocument\",e[e.FormatSelection=1]=\"FormatSelection\",e[e.FormatOnEnter=2]=\"FormatOnEnter\",e[e.FormatOnSemicolon=3]=\"FormatOnSemicolon\",e[e.FormatOnOpeningCurlyBrace=4]=\"FormatOnOpeningCurlyBrace\",e[e.FormatOnClosingCurlyBrace=5]=\"FormatOnClosingCurlyBrace\"}(n.FormattingRequestKind||(n.FormattingRequestKind={}));var t=function(){function n(e,n,t){this.sourceFile=e,this.formattingRequestKind=n,this.options=t}return n.prototype.updateContext=function(n,t,r,a,i){this.currentTokenSpan=e.Debug.assertDefined(n),this.currentTokenParent=e.Debug.assertDefined(t),this.nextTokenSpan=e.Debug.assertDefined(r),this.nextTokenParent=e.Debug.assertDefined(a),this.contextNode=e.Debug.assertDefined(i),this.contextNodeAllOnSameLine=void 0,this.nextNodeAllOnSameLine=void 0,this.tokensAreOnSameLine=void 0,this.contextNodeBlockIsOnOneLine=void 0,this.nextNodeBlockIsOnOneLine=void 0},n.prototype.ContextNodeAllOnSameLine=function(){return void 0===this.contextNodeAllOnSameLine&&(this.contextNodeAllOnSameLine=this.NodeIsOnOneLine(this.contextNode)),this.contextNodeAllOnSameLine},n.prototype.NextNodeAllOnSameLine=function(){return void 0===this.nextNodeAllOnSameLine&&(this.nextNodeAllOnSameLine=this.NodeIsOnOneLine(this.nextTokenParent)),this.nextNodeAllOnSameLine},n.prototype.TokensAreOnSameLine=function(){if(void 0===this.tokensAreOnSameLine){var e=this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line,n=this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;this.tokensAreOnSameLine=e===n}return this.tokensAreOnSameLine},n.prototype.ContextNodeBlockIsOnOneLine=function(){return void 0===this.contextNodeBlockIsOnOneLine&&(this.contextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.contextNode)),this.contextNodeBlockIsOnOneLine},n.prototype.NextNodeBlockIsOnOneLine=function(){return void 0===this.nextNodeBlockIsOnOneLine&&(this.nextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.nextTokenParent)),this.nextNodeBlockIsOnOneLine},n.prototype.NodeIsOnOneLine=function(e){return this.sourceFile.getLineAndCharacterOfPosition(e.getStart(this.sourceFile)).line===this.sourceFile.getLineAndCharacterOfPosition(e.getEnd()).line},n.prototype.BlockIsOnOneLine=function(n){var t=e.findChildOfKind(n,18,this.sourceFile),r=e.findChildOfKind(n,19,this.sourceFile);return!(!t||!r)&&this.sourceFile.getLineAndCharacterOfPosition(t.getEnd()).line===this.sourceFile.getLineAndCharacterOfPosition(r.getStart(this.sourceFile)).line},n}();n.FormattingContext=t}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t,r=e.createScanner(99,!1,0),a=e.createScanner(99,!1,1);!function(e){e[e.Scan=0]=\"Scan\",e[e.RescanGreaterThanToken=1]=\"RescanGreaterThanToken\",e[e.RescanSlashToken=2]=\"RescanSlashToken\",e[e.RescanTemplateToken=3]=\"RescanTemplateToken\",e[e.RescanJsxIdentifier=4]=\"RescanJsxIdentifier\",e[e.RescanJsxText=5]=\"RescanJsxText\"}(t||(t={})),n.getFormattingScanner=function(t,i,o,s,c){var l=1===i?a:r;l.setText(t),l.setTextPos(o);var u,d,p,m,f,_=!0,g=c({advance:function(){f=void 0,l.getStartPos()!==o?_=!!d&&4===e.last(d).kind:l.scan();u=void 0,d=void 0;var n=l.getStartPos();for(;n<s;){var t=l.getToken();if(!e.isTrivia(t))break;l.scan();var r={pos:n,end:l.getStartPos(),kind:t};n=l.getStartPos(),u=e.append(u,r)}p=l.getStartPos()},readTokenInfo:function(t){e.Debug.assert(y());var r=function(e){switch(e.kind){case 33:case 70:case 71:case 49:case 48:return!0}return!1}(t)?1:(i=t,13===i.kind?2:function(e){return 16===e.kind||17===e.kind}(t)?3:function(n){if(n.parent)switch(n.parent.kind){case 271:case 266:case 267:case 265:return e.isKeyword(n.kind)||75===n.kind}return!1}(t)?4:(a=t,11===a.kind?5:0));var a;var i;if(f&&r===m)return h(f,t);l.getStartPos()!==p&&(e.Debug.assert(void 0!==f),l.setTextPos(p),l.scan());var o=function(n,t){var r=l.getToken();switch(m=0,t){case 1:if(31===r){m=1;var a=l.reScanGreaterToken();return e.Debug.assert(n.kind===a),a}break;case 2:if(43===(i=r)||67===i){m=2;a=l.reScanSlashToken();return e.Debug.assert(n.kind===a),a}break;case 3:if(19===r)return m=3,l.reScanTemplateToken();break;case 4:return m=4,l.scanJsxIdentifier();case 5:return m=5,l.reScanJsxToken();case 0:break;default:e.Debug.assertNever(t)}var i;return r}(t,r),c=n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),o);d&&(d=void 0);for(;l.getStartPos()<s&&(o=l.scan(),e.isTrivia(o));){var _=n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),o);if(d||(d=[]),d.push(_),4===o){l.scan();break}}return h(f={leadingTrivia:u,trailingTrivia:d,token:c},t)},readEOFTokenRange:function(){return e.Debug.assert(v()),n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),1)},isOnToken:y,isOnEOF:v,getCurrentLeadingTrivia:function(){return u},lastTrailingTriviaWasNewLine:function(){return _},skipToEndOf:function(e){l.setTextPos(e.end),p=l.getStartPos(),m=void 0,f=void 0,_=!1,u=void 0,d=void 0}});return f=void 0,l.setText(void 0),g;function y(){var n=f?f.token.kind:l.getToken();return(f?f.token.pos:l.getStartPos())<s&&1!==n&&!e.isTrivia(n)}function v(){return 1===(f?f.token.kind:l.getToken())}function h(n,t){return e.isToken(t)&&n.token.kind!==t.kind&&(n.token.kind=t.kind),n}}}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){n.anyContext=e.emptyArray,function(e){e[e.StopProcessingSpaceActions=1]=\"StopProcessingSpaceActions\",e[e.StopProcessingTokenActions=2]=\"StopProcessingTokenActions\",e[e.InsertSpace=4]=\"InsertSpace\",e[e.InsertNewLine=8]=\"InsertNewLine\",e[e.DeleteSpace=16]=\"DeleteSpace\",e[e.DeleteToken=32]=\"DeleteToken\",e[e.InsertTrailingSemicolon=64]=\"InsertTrailingSemicolon\",e[e.StopAction=3]=\"StopAction\",e[e.ModifySpaceAction=28]=\"ModifySpaceAction\",e[e.ModifyTokenAction=96]=\"ModifyTokenAction\"}(n.RuleAction||(n.RuleAction={})),function(e){e[e.None=0]=\"None\",e[e.CanDeleteNewLines=1]=\"CanDeleteNewLines\"}(n.RuleFlags||(n.RuleFlags={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){function t(e,n,t,r,i,o){return void 0===o&&(o=0),{leftTokenRange:a(n),rightTokenRange:a(t),rule:{debugName:e,context:r,action:i,flags:o}}}function r(e){return{tokens:e,isSpecific:!0}}function a(n){return\"number\"==typeof n?r([n]):e.isArray(n)?r(n):n}function i(n,t,a){void 0===a&&(a=[]);for(var i=[],o=n;o<=t;o++)e.contains(a,o)||i.push(o);return r(i)}function o(e,n){return function(t){return t.options&&t.options[e]===n}}function s(e){return function(n){return n.options&&n.options.hasOwnProperty(e)&&!!n.options[e]}}function c(e){return function(n){return n.options&&n.options.hasOwnProperty(e)&&!n.options[e]}}function l(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!n.options[e]}}function u(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!n.options[e]||n.TokensAreOnSameLine()}}function d(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!!n.options[e]}}function p(e){return 229===e.contextNode.kind}function m(e){return!p(e)}function f(e){switch(e.contextNode.kind){case 208:case 209:case 179:case 216:case 261:case 257:case 167:case 177:case 178:return!0;case 190:case 246:case 252:case 241:case 155:case 282:case 158:case 157:return 62===e.currentTokenSpan.kind||62===e.nextTokenSpan.kind;case 230:case 154:return 96===e.currentTokenSpan.kind||96===e.nextTokenSpan.kind||62===e.currentTokenSpan.kind||62===e.nextTokenSpan.kind;case 231:return 151===e.currentTokenSpan.kind||151===e.nextTokenSpan.kind}return!1}function _(e){return!f(e)}function g(e){return!y(e)}function y(n){var t=n.contextNode.kind;return 158===t||157===t||155===t||241===t||e.isFunctionLikeKind(t)}function v(e){return 209===e.contextNode.kind||179===e.contextNode.kind}function h(e){return e.TokensAreOnSameLine()||x(e)}function b(e){return 188===e.contextNode.kind||185===e.contextNode.kind||function(e){return S(e)&&(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}(e)}function E(e){return x(e)&&!(e.NextNodeAllOnSameLine()||e.NextNodeBlockIsOnOneLine())}function T(e){return S(e)&&!(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}function S(e){return L(e.contextNode)}function x(e){return L(e.nextTokenParent)}function L(e){if(N(e))return!0;switch(e.kind){case 222:case 250:case 192:case 249:return!0}return!1}function C(e){switch(e.contextNode.kind){case 243:case 160:case 159:case 162:case 163:case 164:case 200:case 161:case 201:case 245:return!0}return!1}function A(e){return!C(e)}function D(e){return 243===e.contextNode.kind||200===e.contextNode.kind}function k(e){return N(e.contextNode)}function N(e){switch(e.kind){case 244:case 213:case 245:case 247:case 172:case 248:case 259:case 260:case 253:case 256:return!0}return!1}function I(e){switch(e.currentTokenParent.kind){case 244:case 248:case 247:case 278:case 249:case 236:return!0;case 222:var n=e.currentTokenParent.parent;if(!n||201!==n.kind&&200!==n.kind)return!0}return!1}function M(e){switch(e.contextNode.kind){case 226:case 236:case 229:case 230:case 231:case 228:case 239:case 227:case 235:case 278:return!0;default:return!1}}function O(e){return 192===e.contextNode.kind}function R(e){return function(e){return 195===e.contextNode.kind}(e)||function(e){return 196===e.contextNode.kind}(e)}function P(e){return 27!==e.currentTokenSpan.kind}function w(e){return 23!==e.nextTokenSpan.kind}function F(e){return 201===e.contextNode.kind}function G(e){return 187===e.contextNode.kind}function B(e){return e.TokensAreOnSameLine()&&11!==e.contextNode.kind}function V(e){return 264!==e.contextNode.kind&&268!==e.contextNode.kind}function U(e){return 274===e.contextNode.kind||273===e.contextNode.kind}function j(e){return 271===e.nextTokenParent.kind}function K(e){return 271===e.contextNode.kind}function H(e){return 265===e.contextNode.kind}function W(e){return!C(e)&&!x(e)}function z(e){return e.TokensAreOnSameLine()&&!!e.contextNode.decorators&&q(e.currentTokenParent)&&!q(e.nextTokenParent)}function q(n){for(;e.isExpressionNode(n);)n=n.parent;return 156===n.kind}function J(e){return 242===e.currentTokenParent.kind&&e.currentTokenParent.getStart(e.sourceFile)===e.currentTokenSpan.pos}function X(e){return 2!==e.formattingRequestKind}function Y(e){return 248===e.contextNode.kind}function Q(e){return 172===e.contextNode.kind}function Z(e){return 165===e.contextNode.kind}function $(e,n){if(29!==e.kind&&31!==e.kind)return!1;switch(n.kind){case 168:case 198:case 246:case 244:case 213:case 245:case 243:case 200:case 201:case 160:case 159:case 164:case 165:case 195:case 196:case 215:return!0;default:return!1}}function ee(e){return $(e.currentTokenSpan,e.currentTokenParent)||$(e.nextTokenSpan,e.nextTokenParent)}function ne(e){return 198===e.contextNode.kind}function te(e){return 109===e.currentTokenSpan.kind&&204===e.currentTokenParent.kind}function re(e){return 211===e.contextNode.kind&&void 0!==e.contextNode.expression}function ae(e){return 217===e.contextNode.kind}function ie(n){var t=n.nextTokenSpan.kind,r=n.nextTokenSpan.pos;if(e.isTrivia(t)){var a=n.nextTokenParent===n.currentTokenParent?e.findNextToken(n.currentTokenParent,e.findAncestor(n.currentTokenParent,(function(e){return!e.parent})),n.sourceFile):n.nextTokenParent.getFirstToken(n.sourceFile);if(!a)return!0;t=a.kind,r=a.getStart(n.sourceFile)}return n.sourceFile.getLineAndCharacterOfPosition(n.currentTokenSpan.pos).line===n.sourceFile.getLineAndCharacterOfPosition(r).line?19===t||1===t:221!==t&&26!==t&&(245===n.contextNode.kind||246===n.contextNode.kind?!e.isPropertySignature(n.currentTokenParent)||!!n.currentTokenParent.type||20!==t:e.isPropertyDeclaration(n.currentTokenParent)?!n.currentTokenParent.initializer:229!==n.currentTokenParent.kind&&223!==n.currentTokenParent.kind&&221!==n.currentTokenParent.kind&&22!==t&&20!==t&&39!==t&&40!==t&&43!==t&&13!==t&&27!==t&&210!==t&&15!==t&&14!==t&&24!==t)}function oe(n){var t=e.findAncestor(n.currentTokenParent,(function(t){return t.end!==n.currentTokenSpan.end?\"quit\":e.syntaxMayBeASICandidate(t.kind)}));return!!t&&e.isASICandidate(t,n.sourceFile)}n.getAllRules=function(){for(var a=[],S=0;S<=151;S++)1!==S&&a.push(S);function L(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return{tokens:a.filter((function(n){return!e.some((function(e){return e===n}))})),isSpecific:!1}}var N={tokens:a,isSpecific:!1},q=r(__spreadArrays(a,[3])),$=r(__spreadArrays(a,[1])),se=i(76,151),ce=i(29,74),le=[96,97,151,122,132],ue=__spreadArrays([75],e.typeKeywords),de=q,pe=r([75,3,79,88,95]),me=r([21,3,85,106,91,86]),fe=[t(\"IgnoreBeforeComment\",N,[2,3],n.anyContext,1),t(\"IgnoreAfterLineComment\",2,N,n.anyContext,1),t(\"NotSpaceBeforeColon\",N,58,[B,_,g],16),t(\"SpaceAfterColon\",58,N,[B,_],4),t(\"NoSpaceBeforeQuestionMark\",N,57,[B,_],16),t(\"SpaceAfterQuestionMarkInConditionalOperator\",57,N,[B,v],4),t(\"NoSpaceAfterQuestionMark\",57,N,[B],16),t(\"NoSpaceBeforeDot\",N,[24,28],[B],16),t(\"NoSpaceAfterDot\",[24,28],N,[B],16),t(\"NoSpaceBetweenImportParenInImportType\",95,20,[B,G],16),t(\"NoSpaceAfterUnaryPrefixOperator\",[45,46,54,53],[8,9,75,20,22,18,103,98],[B,_],16),t(\"NoSpaceAfterUnaryPreincrementOperator\",45,[75,20,103,98],[B],16),t(\"NoSpaceAfterUnaryPredecrementOperator\",46,[75,20,103,98],[B],16),t(\"NoSpaceBeforeUnaryPostincrementOperator\",[75,21,23,98],45,[B],16),t(\"NoSpaceBeforeUnaryPostdecrementOperator\",[75,21,23,98],46,[B],16),t(\"SpaceAfterPostincrementWhenFollowedByAdd\",45,39,[B,f],4),t(\"SpaceAfterAddWhenFollowedByUnaryPlus\",39,39,[B,f],4),t(\"SpaceAfterAddWhenFollowedByPreincrement\",39,45,[B,f],4),t(\"SpaceAfterPostdecrementWhenFollowedBySubtract\",46,40,[B,f],4),t(\"SpaceAfterSubtractWhenFollowedByUnaryMinus\",40,40,[B,f],4),t(\"SpaceAfterSubtractWhenFollowedByPredecrement\",40,46,[B,f],4),t(\"NoSpaceAfterCloseBrace\",19,[27,26],[B],16),t(\"NewLineBeforeCloseBraceInBlockContext\",q,19,[T],8),t(\"SpaceAfterCloseBrace\",19,L(21),[B,I],4),t(\"SpaceBetweenCloseBraceAndElse\",19,86,[B],4),t(\"SpaceBetweenCloseBraceAndWhile\",19,110,[B],4),t(\"NoSpaceBetweenEmptyBraceBrackets\",18,19,[B,O],16),t(\"SpaceAfterConditionalClosingParen\",21,22,[M],4),t(\"NoSpaceBetweenFunctionKeywordAndStar\",93,41,[D],16),t(\"SpaceAfterStarInGeneratorDeclaration\",41,75,[D],4),t(\"SpaceAfterFunctionInFuncDecl\",93,N,[C],4),t(\"NewLineAfterOpenBraceInBlockContext\",18,N,[T],8),t(\"SpaceAfterGetSetInMember\",[130,141],75,[C],4),t(\"NoSpaceBetweenYieldKeywordAndStar\",120,41,[B,re],16),t(\"SpaceBetweenYieldOrYieldStarAndOperand\",[120,41],N,[B,re],4),t(\"NoSpaceBetweenReturnAndSemicolon\",100,26,[B],16),t(\"SpaceAfterCertainKeywords\",[108,104,98,84,100,107,126],N,[B],4),t(\"SpaceAfterLetConstInVariableDeclaration\",[114,80],N,[B,J],4),t(\"NoSpaceBeforeOpenParenInFuncCall\",N,20,[B,R,P],16),t(\"SpaceBeforeBinaryKeywordOperator\",N,le,[B,f],4),t(\"SpaceAfterBinaryKeywordOperator\",le,N,[B,f],4),t(\"SpaceAfterVoidOperator\",109,N,[B,te],4),t(\"SpaceBetweenAsyncAndOpenParen\",125,20,[F,B],4),t(\"SpaceBetweenAsyncAndFunctionKeyword\",125,93,[B],4),t(\"NoSpaceBetweenTagAndTemplateString\",[75,21],[14,15],[B],16),t(\"SpaceBeforeJsxAttribute\",N,75,[j,B],4),t(\"SpaceBeforeSlashInJsxOpeningElement\",N,43,[H,B],4),t(\"NoSpaceBeforeGreaterThanTokenInJsxOpeningElement\",43,31,[H,B],16),t(\"NoSpaceBeforeEqualInJsxAttribute\",N,62,[K,B],16),t(\"NoSpaceAfterEqualInJsxAttribute\",62,N,[K,B],16),t(\"NoSpaceAfterModuleImport\",[134,138],20,[B],16),t(\"SpaceAfterCertainTypeScriptKeywords\",[121,79,129,83,87,88,89,130,112,95,113,134,135,116,118,117,137,141,119,144,148,133,131],N,[B],4),t(\"SpaceBeforeCertainTypeScriptKeywords\",N,[89,112,148],[B],4),t(\"SpaceAfterModuleName\",10,18,[Y],4),t(\"SpaceBeforeArrow\",N,38,[B],4),t(\"SpaceAfterArrow\",38,N,[B],4),t(\"NoSpaceAfterEllipsis\",25,75,[B],16),t(\"NoSpaceAfterOptionalParameters\",57,[21,27],[B,_],16),t(\"NoSpaceBetweenEmptyInterfaceBraceBrackets\",18,19,[B,Q],16),t(\"NoSpaceBeforeOpenAngularBracket\",ue,29,[B,ee],16),t(\"NoSpaceBetweenCloseParenAndAngularBracket\",21,29,[B,ee],16),t(\"NoSpaceAfterOpenAngularBracket\",29,N,[B,ee],16),t(\"NoSpaceBeforeCloseAngularBracket\",N,31,[B,ee],16),t(\"NoSpaceAfterCloseAngularBracket\",31,[20,22,31,27],[B,ee,A],16),t(\"SpaceBeforeAt\",[21,75],59,[B],4),t(\"NoSpaceAfterAt\",59,N,[B],16),t(\"SpaceAfterDecorator\",N,[121,75,88,83,79,119,118,116,117,130,141,22,41],[z],4),t(\"NoSpaceBeforeNonNullAssertionOperator\",N,53,[B,ae],16),t(\"NoSpaceAfterNewKeywordOnConstructorSignature\",98,20,[B,Z],16),t(\"SpaceLessThanAndNonJSXTypeAnnotation\",29,29,[B],4)],_e=[t(\"SpaceAfterConstructor\",128,20,[s(\"insertSpaceAfterConstructor\"),B],4),t(\"NoSpaceAfterConstructor\",128,20,[l(\"insertSpaceAfterConstructor\"),B],16),t(\"SpaceAfterComma\",27,N,[s(\"insertSpaceAfterCommaDelimiter\"),B,V,w],4),t(\"NoSpaceAfterComma\",27,N,[l(\"insertSpaceAfterCommaDelimiter\"),B,V],16),t(\"SpaceAfterAnonymousFunctionKeyword\",[93,41],20,[s(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"),C],4),t(\"NoSpaceAfterAnonymousFunctionKeyword\",[93,41],20,[l(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"),C],16),t(\"SpaceAfterKeywordInControl\",se,20,[s(\"insertSpaceAfterKeywordsInControlFlowStatements\"),M],4),t(\"NoSpaceAfterKeywordInControl\",se,20,[l(\"insertSpaceAfterKeywordsInControlFlowStatements\"),M],16),t(\"SpaceAfterOpenParen\",20,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"SpaceBeforeCloseParen\",N,21,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"SpaceBetweenOpenParens\",20,20,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"NoSpaceBetweenParens\",20,21,[B],16),t(\"NoSpaceAfterOpenParen\",20,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],16),t(\"NoSpaceBeforeCloseParen\",N,21,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],16),t(\"SpaceAfterOpenBracket\",22,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],4),t(\"SpaceBeforeCloseBracket\",N,23,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],4),t(\"NoSpaceBetweenBrackets\",22,23,[B],16),t(\"NoSpaceAfterOpenBracket\",22,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],16),t(\"NoSpaceBeforeCloseBracket\",N,23,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],16),t(\"SpaceAfterOpenBrace\",18,N,[d(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),b],4),t(\"SpaceBeforeCloseBrace\",N,19,[d(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),b],4),t(\"NoSpaceBetweenEmptyBraceBrackets\",18,19,[B,O],16),t(\"NoSpaceAfterOpenBrace\",18,N,[c(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),B],16),t(\"NoSpaceBeforeCloseBrace\",N,19,[c(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),B],16),t(\"SpaceAfterTemplateHeadAndMiddle\",[15,16],N,[s(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],4),t(\"SpaceBeforeTemplateMiddleAndTail\",N,[16,17],[s(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],4),t(\"NoSpaceAfterTemplateHeadAndMiddle\",[15,16],N,[l(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],16),t(\"NoSpaceBeforeTemplateMiddleAndTail\",N,[16,17],[l(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],16),t(\"SpaceAfterOpenBraceInJsxExpression\",18,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],4),t(\"SpaceBeforeCloseBraceInJsxExpression\",N,19,[s(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],4),t(\"NoSpaceAfterOpenBraceInJsxExpression\",18,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],16),t(\"NoSpaceBeforeCloseBraceInJsxExpression\",N,19,[l(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],16),t(\"SpaceAfterSemicolonInFor\",26,N,[s(\"insertSpaceAfterSemicolonInForStatements\"),B,p],4),t(\"NoSpaceAfterSemicolonInFor\",26,N,[l(\"insertSpaceAfterSemicolonInForStatements\"),B,p],16),t(\"SpaceBeforeBinaryOperator\",N,ce,[s(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],4),t(\"SpaceAfterBinaryOperator\",ce,N,[s(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],4),t(\"NoSpaceBeforeBinaryOperator\",N,ce,[l(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],16),t(\"NoSpaceAfterBinaryOperator\",ce,N,[l(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],16),t(\"SpaceBeforeOpenParenInFuncDecl\",N,20,[s(\"insertSpaceBeforeFunctionParenthesis\"),B,C],4),t(\"NoSpaceBeforeOpenParenInFuncDecl\",N,20,[l(\"insertSpaceBeforeFunctionParenthesis\"),B,C],16),t(\"NewLineBeforeOpenBraceInControl\",me,18,[s(\"placeOpenBraceOnNewLineForControlBlocks\"),M,E],8,1),t(\"NewLineBeforeOpenBraceInFunction\",de,18,[s(\"placeOpenBraceOnNewLineForFunctions\"),C,E],8,1),t(\"NewLineBeforeOpenBraceInTypeScriptDeclWithBlock\",pe,18,[s(\"placeOpenBraceOnNewLineForFunctions\"),k,E],8,1),t(\"SpaceAfterTypeAssertion\",31,N,[s(\"insertSpaceAfterTypeAssertion\"),B,ne],4),t(\"NoSpaceAfterTypeAssertion\",31,N,[l(\"insertSpaceAfterTypeAssertion\"),B,ne],16),t(\"SpaceBeforeTypeAnnotation\",N,58,[s(\"insertSpaceBeforeTypeAnnotation\"),B,y],4),t(\"NoSpaceBeforeTypeAnnotation\",N,58,[l(\"insertSpaceBeforeTypeAnnotation\"),B,y],16),t(\"NoOptionalSemicolon\",26,$,[o(\"semicolons\",e.SemicolonPreference.Remove),ie],32),t(\"OptionalSemicolon\",N,$,[o(\"semicolons\",e.SemicolonPreference.Insert),oe],64)],ge=[t(\"NoSpaceBeforeSemicolon\",N,26,[B],16),t(\"SpaceBeforeOpenBraceInControl\",me,18,[u(\"placeOpenBraceOnNewLineForControlBlocks\"),M,X,h],4,1),t(\"SpaceBeforeOpenBraceInFunction\",de,18,[u(\"placeOpenBraceOnNewLineForFunctions\"),C,x,X,h],4,1),t(\"SpaceBeforeOpenBraceInTypeScriptDeclWithBlock\",pe,18,[u(\"placeOpenBraceOnNewLineForFunctions\"),k,X,h],4,1),t(\"NoSpaceBeforeComma\",N,27,[B],16),t(\"NoSpaceBeforeOpenBracket\",L(125,77),22,[B],16),t(\"NoSpaceAfterCloseBracket\",23,N,[B,W],16),t(\"SpaceAfterSemicolon\",26,N,[B],4),t(\"SpaceBetweenForAndAwaitKeyword\",92,126,[B],4),t(\"SpaceBetweenStatements\",[21,85,86,77],N,[B,V,m],4),t(\"SpaceAfterTryFinally\",[106,91],18,[B],4)];return __spreadArrays(fe,_e,ge)}}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t;function r(){var r,o;return void 0===t&&(r=n.getAllRules(),o=function(e){for(var n=new Array(s*s),t=new Array(n.length),r=0,a=e;r<a.length;r++)for(var o=a[r],l=o.leftTokenRange.isSpecific&&o.rightTokenRange.isSpecific,u=0,d=o.leftTokenRange.tokens;u<d.length;u++)for(var p=d[u],m=0,f=o.rightTokenRange.tokens;m<f.length;m++){var _=f[m],g=i(p,_),y=n[g];void 0===y&&(y=n[g]=[]),c(y,o.rule,l,t,g)}return n}(r),t=function(n){var t=o[i(n.currentTokenSpan.kind,n.nextTokenSpan.kind)];if(t){for(var r=[],s=0,c=0,l=t;c<l.length;c++){var u=l[c],d=~a(s);u.action&d&&e.every(u.context,(function(e){return e(n)}))&&(r.push(u),s|=u.action)}if(r.length)return r}}),t}function a(e){var n=0;return 1&e&&(n|=28),2&e&&(n|=96),28&e&&(n|=28),96&e&&(n|=96),n}function i(n,t){return e.Debug.assert(n<=151&&t<=151,\"Must compute formatting context from tokens\"),n*s+t}n.getFormatContext=function(e){return{options:e,getRules:r()}};var o,s=152;function c(t,r,a,i,s){var c,l,u,d=3&r.action?a?o.StopRulesSpecific:o.StopRulesAny:r.context!==n.anyContext?a?o.ContextRulesSpecific:o.ContextRulesAny:a?o.NoContextRulesSpecific:o.NoContextRulesAny,p=i[s]||0;t.splice(function(e,n){for(var t=0,r=0;r<=n;r+=5)t+=31&e,e>>=5;return t}(p,d),0,r),i[s]=(u=1+((c=p)>>(l=d)&31),e.Debug.assert((31&u)===u,\"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\"),c&~(31<<l)|u<<l)}!function(e){e[e.StopRulesSpecific=0]=\"StopRulesSpecific\",e[e.StopRulesAny=5]=\"StopRulesAny\",e[e.ContextRulesSpecific=10]=\"ContextRulesSpecific\",e[e.ContextRulesAny=15]=\"ContextRulesAny\",e[e.NoContextRulesSpecific=20]=\"NoContextRulesSpecific\",e[e.NoContextRulesAny=25]=\"NoContextRulesAny\"}(o||(o={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i,o;function s(n,t,r){var a=e.findPrecedingToken(n,r);return a&&a.kind===t&&n===a.getEnd()?a:void 0}function c(e){for(var n=e;n&&n.parent&&n.parent.end===e.end&&!l(n.parent,n);)n=n.parent;return n}function l(n,t){switch(n.kind){case 244:case 245:return e.rangeContainsRange(n.members,t);case 248:var r=n.body;return!!r&&249===r.kind&&e.rangeContainsRange(r.statements,t);case 288:case 222:case 249:return e.rangeContainsRange(n.statements,t);case 278:return e.rangeContainsRange(n.block.statements,t)}return!1}function u(n,t,r,a){return n?d({pos:e.getLineStartPositionForPosition(n.getStart(t),t),end:n.end},t,r,a):[]}function d(t,r,a,i){var o=function(n,t){return function r(a){var i=e.forEachChild(a,(function(r){return e.startEndContainsRange(r.getStart(t),r.end,n)&&r}));if(i){var o=r(i);if(o)return o}return a}(t)}(t,r);return n.getFormattingScanner(r.text,r.languageVariant,function(n,t,r){var a=n.getStart(r);if(a===t.pos&&n.end===t.end)return a;var i=e.findPrecedingToken(t.pos,r);return i?i.end>=t.pos?n.pos:i.end:n.pos}(o,t,r),t.end,(function(s){return p(t,o,n.SmartIndenter.getIndentationForNode(o,t,r,a.options),function(e,t,r){for(var a,i=-1;e;){var o=r.getLineAndCharacterOfPosition(e.getStart(r)).line;if(-1!==i&&o!==i)break;if(n.SmartIndenter.shouldIndentChildNode(t,e,a,r))return t.indentSize;i=o,a=e,e=e.parent}return 0}(o,a.options,r),s,a,i,function(n,t){if(!n.length)return i;var r=n.filter((function(n){return e.rangeOverlapsWithStartEnd(t,n.start,n.start+n.length)})).sort((function(e,n){return e.start-n.start}));if(!r.length)return i;var a=0;return function(n){for(;;){if(a>=r.length)return!1;var t=r[a];if(n.end<=t.start)return!1;if(e.startEndOverlapsWithStartEnd(n.pos,n.end,t.start,t.start+t.length))return!0;a++}};function i(){return!1}}(r.parseDiagnostics,t),r)}))}function p(t,r,a,i,o,s,c,l,u){var d,p,f,_,g=s.options,y=s.getRules,v=new n.FormattingContext(u,c,g),h=-1,b=[];if(o.advance(),o.isOnToken()){var E=u.getLineAndCharacterOfPosition(r.getStart(u)).line,T=E;r.decorators&&(T=u.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(r,u)).line),function r(a,i,s,c,m,y){if(!e.rangeOverlapsWithStartEnd(t,a.getStart(u),a.getEnd()))return;var v=x(a,s,m,y),b=i;e.forEachChild(a,(function(e){S(e,-1,a,v,s,c,!1)}),(function(t){!function(t,r,i,s){e.Debug.assert(e.isNodeArray(t));var c=function(e,n){switch(e.kind){case 161:case 243:case 200:case 160:case 159:case 201:if(e.typeParameters===n)return 29;if(e.parameters===n)return 20;break;case 195:case 196:if(e.typeArguments===n)return 29;if(e.arguments===n)return 20;break;case 168:if(e.typeArguments===n)return 29;break;case 172:return 18}return 0}(r,t),l=s,d=i;if(0!==c)for(;o.isOnToken();){if((b=o.readTokenInfo(r)).token.end>t.pos)break;if(b.token.kind===c){d=u.getLineAndCharacterOfPosition(b.token.pos).line,I(b,r,s,r);var p=void 0;if(-1!==h)p=h;else{var m=e.getLineStartPositionForPosition(b.token.pos,u);p=n.SmartIndenter.findFirstNonWhitespaceColumn(m,b.token.pos,u,g)}l=x(r,i,p,g.indentSize)}else I(b,r,s,r)}for(var f=-1,_=0;_<t.length;_++){var y=t[_];f=S(y,f,a,l,d,d,!0,0===_)}var v=function(e){switch(e){case 20:return 21;case 29:return 31;case 18:return 19}return 0}(c);if(0!==v&&o.isOnToken()){var b;27===(b=o.readTokenInfo(r)).token.kind&&e.isCallLikeExpression(r)&&(o.advance(),b=o.isOnToken()?o.readTokenInfo(r):void 0),b&&b.token.kind===v&&e.rangeContainsRange(r,b.token)&&I(b,r,l,r,!0)}}(t,a,s,v)}));for(;o.isOnToken();){var E=o.readTokenInfo(a);if(E.token.end>a.end)break;I(E,a,v,a)}if(!a.parent&&o.isOnEOF()){var T=o.readEOFTokenRange();T.end<=a.end&&d&&D(T,u.getLineAndCharacterOfPosition(T.pos).line,a,d,f,p,i,v)}function S(i,s,c,l,d,p,m,f){var y=i.getStart(u),v=u.getLineAndCharacterOfPosition(y).line,E=v;i.decorators&&(E=u.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(i,u)).line);var T=-1;if(m&&e.rangeContainsRange(t,c)&&-1!==(T=function(t,r,a,i,o){if(e.rangeOverlapsWithStartEnd(i,t,r)||e.rangeContainsStartEnd(i,t,r)){if(-1!==o)return o}else{var s=u.getLineAndCharacterOfPosition(t).line,c=e.getLineStartPositionForPosition(t,u),l=n.SmartIndenter.findFirstNonWhitespaceColumn(c,t,u,g);if(s!==a||t===l){var d=n.SmartIndenter.getBaseIndentation(g);return d>l?d:l}}return-1}(y,i.end,d,t,s))&&(s=T),!e.rangeOverlapsWithStartEnd(t,i.pos,i.end))return i.end<t.pos&&o.skipToEndOf(i),s;if(0===i.getFullWidth())return s;for(;o.isOnToken();){if((S=o.readTokenInfo(a)).token.end>y)break;I(S,a,l,a)}if(!o.isOnToken())return s;if(e.isToken(i)&&11!==i.kind){var S=o.readTokenInfo(i);return e.Debug.assert(S.token.end===i.end,\"Token end is child end\"),I(S,a,l,i),s}var x=156===i.kind?v:p,L=function(e,t,r,a,i,o){var s=n.SmartIndenter.shouldIndentChildNode(g,e)?g.indentSize:0;return o===t?{indentation:t===_?h:i.getIndentation(),delta:Math.min(g.indentSize,i.getDelta(e)+s)}:-1===r?20===e.kind&&t===_?{indentation:h,delta:i.getDelta(e)}:n.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(a,e,t,u)?{indentation:i.getIndentation(),delta:s}:n.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(a,e,t,u)?{indentation:i.getIndentation(),delta:s}:{indentation:i.getIndentation()+i.getDelta(e),delta:s}:{indentation:r,delta:s}}(i,v,T,a,l,x);(r(i,b,v,E,L.indentation,L.delta),11===i.kind)&&N({pos:i.getStart(),end:i.getEnd()},L.indentation,!0,!1);return b=a,f&&191===c.kind&&-1===s&&(s=L.indentation),s}function I(n,r,a,i,s){e.Debug.assert(e.rangeContainsRange(r,n.token));var c=o.lastTrailingTriviaWasNewLine(),p=!1;n.leadingTrivia&&C(n.leadingTrivia,r,b,a);var m=0,f=e.rangeContainsRange(t,n.token),g=u.getLineAndCharacterOfPosition(n.token.pos);if(f){var y=l(n.token),v=d;if(m=A(n.token,g,r,b,a),!y)if(0===m){var E=v&&u.getLineAndCharacterOfPosition(v.end).line;p=c&&g.line!==E}else p=1===m}if(n.trailingTrivia&&C(n.trailingTrivia,r,b,a),p){var T=f&&!l(n.token)?a.getIndentationForToken(g.line,n.token.kind,i,!!s):-1,S=!0;if(n.leadingTrivia){var x=a.getIndentationForComment(n.token.kind,T,i);S=L(n.leadingTrivia,x,S,(function(e){return k(e.pos,x,!1)}))}-1!==T&&S&&(k(n.token.pos,T,1===m),_=g.line,h=T)}o.advance(),b=r}}(r,r,E,T,a,i)}if(!o.isOnToken()){var S=o.getCurrentLeadingTrivia();S&&(L(S,a,!1,(function(e){return A(e,u.getLineAndCharacterOfPosition(e.pos),r,r,void 0)})),function(){var e=d?d.end:t.pos,n=u.getLineAndCharacterOfPosition(e).line,r=u.getLineAndCharacterOfPosition(t.end).line;I(n,r+1,d)}())}return b;function x(t,r,a,i){return{getIndentationForComment:function(e,n,t){switch(e){case 19:case 23:case 21:return a+o(t)}return-1!==n?n:a},getIndentationForToken:function(n,i,s,c){return!c&&function(n,a,i){switch(a){case 18:case 19:case 21:case 86:case 110:case 59:return!1;case 43:case 31:switch(i.kind){case 266:case 267:case 265:return!1}break;case 22:case 23:if(185!==i.kind)return!1}return r!==n&&!(t.decorators&&a===function(n){if(n.modifiers&&n.modifiers.length)return n.modifiers[0].kind;switch(n.kind){case 244:return 79;case 245:return 113;case 243:return 93;case 247:return 247;case 162:return 130;case 163:return 141;case 160:if(n.asteriskToken)return 41;case 158:case 155:var t=e.getNameOfDeclaration(n);if(t)return t.kind}}(t))}(n,i,s)?a+o(s):a},getIndentation:function(){return a},getDelta:o,recomputeIndentation:function(e){t.parent&&n.SmartIndenter.shouldIndentChildNode(g,t.parent,t,u)&&(a+=e?g.indentSize:-g.indentSize,i=n.SmartIndenter.shouldIndentChildNode(g,t)?g.indentSize:0)}};function o(e){return n.SmartIndenter.nodeWillIndentChild(g,t,e,u,!0)?i:0}}function L(n,r,a,i){for(var o=0,s=n;o<s.length;o++){var c=s[o],l=e.rangeContainsRange(t,c);switch(c.kind){case 3:l&&N(c,r,!a),a=!1;break;case 2:a&&l&&i(c),a=!1;break;case 4:a=!0}}return a}function C(n,r,a,i){for(var o=0,s=n;o<s.length;o++){var c=s[o];if(e.isComment(c.kind)&&e.rangeContainsRange(t,c))A(c,u.getLineAndCharacterOfPosition(c.pos),r,a,i)}}function A(e,n,r,a,i){var o=0;l(e)||(d?o=D(e,n.line,r,d,f,p,a,i):I(u.getLineAndCharacterOfPosition(t.pos).line,n.line));return d=e,p=r,f=n.line,o}function D(n,t,r,a,i,o,s,c){v.updateContext(a,o,n,r,s);var l=y(v),d=!1,p=0;return l?e.forEachRight(l,(function(o){switch(p=function(n,t,r,a,i){var o=i!==r;switch(n.action){case 1:return 0;case 16:if(t.end!==a.pos)return O(t.end,a.pos-t.end),o?2:0;break;case 32:O(t.pos,t.end-t.pos);break;case 8:if(1!==n.flags&&r!==i)return 0;if(1!==i-r)return R(t.end,a.pos-t.end,g.newLineCharacter),o?0:1;break;case 4:if(1!==n.flags&&r!==i)return 0;if(1!==a.pos-t.end||32!==u.text.charCodeAt(t.end))return R(t.end,a.pos-t.end,\" \"),o?2:0;break;case 64:s=t.end,(c=\";\")&&b.push(e.createTextChangeFromStartLength(s,0,c))}var s,c;return 0}(o,a,i,n,t)){case 2:r.getStart(u)===n.pos&&c.recomputeIndentation(!1);break;case 1:r.getStart(u)===n.pos&&c.recomputeIndentation(!0);break;default:e.Debug.assert(0===p)}d=!(16&o.action)&&1!==o.flags})):d=1!==n.kind,t!==i&&d&&I(i,t,a),p}function k(n,t,r){var a=m(t,g);if(r)R(n,0,a);else{var i=u.getLineAndCharacterOfPosition(n),o=e.getStartPositionOfLine(i.line,u);(t!==function(e,n){for(var t=0,r=0;r<n;r++)9===u.text.charCodeAt(e+r)?t+=g.tabSize-t%g.tabSize:t++;return t}(o,i.character)||function(e,n){return e!==u.text.substr(n,e.length)}(a,o))&&R(o,i.character,a)}}function N(t,r,a,i){void 0===i&&(i=!0);var o=u.getLineAndCharacterOfPosition(t.pos).line,s=u.getLineAndCharacterOfPosition(t.end).line;if(o!==s){for(var c=[],l=t.pos,d=o;d<s;d++){var p=e.getEndLinePosition(d,u);c.push({pos:l,end:p}),l=e.getStartPositionOfLine(d+1,u)}if(i&&c.push({pos:l,end:t.end}),0!==c.length){var f=e.getStartPositionOfLine(o,u),_=n.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(f,c[0].pos,u,g);if(r!==_.column){var y=0;a&&(y=1,o++);for(var v=r-_.column,h=y;h<c.length;h++,o++){var b=e.getStartPositionOfLine(o,u),E=0===h?_:n.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(c[h].pos,c[h].end,u,g),T=E.column+v;if(T>0){var S=m(T,g);R(b,E.character,S)}else O(b,E.character)}}}}else a||k(t.pos,r,!1)}function I(n,t,r){for(var a=n;a<t;a++){var i=e.getStartPositionOfLine(a,u),o=e.getEndLinePosition(a,u);if(!(r&&(e.isComment(r.kind)||e.isStringOrRegularExpressionOrTemplateLiteral(r.kind))&&r.pos<=o&&r.end>o)){var s=M(i,o);-1!==s&&(e.Debug.assert(s===i||!e.isWhiteSpaceSingleLine(u.text.charCodeAt(s-1))),O(s,o+1-s))}}}function M(n,t){for(var r=t;r>=n&&e.isWhiteSpaceSingleLine(u.text.charCodeAt(r));)r--;return r!==t?r+1:-1}function O(n,t){t&&b.push(e.createTextChangeFromStartLength(n,t,\"\"))}function R(n,t,r){(t||r)&&b.push(e.createTextChangeFromStartLength(n,t,r))}}function m(n,t){if((!a||a.tabSize!==t.tabSize||a.indentSize!==t.indentSize)&&(a={tabSize:t.tabSize,indentSize:t.indentSize},i=o=void 0),t.convertTabsToSpaces){var r=void 0,s=Math.floor(n/t.indentSize),c=n%t.indentSize;return o||(o=[]),void 0===o[s]?(r=e.repeatString(\" \",t.indentSize*s),o[s]=r):r=o[s],c?r+e.repeatString(\" \",c):r}var l=Math.floor(n/t.tabSize),u=n-l*t.tabSize,d=void 0;return i||(i=[]),void 0===i[l]?i[l]=d=e.repeatString(\"\\t\",l):d=i[l],u?d+e.repeatString(\" \",u):d}n.createTextRangeWithKind=function(n,t,r){var a={pos:n,end:t,kind:r};return e.Debug.isDebugging&&Object.defineProperty(a,\"__debugKind\",{get:function(){return e.Debug.formatSyntaxKind(r)}}),a},function(e){e[e.Unknown=-1]=\"Unknown\"}(t||(t={})),n.formatOnEnter=function(n,t,r){var a=t.getLineAndCharacterOfPosition(n).line;if(0===a)return[];for(var i=e.getEndLinePosition(a,t);e.isWhiteSpaceSingleLine(t.text.charCodeAt(i));)i--;return e.isLineBreak(t.text.charCodeAt(i))&&i--,d({pos:e.getStartPositionOfLine(a-1,t),end:i+1},t,r,2)},n.formatOnSemicolon=function(e,n,t){return u(c(s(e,26,n)),n,t,3)},n.formatOnOpeningCurly=function(n,t,r){var a=s(n,18,t);if(!a)return[];var i=c(a.parent);return d({pos:e.getLineStartPositionForPosition(i.getStart(t),t),end:n},t,r,4)},n.formatOnClosingCurly=function(e,n,t){return u(c(s(e,19,n)),n,t,5)},n.formatDocument=function(e,n){return d({pos:0,end:e.text.length},e,n,0)},n.formatSelection=function(n,t,r,a){return d({pos:e.getLineStartPositionForPosition(n,r),end:t},r,a,1)},n.formatNodeGivenIndentation=function(e,t,r,a,i,o){var s={pos:0,end:t.text.length};return n.getFormattingScanner(t.text,r,s.pos,s.end,(function(n){return p(s,e,a,i,n,o,1,(function(e){return!1}),t)}))},function(e){e[e.None=0]=\"None\",e[e.LineAdded=1]=\"LineAdded\",e[e.LineRemoved=2]=\"LineRemoved\"}(r||(r={})),n.getRangeOfEnclosingComment=function(n,t,r,a){void 0===a&&(a=e.getTokenAtPosition(n,t));var i=e.findAncestor(a,e.isJSDoc);if(i&&(a=i.parent),!(a.getStart(n)<=t&&t<a.getEnd())){var o=(r=null===r?void 0:void 0===r?e.findPrecedingToken(t,n):r)&&e.getTrailingCommentRanges(n.text,r.end),s=e.getLeadingCommentRangesOfNode(a,n),c=e.concatenate(o,s);return c&&e.find(c,(function(r){return e.rangeContainsPositionExclusive(r,t)||t===r.end&&(2===r.kind||t===n.getFullWidth())}))}},n.getIndentationString=m}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r,a;function i(e){return e.baseIndentSize||0}function o(e,n,t,r,a,o,l){for(var u=e.parent;u;){var m=!0;if(t){var f=e.getStart(a);m=f<t.pos||f>t.end}var _=s(u,e,a),y=_.line===n.line||p(u,e,n.line,a);if(m){var v=g(e,a,l,!y);if(-1!==v)return v+r;if(-1!==(v=c(e,u,n,y,a,l)))return v+r}T(l,u,e,a,o)&&!y&&(r+=l.indentSize);var h=d(u,e,n.line,a);u=(e=u).parent,n=h?a.getLineAndCharacterOfPosition(e.getStart(a)):_}return r+i(l)}function s(e,n,t){var r=m(n,t),a=r?r.pos:e.getStart(t);return t.getLineAndCharacterOfPosition(a)}function c(n,t,r,a,i,o){return(e.isDeclaration(n)||e.isStatementButNotDeclaration(n))&&(288===t.kind||!a)?v(r,i,o):-1}function l(n,t,r,a){var i=e.findNextToken(n,t,a);return i?18===i.kind?1:19===i.kind&&r===u(i,a).line?2:0:0}function u(e,n){return n.getLineAndCharacterOfPosition(e.getStart(n))}function d(n,t,r,a){if(!e.isCallExpression(n)||!e.contains(n.arguments,t))return!1;var i=n.expression.getEnd();return e.getLineAndCharacterOfPosition(a,i).line===r}function p(n,t,r,a){if(226===n.kind&&n.elseStatement===t){var i=e.findChildOfKind(n,86,a);return e.Debug.assert(void 0!==i),u(i,a).line===r}return!1}function m(e,n){return e.parent&&f(e.getStart(n),e.getEnd(),e.parent,n)}function f(n,t,r,a){switch(r.kind){case 168:return i(r.typeArguments);case 192:return i(r.properties);case 191:return i(r.elements);case 172:return i(r.members);case 243:case 200:case 201:case 160:case 159:case 164:case 161:case 170:case 165:return i(r.typeParameters)||i(r.parameters);case 244:case 213:case 245:case 246:case 314:return i(r.typeParameters);case 196:case 195:return i(r.typeArguments)||i(r.arguments);case 242:return i(r.declarations);case 256:case 260:return i(r.elements);case 188:case 189:return i(r.elements)}function i(i){return i&&e.rangeContainsStartEnd(function(e,n,t){for(var r=e.getChildren(t),a=1;a<r.length-1;a++)if(r[a].pos===n.pos&&r[a].end===n.end)return{pos:r[a-1].end,end:r[a+1].getStart(t)};return n}(r,i,a),n,t)?i:void 0}}function _(e,n,t){return e?v(n.getLineAndCharacterOfPosition(e.pos),n,t):-1}function g(e,n,t,r){if(e.parent&&242===e.parent.kind)return-1;var a=m(e,n);if(a){var i=a.indexOf(e);if(-1!==i){var o=y(a,i,n,t);if(-1!==o)return o}return _(a,n,t)+(r?t.indentSize:0)}return-1}function y(n,t,r,a){e.Debug.assert(t>=0&&t<n.length);for(var i=u(n[t],r),o=t-1;o>=0;o--)if(27!==n[o].kind){if(r.getLineAndCharacterOfPosition(n[o].end).line!==i.line)return v(i,r,a);i=u(n[o],r)}return-1}function v(e,n,t){var r=n.getPositionOfLineAndCharacter(e.line,0);return b(r,r+e.character,n,t)}function h(n,t,r,a){for(var i=0,o=0,s=n;s<t;s++){var c=r.text.charCodeAt(s);if(!e.isWhiteSpaceSingleLine(c))break;9===c?o+=a.tabSize+o%a.tabSize:o++,i++}return{column:o,character:i}}function b(e,n,t,r){return h(e,n,t,r).column}function E(n,t,r,a,i){var o=r?r.kind:0;switch(t.kind){case 225:case 244:case 213:case 245:case 247:case 246:case 191:case 222:case 249:case 192:case 172:case 185:case 174:case 250:case 276:case 275:case 199:case 193:case 195:case 196:case 224:case 258:case 234:case 209:case 189:case 188:case 266:case 269:case 265:case 274:case 159:case 164:case 165:case 155:case 169:case 170:case 181:case 197:case 205:case 260:case 256:case 261:case 257:case 158:return!0;case 241:case 279:case 208:if(!n.indentMultiLineObjectLiteralBeginningOnBlankLine&&a&&192===o)return function(n,t){var r=e.skipTrivia(n.text,t.pos),a=n.getLineAndCharacterOfPosition(r).line,i=n.getLineAndCharacterOfPosition(t.end).line;return a===i}(a,r);if(208!==t.kind)return!0;break;case 227:case 228:case 230:case 231:case 229:case 226:case 243:case 200:case 160:case 201:case 161:case 162:case 163:return 222!==o;case 259:return 260!==o;case 253:return 254!==o||!!r.namedBindings&&256!==r.namedBindings.kind;case 264:return 267!==o;case 268:return 270!==o;case 178:case 177:if(172===o)return!1}return i}function T(e,n,t,r,a){return void 0===a&&(a=!1),E(e,n,t,r,!1)&&!(a&&t&&function(e,n){switch(e){case 234:case 238:case 232:case 233:return 222!==n.kind;default:return!1}}(t.kind,n))}!function(e){e[e.Unknown=-1]=\"Unknown\"}(r||(r={})),t.getIndentation=function(t,r,a,s){if(void 0===s&&(s=!1),t>r.text.length)return i(a);if(a.indentStyle===e.IndentStyle.None)return 0;var c=e.findPrecedingToken(t,r,void 0,!0),d=n.getRangeOfEnclosingComment(r,t,c||null);if(d&&3===d.kind)return function(n,t,r,a){var i=e.getLineAndCharacterOfPosition(n,t).line-1,o=e.getLineAndCharacterOfPosition(n,a.pos).line;if(e.Debug.assert(o>=0),i<=o)return b(e.getStartPositionOfLine(o,n),t,n,r);var s=e.getStartPositionOfLine(i,n),c=h(s,t,n,r),l=c.column,u=c.character;if(0===l)return l;return 42===n.text.charCodeAt(s+u)?l-1:l}(r,t,a,d);if(!c)return i(a);if(e.isStringOrRegularExpressionOrTemplateLiteral(c.kind)&&c.getStart(r)<=t&&t<c.end)return 0;var p=r.getLineAndCharacterOfPosition(t).line;if(a.indentStyle===e.IndentStyle.Block)return function(n,t,r){var a=t;for(;a>0;){var i=n.text.charCodeAt(a);if(!e.isWhiteSpaceLike(i))break;a--}return b(e.getLineStartPositionForPosition(a,n),a,n,r)}(r,t,a);if(27===c.kind&&208!==c.parent.kind){var m=function(n,t,r){var a=e.findListItemInfo(n);return a&&a.listItemIndex>0?y(a.list.getChildren(),a.listItemIndex-1,t,r):-1}(c,r,a);if(-1!==m)return m}var v=function(e,n,t){return n&&f(e,e,n,t)}(t,c.parent,r);return v&&!e.rangeContainsRange(v,c)?_(v,r,a)+a.indentSize:function(n,t,r,a,s,c){var d,p=r;for(;p;){if(e.positionBelongsToNode(p,t,n)&&T(c,p,d,n,!0)){var m=u(p,n),f=l(r,p,a,n),_=0!==f?s&&2===f?c.indentSize:0:a!==m.line?c.indentSize:0;return o(p,m,void 0,_,n,!0,c)}var y=g(p,n,c,!0);if(-1!==y)return y;d=p,p=p.parent}return i(c)}(r,t,c,p,s,a)},t.getIndentationForNode=function(e,n,t,r){var a=t.getLineAndCharacterOfPosition(e.getStart(t));return o(e,a,n,0,t,!1,r)},t.getBaseIndentation=i,function(e){e[e.Unknown=0]=\"Unknown\",e[e.OpenBrace=1]=\"OpenBrace\",e[e.CloseBrace=2]=\"CloseBrace\"}(a||(a={})),t.isArgumentAndStartLineOverlapsExpressionBeingCalled=d,t.childStartsOnTheSameLineWithElseInIfStatement=p,t.argumentStartsOnSameLineAsPreviousArgument=function(n,t,r,a){if(e.isCallOrNewExpression(n)){if(!n.arguments)return!1;var i=e.find(n.arguments,(function(e){return e.pos===t.pos}));if(!i)return!1;var o=n.arguments.indexOf(i);if(0===o)return!1;var s=n.arguments[o-1];if(r===e.getLineAndCharacterOfPosition(a,s.getEnd()).line)return!0}return!1},t.getContainingList=m,t.findFirstNonWhitespaceCharacterAndColumn=h,t.findFirstNonWhitespaceColumn=b,t.nodeWillIndentChild=E,t.shouldIndentChildNode=T}(n.SmartIndenter||(n.SmartIndenter={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.__pos;return e.Debug.assert(\"number\"==typeof t),t}function r(n,t){e.Debug.assert(\"number\"==typeof t),n.__pos=t}function a(n){var t=n.__end;return e.Debug.assert(\"number\"==typeof t),t}function i(n,t){e.Debug.assert(\"number\"==typeof t),n.__end=t}var o,s;function c(n,t){return e.skipTrivia(n,t,!1,!0)}!function(e){e[e.Exclude=0]=\"Exclude\",e[e.IncludeAll=1]=\"IncludeAll\"}(o=n.LeadingTriviaOption||(n.LeadingTriviaOption={})),function(e){e[e.Exclude=0]=\"Exclude\",e[e.Include=1]=\"Include\"}(s=n.TrailingTriviaOption||(n.TrailingTriviaOption={}));var l,u={leadingTriviaOption:o.Exclude,trailingTriviaOption:s.Exclude};function d(e,n,t,r){return{pos:p(e,n,r),end:m(e,t,r)}}function p(n,t,r){var a=r.leadingTriviaOption;if(a===o.Exclude)return t.getStart(n);var i=t.getFullStart(),s=t.getStart(n);if(i===s)return s;var l=e.getLineStartPositionForPosition(i,n);if(e.getLineStartPositionForPosition(s,n)===l)return a===o.IncludeAll?i:s;var u=i>0?1:0,d=e.getStartPositionOfLine(e.getLineOfLocalPosition(n,l)+u,n);return d=c(n.text,d),e.getStartPositionOfLine(e.getLineOfLocalPosition(n,d),n)}function m(n,t,r){var a=t.end,i=r.trailingTriviaOption;if(i===s.Exclude||e.isExpression(t)&&i!==s.Include)return a;var o=e.skipTrivia(n.text,a,!0);return o===a||i!==s.Include&&!e.isLineBreak(n.text.charCodeAt(o-1))?a:o}function f(e,n){return!!n&&!!e.parent&&(27===n.kind||26===n.kind&&192===e.parent.kind)}!function(e){e[e.Remove=0]=\"Remove\",e[e.ReplaceWithSingleNode=1]=\"ReplaceWithSingleNode\",e[e.ReplaceWithMultipleNodes=2]=\"ReplaceWithMultipleNodes\",e[e.Text=3]=\"Text\"}(l||(l={})),n.isThisTypeAnnotatable=function(n){return e.isFunctionExpression(n)||e.isFunctionDeclaration(n)};var _,g,y=function(){function n(n,t){this.newLineCharacter=n,this.formatContext=t,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=e.createMap(),this.deletedNodes=[]}return n.fromContext=function(t){return new n(e.getNewLineOrDefaultFromHost(t.host,t.formatContext.options),t.formatContext)},n.with=function(e,t){var r=n.fromContext(e);return t(r),r.getChanges()},n.prototype.pushRaw=function(n,t){e.Debug.assertEqual(n.fileName,t.fileName);for(var r=0,a=t.textChanges;r<a.length;r++){var i=a[r];this.changes.push({kind:l.Text,sourceFile:n,text:i.newText,range:e.createTextRangeFromSpan(i.span)})}},n.prototype.deleteRange=function(e,n){this.changes.push({kind:l.Remove,sourceFile:e,range:n})},n.prototype.delete=function(e,n){this.deletedNodes.push({sourceFile:e,node:n})},n.prototype.deleteModifier=function(n,t){this.deleteRange(n,{pos:t.getStart(n),end:e.skipTrivia(n.text,t.end,!0)})},n.prototype.deleteNodeRange=function(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(e,n,r),i=m(e,t,r);this.deleteRange(e,{pos:a,end:i})},n.prototype.deleteNodeRangeExcludingEnd=function(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(e,n,r),i=void 0===t?e.text.length:p(e,t,r);this.deleteRange(e,{pos:a,end:i})},n.prototype.replaceRange=function(e,n,t,r){void 0===r&&(r={}),this.changes.push({kind:l.ReplaceWithSingleNode,sourceFile:e,range:n,options:r,node:t})},n.prototype.replaceNode=function(e,n,t,r){void 0===r&&(r=u),this.replaceRange(e,d(e,n,n,r),t,r)},n.prototype.replaceNodeRange=function(e,n,t,r,a){void 0===a&&(a=u),this.replaceRange(e,d(e,n,t,a),r,a)},n.prototype.replaceRangeWithNodes=function(e,n,t,r){void 0===r&&(r={}),this.changes.push({kind:l.ReplaceWithMultipleNodes,sourceFile:e,range:n,options:r,nodes:t})},n.prototype.replaceNodeWithNodes=function(e,n,t,r){void 0===r&&(r=u),this.replaceRangeWithNodes(e,d(e,n,n,r),t,r)},n.prototype.replaceNodeWithText=function(e,n,t){this.replaceRangeWithText(e,d(e,n,n,u),t)},n.prototype.replaceNodeRangeWithNodes=function(e,n,t,r,a){void 0===a&&(a=u),this.replaceRangeWithNodes(e,d(e,n,t,a),r,a)},n.prototype.nextCommaToken=function(n,t){var r=e.findNextToken(t,t.parent,n);return r&&27===r.kind?r:void 0},n.prototype.replacePropertyAssignment=function(e,n,t){var r=this.nextCommaToken(e,n)?\"\":\",\"+this.newLineCharacter;this.replaceNode(e,n,t,{suffix:r})},n.prototype.insertNodeAt=function(n,t,r,a){void 0===a&&(a={}),this.replaceRange(n,e.createRange(t),r,a)},n.prototype.insertNodesAt=function(n,t,r,a){void 0===a&&(a={}),this.replaceRangeWithNodes(n,e.createRange(t),r,a)},n.prototype.insertNodeAtTopOfFile=function(n,t,r){var a=function(n){for(var t,r=0,a=n.statements;r<a.length;r++){var i=a[r];if(!e.isPrologueDirective(i))break;t=i}var o=0,s=n.text;if(t)return o=t.end,m(),o;var c=e.getShebang(s);void 0!==c&&(o=c.length,m());var l=e.getLeadingCommentRanges(s,o);if(!l)return o;l.length&&3===l[0].kind&&e.isPinnedComment(s,l[0].pos)&&(o=l[0].end,m(),l=l.slice(1));for(var u=0,d=l;u<d.length;u++){var p=d[u];if(2!==p.kind||!e.isRecognizedTripleSlashComment(s,p.pos,p.end))break;o=p.end,m()}return o;function m(){if(o<s.length){var n=s.charCodeAt(o);e.isLineBreak(n)&&++o<s.length&&13===n&&10===s.charCodeAt(o)&&o++}}}(n);this.insertNodeAt(n,a,t,{prefix:0===a?void 0:this.newLineCharacter,suffix:(e.isLineBreak(n.text.charCodeAt(a))?\"\":this.newLineCharacter)+(r?this.newLineCharacter:\"\")})},n.prototype.insertNodeBefore=function(e,n,t,r){void 0===r&&(r=!1),this.insertNodeAt(e,p(e,n,{}),t,this.getOptionsForInsertNodeBefore(n,r))},n.prototype.insertModifierBefore=function(n,t,r){var a=r.getStart(n);this.insertNodeAt(n,a,e.createToken(t),{suffix:\" \"})},n.prototype.insertLastModifierBefore=function(n,t,r){if(r.modifiers){var a=r.modifiers.end;this.insertNodeAt(n,a,e.createToken(t),{prefix:\" \"})}else this.insertModifierBefore(n,t,r)},n.prototype.insertCommentBeforeLine=function(n,t,r,a){var i=e.getStartPositionOfLine(t,n),o=e.getFirstNonSpaceCharacterPosition(n.text,i),s=x(n,o),c=e.getTouchingToken(n,s?o:r),l=n.text.slice(i,o),u=(s?\"\":this.newLineCharacter)+\"//\"+a+this.newLineCharacter+l;this.insertText(n,c.getStart(n),u)},n.prototype.insertJsdocCommentBefore=function(n,t,r){var a=t.getStart(n);if(t.jsDoc)for(var i=0,o=t.jsDoc;i<o.length;i++){var s=o[i];this.deleteRange(n,{pos:e.getLineStartPositionForPosition(s.getStart(n),n),end:m(n,s,{})})}var c=e.getPrecedingNonSpaceCharacterPosition(n.text,a-1),l=n.text.slice(c,a);this.insertNodeAt(n,a,r,{preserveLeadingWhitespace:!1,suffix:this.newLineCharacter+l})},n.prototype.replaceRangeWithText=function(e,n,t){this.changes.push({kind:l.Text,sourceFile:e,range:n,text:t})},n.prototype.insertText=function(n,t,r){this.replaceRangeWithText(n,e.createRange(t),r)},n.prototype.tryInsertTypeAnnotation=function(n,t,r){var a;if(e.isFunctionLike(t)){if(!(a=e.findChildOfKind(t,21,n))){if(!e.isArrowFunction(t))return!1;a=e.first(t.parameters)}}else a=241!==t.kind&&t.questionToken?t.questionToken:t.name;return this.insertNodeAt(n,a.end,r,{prefix:\": \"}),!0},n.prototype.tryInsertThisTypeAnnotation=function(n,t,r){var a=e.findChildOfKind(t,20,n).getStart(n)+1,i=t.parameters.length?\", \":\"\";this.insertNodeAt(n,a,r,{prefix:\"this: \",suffix:i})},n.prototype.insertTypeParameters=function(n,t,r){var a=(e.findChildOfKind(t,20,n)||e.first(t.parameters)).getStart(n);this.insertNodesAt(n,a,r,{prefix:\"<\",suffix:\">\"})},n.prototype.getOptionsForInsertNodeBefore=function(n,t){return e.isStatement(n)||e.isClassElement(n)?{suffix:t?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(n)?{suffix:\", \"}:e.isParameter(n)?{}:e.isStringLiteral(n)&&e.isImportDeclaration(n.parent)||e.isNamedImports(n)?{suffix:\", \"}:e.Debug.failBadSyntaxKind(n)},n.prototype.insertNodeAtConstructorStart=function(n,t,r){var a=e.firstOrUndefined(t.body.statements);a&&t.body.multiLine?this.insertNodeBefore(n,a,r):this.replaceConstructorBody(n,t,__spreadArrays([r],t.body.statements))},n.prototype.insertNodeAtConstructorEnd=function(n,t,r){var a=e.lastOrUndefined(t.body.statements);a&&t.body.multiLine?this.insertNodeAfter(n,a,r):this.replaceConstructorBody(n,t,__spreadArrays(t.body.statements,[r]))},n.prototype.replaceConstructorBody=function(n,t,r){this.replaceNode(n,t.body,e.createBlock(r,!0))},n.prototype.insertNodeAtEndOfScope=function(n,t,r){var a=p(n,t.getLastToken(),{});this.insertNodeAt(n,a,r,{prefix:e.isLineBreak(n.text.charCodeAt(t.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},n.prototype.insertNodeAtClassStart=function(e,n,t){this.insertNodeAtStartWorker(e,n,t)},n.prototype.insertNodeAtObjectStart=function(e,n,t){this.insertNodeAtStartWorker(e,n,t)},n.prototype.insertNodeAtStartWorker=function(n,t,r){var a=t.getStart(n),i=e.formatting.SmartIndenter.findFirstNonWhitespaceColumn(e.getLineStartPositionForPosition(a,n),a,n,this.formatContext.options)+this.formatContext.options.indentSize;this.insertNodeAt(n,b(t).pos,r,__assign({indentation:i},this.getInsertNodeAtStartPrefixSuffix(n,t)))},n.prototype.getInsertNodeAtStartPrefixSuffix=function(n,t){var r=e.isObjectLiteralExpression(t)?\",\":\"\";if(0===b(t).length){if(e.addToSeen(this.classesWithNodesInsertedAtStart,e.getNodeId(t),{node:t,sourceFile:n})){var a=e.positionsAreOnSameLine.apply(void 0,__spreadArrays(h(t,n),[n]));return{prefix:this.newLineCharacter,suffix:r+(a?this.newLineCharacter:\"\")}}return{prefix:\"\",suffix:r+this.newLineCharacter}}return{prefix:this.newLineCharacter,suffix:r}},n.prototype.insertNodeAfterComma=function(e,n,t){var r=this.insertNodeAfterWorker(e,this.nextCommaToken(e,n)||n,t);this.insertNodeAt(e,r,t,this.getInsertNodeAfterOptions(e,n))},n.prototype.insertNodeAfter=function(e,n,t){var r=this.insertNodeAfterWorker(e,n,t);this.insertNodeAt(e,r,t,this.getInsertNodeAfterOptions(e,n))},n.prototype.insertNodeAtEndOfList=function(e,n,t){this.insertNodeAt(e,n.end,t,{prefix:\", \"})},n.prototype.insertNodesAfter=function(n,t,r){var a=this.insertNodeAfterWorker(n,t,e.first(r));this.insertNodesAt(n,a,r,this.getInsertNodeAfterOptions(n,t))},n.prototype.insertNodeAfterWorker=function(n,t,r){var a,i;return a=t,i=r,((e.isPropertySignature(a)||e.isPropertyDeclaration(a))&&e.isClassOrTypeElement(i)&&153===i.name.kind||e.isStatementButNotDeclaration(a)&&e.isStatementButNotDeclaration(i))&&59!==n.text.charCodeAt(t.end-1)&&this.replaceRange(n,e.createRange(t.end),e.createToken(26)),m(n,t,{})},n.prototype.getInsertNodeAfterOptions=function(n,t){var r=this.getInsertNodeAfterOptionsWorker(t);return __assign(__assign({},r),{prefix:t.end===n.end&&e.isStatement(t)?r.prefix?\"\\n\"+r.prefix:\"\\n\":r.prefix})},n.prototype.getInsertNodeAfterOptionsWorker=function(n){switch(n.kind){case 244:case 248:return{prefix:this.newLineCharacter,suffix:this.newLineCharacter};case 241:case 10:case 75:return{prefix:\", \"};case 279:return{suffix:\",\"+this.newLineCharacter};case 88:return{prefix:\" \"};case 155:return{};default:return e.Debug.assert(e.isStatement(n)||e.isClassOrTypeElement(n)),{suffix:this.newLineCharacter}}},n.prototype.insertName=function(n,t,r){if(e.Debug.assert(!t.name),201===t.kind){var a=e.findChildOfKind(t,38,n),i=e.findChildOfKind(t,20,n);i?(this.insertNodesAt(n,i.getStart(n),[e.createToken(93),e.createIdentifier(r)],{joiner:\" \"}),L(this,n,a)):(this.insertText(n,e.first(t.parameters).getStart(n),\"function \"+r+\"(\"),this.replaceRange(n,a,e.createToken(21))),222!==t.body.kind&&(this.insertNodesAt(n,t.body.getStart(n),[e.createToken(18),e.createToken(100)],{joiner:\" \",suffix:\" \"}),this.insertNodesAt(n,t.body.end,[e.createToken(26),e.createToken(19)],{joiner:\" \"}))}else{var o=e.findChildOfKind(t,200===t.kind?93:79,n).end;this.insertNodeAt(n,o,e.createIdentifier(r),{prefix:\" \"})}},n.prototype.insertExportModifier=function(e,n){this.insertText(e,n.getStart(e),\"export \")},n.prototype.insertNodeInListAfter=function(n,t,r,a){if(void 0===a&&(a=e.formatting.SmartIndenter.getContainingList(t,n)),a){var i=e.indexOfNode(a,t);if(!(i<0)){var o=t.getEnd();if(i!==a.length-1){var s=e.getTokenAtPosition(n,t.end);if(s&&f(t,s)){var l=e.getLineAndCharacterOfPosition(n,c(n.text,a[i+1].getFullStart())),u=e.getLineAndCharacterOfPosition(n,s.end),d=void 0,p=void 0;u.line===l.line?(p=s.end,d=function(e){for(var n=\"\",t=0;t<e;t++)n+=\" \";return n}(l.character-u.character)):p=e.getStartPositionOfLine(l.line,n);var m=\"\"+e.tokenToString(s.kind)+n.text.substring(s.end,a[i+1].getStart(n));this.replaceRange(n,e.createRange(p,a[i+1].getStart(n)),r,{prefix:d,suffix:m})}}else{var _=t.getStart(n),g=e.getLineStartPositionForPosition(_,n),y=void 0,v=!1;if(1===a.length)y=27;else{var h=e.findPrecedingToken(t.pos,n);y=f(t,h)?h.kind:27,v=e.getLineStartPositionForPosition(a[i-1].getStart(n),n)!==g}if(function(n,t){for(var r=t;r<n.length;){var a=n.charCodeAt(r);if(!e.isWhiteSpaceSingleLine(a))return 47===a;r++}return!1}(n.text,t.end)&&(v=!0),v){this.replaceRange(n,e.createRange(o),e.createToken(y));var b=e.formatting.SmartIndenter.findFirstNonWhitespaceColumn(g,_,n,this.formatContext.options),E=e.skipTrivia(n.text,o,!0,!1);E!==o&&e.isLineBreak(n.text.charCodeAt(E-1))&&E--,this.replaceRange(n,e.createRange(E),r,{indentation:b,prefix:this.newLineCharacter})}else this.replaceRange(n,e.createRange(o),r,{prefix:e.tokenToString(y)+\" \"})}}}else e.Debug.fail(\"node is not a list element\")},n.prototype.parenthesizeExpression=function(n,t){this.replaceRange(n,e.rangeOfNode(t),e.createParen(t))},n.prototype.finishClassesWithNodesInsertedAtStart=function(){var n=this;this.classesWithNodesInsertedAtStart.forEach((function(t){var r=t.node,a=t.sourceFile,i=h(r,a),o=i[0],s=i[1];e.positionsAreOnSameLine(o,s,a)&&o!==s-1&&n.deleteRange(a,e.createRange(o,s-1))}))},n.prototype.finishDeleteDeclarations=function(){for(var n=this,t=new e.NodeSet,r=function(n,r){a.deletedNodes.some((function(t){return t.sourceFile===n&&e.rangeContainsRangeExclusive(t.node,r)}))||(e.isArray(r)?a.deleteRange(n,e.rangeOfTypeParameters(r)):g.deleteDeclaration(a,t,n,r))},a=this,i=0,o=this.deletedNodes;i<o.length;i++){var s=o[i];r(s.sourceFile,s.node)}t.forEach((function(r){var a=r.getSourceFile(),i=e.formatting.SmartIndenter.getContainingList(r,a);if(r===e.last(i)){var o=e.findLastIndex(i,(function(e){return!t.has(e)}),i.length-2);-1!==o&&n.deleteRange(a,{pos:i[o].end,end:v(a,i[o+1])})}}))},n.prototype.getChanges=function(e){this.finishDeleteDeclarations(),this.finishClassesWithNodesInsertedAtStart();for(var n=_.getTextChangesFromChanges(this.changes,this.newLineCharacter,this.formatContext,e),t=0,r=this.newFiles;t<r.length;t++){var a=r[t],i=a.oldFile,o=a.fileName,s=a.statements;n.push(_.newFileChanges(i,o,s,this.newLineCharacter,this.formatContext))}return n},n.prototype.createNewFile=function(e,n,t){this.newFiles.push({oldFile:e,fileName:n,statements:t})},n}();function v(n,t){return e.skipTrivia(n.text,p(n,t,{leadingTriviaOption:o.IncludeAll}),!1,!0)}function h(n,t){return[e.findChildOfKind(n,18,t).end,e.findChildOfKind(n,19,t).end]}function b(n){return e.isObjectLiteralExpression(n)?n.properties:n.members}function E(n,t){for(var r=t.length-1;r>=0;r--){var a=t[r],i=a.span,o=a.newText;n=\"\"+n.substring(0,i.start)+o+n.substring(e.textSpanEnd(i))}return n}function T(n){var r=e.visitEachChild(n,T,e.nullTransformationContext,S,T),i=e.nodeIsSynthesized(r)?r:Object.create(r);return i.pos=t(n),i.end=a(n),i}function S(n,r,i,o,s){var c=e.visitNodes(n,r,i,o,s);if(!c)return c;var l=c===n?e.createNodeArray(c.slice(0)):c;return l.pos=t(n),l.end=a(n),l}function x(n,t){return!(e.isInComment(n,t)||e.isInString(n,t)||e.isInTemplateString(n,t)||e.isInJSXText(n,t))}function L(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(n,t,r),i=m(n,t,r);e.deleteRange(n,{pos:a,end:i})}function C(n,t,r,a){var i=e.Debug.assertDefined(e.formatting.SmartIndenter.getContainingList(a,r)),o=e.indexOfNode(i,a);e.Debug.assert(-1!==o),1!==i.length?(e.Debug.assert(!t.has(a),\"Deleting a node twice\"),t.add(a),n.deleteRange(r,{pos:v(r,a),end:o===i.length-1?m(r,a,{}):v(r,i[o+1])})):L(n,r,a)}n.ChangeTracker=y,n.getNewFileText=function(e,n,t,r){return _.newFileChangesWorker(void 0,n,e,t,r)},function(n){function t(n,t,r,i,o){var s=r.map((function(e){return a(e,n,i).text})).join(i),c=e.createSourceFile(\"any file name\",s,99,!0,t);return E(s,e.formatting.formatDocument(c,o))+i}function a(n,t,a){var o=function(n){var t=0,a=e.createTextWriter(n);function o(n,r){if(r||!function(n){return e.skipTrivia(n,0)===n.length}(n)){t=a.getTextPos();for(var i=0;e.isWhiteSpaceLike(n.charCodeAt(n.length-i-1));)i++;t-=i}}return{onEmitNode:function(e,n,a){n&&r(n,t),a(e,n),n&&i(n,t)},onBeforeEmitNodeArray:function(e){e&&r(e,t)},onAfterEmitNodeArray:function(e){e&&i(e,t)},onBeforeEmitToken:function(e){e&&r(e,t)},onAfterEmitToken:function(e){e&&i(e,t)},write:function(e){a.write(e),o(e,!1)},writeComment:function(e){a.writeComment(e)},writeKeyword:function(e){a.writeKeyword(e),o(e,!1)},writeOperator:function(e){a.writeOperator(e),o(e,!1)},writePunctuation:function(e){a.writePunctuation(e),o(e,!1)},writeTrailingSemicolon:function(e){a.writeTrailingSemicolon(e),o(e,!1)},writeParameter:function(e){a.writeParameter(e),o(e,!1)},writeProperty:function(e){a.writeProperty(e),o(e,!1)},writeSpace:function(e){a.writeSpace(e),o(e,!1)},writeStringLiteral:function(e){a.writeStringLiteral(e),o(e,!1)},writeSymbol:function(e,n){a.writeSymbol(e,n),o(e,!1)},writeLine:function(){a.writeLine()},increaseIndent:function(){a.increaseIndent()},decreaseIndent:function(){a.decreaseIndent()},getText:function(){return a.getText()},rawWrite:function(e){a.rawWrite(e),o(e,!1)},writeLiteral:function(e){a.writeLiteral(e),o(e,!0)},getTextPos:function(){return a.getTextPos()},getLine:function(){return a.getLine()},getColumn:function(){return a.getColumn()},getIndent:function(){return a.getIndent()},isAtStartOfLine:function(){return a.isAtStartOfLine()},hasTrailingComment:function(){return a.hasTrailingComment()},hasTrailingWhitespace:function(){return a.hasTrailingWhitespace()},clear:function(){a.clear(),t=0}}}(a),s=\"\\n\"===a?1:0;return e.createPrinter({newLine:s,neverAsciiEscape:!0},o).writeNode(4,n,t,o),{text:o.getText(),node:T(n)}}n.getTextChangesFromChanges=function(n,t,r,i){return e.group(n,(function(e){return e.sourceFile.path})).map((function(n){for(var o=n[0].sourceFile,s=e.stableSort(n,(function(e,n){return e.range.pos-n.range.pos||e.range.end-n.range.end})),c=function(n){e.Debug.assert(s[n].range.end<=s[n+1].range.pos,\"Changes overlap\",(function(){return JSON.stringify(s[n].range)+\" and \"+JSON.stringify(s[n+1].range)}))},u=0;u<s.length-1;u++)c(u);var d=s.map((function(n){return e.createTextChange(e.createTextSpanFromRange(n.range),function(n,t,r,i,o){if(n.kind===l.Remove)return\"\";if(n.kind===l.Text)return n.text;var s=n.options,c=void 0===s?{}:s,u=n.range.pos,d=function(n){return function(n,t,r,i,o,s,c){var l=i.indentation,u=i.prefix,d=i.delta,p=a(n,t,o),m=p.node,f=p.text;c&&c(m,f);var _=function(n,t){var r=n.options,a=!r.semicolons||r.semicolons===e.SemicolonPreference.Ignore,i=r.semicolons===e.SemicolonPreference.Remove||a&&!e.probablyUsesSemicolons(t);return __assign(__assign({},r),{semicolons:i?e.SemicolonPreference.Remove:e.SemicolonPreference.Ignore})}(s,t),g=void 0!==l?l:e.formatting.SmartIndenter.getIndentation(r,t,_,u===o||e.getLineStartPositionForPosition(r,t)===r);void 0===d&&(d=e.formatting.SmartIndenter.shouldIndentChildNode(_,n)&&_.indentSize||0);var y={text:f,getLineAndCharacterOfPosition:function(n){return e.getLineAndCharacterOfPosition(this,n)}},v=e.formatting.formatNodeGivenIndentation(m,y,t.languageVariant,g,d,__assign(__assign({},s),{options:_}));return E(f,v)}(n,t,u,c,r,i,o)},p=n.kind===l.ReplaceWithMultipleNodes?n.nodes.map((function(n){return e.removeSuffix(d(n),r)})).join(n.options.joiner||r):d(n.node),m=c.preserveLeadingWhitespace||void 0!==c.indentation||e.getLineStartPositionForPosition(u,t)===u?p:p.replace(/^\\s+/,\"\");return(c.prefix||\"\")+m+(c.suffix||\"\")}(n,o,t,r,i))}));return{fileName:o.fileName,textChanges:d}}))},n.newFileChanges=function(n,r,a,i,o){var s=t(n,e.getScriptKindFromFileName(r),a,i,o);return{fileName:r,textChanges:[e.createTextChange(e.createTextSpan(0,0),s)],isNewFile:!0}},n.newFileChangesWorker=t,n.getNonformattedText=a}(_||(_={})),n.applyChanges=E,n.isValidLocationToAddComment=x,function(n){function t(n,t,r){if(r.parent.name){var a=e.Debug.assertDefined(e.getTokenAtPosition(t,r.pos-1));n.deleteRange(t,{pos:a.getStart(t),end:r.end})}else{L(n,t,e.getAncestor(r,253))}}n.deleteDeclaration=function(n,r,a,i){switch(i.kind){case 155:var c=i.parent;e.isArrowFunction(c)&&1===c.parameters.length&&!e.findChildOfKind(c,20,a)?n.replaceNodeWithText(a,i,\"()\"):C(n,r,a,i);break;case 253:L(n,a,i,i===a.imports[0].parent?{leadingTriviaOption:o.Exclude}:void 0);break;case 190:var l=i.parent;189===l.kind&&i!==e.last(l.elements)?L(n,a,i):C(n,r,a,i);break;case 241:!function(n,t,r,a){var i=a.parent;if(278===i.kind)return void n.deleteNodeRange(r,e.findChildOfKind(i,20,r),e.findChildOfKind(i,21,r));if(1!==i.declarations.length)return void C(n,t,r,a);var o=i.parent;switch(o.kind){case 231:case 230:n.replaceNode(r,a,e.createObjectLiteral());break;case 229:L(n,r,i);break;case 224:L(n,r,o);break;default:e.Debug.assertNever(o)}}(n,r,a,i);break;case 154:C(n,r,a,i);break;case 257:var u=i.parent;1===u.elements.length?t(n,a,u):C(n,r,a,i);break;case 255:t(n,a,i);break;default:e.isImportClause(i.parent)&&i.parent.name===i?function(n,t,r){if(r.namedBindings){var a=r.name.getStart(t),i=e.getTokenAtPosition(t,r.name.end);if(i&&27===i.kind){var o=e.skipTrivia(t.text,i.end,!1,!0);n.deleteRange(t,{pos:a,end:o})}else L(n,t,r.name)}else L(n,t,r.parent)}(n,a,i.parent):e.isCallLikeExpression(i.parent)?C(n,r,a,i):L(n,a,i,26===i.kind?{trailingTriviaOption:s.Exclude}:void 0)}}}(g||(g={})),n.deleteNode=L}(e.textChanges||(e.textChanges={}))}(ts||(ts={})),function(e){!function(n){var t=e.createMultiMap(),r=e.createMap();function a(n){return e.isArray(n)?e.formatStringFromArgs(e.getLocaleSpecificMessage(n[0]),n.slice(1)):e.getLocaleSpecificMessage(n)}function i(e,n,t,r,a,i){return{fixName:e,description:n,changes:t,fixId:r,fixAllDescription:a,commands:i?[i]:void 0}}function o(e,n){return{changes:e,commands:n}}function s(n,t,r){for(var a=n.program,i=n.sourceFile,o=n.cancellationToken,s=0,c=a.getSemanticDiagnostics(i,o).concat(e.computeSuggestionDiagnostics(i,a,o));s<c.length;s++){var l=c[s];e.contains(t,l.code)&&r(l)}}n.createCodeFixActionNoFixId=function(e,n,t){return i(e,a(t),n,void 0,void 0)},n.createCodeFixAction=function(e,n,t,r,o,s){return i(e,a(t),n,r,a(o),s)},n.registerCodeFix=function(n){for(var a=0,i=n.errorCodes;a<i.length;a++){var o=i[a];t.add(String(o),n)}if(n.fixIds)for(var s=0,c=n.fixIds;s<c.length;s++){var l=c[s];e.Debug.assert(!r.has(l)),r.set(l,n)}},n.getSupportedErrorCodes=function(){return e.arrayFrom(t.keys())},n.getFixes=function(n){return e.flatMap(t.get(String(n.errorCode))||e.emptyArray,(function(e){return e.getCodeActions(n)}))},n.getAllFixes=function(n){return r.get(e.cast(n.fixId,e.isString)).getAllCodeActions(n)},n.createCombinedCodeActions=o,n.createFileTextChanges=function(e,n){return{fileName:e,textChanges:n}},n.codeFixAll=function(n,t,r){var a=[];return o(e.textChanges.ChangeTracker.with(n,(function(e){return s(n,t,(function(n){return r(e,n,a)}))})),0===a.length?void 0:a)},n.eachDiagnostic=s}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){var n,t;n=e.refactor||(e.refactor={}),t=e.createMap(),n.registerRefactor=function(e,n){t.set(e,n)},n.getApplicableRefactors=function(n){return e.arrayFrom(e.flatMapIterator(t.values(),(function(e){return n.cancellationToken&&n.cancellationToken.isCancellationRequested()?void 0:e.getAvailableActions(n)})))},n.getEditsForRefactor=function(e,n,r){var a=t.get(n);return a&&a.getEditsForAction(e,r)},e.getRefactorContextSpan=function(n){var t=n.startPosition,r=n.endPosition;return e.createTextSpanFromBounds(t,void 0===r?t:r)}}(ts||(ts={})),function(e){!function(n){var t=\"addConvertToUnknownForNonOverlappingTypes\",r=[e.Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.Debug.assertDefined(e.findAncestor(a,(function(n){return e.isAsExpression(n)||e.isTypeAssertion(n)})),\"Expected to find an assertion expression\"),o=e.isAsExpression(i)?e.createAsExpression(i.expression,e.createKeywordTypeNode(147)):e.createTypeAssertion(e.createKeywordTypeNode(147),i.expression);n.replaceNode(t,i.expression,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Add_unknown_conversion_for_non_overlapping_types,t,e.Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingAwait\",r=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,a=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],i=__spreadArrays([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,r],a);function o(t,r,a,o,s,c){var d=t.sourceFile,p=t.program,m=t.cancellationToken,f=function(n,t,r,a,o){var s=function(n,t){if(e.isPropertyAccessExpression(n.parent)&&e.isIdentifier(n.parent.expression))return{identifiers:[n.parent.expression],isCompleteFix:!0};if(e.isIdentifier(n))return{identifiers:[n],isCompleteFix:!0};if(e.isBinaryExpression(n)){for(var r=void 0,a=!0,i=0,o=[n.left,n.right];i<o.length;i++){var s=o[i],c=t.getTypeAtLocation(s);if(t.getPromisedTypeOfPromise(c)){if(!e.isIdentifier(s)){a=!1;continue}(r||(r=[])).push(s)}}return r&&{identifiers:r,isCompleteFix:a}}}(n,o);if(!s)return;for(var c,u=s.isCompleteFix,d=function(n){var s=o.getSymbolAtLocation(n);if(!s)return\"continue\";var d=e.tryCast(s.valueDeclaration,e.isVariableDeclaration),p=d&&e.tryCast(d.name,e.isIdentifier),m=e.getAncestor(d,224);if(!d||!m||d.type||!d.initializer||m.getSourceFile()!==t||e.hasModifier(m,1)||!p||!l(d.initializer))return u=!1,\"continue\";var f=a.getSemanticDiagnostics(t,r);if(e.FindAllReferences.Core.eachSymbolReferenceInFile(p,o,t,(function(r){return n!==r&&!function(n,t,r,a){var o=e.isPropertyAccessExpression(n.parent)?n.parent.name:e.isBinaryExpression(n.parent)?n.parent:n,s=e.find(t,(function(e){return e.start===o.getStart(r)&&e.start+e.length===o.getEnd()}));return s&&e.contains(i,s.code)||1&a.getTypeAtLocation(o).flags}(r,f,t,o)})))return u=!1,\"continue\";(c||(c=[])).push({expression:d.initializer,declarationSymbol:s})},p=0,m=s.identifiers;p<m.length;p++){var f=m[p];d(f)}return c&&{initializers:c,needsSecondPassForFixAll:!u}}(r,d,m,p,o);if(f){var _=s((function(n){e.forEach(f.initializers,(function(e){var t=e.expression;return u(n,a,d,o,t,c)})),c&&f.needsSecondPassForFixAll&&u(n,a,d,o,r,c)}));return n.createCodeFixActionNoFixId(\"addMissingAwaitToInitializer\",_,1===f.initializers.length?[e.Diagnostics.Add_await_to_initializer_for_0,f.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function s(r,a,i,o,s,c){var l=s((function(e){return u(e,i,r.sourceFile,o,a,c)}));return n.createCodeFixAction(t,l,e.Diagnostics.Add_await,t,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function c(n,t,r,a,i){var o=e.getTokenAtPosition(n,r.start),s=e.findAncestor(o,(function(t){return t.getStart(n)<r.start||t.getEnd()>e.textSpanEnd(r)?\"quit\":e.isExpression(t)&&e.textSpansEqual(r,e.createTextSpanFromNode(t,n))}));return s&&function(n,t,r,a,i){var o=i.getDiagnosticsProducingTypeChecker().getDiagnostics(n,a);return e.some(o,(function(n){var a=n.start,i=n.length,o=n.relatedInformation,s=n.code;return e.isNumber(a)&&e.isNumber(i)&&e.textSpansEqual({start:a,length:i},r)&&s===t&&!!o&&e.some(o,(function(n){return n.code===e.Diagnostics.Did_you_forget_to_use_await.code}))}))}(n,t,r,a,i)&&l(s)?s:void 0}function l(n){return 32768&n.kind||!!e.findAncestor(n,(function(n){return n.parent&&e.isArrowFunction(n.parent)&&n.parent.body===n||e.isBlock(n)&&(243===n.parent.kind||200===n.parent.kind||201===n.parent.kind||160===n.parent.kind)}))}function u(n,t,i,o,s,c){if(e.isBinaryExpression(s))for(var l=0,u=[s.left,s.right];l<u.length;l++){var d=u[l];if(c&&e.isIdentifier(d))if((f=o.getSymbolAtLocation(d))&&c.has(e.getSymbolId(f).toString()))continue;var p=o.getTypeAtLocation(d),m=o.getPromisedTypeOfPromise(p)?e.createAwait(d):d;n.replaceNode(i,d,m)}else if(t===r&&e.isPropertyAccessExpression(s.parent)){if(c&&e.isIdentifier(s.parent.expression))if((f=o.getSymbolAtLocation(s.parent.expression))&&c.has(e.getSymbolId(f).toString()))return;n.replaceNode(i,s.parent.expression,e.createParen(e.createAwait(s.parent.expression)))}else if(e.contains(a,t)&&e.isCallOrNewExpression(s.parent)){if(c&&e.isIdentifier(s))if((f=o.getSymbolAtLocation(s))&&c.has(e.getSymbolId(f).toString()))return;n.replaceNode(i,s,e.createParen(e.createAwait(s)))}else{var f;if(c&&e.isVariableDeclaration(s.parent)&&e.isIdentifier(s.parent.name))if((f=o.getSymbolAtLocation(s.parent.name))&&!e.addToSeen(c,e.getSymbolId(f)))return;n.replaceNode(i,s,e.createAwait(s))}}n.registerCodeFix({fixIds:[t],errorCodes:i,getCodeActions:function(n){var t=n.sourceFile,r=n.errorCode,a=c(t,r,n.span,n.cancellationToken,n.program);if(a){var i=n.program.getTypeChecker(),l=function(t){return e.textChanges.ChangeTracker.with(n,t)};return e.compact([o(n,a,r,i,l),s(n,a,r,i,l)])}},getAllCodeActions:function(t){var r=t.sourceFile,a=t.program,l=t.cancellationToken,u=t.program.getTypeChecker(),d=e.createMap();return n.codeFixAll(t,i,(function(e,n){var i=c(r,n.code,n,l,a);if(i){var p=function(n){return n(e),[]};return o(t,i,n.code,u,p,d)||s(t,i,n.code,u,p,d)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingConst\",r=[e.Diagnostics.Cannot_find_name_0.code,e.Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code];function a(n,t,r,a,o){var s=e.getTokenAtPosition(t,r),c=e.findAncestor(s,(function(n){return e.isForInOrOfStatement(n.parent)?n.parent.initializer===n:!function(e){switch(e.kind){case 75:case 191:case 192:case 279:case 280:return!0;default:return!1}}(n)&&\"quit\"}));if(c)return i(n,c,t,o);var l=s.parent;if(e.isBinaryExpression(l)&&e.isExpressionStatement(l.parent))return i(n,s,t,o);if(e.isArrayLiteralExpression(l)){var u=a.getTypeChecker();if(!e.every(l.elements,(function(n){return function(n,t){var r=e.isIdentifier(n)?n:e.isAssignmentExpression(n,!0)&&e.isIdentifier(n.left)?n.left:void 0;return!!r&&!t.getSymbolAtLocation(r)}(n,u)})))return;return i(n,l,t,o)}var d=e.findAncestor(s,(function(n){return!!e.isExpressionStatement(n.parent)||!function(e){switch(e.kind){case 75:case 208:case 27:return!0;default:return!1}}(n)&&\"quit\"}));if(d){if(!function n(t,r){if(!e.isBinaryExpression(t))return!1;if(27===t.operatorToken.kind)return e.every([t.left,t.right],(function(e){return n(e,r)}));return e.isIdentifier(t.left)&&!r.getSymbolAtLocation(t.left)}(d,a.getTypeChecker()))return;return i(n,d,t,o)}}function i(e,n,t,r){r&&!r.tryAdd(n)||e.insertModifierBefore(t,80,n)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Add_const_to_unresolved_variable,t,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[t],getAllCodeActions:function(t){var i=new e.NodeSet;return n.codeFixAll(t,r,(function(e,n){return a(e,n.file,n.start,t.program,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingDeclareProperty\",r=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];function a(n,t,r,a){var i=e.getTokenAtPosition(t,r);if(e.isIdentifier(i)){var o=i.parent;158!==o.kind||a&&!a.tryAdd(o)||n.insertModifierBefore(t,129,o)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Prefix_with_declare,t,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[t],getAllCodeActions:function(t){var i=new e.NodeSet;return n.codeFixAll(t,r,(function(e,n){return a(e,n.file,n.start,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingInvocationForDecorator\",r=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.findAncestor(a,e.isDecorator);e.Debug.assert(!!i,\"Expected position to be owned by a decorator.\");var o=e.createCall(i.expression,void 0,void 0);n.replaceNode(t,i.expression,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Call_decorator_expression,t,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addNameToNamelessParameter\",r=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r);if(!e.isIdentifier(a))return e.Debug.fail(\"add-name-to-nameless-parameter operates on identifiers, but got a \"+e.Debug.formatSyntaxKind(a.kind));var i=a.parent;if(!e.isParameter(i))return e.Debug.fail(\"Tried to add a parameter name to a non-parameter: \"+e.Debug.formatSyntaxKind(a.kind));var o=i.parent.parameters.indexOf(i);e.Debug.assert(!i.type,\"Tried to add a parameter name to a parameter that already had one.\"),e.Debug.assert(o>-1,\"Parameter not found in parent parameter list.\");var s=e.createParameter(void 0,i.modifiers,i.dotDotDotToken,\"arg\"+o,i.questionToken,e.createTypeReferenceNode(a,void 0),i.initializer);n.replaceNode(t,a,s)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Add_parameter_name,t,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"annotateWithTypeFromJSDoc\",r=[e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.tryCast(e.isParameter(r.parent)?r.parent.parent:r.parent,i)}function i(n){return function(n){return e.isFunctionLikeDeclaration(n)||241===n.kind||157===n.kind||158===n.kind}(n)&&o(n)}function o(n){return e.isFunctionLikeDeclaration(n)?n.parameters.some(o)||!n.type&&!!e.getJSDocReturnType(n):!n.type&&!!e.getJSDocType(n)}function s(n,t,r){if(e.isFunctionLikeDeclaration(r)&&(e.getJSDocReturnType(r)||r.parameters.some((function(n){return!!e.getJSDocType(n)})))){if(!r.typeParameters){var a=e.getJSDocTypeParameterDeclarations(r);a.length&&n.insertTypeParameters(t,r,a)}var i=e.isArrowFunction(r)&&!e.findChildOfKind(r,20,t);i&&n.insertNodeBefore(t,e.first(r.parameters),e.createToken(20));for(var o=0,s=r.parameters;o<s.length;o++){var l=s[o];if(!l.type){var u=e.getJSDocType(l);u&&n.tryInsertTypeAnnotation(t,l,c(u))}}if(i&&n.insertNodeAfter(t,e.last(r.parameters),e.createToken(21)),!r.type){var d=e.getJSDocReturnType(r);d&&n.tryInsertTypeAnnotation(t,r,c(d))}}else{var p=e.Debug.assertDefined(e.getJSDocType(r),\"A JSDocType for this declaration should exist\");e.Debug.assert(!r.type,\"The JSDocType decl should have a type\"),n.tryInsertTypeAnnotation(t,r,c(p))}}function c(n){switch(n.kind){case 293:case 294:return e.createTypeReferenceNode(\"any\",e.emptyArray);case 297:return function(n){return e.createUnionTypeNode([e.visitNode(n.type,c),e.createTypeReferenceNode(\"undefined\",e.emptyArray)])}(n);case 296:return c(n.type);case 295:return function(n){return e.createUnionTypeNode([e.visitNode(n.type,c),e.createTypeReferenceNode(\"null\",e.emptyArray)])}(n);case 299:return function(n){return e.createArrayTypeNode(e.visitNode(n.type,c))}(n);case 298:return function(n){return e.createFunctionTypeNode(e.emptyArray,n.parameters.map(l),n.type)}(n);case 168:return function(n){var t=n.typeName,r=n.typeArguments;if(e.isIdentifier(n.typeName)){if(e.isJSDocIndexSignature(n))return function(n){var t=e.createParameter(void 0,void 0,void 0,139===n.typeArguments[0].kind?\"n\":\"s\",void 0,e.createTypeReferenceNode(139===n.typeArguments[0].kind?\"number\":\"string\",[]),void 0),r=e.createTypeLiteralNode([e.createIndexSignature(void 0,void 0,[t],n.typeArguments[1])]);return e.setEmitFlags(r,1),r}(n);var a=n.typeName.text;switch(n.typeName.text){case\"String\":case\"Boolean\":case\"Object\":case\"Number\":a=a.toLowerCase();break;case\"array\":case\"date\":case\"promise\":a=a[0].toUpperCase()+a.slice(1)}t=e.createIdentifier(a),r=\"Array\"!==a&&\"Promise\"!==a||n.typeArguments?e.visitNodes(n.typeArguments,c):e.createNodeArray([e.createTypeReferenceNode(\"any\",e.emptyArray)])}return e.createTypeReferenceNode(t,r)}(n);default:var t=e.visitEachChild(n,c,void 0);return e.setEmitFlags(t,1),t}}function l(n){var t=n.parent.parameters.indexOf(n),r=299===n.type.kind&&t===n.parent.parameters.length-1,a=n.name||(r?\"rest\":\"arg\"+t),i=r?e.createToken(25):n.dotDotDotToken;return e.createParameter(n.decorators,n.modifiers,i,a,n.questionToken,e.visitNode(n.type,c),n.initializer)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=a(r.sourceFile,r.span.start);if(i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return s(e,r.sourceFile,i)}));return[n.createCodeFixAction(t,o,e.Diagnostics.Annotate_with_type_from_JSDoc,t,e.Diagnostics.Annotate_everything_with_types_from_JSDoc)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&s(e,n.file,t)}))}}),n.parameterShouldGetTypeFromJSDoc=i}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"inferFromUsage\",r=[e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,e.Diagnostics.Variable_0_implicitly_has_an_1_type.code,e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code,e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,e.Diagnostics.Member_0_implicitly_has_an_1_type.code,e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];function a(n,t){switch(n){case e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code:case e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.isSetAccessorDeclaration(e.getContainingFunction(t))?e.Diagnostics.Infer_type_of_0_from_usage:e.Diagnostics.Infer_parameter_types_from_usage;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Infer_parameter_types_from_usage;case e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:return e.Diagnostics.Infer_this_type_of_0_from_usage;default:return e.Diagnostics.Infer_type_of_0_from_usage}}function i(n,t,r,a,i,d,_,g,y,v){if(e.isParameterPropertyModifier(r.kind)||75===r.kind||25===r.kind||103===r.kind){var h=r.parent;switch(a=function(n){switch(n){case e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;case e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Variable_0_implicitly_has_an_1_type.code;case e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code;case e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:return e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;case e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;case e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:return e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;case e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Member_0_implicitly_has_an_1_type.code}return n}(a)){case e.Diagnostics.Member_0_implicitly_has_an_1_type.code:case e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:if(e.isVariableDeclaration(h)&&_(h)||e.isPropertyDeclaration(h)||e.isPropertySignature(h))return o(n,t,h,i,g,d,y,v),h;if(e.isPropertyAccessExpression(h)){var b=p(h.name,i,d),E=e.getTypeNodeIfAccessible(b,h,i,g);if(E){var T=e.createJSDocTypeTag(e.createJSDocTypeExpression(E),\"\");u(n,t,e.cast(h.parent.parent,e.isExpressionStatement),[T])}return h}return;case e.Diagnostics.Variable_0_implicitly_has_an_1_type.code:var S=i.getTypeChecker().getSymbolAtLocation(r);return S&&S.valueDeclaration&&e.isVariableDeclaration(S.valueDeclaration)&&_(S.valueDeclaration)?(o(n,t,S.valueDeclaration,i,g,d,y,v),S.valueDeclaration):void 0}var x=e.getContainingFunction(r);if(void 0!==x)switch(a){case e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code:if(e.isSetAccessorDeclaration(x))return s(n,t,x,i,g,d,y,v),x;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:if(_(x)){var L=e.cast(h,e.isParameter);return function(n,t,r,a,i,o,s,u,d){if(!e.isIdentifier(r.name))return;var _=function(n,t,r,a){var i=m(n,t,r,a);return i&&f(r,i,a).parameters(n)||n.parameters.map((function(n){return{declaration:n,type:e.isIdentifier(n.name)?p(n.name,r,a):r.getTypeChecker().getAnyType()}}))}(a,t,i,s);if(e.Debug.assert(a.parameters.length===_.length,\"Parameter count and inference count should match\"),e.isInJSFile(a))l(n,t,_,i,o);else{var g=e.isArrowFunction(a)&&!e.findChildOfKind(a,20,t);g&&n.insertNodeBefore(t,e.first(a.parameters),e.createToken(20));for(var y=0,v=_;y<v.length;y++){var h=v[y],b=h.declaration,E=h.type;!b||b.type||b.initializer||c(n,t,b,E,i,o,u,d)}g&&n.insertNodeAfter(t,e.last(a.parameters),e.createToken(21))}}(n,t,L,x,i,g,d,y,v),L}return;case e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:case e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:return e.isGetAccessorDeclaration(x)&&e.isIdentifier(x.name)?(c(n,t,x,p(x.name,i,d),i,g,y,v),x):void 0;case e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:return e.isSetAccessorDeclaration(x)?(s(n,t,x,i,g,d,y,v),x):void 0;case e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:return e.textChanges.isThisTypeAnnotatable(x)&&_(x)?(function(n,t,r,a,i,o){var s=m(r,t,a,o);if(!s||!s.length)return;var c=f(a,s,o).thisParameter(),l=e.getTypeNodeIfAccessible(c,r,a,i);if(!l)return;e.isInJSFile(r)?function(n,t,r,a){u(n,t,r,[e.createJSDocThisTag(e.createJSDocTypeExpression(a))])}(n,t,r,l):n.tryInsertThisTypeAnnotation(t,r,l)}(n,t,x,i,g,d),x):void 0;default:return e.Debug.fail(String(a))}}}function o(n,t,r,a,i,o,s,l){e.isIdentifier(r.name)&&c(n,t,r,p(r.name,a,o),a,i,s,l)}function s(n,t,r,a,i,o,s,u){var d=e.firstOrUndefined(r.parameters);if(d&&e.isIdentifier(r.name)&&e.isIdentifier(d.name)){var m=p(r.name,a,o);m===a.getTypeChecker().getAnyType()&&(m=p(d.name,a,o)),e.isInJSFile(r)?l(n,t,[{declaration:d,type:m}],a,i):c(n,t,d,m,a,i,s,u)}}function c(t,r,a,i,o,s,c,l){var d=e.getTypeNodeIfAccessible(i,a,o,s);if(d)if(e.isInJSFile(r)&&157!==a.kind){var p=e.isVariableDeclaration(a)?e.tryCast(a.parent.parent,e.isVariableStatement):a;if(!p)return;var m=e.createJSDocTypeExpression(d);u(t,r,p,[e.isGetAccessorDeclaration(a)?e.createJSDocReturnTag(m,\"\"):e.createJSDocTypeTag(m,\"\")])}else(function(t,r,a,i,o,s,c,l,u){var d;if(e.isLiteralImportTypeNode(t)&&t.qualifier&&o.symbol){var p=null===(d=e.find(o.symbol.declarations,(function(e){return!!e.getSourceFile().externalModuleIndicator})))||void 0===d?void 0:d.getSourceFile().symbol;if(p){var m=e.getFirstIdentifier(t.qualifier).symbol,f=n.getImportCompletionAction(m,p,a,m.name,c,s,l,i.pos,u);if(f.codeAction.changes.length&&r.tryInsertTypeAnnotation(a,i,e.createTypeReferenceNode(t.qualifier,t.typeArguments))){for(var _=0,g=f.codeAction.changes;_<g.length;_++){var y=g[_],v=a.fileName===y.fileName?a:e.Debug.assertDefined(s.getSourceFile(y.fileName));r.pushRaw(v,y)}return!0}}}return!1})(d,t,r,a,i,o,s,c,l)||t.tryInsertTypeAnnotation(r,a,d)}function l(n,t,r,a,i){var o=r.length&&r[0].declaration.parent;o&&u(n,t,o,e.mapDefined(r,(function(n){var t=n.declaration;if(!t.initializer&&!e.getJSDocType(t)&&e.isIdentifier(t.name)){var r=n.type&&e.getTypeNodeIfAccessible(n.type,t,a,i),o=e.getSynthesizedClone(t.name);return e.setEmitFlags(o,3584),r&&e.createJSDocParamTag(o,!!n.isOptional,e.createJSDocTypeExpression(r),\"\")}})))}function u(n,t,r,a){var i=e.mapDefined(r.jsDoc,(function(e){return e.comment})),o=e.flatMapToMutable(r.jsDoc,(function(e){return e.tags})),s=a.filter((function(n){return!o||!o.some((function(t,r){var a=function(n,t){if(n.kind!==t.kind)return;switch(n.kind){case 310:var r=n,a=t;return e.isIdentifier(r.name)&&e.isIdentifier(a.name)&&r.name.escapedText===a.name.escapedText?e.createJSDocParamTag(a.name,a.isBracketed,a.typeExpression,r.comment):void 0;case 311:return e.createJSDocReturnTag(t.typeExpression,n.comment)}}(t,n);return a&&(o[r]=a),!!a}))})),c=e.createJSDocComment(i.join(\"\\n\"),e.createNodeArray(__spreadArrays(o||e.emptyArray,s))),l=201===r.kind?function(e){if(158===e.parent.kind)return e.parent;return e.parent.parent}(r):r;l.jsDoc=r.jsDoc,l.jsDocCache=r.jsDocCache,n.insertJsdocCommentBefore(t,l,c)}function d(n,t,r){return e.mapDefined(e.FindAllReferences.getReferenceEntriesForNode(-1,n,t,t.getSourceFiles(),r),(function(n){return 0!==n.kind?e.tryCast(n.node,e.isIdentifier):void 0}))}function p(e,n,t){return f(n,d(e,n,t),t).single()}function m(n,t,r,a){var i;switch(n.kind){case 161:i=e.findChildOfKind(n,128,t);break;case 201:case 200:var o=n.parent;i=e.isVariableDeclaration(o)&&e.isIdentifier(o.name)?o.name:n.name;break;case 243:case 160:i=n.name}if(i)return d(i,r,a)}function f(n,t,r){var a=n.getTypeChecker(),i={string:function(){return a.getStringType()},number:function(){return a.getNumberType()},Array:function(e){return a.createArrayType(e)},Promise:function(e){return a.createPromiseType(e)}},o=[a.getStringType(),a.getNumberType(),a.createArrayType(a.getAnyType()),a.createPromiseType(a.getAnyType())];return{single:function(){return m(c(t))},parameters:function(i){if(0===t.length||!i.parameters)return;for(var o=s(),u=0,p=t;u<p.length;u++){var f=p[u];r.throwIfCancellationRequested(),l(f,o)}var _=__spreadArrays(o.constructs||[],o.calls||[]);return i.parameters.map((function(t,o){for(var s=[],l=e.isRestParameter(t),u=!1,p=0,f=_;p<f.length;p++){var g=f[p];if(g.argumentTypes.length<=o)u=e.isInJSFile(i),s.push(a.getUndefinedType());else if(l)for(var y=o;y<g.argumentTypes.length;y++)s.push(a.getBaseTypeOfLiteralType(g.argumentTypes[y]));else s.push(a.getBaseTypeOfLiteralType(g.argumentTypes[o]))}if(e.isIdentifier(t.name)){var v=c(d(t.name,n,r));s.push.apply(s,l?e.mapDefined(v,a.getElementTypeOfArrayType):v)}var h=m(s);return{type:l?a.createArrayType(h):h,isOptional:u&&!l,declaration:t}}))},thisParameter:function(){for(var n=s(),a=0,i=t;a<i.length;a++){var o=i[a];r.throwIfCancellationRequested(),l(o,n)}return m(n.candidateThisTypes||e.emptyArray)}};function s(){return{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0}}function c(e){for(var n={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0},t=0,a=e;t<a.length;t++){var i=a[t];r.throwIfCancellationRequested(),l(i,n)}return f(n)}function l(n,t){for(;e.isRightSideOfQualifiedNameOrPropertyAccess(n);)n=n.parent;switch(n.parent.kind){case 225:y(t,a.getVoidType());break;case 207:t.isNumber=!0;break;case 206:!function(e,n){switch(e.operator){case 45:case 46:case 40:case 54:n.isNumber=!0;break;case 39:n.isNumberOrString=!0}}(n.parent,t);break;case 208:!function(n,t,r){switch(t.operatorToken.kind){case 42:case 41:case 43:case 44:case 47:case 48:case 49:case 50:case 51:case 52:case 64:case 66:case 65:case 67:case 68:case 72:case 73:case 74:case 69:case 71:case 70:case 40:case 29:case 32:case 31:case 33:var i=a.getTypeAtLocation(t.left===n?t.right:t.left);1056&i.flags?y(r,i):r.isNumber=!0;break;case 63:case 39:var o=a.getTypeAtLocation(t.left===n?t.right:t.left);1056&o.flags?y(r,o):296&o.flags?r.isNumber=!0:132&o.flags?r.isString=!0:1&o.flags||(r.isNumberOrString=!0);break;case 62:case 34:case 36:case 37:case 35:y(r,a.getTypeAtLocation(t.left===n?t.right:t.left));break;case 96:n===t.left&&(r.isString=!0);break;case 56:case 60:n!==t.left||241!==n.parent.parent.kind&&!e.isAssignmentExpression(n.parent.parent,!0)||y(r,a.getTypeAtLocation(t.right))}}(n,n.parent,t);break;case 275:case 276:!function(e,n){y(n,a.getTypeAtLocation(e.parent.parent.expression))}(n.parent,t);break;case 195:case 196:n.parent.expression===n?function(e,n){var t={argumentTypes:[],return_:{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0}};if(e.arguments)for(var r=0,i=e.arguments;r<i.length;r++){var o=i[r];t.argumentTypes.push(a.getTypeAtLocation(o))}l(e,t.return_),195===e.kind?(n.calls||(n.calls=[])).push(t):(n.constructs||(n.constructs=[])).push(t)}(n.parent,t):u(n,t);break;case 193:!function(n,t){var r=e.escapeLeadingUnderscores(n.name.text);t.properties||(t.properties=e.createUnderscoreEscapedMap());var a=t.properties.get(r)||{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};l(n,a),t.properties.set(r,a)}(n.parent,t);break;case 194:!function(e,n,t){if(n===e.argumentExpression)return void(t.isNumberOrString=!0);var r=a.getTypeAtLocation(e.argumentExpression),i={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};l(e,i),296&r.flags?t.numberIndex=i:t.stringIndex=i}(n.parent,n,t);break;case 279:case 280:!function(n,t){var r=e.isVariableDeclaration(n.parent.parent)?n.parent.parent:n.parent;v(t,a.getTypeAtLocation(r))}(n.parent,t);break;case 158:!function(e,n){v(n,a.getTypeAtLocation(e.parent))}(n.parent,t);break;case 241:var r=n.parent,i=r.name,o=r.initializer;if(n===i){o&&y(t,a.getTypeAtLocation(o));break}default:return u(n,t)}}function u(n,t){e.isExpressionNode(n)&&y(t,a.getContextualType(n))}function p(e){return m(f(e))}function m(n){if(!n.length)return a.getAnyType();var t=a.getUnionType([a.getStringType(),a.getNumberType()]),r=function(n,t){for(var r=[],a=0,i=n;a<i.length;a++)for(var o=i[a],s=0,c=t;s<c.length;s++){var l=c[s],u=l.high,d=l.low;u(o)&&(e.Debug.assert(!d(o),\"Priority can't have both low and high\"),r.push(d))}return n.filter((function(e){return r.every((function(n){return!n(e)}))}))}(n,[{high:function(e){return e===a.getStringType()||e===a.getNumberType()},low:function(e){return e===t}},{high:function(e){return!(16385&e.flags)},low:function(e){return!!(16385&e.flags)}},{high:function(e){return!(114689&e.flags||16&a.getObjectFlags(e))},low:function(e){return!!(16&a.getObjectFlags(e))}}]),i=r.filter((function(e){return 16&a.getObjectFlags(e)}));return i.length&&(r=r.filter((function(e){return!(16&a.getObjectFlags(e))}))).push(function(n){if(1===n.length)return n[0];for(var t=[],r=[],i=[],o=[],s=!1,c=!1,l=e.createMultiMap(),u=0,d=n;u<d.length;u++){for(var p=d[u],m=0,f=a.getPropertiesOfType(p);m<f.length;m++){var _=f[m];l.add(_.name,a.getTypeOfSymbolAtLocation(_,_.valueDeclaration))}t.push.apply(t,a.getSignaturesOfType(p,0)),r.push.apply(r,a.getSignaturesOfType(p,1)),p.stringIndexInfo&&(i.push(p.stringIndexInfo.type),s=s||p.stringIndexInfo.isReadonly),p.numberIndexInfo&&(o.push(p.numberIndexInfo.type),c=c||p.numberIndexInfo.isReadonly)}var g=e.mapEntries(l,(function(e,t){var r=t.length<n.length?16777216:0,i=a.createSymbol(4|r,e);return i.type=a.getUnionType(t),[e,i]}));return a.createAnonymousType(n[0].symbol,g,t,r,i.length?a.createIndexInfo(a.getUnionType(i),s):void 0,o.length?a.createIndexInfo(a.getUnionType(o),c):void 0)}(i)),a.getWidenedType(a.getUnionType(r.map(a.getBaseTypeOfLiteralType),2))}function f(n){var t=[];return n.isNumber&&t.push(a.getNumberType()),n.isString&&t.push(a.getStringType()),n.isNumberOrString&&t.push(a.getUnionType([a.getStringType(),a.getNumberType()])),n.numberIndex&&t.push(a.createArrayType(p(n.numberIndex))),(n.properties&&n.properties.size||n.calls&&n.calls.length||n.constructs&&n.constructs.length||n.stringIndex)&&t.push(function(n){var t=e.createUnderscoreEscapedMap();n.properties&&n.properties.forEach((function(e,n){var r=a.createSymbol(4,n);r.type=p(e),t.set(n,r)}));var r=n.calls?[g(n.calls)]:[],i=n.constructs?[g(n.constructs)]:[],o=n.stringIndex&&a.createIndexInfo(p(n.stringIndex),!1);return a.createAnonymousType(void 0,t,r,i,o,void 0)}(n)),t.push.apply(t,(n.candidateTypes||[]).map((function(e){return a.getBaseTypeOfLiteralType(e)}))),t.push.apply(t,function(n){if(!n.properties||!n.properties.size)return[];var t=o.filter((function(t){return function(n,t){return!!t.properties&&!e.forEachEntry(t.properties,(function(t,r){var i,o=a.getTypeOfPropertyOfType(n,r);return!o||(t.calls?!a.getSignaturesOfType(o,0).length||!a.isTypeAssignableTo(o,(i=t.calls,a.createAnonymousType(void 0,e.createSymbolTable(),[g(i)],e.emptyArray,void 0,void 0))):!a.isTypeAssignableTo(o,p(t)))}))}(t,n)}));if(0<t.length&&t.length<3)return t.map((function(t){return function(n,t){if(!(4&e.getObjectFlags(n)&&t.properties))return n;var r=n.target,o=e.singleOrUndefined(r.typeParameters);if(!o)return n;var s=[];return t.properties.forEach((function(n,t){var i=a.getTypeOfPropertyOfType(r,t);e.Debug.assert(!!i,\"generic should have all the properties of its reference.\"),s.push.apply(s,_(i,p(n),o))})),i[n.symbol.escapedName](m(s))}(t,n)}));return[]}(n)),t}function _(n,t,r){if(n===r)return[t];if(3145728&n.flags)return e.flatMap(n.types,(function(e){return _(e,t,r)}));if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)){var i=a.getTypeArguments(n),o=a.getTypeArguments(t),s=[];if(i&&o)for(var c=0;c<i.length;c++)o[c]&&s.push.apply(s,_(i[c],o[c],r));return s}var l=a.getSignaturesOfType(n,0),u=a.getSignaturesOfType(t,0);return 1===l.length&&1===u.length?function(n,t,r){for(var i=[],o=0;o<n.parameters.length;o++){var s=n.parameters[o],c=t.parameters[o],l=n.declaration&&e.isRestParameter(n.declaration.parameters[o]);if(!c)break;var u=a.getTypeOfSymbolAtLocation(s,s.valueDeclaration),d=l&&a.getElementTypeOfArrayType(u);d&&(u=d);var p=c.type||a.getTypeOfSymbolAtLocation(c,c.valueDeclaration);i.push.apply(i,_(u,p,r))}var m=a.getReturnTypeOfSignature(n),f=a.getReturnTypeOfSignature(t);return i.push.apply(i,_(m,f,r)),i}(l[0],u[0],r):[]}function g(n){for(var t=[],r=Math.max.apply(Math,n.map((function(e){return e.argumentTypes.length}))),i=function(r){var i=a.createSymbol(1,e.escapeLeadingUnderscores(\"arg\"+r));i.type=m(n.map((function(e){return e.argumentTypes[r]||a.getUndefinedType()}))),n.some((function(e){return void 0===e.argumentTypes[r]}))&&(i.flags|=16777216),t.push(i)},o=0;o<r;o++)i(o);var s=p(function n(t){for(var r=e.createUnderscoreEscapedMap(),a=0,i=t;a<i.length;a++){var o=i[a];o.properties&&o.properties.forEach((function(e,n){r.has(n)||r.set(n,[]),r.get(n).push(e)}))}var s=e.createUnderscoreEscapedMap();return r.forEach((function(e,t){s.set(t,n(e))})),{isNumber:t.some((function(e){return e.isNumber})),isString:t.some((function(e){return e.isString})),isNumberOrString:t.some((function(e){return e.isNumberOrString})),candidateTypes:e.flatMap(t,(function(e){return e.candidateTypes})),properties:s,calls:e.flatMap(t,(function(e){return e.calls})),constructs:e.flatMap(t,(function(e){return e.constructs})),numberIndex:e.forEach(t,(function(e){return e.numberIndex})),stringIndex:e.forEach(t,(function(e){return e.stringIndex})),candidateThisTypes:e.flatMap(t,(function(e){return e.candidateThisTypes})),inferredTypes:void 0}}(n.map((function(e){return e.return_}))));return a.createSignature(void 0,void 0,void 0,t,s,void 0,r,0)}function y(e,n){!n||1&n.flags||131072&n.flags||(e.candidateTypes||(e.candidateTypes=[])).push(n)}function v(e,n){!n||1&n.flags||131072&n.flags||(e.candidateThisTypes||(e.candidateThisTypes=[])).push(n)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o,s=r.sourceFile,c=r.program,l=r.span.start,u=r.errorCode,d=r.cancellationToken,p=r.host,m=r.formatContext,f=r.preferences,_=e.getTokenAtPosition(s,l),g=e.textChanges.ChangeTracker.with(r,(function(n){o=i(n,s,_,u,c,d,e.returnTrue,p,m,f)})),y=o&&e.getNameOfDeclaration(o);return y&&0!==g.length?[n.createCodeFixAction(t,g,[a(u,_),y.getText(s)],t,e.Diagnostics.Infer_all_types_from_usage)]:void 0},fixIds:[t],getAllCodeActions:function(t){var a=t.sourceFile,o=t.program,s=t.cancellationToken,c=t.host,l=t.formatContext,u=t.preferences,d=e.nodeSeenTracker();return n.codeFixAll(t,r,(function(n,t){i(n,a,e.getTokenAtPosition(t.file,t.start),t.code,o,s,d,c,l,u)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"convertFunctionToEs6Class\",r=[e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration.code];function a(n,t,r,a){var o=a.getSymbolAtLocation(e.getTokenAtPosition(t,r));if(o&&19&o.flags){var s,c,l=o.valueDeclaration;switch(l.kind){case 243:s=l,n.delete(t,l),c=function(n){var t=u(o);n.body&&t.unshift(e.createConstructor(void 0,void 0,n.parameters,n.body));var r=i(n,88);return e.createClassDeclaration(void 0,r,n.name,void 0,void 0,t)}(l);break;case 241:s=l.parent.parent,c=function(n){var t=n.initializer;if(!t||200!==t.kind)return;if(75!==n.name.kind)return;var r=u(n.symbol);t.body&&r.unshift(e.createConstructor(void 0,void 0,t.parameters,t.body));var a=i(s,88);return e.createClassDeclaration(void 0,a,n.name,void 0,void 0,r)}(l),1===l.parent.declarations.length?(e.copyLeadingComments(s,c,t),n.delete(t,s)):n.delete(t,l)}c&&(e.copyLeadingComments(l,c,t),n.insertNodeAfter(t,s,c))}function u(r){var a=[];return r.members&&r.members.forEach((function(e){var n=o(e,void 0);n&&a.push(n)})),r.exports&&r.exports.forEach((function(n){var t=o(n,[e.createToken(119)]);t&&a.push(t)})),a;function o(r,a){if(8192&r.flags){var o=r.valueDeclaration,s=o.parent;if(c=s.right,e.isFunctionLike(c)){var c,l=s.parent&&225===s.parent.kind?s.parent:s;if(n.delete(t,l),!s.right)return e.createProperty([],a,r.name,void 0,void 0,void 0);switch(s.right.kind){case 200:var u=s.right,d=e.concatenate(a,i(u,125)),p=e.createMethod(void 0,d,void 0,o.name,void 0,void 0,u.parameters,void 0,u.body);return e.copyLeadingComments(s,p,t),p;case 201:var m=s.right,f=m.body,_=void 0;_=222===f.kind?f:e.createBlock([e.createReturn(f)]);d=e.concatenate(a,i(m,125)),p=e.createMethod(void 0,d,void 0,o.name,void 0,void 0,m.parameters,void 0,_);return e.copyLeadingComments(s,p,t),p;default:if(e.isSourceFileJS(t))return;var g=e.createProperty(void 0,a,o.name,void 0,void 0,s.right);return e.copyLeadingComments(s.parent,g,t),g}}}}}}function i(n,t){return e.filter(n.modifiers,(function(e){return e.kind===t}))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program.getTypeChecker())}));return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_function_to_an_ES2015_class,t,e.Diagnostics.Convert_all_constructor_functions_to_classes)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,t.file,t.start,e.program.getTypeChecker())}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t,r=\"convertToAsyncFunction\",a=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],i=!0;function o(n,t,r,a,i){var o,d=e.getTokenAtPosition(t,r);if(o=e.isIdentifier(d)&&e.isVariableDeclaration(d.parent)&&d.parent.initializer&&e.isFunctionLikeDeclaration(d.parent.initializer)?d.parent.initializer:e.tryCast(e.getContainingFunction(e.getTokenAtPosition(t,r)),e.isFunctionLikeDeclaration)){var p,m,f=e.createMap(),g=e.createMap(),y=[],v=e.isInJSFile(o),h=function(n,t){if(!n.body)return e.createMap();var r=e.createMap();return e.forEachChild(n.body,(function n(a){s(a,t,\"then\")?(r.set(e.getNodeId(a).toString(),!0),e.forEach(a.arguments,n)):s(a,t,\"catch\")?(r.set(e.getNodeId(a).toString(),!0),e.forEachChild(a,n)):s(a,t)?r.set(e.getNodeId(a).toString(),!0):e.forEachChild(a,n)})),r}(o,a),E=function(n,t,r,a,i,o,s){var u=e.createMap(),d=e.createMap();return e.forEachChild(n,(function n(o){if(e.isIdentifier(o)){var p=t.getSymbolAtLocation(o),m=p&&function(e,n){return e.valueDeclaration&&e.valueDeclaration.getSourceFile()===n}(p,a.sourceFile);if(p&&m){var f=_(t.getTypeAtLocation(o),t),g=e.getSymbolId(p).toString();if(!f||e.isFunctionLikeDeclaration(o.parent)||r.has(g)){if(o.parent&&(e.isParameter(o.parent)||e.isVariableDeclaration(o.parent)||e.isBindingElement(o.parent))){var y=o.text,v=d.get(y);if(v&&v.some((function(e){return e!==p}))){var h=l(o,d);u.set(g,h.identifier),r.set(g,h),s.push({identifier:h.identifier,symbol:p}),c(d,y,p)}else{var E=e.getSynthesizedDeepClone(o);u.set(g,E),r.set(g,b(E,[],s.filter((function(e){return e.identifier.text===o.text})).length)),(e.isParameter(o.parent)&&function(n){var r=n.parent;if(e.isCallExpression(r)||e.isIdentifier(r)&&!i.get(e.getNodeId(r).toString())){var a=t.getTypeAtLocation(r);return!!(a&&t.getPromisedTypeOfPromise(a))}return!1}(o.parent.parent)||e.isVariableDeclaration(o.parent))&&(s.push({identifier:E,symbol:p}),c(d,y,p))}}}else{var T=e.firstOrUndefined(f.parameters),S=T&&e.isParameter(T.valueDeclaration)&&e.tryCast(T.valueDeclaration.name,e.isIdentifier)||e.createOptimisticUniqueName(\"result\"),x=l(S,d);r.set(g,x),s.push({identifier:x.identifier,symbol:p}),c(d,S.text,p)}}}else e.forEachChild(o,n)})),e.getSynthesizedDeepCloneWithRenames(n,!0,u,t,p);function p(n,a){if(e.isIdentifier(n)){var s=t.getSymbolAtLocation(n),c=s&&e.getSymbolId(s).toString();if(s&&r.get(c)){var l=t.getTypeAtLocation(n);o.set(e.getNodeId(a).toString(),l)}}var u=i.get(e.getNodeId(n).toString());void 0!==u&&(i.delete(e.getNodeId(n).toString()),i.set(e.getNodeId(a).toString(),u))}}(o,a,f,i,h,g,y),T=function(e){var n=[];return e.forEach((function(e){0===e.numberOfAssignmentsOriginal&&n.push(e.identifier)})),n}(f),S=E.body&&e.isBlock(E.body)?(p=E.body,m=[],e.forEachReturnStatement(p,(function(n){e.isReturnStatementWithFixablePromiseHandler(n)&&m.push(n)})),m):e.emptyArray,x={checker:a,synthNamesMap:f,allVarNames:y,setOfExpressionsToReturn:h,constIdentifiers:T,originalTypeMap:g,isInJSFile:v};if(S.length){n.insertLastModifierBefore(t,125,o);for(var L=function(r){e.forEachChild(r,(function a(i){e.isCallExpression(i)?function(e,r){var a=u(e,x,e);n.replaceNodeWithNodes(t,r,a)}(i,r):e.isFunctionLike(i)||e.forEachChild(i,a)}))},C=0,A=S;C<A.length;C++){L(A[C])}}}}function s(n,t,r){var a=(r?e.isCallExpression(n):e.isExpression(n))&&(!r||e.hasPropertyAccessExpressionWithName(n,r))&&t.getTypeAtLocation(n);return!(!a||!t.getPromisedTypeOfPromise(a))}function c(e,n,t){e.has(n)?e.get(n).push(t):e.set(n,[t])}function l(n,t){var r=(t.get(n.text)||e.emptyArray).length;return b(0===r?n:e.createIdentifier(n.text+\"_\"+r),[],0)}function u(n,t,r,a){if(!n)return e.emptyArray;var o=e.isIdentifier(n)&&t.originalTypeMap.get(e.getNodeId(n).toString())||t.checker.getTypeAtLocation(n);return e.isCallExpression(n)&&e.hasPropertyAccessExpressionWithName(n,\"then\")&&o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r,a){var i=n.arguments,o=i[0],s=i[1];if(!o)return u(n.expression,t,r);var c=y(o,t),l=f(o,a,c,n,t);if(s){var d=y(s,t),p=e.createBlock(u(n.expression,t,n,c).concat(l)),m=f(s,a,d,n,t),_=d?E(d)?d.identifier.text:d.bindingPattern:\"e\",g=e.createVariableDeclaration(_),v=e.createCatchClause(g,e.createBlock(m));return[e.createTry(p,v,void 0)]}return u(n.expression,t,n,c).concat(l)}(n,t,r,a):e.isCallExpression(n)&&e.hasPropertyAccessExpressionWithName(n,\"catch\")&&o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r){var a,i=n.arguments[0],o=y(i,t),s=t.setOfExpressionsToReturn.get(e.getNodeId(n).toString());r&&!s&&(E(r)?(a=r,t.synthNamesMap.forEach((function(e,n){if(e.identifier.text===r.identifier.text){var a=d(r);t.synthNamesMap.set(n,a)}}))):a=b(e.createOptimisticUniqueName(\"result\"),r.types),a.numberOfAssignmentsOriginal=2,t.constIdentifiers.some((function(e){return e.text===a.identifier.text}))&&t.constIdentifiers.push(d(a).identifier));var c,l,p=e.createBlock(u(n.expression,t,n,a)),m=f(i,a,o,n,t),_=o?E(o)?o.identifier.text:o.bindingPattern:\"e\",g=e.createVariableDeclaration(_),v=e.createCatchClause(g,e.createBlock(m));if(a&&!s){l=e.getSynthesizedDeepClone(a.identifier);var h=a.types,T=t.checker.getUnionType(h,2),S=t.isInJSFile?void 0:t.checker.typeToTypeNode(T),x=[e.createVariableDeclaration(l,S)];c=e.createVariableStatement(void 0,e.createVariableDeclarationList(x,1))}var L=e.createTry(p,v,void 0),C=r&&l&&(A=r,1===A.kind)&&e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepCloneWithRenames(r.bindingPattern),void 0,l)],2));var A;return e.compact([c,L,C])}(n,t,a):e.isPropertyAccessExpression(n)?u(n.expression,t,r,a):o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r){var a=t.setOfExpressionsToReturn.get(e.getNodeId(n).toString()),i=n.original?n.original.parent:n.parent;if(r&&!a&&(!i||e.isPropertyAccessExpression(i)))return m(r,e.createAwait(n),t);if(!r&&!a&&(!i||e.isPropertyAccessExpression(i)))return[e.createStatement(e.createAwait(n))];return[e.createReturn(e.getSynthesizedDeepClone(n))]}(n,t,a):(i=!1,e.emptyArray)}function d(n){return b(e.createOptimisticUniqueName(n.identifier.text))}function p(n,t){var r=function n(t){return e.isIdentifier(t)?[t.text]:e.flatMap(t.elements,(function(t){return e.isOmittedExpression(t)?[]:n(t.name)}))}(h(n));return t.some((function(n){return e.contains(r,n.text)}))?2:1}function m(n,t,r){return!n||v(n)?[e.createStatement(t)]:E(n)&&n.types.length<n.numberOfAssignmentsOriginal?[e.createStatement(e.createAssignment(e.getSynthesizedDeepClone(n.identifier),t))]:[e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepClone(h(n)),void 0,t)],p(n,r.constIdentifiers)))]}function f(n,t,r,a,o){var c=o.setOfExpressionsToReturn.get(e.getNodeId(a).toString());switch(n.kind){case 99:break;case 75:if(!r)break;var l=e.createCall(e.getSynthesizedDeepClone(n),void 0,E(r)?[r.identifier]:[]);if(c)return[e.createReturn(l)];var u=o.originalTypeMap.get(e.getNodeId(n).toString())||o.checker.getTypeAtLocation(n),d=o.checker.getSignaturesOfType(u,0);if(!d.length){i=!1;break}var f=d[0].getReturnType(),y=m(t,e.createAwait(l),o);return t&&t.types.push(f),y;case 200:case 201:var v=n.body;if(e.isBlock(v)){for(var b=[],T=!1,S=0,x=v.statements;S<x.length;S++){var L=x[S];e.isReturnStatement(L)&&(T=!0),e.isReturnStatementWithFixablePromiseHandler(L)?b=b.concat(g(o,[L],t)):b.push(L)}return c?b.map((function(n){return e.getSynthesizedDeepClone(n)})):function(n,t,r,a){for(var i=[],o=0,c=n;o<c.length;o++){var l=c[o];if(e.isReturnStatement(l)){if(l.expression){var u=s(l.expression,r.checker)?e.createAwait(l.expression):l.expression;void 0===t?i.push(e.createExpressionStatement(u)):i.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(h(t),void 0,u)],p(t,r.constIdentifiers))))}}else i.push(e.getSynthesizedDeepClone(l))}a||void 0===t||i.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(h(t),void 0,e.createIdentifier(\"undefined\"))],p(t,r.constIdentifiers))));return i}(b,t,o,T)}var C=g(o,e.isFixablePromiseHandler(v)?[e.createReturn(v)]:e.emptyArray,t);if(C.length>0)return C;var A=_(o.checker.getTypeAtLocation(n),o.checker).getReturnType(),D=e.getSynthesizedDeepClone(v),k=o.checker.getPromisedTypeOfPromise(A)?e.createAwait(D):D;if(c)return[e.createReturn(k)];var N=m(t,k,o);return t&&t.types.push(A),N;default:i=!1}return e.emptyArray}function _(n,t){var r=t.getSignaturesOfType(n,0);return e.lastOrUndefined(r)}function g(n,t,r){for(var a=[],i=0,o=t;i<o.length;i++){var s=o[i];e.forEachChild(s,(function t(i){if(e.isCallExpression(i)){var o=u(i,n,i,r);if((a=a.concat(o)).length>0)return}else e.isFunctionLike(i)||e.forEachChild(i,t)}))}return a}function y(n,t){var r,a=[];e.isFunctionLikeDeclaration(n)?n.parameters.length>0&&(r=function n(t){if(e.isIdentifier(t))return i(t);var r=e.flatMap(t.elements,(function(t){return e.isOmittedExpression(t)?[]:[n(t.name)]}));return function(n,t,r){void 0===t&&(t=e.emptyArray);void 0===r&&(r=[]);return{kind:1,bindingPattern:n,elements:t,types:r}}(t,r)}(n.parameters[0].name)):e.isIdentifier(n)&&(r=i(n));if(r&&!(\"identifier\"in r&&\"undefined\"===r.identifier.text))return r;function i(n){var r,i=function(e){return e.symbol?e.symbol:t.checker.getSymbolAtLocation(e)}((r=n).original?r.original:r);return i&&t.synthNamesMap.get(e.getSymbolId(i).toString())||b(n,a,0)}}function v(n){return!n||(E(n)?!n.identifier.text:e.every(n.elements,v))}function h(e){return E(e)?e.identifier:e.bindingPattern}function b(e,n,t){return void 0===n&&(n=[]),void 0===t&&(t=0),{kind:0,identifier:e,types:n,numberOfAssignmentsOriginal:t}}function E(e){return 0===e.kind}n.registerCodeFix({errorCodes:a,getCodeActions:function(t){i=!0;var a=e.textChanges.ChangeTracker.with(t,(function(e){return o(e,t.sourceFile,t.span.start,t.program.getTypeChecker(),t)}));return i?[n.createCodeFixAction(r,a,e.Diagnostics.Convert_to_async_function,r,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[r],getAllCodeActions:function(e){return n.codeFixAll(e,a,(function(n,t){return o(n,t.file,t.start,e.program.getTypeChecker(),e)}))}}),function(e){e[e.Identifier=0]=\"Identifier\",e[e.BindingPattern=1]=\"BindingPattern\"}(t||(t={}))}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(n,t,r,a){for(var i=0,o=n.imports;i<o.length;i++){var s=o[i],c=e.getResolvedModule(n,s.text);if(c&&c.resolvedFileName===t.fileName){var l=e.importFromModuleSpecifier(s);switch(l.kind){case 252:r.replaceNode(n,l,e.makeImport(l.name,void 0,s,a));break;case 195:e.isRequireCall(l,!1)&&r.replaceNode(n,l,e.createPropertyAccess(e.getSynthesizedDeepClone(l),\"default\"))}}}}function r(n,t){n.forEachChild((function r(a){if(e.isPropertyAccessExpression(a)&&e.isExportsOrModuleExportsOrAlias(n,a.expression)){var i=a.parent;t(a,e.isBinaryExpression(i)&&i.left===a&&62===i.operatorToken.kind)}a.forEachChild(r)}))}function a(t,r,a,c,f,_,g,y){switch(r.kind){case 224:return function(t,r,a,i,o,c,l){var m=r.declarationList,f=!1,_=e.flatMap(m.declarations,(function(r){var _=r.name,g=r.initializer;if(g){if(e.isExportsOrModuleExportsOrAlias(t,g))return f=!0,[];if(e.isRequireCall(g,!0))return f=!0,function(t,r,a,i,o,c,l,u){switch(r.kind){case 188:var m=e.mapAllOrFail(r.elements,(function(n){return n.dotDotDotToken||n.initializer||n.propertyName&&!e.isIdentifier(n.propertyName)||!e.isIdentifier(n.name)?void 0:d(n.propertyName&&n.propertyName.text,n.name.text)}));if(m)return[e.makeImport(void 0,m,a,u)];case 189:var f=s(n.moduleSpecifierToValidIdentifier(a.text,l),c);return[e.makeImport(e.createIdentifier(f),void 0,a,u),p(void 0,e.getSynthesizedDeepClone(r),e.createIdentifier(f))];case 75:return function(n,t,r,a,i,o,c){for(var l=i.getSymbolAtLocation(t),u=e.createMap(),d=!1,p=0,m=o.original.get(t.text);p<m.length;p++){var f=m[p];if(i.getSymbolAtLocation(f)===l&&f!==t){var _=f.parent;if(e.isPropertyAccessExpression(_)){var g=_.expression,y=_.name.text;e.Debug.assert(g===f,\"Didn't expect expression === use\");var v=u.get(y);void 0===v&&(v=s(y,o),u.set(y,v)),a.replaceNode(n,_,e.createIdentifier(v))}else d=!0}}var h=0===u.size?void 0:e.arrayFrom(e.mapIterator(u.entries(),(function(n){var t=n[0],r=n[1];return e.createImportSpecifier(t===r?void 0:e.createIdentifier(t),e.createIdentifier(r))})));h||(d=!0);return[e.makeImport(d?e.getSynthesizedDeepClone(t):void 0,h,r,c)]}(t,r,a,i,o,c,u);default:return e.Debug.assertNever(r,\"Convert to ES6 module got invalid name kind \"+r.kind)}}(t,_,g.arguments[0],a,i,o,c,l);if(e.isPropertyAccessExpression(g)&&e.isRequireCall(g.expression,!0))return f=!0,function(n,t,r,a,i){switch(n.kind){case 188:case 189:var o=s(t,a);return[u(o,t,r,i),p(void 0,n,e.createIdentifier(o))];case 75:return[u(n.text,t,r,i)];default:return e.Debug.assertNever(n,\"Convert to ES6 module got invalid syntax form \"+n.kind)}}(_,g.name.text,g.expression.arguments[0],o,l)}return e.createVariableStatement(void 0,e.createVariableDeclarationList([r],m.flags))}));f&&a.replaceNodeWithNodes(t,r,_)}(t,r,c,a,f,_,y),!1;case 225:var v=r.expression;switch(v.kind){case 195:return e.isRequireCall(v,!0)&&c.replaceNode(t,r,e.makeImport(void 0,void 0,v.arguments[0],y)),!1;case 208:return 62===v.operatorToken.kind&&function(n,t,r,a,s){var c=r.left,u=r.right;if(!e.isPropertyAccessExpression(c))return!1;if(e.isExportsOrModuleExportsOrAlias(n,c)){if(!e.isExportsOrModuleExportsOrAlias(n,u)){var d=e.isObjectLiteralExpression(u)?(f=u,(_=e.mapAllOrFail(f.properties,(function(n){switch(n.kind){case 162:case 163:case 280:case 281:return;case 279:return e.isIdentifier(n.name)?function(n,t){var r=[e.createToken(88)];switch(t.kind){case 200:var a=t.name;if(a&&a.text!==n)return i();case 201:return l(n,r,t);case 213:return function(n,t,r){return e.createClassDeclaration(e.getSynthesizedDeepClones(r.decorators),e.concatenate(t,e.getSynthesizedDeepClones(r.modifiers)),n,e.getSynthesizedDeepClones(r.typeParameters),e.getSynthesizedDeepClones(r.heritageClauses),e.getSynthesizedDeepClones(r.members))}(n,r,t);default:return i()}function i(){return p(r,e.createIdentifier(n),t)}}(n.name.text,n.initializer):void 0;case 160:return e.isIdentifier(n.name)?l(n.name.text,[e.createToken(88)],n):void 0;default:e.Debug.assertNever(n,\"Convert to ES6 got invalid prop kind \"+n.kind)}})))&&[_,!1]):e.isRequireCall(u,!0)?function(n,t){var r=n.text,a=t.getSymbolAtLocation(n),s=a?a.exports:e.emptyUnderscoreEscapedMap;return s.has(\"export=\")?[[o(r)],!0]:s.has(\"default\")?s.size>1?[[i(r),o(r)],!0]:[[o(r)],!0]:[[i(r)],!1]}(u.arguments[0],t):void 0;return d?(a.replaceNodeWithNodes(n,r.parent,d[0]),d[1]):(a.replaceRangeWithText(n,e.createRange(c.getStart(n),u.pos),\"export default\"),!0)}a.delete(n,r.parent)}else e.isExportsOrModuleExportsOrAlias(n,c.expression)&&function(n,t,r,a){var i=t.left.name.text,o=a.get(i);if(void 0!==o){var s=[p(void 0,o,t.right),m([e.createExportSpecifier(o,i)])];r.replaceNodeWithNodes(n,t.parent,s)}else!function(n,t,r){var a=n.left,i=n.right,o=n.parent,s=a.name.text;if(!(e.isFunctionExpression(i)||e.isArrowFunction(i)||e.isClassExpression(i))||i.name&&i.name.text!==s)r.replaceNodeRangeWithNodes(t,a.expression,e.findChildOfKind(a,24,t),[e.createToken(88),e.createToken(80)],{joiner:\" \",suffix:\" \"});else{r.replaceRange(t,{pos:a.getStart(t),end:i.getStart(t)},e.createToken(88),{suffix:\" \"}),i.name||r.insertName(t,i,s);var c=e.findChildOfKind(o,26,t);c&&r.delete(t,c)}}(t,n,r)}(n,r,a,s);var f,_;return!1}(t,a,v,c,g)}default:return!1}}function i(e){return m(void 0,e)}function o(n){return m([e.createExportSpecifier(void 0,\"default\")],n)}function s(e,n){for(;n.original.has(e)||n.additional.has(e);)e=\"_\"+e;return n.additional.set(e,!0),e}function c(n){var t=e.createMultiMap();return function n(t,r){e.isIdentifier(t)&&function(e){var n=e.parent;switch(n.kind){case 193:return n.name!==e;case 190:case 257:return n.propertyName!==e;default:return!0}}(t)&&r(t);t.forEachChild((function(e){return n(e,r)}))}(n,(function(e){return t.add(e.text,e)})),t}function l(n,t,r){return e.createFunctionDeclaration(e.getSynthesizedDeepClones(r.decorators),e.concatenate(t,e.getSynthesizedDeepClones(r.modifiers)),e.getSynthesizedDeepClone(r.asteriskToken),n,e.getSynthesizedDeepClones(r.typeParameters),e.getSynthesizedDeepClones(r.parameters),e.getSynthesizedDeepClone(r.type),e.convertToFunctionBody(e.getSynthesizedDeepClone(r.body)))}function u(n,t,r,a){return\"default\"===t?e.makeImport(e.createIdentifier(n),void 0,r,a):e.makeImport(void 0,[d(t,n)],r,a)}function d(n,t){return e.createImportSpecifier(void 0!==n&&n!==t?e.createIdentifier(n):void 0,e.createIdentifier(t))}function p(n,t,r){return e.createVariableStatement(n,e.createVariableDeclarationList([e.createVariableDeclaration(t,void 0,r)],2))}function m(n,t){return e.createExportDeclaration(void 0,void 0,n&&e.createNamedExports(n),void 0===t?void 0:e.createLiteral(t))}n.registerCodeFix({errorCodes:[e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module.code],getCodeActions:function(i){var o=i.sourceFile,l=i.program,u=i.preferences,d=e.textChanges.ChangeTracker.with(i,(function(n){if(function(n,t,i,o,l){var u={original:c(n),additional:e.createMap()},d=function(n,t,a){var i=e.createMap();return r(n,(function(n){var r=n.name,o=r.text,c=r.originalKeywordKind;!i.has(o)&&(void 0!==c&&e.isNonContextualKeyword(c)||t.resolveName(n.name.text,n,111551,!0))&&i.set(o,s(\"_\"+o,a))})),i}(n,t,u);!function(n,t,a){r(n,(function(r,i){if(!i){var o=r.name.text;a.replaceNode(n,r,e.createIdentifier(t.get(o)||o))}}))}(n,d,i);for(var p=!1,m=0,f=n.statements;m<f.length;m++){var _=f[m],g=a(n,_,t,i,u,o,d,l);p=p||g}return p}(o,l.getTypeChecker(),n,l.getCompilerOptions().target,e.getQuotePreference(o,u)))for(var i=0,d=l.getSourceFiles();i<d.length;i++){var p=d[i];t(p,o,n,e.getQuotePreference(p,u))}}));return[n.createCodeFixActionNoFixId(\"convertToEs6Module\",d,e.Diagnostics.Convert_to_ES6_module)]}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"correctQualifiedNameToIndexedAccessType\",r=[e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code];function a(n,t){var r=e.findAncestor(e.getTokenAtPosition(n,t),e.isQualifiedName);return e.Debug.assert(!!r,\"Expected position to be owned by a qualified name.\"),e.isIdentifier(r.left)?r:void 0}function i(n,t,r){var a=r.right.text,i=e.createIndexedAccessTypeNode(e.createTypeReferenceNode(r.left,void 0),e.createLiteralTypeNode(e.createLiteral(a)));n.replaceNode(t,r,i)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=a(r.sourceFile,r.span.start);if(o){var s=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,r.sourceFile,o)})),c=o.left.text+'[\"'+o.right.text+'\"]';return[n.createCodeFixAction(t,s,[e.Diagnostics.Rewrite_as_the_indexed_access_type_0,c],t,e.Diagnostics.Rewrite_all_as_indexed_access_types)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Class_0_incorrectly_implements_interface_1.code,e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code],r=\"fixClassIncorrectlyImplementsInterface\";function a(n,t){return e.Debug.assertDefined(e.getContainingClass(e.getTokenAtPosition(n,t)),\"There should be a containing class\")}function i(n){return!(8&e.getModifierFlags(n.valueDeclaration))}function o(t,r,a,o,s,c){var l=t.program.getTypeChecker(),u=function(n,t){var r=e.getEffectiveBaseTypeNode(n);if(!r)return e.createSymbolTable();var a=t.getTypeAtLocation(r),o=t.getPropertiesOfType(a);return e.createSymbolTable(o.filter(i))}(o,l),d=l.getTypeAtLocation(r),p=l.getPropertiesOfType(d).filter(e.and(i,(function(e){return!u.has(e.escapedName)}))),m=l.getTypeAtLocation(o);function f(e,r){var i=l.getIndexInfoOfType(e,r);i&&s.insertNodeAtClassStart(a,o,l.indexInfoToIndexSignatureDeclaration(i,r,o,void 0,n.getNoopSymbolTrackerWithResolver(t)))}m.getNumberIndexType()||f(d,1),m.getStringIndexType()||f(d,0),n.createMissingMemberNodes(o,p,t,c,(function(e){return s.insertNodeAtClassStart(a,o,e)}))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,s=t.span,c=a(i,s.start);return e.mapDefined(e.getClassImplementsHeritageClauseElements(c),(function(a){var s=e.textChanges.ChangeTracker.with(t,(function(e){return o(t,a,i,c,e,t.preferences)}));return 0===s.length?void 0:n.createCodeFixAction(r,s,[e.Diagnostics.Implement_interface_0,a.getText(i)],r,e.Diagnostics.Implement_all_unimplemented_interfaces)}))},fixIds:[r],getAllCodeActions:function(r){var i=e.createMap();return n.codeFixAll(r,t,(function(n,t){var s=a(t.file,t.start);if(e.addToSeen(i,e.getNodeId(s)))for(var c=0,l=e.getClassImplementsHeritageClauseElements(s);c<l.length;c++){var u=l[c];o(r,u,t.file,s,n,r.preferences)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){n.importFixId=\"fixMissingImport\";var t,r,a=[e.Diagnostics.Cannot_find_name_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics.Cannot_find_namespace_0.code,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code];function i(n,t){return!(111551&e.skipAlias(n,t).flags)}function o(n,t,r,a,i,o,l){var u=a.getTypeChecker(),d=e.flatMap(n,(function(n){return function(n,t,r){var a=n.moduleSymbol,i=n.importKind;return n.exportedSymbolIsTypeOnly&&e.isSourceFileJS(r)?e.emptyArray:e.mapDefined(r.imports,(function(n){var r=e.importFromModuleSpecifier(n);return 253!==r.kind&&252!==r.kind||t.getSymbolAtLocation(n)!==a?void 0:{declaration:r,importKind:i}}))}(n,u,i)})),p=void 0===r?void 0:function(n,t,r,a){return e.firstDefined(n,(function(n){var i=function(n){if(253===n.kind){var t=n.importClause&&e.isImportClause(n.importClause)&&n.importClause.namedBindings;return t&&255===t.kind?t.name:void 0}return n.name}(n.declaration);if(i){var o=a.getAliasedSymbol(a.getSymbolAtLocation(i));if(o&&o.exports.has(e.escapeLeadingUnderscores(t)))return{kind:0,namespacePrefix:i.text,position:r}}}))}(d,t,r,u),m=function(n){return e.firstDefined(n,(function(e){var n=e.declaration,t=e.importKind;if(253===n.kind){var r=n.importClause;if(r){var a=r.name,i=r.namedBindings;return 1===t&&!a||0===t&&(!i||256===i.kind)?{kind:2,importClause:r,importKind:t}:void 0}}}))}(d),f=m?[m]:function(n,t,r,a,i,o,l){var u=e.firstDefined(t,c);return u?[u]:s(r,a,i,n,o,l)}(n,d,a,i,r,o,l);return __spreadArrays(p?[p]:e.emptyArray,f)}function s(n,t,r,a,i,o){var s=e.isSourceFileJS(t),c=x(t,n,i).allowsImportingSpecifier,l=e.flatMap(a,(function(a){var c=a.moduleSymbol,l=a.importKind,u=a.exportedSymbolIsTypeOnly;return e.moduleSpecifiers.getModuleSpecifiers(c,n.getCompilerOptions(),t,i,n.getSourceFiles(),o,n.redirectTargetsMap).map((function(n){return u&&s?{kind:1,moduleSpecifier:n,position:e.Debug.assertDefined(r,\"position should be defined\")}:{kind:3,moduleSpecifier:n,importKind:l}}))}));return e.sort(l,(function(e,n){var t=c(e.moduleSpecifier),r=c(n.moduleSpecifier);return t&&!r?-1:r&&!t?1:e.moduleSpecifier.length-n.moduleSpecifier.length}))}function c(n){var t=n.declaration,r=n.importKind,a=253===t.kind?t.moduleSpecifier:263===t.moduleReference.kind?t.moduleReference.expression:void 0;return a&&e.isStringLiteral(a)?{kind:3,moduleSpecifier:a.text,importKind:r}:void 0}function l(n,t,r){var a=e.getTokenAtPosition(n.sourceFile,r),s=t===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code?function(n,t){var r=n.sourceFile,a=n.program,i=n.host,s=n.preferences,c=a.getTypeChecker(),l=function(n,t){var r=e.isIdentifier(n)?t.getSymbolAtLocation(n):void 0;if(e.isUMDExportSymbol(r))return r;var a=n.parent;return e.isJsxOpeningLikeElement(a)&&a.tagName===n||e.isJsxOpeningFragment(a)?e.tryCast(t.resolveName(t.getJsxNamespace(a),e.isJsxOpeningLikeElement(a)?n:a,111551,!1),e.isUMDExportSymbol):void 0}(t,c);if(!l)return;var d=c.getAliasedSymbol(l),p=l.name;return{fixes:o([{moduleSymbol:d,importKind:u(r,a.getCompilerOptions()),exportedSymbolIsTypeOnly:!1}],p,e.isIdentifier(t)?t.getStart(r):void 0,a,r,i,s),symbolName:p}}(n,a):e.isIdentifier(a)?function(n,t){var r=n.sourceFile,a=n.program,s=n.cancellationToken,c=n.host,l=n.preferences,u=a.getTypeChecker(),p=e.isJsxOpeningLikeElement(t.parent)&&t.parent.tagName===t&&(e.isIntrinsicJsxName(t.text)||u.resolveName(t.text,t,67108863,!1))?u.getJsxNamespace(r):t.text;e.Debug.assert(\"default\"!==p,\"'default' isn't a legal identifier and couldn't occur here\");var m=function(n,t,r,a,o,s,c){var l=e.createMultiMap();function u(n,t,r){l.add(e.getUniqueSymbolId(t,o).toString(),{moduleSymbol:n,importKind:r,exportedSymbolIsTypeOnly:i(t,o)})}return b(s,c,a,!0,(function(e){r.throwIfCancellationRequested();var i=d(a,e,o,s.getCompilerOptions());i&&i.name===n&&h(i.symbolForMeaning,t)&&u(e,i.symbol,i.kind);var c=o.tryGetMemberInModuleExportsAndProperties(n,e);c&&h(c,t)&&u(e,c,0)})),l}(p,e.getMeaningFromLocation(t),s,r,u,a,c);return{fixes:e.arrayFrom(e.flatMapIterator(m.entries(),(function(e){e[0];return o(e[1],p,t.getStart(r),a,r,c,l)}))),symbolName:p}}(n,a):void 0;return s&&__assign(__assign({},s),{fixes:e.sort(s.fixes,(function(e,n){return e.kind-n.kind}))})}function u(n,t){if(e.getAllowSyntheticDefaultImports(t))return 1;var r=e.getEmitModuleKind(t);switch(r){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(n)?e.isExternalModule(n)?2:4:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;default:return e.Debug.assertNever(r,\"Unexpected moduleKind \"+r)}}function d(n,t,r,a){var i=function(e,n,t,r){var a=t.tryGetMemberInModuleExports(\"default\",n);if(a)return{symbol:a,kind:1};var i=t.resolveExternalModuleSymbol(n);return i===n?void 0:{symbol:i,kind:p(e,r,t)}}(n,t,r,a);if(i){var o=i.symbol,s=i.kind,c=function n(t,r,a,i){var o=e.getLocalSymbolForExportDefault(t);if(o)return{symbolForMeaning:o,name:o.name};var s=function(n){return n.declarations&&e.firstDefined(n.declarations,(function(n){if(e.isExportAssignment(n)){if(e.isIdentifier(n.expression))return n.expression.text}else if(e.isExportSpecifier(n))return e.Debug.assert(\"default\"===n.name.text,\"Expected the specifier to be a default export\"),n.propertyName&&n.propertyName.text}))}(t);if(void 0!==s)return{symbolForMeaning:t,name:s};if(2097152&t.flags){var c=a.getImmediateAliasedSymbol(t);return c&&n(c,e.Debug.assertDefined(c.parent,\"Alias targets of default exports must have a parent\"),a,i)}if(\"default\"!==t.escapedName&&\"export=\"!==t.escapedName)return{symbolForMeaning:t,name:t.getName()};return{symbolForMeaning:t,name:T(r,i.target)}}(o,t,r,a);return c&&__assign({symbol:o,kind:s},c)}}function p(n,t,r){if(e.getAllowSyntheticDefaultImports(t)&&e.getEmitModuleKind(t)>=e.ModuleKind.ES2015)return 1;if(e.isInJSFile(n))return e.isExternalModule(n)?1:4;for(var a=0,i=n.statements;a<i.length;a++){var o=i[a];if(e.isImportEqualsDeclaration(o))return 3;if(e.isImportDeclaration(o)&&o.importClause&&o.importClause.name){var s=r.getImmediateAliasedSymbol(o.importClause.symbol);if(s&&\"default\"!==s.name)return 1}}return 3}function m(t,r,a,i,o){var s,c=e.textChanges.ChangeTracker.with(t,(function(n){s=function(n,t,r,a,i){switch(a.kind){case 0:return _(n,t,a),[e.Diagnostics.Change_0_to_1,r,a.namespacePrefix+\".\"+r];case 1:return g(n,t,a,i),[e.Diagnostics.Change_0_to_1,r,y(a.moduleSpecifier,i)+r];case 2:var o=a.importClause,s=a.importKind;f(n,t,o,1===s?r:void 0,0===s?[r]:e.emptyArray);var c=e.stripQuotes(o.parent.moduleSpecifier.getText());return[1===s?e.Diagnostics.Add_default_import_0_to_existing_import_declaration_from_1:e.Diagnostics.Add_0_to_existing_import_declaration_from_1,r,c];case 3:s=a.importKind;var l=a.moduleSpecifier;return v(n,t,l,i,1===s?{defaultImport:r,namedImports:e.emptyArray,namespaceLikeImport:void 0}:0===s?{defaultImport:void 0,namedImports:[r],namespaceLikeImport:void 0}:{defaultImport:void 0,namedImports:e.emptyArray,namespaceLikeImport:{importKind:s,name:r}}),[1===s?e.Diagnostics.Import_default_0_from_module_1:e.Diagnostics.Import_0_from_module_1,r,l];default:return e.Debug.assertNever(a,\"Unexpected fix kind \"+a.kind)}}(n,r,a,i,o)}));return n.createCodeFixAction(\"import\",c,s,n.importFixId,e.Diagnostics.Add_all_missing_imports)}function f(n,t,r,a,i){if(a&&(e.Debug.assert(!r.name,\"Default imports can't have names\"),n.insertNodeAt(t,r.getStart(t),e.createIdentifier(a),{suffix:\", \"})),i.length){var o=i.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))}));if(r.namedBindings&&e.cast(r.namedBindings,e.isNamedImports).elements.length)for(var s=0,c=o;s<c.length;s++){var l=c[s];n.insertNodeInListAfter(t,e.last(e.cast(r.namedBindings,e.isNamedImports).elements),l)}else if(o.length){var u=e.createNamedImports(o);r.namedBindings?n.replaceNode(t,r.namedBindings,u):n.insertNodeAfter(t,e.Debug.assertDefined(r.name,\"Named import specifiers must have names\"),u)}}}function _(e,n,t){var r=t.namespacePrefix,a=t.position;e.insertText(n,a,r+\".\")}function g(e,n,t,r){var a=t.moduleSpecifier,i=t.position;e.insertText(n,i,y(a,r))}function y(n,t){var r=e.getQuoteFromPreference(t);return\"import(\"+r+n+r+\").\"}function v(n,t,r,a,i){var o=i.defaultImport,s=i.namedImports,c=i.namespaceLikeImport,l=e.makeStringLiteral(r,a);(void 0!==o||s.length)&&e.insertImport(n,t,e.makeImport(void 0===o?void 0:e.createIdentifier(o),s.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))})),r,a)),c&&e.insertImport(n,t,3===c.importKind?e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(c.name),e.createExternalModuleReference(l)):4===c.importKind?function(n,t){return e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createIdentifier(n),void 0,e.createCall(e.createIdentifier(\"require\"),void 0,[t]))],2))}(c.name,l):e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(e.createIdentifier(c.name))),l))}function h(n,t){var r=n.declarations;return e.some(r,(function(n){return!!(e.getMeaningFromDeclaration(n)&t)}))}function b(n,t,r,a,i){var o=0,s=a&&x(r,n,t),c=n.getSourceFiles(),l=t.getGlobalTypingsCacheLocation&&t.getGlobalTypingsCacheLocation();E(n.getTypeChecker(),c,(function(n,a){var u,d,p,m,f,_;void 0===a?!s||s.allowsImportingAmbientModule(n,c)?i(n):s&&o++:a&&a!==r&&(u=r.fileName,d=a.fileName,p=e.hostGetCanonicalFileName(t),m=l,f=e.forEachAncestorDirectory(d,(function(n){return\"node_modules\"===e.getBaseFileName(n)?n:void 0})),void 0===(_=f&&e.getDirectoryPath(p(f)))||e.startsWith(p(u),_)||m&&e.startsWith(p(m),_))&&(!s||s.allowsImportingSourceFile(a,c)?i(n):s&&o++)})),t.log&&t.log(\"forEachExternalModuleToImportFrom: filtered out \"+o+\" modules by package.json contents\")}function E(n,t,r){for(var a=0,i=n.getAmbientModules();a<i.length;a++){r(i[a],void 0)}for(var o=0,s=t;o<s.length;o++){var c=s[o];e.isExternalOrCommonJsModule(c)&&r(n.getMergedSymbol(c.symbol),c)}}function T(n,t){return S(e.removeFileExtension(e.stripQuotes(n.name)),t)}function S(n,t){var r=e.getBaseFileName(e.removeSuffix(n,\"/index\")),a=\"\",i=!0,o=r.charCodeAt(0);e.isIdentifierStart(o,t)?a+=String.fromCharCode(o):i=!1;for(var s=1;s<r.length;s++){var c=r.charCodeAt(s),l=e.isIdentifierPart(c,t);if(l){var u=String.fromCharCode(c);i||(u=u.toUpperCase()),a+=u}i=l}return e.isStringANonContextualKeyword(a)?\"_\"+a:a||\"_\"}function x(n,t,r){var a,i=r.getPackageJsonsVisibleToFile&&r.getPackageJsonsVisibleToFile(n.fileName)||e.getPackageJsonsVisibleToFile(n.fileName,r),o={directoryExists:e.maybeBind(r,r.directoryExists),fileExists:e.maybeBind(r,r.fileExists),getCurrentDirectory:e.maybeBind(r,r.getCurrentDirectory),readFile:e.maybeBind(r,r.readFile),useCaseSensitiveFileNames:e.maybeBind(r,r.useCaseSensitiveFileNames),getProbableSymlinks:e.maybeBind(r,r.getProbableSymlinks)||t.getProbableSymlinks,getGlobalTypingsCacheLocation:e.maybeBind(r,r.getGlobalTypingsCacheLocation)};return{allowsImportingAmbientModule:function(n,t){if(!i.length)return!0;var r=l(n.valueDeclaration.getSourceFile().fileName,t);if(void 0===r)return!0;var a=e.stripQuotes(n.getName());if(c(a))return!0;return s(r)||s(a)},allowsImportingSourceFile:function(e,n){if(!i.length)return!0;var t=l(e.fileName,n);if(!t)return!0;return s(t)},allowsImportingSpecifier:function(n){if(!i.length||c(n))return!0;if(e.pathIsRelative(n)||e.isRootedDiskPath(n))return!0;return s(n)}};function s(n){for(var t=u(n),r=0,a=i;r<a.length;r++){var o=a[r];if(o.has(t,11)||o.has(e.getTypesPackageName(t),11))return!0}return!1}function c(t){return!!(e.isSourceFileJS(n)&&e.JsTyping.nodeCoreModules.has(t)&&(void 0===a&&(a=e.consumesNodeCoreModules(n)),a))}function l(a,i){if(e.stringContains(a,\"node_modules\")){var s=e.moduleSpecifiers.getNodeModulesPackageName(r.getCompilationSettings(),n.path,a,o,i,t.redirectTargetsMap);if(s)return e.pathIsRelative(s)||e.isRootedDiskPath(s)?void 0:u(s)}}function u(n){var t=e.getPathComponents(e.getPackageNameFromTypesPackageName(n)).slice(1);return e.startsWith(t[0],\"@\")?t[0]+\"/\"+t[1]:t[0]}}n.registerCodeFix({errorCodes:a,getCodeActions:function(n){var t=n.errorCode,r=n.preferences,a=n.sourceFile,i=n.span,o=l(n,t,i.start);if(o){var s=o.fixes,c=o.symbolName,u=e.getQuotePreference(a,r);return s.map((function(e){return m(n,a,c,e,u)}))}},fixIds:[n.importFixId],getAllCodeActions:function(t){var r=t.sourceFile,i=t.preferences,o=[],s=[],c=e.createMap(),u=e.createMap();return n.eachDiagnostic(t,a,(function(n){var r=l(t,n.code,n.start);if(r&&r.fixes.length){var a=r.fixes,i=r.symbolName,d=e.first(a);switch(d.kind){case 0:o.push(d);break;case 1:s.push(d);break;case 2:var p=d.importClause,m=d.importKind,f=String(e.getNodeId(p));(_=c.get(f))||c.set(f,_={importClause:p,defaultImport:void 0,namedImports:[]}),0===m?e.pushIfUnique(_.namedImports,i):(e.Debug.assert(void 0===_.defaultImport||_.defaultImport===i,\"(Add to Existing) Default import should be missing or match symbolName\"),_.defaultImport=i);break;case 3:var _,g=d.moduleSpecifier;m=d.importKind;switch((_=u.get(g))||u.set(g,_={defaultImport:void 0,namedImports:[],namespaceLikeImport:void 0}),m){case 1:e.Debug.assert(void 0===_.defaultImport||_.defaultImport===i,\"(Add new) Default import should be missing or match symbolName\"),_.defaultImport=i;break;case 0:e.pushIfUnique(_.namedImports,i);break;case 3:case 2:e.Debug.assert(void 0===_.namespaceLikeImport||_.namespaceLikeImport.name===i,\"Namespacelike import shoudl be missing or match symbolName\"),_.namespaceLikeImport={importKind:m,name:i}}break;default:e.Debug.assertNever(d,\"fix wasn't never - got kind \"+d.kind)}}})),n.createCombinedCodeActions(e.textChanges.ChangeTracker.with(t,(function(n){for(var t=e.getQuotePreference(r,i),a=0,l=o;a<l.length;a++){var d=l[a];_(n,r,d)}for(var p=0,m=s;p<m.length;p++){d=m[p];g(n,r,d,t)}c.forEach((function(e){var t=e.importClause,a=e.defaultImport,i=e.namedImports;f(n,r,t,a,i)})),u.forEach((function(e,a){v(n,r,a,t,e)}))})))}}),function(e){e[e.UseNamespace=0]=\"UseNamespace\",e[e.ImportType=1]=\"ImportType\",e[e.AddToExisting=2]=\"AddToExisting\",e[e.AddNew=3]=\"AddNew\"}(t||(t={})),function(e){e[e.Named=0]=\"Named\",e[e.Default=1]=\"Default\",e[e.Namespace=2]=\"Namespace\",e[e.Equals=3]=\"Equals\",e[e.ConstEquals=4]=\"ConstEquals\"}(r||(r={})),n.getImportCompletionAction=function(n,t,r,a,c,l,u,p,f){var _=function(n,t,r,a,o,s,c,l){var u=[];return E(c,l,(function(l,p){if(!p||l===r||!e.startsWith(o.fileName,e.getDirectoryPath(p.fileName))){var m=d(n,l,c,s);m&&m.name===a&&e.skipAlias(m.symbol,c)===t&&u.push({moduleSymbol:l,importKind:m.kind,exportedSymbolIsTypeOnly:i(m.symbol,c)});for(var f=0,_=c.getExportsOfModule(l);f<_.length;f++){var g=_[f];g.name===a&&e.skipAlias(g,c)===t&&u.push({moduleSymbol:l,importKind:0,exportedSymbolIsTypeOnly:i(g,c)})}}})),u}(r,n,t,a,r,l.getCompilerOptions(),l.getTypeChecker(),l.getSourceFiles());e.Debug.assert(_.some((function(e){return e.moduleSymbol===t})),\"Some exportInfo should match the specified moduleSymbol\");var g,y,v,h,b=e.first(s(l,r,p,_,c,f)).moduleSpecifier,T=e.first(o(_,a,p,l,r,c,f));return{moduleSpecifier:b,codeAction:(g=m({host:c,formatContext:u,preferences:f},r,a,T,e.getQuotePreference(r,f)),y=g.description,v=g.changes,h=g.commands,{description:y,changes:v,commands:h})}},n.forEachExternalModuleToImportFrom=b,n.moduleSymbolToValidIdentifier=T,n.moduleSpecifierToValidIdentifier=S}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_2.code];function r(n,t,r){var a,i=e.getTokenAtPosition(n,t),o=r.program.getTypeChecker();if(e.isPropertyAccessExpression(i.parent)&&i.parent.name===i){e.Debug.assert(75===i.kind,\"Expected an identifier for spelling (property access)\");var s=o.getTypeAtLocation(i.parent.expression);a=o.getSuggestionForNonexistentProperty(i,s)}else if(e.isImportSpecifier(i.parent)&&i.parent.name===i){e.Debug.assert(75===i.kind,\"Expected an identifier for spelling (import)\");var c=function(n,t,r){if(!r||!e.isStringLiteralLike(r.moduleSpecifier))return;var a=e.getResolvedModule(n,r.moduleSpecifier.text);return a?t.program.getSourceFile(a.resolvedFileName):void 0}(n,r,e.findAncestor(i,e.isImportDeclaration));c&&c.symbol&&(a=o.getSuggestionForNonexistentExport(i,c.symbol))}else{var l=e.getMeaningFromLocation(i),u=e.getTextOfNode(i);e.Debug.assert(void 0!==u,\"name should be defined\"),a=o.getSuggestionForNonexistentSymbol(i,u,function(e){var n=0;4&e&&(n|=1920);2&e&&(n|=788968);1&e&&(n|=111551);return n}(l))}return void 0===a?void 0:{node:i,suggestion:a}}function a(n,t,r,a,i){!e.isIdentifierText(a,i)&&e.isPropertyAccessExpression(r.parent)?n.replaceNode(t,r.parent,e.createElementAccess(r.parent.expression,e.createLiteral(a))):n.replaceNode(t,r,e.createIdentifier(a))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,o=r(i,t.span.start,t);if(o){var s=o.node,c=o.suggestion,l=t.host.getCompilationSettings().target,u=e.textChanges.ChangeTracker.with(t,(function(e){return a(e,i,s,c,l)}));return[n.createCodeFixAction(\"spelling\",u,[e.Diagnostics.Change_spelling_to_0,c],\"fixSpelling\",e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[\"fixSpelling\"],getAllCodeActions:function(e){return n.codeFixAll(e,t,(function(n,t){var i=r(t.file,t.start,e),o=e.host.getCompilationSettings().target;i&&a(n,e.sourceFile,i.node,i.suggestion,o)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t,r=\"addMissingMember\",a=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code],i=\"addMissingMember\";function o(n,t,r,a){var i=e.getTokenAtPosition(n,t);if(e.isIdentifier(i)){var o=i.parent;if(e.isPropertyAccessExpression(o)){var s=e.skipConstraint(r.getTypeAtLocation(o.expression)),c=s.symbol;if(c&&c.declarations){var l=e.find(c.declarations,e.isClassLike)||e.find(c.declarations,e.isInterfaceDeclaration);if(l&&!a.isSourceFileFromExternalLibrary(l.getSourceFile())){var u=(s.target||s)!==r.getDeclaredTypeOfSymbol(c),d=l.getSourceFile();return{kind:1,token:i,parentDeclaration:l,makeStatic:u,declSourceFile:d,inJs:e.isSourceFileJS(d),call:e.tryCast(o.parent,e.isCallExpression)}}var p=e.find(c.declarations,e.isEnumDeclaration);return p&&!a.isSourceFileFromExternalLibrary(p.getSourceFile())?{kind:0,token:i,parentDeclaration:p}:void 0}}}}function s(n,t,r,a,i){if(i){if(213===r.kind)return;var o=r.name.getText(),s=c(e.createIdentifier(o),a);n.insertNodeAfter(t,r,s)}else{var l=e.getFirstConstructorWithBody(r);if(!l)return;var u=c(e.createThis(),a);n.insertNodeAtConstructorEnd(t,l,u)}}function c(n,t){return e.createStatement(e.createAssignment(e.createPropertyAccess(n,t),e.createIdentifier(\"undefined\")))}function l(n,t,r){var a;if(208===r.parent.parent.kind){var i=r.parent.parent,o=r.parent===i.left?i.right:i.left,s=n.getWidenedType(n.getBaseTypeOfLiteralType(n.getTypeAtLocation(o)));a=n.typeToTypeNode(s,t)}else{var c=n.getContextualType(r.parent);a=c?n.typeToTypeNode(c):void 0}return a||e.createKeywordTypeNode(124)}function u(n,t,r,a,i,o){var s=e.createProperty(void 0,o?[e.createToken(119)]:void 0,a,void 0,i,void 0),c=function(n){for(var t,r=0,a=n.members;r<a.length;r++){var i=a[r];if(!e.isPropertyDeclaration(i))break;t=i}return t}(r);c?n.insertNodeAfter(t,c,s):n.insertNodeAtClassStart(t,r,s)}function d(t,a,i,o,s){var c=e.createKeywordTypeNode(142),l=e.createParameter(void 0,void 0,void 0,\"x\",void 0,c,void 0),u=e.createIndexSignature(void 0,void 0,[l],s),d=e.textChanges.ChangeTracker.with(t,(function(e){return e.insertNodeAtClassStart(a,i,u)}));return n.createCodeFixActionNoFixId(r,d,[e.Diagnostics.Add_index_signature_for_property_0,o])}function p(t,r,a,i,o,s,c,l,u){var d=n.createMethodFromCallExpression(t,s,o.text,l,c,u,i),p=e.getAncestor(s,160);p&&p.parent===i?r.insertNodeAfter(a,p,d):r.insertNodeAtClassStart(a,i,d)}function m(n,t,r,a){var i=e.some(a.members,(function(e){var n=t.getTypeAtLocation(e);return!!(n&&132&n.flags)})),o=e.createEnumMember(r,i?e.createStringLiteral(r.text):void 0);n.replaceNode(a.getSourceFile(),a,e.updateEnumDeclaration(a,a.decorators,a.modifiers,a.name,e.concatenate(a.members,e.singleElementArray(o))))}n.registerCodeFix({errorCodes:a,getCodeActions:function(t){var a=o(t.sourceFile,t.span.start,t.program.getTypeChecker(),t.program);if(a){if(0===a.kind){var c=a.token,f=a.parentDeclaration,_=e.textChanges.ChangeTracker.with(t,(function(e){return m(e,t.program.getTypeChecker(),c,f)}));return[n.createCodeFixAction(r,_,[e.Diagnostics.Add_missing_enum_member_0,c.text],i,e.Diagnostics.Add_all_missing_members)]}var g=a.parentDeclaration,y=a.declSourceFile,v=a.inJs,h=a.makeStatic,b=a.token,E=a.call,T=E&&function(t,a,o,s,c,l,u,d){var m=e.textChanges.ChangeTracker.with(t,(function(e){return p(t,e,a,o,s,c,l,u,d)}));return n.createCodeFixAction(r,m,[l?e.Diagnostics.Declare_static_method_0:e.Diagnostics.Declare_method_0,s.text],i,e.Diagnostics.Add_all_missing_members)}(t,y,g,b,E,h,v,t.preferences),S=v&&!e.isInterfaceDeclaration(g)?e.singleElementArray(function(t,a,o,c,l){var u=e.textChanges.ChangeTracker.with(t,(function(e){return s(e,a,o,c,l)}));return 0===u.length?void 0:n.createCodeFixAction(r,u,[l?e.Diagnostics.Initialize_static_property_0:e.Diagnostics.Initialize_property_0_in_the_constructor,c],i,e.Diagnostics.Add_all_missing_members)}(t,y,g,b.text,h)):function(t,a,o,s,c){var p=l(t.program.getTypeChecker(),o,s),m=function(t,a,o,s,c,l){var d=e.textChanges.ChangeTracker.with(t,(function(e){return u(e,a,o,c,l,s)}));return n.createCodeFixAction(r,d,[s?e.Diagnostics.Declare_static_property_0:e.Diagnostics.Declare_property_0,c],i,e.Diagnostics.Add_all_missing_members)}(t,a,o,c,s.text,p);return c?[m]:[m,d(t,a,o,s.text,p)]}(t,y,g,b,h);return e.concatenate(e.singleElementArray(T),S)}},fixIds:[i],getAllCodeActions:function(t){var r=t.program,i=t.preferences,c=r.getTypeChecker(),d=e.createMap(),f=new e.NodeMap;return n.createCombinedCodeActions(e.textChanges.ChangeTracker.with(t,(function(_){n.eachDiagnostic(t,a,(function(n){var r=o(n.file,n.start,c,t.program);if(r&&e.addToSeen(d,e.getNodeId(r.parentDeclaration)+\"#\"+r.token.text))if(0===r.kind){var a=r.token,i=r.parentDeclaration;m(_,c,a,i)}else{i=r.parentDeclaration;var s=r.token,l=f.getOrUpdate(i,(function(){return[]}));l.some((function(e){return e.token.text===s.text}))||l.push(r)}})),f.forEach((function(n,a){for(var o=function(n,t){var r=[];for(;n;){var a=e.getClassExtendsHeritageElement(n),i=a&&t.getSymbolAtLocation(a.expression),o=i&&e.find(i.declarations,e.isClassLike);o&&r.push(o),n=o}return r}(a,c),d=function(n){if(o.some((function(e){var t=f.get(e);return!!t&&t.some((function(e){return e.token.text===n.token.text}))})))return\"continue\";var a=n.parentDeclaration,c=n.declSourceFile,d=n.inJs,m=n.makeStatic,g=n.token,y=n.call;if(y)p(t,_,c,a,g,y,m,d,i);else if(d&&!e.isInterfaceDeclaration(a))s(_,c,a,g.text,m);else{var v=l(r.getTypeChecker(),a,g);u(_,c,a,g.text,v,m)}},m=0,g=n;m<g.length;m++){d(g[m])}}))})))}}),function(e){e[e.Enum=0]=\"Enum\",e[e.ClassOrInterface=1]=\"ClassOrInterface\"}(t||(t={}))}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingNewOperator\",r=[e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code];function a(n,t,r){var a=e.cast(function(n,t){var r=e.getTokenAtPosition(n,t.start),a=e.textSpanEnd(t);for(;r.end<a;)r=r.parent;return r}(t,r),e.isCallExpression),i=e.createNew(a.expression,a.typeArguments,a.arguments);n.replaceNode(t,a,i)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.sourceFile,o=r.span,s=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i,o)}));return[n.createCodeFixAction(t,s,e.Diagnostics.Add_missing_new_operator_to_call,t,e.Diagnostics.Add_missing_new_operator_to_all_calls)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,e.sourceFile,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=e.Diagnostics.Cannot_find_module_0.code,r=[t,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code];function a(e,n){return{type:\"install package\",file:e,packageName:n}}function i(n,t){var r=e.cast(e.getTokenAtPosition(n,t),e.isStringLiteral).text,a=e.parsePackageName(r).packageName;return e.isExternalModuleNameRelative(a)?void 0:a}function o(n,r,a){return a===t?e.JsTyping.nodeCoreModules.has(n)?\"@types/node\":void 0:r.isKnownTypesPackageName(n)?e.getTypesPackageName(n):void 0}n.registerCodeFix({errorCodes:r,getCodeActions:function(t){var r=t.host,s=t.sourceFile,c=i(s,t.span.start);if(void 0!==c){var l=o(c,r,t.errorCode);return void 0===l?[]:[n.createCodeFixAction(\"fixCannotFindModule\",[],[e.Diagnostics.Install_0,l],\"installTypesPackage\",e.Diagnostics.Install_all_missing_types_packages,a(s.fileName,l))]}},fixIds:[\"installTypesPackage\"],getAllCodeActions:function(t){return n.codeFixAll(t,r,(function(n,r,s){var c=i(r.file,r.start);if(void 0!==c)switch(t.fixId){case\"installTypesPackage\":var l=o(c,t.host,r.code);l&&s.push(a(r.file.fileName,l));break;default:e.Debug.fail(\"Bad fixId: \"+t.fixId)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,e.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code],r=\"fixClassDoesntImplementInheritedAbstractMember\";function a(n,t){var r=e.getTokenAtPosition(n,t);return e.cast(r.parent,e.isClassLike)}function i(t,r,a,i,s){var c=e.getEffectiveBaseTypeNode(t),l=a.program.getTypeChecker(),u=l.getTypeAtLocation(c),d=l.getPropertiesOfType(u).filter(o);n.createMissingMemberNodes(t,d,a,s,(function(e){return i.insertNodeAtClassStart(r,t,e)}))}function o(n){var t=e.getModifierFlags(e.first(n.getDeclarations()));return!(8&t||!(128&t))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var o=t.sourceFile,s=t.span,c=e.textChanges.ChangeTracker.with(t,(function(e){return i(a(o,s.start),o,t,e,t.preferences)}));return 0===c.length?void 0:[n.createCodeFixAction(r,c,e.Diagnostics.Implement_inherited_abstract_class,r,e.Diagnostics.Implement_all_inherited_abstract_classes)]},fixIds:[r],getAllCodeActions:function(r){var o=e.createMap();return n.codeFixAll(r,t,(function(n,t){var s=a(t.file,t.start);e.addToSeen(o,e.getNodeId(s))&&i(s,r.sourceFile,r,n,r.preferences)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"classSuperMustPrecedeThisAccess\",r=[e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code];function a(e,n,t,r){e.insertNodeAtConstructorStart(n,t,r),e.delete(n,r)}function i(n,t){var r=e.getTokenAtPosition(n,t);if(103===r.kind){var a=e.getContainingFunction(r),i=o(a.body);return i&&!i.expression.arguments.some((function(n){return e.isPropertyAccessExpression(n)&&n.expression===r}))?{constructor:a,superCall:i}:void 0}}function o(n){return e.isExpressionStatement(n)&&e.isSuperCall(n.expression)?n:e.isFunctionLike(n)?void 0:e.forEachChild(n,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=i(o,s.start);if(c){var l=c.constructor,u=c.superCall,d=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,o,l,u)}));return[n.createCodeFixAction(t,d,e.Diagnostics.Make_super_call_the_first_statement_in_the_constructor,t,e.Diagnostics.Make_all_super_calls_the_first_statement_in_their_constructor)]}},fixIds:[t],getAllCodeActions:function(t){var o=t.sourceFile,s=e.createMap();return n.codeFixAll(t,r,(function(n,t){var r=i(t.file,t.start);if(r){var c=r.constructor,l=r.superCall;e.addToSeen(s,e.getNodeId(c.parent))&&a(n,o,c,l)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"constructorForDerivedNeedSuperCall\",r=[e.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.Debug.assert(128===r.kind,\"token should be at the constructor keyword\"),r.parent}function i(n,t,r){var a=e.createStatement(e.createCall(e.createSuper(),void 0,e.emptyArray));n.insertNodeAtConstructorStart(t,r,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start),l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_missing_super_call,t,e.Diagnostics.Add_all_missing_super_calls)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return i(n,e.sourceFile,a(t.file,t.start))}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"enableExperimentalDecorators\",r=[e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning.code];function a(t,r){n.setJsonCompilerOptionValue(t,r,\"experimentalDecorators\",e.createTrue())}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.program.getCompilerOptions().configFile;if(void 0!==i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i)}));return[n.createCodeFixActionNoFixId(t,o,e.Diagnostics.Enable_the_experimentalDecorators_option_in_your_configuration_file)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n){var t=e.program.getCompilerOptions().configFile;void 0!==t&&a(n,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixEnableJsxFlag\",r=[e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code];function a(t,r){n.setJsonCompilerOptionValue(t,r,\"jsx\",e.createStringLiteral(\"react\"))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.program.getCompilerOptions().configFile;if(void 0!==i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i)}));return[n.createCodeFixActionNoFixId(t,o,e.Diagnostics.Enable_the_jsx_flag_in_your_configuration_file)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n){var t=e.program.getCompilerOptions().configFile;void 0!==t&&a(n,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"extendsInterfaceBecomesImplements\",r=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingClass(r).heritageClauses,i=a[0].getFirstToken();return 89===i.kind?{extendsToken:i,heritageClauses:a}:void 0}function i(n,t,r,a){if(n.replaceNode(t,r,e.createToken(112)),2===a.length&&89===a[0].token&&112===a[1].token){var i=a[1].getFirstToken(),o=i.getFullStart();n.replaceRange(t,{pos:o,end:o},e.createToken(27));for(var s=t.text,c=i.end;c<s.length&&e.isWhiteSpaceSingleLine(s.charCodeAt(c));)c++;n.deleteRange(t,{pos:i.getStart(),end:c})}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=a(o,r.span.start);if(s){var c=s.extendsToken,l=s.heritageClauses,u=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c,l)}));return[n.createCodeFixAction(t,u,e.Diagnostics.Change_extends_to_implements,t,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t.extendsToken,t.heritageClauses)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"forgottenThisPropertyAccess\",r=e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,a=[e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,r];function i(n,t,a){var i=e.getTokenAtPosition(n,t);if(e.isIdentifier(i))return{node:i,className:a===r?e.getContainingClass(i).name.text:void 0}}function o(n,t,r){var a=r.node,i=r.className;e.suppressLeadingAndTrailingTrivia(a),n.replaceNode(t,a,e.createPropertyAccess(i?e.createIdentifier(i):e.createThis(),a))}n.registerCodeFix({errorCodes:a,getCodeActions:function(r){var a=r.sourceFile,s=i(a,r.span.start,r.errorCode);if(s){var c=e.textChanges.ChangeTracker.with(r,(function(e){return o(e,a,s)}));return[n.createCodeFixAction(t,c,[e.Diagnostics.Add_0_to_unresolved_variable,s.className||\"this\"],t,e.Diagnostics.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,a,(function(n,t){var r=i(t.file,t.start,t.code);r&&o(n,e.sourceFile,r)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"unusedIdentifier\",r=\"unusedIdentifier_prefix\",a=\"unusedIdentifier_delete\",i=\"unusedIdentifier_infer\",o=[e.Diagnostics._0_is_declared_but_its_value_is_never_read.code,e.Diagnostics._0_is_declared_but_never_used.code,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,e.Diagnostics.All_imports_in_import_declaration_are_unused.code,e.Diagnostics.All_destructured_elements_are_unused.code,e.Diagnostics.All_variables_are_unused.code,e.Diagnostics.All_type_parameters_are_unused.code];function s(n,t,r){n.replaceNode(t,r.parent,e.createKeywordTypeNode(147))}function c(r,i){return n.createCodeFixAction(t,r,i,a,e.Diagnostics.Delete_all_unused_declarations)}function l(n,t,r){n.delete(t,e.Debug.assertDefined(e.cast(r.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,\"The type parameter to delete should exist\"))}function u(n){return 95===n.kind?e.tryCast(n.parent,e.isImportDeclaration):void 0}function d(n,t,r,a,i,o){if(18!==n.kind||!e.isObjectBindingPattern(n.parent))return!1;var s=n.parent.parent;return 155===s.kind?_(t,r,s,a,i,o):t.delete(r,s),!0}function p(n,t,r){var a=e.tryCast(t.parent,e.isVariableDeclarationList);return!(!a||a.getChildren(n)[0]!==t)&&(r.delete(n,224===a.parent.kind?a.parent:a),!0)}function m(n,t,r,a){t!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(131===a.kind&&(a=e.cast(a.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(a)&&function(e){switch(e.parent.kind){case 155:case 154:return!0;case 241:switch(e.parent.parent.parent.kind){case 231:case 230:return!0}}return!1}(a)&&n.replaceNode(r,a,e.createIdentifier(\"_\"+a.text)))}function f(n,t,r,a,i,o){!function(n,t,r,a,i,o){var s=n.parent;e.isParameter(s)?_(t,r,s,a,i,o):t.delete(r,e.isImportClause(s)?n:e.isComputedPropertyName(s)?s.parent:s)}(t,r,n,a,i,o),e.isIdentifier(t)&&function(n,t,r,a){e.FindAllReferences.Core.eachSymbolReferenceInFile(r,a,t,(function(r){e.isPropertyAccessExpression(r.parent)&&r.parent.name===r&&(r=r.parent),e.isBinaryExpression(r.parent)&&e.isExpressionStatement(r.parent.parent)&&r.parent.left===r&&n.delete(t,r.parent.parent)}))}(r,n,t,a)}function _(n,t,r,a,i,o){(function(n,t,r){var a=n.parent;switch(a.kind){case 160:var i=t.getSymbolAtLocation(a.name);if(e.isMemberSymbolInBaseType(i,t))return!1;case 161:case 243:return!0;case 200:case 201:var o=a.parameters,s=o.indexOf(n);return e.Debug.assert(-1!==s,\"The parameter should already be in the list\"),r?o.slice(s+1).every((function(e){return 75===e.name.kind&&!e.symbol.isReferenced})):s===o.length-1;case 163:return!1;default:return e.Debug.failBadSyntaxKind(a)}})(r,a,o)&&(r.modifiers&&r.modifiers.length>0&&(!e.isIdentifier(r.name)||e.FindAllReferences.Core.isSymbolReferencedInFile(r.name,a,t))?r.modifiers.forEach((function(e){n.deleteModifier(t,e)})):(n.delete(t,r),function(n,t,r,a,i){e.FindAllReferences.Core.eachSignatureCall(r.parent,a,i,(function(e){var a=r.parent.parameters.indexOf(r);e.arguments.length>a&&n.delete(t,e.arguments[a])}))}(n,t,r,i,a)))}n.registerCodeFix({errorCodes:o,getCodeActions:function(a){var o=a.errorCode,_=a.sourceFile,g=a.program,y=g.getTypeChecker(),v=g.getSourceFiles(),h=e.getTokenAtPosition(_,a.span.start);if(e.isJSDocTemplateTag(h))return[c(e.textChanges.ChangeTracker.with(a,(function(e){return e.delete(_,h)})),e.Diagnostics.Remove_template_tag)];if(29===h.kind)return[c(x=e.textChanges.ChangeTracker.with(a,(function(e){return l(e,_,h)})),e.Diagnostics.Remove_type_parameters)];var b=u(h);if(b)return[c(x=e.textChanges.ChangeTracker.with(a,(function(e){return e.delete(_,b)})),[e.Diagnostics.Remove_import_from_0,e.showModuleSpecifier(b)])];var E=e.textChanges.ChangeTracker.with(a,(function(e){return d(h,e,_,y,v,!1)}));if(E.length)return[c(E,e.Diagnostics.Remove_destructuring)];var T=e.textChanges.ChangeTracker.with(a,(function(e){return p(_,h,e)}));if(T.length)return[c(T,e.Diagnostics.Remove_variable_statement)];var S=[];if(131===h.kind){var x=e.textChanges.ChangeTracker.with(a,(function(e){return s(e,_,h)})),L=e.cast(h.parent,e.isInferTypeNode).typeParameter.name.text;S.push(n.createCodeFixAction(t,x,[e.Diagnostics.Replace_infer_0_with_unknown,L],i,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var C=e.textChanges.ChangeTracker.with(a,(function(e){return f(_,h,e,y,v,!1)}));if(C.length){L=e.isComputedPropertyName(h.parent)?h.parent:h;S.push(c(C,[e.Diagnostics.Remove_declaration_for_Colon_0,L.getText(_)]))}}var A=e.textChanges.ChangeTracker.with(a,(function(e){return m(e,o,_,h)}));return A.length&&S.push(n.createCodeFixAction(t,A,[e.Diagnostics.Prefix_0_with_an_underscore,h.getText(_)],r,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),S},fixIds:[r,a,i],getAllCodeActions:function(t){var c=t.sourceFile,_=t.program,g=_.getTypeChecker(),y=_.getSourceFiles();return n.codeFixAll(t,o,(function(n,o){var _=e.getTokenAtPosition(c,o.start);switch(t.fixId){case r:m(n,o.code,c,_);break;case a:if(131===_.kind)break;var v=u(_);v?n.delete(c,v):e.isJSDocTemplateTag(_)?n.delete(c,_):29===_.kind?l(n,c,_):d(_,n,c,g,y,!0)||p(c,_,n)||f(c,_,n,g,y,!0);break;case i:131===_.kind&&s(n,c,_);break;default:e.Debug.fail(JSON.stringify(t.fixId))}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixUnreachableCode\",r=[e.Diagnostics.Unreachable_code_detected.code];function a(n,t,r,a){var i=e.getTokenAtPosition(t,r),o=e.findAncestor(i,e.isStatement);e.Debug.assert(o.getStart(t)===i.getStart(t),\"token and statement should start at the same point\");var s=(e.isBlock(o.parent)?o.parent:o).parent;if(!e.isBlock(o.parent)||o===e.first(o.parent.statements))switch(s.kind){case 226:if(s.elseStatement){if(e.isBlock(o.parent))break;return void n.replaceNode(t,o,e.createBlock(e.emptyArray))}case 228:case 229:return void n.delete(t,s)}if(e.isBlock(o.parent)){var c=r+a,l=e.Debug.assertDefined(function(e,n){for(var t,r=0,a=e;r<a.length;r++){var i=a[r];if(!n(i))break;t=i}return t}(e.sliceAfter(o.parent.statements,o),(function(e){return e.pos<c})),\"Some statement should be last\");n.deleteNodeRange(t,o,l)}else n.delete(t,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.span.length)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unreachable_code,t,e.Diagnostics.Remove_all_unreachable_code)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start,n.length)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixUnusedLabel\",r=[e.Diagnostics.Unused_label.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.cast(a.parent,e.isLabeledStatement),o=a.getStart(t),s=i.statement.getStart(t),c=e.positionsAreOnSameLine(o,s,t)?s:e.skipTrivia(t.text,e.findChildOfKind(i,58,t).end,!0);n.deleteRange(t,{pos:o,end:c})}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unused_label,t,e.Diagnostics.Remove_all_unused_labels)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments.code];function r(e,n,t,r,a){e.replaceNode(n,t,a.typeToTypeNode(r,t))}function a(n,t,r){var a=e.findAncestor(e.getTokenAtPosition(n,t),i),o=a&&a.type;return o&&{typeNode:o,type:r.getTypeFromTypeNode(o)}}function i(e){switch(e.kind){case 216:case 164:case 165:case 243:case 162:case 166:case 185:case 160:case 159:case 155:case 158:case 157:case 163:case 246:case 198:case 241:return!0;default:return!1}}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,o=t.program.getTypeChecker(),s=a(i,t.span.start,o);if(s){var c=s.typeNode,l=s.type,u=c.getText(i),d=[p(l,\"fixJSDocTypes_plain\",e.Diagnostics.Change_all_jsdoc_style_types_to_TypeScript)];return 295===c.kind&&d.push(p(o.getNullableType(l,32768),\"fixJSDocTypes_nullable\",e.Diagnostics.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)),d}function p(a,s,l){var d=e.textChanges.ChangeTracker.with(t,(function(e){return r(e,i,c,a,o)}));return n.createCodeFixAction(\"jdocTypes\",d,[e.Diagnostics.Change_0_to_1,u,o.typeToString(a)],s,l)}},fixIds:[\"fixJSDocTypes_plain\",\"fixJSDocTypes_nullable\"],getAllCodeActions:function(e){var i=e.fixId,o=e.program,s=e.sourceFile,c=o.getTypeChecker();return n.codeFixAll(e,t,(function(e,n){var t=a(n.file,n.start,c);if(t){var o=t.typeNode,l=t.type,u=295===o.kind&&\"fixJSDocTypes_nullable\"===i?c.getNullableType(l,32768):l;r(e,s,o,u,c)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixAwaitInSyncFunction\",r=[e.Diagnostics.await_expression_is_only_allowed_within_an_async_function.code,e.Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingFunction(r);if(a){var i,o;switch(a.kind){case 160:i=a.name;break;case 243:case 200:i=e.findChildOfKind(a,93,n);break;case 201:i=e.findChildOfKind(a,20,n)||e.first(a.parameters);break;default:return}return i&&{insertBefore:i,returnType:(o=a,o.type?o.type:e.isVariableDeclaration(o.parent)&&o.parent.type&&e.isFunctionTypeNode(o.parent.type)?o.parent.type.type:void 0)}}}function i(n,t,r){var a=r.insertBefore,i=r.returnType;if(i){var o=e.getEntityNameFromTypeNode(i);o&&75===o.kind&&\"Promise\"===o.text||n.replaceNode(t,i,e.createTypeReferenceNode(\"Promise\",e.createNodeArray([i])))}n.insertModifierBefore(t,125,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_async_modifier_to_containing_function,t,e.Diagnostics.Add_all_missing_async_modifiers)]}},fixIds:[t],getAllCodeActions:function(t){var o=e.createMap();return n.codeFixAll(t,r,(function(n,r){var s=a(r.file,r.start);s&&e.addToSeen(o,e.getNodeId(s.insertBefore))&&i(n,t.sourceFile,s)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"disableJsDiagnostics\",r=e.mapDefined(Object.keys(e.Diagnostics),(function(n){var t=e.Diagnostics[n];return t.category===e.DiagnosticCategory.Error?t.code:void 0}));function a(n,t,r,a){var i=e.getLineAndCharacterOfPosition(t,r).line;a&&!e.addToSeen(a,i)||n.insertCommentBeforeLine(t,i,r,\" @ts-ignore\")}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.sourceFile,o=r.program,s=r.span,c=r.host,l=r.formatContext;if(e.isInJSFile(i)&&e.isCheckJsEnabledForFile(i,o.getCompilerOptions())){var u=[n.createCodeFixActionNoFixId(\"disableJsDiagnostics\",[n.createFileTextChanges(i.fileName,[e.createTextChange(i.checkJsDirective?e.createTextSpanFromBounds(i.checkJsDirective.pos,i.checkJsDirective.end):e.createTextSpan(0,0),\"// @ts-nocheck\"+e.getNewLineOrDefaultFromHost(c,l.options))])],e.Diagnostics.Disable_checking_for_this_file)];return e.textChanges.isValidLocationToAddComment(i,s.start)&&u.unshift(n.createCodeFixAction(\"disableJsDiagnostics\",e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i,s.start)})),e.Diagnostics.Ignore_this_error_message,t,e.Diagnostics.Add_ts_ignore_to_all_error_messages)),u}},fixIds:[t],getAllCodeActions:function(t){var i=e.createMap();return n.codeFixAll(t,r,(function(n,t){e.textChanges.isValidLocationToAddComment(t.file,t.start)&&a(n,t.file,t.start,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(e){return{directoryExists:e.host.directoryExists?function(n){return e.host.directoryExists(n)}:void 0,fileExists:e.host.fileExists?function(n){return e.host.fileExists(n)}:void 0,getCurrentDirectory:e.host.getCurrentDirectory?function(){return e.host.getCurrentDirectory()}:void 0,readFile:e.host.readFile?function(n){return e.host.readFile(n)}:void 0,useCaseSensitiveFileNames:e.host.useCaseSensitiveFileNames?function(){return e.host.useCaseSensitiveFileNames()}:void 0,getSourceFiles:function(){return e.program.getSourceFiles()},getCommonSourceDirectory:function(){return e.program.getCommonSourceDirectory()}}}function r(n){return{trackSymbol:e.noop,moduleResolverHost:t(n)}}function a(n,t,a,s,c){var l=n.getDeclarations();if(l&&l.length){var u=a.program.getTypeChecker(),d=l[0],p=e.getSynthesizedDeepClone(e.getNameOfDeclaration(d),!1),m=function(n){if(4&n)return e.createToken(118);if(16&n)return e.createToken(117);return}(e.getModifierFlags(d)),f=m?e.createNodeArray([m]):void 0,_=u.getWidenedType(u.getTypeOfSymbolAtLocation(n,t)),g=!!(16777216&n.flags),y=!!(8388608&t.flags);switch(d.kind){case 157:case 158:var v=u.typeToTypeNode(_,t,void 0,r(a));c(e.createProperty(void 0,f,p,g?e.createToken(57):void 0,v,void 0));break;case 162:case 163:for(var h=e.getAllAccessorDeclarations(l,d),b=u.typeToTypeNode(_,t,void 0,r(a)),E=0,T=h.secondAccessor?[h.firstAccessor,h.secondAccessor]:[h.firstAccessor];E<T.length;E++){var S=T[E];if(e.isGetAccessorDeclaration(S))c(e.createGetAccessor(void 0,f,p,e.emptyArray,b,y?void 0:o(s)));else{e.Debug.assertNode(S,e.isSetAccessorDeclaration,\"The counterpart to a getter should be a setter\");var x=e.getSetAccessorValueParameter(S),L=x&&e.isIdentifier(x.name)?e.idText(x.name):void 0;c(e.createSetAccessor(void 0,f,p,i(1,[L],[b],1,!1),y?void 0:o(s)))}}break;case 159:case 160:var C=u.getSignaturesOfType(_,0);if(!e.some(C))break;if(1===l.length){e.Debug.assert(1===C.length,\"One declaration implies one signature\"),k(C[0],f,p,y?void 0:o(s));break}for(var A=0,D=C;A<D.length;A++){k(D[A],e.getSynthesizedDeepClones(f,!1),e.getSynthesizedDeepClone(p,!1))}if(!y)if(l.length>C.length)k(u.getSignatureFromDeclaration(l[l.length-1]),f,p,o(s));else e.Debug.assert(l.length===C.length,\"Declarations and signatures should match count\"),c(function(n,t,r,a,s){for(var c=n[0],l=n[0].minArgumentCount,u=!1,d=0,p=n;d<p.length;d++){var m=p[d];l=Math.min(m.minArgumentCount,l),e.signatureHasRestParameter(m)&&(u=!0),m.parameters.length>=c.parameters.length&&(!e.signatureHasRestParameter(m)||e.signatureHasRestParameter(c))&&(c=m)}var f=c.parameters.length-(e.signatureHasRestParameter(c)?1:0),_=c.parameters.map((function(e){return e.name})),g=i(f,_,void 0,l,!1);if(u){var y=e.createArrayTypeNode(e.createKeywordTypeNode(124)),v=e.createParameter(void 0,void 0,e.createToken(25),_[f]||\"rest\",f>=l?e.createToken(57):void 0,y,void 0);g.push(v)}return function(n,t,r,a,i,s,c){return e.createMethod(void 0,n,void 0,t,r?e.createToken(57):void 0,a,i,s,o(c))}(a,t,r,void 0,g,void 0,s)}(C,p,g,f,s))}}function k(n,i,o,s){var l=function(n,t,a,i,o,s,c){var l=n.program.getTypeChecker().signatureToSignatureDeclaration(t,160,a,257,r(n));if(!l)return;return l.decorators=void 0,l.modifiers=i,l.name=o,l.questionToken=s?e.createToken(57):void 0,l.body=c,l}(a,n,t,i,o,g,s);l&&c(l)}}function i(n,t,r,a,i){for(var o=[],s=0;s<n;s++){var c=e.createParameter(void 0,void 0,void 0,t&&t[s]||\"arg\"+s,void 0!==a&&s>=a?e.createToken(57):void 0,i?void 0:r&&r[s]||e.createKeywordTypeNode(124),void 0);o.push(c)}return o}function o(n){return e.createBlock([e.createThrow(e.createNew(e.createIdentifier(\"Error\"),void 0,[e.createLiteral(\"Method not implemented.\",\"single\"===n.quotePreference)]))],!0)}function s(n,t){return e.createPropertyAssignment(e.createStringLiteral(n),t)}function c(n,t){return e.find(n.properties,(function(n){return e.isPropertyAssignment(n)&&!!n.name&&e.isStringLiteral(n.name)&&n.name.text===t}))}n.createMissingMemberNodes=function(e,n,t,r,i){for(var o=e.symbol.members,s=0,c=n;s<c.length;s++){var l=c[s];o.has(l.escapedName)||a(l,e,t,r,i)}},n.getNoopSymbolTrackerWithResolver=r,n.createMethodFromCallExpression=function(n,t,a,s,c,l,u){var d=!e.isInterfaceDeclaration(u),p=t.typeArguments,m=t.arguments,f=t.parent,_=n.program.getTypeChecker(),g=r(n),y=e.map(m,(function(e){return _.typeToTypeNode(_.getBaseTypeOfLiteralType(_.getTypeAtLocation(e)),u,void 0,g)})),v=e.map(m,(function(n){return e.isIdentifier(n)?n.text:e.isPropertyAccessExpression(n)?n.name.text:void 0})),h=_.getContextualType(t),b=s||!h?void 0:_.typeToTypeNode(h,u,void 0,g);return e.createMethod(void 0,c?[e.createToken(119)]:void 0,e.isYieldExpression(f)?e.createToken(41):void 0,a,void 0,s?void 0:e.map(p,(function(n,t){return e.createTypeParameterDeclaration(84+p.length-1<=90?String.fromCharCode(84+t):\"T\"+t)})),i(m.length,v,y,void 0,s),b,d?o(l):void 0)},n.setJsonCompilerOptionValue=function(n,t,r,a){var i=e.getTsConfigObjectLiteralExpression(t);if(i){var o=c(i,\"compilerOptions\");if(void 0!==o){var l=o.initializer;if(e.isObjectLiteralExpression(l)){var u=c(l,r);void 0===u?n.insertNodeAtObjectStart(t,l,s(r,a)):n.replaceNode(t,u.initializer,a)}}else n.insertNodeAtObjectStart(t,i,s(\"compilerOptions\",e.createObjectLiteral([s(r,a)])))}},n.createJsonPropertyAssignment=s,n.findJsonProperty=c}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(t,r,a,i){var o=e.textChanges.ChangeTracker.with(t,(function(e){return e.replaceNode(r,a,i)}));return n.createCodeFixActionNoFixId(\"invalidImportSyntax\",o,[e.Diagnostics.Replace_import_with_0,o[0].textChanges[0].newText])}function r(r,a){var i=r.program.getTypeChecker().getTypeAtLocation(a);if(!i.symbol||!i.symbol.originatingImport)return[];var o=[],s=i.symbol.originatingImport;if(e.isImportCall(s)||e.addRange(o,function(n,r){var a=e.getSourceFileOfNode(r),i=e.getNamespaceDeclarationNode(r),o=n.program.getCompilerOptions(),s=[];return s.push(t(n,a,r,e.makeImport(i.name,void 0,r.moduleSpecifier,e.getQuotePreference(a,n.preferences)))),e.getEmitModuleKind(o)===e.ModuleKind.CommonJS&&s.push(t(n,a,r,e.createImportEqualsDeclaration(void 0,void 0,i.name,e.createExternalModuleReference(r.moduleSpecifier)))),s}(r,s)),e.isExpression(a)&&(!e.isNamedDeclaration(a.parent)||a.parent.name!==a)){var c=r.sourceFile,l=e.textChanges.ChangeTracker.with(r,(function(n){return n.replaceNode(c,a,e.createPropertyAccess(a,\"default\"),{})}));o.push(n.createCodeFixActionNoFixId(\"invalidImportSyntax\",l,e.Diagnostics.Use_synthetic_default_member))}return o}n.registerCodeFix({errorCodes:[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],getCodeActions:function(n){var t=n.sourceFile,a=e.Diagnostics.This_expression_is_not_callable.code===n.errorCode?195:196,i=e.findAncestor(e.getTokenAtPosition(t,n.span.start),(function(e){return e.kind===a}));if(!i)return[];var o=i.expression;return r(n,o)}}),n.registerCodeFix({errorCodes:[e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,e.Diagnostics.Type_predicate_0_is_not_assignable_to_1.code,e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2.code,e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2.code,e.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1.code,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,e.Diagnostics.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,e.Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code],getCodeActions:function(n){var t=n.sourceFile,a=e.findAncestor(e.getTokenAtPosition(t,n.span.start),(function(e){return e.getStart()===n.span.start&&e.getEnd()===n.span.start+n.span.length}));if(!a)return[];return r(n,a)}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"strictClassInitialization\",r=[e.Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.isIdentifier(r)?e.cast(r.parent,e.isPropertyDeclaration):void 0}function i(r,a){var i=e.textChanges.ChangeTracker.with(r,(function(e){return o(e,r.sourceFile,a)}));return n.createCodeFixAction(t,i,[e.Diagnostics.Add_definite_assignment_assertion_to_property_0,a.getText()],\"addMissingPropertyDefiniteAssignmentAssertions\",e.Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties)}function o(n,t,r){var a=e.updateProperty(r,r.decorators,r.modifiers,r.name,e.createToken(53),r.type,r.initializer);n.replaceNode(t,r,a)}function s(r,a){var i=e.textChanges.ChangeTracker.with(r,(function(e){return c(e,r.sourceFile,a)}));return n.createCodeFixAction(t,i,[e.Diagnostics.Add_undefined_type_to_property_0,a.name.getText()],\"addMissingPropertyUndefinedType\",e.Diagnostics.Add_undefined_type_to_all_uninitialized_properties)}function c(n,t,r){var a=e.createKeywordTypeNode(145),i=r.type,o=e.isUnionTypeNode(i)?i.types.concat(a):[i,a];n.replaceNode(t,i,e.createUnionTypeNode(o))}function l(n,t,r,a){var i=e.updateProperty(r,r.decorators,r.modifiers,r.name,r.questionToken,r.type,a);n.replaceNode(t,r,i)}function u(n,t){return function n(t,r){if(512&r.flags)return r===t.getFalseType()||r===t.getFalseType(!0)?e.createFalse():e.createTrue();if(r.isLiteral())return e.createLiteral(r.value);if(r.isUnion())return e.firstDefined(r.types,(function(e){return n(t,e)}));if(r.isClass()){var a=e.getClassLikeDeclarationOfSymbol(r.symbol);if(!a||e.hasModifier(a,128))return;var i=e.getFirstConstructorWithBody(a);if(i&&i.parameters.length)return;return e.createNew(e.createIdentifier(r.symbol.name),void 0,void 0)}if(t.isArrayLikeType(r))return e.createArrayLiteral();return}(n,n.getTypeFromTypeNode(t.type))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=a(r.sourceFile,r.span.start);if(o){var c=[s(r,o),i(r,o)];return e.append(c,function(r,a){var i=u(r.program.getTypeChecker(),a);if(!i)return;var o=e.textChanges.ChangeTracker.with(r,(function(e){return l(e,r.sourceFile,a,i)}));return n.createCodeFixAction(t,o,[e.Diagnostics.Add_initializer_to_property_0,a.name.getText()],\"addMissingPropertyInitializer\",e.Diagnostics.Add_initializers_to_all_uninitialized_properties)}(r,o)),c}},fixIds:[\"addMissingPropertyDefiniteAssignmentAssertions\",\"addMissingPropertyUndefinedType\",\"addMissingPropertyInitializer\"],getAllCodeActions:function(t){return n.codeFixAll(t,r,(function(n,r){var i=a(r.file,r.start);if(i)switch(t.fixId){case\"addMissingPropertyDefiniteAssignmentAssertions\":o(n,r.file,i);break;case\"addMissingPropertyUndefinedType\":c(n,r.file,i);break;case\"addMissingPropertyInitializer\":var s=u(t.program.getTypeChecker(),i);if(!s)return;l(n,r.file,i,s);break;default:e.Debug.fail(JSON.stringify(t.fixId))}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"requireInTs\",r=[e.Diagnostics.require_call_may_be_converted_to_an_import.code];function a(n,t,r,a){var i=function(n,t){var r=e.getTokenAtPosition(n,t).parent;if(!e.isRequireCall(r,!0))throw e.Debug.failBadSyntaxKind(r);var a=e.cast(r.parent,e.isVariableDeclaration);return{statement:e.cast(a.parent.parent,e.isVariableStatement),name:e.cast(a.name,e.isIdentifier),required:r.arguments[0]}}(t,r),o=i.statement,s=i.name,c=i.required;n.replaceNode(t,o,e.getAllowSyntheticDefaultImports(a.getCompilerOptions())?e.createImportDeclaration(void 0,void 0,e.createImportClause(s,void 0),c):e.createImportEqualsDeclaration(void 0,void 0,s,e.createExternalModuleReference(c)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_require_to_import,t,e.Diagnostics.Convert_all_require_to_import)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,t.file,t.start,e.program)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"useDefaultImport\",r=[e.Diagnostics.Import_may_be_converted_to_a_default_import.code];function a(n,t){var r=e.getTokenAtPosition(n,t);if(e.isIdentifier(r)){var a=r.parent;if(e.isImportEqualsDeclaration(a)&&e.isExternalModuleReference(a.moduleReference))return{importNode:a,name:r,moduleSpecifier:a.moduleReference.expression};if(e.isNamespaceImport(a)){var i=a.parent.parent;return{importNode:i,name:r,moduleSpecifier:i.moduleSpecifier}}}}function i(n,t,r,a){n.replaceNode(t,r.importNode,e.makeImport(r.name,void 0,r.moduleSpecifier,e.getQuotePreference(t,a)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span.start,c=a(o,s);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c,r.preferences)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Convert_to_default_import,t,e.Diagnostics.Convert_all_to_default_imports)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){var r=a(t.file,t.start);r&&i(n,t.file,r,e.preferences)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"useBigintLiteral\",r=[e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code];function a(n,t,r){var a=e.tryCast(e.getTokenAtPosition(t,r.start),e.isNumericLiteral);if(a){var i=a.getText(t)+\"n\";n.replaceNode(t,a,e.createBigIntLiteral(i))}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_to_a_bigint_numeric_literal,t,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixAddModuleReferTypeMissingTypeof\",r=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.Debug.assert(95===r.kind,\"This token should be an ImportKeyword\"),e.Debug.assert(187===r.parent.kind,\"Token parent should be an ImportType\"),r.parent}function i(n,t,r){var a=e.updateImportTypeNode(r,r.argument,r.qualifier,r.typeArguments,!0);n.replaceNode(t,r,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start),l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_missing_typeof,t,e.Diagnostics.Add_missing_typeof)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return i(n,e.sourceFile,a(t.file,t.start))}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixConvertToMappedObjectType\",r=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.cast(r.parent.parent,e.isIndexSignatureDeclaration);if(!e.isClassDeclaration(a.parent))return{indexSignature:a,container:e.isInterfaceDeclaration(a.parent)?a.parent:e.cast(a.parent.parent,e.isTypeAliasDeclaration)}}function i(n,t,r){var a,i,o=r.indexSignature,s=r.container,c=(e.isInterfaceDeclaration(s)?s.members:s.type.members).filter((function(n){return!e.isIndexSignatureDeclaration(n)})),l=e.first(o.parameters),u=e.createTypeParameterDeclaration(e.cast(l.name,e.isIdentifier),l.type),d=e.createMappedTypeNode(e.hasReadonlyModifier(o)?e.createModifier(137):void 0,u,o.questionToken,o.type),p=e.createIntersectionTypeNode(__spreadArrays(e.getAllSuperTypeNodes(s),[d],c.length?[e.createTypeLiteralNode(c)]:e.emptyArray));n.replaceNode(t,s,(a=s,i=p,e.createTypeAliasDeclaration(a.decorators,a.modifiers,a.name,a.typeParameters,i)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)})),u=e.idText(c.container.name);return[n.createCodeFixAction(t,l,[e.Diagnostics.Convert_0_to_mapped_object_type,u],t,[e.Diagnostics.Convert_0_to_mapped_object_type,u])]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"removeUnnecessaryAwait\",r=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];function a(n,t,r){var a=e.tryCast(e.getTokenAtPosition(t,r.start),(function(e){return 126===e.kind})),i=a&&e.tryCast(a.parent,e.isAwaitExpression);if(i){var o=i;if(e.isParenthesizedExpression(i.parent)){var s=e.getLeftmostExpression(i.expression,!1);if(e.isIdentifier(s)){var c=e.findPrecedingToken(i.parent.pos,t);c&&98!==c.kind&&(o=i.parent)}}n.replaceNode(t,o,i.expression)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unnecessary_await,t,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixConvertConstToLet\",r=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var a=r.sourceFile,i=r.span,o=r.program,s=function(n,t,r){var a=e.getTokenAtPosition(n,t),i=r.getTypeChecker().getSymbolAtLocation(a);if(i)return i.valueDeclaration.parent.parent}(a,i.start,o),c=e.textChanges.ChangeTracker.with(r,(function(e){return function(e,n,t){if(!t)return;var r=t.getStart();e.replaceRangeWithText(n,{pos:r,end:r+5},\"let\")}(e,a,s)}));return[n.createCodeFixAction(t,c,e.Diagnostics.Convert_const_to_let,t,e.Diagnostics.Convert_const_to_let)]},fixIds:[t]})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,r=e.getRefactorContextSpan(n),a=e.getTokenAtPosition(t,r.start),i=e.getParentNodeInSpan(a,t,r);if(i&&(e.isSourceFile(i.parent)||e.isModuleBlock(i.parent)&&e.isAmbientModule(i.parent.parent))){var o=e.isSourceFile(i.parent)?i.parent.symbol:i.parent.parent.symbol,s=e.getModifierFlags(i),c=!!(512&s);if(1&s&&(c||!o.exports.has(\"default\")))switch(i.kind){case 243:case 244:case 245:case 247:case 246:case 248:var l=i;return l.name&&e.isIdentifier(l.name)?{exportNode:l,exportName:l.name,wasDefault:c,exportingModuleSymbol:o}:void 0;case 224:var u=i;if(!(2&u.declarationList.flags)||1!==u.declarationList.declarations.length)return;var d=e.first(u.declarationList.declarations);if(!d.initializer)return;return e.Debug.assert(!c,\"Can't have a default flag here\"),e.isIdentifier(d.name)?{exportNode:u,exportName:d.name,wasDefault:c,exportingModuleSymbol:o}:void 0;default:return}}}function r(n,t){return e.createImportSpecifier(n===t?void 0:e.createIdentifier(n),e.createIdentifier(t))}n.registerRefactor(\"Convert export\",{getAvailableActions:function(n){var r=t(n);if(!r)return e.emptyArray;var a=r.wasDefault?e.Diagnostics.Convert_default_export_to_named_export.message:e.Diagnostics.Convert_named_export_to_default_export.message;return[{name:\"Convert export\",description:a,actions:[{name:r.wasDefault?\"Convert default export to named export\":\"Convert named export to default export\",description:a}]}]},getEditsForAction:function(n,a){return e.Debug.assert(\"Convert default export to named export\"===a||\"Convert named export to default export\"===a,\"Unexpected action name\"),{edits:e.textChanges.ChangeTracker.with(n,(function(a){return i=n.file,o=n.program,s=e.Debug.assertDefined(t(n),\"context must have info\"),c=a,l=n.cancellationToken,function(n,t,r,a){var i=t.wasDefault,o=t.exportNode,s=t.exportName;if(i)r.delete(n,e.Debug.assertDefined(e.findModifier(o,83),\"Should find a default keyword in modifier list\"));else{var c=e.Debug.assertDefined(e.findModifier(o,88),\"Should find an export keyword in modifier list\");switch(o.kind){case 243:case 244:case 245:r.insertNodeAfter(n,c,e.createToken(83));break;case 224:if(!e.FindAllReferences.Core.isSymbolReferencedInFile(s,a,n)){r.replaceNode(n,o,e.createExportDefault(e.Debug.assertDefined(e.first(o.declarationList.declarations).initializer,\"Initializer was previously known to be present\")));break}case 247:case 246:case 248:r.deleteModifier(n,c),r.insertNodeAfter(n,o,e.createExportDefault(e.createIdentifier(s.text)));break;default:e.Debug.assertNever(o,\"Unexpected exportNode kind \"+o.kind)}}}(i,s,c,o.getTypeChecker()),void function(n,t,a,i){var o=t.wasDefault,s=t.exportName,c=t.exportingModuleSymbol,l=n.getTypeChecker(),u=e.Debug.assertDefined(l.getSymbolAtLocation(s),\"Export name should resolve to a symbol\");e.FindAllReferences.Core.eachExportReference(n.getSourceFiles(),l,i,u,c,s.text,o,(function(n){var t=n.getSourceFile();o?function(n,t,a,i){var o=t.parent;switch(o.kind){case 193:a.replaceNode(n,t,e.createIdentifier(i));break;case 257:case 261:var s=o;a.replaceNode(n,s,r(i,s.name.text));break;case 254:var c=o;e.Debug.assert(c.name===t,\"Import clause name should match provided ref\"),s=r(i,t.text);var l=c.namedBindings;if(l)if(255===l.kind){a.deleteRange(n,{pos:t.getStart(n),end:l.getStart(n)});var u=e.isStringLiteral(c.parent.moduleSpecifier)?e.quotePreferenceFromString(c.parent.moduleSpecifier,n):1,d=e.makeImport(void 0,[r(i,t.text)],c.parent.moduleSpecifier,u);a.insertNodeAfter(n,c.parent,d)}else a.delete(n,t),a.insertNodeAtEndOfList(n,l.elements,s);else a.replaceNode(n,t,e.createNamedImports([s]));break;default:e.Debug.failBadSyntaxKind(o)}}(t,n,a,s.text):function(n,t,r){var a,i,o=t.parent;switch(o.kind){case 193:r.replaceNode(n,t,e.createIdentifier(\"default\"));break;case 257:var s=e.createIdentifier(o.name.text);1===o.parent.elements.length?r.replaceNode(n,o.parent,s):(r.delete(n,o),r.insertNodeBefore(n,o.parent,s));break;case 261:r.replaceNode(n,o,(a=\"default\",i=o.name.text,e.createExportSpecifier(a===i?void 0:e.createIdentifier(a),e.createIdentifier(i))));break;default:e.Debug.assertNever(o,\"Unexpected parent kind \"+o.kind)}}(t,n,a)}))}(o,s,c,l);var i,o,s,c,l})),renameFilename:void 0,renameLocation:void 0}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,r=e.getRefactorContextSpan(n),a=e.getTokenAtPosition(t,r.start),i=e.getParentNodeInSpan(a,t,r);if(i&&e.isImportDeclaration(i)){var o=i.importClause;return o&&o.namedBindings}}function r(n,t,r){return e.createImportDeclaration(void 0,void 0,e.createImportClause(t,r&&r.length?e.createNamedImports(r):void 0),n.moduleSpecifier)}n.registerRefactor(\"Convert import\",{getAvailableActions:function(n){var r=t(n);if(!r)return e.emptyArray;var a=255===r.kind?e.Diagnostics.Convert_namespace_import_to_named_imports.message:e.Diagnostics.Convert_named_imports_to_namespace_import.message;return[{name:\"Convert import\",description:a,actions:[{name:255===r.kind?\"Convert namespace import to named imports\":\"Convert named imports to namespace import\",description:a}]}]},getEditsForAction:function(n,a){return e.Debug.assert(\"Convert namespace import to named imports\"===a||\"Convert named imports to namespace import\"===a,\"Unexpected action name\"),{edits:e.textChanges.ChangeTracker.with(n,(function(a){return i=n.file,o=n.program,s=a,c=e.Debug.assertDefined(t(n),\"Context must provide an import to convert\"),l=o.getTypeChecker(),void(255===c.kind?function(n,t,a,i,o){var s=!1,c=[],l=e.createMap();e.FindAllReferences.Core.eachSymbolReferenceInFile(i.name,t,n,(function(n){if(e.isPropertyAccessExpression(n.parent)){var r=e.cast(n.parent,e.isPropertyAccessExpression),a=r.name.text;t.resolveName(a,n,67108863,!0)&&l.set(a,!0),e.Debug.assert(r.expression===n,\"Parent expression should match id\"),c.push(r)}else s=!0}));for(var u=e.createMap(),d=0,p=c;d<p.length;d++){var m=p[d],f=m.name.text,_=u.get(f);void 0===_&&u.set(f,_=l.has(f)?e.getUniqueName(f,n):f),a.replaceNode(n,m,e.createIdentifier(_))}var g=[];u.forEach((function(n,t){g.push(e.createImportSpecifier(n===t?void 0:e.createIdentifier(t),e.createIdentifier(n)))}));var y=i.parent.parent;s&&!o?a.insertNodeAfter(n,y,r(y,void 0,g)):a.replaceNode(n,y,r(y,s?e.createIdentifier(i.name.text):void 0,g))}(i,l,s,c,e.getAllowSyntheticDefaultImports(o.getCompilerOptions())):function(n,t,a,i){for(var o=i.parent.parent,s=o.moduleSpecifier,c=s&&e.isStringLiteral(s)?e.codefix.moduleSpecifierToValidIdentifier(s.text,99):\"module\",l=i.elements.some((function(r){return e.FindAllReferences.Core.eachSymbolReferenceInFile(r.name,t,n,(function(e){return!!t.resolveName(c,e,67108863,!0)}))||!1}))?e.getUniqueName(c,n):c,u=[],d=function(r){var i=(r.propertyName||r.name).text;e.FindAllReferences.Core.eachSymbolReferenceInFile(r.name,t,n,(function(t){var o=e.createPropertyAccess(e.createIdentifier(l),i);e.isShorthandPropertyAssignment(t.parent)?a.replaceNode(n,t.parent,e.createPropertyAssignment(t.text,o)):e.isExportSpecifier(t.parent)&&!t.parent.propertyName?u.some((function(e){return e.name===r.name}))||u.push(e.createImportSpecifier(r.propertyName&&e.createIdentifier(r.propertyName.text),e.createIdentifier(r.name.text))):a.replaceNode(n,t,o)}))},p=0,m=i.elements;p<m.length;p++){var f=m[p];d(f)}a.replaceNode(n,i,e.createNamespaceImport(e.createIdentifier(l))),u.length&&a.insertNodeAfter(n,i.parent.parent,r(o,void 0,u))}(i,l,s,c));var i,o,s,c,l})),renameFilename:void 0,renameLocation:void 0}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r,a,i,o;function s(n){var t=l(n.file,e.getRefactorContextSpan(n)).targetRange;if(void 0===t)return e.emptyArray;var r=function(n,t){var r=p(n,t),a=r.scopes,i=r.readsAndWrites,o=i.functionErrorsPerScope,s=i.constantErrorsPerScope;return a.map((function(n,t){var r,a,i=function(n){return e.isFunctionLikeDeclaration(n)?\"inner function\":e.isClassLike(n)?\"method\":\"function\"}(n),c=function(n){return e.isClassLike(n)?\"readonly field\":\"constant\"}(n),l=e.isFunctionLikeDeclaration(n)?function(n){switch(n.kind){case 161:return\"constructor\";case 200:case 243:return n.name?\"function '\"+n.name.text+\"'\":\"anonymous function\";case 201:return\"arrow function\";case 160:return\"method '\"+n.name.getText()+\"'\";case 162:return\"'get \"+n.name.getText()+\"'\";case 163:return\"'set \"+n.name.getText()+\"'\";default:throw e.Debug.assertNever(n,\"Unexpected scope kind \"+n.kind)}}(n):e.isClassLike(n)?function(e){return 244===e.kind?e.name?\"class '\"+e.name.text+\"'\":\"anonymous class declaration\":e.name?\"class expression '\"+e.name.text+\"'\":\"anonymous class expression\"}(n):function(e){return 249===e.kind?\"namespace '\"+e.parent.name.getText()+\"'\":e.externalModuleIndicator?0:1}(n);return 1===l?(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[i,\"global\"]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,\"global\"])):0===l?(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[i,\"module\"]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,\"module\"])):(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[i,l]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[c,l])),0!==t||e.isClassLike(n)||(a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[c])),{functionExtraction:{description:r,errors:o[t]},constantExtraction:{description:a,errors:s[t]}}}))}(t,n);if(void 0===r)return e.emptyArray;for(var a=[],i=e.createMap(),o=[],s=e.createMap(),c=0,u=0,d=r;u<d.length;u++){var m=d[u],f=m.functionExtraction,_=m.constantExtraction;if(0===f.errors.length){var g=f.description;i.has(g)||(i.set(g,!0),a.push({description:g,name:\"function_scope_\"+c}))}if(0===_.errors.length){g=_.description;s.has(g)||(s.set(g,!0),o.push({description:g,name:\"constant_scope_\"+c}))}c++}var y=[];return a.length&&y.push({name:\"Extract Symbol\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),actions:a}),o.length&&y.push({name:\"Extract Symbol\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),actions:o}),y.length?y:e.emptyArray}function c(n,t){var r=l(n.file,e.getRefactorContextSpan(n)).targetRange,i=/^function_scope_(\\d+)$/.exec(t);if(i){var o=+i[1];return e.Debug.assert(isFinite(o),\"Expected to parse a finite number from the function scope index\"),function(n,t,r){var i=p(n,t),o=i.scopes,s=i.readsAndWrites,c=s.target,l=s.usagesPerScope,u=s.functionErrorsPerScope,d=s.exposedVariableDeclarations;return e.Debug.assert(!u[r].length,\"The extraction went missing? How?\"),t.cancellationToken.throwIfCancellationRequested(),function(n,t,r,i,o,s){var c,l,u=r.usages,d=r.typeParameterUsages,p=r.substitutions,y=s.program.getTypeChecker(),v=t.getSourceFile(),h=e.getUniqueName(e.isClassLike(t)?\"newMethod\":\"newFunction\",v),b=e.isInJSFile(t),E=e.createIdentifier(h),T=[],S=[];u.forEach((function(n,r){var a;if(!b){var i=y.getTypeOfSymbolAtLocation(n.symbol,n.node);i=y.getBaseTypeOfLiteralType(i),a=y.typeToTypeNode(i,t,1)}var o=e.createParameter(void 0,void 0,void 0,r,void 0,a);T.push(o),2===n.usage&&(l||(l=[])).push(n),S.push(e.createIdentifier(r))}));var x=e.arrayFrom(d.values()).map((function(e){return{type:e,declaration:m(e)}})).sort(f),L=0===x.length?void 0:x.map((function(e){return e.declaration})),C=void 0!==L?L.map((function(n){return e.createTypeReferenceNode(n.name,void 0)})):void 0;if(e.isExpression(n)&&!b){var A=y.getContextualType(n);c=y.typeToTypeNode(A,t,1)}var D,k=function(n,t,r,a,i){var o,s=void 0!==r||t.length>0;if(e.isBlock(n)&&!s&&0===a.size)return{body:e.createBlock(n.statements,!0),returnValueProperty:void 0};var c=!1,l=e.createNodeArray(e.isBlock(n)?n.statements.slice(0):[e.isStatement(n)?n:e.createReturn(n)]);if(s||a.size){var u=e.visitNodes(l,(function n(i){if(!c&&234===i.kind&&s){var l=_(t,r);return i.expression&&(o||(o=\"__return\"),l.unshift(e.createPropertyAssignment(o,e.visitNode(i.expression,n)))),1===l.length?e.createReturn(l[0].name):e.createReturn(e.createObjectLiteral(l))}var u=c;c=c||e.isFunctionLikeDeclaration(i)||e.isClassLike(i);var d=a.get(e.getNodeId(i).toString()),p=d?e.getSynthesizedDeepClone(d):e.visitEachChild(i,n,e.nullTransformationContext);return c=u,p})).slice();if(s&&!i&&e.isStatement(n)){var d=_(t,r);1===d.length?u.push(e.createReturn(d[0].name)):u.push(e.createReturn(e.createObjectLiteral(d)))}return{body:e.createBlock(u,!0),returnValueProperty:o}}return{body:e.createBlock(l,!0),returnValueProperty:void 0}}(n,i,l,p,!!(o.facts&a.HasReturn)),N=k.body,I=k.returnValueProperty;if(e.suppressLeadingAndTrailingTrivia(N),e.isClassLike(t)){var M=b?[]:[e.createToken(116)];o.facts&a.InStaticRegion&&M.push(e.createToken(119)),o.facts&a.IsAsyncFunction&&M.push(e.createToken(125)),D=e.createMethod(void 0,M.length?M:void 0,o.facts&a.IsGenerator?e.createToken(41):void 0,E,void 0,L,T,c,N)}else D=e.createFunctionDeclaration(void 0,o.facts&a.IsAsyncFunction?[e.createToken(125)]:void 0,o.facts&a.IsGenerator?e.createToken(41):void 0,E,L,T,c,N);var O=e.textChanges.ChangeTracker.fromContext(s),R=function(n,t){return e.find(function(n){if(e.isFunctionLikeDeclaration(n)){var t=n.body;if(e.isBlock(t))return t.statements}else{if(e.isModuleBlock(n)||e.isSourceFile(n))return n.statements;if(e.isClassLike(n))return n.members;e.assertType(n)}return e.emptyArray}(t),(function(t){return t.pos>=n&&e.isFunctionLikeDeclaration(t)&&!e.isConstructorDeclaration(t)}))}((g(o.range)?e.last(o.range):o.range).end,t);R?O.insertNodeBefore(s.file,R,D,!0):O.insertNodeAtEndOfScope(s.file,t,D);var P=[],w=function(n,t,r){var i=e.createIdentifier(r);if(e.isClassLike(n)){var o=t.facts&a.InStaticRegion?e.createIdentifier(n.name.text):e.createThis();return e.createPropertyAccess(o,i)}return i}(t,o,h),F=e.createCall(w,C,S);o.facts&a.IsGenerator&&(F=e.createYield(e.createToken(41),F));o.facts&a.IsAsyncFunction&&(F=e.createAwait(F));if(i.length&&!l)if(e.Debug.assert(!I,\"Expected no returnValueProperty\"),e.Debug.assert(!(o.facts&a.HasReturn),\"Expected RangeFacts.HasReturn flag to be unset\"),1===i.length){var G=i[0];P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepClone(G.name),e.getSynthesizedDeepClone(G.type),F)],G.parent.flags)))}else{for(var B=[],V=[],U=i[0].parent.flags,j=!1,K=0,H=i;K<H.length;K++){G=H[K];B.push(e.createBindingElement(void 0,void 0,e.getSynthesizedDeepClone(G.name)));var W=y.typeToTypeNode(y.getBaseTypeOfLiteralType(y.getTypeAtLocation(G)),t,1);V.push(e.createPropertySignature(void 0,G.symbol.name,void 0,W,void 0)),j=j||void 0!==G.type,U&=G.parent.flags}var z=j?e.createTypeLiteralNode(V):void 0;z&&e.setEmitFlags(z,1),P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createObjectBindingPattern(B),z,F)],U)))}else if(i.length||l){if(i.length)for(var q=0,J=i;q<J.length;q++){var X=(G=J[q]).parent.flags;2&X&&(X=-3&X|1),P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(G.symbol.name,ee(G.type))],X)))}I&&P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(I,ee(c))],1)));var Y=_(i,l);I&&Y.unshift(e.createShorthandPropertyAssignment(I)),1===Y.length?(e.Debug.assert(!I,\"Shouldn't have returnValueProperty here\"),P.push(e.createStatement(e.createAssignment(Y[0].name,F))),o.facts&a.HasReturn&&P.push(e.createReturn())):(P.push(e.createStatement(e.createAssignment(e.createObjectLiteral(Y),F))),I&&P.push(e.createReturn(e.createIdentifier(I))))}else o.facts&a.HasReturn?P.push(e.createReturn(F)):g(o.range)?P.push(e.createStatement(F)):P.push(F);g(o.range)?O.replaceNodeRangeWithNodes(s.file,e.first(o.range),e.last(o.range),P):O.replaceNodeWithNodes(s.file,o.range,P);var Q=O.getChanges(),Z=(g(o.range)?e.first(o.range):o.range).getSourceFile().fileName,$=e.getRenameLocation(Q,Z,h,!1);return{renameFilename:Z,renameLocation:$,edits:Q};function ee(n){if(void 0!==n){for(var t=e.getSynthesizedDeepClone(n),r=t;e.isParenthesizedTypeNode(r);)r=r.type;return e.isUnionTypeNode(r)&&e.find(r.types,(function(e){return 145===e.kind}))?t:e.createUnionTypeNode([t,e.createKeywordTypeNode(145)])}}}(c,o[r],l[r],d,n,t)}(r,n,o)}var s=/^constant_scope_(\\d+)$/.exec(t);if(s){o=+s[1];return e.Debug.assert(isFinite(o),\"Expected to parse a finite number from the constant scope index\"),function(n,t,r){var i=p(n,t),o=i.scopes,s=i.readsAndWrites,c=s.target,l=s.usagesPerScope,u=s.constantErrorsPerScope,m=s.exposedVariableDeclarations;return e.Debug.assert(!u[r].length,\"The extraction went missing? How?\"),e.Debug.assert(0===m.length,\"Extract constant accepted a range containing a variable declaration?\"),t.cancellationToken.throwIfCancellationRequested(),function(n,t,r,i,o){var s,c=r.substitutions,l=o.program.getTypeChecker(),u=t.getSourceFile(),p=e.getUniqueName(e.isClassLike(t)?\"newProperty\":\"newLocal\",u),m=e.isInJSFile(t),f=m||!l.isContextSensitive(n)?void 0:l.typeToTypeNode(l.getContextualType(n),t,1),_=function(n,t){return t.size?function n(r){var a=t.get(e.getNodeId(r).toString());return a?e.getSynthesizedDeepClone(a):e.visitEachChild(r,n,e.nullTransformationContext)}(n):n}(n,c);s=function(r,a){if(void 0===r)return{variableType:r,initializer:a};if(!e.isFunctionExpression(a)&&!e.isArrowFunction(a)||a.typeParameters)return{variableType:r,initializer:a};var i=l.getTypeAtLocation(n),o=e.singleOrUndefined(l.getSignaturesOfType(i,0));if(!o)return{variableType:r,initializer:a};if(o.getTypeParameters())return{variableType:r,initializer:a};for(var s=[],c=!1,u=0,d=a.parameters;u<d.length;u++){var p=d[u];if(p.type)s.push(p);else{var m=l.getTypeAtLocation(p);m===l.getAnyType()&&(c=!0),s.push(e.updateParameter(p,p.decorators,p.modifiers,p.dotDotDotToken,p.name,p.questionToken,p.type||l.typeToTypeNode(m,t,1),p.initializer))}}if(c)return{variableType:r,initializer:a};if(r=void 0,e.isArrowFunction(a))a=e.updateArrowFunction(a,n.modifiers,a.typeParameters,s,a.type||l.typeToTypeNode(o.getReturnType(),t,1),a.equalsGreaterThanToken,a.body);else{if(o&&o.thisParameter){var f=e.firstOrUndefined(s);if(!f||e.isIdentifier(f.name)&&\"this\"!==f.name.escapedText){var _=l.getTypeOfSymbolAtLocation(o.thisParameter,n);s.splice(0,0,e.createParameter(void 0,void 0,void 0,\"this\",void 0,l.typeToTypeNode(_,t,1)))}}a=e.updateFunctionExpression(a,n.modifiers,a.asteriskToken,a.name,a.typeParameters,s,a.type||l.typeToTypeNode(o.getReturnType(),t,1),a.body)}return{variableType:r,initializer:a}}(f,_),f=s.variableType,_=s.initializer,e.suppressLeadingAndTrailingTrivia(_);var g=e.textChanges.ChangeTracker.fromContext(o);if(e.isClassLike(t)){e.Debug.assert(!m,\"Cannot extract to a JS class\");var v=[];v.push(e.createToken(116)),i&a.InStaticRegion&&v.push(e.createToken(119)),v.push(e.createToken(137));var h=e.createProperty(void 0,v,p,void 0,f,_),b=e.createPropertyAccess(i&a.InStaticRegion?e.createIdentifier(t.name.getText()):e.createThis(),e.createIdentifier(p)),E=function(n,t){var r,a=t.members;e.Debug.assert(a.length>0,\"Found no members\");for(var i=!0,o=0,s=a;o<s.length;o++){var c=s[o];if(c.pos>n)return r||a[0];if(i&&!e.isPropertyDeclaration(c)){if(void 0!==r)return c;i=!1}r=c}return void 0===r?e.Debug.fail():r}(n.pos,t);g.insertNodeBefore(o.file,E,h,!0),g.replaceNode(o.file,n,b)}else{var T=e.createVariableDeclaration(p,f,_),S=function(n,t){var r;for(;void 0!==n&&n!==t;){if(e.isVariableDeclaration(n)&&n.initializer===r&&e.isVariableDeclarationList(n.parent)&&n.parent.declarations.length>1)return n;r=n,n=n.parent}}(n,t);if(S){g.insertNodeBefore(o.file,S,T);b=e.createIdentifier(p);g.replaceNode(o.file,n,b)}else if(225===n.parent.kind&&t===e.findAncestor(n,d)){var x=e.createVariableStatement(void 0,e.createVariableDeclarationList([T],2));g.replaceNode(o.file,n.parent,x)}else{x=e.createVariableStatement(void 0,e.createVariableDeclarationList([T],2));if(0===(E=function(n,t){var r;e.Debug.assert(!e.isClassLike(t));for(var a=n;a!==t;a=a.parent)d(a)&&(r=a);for(a=(r||n).parent;;a=a.parent){if(y(a)){for(var i=void 0,o=0,s=a.statements;o<s.length;o++){var c=s[o];if(c.pos>n.pos)break;i=c}return!i&&e.isCaseClause(a)?(e.Debug.assert(e.isSwitchStatement(a.parent.parent),\"Grandparent isn't a switch statement\"),a.parent.parent):e.Debug.assertDefined(i,\"prevStatement failed to get set\")}e.Debug.assert(a!==t,\"Didn't encounter a block-like before encountering scope\")}}(n,t)).pos?g.insertNodeAtTopOfFile(o.file,x,!1):g.insertNodeBefore(o.file,E,x,!1),225===n.parent.kind)g.delete(o.file,n.parent);else{b=e.createIdentifier(p);g.replaceNode(o.file,n,b)}}}var L=g.getChanges(),C=n.getSourceFile().fileName,A=e.getRenameLocation(L,C,p,!0);return{renameFilename:C,renameLocation:A,edits:L}}(e.isExpression(c)?c:c.statements[0].expression,o[r],l[r],n.facts,t)}(r,n,o)}e.Debug.fail(\"Unrecognized action name\")}function l(n,t){var i=t.length;if(0===i)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractEmpty)]};var o=e.getParentNodeInSpan(e.getTokenAtPosition(n,t.start),n,t),s=e.getParentNodeInSpan(e.findTokenOnLeftOfPosition(n,e.textSpanEnd(t)),n,t),c=[],l=a.None;if(!o||!s)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};if(o.parent!==s.parent)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};if(o!==s){if(!y(o.parent))return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};for(var d=[],p=0,m=o.parent.statements;p<m.length;p++){var f=m[p];if(f===o||d.length){var _=h(f);if(_)return{errors:_};d.push(f)}if(f===s)break}return d.length?{targetRange:{range:d,facts:l,declarations:c}}:{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]}}if(e.isJSDoc(o))return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractJSDoc)]};if(e.isReturnStatement(o)&&!o.expression)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};var g=function(n){if(e.isReturnStatement(n)){if(n.expression)return n.expression}else if(e.isVariableStatement(n)){for(var t=0,r=void 0,a=0,i=n.declarationList.declarations;a<i.length;a++){var o=i[a];o.initializer&&(t++,r=o.initializer)}if(1===t)return r}else if(e.isVariableDeclaration(n)&&n.initializer)return n.initializer;return n}(o),v=function(n){if(e.isIdentifier(e.isExpressionStatement(n)?n.expression:n))return[e.createDiagnosticForNode(n,r.cannotExtractIdentifier)];return}(g)||h(g);return v?{errors:v}:{targetRange:{range:u(g),facts:l,declarations:c}};function h(n){var i;if(function(e){e[e.None=0]=\"None\",e[e.Break=1]=\"Break\",e[e.Continue=2]=\"Continue\",e[e.Return=4]=\"Return\"}(i||(i={})),e.Debug.assert(n.pos<=n.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)\"),e.Debug.assert(!e.positionIsSynthesized(n.pos),\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)\"),!(e.isStatement(n)||e.isExpressionNode(n)&&function(e){var n=e.parent;switch(n.kind){case 282:return!1}switch(e.kind){case 10:return 253!==n.kind&&257!==n.kind;case 212:case 188:case 190:return!1;case 75:return 190!==n.kind&&257!==n.kind&&261!==n.kind}return!0}(n)))return[e.createDiagnosticForNode(n,r.statementOrExpressionExpected)];if(8388608&n.flags)return[e.createDiagnosticForNode(n,r.cannotExtractAmbientBlock)];var o,s=e.getContainingClass(n);s&&function(n,t){for(var r=n;r!==t;){if(158===r.kind){e.hasModifier(r,32)&&(l|=a.InStaticRegion);break}if(155===r.kind){161===e.getContainingFunction(r).kind&&(l|=a.InStaticRegion);break}160===r.kind&&e.hasModifier(r,32)&&(l|=a.InStaticRegion),r=r.parent}}(n,s);var u,d=4;return function n(i){if(o)return!0;if(e.isDeclaration(i)){var s=241===i.kind?i.parent.parent:i;if(e.hasModifier(s,1))return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractExportedEntity)),!0;c.push(i.symbol)}switch(i.kind){case 253:return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractImport)),!0;case 101:if(195===i.parent.kind){var p=e.getContainingClass(i);if(p.pos<t.start||p.end>=t.start+t.length)return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractSuper)),!0}else l|=a.UsesThis}if(e.isFunctionLikeDeclaration(i)||e.isClassLike(i)){switch(i.kind){case 243:case 244:e.isSourceFile(i.parent)&&void 0===i.parent.externalModuleIndicator&&(o||(o=[])).push(e.createDiagnosticForNode(i,r.functionWillNotBeVisibleInTheNewScope))}return!1}var m=d;switch(i.kind){case 226:case 239:d=0;break;case 222:i.parent&&239===i.parent.kind&&i.parent.finallyBlock===i&&(d=4);break;case 275:d|=1;break;default:e.isIterationStatement(i,!1)&&(d|=3)}switch(i.kind){case 182:case 103:l|=a.UsesThis;break;case 237:var f=i.label;(u||(u=[])).push(f.escapedText),e.forEachChild(i,n),u.pop();break;case 233:case 232:(f=i.label)?e.contains(u,f.escapedText)||(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):d&(233===i.kind?1:2)||(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break;case 205:l|=a.IsAsyncFunction;break;case 211:l|=a.IsGenerator;break;case 234:4&d?l|=a.HasReturn:(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(i,n)}d=m}(n),o}}function u(n){return e.isStatement(n)?[n]:e.isExpressionNode(n)?e.isExpressionStatement(n.parent)?[n.parent]:n:void 0}function d(n){return e.isFunctionLikeDeclaration(n)||e.isSourceFile(n)||e.isModuleBlock(n)||e.isClassLike(n)}function p(n,t){var i=t.file,o=function(n){var t=g(n.range)?e.first(n.range):n.range;if(n.facts&a.UsesThis){var r=e.getContainingClass(t);if(r){var i=e.findAncestor(t,e.isFunctionLikeDeclaration);return i?[i,r]:[r]}}for(var o=[];;)if(155===(t=t.parent).kind&&(t=e.findAncestor(t,(function(n){return e.isFunctionLikeDeclaration(n)})).parent),d(t)&&(o.push(t),288===t.kind))return o}(n);return{scopes:o,readsAndWrites:function(n,t,i,o,s,c){var l,u,d=e.createMap(),p=[],m=[],f=[],_=[],y=[],v=e.createMap(),h=[],b=g(n.range)?1===n.range.length&&e.isExpressionStatement(n.range[0])?n.range[0].expression:void 0:n.range;if(void 0===b){var E=n.range,T=e.first(E).getStart(),S=e.last(E).end;u=e.createFileDiagnostic(o,T,S-T,r.expressionExpected)}else 147456&s.getTypeAtLocation(b).flags&&(u=e.createDiagnosticForNode(b,r.uselessConstantType));for(var x=0,L=t;x<L.length;x++){var C=L[x];p.push({usages:e.createMap(),typeParameterUsages:e.createMap(),substitutions:e.createMap()}),m.push(e.createMap()),f.push(e.isFunctionLikeDeclaration(C)&&243!==C.kind?[e.createDiagnosticForNode(C,r.cannotExtractToOtherFunctionLike)]:[]);var A=[];u&&A.push(u),e.isClassLike(C)&&e.isInJSFile(C)&&A.push(e.createDiagnosticForNode(C,r.cannotExtractToJSClass)),e.isArrowFunction(C)&&!e.isBlock(C.body)&&A.push(e.createDiagnosticForNode(C,r.cannotExtractToExpressionArrowFunction)),_.push(A)}var D=e.createMap(),k=g(n.range)?e.createBlock(n.range):n.range,N=g(n.range)?e.first(n.range):n.range,I=(M=N,!!e.findAncestor(M,(function(n){return e.isDeclarationWithTypeParameters(n)&&0!==e.getEffectiveTypeParameterDeclarations(n).length})));var M;if(function c(l,u){void 0===u&&(u=1);if(I){K(s.getTypeAtLocation(l))}e.isDeclaration(l)&&l.symbol&&y.push(l);if(e.isAssignmentExpression(l))c(l.left,2),c(l.right);else if(e.isUnaryExpressionWithWrite(l))c(l.operand,2);else if(e.isPropertyAccessExpression(l)||e.isElementAccessExpression(l))e.forEachChild(l,c);else if(e.isIdentifier(l)){if(!l.parent)return;if(e.isQualifiedName(l.parent)&&l!==l.parent.left)return;if(e.isPropertyAccessExpression(l.parent)&&l!==l.parent.expression)return;!function(c,l,u){var d=function(c,l,u){var d=H(c);if(!d)return;var g=e.getSymbolId(d).toString(),y=D.get(g);if(y&&y>=l)return g;if(D.set(g,l),y){for(var v=0,h=p;v<h.length;v++){var b=h[v];b.usages.get(c.text)&&b.usages.set(c.text,{usage:l,symbol:d,node:c})}return g}var E=d.getDeclarations(),T=E&&e.find(E,(function(e){return e.getSourceFile()===o}));if(!T)return;if(e.rangeContainsStartEnd(i,T.getStart(),T.end))return;if(n.facts&a.IsGenerator&&2===l){for(var S=e.createDiagnosticForNode(c,r.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators),x=0,L=f;x<L.length;x++){L[x].push(S)}for(var C=0,A=_;C<A.length;C++){A[C].push(S)}}for(var k=0;k<t.length;k++){var N=t[k];if(s.resolveName(d.name,N,d.flags,!1)!==d&&!m[k].has(g)){var I=W(d.exportSymbol||d,N,u);if(I)m[k].set(g,I);else if(u){if(!(262144&d.flags)){S=e.createDiagnosticForNode(c,r.typeWillNotBeVisibleInTheNewScope);f[k].push(S),_[k].push(S)}}else p[k].usages.set(c.text,{usage:l,symbol:d,node:c})}}return g}(c,l,u);if(d)for(var g=0;g<t.length;g++){var y=m[g].get(d);y&&p[g].substitutions.set(e.getNodeId(c).toString(),y)}}(l,u,e.isPartOfTypeNode(l))}else e.forEachChild(l,c)}(k),I&&!g(n.range)){K(s.getContextualType(n.range))}if(d.size>0){for(var O=e.createMap(),R=0,P=N;void 0!==P&&R<t.length;P=P.parent)if(P===t[R]&&(O.forEach((function(e,n){p[R].typeParameterUsages.set(n,e)})),R++),e.isDeclarationWithTypeParameters(P))for(var w=0,F=e.getEffectiveTypeParameterDeclarations(P);w<F.length;w++){var G=F[w],B=s.getTypeAtLocation(G);d.has(B.id.toString())&&O.set(B.id.toString(),B)}e.Debug.assert(R===t.length,\"Should have iterated all scopes\")}if(y.length){var V=e.isBlockScope(t[0],t[0].parent)?t[0]:e.getEnclosingBlockScopeContainer(t[0]);e.forEachChild(V,(function t(r){if(r===n.range||g(n.range)&&n.range.indexOf(r)>=0)return;var a=e.isIdentifier(r)?H(r):s.getSymbolAtLocation(r);if(a){var i=e.find(y,(function(e){return e.symbol===a}));if(i)if(e.isVariableDeclaration(i)){var o=i.symbol.id.toString();v.has(o)||(h.push(i),v.set(o,!0))}else l=l||i}e.forEachChild(r,t)}))}for(var U=function(t){var a=p[t];if(t>0&&(a.usages.size>0||a.typeParameterUsages.size>0)){var i=g(n.range)?n.range[0]:n.range;_[t].push(e.createDiagnosticForNode(i,r.cannotAccessVariablesFromNestedScopes))}var o,s=!1;if(p[t].usages.forEach((function(n){2===n.usage&&(s=!0,106500&n.symbol.flags&&n.symbol.valueDeclaration&&e.hasModifier(n.symbol.valueDeclaration,64)&&(o=n.symbol.valueDeclaration))})),e.Debug.assert(g(n.range)||0===h.length,\"No variable declarations expected if something was extracted\"),s&&!g(n.range)){var c=e.createDiagnosticForNode(n.range,r.cannotWriteInExpression);f[t].push(c),_[t].push(c)}else if(o&&t>0){c=e.createDiagnosticForNode(o,r.cannotExtractReadonlyPropertyInitializerOutsideConstructor);f[t].push(c),_[t].push(c)}else if(l){c=e.createDiagnosticForNode(l,r.cannotExtractExportedEntity);f[t].push(c),_[t].push(c)}},j=0;j<t.length;j++)U(j);return{target:k,usagesPerScope:p,functionErrorsPerScope:f,constantErrorsPerScope:_,exposedVariableDeclarations:h};function K(e){for(var n=0,t=s.getSymbolWalker((function(){return c.throwIfCancellationRequested(),!0})).walkType(e).visitedTypes;n<t.length;n++){var r=t[n];r.isTypeParameter()&&d.set(r.id.toString(),r)}}function H(n){return n.parent&&e.isShorthandPropertyAssignment(n.parent)&&n.parent.name===n?s.getShorthandAssignmentValueSymbol(n.parent):s.getSymbolAtLocation(n)}function W(n,t,r){if(n){var a=n.getDeclarations();if(a&&a.some((function(e){return e.parent===t})))return e.createIdentifier(n.name);var i=W(n.parent,t,r);if(void 0!==i)return r?e.createQualifiedName(i,e.createIdentifier(n.name)):e.createPropertyAccess(i,n.name)}}}(n,o,function(n,t){return g(n.range)?{pos:e.first(n.range).getStart(t),end:e.last(n.range).getEnd()}:n.range}(n,i),i,t.program.getTypeChecker(),t.cancellationToken)}}function m(e){var n,t=e.symbol;if(t&&t.declarations)for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];(void 0===n||i.pos<n.pos)&&(n=i)}return n}function f(n,t){var r=n.type,a=n.declaration,i=t.type,o=t.declaration;return e.compareProperties(a,o,\"pos\",e.compareValues)||e.compareStringsCaseSensitive(r.symbol?r.symbol.getName():\"\",i.symbol?i.symbol.getName():\"\")||e.compareValues(r.id,i.id)}function _(n,t){var r=e.map(n,(function(n){return e.createShorthandPropertyAssignment(n.symbol.name)})),a=e.map(t,(function(n){return e.createShorthandPropertyAssignment(n.symbol.name)}));return void 0===r?a:void 0===a?r:r.concat(a)}function g(n){return e.isArray(n)}function y(e){switch(e.kind){case 222:case 288:case 249:case 275:return!0;default:return!1}}n.registerRefactor(\"Extract Symbol\",{getAvailableActions:s,getEditsForAction:c}),t.getAvailableActions=s,t.getEditsForAction=c,function(n){function t(n){return{message:n,code:0,category:e.DiagnosticCategory.Message,key:n}}n.cannotExtractRange=t(\"Cannot extract range.\"),n.cannotExtractImport=t(\"Cannot extract import statement.\"),n.cannotExtractSuper=t(\"Cannot extract super call.\"),n.cannotExtractJSDoc=t(\"Cannot extract JSDoc.\"),n.cannotExtractEmpty=t(\"Cannot extract empty range.\"),n.expressionExpected=t(\"expression expected.\"),n.uselessConstantType=t(\"No reason to extract constant of type.\"),n.statementOrExpressionExpected=t(\"Statement or expression expected.\"),n.cannotExtractRangeContainingConditionalBreakOrContinueStatements=t(\"Cannot extract range containing conditional break or continue statements.\"),n.cannotExtractRangeContainingConditionalReturnStatement=t(\"Cannot extract range containing conditional return statement.\"),n.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange=t(\"Cannot extract range containing labeled break or continue with target outside of the range.\"),n.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators=t(\"Cannot extract range containing writes to references located outside of the target range in generators.\"),n.typeWillNotBeVisibleInTheNewScope=t(\"Type will not visible in the new scope.\"),n.functionWillNotBeVisibleInTheNewScope=t(\"Function will not visible in the new scope.\"),n.cannotExtractIdentifier=t(\"Select more than a single identifier.\"),n.cannotExtractExportedEntity=t(\"Cannot extract exported declaration\"),n.cannotWriteInExpression=t(\"Cannot write back side-effects when extracting an expression\"),n.cannotExtractReadonlyPropertyInitializerOutsideConstructor=t(\"Cannot move initialization of read-only class property outside of the constructor\"),n.cannotExtractAmbientBlock=t(\"Cannot extract code from ambient contexts\"),n.cannotAccessVariablesFromNestedScopes=t(\"Cannot access variables from nested scopes\"),n.cannotExtractToOtherFunctionLike=t(\"Cannot extract method to a function-like scope that is not a function\"),n.cannotExtractToJSClass=t(\"Cannot extract constant to a class scope in JS\"),n.cannotExtractToExpressionArrowFunction=t(\"Cannot extract constant to an arrow function without a block\")}(r=t.Messages||(t.Messages={})),function(e){e[e.None=0]=\"None\",e[e.HasReturn=1]=\"HasReturn\",e[e.IsGenerator=2]=\"IsGenerator\",e[e.IsAsyncFunction=4]=\"IsAsyncFunction\",e[e.UsesThis=8]=\"UsesThis\",e[e.InStaticRegion=16]=\"InStaticRegion\"}(a||(a={})),t.getRangeToExtract=l,function(e){e[e.Module=0]=\"Module\",e[e.Global=1]=\"Global\"}(i||(i={})),function(e){e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(o||(o={}))}(n.extractSymbol||(n.extractSymbol={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,a=n.startPosition,i=e.isSourceFileJS(t),o=e.getTokenAtPosition(t,a),s=e.createTextRangeFromSpan(e.getRefactorContextSpan(n)),c=e.findAncestor(o,(function(e){return e.parent&&r(s,e,t)&&!r(s,e.parent,t)}));if(c&&e.isTypeNode(c)){var l=n.program.getTypeChecker(),u=e.Debug.assertDefined(e.findAncestor(c,e.isStatement),\"Should find a statement\"),d=function(n,t,a,i){var o=[];return function s(c){if(e.isTypeReferenceNode(c)){if(e.isIdentifier(c.typeName))if(p=n.resolveName(c.typeName.text,c.typeName,262144,!0)){var l=e.cast(e.first(p.declarations),e.isTypeParameterDeclaration);r(a,l,i)&&!r(t,l,i)&&o.push(l)}}else if(e.isInferTypeNode(c)){var u=e.findAncestor(c,(function(n){return e.isConditionalTypeNode(n)&&r(n.extendsType,c,i)}));if(!u||!r(t,u,i))return!0}else if(e.isTypePredicateNode(c)||e.isThisTypeNode(c)){var d=e.findAncestor(c.parent,e.isFunctionLike);if(d&&d.type&&r(d.type,c,i)&&!r(t,d,i))return!0}else if(e.isTypeQueryNode(c)){var p;if(e.isIdentifier(c.exprName)){if((p=n.resolveName(c.exprName.text,c.exprName,111551,!1))&&r(a,p.valueDeclaration,i)&&!r(t,p.valueDeclaration,i))return!0}else if(e.isThisIdentifier(c.exprName.left)&&!r(t,c.parent,i))return!0}return e.forEachChild(c,s)}(t)?void 0:o}(l,c,u,t);if(d)return{isJS:i,selection:c,firstStatement:u,typeParameters:d,typeElements:function n(t,r){if(!r)return;if(e.isIntersectionTypeNode(r)){for(var a=[],i=e.createMap(),o=0,s=r.types;o<s.length;o++){var c=s[o],l=n(t,c);if(!l||!l.every((function(n){return n.name&&e.addToSeen(i,e.getNameFromPropertyName(n.name))})))return;e.addRange(a,l)}return a}if(e.isParenthesizedTypeNode(r))return n(t,r.type);if(e.isTypeLiteralNode(r))return r.members;return}(l,c)}}}function r(n,t,r){return e.rangeContainsStartEnd(n,e.skipTrivia(r.text,t.pos),t.end)}n.registerRefactor(\"Extract type\",{getAvailableActions:function(n){var r=t(n);return r?[{name:\"Extract type\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:r.isJS?[{name:\"Extract to typedef\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef)}]:e.append([{name:\"Extract to type alias\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias)}],r.typeElements&&{name:\"Extract to interface\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface)})}]:e.emptyArray},getEditsForAction:function(n,r){var a=n.file,i=e.Debug.assertDefined(t(n),\"Expected to find a range to extract\"),o=e.getUniqueName(\"NewType\",a),s=e.textChanges.ChangeTracker.with(n,(function(n){switch(r){case\"Extract to type alias\":return e.Debug.assert(!i.isJS,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=e.createTypeAliasDeclaration(void 0,void 0,r,s.map((function(n){return e.updateTypeParameterDeclaration(n,n.name,n.constraint,void 0)})),o);n.insertNodeBefore(t,i,c,!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);case\"Extract to typedef\":return e.Debug.assert(i.isJS,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=e.createNode(315);c.tagName=e.createIdentifier(\"typedef\"),c.fullName=e.createIdentifier(r),c.name=c.fullName,c.typeExpression=e.createJSDocTypeExpression(o);var l=[];e.forEach(s,(function(n){var t=e.getEffectiveConstraintOfTypeParameter(n),r=e.createNode(314);r.tagName=e.createIdentifier(\"template\"),r.constraint=t&&e.cast(t,e.isJSDocTypeExpression);var a=e.createNode(154);a.name=n.name,r.typeParameters=e.createNodeArray([a]),l.push(r)})),n.insertNodeBefore(t,i,e.createJSDocComment(void 0,e.createNodeArray(e.concatenate(l,[c]))),!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);case\"Extract to interface\":return e.Debug.assert(!i.isJS&&!!i.typeElements,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=a.typeElements,l=e.createInterfaceDeclaration(void 0,void 0,r,s,void 0,c);n.insertNodeBefore(t,i,l,!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);default:e.Debug.fail(\"Unexpected action name\")}})),c=a.fileName;return{edits:s,renameFilename:c,renameLocation:e.getRenameLocation(s,c,o,!1)}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Generate 'get' and 'set' accessors\",a=e.Diagnostics.Generate_get_and_set_accessors.message;function i(n){return e.isParameterPropertyDeclaration(n,n.parent)||e.isPropertyDeclaration(n)||e.isPropertyAssignment(n)}function o(n,t){return e.isIdentifier(t)?e.createIdentifier(n):e.createLiteral(n)}function s(n,t,r){var a=t?r.name:e.createThis();return e.isIdentifier(n)?e.createPropertyAccess(a,n):e.createElementAccess(a,e.createLiteral(n))}function c(n,t,r){var a=e.append(n?void 0:[e.createToken(r)],t?e.createToken(119):void 0);return a&&e.createNodeArray(a)}function l(n){var t=n.file,r=n.startPosition,a=n.endPosition,s=e.getTokenAtPosition(t,r),c=e.findAncestor(s.parent,i);if(c&&e.nodeOverlapsWithStartEnd(c.name,t,r,a)&&function(n){return e.isIdentifier(n)||e.isStringLiteral(n)}(c.name)&&124==(124|e.getModifierFlags(c))){var l=c.name.text,u=function(e){return 95===e.charCodeAt(0)}(l),d=o(u?l:e.getUniqueName(\"_\"+l,t),c.name),p=o(u?e.getUniqueName(l.substring(1),t):l,c.name);return{isStatic:e.hasStaticModifier(c),isReadonly:e.hasReadonlyModifier(c),type:e.getTypeAnnotationNode(c),container:155===c.kind?c.parent.parent:c.parent,originalName:c.name.text,declaration:c,fieldName:d,accessorName:p,renameAccessor:u}}}function u(n,t,r,a,i){e.isParameterPropertyDeclaration(a,a.parent)?n.insertNodeAtClassStart(t,i,r):e.isPropertyAssignment(a)?n.insertNodeAfterComma(t,a,r):n.insertNodeAfter(t,a,r)}n.registerRefactor(r,{getEditsForAction:function(n,t){var r=n.file,a=l(n);if(!a)return;var i=e.isSourceFileJS(r),o=e.textChanges.ChangeTracker.fromContext(n),d=a.isStatic,p=a.isReadonly,m=a.fieldName,f=a.accessorName,_=a.originalName,g=a.type,y=a.container,v=a.declaration,h=a.renameAccessor;e.suppressLeadingAndTrailingTrivia(m),e.suppressLeadingAndTrailingTrivia(v),e.suppressLeadingAndTrailingTrivia(y);var b=e.isClassLike(y),E=-65&e.getModifierFlags(v),T=b?!E||8&E?c(i,d,118):e.createNodeArray(e.createModifiersFromModifierFlags(E)):void 0,S=b?c(i,d,116):void 0;!function(n,t,r,a,i){e.isPropertyDeclaration(r)?function(n,t,r,a,i){var o=e.updateProperty(r,r.decorators,i,a,r.questionToken||r.exclamationToken,r.type,r.initializer);n.replaceNode(t,r,o)}(n,t,r,a,i):e.isPropertyAssignment(r)?function(n,t,r,a){var i=e.updatePropertyAssignment(r,a,r.initializer);n.replacePropertyAssignment(t,r,i)}(n,t,r,a):n.replaceNode(t,r,e.updateParameter(r,r.decorators,i,r.dotDotDotToken,e.cast(a,e.isIdentifier),r.questionToken,r.type,r.initializer))}(o,r,v,m,S);var x=function(n,t,r,a,i,o){return e.createGetAccessor(void 0,a,t,void 0,r,e.createBlock([e.createReturn(s(n,i,o))],!0))}(m,f,g,T,d,y);if(e.suppressLeadingAndTrailingTrivia(x),u(o,r,x,v,y),p){var L=e.getFirstConstructorWithBody(y);L&&function(n,t,r,a,i){if(!r.body)return;r.body.forEachChild((function r(o){e.isElementAccessExpression(o)&&103===o.expression.kind&&e.isStringLiteral(o.argumentExpression)&&o.argumentExpression.text===i&&e.isWriteAccess(o)&&n.replaceNode(t,o.argumentExpression,e.createStringLiteral(a)),e.isPropertyAccessExpression(o)&&103===o.expression.kind&&o.name.text===i&&e.isWriteAccess(o)&&n.replaceNode(t,o.name,e.createIdentifier(a)),e.isFunctionLike(o)||e.isClassLike(o)||o.forEachChild(r)}))}(o,r,L,m.text,_)}else{var C=function(n,t,r,a,i,o){return e.createSetAccessor(void 0,a,t,[e.createParameter(void 0,void 0,void 0,e.createIdentifier(\"value\"),void 0,r)],e.createBlock([e.createStatement(e.createAssignment(s(n,i,o),e.createIdentifier(\"value\")))],!0))}(m,f,g,T,d,y);e.suppressLeadingAndTrailingTrivia(C),u(o,r,C,v,y)}var A=o.getChanges(),D=r.fileName,k=h?f:m,N=(e.isIdentifier(k)?0:-1)+e.getRenameLocation(A,D,k.text,e.isParameter(v));return{renameFilename:D,renameLocation:N,edits:A}},getAvailableActions:function(n){return l(n)?[{name:r,description:a,actions:[{name:r,description:a}]}]:e.emptyArray}})}(n.generateGetAccessorAndSetAccessor||(n.generateGetAccessorAndSetAccessor={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=function(n){var t=n.file,r=e.createTextRangeFromSpan(e.getRefactorContextSpan(n)),a=t.statements,i=e.findIndex(a,(function(e){return e.end>r.pos}));if(-1!==i){var o=a[i];if(e.isNamedDeclaration(o)&&o.name&&e.rangeContainsRange(o.name,r))return{toMove:[a[i]],afterLast:a[i+1]};if(!(r.pos>o.getStart(t))){var s=e.findIndex(a,(function(e){return e.end>r.end}),i);if(-1===s||!(0===s||a[s].getStart(t)<r.end))return{toMove:a.slice(i,-1===s?a.length:s),afterLast:-1===s?void 0:a[s]}}}}(n);if(void 0!==t){var r=[],a=[],i=t.toMove,o=t.afterLast;return e.getRangesWhere(i,(function(n){return!function(n){switch(n.kind){case 253:return!0;case 252:return!e.hasModifier(n,1);case 224:return n.declarationList.declarations.every((function(n){return!!n.initializer&&e.isRequireCall(n.initializer,!0)}));default:return!1}}(n)}),(function(e,n){for(var t=e;t<n;t++)r.push(i[t]);a.push({first:i[e],afterLast:o})})),0===r.length?void 0:{all:r,ranges:a}}}function r(e,n,t){for(var r=0,a=n;r<a.length;r++){var i=a[r],o=i.first,s=i.afterLast;t.deleteNodeRangeExcludingEnd(e,o,s)}}function a(e){return 253===e.kind?e.moduleSpecifier:252===e.kind?e.moduleReference.expression:e.initializer.arguments[0]}function i(n,t){if(e.isImportDeclaration(n))e.isStringLiteral(n.moduleSpecifier)&&t(n);else if(e.isImportEqualsDeclaration(n))e.isExternalModuleReference(n.moduleReference)&&e.isStringLiteralLike(n.moduleReference.expression)&&t(n);else if(e.isVariableStatement(n))for(var r=0,a=n.declarationList.declarations;r<a.length;r++){var i=a[r];i.initializer&&e.isRequireCall(i.initializer,!0)&&t(i)}}function o(n,t,r,a,i){if(r=e.ensurePathIsNonModuleName(r),a){var o=t.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))}));return e.makeImportIfNecessary(n,o,r,i)}e.Debug.assert(!n,\"No default import should exist\");var l=t.map((function(n){return e.createBindingElement(void 0,void 0,n)}));return l.length?s(e.createObjectBindingPattern(l),void 0,c(e.createLiteral(r))):void 0}function s(n,t,r,a){return void 0===a&&(a=2),e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(n,t,r)],a))}function c(n){return e.createCall(e.createIdentifier(\"require\"),void 0,[n])}function l(n,t,r,a){switch(t.kind){case 253:!function(n,t,r,a){if(!t.importClause)return;var i=t.importClause,o=i.name,s=i.namedBindings,c=!o||a(o),l=!s||(255===s.kind?a(s.name):0!==s.elements.length&&s.elements.every((function(e){return a(e.name)})));if(c&&l)r.delete(n,t);else if(o&&c&&r.delete(n,o),s)if(l)r.replaceNode(n,t.importClause,e.updateImportClause(t.importClause,o,void 0));else if(256===s.kind)for(var u=0,d=s.elements;u<d.length;u++){var p=d[u];a(p.name)&&r.delete(n,p)}}(n,t,r,a);break;case 252:a(t.name)&&r.delete(n,t);break;case 241:!function(n,t,r,a){var i=t.name;switch(i.kind){case 75:a(i)&&r.delete(n,i);break;case 189:break;case 188:if(i.elements.every((function(n){return e.isIdentifier(n.name)&&a(n.name)})))r.delete(n,e.isVariableDeclarationList(t.parent)&&1===t.parent.declarations.length?t.parent.parent:t);else for(var o=0,s=i.elements;o<s.length;o++){var c=s[o];e.isIdentifier(c.name)&&a(c.name)&&r.delete(n,c.name)}}}(n,t,r,a);break;default:e.Debug.assertNever(t,\"Unexpected import decl kind \"+t.kind)}}function u(n){switch(n.kind){case 252:case 257:case 254:return!0;case 241:return d(n);case 190:return e.isVariableDeclaration(n.parent.parent)&&d(n.parent.parent);default:return!1}}function d(n){return e.isSourceFile(n.parent.parent.parent)&&!!n.initializer&&e.isRequireCall(n.initializer,!0)}function p(n,t,r){switch(n.kind){case 253:var a=n.importClause;if(!a)return;var i=a.name&&r(a.name)?a.name:void 0,o=a.namedBindings&&function(n,t){if(255===n.kind)return t(n.name)?n:void 0;var r=n.elements.filter((function(e){return t(e.name)}));return r.length?e.createNamedImports(r):void 0}(a.namedBindings,r);return i||o?e.createImportDeclaration(void 0,void 0,e.createImportClause(i,o),t):void 0;case 252:return r(n.name)?n:void 0;case 241:var l=function(n,t){switch(n.kind){case 75:return t(n)?n:void 0;case 189:return n;case 188:var r=n.elements.filter((function(n){return n.propertyName||!e.isIdentifier(n.name)||t(n.name)}));return r.length?e.createObjectBindingPattern(r):void 0}}(n.name,r);return l?s(l,n.type,c(t),n.parent.flags):void 0;default:return e.Debug.assertNever(n,\"Unexpected import kind \"+n.kind)}}function m(n,t,r){n.forEachChild((function n(a){if(e.isIdentifier(a)&&!e.isDeclarationName(a)){var i=t.getSymbolAtLocation(a);i&&r(i)}else a.forEachChild(n)}))}n.registerRefactor(\"Move to a new file\",{getAvailableActions:function(n){if(!n.preferences.allowTextChangesInNewFiles||void 0===t(n))return e.emptyArray;var r=e.getLocaleSpecificMessage(e.Diagnostics.Move_to_a_new_file);return[{name:\"Move to a new file\",description:r,actions:[{name:\"Move to a new file\",description:r}]}]},getEditsForAction:function(n,s){e.Debug.assert(\"Move to a new file\"===s,\"Wrong refactor invoked\");var d=e.Debug.assertDefined(t(n));return{edits:e.textChanges.ChangeTracker.with(n,(function(t){return s=n.file,x=n.program,L=d,C=t,A=n.host,D=n.preferences,k=x.getTypeChecker(),N=function(n,t,r){var a=new f,i=new f,o=new f,s=function(n){if(void 0!==n){var t=r.getJsxNamespace(n),a=r.resolveName(t,n,1920,!0);return a&&e.some(a.declarations,u)?a:void 0}}(e.find(t,(function(e){return!!(2&e.transformFlags)})));s&&i.add(s);for(var c=0,l=t;c<l.length;c++)y(E=l[c],(function(n){a.add(e.Debug.assertDefined(e.isExpressionStatement(n)?r.getSymbolAtLocation(n.expression.left):n.symbol,\"Need a symbol here\"))}));for(var d=0,p=t;d<p.length;d++)m(E=p[d],r,(function(t){var r;if(t.declarations)for(var s=0,c=t.declarations;s<c.length;s++){var l=c[s];u(l)?i.add(t):_(l)&&(r=l,(e.isVariableDeclaration(r)?r.parent.parent.parent:r.parent)===n)&&!a.has(t)&&o.add(t)}}));for(var g=i.clone(),v=new f,h=0,b=n.statements;h<b.length;h++){var E=b[h];e.contains(t,E)||(s&&2&E.transformFlags&&g.delete(s),m(E,r,(function(e){a.has(e)&&v.add(e),g.delete(e)})))}return{movedSymbols:a,newFileImportsFromOldFile:o,oldFileImportsFromNewFile:v,oldImportsNeededByNewFile:i,unusedImportsFromOldFile:g}}(s,L.all,k),I=e.getDirectoryPath(s.fileName),M=e.extensionFromPath(s.fileName),O=function(n,t,r,a){for(var i=n,o=1;;o++){var s=e.combinePaths(r,i+t);if(!a.fileExists(s))return i;i=n+\".\"+o}}(N.movedSymbols.forEachEntry(e.symbolNameNoDefault)||\"newFile\",M,I,A),R=O+M,C.createNewFile(s,e.combinePaths(I,R),function(n,t,s,u,d,m,f){var x=d.getTypeChecker();if(!n.externalModuleIndicator&&!n.commonJsModuleIndicator)return r(n,u.ranges,s),u.all;var L=!!n.externalModuleIndicator,C=e.getQuotePreference(n,f),A=function(n,t,r,a){var i,s=[];return n.forEach((function(n){\"default\"===n.escapedName?i=e.createIdentifier(e.symbolNameNoDefault(n)):s.push(n.name)})),o(i,s,t,r,a)}(t.oldFileImportsFromNewFile,m,L,C);return A&&e.insertImport(s,n,A),function(n,t,r,a,o){for(var s=0,c=n.statements;s<c.length;s++){var u=c[s];e.contains(t,u)||i(u,(function(e){return l(n,e,r,(function(e){return a.has(o.getSymbolAtLocation(e))}))}))}}(n,u.all,s,t.unusedImportsFromOldFile,x),r(n,u.ranges,s),function(n,t,r,o,s){for(var u=t.getTypeChecker(),d=function(t){if(t===r)return\"continue\";for(var d=function(d){i(d,(function(i){if(u.getSymbolAtLocation(a(i))===r.symbol){var m=function(n){var t=e.isBindingElement(n.parent)?e.getPropertySymbolFromBindingElement(u,n.parent):e.skipAlias(u.getSymbolAtLocation(n),u);return!!t&&o.has(t)};l(t,i,n,m);var f=e.combinePaths(e.getDirectoryPath(a(i).text),s),_=p(i,e.createLiteral(f),m);_&&n.insertNodeAfter(t,d,_);var g=function(n){switch(n.kind){case 253:return n.importClause&&n.importClause.namedBindings&&255===n.importClause.namedBindings.kind?n.importClause.namedBindings.name:void 0;case 252:return n.name;case 241:return e.tryCast(n.name,e.isIdentifier);default:return e.Debug.assertNever(n,\"Unexpected node kind \"+n.kind)}}(i);g&&function(n,t,r,a,i,o,s,l){var u=e.codefix.moduleSpecifierToValidIdentifier(i,99),d=!1,p=[];if(e.FindAllReferences.Core.eachSymbolReferenceInFile(s,r,t,(function(n){e.isPropertyAccessExpression(n.parent)&&(d=d||!!r.resolveName(u,n,67108863,!0),a.has(r.getSymbolAtLocation(n.parent.name))&&p.push(n))})),p.length){for(var m=d?e.getUniqueName(u,t):u,f=0,_=p;f<_.length;f++){var g=_[f];n.replaceNode(t,g,e.createIdentifier(m))}n.insertNodeAfter(t,l,function(n,t,r){var a=e.createIdentifier(t),i=e.createLiteral(r);switch(n.kind){case 253:return e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(a)),i);case 252:return e.createImportEqualsDeclaration(void 0,void 0,a,e.createExternalModuleReference(i));case 241:return e.createVariableDeclaration(a,void 0,c(i));default:return e.Debug.assertNever(n,\"Unexpected node kind \"+n.kind)}}(l,i,o))}}(n,t,u,o,s,f,g,i)}}))},m=0,f=t.statements;m<f.length;m++)d(f[m])},m=0,f=t.getSourceFiles();m<f.length;m++){var _=f[m];d(_)}}(s,d,n,t.movedSymbols,m),__spreadArrays(function(n,t,r,s,c,l,u){for(var d,m=[],f=0,g=n.statements;f<g.length;f++)i(g[f],(function(n){e.append(m,p(n,a(n),(function(e){return t.has(c.getSymbolAtLocation(e))})))}));var y=[],b=e.nodeSeenTracker();return r.forEach((function(t){for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];if(_(i)){var o=(u=i,e.isExpressionStatement(u)?u.expression.left.name:e.tryCast(u.name,e.isIdentifier));if(o){var c=v(i);b(c)&&h(n,c,s,l),e.hasModifier(i,512)?d=o:y.push(o.text)}}}var u})),e.append(m,o(d,y,e.removeFileExtension(e.getBaseFileName(n.fileName)),l,u)),m}(n,t.oldImportsNeededByNewFile,t.newFileImportsFromOldFile,s,x,L,C),function(n,t,r,a){return e.flatMap(t,(function(t){if(o=t,e.Debug.assert(e.isSourceFile(o.parent),\"Node parent should be a SourceFile\"),(g(o)||e.isVariableStatement(o))&&!b(n,t,a)&&y(t,(function(n){return r.has(e.Debug.assertDefined(n.symbol))}))){var i=function(e,n){return n?[E(e)]:function(e){return __spreadArrays([e],T(e).map(S))}(e)}(t,a);if(i)return i}var o;return t}))}(n,u.all,t.oldFileImportsFromNewFile,L))}(s,N,C,L,x,O,D)),void function(n,t,r,a,i){var o=n.getCompilerOptions().configFile;if(o){var s=e.normalizePath(e.combinePaths(r,\"..\",a)),c=e.getRelativePathFromFile(o.fileName,s,i),l=o.statements[0]&&e.tryCast(o.statements[0].expression,e.isObjectLiteralExpression),u=l&&e.find(l.properties,(function(n){return e.isPropertyAssignment(n)&&e.isStringLiteral(n.name)&&\"files\"===n.name.text}));u&&e.isArrayLiteralExpression(u.initializer)&&t.insertNodeInListAfter(o,e.last(u.initializer.elements),e.createLiteral(c),u.initializer.elements)}}(x,C,s.fileName,R,e.hostGetCanonicalFileName(A));var s,x,L,C,A,D,k,N,I,M,O,R})),renameFilename:void 0,renameLocation:void 0}}});var f=function(){function n(){this.map=e.createMap()}return n.prototype.add=function(n){this.map.set(String(e.getSymbolId(n)),n)},n.prototype.has=function(n){return this.map.has(String(e.getSymbolId(n)))},n.prototype.delete=function(n){this.map.delete(String(e.getSymbolId(n)))},n.prototype.forEach=function(e){this.map.forEach(e)},n.prototype.forEachEntry=function(n){return e.forEachEntry(this.map,n)},n.prototype.clone=function(){var t=new n;return e.copyEntries(this.map,t.map),t},n}();function _(n){return g(n)&&e.isSourceFile(n.parent)||e.isVariableDeclaration(n)&&e.isSourceFile(n.parent.parent.parent)}function g(e){switch(e.kind){case 243:case 244:case 248:case 247:case 246:case 245:case 252:return!0;default:return!1}}function y(n,t){switch(n.kind){case 243:case 244:case 248:case 247:case 246:case 245:case 252:return t(n);case 224:return e.firstDefined(n.declarationList.declarations,(function(n){return function n(t,r){switch(t.kind){case 75:return r(e.cast(t.parent,(function(n){return e.isVariableDeclaration(n)||e.isBindingElement(n)})));case 189:case 188:return e.firstDefined(t.elements,(function(t){return e.isOmittedExpression(t)?void 0:n(t.name,r)}));default:return e.Debug.assertNever(t,\"Unexpected name kind \"+t.kind)}}(n.name,t)}));case 225:var r=n.expression;return e.isBinaryExpression(r)&&1===e.getAssignmentDeclarationKind(r)?t(n):void 0}}function v(n){switch(n.kind){case 241:return n.parent.parent;case 190:return v(e.cast(n.parent.parent,(function(n){return e.isVariableDeclaration(n)||e.isBindingElement(n)})));default:return n}}function h(n,t,r,a){if(!b(n,t,a))if(a)e.isExpressionStatement(t)||r.insertExportModifier(n,t);else{var i=T(t);0!==i.length&&r.insertNodesAfter(n,t,i.map(S))}}function b(n,t,r){return r?!e.isExpressionStatement(t)&&e.hasModifier(t,1):T(t).some((function(t){return n.symbol.exports.has(e.escapeLeadingUnderscores(t))}))}function E(n){var t=e.concatenate([e.createModifier(88)],n.modifiers);switch(n.kind){case 243:return e.updateFunctionDeclaration(n,n.decorators,t,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body);case 244:return e.updateClassDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.heritageClauses,n.members);case 224:return e.updateVariableStatement(n,t,n.declarationList);case 248:return e.updateModuleDeclaration(n,n.decorators,t,n.name,n.body);case 247:return e.updateEnumDeclaration(n,n.decorators,t,n.name,n.members);case 246:return e.updateTypeAliasDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.type);case 245:return e.updateInterfaceDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.heritageClauses,n.members);case 252:return e.updateImportEqualsDeclaration(n,n.decorators,t,n.name,n.moduleReference);case 225:return e.Debug.fail();default:return e.Debug.assertNever(n,\"Unexpected declaration kind \"+n.kind)}}function T(n){switch(n.kind){case 243:case 244:return[n.name.text];case 224:return e.mapDefined(n.declarationList.declarations,(function(n){return e.isIdentifier(n.name)?n.name.text:void 0}));case 248:case 247:case 246:case 245:case 252:return e.emptyArray;case 225:return e.Debug.fail(\"Can't export an ExpressionStatement\");default:return e.Debug.assertNever(n,\"Unexpected decl kind \"+n.kind)}}function S(n){return e.createExpressionStatement(e.createBinary(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.createIdentifier(n)),62,e.createIdentifier(n)))}}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Add or remove braces in an arrow function\",a=e.Diagnostics.Add_or_remove_braces_in_an_arrow_function.message,i=e.Diagnostics.Add_braces_to_arrow_function.message,o=e.Diagnostics.Remove_braces_from_arrow_function.message;function s(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingFunction(r);if(a&&e.isArrowFunction(a)&&e.rangeContainsRange(a,r)&&!e.rangeContainsRange(a.body,r)){if(e.isExpression(a.body))return{func:a,addBraces:!0,expression:a.body};if(1===a.body.statements.length){var i=e.first(a.body.statements);if(e.isReturnStatement(i))return{func:a,addBraces:!1,expression:i.expression,returnStatement:i}}}}n.registerRefactor(r,{getEditsForAction:function(n,t){var r=n.file,a=n.startPosition,i=s(r,a);if(!i)return;var o,c=i.expression,l=i.returnStatement,u=i.func;if(\"Add braces to arrow function\"===t){var d=e.createReturn(c);o=e.createBlock([d],!0),e.suppressLeadingAndTrailingTrivia(o),e.copyLeadingComments(c,d,r,3,!0)}else if(\"Remove braces from arrow function\"===t&&l){var p=c||e.createVoidZero();o=function(n){return e.isBinaryExpression(n)&&27===n.operatorToken.kind||e.isObjectLiteralExpression(n)}(p)?e.createParen(p):p,e.suppressLeadingAndTrailingTrivia(o),e.copyLeadingComments(l,o,r,3,!1)}else e.Debug.fail(\"invalid action\");var m=e.textChanges.ChangeTracker.with(n,(function(e){return e.replaceNode(r,u.body,o)}));return{renameFilename:void 0,renameLocation:void 0,edits:m}},getAvailableActions:function(n){var t=n.file,c=n.startPosition,l=s(t,c);return l?[{name:r,description:a,actions:[l.addBraces?{name:\"Add braces to arrow function\",description:i}:{name:\"Remove braces from arrow function\",description:o}]}]:e.emptyArray}})}(n.addOrRemoveBracesToArrowFunction||(n.addOrRemoveBracesToArrowFunction={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Convert parameters to destructured object\";function a(n){var t=n.node;return e.isImportSpecifier(t.parent)||e.isImportClause(t.parent)||e.isImportEqualsDeclaration(t.parent)||e.isNamespaceImport(t.parent)?t:e.isExportSpecifier(t.parent)||e.isExportAssignment(t.parent)?t:void 0}function i(n){if(e.isDeclaration(n.node.parent))return n.node}function o(n){if(n.node.parent){var t=n.node,r=t.parent;switch(r.kind){case 195:case 196:var a=e.tryCast(r,e.isCallOrNewExpression);if(a&&a.expression===t)return a;break;case 193:var i=e.tryCast(r,e.isPropertyAccessExpression);if(i&&i.parent&&i.name===t){var o=e.tryCast(i.parent,e.isCallOrNewExpression);if(o&&o.expression===i)return o}break;case 194:var s=e.tryCast(r,e.isElementAccessExpression);if(s&&s.parent&&s.argumentExpression===t){var c=e.tryCast(s.parent,e.isCallOrNewExpression);if(c&&c.expression===s)return c}}}}function s(n){if(n.node.parent){var t=n.node,r=t.parent;switch(r.kind){case 193:var a=e.tryCast(r,e.isPropertyAccessExpression);if(a&&a.expression===t)return a;break;case 194:var i=e.tryCast(r,e.isElementAccessExpression);if(i&&i.expression===t)return i}}}function c(n){var t=n.node;if(2===e.getMeaningFromLocation(t)||e.isExpressionWithTypeArgumentsInClassExtendsClause(t.parent))return t}function l(n,t,r){var a=e.getTouchingToken(n,t),i=e.getContainingFunctionDeclaration(a);if(!function(n){var t=e.findAncestor(n,e.isJSDocNode);if(t){var r=e.findAncestor(t,(function(n){return!e.isJSDocNode(n)}));return!!r&&e.isFunctionLikeDeclaration(r)}return!1}(a))return!(i&&function(n,t){if(!function(n,t){return function(e){if(m(e))return e.length-1;return e.length}(n)>=2&&e.every(n,(function(n){return function(n,t){if(e.isRestParameter(n)){var r=t.getTypeAtLocation(n);if(!t.isArrayType(r)&&!t.isTupleType(r))return!1}return!n.modifiers&&!n.decorators&&e.isIdentifier(n.name)}(n,t)}))}(n.parameters,t))return!1;switch(n.kind){case 243:return d(n)&&u(n,t);case 160:return u(n,t);case 161:return e.isClassDeclaration(n.parent)?d(n.parent)&&u(n,t):p(n.parent.parent)&&u(n,t);case 200:case 201:return p(n.parent)}return!1}(i,r)&&e.rangeContainsRange(i,a))||i.body&&e.rangeContainsRange(i.body,a)?void 0:i}function u(e,n){return!!e.body&&!n.isImplementationOfOverload(e)}function d(n){return!!n.name||!!e.findModifier(n,83)}function p(n){return e.isVariableDeclaration(n)&&e.isVarConst(n)&&e.isIdentifier(n.name)&&!n.type}function m(n){return n.length>0&&e.isThis(n[0].name)}function f(n){return m(n)&&(n=e.createNodeArray(n.slice(1),n.hasTrailingComma)),n}function _(n,t){var r=f(n.parameters),a=e.isRestParameter(e.last(r)),i=a?t.slice(0,r.length-1):t,o=e.map(i,(function(n,t){var a,i,o=y(r[t]),s=(a=o,i=n,e.isIdentifier(i)&&e.getTextOfIdentifierOrLiteral(i)===a?e.createShorthandPropertyAssignment(a):e.createPropertyAssignment(a,i));return e.suppressLeadingAndTrailingTrivia(s.name),e.isPropertyAssignment(s)&&e.suppressLeadingAndTrailingTrivia(s.initializer),g(n,s),s}));if(a&&t.length>=r.length){var s=t.slice(r.length-1),c=e.createPropertyAssignment(y(e.last(r)),e.createArrayLiteral(s));o.push(c)}return e.createObjectLiteral(o,!1)}function g(n,t){var r=n.getSourceFile();!function(e,n){for(var t=e.getFullStart(),r=e.getStart(),a=t;a<r;a++)if(10===n.charCodeAt(a))return!0;return!1}(n,r.text)?e.copyTrailingAsLeadingComments(n,t,r):e.copyLeadingComments(n,t,r),e.copyTrailingComments(n,t,r)}function y(n){return e.getTextOfIdentifierOrLiteral(n.name)}n.registerRefactor(r,{getEditsForAction:function(n,t){e.Debug.assert(t===r,\"Unexpected action name\");var u=n.file,d=n.startPosition,p=n.program,v=n.cancellationToken,h=n.host,b=l(u,d,p.getTypeChecker());if(!b||!v)return;var E=function(n,t,r){var l=function(n){switch(n.kind){case 243:return n.name?[n.name]:[e.Debug.assertDefined(e.findModifier(n,83),\"Nameless function declaration should be a default export\")];case 160:return[n.name];case 161:var t=e.Debug.assertDefined(e.findChildOfKind(n,128,n.getSourceFile()),\"Constructor declaration should have constructor keyword\");return 213===n.parent.kind?[n.parent.parent.name,t]:[t];case 201:return[n.parent.name];case 200:return n.name?[n.name,n.parent.name]:[n.parent.name];default:return e.Debug.assertNever(n,\"Unexpected function declaration kind \"+n.kind)}}(n),u=e.isConstructorDeclaration(n)?function(n){switch(n.parent.kind){case 244:var t=n.parent;return t.name?[t.name]:[e.Debug.assertDefined(e.findModifier(t,83),\"Nameless class declaration should be a default export\")];case 213:var r=n.parent,a=n.parent.parent,i=r.name;return i?[i,a.name]:[a.name]}}(n):[],d=e.deduplicate(__spreadArrays(l,u),e.equateValues),p=t.getTypeChecker(),m=function(t){for(var r={accessExpressions:[],typeUsages:[]},d={functionCalls:[],declarations:[],classReferences:r,valid:!0},p=e.map(l,f),m=e.map(u,f),_=e.isConstructorDeclaration(n),g=0,y=t;g<y.length;g++){var v=y[g];if(1===v.kind){if(e.contains(p,f(v.node))||e.isNewExpressionTarget(v.node)){if(a(v))continue;if(b=i(v)){d.declarations.push(b);continue}var h=o(v);if(h){d.functionCalls.push(h);continue}}if(_&&e.contains(m,f(v.node))){var b;if(a(v))continue;if(b=i(v)){d.declarations.push(b);continue}var E=s(v);if(E){r.accessExpressions.push(E);continue}if(e.isClassDeclaration(n.parent)){var T=c(v);if(T){r.typeUsages.push(T);continue}}}d.valid=!1}else d.valid=!1}return d}(e.flatMap(d,(function(n){return e.FindAllReferences.getReferenceEntriesForNode(-1,n,t,t.getSourceFiles(),r)})));e.every(m.declarations,(function(n){return e.contains(d,n)}))||(m.valid=!1);return m;function f(n){var t=p.getSymbolAtLocation(n);return t&&e.getSymbolTarget(t,p)}}(b,p,v);if(E.valid){return{renameFilename:void 0,renameLocation:void 0,edits:e.textChanges.ChangeTracker.with(n,(function(n){return function(n,t,r,a,i,o){var s=e.map(function(n,t,r){var a,i=t.getTypeChecker(),o=f(n.parameters),s=e.map(o,(function(n){var t=e.createBindingElement(void 0,void 0,y(n),e.isRestParameter(n)&&b(n)?e.createArrayLiteral():n.initializer);e.suppressLeadingAndTrailingTrivia(t),n.initializer&&t.initializer&&g(n.initializer,t.initializer);return t})),c=e.createObjectBindingPattern(s),l=(u=o,d=e.map(u,h),e.addEmitFlags(e.createTypeLiteralNode(d),1));var u,d;e.every(o,b)&&(a=e.createObjectLiteral());var p=e.createParameter(void 0,void 0,void 0,c,void 0,l,a);if(m(n.parameters)){var _=n.parameters[0],v=e.createParameter(void 0,void 0,void 0,_.name,void 0,_.type);return e.suppressLeadingAndTrailingTrivia(v.name),g(_.name,v.name),_.type&&(e.suppressLeadingAndTrailingTrivia(v.type),g(_.type,v.type)),e.createNodeArray([v,p])}return e.createNodeArray([p]);function h(n){var a,o,s=n.type;s||!n.initializer&&!e.isRestParameter(n)||(a=n,o=i.getTypeAtLocation(a),s=e.getTypeNodeIfAccessible(o,a,t,r));var c=e.createPropertySignature(void 0,y(n),b(n)?e.createToken(57):n.questionToken,s,void 0);return e.suppressLeadingAndTrailingTrivia(c),g(n.name,c.name),n.type&&c.type&&g(n.type,c.type),c}function b(n){if(e.isRestParameter(n)){var t=i.getTypeAtLocation(n);return!i.isTupleType(t)}return i.isOptionalParameter(n)}}(i,t,r),(function(n){return e.getSynthesizedDeepClone(n)}));a.replaceNodeRangeWithNodes(n,e.first(i.parameters),e.last(i.parameters),s,{joiner:\", \",indentation:0,leadingTriviaOption:e.textChanges.LeadingTriviaOption.IncludeAll,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include});for(var c=e.sortAndDeduplicate(o.functionCalls,(function(n,t){return e.compareValues(n.pos,t.pos)})),l=0,u=c;l<u.length;l++){var d=u[l];if(d.arguments&&d.arguments.length){var p=e.getSynthesizedDeepClone(_(i,d.arguments),!0);a.replaceNodeRange(e.getSourceFileOfNode(d),e.first(d.arguments),e.last(d.arguments),p,{leadingTriviaOption:e.textChanges.LeadingTriviaOption.IncludeAll,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include})}}}(u,p,h,n,b,E)}))}}return{edits:[]}},getAvailableActions:function(n){var t=n.file,a=n.startPosition;if(e.isSourceFileJS(t))return e.emptyArray;if(!l(t,a,n.program.getTypeChecker()))return e.emptyArray;var i=e.getLocaleSpecificMessage(e.Diagnostics.Convert_parameters_to_destructured_object);return[{name:r,description:i,actions:[{name:r,description:i}]}]}})}(n.convertParamsToDestructuredObject||(n.convertParamsToDestructuredObject={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){function n(n,r,a,i){var c=e.isNodeKind(n)?new t(n,r,a):75===n?new s(75,r,a):new o(n,r,a);return c.parent=i,c.flags=25358336&i.flags,c}e.servicesVersion=\"0.8\";var t=function(){function t(e,n,t){this.pos=n,this.end=t,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=e}return t.prototype.assertHasRealPosition=function(n){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),n||\"Node must have a real position for this operation\")},t.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},t.prototype.getStart=function(n,t){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,n,t)},t.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},t.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},t.prototype.getWidth=function(e){return this.assertHasRealPosition(),this.getEnd()-this.getStart(e)},t.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},t.prototype.getLeadingTriviaWidth=function(e){return this.assertHasRealPosition(),this.getStart(e)-this.pos},t.prototype.getFullText=function(e){return this.assertHasRealPosition(),(e||this.getSourceFile()).text.substring(this.pos,this.end)},t.prototype.getText=function(e){return this.assertHasRealPosition(),e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())},t.prototype.getChildCount=function(e){return this.getChildren(e).length},t.prototype.getChildAt=function(e,n){return this.getChildren(n)[e]},t.prototype.getChildren=function(t){return this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\"),this._children||(this._children=function(t,a){if(!e.isNodeKind(t.kind))return e.emptyArray;var i=[];if(e.isJSDocCommentContainingNode(t))return t.forEachChild((function(e){i.push(e)})),i;e.scanner.setText((a||t.getSourceFile()).text);var o=t.pos,s=function(e){r(i,o,e.pos,t),i.push(e),o=e.end};return e.forEach(t.jsDoc,s),o=t.pos,t.forEachChild(s,(function(e){r(i,o,e.pos,t),i.push(function(e,t){var a=n(317,e.pos,e.end,t);a._children=[];for(var i=e.pos,o=0,s=e;o<s.length;o++){var c=s[o];r(a._children,i,c.pos,t),a._children.push(c),i=c.end}return r(a._children,i,e.end,t),a}(e,t)),o=e.end})),r(i,o,t.end,t),e.scanner.setText(void 0),i}(this,t))},t.prototype.getFirstToken=function(n){this.assertHasRealPosition();var t=this.getChildren(n);if(t.length){var r=e.find(t,(function(e){return e.kind<292||e.kind>316}));return r.kind<152?r:r.getFirstToken(n)}},t.prototype.getLastToken=function(n){this.assertHasRealPosition();var t=this.getChildren(n),r=e.lastOrUndefined(t);if(r)return r.kind<152?r:r.getLastToken(n)},t.prototype.forEachChild=function(n,t){return e.forEachChild(this,n,t)},t}();function r(t,r,a,i){for(e.scanner.setTextPos(r);r<a;){var o=e.scanner.scan(),s=e.scanner.getTextPos();if(s<=a&&(75===o&&e.Debug.fail(\"Did not expect \"+e.Debug.formatSyntaxKind(i.kind)+\" to have an Identifier in its trivia\"),t.push(n(o,r,s,i))),r=s,1===o)break}}var a=function(){function n(e,n){this.pos=e,this.end=n,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0}return n.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},n.prototype.getStart=function(n,t){return e.getTokenPosOfNode(this,n,t)},n.prototype.getFullStart=function(){return this.pos},n.prototype.getEnd=function(){return this.end},n.prototype.getWidth=function(e){return this.getEnd()-this.getStart(e)},n.prototype.getFullWidth=function(){return this.end-this.pos},n.prototype.getLeadingTriviaWidth=function(e){return this.getStart(e)-this.pos},n.prototype.getFullText=function(e){return(e||this.getSourceFile()).text.substring(this.pos,this.end)},n.prototype.getText=function(e){return e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())},n.prototype.getChildCount=function(){return 0},n.prototype.getChildAt=function(){},n.prototype.getChildren=function(){return 1===this.kind&&this.jsDoc||e.emptyArray},n.prototype.getFirstToken=function(){},n.prototype.getLastToken=function(){},n.prototype.forEachChild=function(){},n}(),i=function(){function n(e,n){this.flags=e,this.escapedName=n}return n.prototype.getFlags=function(){return this.flags},Object.defineProperty(n.prototype,\"name\",{get:function(){return e.symbolName(this)},enumerable:!0,configurable:!0}),n.prototype.getEscapedName=function(){return this.escapedName},n.prototype.getName=function(){return this.name},n.prototype.getDeclarations=function(){return this.declarations},n.prototype.getDocumentationComment=function(n){return this.documentationComment||(this.documentationComment=e.emptyArray,this.documentationComment=d(this.declarations,n)),this.documentationComment},n.prototype.getJsDocTags=function(){return void 0===this.tags&&(this.tags=e.JsDoc.getJsDocTagsFromDeclarations(this.declarations)),this.tags},n}(),o=function(e){function n(n,t,r){var a=e.call(this,t,r)||this;return a.kind=n,a}return __extends(n,e),n}(a),s=function(n){function t(e,t,r){var a=n.call(this,t,r)||this;return a.kind=75,a}return __extends(t,n),Object.defineProperty(t.prototype,\"text\",{get:function(){return e.idText(this)},enumerable:!0,configurable:!0}),t}(a);s.prototype.kind=75;var c=function(){function n(e,n){this.checker=e,this.flags=n}return n.prototype.getFlags=function(){return this.flags},n.prototype.getSymbol=function(){return this.symbol},n.prototype.getProperties=function(){return this.checker.getPropertiesOfType(this)},n.prototype.getProperty=function(e){return this.checker.getPropertyOfType(this,e)},n.prototype.getApparentProperties=function(){return this.checker.getAugmentedPropertiesOfType(this)},n.prototype.getCallSignatures=function(){return this.checker.getSignaturesOfType(this,0)},n.prototype.getConstructSignatures=function(){return this.checker.getSignaturesOfType(this,1)},n.prototype.getStringIndexType=function(){return this.checker.getIndexTypeOfType(this,0)},n.prototype.getNumberIndexType=function(){return this.checker.getIndexTypeOfType(this,1)},n.prototype.getBaseTypes=function(){return this.isClassOrInterface()?this.checker.getBaseTypes(this):void 0},n.prototype.isNullableType=function(){return this.checker.isNullableType(this)},n.prototype.getNonNullableType=function(){return this.checker.getNonNullableType(this)},n.prototype.getNonOptionalType=function(){return this.checker.getNonOptionalType(this)},n.prototype.getConstraint=function(){return this.checker.getBaseConstraintOfType(this)},n.prototype.getDefault=function(){return this.checker.getDefaultFromTypeParameter(this)},n.prototype.isUnion=function(){return!!(1048576&this.flags)},n.prototype.isIntersection=function(){return!!(2097152&this.flags)},n.prototype.isUnionOrIntersection=function(){return!!(3145728&this.flags)},n.prototype.isLiteral=function(){return!!(384&this.flags)},n.prototype.isStringLiteral=function(){return!!(128&this.flags)},n.prototype.isNumberLiteral=function(){return!!(256&this.flags)},n.prototype.isTypeParameter=function(){return!!(262144&this.flags)},n.prototype.isClassOrInterface=function(){return!!(3&e.getObjectFlags(this))},n.prototype.isClass=function(){return!!(1&e.getObjectFlags(this))},Object.defineProperty(n.prototype,\"typeArguments\",{get:function(){if(4&e.getObjectFlags(this))return this.checker.getTypeArguments(this)},enumerable:!0,configurable:!0}),n}(),l=function(){function n(e,n){this.checker=e,this.flags=n}return n.prototype.getDeclaration=function(){return this.declaration},n.prototype.getTypeParameters=function(){return this.typeParameters},n.prototype.getParameters=function(){return this.parameters},n.prototype.getReturnType=function(){return this.checker.getReturnTypeOfSignature(this)},n.prototype.getDocumentationComment=function(){return this.documentationComment||(this.documentationComment=d(e.singleElementArray(this.declaration),this.checker))},n.prototype.getJsDocTags=function(){return void 0===this.jsDocTags&&(this.jsDocTags=this.declaration?e.JsDoc.getJsDocTagsFromDeclarations([this.declaration]):[]),this.jsDocTags},n}();function u(n){return e.getJSDocTags(n).some((function(e){return\"inheritDoc\"===e.tagName.text}))}function d(n,t){if(!n)return e.emptyArray;var r=e.JsDoc.getJsDocCommentsFromDeclarations(n);return(0===r.length||n.some(u))&&e.forEachUnique(n,(function(n){var a=function(n,t,r){return e.firstDefined(n.parent?e.getAllSuperTypeNodes(n.parent):e.emptyArray,(function(e){var n=r.getTypeAtLocation(e),a=n&&r.getPropertyOfType(n,t),i=a&&a.getDocumentationComment(r);return i&&i.length?i:void 0}))}(n,n.symbol.name,t);a&&(r=0===r.length?a.slice():a.concat(e.lineBreakPart(),r))})),r}var p=function(n){function t(e,t,r){var a=n.call(this,e,t,r)||this;return a.kind=288,a}return __extends(t,n),t.prototype.update=function(n,t){return e.updateSourceFile(this,n,t)},t.prototype.getLineAndCharacterOfPosition=function(n){return e.getLineAndCharacterOfPosition(this,n)},t.prototype.getLineStarts=function(){return e.getLineStarts(this)},t.prototype.getPositionOfLineAndCharacter=function(n,t,r){return e.computePositionOfLineAndCharacter(e.getLineStarts(this),n,t,this.text,r)},t.prototype.getLineEndOfPosition=function(e){var n,t=this.getLineAndCharacterOfPosition(e).line,r=this.getLineStarts();t+1>=r.length&&(n=this.getEnd()),n||(n=r[t+1]-1);var a=this.getFullText();return\"\\n\"===a[n]&&\"\\r\"===a[n-1]?n-1:n},t.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},t.prototype.computeNamedDeclarations=function(){var n=e.createMultiMap();return this.forEachChild((function a(i){switch(i.kind){case 243:case 200:case 160:case 159:var o=i,s=r(o);if(s){var c=function(e){var t=n.get(e);t||n.set(e,t=[]);return t}(s),l=e.lastOrUndefined(c);l&&o.parent===l.parent&&o.symbol===l.symbol?o.body&&!l.body&&(c[c.length-1]=o):c.push(o)}e.forEachChild(i,a);break;case 244:case 213:case 245:case 246:case 247:case 248:case 252:case 261:case 257:case 254:case 255:case 162:case 163:case 172:t(i),e.forEachChild(i,a);break;case 155:if(!e.hasModifier(i,92))break;case 241:case 190:var u=i;if(e.isBindingPattern(u.name)){e.forEachChild(u.name,a);break}u.initializer&&a(u.initializer);case 282:case 158:case 157:t(i);break;case 259:i.exportClause&&e.forEach(i.exportClause.elements,a);break;case 253:var d=i.importClause;d&&(d.name&&t(d.name),d.namedBindings&&(255===d.namedBindings.kind?t(d.namedBindings):e.forEach(d.namedBindings.elements,a)));break;case 208:0!==e.getAssignmentDeclarationKind(i)&&t(i);default:e.forEachChild(i,a)}})),n;function t(e){var t=r(e);t&&n.add(t,e)}function r(n){var t=e.getNonAssignedNameOfDeclaration(n);return t&&(e.isComputedPropertyName(t)&&e.isPropertyAccessExpression(t.expression)?t.expression.name.text:e.isPropertyName(t)?e.getNameFromPropertyName(t):void 0)}},t}(t),m=function(){function n(e,n,t){this.fileName=e,this.text=n,this.skipTrivia=t}return n.prototype.getLineAndCharacterOfPosition=function(n){return e.getLineAndCharacterOfPosition(this,n)},n}();function f(n){var t=!0;for(var r in n)if(e.hasProperty(n,r)&&!_(r)){t=!1;break}if(t)return n;var a={};for(var r in n){if(e.hasProperty(n,r))a[_(r)?r:r.charAt(0).toLowerCase()+r.substr(1)]=n[r]}return a}function _(e){return!e.length||e.charAt(0)===e.charAt(0).toLowerCase()}function g(){return{target:1,jsx:1}}e.toEditorSettings=f,e.displayPartsToString=function(n){return n?e.map(n,(function(e){return e.text})).join(\"\"):\"\"},e.getDefaultCompilerOptions=g,e.getSupportedCodeFixes=function(){return e.codefix.getSupportedErrorCodes()};var y=function(){function n(n,t){this.host=n,this.currentDirectory=n.getCurrentDirectory(),this.fileNameToEntry=e.createMap();for(var r=0,a=n.getScriptFileNames();r<a.length;r++){var i=a[r];this.createEntry(i,e.toPath(i,this.currentDirectory,t))}this._compilationSettings=n.getCompilationSettings()||{target:1,jsx:1}}return n.prototype.compilationSettings=function(){return this._compilationSettings},n.prototype.getProjectReferences=function(){return this.host.getProjectReferences&&this.host.getProjectReferences()},n.prototype.createEntry=function(n,t){var r,a=this.host.getScriptSnapshot(n);return r=a?{hostFileName:n,version:this.host.getScriptVersion(n),scriptSnapshot:a,scriptKind:e.getScriptKind(n,this.host)}:n,this.fileNameToEntry.set(t,r),r},n.prototype.getEntryByPath=function(e){return this.fileNameToEntry.get(e)},n.prototype.getHostFileInformation=function(n){var t=this.fileNameToEntry.get(n);return e.isString(t)?void 0:t},n.prototype.getOrCreateEntryByPath=function(n,t){var r=this.getEntryByPath(t)||this.createEntry(n,t);return e.isString(r)?void 0:r},n.prototype.getRootFileNames=function(){var n=[];return this.fileNameToEntry.forEach((function(t){e.isString(t)?n.push(t):6!==t.scriptKind&&n.push(t.hostFileName)})),n},n.prototype.getVersion=function(e){var n=this.getHostFileInformation(e);return n&&n.version},n.prototype.getScriptSnapshot=function(e){var n=this.getHostFileInformation(e);return n&&n.scriptSnapshot},n}(),v=function(){function n(e){this.host=e}return n.prototype.getCurrentSourceFile=function(n){var t=this.host.getScriptSnapshot(n);if(!t)throw new Error(\"Could not find file: '\"+n+\"'.\");var r,a=e.getScriptKind(n,this.host),i=this.host.getScriptVersion(n);if(this.currentFileName!==n)r=b(n,t,99,i,!0,a);else if(this.currentFileVersion!==i){var o=t.getChangeRange(this.currentFileScriptSnapshot);r=E(this.currentSourceFile,t,i,o)}return r&&(this.currentFileVersion=i,this.currentFileName=n,this.currentFileScriptSnapshot=t,this.currentSourceFile=r),this.currentSourceFile},n}();function h(e,n,t){e.version=t,e.scriptSnapshot=n}function b(n,t,r,a,i,o){var s=e.createSourceFile(n,e.getSnapshotText(t),r,i,o);return h(s,t,a),s}function E(n,t,r,a,i){if(a&&r!==n.version&&!e.disableIncrementalParsing){var o=void 0,s=0!==a.span.start?n.text.substr(0,a.span.start):\"\",c=e.textSpanEnd(a.span)!==n.text.length?n.text.substr(e.textSpanEnd(a.span)):\"\";if(0===a.newLength)o=s&&c?s+c:s||c;else{var l=t.getText(a.span.start,a.span.start+a.newLength);o=s&&c?s+l+c:s?s+l:l+c}var u=e.updateSourceFile(n,o,a,i);return h(u,t,r),u.nameTable=void 0,n!==u&&n.scriptSnapshot&&(n.scriptSnapshot.dispose&&n.scriptSnapshot.dispose(),n.scriptSnapshot=void 0),u}return b(n.fileName,t,n.languageVersion,r,!0,n.scriptKind)}e.createLanguageServiceSourceFile=b,e.disableIncrementalParsing=!1,e.updateLanguageServiceSourceFile=E;var T=function(){function n(e){this.cancellationToken=e}return n.prototype.isCancellationRequested=function(){return!!this.cancellationToken&&this.cancellationToken.isCancellationRequested()},n.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw new e.OperationCanceledException},n}(),S=function(){function n(e,n){void 0===n&&(n=20),this.hostCancellationToken=e,this.throttleWaitMilliseconds=n,this.lastCancellationCheckTime=0}return n.prototype.isCancellationRequested=function(){var n=e.timestamp();return Math.abs(n-this.lastCancellationCheckTime)>=this.throttleWaitMilliseconds&&(this.lastCancellationCheckTime=n,this.hostCancellationToken.isCancellationRequested())},n.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw new e.OperationCanceledException},n}();function x(n){var t=function(n){switch(n.kind){case 10:case 14:case 8:if(153===n.parent.kind)return e.isObjectLiteralElement(n.parent.parent)?n.parent.parent:void 0;case 75:return!e.isObjectLiteralElement(n.parent)||192!==n.parent.parent.kind&&272!==n.parent.parent.kind||n.parent.name!==n?void 0:n.parent}return}(n);return t&&(e.isObjectLiteralExpression(t.parent)||e.isJsxAttributes(t.parent))?t:void 0}function L(n,t,r,a){var i=e.getNameFromPropertyName(n.name);if(!i)return e.emptyArray;if(!r.isUnion())return(o=r.getProperty(i))?[o]:e.emptyArray;var o,s=e.mapDefined(r.types,(function(r){return e.isObjectLiteralExpression(n.parent)&&t.isTypeInvalidDueToUnionDiscriminant(r,n.parent)?void 0:r.getProperty(i)}));if(a&&(0===s.length||s.length===r.types.length)&&(o=r.getProperty(i)))return[o];return 0===s.length?e.mapDefined(r.types,(function(e){return e.getProperty(i)})):s}e.ThrottledCancellationToken=S,e.createLanguageService=function(n,t,r){var a;void 0===t&&(t=e.createDocumentRegistry(n.useCaseSensitiveFileNames&&n.useCaseSensitiveFileNames(),n.getCurrentDirectory())),void 0===r&&(r=!1);var i,o,s=new v(n),c=0,l=new T(n.getCancellationToken&&n.getCancellationToken()),u=n.getCurrentDirectory();function d(e){n.log&&n.log(e)}!e.localizedDiagnosticMessages&&n.getLocalizedDiagnosticMessages&&(e.localizedDiagnosticMessages=n.getLocalizedDiagnosticMessages());var p=e.hostUsesCaseSensitiveFileNames(n),m=e.createGetCanonicalFileName(p),_=e.getSourceMapper({useCaseSensitiveFileNames:function(){return p},getCurrentDirectory:function(){return u},getProgram:b,fileExists:e.maybeBind(n,n.fileExists),readFile:e.maybeBind(n,n.readFile),getDocumentPositionMapper:e.maybeBind(n,n.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(n,n.getSourceFileLike),log:d});function g(e){var n=i.getSourceFile(e);if(!n){var t=new Error(\"Could not find source file: '\"+e+\"'.\");throw t.ProgramFiles=i.getSourceFiles().map((function(e){return e.fileName})),t}return n}function h(){if(e.Debug.assert(!r),n.getProjectVersion){var a=n.getProjectVersion();if(a){if(o===a&&!n.hasChangedAutomaticTypeDirectiveNames)return;o=a}}var s=n.getTypeRootsVersion?n.getTypeRootsVersion():0;c!==s&&(d(\"TypeRoots version has changed; provide new program\"),i=void 0,c=s);var f=new y(n,m),g=f.getRootFileNames(),v=n.hasInvalidatedResolution||e.returnFalse,h=f.getProjectReferences();if(!e.isProgramUptoDate(i,g,f.compilationSettings(),(function(e){return f.getVersion(e)}),x,v,!!n.hasChangedAutomaticTypeDirectiveNames,h)){var b=f.compilationSettings(),E={getSourceFile:function(n,t,r,a){return L(n,e.toPath(n,u,m),t,r,a)},getSourceFileByPath:L,getCancellationToken:function(){return l},getCanonicalFileName:m,useCaseSensitiveFileNames:function(){return p},getNewLine:function(){return e.getNewLineCharacter(b,(function(){return e.getNewLineOrDefaultFromHost(n)}))},getDefaultLibFileName:function(e){return n.getDefaultLibFileName(e)},writeFile:e.noop,getCurrentDirectory:function(){return u},fileExists:x,readFile:function(t){var r=e.toPath(t,u,m),a=f&&f.getEntryByPath(r);if(a)return e.isString(a)?void 0:e.getSnapshotText(a.scriptSnapshot);return n.readFile&&n.readFile(t)},realpath:n.realpath&&function(e){return n.realpath(e)},directoryExists:function(t){return e.directoryProbablyExists(t,n)},getDirectories:function(e){return n.getDirectories?n.getDirectories(e):[]},readDirectory:function(t,r,a,i,o){return e.Debug.assertDefined(n.readDirectory,\"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),n.readDirectory(t,r,a,i,o)},onReleaseOldSourceFile:function(e,n){var r=t.getKeyForCompilationSettings(n);t.releaseDocumentWithKey(e.resolvedPath,r)},hasInvalidatedResolution:v,hasChangedAutomaticTypeDirectiveNames:n.hasChangedAutomaticTypeDirectiveNames};n.trace&&(E.trace=function(e){return n.trace(e)}),n.resolveModuleNames&&(E.resolveModuleNames=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.resolveModuleNames.apply(n,e)}),n.resolveTypeReferenceDirectives&&(E.resolveTypeReferenceDirectives=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.resolveTypeReferenceDirectives.apply(n,e)}),n.setResolvedProjectReferenceCallbacks&&(E.setResolvedProjectReferenceCallbacks=function(e){return n.setResolvedProjectReferenceCallbacks(e)}),n.useSourceOfProjectReferenceRedirect&&(E.useSourceOfProjectReferenceRedirect=function(){return n.useSourceOfProjectReferenceRedirect()});var T=t.getKeyForCompilationSettings(b),S={rootNames:g,options:b,host:E,oldProgram:i,projectReferences:h};return i=e.createProgram(S),f=void 0,_.clearCache(),void i.getTypeChecker()}function x(t){var r=e.toPath(t,u,m),a=f&&f.getEntryByPath(r);return a?!e.isString(a):!!n.fileExists&&n.fileExists(t)}function L(n,r,a,o,s){e.Debug.assert(void 0!==f,\"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");var c=f&&f.getOrCreateEntryByPath(n,r);if(c){if(!s){var l=i&&i.getSourceFileByPath(r);if(l)return e.Debug.assertEqual(c.scriptKind,l.scriptKind,\"Registered script kind should match new script kind.\",r),t.updateDocumentWithKey(n,r,b,T,c.scriptSnapshot,c.version,c.scriptKind)}return t.acquireDocumentWithKey(n,r,b,T,c.scriptSnapshot,c.version,c.scriptKind)}}}function b(){if(!r)return h(),i;e.Debug.assert(void 0===i)}function E(n,t,r){var a=e.normalizePath(n);e.Debug.assert(r.some((function(n){return e.normalizePath(n)===a}))),h();var o=e.mapDefined(r,(function(e){return i.getSourceFile(e)})),s=g(n);return e.DocumentHighlights.getDocumentHighlights(i,l,s,t,o)}function S(n,t,r,a){h();var o=r&&r.isForRename?i.getSourceFiles().filter((function(e){return!i.isSourceFileDefaultLibrary(e)})):i.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(i,l,o,n,t,r,a)}function C(t){var r=e.getScriptKind(t,n);return 3===r||4===r}var A=e.createMapFromTemplate(((a={})[18]=19,a[20]=21,a[22]=23,a[31]=29,a));function D(t){var r;return e.Debug.assertEqual(t.type,\"install package\"),n.installPackage?n.installPackage({fileName:(r=t.file,e.toPath(r,u,m)),packageName:t.packageName}):Promise.reject(\"Host does not implement `installPackage`\")}function k(t,r,a,i){var o=\"number\"==typeof r?[r,void 0]:[r.pos,r.end];return{file:t,startPosition:o[0],endPosition:o[1],program:b(),host:n,formatContext:e.formatting.getFormatContext(i),cancellationToken:l,preferences:a}}return A.forEach((function(e,n){return A.set(e.toString(),Number(n))})),{dispose:function(){i&&(e.forEach(i.getSourceFiles(),(function(e){return t.releaseDocument(e.fileName,i.getCompilerOptions())})),i=void 0),n=void 0},cleanupSemanticCache:function(){i=void 0},getSyntacticDiagnostics:function(e){return h(),i.getSyntacticDiagnostics(g(e),l).slice()},getSemanticDiagnostics:function(n){h();var t=g(n),r=i.getSemanticDiagnostics(t,l);if(!e.getEmitDeclarations(i.getCompilerOptions()))return r.slice();var a=i.getDeclarationDiagnostics(t,l);return __spreadArrays(r,a)},getSuggestionDiagnostics:function(n){return h(),e.computeSuggestionDiagnostics(g(n),i,l)},getCompilerOptionsDiagnostics:function(){return h(),__spreadArrays(i.getOptionsDiagnostics(l),i.getGlobalDiagnostics(l))},getSyntacticClassifications:function(n,t){return e.getSyntacticClassifications(l,s.getCurrentSourceFile(n),t)},getSemanticClassifications:function(n,t){return C(n)?(h(),e.getSemanticClassifications(i.getTypeChecker(),l,g(n),i.getClassifiableNames(),t)):[]},getEncodedSyntacticClassifications:function(n,t){return e.getEncodedSyntacticClassifications(l,s.getCurrentSourceFile(n),t)},getEncodedSemanticClassifications:function(n,t){return C(n)?(h(),e.getEncodedSemanticClassifications(i.getTypeChecker(),l,g(n),i.getClassifiableNames(),t)):{spans:[],endOfLineState:0}},getCompletionsAtPosition:function(t,r,a){void 0===a&&(a=e.emptyOptions);var o=__assign(__assign({},e.identity(a)),{includeCompletionsForModuleExports:a.includeCompletionsForModuleExports||a.includeExternalModuleExports,includeCompletionsWithInsertText:a.includeCompletionsWithInsertText||a.includeInsertTextCompletions});return h(),e.Completions.getCompletionsAtPosition(n,i,d,g(t),r,o,a.triggerCharacter)},getCompletionEntryDetails:function(t,r,a,o,s,c){return void 0===c&&(c=e.emptyOptions),h(),e.Completions.getCompletionEntryDetails(i,d,g(t),r,{name:a,source:s},n,o&&e.formatting.getFormatContext(o),c,l)},getCompletionEntrySymbol:function(t,r,a,o){return h(),e.Completions.getCompletionEntrySymbol(i,d,g(t),r,{name:a,source:o},n)},getSignatureHelpItems:function(n,t,r){var a=(void 0===r?e.emptyOptions:r).triggerReason;h();var o=g(n);return e.SignatureHelp.getSignatureHelpItems(i,o,t,a,l)},getQuickInfoAtPosition:function(n,t){h();var r=g(n),a=e.getTouchingPropertyName(r,t);if(a!==r){var o=i.getTypeChecker(),s=function(n){if(e.isNewExpression(n.parent)&&n.pos===n.parent.pos)return n.parent.expression;return n}(a),c=function(n,t){var r=x(n);if(r){var a=t.getContextualType(r.parent),i=a&&L(r,t,a,!1);if(i&&1===i.length)return e.first(i)}return t.getSymbolAtLocation(n)}(s,o);if(!c||o.isUnknownSymbol(c)){var u=function(n,t,r){switch(t.kind){case 75:return!e.isLabelName(t)&&!e.isTagName(t);case 193:case 152:return!e.isInComment(n,r);case 103:case 182:case 101:return!0;default:return!1}}(r,s,t)?o.getTypeAtLocation(s):void 0;return u&&{kind:\"\",kindModifiers:\"\",textSpan:e.createTextSpanFromNode(s,r),displayParts:o.runWithCancellationToken(l,(function(n){return e.typeToDisplayParts(n,u,e.getContainerNode(s))})),documentation:u.symbol?u.symbol.getDocumentationComment(o):void 0,tags:u.symbol?u.symbol.getJsDocTags():void 0}}var d=o.runWithCancellationToken(l,(function(n){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(n,c,r,e.getContainerNode(s),s)})),p=d.symbolKind,m=d.displayParts,f=d.documentation,_=d.tags;return{kind:p,kindModifiers:e.SymbolDisplay.getSymbolModifiers(c),textSpan:e.createTextSpanFromNode(s,r),displayParts:m,documentation:f,tags:_}}},getDefinitionAtPosition:function(n,t){return h(),e.GoToDefinition.getDefinitionAtPosition(i,g(n),t)},getDefinitionAndBoundSpan:function(n,t){return h(),e.GoToDefinition.getDefinitionAndBoundSpan(i,g(n),t)},getImplementationAtPosition:function(n,t){return h(),e.FindAllReferences.getImplementationsAtPosition(i,l,i.getSourceFiles(),g(n),t)},getTypeDefinitionAtPosition:function(n,t){return h(),e.GoToDefinition.getTypeDefinitionAtPosition(i.getTypeChecker(),g(n),t)},getReferencesAtPosition:function(n,t){return h(),S(e.getTouchingPropertyName(g(n),t),t,{},e.FindAllReferences.toReferenceEntry)},findReferences:function(n,t){return h(),e.FindAllReferences.findReferencedSymbols(i,l,i.getSourceFiles(),g(n),t)},getOccurrencesAtPosition:function(n,t){return e.flatMap(E(n,t,[n]),(function(e){return e.highlightSpans.map((function(n){return __assign(__assign({fileName:e.fileName,textSpan:n.textSpan,isWriteAccess:\"writtenReference\"===n.kind,isDefinition:!1},n.isInString&&{isInString:!0}),n.contextSpan&&{contextSpan:n.contextSpan})}))}))},getDocumentHighlights:E,getNameOrDottedNameSpan:function(n,t,r){var a=s.getCurrentSourceFile(n),i=e.getTouchingPropertyName(a,t);if(i!==a){switch(i.kind){case 193:case 152:case 10:case 90:case 105:case 99:case 101:case 103:case 182:case 75:break;default:return}for(var o=i;;)if(e.isRightSideOfPropertyAccess(o)||e.isRightSideOfQualifiedName(o))o=o.parent;else{if(!e.isNameOfModuleDeclaration(o))break;if(248!==o.parent.parent.kind||o.parent.parent.body!==o.parent)break;o=o.parent.parent.name}return e.createTextSpanFromBounds(o.getStart(),i.getEnd())}},getBreakpointStatementAtPosition:function(n,t){var r=s.getCurrentSourceFile(n);return e.BreakpointResolver.spanInSourceFileAtLocation(r,t)},getNavigateToItems:function(n,t,r,a){void 0===a&&(a=!1),h();var o=r?[g(r)]:i.getSourceFiles();return e.NavigateTo.getNavigateToItems(o,i.getTypeChecker(),l,n,t,a)},getRenameInfo:function(n,t,r){return h(),e.Rename.getRenameInfo(i,g(n),t,r)},getSmartSelectionRange:function(n,t){return e.SmartSelectionRange.getSmartSelectionRange(t,s.getCurrentSourceFile(n))},findRenameLocations:function(n,t,r,a,i){h();var o=g(n),s=e.getTouchingPropertyName(o,t);if(e.isIdentifier(s)&&(e.isJsxOpeningElement(s.parent)||e.isJsxClosingElement(s.parent))&&e.isIntrinsicJsxName(s.escapedText)){var c=s.parent.parent;return[c.openingElement,c.closingElement].map((function(n){var t=e.createTextSpanFromNode(n.tagName,o);return __assign({fileName:o.fileName,textSpan:t},e.FindAllReferences.toContextSpan(t,o,n.parent))}))}return S(s,t,{findInStrings:r,findInComments:a,providePrefixAndSuffixTextForRename:i,isForRename:!0},(function(n,t,r){return e.FindAllReferences.toRenameLocation(n,t,r,i||!1)}))},getNavigationBarItems:function(n){return e.NavigationBar.getNavigationBarItems(s.getCurrentSourceFile(n),l)},getNavigationTree:function(n){return e.NavigationBar.getNavigationTree(s.getCurrentSourceFile(n),l)},getOutliningSpans:function(n){var t=s.getCurrentSourceFile(n);return e.OutliningElementsCollector.collectElements(t,l)},getTodoComments:function(n,t){h();var r=g(n);l.throwIfCancellationRequested();var a,i,o=r.text,s=[];if(t.length>0&&(i=r.fileName,!e.stringContains(i,\"/node_modules/\")))for(var c=function(){var n=\"(\"+/(?:^(?:\\s|\\*)*)/.source+\"|\"+/(?:\\/\\/+\\s*)/.source+\"|\"+/(?:\\/\\*+\\s*)/.source+\")\",r=\"(?:\"+e.map(t,(function(e){return\"(\"+e.text.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")+\")\"})).join(\"|\")+\")\";return new RegExp(n+\"(\"+r+/(?:.*?)/.source+\")\"+/(?:$|\\*\\/)/.source,\"gim\")}(),u=void 0;u=c.exec(o);){l.throwIfCancellationRequested();e.Debug.assert(u.length===t.length+3);var d=u[1],p=u.index+d.length;if(e.isInComment(r,p)){for(var m=void 0,f=0;f<t.length;f++)u[f+3]&&(m=t[f]);if(void 0===m)return e.Debug.fail();if(!((a=o.charCodeAt(p+m.text.length))>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)){var _=u[2];s.push({descriptor:m,message:_,position:p})}}}return s},getBraceMatchingAtPosition:function(n,t){var r=s.getCurrentSourceFile(n),a=e.getTouchingToken(r,t),i=a.getStart(r)===t?A.get(a.kind.toString()):void 0,o=i&&e.findChildOfKind(a.parent,i,r);return o?[e.createTextSpanFromNode(a,r),e.createTextSpanFromNode(o,r)].sort((function(e,n){return e.start-n.start})):e.emptyArray},getIndentationAtPosition:function(n,t,r){var a=e.timestamp(),i=f(r),o=s.getCurrentSourceFile(n);d(\"getIndentationAtPosition: getCurrentSourceFile: \"+(e.timestamp()-a)),a=e.timestamp();var c=e.formatting.SmartIndenter.getIndentation(t,o,i);return d(\"getIndentationAtPosition: computeIndentation  : \"+(e.timestamp()-a)),c},getFormattingEditsForRange:function(n,t,r,a){var i=s.getCurrentSourceFile(n);return e.formatting.formatSelection(t,r,i,e.formatting.getFormatContext(f(a)))},getFormattingEditsForDocument:function(n,t){return e.formatting.formatDocument(s.getCurrentSourceFile(n),e.formatting.getFormatContext(f(t)))},getFormattingEditsAfterKeystroke:function(n,t,r,a){var i=s.getCurrentSourceFile(n),o=e.formatting.getFormatContext(f(a));if(!e.isInComment(i,t))switch(r){case\"{\":return e.formatting.formatOnOpeningCurly(t,i,o);case\"}\":return e.formatting.formatOnClosingCurly(t,i,o);case\";\":return e.formatting.formatOnSemicolon(t,i,o);case\"\\n\":return e.formatting.formatOnEnter(t,i,o)}return[]},getDocCommentTemplateAtPosition:function(t,r){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(n),s.getCurrentSourceFile(t),r)},isValidBraceCompletionAtPosition:function(n,t,r){if(60===r)return!1;var a=s.getCurrentSourceFile(n);if(e.isInString(a,t))return!1;if(e.isInsideJsxElementOrAttribute(a,t))return 123===r;if(e.isInTemplateString(a,t))return!1;switch(r){case 39:case 34:case 96:return!e.isInComment(a,t)}return!0},getJsxClosingTagAtPosition:function(n,t){var r=s.getCurrentSourceFile(n),a=e.findPrecedingToken(t,r);if(a){var i=31===a.kind&&e.isJsxOpeningElement(a.parent)?a.parent.parent:e.isJsxText(a)?a.parent:void 0;return i&&function n(t){var r=t.openingElement,a=t.closingElement,i=t.parent;return!e.tagNamesAreEquivalent(r.tagName,a.tagName)||e.isJsxElement(i)&&e.tagNamesAreEquivalent(r.tagName,i.openingElement.tagName)&&n(i)}(i)?{newText:\"</\"+i.openingElement.tagName.getText(r)+\">\"}:void 0}},getSpanOfEnclosingComment:function(n,t,r){var a=s.getCurrentSourceFile(n),i=e.formatting.getRangeOfEnclosingComment(a,t);return!i||r&&3!==i.kind?void 0:e.createTextSpanFromRange(i)},getCodeFixesAtPosition:function(t,r,a,o,s,c){void 0===c&&(c=e.emptyOptions),h();var u=g(t),d=e.createTextSpanFromBounds(r,a),p=e.formatting.getFormatContext(s);return e.flatMap(e.deduplicate(o,e.equateValues,e.compareValues),(function(t){return l.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:t,sourceFile:u,span:d,program:i,host:n,cancellationToken:l,formatContext:p,preferences:c})}))},getCombinedCodeFix:function(t,r,a,o){void 0===o&&(o=e.emptyOptions),h(),e.Debug.assert(\"file\"===t.type);var s=g(t.fileName),c=e.formatting.getFormatContext(a);return e.codefix.getAllFixes({fixId:r,sourceFile:s,program:i,host:n,cancellationToken:l,formatContext:c,preferences:o})},applyCodeActionCommand:function(n,t){var r=\"string\"==typeof n?t:n;return e.isArray(r)?Promise.all(r.map((function(e){return D(e)}))):D(r)},organizeImports:function(t,r,a){void 0===a&&(a=e.emptyOptions),h(),e.Debug.assert(\"file\"===t.type);var o=g(t.fileName),s=e.formatting.getFormatContext(r);return e.OrganizeImports.organizeImports(o,s,n,i,a)},getEditsForFileRename:function(t,r,a,i){return void 0===i&&(i=e.emptyOptions),e.getEditsForFileRename(b(),t,r,n,e.formatting.getFormatContext(a),i,_)},getEmitOutput:function(t,r,a){h();var o=g(t),s=n.getCustomTransformers&&n.getCustomTransformers();return e.getFileEmitOutput(i,o,!!r,l,s,a)},getNonBoundSourceFile:function(e){return s.getCurrentSourceFile(e)},getProgram:b,getApplicableRefactors:function(n,t,r){void 0===r&&(r=e.emptyOptions),h();var a=g(n);return e.refactor.getApplicableRefactors(k(a,t,r))},getEditsForRefactor:function(n,t,r,a,i,o){void 0===o&&(o=e.emptyOptions),h();var s=g(n);return e.refactor.getEditsForRefactor(k(s,r,o,t),a,i)},toLineColumnOffset:_.toLineColumnOffset,getSourceMapper:function(){return _}}},e.getNameTable=function(n){return n.nameTable||function(n){var t=n.nameTable=e.createUnderscoreEscapedMap();n.forEachChild((function n(r){if(e.isIdentifier(r)&&!e.isTagName(r)&&r.escapedText||e.isStringOrNumericLiteralLike(r)&&function(n){return e.isDeclarationName(n)||263===n.parent.kind||function(e){return e&&e.parent&&194===e.parent.kind&&e.parent.argumentExpression===e}(n)||e.isLiteralComputedPropertyDeclarationName(n)}(r)){var a=e.getEscapedTextOfIdentifierOrLiteral(r);t.set(a,void 0===t.get(a)?r.pos:-1)}if(e.forEachChild(r,n),e.hasJSDocNodes(r))for(var i=0,o=r.jsDoc;i<o.length;i++){var s=o[i];e.forEachChild(s,n)}}))}(n),n.nameTable},e.getContainingObjectLiteralElement=x,e.getPropertySymbolsFromContextualType=L,e.getDefaultLibFilePath=function(n){if(\"undefined\"!=typeof __dirname)return __dirname+e.directorySeparator+e.getDefaultLibFileName(n);throw new Error(\"getDefaultLibFilePath is only supported when consumed as a node module. \")},e.objectAllocator={getNodeConstructor:function(){return t},getTokenConstructor:function(){return o},getIdentifierConstructor:function(){return s},getSourceFileConstructor:function(){return p},getSymbolConstructor:function(){return i},getTypeConstructor:function(){return c},getSignatureConstructor:function(){return l},getSourceMapSourceConstructor:function(){return m}}}(ts||(ts={})),function(e){!function(n){n.spanInSourceFileAtLocation=function(n,t){if(!n.isDeclarationFile){var r=e.getTokenAtPosition(n,t),a=n.getLineAndCharacterOfPosition(t).line;if(n.getLineAndCharacterOfPosition(r.getStart(n)).line>a){var i=e.findPrecedingToken(r.pos,n);if(!i||n.getLineAndCharacterOfPosition(i.getEnd()).line!==a)return;r=i}if(!(8388608&r.flags))return d(r)}function o(t,r){var a=t.decorators?e.skipTrivia(n.text,t.decorators.end):t.getStart(n);return e.createTextSpanFromBounds(a,(r||t).getEnd())}function s(t,r){return o(t,e.findNextToken(r,r.parent,n))}function c(e,t){return e&&a===n.getLineAndCharacterOfPosition(e.getStart(n)).line?d(e):d(t)}function l(t){return d(e.findPrecedingToken(t.pos,n))}function u(t){return d(e.findNextToken(t,t.parent,n))}function d(t){if(t){var r=t.parent;switch(t.kind){case 224:return v(t.declarationList.declarations[0]);case 241:case 158:case 157:return v(t);case 155:return function n(t){if(e.isBindingPattern(t.name))return T(t.name);if(function(n){return!!n.initializer||void 0!==n.dotDotDotToken||e.hasModifier(n,12)}(t))return o(t);var r=t.parent,a=r.parameters.indexOf(t);return e.Debug.assert(-1!==a),0!==a?n(r.parameters[a-1]):d(r.body)}(t);case 243:case 160:case 159:case 162:case 163:case 161:case 200:case 201:return function(e){if(!e.body)return;if(h(e))return o(e);return d(e.body)}(t);case 222:if(e.isFunctionBlock(t))return function(e){var n=e.statements.length?e.statements[0]:e.getLastToken();if(h(e.parent))return c(e.parent,n);return d(n)}(t);case 249:return b(t);case 278:return b(t.block);case 225:return o(t.expression);case 234:return o(t.getChildAt(0),t.expression);case 228:return s(t,t.expression);case 227:return d(t.statement);case 240:return o(t.getChildAt(0));case 226:return s(t,t.expression);case 237:return d(t.statement);case 233:case 232:return o(t.getChildAt(0),t.label);case 229:return function(e){if(e.initializer)return E(e);if(e.condition)return o(e.condition);if(e.incrementor)return o(e.incrementor)}(t);case 230:return s(t,t.expression);case 231:return E(t);case 236:return s(t,t.expression);case 275:case 276:return d(t.statements[0]);case 239:return b(t.tryBlock);case 238:case 258:return o(t,t.expression);case 252:return o(t,t.moduleReference);case 253:case 259:return o(t,t.moduleSpecifier);case 248:if(1!==e.getModuleInstanceState(t))return;case 244:case 247:case 282:case 190:return o(t);case 235:return d(t.statement);case 156:return g=r.decorators,e.createTextSpanFromBounds(e.skipTrivia(n.text,g.pos),g.end);case 188:case 189:return T(t);case 245:case 246:return;case 26:case 1:return c(e.findPrecedingToken(t.pos,n));case 27:return l(t);case 18:return function(t){switch(t.parent.kind){case 247:var r=t.parent;return c(e.findPrecedingToken(t.pos,n,t.parent),r.members.length?r.members[0]:r.getLastToken(n));case 244:var a=t.parent;return c(e.findPrecedingToken(t.pos,n,t.parent),a.members.length?a.members[0]:a.getLastToken(n));case 250:return c(t.parent.parent,t.parent.clauses[0])}return d(t.parent)}(t);case 19:return function(n){switch(n.parent.kind){case 249:if(1!==e.getModuleInstanceState(n.parent.parent))return;case 247:case 244:return o(n);case 222:if(e.isFunctionBlock(n.parent))return o(n);case 278:return d(e.lastOrUndefined(n.parent.statements));case 250:var t=n.parent,r=e.lastOrUndefined(t.clauses);return r?d(e.lastOrUndefined(r.statements)):void 0;case 188:var a=n.parent;return d(e.lastOrUndefined(a.elements)||a);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)){var i=n.parent;return o(e.lastOrUndefined(i.properties)||i)}return d(n.parent)}}(t);case 23:return function(n){switch(n.parent.kind){case 189:var t=n.parent;return o(e.lastOrUndefined(t.elements)||t);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)){var r=n.parent;return o(e.lastOrUndefined(r.elements)||r)}return d(n.parent)}}(t);case 20:return function(e){if(227===e.parent.kind||195===e.parent.kind||196===e.parent.kind)return l(e);if(199===e.parent.kind)return u(e);return d(e.parent)}(t);case 21:return function(e){switch(e.parent.kind){case 200:case 243:case 201:case 160:case 159:case 162:case 163:case 161:case 228:case 227:case 229:case 231:case 195:case 196:case 199:return l(e);default:return d(e.parent)}}(t);case 58:return function(n){if(e.isFunctionLike(n.parent)||279===n.parent.kind||155===n.parent.kind)return l(n);return d(n.parent)}(t);case 31:case 29:return function(e){if(198===e.parent.kind)return u(e);return d(e.parent)}(t);case 110:return function(e){if(227===e.parent.kind)return s(e,e.parent.expression);return d(e.parent)}(t);case 86:case 78:case 91:return u(t);case 151:return function(e){if(231===e.parent.kind)return u(e);return d(e.parent)}(t);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(t))return S(t);if((75===t.kind||212===t.kind||279===t.kind||280===t.kind)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(r))return o(t);if(208===t.kind){var a=t,i=a.left,p=a.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(i))return S(i);if(62===p.kind&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent))return o(t);if(27===p.kind)return d(i)}if(e.isExpressionNode(t))switch(r.kind){case 227:return l(t);case 156:return d(t.parent);case 229:case 231:return o(t);case 208:if(27===t.parent.operatorToken.kind)return o(t);break;case 201:if(t.parent.body===t)return o(t)}switch(t.parent.kind){case 279:if(t.parent.name===t&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent.parent))return d(t.parent.initializer);break;case 198:if(t.parent.type===t)return u(t.parent.type);break;case 241:case 155:var m=t.parent,f=m.initializer,_=m.type;if(f===t||_===t||e.isAssignmentOperator(t.kind))return l(t);break;case 208:i=t.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(i)&&t!==i)return l(t);break;default:if(e.isFunctionLike(t.parent)&&t.parent.type===t)return l(t)}return d(t.parent)}}var g;function y(t){return e.isVariableDeclarationList(t.parent)&&t.parent.declarations[0]===t?o(e.findPrecedingToken(t.pos,n,t.parent),t):o(t)}function v(t){if(230===t.parent.parent.kind)return d(t.parent.parent);var r=t.parent;return e.isBindingPattern(t.name)?T(t.name):t.initializer||e.hasModifier(t,1)||231===r.parent.kind?y(t):e.isVariableDeclarationList(t.parent)&&t.parent.declarations[0]!==t?d(e.findPrecedingToken(t.pos,n,t.parent)):void 0}function h(n){return e.hasModifier(n,1)||244===n.parent.kind&&161!==n.kind}function b(t){switch(t.parent.kind){case 248:if(1!==e.getModuleInstanceState(t.parent))return;case 228:case 226:case 230:return c(t.parent,t.statements[0]);case 229:case 231:return c(e.findPrecedingToken(t.pos,n,t.parent),t.statements[0])}return d(t.statements[0])}function E(e){if(242!==e.initializer.kind)return d(e.initializer);var n=e.initializer;return n.declarations.length>0?d(n.declarations[0]):void 0}function T(n){var t=e.forEach(n.elements,(function(e){return 214!==e.kind?e:void 0}));return t?d(t):190===n.parent.kind?o(n.parent):y(n.parent)}function S(n){e.Debug.assert(189!==n.kind&&188!==n.kind);var t=191===n.kind?n.elements:n.properties,r=e.forEach(t,(function(e){return 214!==e.kind?e:void 0}));return r?d(r):o(208===n.parent.kind?n.parent:n)}}}}(e.BreakpointResolver||(e.BreakpointResolver={}))}(ts||(ts={})),function(e){e.transform=function(n,t,r){var a=[];r=e.fixupCompilerOptions(r,a);var i=e.isArray(n)?n:[n],o=e.transformNodes(void 0,void 0,r,i,t,!0);return o.diagnostics=e.concatenate(o.diagnostics,a),o}}(ts||(ts={}));var ts,TypeScript,debugObjectHost=function(){return this}();!function(e){function n(e,n){e&&e.log(\"*INTERNAL ERROR* - Exception in typescript services: \"+n.message)}var t=function(){function n(e){this.scriptSnapshotShim=e}return n.prototype.getText=function(e,n){return this.scriptSnapshotShim.getText(e,n)},n.prototype.getLength=function(){return this.scriptSnapshotShim.getLength()},n.prototype.getChangeRange=function(n){var t=n,r=this.scriptSnapshotShim.getChangeRange(t.scriptSnapshotShim);if(null===r)return null;var a=JSON.parse(r);return e.createTextChangeRange(e.createTextSpan(a.span.start,a.span.length),a.newLength)},n.prototype.dispose=function(){\"dispose\"in this.scriptSnapshotShim&&this.scriptSnapshotShim.dispose()},n}(),r=function(){function n(n){var t=this;this.shimHost=n,this.loggingEnabled=!1,this.tracingEnabled=!1,\"getModuleResolutionsForFile\"in this.shimHost&&(this.resolveModuleNames=function(n,r){var a=JSON.parse(t.shimHost.getModuleResolutionsForFile(r));return e.map(n,(function(n){var t=e.getProperty(a,n);return t?{resolvedFileName:t,extension:e.extensionFromPath(t),isExternalLibraryImport:!1}:void 0}))}),\"directoryExists\"in this.shimHost&&(this.directoryExists=function(e){return t.shimHost.directoryExists(e)}),\"getTypeReferenceDirectiveResolutionsForFile\"in this.shimHost&&(this.resolveTypeReferenceDirectives=function(n,r){var a=JSON.parse(t.shimHost.getTypeReferenceDirectiveResolutionsForFile(r));return e.map(n,(function(n){return e.getProperty(a,n)}))})}return n.prototype.log=function(e){this.loggingEnabled&&this.shimHost.log(e)},n.prototype.trace=function(e){this.tracingEnabled&&this.shimHost.trace(e)},n.prototype.error=function(e){this.shimHost.error(e)},n.prototype.getProjectVersion=function(){if(this.shimHost.getProjectVersion)return this.shimHost.getProjectVersion()},n.prototype.getTypeRootsVersion=function(){return this.shimHost.getTypeRootsVersion?this.shimHost.getTypeRootsVersion():0},n.prototype.useCaseSensitiveFileNames=function(){return!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames()},n.prototype.getCompilationSettings=function(){var e=this.shimHost.getCompilationSettings();if(null===e||\"\"===e)throw Error(\"LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings\");var n=JSON.parse(e);return n.allowNonTsExtensions=!0,n},n.prototype.getScriptFileNames=function(){var e=this.shimHost.getScriptFileNames();return JSON.parse(e)},n.prototype.getScriptSnapshot=function(e){var n=this.shimHost.getScriptSnapshot(e);return n&&new t(n)},n.prototype.getScriptKind=function(e){return\"getScriptKind\"in this.shimHost?this.shimHost.getScriptKind(e):0},n.prototype.getScriptVersion=function(e){return this.shimHost.getScriptVersion(e)},n.prototype.getLocalizedDiagnosticMessages=function(){var e=this.shimHost.getLocalizedDiagnosticMessages();if(null===e||\"\"===e)return null;try{return JSON.parse(e)}catch(e){return this.log(e.description||\"diagnosticMessages.generated.json has invalid JSON format\"),null}},n.prototype.getCancellationToken=function(){var n=this.shimHost.getCancellationToken();return new e.ThrottledCancellationToken(n)},n.prototype.getCurrentDirectory=function(){return this.shimHost.getCurrentDirectory()},n.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},n.prototype.getDefaultLibFileName=function(e){return this.shimHost.getDefaultLibFileName(JSON.stringify(e))},n.prototype.readDirectory=function(n,t,r,a,i){var o=e.getFileMatcherPatterns(n,r,a,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(n,JSON.stringify(t),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,i))},n.prototype.readFile=function(e,n){return this.shimHost.readFile(e,n)},n.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},n}();e.LanguageServiceShimHostAdapter=r;var a=function(){function n(e){var n=this;this.shimHost=e,this.useCaseSensitiveFileNames=!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames(),\"directoryExists\"in this.shimHost?this.directoryExists=function(e){return n.shimHost.directoryExists(e)}:this.directoryExists=void 0,\"realpath\"in this.shimHost?this.realpath=function(e){return n.shimHost.realpath(e)}:this.realpath=void 0}return n.prototype.readDirectory=function(n,t,r,a,i){var o=e.getFileMatcherPatterns(n,r,a,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(n,JSON.stringify(t),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,i))},n.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},n.prototype.readFile=function(e){return this.shimHost.readFile(e)},n.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},n}();function i(e,n,t,r){return o(e,n,!0,t,r)}function o(t,r,a,i,o){try{var s=function(n,t,r,a){var i;a&&(n.log(t),i=e.timestamp());var o=r();if(a){var s=e.timestamp();if(n.log(t+\" completed in \"+(s-i)+\" msec\"),e.isString(o)){var c=o;c.length>128&&(c=c.substring(0,128)+\"...\"),n.log(\"  result.length=\"+c.length+\", result='\"+JSON.stringify(c)+\"'\")}}return o}(t,r,i,o);return a?JSON.stringify({result:s}):s}catch(a){return a instanceof e.OperationCanceledException?JSON.stringify({canceled:!0}):(n(t,a),a.description=r,JSON.stringify({error:a}))}}e.CoreServicesShimHostAdapter=a;var s=function(){function e(e){this.factory=e,e.registerShim(this)}return e.prototype.dispose=function(e){this.factory.unregisterShim(this)},e}();function c(n,t){return n.map((function(n){return function(n,t){return{message:e.flattenDiagnosticMessageText(n.messageText,t),start:n.start,length:n.length,category:e.diagnosticCategoryName(n),code:n.code,reportsUnnecessary:n.reportsUnnecessary}}(n,t)}))}e.realizeDiagnostics=c;var l=function(n){function t(e,t,r){var a=n.call(this,e)||this;return a.host=t,a.languageService=r,a.logPerformance=!1,a.logger=a.host,a}return __extends(t,n),t.prototype.forwardJSONCall=function(e,n){return i(this.logger,e,n,this.logPerformance)},t.prototype.dispose=function(e){this.logger.log(\"dispose()\"),this.languageService.dispose(),this.languageService=null,debugObjectHost&&debugObjectHost.CollectGarbage&&(debugObjectHost.CollectGarbage(),this.logger.log(\"CollectGarbage()\")),this.logger=null,n.prototype.dispose.call(this,e)},t.prototype.refresh=function(e){this.forwardJSONCall(\"refresh(\"+e+\")\",(function(){return null}))},t.prototype.cleanupSemanticCache=function(){var e=this;this.forwardJSONCall(\"cleanupSemanticCache()\",(function(){return e.languageService.cleanupSemanticCache(),null}))},t.prototype.realizeDiagnostics=function(n){return c(n,e.getNewLineOrDefaultFromHost(this.host))},t.prototype.getSyntacticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getSyntacticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return a.languageService.getSyntacticClassifications(n,e.createTextSpan(t,r))}))},t.prototype.getSemanticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getSemanticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return a.languageService.getSemanticClassifications(n,e.createTextSpan(t,r))}))},t.prototype.getEncodedSyntacticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getEncodedSyntacticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return u(a.languageService.getEncodedSyntacticClassifications(n,e.createTextSpan(t,r)))}))},t.prototype.getEncodedSemanticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getEncodedSemanticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return u(a.languageService.getEncodedSemanticClassifications(n,e.createTextSpan(t,r)))}))},t.prototype.getSyntacticDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSyntacticDiagnostics('\"+e+\"')\",(function(){var t=n.languageService.getSyntacticDiagnostics(e);return n.realizeDiagnostics(t)}))},t.prototype.getSemanticDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSemanticDiagnostics('\"+e+\"')\",(function(){var t=n.languageService.getSemanticDiagnostics(e);return n.realizeDiagnostics(t)}))},t.prototype.getSuggestionDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSuggestionDiagnostics('\"+e+\"')\",(function(){return n.realizeDiagnostics(n.languageService.getSuggestionDiagnostics(e))}))},t.prototype.getCompilerOptionsDiagnostics=function(){var e=this;return this.forwardJSONCall(\"getCompilerOptionsDiagnostics()\",(function(){var n=e.languageService.getCompilerOptionsDiagnostics();return e.realizeDiagnostics(n)}))},t.prototype.getQuickInfoAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getQuickInfoAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getQuickInfoAtPosition(e,n)}))},t.prototype.getNameOrDottedNameSpan=function(e,n,t){var r=this;return this.forwardJSONCall(\"getNameOrDottedNameSpan('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getNameOrDottedNameSpan(e,n,t)}))},t.prototype.getBreakpointStatementAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getBreakpointStatementAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getBreakpointStatementAtPosition(e,n)}))},t.prototype.getSignatureHelpItems=function(e,n,t){var r=this;return this.forwardJSONCall(\"getSignatureHelpItems('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getSignatureHelpItems(e,n,t)}))},t.prototype.getDefinitionAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getDefinitionAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDefinitionAtPosition(e,n)}))},t.prototype.getDefinitionAndBoundSpan=function(e,n){var t=this;return this.forwardJSONCall(\"getDefinitionAndBoundSpan('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDefinitionAndBoundSpan(e,n)}))},t.prototype.getTypeDefinitionAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getTypeDefinitionAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getTypeDefinitionAtPosition(e,n)}))},t.prototype.getImplementationAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getImplementationAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getImplementationAtPosition(e,n)}))},t.prototype.getRenameInfo=function(e,n,t){var r=this;return this.forwardJSONCall(\"getRenameInfo('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getRenameInfo(e,n,t)}))},t.prototype.getSmartSelectionRange=function(e,n){var t=this;return this.forwardJSONCall(\"getSmartSelectionRange('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getSmartSelectionRange(e,n)}))},t.prototype.findRenameLocations=function(e,n,t,r,a){var i=this;return this.forwardJSONCall(\"findRenameLocations('\"+e+\"', \"+n+\", \"+t+\", \"+r+\", \"+a+\")\",(function(){return i.languageService.findRenameLocations(e,n,t,r,a)}))},t.prototype.getBraceMatchingAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getBraceMatchingAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getBraceMatchingAtPosition(e,n)}))},t.prototype.isValidBraceCompletionAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"isValidBraceCompletionAtPosition('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.isValidBraceCompletionAtPosition(e,n,t)}))},t.prototype.getSpanOfEnclosingComment=function(e,n,t){var r=this;return this.forwardJSONCall(\"getSpanOfEnclosingComment('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getSpanOfEnclosingComment(e,n,t)}))},t.prototype.getIndentationAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"getIndentationAtPosition('\"+e+\"', \"+n+\")\",(function(){var a=JSON.parse(t);return r.languageService.getIndentationAtPosition(e,n,a)}))},t.prototype.getReferencesAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getReferencesAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getReferencesAtPosition(e,n)}))},t.prototype.findReferences=function(e,n){var t=this;return this.forwardJSONCall(\"findReferences('\"+e+\"', \"+n+\")\",(function(){return t.languageService.findReferences(e,n)}))},t.prototype.getOccurrencesAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getOccurrencesAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getOccurrencesAtPosition(e,n)}))},t.prototype.getDocumentHighlights=function(n,t,r){var a=this;return this.forwardJSONCall(\"getDocumentHighlights('\"+n+\"', \"+t+\")\",(function(){var i=a.languageService.getDocumentHighlights(n,t,JSON.parse(r)),o=e.normalizeSlashes(n).toLowerCase();return e.filter(i,(function(n){return e.normalizeSlashes(n.fileName).toLowerCase()===o}))}))},t.prototype.getCompletionsAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"getCompletionsAtPosition('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getCompletionsAtPosition(e,n,t)}))},t.prototype.getCompletionEntryDetails=function(e,n,t,r,a,i){var o=this;return this.forwardJSONCall(\"getCompletionEntryDetails('\"+e+\"', \"+n+\", '\"+t+\"')\",(function(){var s=void 0===r?void 0:JSON.parse(r);return o.languageService.getCompletionEntryDetails(e,n,t,s,a,i)}))},t.prototype.getFormattingEditsForRange=function(e,n,t,r){var a=this;return this.forwardJSONCall(\"getFormattingEditsForRange('\"+e+\"', \"+n+\", \"+t+\")\",(function(){var i=JSON.parse(r);return a.languageService.getFormattingEditsForRange(e,n,t,i)}))},t.prototype.getFormattingEditsForDocument=function(e,n){var t=this;return this.forwardJSONCall(\"getFormattingEditsForDocument('\"+e+\"')\",(function(){var r=JSON.parse(n);return t.languageService.getFormattingEditsForDocument(e,r)}))},t.prototype.getFormattingEditsAfterKeystroke=function(e,n,t,r){var a=this;return this.forwardJSONCall(\"getFormattingEditsAfterKeystroke('\"+e+\"', \"+n+\", '\"+t+\"')\",(function(){var i=JSON.parse(r);return a.languageService.getFormattingEditsAfterKeystroke(e,n,t,i)}))},t.prototype.getDocCommentTemplateAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getDocCommentTemplateAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDocCommentTemplateAtPosition(e,n)}))},t.prototype.getNavigateToItems=function(e,n,t){var r=this;return this.forwardJSONCall(\"getNavigateToItems('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getNavigateToItems(e,n,t)}))},t.prototype.getNavigationBarItems=function(e){var n=this;return this.forwardJSONCall(\"getNavigationBarItems('\"+e+\"')\",(function(){return n.languageService.getNavigationBarItems(e)}))},t.prototype.getNavigationTree=function(e){var n=this;return this.forwardJSONCall(\"getNavigationTree('\"+e+\"')\",(function(){return n.languageService.getNavigationTree(e)}))},t.prototype.getOutliningSpans=function(e){var n=this;return this.forwardJSONCall(\"getOutliningSpans('\"+e+\"')\",(function(){return n.languageService.getOutliningSpans(e)}))},t.prototype.getTodoComments=function(e,n){var t=this;return this.forwardJSONCall(\"getTodoComments('\"+e+\"')\",(function(){return t.languageService.getTodoComments(e,JSON.parse(n))}))},t.prototype.getEmitOutput=function(e){var n=this;return this.forwardJSONCall(\"getEmitOutput('\"+e+\"')\",(function(){return n.languageService.getEmitOutput(e)}))},t.prototype.getEmitOutputObject=function(e){var n=this;return o(this.logger,\"getEmitOutput('\"+e+\"')\",!1,(function(){return n.languageService.getEmitOutput(e)}),this.logPerformance)},t}(s);function u(e){return{spans:e.spans.join(\",\"),endOfLineState:e.endOfLineState}}var d=function(n){function t(t,r){var a=n.call(this,t)||this;return a.logger=r,a.logPerformance=!1,a.classifier=e.createClassifier(),a}return __extends(t,n),t.prototype.getEncodedLexicalClassifications=function(e,n,t){var r=this;return void 0===t&&(t=!1),i(this.logger,\"getEncodedLexicalClassifications\",(function(){return u(r.classifier.getEncodedLexicalClassifications(e,n,t))}),this.logPerformance)},t.prototype.getClassificationsForLine=function(e,n,t){void 0===t&&(t=!1);for(var r=this.classifier.getClassificationsForLine(e,n,t),a=\"\",i=0,o=r.entries;i<o.length;i++){var s=o[i];a+=s.length+\"\\n\",a+=s.classification+\"\\n\"}return a+=r.finalLexState},t}(s),p=function(n){function t(e,t,r){var a=n.call(this,e)||this;return a.logger=t,a.host=r,a.logPerformance=!1,a}return __extends(t,n),t.prototype.forwardJSONCall=function(e,n){return i(this.logger,e,n,this.logPerformance)},t.prototype.resolveModuleName=function(n,t,r){var a=this;return this.forwardJSONCall(\"resolveModuleName('\"+n+\"')\",(function(){var i=JSON.parse(r),o=e.resolveModuleName(t,e.normalizeSlashes(n),i,a.host),s=o.resolvedModule?o.resolvedModule.resolvedFileName:void 0;return o.resolvedModule&&\".ts\"!==o.resolvedModule.extension&&\".tsx\"!==o.resolvedModule.extension&&\".d.ts\"!==o.resolvedModule.extension&&(s=void 0),{resolvedFileName:s,failedLookupLocations:o.failedLookupLocations}}))},t.prototype.resolveTypeReferenceDirective=function(n,t,r){var a=this;return this.forwardJSONCall(\"resolveTypeReferenceDirective(\"+n+\")\",(function(){var i=JSON.parse(r),o=e.resolveTypeReferenceDirective(t,e.normalizeSlashes(n),i,a.host);return{resolvedFileName:o.resolvedTypeReferenceDirective?o.resolvedTypeReferenceDirective.resolvedFileName:void 0,primary:!o.resolvedTypeReferenceDirective||o.resolvedTypeReferenceDirective.primary,failedLookupLocations:o.failedLookupLocations}}))},t.prototype.getPreProcessedFileInfo=function(n,t){var r=this;return this.forwardJSONCall(\"getPreProcessedFileInfo('\"+n+\"')\",(function(){var n=e.preProcessFile(e.getSnapshotText(t),!0,!0);return{referencedFiles:r.convertFileReferences(n.referencedFiles),importedFiles:r.convertFileReferences(n.importedFiles),ambientExternalModules:n.ambientExternalModules,isLibFile:n.isLibFile,typeReferenceDirectives:r.convertFileReferences(n.typeReferenceDirectives),libReferenceDirectives:r.convertFileReferences(n.libReferenceDirectives)}}))},t.prototype.getAutomaticTypeDirectiveNames=function(n){var t=this;return this.forwardJSONCall(\"getAutomaticTypeDirectiveNames('\"+n+\"')\",(function(){var r=JSON.parse(n);return e.getAutomaticTypeDirectiveNames(r,t.host)}))},t.prototype.convertFileReferences=function(n){if(n){for(var t=[],r=0,a=n;r<a.length;r++){var i=a[r];t.push({path:e.normalizeSlashes(i.fileName),position:i.pos,length:i.end-i.pos})}return t}},t.prototype.getTSConfigFileInfo=function(n,t){var r=this;return this.forwardJSONCall(\"getTSConfigFileInfo('\"+n+\"')\",(function(){var a=e.parseJsonText(n,e.getSnapshotText(t)),i=e.normalizeSlashes(n),o=e.parseJsonSourceFileConfigFileContent(a,r.host,e.getDirectoryPath(i),{},i);return{options:o.options,typeAcquisition:o.typeAcquisition,files:o.fileNames,raw:o.raw,errors:c(__spreadArrays(a.parseDiagnostics,o.errors),\"\\r\\n\")}}))},t.prototype.getDefaultCompilationSettings=function(){return this.forwardJSONCall(\"getDefaultCompilationSettings()\",(function(){return e.getDefaultCompilerOptions()}))},t.prototype.discoverTypings=function(n){var t=this,r=e.createGetCanonicalFileName(!1);return this.forwardJSONCall(\"discoverTypings()\",(function(){var a=JSON.parse(n);return void 0===t.safeList&&(t.safeList=e.JsTyping.loadSafeList(t.host,e.toPath(a.safeListPath,a.safeListPath,r))),e.JsTyping.discoverTypings(t.host,(function(e){return t.logger.log(e)}),a.fileNames,e.toPath(a.projectRootPath,a.projectRootPath,r),t.safeList,a.packageNameToTypingLocation,a.typeAcquisition,a.unresolvedImports,a.typesRegistry)}))},t}(s),m=function(){function t(){this._shims=[]}return t.prototype.getServicesVersion=function(){return e.servicesVersion},t.prototype.createLanguageServiceShim=function(t){try{void 0===this.documentRegistry&&(this.documentRegistry=e.createDocumentRegistry(t.useCaseSensitiveFileNames&&t.useCaseSensitiveFileNames(),t.getCurrentDirectory()));var a=new r(t),i=e.createLanguageService(a,this.documentRegistry,!1);return new l(this,t,i)}catch(e){throw n(t,e),e}},t.prototype.createClassifierShim=function(e){try{return new d(this,e)}catch(t){throw n(e,t),t}},t.prototype.createCoreServicesShim=function(e){try{var t=new a(e);return new p(this,e,t)}catch(t){throw n(e,t),t}},t.prototype.close=function(){e.clear(this._shims),this.documentRegistry=void 0},t.prototype.registerShim=function(e){this._shims.push(e)},t.prototype.unregisterShim=function(e){for(var n=0;n<this._shims.length;n++)if(this._shims[n]===e)return void delete this._shims[n];throw new Error(\"Invalid operation\")},t}();e.TypeScriptServicesFactory=m,\"undefined\"!=typeof module&&module.exports&&(module.exports=e)}(ts||(ts={})),function(e){!function(e){e.TypeScriptServicesFactory=ts.TypeScriptServicesFactory}(e.Services||(e.Services={}))}(TypeScript||(TypeScript={}));var toolsVersion=ts.versionMajorMinor;define(\"vs/language/typescript/lib/typescriptServices\",[],(function(){return ts})),define(\"vs/language/typescript/lib/lib\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.lib_es2015_symbol_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface SymbolConstructor {\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Symbol;\\n\\n    /**\\n     * Returns a new unique Symbol value.\\n     * @param  description Description of the new Symbol object.\\n     */\\n    (description?: string | number): symbol;\\n\\n    /**\\n     * Returns a Symbol object from the global symbol registry matching the given key if found.\\n     * Otherwise, returns a new symbol with this key.\\n     * @param key key to search for.\\n     */\\n    for(key: string): symbol;\\n\\n    /**\\n     * Returns a key from the global symbol registry matching the given Symbol if found.\\n     * Otherwise, returns a undefined.\\n     * @param sym Symbol to find the key for.\\n     */\\n    keyFor(sym: symbol): string | undefined;\\n}\\n\\ndeclare var Symbol: SymbolConstructor;',n.lib_es2015_symbol_wellknown_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_symbol_dts+'\\ninterface SymbolConstructor {\\n    /**\\n     * A method that determines if a constructor object recognizes an object as one of the\\n     * constructor’s instances. Called by the semantics of the instanceof operator.\\n     */\\n    readonly hasInstance: symbol;\\n\\n    /**\\n     * A Boolean value that if true indicates that an object should flatten to its array elements\\n     * by Array.prototype.concat.\\n     */\\n    readonly isConcatSpreadable: symbol;\\n\\n    /**\\n     * A regular expression method that matches the regular expression against a string. Called\\n     * by the String.prototype.match method.\\n     */\\n    readonly match: symbol;\\n\\n    /**\\n     * A regular expression method that replaces matched substrings of a string. Called by the\\n     * String.prototype.replace method.\\n     */\\n    readonly replace: symbol;\\n\\n    /**\\n     * A regular expression method that returns the index within a string that matches the\\n     * regular expression. Called by the String.prototype.search method.\\n     */\\n    readonly search: symbol;\\n\\n    /**\\n     * A function valued property that is the constructor function that is used to create\\n     * derived objects.\\n     */\\n    readonly species: symbol;\\n\\n    /**\\n     * A regular expression method that splits a string at the indices that match the regular\\n     * expression. Called by the String.prototype.split method.\\n     */\\n    readonly split: symbol;\\n\\n    /**\\n     * A method that converts an object to a corresponding primitive value.\\n     * Called by the ToPrimitive abstract operation.\\n     */\\n    readonly toPrimitive: symbol;\\n\\n    /**\\n     * A String value that is used in the creation of the default string description of an object.\\n     * Called by the built-in method Object.prototype.toString.\\n     */\\n    readonly toStringTag: symbol;\\n\\n    /**\\n     * An Object whose own property names are property names that are excluded from the \\'with\\'\\n     * environment bindings of the associated objects.\\n     */\\n    readonly unscopables: symbol;\\n}\\n\\ninterface Symbol {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Array<T> {\\n    /**\\n     * Returns an object whose properties have the value \\'true\\'\\n     * when they will be absent when used in a \\'with\\' statement.\\n     */\\n    [Symbol.unscopables](): {\\n        copyWithin: boolean;\\n        entries: boolean;\\n        fill: boolean;\\n        find: boolean;\\n        findIndex: boolean;\\n        keys: boolean;\\n        values: boolean;\\n    };\\n}\\n\\ninterface Date {\\n    /**\\n     * Converts a Date object to a string.\\n     */\\n    [Symbol.toPrimitive](hint: \"default\"): string;\\n    /**\\n     * Converts a Date object to a string.\\n     */\\n    [Symbol.toPrimitive](hint: \"string\"): string;\\n    /**\\n     * Converts a Date object to a number.\\n     */\\n    [Symbol.toPrimitive](hint: \"number\"): number;\\n    /**\\n     * Converts a Date object to a string or number.\\n     *\\n     * @param hint The strings \"number\", \"string\", or \"default\" to specify what primitive to return.\\n     *\\n     * @throws {TypeError} If \\'hint\\' was given something other than \"number\", \"string\", or \"default\".\\n     * @returns A number if \\'hint\\' was \"number\", a string if \\'hint\\' was \"string\" or \"default\".\\n     */\\n    [Symbol.toPrimitive](hint: string): string | number;\\n}\\n\\ninterface Map<K, V> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface WeakMap<K extends object, V> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Set<T> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface WeakSet<T extends object> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface JSON {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Function {\\n    /**\\n     * Determines whether the given value inherits from this function if this function was used\\n     * as a constructor function.\\n     *\\n     * A constructor function can control which objects are recognized as its instances by\\n     * \\'instanceof\\' by overriding this method.\\n     */\\n    [Symbol.hasInstance](value: any): boolean;\\n}\\n\\ninterface GeneratorFunction {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Math {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Promise<T> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface PromiseConstructor {\\n    readonly [Symbol.species]: PromiseConstructor;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Matches a string with this regular expression, and returns an array containing the results of\\n     * that search.\\n     * @param string A string to search within.\\n     */\\n    [Symbol.match](string: string): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using this regular expression.\\n     * @param string A String object or string literal whose contents matching against\\n     *               this regular expression will be replaced\\n     * @param replaceValue A String object or string literal containing the text to replace for every\\n     *                     successful match of this regular expression.\\n     */\\n    [Symbol.replace](string: string, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using this regular expression.\\n     * @param string A String object or string literal whose contents matching against\\n     *               this regular expression will be replaced\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the position beginning first substring match in a regular expression search\\n     * using this regular expression.\\n     *\\n     * @param string The string to search within.\\n     */\\n    [Symbol.search](string: string): number;\\n\\n    /**\\n     * Returns an array of substrings that were delimited by strings in the original input that\\n     * match against this regular expression.\\n     *\\n     * If the regular expression contains capturing parentheses, then each time this\\n     * regular expression matches, the results (including any undefined results) of the\\n     * capturing parentheses are spliced.\\n     *\\n     * @param string string value to split\\n     * @param limit if not undefined, the output array is truncated so that it contains no more\\n     * than \\'limit\\' elements.\\n     */\\n    [Symbol.split](string: string, limit?: number): string[];\\n}\\n\\ninterface RegExpConstructor {\\n    readonly [Symbol.species]: RegExpConstructor;\\n}\\n\\ninterface String {\\n    /**\\n     * Matches a string an object that supports being matched against, and returns an array containing the results of that search.\\n     * @param matcher An object that supports being matched against.\\n     */\\n    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using an object that supports replacement within a string.\\n     * @param searchValue A object can search for and replace matches within a string.\\n     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\\n     */\\n    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using an object that supports replacement within a string.\\n     * @param searchValue A object can search for and replace matches within a string.\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the first substring match in a regular expression search.\\n     * @param searcher An object which supports searching within a string.\\n     */\\n    search(searcher: { [Symbol.search](string: string): number; }): number;\\n\\n    /**\\n     * Split a string into substrings using the specified separator and return them as an array.\\n     * @param splitter An object that can split a string.\\n     * @param limit A value used to limit the number of elements returned in the array.\\n     */\\n    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\\n}\\n\\ninterface ArrayBuffer {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface DataView {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Int8Array {\\n    readonly [Symbol.toStringTag]: \"Int8Array\";\\n}\\n\\ninterface Uint8Array {\\n    readonly [Symbol.toStringTag]: \"UInt8Array\";\\n}\\n\\ninterface Uint8ClampedArray {\\n    readonly [Symbol.toStringTag]: \"Uint8ClampedArray\";\\n}\\n\\ninterface Int16Array {\\n    readonly [Symbol.toStringTag]: \"Int16Array\";\\n}\\n\\ninterface Uint16Array {\\n    readonly [Symbol.toStringTag]: \"Uint16Array\";\\n}\\n\\ninterface Int32Array {\\n    readonly [Symbol.toStringTag]: \"Int32Array\";\\n}\\n\\ninterface Uint32Array {\\n    readonly [Symbol.toStringTag]: \"Uint32Array\";\\n}\\n\\ninterface Float32Array {\\n    readonly [Symbol.toStringTag]: \"Float32Array\";\\n}\\n\\ninterface Float64Array {\\n    readonly [Symbol.toStringTag]: \"Float64Array\";\\n}\\n\\ninterface ArrayConstructor {\\n    readonly [Symbol.species]: ArrayConstructor;\\n}\\ninterface MapConstructor {\\n    readonly [Symbol.species]: MapConstructor;\\n}\\ninterface SetConstructor {\\n    readonly [Symbol.species]: SetConstructor;\\n}\\ninterface ArrayBufferConstructor {\\n    readonly [Symbol.species]: ArrayBufferConstructor;\\n}',n.lib_es2015_reflect_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ndeclare namespace Reflect {\\n    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;\\n    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;\\n    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;\\n    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;\\n    function get(target: object, propertyKey: PropertyKey, receiver?: any): any;\\n    function getOwnPropertyDescriptor(target: object, propertyKey: PropertyKey): PropertyDescriptor | undefined;\\n    function getPrototypeOf(target: object): object;\\n    function has(target: object, propertyKey: PropertyKey): boolean;\\n    function isExtensible(target: object): boolean;\\n    function ownKeys(target: object): PropertyKey[];\\n    function preventExtensions(target: object): boolean;\\n    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;\\n    function setPrototypeOf(target: object, proto: any): boolean;\\n}\\n',n.lib_es2015_proxy_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface ProxyHandler<T extends object> {\\n    getPrototypeOf? (target: T): object | null;\\n    setPrototypeOf? (target: T, v: any): boolean;\\n    isExtensible? (target: T): boolean;\\n    preventExtensions? (target: T): boolean;\\n    getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor | undefined;\\n    has? (target: T, p: PropertyKey): boolean;\\n    get? (target: T, p: PropertyKey, receiver: any): any;\\n    set? (target: T, p: PropertyKey, value: any, receiver: any): boolean;\\n    deleteProperty? (target: T, p: PropertyKey): boolean;\\n    defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;\\n    enumerate? (target: T): PropertyKey[];\\n    ownKeys? (target: T): PropertyKey[];\\n    apply? (target: T, thisArg: any, argArray?: any): any;\\n    construct? (target: T, argArray: any, newTarget?: any): object;\\n}\\n\\ninterface ProxyConstructor {\\n    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };\\n    new <T extends object>(target: T, handler: ProxyHandler<T>): T;\\n}\\ndeclare var Proxy: ProxyConstructor;\\n',n.lib_es2015_iterable_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_symbol_dts+\"\\ninterface SymbolConstructor {\\n    /**\\n     * A method that returns the default iterator for an object. Called by the semantics of the\\n     * for-of statement.\\n     */\\n    readonly iterator: symbol;\\n}\\n\\ninterface IteratorYieldResult<TYield> {\\n    done?: false;\\n    value: TYield;\\n}\\n\\ninterface IteratorReturnResult<TReturn> {\\n    done: true;\\n    value: TReturn;\\n}\\n\\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\\n\\ninterface Iterator<T, TReturn = any, TNext = undefined> {\\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\\n    return?(value?: TReturn): IteratorResult<T, TReturn>;\\n    throw?(e?: any): IteratorResult<T, TReturn>;\\n}\\n\\ninterface Iterable<T> {\\n    [Symbol.iterator](): Iterator<T>;\\n}\\n\\ninterface IterableIterator<T> extends Iterator<T> {\\n    [Symbol.iterator](): IterableIterator<T>;\\n}\\n\\ninterface Array<T> {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, T]>;\\n\\n    /**\\n     * Returns an iterable of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an iterable of values in the array\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface ArrayConstructor {\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param iterable An iterable object to convert to an array.\\n     */\\n    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\\n\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param iterable An iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\\n}\\n\\ninterface ReadonlyArray<T> {\\n    /** Iterator of values in the array. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, T]>;\\n\\n    /**\\n     * Returns an iterable of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an iterable of values in the array\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface IArguments {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<any>;\\n}\\n\\ninterface Map<K, V> {\\n    /** Returns an iterable of entries in the map. */\\n    [Symbol.iterator](): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the map.\\n     */\\n    entries(): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of keys in the map\\n     */\\n    keys(): IterableIterator<K>;\\n\\n    /**\\n     * Returns an iterable of values in the map\\n     */\\n    values(): IterableIterator<V>;\\n}\\n\\ninterface ReadonlyMap<K, V> {\\n    /** Returns an iterable of entries in the map. */\\n    [Symbol.iterator](): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the map.\\n     */\\n    entries(): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of keys in the map\\n     */\\n    keys(): IterableIterator<K>;\\n\\n    /**\\n     * Returns an iterable of values in the map\\n     */\\n    values(): IterableIterator<V>;\\n}\\n\\ninterface MapConstructor {\\n    new <K, V>(iterable: Iterable<readonly [K, V]>): Map<K, V>;\\n}\\n\\ninterface WeakMap<K extends object, V> { }\\n\\ninterface WeakMapConstructor {\\n    new <K extends object, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;\\n}\\n\\ninterface Set<T> {\\n    /** Iterates over values in the set. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n    /**\\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\\n     */\\n    entries(): IterableIterator<[T, T]>;\\n    /**\\n     * Despite its name, returns an iterable of the values in the set,\\n     */\\n    keys(): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of values in the set.\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface ReadonlySet<T> {\\n    /** Iterates over values in the set. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\\n     */\\n    entries(): IterableIterator<[T, T]>;\\n\\n    /**\\n     * Despite its name, returns an iterable of the values in the set,\\n     */\\n    keys(): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of values in the set.\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface SetConstructor {\\n    new <T>(iterable?: Iterable<T> | null): Set<T>;\\n}\\n\\ninterface WeakSet<T extends object> { }\\n\\ninterface WeakSetConstructor {\\n    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;\\n}\\n\\ninterface Promise<T> { }\\n\\ninterface PromiseConstructor {\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;\\n}\\n\\ndeclare namespace Reflect {\\n    function enumerate(target: object): IterableIterator<any>;\\n}\\n\\ninterface String {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface Int8Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int8ArrayConstructor {\\n    new (elements: Iterable<number>): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;\\n}\\n\\ninterface Uint8Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint8ArrayConstructor {\\n    new (elements: Iterable<number>): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;\\n}\\n\\ninterface Uint8ClampedArray {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint8ClampedArrayConstructor {\\n    new (elements: Iterable<number>): Uint8ClampedArray;\\n\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;\\n}\\n\\ninterface Int16Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int16ArrayConstructor {\\n    new (elements: Iterable<number>): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;\\n}\\n\\ninterface Uint16Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint16ArrayConstructor {\\n    new (elements: Iterable<number>): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;\\n}\\n\\ninterface Int32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int32ArrayConstructor {\\n    new (elements: Iterable<number>): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;\\n}\\n\\ninterface Uint32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint32ArrayConstructor {\\n    new (elements: Iterable<number>): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;\\n}\\n\\ninterface Float32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Float32ArrayConstructor {\\n    new (elements: Iterable<number>): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;\\n}\\n\\ninterface Float64Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Float64ArrayConstructor {\\n    new (elements: Iterable<number>): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;\\n}\\n\",n.lib_es2015_promise_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface PromiseConstructor {\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Promise<any>;\\n\\n    /**\\n     * Creates a new Promise.\\n     * @param executor A callback used to initialize the promise. This callback is passed two arguments:\\n     * a resolve callback used to resolve the promise with a value or the result of another promise,\\n     * and a reject callback used to reject the promise with a provided reason or error.\\n     */\\n    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: readonly T[]): Promise<T extends PromiseLike<infer U> ? U : T>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An iterable of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>;\\n\\n    /**\\n     * Creates a new rejected promise for the provided reason.\\n     * @param reason The reason the promise was rejected.\\n     * @returns A new rejected Promise.\\n     */\\n    reject<T = never>(reason?: any): Promise<T>;\\n\\n    /**\\n     * Creates a new resolved promise for the provided value.\\n     * @param value A promise.\\n     * @returns A promise whose internal state matches the provided promise.\\n     */\\n    resolve<T>(value: T | PromiseLike<T>): Promise<T>;\\n\\n    /**\\n     * Creates a new resolved promise .\\n     * @returns A resolved promise.\\n     */\\n    resolve(): Promise<void>;\\n}\\n\\ndeclare var Promise: PromiseConstructor;\\n',n.lib_es2015_generator_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_iterable_dts+\"\\ninterface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {\\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\\n    return(value: TReturn): IteratorResult<T, TReturn>;\\n    throw(e: any): IteratorResult<T, TReturn>;\\n    [Symbol.iterator](): Generator<T, TReturn, TNext>;\\n}\\n\\ninterface GeneratorFunction {\\n    /**\\n     * Creates a new Generator object.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new (...args: any[]): Generator;\\n    /**\\n     * Creates a new Generator object.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    (...args: any[]): Generator;\\n    /**\\n     * The length of the arguments.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the name of the function.\\n     */\\n    readonly name: string;\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Generator;\\n}\\n\\ninterface GeneratorFunctionConstructor {\\n    /**\\n     * Creates a new Generator function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new (...args: string[]): GeneratorFunction;\\n    /**\\n     * Creates a new Generator function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    (...args: string[]): GeneratorFunction;\\n    /**\\n     * The length of the arguments.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the name of the function.\\n     */\\n    readonly name: string;\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: GeneratorFunction;\\n}\\n\",n.lib_es2015_collection_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface Map<K, V> {\\n    clear(): void;\\n    delete(key: K): boolean;\\n    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    set(key: K, value: V): this;\\n    readonly size: number;\\n}\\n\\ninterface MapConstructor {\\n    new(): Map<any, any>;\\n    new<K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;\\n    readonly prototype: Map<any, any>;\\n}\\ndeclare var Map: MapConstructor;\\n\\ninterface ReadonlyMap<K, V> {\\n    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    readonly size: number;\\n}\\n\\ninterface WeakMap<K extends object, V> {\\n    delete(key: K): boolean;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    set(key: K, value: V): this;\\n}\\n\\ninterface WeakMapConstructor {\\n    new <K extends object = object, V = any>(entries?: readonly [K, V][] | null): WeakMap<K, V>;\\n    readonly prototype: WeakMap<object, any>;\\n}\\ndeclare var WeakMap: WeakMapConstructor;\\n\\ninterface Set<T> {\\n    add(value: T): this;\\n    clear(): void;\\n    delete(value: T): boolean;\\n    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;\\n    has(value: T): boolean;\\n    readonly size: number;\\n}\\n\\ninterface SetConstructor {\\n    new <T = any>(values?: readonly T[] | null): Set<T>;\\n    readonly prototype: Set<any>;\\n}\\ndeclare var Set: SetConstructor;\\n\\ninterface ReadonlySet<T> {\\n    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;\\n    has(value: T): boolean;\\n    readonly size: number;\\n}\\n\\ninterface WeakSet<T extends object> {\\n    add(value: T): this;\\n    delete(value: T): boolean;\\n    has(value: T): boolean;\\n}\\n\\ninterface WeakSetConstructor {\\n    new <T extends object = object>(values?: readonly T[] | null): WeakSet<T>;\\n    readonly prototype: WeakSet<object>;\\n}\\ndeclare var WeakSet: WeakSetConstructor;\\n',n.lib_es2015_core_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface Array<T> {\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;\\n    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: T, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n}\\n\\ninterface ArrayConstructor {\\n    /**\\n     * Creates an array from an array-like object.\\n     * @param arrayLike An array-like object to convert to an array.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>): T[];\\n\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param arrayLike An array-like object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of \\'this\\' used to invoke the mapfn.\\n     */\\n    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of<T>(...items: T[]): T[];\\n}\\n\\ninterface DateConstructor {\\n    new (value: number | string | Date): Date;\\n}\\n\\ninterface Function {\\n    /**\\n     * Returns the name of the function. Function names are read-only and can not be changed.\\n     */\\n    readonly name: string;\\n}\\n\\ninterface Math {\\n    /**\\n     * Returns the number of leading zero bits in the 32-bit binary representation of a number.\\n     * @param x A numeric expression.\\n     */\\n    clz32(x: number): number;\\n\\n    /**\\n     * Returns the result of 32-bit multiplication of two numbers.\\n     * @param x First number\\n     * @param y Second number\\n     */\\n    imul(x: number, y: number): number;\\n\\n    /**\\n     * Returns the sign of the x, indicating whether x is positive, negative or zero.\\n     * @param x The numeric expression to test\\n     */\\n    sign(x: number): number;\\n\\n    /**\\n     * Returns the base 10 logarithm of a number.\\n     * @param x A numeric expression.\\n     */\\n    log10(x: number): number;\\n\\n    /**\\n     * Returns the base 2 logarithm of a number.\\n     * @param x A numeric expression.\\n     */\\n    log2(x: number): number;\\n\\n    /**\\n     * Returns the natural logarithm of 1 + x.\\n     * @param x A numeric expression.\\n     */\\n    log1p(x: number): number;\\n\\n    /**\\n     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to\\n     * subtracting 1 from the exponential function of x (e raised to the power of x, where e\\n     * is the base of the natural logarithms).\\n     * @param x A numeric expression.\\n     */\\n    expm1(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    cosh(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    sinh(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    tanh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    acosh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    asinh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    atanh(x: number): number;\\n\\n    /**\\n     * Returns the square root of the sum of squares of its arguments.\\n     * @param values Values to compute the square root for.\\n     *     If no arguments are passed, the result is +0.\\n     *     If there is only one argument, the result is the absolute value.\\n     *     If any argument is +Infinity or -Infinity, the result is +Infinity.\\n     *     If any argument is NaN, the result is NaN.\\n     *     If all arguments are either +0 or −0, the result is +0.\\n     */\\n    hypot(...values: number[]): number;\\n\\n    /**\\n     * Returns the integral part of the a numeric expression, x, removing any fractional digits.\\n     * If x is already an integer, the result is x.\\n     * @param x A numeric expression.\\n     */\\n    trunc(x: number): number;\\n\\n    /**\\n     * Returns the nearest single precision float representation of a number.\\n     * @param x A numeric expression.\\n     */\\n    fround(x: number): number;\\n\\n    /**\\n     * Returns an implementation-dependent approximation to the cube root of number.\\n     * @param x A numeric expression.\\n     */\\n    cbrt(x: number): number;\\n}\\n\\ninterface NumberConstructor {\\n    /**\\n     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1\\n     * that is representable as a Number value, which is approximately:\\n     * 2.2204460492503130808472633361816 x 10‍−‍16.\\n     */\\n    readonly EPSILON: number;\\n\\n    /**\\n     * Returns true if passed value is finite.\\n     * Unlike the global isFinite, Number.isFinite doesn\\'t forcibly convert the parameter to a\\n     * number. Only finite values of the type number, result in true.\\n     * @param number A numeric value.\\n     */\\n    isFinite(number: number): boolean;\\n\\n    /**\\n     * Returns true if the value passed is an integer, false otherwise.\\n     * @param number A numeric value.\\n     */\\n    isInteger(number: number): boolean;\\n\\n    /**\\n     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a\\n     * number). Unlike the global isNaN(), Number.isNaN() doesn\\'t forcefully convert the parameter\\n     * to a number. Only values of the type number, that are also NaN, result in true.\\n     * @param number A numeric value.\\n     */\\n    isNaN(number: number): boolean;\\n\\n    /**\\n     * Returns true if the value passed is a safe integer.\\n     * @param number A numeric value.\\n     */\\n    isSafeInteger(number: number): boolean;\\n\\n    /**\\n     * The value of the largest integer n such that n and n + 1 are both exactly representable as\\n     * a Number value.\\n     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.\\n     */\\n    readonly MAX_SAFE_INTEGER: number;\\n\\n    /**\\n     * The value of the smallest integer n such that n and n − 1 are both exactly representable as\\n     * a Number value.\\n     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).\\n     */\\n    readonly MIN_SAFE_INTEGER: number;\\n\\n    /**\\n     * Converts a string to a floating-point number.\\n     * @param string A string that contains a floating-point number.\\n     */\\n    parseFloat(string: string): number;\\n\\n    /**\\n     * Converts A string to an integer.\\n     * @param s A string to convert into a number.\\n     * @param radix A value between 2 and 36 that specifies the base of the number in numString.\\n     * If this argument is not supplied, strings with a prefix of \\'0x\\' are considered hexadecimal.\\n     * All other strings are considered decimal.\\n     */\\n    parseInt(string: string, radix?: number): number;\\n}\\n\\ninterface ObjectConstructor {\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source The source object from which to copy properties.\\n     */\\n    assign<T, U>(target: T, source: U): T & U;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source1 The first source object from which to copy properties.\\n     * @param source2 The second source object from which to copy properties.\\n     */\\n    assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source1 The first source object from which to copy properties.\\n     * @param source2 The second source object from which to copy properties.\\n     * @param source3 The third source object from which to copy properties.\\n     */\\n    assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param sources One or more source objects from which to copy properties\\n     */\\n    assign(target: object, ...sources: any[]): any;\\n\\n    /**\\n     * Returns an array of all symbol properties found directly on object o.\\n     * @param o Object to retrieve the symbols from.\\n     */\\n    getOwnPropertySymbols(o: any): symbol[];\\n\\n    /**\\n     * Returns the names of the enumerable string properties and methods of an object.\\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\\n     */\\n    keys(o: {}): string[];\\n\\n    /**\\n     * Returns true if the values are the same value, false otherwise.\\n     * @param value1 The first value.\\n     * @param value2 The second value.\\n     */\\n    is(value1: any, value2: any): boolean;\\n\\n    /**\\n     * Sets the prototype of a specified object o to object proto or null. Returns the object o.\\n     * @param o The object to change its prototype.\\n     * @param proto The value of the new prototype or null.\\n     */\\n    setPrototypeOf(o: any, proto: object | null): any;\\n}\\n\\ninterface ReadonlyArray<T> {\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\\n    find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Returns a string indicating the flags of the regular expression in question. This field is read-only.\\n     * The characters in this string are sequenced and concatenated in the following order:\\n     *\\n     *    - \"g\" for global\\n     *    - \"i\" for ignoreCase\\n     *    - \"m\" for multiline\\n     *    - \"u\" for unicode\\n     *    - \"y\" for sticky\\n     *\\n     * If no flags are set, the value is the empty string.\\n     */\\n    readonly flags: string;\\n\\n    /**\\n     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular\\n     * expression. Default is false. Read-only.\\n     */\\n    readonly sticky: boolean;\\n\\n    /**\\n     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular\\n     * expression. Default is false. Read-only.\\n     */\\n    readonly unicode: boolean;\\n}\\n\\ninterface RegExpConstructor {\\n    new (pattern: RegExp | string, flags?: string): RegExp;\\n    (pattern: RegExp | string, flags?: string): RegExp;\\n}\\n\\ninterface String {\\n    /**\\n     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\\n     * value of the UTF-16 encoded code point starting at the string element at position pos in\\n     * the String resulting from converting this object to a String.\\n     * If there is no element at that position, the result is undefined.\\n     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\\n     */\\n    codePointAt(pos: number): number | undefined;\\n\\n    /**\\n     * Returns true if searchString appears as a substring of the result of converting this\\n     * object to a String, at one or more positions that are\\n     * greater than or equal to position; otherwise, returns false.\\n     * @param searchString search string\\n     * @param position If position is undefined, 0 is assumed, so as to search all of the String.\\n     */\\n    includes(searchString: string, position?: number): boolean;\\n\\n    /**\\n     * Returns true if the sequence of elements of searchString converted to a String is the\\n     * same as the corresponding elements of this object (converted to a String) starting at\\n     * endPosition – length(this). Otherwise returns false.\\n     */\\n    endsWith(searchString: string, endPosition?: number): boolean;\\n\\n    /**\\n     * Returns the String value result of normalizing the string into the normalization form\\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\\n     * is \"NFC\"\\n     */\\n    normalize(form: \"NFC\" | \"NFD\" | \"NFKC\" | \"NFKD\"): string;\\n\\n    /**\\n     * Returns the String value result of normalizing the string into the normalization form\\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\\n     * is \"NFC\"\\n     */\\n    normalize(form?: string): string;\\n\\n    /**\\n     * Returns a String value that is made from count copies appended together. If count is 0,\\n     * the empty string is returned.\\n     * @param count number of copies to append\\n     */\\n    repeat(count: number): string;\\n\\n    /**\\n     * Returns true if the sequence of elements of searchString converted to a String is the\\n     * same as the corresponding elements of this object (converted to a String) starting at\\n     * position. Otherwise returns false.\\n     */\\n    startsWith(searchString: string, position?: number): boolean;\\n\\n    /**\\n     * Returns an <a> HTML anchor element and sets the name attribute to the text value\\n     * @param name\\n     */\\n    anchor(name: string): string;\\n\\n    /** Returns a <big> HTML element */\\n    big(): string;\\n\\n    /** Returns a <blink> HTML element */\\n    blink(): string;\\n\\n    /** Returns a <b> HTML element */\\n    bold(): string;\\n\\n    /** Returns a <tt> HTML element */\\n    fixed(): string;\\n\\n    /** Returns a <font> HTML element and sets the color attribute value */\\n    fontcolor(color: string): string;\\n\\n    /** Returns a <font> HTML element and sets the size attribute value */\\n    fontsize(size: number): string;\\n\\n    /** Returns a <font> HTML element and sets the size attribute value */\\n    fontsize(size: string): string;\\n\\n    /** Returns an <i> HTML element */\\n    italics(): string;\\n\\n    /** Returns an <a> HTML element and sets the href attribute value */\\n    link(url: string): string;\\n\\n    /** Returns a <small> HTML element */\\n    small(): string;\\n\\n    /** Returns a <strike> HTML element */\\n    strike(): string;\\n\\n    /** Returns a <sub> HTML element */\\n    sub(): string;\\n\\n    /** Returns a <sup> HTML element */\\n    sup(): string;\\n}\\n\\ninterface StringConstructor {\\n    /**\\n     * Return the String value whose elements are, in order, the elements in the List elements.\\n     * If length is 0, the empty string is returned.\\n     */\\n    fromCodePoint(...codePoints: number[]): string;\\n\\n    /**\\n     * String.raw is intended for use as a tag function of a Tagged Template String. When called\\n     * as such the first argument will be a well formed template call site object and the rest\\n     * parameter will contain the substitution values.\\n     * @param template A well-formed template string call site representation.\\n     * @param substitutions A set of substitution values.\\n     */\\n    raw(template: TemplateStringsArray, ...substitutions: any[]): string;\\n}\\n',n.lib_dom_iterable_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n/////////////////////////////\\n/// DOM Iterable APIs\\n/////////////////////////////\\n\\ninterface AudioParam {\\n    setValueCurveAtTime(values: Iterable<number>, startTime: number, duration: number): AudioParam;\\n}\\n\\ninterface AudioParamMap extends ReadonlyMap<string, AudioParam> {\\n}\\n\\ninterface AudioTrackList {\\n    [Symbol.iterator](): IterableIterator<AudioTrack>;\\n}\\n\\ninterface BaseAudioContext {\\n    createIIRFilter(feedforward: Iterable<number>, feedback: Iterable<number>): IIRFilterNode;\\n    createPeriodicWave(real: Iterable<number>, imag: Iterable<number>, constraints?: PeriodicWaveConstraints): PeriodicWave;\\n}\\n\\ninterface CSSRuleList {\\n    [Symbol.iterator](): IterableIterator<CSSRule>;\\n}\\n\\ninterface CSSStyleDeclaration {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface Cache {\\n    addAll(requests: Iterable<RequestInfo>): Promise<void>;\\n}\\n\\ninterface CanvasPathDrawingStyles {\\n    setLineDash(segments: Iterable<number>): void;\\n}\\n\\ninterface ClientRectList {\\n    [Symbol.iterator](): IterableIterator<ClientRect>;\\n}\\n\\ninterface DOMRectList {\\n    [Symbol.iterator](): IterableIterator<DOMRect>;\\n}\\n\\ninterface DOMStringList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface DOMTokenList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n    entries(): IterableIterator<[number, string]>;\\n    keys(): IterableIterator<number>;\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface DataTransferItemList {\\n    [Symbol.iterator](): IterableIterator<DataTransferItem>;\\n}\\n\\ninterface FileList {\\n    [Symbol.iterator](): IterableIterator<File>;\\n}\\n\\ninterface FormData {\\n    [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[string, FormDataEntryValue]>;\\n    /**\\n     * Returns a list of keys in the list.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns a list of values in the list.\\n     */\\n    values(): IterableIterator<FormDataEntryValue>;\\n}\\n\\ninterface HTMLAllCollection {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLCollectionBase {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLCollectionOf<T extends Element> {\\n    [Symbol.iterator](): IterableIterator<T>;\\n}\\n\\ninterface HTMLFormElement {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLSelectElement {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface Headers {\\n    [Symbol.iterator](): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an iterator allowing to go through all key/value pairs contained in this object.\\n     */\\n    entries(): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an iterator allowing to go through all keys of the key/value pairs contained in this object.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns an iterator allowing to go through all values of the key/value pairs contained in this object.\\n     */\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface IDBObjectStore {\\n    /**\\n     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a \"ConstraintError\" DOMException.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;\\n}\\n\\ninterface MediaKeyStatusMap {\\n    [Symbol.iterator](): IterableIterator<[BufferSource, MediaKeyStatus]>;\\n    entries(): IterableIterator<[BufferSource, MediaKeyStatus]>;\\n    keys(): IterableIterator<BufferSource>;\\n    values(): IterableIterator<MediaKeyStatus>;\\n}\\n\\ninterface MediaList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface MimeTypeArray {\\n    [Symbol.iterator](): IterableIterator<MimeType>;\\n}\\n\\ninterface NamedNodeMap {\\n    [Symbol.iterator](): IterableIterator<Attr>;\\n}\\n\\ninterface Navigator {\\n    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable<MediaKeySystemConfiguration>): Promise<MediaKeySystemAccess>;\\n}\\n\\ninterface NodeList {\\n    [Symbol.iterator](): IterableIterator<Node>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[number, Node]>;\\n    /**\\n     * Returns an list of keys in the list.\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the list.\\n     */\\n    values(): IterableIterator<Node>;\\n}\\n\\ninterface NodeListOf<TNode extends Node> {\\n    [Symbol.iterator](): IterableIterator<TNode>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[number, TNode]>;\\n    /**\\n     * Returns an list of keys in the list.\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the list.\\n     */\\n    values(): IterableIterator<TNode>;\\n}\\n\\ninterface Plugin {\\n    [Symbol.iterator](): IterableIterator<MimeType>;\\n}\\n\\ninterface PluginArray {\\n    [Symbol.iterator](): IterableIterator<Plugin>;\\n}\\n\\ninterface RTCRtpTransceiver {\\n    setCodecPreferences(codecs: Iterable<RTCRtpCodecCapability>): void;\\n}\\n\\ninterface RTCStatsReport extends ReadonlyMap<string, any> {\\n}\\n\\ninterface SVGLengthList {\\n    [Symbol.iterator](): IterableIterator<SVGLength>;\\n}\\n\\ninterface SVGNumberList {\\n    [Symbol.iterator](): IterableIterator<SVGNumber>;\\n}\\n\\ninterface SVGPointList {\\n    [Symbol.iterator](): IterableIterator<DOMPoint>;\\n}\\n\\ninterface SVGStringList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface SourceBufferList {\\n    [Symbol.iterator](): IterableIterator<SourceBuffer>;\\n}\\n\\ninterface SpeechGrammarList {\\n    [Symbol.iterator](): IterableIterator<SpeechGrammar>;\\n}\\n\\ninterface SpeechRecognitionResult {\\n    [Symbol.iterator](): IterableIterator<SpeechRecognitionAlternative>;\\n}\\n\\ninterface SpeechRecognitionResultList {\\n    [Symbol.iterator](): IterableIterator<SpeechRecognitionResult>;\\n}\\n\\ninterface StyleSheetList {\\n    [Symbol.iterator](): IterableIterator<StyleSheet>;\\n}\\n\\ninterface TextTrackCueList {\\n    [Symbol.iterator](): IterableIterator<TextTrackCue>;\\n}\\n\\ninterface TextTrackList {\\n    [Symbol.iterator](): IterableIterator<TextTrack>;\\n}\\n\\ninterface TouchList {\\n    [Symbol.iterator](): IterableIterator<Touch>;\\n}\\n\\ninterface URLSearchParams {\\n    [Symbol.iterator](): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the search params.\\n     */\\n    entries(): IterableIterator<[string, string]>;\\n    /**\\n     * Returns a list of keys in the search params.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns a list of values in the search params.\\n     */\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface VRDisplay {\\n    requestPresent(layers: Iterable<VRLayer>): Promise<void>;\\n}\\n\\ninterface VideoTrackList {\\n    [Symbol.iterator](): IterableIterator<VideoTrack>;\\n}\\n\\ninterface WEBGL_draw_buffers {\\n    drawBuffersWEBGL(buffers: Iterable<GLenum>): void;\\n}\\n\\ninterface WebAuthentication {\\n    makeCredential(accountInformation: Account, cryptoParameters: Iterable<ScopedCredentialParameters>, attestationChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: ScopedCredentialOptions): Promise<ScopedCredentialInfo>;\\n}\\n\\ninterface WebGL2RenderingContextBase {\\n    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: GLuint): void;\\n    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: GLuint): void;\\n    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: GLuint): void;\\n    drawBuffers(buffers: Iterable<GLenum>): void;\\n    getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;\\n    getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;\\n    invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;\\n    invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;\\n    uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;\\n    vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;\\n}\\n\\ninterface WebGL2RenderingContextOverloads {\\n    uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n}\\n\\ninterface WebGLRenderingContextBase {\\n    vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;\\n}\\n\\ninterface WebGLRenderingContextOverloads {\\n    uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n}\\n',n.lib_scripthost_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n\\n\\n/////////////////////////////\\n/// Windows Script Host APIS\\n/////////////////////////////\\n\\n\\ninterface ActiveXObject {\\n    new (s: string): any;\\n}\\ndeclare var ActiveXObject: ActiveXObject;\\n\\ninterface ITextWriter {\\n    Write(s: string): void;\\n    WriteLine(s: string): void;\\n    Close(): void;\\n}\\n\\ninterface TextStreamBase {\\n    /**\\n     * The column number of the current character position in an input stream.\\n     */\\n    Column: number;\\n\\n    /**\\n     * The current line number in an input stream.\\n     */\\n    Line: number;\\n\\n    /**\\n     * Closes a text stream.\\n     * It is not necessary to close standard streams; they close automatically when the process ends. If\\n     * you close a standard stream, be aware that any other pointers to that standard stream become invalid.\\n     */\\n    Close(): void;\\n}\\n\\ninterface TextStreamWriter extends TextStreamBase {\\n    /**\\n     * Sends a string to an output stream.\\n     */\\n    Write(s: string): void;\\n\\n    /**\\n     * Sends a specified number of blank lines (newline characters) to an output stream.\\n     */\\n    WriteBlankLines(intLines: number): void;\\n\\n    /**\\n     * Sends a string followed by a newline character to an output stream.\\n     */\\n    WriteLine(s: string): void;\\n}\\n\\ninterface TextStreamReader extends TextStreamBase {\\n    /**\\n     * Returns a specified number of characters from an input stream, starting at the current pointer position.\\n     * Does not return until the ENTER key is pressed.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    Read(characters: number): string;\\n\\n    /**\\n     * Returns all characters from an input stream.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    ReadAll(): string;\\n\\n    /**\\n     * Returns an entire line from an input stream.\\n     * Although this method extracts the newline character, it does not add it to the returned string.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    ReadLine(): string;\\n\\n    /**\\n     * Skips a specified number of characters when reading from an input text stream.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)\\n     */\\n    Skip(characters: number): void;\\n\\n    /**\\n     * Skips the next line when reading from an input text stream.\\n     * Can only be used on a stream in reading mode, not writing or appending mode.\\n     */\\n    SkipLine(): void;\\n\\n    /**\\n     * Indicates whether the stream pointer position is at the end of a line.\\n     */\\n    AtEndOfLine: boolean;\\n\\n    /**\\n     * Indicates whether the stream pointer position is at the end of a stream.\\n     */\\n    AtEndOfStream: boolean;\\n}\\n\\ndeclare var WScript: {\\n    /**\\n     * Outputs text to either a message box (under WScript.exe) or the command console window followed by\\n     * a newline (under CScript.exe).\\n     */\\n    Echo(s: any): void;\\n\\n    /**\\n     * Exposes the write-only error output stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdErr: TextStreamWriter;\\n\\n    /**\\n     * Exposes the write-only output stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdOut: TextStreamWriter;\\n    Arguments: { length: number; Item(n: number): string; };\\n\\n    /**\\n     *  The full path of the currently running script.\\n     */\\n    ScriptFullName: string;\\n\\n    /**\\n     * Forces the script to stop immediately, with an optional exit code.\\n     */\\n    Quit(exitCode?: number): number;\\n\\n    /**\\n     * The Windows Script Host build version number.\\n     */\\n    BuildVersion: number;\\n\\n    /**\\n     * Fully qualified path of the host executable.\\n     */\\n    FullName: string;\\n\\n    /**\\n     * Gets/sets the script mode - interactive(true) or batch(false).\\n     */\\n    Interactive: boolean;\\n\\n    /**\\n     * The name of the host executable (WScript.exe or CScript.exe).\\n     */\\n    Name: string;\\n\\n    /**\\n     * Path of the directory containing the host executable.\\n     */\\n    Path: string;\\n\\n    /**\\n     * The filename of the currently running script.\\n     */\\n    ScriptName: string;\\n\\n    /**\\n     * Exposes the read-only input stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdIn: TextStreamReader;\\n\\n    /**\\n     * Windows Script Host version\\n     */\\n    Version: string;\\n\\n    /**\\n     * Connects a COM object\\'s event sources to functions named with a given prefix, in the form prefix_event.\\n     */\\n    ConnectObject(objEventSource: any, strPrefix: string): void;\\n\\n    /**\\n     * Creates a COM object.\\n     * @param strProgiID\\n     * @param strPrefix Function names in the form prefix_event will be bound to this object\\'s COM events.\\n     */\\n    CreateObject(strProgID: string, strPrefix?: string): any;\\n\\n    /**\\n     * Disconnects a COM object from its event sources.\\n     */\\n    DisconnectObject(obj: any): void;\\n\\n    /**\\n     * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.\\n     * @param strPathname Fully qualified path to the file containing the object persisted to disk.\\n     *                       For objects in memory, pass a zero-length string.\\n     * @param strProgID\\n     * @param strPrefix Function names in the form prefix_event will be bound to this object\\'s COM events.\\n     */\\n    GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;\\n\\n    /**\\n     * Suspends script execution for a specified length of time, then continues execution.\\n     * @param intTime Interval (in milliseconds) to suspend script execution.\\n     */\\n    Sleep(intTime: number): void;\\n};\\n\\n/**\\n * WSH is an alias for WScript under Windows Script Host\\n */\\ndeclare var WSH: typeof WScript;\\n\\n/**\\n * Represents an Automation SAFEARRAY\\n */\\ndeclare class SafeArray<T = any> {\\n    private constructor();\\n    private SafeArray_typekey: SafeArray<T>;\\n}\\n\\n/**\\n * Allows enumerating over a COM collection, which may not have indexed item access.\\n */\\ninterface Enumerator<T = any> {\\n    /**\\n     * Returns true if the current item is the last one in the collection, or the collection is empty,\\n     * or the current item is undefined.\\n     */\\n    atEnd(): boolean;\\n\\n    /**\\n     * Returns the current item in the collection\\n     */\\n    item(): T;\\n\\n    /**\\n     * Resets the current item in the collection to the first item. If there are no items in the collection,\\n     * the current item is set to undefined.\\n     */\\n    moveFirst(): void;\\n\\n    /**\\n     * Moves the current item to the next item in the collection. If the enumerator is at the end of\\n     * the collection or the collection is empty, the current item is set to undefined.\\n     */\\n    moveNext(): void;\\n}\\n\\ninterface EnumeratorConstructor {\\n    new <T = any>(safearray: SafeArray<T>): Enumerator<T>;\\n    new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;\\n    new <T = any>(collection: any): Enumerator<T>;\\n}\\n\\ndeclare var Enumerator: EnumeratorConstructor;\\n\\n/**\\n * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.\\n */\\ninterface VBArray<T = any> {\\n    /**\\n     * Returns the number of dimensions (1-based).\\n     */\\n    dimensions(): number;\\n\\n    /**\\n     * Takes an index for each dimension in the array, and returns the item at the corresponding location.\\n     */\\n    getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;\\n\\n    /**\\n     * Returns the smallest available index for a given dimension.\\n     * @param dimension 1-based dimension (defaults to 1)\\n     */\\n    lbound(dimension?: number): number;\\n\\n    /**\\n     * Returns the largest available index for a given dimension.\\n     * @param dimension 1-based dimension (defaults to 1)\\n     */\\n    ubound(dimension?: number): number;\\n\\n    /**\\n     * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,\\n     * each successive dimension is appended to the end of the array.\\n     * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]\\n     */\\n    toArray(): T[];\\n}\\n\\ninterface VBArrayConstructor {\\n    new <T = any>(safeArray: SafeArray<T>): VBArray<T>;\\n}\\n\\ndeclare var VBArray: VBArrayConstructor;\\n\\n/**\\n * Automation date (VT_DATE)\\n */\\ndeclare class VarDate {\\n    private constructor();\\n    private VarDate_typekey: VarDate;\\n}\\n\\ninterface DateConstructor {\\n    new (vd: VarDate): Date;\\n}\\n\\ninterface Date {\\n    getVarDate: () => VarDate;\\n}\\n',n.lib_webworker_importscripts_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n\\n/////////////////////////////\\n/// WorkerGlobalScope APIs\\n/////////////////////////////\\n// These are only available in a Web Worker\\ndeclare function importScripts(...urls: string[]): void;\\n',n.lib_dom_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n/////////////////////////////\\n/// DOM APIs\\n/////////////////////////////\\n\\ninterface Account {\\n    displayName: string;\\n    id: string;\\n    imageURL?: string;\\n    name?: string;\\n    rpDisplayName: string;\\n}\\n\\ninterface AddEventListenerOptions extends EventListenerOptions {\\n    once?: boolean;\\n    passive?: boolean;\\n}\\n\\ninterface AesCbcParams extends Algorithm {\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface AesCtrParams extends Algorithm {\\n    counter: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    length: number;\\n}\\n\\ninterface AesDerivedKeyParams extends Algorithm {\\n    length: number;\\n}\\n\\ninterface AesGcmParams extends Algorithm {\\n    additionalData?: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    tagLength?: number;\\n}\\n\\ninterface AesKeyAlgorithm extends KeyAlgorithm {\\n    length: number;\\n}\\n\\ninterface AesKeyGenParams extends Algorithm {\\n    length: number;\\n}\\n\\ninterface Algorithm {\\n    name: string;\\n}\\n\\ninterface AnalyserOptions extends AudioNodeOptions {\\n    fftSize?: number;\\n    maxDecibels?: number;\\n    minDecibels?: number;\\n    smoothingTimeConstant?: number;\\n}\\n\\ninterface AnimationEventInit extends EventInit {\\n    animationName?: string;\\n    elapsedTime?: number;\\n    pseudoElement?: string;\\n}\\n\\ninterface AnimationPlaybackEventInit extends EventInit {\\n    currentTime?: number | null;\\n    timelineTime?: number | null;\\n}\\n\\ninterface AssertionOptions {\\n    allowList?: ScopedCredentialDescriptor[];\\n    extensions?: WebAuthnExtensions;\\n    rpId?: string;\\n    timeoutSeconds?: number;\\n}\\n\\ninterface AssignedNodesOptions {\\n    flatten?: boolean;\\n}\\n\\ninterface AudioBufferOptions {\\n    length: number;\\n    numberOfChannels?: number;\\n    sampleRate: number;\\n}\\n\\ninterface AudioBufferSourceOptions {\\n    buffer?: AudioBuffer | null;\\n    detune?: number;\\n    loop?: boolean;\\n    loopEnd?: number;\\n    loopStart?: number;\\n    playbackRate?: number;\\n}\\n\\ninterface AudioContextInfo {\\n    currentTime?: number;\\n    sampleRate?: number;\\n}\\n\\ninterface AudioContextOptions {\\n    latencyHint?: AudioContextLatencyCategory | number;\\n    sampleRate?: number;\\n}\\n\\ninterface AudioNodeOptions {\\n    channelCount?: number;\\n    channelCountMode?: ChannelCountMode;\\n    channelInterpretation?: ChannelInterpretation;\\n}\\n\\ninterface AudioParamDescriptor {\\n    automationRate?: AutomationRate;\\n    defaultValue?: number;\\n    maxValue?: number;\\n    minValue?: number;\\n    name: string;\\n}\\n\\ninterface AudioProcessingEventInit extends EventInit {\\n    inputBuffer: AudioBuffer;\\n    outputBuffer: AudioBuffer;\\n    playbackTime: number;\\n}\\n\\ninterface AudioTimestamp {\\n    contextTime?: number;\\n    performanceTime?: number;\\n}\\n\\ninterface AudioWorkletNodeOptions extends AudioNodeOptions {\\n    numberOfInputs?: number;\\n    numberOfOutputs?: number;\\n    outputChannelCount?: number[];\\n    parameterData?: Record<string, number>;\\n    processorOptions?: any;\\n}\\n\\ninterface AuthenticationExtensionsClientInputs {\\n    appid?: string;\\n    authnSel?: AuthenticatorSelectionList;\\n    exts?: boolean;\\n    loc?: boolean;\\n    txAuthGeneric?: txAuthGenericArg;\\n    txAuthSimple?: string;\\n    uvi?: boolean;\\n    uvm?: boolean;\\n}\\n\\ninterface AuthenticationExtensionsClientOutputs {\\n    appid?: boolean;\\n    authnSel?: boolean;\\n    exts?: AuthenticationExtensionsSupported;\\n    loc?: Coordinates;\\n    txAuthGeneric?: ArrayBuffer;\\n    txAuthSimple?: string;\\n    uvi?: ArrayBuffer;\\n    uvm?: UvmEntries;\\n}\\n\\ninterface AuthenticatorSelectionCriteria {\\n    authenticatorAttachment?: AuthenticatorAttachment;\\n    requireResidentKey?: boolean;\\n    userVerification?: UserVerificationRequirement;\\n}\\n\\ninterface BiquadFilterOptions extends AudioNodeOptions {\\n    Q?: number;\\n    detune?: number;\\n    frequency?: number;\\n    gain?: number;\\n    type?: BiquadFilterType;\\n}\\n\\ninterface BlobPropertyBag {\\n    endings?: EndingType;\\n    type?: string;\\n}\\n\\ninterface ByteLengthChunk {\\n    byteLength?: number;\\n}\\n\\ninterface CacheQueryOptions {\\n    ignoreMethod?: boolean;\\n    ignoreSearch?: boolean;\\n    ignoreVary?: boolean;\\n}\\n\\ninterface CanvasRenderingContext2DSettings {\\n    alpha?: boolean;\\n    desynchronized?: boolean;\\n}\\n\\ninterface ChannelMergerOptions extends AudioNodeOptions {\\n    numberOfInputs?: number;\\n}\\n\\ninterface ChannelSplitterOptions extends AudioNodeOptions {\\n    numberOfOutputs?: number;\\n}\\n\\ninterface ClientData {\\n    challenge: string;\\n    extensions?: WebAuthnExtensions;\\n    hashAlg: string | Algorithm;\\n    origin: string;\\n    rpId: string;\\n    tokenBinding?: string;\\n}\\n\\ninterface ClientQueryOptions {\\n    includeUncontrolled?: boolean;\\n    type?: ClientTypes;\\n}\\n\\ninterface ClipboardEventInit extends EventInit {\\n    clipboardData?: DataTransfer | null;\\n}\\n\\ninterface CloseEventInit extends EventInit {\\n    code?: number;\\n    reason?: string;\\n    wasClean?: boolean;\\n}\\n\\ninterface CompositionEventInit extends UIEventInit {\\n    data?: string;\\n}\\n\\ninterface ComputedEffectTiming extends EffectTiming {\\n    activeDuration?: number;\\n    currentIteration?: number | null;\\n    endTime?: number;\\n    localTime?: number | null;\\n    progress?: number | null;\\n}\\n\\ninterface ComputedKeyframe {\\n    composite: CompositeOperationOrAuto;\\n    computedOffset: number;\\n    easing: string;\\n    offset: number | null;\\n    [property: string]: string | number | null | undefined;\\n}\\n\\ninterface ConfirmSiteSpecificExceptionsInformation extends ExceptionInformation {\\n    arrayOfDomainStrings?: string[];\\n}\\n\\ninterface ConstantSourceOptions {\\n    offset?: number;\\n}\\n\\ninterface ConstrainBooleanParameters {\\n    exact?: boolean;\\n    ideal?: boolean;\\n}\\n\\ninterface ConstrainDOMStringParameters {\\n    exact?: string | string[];\\n    ideal?: string | string[];\\n}\\n\\ninterface ConstrainDoubleRange extends DoubleRange {\\n    exact?: number;\\n    ideal?: number;\\n}\\n\\ninterface ConstrainULongRange extends ULongRange {\\n    exact?: number;\\n    ideal?: number;\\n}\\n\\ninterface ConstrainVideoFacingModeParameters {\\n    exact?: VideoFacingModeEnum | VideoFacingModeEnum[];\\n    ideal?: VideoFacingModeEnum | VideoFacingModeEnum[];\\n}\\n\\ninterface ConvolverOptions extends AudioNodeOptions {\\n    buffer?: AudioBuffer | null;\\n    disableNormalization?: boolean;\\n}\\n\\ninterface CredentialCreationOptions {\\n    publicKey?: PublicKeyCredentialCreationOptions;\\n    signal?: AbortSignal;\\n}\\n\\ninterface CredentialRequestOptions {\\n    mediation?: CredentialMediationRequirement;\\n    publicKey?: PublicKeyCredentialRequestOptions;\\n    signal?: AbortSignal;\\n}\\n\\ninterface CustomEventInit<T = any> extends EventInit {\\n    detail?: T;\\n}\\n\\ninterface DOMMatrix2DInit {\\n    a?: number;\\n    b?: number;\\n    c?: number;\\n    d?: number;\\n    e?: number;\\n    f?: number;\\n    m11?: number;\\n    m12?: number;\\n    m21?: number;\\n    m22?: number;\\n    m41?: number;\\n    m42?: number;\\n}\\n\\ninterface DOMMatrixInit extends DOMMatrix2DInit {\\n    is2D?: boolean;\\n    m13?: number;\\n    m14?: number;\\n    m23?: number;\\n    m24?: number;\\n    m31?: number;\\n    m32?: number;\\n    m33?: number;\\n    m34?: number;\\n    m43?: number;\\n    m44?: number;\\n}\\n\\ninterface DOMPointInit {\\n    w?: number;\\n    x?: number;\\n    y?: number;\\n    z?: number;\\n}\\n\\ninterface DOMQuadInit {\\n    p1?: DOMPointInit;\\n    p2?: DOMPointInit;\\n    p3?: DOMPointInit;\\n    p4?: DOMPointInit;\\n}\\n\\ninterface DOMRectInit {\\n    height?: number;\\n    width?: number;\\n    x?: number;\\n    y?: number;\\n}\\n\\ninterface DelayOptions extends AudioNodeOptions {\\n    delayTime?: number;\\n    maxDelayTime?: number;\\n}\\n\\ninterface DeviceLightEventInit extends EventInit {\\n    value?: number;\\n}\\n\\ninterface DeviceMotionEventAccelerationInit {\\n    x?: number | null;\\n    y?: number | null;\\n    z?: number | null;\\n}\\n\\ninterface DeviceMotionEventInit extends EventInit {\\n    acceleration?: DeviceMotionEventAccelerationInit;\\n    accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;\\n    interval?: number;\\n    rotationRate?: DeviceMotionEventRotationRateInit;\\n}\\n\\ninterface DeviceMotionEventRotationRateInit {\\n    alpha?: number | null;\\n    beta?: number | null;\\n    gamma?: number | null;\\n}\\n\\ninterface DeviceOrientationEventInit extends EventInit {\\n    absolute?: boolean;\\n    alpha?: number | null;\\n    beta?: number | null;\\n    gamma?: number | null;\\n}\\n\\ninterface DevicePermissionDescriptor extends PermissionDescriptor {\\n    deviceId?: string;\\n    name: \"camera\" | \"microphone\" | \"speaker\";\\n}\\n\\ninterface DocumentTimelineOptions {\\n    originTime?: number;\\n}\\n\\ninterface DoubleRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface DragEventInit extends MouseEventInit {\\n    dataTransfer?: DataTransfer | null;\\n}\\n\\ninterface DynamicsCompressorOptions extends AudioNodeOptions {\\n    attack?: number;\\n    knee?: number;\\n    ratio?: number;\\n    release?: number;\\n    threshold?: number;\\n}\\n\\ninterface EcKeyAlgorithm extends KeyAlgorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcKeyGenParams extends Algorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcKeyImportParams extends Algorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcdhKeyDeriveParams extends Algorithm {\\n    public: CryptoKey;\\n}\\n\\ninterface EcdsaParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface EffectTiming {\\n    delay?: number;\\n    direction?: PlaybackDirection;\\n    duration?: number | string;\\n    easing?: string;\\n    endDelay?: number;\\n    fill?: FillMode;\\n    iterationStart?: number;\\n    iterations?: number;\\n}\\n\\ninterface ElementCreationOptions {\\n    is?: string;\\n}\\n\\ninterface ElementDefinitionOptions {\\n    extends?: string;\\n}\\n\\ninterface ErrorEventInit extends EventInit {\\n    colno?: number;\\n    error?: any;\\n    filename?: string;\\n    lineno?: number;\\n    message?: string;\\n}\\n\\ninterface EventInit {\\n    bubbles?: boolean;\\n    cancelable?: boolean;\\n    composed?: boolean;\\n}\\n\\ninterface EventListenerOptions {\\n    capture?: boolean;\\n}\\n\\ninterface EventModifierInit extends UIEventInit {\\n    altKey?: boolean;\\n    ctrlKey?: boolean;\\n    metaKey?: boolean;\\n    modifierAltGraph?: boolean;\\n    modifierCapsLock?: boolean;\\n    modifierFn?: boolean;\\n    modifierFnLock?: boolean;\\n    modifierHyper?: boolean;\\n    modifierNumLock?: boolean;\\n    modifierScrollLock?: boolean;\\n    modifierSuper?: boolean;\\n    modifierSymbol?: boolean;\\n    modifierSymbolLock?: boolean;\\n    shiftKey?: boolean;\\n}\\n\\ninterface EventSourceInit {\\n    withCredentials?: boolean;\\n}\\n\\ninterface ExceptionInformation {\\n    domain?: string | null;\\n}\\n\\ninterface FilePropertyBag extends BlobPropertyBag {\\n    lastModified?: number;\\n}\\n\\ninterface FocusEventInit extends UIEventInit {\\n    relatedTarget?: EventTarget | null;\\n}\\n\\ninterface FocusNavigationEventInit extends EventInit {\\n    navigationReason?: string | null;\\n    originHeight?: number;\\n    originLeft?: number;\\n    originTop?: number;\\n    originWidth?: number;\\n}\\n\\ninterface FocusNavigationOrigin {\\n    originHeight?: number;\\n    originLeft?: number;\\n    originTop?: number;\\n    originWidth?: number;\\n}\\n\\ninterface FocusOptions {\\n    preventScroll?: boolean;\\n}\\n\\ninterface FullscreenOptions {\\n    navigationUI?: FullscreenNavigationUI;\\n}\\n\\ninterface GainOptions extends AudioNodeOptions {\\n    gain?: number;\\n}\\n\\ninterface GamepadEventInit extends EventInit {\\n    gamepad: Gamepad;\\n}\\n\\ninterface GetNotificationOptions {\\n    tag?: string;\\n}\\n\\ninterface GetRootNodeOptions {\\n    composed?: boolean;\\n}\\n\\ninterface HashChangeEventInit extends EventInit {\\n    newURL?: string;\\n    oldURL?: string;\\n}\\n\\ninterface HkdfParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    info: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    salt: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface HmacImportParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    length?: number;\\n}\\n\\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\\n    hash: KeyAlgorithm;\\n    length: number;\\n}\\n\\ninterface HmacKeyGenParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    length?: number;\\n}\\n\\ninterface IDBIndexParameters {\\n    multiEntry?: boolean;\\n    unique?: boolean;\\n}\\n\\ninterface IDBObjectStoreParameters {\\n    autoIncrement?: boolean;\\n    keyPath?: string | string[] | null;\\n}\\n\\ninterface IDBVersionChangeEventInit extends EventInit {\\n    newVersion?: number | null;\\n    oldVersion?: number;\\n}\\n\\ninterface IIRFilterOptions extends AudioNodeOptions {\\n    feedback: number[];\\n    feedforward: number[];\\n}\\n\\ninterface ImageBitmapRenderingContextSettings {\\n    alpha?: boolean;\\n}\\n\\ninterface ImageEncodeOptions {\\n    quality?: number;\\n    type?: string;\\n}\\n\\ninterface InputEventInit extends UIEventInit {\\n    data?: string | null;\\n    inputType?: string;\\n    isComposing?: boolean;\\n}\\n\\ninterface IntersectionObserverEntryInit {\\n    boundingClientRect: DOMRectInit;\\n    intersectionRatio: number;\\n    intersectionRect: DOMRectInit;\\n    isIntersecting: boolean;\\n    rootBounds: DOMRectInit | null;\\n    target: Element;\\n    time: number;\\n}\\n\\ninterface IntersectionObserverInit {\\n    root?: Element | null;\\n    rootMargin?: string;\\n    threshold?: number | number[];\\n}\\n\\ninterface JsonWebKey {\\n    alg?: string;\\n    crv?: string;\\n    d?: string;\\n    dp?: string;\\n    dq?: string;\\n    e?: string;\\n    ext?: boolean;\\n    k?: string;\\n    key_ops?: string[];\\n    kty?: string;\\n    n?: string;\\n    oth?: RsaOtherPrimesInfo[];\\n    p?: string;\\n    q?: string;\\n    qi?: string;\\n    use?: string;\\n    x?: string;\\n    y?: string;\\n}\\n\\ninterface KeyAlgorithm {\\n    name: string;\\n}\\n\\ninterface KeyboardEventInit extends EventModifierInit {\\n    code?: string;\\n    isComposing?: boolean;\\n    key?: string;\\n    location?: number;\\n    repeat?: boolean;\\n}\\n\\ninterface Keyframe {\\n    composite?: CompositeOperationOrAuto;\\n    easing?: string;\\n    offset?: number | null;\\n    [property: string]: string | number | null | undefined;\\n}\\n\\ninterface KeyframeAnimationOptions extends KeyframeEffectOptions {\\n    id?: string;\\n}\\n\\ninterface KeyframeEffectOptions extends EffectTiming {\\n    composite?: CompositeOperation;\\n    iterationComposite?: IterationCompositeOperation;\\n}\\n\\ninterface MediaElementAudioSourceOptions {\\n    mediaElement: HTMLMediaElement;\\n}\\n\\ninterface MediaEncryptedEventInit extends EventInit {\\n    initData?: ArrayBuffer | null;\\n    initDataType?: string;\\n}\\n\\ninterface MediaKeyMessageEventInit extends EventInit {\\n    message: ArrayBuffer;\\n    messageType: MediaKeyMessageType;\\n}\\n\\ninterface MediaKeySystemConfiguration {\\n    audioCapabilities?: MediaKeySystemMediaCapability[];\\n    distinctiveIdentifier?: MediaKeysRequirement;\\n    initDataTypes?: string[];\\n    label?: string;\\n    persistentState?: MediaKeysRequirement;\\n    sessionTypes?: string[];\\n    videoCapabilities?: MediaKeySystemMediaCapability[];\\n}\\n\\ninterface MediaKeySystemMediaCapability {\\n    contentType?: string;\\n    robustness?: string;\\n}\\n\\ninterface MediaQueryListEventInit extends EventInit {\\n    matches?: boolean;\\n    media?: string;\\n}\\n\\ninterface MediaStreamAudioSourceOptions {\\n    mediaStream: MediaStream;\\n}\\n\\ninterface MediaStreamConstraints {\\n    audio?: boolean | MediaTrackConstraints;\\n    peerIdentity?: string;\\n    video?: boolean | MediaTrackConstraints;\\n}\\n\\ninterface MediaStreamErrorEventInit extends EventInit {\\n    error?: MediaStreamError | null;\\n}\\n\\ninterface MediaStreamEventInit extends EventInit {\\n    stream?: MediaStream;\\n}\\n\\ninterface MediaStreamTrackAudioSourceOptions {\\n    mediaStreamTrack: MediaStreamTrack;\\n}\\n\\ninterface MediaStreamTrackEventInit extends EventInit {\\n    track: MediaStreamTrack;\\n}\\n\\ninterface MediaTrackCapabilities {\\n    aspectRatio?: DoubleRange;\\n    autoGainControl?: boolean[];\\n    channelCount?: ULongRange;\\n    deviceId?: string;\\n    echoCancellation?: boolean[];\\n    facingMode?: string[];\\n    frameRate?: DoubleRange;\\n    groupId?: string;\\n    height?: ULongRange;\\n    latency?: DoubleRange;\\n    noiseSuppression?: boolean[];\\n    resizeMode?: string[];\\n    sampleRate?: ULongRange;\\n    sampleSize?: ULongRange;\\n    width?: ULongRange;\\n}\\n\\ninterface MediaTrackConstraintSet {\\n    aspectRatio?: ConstrainDouble;\\n    autoGainControl?: ConstrainBoolean;\\n    channelCount?: ConstrainULong;\\n    deviceId?: ConstrainDOMString;\\n    echoCancellation?: ConstrainBoolean;\\n    facingMode?: ConstrainDOMString;\\n    frameRate?: ConstrainDouble;\\n    groupId?: ConstrainDOMString;\\n    height?: ConstrainULong;\\n    latency?: ConstrainDouble;\\n    noiseSuppression?: ConstrainBoolean;\\n    resizeMode?: ConstrainDOMString;\\n    sampleRate?: ConstrainULong;\\n    sampleSize?: ConstrainULong;\\n    width?: ConstrainULong;\\n}\\n\\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\\n    advanced?: MediaTrackConstraintSet[];\\n}\\n\\ninterface MediaTrackSettings {\\n    aspectRatio?: number;\\n    autoGainControl?: boolean;\\n    channelCount?: number;\\n    deviceId?: string;\\n    echoCancellation?: boolean;\\n    facingMode?: string;\\n    frameRate?: number;\\n    groupId?: string;\\n    height?: number;\\n    latency?: number;\\n    noiseSuppression?: boolean;\\n    resizeMode?: string;\\n    sampleRate?: number;\\n    sampleSize?: number;\\n    width?: number;\\n}\\n\\ninterface MediaTrackSupportedConstraints {\\n    aspectRatio?: boolean;\\n    autoGainControl?: boolean;\\n    channelCount?: boolean;\\n    deviceId?: boolean;\\n    echoCancellation?: boolean;\\n    facingMode?: boolean;\\n    frameRate?: boolean;\\n    groupId?: boolean;\\n    height?: boolean;\\n    latency?: boolean;\\n    noiseSuppression?: boolean;\\n    resizeMode?: boolean;\\n    sampleRate?: boolean;\\n    sampleSize?: boolean;\\n    width?: boolean;\\n}\\n\\ninterface MessageEventInit extends EventInit {\\n    data?: any;\\n    lastEventId?: string;\\n    origin?: string;\\n    ports?: MessagePort[];\\n    source?: MessageEventSource | null;\\n}\\n\\ninterface MidiPermissionDescriptor extends PermissionDescriptor {\\n    name: \"midi\";\\n    sysex?: boolean;\\n}\\n\\ninterface MouseEventInit extends EventModifierInit {\\n    button?: number;\\n    buttons?: number;\\n    clientX?: number;\\n    clientY?: number;\\n    movementX?: number;\\n    movementY?: number;\\n    relatedTarget?: EventTarget | null;\\n    screenX?: number;\\n    screenY?: number;\\n}\\n\\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\\n    cacheName?: string;\\n}\\n\\ninterface MutationObserverInit {\\n    /**\\n     * Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted.\\n     */\\n    attributeFilter?: string[];\\n    /**\\n     * Set to true if attributes is true or omitted and target\\'s attribute value before the mutation needs to be recorded.\\n     */\\n    attributeOldValue?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified.\\n     */\\n    attributes?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s data are to be observed. Can be omitted if characterDataOldValue is specified.\\n     */\\n    characterData?: boolean;\\n    /**\\n     * Set to true if characterData is set to true or omitted and target\\'s data before the mutation needs to be recorded.\\n     */\\n    characterDataOldValue?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s children are to be observed.\\n     */\\n    childList?: boolean;\\n    /**\\n     * Set to true if mutations to not just target, but also target\\'s descendants are to be observed.\\n     */\\n    subtree?: boolean;\\n}\\n\\ninterface NavigationPreloadState {\\n    enabled?: boolean;\\n    headerValue?: string;\\n}\\n\\ninterface NotificationAction {\\n    action: string;\\n    icon?: string;\\n    title: string;\\n}\\n\\ninterface NotificationOptions {\\n    actions?: NotificationAction[];\\n    badge?: string;\\n    body?: string;\\n    data?: any;\\n    dir?: NotificationDirection;\\n    icon?: string;\\n    image?: string;\\n    lang?: string;\\n    renotify?: boolean;\\n    requireInteraction?: boolean;\\n    silent?: boolean;\\n    tag?: string;\\n    timestamp?: number;\\n    vibrate?: VibratePattern;\\n}\\n\\ninterface OfflineAudioCompletionEventInit extends EventInit {\\n    renderedBuffer: AudioBuffer;\\n}\\n\\ninterface OfflineAudioContextOptions {\\n    length: number;\\n    numberOfChannels?: number;\\n    sampleRate: number;\\n}\\n\\ninterface OptionalEffectTiming {\\n    delay?: number;\\n    direction?: PlaybackDirection;\\n    duration?: number | string;\\n    easing?: string;\\n    endDelay?: number;\\n    fill?: FillMode;\\n    iterationStart?: number;\\n    iterations?: number;\\n}\\n\\ninterface OscillatorOptions extends AudioNodeOptions {\\n    detune?: number;\\n    frequency?: number;\\n    periodicWave?: PeriodicWave;\\n    type?: OscillatorType;\\n}\\n\\ninterface PannerOptions extends AudioNodeOptions {\\n    coneInnerAngle?: number;\\n    coneOuterAngle?: number;\\n    coneOuterGain?: number;\\n    distanceModel?: DistanceModelType;\\n    maxDistance?: number;\\n    orientationX?: number;\\n    orientationY?: number;\\n    orientationZ?: number;\\n    panningModel?: PanningModelType;\\n    positionX?: number;\\n    positionY?: number;\\n    positionZ?: number;\\n    refDistance?: number;\\n    rolloffFactor?: number;\\n}\\n\\ninterface PaymentCurrencyAmount {\\n    currency: string;\\n    currencySystem?: string;\\n    value: string;\\n}\\n\\ninterface PaymentDetailsBase {\\n    displayItems?: PaymentItem[];\\n    modifiers?: PaymentDetailsModifier[];\\n    shippingOptions?: PaymentShippingOption[];\\n}\\n\\ninterface PaymentDetailsInit extends PaymentDetailsBase {\\n    id?: string;\\n    total: PaymentItem;\\n}\\n\\ninterface PaymentDetailsModifier {\\n    additionalDisplayItems?: PaymentItem[];\\n    data?: any;\\n    supportedMethods: string | string[];\\n    total?: PaymentItem;\\n}\\n\\ninterface PaymentDetailsUpdate extends PaymentDetailsBase {\\n    error?: string;\\n    total?: PaymentItem;\\n}\\n\\ninterface PaymentItem {\\n    amount: PaymentCurrencyAmount;\\n    label: string;\\n    pending?: boolean;\\n}\\n\\ninterface PaymentMethodData {\\n    data?: any;\\n    supportedMethods: string | string[];\\n}\\n\\ninterface PaymentOptions {\\n    requestPayerEmail?: boolean;\\n    requestPayerName?: boolean;\\n    requestPayerPhone?: boolean;\\n    requestShipping?: boolean;\\n    shippingType?: string;\\n}\\n\\ninterface PaymentRequestUpdateEventInit extends EventInit {\\n}\\n\\ninterface PaymentShippingOption {\\n    amount: PaymentCurrencyAmount;\\n    id: string;\\n    label: string;\\n    selected?: boolean;\\n}\\n\\ninterface Pbkdf2Params extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    iterations: number;\\n    salt: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface PerformanceObserverInit {\\n    buffered?: boolean;\\n    entryTypes?: string[];\\n    type?: string;\\n}\\n\\ninterface PeriodicWaveConstraints {\\n    disableNormalization?: boolean;\\n}\\n\\ninterface PeriodicWaveOptions extends PeriodicWaveConstraints {\\n    imag?: number[] | Float32Array;\\n    real?: number[] | Float32Array;\\n}\\n\\ninterface PermissionDescriptor {\\n    name: PermissionName;\\n}\\n\\ninterface PipeOptions {\\n    preventAbort?: boolean;\\n    preventCancel?: boolean;\\n    preventClose?: boolean;\\n    signal?: AbortSignal;\\n}\\n\\ninterface PointerEventInit extends MouseEventInit {\\n    height?: number;\\n    isPrimary?: boolean;\\n    pointerId?: number;\\n    pointerType?: string;\\n    pressure?: number;\\n    tangentialPressure?: number;\\n    tiltX?: number;\\n    tiltY?: number;\\n    twist?: number;\\n    width?: number;\\n}\\n\\ninterface PopStateEventInit extends EventInit {\\n    state?: any;\\n}\\n\\ninterface PositionOptions {\\n    enableHighAccuracy?: boolean;\\n    maximumAge?: number;\\n    timeout?: number;\\n}\\n\\ninterface PostMessageOptions {\\n    transfer?: any[];\\n}\\n\\ninterface ProgressEventInit extends EventInit {\\n    lengthComputable?: boolean;\\n    loaded?: number;\\n    total?: number;\\n}\\n\\ninterface PromiseRejectionEventInit extends EventInit {\\n    promise: Promise<any>;\\n    reason?: any;\\n}\\n\\ninterface PropertyIndexedKeyframes {\\n    composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];\\n    easing?: string | string[];\\n    offset?: number | (number | null)[];\\n    [property: string]: string | string[] | number | null | (number | null)[] | undefined;\\n}\\n\\ninterface PublicKeyCredentialCreationOptions {\\n    attestation?: AttestationConveyancePreference;\\n    authenticatorSelection?: AuthenticatorSelectionCriteria;\\n    challenge: BufferSource;\\n    excludeCredentials?: PublicKeyCredentialDescriptor[];\\n    extensions?: AuthenticationExtensionsClientInputs;\\n    pubKeyCredParams: PublicKeyCredentialParameters[];\\n    rp: PublicKeyCredentialRpEntity;\\n    timeout?: number;\\n    user: PublicKeyCredentialUserEntity;\\n}\\n\\ninterface PublicKeyCredentialDescriptor {\\n    id: BufferSource;\\n    transports?: AuthenticatorTransport[];\\n    type: PublicKeyCredentialType;\\n}\\n\\ninterface PublicKeyCredentialEntity {\\n    icon?: string;\\n    name: string;\\n}\\n\\ninterface PublicKeyCredentialParameters {\\n    alg: COSEAlgorithmIdentifier;\\n    type: PublicKeyCredentialType;\\n}\\n\\ninterface PublicKeyCredentialRequestOptions {\\n    allowCredentials?: PublicKeyCredentialDescriptor[];\\n    challenge: BufferSource;\\n    extensions?: AuthenticationExtensionsClientInputs;\\n    rpId?: string;\\n    timeout?: number;\\n    userVerification?: UserVerificationRequirement;\\n}\\n\\ninterface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {\\n    id?: string;\\n}\\n\\ninterface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {\\n    displayName: string;\\n    id: BufferSource;\\n}\\n\\ninterface PushPermissionDescriptor extends PermissionDescriptor {\\n    name: \"push\";\\n    userVisibleOnly?: boolean;\\n}\\n\\ninterface PushSubscriptionJSON {\\n    endpoint?: string;\\n    expirationTime?: number | null;\\n    keys?: Record<string, string>;\\n}\\n\\ninterface PushSubscriptionOptionsInit {\\n    applicationServerKey?: BufferSource | string | null;\\n    userVisibleOnly?: boolean;\\n}\\n\\ninterface QueuingStrategy<T = any> {\\n    highWaterMark?: number;\\n    size?: QueuingStrategySizeCallback<T>;\\n}\\n\\ninterface RTCAnswerOptions extends RTCOfferAnswerOptions {\\n}\\n\\ninterface RTCCertificateExpiration {\\n    expires?: number;\\n}\\n\\ninterface RTCConfiguration {\\n    bundlePolicy?: RTCBundlePolicy;\\n    certificates?: RTCCertificate[];\\n    iceCandidatePoolSize?: number;\\n    iceServers?: RTCIceServer[];\\n    iceTransportPolicy?: RTCIceTransportPolicy;\\n    peerIdentity?: string;\\n    rtcpMuxPolicy?: RTCRtcpMuxPolicy;\\n}\\n\\ninterface RTCDTMFToneChangeEventInit extends EventInit {\\n    tone: string;\\n}\\n\\ninterface RTCDataChannelEventInit extends EventInit {\\n    channel: RTCDataChannel;\\n}\\n\\ninterface RTCDataChannelInit {\\n    id?: number;\\n    maxPacketLifeTime?: number;\\n    maxRetransmits?: number;\\n    negotiated?: boolean;\\n    ordered?: boolean;\\n    priority?: RTCPriorityType;\\n    protocol?: string;\\n}\\n\\ninterface RTCDtlsFingerprint {\\n    algorithm?: string;\\n    value?: string;\\n}\\n\\ninterface RTCDtlsParameters {\\n    fingerprints?: RTCDtlsFingerprint[];\\n    role?: RTCDtlsRole;\\n}\\n\\ninterface RTCErrorEventInit extends EventInit {\\n    error?: RTCError | null;\\n}\\n\\ninterface RTCIceCandidateAttributes extends RTCStats {\\n    addressSourceUrl?: string;\\n    candidateType?: RTCStatsIceCandidateType;\\n    ipAddress?: string;\\n    portNumber?: number;\\n    priority?: number;\\n    transport?: string;\\n}\\n\\ninterface RTCIceCandidateComplete {\\n}\\n\\ninterface RTCIceCandidateDictionary {\\n    foundation?: string;\\n    ip?: string;\\n    msMTurnSessionId?: string;\\n    port?: number;\\n    priority?: number;\\n    protocol?: RTCIceProtocol;\\n    relatedAddress?: string;\\n    relatedPort?: number;\\n    tcpType?: RTCIceTcpCandidateType;\\n    type?: RTCIceCandidateType;\\n}\\n\\ninterface RTCIceCandidateInit {\\n    candidate?: string;\\n    sdpMLineIndex?: number | null;\\n    sdpMid?: string | null;\\n    usernameFragment?: string;\\n}\\n\\ninterface RTCIceCandidatePair {\\n    local?: RTCIceCandidate;\\n    remote?: RTCIceCandidate;\\n}\\n\\ninterface RTCIceCandidatePairStats extends RTCStats {\\n    availableIncomingBitrate?: number;\\n    availableOutgoingBitrate?: number;\\n    bytesReceived?: number;\\n    bytesSent?: number;\\n    localCandidateId?: string;\\n    nominated?: boolean;\\n    priority?: number;\\n    readable?: boolean;\\n    remoteCandidateId?: string;\\n    roundTripTime?: number;\\n    state?: RTCStatsIceCandidatePairState;\\n    transportId?: string;\\n    writable?: boolean;\\n}\\n\\ninterface RTCIceGatherOptions {\\n    gatherPolicy?: RTCIceGatherPolicy;\\n    iceservers?: RTCIceServer[];\\n}\\n\\ninterface RTCIceParameters {\\n    password?: string;\\n    usernameFragment?: string;\\n}\\n\\ninterface RTCIceServer {\\n    credential?: string | RTCOAuthCredential;\\n    credentialType?: RTCIceCredentialType;\\n    urls: string | string[];\\n    username?: string;\\n}\\n\\ninterface RTCIdentityProviderOptions {\\n    peerIdentity?: string;\\n    protocol?: string;\\n    usernameHint?: string;\\n}\\n\\ninterface RTCInboundRTPStreamStats extends RTCRTPStreamStats {\\n    bytesReceived?: number;\\n    fractionLost?: number;\\n    jitter?: number;\\n    packetsLost?: number;\\n    packetsReceived?: number;\\n}\\n\\ninterface RTCMediaStreamTrackStats extends RTCStats {\\n    audioLevel?: number;\\n    echoReturnLoss?: number;\\n    echoReturnLossEnhancement?: number;\\n    frameHeight?: number;\\n    frameWidth?: number;\\n    framesCorrupted?: number;\\n    framesDecoded?: number;\\n    framesDropped?: number;\\n    framesPerSecond?: number;\\n    framesReceived?: number;\\n    framesSent?: number;\\n    remoteSource?: boolean;\\n    ssrcIds?: string[];\\n    trackIdentifier?: string;\\n}\\n\\ninterface RTCOAuthCredential {\\n    accessToken: string;\\n    macKey: string;\\n}\\n\\ninterface RTCOfferAnswerOptions {\\n    voiceActivityDetection?: boolean;\\n}\\n\\ninterface RTCOfferOptions extends RTCOfferAnswerOptions {\\n    iceRestart?: boolean;\\n    offerToReceiveAudio?: boolean;\\n    offerToReceiveVideo?: boolean;\\n}\\n\\ninterface RTCOutboundRTPStreamStats extends RTCRTPStreamStats {\\n    bytesSent?: number;\\n    packetsSent?: number;\\n    roundTripTime?: number;\\n    targetBitrate?: number;\\n}\\n\\ninterface RTCPeerConnectionIceErrorEventInit extends EventInit {\\n    errorCode: number;\\n    hostCandidate?: string;\\n    statusText?: string;\\n    url?: string;\\n}\\n\\ninterface RTCPeerConnectionIceEventInit extends EventInit {\\n    candidate?: RTCIceCandidate | null;\\n    url?: string | null;\\n}\\n\\ninterface RTCRTPStreamStats extends RTCStats {\\n    associateStatsId?: string;\\n    codecId?: string;\\n    firCount?: number;\\n    isRemote?: boolean;\\n    mediaTrackId?: string;\\n    mediaType?: string;\\n    nackCount?: number;\\n    pliCount?: number;\\n    sliCount?: number;\\n    ssrc?: string;\\n    transportId?: string;\\n}\\n\\ninterface RTCRtcpFeedback {\\n    parameter?: string;\\n    type?: string;\\n}\\n\\ninterface RTCRtcpParameters {\\n    cname?: string;\\n    reducedSize?: boolean;\\n}\\n\\ninterface RTCRtpCapabilities {\\n    codecs: RTCRtpCodecCapability[];\\n    headerExtensions: RTCRtpHeaderExtensionCapability[];\\n}\\n\\ninterface RTCRtpCodecCapability {\\n    channels?: number;\\n    clockRate: number;\\n    mimeType: string;\\n    sdpFmtpLine?: string;\\n}\\n\\ninterface RTCRtpCodecParameters {\\n    channels?: number;\\n    clockRate: number;\\n    mimeType: string;\\n    payloadType: number;\\n    sdpFmtpLine?: string;\\n}\\n\\ninterface RTCRtpCodingParameters {\\n    rid?: string;\\n}\\n\\ninterface RTCRtpContributingSource {\\n    audioLevel?: number;\\n    source: number;\\n    timestamp: number;\\n}\\n\\ninterface RTCRtpDecodingParameters extends RTCRtpCodingParameters {\\n}\\n\\ninterface RTCRtpEncodingParameters extends RTCRtpCodingParameters {\\n    active?: boolean;\\n    codecPayloadType?: number;\\n    dtx?: RTCDtxStatus;\\n    maxBitrate?: number;\\n    maxFramerate?: number;\\n    priority?: RTCPriorityType;\\n    ptime?: number;\\n    scaleResolutionDownBy?: number;\\n}\\n\\ninterface RTCRtpFecParameters {\\n    mechanism?: string;\\n    ssrc?: number;\\n}\\n\\ninterface RTCRtpHeaderExtension {\\n    kind?: string;\\n    preferredEncrypt?: boolean;\\n    preferredId?: number;\\n    uri?: string;\\n}\\n\\ninterface RTCRtpHeaderExtensionCapability {\\n    uri?: string;\\n}\\n\\ninterface RTCRtpHeaderExtensionParameters {\\n    encrypted?: boolean;\\n    id: number;\\n    uri: string;\\n}\\n\\ninterface RTCRtpParameters {\\n    codecs: RTCRtpCodecParameters[];\\n    headerExtensions: RTCRtpHeaderExtensionParameters[];\\n    rtcp: RTCRtcpParameters;\\n}\\n\\ninterface RTCRtpReceiveParameters extends RTCRtpParameters {\\n    encodings: RTCRtpDecodingParameters[];\\n}\\n\\ninterface RTCRtpRtxParameters {\\n    ssrc?: number;\\n}\\n\\ninterface RTCRtpSendParameters extends RTCRtpParameters {\\n    degradationPreference?: RTCDegradationPreference;\\n    encodings: RTCRtpEncodingParameters[];\\n    transactionId: string;\\n}\\n\\ninterface RTCRtpSynchronizationSource extends RTCRtpContributingSource {\\n    voiceActivityFlag?: boolean;\\n}\\n\\ninterface RTCRtpTransceiverInit {\\n    direction?: RTCRtpTransceiverDirection;\\n    sendEncodings?: RTCRtpEncodingParameters[];\\n    streams?: MediaStream[];\\n}\\n\\ninterface RTCRtpUnhandled {\\n    muxId?: string;\\n    payloadType?: number;\\n    ssrc?: number;\\n}\\n\\ninterface RTCSessionDescriptionInit {\\n    sdp?: string;\\n    type: RTCSdpType;\\n}\\n\\ninterface RTCSrtpKeyParam {\\n    keyMethod?: string;\\n    keySalt?: string;\\n    lifetime?: string;\\n    mkiLength?: number;\\n    mkiValue?: number;\\n}\\n\\ninterface RTCSrtpSdesParameters {\\n    cryptoSuite?: string;\\n    keyParams?: RTCSrtpKeyParam[];\\n    sessionParams?: string[];\\n    tag?: number;\\n}\\n\\ninterface RTCSsrcRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface RTCStats {\\n    id: string;\\n    timestamp: number;\\n    type: RTCStatsType;\\n}\\n\\ninterface RTCStatsEventInit extends EventInit {\\n    report: RTCStatsReport;\\n}\\n\\ninterface RTCStatsReport {\\n}\\n\\ninterface RTCTrackEventInit extends EventInit {\\n    receiver: RTCRtpReceiver;\\n    streams?: MediaStream[];\\n    track: MediaStreamTrack;\\n    transceiver: RTCRtpTransceiver;\\n}\\n\\ninterface RTCTransportStats extends RTCStats {\\n    activeConnection?: boolean;\\n    bytesReceived?: number;\\n    bytesSent?: number;\\n    localCertificateId?: string;\\n    remoteCertificateId?: string;\\n    rtcpTransportStatsId?: string;\\n    selectedCandidatePairId?: string;\\n}\\n\\ninterface RegistrationOptions {\\n    scope?: string;\\n    type?: WorkerType;\\n    updateViaCache?: ServiceWorkerUpdateViaCache;\\n}\\n\\ninterface RequestInit {\\n    /**\\n     * A BodyInit object or null to set request\\'s body.\\n     */\\n    body?: BodyInit | null;\\n    /**\\n     * A string indicating how the request will interact with the browser\\'s cache to set request\\'s cache.\\n     */\\n    cache?: RequestCache;\\n    /**\\n     * A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request\\'s credentials.\\n     */\\n    credentials?: RequestCredentials;\\n    /**\\n     * A Headers object, an object literal, or an array of two-item arrays to set request\\'s headers.\\n     */\\n    headers?: HeadersInit;\\n    /**\\n     * A cryptographic hash of the resource to be fetched by request. Sets request\\'s integrity.\\n     */\\n    integrity?: string;\\n    /**\\n     * A boolean to set request\\'s keepalive.\\n     */\\n    keepalive?: boolean;\\n    /**\\n     * A string to set request\\'s method.\\n     */\\n    method?: string;\\n    /**\\n     * A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request\\'s mode.\\n     */\\n    mode?: RequestMode;\\n    /**\\n     * A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request\\'s redirect.\\n     */\\n    redirect?: RequestRedirect;\\n    /**\\n     * A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request\\'s referrer.\\n     */\\n    referrer?: string;\\n    /**\\n     * A referrer policy to set request\\'s referrerPolicy.\\n     */\\n    referrerPolicy?: ReferrerPolicy;\\n    /**\\n     * An AbortSignal to set request\\'s signal.\\n     */\\n    signal?: AbortSignal | null;\\n    /**\\n     * Can only be null. Used to disassociate request from any Window.\\n     */\\n    window?: any;\\n}\\n\\ninterface ResponseInit {\\n    headers?: HeadersInit;\\n    status?: number;\\n    statusText?: string;\\n}\\n\\ninterface RsaHashedImportParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\\n    hash: KeyAlgorithm;\\n}\\n\\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\\n    modulusLength: number;\\n    publicExponent: BigInteger;\\n}\\n\\ninterface RsaKeyGenParams extends Algorithm {\\n    modulusLength: number;\\n    publicExponent: BigInteger;\\n}\\n\\ninterface RsaOaepParams extends Algorithm {\\n    label?: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface RsaOtherPrimesInfo {\\n    d?: string;\\n    r?: string;\\n    t?: string;\\n}\\n\\ninterface RsaPssParams extends Algorithm {\\n    saltLength: number;\\n}\\n\\ninterface SVGBoundingBoxOptions {\\n    clipped?: boolean;\\n    fill?: boolean;\\n    markers?: boolean;\\n    stroke?: boolean;\\n}\\n\\ninterface ScopedCredentialDescriptor {\\n    id: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null;\\n    transports?: Transport[];\\n    type: ScopedCredentialType;\\n}\\n\\ninterface ScopedCredentialOptions {\\n    excludeList?: ScopedCredentialDescriptor[];\\n    extensions?: WebAuthnExtensions;\\n    rpId?: string;\\n    timeoutSeconds?: number;\\n}\\n\\ninterface ScopedCredentialParameters {\\n    algorithm: string | Algorithm;\\n    type: ScopedCredentialType;\\n}\\n\\ninterface ScrollIntoViewOptions extends ScrollOptions {\\n    block?: ScrollLogicalPosition;\\n    inline?: ScrollLogicalPosition;\\n}\\n\\ninterface ScrollOptions {\\n    behavior?: ScrollBehavior;\\n}\\n\\ninterface ScrollToOptions extends ScrollOptions {\\n    left?: number;\\n    top?: number;\\n}\\n\\ninterface SecurityPolicyViolationEventInit extends EventInit {\\n    blockedURI?: string;\\n    columnNumber?: number;\\n    documentURI?: string;\\n    effectiveDirective?: string;\\n    lineNumber?: number;\\n    originalPolicy?: string;\\n    referrer?: string;\\n    sourceFile?: string;\\n    statusCode?: number;\\n    violatedDirective?: string;\\n}\\n\\ninterface ServiceWorkerMessageEventInit extends EventInit {\\n    data?: any;\\n    lastEventId?: string;\\n    origin?: string;\\n    ports?: MessagePort[] | null;\\n    source?: ServiceWorker | MessagePort | null;\\n}\\n\\ninterface ShadowRootInit {\\n    delegatesFocus?: boolean;\\n    mode: ShadowRootMode;\\n}\\n\\ninterface StereoPannerOptions extends AudioNodeOptions {\\n    pan?: number;\\n}\\n\\ninterface StorageEstimate {\\n    quota?: number;\\n    usage?: number;\\n}\\n\\ninterface StorageEventInit extends EventInit {\\n    key?: string | null;\\n    newValue?: string | null;\\n    oldValue?: string | null;\\n    storageArea?: Storage | null;\\n    url?: string;\\n}\\n\\ninterface StoreExceptionsInformation extends ExceptionInformation {\\n    detailURI?: string | null;\\n    explanationString?: string | null;\\n    siteName?: string | null;\\n}\\n\\ninterface StoreSiteSpecificExceptionsInformation extends StoreExceptionsInformation {\\n    arrayOfDomainStrings?: string[];\\n}\\n\\ninterface TextDecodeOptions {\\n    stream?: boolean;\\n}\\n\\ninterface TextDecoderOptions {\\n    fatal?: boolean;\\n    ignoreBOM?: boolean;\\n}\\n\\ninterface TextEncoderEncodeIntoResult {\\n    read?: number;\\n    written?: number;\\n}\\n\\ninterface TouchEventInit extends EventModifierInit {\\n    changedTouches?: Touch[];\\n    targetTouches?: Touch[];\\n    touches?: Touch[];\\n}\\n\\ninterface TouchInit {\\n    altitudeAngle?: number;\\n    azimuthAngle?: number;\\n    clientX?: number;\\n    clientY?: number;\\n    force?: number;\\n    identifier: number;\\n    pageX?: number;\\n    pageY?: number;\\n    radiusX?: number;\\n    radiusY?: number;\\n    rotationAngle?: number;\\n    screenX?: number;\\n    screenY?: number;\\n    target: EventTarget;\\n    touchType?: TouchType;\\n}\\n\\ninterface TrackEventInit extends EventInit {\\n    track?: VideoTrack | AudioTrack | TextTrack | null;\\n}\\n\\ninterface Transformer<I = any, O = any> {\\n    flush?: TransformStreamDefaultControllerCallback<O>;\\n    readableType?: undefined;\\n    start?: TransformStreamDefaultControllerCallback<O>;\\n    transform?: TransformStreamDefaultControllerTransformCallback<I, O>;\\n    writableType?: undefined;\\n}\\n\\ninterface TransitionEventInit extends EventInit {\\n    elapsedTime?: number;\\n    propertyName?: string;\\n    pseudoElement?: string;\\n}\\n\\ninterface UIEventInit extends EventInit {\\n    detail?: number;\\n    view?: Window | null;\\n}\\n\\ninterface ULongRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface UnderlyingByteSource {\\n    autoAllocateChunkSize?: number;\\n    cancel?: ReadableStreamErrorCallback;\\n    pull?: ReadableByteStreamControllerCallback;\\n    start?: ReadableByteStreamControllerCallback;\\n    type: \"bytes\";\\n}\\n\\ninterface UnderlyingSink<W = any> {\\n    abort?: WritableStreamErrorCallback;\\n    close?: WritableStreamDefaultControllerCloseCallback;\\n    start?: WritableStreamDefaultControllerStartCallback;\\n    type?: undefined;\\n    write?: WritableStreamDefaultControllerWriteCallback<W>;\\n}\\n\\ninterface UnderlyingSource<R = any> {\\n    cancel?: ReadableStreamErrorCallback;\\n    pull?: ReadableStreamDefaultControllerCallback<R>;\\n    start?: ReadableStreamDefaultControllerCallback<R>;\\n    type?: undefined;\\n}\\n\\ninterface VRDisplayEventInit extends EventInit {\\n    display: VRDisplay;\\n    reason?: VRDisplayEventReason;\\n}\\n\\ninterface VRLayer {\\n    leftBounds?: number[] | Float32Array | null;\\n    rightBounds?: number[] | Float32Array | null;\\n    source?: HTMLCanvasElement | null;\\n}\\n\\ninterface VRStageParameters {\\n    sittingToStandingTransform?: Float32Array;\\n    sizeX?: number;\\n    sizeY?: number;\\n}\\n\\ninterface WaveShaperOptions extends AudioNodeOptions {\\n    curve?: number[] | Float32Array;\\n    oversample?: OverSampleType;\\n}\\n\\ninterface WebAuthnExtensions {\\n}\\n\\ninterface WebGLContextAttributes {\\n    alpha?: boolean;\\n    antialias?: boolean;\\n    depth?: boolean;\\n    desynchronized?: boolean;\\n    failIfMajorPerformanceCaveat?: boolean;\\n    powerPreference?: WebGLPowerPreference;\\n    premultipliedAlpha?: boolean;\\n    preserveDrawingBuffer?: boolean;\\n    stencil?: boolean;\\n}\\n\\ninterface WebGLContextEventInit extends EventInit {\\n    statusMessage?: string;\\n}\\n\\ninterface WheelEventInit extends MouseEventInit {\\n    deltaMode?: number;\\n    deltaX?: number;\\n    deltaY?: number;\\n    deltaZ?: number;\\n}\\n\\ninterface WorkerOptions {\\n    credentials?: RequestCredentials;\\n    name?: string;\\n    type?: WorkerType;\\n}\\n\\ninterface WorkletOptions {\\n    credentials?: RequestCredentials;\\n}\\n\\ninterface txAuthGenericArg {\\n    content: ArrayBuffer;\\n    contentType: string;\\n}\\n\\ninterface EventListener {\\n    (evt: Event): void;\\n}\\n\\ntype XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };\\n\\n/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */\\ninterface ANGLE_instanced_arrays {\\n    drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\\n    drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\\n    vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum;\\n}\\n\\n/** A controller object that allows you to abort one or more DOM requests as and when desired. */\\ninterface AbortController {\\n    /**\\n     * Returns the AbortSignal object associated with this object.\\n     */\\n    readonly signal: AbortSignal;\\n    /**\\n     * Invoking this method will set this object\\'s AbortSignal\\'s aborted flag and signal to any observers that the associated activity is to be aborted.\\n     */\\n    abort(): void;\\n}\\n\\ndeclare var AbortController: {\\n    prototype: AbortController;\\n    new(): AbortController;\\n};\\n\\ninterface AbortSignalEventMap {\\n    \"abort\": Event;\\n}\\n\\n/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */\\ninterface AbortSignal extends EventTarget {\\n    /**\\n     * Returns true if this AbortSignal\\'s AbortController has signaled to abort, and false otherwise.\\n     */\\n    readonly aborted: boolean;\\n    onabort: ((this: AbortSignal, ev: Event) => any) | null;\\n    addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AbortSignal: {\\n    prototype: AbortSignal;\\n    new(): AbortSignal;\\n};\\n\\ninterface AbstractRange {\\n    /**\\n     * Returns true if range is collapsed, and false otherwise.\\n     */\\n    readonly collapsed: boolean;\\n    /**\\n     * Returns range\\'s end node.\\n     */\\n    readonly endContainer: Node;\\n    /**\\n     * Returns range\\'s end offset.\\n     */\\n    readonly endOffset: number;\\n    /**\\n     * Returns range\\'s start node.\\n     */\\n    readonly startContainer: Node;\\n    /**\\n     * Returns range\\'s start offset.\\n     */\\n    readonly startOffset: number;\\n}\\n\\ndeclare var AbstractRange: {\\n    prototype: AbstractRange;\\n    new(): AbstractRange;\\n};\\n\\ninterface AbstractWorkerEventMap {\\n    \"error\": ErrorEvent;\\n}\\n\\ninterface AbstractWorker {\\n    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\\n    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface AesCfbParams extends Algorithm {\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface AesCmacParams extends Algorithm {\\n    length: number;\\n}\\n\\n/** A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations. */\\ninterface AnalyserNode extends AudioNode {\\n    fftSize: number;\\n    readonly frequencyBinCount: number;\\n    maxDecibels: number;\\n    minDecibels: number;\\n    smoothingTimeConstant: number;\\n    getByteFrequencyData(array: Uint8Array): void;\\n    getByteTimeDomainData(array: Uint8Array): void;\\n    getFloatFrequencyData(array: Float32Array): void;\\n    getFloatTimeDomainData(array: Float32Array): void;\\n}\\n\\ndeclare var AnalyserNode: {\\n    prototype: AnalyserNode;\\n    new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;\\n};\\n\\ninterface Animatable {\\n    animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;\\n    getAnimations(): Animation[];\\n}\\n\\ninterface AnimationEventMap {\\n    \"cancel\": AnimationPlaybackEvent;\\n    \"finish\": AnimationPlaybackEvent;\\n}\\n\\ninterface Animation extends EventTarget {\\n    currentTime: number | null;\\n    effect: AnimationEffect | null;\\n    readonly finished: Promise<Animation>;\\n    id: string;\\n    oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\\n    onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\\n    readonly pending: boolean;\\n    readonly playState: AnimationPlayState;\\n    playbackRate: number;\\n    readonly ready: Promise<Animation>;\\n    startTime: number | null;\\n    timeline: AnimationTimeline | null;\\n    cancel(): void;\\n    finish(): void;\\n    pause(): void;\\n    play(): void;\\n    reverse(): void;\\n    updatePlaybackRate(playbackRate: number): void;\\n    addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Animation: {\\n    prototype: Animation;\\n    new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;\\n};\\n\\ninterface AnimationEffect {\\n    getComputedTiming(): ComputedEffectTiming;\\n    getTiming(): EffectTiming;\\n    updateTiming(timing?: OptionalEffectTiming): void;\\n}\\n\\ndeclare var AnimationEffect: {\\n    prototype: AnimationEffect;\\n    new(): AnimationEffect;\\n};\\n\\n/** Events providing information related to animations. */\\ninterface AnimationEvent extends Event {\\n    readonly animationName: string;\\n    readonly elapsedTime: number;\\n    readonly pseudoElement: string;\\n}\\n\\ndeclare var AnimationEvent: {\\n    prototype: AnimationEvent;\\n    new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;\\n};\\n\\ninterface AnimationFrameProvider {\\n    cancelAnimationFrame(handle: number): void;\\n    requestAnimationFrame(callback: FrameRequestCallback): number;\\n}\\n\\ninterface AnimationPlaybackEvent extends Event {\\n    readonly currentTime: number | null;\\n    readonly timelineTime: number | null;\\n}\\n\\ndeclare var AnimationPlaybackEvent: {\\n    prototype: AnimationPlaybackEvent;\\n    new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;\\n};\\n\\ninterface AnimationTimeline {\\n    readonly currentTime: number | null;\\n}\\n\\ndeclare var AnimationTimeline: {\\n    prototype: AnimationTimeline;\\n    new(): AnimationTimeline;\\n};\\n\\ninterface ApplicationCacheEventMap {\\n    \"cached\": Event;\\n    \"checking\": Event;\\n    \"downloading\": Event;\\n    \"error\": Event;\\n    \"noupdate\": Event;\\n    \"obsolete\": Event;\\n    \"progress\": ProgressEvent<ApplicationCache>;\\n    \"updateready\": Event;\\n}\\n\\ninterface ApplicationCache extends EventTarget {\\n    /** @deprecated */\\n    oncached: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onchecking: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    ondownloading: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onerror: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onnoupdate: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onobsolete: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onprogress: ((this: ApplicationCache, ev: ProgressEvent<ApplicationCache>) => any) | null;\\n    /** @deprecated */\\n    onupdateready: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    readonly status: number;\\n    /** @deprecated */\\n    abort(): void;\\n    /** @deprecated */\\n    swapCache(): void;\\n    /** @deprecated */\\n    update(): void;\\n    readonly CHECKING: number;\\n    readonly DOWNLOADING: number;\\n    readonly IDLE: number;\\n    readonly OBSOLETE: number;\\n    readonly UNCACHED: number;\\n    readonly UPDATEREADY: number;\\n    addEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ApplicationCache: {\\n    prototype: ApplicationCache;\\n    new(): ApplicationCache;\\n    readonly CHECKING: number;\\n    readonly DOWNLOADING: number;\\n    readonly IDLE: number;\\n    readonly OBSOLETE: number;\\n    readonly UNCACHED: number;\\n    readonly UPDATEREADY: number;\\n};\\n\\n/** A DOM element\\'s attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types. */\\ninterface Attr extends Node {\\n    readonly localName: string;\\n    readonly name: string;\\n    readonly namespaceURI: string | null;\\n    readonly ownerElement: Element | null;\\n    readonly prefix: string | null;\\n    readonly specified: boolean;\\n    value: string;\\n}\\n\\ndeclare var Attr: {\\n    prototype: Attr;\\n    new(): Attr;\\n};\\n\\n/** A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode. */\\ninterface AudioBuffer {\\n    readonly duration: number;\\n    readonly length: number;\\n    readonly numberOfChannels: number;\\n    readonly sampleRate: number;\\n    copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void;\\n    copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void;\\n    getChannelData(channel: number): Float32Array;\\n}\\n\\ndeclare var AudioBuffer: {\\n    prototype: AudioBuffer;\\n    new(options: AudioBufferOptions): AudioBuffer;\\n};\\n\\n/** An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It\\'s especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. */\\ninterface AudioBufferSourceNode extends AudioScheduledSourceNode {\\n    buffer: AudioBuffer | null;\\n    readonly detune: AudioParam;\\n    loop: boolean;\\n    loopEnd: number;\\n    loopStart: number;\\n    readonly playbackRate: AudioParam;\\n    start(when?: number, offset?: number, duration?: number): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioBufferSourceNode: {\\n    prototype: AudioBufferSourceNode;\\n    new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;\\n};\\n\\n/** An audio-processing graph built from audio modules linked together, each represented by an AudioNode. */\\ninterface AudioContext extends BaseAudioContext {\\n    readonly baseLatency: number;\\n    readonly outputLatency: number;\\n    close(): Promise<void>;\\n    createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\\n    createMediaStreamDestination(): MediaStreamAudioDestinationNode;\\n    createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\\n    createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack): MediaStreamTrackAudioSourceNode;\\n    getOutputTimestamp(): AudioTimestamp;\\n    resume(): Promise<void>;\\n    suspend(): Promise<void>;\\n    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioContext: {\\n    prototype: AudioContext;\\n    new(contextOptions?: AudioContextOptions): AudioContext;\\n};\\n\\n/** AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised. */\\ninterface AudioDestinationNode extends AudioNode {\\n    readonly maxChannelCount: number;\\n}\\n\\ndeclare var AudioDestinationNode: {\\n    prototype: AudioDestinationNode;\\n    new(): AudioDestinationNode;\\n};\\n\\n/** The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute. */\\ninterface AudioListener {\\n    readonly forwardX: AudioParam;\\n    readonly forwardY: AudioParam;\\n    readonly forwardZ: AudioParam;\\n    readonly positionX: AudioParam;\\n    readonly positionY: AudioParam;\\n    readonly positionZ: AudioParam;\\n    readonly upX: AudioParam;\\n    readonly upY: AudioParam;\\n    readonly upZ: AudioParam;\\n    /** @deprecated */\\n    setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\\n    /** @deprecated */\\n    setPosition(x: number, y: number, z: number): void;\\n}\\n\\ndeclare var AudioListener: {\\n    prototype: AudioListener;\\n    new(): AudioListener;\\n};\\n\\n/** A generic interface for representing an audio processing module. Examples include: */\\ninterface AudioNode extends EventTarget {\\n    channelCount: number;\\n    channelCountMode: ChannelCountMode;\\n    channelInterpretation: ChannelInterpretation;\\n    readonly context: BaseAudioContext;\\n    readonly numberOfInputs: number;\\n    readonly numberOfOutputs: number;\\n    connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;\\n    connect(destinationParam: AudioParam, output?: number): void;\\n    disconnect(): void;\\n    disconnect(output: number): void;\\n    disconnect(destinationNode: AudioNode): void;\\n    disconnect(destinationNode: AudioNode, output: number): void;\\n    disconnect(destinationNode: AudioNode, output: number, input: number): void;\\n    disconnect(destinationParam: AudioParam): void;\\n    disconnect(destinationParam: AudioParam, output: number): void;\\n}\\n\\ndeclare var AudioNode: {\\n    prototype: AudioNode;\\n    new(): AudioNode;\\n};\\n\\n/** The Web Audio API\\'s AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain). */\\ninterface AudioParam {\\n    automationRate: AutomationRate;\\n    readonly defaultValue: number;\\n    readonly maxValue: number;\\n    readonly minValue: number;\\n    value: number;\\n    cancelAndHoldAtTime(cancelTime: number): AudioParam;\\n    cancelScheduledValues(cancelTime: number): AudioParam;\\n    exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\\n    linearRampToValueAtTime(value: number, endTime: number): AudioParam;\\n    setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\\n    setValueAtTime(value: number, startTime: number): AudioParam;\\n    setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;\\n}\\n\\ndeclare var AudioParam: {\\n    prototype: AudioParam;\\n    new(): AudioParam;\\n};\\n\\ninterface AudioParamMap {\\n    forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;\\n}\\n\\ndeclare var AudioParamMap: {\\n    prototype: AudioParamMap;\\n    new(): AudioParamMap;\\n};\\n\\n/** The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed. */\\ninterface AudioProcessingEvent extends Event {\\n    readonly inputBuffer: AudioBuffer;\\n    readonly outputBuffer: AudioBuffer;\\n    readonly playbackTime: number;\\n}\\n\\ndeclare var AudioProcessingEvent: {\\n    prototype: AudioProcessingEvent;\\n    new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;\\n};\\n\\ninterface AudioScheduledSourceNodeEventMap {\\n    \"ended\": Event;\\n}\\n\\ninterface AudioScheduledSourceNode extends AudioNode {\\n    onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;\\n    start(when?: number): void;\\n    stop(when?: number): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioScheduledSourceNode: {\\n    prototype: AudioScheduledSourceNode;\\n    new(): AudioScheduledSourceNode;\\n};\\n\\n/** A single audio track from one of the HTML media elements, <audio> or <video>.  */\\ninterface AudioTrack {\\n    enabled: boolean;\\n    readonly id: string;\\n    kind: string;\\n    readonly label: string;\\n    language: string;\\n    readonly sourceBuffer: SourceBuffer | null;\\n}\\n\\ndeclare var AudioTrack: {\\n    prototype: AudioTrack;\\n    new(): AudioTrack;\\n};\\n\\ninterface AudioTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n    \"change\": Event;\\n    \"removetrack\": TrackEvent;\\n}\\n\\n/** Used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate AudioTrack object in the list. */\\ninterface AudioTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: AudioTrackList, ev: TrackEvent) => any) | null;\\n    onchange: ((this: AudioTrackList, ev: Event) => any) | null;\\n    onremovetrack: ((this: AudioTrackList, ev: TrackEvent) => any) | null;\\n    getTrackById(id: string): AudioTrack | null;\\n    item(index: number): AudioTrack;\\n    addEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: AudioTrack;\\n}\\n\\ndeclare var AudioTrackList: {\\n    prototype: AudioTrackList;\\n    new(): AudioTrackList;\\n};\\n\\ninterface AudioWorklet extends Worklet {\\n}\\n\\ndeclare var AudioWorklet: {\\n    prototype: AudioWorklet;\\n    new(): AudioWorklet;\\n};\\n\\ninterface AudioWorkletNodeEventMap {\\n    \"processorerror\": Event;\\n}\\n\\ninterface AudioWorkletNode extends AudioNode {\\n    onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;\\n    readonly parameters: AudioParamMap;\\n    readonly port: MessagePort;\\n    addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioWorkletNode: {\\n    prototype: AudioWorkletNode;\\n    new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;\\n};\\n\\ninterface AuthenticatorAssertionResponse extends AuthenticatorResponse {\\n    readonly authenticatorData: ArrayBuffer;\\n    readonly signature: ArrayBuffer;\\n    readonly userHandle: ArrayBuffer | null;\\n}\\n\\ndeclare var AuthenticatorAssertionResponse: {\\n    prototype: AuthenticatorAssertionResponse;\\n    new(): AuthenticatorAssertionResponse;\\n};\\n\\ninterface AuthenticatorAttestationResponse extends AuthenticatorResponse {\\n    readonly attestationObject: ArrayBuffer;\\n}\\n\\ndeclare var AuthenticatorAttestationResponse: {\\n    prototype: AuthenticatorAttestationResponse;\\n    new(): AuthenticatorAttestationResponse;\\n};\\n\\ninterface AuthenticatorResponse {\\n    readonly clientDataJSON: ArrayBuffer;\\n}\\n\\ndeclare var AuthenticatorResponse: {\\n    prototype: AuthenticatorResponse;\\n    new(): AuthenticatorResponse;\\n};\\n\\ninterface BarProp {\\n    readonly visible: boolean;\\n}\\n\\ndeclare var BarProp: {\\n    prototype: BarProp;\\n    new(): BarProp;\\n};\\n\\ninterface BaseAudioContextEventMap {\\n    \"statechange\": Event;\\n}\\n\\ninterface BaseAudioContext extends EventTarget {\\n    readonly audioWorklet: AudioWorklet;\\n    readonly currentTime: number;\\n    readonly destination: AudioDestinationNode;\\n    readonly listener: AudioListener;\\n    onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;\\n    readonly sampleRate: number;\\n    readonly state: AudioContextState;\\n    createAnalyser(): AnalyserNode;\\n    createBiquadFilter(): BiquadFilterNode;\\n    createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\\n    createBufferSource(): AudioBufferSourceNode;\\n    createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\\n    createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\\n    createConstantSource(): ConstantSourceNode;\\n    createConvolver(): ConvolverNode;\\n    createDelay(maxDelayTime?: number): DelayNode;\\n    createDynamicsCompressor(): DynamicsCompressorNode;\\n    createGain(): GainNode;\\n    createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\\n    createOscillator(): OscillatorNode;\\n    createPanner(): PannerNode;\\n    createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\\n    createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\\n    createStereoPanner(): StereoPannerNode;\\n    createWaveShaper(): WaveShaperNode;\\n    decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise<AudioBuffer>;\\n    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var BaseAudioContext: {\\n    prototype: BaseAudioContext;\\n    new(): BaseAudioContext;\\n};\\n\\n/** The beforeunload event is fired when the window, the document and its resources are about to be unloaded. */\\ninterface BeforeUnloadEvent extends Event {\\n    returnValue: any;\\n}\\n\\ndeclare var BeforeUnloadEvent: {\\n    prototype: BeforeUnloadEvent;\\n    new(): BeforeUnloadEvent;\\n};\\n\\ninterface BhxBrowser {\\n    readonly lastError: DOMException;\\n    checkMatchesGlobExpression(pattern: string, value: string): boolean;\\n    checkMatchesUriExpression(pattern: string, value: string): boolean;\\n    clearLastError(): void;\\n    currentWindowId(): number;\\n    fireExtensionApiTelemetry(functionName: string, isSucceeded: boolean, isSupported: boolean, errorString: string): void;\\n    genericFunction(functionId: number, destination: any, parameters?: string, callbackId?: number): void;\\n    genericSynchronousFunction(functionId: number, parameters?: string): string;\\n    getExtensionId(): string;\\n    getThisAddress(): any;\\n    registerGenericFunctionCallbackHandler(callbackHandler: Function): void;\\n    registerGenericListenerHandler(eventHandler: Function): void;\\n    setLastError(parameters: string): void;\\n    webPlatformGenericFunction(destination: any, parameters?: string, callbackId?: number): void;\\n}\\n\\ndeclare var BhxBrowser: {\\n    prototype: BhxBrowser;\\n    new(): BhxBrowser;\\n};\\n\\n/** A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers. */\\ninterface BiquadFilterNode extends AudioNode {\\n    readonly Q: AudioParam;\\n    readonly detune: AudioParam;\\n    readonly frequency: AudioParam;\\n    readonly gain: AudioParam;\\n    type: BiquadFilterType;\\n    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\\n}\\n\\ndeclare var BiquadFilterNode: {\\n    prototype: BiquadFilterNode;\\n    new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;\\n};\\n\\n/** A file-like object of immutable, raw data. Blobs represent data that isn\\'t necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user\\'s system. */\\ninterface Blob {\\n    readonly size: number;\\n    readonly type: string;\\n    slice(start?: number, end?: number, contentType?: string): Blob;\\n}\\n\\ndeclare var Blob: {\\n    prototype: Blob;\\n    new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\\n};\\n\\ninterface Body {\\n    readonly body: ReadableStream<Uint8Array> | null;\\n    readonly bodyUsed: boolean;\\n    arrayBuffer(): Promise<ArrayBuffer>;\\n    blob(): Promise<Blob>;\\n    formData(): Promise<FormData>;\\n    json(): Promise<any>;\\n    text(): Promise<string>;\\n}\\n\\ninterface BroadcastChannelEventMap {\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\ninterface BroadcastChannel extends EventTarget {\\n    /**\\n     * Returns the channel name (as passed to the constructor).\\n     */\\n    readonly name: string;\\n    onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\\n    /**\\n     * Closes the BroadcastChannel object, opening it up to garbage collection.\\n     */\\n    close(): void;\\n    /**\\n     * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays.\\n     */\\n    postMessage(message: any): void;\\n    addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var BroadcastChannel: {\\n    prototype: BroadcastChannel;\\n    new(name: string): BroadcastChannel;\\n};\\n\\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\\ninterface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\\n    highWaterMark: number;\\n    size(chunk: ArrayBufferView): number;\\n}\\n\\ndeclare var ByteLengthQueuingStrategy: {\\n    prototype: ByteLengthQueuingStrategy;\\n    new(options: { highWaterMark: number }): ByteLengthQueuingStrategy;\\n};\\n\\n/** A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section. */\\ninterface CDATASection extends Text {\\n}\\n\\ndeclare var CDATASection: {\\n    prototype: CDATASection;\\n    new(): CDATASection;\\n};\\n\\n/** Holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */\\ninterface CSS {\\n    escape(value: string): string;\\n    supports(property: string, value?: string): boolean;\\n}\\ndeclare var CSS: CSS;\\n\\n/** A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule. */\\ninterface CSSConditionRule extends CSSGroupingRule {\\n    conditionText: string;\\n}\\n\\ndeclare var CSSConditionRule: {\\n    prototype: CSSConditionRule;\\n    new(): CSSConditionRule;\\n};\\n\\ninterface CSSFontFaceRule extends CSSRule {\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSFontFaceRule: {\\n    prototype: CSSFontFaceRule;\\n    new(): CSSFontFaceRule;\\n};\\n\\n/** Any CSS at-rule that contains other rules nested within it. */\\ninterface CSSGroupingRule extends CSSRule {\\n    readonly cssRules: CSSRuleList;\\n    deleteRule(index: number): void;\\n    insertRule(rule: string, index: number): number;\\n}\\n\\ndeclare var CSSGroupingRule: {\\n    prototype: CSSGroupingRule;\\n    new(): CSSGroupingRule;\\n};\\n\\ninterface CSSImportRule extends CSSRule {\\n    readonly href: string;\\n    readonly media: MediaList;\\n    readonly styleSheet: CSSStyleSheet;\\n}\\n\\ndeclare var CSSImportRule: {\\n    prototype: CSSImportRule;\\n    new(): CSSImportRule;\\n};\\n\\n/** An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE). */\\ninterface CSSKeyframeRule extends CSSRule {\\n    keyText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSKeyframeRule: {\\n    prototype: CSSKeyframeRule;\\n    new(): CSSKeyframeRule;\\n};\\n\\n/** An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE). */\\ninterface CSSKeyframesRule extends CSSRule {\\n    readonly cssRules: CSSRuleList;\\n    name: string;\\n    appendRule(rule: string): void;\\n    deleteRule(select: string): void;\\n    findRule(select: string): CSSKeyframeRule | null;\\n}\\n\\ndeclare var CSSKeyframesRule: {\\n    prototype: CSSKeyframesRule;\\n    new(): CSSKeyframesRule;\\n};\\n\\n/** A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE). */\\ninterface CSSMediaRule extends CSSConditionRule {\\n    readonly media: MediaList;\\n}\\n\\ndeclare var CSSMediaRule: {\\n    prototype: CSSMediaRule;\\n    new(): CSSMediaRule;\\n};\\n\\n/** An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE). */\\ninterface CSSNamespaceRule extends CSSRule {\\n    readonly namespaceURI: string;\\n    readonly prefix: string;\\n}\\n\\ndeclare var CSSNamespaceRule: {\\n    prototype: CSSNamespaceRule;\\n    new(): CSSNamespaceRule;\\n};\\n\\n/** CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE). */\\ninterface CSSPageRule extends CSSRule {\\n    readonly pseudoClass: string;\\n    readonly selector: string;\\n    selectorText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSPageRule: {\\n    prototype: CSSPageRule;\\n    new(): CSSPageRule;\\n};\\n\\n/** A single CSS rule. There are several types of rules, listed in the Type constants section below. */\\ninterface CSSRule {\\n    cssText: string;\\n    readonly parentRule: CSSRule | null;\\n    readonly parentStyleSheet: CSSStyleSheet | null;\\n    readonly type: number;\\n    readonly CHARSET_RULE: number;\\n    readonly FONT_FACE_RULE: number;\\n    readonly IMPORT_RULE: number;\\n    readonly KEYFRAMES_RULE: number;\\n    readonly KEYFRAME_RULE: number;\\n    readonly MEDIA_RULE: number;\\n    readonly NAMESPACE_RULE: number;\\n    readonly PAGE_RULE: number;\\n    readonly STYLE_RULE: number;\\n    readonly SUPPORTS_RULE: number;\\n    readonly UNKNOWN_RULE: number;\\n    readonly VIEWPORT_RULE: number;\\n}\\n\\ndeclare var CSSRule: {\\n    prototype: CSSRule;\\n    new(): CSSRule;\\n    readonly CHARSET_RULE: number;\\n    readonly FONT_FACE_RULE: number;\\n    readonly IMPORT_RULE: number;\\n    readonly KEYFRAMES_RULE: number;\\n    readonly KEYFRAME_RULE: number;\\n    readonly MEDIA_RULE: number;\\n    readonly NAMESPACE_RULE: number;\\n    readonly PAGE_RULE: number;\\n    readonly STYLE_RULE: number;\\n    readonly SUPPORTS_RULE: number;\\n    readonly UNKNOWN_RULE: number;\\n    readonly VIEWPORT_RULE: number;\\n};\\n\\n/** A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. */\\ninterface CSSRuleList {\\n    readonly length: number;\\n    item(index: number): CSSRule | null;\\n    [index: number]: CSSRule;\\n}\\n\\ndeclare var CSSRuleList: {\\n    prototype: CSSRuleList;\\n    new(): CSSRuleList;\\n};\\n\\n/** An object that is a CSS declaration block, and exposes style information and various style-related methods and properties. */\\ninterface CSSStyleDeclaration {\\n    alignContent: string;\\n    alignItems: string;\\n    alignSelf: string;\\n    alignmentBaseline: string;\\n    animation: string;\\n    animationDelay: string;\\n    animationDirection: string;\\n    animationDuration: string;\\n    animationFillMode: string;\\n    animationIterationCount: string;\\n    animationName: string;\\n    animationPlayState: string;\\n    animationTimingFunction: string;\\n    backfaceVisibility: string;\\n    background: string;\\n    backgroundAttachment: string;\\n    backgroundClip: string;\\n    backgroundColor: string;\\n    backgroundImage: string;\\n    backgroundOrigin: string;\\n    backgroundPosition: string;\\n    backgroundPositionX: string;\\n    backgroundPositionY: string;\\n    backgroundRepeat: string;\\n    backgroundSize: string;\\n    baselineShift: string;\\n    blockSize: string;\\n    border: string;\\n    borderBlockEnd: string;\\n    borderBlockEndColor: string;\\n    borderBlockEndStyle: string;\\n    borderBlockEndWidth: string;\\n    borderBlockStart: string;\\n    borderBlockStartColor: string;\\n    borderBlockStartStyle: string;\\n    borderBlockStartWidth: string;\\n    borderBottom: string;\\n    borderBottomColor: string;\\n    borderBottomLeftRadius: string;\\n    borderBottomRightRadius: string;\\n    borderBottomStyle: string;\\n    borderBottomWidth: string;\\n    borderCollapse: string;\\n    borderColor: string;\\n    borderImage: string;\\n    borderImageOutset: string;\\n    borderImageRepeat: string;\\n    borderImageSlice: string;\\n    borderImageSource: string;\\n    borderImageWidth: string;\\n    borderInlineEnd: string;\\n    borderInlineEndColor: string;\\n    borderInlineEndStyle: string;\\n    borderInlineEndWidth: string;\\n    borderInlineStart: string;\\n    borderInlineStartColor: string;\\n    borderInlineStartStyle: string;\\n    borderInlineStartWidth: string;\\n    borderLeft: string;\\n    borderLeftColor: string;\\n    borderLeftStyle: string;\\n    borderLeftWidth: string;\\n    borderRadius: string;\\n    borderRight: string;\\n    borderRightColor: string;\\n    borderRightStyle: string;\\n    borderRightWidth: string;\\n    borderSpacing: string;\\n    borderStyle: string;\\n    borderTop: string;\\n    borderTopColor: string;\\n    borderTopLeftRadius: string;\\n    borderTopRightRadius: string;\\n    borderTopStyle: string;\\n    borderTopWidth: string;\\n    borderWidth: string;\\n    bottom: string;\\n    boxShadow: string;\\n    boxSizing: string;\\n    breakAfter: string;\\n    breakBefore: string;\\n    breakInside: string;\\n    captionSide: string;\\n    caretColor: string;\\n    clear: string;\\n    clip: string;\\n    clipPath: string;\\n    clipRule: string;\\n    color: string | null;\\n    colorInterpolation: string;\\n    colorInterpolationFilters: string;\\n    columnCount: string;\\n    columnFill: string;\\n    columnGap: string;\\n    columnRule: string;\\n    columnRuleColor: string;\\n    columnRuleStyle: string;\\n    columnRuleWidth: string;\\n    columnSpan: string;\\n    columnWidth: string;\\n    columns: string;\\n    content: string;\\n    counterIncrement: string;\\n    counterReset: string;\\n    cssFloat: string | null;\\n    cssText: string;\\n    cursor: string;\\n    direction: string;\\n    display: string;\\n    dominantBaseline: string;\\n    emptyCells: string;\\n    enableBackground: string | null;\\n    fill: string;\\n    fillOpacity: string;\\n    fillRule: string;\\n    filter: string;\\n    flex: string;\\n    flexBasis: string;\\n    flexDirection: string;\\n    flexFlow: string;\\n    flexGrow: string;\\n    flexShrink: string;\\n    flexWrap: string;\\n    float: string;\\n    floodColor: string;\\n    floodOpacity: string;\\n    font: string;\\n    fontFamily: string;\\n    fontFeatureSettings: string;\\n    fontKerning: string;\\n    fontSize: string;\\n    fontSizeAdjust: string;\\n    fontStretch: string;\\n    fontStyle: string;\\n    fontSynthesis: string;\\n    fontVariant: string;\\n    fontVariantCaps: string;\\n    fontVariantEastAsian: string;\\n    fontVariantLigatures: string;\\n    fontVariantNumeric: string;\\n    fontVariantPosition: string;\\n    fontWeight: string;\\n    gap: string;\\n    glyphOrientationHorizontal: string | null;\\n    glyphOrientationVertical: string;\\n    grid: string;\\n    gridArea: string;\\n    gridAutoColumns: string;\\n    gridAutoFlow: string;\\n    gridAutoRows: string;\\n    gridColumn: string;\\n    gridColumnEnd: string;\\n    gridColumnGap: string;\\n    gridColumnStart: string;\\n    gridGap: string;\\n    gridRow: string;\\n    gridRowEnd: string;\\n    gridRowGap: string;\\n    gridRowStart: string;\\n    gridTemplate: string;\\n    gridTemplateAreas: string;\\n    gridTemplateColumns: string;\\n    gridTemplateRows: string;\\n    height: string;\\n    hyphens: string;\\n    imageOrientation: string;\\n    imageRendering: string;\\n    imeMode: string | null;\\n    inlineSize: string;\\n    justifyContent: string;\\n    justifyItems: string;\\n    justifySelf: string;\\n    kerning: string | null;\\n    layoutGrid: string | null;\\n    layoutGridChar: string | null;\\n    layoutGridLine: string | null;\\n    layoutGridMode: string | null;\\n    layoutGridType: string | null;\\n    left: string;\\n    readonly length: number;\\n    letterSpacing: string;\\n    lightingColor: string;\\n    lineBreak: string;\\n    lineHeight: string;\\n    listStyle: string;\\n    listStyleImage: string;\\n    listStylePosition: string;\\n    listStyleType: string;\\n    margin: string;\\n    marginBlockEnd: string;\\n    marginBlockStart: string;\\n    marginBottom: string;\\n    marginInlineEnd: string;\\n    marginInlineStart: string;\\n    marginLeft: string;\\n    marginRight: string;\\n    marginTop: string;\\n    marker: string;\\n    markerEnd: string;\\n    markerMid: string;\\n    markerStart: string;\\n    mask: string;\\n    maskComposite: string;\\n    maskImage: string;\\n    maskPosition: string;\\n    maskRepeat: string;\\n    maskSize: string;\\n    maskType: string;\\n    maxBlockSize: string;\\n    maxHeight: string;\\n    maxInlineSize: string;\\n    maxWidth: string;\\n    minBlockSize: string;\\n    minHeight: string;\\n    minInlineSize: string;\\n    minWidth: string;\\n    msContentZoomChaining: string | null;\\n    msContentZoomLimit: string | null;\\n    msContentZoomLimitMax: any;\\n    msContentZoomLimitMin: any;\\n    msContentZoomSnap: string | null;\\n    msContentZoomSnapPoints: string | null;\\n    msContentZoomSnapType: string | null;\\n    msContentZooming: string | null;\\n    msFlowFrom: string | null;\\n    msFlowInto: string | null;\\n    msFontFeatureSettings: string | null;\\n    msGridColumn: any;\\n    msGridColumnAlign: string | null;\\n    msGridColumnSpan: any;\\n    msGridColumns: string | null;\\n    msGridRow: any;\\n    msGridRowAlign: string | null;\\n    msGridRowSpan: any;\\n    msGridRows: string | null;\\n    msHighContrastAdjust: string | null;\\n    msHyphenateLimitChars: string | null;\\n    msHyphenateLimitLines: any;\\n    msHyphenateLimitZone: any;\\n    msHyphens: string | null;\\n    msImeAlign: string | null;\\n    msOverflowStyle: string | null;\\n    msScrollChaining: string | null;\\n    msScrollLimit: string | null;\\n    msScrollLimitXMax: any;\\n    msScrollLimitXMin: any;\\n    msScrollLimitYMax: any;\\n    msScrollLimitYMin: any;\\n    msScrollRails: string | null;\\n    msScrollSnapPointsX: string | null;\\n    msScrollSnapPointsY: string | null;\\n    msScrollSnapType: string | null;\\n    msScrollSnapX: string | null;\\n    msScrollSnapY: string | null;\\n    msScrollTranslation: string | null;\\n    msTextCombineHorizontal: string | null;\\n    msTextSizeAdjust: any;\\n    msTouchAction: string | null;\\n    msTouchSelect: string | null;\\n    msUserSelect: string | null;\\n    msWrapFlow: string;\\n    msWrapMargin: any;\\n    msWrapThrough: string;\\n    objectFit: string;\\n    objectPosition: string;\\n    opacity: string | null;\\n    order: string;\\n    orphans: string;\\n    outline: string;\\n    outlineColor: string;\\n    outlineOffset: string;\\n    outlineStyle: string;\\n    outlineWidth: string;\\n    overflow: string;\\n    overflowAnchor: string;\\n    overflowWrap: string;\\n    overflowX: string;\\n    overflowY: string;\\n    padding: string;\\n    paddingBlockEnd: string;\\n    paddingBlockStart: string;\\n    paddingBottom: string;\\n    paddingInlineEnd: string;\\n    paddingInlineStart: string;\\n    paddingLeft: string;\\n    paddingRight: string;\\n    paddingTop: string;\\n    pageBreakAfter: string;\\n    pageBreakBefore: string;\\n    pageBreakInside: string;\\n    paintOrder: string;\\n    readonly parentRule: CSSRule;\\n    penAction: string | null;\\n    perspective: string;\\n    perspectiveOrigin: string;\\n    placeContent: string;\\n    placeItems: string;\\n    placeSelf: string;\\n    pointerEvents: string | null;\\n    position: string;\\n    quotes: string;\\n    resize: string;\\n    right: string;\\n    rotate: string;\\n    rowGap: string;\\n    rubyAlign: string | null;\\n    rubyOverhang: string | null;\\n    rubyPosition: string | null;\\n    scale: string;\\n    scrollBehavior: string;\\n    shapeRendering: string;\\n    stopColor: string | null;\\n    stopOpacity: string | null;\\n    stroke: string;\\n    strokeDasharray: string;\\n    strokeDashoffset: string;\\n    strokeLinecap: string;\\n    strokeLinejoin: string;\\n    strokeMiterlimit: string;\\n    strokeOpacity: string;\\n    strokeWidth: string;\\n    tabSize: string;\\n    tableLayout: string;\\n    textAlign: string;\\n    textAlignLast: string;\\n    textAnchor: string | null;\\n    textCombineUpright: string;\\n    textDecoration: string;\\n    textDecorationColor: string;\\n    textDecorationLine: string;\\n    textDecorationStyle: string;\\n    textEmphasis: string;\\n    textEmphasisColor: string;\\n    textEmphasisPosition: string;\\n    textEmphasisStyle: string;\\n    textIndent: string;\\n    textJustify: string;\\n    textKashida: string | null;\\n    textKashidaSpace: string | null;\\n    textOrientation: string;\\n    textOverflow: string;\\n    textRendering: string;\\n    textShadow: string;\\n    textTransform: string;\\n    textUnderlinePosition: string;\\n    top: string;\\n    touchAction: string;\\n    transform: string;\\n    transformBox: string;\\n    transformOrigin: string;\\n    transformStyle: string;\\n    transition: string;\\n    transitionDelay: string;\\n    transitionDuration: string;\\n    transitionProperty: string;\\n    transitionTimingFunction: string;\\n    translate: string;\\n    unicodeBidi: string;\\n    userSelect: string;\\n    verticalAlign: string;\\n    visibility: string;\\n    /** @deprecated */\\n    webkitAlignContent: string;\\n    /** @deprecated */\\n    webkitAlignItems: string;\\n    /** @deprecated */\\n    webkitAlignSelf: string;\\n    /** @deprecated */\\n    webkitAnimation: string;\\n    /** @deprecated */\\n    webkitAnimationDelay: string;\\n    /** @deprecated */\\n    webkitAnimationDirection: string;\\n    /** @deprecated */\\n    webkitAnimationDuration: string;\\n    /** @deprecated */\\n    webkitAnimationFillMode: string;\\n    /** @deprecated */\\n    webkitAnimationIterationCount: string;\\n    /** @deprecated */\\n    webkitAnimationName: string;\\n    /** @deprecated */\\n    webkitAnimationPlayState: string;\\n    /** @deprecated */\\n    webkitAnimationTimingFunction: string;\\n    /** @deprecated */\\n    webkitAppearance: string;\\n    /** @deprecated */\\n    webkitBackfaceVisibility: string;\\n    /** @deprecated */\\n    webkitBackgroundClip: string;\\n    /** @deprecated */\\n    webkitBackgroundOrigin: string;\\n    /** @deprecated */\\n    webkitBackgroundSize: string;\\n    /** @deprecated */\\n    webkitBorderBottomLeftRadius: string;\\n    /** @deprecated */\\n    webkitBorderBottomRightRadius: string;\\n    webkitBorderImage: string | null;\\n    /** @deprecated */\\n    webkitBorderRadius: string;\\n    /** @deprecated */\\n    webkitBorderTopLeftRadius: string;\\n    /** @deprecated */\\n    webkitBorderTopRightRadius: string;\\n    /** @deprecated */\\n    webkitBoxAlign: string;\\n    webkitBoxDirection: string | null;\\n    /** @deprecated */\\n    webkitBoxFlex: string;\\n    /** @deprecated */\\n    webkitBoxOrdinalGroup: string;\\n    webkitBoxOrient: string | null;\\n    /** @deprecated */\\n    webkitBoxPack: string;\\n    /** @deprecated */\\n    webkitBoxShadow: string;\\n    /** @deprecated */\\n    webkitBoxSizing: string;\\n    webkitColumnBreakAfter: string | null;\\n    webkitColumnBreakBefore: string | null;\\n    webkitColumnBreakInside: string | null;\\n    webkitColumnCount: any;\\n    webkitColumnGap: any;\\n    webkitColumnRule: string | null;\\n    webkitColumnRuleColor: any;\\n    webkitColumnRuleStyle: string | null;\\n    webkitColumnRuleWidth: any;\\n    webkitColumnSpan: string | null;\\n    webkitColumnWidth: any;\\n    webkitColumns: string | null;\\n    /** @deprecated */\\n    webkitFilter: string;\\n    /** @deprecated */\\n    webkitFlex: string;\\n    /** @deprecated */\\n    webkitFlexBasis: string;\\n    /** @deprecated */\\n    webkitFlexDirection: string;\\n    /** @deprecated */\\n    webkitFlexFlow: string;\\n    /** @deprecated */\\n    webkitFlexGrow: string;\\n    /** @deprecated */\\n    webkitFlexShrink: string;\\n    /** @deprecated */\\n    webkitFlexWrap: string;\\n    /** @deprecated */\\n    webkitJustifyContent: string;\\n    webkitLineClamp: string;\\n    /** @deprecated */\\n    webkitMask: string;\\n    /** @deprecated */\\n    webkitMaskBoxImage: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageOutset: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageRepeat: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageSlice: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageSource: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageWidth: string;\\n    /** @deprecated */\\n    webkitMaskClip: string;\\n    /** @deprecated */\\n    webkitMaskComposite: string;\\n    /** @deprecated */\\n    webkitMaskImage: string;\\n    /** @deprecated */\\n    webkitMaskOrigin: string;\\n    /** @deprecated */\\n    webkitMaskPosition: string;\\n    /** @deprecated */\\n    webkitMaskRepeat: string;\\n    /** @deprecated */\\n    webkitMaskSize: string;\\n    /** @deprecated */\\n    webkitOrder: string;\\n    /** @deprecated */\\n    webkitPerspective: string;\\n    /** @deprecated */\\n    webkitPerspectiveOrigin: string;\\n    webkitTapHighlightColor: string | null;\\n    /** @deprecated */\\n    webkitTextFillColor: string;\\n    /** @deprecated */\\n    webkitTextSizeAdjust: string;\\n    /** @deprecated */\\n    webkitTextStroke: string;\\n    /** @deprecated */\\n    webkitTextStrokeColor: string;\\n    /** @deprecated */\\n    webkitTextStrokeWidth: string;\\n    /** @deprecated */\\n    webkitTransform: string;\\n    /** @deprecated */\\n    webkitTransformOrigin: string;\\n    /** @deprecated */\\n    webkitTransformStyle: string;\\n    /** @deprecated */\\n    webkitTransition: string;\\n    /** @deprecated */\\n    webkitTransitionDelay: string;\\n    /** @deprecated */\\n    webkitTransitionDuration: string;\\n    /** @deprecated */\\n    webkitTransitionProperty: string;\\n    /** @deprecated */\\n    webkitTransitionTimingFunction: string;\\n    webkitUserModify: string | null;\\n    webkitUserSelect: string | null;\\n    webkitWritingMode: string | null;\\n    whiteSpace: string;\\n    widows: string;\\n    width: string;\\n    willChange: string;\\n    wordBreak: string;\\n    wordSpacing: string;\\n    wordWrap: string;\\n    writingMode: string;\\n    zIndex: string;\\n    zoom: string | null;\\n    getPropertyPriority(propertyName: string): string;\\n    getPropertyValue(propertyName: string): string;\\n    item(index: number): string;\\n    removeProperty(propertyName: string): string;\\n    setProperty(propertyName: string, value: string | null, priority?: string | null): void;\\n    [index: number]: string;\\n}\\n\\ndeclare var CSSStyleDeclaration: {\\n    prototype: CSSStyleDeclaration;\\n    new(): CSSStyleDeclaration;\\n};\\n\\n/** CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE). */\\ninterface CSSStyleRule extends CSSRule {\\n    selectorText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSStyleRule: {\\n    prototype: CSSStyleRule;\\n    new(): CSSStyleRule;\\n};\\n\\n/** A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet. */\\ninterface CSSStyleSheet extends StyleSheet {\\n    readonly cssRules: CSSRuleList;\\n    /** @deprecated */\\n    cssText: string;\\n    /** @deprecated */\\n    readonly id: string;\\n    /** @deprecated */\\n    readonly imports: StyleSheetList;\\n    /** @deprecated */\\n    readonly isAlternate: boolean;\\n    /** @deprecated */\\n    readonly isPrefAlternate: boolean;\\n    readonly ownerRule: CSSRule | null;\\n    /** @deprecated */\\n    readonly owningElement: Element;\\n    /** @deprecated */\\n    readonly pages: any;\\n    /** @deprecated */\\n    readonly readOnly: boolean;\\n    readonly rules: CSSRuleList;\\n    /** @deprecated */\\n    addImport(bstrURL: string, lIndex?: number): number;\\n    /** @deprecated */\\n    addPageRule(bstrSelector: string, bstrStyle: string, lIndex?: number): number;\\n    addRule(bstrSelector: string, bstrStyle?: string, lIndex?: number): number;\\n    deleteRule(index?: number): void;\\n    insertRule(rule: string, index?: number): number;\\n    /** @deprecated */\\n    removeImport(lIndex: number): void;\\n    removeRule(lIndex: number): void;\\n}\\n\\ndeclare var CSSStyleSheet: {\\n    prototype: CSSStyleSheet;\\n    new(): CSSStyleSheet;\\n};\\n\\n/** An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE). */\\ninterface CSSSupportsRule extends CSSConditionRule {\\n}\\n\\ndeclare var CSSSupportsRule: {\\n    prototype: CSSSupportsRule;\\n    new(): CSSSupportsRule;\\n};\\n\\n/** Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don\\'t have to use it in conjunction with service workers, even though it is defined in the service worker spec. */\\ninterface Cache {\\n    add(request: RequestInfo): Promise<void>;\\n    addAll(requests: RequestInfo[]): Promise<void>;\\n    delete(request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>;\\n    keys(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;\\n    match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;\\n    matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;\\n    put(request: RequestInfo, response: Response): Promise<void>;\\n}\\n\\ndeclare var Cache: {\\n    prototype: Cache;\\n    new(): Cache;\\n};\\n\\n/** The storage for Cache objects. */\\ninterface CacheStorage {\\n    delete(cacheName: string): Promise<boolean>;\\n    has(cacheName: string): Promise<boolean>;\\n    keys(): Promise<string[]>;\\n    match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;\\n    open(cacheName: string): Promise<Cache>;\\n}\\n\\ndeclare var CacheStorage: {\\n    prototype: CacheStorage;\\n    new(): CacheStorage;\\n};\\n\\ninterface CanvasCompositing {\\n    globalAlpha: number;\\n    globalCompositeOperation: string;\\n}\\n\\ninterface CanvasDrawImage {\\n    drawImage(image: CanvasImageSource, dx: number, dy: number): void;\\n    drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\\n    drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\\n}\\n\\ninterface CanvasDrawPath {\\n    beginPath(): void;\\n    clip(fillRule?: CanvasFillRule): void;\\n    clip(path: Path2D, fillRule?: CanvasFillRule): void;\\n    fill(fillRule?: CanvasFillRule): void;\\n    fill(path: Path2D, fillRule?: CanvasFillRule): void;\\n    isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\\n    isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\\n    isPointInStroke(x: number, y: number): boolean;\\n    isPointInStroke(path: Path2D, x: number, y: number): boolean;\\n    stroke(): void;\\n    stroke(path: Path2D): void;\\n}\\n\\ninterface CanvasFillStrokeStyles {\\n    fillStyle: string | CanvasGradient | CanvasPattern;\\n    strokeStyle: string | CanvasGradient | CanvasPattern;\\n    createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\\n    createPattern(image: CanvasImageSource, repetition: string): CanvasPattern | null;\\n    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\\n}\\n\\ninterface CanvasFilters {\\n    filter: string;\\n}\\n\\n/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */\\ninterface CanvasGradient {\\n    /**\\n     * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\\n     * \\n     * Throws an \"IndexSizeError\" DOMException if the offset is out of range. Throws a \"SyntaxError\" DOMException if the color cannot be parsed.\\n     */\\n    addColorStop(offset: number, color: string): void;\\n}\\n\\ndeclare var CanvasGradient: {\\n    prototype: CanvasGradient;\\n    new(): CanvasGradient;\\n};\\n\\ninterface CanvasImageData {\\n    createImageData(sw: number, sh: number): ImageData;\\n    createImageData(imagedata: ImageData): ImageData;\\n    getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;\\n    putImageData(imagedata: ImageData, dx: number, dy: number): void;\\n    putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\\n}\\n\\ninterface CanvasImageSmoothing {\\n    imageSmoothingEnabled: boolean;\\n    imageSmoothingQuality: ImageSmoothingQuality;\\n}\\n\\ninterface CanvasPath {\\n    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\\n    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\\n    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\\n    closePath(): void;\\n    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\\n    lineTo(x: number, y: number): void;\\n    moveTo(x: number, y: number): void;\\n    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\\n    rect(x: number, y: number, w: number, h: number): void;\\n}\\n\\ninterface CanvasPathDrawingStyles {\\n    lineCap: CanvasLineCap;\\n    lineDashOffset: number;\\n    lineJoin: CanvasLineJoin;\\n    lineWidth: number;\\n    miterLimit: number;\\n    getLineDash(): number[];\\n    setLineDash(segments: number[]): void;\\n}\\n\\n/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */\\ninterface CanvasPattern {\\n    /**\\n     * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.\\n     */\\n    setTransform(transform?: DOMMatrix2DInit): void;\\n}\\n\\ndeclare var CanvasPattern: {\\n    prototype: CanvasPattern;\\n    new(): CanvasPattern;\\n};\\n\\ninterface CanvasRect {\\n    clearRect(x: number, y: number, w: number, h: number): void;\\n    fillRect(x: number, y: number, w: number, h: number): void;\\n    strokeRect(x: number, y: number, w: number, h: number): void;\\n}\\n\\n/** The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a <canvas> element. It is used for drawing shapes, text, images, and other objects. */\\ninterface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {\\n    readonly canvas: HTMLCanvasElement;\\n}\\n\\ndeclare var CanvasRenderingContext2D: {\\n    prototype: CanvasRenderingContext2D;\\n    new(): CanvasRenderingContext2D;\\n};\\n\\ninterface CanvasShadowStyles {\\n    shadowBlur: number;\\n    shadowColor: string;\\n    shadowOffsetX: number;\\n    shadowOffsetY: number;\\n}\\n\\ninterface CanvasState {\\n    restore(): void;\\n    save(): void;\\n}\\n\\ninterface CanvasText {\\n    fillText(text: string, x: number, y: number, maxWidth?: number): void;\\n    measureText(text: string): TextMetrics;\\n    strokeText(text: string, x: number, y: number, maxWidth?: number): void;\\n}\\n\\ninterface CanvasTextDrawingStyles {\\n    direction: CanvasDirection;\\n    font: string;\\n    textAlign: CanvasTextAlign;\\n    textBaseline: CanvasTextBaseline;\\n}\\n\\ninterface CanvasTransform {\\n    getTransform(): DOMMatrix;\\n    resetTransform(): void;\\n    rotate(angle: number): void;\\n    scale(x: number, y: number): void;\\n    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\\n    setTransform(transform?: DOMMatrix2DInit): void;\\n    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\\n    translate(x: number, y: number): void;\\n}\\n\\ninterface CanvasUserInterface {\\n    drawFocusIfNeeded(element: Element): void;\\n    drawFocusIfNeeded(path: Path2D, element: Element): void;\\n    scrollPathIntoView(): void;\\n    scrollPathIntoView(path: Path2D): void;\\n}\\n\\ninterface CaretPosition {\\n    readonly offset: number;\\n    readonly offsetNode: Node;\\n    getClientRect(): DOMRect | null;\\n}\\n\\ndeclare var CaretPosition: {\\n    prototype: CaretPosition;\\n    new(): CaretPosition;\\n};\\n\\n/** The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */\\ninterface ChannelMergerNode extends AudioNode {\\n}\\n\\ndeclare var ChannelMergerNode: {\\n    prototype: ChannelMergerNode;\\n    new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;\\n};\\n\\n/** The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */\\ninterface ChannelSplitterNode extends AudioNode {\\n}\\n\\ndeclare var ChannelSplitterNode: {\\n    prototype: ChannelSplitterNode;\\n    new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;\\n};\\n\\n/** The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren\\'t any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren\\'t abstract. */\\ninterface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {\\n    data: string;\\n    readonly length: number;\\n    appendData(data: string): void;\\n    deleteData(offset: number, count: number): void;\\n    insertData(offset: number, data: string): void;\\n    replaceData(offset: number, count: number, data: string): void;\\n    substringData(offset: number, count: number): string;\\n}\\n\\ndeclare var CharacterData: {\\n    prototype: CharacterData;\\n    new(): CharacterData;\\n};\\n\\ninterface ChildNode extends Node {\\n    /**\\n     * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    after(...nodes: (Node | string)[]): void;\\n    /**\\n     * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    before(...nodes: (Node | string)[]): void;\\n    /**\\n     * Removes node.\\n     */\\n    remove(): void;\\n    /**\\n     * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    replaceWith(...nodes: (Node | string)[]): void;\\n}\\n\\ninterface ClientRect {\\n    bottom: number;\\n    readonly height: number;\\n    left: number;\\n    right: number;\\n    top: number;\\n    readonly width: number;\\n}\\n\\ndeclare var ClientRect: {\\n    prototype: ClientRect;\\n    new(): ClientRect;\\n};\\n\\ninterface ClientRectList {\\n    readonly length: number;\\n    item(index: number): ClientRect;\\n    [index: number]: ClientRect;\\n}\\n\\ndeclare var ClientRectList: {\\n    prototype: ClientRectList;\\n    new(): ClientRectList;\\n};\\n\\ninterface Clipboard extends EventTarget {\\n    readText(): Promise<string>;\\n    writeText(data: string): Promise<void>;\\n}\\n\\ndeclare var Clipboard: {\\n    prototype: Clipboard;\\n    new(): Clipboard;\\n};\\n\\n/** Events providing information related to modification of the clipboard, that is cut, copy, and paste events. */\\ninterface ClipboardEvent extends Event {\\n    readonly clipboardData: DataTransfer | null;\\n}\\n\\ndeclare var ClipboardEvent: {\\n    prototype: ClipboardEvent;\\n    new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;\\n};\\n\\n/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object\\'s onclose attribute. */\\ninterface CloseEvent extends Event {\\n    readonly code: number;\\n    readonly reason: string;\\n    readonly wasClean: boolean;\\n    /** @deprecated */\\n    initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void;\\n}\\n\\ndeclare var CloseEvent: {\\n    prototype: CloseEvent;\\n    new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\\n};\\n\\n/** Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. */\\ninterface Comment extends CharacterData {\\n}\\n\\ndeclare var Comment: {\\n    prototype: Comment;\\n    new(data?: string): Comment;\\n};\\n\\n/** The DOM CompositionEvent represents events that occur due to the user indirectly entering text. */\\ninterface CompositionEvent extends UIEvent {\\n    readonly data: string;\\n}\\n\\ndeclare var CompositionEvent: {\\n    prototype: CompositionEvent;\\n    new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;\\n};\\n\\ninterface ConcatParams extends Algorithm {\\n    algorithmId: Uint8Array;\\n    hash?: string | Algorithm;\\n    partyUInfo: Uint8Array;\\n    partyVInfo: Uint8Array;\\n    privateInfo?: Uint8Array;\\n    publicInfo?: Uint8Array;\\n}\\n\\n/** Provides access to the browser\\'s debugging console (e.g. the Web Console in Firefox). The specifics of how it works varies from browser to browser, but there is a de facto set of features that are typically provided. */\\ninterface Console {\\n    memory: any;\\n    assert(condition?: boolean, message?: string, ...data: any[]): void;\\n    clear(): void;\\n    count(label?: string): void;\\n    debug(message?: any, ...optionalParams: any[]): void;\\n    dir(value?: any, ...optionalParams: any[]): void;\\n    dirxml(value: any): void;\\n    error(message?: any, ...optionalParams: any[]): void;\\n    exception(message?: string, ...optionalParams: any[]): void;\\n    group(groupTitle?: string, ...optionalParams: any[]): void;\\n    groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;\\n    groupEnd(): void;\\n    info(message?: any, ...optionalParams: any[]): void;\\n    log(message?: any, ...optionalParams: any[]): void;\\n    markTimeline(label?: string): void;\\n    profile(reportName?: string): void;\\n    profileEnd(reportName?: string): void;\\n    table(...tabularData: any[]): void;\\n    time(label?: string): void;\\n    timeEnd(label?: string): void;\\n    timeStamp(label?: string): void;\\n    timeline(label?: string): void;\\n    timelineEnd(label?: string): void;\\n    trace(message?: any, ...optionalParams: any[]): void;\\n    warn(message?: any, ...optionalParams: any[]): void;\\n}\\n\\ndeclare var Console: {\\n    prototype: Console;\\n    new(): Console;\\n};\\n\\ninterface ConstantSourceNode extends AudioScheduledSourceNode {\\n    readonly offset: AudioParam;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ConstantSourceNode: {\\n    prototype: ConstantSourceNode;\\n    new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;\\n};\\n\\n/** An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output. */\\ninterface ConvolverNode extends AudioNode {\\n    buffer: AudioBuffer | null;\\n    normalize: boolean;\\n}\\n\\ndeclare var ConvolverNode: {\\n    prototype: ConvolverNode;\\n    new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;\\n};\\n\\n/** The position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated. */\\ninterface Coordinates {\\n    readonly accuracy: number;\\n    readonly altitude: number | null;\\n    readonly altitudeAccuracy: number | null;\\n    readonly heading: number | null;\\n    readonly latitude: number;\\n    readonly longitude: number;\\n    readonly speed: number | null;\\n}\\n\\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\\ninterface CountQueuingStrategy extends QueuingStrategy {\\n    highWaterMark: number;\\n    size(chunk: any): 1;\\n}\\n\\ndeclare var CountQueuingStrategy: {\\n    prototype: CountQueuingStrategy;\\n    new(options: { highWaterMark: number }): CountQueuingStrategy;\\n};\\n\\ninterface Credential {\\n    readonly id: string;\\n    readonly type: string;\\n}\\n\\ndeclare var Credential: {\\n    prototype: Credential;\\n    new(): Credential;\\n};\\n\\ninterface CredentialsContainer {\\n    create(options?: CredentialCreationOptions): Promise<Credential | null>;\\n    get(options?: CredentialRequestOptions): Promise<Credential | null>;\\n    preventSilentAccess(): Promise<void>;\\n    store(credential: Credential): Promise<Credential>;\\n}\\n\\ndeclare var CredentialsContainer: {\\n    prototype: CredentialsContainer;\\n    new(): CredentialsContainer;\\n};\\n\\n/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */\\ninterface Crypto {\\n    readonly subtle: SubtleCrypto;\\n    getRandomValues<T extends Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | null>(array: T): T;\\n}\\n\\ndeclare var Crypto: {\\n    prototype: Crypto;\\n    new(): Crypto;\\n};\\n\\n/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. */\\ninterface CryptoKey {\\n    readonly algorithm: KeyAlgorithm;\\n    readonly extractable: boolean;\\n    readonly type: KeyType;\\n    readonly usages: KeyUsage[];\\n}\\n\\ndeclare var CryptoKey: {\\n    prototype: CryptoKey;\\n    new(): CryptoKey;\\n};\\n\\n/** The CryptoKeyPair dictionary of the Web Crypto API represents a key pair for an asymmetric cryptography algorithm, also known as a public-key algorithm. */\\ninterface CryptoKeyPair {\\n    privateKey: CryptoKey;\\n    publicKey: CryptoKey;\\n}\\n\\ndeclare var CryptoKeyPair: {\\n    prototype: CryptoKeyPair;\\n    new(): CryptoKeyPair;\\n};\\n\\ninterface CustomElementRegistry {\\n    define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;\\n    get(name: string): any;\\n    upgrade(root: Node): void;\\n    whenDefined(name: string): Promise<void>;\\n}\\n\\ndeclare var CustomElementRegistry: {\\n    prototype: CustomElementRegistry;\\n    new(): CustomElementRegistry;\\n};\\n\\ninterface CustomEvent<T = any> extends Event {\\n    /**\\n     * Returns any custom data event was created with. Typically used for synthetic events.\\n     */\\n    readonly detail: T;\\n    initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: T): void;\\n}\\n\\ndeclare var CustomEvent: {\\n    prototype: CustomEvent;\\n    new<T>(typeArg: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;\\n};\\n\\n/** An error object that contains an error name. */\\ninterface DOMError {\\n    readonly name: string;\\n    toString(): string;\\n}\\n\\ndeclare var DOMError: {\\n    prototype: DOMError;\\n    new(): DOMError;\\n};\\n\\n/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */\\ninterface DOMException {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly name: string;\\n    readonly ABORT_ERR: number;\\n    readonly DATA_CLONE_ERR: number;\\n    readonly DOMSTRING_SIZE_ERR: number;\\n    readonly HIERARCHY_REQUEST_ERR: number;\\n    readonly INDEX_SIZE_ERR: number;\\n    readonly INUSE_ATTRIBUTE_ERR: number;\\n    readonly INVALID_ACCESS_ERR: number;\\n    readonly INVALID_CHARACTER_ERR: number;\\n    readonly INVALID_MODIFICATION_ERR: number;\\n    readonly INVALID_NODE_TYPE_ERR: number;\\n    readonly INVALID_STATE_ERR: number;\\n    readonly NAMESPACE_ERR: number;\\n    readonly NETWORK_ERR: number;\\n    readonly NOT_FOUND_ERR: number;\\n    readonly NOT_SUPPORTED_ERR: number;\\n    readonly NO_DATA_ALLOWED_ERR: number;\\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\\n    readonly QUOTA_EXCEEDED_ERR: number;\\n    readonly SECURITY_ERR: number;\\n    readonly SYNTAX_ERR: number;\\n    readonly TIMEOUT_ERR: number;\\n    readonly TYPE_MISMATCH_ERR: number;\\n    readonly URL_MISMATCH_ERR: number;\\n    readonly VALIDATION_ERR: number;\\n    readonly WRONG_DOCUMENT_ERR: number;\\n}\\n\\ndeclare var DOMException: {\\n    prototype: DOMException;\\n    new(message?: string, name?: string): DOMException;\\n    readonly ABORT_ERR: number;\\n    readonly DATA_CLONE_ERR: number;\\n    readonly DOMSTRING_SIZE_ERR: number;\\n    readonly HIERARCHY_REQUEST_ERR: number;\\n    readonly INDEX_SIZE_ERR: number;\\n    readonly INUSE_ATTRIBUTE_ERR: number;\\n    readonly INVALID_ACCESS_ERR: number;\\n    readonly INVALID_CHARACTER_ERR: number;\\n    readonly INVALID_MODIFICATION_ERR: number;\\n    readonly INVALID_NODE_TYPE_ERR: number;\\n    readonly INVALID_STATE_ERR: number;\\n    readonly NAMESPACE_ERR: number;\\n    readonly NETWORK_ERR: number;\\n    readonly NOT_FOUND_ERR: number;\\n    readonly NOT_SUPPORTED_ERR: number;\\n    readonly NO_DATA_ALLOWED_ERR: number;\\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\\n    readonly QUOTA_EXCEEDED_ERR: number;\\n    readonly SECURITY_ERR: number;\\n    readonly SYNTAX_ERR: number;\\n    readonly TIMEOUT_ERR: number;\\n    readonly TYPE_MISMATCH_ERR: number;\\n    readonly URL_MISMATCH_ERR: number;\\n    readonly VALIDATION_ERR: number;\\n    readonly WRONG_DOCUMENT_ERR: number;\\n};\\n\\n/** An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property. */\\ninterface DOMImplementation {\\n    createDocument(namespaceURI: string | null, qualifiedName: string | null, doctype: DocumentType | null): Document;\\n    createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;\\n    createHTMLDocument(title?: string): Document;\\n    /** @deprecated */\\n    hasFeature(...args: any[]): true;\\n}\\n\\ndeclare var DOMImplementation: {\\n    prototype: DOMImplementation;\\n    new(): DOMImplementation;\\n};\\n\\ninterface DOML2DeprecatedColorProperty {\\n    color: string;\\n}\\n\\ninterface DOMMatrix extends DOMMatrixReadOnly {\\n    a: number;\\n    b: number;\\n    c: number;\\n    d: number;\\n    e: number;\\n    f: number;\\n    m11: number;\\n    m12: number;\\n    m13: number;\\n    m14: number;\\n    m21: number;\\n    m22: number;\\n    m23: number;\\n    m24: number;\\n    m31: number;\\n    m32: number;\\n    m33: number;\\n    m34: number;\\n    m41: number;\\n    m42: number;\\n    m43: number;\\n    m44: number;\\n    invertSelf(): DOMMatrix;\\n    multiplySelf(other?: DOMMatrixInit): DOMMatrix;\\n    preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\\n    rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\\n    rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\\n    rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\\n    scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    setMatrixValue(transformList: string): DOMMatrix;\\n    skewXSelf(sx?: number): DOMMatrix;\\n    skewYSelf(sy?: number): DOMMatrix;\\n    translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\\n}\\n\\ndeclare var DOMMatrix: {\\n    prototype: DOMMatrix;\\n    new(init?: string | number[]): DOMMatrix;\\n    fromFloat32Array(array32: Float32Array): DOMMatrix;\\n    fromFloat64Array(array64: Float64Array): DOMMatrix;\\n    fromMatrix(other?: DOMMatrixInit): DOMMatrix;\\n};\\n\\ntype SVGMatrix = DOMMatrix;\\ndeclare var SVGMatrix: typeof DOMMatrix;\\n\\ntype WebKitCSSMatrix = DOMMatrix;\\ndeclare var WebKitCSSMatrix: typeof DOMMatrix;\\n\\ninterface DOMMatrixReadOnly {\\n    readonly a: number;\\n    readonly b: number;\\n    readonly c: number;\\n    readonly d: number;\\n    readonly e: number;\\n    readonly f: number;\\n    readonly is2D: boolean;\\n    readonly isIdentity: boolean;\\n    readonly m11: number;\\n    readonly m12: number;\\n    readonly m13: number;\\n    readonly m14: number;\\n    readonly m21: number;\\n    readonly m22: number;\\n    readonly m23: number;\\n    readonly m24: number;\\n    readonly m31: number;\\n    readonly m32: number;\\n    readonly m33: number;\\n    readonly m34: number;\\n    readonly m41: number;\\n    readonly m42: number;\\n    readonly m43: number;\\n    readonly m44: number;\\n    flipX(): DOMMatrix;\\n    flipY(): DOMMatrix;\\n    inverse(): DOMMatrix;\\n    multiply(other?: DOMMatrixInit): DOMMatrix;\\n    rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\\n    rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\\n    rotateFromVector(x?: number, y?: number): DOMMatrix;\\n    scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    /** @deprecated */\\n    scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\\n    skewX(sx?: number): DOMMatrix;\\n    skewY(sy?: number): DOMMatrix;\\n    toFloat32Array(): Float32Array;\\n    toFloat64Array(): Float64Array;\\n    toJSON(): any;\\n    transformPoint(point?: DOMPointInit): DOMPoint;\\n    translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\\n}\\n\\ndeclare var DOMMatrixReadOnly: {\\n    prototype: DOMMatrixReadOnly;\\n    new(init?: string | number[]): DOMMatrixReadOnly;\\n    fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\\n    fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\\n    fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\\n};\\n\\n/** Provides the ability to parse XML or HTML source code from a string into a DOM Document. */\\ninterface DOMParser {\\n    parseFromString(str: string, type: SupportedType): Document;\\n}\\n\\ndeclare var DOMParser: {\\n    prototype: DOMParser;\\n    new(): DOMParser;\\n};\\n\\ninterface DOMPoint extends DOMPointReadOnly {\\n    w: number;\\n    x: number;\\n    y: number;\\n    z: number;\\n}\\n\\ndeclare var DOMPoint: {\\n    prototype: DOMPoint;\\n    new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\\n    fromPoint(other?: DOMPointInit): DOMPoint;\\n};\\n\\ntype SVGPoint = DOMPoint;\\ndeclare var SVGPoint: typeof DOMPoint;\\n\\ninterface DOMPointReadOnly {\\n    readonly w: number;\\n    readonly x: number;\\n    readonly y: number;\\n    readonly z: number;\\n    matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMPointReadOnly: {\\n    prototype: DOMPointReadOnly;\\n    new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\\n    fromPoint(other?: DOMPointInit): DOMPointReadOnly;\\n};\\n\\ninterface DOMQuad {\\n    readonly p1: DOMPoint;\\n    readonly p2: DOMPoint;\\n    readonly p3: DOMPoint;\\n    readonly p4: DOMPoint;\\n    getBounds(): DOMRect;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMQuad: {\\n    prototype: DOMQuad;\\n    new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\\n    fromQuad(other?: DOMQuadInit): DOMQuad;\\n    fromRect(other?: DOMRectInit): DOMQuad;\\n};\\n\\ninterface DOMRect extends DOMRectReadOnly {\\n    height: number;\\n    width: number;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var DOMRect: {\\n    prototype: DOMRect;\\n    new(x?: number, y?: number, width?: number, height?: number): DOMRect;\\n    fromRect(other?: DOMRectInit): DOMRect;\\n};\\n\\ntype SVGRect = DOMRect;\\ndeclare var SVGRect: typeof DOMRect;\\n\\ninterface DOMRectList {\\n    readonly length: number;\\n    item(index: number): DOMRect | null;\\n    [index: number]: DOMRect;\\n}\\n\\ndeclare var DOMRectList: {\\n    prototype: DOMRectList;\\n    new(): DOMRectList;\\n};\\n\\ninterface DOMRectReadOnly {\\n    readonly bottom: number;\\n    readonly height: number;\\n    readonly left: number;\\n    readonly right: number;\\n    readonly top: number;\\n    readonly width: number;\\n    readonly x: number;\\n    readonly y: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMRectReadOnly: {\\n    prototype: DOMRectReadOnly;\\n    new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\\n    fromRect(other?: DOMRectInit): DOMRectReadOnly;\\n};\\n\\ninterface DOMSettableTokenList extends DOMTokenList {\\n    value: string;\\n}\\n\\ndeclare var DOMSettableTokenList: {\\n    prototype: DOMSettableTokenList;\\n    new(): DOMSettableTokenList;\\n};\\n\\n/** A type returned by some APIs which contains a list of DOMString (strings). */\\ninterface DOMStringList {\\n    /**\\n     * Returns the number of strings in strings.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns true if strings contains string, and false otherwise.\\n     */\\n    contains(string: string): boolean;\\n    /**\\n     * Returns the string with index index from strings.\\n     */\\n    item(index: number): string | null;\\n    [index: number]: string;\\n}\\n\\ndeclare var DOMStringList: {\\n    prototype: DOMStringList;\\n    new(): DOMStringList;\\n};\\n\\n/** Used by the dataset HTML attribute to represent data for custom attributes added to elements. */\\ninterface DOMStringMap {\\n    [name: string]: string | undefined;\\n}\\n\\ndeclare var DOMStringMap: {\\n    prototype: DOMStringMap;\\n    new(): DOMStringMap;\\n};\\n\\n/** A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive. */\\ninterface DOMTokenList {\\n    /**\\n     * Returns the number of tokens.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the associated set as string.\\n     * \\n     * Can be set, to change the associated attribute.\\n     */\\n    value: string;\\n    /**\\n     * Adds all arguments passed, except those already present.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    add(...tokens: string[]): void;\\n    /**\\n     * Returns true if token is present, and false otherwise.\\n     */\\n    contains(token: string): boolean;\\n    /**\\n     * Returns the token with index index.\\n     */\\n    item(index: number): string | null;\\n    /**\\n     * Removes arguments passed, if they are present.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    remove(...tokens: string[]): void;\\n    /**\\n     * Replaces token with newToken.\\n     * \\n     * Returns true if token was replaced with newToken, and false otherwise.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    replace(oldToken: string, newToken: string): void;\\n    /**\\n     * Returns true if token is in the associated attribute\\'s supported tokens. Returns false otherwise.\\n     * \\n     * Throws a TypeError if the associated attribute has no supported tokens defined.\\n     */\\n    supports(token: string): boolean;\\n    /**\\n     * If force is not given, \"toggles\" token, removing it if it\\'s present and adding it if it\\'s not present. If force is true, adds token (same as add()). If force is false, removes token (same as remove()).\\n     * \\n     * Returns true if token is now present, and false otherwise.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if token is empty.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if token contains any spaces.\\n     */\\n    toggle(token: string, force?: boolean): boolean;\\n    forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;\\n    [index: number]: string;\\n}\\n\\ndeclare var DOMTokenList: {\\n    prototype: DOMTokenList;\\n    new(): DOMTokenList;\\n};\\n\\ninterface DataCue extends TextTrackCue {\\n    data: ArrayBuffer;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: DataCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: DataCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var DataCue: {\\n    prototype: DataCue;\\n    new(): DataCue;\\n};\\n\\n/** Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API. */\\ninterface DataTransfer {\\n    /**\\n     * Returns the kind of operation that is currently selected. If the kind of operation isn\\'t one of those that is allowed by the effectAllowed attribute, then the operation will fail.\\n     * \\n     * Can be set, to change the selected operation.\\n     * \\n     * The possible values are \"none\", \"copy\", \"link\", and \"move\".\\n     */\\n    dropEffect: string;\\n    /**\\n     * Returns the kinds of operations that are to be allowed.\\n     * \\n     * Can be set (during the dragstart event), to change the allowed operations.\\n     * \\n     * The possible values are \"none\", \"copy\", \"copyLink\", \"copyMove\", \"link\", \"linkMove\", \"move\", \"all\", and \"uninitialized\",\\n     */\\n    effectAllowed: string;\\n    /**\\n     * Returns a FileList of the files being dragged, if any.\\n     */\\n    readonly files: FileList;\\n    /**\\n     * Returns a DataTransferItemList object, with the drag data.\\n     */\\n    readonly items: DataTransferItemList;\\n    /**\\n     * Returns a frozen array listing the formats that were set in the dragstart event. In addition, if any files are being dragged, then one of the types will be the string \"Files\".\\n     */\\n    readonly types: ReadonlyArray<string>;\\n    /**\\n     * Removes the data of the specified formats. Removes all data if the argument is omitted.\\n     */\\n    clearData(format?: string): void;\\n    /**\\n     * Returns the specified data. If there is no such data, returns the empty string.\\n     */\\n    getData(format: string): string;\\n    /**\\n     * Adds the specified data.\\n     */\\n    setData(format: string, data: string): void;\\n    /**\\n     * Uses the given element to update the drag feedback, replacing any previously specified feedback.\\n     */\\n    setDragImage(image: Element, x: number, y: number): void;\\n}\\n\\ndeclare var DataTransfer: {\\n    prototype: DataTransfer;\\n    new(): DataTransfer;\\n};\\n\\n/** One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object. */\\ninterface DataTransferItem {\\n    /**\\n     * Returns the drag data item kind, one of: \"string\", \"file\".\\n     */\\n    readonly kind: string;\\n    /**\\n     * Returns the drag data item type string.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns a File object, if the drag data item kind is File.\\n     */\\n    getAsFile(): File | null;\\n    /**\\n     * Invokes the callback with the string data as the argument, if the drag data item kind is Plain Unicode string.\\n     */\\n    getAsString(callback: FunctionStringCallback | null): void;\\n    webkitGetAsEntry(): any;\\n}\\n\\ndeclare var DataTransferItem: {\\n    prototype: DataTransferItem;\\n    new(): DataTransferItem;\\n};\\n\\n/** A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList. */\\ninterface DataTransferItemList {\\n    /**\\n     * Returns the number of items in the drag data store.\\n     */\\n    readonly length: number;\\n    /**\\n     * Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also.\\n     */\\n    add(data: string, type: string): DataTransferItem | null;\\n    add(data: File): DataTransferItem | null;\\n    /**\\n     * Removes all the entries in the drag data store.\\n     */\\n    clear(): void;\\n    item(index: number): DataTransferItem;\\n    /**\\n     * Removes the indexth entry in the drag data store.\\n     */\\n    remove(index: number): void;\\n    [name: number]: DataTransferItem;\\n}\\n\\ndeclare var DataTransferItemList: {\\n    prototype: DataTransferItemList;\\n    new(): DataTransferItemList;\\n};\\n\\ninterface DeferredPermissionRequest {\\n    readonly id: number;\\n    readonly type: MSWebViewPermissionType;\\n    readonly uri: string;\\n    allow(): void;\\n    deny(): void;\\n}\\n\\ndeclare var DeferredPermissionRequest: {\\n    prototype: DeferredPermissionRequest;\\n    new(): DeferredPermissionRequest;\\n};\\n\\n/** A delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output. */\\ninterface DelayNode extends AudioNode {\\n    readonly delayTime: AudioParam;\\n}\\n\\ndeclare var DelayNode: {\\n    prototype: DelayNode;\\n    new(context: BaseAudioContext, options?: DelayOptions): DelayNode;\\n};\\n\\n/** Provides information about the amount of acceleration the device is experiencing along all three axes. */\\ninterface DeviceAcceleration {\\n    readonly x: number | null;\\n    readonly y: number | null;\\n    readonly z: number | null;\\n}\\n\\ndeclare var DeviceAcceleration: {\\n    prototype: DeviceAcceleration;\\n    new(): DeviceAcceleration;\\n};\\n\\n/** The DeviceLightEvent provides web developers with information from photo sensors or similiar detectors about ambient light levels near the device. For example this may be useful to adjust the screen\\'s brightness based on the current ambient light level in order to save energy or provide better readability. */\\ninterface DeviceLightEvent extends Event {\\n    readonly value: number;\\n}\\n\\ndeclare var DeviceLightEvent: {\\n    prototype: DeviceLightEvent;\\n    new(typeArg: string, eventInitDict?: DeviceLightEventInit): DeviceLightEvent;\\n};\\n\\n/** The DeviceMotionEvent provides web developers with information about the speed of changes for the device\\'s position and orientation. */\\ninterface DeviceMotionEvent extends Event {\\n    readonly acceleration: DeviceMotionEventAcceleration | null;\\n    readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;\\n    readonly interval: number;\\n    readonly rotationRate: DeviceMotionEventRotationRate | null;\\n}\\n\\ndeclare var DeviceMotionEvent: {\\n    prototype: DeviceMotionEvent;\\n    new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;\\n};\\n\\ninterface DeviceMotionEventAcceleration {\\n    readonly x: number | null;\\n    readonly y: number | null;\\n    readonly z: number | null;\\n}\\n\\ninterface DeviceMotionEventRotationRate {\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\n/** The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. */\\ninterface DeviceOrientationEvent extends Event {\\n    readonly absolute: boolean;\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\ndeclare var DeviceOrientationEvent: {\\n    prototype: DeviceOrientationEvent;\\n    new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;\\n};\\n\\n/** Provides information about the rate at which the device is rotating around all three axes. */\\ninterface DeviceRotationRate {\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\ndeclare var DeviceRotationRate: {\\n    prototype: DeviceRotationRate;\\n    new(): DeviceRotationRate;\\n};\\n\\ninterface DhImportKeyParams extends Algorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DhKeyAlgorithm extends KeyAlgorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DhKeyDeriveParams extends Algorithm {\\n    public: CryptoKey;\\n}\\n\\ninterface DhKeyGenParams extends Algorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DocumentEventMap extends GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n    \"fullscreenchange\": Event;\\n    \"fullscreenerror\": Event;\\n    \"pointerlockchange\": Event;\\n    \"pointerlockerror\": Event;\\n    \"readystatechange\": ProgressEvent<Document>;\\n    \"visibilitychange\": Event;\\n}\\n\\n/** Any web page loaded in the browser and serves as an entry point into the web page\\'s content, which is the DOM tree. */\\ninterface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShadowRoot, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {\\n    /**\\n     * Sets or gets the URL for the current document.\\n     */\\n    readonly URL: string;\\n    /**\\n     * Gets the object that has the focus when the parent document has focus.\\n     */\\n    readonly activeElement: Element | null;\\n    /**\\n     * Sets or gets the color of all active links in the document.\\n     */\\n    /** @deprecated */\\n    alinkColor: string;\\n    /**\\n     * Returns a reference to the collection of elements contained by the object.\\n     */\\n    /** @deprecated */\\n    readonly all: HTMLAllCollection;\\n    /**\\n     * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.\\n     */\\n    /** @deprecated */\\n    readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;\\n    /**\\n     * Retrieves a collection of all applet objects in the document.\\n     */\\n    /** @deprecated */\\n    readonly applets: HTMLCollectionOf<HTMLAppletElement>;\\n    /**\\n     * Deprecated. Sets or retrieves a value that indicates the background color behind the object.\\n     */\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Specifies the beginning and end of the document body.\\n     */\\n    body: HTMLElement;\\n    /**\\n     * Returns document\\'s encoding.\\n     */\\n    readonly characterSet: string;\\n    /**\\n     * Gets or sets the character set used to encode the object.\\n     */\\n    readonly charset: string;\\n    /**\\n     * Gets a value that indicates whether standards-compliant mode is switched on for the object.\\n     */\\n    readonly compatMode: string;\\n    /**\\n     * Returns document\\'s content type.\\n     */\\n    readonly contentType: string;\\n    /**\\n     * Returns the HTTP cookies that apply to the Document. If there are no cookies or cookies can\\'t be applied to this resource, the empty string will be returned.\\n     * \\n     * Can be set, to add a new cookie to the element\\'s set of HTTP cookies.\\n     * \\n     * If the contents are sandboxed into a unique origin (e.g. in an iframe with the sandbox attribute), a \"SecurityError\" DOMException will be thrown on getting and setting.\\n     */\\n    cookie: string;\\n    /**\\n     * Returns the script element, or the SVG script element, that is currently executing, as long as the element represents a classic script. In the case of reentrant script execution, returns the one that most recently started executing amongst those that have not yet finished executing.\\n     * \\n     * Returns null if the Document is not currently executing a script or SVG script element (e.g., because the running script is an event handler, or a timeout), or if the currently executing script or SVG script element represents a module script.\\n     */\\n    readonly currentScript: HTMLOrSVGScriptElement | null;\\n    readonly defaultView: WindowProxy | null;\\n    /**\\n     * Sets or gets a value that indicates whether the document can be edited.\\n     */\\n    designMode: string;\\n    /**\\n     * Sets or retrieves a value that indicates the reading order of the object.\\n     */\\n    dir: string;\\n    /**\\n     * Gets an object representing the document type declaration associated with the current document.\\n     */\\n    readonly doctype: DocumentType | null;\\n    /**\\n     * Gets a reference to the root node of the document.\\n     */\\n    readonly documentElement: HTMLElement;\\n    /**\\n     * Returns document\\'s URL.\\n     */\\n    readonly documentURI: string;\\n    /**\\n     * Sets or gets the security domain of the document.\\n     */\\n    domain: string;\\n    /**\\n     * Retrieves a collection of all embed objects in the document.\\n     */\\n    readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;\\n    /**\\n     * Sets or gets the foreground (text) color of the document.\\n     */\\n    /** @deprecated */\\n    fgColor: string;\\n    /**\\n     * Retrieves a collection, in source order, of all form objects in the document.\\n     */\\n    readonly forms: HTMLCollectionOf<HTMLFormElement>;\\n    /** @deprecated */\\n    readonly fullscreen: boolean;\\n    /**\\n     * Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise.\\n     */\\n    readonly fullscreenEnabled: boolean;\\n    /**\\n     * Returns the head element.\\n     */\\n    readonly head: HTMLHeadElement;\\n    readonly hidden: boolean;\\n    /**\\n     * Retrieves a collection, in source order, of img objects in the document.\\n     */\\n    readonly images: HTMLCollectionOf<HTMLImageElement>;\\n    /**\\n     * Gets the implementation object of the current document.\\n     */\\n    readonly implementation: DOMImplementation;\\n    /**\\n     * Returns the character encoding used to create the webpage that is loaded into the document object.\\n     */\\n    readonly inputEncoding: string;\\n    /**\\n     * Gets the date that the page was last modified, if the page supplies one.\\n     */\\n    readonly lastModified: string;\\n    /**\\n     * Sets or gets the color of the document links.\\n     */\\n    /** @deprecated */\\n    linkColor: string;\\n    /**\\n     * Retrieves a collection of all a objects that specify the href property and all area objects in the document.\\n     */\\n    readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;\\n    /**\\n     * Contains information about the current URL.\\n     */\\n    location: Location;\\n    onfullscreenchange: ((this: Document, ev: Event) => any) | null;\\n    onfullscreenerror: ((this: Document, ev: Event) => any) | null;\\n    onpointerlockchange: ((this: Document, ev: Event) => any) | null;\\n    onpointerlockerror: ((this: Document, ev: Event) => any) | null;\\n    /**\\n     * Fires when the state of the object has changed.\\n     * @param ev The event\\n     */\\n    onreadystatechange: ((this: Document, ev: ProgressEvent<Document>) => any) | null;\\n    onvisibilitychange: ((this: Document, ev: Event) => any) | null;\\n    /**\\n     * Returns document\\'s origin.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Return an HTMLCollection of the embed elements in the Document.\\n     */\\n    readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;\\n    /**\\n     * Retrieves a value that indicates the current state of the object.\\n     */\\n    readonly readyState: DocumentReadyState;\\n    /**\\n     * Gets the URL of the location that referred the user to the current page.\\n     */\\n    readonly referrer: string;\\n    /**\\n     * Retrieves a collection of all script objects in the document.\\n     */\\n    readonly scripts: HTMLCollectionOf<HTMLScriptElement>;\\n    readonly scrollingElement: Element | null;\\n    readonly timeline: DocumentTimeline;\\n    /**\\n     * Contains the title of the document.\\n     */\\n    title: string;\\n    readonly visibilityState: VisibilityState;\\n    /**\\n     * Sets or gets the color of the links that the user has visited.\\n     */\\n    /** @deprecated */\\n    vlinkColor: string;\\n    /**\\n     * Moves node from another document and returns it.\\n     * \\n     * If node is a document, throws a \"NotSupportedError\" DOMException or, if node is a shadow root, throws a \"HierarchyRequestError\" DOMException.\\n     */\\n    adoptNode<T extends Node>(source: T): T;\\n    /** @deprecated */\\n    captureEvents(): void;\\n    caretPositionFromPoint(x: number, y: number): CaretPosition | null;\\n    /** @deprecated */\\n    caretRangeFromPoint(x: number, y: number): Range;\\n    /** @deprecated */\\n    clear(): void;\\n    /**\\n     * Closes an output stream and forces the sent data to display.\\n     */\\n    close(): void;\\n    /**\\n     * Creates an attribute object with a specified name.\\n     * @param name String that sets the attribute object\\'s name.\\n     */\\n    createAttribute(localName: string): Attr;\\n    createAttributeNS(namespace: string | null, qualifiedName: string): Attr;\\n    /**\\n     * Returns a CDATASection node whose data is data.\\n     */\\n    createCDATASection(data: string): CDATASection;\\n    /**\\n     * Creates a comment object with the specified data.\\n     * @param data Sets the comment object\\'s data.\\n     */\\n    createComment(data: string): Comment;\\n    /**\\n     * Creates a new document.\\n     */\\n    createDocumentFragment(): DocumentFragment;\\n    /**\\n     * Creates an instance of the element for the specified tag.\\n     * @param tagName The name of an element.\\n     */\\n    createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\\n    /** @deprecated */\\n    createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\\n    createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\\n    /**\\n     * Returns an element with namespace namespace. Its namespace prefix will be everything before \":\" (U+003E) in qualifiedName or null. Its local name will be everything after \":\" (U+003E) in qualifiedName or qualifiedName.\\n     * \\n     * If localName does not match the Name production an \"InvalidCharacterError\" DOMException will be thrown.\\n     * \\n     * If one of the following conditions is true a \"NamespaceError\" DOMException will be thrown:\\n     * \\n     * localName does not match the QName production.\\n     * Namespace prefix is not null and namespace is the empty string.\\n     * Namespace prefix is \"xml\" and namespace is not the XML namespace.\\n     * qualifiedName or namespace prefix is \"xmlns\" and namespace is not the XMLNS namespace.\\n     * namespace is the XMLNS namespace and neither qualifiedName nor namespace prefix is \"xmlns\".\\n     * \\n     * When supplied, options\\'s is can be used to create a customized built-in element.\\n     */\\n    createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\\n    createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K];\\n    createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement;\\n    createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\\n    createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;\\n    createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\\n    createEvent(eventInterface: \"AnimationPlaybackEvent\"): AnimationPlaybackEvent;\\n    createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\\n    createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\\n    createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\\n    createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\\n    createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\\n    createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\\n    createEvent(eventInterface: \"DeviceLightEvent\"): DeviceLightEvent;\\n    createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\\n    createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\\n    createEvent(eventInterface: \"DragEvent\"): DragEvent;\\n    createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\\n    createEvent(eventInterface: \"Event\"): Event;\\n    createEvent(eventInterface: \"Events\"): Event;\\n    createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\\n    createEvent(eventInterface: \"FocusNavigationEvent\"): FocusNavigationEvent;\\n    createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\\n    createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\\n    createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\\n    createEvent(eventInterface: \"InputEvent\"): InputEvent;\\n    createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\\n    createEvent(eventInterface: \"ListeningStateChangedEvent\"): ListeningStateChangedEvent;\\n    createEvent(eventInterface: \"MSGestureEvent\"): MSGestureEvent;\\n    createEvent(eventInterface: \"MSMediaKeyMessageEvent\"): MSMediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MSMediaKeyNeededEvent\"): MSMediaKeyNeededEvent;\\n    createEvent(eventInterface: \"MSPointerEvent\"): MSPointerEvent;\\n    createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\\n    createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MediaQueryListEvent\"): MediaQueryListEvent;\\n    createEvent(eventInterface: \"MediaStreamErrorEvent\"): MediaStreamErrorEvent;\\n    createEvent(eventInterface: \"MediaStreamEvent\"): MediaStreamEvent;\\n    createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\\n    createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\\n    createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\\n    createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\\n    createEvent(eventInterface: \"MutationEvent\"): MutationEvent;\\n    createEvent(eventInterface: \"MutationEvents\"): MutationEvent;\\n    createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\\n    createEvent(eventInterface: \"OverflowEvent\"): OverflowEvent;\\n    createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\\n    createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\\n    createEvent(eventInterface: \"PermissionRequestedEvent\"): PermissionRequestedEvent;\\n    createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\\n    createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\\n    createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\\n    createEvent(eventInterface: \"PromiseRejectionEvent\"): PromiseRejectionEvent;\\n    createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\\n    createEvent(eventInterface: \"RTCDataChannelEvent\"): RTCDataChannelEvent;\\n    createEvent(eventInterface: \"RTCDtlsTransportStateChangedEvent\"): RTCDtlsTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCErrorEvent\"): RTCErrorEvent;\\n    createEvent(eventInterface: \"RTCIceCandidatePairChangedEvent\"): RTCIceCandidatePairChangedEvent;\\n    createEvent(eventInterface: \"RTCIceGathererEvent\"): RTCIceGathererEvent;\\n    createEvent(eventInterface: \"RTCIceTransportStateChangedEvent\"): RTCIceTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceErrorEvent\"): RTCPeerConnectionIceErrorEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\\n    createEvent(eventInterface: \"RTCSsrcConflictEvent\"): RTCSsrcConflictEvent;\\n    createEvent(eventInterface: \"RTCStatsEvent\"): RTCStatsEvent;\\n    createEvent(eventInterface: \"RTCTrackEvent\"): RTCTrackEvent;\\n    createEvent(eventInterface: \"SVGZoomEvent\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SVGZoomEvents\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SecurityPolicyViolationEvent\"): SecurityPolicyViolationEvent;\\n    createEvent(eventInterface: \"ServiceWorkerMessageEvent\"): ServiceWorkerMessageEvent;\\n    createEvent(eventInterface: \"SpeechRecognitionError\"): SpeechRecognitionError;\\n    createEvent(eventInterface: \"SpeechRecognitionEvent\"): SpeechRecognitionEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisErrorEvent\"): SpeechSynthesisErrorEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\\n    createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\\n    createEvent(eventInterface: \"TextEvent\"): TextEvent;\\n    createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\\n    createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\\n    createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\\n    createEvent(eventInterface: \"UIEvent\"): UIEvent;\\n    createEvent(eventInterface: \"UIEvents\"): UIEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent\"): VRDisplayEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent \"): VRDisplayEvent ;\\n    createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\\n    createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\\n    createEvent(eventInterface: string): Event;\\n    /**\\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\\n     * @param root The root element or node to start traversing on.\\n     * @param whatToShow The type of nodes or elements to appear in the node list\\n     * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.\\n     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\\n     */\\n    createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;\\n    /**\\n     * Returns a ProcessingInstruction node whose target is target and data is data. If target does not match the Name production an \"InvalidCharacterError\" DOMException will be thrown. If data contains \"?>\" an \"InvalidCharacterError\" DOMException will be thrown.\\n     */\\n    createProcessingInstruction(target: string, data: string): ProcessingInstruction;\\n    /**\\n     *  Returns an empty range object that has both of its boundary points positioned at the beginning of the document.\\n     */\\n    createRange(): Range;\\n    /**\\n     * Creates a text string from the specified value.\\n     * @param data String that specifies the nodeValue property of the text node.\\n     */\\n    createTextNode(data: string): Text;\\n    /**\\n     * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.\\n     * @param root The root element or node to start traversing on.\\n     * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.\\n     * @param filter A custom NodeFilter function to use.\\n     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\\n     */\\n    createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;\\n    /** @deprecated */\\n    createTreeWalker(root: Node, whatToShow: number, filter: NodeFilter | null, entityReferenceExpansion?: boolean): TreeWalker;\\n    /**\\n     * Returns the element for the specified x coordinate and the specified y coordinate.\\n     * @param x The x-offset\\n     * @param y The y-offset\\n     */\\n    elementFromPoint(x: number, y: number): Element | null;\\n    elementsFromPoint(x: number, y: number): Element[];\\n    /**\\n     * Executes a command on the current document, current selection, or the given range.\\n     * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.\\n     * @param showUI Display the user interface, defaults to false.\\n     * @param value Value to assign.\\n     */\\n    execCommand(commandId: string, showUI?: boolean, value?: string): boolean;\\n    /**\\n     * Stops document\\'s fullscreen element from being displayed fullscreen and resolves promise when done.\\n     */\\n    exitFullscreen(): Promise<void>;\\n    exitPointerLock(): void;\\n    getAnimations(): Animation[];\\n    /**\\n     * Returns a reference to the first object with the specified value of the ID or NAME attribute.\\n     * @param elementId String that specifies the ID value. Case-insensitive.\\n     */\\n    getElementById(elementId: string): HTMLElement | null;\\n    /**\\n     * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\\n     */\\n    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Gets a collection of objects based on the value of the NAME or ID attribute.\\n     * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.\\n     */\\n    getElementsByName(elementName: string): NodeListOf<HTMLElement>;\\n    /**\\n     * Retrieves a collection of objects based on the specified element name.\\n     * @param name Specifies the name of an element.\\n     */\\n    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\\n    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\\n    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * If namespace and localName are \"*\" returns a HTMLCollection of all descendant elements.\\n     * \\n     * If only namespace is \"*\" returns a HTMLCollection of all descendant elements whose local name is localName.\\n     * \\n     * If only localName is \"*\" returns a HTMLCollection of all descendant elements whose namespace is namespace.\\n     * \\n     * Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName.\\n     */\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<SVGElement>;\\n    getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.\\n     */\\n    getSelection(): Selection | null;\\n    /**\\n     * Gets a value indicating whether the object currently has focus.\\n     */\\n    hasFocus(): boolean;\\n    /**\\n     * Returns a copy of node. If deep is true, the copy also includes the node\\'s descendants.\\n     * \\n     * If node is a document or a shadow root, throws a \"NotSupportedError\" DOMException.\\n     */\\n    importNode<T extends Node>(importedNode: T, deep: boolean): T;\\n    /**\\n     * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.\\n     * @param url Specifies a MIME type for the document.\\n     * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.\\n     * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, \"fullscreen=yes, toolbar=yes\"). The following values are supported.\\n     * @param replace Specifies whether the existing entry for the document is replaced in the history list.\\n     */\\n    open(url?: string, name?: string, features?: string, replace?: boolean): Document;\\n    /**\\n     * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.\\n     * @param commandId Specifies a command identifier.\\n     */\\n    queryCommandEnabled(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandIndeterm(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates the current state of the command.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandState(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates whether the current command is supported on the current range.\\n     * @param commandId Specifies a command identifier.\\n     */\\n    queryCommandSupported(commandId: string): boolean;\\n    /**\\n     * Returns the current value of the document, range, or current selection for the given command.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandValue(commandId: string): string;\\n    /** @deprecated */\\n    releaseEvents(): void;\\n    /**\\n     * Writes one or more HTML expressions to a document in the specified window.\\n     * @param content Specifies the text and HTML tags to write.\\n     */\\n    write(...text: string[]): void;\\n    /**\\n     * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.\\n     * @param content The text and HTML tags to write.\\n     */\\n    writeln(...text: string[]): void;\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Document: {\\n    prototype: Document;\\n    new(): Document;\\n};\\n\\ninterface DocumentAndElementEventHandlersEventMap {\\n    \"copy\": ClipboardEvent;\\n    \"cut\": ClipboardEvent;\\n    \"paste\": ClipboardEvent;\\n}\\n\\ninterface DocumentAndElementEventHandlers {\\n    oncopy: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    oncut: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    onpaste: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    addEventListener<K extends keyof DocumentAndElementEventHandlersEventMap>(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentAndElementEventHandlersEventMap>(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface DocumentEvent {\\n    createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\\n    createEvent(eventInterface: \"AnimationPlaybackEvent\"): AnimationPlaybackEvent;\\n    createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\\n    createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\\n    createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\\n    createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\\n    createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\\n    createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\\n    createEvent(eventInterface: \"DeviceLightEvent\"): DeviceLightEvent;\\n    createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\\n    createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\\n    createEvent(eventInterface: \"DragEvent\"): DragEvent;\\n    createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\\n    createEvent(eventInterface: \"Event\"): Event;\\n    createEvent(eventInterface: \"Events\"): Event;\\n    createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\\n    createEvent(eventInterface: \"FocusNavigationEvent\"): FocusNavigationEvent;\\n    createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\\n    createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\\n    createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\\n    createEvent(eventInterface: \"InputEvent\"): InputEvent;\\n    createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\\n    createEvent(eventInterface: \"ListeningStateChangedEvent\"): ListeningStateChangedEvent;\\n    createEvent(eventInterface: \"MSGestureEvent\"): MSGestureEvent;\\n    createEvent(eventInterface: \"MSMediaKeyMessageEvent\"): MSMediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MSMediaKeyNeededEvent\"): MSMediaKeyNeededEvent;\\n    createEvent(eventInterface: \"MSPointerEvent\"): MSPointerEvent;\\n    createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\\n    createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MediaQueryListEvent\"): MediaQueryListEvent;\\n    createEvent(eventInterface: \"MediaStreamErrorEvent\"): MediaStreamErrorEvent;\\n    createEvent(eventInterface: \"MediaStreamEvent\"): MediaStreamEvent;\\n    createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\\n    createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\\n    createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\\n    createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\\n    createEvent(eventInterface: \"MutationEvent\"): MutationEvent;\\n    createEvent(eventInterface: \"MutationEvents\"): MutationEvent;\\n    createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\\n    createEvent(eventInterface: \"OverflowEvent\"): OverflowEvent;\\n    createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\\n    createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\\n    createEvent(eventInterface: \"PermissionRequestedEvent\"): PermissionRequestedEvent;\\n    createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\\n    createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\\n    createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\\n    createEvent(eventInterface: \"PromiseRejectionEvent\"): PromiseRejectionEvent;\\n    createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\\n    createEvent(eventInterface: \"RTCDataChannelEvent\"): RTCDataChannelEvent;\\n    createEvent(eventInterface: \"RTCDtlsTransportStateChangedEvent\"): RTCDtlsTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCErrorEvent\"): RTCErrorEvent;\\n    createEvent(eventInterface: \"RTCIceCandidatePairChangedEvent\"): RTCIceCandidatePairChangedEvent;\\n    createEvent(eventInterface: \"RTCIceGathererEvent\"): RTCIceGathererEvent;\\n    createEvent(eventInterface: \"RTCIceTransportStateChangedEvent\"): RTCIceTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceErrorEvent\"): RTCPeerConnectionIceErrorEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\\n    createEvent(eventInterface: \"RTCSsrcConflictEvent\"): RTCSsrcConflictEvent;\\n    createEvent(eventInterface: \"RTCStatsEvent\"): RTCStatsEvent;\\n    createEvent(eventInterface: \"RTCTrackEvent\"): RTCTrackEvent;\\n    createEvent(eventInterface: \"SVGZoomEvent\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SVGZoomEvents\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SecurityPolicyViolationEvent\"): SecurityPolicyViolationEvent;\\n    createEvent(eventInterface: \"ServiceWorkerMessageEvent\"): ServiceWorkerMessageEvent;\\n    createEvent(eventInterface: \"SpeechRecognitionError\"): SpeechRecognitionError;\\n    createEvent(eventInterface: \"SpeechRecognitionEvent\"): SpeechRecognitionEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisErrorEvent\"): SpeechSynthesisErrorEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\\n    createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\\n    createEvent(eventInterface: \"TextEvent\"): TextEvent;\\n    createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\\n    createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\\n    createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\\n    createEvent(eventInterface: \"UIEvent\"): UIEvent;\\n    createEvent(eventInterface: \"UIEvents\"): UIEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent\"): VRDisplayEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent \"): VRDisplayEvent ;\\n    createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\\n    createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\\n    createEvent(eventInterface: string): Event;\\n}\\n\\n/** A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn\\'t part of the active document tree structure, changes made to the fragment don\\'t affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */\\ninterface DocumentFragment extends Node, NonElementParentNode, ParentNode {\\n    getElementById(elementId: string): HTMLElement | null;\\n}\\n\\ndeclare var DocumentFragment: {\\n    prototype: DocumentFragment;\\n    new(): DocumentFragment;\\n};\\n\\ninterface DocumentOrShadowRoot {\\n    readonly activeElement: Element | null;\\n    /**\\n     * Returns document\\'s fullscreen element.\\n     */\\n    readonly fullscreenElement: Element | null;\\n    readonly pointerLockElement: Element | null;\\n    /**\\n     * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.\\n     */\\n    readonly styleSheets: StyleSheetList;\\n    caretPositionFromPoint(x: number, y: number): CaretPosition | null;\\n    /** @deprecated */\\n    caretRangeFromPoint(x: number, y: number): Range;\\n    elementFromPoint(x: number, y: number): Element | null;\\n    elementsFromPoint(x: number, y: number): Element[];\\n    getSelection(): Selection | null;\\n}\\n\\ninterface DocumentTimeline extends AnimationTimeline {\\n}\\n\\ndeclare var DocumentTimeline: {\\n    prototype: DocumentTimeline;\\n    new(options?: DocumentTimelineOptions): DocumentTimeline;\\n};\\n\\n/** A Node containing a doctype. */\\ninterface DocumentType extends Node, ChildNode {\\n    readonly name: string;\\n    readonly publicId: string;\\n    readonly systemId: string;\\n}\\n\\ndeclare var DocumentType: {\\n    prototype: DocumentType;\\n    new(): DocumentType;\\n};\\n\\n/** A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way. */\\ninterface DragEvent extends MouseEvent {\\n    /**\\n     * Returns the DataTransfer object for the event.\\n     */\\n    readonly dataTransfer: DataTransfer | null;\\n}\\n\\ndeclare var DragEvent: {\\n    prototype: DragEvent;\\n    new(type: string, eventInitDict?: DragEventInit): DragEvent;\\n};\\n\\n/** Inherits properties from its parent, AudioNode. */\\ninterface DynamicsCompressorNode extends AudioNode {\\n    readonly attack: AudioParam;\\n    readonly knee: AudioParam;\\n    readonly ratio: AudioParam;\\n    readonly reduction: number;\\n    readonly release: AudioParam;\\n    readonly threshold: AudioParam;\\n}\\n\\ndeclare var DynamicsCompressorNode: {\\n    prototype: DynamicsCompressorNode;\\n    new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;\\n};\\n\\ninterface EXT_blend_minmax {\\n    readonly MAX_EXT: GLenum;\\n    readonly MIN_EXT: GLenum;\\n}\\n\\n/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */\\ninterface EXT_frag_depth {\\n}\\n\\ninterface EXT_sRGB {\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: GLenum;\\n    readonly SRGB8_ALPHA8_EXT: GLenum;\\n    readonly SRGB_ALPHA_EXT: GLenum;\\n    readonly SRGB_EXT: GLenum;\\n}\\n\\ninterface EXT_shader_texture_lod {\\n}\\n\\n/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */\\ninterface EXT_texture_filter_anisotropic {\\n    readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\\n    readonly TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\\n}\\n\\ninterface ElementEventMap {\\n    \"fullscreenchange\": Event;\\n    \"fullscreenerror\": Event;\\n}\\n\\n/** Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. */\\ninterface Element extends Node, Animatable, ChildNode, InnerHTML, NonDocumentTypeChildNode, ParentNode, Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n    readonly attributes: NamedNodeMap;\\n    /**\\n     * Allows for manipulation of element\\'s class content attribute as a set of whitespace-separated tokens through a DOMTokenList object.\\n     */\\n    readonly classList: DOMTokenList;\\n    /**\\n     * Returns the value of element\\'s class content attribute. Can be set to change it.\\n     */\\n    className: string;\\n    readonly clientHeight: number;\\n    readonly clientLeft: number;\\n    readonly clientTop: number;\\n    readonly clientWidth: number;\\n    /**\\n     * Returns the value of element\\'s id content attribute. Can be set to change it.\\n     */\\n    id: string;\\n    /**\\n     * Returns the local name.\\n     */\\n    readonly localName: string;\\n    /**\\n     * Returns the namespace.\\n     */\\n    readonly namespaceURI: string | null;\\n    onfullscreenchange: ((this: Element, ev: Event) => any) | null;\\n    onfullscreenerror: ((this: Element, ev: Event) => any) | null;\\n    outerHTML: string;\\n    /**\\n     * Returns the namespace prefix.\\n     */\\n    readonly prefix: string | null;\\n    readonly scrollHeight: number;\\n    scrollLeft: number;\\n    scrollTop: number;\\n    readonly scrollWidth: number;\\n    /**\\n     * Returns element\\'s shadow root, if any, and if shadow root\\'s mode is \"open\", and null otherwise.\\n     */\\n    readonly shadowRoot: ShadowRoot | null;\\n    /**\\n     * Returns the value of element\\'s slot content attribute. Can be set to change it.\\n     */\\n    slot: string;\\n    /**\\n     * Returns the HTML-uppercased qualified name.\\n     */\\n    readonly tagName: string;\\n    /**\\n     * Creates a shadow root for element and returns it.\\n     */\\n    attachShadow(init: ShadowRootInit): ShadowRoot;\\n    /**\\n     * Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.\\n     */\\n    closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;\\n    closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;\\n    closest<E extends Element = Element>(selector: string): E | null;\\n    /**\\n     * Returns element\\'s first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.\\n     */\\n    getAttribute(qualifiedName: string): string | null;\\n    /**\\n     * Returns element\\'s attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.\\n     */\\n    getAttributeNS(namespace: string | null, localName: string): string | null;\\n    /**\\n     * Returns the qualified names of all element\\'s attributes. Can contain duplicates.\\n     */\\n    getAttributeNames(): string[];\\n    getAttributeNode(name: string): Attr | null;\\n    getAttributeNodeNS(namespaceURI: string, localName: string): Attr | null;\\n    getBoundingClientRect(): DOMRect;\\n    getClientRects(): DOMRectList;\\n    /**\\n     * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\\n     */\\n    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\\n    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\\n    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\\n    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<SVGElement>;\\n    getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.\\n     */\\n    hasAttribute(qualifiedName: string): boolean;\\n    /**\\n     * Returns true if element has an attribute whose namespace is namespace and local name is localName.\\n     */\\n    hasAttributeNS(namespace: string | null, localName: string): boolean;\\n    /**\\n     * Returns true if element has attributes, and false otherwise.\\n     */\\n    hasAttributes(): boolean;\\n    hasPointerCapture(pointerId: number): boolean;\\n    insertAdjacentElement(position: InsertPosition, insertedElement: Element): Element | null;\\n    insertAdjacentHTML(where: InsertPosition, html: string): void;\\n    insertAdjacentText(where: InsertPosition, text: string): void;\\n    /**\\n     * Returns true if matching selectors against element\\'s root yields element, and false otherwise.\\n     */\\n    matches(selectors: string): boolean;\\n    msGetRegionContent(): any;\\n    releasePointerCapture(pointerId: number): void;\\n    /**\\n     * Removes element\\'s first attribute whose qualified name is qualifiedName.\\n     */\\n    removeAttribute(qualifiedName: string): void;\\n    /**\\n     * Removes element\\'s attribute whose namespace is namespace and local name is localName.\\n     */\\n    removeAttributeNS(namespace: string | null, localName: string): void;\\n    removeAttributeNode(attr: Attr): Attr;\\n    /**\\n     * Displays element fullscreen and resolves promise when done.\\n     * \\n     * When supplied, options\\'s navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to \"show\", navigation simplicity is preferred over screen space, and if set to \"hide\", more screen space is preferred. User agents are always free to honor user preference over the application\\'s. The default value \"auto\" indicates no application preference.\\n     */\\n    requestFullscreen(options?: FullscreenOptions): Promise<void>;\\n    requestPointerLock(): void;\\n    scroll(options?: ScrollToOptions): void;\\n    scroll(x: number, y: number): void;\\n    scrollBy(options?: ScrollToOptions): void;\\n    scrollBy(x: number, y: number): void;\\n    scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;\\n    scrollTo(options?: ScrollToOptions): void;\\n    scrollTo(x: number, y: number): void;\\n    /**\\n     * Sets the value of element\\'s first attribute whose qualified name is qualifiedName to value.\\n     */\\n    setAttribute(qualifiedName: string, value: string): void;\\n    /**\\n     * Sets the value of element\\'s attribute whose namespace is namespace and local name is localName to value.\\n     */\\n    setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;\\n    setAttributeNode(attr: Attr): Attr | null;\\n    setAttributeNodeNS(attr: Attr): Attr | null;\\n    setPointerCapture(pointerId: number): void;\\n    /**\\n     * If force is not given, \"toggles\" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.\\n     * \\n     * Returns true if qualifiedName is now present, and false otherwise.\\n     */\\n    toggleAttribute(qualifiedName: string, force?: boolean): boolean;\\n    webkitMatchesSelector(selectors: string): boolean;\\n    addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Element: {\\n    prototype: Element;\\n    new(): Element;\\n};\\n\\ninterface ElementCSSInlineStyle {\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ninterface ElementContentEditable {\\n    contentEditable: string;\\n    inputMode: string;\\n    readonly isContentEditable: boolean;\\n}\\n\\n/** Events providing information related to errors in scripts or in files. */\\ninterface ErrorEvent extends Event {\\n    readonly colno: number;\\n    readonly error: any;\\n    readonly filename: string;\\n    readonly lineno: number;\\n    readonly message: string;\\n}\\n\\ndeclare var ErrorEvent: {\\n    prototype: ErrorEvent;\\n    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\\n};\\n\\n/** An event which takes place in the DOM. */\\ninterface Event {\\n    /**\\n     * Returns true or false depending on how event was initialized. True if event goes through its target\\'s ancestors in reverse tree order, and false otherwise.\\n     */\\n    readonly bubbles: boolean;\\n    cancelBubble: boolean;\\n    /**\\n     * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.\\n     */\\n    readonly cancelable: boolean;\\n    /**\\n     * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.\\n     */\\n    readonly composed: boolean;\\n    /**\\n     * Returns the object whose event listener\\'s callback is currently being invoked.\\n     */\\n    readonly currentTarget: EventTarget | null;\\n    /**\\n     * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.\\n     */\\n    readonly defaultPrevented: boolean;\\n    /**\\n     * Returns the event\\'s phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.\\n     */\\n    readonly eventPhase: number;\\n    /**\\n     * Returns true if event was dispatched by the user agent, and false otherwise.\\n     */\\n    readonly isTrusted: boolean;\\n    returnValue: boolean;\\n    /** @deprecated */\\n    readonly srcElement: EventTarget | null;\\n    /**\\n     * Returns the object to which event is dispatched (its target).\\n     */\\n    readonly target: EventTarget | null;\\n    /**\\n     * Returns the event\\'s timestamp as the number of milliseconds measured relative to the time origin.\\n     */\\n    readonly timeStamp: number;\\n    /**\\n     * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the invocation target objects of event\\'s path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root\\'s mode is \"closed\" that are not reachable from event\\'s currentTarget.\\n     */\\n    composedPath(): EventTarget[];\\n    initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\\n    /**\\n     * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.\\n     */\\n    preventDefault(): void;\\n    /**\\n     * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.\\n     */\\n    stopImmediatePropagation(): void;\\n    /**\\n     * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.\\n     */\\n    stopPropagation(): void;\\n    readonly AT_TARGET: number;\\n    readonly BUBBLING_PHASE: number;\\n    readonly CAPTURING_PHASE: number;\\n    readonly NONE: number;\\n}\\n\\ndeclare var Event: {\\n    prototype: Event;\\n    new(type: string, eventInitDict?: EventInit): Event;\\n    readonly AT_TARGET: number;\\n    readonly BUBBLING_PHASE: number;\\n    readonly CAPTURING_PHASE: number;\\n    readonly NONE: number;\\n};\\n\\ninterface EventListenerObject {\\n    handleEvent(evt: Event): void;\\n}\\n\\ninterface EventSourceEventMap {\\n    \"error\": Event;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\ninterface EventSource extends EventTarget {\\n    onerror: ((this: EventSource, ev: Event) => any) | null;\\n    onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\\n    onopen: ((this: EventSource, ev: Event) => any) | null;\\n    /**\\n     * Returns the state of this EventSource object\\'s connection. It can have the values described below.\\n     */\\n    readonly readyState: number;\\n    /**\\n     * Returns the URL providing the event stream.\\n     */\\n    readonly url: string;\\n    /**\\n     * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise.\\n     */\\n    readonly withCredentials: boolean;\\n    /**\\n     * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\\n     */\\n    close(): void;\\n    readonly CLOSED: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n    addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var EventSource: {\\n    prototype: EventSource;\\n    new(url: string, eventSourceInitDict?: EventSourceInit): EventSource;\\n    readonly CLOSED: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n};\\n\\n/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */\\ninterface EventTarget {\\n    /**\\n     * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.\\n     * \\n     * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options\\'s capture.\\n     * \\n     * When set to true, options\\'s capture prevents callback from being invoked when the event\\'s eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event\\'s eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event\\'s eventPhase attribute value is AT_TARGET.\\n     * \\n     * When set to true, options\\'s passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in §2.8 Observing event listeners.\\n     * \\n     * When set to true, options\\'s once indicates that the callback will only be invoked once after which the event listener will be removed.\\n     * \\n     * The event listener is appended to target\\'s event listener list and is not appended if it has the same type, callback, and capture.\\n     */\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;\\n    /**\\n     * Dispatches a synthetic event event to target and returns true if either event\\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\\n     */\\n    dispatchEvent(event: Event): boolean;\\n    /**\\n     * Removes the event listener in target\\'s event listener list with the same type, callback, and options.\\n     */\\n    removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\\n}\\n\\ndeclare var EventTarget: {\\n    prototype: EventTarget;\\n    new(): EventTarget;\\n};\\n\\ninterface ExtensionScriptApis {\\n    extensionIdToShortId(extensionId: string): number;\\n    fireExtensionApiTelemetry(functionName: string, isSucceeded: boolean, isSupported: boolean, errorString: string): void;\\n    genericFunction(routerAddress: any, parameters?: string, callbackId?: number): void;\\n    genericSynchronousFunction(functionId: number, parameters?: string): string;\\n    genericWebRuntimeCallout(to: any, from: any, payload: string): void;\\n    getExtensionId(): string;\\n    registerGenericFunctionCallbackHandler(callbackHandler: Function): void;\\n    registerGenericPersistentCallbackHandler(callbackHandler: Function): void;\\n    registerWebRuntimeCallbackHandler(handler: Function): any;\\n}\\n\\ndeclare var ExtensionScriptApis: {\\n    prototype: ExtensionScriptApis;\\n    new(): ExtensionScriptApis;\\n};\\n\\ninterface External {\\n    /** @deprecated */\\n    AddSearchProvider(): void;\\n    /** @deprecated */\\n    IsSearchProviderInstalled(): void;\\n}\\n\\ndeclare var External: {\\n    prototype: External;\\n    new(): External;\\n};\\n\\n/** Provides information about files and allows JavaScript in a web page to access their content. */\\ninterface File extends Blob {\\n    readonly lastModified: number;\\n    readonly name: string;\\n}\\n\\ndeclare var File: {\\n    prototype: File;\\n    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\\n};\\n\\n/** An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type=\"file\"> element. It\\'s also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */\\ninterface FileList {\\n    readonly length: number;\\n    item(index: number): File | null;\\n    [index: number]: File;\\n}\\n\\ndeclare var FileList: {\\n    prototype: FileList;\\n    new(): FileList;\\n};\\n\\ninterface FileReaderEventMap {\\n    \"abort\": ProgressEvent<FileReader>;\\n    \"error\": ProgressEvent<FileReader>;\\n    \"load\": ProgressEvent<FileReader>;\\n    \"loadend\": ProgressEvent<FileReader>;\\n    \"loadstart\": ProgressEvent<FileReader>;\\n    \"progress\": ProgressEvent<FileReader>;\\n}\\n\\n/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user\\'s computer, using File or Blob objects to specify the file or data to read. */\\ninterface FileReader extends EventTarget {\\n    readonly error: DOMException | null;\\n    onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    readonly readyState: number;\\n    readonly result: string | ArrayBuffer | null;\\n    abort(): void;\\n    readAsArrayBuffer(blob: Blob): void;\\n    readAsBinaryString(blob: Blob): void;\\n    readAsDataURL(blob: Blob): void;\\n    readAsText(blob: Blob, encoding?: string): void;\\n    readonly DONE: number;\\n    readonly EMPTY: number;\\n    readonly LOADING: number;\\n    addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var FileReader: {\\n    prototype: FileReader;\\n    new(): FileReader;\\n    readonly DONE: number;\\n    readonly EMPTY: number;\\n    readonly LOADING: number;\\n};\\n\\n/** Focus-related events like focus, blur, focusin, or focusout. */\\ninterface FocusEvent extends UIEvent {\\n    readonly relatedTarget: EventTarget | null;\\n}\\n\\ndeclare var FocusEvent: {\\n    prototype: FocusEvent;\\n    new(type: string, eventInitDict?: FocusEventInit): FocusEvent;\\n};\\n\\ninterface FocusNavigationEvent extends Event {\\n    readonly navigationReason: NavigationReason;\\n    readonly originHeight: number;\\n    readonly originLeft: number;\\n    readonly originTop: number;\\n    readonly originWidth: number;\\n    requestFocus(): void;\\n}\\n\\ndeclare var FocusNavigationEvent: {\\n    prototype: FocusNavigationEvent;\\n    new(type: string, eventInitDict?: FocusNavigationEventInit): FocusNavigationEvent;\\n};\\n\\n/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to \"multipart/form-data\". */\\ninterface FormData {\\n    append(name: string, value: string | Blob, fileName?: string): void;\\n    delete(name: string): void;\\n    get(name: string): FormDataEntryValue | null;\\n    getAll(name: string): FormDataEntryValue[];\\n    has(name: string): boolean;\\n    set(name: string, value: string | Blob, fileName?: string): void;\\n    forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\\n}\\n\\ndeclare var FormData: {\\n    prototype: FormData;\\n    new(form?: HTMLFormElement): FormData;\\n};\\n\\n/** A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels. */\\ninterface GainNode extends AudioNode {\\n    readonly gain: AudioParam;\\n}\\n\\ndeclare var GainNode: {\\n    prototype: GainNode;\\n    new(context: BaseAudioContext, options?: GainOptions): GainNode;\\n};\\n\\n/** This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. */\\ninterface Gamepad {\\n    readonly axes: ReadonlyArray<number>;\\n    readonly buttons: ReadonlyArray<GamepadButton>;\\n    readonly connected: boolean;\\n    readonly hand: GamepadHand;\\n    readonly hapticActuators: ReadonlyArray<GamepadHapticActuator>;\\n    readonly id: string;\\n    readonly index: number;\\n    readonly mapping: GamepadMappingType;\\n    readonly pose: GamepadPose | null;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var Gamepad: {\\n    prototype: Gamepad;\\n    new(): Gamepad;\\n};\\n\\n/** An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. */\\ninterface GamepadButton {\\n    readonly pressed: boolean;\\n    readonly touched: boolean;\\n    readonly value: number;\\n}\\n\\ndeclare var GamepadButton: {\\n    prototype: GamepadButton;\\n    new(): GamepadButton;\\n};\\n\\n/** This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. */\\ninterface GamepadEvent extends Event {\\n    readonly gamepad: Gamepad;\\n}\\n\\ndeclare var GamepadEvent: {\\n    prototype: GamepadEvent;\\n    new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;\\n};\\n\\n/** This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware. */\\ninterface GamepadHapticActuator {\\n    readonly type: GamepadHapticActuatorType;\\n    pulse(value: number, duration: number): Promise<boolean>;\\n}\\n\\ndeclare var GamepadHapticActuator: {\\n    prototype: GamepadHapticActuator;\\n    new(): GamepadHapticActuator;\\n};\\n\\n/** This Gamepad API interface represents the pose of a WebVR controller at a given timestamp (which includes orientation, position, velocity, and acceleration information.) */\\ninterface GamepadPose {\\n    readonly angularAcceleration: Float32Array | null;\\n    readonly angularVelocity: Float32Array | null;\\n    readonly hasOrientation: boolean;\\n    readonly hasPosition: boolean;\\n    readonly linearAcceleration: Float32Array | null;\\n    readonly linearVelocity: Float32Array | null;\\n    readonly orientation: Float32Array | null;\\n    readonly position: Float32Array | null;\\n}\\n\\ndeclare var GamepadPose: {\\n    prototype: GamepadPose;\\n    new(): GamepadPose;\\n};\\n\\ninterface GenericTransformStream {\\n    /**\\n     * Returns a readable stream whose chunks are strings resulting from running encoding\\'s decoder on the chunks written to writable.\\n     */\\n    readonly readable: ReadableStream;\\n    /**\\n     * Returns a writable stream which accepts BufferSource chunks and runs them through encoding\\'s decoder before making them available to readable.\\n     * \\n     * Typically this will be used via the pipeThrough() method on a ReadableStream source.\\n     * \\n     * ```\\n     * var decoder = new TextDecoderStream(encoding);\\n     * byteReadable\\n     *   .pipeThrough(decoder)\\n     *   .pipeTo(textWritable);\\n     * ```\\n     * \\n     * If the error mode is \"fatal\" and encoding\\'s decoder returns error, both readable and writable will be errored with a TypeError.\\n     */\\n    readonly writable: WritableStream;\\n}\\n\\n/** An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user\\'s location. */\\ninterface Geolocation {\\n    clearWatch(watchId: number): void;\\n    getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void;\\n    watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number;\\n}\\n\\ninterface GlobalEventHandlersEventMap {\\n    \"abort\": UIEvent;\\n    \"animationcancel\": AnimationEvent;\\n    \"animationend\": AnimationEvent;\\n    \"animationiteration\": AnimationEvent;\\n    \"animationstart\": AnimationEvent;\\n    \"auxclick\": MouseEvent;\\n    \"blur\": FocusEvent;\\n    \"cancel\": Event;\\n    \"canplay\": Event;\\n    \"canplaythrough\": Event;\\n    \"change\": Event;\\n    \"click\": MouseEvent;\\n    \"close\": Event;\\n    \"contextmenu\": MouseEvent;\\n    \"cuechange\": Event;\\n    \"dblclick\": MouseEvent;\\n    \"drag\": DragEvent;\\n    \"dragend\": DragEvent;\\n    \"dragenter\": DragEvent;\\n    \"dragexit\": Event;\\n    \"dragleave\": DragEvent;\\n    \"dragover\": DragEvent;\\n    \"dragstart\": DragEvent;\\n    \"drop\": DragEvent;\\n    \"durationchange\": Event;\\n    \"emptied\": Event;\\n    \"ended\": Event;\\n    \"error\": ErrorEvent;\\n    \"focus\": FocusEvent;\\n    \"focusin\": FocusEvent;\\n    \"focusout\": FocusEvent;\\n    \"gotpointercapture\": PointerEvent;\\n    \"input\": Event;\\n    \"invalid\": Event;\\n    \"keydown\": KeyboardEvent;\\n    \"keypress\": KeyboardEvent;\\n    \"keyup\": KeyboardEvent;\\n    \"load\": Event;\\n    \"loadeddata\": Event;\\n    \"loadedmetadata\": Event;\\n    \"loadend\": ProgressEvent;\\n    \"loadstart\": Event;\\n    \"lostpointercapture\": PointerEvent;\\n    \"mousedown\": MouseEvent;\\n    \"mouseenter\": MouseEvent;\\n    \"mouseleave\": MouseEvent;\\n    \"mousemove\": MouseEvent;\\n    \"mouseout\": MouseEvent;\\n    \"mouseover\": MouseEvent;\\n    \"mouseup\": MouseEvent;\\n    \"pause\": Event;\\n    \"play\": Event;\\n    \"playing\": Event;\\n    \"pointercancel\": PointerEvent;\\n    \"pointerdown\": PointerEvent;\\n    \"pointerenter\": PointerEvent;\\n    \"pointerleave\": PointerEvent;\\n    \"pointermove\": PointerEvent;\\n    \"pointerout\": PointerEvent;\\n    \"pointerover\": PointerEvent;\\n    \"pointerup\": PointerEvent;\\n    \"progress\": ProgressEvent;\\n    \"ratechange\": Event;\\n    \"reset\": Event;\\n    \"resize\": UIEvent;\\n    \"scroll\": Event;\\n    \"securitypolicyviolation\": SecurityPolicyViolationEvent;\\n    \"seeked\": Event;\\n    \"seeking\": Event;\\n    \"select\": Event;\\n    \"selectionchange\": Event;\\n    \"selectstart\": Event;\\n    \"stalled\": Event;\\n    \"submit\": Event;\\n    \"suspend\": Event;\\n    \"timeupdate\": Event;\\n    \"toggle\": Event;\\n    \"touchcancel\": TouchEvent;\\n    \"touchend\": TouchEvent;\\n    \"touchmove\": TouchEvent;\\n    \"touchstart\": TouchEvent;\\n    \"transitioncancel\": TransitionEvent;\\n    \"transitionend\": TransitionEvent;\\n    \"transitionrun\": TransitionEvent;\\n    \"transitionstart\": TransitionEvent;\\n    \"volumechange\": Event;\\n    \"waiting\": Event;\\n    \"wheel\": WheelEvent;\\n}\\n\\ninterface GlobalEventHandlers {\\n    /**\\n     * Fires when the user aborts the download.\\n     * @param ev The event.\\n     */\\n    onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\\n    onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the object loses the input focus.\\n     * @param ev The focus event.\\n     */\\n    onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\\n    oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when playback is possible, but would require further buffering.\\n     * @param ev The event.\\n     */\\n    oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the contents of the object or selection have changed.\\n     * @param ev The event.\\n     */\\n    onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user clicks the left mouse button on the object\\n     * @param ev The mouse event.\\n     */\\n    onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user clicks the right mouse button in the client area, opening the context menu.\\n     * @param ev The mouse event.\\n     */\\n    oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user double-clicks the object.\\n     * @param ev The mouse event.\\n     */\\n    ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires on the source object continuously during a drag operation.\\n     * @param ev The event.\\n     */\\n    ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the source object when the user releases the mouse at the close of a drag operation.\\n     * @param ev The event.\\n     */\\n    ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the target element when the user drags the object to a valid drop target.\\n     * @param ev The drag event.\\n     */\\n    ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    ondragexit: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\\n     * @param ev The drag event.\\n     */\\n    ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the target element continuously while the user drags the object over a valid drop target.\\n     * @param ev The event.\\n     */\\n    ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the source object when the user starts to drag a text selection or selected object.\\n     * @param ev The event.\\n     */\\n    ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Occurs when the duration attribute is updated.\\n     * @param ev The event.\\n     */\\n    ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the media element is reset to its initial state.\\n     * @param ev The event.\\n     */\\n    onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the end of playback is reached.\\n     * @param ev The event\\n     */\\n    onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when an error occurs during object loading.\\n     * @param ev The event.\\n     */\\n    onerror: OnErrorEventHandler;\\n    /**\\n     * Fires when the object receives focus.\\n     * @param ev The event.\\n     */\\n    onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\\n    ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user presses a key.\\n     * @param ev The keyboard event\\n     */\\n    onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires when the user presses an alphanumeric key.\\n     * @param ev The event.\\n     */\\n    onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires when the user releases a key.\\n     * @param ev The keyboard event\\n     */\\n    onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires immediately after the browser loads the object.\\n     * @param ev The event.\\n     */\\n    onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when media data is loaded at the current playback position.\\n     * @param ev The event.\\n     */\\n    onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the duration and dimensions of the media have been determined.\\n     * @param ev The event.\\n     */\\n    onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onloadend: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\\n    /**\\n     * Occurs when Internet Explorer begins looking for media data.\\n     * @param ev The event.\\n     */\\n    onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    /**\\n     * Fires when the user clicks the object with either mouse button.\\n     * @param ev The mouse event.\\n     */\\n    onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse over the object.\\n     * @param ev The mouse event.\\n     */\\n    onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse pointer outside the boundaries of the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse pointer into the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user releases a mouse button while the mouse is over the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Occurs when playback is paused.\\n     * @param ev The event.\\n     */\\n    onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the play method is requested.\\n     * @param ev The event.\\n     */\\n    onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the audio or video has started playing.\\n     * @param ev The event.\\n     */\\n    onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    /**\\n     * Occurs to indicate progress while downloading media data.\\n     * @param ev The event.\\n     */\\n    onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\\n    /**\\n     * Occurs when the playback rate is increased or decreased.\\n     * @param ev The event.\\n     */\\n    onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user resets a form.\\n     * @param ev The event.\\n     */\\n    onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\\n    /**\\n     * Fires when the user repositions the scroll box in the scroll bar on the object.\\n     * @param ev The event.\\n     */\\n    onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;\\n    /**\\n     * Occurs when the seek operation ends.\\n     * @param ev The event.\\n     */\\n    onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the current playback position is moved.\\n     * @param ev The event.\\n     */\\n    onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the current selection changes.\\n     * @param ev The event.\\n     */\\n    onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the download has stopped.\\n     * @param ev The event.\\n     */\\n    onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onsubmit: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs if the load operation has been intentionally halted.\\n     * @param ev The event.\\n     */\\n    onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs to indicate the current playback position.\\n     * @param ev The event.\\n     */\\n    ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    ontouchcancel: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchend: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchmove: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchstart: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    /**\\n     * Occurs when the volume is changed, or playback is muted or unmuted.\\n     * @param ev The event.\\n     */\\n    onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when playback stops because the next frame of a video resource is not available.\\n     * @param ev The event.\\n     */\\n    onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;\\n    addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface HTMLAllCollection {\\n    /**\\n     * Returns the number of elements in the collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the item with index index from the collection (determined by tree order).\\n     */\\n    item(nameOrIndex?: string): HTMLCollection | Element | null;\\n    /**\\n     * Returns the item with ID or name name from the collection.\\n     * \\n     * If there are multiple matching items, then an HTMLCollection object containing all those elements is returned.\\n     * \\n     * Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method; their name is given by the value of their name attribute.\\n     */\\n    namedItem(name: string): HTMLCollection | Element | null;\\n    [index: number]: Element;\\n}\\n\\ndeclare var HTMLAllCollection: {\\n    prototype: HTMLAllCollection;\\n    new(): HTMLAllCollection;\\n};\\n\\n/** Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */\\ninterface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    /**\\n     * Sets or retrieves the coordinates of the object.\\n     */\\n    /** @deprecated */\\n    coords: string;\\n    download: string;\\n    /**\\n     * Sets or retrieves the language code of the object.\\n     */\\n    hreflang: string;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    ping: string;\\n    referrerPolicy: string;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    /** @deprecated */\\n    rev: string;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    shape: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAnchorElement: {\\n    prototype: HTMLAnchorElement;\\n    new(): HTMLAnchorElement;\\n};\\n\\ninterface HTMLAppletElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    /** @deprecated */\\n    alt: string;\\n    /**\\n     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\\n     */\\n    /** @deprecated */\\n    archive: string;\\n    /** @deprecated */\\n    code: string;\\n    /**\\n     * Sets or retrieves the URL of the component.\\n     */\\n    /** @deprecated */\\n    codeBase: string;\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    /** @deprecated */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /** @deprecated */\\n    object: string;\\n    /** @deprecated */\\n    vspace: number;\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAppletElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAppletElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAppletElement: {\\n    prototype: HTMLAppletElement;\\n    new(): HTMLAppletElement;\\n};\\n\\n/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <area> elements. */\\ninterface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Sets or retrieves the coordinates of the object.\\n     */\\n    coords: string;\\n    download: string;\\n    /**\\n     * Sets or gets whether clicks in this region cause action.\\n     */\\n    /** @deprecated */\\n    noHref: boolean;\\n    ping: string;\\n    referrerPolicy: string;\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    shape: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAreaElement: {\\n    prototype: HTMLAreaElement;\\n    new(): HTMLAreaElement;\\n};\\n\\n/** Provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface. */\\ninterface HTMLAudioElement extends HTMLMediaElement {\\n    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAudioElement: {\\n    prototype: HTMLAudioElement;\\n    new(): HTMLAudioElement;\\n};\\n\\n/** A HTML line break element (<br>). It inherits from HTMLElement. */\\ninterface HTMLBRElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.\\n     */\\n    /** @deprecated */\\n    clear: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBRElement: {\\n    prototype: HTMLBRElement;\\n    new(): HTMLBRElement;\\n};\\n\\n/** Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface. */\\ninterface HTMLBaseElement extends HTMLElement {\\n    /**\\n     * Gets or sets the baseline URL on which relative links are based.\\n     */\\n    href: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBaseElement: {\\n    prototype: HTMLBaseElement;\\n    new(): HTMLBaseElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <basefont> elements. */\\ninterface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty {\\n    /**\\n     * Sets or retrieves the current typeface family.\\n     */\\n    /** @deprecated */\\n    face: string;\\n    /**\\n     * Sets or retrieves the font size of the object.\\n     */\\n    /** @deprecated */\\n    size: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBaseFontElement: {\\n    prototype: HTMLBaseFontElement;\\n    new(): HTMLBaseFontElement;\\n};\\n\\ninterface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\\n    \"orientationchange\": Event;\\n}\\n\\n/** Provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating <body> elements. */\\ninterface HTMLBodyElement extends HTMLElement, WindowEventHandlers {\\n    /** @deprecated */\\n    aLink: string;\\n    /** @deprecated */\\n    background: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    bgProperties: string;\\n    /** @deprecated */\\n    link: string;\\n    /** @deprecated */\\n    noWrap: boolean;\\n    /** @deprecated */\\n    onorientationchange: ((this: HTMLBodyElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    text: string;\\n    /** @deprecated */\\n    vLink: string;\\n    addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBodyElement: {\\n    prototype: HTMLBodyElement;\\n    new(): HTMLBodyElement;\\n};\\n\\n/** Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements. */\\ninterface HTMLButtonElement extends HTMLElement {\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Overrides the action attribute (where the data on a form is sent) on the parent form element.\\n     */\\n    formAction: string;\\n    /**\\n     * Used to override the encoding (formEnctype attribute) specified on the form element.\\n     */\\n    formEnctype: string;\\n    /**\\n     * Overrides the submit method attribute previously specified on a form element.\\n     */\\n    formMethod: string;\\n    /**\\n     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\\n     */\\n    formNoValidate: boolean;\\n    /**\\n     * Overrides the target attribute on a form element.\\n     */\\n    formTarget: string;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets the classification and default behavior of the button.\\n     */\\n    type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Sets or retrieves the default or selected value of the control.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLButtonElement: {\\n    prototype: HTMLButtonElement;\\n    new(): HTMLButtonElement;\\n};\\n\\n/** Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface. */\\ninterface HTMLCanvasElement extends HTMLElement {\\n    /**\\n     * Gets or sets the height of a canvas element on a document.\\n     */\\n    height: number;\\n    /**\\n     * Gets or sets the width of a canvas element on a document.\\n     */\\n    width: number;\\n    /**\\n     * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.\\n     * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext(\"2d\"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext(\"experimental-webgl\");\\n     */\\n    getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;\\n    getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;\\n    getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null;\\n    getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null;\\n    getContext(contextId: string, options?: any): RenderingContext | null;\\n    toBlob(callback: BlobCallback, type?: string, quality?: any): void;\\n    /**\\n     * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.\\n     * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.\\n     */\\n    toDataURL(type?: string, quality?: any): string;\\n    transferControlToOffscreen(): OffscreenCanvas;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLCanvasElement: {\\n    prototype: HTMLCanvasElement;\\n    new(): HTMLCanvasElement;\\n};\\n\\n/** A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. */\\ninterface HTMLCollectionBase {\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Retrieves an object from various collections.\\n     */\\n    item(index: number): Element | null;\\n    [index: number]: Element;\\n}\\n\\ninterface HTMLCollection extends HTMLCollectionBase {\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     */\\n    namedItem(name: string): Element | null;\\n}\\n\\ndeclare var HTMLCollection: {\\n    prototype: HTMLCollection;\\n    new(): HTMLCollection;\\n};\\n\\ninterface HTMLCollectionOf<T extends Element> extends HTMLCollectionBase {\\n    item(index: number): T | null;\\n    namedItem(name: string): T | null;\\n    [index: number]: T;\\n}\\n\\n/** Provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements. */\\ninterface HTMLDListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDListElement: {\\n    prototype: HTMLDListElement;\\n    new(): HTMLDListElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements. */\\ninterface HTMLDataElement extends HTMLElement {\\n    value: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDataElement: {\\n    prototype: HTMLDataElement;\\n    new(): HTMLDataElement;\\n};\\n\\n/** Provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content. */\\ninterface HTMLDataListElement extends HTMLElement {\\n    readonly options: HTMLCollectionOf<HTMLOptionElement>;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDataListElement: {\\n    prototype: HTMLDataListElement;\\n    new(): HTMLDataListElement;\\n};\\n\\ninterface HTMLDetailsElement extends HTMLElement {\\n    open: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDetailsElement: {\\n    prototype: HTMLDetailsElement;\\n    new(): HTMLDetailsElement;\\n};\\n\\ninterface HTMLDialogElement extends HTMLElement {\\n    open: boolean;\\n    returnValue: string;\\n    close(returnValue?: string): void;\\n    show(): void;\\n    showModal(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDialogElement: {\\n    prototype: HTMLDialogElement;\\n    new(): HTMLDialogElement;\\n};\\n\\ninterface HTMLDirectoryElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDirectoryElement: {\\n    prototype: HTMLDirectoryElement;\\n    new(): HTMLDirectoryElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements. */\\ninterface HTMLDivElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDivElement: {\\n    prototype: HTMLDivElement;\\n    new(): HTMLDivElement;\\n};\\n\\n/** The HTMLDocument property of Window objects is an alias that browsers expose for the Document interface object. */\\ninterface HTMLDocument extends Document {\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDocument: {\\n    prototype: HTMLDocument;\\n    new(): HTMLDocument;\\n};\\n\\ninterface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n}\\n\\n/** Any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it. */\\ninterface HTMLElement extends Element, DocumentAndElementEventHandlers, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {\\n    accessKey: string;\\n    readonly accessKeyLabel: string;\\n    autocapitalize: string;\\n    dir: string;\\n    draggable: boolean;\\n    hidden: boolean;\\n    innerText: string;\\n    lang: string;\\n    readonly offsetHeight: number;\\n    readonly offsetLeft: number;\\n    readonly offsetParent: Element | null;\\n    readonly offsetTop: number;\\n    readonly offsetWidth: number;\\n    spellcheck: boolean;\\n    title: string;\\n    translate: boolean;\\n    click(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLElement: {\\n    prototype: HTMLElement;\\n    new(): HTMLElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements. */\\ninterface HTMLEmbedElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    src: string;\\n    type: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    getSVGDocument(): Document | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLEmbedElement: {\\n    prototype: HTMLEmbedElement;\\n    new(): HTMLEmbedElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <fieldset> elements. */\\ninterface HTMLFieldSetElement extends HTMLElement {\\n    disabled: boolean;\\n    readonly elements: HTMLCollection;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    name: string;\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFieldSetElement: {\\n    prototype: HTMLFieldSetElement;\\n    new(): HTMLFieldSetElement;\\n};\\n\\n/** Implements the document object model (DOM) representation of the font element. The HTML Font Element <font> defines the font size, font face and color of text. */\\ninterface HTMLFontElement extends HTMLElement {\\n    /** @deprecated */\\n    color: string;\\n    /**\\n     * Sets or retrieves the current typeface family.\\n     */\\n    /** @deprecated */\\n    face: string;\\n    /** @deprecated */\\n    size: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFontElement: {\\n    prototype: HTMLFontElement;\\n    new(): HTMLFontElement;\\n};\\n\\n/** A collection of HTML form control elements.  */\\ninterface HTMLFormControlsCollection extends HTMLCollectionBase {\\n    /**\\n     * Returns the item with ID or name name from the collection.\\n     * \\n     * If there are multiple matching items, then a RadioNodeList object containing all those elements is returned.\\n     */\\n    namedItem(name: string): RadioNodeList | Element | null;\\n}\\n\\ndeclare var HTMLFormControlsCollection: {\\n    prototype: HTMLFormControlsCollection;\\n    new(): HTMLFormControlsCollection;\\n};\\n\\n/** A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. */\\ninterface HTMLFormElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.\\n     */\\n    acceptCharset: string;\\n    /**\\n     * Sets or retrieves the URL to which the form content is sent for processing.\\n     */\\n    action: string;\\n    /**\\n     * Specifies whether autocomplete is applied to an editable text field.\\n     */\\n    autocomplete: string;\\n    /**\\n     * Retrieves a collection, in source order, of all controls in a given form.\\n     */\\n    readonly elements: HTMLFormControlsCollection;\\n    /**\\n     * Sets or retrieves the MIME encoding for the form.\\n     */\\n    encoding: string;\\n    /**\\n     * Sets or retrieves the encoding type for the form.\\n     */\\n    enctype: string;\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Sets or retrieves how to send the form data to the server.\\n     */\\n    method: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Designates a form that is not validated when submitted.\\n     */\\n    noValidate: boolean;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Fires when the user resets a form.\\n     */\\n    reset(): void;\\n    /**\\n     * Fires when a FORM is about to be submitted.\\n     */\\n    submit(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: Element;\\n    [name: string]: any;\\n}\\n\\ndeclare var HTMLFormElement: {\\n    prototype: HTMLFormElement;\\n    new(): HTMLFormElement;\\n};\\n\\ninterface HTMLFrameElement extends HTMLElement {\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    /** @deprecated */\\n    readonly contentDocument: Document | null;\\n    /**\\n     * Retrieves the object of the specified.\\n     */\\n    /** @deprecated */\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves whether to display a border for the frame.\\n     */\\n    /** @deprecated */\\n    frameBorder: string;\\n    /**\\n     * Sets or retrieves a URI to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /**\\n     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginHeight: string;\\n    /**\\n     * Sets or retrieves the left and right margin widths before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginWidth: string;\\n    /**\\n     * Sets or retrieves the frame name.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * Sets or retrieves whether the user can resize the frame.\\n     */\\n    /** @deprecated */\\n    noResize: boolean;\\n    /**\\n     * Sets or retrieves whether the frame can be scrolled.\\n     */\\n    /** @deprecated */\\n    scrolling: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    /** @deprecated */\\n    src: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFrameElement: {\\n    prototype: HTMLFrameElement;\\n    new(): HTMLFrameElement;\\n};\\n\\ninterface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\\n}\\n\\n/** Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements. */\\ninterface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {\\n    /**\\n     * Sets or retrieves the frame widths of the object.\\n     */\\n    /** @deprecated */\\n    cols: string;\\n    /**\\n     * Sets or retrieves the frame heights of the object.\\n     */\\n    /** @deprecated */\\n    rows: string;\\n    addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFrameSetElement: {\\n    prototype: HTMLFrameSetElement;\\n    new(): HTMLFrameSetElement;\\n};\\n\\n/** Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements. */\\ninterface HTMLHRElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    color: string;\\n    /**\\n     * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.\\n     */\\n    /** @deprecated */\\n    noShade: boolean;\\n    /** @deprecated */\\n    size: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHRElement: {\\n    prototype: HTMLHRElement;\\n    new(): HTMLHRElement;\\n};\\n\\n/** Contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface. */\\ninterface HTMLHeadElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHeadElement: {\\n    prototype: HTMLHeadElement;\\n    new(): HTMLHeadElement;\\n};\\n\\n/** The different heading elements. It inherits methods and properties from the HTMLElement interface. */\\ninterface HTMLHeadingElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHeadingElement: {\\n    prototype: HTMLHeadingElement;\\n    new(): HTMLHeadingElement;\\n};\\n\\n/** Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface. */\\ninterface HTMLHtmlElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the DTD version that governs the current document.\\n     */\\n    /** @deprecated */\\n    version: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHtmlElement: {\\n    prototype: HTMLHtmlElement;\\n    new(): HTMLHtmlElement;\\n};\\n\\ninterface HTMLHyperlinkElementUtils {\\n    hash: string;\\n    host: string;\\n    hostname: string;\\n    href: string;\\n    readonly origin: string;\\n    password: string;\\n    pathname: string;\\n    port: string;\\n    protocol: string;\\n    search: string;\\n    username: string;\\n}\\n\\n/** Provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements. */\\ninterface HTMLIFrameElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    allow: string;\\n    allowFullscreen: boolean;\\n    allowPaymentRequest: boolean;\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    readonly contentDocument: Document | null;\\n    /**\\n     * Retrieves the object of the specified.\\n     */\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves whether to display a border for the frame.\\n     */\\n    /** @deprecated */\\n    frameBorder: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /**\\n     * Sets or retrieves a URI to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /**\\n     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginHeight: string;\\n    /**\\n     * Sets or retrieves the left and right margin widths before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginWidth: string;\\n    /**\\n     * Sets or retrieves the frame name.\\n     */\\n    name: string;\\n    referrerPolicy: ReferrerPolicy;\\n    readonly sandbox: DOMTokenList;\\n    /**\\n     * Sets or retrieves whether the frame can be scrolled.\\n     */\\n    /** @deprecated */\\n    scrolling: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    src: string;\\n    /**\\n     * Sets or retrives the content of the page that is to contain.\\n     */\\n    srcdoc: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    getSVGDocument(): Document | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLIFrameElement: {\\n    prototype: HTMLIFrameElement;\\n    new(): HTMLIFrameElement;\\n};\\n\\n/** Provides special properties and methods for manipulating <img> elements. */\\ninterface HTMLImageElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Specifies the properties of a border drawn around an object.\\n     */\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Retrieves whether the object is fully loaded.\\n     */\\n    readonly complete: boolean;\\n    crossOrigin: string | null;\\n    readonly currentSrc: string;\\n    decoding: \"async\" | \"sync\" | \"auto\";\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: number;\\n    /**\\n     * Sets or retrieves the width of the border to draw around the object.\\n     */\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves whether the image is a server-side image map.\\n     */\\n    isMap: boolean;\\n    /**\\n     * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /** @deprecated */\\n    lowsrc: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * The original height of the image resource before sizing.\\n     */\\n    readonly naturalHeight: number;\\n    /**\\n     * The original width of the image resource before sizing.\\n     */\\n    readonly naturalWidth: number;\\n    referrerPolicy: string;\\n    sizes: string;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcset: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    useMap: string;\\n    /**\\n     * Sets or retrieves the vertical margin for the object.\\n     */\\n    /** @deprecated */\\n    vspace: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: number;\\n    readonly x: number;\\n    readonly y: number;\\n    decode(): Promise<void>;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLImageElement: {\\n    prototype: HTMLImageElement;\\n    new(): HTMLImageElement;\\n};\\n\\n/** Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements. */\\ninterface HTMLInputElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a comma-separated list of content types.\\n     */\\n    accept: string;\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Specifies whether autocomplete is applied to an editable text field.\\n     */\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    /**\\n     * Sets or retrieves the state of the check box or radio button.\\n     */\\n    checked: boolean;\\n    /**\\n     * Sets or retrieves the state of the check box or radio button.\\n     */\\n    defaultChecked: boolean;\\n    /**\\n     * Sets or retrieves the initial contents of the object.\\n     */\\n    defaultValue: string;\\n    dirName: string;\\n    disabled: boolean;\\n    /**\\n     * Returns a FileList object on a file type input object.\\n     */\\n    files: FileList | null;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Overrides the action attribute (where the data on a form is sent) on the parent form element.\\n     */\\n    formAction: string;\\n    /**\\n     * Used to override the encoding (formEnctype attribute) specified on the form element.\\n     */\\n    formEnctype: string;\\n    /**\\n     * Overrides the submit method attribute previously specified on a form element.\\n     */\\n    formMethod: string;\\n    /**\\n     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\\n     */\\n    formNoValidate: boolean;\\n    /**\\n     * Overrides the target attribute on a form element.\\n     */\\n    formTarget: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: number;\\n    indeterminate: boolean;\\n    readonly labels: NodeListOf<HTMLLabelElement> | null;\\n    /**\\n     * Specifies the ID of a pre-defined datalist of options for an input element.\\n     */\\n    readonly list: HTMLElement | null;\\n    /**\\n     * Defines the maximum acceptable value for an input element with type=\"number\".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.\\n     */\\n    max: string;\\n    /**\\n     * Sets or retrieves the maximum number of characters that the user can enter in a text control.\\n     */\\n    maxLength: number;\\n    /**\\n     * Defines the minimum acceptable value for an input element with type=\"number\". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.\\n     */\\n    min: string;\\n    minLength: number;\\n    /**\\n     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\\n     */\\n    multiple: boolean;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets or sets a string containing a regular expression that the user\\'s input must match.\\n     */\\n    pattern: string;\\n    /**\\n     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\\n     */\\n    placeholder: string;\\n    readOnly: boolean;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    selectionDirection: string | null;\\n    /**\\n     * Gets or sets the end position or offset of a text selection.\\n     */\\n    selectionEnd: number | null;\\n    /**\\n     * Gets or sets the starting position or offset of a text selection.\\n     */\\n    selectionStart: number | null;\\n    size: number;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    /**\\n     * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.\\n     */\\n    step: string;\\n    /**\\n     * Returns the content type of the object.\\n     */\\n    type: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    /** @deprecated */\\n    useMap: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Returns the value of the data at the cursor\\'s current position.\\n     */\\n    value: string;\\n    /**\\n     * Returns a Date object representing the form control\\'s value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an \"InvalidStateError\" DOMException if the control isn\\'t date- or time-based.\\n     */\\n    valueAsDate: Date | null;\\n    /**\\n     * Returns the input field value as a number.\\n     */\\n    valueAsNumber: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: number;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Makes the selection equal to the current object.\\n     */\\n    select(): void;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    setRangeText(replacement: string): void;\\n    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\\n    /**\\n     * Sets the start and end positions of a selection in a text field.\\n     * @param start The offset into the text field for the start of the selection.\\n     * @param end The offset into the text field for the end of the selection.\\n     * @param direction The direction in which the selection is performed.\\n     */\\n    setSelectionRange(start: number, end: number, direction?: \"forward\" | \"backward\" | \"none\"): void;\\n    /**\\n     * Decrements a range input control\\'s value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control\\'s step value multiplied by the parameter\\'s value.\\n     * @param n Value to decrement the value by.\\n     */\\n    stepDown(n?: number): void;\\n    /**\\n     * Increments a range input control\\'s value by the value given by the Step attribute. If the optional parameter is used, will increment the input control\\'s value by that value.\\n     * @param n Value to increment the value by.\\n     */\\n    stepUp(n?: number): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLInputElement: {\\n    prototype: HTMLInputElement;\\n    new(): HTMLInputElement;\\n};\\n\\n/** Exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements. */\\ninterface HTMLLIElement extends HTMLElement {\\n    /** @deprecated */\\n    type: string;\\n    /**\\n     * Sets or retrieves the value of a list item.\\n     */\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLIElement: {\\n    prototype: HTMLLIElement;\\n    new(): HTMLLIElement;\\n};\\n\\n/** Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface. */\\ninterface HTMLLabelElement extends HTMLElement {\\n    readonly control: HTMLElement | null;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the object to which the given label object is assigned.\\n     */\\n    htmlFor: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLabelElement: {\\n    prototype: HTMLLabelElement;\\n    new(): HTMLLabelElement;\\n};\\n\\n/** The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface. */\\ninterface HTMLLegendElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLegendElement: {\\n    prototype: HTMLLegendElement;\\n    new(): HTMLLegendElement;\\n};\\n\\n/** Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface. */\\ninterface HTMLLinkElement extends HTMLElement, LinkStyle {\\n    as: string;\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    crossOrigin: string | null;\\n    disabled: boolean;\\n    /**\\n     * Sets or retrieves a destination URL or an anchor point.\\n     */\\n    href: string;\\n    /**\\n     * Sets or retrieves the language code of the object.\\n     */\\n    hreflang: string;\\n    imageSizes: string;\\n    imageSrcset: string;\\n    integrity: string;\\n    /**\\n     * Sets or retrieves the media type.\\n     */\\n    media: string;\\n    referrerPolicy: string;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    /** @deprecated */\\n    rev: string;\\n    readonly sizes: DOMTokenList;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    /** @deprecated */\\n    target: string;\\n    /**\\n     * Sets or retrieves the MIME type of the object.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLinkElement: {\\n    prototype: HTMLLinkElement;\\n    new(): HTMLLinkElement;\\n};\\n\\n/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements. */\\ninterface HTMLMapElement extends HTMLElement {\\n    /**\\n     * Retrieves a collection of the area objects defined for the given map object.\\n     */\\n    readonly areas: HTMLCollection;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMapElement: {\\n    prototype: HTMLMapElement;\\n    new(): HTMLMapElement;\\n};\\n\\ninterface HTMLMarqueeElementEventMap extends HTMLElementEventMap {\\n    \"bounce\": Event;\\n    \"finish\": Event;\\n    \"start\": Event;\\n}\\n\\n/** Provides methods to manipulate <marquee> elements. */\\ninterface HTMLMarqueeElement extends HTMLElement {\\n    /** @deprecated */\\n    behavior: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /** @deprecated */\\n    direction: string;\\n    /** @deprecated */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /** @deprecated */\\n    loop: number;\\n    /** @deprecated */\\n    onbounce: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onfinish: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onstart: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    scrollAmount: number;\\n    /** @deprecated */\\n    scrollDelay: number;\\n    /** @deprecated */\\n    trueSpeed: boolean;\\n    /** @deprecated */\\n    vspace: number;\\n    /** @deprecated */\\n    width: string;\\n    /** @deprecated */\\n    start(): void;\\n    /** @deprecated */\\n    stop(): void;\\n    addEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMarqueeElement: {\\n    prototype: HTMLMarqueeElement;\\n    new(): HTMLMarqueeElement;\\n};\\n\\ninterface HTMLMediaElementEventMap extends HTMLElementEventMap {\\n    \"encrypted\": MediaEncryptedEvent;\\n    \"msneedkey\": Event;\\n    \"waitingforkey\": Event;\\n}\\n\\n/** Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. */\\ninterface HTMLMediaElement extends HTMLElement {\\n    /**\\n     * Returns an AudioTrackList object with the audio tracks for a given video element.\\n     */\\n    readonly audioTracks: AudioTrackList;\\n    /**\\n     * Gets or sets a value that indicates whether to start playing the media automatically.\\n     */\\n    autoplay: boolean;\\n    /**\\n     * Gets a collection of buffered time ranges.\\n     */\\n    readonly buffered: TimeRanges;\\n    /**\\n     * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).\\n     */\\n    controls: boolean;\\n    crossOrigin: string | null;\\n    /**\\n     * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.\\n     */\\n    readonly currentSrc: string;\\n    /**\\n     * Gets or sets the current playback position, in seconds.\\n     */\\n    currentTime: number;\\n    defaultMuted: boolean;\\n    /**\\n     * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.\\n     */\\n    defaultPlaybackRate: number;\\n    /**\\n     * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.\\n     */\\n    readonly duration: number;\\n    /**\\n     * Gets information about whether the playback has ended or not.\\n     */\\n    readonly ended: boolean;\\n    /**\\n     * Returns an object representing the current error state of the audio or video element.\\n     */\\n    readonly error: MediaError | null;\\n    /**\\n     * Gets or sets a flag to specify whether playback should restart after it completes.\\n     */\\n    loop: boolean;\\n    readonly mediaKeys: MediaKeys | null;\\n    /**\\n     * Specifies the purpose of the audio or video media, such as background audio or alerts.\\n     */\\n    msAudioCategory: string;\\n    /**\\n     * Specifies the output device id that the audio will be sent to.\\n     */\\n    msAudioDeviceType: string;\\n    readonly msGraphicsTrustStatus: MSGraphicsTrust;\\n    /**\\n     * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.\\n     */\\n    /** @deprecated */\\n    readonly msKeys: MSMediaKeys;\\n    /**\\n     * Gets or sets whether the DLNA PlayTo device is available.\\n     */\\n    msPlayToDisabled: boolean;\\n    /**\\n     * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.\\n     */\\n    msPlayToPreferredSourceUri: string;\\n    /**\\n     * Gets or sets the primary DLNA PlayTo device.\\n     */\\n    msPlayToPrimary: boolean;\\n    /**\\n     * Gets the source associated with the media element for use by the PlayToManager.\\n     */\\n    readonly msPlayToSource: any;\\n    /**\\n     * Specifies whether or not to enable low-latency playback on the media element.\\n     */\\n    msRealTime: boolean;\\n    /**\\n     * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.\\n     */\\n    muted: boolean;\\n    /**\\n     * Gets the current network activity for the element.\\n     */\\n    readonly networkState: number;\\n    onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;\\n    /** @deprecated */\\n    onmsneedkey: ((this: HTMLMediaElement, ev: Event) => any) | null;\\n    onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;\\n    /**\\n     * Gets a flag that specifies whether playback is paused.\\n     */\\n    readonly paused: boolean;\\n    /**\\n     * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.\\n     */\\n    playbackRate: number;\\n    /**\\n     * Gets TimeRanges for the current media resource that has been played.\\n     */\\n    readonly played: TimeRanges;\\n    /**\\n     * Gets or sets the current playback position, in seconds.\\n     */\\n    preload: string;\\n    readonly readyState: number;\\n    /**\\n     * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.\\n     */\\n    readonly seekable: TimeRanges;\\n    /**\\n     * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.\\n     */\\n    readonly seeking: boolean;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcObject: MediaStream | MediaSource | Blob | null;\\n    readonly textTracks: TextTrackList;\\n    readonly videoTracks: VideoTrackList;\\n    /**\\n     * Gets or sets the volume level for audio portions of the media element.\\n     */\\n    volume: number;\\n    addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;\\n    /**\\n     * Returns a string that specifies whether the client can play a given media resource type.\\n     */\\n    canPlayType(type: string): CanPlayTypeResult;\\n    /**\\n     * Resets the audio or video object and loads a new media resource.\\n     */\\n    load(): void;\\n    /**\\n     * Clears all effects from the media pipeline.\\n     */\\n    msClearEffects(): void;\\n    msGetAsCastingSource(): any;\\n    /**\\n     * Inserts the specified audio effect into media pipeline.\\n     */\\n    msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\\n    /** @deprecated */\\n    msSetMediaKeys(mediaKeys: MSMediaKeys): void;\\n    /**\\n     * Specifies the media protection manager for a given media pipeline.\\n     */\\n    msSetMediaProtectionManager(mediaProtectionManager?: any): void;\\n    /**\\n     * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.\\n     */\\n    pause(): void;\\n    /**\\n     * Loads and starts playback of a media resource.\\n     */\\n    play(): Promise<void>;\\n    setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;\\n    readonly HAVE_CURRENT_DATA: number;\\n    readonly HAVE_ENOUGH_DATA: number;\\n    readonly HAVE_FUTURE_DATA: number;\\n    readonly HAVE_METADATA: number;\\n    readonly HAVE_NOTHING: number;\\n    readonly NETWORK_EMPTY: number;\\n    readonly NETWORK_IDLE: number;\\n    readonly NETWORK_LOADING: number;\\n    readonly NETWORK_NO_SOURCE: number;\\n    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMediaElement: {\\n    prototype: HTMLMediaElement;\\n    new(): HTMLMediaElement;\\n    readonly HAVE_CURRENT_DATA: number;\\n    readonly HAVE_ENOUGH_DATA: number;\\n    readonly HAVE_FUTURE_DATA: number;\\n    readonly HAVE_METADATA: number;\\n    readonly HAVE_NOTHING: number;\\n    readonly NETWORK_EMPTY: number;\\n    readonly NETWORK_IDLE: number;\\n    readonly NETWORK_LOADING: number;\\n    readonly NETWORK_NO_SOURCE: number;\\n};\\n\\ninterface HTMLMenuElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMenuElement: {\\n    prototype: HTMLMenuElement;\\n    new(): HTMLMenuElement;\\n};\\n\\n/** Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface. */\\ninterface HTMLMetaElement extends HTMLElement {\\n    /**\\n     * Gets or sets meta-information to associate with httpEquiv or name.\\n     */\\n    content: string;\\n    /**\\n     * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.\\n     */\\n    httpEquiv: string;\\n    /**\\n     * Sets or retrieves the value specified in the content attribute of the meta object.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.\\n     */\\n    /** @deprecated */\\n    scheme: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMetaElement: {\\n    prototype: HTMLMetaElement;\\n    new(): HTMLMetaElement;\\n};\\n\\n/** The HTML <meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <meter> elements. */\\ninterface HTMLMeterElement extends HTMLElement {\\n    high: number;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    low: number;\\n    max: number;\\n    min: number;\\n    optimum: number;\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMeterElement: {\\n    prototype: HTMLMeterElement;\\n    new(): HTMLMeterElement;\\n};\\n\\n/** Provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>. */\\ninterface HTMLModElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves reference information about the object.\\n     */\\n    cite: string;\\n    /**\\n     * Sets or retrieves the date and time of a modification to the object.\\n     */\\n    dateTime: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLModElement: {\\n    prototype: HTMLModElement;\\n    new(): HTMLModElement;\\n};\\n\\n/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements. */\\ninterface HTMLOListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    reversed: boolean;\\n    /**\\n     * The starting number.\\n     */\\n    start: number;\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOListElement: {\\n    prototype: HTMLOListElement;\\n    new(): HTMLOListElement;\\n};\\n\\n/** Provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <object> element, representing external resources. */\\ninterface HTMLObjectElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\\n     */\\n    /** @deprecated */\\n    archive: string;\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Sets or retrieves the URL of the file containing the compiled Java class.\\n     */\\n    /** @deprecated */\\n    code: string;\\n    /**\\n     * Sets or retrieves the URL of the component.\\n     */\\n    /** @deprecated */\\n    codeBase: string;\\n    /**\\n     * Sets or retrieves the Internet media type for the code associated with the object.\\n     */\\n    /** @deprecated */\\n    codeType: string;\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    readonly contentDocument: Document | null;\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves the URL that references the data of the object.\\n     */\\n    data: string;\\n    /** @deprecated */\\n    declare: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves a message to be displayed while an object is loading.\\n     */\\n    /** @deprecated */\\n    standby: string;\\n    /**\\n     * Sets or retrieves the MIME type of the object.\\n     */\\n    type: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    useMap: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /** @deprecated */\\n    vspace: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    getSVGDocument(): Document | null;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLObjectElement: {\\n    prototype: HTMLObjectElement;\\n    new(): HTMLObjectElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements. */\\ninterface HTMLOptGroupElement extends HTMLElement {\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves a value that you can use to implement your own label functionality for the object.\\n     */\\n    label: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOptGroupElement: {\\n    prototype: HTMLOptGroupElement;\\n    new(): HTMLOptGroupElement;\\n};\\n\\n/** <option> elements and inherits all classes and methods of the HTMLElement interface. */\\ninterface HTMLOptionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the status of an option.\\n     */\\n    defaultSelected: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the ordinal position of an option in a list box.\\n     */\\n    readonly index: number;\\n    /**\\n     * Sets or retrieves a value that you can use to implement your own label functionality for the object.\\n     */\\n    label: string;\\n    /**\\n     * Sets or retrieves whether the option in the list box is the default item.\\n     */\\n    selected: boolean;\\n    /**\\n     * Sets or retrieves the text string specified by the option tag.\\n     */\\n    text: string;\\n    /**\\n     * Sets or retrieves the value which is returned to the server when the form control is submitted.\\n     */\\n    value: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOptionElement: {\\n    prototype: HTMLOptionElement;\\n    new(): HTMLOptionElement;\\n};\\n\\n/** HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the \"options\" property of select. */\\ninterface HTMLOptionsCollection extends HTMLCollectionOf<HTMLOptionElement> {\\n    /**\\n     * Returns the number of elements in the collection.\\n     * \\n     * When set to a smaller number, truncates the number of option elements in the corresponding container.\\n     * \\n     * When set to a greater number, adds new blank option elements to that container.\\n     */\\n    length: number;\\n    /**\\n     * Returns the index of the first selected item, if any, or −1 if there is no selected item.\\n     * \\n     * Can be set, to change the selection.\\n     */\\n    selectedIndex: number;\\n    /**\\n     * Inserts element before the node given by before.\\n     * \\n     * The before argument can be a number, in which case element is inserted before the item with that number, or an element from the collection, in which case element is inserted before that element.\\n     * \\n     * If before is omitted, null, or a number out of range, then element will be added at the end of the list.\\n     * \\n     * This method will throw a \"HierarchyRequestError\" DOMException if element is an ancestor of the element into which it is to be inserted.\\n     */\\n    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\\n    /**\\n     * Removes the item with index index from the collection.\\n     */\\n    remove(index: number): void;\\n}\\n\\ndeclare var HTMLOptionsCollection: {\\n    prototype: HTMLOptionsCollection;\\n    new(): HTMLOptionsCollection;\\n};\\n\\ninterface HTMLOrSVGElement {\\n    readonly dataset: DOMStringMap;\\n    nonce?: string;\\n    tabIndex: number;\\n    blur(): void;\\n    focus(options?: FocusOptions): void;\\n}\\n\\n/** Provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements. */\\ninterface HTMLOutputElement extends HTMLElement {\\n    defaultValue: string;\\n    readonly form: HTMLFormElement | null;\\n    readonly htmlFor: DOMTokenList;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    name: string;\\n    readonly type: string;\\n    readonly validationMessage: string;\\n    readonly validity: ValidityState;\\n    value: string;\\n    readonly willValidate: boolean;\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOutputElement: {\\n    prototype: HTMLOutputElement;\\n    new(): HTMLOutputElement;\\n};\\n\\n/** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements. */\\ninterface HTMLParagraphElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLParagraphElement: {\\n    prototype: HTMLParagraphElement;\\n    new(): HTMLParagraphElement;\\n};\\n\\n/** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element. */\\ninterface HTMLParamElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the name of an input parameter for an element.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves the content type of the resource designated by the value attribute.\\n     */\\n    /** @deprecated */\\n    type: string;\\n    /**\\n     * Sets or retrieves the value of an input parameter for an element.\\n     */\\n    value: string;\\n    /**\\n     * Sets or retrieves the data type of the value attribute.\\n     */\\n    /** @deprecated */\\n    valueType: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLParamElement: {\\n    prototype: HTMLParamElement;\\n    new(): HTMLParamElement;\\n};\\n\\n/** A <picture> HTML element. It doesn\\'t implement specific properties or methods. */\\ninterface HTMLPictureElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLPictureElement: {\\n    prototype: HTMLPictureElement;\\n    new(): HTMLPictureElement;\\n};\\n\\n/** Exposes specific properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating a block of preformatted text (<pre>). */\\ninterface HTMLPreElement extends HTMLElement {\\n    /**\\n     * Sets or gets a value that you can use to implement your own width functionality for the object.\\n     */\\n    /** @deprecated */\\n    width: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLPreElement: {\\n    prototype: HTMLPreElement;\\n    new(): HTMLPreElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements. */\\ninterface HTMLProgressElement extends HTMLElement {\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Defines the maximum, or \"done\" value for a progress element.\\n     */\\n    max: number;\\n    /**\\n     * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).\\n     */\\n    readonly position: number;\\n    /**\\n     * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.\\n     */\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLProgressElement: {\\n    prototype: HTMLProgressElement;\\n    new(): HTMLProgressElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element. */\\ninterface HTMLQuoteElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves reference information about the object.\\n     */\\n    cite: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLQuoteElement: {\\n    prototype: HTMLQuoteElement;\\n    new(): HTMLQuoteElement;\\n};\\n\\n/** HTML <script> elements expose the HTMLScriptElement interface, which provides special properties and methods for manipulating the behavior and execution of <script> elements (beyond the inherited HTMLElement interface). */\\ninterface HTMLScriptElement extends HTMLElement {\\n    async: boolean;\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    crossOrigin: string | null;\\n    /**\\n     * Sets or retrieves the status of the script.\\n     */\\n    defer: boolean;\\n    /**\\n     * Sets or retrieves the event for which the script is written.\\n     */\\n    /** @deprecated */\\n    event: string;\\n    /**\\n     * Sets or retrieves the object that is bound to the event script.\\n     */\\n    /** @deprecated */\\n    htmlFor: string;\\n    integrity: string;\\n    noModule: boolean;\\n    referrerPolicy: string;\\n    /**\\n     * Retrieves the URL to an external file that contains the source code or data.\\n     */\\n    src: string;\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    /**\\n     * Sets or retrieves the MIME type for the associated scripting engine.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLScriptElement: {\\n    prototype: HTMLScriptElement;\\n    new(): HTMLScriptElement;\\n};\\n\\n/** A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface. */\\ninterface HTMLSelectElement extends HTMLElement {\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    length: number;\\n    /**\\n     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\\n     */\\n    multiple: boolean;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    readonly options: HTMLOptionsCollection;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    /**\\n     * Sets or retrieves the index of the selected option in a select object.\\n     */\\n    selectedIndex: number;\\n    readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;\\n    /**\\n     * Sets or retrieves the number of rows in the list box.\\n     */\\n    size: number;\\n    /**\\n     * Retrieves the type of select control based on the value of the MULTIPLE attribute.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Sets or retrieves the value which is returned to the server when the form control is submitted.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Adds an element to the areas, controlRange, or options collection.\\n     * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.\\n     * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.\\n     */\\n    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.\\n     * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.\\n     */\\n    item(index: number): Element | null;\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.\\n     */\\n    namedItem(name: string): HTMLOptionElement | null;\\n    /**\\n     * Removes an element from the collection.\\n     * @param index Number that specifies the zero-based index of the element to remove from the collection.\\n     */\\n    remove(): void;\\n    remove(index: number): void;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [name: number]: HTMLOptionElement | HTMLOptGroupElement;\\n}\\n\\ndeclare var HTMLSelectElement: {\\n    prototype: HTMLSelectElement;\\n    new(): HTMLSelectElement;\\n};\\n\\ninterface HTMLSlotElement extends HTMLElement {\\n    name: string;\\n    assignedElements(options?: AssignedNodesOptions): Element[];\\n    assignedNodes(options?: AssignedNodesOptions): Node[];\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSlotElement: {\\n    prototype: HTMLSlotElement;\\n    new(): HTMLSlotElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements. */\\ninterface HTMLSourceElement extends HTMLElement {\\n    /**\\n     * Gets or sets the intended media type of the media source.\\n     */\\n    media: string;\\n    sizes: string;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcset: string;\\n    /**\\n     * Gets or sets the MIME type of a media resource.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSourceElement: {\\n    prototype: HTMLSourceElement;\\n    new(): HTMLSourceElement;\\n};\\n\\n/** A <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */\\ninterface HTMLSpanElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSpanElement: {\\n    prototype: HTMLSpanElement;\\n    new(): HTMLSpanElement;\\n};\\n\\n/** A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle. */\\ninterface HTMLStyleElement extends HTMLElement, LinkStyle {\\n    /**\\n     * Sets or retrieves the media type.\\n     */\\n    media: string;\\n    /**\\n     * Retrieves the CSS language in which the style sheet is written.\\n     */\\n    /** @deprecated */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLStyleElement: {\\n    prototype: HTMLStyleElement;\\n    new(): HTMLStyleElement;\\n};\\n\\n/** Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements. */\\ninterface HTMLTableCaptionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the alignment of the caption or legend.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableCaptionElement: {\\n    prototype: HTMLTableCaptionElement;\\n    new(): HTMLTableCaptionElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document. */\\ninterface HTMLTableCellElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves abbreviated text for the object.\\n     */\\n    abbr: string;\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.\\n     */\\n    /** @deprecated */\\n    axis: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Retrieves the position of the object in the cells collection of a row.\\n     */\\n    readonly cellIndex: number;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number columns in the table that the object should span.\\n     */\\n    colSpan: number;\\n    /**\\n     * Sets or retrieves a list of header cells that provide information for the object.\\n     */\\n    headers: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    /** @deprecated */\\n    height: string;\\n    /**\\n     * Sets or retrieves whether the browser automatically performs wordwrap.\\n     */\\n    /** @deprecated */\\n    noWrap: boolean;\\n    /**\\n     * Sets or retrieves how many rows in a table the cell should span.\\n     */\\n    rowSpan: number;\\n    /**\\n     * Sets or retrieves the group of cells in a table to which the object\\'s information applies.\\n     */\\n    scope: string;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableCellElement: {\\n    prototype: HTMLTableCellElement;\\n    new(): HTMLTableCellElement;\\n};\\n\\n/** Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements. */\\ninterface HTMLTableColElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the alignment of the object relative to the display or table.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number of columns in the group.\\n     */\\n    span: number;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableColElement: {\\n    prototype: HTMLTableColElement;\\n    new(): HTMLTableColElement;\\n};\\n\\ninterface HTMLTableDataCellElement extends HTMLTableCellElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableDataCellElement: {\\n    prototype: HTMLTableDataCellElement;\\n    new(): HTMLTableDataCellElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document. */\\ninterface HTMLTableElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Sets or retrieves the width of the border to draw around the object.\\n     */\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Retrieves the caption object of a table.\\n     */\\n    caption: HTMLTableCaptionElement | null;\\n    /**\\n     * Sets or retrieves the amount of space between the border of the cell and the content of the cell.\\n     */\\n    /** @deprecated */\\n    cellPadding: string;\\n    /**\\n     * Sets or retrieves the amount of space between cells in a table.\\n     */\\n    /** @deprecated */\\n    cellSpacing: string;\\n    /**\\n     * Sets or retrieves the way the border frame around the table is displayed.\\n     */\\n    /** @deprecated */\\n    frame: string;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\\n    /**\\n     * Sets or retrieves which dividing lines (inner borders) are displayed.\\n     */\\n    /** @deprecated */\\n    rules: string;\\n    /**\\n     * Sets or retrieves a description and/or structure of the object.\\n     */\\n    /** @deprecated */\\n    summary: string;\\n    /**\\n     * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.\\n     */\\n    readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;\\n    /**\\n     * Retrieves the tFoot object of the table.\\n     */\\n    tFoot: HTMLTableSectionElement | null;\\n    /**\\n     * Retrieves the tHead object of the table.\\n     */\\n    tHead: HTMLTableSectionElement | null;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    /**\\n     * Creates an empty caption element in the table.\\n     */\\n    createCaption(): HTMLTableCaptionElement;\\n    /**\\n     * Creates an empty tBody element in the table.\\n     */\\n    createTBody(): HTMLTableSectionElement;\\n    /**\\n     * Creates an empty tFoot element in the table.\\n     */\\n    createTFoot(): HTMLTableSectionElement;\\n    /**\\n     * Returns the tHead element object if successful, or null otherwise.\\n     */\\n    createTHead(): HTMLTableSectionElement;\\n    /**\\n     * Deletes the caption element and its contents from the table.\\n     */\\n    deleteCaption(): void;\\n    /**\\n     * Removes the specified row (tr) from the element and from the rows collection.\\n     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\\n     */\\n    deleteRow(index: number): void;\\n    /**\\n     * Deletes the tFoot element and its contents from the table.\\n     */\\n    deleteTFoot(): void;\\n    /**\\n     * Deletes the tHead element and its contents from the table.\\n     */\\n    deleteTHead(): void;\\n    /**\\n     * Creates a new row (tr) in the table, and adds the row to the rows collection.\\n     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\\n     */\\n    insertRow(index?: number): HTMLTableRowElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableElement: {\\n    prototype: HTMLTableElement;\\n    new(): HTMLTableElement;\\n};\\n\\ninterface HTMLTableHeaderCellElement extends HTMLTableCellElement {\\n    scope: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableHeaderCellElement: {\\n    prototype: HTMLTableHeaderCellElement;\\n    new(): HTMLTableHeaderCellElement;\\n};\\n\\n/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table. */\\ninterface HTMLTableRowElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Retrieves a collection of all cells in the table row.\\n     */\\n    readonly cells: HTMLCollectionOf<HTMLTableDataCellElement | HTMLTableHeaderCellElement>;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Retrieves the position of the object in the rows collection for the table.\\n     */\\n    readonly rowIndex: number;\\n    /**\\n     * Retrieves the position of the object in the collection.\\n     */\\n    readonly sectionRowIndex: number;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Removes the specified cell from the table row, as well as from the cells collection.\\n     * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.\\n     */\\n    deleteCell(index: number): void;\\n    /**\\n     * Creates a new cell in the table row, and adds the cell to the cells collection.\\n     * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.\\n     */\\n    insertCell(index?: number): HTMLTableDataCellElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableRowElement: {\\n    prototype: HTMLTableRowElement;\\n    new(): HTMLTableRowElement;\\n};\\n\\n/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table. */\\ninterface HTMLTableSectionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Removes the specified row (tr) from the element and from the rows collection.\\n     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\\n     */\\n    deleteRow(index: number): void;\\n    /**\\n     * Creates a new row (tr) in the table, and adds the row to the rows collection.\\n     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\\n     */\\n    insertRow(index?: number): HTMLTableRowElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableSectionElement: {\\n    prototype: HTMLTableSectionElement;\\n    new(): HTMLTableSectionElement;\\n};\\n\\n/** Enables access to the contents of an HTML <template> element. */\\ninterface HTMLTemplateElement extends HTMLElement {\\n    readonly content: DocumentFragment;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTemplateElement: {\\n    prototype: HTMLTemplateElement;\\n    new(): HTMLTemplateElement;\\n};\\n\\n/** Provides special properties and methods for manipulating the layout and presentation of <textarea> elements. */\\ninterface HTMLTextAreaElement extends HTMLElement {\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    cols: number;\\n    /**\\n     * Sets or retrieves the initial contents of the object.\\n     */\\n    defaultValue: string;\\n    dirName: string;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the maximum number of characters that the user can enter in a text control.\\n     */\\n    maxLength: number;\\n    minLength: number;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\\n     */\\n    placeholder: string;\\n    /**\\n     * Sets or retrieves the value indicated whether the content of the object is read-only.\\n     */\\n    readOnly: boolean;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    rows: number;\\n    selectionDirection: string;\\n    /**\\n     * Gets or sets the end position or offset of a text selection.\\n     */\\n    selectionEnd: number;\\n    /**\\n     * Gets or sets the starting position or offset of a text selection.\\n     */\\n    selectionStart: number;\\n    readonly textLength: number;\\n    /**\\n     * Retrieves the type of control.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Retrieves or sets the text in the entry field of the textArea element.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Sets or retrieves how to handle wordwrapping in the object.\\n     */\\n    wrap: string;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Highlights the input area of a form element.\\n     */\\n    select(): void;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    setRangeText(replacement: string): void;\\n    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\\n    /**\\n     * Sets the start and end positions of a selection in a text field.\\n     * @param start The offset into the text field for the start of the selection.\\n     * @param end The offset into the text field for the end of the selection.\\n     * @param direction The direction in which the selection is performed.\\n     */\\n    setSelectionRange(start: number, end: number, direction?: \"forward\" | \"backward\" | \"none\"): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTextAreaElement: {\\n    prototype: HTMLTextAreaElement;\\n    new(): HTMLTextAreaElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements. */\\ninterface HTMLTimeElement extends HTMLElement {\\n    dateTime: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTimeElement: {\\n    prototype: HTMLTimeElement;\\n    new(): HTMLTimeElement;\\n};\\n\\n/** Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface. */\\ninterface HTMLTitleElement extends HTMLElement {\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTitleElement: {\\n    prototype: HTMLTitleElement;\\n    new(): HTMLTitleElement;\\n};\\n\\n/** The HTMLTrackElement */\\ninterface HTMLTrackElement extends HTMLElement {\\n    default: boolean;\\n    kind: string;\\n    label: string;\\n    readonly readyState: number;\\n    src: string;\\n    srclang: string;\\n    readonly track: TextTrack;\\n    readonly ERROR: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTrackElement: {\\n    prototype: HTMLTrackElement;\\n    new(): HTMLTrackElement;\\n    readonly ERROR: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n};\\n\\n/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements. */\\ninterface HTMLUListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    /** @deprecated */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLUListElement: {\\n    prototype: HTMLUListElement;\\n    new(): HTMLUListElement;\\n};\\n\\n/** An invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */\\ninterface HTMLUnknownElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLUnknownElement: {\\n    prototype: HTMLUnknownElement;\\n    new(): HTMLUnknownElement;\\n};\\n\\ninterface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {\\n    \"MSVideoFormatChanged\": Event;\\n    \"MSVideoFrameStepCompleted\": Event;\\n    \"MSVideoOptimalLayoutChanged\": Event;\\n}\\n\\n/** Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement. */\\ninterface HTMLVideoElement extends HTMLMediaElement {\\n    /**\\n     * Gets or sets the height of the video element.\\n     */\\n    height: number;\\n    msHorizontalMirror: boolean;\\n    readonly msIsLayoutOptimalForPlayback: boolean;\\n    readonly msIsStereo3D: boolean;\\n    msStereo3DPackingMode: string;\\n    msStereo3DRenderMode: string;\\n    msZoom: boolean;\\n    onMSVideoFormatChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    onMSVideoFrameStepCompleted: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    onMSVideoOptimalLayoutChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    /**\\n     * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.\\n     */\\n    poster: string;\\n    /**\\n     * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.\\n     */\\n    readonly videoHeight: number;\\n    /**\\n     * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.\\n     */\\n    readonly videoWidth: number;\\n    readonly webkitDisplayingFullscreen: boolean;\\n    readonly webkitSupportsFullscreen: boolean;\\n    /**\\n     * Gets or sets the width of the video element.\\n     */\\n    width: number;\\n    getVideoPlaybackQuality(): VideoPlaybackQuality;\\n    msFrameStep(forward: boolean): void;\\n    msInsertVideoEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\\n    msSetVideoRectangle(left: number, top: number, right: number, bottom: number): void;\\n    webkitEnterFullScreen(): void;\\n    webkitEnterFullscreen(): void;\\n    webkitExitFullScreen(): void;\\n    webkitExitFullscreen(): void;\\n    addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLVideoElement: {\\n    prototype: HTMLVideoElement;\\n    new(): HTMLVideoElement;\\n};\\n\\n/** Events that fire when the fragment identifier of the URL has changed. */\\ninterface HashChangeEvent extends Event {\\n    readonly newURL: string;\\n    readonly oldURL: string;\\n}\\n\\ndeclare var HashChangeEvent: {\\n    prototype: HashChangeEvent;\\n    new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;\\n};\\n\\n/** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */\\ninterface Headers {\\n    append(name: string, value: string): void;\\n    delete(name: string): void;\\n    get(name: string): string | null;\\n    has(name: string): boolean;\\n    set(name: string, value: string): void;\\n    forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\\n}\\n\\ndeclare var Headers: {\\n    prototype: Headers;\\n    new(init?: HeadersInit): Headers;\\n};\\n\\n/** Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in. */\\ninterface History {\\n    readonly length: number;\\n    scrollRestoration: ScrollRestoration;\\n    readonly state: any;\\n    back(): void;\\n    forward(): void;\\n    go(delta?: number): void;\\n    pushState(data: any, title: string, url?: string | null): void;\\n    replaceState(data: any, title: string, url?: string | null): void;\\n}\\n\\ndeclare var History: {\\n    prototype: History;\\n    new(): History;\\n};\\n\\ninterface HkdfCtrParams extends Algorithm {\\n    context: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    hash: string | Algorithm;\\n    label: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface IDBArrayKey extends Array<IDBValidKey> {\\n}\\n\\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. */\\ninterface IDBCursor {\\n    /**\\n     * Returns the direction (\"next\", \"nextunique\", \"prev\" or \"prevunique\") of the cursor.\\n     */\\n    readonly direction: IDBCursorDirection;\\n    /**\\n     * Returns the key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished.\\n     */\\n    readonly key: IDBValidKey;\\n    /**\\n     * Returns the effective key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished.\\n     */\\n    readonly primaryKey: IDBValidKey;\\n    /**\\n     * Returns the IDBObjectStore or IDBIndex the cursor was opened from.\\n     */\\n    readonly source: IDBObjectStore | IDBIndex;\\n    /**\\n     * Advances the cursor through the next count records in range.\\n     */\\n    advance(count: number): void;\\n    /**\\n     * Advances the cursor to the next record in range.\\n     */\\n    continue(key?: IDBValidKey): void;\\n    /**\\n     * Advances the cursor to the next record in range matching or after key and primaryKey. Throws an \"InvalidAccessError\" DOMException if the source is not an index.\\n     */\\n    continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\\n    /**\\n     * Delete the record pointed at by the cursor with a new value.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    delete(): IDBRequest<undefined>;\\n    /**\\n     * Updated the record pointed at by the cursor with a new value.\\n     * \\n     * Throws a \"DataError\" DOMException if the effective object store uses in-line keys and the key would have changed.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    update(value: any): IDBRequest<IDBValidKey>;\\n}\\n\\ndeclare var IDBCursor: {\\n    prototype: IDBCursor;\\n    new(): IDBCursor;\\n};\\n\\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property. */\\ninterface IDBCursorWithValue extends IDBCursor {\\n    /**\\n     * Returns the cursor\\'s current value.\\n     */\\n    readonly value: any;\\n}\\n\\ndeclare var IDBCursorWithValue: {\\n    prototype: IDBCursorWithValue;\\n    new(): IDBCursorWithValue;\\n};\\n\\ninterface IDBDatabaseEventMap {\\n    \"abort\": Event;\\n    \"close\": Event;\\n    \"error\": Event;\\n    \"versionchange\": IDBVersionChangeEvent;\\n}\\n\\n/** This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database. */\\ninterface IDBDatabase extends EventTarget {\\n    /**\\n     * Returns the name of the database.\\n     */\\n    readonly name: string;\\n    /**\\n     * Returns a list of the names of object stores in the database.\\n     */\\n    readonly objectStoreNames: DOMStringList;\\n    onabort: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onclose: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onerror: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\\n    /**\\n     * Returns the version of the database.\\n     */\\n    readonly version: number;\\n    /**\\n     * Closes the connection once all running transactions have finished.\\n     */\\n    close(): void;\\n    /**\\n     * Creates a new object store with the given name and options and returns a new IDBObjectStore.\\n     * \\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;\\n    /**\\n     * Deletes the object store with the given name.\\n     * \\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    deleteObjectStore(name: string): void;\\n    /**\\n     * Returns a new transaction with the given mode (\"readonly\" or \"readwrite\") and scope which can be a single object store name or an array of names.\\n     */\\n    transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction;\\n    addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBDatabase: {\\n    prototype: IDBDatabase;\\n    new(): IDBDatabase;\\n};\\n\\ninterface IDBEnvironment {\\n    readonly indexedDB: IDBFactory;\\n}\\n\\n/** In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.) */\\ninterface IDBFactory {\\n    /**\\n     * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.\\n     * \\n     * Throws a \"DataError\" DOMException if either input is not a valid key.\\n     */\\n    cmp(first: any, second: any): number;\\n    /**\\n     * Attempts to delete the named database. If the database already exists and there are open connections that don\\'t close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request\\'s result will be null.\\n     */\\n    deleteDatabase(name: string): IDBOpenDBRequest;\\n    /**\\n     * Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request\\'s result will be the connection.\\n     */\\n    open(name: string, version?: number): IDBOpenDBRequest;\\n}\\n\\ndeclare var IDBFactory: {\\n    prototype: IDBFactory;\\n    new(): IDBFactory;\\n};\\n\\n/** IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data. */\\ninterface IDBIndex {\\n    readonly keyPath: string | string[];\\n    readonly multiEntry: boolean;\\n    /**\\n     * Returns the name of the index.\\n     */\\n    name: string;\\n    /**\\n     * Returns the IDBObjectStore the index belongs to.\\n     */\\n    readonly objectStore: IDBObjectStore;\\n    readonly unique: boolean;\\n    /**\\n     * Retrieves the number of records matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the count.\\n     */\\n    count(key?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\\n    /**\\n     * Retrieves the value of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the value, or undefined if there was no matching record.\\n     */\\n    get(key: IDBValidKey | IDBKeyRange): IDBRequest<any | undefined>;\\n    /**\\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the values.\\n     */\\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\\n    /**\\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the keys.\\n     */\\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\\n    /**\\n     * Retrieves the key of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the key, or undefined if there was no matching record.\\n     */\\n    getKey(key: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\\n    /**\\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursorWithValue, or null if there were no matching records.\\n     */\\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\\n    /**\\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursor, or null if there were no matching records.\\n     */\\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\\n}\\n\\ndeclare var IDBIndex: {\\n    prototype: IDBIndex;\\n    new(): IDBIndex;\\n};\\n\\n/** A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs: */\\ninterface IDBKeyRange {\\n    /**\\n     * Returns lower bound, or undefined if none.\\n     */\\n    readonly lower: any;\\n    /**\\n     * Returns true if the lower open flag is set, and false otherwise.\\n     */\\n    readonly lowerOpen: boolean;\\n    /**\\n     * Returns upper bound, or undefined if none.\\n     */\\n    readonly upper: any;\\n    /**\\n     * Returns true if the upper open flag is set, and false otherwise.\\n     */\\n    readonly upperOpen: boolean;\\n    /**\\n     * Returns true if key is included in the range, and false otherwise.\\n     */\\n    includes(key: any): boolean;\\n}\\n\\ndeclare var IDBKeyRange: {\\n    prototype: IDBKeyRange;\\n    new(): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range.\\n     */\\n    bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range.\\n     */\\n    lowerBound(lower: any, open?: boolean): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange spanning only key.\\n     */\\n    only(value: any): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range.\\n     */\\n    upperBound(upper: any, open?: boolean): IDBKeyRange;\\n};\\n\\n/** This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.) */\\ninterface IDBObjectStore {\\n    /**\\n     * Returns true if the store has a key generator, and false otherwise.\\n     */\\n    readonly autoIncrement: boolean;\\n    /**\\n     * Returns a list of the names of indexes in the store.\\n     */\\n    readonly indexNames: DOMStringList;\\n    /**\\n     * Returns the key path of the store, or null if none.\\n     */\\n    readonly keyPath: string | string[];\\n    /**\\n     * Returns the name of the store.\\n     */\\n    name: string;\\n    /**\\n     * Returns the associated transaction.\\n     */\\n    readonly transaction: IDBTransaction;\\n    /**\\n     * Adds or updates a record in store with the given value and key.\\n     * \\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\\n     * \\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\\'s error set to a \"ConstraintError\" DOMException.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\\n    /**\\n     * Deletes all records in store.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    clear(): IDBRequest<undefined>;\\n    /**\\n     * Retrieves the number of records matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the count.\\n     */\\n    count(key?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\\n    /**\\n     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a \"ConstraintError\" DOMException.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\\n    /**\\n     * Deletes records in store with the given key or in the given key range in query.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    delete(key: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;\\n    /**\\n     * Deletes the index in store with the given name.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    deleteIndex(name: string): void;\\n    /**\\n     * Retrieves the value of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the value, or undefined if there was no matching record.\\n     */\\n    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any | undefined>;\\n    /**\\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the values.\\n     */\\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\\n    /**\\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the keys.\\n     */\\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\\n    /**\\n     * Retrieves the key of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the key, or undefined if there was no matching record.\\n     */\\n    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\\n    index(name: string): IDBIndex;\\n    /**\\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.\\n     */\\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\\n    /**\\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.\\n     */\\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\\n    /**\\n     * Adds or updates a record in store with the given value and key.\\n     * \\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\\n     * \\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\\'s error set to a \"ConstraintError\" DOMException.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\\n}\\n\\ndeclare var IDBObjectStore: {\\n    prototype: IDBObjectStore;\\n    new(): IDBObjectStore;\\n};\\n\\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\\n    \"blocked\": Event;\\n    \"upgradeneeded\": IDBVersionChangeEvent;\\n}\\n\\n/** Also inherits methods from its parents IDBRequest and EventTarget. */\\ninterface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {\\n    onblocked: ((this: IDBOpenDBRequest, ev: Event) => any) | null;\\n    onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\\n    addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBOpenDBRequest: {\\n    prototype: IDBOpenDBRequest;\\n    new(): IDBOpenDBRequest;\\n};\\n\\ninterface IDBRequestEventMap {\\n    \"error\": Event;\\n    \"success\": Event;\\n}\\n\\n/** The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance. */\\ninterface IDBRequest<T = any> extends EventTarget {\\n    /**\\n     * When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a \"InvalidStateError\" DOMException if the request is still pending.\\n     */\\n    readonly error: DOMException | null;\\n    onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;\\n    onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;\\n    /**\\n     * Returns \"pending\" until a request is complete, then returns \"done\".\\n     */\\n    readonly readyState: IDBRequestReadyState;\\n    /**\\n     * When a request is completed, returns the result, or undefined if the request failed. Throws a \"InvalidStateError\" DOMException if the request is still pending.\\n     */\\n    readonly result: T;\\n    /**\\n     * Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request.\\n     */\\n    readonly source: IDBObjectStore | IDBIndex | IDBCursor;\\n    /**\\n     * Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise.\\n     */\\n    readonly transaction: IDBTransaction | null;\\n    addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBRequest: {\\n    prototype: IDBRequest;\\n    new(): IDBRequest;\\n};\\n\\ninterface IDBTransactionEventMap {\\n    \"abort\": Event;\\n    \"complete\": Event;\\n    \"error\": Event;\\n}\\n\\ninterface IDBTransaction extends EventTarget {\\n    /**\\n     * Returns the transaction\\'s connection.\\n     */\\n    readonly db: IDBDatabase;\\n    /**\\n     * If the transaction was aborted, returns the error (a DOMException) providing the reason.\\n     */\\n    readonly error: DOMException;\\n    /**\\n     * Returns the mode the transaction was created with (\"readonly\" or \"readwrite\"), or \"versionchange\" for an upgrade transaction.\\n     */\\n    readonly mode: IDBTransactionMode;\\n    /**\\n     * Returns a list of the names of object stores in the transaction\\'s scope. For an upgrade transaction this is all object stores in the database.\\n     */\\n    readonly objectStoreNames: DOMStringList;\\n    onabort: ((this: IDBTransaction, ev: Event) => any) | null;\\n    oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\\n    onerror: ((this: IDBTransaction, ev: Event) => any) | null;\\n    /**\\n     * Aborts the transaction. All pending requests will fail with a \"AbortError\" DOMException and all changes made to the database will be reverted.\\n     */\\n    abort(): void;\\n    /**\\n     * Returns an IDBObjectStore in the transaction\\'s scope.\\n     */\\n    objectStore(name: string): IDBObjectStore;\\n    addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBTransaction: {\\n    prototype: IDBTransaction;\\n    new(): IDBTransaction;\\n};\\n\\n/** This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function. */\\ninterface IDBVersionChangeEvent extends Event {\\n    readonly newVersion: number | null;\\n    readonly oldVersion: number;\\n}\\n\\ndeclare var IDBVersionChangeEvent: {\\n    prototype: IDBVersionChangeEvent;\\n    new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\\n};\\n\\n/** The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR)  filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed. */\\ninterface IIRFilterNode extends AudioNode {\\n    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\\n}\\n\\ndeclare var IIRFilterNode: {\\n    prototype: IIRFilterNode;\\n    new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;\\n};\\n\\ninterface ImageBitmap {\\n    /**\\n     * Returns the intrinsic height of the image, in CSS pixels.\\n     */\\n    readonly height: number;\\n    /**\\n     * Returns the intrinsic width of the image, in CSS pixels.\\n     */\\n    readonly width: number;\\n    /**\\n     * Releases imageBitmap\\'s underlying bitmap data.\\n     */\\n    close(): void;\\n}\\n\\ndeclare var ImageBitmap: {\\n    prototype: ImageBitmap;\\n    new(): ImageBitmap;\\n};\\n\\ninterface ImageBitmapOptions {\\n    colorSpaceConversion?: \"none\" | \"default\";\\n    imageOrientation?: \"none\" | \"flipY\";\\n    premultiplyAlpha?: \"none\" | \"premultiply\" | \"default\";\\n    resizeHeight?: number;\\n    resizeQuality?: \"pixelated\" | \"low\" | \"medium\" | \"high\";\\n    resizeWidth?: number;\\n}\\n\\ninterface ImageBitmapRenderingContext {\\n    /**\\n     * Returns the canvas element that the context is bound to.\\n     */\\n    readonly canvas: HTMLCanvasElement | OffscreenCanvas;\\n    /**\\n     * Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound.\\n     */\\n    transferFromImageBitmap(bitmap: ImageBitmap | null): void;\\n}\\n\\ndeclare var ImageBitmapRenderingContext: {\\n    prototype: ImageBitmapRenderingContext;\\n    new(): ImageBitmapRenderingContext;\\n};\\n\\n/** The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */\\ninterface ImageData {\\n    /**\\n     * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.\\n     */\\n    readonly data: Uint8ClampedArray;\\n    /**\\n     * Returns the actual dimensions of the data in the ImageData object, in pixels.\\n     */\\n    readonly height: number;\\n    /**\\n     * Returns the actual dimensions of the data in the ImageData object, in pixels.\\n     */\\n    readonly width: number;\\n}\\n\\ndeclare var ImageData: {\\n    prototype: ImageData;\\n    new(width: number, height: number): ImageData;\\n    new(array: Uint8ClampedArray, width: number, height?: number): ImageData;\\n};\\n\\ninterface InnerHTML {\\n    innerHTML: string;\\n}\\n\\ninterface InputDeviceInfo extends MediaDeviceInfo {\\n    getCapabilities(): MediaTrackCapabilities;\\n}\\n\\ndeclare var InputDeviceInfo: {\\n    prototype: InputDeviceInfo;\\n    new(): InputDeviceInfo;\\n};\\n\\ninterface InputEvent extends UIEvent {\\n    readonly data: string | null;\\n    readonly inputType: string;\\n    readonly isComposing: boolean;\\n}\\n\\ndeclare var InputEvent: {\\n    prototype: InputEvent;\\n    new(type: string, eventInitDict?: InputEventInit): InputEvent;\\n};\\n\\n/** provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document\\'s viewport. */\\ninterface IntersectionObserver {\\n    readonly root: Element | null;\\n    readonly rootMargin: string;\\n    readonly thresholds: ReadonlyArray<number>;\\n    disconnect(): void;\\n    observe(target: Element): void;\\n    takeRecords(): IntersectionObserverEntry[];\\n    unobserve(target: Element): void;\\n}\\n\\ndeclare var IntersectionObserver: {\\n    prototype: IntersectionObserver;\\n    new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;\\n};\\n\\n/** This Intersection Observer API interface describes the intersection between the target element and its root container at a specific moment of transition. */\\ninterface IntersectionObserverEntry {\\n    readonly boundingClientRect: DOMRectReadOnly;\\n    readonly intersectionRatio: number;\\n    readonly intersectionRect: DOMRectReadOnly;\\n    readonly isIntersecting: boolean;\\n    readonly rootBounds: DOMRectReadOnly | null;\\n    readonly target: Element;\\n    readonly time: number;\\n}\\n\\ndeclare var IntersectionObserverEntry: {\\n    prototype: IntersectionObserverEntry;\\n    new(intersectionObserverEntryInit: IntersectionObserverEntryInit): IntersectionObserverEntry;\\n};\\n\\n/** KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. */\\ninterface KeyboardEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    /** @deprecated */\\n    char: string;\\n    /** @deprecated */\\n    readonly charCode: number;\\n    readonly code: string;\\n    readonly ctrlKey: boolean;\\n    readonly isComposing: boolean;\\n    readonly key: string;\\n    /** @deprecated */\\n    readonly keyCode: number;\\n    readonly location: number;\\n    readonly metaKey: boolean;\\n    readonly repeat: boolean;\\n    readonly shiftKey: boolean;\\n    getModifierState(keyArg: string): boolean;\\n    readonly DOM_KEY_LOCATION_LEFT: number;\\n    readonly DOM_KEY_LOCATION_NUMPAD: number;\\n    readonly DOM_KEY_LOCATION_RIGHT: number;\\n    readonly DOM_KEY_LOCATION_STANDARD: number;\\n}\\n\\ndeclare var KeyboardEvent: {\\n    prototype: KeyboardEvent;\\n    new(type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;\\n    readonly DOM_KEY_LOCATION_LEFT: number;\\n    readonly DOM_KEY_LOCATION_NUMPAD: number;\\n    readonly DOM_KEY_LOCATION_RIGHT: number;\\n    readonly DOM_KEY_LOCATION_STANDARD: number;\\n};\\n\\ninterface KeyframeEffect extends AnimationEffect {\\n    composite: CompositeOperation;\\n    iterationComposite: IterationCompositeOperation;\\n    target: Element | null;\\n    getKeyframes(): ComputedKeyframe[];\\n    setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void;\\n}\\n\\ndeclare var KeyframeEffect: {\\n    prototype: KeyframeEffect;\\n    new(target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;\\n    new(source: KeyframeEffect): KeyframeEffect;\\n};\\n\\ninterface LinkStyle {\\n    readonly sheet: StyleSheet | null;\\n}\\n\\ninterface ListeningStateChangedEvent extends Event {\\n    readonly label: string;\\n    readonly state: ListeningState;\\n}\\n\\ndeclare var ListeningStateChangedEvent: {\\n    prototype: ListeningStateChangedEvent;\\n    new(): ListeningStateChangedEvent;\\n};\\n\\n/** The location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively. */\\ninterface Location {\\n    /**\\n     * Returns a DOMStringList object listing the origins of the ancestor browsing contexts, from the parent browsing context to the top-level browsing context.\\n     */\\n    readonly ancestorOrigins: DOMStringList;\\n    /**\\n     * Returns the Location object\\'s URL\\'s fragment (includes leading \"#\" if non-empty).\\n     * \\n     * Can be set, to navigate to the same URL with a changed fragment (ignores leading \"#\").\\n     */\\n    hash: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s host and port (if different from the default port for the scheme).\\n     * \\n     * Can be set, to navigate to the same URL with a changed host and port.\\n     */\\n    host: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s host.\\n     * \\n     * Can be set, to navigate to the same URL with a changed host.\\n     */\\n    hostname: string;\\n    /**\\n     * Returns the Location object\\'s URL.\\n     * \\n     * Can be set, to navigate to the given URL.\\n     */\\n    href: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s origin.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s path.\\n     * \\n     * Can be set, to navigate to the same URL with a changed path.\\n     */\\n    pathname: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s port.\\n     * \\n     * Can be set, to navigate to the same URL with a changed port.\\n     */\\n    port: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s scheme.\\n     * \\n     * Can be set, to navigate to the same URL with a changed scheme.\\n     */\\n    protocol: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s query (includes leading \"?\" if non-empty).\\n     * \\n     * Can be set, to navigate to the same URL with a changed query (ignores leading \"?\").\\n     */\\n    search: string;\\n    /**\\n     * Navigates to the given URL.\\n     */\\n    assign(url: string): void;\\n    /**\\n     * Reloads the current page.\\n     */\\n    reload(): void;\\n    /** @deprecated */\\n    reload(forcedReload: boolean): void;\\n    /**\\n     * Removes the current page from the session history and navigates to the given URL.\\n     */\\n    replace(url: string): void;\\n}\\n\\ndeclare var Location: {\\n    prototype: Location;\\n    new(): Location;\\n};\\n\\ninterface MSAssertion {\\n    readonly id: string;\\n    readonly type: MSCredentialType;\\n}\\n\\ndeclare var MSAssertion: {\\n    prototype: MSAssertion;\\n    new(): MSAssertion;\\n};\\n\\ninterface MSBlobBuilder {\\n    append(data: any, endings?: string): void;\\n    getBlob(contentType?: string): Blob;\\n}\\n\\ndeclare var MSBlobBuilder: {\\n    prototype: MSBlobBuilder;\\n    new(): MSBlobBuilder;\\n};\\n\\ninterface MSFIDOCredentialAssertion extends MSAssertion {\\n    readonly algorithm: string | Algorithm;\\n    readonly attestation: any;\\n    readonly publicKey: string;\\n    readonly transportHints: MSTransportType[];\\n}\\n\\ndeclare var MSFIDOCredentialAssertion: {\\n    prototype: MSFIDOCredentialAssertion;\\n    new(): MSFIDOCredentialAssertion;\\n};\\n\\ninterface MSFIDOSignature {\\n    readonly authnrData: string;\\n    readonly clientData: string;\\n    readonly signature: string;\\n}\\n\\ndeclare var MSFIDOSignature: {\\n    prototype: MSFIDOSignature;\\n    new(): MSFIDOSignature;\\n};\\n\\ninterface MSFIDOSignatureAssertion extends MSAssertion {\\n    readonly signature: MSFIDOSignature;\\n}\\n\\ndeclare var MSFIDOSignatureAssertion: {\\n    prototype: MSFIDOSignatureAssertion;\\n    new(): MSFIDOSignatureAssertion;\\n};\\n\\ninterface MSFileSaver {\\n    msSaveBlob(blob: any, defaultName?: string): boolean;\\n    msSaveOrOpenBlob(blob: any, defaultName?: string): boolean;\\n}\\n\\ninterface MSGesture {\\n    target: Element;\\n    addPointer(pointerId: number): void;\\n    stop(): void;\\n}\\n\\ndeclare var MSGesture: {\\n    prototype: MSGesture;\\n    new(): MSGesture;\\n};\\n\\n/** The MSGestureEvent is a proprietary interface specific to Internet Explorer and Microsoft Edge which represents events that occur due to touch gestures. Events using this interface include MSGestureStart, MSGestureEnd, MSGestureTap, MSGestureHold, MSGestureChange, and MSInertiaStart. */\\ninterface MSGestureEvent extends UIEvent {\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly expansion: number;\\n    readonly gestureObject: any;\\n    readonly hwTimestamp: number;\\n    readonly offsetX: number;\\n    readonly offsetY: number;\\n    readonly rotation: number;\\n    readonly scale: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly translationX: number;\\n    readonly translationY: number;\\n    readonly velocityAngular: number;\\n    readonly velocityExpansion: number;\\n    readonly velocityX: number;\\n    readonly velocityY: number;\\n    initGestureEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, offsetXArg: number, offsetYArg: number, translationXArg: number, translationYArg: number, scaleArg: number, expansionArg: number, rotationArg: number, velocityXArg: number, velocityYArg: number, velocityExpansionArg: number, velocityAngularArg: number, hwTimestampArg: number): void;\\n    readonly MSGESTURE_FLAG_BEGIN: number;\\n    readonly MSGESTURE_FLAG_CANCEL: number;\\n    readonly MSGESTURE_FLAG_END: number;\\n    readonly MSGESTURE_FLAG_INERTIA: number;\\n    readonly MSGESTURE_FLAG_NONE: number;\\n}\\n\\ndeclare var MSGestureEvent: {\\n    prototype: MSGestureEvent;\\n    new(): MSGestureEvent;\\n    readonly MSGESTURE_FLAG_BEGIN: number;\\n    readonly MSGESTURE_FLAG_CANCEL: number;\\n    readonly MSGESTURE_FLAG_END: number;\\n    readonly MSGESTURE_FLAG_INERTIA: number;\\n    readonly MSGESTURE_FLAG_NONE: number;\\n};\\n\\n/** The msGraphicsTrust() constructor returns an object that provides properties for info on protected video playback. */\\ninterface MSGraphicsTrust {\\n    readonly constrictionActive: boolean;\\n    readonly status: string;\\n}\\n\\ndeclare var MSGraphicsTrust: {\\n    prototype: MSGraphicsTrust;\\n    new(): MSGraphicsTrust;\\n};\\n\\ninterface MSInputMethodContextEventMap {\\n    \"MSCandidateWindowHide\": Event;\\n    \"MSCandidateWindowShow\": Event;\\n    \"MSCandidateWindowUpdate\": Event;\\n}\\n\\ninterface MSInputMethodContext extends EventTarget {\\n    readonly compositionEndOffset: number;\\n    readonly compositionStartOffset: number;\\n    oncandidatewindowhide: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    oncandidatewindowshow: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    oncandidatewindowupdate: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    readonly target: HTMLElement;\\n    getCandidateWindowClientRect(): ClientRect;\\n    getCompositionAlternatives(): string[];\\n    hasComposition(): boolean;\\n    isCandidateWindowVisible(): boolean;\\n    addEventListener<K extends keyof MSInputMethodContextEventMap>(type: K, listener: (this: MSInputMethodContext, ev: MSInputMethodContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MSInputMethodContextEventMap>(type: K, listener: (this: MSInputMethodContext, ev: MSInputMethodContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MSInputMethodContext: {\\n    prototype: MSInputMethodContext;\\n    new(): MSInputMethodContext;\\n};\\n\\ninterface MSMediaKeyError {\\n    readonly code: number;\\n    readonly systemCode: number;\\n    readonly MS_MEDIA_KEYERR_CLIENT: number;\\n    readonly MS_MEDIA_KEYERR_DOMAIN: number;\\n    readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\\n    readonly MS_MEDIA_KEYERR_OUTPUT: number;\\n    readonly MS_MEDIA_KEYERR_SERVICE: number;\\n    readonly MS_MEDIA_KEYERR_UNKNOWN: number;\\n}\\n\\ndeclare var MSMediaKeyError: {\\n    prototype: MSMediaKeyError;\\n    new(): MSMediaKeyError;\\n    readonly MS_MEDIA_KEYERR_CLIENT: number;\\n    readonly MS_MEDIA_KEYERR_DOMAIN: number;\\n    readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\\n    readonly MS_MEDIA_KEYERR_OUTPUT: number;\\n    readonly MS_MEDIA_KEYERR_SERVICE: number;\\n    readonly MS_MEDIA_KEYERR_UNKNOWN: number;\\n};\\n\\ninterface MSMediaKeyMessageEvent extends Event {\\n    readonly destinationURL: string | null;\\n    readonly message: Uint8Array;\\n}\\n\\ndeclare var MSMediaKeyMessageEvent: {\\n    prototype: MSMediaKeyMessageEvent;\\n    new(): MSMediaKeyMessageEvent;\\n};\\n\\ninterface MSMediaKeyNeededEvent extends Event {\\n    readonly initData: Uint8Array | null;\\n}\\n\\ndeclare var MSMediaKeyNeededEvent: {\\n    prototype: MSMediaKeyNeededEvent;\\n    new(): MSMediaKeyNeededEvent;\\n};\\n\\ninterface MSMediaKeySession extends EventTarget {\\n    readonly error: MSMediaKeyError | null;\\n    readonly keySystem: string;\\n    readonly sessionId: string;\\n    close(): void;\\n    update(key: Uint8Array): void;\\n}\\n\\ndeclare var MSMediaKeySession: {\\n    prototype: MSMediaKeySession;\\n    new(): MSMediaKeySession;\\n};\\n\\ninterface MSMediaKeys {\\n    readonly keySystem: string;\\n    createSession(type: string, initData: Uint8Array, cdmData?: Uint8Array | null): MSMediaKeySession;\\n}\\n\\ndeclare var MSMediaKeys: {\\n    prototype: MSMediaKeys;\\n    new(keySystem: string): MSMediaKeys;\\n    isTypeSupported(keySystem: string, type?: string | null): boolean;\\n    isTypeSupportedWithFeatures(keySystem: string, type?: string | null): string;\\n};\\n\\ninterface MSNavigatorDoNotTrack {\\n    confirmSiteSpecificTrackingException(args: ConfirmSiteSpecificExceptionsInformation): boolean;\\n    confirmWebWideTrackingException(args: ExceptionInformation): boolean;\\n    removeSiteSpecificTrackingException(args: ExceptionInformation): void;\\n    removeWebWideTrackingException(args: ExceptionInformation): void;\\n    storeSiteSpecificTrackingException(args: StoreSiteSpecificExceptionsInformation): void;\\n    storeWebWideTrackingException(args: StoreExceptionsInformation): void;\\n}\\n\\ninterface MSPointerEvent extends MouseEvent {\\n    readonly currentPoint: any;\\n    readonly height: number;\\n    readonly hwTimestamp: number;\\n    readonly intermediatePoints: any;\\n    readonly isPrimary: boolean;\\n    readonly pointerId: number;\\n    readonly pointerType: any;\\n    readonly pressure: number;\\n    readonly rotation: number;\\n    readonly tiltX: number;\\n    readonly tiltY: number;\\n    readonly width: number;\\n    getCurrentPoint(element: Element): void;\\n    getIntermediatePoints(element: Element): void;\\n    initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;\\n}\\n\\ndeclare var MSPointerEvent: {\\n    prototype: MSPointerEvent;\\n    new(typeArg: string, eventInitDict?: PointerEventInit): MSPointerEvent;\\n};\\n\\ninterface MSStream {\\n    readonly type: string;\\n    msClose(): void;\\n    msDetachStream(): any;\\n}\\n\\ndeclare var MSStream: {\\n    prototype: MSStream;\\n    new(): MSStream;\\n};\\n\\n/** The MediaDevicesInfo interface contains information that describes a single media input or output device. */\\ninterface MediaDeviceInfo {\\n    readonly deviceId: string;\\n    readonly groupId: string;\\n    readonly kind: MediaDeviceKind;\\n    readonly label: string;\\n    toJSON(): any;\\n}\\n\\ndeclare var MediaDeviceInfo: {\\n    prototype: MediaDeviceInfo;\\n    new(): MediaDeviceInfo;\\n};\\n\\ninterface MediaDevicesEventMap {\\n    \"devicechange\": Event;\\n}\\n\\n/** Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data. */\\ninterface MediaDevices extends EventTarget {\\n    ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;\\n    enumerateDevices(): Promise<MediaDeviceInfo[]>;\\n    getSupportedConstraints(): MediaTrackSupportedConstraints;\\n    getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;\\n    addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaDevices: {\\n    prototype: MediaDevices;\\n    new(): MediaDevices;\\n};\\n\\n/** A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio. */\\ninterface MediaElementAudioSourceNode extends AudioNode {\\n    readonly mediaElement: HTMLMediaElement;\\n}\\n\\ndeclare var MediaElementAudioSourceNode: {\\n    prototype: MediaElementAudioSourceNode;\\n    new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;\\n};\\n\\ninterface MediaEncryptedEvent extends Event {\\n    readonly initData: ArrayBuffer | null;\\n    readonly initDataType: string;\\n}\\n\\ndeclare var MediaEncryptedEvent: {\\n    prototype: MediaEncryptedEvent;\\n    new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;\\n};\\n\\n/** An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>. */\\ninterface MediaError {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly msExtendedCode: number;\\n    readonly MEDIA_ERR_ABORTED: number;\\n    readonly MEDIA_ERR_DECODE: number;\\n    readonly MEDIA_ERR_NETWORK: number;\\n    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\\n    readonly MS_MEDIA_ERR_ENCRYPTED: number;\\n}\\n\\ndeclare var MediaError: {\\n    prototype: MediaError;\\n    new(): MediaError;\\n    readonly MEDIA_ERR_ABORTED: number;\\n    readonly MEDIA_ERR_DECODE: number;\\n    readonly MEDIA_ERR_NETWORK: number;\\n    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\\n    readonly MS_MEDIA_ERR_ENCRYPTED: number;\\n};\\n\\n/** This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session. */\\ninterface MediaKeyMessageEvent extends Event {\\n    readonly message: ArrayBuffer;\\n    readonly messageType: MediaKeyMessageType;\\n}\\n\\ndeclare var MediaKeyMessageEvent: {\\n    prototype: MediaKeyMessageEvent;\\n    new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;\\n};\\n\\ninterface MediaKeySessionEventMap {\\n    \"keystatuseschange\": Event;\\n    \"message\": MessageEvent;\\n}\\n\\n/** This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM). */\\ninterface MediaKeySession extends EventTarget {\\n    readonly closed: Promise<void>;\\n    readonly expiration: number;\\n    readonly keyStatuses: MediaKeyStatusMap;\\n    onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;\\n    onmessage: ((this: MediaKeySession, ev: MessageEvent) => any) | null;\\n    readonly sessionId: string;\\n    close(): Promise<void>;\\n    generateRequest(initDataType: string, initData: BufferSource): Promise<void>;\\n    load(sessionId: string): Promise<boolean>;\\n    remove(): Promise<void>;\\n    update(response: BufferSource): Promise<void>;\\n    addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaKeySession: {\\n    prototype: MediaKeySession;\\n    new(): MediaKeySession;\\n};\\n\\n/** This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs. */\\ninterface MediaKeyStatusMap {\\n    readonly size: number;\\n    get(keyId: BufferSource): any;\\n    has(keyId: BufferSource): boolean;\\n    forEach(callbackfn: (value: MediaKeyStatus, key: BufferSource, parent: MediaKeyStatusMap) => void, thisArg?: any): void;\\n}\\n\\ndeclare var MediaKeyStatusMap: {\\n    prototype: MediaKeyStatusMap;\\n    new(): MediaKeyStatusMap;\\n};\\n\\n/** This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method. */\\ninterface MediaKeySystemAccess {\\n    readonly keySystem: string;\\n    createMediaKeys(): Promise<MediaKeys>;\\n    getConfiguration(): MediaKeySystemConfiguration;\\n}\\n\\ndeclare var MediaKeySystemAccess: {\\n    prototype: MediaKeySystemAccess;\\n    new(): MediaKeySystemAccess;\\n};\\n\\n/** This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback. */\\ninterface MediaKeys {\\n    createSession(sessionType?: MediaKeySessionType): MediaKeySession;\\n    setServerCertificate(serverCertificate: BufferSource): Promise<boolean>;\\n}\\n\\ndeclare var MediaKeys: {\\n    prototype: MediaKeys;\\n    new(): MediaKeys;\\n};\\n\\ninterface MediaList {\\n    readonly length: number;\\n    mediaText: string;\\n    appendMedium(medium: string): void;\\n    deleteMedium(medium: string): void;\\n    item(index: number): string | null;\\n    toString(): number;\\n    [index: number]: string;\\n}\\n\\ndeclare var MediaList: {\\n    prototype: MediaList;\\n    new(): MediaList;\\n};\\n\\ninterface MediaQueryListEventMap {\\n    \"change\": MediaQueryListEvent;\\n}\\n\\n/** Stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true). */\\ninterface MediaQueryList extends EventTarget {\\n    readonly matches: boolean;\\n    readonly media: string;\\n    onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;\\n    /** @deprecated */\\n    addListener(listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\\n    /** @deprecated */\\n    removeListener(listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\\n    addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaQueryList: {\\n    prototype: MediaQueryList;\\n    new(): MediaQueryList;\\n};\\n\\ninterface MediaQueryListEvent extends Event {\\n    readonly matches: boolean;\\n    readonly media: string;\\n}\\n\\ndeclare var MediaQueryListEvent: {\\n    prototype: MediaQueryListEvent;\\n    new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;\\n};\\n\\ninterface MediaSourceEventMap {\\n    \"sourceclose\": Event;\\n    \"sourceended\": Event;\\n    \"sourceopen\": Event;\\n}\\n\\n/** This Media Source Extensions API interface represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent. */\\ninterface MediaSource extends EventTarget {\\n    readonly activeSourceBuffers: SourceBufferList;\\n    duration: number;\\n    onsourceclose: ((this: MediaSource, ev: Event) => any) | null;\\n    onsourceended: ((this: MediaSource, ev: Event) => any) | null;\\n    onsourceopen: ((this: MediaSource, ev: Event) => any) | null;\\n    readonly readyState: ReadyState;\\n    readonly sourceBuffers: SourceBufferList;\\n    addSourceBuffer(type: string): SourceBuffer;\\n    clearLiveSeekableRange(): void;\\n    endOfStream(error?: EndOfStreamError): void;\\n    removeSourceBuffer(sourceBuffer: SourceBuffer): void;\\n    setLiveSeekableRange(start: number, end: number): void;\\n    addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaSource: {\\n    prototype: MediaSource;\\n    new(): MediaSource;\\n    isTypeSupported(type: string): boolean;\\n};\\n\\ninterface MediaStreamEventMap {\\n    \"addtrack\": MediaStreamTrackEvent;\\n    \"removetrack\": MediaStreamTrackEvent;\\n}\\n\\n/** A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack. */\\ninterface MediaStream extends EventTarget {\\n    readonly active: boolean;\\n    readonly id: string;\\n    onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\\n    onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\\n    addTrack(track: MediaStreamTrack): void;\\n    clone(): MediaStream;\\n    getAudioTracks(): MediaStreamTrack[];\\n    getTrackById(trackId: string): MediaStreamTrack | null;\\n    getTracks(): MediaStreamTrack[];\\n    getVideoTracks(): MediaStreamTrack[];\\n    removeTrack(track: MediaStreamTrack): void;\\n    addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaStream: {\\n    prototype: MediaStream;\\n    new(): MediaStream;\\n    new(stream: MediaStream): MediaStream;\\n    new(tracks: MediaStreamTrack[]): MediaStream;\\n};\\n\\ninterface MediaStreamAudioDestinationNode extends AudioNode {\\n    readonly stream: MediaStream;\\n}\\n\\ndeclare var MediaStreamAudioDestinationNode: {\\n    prototype: MediaStreamAudioDestinationNode;\\n    new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;\\n};\\n\\n/** A type of AudioNode which operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs. */\\ninterface MediaStreamAudioSourceNode extends AudioNode {\\n    readonly mediaStream: MediaStream;\\n}\\n\\ndeclare var MediaStreamAudioSourceNode: {\\n    prototype: MediaStreamAudioSourceNode;\\n    new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;\\n};\\n\\ninterface MediaStreamError {\\n    readonly constraintName: string | null;\\n    readonly message: string | null;\\n    readonly name: string;\\n}\\n\\ndeclare var MediaStreamError: {\\n    prototype: MediaStreamError;\\n    new(): MediaStreamError;\\n};\\n\\ninterface MediaStreamErrorEvent extends Event {\\n    readonly error: MediaStreamError | null;\\n}\\n\\ndeclare var MediaStreamErrorEvent: {\\n    prototype: MediaStreamErrorEvent;\\n    new(typeArg: string, eventInitDict?: MediaStreamErrorEventInit): MediaStreamErrorEvent;\\n};\\n\\n/** Events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream. */\\ninterface MediaStreamEvent extends Event {\\n    readonly stream: MediaStream | null;\\n}\\n\\ndeclare var MediaStreamEvent: {\\n    prototype: MediaStreamEvent;\\n    new(type: string, eventInitDict: MediaStreamEventInit): MediaStreamEvent;\\n};\\n\\ninterface MediaStreamTrackEventMap {\\n    \"ended\": Event;\\n    \"isolationchange\": Event;\\n    \"mute\": Event;\\n    \"unmute\": Event;\\n}\\n\\n/** A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well. */\\ninterface MediaStreamTrack extends EventTarget {\\n    enabled: boolean;\\n    readonly id: string;\\n    readonly isolated: boolean;\\n    readonly kind: string;\\n    readonly label: string;\\n    readonly muted: boolean;\\n    onended: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    readonly readyState: MediaStreamTrackState;\\n    applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;\\n    clone(): MediaStreamTrack;\\n    getCapabilities(): MediaTrackCapabilities;\\n    getConstraints(): MediaTrackConstraints;\\n    getSettings(): MediaTrackSettings;\\n    stop(): void;\\n    addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaStreamTrack: {\\n    prototype: MediaStreamTrack;\\n    new(): MediaStreamTrack;\\n};\\n\\ninterface MediaStreamTrackAudioSourceNode extends AudioNode {\\n}\\n\\ndeclare var MediaStreamTrackAudioSourceNode: {\\n    prototype: MediaStreamTrackAudioSourceNode;\\n    new(context: AudioContext, options: MediaStreamTrackAudioSourceOptions): MediaStreamTrackAudioSourceNode;\\n};\\n\\n/** Events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur. */\\ninterface MediaStreamTrackEvent extends Event {\\n    readonly track: MediaStreamTrack;\\n}\\n\\ndeclare var MediaStreamTrackEvent: {\\n    prototype: MediaStreamTrackEvent;\\n    new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;\\n};\\n\\n/** This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties. */\\ninterface MessageChannel {\\n    /**\\n     * Returns the first MessagePort object.\\n     */\\n    readonly port1: MessagePort;\\n    /**\\n     * Returns the second MessagePort object.\\n     */\\n    readonly port2: MessagePort;\\n}\\n\\ndeclare var MessageChannel: {\\n    prototype: MessageChannel;\\n    new(): MessageChannel;\\n};\\n\\n/** A message received by a target object. */\\ninterface MessageEvent extends Event {\\n    /**\\n     * Returns the data of the message.\\n     */\\n    readonly data: any;\\n    /**\\n     * Returns the last event ID string, for server-sent events.\\n     */\\n    readonly lastEventId: string;\\n    /**\\n     * Returns the origin of the message, for server-sent events and cross-document messaging.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging.\\n     */\\n    readonly ports: ReadonlyArray<MessagePort>;\\n    /**\\n     * Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects.\\n     */\\n    readonly source: MessageEventSource | null;\\n}\\n\\ndeclare var MessageEvent: {\\n    prototype: MessageEvent;\\n    new(type: string, eventInitDict?: MessageEventInit): MessageEvent;\\n};\\n\\ninterface MessagePortEventMap {\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\n/** This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other. */\\ninterface MessagePort extends EventTarget {\\n    onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;\\n    /**\\n     * Disconnects the port, so that it is no longer active.\\n     */\\n    close(): void;\\n    /**\\n     * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.\\n     * \\n     * Throws a \"DataCloneError\" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.\\n     */\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    /**\\n     * Begins dispatching messages received on the port.\\n     */\\n    start(): void;\\n    addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MessagePort: {\\n    prototype: MessagePort;\\n    new(): MessagePort;\\n};\\n\\n/** Provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object. */\\ninterface MimeType {\\n    /**\\n     * Returns the MIME type\\'s description.\\n     */\\n    readonly description: string;\\n    /**\\n     * Returns the Plugin object that implements this MIME type.\\n     */\\n    readonly enabledPlugin: Plugin;\\n    /**\\n     * Returns the MIME type\\'s typical file extensions, in a comma-separated list.\\n     */\\n    readonly suffixes: string;\\n    /**\\n     * Returns the MIME type.\\n     */\\n    readonly type: string;\\n}\\n\\ndeclare var MimeType: {\\n    prototype: MimeType;\\n    new(): MimeType;\\n};\\n\\n/** Returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes. */\\ninterface MimeTypeArray {\\n    readonly length: number;\\n    item(index: number): MimeType | null;\\n    namedItem(name: string): MimeType | null;\\n    [index: number]: MimeType;\\n}\\n\\ndeclare var MimeTypeArray: {\\n    prototype: MimeTypeArray;\\n    new(): MimeTypeArray;\\n};\\n\\n/** Events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown. */\\ninterface MouseEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    readonly button: number;\\n    readonly buttons: number;\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly ctrlKey: boolean;\\n    readonly metaKey: boolean;\\n    readonly movementX: number;\\n    readonly movementY: number;\\n    readonly offsetX: number;\\n    readonly offsetY: number;\\n    readonly pageX: number;\\n    readonly pageY: number;\\n    readonly relatedTarget: EventTarget | null;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly shiftKey: boolean;\\n    readonly x: number;\\n    readonly y: number;\\n    getModifierState(keyArg: string): boolean;\\n    initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void;\\n}\\n\\ndeclare var MouseEvent: {\\n    prototype: MouseEvent;\\n    new(type: string, eventInitDict?: MouseEventInit): MouseEvent;\\n};\\n\\n/** Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes. */\\ninterface MutationEvent extends Event {\\n    readonly attrChange: number;\\n    readonly attrName: string;\\n    readonly newValue: string;\\n    readonly prevValue: string;\\n    readonly relatedNode: Node;\\n    initMutationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, relatedNodeArg: Node, prevValueArg: string, newValueArg: string, attrNameArg: string, attrChangeArg: number): void;\\n    readonly ADDITION: number;\\n    readonly MODIFICATION: number;\\n    readonly REMOVAL: number;\\n}\\n\\ndeclare var MutationEvent: {\\n    prototype: MutationEvent;\\n    new(): MutationEvent;\\n    readonly ADDITION: number;\\n    readonly MODIFICATION: number;\\n    readonly REMOVAL: number;\\n};\\n\\n/** Provides the ability to watch for changes being made to the DOM tree. It is designed as a replacement for the older Mutation Events feature which was part of the DOM3 Events specification. */\\ninterface MutationObserver {\\n    /**\\n     * Stops observer from observing any mutations. Until the observe() method is used again, observer\\'s callback will not be invoked.\\n     */\\n    disconnect(): void;\\n    /**\\n     * Instructs the user agent to observe a given target (a node) and report any mutations based on the criteria given by options (an object).\\n     * \\n     * The options argument allows for setting mutation observation options via object members.\\n     */\\n    observe(target: Node, options?: MutationObserverInit): void;\\n    /**\\n     * Empties the record queue and returns what was in there.\\n     */\\n    takeRecords(): MutationRecord[];\\n}\\n\\ndeclare var MutationObserver: {\\n    prototype: MutationObserver;\\n    new(callback: MutationCallback): MutationObserver;\\n};\\n\\n/** A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver\\'s callback. */\\ninterface MutationRecord {\\n    /**\\n     * Return the nodes added and removed respectively.\\n     */\\n    readonly addedNodes: NodeList;\\n    /**\\n     * Returns the local name of the changed attribute, and null otherwise.\\n     */\\n    readonly attributeName: string | null;\\n    /**\\n     * Returns the namespace of the changed attribute, and null otherwise.\\n     */\\n    readonly attributeNamespace: string | null;\\n    /**\\n     * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\\n     */\\n    readonly nextSibling: Node | null;\\n    /**\\n     * The return value depends on type. For \"attributes\", it is the value of the changed attribute before the change. For \"characterData\", it is the data of the changed node before the change. For \"childList\", it is null.\\n     */\\n    readonly oldValue: string | null;\\n    /**\\n     * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\\n     */\\n    readonly previousSibling: Node | null;\\n    /**\\n     * Return the nodes added and removed respectively.\\n     */\\n    readonly removedNodes: NodeList;\\n    /**\\n     * Returns the node the mutation affected, depending on the type. For \"attributes\", it is the element whose attribute changed. For \"characterData\", it is the CharacterData node. For \"childList\", it is the node whose children changed.\\n     */\\n    readonly target: Node;\\n    /**\\n     * Returns \"attributes\" if it was an attribute mutation. \"characterData\" if it was a mutation to a CharacterData node. And \"childList\" if it was a mutation to the tree of nodes.\\n     */\\n    readonly type: MutationRecordType;\\n}\\n\\ndeclare var MutationRecord: {\\n    prototype: MutationRecord;\\n    new(): MutationRecord;\\n};\\n\\n/** A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array. */\\ninterface NamedNodeMap {\\n    readonly length: number;\\n    getNamedItem(qualifiedName: string): Attr | null;\\n    getNamedItemNS(namespace: string | null, localName: string): Attr | null;\\n    item(index: number): Attr | null;\\n    removeNamedItem(qualifiedName: string): Attr;\\n    removeNamedItemNS(namespace: string | null, localName: string): Attr;\\n    setNamedItem(attr: Attr): Attr | null;\\n    setNamedItemNS(attr: Attr): Attr | null;\\n    [index: number]: Attr;\\n}\\n\\ndeclare var NamedNodeMap: {\\n    prototype: NamedNodeMap;\\n    new(): NamedNodeMap;\\n};\\n\\ninterface NavigationPreloadManager {\\n    disable(): Promise<void>;\\n    enable(): Promise<void>;\\n    getState(): Promise<NavigationPreloadState>;\\n    setHeaderValue(value: string): Promise<void>;\\n}\\n\\ndeclare var NavigationPreloadManager: {\\n    prototype: NavigationPreloadManager;\\n    new(): NavigationPreloadManager;\\n};\\n\\n/** The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. */\\ninterface Navigator extends MSFileSaver, MSNavigatorDoNotTrack, NavigatorAutomationInformation, NavigatorBeacon, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorPlugins, NavigatorStorage {\\n    readonly activeVRDisplays: ReadonlyArray<VRDisplay>;\\n    readonly clipboard: Clipboard;\\n    readonly credentials: CredentialsContainer;\\n    readonly doNotTrack: string | null;\\n    readonly geolocation: Geolocation;\\n    readonly maxTouchPoints: number;\\n    readonly mediaDevices: MediaDevices;\\n    readonly msManipulationViewsEnabled: boolean;\\n    readonly msMaxTouchPoints: number;\\n    readonly msPointerEnabled: boolean;\\n    readonly permissions: Permissions;\\n    readonly pointerEnabled: boolean;\\n    readonly serviceWorker: ServiceWorkerContainer;\\n    getGamepads(): (Gamepad | null)[];\\n    getUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;\\n    getVRDisplays(): Promise<VRDisplay[]>;\\n    msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;\\n    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;\\n    vibrate(pattern: number | number[]): boolean;\\n}\\n\\ndeclare var Navigator: {\\n    prototype: Navigator;\\n    new(): Navigator;\\n};\\n\\ninterface NavigatorAutomationInformation {\\n    readonly webdriver: boolean;\\n}\\n\\ninterface NavigatorBeacon {\\n    sendBeacon(url: string, data?: Blob | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | FormData | string | null): boolean;\\n}\\n\\ninterface NavigatorConcurrentHardware {\\n    readonly hardwareConcurrency: number;\\n}\\n\\ninterface NavigatorContentUtils {\\n    registerProtocolHandler(scheme: string, url: string, title: string): void;\\n    unregisterProtocolHandler(scheme: string, url: string): void;\\n}\\n\\ninterface NavigatorCookies {\\n    readonly cookieEnabled: boolean;\\n}\\n\\ninterface NavigatorID {\\n    readonly appCodeName: string;\\n    readonly appName: string;\\n    readonly appVersion: string;\\n    readonly oscpu: string;\\n    readonly platform: string;\\n    readonly product: string;\\n    readonly productSub: string;\\n    readonly userAgent: string;\\n    readonly vendor: string;\\n    readonly vendorSub: string;\\n    taintEnabled(): boolean;\\n}\\n\\ninterface NavigatorLanguage {\\n    readonly language: string;\\n    readonly languages: ReadonlyArray<string>;\\n}\\n\\ninterface NavigatorOnLine {\\n    readonly onLine: boolean;\\n}\\n\\ninterface NavigatorPlugins {\\n    readonly mimeTypes: MimeTypeArray;\\n    readonly plugins: PluginArray;\\n    javaEnabled(): boolean;\\n}\\n\\ninterface NavigatorStorage {\\n    readonly storage: StorageManager;\\n}\\n\\n/** Node is an interface from which a number of DOM API object types inherit. It allows those types to be treated similarly; for example, inheriting the same set of methods, or being tested in the same way. */\\ninterface Node extends EventTarget {\\n    /**\\n     * Returns node\\'s node document\\'s document base URL.\\n     */\\n    readonly baseURI: string;\\n    /**\\n     * Returns the children.\\n     */\\n    readonly childNodes: NodeListOf<ChildNode>;\\n    /**\\n     * Returns the first child.\\n     */\\n    readonly firstChild: ChildNode | null;\\n    /**\\n     * Returns true if node is connected and false otherwise.\\n     */\\n    readonly isConnected: boolean;\\n    /**\\n     * Returns the last child.\\n     */\\n    readonly lastChild: ChildNode | null;\\n    /** @deprecated */\\n    readonly namespaceURI: string | null;\\n    /**\\n     * Returns the next sibling.\\n     */\\n    readonly nextSibling: ChildNode | null;\\n    /**\\n     * Returns a string appropriate for the type of node.\\n     */\\n    readonly nodeName: string;\\n    /**\\n     * Returns the type of node.\\n     */\\n    readonly nodeType: number;\\n    nodeValue: string | null;\\n    /**\\n     * Returns the node document. Returns null for documents.\\n     */\\n    readonly ownerDocument: Document | null;\\n    /**\\n     * Returns the parent element.\\n     */\\n    readonly parentElement: HTMLElement | null;\\n    /**\\n     * Returns the parent.\\n     */\\n    readonly parentNode: Node & ParentNode | null;\\n    /**\\n     * Returns the previous sibling.\\n     */\\n    readonly previousSibling: Node | null;\\n    textContent: string | null;\\n    appendChild<T extends Node>(newChild: T): T;\\n    /**\\n     * Returns a copy of node. If deep is true, the copy also includes the node\\'s descendants.\\n     */\\n    cloneNode(deep?: boolean): Node;\\n    /**\\n     * Returns a bitmask indicating the position of other relative to node.\\n     */\\n    compareDocumentPosition(other: Node): number;\\n    /**\\n     * Returns true if other is an inclusive descendant of node, and false otherwise.\\n     */\\n    contains(other: Node | null): boolean;\\n    /**\\n     * Returns node\\'s root.\\n     */\\n    getRootNode(options?: GetRootNodeOptions): Node;\\n    /**\\n     * Returns whether node has children.\\n     */\\n    hasChildNodes(): boolean;\\n    insertBefore<T extends Node>(newChild: T, refChild: Node | null): T;\\n    isDefaultNamespace(namespace: string | null): boolean;\\n    /**\\n     * Returns whether node and otherNode have the same properties.\\n     */\\n    isEqualNode(otherNode: Node | null): boolean;\\n    isSameNode(otherNode: Node | null): boolean;\\n    lookupNamespaceURI(prefix: string | null): string | null;\\n    lookupPrefix(namespace: string | null): string | null;\\n    /**\\n     * Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.\\n     */\\n    normalize(): void;\\n    removeChild<T extends Node>(oldChild: T): T;\\n    replaceChild<T extends Node>(newChild: Node, oldChild: T): T;\\n    readonly ATTRIBUTE_NODE: number;\\n    /**\\n     * node is a CDATASection node.\\n     */\\n    readonly CDATA_SECTION_NODE: number;\\n    /**\\n     * node is a Comment node.\\n     */\\n    readonly COMMENT_NODE: number;\\n    /**\\n     * node is a DocumentFragment node.\\n     */\\n    readonly DOCUMENT_FRAGMENT_NODE: number;\\n    /**\\n     * node is a document.\\n     */\\n    readonly DOCUMENT_NODE: number;\\n    /**\\n     * Set when other is a descendant of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINED_BY: number;\\n    /**\\n     * Set when other is an ancestor of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINS: number;\\n    /**\\n     * Set when node and other are not in the same tree.\\n     */\\n    readonly DOCUMENT_POSITION_DISCONNECTED: number;\\n    /**\\n     * Set when other is following node.\\n     */\\n    readonly DOCUMENT_POSITION_FOLLOWING: number;\\n    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\\n    /**\\n     * Set when other is preceding node.\\n     */\\n    readonly DOCUMENT_POSITION_PRECEDING: number;\\n    /**\\n     * node is a doctype.\\n     */\\n    readonly DOCUMENT_TYPE_NODE: number;\\n    /**\\n     * node is an element.\\n     */\\n    readonly ELEMENT_NODE: number;\\n    readonly ENTITY_NODE: number;\\n    readonly ENTITY_REFERENCE_NODE: number;\\n    readonly NOTATION_NODE: number;\\n    /**\\n     * node is a ProcessingInstruction node.\\n     */\\n    readonly PROCESSING_INSTRUCTION_NODE: number;\\n    /**\\n     * node is a Text node.\\n     */\\n    readonly TEXT_NODE: number;\\n}\\n\\ndeclare var Node: {\\n    prototype: Node;\\n    new(): Node;\\n    readonly ATTRIBUTE_NODE: number;\\n    /**\\n     * node is a CDATASection node.\\n     */\\n    readonly CDATA_SECTION_NODE: number;\\n    /**\\n     * node is a Comment node.\\n     */\\n    readonly COMMENT_NODE: number;\\n    /**\\n     * node is a DocumentFragment node.\\n     */\\n    readonly DOCUMENT_FRAGMENT_NODE: number;\\n    /**\\n     * node is a document.\\n     */\\n    readonly DOCUMENT_NODE: number;\\n    /**\\n     * Set when other is a descendant of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINED_BY: number;\\n    /**\\n     * Set when other is an ancestor of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINS: number;\\n    /**\\n     * Set when node and other are not in the same tree.\\n     */\\n    readonly DOCUMENT_POSITION_DISCONNECTED: number;\\n    /**\\n     * Set when other is following node.\\n     */\\n    readonly DOCUMENT_POSITION_FOLLOWING: number;\\n    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\\n    /**\\n     * Set when other is preceding node.\\n     */\\n    readonly DOCUMENT_POSITION_PRECEDING: number;\\n    /**\\n     * node is a doctype.\\n     */\\n    readonly DOCUMENT_TYPE_NODE: number;\\n    /**\\n     * node is an element.\\n     */\\n    readonly ELEMENT_NODE: number;\\n    readonly ENTITY_NODE: number;\\n    readonly ENTITY_REFERENCE_NODE: number;\\n    readonly NOTATION_NODE: number;\\n    /**\\n     * node is a ProcessingInstruction node.\\n     */\\n    readonly PROCESSING_INSTRUCTION_NODE: number;\\n    /**\\n     * node is a Text node.\\n     */\\n    readonly TEXT_NODE: number;\\n};\\n\\n/** An object used to filter the nodes in a NodeIterator or TreeWalker. They don\\'t know anything about the DOM or how to traverse nodes; they just know how to evaluate a single node against the provided filter. */\\ninterface NodeFilter {\\n    acceptNode(node: Node): number;\\n}\\n\\ndeclare var NodeFilter: {\\n    readonly FILTER_ACCEPT: number;\\n    readonly FILTER_REJECT: number;\\n    readonly FILTER_SKIP: number;\\n    readonly SHOW_ALL: number;\\n    readonly SHOW_ATTRIBUTE: number;\\n    readonly SHOW_CDATA_SECTION: number;\\n    readonly SHOW_COMMENT: number;\\n    readonly SHOW_DOCUMENT: number;\\n    readonly SHOW_DOCUMENT_FRAGMENT: number;\\n    readonly SHOW_DOCUMENT_TYPE: number;\\n    readonly SHOW_ELEMENT: number;\\n    readonly SHOW_ENTITY: number;\\n    readonly SHOW_ENTITY_REFERENCE: number;\\n    readonly SHOW_NOTATION: number;\\n    readonly SHOW_PROCESSING_INSTRUCTION: number;\\n    readonly SHOW_TEXT: number;\\n};\\n\\n/** An iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order. */\\ninterface NodeIterator {\\n    readonly filter: NodeFilter | null;\\n    readonly pointerBeforeReferenceNode: boolean;\\n    readonly referenceNode: Node;\\n    readonly root: Node;\\n    readonly whatToShow: number;\\n    detach(): void;\\n    nextNode(): Node | null;\\n    previousNode(): Node | null;\\n}\\n\\ndeclare var NodeIterator: {\\n    prototype: NodeIterator;\\n    new(): NodeIterator;\\n};\\n\\n/** NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll(). */\\ninterface NodeList {\\n    /**\\n     * Returns the number of nodes in the collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the node with index index from the collection. The nodes are sorted in tree order.\\n     */\\n    item(index: number): Node | null;\\n    /**\\n     * Performs the specified action for each node in an list.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;\\n    [index: number]: Node;\\n}\\n\\ndeclare var NodeList: {\\n    prototype: NodeList;\\n    new(): NodeList;\\n};\\n\\ninterface NodeListOf<TNode extends Node> extends NodeList {\\n    length: number;\\n    item(index: number): TNode;\\n    /**\\n     * Performs the specified action for each node in an list.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;\\n    [index: number]: TNode;\\n}\\n\\ninterface NonDocumentTypeChildNode {\\n    /**\\n     * Returns the first following sibling that is an element, and null otherwise.\\n     */\\n    readonly nextElementSibling: Element | null;\\n    /**\\n     * Returns the first preceding sibling that is an element, and null otherwise.\\n     */\\n    readonly previousElementSibling: Element | null;\\n}\\n\\ninterface NonElementParentNode {\\n    /**\\n     * Returns the first element within node\\'s descendants whose ID is elementId.\\n     */\\n    getElementById(elementId: string): Element | null;\\n}\\n\\ninterface NotificationEventMap {\\n    \"click\": Event;\\n    \"close\": Event;\\n    \"error\": Event;\\n    \"show\": Event;\\n}\\n\\n/** This Notifications API interface is used to configure and display desktop notifications to the user. */\\ninterface Notification extends EventTarget {\\n    readonly actions: ReadonlyArray<NotificationAction>;\\n    readonly badge: string;\\n    readonly body: string;\\n    readonly data: any;\\n    readonly dir: NotificationDirection;\\n    readonly icon: string;\\n    readonly image: string;\\n    readonly lang: string;\\n    onclick: ((this: Notification, ev: Event) => any) | null;\\n    onclose: ((this: Notification, ev: Event) => any) | null;\\n    onerror: ((this: Notification, ev: Event) => any) | null;\\n    onshow: ((this: Notification, ev: Event) => any) | null;\\n    readonly renotify: boolean;\\n    readonly requireInteraction: boolean;\\n    readonly silent: boolean;\\n    readonly tag: string;\\n    readonly timestamp: number;\\n    readonly title: string;\\n    readonly vibrate: ReadonlyArray<number>;\\n    close(): void;\\n    addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Notification: {\\n    prototype: Notification;\\n    new(title: string, options?: NotificationOptions): Notification;\\n    readonly maxActions: number;\\n    readonly permission: NotificationPermission;\\n    requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;\\n};\\n\\n/** The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements(). */\\ninterface OES_element_index_uint {\\n}\\n\\n/** The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth. */\\ninterface OES_standard_derivatives {\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: GLenum;\\n}\\n\\n/** The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures. */\\ninterface OES_texture_float {\\n}\\n\\n/** The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures. */\\ninterface OES_texture_float_linear {\\n}\\n\\n/** The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components. */\\ninterface OES_texture_half_float {\\n    readonly HALF_FLOAT_OES: GLenum;\\n}\\n\\n/** The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures. */\\ninterface OES_texture_half_float_linear {\\n}\\n\\ninterface OES_vertex_array_object {\\n    bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\\n    createVertexArrayOES(): WebGLVertexArrayObjectOES | null;\\n    deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\\n    isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\\n    readonly VERTEX_ARRAY_BINDING_OES: GLenum;\\n}\\n\\n/** The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface. */\\ninterface OfflineAudioCompletionEvent extends Event {\\n    readonly renderedBuffer: AudioBuffer;\\n}\\n\\ndeclare var OfflineAudioCompletionEvent: {\\n    prototype: OfflineAudioCompletionEvent;\\n    new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;\\n};\\n\\ninterface OfflineAudioContextEventMap extends BaseAudioContextEventMap {\\n    \"complete\": OfflineAudioCompletionEvent;\\n}\\n\\n/** An AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn\\'t render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer. */\\ninterface OfflineAudioContext extends BaseAudioContext {\\n    readonly length: number;\\n    oncomplete: ((this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any) | null;\\n    resume(): Promise<void>;\\n    startRendering(): Promise<AudioBuffer>;\\n    suspend(suspendTime: number): Promise<void>;\\n    addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var OfflineAudioContext: {\\n    prototype: OfflineAudioContext;\\n    new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;\\n    new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;\\n};\\n\\ninterface OffscreenCanvas extends EventTarget {\\n    /**\\n     * These attributes return the dimensions of the OffscreenCanvas object\\'s bitmap.\\n     * \\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\\n     */\\n    height: number;\\n    /**\\n     * These attributes return the dimensions of the OffscreenCanvas object\\'s bitmap.\\n     * \\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\\n     */\\n    width: number;\\n    /**\\n     * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.\\n     * \\n     * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of \"image/png\"; that type is also used if the requested type isn\\'t supported. If the image format supports variable quality (such as \"image/jpeg\"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.\\n     */\\n    convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;\\n    /**\\n     * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: \"2d\", \"bitmaprenderer\", \"webgl\", or \"webgl2\". options is handled by that API.\\n     * \\n     * This specification defines the \"2d\" context below, which is similar but distinct from the \"2d\" context that is created from a canvas element. The WebGL specifications define the \"webgl\" and \"webgl2\" contexts. [WEBGL]\\n     * \\n     * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a \"2d\" context after getting a \"webgl\" context).\\n     */\\n    getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): OffscreenCanvasRenderingContext2D | null;\\n    getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;\\n    getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null;\\n    getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null;\\n    getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\\n    /**\\n     * Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.\\n     */\\n    transferToImageBitmap(): ImageBitmap;\\n}\\n\\ndeclare var OffscreenCanvas: {\\n    prototype: OffscreenCanvas;\\n    new(width: number, height: number): OffscreenCanvas;\\n};\\n\\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\\n    readonly canvas: OffscreenCanvas;\\n    commit(): void;\\n}\\n\\ndeclare var OffscreenCanvasRenderingContext2D: {\\n    prototype: OffscreenCanvasRenderingContext2D;\\n    new(): OffscreenCanvasRenderingContext2D;\\n};\\n\\n/** The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone. */\\ninterface OscillatorNode extends AudioScheduledSourceNode {\\n    readonly detune: AudioParam;\\n    readonly frequency: AudioParam;\\n    type: OscillatorType;\\n    setPeriodicWave(periodicWave: PeriodicWave): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var OscillatorNode: {\\n    prototype: OscillatorNode;\\n    new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;\\n};\\n\\ninterface OverconstrainedError extends Error {\\n    constraint: string;\\n}\\n\\ndeclare var OverconstrainedError: {\\n    prototype: OverconstrainedError;\\n    new(): OverconstrainedError;\\n};\\n\\ninterface OverflowEvent extends UIEvent {\\n    readonly horizontalOverflow: boolean;\\n    readonly orient: number;\\n    readonly verticalOverflow: boolean;\\n    readonly BOTH: number;\\n    readonly HORIZONTAL: number;\\n    readonly VERTICAL: number;\\n}\\n\\ndeclare var OverflowEvent: {\\n    prototype: OverflowEvent;\\n    new(): OverflowEvent;\\n    readonly BOTH: number;\\n    readonly HORIZONTAL: number;\\n    readonly VERTICAL: number;\\n};\\n\\n/** The PageTransitionEvent is fired when a document is being loaded or unloaded. */\\ninterface PageTransitionEvent extends Event {\\n    readonly persisted: boolean;\\n}\\n\\ndeclare var PageTransitionEvent: {\\n    prototype: PageTransitionEvent;\\n    new(): PageTransitionEvent;\\n};\\n\\n/** A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can\\'t have panning effects without at least two audio channels! */\\ninterface PannerNode extends AudioNode {\\n    coneInnerAngle: number;\\n    coneOuterAngle: number;\\n    coneOuterGain: number;\\n    distanceModel: DistanceModelType;\\n    maxDistance: number;\\n    readonly orientationX: AudioParam;\\n    readonly orientationY: AudioParam;\\n    readonly orientationZ: AudioParam;\\n    panningModel: PanningModelType;\\n    readonly positionX: AudioParam;\\n    readonly positionY: AudioParam;\\n    readonly positionZ: AudioParam;\\n    refDistance: number;\\n    rolloffFactor: number;\\n    /** @deprecated */\\n    setOrientation(x: number, y: number, z: number): void;\\n    /** @deprecated */\\n    setPosition(x: number, y: number, z: number): void;\\n}\\n\\ndeclare var PannerNode: {\\n    prototype: PannerNode;\\n    new(context: BaseAudioContext, options?: PannerOptions): PannerNode;\\n};\\n\\ninterface ParentNode {\\n    readonly childElementCount: number;\\n    /**\\n     * Returns the child elements.\\n     */\\n    readonly children: HTMLCollection;\\n    /**\\n     * Returns the first child that is an element, and null otherwise.\\n     */\\n    readonly firstElementChild: Element | null;\\n    /**\\n     * Returns the last child that is an element, and null otherwise.\\n     */\\n    readonly lastElementChild: Element | null;\\n    /**\\n     * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    append(...nodes: (Node | string)[]): void;\\n    /**\\n     * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    prepend(...nodes: (Node | string)[]): void;\\n    /**\\n     * Returns the first element that is a descendant of node that matches selectors.\\n     */\\n    querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\\n    querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\\n    querySelector<E extends Element = Element>(selectors: string): E | null;\\n    /**\\n     * Returns all element descendants of node that match selectors.\\n     */\\n    querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\\n    querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\\n    querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\\n}\\n\\n/** This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */\\ninterface Path2D extends CanvasPath {\\n    /**\\n     * Adds to the path the path given by the argument.\\n     */\\n    addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\\n}\\n\\ndeclare var Path2D: {\\n    prototype: Path2D;\\n    new(path?: Path2D | string): Path2D;\\n};\\n\\n/** This Payment Request API interface is used to store shipping or payment address information. */\\ninterface PaymentAddress {\\n    readonly addressLine: string[];\\n    readonly city: string;\\n    readonly country: string;\\n    readonly dependentLocality: string;\\n    readonly languageCode: string;\\n    readonly organization: string;\\n    readonly phone: string;\\n    readonly postalCode: string;\\n    readonly recipient: string;\\n    readonly region: string;\\n    readonly sortingCode: string;\\n    toJSON(): any;\\n}\\n\\ndeclare var PaymentAddress: {\\n    prototype: PaymentAddress;\\n    new(): PaymentAddress;\\n};\\n\\ninterface PaymentRequestEventMap {\\n    \"shippingaddresschange\": Event;\\n    \"shippingoptionchange\": Event;\\n}\\n\\n/** This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user. */\\ninterface PaymentRequest extends EventTarget {\\n    readonly id: string;\\n    onshippingaddresschange: ((this: PaymentRequest, ev: Event) => any) | null;\\n    onshippingoptionchange: ((this: PaymentRequest, ev: Event) => any) | null;\\n    readonly shippingAddress: PaymentAddress | null;\\n    readonly shippingOption: string | null;\\n    readonly shippingType: PaymentShippingType | null;\\n    abort(): Promise<void>;\\n    canMakePayment(): Promise<boolean>;\\n    show(): Promise<PaymentResponse>;\\n    addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var PaymentRequest: {\\n    prototype: PaymentRequest;\\n    new(methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;\\n};\\n\\n/** This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action. */\\ninterface PaymentRequestUpdateEvent extends Event {\\n    updateWith(detailsPromise: PaymentDetailsUpdate | Promise<PaymentDetailsUpdate>): void;\\n}\\n\\ndeclare var PaymentRequestUpdateEvent: {\\n    prototype: PaymentRequestUpdateEvent;\\n    new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;\\n};\\n\\n/** This Payment Request API interface is returned after a user selects a payment method and approves a payment request. */\\ninterface PaymentResponse {\\n    readonly details: any;\\n    readonly methodName: string;\\n    readonly payerEmail: string | null;\\n    readonly payerName: string | null;\\n    readonly payerPhone: string | null;\\n    readonly requestId: string;\\n    readonly shippingAddress: PaymentAddress | null;\\n    readonly shippingOption: string | null;\\n    complete(result?: PaymentComplete): Promise<void>;\\n    toJSON(): any;\\n}\\n\\ndeclare var PaymentResponse: {\\n    prototype: PaymentResponse;\\n    new(): PaymentResponse;\\n};\\n\\ninterface PerfWidgetExternal {\\n    readonly activeNetworkRequestCount: number;\\n    readonly averageFrameTime: number;\\n    readonly averagePaintTime: number;\\n    readonly extraInformationEnabled: boolean;\\n    readonly independentRenderingEnabled: boolean;\\n    readonly irDisablingContentString: string;\\n    readonly irStatusAvailable: boolean;\\n    readonly maxCpuSpeed: number;\\n    readonly paintRequestsPerSecond: number;\\n    readonly performanceCounter: number;\\n    readonly performanceCounterFrequency: number;\\n    addEventListener(eventType: string, callback: Function): void;\\n    getMemoryUsage(): number;\\n    getProcessCpuUsage(): number;\\n    getRecentCpuUsage(last: number | null): any;\\n    getRecentFrames(last: number | null): any;\\n    getRecentMemoryUsage(last: number | null): any;\\n    getRecentPaintRequests(last: number | null): any;\\n    removeEventListener(eventType: string, callback: Function): void;\\n    repositionWindow(x: number, y: number): void;\\n    resizeWindow(width: number, height: number): void;\\n}\\n\\ndeclare var PerfWidgetExternal: {\\n    prototype: PerfWidgetExternal;\\n    new(): PerfWidgetExternal;\\n};\\n\\ninterface PerformanceEventMap {\\n    \"resourcetimingbufferfull\": Event;\\n}\\n\\n/** Provides access to performance-related information for the current page. It\\'s part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API. */\\ninterface Performance extends EventTarget {\\n    /** @deprecated */\\n    readonly navigation: PerformanceNavigation;\\n    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\\n    readonly timeOrigin: number;\\n    /** @deprecated */\\n    readonly timing: PerformanceTiming;\\n    clearMarks(markName?: string): void;\\n    clearMeasures(measureName?: string): void;\\n    clearResourceTimings(): void;\\n    getEntries(): PerformanceEntryList;\\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\\n    getEntriesByType(type: string): PerformanceEntryList;\\n    mark(markName: string): void;\\n    measure(measureName: string, startMark?: string, endMark?: string): void;\\n    now(): number;\\n    setResourceTimingBufferSize(maxSize: number): void;\\n    toJSON(): any;\\n    addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Performance: {\\n    prototype: Performance;\\n    new(): Performance;\\n};\\n\\n/** Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image). */\\ninterface PerformanceEntry {\\n    readonly duration: number;\\n    readonly entryType: string;\\n    readonly name: string;\\n    readonly startTime: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceEntry: {\\n    prototype: PerformanceEntry;\\n    new(): PerformanceEntry;\\n};\\n\\n/** PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of \"mark\". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser\\'s performance timeline. */\\ninterface PerformanceMark extends PerformanceEntry {\\n}\\n\\ndeclare var PerformanceMark: {\\n    prototype: PerformanceMark;\\n    new(): PerformanceMark;\\n};\\n\\n/** PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of \"measure\". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser\\'s performance timeline. */\\ninterface PerformanceMeasure extends PerformanceEntry {\\n}\\n\\ndeclare var PerformanceMeasure: {\\n    prototype: PerformanceMeasure;\\n    new(): PerformanceMeasure;\\n};\\n\\n/** The legacy PerformanceNavigation interface represents information about how the navigation to the current document was done. */\\ninterface PerformanceNavigation {\\n    readonly redirectCount: number;\\n    readonly type: number;\\n    toJSON(): any;\\n    readonly TYPE_BACK_FORWARD: number;\\n    readonly TYPE_NAVIGATE: number;\\n    readonly TYPE_RELOAD: number;\\n    readonly TYPE_RESERVED: number;\\n}\\n\\ndeclare var PerformanceNavigation: {\\n    prototype: PerformanceNavigation;\\n    new(): PerformanceNavigation;\\n    readonly TYPE_BACK_FORWARD: number;\\n    readonly TYPE_NAVIGATE: number;\\n    readonly TYPE_RELOAD: number;\\n    readonly TYPE_RESERVED: number;\\n};\\n\\n/** Provides methods and properties to store and retrieve metrics regarding the browser\\'s document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document. */\\ninterface PerformanceNavigationTiming extends PerformanceResourceTiming {\\n    readonly domComplete: number;\\n    readonly domContentLoadedEventEnd: number;\\n    readonly domContentLoadedEventStart: number;\\n    readonly domInteractive: number;\\n    readonly loadEventEnd: number;\\n    readonly loadEventStart: number;\\n    readonly redirectCount: number;\\n    readonly type: NavigationType;\\n    readonly unloadEventEnd: number;\\n    readonly unloadEventStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceNavigationTiming: {\\n    prototype: PerformanceNavigationTiming;\\n    new(): PerformanceNavigationTiming;\\n};\\n\\ninterface PerformanceObserver {\\n    disconnect(): void;\\n    observe(options?: PerformanceObserverInit): void;\\n    takeRecords(): PerformanceEntryList;\\n}\\n\\ndeclare var PerformanceObserver: {\\n    prototype: PerformanceObserver;\\n    new(callback: PerformanceObserverCallback): PerformanceObserver;\\n    readonly supportedEntryTypes: ReadonlyArray<string>;\\n};\\n\\ninterface PerformanceObserverEntryList {\\n    getEntries(): PerformanceEntryList;\\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\\n    getEntriesByType(type: string): PerformanceEntryList;\\n}\\n\\ndeclare var PerformanceObserverEntryList: {\\n    prototype: PerformanceObserverEntryList;\\n    new(): PerformanceObserverEntryList;\\n};\\n\\n/** Enables retrieval and analysis of detailed network timing data regarding the loading of an application\\'s resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script. */\\ninterface PerformanceResourceTiming extends PerformanceEntry {\\n    readonly connectEnd: number;\\n    readonly connectStart: number;\\n    readonly decodedBodySize: number;\\n    readonly domainLookupEnd: number;\\n    readonly domainLookupStart: number;\\n    readonly encodedBodySize: number;\\n    readonly fetchStart: number;\\n    readonly initiatorType: string;\\n    readonly nextHopProtocol: string;\\n    readonly redirectEnd: number;\\n    readonly redirectStart: number;\\n    readonly requestStart: number;\\n    readonly responseEnd: number;\\n    readonly responseStart: number;\\n    readonly secureConnectionStart: number;\\n    readonly transferSize: number;\\n    readonly workerStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceResourceTiming: {\\n    prototype: PerformanceResourceTiming;\\n    new(): PerformanceResourceTiming;\\n};\\n\\n/** A legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property. */\\ninterface PerformanceTiming {\\n    readonly connectEnd: number;\\n    readonly connectStart: number;\\n    readonly domComplete: number;\\n    readonly domContentLoadedEventEnd: number;\\n    readonly domContentLoadedEventStart: number;\\n    readonly domInteractive: number;\\n    readonly domLoading: number;\\n    readonly domainLookupEnd: number;\\n    readonly domainLookupStart: number;\\n    readonly fetchStart: number;\\n    readonly loadEventEnd: number;\\n    readonly loadEventStart: number;\\n    readonly navigationStart: number;\\n    readonly redirectEnd: number;\\n    readonly redirectStart: number;\\n    readonly requestStart: number;\\n    readonly responseEnd: number;\\n    readonly responseStart: number;\\n    readonly secureConnectionStart: number;\\n    readonly unloadEventEnd: number;\\n    readonly unloadEventStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceTiming: {\\n    prototype: PerformanceTiming;\\n    new(): PerformanceTiming;\\n};\\n\\n/** PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave(). */\\ninterface PeriodicWave {\\n}\\n\\ndeclare var PeriodicWave: {\\n    prototype: PeriodicWave;\\n    new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;\\n};\\n\\ninterface PermissionRequest extends DeferredPermissionRequest {\\n    readonly state: MSWebViewPermissionState;\\n    defer(): void;\\n}\\n\\ndeclare var PermissionRequest: {\\n    prototype: PermissionRequest;\\n    new(): PermissionRequest;\\n};\\n\\ninterface PermissionRequestedEvent extends Event {\\n    readonly permissionRequest: PermissionRequest;\\n}\\n\\ndeclare var PermissionRequestedEvent: {\\n    prototype: PermissionRequestedEvent;\\n    new(): PermissionRequestedEvent;\\n};\\n\\ninterface PermissionStatusEventMap {\\n    \"change\": Event;\\n}\\n\\ninterface PermissionStatus extends EventTarget {\\n    onchange: ((this: PermissionStatus, ev: Event) => any) | null;\\n    readonly state: PermissionState;\\n    addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var PermissionStatus: {\\n    prototype: PermissionStatus;\\n    new(): PermissionStatus;\\n};\\n\\ninterface Permissions {\\n    query(permissionDesc: PermissionDescriptor | DevicePermissionDescriptor | MidiPermissionDescriptor | PushPermissionDescriptor): Promise<PermissionStatus>;\\n}\\n\\ndeclare var Permissions: {\\n    prototype: Permissions;\\n    new(): Permissions;\\n};\\n\\n/** Provides information about a browser plugin. */\\ninterface Plugin {\\n    /**\\n     * Returns the plugin\\'s description.\\n     */\\n    readonly description: string;\\n    /**\\n     * Returns the plugin library\\'s filename, if applicable on the current platform.\\n     */\\n    readonly filename: string;\\n    /**\\n     * Returns the number of MIME types, represented by MimeType objects, supported by the plugin.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the plugin\\'s name.\\n     */\\n    readonly name: string;\\n    /**\\n     * Returns the specified MimeType object.\\n     */\\n    item(index: number): MimeType | null;\\n    namedItem(name: string): MimeType | null;\\n    [index: number]: MimeType;\\n}\\n\\ndeclare var Plugin: {\\n    prototype: Plugin;\\n    new(): Plugin;\\n};\\n\\n/** Used to store a list of Plugin objects describing the available plugins; it\\'s returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem(\"name\") methods. */\\ninterface PluginArray {\\n    readonly length: number;\\n    item(index: number): Plugin | null;\\n    namedItem(name: string): Plugin | null;\\n    refresh(reload?: boolean): void;\\n    [index: number]: Plugin;\\n}\\n\\ndeclare var PluginArray: {\\n    prototype: PluginArray;\\n    new(): PluginArray;\\n};\\n\\n/** The state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc. */\\ninterface PointerEvent extends MouseEvent {\\n    readonly height: number;\\n    readonly isPrimary: boolean;\\n    readonly pointerId: number;\\n    readonly pointerType: string;\\n    readonly pressure: number;\\n    readonly tangentialPressure: number;\\n    readonly tiltX: number;\\n    readonly tiltY: number;\\n    readonly twist: number;\\n    readonly width: number;\\n}\\n\\ndeclare var PointerEvent: {\\n    prototype: PointerEvent;\\n    new(type: string, eventInitDict?: PointerEventInit): PointerEvent;\\n};\\n\\n/** PopStateEvent is an event handler for the popstate event on the window. */\\ninterface PopStateEvent extends Event {\\n    readonly state: any;\\n}\\n\\ndeclare var PopStateEvent: {\\n    prototype: PopStateEvent;\\n    new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;\\n};\\n\\n/** The position of the concerned device at a given time. The position, represented by a Coordinates object, comprehends the 2D position of the device, on a spheroid representing the Earth, but also its altitude and its speed. */\\ninterface Position {\\n    readonly coords: Coordinates;\\n    readonly timestamp: number;\\n}\\n\\n/** The reason of an error occurring when using the geolocating device. */\\ninterface PositionError {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly PERMISSION_DENIED: number;\\n    readonly POSITION_UNAVAILABLE: number;\\n    readonly TIMEOUT: number;\\n}\\n\\n/** A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don\\'t recognize them. */\\ninterface ProcessingInstruction extends CharacterData {\\n    readonly target: string;\\n}\\n\\ndeclare var ProcessingInstruction: {\\n    prototype: ProcessingInstruction;\\n    new(): ProcessingInstruction;\\n};\\n\\n/** Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>). */\\ninterface ProgressEvent<T extends EventTarget = EventTarget> extends Event {\\n    readonly lengthComputable: boolean;\\n    readonly loaded: number;\\n    readonly target: T | null;\\n    readonly total: number;\\n}\\n\\ndeclare var ProgressEvent: {\\n    prototype: ProgressEvent;\\n    new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\\n};\\n\\ninterface PromiseRejectionEvent extends Event {\\n    readonly promise: Promise<any>;\\n    readonly reason: any;\\n}\\n\\ndeclare var PromiseRejectionEvent: {\\n    prototype: PromiseRejectionEvent;\\n    new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\\n};\\n\\ninterface PublicKeyCredential extends Credential {\\n    readonly rawId: ArrayBuffer;\\n    readonly response: AuthenticatorResponse;\\n    getClientExtensionResults(): AuthenticationExtensionsClientOutputs;\\n}\\n\\ndeclare var PublicKeyCredential: {\\n    prototype: PublicKeyCredential;\\n    new(): PublicKeyCredential;\\n    isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;\\n};\\n\\n/** This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. */\\ninterface PushManager {\\n    getSubscription(): Promise<PushSubscription | null>;\\n    permissionState(options?: PushSubscriptionOptionsInit): Promise<PushPermissionState>;\\n    subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;\\n}\\n\\ndeclare var PushManager: {\\n    prototype: PushManager;\\n    new(): PushManager;\\n    readonly supportedContentEncodings: ReadonlyArray<string>;\\n};\\n\\n/** This Push API interface provides a subcription\\'s URL endpoint and allows unsubscription from a push service. */\\ninterface PushSubscription {\\n    readonly endpoint: string;\\n    readonly expirationTime: number | null;\\n    readonly options: PushSubscriptionOptions;\\n    getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\\n    toJSON(): PushSubscriptionJSON;\\n    unsubscribe(): Promise<boolean>;\\n}\\n\\ndeclare var PushSubscription: {\\n    prototype: PushSubscription;\\n    new(): PushSubscription;\\n};\\n\\ninterface PushSubscriptionOptions {\\n    readonly applicationServerKey: ArrayBuffer | null;\\n    readonly userVisibleOnly: boolean;\\n}\\n\\ndeclare var PushSubscriptionOptions: {\\n    prototype: PushSubscriptionOptions;\\n    new(): PushSubscriptionOptions;\\n};\\n\\ninterface RTCCertificate {\\n    readonly expires: number;\\n    getFingerprints(): RTCDtlsFingerprint[];\\n}\\n\\ndeclare var RTCCertificate: {\\n    prototype: RTCCertificate;\\n    new(): RTCCertificate;\\n    getSupportedAlgorithms(): AlgorithmIdentifier[];\\n};\\n\\ninterface RTCDTMFSenderEventMap {\\n    \"tonechange\": RTCDTMFToneChangeEvent;\\n}\\n\\ninterface RTCDTMFSender extends EventTarget {\\n    readonly canInsertDTMF: boolean;\\n    ontonechange: ((this: RTCDTMFSender, ev: RTCDTMFToneChangeEvent) => any) | null;\\n    readonly toneBuffer: string;\\n    insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\\n    addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDTMFSender: {\\n    prototype: RTCDTMFSender;\\n    new(): RTCDTMFSender;\\n};\\n\\n/** Events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event. */\\ninterface RTCDTMFToneChangeEvent extends Event {\\n    readonly tone: string;\\n}\\n\\ndeclare var RTCDTMFToneChangeEvent: {\\n    prototype: RTCDTMFToneChangeEvent;\\n    new(type: string, eventInitDict: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;\\n};\\n\\ninterface RTCDataChannelEventMap {\\n    \"bufferedamountlow\": Event;\\n    \"close\": Event;\\n    \"error\": RTCErrorEvent;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\ninterface RTCDataChannel extends EventTarget {\\n    binaryType: string;\\n    readonly bufferedAmount: number;\\n    bufferedAmountLowThreshold: number;\\n    readonly id: number | null;\\n    readonly label: string;\\n    readonly maxPacketLifeTime: number | null;\\n    readonly maxRetransmits: number | null;\\n    readonly negotiated: boolean;\\n    onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    onclose: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    onerror: ((this: RTCDataChannel, ev: RTCErrorEvent) => any) | null;\\n    onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;\\n    onopen: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    readonly ordered: boolean;\\n    readonly priority: RTCPriorityType;\\n    readonly protocol: string;\\n    readonly readyState: RTCDataChannelState;\\n    close(): void;\\n    send(data: string): void;\\n    send(data: Blob): void;\\n    send(data: ArrayBuffer): void;\\n    send(data: ArrayBufferView): void;\\n    addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDataChannel: {\\n    prototype: RTCDataChannel;\\n    new(): RTCDataChannel;\\n};\\n\\ninterface RTCDataChannelEvent extends Event {\\n    readonly channel: RTCDataChannel;\\n}\\n\\ndeclare var RTCDataChannelEvent: {\\n    prototype: RTCDataChannelEvent;\\n    new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;\\n};\\n\\ninterface RTCDtlsTransportEventMap {\\n    \"error\": RTCErrorEvent;\\n    \"statechange\": Event;\\n}\\n\\ninterface RTCDtlsTransport extends EventTarget {\\n    onerror: ((this: RTCDtlsTransport, ev: RTCErrorEvent) => any) | null;\\n    onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;\\n    readonly state: RTCDtlsTransportState;\\n    readonly transport: RTCIceTransport;\\n    getRemoteCertificates(): ArrayBuffer[];\\n    addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDtlsTransport: {\\n    prototype: RTCDtlsTransport;\\n    new(): RTCDtlsTransport;\\n};\\n\\ninterface RTCDtlsTransportStateChangedEvent extends Event {\\n    readonly state: RTCDtlsTransportState;\\n}\\n\\ndeclare var RTCDtlsTransportStateChangedEvent: {\\n    prototype: RTCDtlsTransportStateChangedEvent;\\n    new(): RTCDtlsTransportStateChangedEvent;\\n};\\n\\ninterface RTCDtmfSenderEventMap {\\n    \"tonechange\": RTCDTMFToneChangeEvent;\\n}\\n\\ninterface RTCDtmfSender extends EventTarget {\\n    readonly canInsertDTMF: boolean;\\n    readonly duration: number;\\n    readonly interToneGap: number;\\n    ontonechange: ((this: RTCDtmfSender, ev: RTCDTMFToneChangeEvent) => any) | null;\\n    readonly sender: RTCRtpSender;\\n    readonly toneBuffer: string;\\n    insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\\n    addEventListener<K extends keyof RTCDtmfSenderEventMap>(type: K, listener: (this: RTCDtmfSender, ev: RTCDtmfSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDtmfSenderEventMap>(type: K, listener: (this: RTCDtmfSender, ev: RTCDtmfSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDtmfSender: {\\n    prototype: RTCDtmfSender;\\n    new(sender: RTCRtpSender): RTCDtmfSender;\\n};\\n\\ninterface RTCError extends Error {\\n    errorDetail: string;\\n    httpRequestStatusCode: number;\\n    message: string;\\n    name: string;\\n    receivedAlert: number | null;\\n    sctpCauseCode: number;\\n    sdpLineNumber: number;\\n    sentAlert: number | null;\\n}\\n\\ndeclare var RTCError: {\\n    prototype: RTCError;\\n    new(errorDetail?: string, message?: string): RTCError;\\n};\\n\\ninterface RTCErrorEvent extends Event {\\n    readonly error: RTCError | null;\\n}\\n\\ndeclare var RTCErrorEvent: {\\n    prototype: RTCErrorEvent;\\n    new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;\\n};\\n\\n/** The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection. */\\ninterface RTCIceCandidate {\\n    readonly candidate: string;\\n    readonly component: RTCIceComponent | null;\\n    readonly foundation: string | null;\\n    readonly ip: string | null;\\n    readonly port: number | null;\\n    readonly priority: number | null;\\n    readonly protocol: RTCIceProtocol | null;\\n    readonly relatedAddress: string | null;\\n    readonly relatedPort: number | null;\\n    readonly sdpMLineIndex: number | null;\\n    readonly sdpMid: string | null;\\n    readonly tcpType: RTCIceTcpCandidateType | null;\\n    readonly type: RTCIceCandidateType | null;\\n    readonly usernameFragment: string | null;\\n    toJSON(): RTCIceCandidateInit;\\n}\\n\\ndeclare var RTCIceCandidate: {\\n    prototype: RTCIceCandidate;\\n    new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;\\n};\\n\\ninterface RTCIceCandidatePairChangedEvent extends Event {\\n    readonly pair: RTCIceCandidatePair;\\n}\\n\\ndeclare var RTCIceCandidatePairChangedEvent: {\\n    prototype: RTCIceCandidatePairChangedEvent;\\n    new(): RTCIceCandidatePairChangedEvent;\\n};\\n\\ninterface RTCIceGathererEventMap {\\n    \"error\": Event;\\n    \"localcandidate\": RTCIceGathererEvent;\\n}\\n\\ninterface RTCIceGatherer extends RTCStatsProvider {\\n    readonly component: RTCIceComponent;\\n    onerror: ((this: RTCIceGatherer, ev: Event) => any) | null;\\n    onlocalcandidate: ((this: RTCIceGatherer, ev: RTCIceGathererEvent) => any) | null;\\n    createAssociatedGatherer(): RTCIceGatherer;\\n    getLocalCandidates(): RTCIceCandidateDictionary[];\\n    getLocalParameters(): RTCIceParameters;\\n    addEventListener<K extends keyof RTCIceGathererEventMap>(type: K, listener: (this: RTCIceGatherer, ev: RTCIceGathererEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCIceGathererEventMap>(type: K, listener: (this: RTCIceGatherer, ev: RTCIceGathererEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCIceGatherer: {\\n    prototype: RTCIceGatherer;\\n    new(options: RTCIceGatherOptions): RTCIceGatherer;\\n};\\n\\ninterface RTCIceGathererEvent extends Event {\\n    readonly candidate: RTCIceCandidateDictionary | RTCIceCandidateComplete;\\n}\\n\\ndeclare var RTCIceGathererEvent: {\\n    prototype: RTCIceGathererEvent;\\n    new(): RTCIceGathererEvent;\\n};\\n\\ninterface RTCIceTransportEventMap {\\n    \"gatheringstatechange\": Event;\\n    \"selectedcandidatepairchange\": Event;\\n    \"statechange\": Event;\\n}\\n\\n/** Provides access to information about the ICE transport layer over which the data is being sent and received. */\\ninterface RTCIceTransport extends EventTarget {\\n    readonly component: RTCIceComponent;\\n    readonly gatheringState: RTCIceGathererState;\\n    ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    readonly role: RTCIceRole;\\n    readonly state: RTCIceTransportState;\\n    getLocalCandidates(): RTCIceCandidate[];\\n    getLocalParameters(): RTCIceParameters | null;\\n    getRemoteCandidates(): RTCIceCandidate[];\\n    getRemoteParameters(): RTCIceParameters | null;\\n    getSelectedCandidatePair(): RTCIceCandidatePair | null;\\n    addEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCIceTransport: {\\n    prototype: RTCIceTransport;\\n    new(): RTCIceTransport;\\n};\\n\\ninterface RTCIceTransportStateChangedEvent extends Event {\\n    readonly state: RTCIceTransportState;\\n}\\n\\ndeclare var RTCIceTransportStateChangedEvent: {\\n    prototype: RTCIceTransportStateChangedEvent;\\n    new(): RTCIceTransportStateChangedEvent;\\n};\\n\\ninterface RTCIdentityAssertion {\\n    idp: string;\\n    name: string;\\n}\\n\\ndeclare var RTCIdentityAssertion: {\\n    prototype: RTCIdentityAssertion;\\n    new(idp: string, name: string): RTCIdentityAssertion;\\n};\\n\\ninterface RTCPeerConnectionEventMap {\\n    \"connectionstatechange\": Event;\\n    \"datachannel\": RTCDataChannelEvent;\\n    \"icecandidate\": RTCPeerConnectionIceEvent;\\n    \"icecandidateerror\": RTCPeerConnectionIceErrorEvent;\\n    \"iceconnectionstatechange\": Event;\\n    \"icegatheringstatechange\": Event;\\n    \"negotiationneeded\": Event;\\n    \"signalingstatechange\": Event;\\n    \"statsended\": RTCStatsEvent;\\n    \"track\": RTCTrackEvent;\\n}\\n\\n/** A WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it\\'s no longer needed. */\\ninterface RTCPeerConnection extends EventTarget {\\n    readonly canTrickleIceCandidates: boolean | null;\\n    readonly connectionState: RTCPeerConnectionState;\\n    readonly currentLocalDescription: RTCSessionDescription | null;\\n    readonly currentRemoteDescription: RTCSessionDescription | null;\\n    readonly iceConnectionState: RTCIceConnectionState;\\n    readonly iceGatheringState: RTCIceGatheringState;\\n    readonly idpErrorInfo: string | null;\\n    readonly idpLoginUrl: string | null;\\n    readonly localDescription: RTCSessionDescription | null;\\n    onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;\\n    onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;\\n    onicecandidateerror: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceErrorEvent) => any) | null;\\n    oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onstatsended: ((this: RTCPeerConnection, ev: RTCStatsEvent) => any) | null;\\n    ontrack: ((this: RTCPeerConnection, ev: RTCTrackEvent) => any) | null;\\n    readonly peerIdentity: Promise<RTCIdentityAssertion>;\\n    readonly pendingLocalDescription: RTCSessionDescription | null;\\n    readonly pendingRemoteDescription: RTCSessionDescription | null;\\n    readonly remoteDescription: RTCSessionDescription | null;\\n    readonly sctp: RTCSctpTransport | null;\\n    readonly signalingState: RTCSignalingState;\\n    addIceCandidate(candidate: RTCIceCandidateInit | RTCIceCandidate): Promise<void>;\\n    addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;\\n    addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;\\n    close(): void;\\n    createAnswer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;\\n    createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;\\n    createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;\\n    getConfiguration(): RTCConfiguration;\\n    getIdentityAssertion(): Promise<string>;\\n    getReceivers(): RTCRtpReceiver[];\\n    getSenders(): RTCRtpSender[];\\n    getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;\\n    getTransceivers(): RTCRtpTransceiver[];\\n    removeTrack(sender: RTCRtpSender): void;\\n    setConfiguration(configuration: RTCConfiguration): void;\\n    setIdentityProvider(provider: string, options?: RTCIdentityProviderOptions): void;\\n    setLocalDescription(description: RTCSessionDescriptionInit): Promise<void>;\\n    setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;\\n    addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCPeerConnection: {\\n    prototype: RTCPeerConnection;\\n    new(configuration?: RTCConfiguration): RTCPeerConnection;\\n    generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;\\n    getDefaultIceServers(): RTCIceServer[];\\n};\\n\\ninterface RTCPeerConnectionIceErrorEvent extends Event {\\n    readonly errorCode: number;\\n    readonly errorText: string;\\n    readonly hostCandidate: string;\\n    readonly url: string;\\n}\\n\\ndeclare var RTCPeerConnectionIceErrorEvent: {\\n    prototype: RTCPeerConnectionIceErrorEvent;\\n    new(type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;\\n};\\n\\n/** Events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate. */\\ninterface RTCPeerConnectionIceEvent extends Event {\\n    readonly candidate: RTCIceCandidate | null;\\n    readonly url: string | null;\\n}\\n\\ndeclare var RTCPeerConnectionIceEvent: {\\n    prototype: RTCPeerConnectionIceEvent;\\n    new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;\\n};\\n\\n/** This WebRTC API interface manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection. */\\ninterface RTCRtpReceiver {\\n    readonly rtcpTransport: RTCDtlsTransport | null;\\n    readonly track: MediaStreamTrack;\\n    readonly transport: RTCDtlsTransport | null;\\n    getContributingSources(): RTCRtpContributingSource[];\\n    getParameters(): RTCRtpReceiveParameters;\\n    getStats(): Promise<RTCStatsReport>;\\n    getSynchronizationSources(): RTCRtpSynchronizationSource[];\\n}\\n\\ndeclare var RTCRtpReceiver: {\\n    prototype: RTCRtpReceiver;\\n    new(): RTCRtpReceiver;\\n    getCapabilities(kind: string): RTCRtpCapabilities | null;\\n};\\n\\n/** Provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer. */\\ninterface RTCRtpSender {\\n    readonly dtmf: RTCDTMFSender | null;\\n    readonly rtcpTransport: RTCDtlsTransport | null;\\n    readonly track: MediaStreamTrack | null;\\n    readonly transport: RTCDtlsTransport | null;\\n    getParameters(): RTCRtpSendParameters;\\n    getStats(): Promise<RTCStatsReport>;\\n    replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;\\n    setParameters(parameters: RTCRtpSendParameters): Promise<void>;\\n    setStreams(...streams: MediaStream[]): void;\\n}\\n\\ndeclare var RTCRtpSender: {\\n    prototype: RTCRtpSender;\\n    new(): RTCRtpSender;\\n    getCapabilities(kind: string): RTCRtpCapabilities | null;\\n};\\n\\ninterface RTCRtpTransceiver {\\n    readonly currentDirection: RTCRtpTransceiverDirection | null;\\n    direction: RTCRtpTransceiverDirection;\\n    readonly mid: string | null;\\n    readonly receiver: RTCRtpReceiver;\\n    readonly sender: RTCRtpSender;\\n    readonly stopped: boolean;\\n    setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;\\n    stop(): void;\\n}\\n\\ndeclare var RTCRtpTransceiver: {\\n    prototype: RTCRtpTransceiver;\\n    new(): RTCRtpTransceiver;\\n};\\n\\ninterface RTCSctpTransportEventMap {\\n    \"statechange\": Event;\\n}\\n\\ninterface RTCSctpTransport {\\n    readonly maxChannels: number | null;\\n    readonly maxMessageSize: number;\\n    onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;\\n    readonly state: RTCSctpTransportState;\\n    readonly transport: RTCDtlsTransport;\\n    addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCSctpTransport: {\\n    prototype: RTCSctpTransport;\\n    new(): RTCSctpTransport;\\n};\\n\\n/** One end of a connection—or potential connection—and how it\\'s configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session. */\\ninterface RTCSessionDescription {\\n    readonly sdp: string;\\n    readonly type: RTCSdpType;\\n    toJSON(): any;\\n}\\n\\ndeclare var RTCSessionDescription: {\\n    prototype: RTCSessionDescription;\\n    new(descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;\\n};\\n\\ninterface RTCSrtpSdesTransportEventMap {\\n    \"error\": Event;\\n}\\n\\ninterface RTCSrtpSdesTransport extends EventTarget {\\n    onerror: ((this: RTCSrtpSdesTransport, ev: Event) => any) | null;\\n    readonly transport: RTCIceTransport;\\n    addEventListener<K extends keyof RTCSrtpSdesTransportEventMap>(type: K, listener: (this: RTCSrtpSdesTransport, ev: RTCSrtpSdesTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCSrtpSdesTransportEventMap>(type: K, listener: (this: RTCSrtpSdesTransport, ev: RTCSrtpSdesTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCSrtpSdesTransport: {\\n    prototype: RTCSrtpSdesTransport;\\n    new(transport: RTCIceTransport, encryptParameters: RTCSrtpSdesParameters, decryptParameters: RTCSrtpSdesParameters): RTCSrtpSdesTransport;\\n    getLocalParameters(): RTCSrtpSdesParameters[];\\n};\\n\\ninterface RTCSsrcConflictEvent extends Event {\\n    readonly ssrc: number;\\n}\\n\\ndeclare var RTCSsrcConflictEvent: {\\n    prototype: RTCSsrcConflictEvent;\\n    new(): RTCSsrcConflictEvent;\\n};\\n\\ninterface RTCStatsEvent extends Event {\\n    readonly report: RTCStatsReport;\\n}\\n\\ndeclare var RTCStatsEvent: {\\n    prototype: RTCStatsEvent;\\n    new(type: string, eventInitDict: RTCStatsEventInit): RTCStatsEvent;\\n};\\n\\ninterface RTCStatsProvider extends EventTarget {\\n    getStats(): Promise<RTCStatsReport>;\\n    msGetStats(): Promise<RTCStatsReport>;\\n}\\n\\ndeclare var RTCStatsProvider: {\\n    prototype: RTCStatsProvider;\\n    new(): RTCStatsProvider;\\n};\\n\\ninterface RTCStatsReport {\\n    forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;\\n}\\n\\ndeclare var RTCStatsReport: {\\n    prototype: RTCStatsReport;\\n    new(): RTCStatsReport;\\n};\\n\\ninterface RTCTrackEvent extends Event {\\n    readonly receiver: RTCRtpReceiver;\\n    readonly streams: ReadonlyArray<MediaStream>;\\n    readonly track: MediaStreamTrack;\\n    readonly transceiver: RTCRtpTransceiver;\\n}\\n\\ndeclare var RTCTrackEvent: {\\n    prototype: RTCTrackEvent;\\n    new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;\\n};\\n\\ninterface RadioNodeList extends NodeList {\\n    value: string;\\n}\\n\\ndeclare var RadioNodeList: {\\n    prototype: RadioNodeList;\\n    new(): RadioNodeList;\\n};\\n\\ninterface RandomSource {\\n    getRandomValues<T extends Int8Array | Uint8ClampedArray | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array>(array: T): T;\\n}\\n\\ndeclare var RandomSource: {\\n    prototype: RandomSource;\\n    new(): RandomSource;\\n};\\n\\n/** A fragment of a document that can contain nodes and parts of text nodes. */\\ninterface Range extends AbstractRange {\\n    /**\\n     * Returns the node, furthest away from the document, that is an ancestor of both range\\'s start node and end node.\\n     */\\n    readonly commonAncestorContainer: Node;\\n    cloneContents(): DocumentFragment;\\n    cloneRange(): Range;\\n    collapse(toStart?: boolean): void;\\n    compareBoundaryPoints(how: number, sourceRange: Range): number;\\n    /**\\n     * Returns −1 if the point is before the range, 0 if the point is in the range, and 1 if the point is after the range.\\n     */\\n    comparePoint(node: Node, offset: number): number;\\n    createContextualFragment(fragment: string): DocumentFragment;\\n    deleteContents(): void;\\n    detach(): void;\\n    extractContents(): DocumentFragment;\\n    getBoundingClientRect(): DOMRect;\\n    getClientRects(): DOMRectList;\\n    insertNode(node: Node): void;\\n    /**\\n     * Returns whether range intersects node.\\n     */\\n    intersectsNode(node: Node): boolean;\\n    isPointInRange(node: Node, offset: number): boolean;\\n    selectNode(node: Node): void;\\n    selectNodeContents(node: Node): void;\\n    setEnd(node: Node, offset: number): void;\\n    setEndAfter(node: Node): void;\\n    setEndBefore(node: Node): void;\\n    setStart(node: Node, offset: number): void;\\n    setStartAfter(node: Node): void;\\n    setStartBefore(node: Node): void;\\n    surroundContents(newParent: Node): void;\\n    readonly END_TO_END: number;\\n    readonly END_TO_START: number;\\n    readonly START_TO_END: number;\\n    readonly START_TO_START: number;\\n}\\n\\ndeclare var Range: {\\n    prototype: Range;\\n    new(): Range;\\n    readonly END_TO_END: number;\\n    readonly END_TO_START: number;\\n    readonly START_TO_END: number;\\n    readonly START_TO_START: number;\\n};\\n\\ninterface ReadableByteStreamController {\\n    readonly byobRequest: ReadableStreamBYOBRequest | undefined;\\n    readonly desiredSize: number | null;\\n    close(): void;\\n    enqueue(chunk: ArrayBufferView): void;\\n    error(error?: any): void;\\n}\\n\\n/** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */\\ninterface ReadableStream<R = any> {\\n    readonly locked: boolean;\\n    cancel(reason?: any): Promise<void>;\\n    getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader;\\n    getReader(): ReadableStreamDefaultReader<R>;\\n    pipeThrough<T>({ writable, readable }: { writable: WritableStream<R>, readable: ReadableStream<T> }, options?: PipeOptions): ReadableStream<T>;\\n    pipeTo(dest: WritableStream<R>, options?: PipeOptions): Promise<void>;\\n    tee(): [ReadableStream<R>, ReadableStream<R>];\\n}\\n\\ndeclare var ReadableStream: {\\n    prototype: ReadableStream;\\n    new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number, size?: undefined }): ReadableStream<Uint8Array>;\\n    new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\\n};\\n\\ninterface ReadableStreamBYOBReader {\\n    readonly closed: Promise<void>;\\n    cancel(reason?: any): Promise<void>;\\n    read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;\\n    releaseLock(): void;\\n}\\n\\ninterface ReadableStreamBYOBRequest {\\n    readonly view: ArrayBufferView;\\n    respond(bytesWritten: number): void;\\n    respondWithNewView(view: ArrayBufferView): void;\\n}\\n\\ninterface ReadableStreamDefaultController<R = any> {\\n    readonly desiredSize: number | null;\\n    close(): void;\\n    enqueue(chunk: R): void;\\n    error(error?: any): void;\\n}\\n\\ninterface ReadableStreamDefaultReader<R = any> {\\n    readonly closed: Promise<void>;\\n    cancel(reason?: any): Promise<void>;\\n    read(): Promise<ReadableStreamReadResult<R>>;\\n    releaseLock(): void;\\n}\\n\\ninterface ReadableStreamReadResult<T> {\\n    done: boolean;\\n    value: T;\\n}\\n\\ninterface ReadableStreamReader<R = any> {\\n    cancel(): Promise<void>;\\n    read(): Promise<ReadableStreamReadResult<R>>;\\n    releaseLock(): void;\\n}\\n\\ndeclare var ReadableStreamReader: {\\n    prototype: ReadableStreamReader;\\n    new(): ReadableStreamReader;\\n};\\n\\n/** This Fetch API interface represents a resource request. */\\ninterface Request extends Body {\\n    /**\\n     * Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser\\'s cache when fetching.\\n     */\\n    readonly cache: RequestCache;\\n    /**\\n     * Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL.\\n     */\\n    readonly credentials: RequestCredentials;\\n    /**\\n     * Returns the kind of resource requested by request, e.g., \"document\" or \"script\".\\n     */\\n    readonly destination: RequestDestination;\\n    /**\\n     * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the \"Host\" header.\\n     */\\n    readonly headers: Headers;\\n    /**\\n     * Returns request\\'s subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI]\\n     */\\n    readonly integrity: string;\\n    /**\\n     * Returns a boolean indicating whether or not request is for a history navigation (a.k.a. back-foward navigation).\\n     */\\n    readonly isHistoryNavigation: boolean;\\n    /**\\n     * Returns a boolean indicating whether or not request is for a reload navigation.\\n     */\\n    readonly isReloadNavigation: boolean;\\n    /**\\n     * Returns a boolean indicating whether or not request can outlive the global in which it was created.\\n     */\\n    readonly keepalive: boolean;\\n    /**\\n     * Returns request\\'s HTTP method, which is \"GET\" by default.\\n     */\\n    readonly method: string;\\n    /**\\n     * Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs.\\n     */\\n    readonly mode: RequestMode;\\n    /**\\n     * Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default.\\n     */\\n    readonly redirect: RequestRedirect;\\n    /**\\n     * Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and \"about:client\" when defaulting to the global\\'s default. This is used during fetching to determine the value of the `Referer` header of the request being made.\\n     */\\n    readonly referrer: string;\\n    /**\\n     * Returns the referrer policy associated with request. This is used during fetching to compute the value of the request\\'s referrer.\\n     */\\n    readonly referrerPolicy: ReferrerPolicy;\\n    /**\\n     * Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler.\\n     */\\n    readonly signal: AbortSignal;\\n    /**\\n     * Returns the URL of request as a string.\\n     */\\n    readonly url: string;\\n    clone(): Request;\\n}\\n\\ndeclare var Request: {\\n    prototype: Request;\\n    new(input: RequestInfo, init?: RequestInit): Request;\\n};\\n\\n/** This Fetch API interface represents the response to a request. */\\ninterface Response extends Body {\\n    readonly headers: Headers;\\n    readonly ok: boolean;\\n    readonly redirected: boolean;\\n    readonly status: number;\\n    readonly statusText: string;\\n    readonly trailer: Promise<Headers>;\\n    readonly type: ResponseType;\\n    readonly url: string;\\n    clone(): Response;\\n}\\n\\ndeclare var Response: {\\n    prototype: Response;\\n    new(body?: BodyInit | null, init?: ResponseInit): Response;\\n    error(): Response;\\n    redirect(url: string, status?: number): Response;\\n};\\n\\n/** Provides access to the properties of <a> element, as well as methods to manipulate them. */\\ninterface SVGAElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly target: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAElement: {\\n    prototype: SVGAElement;\\n    new(): SVGAElement;\\n};\\n\\n/** Used to represent a value that can be an <angle> or <number> value. An SVGAngle reflected through the animVal attribute is always read only. */\\ninterface SVGAngle {\\n    readonly unitType: number;\\n    value: number;\\n    valueAsString: string;\\n    valueInSpecifiedUnits: number;\\n    convertToSpecifiedUnits(unitType: number): void;\\n    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\\n    readonly SVG_ANGLETYPE_DEG: number;\\n    readonly SVG_ANGLETYPE_GRAD: number;\\n    readonly SVG_ANGLETYPE_RAD: number;\\n    readonly SVG_ANGLETYPE_UNKNOWN: number;\\n    readonly SVG_ANGLETYPE_UNSPECIFIED: number;\\n}\\n\\ndeclare var SVGAngle: {\\n    prototype: SVGAngle;\\n    new(): SVGAngle;\\n    readonly SVG_ANGLETYPE_DEG: number;\\n    readonly SVG_ANGLETYPE_GRAD: number;\\n    readonly SVG_ANGLETYPE_RAD: number;\\n    readonly SVG_ANGLETYPE_UNKNOWN: number;\\n    readonly SVG_ANGLETYPE_UNSPECIFIED: number;\\n};\\n\\ninterface SVGAnimateElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateElement: {\\n    prototype: SVGAnimateElement;\\n    new(): SVGAnimateElement;\\n};\\n\\ninterface SVGAnimateMotionElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateMotionElement: {\\n    prototype: SVGAnimateMotionElement;\\n    new(): SVGAnimateMotionElement;\\n};\\n\\ninterface SVGAnimateTransformElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateTransformElement: {\\n    prototype: SVGAnimateTransformElement;\\n    new(): SVGAnimateTransformElement;\\n};\\n\\n/** Used for attributes of basic type <angle> which can be animated. */\\ninterface SVGAnimatedAngle {\\n    readonly animVal: SVGAngle;\\n    readonly baseVal: SVGAngle;\\n}\\n\\ndeclare var SVGAnimatedAngle: {\\n    prototype: SVGAnimatedAngle;\\n    new(): SVGAnimatedAngle;\\n};\\n\\n/** Used for attributes of type boolean which can be animated. */\\ninterface SVGAnimatedBoolean {\\n    readonly animVal: boolean;\\n    baseVal: boolean;\\n}\\n\\ndeclare var SVGAnimatedBoolean: {\\n    prototype: SVGAnimatedBoolean;\\n    new(): SVGAnimatedBoolean;\\n};\\n\\n/** Used for attributes whose value must be a constant from a particular enumeration and which can be animated. */\\ninterface SVGAnimatedEnumeration {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedEnumeration: {\\n    prototype: SVGAnimatedEnumeration;\\n    new(): SVGAnimatedEnumeration;\\n};\\n\\n/** Used for attributes of basic type <integer> which can be animated. */\\ninterface SVGAnimatedInteger {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedInteger: {\\n    prototype: SVGAnimatedInteger;\\n    new(): SVGAnimatedInteger;\\n};\\n\\n/** Used for attributes of basic type <length> which can be animated. */\\ninterface SVGAnimatedLength {\\n    readonly animVal: SVGLength;\\n    readonly baseVal: SVGLength;\\n}\\n\\ndeclare var SVGAnimatedLength: {\\n    prototype: SVGAnimatedLength;\\n    new(): SVGAnimatedLength;\\n};\\n\\n/** Used for attributes of type SVGLengthList which can be animated. */\\ninterface SVGAnimatedLengthList {\\n    readonly animVal: SVGLengthList;\\n    readonly baseVal: SVGLengthList;\\n}\\n\\ndeclare var SVGAnimatedLengthList: {\\n    prototype: SVGAnimatedLengthList;\\n    new(): SVGAnimatedLengthList;\\n};\\n\\n/** Used for attributes of basic type <Number> which can be animated. */\\ninterface SVGAnimatedNumber {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedNumber: {\\n    prototype: SVGAnimatedNumber;\\n    new(): SVGAnimatedNumber;\\n};\\n\\n/** The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated. */\\ninterface SVGAnimatedNumberList {\\n    readonly animVal: SVGNumberList;\\n    readonly baseVal: SVGNumberList;\\n}\\n\\ndeclare var SVGAnimatedNumberList: {\\n    prototype: SVGAnimatedNumberList;\\n    new(): SVGAnimatedNumberList;\\n};\\n\\ninterface SVGAnimatedPoints {\\n    readonly animatedPoints: SVGPointList;\\n    readonly points: SVGPointList;\\n}\\n\\n/** Used for attributes of type SVGPreserveAspectRatio which can be animated. */\\ninterface SVGAnimatedPreserveAspectRatio {\\n    readonly animVal: SVGPreserveAspectRatio;\\n    readonly baseVal: SVGPreserveAspectRatio;\\n}\\n\\ndeclare var SVGAnimatedPreserveAspectRatio: {\\n    prototype: SVGAnimatedPreserveAspectRatio;\\n    new(): SVGAnimatedPreserveAspectRatio;\\n};\\n\\n/** Used for attributes of basic SVGRect which can be animated. */\\ninterface SVGAnimatedRect {\\n    readonly animVal: DOMRectReadOnly;\\n    readonly baseVal: DOMRect;\\n}\\n\\ndeclare var SVGAnimatedRect: {\\n    prototype: SVGAnimatedRect;\\n    new(): SVGAnimatedRect;\\n};\\n\\n/** The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this. */\\ninterface SVGAnimatedString {\\n    readonly animVal: string;\\n    baseVal: string;\\n}\\n\\ndeclare var SVGAnimatedString: {\\n    prototype: SVGAnimatedString;\\n    new(): SVGAnimatedString;\\n};\\n\\n/** Used for attributes which take a list of numbers and which can be animated. */\\ninterface SVGAnimatedTransformList {\\n    readonly animVal: SVGTransformList;\\n    readonly baseVal: SVGTransformList;\\n}\\n\\ndeclare var SVGAnimatedTransformList: {\\n    prototype: SVGAnimatedTransformList;\\n    new(): SVGAnimatedTransformList;\\n};\\n\\ninterface SVGAnimationElement extends SVGElement {\\n    readonly targetElement: SVGElement;\\n    getCurrentTime(): number;\\n    getSimpleDuration(): number;\\n    getStartTime(): number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimationElement: {\\n    prototype: SVGAnimationElement;\\n    new(): SVGAnimationElement;\\n};\\n\\n/** An interface for the <circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle. */\\ninterface SVGCircleElement extends SVGGeometryElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly r: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGCircleElement: {\\n    prototype: SVGCircleElement;\\n    new(): SVGCircleElement;\\n};\\n\\n/** Provides access to the properties of <clipPath> elements, as well as methods to manipulate them. */\\ninterface SVGClipPathElement extends SVGElement {\\n    readonly clipPathUnits: SVGAnimatedEnumeration;\\n    readonly transform: SVGAnimatedTransformList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGClipPathElement: {\\n    prototype: SVGClipPathElement;\\n    new(): SVGClipPathElement;\\n};\\n\\n/** A base interface used by the component transfer function interfaces. */\\ninterface SVGComponentTransferFunctionElement extends SVGElement {\\n    readonly amplitude: SVGAnimatedNumber;\\n    readonly exponent: SVGAnimatedNumber;\\n    readonly intercept: SVGAnimatedNumber;\\n    readonly offset: SVGAnimatedNumber;\\n    readonly slope: SVGAnimatedNumber;\\n    readonly tableValues: SVGAnimatedNumberList;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGComponentTransferFunctionElement: {\\n    prototype: SVGComponentTransferFunctionElement;\\n    new(): SVGComponentTransferFunctionElement;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\\n};\\n\\ninterface SVGCursorElement extends SVGElement {\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCursorElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCursorElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGCursorElement: {\\n    prototype: SVGCursorElement;\\n    new(): SVGCursorElement;\\n};\\n\\n/** Corresponds to the <defs> element. */\\ninterface SVGDefsElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGDefsElement: {\\n    prototype: SVGDefsElement;\\n    new(): SVGDefsElement;\\n};\\n\\n/** Corresponds to the <desc> element. */\\ninterface SVGDescElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGDescElement: {\\n    prototype: SVGDescElement;\\n    new(): SVGDescElement;\\n};\\n\\ninterface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n}\\n\\n/** All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface. */\\ninterface SVGElement extends Element, DocumentAndElementEventHandlers, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement, SVGElementInstance {\\n    /** @deprecated */\\n    readonly className: any;\\n    readonly ownerSVGElement: SVGSVGElement | null;\\n    readonly viewportElement: SVGElement | null;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGElement: {\\n    prototype: SVGElement;\\n    new(): SVGElement;\\n};\\n\\ninterface SVGElementInstance extends EventTarget {\\n    readonly correspondingElement: SVGElement;\\n    readonly correspondingUseElement: SVGUseElement;\\n}\\n\\ndeclare var SVGElementInstance: {\\n    prototype: SVGElementInstance;\\n    new(): SVGElementInstance;\\n};\\n\\ninterface SVGElementInstanceList {\\n    /** @deprecated */\\n    readonly length: number;\\n    /** @deprecated */\\n    item(index: number): SVGElementInstance;\\n}\\n\\ndeclare var SVGElementInstanceList: {\\n    prototype: SVGElementInstanceList;\\n    new(): SVGElementInstanceList;\\n};\\n\\n/** Provides access to the properties of <ellipse> elements. */\\ninterface SVGEllipseElement extends SVGGeometryElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly rx: SVGAnimatedLength;\\n    readonly ry: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGEllipseElement: {\\n    prototype: SVGEllipseElement;\\n    new(): SVGEllipseElement;\\n};\\n\\n/** Corresponds to the <feBlend> element. */\\ninterface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly mode: SVGAnimatedEnumeration;\\n    readonly SVG_FEBLEND_MODE_COLOR: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\\n    readonly SVG_FEBLEND_MODE_DARKEN: number;\\n    readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\\n    readonly SVG_FEBLEND_MODE_EXCLUSION: number;\\n    readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_HUE: number;\\n    readonly SVG_FEBLEND_MODE_LIGHTEN: number;\\n    readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\\n    readonly SVG_FEBLEND_MODE_MULTIPLY: number;\\n    readonly SVG_FEBLEND_MODE_NORMAL: number;\\n    readonly SVG_FEBLEND_MODE_OVERLAY: number;\\n    readonly SVG_FEBLEND_MODE_SATURATION: number;\\n    readonly SVG_FEBLEND_MODE_SCREEN: number;\\n    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEBlendElement: {\\n    prototype: SVGFEBlendElement;\\n    new(): SVGFEBlendElement;\\n    readonly SVG_FEBLEND_MODE_COLOR: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\\n    readonly SVG_FEBLEND_MODE_DARKEN: number;\\n    readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\\n    readonly SVG_FEBLEND_MODE_EXCLUSION: number;\\n    readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_HUE: number;\\n    readonly SVG_FEBLEND_MODE_LIGHTEN: number;\\n    readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\\n    readonly SVG_FEBLEND_MODE_MULTIPLY: number;\\n    readonly SVG_FEBLEND_MODE_NORMAL: number;\\n    readonly SVG_FEBLEND_MODE_OVERLAY: number;\\n    readonly SVG_FEBLEND_MODE_SATURATION: number;\\n    readonly SVG_FEBLEND_MODE_SCREEN: number;\\n    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feColorMatrix> element. */\\ninterface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly values: SVGAnimatedNumberList;\\n    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEColorMatrixElement: {\\n    prototype: SVGFEColorMatrixElement;\\n    new(): SVGFEColorMatrixElement;\\n    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feComponentTransfer> element. */\\ninterface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEComponentTransferElement: {\\n    prototype: SVGFEComponentTransferElement;\\n    new(): SVGFEComponentTransferElement;\\n};\\n\\n/** Corresponds to the <feComposite> element. */\\ninterface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly k1: SVGAnimatedNumber;\\n    readonly k2: SVGAnimatedNumber;\\n    readonly k3: SVGAnimatedNumber;\\n    readonly k4: SVGAnimatedNumber;\\n    readonly operator: SVGAnimatedEnumeration;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFECompositeElement: {\\n    prototype: SVGFECompositeElement;\\n    new(): SVGFECompositeElement;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\\n};\\n\\n/** Corresponds to the <feConvolveMatrix> element. */\\ninterface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly bias: SVGAnimatedNumber;\\n    readonly divisor: SVGAnimatedNumber;\\n    readonly edgeMode: SVGAnimatedEnumeration;\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelMatrix: SVGAnimatedNumberList;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly orderX: SVGAnimatedInteger;\\n    readonly orderY: SVGAnimatedInteger;\\n    readonly preserveAlpha: SVGAnimatedBoolean;\\n    readonly targetX: SVGAnimatedInteger;\\n    readonly targetY: SVGAnimatedInteger;\\n    readonly SVG_EDGEMODE_DUPLICATE: number;\\n    readonly SVG_EDGEMODE_NONE: number;\\n    readonly SVG_EDGEMODE_UNKNOWN: number;\\n    readonly SVG_EDGEMODE_WRAP: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEConvolveMatrixElement: {\\n    prototype: SVGFEConvolveMatrixElement;\\n    new(): SVGFEConvolveMatrixElement;\\n    readonly SVG_EDGEMODE_DUPLICATE: number;\\n    readonly SVG_EDGEMODE_NONE: number;\\n    readonly SVG_EDGEMODE_UNKNOWN: number;\\n    readonly SVG_EDGEMODE_WRAP: number;\\n};\\n\\n/** Corresponds to the <feDiffuseLighting> element. */\\ninterface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly diffuseConstant: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly surfaceScale: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDiffuseLightingElement: {\\n    prototype: SVGFEDiffuseLightingElement;\\n    new(): SVGFEDiffuseLightingElement;\\n};\\n\\n/** Corresponds to the <feDisplacementMap> element. */\\ninterface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly scale: SVGAnimatedNumber;\\n    readonly xChannelSelector: SVGAnimatedEnumeration;\\n    readonly yChannelSelector: SVGAnimatedEnumeration;\\n    readonly SVG_CHANNEL_A: number;\\n    readonly SVG_CHANNEL_B: number;\\n    readonly SVG_CHANNEL_G: number;\\n    readonly SVG_CHANNEL_R: number;\\n    readonly SVG_CHANNEL_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDisplacementMapElement: {\\n    prototype: SVGFEDisplacementMapElement;\\n    new(): SVGFEDisplacementMapElement;\\n    readonly SVG_CHANNEL_A: number;\\n    readonly SVG_CHANNEL_B: number;\\n    readonly SVG_CHANNEL_G: number;\\n    readonly SVG_CHANNEL_R: number;\\n    readonly SVG_CHANNEL_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feDistantLight> element. */\\ninterface SVGFEDistantLightElement extends SVGElement {\\n    readonly azimuth: SVGAnimatedNumber;\\n    readonly elevation: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDistantLightElement: {\\n    prototype: SVGFEDistantLightElement;\\n    new(): SVGFEDistantLightElement;\\n};\\n\\ninterface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly dx: SVGAnimatedNumber;\\n    readonly dy: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    readonly stdDeviationX: SVGAnimatedNumber;\\n    readonly stdDeviationY: SVGAnimatedNumber;\\n    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDropShadowElement: {\\n    prototype: SVGFEDropShadowElement;\\n    new(): SVGFEDropShadowElement;\\n};\\n\\n/** Corresponds to the <feFlood> element. */\\ninterface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFloodElement: {\\n    prototype: SVGFEFloodElement;\\n    new(): SVGFEFloodElement;\\n};\\n\\n/** Corresponds to the <feFuncA> element. */\\ninterface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncAElement: {\\n    prototype: SVGFEFuncAElement;\\n    new(): SVGFEFuncAElement;\\n};\\n\\n/** Corresponds to the <feFuncB> element. */\\ninterface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncBElement: {\\n    prototype: SVGFEFuncBElement;\\n    new(): SVGFEFuncBElement;\\n};\\n\\n/** Corresponds to the <feFuncG> element. */\\ninterface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncGElement: {\\n    prototype: SVGFEFuncGElement;\\n    new(): SVGFEFuncGElement;\\n};\\n\\n/** Corresponds to the <feFuncR> element. */\\ninterface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncRElement: {\\n    prototype: SVGFEFuncRElement;\\n    new(): SVGFEFuncRElement;\\n};\\n\\n/** Corresponds to the <feGaussianBlur> element. */\\ninterface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly stdDeviationX: SVGAnimatedNumber;\\n    readonly stdDeviationY: SVGAnimatedNumber;\\n    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEGaussianBlurElement: {\\n    prototype: SVGFEGaussianBlurElement;\\n    new(): SVGFEGaussianBlurElement;\\n};\\n\\n/** Corresponds to the <feImage> element. */\\ninterface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEImageElement: {\\n    prototype: SVGFEImageElement;\\n    new(): SVGFEImageElement;\\n};\\n\\n/** Corresponds to the <feMerge> element. */\\ninterface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMergeElement: {\\n    prototype: SVGFEMergeElement;\\n    new(): SVGFEMergeElement;\\n};\\n\\n/** Corresponds to the <feMergeNode> element. */\\ninterface SVGFEMergeNodeElement extends SVGElement {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMergeNodeElement: {\\n    prototype: SVGFEMergeNodeElement;\\n    new(): SVGFEMergeNodeElement;\\n};\\n\\n/** Corresponds to the <feMorphology> element. */\\ninterface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly operator: SVGAnimatedEnumeration;\\n    readonly radiusX: SVGAnimatedNumber;\\n    readonly radiusY: SVGAnimatedNumber;\\n    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMorphologyElement: {\\n    prototype: SVGFEMorphologyElement;\\n    new(): SVGFEMorphologyElement;\\n    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feOffset> element. */\\ninterface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly dx: SVGAnimatedNumber;\\n    readonly dy: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEOffsetElement: {\\n    prototype: SVGFEOffsetElement;\\n    new(): SVGFEOffsetElement;\\n};\\n\\n/** Corresponds to the <fePointLight> element. */\\ninterface SVGFEPointLightElement extends SVGElement {\\n    readonly x: SVGAnimatedNumber;\\n    readonly y: SVGAnimatedNumber;\\n    readonly z: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEPointLightElement: {\\n    prototype: SVGFEPointLightElement;\\n    new(): SVGFEPointLightElement;\\n};\\n\\n/** Corresponds to the <feSpecularLighting> element. */\\ninterface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly specularConstant: SVGAnimatedNumber;\\n    readonly specularExponent: SVGAnimatedNumber;\\n    readonly surfaceScale: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFESpecularLightingElement: {\\n    prototype: SVGFESpecularLightingElement;\\n    new(): SVGFESpecularLightingElement;\\n};\\n\\n/** Corresponds to the <feSpotLight> element. */\\ninterface SVGFESpotLightElement extends SVGElement {\\n    readonly limitingConeAngle: SVGAnimatedNumber;\\n    readonly pointsAtX: SVGAnimatedNumber;\\n    readonly pointsAtY: SVGAnimatedNumber;\\n    readonly pointsAtZ: SVGAnimatedNumber;\\n    readonly specularExponent: SVGAnimatedNumber;\\n    readonly x: SVGAnimatedNumber;\\n    readonly y: SVGAnimatedNumber;\\n    readonly z: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFESpotLightElement: {\\n    prototype: SVGFESpotLightElement;\\n    new(): SVGFESpotLightElement;\\n};\\n\\n/** Corresponds to the <feTile> element. */\\ninterface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFETileElement: {\\n    prototype: SVGFETileElement;\\n    new(): SVGFETileElement;\\n};\\n\\n/** Corresponds to the <feTurbulence> element. */\\ninterface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly baseFrequencyX: SVGAnimatedNumber;\\n    readonly baseFrequencyY: SVGAnimatedNumber;\\n    readonly numOctaves: SVGAnimatedInteger;\\n    readonly seed: SVGAnimatedNumber;\\n    readonly stitchTiles: SVGAnimatedEnumeration;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly SVG_STITCHTYPE_NOSTITCH: number;\\n    readonly SVG_STITCHTYPE_STITCH: number;\\n    readonly SVG_STITCHTYPE_UNKNOWN: number;\\n    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\\n    readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\\n    readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFETurbulenceElement: {\\n    prototype: SVGFETurbulenceElement;\\n    new(): SVGFETurbulenceElement;\\n    readonly SVG_STITCHTYPE_NOSTITCH: number;\\n    readonly SVG_STITCHTYPE_STITCH: number;\\n    readonly SVG_STITCHTYPE_UNKNOWN: number;\\n    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\\n    readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\\n    readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\\n};\\n\\n/** Provides access to the properties of <filter> elements, as well as methods to manipulate them. */\\ninterface SVGFilterElement extends SVGElement, SVGURIReference {\\n    readonly filterUnits: SVGAnimatedEnumeration;\\n    readonly height: SVGAnimatedLength;\\n    readonly primitiveUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFilterElement: {\\n    prototype: SVGFilterElement;\\n    new(): SVGFilterElement;\\n};\\n\\ninterface SVGFilterPrimitiveStandardAttributes {\\n    readonly height: SVGAnimatedLength;\\n    readonly result: SVGAnimatedString;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n}\\n\\ninterface SVGFitToViewBox {\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    readonly viewBox: SVGAnimatedRect;\\n}\\n\\n/** Provides access to the properties of <foreignObject> elements, as well as methods to manipulate them. */\\ninterface SVGForeignObjectElement extends SVGGraphicsElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGForeignObjectElement: {\\n    prototype: SVGForeignObjectElement;\\n    new(): SVGForeignObjectElement;\\n};\\n\\n/** Corresponds to the <g> element. */\\ninterface SVGGElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGElement: {\\n    prototype: SVGGElement;\\n    new(): SVGGElement;\\n};\\n\\ninterface SVGGeometryElement extends SVGGraphicsElement {\\n    readonly pathLength: SVGAnimatedNumber;\\n    getPointAtLength(distance: number): DOMPoint;\\n    getTotalLength(): number;\\n    isPointInFill(point?: DOMPointInit): boolean;\\n    isPointInStroke(point?: DOMPointInit): boolean;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGeometryElement: {\\n    prototype: SVGGeometryElement;\\n    new(): SVGGeometryElement;\\n};\\n\\n/** The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement. */\\ninterface SVGGradientElement extends SVGElement, SVGURIReference {\\n    readonly gradientTransform: SVGAnimatedTransformList;\\n    readonly gradientUnits: SVGAnimatedEnumeration;\\n    readonly spreadMethod: SVGAnimatedEnumeration;\\n    readonly SVG_SPREADMETHOD_PAD: number;\\n    readonly SVG_SPREADMETHOD_REFLECT: number;\\n    readonly SVG_SPREADMETHOD_REPEAT: number;\\n    readonly SVG_SPREADMETHOD_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGradientElement: {\\n    prototype: SVGGradientElement;\\n    new(): SVGGradientElement;\\n    readonly SVG_SPREADMETHOD_PAD: number;\\n    readonly SVG_SPREADMETHOD_REFLECT: number;\\n    readonly SVG_SPREADMETHOD_REPEAT: number;\\n    readonly SVG_SPREADMETHOD_UNKNOWN: number;\\n};\\n\\n/** SVG elements whose primary purpose is to directly render graphics into a group. */\\ninterface SVGGraphicsElement extends SVGElement, SVGTests {\\n    readonly transform: SVGAnimatedTransformList;\\n    getBBox(options?: SVGBoundingBoxOptions): DOMRect;\\n    getCTM(): DOMMatrix | null;\\n    getScreenCTM(): DOMMatrix | null;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGraphicsElement: {\\n    prototype: SVGGraphicsElement;\\n    new(): SVGGraphicsElement;\\n};\\n\\n/** Corresponds to the <image> element. */\\ninterface SVGImageElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly height: SVGAnimatedLength;\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGImageElement: {\\n    prototype: SVGImageElement;\\n    new(): SVGImageElement;\\n};\\n\\n/** Correspond to the <length> basic data type. */\\ninterface SVGLength {\\n    readonly unitType: number;\\n    value: number;\\n    valueAsString: string;\\n    valueInSpecifiedUnits: number;\\n    convertToSpecifiedUnits(unitType: number): void;\\n    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\\n    readonly SVG_LENGTHTYPE_CM: number;\\n    readonly SVG_LENGTHTYPE_EMS: number;\\n    readonly SVG_LENGTHTYPE_EXS: number;\\n    readonly SVG_LENGTHTYPE_IN: number;\\n    readonly SVG_LENGTHTYPE_MM: number;\\n    readonly SVG_LENGTHTYPE_NUMBER: number;\\n    readonly SVG_LENGTHTYPE_PC: number;\\n    readonly SVG_LENGTHTYPE_PERCENTAGE: number;\\n    readonly SVG_LENGTHTYPE_PT: number;\\n    readonly SVG_LENGTHTYPE_PX: number;\\n    readonly SVG_LENGTHTYPE_UNKNOWN: number;\\n}\\n\\ndeclare var SVGLength: {\\n    prototype: SVGLength;\\n    new(): SVGLength;\\n    readonly SVG_LENGTHTYPE_CM: number;\\n    readonly SVG_LENGTHTYPE_EMS: number;\\n    readonly SVG_LENGTHTYPE_EXS: number;\\n    readonly SVG_LENGTHTYPE_IN: number;\\n    readonly SVG_LENGTHTYPE_MM: number;\\n    readonly SVG_LENGTHTYPE_NUMBER: number;\\n    readonly SVG_LENGTHTYPE_PC: number;\\n    readonly SVG_LENGTHTYPE_PERCENTAGE: number;\\n    readonly SVG_LENGTHTYPE_PT: number;\\n    readonly SVG_LENGTHTYPE_PX: number;\\n    readonly SVG_LENGTHTYPE_UNKNOWN: number;\\n};\\n\\n/** The SVGLengthList defines a list of SVGLength objects. */\\ninterface SVGLengthList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGLength): SVGLength;\\n    clear(): void;\\n    getItem(index: number): SVGLength;\\n    initialize(newItem: SVGLength): SVGLength;\\n    insertItemBefore(newItem: SVGLength, index: number): SVGLength;\\n    removeItem(index: number): SVGLength;\\n    replaceItem(newItem: SVGLength, index: number): SVGLength;\\n    [index: number]: SVGLength;\\n}\\n\\ndeclare var SVGLengthList: {\\n    prototype: SVGLengthList;\\n    new(): SVGLengthList;\\n};\\n\\n/** Provides access to the properties of <line> elements, as well as methods to manipulate them. */\\ninterface SVGLineElement extends SVGGeometryElement {\\n    readonly x1: SVGAnimatedLength;\\n    readonly x2: SVGAnimatedLength;\\n    readonly y1: SVGAnimatedLength;\\n    readonly y2: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGLineElement: {\\n    prototype: SVGLineElement;\\n    new(): SVGLineElement;\\n};\\n\\n/** Corresponds to the <linearGradient> element. */\\ninterface SVGLinearGradientElement extends SVGGradientElement {\\n    readonly x1: SVGAnimatedLength;\\n    readonly x2: SVGAnimatedLength;\\n    readonly y1: SVGAnimatedLength;\\n    readonly y2: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGLinearGradientElement: {\\n    prototype: SVGLinearGradientElement;\\n    new(): SVGLinearGradientElement;\\n};\\n\\ninterface SVGMarkerElement extends SVGElement, SVGFitToViewBox {\\n    readonly markerHeight: SVGAnimatedLength;\\n    readonly markerUnits: SVGAnimatedEnumeration;\\n    readonly markerWidth: SVGAnimatedLength;\\n    readonly orientAngle: SVGAnimatedAngle;\\n    readonly orientType: SVGAnimatedEnumeration;\\n    readonly refX: SVGAnimatedLength;\\n    readonly refY: SVGAnimatedLength;\\n    setOrientToAngle(angle: SVGAngle): void;\\n    setOrientToAuto(): void;\\n    readonly SVG_MARKERUNITS_STROKEWIDTH: number;\\n    readonly SVG_MARKERUNITS_UNKNOWN: number;\\n    readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\\n    readonly SVG_MARKER_ORIENT_ANGLE: number;\\n    readonly SVG_MARKER_ORIENT_AUTO: number;\\n    readonly SVG_MARKER_ORIENT_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMarkerElement: {\\n    prototype: SVGMarkerElement;\\n    new(): SVGMarkerElement;\\n    readonly SVG_MARKERUNITS_STROKEWIDTH: number;\\n    readonly SVG_MARKERUNITS_UNKNOWN: number;\\n    readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\\n    readonly SVG_MARKER_ORIENT_ANGLE: number;\\n    readonly SVG_MARKER_ORIENT_AUTO: number;\\n    readonly SVG_MARKER_ORIENT_UNKNOWN: number;\\n};\\n\\n/** Provides access to the properties of <mask> elements, as well as methods to manipulate them. */\\ninterface SVGMaskElement extends SVGElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly maskContentUnits: SVGAnimatedEnumeration;\\n    readonly maskUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMaskElement: {\\n    prototype: SVGMaskElement;\\n    new(): SVGMaskElement;\\n};\\n\\n/** Corresponds to the <metadata> element. */\\ninterface SVGMetadataElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMetadataElement: {\\n    prototype: SVGMetadataElement;\\n    new(): SVGMetadataElement;\\n};\\n\\n/** Corresponds to the <number> basic data type. */\\ninterface SVGNumber {\\n    value: number;\\n}\\n\\ndeclare var SVGNumber: {\\n    prototype: SVGNumber;\\n    new(): SVGNumber;\\n};\\n\\n/** The SVGNumberList defines a list of SVGNumber objects. */\\ninterface SVGNumberList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGNumber): SVGNumber;\\n    clear(): void;\\n    getItem(index: number): SVGNumber;\\n    initialize(newItem: SVGNumber): SVGNumber;\\n    insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;\\n    removeItem(index: number): SVGNumber;\\n    replaceItem(newItem: SVGNumber, index: number): SVGNumber;\\n    [index: number]: SVGNumber;\\n}\\n\\ndeclare var SVGNumberList: {\\n    prototype: SVGNumberList;\\n    new(): SVGNumberList;\\n};\\n\\n/** Corresponds to the <path> element. */\\ninterface SVGPathElement extends SVGGraphicsElement {\\n    /** @deprecated */\\n    readonly pathSegList: SVGPathSegList;\\n    /** @deprecated */\\n    createSVGPathSegArcAbs(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcAbs;\\n    /** @deprecated */\\n    createSVGPathSegArcRel(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcRel;\\n    /** @deprecated */\\n    createSVGPathSegClosePath(): SVGPathSegClosePath;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicAbs(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicRel(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicSmoothAbs(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicSmoothRel(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticAbs(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticRel(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticSmoothAbs(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticSmoothRel(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoAbs(x: number, y: number): SVGPathSegLinetoAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoHorizontalAbs(x: number): SVGPathSegLinetoHorizontalAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoHorizontalRel(x: number): SVGPathSegLinetoHorizontalRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoRel(x: number, y: number): SVGPathSegLinetoRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoVerticalAbs(y: number): SVGPathSegLinetoVerticalAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoVerticalRel(y: number): SVGPathSegLinetoVerticalRel;\\n    /** @deprecated */\\n    createSVGPathSegMovetoAbs(x: number, y: number): SVGPathSegMovetoAbs;\\n    /** @deprecated */\\n    createSVGPathSegMovetoRel(x: number, y: number): SVGPathSegMovetoRel;\\n    /** @deprecated */\\n    getPathSegAtLength(distance: number): number;\\n    getPointAtLength(distance: number): SVGPoint;\\n    getTotalLength(): number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPathElement: {\\n    prototype: SVGPathElement;\\n    new(): SVGPathElement;\\n};\\n\\ninterface SVGPathSeg {\\n    readonly pathSegType: number;\\n    readonly pathSegTypeAsLetter: string;\\n    readonly PATHSEG_ARC_ABS: number;\\n    readonly PATHSEG_ARC_REL: number;\\n    readonly PATHSEG_CLOSEPATH: number;\\n    readonly PATHSEG_CURVETO_CUBIC_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_REL: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\\n    readonly PATHSEG_LINETO_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\\n    readonly PATHSEG_LINETO_REL: number;\\n    readonly PATHSEG_LINETO_VERTICAL_ABS: number;\\n    readonly PATHSEG_LINETO_VERTICAL_REL: number;\\n    readonly PATHSEG_MOVETO_ABS: number;\\n    readonly PATHSEG_MOVETO_REL: number;\\n    readonly PATHSEG_UNKNOWN: number;\\n}\\n\\ndeclare var SVGPathSeg: {\\n    prototype: SVGPathSeg;\\n    new(): SVGPathSeg;\\n    readonly PATHSEG_ARC_ABS: number;\\n    readonly PATHSEG_ARC_REL: number;\\n    readonly PATHSEG_CLOSEPATH: number;\\n    readonly PATHSEG_CURVETO_CUBIC_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_REL: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\\n    readonly PATHSEG_LINETO_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\\n    readonly PATHSEG_LINETO_REL: number;\\n    readonly PATHSEG_LINETO_VERTICAL_ABS: number;\\n    readonly PATHSEG_LINETO_VERTICAL_REL: number;\\n    readonly PATHSEG_MOVETO_ABS: number;\\n    readonly PATHSEG_MOVETO_REL: number;\\n    readonly PATHSEG_UNKNOWN: number;\\n};\\n\\ninterface SVGPathSegArcAbs extends SVGPathSeg {\\n    angle: number;\\n    largeArcFlag: boolean;\\n    r1: number;\\n    r2: number;\\n    sweepFlag: boolean;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegArcAbs: {\\n    prototype: SVGPathSegArcAbs;\\n    new(): SVGPathSegArcAbs;\\n};\\n\\ninterface SVGPathSegArcRel extends SVGPathSeg {\\n    angle: number;\\n    largeArcFlag: boolean;\\n    r1: number;\\n    r2: number;\\n    sweepFlag: boolean;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegArcRel: {\\n    prototype: SVGPathSegArcRel;\\n    new(): SVGPathSegArcRel;\\n};\\n\\ninterface SVGPathSegClosePath extends SVGPathSeg {\\n}\\n\\ndeclare var SVGPathSegClosePath: {\\n    prototype: SVGPathSegClosePath;\\n    new(): SVGPathSegClosePath;\\n};\\n\\ninterface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    x2: number;\\n    y: number;\\n    y1: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicAbs: {\\n    prototype: SVGPathSegCurvetoCubicAbs;\\n    new(): SVGPathSegCurvetoCubicAbs;\\n};\\n\\ninterface SVGPathSegCurvetoCubicRel extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    x2: number;\\n    y: number;\\n    y1: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicRel: {\\n    prototype: SVGPathSegCurvetoCubicRel;\\n    new(): SVGPathSegCurvetoCubicRel;\\n};\\n\\ninterface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {\\n    x: number;\\n    x2: number;\\n    y: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicSmoothAbs: {\\n    prototype: SVGPathSegCurvetoCubicSmoothAbs;\\n    new(): SVGPathSegCurvetoCubicSmoothAbs;\\n};\\n\\ninterface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {\\n    x: number;\\n    x2: number;\\n    y: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicSmoothRel: {\\n    prototype: SVGPathSegCurvetoCubicSmoothRel;\\n    new(): SVGPathSegCurvetoCubicSmoothRel;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    y: number;\\n    y1: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticAbs: {\\n    prototype: SVGPathSegCurvetoQuadraticAbs;\\n    new(): SVGPathSegCurvetoQuadraticAbs;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    y: number;\\n    y1: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticRel: {\\n    prototype: SVGPathSegCurvetoQuadraticRel;\\n    new(): SVGPathSegCurvetoQuadraticRel;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticSmoothAbs: {\\n    prototype: SVGPathSegCurvetoQuadraticSmoothAbs;\\n    new(): SVGPathSegCurvetoQuadraticSmoothAbs;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticSmoothRel: {\\n    prototype: SVGPathSegCurvetoQuadraticSmoothRel;\\n    new(): SVGPathSegCurvetoQuadraticSmoothRel;\\n};\\n\\ninterface SVGPathSegLinetoAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoAbs: {\\n    prototype: SVGPathSegLinetoAbs;\\n    new(): SVGPathSegLinetoAbs;\\n};\\n\\ninterface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {\\n    x: number;\\n}\\n\\ndeclare var SVGPathSegLinetoHorizontalAbs: {\\n    prototype: SVGPathSegLinetoHorizontalAbs;\\n    new(): SVGPathSegLinetoHorizontalAbs;\\n};\\n\\ninterface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {\\n    x: number;\\n}\\n\\ndeclare var SVGPathSegLinetoHorizontalRel: {\\n    prototype: SVGPathSegLinetoHorizontalRel;\\n    new(): SVGPathSegLinetoHorizontalRel;\\n};\\n\\ninterface SVGPathSegLinetoRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoRel: {\\n    prototype: SVGPathSegLinetoRel;\\n    new(): SVGPathSegLinetoRel;\\n};\\n\\ninterface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoVerticalAbs: {\\n    prototype: SVGPathSegLinetoVerticalAbs;\\n    new(): SVGPathSegLinetoVerticalAbs;\\n};\\n\\ninterface SVGPathSegLinetoVerticalRel extends SVGPathSeg {\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoVerticalRel: {\\n    prototype: SVGPathSegLinetoVerticalRel;\\n    new(): SVGPathSegLinetoVerticalRel;\\n};\\n\\ninterface SVGPathSegList {\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGPathSeg): SVGPathSeg;\\n    clear(): void;\\n    getItem(index: number): SVGPathSeg;\\n    initialize(newItem: SVGPathSeg): SVGPathSeg;\\n    insertItemBefore(newItem: SVGPathSeg, index: number): SVGPathSeg;\\n    removeItem(index: number): SVGPathSeg;\\n    replaceItem(newItem: SVGPathSeg, index: number): SVGPathSeg;\\n}\\n\\ndeclare var SVGPathSegList: {\\n    prototype: SVGPathSegList;\\n    new(): SVGPathSegList;\\n};\\n\\ninterface SVGPathSegMovetoAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegMovetoAbs: {\\n    prototype: SVGPathSegMovetoAbs;\\n    new(): SVGPathSegMovetoAbs;\\n};\\n\\ninterface SVGPathSegMovetoRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegMovetoRel: {\\n    prototype: SVGPathSegMovetoRel;\\n    new(): SVGPathSegMovetoRel;\\n};\\n\\n/** Corresponds to the <pattern> element. */\\ninterface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGTests, SVGURIReference {\\n    readonly height: SVGAnimatedLength;\\n    readonly patternContentUnits: SVGAnimatedEnumeration;\\n    readonly patternTransform: SVGAnimatedTransformList;\\n    readonly patternUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPatternElement: {\\n    prototype: SVGPatternElement;\\n    new(): SVGPatternElement;\\n};\\n\\ninterface SVGPointList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: DOMPoint): DOMPoint;\\n    clear(): void;\\n    getItem(index: number): DOMPoint;\\n    initialize(newItem: DOMPoint): DOMPoint;\\n    insertItemBefore(newItem: DOMPoint, index: number): DOMPoint;\\n    removeItem(index: number): DOMPoint;\\n    replaceItem(newItem: DOMPoint, index: number): DOMPoint;\\n    [index: number]: DOMPoint;\\n}\\n\\ndeclare var SVGPointList: {\\n    prototype: SVGPointList;\\n    new(): SVGPointList;\\n};\\n\\n/** Provides access to the properties of <polygon> elements, as well as methods to manipulate them. */\\ninterface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPolygonElement: {\\n    prototype: SVGPolygonElement;\\n    new(): SVGPolygonElement;\\n};\\n\\n/** Provides access to the properties of <polyline> elements, as well as methods to manipulate them. */\\ninterface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPolylineElement: {\\n    prototype: SVGPolylineElement;\\n    new(): SVGPolylineElement;\\n};\\n\\n/** Corresponds to the preserveAspectRatio attribute, which is available for some of SVG\\'s elements. */\\ninterface SVGPreserveAspectRatio {\\n    align: number;\\n    meetOrSlice: number;\\n    readonly SVG_MEETORSLICE_MEET: number;\\n    readonly SVG_MEETORSLICE_SLICE: number;\\n    readonly SVG_MEETORSLICE_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_NONE: number;\\n    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\\n}\\n\\ndeclare var SVGPreserveAspectRatio: {\\n    prototype: SVGPreserveAspectRatio;\\n    new(): SVGPreserveAspectRatio;\\n    readonly SVG_MEETORSLICE_MEET: number;\\n    readonly SVG_MEETORSLICE_SLICE: number;\\n    readonly SVG_MEETORSLICE_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_NONE: number;\\n    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\\n};\\n\\n/** Corresponds to the <RadialGradient> element. */\\ninterface SVGRadialGradientElement extends SVGGradientElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly fx: SVGAnimatedLength;\\n    readonly fy: SVGAnimatedLength;\\n    readonly r: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGRadialGradientElement: {\\n    prototype: SVGRadialGradientElement;\\n    new(): SVGRadialGradientElement;\\n};\\n\\n/** Provides access to the properties of <rect> elements, as well as methods to manipulate them. */\\ninterface SVGRectElement extends SVGGeometryElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly rx: SVGAnimatedLength;\\n    readonly ry: SVGAnimatedLength;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGRectElement: {\\n    prototype: SVGRectElement;\\n    new(): SVGRectElement;\\n};\\n\\ninterface SVGSVGElementEventMap extends SVGElementEventMap {\\n    \"SVGUnload\": Event;\\n    \"SVGZoom\": SVGZoomEvent;\\n}\\n\\n/** Provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices. */\\ninterface SVGSVGElement extends SVGGraphicsElement, DocumentEvent, SVGFitToViewBox, SVGZoomAndPan {\\n    /** @deprecated */\\n    contentScriptType: string;\\n    /** @deprecated */\\n    contentStyleType: string;\\n    currentScale: number;\\n    readonly currentTranslate: SVGPoint;\\n    readonly height: SVGAnimatedLength;\\n    onunload: ((this: SVGSVGElement, ev: Event) => any) | null;\\n    onzoom: ((this: SVGSVGElement, ev: SVGZoomEvent) => any) | null;\\n    /** @deprecated */\\n    readonly pixelUnitToMillimeterX: number;\\n    /** @deprecated */\\n    readonly pixelUnitToMillimeterY: number;\\n    /** @deprecated */\\n    readonly screenPixelToMillimeterX: number;\\n    /** @deprecated */\\n    readonly screenPixelToMillimeterY: number;\\n    /** @deprecated */\\n    readonly viewport: SVGRect;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    animationsPaused(): boolean;\\n    checkEnclosure(element: SVGElement, rect: SVGRect): boolean;\\n    checkIntersection(element: SVGElement, rect: SVGRect): boolean;\\n    createSVGAngle(): SVGAngle;\\n    createSVGLength(): SVGLength;\\n    createSVGMatrix(): SVGMatrix;\\n    createSVGNumber(): SVGNumber;\\n    createSVGPoint(): SVGPoint;\\n    createSVGRect(): SVGRect;\\n    createSVGTransform(): SVGTransform;\\n    createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\\n    deselectAll(): void;\\n    /** @deprecated */\\n    forceRedraw(): void;\\n    getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\n    getCurrentTime(): number;\\n    getElementById(elementId: string): Element;\\n    getEnclosureList(rect: SVGRect, referenceElement: SVGElement): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\\n    getIntersectionList(rect: SVGRect, referenceElement: SVGElement): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\\n    pauseAnimations(): void;\\n    setCurrentTime(seconds: number): void;\\n    /** @deprecated */\\n    suspendRedraw(maxWaitMilliseconds: number): number;\\n    unpauseAnimations(): void;\\n    /** @deprecated */\\n    unsuspendRedraw(suspendHandleID: number): void;\\n    /** @deprecated */\\n    unsuspendRedrawAll(): void;\\n    addEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSVGElement: {\\n    prototype: SVGSVGElement;\\n    new(): SVGSVGElement;\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the SVG <script> element. */\\ninterface SVGScriptElement extends SVGElement, SVGURIReference {\\n    type: string;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGScriptElement: {\\n    prototype: SVGScriptElement;\\n    new(): SVGScriptElement;\\n};\\n\\n/** Corresponds to the <stop> element. */\\ninterface SVGStopElement extends SVGElement {\\n    readonly offset: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGStopElement: {\\n    prototype: SVGStopElement;\\n    new(): SVGStopElement;\\n};\\n\\n/** The SVGStringList defines a list of DOMString objects. */\\ninterface SVGStringList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: string): string;\\n    clear(): void;\\n    getItem(index: number): string;\\n    initialize(newItem: string): string;\\n    insertItemBefore(newItem: string, index: number): string;\\n    removeItem(index: number): string;\\n    replaceItem(newItem: string, index: number): string;\\n    [index: number]: string;\\n}\\n\\ndeclare var SVGStringList: {\\n    prototype: SVGStringList;\\n    new(): SVGStringList;\\n};\\n\\n/** Corresponds to the SVG <style> element. */\\ninterface SVGStyleElement extends SVGElement {\\n    disabled: boolean;\\n    media: string;\\n    title: string;\\n    type: string;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGStyleElement: {\\n    prototype: SVGStyleElement;\\n    new(): SVGStyleElement;\\n};\\n\\n/** Corresponds to the <switch> element. */\\ninterface SVGSwitchElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSwitchElement: {\\n    prototype: SVGSwitchElement;\\n    new(): SVGSwitchElement;\\n};\\n\\n/** Corresponds to the <symbol> element. */\\ninterface SVGSymbolElement extends SVGElement, SVGFitToViewBox {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSymbolElement: {\\n    prototype: SVGSymbolElement;\\n    new(): SVGSymbolElement;\\n};\\n\\n/** A <tspan> element. */\\ninterface SVGTSpanElement extends SVGTextPositioningElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTSpanElement: {\\n    prototype: SVGTSpanElement;\\n    new(): SVGTSpanElement;\\n};\\n\\ninterface SVGTests {\\n    readonly requiredExtensions: SVGStringList;\\n    readonly systemLanguage: SVGStringList;\\n}\\n\\n/** Implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement. */\\ninterface SVGTextContentElement extends SVGGraphicsElement {\\n    readonly lengthAdjust: SVGAnimatedEnumeration;\\n    readonly textLength: SVGAnimatedLength;\\n    getCharNumAtPosition(point: SVGPoint): number;\\n    getComputedTextLength(): number;\\n    getEndPositionOfChar(charnum: number): SVGPoint;\\n    getExtentOfChar(charnum: number): SVGRect;\\n    getNumberOfChars(): number;\\n    getRotationOfChar(charnum: number): number;\\n    getStartPositionOfChar(charnum: number): SVGPoint;\\n    getSubStringLength(charnum: number, nchars: number): number;\\n    selectSubString(charnum: number, nchars: number): void;\\n    readonly LENGTHADJUST_SPACING: number;\\n    readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\\n    readonly LENGTHADJUST_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextContentElement: {\\n    prototype: SVGTextContentElement;\\n    new(): SVGTextContentElement;\\n    readonly LENGTHADJUST_SPACING: number;\\n    readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\\n    readonly LENGTHADJUST_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <text> elements. */\\ninterface SVGTextElement extends SVGTextPositioningElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextElement: {\\n    prototype: SVGTextElement;\\n    new(): SVGTextElement;\\n};\\n\\n/** Corresponds to the <textPath> element. */\\ninterface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {\\n    readonly method: SVGAnimatedEnumeration;\\n    readonly spacing: SVGAnimatedEnumeration;\\n    readonly startOffset: SVGAnimatedLength;\\n    readonly TEXTPATH_METHODTYPE_ALIGN: number;\\n    readonly TEXTPATH_METHODTYPE_STRETCH: number;\\n    readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\\n    readonly TEXTPATH_SPACINGTYPE_AUTO: number;\\n    readonly TEXTPATH_SPACINGTYPE_EXACT: number;\\n    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextPathElement: {\\n    prototype: SVGTextPathElement;\\n    new(): SVGTextPathElement;\\n    readonly TEXTPATH_METHODTYPE_ALIGN: number;\\n    readonly TEXTPATH_METHODTYPE_STRETCH: number;\\n    readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\\n    readonly TEXTPATH_SPACINGTYPE_AUTO: number;\\n    readonly TEXTPATH_SPACINGTYPE_EXACT: number;\\n    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\\n};\\n\\n/** Implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement. */\\ninterface SVGTextPositioningElement extends SVGTextContentElement {\\n    readonly dx: SVGAnimatedLengthList;\\n    readonly dy: SVGAnimatedLengthList;\\n    readonly rotate: SVGAnimatedNumberList;\\n    readonly x: SVGAnimatedLengthList;\\n    readonly y: SVGAnimatedLengthList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextPositioningElement: {\\n    prototype: SVGTextPositioningElement;\\n    new(): SVGTextPositioningElement;\\n};\\n\\n/** Corresponds to the <title> element. */\\ninterface SVGTitleElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTitleElement: {\\n    prototype: SVGTitleElement;\\n    new(): SVGTitleElement;\\n};\\n\\n/** SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute. */\\ninterface SVGTransform {\\n    readonly angle: number;\\n    readonly matrix: SVGMatrix;\\n    readonly type: number;\\n    setMatrix(matrix: SVGMatrix): void;\\n    setRotate(angle: number, cx: number, cy: number): void;\\n    setScale(sx: number, sy: number): void;\\n    setSkewX(angle: number): void;\\n    setSkewY(angle: number): void;\\n    setTranslate(tx: number, ty: number): void;\\n    readonly SVG_TRANSFORM_MATRIX: number;\\n    readonly SVG_TRANSFORM_ROTATE: number;\\n    readonly SVG_TRANSFORM_SCALE: number;\\n    readonly SVG_TRANSFORM_SKEWX: number;\\n    readonly SVG_TRANSFORM_SKEWY: number;\\n    readonly SVG_TRANSFORM_TRANSLATE: number;\\n    readonly SVG_TRANSFORM_UNKNOWN: number;\\n}\\n\\ndeclare var SVGTransform: {\\n    prototype: SVGTransform;\\n    new(): SVGTransform;\\n    readonly SVG_TRANSFORM_MATRIX: number;\\n    readonly SVG_TRANSFORM_ROTATE: number;\\n    readonly SVG_TRANSFORM_SCALE: number;\\n    readonly SVG_TRANSFORM_SKEWX: number;\\n    readonly SVG_TRANSFORM_SKEWY: number;\\n    readonly SVG_TRANSFORM_TRANSLATE: number;\\n    readonly SVG_TRANSFORM_UNKNOWN: number;\\n};\\n\\n/** The SVGTransformList defines a list of SVGTransform objects. */\\ninterface SVGTransformList {\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGTransform): SVGTransform;\\n    clear(): void;\\n    consolidate(): SVGTransform;\\n    createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\\n    getItem(index: number): SVGTransform;\\n    initialize(newItem: SVGTransform): SVGTransform;\\n    insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;\\n    removeItem(index: number): SVGTransform;\\n    replaceItem(newItem: SVGTransform, index: number): SVGTransform;\\n}\\n\\ndeclare var SVGTransformList: {\\n    prototype: SVGTransformList;\\n    new(): SVGTransformList;\\n};\\n\\ninterface SVGURIReference {\\n    readonly href: SVGAnimatedString;\\n}\\n\\n/** A commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes. */\\ninterface SVGUnitTypes {\\n    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;\\n    readonly SVG_UNIT_TYPE_UNKNOWN: number;\\n    readonly SVG_UNIT_TYPE_USERSPACEONUSE: number;\\n}\\n\\ndeclare var SVGUnitTypes: {\\n    prototype: SVGUnitTypes;\\n    new(): SVGUnitTypes;\\n    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;\\n    readonly SVG_UNIT_TYPE_UNKNOWN: number;\\n    readonly SVG_UNIT_TYPE_USERSPACEONUSE: number;\\n};\\n\\n/** Corresponds to the <use> element. */\\ninterface SVGUseElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly animatedInstanceRoot: SVGElementInstance | null;\\n    readonly height: SVGAnimatedLength;\\n    readonly instanceRoot: SVGElementInstance | null;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGUseElement: {\\n    prototype: SVGUseElement;\\n    new(): SVGUseElement;\\n};\\n\\n/** Provides access to the properties of <view> elements, as well as methods to manipulate them. */\\ninterface SVGViewElement extends SVGElement, SVGFitToViewBox, SVGZoomAndPan {\\n    /** @deprecated */\\n    readonly viewTarget: SVGStringList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGViewElement: {\\n    prototype: SVGViewElement;\\n    new(): SVGViewElement;\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\n/** Used to reflect the zoomAndPan attribute, and is mixed in to other interfaces for elements that support this attribute. */\\ninterface SVGZoomAndPan {\\n    readonly zoomAndPan: number;\\n}\\n\\ndeclare var SVGZoomAndPan: {\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\ninterface SVGZoomEvent extends UIEvent {\\n    readonly newScale: number;\\n    readonly newTranslate: SVGPoint;\\n    readonly previousScale: number;\\n    readonly previousTranslate: SVGPoint;\\n    readonly zoomRectScreen: SVGRect;\\n}\\n\\ndeclare var SVGZoomEvent: {\\n    prototype: SVGZoomEvent;\\n    new(): SVGZoomEvent;\\n};\\n\\ninterface ScopedCredential {\\n    readonly id: ArrayBuffer;\\n    readonly type: ScopedCredentialType;\\n}\\n\\ndeclare var ScopedCredential: {\\n    prototype: ScopedCredential;\\n    new(): ScopedCredential;\\n};\\n\\ninterface ScopedCredentialInfo {\\n    readonly credential: ScopedCredential;\\n    readonly publicKey: CryptoKey;\\n}\\n\\ndeclare var ScopedCredentialInfo: {\\n    prototype: ScopedCredentialInfo;\\n    new(): ScopedCredentialInfo;\\n};\\n\\n/** A screen, usually the one on which the current window is being rendered, and is obtained using window.screen. */\\ninterface Screen {\\n    readonly availHeight: number;\\n    readonly availWidth: number;\\n    readonly colorDepth: number;\\n    readonly height: number;\\n    readonly orientation: ScreenOrientation;\\n    readonly pixelDepth: number;\\n    readonly width: number;\\n}\\n\\ndeclare var Screen: {\\n    prototype: Screen;\\n    new(): Screen;\\n};\\n\\ninterface ScreenOrientationEventMap {\\n    \"change\": Event;\\n}\\n\\ninterface ScreenOrientation extends EventTarget {\\n    readonly angle: number;\\n    onchange: ((this: ScreenOrientation, ev: Event) => any) | null;\\n    readonly type: OrientationType;\\n    lock(orientation: OrientationLockType): Promise<void>;\\n    unlock(): void;\\n    addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ScreenOrientation: {\\n    prototype: ScreenOrientation;\\n    new(): ScreenOrientation;\\n};\\n\\ninterface ScriptProcessorNodeEventMap {\\n    \"audioprocess\": AudioProcessingEvent;\\n}\\n\\n/** Allows the generation, processing, or analyzing of audio using JavaScript. */\\ninterface ScriptProcessorNode extends AudioNode {\\n    /** @deprecated */\\n    readonly bufferSize: number;\\n    /** @deprecated */\\n    onaudioprocess: ((this: ScriptProcessorNode, ev: AudioProcessingEvent) => any) | null;\\n    addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ScriptProcessorNode: {\\n    prototype: ScriptProcessorNode;\\n    new(): ScriptProcessorNode;\\n};\\n\\n/** Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated. */\\ninterface SecurityPolicyViolationEvent extends Event {\\n    readonly blockedURI: string;\\n    readonly columnNumber: number;\\n    readonly documentURI: string;\\n    readonly effectiveDirective: string;\\n    readonly lineNumber: number;\\n    readonly originalPolicy: string;\\n    readonly referrer: string;\\n    readonly sourceFile: string;\\n    readonly statusCode: number;\\n    readonly violatedDirective: string;\\n}\\n\\ndeclare var SecurityPolicyViolationEvent: {\\n    prototype: SecurityPolicyViolationEvent;\\n    new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\\n};\\n\\n/** A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call Window.getSelection(). */\\ninterface Selection {\\n    readonly anchorNode: Node | null;\\n    readonly anchorOffset: number;\\n    readonly focusNode: Node | null;\\n    readonly focusOffset: number;\\n    readonly isCollapsed: boolean;\\n    readonly rangeCount: number;\\n    readonly type: string;\\n    addRange(range: Range): void;\\n    collapse(node: Node | null, offset?: number): void;\\n    collapseToEnd(): void;\\n    collapseToStart(): void;\\n    containsNode(node: Node, allowPartialContainment?: boolean): boolean;\\n    deleteFromDocument(): void;\\n    empty(): void;\\n    extend(node: Node, offset?: number): void;\\n    getRangeAt(index: number): Range;\\n    removeAllRanges(): void;\\n    removeRange(range: Range): void;\\n    selectAllChildren(node: Node): void;\\n    setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;\\n    setPosition(node: Node | null, offset?: number): void;\\n}\\n\\ndeclare var Selection: {\\n    prototype: Selection;\\n    new(): Selection;\\n};\\n\\ninterface ServiceUIFrameContext {\\n    getCachedFrameMessage(key: string): string;\\n    postFrameMessage(key: string, data: string): void;\\n}\\ndeclare var ServiceUIFrameContext: ServiceUIFrameContext;\\n\\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\\n    \"statechange\": Event;\\n}\\n\\n/** This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. */\\ninterface ServiceWorker extends EventTarget, AbstractWorker {\\n    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\\n    readonly scriptURL: string;\\n    readonly state: ServiceWorkerState;\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorker: {\\n    prototype: ServiceWorker;\\n    new(): ServiceWorker;\\n};\\n\\ninterface ServiceWorkerContainerEventMap {\\n    \"controllerchange\": Event;\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\n/** The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. */\\ninterface ServiceWorkerContainer extends EventTarget {\\n    readonly controller: ServiceWorker | null;\\n    oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\\n    onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\\n    readonly ready: Promise<ServiceWorkerRegistration>;\\n    getRegistration(clientURL?: string): Promise<ServiceWorkerRegistration | undefined>;\\n    getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;\\n    register(scriptURL: string, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;\\n    startMessages(): void;\\n    addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorkerContainer: {\\n    prototype: ServiceWorkerContainer;\\n    new(): ServiceWorkerContainer;\\n};\\n\\n/** This ServiceWorker API interface contains information about an event sent to a ServiceWorkerContainer target. This extends the default message event to allow setting a ServiceWorker object as the source of a message. The event object is accessed via the handler function of a message event, when fired by a message received from a service worker. */\\ninterface ServiceWorkerMessageEvent extends Event {\\n    readonly data: any;\\n    readonly lastEventId: string;\\n    readonly origin: string;\\n    readonly ports: ReadonlyArray<MessagePort> | null;\\n    readonly source: ServiceWorker | MessagePort | null;\\n}\\n\\ndeclare var ServiceWorkerMessageEvent: {\\n    prototype: ServiceWorkerMessageEvent;\\n    new(type: string, eventInitDict?: ServiceWorkerMessageEventInit): ServiceWorkerMessageEvent;\\n};\\n\\ninterface ServiceWorkerRegistrationEventMap {\\n    \"updatefound\": Event;\\n}\\n\\n/** This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. */\\ninterface ServiceWorkerRegistration extends EventTarget {\\n    readonly active: ServiceWorker | null;\\n    readonly installing: ServiceWorker | null;\\n    readonly navigationPreload: NavigationPreloadManager;\\n    onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\\n    readonly pushManager: PushManager;\\n    readonly scope: string;\\n    readonly sync: SyncManager;\\n    readonly updateViaCache: ServiceWorkerUpdateViaCache;\\n    readonly waiting: ServiceWorker | null;\\n    getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;\\n    showNotification(title: string, options?: NotificationOptions): Promise<void>;\\n    unregister(): Promise<boolean>;\\n    update(): Promise<void>;\\n    addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorkerRegistration: {\\n    prototype: ServiceWorkerRegistration;\\n    new(): ServiceWorkerRegistration;\\n};\\n\\ninterface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot, InnerHTML {\\n    readonly host: Element;\\n    readonly mode: ShadowRootMode;\\n}\\n\\ndeclare var ShadowRoot: {\\n    prototype: ShadowRoot;\\n    new(): ShadowRoot;\\n};\\n\\ninterface Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n}\\n\\ninterface SourceBufferEventMap {\\n    \"abort\": Event;\\n    \"error\": Event;\\n    \"update\": Event;\\n    \"updateend\": Event;\\n    \"updatestart\": Event;\\n}\\n\\n/** A chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments. */\\ninterface SourceBuffer extends EventTarget {\\n    appendWindowEnd: number;\\n    appendWindowStart: number;\\n    readonly audioTracks: AudioTrackList;\\n    readonly buffered: TimeRanges;\\n    mode: AppendMode;\\n    onabort: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onerror: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdate: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;\\n    readonly textTracks: TextTrackList;\\n    timestampOffset: number;\\n    readonly updating: boolean;\\n    readonly videoTracks: VideoTrackList;\\n    abort(): void;\\n    appendBuffer(data: BufferSource): void;\\n    remove(start: number, end: number): void;\\n    addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SourceBuffer: {\\n    prototype: SourceBuffer;\\n    new(): SourceBuffer;\\n};\\n\\ninterface SourceBufferListEventMap {\\n    \"addsourcebuffer\": Event;\\n    \"removesourcebuffer\": Event;\\n}\\n\\n/** A simple container list for multiple SourceBuffer objects. */\\ninterface SourceBufferList extends EventTarget {\\n    readonly length: number;\\n    onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\\n    onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\\n    addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: SourceBuffer;\\n}\\n\\ndeclare var SourceBufferList: {\\n    prototype: SourceBufferList;\\n    new(): SourceBufferList;\\n};\\n\\ninterface SpeechGrammar {\\n    src: string;\\n    weight: number;\\n}\\n\\ndeclare var SpeechGrammar: {\\n    prototype: SpeechGrammar;\\n    new(): SpeechGrammar;\\n};\\n\\ninterface SpeechGrammarList {\\n    readonly length: number;\\n    addFromString(string: string, weight?: number): void;\\n    addFromURI(src: string, weight?: number): void;\\n    item(index: number): SpeechGrammar;\\n    [index: number]: SpeechGrammar;\\n}\\n\\ndeclare var SpeechGrammarList: {\\n    prototype: SpeechGrammarList;\\n    new(): SpeechGrammarList;\\n};\\n\\ninterface SpeechRecognitionEventMap {\\n    \"audioend\": Event;\\n    \"audiostart\": Event;\\n    \"end\": Event;\\n    \"error\": SpeechRecognitionError;\\n    \"nomatch\": SpeechRecognitionEvent;\\n    \"result\": SpeechRecognitionEvent;\\n    \"soundend\": Event;\\n    \"soundstart\": Event;\\n    \"speechend\": Event;\\n    \"speechstart\": Event;\\n    \"start\": Event;\\n}\\n\\ninterface SpeechRecognition extends EventTarget {\\n    continuous: boolean;\\n    grammars: SpeechGrammarList;\\n    interimResults: boolean;\\n    lang: string;\\n    maxAlternatives: number;\\n    onaudioend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onaudiostart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onerror: ((this: SpeechRecognition, ev: SpeechRecognitionError) => any) | null;\\n    onnomatch: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;\\n    onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;\\n    onsoundend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onsoundstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onspeechend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onspeechstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    serviceURI: string;\\n    abort(): void;\\n    start(): void;\\n    stop(): void;\\n    addEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechRecognition: {\\n    prototype: SpeechRecognition;\\n    new(): SpeechRecognition;\\n};\\n\\ninterface SpeechRecognitionAlternative {\\n    readonly confidence: number;\\n    readonly transcript: string;\\n}\\n\\ndeclare var SpeechRecognitionAlternative: {\\n    prototype: SpeechRecognitionAlternative;\\n    new(): SpeechRecognitionAlternative;\\n};\\n\\ninterface SpeechRecognitionError extends Event {\\n    readonly error: SpeechRecognitionErrorCode;\\n    readonly message: string;\\n}\\n\\ndeclare var SpeechRecognitionError: {\\n    prototype: SpeechRecognitionError;\\n    new(): SpeechRecognitionError;\\n};\\n\\ninterface SpeechRecognitionEvent extends Event {\\n    readonly emma: Document | null;\\n    readonly interpretation: any;\\n    readonly resultIndex: number;\\n    readonly results: SpeechRecognitionResultList;\\n}\\n\\ndeclare var SpeechRecognitionEvent: {\\n    prototype: SpeechRecognitionEvent;\\n    new(): SpeechRecognitionEvent;\\n};\\n\\ninterface SpeechRecognitionResult {\\n    readonly isFinal: boolean;\\n    readonly length: number;\\n    item(index: number): SpeechRecognitionAlternative;\\n    [index: number]: SpeechRecognitionAlternative;\\n}\\n\\ndeclare var SpeechRecognitionResult: {\\n    prototype: SpeechRecognitionResult;\\n    new(): SpeechRecognitionResult;\\n};\\n\\ninterface SpeechRecognitionResultList {\\n    readonly length: number;\\n    item(index: number): SpeechRecognitionResult;\\n    [index: number]: SpeechRecognitionResult;\\n}\\n\\ndeclare var SpeechRecognitionResultList: {\\n    prototype: SpeechRecognitionResultList;\\n    new(): SpeechRecognitionResultList;\\n};\\n\\ninterface SpeechSynthesisEventMap {\\n    \"voiceschanged\": Event;\\n}\\n\\n/** This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides. */\\ninterface SpeechSynthesis extends EventTarget {\\n    onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;\\n    readonly paused: boolean;\\n    readonly pending: boolean;\\n    readonly speaking: boolean;\\n    cancel(): void;\\n    getVoices(): SpeechSynthesisVoice[];\\n    pause(): void;\\n    resume(): void;\\n    speak(utterance: SpeechSynthesisUtterance): void;\\n    addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechSynthesis: {\\n    prototype: SpeechSynthesis;\\n    new(): SpeechSynthesis;\\n};\\n\\ninterface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {\\n    readonly error: SpeechSynthesisErrorCode;\\n}\\n\\ndeclare var SpeechSynthesisErrorEvent: {\\n    prototype: SpeechSynthesisErrorEvent;\\n    new(): SpeechSynthesisErrorEvent;\\n};\\n\\n/** This Web Speech API interface contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service. */\\ninterface SpeechSynthesisEvent extends Event {\\n    readonly charIndex: number;\\n    readonly elapsedTime: number;\\n    readonly name: string;\\n    readonly utterance: SpeechSynthesisUtterance;\\n}\\n\\ndeclare var SpeechSynthesisEvent: {\\n    prototype: SpeechSynthesisEvent;\\n    new(): SpeechSynthesisEvent;\\n};\\n\\ninterface SpeechSynthesisUtteranceEventMap {\\n    \"boundary\": SpeechSynthesisEvent;\\n    \"end\": SpeechSynthesisEvent;\\n    \"error\": SpeechSynthesisErrorEvent;\\n    \"mark\": SpeechSynthesisEvent;\\n    \"pause\": SpeechSynthesisEvent;\\n    \"resume\": SpeechSynthesisEvent;\\n    \"start\": SpeechSynthesisEvent;\\n}\\n\\n/** This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.) */\\ninterface SpeechSynthesisUtterance extends EventTarget {\\n    lang: string;\\n    onboundary: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onend: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onerror: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisErrorEvent) => any) | null;\\n    onmark: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onpause: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onresume: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onstart: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    pitch: number;\\n    rate: number;\\n    text: string;\\n    voice: SpeechSynthesisVoice;\\n    volume: number;\\n    addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechSynthesisUtterance: {\\n    prototype: SpeechSynthesisUtterance;\\n    new(): SpeechSynthesisUtterance;\\n    new(text: string): SpeechSynthesisUtterance;\\n};\\n\\n/** This Web Speech API interface represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI. */\\ninterface SpeechSynthesisVoice {\\n    readonly default: boolean;\\n    readonly lang: string;\\n    readonly localService: boolean;\\n    readonly name: string;\\n    readonly voiceURI: string;\\n}\\n\\ndeclare var SpeechSynthesisVoice: {\\n    prototype: SpeechSynthesisVoice;\\n    new(): SpeechSynthesisVoice;\\n};\\n\\ninterface StaticRange extends AbstractRange {\\n}\\n\\ndeclare var StaticRange: {\\n    prototype: StaticRange;\\n    new(): StaticRange;\\n};\\n\\n/** The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode. */\\ninterface StereoPannerNode extends AudioNode {\\n    readonly pan: AudioParam;\\n}\\n\\ndeclare var StereoPannerNode: {\\n    prototype: StereoPannerNode;\\n    new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;\\n};\\n\\n/** This Web Storage API interface provides access to a particular domain\\'s session or local storage. It allows, for example, the addition, modification, or deletion of stored data items. */\\ninterface Storage {\\n    /**\\n     * Returns the number of key/value pairs currently present in the list associated with the object.\\n     */\\n    readonly length: number;\\n    /**\\n     * Empties the list associated with the object of all key/value pairs, if there are any.\\n     */\\n    clear(): void;\\n    /**\\n     * Returns the current value associated with the given key, or null if the given key does not exist in the list associated with the object.\\n     */\\n    getItem(key: string): string | null;\\n    /**\\n     * Returns the name of the nth key in the list, or null if n is greater than or equal to the number of key/value pairs in the object.\\n     */\\n    key(index: number): string | null;\\n    /**\\n     * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.\\n     */\\n    removeItem(key: string): void;\\n    /**\\n     * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.\\n     * \\n     * Throws a \"QuotaExceededError\" DOMException exception if the new value couldn\\'t be set. (Setting could fail if, e.g., the user has disabled storage for the site, or if the quota has been exceeded.)\\n     */\\n    setItem(key: string, value: string): void;\\n    [name: string]: any;\\n}\\n\\ndeclare var Storage: {\\n    prototype: Storage;\\n    new(): Storage;\\n};\\n\\n/** A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document. */\\ninterface StorageEvent extends Event {\\n    /**\\n     * Returns the key of the storage item being changed.\\n     */\\n    readonly key: string | null;\\n    /**\\n     * Returns the new value of the key of the storage item whose value is being changed.\\n     */\\n    readonly newValue: string | null;\\n    /**\\n     * Returns the old value of the key of the storage item whose value is being changed.\\n     */\\n    readonly oldValue: string | null;\\n    /**\\n     * Returns the Storage object that was affected.\\n     */\\n    readonly storageArea: Storage | null;\\n    /**\\n     * Returns the URL of the document whose storage item changed.\\n     */\\n    readonly url: string;\\n}\\n\\ndeclare var StorageEvent: {\\n    prototype: StorageEvent;\\n    new(type: string, eventInitDict?: StorageEventInit): StorageEvent;\\n};\\n\\ninterface StorageManager {\\n    estimate(): Promise<StorageEstimate>;\\n    persist(): Promise<boolean>;\\n    persisted(): Promise<boolean>;\\n}\\n\\ndeclare var StorageManager: {\\n    prototype: StorageManager;\\n    new(): StorageManager;\\n};\\n\\ninterface StyleMedia {\\n    readonly type: string;\\n    matchMedium(mediaquery: string): boolean;\\n}\\n\\ndeclare var StyleMedia: {\\n    prototype: StyleMedia;\\n    new(): StyleMedia;\\n};\\n\\n/** A single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface. */\\ninterface StyleSheet {\\n    disabled: boolean;\\n    readonly href: string | null;\\n    readonly media: MediaList;\\n    readonly ownerNode: Node;\\n    readonly parentStyleSheet: StyleSheet | null;\\n    readonly title: string | null;\\n    readonly type: string;\\n}\\n\\ndeclare var StyleSheet: {\\n    prototype: StyleSheet;\\n    new(): StyleSheet;\\n};\\n\\n/** A list of StyleSheet. */\\ninterface StyleSheetList {\\n    readonly length: number;\\n    item(index: number): StyleSheet | null;\\n    [index: number]: StyleSheet;\\n}\\n\\ndeclare var StyleSheetList: {\\n    prototype: StyleSheetList;\\n    new(): StyleSheetList;\\n};\\n\\n/** This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). */\\ninterface SubtleCrypto {\\n    decrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    deriveBits(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, length: number): PromiseLike<ArrayBuffer>;\\n    deriveKey(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: string | AesDerivedKeyParams | HmacImportParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    digest(algorithm: string | Algorithm, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    encrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    exportKey(format: \"jwk\", key: CryptoKey): PromiseLike<JsonWebKey>;\\n    exportKey(format: \"raw\" | \"pkcs8\" | \"spki\", key: CryptoKey): PromiseLike<ArrayBuffer>;\\n    exportKey(format: string, key: CryptoKey): PromiseLike<JsonWebKey | ArrayBuffer>;\\n    generateKey(algorithm: string, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKeyPair | CryptoKey>;\\n    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams | DhKeyGenParams, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKeyPair>;\\n    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: \"raw\" | \"pkcs8\" | \"spki\", keyData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: string, keyData: JsonWebKey | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    sign(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    unwrapKey(format: string, wrappedKey: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, unwrappingKey: CryptoKey, unwrapAlgorithm: string | Algorithm, unwrappedKeyAlgorithm: string | Algorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    verify(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, signature: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<boolean>;\\n    wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: string | Algorithm): PromiseLike<ArrayBuffer>;\\n}\\n\\ndeclare var SubtleCrypto: {\\n    prototype: SubtleCrypto;\\n    new(): SubtleCrypto;\\n};\\n\\n/** This ServiceWorker API interface provides an interface for registering and listing sync registrations. */\\ninterface SyncManager {\\n    getTags(): Promise<string[]>;\\n    register(tag: string): Promise<void>;\\n}\\n\\ndeclare var SyncManager: {\\n    prototype: SyncManager;\\n    new(): SyncManager;\\n};\\n\\n/** The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element\\'s text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children. */\\ninterface Text extends CharacterData, Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n    /**\\n     * Returns the combined data of all direct Text node siblings.\\n     */\\n    readonly wholeText: string;\\n    /**\\n     * Splits data at the given offset and returns the remainder as Text node.\\n     */\\n    splitText(offset: number): Text;\\n}\\n\\ndeclare var Text: {\\n    prototype: Text;\\n    new(data?: string): Text;\\n};\\n\\n/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\\ninterface TextDecoder extends TextDecoderCommon {\\n    /**\\n     * Returns the result of running encoding\\'s decoder. The method can be invoked zero or more times with options\\'s stream set to true, and then once without options\\'s stream (or set to false), to process a fragmented stream. If the invocation without options\\'s stream (or set to false) has no input, it\\'s clearest to omit both arguments.\\n     * \\n     * ```\\n     * var string = \"\", decoder = new TextDecoder(encoding), buffer;\\n     * while(buffer = next_chunk()) {\\n     *   string += decoder.decode(buffer, {stream:true});\\n     * }\\n     * string += decoder.decode(); // end-of-stream\\n     * ```\\n     * \\n     * If the error mode is \"fatal\" and encoding\\'s decoder returns error, throws a TypeError.\\n     */\\n    decode(input?: BufferSource, options?: TextDecodeOptions): string;\\n}\\n\\ndeclare var TextDecoder: {\\n    prototype: TextDecoder;\\n    new(label?: string, options?: TextDecoderOptions): TextDecoder;\\n};\\n\\ninterface TextDecoderCommon {\\n    /**\\n     * Returns encoding\\'s name, lowercased.\\n     */\\n    readonly encoding: string;\\n    /**\\n     * Returns true if error mode is \"fatal\", and false otherwise.\\n     */\\n    readonly fatal: boolean;\\n    /**\\n     * Returns true if ignore BOM flag is set, and false otherwise.\\n     */\\n    readonly ignoreBOM: boolean;\\n}\\n\\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\\n}\\n\\ndeclare var TextDecoderStream: {\\n    prototype: TextDecoderStream;\\n    new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\\n};\\n\\n/** TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\\ninterface TextEncoder extends TextEncoderCommon {\\n    /**\\n     * Returns the result of running UTF-8\\'s encoder.\\n     */\\n    encode(input?: string): Uint8Array;\\n    /**\\n     * Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as a dictionary whereby read is the number of converted code units of source and written is the number of bytes modified in destination.\\n     */\\n    encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\\n}\\n\\ndeclare var TextEncoder: {\\n    prototype: TextEncoder;\\n    new(): TextEncoder;\\n};\\n\\ninterface TextEncoderCommon {\\n    /**\\n     * Returns \"utf-8\".\\n     */\\n    readonly encoding: string;\\n}\\n\\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\\n}\\n\\ndeclare var TextEncoderStream: {\\n    prototype: TextEncoderStream;\\n    new(): TextEncoderStream;\\n};\\n\\ninterface TextEvent extends UIEvent {\\n    readonly data: string;\\n    initTextEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, inputMethod: number, locale: string): void;\\n    readonly DOM_INPUT_METHOD_DROP: number;\\n    readonly DOM_INPUT_METHOD_HANDWRITING: number;\\n    readonly DOM_INPUT_METHOD_IME: number;\\n    readonly DOM_INPUT_METHOD_KEYBOARD: number;\\n    readonly DOM_INPUT_METHOD_MULTIMODAL: number;\\n    readonly DOM_INPUT_METHOD_OPTION: number;\\n    readonly DOM_INPUT_METHOD_PASTE: number;\\n    readonly DOM_INPUT_METHOD_SCRIPT: number;\\n    readonly DOM_INPUT_METHOD_UNKNOWN: number;\\n    readonly DOM_INPUT_METHOD_VOICE: number;\\n}\\n\\ndeclare var TextEvent: {\\n    prototype: TextEvent;\\n    new(): TextEvent;\\n    readonly DOM_INPUT_METHOD_DROP: number;\\n    readonly DOM_INPUT_METHOD_HANDWRITING: number;\\n    readonly DOM_INPUT_METHOD_IME: number;\\n    readonly DOM_INPUT_METHOD_KEYBOARD: number;\\n    readonly DOM_INPUT_METHOD_MULTIMODAL: number;\\n    readonly DOM_INPUT_METHOD_OPTION: number;\\n    readonly DOM_INPUT_METHOD_PASTE: number;\\n    readonly DOM_INPUT_METHOD_SCRIPT: number;\\n    readonly DOM_INPUT_METHOD_UNKNOWN: number;\\n    readonly DOM_INPUT_METHOD_VOICE: number;\\n};\\n\\n/** The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method. */\\ninterface TextMetrics {\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxLeft: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxRight: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly alphabeticBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly emHeightAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly emHeightDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly fontBoundingBoxAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly fontBoundingBoxDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly hangingBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly ideographicBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly width: number;\\n}\\n\\ndeclare var TextMetrics: {\\n    prototype: TextMetrics;\\n    new(): TextMetrics;\\n};\\n\\ninterface TextTrackEventMap {\\n    \"cuechange\": Event;\\n    \"error\": Event;\\n    \"load\": Event;\\n}\\n\\n/** This interface also inherits properties from EventTarget. */\\ninterface TextTrack extends EventTarget {\\n    readonly activeCues: TextTrackCueList;\\n    readonly cues: TextTrackCueList;\\n    readonly inBandMetadataTrackDispatchType: string;\\n    readonly kind: string;\\n    readonly label: string;\\n    readonly language: string;\\n    mode: TextTrackMode | number;\\n    oncuechange: ((this: TextTrack, ev: Event) => any) | null;\\n    onerror: ((this: TextTrack, ev: Event) => any) | null;\\n    onload: ((this: TextTrack, ev: Event) => any) | null;\\n    readonly readyState: number;\\n    readonly sourceBuffer: SourceBuffer | null;\\n    addCue(cue: TextTrackCue): void;\\n    removeCue(cue: TextTrackCue): void;\\n    readonly DISABLED: number;\\n    readonly ERROR: number;\\n    readonly HIDDEN: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    readonly SHOWING: number;\\n    addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var TextTrack: {\\n    prototype: TextTrack;\\n    new(): TextTrack;\\n    readonly DISABLED: number;\\n    readonly ERROR: number;\\n    readonly HIDDEN: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    readonly SHOWING: number;\\n};\\n\\ninterface TextTrackCueEventMap {\\n    \"enter\": Event;\\n    \"exit\": Event;\\n}\\n\\n/** TextTrackCues represent a string of text that will be displayed for some duration of time on a TextTrack. This includes the start and end times that the cue will be displayed. A TextTrackCue cannot be used directly, instead one of the derived types (e.g. VTTCue) must be used. */\\ninterface TextTrackCue extends EventTarget {\\n    endTime: number;\\n    id: string;\\n    onenter: ((this: TextTrackCue, ev: Event) => any) | null;\\n    onexit: ((this: TextTrackCue, ev: Event) => any) | null;\\n    pauseOnExit: boolean;\\n    startTime: number;\\n    text: string;\\n    readonly track: TextTrack;\\n    getCueAsHTML(): DocumentFragment;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var TextTrackCue: {\\n    prototype: TextTrackCue;\\n    new(startTime: number, endTime: number, text: string): TextTrackCue;\\n};\\n\\ninterface TextTrackCueList {\\n    readonly length: number;\\n    getCueById(id: string): TextTrackCue;\\n    item(index: number): TextTrackCue;\\n    [index: number]: TextTrackCue;\\n}\\n\\ndeclare var TextTrackCueList: {\\n    prototype: TextTrackCueList;\\n    new(): TextTrackCueList;\\n};\\n\\ninterface TextTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n}\\n\\ninterface TextTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;\\n    item(index: number): TextTrack;\\n    addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: TextTrack;\\n}\\n\\ndeclare var TextTrackList: {\\n    prototype: TextTrackList;\\n    new(): TextTrackList;\\n};\\n\\n/** Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements. */\\ninterface TimeRanges {\\n    readonly length: number;\\n    end(index: number): number;\\n    start(index: number): number;\\n}\\n\\ndeclare var TimeRanges: {\\n    prototype: TimeRanges;\\n    new(): TimeRanges;\\n};\\n\\n/** A single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad. */\\ninterface Touch {\\n    readonly altitudeAngle: number;\\n    readonly azimuthAngle: number;\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly force: number;\\n    readonly identifier: number;\\n    readonly pageX: number;\\n    readonly pageY: number;\\n    readonly radiusX: number;\\n    readonly radiusY: number;\\n    readonly rotationAngle: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly target: EventTarget;\\n    readonly touchType: TouchType;\\n}\\n\\ndeclare var Touch: {\\n    prototype: Touch;\\n    new(touchInitDict: TouchInit): Touch;\\n};\\n\\n/** An event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth. */\\ninterface TouchEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    readonly changedTouches: TouchList;\\n    readonly ctrlKey: boolean;\\n    readonly metaKey: boolean;\\n    readonly shiftKey: boolean;\\n    readonly targetTouches: TouchList;\\n    readonly touches: TouchList;\\n}\\n\\ndeclare var TouchEvent: {\\n    prototype: TouchEvent;\\n    new(type: string, eventInitDict?: TouchEventInit): TouchEvent;\\n};\\n\\n/** A list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries. */\\ninterface TouchList {\\n    readonly length: number;\\n    item(index: number): Touch | null;\\n    [index: number]: Touch;\\n}\\n\\ndeclare var TouchList: {\\n    prototype: TouchList;\\n    new(): TouchList;\\n};\\n\\n/** The TrackEvent interface, part of the HTML DOM specification, is used for events which represent changes to the set of available tracks on an HTML media element; these events are addtrack and removetrack. */\\ninterface TrackEvent extends Event {\\n    readonly track: VideoTrack | AudioTrack | TextTrack | null;\\n}\\n\\ndeclare var TrackEvent: {\\n    prototype: TrackEvent;\\n    new(typeArg: string, eventInitDict?: TrackEventInit): TrackEvent;\\n};\\n\\ninterface TransformStream<I = any, O = any> {\\n    readonly readable: ReadableStream<O>;\\n    readonly writable: WritableStream<I>;\\n}\\n\\ndeclare var TransformStream: {\\n    prototype: TransformStream;\\n    new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;\\n};\\n\\ninterface TransformStreamDefaultController<O = any> {\\n    readonly desiredSize: number | null;\\n    enqueue(chunk: O): void;\\n    error(reason?: any): void;\\n    terminate(): void;\\n}\\n\\n/** Events providing information related to transitions. */\\ninterface TransitionEvent extends Event {\\n    readonly elapsedTime: number;\\n    readonly propertyName: string;\\n    readonly pseudoElement: string;\\n}\\n\\ndeclare var TransitionEvent: {\\n    prototype: TransitionEvent;\\n    new(type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;\\n};\\n\\n/** The nodes of a document subtree and a position within them. */\\ninterface TreeWalker {\\n    currentNode: Node;\\n    readonly filter: NodeFilter | null;\\n    readonly root: Node;\\n    readonly whatToShow: number;\\n    firstChild(): Node | null;\\n    lastChild(): Node | null;\\n    nextNode(): Node | null;\\n    nextSibling(): Node | null;\\n    parentNode(): Node | null;\\n    previousNode(): Node | null;\\n    previousSibling(): Node | null;\\n}\\n\\ndeclare var TreeWalker: {\\n    prototype: TreeWalker;\\n    new(): TreeWalker;\\n};\\n\\n/** Simple user interface events. */\\ninterface UIEvent extends Event {\\n    readonly detail: number;\\n    readonly view: Window | null;\\n    /** @deprecated */\\n    readonly which: number;\\n}\\n\\ndeclare var UIEvent: {\\n    prototype: UIEvent;\\n    new(type: string, eventInitDict?: UIEventInit): UIEvent;\\n};\\n\\n/** The URL interface represents an object providing static methods used for creating object URLs. */\\ninterface URL {\\n    hash: string;\\n    host: string;\\n    hostname: string;\\n    href: string;\\n    readonly origin: string;\\n    password: string;\\n    pathname: string;\\n    port: string;\\n    protocol: string;\\n    search: string;\\n    readonly searchParams: URLSearchParams;\\n    username: string;\\n    toJSON(): string;\\n}\\n\\ndeclare var URL: {\\n    prototype: URL;\\n    new(url: string, base?: string | URL): URL;\\n    createObjectURL(object: any): string;\\n    revokeObjectURL(url: string): void;\\n};\\n\\ntype webkitURL = URL;\\ndeclare var webkitURL: typeof URL;\\n\\ninterface URLSearchParams {\\n    /**\\n     * Appends a specified key/value pair as a new search parameter.\\n     */\\n    append(name: string, value: string): void;\\n    /**\\n     * Deletes the given search parameter, and its associated value, from the list of all search parameters.\\n     */\\n    delete(name: string): void;\\n    /**\\n     * Returns the first value associated to the given search parameter.\\n     */\\n    get(name: string): string | null;\\n    /**\\n     * Returns all the values association with a given search parameter.\\n     */\\n    getAll(name: string): string[];\\n    /**\\n     * Returns a Boolean indicating if such a search parameter exists.\\n     */\\n    has(name: string): boolean;\\n    /**\\n     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.\\n     */\\n    set(name: string, value: string): void;\\n    sort(): void;\\n    forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\\n}\\n\\ndeclare var URLSearchParams: {\\n    prototype: URLSearchParams;\\n    new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;\\n};\\n\\n/** This WebVR API interface represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality. */\\ninterface VRDisplay extends EventTarget {\\n    readonly capabilities: VRDisplayCapabilities;\\n    depthFar: number;\\n    depthNear: number;\\n    readonly displayId: number;\\n    readonly displayName: string;\\n    readonly isConnected: boolean;\\n    readonly isPresenting: boolean;\\n    readonly stageParameters: VRStageParameters | null;\\n    cancelAnimationFrame(handle: number): void;\\n    exitPresent(): Promise<void>;\\n    getEyeParameters(whichEye: string): VREyeParameters;\\n    getFrameData(frameData: VRFrameData): boolean;\\n    getLayers(): VRLayer[];\\n    /** @deprecated */\\n    getPose(): VRPose;\\n    requestAnimationFrame(callback: FrameRequestCallback): number;\\n    requestPresent(layers: VRLayer[]): Promise<void>;\\n    resetPose(): void;\\n    submitFrame(pose?: VRPose): void;\\n}\\n\\ndeclare var VRDisplay: {\\n    prototype: VRDisplay;\\n    new(): VRDisplay;\\n};\\n\\n/** This WebVR API interface describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information. */\\ninterface VRDisplayCapabilities {\\n    readonly canPresent: boolean;\\n    readonly hasExternalDisplay: boolean;\\n    readonly hasOrientation: boolean;\\n    readonly hasPosition: boolean;\\n    readonly maxLayers: number;\\n}\\n\\ndeclare var VRDisplayCapabilities: {\\n    prototype: VRDisplayCapabilities;\\n    new(): VRDisplayCapabilities;\\n};\\n\\n/** This WebVR API interface represents represents the event object of WebVR-related events (see the list of WebVR window extensions). */\\ninterface VRDisplayEvent extends Event {\\n    readonly display: VRDisplay;\\n    readonly reason: VRDisplayEventReason | null;\\n}\\n\\ndeclare var VRDisplayEvent: {\\n    prototype: VRDisplayEvent;\\n    new(type: string, eventInitDict: VRDisplayEventInit): VRDisplayEvent;\\n};\\n\\n/** This WebVR API interface represents all the information required to correctly render a scene for a given eye, including field of view information. */\\ninterface VREyeParameters {\\n    /** @deprecated */\\n    readonly fieldOfView: VRFieldOfView;\\n    readonly offset: Float32Array;\\n    readonly renderHeight: number;\\n    readonly renderWidth: number;\\n}\\n\\ndeclare var VREyeParameters: {\\n    prototype: VREyeParameters;\\n    new(): VREyeParameters;\\n};\\n\\n/** This WebVR API interface represents a field of view defined by 4 different degree values describing the view from a center point. */\\ninterface VRFieldOfView {\\n    readonly downDegrees: number;\\n    readonly leftDegrees: number;\\n    readonly rightDegrees: number;\\n    readonly upDegrees: number;\\n}\\n\\ndeclare var VRFieldOfView: {\\n    prototype: VRFieldOfView;\\n    new(): VRFieldOfView;\\n};\\n\\n/** This WebVR API interface represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData(). */\\ninterface VRFrameData {\\n    readonly leftProjectionMatrix: Float32Array;\\n    readonly leftViewMatrix: Float32Array;\\n    readonly pose: VRPose;\\n    readonly rightProjectionMatrix: Float32Array;\\n    readonly rightViewMatrix: Float32Array;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var VRFrameData: {\\n    prototype: VRFrameData;\\n    new(): VRFrameData;\\n};\\n\\n/** This WebVR API interface represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information.) */\\ninterface VRPose {\\n    readonly angularAcceleration: Float32Array | null;\\n    readonly angularVelocity: Float32Array | null;\\n    readonly linearAcceleration: Float32Array | null;\\n    readonly linearVelocity: Float32Array | null;\\n    readonly orientation: Float32Array | null;\\n    readonly position: Float32Array | null;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var VRPose: {\\n    prototype: VRPose;\\n    new(): VRPose;\\n};\\n\\ninterface VTTCue extends TextTrackCue {\\n    align: AlignSetting;\\n    line: LineAndPositionSetting;\\n    lineAlign: LineAlignSetting;\\n    position: LineAndPositionSetting;\\n    positionAlign: PositionAlignSetting;\\n    region: VTTRegion | null;\\n    size: number;\\n    snapToLines: boolean;\\n    text: string;\\n    vertical: DirectionSetting;\\n    getCueAsHTML(): DocumentFragment;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var VTTCue: {\\n    prototype: VTTCue;\\n    new(startTime: number, endTime: number, text: string): VTTCue;\\n};\\n\\ninterface VTTRegion {\\n    id: string;\\n    lines: number;\\n    regionAnchorX: number;\\n    regionAnchorY: number;\\n    scroll: ScrollSetting;\\n    viewportAnchorX: number;\\n    viewportAnchorY: number;\\n    width: number;\\n}\\n\\ndeclare var VTTRegion: {\\n    prototype: VTTRegion;\\n    new(): VTTRegion;\\n};\\n\\n/** The validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element\\'s value fails to validate, if it\\'s not valid. */\\ninterface ValidityState {\\n    readonly badInput: boolean;\\n    readonly customError: boolean;\\n    readonly patternMismatch: boolean;\\n    readonly rangeOverflow: boolean;\\n    readonly rangeUnderflow: boolean;\\n    readonly stepMismatch: boolean;\\n    readonly tooLong: boolean;\\n    readonly tooShort: boolean;\\n    readonly typeMismatch: boolean;\\n    readonly valid: boolean;\\n    readonly valueMissing: boolean;\\n}\\n\\ndeclare var ValidityState: {\\n    prototype: ValidityState;\\n    new(): ValidityState;\\n};\\n\\n/** Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video. */\\ninterface VideoPlaybackQuality {\\n    readonly corruptedVideoFrames: number;\\n    readonly creationTime: number;\\n    readonly droppedVideoFrames: number;\\n    readonly totalFrameDelay: number;\\n    readonly totalVideoFrames: number;\\n}\\n\\ndeclare var VideoPlaybackQuality: {\\n    prototype: VideoPlaybackQuality;\\n    new(): VideoPlaybackQuality;\\n};\\n\\n/** A single video track from a <video> element. */\\ninterface VideoTrack {\\n    readonly id: string;\\n    kind: string;\\n    readonly label: string;\\n    language: string;\\n    selected: boolean;\\n    readonly sourceBuffer: SourceBuffer | null;\\n}\\n\\ndeclare var VideoTrack: {\\n    prototype: VideoTrack;\\n    new(): VideoTrack;\\n};\\n\\ninterface VideoTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n    \"change\": Event;\\n    \"removetrack\": TrackEvent;\\n}\\n\\n/** Used to represent a list of the video tracks contained within a <video> element, with each track represented by a separate VideoTrack object in the list. */\\ninterface VideoTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: VideoTrackList, ev: TrackEvent) => any) | null;\\n    onchange: ((this: VideoTrackList, ev: Event) => any) | null;\\n    onremovetrack: ((this: VideoTrackList, ev: TrackEvent) => any) | null;\\n    readonly selectedIndex: number;\\n    getTrackById(id: string): VideoTrack | null;\\n    item(index: number): VideoTrack;\\n    addEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: VideoTrack;\\n}\\n\\ndeclare var VideoTrackList: {\\n    prototype: VideoTrackList;\\n    new(): VideoTrackList;\\n};\\n\\ninterface WEBGL_color_buffer_float {\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum;\\n    readonly RGBA32F_EXT: GLenum;\\n    readonly UNSIGNED_NORMALIZED_EXT: GLenum;\\n}\\n\\ninterface WEBGL_compressed_texture_astc {\\n    getSupportedProfiles(): string[];\\n    readonly COMPRESSED_RGBA_ASTC_10x10_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x8_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_12x10_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_12x12_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_4x4_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_5x4_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_5x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_6x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_6x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x8_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: GLenum;\\n}\\n\\n/** The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats. */\\ninterface WEBGL_compressed_texture_s3tc {\\n    readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: GLenum;\\n    readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: GLenum;\\n    readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: GLenum;\\n    readonly COMPRESSED_RGB_S3TC_DXT1_EXT: GLenum;\\n}\\n\\ninterface WEBGL_compressed_texture_s3tc_srgb {\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: GLenum;\\n}\\n\\n/** The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes. */\\ninterface WEBGL_debug_renderer_info {\\n    readonly UNMASKED_RENDERER_WEBGL: GLenum;\\n    readonly UNMASKED_VENDOR_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_debug_shaders {\\n    getTranslatedShaderSource(shader: WebGLShader): string;\\n}\\n\\n/** The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures. */\\ninterface WEBGL_depth_texture {\\n    readonly UNSIGNED_INT_24_8_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_draw_buffers {\\n    drawBuffersWEBGL(buffers: GLenum[]): void;\\n    readonly COLOR_ATTACHMENT0_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT10_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT11_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT12_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT13_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT14_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT15_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT1_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT2_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT3_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT4_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT5_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT6_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT7_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT8_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT9_WEBGL: GLenum;\\n    readonly DRAW_BUFFER0_WEBGL: GLenum;\\n    readonly DRAW_BUFFER10_WEBGL: GLenum;\\n    readonly DRAW_BUFFER11_WEBGL: GLenum;\\n    readonly DRAW_BUFFER12_WEBGL: GLenum;\\n    readonly DRAW_BUFFER13_WEBGL: GLenum;\\n    readonly DRAW_BUFFER14_WEBGL: GLenum;\\n    readonly DRAW_BUFFER15_WEBGL: GLenum;\\n    readonly DRAW_BUFFER1_WEBGL: GLenum;\\n    readonly DRAW_BUFFER2_WEBGL: GLenum;\\n    readonly DRAW_BUFFER3_WEBGL: GLenum;\\n    readonly DRAW_BUFFER4_WEBGL: GLenum;\\n    readonly DRAW_BUFFER5_WEBGL: GLenum;\\n    readonly DRAW_BUFFER6_WEBGL: GLenum;\\n    readonly DRAW_BUFFER7_WEBGL: GLenum;\\n    readonly DRAW_BUFFER8_WEBGL: GLenum;\\n    readonly DRAW_BUFFER9_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS_WEBGL: GLenum;\\n    readonly MAX_DRAW_BUFFERS_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_lose_context {\\n    loseContext(): void;\\n    restoreContext(): void;\\n}\\n\\n/** A WaveShaperNode always has exactly one input and one output. */\\ninterface WaveShaperNode extends AudioNode {\\n    curve: Float32Array | null;\\n    oversample: OverSampleType;\\n}\\n\\ndeclare var WaveShaperNode: {\\n    prototype: WaveShaperNode;\\n    new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;\\n};\\n\\ninterface WebAuthentication {\\n    getAssertion(assertionChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: AssertionOptions): Promise<WebAuthnAssertion>;\\n    makeCredential(accountInformation: Account, cryptoParameters: ScopedCredentialParameters[], attestationChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: ScopedCredentialOptions): Promise<ScopedCredentialInfo>;\\n}\\n\\ndeclare var WebAuthentication: {\\n    prototype: WebAuthentication;\\n    new(): WebAuthentication;\\n};\\n\\ninterface WebAuthnAssertion {\\n    readonly authenticatorData: ArrayBuffer;\\n    readonly clientData: ArrayBuffer;\\n    readonly credential: ScopedCredential;\\n    readonly signature: ArrayBuffer;\\n}\\n\\ndeclare var WebAuthnAssertion: {\\n    prototype: WebAuthnAssertion;\\n    new(): WebAuthnAssertion;\\n};\\n\\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\\n}\\n\\ndeclare var WebGL2RenderingContext: {\\n    prototype: WebGL2RenderingContext;\\n    new(): WebGL2RenderingContext;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\\n    readonly ALREADY_SIGNALED: GLenum;\\n    readonly ANY_SAMPLES_PASSED: GLenum;\\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\\n    readonly COLOR: GLenum;\\n    readonly COLOR_ATTACHMENT1: GLenum;\\n    readonly COLOR_ATTACHMENT10: GLenum;\\n    readonly COLOR_ATTACHMENT11: GLenum;\\n    readonly COLOR_ATTACHMENT12: GLenum;\\n    readonly COLOR_ATTACHMENT13: GLenum;\\n    readonly COLOR_ATTACHMENT14: GLenum;\\n    readonly COLOR_ATTACHMENT15: GLenum;\\n    readonly COLOR_ATTACHMENT2: GLenum;\\n    readonly COLOR_ATTACHMENT3: GLenum;\\n    readonly COLOR_ATTACHMENT4: GLenum;\\n    readonly COLOR_ATTACHMENT5: GLenum;\\n    readonly COLOR_ATTACHMENT6: GLenum;\\n    readonly COLOR_ATTACHMENT7: GLenum;\\n    readonly COLOR_ATTACHMENT8: GLenum;\\n    readonly COLOR_ATTACHMENT9: GLenum;\\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\\n    readonly CONDITION_SATISFIED: GLenum;\\n    readonly COPY_READ_BUFFER: GLenum;\\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\\n    readonly COPY_WRITE_BUFFER: GLenum;\\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\\n    readonly CURRENT_QUERY: GLenum;\\n    readonly DEPTH: GLenum;\\n    readonly DEPTH24_STENCIL8: GLenum;\\n    readonly DEPTH32F_STENCIL8: GLenum;\\n    readonly DEPTH_COMPONENT24: GLenum;\\n    readonly DEPTH_COMPONENT32F: GLenum;\\n    readonly DRAW_BUFFER0: GLenum;\\n    readonly DRAW_BUFFER1: GLenum;\\n    readonly DRAW_BUFFER10: GLenum;\\n    readonly DRAW_BUFFER11: GLenum;\\n    readonly DRAW_BUFFER12: GLenum;\\n    readonly DRAW_BUFFER13: GLenum;\\n    readonly DRAW_BUFFER14: GLenum;\\n    readonly DRAW_BUFFER15: GLenum;\\n    readonly DRAW_BUFFER2: GLenum;\\n    readonly DRAW_BUFFER3: GLenum;\\n    readonly DRAW_BUFFER4: GLenum;\\n    readonly DRAW_BUFFER5: GLenum;\\n    readonly DRAW_BUFFER6: GLenum;\\n    readonly DRAW_BUFFER7: GLenum;\\n    readonly DRAW_BUFFER8: GLenum;\\n    readonly DRAW_BUFFER9: GLenum;\\n    readonly DRAW_FRAMEBUFFER: GLenum;\\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\\n    readonly DYNAMIC_COPY: GLenum;\\n    readonly DYNAMIC_READ: GLenum;\\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\\n    readonly FLOAT_MAT2x3: GLenum;\\n    readonly FLOAT_MAT2x4: GLenum;\\n    readonly FLOAT_MAT3x2: GLenum;\\n    readonly FLOAT_MAT3x4: GLenum;\\n    readonly FLOAT_MAT4x2: GLenum;\\n    readonly FLOAT_MAT4x3: GLenum;\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\\n    readonly HALF_FLOAT: GLenum;\\n    readonly INTERLEAVED_ATTRIBS: GLenum;\\n    readonly INT_2_10_10_10_REV: GLenum;\\n    readonly INT_SAMPLER_2D: GLenum;\\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly INT_SAMPLER_3D: GLenum;\\n    readonly INT_SAMPLER_CUBE: GLenum;\\n    readonly INVALID_INDEX: GLenum;\\n    readonly MAX: GLenum;\\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_DRAW_BUFFERS: GLenum;\\n    readonly MAX_ELEMENTS_INDICES: GLenum;\\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\\n    readonly MAX_ELEMENT_INDEX: GLenum;\\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly MAX_SAMPLES: GLenum;\\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\\n    readonly MAX_VARYING_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MIN: GLenum;\\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly OBJECT_TYPE: GLenum;\\n    readonly PACK_ROW_LENGTH: GLenum;\\n    readonly PACK_SKIP_PIXELS: GLenum;\\n    readonly PACK_SKIP_ROWS: GLenum;\\n    readonly PIXEL_PACK_BUFFER: GLenum;\\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\\n    readonly QUERY_RESULT: GLenum;\\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\\n    readonly R11F_G11F_B10F: GLenum;\\n    readonly R16F: GLenum;\\n    readonly R16I: GLenum;\\n    readonly R16UI: GLenum;\\n    readonly R32F: GLenum;\\n    readonly R32I: GLenum;\\n    readonly R32UI: GLenum;\\n    readonly R8: GLenum;\\n    readonly R8I: GLenum;\\n    readonly R8UI: GLenum;\\n    readonly R8_SNORM: GLenum;\\n    readonly RASTERIZER_DISCARD: GLenum;\\n    readonly READ_BUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\\n    readonly RED: GLenum;\\n    readonly RED_INTEGER: GLenum;\\n    readonly RENDERBUFFER_SAMPLES: GLenum;\\n    readonly RG: GLenum;\\n    readonly RG16F: GLenum;\\n    readonly RG16I: GLenum;\\n    readonly RG16UI: GLenum;\\n    readonly RG32F: GLenum;\\n    readonly RG32I: GLenum;\\n    readonly RG32UI: GLenum;\\n    readonly RG8: GLenum;\\n    readonly RG8I: GLenum;\\n    readonly RG8UI: GLenum;\\n    readonly RG8_SNORM: GLenum;\\n    readonly RGB10_A2: GLenum;\\n    readonly RGB10_A2UI: GLenum;\\n    readonly RGB16F: GLenum;\\n    readonly RGB16I: GLenum;\\n    readonly RGB16UI: GLenum;\\n    readonly RGB32F: GLenum;\\n    readonly RGB32I: GLenum;\\n    readonly RGB32UI: GLenum;\\n    readonly RGB8: GLenum;\\n    readonly RGB8I: GLenum;\\n    readonly RGB8UI: GLenum;\\n    readonly RGB8_SNORM: GLenum;\\n    readonly RGB9_E5: GLenum;\\n    readonly RGBA16F: GLenum;\\n    readonly RGBA16I: GLenum;\\n    readonly RGBA16UI: GLenum;\\n    readonly RGBA32F: GLenum;\\n    readonly RGBA32I: GLenum;\\n    readonly RGBA32UI: GLenum;\\n    readonly RGBA8: GLenum;\\n    readonly RGBA8I: GLenum;\\n    readonly RGBA8UI: GLenum;\\n    readonly RGBA8_SNORM: GLenum;\\n    readonly RGBA_INTEGER: GLenum;\\n    readonly RGB_INTEGER: GLenum;\\n    readonly RG_INTEGER: GLenum;\\n    readonly SAMPLER_2D_ARRAY: GLenum;\\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\\n    readonly SAMPLER_2D_SHADOW: GLenum;\\n    readonly SAMPLER_3D: GLenum;\\n    readonly SAMPLER_BINDING: GLenum;\\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\\n    readonly SEPARATE_ATTRIBS: GLenum;\\n    readonly SIGNALED: GLenum;\\n    readonly SIGNED_NORMALIZED: GLenum;\\n    readonly SRGB: GLenum;\\n    readonly SRGB8: GLenum;\\n    readonly SRGB8_ALPHA8: GLenum;\\n    readonly STATIC_COPY: GLenum;\\n    readonly STATIC_READ: GLenum;\\n    readonly STENCIL: GLenum;\\n    readonly STREAM_COPY: GLenum;\\n    readonly STREAM_READ: GLenum;\\n    readonly SYNC_CONDITION: GLenum;\\n    readonly SYNC_FENCE: GLenum;\\n    readonly SYNC_FLAGS: GLenum;\\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\\n    readonly SYNC_STATUS: GLenum;\\n    readonly TEXTURE_2D_ARRAY: GLenum;\\n    readonly TEXTURE_3D: GLenum;\\n    readonly TEXTURE_BASE_LEVEL: GLenum;\\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\\n    readonly TEXTURE_BINDING_3D: GLenum;\\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\\n    readonly TEXTURE_COMPARE_MODE: GLenum;\\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\\n    readonly TEXTURE_MAX_LEVEL: GLenum;\\n    readonly TEXTURE_MAX_LOD: GLenum;\\n    readonly TEXTURE_MIN_LOD: GLenum;\\n    readonly TEXTURE_WRAP_R: GLenum;\\n    readonly TIMEOUT_EXPIRED: GLenum;\\n    readonly TIMEOUT_IGNORED: GLint64;\\n    readonly TRANSFORM_FEEDBACK: GLenum;\\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\\n    readonly UNIFORM_BUFFER: GLenum;\\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\\n    readonly UNIFORM_BUFFER_START: GLenum;\\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\\n    readonly UNIFORM_OFFSET: GLenum;\\n    readonly UNIFORM_SIZE: GLenum;\\n    readonly UNIFORM_TYPE: GLenum;\\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\\n    readonly UNPACK_ROW_LENGTH: GLenum;\\n    readonly UNPACK_SKIP_IMAGES: GLenum;\\n    readonly UNPACK_SKIP_PIXELS: GLenum;\\n    readonly UNPACK_SKIP_ROWS: GLenum;\\n    readonly UNSIGNALED: GLenum;\\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\\n    readonly UNSIGNED_INT_24_8: GLenum;\\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\\n    readonly UNSIGNED_INT_VEC2: GLenum;\\n    readonly UNSIGNED_INT_VEC3: GLenum;\\n    readonly UNSIGNED_INT_VEC4: GLenum;\\n    readonly UNSIGNED_NORMALIZED: GLenum;\\n    readonly VERTEX_ARRAY_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\\n    readonly WAIT_FAILED: GLenum;\\n};\\n\\ninterface WebGL2RenderingContextBase {\\n    beginQuery(target: GLenum, query: WebGLQuery): void;\\n    beginTransformFeedback(primitiveMode: GLenum): void;\\n    bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\\n    bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\\n    bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\\n    bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\\n    bindVertexArray(array: WebGLVertexArrayObject | null): void;\\n    blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\\n    clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\\n    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;\\n    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;\\n    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;\\n    clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\\n    copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    createQuery(): WebGLQuery | null;\\n    createSampler(): WebGLSampler | null;\\n    createTransformFeedback(): WebGLTransformFeedback | null;\\n    createVertexArray(): WebGLVertexArrayObject | null;\\n    deleteQuery(query: WebGLQuery | null): void;\\n    deleteSampler(sampler: WebGLSampler | null): void;\\n    deleteSync(sync: WebGLSync | null): void;\\n    deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\\n    deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\\n    drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\\n    drawBuffers(buffers: GLenum[]): void;\\n    drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\\n    drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\\n    endQuery(target: GLenum): void;\\n    endTransformFeedback(): void;\\n    fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\\n    framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\\n    getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\\n    getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\\n    getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\\n    getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;\\n    getFragDataLocation(program: WebGLProgram, name: string): GLint;\\n    getIndexedParameter(target: GLenum, index: GLuint): any;\\n    getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\\n    getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\\n    getQueryParameter(query: WebGLQuery, pname: GLenum): any;\\n    getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\\n    getSyncParameter(sync: WebGLSync, pname: GLenum): any;\\n    getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\\n    getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\\n    invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\\n    invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    isQuery(query: WebGLQuery | null): GLboolean;\\n    isSampler(sampler: WebGLSampler | null): GLboolean;\\n    isSync(sync: WebGLSync | null): GLboolean;\\n    isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\\n    isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\\n    pauseTransformFeedback(): void;\\n    readBuffer(src: GLenum): void;\\n    renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    resumeTransformFeedback(): void;\\n    samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\\n    samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;\\n    transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\\n    uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\\n    uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\\n    uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\\n    uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\\n    uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\\n    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\\n    vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\\n    vertexAttribI4iv(index: GLuint, values: Int32List): void;\\n    vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\\n    vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\\n    vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\\n    waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\\n    readonly ALREADY_SIGNALED: GLenum;\\n    readonly ANY_SAMPLES_PASSED: GLenum;\\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\\n    readonly COLOR: GLenum;\\n    readonly COLOR_ATTACHMENT1: GLenum;\\n    readonly COLOR_ATTACHMENT10: GLenum;\\n    readonly COLOR_ATTACHMENT11: GLenum;\\n    readonly COLOR_ATTACHMENT12: GLenum;\\n    readonly COLOR_ATTACHMENT13: GLenum;\\n    readonly COLOR_ATTACHMENT14: GLenum;\\n    readonly COLOR_ATTACHMENT15: GLenum;\\n    readonly COLOR_ATTACHMENT2: GLenum;\\n    readonly COLOR_ATTACHMENT3: GLenum;\\n    readonly COLOR_ATTACHMENT4: GLenum;\\n    readonly COLOR_ATTACHMENT5: GLenum;\\n    readonly COLOR_ATTACHMENT6: GLenum;\\n    readonly COLOR_ATTACHMENT7: GLenum;\\n    readonly COLOR_ATTACHMENT8: GLenum;\\n    readonly COLOR_ATTACHMENT9: GLenum;\\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\\n    readonly CONDITION_SATISFIED: GLenum;\\n    readonly COPY_READ_BUFFER: GLenum;\\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\\n    readonly COPY_WRITE_BUFFER: GLenum;\\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\\n    readonly CURRENT_QUERY: GLenum;\\n    readonly DEPTH: GLenum;\\n    readonly DEPTH24_STENCIL8: GLenum;\\n    readonly DEPTH32F_STENCIL8: GLenum;\\n    readonly DEPTH_COMPONENT24: GLenum;\\n    readonly DEPTH_COMPONENT32F: GLenum;\\n    readonly DRAW_BUFFER0: GLenum;\\n    readonly DRAW_BUFFER1: GLenum;\\n    readonly DRAW_BUFFER10: GLenum;\\n    readonly DRAW_BUFFER11: GLenum;\\n    readonly DRAW_BUFFER12: GLenum;\\n    readonly DRAW_BUFFER13: GLenum;\\n    readonly DRAW_BUFFER14: GLenum;\\n    readonly DRAW_BUFFER15: GLenum;\\n    readonly DRAW_BUFFER2: GLenum;\\n    readonly DRAW_BUFFER3: GLenum;\\n    readonly DRAW_BUFFER4: GLenum;\\n    readonly DRAW_BUFFER5: GLenum;\\n    readonly DRAW_BUFFER6: GLenum;\\n    readonly DRAW_BUFFER7: GLenum;\\n    readonly DRAW_BUFFER8: GLenum;\\n    readonly DRAW_BUFFER9: GLenum;\\n    readonly DRAW_FRAMEBUFFER: GLenum;\\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\\n    readonly DYNAMIC_COPY: GLenum;\\n    readonly DYNAMIC_READ: GLenum;\\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\\n    readonly FLOAT_MAT2x3: GLenum;\\n    readonly FLOAT_MAT2x4: GLenum;\\n    readonly FLOAT_MAT3x2: GLenum;\\n    readonly FLOAT_MAT3x4: GLenum;\\n    readonly FLOAT_MAT4x2: GLenum;\\n    readonly FLOAT_MAT4x3: GLenum;\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\\n    readonly HALF_FLOAT: GLenum;\\n    readonly INTERLEAVED_ATTRIBS: GLenum;\\n    readonly INT_2_10_10_10_REV: GLenum;\\n    readonly INT_SAMPLER_2D: GLenum;\\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly INT_SAMPLER_3D: GLenum;\\n    readonly INT_SAMPLER_CUBE: GLenum;\\n    readonly INVALID_INDEX: GLenum;\\n    readonly MAX: GLenum;\\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_DRAW_BUFFERS: GLenum;\\n    readonly MAX_ELEMENTS_INDICES: GLenum;\\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\\n    readonly MAX_ELEMENT_INDEX: GLenum;\\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly MAX_SAMPLES: GLenum;\\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\\n    readonly MAX_VARYING_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MIN: GLenum;\\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly OBJECT_TYPE: GLenum;\\n    readonly PACK_ROW_LENGTH: GLenum;\\n    readonly PACK_SKIP_PIXELS: GLenum;\\n    readonly PACK_SKIP_ROWS: GLenum;\\n    readonly PIXEL_PACK_BUFFER: GLenum;\\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\\n    readonly QUERY_RESULT: GLenum;\\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\\n    readonly R11F_G11F_B10F: GLenum;\\n    readonly R16F: GLenum;\\n    readonly R16I: GLenum;\\n    readonly R16UI: GLenum;\\n    readonly R32F: GLenum;\\n    readonly R32I: GLenum;\\n    readonly R32UI: GLenum;\\n    readonly R8: GLenum;\\n    readonly R8I: GLenum;\\n    readonly R8UI: GLenum;\\n    readonly R8_SNORM: GLenum;\\n    readonly RASTERIZER_DISCARD: GLenum;\\n    readonly READ_BUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\\n    readonly RED: GLenum;\\n    readonly RED_INTEGER: GLenum;\\n    readonly RENDERBUFFER_SAMPLES: GLenum;\\n    readonly RG: GLenum;\\n    readonly RG16F: GLenum;\\n    readonly RG16I: GLenum;\\n    readonly RG16UI: GLenum;\\n    readonly RG32F: GLenum;\\n    readonly RG32I: GLenum;\\n    readonly RG32UI: GLenum;\\n    readonly RG8: GLenum;\\n    readonly RG8I: GLenum;\\n    readonly RG8UI: GLenum;\\n    readonly RG8_SNORM: GLenum;\\n    readonly RGB10_A2: GLenum;\\n    readonly RGB10_A2UI: GLenum;\\n    readonly RGB16F: GLenum;\\n    readonly RGB16I: GLenum;\\n    readonly RGB16UI: GLenum;\\n    readonly RGB32F: GLenum;\\n    readonly RGB32I: GLenum;\\n    readonly RGB32UI: GLenum;\\n    readonly RGB8: GLenum;\\n    readonly RGB8I: GLenum;\\n    readonly RGB8UI: GLenum;\\n    readonly RGB8_SNORM: GLenum;\\n    readonly RGB9_E5: GLenum;\\n    readonly RGBA16F: GLenum;\\n    readonly RGBA16I: GLenum;\\n    readonly RGBA16UI: GLenum;\\n    readonly RGBA32F: GLenum;\\n    readonly RGBA32I: GLenum;\\n    readonly RGBA32UI: GLenum;\\n    readonly RGBA8: GLenum;\\n    readonly RGBA8I: GLenum;\\n    readonly RGBA8UI: GLenum;\\n    readonly RGBA8_SNORM: GLenum;\\n    readonly RGBA_INTEGER: GLenum;\\n    readonly RGB_INTEGER: GLenum;\\n    readonly RG_INTEGER: GLenum;\\n    readonly SAMPLER_2D_ARRAY: GLenum;\\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\\n    readonly SAMPLER_2D_SHADOW: GLenum;\\n    readonly SAMPLER_3D: GLenum;\\n    readonly SAMPLER_BINDING: GLenum;\\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\\n    readonly SEPARATE_ATTRIBS: GLenum;\\n    readonly SIGNALED: GLenum;\\n    readonly SIGNED_NORMALIZED: GLenum;\\n    readonly SRGB: GLenum;\\n    readonly SRGB8: GLenum;\\n    readonly SRGB8_ALPHA8: GLenum;\\n    readonly STATIC_COPY: GLenum;\\n    readonly STATIC_READ: GLenum;\\n    readonly STENCIL: GLenum;\\n    readonly STREAM_COPY: GLenum;\\n    readonly STREAM_READ: GLenum;\\n    readonly SYNC_CONDITION: GLenum;\\n    readonly SYNC_FENCE: GLenum;\\n    readonly SYNC_FLAGS: GLenum;\\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\\n    readonly SYNC_STATUS: GLenum;\\n    readonly TEXTURE_2D_ARRAY: GLenum;\\n    readonly TEXTURE_3D: GLenum;\\n    readonly TEXTURE_BASE_LEVEL: GLenum;\\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\\n    readonly TEXTURE_BINDING_3D: GLenum;\\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\\n    readonly TEXTURE_COMPARE_MODE: GLenum;\\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\\n    readonly TEXTURE_MAX_LEVEL: GLenum;\\n    readonly TEXTURE_MAX_LOD: GLenum;\\n    readonly TEXTURE_MIN_LOD: GLenum;\\n    readonly TEXTURE_WRAP_R: GLenum;\\n    readonly TIMEOUT_EXPIRED: GLenum;\\n    readonly TIMEOUT_IGNORED: GLint64;\\n    readonly TRANSFORM_FEEDBACK: GLenum;\\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\\n    readonly UNIFORM_BUFFER: GLenum;\\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\\n    readonly UNIFORM_BUFFER_START: GLenum;\\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\\n    readonly UNIFORM_OFFSET: GLenum;\\n    readonly UNIFORM_SIZE: GLenum;\\n    readonly UNIFORM_TYPE: GLenum;\\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\\n    readonly UNPACK_ROW_LENGTH: GLenum;\\n    readonly UNPACK_SKIP_IMAGES: GLenum;\\n    readonly UNPACK_SKIP_PIXELS: GLenum;\\n    readonly UNPACK_SKIP_ROWS: GLenum;\\n    readonly UNSIGNALED: GLenum;\\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\\n    readonly UNSIGNED_INT_24_8: GLenum;\\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\\n    readonly UNSIGNED_INT_VEC2: GLenum;\\n    readonly UNSIGNED_INT_VEC3: GLenum;\\n    readonly UNSIGNED_INT_VEC4: GLenum;\\n    readonly UNSIGNED_NORMALIZED: GLenum;\\n    readonly VERTEX_ARRAY_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\\n    readonly WAIT_FAILED: GLenum;\\n}\\n\\ninterface WebGL2RenderingContextOverloads {\\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\\n    bufferData(target: GLenum, srcData: BufferSource | null, usage: GLenum): void;\\n    bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;\\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource): void;\\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n}\\n\\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods. */\\ninterface WebGLActiveInfo {\\n    readonly name: string;\\n    readonly size: GLint;\\n    readonly type: GLenum;\\n}\\n\\ndeclare var WebGLActiveInfo: {\\n    prototype: WebGLActiveInfo;\\n    new(): WebGLActiveInfo;\\n};\\n\\n/** Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors. */\\ninterface WebGLBuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLBuffer: {\\n    prototype: WebGLBuffer;\\n    new(): WebGLBuffer;\\n};\\n\\n/** The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context. */\\ninterface WebGLContextEvent extends Event {\\n    readonly statusMessage: string;\\n}\\n\\ndeclare var WebGLContextEvent: {\\n    prototype: WebGLContextEvent;\\n    new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\\n};\\n\\n/** Part of the WebGL API and represents a collection of buffers that serve as a rendering destination. */\\ninterface WebGLFramebuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLFramebuffer: {\\n    prototype: WebGLFramebuffer;\\n    new(): WebGLFramebuffer;\\n};\\n\\ninterface WebGLObject {\\n}\\n\\ndeclare var WebGLObject: {\\n    prototype: WebGLObject;\\n    new(): WebGLObject;\\n};\\n\\n/** The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). */\\ninterface WebGLProgram extends WebGLObject {\\n}\\n\\ndeclare var WebGLProgram: {\\n    prototype: WebGLProgram;\\n    new(): WebGLProgram;\\n};\\n\\ninterface WebGLQuery extends WebGLObject {\\n}\\n\\ndeclare var WebGLQuery: {\\n    prototype: WebGLQuery;\\n    new(): WebGLQuery;\\n};\\n\\n/** Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation. */\\ninterface WebGLRenderbuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLRenderbuffer: {\\n    prototype: WebGLRenderbuffer;\\n    new(): WebGLRenderbuffer;\\n};\\n\\n/** Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element. */\\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\\n}\\n\\ndeclare var WebGLRenderingContext: {\\n    prototype: WebGLRenderingContext;\\n    new(): WebGLRenderingContext;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n};\\n\\ninterface WebGLRenderingContextBase {\\n    readonly canvas: HTMLCanvasElement | OffscreenCanvas;\\n    readonly drawingBufferHeight: GLsizei;\\n    readonly drawingBufferWidth: GLsizei;\\n    activeTexture(texture: GLenum): void;\\n    attachShader(program: WebGLProgram, shader: WebGLShader): void;\\n    bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\\n    bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\\n    bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\\n    bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\\n    bindTexture(target: GLenum, texture: WebGLTexture | null): void;\\n    blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\\n    blendEquation(mode: GLenum): void;\\n    blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\\n    blendFunc(sfactor: GLenum, dfactor: GLenum): void;\\n    blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\\n    checkFramebufferStatus(target: GLenum): GLenum;\\n    clear(mask: GLbitfield): void;\\n    clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\\n    clearDepth(depth: GLclampf): void;\\n    clearStencil(s: GLint): void;\\n    colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\\n    compileShader(shader: WebGLShader): void;\\n    copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\\n    copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    createBuffer(): WebGLBuffer | null;\\n    createFramebuffer(): WebGLFramebuffer | null;\\n    createProgram(): WebGLProgram | null;\\n    createRenderbuffer(): WebGLRenderbuffer | null;\\n    createShader(type: GLenum): WebGLShader | null;\\n    createTexture(): WebGLTexture | null;\\n    cullFace(mode: GLenum): void;\\n    deleteBuffer(buffer: WebGLBuffer | null): void;\\n    deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\\n    deleteProgram(program: WebGLProgram | null): void;\\n    deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\\n    deleteShader(shader: WebGLShader | null): void;\\n    deleteTexture(texture: WebGLTexture | null): void;\\n    depthFunc(func: GLenum): void;\\n    depthMask(flag: GLboolean): void;\\n    depthRange(zNear: GLclampf, zFar: GLclampf): void;\\n    detachShader(program: WebGLProgram, shader: WebGLShader): void;\\n    disable(cap: GLenum): void;\\n    disableVertexAttribArray(index: GLuint): void;\\n    drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\\n    drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\\n    enable(cap: GLenum): void;\\n    enableVertexAttribArray(index: GLuint): void;\\n    finish(): void;\\n    flush(): void;\\n    framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\\n    framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\\n    frontFace(mode: GLenum): void;\\n    generateMipmap(target: GLenum): void;\\n    getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\\n    getAttribLocation(program: WebGLProgram, name: string): GLint;\\n    getBufferParameter(target: GLenum, pname: GLenum): any;\\n    getContextAttributes(): WebGLContextAttributes | null;\\n    getError(): GLenum;\\n    getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null;\\n    getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null;\\n    getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null;\\n    getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null;\\n    getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null;\\n    getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null;\\n    getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null;\\n    getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null;\\n    getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null;\\n    getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null;\\n    getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null;\\n    getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null;\\n    getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null;\\n    getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null;\\n    getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null;\\n    getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null;\\n    getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null;\\n    getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null;\\n    getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null;\\n    getExtension(extensionName: string): any;\\n    getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\\n    getParameter(pname: GLenum): any;\\n    getProgramInfoLog(program: WebGLProgram): string | null;\\n    getProgramParameter(program: WebGLProgram, pname: GLenum): any;\\n    getRenderbufferParameter(target: GLenum, pname: GLenum): any;\\n    getShaderInfoLog(shader: WebGLShader): string | null;\\n    getShaderParameter(shader: WebGLShader, pname: GLenum): any;\\n    getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\\n    getShaderSource(shader: WebGLShader): string | null;\\n    getSupportedExtensions(): string[] | null;\\n    getTexParameter(target: GLenum, pname: GLenum): any;\\n    getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\\n    getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\\n    getVertexAttrib(index: GLuint, pname: GLenum): any;\\n    getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\\n    hint(target: GLenum, mode: GLenum): void;\\n    isBuffer(buffer: WebGLBuffer | null): GLboolean;\\n    isContextLost(): boolean;\\n    isEnabled(cap: GLenum): GLboolean;\\n    isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\\n    isProgram(program: WebGLProgram | null): GLboolean;\\n    isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\\n    isShader(shader: WebGLShader | null): GLboolean;\\n    isTexture(texture: WebGLTexture | null): GLboolean;\\n    lineWidth(width: GLfloat): void;\\n    linkProgram(program: WebGLProgram): void;\\n    pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\\n    polygonOffset(factor: GLfloat, units: GLfloat): void;\\n    renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    sampleCoverage(value: GLclampf, invert: GLboolean): void;\\n    scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    shaderSource(shader: WebGLShader, source: string): void;\\n    stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\\n    stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\\n    stencilMask(mask: GLuint): void;\\n    stencilMaskSeparate(face: GLenum, mask: GLuint): void;\\n    stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\\n    stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\\n    texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\\n    texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\\n    uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\\n    uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\\n    uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\\n    uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\\n    uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\\n    uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\\n    uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\\n    uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\\n    useProgram(program: WebGLProgram | null): void;\\n    validateProgram(program: WebGLProgram): void;\\n    vertexAttrib1f(index: GLuint, x: GLfloat): void;\\n    vertexAttrib1fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\\n    vertexAttrib2fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\\n    vertexAttrib3fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\\n    vertexAttrib4fv(index: GLuint, values: Float32List): void;\\n    vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\\n    viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n}\\n\\ninterface WebGLRenderingContextOverloads {\\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\\n    bufferData(target: GLenum, data: BufferSource | null, usage: GLenum): void;\\n    bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n}\\n\\ninterface WebGLSampler extends WebGLObject {\\n}\\n\\ndeclare var WebGLSampler: {\\n    prototype: WebGLSampler;\\n    new(): WebGLSampler;\\n};\\n\\n/** The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders. */\\ninterface WebGLShader extends WebGLObject {\\n}\\n\\ndeclare var WebGLShader: {\\n    prototype: WebGLShader;\\n    new(): WebGLShader;\\n};\\n\\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method. */\\ninterface WebGLShaderPrecisionFormat {\\n    readonly precision: GLint;\\n    readonly rangeMax: GLint;\\n    readonly rangeMin: GLint;\\n}\\n\\ndeclare var WebGLShaderPrecisionFormat: {\\n    prototype: WebGLShaderPrecisionFormat;\\n    new(): WebGLShaderPrecisionFormat;\\n};\\n\\ninterface WebGLSync extends WebGLObject {\\n}\\n\\ndeclare var WebGLSync: {\\n    prototype: WebGLSync;\\n    new(): WebGLSync;\\n};\\n\\n/** Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations. */\\ninterface WebGLTexture extends WebGLObject {\\n}\\n\\ndeclare var WebGLTexture: {\\n    prototype: WebGLTexture;\\n    new(): WebGLTexture;\\n};\\n\\ninterface WebGLTransformFeedback extends WebGLObject {\\n}\\n\\ndeclare var WebGLTransformFeedback: {\\n    prototype: WebGLTransformFeedback;\\n    new(): WebGLTransformFeedback;\\n};\\n\\n/** Part of the WebGL API and represents the location of a uniform variable in a shader program. */\\ninterface WebGLUniformLocation {\\n}\\n\\ndeclare var WebGLUniformLocation: {\\n    prototype: WebGLUniformLocation;\\n    new(): WebGLUniformLocation;\\n};\\n\\ninterface WebGLVertexArrayObject extends WebGLObject {\\n}\\n\\ndeclare var WebGLVertexArrayObject: {\\n    prototype: WebGLVertexArrayObject;\\n    new(): WebGLVertexArrayObject;\\n};\\n\\ninterface WebGLVertexArrayObjectOES extends WebGLObject {\\n}\\n\\ninterface WebKitPoint {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var WebKitPoint: {\\n    prototype: WebKitPoint;\\n    new(x?: number, y?: number): WebKitPoint;\\n};\\n\\ninterface WebSocketEventMap {\\n    \"close\": CloseEvent;\\n    \"error\": Event;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\n/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */\\ninterface WebSocket extends EventTarget {\\n    binaryType: BinaryType;\\n    readonly bufferedAmount: number;\\n    readonly extensions: string;\\n    onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\\n    onerror: ((this: WebSocket, ev: Event) => any) | null;\\n    onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\\n    onopen: ((this: WebSocket, ev: Event) => any) | null;\\n    readonly protocol: string;\\n    readonly readyState: number;\\n    readonly url: string;\\n    close(code?: number, reason?: string): void;\\n    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\\n    readonly CLOSED: number;\\n    readonly CLOSING: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n    addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var WebSocket: {\\n    prototype: WebSocket;\\n    new(url: string, protocols?: string | string[]): WebSocket;\\n    readonly CLOSED: number;\\n    readonly CLOSING: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n};\\n\\n/** Events that occur due to the user moving a mouse wheel or similar input device. */\\ninterface WheelEvent extends MouseEvent {\\n    readonly deltaMode: number;\\n    readonly deltaX: number;\\n    readonly deltaY: number;\\n    readonly deltaZ: number;\\n    readonly DOM_DELTA_LINE: number;\\n    readonly DOM_DELTA_PAGE: number;\\n    readonly DOM_DELTA_PIXEL: number;\\n}\\n\\ndeclare var WheelEvent: {\\n    prototype: WheelEvent;\\n    new(type: string, eventInitDict?: WheelEventInit): WheelEvent;\\n    readonly DOM_DELTA_LINE: number;\\n    readonly DOM_DELTA_PAGE: number;\\n    readonly DOM_DELTA_PIXEL: number;\\n};\\n\\ninterface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandlersEventMap {\\n    \"abort\": UIEvent;\\n    \"afterprint\": Event;\\n    \"beforeprint\": Event;\\n    \"beforeunload\": BeforeUnloadEvent;\\n    \"blur\": FocusEvent;\\n    \"canplay\": Event;\\n    \"canplaythrough\": Event;\\n    \"change\": Event;\\n    \"click\": MouseEvent;\\n    \"compassneedscalibration\": Event;\\n    \"contextmenu\": MouseEvent;\\n    \"dblclick\": MouseEvent;\\n    \"devicelight\": DeviceLightEvent;\\n    \"devicemotion\": DeviceMotionEvent;\\n    \"deviceorientation\": DeviceOrientationEvent;\\n    \"deviceorientationabsolute\": DeviceOrientationEvent;\\n    \"drag\": DragEvent;\\n    \"dragend\": DragEvent;\\n    \"dragenter\": DragEvent;\\n    \"dragleave\": DragEvent;\\n    \"dragover\": DragEvent;\\n    \"dragstart\": DragEvent;\\n    \"drop\": DragEvent;\\n    \"durationchange\": Event;\\n    \"emptied\": Event;\\n    \"ended\": Event;\\n    \"error\": ErrorEvent;\\n    \"focus\": FocusEvent;\\n    \"hashchange\": HashChangeEvent;\\n    \"input\": Event;\\n    \"invalid\": Event;\\n    \"keydown\": KeyboardEvent;\\n    \"keypress\": KeyboardEvent;\\n    \"keyup\": KeyboardEvent;\\n    \"load\": Event;\\n    \"loadeddata\": Event;\\n    \"loadedmetadata\": Event;\\n    \"loadstart\": Event;\\n    \"message\": MessageEvent;\\n    \"mousedown\": MouseEvent;\\n    \"mouseenter\": MouseEvent;\\n    \"mouseleave\": MouseEvent;\\n    \"mousemove\": MouseEvent;\\n    \"mouseout\": MouseEvent;\\n    \"mouseover\": MouseEvent;\\n    \"mouseup\": MouseEvent;\\n    \"mousewheel\": Event;\\n    \"MSGestureChange\": Event;\\n    \"MSGestureDoubleTap\": Event;\\n    \"MSGestureEnd\": Event;\\n    \"MSGestureHold\": Event;\\n    \"MSGestureStart\": Event;\\n    \"MSGestureTap\": Event;\\n    \"MSInertiaStart\": Event;\\n    \"MSPointerCancel\": Event;\\n    \"MSPointerDown\": Event;\\n    \"MSPointerEnter\": Event;\\n    \"MSPointerLeave\": Event;\\n    \"MSPointerMove\": Event;\\n    \"MSPointerOut\": Event;\\n    \"MSPointerOver\": Event;\\n    \"MSPointerUp\": Event;\\n    \"offline\": Event;\\n    \"online\": Event;\\n    \"orientationchange\": Event;\\n    \"pagehide\": PageTransitionEvent;\\n    \"pageshow\": PageTransitionEvent;\\n    \"pause\": Event;\\n    \"play\": Event;\\n    \"playing\": Event;\\n    \"popstate\": PopStateEvent;\\n    \"progress\": ProgressEvent<Window>;\\n    \"ratechange\": Event;\\n    \"readystatechange\": ProgressEvent<Window>;\\n    \"reset\": Event;\\n    \"resize\": UIEvent;\\n    \"scroll\": Event;\\n    \"seeked\": Event;\\n    \"seeking\": Event;\\n    \"select\": Event;\\n    \"stalled\": Event;\\n    \"storage\": StorageEvent;\\n    \"submit\": Event;\\n    \"suspend\": Event;\\n    \"timeupdate\": Event;\\n    \"unload\": Event;\\n    \"volumechange\": Event;\\n    \"vrdisplayactivate\": Event;\\n    \"vrdisplayblur\": Event;\\n    \"vrdisplayconnect\": Event;\\n    \"vrdisplaydeactivate\": Event;\\n    \"vrdisplaydisconnect\": Event;\\n    \"vrdisplayfocus\": Event;\\n    \"vrdisplaypointerrestricted\": Event;\\n    \"vrdisplaypointerunrestricted\": Event;\\n    \"vrdisplaypresentchange\": Event;\\n    \"waiting\": Event;\\n}\\n\\n/** A window containing a DOM document; the document property points to the DOM document loaded in that window. */\\ninterface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandlers, IDBEnvironment, WindowBase64, WindowConsole, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowTimers {\\n    readonly applicationCache: ApplicationCache;\\n    readonly caches: CacheStorage;\\n    readonly clientInformation: Navigator;\\n    readonly closed: boolean;\\n    readonly crypto: Crypto;\\n    customElements: CustomElementRegistry;\\n    defaultStatus: string;\\n    readonly devicePixelRatio: number;\\n    readonly doNotTrack: string;\\n    readonly document: Document;\\n    /** @deprecated */\\n    readonly event: Event | undefined;\\n    /** @deprecated */\\n    readonly external: External;\\n    readonly frameElement: Element;\\n    readonly frames: Window;\\n    readonly history: History;\\n    readonly innerHeight: number;\\n    readonly innerWidth: number;\\n    readonly isSecureContext: boolean;\\n    readonly length: number;\\n    location: Location;\\n    readonly locationbar: BarProp;\\n    readonly menubar: BarProp;\\n    readonly msContentScript: ExtensionScriptApis;\\n    name: string;\\n    readonly navigator: Navigator;\\n    offscreenBuffering: string | boolean;\\n    oncompassneedscalibration: ((this: Window, ev: Event) => any) | null;\\n    ondevicelight: ((this: Window, ev: DeviceLightEvent) => any) | null;\\n    ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\\n    ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\n    ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\n    onmousewheel: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturechange: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturedoubletap: ((this: Window, ev: Event) => any) | null;\\n    onmsgestureend: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturehold: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturestart: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturetap: ((this: Window, ev: Event) => any) | null;\\n    onmsinertiastart: ((this: Window, ev: Event) => any) | null;\\n    onmspointercancel: ((this: Window, ev: Event) => any) | null;\\n    onmspointerdown: ((this: Window, ev: Event) => any) | null;\\n    onmspointerenter: ((this: Window, ev: Event) => any) | null;\\n    onmspointerleave: ((this: Window, ev: Event) => any) | null;\\n    onmspointermove: ((this: Window, ev: Event) => any) | null;\\n    onmspointerout: ((this: Window, ev: Event) => any) | null;\\n    onmspointerover: ((this: Window, ev: Event) => any) | null;\\n    onmspointerup: ((this: Window, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onorientationchange: ((this: Window, ev: Event) => any) | null;\\n    onreadystatechange: ((this: Window, ev: ProgressEvent<Window>) => any) | null;\\n    onvrdisplayactivate: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayblur: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayconnect: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaydeactivate: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaydisconnect: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayfocus: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypointerrestricted: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypointerunrestricted: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypresentchange: ((this: Window, ev: Event) => any) | null;\\n    opener: any;\\n    /** @deprecated */\\n    readonly orientation: string | number;\\n    readonly outerHeight: number;\\n    readonly outerWidth: number;\\n    readonly pageXOffset: number;\\n    readonly pageYOffset: number;\\n    readonly parent: Window;\\n    readonly performance: Performance;\\n    readonly personalbar: BarProp;\\n    readonly screen: Screen;\\n    readonly screenLeft: number;\\n    readonly screenTop: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly scrollX: number;\\n    readonly scrollY: number;\\n    readonly scrollbars: BarProp;\\n    readonly self: Window & typeof globalThis;\\n    readonly speechSynthesis: SpeechSynthesis;\\n    status: string;\\n    readonly statusbar: BarProp;\\n    readonly styleMedia: StyleMedia;\\n    readonly toolbar: BarProp;\\n    readonly top: Window;\\n    readonly window: Window & typeof globalThis;\\n    alert(message?: any): void;\\n    blur(): void;\\n    /** @deprecated */\\n    captureEvents(): void;\\n    close(): void;\\n    confirm(message?: string): boolean;\\n    departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\\n    focus(): void;\\n    getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\n    getMatchedCSSRules(elt: Element, pseudoElt?: string | null): CSSRuleList;\\n    getSelection(): Selection | null;\\n    matchMedia(query: string): MediaQueryList;\\n    moveBy(x: number, y: number): void;\\n    moveTo(x: number, y: number): void;\\n    msWriteProfilerMark(profilerMarkName: string): void;\\n    open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;\\n    postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\\n    print(): void;\\n    prompt(message?: string, _default?: string): string | null;\\n    /** @deprecated */\\n    releaseEvents(): void;\\n    resizeBy(x: number, y: number): void;\\n    resizeTo(x: number, y: number): void;\\n    scroll(options?: ScrollToOptions): void;\\n    scroll(x: number, y: number): void;\\n    scrollBy(options?: ScrollToOptions): void;\\n    scrollBy(x: number, y: number): void;\\n    scrollTo(options?: ScrollToOptions): void;\\n    scrollTo(x: number, y: number): void;\\n    stop(): void;\\n    webkitCancelAnimationFrame(handle: number): void;\\n    webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\\n    webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\\n    webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\\n    addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: Window;\\n}\\n\\ndeclare var Window: {\\n    prototype: Window;\\n    new(): Window;\\n};\\n\\ninterface WindowBase64 {\\n    atob(encodedString: string): string;\\n    btoa(rawString: string): string;\\n}\\n\\ninterface WindowConsole {\\n    readonly console: Console;\\n}\\n\\ninterface WindowEventHandlersEventMap {\\n    \"afterprint\": Event;\\n    \"beforeprint\": Event;\\n    \"beforeunload\": BeforeUnloadEvent;\\n    \"hashchange\": HashChangeEvent;\\n    \"languagechange\": Event;\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n    \"offline\": Event;\\n    \"online\": Event;\\n    \"pagehide\": PageTransitionEvent;\\n    \"pageshow\": PageTransitionEvent;\\n    \"popstate\": PopStateEvent;\\n    \"rejectionhandled\": Event;\\n    \"storage\": StorageEvent;\\n    \"unhandledrejection\": PromiseRejectionEvent;\\n    \"unload\": Event;\\n}\\n\\ninterface WindowEventHandlers {\\n    onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;\\n    onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;\\n    onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\\n    onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\\n    onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\\n    onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;\\n    onrejectionhandled: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;\\n    onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;\\n    onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface WindowLocalStorage {\\n    readonly localStorage: Storage;\\n}\\n\\ninterface WindowOrWorkerGlobalScope {\\n    readonly caches: CacheStorage;\\n    readonly crypto: Crypto;\\n    readonly indexedDB: IDBFactory;\\n    readonly origin: string;\\n    readonly performance: Performance;\\n    atob(data: string): string;\\n    btoa(data: string): string;\\n    clearInterval(handle?: number): void;\\n    clearTimeout(handle?: number): void;\\n    createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;\\n    createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;\\n    fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;\\n    queueMicrotask(callback: Function): void;\\n    setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\n    setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\n}\\n\\ninterface WindowSessionStorage {\\n    readonly sessionStorage: Storage;\\n}\\n\\ninterface WindowTimers {\\n}\\n\\ninterface WorkerEventMap extends AbstractWorkerEventMap {\\n    \"message\": MessageEvent;\\n}\\n\\n/** This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */\\ninterface Worker extends EventTarget, AbstractWorker {\\n    onmessage: ((this: Worker, ev: MessageEvent) => any) | null;\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    terminate(): void;\\n    addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Worker: {\\n    prototype: Worker;\\n    new(stringUrl: string | URL, options?: WorkerOptions): Worker;\\n};\\n\\ninterface Worklet {\\n    addModule(moduleURL: string, options?: WorkletOptions): Promise<void>;\\n}\\n\\ndeclare var Worklet: {\\n    prototype: Worklet;\\n    new(): Worklet;\\n};\\n\\n/** This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. */\\ninterface WritableStream<W = any> {\\n    readonly locked: boolean;\\n    abort(reason?: any): Promise<void>;\\n    getWriter(): WritableStreamDefaultWriter<W>;\\n}\\n\\ndeclare var WritableStream: {\\n    prototype: WritableStream;\\n    new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\\n};\\n\\n/** This Streams API interface represents a controller allowing control of a WritableStream\\'s state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. */\\ninterface WritableStreamDefaultController {\\n    error(error?: any): void;\\n}\\n\\n/** This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. */\\ninterface WritableStreamDefaultWriter<W = any> {\\n    readonly closed: Promise<void>;\\n    readonly desiredSize: number | null;\\n    readonly ready: Promise<void>;\\n    abort(reason?: any): Promise<void>;\\n    close(): Promise<void>;\\n    releaseLock(): void;\\n    write(chunk: W): Promise<void>;\\n}\\n\\n/** An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents. */\\ninterface XMLDocument extends Document {\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLDocument: {\\n    prototype: XMLDocument;\\n    new(): XMLDocument;\\n};\\n\\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\\n    \"readystatechange\": Event;\\n}\\n\\n/** Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing. */\\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\\n    onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\\n    /**\\n     * Returns client\\'s state.\\n     */\\n    readonly readyState: number;\\n    /**\\n     * Returns the response\\'s body.\\n     */\\n    readonly response: any;\\n    /**\\n     * Returns the text response.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if responseType is not the empty string or \"text\".\\n     */\\n    readonly responseText: string;\\n    /**\\n     * Returns the response type.\\n     * \\n     * Can be set to change the response type. Values are: the empty string (default), \"arraybuffer\", \"blob\", \"document\", \"json\", and \"text\".\\n     * \\n     * When set: setting to \"document\" is ignored if current global object is not a Window object.\\n     * \\n     * When set: throws an \"InvalidStateError\" DOMException if state is loading or done.\\n     * \\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\\n     */\\n    responseType: XMLHttpRequestResponseType;\\n    readonly responseURL: string;\\n    /**\\n     * Returns the document response.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if responseType is not the empty string or \"document\".\\n     */\\n    readonly responseXML: Document | null;\\n    readonly status: number;\\n    readonly statusText: string;\\n    /**\\n     * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and the synchronous flag is unset, a timeout event will then be dispatched, or a \"TimeoutError\" DOMException will be thrown otherwise (for the send() method).\\n     * \\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\\n     */\\n    timeout: number;\\n    /**\\n     * Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server.\\n     */\\n    readonly upload: XMLHttpRequestUpload;\\n    /**\\n     * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.\\n     * \\n     * When set: throws an \"InvalidStateError\" DOMException if state is not unsent or opened, or if the send() flag is set.\\n     */\\n    withCredentials: boolean;\\n    /**\\n     * Cancels any network activity.\\n     */\\n    abort(): void;\\n    getAllResponseHeaders(): string;\\n    getResponseHeader(name: string): string | null;\\n    /**\\n     * Sets the request method, request URL, and synchronous flag.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if either method is not a valid HTTP method or url cannot be parsed.\\n     * \\n     * Throws a \"SecurityError\" DOMException if method is a case-insensitive match for `CONNECT`, `TRACE`, or `TRACK`.\\n     * \\n     * Throws an \"InvalidAccessError\" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.\\n     */\\n    open(method: string, url: string): void;\\n    open(method: string, url: string, async: boolean, username?: string | null, password?: string | null): void;\\n    /**\\n     * Acts as if the `Content-Type` header value for response is mime. (It does not actually change the header though.)\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if state is loading or done.\\n     */\\n    overrideMimeType(mime: string): void;\\n    /**\\n     * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\\n     */\\n    send(body?: Document | BodyInit | null): void;\\n    /**\\n     * Combines a header in author request headers.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if name is not a header name or if value is not a header value.\\n     */\\n    setRequestHeader(name: string, value: string): void;\\n    readonly DONE: number;\\n    readonly HEADERS_RECEIVED: number;\\n    readonly LOADING: number;\\n    readonly OPENED: number;\\n    readonly UNSENT: number;\\n    addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequest: {\\n    prototype: XMLHttpRequest;\\n    new(): XMLHttpRequest;\\n    readonly DONE: number;\\n    readonly HEADERS_RECEIVED: number;\\n    readonly LOADING: number;\\n    readonly OPENED: number;\\n    readonly UNSENT: number;\\n};\\n\\ninterface XMLHttpRequestEventTargetEventMap {\\n    \"abort\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"error\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"load\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"loadend\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"loadstart\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"progress\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"timeout\": ProgressEvent<XMLHttpRequestEventTarget>;\\n}\\n\\ninterface XMLHttpRequestEventTarget extends EventTarget {\\n    onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequestEventTarget: {\\n    prototype: XMLHttpRequestEventTarget;\\n    new(): XMLHttpRequestEventTarget;\\n};\\n\\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequestUpload: {\\n    prototype: XMLHttpRequestUpload;\\n    new(): XMLHttpRequestUpload;\\n};\\n\\n/** Provides the serializeToString() method to construct an XML string representing a DOM tree. */\\ninterface XMLSerializer {\\n    serializeToString(root: Node): string;\\n}\\n\\ndeclare var XMLSerializer: {\\n    prototype: XMLSerializer;\\n    new(): XMLSerializer;\\n};\\n\\n/** The XPathEvaluator interface allows to compile and evaluate XPath expressions. */\\ninterface XPathEvaluator extends XPathEvaluatorBase {\\n}\\n\\ndeclare var XPathEvaluator: {\\n    prototype: XPathEvaluator;\\n    new(): XPathEvaluator;\\n};\\n\\ninterface XPathEvaluatorBase {\\n    createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;\\n    createNSResolver(nodeResolver: Node): XPathNSResolver;\\n    evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: XPathResult | null): XPathResult;\\n}\\n\\n/** This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information its DOM tree. */\\ninterface XPathExpression {\\n    evaluate(contextNode: Node, type?: number, result?: XPathResult | null): XPathResult;\\n}\\n\\ndeclare var XPathExpression: {\\n    prototype: XPathExpression;\\n    new(): XPathExpression;\\n};\\n\\n/** The results generated by evaluating an XPath expression within the context of a given node. */\\ninterface XPathResult {\\n    readonly booleanValue: boolean;\\n    readonly invalidIteratorState: boolean;\\n    readonly numberValue: number;\\n    readonly resultType: number;\\n    readonly singleNodeValue: Node | null;\\n    readonly snapshotLength: number;\\n    readonly stringValue: string;\\n    iterateNext(): Node | null;\\n    snapshotItem(index: number): Node | null;\\n    readonly ANY_TYPE: number;\\n    readonly ANY_UNORDERED_NODE_TYPE: number;\\n    readonly BOOLEAN_TYPE: number;\\n    readonly FIRST_ORDERED_NODE_TYPE: number;\\n    readonly NUMBER_TYPE: number;\\n    readonly ORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\\n    readonly STRING_TYPE: number;\\n    readonly UNORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\\n}\\n\\ndeclare var XPathResult: {\\n    prototype: XPathResult;\\n    new(): XPathResult;\\n    readonly ANY_TYPE: number;\\n    readonly ANY_UNORDERED_NODE_TYPE: number;\\n    readonly BOOLEAN_TYPE: number;\\n    readonly FIRST_ORDERED_NODE_TYPE: number;\\n    readonly NUMBER_TYPE: number;\\n    readonly ORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\\n    readonly STRING_TYPE: number;\\n    readonly UNORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\\n};\\n\\n/** An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param> parameter values, and to apply the transformation to documents. */\\ninterface XSLTProcessor {\\n    clearParameters(): void;\\n    getParameter(namespaceURI: string, localName: string): any;\\n    importStylesheet(style: Node): void;\\n    removeParameter(namespaceURI: string, localName: string): void;\\n    reset(): void;\\n    setParameter(namespaceURI: string, localName: string, value: any): void;\\n    transformToDocument(source: Node): Document;\\n    transformToFragment(source: Node, document: Document): DocumentFragment;\\n}\\n\\ndeclare var XSLTProcessor: {\\n    prototype: XSLTProcessor;\\n    new(): XSLTProcessor;\\n};\\n\\ninterface webkitRTCPeerConnection extends RTCPeerConnection {\\n    addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: webkitRTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: webkitRTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var webkitRTCPeerConnection: {\\n    prototype: webkitRTCPeerConnection;\\n    new(configuration: RTCConfiguration): webkitRTCPeerConnection;\\n};\\n\\ndeclare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;\\n\\ndeclare namespace WebAssembly {\\n    interface CompileError {\\n    }\\n    \\n    var CompileError: {\\n        prototype: CompileError;\\n        new(): CompileError;\\n    };\\n    \\n    interface Global {\\n        value: any;\\n        valueOf(): any;\\n    }\\n    \\n    var Global: {\\n        prototype: Global;\\n        new(descriptor: GlobalDescriptor, v?: any): Global;\\n    };\\n    \\n    interface Instance {\\n        readonly exports: Exports;\\n    }\\n    \\n    var Instance: {\\n        prototype: Instance;\\n        new(module: Module, importObject?: Imports): Instance;\\n    };\\n    \\n    interface LinkError {\\n    }\\n    \\n    var LinkError: {\\n        prototype: LinkError;\\n        new(): LinkError;\\n    };\\n    \\n    interface Memory {\\n        readonly buffer: ArrayBuffer;\\n        grow(delta: number): number;\\n    }\\n    \\n    var Memory: {\\n        prototype: Memory;\\n        new(descriptor: MemoryDescriptor): Memory;\\n    };\\n    \\n    interface Module {\\n    }\\n    \\n    var Module: {\\n        prototype: Module;\\n        new(bytes: BufferSource): Module;\\n        customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\\n        exports(moduleObject: Module): ModuleExportDescriptor[];\\n        imports(moduleObject: Module): ModuleImportDescriptor[];\\n    };\\n    \\n    interface RuntimeError {\\n    }\\n    \\n    var RuntimeError: {\\n        prototype: RuntimeError;\\n        new(): RuntimeError;\\n    };\\n    \\n    interface Table {\\n        readonly length: number;\\n        get(index: number): Function | null;\\n        grow(delta: number): number;\\n        set(index: number, value: Function | null): void;\\n    }\\n    \\n    var Table: {\\n        prototype: Table;\\n        new(descriptor: TableDescriptor): Table;\\n    };\\n    \\n    interface GlobalDescriptor {\\n        mutable?: boolean;\\n        value: ValueType;\\n    }\\n    \\n    interface MemoryDescriptor {\\n        initial: number;\\n        maximum?: number;\\n    }\\n    \\n    interface ModuleExportDescriptor {\\n        kind: ImportExportKind;\\n        name: string;\\n    }\\n    \\n    interface ModuleImportDescriptor {\\n        kind: ImportExportKind;\\n        module: string;\\n        name: string;\\n    }\\n    \\n    interface TableDescriptor {\\n        element: TableKind;\\n        initial: number;\\n        maximum?: number;\\n    }\\n    \\n    interface WebAssemblyInstantiatedSource {\\n        instance: Instance;\\n        module: Module;\\n    }\\n    \\n    type ImportExportKind = \"function\" | \"table\" | \"memory\" | \"global\";\\n    type TableKind = \"anyfunc\";\\n    type ValueType = \"i32\" | \"i64\" | \"f32\" | \"f64\";\\n    type ExportValue = Function | Global | Memory | Table;\\n    type Exports = Record<string, ExportValue>;\\n    type ImportValue = ExportValue | number;\\n    type ModuleImports = Record<string, ImportValue>;\\n    type Imports = Record<string, ModuleImports>;\\n    function compile(bytes: BufferSource): Promise<Module>;\\n    function compileStreaming(source: Response | Promise<Response>): Promise<Module>;\\n    function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\\n    function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;\\n    function instantiateStreaming(response: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\\n    function validate(bytes: BufferSource): boolean;\\n}\\n\\ninterface BlobCallback {\\n    (blob: Blob | null): void;\\n}\\n\\ninterface DecodeErrorCallback {\\n    (error: DOMException): void;\\n}\\n\\ninterface DecodeSuccessCallback {\\n    (decodedData: AudioBuffer): void;\\n}\\n\\ninterface EventHandlerNonNull {\\n    (event: Event): any;\\n}\\n\\ninterface ForEachCallback {\\n    (keyId: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, status: MediaKeyStatus): void;\\n}\\n\\ninterface FrameRequestCallback {\\n    (time: number): void;\\n}\\n\\ninterface FunctionStringCallback {\\n    (data: string): void;\\n}\\n\\ninterface IntersectionObserverCallback {\\n    (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;\\n}\\n\\ninterface MSLaunchUriCallback {\\n    (): void;\\n}\\n\\ninterface MutationCallback {\\n    (mutations: MutationRecord[], observer: MutationObserver): void;\\n}\\n\\ninterface NavigatorUserMediaErrorCallback {\\n    (error: MediaStreamError): void;\\n}\\n\\ninterface NavigatorUserMediaSuccessCallback {\\n    (stream: MediaStream): void;\\n}\\n\\ninterface NotificationPermissionCallback {\\n    (permission: NotificationPermission): void;\\n}\\n\\ninterface OnBeforeUnloadEventHandlerNonNull {\\n    (event: Event): string | null;\\n}\\n\\ninterface OnErrorEventHandlerNonNull {\\n    (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\\n}\\n\\ninterface PerformanceObserverCallback {\\n    (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\\n}\\n\\ninterface PositionCallback {\\n    (position: Position): void;\\n}\\n\\ninterface PositionErrorCallback {\\n    (positionError: PositionError): void;\\n}\\n\\ninterface QueuingStrategySizeCallback<T = any> {\\n    (chunk: T): number;\\n}\\n\\ninterface RTCPeerConnectionErrorCallback {\\n    (error: DOMException): void;\\n}\\n\\ninterface RTCSessionDescriptionCallback {\\n    (description: RTCSessionDescriptionInit): void;\\n}\\n\\ninterface RTCStatsCallback {\\n    (report: RTCStatsReport): void;\\n}\\n\\ninterface ReadableByteStreamControllerCallback {\\n    (controller: ReadableByteStreamController): void | PromiseLike<void>;\\n}\\n\\ninterface ReadableStreamDefaultControllerCallback<R> {\\n    (controller: ReadableStreamDefaultController<R>): void | PromiseLike<void>;\\n}\\n\\ninterface ReadableStreamErrorCallback {\\n    (reason: any): void | PromiseLike<void>;\\n}\\n\\ninterface TransformStreamDefaultControllerCallback<O> {\\n    (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\\n}\\n\\ninterface TransformStreamDefaultControllerTransformCallback<I, O> {\\n    (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\\n}\\n\\ninterface VoidFunction {\\n    (): void;\\n}\\n\\ninterface WritableStreamDefaultControllerCloseCallback {\\n    (): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamDefaultControllerStartCallback {\\n    (controller: WritableStreamDefaultController): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamDefaultControllerWriteCallback<W> {\\n    (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamErrorCallback {\\n    (reason: any): void | PromiseLike<void>;\\n}\\n\\ninterface HTMLElementTagNameMap {\\n    \"a\": HTMLAnchorElement;\\n    \"abbr\": HTMLElement;\\n    \"address\": HTMLElement;\\n    \"applet\": HTMLAppletElement;\\n    \"area\": HTMLAreaElement;\\n    \"article\": HTMLElement;\\n    \"aside\": HTMLElement;\\n    \"audio\": HTMLAudioElement;\\n    \"b\": HTMLElement;\\n    \"base\": HTMLBaseElement;\\n    \"basefont\": HTMLBaseFontElement;\\n    \"bdi\": HTMLElement;\\n    \"bdo\": HTMLElement;\\n    \"blockquote\": HTMLQuoteElement;\\n    \"body\": HTMLBodyElement;\\n    \"br\": HTMLBRElement;\\n    \"button\": HTMLButtonElement;\\n    \"canvas\": HTMLCanvasElement;\\n    \"caption\": HTMLTableCaptionElement;\\n    \"cite\": HTMLElement;\\n    \"code\": HTMLElement;\\n    \"col\": HTMLTableColElement;\\n    \"colgroup\": HTMLTableColElement;\\n    \"data\": HTMLDataElement;\\n    \"datalist\": HTMLDataListElement;\\n    \"dd\": HTMLElement;\\n    \"del\": HTMLModElement;\\n    \"details\": HTMLDetailsElement;\\n    \"dfn\": HTMLElement;\\n    \"dialog\": HTMLDialogElement;\\n    \"dir\": HTMLDirectoryElement;\\n    \"div\": HTMLDivElement;\\n    \"dl\": HTMLDListElement;\\n    \"dt\": HTMLElement;\\n    \"em\": HTMLElement;\\n    \"embed\": HTMLEmbedElement;\\n    \"fieldset\": HTMLFieldSetElement;\\n    \"figcaption\": HTMLElement;\\n    \"figure\": HTMLElement;\\n    \"font\": HTMLFontElement;\\n    \"footer\": HTMLElement;\\n    \"form\": HTMLFormElement;\\n    \"frame\": HTMLFrameElement;\\n    \"frameset\": HTMLFrameSetElement;\\n    \"h1\": HTMLHeadingElement;\\n    \"h2\": HTMLHeadingElement;\\n    \"h3\": HTMLHeadingElement;\\n    \"h4\": HTMLHeadingElement;\\n    \"h5\": HTMLHeadingElement;\\n    \"h6\": HTMLHeadingElement;\\n    \"head\": HTMLHeadElement;\\n    \"header\": HTMLElement;\\n    \"hgroup\": HTMLElement;\\n    \"hr\": HTMLHRElement;\\n    \"html\": HTMLHtmlElement;\\n    \"i\": HTMLElement;\\n    \"iframe\": HTMLIFrameElement;\\n    \"img\": HTMLImageElement;\\n    \"input\": HTMLInputElement;\\n    \"ins\": HTMLModElement;\\n    \"kbd\": HTMLElement;\\n    \"label\": HTMLLabelElement;\\n    \"legend\": HTMLLegendElement;\\n    \"li\": HTMLLIElement;\\n    \"link\": HTMLLinkElement;\\n    \"main\": HTMLElement;\\n    \"map\": HTMLMapElement;\\n    \"mark\": HTMLElement;\\n    \"marquee\": HTMLMarqueeElement;\\n    \"menu\": HTMLMenuElement;\\n    \"meta\": HTMLMetaElement;\\n    \"meter\": HTMLMeterElement;\\n    \"nav\": HTMLElement;\\n    \"noscript\": HTMLElement;\\n    \"object\": HTMLObjectElement;\\n    \"ol\": HTMLOListElement;\\n    \"optgroup\": HTMLOptGroupElement;\\n    \"option\": HTMLOptionElement;\\n    \"output\": HTMLOutputElement;\\n    \"p\": HTMLParagraphElement;\\n    \"param\": HTMLParamElement;\\n    \"picture\": HTMLPictureElement;\\n    \"pre\": HTMLPreElement;\\n    \"progress\": HTMLProgressElement;\\n    \"q\": HTMLQuoteElement;\\n    \"rp\": HTMLElement;\\n    \"rt\": HTMLElement;\\n    \"ruby\": HTMLElement;\\n    \"s\": HTMLElement;\\n    \"samp\": HTMLElement;\\n    \"script\": HTMLScriptElement;\\n    \"section\": HTMLElement;\\n    \"select\": HTMLSelectElement;\\n    \"slot\": HTMLSlotElement;\\n    \"small\": HTMLElement;\\n    \"source\": HTMLSourceElement;\\n    \"span\": HTMLSpanElement;\\n    \"strong\": HTMLElement;\\n    \"style\": HTMLStyleElement;\\n    \"sub\": HTMLElement;\\n    \"summary\": HTMLElement;\\n    \"sup\": HTMLElement;\\n    \"table\": HTMLTableElement;\\n    \"tbody\": HTMLTableSectionElement;\\n    \"td\": HTMLTableDataCellElement;\\n    \"template\": HTMLTemplateElement;\\n    \"textarea\": HTMLTextAreaElement;\\n    \"tfoot\": HTMLTableSectionElement;\\n    \"th\": HTMLTableHeaderCellElement;\\n    \"thead\": HTMLTableSectionElement;\\n    \"time\": HTMLTimeElement;\\n    \"title\": HTMLTitleElement;\\n    \"tr\": HTMLTableRowElement;\\n    \"track\": HTMLTrackElement;\\n    \"u\": HTMLElement;\\n    \"ul\": HTMLUListElement;\\n    \"var\": HTMLElement;\\n    \"video\": HTMLVideoElement;\\n    \"wbr\": HTMLElement;\\n}\\n\\ninterface HTMLElementDeprecatedTagNameMap {\\n    \"listing\": HTMLPreElement;\\n    \"xmp\": HTMLPreElement;\\n}\\n\\ninterface SVGElementTagNameMap {\\n    \"a\": SVGAElement;\\n    \"circle\": SVGCircleElement;\\n    \"clipPath\": SVGClipPathElement;\\n    \"defs\": SVGDefsElement;\\n    \"desc\": SVGDescElement;\\n    \"ellipse\": SVGEllipseElement;\\n    \"feBlend\": SVGFEBlendElement;\\n    \"feColorMatrix\": SVGFEColorMatrixElement;\\n    \"feComponentTransfer\": SVGFEComponentTransferElement;\\n    \"feComposite\": SVGFECompositeElement;\\n    \"feConvolveMatrix\": SVGFEConvolveMatrixElement;\\n    \"feDiffuseLighting\": SVGFEDiffuseLightingElement;\\n    \"feDisplacementMap\": SVGFEDisplacementMapElement;\\n    \"feDistantLight\": SVGFEDistantLightElement;\\n    \"feFlood\": SVGFEFloodElement;\\n    \"feFuncA\": SVGFEFuncAElement;\\n    \"feFuncB\": SVGFEFuncBElement;\\n    \"feFuncG\": SVGFEFuncGElement;\\n    \"feFuncR\": SVGFEFuncRElement;\\n    \"feGaussianBlur\": SVGFEGaussianBlurElement;\\n    \"feImage\": SVGFEImageElement;\\n    \"feMerge\": SVGFEMergeElement;\\n    \"feMergeNode\": SVGFEMergeNodeElement;\\n    \"feMorphology\": SVGFEMorphologyElement;\\n    \"feOffset\": SVGFEOffsetElement;\\n    \"fePointLight\": SVGFEPointLightElement;\\n    \"feSpecularLighting\": SVGFESpecularLightingElement;\\n    \"feSpotLight\": SVGFESpotLightElement;\\n    \"feTile\": SVGFETileElement;\\n    \"feTurbulence\": SVGFETurbulenceElement;\\n    \"filter\": SVGFilterElement;\\n    \"foreignObject\": SVGForeignObjectElement;\\n    \"g\": SVGGElement;\\n    \"image\": SVGImageElement;\\n    \"line\": SVGLineElement;\\n    \"linearGradient\": SVGLinearGradientElement;\\n    \"marker\": SVGMarkerElement;\\n    \"mask\": SVGMaskElement;\\n    \"metadata\": SVGMetadataElement;\\n    \"path\": SVGPathElement;\\n    \"pattern\": SVGPatternElement;\\n    \"polygon\": SVGPolygonElement;\\n    \"polyline\": SVGPolylineElement;\\n    \"radialGradient\": SVGRadialGradientElement;\\n    \"rect\": SVGRectElement;\\n    \"script\": SVGScriptElement;\\n    \"stop\": SVGStopElement;\\n    \"style\": SVGStyleElement;\\n    \"svg\": SVGSVGElement;\\n    \"switch\": SVGSwitchElement;\\n    \"symbol\": SVGSymbolElement;\\n    \"text\": SVGTextElement;\\n    \"textPath\": SVGTextPathElement;\\n    \"title\": SVGTitleElement;\\n    \"tspan\": SVGTSpanElement;\\n    \"use\": SVGUseElement;\\n    \"view\": SVGViewElement;\\n}\\n\\n/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */\\ntype ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;\\n\\ndeclare var Audio: {\\n    new(src?: string): HTMLAudioElement;\\n};\\ndeclare var Image: {\\n    new(width?: number, height?: number): HTMLImageElement;\\n};\\ndeclare var Option: {\\n    new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;\\n};\\ndeclare var applicationCache: ApplicationCache;\\ndeclare var caches: CacheStorage;\\ndeclare var clientInformation: Navigator;\\ndeclare var closed: boolean;\\ndeclare var crypto: Crypto;\\ndeclare var customElements: CustomElementRegistry;\\ndeclare var defaultStatus: string;\\ndeclare var devicePixelRatio: number;\\ndeclare var doNotTrack: string;\\ndeclare var document: Document;\\n/** @deprecated */\\ndeclare var event: Event | undefined;\\n/** @deprecated */\\ndeclare var external: External;\\ndeclare var frameElement: Element;\\ndeclare var frames: Window;\\ndeclare var history: History;\\ndeclare var innerHeight: number;\\ndeclare var innerWidth: number;\\ndeclare var isSecureContext: boolean;\\ndeclare var length: number;\\ndeclare var location: Location;\\ndeclare var locationbar: BarProp;\\ndeclare var menubar: BarProp;\\ndeclare var msContentScript: ExtensionScriptApis;\\ndeclare const name: never;\\ndeclare var navigator: Navigator;\\ndeclare var offscreenBuffering: string | boolean;\\ndeclare var oncompassneedscalibration: ((this: Window, ev: Event) => any) | null;\\ndeclare var ondevicelight: ((this: Window, ev: DeviceLightEvent) => any) | null;\\ndeclare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\\ndeclare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\ndeclare var ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\ndeclare var onmousewheel: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturechange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturedoubletap: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgestureend: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturehold: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturestart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturetap: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsinertiastart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointercancel: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerdown: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerenter: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerleave: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointermove: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerout: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerover: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerup: ((this: Window, ev: Event) => any) | null;\\n/** @deprecated */\\ndeclare var onorientationchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onreadystatechange: ((this: Window, ev: ProgressEvent<Window>) => any) | null;\\ndeclare var onvrdisplayactivate: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayblur: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayconnect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaydeactivate: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaydisconnect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayfocus: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypointerrestricted: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypointerunrestricted: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypresentchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var opener: any;\\n/** @deprecated */\\ndeclare var orientation: string | number;\\ndeclare var outerHeight: number;\\ndeclare var outerWidth: number;\\ndeclare var pageXOffset: number;\\ndeclare var pageYOffset: number;\\ndeclare var parent: Window;\\ndeclare var performance: Performance;\\ndeclare var personalbar: BarProp;\\ndeclare var screen: Screen;\\ndeclare var screenLeft: number;\\ndeclare var screenTop: number;\\ndeclare var screenX: number;\\ndeclare var screenY: number;\\ndeclare var scrollX: number;\\ndeclare var scrollY: number;\\ndeclare var scrollbars: BarProp;\\ndeclare var self: Window & typeof globalThis;\\ndeclare var speechSynthesis: SpeechSynthesis;\\ndeclare var status: string;\\ndeclare var statusbar: BarProp;\\ndeclare var styleMedia: StyleMedia;\\ndeclare var toolbar: BarProp;\\ndeclare var top: Window;\\ndeclare var window: Window & typeof globalThis;\\ndeclare function alert(message?: any): void;\\ndeclare function blur(): void;\\n/** @deprecated */\\ndeclare function captureEvents(): void;\\ndeclare function close(): void;\\ndeclare function confirm(message?: string): boolean;\\ndeclare function departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\\ndeclare function focus(): void;\\ndeclare function getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\ndeclare function getMatchedCSSRules(elt: Element, pseudoElt?: string | null): CSSRuleList;\\ndeclare function getSelection(): Selection | null;\\ndeclare function matchMedia(query: string): MediaQueryList;\\ndeclare function moveBy(x: number, y: number): void;\\ndeclare function moveTo(x: number, y: number): void;\\ndeclare function msWriteProfilerMark(profilerMarkName: string): void;\\ndeclare function open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;\\ndeclare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\\ndeclare function print(): void;\\ndeclare function prompt(message?: string, _default?: string): string | null;\\n/** @deprecated */\\ndeclare function releaseEvents(): void;\\ndeclare function resizeBy(x: number, y: number): void;\\ndeclare function resizeTo(x: number, y: number): void;\\ndeclare function scroll(options?: ScrollToOptions): void;\\ndeclare function scroll(x: number, y: number): void;\\ndeclare function scrollBy(options?: ScrollToOptions): void;\\ndeclare function scrollBy(x: number, y: number): void;\\ndeclare function scrollTo(options?: ScrollToOptions): void;\\ndeclare function scrollTo(x: number, y: number): void;\\ndeclare function stop(): void;\\ndeclare function webkitCancelAnimationFrame(handle: number): void;\\ndeclare function webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\\ndeclare function webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\\ndeclare function webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\\ndeclare function toString(): string;\\n/**\\n * Dispatches a synthetic event event to target and returns true if either event\\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\\n */\\ndeclare function dispatchEvent(event: Event): boolean;\\ndeclare var sessionStorage: Storage;\\ndeclare var localStorage: Storage;\\ndeclare var console: Console;\\n/**\\n * Fires when the user aborts the download.\\n * @param ev The event.\\n */\\ndeclare var onabort: ((this: Window, ev: UIEvent) => any) | null;\\ndeclare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onauxclick: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the object loses the input focus.\\n * @param ev The focus event.\\n */\\ndeclare var onblur: ((this: Window, ev: FocusEvent) => any) | null;\\ndeclare var oncancel: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when playback is possible, but would require further buffering.\\n * @param ev The event.\\n */\\ndeclare var oncanplay: ((this: Window, ev: Event) => any) | null;\\ndeclare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the contents of the object or selection have changed.\\n * @param ev The event.\\n */\\ndeclare var onchange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user clicks the left mouse button on the object\\n * @param ev The mouse event.\\n */\\ndeclare var onclick: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onclose: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\\n * @param ev The mouse event.\\n */\\ndeclare var oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var oncuechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user double-clicks the object.\\n * @param ev The mouse event.\\n */\\ndeclare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires on the source object continuously during a drag operation.\\n * @param ev The event.\\n */\\ndeclare var ondrag: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\\n * @param ev The event.\\n */\\ndeclare var ondragend: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the target element when the user drags the object to a valid drop target.\\n * @param ev The drag event.\\n */\\ndeclare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;\\ndeclare var ondragexit: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\\n * @param ev The drag event.\\n */\\ndeclare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the target element continuously while the user drags the object over a valid drop target.\\n * @param ev The event.\\n */\\ndeclare var ondragover: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the source object when the user starts to drag a text selection or selected object.\\n * @param ev The event.\\n */\\ndeclare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;\\ndeclare var ondrop: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Occurs when the duration attribute is updated.\\n * @param ev The event.\\n */\\ndeclare var ondurationchange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the media element is reset to its initial state.\\n * @param ev The event.\\n */\\ndeclare var onemptied: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the end of playback is reached.\\n * @param ev The event\\n */\\ndeclare var onended: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when an error occurs during object loading.\\n * @param ev The event.\\n */\\ndeclare var onerror: OnErrorEventHandler;\\n/**\\n * Fires when the object receives focus.\\n * @param ev The event.\\n */\\ndeclare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;\\ndeclare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var oninput: ((this: Window, ev: Event) => any) | null;\\ndeclare var oninvalid: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user presses a key.\\n * @param ev The keyboard event\\n */\\ndeclare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires when the user presses an alphanumeric key.\\n * @param ev The event.\\n */\\ndeclare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires when the user releases a key.\\n * @param ev The keyboard event\\n */\\ndeclare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires immediately after the browser loads the object.\\n * @param ev The event.\\n */\\ndeclare var onload: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when media data is loaded at the current playback position.\\n * @param ev The event.\\n */\\ndeclare var onloadeddata: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the duration and dimensions of the media have been determined.\\n * @param ev The event.\\n */\\ndeclare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;\\ndeclare var onloadend: ((this: Window, ev: ProgressEvent) => any) | null;\\n/**\\n * Occurs when Internet Explorer begins looking for media data.\\n * @param ev The event.\\n */\\ndeclare var onloadstart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\\n/**\\n * Fires when the user clicks the object with either mouse button.\\n * @param ev The mouse event.\\n */\\ndeclare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse over the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse pointer into the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user releases a mouse button while the mouse is over the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Occurs when playback is paused.\\n * @param ev The event.\\n */\\ndeclare var onpause: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the play method is requested.\\n * @param ev The event.\\n */\\ndeclare var onplay: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the audio or video has started playing.\\n * @param ev The event.\\n */\\ndeclare var onplaying: ((this: Window, ev: Event) => any) | null;\\ndeclare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointermove: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;\\n/**\\n * Occurs to indicate progress while downloading media data.\\n * @param ev The event.\\n */\\ndeclare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;\\n/**\\n * Occurs when the playback rate is increased or decreased.\\n * @param ev The event.\\n */\\ndeclare var onratechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user resets a form.\\n * @param ev The event.\\n */\\ndeclare var onreset: ((this: Window, ev: Event) => any) | null;\\ndeclare var onresize: ((this: Window, ev: UIEvent) => any) | null;\\n/**\\n * Fires when the user repositions the scroll box in the scroll bar on the object.\\n * @param ev The event.\\n */\\ndeclare var onscroll: ((this: Window, ev: Event) => any) | null;\\ndeclare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;\\n/**\\n * Occurs when the seek operation ends.\\n * @param ev The event.\\n */\\ndeclare var onseeked: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the current playback position is moved.\\n * @param ev The event.\\n */\\ndeclare var onseeking: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the current selection changes.\\n * @param ev The event.\\n */\\ndeclare var onselect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onselectionchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onselectstart: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the download has stopped.\\n * @param ev The event.\\n */\\ndeclare var onstalled: ((this: Window, ev: Event) => any) | null;\\ndeclare var onsubmit: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs if the load operation has been intentionally halted.\\n * @param ev The event.\\n */\\ndeclare var onsuspend: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs to indicate the current playback position.\\n * @param ev The event.\\n */\\ndeclare var ontimeupdate: ((this: Window, ev: Event) => any) | null;\\ndeclare var ontoggle: ((this: Window, ev: Event) => any) | null;\\ndeclare var ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchend: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchmove: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchstart: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;\\n/**\\n * Occurs when the volume is changed, or playback is muted or unmuted.\\n * @param ev The event.\\n */\\ndeclare var onvolumechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when playback stops because the next frame of a video resource is not available.\\n * @param ev The event.\\n */\\ndeclare var onwaiting: ((this: Window, ev: Event) => any) | null;\\ndeclare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;\\ndeclare var indexedDB: IDBFactory;\\ndeclare function atob(encodedString: string): string;\\ndeclare function btoa(rawString: string): string;\\ndeclare function cancelAnimationFrame(handle: number): void;\\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\\ndeclare var caches: CacheStorage;\\ndeclare var crypto: Crypto;\\ndeclare var indexedDB: IDBFactory;\\ndeclare var origin: string;\\ndeclare var performance: Performance;\\ndeclare function atob(data: string): string;\\ndeclare function btoa(data: string): string;\\ndeclare function clearInterval(handle?: number): void;\\ndeclare function clearTimeout(handle?: number): void;\\ndeclare function createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;\\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;\\ndeclare function fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;\\ndeclare function queueMicrotask(callback: Function): void;\\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\ndeclare var sessionStorage: Storage;\\ndeclare var localStorage: Storage;\\ndeclare var onafterprint: ((this: Window, ev: Event) => any) | null;\\ndeclare var onbeforeprint: ((this: Window, ev: Event) => any) | null;\\ndeclare var onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;\\ndeclare var onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;\\ndeclare var onlanguagechange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmessage: ((this: Window, ev: MessageEvent) => any) | null;\\ndeclare var onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;\\ndeclare var onoffline: ((this: Window, ev: Event) => any) | null;\\ndeclare var ononline: ((this: Window, ev: Event) => any) | null;\\ndeclare var onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;\\ndeclare var onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;\\ndeclare var onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;\\ndeclare var onrejectionhandled: ((this: Window, ev: Event) => any) | null;\\ndeclare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;\\ndeclare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;\\ndeclare var onunload: ((this: Window, ev: Event) => any) | null;\\ndeclare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\ndeclare function removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\ntype HeadersInit = Headers | string[][] | Record<string, string>;\\ntype BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream<Uint8Array> | string;\\ntype RequestInfo = Request | string;\\ntype BlobPart = BufferSource | Blob | string;\\ntype DOMHighResTimeStamp = number;\\ntype RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\\ntype HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;\\ntype CanvasImageSource = HTMLOrSVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas;\\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\\ntype MessageEventSource = WindowProxy | MessagePort | ServiceWorker;\\ntype HTMLOrSVGScriptElement = HTMLScriptElement | SVGScriptElement;\\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\\ntype OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;\\ntype TimerHandler = string | Function;\\ntype ConstrainULong = number | ConstrainULongRange;\\ntype ConstrainDouble = number | ConstrainDoubleRange;\\ntype ConstrainBoolean = boolean | ConstrainBooleanParameters;\\ntype ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;\\ntype PerformanceEntryList = PerformanceEntry[];\\ntype VibratePattern = number | number[];\\ntype COSEAlgorithmIdentifier = number;\\ntype AuthenticatorSelectionList = AAGUID[];\\ntype AAGUID = BufferSource;\\ntype AuthenticationExtensionsSupported = string[];\\ntype UvmEntry = number[];\\ntype UvmEntries = UvmEntry[];\\ntype AlgorithmIdentifier = string | Algorithm;\\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\\ntype BigInteger = Uint8Array;\\ntype NamedCurve = string;\\ntype GLenum = number;\\ntype GLboolean = boolean;\\ntype GLbitfield = number;\\ntype GLint = number;\\ntype GLsizei = number;\\ntype GLintptr = number;\\ntype GLsizeiptr = number;\\ntype GLuint = number;\\ntype GLfloat = number;\\ntype GLclampf = number;\\ntype TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas;\\ntype Float32List = Float32Array | GLfloat[];\\ntype Int32List = Int32Array | GLint[];\\ntype GLint64 = number;\\ntype GLuint64 = number;\\ntype Uint32List = Uint32Array | GLuint[];\\ntype BufferSource = ArrayBufferView | ArrayBuffer;\\ntype DOMTimeStamp = number;\\ntype LineAndPositionSetting = number | AutoKeyword;\\ntype FormDataEntryValue = File | string;\\ntype InsertPosition = \"beforebegin\" | \"afterbegin\" | \"beforeend\" | \"afterend\";\\ntype IDBValidKey = number | string | Date | BufferSource | IDBArrayKey;\\ntype MutationRecordType = \"attributes\" | \"characterData\" | \"childList\";\\ntype IDBKeyPath = string;\\ntype Transferable = ArrayBuffer | MessagePort | ImageBitmap;\\ntype RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;\\ntype RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;\\n/** @deprecated */\\ntype MouseWheelEvent = WheelEvent;\\ntype WindowProxy = Window;\\ntype AlignSetting = \"start\" | \"center\" | \"end\" | \"left\" | \"right\";\\ntype AnimationPlayState = \"idle\" | \"running\" | \"paused\" | \"finished\";\\ntype AppendMode = \"segments\" | \"sequence\";\\ntype AttestationConveyancePreference = \"none\" | \"indirect\" | \"direct\";\\ntype AudioContextLatencyCategory = \"balanced\" | \"interactive\" | \"playback\";\\ntype AudioContextState = \"suspended\" | \"running\" | \"closed\";\\ntype AuthenticatorAttachment = \"platform\" | \"cross-platform\";\\ntype AuthenticatorTransport = \"usb\" | \"nfc\" | \"ble\" | \"internal\";\\ntype AutoKeyword = \"auto\";\\ntype AutomationRate = \"a-rate\" | \"k-rate\";\\ntype BinaryType = \"blob\" | \"arraybuffer\";\\ntype BiquadFilterType = \"lowpass\" | \"highpass\" | \"bandpass\" | \"lowshelf\" | \"highshelf\" | \"peaking\" | \"notch\" | \"allpass\";\\ntype CanPlayTypeResult = \"\" | \"maybe\" | \"probably\";\\ntype CanvasDirection = \"ltr\" | \"rtl\" | \"inherit\";\\ntype CanvasFillRule = \"nonzero\" | \"evenodd\";\\ntype CanvasLineCap = \"butt\" | \"round\" | \"square\";\\ntype CanvasLineJoin = \"round\" | \"bevel\" | \"miter\";\\ntype CanvasTextAlign = \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\\ntype CanvasTextBaseline = \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\\ntype ChannelCountMode = \"max\" | \"clamped-max\" | \"explicit\";\\ntype ChannelInterpretation = \"speakers\" | \"discrete\";\\ntype ClientTypes = \"window\" | \"worker\" | \"sharedworker\" | \"all\";\\ntype CompositeOperation = \"replace\" | \"add\" | \"accumulate\";\\ntype CompositeOperationOrAuto = \"replace\" | \"add\" | \"accumulate\" | \"auto\";\\ntype CredentialMediationRequirement = \"silent\" | \"optional\" | \"required\";\\ntype DirectionSetting = \"\" | \"rl\" | \"lr\";\\ntype DisplayCaptureSurfaceType = \"monitor\" | \"window\" | \"application\" | \"browser\";\\ntype DistanceModelType = \"linear\" | \"inverse\" | \"exponential\";\\ntype DocumentReadyState = \"loading\" | \"interactive\" | \"complete\";\\ntype EndOfStreamError = \"network\" | \"decode\";\\ntype EndingType = \"transparent\" | \"native\";\\ntype FillMode = \"none\" | \"forwards\" | \"backwards\" | \"both\" | \"auto\";\\ntype FullscreenNavigationUI = \"auto\" | \"show\" | \"hide\";\\ntype GamepadHand = \"\" | \"left\" | \"right\";\\ntype GamepadHapticActuatorType = \"vibration\";\\ntype GamepadMappingType = \"\" | \"standard\";\\ntype IDBCursorDirection = \"next\" | \"nextunique\" | \"prev\" | \"prevunique\";\\ntype IDBRequestReadyState = \"pending\" | \"done\";\\ntype IDBTransactionMode = \"readonly\" | \"readwrite\" | \"versionchange\";\\ntype ImageSmoothingQuality = \"low\" | \"medium\" | \"high\";\\ntype IterationCompositeOperation = \"replace\" | \"accumulate\";\\ntype KeyFormat = \"raw\" | \"spki\" | \"pkcs8\" | \"jwk\";\\ntype KeyType = \"public\" | \"private\" | \"secret\";\\ntype KeyUsage = \"encrypt\" | \"decrypt\" | \"sign\" | \"verify\" | \"deriveKey\" | \"deriveBits\" | \"wrapKey\" | \"unwrapKey\";\\ntype LineAlignSetting = \"start\" | \"center\" | \"end\";\\ntype ListeningState = \"inactive\" | \"active\" | \"disambiguation\";\\ntype MSCredentialType = \"FIDO_2_0\";\\ntype MSTransportType = \"Embedded\" | \"USB\" | \"NFC\" | \"BT\";\\ntype MSWebViewPermissionState = \"unknown\" | \"defer\" | \"allow\" | \"deny\";\\ntype MSWebViewPermissionType = \"geolocation\" | \"unlimitedIndexedDBQuota\" | \"media\" | \"pointerlock\" | \"webnotifications\";\\ntype MediaDeviceKind = \"audioinput\" | \"audiooutput\" | \"videoinput\";\\ntype MediaKeyMessageType = \"license-request\" | \"license-renewal\" | \"license-release\" | \"individualization-request\";\\ntype MediaKeySessionType = \"temporary\" | \"persistent-license\";\\ntype MediaKeyStatus = \"usable\" | \"expired\" | \"released\" | \"output-restricted\" | \"output-downscaled\" | \"status-pending\" | \"internal-error\";\\ntype MediaKeysRequirement = \"required\" | \"optional\" | \"not-allowed\";\\ntype MediaStreamTrackState = \"live\" | \"ended\";\\ntype NavigationReason = \"up\" | \"down\" | \"left\" | \"right\";\\ntype NavigationType = \"navigate\" | \"reload\" | \"back_forward\" | \"prerender\";\\ntype NotificationDirection = \"auto\" | \"ltr\" | \"rtl\";\\ntype NotificationPermission = \"default\" | \"denied\" | \"granted\";\\ntype OffscreenRenderingContextId = \"2d\" | \"bitmaprenderer\" | \"webgl\" | \"webgl2\";\\ntype OrientationLockType = \"any\" | \"natural\" | \"landscape\" | \"portrait\" | \"portrait-primary\" | \"portrait-secondary\" | \"landscape-primary\" | \"landscape-secondary\";\\ntype OrientationType = \"portrait-primary\" | \"portrait-secondary\" | \"landscape-primary\" | \"landscape-secondary\";\\ntype OscillatorType = \"sine\" | \"square\" | \"sawtooth\" | \"triangle\" | \"custom\";\\ntype OverSampleType = \"none\" | \"2x\" | \"4x\";\\ntype PanningModelType = \"equalpower\" | \"HRTF\";\\ntype PaymentComplete = \"success\" | \"fail\" | \"unknown\";\\ntype PaymentShippingType = \"shipping\" | \"delivery\" | \"pickup\";\\ntype PermissionName = \"geolocation\" | \"notifications\" | \"push\" | \"midi\" | \"camera\" | \"microphone\" | \"speaker\" | \"device-info\" | \"background-sync\" | \"bluetooth\" | \"persistent-storage\" | \"ambient-light-sensor\" | \"accelerometer\" | \"gyroscope\" | \"magnetometer\" | \"clipboard\";\\ntype PermissionState = \"granted\" | \"denied\" | \"prompt\";\\ntype PlaybackDirection = \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\\ntype PositionAlignSetting = \"line-left\" | \"center\" | \"line-right\" | \"auto\";\\ntype PublicKeyCredentialType = \"public-key\";\\ntype PushEncryptionKeyName = \"p256dh\" | \"auth\";\\ntype PushPermissionState = \"denied\" | \"granted\" | \"prompt\";\\ntype RTCBundlePolicy = \"balanced\" | \"max-compat\" | \"max-bundle\";\\ntype RTCDataChannelState = \"connecting\" | \"open\" | \"closing\" | \"closed\";\\ntype RTCDegradationPreference = \"maintain-framerate\" | \"maintain-resolution\" | \"balanced\";\\ntype RTCDtlsRole = \"auto\" | \"client\" | \"server\";\\ntype RTCDtlsTransportState = \"new\" | \"connecting\" | \"connected\" | \"closed\" | \"failed\";\\ntype RTCDtxStatus = \"disabled\" | \"enabled\";\\ntype RTCErrorDetailType = \"data-channel-failure\" | \"dtls-failure\" | \"fingerprint-failure\" | \"idp-bad-script-failure\" | \"idp-execution-failure\" | \"idp-load-failure\" | \"idp-need-login\" | \"idp-timeout\" | \"idp-tls-failure\" | \"idp-token-expired\" | \"idp-token-invalid\" | \"sctp-failure\" | \"sdp-syntax-error\" | \"hardware-encoder-not-available\" | \"hardware-encoder-error\";\\ntype RTCIceCandidateType = \"host\" | \"srflx\" | \"prflx\" | \"relay\";\\ntype RTCIceComponent = \"rtp\" | \"rtcp\";\\ntype RTCIceConnectionState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCIceCredentialType = \"password\" | \"oauth\";\\ntype RTCIceGatherPolicy = \"all\" | \"nohost\" | \"relay\";\\ntype RTCIceGathererState = \"new\" | \"gathering\" | \"complete\";\\ntype RTCIceGatheringState = \"new\" | \"gathering\" | \"complete\";\\ntype RTCIceProtocol = \"udp\" | \"tcp\";\\ntype RTCIceRole = \"controlling\" | \"controlled\";\\ntype RTCIceTcpCandidateType = \"active\" | \"passive\" | \"so\";\\ntype RTCIceTransportPolicy = \"relay\" | \"all\";\\ntype RTCIceTransportState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCPeerConnectionState = \"new\" | \"connecting\" | \"connected\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCPriorityType = \"very-low\" | \"low\" | \"medium\" | \"high\";\\ntype RTCRtcpMuxPolicy = \"negotiate\" | \"require\";\\ntype RTCRtpTransceiverDirection = \"sendrecv\" | \"sendonly\" | \"recvonly\" | \"inactive\";\\ntype RTCSctpTransportState = \"connecting\" | \"connected\" | \"closed\";\\ntype RTCSdpType = \"offer\" | \"pranswer\" | \"answer\" | \"rollback\";\\ntype RTCSignalingState = \"stable\" | \"have-local-offer\" | \"have-remote-offer\" | \"have-local-pranswer\" | \"have-remote-pranswer\" | \"closed\";\\ntype RTCStatsIceCandidatePairState = \"frozen\" | \"waiting\" | \"inprogress\" | \"failed\" | \"succeeded\" | \"cancelled\";\\ntype RTCStatsIceCandidateType = \"host\" | \"serverreflexive\" | \"peerreflexive\" | \"relayed\";\\ntype RTCStatsType = \"inboundrtp\" | \"outboundrtp\" | \"session\" | \"datachannel\" | \"track\" | \"transport\" | \"candidatepair\" | \"localcandidate\" | \"remotecandidate\";\\ntype ReadyState = \"closed\" | \"open\" | \"ended\";\\ntype ReferrerPolicy = \"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"same-origin\" | \"origin\" | \"strict-origin\" | \"origin-when-cross-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\\ntype RequestCache = \"default\" | \"no-store\" | \"reload\" | \"no-cache\" | \"force-cache\" | \"only-if-cached\";\\ntype RequestCredentials = \"omit\" | \"same-origin\" | \"include\";\\ntype RequestDestination = \"\" | \"audio\" | \"audioworklet\" | \"document\" | \"embed\" | \"font\" | \"image\" | \"manifest\" | \"object\" | \"paintworklet\" | \"report\" | \"script\" | \"sharedworker\" | \"style\" | \"track\" | \"video\" | \"worker\" | \"xslt\";\\ntype RequestMode = \"navigate\" | \"same-origin\" | \"no-cors\" | \"cors\";\\ntype RequestRedirect = \"follow\" | \"error\" | \"manual\";\\ntype ResponseType = \"basic\" | \"cors\" | \"default\" | \"error\" | \"opaque\" | \"opaqueredirect\";\\ntype ScopedCredentialType = \"ScopedCred\";\\ntype ScrollBehavior = \"auto\" | \"smooth\";\\ntype ScrollLogicalPosition = \"start\" | \"center\" | \"end\" | \"nearest\";\\ntype ScrollRestoration = \"auto\" | \"manual\";\\ntype ScrollSetting = \"\" | \"up\";\\ntype SelectionMode = \"select\" | \"start\" | \"end\" | \"preserve\";\\ntype ServiceWorkerState = \"installing\" | \"installed\" | \"activating\" | \"activated\" | \"redundant\";\\ntype ServiceWorkerUpdateViaCache = \"imports\" | \"all\" | \"none\";\\ntype ShadowRootMode = \"open\" | \"closed\";\\ntype SpeechRecognitionErrorCode = \"no-speech\" | \"aborted\" | \"audio-capture\" | \"network\" | \"not-allowed\" | \"service-not-allowed\" | \"bad-grammar\" | \"language-not-supported\";\\ntype SpeechSynthesisErrorCode = \"canceled\" | \"interrupted\" | \"audio-busy\" | \"audio-hardware\" | \"network\" | \"synthesis-unavailable\" | \"synthesis-failed\" | \"language-unavailable\" | \"voice-unavailable\" | \"text-too-long\" | \"invalid-argument\";\\ntype SupportedType = \"text/html\" | \"text/xml\" | \"application/xml\" | \"application/xhtml+xml\" | \"image/svg+xml\";\\ntype TextTrackKind = \"subtitles\" | \"captions\" | \"descriptions\" | \"chapters\" | \"metadata\";\\ntype TextTrackMode = \"disabled\" | \"hidden\" | \"showing\";\\ntype TouchType = \"direct\" | \"stylus\";\\ntype Transport = \"usb\" | \"nfc\" | \"ble\";\\ntype UserVerificationRequirement = \"required\" | \"preferred\" | \"discouraged\";\\ntype VRDisplayEventReason = \"mounted\" | \"navigation\" | \"requested\" | \"unmounted\";\\ntype VideoFacingModeEnum = \"user\" | \"environment\" | \"left\" | \"right\";\\ntype VisibilityState = \"hidden\" | \"visible\";\\ntype WebGLPowerPreference = \"default\" | \"low-power\" | \"high-performance\";\\ntype WorkerType = \"classic\" | \"module\";\\ntype XMLHttpRequestResponseType = \"\" | \"arraybuffer\" | \"blob\" | \"document\" | \"json\" | \"text\";\\n',n.lib_es5_dts=\"/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\\\"true\\\"/>\\n\\n\\n/////////////////////////////\\n/// ECMAScript APIs\\n/////////////////////////////\\n\\ndeclare var NaN: number;\\ndeclare var Infinity: number;\\n\\n/**\\n * Evaluates JavaScript code and executes it.\\n * @param x A String value that contains valid JavaScript code.\\n */\\ndeclare function eval(x: string): any;\\n\\n/**\\n * Converts a string to an integer.\\n * @param s A string to convert into a number.\\n * @param radix A value between 2 and 36 that specifies the base of the number in numString.\\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\\n * All other strings are considered decimal.\\n */\\ndeclare function parseInt(s: string, radix?: number): number;\\n\\n/**\\n * Converts a string to a floating-point number.\\n * @param string A string that contains a floating-point number.\\n */\\ndeclare function parseFloat(string: string): number;\\n\\n/**\\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\\n * @param number A numeric value.\\n */\\ndeclare function isNaN(number: number): boolean;\\n\\n/**\\n * Determines whether a supplied number is finite.\\n * @param number Any numeric value.\\n */\\ndeclare function isFinite(number: number): boolean;\\n\\n/**\\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\\n * @param encodedURI A value representing an encoded URI.\\n */\\ndeclare function decodeURI(encodedURI: string): string;\\n\\n/**\\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\\n * @param encodedURIComponent A value representing an encoded URI component.\\n */\\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\\n\\n/**\\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\\n * @param uri A value representing an encoded URI.\\n */\\ndeclare function encodeURI(uri: string): string;\\n\\n/**\\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\\n * @param uriComponent A value representing an encoded URI component.\\n */\\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\\n\\n/**\\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\\n * @param string A string value\\n */\\ndeclare function escape(string: string): string;\\n\\n/**\\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\\n * @param string A string value\\n */\\ndeclare function unescape(string: string): string;\\n\\ninterface Symbol {\\n    /** Returns a string representation of an object. */\\n    toString(): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): symbol;\\n}\\n\\ndeclare type PropertyKey = string | number | symbol;\\n\\ninterface PropertyDescriptor {\\n    configurable?: boolean;\\n    enumerable?: boolean;\\n    value?: any;\\n    writable?: boolean;\\n    get?(): any;\\n    set?(v: any): void;\\n}\\n\\ninterface PropertyDescriptorMap {\\n    [s: string]: PropertyDescriptor;\\n}\\n\\ninterface Object {\\n    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\\n    constructor: Function;\\n\\n    /** Returns a string representation of an object. */\\n    toString(): string;\\n\\n    /** Returns a date converted to a string using the current locale. */\\n    toLocaleString(): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): Object;\\n\\n    /**\\n     * Determines whether an object has a property with the specified name.\\n     * @param v A property name.\\n     */\\n    hasOwnProperty(v: PropertyKey): boolean;\\n\\n    /**\\n     * Determines whether an object exists in another object's prototype chain.\\n     * @param v Another object whose prototype chain is to be checked.\\n     */\\n    isPrototypeOf(v: Object): boolean;\\n\\n    /**\\n     * Determines whether a specified property is enumerable.\\n     * @param v A property name.\\n     */\\n    propertyIsEnumerable(v: PropertyKey): boolean;\\n}\\n\\ninterface ObjectConstructor {\\n    new(value?: any): Object;\\n    (): any;\\n    (value: any): any;\\n\\n    /** A reference to the prototype for a class of objects. */\\n    readonly prototype: Object;\\n\\n    /**\\n     * Returns the prototype of an object.\\n     * @param o The object that references the prototype.\\n     */\\n    getPrototypeOf(o: any): any;\\n\\n    /**\\n     * Gets the own property descriptor of the specified object.\\n     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\\n     * @param o Object that contains the property.\\n     * @param p Name of the property.\\n     */\\n    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\\n\\n    /**\\n     * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\\n     * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\\n     * @param o Object that contains the own properties.\\n     */\\n    getOwnPropertyNames(o: any): string[];\\n\\n    /**\\n     * Creates an object that has the specified prototype or that has null prototype.\\n     * @param o Object to use as a prototype. May be null.\\n     */\\n    create(o: object | null): any;\\n\\n    /**\\n     * Creates an object that has the specified prototype, and that optionally contains specified properties.\\n     * @param o Object to use as a prototype. May be null\\n     * @param properties JavaScript object that contains one or more property descriptors.\\n     */\\n    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;\\n\\n    /**\\n     * Adds a property to an object, or modifies attributes of an existing property.\\n     * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\\n     * @param p The property name.\\n     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\\n     */\\n    defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): any;\\n\\n    /**\\n     * Adds one or more properties to an object, and/or modifies attributes of existing properties.\\n     * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\\n     * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\\n     */\\n    defineProperties(o: any, properties: PropertyDescriptorMap & ThisType<any>): any;\\n\\n    /**\\n     * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    seal<T>(o: T): T;\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T>(a: T[]): readonly T[];\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T extends Function>(f: T): T;\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T>(o: T): Readonly<T>;\\n\\n    /**\\n     * Prevents the addition of new properties to an object.\\n     * @param o Object to make non-extensible.\\n     */\\n    preventExtensions<T>(o: T): T;\\n\\n    /**\\n     * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\\n     * @param o Object to test.\\n     */\\n    isSealed(o: any): boolean;\\n\\n    /**\\n     * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\\n     * @param o Object to test.\\n     */\\n    isFrozen(o: any): boolean;\\n\\n    /**\\n     * Returns a value that indicates whether new properties can be added to an object.\\n     * @param o Object to test.\\n     */\\n    isExtensible(o: any): boolean;\\n\\n    /**\\n     * Returns the names of the enumerable string properties and methods of an object.\\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\\n     */\\n    keys(o: object): string[];\\n}\\n\\n/**\\n * Provides functionality common to all JavaScript objects.\\n */\\ndeclare var Object: ObjectConstructor;\\n\\n/**\\n * Creates a new function.\\n */\\ninterface Function {\\n    /**\\n     * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\\n     * @param thisArg The object to be used as the this object.\\n     * @param argArray A set of arguments to be passed to the function.\\n     */\\n    apply(this: Function, thisArg: any, argArray?: any): any;\\n\\n    /**\\n     * Calls a method of an object, substituting another object for the current object.\\n     * @param thisArg The object to be used as the current object.\\n     * @param argArray A list of arguments to be passed to the method.\\n     */\\n    call(this: Function, thisArg: any, ...argArray: any[]): any;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg An object to which the this keyword can refer inside the new function.\\n     * @param argArray A list of arguments to be passed to the new function.\\n     */\\n    bind(this: Function, thisArg: any, ...argArray: any[]): any;\\n\\n    /** Returns a string representation of a function. */\\n    toString(): string;\\n\\n    prototype: any;\\n    readonly length: number;\\n\\n    // Non-standard extensions\\n    arguments: any;\\n    caller: Function;\\n}\\n\\ninterface FunctionConstructor {\\n    /**\\n     * Creates a new function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new(...args: string[]): Function;\\n    (...args: string[]): Function;\\n    readonly prototype: Function;\\n}\\n\\ndeclare var Function: FunctionConstructor;\\n\\n/**\\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\\n */\\ntype ThisParameterType<T> = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;\\n\\n/**\\n * Removes the 'this' parameter from a function type.\\n */\\ntype OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\\n\\ninterface CallableFunction extends Function {\\n    /**\\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args An array of argument values to be passed to the function.\\n     */\\n    apply<T, R>(this: (this: T) => R, thisArg: T): R;\\n    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\\n\\n    /**\\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Argument values to be passed to the function.\\n     */\\n    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Arguments to bind to the parameters of the function.\\n     */\\n    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;\\n    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;\\n    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;\\n    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;\\n    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;\\n    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;\\n}\\n\\ninterface NewableFunction extends Function {\\n    /**\\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args An array of argument values to be passed to the function.\\n     */\\n    apply<T>(this: new () => T, thisArg: T): void;\\n    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;\\n\\n    /**\\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Argument values to be passed to the function.\\n     */\\n    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Arguments to bind to the parameters of the function.\\n     */\\n    bind<T>(this: T, thisArg: any): T;\\n    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;\\n    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;\\n    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;\\n    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;\\n    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;\\n}\\n\\ninterface IArguments {\\n    [index: number]: any;\\n    length: number;\\n    callee: Function;\\n}\\n\\ninterface String {\\n    /** Returns a string representation of a string. */\\n    toString(): string;\\n\\n    /**\\n     * Returns the character at the specified index.\\n     * @param pos The zero-based index of the desired character.\\n     */\\n    charAt(pos: number): string;\\n\\n    /**\\n     * Returns the Unicode value of the character at the specified location.\\n     * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\\n     */\\n    charCodeAt(index: number): number;\\n\\n    /**\\n     * Returns a string that contains the concatenation of two or more strings.\\n     * @param strings The strings to append to the end of the string.\\n     */\\n    concat(...strings: string[]): string;\\n\\n    /**\\n     * Returns the position of the first occurrence of a substring.\\n     * @param searchString The substring to search for in the string\\n     * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\\n     */\\n    indexOf(searchString: string, position?: number): number;\\n\\n    /**\\n     * Returns the last occurrence of a substring in the string.\\n     * @param searchString The substring to search for.\\n     * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\\n     */\\n    lastIndexOf(searchString: string, position?: number): number;\\n\\n    /**\\n     * Determines whether two strings are equivalent in the current locale.\\n     * @param that String to compare to target string\\n     */\\n    localeCompare(that: string): number;\\n\\n    /**\\n     * Matches a string with a regular expression, and returns an array containing the results of that search.\\n     * @param regexp A variable name or string literal containing the regular expression pattern and flags.\\n     */\\n    match(regexp: string | RegExp): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using a regular expression or search string.\\n     * @param searchValue A string to search for.\\n     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\\n     */\\n    replace(searchValue: string | RegExp, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using a regular expression or search string.\\n     * @param searchValue A string to search for.\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the first substring match in a regular expression search.\\n     * @param regexp The regular expression pattern and applicable flags.\\n     */\\n    search(regexp: string | RegExp): number;\\n\\n    /**\\n     * Returns a section of a string.\\n     * @param start The index to the beginning of the specified portion of stringObj.\\n     * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\\n     * If this value is not specified, the substring continues to the end of stringObj.\\n     */\\n    slice(start?: number, end?: number): string;\\n\\n    /**\\n     * Split a string into substrings using the specified separator and return them as an array.\\n     * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\\n     * @param limit A value used to limit the number of elements returned in the array.\\n     */\\n    split(separator: string | RegExp, limit?: number): string[];\\n\\n    /**\\n     * Returns the substring at the specified location within a String object.\\n     * @param start The zero-based index number indicating the beginning of the substring.\\n     * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\\n     * If end is omitted, the characters from start through the end of the original string are returned.\\n     */\\n    substring(start: number, end?: number): string;\\n\\n    /** Converts all the alphabetic characters in a string to lowercase. */\\n    toLowerCase(): string;\\n\\n    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\\n    toLocaleLowerCase(locales?: string | string[]): string;\\n\\n    /** Converts all the alphabetic characters in a string to uppercase. */\\n    toUpperCase(): string;\\n\\n    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\\n    toLocaleUpperCase(locales?: string | string[]): string;\\n\\n    /** Removes the leading and trailing white space and line terminator characters from a string. */\\n    trim(): string;\\n\\n    /** Returns the length of a String object. */\\n    readonly length: number;\\n\\n    // IE extensions\\n    /**\\n     * Gets a substring beginning at the specified location and having the specified length.\\n     * @param from The starting position of the desired substring. The index of the first character in the string is zero.\\n     * @param length The number of characters to include in the returned substring.\\n     */\\n    substr(from: number, length?: number): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): string;\\n\\n    readonly [index: number]: string;\\n}\\n\\ninterface StringConstructor {\\n    new(value?: any): String;\\n    (value?: any): string;\\n    readonly prototype: String;\\n    fromCharCode(...codes: number[]): string;\\n}\\n\\n/**\\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\\n */\\ndeclare var String: StringConstructor;\\n\\ninterface Boolean {\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): boolean;\\n}\\n\\ninterface BooleanConstructor {\\n    new(value?: any): Boolean;\\n    <T>(value?: T): boolean;\\n    readonly prototype: Boolean;\\n}\\n\\ndeclare var Boolean: BooleanConstructor;\\n\\ninterface Number {\\n    /**\\n     * Returns a string representation of an object.\\n     * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\\n     */\\n    toString(radix?: number): string;\\n\\n    /**\\n     * Returns a string representing a number in fixed-point notation.\\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\\n     */\\n    toFixed(fractionDigits?: number): string;\\n\\n    /**\\n     * Returns a string containing a number represented in exponential notation.\\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\\n     */\\n    toExponential(fractionDigits?: number): string;\\n\\n    /**\\n     * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\\n     * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\\n     */\\n    toPrecision(precision?: number): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): number;\\n}\\n\\ninterface NumberConstructor {\\n    new(value?: any): Number;\\n    (value?: any): number;\\n    readonly prototype: Number;\\n\\n    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\\n    readonly MAX_VALUE: number;\\n\\n    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\\n    readonly MIN_VALUE: number;\\n\\n    /**\\n     * A value that is not a number.\\n     * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\\n     */\\n    readonly NaN: number;\\n\\n    /**\\n     * A value that is less than the largest negative number that can be represented in JavaScript.\\n     * JavaScript displays NEGATIVE_INFINITY values as -infinity.\\n     */\\n    readonly NEGATIVE_INFINITY: number;\\n\\n    /**\\n     * A value greater than the largest number that can be represented in JavaScript.\\n     * JavaScript displays POSITIVE_INFINITY values as infinity.\\n     */\\n    readonly POSITIVE_INFINITY: number;\\n}\\n\\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\\ndeclare var Number: NumberConstructor;\\n\\ninterface TemplateStringsArray extends ReadonlyArray<string> {\\n    readonly raw: readonly string[];\\n}\\n\\n/**\\n * The type of `import.meta`.\\n *\\n * If you need to declare that a given property exists on `import.meta`,\\n * this type may be augmented via interface merging.\\n */\\ninterface ImportMeta {\\n}\\n\\ninterface Math {\\n    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\\n    readonly E: number;\\n    /** The natural logarithm of 10. */\\n    readonly LN10: number;\\n    /** The natural logarithm of 2. */\\n    readonly LN2: number;\\n    /** The base-2 logarithm of e. */\\n    readonly LOG2E: number;\\n    /** The base-10 logarithm of e. */\\n    readonly LOG10E: number;\\n    /** Pi. This is the ratio of the circumference of a circle to its diameter. */\\n    readonly PI: number;\\n    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\\n    readonly SQRT1_2: number;\\n    /** The square root of 2. */\\n    readonly SQRT2: number;\\n    /**\\n     * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\\n     * For example, the absolute value of -5 is the same as the absolute value of 5.\\n     * @param x A numeric expression for which the absolute value is needed.\\n     */\\n    abs(x: number): number;\\n    /**\\n     * Returns the arc cosine (or inverse cosine) of a number.\\n     * @param x A numeric expression.\\n     */\\n    acos(x: number): number;\\n    /**\\n     * Returns the arcsine of a number.\\n     * @param x A numeric expression.\\n     */\\n    asin(x: number): number;\\n    /**\\n     * Returns the arctangent of a number.\\n     * @param x A numeric expression for which the arctangent is needed.\\n     */\\n    atan(x: number): number;\\n    /**\\n     * Returns the angle (in radians) from the X axis to a point.\\n     * @param y A numeric expression representing the cartesian y-coordinate.\\n     * @param x A numeric expression representing the cartesian x-coordinate.\\n     */\\n    atan2(y: number, x: number): number;\\n    /**\\n     * Returns the smallest integer greater than or equal to its numeric argument.\\n     * @param x A numeric expression.\\n     */\\n    ceil(x: number): number;\\n    /**\\n     * Returns the cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    cos(x: number): number;\\n    /**\\n     * Returns e (the base of natural logarithms) raised to a power.\\n     * @param x A numeric expression representing the power of e.\\n     */\\n    exp(x: number): number;\\n    /**\\n     * Returns the greatest integer less than or equal to its numeric argument.\\n     * @param x A numeric expression.\\n     */\\n    floor(x: number): number;\\n    /**\\n     * Returns the natural logarithm (base e) of a number.\\n     * @param x A numeric expression.\\n     */\\n    log(x: number): number;\\n    /**\\n     * Returns the larger of a set of supplied numeric expressions.\\n     * @param values Numeric expressions to be evaluated.\\n     */\\n    max(...values: number[]): number;\\n    /**\\n     * Returns the smaller of a set of supplied numeric expressions.\\n     * @param values Numeric expressions to be evaluated.\\n     */\\n    min(...values: number[]): number;\\n    /**\\n     * Returns the value of a base expression taken to a specified power.\\n     * @param x The base value of the expression.\\n     * @param y The exponent value of the expression.\\n     */\\n    pow(x: number, y: number): number;\\n    /** Returns a pseudorandom number between 0 and 1. */\\n    random(): number;\\n    /**\\n     * Returns a supplied numeric expression rounded to the nearest integer.\\n     * @param x The value to be rounded to the nearest integer.\\n     */\\n    round(x: number): number;\\n    /**\\n     * Returns the sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    sin(x: number): number;\\n    /**\\n     * Returns the square root of a number.\\n     * @param x A numeric expression.\\n     */\\n    sqrt(x: number): number;\\n    /**\\n     * Returns the tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    tan(x: number): number;\\n}\\n/** An intrinsic object that provides basic mathematics functionality and constants. */\\ndeclare var Math: Math;\\n\\n/** Enables basic storage and retrieval of dates and times. */\\ninterface Date {\\n    /** Returns a string representation of a date. The format of the string depends on the locale. */\\n    toString(): string;\\n    /** Returns a date as a string value. */\\n    toDateString(): string;\\n    /** Returns a time as a string value. */\\n    toTimeString(): string;\\n    /** Returns a value as a string value appropriate to the host environment's current locale. */\\n    toLocaleString(): string;\\n    /** Returns a date as a string value appropriate to the host environment's current locale. */\\n    toLocaleDateString(): string;\\n    /** Returns a time as a string value appropriate to the host environment's current locale. */\\n    toLocaleTimeString(): string;\\n    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\\n    valueOf(): number;\\n    /** Gets the time value in milliseconds. */\\n    getTime(): number;\\n    /** Gets the year, using local time. */\\n    getFullYear(): number;\\n    /** Gets the year using Universal Coordinated Time (UTC). */\\n    getUTCFullYear(): number;\\n    /** Gets the month, using local time. */\\n    getMonth(): number;\\n    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMonth(): number;\\n    /** Gets the day-of-the-month, using local time. */\\n    getDate(): number;\\n    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\\n    getUTCDate(): number;\\n    /** Gets the day of the week, using local time. */\\n    getDay(): number;\\n    /** Gets the day of the week using Universal Coordinated Time (UTC). */\\n    getUTCDay(): number;\\n    /** Gets the hours in a date, using local time. */\\n    getHours(): number;\\n    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\\n    getUTCHours(): number;\\n    /** Gets the minutes of a Date object, using local time. */\\n    getMinutes(): number;\\n    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMinutes(): number;\\n    /** Gets the seconds of a Date object, using local time. */\\n    getSeconds(): number;\\n    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCSeconds(): number;\\n    /** Gets the milliseconds of a Date, using local time. */\\n    getMilliseconds(): number;\\n    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMilliseconds(): number;\\n    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\\n    getTimezoneOffset(): number;\\n    /**\\n     * Sets the date and time value in the Date object.\\n     * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\\n     */\\n    setTime(time: number): number;\\n    /**\\n     * Sets the milliseconds value in the Date object using local time.\\n     * @param ms A numeric value equal to the millisecond value.\\n     */\\n    setMilliseconds(ms: number): number;\\n    /**\\n     * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\\n     * @param ms A numeric value equal to the millisecond value.\\n     */\\n    setUTCMilliseconds(ms: number): number;\\n\\n    /**\\n     * Sets the seconds value in the Date object using local time.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setSeconds(sec: number, ms?: number): number;\\n    /**\\n     * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCSeconds(sec: number, ms?: number): number;\\n    /**\\n     * Sets the minutes value in the Date object using local time.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setMinutes(min: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCMinutes(min: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the hour value in the Date object using local time.\\n     * @param hours A numeric value equal to the hours value.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setHours(hours: number, min?: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\\n     * @param hours A numeric value equal to the hours value.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the numeric day-of-the-month value of the Date object using local time.\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setDate(date: number): number;\\n    /**\\n     * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setUTCDate(date: number): number;\\n    /**\\n     * Sets the month value in the Date object using local time.\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\\n     * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\\n     */\\n    setMonth(month: number, date?: number): number;\\n    /**\\n     * Sets the month value in the Date object using Universal Coordinated Time (UTC).\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\\n     * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\\n     */\\n    setUTCMonth(month: number, date?: number): number;\\n    /**\\n     * Sets the year of the Date object using local time.\\n     * @param year A numeric value for the year.\\n     * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\\n     * @param date A numeric value equal for the day of the month.\\n     */\\n    setFullYear(year: number, month?: number, date?: number): number;\\n    /**\\n     * Sets the year value in the Date object using Universal Coordinated Time (UTC).\\n     * @param year A numeric value equal to the year.\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setUTCFullYear(year: number, month?: number, date?: number): number;\\n    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\\n    toUTCString(): string;\\n    /** Returns a date as a string value in ISO format. */\\n    toISOString(): string;\\n    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\\n    toJSON(key?: any): string;\\n}\\n\\ninterface DateConstructor {\\n    new(): Date;\\n    new(value: number | string): Date;\\n    new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\\n    (): string;\\n    readonly prototype: Date;\\n    /**\\n     * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\\n     * @param s A date string\\n     */\\n    parse(s: string): number;\\n    /**\\n     * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\\n     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\\n     * @param month The month as a number between 0 and 11 (January to December).\\n     * @param date The date as a number between 1 and 31.\\n     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\\n     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\\n     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\\n     * @param ms A number from 0 to 999 that specifies the milliseconds.\\n     */\\n    UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\\n    now(): number;\\n}\\n\\ndeclare var Date: DateConstructor;\\n\\ninterface RegExpMatchArray extends Array<string> {\\n    index?: number;\\n    input?: string;\\n}\\n\\ninterface RegExpExecArray extends Array<string> {\\n    index: number;\\n    input: string;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\\n     * @param string The String object or string literal on which to perform the search.\\n     */\\n    exec(string: string): RegExpExecArray | null;\\n\\n    /**\\n     * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\\n     * @param string String on which to perform the search.\\n     */\\n    test(string: string): boolean;\\n\\n    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\\n    readonly source: string;\\n\\n    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\\n    readonly global: boolean;\\n\\n    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\\n    readonly ignoreCase: boolean;\\n\\n    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\\n    readonly multiline: boolean;\\n\\n    lastIndex: number;\\n\\n    // Non-standard extensions\\n    compile(): this;\\n}\\n\\ninterface RegExpConstructor {\\n    new(pattern: RegExp | string): RegExp;\\n    new(pattern: string, flags?: string): RegExp;\\n    (pattern: RegExp | string): RegExp;\\n    (pattern: string, flags?: string): RegExp;\\n    readonly prototype: RegExp;\\n\\n    // Non-standard extensions\\n    $1: string;\\n    $2: string;\\n    $3: string;\\n    $4: string;\\n    $5: string;\\n    $6: string;\\n    $7: string;\\n    $8: string;\\n    $9: string;\\n    lastMatch: string;\\n}\\n\\ndeclare var RegExp: RegExpConstructor;\\n\\ninterface Error {\\n    name: string;\\n    message: string;\\n    stack?: string;\\n}\\n\\ninterface ErrorConstructor {\\n    new(message?: string): Error;\\n    (message?: string): Error;\\n    readonly prototype: Error;\\n}\\n\\ndeclare var Error: ErrorConstructor;\\n\\ninterface EvalError extends Error {\\n}\\n\\ninterface EvalErrorConstructor {\\n    new(message?: string): EvalError;\\n    (message?: string): EvalError;\\n    readonly prototype: EvalError;\\n}\\n\\ndeclare var EvalError: EvalErrorConstructor;\\n\\ninterface RangeError extends Error {\\n}\\n\\ninterface RangeErrorConstructor {\\n    new(message?: string): RangeError;\\n    (message?: string): RangeError;\\n    readonly prototype: RangeError;\\n}\\n\\ndeclare var RangeError: RangeErrorConstructor;\\n\\ninterface ReferenceError extends Error {\\n}\\n\\ninterface ReferenceErrorConstructor {\\n    new(message?: string): ReferenceError;\\n    (message?: string): ReferenceError;\\n    readonly prototype: ReferenceError;\\n}\\n\\ndeclare var ReferenceError: ReferenceErrorConstructor;\\n\\ninterface SyntaxError extends Error {\\n}\\n\\ninterface SyntaxErrorConstructor {\\n    new(message?: string): SyntaxError;\\n    (message?: string): SyntaxError;\\n    readonly prototype: SyntaxError;\\n}\\n\\ndeclare var SyntaxError: SyntaxErrorConstructor;\\n\\ninterface TypeError extends Error {\\n}\\n\\ninterface TypeErrorConstructor {\\n    new(message?: string): TypeError;\\n    (message?: string): TypeError;\\n    readonly prototype: TypeError;\\n}\\n\\ndeclare var TypeError: TypeErrorConstructor;\\n\\ninterface URIError extends Error {\\n}\\n\\ninterface URIErrorConstructor {\\n    new(message?: string): URIError;\\n    (message?: string): URIError;\\n    readonly prototype: URIError;\\n}\\n\\ndeclare var URIError: URIErrorConstructor;\\n\\ninterface JSON {\\n    /**\\n     * Converts a JavaScript Object Notation (JSON) string into an object.\\n     * @param text A valid JSON string.\\n     * @param reviver A function that transforms the results. This function is called for each member of the object.\\n     * If a member contains nested objects, the nested objects are transformed before the parent object is.\\n     */\\n    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\\n    /**\\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\\n     * @param value A JavaScript value, usually an object or array, to be converted.\\n     * @param replacer A function that transforms the results.\\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\\n     */\\n    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\\n    /**\\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\\n     * @param value A JavaScript value, usually an object or array, to be converted.\\n     * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.\\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\\n     */\\n    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\\n}\\n\\n/**\\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\\n */\\ndeclare var JSON: JSON;\\n\\n\\n/////////////////////////////\\n/// ECMAScript Array API (specially handled by compiler)\\n/////////////////////////////\\n\\ninterface ReadonlyArray<T> {\\n    /**\\n     * Gets the length of the array. This is a number one higher than the highest element defined in an array.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n    /**\\n     * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\\n     */\\n    toLocaleString(): string;\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: ConcatArray<T>[]): T[];\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: (T | ConcatArray<T>)[]): T[];\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): T[];\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\\n     */\\n    indexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Returns the index of the last occurrence of a specified value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\\n     */\\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter<S extends T>(callbackfn: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\\n\\n    readonly [n: number]: T;\\n}\\n\\ninterface ConcatArray<T> {\\n    readonly length: number;\\n    readonly [n: number]: T;\\n    join(separator?: string): string;\\n    slice(start?: number, end?: number): T[];\\n}\\n\\ninterface Array<T> {\\n    /**\\n     * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.\\n     */\\n    length: number;\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n    /**\\n     * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\\n     */\\n    toLocaleString(): string;\\n    /**\\n     * Removes the last element from an array and returns it.\\n     */\\n    pop(): T | undefined;\\n    /**\\n     * Appends new elements to an array, and returns the new length of the array.\\n     * @param items New elements of the Array.\\n     */\\n    push(...items: T[]): number;\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: ConcatArray<T>[]): T[];\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: (T | ConcatArray<T>)[]): T[];\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): T[];\\n    /**\\n     * Removes the first element from an array and returns it.\\n     */\\n    shift(): T | undefined;\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): T[];\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: T, b: T) => number): this;\\n    /**\\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\\n     * @param start The zero-based location in the array from which to start removing elements.\\n     * @param deleteCount The number of elements to remove.\\n     */\\n    splice(start: number, deleteCount?: number): T[];\\n    /**\\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\\n     * @param start The zero-based location in the array from which to start removing elements.\\n     * @param deleteCount The number of elements to remove.\\n     * @param items Elements to insert into the array in place of the deleted elements.\\n     */\\n    splice(start: number, deleteCount: number, ...items: T[]): T[];\\n    /**\\n     * Inserts new elements at the start of an array.\\n     * @param items  Elements to insert at the start of the Array.\\n     */\\n    unshift(...items: T[]): number;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\\n     */\\n    indexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Returns the index of the last occurrence of a specified value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\\n     */\\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\\n\\n    [n: number]: T;\\n}\\n\\ninterface ArrayConstructor {\\n    new(arrayLength?: number): any[];\\n    new <T>(arrayLength: number): T[];\\n    new <T>(...items: T[]): T[];\\n    (arrayLength?: number): any[];\\n    <T>(arrayLength: number): T[];\\n    <T>(...items: T[]): T[];\\n    isArray(arg: any): arg is any[];\\n    readonly prototype: any[];\\n}\\n\\ndeclare var Array: ArrayConstructor;\\n\\ninterface TypedPropertyDescriptor<T> {\\n    enumerable?: boolean;\\n    configurable?: boolean;\\n    writable?: boolean;\\n    value?: T;\\n    get?: () => T;\\n    set?: (value: T) => void;\\n}\\n\\ndeclare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;\\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\\ndeclare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;\\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\\n\\ndeclare type PromiseConstructorLike = new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;\\n\\ninterface PromiseLike<T> {\\n    /**\\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\\n     * @param onfulfilled The callback to execute when the Promise is resolved.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of which ever callback is executed.\\n     */\\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;\\n}\\n\\n/**\\n * Represents the completion of an asynchronous operation\\n */\\ninterface Promise<T> {\\n    /**\\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\\n     * @param onfulfilled The callback to execute when the Promise is resolved.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of which ever callback is executed.\\n     */\\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;\\n\\n    /**\\n     * Attaches a callback for only the rejection of the Promise.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of the callback.\\n     */\\n    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;\\n}\\n\\ninterface ArrayLike<T> {\\n    readonly length: number;\\n    readonly [n: number]: T;\\n}\\n\\n/**\\n * Make all properties in T optional\\n */\\ntype Partial<T> = {\\n    [P in keyof T]?: T[P];\\n};\\n\\n/**\\n * Make all properties in T required\\n */\\ntype Required<T> = {\\n    [P in keyof T]-?: T[P];\\n};\\n\\n/**\\n * Make all properties in T readonly\\n */\\ntype Readonly<T> = {\\n    readonly [P in keyof T]: T[P];\\n};\\n\\n/**\\n * From T, pick a set of properties whose keys are in the union K\\n */\\ntype Pick<T, K extends keyof T> = {\\n    [P in K]: T[P];\\n};\\n\\n/**\\n * Construct a type with a set of properties K of type T\\n */\\ntype Record<K extends keyof any, T> = {\\n    [P in K]: T;\\n};\\n\\n/**\\n * Exclude from T those types that are assignable to U\\n */\\ntype Exclude<T, U> = T extends U ? never : T;\\n\\n/**\\n * Extract from T those types that are assignable to U\\n */\\ntype Extract<T, U> = T extends U ? T : never;\\n\\n/**\\n * Construct a type with the properties of T except for those in type K.\\n */\\ntype Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;\\n\\n/**\\n * Exclude null and undefined from T\\n */\\ntype NonNullable<T> = T extends null | undefined ? never : T;\\n\\n/**\\n * Obtain the parameters of a function type in a tuple\\n */\\ntype Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\\n\\n/**\\n * Obtain the parameters of a constructor function type in a tuple\\n */\\ntype ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;\\n\\n/**\\n * Obtain the return type of a function type\\n */\\ntype ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\\n\\n/**\\n * Obtain the return type of a constructor function type\\n */\\ntype InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;\\n\\n/**\\n * Marker for contextual 'this' type\\n */\\ninterface ThisType<T> { }\\n\\n/**\\n * Represents a raw buffer of binary data, which is used to store data for the\\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\\n * but can be passed to a typed array or DataView Object to interpret the raw\\n * buffer as needed.\\n */\\ninterface ArrayBuffer {\\n    /**\\n     * Read-only. The length of the ArrayBuffer (in bytes).\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * Returns a section of an ArrayBuffer.\\n     */\\n    slice(begin: number, end?: number): ArrayBuffer;\\n}\\n\\n/**\\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\\n */\\ninterface ArrayBufferTypes {\\n    ArrayBuffer: ArrayBuffer;\\n}\\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\\n\\ninterface ArrayBufferConstructor {\\n    readonly prototype: ArrayBuffer;\\n    new(byteLength: number): ArrayBuffer;\\n    isView(arg: any): arg is ArrayBufferView;\\n}\\ndeclare var ArrayBuffer: ArrayBufferConstructor;\\n\\ninterface ArrayBufferView {\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    byteOffset: number;\\n}\\n\\ninterface DataView {\\n    readonly buffer: ArrayBuffer;\\n    readonly byteLength: number;\\n    readonly byteOffset: number;\\n    /**\\n     * Gets the Float32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getFloat32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Float64 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getFloat64(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Int8 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt8(byteOffset: number): number;\\n\\n    /**\\n     * Gets the Int16 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt16(byteOffset: number, littleEndian?: boolean): number;\\n    /**\\n     * Gets the Int32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Uint8 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint8(byteOffset: number): number;\\n\\n    /**\\n     * Gets the Uint16 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint16(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Uint32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Stores an Float32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Float64 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Int8 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     */\\n    setInt8(byteOffset: number, value: number): void;\\n\\n    /**\\n     * Stores an Int16 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Int32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Uint8 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     */\\n    setUint8(byteOffset: number, value: number): void;\\n\\n    /**\\n     * Stores an Uint16 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Uint32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n}\\n\\ninterface DataViewConstructor {\\n    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\\n}\\ndeclare var DataView: DataViewConstructor;\\n\\n/**\\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\\n * number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int8Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int8Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int8Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int8Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\ninterface Int8ArrayConstructor {\\n    readonly prototype: Int8Array;\\n    new(length: number): Int8Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int8Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\\n\\n\\n}\\ndeclare var Int8Array: Int8ArrayConstructor;\\n\\n/**\\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint8Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint8Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint8Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint8Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint8ArrayConstructor {\\n    readonly prototype: Uint8Array;\\n    new(length: number): Uint8Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\\n\\n}\\ndeclare var Uint8Array: Uint8ArrayConstructor;\\n\\n/**\\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\\n * If the requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint8ClampedArray {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint8ClampedArray;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint8ClampedArray;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint8ClampedArray;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint8ClampedArrayConstructor {\\n    readonly prototype: Uint8ClampedArray;\\n    new(length: number): Uint8ClampedArray;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint8ClampedArray;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\\n}\\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\\n\\n/**\\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int16Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int16Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int16Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int16Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Int16ArrayConstructor {\\n    readonly prototype: Int16Array;\\n    new(length: number): Int16Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int16Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\\n\\n\\n}\\ndeclare var Int16Array: Int16ArrayConstructor;\\n\\n/**\\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint16Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint16Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint16Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint16Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint16ArrayConstructor {\\n    readonly prototype: Uint16Array;\\n    new(length: number): Uint16Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint16Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\\n\\n\\n}\\ndeclare var Uint16Array: Uint16ArrayConstructor;\\n/**\\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Int32ArrayConstructor {\\n    readonly prototype: Int32Array;\\n    new(length: number): Int32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\\n\\n}\\ndeclare var Int32Array: Int32ArrayConstructor;\\n\\n/**\\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint32ArrayConstructor {\\n    readonly prototype: Uint32Array;\\n    new(length: number): Uint32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\\n\\n}\\ndeclare var Uint32Array: Uint32ArrayConstructor;\\n\\n/**\\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\\n * of bytes could not be allocated an exception is raised.\\n */\\ninterface Float32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Float32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Float32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Float32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Float32ArrayConstructor {\\n    readonly prototype: Float32Array;\\n    new(length: number): Float32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\\n\\n\\n}\\ndeclare var Float32Array: Float32ArrayConstructor;\\n\\n/**\\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\\n * number of bytes could not be allocated an exception is raised.\\n */\\ninterface Float64Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Float64Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Float64Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Float64Array;\\n\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Float64ArrayConstructor {\\n    readonly prototype: Float64Array;\\n    new(length: number): Float64Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float64Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\\n\\n}\\ndeclare var Float64Array: Float64ArrayConstructor;\\n\\n/////////////////////////////\\n/// ECMAScript Internationalization API\\n/////////////////////////////\\n\\ndeclare namespace Intl {\\n    interface CollatorOptions {\\n        usage?: string;\\n        localeMatcher?: string;\\n        numeric?: boolean;\\n        caseFirst?: string;\\n        sensitivity?: string;\\n        ignorePunctuation?: boolean;\\n    }\\n\\n    interface ResolvedCollatorOptions {\\n        locale: string;\\n        usage: string;\\n        sensitivity: string;\\n        ignorePunctuation: boolean;\\n        collation: string;\\n        caseFirst: string;\\n        numeric: boolean;\\n    }\\n\\n    interface Collator {\\n        compare(x: string, y: string): number;\\n        resolvedOptions(): ResolvedCollatorOptions;\\n    }\\n    var Collator: {\\n        new(locales?: string | string[], options?: CollatorOptions): Collator;\\n        (locales?: string | string[], options?: CollatorOptions): Collator;\\n        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\\n    };\\n\\n    interface NumberFormatOptions {\\n        localeMatcher?: string;\\n        style?: string;\\n        currency?: string;\\n        currencyDisplay?: string;\\n        useGrouping?: boolean;\\n        minimumIntegerDigits?: number;\\n        minimumFractionDigits?: number;\\n        maximumFractionDigits?: number;\\n        minimumSignificantDigits?: number;\\n        maximumSignificantDigits?: number;\\n    }\\n\\n    interface ResolvedNumberFormatOptions {\\n        locale: string;\\n        numberingSystem: string;\\n        style: string;\\n        currency?: string;\\n        currencyDisplay?: string;\\n        minimumIntegerDigits: number;\\n        minimumFractionDigits: number;\\n        maximumFractionDigits: number;\\n        minimumSignificantDigits?: number;\\n        maximumSignificantDigits?: number;\\n        useGrouping: boolean;\\n    }\\n\\n    interface NumberFormat {\\n        format(value: number): string;\\n        resolvedOptions(): ResolvedNumberFormatOptions;\\n    }\\n    var NumberFormat: {\\n        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\\n        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\\n        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\\n    };\\n\\n    interface DateTimeFormatOptions {\\n        localeMatcher?: string;\\n        weekday?: string;\\n        era?: string;\\n        year?: string;\\n        month?: string;\\n        day?: string;\\n        hour?: string;\\n        minute?: string;\\n        second?: string;\\n        timeZoneName?: string;\\n        formatMatcher?: string;\\n        hour12?: boolean;\\n        timeZone?: string;\\n    }\\n\\n    interface ResolvedDateTimeFormatOptions {\\n        locale: string;\\n        calendar: string;\\n        numberingSystem: string;\\n        timeZone: string;\\n        hour12?: boolean;\\n        weekday?: string;\\n        era?: string;\\n        year?: string;\\n        month?: string;\\n        day?: string;\\n        hour?: string;\\n        minute?: string;\\n        second?: string;\\n        timeZoneName?: string;\\n    }\\n\\n    interface DateTimeFormat {\\n        format(date?: Date | number): string;\\n        resolvedOptions(): ResolvedDateTimeFormatOptions;\\n    }\\n    var DateTimeFormat: {\\n        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\\n        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\\n        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\\n    };\\n}\\n\\ninterface String {\\n    /**\\n     * Determines whether two strings are equivalent in the current or specified locale.\\n     * @param that String to compare to target string\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\\n     * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\\n     */\\n    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\\n}\\n\\ninterface Number {\\n    /**\\n     * Converts a number to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\\n}\\n\\ninterface Date {\\n    /**\\n     * Converts a date and time to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n    /**\\n     * Converts a date to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n\\n    /**\\n     * Converts a time to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n}\\n\",n.lib_es2015_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es5_dts+n.lib_es2015_core_dts+n.lib_es2015_collection_dts+n.lib_es2015_generator_dts+n.lib_es2015_promise_dts+n.lib_es2015_iterable_dts+n.lib_es2015_proxy_dts+n.lib_es2015_reflect_dts+n.lib_es2015_symbol_dts+n.lib_es2015_symbol_wellknown_dts,n.lib_es6_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_dts+n.lib_dom_dts+n.lib_dom_iterable_dts+n.lib_webworker_importscripts_dts+n.lib_scripthost_dts,n.lib_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es5_dts+n.lib_dom_dts+n.lib_webworker_importscripts_dts+n.lib_scripthost_dts})),define(\"vs/language/typescript/tsWorker\",[\"require\",\"exports\",\"./lib/typescriptServices\",\"./lib/lib\"],(function(e,n,t,r){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var a={NAME:\"defaultLib:lib.d.ts\",CONTENTS:r.lib_dts},i={NAME:\"defaultLib:lib.es6.d.ts\",CONTENTS:r.lib_es6_dts},o=function(){function e(e,n){this._extraLibs=Object.create(null),this._languageService=t.createLanguageService(this),this._ctx=e,this._compilerOptions=n.compilerOptions,this._extraLibs=n.extraLibs}return e.prototype.getCompilationSettings=function(){return this._compilerOptions},e.prototype.getScriptFileNames=function(){return this._ctx.getMirrorModels().map((function(e){return e.uri.toString()})).concat(Object.keys(this._extraLibs))},e.prototype._getModel=function(e){for(var n=this._ctx.getMirrorModels(),t=0;t<n.length;t++)if(n[t].uri.toString()===e)return n[t];return null},e.prototype.getScriptVersion=function(e){var n=this._getModel(e);return n?n.version.toString():this.isDefaultLibFileName(e)?\"1\":e in this._extraLibs?String(this._extraLibs[e].version):\"\"},e.prototype.getScriptSnapshot=function(e){var n,t=this._getModel(e);if(t)n=t.getValue();else if(e in this._extraLibs)n=this._extraLibs[e].content;else if(e===a.NAME)n=a.CONTENTS;else{if(e!==i.NAME)return;n=i.CONTENTS}return{getText:function(e,t){return n.substring(e,t)},getLength:function(){return n.length},getChangeRange:function(){}}},e.prototype.getScriptKind=function(e){switch(e.substr(e.lastIndexOf(\".\")+1)){case\"ts\":return t.ScriptKind.TS;case\"tsx\":return t.ScriptKind.TSX;case\"js\":return t.ScriptKind.JS;case\"jsx\":return t.ScriptKind.JSX;default:return this.getCompilationSettings().allowJs?t.ScriptKind.JS:t.ScriptKind.TS}},e.prototype.getCurrentDirectory=function(){return\"\"},e.prototype.getDefaultLibFileName=function(e){return(e.target||t.ScriptTarget.ES5)<=t.ScriptTarget.ES5?a.NAME:i.NAME},e.prototype.isDefaultLibFileName=function(e){return e===this.getDefaultLibFileName(this._compilerOptions)},e.clearFiles=function(e){return e.forEach((function(e){e.file=void 0;var n=e.relatedInformation;n&&n.forEach((function(e){return e.file=void 0}))})),e},e.prototype.getSyntacticDiagnostics=function(n){var t=this._languageService.getSyntacticDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getSemanticDiagnostics=function(n){var t=this._languageService.getSemanticDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getSuggestionDiagnostics=function(n){var t=this._languageService.getSuggestionDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getCompilerOptionsDiagnostics=function(n){var t=this._languageService.getCompilerOptionsDiagnostics();return Promise.resolve(e.clearFiles(t))},e.prototype.getCompletionsAtPosition=function(e,n){return Promise.resolve(this._languageService.getCompletionsAtPosition(e,n,void 0))},e.prototype.getCompletionEntryDetails=function(e,n,t){return Promise.resolve(this._languageService.getCompletionEntryDetails(e,n,t,void 0,void 0,void 0))},e.prototype.getSignatureHelpItems=function(e,n){return Promise.resolve(this._languageService.getSignatureHelpItems(e,n,void 0))},e.prototype.getQuickInfoAtPosition=function(e,n){return Promise.resolve(this._languageService.getQuickInfoAtPosition(e,n))},e.prototype.getOccurrencesAtPosition=function(e,n){return Promise.resolve(this._languageService.getOccurrencesAtPosition(e,n))},e.prototype.getDefinitionAtPosition=function(e,n){return Promise.resolve(this._languageService.getDefinitionAtPosition(e,n))},e.prototype.getReferencesAtPosition=function(e,n){return Promise.resolve(this._languageService.getReferencesAtPosition(e,n))},e.prototype.getNavigationBarItems=function(e){return Promise.resolve(this._languageService.getNavigationBarItems(e))},e.prototype.getFormattingEditsForDocument=function(e,n){return Promise.resolve(this._languageService.getFormattingEditsForDocument(e,n))},e.prototype.getFormattingEditsForRange=function(e,n,t,r){return Promise.resolve(this._languageService.getFormattingEditsForRange(e,n,t,r))},e.prototype.getFormattingEditsAfterKeystroke=function(e,n,t,r){return Promise.resolve(this._languageService.getFormattingEditsAfterKeystroke(e,n,t,r))},e.prototype.findRenameLocations=function(e,n,t,r,a){return Promise.resolve(this._languageService.findRenameLocations(e,n,t,r,a))},e.prototype.getRenameInfo=function(e,n,t){return Promise.resolve(this._languageService.getRenameInfo(e,n,t))},e.prototype.getEmitOutput=function(e){return Promise.resolve(this._languageService.getEmitOutput(e))},e.prototype.getCodeFixesAtPosition=function(e,n,t,r,a){return Promise.resolve(this._languageService.getCodeFixesAtPosition(e,n,t,r,a,{}))},e.prototype.updateExtraLibs=function(e){this._extraLibs=e},e}();n.TypeScriptWorker=o,n.create=function(e,n){return new o(e,n)}}));"
  },
  {
    "path": "app/assets/js/editor/vs/loader.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n\"use strict\";var define,AMDLoader,_amdLoaderGlobal=this,_commonjsGlobal=\"object\"==typeof global?global:{};!function(e){e.global=_amdLoaderGlobal;var t=function(){function t(){this._detected=!1,this._isWindows=!1,this._isNode=!1,this._isElectronRenderer=!1,this._isWebWorker=!1}return Object.defineProperty(t.prototype,\"isWindows\",{get:function(){return this._detect(),this._isWindows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isNode\",{get:function(){return this._detect(),this._isNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isElectronRenderer\",{get:function(){return this._detect(),this._isElectronRenderer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isWebWorker\",{get:function(){return this._detect(),this._isWebWorker},enumerable:!0,configurable:!0}),t.prototype._detect=function(){this._detected||(this._detected=!0,this._isWindows=t._isWindows(),this._isNode=\"undefined\"!=typeof module&&!!module.exports,\nthis._isElectronRenderer=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type,this._isWebWorker=\"function\"==typeof e.global.importScripts)},t._isWindows=function(){return!!(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf(\"Windows\")>=0)||\"undefined\"!=typeof process&&\"win32\"===process.platform},t}();e.Environment=t}(AMDLoader||(AMDLoader={})),function(e){var t=function(e,t,r){this.type=e,this.detail=t,this.timestamp=r};e.LoaderEvent=t;var r=function(){function r(e){this._events=[new t(1,\"\",e)]}return r.prototype.record=function(r,n){this._events.push(new t(r,n,e.Utilities.getHighPerformanceTimestamp()))},r.prototype.getEvents=function(){return this._events},r}();e.LoaderEventRecorder=r;var n=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=n}(AMDLoader||(AMDLoader={})),function(e){var t=function(){\nfunction t(){}return t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,\"#\"),e){if(/^file:\\/\\/\\//.test(t))return t.substr(8);if(/^file:\\/\\//.test(t))return t.substr(5)}else if(/^file:\\/\\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\\#]*\\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\\/\\/)|(https:\\/\\/)|(file:\\/\\/)|(\\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var r=void 0;for(r in e)e.hasOwnProperty(r)&&t(r,e[r])}},t.isEmpty=function(e){var r=!0;return t.forEachProperty(e,(function(){r=!1})),r},t.recursiveClone=function(e){if(!e||\"object\"!=typeof e)return e;var r=Array.isArray(e)?[]:{};return t.forEachProperty(e,(function(e,n){r[e]=n&&\"object\"==typeof n?t.recursiveClone(n):n})),r},t.generateAnonymousModule=function(){return\"===anonymous\"+t.NEXT_ANONYMOUS_ID+++\"===\"},\nt.isAnonymousModule=function(e){return t.startsWith(e,\"===anonymous\")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&\"function\"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(AMDLoader||(AMDLoader={})),function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||\"Unknown Error\");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var r=function(){function r(){}return r.validateConfigurationOptions=function(r){if(\"string\"!=typeof(r=r||{}).baseUrl&&(r.baseUrl=\"\"),\"boolean\"!=typeof r.isBuild&&(r.isBuild=!1),\"object\"!=typeof r.paths&&(r.paths={}),\"object\"!=typeof r.config&&(r.config={}),void 0===r.catchError&&(r.catchError=!1),void 0===r.recordStats&&(r.recordStats=!1),\"string\"!=typeof r.urlArgs&&(r.urlArgs=\"\"),\n\"function\"!=typeof r.onError&&(r.onError=function(e){return\"loading\"===e.phase?(console.error('Loading \"'+e.moduleId+'\" failed'),console.error(e),console.error(\"Here are the modules that depend on it:\"),void console.error(e.neededBy)):\"factory\"===e.phase?(console.error('The factory method of \"'+e.moduleId+'\" has thrown an exception'),void console.error(e)):void 0}),Array.isArray(r.ignoreDuplicateModules)||(r.ignoreDuplicateModules=[]),r.baseUrl.length>0&&(e.Utilities.endsWith(r.baseUrl,\"/\")||(r.baseUrl+=\"/\")),\"string\"!=typeof r.cspNonce&&(r.cspNonce=\"\"),Array.isArray(r.nodeModules)||(r.nodeModules=[]),r.nodeCachedData&&\"object\"==typeof r.nodeCachedData&&(\"string\"!=typeof r.nodeCachedData.seed&&(r.nodeCachedData.seed=\"seed\"),(\"number\"!=typeof r.nodeCachedData.writeDelay||r.nodeCachedData.writeDelay<0)&&(r.nodeCachedData.writeDelay=7e3),!r.nodeCachedData.path||\"string\"!=typeof r.nodeCachedData.path)){var n=t(new Error(\"INVALID cached data configuration, 'path' MUST be set\"));n.phase=\"configuration\",\nr.onError(n),r.nodeCachedData=void 0}return r},r.mergeConfigurationOptions=function(t,n){void 0===t&&(t=null),void 0===n&&(n=null);var o=e.Utilities.recursiveClone(n||{});return e.Utilities.forEachProperty(t,(function(t,r){\"ignoreDuplicateModules\"===t&&void 0!==o.ignoreDuplicateModules?o.ignoreDuplicateModules=o.ignoreDuplicateModules.concat(r):\"paths\"===t&&void 0!==o.paths?e.Utilities.forEachProperty(r,(function(e,t){return o.paths[e]=t})):\"config\"===t&&void 0!==o.config?e.Utilities.forEachProperty(r,(function(e,t){return o.config[e]=t})):o[t]=e.Utilities.recursiveClone(r)})),r.validateConfigurationOptions(o)},r}();e.ConfigurationOptionsUtil=r;var n=function(){function t(e,t){if(this._env=e,this.options=r.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),\"\"===this.options.baseUrl){if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){\nvar n=this.options.nodeRequire.main.filename,o=Math.max(n.lastIndexOf(\"/\"),n.lastIndexOf(\"\\\\\"));this.options.baseUrl=n.substring(0,o+1)}if(this.options.nodeMain&&this._env.isNode){n=this.options.nodeMain,o=Math.max(n.lastIndexOf(\"/\"),n.lastIndexOf(\"\\\\\"));this.options.baseUrl=n.substring(0,o+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e<this.options.ignoreDuplicateModules.length;e++)this.ignoreDuplicateModulesMap[this.options.ignoreDuplicateModules[e]]=!0},t.prototype._createNodeModulesMap=function(){this.nodeModulesMap=Object.create(null);for(var e=0,t=this.options.nodeModules;e<t.length;e++){var r=t[e];this.nodeModulesMap[r]=!0}},t.prototype._createSortedPathsRules=function(){var t=this;this.sortedPathsRules=[],e.Utilities.forEachProperty(this.options.paths,(function(e,r){Array.isArray(r)?t.sortedPathsRules.push({from:e,to:r}):t.sortedPathsRules.push({from:e,to:[r]})})),this.sortedPathsRules.sort((function(e,t){\nreturn t.from.length-e.from.length}))},t.prototype.cloneAndMerge=function(e){return new t(this._env,r.mergeConfigurationOptions(e,this.options))},t.prototype.getOptionsLiteral=function(){return this.options},t.prototype._applyPaths=function(t){for(var r,n=0,o=this.sortedPathsRules.length;n<o;n++)if(r=this.sortedPathsRules[n],e.Utilities.startsWith(t,r.from)){for(var i=[],s=0,d=r.to.length;s<d;s++)i.push(r.to[s]+t.substr(r.from.length));return i}return[t]},t.prototype._addUrlArgsToUrl=function(t){return e.Utilities.containsQueryString(t)?t+\"&\"+this.options.urlArgs:t+\"?\"+this.options.urlArgs},t.prototype._addUrlArgsIfNecessaryToUrl=function(e){return this.options.urlArgs?this._addUrlArgsToUrl(e):e},t.prototype._addUrlArgsIfNecessaryToUrls=function(e){if(this.options.urlArgs)for(var t=0,r=e.length;t<r;t++)e[t]=this._addUrlArgsToUrl(e[t]);return e},t.prototype.moduleIdToPaths=function(t){if(!0===this.nodeModulesMap[t])return this.isBuild()?[\"empty:\"]:[\"node|\"+t];var r,n=t\n;if(e.Utilities.endsWith(n,\".js\")||e.Utilities.isAbsolutePath(n))e.Utilities.endsWith(n,\".js\")||e.Utilities.containsQueryString(n)||(n+=\".js\"),r=[n];else for(var o=0,i=(r=this._applyPaths(n)).length;o<i;o++)this.isBuild()&&\"empty:\"===r[o]||(e.Utilities.isAbsolutePath(r[o])||(r[o]=this.options.baseUrl+r[o]),e.Utilities.endsWith(r[o],\".js\")||e.Utilities.containsQueryString(r[o])||(r[o]=r[o]+\".js\"));return this._addUrlArgsIfNecessaryToUrls(r)},t.prototype.requireToUrl=function(t){var r=t;return e.Utilities.isAbsolutePath(r)||(r=this._applyPaths(r)[0],e.Utilities.isAbsolutePath(r)||(r=this.options.baseUrl+r)),this._addUrlArgsIfNecessaryToUrl(r)},t.prototype.isBuild=function(){return this.options.isBuild},t.prototype.isDuplicateMessageIgnoredFor=function(e){return this.ignoreDuplicateModulesMap.hasOwnProperty(e)},t.prototype.getConfigForModule=function(e){if(this.options.config)return this.options.config[e]},t.prototype.shouldCatchError=function(){return this.options.catchError},\nt.prototype.shouldRecordStats=function(){return this.options.recordStats},t.prototype.onError=function(e){this.options.onError(e)},t}();e.Configuration=n}(AMDLoader||(AMDLoader={})),function(e){var t=function(){function e(e){this._env=e,this._scriptLoader=null,this._callbackMap={}}return e.prototype.load=function(e,t,i,s){var d=this;this._scriptLoader||(this._scriptLoader=this._env.isWebWorker?new n:this._env.isNode?new o(this._env):new r);var a={callback:i,errorback:s};this._callbackMap.hasOwnProperty(t)?this._callbackMap[t].push(a):(this._callbackMap[t]=[a],this._scriptLoader.load(e,t,(function(){return d.triggerCallback(t)}),(function(e){return d.triggerErrorback(t,e)})))},e.prototype.triggerCallback=function(e){var t=this._callbackMap[e];delete this._callbackMap[e];for(var r=0;r<t.length;r++)t[r].callback()},e.prototype.triggerErrorback=function(e,t){var r=this._callbackMap[e];delete this._callbackMap[e];for(var n=0;n<r.length;n++)r[n].errorback(t)},e}(),r=function(){function e(){}\nreturn e.prototype.attachListeners=function(e,t,r){var n=function(){e.removeEventListener(\"load\",o),e.removeEventListener(\"error\",i)},o=function(e){n(),t()},i=function(e){n(),r(e)};e.addEventListener(\"load\",o),e.addEventListener(\"error\",i)},e.prototype.load=function(e,t,r,n){var o=document.createElement(\"script\");o.setAttribute(\"async\",\"async\"),o.setAttribute(\"type\",\"text/javascript\"),this.attachListeners(o,r,n),o.setAttribute(\"src\",t);var i=e.getConfig().getOptionsLiteral().cspNonce;i&&o.setAttribute(\"nonce\",i),document.getElementsByTagName(\"head\")[0].appendChild(o)},e}(),n=function(){function e(){}return e.prototype.load=function(e,t,r,n){try{importScripts(t),r()}catch(e){n(e)}},e}(),o=function(){function t(e){this._env=e,this._didInitialize=!1,this._didPatchNodeRequire=!1}return t.prototype._init=function(e){this._didInitialize||(this._didInitialize=!0,this._fs=e(\"fs\"),this._vm=e(\"vm\"),this._path=e(\"path\"),this._crypto=e(\"crypto\"))},t.prototype._initNodeRequire=function(e,t){\nvar r=t.getConfig().getOptionsLiteral().nodeCachedData;if(r&&!this._didPatchNodeRequire){this._didPatchNodeRequire=!0;var n=this,o=e(\"module\");o.prototype._compile=function(e,i){var s,d=o.wrap(e.replace(/^#!.*/,\"\")),a=t.getRecorder(),u=n._getCachedDataPath(r,i),l={filename:i};try{var c=n._fs.readFileSync(u);s=c.slice(0,16),l.cachedData=c.slice(16),a.record(60,u)}catch(e){a.record(61,u)}var h=new n._vm.Script(d,l),f=h.runInThisContext(l),p=n._path.dirname(i),_=function(e){var t=e.constructor,r=function(t){try{return e.require(t)}finally{}};return r.resolve=function(r){return t._resolveFilename(r,e)},r.main=process.mainModule,r.extensions=t._extensions,r.cache=t._cache,r}(this),g=[this.exports,_,this,i,p,process,_commonjsGlobal,Buffer],v=f.apply(this.exports,g);return n._handleCachedData(h,d,u,!l.cachedData,t),n._verifyCachedData(h,d,u,s,t),v}}},t.prototype.load=function(r,n,o,i){var s=this,d=r.getConfig().getOptionsLiteral(),a=d.nodeRequire||e.global.nodeRequire,u=d.nodeInstrumenter||function(e){return e}\n;this._init(a),this._initNodeRequire(a,r);var l=r.getRecorder();if(/^node\\|/.test(n)){var c=n.split(\"|\"),h=null;try{h=a(c[1])}catch(e){return void i(e)}r.enqueueDefineAnonymousModule([],(function(){return h})),o()}else{n=e.Utilities.fileUriToFilePath(this._env.isWindows,n);var f=this._path.normalize(n),p=this._getElectronRendererScriptPathOrUri(f),_=Boolean(d.nodeCachedData),g=_?this._getCachedDataPath(d.nodeCachedData,n):void 0;this._readSourceAndCachedData(f,g,l,(function(e,n,d,a){if(e)i(e);else{var l;l=n.charCodeAt(0)===t._BOM?t._PREFIX+n.substring(1)+t._SUFFIX:t._PREFIX+n+t._SUFFIX,l=u(l,f);var c={filename:p,cachedData:d},h=s._createAndEvalScript(r,l,c,o,i);s._handleCachedData(h,l,g,_&&!d,r),s._verifyCachedData(h,l,g,a,r)}}))}},t.prototype._createAndEvalScript=function(t,r,n,o,i){var s=t.getRecorder();s.record(31,n.filename);var d=new this._vm.Script(r,n),a=d.runInThisContext(n),u=t.getGlobalAMDDefineFunc(),l=!1,c=function(){return l=!0,u.apply(null,arguments)};return c.amd=u.amd,\na.call(e.global,t.getGlobalAMDRequireFunc(),c,n.filename,this._path.dirname(n.filename)),s.record(32,n.filename),l?o():i(new Error(\"Didn't receive define call in \"+n.filename+\"!\")),d},t.prototype._getElectronRendererScriptPathOrUri=function(e){if(!this._env.isElectronRenderer)return e;var t=e.match(/^([a-z])\\:(.*)/i);return t?\"file:///\"+(t[1].toUpperCase()+\":\"+t[2]).replace(/\\\\/g,\"/\"):\"file://\"+e},t.prototype._getCachedDataPath=function(e,t){var r=this._crypto.createHash(\"md5\").update(t,\"utf8\").update(e.seed,\"utf8\").digest(\"hex\"),n=this._path.basename(t).replace(/\\.js$/,\"\");return this._path.join(e.path,n+\"-\"+r+\".code\")},t.prototype._handleCachedData=function(e,t,r,n,o){var i=this;e.cachedDataRejected?this._fs.unlink(r,(function(n){o.getRecorder().record(62,r),i._createAndWriteCachedData(e,t,r,o),n&&o.getConfig().onError(n)})):n&&this._createAndWriteCachedData(e,t,r,o)},t.prototype._createAndWriteCachedData=function(e,t,r,n){\nvar o=this,i=Math.ceil(n.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,d=0,a=void 0,u=function(){setTimeout((function(){a||(a=o._crypto.createHash(\"md5\").update(t,\"utf8\").digest());var i=e.createCachedData();0===i.length||i.length===s||d>=5||(s=i.length,o._fs.writeFile(r,Buffer.concat([a,i]),(function(e){e&&n.getConfig().onError(e),n.getRecorder().record(63,r),u()})))}),i*Math.pow(4,d++))};u()},t.prototype._readSourceAndCachedData=function(e,t,r,n){if(t){var o=void 0,i=void 0,s=void 0,d=2,a=function(e){e?n(e):0==--d&&n(void 0,o,i,s)};this._fs.readFile(e,{encoding:\"utf8\"},(function(e,t){o=t,a(e)})),this._fs.readFile(t,(function(e,n){!e&&n&&n.length>0?(s=n.slice(0,16),i=n.slice(16),r.record(60,t)):r.record(61,t),a()}))}else this._fs.readFile(e,{encoding:\"utf8\"},n)},t.prototype._verifyCachedData=function(e,t,r,n,o){var i=this;n&&(e.cachedDataRejected||setTimeout((function(){var e=i._crypto.createHash(\"md5\").update(t,\"utf8\").digest()\n;n.equals(e)||(o.getConfig().onError(new Error(\"FAILED TO VERIFY CACHED DATA, deleting stale '\"+r+\"' now, but a RESTART IS REQUIRED\")),i._fs.unlink(r,(function(e){return o.getConfig().onError(e)})))}),Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX=\"(function (require, define, __filename, __dirname) { \",t._SUFFIX=\"\\n});\",t}();e.createScriptLoader=function(e){return new t(e)}}(AMDLoader||(AMDLoader={})),function(e){var t=function(){function t(e){var t=e.lastIndexOf(\"/\");this.fromModulePath=-1!==t?e.substr(0,t+1):\"\"}return t._normalizeModuleId=function(e){var t,r=e;for(t=/\\/\\.\\//;t.test(r);)r=r.replace(t,\"/\");for(r=r.replace(/^\\.\\//g,\"\"),t=/\\/(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//;t.test(r);)r=r.replace(t,\"/\");return r=r.replace(/^(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//,\"\")},t.prototype.resolveModule=function(r){var n=r\n;return e.Utilities.isAbsolutePath(n)||(e.Utilities.startsWith(n,\"./\")||e.Utilities.startsWith(n,\"../\"))&&(n=t._normalizeModuleId(this.fromModulePath+n)),n},t.ROOT=new t(\"\"),t}();e.ModuleIdResolver=t;var r=function(){function t(e,t,r,n,o,i){this.id=e,this.strId=t,this.dependencies=r,this._callback=n,this._errorback=o,this.moduleIdResolver=i,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,r){try{return{returnedValue:t.apply(e.global,r),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,r,n,o){return t.isBuild()&&!e.Utilities.isAnonymousModule(r)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(n,o):{returnedValue:n.apply(e.global,o),producedError:null}},t.prototype.complete=function(r,n,o){this._isComplete=!0;var i=null;if(this._callback)if(\"function\"==typeof this._callback){r.record(21,this.strId)\n;var s=t._invokeFactory(n,this.strId,this._callback,o);i=s.producedError,r.record(22,this.strId),i||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(i){var d=e.ensureError(i);d.phase=\"factory\",d.moduleId=this.strId,this.error=d,n.onError(d)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e,!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=r;var n=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId(\"exports\"),this.getModuleId(\"module\"),this.getModuleId(\"require\")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,\nthis._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),o=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=o;var i=function(e,t,r){this.id=e,this.pluginId=t,this.pluginParam=r};e.PluginDependency=i;var s=function(){function s(t,r,o,i,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=r,this._loaderAvailableTimestamp=s,this._defineFunc=o,this._requireFunc=i,this._moduleIdProvider=new n,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},\ns.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var r=function(e){return e.replace(/\\\\/g,\"/\")},n=r(e),o=t.split(/\\n/),i=0;i<o.length;i++){var s=o[i].match(/(.*):(\\d+):(\\d+)\\)?$/);if(s){var d=s[1],a=s[2],u=s[3],l=Math.max(d.lastIndexOf(\" \")+1,d.lastIndexOf(\"(\")+1);if((d=r(d=d.substr(l)))===n){var c={line:parseInt(a,10),col:parseInt(u,10)};return 1===c.line&&(c.col-=\"(function (require, define, __filename, __dirname) { \".length),c}}}throw new Error(\"Could not correlate define call site for needle \"+e)},s.prototype.getBuildInfo=function(){if(!this._config.isBuild())return null;for(var e=[],t=0,r=0,n=this._modules2.length;r<n;r++){var o=this._modules2[r];if(o){var i=this._buildInfoPath[o.id]||null,d=this._buildInfoDefineStack[o.id]||null,a=this._buildInfoDependencies[o.id];e[t++]={id:o.strId,path:i,defineLocation:i&&d?s._findRelevantLocationInStack(i,d):null,\ndependencies:a,shim:null,exports:o.exports}}}return e},s.prototype.getRecorder=function(){return this._recorder||(this._config.shouldRecordStats()?this._recorder=new e.LoaderEventRecorder(this._loaderAvailableTimestamp):this._recorder=e.NullLoaderEventRecorder.INSTANCE),this._recorder},s.prototype.getLoaderEvents=function(){return this.getRecorder().getEvents()},s.prototype.enqueueDefineAnonymousModule=function(e,t){if(null!==this._currentAnnonymousDefineCall)throw new Error(\"Can only have one anonymous define call per script file\");var r=null;this._config.isBuild()&&(r=new Error(\"StackLocation\").stack||null),this._currentAnnonymousDefineCall={stack:r,dependencies:e,callback:t}},s.prototype.defineModule=function(e,n,o,i,s,d){var a=this;void 0===d&&(d=new t(e));var u=this._moduleIdProvider.getModuleId(e);if(this._modules2[u])this._config.isDuplicateMessageIgnoredFor(e)||console.warn(\"Duplicate definition of module '\"+e+\"'\");else{var l=new r(u,e,this._normalizeDependencies(n,d),o,i,d);this._modules2[u]=l,\nthis._config.isBuild()&&(this._buildInfoDefineStack[u]=s,this._buildInfoDependencies[u]=(l.dependencies||[]).map((function(e){return a._moduleIdProvider.getStrModuleId(e.id)}))),this._resolve(l)}},s.prototype._normalizeDependency=function(e,t){if(\"exports\"===e)return o.EXPORTS;if(\"module\"===e)return o.MODULE;if(\"require\"===e)return o.REQUIRE;var r=e.indexOf(\"!\");if(r>=0){var n=t.resolveModule(e.substr(0,r)),s=t.resolveModule(e.substr(r+1)),d=this._moduleIdProvider.getModuleId(n+\"!\"+s),a=this._moduleIdProvider.getModuleId(n);return new i(d,a,s)}return new o(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var r=[],n=0,o=0,i=e.length;o<i;o++)r[n++]=this._normalizeDependency(e[o],t);return r},s.prototype._relativeRequire=function(t,r,n,o){if(\"string\"==typeof r)return this.synchronousRequire(r,t);this.defineModule(e.Utilities.generateAnonymousModule(),r,n,o,null,t)},s.prototype.synchronousRequire=function(e,r){void 0===r&&(r=new t(e))\n;var n=this._normalizeDependency(e,r),o=this._modules2[n.id];if(!o)throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This is the first mention of this module!\");if(!o.isComplete())throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This module has not been resolved completely yet.\");if(o.error)throw o.error;return o.exports},s.prototype.configure=function(t,r){var n=this._config.shouldRecordStats();this._config=r?new e.Configuration(this._env,t):this._config.cloneAndMerge(t),this._config.shouldRecordStats()&&!n&&(this._recorder=null)},s.prototype.getConfig=function(){return this._config},s.prototype._onLoad=function(e){if(null!==this._currentAnnonymousDefineCall){var t=this._currentAnnonymousDefineCall;this._currentAnnonymousDefineCall=null,this.defineModule(this._moduleIdProvider.getStrModuleId(e),t.dependencies,t.callback,null,t.stack)}},s.prototype._createLoadError=function(t,r){\nvar n=this,o=this._moduleIdProvider.getStrModuleId(t),i=(this._inverseDependencies2[t]||[]).map((function(e){return n._moduleIdProvider.getStrModuleId(e)})),s=e.ensureError(r);return s.phase=\"loading\",s.moduleId=o,s.neededBy=i,s},s.prototype._onLoadError=function(e,t){var n=this._createLoadError(e,t);this._modules2[e]||(this._modules2[e]=new r(e,this._moduleIdProvider.getStrModuleId(e),[],(function(){}),(function(){}),null));for(var o=[],i=0,s=this._moduleIdProvider.getMaxModuleId();i<s;i++)o[i]=!1;var d=!1,a=[];for(a.push(e),o[e]=!0;a.length>0;){var u=a.shift(),l=this._modules2[u];l&&(d=l.onDependencyError(n)||d);var c=this._inverseDependencies2[u];if(c)for(i=0,s=c.length;i<s;i++){var h=c[i];o[h]||(a.push(h),o[h]=!0)}}d||this._config.onError(n)},s.prototype._hasDependencyPath=function(e,t){var r=this._modules2[e];if(!r)return!1;for(var n=[],o=0,i=this._moduleIdProvider.getMaxModuleId();o<i;o++)n[o]=!1;var s=[];for(s.push(r),n[e]=!0;s.length>0;){var d=s.shift().dependencies;if(d)for(o=0,i=d.length;o<i;o++){\nvar a=d[o];if(a.id===t)return!0;var u=this._modules2[a.id];u&&!n[a.id]&&(n[a.id]=!0,s.push(u))}}return!1},s.prototype._findCyclePath=function(e,t,r){if(e===t||50===r)return[e];var n=this._modules2[e];if(!n)return null;var o=n.dependencies;if(o)for(var i=0,s=o.length;i<s;i++){var d=this._findCyclePath(o[i].id,t,r+1);if(null!==d)return d.push(e),d}return null},s.prototype._createRequire=function(t){var r=this,n=function(e,n,o){return r._relativeRequire(t,e,n,o)};return n.toUrl=function(e){return r._config.requireToUrl(t.resolveModule(e))},n.getStats=function(){return r.getLoaderEvents()},n.__$__nodeRequire=e.global.nodeRequire,n},s.prototype._loadModule=function(e){var t=this;if(!this._modules2[e]&&!this._knownModules2[e]){this._knownModules2[e]=!0;var r=this._moduleIdProvider.getStrModuleId(e),n=this._config.moduleIdToPaths(r);this._env.isNode&&(-1===r.indexOf(\"/\")||/^@[^\\/]+\\/[^\\/]+$/.test(r))&&n.push(\"node|\"+r);var o=-1,i=function(r){if(++o>=n.length)t._onLoadError(e,r);else{var s=n[o],d=t.getRecorder()\n;if(t._config.isBuild()&&\"empty:\"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);d.record(10,s),t._scriptLoader.load(t,s,(function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),d.record(11,s),t._onLoad(e)}),(function(e){d.record(12,s),i(e)}))}};i(null)}},s.prototype._loadPluginDependency=function(e,r){var n=this;if(!this._modules2[r.id]&&!this._knownModules2[r.id]){this._knownModules2[r.id]=!0;var o=function(e){n.defineModule(n._moduleIdProvider.getStrModuleId(r.id),[],e,null,null)};o.error=function(e){n._config.onError(n._createLoadError(r.id,e))},e.load(r.pluginParam,this._createRequire(t.ROOT),o,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,r=e.dependencies;if(r)for(var n=0,s=r.length;n<s;n++){var d=r[n];if(d!==o.EXPORTS)if(d!==o.MODULE)if(d!==o.REQUIRE){var a=this._modules2[d.id];if(a&&a.isComplete()){if(a.error)return void e.onDependencyError(a.error);e.unresolvedDependenciesCount--\n}else if(this._hasDependencyPath(d.id,e.id)){console.warn(\"There is a dependency cycle between '\"+this._moduleIdProvider.getStrModuleId(d.id)+\"' and '\"+this._moduleIdProvider.getStrModuleId(e.id)+\"'. The cyclic path follows:\");var u=this._findCyclePath(d.id,e.id,0)||[];u.reverse(),u.push(d.id),console.warn(u.map((function(e){return t._moduleIdProvider.getStrModuleId(e)})).join(\" => \\n\")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[d.id]=this._inverseDependencies2[d.id]||[],this._inverseDependencies2[d.id].push(e.id),d instanceof i){var l=this._modules2[d.pluginId];if(l&&l.isComplete()){this._loadPluginDependency(l.exports,d);continue}var c=this._inversePluginDependencies2.get(d.pluginId);c||(c=[],this._inversePluginDependencies2.set(d.pluginId,c)),c.push(d),this._loadModule(d.pluginId)}else this._loadModule(d.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}\n0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,r=this.getRecorder();if(!e.isComplete()){var n=e.dependencies,i=[];if(n)for(var s=0,d=n.length;s<d;s++){var a=n[s];if(a!==o.EXPORTS)if(a!==o.MODULE)if(a!==o.REQUIRE){var u=this._modules2[a.id];i[s]=u?u.exports:null}else i[s]=this._createRequire(e.moduleIdResolver);else i[s]={id:e.strId,config:function(){return t._config.getConfigForModule(e.strId)}};else i[s]=e.exports}e.complete(r,this._config,i);var l=this._inverseDependencies2[e.id];if(this._inverseDependencies2[e.id]=null,l)for(s=0,d=l.length;s<d;s++){var c=l[s],h=this._modules2[c];h.unresolvedDependenciesCount--,0===h.unresolvedDependenciesCount&&this._onModuleComplete(h)}var f=this._inversePluginDependencies2.get(e.id);if(f){this._inversePluginDependencies2.delete(e.id);for(s=0,d=f.length;s<d;s++)this._loadPluginDependency(e.exports,f[s])}}},s}();e.ModuleManager=s}(AMDLoader||(AMDLoader={})),function(e){\nvar t=new e.Environment,r=null,n=function(e,t,n){\"string\"!=typeof e&&(n=t,t=e,e=null),\"object\"==typeof t&&Array.isArray(t)||(n=t,t=null),t||(t=[\"require\",\"exports\",\"module\"]),e?r.defineModule(e,t,n,null,null):r.enqueueDefineAnonymousModule(t,n)};n.amd={jQuery:!0};var o=function(e,t){void 0===t&&(t=!1),r.configure(e,t)},i=function(){if(1===arguments.length){if(arguments[0]instanceof Object&&!Array.isArray(arguments[0]))return void o(arguments[0]);if(\"string\"==typeof arguments[0])return r.synchronousRequire(arguments[0])}if(2!==arguments.length&&3!==arguments.length||!Array.isArray(arguments[0]))throw new Error(\"Unrecognized require call\");r.defineModule(e.Utilities.generateAnonymousModule(),arguments[0],arguments[1],arguments[2],null)};function s(){if(void 0!==e.global.require||\"undefined\"!=typeof require){var o=e.global.require||require;if(\"function\"==typeof o&&\"function\"==typeof o.resolve){var s=function(e){r.getRecorder().record(33,e);try{return o(e)}finally{r.getRecorder().record(34,e)}}\n;e.global.nodeRequire=s,i.nodeRequire=s,i.__$__nodeRequire=s}}t.isNode&&!t.isElectronRenderer?(module.exports=i,require=i):(t.isElectronRenderer||(e.global.define=n),e.global.require=i)}i.config=o,i.getConfig=function(){return r.getConfig().getOptionsLiteral()},i.reset=function(){r=r.reset()},i.getBuildInfo=function(){return r.getBuildInfo()},i.getStats=function(){return r.getLoaderEvents()},i.define=function(){return n.apply(null,arguments)},e.init=s,\"function\"==typeof e.global.define&&e.global.define.amd||(r=new e.ModuleManager(t,e.createScriptLoader(t),n,i,e.Utilities.getHighPerformanceTimestamp()),void 0!==e.global.require&&\"function\"!=typeof e.global.require&&i.config(e.global.require),(define=function(){return n.apply(null,arguments)}).amd=n.amd,\"undefined\"==typeof doNotInitLoader&&s())}(AMDLoader||(AMDLoader={}));\n//# sourceMappingURL=../../min-maps/vs/loader.js.map"
  },
  {
    "path": "app/assets/js/syntax-highlight.js",
    "content": "/*! highlight.js v9.12.0 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"!=typeof exports?e(exports):n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+\" \";if(o+=e.parentNode?e.parentNode.className:\"\",t=B.exec(o))return w(t[1])?t[1]:\"no-highlight\";for(o=o.split(/\\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:\"start\",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:\"start\"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return\" \"+e.nodeName+'=\"'+n(e.value).replace('\"',\"&quot;\")+'\"'}s+=\"<\"+t(e)+E.map.call(e.attributes,r).join(\"\")+\">\"}function u(e){s+=\"</\"+t(e)+\">\"}function c(e){(\"start\"===e.event?o:u)(e.node)}for(var l=0,s=\"\",f=[];e.length||r.length;){var g=i();if(s+=n(a.substring(l,g[0].offset)),l=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===l);f.reverse().forEach(o)}else\"start\"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return s+n(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),\"m\"+(e.cI?\"i\":\"\")+(r?\"g\":\"\"))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(\" \").forEach(function(e){var t=e.split(\"|\");o[t[0]]=[n,t[1]?Number(t[1]):1]})};\"string\"==typeof a.k?u(\"keyword\",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\\w+/,!0),i&&(a.bK&&(a.b=\"\\\\b(\"+a.bK.split(\" \").join(\"|\")+\")\\\\b\"),a.b||(a.b=/\\B|\\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\\B|\\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||\"\",a.eW&&i.tE&&(a.tE+=(a.e?\"|\":\"\")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l(\"self\"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?\"\\\\.?(\"+e.b+\")\\\\.?\":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join(\"|\"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function l(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?\"\":I.classPrefix,i='<span class=\"'+a,o=t?\"\":C;return i+=e+'\">',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a=\"\",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=l(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e=\"string\"==typeof E.sL;if(e&&!y[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=null!=E.sL?d():h(),k=\"\"}function v(e){L+=e.cN?p(e.cN,\"\",!0):\"\",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(L+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,\"\"),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme \"'+n+'\" for mode \"'+(E.cN||\"<unnamed>\")+'\"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: \"'+e+'\"');s(N);var R,E=i||N,x={},L=\"\";for(R=E;R!==N;R=R.parent)R.cN&&(L=p(R.cN,\"\",!0)+L);var k=\"\",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(L+=C);return{r:B,value:L,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf(\"Illegal\"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&\"\\n\"===e?\"<br>\":I.tabReplace?n.replace(/\\t/g,I.tabReplace):\"\"}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),n.innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\")):n=e,l=n.textContent,r=s?f(s,l,!0):g(l),t=u(n),t.length&&(o=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),o.innerHTML=r.value,r.value=c(t,u(o),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,s,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll(\"pre code\");E.forEach.call(e,d)}}function m(){addEventListener(\"DOMContentLoaded\",v,!1),addEventListener(\"load\",v,!1)}function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function R(){return x(y)}function w(e){return e=(e||\"\").toLowerCase(),y[e]||y[L[e]]}var E=[],x=Object.keys,y={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\\blang(?:uage)?-([\\w-]+)\\b/i,M=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,C=\"</span>\",I={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR=\"[a-zA-Z]\\\\w*\",e.UIR=\"[a-zA-Z_]\\\\w*\",e.NR=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",e.CNR=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",e.BNR=\"\\\\b(0b[01]+)\",e.RSR=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",e.BE={b:\"\\\\\\\\[\\\\s\\\\S]\",r:0},e.ASM={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[e.BE]},e.QSM={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[e.BE]},e.PWM={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},e.C=function(n,t,r){var a=e.inherit({cN:\"comment\",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",r:0}),a},e.CLCM=e.C(\"//\",\"$\"),e.CBCM=e.C(\"/\\\\*\",\"\\\\*/\"),e.HCM=e.C(\"#\",\"$\"),e.NM={cN:\"number\",b:e.NR,r:0},e.CNM={cN:\"number\",b:e.CNR,r:0},e.BNM={cN:\"number\",b:e.BNR,r:0},e.CSSNM={cN:\"number\",b:e.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",r:0},e.RM={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[e.BE,{b:/\\[/,e:/\\]/,r:0,c:[e.BE]}]},e.TM={cN:\"title\",b:e.IR,r:0},e.UTM={cN:\"title\",b:e.UIR,r:0},e.METHOD_GUARD={b:\"\\\\.\\\\s*\"+e.UIR,r:0},e});hljs.registerLanguage(\"ruby\",function(e){var b=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",r={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},c={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={b:\"#<\",e:\">\"},s=[e.C(\"#\",\"$\",{c:[c]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[c],r:10}),e.C(\"^__END__\",\"\\\\n$\")],n={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:r},t={cN:\"string\",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<(-?)\\w+$/,e:/^\\s*\\w+$/}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",endsParent:!0,k:r},d=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{b:\"<\\\\s*\",c:[{b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(s)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+\"::\"},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",r:0},{cN:\"symbol\",b:\":(?!\\\\s)\",c:[t,{b:b}],r:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{cN:\"params\",b:/\\|/,e:/\\|/,k:r},{b:\"(\"+e.RSR+\"|unless)\\\\s*\",k:\"unless\",c:[a,{cN:\"regexp\",c:[e.BE,n],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var l=\"[>?]>\",o=\"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\",u=\"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>\",w=[{b:/^\\s*=>/,starts:{e:\"$\",c:d}},{cN:\"meta\",b:\"^(\"+l+\"|\"+o+\"|\"+u+\")\",starts:{e:\"$\",c:d}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:r,i:/\\/\\*/,c:s.concat(w).concat(d)}});hljs.registerLanguage(\"yaml\",function(e){var b=\"true false yes no null\",a=\"^[ \\\\-]*\",r=\"[a-zA-Z_][\\\\w\\\\-]*\",t={cN:\"attr\",v:[{b:a+r+\":\"},{b:a+'\"'+r+'\":'},{b:a+\"'\"+r+\"':\"}]},c={cN:\"template-variable\",v:[{b:\"{{\",e:\"}}\"},{b:\"%{\",e:\"}\"}]},l={cN:\"string\",r:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,c]};return{cI:!0,aliases:[\"yml\",\"YAML\",\"yaml\"],c:[t,{cN:\"meta\",b:\"^---s*$\",r:10},{cN:\"string\",b:\"[\\\\|>] *$\",rE:!0,c:l.c,e:t.v[0].b},{b:\"<%[%=-]?\",e:\"[%-]?%>\",sL:\"ruby\",eB:!0,eE:!0,r:0},{cN:\"type\",b:\"!!\"+e.UIR},{cN:\"meta\",b:\"&\"+e.UIR+\"$\"},{cN:\"meta\",b:\"\\\\*\"+e.UIR+\"$\"},{cN:\"bullet\",b:\"^ *-\",r:0},e.HCM,{bK:b,k:{literal:b}},e.CNM,l]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},i=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",r:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]*\",r:0},{b:/\\/(?![ *])(\\\\\\/|.)*?\\/[gim]*(?=\\W|$)/}]},{b:\"@\"+n},{sL:\"javascript\",eB:!0,eE:!0,v:[{b:\"```\",e:\"```\"},{b:\"`\",e:\"`\"}]}];r.c=i;var s=e.inherit(e.TM,{b:n}),t=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",o={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(i)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:i.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+t,e:\"[-=]>\",rB:!0,c:[s,o]},{b:/[:\\(,=]\\s*/,r:0,c:[{cN:\"function\",b:t,e:\"[-=]>\",rB:!0,c:[o]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{b:n+\":\",e:\":\",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage(\"javascript\",function(e){var r=\"[A-Za-z$_][0-9A-Za-z$_]*\",t={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},a={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)\"},{b:\"\\\\b(0[oO][0-7]+)\"},{b:e.CNR}],r:0},n={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:t,c:[]},c={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\"],k:t,c:[{cN:\"meta\",r:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\\s*/,r:0,c:[{b:r+\"\\\\s*:\",rB:!0,r:0,c:[{cN:\"attr\",b:r,r:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+r+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:r},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b:/</,e:/(\\/\\w+|\\w+\\/)>/,sL:\"xml\",c:[{b:/<\\w+\\s*\\/>/,skip:!0},{b:/<\\w+/,e:/(\\/\\w+|\\w+\\/)>/,skip:!0,c:[{b:/<\\w+\\s*\\/>/,skip:!0},\"self\"]}]}],r:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:s}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor\",e:/\\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage(\"xml\",function(s){var e=\"[A-Za-z0-9\\\\._:-]+\",t={eW:!0,i:/</,r:0,c:[{cN:\"attr\",b:e,r:0},{b:/=\\s*/,r:0,c:[{cN:\"string\",endsParent:!0,v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\"],cI:!0,c:[{cN:\"meta\",b:\"<!DOCTYPE\",e:\">\",r:10,c:[{b:\"\\\\[\",e:\"\\\\]\"}]},s.C(\"<!--\",\"-->\",{r:10}),{b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",r:10},{b:/<\\?(php)?/,e:/\\?>/,sL:\"php\",c:[{b:\"/\\\\*\",e:\"\\\\*/\",skip:!0}]},{cN:\"tag\",b:\"<style(?=\\\\s|>|$)\",e:\">\",k:{name:\"style\"},c:[t],starts:{e:\"</style>\",rE:!0,sL:[\"css\",\"xml\"]}},{cN:\"tag\",b:\"<script(?=\\\\s|>|$)\",e:\">\",k:{name:\"script\"},c:[t],starts:{e:\"</script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\",\"xml\"]}},{cN:\"meta\",v:[{b:/<\\?xml/,e:/\\?>/,r:10},{b:/<\\?\\w+/,e:/\\?>/}]},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"name\",b:/[^\\/><\\s]+/,r:0},t]}]}});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"section\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",r:0},{cN:\"bullet\",b:\"^([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",r:0}]},{cN:\"quote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"^```w*s*$\",e:\"^```s*$\"},{b:\"`.+?`\"},{b:\"^( {4}| )\",e:\"$\",r:0}]},{b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,r:0},{cN:\"link\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"symbol\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],r:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:\"symbol\",b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:\"link\",b:/:\\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage(\"rust\",function(e){var t=\"([ui](8|16|32|64|128|size)|f(32|64))?\",r=\"alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default\",n=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{aliases:[\"rs\"],k:{keyword:r,literal:\"true false Some None Ok Err\",built_in:n},l:e.IR+\"!?\",i:\"</\",c:[e.CLCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:\"string\",v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:\"symbol\",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:\"number\",v:[{b:\"\\\\b0b([01_]+)\"+t},{b:\"\\\\b0o([0-7_]+)\"+t},{b:\"\\\\b0x([A-Fa-f0-9_]+)\"+t},{b:\"\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\"+t}],r:0},{cN:\"function\",bK:\"fn\",e:\"(\\\\(|<)\",eE:!0,c:[e.UTM]},{cN:\"meta\",b:\"#\\\\!?\\\\[\",e:\"\\\\]\",c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{cN:\"class\",bK:\"type\",e:\";\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"\\\\S\"},{cN:\"class\",bK:\"trait enum struct union\",e:\"{\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"[\\\\w\\\\d]\"},{b:e.IR+\"::\",k:{built_in:n}},{b:\"->\"}]}});hljs.registerLanguage(\"css\",function(e){var c=\"[a-zA-Z-][a-zA-Z0-9_-]*\",t={b:/[A-Z\\_\\.\\-]+\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(font-face|page)\",l:\"[a-z-]+\",k:\"font-face page\"},{b:\"@\",e:\"[{;]\",i:/:/,c:[{cN:\"keyword\",b:/\\w+/},{b:/\\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:c,r:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},s={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]},a={cN:\"string\",b:/'/,e:/'/};return{aliases:[\"sh\",\"zsh\"],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"meta\",b:/^#![^\\n]+sh\\s*$/,r:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage(\"makefile\",function(e){var i={cN:\"variable\",v:[{b:\"\\\\$\\\\(\"+e.UIR+\"\\\\)\",c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,i]},a={cN:\"variable\",b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\"},c:[i]},n={b:\"^\"+e.UIR+\"\\\\s*[:+?]?=\",i:\"\\\\n\",rB:!0,c:[{b:\"^\"+e.UIR,e:\"[:+?]?=\",eE:!0}]},t={cN:\"meta\",b:/^\\.PHONY:/,e:/$/,k:{\"meta-keyword\":\".PHONY\"},l:/[\\.\\w]+/},l={cN:\"section\",b:/^[^\\s]+:/,e:/$/,c:[i]};return{aliases:[\"mk\",\"mak\"],k:\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\",l:/[\\w-]+/,c:[e.HCM,i,r,a,n,t,l]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"meta\",r:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"comment\",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/\\*{5}/,e:/\\*{5}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"addition\",b:\"^\\\\!\",e:\"$\"}]}});hljs.registerLanguage(\"json\",function(e){var i={literal:\"true false null\"},n=[e.QSM,e.CNM],r={e:\",\",eW:!0,eE:!0,c:n,k:i},t={b:\"{\",e:\"}\",c:[{cN:\"attr\",b:/\"/,e:/\"/,c:[e.BE],i:\"\\\\n\"},e.inherit(r,{b:/:/})],i:\"\\\\S\"},c={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(r)],i:\"\\\\S\"};return n.splice(n.length,0,t,c),{c:n,k:i,i:\"\\\\S\"}});hljs.registerLanguage(\"less\",function(e){var r=\"[\\\\w-]+\",t=\"(\"+r+\"|@{\"+r+\"})\",a=[],c=[],s=function(e){return{cN:\"string\",b:\"~?\"+e+\".*?\"+e}},b=function(e,r,t){return{cN:e,b:r,r:t}},n={b:\"\\\\(\",e:\"\\\\)\",c:c,r:0};c.push(e.CLCM,e.CBCM,s(\"'\"),s('\"'),e.CSSNM,{b:\"(url|data-uri)\\\\(\",starts:{cN:\"string\",e:\"[\\\\)\\\\n]\",eE:!0}},b(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),n,b(\"variable\",\"@@?\"+r,10),b(\"variable\",\"@{\"+r+\"}\"),b(\"built_in\",\"~?`[^`]*?`\"),{cN:\"attribute\",b:r+\"\\\\s*:\",e:\":\",rB:!0,eE:!0},{cN:\"meta\",b:\"!important\"});var i=c.concat({b:\"{\",e:\"}\",c:a}),o={bK:\"when\",eW:!0,c:[{bK:\"and not\"}].concat(c)},u={b:t+\"\\\\s*:\",rB:!0,e:\"[;}]\",r:0,c:[{cN:\"attribute\",b:t,e:\":\",eE:!0,starts:{eW:!0,i:\"[<=$]\",r:0,c:c}}]},l={cN:\"keyword\",b:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{e:\"[;{}]\",rE:!0,c:c,r:0}},C={cN:\"variable\",v:[{b:\"@\"+r+\"\\\\s*:\",r:15},{b:\"@\"+r}],starts:{e:\"[;}]\",rE:!0,c:i}},p={v:[{b:\"[\\\\.#:&\\\\[>]\",e:\"[;{}]\"},{b:t,e:\"{\"}],rB:!0,rE:!0,i:\"[<='$\\\"]\",r:0,c:[e.CLCM,e.CBCM,o,b(\"keyword\",\"all\\\\b\"),b(\"variable\",\"@{\"+r+\"}\"),b(\"selector-tag\",t+\"%?\",0),b(\"selector-id\",\"#\"+t),b(\"selector-class\",\"\\\\.\"+t,0),b(\"selector-tag\",\"&\",0),{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"\\\\(\",e:\"\\\\)\",c:i},{b:\"!important\"}]};return a.push(e.CLCM,e.CBCM,l,C,u,p),{cI:!0,i:\"[=>'/<($\\\"]\",c:a}});"
  },
  {
    "path": "app/bg/README.md",
    "content": "# BG (background)\n\nThis folder contains backend code that drives Beaker's main electron process.\n\nNotable folders:\n\n - `lib` is reusable code that's specific to backend.\n - `dat` manages the dat daemon and any dat-specific behaviors.\n - `dbs` contains all sqlite databases and manages any data persisted to them.\n - `filesystem` manages the user's primary hyperdrive and manages any data which is persisted to it. This includes the dats library and users.\n - `protocols` contains the custom URL scheme handlers.\n - `rpc-manifests` contains the RPC manifests for internal RPC that's leveraged by `/app/fg` components.\n - `ui` contains the code which manages windows, tabs, subwindows, and everything about the user interface.\n - `web-apis` contains all interfaces which are exposed to the userland environment via RPC. It currently contains both fg and bg code (which maybe ought to change).\n"
  },
  {
    "path": "app/bg/adblocker.js",
    "content": "import { FiltersEngine, Request } from '@cliqz/adblocker'\nimport fetch from 'cross-fetch'\nimport * as settingsDb from '../bg/dbs/settings'\n\nconst beakerUrls = /^(beaker|blob)/\n\n// globals\n// =\n\nvar blocker\n\n// exported API\n// =\n\nexport async function setup () {\n  const adblockLists = await settingsDb.get('adblock_lists')\n  const activeLists = adblockLists.filter(list => list.selected)\n\n  blocker = undefined\n  if (activeLists.length >= 1) {\n    blocker = await FiltersEngine.fromLists(fetch, activeLists.map(list => list.url))\n  }\n}\n\nexport function onBeforeRequest (details, callback) {\n  if (!blocker) {\n    return callback({cancel: false})\n  }\n\n  // Matching network filters\n  const {\n    match, // `true` if there is a match\n    redirect, // data url to redirect to if any\n    // exception, // instance of NetworkFilter exception if any\n    // filter, // instance of NetworkFilter which matched\n  } = blocker.match(Request.fromRawDetails({ url: details.url }))\n  const shouldBeBlocked = !details.url.match(beakerUrls) && match\n  callback({cancel: shouldBeBlocked, redirectURL: redirect})\n}"
  },
  {
    "path": "app/bg/analytics.js",
    "content": "import { app } from 'electron'\nimport path from 'path'\nimport crypto from 'crypto'\nimport https from 'https'\nimport querystring from 'querystring'\nimport ms from 'ms'\nimport jetpack from 'fs-jetpack'\nimport concat from 'concat-stream'\nimport osName from 'os-name'\nimport * as settingsDb from './dbs/settings'\nimport {ANALYTICS_DATA_FILE, ANALYTICS_SERVER, ANALYTICS_CHECKIN_INTERVAL} from '../lib/const'\nimport * as logLib from './logger'\nconst logger = logLib.child({category: 'analytics'})\n\n// exported methods\n// =\n\nexport function setup () {\n  setTimeout(checkin, ms('3s'))\n}\n\n// internal methods\n// =\n\nasync function checkin () {\n  // enabled?\n  var isEnabled = await settingsDb.get('analytics_enabled')\n  if (isEnabled == 1) {\n    try {\n      var pingData = await readPingData()\n      if ((Date.now() - (pingData.lastPingTime || 0)) > ANALYTICS_CHECKIN_INTERVAL) {\n        await sendPing(pingData)\n        pingData.lastPingTime = Date.now()\n        await writePingData(pingData)\n      }\n    } catch (e) {\n      // failed, we'll reschedule another ping in 24 hours\n    }\n  }\n\n  // schedule another ping check in 3 hours\n  var to = setTimeout(checkin, ms('3h'))\n  to.unref()\n}\n\nfunction sendPing (pingData) {\n  return new Promise((resolve, reject) => {\n    var qs = querystring.stringify({userId: pingData.id, os: osName(), beakerVersion: app.getVersion()})\n    logger.info(`Sending ping to ${ANALYTICS_SERVER}: ${qs}`)\n\n    var req = https.request({\n      method: 'POST',\n      hostname: ANALYTICS_SERVER,\n      path: '/ping?' + qs\n    }, (res) => {\n      if (res.statusCode === 204) {\n        logger.info('Ping succeeded')\n        resolve()\n      } else {\n        res.setEncoding('utf8')\n        res.pipe(concat(body => logger.info(`Ping failed: ${res.statusCode} ${JSON.stringify(body)}`)))\n        reject()\n      }\n    })\n    req.on('error', err => {\n      logger.info(`Ping failed: ${err.toString()}`)\n      reject()\n    })\n    req.end()\n  })\n}\n\nasync function readPingData () {\n  var data = await jetpack.readAsync(path.join(app.getPath('userData'), ANALYTICS_DATA_FILE), 'json')\n  return data || {lastPingTime: 0, id: crypto.randomBytes(32).toString('hex')}\n}\n\nasync function writePingData (data) {\n  return jetpack.writeAsync(path.join(app.getPath('userData'), ANALYTICS_DATA_FILE), data)\n}\n"
  },
  {
    "path": "app/bg/browser.js",
    "content": "import { app, dialog, BrowserWindow, webContents, ipcMain, shell, Menu, screen, session, nativeImage } from 'electron'\nimport { autoUpdater } from 'electron-updater'\nimport os from 'os'\nimport path from 'path'\nimport fs from 'fs'\nimport jetpack from 'fs-jetpack'\nimport ICO from 'icojs'\nimport toIco from 'to-ico'\nimport emitStream from 'emit-stream'\nimport EventEmitter from 'events'\nimport LRU from 'lru'\nconst exec = require('util').promisify(require('child_process').exec)\nimport * as logLib from './logger'\nimport * as adblocker from './adblocker'\nconst logger = logLib.child({category: 'browser'})\nimport * as settingsDb from './dbs/settings'\nimport { convertDatArchive } from './dat/index'\nimport datDns from './dat/dns'\nimport { open as openUrl } from './open-url'\nimport * as windows from './ui/windows'\nimport { createMenuItem as createContextMenuItem, shouldShowMenuItem as shouldShowContextMenuItem } from './ui/context-menu'\nimport * as tabManager from './ui/tabs/manager'\nimport { updateSetupState } from './ui/setup-flow'\nimport * as modals from './ui/subwindows/modals'\nimport * as siteInfo from './ui/subwindows/site-info'\nimport { findWebContentsParentWindow } from './lib/electron'\nimport * as hyperDaemon from './hyper/daemon'\nimport * as bookmarks from './filesystem/bookmarks'\nimport { getDriveIdent } from './filesystem/index'\nimport * as wcTrust from './wc-trust'\nimport { spawnAndExecuteJs } from './lib/electron'\n\n// constants\n// =\n\nconst IS_FROM_SOURCE = (process.defaultApp || /node_modules[\\\\/]electron[\\\\/]/.test(process.execPath))\nconst IS_LINUX = !(/^win/.test(process.platform)) && process.platform !== 'darwin'\nconst DOT_DESKTOP_FILENAME = 'appimagekit-beaker-browser.desktop'\nconst isBrowserUpdatesSupported = !(IS_LINUX || IS_FROM_SOURCE) // linux is temporarily not supported\n\n// how long between scheduled auto updates?\nconst SCHEDULED_AUTO_UPDATE_DELAY = 24 * 60 * 60 * 1e3 // once a day\n\n// possible updater states\nconst UPDATER_STATUS_IDLE = 'idle'\nconst UPDATER_STATUS_CHECKING = 'checking'\nconst UPDATER_STATUS_DOWNLOADING = 'downloading'\nconst UPDATER_STATUS_DOWNLOADED = 'downloaded'\n\n// globals\n// =\n\n// dont automatically check for updates (need to respect user preference)\nautoUpdater.autoDownload = false\n\n// what's the updater doing?\nvar updaterState = UPDATER_STATUS_IDLE\nvar updaterError = undefined // has there been an error?\n\n// content-type tracker\nvar resourceContentTypes = new LRU(100) // URL -> Content-Type\n\n// certificate tracker\nvar originCerts = new LRU(100) // hostname -> {issuerName, subjectName, validExpiry}\n\n// events emitted to rpc clients\nvar browserEvents = new EventEmitter()\n\nprocess.on('unhandledRejection', (reason, p) => {\n  console.error('Unhandled Rejection at: Promise', p, 'reason:', reason, reason.stack)\n  logger.error(`Unhandled Rejection at: Promise ${p.toString()} reason: ${reason.toString()} ${reason.stack}`)\n})\nprocess.on('uncaughtException', (err) => {\n  console.error('Uncaught exception:', err)\n  logger.error(`Uncaught exception: ${err.toString()}`)\n})\n\n// exported methods\n// =\n\nexport async function setup () {\n  wcTrust.setup()\n\n  // setup auto-updater\n  if (isBrowserUpdatesSupported) {\n    try {\n      autoUpdater.setFeedURL(getAutoUpdaterFeedSettings())\n      autoUpdater.on('update-available', onUpdateAvailable)\n      autoUpdater.on('update-not-available', onUpdateNotAvailable)\n      autoUpdater.on('update-downloaded', onUpdateDownloaded)\n      autoUpdater.on('error', onUpdateError)\n    } catch (e) {\n      logger.error(`Auto-updater error: ${e.toString()}`)\n    }\n    setTimeout(scheduledAutoUpdate, 15e3) // wait 15s for first run\n  }\n\n  // wire up events\n  app.on('web-contents-created', onWebContentsCreated)\n\n  // window.prompt handling\n  //  - we have use ipc directly instead of using rpc, because we need custom\n  //    response-lifecycle management in the main thread\n  ipcMain.on('page-prompt-dialog', async (e, message, def) => {\n    var wc = e.sender\n    var res = await modals.create(e.sender, 'prompt', {message, default: def}).catch(e => false)\n    wc.focus()\n    e.returnValue = res && res.value ? res.value : false\n  })\n\n  // HACK\n  // Electron has an issue where browserviews fail to calculate click regions after a resize\n  // https://github.com/electron/electron/issues/14038\n  // we can solve this by forcing a recalculation after every resize\n  // -prf\n  ipcMain.on('resize-hackfix', (e, message) => {\n    var win = findWebContentsParentWindow(e.sender)\n    if (win) {\n      win.webContents.executeJavaScript(`if (window.forceUpdateDragRegions) { window.forceUpdateDragRegions() }; undefined`)\n    }\n  })\n\n  // request blocking for security purposes\n  session.defaultSession.webRequest.onBeforeRequest((details, cb) => {\n    if (details.url.startsWith('asset:') || details.url.startsWith('beaker:')) {\n      if (details.resourceType === 'mainFrame') {\n        // allow toplevel navigation\n        return cb({cancel: false})\n      } else if (details.webContentsId && wcTrust.isWcTrusted(details.webContentsId)) {\n        // allow trusted WCs\n        return cb({cancel: false})\n      } else {\n        // disallow all other requesters\n        return cb({cancel: true})\n      }\n    } else if (details.url.startsWith('hyper://private')) {\n      if (!details.webContentsId) {\n        if (details.resourceType === 'mainFrame') {\n          // allow toplevel navigation\n          return cb({cancel: false})\n        } else {\n          // not enough info, cancel\n          return cb({cancel: true})\n        }\n      }\n      let wc = webContents.fromId(details.webContentsId)\n      if (/^(beaker:\\/\\/|hyper:\\/\\/private\\/)/.test(wc.getURL())) {\n        // allow access from self and from beaker\n        cb({cancel: false})\n      } else {\n        cb({cancel: true})\n      }\n    } else {\n      adblocker.onBeforeRequest(details, cb)\n    }\n  })\n\n  // HACK\n  // Electron doesn't give us a convenient way to check the content-types of responses\n  // or to fetch the certs of a hostname\n  // so we track the last 100 responses' headers to accomplish this\n  // -prf\n  session.defaultSession.webRequest.onCompleted(onCompleted)\n  session.defaultSession.setCertificateVerifyProc((request, cb) => {\n    originCerts.set('https://' + request.hostname + '/', {\n      issuerName: request.certificate.issuerName,\n      subjectName: request.certificate.subjectName,\n      validExpiry: request.certificate.validExpiry\n    })\n    cb(request.errorCode)\n  })\n}\n\nexport const WEBAPI = {\n  createEventsStream,\n  getInfo,\n  getDaemonStatus,\n  getDaemonNetworkStatus,\n  checkForUpdates,\n  restartBrowser,\n\n  getSetting,\n  getSettings,\n  setSetting,\n  updateAdblocker,\n  updateSetupState,\n  migrate08to09,\n  setStartPageBackgroundImage,\n\n  getDefaultProtocolSettings,\n  setAsDefaultProtocolClient,\n  removeAsDefaultProtocolClient,\n\n  fetchBody,\n  downloadURL,\n\n  convertDat,\n\n  getResourceContentType,\n  getCertificate,\n\n  listBuiltinFavicons,\n  getBuiltinFavicon,\n  uploadFavicon,\n  imageToIco,\n\n  reconnectHyperdriveDaemon () {\n    return hyperDaemon.setup()\n  },\n\n  executeShellWindowCommand,\n  toggleSiteInfo,\n  toggleLiveReloading,\n  setWindowDimensions,\n  setWindowDragModeEnabled,\n  moveWindow,\n  maximizeWindow,\n  toggleWindowMaximized,\n  minimizeWindow,\n  closeWindow,\n  resizeSiteInfo,\n  refreshTabState,\n\n  spawnAndExecuteJs,\n\n  showOpenDialog,\n  showContextMenu,\n  async showModal (name, opts) {\n    return modals.create(this.sender, name, opts)\n  },\n  newWindow,\n  newPane,\n  gotoUrl,\n  getPageUrl,\n  refreshPage,\n  focusPage,\n  executeJavaScriptInPage,\n  injectCssInPage,\n  uninjectCssInPage,\n  openUrl: (url, opts) => { openUrl(url, opts) }, // dont return anything\n  openFolder,\n  doWebcontentsCmd,\n  doTest,\n  closeModal: () => {}, // DEPRECATED, probably safe to remove soon\n}\n\nexport function fetchBody (url) {\n  return new Promise((resolve) => {\n    var http = url.startsWith('https') ? require('https') : require('http')\n\n    http.get(url, (res) => {\n      var body = ''\n      res.setEncoding('utf8')\n      res.on('data', (data) => { body += data })\n      res.on('end', () => resolve(body))\n    })\n  })\n}\n\nexport async function downloadURL (url) {\n  this.sender.downloadURL(url)\n}\n\nexport async function convertDat (url) {\n  var win = findWebContentsParentWindow(this.sender)\n  var key = await datDns.resolveName(url)\n  var driveUrl = await convertDatArchive(win, key)\n  tabManager.create(win, driveUrl, {setActive: true})\n}\n\nexport function getResourceContentType (url) {\n  let i = url.indexOf('#')\n  if (i !== -1) url = url.slice(0, i) // strip the fragment\n  return resourceContentTypes.get(url)\n}\n\nexport async function getCertificate (url) {\n  try {\n    let urlp = new URL(url)\n    url = urlp.protocol + '//' + urlp.hostname + '/'\n  } catch (e) {}\n  var cert = originCerts.get(url)\n  if (cert) {\n    return Object.assign({type: 'tls'}, cert)\n  } else if (url.startsWith('beaker:')) {\n    return {type: 'beaker'}\n  } else if (url.startsWith('hyper://')) {\n    let ident = await getDriveIdent(url, true)\n    return {type: 'hyperdrive', ident}\n  }\n}\n\nexport async function listBuiltinFavicons ({filter, offset, limit} = {}) {\n  if (filter) {\n    filter = new RegExp(filter, 'i')\n  }\n\n  // list files in assets/favicons and filter on the name\n  var dir = jetpack.cwd(__dirname).cwd('assets/favicons')\n  var items = (await dir.listAsync())\n    .filter(filename => {\n      if (filter && !filter.test(filename)) {\n        return false\n      }\n      return filename.endsWith('.ico')\n    })\n  return items.slice(offset || 0, limit || Number.POSITIVE_INFINITY)\n}\n\nexport async function getBuiltinFavicon (name) {\n  var dir = jetpack.cwd(__dirname).cwd('assets/favicons')\n  return dir.readAsync(name, 'buffer')\n}\n\nexport async function uploadFavicon () {\n  let favicon = dialog.showOpenDialogSync({\n    title: 'Upload Favicon...',\n    defaultPath: app.getPath('home'),\n    buttonLabel: 'Upload Favicon',\n    filters: [\n      { name: 'Images', extensions: ['png', 'ico', 'jpg'] }\n    ],\n    properties: ['openFile']\n  })\n\n  if (!favicon) return\n\n  let faviconBuffer = await jetpack.readAsync(favicon[0], 'buffer')\n  let extension = path.extname(favicon[0])\n\n  if (extension === '.png') {\n    return toIco(faviconBuffer, {resize: true})\n  }\n  if (extension === '.jpg') {\n    let imageToPng = nativeImage.createFromBuffer(faviconBuffer).toPNG()\n    return toIco(imageToPng, {resize: true})\n  }\n  if (extension === '.ico' && ICO.isICO(faviconBuffer)) {\n    return faviconBuffer\n  }\n}\n\nexport async function imageToIco (image) {\n  // TODO expand on this function to be png/jpg to ico\n  let imageToPng = nativeImage.createFromDataURL(image).toPNG()\n  return toIco(imageToPng, {resize: true})\n}\n\nasync function executeShellWindowCommand (...args) {\n  var win = findWebContentsParentWindow(this.sender)\n  if (!win) return\n  win.webContents.send('command', ...args)\n}\n\nasync function toggleSiteInfo (override) {\n  var win = findWebContentsParentWindow(this.sender)\n  if (override === true) {\n    siteInfo.show(win)\n  } else if (override === false) {\n    siteInfo.hide(win)\n  } else {\n    siteInfo.toggle(win)\n  }\n}\n\nexport async function toggleLiveReloading (enabled) {\n  var win = findWebContentsParentWindow(this.sender)\n  tabManager.getActive(win).toggleLiveReloading(enabled)\n}\n\nexport async function setWindowDimensions ({width, height} = {}) {\n  var win = findWebContentsParentWindow(this.sender)\n  var [currentWidth, currentHeight] = win.getSize()\n  width = width || currentWidth\n  height = height || currentHeight\n  win.setSize(width, height)\n}\n\nvar _windowDragInterval = undefined\nexport async function setWindowDragModeEnabled (enabled) {\n  var win = findWebContentsParentWindow(this.sender)\n  if (enabled) {\n    if (_windowDragInterval) return\n\n    // poll the mouse cursor every 15ms\n    var lastPt = screen.getCursorScreenPoint()\n    _windowDragInterval = setInterval(() => {\n      var newPt = screen.getCursorScreenPoint()\n\n      // if the mouse has moved, move the window accordingly\n      var delta = {x: newPt.x - lastPt.x, y: newPt.y - lastPt.y}\n      if (delta.x || delta.y) {\n        var pos = win.getPosition()\n        win.setPosition(pos[0] + delta.x, pos[1] + delta.y)\n        lastPt = newPt\n      }\n\n      // if the mouse has moved out of the window, stop\n      var bounds = win.getBounds()\n      if (newPt.x < bounds.x || newPt.y < bounds.y || newPt.x > (bounds.x + bounds.width) || newPt.y > (bounds.y + bounds.height)) {\n        clearInterval(_windowDragInterval)\n        _windowDragInterval = undefined\n      }\n    }, 15)\n  } else {\n    // stop the poll\n    if (!_windowDragInterval) return\n    clearInterval(_windowDragInterval)\n    _windowDragInterval = undefined\n  }\n}\n\nexport async function moveWindow (x, y) {\n  var win = findWebContentsParentWindow(this.sender)\n  var pos = win.getPosition()\n  win.setPosition(pos[0] + x, pos[1] + y)\n}\n\nexport async function maximizeWindow () {\n  var win = findWebContentsParentWindow(this.sender)\n  win.maximize()\n}\n\nasync function toggleWindowMaximized () {\n  var win = findWebContentsParentWindow(this.sender)\n  if (win.isMaximized()) {\n    win.unmaximize()\n  } else {\n    win.maximize()\n  }\n}\n\nasync function minimizeWindow () {\n  var win = findWebContentsParentWindow(this.sender)\n  win.minimize()\n}\n\nasync function closeWindow () {\n  var win = findWebContentsParentWindow(this.sender)\n  win.close()\n}\n\nexport function resizeSiteInfo (bounds) {\n  var win = findWebContentsParentWindow(this.sender)\n  if (!win) return\n  siteInfo.resize(win, bounds)\n}\n\nexport async function refreshTabState () {\n  var win = findWebContentsParentWindow(this.sender)\n  if (!win) return\n  var tab = tabManager.getActive(win)\n  if (!tab) return\n  await tab.refreshState()\n}\n\nexport function setStartPageBackgroundImage (srcPath, appendCurrentDir) {\n  if (appendCurrentDir) {\n    srcPath = path.join(__dirname, `/${srcPath}`)\n  }\n\n  var destPath = path.join(app.getPath('userData'), 'start-background-image')\n\n  return new Promise((resolve) => {\n    if (srcPath) {\n      fs.readFile(srcPath, (_, data) => {\n        fs.writeFile(destPath, data, () => resolve())\n      })\n    } else {\n      fs.unlink(destPath, () => resolve())\n    }\n  })\n}\n\nexport async function getDefaultProtocolSettings () {\n  if (IS_LINUX) {\n    // HACK\n    // xdb-settings doesnt currently handle apps that you can't `which`\n    // we can just use xdg-mime directly instead\n    // see https://github.com/beakerbrowser/beaker/issues/915\n    // -prf\n    let [httpHandler, hyperHandler, datHandler] = await Promise.all([\n      // If there is no default specified, be sure to catch any error\n      // from exec and return '' otherwise Promise.all errors out.\n      exec('xdg-mime query default \"x-scheme-handler/http\"').catch(err => ''),\n      exec('xdg-mime query default \"x-scheme-handler/hyper\"').catch(err => ''),\n      exec('xdg-mime query default \"x-scheme-handler/dat\"').catch(err => '')\n    ])\n    if (httpHandler && httpHandler.stdout) httpHandler = httpHandler.stdout\n    if (hyperHandler && hyperHandler.stdout) hyperHandler = hyperHandler.stdout\n    if (datHandler && datHandler.stdout) datHandler = datHandler.stdout\n    return {\n      http: (httpHandler || '').toString().trim() === DOT_DESKTOP_FILENAME,\n      hyper: (hyperHandler || '').toString().trim() === DOT_DESKTOP_FILENAME,\n      dat: (datHandler || '').toString().trim() === DOT_DESKTOP_FILENAME\n    }\n  }\n\n  return Promise.resolve(['http', 'hyper', 'dat'].reduce((res, x) => {\n    res[x] = app.isDefaultProtocolClient(x)\n    return res\n  }, {}))\n}\n\nexport async function setAsDefaultProtocolClient (protocol) {\n  if (IS_LINUX) {\n    // HACK\n    // xdb-settings doesnt currently handle apps that you can't `which`\n    // we can just use xdg-mime directly instead\n    // see https://github.com/beakerbrowser/beaker/issues/915\n    // -prf\n    await exec(`xdg-mime default ${DOT_DESKTOP_FILENAME} \"x-scheme-handler/${protocol}\"`)\n    return true\n  }\n  return Promise.resolve(app.setAsDefaultProtocolClient(protocol))\n}\n\nexport function removeAsDefaultProtocolClient (protocol) {\n  return Promise.resolve(app.removeAsDefaultProtocolClient(protocol))\n}\n\nexport function getInfo () {\n  return {\n    version: app.getVersion(),\n    electronVersion: process.versions.electron,\n    chromiumVersion: process.versions.chrome,\n    nodeVersion: process.versions.node,\n    platform: os.platform(),\n    updater: {\n      isBrowserUpdatesSupported,\n      error: updaterError,\n      state: updaterState\n    },\n    paths: {\n      userData: app.getPath('userData')\n    },\n    isDaemonActive: hyperDaemon.isActive()\n  }\n}\n\nexport async function getDaemonStatus () {\n  return hyperDaemon.getDaemonStatus()\n}\n\nexport async function getDaemonNetworkStatus () {\n  // bit of a hack, this\n  return Array.from(hyperDaemon.getClient().drive._drives, drive => {\n    var key = drive.drive.key.toString('hex')\n    return {\n      key,\n      peers: hyperDaemon.listPeerAddresses(key)\n    }\n  })\n}\n\nexport function checkForUpdates (opts = {}) {\n  // dont overlap\n  if (updaterState != UPDATER_STATUS_IDLE) { return }\n\n  // update global state\n  logger.info('[AUTO-UPDATE] Checking for a new version.')\n  updaterError = undefined\n  setUpdaterState(UPDATER_STATUS_CHECKING)\n  if (opts.prerelease) {\n    logger.info('[AUTO-UPDATE] Jumping to pre-releases.')\n    autoUpdater.allowPrerelease = true\n  }\n  autoUpdater.checkForUpdates()\n\n  // just return a resolve; results will be emitted\n  return Promise.resolve()\n}\n\nexport function restartBrowser () {\n  if (updaterState == UPDATER_STATUS_DOWNLOADED) {\n    // run the update installer\n    autoUpdater.quitAndInstall()\n    logger.info('[AUTO-UPDATE] Quitting and installing.')\n  } else {\n    logger.info('Restarting Beaker by restartBrowser()')\n    // do a simple restart\n    app.relaunch()\n    setTimeout(() => app.exit(0), 1e3)\n  }\n}\n\nexport function getSetting (key) {\n  return settingsDb.get(key)\n}\n\nexport function getSettings () {\n  return settingsDb.getAll()\n}\n\nexport function setSetting (key, value) {\n  return settingsDb.set(key, value)\n}\n\nexport function updateAdblocker () {\n  return adblocker.setup()\n}\n\nexport async function migrate08to09 () {\n  await bookmarks.migrateBookmarksFromSqlite()\n}\n\nconst SCROLLBAR_WIDTH = 16\nexport async function capturePage (url, opts = {}) {\n  var width = opts.width || 1024\n  var height = opts.height || 768\n\n  var win = new BrowserWindow({\n    width: width + SCROLLBAR_WIDTH,\n    height,\n    show: false,\n    webPreferences: {\n      preload: 'file://' + path.join(app.getAppPath(), 'fg', 'webview-preload', 'index.build.js'),\n      contextIsolation: true,\n      webviewTag: false,\n      sandbox: true,\n      defaultEncoding: 'utf-8',\n      nativeWindowOpen: true,\n      nodeIntegration: false,\n      navigateOnDragDrop: true,\n      enableRemoteModule: false\n    }\n  })\n  win.loadURL(url)\n\n  // wait for load\n  await new Promise((resolve, reject) => {\n    win.webContents.on('did-finish-load', resolve)\n  })\n  await new Promise(r => setTimeout(r, 200)) // give an extra 200ms for rendering\n\n  // capture the page\n  var image = await win.webContents.capturePage({x: 0, y: 0, width, height})\n\n  // resize if asked\n  if (opts.resizeTo) {\n    image = image.resize(opts.resizeTo)\n  }\n\n  return image\n}\n\n// rpc methods\n// =\n\nfunction createEventsStream () {\n  return emitStream(browserEvents)\n}\n\nasync function showOpenDialog (opts = {}) {\n  var wc = this.sender\n  var res = await dialog.showOpenDialog({\n    title: opts.title,\n    buttonLabel: opts.buttonLabel,\n    filters: opts.filters,\n    properties: opts.properties,\n    defaultPath: opts.defaultPath\n  })\n  wc.focus() // return focus back to the the page\n  return res.filePaths\n}\n\nfunction showContextMenu (menuDefinition) {\n  var webContents = this.sender\n  var tab = tabManager.findTab(webContents)\n  return new Promise(resolve => {\n    var cursorPos = screen.getCursorScreenPoint()\n\n    // add a click item to all menu items\n    menuDefinition = massageItems(menuDefinition)\n    function massageItems (items) {\n      return items.map(item => {\n        if (item.id && item.id.startsWith('builtin:')) {\n          let id = item.id.slice('builtin:'.length)\n          let opts = {webContents, tab, x: cursorPos.x, y: cursorPos.y}\n          if (shouldShowContextMenuItem(id, opts)) {\n            return createContextMenuItem(id, opts)\n          }\n          return false\n        } else if (item.type === 'submenu' && Array.isArray(item.submenu)) {\n          item.submenu = massageItems(item.submenu)\n        } else if (item.type !== 'separator' && item.id) {\n          item.click = clickHandler\n        }\n        return item\n      }).filter(Boolean)\n    }\n\n    // track the selection\n    var selection\n    function clickHandler (item) {\n      selection = item.id\n    }\n\n    // show the menu\n    var win = findWebContentsParentWindow(this.sender)\n    var menu = Menu.buildFromTemplate(menuDefinition)\n    menu.popup({window: win, callback () {\n      resolve(selection)\n    }})\n  })\n}\n\nasync function newWindow (state = {}) {\n  windows.createShellWindow(state)\n}\n\nasync function newPane (url, opts = {}) {\n  var tab = tabManager.findTab(this.sender)\n  var pane = tab && tab.findPane(this.sender)\n  if (tab && pane) {\n    if (opts.replaceSameOrigin) {\n      let existingPane = tab.findPaneByOrigin(url)\n      if (existingPane) {\n        existingPane.loadURL(url)\n        return\n      }\n    }\n    tab.createPane({url, setActive: true, after: pane, splitDir: opts.splitDir || 'vert'})\n  }\n}\n\nasync function gotoUrl (url) {\n  getSenderTab(this.sender).loadURL(url)\n}\n\nasync function getPageUrl () {\n  return getSenderTab(this.sender).url\n}\n\nasync function refreshPage () {\n  getSenderTab(this.sender).webContents.reload()\n}\n\nasync function focusPage () {\n  getSenderTab(this.sender).focus()\n}\n\nasync function executeJavaScriptInPage (js) {\n  return getSenderTab(this.sender).webContents.executeJavaScript(js, true)\n    .catch(err => { \n      if (err.toString().includes('Script failed to execute')) {\n        throw \"Injected script failed to execute\"\n      }\n      throw err\n    })\n}\n\nasync function injectCssInPage (css) {\n  return getSenderTab(this.sender).webContents.insertCSS(css)\n}\n\nasync function uninjectCssInPage (key) {\n  return getSenderTab(this.sender).webContents.removeInsertedCSS(key)\n}\n\nfunction openFolder (folderPath) {\n  shell.openExternal('file://' + folderPath)\n}\n\nasync function doWebcontentsCmd (method, wcId, ...args) {\n  var wc = webContents.fromId(+wcId)\n  if (!wc) throw new Error(`WebContents not found (${wcId})`)\n  return wc[method](...args)\n}\n\nasync function doTest (test) {\n}\n\n// internal methods\n// =\n\nfunction getSenderTab (sender) {\n  let tab = tabManager.findTab(sender)\n  if (tab) return tab\n  var win = findWebContentsParentWindow(sender)\n  return tabManager.getActive(win)\n}\n\nfunction setUpdaterState (state) {\n  updaterState = state\n  browserEvents.emit('updater-state-changed', {state})\n}\n\nfunction getAutoUpdaterFeedSettings () {\n  return {\n    provider: 'github',\n    repo: 'beaker',\n    owner: 'beakerbrowser',\n    vPrefixedTagName: false\n  }\n}\n\n// run a daily check for new updates\nfunction scheduledAutoUpdate () {\n  settingsDb.get('auto_update_enabled').then(v => {\n    // if auto updates are enabled, run the check\n    if (+v === 1) { checkForUpdates() }\n\n    // schedule next check\n    setTimeout(scheduledAutoUpdate, SCHEDULED_AUTO_UPDATE_DELAY)\n  })\n}\n\n// event handlers\n// =\n\nfunction onUpdateAvailable () {\n  logger.info('[AUTO-UPDATE] New version available. Downloading...')\n  autoUpdater.downloadUpdate()\n  setUpdaterState(UPDATER_STATUS_DOWNLOADING)\n}\n\nfunction onUpdateNotAvailable () {\n  logger.info('[AUTO-UPDATE] No browser update available.')\n  setUpdaterState(UPDATER_STATUS_IDLE)\n}\n\nfunction onUpdateDownloaded () {\n  logger.info('[AUTO-UPDATE] New browser version downloaded. Ready to install.')\n  setUpdaterState(UPDATER_STATUS_DOWNLOADED)\n}\n\nfunction onUpdateError (e) {\n  console.error(e)\n  logger.error(`[AUTO-UPDATE] error: ${e.toString()}`)\n  setUpdaterState(UPDATER_STATUS_IDLE)\n\n  var message = (e.toString() || '').split('\\n')[0]\n  if (message.includes('[object Object]')) {\n    message = typeof e.message === 'string' ? e.message : 'Updater failed to contact the server'\n  }\n  updaterError = {message}\n  browserEvents.emit('updater-error', updaterError)\n}\n\nfunction onWebContentsCreated (e, webContents) {\n  webContents.on('will-prevent-unload', onWillPreventUnload)\n  webContents.on('remote-require', e => {\n    // do not allow\n    e.preventDefault()\n  })\n  webContents.on('remote-get-global', e => {\n    // do not allow\n    e.preventDefault()\n  })\n}\n\nfunction onWillPreventUnload (e) {\n  var choice = dialog.showMessageBoxSync({\n    type: 'question',\n    buttons: ['Leave', 'Stay'],\n    title: 'Do you want to leave this site?',\n    message: 'Changes you made may not be saved.',\n    defaultId: 0,\n    cancelId: 1\n  })\n  var leave = (choice === 0)\n  if (leave) {\n    e.preventDefault()\n  }\n}\n\nfunction onCompleted (details) {\n  wcTrust.onWebRequestCompleted(details)\n  function set (v) {\n    resourceContentTypes.set(details.url, Array.isArray(v) ? v[0] : v)\n  }\n  if (!details.responseHeaders) return\n  if ('Content-Type' in details.responseHeaders) {\n    set(details.responseHeaders['Content-Type'])\n  } else if ('content-type' in details.responseHeaders) {\n    set(details.responseHeaders['content-type'])\n  }\n}\n"
  },
  {
    "path": "app/bg/child-processes.js",
    "content": "import * as childProcess from 'child_process'\n\n// globals\n// =\n\nvar processes = {}\nprocess.on('exit', closeAll)\n\n// exported api\n// =\n\nexport async function spawn (id, modulePath, ...args) {\n  var fullModulePath = require.resolve(modulePath)\n  const opts = {\n    stdio: 'inherit',\n    env: Object.assign({}, process.env, {\n      ELECTRON_RUN_AS_NODE: 1\n    })\n  }\n  console.log(`Starting external process ${id}`)\n  var proc = childProcess.fork(fullModulePath, args, opts)\n    .on('error', console.log)\n    .on('close', () => {\n      delete processes[id]\n    })\n\n  proc.send({start: true})\n\n  await new Promise((resolve, reject) => {\n    proc.once('message', resolve)\n  })\n\n  processes[id] = proc\n  return proc\n}\n\nexport function close (id) {\n  processes[id].kill()\n  delete processes[id]\n}\n\nexport function closeAll () {\n  for (let id in processes) {\n    close(id)\n  }\n}"
  },
  {
    "path": "app/bg/dat/converter/README.md",
    "content": "# Dat Converter\n\nThis converter tool is maintained in a separate folder with its own node_modules to avoid conflicts with sodium-native."
  },
  {
    "path": "app/bg/dat/converter/index.js",
    "content": "require('@beaker/dat-legacy-tools/bin.js')"
  },
  {
    "path": "app/bg/dat/converter/package.json",
    "content": "{\n  \"dependencies\": {\n    \"@beaker/dat-legacy-tools\": \"^1.1.0\"\n  }\n}\n"
  },
  {
    "path": "app/bg/dat/dns.js",
    "content": "import { InvalidDomainName } from 'beaker-error-constants'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'dat', subcategory: 'dns'})\n\nconst DNS_PROVIDERS = [['cloudflare-dns.com', '/dns-query'], ['dns.google.com', '/resolve']]\nconst DNS_PROVIDER = DNS_PROVIDERS[Math.random() > 0.5 ? 1 : 0]\n\n// instantate a dns cache and export it\nimport datDnsFactory from 'dat-dns'\n\nconst datDns = datDnsFactory({\n  dnsHost: DNS_PROVIDER[0],\n  dnsPath: DNS_PROVIDER[1]\n})\n\nexport default datDns\n\n// hook up log events\ndatDns.on('resolved', details => logger.debug('Resolved', {details}))\ndatDns.on('failed', details => logger.debug('Failed lookup', {details}))\ndatDns.on('cache-flushed', details => logger.debug('Cache flushed'))\n\n// wrap resolveName() with a better error\nconst resolveName = datDns.resolveName\ndatDns.resolveName = async function (name, opts, cb) {\n  return resolveName.apply(datDns, arguments)\n    .catch(_ => {\n      throw new InvalidDomainName()\n    })\n}\n"
  },
  {
    "path": "app/bg/dat/index.js",
    "content": "import { app } from 'electron'\nimport * as childProcess from 'child_process'\nimport { tmpdir } from 'os'\nimport { join } from 'path'\nimport mkdirp from 'mkdirp'\nimport rimraf from 'rimraf'\nimport pda from 'pauls-dat-api2'\nimport hyper from '../hyper/index'\nimport * as filesystem from '../filesystem/index'\nimport * as prompts from '../ui/subwindows/prompts'\n\nvar tmpdirs = {}\nexport function getStoragePathFor (key) {\n  if (tmpdirs[key]) return tmpdirs[key]\n  tmpdirs[key] = join(tmpdir(), 'dat', key)\n  return tmpdirs[key]\n}\n\nvar downloadPromises = {}\nexport async function downloadDat (key) {\n  if (downloadPromises[key]) {\n    return downloadPromises[key]\n  }\n\n  var storagePath = getStoragePathFor(key)\n  rimraf.sync(storagePath)\n  mkdirp.sync(storagePath)\n\n  downloadPromises[key] = runConvertProcess(\n    app.getPath('userData'),\n    key,\n    storagePath\n  )\n\n  return downloadPromises[key]\n}\n\nexport async function convertDatArchive (win, key) {\n  await downloadDat(key)\n\n  var storagePath = getStoragePathFor(key)\n  var drive = await hyper.drives.createNewDrive()\n\n  // calculate size of import for progress\n  var numFilesToImport = 0\n  let stats = await pda.exportFilesystemToArchive({\n    srcPath: storagePath,\n    dstArchive: drive.session.drive,\n    dstPath: '/',\n    inplaceImport: true,\n    dryRun: true\n  })\n  numFilesToImport += stats.fileCount\n\n  var prompt = await prompts.create(win.webContents, 'progress', {label: 'Converting dat...'})\n  try {\n    await pda.exportFilesystemToArchive({\n      srcPath: storagePath,\n      dstArchive: drive.session.drive,\n      dstPath: '/',\n      inplaceImport: true,\n      progress (stats) {\n        prompt.webContents.executeJavaScript(`updateProgress(${stats.fileCount / numFilesToImport}); undefined`)\n      }\n    })\n  } finally {\n    prompts.close(prompt.tab)\n  }\n\n  await drive.pda.rename('/dat.json', drive.session.drive, '/index.json').catch(e => undefined)\n  await filesystem.configDrive(drive.url)\n  return drive.url\n}\n\nasync function runConvertProcess (...args) {\n  var fullModulePath = join(__dirname, 'bg', 'dat', 'converter', 'index.js')\n  const opts = {\n    stdio: 'inherit',\n    env: Object.assign({}, process.env, {\n      ELECTRON_RUN_AS_NODE: 1,\n      ELECTRON_NO_ASAR: 1\n    })\n  }\n  var proc = childProcess.fork(fullModulePath, args, opts)\n\n  return new Promise((resolve, reject) => {\n    proc.on('error', reject)\n    proc.on('close', resolve)\n  })\n}\n"
  },
  {
    "path": "app/bg/dbs/archives.js",
    "content": "import path from 'path'\nimport url from 'url'\nimport mkdirp from 'mkdirp'\nimport Events from 'events'\nimport datEncoding from 'dat-encoding'\nimport jetpack from 'fs-jetpack'\nimport { InvalidArchiveKeyError } from 'beaker-error-constants'\nimport * as db from './profile-data-db'\nimport lock from '../../lib/lock'\nimport { HYPERDRIVE_HASH_REGEX } from '../../lib/const'\nimport * as hyperDns from '../hyper/dns'\n\n// typedefs\n// =\n\n/**\n * @typedef {import('../dat/daemon').DaemonHyperdrive} DaemonHyperdrive\n *\n * @typedef {Object} LibraryArchiveMeta\n * @prop {string} key\n * @prop {string} url\n * @prop {string} title\n * @prop {string} description\n * @prop {string} type\n * @prop {string} memberOf\n * @prop {number} mtime\n * @prop {number} size\n * @prop {string} author\n * @prop {string} forkOf\n * @prop {boolean} writable\n * @prop {number} lastAccessTime\n * @prop {number} lastLibraryAccessTime\n *\n * @typedef {Object} MinimalLibraryArchiveRecord\n * @prop {string} key\n */\n\n// globals\n// =\n\nvar datPath/** @type string - path to the dat folder */\nvar events = new Events()\n\n// exported methods\n// =\n\n/**\n * @param {Object} opts\n * @param {string} opts.userDataPath\n */\nexport function setup (opts) {\n  // make sure the folders exist\n  datPath = path.join(opts.userDataPath, 'Dat')\n  mkdirp.sync(path.join(datPath, 'Archives'))\n}\n\n/**\n * @returns {string}\n */\nexport function getDatPath () {\n  return datPath\n}\n\n/**\n * @description Get the path to an archive's files.\n * @param {string | Buffer | DaemonHyperdrive} archiveOrKey\n * @returns {string}\n */\n//\nexport function getArchiveMetaPath (archiveOrKey) {\n  var key /** @type string */\n  if (typeof archiveOrKey === 'string') {\n    key = archiveOrKey\n  } else if (Buffer.isBuffer(archiveOrKey)) {\n    key = datEncoding.toStr(archiveOrKey)\n  } else {\n    key = datEncoding.toStr(archiveOrKey.key)\n  }\n  return path.join(datPath, 'Archives', 'Meta', key.slice(0, 2), key.slice(2))\n}\n\n/**\n * @description Delete all db entries and files for an archive.\n * @param {string} key\n * @returns {Promise<number>}\n */\nexport async function deleteArchive (key) {\n  const path = getArchiveMetaPath(key)\n  const info = await jetpack.inspectTreeAsync(path)\n  await Promise.all([\n    db.run(`DELETE FROM archives WHERE key=?`, key),\n    db.run(`DELETE FROM archives_meta WHERE key=?`, key),\n    jetpack.removeAsync(path)\n  ])\n  return info ? info.size : 0\n}\n\nexport const on = events.on.bind(events)\nexport const addListener = events.addListener.bind(events)\nexport const removeListener = events.removeListener.bind(events)\n\n/**\n * @description Upsert the last-access time.\n * @param {string | Buffer} key\n * @param {string} [timeVar]\n * @param {number} [value]\n * @returns {Promise<void>}\n */\nexport async function touch (key, timeVar = 'lastAccessTime', value = -1) {\n  var release = await lock('archives-db:meta')\n  try {\n    if (timeVar !== 'lastAccessTime' && timeVar !== 'lastLibraryAccessTime') {\n      timeVar = 'lastAccessTime'\n    }\n    if (value === -1) value = Date.now()\n    var keyStr = datEncoding.toStr(key)\n    await db.run(`UPDATE archives_meta SET ${timeVar}=? WHERE key=?`, [value, keyStr])\n    await db.run(`INSERT OR IGNORE INTO archives_meta (key, ${timeVar}) VALUES (?, ?)`, [keyStr, value])\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} key\n * @returns {Promise<boolean>}\n */\nexport async function hasMeta (key) {\n  // massage inputs\n  var keyStr = typeof key !== 'string' ? datEncoding.toStr(key) : key\n  if (!HYPERDRIVE_HASH_REGEX.test(keyStr)) {\n    try {\n      keyStr = await hyperDns.resolveName(keyStr)\n    } catch (e) {\n      return false\n    }\n  }\n\n  // fetch\n  var meta = await db.get(`\n    SELECT\n        archives_meta.key\n      FROM archives_meta\n      WHERE archives_meta.key = ?\n  `, [keyStr])\n  return !!meta\n}\n\n/**\n * @description\n * Get a single archive's metadata.\n * Returns an empty object on not-found.\n * @param {string | Buffer} key\n * @param {Object} [opts]\n * @param {boolean} [opts.noDefault]\n * @returns {Promise<LibraryArchiveMeta>}\n */\nexport async function getMeta (key, {noDefault} = {noDefault: false}) {\n  // massage inputs\n  var keyStr = typeof key !== 'string' ? datEncoding.toStr(key) : key\n  var origKeyStr = keyStr\n\n  // validate inputs\n  if (!HYPERDRIVE_HASH_REGEX.test(keyStr)) {\n    try {\n      keyStr = await hyperDns.resolveName(keyStr)\n    } catch (e) {\n      return noDefault ? undefined : defaultMeta(keyStr, origKeyStr)\n    }\n  }\n\n  // fetch\n  var meta = await db.get(`\n    SELECT\n        archives_meta.*,\n        dat_dns.name as dnsName\n      FROM archives_meta\n      LEFT JOIN dat_dns ON dat_dns.key = archives_meta.key AND dat_dns.isCurrent = 1\n      WHERE archives_meta.key = ?\n      GROUP BY archives_meta.key\n  `, [keyStr])\n  if (!meta) {\n    return noDefault ? undefined : defaultMeta(keyStr, origKeyStr)\n  }\n\n  // massage some values\n  meta.url = `hyper://${meta.dnsName || meta.key}/`\n  delete meta.dnsName\n  meta.writable = !!meta.isOwner\n  meta.memberOf = meta.memberOf || undefined\n\n  // remove old attrs\n  delete meta.isOwner\n  delete meta.createdByTitle\n  delete meta.createdByUrl\n  delete meta.metaSize\n  delete meta.stagingSize\n  delete meta.stagingSizeLessIgnored\n\n  return meta\n}\n\n/**\n * @description Write an archive's metadata.\n * @param {string | Buffer} key\n * @param {LibraryArchiveMeta} [value]\n * @returns {Promise<void>}\n */\nexport async function setMeta (key, value) {\n  // massage inputs\n  var keyStr = datEncoding.toStr(key)\n\n  // validate inputs\n  if (!HYPERDRIVE_HASH_REGEX.test(keyStr)) {\n    throw new InvalidArchiveKeyError()\n  }\n  if (!value || typeof value !== 'object') {\n    return // dont bother\n  }\n\n  // extract the desired values\n  var {title, description, type, memberOf, size, author, forkOf, mtime, writable} = value\n  title = typeof title === 'string' ? title : ''\n  description = typeof description === 'string' ? description : ''\n  type = typeof type === 'string' ? type : ''\n  memberOf = typeof memberOf === 'string' ? memberOf : ''\n  var isOwnerFlag = flag(writable)\n  if (typeof author === 'string') author = normalizeDriveUrl(author)\n  if (typeof forkOf === 'string') forkOf = normalizeDriveUrl(forkOf)\n\n  // write\n  var release = await lock('archives-db:meta')\n  var {lastAccessTime, lastLibraryAccessTime} = await getMeta(keyStr)\n  try {\n    await db.run(`\n      INSERT OR REPLACE INTO\n        archives_meta (key, title, description, type, memberOf, mtime, size, author, forkOf, isOwner, lastAccessTime, lastLibraryAccessTime)\n        VALUES        (?,   ?,     ?,           ?,    ?,        ?,     ?,    ?,      ?,      ?,       ?,              ?)\n    `, [keyStr, title, description, type, memberOf, mtime, size, author, forkOf, isOwnerFlag, lastAccessTime, lastLibraryAccessTime])\n  } finally {\n    release()\n  }\n  events.emit('update:archive-meta', keyStr, value)\n}\n\nexport function listLegacyArchives () {\n  return db.all(`SELECT archives.*, archives_meta.title from archives JOIN archives_meta ON archives_meta.key = archives.key WHERE archives.isSaved = 1`)\n}\n\nexport function removeLegacyArchive (key) {\n  return db.all(`UPDATE archives SET isSaved = 0 WHERE key = ?`, [key])\n}\n\n// internal methods\n// =\n\n/**\n * @param {string} key\n * @param {string} name\n * @returns {LibraryArchiveMeta}\n */\nfunction defaultMeta (key, name) {\n  return {\n    key,\n    url: `hyper://${name}/`,\n    title: undefined,\n    description: undefined,\n    type: undefined,\n    memberOf: undefined,\n    author: undefined,\n    forkOf: undefined,\n    mtime: 0,\n    writable: false,\n    lastAccessTime: 0,\n    lastLibraryAccessTime: 0,\n    size: 0\n  }\n}\n\n/**\n * @param {boolean} b\n * @returns {number}\n */\nfunction flag (b) {\n  return b ? 1 : 0\n}\n\n/**\n * @param {string} originURL\n * @returns {string}\n */\nexport function extractOrigin (originURL) {\n  var urlp = url.parse(originURL)\n  if (!urlp || !urlp.host || !urlp.protocol) return\n  return (urlp.protocol + (urlp.slashes ? '//' : '') + urlp.host)\n}\n\nfunction normalizeDriveUrl (url) {\n  var match = url.match(HYPERDRIVE_HASH_REGEX)\n  if (match) {\n    return `hyper://${match[0]}/`\n  }\n  return extractOrigin(url)\n}"
  },
  {
    "path": "app/bg/dbs/audit-log.js",
    "content": "import sqlite3 from 'sqlite3'\nimport path from 'path'\nimport { parseDriveUrl } from '../../lib/urls'\nimport knex from '../lib/knex'\nimport { cbPromise } from '../../lib/functions'\nimport { setupSqliteDB } from '../lib/db'\nimport EventEmitter from 'events'\nimport { Readable } from 'stream'\n\n// globals\n// =\n\nvar db\nvar migrations\nvar events = new EventEmitter()\n\n// exported methods\n// =\n\nexport const WEBAPI = {\n  listAuditLog: list,\n  streamAuditLog: stream,\n  getAuditLogStats: stats\n}\n\n/**\n * @param {Object} opts\n * @param {string} opts.userDataPath\n */\nexport async function setup (opts) {\n  // open database\n  var dbPath = path.join(opts.userDataPath, 'AuditLog')\n  db = new sqlite3.Database(dbPath)\n  await setupSqliteDB(db, {migrations}, '[AUDIT-LOG]')\n  db.run('delete from hyperdrive_ops;') // clear history\n}\n\nexport async function record (caller, method, args, writeSize, fn, opts) {\n  var ts = Date.now()\n  var res\n  try {\n    res = await fn()\n    return res\n  } finally {\n    var runtime = Date.now() - ts\n    if (!opts || !opts.ignoreFast || runtime > 100) {\n      var target\n      if (args.url) {\n        target = extractHostname(args.url)\n        delete args.url\n      }\n      caller = extractOrigin(caller)\n      if (method === 'query' && args.drive) {\n        // massage the opts\n        args = Object.assign({}, args)\n        if (Array.isArray(args.drive)) {\n          args.drive = args.drive.map(d => d.url)\n        } else {\n          args.drive = args.drive.url\n        }\n      }\n      insert('hyperdrive_ops', {\n        caller,\n        method,\n        target,\n        args: args ? JSON.stringify(args) : args,\n        writeSize,\n        ts,\n        runtime\n      }, res)\n      if (writeSize) insert('hyperdrive_write_stats', {caller, writeSize})\n    }\n  }\n}\n\nexport async function list ({keys, caller, offset, limit} = {keys: [], caller: undefined, offset: 0, limit: 100}) {\n  var query = knex('hyperdrive_ops').select(...(keys || [])).offset(offset).limit(limit).orderBy('rowid', 'desc')\n  if (caller) {\n    query = query.where({caller: extractOrigin(caller)})\n  }\n  var queryAsSql = query.toSQL()\n  return cbPromise(cb => db.all(queryAsSql.sql, queryAsSql.bindings, cb))\n}\n\nexport async function stream ({caller, includeResponse} = {caller: undefined, includeResponse: false}) {\n  if (caller) caller = extractOrigin(caller)\n  var s = new Readable({\n    read () {},\n    objectMode: true\n  })\n  const onData = (detail, response) => {\n    if (caller && detail.caller !== caller) return\n    if (includeResponse) detail.response = response\n    s.push(['data', {detail}])\n  }\n  events.on('insert', onData)\n  s.on('close', e => events.removeListener('insert', onData))\n  return s\n}\n\nexport async function stats () {\n  var query = knex('hyperdrive_ops').select().orderBy('runtime', 'desc').toSQL()\n  var rows = await cbPromise(cb => db.all(query.sql, query.bindings, cb))\n  var stats = {\n    runtime: {\n      avg: 0,\n      stdDev: 0,\n      longest10: rows.slice(0, 10)\n    }\n  }\n  stats.runtime.avg = rows.reduce((acc, row) => acc + row.runtime, 0) / rows.length\n  stats.runtime.stdDev = Math.sqrt(\n   (rows\n      .map(row => Math.pow(row.runtime - stats.runtime.avg, 2)) // (v-mean)^2\n      .reduce((acc, v) => acc + v, 0)\n    ) / rows.length // averaged\n  )\n  return stats\n}\n\n// internal methods\n// =\n\nfunction insert (table, data, response) {\n  var query = knex(table).insert(data)\n  var queryAsSql = query.toSQL()\n  db.run(queryAsSql.sql, queryAsSql.bindings)\n  events.emit('insert', data, response)\n}\n\n/**\n * @param {string} originURL\n * @returns {string}\n */\nfunction extractOrigin (originURL) {\n  if (!originURL || !originURL.includes('://')) return originURL\n  var urlp = parseDriveUrl(originURL)\n  if (!urlp || !urlp.host || !urlp.protocol) return\n  return (urlp.protocol + '//' + urlp.host + (urlp.port ? `:${urlp.port}` : ''))\n}\n\n/**\n * @param {string} originURL\n * @returns {string}\n */\nfunction extractHostname (originURL) {\n  var urlp = parseDriveUrl(originURL)\n  return urlp.host\n}\n\nmigrations = [\n  // version 1\n  function (cb) {\n    db.exec(`\n      CREATE TABLE hyperdrive_ops (\n        caller NOT NULL,\n        method NOT NULL,\n        target,\n        args,\n        ts,\n        runtime,\n        writeSize\n      );\n      CREATE INDEX hyperdrive_ops_caller ON hyperdrive_ops (caller);\n      CREATE INDEX hyperdrive_ops_target ON hyperdrive_ops (target);\n      CREATE TABLE hyperdrive_write_stats (\n        caller NOT NULL,\n        writeSize\n      );\n      CREATE INDEX hyperdrive_write_stats_caller ON hyperdrive_write_stats (caller);\n      PRAGMA user_version = 1;\n    `, cb)\n  }\n]\n"
  },
  {
    "path": "app/bg/dbs/dat-dns.js",
    "content": "import EventEmitter from 'events'\nimport * as db from './profile-data-db'\nimport knex from '../lib/knex'\nimport lock from '../../lib/lock'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} DatDnsRecord\n * @prop {string} name\n * @prop {string} key\n * @prop {boolean} isCurrent\n * @prop {number} lastConfirmedAt\n * @prop {number} firstConfirmedAt\n */\n\n// globals\n// =\n\nconst events = new EventEmitter()\n\n// exported api\n// =\n\nexport const on = events.on.bind(events)\n\nexport const once = events.once.bind(events)\nexport const removeListener = events.removeListener.bind(events)\n\n/**\n * @param {string} name\n * @returns {Promise<DatDnsRecord>}\n */\nexport const getCurrentByName = async function (name) {\n  return massageDNSRecord(await db.get(knex('dat_dns').where({name, isCurrent: 1})))\n}\n\n/**\n * @param {string} key\n * @returns {Promise<DatDnsRecord>}\n */\nexport const getCurrentByKey = async function (key) {\n  return massageDNSRecord(await db.get(knex('dat_dns').where({key, isCurrent: 1})))\n}\n\n/**\n * @param {Object} opts\n * @param {string} opts.key\n * @param {string} opts.name\n * @returns {Promise<void>}\n */\nexport const update = async function ({key, name}) {\n  var release = await lock('dat-dns-update:' + name)\n  try {\n    var old = await db.get(knex('dat_dns').where({name, isCurrent: 1}))\n    if (old && old.key !== key) {\n      // unset old\n      await db.run(knex('dat_dns').update({isCurrent: 0}).where({name}))\n      events.emit('updated', {key: old.key, name: undefined})\n    }\n\n    let curr = await db.get(knex('dat_dns').where({name, key}))\n    if (!curr) {\n      // insert new\n      await db.run(knex('dat_dns').insert({\n        name,\n        key,\n        isCurrent: 1,\n        lastConfirmedAt: Date.now(),\n        firstConfirmedAt: Date.now()\n      }))\n    } else {\n      // update current\n      await db.run(knex('dat_dns').update({lastConfirmedAt: Date.now(), isCurrent: 1}).where({name, key}))\n    }\n    events.emit('updated', {key, name})\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} key\n * @returns {Promise<void>}\n */\nexport const unset = async function (key) {\n  var curr = await db.get(knex('dat_dns').where({key, isCurrent: 1}))\n  if (curr) {\n    await db.run(knex('dat_dns').update({isCurrent: 0}).where({key}))\n    events.emit('updated', {key, name: undefined})\n  }\n}\n\n// internal methods\n// =\n\nfunction massageDNSRecord (record) {\n  if (!record) return null\n  return {\n    name: record.name,\n    key: record.key,\n    isCurrent: Boolean(record.isCurrent),\n    lastConfirmedAt: record.lastConfirmedAt,\n    firstConfirmedAt: record.firstConfirmedAt\n  }\n}"
  },
  {
    "path": "app/bg/dbs/folder-sync.js",
    "content": "import * as db from './profile-data-db'\nimport knex from '../lib/knex'\n\nexport async function get (key) {\n  return db.get(knex('folder_syncs').where({key}))\n}\n\nexport async function getPath (key) {\n  var setting = await get(key)\n  return setting ? setting.localPath : undefined\n}\n\nexport async function insert (key, values) {\n  return db.run(knex('folder_syncs').insert(Object.assign({key}, values)))\n}\n\nexport async function update (key, values) {\n  return db.run(knex('folder_syncs').update(values).where({key}))\n}\n\nexport async function del (key) {\n  return db.run(knex('folder_syncs').where({key}).del())\n}"
  },
  {
    "path": "app/bg/dbs/history.js",
    "content": "import lock from '../../lib/lock'\nimport * as db from './profile-data-db'\n\n// typedefs\n// =\n\nclass BadParamError extends Error {\n  /**\n   * @param {string} msg\n   */\n  constructor (msg) {\n    super()\n    this.name = 'BadParamError'\n    this.message = msg\n  }\n}\n\n/**\n * @typedef {Object} Visit\n * @prop {number} profileId\n * @prop {string} url\n * @prop {string} title\n * @prop {number} ts\n *\n * @typedef {Object} VisitSearchResult\n * @prop {string} offsets\n * @prop {string} url\n * @prop {string} title\n * @prop {number} num_visits\n */\n\n// exported methods\n// =\n\n/**\n * @param {number} profileId\n * @param {Object} values\n * @param {string} values.url\n * @param {string} values.title\n * @returns {Promise<void>}\n */\nexport const addVisit = async function (profileId, {url, title}) {\n  // validate parameters\n  if (!url || typeof url !== 'string') {\n    throw new BadParamError('url must be a string')\n  }\n  if (!title || typeof title !== 'string') {\n    throw new BadParamError('title must be a string')\n  }\n\n  var release = await lock('history-db')\n  try {\n    await db.run('BEGIN TRANSACTION;')\n\n    var ts = Date.now()\n    if (!url.startsWith('beaker://')) { // dont log stats on internal sites, keep them out of the search\n      // get current stats\n      var stats = await db.get('SELECT * FROM visit_stats WHERE url = ?;', [url])\n\n      // create or update stats\n      if (!stats) {\n        await db.run('INSERT INTO visit_stats (url, num_visits, last_visit_ts) VALUES (?, ?, ?);', [url, 1, ts])\n        await db.run('INSERT INTO visit_fts (url, title) VALUES (?, ?);', [url, title])\n      } else {\n        let num_visits = (+stats.num_visits || 1) + 1\n        await db.run('UPDATE visit_stats SET num_visits = ?, last_visit_ts = ? WHERE url = ?;', [num_visits, ts, url])\n      }\n    }\n\n    // visited within 1 hour?\n    var visit = await db.get('SELECT rowid, * from visits WHERE profileId = ? AND url = ? AND ts > ? ORDER BY ts DESC LIMIT 1', [profileId, url, ts - 1000 * 60 * 60])\n    if (visit) {\n      // update visit ts and title\n      await db.run('UPDATE visits SET ts = ?, title = ? WHERE rowid = ?', [ts, title, visit.rowid])\n    } else {\n      // log visit\n      await db.run('INSERT INTO visits (profileId, url, title, tabClose, ts) VALUES (?, ?, ?, ?, ?);', [profileId, url, title, 0, ts])\n    }\n\n    await db.run('COMMIT;')\n  } catch (e) {\n    await db.run('ROLLBACK;')\n    throw e\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {number} profileId\n * @param {Object} values\n * @param {string} values.url\n * @param {string} values.title\n * @returns {Promise<void>}\n */\nexport const addTabClose = async function (profileId, {url, title}) {\n  // validate parameters\n  if (!url || typeof url !== 'string') {\n    throw new BadParamError('url must be a string')\n  }\n  if (!title || typeof title !== 'string') {\n    throw new BadParamError('title must be a string')\n  }\n\n  var release = await lock('history-db')\n  try {\n    await db.run('BEGIN TRANSACTION;')\n\n    var ts = Date.now()\n    // visited within 1 hour?\n    var visit = await db.get('SELECT rowid, * from visits WHERE profileId = ? AND url = ? AND ts > ? ORDER BY ts DESC LIMIT 1', [profileId, url, ts - 1000 * 60 * 60])\n    if (visit) {\n      // update visit ts and title\n      await db.run('UPDATE visits SET ts = ?, title = ?, tabClose = ? WHERE rowid = ?', [ts, title, 1, visit.rowid])\n    } else {\n      // log visit\n      await db.run('INSERT INTO visits (profileId, url, title, tabClose, ts) VALUES (?, ?, ?, ?);', [profileId, url, title, 1, ts])\n    }\n\n    await db.run('COMMIT;')\n  } catch (e) {\n    await db.run('ROLLBACK;')\n    throw e\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {number} profileId\n * @param {Object} opts\n * @param {string} [opts.search]\n * @param {number} [opts.offset]\n * @param {number} [opts.limit]\n * @param {number} [opts.before]\n * @param {number} [opts.after]\n * @param {Boolean} [opts.tabClose]\n * @returns {Promise<Array<Visit>>}\n */\nexport const getVisitHistory = async function (profileId, {search, offset, limit, before, after, tabClose}) {\n  var release = await lock('history-db')\n  try {\n    const params = /** @type Array<string | number> */([\n      profileId,\n      limit || 50,\n      offset || 0\n    ])\n    if (search) {\n      // prep search terms\n      params.push(\n        search\n          .toLowerCase() // all lowercase. (uppercase is interpretted as a directive by sqlite.)\n          .replace(/[:^*]/g, '') + // strip symbols that sqlite interprets.\n          '*' // allow partial matches\n      )\n      return await db.all(`\n        SELECT visits.*\n          FROM visit_fts\n            LEFT JOIN visits ON visits.url = visit_fts.url\n          WHERE visits.profileId = ?1 AND visit_fts MATCH ?4 ${tabClose ? `AND tabClose = 1` : ''}\n          ORDER BY visits.ts DESC\n          LIMIT ?2 OFFSET ?3\n      `, params)\n    }\n    let where = ''\n    if (before && after) {\n      where += 'AND ts <= ?4 AND ts >= ?5'\n      params.push(before)\n      params.push(after)\n    } else if (before) {\n      where += 'AND ts <= ?4'\n      params.push(before)\n    } else if (after) {\n      where += 'AND ts >= ?4'\n      params.push(after)\n    }\n    if (tabClose) {\n      where += `AND tabClose = 1`\n    }\n    return await db.all(`\n      SELECT * FROM visits\n        WHERE profileId = ?1 ${where}\n        ORDER BY ts DESC\n        LIMIT ?2 OFFSET ?3\n    `, params)\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {number} profileId\n * @param {Object} opts\n * @param {number} [opts.offset]\n * @param {number} [opts.limit]\n * @returns {Promise<Array<Visit>>}\n */\nexport const getMostVisited = async function (profileId, { offset, limit }) {\n  var release = await lock('history-db')\n  try {\n    offset = offset || 0\n    limit = limit || 50\n    return await db.all(`\n      SELECT visit_stats.*, visits.title AS title\n        FROM visit_stats\n          LEFT JOIN visits ON visits.url = visit_stats.url\n        WHERE profileId = ? AND visit_stats.num_visits > 5\n        GROUP BY visit_stats.url\n        ORDER BY num_visits DESC, last_visit_ts DESC\n        LIMIT ? OFFSET ?\n    `, [profileId, limit, offset])\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} q\n * @returns {Promise<Array<VisitSearchResult>>}\n */\nexport const search = async function (q) {\n  if (!q || typeof q !== 'string') {\n    throw new BadParamError('q must be a string')\n  }\n\n  var release = await lock('history-db')\n  try {\n    // prep search terms\n    q = q\n      .toLowerCase() // all lowercase. (uppercase is interpretted as a directive by sqlite.)\n      .replace(/[:^*]/g, '') // strip symbols that sqlite interprets\n      .replace(/[-]/g, ' ') + // strip symbols that sqlite interprets\n      '*' // allow partial matches\n\n    // run query\n    return await db.all(`\n      SELECT offsets(visit_fts) as offsets, visit_fts.url, visit_fts.title, visit_stats.num_visits\n        FROM visit_fts\n        LEFT JOIN visit_stats ON visit_stats.url = visit_fts.url\n        WHERE visit_fts MATCH ? AND visit_stats.num_visits > 2\n        ORDER BY visit_stats.num_visits DESC\n        LIMIT 10;\n    `, [q])\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} url\n * @returns {Promise<void>}\n */\nexport const removeVisit = async function (url) {\n  // validate parameters\n  if (!url || typeof url !== 'string') {\n    throw new BadParamError('url must be a string')\n  }\n\n  var release = await lock('history-db')\n  try {\n    db.serialize()\n    db.run('BEGIN TRANSACTION;')\n    db.run('DELETE FROM visits WHERE url = ?;', url)\n    db.run('DELETE FROM visit_stats WHERE url = ?;', url)\n    db.run('DELETE FROM visit_fts WHERE url = ?;', url)\n    await db.run('COMMIT;')\n  } catch (e) {\n    await db.run('ROLLBACK;')\n    throw e\n  } finally {\n    db.parallelize()\n    release()\n  }\n}\n\n/**\n * @param {number} timestamp\n * @returns {Promise<void>}\n */\nexport const removeVisitsAfter = async function (timestamp) {\n  var release = await lock('history-db')\n  try {\n    db.serialize()\n    db.run('BEGIN TRANSACTION;')\n    db.run('DELETE FROM visits WHERE ts >= ?;', timestamp)\n    db.run('DELETE FROM visit_stats WHERE last_visit_ts >= ?;', timestamp)\n    await db.run('COMMIT;')\n  } catch (e) {\n    await db.run('ROLLBACK;')\n    throw e\n  } finally {\n    db.parallelize()\n    release()\n  }\n}\n\n/**\n * @returns {Promise<void>}\n */\nexport const removeAllVisits = async function () {\n  var release = await lock('history-db')\n  db.run('DELETE FROM visits;')\n  db.run('DELETE FROM visit_stats;')\n  db.run('DELETE FROM visit_fts;')\n  release()\n}\n"
  },
  {
    "path": "app/bg/dbs/index.js",
    "content": "import * as archives from './archives'\nimport * as auditLog from './audit-log'\nimport * as history from './history'\nimport * as profileData from './profile-data-db'\nimport * as settings from './settings'\nimport * as sitedata from './sitedata'\nimport * as watchlist from './watchlist'\n\nexport default {\n  archives,\n  auditLog,\n  history,\n  profileData,\n  settings,\n  sitedata,\n  watchlist\n}\n"
  },
  {
    "path": "app/bg/dbs/profile-data-db.js",
    "content": "import sqlite3 from 'sqlite3'\nimport path from 'path'\nimport { cbPromise } from '../../lib/functions'\nimport { setupSqliteDB, handleQueryBuilder } from '../lib/db'\n\nimport V1 from './schemas/profile-data.v1.sql'\nimport V2 from './schemas/profile-data.v2.sql'\nimport V3 from './schemas/profile-data.v3.sql'\nimport V4 from './schemas/profile-data.v4.sql'\nimport V5 from './schemas/profile-data.v5.sql'\nimport V6 from './schemas/profile-data.v6.sql'\nimport V7 from './schemas/profile-data.v7.sql'\nimport V8 from './schemas/profile-data.v8.sql'\nimport V9 from './schemas/profile-data.v9.sql'\nimport V10 from './schemas/profile-data.v10.sql'\nimport V11 from './schemas/profile-data.v11.sql'\nimport V12 from './schemas/profile-data.v12.sql'\nimport V13 from './schemas/profile-data.v13.sql'\nimport V14 from './schemas/profile-data.v14.sql'\nimport V15 from './schemas/profile-data.v15.sql'\nimport V16 from './schemas/profile-data.v16.sql'\nimport V17 from './schemas/profile-data.v17.sql'\nimport V18 from './schemas/profile-data.v18.sql'\nimport V19 from './schemas/profile-data.v19.sql'\nimport V20 from './schemas/profile-data.v20.sql'\nimport V21 from './schemas/profile-data.v21.sql'\nimport V22 from './schemas/profile-data.v22.sql'\nimport V23 from './schemas/profile-data.v23.sql'\nimport V24 from './schemas/profile-data.v24.sql'\nimport V25 from './schemas/profile-data.v25.sql'\nimport V26 from './schemas/profile-data.v26.sql'\nimport V27 from './schemas/profile-data.v27.sql'\nimport V28 from './schemas/profile-data.v28.sql'\nimport V29 from './schemas/profile-data.v29.sql'\nimport V30 from './schemas/profile-data.v30.sql'\nimport V31 from './schemas/profile-data.v31.sql'\nimport V32 from './schemas/profile-data.v32.sql'\nimport V33 from './schemas/profile-data.v33.sql'\nimport V34 from './schemas/profile-data.v34.sql'\nimport V35 from './schemas/profile-data.v35.sql'\nimport V36 from './schemas/profile-data.v36.sql'\nimport V37 from './schemas/profile-data.v37.sql'\nimport V38 from './schemas/profile-data.v38.sql'\nimport V39 from './schemas/profile-data.v39.sql'\nimport V40 from './schemas/profile-data.v40.sql'\nimport V41 from './schemas/profile-data.v41.sql'\nimport V42 from './schemas/profile-data.v42.sql'\nimport V43 from './schemas/profile-data.v43.sql'\nimport V44 from './schemas/profile-data.v44.sql'\nimport V45 from './schemas/profile-data.v45.sql'\nimport V46 from './schemas/profile-data.v46.sql'\nimport V47 from './schemas/profile-data.v47.sql'\nimport V48 from './schemas/profile-data.v48.sql'\nimport V49 from './schemas/profile-data.v49.sql'\nimport V50 from './schemas/profile-data.v50.sql'\nimport V51 from './schemas/profile-data.v51.sql'\nimport V52 from './schemas/profile-data.v52.sql'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} SQLiteResult\n * @prop {string} lastID\n */\n\n// globals\n// =\n\nvar db\nvar migrations\nvar setupPromise\n\n// exported methods\n// =\n\n/**\n * @param {Object} opts\n * @param {string} opts.userDataPath\n */\nexport const setup = function (opts) {\n  // open database\n  var dbPath = path.join(opts.userDataPath, 'Profiles')\n  db = new sqlite3.Database(dbPath)\n  setupPromise = setupSqliteDB(db, {migrations}, '[PROFILES]')\n}\n\n/**\n * @param {...(any)} args\n * @return {Promise<any>}\n */\nexport const get = async function (...args) {\n  await setupPromise\n  args = handleQueryBuilder(args)\n  return cbPromise(cb => db.get(...args, cb))\n}\n\n/**\n * @param {...(any)} args\n * @return {Promise<Array<any>>}\n */\nexport const all = async function (...args) {\n  await setupPromise\n  args = handleQueryBuilder(args)\n  return cbPromise(cb => db.all(...args, cb))\n}\n\n/**\n * @param {...(any)} args\n * @return {Promise<SQLiteResult>}\n */\nexport const run = async function (...args) {\n  await setupPromise\n  args = handleQueryBuilder(args)\n  return cbPromise(cb => db.run(...args, function (err) {\n    if (err) cb(err)\n    else cb(null, {lastID: this.lastID})\n  }))\n}\n\n/**\n * @returns {Promise<void>}\n */\nexport const serialize = function () {\n  return db.serialize()\n}\n\n/**\n * @returns {Promise<void>}\n */\nexport const parallelize = function () {\n  return db.parallelize()\n}\n\nexport const getSqliteInstance = () => db\n\n// internal methods\n// =\n\nfunction setupDb (cb) {\n  db.exec(FULL_SCHEMA, cb)\n}\nmigrations = [\n  migration(V1),\n  migration(V2),\n  migration(V3),\n  migration(V4),\n  migration(V5),\n  migration(V6),\n  migration(V7),\n  migration(V8),\n  migration(V9),\n  migration(V10),\n  migration(V11),\n  migration(V12),\n  migration(V13),\n  migration(V14),\n  migration(V15),\n  migration(V16, {canFail: true}), // set canFail because we made a mistake in the rollout of this update, see https://github.com/beakerbrowser/beaker/issues/934\n  migration(V17),\n  migration(V18),\n  migration(V19),\n  migration(V20),\n  migration(V21),\n  migration(V22, {canFail: true}), // canFail for the same reason as v16, ffs\n  migration(V23),\n  migration(V24),\n  migration(V25),\n  migration(V26),\n  migration(V27),\n  migration(V28),\n  migration(V29),\n  migration(V30),\n  migration(V31),\n  migration(V32),\n  migration(V33),\n  migration(V34),\n  migration(V35),\n  migration(V36),\n  migration(V37),\n  migration(V38),\n  migration(V39),\n  migration(V40),\n  migration(V41),\n  migration(V42),\n  migration(V43),\n  migration(V44),\n  migration(V45),\n  migration(V46),\n  migration(V47),\n  migration(V48),\n  migration(V49),\n  migration(V50),\n  migration(V51),\n  migration(V52)\n]\nfunction migration (file, opts = {}) {\n  return cb => {\n    if (opts.canFail) {\n      var orgCb = cb\n      cb = () => orgCb() // suppress the error\n    }\n    db.exec(file, cb)\n  }\n}\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v1.sql.js",
    "content": "export default `\nCREATE TABLE profiles (\n  id INTEGER PRIMARY KEY NOT NULL,\n  url TEXT,\n  createdAt INTEGER DEFAULT (strftime('%s', 'now'))\n);\n\nCREATE TABLE archives (\n  profileId INTEGER NOT NULL,\n  key TEXT NOT NULL,\n  localPath TEXT, -- deprecated\n  isSaved INTEGER,\n  createdAt INTEGER DEFAULT (strftime('%s', 'now'))\n);\n\nCREATE TABLE archives_meta (\n  key TEXT PRIMARY KEY,\n  title TEXT,\n  description TEXT,\n  forkOf TEXT,\n  createdByUrl TEXT, -- deprecated\n  createdByTitle TEXT, -- deprecated\n  mtime INTEGER,\n  metaSize INTEGER, -- deprecated\n  stagingSize INTEGER, -- deprecated\n  isOwner INTEGER\n);\n\nCREATE TABLE bookmarks (\n  profileId INTEGER,\n  url TEXT NOT NULL,\n  title TEXT,\n  pinned INTEGER,\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n\n  PRIMARY KEY (profileId, url),\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nCREATE TABLE visits (\n  profileId INTEGER,\n  url TEXT NOT NULL,\n  title TEXT NOT NULL,\n  ts INTEGER NOT NULL,\n\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nCREATE TABLE visit_stats (\n  url TEXT NOT NULL,\n  num_visits INTEGER,\n  last_visit_ts INTEGER\n);\n\nCREATE VIRTUAL TABLE visit_fts USING fts4 (url, title);\nCREATE UNIQUE INDEX visits_stats_url ON visit_stats (url);\n\n-- default profile\nINSERT INTO profiles (id) VALUES (0);\n\nPRAGMA user_version = 1;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v10.sql.js",
    "content": "export default `\n-- list of the user's installed apps\n-- deprecated\nCREATE TABLE apps (\n  profileId INTEGER NOT NULL,\n  name TEXT NOT NULL,\n  url TEXT,\n  updatedAt INTEGER DEFAULT (strftime('%s', 'now')),\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n \n  PRIMARY KEY (profileId, name),\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 10;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v11.sql.js",
    "content": "export default `\n-- log of the user's app installations\n-- deprecated\nCREATE TABLE apps_log (\n  profileId INTEGER NOT NULL,\n  name TEXT NOT NULL,\n  url TEXT,\n  ts INTEGER DEFAULT (strftime('%s', 'now')),\n \n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 11;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v12.sql.js",
    "content": "export default `\n\n-- list of the active workspaces\n-- deprecated\nCREATE TABLE workspaces (\n  profileId INTEGER NOT NULL,\n  name TEXT NOT NULL,\n  localFilesPath TEXT,\n  publishTargetUrl TEXT,\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n  updatedAt INTEGER DEFAULT (strftime('%s', 'now')),\n\n  PRIMARY KEY (profileId, name),\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 12;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v13.sql.js",
    "content": "export default `\n\n-- add a field to track when last accessed in the library\nALTER TABLE archives_meta ADD COLUMN lastLibraryAccessTime INTEGER DEFAULT 0;\n\nPRAGMA user_version = 13;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v14.sql.js",
    "content": "export default `\n\n-- add a non-unique index to the visits table to speed up joins\nCREATE INDEX visits_url ON visits (url);\n\nPRAGMA user_version = 14;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v15.sql.js",
    "content": "export default `\n\n-- more default bookmarks\n-- REMOVED\n\nPRAGMA user_version = 15;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v16.sql.js",
    "content": "export default `\n\n-- add a field to track when last accessed in the library\nALTER TABLE bookmarks ADD COLUMN pinOrder INTEGER DEFAULT 0;\n\nPRAGMA user_version = 16;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v17.sql.js",
    "content": "export default `\n\n-- add a field to track the folder where an archive is being synced\nALTER TABLE archives ADD COLUMN localSyncPath TEXT;\n\nPRAGMA user_version = 17;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v18.sql.js",
    "content": "export default `\n\n-- add a database to track user-defined templates for new dat sites\nCREATE TABLE templates (\n  profileId INTEGER,\n  url TEXT NOT NULL,\n  title TEXT,\n  screenshot,\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n\n  PRIMARY KEY (profileId, url),\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 18;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v19.sql.js",
    "content": "export default `\n\n-- add the 'hidden' flag to archives\nALTER TABLE archives ADD COLUMN hidden INTEGER DEFAULT 0;\n\n-- add a database for tracking draft dats\nCREATE TABLE archive_drafts (\n  profileId INTEGER,\n  masterKey TEXT, -- key of the master dat\n  draftKey TEXT, -- key of the draft dat\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n  \n  isActive INTEGER, -- is this the active draft? (deprecated)\n\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 19;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v2.sql.js",
    "content": "export default `\n\n-- add variable to track the staging size less ignored files\n-- deprecated\nALTER TABLE archives_meta ADD COLUMN stagingSizeLessIgnored INTEGER;\n\nPRAGMA user_version = 2;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v20.sql.js",
    "content": "export default `\n\n-- watch localSyncPath and automatically publish changes (1) or not (0)\nALTER TABLE archives ADD COLUMN autoPublishLocal INTEGER DEFAULT 0;\n\nPRAGMA user_version = 20;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v21.sql.js",
    "content": "export default `\n\n-- add size data to archives_meta\nALTER TABLE archives_meta ADD COLUMN size INTEGER DEFAULT 0;\n\nPRAGMA user_version = 21;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v22.sql.js",
    "content": "export default `\n\n-- automatically publish changes (0) or write to local folder (1)\nALTER TABLE archives ADD COLUMN previewMode INTEGER;\n\nPRAGMA user_version = 22;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v23.sql.js",
    "content": "export default `\n\n-- add a database for watchlist feature\nCREATE TABLE watchlist (\n  profileId INTEGER NOT NULL,\n  url TEXT NOT NULL,\n  description TEXT NOT NULL,\n  seedWhenResolved BOOLEAN NOT NULL,\n  resolved BOOLEAN NOT NULL DEFAULT (0),\n  updatedAt INTEGER DEFAULT (strftime('%s', 'now')),\n  createdAt INTEGER DEFAULT (strftime('%s', 'now')),\n \n  PRIMARY KEY (profileId, url),\n  FOREIGN KEY (profileId) REFERENCES profiles (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 23;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v24.sql.js",
    "content": "export default `\n-- description of the bookmark's content, often pulled from the bookmarked page\nALTER TABLE bookmarks ADD COLUMN description TEXT;\n\n-- sync the bookmark to the user's public profile\nALTER TABLE bookmarks ADD COLUMN isPublic INTEGER;\n\nCREATE TABLE users (\n  id INTEGER PRIMARY KEY NOT NULL,\n  url TEXT,\n  isDefault INTEGER DEFAULT 0,\n  createdAt INTEGER\n);\n\n-- list of sites being crawled\nCREATE TABLE crawl_sources (\n  id INTEGER PRIMARY KEY NOT NULL,\n  url TEXT NOT NULL\n);\n\n-- tracking information on the crawl-state of the sources\nCREATE TABLE crawl_sources_meta (\n  crawlSourceId INTEGER NOT NULL,\n  crawlSourceVersion INTEGER NOT NULL,\n  crawlDataset TEXT NOT NULL,\n  crawlDatasetVersion INTEGER NOT NULL,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\n\n-- crawled descriptions of other sites\nCREATE TABLE crawl_site_descriptions (\n  crawlSourceId INTEGER NOT NULL,\n  crawledAt INTEGER,\n\n  url TEXT,\n  title TEXT,\n  description TEXT,\n  type TEXT, -- comma separated strings\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE VIRTUAL TABLE crawl_site_descriptions_fts_index USING fts5(title, description, content='crawl_site_descriptions');\n\n-- triggers to keep crawl_site_descriptions_fts_index updated\nCREATE TRIGGER crawl_site_descriptions_ai AFTER INSERT ON crawl_site_descriptions BEGIN\n  INSERT INTO crawl_site_descriptions_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\nCREATE TRIGGER crawl_site_descriptions_ad AFTER DELETE ON crawl_site_descriptions BEGIN\n  INSERT INTO crawl_site_descriptions_fts_index(crawl_site_descriptions_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\nEND;\nCREATE TRIGGER crawl_site_descriptions_au AFTER UPDATE ON crawl_site_descriptions BEGIN\n  INSERT INTO crawl_site_descriptions_fts_index(crawl_site_descriptions_fts_index, rowid, title, description) VALUES('delete', old.a, old.title, old.description);\n  INSERT INTO crawl_site_descriptions_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\n-- crawled posts\nCREATE TABLE crawl_posts (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n\n  body TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE VIRTUAL TABLE crawl_posts_fts_index USING fts5(body, content='crawl_posts');\n\n-- triggers to keep crawl_posts_fts_index updated\nCREATE TRIGGER crawl_posts_ai AFTER INSERT ON crawl_posts BEGIN\n  INSERT INTO crawl_posts_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\nCREATE TRIGGER crawl_posts_ad AFTER DELETE ON crawl_posts BEGIN\n  INSERT INTO crawl_posts_fts_index(crawl_posts_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\nEND;\nCREATE TRIGGER crawl_posts_au AFTER UPDATE ON crawl_posts BEGIN\n  INSERT INTO crawl_posts_fts_index(crawl_posts_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\n  INSERT INTO crawl_posts_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\n\n-- crawled bookmarks\nCREATE TABLE crawl_bookmarks (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n\n  href TEXT,\n  title TEXT,\n  description TEXT,\n  tags TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE VIRTUAL TABLE crawl_bookmarks_fts_index USING fts5(title, description, tags, content='crawl_bookmarks');\n\n-- triggers to keep crawl_bookmarks_fts_index updated\nCREATE TRIGGER crawl_bookmarks_ai AFTER INSERT ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(rowid, title, description, tags) VALUES (new.rowid, new.title, new.description, new.tags);\nEND;\nCREATE TRIGGER crawl_bookmarks_ad AFTER DELETE ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(crawl_bookmarks_fts_index, rowid, title, description, tags) VALUES('delete', old.rowid, old.title, old.description, old.tags);\nEND;\nCREATE TRIGGER crawl_bookmarks_au AFTER UPDATE ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(crawl_bookmarks_fts_index, rowid, title, description, tags) VALUES('delete', old.rowid, old.title, old.description, old.tags);\n  INSERT INTO crawl_bookmarks_fts_index(rowid, title, description, tags) VALUES (new.rowid, new.title, new.description, new.tags);\nEND;\n\n-- crawled follows\nCREATE TABLE crawl_graph (\n  crawlSourceId INTEGER NOT NULL,\n  crawledAt INTEGER,\n  \n  destUrl TEXT NOT NULL,\n\n  PRIMARY KEY (crawlSourceId, destUrl),\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 24;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v25.sql.js",
    "content": "export default `\n\n-- crawled reactions\nCREATE TABLE crawl_reactions (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n  \n  topic TEXT NOT NULL,\n  emojis TEXT NOT NULL,\n\n  PRIMARY KEY (crawlSourceId, pathname),\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_reactions_topic ON crawl_reactions (topic);\n\nPRAGMA user_version = 25;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v26.sql.js",
    "content": "export default `\n\n-- fix an incorrect trigger definition\nDROP TRIGGER IF EXISTS crawl_site_descriptions_au;\nCREATE TRIGGER crawl_site_descriptions_au AFTER UPDATE ON crawl_site_descriptions BEGIN\n  INSERT INTO crawl_site_descriptions_fts_index(crawl_site_descriptions_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\n  INSERT INTO crawl_site_descriptions_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\n-- rename 'graph' to 'follows'\nALTER TABLE crawl_graph RENAME TO crawl_follows;\n\nPRAGMA user_version = 26;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v27.sql.js",
    "content": "export default `\n\n-- add crawled comments\nCREATE TABLE crawl_comments (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n\n  topic TEXT,\n  replyTo TEXT,\n  body TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_comments_topic ON crawl_comments (topic);\nCREATE VIRTUAL TABLE crawl_comments_fts_index USING fts5(body, content='crawl_comments');\n\n-- triggers to keep crawl_comments_fts_index updated\nCREATE TRIGGER crawl_comments_ai AFTER INSERT ON crawl_comments BEGIN\n  INSERT INTO crawl_comments_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\nCREATE TRIGGER crawl_comments_ad AFTER DELETE ON crawl_comments BEGIN\n  INSERT INTO crawl_comments_fts_index(crawl_comments_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\nEND;\nCREATE TRIGGER crawl_comments_au AFTER UPDATE ON crawl_comments BEGIN\n  INSERT INTO crawl_comments_fts_index(crawl_comments_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\n  INSERT INTO crawl_comments_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\n\nPRAGMA user_version = 27;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v28.sql.js",
    "content": "export default `\n\n-- we're replacing the bookmark 'tags' field with a new normalized tags table\n-- this requires replacing the entire bookmarks table because we need to add an id pkey\n\n\n-- remove the old bookmarks tabes\nDROP TRIGGER IF EXISTS crawl_bookmarks_ai;\nDROP TRIGGER IF EXISTS crawl_bookmarks_ad;\nDROP TRIGGER IF EXISTS crawl_bookmarks_au;\nDROP TABLE IF EXISTS crawl_bookmarks_fts_index;\nDROP TABLE IF EXISTS crawl_bookmarks;\n\n\n-- add crawled tags\nCREATE TABLE crawl_tags (\n  id INTEGER PRIMARY KEY,\n  tag TEXT UNIQUE\n);\n\n-- add crawled bookmarks\nCREATE TABLE crawl_bookmarks (\n  id INTEGER PRIMARY KEY,\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n\n  href TEXT,\n  title TEXT,\n  description TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE VIRTUAL TABLE crawl_bookmarks_fts_index USING fts5(title, description, content='crawl_bookmarks');\n\n-- triggers to keep crawl_bookmarks_fts_index updated\nCREATE TRIGGER crawl_bookmarks_ai AFTER INSERT ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\nCREATE TRIGGER crawl_bookmarks_ad AFTER DELETE ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(crawl_bookmarks_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\nEND;\nCREATE TRIGGER crawl_bookmarks_au AFTER UPDATE ON crawl_bookmarks BEGIN\n  INSERT INTO crawl_bookmarks_fts_index(crawl_bookmarks_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\n  INSERT INTO crawl_bookmarks_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\n-- add bookmark <-> tag join table\nCREATE TABLE crawl_bookmarks_tags (\n  crawlBookmarkId INTEGER,\n  crawlTagId INTEGER,\n\n  FOREIGN KEY (crawlBookmarkId) REFERENCES crawl_bookmarks (id) ON DELETE CASCADE,\n  FOREIGN KEY (crawlTagId) REFERENCES crawl_tags (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 28;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v29.sql.js",
    "content": "export default `\n\n-- add crawled votes\nCREATE TABLE crawl_votes (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n  \n  topic TEXT NOT NULL,\n  vote INTEGER NOT NULL,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  PRIMARY KEY (crawlSourceId, pathname),\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_votes_topic ON crawl_votes (topic);\n\nPRAGMA user_version = 29;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v3.sql.js",
    "content": "export default `\n\n-- add variable to track the access times of archives\nALTER TABLE archives_meta ADD COLUMN lastAccessTime INTEGER DEFAULT 0;\n\nPRAGMA user_version = 3;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v30.sql.js",
    "content": "export default `\n\n-- add crawled discussions\nCREATE TABLE crawl_discussions (\n  id INTEGER PRIMARY KEY,\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n  \n  title TEXT NOT NULL,\n  body TEXT,\n  href TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_discussions_url ON crawl_discussions (crawlSourceId, pathname);\n\n-- add discussion <-> tag join table\nCREATE TABLE crawl_discussions_tags (\n  crawlDiscussionId INTEGER,\n  crawlTagId INTEGER,\n\n  FOREIGN KEY (crawlDiscussionId) REFERENCES crawl_discussions (id) ON DELETE CASCADE,\n  FOREIGN KEY (crawlTagId) REFERENCES crawl_tags (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 30;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v31.sql.js",
    "content": "export default `\n\n-- add crawled media\nCREATE TABLE crawl_media (\n  id INTEGER PRIMARY KEY,\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n  \n  subtype TEXT NOT NULL,\n  href TEXT NOT NULL,\n  title TEXT NOT NULL,\n  description TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_media_url ON crawl_media (crawlSourceId, pathname);\nCREATE INDEX crawl_media_subtype ON crawl_media (subtype);\nCREATE INDEX crawl_media_href ON crawl_media (href);\nCREATE VIRTUAL TABLE crawl_media_fts_index USING fts5(title, description, content='crawl_media');\n\n-- triggers to keep crawl_media_fts_index updated\nCREATE TRIGGER crawl_media_ai AFTER INSERT ON crawl_media BEGIN\n  INSERT INTO crawl_media_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\nCREATE TRIGGER crawl_media_ad AFTER DELETE ON crawl_media BEGIN\n  INSERT INTO crawl_media_fts_index(crawl_media_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\nEND;\nCREATE TRIGGER crawl_media_au AFTER UPDATE ON crawl_media BEGIN\n  INSERT INTO crawl_media_fts_index(crawl_media_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\n  INSERT INTO crawl_media_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\n-- add crawled media tags\nCREATE TABLE crawl_media_tags (\n  crawlMediaId INTEGER,\n  crawlTagId INTEGER,\n\n  FOREIGN KEY (crawlMediaId) REFERENCES crawl_media (id) ON DELETE CASCADE,\n  FOREIGN KEY (crawlTagId) REFERENCES crawl_tags (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 31;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v32.sql.js",
    "content": "export default `\n\nCREATE VIRTUAL TABLE crawl_discussions_fts_index USING fts5(title, body, content='crawl_discussions');\n\n-- triggers to keep crawl_discussions_fts_index updated\nCREATE TRIGGER crawl_discussions_ai AFTER INSERT ON crawl_discussions BEGIN\n  INSERT INTO crawl_discussions_fts_index(rowid, title, body) VALUES (new.rowid, new.title, new.body);\nEND;\nCREATE TRIGGER crawl_discussions_ad AFTER DELETE ON crawl_discussions BEGIN\n  INSERT INTO crawl_discussions_fts_index(crawl_discussions_fts_index, rowid, title, body) VALUES('delete', old.rowid, old.title, old.body);\nEND;\nCREATE TRIGGER crawl_discussions_au AFTER UPDATE ON crawl_discussions BEGIN\n  INSERT INTO crawl_discussions_fts_index(crawl_discussions_fts_index, rowid, title, body) VALUES('delete', old.rowid, old.title, old.body);\n  INSERT INTO crawl_discussions_fts_index(rowid, title, body) VALUES (new.rowid, new.title, new.body);\nEND;\n\nPRAGMA user_version = 32;\n\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v33.sql.js",
    "content": "export default `\n\n-- add label\nALTER TABLE users ADD COLUMN label TEXT;\n-- add isTemporary\nALTER TABLE users ADD COLUMN isTemporary INTEGER DEFAULT 0;\n\nPRAGMA user_version = 33;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v34.sql.js",
    "content": "export default `\n\n-- list of the users installed apps\nCREATE TABLE installed_applications (\n  id INTEGER PRIMARY KEY NOT NULL,\n  userId INTEGER NOT NULL,\n  enabled INTEGER DEFAULT 1,\n  url TEXT,\n  createdAt INTEGER,\n \n  FOREIGN KEY (userId) REFERENCES users (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 34;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v35.sql.js",
    "content": "export default `\n\nCREATE TABLE dat_dns (\n  id INTEGER PRIMARY KEY,\n  name TEXT,\n  key TEXT,\n  isCurrent INTEGER,\n  lastConfirmedAt INTEGER,\n  firstConfirmedAt INTEGER\n);\nCREATE INDEX dat_dns_name ON dat_dns (name);\nCREATE INDEX dat_dns_key ON dat_dns (key);\n\nALTER TABLE crawl_sources ADD COLUMN datDnsId INTEGER;\n\nPRAGMA user_version = 35;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v36.sql.js",
    "content": "export default `\nCREATE TABLE user_site_sessions (\n  id INTEGER PRIMARY KEY NOT NULL,\n  userId INTEGER NOT NULL,\n  url TEXT,\n  permissionsJson TEXT,\n  createdAt INTEGER,\n \n  FOREIGN KEY (userId) REFERENCES users (id) ON DELETE CASCADE\n);\nPRAGMA user_version = 36;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v37.sql.js",
    "content": "export default `\n\nALTER TABLE crawl_sources ADD COLUMN isPrivate INTEGER;\n\nPRAGMA user_version = 37;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v38.sql.js",
    "content": "export default `\n\nALTER TABLE archives_meta ADD COLUMN author TEXT;\n\nPRAGMA user_version = 38;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v39.sql.js",
    "content": "export default `\nDROP TRIGGER IF EXISTS crawl_posts_ai;\nDROP TRIGGER IF EXISTS crawl_posts_ad;\nDROP TRIGGER IF EXISTS crawl_posts_au;\nDROP TABLE IF EXISTS crawl_posts;\n\n-- crawled statuses\nCREATE TABLE crawl_statuses (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n\n  body TEXT,\n  createdAt INTEGER,\n  updatedAt INTEGER,\n\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE VIRTUAL TABLE crawl_statuses_fts_index USING fts5(body, content='crawl_statuses');\n\n-- triggers to keep crawl_statuses_fts_index updated\nCREATE TRIGGER crawl_statuses_ai AFTER INSERT ON crawl_statuses BEGIN\n  INSERT INTO crawl_statuses_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\nCREATE TRIGGER crawl_statuses_ad AFTER DELETE ON crawl_statuses BEGIN\n  INSERT INTO crawl_statuses_fts_index(crawl_statuses_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\nEND;\nCREATE TRIGGER crawl_statuses_au AFTER UPDATE ON crawl_statuses BEGIN\n  INSERT INTO crawl_statuses_fts_index(crawl_statuses_fts_index, rowid, body) VALUES('delete', old.rowid, old.body);\n  INSERT INTO crawl_statuses_fts_index(rowid, body) VALUES (new.rowid, new.body);\nEND;\n\nPRAGMA user_version = 39;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v4.sql.js",
    "content": "export default `\n\n-- add flags to control swarming behaviors of archives\nALTER TABLE archives ADD COLUMN autoDownload INTEGER DEFAULT 1;\nALTER TABLE archives ADD COLUMN autoUpload INTEGER DEFAULT 1;\n\nPRAGMA user_version = 4;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v40.sql.js",
    "content": "export default `\n\nDROP INDEX IF EXISTS crawl_reactions_topic;\nDROP TABLE IF EXISTS crawl_reactions;\n\n-- crawled reactions\nCREATE TABLE crawl_reactions (\n  crawlSourceId INTEGER NOT NULL,\n  pathname TEXT NOT NULL,\n  crawledAt INTEGER,\n  \n  topic TEXT NOT NULL,\n  phrases TEXT NOT NULL,\n\n  PRIMARY KEY (crawlSourceId, pathname),\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\nCREATE INDEX crawl_reactions_topic ON crawl_reactions (topic);\n\nPRAGMA user_version = 40;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v41.sql.js",
    "content": "export default `\n\nALTER TABLE archives_meta ADD COLUMN type TEXT;\n\n-- crawled dats\nCREATE TABLE crawl_dats (\n  crawlSourceId INTEGER NOT NULL,\n  crawledAt INTEGER,\n  \n  key TEXT NOT NULL,\n  title TEXT,\n  description TEXT,\n  type TEXT,\n\n  PRIMARY KEY (crawlSourceId, key),\n  FOREIGN KEY (crawlSourceId) REFERENCES crawl_sources (id) ON DELETE CASCADE\n);\n\nPRAGMA user_version = 41;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v42.sql.js",
    "content": "export default `\n\nCREATE VIRTUAL TABLE crawl_dats_fts_index USING fts5(title, description, content='crawl_dats');\n\n-- triggers to keep crawl_dats_fts_index updated\nCREATE TRIGGER crawl_dats_ai AFTER INSERT ON crawl_dats BEGIN\n  INSERT INTO crawl_dats_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\nCREATE TRIGGER crawl_dats_ad AFTER DELETE ON crawl_dats BEGIN\n  INSERT INTO crawl_dats_fts_index(crawl_dats_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\nEND;\nCREATE TRIGGER crawl_dats_au AFTER UPDATE ON crawl_dats BEGIN\n  INSERT INTO crawl_dats_fts_index(crawl_dats_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\n  INSERT INTO crawl_dats_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\nCREATE VIRTUAL TABLE archives_meta_fts_index USING fts5(title, description, content='archives_meta');\n\n-- triggers to keep archives_meta_fts_index updated\nCREATE TRIGGER archives_meta_ai AFTER INSERT ON archives_meta BEGIN\n  INSERT INTO archives_meta_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\nCREATE TRIGGER archives_meta_ad AFTER DELETE ON archives_meta BEGIN\n  INSERT INTO archives_meta_fts_index(archives_meta_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\nEND;\nCREATE TRIGGER archives_meta_au AFTER UPDATE ON archives_meta BEGIN\n  INSERT INTO archives_meta_fts_index(archives_meta_fts_index, rowid, title, description) VALUES('delete', old.rowid, old.title, old.description);\n  INSERT INTO archives_meta_fts_index(rowid, title, description) VALUES (new.rowid, new.title, new.description);\nEND;\n\nPRAGMA user_version = 42;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v43.sql.js",
    "content": "export default `\n\n-- remove deprecations\nDROP TRIGGER IF EXISTS crawl_discussions_au;\nDROP TRIGGER IF EXISTS crawl_discussions_ad;\nDROP TRIGGER IF EXISTS crawl_discussions_ai;\nDROP TRIGGER IF EXISTS crawl_media_au;\nDROP TRIGGER IF EXISTS crawl_media_ad;\nDROP TRIGGER IF EXISTS crawl_media_ai;\nDROP TRIGGER IF EXISTS crawl_site_descriptions_au;\nDROP TRIGGER IF EXISTS crawl_site_descriptions_ad;\nDROP TRIGGER IF EXISTS crawl_site_descriptions_ai;\nDROP TRIGGER IF EXISTS crawl_dats_au;\nDROP TRIGGER IF EXISTS crawl_dats_ad;\nDROP TRIGGER IF EXISTS crawl_dats_ai;\nDROP TRIGGER IF EXISTS crawl_bookmarks_au;\nDROP TRIGGER IF EXISTS crawl_bookmarks_ad;\nDROP TRIGGER IF EXISTS crawl_bookmarks_ai;\nDROP TRIGGER IF EXISTS crawl_comments_au;\nDROP TRIGGER IF EXISTS crawl_comments_ad;\nDROP TRIGGER IF EXISTS crawl_comments_ai;\nDROP TRIGGER IF EXISTS crawl_statuses_au;\nDROP TRIGGER IF EXISTS crawl_statuses_ad;\nDROP TRIGGER IF EXISTS crawl_statuses_ai;\nDROP TABLE IF EXISTS crawl_discussions_tags;\nDROP TABLE IF EXISTS crawl_discussions_fts_index;\nDROP TABLE IF EXISTS crawl_discussions;\nDROP TABLE IF EXISTS crawl_media_tags;\nDROP TABLE IF EXISTS crawl_media_fts_index;\nDROP TABLE IF EXISTS crawl_media;\nDROP TABLE IF EXISTS crawl_site_descriptions_fts_index;\nDROP TABLE IF EXISTS crawl_site_descriptions;\nDROP TABLE IF EXISTS crawl_dats_fts_index;\nDROP TABLE IF EXISTS crawl_dats;\nDROP TABLE IF EXISTS crawl_follows;\nDROP TABLE IF EXISTS crawl_bookmarks_tags;\nDROP TABLE IF EXISTS crawl_bookmarks_fts_index;\nDROP TABLE IF EXISTS crawl_bookmarks;\nDROP TABLE IF EXISTS crawl_votes;\nDROP TABLE IF EXISTS crawl_reactions;\nDROP TABLE IF EXISTS crawl_comments_fts_index;\nDROP TABLE IF EXISTS crawl_comments;\nDROP TABLE IF EXISTS crawl_statuses_fts_index;\nDROP TABLE IF EXISTS crawl_statuses;\nDROP TABLE IF EXISTS crawl_tags;\nDROP TABLE IF EXISTS crawl_sources_meta;\nDROP TABLE IF EXISTS crawl_sources;\n\nPRAGMA user_version = 43;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v44.sql.js",
    "content": "export default `\n\nCREATE TABLE setup_state (\n  profileCreated INTEGER DEFAULT 0\n);\n\nPRAGMA user_version = 44;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v45.sql.js",
    "content": "export default `\n\nDROP TABLE IF EXISTS users;\nDROP TABLE IF EXISTS user_site_sessions;\nCREATE TABLE user_site_sessions (\n  id INTEGER PRIMARY KEY NOT NULL,\n  siteOrigin TEXT,\n  userUrl TEXT,\n  permissionsJson TEXT,\n  createdAt INTEGER\n);\n\nPRAGMA user_version = 45;\n`\n\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v46.sql.js",
    "content": "export default `\n\n-- add variable to user memberOf metadata\nALTER TABLE archives_meta ADD COLUMN memberOf TEXT;\n\nPRAGMA user_version = 46;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v47.sql.js",
    "content": "export default `\n\nDROP TABLE IF EXISTS setup_state;\nCREATE TABLE setup_state (\n  migrated08to09 INTEGER DEFAULT 0\n);\n\nPRAGMA user_version = 47;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v48.sql.js",
    "content": "export default `\n\nALTER TABLE setup_state ADD COLUMN profileSetup INTEGER DEFAULT 0;\n\nPRAGMA user_version = 48;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v49.sql.js",
    "content": "export default `\n\nALTER TABLE setup_state ADD COLUMN hasVisitedProfile INTEGER DEFAULT 0;\n\nPRAGMA user_version = 49;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v5.sql.js",
    "content": "export default `\n\n-- more default bookmarks\n-- REMOVED\n\nPRAGMA user_version = 5;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v50.sql.js",
    "content": "export default `\n\nCREATE TABLE folder_syncs (\n  key TEXT NOT NULL,\n  localPath TEXT,\n  ignoredFiles TEXT\n);\n\nPRAGMA user_version = 50;\n`"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v51.sql.js",
    "content": "export default `\n\nALTER TABLE setup_state ADD COLUMN migratedContactsToFollows INTEGER DEFAULT 0;\n\nPRAGMA user_version = 51;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v52.sql.js",
    "content": "export default `\n\nALTER TABLE visits ADD COLUMN tabClose INTEGER DEFAULT 0;\n\nPRAGMA user_version = 52;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v6.sql.js",
    "content": "export default `\n\n-- add more flags to control swarming behaviors of archives\nALTER TABLE archives ADD COLUMN networked INTEGER DEFAULT 1;\n\nPRAGMA user_version = 6;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v7.sql.js",
    "content": "export default `\n\n-- add a field to track rehost expiration (for timed rehosting)\nALTER TABLE archives ADD COLUMN expiresAt INTEGER;\n\nPRAGMA user_version = 7;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v8.sql.js",
    "content": "export default `\n\n-- add tags and notes to bookmarks\nALTER TABLE bookmarks ADD COLUMN tags TEXT;\nALTER TABLE bookmarks ADD COLUMN notes TEXT;\n\nPRAGMA user_version = 8;\n`\n"
  },
  {
    "path": "app/bg/dbs/schemas/profile-data.v9.sql.js",
    "content": "export default `\n\n-- join table to list the archive's type fields\nCREATE TABLE archives_meta_type (\n  key TEXT,\n  type TEXT\n);\n\nPRAGMA user_version = 9;\n`\n"
  },
  {
    "path": "app/bg/dbs/settings.js",
    "content": "import EventEmitter from 'events'\nimport sqlite3 from 'sqlite3'\nimport path from 'path'\nimport { cbPromise } from '../../lib/functions'\nimport { setupSqliteDB } from '../lib/db'\nimport { getEnvVar } from '../lib/env'\n\nconst CACHED_VALUES = ['new_tabs_in_foreground']\nconst JSON_ENCODED_SETTINGS = ['search_engines', 'adblock_lists']\n\n// globals\n// =\n\nvar db\nvar migrations\nvar setupPromise\nvar defaultSettings\nvar events = new EventEmitter()\nvar cachedValues = {}\n\n\n// exported methods\n// =\n\n/**\n * @param {Object} opts\n * @param {string} opts.userDataPath\n * @param {string} opts.homePath\n */\nexport const setup = async function (opts) {\n  // open database\n  var dbPath = path.join(opts.userDataPath, 'Settings')\n  db = new sqlite3.Database(dbPath)\n  setupPromise = setupSqliteDB(db, {migrations}, '[SETTINGS]')\n\n  defaultSettings = {\n    auto_update_enabled: 1,\n    auto_redirect_to_dat: 1,\n    custom_start_page: 'blank',\n    new_tab: 'beaker://desktop/',\n    new_tabs_in_foreground: 0,\n    run_background: 1,\n    default_zoom: 0,\n    browser_theme: 'system',\n    analytics_enabled: 1,\n    extended_network_index: 'default',\n    extended_network_index_url: '',\n    search_engines: [\n      {name: 'DuckDuckGo', url: 'https://www.duckduckgo.com/', selected: true},\n      {name: 'Beaker', url: 'beaker://desktop/'},\n      {name: 'Google', url: 'https://www.google.com/search'}\n    ],\n    adblock_lists: [\n      {name: 'EasyList', url: 'https://easylist.to/easylist/easylist.txt', selected: true},\n      {name: 'EasyPrivacy', url: 'https://easylist.to/easylist/easyprivacy.txt'},\n      {name: 'EasyList Cookie List', url: 'https://easylist-downloads.adblockplus.org/easylist-cookie.txt'},\n      {name: 'Fanboy\\'s Social Blocking List', url: 'https://easylist.to/easylist/fanboy-social.txt'},\n      {name: 'Fanboy\\'s Annoyance List', url: 'https://easylist.to/easylist/fanboy-annoyance.txt'},\n      {name: 'Adblock Warning Removal List', url: 'https://easylist-downloads.adblockplus.org/antiadblockfilters.txt'},\n    ]\n  }\n\n  for (let k of CACHED_VALUES) {\n    cachedValues[k] = await get(k)\n  }\n}\n\nexport const on = events.on.bind(events)\nexport const once = events.once.bind(events)\n\n/**\n * @param {string} key\n * @param {string | number | object} value\n * @returns {Promise<void>}\n */\nexport async function set (key, value) {\n  if (JSON_ENCODED_SETTINGS.includes(key)) {\n    value = JSON.stringify(value)\n  }\n  await setupPromise.then(() => cbPromise(cb => {\n    db.run(`\n      INSERT OR REPLACE\n        INTO settings (key, value, ts)\n        VALUES (?, ?, ?)\n    `, [key, value, Date.now()], cb)\n  }))\n  if (CACHED_VALUES.includes(key)) cachedValues[key] = value\n  events.emit('set', key, value)\n  events.emit('set:' + key, value)\n}\n\n/**\n * @param {string} key\n * @returns {string | number}\n */\nexport function getCached (key) {\n  return cachedValues[key]\n}\n\n/**\n * @param {string} key\n * @returns {boolean | Promise<string | number | object>}\n */\nexport const get = function (key) {\n  // env variables\n  if (key === 'no_welcome_tab') {\n    return (Number(getEnvVar('BEAKER_NO_WELCOME_TAB')) === 1)\n  }\n  // stored values\n  return setupPromise.then(() => cbPromise(cb => {\n    db.get(`SELECT value FROM settings WHERE key = ?`, [key], (err, row) => {\n      if (row) {\n        row = row.value\n        if (JSON_ENCODED_SETTINGS.includes(key)) {\n          try {\n            row = JSON.parse(row)\n          } catch (e) {\n            row = defaultSettings[key]\n          }\n        }\n      }\n      if (typeof row === 'undefined') { row = defaultSettings[key] }\n      cb(err, row)\n    })\n  }))\n}\n\n/**\n * @returns {Promise<Object>}\n */\nexport const getAll = function () {\n  return setupPromise.then(v => cbPromise(cb => {\n    db.all(`SELECT key, value FROM settings`, (err, rows) => {\n      if (err) { return cb(err) }\n      var obj = {}\n      rows.forEach(row => {\n        // parse non-string values\n        if (JSON_ENCODED_SETTINGS.includes(row.key)) {\n          try {\n            row.value = JSON.parse(row.value)\n          } catch (e) {\n            row.value = defaultSettings[key.value]\n          }\n        }\n        obj[row.key] = row.value\n      })\n\n      obj = Object.assign({}, defaultSettings, obj)\n      obj.no_welcome_tab = (Number(getEnvVar('BEAKER_NO_WELCOME_TAB')) === 1)\n      cb(null, obj)\n    })\n  }))\n}\n\n// internal methods\n// =\n\nmigrations = [\n  // version 1\n  function (cb) {\n    db.exec(`\n      CREATE TABLE settings(\n        key PRIMARY KEY,\n        value,\n        ts\n      );\n      INSERT INTO settings (key, value) VALUES ('auto_update_enabled', 1);\n      PRAGMA user_version = 1;\n    `, cb)\n  },\n  // version 2\n  function (cb) {\n    db.exec(`\n      INSERT INTO settings (key, value) VALUES ('start_page_background_image', '');\n      PRAGMA user_version = 2\n    `, cb)\n  }\n]\n"
  },
  {
    "path": "app/bg/dbs/sitedata.js",
    "content": "import sqlite3 from 'sqlite3'\nimport path from 'path'\nimport { parseDriveUrl } from '../../lib/urls'\nimport { cbPromise } from '../../lib/functions'\nimport { setupSqliteDB } from '../lib/db'\n\n// globals\n// =\n\nvar db\nvar migrations\nvar setupPromise\n\n// exported methods\n// =\n\n/**\n * @param {Object} opts\n * @param {string} opts.userDataPath\n */\nexport function setup (opts) {\n  // open database\n  var dbPath = path.join(opts.userDataPath, 'SiteData')\n  db = new sqlite3.Database(dbPath)\n  setupPromise = setupSqliteDB(db, {migrations}, '[SITEDATA]')\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @param {number | string} value\n * @param {Object} [opts]\n * @param {boolean} [opts.dontExtractOrigin]\n * @param {boolean} [opts.normalizeUrl]\n * @returns {Promise<void>}\n */\nexport async function set (url, key, value, opts) {\n  await setupPromise\n  var origin = opts && opts.dontExtractOrigin ? url : await extractOrigin(url)\n  if (!origin) return null\n  if (opts && opts.normalizeUrl) origin = normalizeUrl(origin)\n  return cbPromise(cb => {\n    db.run(`\n      INSERT OR REPLACE\n        INTO sitedata (origin, key, value)\n        VALUES (?, ?, ?)\n    `, [origin, key, value], cb)\n  })\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @returns {Promise<void>}\n */\nexport async function clear (url, key) {\n  await setupPromise\n  var origin = await extractOrigin(url)\n  if (!origin) return null\n  return cbPromise(cb => {\n    db.run(`\n      DELETE FROM sitedata WHERE origin = ? AND key = ?\n    `, [origin, key], cb)\n  })\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @param {Object} [opts]\n * @param {boolean} [opts.dontExtractOrigin]\n * @param {boolean} [opts.normalizeUrl]\n * @returns {Promise<string>}\n */\nexport async function get (url, key, opts) {\n  await setupPromise\n  var origin = opts && opts.dontExtractOrigin ? url : await extractOrigin(url)\n  if (!origin) return null\n  if (opts && opts.normalizeUrl) origin = normalizeUrl(origin)\n  return cbPromise(cb => {\n    db.get(`SELECT value FROM sitedata WHERE origin = ? AND key = ?`, [origin, key], (err, res) => {\n      if (err) return cb(err)\n      cb(null, res && res.value)\n    })\n  })\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @returns {Promise<string>}\n */\nexport function getPermission (url, key) {\n  return get(url, 'perm:' + key)\n}\n\n/**\n * @param {string} url\n * @returns {Promise<Object>}\n */\nexport async function getPermissions (url) {\n  await setupPromise\n  var origin = await extractOrigin(url)\n  if (!origin) return null\n  return cbPromise(cb => {\n    db.all(`SELECT key, value FROM sitedata WHERE origin = ? AND key LIKE 'perm:%'`, [origin], (err, rows) => {\n      if (err) return cb(err)\n\n      // convert to a dictionary\n      // TODO - pull defaults from browser settings\n      var perms = { /* js: true */ }\n      if (rows) rows.forEach(row => { perms[row.key.slice('5')] = row.value })\n      cb(null, perms)\n    })\n  })\n}\n\n/**\n * @param {string} url\n * @returns {Promise<Array<string>>}\n */\nexport async function getNetworkPermissions (url) {\n  await setupPromise\n  var origin = await extractOrigin(url)\n  if (!origin) return null\n  return cbPromise(cb => {\n    db.all(`SELECT key, value FROM sitedata WHERE origin = ? AND key LIKE 'perm:network:%'`, [origin], (err, rows) => {\n      if (err) return cb(err)\n\n      // convert to array\n      var origins = /** @type string[] */([])\n      if (rows) {\n        rows.forEach(row => {\n          if (row.value) origins.push(row.key.split(':').pop())\n        })\n      }\n      cb(null, origins)\n    })\n  })\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @param {string | number} value\n * @returns {Promise<void>}\n */\nexport function setPermission (url, key, value) {\n  value = value ? 1 : 0\n  return set(url, 'perm:' + key, value)\n}\n\n/**\n * @param {string} url\n * @param {string} key\n * @returns {Promise<void>}\n */\nexport function clearPermission (url, key) {\n  return clear(url, 'perm:' + key)\n}\n\n/**\n * @param {string} key\n * @returns {Promise<void>}\n */\nexport async function clearPermissionAllOrigins (key) {\n  await setupPromise\n  key = 'perm:' + key\n  return cbPromise(cb => {\n    db.run(`\n      DELETE FROM sitedata WHERE key = ?\n    `, [key], cb)\n  })\n}\n\nexport const WEBAPI = {\n  get,\n  set,\n  getPermissions,\n  getPermission,\n  setPermission,\n  clearPermission,\n  clearPermissionAllOrigins\n}\n\n// internal methods\n// =\n\n/**\n * @param {string} originURL\n * @returns {Promise<string>}\n */\nasync function extractOrigin (originURL) {\n  var urlp = parseDriveUrl(originURL)\n  if (!urlp || !urlp.host || !urlp.protocol) return\n  return (urlp.protocol + urlp.host + (urlp.port ? `:${urlp.port}` : ''))\n}\n\n/**\n * @param {string} originURL\n * @returns {string}\n */\nfunction normalizeUrl (originURL) {\n  try {\n    var urlp = new URL(originURL)\n    return (urlp.protocol + '//' + urlp.hostname + (urlp.port ? `:${urlp.port}` : '') + urlp.pathname).replace(/([/]$)/g, '')\n  } catch (e) {}\n  return originURL\n}\n\nmigrations = [\n  // version 1\n  // - includes favicons for default bookmarks\n  function (cb) {\n    db.exec(`\n      CREATE TABLE sitedata(\n        origin NOT NULL,\n        key NOT NULL,\n        value\n      );\n      CREATE UNIQUE INDEX sitedata_origin_key ON sitedata (origin, key);\n      INSERT OR REPLACE INTO \"sitedata\" VALUES('https:duckduckgo.com','favicon','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAQ3klEQVR4Xr1bC3BU13n+zr2rlZaHIskRFGzwLtJKQjwsBfMIxkHiEQkBZkWhCS0v0ThpQlqkjt1xGnssOVN7OvUE0TymcZIiXKeljSdakHnIULN262ZIGyNjENKupF3eIAxaSQhJu3vP6Zx79+7efWnvIpEzo9HOPf/5z/9/5///85//nkvwB2hXt+SXiRQlFORJgaFEnZIRlPHfhMGhPqMEbQLYZUlA26x3u0LPH5WY5FEwvmkrMjMhYAMjm1QlH3YeGRzCjhBqsM+wd3gelk+icRMKwDWbdbckSvtEJoZWeSIFlojUJkrigSfsrqaJ4jtuANw2c5ZBMNYSxvYByEogmIMR8iGhzMPAPAEE2ix2j1dLK/OBoYSAmJlAzISxlYDiInGalxFyIEB9jdF8UgVmXADwFQehrwKCOWpiLwi1C1Q8MtPutKt9qpKy3wsoYRBkwAiol1G08d/R4NywFdioIG0CE2yxAFMPmNAwHot4KADctiKzSKSDJGqFCBSB/PDb+cpwujQhYGPASsIYVzgaqLgLxvkwQtoI8KGfGuwWe4eHg5eGNBsHPJoPAxwSE2s43SO3gCu2Ahsh7KB2NbjAlAkNs4O+ecVm3c2ItE/AxMQCCqmNMPGAlr8QC4SXMVIzW2NxesBIyQKu2grqAfZqBGOBNHBf5M8MMNYCY8YCPTKNReMFyIEAgvMJxlrQKHlAGmbZnfV6J9INwBVb3kFA2B3awyG1iRBrnrC72rhVANL+OLFArxwp0lEPINbx1b5ms5ZI4O6otTbaNNveXaOHqS4AopWnYHaGgDwBgeGgAMID1B+8jS2HPhCSAhCtPKAw5shT4IwaCySjCZMKFiJj/pIQEIHe6+B/oxfOPkpwvAJQrlhipJWqso41+ZgAXLZZ9xOgNsxAUZ4HOQA8EIZaX8ESsK9shuXZNcjMzIyZc/TC7zB05jd4cPY02NDAowCkhgfJWFdF45N2V12iCRMCIEdyplWSNj15RFE+8rnCmltAVsWfgK3cjJz8uQkVpEMD6D/8Iwy2HJpwEAiBDMLlTZGWoD6PN2FcAPj+LQSkcxDVzG5s5Tnjwe+8iRlPrwjNYTKZwP8SNZ/7Enpf3gEOyES2uCBI8FKDWBovT4gLwJWN1jNMCKahTGqjAi0H0swCw7lEwnIXMN6/F+oempEv/55S+gz+aNEKZM14PGYojw+36jZNOAiUoBTwewQqnAFRdgdC4Zjd4iqPFiIGALfNuptoTJ8FmZFAmjtsEcnXbMqqzTAtXSMHRWFybEzQcuDWMPTBb3D/g+aJAUOClxn8Fr5oRLNojKDGEnWQigCAp5vEbwwpyoAGy1FnvWej9QwISXQwiUAjbdFKTPuLV2GYFrviyWDj7nD7+zvgc3ckI03ez5jD3OIqdz9XUE8AJXnjwKT5LNoDVCQAEcSSx3ys2+LeaN1NCImI+Akj6vYXMXvrN5ILNwaFAsJOcKsYb2OM1VhaXE2e9XluiKJ8DlEXVeUdAoCvvuQ3ukU18DFUQ/Q5Ip6NIdGDyp0o/vb3xyuzPJ7Hhhu1tnG7gyTBK6b5LJCMZSBolo0g+Ey1gjAAGwtrQdh+TkSBtryjzlJuPlDNZyzlZ+bjsfp/xvTp0ycEAM5koOUQ7v3i9YngJ7tx93MF5wQEy3GM1FlaOuXzSwiArvV5bjFoJmCsBqLfrnf1b63/FpZ986/HLeyhdy/gkvNzCGCo+fpTML2xRbaG8bSwFfCjtOLKkiR58o91W0IAuKusJUwk8hbHB1iPO7PdGwtrGRSLGKtJ6SbcfeFnWLp0qUx2+foAfnn4PC5f8SJzchqm507Gy3Xh/CARr08u9mLwvg85menw9g/D2XMPX5vuxp0DLyUTIWk/gbLirqqCPtXFicRKLcddvOYAdG/kKS+RU14G1pjX4qrjJkM0FdxEswxaFsD03TdgtVplkgMHP4H1ySxUrZqTVDA9BFe/sWrcVsCI4tLx9FQA0CjLkZGBCFpEMiE/f7oSWdu+GwLgv//vBlY8PTPZMN39d3/xOgaOjj9tjtZLBYXw6E8lY59q/gXHndndPCDqMH8+hgOQrQFAt2YJCAeHRnHkg3YUWnKxeP4T8nZ4bd9EnLZJXV5LZ6NT4waC6MsmXRsLbATKFgFQe15LV3UPT4WhL/HhAEzZ8i0UFxfHqMQVudE7gE2rijFz2tjZoDp4a9076HDfwYHvPQcOBh/r2bZ43FsiAXPMaXGVd2/MbwbkAivPCapJ94aIra4h7z1nffeGAqZ3JT9fXAlW8aehIKiO+/tfOvBOyzmsWpqHxfNnyf/1gLDApsTd7RtLkTk5A9/++jLc/NsdGP7sd3pFSkiX954zRl/SVZXfTAQFEQqh3GCAhwaoW+9sHIChZ20oL488Zyz/s5/KK8jNmCteZJkmK5WsqRYgB9TvPScD1/dvP0bfv/4o2dCk/YJBsAQCMAugvJADRqmddG2wnkHQ3CllpUQQs0iQIClHAA9m5uPqpr2oqqqKIN/3xlF8cLY79OzX+7ejyJKrhyX+98I1TJ2cHqLnANxLAIAhOwBDthTiO9KTnnAOBqGcUckrCMqWDzAH4QkQiJIn53MTWV9Yy4IZoR5paboJrj2vY9myZcjJyQkN4av/8j+2Bv14nuzLD9uiAeBKTyoeRoZlVP6vbXREwK2fT4PvZlrMdISRurxjnY1dqoszyUO61of9Pf+Yk7g2FNQTFjw96ZTY9eevo6h0EcxmXe89dHINk3nffQ2jn70lK5wxZxQcgLEaByCeJTCCBut7znqtzsSlAcAaBAApAnDNthc5S8qwcOHClJULDZD6wUbOA0MfhR6x4fPKM99lXXwDfQbceTcnrvIygyAAWp0nBIC7iyvhX70VK1YkT3ljNJH6QW++CNb3ji4l4xHx1e7/eCoetCcuwT1SAO5bFuDGuj0xgTCZRmygBfTaNwGpPxlpTD9f7aF2EwY+ngL+W1eLZwFOHgShBMEC7gI8COrMAtVJ/VNz4NnxSkwgHEsoNvRfoD0VuuRWiXiAG7pokleaK59q44ci67HORmfI7SUPca4Ll7skKlgMBpgZVfbJVJpn5yswf2lp6EyQbCztqQTT+LtK33f6C3IEN87wR7DgZj48xhaXbD45BAhCeSAAjygE8xzGHMRVld/MgqkhJ+D7JKDuk3rYKjQ3q/Zg8rI1WLRoka5B9PLXwF1A2wZ/Pxl3fh3eSnUxSolIyXPUBSagdtJZFU6FGSF1Rcc6Gzur9KfC6vz3llRi+CuxGWEi+XjQk/1f0/gK33hrWkoqceL0mX6M3ojd96MZFR53ko71hfw2i1rnaCCd6wpsar2MH4YKj3dVc7dgOqvA6iTDj+fjum0v1q5di7S05MLwcRyA6OjPQeBukMjcubLGGT5Z6Yw5I0gPugqPCbfe/mJC8AhjjoITrvLOqvBhCAzV5FJlkVkgau4veQpPdFtkq0gxF+AZYc/zsRlhsuUc/u12GEQ7BBONIdWCIGRQWelErfc/csBdKDECaCg87qzvXBcO+pQJFrkg0qF5KBClIEJZ6nHg8q5XYEkhEPJ5rv9gL+7/9jQmzxvGlHnDmFw8HBeMRIpxkO6dSmwx6rhYvSRP0YluFQDrfgRLYgBrLDrhqtOCkmwV1f7eNdtgfGZdzNF4rPFXX9qBB+cjj7qmOaMw5Y3CFDTxaOvgSg/3ZMhboh7fBxRlO9bF6ilbwKXKojJC1K1PIb5UlfqZoP+plehftVWOA3rbrR++hP7TwXqM3kEp0vEzwNzjznrtojImlM892eEIlcW1nRSoNqX7HKOjSqlMb+OB8Eb1Xrk2MNabYS2/z3/1Y9z91fjP+mPJmJ7uyx4eNZYJocqXssh8TAiAS5Wa7RDMUXzSVX6xsuCgAITuBekBoucv98u5gN6XJNz/r722Vw/rh6KhQNO8k86a9krrGRIu8zXMPalcpAoBcM5mzjING92MqHcChPKRjJG2yGfJZbi27QXMfPqZuDXCeKP5u0DnlsXJGT8EBWHwDpt8loyRjBIEizzqs9LgTdWIl6MdFdb9jATfDzC0Fbc6S9vXRSQOScW4+6wNhtWbUwqE7r02jPaM/2VotHA8sSs+0dnYXlFwjhDltRhhrLGoNXxlJgIAbgXpw0Y3VCvQMECQQTIE7s9dgjtrtqV0MrxnP4TbP5uQ94Bh8TQLCDXzY/COmnwWdfUjXEAdebGyqJ6w0OVDLyFEeVHCGK+jJboMHZrYlzsT17e9INcG4l2Wigeg//Z1dO1aHdM1miHgky9NxcX5UzDvwn18+X90H5vjys0IaZh3siPiEmXcKzLtFYVcWfXKe1txa2dp+1d5ykx07Vfuv/qhHAPUEtlPPm3AcOA+SnKXo3TacjyWEfsW+fLf7IzIB67OykDruscwkKmc9XN7fdjx9s1kBqj0M1Zd/L7THk+PaAZxAbi41loCQdDcB2JN81qdNRcri3aDyfeEx2y3/ngvvrh0ZahE9vzpyHM/B2LN7GoUZi/Eg8B9OPvOo+PjwzIAmQMB9Oam4dyi2BcpdW/qKI0RUjPvZEfTxYqCgwAJ72CUls475ZJvpGtbwmty7RW8MILw22GVsQ4QvEsrQNeGS2TRAKgCZItzMEp6ZRD0tKQAJJCRAHXFrcp9AN0AcMIYFHWC8GDOfPRuCJfIEgFw8y7DjMeSXlYNybz97ZuyK8RtCWVTrDcRwElnv7CWV4yE0AUpwkjNvFMdTTwmUMgXDmICYyAzB9drXg6VyCYKgC2Hb+OJqyPRungFsBru8xfXFu1mylX+YCygjvmnYq/G6XIBlehcmTlLMKafEcNBkW+mTfNbnTX8KO2jrDmiLziQA2BZpJTIXjv7HVwdDL8l4iQjPqBvMDUL2PPWdWT2h98JSECbUSDVc092eC5wn2dhn+d91DdaXuqI/DQnJRfQgpCWltastQTt5J99taieRH0ncGfDHkxdvlpOi9/8/Yvo7DsfMbfPD9y+R/F4rgBBULooBUqmLUfvlU9wa1LMSqP2H0JB0MtADix4v6M+7iIw6vD7/dXJlOdzJnUBrdQcZaZBGYCXEDTMb+1s5JaSlm7cr/b3L6uAr0wpkcUDYJJhCnxDuXDdVSwjLycPz8x6Bjuf2gHvqWa0//wVdOdPQo/VhGuzMuSVr3nrOghhTf5RXx1X7gIP1ErhJuSGvJ9bp56gmjIAfIA8KdXsDvJ7duogTGxYcLrDwYEwGDNqh2cV7bqz+XkzPxqfvPrvONrzL7JMXHG+Ba6ebZN/J2rOnavhu6VckCI04GFi2qGAb6SRK/7ZmqIyRqRXCcKxSaYTUMcXQ6/yDwUAH8TzhAAVDgpC+CtQ/pwDAUIOLHzfaW9ubs4yGo22FStW7PMbh0sOd/6TnASV5H55TMVV4fs/avVe+bt9TSKjh9T9+zxPxhjbF604pWgzCLQm3j6fDIyUXCCaGfd9Fu97QRrwQDTYufDF7zv5SxddGaSWP2PMIQhCOQdbIsIuSAEbBEPM53mEKLEgmaKJ+scFAGfKTV4UjfshaLIu7WwcDIiOzLW2LNOMWZ9mr9v6hbTc6XJSz5SPI0ONDfZlDX561jvq6TH3f3TMM+J2muMordBT1iRJSix4WOUf2gXiTahslxm1RPLvSij0eCSVlVZiAQ3GgvGym1AAtMKcX82TJGwikMpAYsw2NblZwMMgOgTgyML/DH+FmhqTxNTjdoFkgpyrLDKLEsoYg5lAkk2eQeAnzegM0ktA5cMKg/ghIfBIIhylJ1P/GjSZTNr+/wca6dPApxwOmgAAAABJRU5ErkJggg==');\n      PRAGMA user_version = 1;\n    `, cb)\n  },\n  // version 2\n  // - more favicons for default bookmarks (removed)\n  function (cb) {\n    db.exec(`PRAGMA user_version = 2;`, cb)\n  },\n  // version 3\n  // - more favicons for default bookmarks (removed)\n  function (cb) {\n    db.exec(`PRAGMA user_version = 3;`, cb)\n  },\n  // version 4\n  // - more favicons for default bookmarks (removed)\n  function (cb) {\n    db.exec(`PRAGMA user_version = 4;`, cb)\n  },\n  // version 5\n  // - more favicons for default bookmarks (removed)\n  function (cb) {\n    db.exec(`PRAGMA user_version = 5;`, cb)\n  },\n  // version 6\n  // - more favicons (removed)\n  function (cb) {\n    db.exec(`PRAGMA user_version = 6;`, cb)\n  },\n  // version 7\n  // - more favicons\n  function (cb) {\n    db.exec(`\n      INSERT OR REPLACE INTO \"sitedata\" VALUES('https:beaker.network','favicon','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACXklEQVQ4T6WTPWgTYRjH/88ladCI1RQKVScLDtl0UelSnZQWETFTsdQkipg7paWDupy3iILY4T76QVKjOJl2EqRTEXQoDgqCgoNCQFGwKLUfJrm795H3kisnddJ3ufde/u/v/T9fhP9cFLkv9yz/x8fPpRqN5G5mZYei+PFm0/1BlNqIx3/6jUaKenp61g3D8KQ2BGxeVtVCP4NvAzgcNUfAF4DfALQXoKuWVVqMAgKtqubyDCoR0AR4npneAXCJKMPgAQBd0iWB71jW7I3Wvr1UNd/HwAsCPggB1XHKC1EHmlY4Ihg2wIcIcIi2j5mm2QgAmqYlBa/PATTIhFOOWX4iz9Lpr0FOarWUUqlU6i0IL4BRY072OY6zFgCKxeEuUGIZwFPbKg/ouh4HIAzDEG0XNDIykpQQVS08YPCw8EXv5OT9j20H+YOC8YpApmWVrsjXpb1oCLqe7TCMarNYzF8H4RYLnJRhtgHnM4KVt2BM23b50t8A4Zmq5nQG3STQMcsqPQsAo6P5tOviG0DP19a8E9KqDCOsdTabjWUyiLUc5KogOut77r6pqYefA4AULy9/mgYhB6bLtl2aDJMrv6ZpNmXJNK1wRjDPE3gxkVgdnJio/tosY7F44QBIvAQQA9M111UezczMrLQcZrc1vM7TxHwXwB6F6Khplpa2dKKqFo4DXGUgTcASA+/B8EHYD6CfAI+Zh2x79nGY4C2trGkXe5n9MQaGAHS2hXUC5ohwzzTLr8PS/tGJkblgXdeVlZXazjqwK+F3xDwv9r27u3s1TGpbGzRZdBr/abB/AxcoGCCqR8KvAAAAAElFTkSuQmCC');\n      INSERT OR REPLACE INTO \"sitedata\" VALUES('https:hyperdrive.network','favicon','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAABeCAYAAACq0qNuAAAKNklEQVR4Xu2cDVBU1xXH/2fZRYS4KOyCiJ1o62QmHZM2Tmr9SCoZnbSZNu2IY0dFAYNB/EBLxFDECGo0RhFQ/EJB0gZsh7ZCMulYo2OcOHU0GJM2Mya1pn4kKp+uYARZdvd27rrg7rILu+89XHzcN864+7jn3Pt+7+y595x73iOIIyAEKCC9ik4hwAfICAR4AT5ABALUrbB4AT5ABALUrbB4AT5ABALUrbB4AT5ABALUrbB4AT5ABALUrbB4AT5ABALUrbB4NYJnjGkAhADQOq6P32jmdK38Mz/nfL7rHG/m/NkTInc53p+zfue/8882t3E4G563sXUCuEdEznpl365+s3jGWETexl1zvrl26bk7rS16c4eZGOz/NGBkB0Bg9v7t5x0n+Jeuv3Wf94zcBQQxxhjxG0xWroPr5vIEZmMgDe+sS7fXvohpgrU6W2hYKL4/dhxlZ6+wBQdrrwA4QET/lk3bSUG/gC8vLx9+9NjHq9rudiQCGA0HYPkDJwKYHTi3QMaguf+diAg2/r3r/652cvoMHjIEv/r1XFNSwosVANYS0R05+pxlFQefkVE19H9XDr/CmGYlGMY6uRmlxvyw9dieGv+jC2+++XougBqi+79WuYei4GfPZkEdHXN/CY1mLYGNZ4yGyh3gQJAnQtu0n718IiNjzutE9KUSY1IYfMJTHZ1sIxheAKBXYoADRYdOp20o2lP0l9HGERuIqEHuuBQDn5q6ylDX8O1qME0CQCMBBMkd3ACTtxmNUddLDxSWASgkolY541MEfG5ubvDnn19MAGleA9gTjCFYzqAGriyzTJk6/eus1SnFAMqI6J7UscoGzxdx8b9NmmQzWzYwYDKAMKmDeRTkdDqted/ewn8ZDBF5AI4SkVXKuGWDT0vLiL1R15gDZp1JRFH3l3jqPoxRxtbS/UXHAGQT0X+lXK0s8FVVVUPfPVS9mEBLCRjDGHRSBvEIylinTJ52PSsrtQTADiK66+81SAbP0wHx8QumW222XAKeYUCov50/yu11Om373j2FnxmNEesAnPA3pSAZfEpKxrjGpvo8IrzEGBvBo8dHGaT/Y2fMaIwylR4o+huA9UR03R8dkmCVlJSE//3IR+lgmlcBjFJBdOoPs+62ROj86aRpl7OzUvMBvENEPKHm0+E3eMaYNn524kyrxfZ7MPZDR/bRp87U2Eir1d7Zvavg9MiRkWuI6Lyv1+g3+MRFK5++3dS4QY3Rqa/QnNvxpFykwVBfdmDHOwDeJqIWX/T4BT4/P99w6tS5TAaar9Lo1Bdmntrcmzjx+Qs5a9I2Anjfl0Saz+AZY8Hxsxck2DptmQz4AYAhUkepPjnGdFqdaffuwqPR0RE5RHS5r2v0CTyPTlNTV06ub2zKA8MUtUenfUHz8neLwRD5TVnpTp5O2EdE7b3p8Ql8TkFB7Bcfnx9U0akU+AS0Pfvs87Vr16blADjd29q+T/CMsaGzZs1fbLFiGRF7fBBFpxLYM6bVaRuKd2yvGjXKuJGIGr0p6RU8j06TU5bNMDXfXjcYo1MJ5HkY2RkRGXHxYGnxFgB/JiKLJz29gs/dvP+Jz86e5CHxzwEWOfiiUyno7SUTdyZMmHRi3bp0vra/4Bf4M2fO6Ldu3b3CYrUO6uhUGnpYg4K0N4p35pfExhqLPCXRPFo8Yyxo4aL0+FvNJhGdSiTPa3EiIyLPHzy4cy2Ak+4TrUfwmzYV/vhsbW0eAXGMMb1wMVLo28tOmif85JlDuTmZeURkcol43VXW1dVFrV+/NSs6OnbOtBnTo58c972gqKgRvHJFSu+DToYX+zQ0mPDV19/i5LHj5ps3b17YuvWtbL1ey3eruouwXGjyBBiAJACrAHtNDC+/E4c8AtzSDwHgE233Brk7eJ4K4CnOGQAek9efkHYQ6ADwBYDXiOhUF5Vu8PbKQ+BlANsAjAPUv3f6EE2jjqcRAGwhIn4jHrzLwAF+JYA3AEQ8xEENhq543oZb+/KuzXFni+cFSLw+cAWA8Le3leHK5S/R2tqKtrY22GyKVimrFrZGQwgNDYVer8eYsU8ia3UKv1ZeAnLNwbeCT7LO4HkR0lsNDS2vZK95Y3hTU7Nq4TzMCzMYIrF5Ux6ioyN4JUI5gNW8EMoZ/JDGRtP2pct+l2Q2W8TEquDd0el0KN5ZaI6JGXEcwEJee+kMPiTl1fTC5qbmJLVU+SrITrYqo8FgKy3dcRrAAiK60g2+vLw8pKbmeBEDmy82OmRz9qTAOmXyC7VZWYsS+QTbDT49PX3I1Wu3iojYXMYQ3i9dD2KlfFM8Jibm3N49+fNdwCcnJ4eYTJ3C4vvJODj4sLCwc5UV+7mrudht8XHJySHhps4ikC1R+Hjl6XPwBKqtrq7g4B+4mri45JDwcA6eJTAm0gXKo4eVCJ/WVFe6WXxccoh+uKWAYJsnfLzy2O1PIwKfvlddyX28k6vh4MM7CwG2QK2rGr1+GKZOeREzZ8bBamWo+uuH+OTsCdy929YnaTmy9twM8YebqbamuoKvanqCJ7Kpch0/dszjKCzc1GNfwWy2YPny1ahv8P48mRzZ7mzkA/CDx8dza/3jH/Z63czh8JMXLvFo+XJknX9Gvbqa8PDO7Y7JVVXr+Jd+MQtpafG9upOinX/CRyc+6NFGjqw7eIerSSKi/zxYTjpWNWqMXPeXFPMkVa/gb9xoxpKlPDHresiR9QLeg4+3r2qsyWpbx/sCr77+FlIXp0sC7022h6th+OS9mkpu8a6Tq30dDzaPAcP6nOYfoQa+uIt9+w7jyD/4UzWuhxxZPy1efev4viZIXhmQmLQEra09X84hR7YneJzzHkAxW5Ian+DztiTk0DMycnD5ylWvv2E5sq7LSS/gHa5mgRrBcwDOQRD/Xl19Ev88/aFHS3e/C3Jk3QKonut4HrkSWILafPxAmI6cIleeMrjkspx0pAzmqe2VJwMHPM7WVFfOc9mB4mlhvclu8YlqdTWBvAH2tDBpTlUffpeDv9Ft8Xwj5JYA35/3xjrssWFHKir28XX8LU/ghY/vH/zmUbGj3t+7exuvMvjOZbO7uuY4TwsLH98P4Ilgfm7qjMrMzIVL3etqQhYtWl7U1GRS7XKyH3j6rNIQaWgvK7M//Z3B6yddCprq6u5uTl+xdKHZbBnhs0bRsE8C9wuaCtpiYiL4+8wyicjsXjs5q76+ecmanA1PNzc3DROPVvbJtM8GjhI+Fh0dcRvALgD8McxO9/p4/p7IiQBmb9lWOv3q5a9Gt7S0hLW3t5MoWu2Tsb2Bl6JVXi3MX5G7CcAHLkWrXWod5doGAL8BwKvKxvPq4cH6ThrfcPfaygzgEoD9jjf3fWdPISigWKiQQECAlwBNCREBXgmKEnQI8BKgKSEiwCtBUYIOAV4CNCVEBHglKErQIcBLgKaEiACvBEUJOgR4CdCUEBHglaAoQYcALwGaEiICvBIUJegQ4CVAU0JEgFeCogQdArwEaEqI/B9G/wubKQ/89wAAAABJRU5ErkJggg==');\n      PRAGMA user_version = 7;\n   `, cb)\n  }\n]\n"
  },
  {
    "path": "app/bg/dbs/watchlist.js",
    "content": "import lock from '../../lib/lock'\nimport * as db from './profile-data-db'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} WatchedSite\n * @prop {number} profileId\n * @prop {string} url\n * @prop {string} description\n * @prop {boolean} seedWhenResolved\n * @prop {boolean} resolved\n * @prop {number} updatedAt\n * @prop {number} createdAt\n */\n\n// exported methods\n// =\n\n/**\n * @param {number} profileId\n * @param {string} url\n * @param {Object} opts\n * @param {string} opts.description\n * @param {number} opts.seedWhenResolved\n * @return {Promise<void>}\n */\nexport async function addSite (profileId, url, opts) {\n  var release = await lock('watchlist-db')\n  try {\n    // get date for timestamp in seconds floored\n    var ts = (Date.now() / 1000 | 0)\n\n    // check if site already being watched\n    var site = await db.get('SELECT rowid, * from watchlist WHERE profileId = ? AND url = ?', [profileId, url])\n    if (!site) {\n      // add site to watch list\n      await db.run('INSERT INTO watchlist (profileId, url, description, seedWhenResolved, createdAt) VALUES (?, ?, ?, ?, ?);', [profileId, url, opts.description, opts.seedWhenResolved, ts])\n    }\n  } finally {\n    release()\n  }\n  return db.get('SELECT rowid, * from watchlist WHERE profileId = ? AND url = ?', [profileId, url])\n}\n\n/**\n * @param {number} profileId\n * @returns {Promise<Array<WatchedSite>>}\n */\nexport async function getSites (profileId) {\n  return db.all(`SELECT * FROM watchlist WHERE profileId = ?`, [profileId])\n}\n\n/**\n * @param {number} profileId\n * @param {WatchedSite} site\n * @returns {Promise<void>}\n */\nexport async function updateWatchlist (profileId, site) {\n  var updatedAt = (Date.now() / 1000 | 0)\n\n  var release = await lock('watchlist-db')\n  try {\n    await db.run(`UPDATE watchlist SET seedWhenResolved = ?, resolved = ?, updatedAt = ?\n    WHERE profileId = ? AND url = ?`, [site.seedWhenResolved, site.resolved, updatedAt, profileId, site.url])\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {number} profileId\n * @param {string} url\n * @return {Promise<void>}\n */\nexport async function removeSite (profileId, url) {\n  return db.run(`DELETE FROM watchlist WHERE profileId = ? AND url = ?`, [profileId, url])\n}\n"
  },
  {
    "path": "app/bg/filesystem/bookmarks.js",
    "content": "import { joinPath } from '../../lib/strings.js'\nimport { normalizeUrl, createResourceSlug } from '../../lib/urls'\nimport * as drives from '../hyper/drives'\nimport { query } from './query'\nimport * as filesystem from './index'\nimport * as pinsAPI from './pins'\nimport { URL } from 'url'\nimport * as profileDb from '../dbs/profile-data-db'\n\n// exported\n// =\n\n/**\n * @returns {Promise<Object>}\n */\nexport async function list () {\n  var privateDrive = filesystem.get()\n\n  var bookmarks =  await query(privateDrive, {path: '/bookmarks/*.goto'})\n  var pins = await pinsAPI.getCurrent()\n  return bookmarks.map(r => massageBookmark(r, pins))\n}\n\n/**\n * @param {string} href\n * @returns {Promise<Object>}\n */\nexport async function get (href) {\n  href = normalizeUrl(href)\n  var bookmarks = await list()\n  return bookmarks.find(b => b.href === href)\n}\n\n/**\n * @param {Object} bookmark\n * @param {string} bookmark.href\n * @param {string} bookmark.title\n * @param {Boolean} bookmark.pinned\n * @returns {Promise<string>}\n */\nexport async function add ({href, title, pinned}) {\n  href = normalizeUrl(href)\n  var drive = filesystem.get()\n\n  let existing = await get(href)\n  if (existing) {\n    if (typeof title === 'undefined') title = existing.title\n    if (typeof pinned === 'undefined') pinned = existing.pinned\n\n    let urlp = new URL(existing.bookmarkUrl)\n    await drive.pda.updateMetadata(urlp.pathname, {href, title})\n    if (pinned !== existing.pinned) {\n      if (pinned) await pinsAPI.add(href)\n      else await pinsAPI.remove(href)\n    }\n    return\n  }\n\n  // new bookmark\n  var slug = createResourceSlug(href, title)\n  var filename = await filesystem.getAvailableName('/bookmarks', slug, 'goto', drive) // avoid collisions\n  var path = joinPath('/bookmarks', filename)\n  await filesystem.ensureDir('/bookmarks', drive)\n  await drive.pda.writeFile(path, '', {metadata: {href, title}})\n  if (pinned) await pinsAPI.add(href)\n  return path\n}\n\n/**\n * @param {string} href\n * @returns {Promise<void>}\n */\nexport async function remove (href) {\n  let existing = await get(href)\n  if (!existing) return\n  let urlp = new URL(existing.bookmarkUrl)\n  let drive = await drives.getOrLoadDrive(urlp.hostname)\n  await drive.pda.unlink(urlp.pathname)\n  if (existing.pinned) await pinsAPI.remove(existing.href)\n}\n\nexport async function migrateBookmarksFromSqlite () {\n  var bookmarks = await profileDb.all(`SELECT * FROM bookmarks`)\n  for (let bookmark of bookmarks) {\n    await add({\n      href: bookmark.url,\n      title: bookmark.title,\n      pinned: false, // pinned: bookmark.pinned - DONT migrate this because 0.8 pinned bookmarks are often dat://\n    })\n  }\n}\n\n// internal\n// =\n\nfunction massageBookmark (result, pins) {\n  let href = normalizeUrl(result.stat.metadata.href) || ''\n  return {\n    bookmarkUrl: result.url,\n    href,\n    title: result.stat.metadata.title || href || '',\n    pinned: pins.includes(href)\n  }\n}"
  },
  {
    "path": "app/bg/filesystem/index.js",
    "content": "import { BrowserWindow } from 'electron'\nimport { join as joinPath } from 'path'\nimport * as logLib from '../logger'\nconst logger = logLib.get().child({category: 'hyper', subcategory: 'filesystem'})\nimport hyper from '../hyper/index'\nimport * as db from '../dbs/profile-data-db'\nimport * as archivesDb from '../dbs/archives'\nimport * as trash from './trash'\nimport * as modals from '../ui/subwindows/modals'\nimport lock from '../../lib/lock'\nimport { isSameOrigin } from '../../lib/urls'\n\n// typedefs\n// =\n\n/**\n * @typedef {import('../hyper/daemon').DaemonHyperdrive} DaemonHyperdrive\n * @typedef {import('../dbs/archives').LibraryArchiveMeta} LibraryArchiveMeta\n * \n * @typedef {Object} DriveConfig\n * @property {string} key\n * @property {string[]} tags\n * @property {Object} [forkOf]\n * @property {string} [forkOf.key]\n * @property {string} [forkOf.label]\n * \n * @typedef {Object} DriveIdent\n * @property {boolean} internal\n * @property {boolean} system\n */\n\n// globals\n// =\n\nvar browsingProfile\nvar rootDrive\nvar drives = []\n\n// exported api\n// =\n\n/**\n * @returns {DaemonHyperdrive}\n */\nexport function get () {\n  return rootDrive\n}\n\n/**\n * @param {string} url\n * @returns {boolean}\n */\nexport function isRootUrl (url) {\n  return isSameOrigin(url, browsingProfile.url) || isSameOrigin(url, 'hyper://private/')\n}\n\n/**\n * @returns {Promise<void>}\n */\nexport async function setup () {\n  trash.setup()\n\n  // create the root drive as needed\n  var isInitialCreation = false\n  browsingProfile = await db.get(`SELECT * FROM profiles WHERE id = 0`)\n  if (!browsingProfile.url || (typeof browsingProfile.url === 'string' && browsingProfile.url.startsWith('dat:'))) {\n    let drive = await hyper.drives.createNewRootDrive()\n    logger.info('Root drive created', {url: drive.url})\n    await db.run(`UPDATE profiles SET url = ? WHERE id = 0`, [drive.url])\n    browsingProfile.url = drive.url\n    isInitialCreation = true\n  }\n  if (!browsingProfile.url.endsWith('/')) browsingProfile.url += '/'\n\n  // load root drive\n  logger.info('Loading root drive', {url: browsingProfile.url})\n  hyper.dns.setLocal('private', browsingProfile.url)\n  rootDrive = await hyper.drives.getOrLoadDrive(browsingProfile.url, {persistSession: true})\n\n  // default pinned bookmarks\n  if (isInitialCreation) {\n    await rootDrive.pda.mkdir('/bookmarks')\n    await rootDrive.pda.writeFile(`/bookmarks/patreon-com-paul_maf_and_andrew.goto`, '', {metadata: {href: 'https://patreon.com/paul_maf_and_andrew', title: 'Support Beaker'}})\n    await rootDrive.pda.writeFile(`/bookmarks/beaker-dev-docs-templates.goto`, '', {metadata: {href: 'https://beaker.dev/docs/templates/', title: 'Hyperdrive Templates'}})\n    await rootDrive.pda.writeFile(`/bookmarks/twitter.goto`, '', {metadata: {href: 'https://twitter.com/', title: 'Twitter'}})\n    await rootDrive.pda.writeFile(`/bookmarks/reddit.goto`, '', {metadata: {href: 'https://reddit.com/', title: 'Reddit'}})\n    await rootDrive.pda.writeFile(`/bookmarks/youtube.goto`, '', {metadata: {href: 'https://youtube.com/', title: 'YouTube'}})\n    await rootDrive.pda.mkdir('/beaker')\n    await rootDrive.pda.writeFile(`/beaker/pins.json`, JSON.stringify([\n      'https://patreon.com/paul_maf_and_andrew',\n      'https://beaker.dev/docs/templates/',\n      'https://twitter.com/',\n      'https://reddit.com/',\n      'https://youtube.com/'\n    ], null, 2))\n  }\n  \n  // load drive config\n  let hostKeys = []\n  try {\n    drives = JSON.parse(await rootDrive.pda.readFile('/drives.json')).drives\n    hostKeys = hostKeys.concat(drives.map(drive => drive.key))\n  } catch (e) {\n    if (e.name !== 'NotFoundError') {\n      logger.info('Error while reading the drive configuration at /drives.json', {error: e.toString()})\n    }\n  }\n  hyper.drives.ensureHosting(hostKeys)\n  await migrateAddressBook()\n}\n\n/**\n * @param {string} url \n * @returns {DriveIdent | Promise<DriveIdent>}\n */\nexport function getDriveIdent (url) {\n  var system = isRootUrl(url)\n  return {system, internal: system}\n}\n\n/**\n * @param {Object} [opts]\n * @param {boolean} [opts.includeSystem]\n * @returns {Array<DriveConfig>}\n */\nexport function listDrives ({includeSystem} = {includeSystem: false}) {\n  var d = drives.slice()\n  if (includeSystem) {\n    d.unshift({key: 'private'})\n  }\n  return d\n}\n\n/**\n * @returns {Promise<Array<LibraryArchiveMeta>>}\n */\nexport async function listDriveMetas () {\n  return Promise.all(drives.map(d => archivesDb.getMeta(d.key)))\n}\n\n/**\n * @param {string} key\n * @returns {DriveConfig}\n */\nexport function getDriveConfig (key) {\n  return listDrives().find(d => d.key === key)\n}\n\n/**\n * @param {string} url\n * @param {Object} [opts]\n * @param {Object} [opts.forkOf]\n * @param {string[]} [opts.tags]\n * @returns {Promise<void>}\n */\nexport async function configDrive (url, {forkOf, tags} = {forkOf: undefined, tags: undefined}) {\n  var release = await lock('filesystem:drives')\n  try {\n    var key = await hyper.drives.fromURLToKey(url, true)\n    var driveCfg = drives.find(d => d.key === key)\n    if (!driveCfg) {\n      let drive = await hyper.drives.getOrLoadDrive(url)\n      let manifest = await drive.pda.readManifest().catch(_ => ({}))\n\n      driveCfg = /** @type DriveConfig */({key})\n      if (tags && Array.isArray(tags) && tags.every(t => typeof t === 'string')) {\n        driveCfg.tags = tags.filter(Boolean)\n      }\n      if (forkOf && typeof forkOf === 'object') {\n        driveCfg.forkOf = forkOf\n      }\n\n      if (!drive.writable) {\n        // announce the drive\n        drive.session.drive.configureNetwork({\n          announce: true,\n          lookup: true\n        })\n      }\n\n      // for forks, we need to ensure:\n      // 1. the drives.json forkOf.key is the same as index.json forkOf value\n      // 2. there's a local forkOf.label\n      // 3. the parent is saved\n      if (manifest.forkOf && typeof manifest.forkOf === 'string') {\n        if (!driveCfg.forkOf) driveCfg.forkOf = {key: undefined, label: undefined}\n        driveCfg.forkOf.key = await hyper.drives.fromURLToKey(manifest.forkOf, true)\n        if (!driveCfg.forkOf.label) {\n          let message = 'Choose a label to save this fork under (e.g. \"dev\" or \"bobs-changes\")'\n          let promptRes = await modals.create(BrowserWindow.getFocusedWindow().webContents, 'prompt', {message}).catch(e => false)\n          if (!promptRes || !promptRes.value) return\n          driveCfg.forkOf.label = promptRes.value\n        }\n\n        let parentDriveCfg = drives.find(d => d.key === driveCfg.forkOf.key)\n        if (!parentDriveCfg) {\n          drives.push({key: driveCfg.forkOf.key})\n        }\n      }\n\n      drives.push(driveCfg)\n    } else {\n      if (typeof tags !== 'undefined') {\n        if (tags && Array.isArray(tags) && tags.every(t => typeof t === 'string')) {\n          driveCfg.tags = tags.filter(Boolean)\n        } else {\n          delete driveCfg.tags\n        }\n      }\n      if (typeof forkOf !== 'undefined') {\n        if (forkOf && typeof forkOf === 'object') {\n          driveCfg.forkOf = forkOf\n        } else {\n          delete driveCfg.forkOf\n        }\n      }\n    }\n    await rootDrive.pda.writeFile('/drives.json', JSON.stringify({drives}, null, 2))\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} url\n * @returns {Promise<void>}\n */\nexport async function removeDrive (url) {\n  var release = await lock('filesystem:drives')\n  try {\n    var key = await hyper.drives.fromURLToKey(url, true)\n    var driveIndex = drives.findIndex(drive => drive.key === key)\n    if (driveIndex === -1) return\n    let drive = await hyper.drives.getOrLoadDrive(url)\n    if (!drive.writable) {\n      // unannounce the drive\n      drive.session.drive.configureNetwork({\n        announce: false,\n        lookup: true\n      })\n    }\n    drives.splice(driveIndex, 1)\n    await rootDrive.pda.writeFile('/drives.json', JSON.stringify({drives}, null, 2))\n  } finally {\n    release()\n  }\n}\n\n/**\n * @param {string} containingPath\n * @param {string} basename\n * @param {string} [ext]\n * @param {string} [joiningChar]\n * @param {DaemonHyperdrive} [drive]\n * @returns {Promise<string>}\n */\nexport async function getAvailableName (containingPath, basename, ext = undefined, joiningChar = '-', drive = rootDrive) {\n  for (let i = 1; i < 1e9; i++) {\n    let name = ((i === 1) ? basename : `${basename}${joiningChar}${i}`) + (ext ? `.${ext}` : '')\n    let st = await stat(joinPath(containingPath, name), drive)\n    if (!st) return name\n  }\n  // yikes if this happens\n  throw new Error('Unable to find an available name for ' + basename)\n}\n\nexport async function ensureDir (path, drive = rootDrive) {\n  try {\n    let st = await stat(path, drive)\n    if (!st) {\n      logger.info(`Creating directory ${path}`)\n      await drive.pda.mkdir(path)\n    } else if (!st.isDirectory()) {\n      logger.error('Warning! Filesystem expects a folder but an unexpected file exists at this location.', {path})\n    }\n  } catch (e) {\n    logger.error('Filesystem failed to make directory', {path: '' + path, error: e.toString()})\n  }\n}\n\nexport async function migrateAddressBook () {\n  var addressBook\n  try { addressBook = await rootDrive.pda.readFile('/address-book.json').then(JSON.parse) }\n  catch (e) {\n    return\n  }\n  addressBook.profiles = addressBook.profiles && Array.isArray(addressBook.profiles) ? addressBook.profiles : []\n  addressBook.contacts = addressBook.contacts && Array.isArray(addressBook.contacts) ? addressBook.contacts : []\n  var profiles = addressBook.profiles.concat(addressBook.contacts)\n  for (let profile of profiles) {\n    let existing = drives.find(d => d.key === profile.key)\n    if (!existing) {\n      drives.push({key: profile.key, tags: ['contact']})\n    } else {\n      existing.tags = (existing.tags || []).concat(['contact'])\n    }\n  }\n  await rootDrive.pda.writeFile('/drives.json', JSON.stringify({drives}, null, 2))\n  await rootDrive.pda.unlink('/address-book.json')\n}\n\n// internal methods\n// =\n\nasync function stat (path, drive = rootDrive) {\n  try { return await drive.pda.stat(path) }\n  catch (e) { return null }\n}\n"
  },
  {
    "path": "app/bg/filesystem/pins.js",
    "content": "import * as filesystem from './index'\nimport { query } from './query'\nimport { normalizeUrl } from '../../lib/urls'\n\n// exported api\n// =\n\nexport async function setup () {\n  var privateDrive = filesystem.get()\n\n  var exists = await privateDrive.pda.stat('/beaker/pins.json').catch(e => false)\n  if (exists) return\n\n  // migrate bookmarks\n  var pins = []\n  for (let bookmark of await query(privateDrive, {path: '/bookmarks/*.goto'})) {\n    if (bookmark.stat.metadata.pinned || bookmark.stat.metadata['beaker/pinned']) {\n      pins.push(normalizeUrl(bookmark.stat.metadata.href))\n      await privateDrive.pda.deleteMetadata(bookmark.path, ['pinned', 'beaker/pinned'])\n    }\n  }\n  await write(pins)\n}\n\nexport async function getCurrent () {\n  return read()\n}\n\nexport async function isPinned (url) {\n  return (await read()).includes(url)\n}\n\nexport async function add (url) {\n  var data = await read()\n  if (!data.includes(url)) {\n    data.push(url)\n    await write(data)\n  }\n}\n\nexport async function remove (url) {\n  var data = await read()\n  var index = data.indexOf(url)\n  if (index === -1) return\n  data.splice(index, 1)\n  await write(data)\n}\n\n// internal methods\n// =\n\nasync function read () {\n  var data\n  try { data = await filesystem.get().pda.readFile('/beaker/pins.json').then(JSON.parse) }\n  catch (e) { data = [] }\n  data = data.filter(b => b && typeof b === 'string').map(v => normalizeUrl(v))\n  return data\n}\n\nasync function write (data) {\n  data = data && Array.isArray(data) ? data : []\n  data = data.filter(b => b && typeof b === 'string')\n  await filesystem.get().pda.mkdir('/beaker').catch(e => undefined)\n  await filesystem.get().pda.writeFile('/beaker/pins.json', JSON.stringify(data, null, 2))\n}"
  },
  {
    "path": "app/bg/filesystem/query.js",
    "content": "import { basename } from 'path'\nimport * as hyperDns from '../hyper/dns'\nimport { joinPath } from '../../lib/strings'\nimport { chunkMapAsync } from '../../lib/functions'\nimport { HYPERDRIVE_HASH_REGEX } from '../../lib/const'\nimport * as auditLog from '../dbs/audit-log'\n\n// typedefs\n// =\n\n/**\n * @typedef {import('../dat/daemon').DaemonHyperdrive} DaemonHyperdrive\n * \n * @typedef {Object} FSQueryOpts\n * @prop {string|string[]} path\n * @prop {string} [type]\n * @prop {string} [mount]\n * @prop {Object} [metadata]\n * @prop {string} [sort] - 'name', 'ctime', 'mtime'\n * @prop {boolean} [reverse]\n * @prop {number} [limit]\n * @prop {number} [offset]\n * \n * @typedef {Object} Stat\n * @prop {number} mode\n * @prop {number} size\n * @prop {number} offset\n * @prop {number} blocks\n * @prop {Date} atime\n * @prop {Date} mtime\n * @prop {Date} ctime\n * @prop {Object} metadata\n * @prop {Object} [mount]\n * @prop {string} [mount.key]\n * @prop {string} linkname\n *  \n * @typedef {Object} FSQueryResult\n * @prop {string} type\n * @prop {string} path\n * @prop {string} url\n * @prop {Stat} stat\n * @prop {string} drive\n * @prop {string} [mount]\n * @prop {Object} origin\n * @prop {string} origin.path\n * @prop {string} origin.drive\n * @prop {string} origin.url\n */\n\n// exported api\n// =\n\n// query({type: 'mount', path: ['/profile', '/profile/follows/*', '/profile/follows/*/follows/*']})\n// => [{type: 'mount', path: '/profile', stat, mount, drive}, {type: 'mount', path: '/profile/friend/bob', stat, mount, drive}, ...]\n\n// query({type: 'mount', mount: url, path: ['/profile/follows/*', '/profile/follows/*/follows/*']})\n// => [{type: 'mount', path: '/profile/friend/bob', stat, mount, drive}, ...]\n\n// query({type: 'file', metadata: {href: url}, path: ['/profile/comments', '/profile/follows/*/comments', '/profile/follows/*/follows/*/comments']})\n// => [{type: 'folder', path: '/profile/comments/foo.txt', stat, drive}]\n\n/**\n * @param {DaemonHyperdrive} root\n * @param {FSQueryOpts} opts\n * @returns {Promise<FSQueryResult[]>}\n */\nexport async function query (root, opts) {\n  // validate opts\n  if (!opts || !opts.path) throw new Error('The `path` parameter is required')\n  if (!(typeof opts.path === 'string' || (Array.isArray(opts.path) && opts.path.every(v => typeof v === 'string')))) {\n    throw new Error('The `path` parameter must be a string or array of strings')\n  }\n  if (opts.type && typeof opts.type !== 'string') {\n    throw new Error('The `type` parameter must be a string')\n  }\n  if (opts.mount && typeof opts.mount !== 'string') {\n    throw new Error('The `mount` parameter must be a string')\n  }\n  if (opts.metadata && typeof opts.metadata !== 'object') {\n    throw new Error('The `metadata` parameter must be an object')\n  }\n\n  // massage opts\n  if (opts.mount) {\n    opts.mount = await hyperDns.resolveName(opts.mount)\n    opts.mount = HYPERDRIVE_HASH_REGEX.exec(opts.mount)[0]\n  }\n\n  var keyToUrlCache = {}\n  async function keyToUrl (key) {\n    if (keyToUrlCache[key]) return keyToUrlCache[key]\n    var domain = await hyperDns.reverseResolve(key)\n    if (!domain) domain = key\n    keyToUrlCache[key] = `hyper://${domain}/`\n    return keyToUrlCache[key]\n  }\n\n  // iterate all matching paths and match against the query\n  var candidates = await expandPaths(root, opts.path)\n  var results = []\n  await chunkMapAsync(candidates, 100, async (item) => {\n    let {path, stat, originDriveKey, originPath} = item\n\n    var type = 'file'\n    if (stat.mount && stat.mount.key) type = 'mount'\n    else if (stat.isDirectory()) type = 'directory'\n\n    if (opts.type && type !== opts.type) return\n    if (opts.mount && (type !== 'mount' || stat.mount.key.toString('hex') !== opts.mount)) return\n    if (opts.metadata) {\n      let metaMatch = true\n      for (let k in opts.metadata) {\n        if (stat.metadata[k] !== opts.metadata[k]) {\n          metaMatch = false\n          break\n        }\n      }\n      if (!metaMatch) return\n    }\n\n    var originDrive = await keyToUrl(originDriveKey)\n    results.push({\n      type,\n      path,\n      drive: root.url,\n      url: joinPath(root.url, path),\n      stat,\n      mount: type === 'mount' ? await keyToUrl(stat.mount.key.toString('hex')) : undefined,\n      origin: {\n        path: originPath,\n        drive: originDrive,\n        url: joinPath(originDrive, originPath)\n      }\n    })\n  })\n\n  if (opts.sort === 'name') {\n    results.sort((a, b) => (opts.reverse) ? basename(b.path).toLowerCase().localeCompare(basename(a.path).toLowerCase()) : basename(a.path).toLowerCase().localeCompare(basename(b.path).toLowerCase()))\n  } else if (opts.sort === 'mtime') {\n    results.sort((a, b) => (opts.reverse) ? b.stat.mtime - a.stat.mtime : a.stat.mtime - b.stat.mtime)\n  } else if (opts.sort === 'ctime') {\n    results.sort((a, b) => (opts.reverse) ? b.stat.ctime - a.stat.ctime : a.stat.ctime - b.stat.ctime)\n  }\n\n  if (opts.offset && opts.limit) results = results.slice(opts.offset, opts.offset + opts.limit)\n  else if (opts.offset) results = results.slice(opts.offset)\n  else if (opts.limit) results = results.slice(0, opts.limit)\n\n  return results\n}\n\n// internal\n// =\n\nasync function expandPaths (root, patterns) {\n  var matches = []\n  patterns = Array.isArray(patterns) ? patterns : [patterns]\n  await Promise.all(patterns.map(async (pattern) => {\n    // parse the pattern into a set of ops\n    let ops = []\n    for (let part of pattern.split('/')) {\n      ops.push([part.includes('*') ? 'match' : 'push', part])\n    }\n\n    // run the ops to assemble a list of matching paths\n    var workingPaths = [{path: '/', originPath: '/', originDriveKey: root.key.toString('hex'), stat: undefined}]\n    for (let i = 0; i < ops.length; i++) {\n      let op = ops[i]\n      let newWorkingPaths = []\n      if (op[0] === 'push') {\n        // add the given segment to all working paths\n        newWorkingPaths = await Promise.all(workingPaths.map(async (workingPath) => {\n          let statpath = joinPath(workingPath.path, op[1])\n          let stat = await auditLog.record(\n            '-query',\n            'stat',\n            {url: root.url, path: statpath},\n            undefined,\n            () => root.pda.stat(statpath).catch(err => undefined)\n          )\n          if (!stat) return undefined\n          let statMountKey = stat.mount && stat.mount.key ? stat.mount.key.toString('hex') : undefined\n          let isNewMount = statMountKey && statMountKey !== workingPath.originDriveKey\n          return {\n            path: statpath,\n            originPath: isNewMount ? '/' : joinPath(workingPath.originPath, op[1]),\n            originDriveKey: isNewMount ? statMountKey : workingPath.originDriveKey,\n            stat: stat\n          }\n        }))\n        newWorkingPaths = newWorkingPaths.filter(Boolean)\n      } else if (op[0] === 'match') {\n        // compile a glob-matching regex from the segment\n        var re = new RegExp(`^${op[1].replace(/\\*/g, '[^/]*')}$`, 'i')\n        \n        // read the files at each working path\n        for (let workingPath of workingPaths) {\n          let items = await auditLog.record(\n            '-query',\n            'readdir',\n            {url: root.url, path: workingPath.path, includeStats: true},\n            undefined,\n            () => root.pda.readdir(workingPath.path, {includeStats: true}).catch(e => [])\n          )\n          for (let item of items) {\n            // add matching names to the working path\n            if (re.test(item.name)) {\n              let statMountKey = item.stat.mount && item.stat.mount.key ? item.stat.mount.key.toString('hex') : undefined\n              let isNewMount = statMountKey && statMountKey !== workingPath.originDriveKey\n              newWorkingPaths.push({\n                path: joinPath(workingPath.path, item.name),\n                originPath: isNewMount ? '/' : joinPath(workingPath.originPath, item.name),\n                originDriveKey: isNewMount ? item.stat.mount.key.toString('hex') : workingPath.originDriveKey,\n                stat: item.stat\n              })\n            }\n          }\n        }\n      }\n      workingPaths = newWorkingPaths\n    }\n    \n    // emit the results\n    for (let result of workingPaths) {\n      matches.push(result)\n    }\n  }))\n  return matches\n}\n\n// TODO!!\n// put these tests somewhere!!\n// const _get = require('lodash.get')\n// const _isEqual = require('lodash.isequal')\n// const assert = require('assert')\n// const toArray = require('async-iterator-to-array')\n\n// const RootMockPaths = {\n//   foo: {\n//     bar: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar2: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar3: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     }\n//   },\n//   foo2: {\n//     bar: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar2: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar3: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     }\n//   },\n//   foo3: {\n//     bar: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar2: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     },\n//     bar3: {\n//       baz: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz2: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       },\n//       baz3: {\n//         biz: {},\n//         biz2: {},\n//         biz3: {}\n//       }\n//     }\n//   }\n// }\n\n// const RootMock = {\n//   async readdir (path) {\n//     path = path.replace(/\\./g, '')\n//     path = path.split('/').filter(Boolean).join('.')\n//     if (!path) return Object.keys(RootMockPaths)\n//     return Object.keys(_get(RootMockPaths, path) || {})\n//   }\n// }\n\n// async function test () {\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/'])), ['/']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/foo'])), ['/foo']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/*'])), ['/foo', '/foo2', '/foo3']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/*oo'])), ['/foo']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/*oo*'])), ['/foo', '/foo2', '/foo3']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/*/bar'])), ['/foo/bar', '/foo2/bar', '/foo3/bar']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/f*/bar'])), ['/foo/bar', '/foo2/bar', '/foo3/bar']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/foo/*'])), ['/foo/bar', '/foo/bar2', '/foo/bar3']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/*oo/*'])), ['/foo/bar', '/foo/bar2', '/foo/bar3']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/foo/*/baz'])), ['/foo/bar/baz', '/foo/bar2/baz', '/foo/bar3/baz']))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/foo/*/baz/*'])), [\n//     '/foo/bar/baz/biz',\n//     '/foo/bar/baz/biz2',\n//     '/foo/bar/baz/biz3',\n//     '/foo/bar2/baz/biz',\n//     '/foo/bar2/baz/biz2',\n//     '/foo/bar2/baz/biz3',\n//     '/foo/bar3/baz/biz',\n//     '/foo/bar3/baz/biz2',\n//     '/foo/bar3/baz/biz3'\n//   ]))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/foo/*/*/biz'])), [\n//     '/foo/bar/baz/biz',\n//     '/foo/bar/baz2/biz',\n//     '/foo/bar/baz3/biz',\n//     '/foo/bar2/baz/biz',\n//     '/foo/bar2/baz2/biz',\n//     '/foo/bar2/baz3/biz',\n//     '/foo/bar3/baz/biz',\n//     '/foo/bar3/baz2/biz',\n//     '/foo/bar3/baz3/biz'\n//   ]))\n//   assert(_isEqual(await toArray(expandPaths(RootMock, ['/', '/foo', '/*/bar'])), ['/', '/foo', '/foo/bar', '/foo2/bar', '/foo3/bar']))\n//   console.log('done')\n// }\n\n// test()\n"
  },
  {
    "path": "app/bg/filesystem/trash.js",
    "content": "import ms from 'ms'\nimport { join as joinPath } from 'path'\nimport * as filesystem from './index'\nimport { PATHS, TRASH_FIRST_COLLECT_WAIT, TRASH_REGULAR_COLLECT_WAIT, TRASH_EXPIRATION_AGE } from '../../lib/const'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'hyper', subcategory: 'trash-collector'})\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} CollectResult\n * @prop {number} totalBytes\n * @prop {number} totalItems\n *\n * @typedef {Object} TrashItem\n * @prop {string} name\n * @prop {Object} stat\n */\n\n// globals\n// =\n\nvar nextGCTimeout\n\n// exported API\n// =\n\nexport function setup () {\n  schedule(TRASH_FIRST_COLLECT_WAIT)\n}\n\n/**\n * @param {Object} [query]\n * @param {boolean} [query.mounts]\n * @param {number} [query.olderThan]\n * @returns {Promise<TrashItem[]>}\n */\nexport async function query (query = {}) {\n  return [] // TODO\n  // var items = /** @type TrashItem[] */([])\n  // var names = await filesystem.get().pda.readdir(PATHS.TRASH)\n  // for (let name of names) {\n  //   let st = await filesystem.get().pda.stat(joinPath(PATHS.TRASH, name))\n  //   if (query.mounts && !st.mount) {\n  //     continue\n  //   }\n  //   if (query.olderThan) {\n  //     if (Date.now() - st.mtime < query.olderThan) {\n  //       continue\n  //     }\n  //   }\n  //   items.push({name, stat: st})\n  // }\n  // return items\n}\n\n/**\n * @param {Object} [opts]\n * @param {number} [opts.olderThan]\n * @returns {Promise<CollectResult>}\n */\nexport async function collect ({olderThan} = {}) {\n  return // TODO\n  // logger.silly('Running GC')\n  // olderThan = typeof olderThan === 'number' ? olderThan : TRASH_EXPIRATION_AGE\n\n  // // clear any scheduled GC\n  // if (nextGCTimeout) {\n  //   clearTimeout(nextGCTimeout)\n  //   nextGCTimeout = null\n  // }\n\n  // // run the GC\n  // var totalBytes = 0\n  // var startTime = Date.now()\n\n  // // clear items in trash\n  // var trashItems = await query({olderThan})\n  // if (trashItems.length) {\n  //   logger.info(`Deleting ${trashItems.length} items in trash`)\n  //   logger.silly('Items:', {urls: trashItems.map(a => a.name)})\n  // }\n  // for (let item of trashItems) {\n  //   let path = joinPath(PATHS.TRASH, item.name)\n  //   if (item.stat.mount) {\n  //     await filesystem.get().pda.unmount(path)\n  //   } else if (item.stat.isDirectory()) {\n  //     await filesystem.get().pda.rmdir(path, {recursive: true})\n  //   } else {\n  //     await filesystem.get().pda.unlink(path)\n  //   }\n  //   totalBytes += item.stat.size\n  // }\n\n  // // clear cached dats\n  // // TODO\n  // // fetch all drive metas with lastaccesstime older than DAT_CACHE_TIME\n  // // then delete the drive\n  // {\n  //   // await datLibrary.removeFromTrash(trashItems[i].key)\n  //   // totalBytes += await archivesDb.deleteArchive(trashItems[i].key)\n  // }\n\n  // logger.silly(`GC completed in ${Date.now() - startTime} ms`)\n\n  // // schedule the next GC\n  // schedule(TRASH_REGULAR_COLLECT_WAIT)\n  // logger.silly(`Scheduling next run to happen in ${ms(TRASH_REGULAR_COLLECT_WAIT)}`)\n\n  // // return stats\n  // return {totalBytes, totalItems: trashItems.length}\n}\n\n// helpers\n// =\n\n/**\n * @param {number} time\n */\nfunction schedule (time) {\n  nextGCTimeout = setTimeout(collect, time)\n  nextGCTimeout.unref()\n}\n"
  },
  {
    "path": "app/bg/hyper/assets.js",
    "content": "import Events from 'events'\nimport ICO from 'icojs'\nimport mime from 'mime'\nimport * as sitedata from '../dbs/sitedata'\n\n// constants\n// =\n\nconst ASSET_PATH_REGEX = /^\\/?(favicon|thumb|cover).(jpg|jpeg|png|ico)$/i\nconst IDEAL_FAVICON_SIZE = 64\n\n// typedefs\n// =\n\n/**\n * @typedef {import('./daemon').DaemonHyperdrive} DaemonHyperdrive\n */\n\n// globals\n// =\n\nvar events = new Events()\n\n// exported api\n// =\n\nexport const on = events.on.bind(events)\n\nexport const addListener = events.addListener.bind(events)\nexport const removeListener = events.removeListener.bind(events)\n\n/**\n * @description\n * Crawl the given site for assets.\n *\n * @param {DaemonHyperdrive} drive - site to crawl.\n * @param {string[]?} filenames - which files to check.\n * @returns {Promise<void>}\n */\nexport async function update (drive, filenames = null) {\n  // list target assets\n  if (!filenames) {\n    filenames = await drive.pda.readdir('/')\n  }\n  filenames = filenames.filter(v => ASSET_PATH_REGEX.test(v))\n\n  // read and cache each asset\n  for (let filename of filenames) {\n    try {\n      let assetType = extractAssetType(filename)\n      var dataUrl = await readAsset(drive, filename)\n      await sitedata.set(drive.url, assetType, dataUrl)\n      events.emit(`update:${assetType}:${drive.url}`)\n    } catch (e) {\n      console.log('Failed to update asset', filename, e)\n    }\n  }\n}\n\n/**\n * @description\n * Check the drive history for changes to an asset\n * \n * @param {DaemonHyperdrive} drive \n * @param {Number} startVersion \n * @returns {Promise<Boolean>}\n */\nexport async function hasUpdates (drive, startVersion = 0) {\n  var changes = await drive.pda.diff(startVersion, '/')\n  for (let change of changes) {\n    if (ASSET_PATH_REGEX.test(change.name)) {\n      return true\n    }\n  }\n  return false\n}\n\n// internal\n// =\n\n/**\n * Extract the asset type from the pathname\n * @param {string} pathname\n * @returns string\n */\nfunction extractAssetType (pathname) {\n  if (/cover/.test(pathname)) return 'cover'\n  if (/thumb/.test(pathname)) return 'thumb'\n  return 'favicon'\n}\n\n/**\n * Reads the asset file as a dataurl\n * - Converts any .ico to .png\n * @param {DaemonHyperdrive} drive\n * @param {string} pathname\n * @returns string The asset as a data URL\n */\nasync function readAsset (drive, pathname) {\n  if (pathname.endsWith('.ico')) {\n    let data = await drive.pda.readFile(pathname, 'binary')\n    // select the best-fitting size\n    let images = await ICO.parse(data, 'image/png')\n    let image = images[0]\n    for (let i = 1; i < images.length; i++) {\n      if (Math.abs(images[i].width - IDEAL_FAVICON_SIZE) < Math.abs(image.width - IDEAL_FAVICON_SIZE)) {\n        image = images[i]\n      }\n    }\n    let buf = Buffer.from(image.buffer)\n    return `data:image/png;base64,${buf.toString('base64')}`\n  } else {\n    let data = await drive.pda.readFile(pathname, 'base64')\n    return `data:${mime.lookup(pathname)};base64,${data}`\n  }\n}"
  },
  {
    "path": "app/bg/hyper/capabilities.js",
    "content": "import * as base32 from 'base32.js'\nimport * as crypto from 'crypto'\nimport { PermissionsError } from 'beaker-error-constants'\nimport { parseDriveUrl } from '../../lib/urls'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} CapabilityMapping\n * @prop {String} owningOrigin\n * @prop {String} token\n * @prop {Object} target\n * @prop {String} target.key\n * @prop {String} target.version\n */\n\n// globals\n// =\n\n/** @type CapabilityMapping[] */\nvar capabilities = []\n\n// exported api\n// =\n\n/**\n * @param {string} capUrl \n * @returns {CapabilityMapping}\n */\nexport function lookupCap (capUrl) {\n  var token = extractToken(capUrl)\n  if (!token) throw new Error('Invalid capability URL')\n  return capabilities.find(c => c.token === token)\n}\n\n/**\n * @param {String} origin\n * @param {String} target\n * @returns {String}\n */\nexport function createCap (origin, target) {\n  var token = generateToken()\n  capabilities.push({\n    owningOrigin: origin,\n    token,\n    target: parseTarget(target)\n  })\n  return `hyper://${token}.cap/`\n}\n\n/**\n * @param {String} origin\n * @param {String} capUrl\n * @param {String} target\n * @returns {Void}\n */\nexport function modifyCap (origin, capUrl, target) {\n  var token = extractToken(capUrl)\n  if (!token) throw new Error('Invalid capability URL')\n  var cap = capabilities.find(c => c.token === token)\n  if (!cap) throw new Error('Capability does not exist')\n  \n  if (cap.owningOrigin !== origin) {\n    throw new PermissionsError('Cannot modify unowned capability')\n  }\n\n  cap.target = parseTarget(target)\n}\n\n/**\n * @param {String} origin\n * @param {String} capUrl\n * @returns {Void}\n */\nexport function deleteCap (origin, capUrl) {\n  var token = extractToken(capUrl)\n  if (!token) throw new Error('Invalid capability URL')\n  var capIndex = capabilities.findIndex(c => c.token === token)\n  if (capIndex === -1) throw new Error('Capability does not exist')\n  \n  if (capabilities[capIndex].owningOrigin !== origin) {\n    throw new PermissionsError('Cannot modify unowned capability')\n  }\n  \n  capabilities.splice(capIndex, 1)\n}\n\n// internal methods\n// =\n\nfunction generateToken () {\n  var buf = crypto.randomBytes(8)\n  var encoder = new base32.Encoder({type: 'rfc4648', lc: true})\n  return encoder.write(buf).finalize()\n}\n\nfunction extractToken (capUrl) {\n  var matches = /^(hyper:\\/\\/)?([a-z0-9]+)\\.cap\\/?/.exec(capUrl)\n  return matches ? matches[2] : undefined\n}\n\nfunction parseTarget (target) {\n  try {\n    var urlp = parseDriveUrl(target)\n    if (urlp.protocol !== 'hyper:') throw new Error()\n    return {key: urlp.hostname, version: urlp.version}\n  } catch (e) {\n    throw new Error('Invalid target hyper:// URL')\n  }\n}"
  },
  {
    "path": "app/bg/hyper/daemon.js",
    "content": "import { app } from 'electron'\nimport * as os from 'os'\nimport * as p from 'path'\nimport { promises as fs } from 'fs'\nimport * as childProcess from 'child_process'\nimport HyperdriveClient from 'hyperdrive-daemon-client'\nimport datEncoding from 'dat-encoding'\nimport * as pda from 'pauls-dat-api2'\nimport EventEmitter from 'events'\nimport * as logLib from '../logger'\nconst baseLogger = logLib.get()\nconst logger = baseLogger.child({category: 'hyper', subcategory: 'daemon'})\n\nconst SETUP_RETRIES = 100\nconst GARBAGE_COLLECT_SESSIONS_INTERVAL = 30e3\nconst MAX_SESSION_AGE = 300e3 // 5min\nconst HYPERSPACE_BIN_PATH = require.resolve('hyperspace/bin/index.js')\nconst HYPERSPACE_STORAGE_DIR = p.join(os.homedir(), '.hyperspace', 'storage')\nconst HYPERDRIVE_STORAGE_DIR = p.join(os.homedir(), '.hyperdrive', 'storage', 'cores')\n\n// typedefs\n// =\n\n/**\n* @typedef {Object} DaemonHyperdrive\n* @prop {number} sessionId\n* @prop {Buffer} key\n* @prop {Buffer} discoveryKey\n* @prop {string} url\n* @prop {string} domain\n* @prop {boolean} writable\n* @prop {Boolean} persistSession\n* @prop {Object} session\n* @prop {Object} session.drive\n* @prop {function(): Promise<void>} session.close\n* @prop {function(Object): Promise<void>} session.configureNetwork\n* @prop {function(): Promise<Object>} getInfo\n* @prop {DaemonHyperdrivePDA} pda\n*\n* @typedef {Object} DaemonHyperdrivePDA\n* @prop {Number} lastCallTime\n* @prop {Number} numActiveStreams\n* @prop {function(string): Promise<Object>} stat\n* @prop {function(string, Object=): Promise<any>} readFile\n* @prop {function(string, Object=): Promise<Array<Object>>} readdir\n* @prop {function(string): Promise<number>} readSize\n* @prop {function(number, string?): Promise<Array<Object>>} diff\n* @prop {function(string, any, Object=): Promise<void>} writeFile\n* @prop {function(string): Promise<void>} mkdir\n* @prop {function(string, string): Promise<void>} copy\n* @prop {function(string, string): Promise<void>} rename\n* @prop {function(string, Object): Promise<void>} updateMetadata\n* @prop {function(string, string|string[]): Promise<void>} deleteMetadata\n* @prop {function(string): Promise<void>} unlink\n* @prop {function(string, Object=): Promise<void>} rmdir\n* @prop {function(string, string|Buffer): Promise<void>} mount\n* @prop {function(string): Promise<void>} unmount\n* @prop {function(string=): NodeJS.ReadableStream} watch\n* @prop {function(): NodeJS.ReadableStream} createNetworkActivityStream\n* @prop {function(): Promise<Object>} readManifest\n* @prop {function(Object): Promise<void>} writeManifest\n* @prop {function(Object): Promise<void>} updateManifest\n*/\n\n// globals\n// =\n\nvar client // client object created by hyperdrive-daemon-client\nvar isControllingDaemonProcess = false // did we start the process?\nvar isSettingUp = true\nvar isShuttingDown = false\nvar isDaemonActive = false\nvar isFirstConnect = true\nvar daemonProcess = undefined\nvar sessions = {} // map of keyStr => DaemonHyperdrive\nvar events = new EventEmitter()\n\n// exported apis\n// =\n\nexport const on = events.on.bind(events)\n\nexport function getClient () {\n  return client\n}\n\nexport function getHyperspaceClient () {\n  return client._client\n}\n\nexport function isActive () {\n  if (isFirstConnect) {\n    // avoid the \"inactive daemon\" indicator during setup\n    return true\n  }\n  return isDaemonActive\n}\n\nexport async function getDaemonStatus () {\n  if (isDaemonActive) {\n    return Object.assign(await client.status(), {active: true})\n  }\n  return {active: false}\n}\n\nexport async function setup () {\n  if (isSettingUp) {\n    isSettingUp = false\n    // periodically close sessions\n    let interval2 = setInterval(() => {\n      let numClosed = 0\n      let now = Date.now()\n      for (let key in sessions) {\n        if (sessions[key].persistSession) continue\n        if (sessions[key].pda.numActiveStreams > 0) continue\n        if (now - sessions[key].pda.lastCallTime < MAX_SESSION_AGE) continue\n        closeHyperdriveSession(key)\n        numClosed++\n      }\n      if (numClosed > 0) {\n        logger.debug(`Closed ${numClosed} session(s) due to inactivity`)\n      }\n    }, GARBAGE_COLLECT_SESSIONS_INTERVAL)\n    interval2.unref()\n\n    events.on('daemon-restored', async () => {\n      logger.info('Hyperdrive daemon has been restored')\n    })\n    events.on('daemon-stopped', async () => {\n      logger.info('Hyperdrive daemon has been lost')\n      isControllingDaemonProcess = false\n    })\n  }\n\n  try {\n    client = new HyperdriveClient()\n    await client.ready()\n    logger.info('Connected to an external daemon.')\n    isDaemonActive = true\n    isFirstConnect = false\n    events.emit('daemon-restored')\n    reconnectAllDriveSessions()\n    return\n  } catch (err) {\n    logger.info('Failed to connect to an external daemon. Launching the daemon...')\n    client = false\n  }\n\n  isControllingDaemonProcess = true\n  logger.info('Starting daemon process, assuming process control')\n\n  // Check which storage directory to use.\n  // If .hyperspace/storage exists, use that. Otherwise use .hyperdrive/storage/cores\n  const storageDir = await getDaemonStorageDir()\n  var daemonProcessArgs = [HYPERSPACE_BIN_PATH, '-s', storageDir, '--no-migrate']\n  logger.info(`Daemon: spawn ${app.getPath('exe')} ${daemonProcessArgs.join(' ')}`)\n  daemonProcess = childProcess.spawn(app.getPath('exe'), daemonProcessArgs, {\n    // stdio: [process.stdin, process.stdout, process.stderr], // DEBUG\n    env: Object.assign({}, process.env, {\n      ELECTRON_RUN_AS_NODE: 1,\n      ELECTRON_NO_ASAR: 1\n    })\n  })\n  daemonProcess.stdout.on('data', data => logger.info(`Daemon: ${data}`))\n  daemonProcess.stderr.on('data', data => logger.info(`Daemon (stderr): ${data}`))\n  daemonProcess.on('error', (err) => logger.error(`Hyperspace Daemon error: ${err.toString()}`))\n  daemonProcess.on('close', () => {\n    logger.info(`Daemon process has closed`)\n    isDaemonActive = false\n    daemonProcess = undefined\n    events.emit('daemon-stopped')\n  })\n\n  await attemptConnect()\n  isDaemonActive = true\n  isFirstConnect = false\n  events.emit('daemon-restored')\n  reconnectAllDriveSessions()\n}\n\nexport function requiresShutdown () {\n  return isControllingDaemonProcess && !isShuttingDown\n}\n\nexport async function shutdown () {\n  if (isControllingDaemonProcess && isDaemonActive) {\n    let promise = new Promise((resolve) => {\n      daemonProcess.on('close', () => resolve())\n    })\n    isShuttingDown = true\n    daemonProcess.kill()\n    \n    // HACK: the daemon has a bug that causes it to stay open sometimes, give it the double tap -prf\n    let i = setInterval(() => {\n      if (!isDaemonActive) {\n        clearInterval(i)\n      } else {\n        daemonProcess.kill()\n      }\n    }, 2e3)\n    i.unref()\n\n    await promise\n  }\n}\n\n/**\n * Gets a hyperdrives interface to the daemon for the given key\n *\n * @param {Object|string} opts\n * @param {Buffer} [opts.key]\n * @param {number} [opts.version]\n * @param {Buffer} [opts.hash]\n * @param {boolean} [opts.writable]\n * @returns {DaemonHyperdrive}\n */\nexport function getHyperdriveSession (opts) {\n  return sessions[createSessionKey(opts)]\n}\n\n/**\n * Creates a hyperdrives interface to the daemon for the given key\n *\n * @param {Object} opts\n * @param {Buffer} [opts.key]\n * @param {number} [opts.version]\n * @param {Buffer} [opts.hash]\n * @param {boolean} [opts.writable]\n * @param {String} [opts.domain]\n * @returns {Promise<DaemonHyperdrive>}\n */\nexport async function createHyperdriveSession (opts) {\n  if (opts.key) {\n    let sessionKey = createSessionKey(opts)\n    if (sessions[sessionKey]) return sessions[sessionKey]\n  }\n\n  const drive = await client.drive.get(opts)\n  const key = opts.key = datEncoding.toStr(drive.key)\n  var driveObj = {\n    key: drive.key,\n    discoveryKey: drive.discoveryKey,\n    url: `hyper://${opts.domain || key}/`,\n    writable: drive.writable,\n    domain: opts.domain,\n    persistSession: false,\n\n    session: {\n      drive,\n      opts,\n      async close () {\n        delete sessions[key]\n        return this.drive.close()\n      }\n    },\n\n    async getInfo () {\n      var version = await this.session.drive.version()\n      return {version}\n    },\n\n    pda: createHyperdriveSessionPDA(drive)\n  }\n  var sessKey = createSessionKey(opts)\n  logger.debug(`Opening drive-session ${sessKey}`)\n  sessions[sessKey] = driveObj\n  return /** @type DaemonHyperdrive */(driveObj)\n}\n\n/**\n * Closes a hyperdrives interface to the daemon for the given key\n *\n * @param {Object|string} opts\n * @param {Buffer} [opts.key]\n * @param {number} [opts.version]\n * @param {Buffer} [opts.hash]\n * @param {boolean} [opts.writable]\n * @returns {void}\n */\nexport function closeHyperdriveSession (opts) {\n  var key = createSessionKey(opts)\n  if (sessions[key]) {\n    logger.debug(`Closing drive-session ${key}`)\n    sessions[key].session.close()\n    delete sessions[key]\n  }\n}\n\nexport function listPeerAddresses (key) {\n  let peers = getHyperdriveSession({key})?.session?.drive?.metadata?.peers\n  if (peers) return peers.map(p => ({type: p.type, remoteAddress: p.remoteAddress}))\n}\n\n// internal methods\n// =\n\nasync function getDaemonStorageDir () {\n  try {\n    await fs.access(HYPERDRIVE_STORAGE_DIR)\n    return HYPERDRIVE_STORAGE_DIR\n  } catch (err) {\n    return HYPERSPACE_STORAGE_DIR\n  }\n}\n\nasync function onInvalidAuthToken () {\n  // TODO replaceme\n  // if (!isConnectionActive) return\n  // isConnectionActive = false\n  // logger.info('A daemon reset was detected. Refreshing all drive sessions.')\n  // // daemon is online but our connection is outdated, reset the connection\n  // await attemptConnect()\n  // reconnectAllDriveSessions()\n  // logger.info('Connection re-established.')\n}\n\nfunction createSessionKey (opts) {\n  if (typeof opts === 'string') {\n    return opts // assume it's already a session key\n  }\n  var key = opts.key.toString('hex')\n  if (opts.version) {\n    key += `+${opts.version}`\n  }\n  if ('writable' in opts) {\n    key += `+${opts.writable ? 'w' : 'ro'}`\n  }\n  return key\n}\n\nasync function attemptConnect () {\n  var connectBackoff = 100\n  for (let i = 0; i < SETUP_RETRIES; i++) {\n    try {\n      client = new HyperdriveClient()\n      await client.ready()\n      break\n    } catch (e) {\n      logger.info('Failed to connect to daemon, retrying')\n      await new Promise(r => setTimeout(r, connectBackoff))\n      connectBackoff += 100\n    }\n  }\n}\n\nasync function reconnectAllDriveSessions () {\n  for (let sessionKey in sessions) {\n    await reconnectDriveSession(sessions[sessionKey])\n  }\n}\n\nasync function reconnectDriveSession (driveObj) {\n  const drive = await client.drive.get(driveObj.session.opts)\n  driveObj.session.drive = drive\n  driveObj.pda = createHyperdriveSessionPDA(drive)\n}\n\n/**\n * Provides a pauls-dat-api2 object for the given drive\n * @param {Object} drive\n * @returns {DaemonHyperdrivePDA}\n */\nfunction createHyperdriveSessionPDA (drive) {\n  var obj = {\n    lastCallTime: Date.now(),\n    numActiveStreams: 0\n  }\n  for (let k in pda) {\n    if (typeof pda[k] === 'function') {\n      obj[k] = async (...args) => {\n        obj.lastCallTime = Date.now()\n        if (k === 'watch') {\n          obj.numActiveStreams++\n          let stream = pda.watch.call(pda, drive, ...args)\n          stream.on('close', () => {\n            obj.numActiveStreams--\n          })\n          return stream\n        }\n        return pda[k].call(pda, drive, ...args)\n      }\n    }\n  }\n  return obj\n}\n"
  },
  {
    "path": "app/bg/hyper/debugging.js",
    "content": "import * as hyperDns from './dns'\n\n/**\n * @returns {string}\n */\nexport const drivesDebugPage = function () {\n  var drives = [] // TODO getActiveDrives()\n  return `<html>\n    <body>\n      ${Object.keys(drives).map(key => {\n    var a = drives[key]\n    return `<div style=\"font-family: monospace\">\n          <h3>${a.key.toString('hex')}</h3>\n          <table>\n            <tr><td>Meta DKey</td><td>${a.discoveryKey.toString('hex')}</td></tr>\n            <tr><td>Content DKey</td><td>${a.content.discoveryKey.toString('hex')}</td></tr>\n            <tr><td>Meta Key</td><td>${a.key.toString('hex')}</td></tr>\n            <tr><td>Content Key</td><td>${a.content.key.toString('hex')}</td></tr>\n          </table>\n        </div>`\n  }).join('')}\n    </body>\n  </html>`\n}\n\n/**\n * @returns {string}\n */\nexport const datDnsCachePage = function () {\n  var cache = hyperDns.listCache()\n  return `<html>\n    <body>\n      <h1>Dat DNS cache</h1>\n      <p><button>Clear cache</button></p>\n      <table style=\"font-family: monospace\">\n        ${Object.keys(cache).map(name => {\n    var key = cache[name]\n    return `<tr><td><strong>${name}</strong></td><td>${key}</td></tr>`\n  }).join('')}\n      </table>\n      <script src=\"beaker://dat-dns-cache/main.js\"></script>\n    </body>\n  </html>`\n}\n\n/**\n * @returns {string}\n */\nexport const datDnsCacheJS = function () {\n  return `\n    document.querySelector('button').addEventListener('click', clear)\n    async function clear () {\n      await beaker.drives.clearDnsCache()\n      location.reload()\n    }\n  `\n}\n"
  },
  {
    "path": "app/bg/hyper/dns.js",
    "content": "import { InvalidDomainName } from 'beaker-error-constants'\nimport datDnsFactory from 'dat-dns'\nimport * as datDnsDb from '../dbs/dat-dns'\nimport * as drives from './drives'\nimport { HYPERDRIVE_HASH_REGEX } from '../../lib/const'\nimport * as capabilities from './capabilities'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'hyper', subcategory: 'dns'})\n\nvar localMapByName = {}\nvar localMapByKey = {}\n\nexport function setLocal (name, url) {\n  var key = toHostname(url)\n  localMapByName[name] = key\n  localMapByKey[key] = name\n}\n\nexport async function resolveName (name) {\n  name = toHostname(name)\n  if (HYPERDRIVE_HASH_REGEX.test(name)) return name\n  return localMapByName[name]\n}\n\nexport async function reverseResolve (key) {\n  return localMapByKey[toHostname(key)]\n}\n\nfunction toHostname (v) {\n  if (Buffer.isBuffer(v)) {\n    return v.toString('hex')\n  }\n  try {\n    var urlp = new URL(v)\n    return urlp.hostname\n  } catch (e) {\n    return v\n  }\n}\n\n/*\nTODO\n\nconst DNS_PROVIDERS = [['cloudflare-dns.com', '/dns-query'], ['dns.google.com', '/resolve']]\nconst DNS_PROVIDER = DNS_PROVIDERS[Math.random() > 0.5 ? 1 : 0]\nlogger.info(`Using ${DNS_PROVIDER[0]} to resolve DNS lookups`)\n\n// instantate a dns cache and export it\nconst datDns = datDnsFactory({\n  persistentCache: {read, write},\n  dnsHost: DNS_PROVIDER[0],\n  dnsPath: DNS_PROVIDER[1]\n})\n\nexport default datDns\n\n// hook up log events\ndatDns.on('resolved', details => logger.debug('Resolved', {details}))\ndatDns.on('failed', details => logger.debug('Failed lookup', {details}))\ndatDns.on('cache-flushed', details => logger.debug('Cache flushed'))\n\n// wrap resolveName() with a better error\nconst resolveName = datDns.resolveName\ndatDns.resolveName = async function (name, opts, cb) {\n  return resolveName.apply(datDns, arguments)\n    .catch(_ => {\n      throw new InvalidDomainName()\n    })\n}\n\n// persistent cache methods\nasync function read (name, err) {\n  // check the cache\n  var record = await datDnsDb.getCurrentByName(name)\n  if (!record) throw err\n  return record.key\n}\nasync function write (name, key) {\n  if (HYPERDRIVE_HASH_REGEX.test(name)) return // dont write for raw urls\n  await drives.confirmDomain(key)\n}\n*/"
  },
  {
    "path": "app/bg/hyper/drives.js",
    "content": "import emitStream from 'emit-stream'\nimport EventEmitter from 'events'\nimport datEncoding from 'dat-encoding'\nimport { parseDriveUrl } from '../../lib/urls'\nimport _debounce from 'lodash.debounce'\nimport pda from 'pauls-dat-api2'\nimport { wait } from '../../lib/functions'\nimport * as logLib from '../logger'\nconst baseLogger = logLib.get()\nconst logger = baseLogger.child({category: 'hyper', subcategory: 'drives'})\n\n// dbs\nimport * as archivesDb from '../dbs/archives'\nimport * as hyperDnsDb from '../dbs/dat-dns'\n\n// hyperdrive modules\nimport * as daemon from './daemon'\nimport * as driveAssets from './assets'\nimport * as hyperDns from './dns'\n\n// fs modules\nimport * as filesystem from '../filesystem/index'\n\n// constants\n// =\n\nimport { HYPERDRIVE_HASH_REGEX, DRIVE_MANIFEST_FILENAME } from '../../lib/const'\nimport { InvalidURLError, TimeoutError } from 'beaker-error-constants'\n\n// typedefs\n// =\n\n/**\n * @typedef {import('./daemon').DaemonHyperdrive} DaemonHyperdrive\n */\n\n// globals\n// =\n\nvar driveLoadPromises = {} // key -> promise\nvar drivesEvents = new EventEmitter()\n\n// exported API\n// =\n\nexport const on = drivesEvents.on.bind(drivesEvents)\nexport const addListener = drivesEvents.addListener.bind(drivesEvents)\nexport const removeListener = drivesEvents.removeListener.bind(drivesEvents)\n\n/**\n * @return {Promise<void>}\n */\nexport async function setup () {\n  // connect to the daemon\n  await daemon.setup()\n\n  // TODO\n  // hyperDnsDb.on('updated', ({key, name}) => {\n  //   var drive = getDrive(key)\n  //   if (drive) {\n  //     drive.domain = name\n  //   }\n  // })\n\n  logger.info('Initialized dat daemon')\n}\n\n/**\n * @param {String[]} keys \n * @returns {Promise<void>}\n */\nexport async function ensureHosting (keys) {\n  var configs = await daemon.getClient().drive.allNetworkConfigurations()\n  for (let key of keys) {\n    let cfg = configs.get(key)\n    if (!cfg || !cfg.announce || !cfg.lookup) {\n      try {\n        let drive = await getOrLoadDrive(key)\n        logger.silly(`Reconfiguring network behavior for drive ${key}`)\n        await drive.session.drive.configureNetwork({\n          announce: true,\n          lookup: true\n        })\n      } catch (e) {\n        logger.debug(`Failed to configure behavior for drive ${key}`, {error: e})\n      }\n    }\n  }\n}\n\n/**\n * @returns {NodeJS.ReadableStream}\n */\nexport function createEventStream () {\n  return emitStream.toStream(drivesEvents)\n};\n\n/**\n * @param {string} key\n * @returns {Promise<string>}\n */\nexport function getDebugLog (key) {\n  return '' // TODO needed? daemon.getDebugLog(key)\n};\n\n/**\n * @returns {NodeJS.ReadableStream}\n */\nexport function createDebugStream () {\n  // TODO needed?\n  // return daemon.createDebugStream()\n};\n\n// read metadata for the drive, and store it in the meta db\nexport async function pullLatestDriveMeta (drive, {updateMTime} = {}) {\n  try {\n    var key = drive.key.toString('hex')\n\n    // trigger DNS update\n    // confirmDomain(key) DISABLED\n\n    var version = await drive.session.drive.version()\n    if (version === drive.lastMetaPullVersion) {\n      return\n    }\n    var lastMetaPullVersion = drive.lastMetaPullVersion\n    drive.lastMetaPullVersion = version\n\n    if (lastMetaPullVersion) {\n      driveAssets.hasUpdates(drive, lastMetaPullVersion).then(hasAssetUpdates => {\n        if (hasAssetUpdates) {\n          driveAssets.update(drive)\n        }\n      })\n    } else {\n      driveAssets.update(drive)\n    }\n\n    // read the drive meta and size on disk\n    var [manifest, oldMeta, size] = await Promise.all([\n      drive.pda.readManifest().catch(() => {}),\n      archivesDb.getMeta(key),\n      0//drive.pda.readSize('/')\n    ])\n    var {title, description, type, author, forkOf} = (manifest || {})\n    var writable = drive.writable\n    var mtime = updateMTime ? Date.now() : oldMeta.mtime\n    var details = {title, description, type, forkOf, mtime, size, author, writable}\n\n    // check for changes\n    if (!hasMetaChanged(details, oldMeta)) {\n      return\n    }\n\n    // write the record\n    await archivesDb.setMeta(key, details)\n\n    // emit the updated event\n    details.url = 'hyper://' + key + '/'\n    drivesEvents.emit('updated', {key, details, oldMeta})\n    logger.info('Updated recorded metadata for hyperdrive', {key, details})\n    return details\n  } catch (e) {\n    console.error('Error pulling meta', e)\n  }\n}\n\n// drive creation\n// =\n\n/**\n * @returns {Promise<DaemonHyperdrive>}\n */\nexport async function createNewRootDrive () {\n  var drive = await loadDrive(null, {visibility: 'private'})\n  await pullLatestDriveMeta(drive)\n  return drive\n};\n\n/**\n * @param {Object} [manifest]\n * @returns {Promise<DaemonHyperdrive>}\n */\nexport async function createNewDrive (manifest = {}) {\n  // create the drive\n  var drive = await loadDrive(null)\n\n  // announce the drive\n  drive.session.drive.configureNetwork({\n    announce: true,\n    lookup: true\n  })\n\n  // write the manifest and default datignore\n  await Promise.all([\n    drive.pda.writeManifest(manifest)\n    // DISABLED drive.pda.writeFile('/.datignore', await settingsDb.get('default_dat_ignore'), 'utf8')\n  ])\n\n  // save the metadata\n  await pullLatestDriveMeta(drive)\n\n  return drive\n}\n\n/**\n * @param {string} srcDriveUrl\n * @param {Object} [opts]\n * @returns {Promise<DaemonHyperdrive>}\n */\nexport async function forkDrive (srcDriveUrl, opts = {}) {\n  srcDriveUrl = fromKeyToURL(srcDriveUrl)\n\n  // get the source drive\n  var srcDrive\n  var downloadRes = await Promise.race([\n    (async function () {\n      srcDrive = await getOrLoadDrive(srcDriveUrl)\n      if (!srcDrive) {\n        throw new Error('Invalid drive key')\n      }\n      // return srcDrive.session.drive.download('/') TODO needed?\n    })(),\n    new Promise(r => setTimeout(() => r('timeout'), 60e3))\n  ])\n  if (downloadRes === 'timeout') {\n    throw new TimeoutError('Timed out while downloading source drive')\n  }\n\n  // fetch source drive meta\n  var srcManifest = await srcDrive.pda.readManifest().catch(_ => {})\n  srcManifest = srcManifest || {}\n\n  // override any opts data\n  var dstManifest = {\n    title: (opts.title) ? opts.title : srcManifest.title,\n    description: (opts.description) ? opts.description : srcManifest.description,\n    forkOf: opts.detached ? undefined : fromKeyToURL(srcDriveUrl)\n    // author: manifest.author\n  }\n  for (let k in srcManifest) {\n    if (k === 'author') continue\n    if (!dstManifest[k]) {\n      dstManifest[k] = srcManifest[k]\n    }\n  }\n\n  // create the new drive\n  var dstDrive = await createNewDrive(dstManifest)\n\n  // copy files\n  var ignore = ['/.dat', '/.git', '/index.json']\n  await pda.exportArchiveToArchive({\n    srcArchive: srcDrive.session.drive,\n    dstArchive: dstDrive.session.drive,\n    skipUndownloadedFiles: false,\n    ignore\n  })\n\n  return dstDrive\n};\n\n// drive management\n// =\n\nexport async function loadDrive (key, opts) {\n  // validate key\n  if (key) {\n    if (!Buffer.isBuffer(key)) {\n      // existing dat\n      key = await fromURLToKey(key, true)\n      if (!HYPERDRIVE_HASH_REGEX.test(key)) {\n        throw new InvalidURLError()\n      }\n      key = datEncoding.toBuf(key)\n    }\n  }\n\n  // fallback to the promise, if possible\n  var keyStr = key ? datEncoding.toStr(key) : null\n  if (keyStr && keyStr in driveLoadPromises) {\n    return driveLoadPromises[keyStr]\n  }\n\n  // run and cache the promise\n  var p = loadDriveInner(key, opts)\n  if (key) driveLoadPromises[keyStr] = p\n  p.catch(err => {\n    console.error('Failed to load drive', keyStr, err.toString())\n  })\n\n  // when done, clear the promise\n  if (key) {\n    const clear = () => delete driveLoadPromises[keyStr]\n    p.then(clear, clear)\n  }\n\n  return p\n}\n\n// main logic, separated out so we can capture the promise\nasync function loadDriveInner (key, opts) {\n  try {\n    // fetch dns name if known\n    var domain = await hyperDns.reverseResolve(key)\n    // let dnsRecord = await hyperDnsDb.getCurrentByKey(datEncoding.toStr(key)) TODO\n    // drive.domain = dnsRecord ? dnsRecord.name : undefined\n    \n    // create the drive session with the daemon\n    var drive = await daemon.createHyperdriveSession({key, domain})\n    drive.pullLatestDriveMeta = opts => pullLatestDriveMeta(drive, opts)\n    key = drive.key\n\n    if (opts && opts.persistSession) {\n      drive.persistSession = true\n    }\n\n    // update db\n    archivesDb.touch(drive.key).catch(err => console.error('Failed to update lastAccessTime for drive', drive.key, err))\n    if (!drive.writable) {\n      await downloadHack(drive, DRIVE_MANIFEST_FILENAME)\n    }\n    await drive.pullLatestDriveMeta()\n    driveAssets.update(drive)\n\n    return drive\n  } catch (e) {\n    if (e.toString().includes('daemon has shut down') || e.toString().includes('RPC stream destroyed')) {\n      // suppress, beaker is shutting down\n    } else {\n      throw e\n    }\n  }\n}\n\n/**\n * HACK to work around the incomplete daemon-client download() method -prf\n */\nasync function downloadHack (drive, path) {\n  if (!(await drive.pda.stat(path).catch(err => undefined))) return\n  let fileStats = (await drive.session.drive.fileStats(path)).get(path)\n  if (fileStats.downloadedBlocks >= fileStats.blocks) return\n  await drive.session.drive.download(path)\n  for (let i = 0; i < 10; i++) {\n    await wait(500)\n    fileStats = (await drive.session.drive.fileStats(path)).get(path)\n    if (fileStats.downloadedBlocks >= fileStats.blocks) {\n      return\n    }\n  }\n}\n\nexport function getDrive (key) {\n  key = fromURLToKey(key)\n  return daemon.getHyperdriveSession({key})\n}\n\nexport async function getDriveCheckout (drive, version) {\n  var isHistoric = false\n  var checkoutFS = drive\n  if (typeof version !== 'undefined' && version !== null) {\n    let seq = parseInt(version)\n    if (Number.isNaN(seq)) {\n      if (version === 'latest') {\n        // ignore, we use latest by default\n      } else {\n        throw new Error('Invalid version identifier:' + version)\n      }\n    } else {\n      let latestVersion = await drive.session.drive.version()\n      if (version <= latestVersion) {\n        checkoutFS = await daemon.createHyperdriveSession({\n          key: drive.key,\n          version,\n          writable: false,\n          domain: drive.domain\n        })\n        isHistoric = true\n      }\n    }\n  }\n  return {isHistoric, checkoutFS}\n};\n\nexport async function getOrLoadDrive (key, opts) {\n  key = await fromURLToKey(key, true)\n  var drive = getDrive(key)\n  if (drive) return drive\n  return loadDrive(key, opts)\n}\n\nexport async function unloadDrive (key) {\n  key =  fromURLToKey(key, false)\n  daemon.closeHyperdriveSession({key})\n};\n\nexport function isDriveLoaded (key) {\n  key = fromURLToKey(key)\n  return !!daemon.getHyperdriveSession({key})\n}\n\n// drive fetch/query\n// =\n\nexport async function getDriveInfo (key, {ignoreCache, onlyCache} = {ignoreCache: false, onlyCache: false}) {\n  var meta\n  try {\n    // get the drive\n    key = await fromURLToKey(key, true)\n    var drive\n    if (!onlyCache) {\n      drive = getDrive(key)\n      if (!drive && ignoreCache) {\n        drive = await loadDrive(key)\n      }\n    }\n\n    var domain = drive ? drive.domain : await hyperDns.reverseResolve(key)\n    var url = `hyper://${domain || key}/`\n\n    // fetch drive data\n    var manifest, driveInfo\n    if (drive) {\n      await drive.pullLatestDriveMeta()\n      ;[meta, manifest, driveInfo] = await Promise.all([\n        archivesDb.getMeta(key),\n        drive.pda.readManifest().catch(_ => {}),\n        drive.getInfo()\n      ])\n    } else {\n      meta = await archivesDb.getMeta(key)\n      driveInfo = {version: undefined}\n    }\n    manifest = manifest || {}\n    if (filesystem.isRootUrl(url) && !meta.title) {\n      meta.title = 'My Private Drive'\n    }\n    meta.key = key\n    meta.discoveryKey = drive ? drive.discoveryKey : undefined\n    meta.url = url\n    // meta.domain = drive.domain TODO\n    meta.links = manifest.links || {}\n    meta.manifest = manifest\n    meta.version = driveInfo.version\n    meta.peers = drive?.session?.drive?.metadata?.peers?.length || 0\n  } catch (e) {\n    meta = {\n      key,\n      url: `hyper://${key}/`,\n      writable: false,\n      version: 0,\n      title: '',\n      description: ''\n    }\n  }\n  meta.title = meta.title || ''\n  meta.description = meta.description || ''\n  return meta\n}\n\nexport async function clearFileCache (key) {\n  return {} // TODO daemon.clearFileCache(key, userSettings)\n}\n\n/**\n * @desc\n * Get the primary URL for a given dat URL\n *\n * @param {string} url\n * @returns {Promise<string>}\n */\nexport async function getPrimaryUrl (url) {\n  var key = await fromURLToKey(url, true)\n  var datDnsRecord = await hyperDnsDb.getCurrentByKey(key)\n  if (!datDnsRecord) return `hyper://${key}/`\n  return `hyper://${datDnsRecord.name}/`\n}\n\n/**\n * @desc\n * Check that the drive's index.json `domain` matches the current DNS\n * If yes, write the confirmed entry to the dat_dns table\n *\n * @param {string} key\n * @returns {Promise<boolean>}\n */\nexport async function confirmDomain (key) {\n  // DISABLED\n  // hyper: does not currently use DNS\n  // -prf\n\n  // // fetch the current domain from the manifest\n  // try {\n  //   var drive = await getOrLoadDrive(key)\n  //   var datJson = await drive.pda.readManifest()\n  // } catch (e) {\n  //   return false\n  // }\n  // if (!datJson.domain) {\n  //   await hyperDnsDb.unset(key)\n  //   return false\n  // }\n\n  // // confirm match with current DNS\n  // var dnsKey = await hyperDns.resolveName(datJson.domain)\n  // if (key !== dnsKey) {\n  //   await hyperDnsDb.unset(key)\n  //   return false\n  // }\n\n  // // update mapping\n  // await hyperDnsDb.update({name: datJson.domain, key})\n  // return true\n}\n\n// helpers\n// =\n\nexport function fromURLToKey (url, lookupDns = false) {\n  if (Buffer.isBuffer(url)) {\n    return url\n  }\n  if (HYPERDRIVE_HASH_REGEX.test(url)) {\n    // simple case: given the key\n    return url\n  }\n\n  var urlp = parseDriveUrl(url)\n  if (urlp.protocol !== 'hyper:' && urlp.protocol !== 'dat:') {\n    throw new InvalidURLError('URL must be a hyper: or dat: scheme')\n  }\n  if (!HYPERDRIVE_HASH_REGEX.test(urlp.host)) {\n    if (!lookupDns) {\n      throw new InvalidURLError('Hostname is not a valid hash')\n    }\n    return hyperDns.resolveName(urlp.host)\n  }\n\n  return urlp.host\n}\n\nexport function fromKeyToURL (key) {\n  if (typeof key !== 'string') {\n    key = datEncoding.toStr(key)\n  }\n  if (!key.startsWith('hyper://')) {\n    return `hyper://${key}/`\n  }\n  return key\n}\n\nfunction hasMetaChanged (m1, m2) {\n  for (let k of ['title', 'description', 'forkOf', 'size', 'author', 'writable', 'mtime']) {\n    if (!m1[k]) m1[k] = undefined\n    if (!m2[k]) m2[k] = undefined\n    if (k === 'forkOf') {\n      if (!isUrlsEq(m1[k], m2[k])) {\n        return true\n      }\n    } else {\n      if (m1[k] !== m2[k]) {\n        return true\n      }\n    }\n  }\n  return false\n}\n\nvar isUrlsEqRe = /([0-9a-f]{64})/i\nfunction isUrlsEq (a, b) {\n  if (!a && !b) return true\n  if (typeof a !== typeof b) return false\n  var ma = isUrlsEqRe.exec(a)\n  var mb = isUrlsEqRe.exec(b)\n  return ma && mb && ma[1] === mb[1]\n}\n"
  },
  {
    "path": "app/bg/hyper/index.js",
    "content": "import * as drives from './drives'\nimport * as assets from './assets'\nimport * as debug from './debugging'\nimport * as dns from './dns'\nimport * as watchlist from './watchlist'\nimport * as daemon from './daemon'\n\nexport default {\n  drives,\n  assets,\n  debug,\n  dns,\n  watchlist,\n  daemon,\n  async setup (opts) {\n    await this.drives.setup(opts)\n    await this.watchlist.setup()\n  }\n}\n"
  },
  {
    "path": "app/bg/hyper/watchlist.js",
    "content": "import EventEmitter from 'events'\nimport emitStream from 'emit-stream'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'hyper', subcategory: 'watchlist'})\n\n// dat modules\nimport * as drives from './drives'\n\nimport * as hyperDns from './dns'\nimport * as watchlistDb from '../dbs/watchlist'\n\n// globals\n// =\n\nvar watchlistEvents = new EventEmitter()\n\n// exported methods\n// =\n\nexport async function setup () {\n  try {\n    var watchedSites = await watchlistDb.getSites(0)\n    for (let site of watchedSites) {\n      watch(site)\n    }\n  } catch (err) {\n    logger.error('Error while loading watchlist', {err})\n    throw new Error('Failed to load the watchlist')\n  }\n}\n\nexport async function addSite (profileId, url, opts) {\n    // validate parameters\n  if (!url || typeof url !== 'string') {\n    throw new Error('url must be a string')\n  }\n  if (!opts.description || typeof opts.description !== 'string') {\n    throw new Error('description must be a string')\n  }\n  if (typeof opts.seedWhenResolved !== 'boolean') {\n    throw new Error('seedWhenResolved must be a boolean')\n  }\n  if (!url.startsWith('hyper://')) {\n    url = 'hyper://' + url + '/'\n  }\n\n  try {\n    var site = await watchlistDb.addSite(profileId, url, opts)\n    watch(site)\n  } catch (err) {\n    throw new Error('Failed to add to watchlist')\n  }\n}\n\nexport async function getSites (profileId) {\n  return watchlistDb.getSites(profileId)\n}\n\nexport async function updateWatchlist (profileId, site, opts) {\n  try {\n    await watchlistDb.updateWatchlist(profileId, site, opts)\n  } catch (err) {\n    throw new Error('Failed to update the watchlist')\n  }\n}\n\nexport async function removeSite (profileId, url) {\n  // validate parameters\n  if (!url || typeof url !== 'string') {\n    throw new Error('url must be a string')\n  }\n  return watchlistDb.removeSite(profileId, url)\n}\n\n// events\n\nexport function createEventsStream () {\n  return emitStream(watchlistEvents)\n}\n\n// internal methods\n// =\n\nasync function watch (site) {\n  // resolve DNS\n  var key\n  try {\n    key = await hyperDns.resolveName(site.url)\n  } catch (e) {}\n  if (!key) {\n    // try again in 30s\n    setTimeout(watch, 30e3)\n    return\n  }\n\n  // load drive\n  var drive = await drives.loadDrive(key)\n  if (site.resolved === 0) {\n    watchlistEvents.emit('resolved', site)\n  }\n  await updateWatchlist(0, site, {resolved: 1})\n}"
  },
  {
    "path": "app/bg/lib/db.js",
    "content": "import * as logLib from '../logger'\nconst logger = logLib.child({category: 'sqlite'})\nimport FnQueue from 'function-queue'\nimport { cbPromise } from '../../lib/functions'\nimport _get from 'lodash.get'\n\n/**\n * Create a transaction lock\n * - returns a function which enforces FIFO execution on async behaviors, via a queue\n * - call sig: txLock(cb => { ...; cb() })\n * - MUST call given cb to release the lock\n * @returns {function(Function): void}\n */\nconst makeTxLock = exports.makeTxLock = function () {\n  var fnQueue = FnQueue()\n  return cb => fnQueue.push(cb)\n}\n\n/**\n * SQLite transactor, handles common needs for sqlite queries:\n * 1. waits for the setupPromise\n * 2. provides a cb handler that returns a promise\n * 3. creates a transaction lock, and wraps the cb with it\n * NOTE:\n *   Using the transactor does mean that the DB is locked into sequential operation.\n *   This is slower, but necessary if the SQLite instance has any transactions that\n *   do async work within them; eg, SELECT then UPDATE.\n *   Why: without the tx lock around all SQLite statements, you can end up injecting\n *   new commands into the active async transaction.\n *   If the DB doesn't do async transactions, you don't need the transactor. At time of\n *   writing this, only the history DB needed it.\n *   -prf\n * @param {Promise<any>} setupPromise\n * @returns {function(Function): Promise<any>}\n */\nexport const makeSqliteTransactor = function (setupPromise) {\n  var txLock = makeTxLock()\n  return function (fn) {\n    // 1. wait for the setup promise\n    return setupPromise.then(v => {\n      // 2. provide a cb handler\n      return cbPromise(cb => {\n        // 3. create a tx lock\n        txLock(endTx => {\n          // 3b. wrap the cb with the lock release\n          var cbWrapped = (err, res) => {\n            endTx()\n            cb(err, res)\n          }\n          // yeesh\n          fn(cbWrapped)\n        })\n      })\n    })\n  }\n}\n\n/**\n * Configures SQLite db and runs needed migrations.\n * @param {any} db\n * @param {Object} opts\n * @param {Function} [opts.setup]\n * @param {Function[]} [opts.migrations]\n */\nexport const setupSqliteDB = function (db, {setup, migrations}, logTag) {\n  return new Promise((resolve, reject) => {\n    // configure connection\n    db.run('PRAGMA foreign_keys = ON;', (err) => {\n      if (err) {\n        console.error('Failed to enable FK support in SQLite', err)\n      }\n    })\n\n    // run migrations\n    db.get('PRAGMA user_version;', (err, res) => {\n      if (err) return reject(err)\n\n      var version = (res && res.user_version) ? +res.user_version : 0\n      var neededMigrations = (version === 0 && setup) ? [setup] : migrations.slice(version)\n      if (neededMigrations.length == 0) { return resolve() }\n\n      logger.info(`${logTag} Database at version ${version}; Running ${neededMigrations.length} migrations`)\n      db.run('PRAGMA SYNCHRONOUS = OFF;') // turn off fsync to speed up migrations\n      runNeededMigrations()\n      function runNeededMigrations (err) {\n        if (err) {\n          logger.error(`${logTag} Failed migration`)\n          console.log(err)\n          db.run('PRAGMA SYNCHRONOUS = FULL;') // turn fsync back on\n          return reject(err)\n        }\n\n        var migration = neededMigrations.shift()\n        if (!migration) {\n          // done\n          db.run('PRAGMA SYNCHRONOUS = FULL;') // turn fsync back on\n          resolve()\n          return logger.info(`${logTag} Database migrations completed without error`)\n        }\n\n        migration(runNeededMigrations)\n      }\n    })\n  })\n}\n\nexport const handleQueryBuilder = function (args) {\n  // detect query builders and replace the args\n  if (args[0] && _get(args[0], 'constructor.name') === 'Builder') {\n    var query = args[0].toSQL()\n    return [query.sql, query.bindings]\n  }\n  return args\n}\n\nexport function attachOnConflictDoUpdate (knex) {\n  knex.QueryBuilder.extend('onConflictDoUpdate', function onConflictDoUpdate(uniqueColumn, columns) {\n    if (this._method !== 'insert') {\n      throw new Error('onConflictDoUpdate error: should be used only with insert query.');\n    }\n\n    if (columns.length === 0) {\n      throw new Error('onConflictDoUpdate error: please specify at least one column name.');\n    }\n\n    const { placeholders, bindings } = Object.entries(columns).reduce((result, [key, value]) => {\n      result.placeholders.push(`??=?`);\n      result.bindings.push(key, value);\n      return result;\n    }, { placeholders: [], bindings: [] });\n\n    const {\n      sql: originalSQL,\n      bindings: originalBindings,\n    } = this.toSQL();\n\n    const newBindings = [...originalBindings, ...bindings];\n\n    return this.client.raw(\n      `${originalSQL} on conflict(${uniqueColumn}) do update set ${placeholders.join(', ')}`,\n      newBindings,\n    );\n  });\n}"
  },
  {
    "path": "app/bg/lib/electron.js",
    "content": "import path from 'path'\nimport { BrowserWindow } from 'electron'\n\nexport function findWebContentsParentWindow (wc) {\n  for (let win of BrowserWindow.getAllWindows()) {\n    for (let view of win.getBrowserViews()) {\n      if (view.webContents === wc) {\n        return win\n      }\n    }\n  }\n  let win = BrowserWindow.fromWebContents(wc)\n  while (win && win.getParentWindow()) {\n    win = win.getParentWindow()\n  }\n  // it might not be attached because it was a shell menu that has closed\n  // in that case, just go with the focused window\n  if (!win) win = BrowserWindow.getFocusedWindow()\n  return win\n}\n\nexport async function spawnAndExecuteJs (url, js) {\n  var win = new BrowserWindow({\n    show: false,\n    webPreferences: {\n      preload: path.join(__dirname, 'fg', 'webview-preload', 'index.build.js'),\n      nodeIntegrationInSubFrames: true,\n      contextIsolation: true,\n      worldSafeExecuteJavaScript: false, // TODO- this causes promises to fail in executeJavaScript, need to file an issue with electron\n      webviewTag: false,\n      sandbox: true,\n      defaultEncoding: 'utf-8',\n      nativeWindowOpen: true,\n      nodeIntegration: false,\n      scrollBounce: true,\n      navigateOnDragDrop: true,\n      enableRemoteModule: false,\n      safeDialogs: true\n    }\n  })\n  win.loadURL(url)\n  var wc = win.webContents\n\n  wc.on('new-window', e => e.preventDefault())\n  wc.on('will-navigate', e => e.preventDefault())\n  wc.on('will-redirect', e => e.preventDefault())\n\n  try {\n    await new Promise((resolve, reject) => {\n      wc.once('dom-ready', resolve)\n      wc.once('did-fail-load', reject)\n    })\n\n    var res = await wc.executeJavaScript(js)\n    return res\n  } finally {\n    win.close()\n  }\n}"
  },
  {
    "path": "app/bg/lib/env.js",
    "content": "/**\n * Helper to get environment variables, ignoring case\n * @param {string} name\n * @returns {string}\n */\nexport const getEnvVar = function (name) {\n  var ucv = process.env[name.toUpperCase()]\n  if (typeof ucv !== 'undefined') {\n    return ucv\n  }\n  var lcv = process.env[name.toLowerCase()]\n  if (typeof lcv !== 'undefined') {\n    return lcv\n  }\n  return undefined\n}\n"
  },
  {
    "path": "app/bg/lib/error-page.js",
    "content": "var errorPageCSS = `\n* {\n  box-sizing: border-box;\n}\na {\n  text-decoration: none;\n  color: inherit;\n  cursor: pointer;\n}\nbody {\n  background: #fff;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n}\n.btn {\n  display: inline-block;\n  cursor: pointer;\n  color: #777;\n  border-radius: 2px;\n  background: #fafafa;\n  border: 1px solid #ddd;\n  font-size: 12px;\n  font-weight: 500;\n  height: 25px;\n  line-height: 2;\n  padding: 0 8px;\n  letter-spacing: .2px;\n  height: 26px;\n  font-weight: 400;\n}\n.btn * {\n  cursor: pointer;\n  line-height: 25px;\n  vertical-align: baseline;\n  display: inline-block;\n}\n.btn:focus {\n  outline-color: #007aff;\n}\n.btn:hover {\n  text-decoration: none;\n  background: #f0f0f0;\n}\n.btn.disabled,\n.btn:disabled {\n  cursor: default;\n  color: #999999;\n  border: 1px solid #ccc;\n  box-shadow: none;\n}\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa;\n}\n.btn.primary {\n  -webkit-font-smoothing: antialiased;\n  font-weight: 800;\n  background: #007aff;\n  color: #fff;\n  border: none;\n  transition: background .1s ease;\n}\n.btn.primary:hover {\n  background: #0074f2;\n}\na.btn span {\n  vertical-align: baseline;\n}\n.btn.big {\n  font-size: 18px;\n  height: auto;\n  padding: 0px 12px;\n}\na.link {\n  color: blue;\n  text-decoration: underline;\n}\n.right {\n  float: right;\n}\n.icon-wrapper {\n  vertical-align: top;\n  width: 70px;\n  font-size: 50px;\n  display: inline-block;\n  color: #555;\n\n  i {\n    margin-top: -3px;\n  }\n}\n.error-wrapper {\n  display: inline-block;\n  width: 80%;\n}\ndiv.error-page-content {\n  max-width: 650px;\n  margin: auto;\n  transform: translateX(-20px);\n  margin-top: 30vh;\n  color: #777;\n  font-size: 14px;\n}\ndiv.error-page-content .description {\n\n  p {\n    margin: 20px 0;\n  }\n}\ndiv.error-page-content i {\n  margin-right: 5px;\n}\nh1 {\n  margin: 0;\n  color: #333;\n  font-weight: 400;\n  font-size: 22px;\n}\np.big {\n  font-size: 18px;\n}\n.icon {\n  float: right;\n}\nli {\n  margin-bottom: 0.5em;\n}\nli:last-child {\n  margin: 0;\n}\n.footer {\n  font-size: 14px;\n  color: #777;\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n  margin-top: 30px;\n  padding-top: 10px;\n  border-top: 1px solid #ddd;\n}\n`\n\n/**\n * Generate an error page HTML\n * @param {Object} e\n * @param {string} e.resource\n * @param {number} e.errorCode\n * @param {string} e.errorDescription\n * @param {string} e.errorInfo\n * @param {string} e.title\n * @param {string} e.validatedURL\n * @returns {string}\n */\nexport default function (e) {\n  var title = 'This site can’t be reached'\n  var info = ''\n  var icon = 'fa-exclamation-circle'\n  var button = '<a class=\"btn right\" href=\"javascript:window.location.reload()\">Try again</a>'\n  var errorDescription\n  var moreHelp = ''\n\n  if (typeof e === 'object') {\n    errorDescription = e.errorDescription || ''\n    info = e.errorInfo || ''\n    // remove trailing slash\n    var origin = e.validatedURL.slice(0, e.validatedURL.length - 1)\n\n    // strip protocol\n    if (origin.startsWith('https://')) {\n      origin = origin.slice(8)\n    } else if (origin.startsWith('http://')) {\n      origin = origin.slice(7)\n    }\n\n    switch (e.errorCode) {\n      case -106:\n        title = 'No internet connection'\n        info = `<p>Your computer is not connected to the internet.</p><p>Try:</p><ul><li>Resetting your Wi-Fi connection<li>Checking your router and modem.</li></ul>`\n        break\n      case -105:\n        icon = 'fa-frown-o'\n        info = `<p>Couldn’t resolve the DNS address for <strong>${origin}</strong></p>`\n        break\n      case 404:\n        icon = 'fa-frown-o'\n        title = e.title || 'Page Not Found'\n        info = `<p>${e.errorInfo}</p>`\n        break\n      case -501:\n        title = 'Your connection is not secure'\n        info = `<p>Beaker cannot establish a secure connection to the server for <strong>${origin}</strong>.</p>`\n        icon = 'fa-close warning'\n        button = '<a class=\"btn right\" href=\"javascript:window.history.back()\">Go back</a>'\n        break\n      case 504:\n        icon = 'fa-share-alt'\n        title = `Beaker is unable to access this ${e.resource} right now.`\n        errorDescription = `The p2p ${e.resource} was not reachable on the network.`\n        break\n    }\n  } else {\n    errorDescription = e\n  }\n\n  return `\n    <html>\n      <head>\n        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      </head>\n      <body>\n        <style>${errorPageCSS}</style>\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"error-page-content\">\n          <div class=\"icon-wrapper\"><i class=\"fa ${icon}\"></i></div>\n\n          <div class=\"error-wrapper\">\n            <h1>${title}</h1>\n            <div class=\"description\">\n              ${info}\n            </div>\n            <div class=\"footer\">\n              ${errorDescription}\n              ${button}\n            </div>\n          </div>\n        </div>\n      </body>\n    </html>`.replace(/\\n/g, '')\n};\n"
  },
  {
    "path": "app/bg/lib/fs.js",
    "content": "import {dialog} from 'electron'\nimport jetpack from 'fs-jetpack'\n\nexport async function checkFolderIsEmpty (dst, {noPrompt} = {}) {\n  // check if there are files in the destination path\n  try {\n    var files = await jetpack.listAsync(dst)\n    if (files && files.length > 0) {\n      if (noPrompt) return false\n      // ask the user if they're sure\n      var {response} = await dialog.showMessageBox({\n        type: 'question',\n        message: 'This folder is not empty. Some files may be overwritten. Continue?',\n        buttons: ['Yes', 'No, cancel']\n      })\n      if (response != 0) {\n        return false\n      }\n    }\n  } catch (e) {\n    // no files\n  }\n  return true\n}\n"
  },
  {
    "path": "app/bg/lib/git.js",
    "content": "import path from 'path'\nimport git from 'isomorphic-git'\nimport http from 'isomorphic-git/http/node'\nimport fs from 'fs'\nimport { tmpdir } from 'os'\n\nexport async function gitCloneToTmp (url) {\n  var dir = await fs.promises.mkdtemp(path.join(tmpdir(), `beaker-git-`))\n  try {\n    await git.clone({fs, http, dir, url})\n  } catch (e) {\n    if (!url.endsWith('.git') && e.toString().includes('404')) {\n      return gitCloneToTmp(url + '.git')\n    }\n    throw e\n  }\n  return dir\n}"
  },
  {
    "path": "app/bg/lib/image.js",
    "content": "/**\n * @description\n * Takes in a bitmap buffer (from NativeImage) and finds the dimensions\n * of the actual image content, effectively trimming all whitespace.\n *\n * @param {Buffer} buf\n * @param {Object} size\n * @param {number} size.width\n * @param {number} size.height\n * @returns {Object}\n */\nexport function findImageBounds (buf, {width, height}) {\n  function pixelHasValue (x, y) {\n    let i = (x + y * width) << 2\n    return (buf[i + 3] > 0 && (buf[i + 0] < 240 || buf[i + 1] < 240 || buf[i + 2] < 240))\n  }\n  var bounds = {left: width, top: height, right: 0, bottom: 0}\n\n  for (let x = 0; x < width; x++) {\n    for (let y = 0; y < height; y++) {\n      if (pixelHasValue(x, y)) {\n        bounds.left = Math.min(bounds.left, x)\n        bounds.top = Math.min(bounds.top, y)\n        bounds.right = Math.max(bounds.right, x)\n        bounds.bottom = Math.max(bounds.bottom, y)\n      }\n    }\n  }\n\n  Object.defineProperty(bounds, 'x', {get: () => bounds.left})\n  Object.defineProperty(bounds, 'y', {get: () => bounds.top})\n  Object.defineProperty(bounds, 'width', {get: () => bounds.right - bounds.left})\n  Object.defineProperty(bounds, 'height', {get: () => bounds.bottom - bounds.top})\n  return bounds\n}\n"
  },
  {
    "path": "app/bg/lib/knex.js",
    "content": "export default require('knex')({client: 'sqlite3', useNullAsDefault: true})"
  },
  {
    "path": "app/bg/lib/mime.js",
    "content": "import through2 from 'through2'\nimport identifyFiletype from 'identify-filetype'\nimport mime from 'mime'\nimport path from 'path'\nimport textextensions from 'textextensions'\nimport binextensions from 'binary-extensions'\nimport concat from 'concat-stream'\n\n// config default mimetype\nmime.default_type = 'text/plain'\nconst TEXT_TYPE_RE = /^text\\/|^application\\/(javascript|json)/\n\n// typedefs\n// =\n\n/**\n * @typedef {import('stream').Transform} Transform\n */\n\n// exported api\n// =\n\n/**\n * @param {string} name\n * @param {Buffer} [chunk]\n * @returns {string}\n */\nexport function identify (name, chunk) {\n  // try to identify the type by the chunk contents\n  var mimeType\n  var identifiedExt = (chunk) ? identifyFiletype(chunk) : false\n  if (identifiedExt === 'html') identifiedExt = false // HACK- never let HTML be determined by file content -prf\n  if (identifiedExt) { mimeType = mime.lookup(identifiedExt, 'text/plain') }\n  if (!mimeType) {\n    // fallback to using the entry name\n    if (name.endsWith('.goto')) {\n      mimeType = 'application/goto' // this one's a little new\n    } else {\n      mimeType = mime.lookup(name, 'text/plain')\n    }\n  }\n  mimeType = correctSomeMimeTypes(mimeType, name)\n\n  // hackish fix\n  // the svg test can be a bit aggressive: html pages with\n  // inline svgs can be falsely interpretted as svgs\n  // double check that\n  if (identifiedExt === 'svg' && mime.lookup(name) === 'text/html') {\n    return 'text/html; charset=utf8'\n  }\n\n  // assume utf-8 for text types\n  if (TEXT_TYPE_RE.test(mimeType)) {\n    mimeType += '; charset=utf8'\n  }\n\n  return mimeType\n}\n\n/**\n * @param {string} name\n * @param {function(string): any} cb\n * @returns {Transform}\n */\nexport function identifyStream (name, cb) {\n  var first = true\n  return through2(function (chunk, enc, cb2) {\n    if (first) {\n      first = false\n      cb(identify(name, chunk))\n    }\n    this.push(chunk)\n    cb2()\n  })\n}\n\n/**\n * Guesses if the file is binary based on its path.\n * Returns 'undefined' if no guess can be made.\n * @param {string} filepath\n * @returns {boolean | undefined}\n */\nexport function isFileNameBinary (filepath) {\n  const ext = path.extname(filepath)\n  if (binextensions.includes(ext)) return true\n  if (textextensions.includes(ext)) return false\n  // dont know\n}\n\n/**\n * Guesses if the file is binary based on its content.\n * @param {Object} fsInstance - The filesystem to read from.\n * @param {string} filepath\n * @returns {Promise<boolean>}\n */\nexport async function isFileContentBinary (fsInstance, filepath) {\n  return new Promise((resolve, reject) => {\n    const rs = fsInstance.createReadStream(filepath, {start: 0, end: 512})\n    rs.on('error', reject)\n    rs.pipe(concat(buf => resolve(isBinaryCheck(buf))))\n  })\n}\n\n/**\n * For a given HTTP accept header, provide a list of file-extensions to try.\n * @param {string | undefined} accept\n * @returns {string[]}\n */\nexport function acceptHeaderExtensions (accept) {\n  var exts = []\n  var parts = (accept || '').split(',')\n  if (parts.includes('text/html') || (parts.length === 1 && parts[0] === '*/*')) exts.push('.html')\n  if (parts.includes('text/css')) exts.push('.css')\n  if (parts.includes('image/*') || parts.includes('image/apng')) exts = exts.concat(['.png', '.jpg', '.jpeg', '.gif'])\n  return exts\n}\n\n/**\n * For a given HTTP accept header, is HTML wanted?\n * @param {string | undefined} accept\n * @returns {boolean}\n */\nexport function acceptHeaderWantsHTML (accept) {\n  var parts = (accept || '').split(',')\n  return parts.includes('text/html')\n}\n\n/**\n * Looks for byte patterns that indicate the 'bytes' chunk is from a binary file.\n * pulled from https://github.com/gjtorikian/isBinaryFile\n * @param {Buffer} bytes\n * @returns {boolean}\n */\nfunction isBinaryCheck (bytes) {\n  var size = bytes.length\n  if (size === 0) {\n    return false\n  }\n\n  var suspicious_bytes = 0\n\n  // UTF-8 BOM\n  if (size >= 3 && bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) {\n    return false\n  }\n\n  // UTF-32 BOM\n  if (size >= 4 && bytes[0] === 0x00 && bytes[1] === 0x00 && bytes[2] == 0xFE && bytes[3] == 0xFF) {\n    return false\n  }\n\n  // UTF-32 LE BOM\n  if (size >= 4 && bytes[0] == 0xFF && bytes[1] == 0xFE && bytes[2] === 0x00 && bytes[3] === 0x00) {\n    return false\n  }\n\n  // GB BOM\n  if (size >= 4 && bytes[0] == 0x84 && bytes[1] == 0x31 && bytes[2] == 0x95 && bytes[3] == 0x33) {\n    return false\n  }\n\n  if (size >= 5 && bytes.slice(0, 5).toString('utf8') === '%PDF-') {\n    /* PDF. This is binary. */\n    return true\n  }\n\n  // UTF-16 BE BOM\n  if (size >= 2 && bytes[0] == 0xFE && bytes[1] == 0xFF) {\n    return false\n  }\n\n  // UTF-16 LE BOM\n  if (size >= 2 && bytes[0] == 0xFF && bytes[1] == 0xFE) {\n    return false\n  }\n\n  for (var i = 0; i < size; i++) {\n    if (bytes[i] === 0) { // NULL byte--it's binary!\n      return true\n    } else if ((bytes[i] < 7 || bytes[i] > 14) && (bytes[i] < 32 || bytes[i] > 127)) {\n      // UTF-8 detection\n      if (bytes[i] > 193 && bytes[i] < 224 && i + 1 < size) {\n        i++\n        if (bytes[i] > 127 && bytes[i] < 192) {\n          continue\n        }\n      } else if (bytes[i] > 223 && bytes[i] < 240 && i + 2 < size) {\n        i++\n        if (bytes[i] > 127 && bytes[i] < 192 && bytes[i + 1] > 127 && bytes[i + 1] < 192) {\n          i++\n          continue\n        }\n      }\n      suspicious_bytes++\n      // Read at least 32 bytes before making a decision\n      if (i > 32 && (suspicious_bytes * 100) / size > 10) {\n        return true\n      }\n    }\n  }\n\n  if ((suspicious_bytes * 100) / size > 10) {\n    return true\n  }\n\n  return false\n}\n\n/**\n * @param {string} mimeType \n * @param {string} name \n * @returns {string}\n */\nfunction correctSomeMimeTypes (mimeType, name) {\n  if (mimeType === 'video/quicktime' && name.endsWith('.mov')) {\n    return 'video/mp4'\n  }\n  return mimeType\n}"
  },
  {
    "path": "app/bg/lib/tail-file.js",
    "content": "/**\n * tail-file.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * (C) 2019 Paul Frazee\n * MIT LICENCE\n */\n\n'use strict'\n\nimport fs from 'fs'\nimport { StringDecoder } from 'string_decoder'\nimport { Stream } from 'readable-stream'\n\n/**\n * Simple no-op function.\n * @returns {undefined}\n */\nfunction noop () {}\n\n/**\n * Read and then tail the given file.\n * The algorithm is fairly straight-forward: after hitting the end, it will attempt reads once a second.\n * (It's poll-based rather than watch-based.)\n * @param {string} file - Path to file.\n * @returns {any} - TODO: add return description.\n */\nexport default (file) => {\n  const buffer = Buffer.alloc(64 * 1024)\n  const decode = new StringDecoder('utf8')\n  const stream = new Stream()\n  let pos = 0\n\n  stream.readable = true\n  stream.destroy = () => {\n    stream.destroyed = true\n    stream.emit('end')\n    stream.emit('close')\n  }\n\n  fs.open(file, 'a+', '0644', async (err, fd) => {\n    if (err) {\n      stream.emit('error', err)\n      stream.destroy()\n      return\n    }\n\n    while (true) {\n      if (stream.destroyed) {\n        // abort if stream destroyed\n        fs.close(fd, noop)\n        return\n      }\n\n      // read next chunk\n      let bytes\n      try {\n        bytes = await new Promise((resolve, reject) => {\n          fs.read(fd, buffer, 0, buffer.length, pos, (err, bytes) => {\n            if (err) reject(err)\n            else resolve(bytes)\n          })\n        })\n      } catch (err) {\n        stream.emit('error', err)\n        stream.destroy()\n        return\n      }\n\n      if (!bytes) {\n        // nothing read\n        // wait a second, then try to read again\n        await new Promise(resolve => setTimeout(resolve, 1e3))\n        continue\n      }\n\n      // decode and emit\n      let data = decode.write(buffer.slice(0, bytes))\n      stream.emit('data', data)\n      pos += bytes\n    }\n  })\n\n  return stream\n}\n"
  },
  {
    "path": "app/bg/lib/zip.js",
    "content": "import { join } from 'path'\nimport yazl from 'yazl'\n\n/**\n * @typedef {import('../dat/daemon').DaemonHyperdrive} DaemonHyperdrive\n * @typedef {import('stream').Readable} Readable\n */\n\n/**\n * @param {DaemonHyperdrive} drive\n * @param {string} [dirpath = '/']\n * @returns {Readable}\n */\nexport const toZipStream = function (drive, dirpath = '/') {\n  var zipfile = new yazl.ZipFile()\n\n  // create listing stream\n  drive.pda.readdir(dirpath, {recursive: true}).then(async (paths) => {\n    for (let path of paths) {\n      let readPath = join(dirpath, path)\n\n      // files only\n      try {\n        let entry = await drive.pda.stat(readPath)\n        if (!entry.isFile()) {\n          continue\n        }\n      } catch (e) {\n        // ignore, file must have been removed\n        continue\n      }\n\n      // pipe each entry into the zip\n      zipfile.addBuffer(await drive.pda.readFile(readPath, 'binary'), path)\n      // NOTE\n      // for some reason using drive.createReadStream() to feed into the zipfile addReadStream() was not working with multiple files\n      // no idea why, maybe a sign of a bug in the dat-daemon's zip rpc\n      // -prf\n    }\n    zipfile.end()\n  }).catch(onerror)\n\n  // on error, push to the output stream\n  function onerror (e) {\n    console.error('Error while producing zip stream', e)\n    zipfile.outputStream.emit('error', e)\n  }\n\n  return zipfile.outputStream\n}"
  },
  {
    "path": "app/bg/logger.js",
    "content": "import * as winston from 'winston'\nimport fs from 'fs'\nimport jetpack from 'fs-jetpack'\nimport fsReverse from 'fs-reverse'\nimport concat from 'concat-stream'\nimport pump from 'pump'\nimport split2 from 'split2'\nimport through2 from 'through2'\nimport { Readable } from 'stream'\nimport os from 'os'\nimport { join } from 'path'\nconst {combine, timestamp, json, simple, colorize, padLevels} = winston.format\nimport tailFile from './lib/tail-file'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} LogQueryOpts\n * @prop {number} [logFile = 0] - Which logfile to read\n * @prop {string} [sort = 'asc'] - Sort direction\n * @prop {number} [since] - Start time\n * @prop {number} [until] - End time\n * @prop {number} [offset] - Event-slice offset\n * @prop {number} [limit] - Max number of objects to output\n * @prop {any} [filter] - Attribute filters\n */\n\n// globals\n// =\n\nvar logPath\nconst logger = winston.createLogger({\n  level: 'silly'\n})\n\n// exported api\n// =\n\nexport async function setup (p) {\n  logPath = p\n\n  // rotate logfiles from previous runs\n  await retireLogFile(5)\n  for (let i = 4; i >= 0; i--) {\n    await rotateLogFile(i)\n  }\n\n  const shortenKeys = winston.format((info, opts) => {\n    shortenObjKeys(info)\n    return info;\n  });\n\n  logger.add(new winston.transports.File({\n    filename: logPath,\n    format: combine(shortenKeys(), timestamp(), json())\n  }))\n\n  // TODO if debug (pick an env var for this)\n  logger.add(new winston.transports.Console({\n    level: 'verbose',\n    format: combine(shortenKeys(), colorize(), padLevels(), simple())\n  }))\n\n  logger.info('Logger started')\n}\n\nexport const get = () => logger\nexport const category = (category) => logger.child({category})\nexport const child = (arg) => logger.child(arg)\n\n/**\n * Query a slice of the log.\n * @param {LogQueryOpts} [opts]\n * @returns {Promise<Object[]>}\n */\nexport async function query (opts = {}) {\n  return new Promise((resolve, reject) => {\n    opts.limit = opts.limit || 100\n    var readFn = opts.sort === 'desc' ? fsReverse : fs.createReadStream\n    var readStream = readFn(getLogPath(opts.logFile || 0), {encoding: 'utf8'})\n    const nosplit = (readFn === fsReverse) // fs-reverse splits for us\n    pump(\n      readPipeline(readStream, opts, nosplit),\n      concat({encoding: 'object'}, res => resolve(/** @type any */(res))),\n      reject\n    )\n  })\n}\n\n/**\n * Create a read stream of the log.\n * @param {LogQueryOpts} [opts]\n * @returns {NodeJS.ReadStream}\n */\nexport function stream (opts = {}) {\n  var readStream = tailFile(getLogPath(opts.logFile || 0))\n  return readPipeline(readStream, opts)\n}\n\nexport const WEBAPI = {\n  query,\n  stream: opts => {\n    opts = opts || {}\n    var s2 = new Readable({\n      read () {},\n      objectMode: true\n    })\n    var s1 = stream(opts)\n    // convert to the emit-stream form\n    s1.on('data', v => {\n      s2.push(['data', v])\n    })\n    s1.on('error', v => s2.push(['error', v]))\n    s1.on('close', v => {\n      s2.push(['close', v])\n      s2.destroy()\n    })\n    s2.on('close', () => s1.destroy())\n    return s2\n  },\n  async listDaemonLog () {\n    var file = await new Promise((resolve, reject) => {\n      pump(\n        fs.createReadStream(join(os.homedir(), '.hyperdrive/log.json'), {start: 0, end: 1e6, encoding: 'utf8'}),\n        concat(resolve),\n        reject\n      )\n    })\n    return file.split('\\n').map(line => {\n      try { return JSON.parse(line) }\n      catch (e) { return undefined }\n    }).filter(Boolean)\n  }\n}\n\n// internal methods\n// =\n\nfunction shortenObjKeys (obj) {\n  for (let key in obj) {\n    if (obj[key] && typeof obj[key] === 'object') {\n      shortenObjKeys(obj[key])\n    }\n    if (typeof obj[key] === 'string') {\n      obj[key] = obj[key].replace(/[0-9a-f]{64}/ig, k => `${k.slice(0, 4)}..${k.slice(-2)}`)\n    }\n  }\n}\n\nfunction massageFilters (filter) {\n  if (filter && typeof filter === 'object') {\n    // make each filter an array\n    for (let k in filter) {\n      filter[k] = Array.isArray(filter[k]) ? filter[k] : [filter[k]]\n    }\n  } else {\n    filter = false\n  }\n  return filter\n}\n\nfunction getLogPath (num) {\n  if (num) return logPath + '.' + num\n  return logPath\n}\n\nasync function rotateLogFile (num) {\n  try {\n    var p = getLogPath(num)\n    var info = await jetpack.inspectAsync(p)\n    if (info && info.type === 'file') {\n      await jetpack.moveAsync(p, getLogPath(num + 1))\n    }\n  } catch (err) {\n    console.error('rotateLogFile failed', num, err)\n  }\n}\n\nasync function retireLogFile (num) {\n  try {\n    var p = getLogPath(num)\n    var info = await jetpack.inspectAsync(p)\n    if (info && info.type === 'file') {\n      await jetpack.removeAsync(p)\n    }\n  } catch (err) {\n    console.error('retireLogFile failed', num, err)\n  }\n}\n\n/**\n * @param {any} readStream\n * @param {LogQueryOpts} opts\n * @returns {any}\n */\nfunction readPipeline (readStream, opts, nosplit = false) {\n  var beforeOffset = 0\n  var beforeLimit = 0\n  var offset = opts.offset || 0\n  var limit = opts.limit\n  var filter = massageFilters(opts.filter)\n  return pump([\n    readStream,\n    nosplit ? undefined : split2(),\n    through2.obj(function (row, enc, cb) {\n      if (!row || !row.trim()) {\n        // skip empty\n        return cb()\n      }\n\n      // offset filter\n      if (beforeOffset < offset) {\n        beforeOffset++\n        return cb()\n      }\n\n      // parse\n      row = JSON.parse(row)\n\n      // timestamp range filter\n      var ts = (opts.since || opts.until) ? (new Date(row.timestamp)).getTime() : null\n      if ('since' in opts && ts < opts.since) return cb()\n      if ('until' in opts && ts > opts.until) return cb()\n\n      // general string filters\n      if (filter) {\n        for (let k in filter) {\n          if (!filter[k].includes(row[k])) return cb()\n        }\n      }\n\n      // emit\n      if (!limit || beforeLimit < limit) this.push(row)\n      if (limit && ++beforeLimit === limit) readStream.destroy()\n      cb()\n    })\n  ].filter(Boolean))\n}"
  },
  {
    "path": "app/bg/nat-port-forwarder.js",
    "content": "import ms from 'ms'\nimport natUpnp from 'nat-upnp'\nimport { DAT_SWARM_PORT } from '../lib/const'\n\n// exported methods\n// =\n\nexport function setup () {\n  setTimeout(openPort, ms('3s'))\n}\n\nexport function closePort () {\n  var client = natUpnp.createClient()\n  client.portUnmapping({public: DAT_SWARM_PORT})\n}\n\n// internal methods\n// =\n\nasync function openPort () {\n  var opts = {\n    public: DAT_SWARM_PORT,\n    private: DAT_SWARM_PORT,\n    ttl: 1800  // 30 min\n  }\n\n  var client = natUpnp.createClient()\n  client.portMapping(opts, async (err) => {\n    if (!err) {\n      // schedule reopening the port every 30 minutes\n      var to = setTimeout(openPort, ms('30m'))\n      to.unref()\n    } else {\n      // assuming errorCode 725 OnlyPermanentLeasesSupported and retry without a TTL\n      opts.ttl = '0'  // string not int\n      client.portMapping(opts)\n    }\n  })\n}\n"
  },
  {
    "path": "app/bg/open-url.js",
    "content": "// handle OSX open-url event\nimport {BrowserWindow, ipcMain} from 'electron'\nimport * as windows from './ui/windows'\nimport * as tabManager from './ui/tabs/manager'\nvar queue = []\nvar isLoaded = false\nvar isSetup = false\n\nexport function setup () {\n  if (isSetup) return\n  isSetup = true\n  ipcMain.on('shell-window:ready', function (e) {\n    var win = BrowserWindow.fromWebContents(e.sender)\n    queue.forEach(url => tabManager.create(win, url))\n    queue.length = 0\n    isLoaded = true\n  })\n}\n\nexport function open (url, opts = {}) {\n  setup()\n  var win = windows.getActiveWindow()\n  if (isLoaded && win) {\n    // send command now\n    tabManager.create(win, url, opts)\n    win.show()\n  } else {\n    // queue for later\n    queue.push(url)\n\n    // no longer loaded?\n    if (isLoaded) {\n      isLoaded = false\n      // spawn a new window\n      windows.createShellWindow()\n    }\n  }\n  return win && win.webContents\n}\n"
  },
  {
    "path": "app/bg/protocols/asset.js",
    "content": "/**\n * asset:{type}{-dimension?}:{url}\n *\n * Helper protocol to serve site favicons and avatars from the cache.\n * Examples:\n *\n *  - asset:favicon:hyper://beakerbrowser.com\n *  - asset:favicon-32:hyper://beakerbrowser.com\n *  - asset:thumb:hyper://beakerbrowser.com\n *  - asset:cover:hyper://beakerbrowser.com\n **/\n\nimport { screen, nativeImage } from 'electron'\nimport * as sitedata from '../dbs/sitedata'\nimport { capturePage } from '../browser'\nimport fs from 'fs'\nimport path from 'path'\n\nconst NOT_FOUND = -6 // TODO I dont think this is the right code -prf\n\nvar handler\nvar activeCaptures = {} // [url] => Promise<NativeImage>\n\nexport function setup () {\n  var DEFAULTS = {\n    favicon: {type: 'image/png', data: NOT_FOUND, headers: {'Content-Type': 'image/jpeg', 'Cache-Control': 'no-cache'}},\n    thumb: {type: 'image/jpeg', data: NOT_FOUND, headers: {'Content-Type': 'image/jpeg', 'Cache-Control': 'no-cache'}},\n    cover: {type: 'image/jpeg', data: NOT_FOUND, headers: {'Content-Type': 'image/jpeg', 'Cache-Control': 'no-cache'}},\n    screenshot: {type: 'image/png', data: NOT_FOUND, headers: {'Content-Type': 'image/jpeg', 'Cache-Control': 'no-cache'}}\n  }\n\n  // load defaults\n  fs.readFile(path.join(__dirname, './assets/img/favicons/default.png'), (err, buf) => {\n    if (err) { console.error('Failed to load default favicon', path.join(__dirname, './assets/img/default-favicon.png'), err) }\n    if (buf) { DEFAULTS.favicon.data = buf }\n  })\n  fs.readFile(path.join(__dirname, './assets/img/default-thumb.jpg'), (err, buf) => {\n    if (err) { console.error('Failed to load default thumb', path.join(__dirname, './assets/img/default-thumb.jpg'), err) }\n    if (buf) {\n      DEFAULTS.thumb.data = buf\n      DEFAULTS.screenshot.data = buf\n    }\n  })\n  fs.readFile(path.join(__dirname, './assets/img/default-cover.jpg'), (err, buf) => {\n    if (err) { console.error('Failed to load default cover', path.join(__dirname, './assets/img/default-cover.jpg'), err) }\n    if (buf) { DEFAULTS.cover.data = buf }\n  })\n\n  // detect if is retina\n  let display = screen.getPrimaryDisplay()\n  const isRetina = display.scaleFactor >= 2\n\n  // register favicon protocol\n  handler = async (request, cb) => {\n    // parse the URL\n    let {asset, url, size} = parseAssetUrl(request.url)\n    if (isRetina) {\n      size *= 2\n    }\n\n    // validate\n    if (asset !== 'favicon' && asset !== 'thumb' && asset !== 'cover' && asset !== 'screenshot') {\n      return cb({data: NOT_FOUND})\n    }\n\n    // hardcoded assets\n    if (asset !== 'screenshot' && url.startsWith('beaker://')) {\n      let name = /beaker:\\/\\/([^\\/]+)/.exec(url)[1]\n      return servePng(path.join(__dirname, `./assets/img/favicons/${name}.png`), DEFAULTS[asset], cb)\n    }\n\n    try {\n      // look up in db\n      let data\n      if (asset === 'screenshot') {\n        data = await sitedata.get(url, 'screenshot', {dontExtractOrigin: true, normalizeUrl: true})\n\n        // DISABLED- seems to generate some pretty bad error behaviors on win7\n        // see https://github.com/beakerbrowser/beaker/issues/1872#issuecomment-739463243\n        // -prf\n        // if (!data && !url.startsWith('dat:')) {\n        //   // try to fetch the screenshot\n        //   let p = activeCaptures[url]\n        //   if (!p) {\n        //     p = activeCaptures[url] = capturePage(url)\n        //   }\n        //   let nativeImg = await p\n        //   delete activeCaptures[url]\n        //   if (nativeImg) {\n        //     data = nativeImg.toDataURL()\n        //     await sitedata.set(url, 'screenshot', data, {dontExtractOrigin: true, normalizeUrl: true})\n        //   } else {\n        //     return serveJpg(path.join(__dirname, `./assets/img/default-screenshot.jpg`), DEFAULTS[asset], cb)\n        //   }\n        // }\n        if (!data) {\n          return serveJpg(path.join(__dirname, `./assets/img/default-screenshot.jpg`), DEFAULTS[asset], cb)\n        }\n      } else {\n        data = await sitedata.get(url, asset)\n        if (!data && asset === 'thumb') {\n          if (url.startsWith('hyper://private')) {\n            return serveJpg(path.join(__dirname, `./assets/img/default-private-screenshot.jpg`), DEFAULTS[asset], cb)\n          }\n          // try fallback to screenshot\n          data = await sitedata.get(url, 'screenshot', {dontExtractOrigin: true, normalizeUrl: true})\n          if (!data) {\n            // try fallback to favicon\n            data = await sitedata.get(url, 'favicon')\n          }\n        }\n        if (!data && asset === 'favicon') {\n          // try fallback to thumb\n          data = await sitedata.get(url, 'thumb')\n        }\n      }\n      if (data) {\n        if (size) {\n          let img = nativeImage.createFromDataURL(data)\n          data = img.resize({width: size}).toDataURL()\n        }\n        \n        // `data` is a data url ('data:image/png;base64,...')\n        // so, skip the beginning and pull out the data\n        let parts = data.split(',')\n        if (parts[1]) {\n          let mimeType = /data:([^;]+);base64/.exec(parts[0])[1]\n          data = parts[1]\n          if (data) {\n            return cb({mimeType, data: Buffer.from(data, 'base64'), headers: {'Cache-Control': 'no-cache'}})\n          }\n        }\n      }\n    } catch (e) {\n      // ignore\n      console.log(e)\n    }\n\n    cb(DEFAULTS[asset])\n  }\n}\n\nexport function register (protocol) {\n  protocol.registerBufferProtocol('asset', handler)\n}\n\nconst ASSET_URL_RE = /^asset:([a-z]+)(-\\d+)?:(.*)/\nfunction parseAssetUrl (str) {\n  const match = ASSET_URL_RE.exec(str)\n  var url\n  try {\n    let urlp = new URL(match[3])\n    url = urlp.protocol + '//' + urlp.hostname + urlp.pathname\n  } catch (e) {\n    url = match[3]\n  }\n  return {\n    asset: match[1],\n    size: Math.abs(Number(match[2])),\n    url\n  }\n}\n\nfunction servePng (p, fallback, cb) {\n  return fs.readFile(p, (err, buf) => {\n    if (buf) cb({mimeType: 'image/png', data: buf, headers: {'Cache-Control': 'no-cache'}})\n    else cb(fallback)\n  })\n}\n\nfunction serveJpg (p, fallback, cb) {\n  return fs.readFile(p, (err, buf) => {\n    if (buf) cb({mimeType: 'image/jpeg', data: buf, headers: {'Cache-Control': 'no-cache'}})\n    else cb(fallback)\n  })\n}"
  },
  {
    "path": "app/bg/protocols/beaker.js",
    "content": "import errorPage from '../lib/error-page'\nimport * as mime from '../lib/mime'\nimport { drivesDebugPage, datDnsCachePage, datDnsCacheJS } from '../hyper/debugging'\nimport path from 'path'\nimport url from 'url'\nimport once from 'once'\nimport fs from 'fs'\nimport jetpack from 'fs-jetpack'\nimport intoStream from 'into-stream'\nimport ICO from 'icojs'\n\n// constants\n// =\n\n// content security policies\nconst BEAKER_CSP = `\n  default-src 'self' beaker:;\n  img-src beaker: asset: data: blob: hyper: http: https;\n  script-src 'self' beaker: 'unsafe-eval';\n  media-src 'self' beaker: hyper:;\n  style-src 'self' 'unsafe-inline' beaker:;\n  child-src 'self';\n`.replace(/\\n/g, '')\nconst BEAKER_APP_CSP = `\n  default-src 'self' beaker:;\n  img-src beaker: asset: data: blob: hyper: http: https;\n  script-src 'self' beaker: hyper: 'unsafe-eval';\n  media-src 'self' beaker: hyper:;\n  style-src 'self' 'unsafe-inline' beaker:;\n  child-src 'self' hyper:;\n`.replace(/\\n/g, '')\nconst SIDEBAR_CSP = `\ndefault-src 'self' beaker:;\nimg-src beaker: asset: data: blob: hyper: http: https;\nscript-src 'self' beaker: hyper: blob: 'unsafe-eval';\nmedia-src 'self' beaker: hyper:;\nstyle-src 'self' 'unsafe-inline' beaker:;\nchild-src 'self' beaker:;\n`.replace(/\\n/g, '')\n\n// exported api\n// =\n\nexport function register (protocol) {\n  // setup the protocol handler\n  protocol.registerStreamProtocol('beaker', beakerProtocol)\n}\n\n// internal methods\n// =\n\nasync function beakerProtocol (request, respond) {\n  var cb = once((statusCode, status, contentType, path, CSP) => {\n    const headers = {\n      'Cache-Control': 'no-cache',\n      'Content-Type': (contentType || 'text/html; charset=utf-8'),\n      'Content-Security-Policy': CSP || BEAKER_CSP,\n      'Access-Control-Allow-Origin': '*'\n    }\n    if (typeof path === 'string') {\n      respond({statusCode, headers, data: fs.createReadStream(path)})\n    } else if (typeof path === 'function') {\n      respond({statusCode, headers, data: intoStream(path())})\n    } else {\n      respond({statusCode, headers, data: intoStream(errorPage(statusCode + ' ' + status))})\n    }\n  })\n  async function serveICO (path, size = 16) {\n    // read the file\n    const data = await jetpack.readAsync(path, 'buffer')\n\n    // parse the ICO to get the 16x16\n    const images = await ICO.parse(data, 'image/png')\n    let image = images[0]\n    for (let i = 1; i < images.length; i++) {\n      if (Math.abs(images[i].width - size) < Math.abs(image.width - size)) {\n        image = images[i]\n      }\n    }\n\n    // serve\n    cb(200, 'OK', 'image/png', () => Buffer.from(image.buffer))\n  }\n\n  var requestUrl = request.url\n  var queryParams\n  {\n    // strip off the hash\n    let i = requestUrl.indexOf('#')\n    if (i !== -1) requestUrl = requestUrl.slice(0, i)\n  }\n  {\n    // get the query params\n    queryParams = url.parse(requestUrl, true).query\n\n    // strip off the query\n    let i = requestUrl.indexOf('?')\n    if (i !== -1) requestUrl = requestUrl.slice(0, i)\n  }\n\n  // redirects from old pages\n  if (requestUrl.startsWith('beaker://start/')) {\n    return cb(200, 'OK', 'text/html', () => `<!doctype html><meta http-equiv=\"refresh\" content=\"0; url=beaker://desktop/\">`)\n  }\n\n  // browser ui\n  if (requestUrl === 'beaker://shell-window/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'shell-window', 'index.html'))\n  }\n  if (requestUrl === 'beaker://shell-window/main.js') {\n    return cb(200, 'OK', 'application/javascript; charset=utf-8', path.join(__dirname, 'fg', 'shell-window', 'index.build.js'))\n  }\n  if (requestUrl === 'beaker://location-bar/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'location-bar', 'index.html'))\n  }\n  if (requestUrl === 'beaker://shell-menus/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'shell-menus', 'index.html'))\n  }\n  if (requestUrl === 'beaker://prompts/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'prompts', 'index.html'))\n  }\n  if (requestUrl === 'beaker://perm-prompt/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'perm-prompt', 'index.html'))\n  }\n  if (requestUrl === 'beaker://modals/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', path.join(__dirname, 'fg', 'modals', 'index.html'))\n  }\n  if (requestUrl === 'beaker://assets/syntax-highlight.js') {\n    return cb(200, 'OK', 'application/javascript; charset=utf-8', path.join(__dirname, 'assets/js/syntax-highlight.js'))\n  }\n  if (requestUrl === 'beaker://assets/syntax-highlight.css') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/css/syntax-highlight.css'))\n  }\n  if (requestUrl === 'beaker://assets/font-awesome.css') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/css/fa-all.min.css'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-regular-400.woff2') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-regular-400.woff2'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-regular-400.woff') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-regular-400.woff'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-regular-400.svg') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-regular-400.svg'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-solid-900.woff2') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-solid-900.woff2'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-solid-900.woff') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-solid-900.woff'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-solid-900.svg') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-solid-900.svg'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-brands-400.woff2') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-brands-400.woff2'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-brands-400.woff') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-brands-400.woff'))\n  }\n  if (requestUrl === 'beaker://assets/webfonts/fa-brands-400.svg') {\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, 'assets/fonts/fa-brands-400.svg'))\n  }\n  if (requestUrl === 'beaker://assets/font-photon-entypo') {\n    return cb(200, 'OK', 'application/font-woff', path.join(__dirname, 'assets/fonts/photon-entypo.woff'))\n  }\n  if (requestUrl === 'beaker://assets/font-source-sans-pro') {\n    return cb(200, 'OK', 'application/font-woff2', path.join(__dirname, 'assets/fonts/source-sans-pro.woff2'))\n  }\n  if (requestUrl === 'beaker://assets/font-source-sans-pro-le') {\n    return cb(200, 'OK', 'application/font-woff2', path.join(__dirname, 'assets/fonts/source-sans-pro-le.woff2'))\n  }\n  if (requestUrl === 'beaker://assets/logo-black.svg') {\n    return cb(200, 'OK', 'image/svg+xml', path.join(__dirname, 'assets/img/logo-black.svg'))\n  }\n  if (requestUrl === 'beaker://assets/spinner.gif') {\n    return cb(200, 'OK', 'image/gif', path.join(__dirname, 'assets/img/spinner.gif'))\n  }\n  if (requestUrl.startsWith('beaker://assets/logo2')) {\n    return cb(200, 'OK', 'image/png', path.join(__dirname, 'assets/img/logo2.png'))\n  }\n  if (requestUrl.startsWith('beaker://assets/logo')) {\n    return cb(200, 'OK', 'image/png', path.join(__dirname, 'assets/img/logo.png'))\n  }\n  if (requestUrl.startsWith('beaker://assets/default-user-thumb')) {\n    return cb(200, 'OK', 'image/jpeg', path.join(__dirname, 'assets/img/default-user-thumb.jpg'))\n  }\n  if (requestUrl.startsWith('beaker://assets/default-thumb')) {\n    return cb(200, 'OK', 'image/jpeg', path.join(__dirname, 'assets/img/default-thumb.jpg'))\n  }\n  if (requestUrl.startsWith('beaker://assets/default-frontend-thumb')) {\n    return cb(200, 'OK', 'image/jpeg', path.join(__dirname, 'assets/img/default-frontend-thumb.jpg'))\n  }\n  if (requestUrl.startsWith('beaker://assets/search-icon-large')) {\n    return cb(200, 'OK', 'image/jpeg', path.join(__dirname, 'assets/img/search-icon-large.png'))\n  }\n  if (requestUrl.startsWith('beaker://assets/favicons/')) {\n    return serveICO(path.join(__dirname, 'assets/favicons', requestUrl.slice('beaker://assets/favicons/'.length)))\n  }\n  if (requestUrl.startsWith('beaker://assets/search-engines/')) {\n    return cb(200, 'OK', 'image/png', path.join(__dirname, 'assets/img/search-engines', requestUrl.slice('beaker://assets/search-engines/'.length)))\n  }\n  if (requestUrl.startsWith('beaker://assets/img/templates/')) {\n    let imgPath = requestUrl.slice('beaker://assets/img/templates/'.length)\n    return cb(200, 'OK', 'image/png', path.join(__dirname, `assets/img/templates/${imgPath}`))\n  }\n  if (requestUrl.startsWith('beaker://assets/img/frontends/')) {\n    let imgPath = requestUrl.slice('beaker://assets/img/frontends/'.length)\n    return cb(200, 'OK', 'image/png', path.join(__dirname, `assets/img/frontends/${imgPath}`))\n  }\n  if (requestUrl.startsWith('beaker://assets/img/drive-types/')) {\n    let imgPath = requestUrl.slice('beaker://assets/img/drive-types/'.length)\n    return cb(200, 'OK', 'image/png', path.join(__dirname, `assets/img/drive-types/${imgPath}`))\n  }\n\n  // userland\n  if (requestUrl === 'beaker://app-stdlib' || requestUrl.startsWith('beaker://app-stdlib/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'app-stdlib'), cb)\n  }\n  if (requestUrl === 'beaker://diff' || requestUrl.startsWith('beaker://diff/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'diff'), cb)\n  }\n  if (requestUrl === 'beaker://library' || requestUrl.startsWith('beaker://library/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'library'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://drive-view' || requestUrl.startsWith('beaker://drive-view/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'drive-view'), cb)\n  }\n  if (requestUrl === 'beaker://cmd-pkg' || requestUrl.startsWith('beaker://cmd-pkg/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'cmd-pkg'), cb)\n  }\n  if (requestUrl === 'beaker://site-info' || requestUrl.startsWith('beaker://site-info/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'site-info'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://setup' || requestUrl.startsWith('beaker://setup/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'setup'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://init' || requestUrl.startsWith('beaker://init/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'init'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://editor' || requestUrl.startsWith('beaker://editor/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'editor'), cb)\n  }\n  if (requestUrl === 'beaker://explorer' || requestUrl.startsWith('beaker://explorer/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'explorer'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://hypercore-tools' || requestUrl.startsWith('beaker://hypercore-tools/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'hypercore-tools'), cb, {fallbackToIndexHTML: true})\n  }\n  if (requestUrl === 'beaker://webterm' || requestUrl.startsWith('beaker://webterm/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'webterm'), cb, {\n      fallbackToIndexHTML: true,\n      CSP: SIDEBAR_CSP\n    })\n  }\n  if (requestUrl === 'beaker://desktop' || requestUrl.startsWith('beaker://desktop/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'desktop'), cb, {\n      CSP: BEAKER_APP_CSP,\n      fallbackToIndexHTML: true,\n    })\n  }\n  if (requestUrl === 'beaker://history' || requestUrl.startsWith('beaker://history/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'history'), cb)\n  }\n  if (requestUrl === 'beaker://settings' || requestUrl.startsWith('beaker://settings/')) {\n    return serveAppAsset(requestUrl, path.join(__dirname, 'userland', 'settings'), cb)\n  }\n  if (requestUrl.startsWith('beaker://assets/img/onboarding/')) {\n    let imgPath = requestUrl.slice('beaker://assets/img/onboarding/'.length)\n    return cb(200, 'OK', 'image/png', path.join(__dirname, `assets/img/onboarding/${imgPath}`))\n  }\n  if (requestUrl === 'beaker://assets/monaco.js') {\n    return cb(200, 'OK', 'application/javascript; charset=utf-8', path.join(__dirname, 'assets/js/editor/monaco.js'))\n  }\n  if (requestUrl.startsWith('beaker://assets/vs/') && requestUrl.endsWith('.js')) {\n    let filePath = requestUrl.slice('beaker://assets/vs/'.length)\n    return cb(200, 'OK', 'application/javascript', path.join(__dirname, `assets/js/editor/vs/${filePath}`))\n  }\n  if (requestUrl.startsWith('beaker://assets/vs/') && requestUrl.endsWith('.css')) {\n    let filePath = requestUrl.slice('beaker://assets/vs/'.length)\n    return cb(200, 'OK', 'text/css; charset=utf-8', path.join(__dirname, `assets/js/editor/vs/${filePath}`))\n  }\n  if (requestUrl.startsWith('beaker://assets/vs/') && requestUrl.endsWith('.ttf')) {\n    let filePath = requestUrl.slice('beaker://assets/vs/'.length)\n    return cb(200, 'OK', 'font/ttf', path.join(__dirname, `assets/js/editor/vs/${filePath}`))\n  }\n\n  // debugging\n  if (requestUrl === 'beaker://active-drives/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', drivesDebugPage)\n  }\n  if (requestUrl === 'beaker://dat-dns-cache/') {\n    return cb(200, 'OK', 'text/html; charset=utf-8', datDnsCachePage)\n  }\n  if (requestUrl === 'beaker://dat-dns-cache/main.js') {\n    return cb(200, 'OK', 'application/javascript; charset=utf-8', datDnsCacheJS)\n  }\n  // TODO replace?\n  // if (requestUrl.startsWith('beaker://debug-log/')) {\n  //   const PAGE_SIZE = 1e6\n  //   var start = queryParams.start ? (+queryParams.start) : 0\n  //   let content = await beakerCore.getLogFileContent(start, start + PAGE_SIZE)\n  //   var pagination = `<h2>Showing bytes ${start} - ${start + PAGE_SIZE}. <a href=\"beaker://debug-log/?start=${start + PAGE_SIZE}\">Next page</a></h2>`\n  //   return respond({\n  //     statusCode: 200,\n  //     headers: {\n  //       'Content-Type': 'text/html; charset=utf-8',\n  //       'Content-Security-Policy': BEAKER_CSP,\n  //       'Access-Control-Allow-Origin': '*'\n  //     },\n  //     data: intoStream(`\n  //       ${pagination}\n  //       <pre>${content.replace(/</g, '&lt;').replace(/>/g, '&gt;')}</pre>\n  //       ${pagination}\n  //     `)\n  //   })\n  // }\n\n  return cb(404, 'Not Found')\n}\n\n// helper to serve requests to app packages\nasync function serveAppAsset (requestUrl, dirPath, cb, {CSP, fallbackToIndexHTML} = {CSP: undefined, fallbackToIndexHTML: false}) {\n  // resolve the file path\n  const urlp = new URL(requestUrl)\n  var pathname = urlp.pathname\n  if (pathname === '' || pathname === '/') {\n    pathname = '/index.html'\n  }\n  var filepath = path.join(dirPath, pathname)\n\n  // make sure the file exists\n  try {\n    await fs.promises.stat(filepath)\n  } catch (e) {\n    if (fallbackToIndexHTML) {\n      filepath = path.join(dirPath, '/index.html')\n    } else {\n      return cb(404, 'Not Found')\n    }\n  }\n\n  // identify the mime type\n  var contentType = mime.identify(filepath)\n\n  // serve\n  cb(200, 'OK', contentType, filepath, CSP)\n}"
  },
  {
    "path": "app/bg/protocols/dat.js",
    "content": "import { join as joinPath } from 'path'\nimport { getStoragePathFor, downloadDat } from '../dat/index'\nimport { URL } from 'url'\nimport { promisify } from 'util'\nimport datDns from '../dat/dns'\nimport datServeResolvePath from '@beaker/dat-serve-resolve-path'\nimport ScopedFS from 'scoped-fs'\nimport * as mime from '../lib/mime'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'dat', subcategory: 'protocol'})\n\n// globals\n// =\n\nvar scopedFSes = {} // map of scoped filesystems, kept in memory to reduce allocations\nfunction getFS (path) {\n  if (!(path in scopedFSes)) {\n    let fs = scopedFSes[path] = new ScopedFS(path)\n    fs.isLocalFS = true\n    fs.stat = promisify(fs.stat).bind(fs)\n    fs.readdir = promisify(fs.readdir).bind(fs)\n    fs.readFile = promisify(fs.readFile).bind(fs)\n  }\n  return scopedFSes[path]\n}\n\n/**\n * HACK\n * Electron has an issue that's causing file read streams to fail to serve\n * Reading into memory seems to resolve the issue\n * https://github.com/electron/electron/issues/21018\n * -prf\n */\nimport { PassThrough } from 'stream'\nfunction intoStream (text) {\n  const rv = new PassThrough()\n  rv.push(text)\n  rv.push(null)\n  return rv\n}\n\n// exported api\n// =\n\nexport function register (protocol) {\n  protocol.registerStreamProtocol('dat', electronHandler)\n}\n\nexport const electronHandler = async function (request, respond) {\n  try {\n    var urlp = new URL(request.url)\n    var key = await datDns.resolveName(urlp.hostname)\n\n    var path = getStoragePathFor(key)\n    await downloadDat(key)\n    var fs = getFS(path)\n\n    var manifest = {}\n    try {\n      manifest = JSON.parse(await fs.readFile('/dat.json'))\n    } catch (e) {\n      logger.warn('Failed to fetch dat:// manifest', {key, error: e})\n    }\n\n    var entry = await datServeResolvePath(fs, manifest, request.url, request.headers.Accept)\n\n    if (!entry) {\n      return respond({\n        statusCode: 404,\n        headers: {'Content-Type': 'text/html'},\n        data: intoStream(`<h1>File not found</h1>`)\n      })\n    }\n\n    if (entry.isFile()) {\n      return respond({\n        statusCode: 200,\n        headers: {'Content-Type': mime.identify(entry.path)},\n        data: fs.createReadStream(entry.path)\n      })\n    }\n\n    var files = await fs.readdir(entry.path)\n    return respond({\n      statusCode: 200,\n      headers: {'Content-Type': 'text/html'},\n      data: intoStream(`<!doctype html>\n<html>\n  <body>\n    ${files.map(file => `<a href=\"${joinPath(entry.path, file)}\">${file}</a>`).join('<br>\\n')}\n  </body>\n</html>\n`)})\n  } catch (e) {\n    logger.error('Failed to access dat', {error: e, url: request.url})\n    respond({\n      statusCode: 400,\n      headers: {'Content-Type': 'text/html'},\n      data: intoStream(`<h1>Failed to load Dat</h1><pre>${e.toString()}</pre>`)\n    })\n  }\n}\n"
  },
  {
    "path": "app/bg/protocols/hyper.js",
    "content": "import { parseDriveUrl } from '../../lib/urls'\nimport { toNiceUrl } from '../../lib/strings'\nimport { Readable } from 'stream'\nimport parseRange from 'range-parser'\nimport once from 'once'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'hyper', subcategory: 'hyper-scheme'})\nimport markdown from '../../lib/markdown'\nimport * as drives from '../hyper/drives'\nimport * as filesystem from '../filesystem/index'\nimport * as capabilities from '../hyper/capabilities'\nimport datServeResolvePath from '@beaker/dat-serve-resolve-path'\nimport errorPage from '../lib/error-page'\nimport * as mime from '../lib/mime'\nimport * as auditLog from '../dbs/audit-log'\n\nconst md = markdown({\n  allowHTML: true,\n  useHeadingIds: true,\n  useHeadingAnchors: false,\n  hrefMassager: undefined,\n  highlight: undefined\n})\n\nclass WhackAMoleStream {\n  constructor (stream) {\n    this.onreadable = noop\n    this.ended = false\n    this.stream = stream\n    this.needsDeferredReadable = false\n    this.readableOnce = false\n\n    stream.on('end', () => {\n      this.ended = true\n    })\n\n    stream.on('readable', () => {\n      this.readableOnce = true\n\n      if (this.needsDeferredReadable) {\n        setImmediate(this.onreadable)\n        this.needsDeferredReadable = false\n        return\n      }\n\n      this.onreadable()\n    })\n  }\n\n  read (...args) {\n    const buf = this.stream.read(...args)\n    this.needsDeferredReadable = buf === null\n    return buf\n  }\n\n  on (name, fn) {\n    if (name === 'readable') {\n      this.onreadable = fn\n      if (this.readableOnce) fn()\n      return this.stream.on('readable', noop) // readable has sideeffects\n    }\n\n    return this.stream.on(name, fn)\n  }\n\n  destroy () {\n    this.stream.on('error', noop)\n    this.stream.destroy()\n  }\n\n  removeListener (name, fn) {\n    this.stream.removeListener(name, fn)\n\n    if (name === 'readable') {\n      this.onreadable = noop\n      this.stream.removeListener('readable', noop)\n    }\n\n    if (name === 'end' && !this.ended) {\n      this.destroy()\n    }\n  }\n}\n\nfunction noop () {}\n\n// exported api\n// =\n\nexport function register (protocol) {\n  protocol.registerStreamProtocol('hyper', protocolHandler)\n}\n\nexport const protocolHandler = async function (request, respond) {\n  var drive\n  var cspHeader = undefined\n  var corsHeader = '*'\n  var customFrontend = false\n  var wantsHTML = mime.acceptHeaderWantsHTML(request.headers.Accept)\n  const logUrl = toNiceUrl(request.url)\n\n  respond = once(respond)\n  const respondBuiltinFrontend = async () => {\n    return respond({\n      statusCode: 200,\n      headers: {\n        'Content-Type': 'text/html',\n        'Access-Control-Allow-Origin': corsHeader,\n        'Allow-CSP-From': '*',\n        'Cache-Control': 'no-cache',\n        'Content-Security-Policy': `default-src beaker:; img-src * data: asset: blob:; media-src * data: asset: blob:; style-src beaker: 'unsafe-inline';`,\n        'Beaker-Trusted-Interface': '1' // see wc-trust.js\n      },\n      data: intoStream(`<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n    <script type=\"module\" src=\"beaker://drive-view/index.js\"></script>\n  </head>\n</html>`)\n    })\n  }\n  const respondCustomFrontend = async (checkoutFS) => {\n    return respond({\n      statusCode: 200,\n      headers: {\n        'Content-Type': 'text/html',\n        'Access-Control-Allow-Origin': corsHeader,\n        'Allow-CSP-From': '*',\n        'Content-Security-Policy': cspHeader\n      },\n      data: intoStream(await checkoutFS.pda.readFile('/.ui/ui.html')) // TODO use stream\n    })\n  }\n  const respondRedirect = (url) => {\n    respond({\n      statusCode: 200,\n      headers: {'Content-Type': 'text/html', 'Allow-CSP-From': '*'},\n      data: intoStream(`<!doctype html><meta http-equiv=\"refresh\" content=\"0; url=${url}\">`)\n    })\n  }\n  const respondError = (code, status, errorPageInfo) => {\n    if (errorPageInfo) {\n      errorPageInfo.validatedURL = request.url\n      errorPageInfo.errorCode = code\n    }\n    var accept = request.headers.Accept || ''\n    if (accept.includes('text/html')) {\n      respond({\n        statusCode: code,\n        headers: {\n          'Content-Type': 'text/html',\n          'Content-Security-Policy': \"default-src 'unsafe-inline' beaker:;\",\n          'Access-Control-Allow-Origin': corsHeader,\n          'Allow-CSP-From': '*'\n        },\n        data: intoStream(errorPage(errorPageInfo || (code + ' ' + status)))\n      })\n    } else {\n      respond({statusCode: code})\n    }\n  }\n\n  // validate request\n  logger.silly(`Starting ${logUrl}`, {url: request.url})\n  var urlp = parseDriveUrl(request.url, true)\n  if (!urlp.host) {\n    return respondError(404, 'Drive Not Found', {\n      title: 'Site Not Found',\n      errorDescription: 'Invalid URL',\n      errorInfo: `${request.url} is an invalid hyper:// URL`\n    })\n  }\n  if (request.method !== 'GET' && request.method !== 'HEAD') {\n    return respondError(405, 'Method Not Supported')\n  }\n\n  // resolve the name\n  var driveKey\n  var driveVersion\n  if (urlp.host.endsWith('.cap')) {\n    let cap = capabilities.lookupCap(urlp.host)\n    if (!cap) {\n      return respondError(404, 'No record found for ' + urlp.host, {\n        errorDescription: 'Invalid capability record',\n        errorInfo: `No record found for hyper://${urlp.host}`\n      })\n    }\n    driveKey = cap.target.key\n    driveVersion = cap.target.version\n  } else {\n    try {\n      driveKey = await drives.fromURLToKey(urlp.host, true)\n      driveVersion = urlp.version\n    } catch (err) {\n      return respondError(404, 'No DNS record found for ' + urlp.host, {\n        errorDescription: 'No DNS record found',\n        errorInfo: `No DNS record found for hyper://${urlp.host}`\n      })\n    }\n  }\n\n  // protect the system drive\n  if (filesystem.isRootUrl(`hyper://${driveKey}/`)) {\n    corsHeader = undefined\n  }\n\n  auditLog.record('-browser', 'serve', {url: urlp.origin, path: urlp.pathname}, undefined, async () => {\n    try {\n      // start searching the network\n      logger.silly(`Loading drive for ${logUrl}`, {url: request.url})\n      drive = await drives.getOrLoadDrive(driveKey)\n    } catch (err) {\n      logger.warn(`Failed to open drive ${driveKey}`, {err})\n      return respondError(500, 'Failed')\n    }\n\n    // parse path\n    var filepath = decodeURIComponent(urlp.path)\n    if (!filepath) filepath = '/'\n    if (filepath.indexOf('?') !== -1) filepath = filepath.slice(0, filepath.indexOf('?')) // strip off any query params\n    var hasTrailingSlash = filepath.endsWith('/')\n\n    // checkout version if needed\n    try {\n      var {checkoutFS} = await drives.getDriveCheckout(drive, driveVersion)\n    } catch (err) {\n      logger.warn(`Failed to open drive checkout ${driveKey}`, {err})\n      return respondError(500, 'Failed')\n    }\n\n    // read the manifest (it's needed in a couple places)\n    var manifest\n    try { manifest = await checkoutFS.pda.readManifest() } catch (e) { manifest = null }\n\n    // check to see if we actually have data from the drive\n    var version = await checkoutFS.session.drive.version()\n    if (version === 0) {\n      logger.silly(`Drive not found ${logUrl}`, {url: request.url})\n      return respondError(404, 'Site not found', {\n        title: 'Site Not Found',\n        errorDescription: 'No peers hosting this site were found',\n        errorInfo: 'You may still be connecting to peers - try reloading the page.'\n      })\n    }\n\n    // read manifest CSP\n    if (manifest && manifest.csp && typeof manifest.csp === 'string') {\n      cspHeader = manifest.csp\n    }\n\n    // check for the presence of a frontend\n    if (await checkoutFS.pda.stat('/.ui/ui.html').catch(e => false)) {\n      customFrontend = true\n    }\n\n    // lookup entry\n    var statusCode = 200\n    var headers = {}\n    var entry = await datServeResolvePath(checkoutFS.pda, manifest, urlp, request.headers.Accept)\n\n    var canExecuteHTML = true\n    if (entry && !customFrontend) {\n      // dont execute HTML if in a mount and no frontend is running\n      let pathParts = entry.path.split('/').filter(Boolean)\n      pathParts.pop() // skip target, just need to check parent dirs\n      while (pathParts.length) {\n        let path = '/' + pathParts.join('/')\n        let stat = await checkoutFS.pda.stat(path).catch(e => undefined)\n        if (stat && stat.mount) {\n          canExecuteHTML = false\n          break\n        }\n        pathParts.pop()\n      }\n    }\n\n    // handle folder\n    if (entry && entry.isDirectory()) {\n      if (!hasTrailingSlash) {\n        // make sure there's a trailing slash\n        logger.silly(`Redirecting to trailing slash ${logUrl}`, {url: request.url})\n        return respondRedirect(`hyper://${urlp.host}${urlp.version ? ('+' + urlp.version) : ''}${urlp.pathname || ''}/${urlp.search || ''}`)\n      }\n      if (customFrontend) {\n        logger.silly(`Serving custom frontend ${logUrl}`, {url: request.url})\n        return respondCustomFrontend(checkoutFS)\n      }\n      logger.silly(`Serving builtin frontend ${logUrl}`, {url: request.url})\n      return respondBuiltinFrontend()\n    }\n\n    // custom frontend\n    if (customFrontend && wantsHTML) {\n      logger.silly(`Serving custom frontend ${logUrl}`, {url: request.url})\n      return respondCustomFrontend(checkoutFS)\n    }\n\n    // 404\n    if (!entry) {\n      logger.silly('Not found', {url: request.url})\n      // try to establish what the issue is\n      let res = await checkoutFS.pda.stat('/.ui/ui.html').catch(err => ({err}))\n      if (res?.err && /(not available|connectable)/i.test(res?.err.toString())) {\n        return respondError(404, 'File Not Available', {\n          errorDescription: 'File Not Available',\n          errorInfo: `Beaker could not find any peers to access ${urlp.path}`,\n          title: 'File Not Available'\n        })\n      }\n      return respondError(404, 'File Not Found', {\n        errorDescription: 'File Not Found',\n        errorInfo: `Beaker could not find the file at ${urlp.path}`,\n        title: 'File Not Found'\n      })\n    }\n\n    // handle .goto redirects\n    if (entry.path.endsWith('.goto') && entry.metadata.href) {\n      try {\n        let u = new URL(entry.metadata.href) // make sure it's a valid url\n        logger.silly(`Redirecting for .goto ${logUrl} to ${entry.metadata.href}`, {url: request.url, href: entry.metadata.href})\n        return respondRedirect(entry.metadata.href)\n      } catch (e) {\n        // pass through\n      }\n    }\n\n    // detect mimetype\n    var mimeType = entry.metadata.mimetype || entry.metadata.mimeType\n    if (!mimeType) {\n      mimeType = mime.identify(entry.path)\n    }\n    if (!canExecuteHTML && mimeType.includes('text/html')) {\n      mimeType = 'text/plain'\n    }\n\n    // handle range\n    headers['Accept-Ranges'] = 'bytes'\n    var length\n    var range = request.headers.Range || request.headers.range\n    if (range) range = parseRange(entry.size, range)\n    if (range && range.type === 'bytes') {\n      range = range[0] // only handle first range given\n      statusCode = 206\n      length = (range.end - range.start + 1)\n      headers['Content-Length'] = '' + length\n      headers['Content-Range'] = 'bytes ' + range.start + '-' + range.end + '/' + entry.size\n    } else {\n      if (entry.size) {\n        length = entry.size\n        headers['Content-Length'] = '' + length\n      }\n    }\n\n    Object.assign(headers, {\n      'Content-Security-Policy': cspHeader,\n      'Access-Control-Allow-Origin': corsHeader,\n      'Allow-CSP-From': '*',\n      'Cache-Control': 'no-cache'\n    })\n\n    // markdown rendering\n    if (!range && entry.path.endsWith('.md') && mime.acceptHeaderWantsHTML(request.headers.Accept)) {\n      let content = await checkoutFS.pda.readFile(entry.path, 'utf8')\n      let contentType = canExecuteHTML ? 'text/html' : 'text/plain'\n      content = canExecuteHTML\n        ? `<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf8\">\n    <style>\n      body {\n        font-family: sans-serif;\n        max-width: 800px;\n        margin: 0 auto;\n        padding: 0 10px;\n        line-height: 1.4;\n      }\n      body * {\n        max-width: 100%;\n      }\n    </style>\n  </head>\n  <body>\n    ${md.render(content)}\n  </body>\n</html>`\n        : content\n      logger.silly(`Serving markdown ${logUrl}`, {url: request.url})\n      return respond({\n        statusCode: 200,\n        headers: Object.assign(headers, {'Content-Type': contentType}),\n        data: intoStream(content)\n      })\n    }\n\n    var mimeType = entry.metadata.mimeType;\n    if (!mimeType) {\n      let chunk;\n      for await (const part of checkoutFS.session.drive.createReadStream(entry.path, { start: 0, length: 512 })) {\n        chunk = chunk ? Buffer.concat([chunk, part]) : part;\n      }\n      mimeType = mime.identify(entry.path, chunk)\n    }\n    if (!canExecuteHTML && mimeType.includes('text/html')) {\n      mimeType = 'text/plain'\n    }\n    headers['Content-Type'] = mimeType\n    logger.silly(`Serving file ${logUrl}`, {url: request.url})\n    if (request.method === 'HEAD') {\n      respond({statusCode: 204, headers, data: intoStream('')})\n    } else {\n      respond({\n        statusCode,\n        headers,\n        data: new WhackAMoleStream(checkoutFS.session.drive.createReadStream(entry.path, range))\n      })\n    }\n  })\n}\n\nfunction intoStream (text) {\n  return new Readable({\n    read () {\n      this.push(text)\n      this.push(null)\n    }\n  })\n}\n"
  },
  {
    "path": "app/bg/rpc-manifests/location-bar.js",
    "content": "export default {\n  close: 'promise',\n  createTab: 'promise',\n  loadURL: 'promise',\n  reload: 'promise',\n  resizeSelf: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/modals.js",
    "content": "export default {\n  createTab: 'promise',\n  resizeSelf: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/overlay.js",
    "content": "export default {\n  set: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/perm-prompt.js",
    "content": "export default {\n  createTab: 'promise',\n  resizeSelf: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/prompts.js",
    "content": "export default {\n  close: 'promise',\n  createTab: 'promise',\n  loadURL: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/shell-menus.js",
    "content": "export default {\n  close: 'promise',\n  createWindow: 'promise',\n  createTab: 'promise',\n  createModal: 'promise',\n  loadURL: 'promise',\n  resizeSelf: 'promise',\n  showInpageFind: 'promise',\n  getWindowMenu: 'promise',\n  triggerWindowMenuItemById: 'promise'\n}"
  },
  {
    "path": "app/bg/rpc-manifests/views.js",
    "content": "export default {\n  createEventStream: 'readable',\n  refreshState: 'promise',\n  getState: 'promise',\n  getTabState: 'promise',\n  getNetworkState: 'promise',\n  getBackgroundTabs: 'promise',\n  createTab: 'promise',\n  createPane: 'promise',\n  togglePaneByOrigin: 'promise',\n  loadURL: 'promise',\n  minimizeTab: 'promise',\n  closeTab: 'promise',\n  setActiveTab: 'promise',\n  reorderTab: 'promise',\n  restoreBgTab: 'promise',\n  closeBgTab: 'promise',\n  showTabContextMenu: 'promise',\n  showLocationBarContextMenu: 'promise',\n  goBack: 'promise',\n  goForward: 'promise',\n  stop: 'promise',\n  reload: 'promise',\n  resetZoom: 'promise',\n  toggleLiveReloading: 'promise',\n  toggleDevTools: 'promise',\n  print: 'promise',\n  showInpageFind: 'promise',\n  hideInpageFind: 'promise',\n  setInpageFindString: 'promise',\n  moveInpageFind: 'promise',\n  showLocationBar: 'promise',\n  hideLocationBar: 'promise',\n  runLocationBarCmd: 'promise',\n  toggleSidebarHidden: 'promise',\n  showMenu: 'promise',\n  toggleMenu: 'promise',\n  updateMenu: 'promise',\n  toggleSiteInfo: 'promise',\n  focusShellWindow: 'promise',\n  focusPage: 'promise',\n  setPaneResizeModeEnabled: 'promise',\n  openPaneMenu: 'promise',\n  openAttachMenu: 'promise'\n}"
  },
  {
    "path": "app/bg/test-driver.js",
    "content": "import dgram from 'dgram'\nimport { ipcMain } from 'electron'\nimport * as windows from './ui/windows'\nimport * as tabManager from './ui/tabs/manager'\nimport * as permPrompt from './ui/subwindows/perm-prompt'\nimport * as modals from './ui/subwindows/modals'\nimport { getEnvVar } from './lib/env'\n\nconst LOG_MESSAGES = false\n\nvar testPort = +getEnvVar('BEAKER_TEST_DRIVER')\nvar sock\n\n// exported api\n// =\n\nexport function setup () {\n  // setup socket\n  sock = dgram.createSocket('udp4')\n  sock.bind(0, '127.0.0.1')\n  sock.on('message', onMessage)\n  sock.on('listening', () => {\n    console.log('Test driver enabled, listening for messages on port', sock.address().port)\n  })\n\n  // emit ready when ready\n  var todos = 2\n  sock.on('listening', hit)\n  ipcMain.once('shell-window:ready', hit)\n  function hit () {\n    if (!(--todos)) {\n      // HACK\n      // there's some kind of race which causes `executeJavaScript` to not run in the shell window during tests\n      // this timeout is intended to solve that\n      // -prf\n      setTimeout(() => {\n        send({isReady: true, port: sock.address().port})\n      }, 1e3)\n    }\n  }\n}\n\n// internal methods\n// =\n\nfunction send (obj) {\n  if (LOG_MESSAGES) console.log('driverserver sent', JSON.stringify(obj))\n  obj = Buffer.from(JSON.stringify(obj), 'utf8')\n  sock.send(obj, 0, obj.length, testPort, '127.0.0.1', err => {\n    if (err) console.log('Error communicating with the test driver', err)\n  })\n}\n\nasync function onMessage (message) {\n  if (LOG_MESSAGES) console.log('driverserver got', message.toString('utf8'))\n  const {msgId, cmd, args} = JSON.parse(message.toString('utf8'))\n  var method = METHODS[cmd]\n  if (!method) method = () => new Error('Invalid method: ' + cmd)\n  try {\n    var resolve = await method(...args)\n    send({msgId, resolve})\n  } catch (err) {\n    var reject = {\n      message: err.message,\n      stack: err.stack,\n      name: err.name\n    }\n    send({msgId, reject})\n  }\n}\n\nconst METHODS = {\n  newTab () {\n    var win = getActiveWindow()\n    var tab = tabManager.create(win, undefined, {setActive: true})\n    return tabManager.getIndexOfTab(win, tab)\n  },\n\n  navigateTo (page, url) {\n    var tab = tabManager.getByIndex(getActiveWindow(), page)\n    var loadPromise = new Promise(resolve => tab.webContents.once('dom-ready', () => resolve()))\n    tab.loadURL(url)\n    return loadPromise\n  },\n\n  getUrl (page) {\n    var tab = tabManager.getByIndex(getActiveWindow(), page)\n    return tab.url\n  },\n\n  async executeJavascriptInShell (js) {\n    var win = getActiveWindow()\n    var res = await win.webContents.executeJavaScript(js)\n    return res\n  },\n\n  async executeJavascriptOnPage (page, js) {\n    var tab = tabManager.getByIndex(getActiveWindow(), page)\n    var res = await tab.webContents.executeJavaScript(js)\n    return res\n  },\n\n  async executeJavascriptInPermPrompt (page, js) {\n    var tab = tabManager.getByIndex(getActiveWindow(), page).browserView\n    var prompt = await waitFor(() => permPrompt.get(tab))\n    var res = await prompt.webContents.executeJavaScript(js)\n    return res\n  },\n\n  async executeJavascriptInModal (page, js) {\n    var tab = tabManager.getByIndex(getActiveWindow(), page).browserView\n    var modal = await waitFor(() => modals.get(tab))\n    var res = await modal.webContents.executeJavaScript(js)\n    return res\n  }\n}\n\nfunction getActiveWindow () {\n  var win = windows.getActiveWindow()\n  while (win.getParentWindow()) {\n    win = win.getParentWindow()\n  }\n  return win\n}\n\nfunction waitFor (condFn) {\n  return new Promise(resolve => {\n    var i = setInterval(async () => {\n      var res = condFn()\n      if (res) {\n        clearInterval(i)\n        return resolve(res)\n      }\n    }, 100)\n  })\n}"
  },
  {
    "path": "app/bg/ui/context-menu.js",
    "content": "import { app, Menu, clipboard, BrowserWindow, dialog } from 'electron'\nimport path from 'path'\nimport * as tabManager from './tabs/manager'\nimport * as modals from './subwindows/modals'\nimport { toggleShellInterface, getAddedWindowSettings } from './windows'\nimport { download } from './downloads'\nimport * as settingsDb from '../dbs/settings'\nimport { runDrivePropertiesFlow } from './util'\n\n// NOTE\n// subtle but important!!\n// the menu instance needs to be kept in the global scope\n// otherwise the JS GC will kick in and clean up the menu object\n// which causes the context-menu to destroy prematurely\n// see https://github.com/electron/electron/issues/19424\n// -prf\nvar menuInstance\n\nexport default function registerContextMenu () {\n  // register the context menu on every created webContents\n  app.on('web-contents-created', (e, webContents) => {\n    webContents.on('context-menu', async (e, props) => {\n      var menuItems = []\n      const { mediaFlags, editFlags } = props\n      const isHyperdrive = props.pageURL.startsWith('hyper://')\n      const hasText = props.selectionText.trim().length > 0\n      const can = type => editFlags[`can${type}`] && hasText\n      const isMisspelled = props.misspelledWord\n      const spellingSuggestions = props.dictionarySuggestions\n      // get the focused window, ignore if not available (not in focus)\n      // - fromWebContents(webContents) doesnt seem to work, maybe because webContents is often a webview?\n      var targetWindow = BrowserWindow.getFocusedWindow()\n      if (!targetWindow) { return }\n      var targetTab = tabManager.getActive(targetWindow)\n\n      // handle shell UI specially\n      if (props.pageURL == 'beaker://shell-window/') { return }\n      if (props.pageURL.startsWith('beaker://modals')) {\n        return modals.handleContextMenu(webContents, targetWindow, can, props)\n      }\n\n      // helper to call code on the element under the cursor\n      const callOnElement = js => webContents.executeJavaScript(`\n        var el = document.elementFromPoint(${props.x}, ${props.y})\n        new Promise(resolve => { ${js} })\n      `)\n\n      // helper to run a download prompt for media\n      const downloadPrompt = (field, ext) => async (item, win) => {\n        var defaultPath = path.join(app.getPath('downloads'), path.basename(props[field]))\n        if (ext && defaultPath.split('/').pop().indexOf('.') === -1) defaultPath += ext\n        var {filePath} = await dialog.showSaveDialog({ title: `Save ${props.mediaType} as...`, defaultPath })\n        if (filePath) { download(win, webContents, props[field], { saveAs: filePath }) }\n      }\n\n      // links\n      if (props.linkURL) {\n        menuItems.push({ label: 'Open Link in New Tab', click: (item, win) => tabManager.create(win, props.linkURL, {setActiveBySettings: true, adjacentActive: true}) })\n        menuItems.push({ label: 'Copy Link Address', click: () => clipboard.writeText(props.linkURL) })\n        menuItems.push({ label: 'Save Link As...', click: downloadPrompt('linkURL', '.html') })\n        menuItems.push({ type: 'separator' })\n        menuItems.push({\n          label: 'Open in Pane Right',\n          click () {\n            var pane = targetTab && targetTab.findPane(webContents)\n            if (targetTab && pane) {\n              let lastStack = targetTab.layout.stacks[targetTab.layout.stacks.length - 1]\n              if (targetTab.layout.stacks.length > 1 && !lastStack.panes.find(p => p === pane)) {\n                // stack in the adjacent stack\n                targetTab.createPane({url: props.linkURL, setActive: true, after: lastStack.panes[lastStack.panes.length - 1], splitDir: 'horz'})\n              } else {\n                // open in a new rightmost stack\n                targetTab.createPane({url: props.linkURL, setActive: true, after: pane, splitDir: 'vert'})\n              }\n            }\n          }\n        })\n        menuItems.push({\n          label: 'Open in Pane Below',\n          click () {\n            var pane = targetTab && targetTab.findPane(webContents)\n            if (targetTab && pane) {\n              targetTab.createPane({url: props.linkURL, setActive: true, after: pane, splitDir: 'horz'})\n            }\n          }\n        })\n        menuItems.push({ type: 'separator' })\n      }\n\n      // images\n      if (props.mediaType == 'image') {\n        menuItems.push({ label: 'Save Image As...', click: downloadPrompt('srcURL') })\n        menuItems.push({ label: 'Copy Image', click: () => webContents.copyImageAt(props.x, props.y) })\n        menuItems.push({ label: 'Copy Image URL', click: () => clipboard.writeText(props.srcURL) })\n        menuItems.push({ label: 'Open Image in New Tab', click: (item, win) => tabManager.create(win, props.srcURL, {adjacentActive: true}) })\n        menuItems.push({ type: 'separator' })\n        menuItems.push({\n          label: 'Open in Pane Right',\n          click () {\n            var pane = targetTab && targetTab.findPane(webContents)\n            if (targetTab && pane) {\n              targetTab.createPane({url: props.srcURL, setActive: true, after: pane, splitDir: 'vert'})\n            }\n          }\n        })\n        menuItems.push({\n          label: 'Open in Pane Below',\n          click () {\n            var pane = targetTab && targetTab.findPane(webContents)\n            if (targetTab && pane) {\n              targetTab.createPane({url: props.srcURL, setActive: true, after: pane, splitDir: 'horz'})\n            }\n          }\n        })\n        menuItems.push({ type: 'separator' })\n      }\n\n      // videos and audios\n      if (props.mediaType == 'video' || props.mediaType == 'audio') {\n        menuItems.push({ label: 'Loop', type: 'checkbox', checked: mediaFlags.isLooping, click: () => callOnElement('el.loop = !el.loop') })\n        if (mediaFlags.hasAudio) { menuItems.push({ label: 'Muted', type: 'checkbox', checked: mediaFlags.isMuted, click: () => callOnElement('el.muted = !el.muted') }) }\n        if (mediaFlags.canToggleControls) { menuItems.push({ label: 'Show Controls', type: 'checkbox', checked: mediaFlags.isControlsVisible, click: () => callOnElement('el.controls = !el.controls') }) }\n        menuItems.push({ type: 'separator' })\n      }\n\n      // videos\n      if (props.mediaType == 'video') {\n        menuItems.push({ label: 'Save Video As...', click: downloadPrompt('srcURL') })\n        menuItems.push({ label: 'Copy Video URL', click: () => clipboard.writeText(props.srcURL) })\n        menuItems.push({ label: 'Open Video in New Tab', click: (item, win) => tabManager.create(win, props.srcURL, {adjacentActive: true}) })\n        menuItems.push({ type: 'separator' })\n      }\n\n      // audios\n      if (props.mediaType == 'audio') {\n        menuItems.push({ label: 'Save Audio As...', click: downloadPrompt('srcURL') })\n        menuItems.push({ label: 'Copy Audio URL', click: () => clipboard.writeText(props.srcURL) })\n        menuItems.push({ label: 'Open Audio in New Tab', click: (item, win) => tabManager.create(win, props.srcURL, {adjacentActive: true}) })\n        menuItems.push({ type: 'separator' })\n      }\n\n      // spell check\n       if (props.isMisspelled !== '' && props.isEditable) {\n         menuItems.push({label: 'Add to dictionary', click: () => webContents.session.addWordToSpellCheckerDictionary(isMisspelled)})\n         if (spellingSuggestions) {\n           for (let i in spellingSuggestions) {\n             menuItems.push({ label: spellingSuggestions[i], click: (item, win) => webContents.replaceMisspelling(item.label, {adjacentActive: true}) })\n           }\n         }\n         menuItems.push({ type: 'separator' })\n       }\n\n      // clipboard\n      if (props.isEditable) {\n        menuItems.push({ label: 'Cut', role: 'cut', enabled: can('Cut') })\n        menuItems.push({ label: 'Copy', role: 'copy', enabled: can('Copy') })\n        menuItems.push({ label: 'Paste', role: 'paste', enabled: editFlags.canPaste })\n        menuItems.push({ type: 'separator' })\n      } else if (hasText) {\n        menuItems.push({ label: 'Copy', role: 'copy', enabled: can('Copy') })\n        menuItems.push({ type: 'separator' })\n      }\n\n      // web search\n      if (hasText) {\n        var searchPreviewStr = props.selectionText.substr(0, 30) // Trim search preview to keep it reasonably sized\n        searchPreviewStr = searchPreviewStr.replace(/\\s/gi, ' ') // Replace whitespace chars with space\n        searchPreviewStr = searchPreviewStr.replace(/[\\u061c\\u200E\\u200f\\u202A-\\u202E]+/g, '') // Remove directional text control chars\n        if (searchPreviewStr.length < props.selectionText.length) { // Add ellipsis if search preview was trimmed\n          searchPreviewStr += '...\"'\n        } else {\n          searchPreviewStr += '\"'\n        }\n        var searchEngines = await settingsDb.get('search_engines')\n        var searchEngine = searchEngines.find(se => se.selected) || searchEngines[0]\n        var query = searchEngine.url+ '?q=' + encodeURIComponent(props.selectionText.substr(0, 500)) // Limit query to prevent too long query error from DDG\n        menuItems.push({ label: 'Search ' + searchEngine.name + ' for \"' + searchPreviewStr, click: (item, win) => tabManager.create(win, query, {adjacentActive: true}) })\n        menuItems.push({ type: 'separator' })\n      }\n\n      if (!props.linkURL && props.mediaType === 'none' && !hasText) {\n        menuItems.push(createMenuItem('back', {webContents, tab: targetTab}))\n        menuItems.push(createMenuItem('forward', {webContents, tab: targetTab}))\n        menuItems.push(createMenuItem('reload', {webContents, tab: targetTab}))\n        menuItems.push({ type: 'separator' })\n      }\n      \n      if (getAddedWindowSettings(targetWindow).isShellInterfaceHidden) {\n        menuItems.push({\n          label: 'Restore Browser UI',\n          click: function () {\n            toggleShellInterface(targetWindow)\n          }\n        })\n        menuItems.push({ type: 'separator' })\n      }\n\n      menuItems.push(createMenuItem('split-pane-vert', {webContents, tab: targetTab}))\n      menuItems.push(createMenuItem('split-pane-horz', {webContents, tab: targetTab}))\n      if (shouldShowMenuItem('move-pane', {tab: targetTab})) {\n        menuItems.push(createMenuItem('move-pane', {webContents, tab: targetTab}))\n      }\n      menuItems.push(createMenuItem('close-pane', {webContents, tab: targetTab}))\n      menuItems.push({ type: 'separator' })\n      menuItems.push({\n        label: 'Export Page As...',\n        click: downloadPrompt('pageURL', '.html')\n      })\n      menuItems.push({\n        label: 'Print...',\n        click: () => webContents.print()\n      })\n      menuItems.push({ type: 'separator' })\n\n      if (isHyperdrive) {\n        menuItems.push({\n          label: 'Edit Page Source',\n          click: async (item, win) => {\n            if (targetTab) targetTab.createOrFocusPaneByOrigin({url: 'beaker://editor/', setActive: true})\n          }\n        })\n        menuItems.push({\n          label: 'Explore Files',\n          click: async (item, win) => {\n            if (targetTab) targetTab.createOrFocusPaneByOrigin({url: 'beaker://explorer/', setActive: true})\n          }\n        })\n      }\n      menuItems.push({ type: 'separator' })\n      menuItems.push(createMenuItem('inspect-element', {webContents, tab: targetTab, x: props.x, y: props.y}))\n\n      // show menu\n      menuInstance = Menu.buildFromTemplate(menuItems)\n      menuInstance.popup({ window: targetWindow })\n    })\n  })\n}\n\nexport function shouldShowMenuItem (id, {tab, webContents}) {\n  switch (id) {\n    case 'move-pane':\n      return (tab.panes.length > 1)\n    default:\n      return true\n  }\n}\n\nexport function createMenuItem (id, {tab, webContents, x, y}) {\n  switch (id) {\n    case 'back':\n      return {\n        label: 'Back',\n        enabled: webContents.canGoBack(),\n        click: () => webContents.goBack()\n      }\n    case 'forward':\n      return {\n        label: 'Forward',\n        enabled: webContents.canGoForward(),\n        click: () => webContents.goForward()\n      }\n    case 'reload':\n      return {\n        label: 'Reload',\n        click: () => webContents.reload()\n      }\n    case 'split-pane-vert':\n      return {\n        label: 'Split Pane Vertically',\n        click () {\n          var pane = tab && tab.findPane(webContents)\n          if (tab && pane) tab.splitPane(pane, 'vert')\n        }\n      }\n    case 'split-pane-horz':\n      return {\n        label: 'Split Pane Horizontally',\n        click () {\n          var pane = tab && tab.findPane(webContents)\n          if (tab && pane) tab.splitPane(pane, 'horz')\n        }\n      }\n    case 'move-pane':\n      return {\n        type: 'submenu',\n        label: 'Move Pane',\n        submenu: [{\n          label: 'To a New Tab',\n          click () {\n            var pane = tab && tab.findPane(webContents)\n            if (tab && pane) {\n              tab.detachPane(pane)\n              tabManager.create(tab.browserWindow, null, {setActive: true, initialPanes: [pane]})\n            }\n          }\n        }, {\n          type: 'separator'\n        }, {\n          label: 'Up',\n          click () {\n            var pane = tab && tab.findPane(webContents)\n            if (tab && pane) tab.movePane(pane, 'up')\n          }\n        }, {\n          label: 'Down',\n          click () {\n            var pane = tab && tab.findPane(webContents)\n            if (tab && pane) tab.movePane(pane, 'down')\n          }\n        }, {\n          label: 'Left',\n          click () {\n            var pane = tab && tab.findPane(webContents)\n            if (tab && pane) tab.movePane(pane, 'left')\n          }\n        }, {\n          label: 'Right',\n          click () {\n            var pane = tab && tab.findPane(webContents)\n            if (tab && pane) tab.movePane(pane, 'right')\n          }\n        }]\n      }\n    case 'close-pane':\n      return {\n        label: 'Close Pane',\n        click () {\n          var pane = tab && tab.findPane(webContents)\n          if (tab && pane) tab.removePane(pane)\n        }\n      }\n    case 'inspect-element':\n      return {\n        label: 'Inspect Element',\n        click: item => {\n          webContents.inspectElement(x, y)\n          if (webContents.isDevToolsOpened()) { webContents.devToolsWebContents.focus() }\n        }\n      }\n  }\n}"
  },
  {
    "path": "app/bg/ui/default-state.js",
    "content": "export function defaultBrowsingSessionState () {\n  return {\n    windows: [ defaultWindowState() ],\n    cleanExit: true\n  }\n}\n\nexport function defaultWindowState () {\n  // HACK\n  // for some reason, electron.screen comes back null sometimes\n  // not sure why, shouldn't be happening\n  // check for existence for now, see #690\n  // -prf\n  const screen = require('electron').screen\n  var bounds = screen ? screen.getPrimaryDisplay().bounds : {width: 800, height: 600}\n  var width = Math.max(800, Math.min(1800, bounds.width - 50))\n  var height = Math.max(600, Math.min(1200, bounds.height - 50))\n  var minWidth = 400\n  var minHeight = 300\n  return {\n    x: (bounds.width - width) / 2,\n    y: (bounds.height - height) / 2,\n    width,\n    height,\n    minWidth,\n    minHeight,\n    pages: defaultPageState(),\n    isAlwaysOnTop: false,\n    isShellInterfaceHidden: false,\n    isSidebarHidden: false\n  }\n}\n\nexport function defaultPageState () {\n  return []\n}\n"
  },
  {
    "path": "app/bg/ui/downloads.js",
    "content": "import path from 'path'\nimport fs from 'fs'\nimport { app, dialog, shell } from 'electron'\nimport speedometer from 'speedometer'\nimport emitStream from 'emit-stream'\nimport EventEmitter from 'events'\nimport parseDataURL from 'data-urls'\nimport { openOrFocusDownloadsPage, findTab, remove as removeTab } from './tabs/manager'\n\n// globals\n// =\n\n// downloads list\n// - shared across all windows\nvar downloads = []\n\n// used for rpc\nvar downloadsEvents = new EventEmitter()\n\n// exported api\n// =\n\nexport function setup () {\n}\n\nexport const WEBAPI = { createEventsStream, getDownloads, pause, resume, cancel, remove, open, showInFolder }\n\nexport function registerListener (win, opts = {}) {\n  const listener = async (e, item, wc) => {\n    // dont touch if already being handled\n    // - if `opts.saveAs` is being used, there may be multiple active event handlers\n    if (item.isHandled) { return }\n\n    // track as an active download\n    item.id = ('' + Date.now()) + ('' + Math.random())\n    if (opts.saveAs) item.setSavePath(opts.saveAs)\n    item.isHandled = true\n    item.downloadSpeed = speedometer()\n\n    downloads.push(item)\n\n    // This is to prevent the browser-dropdown-menu from opening\n    // For now it is being used when downloading `.html` pages\n    if (!opts.suppressNewDownloadEvent) {\n      downloadsEvents.emit('new-download', toJSON(item))\n      openOrFocusDownloadsPage(win)\n    }\n\n    if (!wc.getURL()) {\n      // download was triggered when the user opened a new tab\n      // close the tab and do the download instead\n      let tab = findTab(wc)\n      if (tab) removeTab(tab.browserWindow, tab)\n    }\n\n    var lastBytes = 0\n    item.on('updated', () => {\n      // set name if not already done\n      if (!item.name) {\n        item.name = path.basename(item.getSavePath())\n      }\n\n      var sumProgress = {\n        receivedBytes: getSumReceivedBytes(),\n        totalBytes: getSumTotalBytes()\n      }\n\n      // track rate of download\n      item.downloadSpeed(item.getReceivedBytes() - lastBytes)\n      lastBytes = item.getReceivedBytes()\n\n      // emit\n      downloadsEvents.emit('updated', toJSON(item))\n      downloadsEvents.emit('sum-progress', sumProgress)\n      win.setProgressBar(sumProgress.receivedBytes / sumProgress.totalBytes)\n    })\n\n    item.on('done', (e, state) => {\n      // inform users of error conditions\n      var overrides = false\n      if (state === 'interrupted') {\n        // this can sometimes happen because the link is a data: URI\n        // in that case, we can manually parse and save it\n        if (item.getURL().startsWith('data:')) {\n          let parsed = parseDataURL(item.getURL())\n          if (parsed) {\n            fs.writeFileSync(item.getSavePath(), parsed.body)\n            overrides = {\n              state: 'completed',\n              receivedBytes: parsed.body.length,\n              totalBytes: parsed.body.length\n            }\n          }\n        }\n        if (!overrides) {\n          dialog.showErrorBox('Download error', `The download of ${item.getFilename()} was interrupted`)\n        }\n      }\n\n      downloadsEvents.emit('done', toJSON(item, overrides))\n\n      // replace entry with a clone that captures the final state\n      downloads.splice(downloads.indexOf(item), 1, capture(item, overrides))\n\n      // reset progress bar when done\n      if (isNoActiveDownloads() && !win.isDestroyed()) {\n        win.setProgressBar(-1)\n      }\n\n      if (state === 'completed') {\n        // flash the dock on osx\n        if (process.platform === 'darwin') {\n          app.dock.downloadFinished(item.getSavePath())\n        }\n      }\n\n      // optional, for one-time downloads\n      if (opts.unregisterWhenDone) {\n        wc.session.removeListener('will-download', listener)\n      }\n    })\n  }\n\n  win.webContents.session.prependListener('will-download', listener)\n  win.on('close', () => win.webContents.session.removeListener('will-download', listener))\n}\n\nexport function download (win, wc, url, opts) {\n  // register for onetime use of the download system\n  opts = Object.assign({}, opts, {unregisterWhenDone: true, trusted: true})\n  registerListener(win, opts)\n  wc.downloadURL(url)\n}\n\n// rpc api\n// =\n\nfunction createEventsStream () {\n  return emitStream(downloadsEvents)\n}\n\nfunction getDownloads () {\n  return Promise.resolve(downloads.map(d => toJSON(d)))\n}\n\nfunction pause (id) {\n  var download = downloads.find(d => d.id == id)\n  if (download) { download.pause() }\n  return Promise.resolve()\n}\n\nfunction resume (id) {\n  var download = downloads.find(d => d.id == id)\n  if (download) { download.resume() }\n  return Promise.resolve()\n}\n\nfunction cancel (id) {\n  var download = downloads.find(d => d.id == id)\n  if (download) { download.cancel() }\n  return Promise.resolve()\n}\n\nfunction remove (id) {\n  var download = downloads.find(d => d.id == id)\n  if (download && download.getState() != 'progressing') { downloads.splice(downloads.indexOf(download), 1) }\n  return Promise.resolve()\n}\n\nfunction open (id) {\n  return new Promise((resolve, reject) => {\n    // find the download\n    var download = downloads.find(d => d.id == id)\n    if (!download || download.state != 'completed') { return reject() }\n\n    // make sure the file is still there\n    fs.stat(download.getSavePath(), err => {\n      if (err) { return reject() }\n\n      // open\n      shell.openItem(download.getSavePath())\n      resolve()\n    })\n  })\n}\n\nfunction showInFolder (id) {\n  return new Promise((resolve, reject) => {\n    // find the download\n    var download = downloads.find(d => d.id == id)\n    if (!download || download.state != 'completed') { return reject() }\n\n    // make sure the file is still there\n    fs.stat(download.getSavePath(), err => {\n      if (err) { return reject() }\n\n      // open\n      shell.showItemInFolder(download.getSavePath())\n      resolve()\n    })\n  })\n}\n\n// internal helpers\n// =\n\n// reduce down to attributes\nfunction toJSON (item, overrides) {\n  return {\n    id: item.id,\n    name: item.name,\n    url: item.getURL(),\n    state: overrides ? overrides.state : item.getState(),\n    isPaused: item.isPaused(),\n    receivedBytes: overrides ? overrides.receivedBytes : item.getReceivedBytes(),\n    totalBytes: overrides ? overrides.totalBytes : item.getTotalBytes(),\n    downloadSpeed: item.downloadSpeed()\n  }\n}\n\n// create a capture of the final state of an item\nfunction capture (item, overrides) {\n  var savePath = item.getSavePath()\n  var dlspeed = item.download\n  item = toJSON(item, overrides)\n  item.getURL = () => item.url\n  item.getState = () => overrides === true ? 'completed' : item.state\n  item.isPaused = () => false\n  item.getReceivedBytes = () => overrides ? overrides.receivedBytes : item.receivedBytes\n  item.getTotalBytes = () => overrides ? overrides.totalBytes : item.totalBytes\n  item.getSavePath = () => savePath\n  item.downloadSpeed = () => dlspeed\n  return item\n}\n\n// sum of received bytes\nfunction getSumReceivedBytes () {\n  return getActiveDownloads().reduce((acc, item) => acc + item.getReceivedBytes(), 0)\n}\n\n// sum of total bytes\nfunction getSumTotalBytes () {\n  return getActiveDownloads().reduce((acc, item) => acc + item.getTotalBytes(), 0)\n}\n\nfunction getActiveDownloads () {\n  return downloads.filter(d => d.getState() == 'progressing')\n}\n\n// all downloads done?\nfunction isNoActiveDownloads () {\n  return getActiveDownloads().length === 0\n}\n"
  },
  {
    "path": "app/bg/ui/init-window.js",
    "content": "import * as path from 'path'\nimport { BrowserWindow } from 'electron'\nimport { ICON_PATH } from './windows'\nimport * as logger from '../logger'\n\n// globals\n// =\n\nvar initWindow\n\n// exported api\n// =\n\nexport function open ({isShutdown} = {isShutdown: false}) {\n  initWindow = new BrowserWindow({\n    autoHideMenuBar: true,\n    fullscreenable: false,\n    resizable: false,\n    fullscreenWindowTitle: true,\n    frame: false,\n    width: 400,\n    height: 300,\n    backgroundColor: '#fff',\n    webPreferences: {\n      preload: path.join(__dirname, 'fg', 'webview-preload', 'index.build.js'),\n      defaultEncoding: 'utf-8',\n      nodeIntegration: false,\n      contextIsolation: true,\n      webviewTag: false,\n      sandbox: true,\n      webSecurity: true,\n      enableRemoteModule: false,\n      allowRunningInsecureContent: false\n    },\n    icon: ICON_PATH,\n    show: true\n  })\n  initWindow.loadURL(`beaker://init/${isShutdown ? 'shutdown.html' : ''}`)\n}\n\nexport function close () {\n  if (initWindow) {\n    initWindow.close()\n    initWindow = undefined\n  }\n}\n"
  },
  {
    "path": "app/bg/ui/keybindings.js",
    "content": "/*\nThe webviews that run untrusted content, by default, will handle all key press events.\nThe webview handlers take precedence over the browser keybindings (which are done in the window-menu).\nTo avoid that, we listen to the window webContents' 'before-input-event' and handle the commands manually.\n*/\n\nimport _flattenDeep from 'lodash.flattendeep'\nimport isAccelerator from 'electron-is-accelerator'\nimport equals from 'keyboardevents-areequal'\nimport {toKeyEvent} from 'keyboardevent-from-electron-accelerator'\nimport {buildWindowMenu, triggerMenuItemById} from './window-menu'\n\nconst IS_DARWIN = process.platform === 'darwin'\nconst registeredKBs = {} // map of [window.id] => keybindings\n\n// exported api\n// =\n\nexport function registerGlobalKeybinding (win, accelerator, callback) {\n  // sanity checks\n  checkAccelerator(accelerator)\n\n  // add the keybinding\n  registeredKBs[win.id] = registeredKBs[win.id] || []\n  registeredKBs[win.id].push({\n    eventStamp: toKeyEvent(accelerator),\n    callback,\n    enabled: true\n  })\n}\n\nexport function unregisterGlobalKeybinding (win, accelerator, callback) {\n  // sanity checks\n  checkAccelerator(accelerator)\n\n  // remove the keybinding\n  var keyEvent = toKeyEvent(accelerator)\n  if (win.id in registeredKBs) {\n    var kbIdx = registeredKBs[win.id].findIndex(kb => equals(kb.eventStamp, keyEvent))\n    if (kbIdx !== -1) registeredKBs[win.id].splice(kbIdx, 1)\n  }\n}\n\n// event handler for global shortcuts\nexport function createGlobalKeybindingsHandler (win) {\n  return (e, input) => {\n    if (input.type === 'keyUp') return\n    var event = normalizeEvent(input)\n    for (let {eventStamp, callback} of (registeredKBs[win.id] || [])) {\n      if (equals(eventStamp, event)) {\n        callback()\n        return\n      }\n    }\n  }\n}\n\n// event handler, manually run any events that match the window-menu's shortcuts and which are marked as 'reserved'\n// this is used, for instance, to reserve \"Cmd/Ctrl + T\" so that an app cannot pre-empt it\n// (the window-menu's accelerators are typically handled *after* the active view's input handlers)\nexport function createKeybindingProtectionsHandler (win) {\n  const KEYBINDINGS = extractKeybindings(buildWindowMenu({win}))\n  return (e, input) => {\n    if (input.type !== 'keyDown') return\n    var key = input.key\n    if (key === 'Dead') key = 'i' // not... really sure what 'Dead' is about -prf\n    if (key === '=') key = '+' // let's not differentiate the shift (see #1155) -prf\n    var match\n    for (var kb of KEYBINDINGS) {\n      if (key === kb.binding.key) {\n        if (kb.binding.control && !input.control) continue\n        if (kb.binding.cmd && !input.meta) continue\n        if (kb.binding.shift && !input.shift) continue\n        if (kb.binding.alt && !input.alt) continue\n        match = kb\n      }\n    }\n    if (match) {\n      e.preventDefault()\n      triggerMenuItemById(match.menuLabel, match.id)\n    }\n  }\n}\n\n// internal\n// =\n\n// recurse the window menu and extract all 'accelerator' values with reserved=true\nfunction extractKeybindings (menuNode, menuLabel) {\n  if (menuNode.accelerator && menuNode.click && menuNode.reserved) {\n    return {\n      binding: convertAcceleratorToBinding(menuNode.accelerator),\n      id: menuNode.id,\n      menuLabel\n    }\n  } else if (menuNode.submenu) {\n    return menuNode.submenu.map(item => extractKeybindings(item, menuNode.label)).filter(Boolean)\n  } else if (Array.isArray(menuNode)) {\n    return _flattenDeep(menuNode.map(extractKeybindings).filter(Boolean))\n  }\n  return null\n}\n\n// convert accelerator values into objects that are easy to match against input events\n// eg 'CmdOrCtrl+Shift+T' -> {cmdOrCtrl: true, shift: true, key: 't'}\nfunction convertAcceleratorToBinding (accel) {\n  var binding = {}\n  accel.split('+').forEach(part => {\n    switch (part.toLowerCase()) {\n      case 'command':\n      case 'cmd':\n        binding.cmd = true\n        break\n      case 'ctrl':\n        binding.control = true\n        break\n      case 'cmdorctrl':\n        if (IS_DARWIN) binding.cmd = true\n        else binding.control = true\n        break\n      case 'alt':\n        binding.alt = true\n        break\n      case 'shift':\n        binding.shift = true\n        break\n      case 'plus':\n        binding.key = '+'\n        break\n      default:\n        binding.key = part.toLowerCase()\n    }\n  })\n  return binding\n}\n\nfunction checkAccelerator (accelerator) {\n  if (!isAccelerator(accelerator)) {\n    throw new Error(`${accelerator} is not a valid accelerator`)\n  }\n}\n\nfunction normalizeEvent (input) {\n  var normalizedEvent = {\n    code: input.code,\n    key: input.key\n  }\n\n  for (let prop of ['alt', 'shift', 'meta']) {\n    if (typeof input[prop] !== 'undefined') {\n      normalizedEvent[`${prop}Key`] = input[prop]\n    }\n  }\n\n  if (typeof input.control !== 'undefined') {\n    normalizedEvent.ctrlKey = input.control\n  }\n\n  return normalizedEvent\n}"
  },
  {
    "path": "app/bg/ui/permissions.js",
    "content": "import { session } from 'electron'\nimport { PERMS, getPermId } from '../../lib/permissions'\nimport hyper from '../hyper/index'\nimport * as sitedata from '../dbs/sitedata'\nimport _get from 'lodash.get'\nimport { parseDriveUrl } from '../../lib/urls'\nimport * as permPromptSubwindow from './subwindows/perm-prompt'\nimport * as tabManager from './tabs/manager'\nimport {PermissionsError, UserDeniedError} from 'beaker-error-constants'\nimport * as wcTrust from '../wc-trust'\n\n// globals\n// =\n\nvar idCounter = 0\nvar activeRequests = []\n\n// exported api\n// =\n\nexport function setup () {\n  // wire up handlers\n  session.defaultSession.setPermissionRequestHandler(onPermissionRequestHandler)\n}\n\nexport function requestPermission (permission, webContents, opts) {\n  return new Promise((resolve, reject) => onPermissionRequestHandler(webContents, permission, resolve, opts))\n}\n\nexport function grantPermission (permission, webContents) {\n  var siteURL = (typeof webContents === 'string') ? webContents : webContents.getURL()\n\n  // update the DB\n  const PERM = PERMS[getPermId(permission)]\n  if (PERM && PERM.persist) {\n    sitedata.setPermission(siteURL, permission, 1)\n  }\n  return Promise.resolve()\n}\n\nexport function revokePermission (permission, webContents) {\n  var siteURL = (typeof webContents === 'string') ? webContents : webContents.getURL()\n\n  // update the DB\n  const PERM = PERMS[getPermId(permission)]\n  if (PERM && PERM.persist) {\n    sitedata.clearPermission(siteURL, permission)\n  }\n  return Promise.resolve()\n}\n\nexport function queryPermission (permission, webContents) {\n  return sitedata.getPermission(webContents.getURL(), permission)\n}\n\nexport function denyAllRequests (win) {\n  // remove all requests in the window, denying as we go\n  activeRequests = activeRequests.filter(req => {\n    if (req.win === win) {\n      for (let cb of req.cbs) {\n        cb(false)\n      }\n      return false\n    }\n    return true\n  })\n}\n\nexport async function checkLabsPerm ({perm, labApi, apiDocsUrl, sender}) {\n  var urlp = parseDriveUrl(sender.getURL())\n  if (urlp.protocol === 'beaker:') return true\n  if (urlp.protocol === 'hyper:') {\n    // resolve name\n    let key = await hyper.dns.resolveName(urlp.hostname)\n\n    // check index.json for opt-in\n    let isOptedIn = false\n    let drive = hyper.drives.getDrive(key)\n    if (drive) {\n      let {checkoutFS} = await hyper.drives.getDriveCheckout(drive, urlp.version)\n      let manifest = await checkoutFS.pda.readManifest().catch(_ => {})\n      let apis = _get(manifest, 'experimental.apis')\n      if (apis && Array.isArray(apis)) {\n        isOptedIn = apis.includes(labApi)\n      }\n    }\n    if (!isOptedIn) {\n      throw new PermissionsError(`You must include \"${labApi}\" in your index.json experimental.apis list. See ${apiDocsUrl} for more information.`)\n    }\n\n    // ask user\n    let allowed = await requestPermission(perm, sender)\n    if (!allowed) throw new UserDeniedError()\n    return true\n  }\n  throw new PermissionsError()\n}\n\n// event handlers\n// =\n\nasync function onPermissionRequestHandler (webContents, permission, cb, opts) {\n  const url = webContents.getURL()\n\n  // always allow trusted interfaces\n  if (wcTrust.isWcTrusted(webContents)) {\n    return cb(true)\n  }\n\n  // check if the perm is auto-allowed or auto-disallowed\n  const PERM = PERMS[getPermId(permission)]\n  if (!PERM) return cb(false)\n  if (PERM && PERM.alwaysAllow) return cb(true)\n  if (PERM && PERM.alwaysDisallow) return cb(false)\n\n  // special cases\n  if (permission === 'openExternal' && opts.externalURL.startsWith('mailto:')) {\n    return cb(true)\n  }\n\n  // check the sitedatadb\n  var res = await sitedata.getPermission(url, permission).catch(err => undefined)\n  if (res === 1) return cb(true)\n  if (res === 0) return cb(false)\n\n  // look up the containing window\n  var {win, tab} = getContaining(webContents)\n  if (!win) {\n    console.error('Warning: failed to find containing window of permission request, ' + permission)\n    return cb(false)\n  }\n\n  // if we're already tracking this kind of permission request, and the perm is idempotent, then bundle them\n  var req = PERM.idempotent ? activeRequests.find(req => req.webContents === webContents && req.permission === permission) : false\n  if (req) {\n    req.cbs.push(cb)\n    return\n  }\n\n  // wait for any existing perm requests on the tab to finish\n  await waitForPendingTabRequests(tab)\n  \n  // track the new cb\n  req = { id: ++idCounter, webContents, tab, win, url, permission, cbs: [cb] }\n  activeRequests.push(req)\n\n  // run the UI flow\n  tab.setActivePane(tab.findPane(webContents))\n  var decision = await permPromptSubwindow.create(win, tab, {permission, url, opts})\n\n  // persist decisions\n  if (PERM && PERM.persist) {\n    if (PERM.persist === 'allow' && !decision) {\n      // only persist allows\n      await sitedata.clearPermission(req.url, req.permission)\n    } else {\n      // persist all decisions\n      await sitedata.setPermission(req.url, req.permission, decision)\n    }\n  }\n\n  // untrack\n  activeRequests.splice(activeRequests.indexOf(req), 1)\n\n  // hand down the decision\n  for (let cb of req.cbs) {\n    cb(decision)\n  }\n}\n\nasync function waitForPendingTabRequests (tab) {\n  var reqs = activeRequests.filter(req => req.tab === tab)\n  if (reqs.length === 0) return\n  let promises = []\n  for (let req of reqs) {\n    promises.push(new Promise(resolve => req.cbs.push(resolve)))\n  }\n  await Promise.all(promises)\n}\n\nfunction getContaining (webContents) {\n  var tab = tabManager.findTab(webContents)\n  if (tab) {\n    return {win: tab.browserWindow, tab}\n  }\n  return {}\n}\n"
  },
  {
    "path": "app/bg/ui/session-watcher.js",
    "content": "import {BrowserWindow} from 'electron'\nimport EventEmitter from 'events'\nimport debounce from 'lodash.debounce'\nimport _isEqual from 'lodash.isequal'\nimport {defaultPageState} from './default-state'\n\nconst SNAPSHOT_PATH = 'shell-window-state.json'\nvar lastRecordedPositioning = {}\n\n// exported api\n// =\n\nexport default class SessionWatcher {\n  static get emptySnapshot () {\n    return {\n      windows: [],\n      backgroundTabs: [],\n      // We set this to false by default and clean this up when the session\n      // exits. If we ever open up a snapshot and this isn't cleaned up assume\n      // there was a crash\n      cleanExit: false\n    }\n  }\n\n  constructor (userDataDir) {\n    this.userDataDir = userDataDir\n    this.snapshot = SessionWatcher.emptySnapshot\n    this.closedWindowStates = []\n    this.recording = true\n    this.watchers = {}\n  }\n\n  startRecording () { this.recording = true }\n  stopRecording () { this.recording = false }\n\n  updateBackgroundTabs (tabs) {\n    this.snapshot.backgroundTabs = tabs.map(tab => tab.getSessionSnapshot())\n    this.writeSnapshot()\n  }\n\n  watchWindow (win, initialState) {\n    const winId = win.id\n    let state = initialState\n    this.snapshot.windows.push(state)\n    let watcher = new WindowWatcher(win, initialState)\n    this.watchers[winId] = watcher\n\n    watcher.on('change', (nextState) => {\n      if (this.recording) {\n        let { windows } = this.snapshot\n        let i = windows.indexOf(state)\n        if (i === -1) return\n        state = windows[i] = nextState\n        this.writeSnapshot()\n      }\n    })\n\n    watcher.on('remove', () => {\n      if (this.recording) {\n        let i = this.snapshot.windows.indexOf(state)\n        this.snapshot.windows.splice(i, 1)\n        this.writeSnapshot()\n        this.closedWindowStates.push(state)\n      }\n      delete this.watchers[winId]\n      watcher.removeAllListeners()\n    })\n  }\n\n  exit () {\n    this.snapshot.cleanExit = true\n    this.writeSnapshot()\n  }\n\n  writeSnapshot () {\n    this.userDataDir.write(SNAPSHOT_PATH, this.snapshot, { atomic: true })\n  }\n\n  getState (winId) {\n    if (winId && typeof winId === 'object') {\n      // window object\n      winId = winId.id\n    }\n    return this.watchers[winId].snapshot\n  }\n\n  updateState (winId, state) {\n    if (winId && typeof winId === 'object') {\n      // window object\n      winId = winId.id\n    }\n    return this.watchers[winId].update(state)\n  }\n\n  getBackgroundTabsState () {\n    return this.snapshot.backgroundTabs || []\n  }\n\n  popLastClosedWindow () {\n    return this.closedWindowStates.pop()\n  }\n}\n\nexport function getLastRecordedPositioning () {\n  return lastRecordedPositioning\n}\n\n// internal methods\n// =\n\nclass WindowWatcher extends EventEmitter {\n  constructor (win, initialState) {\n    super()\n    this.handleClosed = this.handleClosed.bind(this)\n    this.handlePagesUpdated = this.handlePagesUpdated.bind(this)\n    this.handlePositionChange = this.handlePositionChange.bind(this)\n    this.handleAlwaysOnTopChanged = this.handleAlwaysOnTopChanged.bind(this)\n\n    // right now this class trusts that the initial state is correctly formed by this point\n    this.snapshot = JSON.parse(JSON.stringify(initialState))\n    this.winId = win.id\n    win.on('closed', this.handleClosed)\n    win.on('resize', debounce(this.handlePositionChange, 1000))\n    win.on('moved', this.handlePositionChange)\n    win.on('always-on-top-changed', this.handleAlwaysOnTopChanged)\n    win.on('custom-pages-updated', this.handlePagesUpdated)\n  }\n\n  getWindow () {\n    return BrowserWindow.fromId(this.winId)\n  }\n\n  update (state) {\n    for (let k in state) {\n      this.snapshot[k] = state[k]\n    }\n    this.emit('change', this.snapshot)\n  }\n\n  // handlers\n\n  handleClosed () {\n    var win = BrowserWindow.fromId(this.winId)\n    if (win) win.removeListener('custom-pages-updated', this.handlePagesUpdated)\n    this.emit('remove')\n  }\n\n  handlePagesUpdated (pages) {\n    if (_isEqual(pages, this.snapshot.pages)) return\n    this.snapshot.pages = (pages && pages.length) ? pages : defaultPageState()\n    this.emit('change', this.snapshot)\n  }\n\n  handlePositionChange () {\n    lastRecordedPositioning = this.getWindow().getBounds()\n    Object.assign(this.snapshot, lastRecordedPositioning)\n    this.emit('change', this.snapshot)\n  }\n\n  handleAlwaysOnTopChanged (e, isAlwaysOnTop) {\n    this.snapshot.isAlwaysOnTop = isAlwaysOnTop\n    this.emit('change', this.snapshot)\n  }\n}\n"
  },
  {
    "path": "app/bg/ui/setup-flow.js",
    "content": "import * as path from 'path'\nimport { URLSearchParams } from 'url'\nimport { BrowserWindow } from 'electron'\nimport { ICON_PATH } from './windows'\nimport * as profileDb from '../dbs/profile-data-db'\nimport * as filesystem from '../filesystem/index'\nimport knex from '../lib/knex'\n\n// globals\n// =\n\nvar setupWindow\n\n// exported api\n// =\n\nexport var hasVisitedProfile = false\n\nexport async function runSetupFlow () {\n  var setupState = await profileDb.get('SELECT * FROM setup_state')\n  if (!setupState) {\n    setupState = {\n      migrated08to09: 0,\n      profileSetup: 0\n    }\n    await profileDb.run(knex('setup_state').insert(setupState))\n  }\n\n  var needsSetup = !setupState.profileSetup || !setupState.migrated08to09\n  if (needsSetup) {\n    setupWindow = new BrowserWindow({\n      // titleBarStyle: 'hiddenInset',\n      autoHideMenuBar: true,\n      fullscreenable: false,\n      resizable: false,\n      fullscreenWindowTitle: true,\n      frame: false,\n      width: 600,\n      height: 500,\n      backgroundColor: '#334',\n      webPreferences: {\n        preload: path.join(__dirname, 'fg', 'webview-preload', 'index.build.js'),\n        defaultEncoding: 'utf-8',\n        nodeIntegration: false,\n        contextIsolation: true,\n        webviewTag: false,\n        sandbox: true,\n        webSecurity: true,\n        enableRemoteModule: false,\n        allowRunningInsecureContent: false\n      },\n      icon: ICON_PATH,\n      show: true\n    })\n    setupWindow.loadURL(`beaker://setup/?${(new URLSearchParams(setupState)).toString()}`)\n    await new Promise(r => setupWindow.once('close', r))\n    setupWindow = undefined\n  }\n}\n\nexport async function updateSetupState (obj) {\n  await profileDb.run(knex('setup_state').update(obj))\n\n  // HACK\n  // window.close() isnt working within the UI thread for some reason\n  // so use this as a cue to close the window\n  // -prf\n  var setupState = await profileDb.get('SELECT * FROM setup_state')\n  if (setupWindow && setupState.profileSetup && setupState.migrated08to09) setupWindow.close()\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/location-bar.js",
    "content": "/**\n * Location Bar\n *\n * NOTES\n * - There can only ever be one Location Bar view for a given browser window\n * - Location Bar views are created with each browser window and then shown/hidden as needed\n * - When unfocused, the Location Bar view is hidden (it's meant to act as a popup menu)\n */\nimport path from 'path'\nimport Events from 'events'\nimport { BrowserWindow, BrowserView } from 'electron'\nimport * as rpc from 'pauls-electron-rpc'\nimport locationBarRPCManifest from '../../rpc-manifests/location-bar'\nimport * as tabManager from '../tabs/manager'\nimport * as settingsDb from '../../dbs/settings'\n\n// globals\n// =\n\nconst MARGIN_SIZE = 10\nvar events = new Events()\nvar views = {} // map of {[parentWindow.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  var id = parentWindow.id\n  var view = views[id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8',\n      preload: path.join(__dirname, 'fg', 'location-bar', 'index.build.js')\n    }\n  })\n  view.setAutoResize({width: true, height: false})\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Location-Bar window says:', message)\n  })\n  view.webContents.loadURL('beaker://location-bar/')\n\n  settingsDb.on('set:search_engines', newValue => {\n    if (id in views) {\n      parentWindow.webContents.send('command', 'set-search-engines', newValue)\n    }\n  })\n}\n\nexport function destroy (parentWindow) {\n  if (get(parentWindow)) {\n    get(parentWindow).webContents.destroy()\n    delete views[parentWindow.id]\n  }\n}\n\nexport function get (parentWindow) {\n  return views[parentWindow.id]\n}\n\nexport function reposition (parentWindow) {\n  // noop\n}\n\nexport async function show (parentWindow, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    view.opts = opts\n    view.webContents.executeJavaScript(`setup(); undefined`)\n    parentWindow.addBrowserView(view)\n    view.setBounds({\n      x: opts.bounds.x - MARGIN_SIZE,\n      y: opts.bounds.y,\n      width: opts.bounds.width + (MARGIN_SIZE*2),\n      height: 588 + MARGIN_SIZE\n    })\n    view.isVisible = true\n\n    // await till hidden\n    await new Promise(resolve => {\n      // TODO confirm this works\n      events.once('hide', resolve)\n    })\n  }\n}\n\nexport function hide (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    view.webContents.executeJavaScript(`invisibilityCloak(); undefined`)\n    setTimeout(() => {\n      parentWindow.removeBrowserView(view)\n      view.isVisible = false\n      events.emit('hide') // TODO confirm this works\n    }, 150)\n    // ^ this delay is how we give click events time to be handled in the UI\n    // without it, the location input's blur event will remove our browserview too quickly\n  }\n}\n\nexport async function runCmd (parentWindow, cmd, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    if (!view.isVisible) {\n      if (cmd === 'show') {\n        // show first\n        show(parentWindow, opts)\n      } else {\n        return\n      }\n    }\n    return view.webContents.executeJavaScript(`command(\"${cmd}\", ${JSON.stringify(opts)})`)\n  }\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-location-bar', locationBarRPCManifest, {\n  async close () {\n    hide(getParentWindow(this.sender))\n  },\n\n  async createTab (url) {\n    var win = getParentWindow(this.sender)\n    hide(win) // always close the location bar\n    tabManager.create(win, url, {setActive: true})\n  },\n\n  async loadURL (url) {\n    var win = getParentWindow(this.sender)\n    hide(win) // always close the location bar\n    tabManager.getActive(win).primaryPane.loadURL(url)\n    get(win).webContents.send('command', 'unfocus-location') // we have to manually unfocus the location bar\n  },\n\n  async reload () {\n    var win = getParentWindow(this.sender)\n    hide(win) // always close the location bar\n    tabManager.getActive(win).primaryPane.reload()\n    get(win).webContents.send('command', 'unfocus-location') // we have to manually unfocus the location bar\n  },\n\n  async resizeSelf (dimensions) {\n    var view = get(getParentWindow(this.sender))\n    view.setBounds({\n      x: view.opts.bounds.x - MARGIN_SIZE,\n      y: view.opts.bounds.y,\n      width: (dimensions.width || view.opts.bounds.width) + (MARGIN_SIZE*2),\n      height: (dimensions.height || 588) + MARGIN_SIZE\n    })\n  }\n})\n\n// internal methods\n// =\n\nfunction getParentWindow (sender) {\n  for (let win of BrowserWindow.getAllWindows()) {\n    if (win.webContents === sender) return win\n    for (let view of win.getBrowserViews()) {\n      if (view.webContents === sender) return win\n    }\n  }\n  throw new Error('Parent window not found')\n}"
  },
  {
    "path": "app/bg/ui/subwindows/modals.js",
    "content": "/**\n * Modal\n *\n * NOTES\n * - Modal views are created as-needed, and desroyed when not in use\n * - Modal views are attached to individual BrowserView instances\n * - Modal views are shown and hidden based on whether its owning BrowserView is visible\n */\n\nimport path from 'path'\nimport { app, BrowserWindow, BrowserView, Menu, clipboard } from 'electron'\nimport * as rpc from 'pauls-electron-rpc'\nimport { ModalActiveError } from 'beaker-error-constants'\nimport * as tabManager from '../tabs/manager'\nimport modalsRPCManifest from '../../rpc-manifests/modals'\nimport { findWebContentsParentWindow } from '../../lib/electron'\n\n// globals\n// =\n\nconst MARGIN_SIZE = 10\nvar views = {} // map of {[tab.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  // listen for the basic auth login event\n  app.on('login', async function (e, webContents, request, authInfo, cb) {\n    e.preventDefault() // default is to cancel the auth; prevent that\n    var res = await create(webContents, 'basic-auth', authInfo)\n    cb(res.username, res.password)\n  })\n}\n\nexport function destroy (parentWindow) {\n  // destroy all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      views[tab.id].webContents.destroy()\n      delete views[tab.id]\n    }\n  }\n}\n\nexport function reposition (parentWindow) {\n  // reposition all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      setBounds(views[tab.id], parentWindow)\n    }\n  }\n}\n\nexport async function create (webContents, modalName, params = {}) {\n  // find parent window\n  var parentWindow = BrowserWindow.fromWebContents(webContents)\n  var tab\n  if (!parentWindow) {\n    // if there's no window, then a web page or \"sub-window\" created the prompt\n    // use its containing window\n    tab = tabManager.findTab(webContents)\n    parentWindow = findWebContentsParentWindow(webContents)\n    if (!tab) {\n      // this can happen when the passed `webContents` is a shell-menu or similar sub-window\n      tab = tabManager.getActive(parentWindow)\n    }\n  } else {\n    // shell window created the prompt\n    tab = tabManager.getActive(parentWindow)\n    parentWindow = tab.browserWindow\n  }\n\n  // make sure a prompt window doesnt already exist\n  if (tab.id in views) {\n    throw new ModalActiveError()\n  }\n\n  // wait for tab to be actives\n  if (!tab.isActive) {\n    await tab.awaitActive()\n  }\n\n  // create the view\n  var view = views[tab.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8',\n      preload: path.join(__dirname, 'fg', 'modals', 'index.build.js')\n    }\n  })\n  view.modalName = modalName\n  parentWindow.addBrowserView(view)\n  setBounds(view, parentWindow)\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Modals window says:', message)\n  })\n  view.webContents.loadURL('beaker://modals/')\n  view.webContents.focus()\n\n  // run the modal flow\n  var result\n  var err\n  try {\n    result = await view.webContents.executeJavaScript(`runModal(\"${modalName}\", ${JSON.stringify(params)})`)\n  } catch (e) {\n    err = e\n  }\n\n  // destroy the window\n  parentWindow.removeBrowserView(view)\n  view.webContents.destroy()\n  delete views[tab.id]\n\n  // return/throw\n  if (err) throw err\n  return result\n}\n\nexport function get (tab) {\n  return views[tab.id]\n}\n\nexport function show (tab) {\n  if (tab.id in views) {\n    if (tab.browserWindow) {\n      tab.browserWindow.addBrowserView(views[tab.id])\n    }\n  }\n}\n\nexport function hide (tab) {\n  if (tab.id in views) {\n    if (tab.browserWindow) {\n      tab.browserWindow.removeBrowserView(views[tab.id])\n    }\n  }\n}\n\nexport function close (tab) {\n  if (tab.id in views) {\n    var view = views[tab.id]\n    if (tab.browserWindow) tab.browserWindow.removeBrowserView(view)\n    view.webContents.destroy()\n    delete views[tab.id]\n  }\n}\n\nexport function handleContextMenu (webContents, targetWindow, can, props) {\n  var menuItems = []\n  if (props.linkURL) {\n    menuItems.push({ label: 'Open Link in New Tab', click: (item, win) => tabManager.create(win, props.linkURL, {setActive: true, adjacentActive: true}) })\n    menuItems.push({ label: 'Copy Link Address', click: () => clipboard.writeText(props.linkURL) })\n  }\n  if (props.mediaType == 'image') {\n    menuItems.push({ label: 'Copy Image', click: () => webContents.copyImageAt(props.x, props.y) })\n    menuItems.push({ label: 'Copy Image URL', click: () => clipboard.writeText(props.srcURL) })\n    menuItems.push({ label: 'Open Image in New Tab', click: (item, win) => tabManager.create(win, props.srcURL, {adjacentActive: true}) })\n  }\n  if (props.isEditable) {\n    menuItems.push({ label: 'Cut', role: 'cut', enabled: can('Cut') })\n    menuItems.push({ label: 'Copy', role: 'copy', enabled: can('Copy') })\n    menuItems.push({ label: 'Paste', role: 'paste', enabled: props.editFlags.canPaste })\n  } else if (props.selectionText.trim().length > 0) {\n    menuItems.push({ label: 'Copy', role: 'copy', enabled: can('Copy') })\n  }\n  if (menuItems.length === 0) return\n\n  var menuInstance = Menu.buildFromTemplate(menuItems)\n  menuInstance.popup({ window: targetWindow })\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-modals', modalsRPCManifest, {\n  async createTab (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    tabManager.create(win, url, {setActive: true, adjacentActive: true})\n  },\n\n  async resizeSelf (dimensions) {\n    var view = Object.values(views).find(view => view.webContents === this.sender)\n    if (!view) return\n    var parentWindow = findWebContentsParentWindow(this.sender)\n    setBounds(view, parentWindow, dimensions)\n  }\n})\n\n// internal methods\n// =\n\nfunction getDefaultWidth (view) {\n  if (view.modalName === 'select-drive') return 600\n  if (view.modalName === 'select-file') return 800\n  if (view.modalName === 'select-contact') return 700\n  if (view.modalName === 'folder-sync') return 700\n  return 500\n}\n\nfunction getDefaultHeight (view) {\n  if (view.modalName === 'select-file') return 460\n  if (view.modalName === 'select-contact') return 460\n  return 300\n}\n\nfunction setBounds (view, parentWindow, {width, height} = {}) {\n  var parentBounds = parentWindow.getContentBounds()\n  // HACK workaround the lack of view.getBounds() -prf\n  view.currentBounds = view.currentBounds || {width: undefined, height: undefined}\n  view.currentBounds.width = Math.min(width || view.currentBounds.width || getDefaultWidth(view), parentBounds.width - 20)\n  view.currentBounds.height = Math.min(height || view.currentBounds.height || getDefaultHeight(view), parentBounds.height - 20)\n  view.setBounds({\n    x: Math.round(parentBounds.width / 2) - Math.round(view.currentBounds.width / 2) - MARGIN_SIZE, // centered\n    y: 70,\n    width: view.currentBounds.width + (MARGIN_SIZE * 2),\n    height: view.currentBounds.height + MARGIN_SIZE\n  })\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/overlay.js",
    "content": "/**\n * Overlay\n *\n * NOTES\n * - There can only ever be one overlay for a given browser window\n * - Overlay views are created with each browser window and then shown/hidden as needed\n */\nimport { BrowserWindow, BrowserView } from 'electron'\nimport path from 'path'\nimport * as rpc from 'pauls-electron-rpc'\nimport overlayRPCManifest from '../../rpc-manifests/overlay'\n\n// globals\n// =\n\nvar views = {} // map of {[parentWindow.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  var view = views[parentWindow.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8'\n    }\n  })\n  view.webContents.loadFile(path.join(__dirname, 'fg', 'overlay', 'index.html'))\n}\n\nexport function destroy (parentWindow) {\n  if (get(parentWindow)) {\n    get(parentWindow).webContents.destroy()\n    delete views[parentWindow.id]\n  }\n}\n\nexport function get (parentWindow) {\n  return views[parentWindow.id]\n}\n\nexport function reposition (parentWindow) {\n  // noop\n}\n\nexport function show (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    parentWindow.addBrowserView(view)\n  }\n}\n\nexport function hide (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    parentWindow.removeBrowserView(view)\n  }\n}\n\nexport function set (parentWindow, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    if (opts) {\n      show(parentWindow)\n      view.setBounds(opts.bounds)\n      view.webContents.executeJavaScript(`set(${JSON.stringify(opts)}); undefined`)\n    } else { \n      hide(parentWindow)\n      view.webContents.executeJavaScript(`set({}); undefined`)\n    }\n  }\n} \n// rpc api\n// =\n\nrpc.exportAPI('background-process-overlay', overlayRPCManifest, {\n  async set (opts) {\n    set(getParentWindow(this.sender), opts)\n  }\n})\n\n// internal methods\n// =\n\nfunction getParentWindow (sender) {\n  var win = BrowserWindow.fromWebContents(sender)\n  if (win) return win\n  throw new Error('Parent window not found')\n}"
  },
  {
    "path": "app/bg/ui/subwindows/perm-prompt.js",
    "content": "/**\n * Perm Prompt\n *\n * NOTES\n * - Perm Prompt views are created as-needed, and desroyed when not in use\n * - Perm Prompt views are attached to individual BrowserView instances\n * - Perm Prompt views are shown and hidden based on whether its owning BrowserView is visible\n */\n\nimport path from 'path'\nimport { BrowserWindow, BrowserView } from 'electron'\nimport * as rpc from 'pauls-electron-rpc'\nimport * as tabManager from '../tabs/manager'\nimport permPromptRPCManifest from '../../rpc-manifests/perm-prompt'\nimport { findWebContentsParentWindow } from '../../lib/electron'\n\n// globals\n// =\n\nconst MARGIN_SIZE = 10\nvar views = {} // map of {[tab.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n}\n\nexport function destroy (parentWindow) {\n  // destroy all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      views[tab.id].webContents.destroy()\n      delete views[tab.id]\n    }\n  }\n}\n\nexport function reposition (parentWindow) {\n  // reposition all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      setBounds(views[tab.id], parentWindow)\n    }\n  }\n}\n\nexport async function create (parentWindow, tab, params) {\n  // make sure a prompt window doesnt already exist\n  if (tab.id in views) {\n    return false // abort\n  }\n\n  if (!tab.isActive) {\n    await tab.awaitActive()\n  }\n\n  // create the window\n  var view = views[tab.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8',\n      preload: path.join(__dirname, 'fg', 'perm-prompt', 'index.build.js')\n    }\n  })\n  parentWindow.addBrowserView(view)\n  setBounds(view, parentWindow)\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Perm-Prompt window says:', message)\n  })\n  view.webContents.loadURL('beaker://perm-prompt/')\n  view.webContents.focus()\n\n  // run the prompt flow\n  var decision = false\n  try {\n    decision = await view.webContents.executeJavaScript(`runPrompt(${JSON.stringify(params)})`)\n  } catch (e) {\n    console.error('Failed to run permission prompt', e)\n  }\n\n  // destroy the window\n  parentWindow.removeBrowserView(view)\n  view.webContents.destroy()\n  delete views[tab.id]\n  return decision\n}\n\nexport function get (tab) {\n  return views[tab.id]\n}\n\nexport function show (tab) {\n  if (tab.id in views) {\n    if (tab.browserWindow) {\n      tab.browserWindow.addBrowserView(views[tab.id])\n    }\n  }\n}\n\nexport function hide (tab) {\n  if (tab.id in views) {\n    if (tab.browserWindow) {\n      tab.browserWindow.removeBrowserView(views[tab.id])\n    }\n  }\n}\n\nexport function close (tab) {\n  if (tab.id in views) {\n    views[tab.id].webContents.destroy()\n    delete views[tab.id]\n  }\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-perm-prompt', permPromptRPCManifest, {\n  async createTab (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    tabManager.create(win, url, {setActive: true, adjacentActive: true})\n  },\n\n  async resizeSelf (dimensions) {\n    var view = Object.values(views).find(view => view.webContents === this.sender)\n    if (!view) return\n    var parentWindow = findWebContentsParentWindow(this.sender)\n    setBounds(view, parentWindow, dimensions)\n  }\n})\n\n// internal methods\n// =\n\nfunction setBounds (view, parentWindow, {width, height} = {}) {\n  width = width || 300\n  height = height || 118\n  view.setBounds({\n    x: 100 - MARGIN_SIZE,\n    y: 70,\n    width: width + (MARGIN_SIZE * 2),\n    height: height + MARGIN_SIZE\n  })\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/prompts.js",
    "content": "/**\n * Prompts\n *\n * NOTES\n * - Prompt views are created as-needed, and desroyed when not in use\n * - Prompt views are attached to individual BrowserView instances\n * - Prompt views are shown and hidden based on whether its owning BrowserView is visible\n */\n\nimport path from 'path'\nimport { BrowserView } from 'electron'\nimport * as rpc from 'pauls-electron-rpc'\nimport * as tabManager from '../tabs/manager'\nimport promptsRPCManifest from '../../rpc-manifests/prompts'\nimport { findWebContentsParentWindow } from '../../lib/electron'\nimport { getAddedWindowSettings } from '../windows'\nimport * as setupFlow from '../setup-flow'\n\n// globals\n// =\n\nconst MARGIN_SIZE = 10\nvar views = {} // map of {[tab.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n}\n\nexport function destroy (parentWindow) {\n  // destroy all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      views[tab.id].webContents.destroy()\n      delete views[tab.id]\n    }\n  }\n}\n\nexport function reposition (parentWindow) {\n  // reposition all under this window\n  for (let tab of tabManager.getAll(parentWindow)) {\n    if (tab.id in views) {\n      setBounds(views[tab.id], tab)\n    }\n  }\n}\n\nexport async function create (webContents, promptName, params = {}) {\n  var parentWindow = findWebContentsParentWindow(webContents)\n  var tab = tabManager.getActive(parentWindow)\n\n  // make sure a prompt window doesnt already exist\n  if (tab.id in views) {\n    return\n  }\n\n  if (!tab.isActive) {\n    await tab.awaitActive()\n  }\n\n  // create the view\n  var view = views[tab.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8',\n      preload: path.join(__dirname, 'fg', 'prompts', 'index.build.js')\n    }\n  })\n  view.promptName = promptName\n  view.tab = tab\n  if (tabManager.getActive(parentWindow).id === tab.id) {\n    parentWindow.addBrowserView(view)\n  }\n  setBounds(view, tab)\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Prompts window says:', message)\n  })\n  view.webContents.loadURL('beaker://prompts/')\n  await view.webContents.executeJavaScript(`showPrompt(\"${promptName}\", ${JSON.stringify(params)}); undefined`)\n  return view\n}\n\nexport function get (tab) {\n  return views[tab.id]\n}\n\nexport function show (tab) {\n  if (tab.id in views) {\n    var view = views[tab.id]\n    if (tab.browserWindow) {\n      tab.browserWindow.addBrowserView(view)\n      setBounds(view, tab)\n    }\n  }\n}\n\nexport function hide (tab) {\n  if (tab.id in views) {\n    if (tab.browserWindow) {\n      tab.browserWindow.removeBrowserView(views[tab.id])\n    }\n  }\n}\n\nexport function close (tab) {\n  if (tab.id in views) {\n    var view = views[tab.id]\n    if (tab.browserWindow) {\n      tab.browserWindow.removeBrowserView(view)\n    }\n    view.webContents.destroy()\n    delete views[tab.id]\n  }\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-prompts', promptsRPCManifest, {\n  async close () {\n    close(tabManager.findTab(this.sender))\n  },\n\n  async createTab (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    tabManager.create(win, url, {setActive: true, adjacentActive: true})\n  },\n\n  async loadURL (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    tabManager.getActive(win).loadURL(url)\n  }\n})\n\n// internal methods\n// =\n\nfunction getDefaultWidth (view) {\n  return 380\n}\n\nfunction getDefaultHeight (view) {\n  return 80\n}\n\nfunction setBounds (view, tab, {width, height} = {}) {\n  var parentBounds = tab.browserWindow.getContentBounds()\n  width = Math.min(width || getDefaultWidth(view), parentBounds.width - 20)\n  height = Math.min(height || getDefaultHeight(view), parentBounds.height - 20)\n  var y = getAddedWindowSettings(tab.browserWindow).isShellInterfaceHidden ? 10 : 95\n  view.setBounds({\n    x: parentBounds.width - width - (MARGIN_SIZE * 2),\n    y,\n    width: width + (MARGIN_SIZE * 2),\n    height: height + MARGIN_SIZE\n  })\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/shell-menus.js",
    "content": "/**\n * Shell Menus\n *\n * NOTES\n * - There can only ever be one Shell Menu view for a given browser window\n * - Shell Menu views are created with each browser window and then shown/hidden as needed\n * - The Shell Menu view contains the UIs for multiple menus and swaps between them as needed\n * - When unfocused, the Shell Menu view is hidden (it's meant to act as a popup menu)\n */\n\nimport path from 'path'\nimport Events from 'events'\nimport { BrowserView } from 'electron'\nimport * as rpc from 'pauls-electron-rpc'\nimport { createShellWindow } from '../windows'\nimport * as tabManager from '../tabs/manager'\nimport * as modals from './modals'\nimport { triggerMenuItemById } from '../window-menu'\nimport shellMenusRPCManifest from '../../rpc-manifests/shell-menus'\nimport { findWebContentsParentWindow } from '../../lib/electron'\n\n// globals\n// =\n\nconst IS_OSX = process.platform === 'darwin'\nconst MARGIN_SIZE = 10\nconst IS_RIGHT_ALIGNED = ['browser', 'bookmark', 'peers', 'share', 'site', 'donate']\nvar events = new Events()\nvar views = {} // map of {[parentWindow.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  var view = views[parentWindow.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8',\n      preload: path.join(__dirname, 'fg', 'shell-menus', 'index.build.js')\n    }\n  })\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Shell-Menus window says:', message)\n  })\n  view.webContents.loadURL('beaker://shell-menus/')\n}\n\nexport function destroy (parentWindow) {\n  if (get(parentWindow)) {\n    get(parentWindow).webContents.destroy()\n    delete views[parentWindow.id]\n  }\n}\n\nexport function get (parentWindow) {\n  return views[parentWindow.id]\n}\n\nexport function reposition (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    const setBounds = (b) => {\n      if (view.currentDimensions) {\n        Object.assign(b, view.currentDimensions)\n      } else {\n        adjustDimensions(b)\n      }\n      adjustPosition(b, view, parentWindow)\n      view.setBounds(b)\n    }\n    if (view.menuId === 'background-tray') {\n      setBounds({\n        x: IS_OSX ? 75 : 10,\n        y: 33,\n        width: 400,\n        height: 350\n      })\n    } else if (view.menuId === 'browser') {\n      setBounds({\n        x: 10,\n        y: 72,\n        width: 270,\n        height: 350\n      })\n    } else if (view.menuId === 'bookmark') {\n      setBounds({\n        x: view.boundsOpt.rightOffset,\n        y: 72,\n        width: 250,\n        height: 195\n      })\n    } else if (view.menuId === 'bookmark-edit') {\n      setBounds({\n        x: view.boundsOpt.left,\n        y: view.boundsOpt.top,\n        width: 250,\n        height: 195\n      })\n    } else if (view.menuId === 'donate') {\n      setBounds({\n        x: view.boundsOpt.rightOffset,\n        y: 72,\n        width: 350,\n        height: 90\n      })\n    } else if (view.menuId === 'share') {\n      setBounds({\n        x: view.boundsOpt.rightOffset,\n        y: 72,\n        width: 310,\n        height: 120\n      })\n    } else if (view.menuId === 'peers') {\n      setBounds({\n        x: view.boundsOpt.rightOffset,\n        y: 72,\n        width: 200,\n        height: 350\n      })\n    } else if (view.menuId === 'site') {\n      setBounds({\n        x: view.boundsOpt.rightOffset,\n        y: 72,\n        width: 250,\n        height: 350\n      })\n    }\n  }\n}\n\nexport async function toggle (parentWindow, menuId, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    if (view.isVisible) {\n      return hide(parentWindow)\n    } else {\n      return show(parentWindow, menuId, opts)\n    }\n  }\n}\n\nexport async function update (parentWindow, opts) {\n  var view = get(parentWindow)\n  if (view && view.isVisible) {\n    view.boundsOpt = opts && opts.bounds ? opts.bounds : view.boundsOpt\n    reposition(parentWindow)\n    var params = opts && opts.params ? opts.params : {}\n    await view.webContents.executeJavaScript(`updateMenu(${JSON.stringify(params)}); undefined`)\n  }\n}\n\nexport async function show (parentWindow, menuId, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    view.menuId = menuId\n    view.boundsOpt = opts && opts.bounds\n    parentWindow.addBrowserView(view)\n    reposition(parentWindow)\n    view.isVisible = true\n\n    var params = opts && opts.params ? opts.params : {}\n    await view.webContents.executeJavaScript(`openMenu('${menuId}', ${JSON.stringify(params)}); undefined`)\n    view.webContents.focus()\n\n    // await till hidden\n    await new Promise(resolve => {\n      events.once('hide', resolve)\n    })\n  }\n}\n\nexport function hide (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    view.webContents.executeJavaScript(`reset('${view.menuId}'); undefined`)\n    parentWindow.removeBrowserView(view)\n    view.currentDimensions = null\n    view.isVisible = false\n    events.emit('hide')\n  }\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-shell-menus', shellMenusRPCManifest, {\n  async close () {\n    hide(findWebContentsParentWindow(this.sender))\n  },\n\n  async createWindow (opts) {\n    createShellWindow(opts)\n  },\n\n  async createTab (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    hide(win) // always close the menu\n    tabManager.create(win, url, {setActive: true})\n  },\n\n  async createModal (name, opts) {\n    return modals.create(this.sender, name, opts)\n  },\n\n  async loadURL (url) {\n    var win = findWebContentsParentWindow(this.sender)\n    hide(win) // always close the menu\n    tabManager.getActive(win).loadURL(url)\n  },\n\n  async resizeSelf (dimensions) {\n    var win = findWebContentsParentWindow(this.sender)\n    var view = win ? views[win.id] : undefined\n    if (!view || !view.isVisible) return\n    adjustDimensions(dimensions)\n    view.currentDimensions = dimensions\n    reposition(findWebContentsParentWindow(this.sender))\n  },\n\n  async showInpageFind () {\n    var win = findWebContentsParentWindow(this.sender)\n    var tab = tabManager.getActive(win)\n    if (tab) tab.showInpageFind()\n  },\n\n  async triggerWindowMenuItemById (menu, id) {\n    return triggerMenuItemById(menu, id)\n  }\n})\n\n// internal methods\n// =\n\nfunction adjustPosition (bounds, view, parentWindow) {\n  if (IS_RIGHT_ALIGNED.includes(view.menuId)) {\n    let parentBounds = parentWindow.getContentBounds()\n    bounds.x = (parentBounds.width - bounds.width - bounds.x) + MARGIN_SIZE\n  } else {\n    bounds.x = bounds.x - MARGIN_SIZE\n  }\n}\n\nfunction adjustDimensions (bounds) {\n  bounds.width = bounds.width + (MARGIN_SIZE * 2),\n  bounds.height = bounds.height + MARGIN_SIZE\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/site-info.js",
    "content": "/**\n * Site Infos\n *\n * NOTES\n * - There can only ever be one Site Info view for a given browser window\n * - Site Info views are created with each browser window and then shown/hidden as needed\n * - When unfocused, the Site Info view is hidden (it's meant to act as a popup menu)\n */\n\nimport path from 'path'\nimport Events from 'events'\nimport { BrowserView } from 'electron'\nimport * as tabManager from '../tabs/manager'\n\n// globals\n// =\n\nconst MARGIN_SIZE = 10\nvar events = new Events()\nvar views = {} // map of {[parentWindow.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  var view = views[parentWindow.id] = new BrowserView({\n    webPreferences: {\n      preload: path.join(__dirname, 'fg', 'webview-preload', 'index.build.js'),\n      nodeIntegrationInSubFrames: true,\n      contextIsolation: true,\n      worldSafeExecuteJavaScript: false,\n      webviewTag: false,\n      sandbox: true,\n      defaultEncoding: 'utf-8',\n      nativeWindowOpen: true,\n      nodeIntegration: false,\n      scrollBounce: true,\n      navigateOnDragDrop: false\n    }\n  })\n  view.webContents.on('console-message', (e, level, message) => {\n    console.log('Site-Info window says:', message)\n  })\n  view.webContents.loadURL('beaker://site-info/')\n}\n\nexport function destroy (parentWindow) {\n  if (get(parentWindow)) {\n    get(parentWindow).webContents.destroy()\n    delete views[parentWindow.id]\n  }\n}\n\nexport function get (parentWindow) {\n  return views[parentWindow.id]\n}\n\nexport function reposition (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    const setBounds = (b) => {\n      // HACK workaround the lack of view.getBounds() -prf\n      if (view.currentBounds) {\n        b = view.currentBounds // use existing bounds\n      }\n      view.currentBounds = b // store new bounds\n      view.setBounds(adjustBounds(b))\n    }\n    setBounds({\n      x: view.boundsOpt ? view.boundsOpt.left : 170,\n      y: (view.boundsOpt ? view.boundsOpt.top : 67) + 5,\n      width: 420,\n      height: 350\n    })\n  }\n}\n\nexport function resize (parentWindow, bounds = {}) {\n  var view = get(parentWindow)\n  if (view && view.currentBounds) {\n    view.currentBounds.width = bounds.width || view.currentBounds.width\n    view.currentBounds.height = bounds.height || view.currentBounds.height\n    view.setBounds(adjustBounds(view.currentBounds))\n  }\n}\n\nexport function toggle (parentWindow, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    if (view.isVisible) {\n      return hide(parentWindow)\n    } else {\n      return show(parentWindow, opts)\n    }\n  }\n}\n\nexport async function show (parentWindow, opts) {\n  var view = get(parentWindow)\n  if (view) {\n    view.boundsOpt = opts && opts.bounds\n    parentWindow.addBrowserView(view)\n    reposition(parentWindow)\n    view.isVisible = true\n\n    var params = opts && opts.params ? opts.params : {}\n    params.url = tabManager.getActive(parentWindow).url\n    await view.webContents.executeJavaScript(`init(${JSON.stringify(params)}); undefined`)\n    view.webContents.focus()\n\n    // await till hidden\n    await new Promise(resolve => {\n      events.once('hide', resolve)\n    })\n  }\n}\n\nexport function hide (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    view.webContents.executeJavaScript(`reset(); undefined`)\n    parentWindow.removeBrowserView(view)\n    view.currentBounds = null\n    view.isVisible = false\n    events.emit('hide')\n  }\n}\n\n// internal methods\n// =\n\n/**\n * @description\n * Ajust the bounds for margin\n */\nfunction adjustBounds (bounds) {\n  return {\n    x: bounds.x - MARGIN_SIZE,\n    y: bounds.y,\n    width: bounds.width + (MARGIN_SIZE * 2),\n    height: bounds.height + MARGIN_SIZE\n  }\n}\n"
  },
  {
    "path": "app/bg/ui/subwindows/tab-switcher.js",
    "content": "/**\n * Tab Switchers\n *\n * NOTES\n * - There is one tab-switcher per BrowserWindow instance\n * - Switcher views are created with each browser window and then shown/hidden as needed\n */\n\nimport path from 'path'\nimport { BrowserView, BrowserWindow } from 'electron'\nimport * as tabManager from '../tabs/manager'\nimport * as wcTrust from '../../wc-trust'\n\n// constants\n// =\n\nconst VIEW_MARGIN = 10\nconst TAB_ENTRY_WIDTH = 120\nconst TAB_GAP = 10\nconst HEIGHT = 114 + (VIEW_MARGIN * 2)\n\n// globals\n// =\n\nvar views = {} // map of {[parentWindow.id] => BrowserView}\n\n// exported api\n// =\n\nexport function setup (parentWindow) {\n  var view = views[parentWindow.id] = new BrowserView({\n    webPreferences: {\n      defaultEncoding: 'utf-8'\n    }\n  })\n  view.webContents.loadFile(path.join(__dirname, 'fg', 'tab-switcher', 'index.html'))\n  wcTrust.setWcTrust(view.webContents, wcTrust.TRUST.TRUSTED)\n}\n\nexport function destroy (parentWindow) {\n  if (get(parentWindow)) {\n    get(parentWindow).webContents.destroy()\n    delete views[parentWindow.id]\n  }\n}\n\nexport function get (parentWindow) {\n  return views[parentWindow.id]\n}\n\nexport function reposition (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    var {width, height} = parentWindow.getContentBounds()\n    var numTabs = (view.tabs ? view.tabs.length : 0)\n\n    var viewWidth = (\n      (numTabs * TAB_ENTRY_WIDTH) // tab entry width\n      + ((numTabs - 1) * TAB_GAP) // tab entry grid-gap\n      + 20 // tab-switcher body padding\n      + (VIEW_MARGIN * 2) // tab-switcher body margin\n    )\n    var viewHeight = HEIGHT\n\n    if (viewWidth > (width - 100)) {\n      viewWidth = width - 100\n    }\n\n    view.setBounds({x: ((width / 2) - (viewWidth/ 2))|0, y: ((height / 2) - (viewHeight / 2))|0, width: viewWidth, height: viewHeight})\n  }\n}\n\nexport function show (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    // read the current tabs state\n    var defaultCurrentSelection = tabManager.getPreviousTabIndex(parentWindow)\n    var allTabs = tabManager.getAllAcrossWindows()\n    var tabInfos = []\n    for (let winId in allTabs) {\n      for (let tab of allTabs[winId]) {\n        tabInfos.push({\n          winId: +winId,\n          url: tab.url,\n          title: tab.title\n        })\n      }\n    }\n    view.tabs = tabInfos\n\n    // render\n    parentWindow.addBrowserView(view)\n    view.webContents.executeJavaScript(`\n      window.setTabs(${JSON.stringify(tabInfos)}, ${defaultCurrentSelection}); undefined\n    `)\n    reposition(parentWindow)\n  }\n}\n\nexport async function hide (parentWindow) {\n  var view = get(parentWindow)\n  if (view) {\n    var selectedTab = await view.webContents.executeJavaScript(`\n      window.getSelection()\n    `)\n    if (selectedTab && typeof selectedTab === 'object') {\n      let win = BrowserWindow.fromId(selectedTab.winId)\n      if (!win.isFocused()) {\n        win.focus()\n      }\n      tabManager.setActive(win, selectedTab.tabIndex)\n    }\n    parentWindow.removeBrowserView(view)\n  }\n}\n\nexport async function moveSelection (parentWindow, dir) {\n  var view = get(parentWindow)\n  if (view) {\n    await view.webContents.executeJavaScript(`\n      window.moveSelection(${dir}); undefined\n    `)\n  }\n}\n"
  },
  {
    "path": "app/bg/ui/tabs/manager.js",
    "content": "import { app, dialog, BrowserWindow, Menu, clipboard, ipcMain, screen } from 'electron'\nimport { EventEmitter } from 'events'\nimport _throttle from 'lodash.throttle'\nimport emitStream from 'emit-stream'\nimport _get from 'lodash.get'\nimport _pick from 'lodash.pick'\nimport * as rpc from 'pauls-electron-rpc'\nimport { Pane } from './pane'\nimport { PaneLayout } from './pane-layout'\nimport viewsRPCManifest from '../../rpc-manifests/views'\nimport * as zoom from './zoom'\nimport * as shellMenus from '../subwindows/shell-menus'\nimport * as locationBar from '../subwindows/location-bar'\nimport * as prompts from '../subwindows/prompts'\nimport * as permPrompt from '../subwindows/perm-prompt'\nimport * as overlay from '../subwindows/overlay'\nimport * as modals from '../subwindows/modals'\nimport * as siteInfo from '../subwindows/site-info'\nimport * as contextMenu from '../context-menu'\nimport * as windowMenu from '../window-menu'\nimport { createShellWindow, getAddedWindowSettings, toggleSidebarHidden } from '../windows'\nimport { examineLocationInput } from '../../../lib/urls'\nimport { findWebContentsParentWindow } from '../../lib/electron'\nimport * as sitedataDb from '../../dbs/sitedata'\nimport * as settingsDb from '../../dbs/settings'\nimport hyper from '../../hyper/index'\n\nconst X_POSITION = 0\nconst Y_POSITION = 75\n\n// globals\n// =\n\nvar tabIdCounter = 1\nvar activeTabs = {} // map of {[win.id]: Array<Tab>}\nvar backgroundTabs = [] // Array<Tab>\nvar preloadedNewTabs = {} // map of {[win.id]: Tab}\nvar lastSelectedTabIndex = {} // map of {[win.id]: Number}\nvar closedItems = {} // map of {[win.id]: Array<Object>}\nvar windowEvents = {} // mapof {[win.id]: EventEmitter}\nvar defaultUrl = 'beaker://desktop/'\n\n// classes\n// =\n\nclass Tab extends EventEmitter {\n  constructor (win, opts = {isPinned: false, isHidden: false, initialPanes: undefined, fromSnapshot: undefined}) {\n    super()\n    this.id = tabIdCounter++\n    this.browserWindow = win\n    this.panes = []\n    this.layout = new PaneLayout()\n    this.layout.on('changed', this.resize.bind(this))\n\n    definePrimaryPanePassthroughGetter(this, 'url')\n    definePrimaryPanePassthroughGetter(this, 'loadingURL')\n    definePrimaryPanePassthroughGetter(this, 'origin')\n    definePrimaryPanePassthroughGetter(this, 'title')\n    definePrimaryPanePassthroughGetter(this, 'webContents')\n    definePrimaryPanePassthroughGetter(this, 'browserView')\n    definePrimaryPanePassthroughFn(this, 'loadURL')\n    definePrimaryPanePassthroughFn(this, 'reload')\n    definePrimaryPanePassthroughFn(this, 'captureScreenshot')\n    definePrimaryPanePassthroughFn(this, 'showInpageFind')\n    definePrimaryPanePassthroughFn(this, 'hideInpageFind')\n    definePrimaryPanePassthroughFn(this, 'setInpageFindString')\n    definePrimaryPanePassthroughFn(this, 'moveInpageFind')\n    definePrimaryPanePassthroughFn(this, 'toggleLiveReloading')\n    definePrimaryPanePassthroughFn(this, 'stopLiveReloading')\n\n    // browser state\n    this.isHidden = opts.isHidden // is this tab hidden from the user? used for the preloaded tab and background tabs\n    this.isActive = false // is this the active tab in the window?\n    this.isPinned = Boolean(opts.isPinned) // is this tab pinned?\n    \n    // helper state\n    this.lastActivePane = undefined\n    this.activePaneResize = undefined // used to track pane resizing\n\n    if (opts.fromSnapshot) {\n      this.loadSnapshot(opts.fromSnapshot)\n    } else if (opts.initialPanes) {\n      for (let pane of opts.initialPanes) {\n        this.attachPane(pane)\n      }\n    }\n    if (this.panes.length === 0) {\n      // always have one pane\n      this.createPane()\n    }\n  }\n\n  get state () {\n    var state = this.primaryPane?.state || {}\n    return Object.assign(state, {\n      isActive: this.isActive,\n      isPinned: this.isPinned,\n      paneLayout: this.layout.state\n    })\n  }\n\n  getSessionSnapshot () {\n    return {\n      isPinned: this.isPinned,\n      stacks: this.layout.stacks.map(stack => ({\n        layoutWidth: stack.layoutWidth,\n        panes: stack.panes.map(pane => ({\n          url: pane.url || pane.loadingURL,\n          layoutHeight: pane.layoutHeight\n        }))\n      }))\n    }\n  }\n\n  loadSnapshot (snapshot) {\n    var stacks = Array.isArray(snapshot.stacks) ? snapshot.stacks : []\n    for (let stackSnapshot of stacks) {\n      let panes = Array.isArray(stackSnapshot.panes) ? stackSnapshot.panes : []\n      let stack = undefined\n      for (let paneSnapshot of panes) {\n        if (typeof paneSnapshot.url !== 'string') continue\n\n        var pane = new Pane(this)\n        this.panes.push(pane)\n        pane.setTab(this)\n\n        if (stack) {\n          let after = stack.panes[stack.panes.length - 1]\n          this.layout.addPaneToStack(stack, pane, {after, layoutHeight: paneSnapshot.layoutHeight, noRebalance: true})\n        } else {\n          let after = this.layout.stacks[this.layout.stacks.length - 1]\n          this.layout.addPane(pane, {after, layoutWidth: stackSnapshot.layoutWidth, layoutHeight: paneSnapshot.layoutHeight, noRebalance: true})\n          stack = this.layout.stacks[this.layout.stacks.length - 1]\n        }\n\n        pane.loadURL(paneSnapshot.url)\n      }\n    }\n    if (this.panes[0]) this.setActivePane(this.panes[0])\n    this.layout.rebalanceAll()\n  }\n\n  get activePane () {\n    return this.panes.find(p => p.isActive)\n  }\n\n  get primaryPane () {\n    var pane = this.activePane\n    while (pane?.attachedPane) pane = pane.attachedPane\n    return pane\n  }\n\n  get tabBounds () {\n    var addedWindowSettings = getAddedWindowSettings(this.browserWindow)\n    var x = X_POSITION\n    var y = Y_POSITION\n    var {width, height} = this.browserWindow.getContentBounds()\n    if (addedWindowSettings.isShellInterfaceHidden) {\n      x = 0\n      y = 0\n    } else if (addedWindowSettings.isSidebarHidden) {\n      x = 0\n    }\n    return {x, y: y, width: width - x, height: height - y}\n  }\n\n  getIPCSenderInfo (event) {\n    for (let pane of this.panes) {\n      let info = pane.getIPCSenderInfo(event)\n      if (info) return info\n    }\n    return {url: '', isMainFrame: false}\n  }\n\n  // management\n  // =\n\n  focus () {\n    if (this.activePane) {\n      this.activePane.focus()\n    } else if (this.panes.length) {\n      this.panes[0].focus()\n    }\n  }\n\n  resize () {\n    if (this.isHidden || !this.isActive) return\n    this.layout.computePanesBounds(this.tabBounds)\n    for (let pane of this.panes) {\n      pane.setBounds(this.layout.getBoundsForPane(pane))\n    }\n    emitUpdatePanesState(this)\n  }\n\n  activate () {\n    if (this.isHidden) return\n    this.isActive = true\n\n    for (let pane of this.panes) {\n      pane.show({noFocus: true})\n    }\n    this.activePane.focus()\n\n    prompts.show(this)\n    permPrompt.show(this)\n    modals.show(this)\n\n    this.resize()\n    this.emit('activated')\n  }\n\n  deactivate () {\n    if (this.isHidden) return\n    if (!this.browserWindow) return\n\n    for (let pane of this.panes) {\n      pane.hide()\n    }\n\n    if (this.isActive) {\n      shellMenus.hide(this.browserWindow) // this will close the location menu if it's open\n    }\n\n    prompts.hide(this)\n    permPrompt.hide(this)\n    modals.hide(this)\n    overlay.hide(this.browserWindow)\n    if (this.browserWindow) siteInfo.hide(this.browserWindow)\n\n    var wasActive = this.isActive\n    this.isActive = false\n    if (wasActive) {\n      this.emit('deactivated')\n    }\n  }\n\n  destroy () {\n    this.deactivate()\n    for (let pane of this.panes) {\n      pane.destroy()\n    }\n    permPrompt.close(this)\n    modals.close(this)\n    this.emit('destroyed')\n  }\n\n  awaitActive () {\n    return Promise.all(this.panes.map(p => p.awaitActive()))\n  }\n\n  transferWindow (targetWindow) {\n    this.deactivate()\n    prompts.close(this)\n    permPrompt.close(this)\n    modals.close(this)\n    this.browserWindow = targetWindow\n  }\n\n  toggleMuted () {\n    this.activePane.toggleMuted()\n    this.emitTabUpdateState(this.activePane)\n  }\n\n  // panes\n  // =\n\n  setActivePane (pane) {\n    if (this.activePane === pane) return\n    if (this.activePane) {\n      this.lastActivePane = this.activePane\n      this.activePane.isActive = false\n    }\n    pane.isActive = true\n    if (this.isActive) {\n      windowMenu.onSetCurrentLocation(this.browserWindow)\n    }\n    emitUpdateState(this)\n  }\n\n  createPane ({url, setActive, after, splitDir} = {url: undefined, setActive: false, after: undefined, splitDir: 'vert'}) {\n    var pane = new Pane(this)\n    this.attachPane(pane, {after, splitDir})\n    if (url) pane.loadURL(url)\n    if (setActive) {\n      this.setActivePane(pane)\n      pane.focus()\n    }\n    return pane\n  }\n\n  createOrFocusPaneByOrigin ({url}) {\n    var origin = toOrigin(url)\n    var existingPane = this.panes.find(p => p.origin === origin)\n    if (existingPane) {\n      setActive(existingPane)\n      existingPane.focus()\n    } else {\n      return this.createPane({url, setActive: true})\n    }\n  }\n\n  togglePaneByOrigin ({url}) {\n    var origin = toOrigin(url)\n    var existingPane = this.panes.find(p => p.origin === origin)\n    if (existingPane && this.panes.length > 1) {\n      return this.removePane(existingPane)\n    } else {\n      return this.createPane({url, setActive: true})\n    }\n  }\n\n  splitPane (origPane, splitDir = 'vert') {\n    var pane = this.createPane({after: origPane, splitDir})\n    pane.loadURL(origPane.url)\n  }\n\n  attachPane (pane, {after, splitDir} = {after: undefined, splitDir: 'vert'}) {\n    this.panes.push(pane)\n    pane.setTab(this)\n    if (!this.activePane) this.setActivePane(pane)\n    if (this.isActive) pane.show()\n\n    // default to vertical stacking once there are two columns\n    if (!after && this.layout.stacks.length > 1) {\n      let stack = this.layout.stacks[0]\n      after = stack.panes[stack.panes.length - 1]\n      splitDir = 'horz'\n    }\n\n    if (after) {\n      if (splitDir === 'vert') {\n        let stack = this.layout.findStack(after)\n        this.layout.addPane(pane, {after: stack})\n      } else {\n        var stack = this.layout.findStack(after)\n        this.layout.addPaneToStack(stack, pane, {after: after})\n      }\n    } else {\n      this.layout.addPane(pane)\n    }    \n  }\n\n  detachPane (pane) {\n    if (this.panes.length === 1) {\n      // this is going to close the tab\n      // save, in case the user wants to restore it\n      addTabToClosedItems(this)\n    }\n\n    let url = pane.url\n    pane.hide()\n    pane.setTab(undefined)\n\n    let i = this.panes.indexOf(pane)\n    if (i === -1) {\n      console.warn('Tried to remove pane that is not on tab', pane, this)\n      return\n    }\n    this.panes.splice(i, 1)\n    this.layout.removePane(pane)\n    for (let pane2 of this.panes) {\n      if (pane2.attachedPane === pane) {\n        pane2.setAttachedPane(undefined)\n      }\n    }\n    if (this.lastActivePane === pane) {\n      this.lastActivePane = undefined\n    }\n\n    if (this.panes.length === 0) {\n      // always have one pane\n      remove(this.browserWindow, this)\n    } else if (!this.activePane) {\n      // choose a new active pane\n      addPaneToClosedItems(this, url)\n      this.setActivePane(this.panes[0])\n    }\n  }\n\n  async removePane (pane) {\n    if (!(await runBeforeUnload(pane.webContents))) {\n      return\n    }\n\n    this.detachPane(pane)\n    pane.destroy()\n  }\n\n  getPaneById (id) {\n    return this.panes.find(p => p.id == id)\n  }\n\n  getLastActivePane () {\n    return this.lastActivePane\n  }\n\n  findPane (webContents) {\n    return this.panes.find(p => p.webContents === webContents)\n  }\n\n  findPaneByOrigin (url) {\n    let origin = toOrigin(url)\n    return this.panes.find(p => p.origin === origin)\n  }\n\n  activateAdjacentPane (dir) {\n    var pane = this.layout.getAdjacentPane(this.activePane, dir)\n    if (pane) this.setActivePane(pane)\n  }\n\n  movePane (pane, dir) {\n    this.layout.movePane(pane, dir)\n  }\n\n  setPaneResizeModeEnabled (enabled, paneId, edge) {\n    // NOTE\n    // this works by tracking the mouse move by increments of 1% of the bounds\n    // every time the mouse moves by the # of pixels in 1% of the bound,\n    // the pane is resized by that %\n    // -prf\n    if (enabled) {\n      if (this.activePaneResize) return\n      let pane = this.getPaneById(paneId)\n      if (!pane) return\n\n      // always adjust using the bottom or right edge of panes\n      if (edge === 'top') pane = this.layout.getAdjacentPane(pane, 'up')\n      if (edge === 'left') pane = this.layout.getAdjacentPane(pane, 'left')\n      if (!pane) return\n\n      // track if the mouse goes outside the window\n      let winBounds = this.browserWindow.getBounds()\n      let isOutsideBounds = (pt) => (\n        pt.x < winBounds.x\n        || pt.y < winBounds.y\n        || pt.x > (winBounds.x + winBounds.width)\n        || pt.y > (winBounds.y + winBounds.height)\n      )\n\n      // track the mouse movement\n      let tabBounds = this.tabBounds\n      let pxInPct\n      if (edge === 'top' || edge === 'bottom') {\n        pxInPct = Math.round(tabBounds.height / 100)\n      } else {\n        pxInPct = Math.round(tabBounds.width / 100)\n      }\n      let startPt = screen.getCursorScreenPoint()\n      let lastDiff = 0\n\n      // hide all panes during drag\n      // this is MAINLY so that we can register the mouseup, which\n      // the browserviews interrupt our shell-window from receiving\n      // but it also improves perf\n      for (let pane of this.panes) {\n        pane.hide()\n      }\n      this.browserWindow.webContents.focus()\n\n      // poll the mouse cursor every 15ms\n      this.activePaneResize = {\n        interval: setInterval(() => {\n          var pt = screen.getCursorScreenPoint()\n          if (isOutsideBounds(pt)) {\n            // mouse went outside window\n            return this.setPaneResizeModeEnabled(false)\n          }\n\n          if (edge === 'top' || edge === 'bottom') {\n            let diff = Math.round((pt.y - startPt.y) / pxInPct)\n            if (diff !== lastDiff) {\n              this.layout.changePaneHeight(pane, diff - lastDiff)\n              lastDiff = diff\n              this.resize()\n            }\n          } else {\n            let diff = Math.round((pt.x - startPt.x) / pxInPct)\n            if (diff !== 0) {\n              this.layout.changePaneWidth(pane, diff - lastDiff)\n              lastDiff = diff\n              this.resize()\n            }\n          }\n        }, 15),\n      }\n    } else {\n      if (!this.activePaneResize) return\n      clearInterval(this.activePaneResize.interval)\n      this.activePaneResize = undefined\n\n      // reshow our panes\n      for (let pane of this.panes) {\n        pane.show({noFocus: true})\n        pane.setBounds(this.layout.getBoundsForPane(pane))\n      }\n      triggerSessionSnapshot(this.browserWindow)\n    }\n  }\n\n  openPaneMenu (paneId) {\n    let pane = this.getPaneById(paneId)\n    if (!pane) return\n    var webContents = pane.webContents\n    var tab = this\n\n    var menuItems = []\n    menuItems.push(contextMenu.createMenuItem('split-pane-vert', {webContents, tab}))\n    menuItems.push(contextMenu.createMenuItem('split-pane-horz', {webContents, tab}))\n    if (contextMenu.shouldShowMenuItem('move-pane', {tab})) {\n      menuItems.push(contextMenu.createMenuItem('move-pane', {webContents, tab}))\n    }\n    menuItems.push({type: 'separator'})\n    menuItems.push(contextMenu.createMenuItem('close-pane', {webContents, tab}))\n    var menu = Menu.buildFromTemplate(menuItems)\n    let bounds = this.layout.getBoundsForPane(pane)\n    menu.popup({\n      x: bounds.x,\n      y: bounds.y + bounds.height - 20\n    })\n  }\n\n  openAttachMenu (paneId) {\n    let pane = this.getPaneById(paneId)\n    if (!pane) return\n\n    var menuItems = []\n    if (pane.attachedPane) {\n      menuItems.push({\n        label: `Detach from ${pane.attachedPane.title}`,\n        click: () => {\n          pane.setAttachedPane(undefined)\n        }\n      })\n    }\n    if (menuItems.length === 0) {\n      this.panes.forEach(pane2 => {\n        if (pane2 !== pane) {\n          menuItems.push({\n            label: `Attach to ${pane2.title}`,\n            click: () => {\n              pane.setAttachedPane(pane2)\n            }\n          })\n        }\n      })\n    }\n    var menu = Menu.buildFromTemplate(menuItems)\n    menu.popup()\n  }\n\n  // state fetching\n  // =\n\n  // helper called by UIs to pull latest state if a change event has occurred\n  // eg called by the bookmark systems after the bookmark state has changed\n  async refreshState () {\n    await Promise.all(this.panes.map(p => p.refreshState()))\n  }\n\n  // events\n  // =\n\n  emitTabUpdateState (pane) {\n    if (this.isHidden || !this.browserWindow) return\n    // if (!pane.isActive) return\n    emitUpdateState(this)\n  }\n\n  emitPaneUpdateState () {\n    if (this.isHidden || !this.browserWindow) return\n    emitUpdatePanesState(this)\n  }\n\n  createTab (url, opts) {\n    create(this.browserWindow, url, opts)\n  }\n}\n\n// exported api\n// =\n\nexport async function setup () {\n  defaultUrl = String(await settingsDb.get('new_tab'))\n  settingsDb.on('set:new_tab', newValue => {\n    defaultUrl = newValue\n\n    // reset preloaded tabs since they are now on the wrong URL\n    for (let k in preloadedNewTabs) {\n      preloadedNewTabs[k].destroy()\n    }\n    preloadedNewTabs = {}\n  })\n\n  // listen for webContents messages\n  ipcMain.on('BEAKER_SCRIPTCLOSE_SELF', e => {\n    var tab = findTab(e.sender)\n    if (tab) {\n      var pane = tab.findPane(e.sender)\n      if (pane) tab.removePane(pane)\n    }\n    e.returnValue = false\n  })\n  ipcMain.on('BEAKER_WC_FOCUSED', e => {\n    // when a pane is focused, we want to set it as the\n    // active pane of its tab\n    for (let winId in activeTabs) {\n      for (let tab of activeTabs[winId]) {\n        var pane = tab.findPane(e.sender)\n        if (pane) {\n          if (tab.activePane !== pane) {\n            tab.setActivePane(pane)\n          }\n          return\n        }\n      }\n    }\n  })\n\n  // track daemon connectivity\n  hyper.daemon.on('daemon-restored', () => emitReplaceStateAllWindows())\n  hyper.daemon.on('daemon-stopped', () => emitReplaceStateAllWindows())\n\n  // track peer-counts\n  function iterateTabs (cb) {\n    for (let winId in activeTabs) {\n      for (let tab of activeTabs[winId]) {\n        cb(tab)\n      }\n    }\n  }\n  hyper.drives.on('updated', ({details}) => {\n    iterateTabs(tab => {\n      if (tab.driveInfo && tab.driveInfo.url === details.url) {\n        tab.refreshState()\n      }\n    })\n  })\n}\n\nexport function getAll (win) {\n  win = getTopWindow(win)\n  return activeTabs[win.id] || []\n}\n\nexport function getAllAcrossWindows () {\n  return activeTabs\n}\n\nexport function getByIndex (win, index) {\n  win = getTopWindow(win)\n  if (index === 'active') return getActive(win)\n  return getAll(win)[index]\n}\n\nexport function getIndexOfTab (win, tab) {\n  win = getTopWindow(win)\n  return getAll(win).indexOf(tab)\n}\n\nexport function getAllPinned (win) {\n  win = getTopWindow(win)\n  return getAll(win).filter(p => p.isPinned)\n}\n\nexport function getActive (win) {\n  win = getTopWindow(win)\n  return getAll(win).find(tab => tab.isActive)\n}\n\nexport function findTab (webContents) {\n  for (let winId in activeTabs) {\n    for (let tab of activeTabs[winId]) {\n      if (tab.findPane(webContents)) {\n        return tab\n      }\n    }\n  }\n  for (let tab of backgroundTabs) {\n    if (tab.findPane(webContents)) {\n      return tab\n    }\n  }\n}\n\nexport function findContainingWindow (webContents) {\n  for (let winId in activeTabs) {\n    for (let v of activeTabs[winId]) {\n      if (v.findPane(webContents)) {\n        return v.browserWindow\n      }\n    }\n  }\n  for (let winId in preloadedNewTabs) {\n    if (preloadedNewTabs[winId].findPane(webContents)) {\n      return preloadedNewTabs[winId].browserWindow\n    }\n  }\n}\n\nexport function create (\n    win,\n    url,\n    opts = {\n      setActive: false,\n      setActiveBySettings: false,\n      isPinned: false,\n      focusLocationBar: false,\n      adjacentActive: false,\n      tabIndex: undefined,\n      initialPanes: undefined,\n      fromSnapshot: undefined,\n      addedPaneUrls: undefined\n    }\n  ) {\n  url = url || defaultUrl\n  if (url.startsWith('devtools://')) {\n    return // dont create tabs for this\n  }\n  win = getTopWindow(win)\n  var tabs = activeTabs[win.id] = activeTabs[win.id] || []\n\n  var tab\n  var preloadedNewTab = preloadedNewTabs[win.id]\n  var loadWhenReady = false\n  if (!opts.initialPanes && !opts.fromSnapshot && url === defaultUrl && !opts.isPinned && preloadedNewTab) {\n    // use the preloaded tab\n    tab = preloadedNewTab\n    tab.isHidden = false // no longer hidden\n    preloadedNewTab = preloadedNewTabs[win.id] = null\n  } else {\n    // create a new tab\n    tab = new Tab(win, {isPinned: opts.isPinned, initialPanes: opts.initialPanes, fromSnapshot: opts.fromSnapshot})\n    loadWhenReady = true\n  }\n\n  // add to active tabs\n  if (opts.isPinned) {\n    tabs.splice(indexOfLastPinnedTab(win), 0, tab)\n  } else {\n    let tabIndex = (typeof opts.tabIndex !== 'undefined' && opts.tabIndex !== -1) ? opts.tabIndex : undefined\n    if (opts.adjacentActive) {\n      let active = getActive(win)\n      let lastPinIndex = indexOfLastPinnedTab(win)\n      tabIndex = active ? tabs.indexOf(active) : undefined\n      if (tabIndex === -1) tabIndex = undefined\n      else if (tabIndex < lastPinIndex) tabIndex = lastPinIndex\n      else tabIndex++\n    }\n    if (typeof tabIndex !== 'undefined') {\n      tabs.splice(tabIndex, 0, tab)\n    } else {\n      tabs.push(tab)\n    }\n  }\n  if (loadWhenReady && !opts.initialPanes && !opts.fromSnapshot) {\n    // NOTE\n    // `loadURL()` triggers some events (eg app.on('web-contents-created'))\n    // which need to be handled *after* the tab is added to the listing\n    // thus this `loadWhenReady` logic\n    // -prf\n    tab.loadURL(url)\n  }\n\n  // make active if requested, or if none others are\n  let shouldSetActive = opts.setActive\n  if (opts.setActiveBySettings) {\n    shouldSetActive = Boolean(Number(settingsDb.getCached('new_tabs_in_foreground')))\n  }\n  if (shouldSetActive || !getActive(win)) {\n    setActive(win, tab)\n  }\n  emitReplaceState(win)\n\n  if (opts.focusLocationBar) {\n    win.webContents.send('command', 'focus-location')\n  }\n\n  if (opts.addedPaneUrls) {\n    for (let addedUrl of opts.addedPaneUrls) {\n      tab.createPane({url: addedUrl})\n    }\n  }\n\n  // create a new preloaded tab if needed\n  if (!preloadedNewTab) {\n    createPreloadedNewTab(win)\n  }\n\n  return tab\n}\n\nexport function createBg (url, opts = {fromSnapshot: undefined}) {\n  var tab = new Tab(undefined, {isHidden: true, fromSnapshot: opts.fromSnapshot})\n  if (url && !opts.fromSnapshot) tab.loadURL(url)\n  backgroundTabs.push(tab)\n  app.emit('custom-background-tabs-update', backgroundTabs)\n  for (let win of BrowserWindow.getAllWindows()) {\n    emitReplaceState(win)\n  }\n}\n\nexport async function minimizeToBg (win, tab) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  var i = tabs.indexOf(tab)\n  if (i == -1) {\n    return console.warn('tabs/manager minimize() called for missing tab', tab)\n  }\n\n  // do minimize animation\n  win.webContents.send('command', 'minimize-to-bg-anim')\n\n  // set new active if that was\n  if (tab.isActive && tabs.length > 1) {\n    setActive(win, tabs[i + 1] || tabs[i - 1])\n  }\n\n  // move to background\n  tabs.splice(i, 1)\n  tab.deactivate()\n  backgroundTabs.push(tab)\n  app.emit('custom-background-tabs-update', backgroundTabs)\n\n  tab.isPinned = false\n  tab.isHidden = true\n  tab.browserWindow = undefined\n\n  // create a new empty tab if that was the last one\n  if (tabs.length === 0) return create(win, undefined, {setActive: true})\n  emitReplaceState(win)\n}\n\nexport async function restoreBgTabByIndex (win, index) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  \n  var tab = backgroundTabs[index]\n  if (!tab) return\n  backgroundTabs.splice(index, 1)\n  app.emit('custom-background-tabs-update', backgroundTabs)\n\n  if (tab.isPinned) {\n    tabs.splice(indexOfLastPinnedTab(win), 0, tab)\n  } else {\n    tabs.push(tab)\n  }\n  tab.isHidden = false\n  tab.browserWindow = win\n  setActive(win, tab)\n  emitReplaceState(win)\n}\n\nexport async function remove (win, tab) {\n  win = getTopWindow(win)\n  var wasActive = tab.isActive\n\n  var tabs = getAll(win)\n  var i = tabs.indexOf(tab)\n  if (i == -1) {\n    return console.warn('tabs/manager remove() called for missing tab', tab)\n  }\n\n  for (let pane of tab.panes) {\n    if (!(await runBeforeUnload(pane.webContents))) {\n      return\n    }\n  }\n\n  // save, in case the user wants to restore it\n  if (tab.panes.length) {\n    addTabToClosedItems(tab)\n  }\n\n  tabs.splice(i, 1)\n  tab.destroy()\n\n  // set new active if that was\n  if (tabs.length >= 1 && wasActive) {\n    setActive(win, tabs[i] || tabs[i - 1])\n  }\n\n  // close the window if that was the last tab\n  if (tabs.length === 0) return win.close()\n  emitReplaceState(win)\n}\n\nexport async function destroyAll (win) {\n  for (let t of (activeTabs[win.id] || [])) {\n    t.destroy()\n  }\n  delete activeTabs[win.id]\n}\n\nexport async function removeAllExcept (win, tab) {\n  win = getTopWindow(win)\n  var tabs = getAll(win).slice() // .slice() to duplicate the list\n  for (let t of tabs) {\n    if (t !== tab) {\n      await remove(win, t)\n    }\n  }\n}\n\nexport async function removeAllToRightOf (win, tab) {\n  win = getTopWindow(win)\n  var toRemove = []\n  var tabs = getAll(win)\n  let index = tabs.indexOf(tab)\n  for (let i = 0; i < tabs.length; i++) {\n    if (i > index) toRemove.push(tabs[i])\n  }\n  for (let t of toRemove) {\n    await remove(win, t)\n  }\n}\n\nexport function setActive (win, tab) {\n  win = getTopWindow(win)\n  if (typeof tab === 'number') {\n    tab = getByIndex(win, tab)\n  }\n  if (!tab) return\n\n  // deactivate the old tab\n  var active = getActive(win)\n  if (active && active === tab) {\n    return\n  }\n\n  tab.activate()\n  if (active) {\n    active.deactivate()\n  }\n  lastSelectedTabIndex[win.id] = getAll(win).indexOf(active)\n\n  windowMenu.onSetCurrentLocation(win)\n  emitReplaceState(win)\n}\n\nexport function resize (win) {\n  var active = getActive(win)\n  if (active) active.resize()\n}\n\nexport function initializeWindowFromSnapshot (win, snapshot) {\n  win = getTopWindow(win)\n  for (let page of snapshot) {\n    if (typeof page === 'string') {\n      // legacy compat- pages were previously just url strings\n      create(win, page)\n    } else {\n      create(win, null, {\n        isPinned: page.isPinned,\n        fromSnapshot: page\n      })\n    }\n  }\n}\n\nexport function initializeBackgroundFromSnapshot (snapshot) {\n  for (let tab of snapshot.backgroundTabs) {\n    if (typeof tab === 'string') {\n      // legacy compat- pages were previously just url strings\n      createBg(tab)\n    } else {\n      createBg(null, {\n        fromSnapshot: tab\n      })\n    }\n  }\n}\n\nexport function takeSnapshot (win) {\n  win = getTopWindow(win)\n  return getAll(win).map(tab => tab.getSessionSnapshot())\n}\n\nexport function triggerSessionSnapshot (win) {\n  win.emit('custom-pages-updated', takeSnapshot(win))\n}\n\nexport async function popOutTab (tab) {\n  var newWin = createShellWindow()\n  await new Promise(r => newWin.once('custom-pages-ready', r))\n  transferTabToWindow(tab, newWin)\n  removeAllExcept(newWin, tab)\n}\n\nexport function transferTabToWindow (tab, targetWindow) {\n  var sourceWindow = tab.browserWindow\n\n  // find\n  var sourceTabs = getAll(sourceWindow)\n  var i = sourceTabs.indexOf(tab)\n  if (i == -1) {\n    return console.warn('tabs/manager transferTabToWindow() called for missing tab', tab)\n  }\n\n  // remove\n  var shouldCloseSource = false\n  sourceTabs.splice(i, 1)\n  if (sourceTabs.length === 0) {\n    shouldCloseSource = true\n  } else {\n    if (tab.isActive) {\n      // setActive(sourceWindow, sourceTabs[i + 1] || sourceTabs[i - 1])\n      changeActiveToLast(sourceWindow)\n    }\n    emitReplaceState(sourceWindow)\n  }\n\n  // transfer to the new window\n  tab.transferWindow(targetWindow)\n  var targetTabs = getAll(targetWindow)\n  if (tab.isPinned) {\n    targetTabs.splice(indexOfLastPinnedTab(targetWindow), 0, tab)\n  } else {\n    targetTabs.push(tab)\n  }\n  emitReplaceState(targetWindow)\n\n  if (shouldCloseSource) {\n    sourceWindow.close()\n  }\n}\n\nexport function togglePinned (win, tab) {\n  win = getTopWindow(win)\n  // move tab to the \"end\" of the pinned tabs\n  var tabs = getAll(win)\n  var oldIndex = tabs.indexOf(tab)\n  var newIndex = indexOfLastPinnedTab(win)\n  if (oldIndex < newIndex) newIndex--\n  tabs.splice(oldIndex, 1)\n  tabs.splice(newIndex, 0, tab)\n\n  // update tab state\n  tab.isPinned = !tab.isPinned\n  emitReplaceState(win)\n}\n\nexport async function loadPins (win) {\n  // NOTE\n  // this is the legacy code\n  // it's here to load the old pins then remove the entry\n  // pins are now stored in session state\n  win = getTopWindow(win)\n  var json = await settingsDb.get('pinned_tabs')\n  try { JSON.parse(json).forEach(url => create(win, url, {isPinned: true})) }\n  catch (e) {}\n  await settingsDb.set('pinned_tabs', undefined)\n}\n\nexport function reopenLastRemoved (win) {\n  win = getTopWindow(win)\n  var snap = (closedItems[win.id] || []).pop()\n  if (snap) {\n    if (snap.isTab) {\n      setActive(win, create(win, null, {fromSnapshot: snap}))\n    } else if (snap.isPane) {\n      snap.tab.createPane({url: snap.url})\n      setActive(snap.tab.browserWindow, snap.tab)\n    }\n  }\n}\n\nexport function reorder (win, oldIndex, newIndex) {\n  win = getTopWindow(win)\n  if (oldIndex === newIndex) {\n    return\n  }\n  var tabs = getAll(win)\n  var tab = getByIndex(win, oldIndex)\n  tabs.splice(oldIndex, 1)\n  tabs.splice(newIndex, 0, tab)\n  emitReplaceState(win)\n}\n\nexport function changeActiveBy (win, offset) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  var active = getActive(win)\n  if (tabs.length > 1) {\n    var i = tabs.indexOf(active)\n    if (i === -1) { return console.warn('Active page is not in the pages list! THIS SHOULD NOT HAPPEN!') }\n\n    i += offset\n    if (i < 0) i = tabs.length - 1\n    if (i >= tabs.length) i = 0\n\n    setActive(win, tabs[i])\n  }\n}\n\nexport function changeActiveTo (win, index) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  if (index >= 0 && index < tabs.length) {\n    setActive(win, tabs[index])\n  }\n}\n\nexport function changeActiveToLast (win) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  setActive(win, tabs[tabs.length - 1])\n}\n\nexport function getPreviousTabIndex (win) {\n  var index = lastSelectedTabIndex[win.id]\n  if (typeof index !== 'number') return 0\n  if (index < 0 || index >= getAll(win).length) return 0\n  return index\n}\n\nexport function openOrFocusDownloadsPage (win) {\n  win = getTopWindow(win)\n  var tabs = getAll(win)\n  var downloadsTab = tabs.find(v => v.url.startsWith('beaker://library/downloads'))\n  if (!downloadsTab) {\n    downloadsTab = create(win, 'beaker://library/downloads')\n  }\n  setActive(win, downloadsTab)\n}\n\nexport function emitReplaceStateAllWindows () {\n  for (let win of BrowserWindow.getAllWindows()) {\n    emitReplaceState(win)\n  }\n}\n\nexport function emitReplaceState (win) {\n  win = getTopWindow(win)\n  var state = {\n    tabs: getWindowTabState(win),\n    isFullscreen: win.isFullScreen(),\n    isShellInterfaceHidden: getAddedWindowSettings(win).isShellInterfaceHidden,\n    isSidebarHidden: getAddedWindowSettings(win).isSidebarHidden,\n    isDaemonActive: hyper.daemon.isActive(),\n    hasBgTabs: backgroundTabs.length > 0\n  }\n  emit(win, 'replace-state', state)\n  triggerSessionSnapshot(win)\n}\n\n// rpc api\n// =\n\nrpc.exportAPI('background-process-views', viewsRPCManifest, {\n  createEventStream () {\n    return emitStream(getEvents(getWindow(this.sender)))\n  },\n\n  async refreshState (tab) {\n    var win = getWindow(this.sender)\n    tab = getByIndex(win, tab)\n    if (tab) {\n      tab.refreshState()\n    }\n  },\n\n  async getState () {\n    var win = getWindow(this.sender)\n    return getWindowTabState(win)\n  },\n\n  async getTabState (tab, opts) {\n    var win = getWindow(this.sender)\n    tab = getByIndex(win, tab)\n    if (tab) {\n      var state = Object.assign({}, tab.state)\n      if (opts) {\n        if (opts.driveInfo) state.driveInfo = tab.primaryPane.driveInfo\n        if (opts.sitePerms) state.sitePerms = await sitedataDb.getPermissions(tab.url)\n      }\n      return state\n    }\n  },\n\n  async getNetworkState (tab, opts) {\n    var win = getWindow(this.sender)\n    tab = getByIndex(win, tab)\n    if (tab && tab.primaryPane && tab.primaryPane.driveInfo) {\n      let drive = hyper.drives.getDrive(tab.primaryPane.driveInfo.key)\n      if (drive) {\n        return {\n          peers: drive.session.drive.metadata.peers.map(p => ({type: p.type, remoteAddress: p.remoteAddress}))\n        }\n      }\n    }\n  },\n\n  async getBackgroundTabs () {\n    return backgroundTabs.map(tab => ({\n      url: tab.url,\n      title: tab.title\n    }))\n  },\n\n  async createTab (url, opts = {focusLocationBar: false, setActive: false}) {\n    var win = getWindow(this.sender)\n    var tab = create(win, url, opts)\n    return getAll(win).indexOf(tab)\n  },\n\n  async createPane (index, url) {\n    var tab = getByIndex(getWindow(this.sender), index)\n    return tab.createPane({url, setActive: true})\n  },\n\n  async togglePaneByOrigin (index, url) {\n    var tab = getByIndex(getWindow(this.sender), index)\n    return tab.togglePaneByOrigin({url})\n  },\n\n  async loadURL (index, url) {\n    if (url === '$new_tab') {\n      url = defaultUrl\n    }\n    getByIndex(getWindow(this.sender), index)?.primaryPane?.loadURL(url)\n  },\n\n  async minimizeTab (index) {\n    var win = getWindow(this.sender)\n    minimizeToBg(win, getByIndex(win, index))\n  },\n\n  async closeTab (index) {\n    var win = getWindow(this.sender)\n    remove(win, getByIndex(win, index))\n  },\n\n  async setActiveTab (index) {\n    var win = getWindow(this.sender)\n    setActive(win, getByIndex(win, index))\n  },\n\n  async reorderTab (oldIndex, newIndex) {\n    var win = getWindow(this.sender)\n    reorder(win, oldIndex, newIndex)\n  },\n\n  restoreBgTab (index) {\n    if (!backgroundTabs[index]) return\n    var win = getWindow(this.sender)\n    restoreBgTabByIndex(win, index)\n  },\n\n  closeBgTab (index) {\n    if (!backgroundTabs[index]) return\n    backgroundTabs[index].destroy()\n    backgroundTabs.splice(index, 1)\n  },\n\n  async showTabContextMenu (index) {\n    var win = getWindow(this.sender)\n    var tab = getByIndex(win, index)\n    var menu = Menu.buildFromTemplate([\n      { label: (tab.isPinned) ? 'Unpin Tab' : 'Pin Tab', click: () => togglePinned(win, tab) },\n      { label: 'Pop Out Tab', click: () => popOutTab(tab) },\n      { label: 'Duplicate Tab', click: () => create(win, tab.url, {adjacentActive: true}) },\n      { label: (tab.isAudioMuted) ? 'Unmute Tab' : 'Mute Tab', click: () => tab.toggleMuted() },\n      { label: 'Minimize to Background', click: () => minimizeToBg(win, tab) },\n      { type: 'separator' },\n      { label: 'Close Tab', click: () => remove(win, tab) },\n      { label: 'Close Other Tabs', click: () => removeAllExcept(win, tab) },\n      { label: 'Close Tabs to the Right', click: () => removeAllToRightOf(win, tab) },\n      { type: 'separator' },\n      { label: 'New Tab', click: () => create(win, null, {setActive: true}) },\n      { label: 'Reopen Closed Tab', click: () => reopenLastRemoved(win) }\n    ])\n    menu.popup()\n  },\n\n  async showLocationBarContextMenu (index) {\n    var win = getWindow(this.sender)\n    var tab = getByIndex(win, index)\n    var clipboardContent = clipboard.readText()\n    var clipInfo = examineLocationInput(clipboardContent)\n    var menu = Menu.buildFromTemplate([\n      { label: 'Cut', role: 'cut' },\n      { label: 'Copy', role: 'copy' },\n      { label: 'Paste', role: 'paste' },\n      { label: `Paste and ${clipInfo.isProbablyUrl ? 'Go' : 'Search'}`, click: onPasteAndGo }\n    ])\n    menu.popup({window: win})\n\n    function onPasteAndGo () {\n      // close the menu\n      shellMenus.hide(win)\n      win.webContents.send('command', 'unfocus-location')\n\n      // load the URL\n      var url = clipInfo.isProbablyUrl ? clipInfo.vWithProtocol : clipInfo.vSearch\n      tab.loadURL(url)\n    }\n  },\n\n  async goBack (index) {\n    getByIndex(getWindow(this.sender), index)?.primaryPane?.webContents.goBack()\n  },\n\n  async goForward (index) {\n    getByIndex(getWindow(this.sender), index)?.primaryPane?.webContents.goForward()\n  },\n\n  async stop (index) {\n    getByIndex(getWindow(this.sender), index)?.primaryPane?.webContents.stop()\n  },\n\n  async reload (index) {\n    getByIndex(getWindow(this.sender), index)?.primaryPane?.webContents.reload()\n  },\n\n  async resetZoom (index) {\n    zoom.zoomReset(getByIndex(getWindow(this.sender), index))\n  },\n\n  async toggleLiveReloading (index, enabled) {\n    getByIndex(getWindow(this.sender), index).toggleLiveReloading(enabled)\n  },\n\n  async toggleDevTools (index) {\n    getByIndex(getWindow(this.sender), index).webContents.toggleDevTools()\n  },\n\n  async print (index) {\n    getByIndex(getWindow(this.sender), index).webContents.print()\n  },\n\n  async showInpageFind (index) {\n    getByIndex(getWindow(this.sender), index).showInpageFind()\n  },\n\n  async hideInpageFind (index) {\n    getByIndex(getWindow(this.sender), index).hideInpageFind()\n  },\n\n  async setInpageFindString (index, str, dir) {\n    getByIndex(getWindow(this.sender), index).setInpageFindString(str, dir)\n  },\n\n  async moveInpageFind (index, dir) {\n    getByIndex(getWindow(this.sender), index).moveInpageFind(dir)\n  },\n\n  async showLocationBar (opts) {\n    await locationBar.show(getWindow(this.sender), opts)\n  },\n\n  async hideLocationBar () {\n    await locationBar.hide(getWindow(this.sender))\n  },\n\n  async runLocationBarCmd (cmd, opts) {\n    return locationBar.runCmd(getWindow(this.sender), cmd, opts)\n  },\n\n  async toggleSidebarHidden () {\n    toggleSidebarHidden(getWindow(this.sender))\n  },\n\n  async showMenu (id, opts) {\n    await shellMenus.show(getWindow(this.sender), id, opts)\n  },\n\n  async toggleMenu (id, opts) {\n    await shellMenus.toggle(getWindow(this.sender), id, opts)\n  },\n\n  async updateMenu (opts) {\n    await shellMenus.update(getWindow(this.sender), opts)\n  },\n\n  async toggleSiteInfo (opts) {\n    await siteInfo.toggle(getWindow(this.sender), opts)\n  },\n\n  async focusShellWindow () {\n    getWindow(this.sender).webContents.focus()\n  },\n\n  async focusPage () {\n    getActive(this.sender).focus()\n  },\n  \n  async setPaneResizeModeEnabled (enabled, paneId, edge) {\n    getActive(getWindow(this.sender)).setPaneResizeModeEnabled(enabled, paneId, edge)\n  },\n\n  async openPaneMenu (paneId) {\n    getActive(getWindow(this.sender)).openPaneMenu(paneId)\n  },\n\n  async openAttachMenu (paneId) {\n    getActive(getWindow(this.sender)).openAttachMenu(paneId)\n  }\n})\n\n// internal methods\n// =\n\nfunction emitUpdateState (tab) {\n  if (!tab.browserWindow) return\n  var win = getTopWindow(tab.browserWindow)\n  var index = typeof tab === 'number' ? tab : getAll(win).indexOf(tab)\n  if (index === -1) {\n    console.warn('WARNING: attempted to update state of a tab not on the window')\n    return\n  }\n  emit(win, 'update-state', {index, state: tab.state})\n  win.emit('custom-pages-updated', takeSnapshot(win))\n}\n\nfunction emitUpdatePanesState (tab) {\n  var win = getTopWindow(tab.browserWindow)\n  var index = typeof tab === 'number' ? tab : getAll(win).indexOf(tab)\n  if (index === -1) return\n  emit(win, 'update-panes-state', {index, paneLayout: tab.layout.state})\n}\n\nfunction getWindow (sender) {\n  return findWebContentsParentWindow(sender)\n}\n\n// helper ensures that if a subwindow is called, we use the parent\nfunction getTopWindow (win) {\n  if (!(win instanceof BrowserWindow)) {\n    return findWebContentsParentWindow(win)\n  }\n  while (win.getParentWindow()) {\n    win = win.getParentWindow()\n  }\n  return win\n}\n\nfunction getEvents (win) {\n  if (!(win.id in windowEvents)) {\n    windowEvents[win.id] = new EventEmitter()\n  }\n  return windowEvents[win.id]\n}\n\nfunction emit (win, ...args) {\n  getEvents(win).emit(...args)\n}\n\nfunction getWindowTabState (win) {\n  return getAll(win).map(tab => tab.state)\n}\n\nfunction addTabToClosedItems (tab) {\n  closedItems[tab.browserWindow.id] = closedItems[tab.browserWindow.id] || []\n  closedItems[tab.browserWindow.id].push(Object.assign({isTab: true}, tab.getSessionSnapshot()))\n}\n\nfunction addPaneToClosedItems (tab, url) {\n  closedItems[tab.browserWindow.id] = closedItems[tab.browserWindow.id] || []\n  closedItems[tab.browserWindow.id].push({isPane: true, tab, url})\n}\n\nfunction indexOfLastPinnedTab (win) {\n  var tabs = getAll(win)\n  var index = 0\n  for (index; index < tabs.length; index++) {\n    if (!tabs[index].isPinned) break\n  }\n  return index\n}\n\nfunction definePrimaryPanePassthroughGetter (obj, name) {\n  Object.defineProperty(obj, name, {\n    enumerable: true,\n    get () {\n      var pane = obj.primaryPane\n      return pane ? pane[name] : undefined\n    }\n  })\n}\n\nfunction definePrimaryPanePassthroughFn (obj, name) {\n  obj[name] = (function (...args) {\n    if (!this.primaryPane) {\n      throw new Error('No active pane')\n    }\n    return this.primaryPane[name](...args)\n  }).bind(obj)\n}\n\nasync function fireBeforeUnloadEvent (wc) {\n  try {\n    if (wc.isLoading() || wc.isWaitingForResponse()) {\n      return // dont bother\n    }\n    return await Promise.race([\n      wc.executeJavaScript(`\n        (function () {\n          let unloadEvent = new Event('beforeunload', {bubbles: false, cancelable: true})\n          window.dispatchEvent(unloadEvent)\n          return unloadEvent.defaultPrevented\n        })()\n      `),\n      new Promise(r => {\n        setTimeout(r, 500) // thread may be locked, so abort after 500ms\n      })\n    ])\n  } catch (e) {\n    // ignore\n  }\n}\n\nasync function runBeforeUnload (wc) {\n  var onBeforeUnloadReturnValue = await fireBeforeUnloadEvent(wc)\n  if (onBeforeUnloadReturnValue) {\n    var choice = dialog.showMessageBoxSync({\n      type: 'question',\n      buttons: ['Leave', 'Stay'],\n      title: 'Do you want to leave this site?',\n      message: 'Changes you made may not be saved.',\n      defaultId: 0,\n      cancelId: 1\n    })\n    var leave = (choice === 0)\n    if (!leave) return false\n  }\n  return true\n}\n\n/**\n * NOTE\n * preloading a tab generates a slight performance cost which was interrupting the UI\n * (it manifested as a noticeable delay in the location bar)\n * by delaying before creating the preloaded tab, we avoid overloading any threads\n * and disguise the performance overhead\n * -prf\n */\nvar _createPreloadedNewTabTOs = {} // map of {[win.id] => timeout}\nfunction createPreloadedNewTab (win) {\n  var id = win.id\n  if (_createPreloadedNewTabTOs[id]) {\n    clearTimeout(_createPreloadedNewTabTOs[id])\n  }\n  _createPreloadedNewTabTOs[id] = setTimeout(() => {\n    _createPreloadedNewTabTOs[id] = null\n    preloadedNewTabs[id] = new Tab(win, {isHidden: true})\n    preloadedNewTabs[id].loadURL(defaultUrl)\n  }, 1e3)\n}\n\nfunction toOrigin (str) {\n  try {\n    var u = new URL(str)\n    return u.protocol + '//' + u.hostname + (u.port ? `:${u.port}` : '') + '/'\n  } catch (e) { return '' }\n}"
  },
  {
    "path": "app/bg/ui/tabs/pane-layout.js",
    "content": "import { EventEmitter } from 'events'\n\nconst MIN_DIM_PCT = 5 // stacks and panes can't be smaller than this %\nconst PANE_BORDER_WIDTH = 2\n\nexport class PaneLayout extends EventEmitter {\n  constructor () {\n    super()\n    this.stacks = []\n    this.bounds = {}\n  }\n\n  get state () {\n    let state = []\n    for (let id in this.bounds) {\n      let b = this.bounds[id]\n      state.push({\n        id,\n        isActive: b.pane?.tab?.primaryPane === b.pane,\n        isEdge: b.isEdge,\n        bounds: {x: b.x, y: b.y, width: b.width, height: b.height},\n        url: b.pane.url,\n        title: b.pane.title,\n        status: b.pane.currentStatus,\n        attachedPaneId: b.pane.attachedPane ? b.pane.attachedPane.id : undefined,\n        wantsAttachedPane: b.pane.wantsAttachedPane\n      })\n    }\n    return state\n  }\n\n  // management\n  // =\n\n  addPane (pane, {after, layoutWidth, layoutHeight, noRebalance} = {after: undefined, layoutWidth: undefined, layoutHeight: undefined, noRebalance: false}) {\n    var stack = new PaneLayoutStack(this)\n    if (layoutWidth) stack.layoutWidth = layoutWidth\n    else if (after) stack.layoutWidth = after.layoutWidth\n    else if (this.stacks[0]) stack.layoutWidth = this.stacks[0].layoutWidth\n    else stack.layoutWidth = 100\n    stack.addPane(pane, {layoutHeight, noRebalance})\n    insert(this.stacks, stack, after)\n    if (!noRebalance) this.rebalanceWidths()\n    this.emit('changed')\n  }\n\n  addPaneToStack (stack, pane, {after, layoutHeight, noRebalance} = {after: undefined, layoutHeight: undefined, noRebalance: false}) {\n    stack.addPane(pane, {after, layoutHeight, noRebalance})\n    this.emit('changed')\n  }\n\n  removePane (pane) {\n    var stack = this.findStack(pane)\n    if (stack) {\n      stack.removePane(pane)\n      if (stack.empty) remove(this.stacks, stack)\n    }\n    this.rebalanceWidths()\n    this.emit('changed')\n  }\n\n  findStack (pane) {\n    for (let stack of this.stacks) {\n      if (stack.contains(pane)) return stack\n    }\n  }\n\n  getAdjacentPane (pane, dir) {\n    var stack = this.findStack(pane)\n    if (dir === 'up') {\n      return stack.panes[stack.panes.indexOf(pane) - 1]\n    }\n    if (dir === 'down') {\n      return stack.panes[stack.panes.indexOf(pane) + 1]\n    }\n    if (dir === 'left') {\n      let stack2 = this.stacks[this.stacks.indexOf(stack) - 1]\n      if (!stack2) return\n      let i = Math.min(stack.panes.indexOf(pane), stack2.panes.length - 1)\n      return stack2.panes[i]\n    }\n    if (dir === 'right') {\n      let stack2 = this.stacks[this.stacks.indexOf(stack) + 1]\n      if (!stack2) return\n      let i = Math.min(stack.panes.indexOf(pane), stack2.panes.length - 1)\n      return stack2.panes[i]\n    }\n  }\n\n  movePane (pane, dir) {\n    var stack = this.findStack(pane)\n    var i = stack.panes.indexOf(pane)\n    if (dir === 'up' || dir === 'down') {\n      if (dir === 'up' && i > 0) {\n        stack.panes.splice(i, 1)\n        stack.panes.splice(i - 1, 0, pane)\n      } else if (dir === 'down' && i < stack.panes.length - 1) {\n        stack.panes.splice(i, 1)\n        stack.panes.splice(i + 1, 0, pane)\n      } else {\n        return\n      }\n    }\n    if (dir === 'left' || dir === 'right') {\n      let stackIndex = this.stacks.indexOf(stack)\n      let stack2 = this.stacks[stackIndex + (dir === 'left' ? -1 : 1)]\n      if (!stack2) {\n        if (stack.panes.length === 1) {\n          return // dont create a new stack if this is the only pane in the stack\n        }\n        stack2 = new PaneLayoutStack(this)\n        stack2.layoutWidth = stack.layoutWidth\n        if (dir === 'left') this.stacks.splice(0, 0, stack2)\n        else this.stacks.push(stack2)\n      }\n      stack.panes.splice(i, 1)\n      stack2.panes.splice(Math.max(i, stack2.panes.length), 0, pane)\n      if (stack.empty) {\n        remove(this.stacks, stack)\n      } else {\n        stack.rebalanceHeights()\n      }\n      this.rebalanceWidths()\n      stack2.rebalanceHeights()\n    }\n    this.emit('changed')\n  }\n\n  // bounds\n  // =\n\n  computePanesBounds ({x, y, width, height}) {\n    this.bounds = {}\n    let stackX = x\n    let stackWidths = this.computeStackWidths(width)\n    let isMultiplePanes = this.stacks.length > 1 || (this.stacks[0] && this.stacks[0].panes.length > 1)\n    for (let i = 0; i < this.stacks.length; i++) {\n      let stack = this.stacks[i]\n      let stackWidth = stackWidths[i]\n      let paneY = y\n      let paneHeights = stack.computePaneHeights(height)\n      for (let j = 0; j < stack.panes.length; j++) {\n        let pane = stack.panes[j]\n        let paneHeight = paneHeights[j]\n        let isEdge = {\n          top: j === 0,\n          bottom: j === stack.panes.length - 1,\n          left: i === 0,\n          right: i === this.stacks.length - 1\n        }\n        this.bounds[pane.id] = {pane, isEdge, x: stackX, y: paneY, width: stackWidth, height: paneHeight}\n        if (isMultiplePanes) {\n          if (isEdge.top) {\n            this.bounds[pane.id].y += PANE_BORDER_WIDTH\n            this.bounds[pane.id].height -= PANE_BORDER_WIDTH\n          }\n          if (!isEdge.right) {\n            this.bounds[pane.id].width -= PANE_BORDER_WIDTH\n          }\n          if (!isEdge.bottom) {\n            this.bounds[pane.id].height -= PANE_BORDER_WIDTH\n          }\n        }\n        paneY += paneHeight\n      }\n      stackX += stackWidth\n    }\n  }\n\n  changePaneWidth (pane, pct) {\n    var stack = this.findStack(pane)\n    if (!stack) return\n    var nextStack = this.stacks[this.stacks.indexOf(stack) + 1]\n    if (!nextStack) return\n    if (stack.layoutWidth + pct < MIN_DIM_PCT) return\n    if (nextStack.layoutWidth - pct < MIN_DIM_PCT) return\n    stack.layoutWidth += pct\n    nextStack.layoutWidth -= pct\n  }\n\n  changePaneHeight (pane, pct) {\n    var stack = this.findStack(pane)\n    if (!stack) return\n    var nextPane = stack.panes[stack.panes.indexOf(pane) + 1]\n    if (!nextPane) return\n    if (pane.layoutHeight + pct < MIN_DIM_PCT) return\n    if (nextPane.layoutHeight - pct < MIN_DIM_PCT) return\n    pane.layoutHeight += pct\n    nextPane.layoutHeight -= pct\n  }\n\n  rebalanceAll () {\n    this.rebalanceWidths()\n    for (let stack of this.stacks) {\n      stack.rebalanceHeights()\n    }\n  }\n\n  rebalanceWidths () {\n    if (!this.stacks.length) return\n    \n    // redistribute to 100%\n    var total = this.stacks.reduce((acc, s) => acc + s.layoutWidth, 0)\n    var scale = 100 / total\n    for (let stack of this.stacks) {\n      stack.layoutWidth = Math.max(Math.round(stack.layoutWidth * scale), MIN_DIM_PCT + 1)\n    }\n\n    // make sure we add up to 100\n    total = this.stacks.reduce((acc, s) => acc + s.layoutWidth, 0)\n    if (total !== 100) {\n      for (let stack of this.stacks) {\n        if (stack.layoutWidth + (100 - total) > MIN_DIM_PCT) {\n          stack.layoutWidth += (100 - total)\n          break\n        }\n      }\n    }\n  }\n\n  computeStackWidths (width) {\n    return this.stacks.map(stack => Math.round(stack.layoutWidth / 100 * width))\n  }\n\n  getBoundsForPane (pane) {\n    return this.bounds[pane.id]\n  }\n}\n\nclass PaneLayoutStack {\n  constructor (layout) {\n    this.layout = layout\n    this.panes = []\n    this.layoutWidth = undefined\n  }\n\n  get empty () {\n    return this.panes.length === 0\n  }\n\n  contains (pane) {\n    return this.panes.includes(pane)\n  }\n\n  // management\n  // =\n\n  addPane (pane, {after, layoutHeight, noRebalance} = {after: undefined, layoutHeight: undefined, noRebalance: false}) {\n    if (layoutHeight) pane.layoutHeight = layoutHeight\n    else if (after) pane.layoutHeight = after.layoutHeight\n    else if (this.panes[0]) pane.layoutHeight = this.panes[0].layoutHeight\n    else pane.layoutHeight = 100\n    insert(this.panes, pane, after)\n    if (!noRebalance) this.rebalanceHeights()\n  }\n\n  removePane (pane) {\n    remove(this.panes, pane)\n    this.rebalanceHeights()\n  }\n\n  // bounds\n  // =\n\n  rebalanceHeights () {\n    if (this.empty) return\n\n    // redistribute to 100%\n    var total = this.panes.reduce((acc, p) => acc + p.layoutHeight, 0)\n    var scale = 100 / total\n    for (let pane of this.panes) {\n      pane.layoutHeight = Math.max(Math.round(pane.layoutHeight * scale), MIN_DIM_PCT + 1)\n    }\n\n    // make sure we add up to 100\n    total = this.panes.reduce((acc, p) => acc + p.layoutHeight, 0)\n    if (total !== 100) {\n      for (let pane of this.panes) {\n        if (pane.layoutHeight + (100 - total) > MIN_DIM_PCT) {\n          pane.layoutHeight += 100 - total\n          break\n        }\n      }\n    }\n  }\n\n  computePaneHeights (height) {\n    return this.panes.map(pane => Math.round(pane.layoutHeight / 100 * height))\n  }\n}\n\nfunction insert (arr, item, after = undefined) {\n  if (after) {\n    let i = arr.indexOf(after)\n    if (i !== -1) arr.splice(i + 1, 0, item)\n    else arr.push(item)\n  } else {\n    arr.unshift(item)\n  }\n}\n\nfunction remove (arr, item) {\n  let i = arr.indexOf(item)\n  if (i === -1) return\n  arr.splice(i, 1)\n}"
  },
  {
    "path": "app/bg/ui/tabs/pane.js",
    "content": "import { app, BrowserView, nativeTheme } from 'electron'\nimport errorPage from '../../lib/error-page'\nimport path from 'path'\nimport { promises as fs } from 'fs'\nimport { EventEmitter } from 'events'\nimport _throttle from 'lodash.throttle'\nimport { parseDriveUrl, stripUrlHash } from '../../../lib/urls'\nimport { toNiceUrl } from '../../../lib/strings'\nimport _get from 'lodash.get'\nimport _pick from 'lodash.pick'\nimport * as zoom from './zoom'\nimport * as modals from '../subwindows/modals'\nimport * as overlay from '../subwindows/overlay'\nimport * as windowMenu from '../window-menu'\nimport { getResourceContentType } from '../../browser'\nimport { DRIVE_KEY_REGEX } from '../../../lib/strings'\nimport * as sitedataDb from '../../dbs/sitedata'\nimport * as historyDb from '../../dbs/history'\nimport * as folderSyncDb from '../../dbs/folder-sync'\nimport * as filesystem from '../../filesystem/index'\nimport * as bookmarks from '../../filesystem/bookmarks'\nimport hyper from '../../hyper/index'\n\nconst ERR_ABORTED = -3\nconst ERR_CONNECTION_REFUSED = -102\nconst ERR_INSECURE_RESPONSE = -501\nconst TLS_ERROR_CODES = Object.values({\n  ERR_NO_SSL_VERSIONS_ENABLED: -112,\n  ERR_SSL_VERSION_OR_CIPHER_MISMATCH: -113,\n  ERR_SSL_RENEGOTIATION_REQUESTED: -114,\n  ERR_PROXY_AUTH_UNSUPPORTED: -115,\n  ERR_CERT_ERROR_IN_SSL_RENEGOTIATION: -116,\n  ERR_BAD_SSL_CLIENT_AUTH_CERT: -117,\n  ERR_SSL_NO_RENEGOTIATION: -123,\n  ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY: -129,\n  ERR_PROXY_CERTIFICATE_INVALID: -136,\n  ERR_SSL_HANDSHAKE_NOT_COMPLETED: -148,\n  ERR_SSL_BAD_PEER_PUBLIC_KEY: -149,\n  ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: -150,\n  ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED: -151,\n  ERR_SSL_DECRYPT_ERROR_ALERT: -153,\n  ERR_SSL_SERVER_CERT_CHANGED: -156,\n  ERR_SSL_UNRECOGNIZED_NAME_ALERT: -159,\n  ERR_SSL_SERVER_CERT_BAD_FORMAT: -167,\n  ERR_CT_STH_PARSING_FAILED: -168,\n  ERR_CT_STH_INCOMPLETE: -169,\n  ERR_CT_CONSISTENCY_PROOF_PARSING_FAILED: -171,\n  ERR_SSL_OBSOLETE_CIPHER: -172,\n  ERR_SSL_VERSION_INTERFERENCE: -175,\n  ERR_EARLY_DATA_REJECTED: -178,\n  ERR_WRONG_VERSION_ON_EARLY_DATA: -179,\n  ERR_TLS13_DOWNGRADE_DETECTED: -180\n})\nconst IS_CODE_INSECURE_RESPONSE = x => x === ERR_CONNECTION_REFUSED || x === ERR_INSECURE_RESPONSE || (x <= -200 && x > -300) || TLS_ERROR_CODES.includes(x)\n\nconst TRIGGER_LIVE_RELOAD_DEBOUNCE = 500 // throttle live-reload triggers by this amount\nconst STATUS_BAR_HEIGHT = 22\n\n// the variables which are automatically sent to the shell-window for rendering\nconst STATE_VARS = [\n  'id',\n  'url',\n  'title',\n  'siteTitle',\n  'siteSubtitle',\n  'siteIcon',\n  'siteTrust',\n  'driveDomain',\n  'driveIdent',\n  'writable',\n  'folderSyncPath',\n  'peers',\n  'favicons',\n  'zoom',\n  'loadError',\n  // 'isActive', tab sends this\n  // 'isPinned', tab sends this\n  'isBookmarked',\n  'isLoading',\n  'isReceivingAssets',\n  'canGoBack',\n  'canGoForward',\n  'isAudioMuted',\n  'isCurrentlyAudible',\n  'isInpageFindActive',\n  'currentInpageFindString',\n  'currentInpageFindResults',\n  'donateLinkHref',\n  'isLiveReloading'\n]\n\n// globals\n// =\n\nvar _hasSeenCommentsTip = undefined\n\n// classes\n// =\n\nexport class Pane extends EventEmitter {\n  constructor (tab) {\n    super()\n    this.tab = tab\n    this.browserView = new BrowserView({\n      webPreferences: {\n        preload: path.join(__dirname, 'fg', 'webview-preload', 'index.build.js'),\n        nodeIntegrationInSubFrames: true,\n        contextIsolation: true,\n        worldSafeExecuteJavaScript: false, // TODO- this causes promises to fail in executeJavaScript, need to file an issue with electron\n        webviewTag: false,\n        sandbox: true,\n        defaultEncoding: 'utf-8',\n        nativeWindowOpen: true,\n        nodeIntegration: false,\n        scrollBounce: true,\n        navigateOnDragDrop: true,\n        enableRemoteModule: false,\n        safeDialogs: true\n      }\n    })\n    this.browserView.setBackgroundColor('#fff')\n\n    // webview state\n    this.loadingURL = null // URL being loaded, if any\n    this.isLoading = false // is the pane loading?\n    this.isReceivingAssets = false // has the webview started receiving assets in the current load-cycle?\n    this.favicons = null // array of favicon URLs\n    this.zoom = 0 // what's the current zoom level?\n    this.loadError = null // page error state, if any\n    this.mainFrameId = undefined // the frameRoutingId of the main frame\n    this.frameUrls = {} // map of frameRoutingId -> string (url)\n\n    // browser state\n    this.isActive = false // is this the active pane in the tab?\n    this.currentStatus = false // the status-bar value\n    this.liveReloadEvents = null // live-reload event stream\n    this.isInpageFindActive = false // is the inpage-finder UI active?\n    this.currentInpageFindString = undefined // what's the current inpage-finder query string?\n    this.currentInpageFindResults = undefined // what's the current inpage-finder query results?\n    this.fadeoutCssId = undefined // injected CSS id to fade out the page content\n    this.attachedPane = undefined // pane which this pane is currently attached to\n    this.wantsAttachedPane = false // has the app asked for attached panes?\n    this.attachedPaneEvents = new EventEmitter() // emitter for events specifically realted to the attached pane\n    this.onAttachedPaneNavigated = (e, url) => this.attachedPaneEvents.emit('pane-navigated', {detail: {url}})\n\n    // helper state\n    this.folderSyncPath = undefined // current folder sync path\n    this.peers = 0 // how many peers does the site have?\n    this.isBookmarked = false // is the active page bookmarked?\n    this.driveInfo = null // metadata about the site if viewing a hyperdrive\n    this.donateLinkHref = null // the URL of the donate site, if set by the index.json\n    this.wasDriveTimeout = false // did the last navigation result in a timed-out hyperdrive?\n    this.layoutHeight = undefined // used by pane-layout to track height\n\n    // wire up events\n    this.webContents.on('did-start-loading', this.onDidStartLoading.bind(this))\n    this.webContents.on('did-start-navigation', this.onDidStartNavigation.bind(this))\n    this.webContents.on('did-navigate', this.onDidNavigate.bind(this))\n    this.webContents.on('did-navigate-in-page', this.onDidNavigateInPage.bind(this))\n    this.webContents.on('did-stop-loading', this.onDidStopLoading.bind(this))\n    this.webContents.on('dom-ready', this.onDomReady.bind(this))\n    this.webContents.on('did-fail-load', this.onDidFailLoad.bind(this))\n    this.webContents.on('update-target-url', this.onUpdateTargetUrl.bind(this))\n    this.webContents.on('page-title-updated', this.onPageTitleUpdated.bind(this)) // NOTE page-title-updated isn't documented on webContents but it is supported\n    this.webContents.on('page-favicon-updated', this.onPageFaviconUpdated.bind(this))\n    this.webContents.on('new-window', this.onNewWindow.bind(this))\n    this.webContents.on('-will-add-new-contents', this.onWillAddNewContents.bind(this))\n    this.webContents.on('media-started-playing', this.onMediaChange.bind(this))\n    this.webContents.on('media-paused', this.onMediaChange.bind(this))\n    this.webContents.on('found-in-page', this.onFoundInPage.bind(this))\n    this.webContents.on('zoom-changed', this.onZoomChanged.bind(this))\n\n    // security - deny these events\n    const deny = e => e.preventDefault()\n    this.webContents.on('remote-require', deny)\n    this.webContents.on('remote-get-global', deny)\n    this.webContents.on('remote-get-builtin', deny)\n    this.webContents.on('remote-get-current-window', deny)\n    this.webContents.on('remote-get-current-web-contents', deny)\n    this.webContents.on('remote-get-guest-web-contents', deny)\n  }\n\n  get id () {\n    return this.webContents.id\n  }\n\n  get webContents () {\n    return this.browserView.webContents\n  }\n\n  get browserWindow () {\n    return this.tab && this.tab.browserWindow\n  }\n\n  get url () {\n    return this.webContents.getURL()\n  }\n\n  get origin () {\n    return toOrigin(this.url)\n  }\n\n  get title () {\n    var title = this.webContents.getTitle()\n    if ((!title || toOrigin(title) === this.origin) && this.driveInfo?.title) {\n      // fallback to the index.json title field if the page doesnt provide a title\n      title = this.driveInfo.title\n    }\n    return title\n  }\n\n  get siteTitle () {\n    try {\n      var urlp = new URL(this.loadingURL || this.url)\n      var hostname = urlp.hostname\n      if (DRIVE_KEY_REGEX.test(hostname)) {\n        hostname = hostname.replace(DRIVE_KEY_REGEX, v => `${v.slice(0, 6)}..${v.slice(-2)}`)\n      }\n      if (hostname.includes('+')) {\n        hostname = hostname.replace(/\\+[\\d]+/, '')\n      }\n      if (this.driveInfo) {\n        if (this.driveInfo.ident?.system) {\n          return 'My Private Drive'\n        }\n      }\n      if (urlp.protocol === 'beaker:') {\n        if (urlp.hostname === 'diff') return 'Beaker Diff/Merge Tool'\n        if (urlp.hostname === 'explorer') return 'Beaker Files Explorer'\n        if (urlp.hostname === 'history') return 'Beaker History'\n        if (urlp.hostname === 'library') return 'Beaker Library'\n        if (urlp.hostname === 'settings') return 'Beaker Settings'\n        if (urlp.hostname === 'webterm') return 'Beaker Webterm'\n        return 'Beaker'\n      }\n      return hostname + (urlp.port ? `:${urlp.port}` : '')\n    } catch (e) {\n      return ''\n    }\n  }\n\n  get siteSubtitle () {\n    if (this.driveInfo) {\n      var origin = this.origin\n      var version = /\\+([\\d]+)/.exec(origin) ? `v${/\\+([\\d]+)/.exec(origin)[1]}` : ''\n      var forkLabel = _get(filesystem.listDrives().find(d => d.key === this.driveInfo.key), 'forkOf.label', '')\n      return [forkLabel, version].filter(Boolean).join(' ')\n    }\n    return ''\n  }\n\n  get siteIcon () {\n    if (this.driveInfo) {\n      if (this.driveInfo.ident?.profile) {\n        return 'fas fa-user-circle'\n      }\n      if (this.driveInfo.ident?.system) {\n        return 'fas fa-lock'\n      }\n    }\n    var url = this.loadingURL || this.url\n    if (url.startsWith('https:') && !(this.loadError && this.loadError.isInsecureResponse)) {\n      return 'fas fa-check-circle'\n    }\n    if (url.startsWith('beaker:')) {\n      return 'beaker-logo'\n    }\n    // return 'fas fa-info-circle'\n  }\n\n  get siteTrust () {\n    try {\n      var urlp = new URL(this.loadingURL || this.url)\n      if (this.loadError && this.loadError.isInsecureResponse) {\n        return 'untrusted'\n      }\n      if (['https:', 'beaker:'].includes(urlp.protocol)) {\n        return 'trusted'\n      }\n      if (urlp.protocol === 'http:') {\n        return 'untrusted'\n      }\n      if (urlp.protocol === 'hyper:' && this.driveInfo) {\n        if (this.driveInfo.ident?.internal) {\n          return 'trusted'\n        }\n      }\n    } catch (e) {\n    }\n    return 'notrust'\n  }\n\n  get driveDomain () {\n    return _get(this.driveInfo, 'domain', '')\n  }\n\n  get driveIdent () {\n    if (this.driveInfo?.ident?.system) return 'system'\n    if (this.driveInfo?.ident?.profile) return 'profile'\n    return ''\n  }\n\n  get writable () {\n    return _get(this.driveInfo, 'writable', false)\n  }\n\n  get canGoBack () {\n    return this.webContents.canGoBack()\n  }\n\n  get canGoForward () {\n    return this.webContents.canGoForward()\n  }\n\n  get isAudioMuted () {\n    return this.webContents.isAudioMuted()\n  }\n\n  get isCurrentlyAudible () {\n    return this.webContents.isCurrentlyAudible()\n  }\n\n  get isLiveReloading () {\n    return !!this.liveReloadEvents\n  }\n\n  get state () {\n    var state = _pick(this, STATE_VARS)\n    if (this.loadingURL) state.url = this.loadingURL\n    return state\n  }\n\n  getIPCSenderInfo (event) {\n    if (event.sender === this.webContents) {\n      return {\n        url: this.frameUrls[event.frameId],\n        isMainFrame: event.frameId === this.mainFrameId\n      }\n    }\n  }\n\n  setTab (tab) {\n    this.tab = tab\n    if (this.tab !== tab) {\n      this.setAttachedPane(undefined)\n    }\n  }\n\n  // management\n  // =\n\n  loadURL (url, opts = undefined) {\n    this.webContents.loadURL(url, opts)\n  }\n\n  reload () {\n    this.webContents.reload()\n  }\n\n  setBounds (bounds) {\n    this.browserView.setBounds({\n      x: bounds.x,\n      y: bounds.y,\n      width: bounds.width,\n      height: bounds.height - STATUS_BAR_HEIGHT\n    })\n  }\n\n  show ({noFocus} = {noFocus: false}) {\n    if (this.tab.isHidden) return\n    this.browserWindow.addBrowserView(this.browserView)\n    if (!noFocus) this.webContents.focus()\n    this.emit('showed')\n  }\n\n  focus () {\n    if (this.tab.isHidden) return\n    this.webContents.focus()\n  }\n\n  hide () {\n    if (!this.browserWindow) return\n    this.browserWindow.removeBrowserView(this.browserView)\n  }\n\n  destroy () {\n    if (this.url && !this.url.startsWith('beaker://')) {\n      historyDb.addTabClose(0, {url: this.url, title: this.title})\n    }\n    this.hide()\n    this.stopLiveReloading()\n    this.browserView.webContents.destroy()\n    this.emit('destroyed')\n  }\n\n  awaitActive () {\n    return new Promise((resolve, reject) => {\n      const showed = () => {\n        this.removeListener('showed', showed)\n        this.removeListener('destroyed', destroyed)\n        resolve()\n      }\n      const destroyed = () => {\n        this.removeListener('showed', showed)\n        this.removeListener('destroyed', destroyed)\n        reject()\n      }\n      this.on('showed', showed)\n      this.on('destroyed', destroyed)\n    })\n  }\n\n  async fadeout () {\n    if (this.fadeoutCssId) return\n    this.fadeoutCssId = await this.webContents.insertCSS(`body { opacity: 0.5 }`)\n  }\n\n  async fadein () {\n    if (!this.fadeoutCssId) return\n    await this.webContents.removeInsertedCSS(this.fadeoutCssId)\n    this.fadeoutCssId = undefined\n  }\n\n  transferWindow (targetWindow) {\n    this.hide()\n    this.browserWindow = targetWindow\n  }\n\n  async updateHistory () {\n    var url = this.url\n    var title = this.title\n    if (url && !url.startsWith('beaker://')) {\n      historyDb.addVisit(0, {url, title})\n    }\n  }\n\n  toggleMuted () {\n    this.webContents.setAudioMuted(!this.isAudioMuted)\n  }\n\n  async captureScreenshot () {\n    try {\n      // wait a sec to allow loading to finish\n      var url = this.url\n      await new Promise(r => setTimeout(r, 2e3))\n\n      // capture the page\n      this.browserView.webContents.incrementCapturerCount({width: 1000, height: 800}, !this.isActive)\n      var image = await this.browserView.webContents.capturePage()\n      this.browserView.webContents.decrementCapturerCount(!this.isActive)\n      var bounds = image.getSize()\n      if (bounds.width === 0 || bounds.height === 0) return\n      if (bounds.width <= bounds.height) return // only save if it's a useful image\n      await sitedataDb.set(url, 'screenshot', image.toDataURL(), {dontExtractOrigin: true, normalizeUrl: true})\n    } catch (e) {\n      // ignore, can happen if the pane was closed during wait\n      console.log('Failed to capture page screenshot', e)\n    }\n  }\n\n  // inpage finder\n  // =\n\n  showInpageFind () {\n    if (this.tab.isHidden) return\n    if (this.isInpageFindActive) {\n      // go to next result on repeat \"show\" commands\n      this.moveInpageFind(1)\n    } else {\n      this.isInpageFindActive = true\n      this.currentInpageFindResults = {activeMatchOrdinal: 0, matches: 0}\n      this.emitUpdateState()\n    }\n    this.browserWindow.webContents.focus()\n  }\n\n  hideInpageFind () {\n    this.webContents.stopFindInPage('clearSelection')\n    this.isInpageFindActive = false\n    this.currentInpageFindString = undefined\n    this.currentInpageFindResults = undefined\n    this.emitUpdateState()\n  }\n\n  setInpageFindString (str, dir) {\n    this.currentInpageFindString = str\n    this.webContents.findInPage(this.currentInpageFindString, {findNext: true, forward: dir !== -1})\n  }\n\n  moveInpageFind (dir) {\n    if (!this.currentInpageFindString) return\n    this.webContents.findInPage(this.currentInpageFindString, {findNext: false, forward: dir !== -1})\n  }\n\n  // live reloading\n  // =\n\n  async toggleLiveReloading (enable) {\n    if (typeof enable === 'undefined') {\n      enable = !this.liveReloadEvents\n    }\n    if (this.liveReloadEvents) {\n      this.liveReloadEvents.destroy()\n      this.liveReloadEvents = false\n    } else if (this.driveInfo) {\n      let drive = hyper.drives.getDrive(this.driveInfo.key)\n      if (!drive) return\n\n      let {version} = parseDriveUrl(this.url)\n      let {checkoutFS} = await hyper.drives.getDriveCheckout(drive, version)\n      this.liveReloadEvents = await checkoutFS.pda.watch()\n\n      const reload = _throttle(() => {\n        this.browserView.webContents.reload()\n      }, TRIGGER_LIVE_RELOAD_DEBOUNCE, {leading: false})\n      this.liveReloadEvents.on('data', ([evt]) => {\n        if (evt === 'changed') reload()\n      })\n      // ^ note this throttle is run on the front edge.\n      // That means snappier reloads (no delay) but possible double reloads if multiple files change\n    }\n    this.emitUpdateState()\n  }\n\n  stopLiveReloading () {\n    if (this.liveReloadEvents) {\n      this.liveReloadEvents.destroy()\n      this.liveReloadEvents = false\n      this.emitUpdateState()\n    }\n  }\n\n  // custom renderers\n  // =\n\n  async injectCustomRenderers () {\n    // determine content type\n    let contentType = getResourceContentType(this.url) || ''\n    let isPlainText = contentType.startsWith('text/plain')\n    let isJSON = contentType.startsWith('application/json') || (isPlainText && this.url.endsWith('.json'))\n    let isJS = contentType.includes('/javascript') || (isPlainText && this.url.endsWith('.js'))\n    let isCSS = contentType.startsWith('text/css') || (isPlainText && this.url.endsWith('.css'))\n\n    // json rendering\n    // inject the json render script\n    if (isJSON) {\n      this.webContents.insertCSS(`\n        .hidden { display: none !important; }\n        .json-formatter-row {\n          font-family: Consolas, 'Lucida Console', Monaco, monospace !important;\n          line-height: 1.6 !important;\n          font-size: 13px;\n        }\n        .json-formatter-row > a > .json-formatter-preview-text {\n          transition: none !important;\n        }\n        nav { margin-bottom: 5px; user-select: none; }\n        nav > span {\n          cursor: pointer;\n          display: inline-block;\n          font-family: Consolas, \"Lucida Console\", Monaco, monospace;\n          cursor: pointer;\n          font-size: 13px;\n          background: rgb(250, 250, 250);\n          padding: 3px 5px;\n          margin-right: 5px;\n        }\n        nav > span.pressed {\n          box-shadow: inset 2px 2px 2px rgba(0,0,0,.05);\n          background: #ddd;\n        }\n      `)\n      let jsonpath = path.join(app.getAppPath(), 'fg', 'json-renderer', 'index.build.js')\n      jsonpath = jsonpath.replace('app.asar', 'app.asar.unpacked') // fetch from unpacked dir\n      try {\n        await this.webContents.executeJavaScript(await fs.readFile(jsonpath, 'utf8'))\n      } catch (e) {\n        // ignore\n      }\n    }\n    // js/css syntax highlighting\n    if (isJS || isCSS) {\n      this.webContents.insertCSS(`\n      .hljs {\n        display: block;\n        overflow-x: auto;\n        padding: 0.5em;\n        background: white;\n        color: black;\n      }\n      .hljs-comment, .hljs-quote, .hljs-variable { color: #008000; }\n      .hljs-keyword, .hljs-selector-tag, .hljs-built_in, .hljs-name, .hljs-tag { color: #00f; }\n      .hljs-string, .hljs-title, .hljs-section, .hljs-attribute, .hljs-literal, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-addition { color: #a31515; }\n      .hljs-deletion, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-meta { color: #2b91af; }\n      .hljs-doctag { color: #808080; }\n      .hljs-attr { color: #f00; }\n      .hljs-symbol, .hljs-bullet, .hljs-link { color: #00b0e8; }\n      .hljs-emphasis { font-style: italic; }\n      .hljs-strong { font-weight: bold; }\n      `)\n      let scriptpath = path.join(app.getAppPath(), 'fg', 'syntax-highlighter', 'index.js')\n      scriptpath = scriptpath.replace('app.asar', 'app.asar.unpacked') // fetch from unpacked dir\n      try {\n        await this.webContents.executeJavaScript(await fs.readFile(scriptpath, 'utf8'))\n      } catch (e) {\n        // ignore\n      }\n    }\n  }\n\n  // state fetching\n  // =\n\n  // helper called by UIs to pull latest state if a change event has occurred\n  // eg called by the bookmark systems after the bookmark state has changed\n  async refreshState () {\n    await Promise.all([\n      this.fetchIsBookmarked(true),\n      this.fetchDriveInfo(true)\n    ])\n    this.emitUpdateState()\n  }\n\n  async fetchIsBookmarked (noEmit = false) {\n    var wasBookmarked = this.isBookmarked\n    this.isBookmarked = !!(await bookmarks.get(this.url))\n    if (this.isBookmarked && !wasBookmarked) {\n      this.captureScreenshot()\n    }\n    if (!noEmit) {\n      this.emitUpdateState()\n    }\n  }\n\n  async fetchDriveInfo (noEmit = false) {\n    // clear existing state\n    this.folderSyncPath = undefined\n    this.peers = 0\n    this.donateLinkHref = null\n\n    if (!this.url.startsWith('hyper://')) {\n      this.driveInfo = null\n      return\n    }\n    \n    // fetch new state\n    var key\n    try {\n      key = await hyper.dns.resolveName(this.url)\n      this.driveInfo = await hyper.drives.getDriveInfo(key)\n      this.driveInfo.ident = await filesystem.getDriveIdent(this.driveInfo.url, true)\n      this.folderSyncPath = await folderSyncDb.getPath(this.driveInfo.key)\n      this.peers = this.driveInfo.peers\n      this.donateLinkHref = _get(this, 'driveInfo.links.payment.0.href')\n    } catch (e) {\n      this.driveInfo = null\n    }\n    if (!noEmit) this.emitUpdateState()\n  }\n\n  // attached pane\n  // =\n\n  setAttachedPane (pane) {\n    if (this.attachedPane) {\n      if (!this.attachedPane.webContents.isDestroyed()) {\n        this.attachedPane.webContents.removeListener('did-navigate', this.onAttachedPaneNavigated)\n      }\n      this.attachedPaneEvents.emit('pane-detached')\n    }\n    this.attachedPane = pane\n    if (pane) {\n      this.attachedPaneEvents.emit('pane-attached', {detail: {id: pane.id}})\n      this.attachedPane.webContents.on('did-navigate', this.onAttachedPaneNavigated)\n    }\n    this.tab.emitPaneUpdateState()\n  }\n\n  // events\n  // =\n\n  emitUpdateState () {\n    this.tab.emitTabUpdateState(this)\n  }\n\n  onDidStartLoading (e) {\n    // update state\n    this.loadingURL = null\n    this.isReceivingAssets = false\n    this.wasDriveTimeout = false\n\n    // emit\n    this.emitUpdateState()\n  }\n\n  onDidStartNavigation (e, url, isInPlace, isMainFrame, frameProcessId, frameRoutingId) {\n    this.frameUrls[frameRoutingId] = url\n    if (!isMainFrame) return\n    this.mainFrameId = frameRoutingId\n    var origin = toOrigin(url)\n\n    // handle origin changes\n    if (origin !== toOrigin(this.url)) {\n      this.stopLiveReloading()\n      this.setAttachedPane(undefined)\n      this.wantsAttachedPane = false\n    }\n\n    // update state\n    this.loadingURL = url\n    this.isLoading = true\n    this.emitUpdateState()\n    // if (this.tab.isHidden) app.emit('custom-background-tabs-update', backgroundTabs) TODO\n  }\n\n  async onDidNavigate (e, url, httpResponseCode) {\n    // remove any active subwindows\n    modals.close(this.tab)\n\n    // read zoom\n    zoom.setZoomFromSitedata(this)\n\n    // update state\n    this.loadError = null\n    this.loadingURL = null\n    this.isReceivingAssets = true\n    this.favicons = null\n    this.frameUrls = {[this.mainFrameId]: url} // drop all non-main-frame URLs\n    await Promise.all([\n      this.fetchIsBookmarked(),\n      this.fetchDriveInfo()\n    ])\n    if (httpResponseCode === 504 && url.startsWith('hyper://')) {\n      this.wasDriveTimeout = true\n    }\n\n    // emit\n    this.emitUpdateState()\n  }\n\n  onDidNavigateInPage (e) {\n    this.fetchIsBookmarked()\n    this.updateHistory()\n  }\n\n  onDidStopLoading () {\n    this.updateHistory()\n\n    // update state\n    this.isLoading = false\n    this.loadingURL = null\n    this.isReceivingAssets = false\n\n    if (!this.url) {\n      // aborted load on a new tab\n      this.loadURL('about:blank')\n    }\n\n    // run custom renderer apps\n    this.injectCustomRenderers()\n\n    // emit\n    if (!this.tab.isHidden) {\n      windowMenu.onSetCurrentLocation(this.browserWindow, this.url)\n    }\n    this.emitUpdateState()\n  }\n\n  onDomReady (e) {\n    // HACK\n    // sometimes 'did-stop-loading' doesnt get fired\n    // not sure why, but 'dom-ready' indicates that loading is done\n    // if still isLoading or isReceivingAssets, run the did-stop-loading handler\n    // -prf\n    if (this.isLoading || this.isReceivingAssets) {\n      this.onDidStopLoading()\n    }\n  }\n\n  async onDidFailLoad (e, errorCode, errorDescription, validatedURL, isMainFrame) {\n    // ignore if this is a subresource\n    if (!isMainFrame) return\n\n    // ignore aborts. why:\n    // - sometimes, aborts are caused by redirects. no biggy\n    // - if the user cancels, then we dont want to give an error screen\n    if (errorDescription == 'ERR_ABORTED' || errorCode == ERR_ABORTED) return\n\n    // also ignore non-errors\n    if (errorCode == 0) return\n\n    // update state\n    var isInsecureResponse = IS_CODE_INSECURE_RESPONSE(errorCode)\n    this.loadError = {isInsecureResponse, errorCode, errorDescription, validatedURL}\n    this.emitUpdateState()\n\n    // render failure page\n    var errorPageHTML = errorPage(this.loadError)\n    try {\n      await this.webContents.executeJavaScript('document.documentElement.innerHTML = \\'' + errorPageHTML + '\\'; undefined')\n    } catch (e) {\n      // ignore\n    }\n  }\n\n  onUpdateTargetUrl (e, url) {\n    if (this.tab.isHidden) return\n    if (this.browserWindow.isDestroyed()) return\n    this.currentStatus = url ? toNiceUrl(url) : url\n    this.tab.emitPaneUpdateState()\n  }\n\n  onPageTitleUpdated (e, title) {\n    if (this.browserWindow && this.browserWindow.isDestroyed()) return\n    this.emitUpdateState()\n  }\n\n  onPageFaviconUpdated (e, favicons) {\n    this.favicons = favicons && favicons[0] ? favicons : null\n\n    if (this.favicons) {\n      let url = this.url\n      this.webContents.executeJavaScriptInIsolatedWorld(999, [{code: `\n        new Promise(async (resolve) => {\n          var img = await new Promise(resolve => {\n            var img = new Image()\n            img.crossOrigin = 'Anonymous'\n            img.onload = e => resolve(img)\n            img.onerror = () => resolve(false)\n            img.src = \"${this.favicons[0]}\"\n          })\n          if (!img) return resolve(undefined)\n            \n          let {width, height} = img\n          var ratio = width / height\n          if (width / height > ratio) { height = width / ratio } else { width = height * ratio }\n        \n          var canvas = document.createElement('canvas')\n          canvas.width = width\n          canvas.height = height\n          var ctx = canvas.getContext('2d')\n          ctx.drawImage(img, 0, 0, width, height)\n          resolve(canvas.toDataURL('image/png'))\n        })\n      `}]).then((dataUrl, err) => {\n        if (err) console.log(err)\n        else if (dataUrl) {\n          sitedataDb.set(url, 'favicon', dataUrl)\n        }\n      })\n    }\n    \n    this.emitUpdateState()\n  }\n\n  onNewWindow (e, url, frameName, disposition, options) {\n    e.preventDefault()\n    if (!this.isActive || !this.tab) return // only open if coming from the active pane\n    var setActive = disposition === 'foreground-tab' || disposition === 'new-window'\n    var setActiveBySettings = !setActive\n    this.tab.createTab(url, {setActive, setActiveBySettings, adjacentActive: true})\n  }\n\n  onWillAddNewContents (e, url) {\n    // HACK\n    // this should be handled by new-window, but new-window currently crashes\n    // if you prevent default, so we handle it here\n    // see https://github.com/electron/electron/issues/23859\n    // -prf\n    e.preventDefault()\n    if (!this.tab) return\n    this.tab.createTab(url, {setActive: true, adjacentActive: true})\n  }\n\n  onMediaChange (e) {\n    // our goal with this event handler is to detect that audio is playing\n    // this lets us then render an \"audio playing\" icon on the tab\n    // for whatever reason, the event consistently precedes the \"is audible\" being set by at most 1s\n    // so, we delay for 1s, then emit a state update\n    setTimeout(() => this.emitUpdateState(), 1e3)\n  }\n\n  onFoundInPage (e, res) {\n    this.currentInpageFindResults = {\n      activeMatchOrdinal: res.activeMatchOrdinal,\n      matches: res.matches\n    }\n    this.emitUpdateState()\n  }\n\n  onZoomChanged (e, zoomDirection) {\n    if (zoomDirection === 'in') zoom.zoomIn(this)\n    if (zoomDirection === 'out') zoom.zoomOut(this)\n  }\n}\n\n// internal methods\n// =\n\nfunction toOrigin (str) {\n  try {\n    var u = new URL(str)\n    return u.protocol + '//' + u.hostname + (u.port ? `:${u.port}` : '') + '/'\n  } catch (e) { return '' }\n}\n\nasync function fireBeforeUnloadEvent (wc) {\n  try {\n    if (wc.isLoading() || wc.isWaitingForResponse()) {\n      return // dont bother\n    }\n    return await Promise.race([\n      wc.executeJavaScript(`\n        (function () {\n          let unloadEvent = new Event('beforeunload', {bubbles: false, cancelable: true})\n          unloadEvent.returnValue = false\n          return window.dispatchEvent(unloadEvent)\n        })()\n      `),\n      new Promise(r => {\n        setTimeout(r, 500) // thread may be locked, so abort after 500ms\n      })\n    ])\n    } catch (e) {\n      // ignore\n    }\n}\n"
  },
  {
    "path": "app/bg/ui/tabs/zoom.js",
    "content": "import {URL} from 'url'\nimport * as tabManager from '../tabs/manager'\nimport * as sitedataDb from '../../dbs/sitedata'\nimport * as settingsDb from '../../dbs/settings'\n\nconst ZOOM_STEP = 0.5\n\n// exported api\n// =\n\nexport async function setZoomFromSitedata (view, origin) {\n  if (view.panes) view = view.activePane\n\n  // load zoom from sitedata\n  origin = origin || view.origin\n  if (!origin) return\n\n  var v = await sitedataDb.get(origin, 'zoom')\n  view.zoom = +v || (await settingsDb.get('default_zoom'))\n  view.emitUpdateState()\n  view.webContents.setZoomLevel(view.zoom)\n}\n\nexport function setZoom (view, z) {\n  if (view.panes) view = view.activePane\n\n  // clamp\n  if (z > 4.5) z = 4.5\n  if (z < -3) z = -3\n\n  // update\n  view.zoom = z\n  view.webContents.setZoomLevel(view.zoom)\n  view.emitUpdateState()\n\n  // persist to sitedata\n  var origin = view.origin\n  if (!origin) return\n  sitedataDb.set(view.url, 'zoom', view.zoom)\n\n  // update all pages at the origin\n  tabManager.getAll(view.browserWindow).forEach(v => {\n    if (v !== view && v.origin === origin) {\n      v.zoom = z\n    }\n  })\n}\n\nexport function zoomIn (view) {\n  if (view.panes) view = view.activePane\n  setZoom(view, view.zoom + ZOOM_STEP)\n}\n\nexport function zoomOut (view) {\n  if (view.panes) view = view.activePane\n  setZoom(view, view.zoom - ZOOM_STEP)\n}\n\nexport function zoomReset (view) {\n  if (view.panes) view = view.activePane\n  setZoom(view, 0)\n}"
  },
  {
    "path": "app/bg/ui/tray-icon.js",
    "content": "import { app, Tray, Menu, BrowserWindow, nativeTheme } from 'electron'\nimport path from 'path'\nimport { createShellWindow, restoreLastShellWindow } from './windows'\nimport * as tabManager from './tabs/manager'\nimport * as settingsDb from '../dbs/settings'\n\nconst IS_MAC = process.platform === 'darwin'\n\n// globals\n// =\n\nvar tray\n\n// exported api\n// =\n\nexport function setup () {\n  tray = new Tray(path.join(__dirname, getIcon()))\n  tray.setToolTip('Beaker Browser')\n  tray.on('click', e => tray.popupContextMenu())\n  settingsDb.on('set:run_background', buildMenu)\n  nativeTheme.on('updated', updateIcon)\n  buildMenu()\n}\n\n// internal\n// =\n\nfunction getIcon () {\n  if (IS_MAC) {\n    return nativeTheme.shouldUseDarkColors ? 'assets/img/tray-icon-white.png' : 'assets/img/tray-icon-black.png'\n  }\n  return 'assets/img/tray-icon-white@2x.png'\n}\n\nfunction updateIcon () {\n  tray.setImage(path.join(__dirname, getIcon()))\n}\n\nasync function buildMenu () {\n  var runBackground = !!(await settingsDb.get('run_background'))\n  const contextMenu = Menu.buildFromTemplate([\n    {label: 'Open new tab', click: onClickOpen},\n    {label: 'Restore last window', click: onClickRestore},\n    {type: 'separator'},\n    {type: 'checkbox', label: 'Let Beaker run in the background', checked: runBackground, click: () => onTogglePersist(!runBackground)},\n    {label: 'Quit Beaker', click: () => app.quit()}\n  ])\n  tray.setContextMenu(contextMenu)\n}\n\nfunction onClickOpen () {\n  var win = BrowserWindow.getAllWindows()[0]\n  if (win) {\n    win.show()\n    tabManager.create(win, undefined, {setActive: true})\n  } else {\n    createShellWindow()\n  }\n}\n\nfunction onClickRestore () {\n  restoreLastShellWindow()\n}\n\nfunction onTogglePersist (v) {\n  settingsDb.set('run_background', v ? 1 : 0)\n}"
  },
  {
    "path": "app/bg/ui/util.js",
    "content": "import * as modals from './subwindows/modals'\nimport * as shellWebAPI from '../web-apis/bg/shell'\nimport drivesWebAPI from '../web-apis/bg/drives'\nimport hyper from '../hyper/index'\nimport * as filesystem from '../filesystem/index'\nimport pda from 'pauls-dat-api2'\nimport { UserDeniedError } from 'beaker-error-constants'\n\nexport async function runSelectFileDialog (win, opts = {}) {\n    var res\n    try {\n      res = await modals.create(win.webContents, 'select-file', opts)\n    } catch (e) {\n      if (e.name !== 'Error') throw e // only rethrow if a specific error\n    }\n    if (!res) throw new UserDeniedError()\n    return res\n}\n\nexport async function runNewDriveFlow (win) {\n  let res\n  try {\n    res = await modals.create(win.webContents, 'create-drive', {})\n    if (res && res.gotoSync) {\n      await modals.create(win.webContents, 'folder-sync', {url: res.url, closeAfterSync: true})\n    }\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res || !res.url) throw new UserDeniedError()\n  return res.url\n}\n\nexport async function runNewDriveFromFolderFlow (folderPath) {\n  let newDrive\n  try {\n    let manifest = {title: folderPath.split('/').pop()}\n    newDrive = await hyper.drives.createNewDrive(manifest)\n    await filesystem.configDrive(newDrive.url)\n  } catch (e) {\n    console.log(e)\n    throw e\n  }\n\n  await pda.exportFilesystemToArchive({\n    srcPath: folderPath,\n    dstArchive: newDrive.session.drive,\n    dstPath: '/',\n    inplaceImport: true\n  })\n\n  return newDrive.url\n}\n\nexport async function runForkFlow (win, url, {detached} = {detached: false}) {\n  var res\n  try {\n    let forks = await drivesWebAPI.getForks(url)\n    res = await modals.create(win.webContents, 'fork-drive', {url, forks, detached})\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res || !res.url) throw new UserDeniedError()\n  return res.url\n}\n\nexport async function runDrivePropertiesFlow (win, key) {\n  await shellWebAPI.drivePropertiesDialog.call({sender: win}, key)\n}\n\nexport async function exportDriveToFilesystem (sourceUrl, targetPath) {\n  var drive = await hyper.drives.getOrLoadDrive(sourceUrl)\n  return pda.exportArchiveToFilesystem({\n    srcArchive: drive.session.drive,\n    srcPath: '/',\n    dstPath: targetPath,\n    overwriteExisting: true,\n    skipUndownloadedFiles: false\n  })\n}\n\nexport async function importFilesystemToDrive (srcPath, targetUrl, {preserveFolder} = {preserveFolder: false}) {\n  var targetUrlp = new URL(targetUrl)\n  var drive = await hyper.drives.getOrLoadDrive(targetUrlp.hostname)\n  return pda.exportFilesystemToArchive({\n    srcPath,\n    dstArchive: drive.session.drive,\n    dstPath: targetUrlp.pathname,\n    inplaceImport: !preserveFolder\n  })\n}"
  },
  {
    "path": "app/bg/ui/window-menu.js",
    "content": "import { app, BrowserWindow, dialog, Menu } from 'electron'\nimport { createShellWindow, toggleShellInterface, getActiveWindow, getFocusedDevToolsHost } from './windows'\nimport { runSelectFileDialog, runForkFlow, runDrivePropertiesFlow, exportDriveToFilesystem, importFilesystemToDrive } from './util'\nimport { getEnvVar } from '../lib/env'\nimport * as tabManager from './tabs/manager'\nimport * as viewZoom from './tabs/zoom'\nimport * as shellMenus from './subwindows/shell-menus'\nimport { download } from './downloads'\nimport hyper from '../hyper/index'\nimport * as settingsDb from '../dbs/settings'\n\n// globals\n// =\n\nvar currentMenuTemplate\n\n// exported APIs\n// =\n\nexport function setup () {\n  setApplicationMenu({noWindows: true})\n\n  // watch for changes to the currently active window\n  app.on('browser-window-focus', async (e, win) => {\n    try {\n      setApplicationMenu()\n    } catch (e) {\n      // `pages` not set yet\n    }\n  })\n\n  // watch for all windows to be closed\n  app.on('custom-window-all-closed', () => {\n    setApplicationMenu({noWindows: true})\n  })\n\n  // watch for any window to be opened\n  app.on('browser-window-created', () => {\n    setApplicationMenu()\n  })\n}\n\nexport function onSetCurrentLocation (win) {\n  // check if this is the currently focused window\n  if (win !== BrowserWindow.getFocusedWindow()) {\n    return\n  }\n  setApplicationMenu()\n}\n\nexport function setApplicationMenu (opts = {}) {\n  currentMenuTemplate = buildWindowMenu(opts)\n  Menu.setApplicationMenu(Menu.buildFromTemplate(currentMenuTemplate))\n}\n\nexport function buildWindowMenu (opts = {}) {\n  var win = opts.noWindows ? undefined : opts.win ? opts.win : getActiveWindow()\n  if (win && win.isDestroyed()) win = undefined\n  const noWindows = !win\n  const tab = !noWindows && win ? tabManager.getActive(win) : undefined\n  const url = tab?.url || tab?.loadingURL || ''\n  const isDriveSite = url.startsWith('hyper://')\n  const driveInfo = isDriveSite ? tab.driveInfo : undefined\n  const isWritable = driveInfo && driveInfo.writable\n\n  var darwinMenu = {\n    label: 'Beaker',\n    submenu: [\n      {\n        label: 'Preferences',\n        accelerator: 'Cmd+,',\n        click (item) {\n          if (win) tabManager.create(win, 'beaker://settings', {setActive: true})\n          else createShellWindow({ pages: ['beaker://settings'] })\n        }\n      },\n      { type: 'separator' },\n      { label: 'Services', role: 'services', submenu: [] },\n      { type: 'separator' },\n      { label: 'Hide Beaker', accelerator: 'Cmd+H', role: 'hide' },\n      { label: 'Hide Others', accelerator: 'Cmd+Alt+H', role: 'hideothers' },\n      { label: 'Show All', role: 'unhide' },\n      { type: 'separator' },\n      {\n        id: 'quit',\n        label: 'Quit',\n        accelerator: 'Cmd+Q',\n        async click () {\n          var runBackground = await settingsDb.get('run_background')\n          if (runBackground == 1) {\n            for (let win of BrowserWindow.getAllWindows()) {\n              win.close()\n            }\n          } else {\n            app.quit()\n          }\n        },\n        reserved: true\n      }\n    ]\n  }\n\n  var fileMenu = {\n    label: 'File',\n    submenu: [\n      {\n        id: 'newTab',\n        label: 'New Tab',\n        accelerator: 'CmdOrCtrl+T',\n        click: function (item) {\n          if (win) {\n            tabManager.create(win, undefined, {setActive: true, focusLocationBar: true})\n          } else {\n            createShellWindow()\n          }\n        },\n        reserved: true\n      },\n      {\n        id: 'newWindow',\n        label: 'New Window',\n        accelerator: 'CmdOrCtrl+N',\n        click: function () { createShellWindow() },\n        reserved: true\n      },\n      { type: 'separator' },\n      {\n        id: 'openFile',\n        label: 'Open File',\n        accelerator: 'CmdOrCtrl+O',\n        click: item => {\n          createWindowIfNone(win, async (win) => {\n            var res = await runSelectFileDialog(win, {\n              buttonLabel: 'Open File'\n            })\n            tabManager.create(win, res[0].url, {setActive: true, adjacentActive: true})\n          })\n        }\n      },\n      { type: 'separator' },\n      // TODO\n      // {\n      //   id: 'savePageAs',\n      //   label: 'Save Page As...',\n      //   enabled: !noWindows,\n      //   accelerator: 'CmdOrCtrl+Shift+S',\n      //   click: async (item) => {\n      //     createWindowIfNone(getWin(), async (win) => {\n      //       if (!tab) return\n      //       const {url, title} = tab\n      //       var res = await runSelectFileDialog(win, {\n      //         saveMode: true,\n      //         title: `Save ${title} as...`,\n      //         buttonLabel: 'Save Page',\n      //         defaultFilename: url.split('/').filter(Boolean).pop() || 'index.html',\n      //         drive: url.startsWith('hyper:') ? url : undefined\n      //       })\n      //       let drive = await hyper.drives.getOrLoadDrive(res.origin)\n      //       await drive.pda.writeFile(res.path, await fetch(url))\n      //       tabManager.create(win, res.url, {setActive: true, adjacentActive: true})\n      //     })\n      //   }\n      // },\n      {\n        id: 'exportPageAs',\n        label: 'Export Page As...',\n        enabled: !noWindows,\n        click: async (item) => {\n          if (!tab) return\n          const {url, title} = tab\n          var {filePath} = await dialog.showSaveDialog({ title: `Save ${title} as...`, defaultPath: app.getPath('downloads') })\n          if (filePath) download(win, win.webContents, url, { saveAs: filePath, suppressNewDownloadEvent: true })\n        }\n      },\n      {\n        id: 'print',\n        label: 'Print',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+P',\n        click: (item) => {\n          if (!tab) return\n          tab.webContents.print()\n        }\n      },\n      { type: 'separator' },\n      {\n        id: 'reopenClosedTab',\n        label: 'Reopen Closed Tab',\n        accelerator: 'CmdOrCtrl+Shift+T',\n        click: function (item) {\n          createWindowIfNone(win, (win) => {\n            tabManager.reopenLastRemoved(win)\n          })\n        },\n        reserved: true\n      },\n      {\n        id: 'closeTab',\n        label: 'Close Tab',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+W',\n        click: function (item) {\n          if (win) {\n            // a regular browser window\n            let active = tabManager.getActive(win)\n            if (active) active.removePane(active.activePane)\n          } else {\n            // devtools\n            let wc = getFocusedDevToolsHost()\n            if (wc) {\n              wc.closeDevTools()\n            }\n          }\n        },\n        reserved: true\n      },\n      {\n        id: 'closeWindow',\n        label: 'Close Window',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Shift+W',\n        click: function (item) {\n          if (win) win.close()\n        },\n        reserved: true\n      }\n    ]\n  }\n\n  var editMenu = {\n    label: 'Edit',\n    submenu: [\n      { id: 'undo', label: 'Undo', enabled: !noWindows, accelerator: 'CmdOrCtrl+Z', selector: 'undo:', reserved: true },\n      { id: 'redo', label: 'Redo', enabled: !noWindows, accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:', reserved: true },\n      { type: 'separator' },\n      { id: 'cut', label: 'Cut', enabled: !noWindows, accelerator: 'CmdOrCtrl+X', selector: 'cut:', reserved: true },\n      { id: 'copy', label: 'Copy', enabled: !noWindows, accelerator: 'CmdOrCtrl+C', selector: 'copy:', reserved: true },\n      { id: 'paste', label: 'Paste', enabled: !noWindows, accelerator: 'CmdOrCtrl+V', selector: 'paste:', reserved: true },\n      { id: 'selectAll', label: 'Select All', enabled: !noWindows, accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' },\n      { type: 'separator' },\n      {\n        id: 'findInPage',\n        label: 'Find in Page',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+F',\n        click: function (item) {\n          if (tab) tab.showInpageFind()\n        }\n      },\n      {\n        id: 'findNext',\n        label: 'Find Next',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+G',\n        click: function (item) {\n          if (tab) tab.moveInpageFind(1)\n        }\n      },\n      {\n        id: 'findPrevious',\n        label: 'Find Previous',\n        enabled: !noWindows,\n        accelerator: 'Shift+CmdOrCtrl+G',\n        click: function (item) {\n          if (tab) tab.moveInpageFind(-1)\n        }\n      }\n    ]\n  }\n\n  var viewMenu = {\n    label: 'View',\n    submenu: [\n      {\n        id: 'reload',\n        label: 'Reload',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+R',\n        click: function (item) {\n          if (tab) tab.webContents.reload()\n        },\n        reserved: true\n      },\n      {\n        id: 'hardReload',\n        label: 'Hard Reload (Clear Cache)',\n        accelerator: 'CmdOrCtrl+Shift+R',\n        enabled: !noWindows,\n        click: function (item) {\n          if (tab) tab.webContents.reloadIgnoringCache()\n        },\n        reserved: true\n      },\n      {type: 'separator'},\n      {\n        id: 'zoomIn',\n        label: 'Zoom In',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Plus',\n        reserved: true,\n        click: function (item) {\n          if (tab) viewZoom.zoomIn(tab)\n        }\n      },\n      {\n        id: 'zoomOut',\n        label: 'Zoom Out',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+-',\n        reserved: true,\n        click: function (item) {\n          if (tab) viewZoom.zoomOut(tab)\n        }\n      },\n      {\n        id: 'actualSize',\n        label: 'Actual Size',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+0',\n        click: function (item) {\n          if (tab) viewZoom.zoomReset(tab)\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'splitPaneVertical',\n        label: 'Split Pane Vertically',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+E',\n        click () {\n          if (tab && tab.activePane) {\n            tab.splitPane(tab.activePane, 'vert')\n          }\n        }\n      },\n      {\n        id: 'splitPaneHorizontal',\n        label: 'Split Pane Horizontally',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Shift+E',\n        click () {\n          if (tab && tab.activePane) {\n            tab.splitPane(tab.activePane, 'horz')\n          }\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'selectPaneUp',\n        label: 'Select Pane Up',\n        enabled: !noWindows,\n        accelerator: `${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Up`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.activateAdjacentPane('up')\n          }\n        }\n      },\n      {\n        id: 'selectPaneDown',\n        label: 'Select Pane Down',\n        enabled: !noWindows,\n        accelerator: `${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Down`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.activateAdjacentPane('down')\n          }\n        }\n      },\n      {\n        id: 'selectPaneLeft',\n        label: 'Select Pane Left',\n        enabled: !noWindows,\n        accelerator: `${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Left`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.activateAdjacentPane('left')\n          }\n        }\n      },\n      {\n        id: 'selectPaneRight',\n        label: 'Select Pane Right',\n        enabled: !noWindows,\n        accelerator: `${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Right`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.activateAdjacentPane('right')\n          }\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'movePaneUp',\n        label: 'Move Pane Up',\n        enabled: !noWindows,\n        accelerator: `Shift+${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Up`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.movePane(tab.activePane, 'up')\n          }\n        }\n      },\n      {\n        id: 'movePaneDown',\n        label: 'Move Pane Down',\n        enabled: !noWindows,\n        accelerator: `Shift+${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Down`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.movePane(tab.activePane, 'down')\n          }\n        }\n      },\n      {\n        id: 'movePaneLeft',\n        label: 'Move Pane Left',\n        enabled: !noWindows,\n        accelerator: `Shift+${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Left`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.movePane(tab.activePane, 'left')\n          }\n        }\n      },\n      {\n        id: 'movePaneRight',\n        label: 'Move Pane Right',\n        enabled: !noWindows,\n        accelerator: `Shift+${(process.platform !== 'darwin') ? 'Ctrl+Alt' : 'Ctrl+Cmd'}+Right`,\n        click () {\n          if (tab && tab.activePane) {\n            tab.movePane(tab.activePane, 'right')\n          }\n        }\n      }\n    ]\n  }\n\n  var driveMenu = {\n    label: 'Drive',\n    submenu: [\n      {\n        id: 'toggleFilesExplorer',\n        label: 'Explore Files',\n        enabled: !noWindows && !!isDriveSite,\n        click: async function (item) {\n          if (tab) tab.togglePaneByOrigin({url: 'beaker://explorer/'})\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'forkDrive',\n        label: 'Fork Drive',\n        enabled: !!isDriveSite,\n        async click (item) {\n          if (win) {\n            let newUrl = await runForkFlow(win, url)\n            tabManager.create(win, newUrl, {setActive: true})\n          }\n        }\n      },\n      {\n        id: 'diffMerge',\n        label: 'Diff / Merge',\n        enabled: !!isDriveSite,\n        async click (item) {\n          if (win) tabManager.create(win, `beaker://diff/?base=${url}`, {setActive: true})\n        }\n      },\n      { type: 'separator' },\n      {\n        id: 'importFiles',\n        label: 'Import Files',\n        enabled: !noWindows && isDriveSite && isWritable,\n        click: async (item) => {\n          if (!driveInfo || !driveInfo.writable) return\n          var {filePaths} = await dialog.showOpenDialog({\n            title: `Import Files`,\n            buttonLabel: 'Select File(s)',\n            properties: ['openFile', 'multiSelections']\n          })\n          if (!filePaths[0]) return\n          var res = await runSelectFileDialog(win, {\n            title: 'Choose where to import to',\n            buttonLabel: 'Import File(s)',\n            drive: driveInfo.url,\n            select: 'folder'\n          })\n          var targetUrl = res[0].url\n          let confirmation = await dialog.showMessageBox({\n            type: 'question',\n            message: `Import ${filePaths.length > 1 ? `${filePaths.length} files` : filePaths[0]} to ${targetUrl}? Any conflicting files will be overwritten.`,\n            buttons: ['OK', 'Cancel']\n          })\n          if (confirmation.response !== 0) return\n          for (let filePath of filePaths) {\n            await importFilesystemToDrive(filePath, targetUrl)\n          }\n          dialog.showMessageBox({message: 'Import complete'})\n        }\n      },\n      {\n        id: 'importFolder',\n        label: 'Import Folder',\n        enabled: !noWindows && isDriveSite && isWritable,\n        click: async (item) => {\n          if (!driveInfo || !driveInfo.writable) return\n          var {filePaths} = await dialog.showOpenDialog({\n            title: `Import Folder`,\n            buttonLabel: 'Select Folder(s)',\n            properties: ['openDirectory', 'multiSelections']\n          })\n          if (!filePaths[0]) return\n          var res = await runSelectFileDialog(win, {\n            title: 'Choose where to import to',\n            buttonLabel: 'Import Folder(s)',\n            drive: driveInfo.url,\n            select: 'folder'\n          })\n          var targetUrl = res[0].url\n          let confirmation = await dialog.showMessageBox({\n            type: 'question',\n            message: `Import ${filePaths.length > 1 ? `${filePaths.length} folders` : filePaths[0]} to ${targetUrl}? Any conflicting files will be overwritten.`,\n            buttons: ['OK', 'Cancel']\n          })\n          if (confirmation.response !== 0) return\n          for (let filePath of filePaths) {\n            await importFilesystemToDrive(filePath, targetUrl, {preserveFolder: true})\n          }\n          dialog.showMessageBox({message: 'Import complete'})\n        }\n      },\n      {\n        id: 'exportFiles',\n        label: 'Export Files',\n        enabled: !noWindows && isDriveSite,\n        click: async (item) => {\n          if (!driveInfo) return\n          var {filePaths} = await dialog.showOpenDialog({\n            title: `Export Drive Files`,\n            buttonLabel: 'Export',\n            properties: ['openDirectory', 'createDirectory']\n          })\n          if (!filePaths[0]) return\n          let confirmation = await dialog.showMessageBox({\n            type: 'question',\n            message: `Export ${driveInfo.title || driveInfo.key} to ${filePaths[0]}? Any conflicting files will be overwritten.`,\n            buttons: ['OK', 'Cancel']\n          })\n          if (confirmation.response !== 0) return\n          await exportDriveToFilesystem(driveInfo.url, filePaths[0])\n          dialog.showMessageBox({message: 'Export complete'})\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'driveProperties',\n        label: 'Drive Properties',\n        enabled: !!isDriveSite,\n        async click (item) {\n          if (win) runDrivePropertiesFlow(win, hyper.drives.fromURLToKey(url))\n        }\n      }\n    ]\n  }\n\n  var showHistoryAccelerator = 'Ctrl+H'\n\n  if (process.platform === 'darwin') {\n    showHistoryAccelerator = 'Cmd+Y'\n  }\n\n  var historyMenu = {\n    label: 'History',\n    role: 'history',\n    submenu: [\n      {\n        id: 'back',\n        label: 'Back',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Left',\n        click: function (item) {\n          if (tab) tab.webContents.goBack()\n        }\n      },\n      {\n        id: 'forward',\n        label: 'Forward',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Right',\n        click: function (item) {\n          if (tab) tab.webContents.goForward()\n        }\n      },\n      {\n        id: 'showFullHistory',\n        label: 'Show Full History',\n        accelerator: showHistoryAccelerator,\n        click: function (item) {\n          if (win) tabManager.create(win, 'beaker://history', {setActive: true})\n          else createShellWindow({ pages: ['beaker://history'] })\n        }\n      },\n      { type: 'separator' },\n      {\n        id: 'bookmarkThisPage',\n        label: 'Bookmark this Page',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+D',\n        click: function (item) {\n          if (win) win.webContents.send('command', 'create-bookmark')\n        }\n      }\n    ]\n  }\n\n  var developerMenu = {\n    label: 'Developer',\n    submenu: [\n      {\n        id: 'toggleDevTools',\n        label: 'Toggle DevTools',\n        enabled: !noWindows,\n        accelerator: (process.platform === 'darwin') ? 'Alt+CmdOrCtrl+I' : 'Shift+CmdOrCtrl+I',\n        click: function (item) {\n          if (tab) tab.webContents.toggleDevTools()\n        },\n        reserved: true\n      },\n      {\n        id: 'toggleEditor',\n        label: 'Toggle Editor',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+B',\n        click: async function (item) {\n          if (tab) tab.togglePaneByOrigin({url: 'beaker://editor/'})\n        }\n      },\n      {\n        id: 'toggleTerminal',\n        label: 'Toggle Terminal',\n        enabled: !noWindows,\n        accelerator: 'Ctrl+`',\n        click: function (item) {\n          if (tab) tab.togglePaneByOrigin({url: 'beaker://webterm/'})\n        }\n      },\n      {\n        id: 'toggleHypercoreDevtools',\n        label: 'Toggle Hypercore Devtools',\n        enabled: !noWindows,\n        click: async function (item) {\n          if (tab) tab.togglePaneByOrigin({url: 'beaker://hypercore-tools/'})\n        }\n      },\n      {\n        id: 'toggleLiveReloading',\n        label: 'Toggle Live Reloading',\n        enabled: !!isDriveSite,\n        click: function (item) {\n          if (tab) tab.toggleLiveReloading()\n        }\n      }\n    ]\n  }\n\n  if (getEnvVar('BEAKER_DEV_MODE')) {\n    developerMenu.submenu.unshift({\n      type: 'submenu',\n      label: 'Advanced Tools',\n      submenu: [\n        {\n          label: 'Reload Shell-Window',\n          enabled: !noWindows,\n          click: function () {\n            win.webContents.reloadIgnoringCache()\n          }\n        },\n        {\n          label: 'Toggle Shell-Window DevTools',\n          enabled: !noWindows,\n          click: function () {\n            win.webContents.openDevTools({mode: 'detach'})\n          }\n        }\n      ]\n    })\n  }\n\n  const gotoTabShortcut = index => ({\n    label: `Tab ${index}`,\n    enabled: !noWindows,\n    accelerator: `CmdOrCtrl+${index}`,\n    click: function (item) {\n      if (win) {\n        shellMenus.hide(win) // HACK: closes the background tray if it's open\n        tabManager.setActive(win, index - 1)\n      }\n    }\n  })\n  var windowMenu = {\n    label: 'Window',\n    role: 'window',\n    submenu: [\n      {\n        id: 'toggleAlwaysOnTop',\n        type: 'checkbox',\n        label: 'Always on Top',\n        checked: (win ? win.isAlwaysOnTop() : false),\n        click: function () {\n          if (win) win.setAlwaysOnTop(!win.isAlwaysOnTop())\n        }\n      },\n      {\n        label: 'Minimize',\n        accelerator: 'CmdOrCtrl+M',\n        role: 'minimize'\n      },\n      {type: 'separator'},\n      {\n        id: 'toggleFullScreen',\n        label: 'Full Screen',\n        enabled: !noWindows,\n        accelerator: (process.platform === 'darwin') ? 'Ctrl+Cmd+F' : 'F11',\n        role: 'toggleFullScreen',\n        click: function () {\n          if (win) {\n            win.setFullScreen(!win.isFullScreen())\n          }\n        }\n      },\n      {\n        id: 'toggleBrowserUi',\n        label: 'Toggle Browser UI',\n        enabled: !noWindows,\n        accelerator: 'CmdOrCtrl+Shift+H',\n        click: function (item) {\n          if (win) toggleShellInterface(win)\n        }\n      },\n      {\n        id: 'focusLocationBar',\n        label: 'Focus Location Bar',\n        accelerator: 'CmdOrCtrl+L',\n        click: function (item) {\n          createWindowIfNone(win, (win) => {\n            win.webContents.send('command', 'focus-location')\n          })\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'nextTab',\n        label: 'Next Tab',\n        enabled: !noWindows,\n        accelerator: (process.platform === 'darwin') ? 'Alt+CmdOrCtrl+Right' : 'CmdOrCtrl+PageDown',\n        click: function (item) {\n          if (win) tabManager.changeActiveBy(win, 1)\n        }\n      },\n      {\n        id: 'previousTab',\n        label: 'Previous Tab',\n        enabled: !noWindows,\n        accelerator: (process.platform === 'darwin') ? 'Alt+CmdOrCtrl+Left' : 'CmdOrCtrl+PageUp',\n        click: function (item) {\n          if (win) tabManager.changeActiveBy(win, -1)\n        }\n      },\n      {\n        label: 'Tab Shortcuts',\n        type: 'submenu',\n        submenu: [\n          gotoTabShortcut(1),\n          gotoTabShortcut(2),\n          gotoTabShortcut(3),\n          gotoTabShortcut(4),\n          gotoTabShortcut(5),\n          gotoTabShortcut(6),\n          gotoTabShortcut(7),\n          gotoTabShortcut(8),\n          {\n            label: `Last Tab`,\n            enabled: !noWindows,\n            accelerator: `CmdOrCtrl+9`,\n            click: function (item) {\n              if (win) tabManager.setActive(win, tabManager.getAll(win).slice(-1)[0])\n            }\n          }\n        ]\n      },\n      {\n        id: 'popOutTab',\n        label: 'Pop Out Tab',\n        enabled: !noWindows,\n        accelerator: 'Shift+CmdOrCtrl+P',\n        click: function (item) {\n          if (tab) tabManager.popOutTab(tab)\n        }\n      }\n    ]\n  }\n  if (process.platform == 'darwin') {\n    windowMenu.submenu.push({\n      type: 'separator'\n    })\n    windowMenu.submenu.push({\n      label: 'Bring All to Front',\n      role: 'front'\n    })\n  }\n\n  var helpMenu = {\n    label: 'Help',\n    role: 'help',\n    submenu: [\n      {\n        id: 'beakerHelp',\n        label: 'Beaker Help',\n        accelerator: 'F1',\n        click: function (item) {\n          if (win) tabManager.create(win, 'https://docs.beakerbrowser.com/', {setActive: true})\n        }\n      },\n      {type: 'separator'},\n      {\n        id: 'reportIssue',\n        label: 'Report Issue',\n        click: function (item) {\n          if (win) tabManager.create(win, 'https://github.com/beakerbrowser/beaker/issues', {setActive: true})\n        }\n      },\n      {\n        id: 'beakerDiscussions',\n        label: 'Discussion Forum',\n        click: function (item) {\n          if (win) tabManager.create(win, 'https://github.com/beakerbrowser/beaker/discussions', {setActive: true})\n        }\n      }\n    ]\n  }\n  if (process.platform !== 'darwin') {\n    helpMenu.submenu.push({ type: 'separator' })\n    helpMenu.submenu.push({\n      label: 'About',\n      role: 'about',\n      click: function (item) {\n        if (win) tabManager.create(win, 'beaker://settings', {setActive: true})\n      }\n    })\n  }\n\n  // assemble final menu\n  var menus = [fileMenu, editMenu, viewMenu, driveMenu, historyMenu, developerMenu, windowMenu, helpMenu]\n  if (process.platform === 'darwin') menus.unshift(darwinMenu)\n  return menus\n}\n\nexport function triggerMenuItemById (menuLabel, id) {\n  if (!currentMenuTemplate) return\n  var items = currentMenuTemplate.find(menu => menu.label === menuLabel).submenu\n  if (!items) return\n  var item = items.find(item => item.id === id)\n  return item.click()\n}\n\n// internal helpers\n// =\n\nfunction createWindowIfNone (win, onShow) {\n  if (win) return onShow(win)\n  win = createShellWindow()\n  win.once('show', onShow.bind(null, win))\n}\n"
  },
  {
    "path": "app/bg/ui/windows.js",
    "content": "import {app, BrowserWindow, ipcMain, webContents, dialog, nativeTheme} from 'electron'\nimport {defaultBrowsingSessionState, defaultWindowState} from './default-state'\nimport SessionWatcher, { getLastRecordedPositioning } from './session-watcher'\nimport jetpack from 'fs-jetpack'\nimport * as tabManager from './tabs/manager'\nimport {\n  createGlobalKeybindingsHandler,\n  createKeybindingProtectionsHandler,\n  registerGlobalKeybinding\n} from './keybindings'\nimport path from 'path'\nimport * as openURL from '../open-url'\nimport * as downloads from './downloads'\nimport * as permissions from './permissions'\nimport * as shellMenusSubwindow from './subwindows/shell-menus'\nimport * as locationBarSubwindow from './subwindows/location-bar'\nimport * as promptsSubwindow from './subwindows/prompts'\nimport * as permPromptSubwindow from './subwindows/perm-prompt'\nimport * as modalsSubwindow from './subwindows/modals'\nimport * as overlaySubwindow from './subwindows/overlay'\nimport * as siteInfoSubwindow from './subwindows/site-info'\nimport * as tabSwitcherSubwindow from './subwindows/tab-switcher'\nimport { findWebContentsParentWindow } from '../lib/electron'\nimport * as settingsDb from '../dbs/settings'\nimport { getEnvVar } from '../lib/env'\nimport _pick from 'lodash.pick'\nimport * as logLib from '../logger'\nconst logger = logLib.child({category: 'browser'})\n\nconst IS_WIN = process.platform === 'win32'\nconst IS_LINUX = process.platform === 'linux'\nconst subwindows = {\n  locationBar: locationBarSubwindow,\n  menu: shellMenusSubwindow,\n  prompts: promptsSubwindow,\n  permPrompt: permPromptSubwindow,\n  modals: modalsSubwindow,\n  overlay: overlaySubwindow,\n  siteInfo: siteInfoSubwindow,\n  tabSwitcher: tabSwitcherSubwindow\n}\n\n// globals\n// =\n\nvar userDataDir\nvar numActiveWindows = 0\nvar firstWindow = null\nvar sessionWatcher = null\nvar focusedDevtoolsHost\nvar hasFirstWindowLoaded = false\nvar isTabSwitcherActive = {} // map of {[window.id] => Boolean}\nvar windowAddedSettings = {} // map of {[window.id] => Object}\nconst BROWSING_SESSION_PATH = './shell-window-state.json'\nexport const ICON_PATH = path.join(__dirname, (process.platform === 'win32') ? './assets/img/logo.ico' : './assets/img/logo.png')\nexport const PRELOAD_PATH = path.join(__dirname, 'fg', 'shell-window', 'index.build.js')\n\n// exported methods\n// =\n\nexport async function setup () {\n  // config\n  userDataDir = jetpack.cwd(app.getPath('userData'))\n  sessionWatcher = new SessionWatcher(userDataDir)\n  var previousSessionState = getPreviousBrowsingSession()\n  var customStartPage = await settingsDb.get('custom_start_page')\n  var isTestDriverActive = !!getEnvVar('BEAKER_TEST_DRIVER')\n  var isOpenUrlEnvVar = !!getEnvVar('BEAKER_OPEN_URL')\n\n  // set up app events\n  app.on('activate', () => {\n    // wait for ready (not waiting can trigger errors)\n    if (app.isReady()) ensureOneWindowExists()\n    else app.on('ready', ensureOneWindowExists)\n  })\n  ipcMain.on('new-window', () => createShellWindow())\n  app.on('custom-window-all-closed', async () => {\n    if (process.platform !== 'darwin') {\n      var runBackground = await settingsDb.get('run_background')\n      if (runBackground != 1) {\n        app.quit()\n      }\n    }\n  })\n\n  openURL.setup()\n  await tabManager.setup()\n\n  app.on('custom-background-tabs-update', backgroundTabs => {\n    sessionWatcher.updateBackgroundTabs(backgroundTabs)\n  })\n\n  app.on('custom-ready-to-show', () => {\n    if (!previousSessionState.backgroundTabs) return\n    tabManager.initializeBackgroundFromSnapshot(previousSessionState)\n  })\n\n  app.on('before-quit', async e => {\n    sessionWatcher.stopRecording()\n    sessionWatcher.exit()\n  })\n\n  app.on('web-contents-created', async (e, wc) => {\n    // await setup\n    await new Promise(resolve => wc.once('did-start-loading', resolve))\n\n    // handle shell-window webcontents\n    const window = BrowserWindow.fromWebContents(wc)\n    if (window) {\n      // attach global keybindings\n      wc.on('before-input-event', globalTabSwitcherKeyHandler)\n      wc.on('before-input-event', createGlobalKeybindingsHandler(window))\n      return\n    }\n\n    // handle tab webcontents\n    var parentWindow = findWebContentsParentWindow(wc)\n    if (!parentWindow) {\n      parentWindow = tabManager.findContainingWindow(wc)\n      if (!parentWindow) {\n        return\n      }\n    }\n\n    // attach global keybindings\n    wc.on('before-input-event', globalTabSwitcherKeyHandler)\n    wc.on('before-input-event', createGlobalKeybindingsHandler(parentWindow))\n    wc.on('before-input-event', createKeybindingProtectionsHandler(parentWindow))\n\n    // HACK\n    // add link-click handling to page devtools\n    // (it would be much better to update Electron to support this, rather than overriding like this)\n    // -prf\n    wc.on('devtools-opened', () => {\n      if (wc.devToolsWebContents) {\n        wc.devToolsWebContents.executeJavaScript('InspectorFrontendHost.openInNewTab = (url) => window.open(url); undefined')\n        wc.devToolsWebContents.on('new-window', (e, url) => {\n          if (url.startsWith('chrome-devtools://')) return // ignore\n          tabManager.create(parentWindow, url, {setActive: true, adjacentActive: true})\n        })\n      }\n    })\n\n    // track focused devtools host\n    wc.on('devtools-focused', () => { focusedDevtoolsHost = wc })\n    wc.on('devtools-closed', unfocusDevtoolsHost)\n    wc.on('destroyed', unfocusDevtoolsHost)\n    function unfocusDevtoolsHost () {\n      if (focusedDevtoolsHost === wc) {\n        focusedDevtoolsHost = undefined\n      }\n    }\n  })\n\n  if (!isTestDriverActive && !isOpenUrlEnvVar && (customStartPage === 'previous' || (!previousSessionState.cleanExit && userWantsToRestoreSession()))) {\n    // restore old window\n    restoreBrowsingSession(previousSessionState)\n  } else {\n    let opts = {}\n    if (previousSessionState.windows[0]) {\n      // use the last session's window position\n      let {x, y, width, height} = previousSessionState.windows[0]\n      opts.x = x\n      opts.y = y\n      opts.width = width\n      opts.height = height\n    }\n    if (isOpenUrlEnvVar) {\n      // use the env var if specified\n      opts.pages = [getEnvVar('BEAKER_OPEN_URL')]\n    }\n    // create new window\n    createShellWindow(opts)\n  }\n}\n\nexport function createShellWindow (windowState, createOpts = {dontInitPages: false}) {\n  if (!sessionWatcher) {\n    logger.error('Attempted to create a shell window prior to setup', {stack: (new Error()).stack})\n    return\n  }\n  // create window\n  let state = ensureVisibleOnSomeDisplay(Object.assign({}, defaultWindowState(), lastWindowPositioning(), windowState))\n  var { x, y, width, height, minWidth, minHeight } = state\n  var frameSettings = {\n    titleBarStyle: 'hidden',\n    trafficLightPosition: {x: 12, y: 20},\n    frame: IS_LINUX || IS_WIN,\n    title: undefined\n  }\n  var win = new BrowserWindow(Object.assign({\n    autoHideMenuBar: false,\n    fullscreenable: true,\n    fullscreenWindowTitle: true,\n    alwaysOnTop: state.isAlwaysOnTop,\n    x,\n    y,\n    width,\n    height,\n    minWidth,\n    minHeight,\n    backgroundColor: '#fff',\n    webPreferences: {\n      preload: PRELOAD_PATH,\n      defaultEncoding: 'utf-8',\n      nodeIntegration: false,\n      contextIsolation: false,\n      webviewTag: false,\n      sandbox: true,\n      webSecurity: false, // disable same-origin-policy in the shell window, webviews have it restored\n      // enableRemoteModule: false, TODO would prefer this were true, but shell window needs this to get the webviews' webContents IDs -prf\n      allowRunningInsecureContent: false,\n      nativeWindowOpen: true\n    },\n    icon: ICON_PATH,\n    show: false // will show when ready\n  }, frameSettings))\n  win.once('ready-to-show', () => {\n    win.show()\n    if (!hasFirstWindowLoaded) {\n      hasFirstWindowLoaded = true\n      app.emit('custom-ready-to-show')\n    }\n  })\n  for (let k in subwindows) {\n    subwindows[k].setup(win)\n  }\n  downloads.registerListener(win)\n  win.loadURL('beaker://shell-window')\n  sessionWatcher.watchWindow(win, state)\n\n  numActiveWindows++\n  if (numActiveWindows === 1) {\n    firstWindow = win.webContents.id\n  }\n\n  ipcMain.on('shell-window:ready', handlePagesReady)\n  win.on('close', () => {\n    ipcMain.removeListener('shell-window:ready', handlePagesReady)\n    for (let k in subwindows) {\n      subwindows[k].destroy(win)\n    }\n    tabManager.destroyAll(win)\n  })\n\n  async function handlePagesReady ({ sender }) {\n    if (!win || win.isDestroyed()) return\n\n    if (sender === win.webContents) {\n      if (win.webContents.id === firstWindow) {\n        // if this is the first window opened (since app start or since all windows closing)\n        // NOTE this is legacy compat- the pins are now stored in the session state\n        tabManager.loadPins(win)\n      }\n      if (!createOpts.dontInitPages) {\n        tabManager.initializeWindowFromSnapshot(win, state.pages)\n        if (tabManager.getAll(win).length === 0) {\n          tabManager.create(win) // create default new tab\n        }\n      }\n      if (state.isShellInterfaceHidden) {\n        setShellInterfaceHidden(win, true)\n      }\n      if (state.isSidebarHidden) {\n        setSidebarHidden(win, true)\n      }\n      win.emit('custom-pages-ready')\n\n      // DISABLED\n      // not sure whether we'll need this\n      // -prf\n      // run setup modal\n      // let isTestDriverActive = !!getEnvVar('BEAKER_TEST_DRIVER')\n      // let hasDoneSetup = Number(await sitedataDb.get('beaker://shell-window', 'has_done_setup')) === 1\n      // if (!!getEnvVar('BEAKER_RUN_SETUP_FLOW')) {\n      //   hasDoneSetup = false\n      // }\n      // if (!isTestDriverActive && !hasDoneSetup) {\n      //   subwindows.modals.create(win.webContents, 'setup')\n      //   await sitedataDb.set('beaker://shell-window', 'has_done_setup', 1)\n      // }\n    }\n  }\n\n  // register shortcuts\n  registerGlobalKeybinding(win, 'CmdOrCtrl+[', onGoBack)\n  registerGlobalKeybinding(win, 'CmdOrCtrl+]', onGoForward)\n  registerGlobalKeybinding(win, 'Alt+D', onFocusLocation)\n  registerGlobalKeybinding(win, 'F5', onReload)\n  registerGlobalKeybinding(win, 'F6', onFocusLocation)\n\n  // register event handlers\n  win.on('browser-backward', onGoBack)\n  win.on('browser-forward', onGoForward)\n  // win.on('scroll-touch-begin', sendScrollTouchBegin) // TODO readd?\n  // win.on('scroll-touch-end', sendToWebContents('scroll-touch-end')) // TODO readd?\n  win.on('focus', e => {\n    // sendToWebContents('focus')(e) TODO readd?\n    var active = tabManager.getActive(win)\n    if (active) active.focus()\n  })\n  win.on('app-command', (e, cmd) => { onAppCommand(win, e, cmd) })\n  win.on('enter-full-screen', e => {\n    // update UI\n    tabManager.emitReplaceState(win)\n\n    // TODO\n    // registerGlobalKeybinding(win, 'Esc', onEscape(win))\n    // sendToWebContents('enter-full-screen')(e)\n  })\n  win.on('leave-full-screen', e => {\n    // update UI\n    tabManager.emitReplaceState(win)\n\n    // TODO\n    // unregisterGlobalKeybinding(win, 'Esc')\n    // sendToWebContents('leave-full-screen')(e)\n  })\n  function onMaxChange () {\n    tabManager.resize(win)\n    // on ubuntu, the maximize/unmaximize animations require multiple resizings\n    setTimeout(() => tabManager.resize(win), 250)\n    setTimeout(() => tabManager.resize(win), 500)\n  }\n  win.on('maximize', onMaxChange)\n  win.on('unmaximize', onMaxChange)\n  win.on('resize', () => {\n    tabManager.resize(win)\n    for (let k in subwindows) {\n      subwindows[k].reposition(win)\n    }\n  })\n  win.on('move', () => {\n    for (let k in subwindows) {\n      subwindows[k].reposition(win)\n    }\n  })\n  win.on('close', onClose(win))\n\n  return win\n}\n\nexport function restoreLastShellWindow () {\n  return createShellWindow(sessionWatcher.popLastClosedWindow())\n}\n\nexport function getActiveWindow () {\n  // try to pull the `focus`ed window; if there isnt one, fallback to the last created\n  var win = BrowserWindow.getFocusedWindow()\n  if (!win || win.webContents.getURL() !== 'beaker://shell-window/') {\n    win = BrowserWindow.getAllWindows().filter(win => win.webContents.getURL() === 'beaker://shell-window/').pop()\n  }\n  return win\n}\n\nexport function getFocusedDevToolsHost () {\n  // check first if it's the shell window's devtools\n  let win = BrowserWindow.getAllWindows().find(w => w.webContents.isDevToolsFocused())\n  if (win) return win.webContents\n  // fallback to our manually tracked devtools host\n  return focusedDevtoolsHost\n}\n\nexport async function getFocusedWebContents (win) {\n  win = win || getActiveWindow()\n  var id = await win.webContents.executeJavaScript(`\n    (function () {\n      var webview = document.querySelector('webview:not(.hidden)')\n      return webview && webview.getWebContents().id\n    })()\n  `)\n  if (id) {\n    return webContents.fromId(id)\n  }\n}\n\nexport function getAddedWindowSettings (win) {\n  if (!win || !win.id) return {}\n  return windowAddedSettings[win.id] || {}\n}\n\nexport function updateAddedWindowSettings (win, settings) {\n  windowAddedSettings[win.id] = Object.assign(getAddedWindowSettings(win), settings)\n}\n\nexport function ensureOneWindowExists () {\n  if (numActiveWindows === 0) {\n    createShellWindow()\n  }\n}\n\nexport function toggleShellInterface (win) {\n  setShellInterfaceHidden(win, !getAddedWindowSettings(win).isShellInterfaceHidden)\n}\n\nexport function setShellInterfaceHidden (win, isShellInterfaceHidden) {\n  updateAddedWindowSettings(win, {isShellInterfaceHidden})\n  if (win.setWindowButtonVisibility) {\n    win.setWindowButtonVisibility(!isShellInterfaceHidden)\n  }\n  sessionWatcher.updateState(win, {isShellInterfaceHidden})\n  tabManager.emitReplaceState(win)\n  win.emit('resize')\n}\n\nexport function toggleSidebarHidden (win) {\n  setSidebarHidden(win, !getAddedWindowSettings(win).isSidebarHidden)\n}\n\nexport function setSidebarHidden (win, isSidebarHidden) {\n  updateAddedWindowSettings(win, {isSidebarHidden})\n  sessionWatcher.updateState(win, {isSidebarHidden})\n  tabManager.emitReplaceState(win)\n  win.emit('resize')\n}\n\n// internal methods\n// =\n\nfunction windowWithinBounds (windowState, bounds) {\n  return windowState.x >= bounds.x &&\n    windowState.y >= bounds.y &&\n    windowState.x + windowState.width <= bounds.x + bounds.width &&\n    windowState.y + windowState.height <= bounds.y + bounds.height\n}\n\nfunction userWantsToRestoreSession () {\n  let answer = dialog.showMessageBoxSync({\n    type: 'question',\n    message: 'Sorry! It looks like Beaker did not exit properly',\n    detail: 'Would you like to restore your previous browsing session?',\n    buttons: [ 'Restore Session', 'Start New Session' ],\n    defaultId: 0,\n    icon: ICON_PATH\n  })\n  return answer === 0\n}\n\nfunction restoreBrowsingSession (previousSessionState) {\n  let { windows } = previousSessionState\n  if (windows.length) {\n    for (let windowState of windows) {\n      if (windowState) {\n        createShellWindow(windowState)\n      }\n    }\n  } else {\n    createShellWindow()\n  }\n}\n\nfunction getPreviousBrowsingSession () {\n  var restoredState = {}\n  try {\n    restoredState = userDataDir.read(BROWSING_SESSION_PATH, 'json')\n  } catch (err) {\n    // For some reason json can't be read (might be corrupted).\n    // No worries, we have defaults.\n    console.error('Failed to read previous browsing session state', err)\n  }\n  return Object.assign({}, defaultBrowsingSessionState(), restoredState)\n}\n\nfunction lastWindowPositioning () {\n  var activeWin = getActiveWindow()\n  if (activeWin) {\n    return activeWin.getBounds()\n  }\n  return getLastRecordedPositioning()\n}\n\nfunction ensureVisibleOnSomeDisplay (windowState) {\n  // HACK\n  // for some reason, electron.screen comes back null sometimes\n  // not sure why, shouldn't be happening\n  // check for existence for now, see #690\n  // -prf\n  const screen = getScreenAPI()\n  var visible = screen && screen.getAllDisplays().some(display => windowWithinBounds(windowState, display.bounds))\n  if (!visible) {\n    // Window is partially or fully not visible now.\n    // Reset it to safe defaults.\n    return Object.assign({}, windowState, _pick(defaultWindowState(), ['x', 'y', 'width', 'height', 'minWidth', 'minHeight']))\n  }\n  return windowState\n}\n\n// shortcut event handlers\n// =\n\nfunction onClose (win) {\n  return e => {\n    numActiveWindows--\n    if (numActiveWindows === 0) {\n      // emit a custom 'window-all-closed'\n      // we need to do this because we have hidden windows running additional behaviors\n      app.emit('custom-window-all-closed')\n    }\n\n    // deny any outstanding permission requests\n    permissions.denyAllRequests(win)\n  }\n}\n\nfunction onGoBack () {\n  var win = BrowserWindow.getFocusedWindow()\n  tabManager.getActive(win).webContents.goBack()\n}\n\nfunction onGoForward () {\n  var win = BrowserWindow.getFocusedWindow()\n  tabManager.getActive(win).webContents.goForward()\n}\n\nfunction onReload () {\n  var win = BrowserWindow.getFocusedWindow()\n  tabManager.getActive(win).webContents.reload()\n}\n\nfunction onFocusLocation () {\n  var win = BrowserWindow.getFocusedWindow()\n  win.webContents.send('command', 'focus-location')\n}\n\nfunction onAppCommand (win, e, cmd) {\n  // handles App Command events (Windows)\n  // see https://electronjs.org/docs/all#event-app-command-windows\n  switch (cmd) {\n    case 'browser-backward':\n      tabManager.getActive(win).webContents.goBack()\n      break\n    case 'browser-forward':\n      tabManager.getActive(win).webContents.goForward()\n      break\n    default:\n      break\n  }\n}\n\nfunction onEscape (win) {\n  return () => win.webContents.send('window-event', 'leave-page-full-screen')\n}\n\n// tab switcher input handling\n// =\n\nfunction globalTabSwitcherKeyHandler (e, input) {\n  var win = getActiveWindow()\n\n  if (input.type === 'keyDown' && input.key === 'Tab' && input.control) {\n    if (!isTabSwitcherActive[win.id]) {\n      isTabSwitcherActive[win.id] = true\n      tabSwitcherSubwindow.show(win)\n    } else {\n      if (input.shift) {\n        tabSwitcherSubwindow.moveSelection(win, -1)\n      } else {\n        tabSwitcherSubwindow.moveSelection(win, 1)\n      }\n    }\n  } else if (isTabSwitcherActive[win.id] && input.type === 'keyUp' && input.key === 'Control') {\n    isTabSwitcherActive[win.id] = false\n    tabSwitcherSubwindow.hide(win)\n  }\n}\n\n// helpers\n// =\n\nfunction getScreenAPI () {\n  return require('electron').screen\n}"
  },
  {
    "path": "app/bg/wc-trust.js",
    "content": "/**\n * WebContents Trust tracker\n * \n * This is a slightly bizarre system that's written in reaction to some electron limitations.\n *\n * We need a way to determine if a given webContents is currently viewing a \"trusted interface.\"\n * Anything served by beaker:// is trusted, as is certain hyper:// resources which have a trusted\n * interface injected as the response (ie when it's not HTML and there's no custom frontend).\n * \n * The way we determine whether a trusted interface was served by hyper:// is by examining the\n * response headers, which Beaker has control over for hyper:// requests. If 'Beaker-Trusted-Interface'\n * is present, then we know to mark the WC as viewing a trusted interface.\n * \n * This knowledge needs to be tracked by each specific WC because there's the possibility that\n * a given URL changes its trusted status (fx a custom frontend is added). This would be easier\n * if Electron consistently told us the webContentsId of responses in the session.webRequests module,\n * but it does not. Therefore we have to manually track each webContents and match the responses\n * to the webContents. We do that by marking any WC's trust as \"unknown\" when a navigation starts\n * and noting the target URL. When the target URL is loaded, we find the WC with \"unknown\" trust\n * and the same target URL and then update the trust-rating accordingly.\n * \n * If a WC is trusted, it can be treated as beaker's internal code and therefore receive its\n * permissions.\n * \n * NOTES\n *  - This only tracks the mainframe, and so any non-mainframe (eg an iframe) should *not*\n *    be given trust through this system. This means iframes cant run trusted code, for now.\n */\n\nimport { app } from 'electron'\n\nexport const TRUST = {\n  UNKNOWN: -1,\n  UNTRUSTED: 0,\n  TRUSTED: 1\n}\n\n// globals\n// =\n\nvar wcInfos = {}\n\n// exported api\n// =\n\nexport function setup () {\n  app.on('web-contents-created', (e, wc) => trackWc(wc))\n}\n\nexport function isWcTrusted (wc) {\n  var wcid = (typeof wc === 'number') ? wc : wc.id\n  return wcInfos[wcid]?.trust === TRUST.TRUSTED\n}\n\nexport function setWcTrust (wc, trust) {\n  var wcid = (typeof wc === 'number') ? wc : wc.id\n  wcInfos[wcid] = {id: wcid, url: wc.getURL(), trust}\n}\n\nexport function onWebRequestCompleted (details) {\n  if (details.resourceType === 'mainFrame') {\n    // find the wc going to this URL with no trust currently assigned\n    var wcInfo\n    for (let id in wcInfos) {\n      if (wcInfos[id].trust === TRUST.UNKNOWN && wcInfos[id].url === details.url) {\n        wcInfo = wcInfos[id]\n        break\n      }\n    }\n    if (!wcInfo) {\n      return\n    }\n    if (details.url.startsWith('beaker://')) {\n      wcInfo.trust = TRUST.TRUSTED\n    } else if (details.url.startsWith('hyper://') && details.responseHeaders['Beaker-Trusted-Interface']) {\n      wcInfo.trust = TRUST.TRUSTED\n    } else {\n      wcInfo.trust = TRUST.UNTRUSTED\n    }\n  }\n}\n\n// internal methods\n// =\n\nfunction trackWc (wc) {\n  const id = wc.id\n  wcInfos[id] = {id, url: undefined, trust: TRUST.UNKNOWN}\n  wc.on('did-start-navigation', (e, url, isInPlace, isMainFrame) => {\n    if (isMainFrame && !isInPlace) {\n      // reset trust info\n      wcInfos[id].url = url\n      wcInfos[id].trust = TRUST.UNKNOWN\n    }\n  })\n  wc.on('destroyed', e => {\n    delete wcInfos[id]\n  })\n}"
  },
  {
    "path": "app/bg/web-apis/bg/beaker-filesystem.js",
    "content": "import { PermissionsError } from 'beaker-error-constants'\nimport * as filesystem from '../../filesystem/index'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} BeakerFilesystemPublicAPIRootRecord\n * @prop {string} url\n */\n\n// exported api\n// =\n\nexport default {\n  /**\n   * @returns {BeakerFilesystemPublicAPIRootRecord}\n   */\n  get () {\n    if (!this.sender.getURL().startsWith('beaker:')) {\n      throw new PermissionsError()\n    }\n    return {\n      url: filesystem.get().url\n    }\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/capabilities.js",
    "content": "import { parseDriveUrl } from '../../../lib/urls'\nimport * as capabilities from '../../hyper/capabilities'\n\n// exported api\n// =\n\nexport default {\n  /**\n   * @param {String} target\n   * @returns {Promise<String>}\n   */\n  async create (target) {\n    var origin = parseDriveUrl(this.sender.getURL()).origin\n    return capabilities.createCap(origin, target)\n  },\n\n  /**\n   * @param {String} capUrl\n   * @param {String} target\n   * @returns {Promise<Void>}\n   */\n  async modify (capUrl, target) {\n    var origin = parseDriveUrl(this.sender.getURL()).origin    \n    return capabilities.modifyCap(origin, capUrl, target)\n  },\n\n  /**\n   * @param {String} capUrl\n   * @returns {Promise<Void>}\n   */\n  async delete (capUrl) {\n    var origin = parseDriveUrl(this.sender.getURL()).origin    \n    return capabilities.deleteCap(origin, capUrl)\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/bg/contacts.js",
    "content": "import * as drives from '../../hyper/drives'\nimport * as shellAPI from './shell.js'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} BeakerContactPublicAPIContactRecord\n * @prop {string} url\n * @prop {string} title\n * @prop {string} description\n */\n\n// exported api\n// =\n\nexport default {\n  /**\n   * @returns {Promise<BeakerContactPublicAPIContactRecord>}\n   */\n  async requestProfile () {\n    var url = await shellAPI.selectDriveDialog.call(this, {tag: 'contact', writable: true})\n    let info = await drives.getDriveInfo(url, {ignoreCache: false, onlyCache: true}).catch(e => ({}))\n    return {\n      url,\n      title: info.title || '',\n      description: info.description || ''\n    }\n  },\n\n  /**\n   * @returns {Promise<BeakerContactPublicAPIContactRecord>}\n   */\n  async requestContact () {\n    var url = await shellAPI.selectDriveDialog.call(this, {tag: 'contact', writable: false})\n    let info = await drives.getDriveInfo(url, {ignoreCache: false, onlyCache: true}).catch(e => ({}))\n    return {\n      url,\n      title: info.title || '',\n      description: info.description || ''\n    }\n  },\n\n  /**\n   * @returns {Promise<Array<BeakerContactPublicAPIContactRecord>>}\n   */\n  async requestContacts () {\n    var urls = await shellAPI.selectDriveDialog.call(this, {tag: 'contact', allowMultiple: true, writable: false})\n    let infos = await Promise.all(urls.map(url => (\n      drives.getDriveInfo(url, {ignoreCache: false, onlyCache: true}).catch(e => ({}))\n    )))\n    return infos.map(info => ({\n      url: info.url,\n      title: info.title || '',\n      description: info.description || ''\n    }))\n  },\n\n  /**\n   * @param {string} url \n   * @returns {Promise<void>}\n   */\n  async requestAddContact (url) {\n    return shellAPI.saveDriveDialog.call(this, url, {tags: 'contact'})\n  },\n\n  /**\n   * @returns {Promise<Array<BeakerContactPublicAPIContactRecord>>}\n   */\n  async list () {\n    return shellAPI.listDrives.call(this, {tag: 'contact', writable: false})\n  },\n\n  async remove (url) {\n    return shellAPI.unsaveDrive.call(this, url)\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/dat-legacy.js",
    "content": "import * as archivesDb from '../../dbs/archives'\n\n// exported api\n// =\n\nexport default {\n  async list () {\n    return archivesDb.listLegacyArchives()\n  },\n\n  async remove (key) {\n    return archivesDb.removeLegacyArchive(key)\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/bg/drives.js",
    "content": "import hyper from '../../hyper/index'\nimport * as drives from '../../hyper/drives'\nimport * as archivesDb from '../../dbs/archives'\nimport { listDrives, configDrive, removeDrive, getDriveIdent } from '../../filesystem/index'\nimport * as trash from '../../filesystem/trash'\n\n// exported api\n// =\n\nexport default {\n  async get (key) {\n    key = await drives.fromURLToKey(key, true)\n    var drive = listDrives().find(drive => drive.key === key)\n    var info = await drives.getDriveInfo(key, {onlyCache: true}).catch(e => ({}))\n    var url = `hyper://${key}/`\n    var ident = getDriveIdent(url)\n    return {\n      key,\n      url,\n      info,\n      saved: !!drive,\n      forkOf: drive ? drive.forkOf : undefined,\n      ident\n    }\n  },\n\n  async list (opts) {\n    return assembleRecords(listDrives(opts))\n  },\n\n  async getForks (key) {\n    key = await drives.fromURLToKey(key, true)\n    var drivesList = listDrives()\n    var rootDrive = drivesList.find(drive => drive.key === key)\n    if (!rootDrive) return assembleRecords([{key}])\n\n    // find root of the tree\n    var seenKeys = new Set() // used to break cycles\n    while (rootDrive && rootDrive.forkOf && rootDrive.forkOf.key && !seenKeys.has(rootDrive.forkOf.key)) {\n      seenKeys.add(rootDrive.key)\n      rootDrive = drivesList.find(drive2 => drive2.key === rootDrive.forkOf.key)\n    }\n    if (!rootDrive) return []\n\n    // build the tree\n    var forks = []\n    function addForksOf (drive) {\n      if (forks.includes(drive)) return // cycle\n      forks.push(drive)\n      for (let drive2 of drivesList) {\n        if (drive2.forkOf && drive2.forkOf.key === drive.key) {\n          addForksOf(drive2)\n        }\n      }\n    }\n    addForksOf(rootDrive)\n\n    return assembleRecords(forks)\n  },\n\n  async configure (key, opts) {\n    return configDrive(key, opts)\n  },\n\n  async remove (key) {\n    return removeDrive(key)\n  },\n\n  async collectTrash () {\n    return trash.collect({olderThan: 0})\n  },\n\n  async delete (url) {\n    // TODO\n    // var drive = await drives.getOrLoadDrive(url)\n    // assertDriveDeletable(drive.key)\n    // await datLibrary.configureDrive(drive, {isSaved: false})\n    // await drives.unloadDrive(drive.key)\n    // var bytes = await archivesDb.deleteArchive(drive.key)\n    // return {bytes}\n  },\n\n  async touch (key, timeVar, value) {\n    return archivesDb.touch(key, timeVar, value)\n  },\n\n  async clearFileCache (url) {\n    return drives.clearFileCache(await drives.fromURLToKey(url, true))\n  },\n\n  clearDnsCache () {\n    hyper.dns.flushCache()\n  },\n\n  createEventStream () {\n    return drives.createEventStream()\n  },\n\n  getDebugLog (key) {\n    return drives.getDebugLog(key)\n  },\n\n  createDebugStream () {\n    return drives.createDebugStream()\n  }\n}\n\n// internal methods\n// =\n\nasync function assembleRecords (drivesList) {\n  var records = []\n  for (let drive of drivesList) {\n    let url = `hyper://${drive.key}/`\n    let ident = getDriveIdent(url)\n    records.push({\n      key: drive.key,\n      url,\n      tags: drive.tags || [],\n      info: await drives.getDriveInfo(drive.key, {onlyCache: true}),\n      saved: true,\n      forkOf: drive ? drive.forkOf : undefined,\n      ident\n    })\n  }\n  return records\n}"
  },
  {
    "path": "app/bg/web-apis/bg/experimental/capture-page.js",
    "content": "import * as beakerBrowser from '../../../browser'\nimport * as permissions from '../../../ui/permissions'\nimport { URL } from 'url'\n\n// constants\n// =\n\nconst API_DOCS_URL = 'https://beakerbrowser.com/docs/apis/experimental-capturepage.html'\nconst API_PERM_ID = 'experimentalCapturePage'\nconst LAB_API_ID = 'capturePage'\n\n// exported api\n// =\n\nexport default {\n  async capturePage (url, opts = {}) {\n    // validate inputs\n    if (!url && typeof url !== 'string') {\n      throw new Error('The first argument must be a URL string')\n    }\n    if (opts && typeof opts !== 'object') {\n      throw new Error('The second argument must be an options object')\n    }\n    if (opts) {\n      if ('width' in opts) {\n        if (typeof opts.width !== 'number') throw new Error('The width option must be a number')\n        if (opts.width <= 0 || opts.width > 1600) throw new Error('The width option must between 1 and 1600')\n      }\n      if ('height' in opts) {\n        if (typeof opts.height !== 'number') throw new Error('The height option must be a number')\n        if (opts.height <= 0 || opts.height > 1200) throw new Error('The height option must between 1 and 1200')\n      }\n      if ('resizeTo' in opts) {\n        if (typeof opts.resizeTo !== 'object') throw new Error('The resizeTo option must be an object')\n        if ('width' in opts.resizeTo) {\n          if (typeof opts.resizeTo.width !== 'number') throw new Error('The resizeTo.width option must be a number')\n          if (opts.resizeTo.width <= 0 || opts.resizeTo.width > 1600) throw new Error('The resizeTo.width option must between 1 and 1600')\n        }\n        if ('height' in opts.resizeTo) {\n          if (typeof opts.resizeTo.height !== 'number') throw new Error('The resizeTo.height option must be a number')\n          if (opts.resizeTo.height <= 0 || opts.resizeTo.height > 1200) throw new Error('The resizeTo.height option must between 1 and 1200')\n        }\n      }\n    }\n\n    // parse url\n    var urlp\n    try { urlp = new URL(url) }\n    catch (e) { throw new Error('The first argument must be a URL string') }\n\n    if (['http:', 'https:', 'hyper:'].indexOf(urlp.protocol) === -1) {\n      throw new Error('Can only capture pages served over http, https, or hyper')\n    }\n\n    // check perms\n    await permissions.checkLabsPerm({\n      perm: API_PERM_ID + ':' + url,\n      labApi: LAB_API_ID,\n      apiDocsUrl: API_DOCS_URL,\n      sender: this.sender\n    })\n\n    // run method\n    var img = await beakerBrowser.capturePage(url, opts)\n    return img.toPNG()\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/experimental/dat-peers.js",
    "content": "import { parseDriveUrl } from '../../../../lib/urls'\nimport { PermissionsError } from 'beaker-error-constants'\nimport * as permissions from '../../../ui/permissions'\nimport * as drives from '../../../hyper/drives'\nimport * as hyperDns from '../../../hyper/dns'\nimport { HYPERDRIVE_HASH_REGEX } from '../../../../lib/const'\n\n// constants\n// =\n\nconst API_DOCS_URL = 'https://beakerbrowser.com/docs/apis/experimental-datpeers.html'\nconst API_PERM_ID = 'experimentalDatPeers'\nconst LAB_API_ID = 'datPeers'\nconst LAB_PERMS_OBJ = {perm: API_PERM_ID, labApi: LAB_API_ID, apiDocsUrl: API_DOCS_URL}\n\n// exported api\n// =\n\nexport default {\n  async list () {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_listPeers(drive.key.toString('hex'))\n  },\n\n  async get (peerId) {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_getPeer(drive.key.toString('hex'), peerId)\n  },\n\n  async broadcast (data) {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_broadcastEphemeralMessage(drive.key.toString('hex'), data)\n  },\n\n  async send (peerId, data) {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_sendEphemeralMessage(drive.key.toString('hex'), peerId, data)\n  },\n\n  async getSessionData () {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_getSessionData(drive.key.toString('hex'))\n  },\n\n  async setSessionData (sessionData) {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_setSessionData(drive.key.toString('hex'), sessionData)\n  },\n\n  async createEventStream () {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    var drive = await getSenderDrive(this.sender)\n    // TODO return drives.getDaemon().ext_createDatPeersStream(drive.key.toString('hex'))\n  },\n\n  async getOwnPeerId () {\n    await permissions.checkLabsPerm(Object.assign({sender: this.sender}, LAB_PERMS_OBJ))\n    // TODO return drives.getDaemon().ext_getOwnPeerId()\n  }\n}\n\n// internal methods\n// =\n\nasync function getSenderDrive (sender) {\n  var url = sender.getURL()\n  if (!url.startsWith('hyper:')) {\n    throw new PermissionsError('Only hyper:// sites can use the datPeers API')\n  }\n  var urlp = parseDriveUrl(url)\n  if (!HYPERDRIVE_HASH_REGEX.test(urlp.host)) {\n    urlp.host = await hyperDns.resolveName(url)\n  }\n  return drives.getDrive(urlp.host)\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/experimental/global-fetch.js",
    "content": "import * as permissions from '../../../ui/permissions'\nimport http from 'http'\nimport https from 'https'\nimport concat from 'concat-stream'\nimport { URL } from 'url'\n\n// constants\n// =\n\nconst API_DOCS_URL = 'https://beakerbrowser.com/docs/apis/experimental-globalfetch.html'\nconst API_PERM_ID = 'experimentalGlobalFetch'\nconst LAB_API_ID = 'globalFetch'\n\n// exported api\n// =\n\nexport default {\n  async fetch (reqOptions, reqBody) {\n    // parse url\n    var urlp = new URL(reqOptions.url)\n    reqOptions.protocol = urlp.protocol\n    reqOptions.host = urlp.host\n    reqOptions.path = urlp.pathname + urlp.search + urlp.hash\n\n    // check perms\n    await permissions.checkLabsPerm({\n      perm: API_PERM_ID + ':' + reqOptions.protocol + '//' + reqOptions.host,\n      labApi: LAB_API_ID,\n      apiDocsUrl: API_DOCS_URL,\n      sender: this.sender\n    })\n\n    if (reqOptions.protocol !== 'https:' && reqOptions.protocol !== 'http:') {\n      throw new Error('Can only send requests to http or https URLs')\n    }\n\n    return new Promise((resolve, reject) => {\n      // start request\n      var proto = urlp.protocol === 'https:' ? https : http\n      var reqStream = proto.request(reqOptions, resStream => {\n        resStream.pipe(concat(resStream, resBody => {\n          // resolve with response\n          resolve({\n            status: resStream.statusCode,\n            statusText: resStream.statusMessage,\n            headers: resStream.headers,\n            body: resBody\n          })\n        }))\n\n        // handle errors\n        resStream.on('error', err => {\n          reject(new Error('Network request failed'))\n        })\n        resStream.on('abort', err => {\n          reject(new Error('Aborted'))\n        })\n      })\n\n      // send data\n      if (reqBody) {\n        reqStream.send(reqBody)\n      }\n\n      reqStream.end()\n    })\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/folder-sync.js",
    "content": "import { dialog } from 'electron'\nimport dft from 'diff-file-tree'\nimport watch from 'recursive-watch'\nimport _debounce from 'lodash.debounce'\nimport hyper from '../../hyper/index'\nimport * as folderSyncDb from '../../dbs/folder-sync'\nimport * as modals from '../../ui/subwindows/modals'\nimport { UserDeniedError } from 'beaker-error-constants'\nimport bytes from 'bytes'\nimport { globToRegex } from '../../../lib/strings'\n\nconst DEFAULT_IGNORED_FILES = '/index.json\\n/.git\\n/node_modules\\n.DS_Store'\nconst COMPARE_SIZE_LIMIT = {maxSize: bytes('5mb'), assumeEq: false}\n\n// globals\n// =\n\nvar activeAutoSyncs = {} // {[key]: {stopwatch, ignoredFiles}\n\n// exported api\n// =\n\nexport default {\n  async chooseFolderDialog (url) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    var current = await folderSyncDb.get(key)\n    var res = await dialog.showOpenDialog({\n      title: 'Select folder to sync',\n      buttonLabel: 'Select Folder',\n      defaultPath: current ? current.localPath : undefined,\n      properties: ['openDirectory', 'createDirectory']\n    })\n    if (res.filePaths.length !== 1) return current ? current.localPath : undefined\n    if (current) {\n      await folderSyncDb.update(key, {\n        localPath: res.filePaths[0]\n      })\n    } else {\n      await folderSyncDb.insert(key, {\n        localPath: res.filePaths[0],\n        ignoredFiles: DEFAULT_IGNORED_FILES\n      })\n    }\n    return res.filePaths[0]\n  },\n\n  async syncDialog (url) {\n    var drive = await getDrive(url)\n    var res\n    try {\n      res = await modals.create(this.sender, 'folder-sync', {url: drive.url})\n    } catch (e) {\n      if (e.name !== 'Error') {\n        throw e // only rethrow if a specific error\n      }\n    }\n    if (!res) throw new UserDeniedError()\n    return res && res.contacts ? res.contacts[0] : undefined\n  },\n\n  async get (url) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    var current = await folderSyncDb.get(key)\n    if (!current) return\n    return {\n      localPath: current.localPath,\n      ignoredFiles: (current.ignoredFiles || '').split('\\n').filter(Boolean),\n      isAutoSyncing: (key in activeAutoSyncs)\n    }\n  },\n\n  async set (url, values) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    var current = await folderSyncDb.get(key)\n    if (current) {\n      await folderSyncDb.update(key, values)\n    } else {\n      values.ignoredFiles = values.ignoredFiles || DEFAULT_IGNORED_FILES\n      await folderSyncDb.insert(key, values)\n    }\n    stopAutosync(key)\n  },\n\n  async updateIgnoredFiles (url, files) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    await folderSyncDb.update(key, {\n      ignoredFiles: files.join('\\n')\n    })\n    if (activeAutoSyncs[key]) {\n      activeAutoSyncs[key].ignoredFiles = files\n    }\n  },\n\n  async remove (url) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    await folderSyncDb.del(key)\n    stopAutosync(key)\n  },\n\n  async compare (url) {\n    var drive = await getDrive(url)\n    var current = await folderSyncDb.get(drive.key.toString('hex'))\n    if (!current || !current.localPath) return []\n    return normalizeCompare(await dft.diff(\n      current.localPath,\n      {fs: drive.session.drive, path: '/'},\n      {compareContent: true, sizeLimit: COMPARE_SIZE_LIMIT}\n    ))\n  },\n\n  async restoreFile (url, filepath) {\n    var drive = await getDrive(url)\n    var current = await folderSyncDb.get(drive.key.toString('hex'))\n    if (!current || !current.localPath) throw new Error('No local path set')\n    var diff = await dft.diff(\n      current.localPath,\n      {fs: drive.session.drive, path: '/'},\n      {\n        compareContent: true,\n        sizeLimit: COMPARE_SIZE_LIMIT,\n        filter: p => {\n          p = normalizePath(p)\n          if (filepath === p) return false // direct match\n          if (filepath.startsWith(p) && filepath.charAt(p.length) === '/') return false // parent folder\n          if (p.startsWith(filepath) && p.charAt(filepath.length) === '/') return false // child file\n          return true\n        }\n      }\n    )\n    return dft.applyLeft(current.localPath, {fs: drive.session.drive, path: '/'}, diff)\n  },\n\n  sync,\n\n  async enableAutoSync (url) {\n    var drive = await getDrive(url)\n    var key = drive.key.toString('hex')\n    var current = await folderSyncDb.get(drive.key.toString('hex'))\n    if (!current || !current.localPath) return\n    stopAutosync(key)\n    startAutosync(key, current)\n  },\n\n  async disableAutoSync (url) {\n    var drive = await getDrive(url)\n    stopAutosync(drive.key.toString('hex'))\n  }\n}\n\n// internal methods\n// =\n\nasync function getDrive (url) {\n  var drive = await hyper.drives.getOrLoadDrive(url)\n  if (!drive) throw new Error('Unable to load drive')\n  if (!drive.writable) throw new Error('Must be a writable drive')\n  return drive\n}\n\nasync function sync (url) {\n  var drive = await getDrive(url)\n  var current = await folderSyncDb.get(drive.key.toString('hex'))\n  if (!current || !current.localPath) return\n  var diff = await dft.diff(\n    current.localPath,\n    {fs: drive.session.drive, path: '/'},\n    {\n      compareContent: true,\n      sizeLimit: COMPARE_SIZE_LIMIT,\n      filter: createIgnoreFilter(current.ignoredFiles)\n    }\n  )\n  return dft.applyRightStream(current.localPath, {fs: drive.session.drive, path: '/'}, diff)\n}\n\nfunction startAutosync (key, current) {\n  var syncDebounced = _debounce(sync, 500)\n  var ctx = {\n    ignoredFiles: current.ignoredFiles.split('\\n'),\n    stopwatch: watch(current.localPath, filename => {\n      filename = filename.slice(current.localPath.length)\n      if (ctx.ignoredFiles.includes(filename)) return\n      syncDebounced(key)\n    })\n  }\n  activeAutoSyncs[key] = ctx\n}\n\nfunction stopAutosync (key) {\n  if (activeAutoSyncs[key]) {\n    activeAutoSyncs[key].stopwatch()\n    delete activeAutoSyncs[key]\n  }\n}\n\nfunction createIgnoreFilter (ignoredFiles) {\n  var ignoreRegexes = (ignoredFiles || '').split('\\n').filter(Boolean).map(globToRegex)\n  if (ignoreRegexes.length === 0) return\n  return (filepath) => {\n    filepath = normalizePath(filepath)\n    for (let re of ignoreRegexes) {\n      if (re.test(filepath)) return true\n    }\n    return false\n  }\n}\n\nconst slashRe = /\\\\/g\nfunction normalizePath (path = '') {\n  return path.replace(slashRe, '/')\n}\n\nfunction normalizeCompare (compare) {\n  for (let c of compare) {\n    c.path = normalizePath(c.path)\n  }\n  return compare\n}"
  },
  {
    "path": "app/bg/web-apis/bg/history.js",
    "content": "import * as historyDb from '../../dbs/history'\n\n// exported api\n// =\n\nexport default {\n  async addVisit (...args) {\n    return historyDb.addVisit(0, ...args)\n  },\n\n  async getVisitHistory (...args) {\n    return historyDb.getVisitHistory(0, ...args)\n  },\n\n  async getMostVisited (...args) {\n    return historyDb.getMostVisited(0, ...args)\n  },\n\n  async search (...args) {\n    return historyDb.search(...args)\n  },\n\n  async removeVisit (...args) {\n    return historyDb.removeVisit(...args)\n  },\n\n  async removeAllVisits (...args) {\n    return historyDb.removeAllVisits(...args)\n  },\n\n  async removeVisitsAfter (...args) {\n    return historyDb.removeVisitsAfter(...args)\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/hyperdebug.js",
    "content": "import { EventEmitter } from 'events'\nimport emitStream from 'emit-stream'\nimport hyper from '../../hyper/index'\n\n// exported api\n// =\n\nexport default {  \n  async listCores (url) {\n    var drive = await hyper.drives.getOrLoadDrive(url)\n    return (await drive.session.drive.stats()).stats\n  },\n\n  async hasCoreBlocks (key, from, to) {\n    var client = hyper.daemon.getHyperspaceClient()\n    var core = client.corestore().get({key: typeof key === 'string' ? Buffer.from(key, 'hex') : key})\n    var bits = []\n    for (let i = from; i < to; i++) {\n      bits.push(await core.has(i))\n    }\n    return bits\n  },\n\n  async createCoreEventStream (url, corename) {\n    corename = ['metadata', 'content'].includes('corename') || 'metadata'\n    var drive = await hyper.drives.getOrLoadDrive(url)\n    var core = drive.session.drive[corename]\n    return emitStream(core)\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/bg/hyperdrive.js",
    "content": "import path from 'path'\nimport { parseDriveUrl } from '../../../lib/urls'\nimport pda from 'pauls-dat-api2'\nimport pick from 'lodash.pick'\nimport _get from 'lodash.get'\nimport _flattenDeep from 'lodash.flattendeep'\nimport * as modals from '../../ui/subwindows/modals'\nimport * as permissions from '../../ui/permissions'\nimport * as hyperDns from '../../hyper/dns'\nimport * as capabilities from '../../hyper/capabilities'\nimport * as drives from '../../hyper/drives'\nimport { gitCloneToTmp } from '../../lib/git'\nimport * as archivesDb from '../../dbs/archives'\nimport * as auditLog from '../../dbs/audit-log'\nimport { timer } from '../../../lib/time'\nimport * as filesystem from '../../filesystem/index'\nimport { query } from '../../filesystem/query'\nimport drivesAPI from './drives'\nimport { DRIVE_MANIFEST_FILENAME, DRIVE_CONFIGURABLE_FIELDS, HYPERDRIVE_HASH_REGEX, DAT_QUOTA_DEFAULT_BYTES_ALLOWED, DRIVE_VALID_PATH_REGEX, DEFAULT_DRIVE_API_TIMEOUT } from '../../../lib/const'\nimport { PermissionsError, UserDeniedError, QuotaExceededError, ArchiveNotWritableError, InvalidURLError, ProtectedFileNotWritableError, InvalidPathError } from 'beaker-error-constants'\nimport * as wcTrust from '../../wc-trust'\n\n// exported api\n// =\n\nconst to = (opts) =>\n  (opts && typeof opts.timeout !== 'undefined')\n    ? opts.timeout\n    : DEFAULT_DRIVE_API_TIMEOUT\n\nexport default {\n  async createDrive ({title, description, tags, author, visibility, fromGitUrl, prompt} = {}) {\n    var newDriveUrl\n\n    // only allow these vars to be set by beaker, for now\n    if (!wcTrust.isWcTrusted(this.sender)) {\n      fromGitUrl = undefined\n      visibility = undefined\n      author = undefined // TODO _get(windows.getUserSessionFor(this.sender), 'url')\n    }\n\n    if (prompt !== false) {\n      // run the creation modal\n      let res\n      try {\n        res = await modals.create(this.sender, 'create-drive', {title, description, tags, author, visibility})\n        if (res && res.gotoSync) {\n          await modals.create(this.sender, 'folder-sync', {url: res.url, closeAfterSync: true})\n        }\n      } catch (e) {\n        if (e.name !== 'Error') {\n          throw e // only rethrow if a specific error\n        }\n      }\n      if (!res || !res.url) throw new UserDeniedError()\n      newDriveUrl = res.url\n    } else {\n      if (tags && typeof tags === 'string') {\n        tags = tags.split(' ')\n      } else if (tags && !Array.isArray(tags)) {\n        tags = undefined\n      }\n      tags = tags.filter(v => typeof v === 'string')\n\n      // no modal, ask for permission\n      await assertCreateDrivePermission(this.sender, {title, tags})\n\n      let importFolder = undefined\n      if (fromGitUrl) {\n        try {\n          importFolder = await gitCloneToTmp(fromGitUrl)\n        } catch (e) {\n          throw new Error('Failed to clone git repo: ' + e.toString())\n        }\n      }\n\n      // create\n      let newDrive\n      try {\n        let manifest = {title, description, /*TODO author,*/}\n        newDrive = await drives.createNewDrive(manifest)\n        await filesystem.configDrive(newDrive.url, {tags})\n      } catch (e) {\n        console.log(e)\n        throw e\n      }\n      newDriveUrl = newDrive.url\n\n      // git clone if needed\n      if (importFolder) {\n        await pda.exportFilesystemToArchive({\n          srcPath: importFolder,\n          dstArchive: newDrive.session.drive,\n          dstPath: '/',\n          ignore: ['.git', '**/.git', 'index.json'],\n          inplaceImport: true,\n          dryRun: false\n        })\n      }\n    }\n    let newDriveKey = await lookupUrlDriveKey(newDriveUrl)\n\n    if (!wcTrust.isWcTrusted(this.sender)) {\n      // grant write permissions to the creating app\n      permissions.grantPermission('modifyDrive:' + newDriveKey, this.sender.getURL())\n    }\n    return newDriveUrl\n  },\n\n  async forkDrive (url, {detached, title, description, tags, label, prompt} = {}) {\n    var newDriveUrl\n\n    // only allow these vars to be set by beaker, for now\n    if (!wcTrust.isWcTrusted(this.sender)) {\n      label = undefined\n    }\n\n    if (prompt !== false) {\n      // run the fork modal\n      let res\n      let forks = await drivesAPI.getForks(url)\n      try {\n        res = await modals.create(this.sender, 'fork-drive', {url, title, description, tags, forks, detached, label})\n      } catch (e) {\n        if (e.name !== 'Error') {\n          throw e // only rethrow if a specific error\n        }\n      }\n      if (!res || !res.url) throw new UserDeniedError()\n      newDriveUrl = res.url\n    } else {\n      if (tags && typeof tags === 'string') {\n        tags = tags.split(' ')\n      } else if (tags && !Array.isArray(tags)) {\n        tags = undefined\n      }\n      tags = tags.filter(v => typeof v === 'string')\n\n      // no modal, ask for permission\n      await assertCreateDrivePermission(this.sender, {title, tags})\n\n      let key = await lookupUrlDriveKey(url)\n\n      // save the parent if needed\n      if (!filesystem.getDriveConfig(key)) {\n        await filesystem.configDrive(key)\n      }\n\n      // create\n      let newDrive = await drives.forkDrive(key, {\n        title: detached ? title : undefined,\n        description: detached ? description : undefined,\n        detached\n      })\n      await filesystem.configDrive(newDrive.url, {\n        tags,\n        forkOf: detached ? undefined : {key, label}\n      })\n      newDriveUrl = newDrive.url\n    }\n\n    return newDriveUrl\n  },\n\n  async loadDrive (url) {\n    if (!url || typeof url !== 'string') {\n      return Promise.reject(new InvalidURLError())\n    }\n    var urlp = parseDriveUrl(url)\n    await lookupDrive(this.sender, urlp.hostname, urlp.version)\n    return Promise.resolve(true)\n  },\n\n  async getInfo (url, opts = {}) {\n    return auditLog.record(this.sender.getURL(), 'getInfo', {url}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        var urlp = parseDriveUrl(url)\n        var {driveKey, version} = await lookupDrive(this.sender, urlp.hostname, urlp.version, true)\n        var info = await drives.getDriveInfo(driveKey)\n        info.tags = filesystem.getDriveConfig(driveKey)?.tags || []\n        var isCap = urlp.hostname.endsWith('.cap')\n\n        // request from beaker internal sites: give all data\n        if (wcTrust.isWcTrusted(this.sender)) {\n          return info\n        }\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(driveKey, this.sender)\n        resume()\n\n        // request from userland: return a subset of the data\n        return {\n          key: isCap ? urlp.hostname : info.key,\n          url: isCap ? urlp.origin : info.url,\n          // domain: info.domain, TODO\n          writable: info.writable,\n\n          // state\n          version: info.version,\n          peers: info.peers,\n\n          // manifest\n          title: info.title,\n          description: info.description\n        }\n      })\n    ))\n  },\n\n  async configure (url, settings, opts) {\n    return auditLog.record(this.sender.getURL(), 'configure', {url, ...settings}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n\n        var urlp = parseDriveUrl(url)\n        var {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n        if (!settings || typeof settings !== 'object') throw new Error('Invalid argument')\n\n        if (('tags' in settings) && wcTrust.isWcTrusted(this.sender)) {\n          await filesystem.configDrive(drive.url, {tags: settings.tags})\n        }\n\n        // only allow beaker to set these manifest updates for now\n        if (!wcTrust.isWcTrusted(this.sender)) {\n          delete settings.tags\n          delete settings.author\n        }\n\n        // manifest updates\n        let manifestUpdates = pick(settings, DRIVE_CONFIGURABLE_FIELDS)\n        if (!drive.writable || Object.keys(manifestUpdates).length === 0) {\n          // no manifest updates\n          return\n        }\n\n        pause() // dont count against timeout, there may be user prompts\n        var senderOrigin = archivesDb.extractOrigin(this.sender.getURL())\n        await assertWritePermission(drive, this.sender)\n        await assertQuotaPermission(drive, senderOrigin, Buffer.byteLength(JSON.stringify(settings), 'utf8'))\n        resume()\n\n        checkin('updating drive')\n        await checkoutFS.pda.updateManifest(manifestUpdates)\n        await drives.pullLatestDriveMeta(drive)\n      })\n    ))\n  },\n\n  async diff (url, other, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var prefix = urlp.pathname\n    return auditLog.record(this.sender.getURL(), 'diff', {url, other, prefix}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {checkoutFS} = await lookupDrive(this.sender, url, urlp.version)\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(checkoutFS, this.sender)\n        resume()\n        checkin('diffing')\n        return checkoutFS.pda.diff(other, prefix)\n      })\n    ))\n  },\n\n  async stat (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'stat', {url, filepath}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {checkoutFS} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(checkoutFS, this.sender, filepath)\n        resume()\n        checkin('stating file')\n        return checkoutFS.pda.stat(filepath, opts)\n      })\n    ))\n  },\n\n  async readFile (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'readFile', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {checkoutFS} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(checkoutFS, this.sender, filepath)\n        resume()\n        checkin('reading file')\n        return checkoutFS.pda.readFile(filepath, opts)\n      })\n    ))\n  },\n\n  async writeFile (url, data, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    if (typeof opts === 'string') {\n      opts = {encoding: opts}\n    }\n    if (opts.encoding === 'json') {\n      data = JSON.stringify(data, null, 2)\n      opts.encoding = 'utf8'\n    }\n    const sourceSize = Buffer.byteLength(data, opts.encoding)\n    return auditLog.record(this.sender.getURL(), 'writeFile', {url, filepath}, sourceSize, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        const senderOrigin = archivesDb.extractOrigin(this.sender.getURL())\n        await assertWritePermission(drive, this.sender, filepath)\n        await assertQuotaPermission(drive, senderOrigin, sourceSize)\n        assertValidFilePath(filepath)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('writing file')\n        var res = await checkoutFS.pda.writeFile(filepath, data, opts)\n        return res\n      })\n    ))\n  },\n\n  async unlink (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'unlink', {url, filepath}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender, filepath)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('deleting file')\n        var res = await checkoutFS.pda.unlink(filepath)\n        return res\n      })\n    ))\n  },\n\n  async copy (url, dstpath, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var srcpath = normalizeFilepath(urlp.pathname || '')\n    dstpath = normalizeFilepath(dstpath || '')\n    const src = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n    const sourceSize = await src.drive.pda.readSize(srcpath)\n    return auditLog.record(this.sender.getURL(), 'copy', {url, srcpath, dstpath}, sourceSize, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n\n        const dst = await lookupDrive(this.sender, dstpath.includes('://') ? dstpath : url)\n\n        if (srcpath.includes('://')) srcpath = normalizeFilepath((new URL(srcpath)).pathname)\n        if (dstpath.includes('://')) dstpath = normalizeFilepath((new URL(dstpath)).pathname)\n\n        pause() // dont count against timeout, there may be user prompts\n        const senderOrigin = archivesDb.extractOrigin(this.sender.getURL())\n        await assertReadPermission(src.drive, this.sender, srcpath)\n        await assertWritePermission(dst.drive, this.sender, dstpath)\n        assertUnprotectedFilePath(dstpath, this.sender)\n        await assertQuotaPermission(dst.drive, senderOrigin, sourceSize)\n        resume()\n\n        checkin('copying')\n        var res = await src.checkoutFS.pda.copy(srcpath, dst.checkoutFS.session.drive, dstpath)\n        return res\n      })\n    ))\n  },\n\n  async rename (url, dstpath, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var srcpath = normalizeFilepath(urlp.pathname || '')\n    dstpath = normalizeFilepath(dstpath || '')\n    return auditLog.record(this.sender.getURL(), 'rename', {url, srcpath, dstpath}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n\n        const src = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        const dst = await lookupDrive(this.sender, dstpath.includes('://') ? dstpath : url)\n\n        if (srcpath.includes('://')) srcpath = normalizeFilepath((new URL(srcpath)).pathname)\n        if (dstpath.includes('://')) dstpath = normalizeFilepath((new URL(dstpath)).pathname)\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(src.drive, this.sender, srcpath)\n        await assertWritePermission(dst.drive, this.sender, dstpath)\n        assertValidPath(dstpath)\n        assertUnprotectedFilePath(srcpath, this.sender)\n        assertUnprotectedFilePath(dstpath, this.sender)\n        resume()\n\n        checkin('renaming file')\n        var res = await src.checkoutFS.pda.rename(srcpath, dst.checkoutFS.session.drive, dstpath)\n        return res\n      })\n    ))\n  },\n\n  async updateMetadata (url, metadata, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'updateMetadata', {url, filepath, metadata}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender, filepath)\n        assertValidPath(filepath)\n        resume()\n\n        checkin('updating metadata')\n        var res = await checkoutFS.pda.updateMetadata(filepath, metadata)\n        return res\n      })\n    ))\n  },\n\n  async deleteMetadata (url, keys, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'deleteMetadata', {url, filepath, keys}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender, filepath)\n        assertValidPath(filepath)\n        resume()\n\n        checkin('updating metadata')\n        var res = await checkoutFS.pda.deleteMetadata(filepath, keys)\n        return res\n      })\n    ))\n  },\n\n  async readdir (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'readdir', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {checkoutFS} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(checkoutFS, this.sender, filepath)\n        resume()\n\n        checkin('reading directory')\n        var names = await checkoutFS.pda.readdir(filepath, opts)\n        if (opts.includeStats) {\n          names = names.map(obj => ({name: obj.name, stat: obj.stat}))\n        }\n        return names\n      })\n    ))\n  },\n\n  async mkdir (url, opts) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'mkdir', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender)\n        await assertValidPath(filepath)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('making directory')\n        var res = await checkoutFS.pda.mkdir(filepath, opts)\n        return res\n      })\n    ))\n  },\n\n  async rmdir (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'rmdir', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('removing directory')\n        var res = await checkoutFS.pda.rmdir(filepath, opts)\n        return res\n      })\n    ))\n  },\n\n  async symlink (url, linkname, opts) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var target = normalizeFilepath(urlp.pathname || '')\n    linkname = normalizeFilepath(linkname || '')\n    return auditLog.record(this.sender.getURL(), 'symlink', {url, target, linkname}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertReadPermission(drive, this.sender, target)\n        await assertWritePermission(drive, this.sender, linkname)\n        await assertValidPath(linkname)\n        assertUnprotectedFilePath(linkname, this.sender)\n        resume()\n\n        checkin('symlinking')\n        var res = await checkoutFS.pda.symlink(target, linkname)\n        return res\n      })\n    ))\n  },\n\n  async mount (url, mount, opts) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    var mountKey = typeof mount === \"object\" ? mount.key : mount\n    if (mountKey.includes('.cap')) throw new Error('Unable to mount capability URLs')\n    return auditLog.record(this.sender.getURL(), 'mount', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender)\n        await assertValidPath(filepath)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('mounting drive')\n        var res = await checkoutFS.pda.mount(filepath, mount)\n        return res\n      })\n    ))\n  },\n\n  async unmount (url, opts = {}) {\n    var urlp = parseDriveUrl(url)\n    var url = urlp.origin\n    var filepath = normalizeFilepath(urlp.pathname || '')\n    return auditLog.record(this.sender.getURL(), 'unmount', {url, filepath, opts}, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('searching for drive')\n        const {drive, checkoutFS, isHistoric} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n        if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n        pause() // dont count against timeout, there may be user prompts\n        await assertWritePermission(drive, this.sender)\n        assertUnprotectedFilePath(filepath, this.sender)\n        resume()\n\n        checkin('unmounting drive')\n        var res = await checkoutFS.pda.unmount(filepath)\n        return res\n      })\n    ))\n  },\n\n  async query (opts) {\n    if (!opts.drive) return []\n    if (!Array.isArray(opts.drive)) opts.drive = [opts.drive]\n    return auditLog.record(this.sender.getURL(), 'query', opts, undefined, () => (\n      timer(to(opts), async (checkin, pause, resume) => {\n        checkin('looking up drives')\n        var capUrls = {}\n        for (let i = 0; i < opts.drive.length; i++) {\n          let urlp = parseDriveUrl(opts.drive[i])\n          opts.drive[i] = (await\n            auditLog.record('-query', 'lookupDrive', {url: opts.drive[i]}, undefined, () => (\n              lookupDrive(this.sender, urlp.hostname, urlp.version)\n            ), {ignoreFast: true})\n          ).checkoutFS\n          if (urlp.hostname.endsWith('.cap')) {\n            capUrls[opts.drive[i].key.toString('hex')] = urlp.hostname\n          }\n        }\n        pause() // dont count against timeout, there may be user prompts\n        for (let drive of opts.drive) {\n          await assertReadPermission(drive, this.sender)\n        }\n        resume()\n        checkin('running query')\n        var queryOpts = opts\n        if (opts.drive.length > 1) {\n          // HACK we need to get more results in the individual drive queries so that we can correctly\n          // merge, re-sort, and slice after -prf\n          queryOpts = Object.assign({}, opts)\n          queryOpts.limit = queryOpts.offset + queryOpts.limit\n          queryOpts.offset = 0\n        }\n        var queriesResults = await Promise.all(opts.drive.map(drive => query(drive, queryOpts)))\n        var results = _flattenDeep(queriesResults)\n        if (opts.drive.length > 1) {\n          // HACK re-sort and slice here because each query was run separately -prf\n          if (opts.sort === 'name') {\n            results.sort((a, b) => (opts.reverse) ? path.basename(b.path).toLowerCase().localeCompare(path.basename(a.path).toLowerCase()) : path.basename(a.path).toLowerCase().localeCompare(path.basename(b.path).toLowerCase()))\n          } else if (opts.sort === 'mtime') {\n            results.sort((a, b) => (opts.reverse) ? b.stat.mtime - a.stat.mtime : a.stat.mtime - b.stat.mtime)\n          } else if (opts.sort === 'ctime') {\n            results.sort((a, b) => (opts.reverse) ? b.stat.ctime - a.stat.ctime : a.stat.ctime - b.stat.ctime)\n          }\n          if (opts.offset && opts.limit) results = results.slice(opts.offset, opts.offset + opts.limit)\n          else if (opts.offset) results = results.slice(opts.offset)\n          else if (opts.limit) results = results.slice(0, opts.limit)\n        }\n        if (Object.keys(capUrls).length > 0) {\n          // mask capability URLs\n          for (let res of results) {\n            for (let key in capUrls) {\n              res.drive = res.drive.replace(key, capUrls[key])\n              res.url = res.url.replace(key, capUrls[key])\n            }\n          }\n        }\n        return results\n      })\n    ))\n  },\n\n  async watch (url, pathPattern) {\n    var {drive} = await lookupDrive(this.sender, url)\n    await assertReadPermission(drive, this.sender)\n    return drive.pda.watch(pathPattern)\n  },\n\n  async createNetworkActivityStream (url) {\n    var {drive} = await lookupDrive(this.sender, url)\n    await assertReadPermission(drive, this.sender)\n    return drive.pda.createNetworkActivityStream()\n  },\n\n  async beakerDiff (srcUrl, dstUrl, opts) {\n    assertBeakerOnly(this.sender)\n    if (!srcUrl || typeof srcUrl !== 'string') {\n      throw new InvalidURLError('The first parameter of diff() must be a hyperdrive URL')\n    }\n    if (!dstUrl || typeof dstUrl !== 'string') {\n      throw new InvalidURLError('The second parameter of diff() must be a hyperdrive URL')\n    }\n    var [src, dst] = await Promise.all([lookupDrive(this.sender, srcUrl), lookupDrive(this.sender, dstUrl)])\n    return pda.diff(src.checkoutFS.pda, src.filepath, dst.checkoutFS.pda, dst.filepath, opts)\n  },\n\n  async beakerMerge (srcUrl, dstUrl, opts) {\n    assertBeakerOnly(this.sender)\n    if (!srcUrl || typeof srcUrl !== 'string') {\n      throw new InvalidURLError('The first parameter of merge() must be a hyperdrive URL')\n    }\n    if (!dstUrl || typeof dstUrl !== 'string') {\n      throw new InvalidURLError('The second parameter of merge() must be a hyperdrive URL')\n    }\n    var [src, dst] = await Promise.all([lookupDrive(this.sender, srcUrl), lookupDrive(this.sender, dstUrl)])\n    if (!dst.drive.writable) throw new ArchiveNotWritableError('The destination drive is not writable')\n    if (dst.isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n    var res = await pda.merge(src.checkoutFS.pda, src.filepath, dst.checkoutFS.pda, dst.filepath, opts)\n    return res\n  },\n\n  async importFromFilesystem (opts) {\n    assertBeakerOnly(this.sender)\n    var {checkoutFS, filepath, isHistoric} = await lookupDrive(this.sender, opts.dst)\n    if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n    var res = await pda.exportFilesystemToArchive({\n      srcPath: opts.src,\n      dstArchive: checkoutFS.session ? checkoutFS.session.drive : checkoutFS,\n      dstPath: filepath,\n      ignore: opts.ignore,\n      inplaceImport: opts.inplaceImport !== false,\n      dryRun: opts.dryRun\n    })\n    return res\n  },\n\n  async exportToFilesystem (opts) {\n    assertBeakerOnly(this.sender)\n\n    // TODO do we need to replace this? -prf\n    // if (await checkFolderIsEmpty(opts.dst) === false) {\n    // return\n    // }\n\n    var {checkoutFS, filepath} = await lookupDrive(this.sender, opts.src)\n    return pda.exportArchiveToFilesystem({\n      srcArchive: checkoutFS.session ? checkoutFS.session.drive : checkoutFS,\n      srcPath: filepath,\n      dstPath: opts.dst,\n      ignore: opts.ignore,\n      overwriteExisting: opts.overwriteExisting,\n      skipUndownloadedFiles: opts.skipUndownloadedFiles\n    })\n  },\n\n  async exportToDrive (opts) {\n    assertBeakerOnly(this.sender)\n    var src = await lookupDrive(this.sender, opts.src)\n    var dst = await lookupDrive(this.sender, opts.dst)\n    if (dst.isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n    var res = await pda.exportArchiveToArchive({\n      srcArchive: src.checkoutFS.session ? src.checkoutFS.session.drive : src.checkoutFS,\n      srcPath: src.filepath,\n      dstArchive: dst.checkoutFS.session ? dst.checkoutFS.session.drive : dst.checkoutFS,\n      dstPath: dst.filepath,\n      ignore: opts.ignore,\n      skipUndownloadedFiles: opts.skipUndownloadedFiles\n    })\n    return res\n  }\n}\n\n// internal helpers\n// =\n\n// helper to check if filepath refers to a file that userland is not allowed to edit directly\nfunction assertUnprotectedFilePath (filepath, sender) {\n  if (wcTrust.isWcTrusted(sender)) {\n    return // can write any file\n  }\n  if (filepath === '/' + DRIVE_MANIFEST_FILENAME) {\n    throw new ProtectedFileNotWritableError()\n  }\n}\n\n// temporary helper to make sure the call is made by a beaker: page\nfunction assertBeakerOnly (sender) {\n  if (!wcTrust.isWcTrusted(sender)) {\n    throw new PermissionsError()\n  }\n}\n\nasync function assertCreateDrivePermission (sender, opts) {\n  // beaker: always allowed\n  if (wcTrust.isWcTrusted(sender)) {\n    return true\n  }\n\n  // ask the user\n  let allowed = await permissions.requestPermission('createDrive', sender, opts)\n  if (!allowed) {\n    throw new UserDeniedError()\n  }\n}\n\nasync function assertReadPermission (drive, sender, filepath = undefined) {\n  var driveUrl\n  if (typeof drive === 'string') {\n    driveUrl = `hyper://${await drives.fromURLToKey(drive, true)}/`\n  } else {\n    driveUrl = drive.url\n  }\n\n  let ident = filesystem.getDriveIdent(driveUrl)\n  if (ident.system) {\n    let origin = archivesDb.extractOrigin(sender.getURL()) + '/'\n    if (wcTrust.isWcTrusted(sender) || filesystem.isRootUrl(origin)) {\n      return true\n    }\n    throw new PermissionsError('Cannot read the hyper://private/ drive')\n  }\n\n  return true\n}\n\nasync function assertWritePermission (drive, sender, filepath = undefined) {\n  var driveKey = drive.key.toString('hex')\n  var driveUrl = `hyper://${driveKey}`\n  const perm = ('modifyDrive:' + driveKey)\n\n  // beaker: always allowed\n  if (wcTrust.isWcTrusted(sender)) {\n    return true\n  }\n\n  // self-modification ALWAYS allowed\n  var senderDatKey = await lookupUrlDriveKey(sender.getURL())\n  if (senderDatKey === driveKey) {\n    return true\n  }\n\n  let ident = filesystem.getDriveIdent(driveUrl)\n\n  // cant even ask to write the private drive \n  if (ident.system) {\n    throw new PermissionsError('Cannot write the hyper://private/ drive')\n  }\n\n  // ensure the sender is allowed to write\n  var allowed = await permissions.queryPermission(perm, sender)\n  if (allowed) return true\n\n  // ask the user\n  var details = await drives.getDriveInfo(driveKey)\n  allowed = await permissions.requestPermission(perm, sender, { title: details.title })\n  if (!allowed) throw new UserDeniedError()\n  return true\n}\n\nasync function assertDeleteDrivePermission (drive, sender) {\n  var driveKey = drive.key.toString('hex')\n  const perm = ('deleteDrive:' + driveKey)\n\n  // beaker: always allowed\n  if (wcTrust.isWcTrusted(sender)) {\n    return true\n  }\n\n  // ask the user\n  var details = await drives.getDriveInfo(driveKey)\n  var allowed = await permissions.requestPermission(perm, sender, { title: details.title })\n  if (!allowed) throw new UserDeniedError()\n  return true\n}\n\nasync function assertQuotaPermission (drive, senderOrigin, byteLength) {\n  // beaker: always allowed\n  if (senderOrigin.startsWith('beaker:')) {\n    return\n  }\n\n  // fetch the drive meta\n  const meta = await archivesDb.getMeta(drive.key)\n\n  // fallback to default quota\n  var bytesAllowed = /* TODO userSettings.bytesAllowed ||*/ DAT_QUOTA_DEFAULT_BYTES_ALLOWED\n\n  // check the new size\n  var newSize = (meta.size + byteLength)\n  if (newSize > bytesAllowed) {\n    throw new QuotaExceededError()\n  }\n}\n\nfunction assertValidFilePath (filepath) {\n  if (filepath.slice(-1) === '/') {\n    throw new InvalidPathError('Files can not have a trailing slash')\n  }\n  assertValidPath(filepath)\n}\n\nfunction assertValidPath (fileOrFolderPath) {\n  if (!DRIVE_VALID_PATH_REGEX.test(fileOrFolderPath)) {\n    throw new InvalidPathError('Path contains invalid characters')\n  }\n}\n\nfunction normalizeFilepath (str) {\n  str = decodeURIComponent(str)\n  if (!str.includes('://') && str.charAt(0) !== '/') {\n    str = '/' + str\n  }\n  return str\n}\n\n// helper to handle the URL argument that's given to most args\n// - can get a hyperdrive hash, or hyperdrive url\n// - sets checkoutFS to what's requested by version\nexport async function lookupDrive (sender, driveHostname, version, dontGetDrive = false) {\n  var driveKey\n  \n  if (driveHostname.endsWith('.cap')) {\n    let cap = capabilities.lookupCap(driveHostname)\n    if (cap) {\n      driveKey = cap.target.key\n      version = cap.target.version\n    } else {\n      throw new Error('Capability does not exist')\n    }\n  }\n  \n  if (!driveKey) {\n    driveKey = await drives.fromURLToKey(driveHostname, true)\n  }\n\n  if (dontGetDrive) {\n    return {driveKey, version}\n  }\n\n  var drive = drives.getDrive(driveKey)\n  if (!drive) drive = await drives.loadDrive(driveKey)\n  var {checkoutFS, isHistoric} = await drives.getDriveCheckout(drive, version)\n  return {drive, version, isHistoric, checkoutFS}\n}\n\nasync function lookupUrlDriveKey (url) {\n  if (HYPERDRIVE_HASH_REGEX.test(url)) return url\n  if (!url.startsWith('hyper://')) {\n    return false // not a drive site\n  }\n\n  var urlp = parseDriveUrl(url)\n  try {\n    return await hyperDns.resolveName(urlp.hostname)\n  } catch (e) {\n    return false\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/markdown.js",
    "content": "import markdown from '../../../lib/markdown'\n\nconst mdNoHTML = markdown({\n  allowHTML: false,\n  useHeadingIds: false,\n  useHeadingAnchors: false,\n  hrefMassager: undefined,\n  highlight: undefined\n})\nconst mdWithHTML = markdown({\n  allowHTML: true,\n  useHeadingIds: false,\n  useHeadingAnchors: false,\n  hrefMassager: undefined,\n  highlight: undefined\n})\n\nexport default {\n  toHTML (str, {allowHTML} = {}) {\n    if (allowHTML) return mdWithHTML.render(str)\n    return mdNoHTML.render(str)\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/bg/panes.js",
    "content": "import emitStream from 'emit-stream'\nimport * as tabManager from '../../ui/tabs/manager'\nimport * as permissions from '../../ui/permissions'\nimport { PermissionsError, UserDeniedError } from 'beaker-error-constants'\n\nexport default {\n  createEventStream () {\n    var {tab, senderPane} = getPaneObjects(this.sender)\n    return emitStream(senderPane.attachedPaneEvents)\n  },\n\n  setAttachable () {\n    var {tab, senderPane} = getPaneObjects(this.sender)\n    senderPane.wantsAttachedPane = true\n  },\n  \n  getAttachedPane () {\n    var {tab, senderPane} = getPaneObjects(this.sender)\n    var attachedPane = senderPane.attachedPane\n    if (!attachedPane) return undefined\n    return toPaneResponse(attachedPane)\n  },\n\n  async attachToLastActivePane () {\n    if (!(await permissions.requestPermission('panesAttach', this.sender))) {\n      throw new UserDeniedError()\n    }\n\n    var {tab, senderPane} = getPaneObjects(this.sender)\n\n    var attachedPane = senderPane.attachedPane\n    if (attachedPane) {\n      return toPaneResponse(attachedPane)\n    }\n\n    // try to find a pane that's not our builtin tools or already attached to anything, if possible\n    // if not, stick with the candidate\n    var candidatePane = tab.getLastActivePane()\n    const isUndesirable = pane => /^beaker:\\/\\/(webterm|editor|explorer)/.test(pane.url) || pane.attachedPane || pane === senderPane\n    if (!candidatePane || isUndesirable(candidatePane)) {\n      candidatePane = tab.panes.find(p => !isUndesirable(p))\n    }\n    if (!candidatePane || candidatePane === senderPane) {\n      return undefined\n    }\n\n    senderPane.setAttachedPane(candidatePane)\n    return toPaneResponse(candidatePane)\n  },\n\n  async create (url, opts) {\n    if (!(await permissions.requestPermission('panesCreate', this.sender))) {\n      throw new UserDeniedError()\n    }\n\n    opts = opts && typeof opts === 'object' ? opts : {}\n    var {tab, senderPane} = getPaneObjects(this.sender)\n    var newPane = tab.createPane({url, setActive: true, splitDir: 'vert', after: tab.activePane})\n    if (opts.attach) {\n      if (!(await permissions.requestPermission('panesAttach', this.sender))) {\n        throw new UserDeniedError()\n      }\n      senderPane.setAttachedPane(newPane)\n      return toPaneResponse(newPane)\n    }\n  },\n\n  async navigate (paneId, url) {\n    var {attachedPane} = getAttachedPaneById(this.sender, paneId)\n    if (!url || typeof url !== 'string') throw new Error('Invalid URL')\n    await attachedPane.loadURL(url)\n  },\n\n  async focus (paneId) {\n    var {tab, attachedPane} = getAttachedPaneById(this.sender, paneId)\n    tab.setActivePane(attachedPane)\n    attachedPane.focus()\n  },\n\n  async executeJavaScript (paneId, script) {\n    if (!(await permissions.requestPermission('panesInject', this.sender))) {\n      throw new UserDeniedError()\n    }\n    var {attachedPane} = getAttachedPaneById(this.sender, paneId)\n    return attachedPane.webContents.executeJavaScript(script)\n  },\n\n  async injectCss (paneId, css) {\n    if (!(await permissions.requestPermission('panesInject', this.sender))) {\n      throw new UserDeniedError()\n    }\n    var {attachedPane} = getAttachedPaneById(this.sender, paneId)\n    return attachedPane.webContents.insertCSS(css)\n  },\n\n  async uninjectCss (paneId, cssId) {\n    if (!(await permissions.requestPermission('panesInject', this.sender))) {\n      throw new UserDeniedError()\n    }\n    var {attachedPane} = getAttachedPaneById(this.sender, paneId)\n    await attachedPane.webContents.removeInsertedCSS(cssId)\n  }\n}\n\nfunction getPaneObjects (sender) {\n  var tab = tabManager.findTab(sender)\n  if (!tab) throw new Error('Requesting pane not active')\n  var senderPane = tab.findPane(sender)\n  if (!senderPane) throw new Error('Requesting pane not active')\n  return {tab, senderPane}\n}\n\nfunction getAttachedPaneById (sender, paneId) {\n  var {tab, senderPane} = getPaneObjects(sender)\n  if (!senderPane.attachedPane || senderPane.attachedPane.id !== paneId) {\n    throw new PermissionsError('Can only managed the attached pane')\n  }\n  var attachedPane = senderPane.attachedPane\n  return {tab, senderPane, attachedPane}\n}\n\nfunction toPaneResponse (pane) {\n  return {\n    id: pane.id,\n    url: pane.url || pane.loadingURL\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/bg/peersockets.js",
    "content": "import { Duplex, Readable } from 'streamx'\nimport { getClient } from '../../hyper/daemon'\nimport * as drives from '../../hyper/drives'\nimport { PermissionsError } from 'beaker-error-constants'\n\nconst sessionAliases = new Map()\n\n// exported api\n// =\n\nexport default {\n  async join (topic) {\n    var drive = await getSenderDrive(this.sender)\n    topic = massageTopic(topic, drive.discoveryKey)\n    const aliases = getAliases(this.sender)\n\n    var stream = new Duplex({\n      write (data, cb) {\n        if (!Array.isArray(data) || typeof data[0] === 'undefined' || typeof data[1] === 'undefined') {\n          console.debug('Incorrectly formed message from peersockets send API', data)\n          return cb(null)\n        }\n        const peer = getPeerForAlias(aliases, data[0])\n        if (!peer) return\n        topicHandle.send(data[1], peer)\n        cb(null)\n      }\n    })\n    stream.objectMode = true\n    var topicHandle = getClient().peersockets.join(topic, {\n      onmessage (message, peer) {\n        stream.push(['message', {peerId: createAliasForPeer(aliases, peer), message}])\n      }\n    })\n    drive.pda.numActiveStreams++\n    stream.on('close', () => {\n      drive.pda.numActiveStreams--\n      releaseAliases(this.sender, aliases)\n      topicHandle.close()\n    })\n\n    return stream\n  },\n\n  async watch () {\n    var drive = await getSenderDrive(this.sender)\n    const aliases = getAliases(this.sender)\n    var stream = new Readable()\n    var stopwatch = getClient().peers.watchPeers(drive.key, {\n      onjoin: async (peer) => stream.push(['join', {peerId: createAliasForPeer(aliases, peer)}]),\n      onleave: (peer) => stream.push(['leave', {peerId: createAliasForPeer(aliases, peer) }])\n    })\n    stream.on('close', () => {\n      releaseAliases(this.sender, aliases)\n      stopwatch()\n    })\n    return stream\n  }\n}\n\n// internal methods\n// =\n\nasync function getSenderDrive (sender) {\n  var url = sender.getURL()\n  if (!url.startsWith('hyper://')) {\n    throw new PermissionsError('PeerSockets are only available on hyper:// origins')\n  }\n  return drives.getOrLoadDrive(url)\n}\n\nfunction massageTopic (topic, discoveryKey) {\n  return `webapp/${discoveryKey.toString('hex')}/${topic}`\n}\n\nfunction getAliases (sender) {\n  let aliases = sessionAliases.get(sender)\n  if (!aliases) {\n    aliases = {refs: 0, byPeer: new Map(), byAlias: []}\n    sessionAliases.set(sender, aliases)\n  }\n  aliases.refs++\n  return aliases\n}\n\nfunction releaseAliases (sender, aliases) {\n  if (!--aliases.refs) sessionAliases.delete(sender)\n}\n\nfunction createAliasForPeer (aliases, peer) {\n  let alias = aliases.byPeer.get(peer)\n  if (alias) return alias\n  alias = aliases.byPeer.size + 1\n  aliases.byPeer.set(peer, alias)\n  aliases.byAlias[alias] = peer\n  return alias\n}\n\nfunction getPeerForAlias (aliases, alias) {\n  return aliases.byAlias[alias]\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg/shell.js",
    "content": "import { dialog } from 'electron'\nimport pda from 'pauls-dat-api2'\nimport * as modals from '../../ui/subwindows/modals'\nimport * as prompts from '../../ui/subwindows/prompts'\nimport * as drives from '../../hyper/drives'\nimport { getDriveConfig, configDrive, listDrives as fsListDrives, removeDrive } from '../../filesystem/index'\nimport { lookupDrive } from './hyperdrive'\nimport { isHyperUrl, parseDriveUrl } from '../../../lib/urls'\nimport { joinPath } from '../../../lib/strings'\nimport * as permissions from '../../ui/permissions'\nimport assert from 'assert'\nimport { UserDeniedError, ArchiveNotWritableError } from 'beaker-error-constants'\nimport _pick from 'lodash.pick'\nimport * as wcTrust from '../../wc-trust'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} BeakerShellPublicAPIDriveRecord\n * @prop {string} url\n * @prop {string} title\n * @prop {string} description\n */\n\n// exported api\n// =\n\n/**\n * @param {string} url \n * @returns {Promise<void>}\n */\nexport async function drivePropertiesDialog (url) {\n  assert(url && typeof url === 'string', '`url` must be a string')\n  var info = await drives.getDriveInfo(url)\n  var cfg = getDriveConfig(info.key)\n  await modals.create(this.sender, 'drive-properties', {\n    url: info.url,\n    writable: info.writable,\n    props: Object.assign(_pick(info, ['title', 'description']), {tags: cfg.tags || []})\n  })\n}\n\n/**\n * @param {Object} [opts]\n * @param {string} [opts.title]\n * @param {string} [opts.buttonLabel]\n * @param {string} [opts.drive]\n * @param {string} [opts.defaultPath]\n * @param {string[]} [opts.select]\n * @param {Object} [opts.filters]\n * @param {string[]} [opts.filters.extensions]\n * @param {boolean} [opts.filters.writable]\n * @param {boolean} [opts.filters.networked]\n * @param {boolean} [opts.allowMultiple]\n * @param {boolean} [opts.disallowCreate]\n * @returns {Promise<string[]>}\n */\nexport async function selectFileDialog (opts = {}) {\n  // validate\n  assert(opts && typeof opts === 'object', 'Must pass an options object')\n  assert(!opts.title || typeof opts.title === 'string', '.title must be a string')\n  assert(!opts.buttonLabel || typeof opts.buttonLabel === 'string', '.buttonLabel must be a string')\n  assert(!opts.drive || typeof opts.drive === 'string', '.drive must be a string')\n  assert(!opts.defaultPath || typeof opts.defaultPath === 'string', '.defaultPath must be a string')\n  assert(!opts.select || isStrArray(opts.select), '.select must be an array of strings')\n  if (opts.filters) {\n    assert(typeof opts.filters === 'object', '.filters must be an object')\n    assert(!opts.filters.extensions || isStrArray(opts.filters.extensions), '.filters.extensions must be an array of strings')\n    assert(!opts.filters.writable || typeof opts.filters.writable === 'boolean', '.filters.writable must be a boolean')\n    assert(!opts.filters.networked || typeof opts.filters.networked === 'boolean', '.filters.networked must be a boolean')\n  }\n  assert(!opts.allowMultiple || typeof opts.allowMultiple === 'boolean', '.filters.allowMultiple must be a boolean')\n  assert(!opts.disallowCreate || typeof opts.disallowCreate === 'boolean', '.filters.disallowCreate must be a boolean')\n\n  // initiate the modal\n  var res\n  try {\n    while (true) {\n      res = await modals.create(this.sender, 'select-file', opts)\n      if (res && res.gotoCreateDrive) {\n        res = await modals.create(this.sender, 'create-drive').catch(e => undefined)\n        if (res && res.gotoSync) {\n          await modals.create(this.sender, 'folder-sync', {url: res.url, closeAfterSync: true})\n        }\n        if (res) opts.drive = res.url\n      } else {\n        break\n      }\n    }\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res) throw new UserDeniedError()\n  return res\n}\n\n/**\n * @param {Object} [opts]\n * @param {string} [opts.title]\n * @param {string} [opts.buttonLabel]\n * @param {string} [opts.drive]\n * @param {string} [opts.defaultPath]\n * @param {string} [opts.defaultFilename]\n * @param {string} [opts.extension]\n * @param {Object} [opts.filters]\n * @param {string[]} [opts.filters.extensions]\n * @param {boolean} [opts.filters.networked]\n * @returns {Promise<string[]>}\n */\nexport async function saveFileDialog (opts = {}) {\n  // validate\n  assert(opts && typeof opts === 'object', 'Must pass an options object')\n  assert(!opts.title || typeof opts.title === 'string', '.title must be a string')\n  assert(!opts.buttonLabel || typeof opts.buttonLabel === 'string', '.buttonLabel must be a string')\n  assert(!opts.drive || typeof opts.drive === 'string', '.drive must be a string')\n  assert(!opts.defaultPath || typeof opts.defaultPath === 'string', '.defaultPath must be a string')\n  assert(!opts.defaultFilename || typeof opts.defaultFilename === 'string', '.defaultFilename must be a string')\n  if (opts.filters) {\n    assert(typeof opts.filters === 'object', '.filters must be an object')\n    assert(!opts.filters.extensions || isStrArray(opts.filters.extensions), '.filters.extensions must be an array of strings')\n    assert(!opts.filters.networked || typeof opts.filters.networked === 'boolean', '.filters.networked must be a boolean')\n  }\n\n  // initiate the modal\n  opts.saveMode = true\n  var res\n  try {\n    while (true) {\n      res = await modals.create(this.sender, 'select-file', opts)\n      if (res && res.gotoCreateDrive) {\n        res = await modals.create(this.sender, 'create-drive').catch(e => undefined)\n        if (res && res.gotoSync) {\n          await modals.create(this.sender, 'folder-sync', {url: res.url, closeAfterSync: true})\n        }\n        if (res) opts.drive = res.url\n      } else {\n        break\n      }\n    }\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res) throw new UserDeniedError()\n  return res\n}\n\n/**\n * @param {Object} [opts]\n * @param {string} [opts.title]\n * @param {string} [opts.buttonLabel]\n * @param {boolean} [opts.writable]\n * @param {string} [opts.tag]\n * @param {boolean} [opts.allowMultiple]\n * @param {string} [opts.template]\n * @returns {Promise<string|string[]>}\n */\nexport async function selectDriveDialog (opts = {}) {\n  // validate\n  assert(opts && typeof opts === 'object', 'Must pass an options object')\n  assert(!opts.title || typeof opts.title === 'string', '.title must be a string')\n  assert(!opts.buttonLabel || typeof opts.buttonLabel === 'string', '.buttonLabel must be a string')\n  assert(!opts.tag || typeof opts.tag === 'string', '.tag must be a string')\n  assert(!opts.writable || typeof opts.writable === 'boolean', '.writable must be a boolean')\n  assert(!opts.allowMultiple || typeof opts.allowMultiple === 'boolean', '.allowMultiple must be a boolean')\n  assert(!opts.template || typeof opts.template === 'string', '.template must be a string')\n  if (opts.template && !isHyperUrl(opts.template)) {\n    throw new Error('.template must be a hyper:// URL')\n  }\n\n  // initiate the modal\n  var res\n  try {\n    res = await modals.create(this.sender, 'select-drive', opts)\n    if (res && res.gotoCreate) {\n      if (opts.template) {\n        res = await modals.create(this.sender, 'fork-drive', {\n          url: opts.template,\n          forks: [{url: opts.template}],\n          detached: true,\n          isTemplate: true,\n          title: '',\n          description: '',\n          tags: [opts.tag]\n        })\n      } else {\n        res = await modals.create(this.sender, 'create-drive', {tags: [opts.tag]})\n        if (res && res.gotoSync) {\n          await modals.create(this.sender, 'folder-sync', {url: res.url, closeAfterSync: true})\n        }\n      }\n    }\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res) throw new UserDeniedError()\n  return res.urls || res.url\n}\n\n/**\n * @param {Object} [opts]\n * @param {string} [opts.tags]\n * @returns {Promise<void>}\n */\nexport async function saveDriveDialog (url, {tags} = {tags: ''}) {\n  if (Array.isArray(tags)) {\n    tags = tags.filter(t => typeof t === 'string').join(' ')\n  } else if (typeof tags !== 'string') {\n    tags = ''\n  }\n\n  var res\n  try {\n    res = await modals.create(this.sender, 'add-drive', {url, tags})\n  } catch (e) {\n    if (e.name !== 'Error') {\n      throw e // only rethrow if a specific error\n    }\n  }\n  if (!res) throw new UserDeniedError()\n  await configDrive(res.key, {tags: res.tags})\n}\n\n/**\n * @param {Object} [opts]\n * @param {boolean} [opts.writable]\n * @param {string} [opts.tag]\n * @returns {Promise<BeakerShellPublicAPIDriveRecord[]>}\n */\nexport async function listDrives (opts = {}) {\n  // validate\n  assert(opts && typeof opts === 'object', 'Must pass an options object')\n  assert(!opts.tag || typeof opts.tag === 'string', '.tag must be a string')\n  assert(!opts.writable || typeof opts.writable === 'boolean', '.writable must be a boolean')\n\n  let perm = opts.tag ? `listDrives:${opts.tag || ''}` : 'listDrives'\n  if (!(await permissions.requestPermission(perm, this.sender))) {\n    throw new UserDeniedError()\n  }\n\n  let drivesList = fsListDrives()\n  let records = []\n  for (let drive of drivesList) {\n    let url = `hyper://${drive.key}/`\n    let info = await drives.getDriveInfo(drive.key, {onlyCache: true})\n    if (typeof opts.writable === 'boolean' && info.writable !== opts.writable) {\n      continue\n    }\n    if (typeof opts.tag === 'string' && !drive.tags?.includes?.(opts.tag)) {\n      continue\n    }\n    records.push({url, title: info.title, description: info.description})\n  }\n  return records\n}\n\nexport async function unsaveDrive (url) {\n  // validate\n  assert(url && typeof url === 'string', 'Must provide a URL string')\n\n  var key = await drives.fromURLToKey(url, true)\n  var cfg = getDriveConfig(key)\n  if (cfg) {\n    var info = await drives.getDriveInfo(key, {onlyCache: true})\n    if (!(await permissions.requestPermission(`deleteDrive:${key}`, this.sender, { title: info.title }))) {\n      throw new UserDeniedError()\n    }\n    await removeDrive(key)\n  }\n}\n\nexport async function tagDrive (url, tags) {\n  // validate\n  assert(url && typeof url === 'string', 'Must provide a URL string')\n  if (!tags) throw new Error('Tags must be a string or array of strings')\n  if (Array.isArray(tags)) {\n    tags = tags.filter(v => typeof v === 'string')\n    if (tags.length === 0) throw new Error('Tags must be a string or array of strings')\n  } else if (typeof tags !== 'string') {\n    throw new Error('Tags must be a string or array of strings')\n  } else {\n    tags = tags.split(' ')\n  }\n\n  var key = await drives.fromURLToKey(url, true)\n  var cfg = getDriveConfig(key)\n  if (!cfg) {\n    return saveDriveDialog.call(this, url, {tags})\n  }\n\n  if (cfg.tags) {\n    // remove any tags already present\n    tags = tags.filter(tag => !cfg.tags.includes(tag))\n    if (tags.length === 0) {\n      return // already tagged with all requested tags\n    }\n  }\n\n  var info = await drives.getDriveInfo(key, {onlyCache: true})\n  if (!(await permissions.requestPermission(`tagDrive:${key}`, this.sender, { title: info.title, tags }))) {\n    throw new UserDeniedError()\n  }\n\n  if (cfg.tags) tags = tags.concat(cfg.tags)\n  await configDrive(key, {tags})\n}\n\nexport async function importFilesAndFolders (url, filePaths) {\n  if (!wcTrust.isWcTrusted(this.sender)) return\n  return doImport(this.sender, url, filePaths)\n}\n\nexport async function importFilesDialog (url) {\n  if (!wcTrust.isWcTrusted(this.sender)) return\n\n  var res = await dialog.showOpenDialog({\n    title: 'Import files',\n    buttonLabel: 'Import',\n    properties: ['openFile', 'multiSelections', 'createDirectory']\n  })\n  if (res.filePaths.length) {\n    return doImport(this.sender, url, res.filePaths)\n  }\n  return {numImported: 0}\n}\n\nexport async function importFoldersDialog (url) {\n  if (!wcTrust.isWcTrusted(this.sender)) return\n\n  var res = await dialog.showOpenDialog({\n    title: 'Import folders',\n    buttonLabel: 'Import',\n    properties: ['openDirectory', 'multiSelections', 'createDirectory']\n  })\n  if (res.filePaths.length) {\n    return doImport(this.sender, url, res.filePaths)\n  }\n  return {numImported: 0}\n}\n\nexport async function exportFilesDialog (urls) {\n  if (!wcTrust.isWcTrusted(this.sender)) return\n\n  var res = await dialog.showOpenDialog({\n    title: 'Export files',\n    buttonLabel: 'Export',\n    properties: ['openDirectory', 'createDirectory']\n  })\n  if (res.filePaths.length) {\n    var baseDstPath = res.filePaths[0]\n    urls = Array.isArray(urls) ? urls : [urls]\n    for (let srcUrl of urls) {\n      var urlp = parseDriveUrl(srcUrl)\n      let {checkoutFS} = await lookupDrive(this.sender, urlp.hostname, urlp.version)\n      let dstPath = joinPath(baseDstPath, urlp.pathname.split('/').pop())\n      await pda.exportArchiveToFilesystem({\n        srcArchive: checkoutFS.session ? checkoutFS.session.drive : checkoutFS,\n        srcPath: urlp.pathname,\n        dstPath,\n        overwriteExisting: false,\n        skipUndownloadedFiles: false\n      })\n    }\n    return {numExported: res.filePaths.length}\n  }\n  return {numExported: 0}\n}\n\n// internal methods\n// =\n\nfunction isStrArray (v) {\n  return (Array.isArray(v) && v.every(el => typeof el === 'string'))\n}\n\nasync function doImport (wc, url, filePaths) {\n  var urlp = parseDriveUrl(url)\n  var {checkoutFS, isHistoric} = await lookupDrive(wc, urlp.hostname, urlp.version)\n  if (isHistoric) throw new ArchiveNotWritableError('Cannot modify a historic version')\n\n  // calculate size of import for progress\n  var numFilesToImport = 0\n  for (let srcPath of filePaths) {\n    let stats = await pda.exportFilesystemToArchive({\n      srcPath,\n      dstArchive: checkoutFS.session ? checkoutFS.session.drive : checkoutFS,\n      dstPath: urlp.pathname,\n      ignore: ['index.json'],\n      inplaceImport: false,\n      dryRun: true\n    })\n    numFilesToImport += stats.fileCount\n  }\n\n  var prompt = await prompts.create(wc, 'progress', {label: 'Importing files...'})\n  let numImported = 0\n  try {\n    for (let srcPath of filePaths) {\n      let stats = await pda.exportFilesystemToArchive({\n        srcPath,\n        dstArchive: checkoutFS.session ? checkoutFS.session.drive : checkoutFS,\n        dstPath: urlp.pathname,\n        ignore: ['index.json'],\n        inplaceImport: false,\n        dryRun: false,\n        progress (stats) {\n          prompt.webContents.executeJavaScript(`updateProgress(${(numImported + stats.fileCount) / numFilesToImport}); undefined`)\n        }\n      })\n      numImported += stats.fileCount\n    }\n  } finally {\n    prompts.close(prompt.tab)\n  }\n\n  return {numImported}\n}"
  },
  {
    "path": "app/bg/web-apis/bg/watchlist.js",
    "content": "import * as hyperWatchlist from '../../hyper/watchlist'\n\n// exported api\n// =\n\nexport default {\n  async add (url, opts) {\n    return hyperWatchlist.addSite(0, url, opts)\n  },\n\n  async list () {\n    return hyperWatchlist.getSites(0)\n  },\n\n  async update (site) {\n    return hyperWatchlist.updateWatchlist(0, site)\n  },\n\n  async remove (url) {\n    return hyperWatchlist.removeSite(0, url)\n  },\n\n  // events\n  // =\n\n  createEventsStream () {\n    return hyperWatchlist.createEventsStream()\n  }\n}\n"
  },
  {
    "path": "app/bg/web-apis/bg.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport { findTab } from '../ui/tabs/manager'\n\nconst INTERNAL_ORIGIN_REGEX = /^(beaker:)/i\nconst SITE_ORIGIN_REGEX = /^(beaker:|hyper:|https?:|data:)/i\nconst IFRAME_WHITELIST = [\n  'hyperdrive.loadDrive',\n  'hyperdrive.getInfo',\n  'hyperdrive.diff',\n  'hyperdrive.stat',\n  'hyperdrive.readFile',\n  'hyperdrive.readdir',\n  'hyperdrive.query',\n  'hyperdrive.watch',\n  'hyperdrive.resolveName'\n]\n\n// internal manifests\nimport loggerManifest from './manifests/internal/logger'\nimport drivesManifest from './manifests/internal/drives'\nimport beakerBrowserManifest from './manifests/internal/browser'\nimport beakerFilesystemManifest from './manifests/internal/beaker-filesystem'\nimport bookmarksManifest from './manifests/internal/bookmarks'\nimport datLegacyManifest from './manifests/internal/dat-legacy'\nimport downloadsManifest from './manifests/internal/downloads'\nimport folderSyncManifest from './manifests/internal/folder-sync'\nimport historyManifest from './manifests/internal/history'\nimport hyperdebugManifest from './manifests/internal/hyperdebug'\nimport sitedataManifest from './manifests/internal/sitedata'\nimport watchlistManifest from './manifests/internal/watchlist'\n\n// internal apis\nimport { WEBAPI as loggerAPI } from '../logger'\nimport { WEBAPI as auditLogAPI } from '../dbs/audit-log'\nimport drivesAPI from './bg/drives'\nimport * as bookmarksAPI from '../filesystem/bookmarks'\nimport beakerFilesystemAPI from './bg/beaker-filesystem'\nimport datLegacyAPI from './bg/dat-legacy'\nimport folderSyncAPI from './bg/folder-sync'\nimport historyAPI from './bg/history'\nimport hyperdebugAPI from './bg/hyperdebug'\nimport { WEBAPI as sitedataAPI } from '../dbs/sitedata'\nimport watchlistAPI from './bg/watchlist'\nimport { WEBAPI as downloadsAPI } from '../ui/downloads'\nimport { WEBAPI as beakerBrowserAPI } from '../browser'\n\n// external manifests\nimport capabilitiesManifest from './manifests/external/capabilities'\nimport contactsManifest from './manifests/external/contacts'\nimport hyperdriveManifest from './manifests/external/hyperdrive'\nimport markdownManifest from './manifests/external/markdown'\nimport panesManifest from './manifests/external/panes'\nimport peersocketsManifest from './manifests/external/peersockets'\nimport shellManifest from './manifests/external/shell'\n\n// external apis\nimport capabilitiesAPI from './bg/capabilities'\nimport contactsAPI from './bg/contacts'\nimport hyperdriveAPI from './bg/hyperdrive'\nimport markdownAPI from './bg/markdown'\nimport panesAPI from './bg/panes'\nimport peersocketsAPI from './bg/peersockets'\nimport * as shellAPI from './bg/shell'\n\n// experimental manifests\nimport experimentalCapturePageManifest from './manifests/external/experimental/capture-page'\nimport experimentalDatPeersManifest from './manifests/external/experimental/dat-peers'\nimport experimentalGlobalFetchManifest from './manifests/external/experimental/global-fetch'\n\n// experimental apis\nimport experimentalCapturePageAPI from './bg/experimental/capture-page'\nimport experimentalDatPeersAPI from './bg/experimental/dat-peers'\nimport experimentalGlobalFetchAPI from './bg/experimental/global-fetch'\n\n// exported api\n// =\n\nexport const setup = function () {\n  // internal apis\n  rpc.exportAPI('logger', loggerManifest, Object.assign({}, auditLogAPI, loggerAPI), internalOnly)\n  rpc.exportAPI('beaker-browser', beakerBrowserManifest, beakerBrowserAPI, internalOnly)\n  rpc.exportAPI('beaker-filesystem', beakerFilesystemManifest, beakerFilesystemAPI, internalOnly)\n  rpc.exportAPI('bookmarks', bookmarksManifest, bookmarksAPI, internalOnly)\n  rpc.exportAPI('dat-legacy', datLegacyManifest, datLegacyAPI, internalOnly)\n  rpc.exportAPI('downloads', downloadsManifest, downloadsAPI, internalOnly)\n  rpc.exportAPI('drives', drivesManifest, drivesAPI, internalOnly)\n  rpc.exportAPI('folder-sync', folderSyncManifest, folderSyncAPI, internalOnly)\n  rpc.exportAPI('history', historyManifest, historyAPI, internalOnly)\n  rpc.exportAPI('hyperdebug', hyperdebugManifest, hyperdebugAPI, internalOnly)\n  rpc.exportAPI('sitedata', sitedataManifest, sitedataAPI, internalOnly)\n  rpc.exportAPI('watchlist', watchlistManifest, watchlistAPI, internalOnly)\n\n  // external apis\n  rpc.exportAPI('capabilities', capabilitiesManifest, capabilitiesAPI, secureOnly('capabilities'))\n  rpc.exportAPI('contacts', contactsManifest, contactsAPI, secureOnly('contacts'))\n  rpc.exportAPI('hyperdrive', hyperdriveManifest, hyperdriveAPI, secureOnly('hyperdrive'))\n  rpc.exportAPI('markdown', markdownManifest, markdownAPI)\n  rpc.exportAPI('panes', panesManifest, panesAPI, secureOnly('panes'))\n  rpc.exportAPI('peersockets', peersocketsManifest, peersocketsAPI, secureOnly('peersockets'))\n  rpc.exportAPI('shell', shellManifest, shellAPI, secureOnly('shell'))\n\n  // experimental apis\n  rpc.exportAPI('experimental-capture-page', experimentalCapturePageManifest, experimentalCapturePageAPI, secureOnly)\n  rpc.exportAPI('experimental-dat-peers', experimentalDatPeersManifest, experimentalDatPeersAPI, secureOnly)\n  rpc.exportAPI('experimental-global-fetch', experimentalGlobalFetchManifest, experimentalGlobalFetchAPI, secureOnly)\n}\n\nfunction internalOnly (event, methodName, args) {\n  if (!(event && event.sender)) {\n    return false\n  }\n  var senderInfo = getSenderInfo(event)\n  return senderInfo.isMainFrame && INTERNAL_ORIGIN_REGEX.test(senderInfo.url)\n}\n\nconst secureOnly = apiName => (event, methodName, args) => {\n  if (!(event && event.sender)) {\n    return false\n  }\n  var senderInfo = getSenderInfo(event)\n  if (!SITE_ORIGIN_REGEX.test(senderInfo.url)) {\n    return false\n  }\n  if (!senderInfo.isMainFrame) {\n    return IFRAME_WHITELIST.includes(`${apiName}.${methodName}`)\n  }\n  return true\n}\n\nfunction getSenderInfo (event) {\n  var tab = findTab(event.sender)\n  if (tab) return tab.getIPCSenderInfo(event)\n  return {isMainFrame: true, url: event.sender.getURL()}\n}"
  },
  {
    "path": "app/bg/web-apis/fg/event-target.js",
    "content": "// this emulates the implementation of event-targets by browsers\n\nconst LISTENERS = Symbol() // eslint-disable-line\nconst CREATE_STREAM = Symbol() // eslint-disable-line\nconst STREAM_EVENTS = Symbol() // eslint-disable-line\nconst STREAM = Symbol() // eslint-disable-line\nconst PREP_EVENT = Symbol() // eslint-disable-line\n\nexport class EventTarget {\n  constructor () {\n    this[LISTENERS] = {}\n    this.addEventListener = this.addEventListener.bind(this)\n    this.removeEventListener = this.removeEventListener.bind(this)\n    this.dispatchEvent = this.dispatchEvent.bind(this)\n  }\n\n  addEventListener (type, callback) {\n    if (!(type in this[LISTENERS])) {\n      this[LISTENERS][type] = []\n    }\n    this[LISTENERS][type].push(callback)\n  }\n\n  removeEventListener (type, callback) {\n    if (!(type in this[LISTENERS])) {\n      return\n    }\n    var stack = this[LISTENERS][type]\n    var i = stack.findIndex(cb => cb === callback)\n    if (i !== -1) {\n      stack.splice(i, 1)\n    }\n  }\n\n  dispatchEvent (event) {\n    if (!(event.type in this[LISTENERS])) {\n      return\n    }\n    event.target = this\n    var stack = this[LISTENERS][event.type]\n    stack.forEach(cb => cb.call(this, event))\n  }\n}\n\nexport class EventTargetFromStream extends EventTarget {\n  constructor (createStreamFn, events, eventPrepFn) {\n    super()\n    this[CREATE_STREAM] = createStreamFn\n    this[STREAM_EVENTS] = events\n    this[PREP_EVENT] = eventPrepFn\n    this[STREAM] = null\n  }\n\n  addEventListener (type, callback) {\n    if (!this[STREAM]) {\n      // create the event stream\n      let s = this[STREAM] = fromEventStream(this[CREATE_STREAM]())\n      // proxy all events\n      this[STREAM_EVENTS].forEach(event => {\n        s.addEventListener(event, details => {\n          details = details || {}\n          if (this[PREP_EVENT]) {\n            details = this[PREP_EVENT](event, details)\n          }\n          details.target = this\n          this.dispatchEvent(new Event(event, details))\n        })\n      })\n    }\n    return super.addEventListener(type, callback)\n  }\n}\n\nexport class Event {\n  constructor (type, opts) {\n    this.type = type\n    for (var k in opts) {\n      this[k] = opts[k]\n    }\n    Object.defineProperty(this, 'bubbles', {value: false})\n    Object.defineProperty(this, 'cancelBubble', {value: false})\n    Object.defineProperty(this, 'cancelable', {value: false})\n    Object.defineProperty(this, 'composed', {value: false})\n    Object.defineProperty(this, 'currentTarget', {value: this.target})\n    Object.defineProperty(this, 'deepPath', {value: []})\n    Object.defineProperty(this, 'defaultPrevented', {value: false})\n    Object.defineProperty(this, 'eventPhase', {value: 2}) // Event.AT_TARGET\n    Object.defineProperty(this, 'timeStamp', {value: Date.now()})\n    Object.defineProperty(this, 'isTrusted', {value: true})\n    Object.defineProperty(this, 'createEvent', {value: () => undefined})\n    Object.defineProperty(this, 'composedPath', {value: () => []})\n    Object.defineProperty(this, 'initEvent', {value: () => undefined})\n    Object.defineProperty(this, 'preventDefault', {value: () => undefined})\n    Object.defineProperty(this, 'stopImmediatePropagation', {value: () => undefined})\n    Object.defineProperty(this, 'stopPropagation', {value: () => undefined})\n  }\n}\n\nexport function bindEventStream (stream, target) {\n  stream.on('data', data => {\n    var event = data[1] || {}\n    event.type = data[0]\n    target.dispatchEvent(event)\n  })\n}\n\nexport function fromEventStream (stream) {\n  var target = new EventTarget()\n  bindEventStream(stream, target)\n  target.close = () => {\n    target.listeners = {}\n    stream.close()\n  }\n  return target\n}\n\nexport function fromAsyncEventStream (asyncStream) {\n  var target = new EventTarget()\n  asyncStream.then(\n    stream => bindEventStream(stream, target),\n    err => {\n      target.dispatchEvent({type: 'error', details: err})\n      target.close()\n    }\n  )\n  target.close = () => {\n    target.listeners = {}\n    asyncStream.then(stream => stream.close())\n  }\n  return target\n};\n"
  },
  {
    "path": "app/bg/web-apis/fg/experimental.js",
    "content": "/* globals Request Response fetch */\n\nimport { EventTargetFromStream } from './event-target'\n\nimport errors from 'beaker-error-constants'\nimport experimentalGlobalFetchManifest from '../manifests/external/experimental/global-fetch'\nimport experimentalCapturePageManifest from '../manifests/external/experimental/capture-page'\nimport experimentalDatPeersManifest from '../manifests/external/experimental/dat-peers'\n\nexport const setup = function (rpc) {\n  const experimental = {}\n  const opts = {timeout: false, errors}\n\n  // hyperdrive or internal only\n  if (['beaker:', 'hyper:'].includes(window.location.protocol)) {\n    const globalFetchRPC = rpc.importAPI('experimental-global-fetch', experimentalGlobalFetchManifest, opts)\n    const capturePageRPC = rpc.importAPI('experimental-capture-page', experimentalCapturePageManifest, opts)\n    const datPeersRPC = rpc.importAPI('experimental-dat-peers', experimentalDatPeersManifest, opts)\n\n    // experimental.globalFetch\n    experimental.globalFetch = async function globalFetch (input, init) {\n      var request = new Request(input, init)\n      if (request.method !== 'HEAD' && request.method !== 'GET') {\n        throw new Error('Only HEAD and GET requests are currently supported by globalFetch()')\n      }\n      try {\n        var responseData = await globalFetchRPC.fetch({\n          method: request.method,\n          url: request.url,\n          headers: request.headers\n        })\n        return new Response(responseData.body, responseData)\n      } catch (e) {\n        if (e.message === 'Can only send requests to http or https URLs' && request.url.startsWith('hyper://')) {\n          // we can just use `fetch` for hyper:// URLs, because hyper:// does not enforce CORS\n          return fetch(input, init)\n        }\n        throw e\n      }\n    }\n\n    // experimental.capturePage\n    experimental.capturePage = capturePageRPC.capturePage\n\n    // experimental.datPeers\n    class DatPeer {\n      constructor (id, sessionData) {\n        this.id = id\n        this.sessionData = sessionData\n      }\n      send (data) {\n        datPeersRPC.send(this.id, data)\n      }\n    }\n    function prepDatPeersEvents (event, details) {\n      var peer = new DatPeer(details.peerId, details.sessionData)\n      delete details.peerId\n      delete details.sessionData\n      details.peer = peer\n      return details\n    }\n    const datPeersEvents = ['connect', 'message', 'session-data', 'disconnect']\n    experimental.datPeers = new EventTargetFromStream(datPeersRPC.createEventStream.bind(datPeersRPC), datPeersEvents, prepDatPeersEvents)\n    experimental.datPeers.list = async () => {\n      var peers = await datPeersRPC.list()\n      return peers.map(p => new DatPeer(p.id, p.sessionData))\n    }\n    experimental.datPeers.get = async (peerId) => {\n      var {sessionData} = await datPeersRPC.get(peerId)\n      return new DatPeer(peerId, sessionData)\n    }\n    experimental.datPeers.broadcast = datPeersRPC.broadcast\n    experimental.datPeers.getSessionData = datPeersRPC.getSessionData\n    experimental.datPeers.setSessionData = datPeersRPC.setSessionData\n    experimental.datPeers.getOwnPeerId = datPeersRPC.getOwnPeerId\n  }\n\n  return experimental\n}\n"
  },
  {
    "path": "app/bg/web-apis/fg/external.js",
    "content": "import { fromEventStream, EventTargetFromStream } from './event-target'\nimport errors from 'beaker-error-constants'\nimport capabilitiesManifest from '../manifests/external/capabilities'\nimport contactsManifest from '../manifests/external/contacts'\nimport markdownManifest from '../manifests/external/markdown'\nimport panesManifest from '../manifests/external/panes'\nimport peersocketsManifest from '../manifests/external/peersockets'\nimport shellManifest from '../manifests/external/shell'\n\nconst RPC_OPTS = { timeout: false, errors }\n\nexport const setup = function (rpc) {\n  var capabilities = rpc.importAPI('capabilities', capabilitiesManifest, RPC_OPTS)\n  var contacts = rpc.importAPI('contacts', contactsManifest, RPC_OPTS)\n  var markdown = rpc.importAPI('markdown', markdownManifest, RPC_OPTS)\n  var shell = rpc.importAPI('shell', shellManifest, RPC_OPTS)\n\n  if (window.location.protocol !== 'beaker:') {\n    delete shell.importFilesAndFolders\n    delete shell.importFilesDialog\n    delete shell.importFoldersDialog\n    delete shell.exportFilesDialog\n  }\n\n  var peersocketsRPC = rpc.importAPI('peersockets', peersocketsManifest, RPC_OPTS)\n  var peersockets = {\n    join (topic) {\n      var stream = peersocketsRPC.join(topic)\n      var obj = fromEventStream(stream)\n      obj.send = (peerId, msg) => {\n        stream.write([peerId, msg])\n      }\n      return obj\n    },\n    watch () {\n      return fromEventStream(peersocketsRPC.watch())\n    }\n  }\n\n  var panesRPC = rpc.importAPI('panes', panesManifest, RPC_OPTS)\n  var panes = new EventTargetFromStream(panesRPC.createEventStream, ['pane-attached', 'pane-detached', 'pane-navigated'])\n  panes.setAttachable = panesRPC.setAttachable\n  panes.getAttachedPane = panesRPC.getAttachedPane\n  panes.attachToLastActivePane = panesRPC.attachToLastActivePane\n  panes.create = panesRPC.create\n  panes.navigate = panesRPC.navigate\n  panes.focus = panesRPC.focus\n  panes.executeJavaScript = panesRPC.executeJavaScript\n  panes.injectCss = panesRPC.injectCss\n  panes.uninjectCss = panesRPC.uninjectCss\n\n  var _terminalCommands = []\n  var terminal = {\n    getCommands () {\n      return (_terminalCommands || []).slice().map(obj => Object.assign({}, obj))\n    },\n    registerCommand (command) {\n      if (!command || typeof command !== 'object') throw new Error('Command must be an object')\n      if (!command.handle || typeof command.handle !== 'function') throw new Error('Command must have a \\`handle\\` function')\n      if (!command.name || typeof command.name !== 'string') throw new Error('Command must have a \\`name\\` string')\n      if (command.help && typeof command.help !== 'string') throw new Error('The \\`help\\` attribute on a command must be a string')\n      if (command.usage && typeof command.usage !== 'string') throw new Error('The \\`usage\\` attribute on a command must be a string')\n      if (command.options && !Array.isArray(command.options)) throw new Error('The \\`options\\` attribute on a command must be an array')\n\n      let i = _terminalCommands.findIndex(c => c.name === command.name)\n      if (i !== -1) throw new Error('A \"' + command.name + '\" command has already been registered')\n      _terminalCommands.push({\n        handle: command.handle,\n        name: command.name,\n        help: command.help,\n        usage: command.usage,\n        options: command.options\n      })\n    },\n    unregisterCommand (name) {\n      let i = _terminalCommands.findIndex(c => c.name === name)\n      if (i !== -1) _terminalCommands.splice(i, 1)\n    }\n  }\n\n  return {capabilities, contacts, markdown, panes, peersockets, shell, terminal}\n}\n"
  },
  {
    "path": "app/bg/web-apis/fg/hyperdrive.js",
    "content": "import errors from 'beaker-error-constants'\nimport { parseDriveUrl } from '../../../lib/urls'\nimport hyperdriveManifest from '../manifests/external/hyperdrive'\nimport filesystemManifest from '../manifests/internal/beaker-filesystem'\nimport { EventTarget, Event, fromEventStream } from './event-target'\nimport { createStat } from './stat'\n\nconst isDriveUrlRe = /^(hyper:\\/\\/)?[^\\/]+/i\n\nexport function setup (rpc) {\n  // create the rpc apis\n  const hyperdriveRPC = rpc.importAPI('hyperdrive', hyperdriveManifest, { timeout: false, errors })\n\n  function massageUrl (url) {\n    if (!url) url = '/'\n    if (typeof url !== 'string') {\n      if (typeof url.url === 'string') {\n        // passed in another drive instance\n        url = url.url\n      } else if (typeof url.href === 'string') {\n        // passed in window.location\n        url = url.href\n      } else {\n        throw new Error('Invalid hyper:// URL')\n      }\n    }\n    if (location.protocol === 'hyper:') {\n      if (!isDriveUrlRe.test(url)) {\n        url = joinPath('hyper://' + location.hostname, url)\n      }\n    } else if (!url.startsWith('hyper://')) {\n      // didnt include the scheme\n      url = 'hyper://' + url\n    }\n    if (!isDriveUrlRe.test(url)) {\n      // whoops not a valid hyper:// url\n      throw new Error('Invalid URL: must be a hyper:// URL')\n    }\n    return url\n  }\n\n  function joinPath (a = '', b = '') {\n    ;[a, b] = [String(a), String(b)]\n    var [aSlash, bSlash] = [a.endsWith('/'), b.startsWith('/')]\n    if (!aSlash && !bSlash) return a + '/' + b\n    if (aSlash && bSlash) return a + b.slice(1)\n    return a + b\n  }\n\n  function isNotUrlish (v) {\n    if (!v) return true\n    if (typeof v === 'string') return false\n    if (typeof v === 'object') {\n      if (typeof v.url === 'string') return false\n      if (typeof v.href === 'string') return false\n    }\n    return true\n  }\n\n  function createScopedAPI (url) {\n    url = massageUrl(url)\n    const urlParsed = parseDriveUrl(url)\n    url = 'hyper://' + urlParsed.hostname + (urlParsed.version ? `+${urlParsed.version}` : '') + '/'\n\n    // instruct backend to load\n    hyperdriveRPC.loadDrive(url)\n\n    return {\n      get url () { return url },\n      get version () { return urlParsed.version },\n\n      async getInfo (opts = {}) {\n        return hyperdriveRPC.getInfo(url, opts)\n      },\n\n      async configure (info, opts = {}) {\n        return hyperdriveRPC.configure(url, info, opts)\n      },\n\n      checkout (version) {\n        version = version ? `+${version}` : ''\n        return createScopedAPI(`hyper://${urlParsed.hostname}${version}/`)\n      },\n\n      async diff (prefix, other, opts = {}) {\n        if (typeof prefix !== 'string') {\n          if (other) opts = other\n          other = prefix\n          prefix = '/'\n        }\n        other = other && typeof other === 'object' && other.version ? other.version : other\n        var res = await hyperdriveRPC.diff(joinPath(url, prefix), other, prefix, opts)\n        for (let change of res) {\n          if (change.value?.stat) {\n            change.value.stat = createStat(change.value.stat)\n          }\n        }\n        return res\n      },\n\n      async stat (path, opts = {}) {\n        return createStat(await hyperdriveRPC.stat(joinPath(url, path), opts))\n      },\n\n      async readFile (path, opts = {}) {\n        return hyperdriveRPC.readFile(joinPath(url, path), opts)\n      },\n\n      async writeFile (path, data, opts = {}) {\n        return hyperdriveRPC.writeFile(joinPath(url, path), data, opts)\n      },\n\n      async unlink (path, opts = {}) {\n        return hyperdriveRPC.unlink(joinPath(url, path), opts)\n      },\n\n      async copy (path, dstPath, opts = {}) {\n        return hyperdriveRPC.copy(joinPath(url, path), dstPath, opts)\n      },\n\n      async rename (path, dstPath, opts = {}) {\n        return hyperdriveRPC.rename(joinPath(url, path), dstPath, opts)\n      },\n\n      async updateMetadata (path, metadata, opts = {}) {\n        return hyperdriveRPC.updateMetadata(joinPath(url, path), metadata, opts)\n      },\n\n      async deleteMetadata (path, keys, opts = {}) {\n        return hyperdriveRPC.deleteMetadata(joinPath(url, path), keys, opts)\n      },\n\n      async readdir (path = '/', opts = {}) {\n        var names = await hyperdriveRPC.readdir(joinPath(url, path), opts)\n        if (opts.includeStats) {\n          names.forEach(name => { name.stat = createStat(name.stat) })\n        }\n        return names\n      },\n\n      async mkdir (path, opts = {}) {\n        return hyperdriveRPC.mkdir(joinPath(url, path), opts)\n      },\n\n      async rmdir (path, opts = {}) {\n        return hyperdriveRPC.rmdir(joinPath(url, path), opts)\n      },\n\n      async symlink (path, linkname, opts = {}) {\n        return hyperdriveRPC.symlink(joinPath(url, path), linkname, opts)\n      },\n\n      async mount (path, opts = {}) {\n        if (opts.url) opts = opts.url\n        return hyperdriveRPC.mount(joinPath(url, path), opts)\n      },\n\n      async unmount (path, opts = {}) {\n        return hyperdriveRPC.unmount(joinPath(url, path), opts)\n      },\n\n      async query (opts) {\n        if (typeof opts === 'string') {\n          opts = {path: [opts]}\n        }\n        opts.drive = [url]\n        var res = await hyperdriveRPC.query(opts)\n        res.forEach(item => {\n          if (item.stat) item.stat = createStat(item.stat)\n        })\n        return res\n      },\n\n      watch (pathSpec = null, onChanged = null) {\n        // usage: (onChanged)\n        if (typeof pathSpec === 'function') {\n          onChanged = pathSpec\n          pathSpec = null\n        }\n        var evts = fromEventStream(hyperdriveRPC.watch(url, pathSpec))\n        if (onChanged) {\n          evts.addEventListener('changed', onChanged)\n        }\n        return evts\n      }\n    }\n  }\n\n  var api = {\n    drive (url) {\n      return createScopedAPI(url)\n    },\n\n    createDrive (opts = {}) {\n      return hyperdriveRPC.createDrive(opts)\n        .then(newUrl => createScopedAPI(newUrl))\n    },\n\n    forkDrive (url, opts = {}) {\n      url = massageUrl(url)\n      const urlParsed = parseDriveUrl(url)\n      return hyperdriveRPC.forkDrive(urlParsed.hostname, opts)\n        .then(newUrl => createScopedAPI(newUrl))\n    },\n\n    async getInfo (url, opts) {\n      if (isNotUrlish(url) && !opts) {\n        opts = url\n        url = ''\n      }\n      url = massageUrl(url)\n      return hyperdriveRPC.getInfo(url, opts)\n    },\n\n    async configure (url, info, opts) {\n      if (isNotUrlish(url) && !opts && !info) {\n        info = url\n        url = ''\n      }\n      url = massageUrl(url)\n      return hyperdriveRPC.configure(url, info, opts)\n    },\n\n    checkout (url, version) {\n      if (isNotUrlish(url) && !version) {\n        version = url\n        url = ''\n      }\n      url = massageUrl(url)\n      const urlParsed = parseDriveUrl(url)\n      version = version ? `+${version}` : ''\n      return createScopedAPI(`hyper://${urlParsed.hostname}${version}/`)\n    },\n\n    async diff (url, other, opts = {}) {\n      url = massageUrl(url)\n      other = other && typeof other === 'object' && other.version ? other.version : other\n      var res = await hyperdriveRPC.diff(url, other, opts)\n      for (let change of res) {\n        if (change.value?.stat) {\n          change.value.stat = createStat(change.value.stat)\n        }\n      }\n      return res\n    },\n\n    async stat (url, opts = {}) {\n      url = massageUrl(url)\n      return createStat(await hyperdriveRPC.stat(url, opts))\n    },\n\n    async readFile (url, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.readFile(url, opts)\n    },\n\n    async writeFile (url, data, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.writeFile(url, data, opts)\n    },\n\n    async unlink (url, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.unlink(url, opts)\n    },\n\n    async copy (url, dstPath, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.copy(url, dstPath, opts)\n    },\n\n    async rename (url, dstPath, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.rename(url, dstPath, opts)\n    },\n\n    async updateMetadata (url, metadata, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.updateMetadata(url, metadata, opts)\n    },\n\n    async deleteMetadata (url, keys, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.deleteMetadata(url, keys, opts)\n    },\n\n    async readdir (url, opts = {}) {\n      url = massageUrl(url)\n      var names = await hyperdriveRPC.readdir(url, opts)\n      if (opts.includeStats) {\n        names.forEach(name => { name.stat = createStat(name.stat) })\n      }\n      return names\n    },\n\n    async mkdir (url, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.mkdir(url, opts)\n    },\n\n    async rmdir (url, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.rmdir(url, opts)\n    },\n\n    async symlink (url, linkname, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.symlink(url, linkname, opts)\n    },\n\n    async mount (url, opts = {}) {\n      url = massageUrl(url)\n      if (opts.url) opts = opts.url\n      return hyperdriveRPC.mount(url, opts)\n    },\n\n    async unmount (url, opts = {}) {\n      url = massageUrl(url)\n      return hyperdriveRPC.unmount(url, opts)\n    },\n\n    async query (opts) {\n      if (typeof opts === 'string') {\n        opts = {path: [opts]}\n      }\n      if (!opts.drive && location.protocol === 'hyper:') {\n        opts.drive = [location.hostname]\n      }\n      var res = await hyperdriveRPC.query(opts)\n      res.forEach(item => {\n        if (item.stat) item.stat = createStat(item.stat)\n      })\n      return res\n    }\n  }\n\n  // add internal methods\n  if (window.location.protocol === 'beaker:') {\n    api.importFromFilesystem = async function (opts = {}) {\n      return hyperdriveRPC.importFromFilesystem(opts)\n    }\n    api.exportToFilesystem = async function (opts = {}) {\n      return hyperdriveRPC.exportToFilesystem(opts)\n    }\n    api.exportToDrive = async function (opts = {}) {\n      return hyperdriveRPC.exportToDrive(opts)\n    }\n    api.driveDiff = async function (srcUrl, dstUrl, opts = {}) {\n      if (srcUrl && typeof srcUrl.url === 'string') srcUrl = srcUrl.url\n      if (dstUrl && typeof dstUrl.url === 'string') dstUrl = dstUrl.url\n      return hyperdriveRPC.beakerDiff(srcUrl, dstUrl, opts)\n    }\n    api.driveMerge = async function (srcUrl, dstUrl, opts = {}) {\n      if (srcUrl && typeof srcUrl.url === 'string') srcUrl = srcUrl.url\n      if (dstUrl && typeof dstUrl.url === 'string') dstUrl = dstUrl.url\n      return hyperdriveRPC.beakerMerge(srcUrl, dstUrl, opts)\n    }\n  }\n\n  return api\n}\n"
  },
  {
    "path": "app/bg/web-apis/fg/internal.js",
    "content": "import { EventTarget, bindEventStream, fromEventStream } from './event-target'\nimport errors from 'beaker-error-constants'\nimport loggerManifest from '../manifests/internal/logger'\nimport beakerBrowserManifest from '../manifests/internal/browser'\nimport bookmarksManifest from '../manifests/internal/bookmarks'\nimport datLegacyManifest from '../manifests/internal/dat-legacy'\nimport downloadsManifest from '../manifests/internal/downloads'\nimport drivesManifest from '../manifests/internal/drives'\nimport folderSyncManifest from '../manifests/internal/folder-sync'\nimport historyManifest from '../manifests/internal/history'\nimport hyperdebugManifest from '../manifests/internal/hyperdebug'\nimport sitedataManifest from '../manifests/internal/sitedata'\nimport watchlistManifest from '../manifests/internal/watchlist'\n\nexport const setup = function (rpc) {\n  const internal = {}\n  const opts = { timeout: false, errors }\n\n  const loggerRPC = rpc.importAPI('logger', loggerManifest, opts)\n  const beakerBrowserRPC = rpc.importAPI('beaker-browser', beakerBrowserManifest, opts)\n  const bookmarksRPC = rpc.importAPI('bookmarks', bookmarksManifest, opts)\n  const downloadsRPC = rpc.importAPI('downloads', downloadsManifest, opts)\n  const drivesRPC = rpc.importAPI('drives', drivesManifest, opts)\n  const datLegacyRPC = rpc.importAPI('dat-legacy', datLegacyManifest, opts)\n  const folderSyncRPC = rpc.importAPI('folder-sync', folderSyncManifest, opts)\n  const historyRPC = rpc.importAPI('history', historyManifest, opts)\n  const hyperdebugRPC = rpc.importAPI('hyperdebug', hyperdebugManifest, opts)\n  const sitedataRPC = rpc.importAPI('sitedata', sitedataManifest, opts)\n  const watchlistRPC = rpc.importAPI('watchlist', watchlistManifest, opts)\n\n  // attach APIs\n  internal.browser = Object.assign({}, beakerBrowserRPC)\n  internal.browser.createEventsStream = () => fromEventStream(beakerBrowserRPC.createEventsStream())\n  internal.bookmarks = Object.assign({}, bookmarksRPC)\n  internal.datLegacy = datLegacyRPC\n  internal.downloads = Object.assign({}, downloadsRPC)\n  internal.downloads.createEventsStream = () => fromEventStream(downloadsRPC.createEventsStream())\n  internal.folderSync = Object.assign({}, folderSyncRPC)\n  internal.history = Object.assign({}, historyRPC)\n  internal.hyperdebug = Object.assign({}, hyperdebugRPC)\n  internal.hyperdebug.createCoreEventStream = (key) => fromEventStream(hyperdebugRPC.createCoreEventStream(key))\n  internal.logger = Object.assign({}, loggerRPC)\n  internal.logger.stream = (opts) => fromEventStream(loggerRPC.stream(opts))\n  internal.logger.streamAuditLog = (opts) => fromEventStream(loggerRPC.streamAuditLog(opts))\n  internal.sitedata = Object.assign({}, sitedataRPC)\n  internal.watchlist = Object.assign({}, watchlistRPC)\n  internal.watchlist.createEventsStream = () => fromEventStream(watchlistRPC.createEventsStream())\n  \n  // internal.drives\n  internal.drives = new EventTarget()\n  internal.drives.get = drivesRPC.get\n  internal.drives.list = drivesRPC.list\n  internal.drives.getForks = drivesRPC.getForks\n  internal.drives.configure = drivesRPC.configure\n  internal.drives.remove = drivesRPC.remove\n  internal.drives.listTrash = drivesRPC.listTrash\n  internal.drives.collectTrash = drivesRPC.collectTrash\n  internal.drives.delete = drivesRPC.delete\n  internal.drives.touch = drivesRPC.touch\n  internal.drives.clearFileCache = drivesRPC.clearFileCache\n  internal.drives.clearDnsCache = drivesRPC.clearDnsCache\n  internal.drives.getDebugLog = drivesRPC.getDebugLog\n  internal.drives.createDebugStream = () => fromEventStream(drivesRPC.createDebugStream())\n  // window.addEventListener('load', () => {\n  //   try {\n  //     bindEventStream(drivesRPC.createEventStream(), internal.drives)\n  //   } catch (e) {\n  //     // permissions error\n  //   }\n  // })\n\n  return internal\n}\n"
  },
  {
    "path": "app/bg/web-apis/fg/stat.js",
    "content": "// http://man7.org/linux/man-pages/man2/stat.2.html\n// mirrored from hyperdrive/lib/stat.js\n\nfunction toHex (buf) {\n  return buf.reduce((memo, i) => (\n    memo + ('0' + i.toString(16)).slice(-2) // pad with leading 0 if <16\n  ), '')\n}\n\nconst IFSOCK = 49152 // 0b1100...\nconst IFLNK = 40960 // 0b1010...\nconst IFREG = 32768 // 0b1000...\nconst IFBLK = 24576 // 0b0110...\nconst IFDIR = 16384 // 0b0100...\nconst IFCHR = 8192 // 0b0010...\nconst IFIFO = 4096 // 0b0001...\n\nexport function createStat (data) {\n  /*\n  TODO- are the following attrs needed?\n  this.dev = 0\n  this.nlink = 1\n  this.rdev = 0\n  this.blksize = 0\n  this.ino = 0\n  this.uid = data ? data.uid : 0\n  this.gid = data ? data.gid : 0 */\n\n  var mode = data ? data.mode : 0\n  return {\n    mode,\n    size: data ? data.size : 0,\n    offset: data ? data.offset : 0,\n    blocks: data ? data.blocks : 0,\n    downloaded: data ? data.downloaded : 0,\n    atime: new Date(data ? data.mtime : 0), // we just set this to mtime ...\n    mtime: new Date(data ? data.mtime : 0),\n    ctime: new Date(data ? data.ctime : 0),\n    mount: data && data.mount && data.mount.key ? {key: toHex(data.mount.key)} : null,\n    linkname: data ? data.linkname : null,\n    metadata: data ? data.metadata : {},\n\n    isSocket: check(mode, IFSOCK),\n    isSymbolicLink: check(mode, IFLNK),\n    isFile: check(mode, IFREG),\n    isBlockDevice: check(mode, IFBLK),\n    isDirectory: check(mode, IFDIR),\n    isCharacterDevice: check(mode, IFCHR),\n    isFIFO: check(mode, IFIFO)\n  }\n}\n\nfunction check (mode, mask) {\n  return function () {\n    return (mask & mode) === mask\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/fg.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport * as hyperdrive from './fg/hyperdrive'\nimport * as internal from './fg/internal'\nimport * as external from './fg/external'\nimport * as experimental from './fg/experimental'\nimport { contextBridge } from 'electron'\n\nexport const setup = function () {\n  // setup APIs\n  var beaker = {}\n  if (['beaker:', 'hyper:', 'https:', 'http:', 'data:'].includes(window.location.protocol) ||\n      window.location.hostname.endsWith('hyperdrive.network') /* TEMPRARY */) {\n    beaker.hyperdrive = hyperdrive.setup(rpc)\n    Object.assign(beaker, external.setup(rpc))\n  }\n  if (['beaker:', 'hyper:'].includes(window.location.protocol)) {\n    contextBridge.exposeInMainWorld('experimental', experimental.setup(rpc)) // TODO remove?\n  }\n  if (window.location.protocol === 'beaker:' || /* TEMPRARY */ window.location.hostname.endsWith('hyperdrive.network')) {\n    Object.assign(beaker, internal.setup(rpc))\n  }\n  if (Object.keys(beaker).length > 0) {\n    contextBridge.exposeInMainWorld('beaker', beaker)\n  }\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/external/README.md",
    "content": "# External APIs\n\nThese are RPC APIs which are exported to userland, and need to be treated as potentially hostile."
  },
  {
    "path": "app/bg/web-apis/manifests/external/capabilities.js",
    "content": "export default {\n  create: 'promise',\n  modify: 'promise',\n  delete: 'promise'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/external/contacts.js",
    "content": "export default {\n  requestProfile: 'promise',\n  requestContact: 'promise',\n  requestContacts: 'promise',\n  requestAddContact: 'promise',\n  list: 'promise',\n  remove: 'promise'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/external/experimental/capture-page.js",
    "content": "export default {\n  capturePage: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/external/experimental/dat-peers.js",
    "content": "export default {\n  list: 'promise',\n  get: 'promise',\n  broadcast: 'promise',\n  send: 'promise',\n  getSessionData: 'promise',\n  setSessionData: 'promise',\n  getOwnPeerId: 'promise',\n  createEventStream: 'readable'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/external/experimental/global-fetch.js",
    "content": "export default {\n  fetch: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/external/hyperdrive.js",
    "content": "export default {\n  loadDrive: 'promise',\n  createDrive: 'promise',\n  forkDrive: 'promise',\n\n  getInfo: 'promise',\n  configure: 'promise',\n  diff: 'promise',\n\n  stat: 'promise',\n  readFile: 'promise',\n  writeFile: 'promise',\n  unlink: 'promise',\n  copy: 'promise',\n  rename: 'promise',\n  updateMetadata: 'promise',\n  deleteMetadata: 'promise',\n\n  readdir: 'promise',\n  mkdir: 'promise',\n  rmdir: 'promise',\n\n  symlink: 'promise',\n\n  mount: 'promise',\n  unmount: 'promise',\n\n  query: 'promise',\n\n  watch: 'readable',\n  createNetworkActivityStream: 'readable',\n\n  resolveName: 'promise',\n\n  beakerDiff: 'promise',\n  beakerMerge: 'promise',\n  importFromFilesystem: 'promise',\n  exportToFilesystem: 'promise',\n  exportToDrive: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/external/markdown.js",
    "content": "export default {\n  toHTML: 'sync'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/external/panes.js",
    "content": "export default {\n  createEventStream: 'readable',\n  setAttachable: 'sync',\n  getAttachedPane: 'sync',\n  attachToLastActivePane: 'promise',\n  create: 'promise',\n  navigate: 'promise',\n  focus: 'promise',\n  executeJavaScript: 'promise',\n  injectCss: 'promise',\n  uninjectCss: 'promise'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/external/peersockets.js",
    "content": "export default {\n  join: 'duplex',\n  watch: 'readable'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/external/shell.js",
    "content": "export default {\n  drivePropertiesDialog: 'promise',\n  selectFileDialog: 'promise',\n  saveFileDialog: 'promise',\n  selectDriveDialog: 'promise',\n  saveDriveDialog: 'promise',\n  listDrives: 'promise',\n  unsaveDrive: 'promise',\n  tagDrive: 'promise',\n\n  // internal\n  importFilesAndFolders: 'promise',\n  importFilesDialog: 'promise',\n  importFoldersDialog: 'promise',\n  exportFilesDialog: 'promise'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/README.md",
    "content": "# Internal APIs\n\nThese are RPC APIs which are exported to builtin interfaces, and need to be kept away from potentially hostile codepaths."
  },
  {
    "path": "app/bg/web-apis/manifests/internal/beaker-filesystem.js",
    "content": "export default {\n  get: 'sync'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/bookmarks.js",
    "content": "export default {\n  list: 'promise',\n  get: 'promise',\n  add: 'promise',\n  remove: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/browser.js",
    "content": "export default {\n  createEventsStream: 'readable',\n  getInfo: 'promise',\n  getDaemonStatus: 'promise',\n  getDaemonNetworkStatus: 'promise',\n  checkForUpdates: 'promise',\n  restartBrowser: 'sync',\n\n  getSettings: 'promise',\n  getSetting: 'promise',\n  setSetting: 'promise',\n  updateAdblocker: 'promise',\n  updateSetupState: 'promise',\n  migrate08to09: 'promise',\n  setStartPageBackgroundImage: 'promise',\n  \n  getDefaultProtocolSettings: 'promise',\n  setAsDefaultProtocolClient: 'promise',\n  removeAsDefaultProtocolClient: 'promise',\n\n  listBuiltinFavicons: 'promise',\n  getBuiltinFavicon: 'promise',\n  uploadFavicon: 'promise',\n  imageToIco: 'promise',\n\n  reconnectHyperdriveDaemon: 'promise',\n\n  fetchBody: 'promise',\n  downloadURL: 'promise',\n\n  convertDat: 'promise',\n\n  getResourceContentType: 'sync',\n  getCertificate: 'promise',\n\n  executeShellWindowCommand: 'promise',\n  toggleSiteInfo: 'promise',\n  toggleLiveReloading: 'promise',\n  setWindowDimensions: 'promise',\n  setWindowDragModeEnabled: 'promise',\n  moveWindow: 'promise',\n  maximizeWindow: 'promise',\n  toggleWindowMaximized: 'promise',\n  minimizeWindow: 'promise',\n  closeWindow: 'promise',\n  resizeSiteInfo: 'promise',\n  refreshTabState: 'promise',\n\n  spawnAndExecuteJs: 'promise',\n\n  showOpenDialog: 'promise',\n  showContextMenu: 'promise',\n  showModal: 'promise',\n  newWindow: 'promise',\n  newPane: 'promise',\n  openUrl: 'promise',\n  gotoUrl: 'promise',\n  getPageUrl: 'promise',\n  refreshPage: 'promise',\n  focusPage: 'promise',\n  executeJavaScriptInPage: 'promise',\n  injectCssInPage: 'promise',\n  uninjectCssInPage: 'promise',\n  openFolder: 'promise',\n  doWebcontentsCmd: 'promise',\n  doTest: 'promise',\n  closeModal: 'sync'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/dat-legacy.js",
    "content": "export default {\n  list: 'promise',\n  remove: 'promise'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/downloads.js",
    "content": "export default {\n  getDownloads: 'promise',\n  pause: 'promise',\n  resume: 'promise',\n  cancel: 'promise',\n  remove: 'promise',\n  open: 'promise',\n  showInFolder: 'promise',\n  createEventsStream: 'readable'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/drives.js",
    "content": "export default {\n  get: 'promise',\n  list: 'promise',\n  getForks: 'promise',\n  configure: 'promise',\n  remove: 'promise',\n  listTrash: 'promise',\n  collectTrash: 'promise',\n  delete: 'promise',\n  touch: 'promise',\n  clearFileCache: 'promise',\n  clearDnsCache: 'promise',\n  createEventStream: 'readable',\n  getDebugLog: 'promise',\n  createDebugStream: 'readable'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/folder-sync.js",
    "content": "export default {\n  chooseFolderDialog: 'promise',\n  syncDialog: 'promise',\n  get: 'promise',\n  set: 'promise',\n  updateIgnoredFiles: 'promise',\n  remove: 'promise',\n  compare: 'promise',\n  restoreFile: 'promise',\n  sync: 'readable',\n  enableAutoSync: 'promise',\n  disableAutoSync: 'promise',\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/history.js",
    "content": "export default {\n  addVisit: 'promise',\n  getVisitHistory: 'promise',\n  getMostVisited: 'promise',\n  search: 'promise',\n  removeVisit: 'promise',\n  removeAllVisits: 'promise',\n  removeVisitsAfter: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/hyperdebug.js",
    "content": "export default {\n  listCores: 'promise',\n  hasCoreBlocks: 'promise',\n  createCoreEventStream: 'readable'\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/logger.js",
    "content": "export default {\n  stream: 'readable',\n  query: 'promise',\n  listDaemonLog: 'promise',\n  listAuditLog: 'promise',\n  streamAuditLog: 'readable',\n  getAuditLogStats: 'promise',\n}"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/sitedata.js",
    "content": "export default {\n  get: 'promise',\n  set: 'promise',\n  getPermissions: 'promise',\n  getPermission: 'promise',\n  setPermission: 'promise',\n  clearPermission: 'promise',\n  clearPermissionAllOrigins: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/users.js",
    "content": "export default {\n  list: 'promise',\n  get: 'promise',\n  showCreateDialog: 'promise',\n  create: 'promise',\n  createTemporary: 'promise',\n  add: 'promise',\n  edit: 'promise',\n  remove: 'promise',\n  setupDefault: 'promise'\n}\n"
  },
  {
    "path": "app/bg/web-apis/manifests/internal/watchlist.js",
    "content": "export default {\n  add: 'promise',\n  list: 'promise',\n  update: 'promise',\n  remove: 'promise',\n\n  // events\n  createEventsStream: 'readable'\n}\n"
  },
  {
    "path": "app/fg/README.md",
    "content": "# FG (foreground)\n\nThis folder contains frontend code that drives Beaker's UI.\n\nEach folder is a self-contained UI component. Many folders have a 1:1 connection with a file in `/app/bg/ui/subwindows/*` such as `perm-prompt`, `prompts`, and `shell-menus`.\n\nNotable folders:\n\n - `lib` is reusable code that's specific to frontend.\n - `shell-window` is the primary shell UI of Beaker.\n\n ## RPC\n\n Beaker's Web APIs are not available in these components. Therefore all RPC with the Electron process needs to be setup manually (thus the `bg-process-rpc.js` pattern)."
  },
  {
    "path": "app/fg/json-renderer/index.js",
    "content": "\nconst TWOMB = 2097152 // in bytes\n\nfunction parse (str) {\n  if (str === '') return false\n  if (str.length > TWOMB) return false // too much json, bro\n  try {\n    return JSON.parse(str)\n  } catch (e) {\n    return false\n  }\n}\n\nvar el = document.querySelector('body > pre')\n\n// try to parse\nvar obj = parse(el.textContent)\nif (obj) {\n  var json = JSON.stringify(obj, null, 2)\n  json = json.replace(/^(\\s+)(\".+\":)/gmi, (v, ws, key) => `${ws}<span style=\"color: green\">${key}</span>`)\n  json = json.replace(/<\\/span> (\".+\")/gmi, (v, str) => `</span> <span style=\"color: #555\">${str}</span>`)\n  json = json.replace(/^(\\s+)(\".+\")(,?)$/gmi, (v, ws, str, comma) => `${ws}<span style=\"color: #555\">${str}</span>${comma}`)\n  json = json.replace(/<\\/span> ([0-9]+)/gmi, (v, num) => `</span> <span style=\"color: blue\">${num}</span>`)\n  json = json.replace(/^(\\s+)([0-9]+)(,?)$/gmi, (v, ws, num, comma) => `${ws}<span style=\"color: blue\">${num}</span>${comma}`)\n  json = json.replace(/<\\/span> (true|false)/gmi, (v, bool) => `</span> <span style=\"color: red\">${bool}</span>`)\n  json = json.replace(/^(\\s+)(true|false)(,?)$/gmi, (v, ws, bool, comma) => `${ws}<span style=\"color: red\">${bool}</span>${comma}`)\n  el.innerHTML = json\n}\n"
  },
  {
    "path": "app/fg/lib/color-thief.js",
    "content": "/*!\n * Color Thief v2.0\n * by Lokesh Dhakar - http://www.lokeshdhakar.com\n *\n * Thanks\n * ------\n * Nick Rabinowitz - For creating quantize.js.\n * John Schulz - For clean up and optimization. @JFSIII\n * Nathan Spady - For adding drag and drop support to the demo page.\n *\n * License\n * -------\n * Copyright 2011, 2015 Lokesh Dhakar\n * Released under the MIT license\n * https://raw.githubusercontent.com/lokesh/color-thief/master/LICENSE\n *\n */\n\n/*\n  CanvasImage Class\n  Class that wraps the html image element and canvas.\n  It also simplifies some of the canvas context manipulation\n  with a set of helper functions.\n*/\nvar CanvasImage = function (image) {\n  this.canvas = document.createElement('canvas')\n  this.context = this.canvas.getContext('2d')\n\n  document.body.appendChild(this.canvas)\n\n  this.width = this.canvas.width = image.width\n  this.height = this.canvas.height = image.height\n\n  this.context.drawImage(image, 0, 0, this.width, this.height)\n}\n\nCanvasImage.prototype.clear = function () {\n  this.context.clearRect(0, 0, this.width, this.height)\n}\n\nCanvasImage.prototype.update = function (imageData) {\n  this.context.putImageData(imageData, 0, 0)\n}\n\nCanvasImage.prototype.getPixelCount = function () {\n  return this.width * this.height\n}\n\nCanvasImage.prototype.getImageData = function () {\n  return this.context.getImageData(0, 0, this.width, this.height)\n}\n\nCanvasImage.prototype.removeCanvas = function () {\n  this.canvas.parentNode.removeChild(this.canvas)\n}\n\nvar ColorThief = function () {}\n\n/*\n * getColor(sourceImage[, quality])\n * returns {r: num, g: num, b: num}\n *\n * Use the median cut algorithm provided by quantize.js to cluster similar\n * colors and return the base color from the largest cluster.\n *\n * Quality is an optional argument. It needs to be an integer. 1 is the highest quality settings.\n * 10 is the default. There is a trade-off between quality and speed. The bigger the number, the\n * faster a color will be returned but the greater the likelihood that it will not be the visually\n * most dominant color.\n *\n * */\nColorThief.prototype.getColor = function (sourceImage, quality) {\n  var palette = this.getPalette(sourceImage, 5, quality)\n  var dominantColor = palette[0]\n  return dominantColor\n}\n\nColorThief.prototype.getPalette = function (sourceImage, quality) {\n  return this.getPalette(sourceImage, 5, quality)\n}\n\n/*\n * getPalette(sourceImage[, colorCount, quality])\n * returns array[ {r: num, g: num, b: num}, {r: num, g: num, b: num}, ...]\n *\n * Use the median cut algorithm provided by quantize.js to cluster similar colors.\n *\n * colorCount determines the size of the palette; the number of colors returned. If not set, it\n * defaults to 10.\n *\n * BUGGY: Function does not always return the requested amount of colors. It can be +/- 2.\n *\n * quality is an optional argument. It needs to be an integer. 1 is the highest quality settings.\n * 10 is the default. There is a trade-off between quality and speed. The bigger the number, the\n * faster the palette generation but the greater the likelihood that colors will be missed.\n *\n *\n */\nColorThief.prototype.getPalette = function (sourceImage, colorCount, quality) {\n  if (typeof colorCount === 'undefined') {\n    colorCount = 10\n  }\n  if (typeof quality === 'undefined' || quality < 1) {\n    quality = 10\n  }\n\n  // Create custom CanvasImage object\n  var image = new CanvasImage(sourceImage)\n  var imageData = image.getImageData()\n  var pixels = imageData.data\n  var pixelCount = image.getPixelCount()\n\n  // Store the RGB values in an array format suitable for quantize function\n  var pixelArray = []\n  for (var i = 0, offset, r, g, b, a; i < pixelCount; i = i + quality) {\n    offset = i * 4\n    r = pixels[offset + 0]\n    g = pixels[offset + 1]\n    b = pixels[offset + 2]\n    a = pixels[offset + 3]\n    // If pixel is mostly opaque and not white\n    if (a >= 125) {\n      if (!(r > 250 && g > 250 && b > 250)) {\n        pixelArray.push([r, g, b])\n      }\n    }\n  }\n\n  // Send array to quantize function which clusters values\n  // using median cut algorithm\n  var cmap = MMCQ.quantize(pixelArray, colorCount)\n  var palette = cmap ? cmap.palette() : null\n\n  // Clean up\n  image.removeCanvas()\n\n  return palette\n}\n\n/*!\n * quantize.js Copyright 2008 Nick Rabinowitz.\n * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php\n */\n\n// fill out a couple protovis dependencies\n/*!\n * Block below copied from Protovis: http://mbostock.github.com/protovis/\n * Copyright 2010 Stanford Visualization Group\n * Licensed under the BSD License: http://www.opensource.org/licenses/bsd-license.php\n */\nif (!pv) {\n  var pv = {\n    map: function (array, f) {\n      var o = {}\n      return f ? array.map(function (d, i) { o.index = i; return f.call(o, d) }) : array.slice()\n    },\n    naturalOrder: function (a, b) {\n      return (a < b) ? -1 : ((a > b) ? 1 : 0)\n    },\n    sum: function (array, f) {\n      var o = {}\n      return array.reduce(f ? function (p, d, i) { o.index = i; return p + f.call(o, d) } : function (p, d) { return p + d }, 0)\n    },\n    max: function (array, f) {\n      return Math.max.apply(null, f ? pv.map(array, f) : array)\n    }\n  }\n}\n\n/**\n * Basic Javascript port of the MMCQ (modified median cut quantization)\n * algorithm from the Leptonica library (http://www.leptonica.com/).\n * Returns a color map you can use to map original pixels to the reduced\n * palette. Still a work in progress.\n *\n * @author Nick Rabinowitz\n * @example\n\n// array of pixels as [R,G,B] arrays\nvar myPixels = [[190,197,190], [202,204,200], [207,214,210], [211,214,211], [205,207,207]\n                // etc\n                ];\nvar maxColors = 4;\n\nvar cmap = MMCQ.quantize(myPixels, maxColors);\nvar newPalette = cmap.palette();\nvar newPixels = myPixels.map(function(p) {\n    return cmap.map(p);\n});\n\n */\nvar MMCQ = (function () {\n  // private constants\n  var sigbits = 5,\n    rshift = 8 - sigbits,\n    maxIterations = 1000,\n    fractByPopulations = 0.75\n\n    // get reduced-space color index for a pixel\n  function getColorIndex (r, g, b) {\n    return (r << (2 * sigbits)) + (g << sigbits) + b\n  }\n\n  // Simple priority queue\n  function PQueue (comparator) {\n    var contents = [],\n      sorted = false\n\n    function sort () {\n      contents.sort(comparator)\n      sorted = true\n    }\n\n    return {\n      push: function (o) {\n        contents.push(o)\n        sorted = false\n      },\n      peek: function (index) {\n        if (!sorted) sort()\n        if (index === undefined) index = contents.length - 1\n        return contents[index]\n      },\n      pop: function () {\n        if (!sorted) sort()\n        return contents.pop()\n      },\n      size: function () {\n        return contents.length\n      },\n      map: function (f) {\n        return contents.map(f)\n      },\n      debug: function () {\n        if (!sorted) sort()\n        return contents\n      }\n    }\n  }\n\n  // 3d color space box\n  function VBox (r1, r2, g1, g2, b1, b2, histo) {\n    var vbox = this\n    vbox.r1 = r1\n    vbox.r2 = r2\n    vbox.g1 = g1\n    vbox.g2 = g2\n    vbox.b1 = b1\n    vbox.b2 = b2\n    vbox.histo = histo\n  }\n  VBox.prototype = {\n    volume: function (force) {\n      var vbox = this\n      if (!vbox._volume || force) {\n        vbox._volume = ((vbox.r2 - vbox.r1 + 1) * (vbox.g2 - vbox.g1 + 1) * (vbox.b2 - vbox.b1 + 1))\n      }\n      return vbox._volume\n    },\n    count: function (force) {\n      var vbox = this,\n        histo = vbox.histo,\n        index = 0\n      if (!vbox._count_set || force) {\n        var npix = 0,\n          i, j, k\n        for (i = vbox.r1; i <= vbox.r2; i++) {\n          for (j = vbox.g1; j <= vbox.g2; j++) {\n            for (k = vbox.b1; k <= vbox.b2; k++) {\n              index = getColorIndex(i, j, k)\n              npix += (histo[index] || 0)\n            }\n          }\n        }\n        vbox._count = npix\n        vbox._count_set = true\n      }\n      return vbox._count\n    },\n    copy: function () {\n      var vbox = this\n      return new VBox(vbox.r1, vbox.r2, vbox.g1, vbox.g2, vbox.b1, vbox.b2, vbox.histo)\n    },\n    avg: function (force) {\n      var vbox = this,\n        histo = vbox.histo\n      if (!vbox._avg || force) {\n        var ntot = 0,\n          mult = 1 << (8 - sigbits),\n          rsum = 0,\n          gsum = 0,\n          bsum = 0,\n          hval,\n          i, j, k, histoindex\n        for (i = vbox.r1; i <= vbox.r2; i++) {\n          for (j = vbox.g1; j <= vbox.g2; j++) {\n            for (k = vbox.b1; k <= vbox.b2; k++) {\n              histoindex = getColorIndex(i, j, k)\n              hval = histo[histoindex] || 0\n              ntot += hval\n              rsum += (hval * (i + 0.5) * mult)\n              gsum += (hval * (j + 0.5) * mult)\n              bsum += (hval * (k + 0.5) * mult)\n            }\n          }\n        }\n        if (ntot) {\n          vbox._avg = [~~(rsum / ntot), ~~(gsum / ntot), ~~(bsum / ntot)]\n        } else {\n          //                    console.log('empty box');\n          vbox._avg = [\n            ~~(mult * (vbox.r1 + vbox.r2 + 1) / 2),\n            ~~(mult * (vbox.g1 + vbox.g2 + 1) / 2),\n            ~~(mult * (vbox.b1 + vbox.b2 + 1) / 2)\n          ]\n        }\n      }\n      return vbox._avg\n    },\n    contains: function (pixel) {\n      var vbox = this,\n        rval = pixel[0] >> rshift\n      gval = pixel[1] >> rshift\n      bval = pixel[2] >> rshift\n      return (rval >= vbox.r1 && rval <= vbox.r2 &&\n                    gval >= vbox.g1 && gval <= vbox.g2 &&\n                    bval >= vbox.b1 && bval <= vbox.b2)\n    }\n  }\n\n  // Color map\n  function CMap () {\n    this.vboxes = new PQueue(function (a, b) {\n      return pv.naturalOrder(\n        a.vbox.count() * a.vbox.volume(),\n        b.vbox.count() * b.vbox.volume()\n      )\n    })\n  }\n  CMap.prototype = {\n    push: function (vbox) {\n      this.vboxes.push({\n        vbox: vbox,\n        color: vbox.avg()\n      })\n    },\n    palette: function () {\n      return this.vboxes.map(function (vb) { return vb.color })\n    },\n    size: function () {\n      return this.vboxes.size()\n    },\n    map: function (color) {\n      var vboxes = this.vboxes\n      for (var i = 0; i < vboxes.size(); i++) {\n        if (vboxes.peek(i).vbox.contains(color)) {\n          return vboxes.peek(i).color\n        }\n      }\n      return this.nearest(color)\n    },\n    nearest: function (color) {\n      var vboxes = this.vboxes,\n        d1, d2, pColor\n      for (var i = 0; i < vboxes.size(); i++) {\n        d2 = Math.sqrt(\n          Math.pow(color[0] - vboxes.peek(i).color[0], 2) +\n                    Math.pow(color[1] - vboxes.peek(i).color[1], 2) +\n                    Math.pow(color[2] - vboxes.peek(i).color[2], 2)\n        )\n        if (d2 < d1 || d1 === undefined) {\n          d1 = d2\n          pColor = vboxes.peek(i).color\n        }\n      }\n      return pColor\n    },\n    forcebw: function () {\n      // XXX: won't  work yet\n      var vboxes = this.vboxes\n      vboxes.sort(function (a, b) { return pv.naturalOrder(pv.sum(a.color), pv.sum(b.color)) })\n\n      // force darkest color to black if everything < 5\n      var lowest = vboxes[0].color\n      if (lowest[0] < 5 && lowest[1] < 5 && lowest[2] < 5) { vboxes[0].color = [0, 0, 0] }\n\n      // force lightest color to white if everything > 251\n      var idx = vboxes.length - 1,\n        highest = vboxes[idx].color\n      if (highest[0] > 251 && highest[1] > 251 && highest[2] > 251) { vboxes[idx].color = [255, 255, 255] }\n    }\n  }\n\n  // histo (1-d array, giving the number of pixels in\n  // each quantized region of color space), or null on error\n  function getHisto (pixels) {\n    var histosize = 1 << (3 * sigbits),\n      histo = new Array(histosize),\n      index, rval, gval, bval\n    pixels.forEach(function (pixel) {\n      rval = pixel[0] >> rshift\n      gval = pixel[1] >> rshift\n      bval = pixel[2] >> rshift\n      index = getColorIndex(rval, gval, bval)\n      histo[index] = (histo[index] || 0) + 1\n    })\n    return histo\n  }\n\n  function vboxFromPixels (pixels, histo) {\n    var rmin = 1000000, rmax = 0,\n      gmin = 1000000, gmax = 0,\n      bmin = 1000000, bmax = 0,\n      rval, gval, bval\n    // find min/max\n    pixels.forEach(function (pixel) {\n      rval = pixel[0] >> rshift\n      gval = pixel[1] >> rshift\n      bval = pixel[2] >> rshift\n      if (rval < rmin) rmin = rval\n      else if (rval > rmax) rmax = rval\n      if (gval < gmin) gmin = gval\n      else if (gval > gmax) gmax = gval\n      if (bval < bmin) bmin = bval\n      else if (bval > bmax) bmax = bval\n    })\n    return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, histo)\n  }\n\n  function medianCutApply (histo, vbox) {\n    if (!vbox.count()) return\n\n    var rw = vbox.r2 - vbox.r1 + 1,\n      gw = vbox.g2 - vbox.g1 + 1,\n      bw = vbox.b2 - vbox.b1 + 1,\n      maxw = pv.max([rw, gw, bw])\n    // only one pixel, no split\n    if (vbox.count() == 1) {\n      return [vbox.copy()]\n    }\n    /* Find the partial sum arrays along the selected axis. */\n    var total = 0,\n      partialsum = [],\n      lookaheadsum = [],\n      i, j, k, sum, index\n    if (maxw == rw) {\n      for (i = vbox.r1; i <= vbox.r2; i++) {\n        sum = 0\n        for (j = vbox.g1; j <= vbox.g2; j++) {\n          for (k = vbox.b1; k <= vbox.b2; k++) {\n            index = getColorIndex(i, j, k)\n            sum += (histo[index] || 0)\n          }\n        }\n        total += sum\n        partialsum[i] = total\n      }\n    } else if (maxw == gw) {\n      for (i = vbox.g1; i <= vbox.g2; i++) {\n        sum = 0\n        for (j = vbox.r1; j <= vbox.r2; j++) {\n          for (k = vbox.b1; k <= vbox.b2; k++) {\n            index = getColorIndex(j, i, k)\n            sum += (histo[index] || 0)\n          }\n        }\n        total += sum\n        partialsum[i] = total\n      }\n    } else { /* maxw == bw */\n      for (i = vbox.b1; i <= vbox.b2; i++) {\n        sum = 0\n        for (j = vbox.r1; j <= vbox.r2; j++) {\n          for (k = vbox.g1; k <= vbox.g2; k++) {\n            index = getColorIndex(j, k, i)\n            sum += (histo[index] || 0)\n          }\n        }\n        total += sum\n        partialsum[i] = total\n      }\n    }\n    partialsum.forEach(function (d, i) {\n      lookaheadsum[i] = total - d\n    })\n    function doCut (color) {\n      var dim1 = color + '1',\n        dim2 = color + '2',\n        left, right, vbox1, vbox2, d2, count2 = 0\n      for (i = vbox[dim1]; i <= vbox[dim2]; i++) {\n        if (partialsum[i] > total / 2) {\n          vbox1 = vbox.copy()\n          vbox2 = vbox.copy()\n          left = i - vbox[dim1]\n          right = vbox[dim2] - i\n          if (left <= right) { d2 = Math.min(vbox[dim2] - 1, ~~(i + right / 2)) } else d2 = Math.max(vbox[dim1], ~~(i - 1 - left / 2))\n          // avoid 0-count boxes\n          while (!partialsum[d2]) d2++\n          count2 = lookaheadsum[d2]\n          while (!count2 && partialsum[d2 - 1]) count2 = lookaheadsum[--d2]\n          // set dimensions\n          vbox1[dim2] = d2\n          vbox2[dim1] = vbox1[dim2] + 1\n          //                    console.log('vbox counts:', vbox.count(), vbox1.count(), vbox2.count());\n          return [vbox1, vbox2]\n        }\n      }\n    }\n    // determine the cut planes\n    return maxw == rw ? doCut('r')\n      : maxw == gw ? doCut('g')\n        : doCut('b')\n  }\n\n  function quantize (pixels, maxcolors) {\n    // short-circuit\n    if (!pixels.length || maxcolors < 2 || maxcolors > 256) {\n      //            console.log('wrong number of maxcolors');\n      return false\n    }\n\n    // XXX: check color content and convert to grayscale if insufficient\n\n    var histo = getHisto(pixels),\n      histosize = 1 << (3 * sigbits)\n\n    // check that we aren't below maxcolors already\n    var nColors = 0\n    histo.forEach(function () { nColors++ })\n    if (nColors <= maxcolors) {\n      // XXX: generate the new colors from the histo and return\n    }\n\n    // get the beginning vbox from the colors\n    var vbox = vboxFromPixels(pixels, histo),\n      pq = new PQueue(function (a, b) { return pv.naturalOrder(a.count(), b.count()) })\n    pq.push(vbox)\n\n    // inner function to do the iteration\n    function iter (lh, target) {\n      var ncolors = 1,\n        niters = 0,\n        vbox\n      while (niters < maxIterations) {\n        vbox = lh.pop()\n        if (!vbox.count()) { /* just put it back */\n          lh.push(vbox)\n          niters++\n          continue\n        }\n        // do the cut\n        var vboxes = medianCutApply(histo, vbox),\n          vbox1 = vboxes[0],\n          vbox2 = vboxes[1]\n\n        if (!vbox1) {\n          //                    console.log(\"vbox1 not defined; shouldn't happen!\");\n          return\n        }\n        lh.push(vbox1)\n        if (vbox2) { /* vbox2 can be null */\n          lh.push(vbox2)\n          ncolors++\n        }\n        if (ncolors >= target) return\n        if (niters++ > maxIterations) {\n          //                    console.log(\"infinite loop; perhaps too few pixels!\");\n          return\n        }\n      }\n    }\n\n    // first set of colors, sorted by population\n    iter(pq, fractByPopulations * maxcolors)\n\n    // Re-sort by the product of pixel occupancy times the size in color space.\n    var pq2 = new PQueue(function (a, b) {\n      return pv.naturalOrder(a.count() * a.volume(), b.count() * b.volume())\n    })\n    while (pq.size()) {\n      pq2.push(pq.pop())\n    }\n\n    // next set - generate the median cuts using the (npix * vol) sorting.\n    iter(pq2, maxcolors - pq2.size())\n\n    // calculate the actual colors\n    var cmap = new CMap()\n    while (pq2.size()) {\n      cmap.push(pq2.pop())\n    }\n\n    return cmap\n  }\n\n  return {\n    quantize: quantize\n  }\n})()\n\nexport default ColorThief\n"
  },
  {
    "path": "app/fg/lib/default-user-thumb.jpg.js",
    "content": "export default `data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAABIAAAAAQAAAEgAAAABUGl4ZWxtYXRvciAzLjgAADIwMTg6MTI6MTIgMTQ6MTI6MTIAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAPqgAwAEAAAAAQAAAPoAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjgiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTEyLTEyVDE0OjEyOjEyIi8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgA+gD6AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAgICAgICBAICBAYEBAQGCAYGBgYICggICAgICgwKCgoKCgoMDAwMDAwMDA4ODg4ODhAQEBAQEhISEhISEhISEv/bAEMBAwMDBQQFCAQECBMNCw0TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE//dAAQAEP/aAAwDAQACEQMRAD8A/YyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAClyaSigD//0P2MooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//R/YyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9jKKKKACiiigAooooAKKKKACiiigAooooAKKKjmnhtozNO6xoOrMcD8zQBKTmgVx11450C1JWNmmI/wCea8fmcCsn/hZFlux9lfb67hn8v/r0AejUVxFv8QNDlO2dZIfdlyP0JP6V1VlqFjqKebYzLKO+08j6jqKALtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/0/2MooooAKKKKACiiigAooooAKKKKAFzijFKSDXPeJdaTQ9ONwMGV/ljX1PqfYUAVfEfim10NPJiAluGHCdh7t/h3rxnUNV1DV5vOvpS57D+EfQdBVSaaa4ma4nYu7nLE9Sai6UAJRRRQAVNBcT2swmtnaN16MpwahooA9b8N+NxcsthrRCueFl6Bj6N6H36V6MRivl4816/4I8QvfRf2TeNmWIZRj1ZR2+o/l9KAPQaKKKACiiigAooooAKKKKACiiigAooooA//9T9jKKKKACiiigAooooAKKKKACiiigB3bNeE+M9SbUdaeNTmO3/AHa/UfeP5/yr3KSQRwtKeign8q+ZHkaV2lflnJJ+poAZRRRQAUUUUAFFFFABVuyvJbC8ivoPvRMGHv6j8RxVSigD6agnjuYEuYTlJFDA+xGanNcv4Nmafw5bl+qbl/Jjj9K6g0AJRRRQAUUUUAFFFFABRRRQAUUUUAf/1f2MooooAKKKKACiiigAooooAKKKKAIbtDLayxjqyMPzFfMor6h6GvnHWbJtP1W4syMBHOP908j9KAMyiiigAooooAKKKKACiiigD3LwMpHhyMnuzn9a66svQ7E6do9taMMMiDd/vHk/qa1TQAlFFFABRRRQAUUUUAFFFFABRRRQB//W/YyiiigAooooAKKKKACiiigAooooAcAOteY+P9GZ1TWrdclBslx6dj+HQ/hXpp9qZIkc0bQyAMrDBB6EGgD5horsvFPhWbRpTd2gL2rH6lPY+3oa42gAooooAKKKKAF74rrPB+itqmrLLIv7i3Idj2J/hH58/SsnRtGvtbuhBajCj77noo/x9BXvOl6Xa6RZLZ2gwq9SerHuT70AaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/X/YyiiigAooooAKKKKACiiigAooooAKKKKAGsqspRwCDwQelcFq3gGyumM+lt9nc/wnlP8R/niu/AzSkYoA8DvPCPiCzJzbmQDvGd36df0rJOlannH2WbP+43+FfSNKCaAPnq18N67dECK0kHu42j/wAexXZaX8PGyJdXlGP7kf8AVj/QfjXqVFAFa0s7Wwtxa2cYjjXoB/nk1bAFBIIpMGgBKKKKACiiigAooooAKKKKACiiigAooooA/9D9jKKKKACiiigAooooAKKKKAChysal3IVRySeAKqX17a6daveXjbI0GSf6D3NeH+IPE19rshBJjtwfljH829TQB6NqXjzSLJjHa5uHH93hf++j/QGuVn+Iups37i3iQf7WWP8AMV5+DQeaAO4/4WFrf9yH/vlv/iqP+Fha3/ch/wC+W/8Aiq4aigDuf+Fha3/ch/75b/4qj/hYWt/3If8Avlv/AIquGooA7n/hYWt/3If++W/+KpR8Qtc7pD/3y3/xVcLRQB3f/Cw9b/55Q/k3/wAVT1+Imrg/PBCfoGH9a4GigD1yx+IdjIQuoQtEf7y/Mv8AQ/zrvLW9tb6EXFlIsiHupzXzPnFaOm6rfaRci5sXKnuP4WHoRQB9IE5pKwtB1+216082L5JU4kTuD/UHsa3gM0AJRRRQAUUUUAFFFFABRRRQB//R/YyiiigAooooAKKKKAFzxil/hpMc4rM1q9OnaXcXi/ejQlf97oP1oA8l8a642pakbGFv3Fuccd37n8Og/wDr1xdLk9TyTSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAamj6rPo9+l9B0Bwy/wB5T1H+e9fREFxFdQJcwHckihlPsa+ZM4r2bwBfNcaO1q5yYHIH+63I/XNAHc0UUUAFFFFABRRRQAUUUUAf/9L9jKKKKACiiigAooooAcfvVyPjhivh2YDuyD/x4V1v8Vcf48OPD8nu6fzoA8OooooAKKKKACiiigAooooAKKKKACiiigAooooAK9L+HDHzrtO21D+przSvSfhz/wAfV1/ur/M0Aer0UUUAFFFFABRRRQAUUUUAf//T/YyiiigAooooAKKKKACuL8enHh8j/potdpXFeP8A/kA/9tV/rQB4pRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV6R8OP+Pq6/wBxf5mvN69J+HP/AB93X+4v8zQB6vRRRQAUUUUAFFFFABRRRQB//9T9jKKKKACiiigAooooAK4rx8CdB47Sr/Wu1rjfHn/Ivn/rotAHiNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXpHw4I+2XI/2F/nXm9ejfDn/kIXH+4P50AetUUUUAFFFFABRRRQAUUUUAf//V/YyiiigAooooAKKKKAHDpXF+PP8AkXz/ANdFrtB0ri/Hn/Ivn/rotAHiNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACjrXovw4/5CFx/1zH8686HWvRfhx/yELj/rmP50AetUUUUAFFFFABRRRQAUUUUAf//W/YyilPWkoAKKKKACiiigBw6Vxfjz/kXz/wBdFrtB0ri/Hn/Ivn/rotAHiNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACjrXovw4/5CFx/1zH8686HWvRfhx/yELj/AK5j+dAHrVFFFABRRRQAUUUUAFFFSUAf/9k=`"
  },
  {
    "path": "app/fg/lib/drag-drop.js",
    "content": "export default function dragDrop (elem, listeners) {\n  if (typeof elem === 'string') {\n    elem = window.document.querySelector(elem)\n  }\n\n  if (typeof listeners === 'function') {\n    listeners = { onDrop: listeners }\n  }\n\n  var timeout\n\n  elem.addEventListener('dragenter', stopEvent, false)\n  elem.addEventListener('dragover', onDragOver, false)\n  elem.addEventListener('dragleave', onDragLeave, false)\n  elem.addEventListener('drop', onDrop, false)\n\n  // Function to remove drag-drop listeners\n  return function remove () {\n    removeDragClass()\n    elem.removeEventListener('dragenter', stopEvent, false)\n    elem.removeEventListener('dragover', onDragOver, false)\n    elem.removeEventListener('dragleave', onDragLeave, false)\n    elem.removeEventListener('drop', onDrop, false)\n  }\n\n  function onDragOver (e) {\n    e.stopPropagation()\n    e.preventDefault()\n    if (e.dataTransfer.items) {\n      // Only add \"drag\" class when `items` contains items that are able to be\n      // handled by the registered listeners (files vs. text)\n      var items = Array.from(e.dataTransfer.items)\n      var fileItems = items.filter(function (item) { return item.kind === 'file' })\n      var textItems = items.filter(function (item) { return item.kind === 'string' })\n\n      if (fileItems.length === 0 && !listeners.onDropText) return\n      if (textItems.length === 0 && !listeners.onDrop) return\n      if (fileItems.length === 0 && textItems.length === 0) return\n    }\n\n    elem.classList.add('drag')\n    clearTimeout(timeout)\n\n    if (listeners.onDragOver) {\n      listeners.onDragOver(e)\n    }\n\n    e.dataTransfer.dropEffect = 'copy'\n    return false\n  }\n\n  function onDragLeave (e) {\n    e.stopPropagation()\n    e.preventDefault()\n\n    if (listeners.onDragLeave) {\n      listeners.onDragLeave(e)\n    }\n\n    clearTimeout(timeout)\n    timeout = setTimeout(removeDragClass, 50)\n\n    return false\n  }\n\n  function onDrop (e) {\n    e.stopPropagation()\n    e.preventDefault()\n\n    if (listeners.onDragLeave) {\n      listeners.onDragLeave(e)\n    }\n\n    clearTimeout(timeout)\n    removeDragClass()\n\n    var pos = {\n      x: e.clientX,\n      y: e.clientY\n    }\n\n    // text drop support\n    var text = e.dataTransfer.getData('text')\n    if (text && listeners.onDropText) {\n      listeners.onDropText(text, pos)\n    }\n\n    // file drop support\n    var files = Array.from(e.dataTransfer.files)\n    if (files.length === 0) return\n    files.forEach(function (file) {\n      file.fullPath = '/' + file.name\n    })\n    if (listeners.onDrop) {\n      listeners.onDrop(files, pos)\n    }\n\n    return false\n  }\n\n  function removeDragClass () {\n    elem.classList.remove('drag')\n  }\n}\n\nfunction stopEvent (e) {\n  e.stopPropagation()\n  e.preventDefault()\n  return false\n}\n"
  },
  {
    "path": "app/fg/lib/event-handlers.js",
    "content": "/* globals Event beaker */\n\nexport function pushUrl (e) {\n  // ignore ctrl/cmd+click\n  if (e.metaKey) { return }\n\n  var el = findParent(e.target, el => el.tagName === 'A')\n  var url = el.getAttribute('href') || el.dataset.href\n\n  if (url) {\n    e.preventDefault()\n    e.stopPropagation()\n    window.history.pushState(null, '', url)\n  }\n}\n\nexport function findParent (node, test) {\n  if (typeof test === 'string') {\n    // classname default\n    var cls = test\n    test = el => el.classList && el.classList.contains(cls)\n  }\n\n  while (node) {\n    if (test(node)) {\n      return node\n    }\n    node = node.parentNode\n  }\n}\n\nexport function writeToClipboard (str) {\n  var textarea = document.createElement('textarea')\n  textarea.textContent = str\n  document.body.appendChild(textarea)\n  textarea.select()\n  document.execCommand('copy')\n  document.body.removeChild(textarea)\n}\n\nexport function polyfillHistoryEvents () {\n  // HACK FIX\n  // the good folk of whatwg didnt think to include an event for pushState(), so let's add one\n  // -prf\n  var _wr = function (type) {\n    var orig = window.history[type]\n    return function () {\n      var rv = orig.apply(this, arguments)\n      var e = new Event(type.toLowerCase())\n      e.arguments = arguments\n      window.dispatchEvent(e)\n      return rv\n    }\n  }\n  window.history.pushState = _wr('pushState')\n  window.history.replaceState = _wr('replaceState')\n}\n\nexport function adjustWindowHeight (sel) {\n  var el = sel ? document.querySelector(sel) : document.body\n  var height = el.getClientRects()[0].height\n  if (window.process.platform !== 'darwin') {\n    // windows and linux need added height for their title bars\n    height += 39\n  }\n  beaker.browser.setWindowDimensions({height})\n}\n\nexport function emit (name, detail = null) {\n  document.dispatchEvent(new CustomEvent(name, {detail, bubbles: true, composed: true}))\n}"
  },
  {
    "path": "app/fg/lib/img.js",
    "content": "/* globals Image */\n\nimport ColorThief from './color-thief'\n\nconst colorThief = new ColorThief()\n\n// convert and resize an image url to a data url\nexport function urlToData (url, width, height, cb) {\n  var img = new Image()\n  img.onload = e => cb(null, {\n    url: imgToData(img, width, height),\n    dominantColor: colorThief.getColor(img, 10)\n  })\n  img.onerror = cb\n  img.src = url\n}\n\n// like urlToData, but loads all images and takes the one that fits the target dimensions best\nexport async function urlsToData (urls) {\n  if (!urls || !urls.length) return false\n\n  // load all images\n  var imgs = await Promise.all(urls.map(url => {\n    return new Promise(resolve => {\n      var img = new Image()\n      img.crossOrigin = 'Anonymous'\n      img.onload = e => resolve(img)\n      img.onerror = () => resolve(false)\n      img.src = url\n    })\n  }))\n\n  // filter out failures and abort if none loaded\n  imgs = imgs.filter(Boolean)\n  if (!imgs.length) {\n    return false\n  }\n\n  // choose the image with the closest dimensions to our target\n  var bestImg = imgs[0]\n  for (var i = 1; i < imgs.length; i++) {\n    if (imgs[i].width > bestImg.width && imgs[i].height > bestImg.height) {\n      bestImg = imgs[i]\n    }\n  }\n  return {\n    url: bestImg.src,\n    dataUrl: imgToData(bestImg, bestImg.width, bestImg.height)\n  }\n}\n\n// convert and resize an <img> to a data url\nexport function imgToData (img, width, height) {\n  var ratio = img.width / img.height\n  if (width / height > ratio) { height = width / ratio } else { width = height * ratio }\n\n  var canvas = document.createElement('canvas')\n  canvas.width = width\n  canvas.height = height\n  var ctx = canvas.getContext('2d')\n  ctx.drawImage(img, 0, 0, width, height)\n  return canvas.toDataURL('image/png')\n}\n"
  },
  {
    "path": "app/fg/lib/location.js",
    "content": "import { examineLocationInput } from '../../lib/urls'\nimport { joinPath } from '../../lib/strings'\nimport _uniqWith from 'lodash.uniqwith'\n\n/**\n * Used by ../shell-window/navbar/location.js\n * Mainly put here to keep that file from growing too large\n * \n * @param {Object} bg \n * @param {Object} ctx \n * @param {Function} onResults \n */\nexport async function queryAutocomplete (bg, ctx, onResults) {\n  var queryId = ++ctx.queryIdCounter\n  var finalResults\n  \n  var searchEngines = await ctx.searchEnginesPromise\n  var searchEngine = searchEngines.find(se => se.selected) || searchEngines[0]\n  var {vWithProtocol, vSearch, isProbablyUrl, isGuessingTheScheme} = examineLocationInput(ctx.inputValue || '/')\n\n  // optimistically set the input-based results to ensure responsiveness\n  {\n    if (ctx.results) ctx.results = ctx.results.filter(r => !r.search && !r.isGoto)\n    ctx.results = ctx.results || []\n    let gotoResult = { url: vWithProtocol, title: 'Go to ' + (ctx.inputValue || '/'), isGuessingTheScheme, isGoto: true }\n    let searchResult = {\n      search: ctx.inputValue,\n      title: `Search ${searchEngine.name} for \"${ctx.inputValue}\"`,\n      url: searchEngine.url + vSearch\n    }\n    if (ctx.inputValue.includes(' ')) ctx.results.unshift(searchResult)\n    else if (isProbablyUrl) ctx.results = [gotoResult, searchResult].concat(ctx.results)\n    else ctx.results = [searchResult, gotoResult].concat(ctx.results)\n    onResults(true)\n  }\n  \n  var [historyResults, bookmarks] = await Promise.all([\n    ctx.inputValue ? bg.history.search(ctx.inputValue) : [],\n    ctx.bookmarksFetch\n  ])\n\n  // abort if changes to the input have occurred since triggering these queries\n  if (queryId !== ctx.queryIdCounter) return\n\n  // decorate results with bolded regions\n  var searchTerms = ctx.inputValue.replace(/[:^*-./]/g, ' ').split(' ').filter(Boolean)\n  var searchTermsRe = new RegExp(`(${searchTerms.join('|')})`, 'gi')\n  historyResults.forEach(r => highlightHistoryResult(searchTerms, r))\n\n  if (ctx.inputValue) {\n    finalResults = _uniqWith(historyResults, (a, b) => normalizeURL(a.url) === normalizeURL(b.url)) // remove duplicates\n    finalResults = finalResults.slice(0, 10) // apply limit\n  } else {\n    finalResults = bookmarks\n  }\n\n  // see if we have any URL guesses\n  // we only do this if the input changed, in case the user deleted our suggested guess\n  ctx.urlGuess = undefined\n  if (ctx.lastInputValue !== ctx.inputValue) {\n    for (let res of finalResults) {\n      let start = 0\n      if (!ctx.inputValue.includes('://')) {\n        start = res.url.indexOf('://') + 3 // skip the scheme\n      }\n      if (!ctx.inputValue.includes('www.') && res.url.slice(start).startsWith('www.')) {\n        start += 4 // skip the www.\n      }\n      let index = res.url.indexOf(ctx.inputValue, start)\n      if (index === start) {\n        // match, guess up to the next path segment\n        let nextSlashIndex = res.url.indexOf('/', start + ctx.inputValue.length)\n        ctx.urlGuess = {\n          input: res.url.slice(start, nextSlashIndex === -1 ? undefined : nextSlashIndex),\n          url: nextSlashIndex === -1 ? res.url : res.url.slice(0, nextSlashIndex)\n        }\n        break\n      }\n    }\n  }\n\n  // set the top results accordingly\n  var gotoResult\n  var searchResult = {\n    search: ctx.inputValue,\n    title: `Search ${searchEngine.name} for \"${ctx.inputValue}\"`,\n    url: searchEngine.url + vSearch\n  }\n  if (ctx.urlGuess) {\n    gotoResult = { url: ctx.urlGuess.url, title: 'Go to ' + (ctx.urlGuess.input), isGuessingTheScheme: false, isGoto: true }\n    isProbablyUrl = true\n  } else {\n    gotoResult = { url: vWithProtocol, title: 'Go to ' + (ctx.inputValue || '/'), isGuessingTheScheme, isGoto: true }\n  }\n  if (ctx.inputValue.includes(' ')) finalResults = [searchResult].concat(finalResults)\n  else if (isProbablyUrl) finalResults = [gotoResult, searchResult].concat(finalResults)\n  else finalResults = [searchResult, gotoResult].concat(finalResults)\n\n  // render\n  ctx.results = finalResults\n  ctx.lastInputValue = ctx.inputValue\n  onResults()\n}\n\n\n// helper for history search results\n// - takes in the current search (tokenized) and a result object\n// - mutates `result` so that matching text is bold\nvar offsetsRegex = /([\\d]+ [\\d]+ [\\d]+ [\\d]+)/g\nfunction highlightHistoryResult (searchTerms, result) {\n  // extract offsets\n  var tuples = (result.offsets || '').match(offsetsRegex)\n  if (!tuples) { return }\n\n  // iterate all match tuples, and break the values into segments\n  let lastTuple\n  let segments = { url: [], title: [] }\n  let lastOffset = { url: 0, title: 0 }\n  for (let tuple of tuples) {\n    tuple = tuple.split(' ').map(i => +i) // the map() coerces to the proper type\n    let [ columnIndex, termIndex, offset ] = tuple\n    let columnName = ['url', 'title'][columnIndex]\n\n    // sometimes multiple terms can hit at the same point\n    // that breaks the algorithm, so skip that condition\n    if (lastTuple && lastTuple[0] === columnIndex && lastTuple[2] === offset) continue\n    lastTuple = tuple\n\n    // use the length of the search term\n    // (sqlite FTS gives the length of the full matching token, which isnt as helpful)\n    let searchTerm = searchTerms[termIndex]\n    if (!searchTerm) continue\n    let len = searchTerm.length\n\n    // extract segments\n    segments[columnName].push(result[columnName].slice(lastOffset[columnName], offset))\n    segments[columnName].push(result[columnName].slice(offset, offset + len))\n    lastOffset[columnName] = offset + len\n  }\n\n  // add the remaining text\n  segments.url.push(result.url.slice(lastOffset.url))\n  segments.title.push(result.title.slice(lastOffset.title))\n\n\n  result.urlDecorated = segments.url\n  result.titleDecorated = segments.title\n}\n\nconst TRAILING_SLASH_REGEX = /(\\/$)/\nfunction normalizeURL (str = '') {\n  return str.replace(TRAILING_SLASH_REGEX, '')\n}"
  },
  {
    "path": "app/fg/lib/progress-pie-svg.js",
    "content": "// from https://www.smashingmagazine.com/2015/07/designing-simple-pie-charts-with-css/\n// thanks Lea Verou!\n\nexport default function progressPie (p, {color1, color2, size} = {}) {\n  // default params\n  color1 = color1 || '#655'\n  color2 = color2 || 'yellowgreen'\n  size = size || '15px'\n\n  // create pie svg\n  var NS = 'http://www.w3.org/2000/svg'\n  var svg = document.createElementNS(NS, 'svg')\n  var circle = document.createElementNS(NS, 'circle')\n  var title = document.createElementNS(NS, 'title')\n  circle.setAttribute('r', 16)\n  circle.setAttribute('cx', 16)\n  circle.setAttribute('cy', 16)\n  circle.setAttribute('stroke-dasharray', p + ' 100')\n  circle.style.fill = color1\n  circle.style.stroke = color2\n  circle.style.strokeWidth = 32\n  svg.setAttribute('viewBox', '0 0 32 32')\n  svg.style.width = size\n  svg.style.height = size\n  svg.style.background = color1\n  svg.style.transform = 'rotate(-90deg)'\n  svg.style.borderRadius = '50%'\n  title.textContent = p + '%'\n  svg.appendChild(title)\n  svg.appendChild(circle)\n  return svg\n}\n"
  },
  {
    "path": "app/fg/lib/svg.js",
    "content": "/* globals DOMParser */\n\nexport function render (str) {\n  var parser = new DOMParser()\n  var doc = parser.parseFromString(str, 'image/svg+xml')\n  return doc.children[0]\n}\n\nexport function create (ref, opts = {}) {\n  var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n  for (var k in opts) {\n    if (k === 'cls') {\n      opts[k].split(' ').forEach(v => {\n        svg.classList.add(v)\n      })\n    } else {\n      svg.setAttribute(k, opts[k])\n    }\n  }\n  svg.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink')\n  var use = document.createElementNS('http://www.w3.org/2000/svg', 'use')\n  use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', ref)\n  svg.append(use)\n  return svg\n}"
  },
  {
    "path": "app/fg/location-bar/index.html",
    "content": "<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n    <style>\n    body {\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      margin: 0;\n      background: transparent;\n      border-bottom-left-radius: 12px;\n      border-bottom-right-radius: 12px;\n      border: 1px solid #1d59c7;\n      border-top: 0;\n      font-size: 12px;\n      color: rgba(0, 0, 0, 0.8);\n      overflow: hidden;\n      margin: 0 10px 10px;\n      \n      --bg-color--default: #fff;\n      --bg-color--result--hover: #f0f0f0;\n      --bg-color--result--selected: #105de8;\n      --bg-color--search-engine--hover: #f0f0f8;\n      --text-color--default: #333;\n      --text-color--result-icon: #707070;\n      --text-color--result-title: #222;\n      --text-color--result-provenance: #1f55c1;\n      --text-color--result-origin: #888;\n    }\n\n    @media (prefers-color-scheme: dark) {\n      body {\n      --bg-color--default: #222;\n      --bg-color--result--hover: #333;\n      --bg-color--result--selected: #105de8;\n      --bg-color--search-engine--hover: #333;\n      --text-color--default: #ddd;\n      --text-color--result-icon: #707070;\n      --text-color--result-title: #eee;\n      --text-color--result-provenance: #3f85f1;\n      --text-color--result-origin: #888;\n      }\n    }\n    </style>\n  </head>\n  <body>\n    <location-bar></location-bar> <!-- this tag will be defined in the preload script -->\n  </body>\n</html>"
  },
  {
    "path": "app/fg/location-bar/index.js",
    "content": "/* globals customElements */\nimport * as rpc from 'pauls-electron-rpc'\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport { classMap } from '../vendor/lit-element/lit-html/directives/class-map'\nimport { unsafeHTML } from '../vendor/lit-element/lit-html/directives/unsafe-html'\nimport { makeSafe } from '../../lib/strings'\nimport browserManifest from '../../bg/web-apis/manifests/internal/browser'\nimport historyManifest from '../../bg/web-apis/manifests/internal/history'\nimport locationBarManifest from '../../bg/rpc-manifests/location-bar'\nconst bg = {\n  beakerBrowser: rpc.importAPI('beaker-browser', browserManifest),\n  history: rpc.importAPI('history', historyManifest),\n  locationBar: rpc.importAPI('background-process-location-bar', locationBarManifest)\n}\n\nclass LocationBar extends LitElement {\n  static get properties () {\n    return {\n      results: {type: Array},\n      currentSelection: {type: Number},\n      hoveredSearch: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.reset()\n    this.fetchBrowserInfo()\n\n    // disallow right click\n    window.addEventListener('contextmenu', e => e.preventDefault())\n\n    // export interface\n    window.setup = () => { document.body.style.opacity = 1; this.reset() }\n    window.command = (command, opts) => this.onCommand(command, opts)\n    window.invisibilityCloak = () => { document.body.style.opacity = 0 }\n    // ^ this insane thing is how we give click events time to be handled in the UI\n    // without it, the location input's blur event will remove our browserview too quickly\n  }\n\n  async fetchBrowserInfo () {\n    // TODO - needed?\n    var {platform} = await bg.beakerBrowser.getInfo()\n    window.platform = platform\n    if (platform === 'darwin') {\n      document.body.classList.add('darwin')\n    }\n    if (platform === 'win32') {\n      document.body.classList.add('win32')\n    }\n  }\n\n  reset () {\n    this.currentTabLocation = undefined\n    this.query = ''\n    this.results = []\n    this.currentSelection = 0\n    this.hoveredSearch = ''\n  }\n\n  selectResult (result) {\n    if (!result) bg.locationBar.reload()\n    else bg.locationBar.loadURL(result.url)\n    bg.locationBar.close()\n  }\n\n  render () {\n    const searchLink = (label, url) => {\n      return html`\n        <a\n          title=${label}\n          data-href=${url}\n          @mouseenter=${this.onMouseenterSearch}\n          @mouseleave=${this.onMouseleaveSearch}\n          @click=${this.onClickSearch}\n        >\n          <img src=\"beaker://assets/search-engines/${label.toLowerCase()}.png\">\n        </a>\n      `\n    }\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"autocomplete-results\">\n          ${repeat(this.results, (r, i) => this.renderAutocompleteResult(r, i))}\n        </div>\n        <div class=\"search-engines\">\n          <div class=\"label\">\n            ${this.hoveredSearch\n              ? html`Search <strong>${this.hoveredSearch}</strong>`\n              : html`Search for <strong>${this.query}</strong> with:`\n            }\n          </div>\n          <div class=\"list\">\n            ${searchLink('Beaker', `beaker://desktop/?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('Twitter', `https://twitter.com/search?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('Reddit', `https://reddit.com/search?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('GitHub', `https://github.com/search?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('DuckDuckGo', `https://duckduckgo.com?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('Google', `https://google.com/search?q=${encodeURIComponent(this.query)}`)}\n            ${searchLink('YouTube', `https://www.youtube.com/results?search_query=${encodeURIComponent(this.query)}`)}\n            ${searchLink('Wikipedia', `https://en.wikipedia.org/w/index.php?search=${encodeURIComponent(this.query)}`)}\n            ${''/* TODO restore at some point esearchLink('Beaker', `beaker://search/?q=${encodeURIComponent(this.query)}`) */}\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  renderAutocompleteResult (r, i) {\n    // selection\n    var rowCls = classMap({\n      result: true,\n      selected: i === this.currentSelection\n    })\n\n    // result row\n    return html`\n      <div class=${rowCls} data-result-index=${i} @click=${this.onClickResult}>\n        ${this.renderResult(r)}\n      </div>\n    `\n  }\n\n  renderResult (r) {\n    if (r.search) {\n      return html`\n        <div class=\"icon\"><i class=\"fa fa-search\"></i></div>\n        <div class=\"title\">${r.search} - ${r.title}</div>\n      `\n    }\n    if (r.isGoto) {\n      return html`\n        <div class=\"icon\"><i class=\"fas fa-arrow-right\"></i></div>\n        <div class=\"title\">${r.title}</div>\n      `\n    }\n    if (r.isBookmark) {\n      return html`\n        <div class=\"icon\"><i class=\"fas fa-star\"></i></div>\n        <div class=\"title\">${r.titleDecorated ? unsafeHTML(joinSegments(r.titleDecorated)) : r.title}</div>\n        <div class=\"spacer\">&mdash;</div>\n        <div class=\"provenance\">${toNiceUrl(r.urlDecorated ? unsafeHTML(joinSegments(r.urlDecorated)) : r.url)}</div>\n      `\n    }\n    return html`\n      <div class=\"icon\"><img src=${'asset:favicon-32:' + r.url}></div>\n      <div class=\"title\">${r.titleDecorated ? unsafeHTML(joinSegments(r.titleDecorated)) : r.title}</div>\n      <div class=\"spacer\">&mdash;</div>\n      <div class=\"provenance\">\n        ${toNiceUrl(r.urlDecorated ? unsafeHTML(joinSegments(r.urlDecorated)) : r.url)}\n      </div>\n      ${r.origin ? html`\n        <div class=\"origin\">\n          <span class=\"fa-fw ${r.origin.icon}\"></span> ${r.origin.label}\n        </div>\n      ` : ''}\n    `\n  }\n\n  // events\n  // =\n\n  onCommand (cmd, opts) {\n    switch (cmd) {\n      case 'show':\n      case 'set-results':\n        this.query = opts.query || ''\n        this.currentSelection = this.query ? 0 : -1\n        this.results = opts.results\n        this.updateComplete.then(() => this.resize())\n        break\n      case 'hide':\n        bg.locationBar.close()\n        break\n      case 'choose-selection':\n        this.selectResult(this.results[this.currentSelection])\n        break\n      case 'move-selection':\n        {\n          if (opts.up && this.currentSelection > 0) { this.currentSelection = this.currentSelection - 1 }\n          if (opts.down && this.currentSelection < this.results.length - 1) { this.currentSelection = this.currentSelection + 1 }\n          let res = this.results[this.currentSelection]\n          return res.search || res.url\n        }\n    }\n  }\n\n  onClickResult (e) {\n    this.selectResult(this.results[e.currentTarget.dataset.resultIndex])\n  }\n\n  resize () {\n    // adjust height based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.locationBar.resizeSelf({height})\n  }\n\n  onMouseenterSearch (e) {\n    this.hoveredSearch = e.currentTarget.getAttribute('title')\n  }\n\n  onMouseleaveSearch () {\n    this.hoveredSearch = ''\n  }\n\n  onClickSearch (e) {\n    e.preventDefault()\n    bg.locationBar.loadURL(e.currentTarget.dataset.href)\n    bg.locationBar.close()\n  }\n}\nLocationBar.styles = [css`\n.wrapper {\n  background: var(--bg-color--default);\n  border-bottom-left-radius: 12px;\n  border-bottom-right-radius: 12px;\n  color: var(--text-color--default);\n}\n\n.autocomplete-results {\n  max-height: 482px;\n  overflow-y: auto;\n  cursor: default;\n  padding-top: 2px;\n}\n\n.result {\n  display: flex;\n  align-items: center;\n  line-height: 20px;\n  overflow: hidden;\n  margin: 2px 4px;\n  width: calc(100vw - 54px);\n  border-radius: 4px;\n  padding: 5px 12px;\n}\n\n.result .icon {\n  flex: 0 0 28px;\n}\n\n.result .icon img {\n  width: 16px;\n  height: 16px;\n}\n\n.result .icon .fa,\n.result .icon .fas,\n.result .icon .far {\n  font-size: 13px;\n  color: var(--text-color--result-icon);\n}\n\n.result .icon .fa-arrow-right {\n  margin-left: 1px;\n}\n\n.result .title,\n.result .provenance,\n.result .spacer,\n.origin {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  max-width: 100%;\n}\n\n.result .title {\n  color: var(--text-color--result-title);\n  font-size: 14px;\n  letter-spacing: 0.2px;\n}\n\n.result .spacer {\n  margin: 0 5px;\n}\n\n.result .provenance {\n  color: var(--text-color--result-provenance);\n  font-size: 12px;\n}\n\n.result .origin {\n  margin-left: 6px;\n  color: var(--text-color--result-origin);\n}\n\n.result:hover {\n  background: var(--bg-color--result--hover);\n}\n\n.result.selected {\n  background: var(--bg-color--result--selected);\n  color: #fff;\n}\n\n.result.selected .icon *,\n.result.selected .title,\n.result.selected .provenance,\n.result.selected .origin {\n  color: #fff;\n}\n\n.search-engines {\n  border-bottom-left-radius: 16px;\n  border-bottom-right-radius: 16px;\n}\n\n.search-engines .label {\n  padding: 4px 18px;\n  font-size: 11px;\n}\n\n.search-engines .list {\n  display: flex;\n  align-items: center;\n  padding-bottom: 4px;\n}\n\n.search-engines .list a {\n  border-radius: 50%;\n  flex: 0 0 42px;\n  text-align: center;\n  padding: 8px 0;\n  margin-left: 12px;\n  cursor: pointer;\n}\n\n.search-engines .list a:hover {\n  background: var(--bg-color--search-engine--hover);\n}\n\n.search-engines .list a img {\n  width: 24px;\n  height: 24px;\n  image-rendering: -webkit-optimize-contrast;\n}\n`]\n\ncustomElements.define('location-bar', LocationBar)\n\n// internal methods\n// =\n\nconst DRIVE_KEY_REGEX = /([0-9a-f]{64})/ig\nfunction toNiceUrl (str) {\n  if (typeof str !== 'string') return str\n  return str.replace(DRIVE_KEY_REGEX, (_, m) => `${m.slice(0, 6)}..${m.slice(-2)}`)\n}\n\n// helper for highlightHistoryResult()\n// - takes an array of string segments (extracted from the result columns)\n// - outputs a single escaped string with every other element wrapped in <strong>\nfunction joinSegments (segments) {\n  var str = ''\n  var isBold = false\n  for (var segment of segments) {\n    // escape for safety\n    segment = makeSafe(segment)\n\n    // decorate with the strong tag\n    if (isBold) str += '<strong>' + segment + '</strong>'\n    else str += segment\n    isBold = !isBold\n  }\n  return toNiceUrl(str)\n}\n"
  },
  {
    "path": "app/fg/modals/add-drive.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\nimport spinnerCSS from './spinner.css'\nimport './img-fallbacks.js'\n\nclass AddDriveModal extends LitElement {\n  static get properties () {\n    return {\n      info: {type: Object},\n      error: {type: String}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, spinnerCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n    h1.title {\n      font-size: 17px;\n      padding: 14px 20px;\n      border-color: #f0f0f7;\n      margin: 0;\n    }\n    form {\n      padding: 0;\n      margin: 0;\n    }\n    .loading {\n      display: flex;\n      align-items: center;\n      padding: 20px;\n      font-size: 15px;\n      border-bottom: 1px solid #f0f0f7;\n    }\n    .loading .spinner {\n      margin-right: 10px;\n    }\n    .error {\n      padding: 20px;\n      margin: 0;\n      font-size: 15px;\n      color: #555;\n      border-bottom: 1px solid #f0f0f7;\n    }\n    .drive {\n      display: flex;\n      align-items: center;\n      height: 108px;\n      padding: 10px 20px;\n      border-bottom: 1px solid #f0f0f7;\n      box-sizing: border-box;\n    }\n    .drive img {\n      border-radius: 4px;\n      object-fit: cover;\n      width: 80px;\n      height: 80px;\n      margin-right: 16px;\n      box-sizing: border-box;\n    }\n    .drive .title {\n      font-size: 23px;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n    .drive .description {\n      font-size: 17px;\n    }\n    .drive .info {\n      flex: 1;\n    }\n    .tags {\n      margin: 10px 18px 0;\n    }\n    .form-actions {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0 20px 14px;\n      text-align: left;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = undefined\n    this.tags = ''\n    this.info = undefined\n    this.error = undefined\n  }\n\n  init (params, cbs) {\n    this.url = params.url\n    this.tags = params.tags || ''\n    this.cbs = cbs\n    this.info = undefined\n    this.error = undefined\n    this.requestUpdate()\n    this.tryFetch()\n  }\n\n  async tryFetch () {\n    try {\n      this.error = undefined\n      var info = await bg.hyperdrive.getInfo(this.url)\n      if (info.version === 0) {\n        this.error = 'Unable to find this site on the network'\n      } else {\n        this.info = info\n        this.tags = Array.from(new Set(info.tags.concat(this.tags.split(' ')))).join(' ')\n      }\n    } catch (e) {\n      this.cbs.reject(e.message)\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">Add Hyperdrive to My Library</h1>\n        <form @submit=${this.onSubmit}>\n          ${this.error ? html`\n            <div class=\"error\">\n              <span class=\"fas fa-fw fa-exclamation-circle\"></span> ${this.error}\n            </div>\n          ` : this.info ? html`\n            <div class=\"drive\">\n              <beaker-img-fallbacks>\n                <img src=\"${this.info.url}/thumb\" slot=\"img1\">\n                <img src=\"beaker://assets/default-thumb\" slot=\"img2\">\n              </beaker-img-fallbacks>\n              <div class=\"info\">\n                <div class=\"title\"><span>${this.info.title}</span></div>\n                <div class=\"description\"><span>${this.info.description}</span></div>\n              </div>\n            </div>\n          ` : html`\n            <div class=\"loading\">\n              <span class=\"spinner\"></span> Loading drive info...\n            </div>\n          `}\n          ${this.info ? html`\n            <div class=\"tags\">\n              <label for=\"tags-input\">Tags</label>\n              <input id=\"tags-input\" @change=${this.onChangeTags} value=${this.tags || ''} placeholder=\"Tags (optional, separated by spaces)\">\n            </div>\n          ` : ''}\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n            ${this.error ? html`\n              <button type=\"submit\" class=\"btn primary\" tabindex=\"5\">Try Again</button>\n            ` : html`\n              <button type=\"submit\" class=\"btn primary\" tabindex=\"5\" ?disabled=${!this.info}>OK</button>\n            `}\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  updated () {\n    // adjust size based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  onChangeTags (e) {\n    this.tags = e.currentTarget.value\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n    if (this.info) {\n      this.cbs.resolve({key: this.info.key, tags: this.tags.split(' ')})\n    } else {\n      this.tryFetch()\n    }\n  }\n}\n\ncustomElements.define('add-drive-modal', AddDriveModal) "
  },
  {
    "path": "app/fg/modals/basic-auth.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\n\nclass BasicAuthModal extends LitElement {\n  constructor () {\n    super()\n    this.cbs = null\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.authInfo = params\n    await this.requestUpdate()\n\n    // adjust height based on rendering\n    var width = this.shadowRoot.querySelector('div').clientWidth|0\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({width, height})\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.authInfo) return html`<div class=\"wrapper\"></div>`\n    return html`\n      <div class=\"wrapper\">\n        <h1 class=\"title\">Login required</h1>\n\n        <p class=\"help-text\">\n          ${this.authInfo.host} requires a username and password\n        </p>\n\n        <form @submit=${this.onSubmit}>\n          <label for=\"username\">Username</label>\n          <input name=\"username\" tabindex=\"2\" value=\"${this.username || ''}\" placeholder=\"Username\" @change=${this.onChangeUsername} autofocus />\n\n          <label for=\"password\">Password</label>\n          <input name=\"password\" type=\"password\" tabindex=\"3\" value=\"${this.password || ''}\"  placeholder=\"Password\" @change=${this.onChangePassword} />\n\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"btn\" tabindex=\"4\">Cancel</button>\n            <button type=\"submit\" class=\"btn primary\" tabindex=\"5\">Log In</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\nonChangeUsername (e) {\n  this.username = e.target.value\n}\n\nonChangePassword (e) {\n  this.password = e.target.value\n}\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.resolve({username: false, password: false})\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n    this.cbs.resolve({username: this.username, password: this.password})\n  }\n}\nBasicAuthModal.styles = [commonCSS, inputsCSS, buttonsCSS, css`\n.wrapper {\n  padding: 5px 15px;\n}\n`]\n\ncustomElements.define('basic-auth-modal', BasicAuthModal)"
  },
  {
    "path": "app/fg/modals/bg-process-rpc.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport browserManifest from '../../bg/web-apis/manifests/internal/browser'\nimport contactsManifest from '../../bg/web-apis/manifests/external/contacts'\nimport drivesManifest from '../../bg/web-apis/manifests/internal/drives'\nimport folderSyncManifest from '../../bg/web-apis/manifests/internal/folder-sync'\nimport hyperdriveManifest from '../../bg/web-apis/manifests/external/hyperdrive'\nimport modalsManifest from '../../bg/rpc-manifests/modals'\nimport beakerFsManifest from '../../bg/web-apis/manifests/internal/beaker-filesystem'\n\nexport const beakerBrowser = rpc.importAPI('beaker-browser', browserManifest)\nexport const contacts = rpc.importAPI('contacts', contactsManifest)\nexport const drives = rpc.importAPI('drives', drivesManifest)\nexport const folderSync = rpc.importAPI('folder-sync', folderSyncManifest)\nexport const hyperdrive = rpc.importAPI('hyperdrive', hyperdriveManifest)\nexport const modals = rpc.importAPI('background-process-modals', modalsManifest)\nexport const beakerFs = rpc.importAPI('beaker-filesystem', beakerFsManifest)"
  },
  {
    "path": "app/fg/modals/buttons.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\nbutton {\n  background: transparent;\n  border: 0;\n  padding: 0;\n}\n\nbutton:focus {\n  outline: 0;\n}\n\nbutton:disabled {\n  opacity: 0.5;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: #333;\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer !important;\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: #707070;\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: #333;\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.5);\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  cursor: default;\n  background: #fafafa;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n`"
  },
  {
    "path": "app/fg/modals/buttons2.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n/**\n * New button styles\n * We should replace buttons.css with this\n */\n\nbutton {\n  background: #fff;\n  border: 1px solid #d4d7dc;\n  border-radius: 3px;\n  box-shadow: 0 1px 1px rgba(0,0,0,.05);\n  padding: 5px 10px;\n  color: #333;\n  outline: 0;\n}\n\nbutton:active {\n  background: #eee;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.5);\n  background: #6d6d79;\n  color: rgba(255,255,255,1);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: #5289f7;\n  border-color: #2864dc;\n  color: #fff;\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton[disabled] {\n  border-color: #d4d7dc;\n  background: #fff;\n  color: #999;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\nbutton.transparent {\n  background: transparent;\n  border-color: transparent;\n  box-shadow: none; \n}\n\nbutton.transparent:hover {\n  background: #f5f5f5;\n}\n\nbutton.transparent.pressed {\n  background: rgba(0,0,0,.1);\n  box-shadow: inset 0 1px 2px rgba(0,0,0,.25);\n  color: inherit;\n}\n\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: #6d6d79;\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: flex;\n  margin: 0 6px;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/fg/modals/common.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\n.wrapper {\n  padding: 10px 20px;\n  user-select: none;\n}\n\nh1.title {\n  font-size: 16px;\n  border-bottom: 1px solid #eee;\n  font-weight: 500;\n}\n\n.help-text {\n  color: #707070;\n  color: rgba(0, 0, 0, 0.6);\n  font-style: italic;\n}\n\n.footnote {\n  position: fixed;\n  bottom: 50px;\n  width: 90%;\n}\n\nform {\n  padding-top: 10px;\n}\n\nform textarea,\nform input,\nform .input,\nform details {\n  display: block;\n  width: 100%;\n  margin: 5px 0 15px 0;\n}\n\nform textarea {\n  resize: none;\n  padding: 7px;\n  height: 55px;\n}\n\ndetails input,\ndetails textarea,\ndetails .input {\n  margin-bottom: 0;\n}\n\ndetails summary {\n  outline: 0;\n}\n\n.form-actions {\n  text-align: right;\n}\n`"
  },
  {
    "path": "app/fg/modals/create-drive.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons2.css'\nimport spinnerCSS from './spinner.css'\n\nclass CreateDriveModal extends LitElement {\n  static get properties () {\n    return {\n      isProcessing: {type: Boolean},\n      title: {type: String},\n      description: {type: String},\n      tags: {type: String},\n      fromFolderPath: {type: String},\n      errors: {type: Object},\n      fromGit: {type: Boolean},\n      gitUrl: {type: String},\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, spinnerCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n    \n    h1.title {\n      padding: 14px 20px;\n      margin: 0;\n      border-color: #bbb;\n    }\n    \n    form {\n      padding: 14px 20px;\n      margin: 0;\n    }\n\n    form input {\n      font-size: 14px;\n      height: 34px;\n      padding: 0 10px;\n      border-color: #bbb;\n      margin-top: 0;\n    }\n\n    hr {\n      border: 0;\n      border-top: 1px solid #ddd;\n      margin: 20px 0;\n    }\n\n    .from-folder-path {\n      background: #f3f3f8;\n      padding: 10px 12px;\n      margin-bottom: 10px;\n      border-radius: 4px;\n    }\n\n    .form-actions {\n      display: flex;\n    }\n    \n    .form-actions button {\n      padding: 6px 12px;\n      font-size: 12px;\n    }\n\n    .form-actions button {\n      margin-left: 5px;\n    }\n\n    .form-actions button:first-child {\n      margin-left: 0;\n    }\n\n    .form-actions button:nth-child(3) {\n      margin-left: auto;\n    }\n\n    .git-repo {\n      position: relative;\n      border: 1px solid #ddd;\n      border-radius: 4px;\n      margin-top: 16px;\n      padding: 16px 10px 0;\n    }\n\n    .git-repo-label {\n      position: absolute;\n      top: -8px;\n      left: 8px;\n      padding: 0px 4px;\n      background: #fff;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = undefined\n    this.isProcessing = false\n    this.title = ''\n    this.description = ''\n    this.tags = ''\n    this.author = undefined\n    this.fromFolderPath = undefined\n    this.fromGit = false\n    this.gitUrl = undefined\n    this.errors = {}\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.title = params.title || ''\n    this.description = params.description || ''\n    this.tags = params.tags ? (Array.isArray(params.tags) ? params.tags.join(' ') : params.tags) : ''\n    this.author = undefined // this.author = params.author\n    await this.requestUpdate()\n  }\n\n  updated () {\n    this.adjustHeight()\n  }\n\n  adjustHeight () {\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">\n          Create New Hyperdrive\n        </h1>\n        <form @submit=${this.onSubmit}>\n          <div>\n            <input autofocus name=\"title\" tabindex=\"2\" value=${this.title || ''} @change=${this.onChangeTitle} class=\"${this.errors.title ? 'has-error' : ''}\" placeholder=\"Title\" />\n            ${this.errors.title ? html`<div class=\"error\">${this.errors.title}</div>` : ''}\n            <input name=\"desc\" tabindex=\"3\" @change=${this.onChangeDescription} value=${this.description || ''} placeholder=\"Description (optional)\">\n            <input name=\"tags\" tabindex=\"4\" @change=${this.onChangeTags} value=${this.tags || ''} placeholder=\"Tags (optional, separated by spaces)\">\n            ${this.fromFolderPath ? html`\n              <div class=\"from-folder-path\">\n                <strong>Import from folder:</strong> ${this.fromFolderPath} <a href=\"#\" @click=${this.onClickCancelFromFolder}>Cancel</a>\n              </div>\n            ` : ''}\n          </div>\n\n          <div class=\"form-actions\">\n            <button\n              type=\"button\"\n              @click=${this.onClickFromFolder}\n              tabindex=\"8\"\n              ?disabled=${this.isProcessing || this.fromGit}\n            >From Folder</button>\n            <button\n              type=\"button\"\n              @click=${this.onClickFromGit}\n              tabindex=\"7\"\n              ?disabled=${this.isProcessing || !!this.fromFolderPath}\n            >From Git Repo ${this.fromGit ? html`<span class=\"fas fa-times\"></span>` : ''}</button>\n            <button\n              type=\"button\"\n              @click=${this.onClickCancel}\n              class=\"cancel\"\n              tabindex=\"6\"\n              ?disabled=${this.isProcessing}\n            >Cancel</button>\n            <button\n              type=\"submit\"\n              class=\"primary\"\n              tabindex=\"5\"\n              ?disabled=${this.isProcessing}\n            >${this.isProcessing ? html`<div class=\"spinner\"></div>` : 'Create'}</button>\n          </div>\n\n          ${this.fromGit ? html`\n            <div class=\"git-repo\">\n              <span class=\"git-repo-label\">From Git Repo</span>\n              <input name=\"git-url\" placeholder=\"Repo URL\" value=${this.gitUrl || ''} @change=${this.onChangeGitUrl} class=\"${this.errors.gitUrl ? 'has-error' : ''}\">\n              ${this.errors.gitUrl ? html`<div class=\"error\">${this.errors.gitUrl}</div>` : ''}\n            </div>\n          ` : ''}\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onChangeTitle (e) {\n    this.title = e.target.value.trim()\n  }\n\n  onChangeDescription (e) {\n    this.description = e.target.value.trim()\n  }\n\n  onChangeTags (e) {\n    this.tags = e.target.value.trim()\n  }\n\n  onChangeGitUrl (e) {\n    this.gitUrl = e.target.value.trim()\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n\n    if (!this.title) {\n      this.errors = {title: 'Required'}\n      return\n    }\n\n    if (this.fromGit) {\n      if (!this.gitUrl) {\n        this.errors = {gitUrl: 'Required'}\n        return\n      }\n      let urlp\n      try {\n        urlp = new URL(this.gitUrl)\n        if (!['http:', 'https:'].includes(urlp.protocol)) {\n          throw new Error()\n        }\n      } catch {\n        this.errors = {gitUrl: 'Must be a valid HTTP/S URL'}\n        return\n      }\n    }\n\n    this.isProcessing = true\n\n    try {\n      var url = await bg.hyperdrive.createDrive({\n        title: this.title,\n        description: this.description,\n        tags: this.tags.split(' '),\n        author: this.author,\n        fromGitUrl: this.fromGit ? this.gitUrl : undefined,\n        prompt: false\n      })\n      if (this.fromFolderPath) {\n        await bg.folderSync.set(url, {localPath: this.fromFolderPath})\n      }\n      this.cbs.resolve({url, gotoSync: !!this.fromFolderPath})\n    } catch (e) {\n      if (e.message.includes('git')) {\n        this.isProcessing = false\n        this.errors = {gitUrl: e.message}\n        return\n      }\n      this.cbs.reject(e.message || e.toString())\n    }\n  }\n\n  async onClickFromFolder (e) {\n    e.preventDefault()\n\n    var folder = await bg.beakerBrowser.showOpenDialog({\n      title: 'Select folder',\n      buttonLabel: 'Use folder',\n      properties: ['openDirectory']\n    })\n    if (!folder || !folder.length) return\n    this.fromFolderPath = folder[0]\n  }\n\n  onClickFromGit (e) {\n    this.fromGit = !this.fromGit\n  }\n\n  onClickCancelFromFolder (e) {\n    e.preventDefault()\n    this.fromFolderPath = undefined\n  }\n}\n\ncustomElements.define('create-drive-modal', CreateDriveModal)"
  },
  {
    "path": "app/fg/modals/create-session.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport buttonsCSS from './buttons.css'\nimport './img-fallbacks.js'\nimport { enumeratePerms } from '../../lib/session-permissions'\n\nclass CreateSessionModal extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, buttonsCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n\n    h1.title {\n      font-size: 17px;\n      padding: 14px 20px;\n      border-color: #dddde0;\n      margin: 0;\n    }\n\n    form {\n      padding: 0;\n      margin: 0;\n    }\n\n    .user {\n      display: flex;\n      align-items: center;\n      border-bottom: 1px solid #dddde0;\n      padding: 12px 20px;\n      height: 55px;\n      box-sizing: border-box;\n    }\n\n    .user img {\n      border-radius: 50%;\n      object-fit: cover;\n      width: 32px;\n      height: 32px;\n      margin-right: 16px;\n      box-sizing: border-box;\n      border: 1px solid #fff;\n    }\n\n    .user .title {\n      padding-right: 10px;\n      font-size: 14px;\n      font-weight: 600;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    .user .description {\n      flex: 1;\n      font-size: 14px;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    .permissions {\n      padding: 0 20px;\n    }\n\n    .permission {\n      font-size: 14px;\n    }\n\n    .form-actions {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 14px 20px;\n      text-align: left;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = undefined\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.user = params.user\n\n    var permsEnum = enumeratePerms(params.permissions)\n    console.log(JSON.stringify({permsEnum}))\n    this.publicPerms = permsEnum.filter(p => p.location === 'public')\n    this.privatePerms = permsEnum.filter(p => p.location === 'private')\n    this.publicPerms.sort(sortByAccess)\n    this.privatePerms.sort(sortByAccess)\n    function sortByAccess (a, b) {\n      if (a.access === 'read') return -1\n      if (b.access === 'read') return 1\n      return -1\n    }\n    console.log(JSON.stringify({publicPerms: this.publicPerms}))\n    console.log(JSON.stringify({privatePerms: this.privatePerms}))\n\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">\n          This site would like to sign in as...\n        </h1>\n\n        <form @submit=${this.onSubmit}>\n          <div class=\"user\">\n            <beaker-img-fallbacks>\n              <img src=\"asset:thumb-30:${this.user?.url}\" slot=\"img1\">\n              <img src=\"beaker://assets/default-user-thumb\" slot=\"img2\">\n            </beaker-img-fallbacks>\n            <div class=\"title\"><span>${this.user?.title || 'Anonymous'}</span></div>\n            <div class=\"description\"><span>${this.user?.description}</span></div>\n          </div>\n\n          <div class=\"permissions\">\n            <h3>Permissions (public data):</h3>\n            <ul>\n              <li class=\"permission\"><strong>Read</strong> all of your public profile data</li>\n              ${(this.publicPerms || []).map(perm => html`\n                <li class=\"permission\">\n                  <strong>Write</strong> your ${perm.recordType}\n                </li>\n              `)}\n            </ul>\n            ${this.privatePerms?.length ? html`\n              <h3>Permissions (private data):</h3>\n              <ul>\n                ${(this.privatePerms || []).map(perm => html`\n                  <li class=\"permission\">\n                    <strong>\n                      ${perm.access === 'write' ? `\n                        Read and write\n                      ` : `\n                        Read\n                      `}\n                    </strong>\n                    your ${perm.location} ${perm.recordType}\n                  </li>\n                `)}\n              </ul>\n            ` : ''}\n          </div>\n\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n            <button type=\"submit\" class=\"btn primary\" tabindex=\"5\">OK</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  updated () {\n    // adjust size based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n    this.cbs.resolve()\n  }\n}\n\ncustomElements.define('create-session-modal', CreateSessionModal)"
  },
  {
    "path": "app/fg/modals/drive-properties.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons2.css'\nimport { ucfirst, joinPath } from '../../lib/strings'\n\nclass DrivePropertiesModal extends LitElement {\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n    \n    h1.title {\n      padding: 14px 20px;\n      margin: 0;\n      border-color: #bbb;\n    }\n\n    form {\n      padding: 0;\n      margin: 0;\n    }\n\n    .props {\n      background: #fafafa;\n    }\n\n    .prop {\n      display: flex;\n      align-items: center;\n      border-bottom: 1px dashed #ccc;\n    }\n\n    .prop:last-child {\n      border-bottom: 0;\n    }\n\n    .prop .key {\n      flex: 0 0 100px;\n      padding: 8px 8px 8px 20px;\n      border-right: 1px dashed #ccc;\n      font-weight: 500;\n    }\n\n    .prop input {\n      border-radius: 0;\n      margin: 0;\n      border: 0;\n      padding: 0;\n      height: auto;\n    }\n\n    .prop .img-input,\n    .prop .other-input,\n    .prop input[type=\"text\"] {\n      flex: 1;\n      font-size: 14px;\n      padding: 8px;\n      background: #fafafa;\n    }\n\n    .prop.writable .img-input:hover,\n    .prop.writable .other-input:hover,\n    .prop.writable input[type=\"text\"]:hover {\n      background: #f0f0f0;\n    }\n\n    .prop input[type=\"text\"]:focus {\n      box-shadow: none;\n    }\n\n    .prop.writable input[type=\"text\"]:focus {\n      background: #f0f0f0;\n    }\n\n    .prop .img-input {\n      display: flex;\n      align-items: center;\n    }\n\n    .prop img {\n      width: 16px;\n      height: 16px;\n      object-fit: cover;\n      margin-right: 5px;\n    }\n\n    .form-actions {\n      display: flex;\n      justify-content: space-between;\n      border-top: 1px dashed #ccc;\n      padding: 8px 10px;\n    }\n    \n    .form-actions button {\n      padding: 6px 12px;\n      font-size: 12px;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = undefined\n    this.url = ''\n    this.writable = false\n    this.props = {}\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.url = params.url\n    this.writable = params.writable\n    this.props = params.props || {}\n    this.props.title = this.props.title || ''\n    this.props.description = this.props.description || ''\n    this.props.tags = this.props.tags?.join(' ') || ''\n    await this.requestUpdate()\n    this.adjustHeight()\n  }\n\n  adjustHeight () {\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">\n          Hyperdrive Properties\n        </h1>\n\n        <form @submit=${this.onSubmit}>\n          <div class=\"props\">\n            ${repeat(Object.entries(this.props), entry => entry[0], entry => this.renderProp(...entry))}\n\n            <div class=\"prop\">\n              <div class=\"key\">Thumbnail</div>\n              <div class=\"img-input\">\n                <img src=\"${this.url}/thumb\">\n                <input id=\"thumb-input\" type=\"file\" accept=\".jpg,.jpeg,.png\" ?disabled=${!this.writable}>\n              </div>\n            </div>\n          </div>\n\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"cancel\" tabindex=\"5\">Cancel</button>\n            <button type=\"submit\" class=\"primary\" tabindex=\"4\">OK</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  renderProp (key, value) {\n    var writable = key === 'tags' || this.writable\n    return html`\n      <div class=\"prop ${writable ? 'writable' : ''}\">\n        <div class=\"key\">${ucfirst(key)}</div>\n        <input type=\"text\" name=${key} value=${value} ?readonly=${!writable} @change=${this.onInputChange}>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onInputChange (e) {\n    this.requestUpdate()\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.resolve()\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n\n    var newProps = Object.fromEntries(new FormData(e.currentTarget))\n    newProps.tags = newProps.tags.split(' ')\n\n    // handle thumb file\n    var thumbInput = this.shadowRoot.querySelector('#thumb-input')\n    if (thumbInput.files[0]) {\n      let file = thumbInput.files[0]\n      let ext = file.name.split('.').pop()\n      let reader = new FileReader()\n      let bufPromise = new Promise((resolve, reject) => {\n        reader.onload = e => resolve(e.target.result)\n        reader.onerror = reject\n      })\n      reader.readAsArrayBuffer(file)\n\n      await Promise.all([\n        bg.hyperdrive.unlink(joinPath(this.url, '/thumb.png')).catch(e => null),\n        bg.hyperdrive.unlink(joinPath(this.url, '/thumb.jpg')).catch(e => null),\n        bg.hyperdrive.unlink(joinPath(this.url, '/thumb.jpeg')).catch(e => null)\n      ])\n      await bg.hyperdrive.writeFile(joinPath(this.url, `/thumb.${ext}`), await bufPromise)\n    }\n\n    // handle props\n    await bg.hyperdrive.configure(this.url, newProps).catch(e => null)\n\n    this.cbs.resolve()\n  }\n}\n\ncustomElements.define('drive-properties-modal', DrivePropertiesModal)"
  },
  {
    "path": "app/fg/modals/folder-sync.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons2.css'\nimport spinnerCSS from './spinner.css'\nimport tooltipCSS from './tooltip.css'\nimport { globToRegex } from '../../lib/strings'\nimport _debounce from 'lodash.debounce'\n\nclass FolderSyncModal extends LitElement {\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, spinnerCSS, tooltipCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n    \n    h1.title {\n      padding: 14px 20px;\n      margin: 0;\n      border-color: #bbb;\n    }\n\n    .refresh {\n      position: absolute;\n      right: 53px;\n      top: 18px;      \n      font-size: 10px;\n      cursor: pointer;\n    }\n\n    .close {\n      position: absolute;\n      right: 30px;\n      top: 17px;\n      font-size: 13px;\n      cursor: pointer;\n    }\n    \n    main {\n      padding: 14px 20px;\n    }\n\n    main > :last-child {\n      margin-bottom: 0 !important;\n    }\n\n    input {\n      margin: 0;\n      display: initial;\n      width: initial;\n    }\n\n    hr {\n      border: 0;\n      border-top: 1px solid #ddd;\n      margin: 20px 0;\n    }\n\n    .folder-path,\n    .changes {\n      margin: 2px 0 10px;\n    }\n    \n    input[type=\"checkbox\"] {\n      height: auto;\n      margin: 0;\n      margin-right: 5px;\n    }\n    \n    .folder-path {\n      display: flex;\n    }\n    \n    .folder-path input {\n      flex: 1;\n      background: #f3f3f8;\n      border-top-right-radius: 0;\n      border-bottom-right-radius: 0;\n      box-shadow: none;\n      border-color: #f3f3f8;\n      padding-left: 10px;\n    }\n    \n    .folder-path button:not(:last-child) {\n      border-right: 0;\n      border-top-right-radius: 0;\n      border-bottom-right-radius: 0;\n    }\n    \n    .folder-path button {\n      border-top-left-radius: 0;\n      border-bottom-left-radius: 0;\n    }\n    \n    .changes {\n      max-height: 300px;\n      overflow-y: scroll;\n      border: 1px solid #dde;\n      border-radius: 4px;\n    }\n    \n    .changes .empty {\n      padding: 6px 8px;\n      color: #555;\n    }\n    \n    .change {\n      display: flex;\n      align-items: center;\n      height: 32px;\n      border-bottom: 1px solid #dde;\n    }\n\n    .change:last-child {\n      border-bottom: 0;\n    }\n    \n    .change.ignored {\n      background: #fafafd;\n      color: #778;\n    }\n    \n    .change.clickable {\n      cursor: pointer;\n    }\n\n    .change .icon {\n      display: inline-block;\n      width: 18px;\n      text-align: center;\n    }\n\n    .change .spacer {\n      background: #f3f3f8;\n      width: 18px;\n      height: 100%;\n    }\n\n    .change .path {\n      flex: 1;\n      padding: 8px;\n      white-space: nowrap;\n      overflow: hidden;\n    }\n\n    .revision-indicator {\n      display: inline-block;\n      width: 8px;\n      height: 8px;\n      border-radius: 50%;\n      margin-top: -.4px;\n      margin-left: 4px;\n      margin-right: 4px;\n    }\n\n    .revert {\n      margin-right: 8px;\n      cursor: pointer;\n    }\n    \n    .revision-indicator.add { background: #44c35a; }\n    .revision-indicator.mod { background: #fac800; }\n    .revision-indicator.del { background: #d93229; }\n\n    .ignores,\n    .log {\n      height: 100px;\n    }\n\n    summary {\n      font-size: 13px;\n    }\n\n    summary label {\n      float: right;\n      font-size: 12px;\n      display: flex;\n      align-items: center;\n      font-weight: normal;\n    }\n\n    textarea {\n      padding: 5px;\n    }\n\n    textarea,\n    details {\n      display: block;\n      width: 100%;\n      margin: 5px 0 15px 0;\n    }\n\n    .form-actions {\n      display: flex;\n      padding: 14px 20px;\n      border-top: 1px solid rgb(187, 187, 187);\n    }\n    \n    .form-actions button {\n      padding: 6px 12px;\n      font-size: 12px;\n    }\n\n    .form-actions button:first-child {\n      margin-right: auto;\n    }\n\n    .form-actions button .spinner {\n      width: 6px;\n      height: 6px;\n    }\n\n    .form-actions label {\n      display: flex;\n      align-items: center;\n      margin-right: 15px;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = undefined\n    this.url = undefined\n    this.folderSyncPath = undefined\n    this.isAutoSyncing = false\n    this.ignoredFiles = []\n    this.ignoreRegexes = []\n    this.changes = undefined\n    this.showSkippedFiles = false\n    this.closeAfterSync = false\n    this.syncStream = undefined\n    this.syncLog = []\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.url = params.url\n    this.closeAfterSync = params.closeAfterSync\n    await this.requestUpdate()\n    this.load()\n  }\n\n  async load () {\n    var settings = await bg.folderSync.get(this.url)\n    if (settings) {\n      this.folderSyncPath = settings.localPath\n      this.ignoredFiles = settings.ignoredFiles\n      this.ignoreRegexes = this.ignoredFiles.map(globToRegex)\n      this.isAutoSyncing = settings.isAutoSyncing\n    } else {\n      this.folderSyncPath = undefined\n      this.changes = []\n    }\n    this.requestUpdate()\n\n    if (settings) {\n      this.changes = await bg.folderSync.compare(this.url)\n      this.changes.sort(sortAlphaAndFolders)\n      this.changes.forEach(c => {\n        if (c.type === 'dir') {\n          this.setDirCollapsed(c, true)\n        }\n      })\n    }\n    this.requestUpdate()\n  }\n\n  iterateChildChanges (path, fn) {\n    this.changes.forEach(change => {\n      if (isLeftChildOfRight(change.path, path)) {\n        fn(change)\n      }\n    })\n  }\n\n  iterateParentChanges (path, fn) {\n    this.changes.forEach(change => {\n      if (isLeftChildOfRight(path, change.path)) {\n        fn(change)\n      }\n    })\n  }\n\n  splitChangePath (change) {\n    // NOTE\n    // sometimes a file will get \"orphaned\"\n    // this is where the parent dirs are all merged but the file itself isnt\n    // when this happens, we need to find the parent. If it's not rendered, \n    // then show the full path\n    // -prf\n    var pathParts = change.path.split('/')\n    var filename = pathParts.pop()\n    var parentPath = pathParts.join('/')\n    var parentChange = this.changes.find(c => c.path === parentPath)\n    if (parentChange) {\n      if (this.showSkippedFiles || !this.isIgnored(parentPath)) {\n        return {pathParts: pathParts.filter(Boolean), filename} // not orphaned\n      }\n    }\n    return {pathParts: [], filename: change.path}\n  }\n\n  setDirCollapsed (change, collapsed) {\n    change.collapsed = collapsed\n    this.iterateChildChanges(change.path, c => {\n      if (collapsed === false && !isLeftImmediateChildOfRight(c.path, change.path)) return\n      if (collapsed === true && c.type === 'dir') c.collapsed = change.collapsed\n      c.hidden = change.collapsed\n    })\n  }\n\n  isIgnored (path) {\n    for (let re of this.ignoreRegexes) {\n      if (re.test(path)) return true\n    }\n    return false\n  }\n\n  async doSync () {\n    this.syncLog.unshift('-- New sync started --')\n    this.requestUpdate()\n    try {\n      this.syncStream = await bg.folderSync.sync(this.url)\n      this.requestUpdate()\n      await new Promise((resolve, reject) => {\n        this.syncStream.on('data', ({op, path}) => {\n          this.syncLog.unshift(`${op} ${path}`)\n          this.requestUpdate()\n        })\n        this.syncStream.on('error', reject)\n        this.syncStream.on('close', resolve)\n        this.syncStream.on('end', resolve)\n      })\n      this.syncLog.unshift('-- Sync completed --')\n    } catch (e) {\n      this.syncLog.unshift('-- Sync aborted --')\n    } finally {\n      this.syncStream = undefined\n      this.requestUpdate()\n    }\n  }\n\n  updated () {\n    this.adjustHeight()\n  }\n\n  adjustHeight () {\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">\n          Sync with local folder\n          <a class=\"refresh\" @click=${this.onClickRefresh} title=\"Refresh\">\n            <span class=\"fas fa-sync\"></span>\n          </a>\n          <a class=\"close\" @click=${this.onClickClose} title=\"Close\">\n            <span class=\"fas fa-times\"></span>\n          </a>\n        </h1>\n        <main>\n          <div class=\"folder-path\">\n            <input value=${this.folderSyncPath || ''} readonly placeholder=\"No local folder chosen\">\n            <button title=\"Change\" @click=${this.onChangeFolder}><span class=\"far fa-fw fa-folder-open\"></span></button>\n            <button title=\"Remove\" @click=${this.onRemoveFolder}><span class=\"fas fa-fw fa-ban\"></span></button>\n          </div>\n          ${this.renderSyncUI()}\n          ${this.folderSyncPath ? html`\n            <details @toggle=${this.adjustHeight}>\n              <summary>\n                Skip items matching these rules\n                <label>\n                  <input type=\"checkbox\" ?checked=${this.showSkippedFiles} @click=${this.onToggleShowSkippedFiles}>\n                  Show skipped files\n                </label>\n              </summary>\n              <textarea\n                class=\"ignores\"\n                @input=${_debounce(this.onChangeIgnores, 1e3)}\n                ?disabled=${this.isAutoSyncing}\n              >${this.ignoredFiles.join('\\n')}</textarea>\n            </details>\n          ` : ''}\n            <details @toggle=${this.adjustHeight}>\n              <summary>\n                Sync log\n              </summary>\n              <textarea\n                class=\"log\"\n                @input=${_debounce(this.onChangeIgnores, 1e3)}\n                disabled\n              >${this.syncLog.join('\\n')}</textarea>\n            </details>\n        </main>\n        <div class=\"form-actions\">\n          <button type=\"button\" @click=${this.onClickClose} class=\"cancel\" tabindex=\"6\">Close</button>\n          <span>\n            ${this.syncStream ? html`\n              <button tabindex=\"5\" @click=${this.onClickAbortSync}>\n                Abort\n              </button>\n              <button type=\"submit\" class=\"primary\" tabindex=\"4\" disabled>\n                <span class=\"spinner\"></span> Syncing\n              </button>\n            ` : this.isAutoSyncing ? html`\n              <button tabindex=\"5\" @click=${this.onClickStopAutosync}>\n                Stop Autosync\n              </button>\n              <button type=\"submit\" class=\"primary\" tabindex=\"4\" disabled>\n                <span class=\"spinner\"></span> Syncing\n              </button>\n            ` : html`\n              <button tabindex=\"5\" @click=${this.onClickStartAutosync}>\n                Start Autosync\n              </button>\n              <button type=\"submit\" class=\"primary\" tabindex=\"4\" @click=${this.onClickSync}>\n                Sync\n              </button>\n            `}\n          </span>\n        </div>\n      </div>\n    `\n  }\n\n  renderSyncUI () {\n    if (!this.folderSyncPath) return ''\n    if (!this.changes) {\n      return html`<div class=\"empty\"><span class=\"spinner\"></span></div>`\n    }\n    let hasChanges = true\n    if (this.showSkippedFiles && this.changes.length === 0) {\n      hasChanges = false\n    } else if (!this.showSkippedFiles && !this.changes.find(change => !this.isIgnored(change.path))) {\n      hasChanges = false\n    }\n    if (!hasChanges) {\n      return html`<div class=\"changes\"><div class=\"empty\">All files are synced</div></div>`\n    }\n    return html`\n      <div class=\"changes\">\n        ${repeat(this.changes.filter(c => !c.hidden), change => {\n          let isIgnored = this.isIgnored(change.path)\n          if (isIgnored && !this.showSkippedFiles) return ''\n          let {pathParts, filename} = this.splitChangePath(change)\n          const icon = () => change.type === 'dir'\n            ? html`\n              <span class=\"icon\">\n                <span class=\"fas fa-folder${change.collapsed ? '' : '-open'}\"></span>\n              </span>\n            ` : html`\n              <span class=\"icon\">\n                <span class=\"far fa-file\"></span>\n              </span>\n            `\n          const subdirSpacers = () => pathParts.map(_ => html`<span class=\"spacer\"></span>`)\n          const onClick = change.type === 'dir' ? e => { this.setDirCollapsed(change, !change.collapsed); this.requestUpdate() } : undefined\n          return html`\n            <div class=\"change ${change.type === 'dir' ? 'clickable' : ''} ${isIgnored ? 'ignored' : ''}\">\n              ${subdirSpacers()}\n              <span class=\"path\" @click=${onClick}>\n                ${!isIgnored ? html`<span class=\"revision-indicator ${change.change} tooltip-right\" data-tooltip=${changeAsLabel(change.change)}></span>` : ''}\n                ${icon()}\n                ${filename}\n              </span>\n              ${change.change !== 'add' ? html`\n                <a class=\"revert tooltip-left\" data-tooltip=\"Restore to local folder\" @click=${e => this.onClickRestoreFile(change)}>\n                  <span class=\"fas fa-fw fa-undo\"></span>\n                </a>\n              ` : ''}\n            </div>\n          `\n        })}\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  async onChangeFolder (e) {\n    this.folderSyncPath = await bg.folderSync.chooseFolderDialog(this.url)\n    this.changes = undefined\n    this.requestUpdate()\n    this.load()\n  }\n\n  async onRemoveFolder (e) {\n    await bg.folderSync.remove(this.url)\n    this.load()\n  }\n\n  async onClickRestoreFile (change) {\n    await bg.folderSync.restoreFile(this.url, change.path)\n    this.changes.splice(this.changes.indexOf(change), 1)\n    this.requestUpdate()\n  }\n\n  async onChangeIgnores (e) {\n    this.ignoredFiles = this.shadowRoot.querySelector('.ignores').value.split('\\n').map(str => str.trim()).filter(Boolean)\n    this.ignoreRegexes = this.ignoredFiles.map(globToRegex)\n    await bg.folderSync.updateIgnoredFiles(this.url, this.ignoredFiles)\n    this.requestUpdate()\n  }\n\n  onToggleShowSkippedFiles (e) {\n    e.stopPropagation()\n    this.showSkippedFiles = !this.showSkippedFiles\n    this.requestUpdate()\n  }\n\n  onClickRefresh () {\n    this.changes = undefined\n    this.requestUpdate()\n    this.load()\n  }\n\n  async onClickSync () {\n    this.shadowRoot.querySelector('button[type=\"submit\"]').innerHTML = `<div class=\"spinner\"></div> Syncing`\n    await this.doSync()\n    this.shadowRoot.querySelector('button[type=\"submit\"]').innerHTML = `Sync`\n    if (this.closeAfterSync) return this.cbs.resolve()\n    this.changes = []\n    this.requestUpdate()\n    this.load()\n  }\n\n  async onClickStartAutosync () {\n    await this.doSync()\n    await bg.folderSync.enableAutoSync(this.url)\n    if (this.closeAfterSync) return this.cbs.resolve()\n    this.load()\n  }\n\n  onClickAbortSync () {\n    this.syncStream.close()\n  }\n\n  async onClickStopAutosync () {\n    await bg.folderSync.disableAutoSync(this.url)\n    this.isAutoSyncing = false\n    this.requestUpdate()\n  }\n\n  onClickClose () {\n    this.cbs.resolve()\n  }\n}\n\ncustomElements.define('folder-sync-modal', FolderSyncModal)\n\nfunction changeAsLabel (change) {\n  return ({\n    add: 'Add',\n    mod: 'Modify',\n    del: 'Delete'\n  })[change] || change\n}\n\nfunction sortAlphaAndFolders (a, b) {\n  for (let i = 0; i < Math.min(a.path.length, b.path.length); i++) {\n    let ac = a.path.charAt(i)\n    let bc = b.path.charAt(i)\n    if (ac === bc) continue\n    if (ac === '/') return -1\n    if (bc === '/') return 1\n    if (ac < bc) return -1\n    return 1\n  }\n  return a.path.length < b.path.length ? -1 : 1\n}\n\nfunction isLeftChildOfRight (a, b) {\n  return (a.startsWith(b) && a.charAt(b.length) === '/')\n}\n\nfunction isLeftImmediateChildOfRight (a, b) {\n  return isLeftChildOfRight(a, b) && !a.slice(b.length + 1).includes('/')\n}\n"
  },
  {
    "path": "app/fg/modals/fork-drive.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport { shorten } from '../../lib/strings'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\nimport spinnerCSS from './spinner.css'\n\nconst STATES = {\n  READY: 0,\n  DOWNLOADING: 1,\n  CLONING: 2\n}\n\nclass ForkDriveModal extends LitElement {\n  static get properties () {\n    return {\n      state: {type: Number},\n      label: {type: String},\n      title: {type: String},\n      description: {type: String},\n      tags: {type: String},\n      isTemplate: {type: Boolean},\n      isDetached: {type: Boolean}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, spinnerCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n        \n    form {\n      padding: 14px 20px;\n      margin: 0;\n    }\n\n    .loading {\n      padding: 20px 22px 20px;\n      font-size: 15px;\n      font-style: normal;\n      border-bottom: 1px solid #ccd;\n      color: rgba(0, 0, 0, 0.6);\n    }\n\n    h1 {\n      margin-top: 0;\n    }\n\n    .tabbed-nav {\n      display: flex;\n      align-items: center;\n      font-size: 17px;\n      letter-spacing: 0.5px;\n      margin: -4px -16px 14px;\n    }\n    \n    .tabbed-nav span {\n      min-width: 5px;\n      border: 1px solid transparent;\n      border-bottom: 1px solid #bbb;\n      height: 28px;\n    }\n\n    .tabbed-nav span.spacer {\n      flex: 1;\n    }\n\n    .tabbed-nav a {\n      color: inherit;\n      border: 1px solid transparent;\n      border-bottom: 1px solid #bbb;\n      cursor: pointer;\n      border-top-left-radius: 2px;\n      border-top-right-radius: 2px;\n      padding: 4px 18px;\n    }\n    \n    .tabbed-nav a.active {\n      border: 1px solid #bbb;\n      border-bottom: 1px solid transparent;\n    }\n\n    .columns {\n      display: grid;\n      grid-template-columns: auto 1fr;\n      grid-gap: 12px;\n    }\n\n    input {\n      font-size: 14px;\n      height: 34px;\n      padding: 0 10px;\n      border-color: #bbb;\n    }\n    \n    select {\n      -webkit-appearance: none;\n      display: inline-block;\n      font-size: 13px;\n      font-weight: 500;\n      padding: 8px 30px 8px 10px;\n      max-width: 100%;\n      border: 1px solid #bbc;\n      border-radius: 4px;\n      outline: 0;\n      background-color: #fff;\n      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAARVBMVEUAAAAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAsPlAz1sU3AAAAFnRSTlMAAwQMERkbIikuVWl0dXeDtLXF5PH5X4+8lwAAAIxJREFUSInt0TcCwjAQRNFvE5dkwKD7H5WGINsKszWa+r9qoO1ftjqc1B0N2DyDYwNcPX0Ia0Yf2HFx9Y+e7u4Be6B3CAOXsPcTqrDvd5qw6G1FxL0ipn1dzPuaWPZlkepLIt3nRa7PiXyfFqU+Jcr9UtT6uaj3U6H0sdD6n1D7j9B76M7jbevo29rgBddTP/7iwZL3AAAAAElFTkSuQmCC);\n      background-repeat: no-repeat;\n      background-position: right .7em top 50%, 0 0;\n      background-size: .65em auto, 100%;\n    }\n\n    .help {\n      opacity: 0.6;\n    }\n\n    .help.with-icon {\n      padding-left: 16px;\n      position: relative;\n    }\n\n    .help.with-icon .fas {\n      position: absolute;\n      left: -2px;\n      top: 1px;\n      font-size: 11px;\n    }\n\n    input + .help {\n      margin-top: -8px;\n    }\n\n    .help a {\n      cursor: pointer;\n      color: blue;\n      text-decoration: underline;\n    }\n    \n    hr {\n      border: 0;\n      border-top: 1px solid #ddd;\n      margin: 10px 0;\n    }\n\n    .form-actions {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n    }\n\n    .fork-dat-progress {\n      font-size: 14px;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n\n    // internal state\n    this.driveInfo = null\n    this.state = STATES.READY\n\n    // params\n    this.cbs = null\n    this.forks = []\n    this.base = undefined\n    this.label = ''\n    this.title = ''\n    this.description = ''\n    this.tags = ''\n    this.isDetached = false\n  }\n\n  async init (params, cbs) {\n    // store params\n    this.cbs = cbs\n    this.forks = params.forks\n    this.base = this.forks.find(fork => fork.url === params.url) || this.forks[0]\n    this.isDetached = params.detached || false\n    this.isTemplate = params.isTemplate || false\n    this.label = params.label || ''\n    await this.requestUpdate()\n\n    // fetch drive info\n    this.driveInfo = await bg.hyperdrive.getInfo(this.base.url)\n    this.title =  typeof params.title === 'string' ? params.title : (this.driveInfo.title || '')\n    this.description = typeof params.description === 'string' ? params.description : (this.driveInfo.description || '')\n    this.tags = params.tags ? (Array.isArray(params.tags) ? params.tags.join(' ') : params.tags) : this.driveInfo.tags?.join(' ') || ''\n    await this.requestUpdate()\n    this.adjustHeight()\n  }\n\n  updated () {\n    this.adjustHeight()\n  }\n\n  adjustHeight () {\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.driveInfo) {\n      return this.renderLoading()\n    }\n\n    var progressEl\n    var actionBtn\n    switch (this.state) {\n      case STATES.READY:\n        progressEl = html`<div class=\"fork-dat-progress\">Ready to ${this.isDetached ? 'make a copy' : 'fork'}.</div>`\n        actionBtn = html`<button type=\"submit\" class=\"btn primary\" tabindex=\"5\">${this.isDetached ? 'Copy drive' : 'Create fork'}</button>`\n        break\n      case STATES.DOWNLOADING:\n        progressEl = html`<div class=\"fork-dat-progress\">Downloading remaining files...</div>`\n        actionBtn = html`<button type=\"submit\" class=\"btn\" disabled tabindex=\"5\"><span class=\"spinner\"></span></button>`\n        break\n      case STATES.CLONING:\n        progressEl = html`<div class=\"fork-dat-progress\">Downloading and copying...</div>`\n        actionBtn = html`<button type=\"submit\" class=\"btn\" disabled tabindex=\"5\"><span class=\"spinner\"></span></button>`\n        break\n    }\n\n    const navItem = (v, label) => html`\n      <a class=${this.isDetached === v ? 'active' : ''} @click=${e => this.onSetDetached(v)}>${label}</a>\n    `\n    const baseOpt = (fork) => {\n      return html`\n        <option value=${fork.url} ?selected=${this.base === fork}>\n          ${fork.forkOf && fork.forkOf.label ? fork.forkOf.label : 'Original'}\n        </option>\n      `\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <form @submit=${this.onSubmit}>\n          ${this.isTemplate ? html`\n            <h1>Create a new drive</h1>\n          ` : html`\n            <div class=\"tabbed-nav\">\n              <span></span>\n              ${navItem(false, 'Fork')}\n              ${navItem(true, 'Copy')}\n              <span class=\"spacer\"></span>\n            </div>\n          `}\n          \n          ${this.isDetached ? html`\n            <p class=\"help with-icon\">\n              <span class=\"fas fa-fw fa-info\"></span>\n              ${this.isTemplate\n                ? html`\n                  Using\n                  <a @click=${this.onClickTemplate}>${shorten(this.driveInfo.title, 20)}</a>\n                  as a template.\n                `\n                : 'Make an independent copy of the drive.'}\n            </p>\n            <label for=\"title\">Title</label>\n            <input autofocus name=\"title\" tabindex=\"1\" value=${this.title || ''} @change=${this.onChangeTitle} required placeholder=\"Title\" />\n            <label for=\"desc\">Description</label>\n            <input name=\"desc\" tabindex=\"2\" @change=${this.onChangeDescription} value=${this.description || ''} placeholder=\"Description (optional)\">\n            <label for=\"tags\">Tags</label>\n            <input name=\"tags\" tabindex=\"3\" @change=${this.onChangeTags} value=${this.tags || ''} placeholder=\"Tags (optional, separated by spaces)\">\n          ` : html`\n            <p class=\"help with-icon\"><span class=\"fas fa-fw fa-info\"></span> A fork is a linked copy of the drive which is used for making changes and then merging into the original.</p>\n            <div class=\"columns\">\n              <div>\n                <label for=\"base\">Base</label>\n                <div style=\"margin: 5px 0 8px\">\n                  <select name=\"base\" tabindex=\"1\" @change=${this.onChangeBase}>\n                    ${baseOpt(this.forks[0])}\n                    <optgroup label=\"Forks\">\n                      ${repeat(this.forks.slice(1), fork => baseOpt(fork))}\n                    </optgroup>\n                  </select>\n                </div>\n              </div>\n\n              <div>\n                <label for=\"label\">Label</label>\n                <input\n                  name=\"label\"\n                  tabindex=\"2\"\n                  value=\"${this.label}\"\n                  @change=${this.onChangeLabel}\n                  placeholder=\"e.g. 'dev' or 'my-new-feature'\"\n                  autofocus\n                  required\n                />\n                <p class=\"help\">The label will help you identify the fork.</p>\n\n                <label for=\"tags\">Tags</label>\n                <input name=\"tags\" tabindex=\"3\" @change=${this.onChangeTags} value=${this.tags || ''} placeholder=\"Tags (optional, separated by spaces)\">\n              </div>\n            </div>\n          `}\n          \n          <hr>\n\n          <div class=\"form-actions\">\n            ${progressEl}\n            <div>\n              <button type=\"button\" class=\"btn cancel\" @click=${this.onClickCancel} tabindex=\"4\">Cancel</button>\n              ${actionBtn}\n            </div>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  renderLoading () {\n    return html`\n      <div class=\"wrapper\">\n        <div class=\"loading\">Loading...</div>\n        <form>\n          <div class=\"form-actions\">\n            <div></div>\n            <div>\n              <button type=\"button\" class=\"btn cancel\" @click=${this.onClickCancel} tabindex=\"4\">Cancel</button>\n              <button type=\"submit\" class=\"btn\" tabindex=\"5\" disabled>Create</button>\n            </div>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onClickTemplate (e) {\n    bg.beakerBrowser.openUrl(this.driveInfo.url, {setActive: true})\n  }\n\n  onSetDetached (v) {\n    this.isDetached = v\n  }\n\n  async onChangeBase (e) {\n    this.base = this.forks.find(fork => fork.url === e.currentTarget.value)\n    this.driveInfo = await bg.hyperdrive.getInfo(this.base.url)\n    this.requestUpdate()\n  }\n\n  onChangeLabel (e) {\n    this.label = e.target.value\n  }\n\n  onChangeTitle (e) {\n    this.title = e.target.value\n  }\n\n  onChangeDescription (e) {\n    this.description = e.target.value\n  }\n\n  onChangeTags (e) {\n    this.tags = e.target.value\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n\n    if (this.isDetached) {\n      if (!this.title.trim()) return\n    } else {\n      if (!this.label.trim()) return\n    }\n\n    // this.state = STATES.DOWNLOADING\n    // await bg.hyperdrive.download(this.base.url)\n\n    this.state = STATES.CLONING\n    try {\n      var url = await bg.hyperdrive.forkDrive(this.base.url, {\n        detached: this.isDetached,\n        title: this.isDetached ? this.title : this.driveInfo.title,\n        description: this.isDetached ? this.description : this.driveInfo.description,\n        tags: this.tags.split(' '),\n        label: this.label,\n        prompt: false\n      })\n      this.cbs.resolve({url})\n    } catch (e) {\n      this.cbs.reject(e.message || e.toString())\n    }\n  }\n}\n\ncustomElements.define('fork-drive-modal', ForkDriveModal)"
  },
  {
    "path": "app/fg/modals/img-fallbacks.js",
    "content": "import { LitElement, html, css } from '../vendor/lit-element/lit-element'\n\n/*\nUsage:\n\n<beaker-img-fallbacks>\n  <img src=\"/foo.png\" slot=\"img1\">\n  <img src=\"/bar.png\" slot=\"img2\">\n  <img src=\"/baz.png\" slot=\"img3\">\n</beaker-img-fallbacks>\n*/\n\nexport class ImgFallbacks extends LitElement {\n  static get properties () {\n    return {\n      currentImage: {type: Number}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentImage = 1\n  }\n\n  render () {\n    return html`<slot name=\"img${this.currentImage}\" @slotchange=${this.onSlotChange}></slot>`\n  }\n\n  onSlotChange (e) {\n    var img = this.shadowRoot.querySelector('slot').assignedElements()[0]\n    if (img) img.addEventListener('error', this.onError.bind(this))\n  }\n\n  onError (e) {\n    this.currentImage = this.currentImage + 1\n  }\n}\n\ncustomElements.define('beaker-img-fallbacks', ImgFallbacks)\n"
  },
  {
    "path": "app/fg/modals/index.html",
    "content": "<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n    <style>\n    body {\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      margin: 0;\n      font-size: 12px;\n      color: rgba(0, 0, 0, 0.8);\n      background: transparent;\n      overflow: hidden;\n    }\n    modals-wrapper {\n      display: block;\n      background: #fff;\n      border: 1px solid #bbb;\n      box-shadow: 0 2px 4px rgba(0,0,0,.4);\n      margin: 0 10px 10px;\n      overflow: hidden;\n    }\n    </style>\n  </head>\n  <body>\n    <modals-wrapper></modals-wrapper> <!-- this tag will be defined in the preload script -->\n  </body>\n</html>"
  },
  {
    "path": "app/fg/modals/index.js",
    "content": "/* globals customElements */\nimport { LitElement, html } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport _debounce from 'lodash.debounce'\nimport { ipcRenderer } from 'electron'\nimport './setup'\nimport './add-drive'\nimport './create-drive'\nimport './fork-drive'\nimport './folder-sync'\nimport './drive-properties'\nimport './select-drive'\nimport './select-file'\nimport './prompt'\nimport './basic-auth'\nimport './user-editor'\nimport './user-select'\nimport './create-session'\n\nclass ModalsWrapper extends LitElement {\n  static get properties () {\n    return {\n      currentModal: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentModal = null\n    this.cbs = null\n    this.fetchBrowserInfo()\n\n    // export interface\n    window.runModal = this.runModal.bind(this)\n\n    // global event listeners\n    window.addEventListener('keydown', e => {\n      if (e.key === 'Escape') {\n        this.cbs.reject(new Error('Canceled'))\n      }\n    })\n  }\n\n  async fetchBrowserInfo () {\n    var {platform} = await bg.beakerBrowser.getInfo()\n    window.platform = platform\n    if (platform === 'darwin') {\n      document.body.classList.add('darwin')\n    }\n    if (platform === 'win32') {\n      document.body.classList.add('win32')\n    }\n  }\n\n  async runModal (name, params) {\n    window.isModalActive = true\n    this.currentModal = name\n    await this.updateComplete\n    return new Promise((resolve, reject) => {\n      this.cbs = {resolve, reject}\n      this.shadowRoot.querySelector(`${name}-modal`).init(params, {resolve, reject})\n    }).then(\n      v => { window.isModalActive = false; return v },\n      v => { window.isModalActive = false; throw v }\n    )\n  }\n\n  render () {\n    return html`<div>${this.renderMenu()}</div>`\n  }\n\n  renderMenu () {\n    switch (this.currentModal) {\n      case 'setup':\n        return html`<setup-modal></setup-modal>`\n      case 'add-drive':\n        return html`<add-drive-modal></add-drive-modal>`\n      case 'create-drive':\n        return html`<create-drive-modal></create-drive-modal>`\n      case 'fork-drive':\n        return html`<fork-drive-modal></fork-drive-modal>`\n      case 'folder-sync':\n        return html`<folder-sync-modal></folder-sync-modal>`\n      case 'drive-properties':\n        return html`<drive-properties-modal></drive-properties-modal>`\n      case 'select-drive':\n        return html`<select-drive-modal></select-drive-modal>`\n      case 'select-file':\n        return html`<select-file-modal></select-file-modal>`\n      case 'prompt':\n        return html`<prompt-modal></prompt-modal>`\n      case 'basic-auth':\n        return html`<basic-auth-modal></basic-auth-modal>`\n      case 'user-editor':\n        return html`<user-editor-modal></user-editor-modal>`\n      case 'user-select':\n        return html`<user-select-modal></user-select-modal>`\n      case 'create-session':\n        return html`<create-session-modal></create-session-modal>`\n    }\n    return html`<div></div>`\n  }\n}\n\ncustomElements.define('modals-wrapper', ModalsWrapper)\n\n// HACK\n// Electron has an issue where browserviews fail to calculate click regions after a resize\n// https://github.com/electron/electron/issues/14038\n// we can solve this by forcing a recalculation after every resize\n// -prf\n\nconst forceUpdateDragRegions = _debounce(() => ipcRenderer.send('resize-hackfix'), 100, {leading: true})\nwindow.addEventListener('resize', forceUpdateDragRegions)\ndocument.addEventListener('DOMContentLoaded', forceUpdateDragRegions)"
  },
  {
    "path": "app/fg/modals/inputs.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\ninput,\ntextarea {\n  height: 30px;\n  padding: 0 7px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n}\n\ninput:focus,\ntextarea:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput.has-error,\ntextarea.has-error {\n  border-color: red;\n  margin-bottom: 0;\n}\n\n.error {\n  color: red;\n  margin-bottom: 15px;\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\n.toggle {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 10px;\n  cursor: pointer;\n  overflow: initial;\n}\n\n.toggle.non-fullwidth {\n  justify-content: initial;\n}\n\n.toggle * {\n  cursor: pointer;\n}\n\n.toggle.disabled {\n  cursor: default;\n}\n\n.toggle.disabled * {\n  cursor: default;\n}\n\n.toggle input {\n  display: none;\n}\n\n.toggle .text {\n  font-weight: 400;\n}\n\n.toggle .switch {\n  display: inline-block;\n  position: relative;\n  width: 32px;\n  height: 17px;\n}\n\n.toggle .switch:before,\n.toggle .switch:after {\n  position: absolute;\n  display: block;\n  content: '';\n}\n\n.toggle .switch:before {\n  width: 100%;\n  height: 100%;\n  border-radius: 40px;\n  background: #dadada;\n}\n\n.toggle .switch:after {\n  width: 11px;\n  height: 11px;\n  border-radius: 50%;\n  left: 3px;\n  top: 3px;\n  background: #fafafa;\n  transition: transform 0.15s ease;\n}\n\n.toggle input:checked:not(:disabled) + .switch:before {\n  background: #41b855;\n}\n\n.toggle input:checked:not(:disabled) + .switch:after {\n  transform: translateX(15px);\n}\n\n.toggle.disabled {\n  color: #b8b8b8;\n}\n`"
  },
  {
    "path": "app/fg/modals/prompt.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\n\nclass PromptModal extends LitElement {\n  constructor () {\n    super()\n    this.cbs = null\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.message = params.message || 'Please enter a value'\n    await this.requestUpdate()\n\n    if (params.default) {\n      this.shadowRoot.querySelector('input').value = params.default\n    }\n\n    // adjust height based on rendering\n    var width = this.shadowRoot.querySelector('div').clientWidth|0\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({width, height})\n  }\n\n  firstUpdated () {\n    this.shadowRoot.querySelector('input').focus()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <div class=\"wrapper\">\n        <form @submit=${this.onSubmit}>\n          <div class=\"message\">${this.message}</div>\n          <input name=\"input\">\n          <div class=\"actions\">\n            <button class=\"btn\" @click=${this.onClickCancel} type=\"button\">Cancel</button>\n            <button class=\"btn primary\" type=\"submit\">OK</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.resolve()\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n    this.cbs.resolve({value: e.target.input.value})\n  }\n}\nPromptModal.styles = [commonCSS, inputsCSS, buttonsCSS, css`\n.wrapper {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  padding: 5px 15px;\n  font-size: 16px;\n}\n\ninput {\n  width: 460px;\n  padding: 5px 6px;\n  font-size: 16px;\n  margin: 5px;\n}\n\n.actions {\n  margin: 10px 4px;\n  text-align: right;\n}\n\n.btn {\n  width: 75px;\n}\n`]\n\ncustomElements.define('prompt-modal', PromptModal)"
  },
  {
    "path": "app/fg/modals/select-drive.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\nimport spinnerCSS from './spinner.css'\n\nclass SelectDriveModal extends LitElement {\n  static get properties () {\n    return {\n      currentTitleFilter: {type: String},\n      title: {type: String},\n      description: {type: String},\n      selection: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, spinnerCSS, css`\n      .wrapper,\n      form {\n        padding: 0;\n        margin: 0;\n      }\n\n      .form-actions {\n        display: flex;\n        padding: 0px 15px 10px;\n        text-align: left;\n      }\n\n      .form-actions .left {\n        flex: 1;\n      }\n\n      .form-actions .btn.cancel {\n        margin-right: 5px;\n      }\n\n      h1.title {\n        padding: 14px 20px;\n        margin: 0;\n        border-color: #bbb;\n      }\n\n      .view {\n        overflow: hidden;\n        padding: 10px 15px;\n      }\n\n      .drive-picker .filter-container {\n        position: relative;\n        overflow: visible;\n        height: 35px;\n        margin-bottom: 4px;\n      }\n\n      .drive-picker .filter-container i {\n        position: absolute;\n        left: 15px;\n        top: 13px;\n        color: #b8b8b8;\n        z-index: 3;\n      }\n\n      .drive-picker .tag-container {\n        margin-bottom: 10px;\n        background: #eee;\n        padding: 10px;\n      }\n\n      .drive-picker .filter {\n        position: absolute;\n        left: 0;\n        top: 0;\n        border: 0;\n        margin: 0;\n        height: 35px;\n        padding: 0 35px;\n        border: 1px solid #dde;\n        border-radius: 0;\n      }\n\n      .drive-picker .filter:focus {\n        background: #fff;\n        border: 1.5px solid rgba(40, 100, 220, 0.8);\n        box-shadow: none;\n      }\n\n      .drives-list {\n        height: 350px;\n        overflow-y: auto;\n        border: 1px solid #dde;\n      }\n\n      .drives-list .loading {\n        display: flex;\n        padding: 10px;\n        align-items: center;\n        color: gray;\n      }\n\n      .drives-list .loading .spinner {\n        margin-right: 5px;\n      }\n\n      .drives-list .empty {\n        padding: 5px 10px;\n        color: gray;\n      }\n\n      .drives-list .drive {\n        display: flex;\n        align-items: center;\n        padding: 10px;\n        border-bottom: 1px solid #dde;\n      }\n\n      .drives-list .drive:last-child {\n        border-bottom: 0;\n      }\n\n      .drive .thumb {\n        display: block;\n        width: 16px;\n        height: 16px;\n        margin-right: 16px;\n      }\n\n      .drives-list .drive .title {\n        flex: 1;\n        font-size: 13px;\n      }\n\n      .drives-list .drive.selected {\n        background: #2864dc;\n        color: #fff;\n      }\n\n      .tag {\n        display: inline-block;\n        padding: 1px 5px;\n        background: #4CAF50;\n        color: #fff;\n        text-shadow: 0 1px 0px #0004;\n        border-radius: 4px;\n        font-size: 10px;\n        margin-right: 2px;\n      }\n    `]\n  }\n\n  constructor () {\n    super()\n\n    // state\n    this.currentTitleFilter = ''\n    this.selection = []\n    this.drives = undefined\n    this.reloadInterval = undefined\n\n    // params\n    this.customTitle = ''\n    this.buttonLabel = 'Select'\n    this.tag = null\n    this.writable = undefined\n    this.allowMultiple = undefined\n    this.cbs = null\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.customTitle = params.title || ''\n    this.buttonLabel = params.buttonLabel || 'Select'\n    this.tag = params.tag\n    this.writable = params.writable\n    this.allowMultiple = params.allowMultiple\n    await this.requestUpdate()\n    this.adjustHeight()\n\n    this.drives = await bg.drives.list({includeSystem: false})\n    this.drives.sort((a, b) => (a.info.title).localeCompare(b.info.title))\n\n    if (this.writable !== false && !!params.template && this.filteredDrives.length === 0) {\n      // autobounce to create\n      return this.cbs.resolve({gotoCreate: true})\n    }\n\n    await this.requestUpdate()\n    this.adjustHeight()\n\n    if (!this.reloadInterval) {\n      // periodically reload to keep listing updated\n      this.reloadInterval = setInterval(this.reload.bind(this), 3e3)\n    }\n  }\n\n  async reload () {\n    this.drives = await bg.drives.list({includeSystem: false})\n    this.drives.sort((a, b) => (a.info.title).localeCompare(b.info.title))\n    this.requestUpdate()\n  }\n\n  cleanup () {\n    if (this.reloadInterval) {\n      clearInterval(this.reloadInterval)\n      this.reloadInterval = undefined\n    }\n  }\n\n  adjustHeight () {\n    // adjust height based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  get filteredDrives () {\n    var filtered = this.drives\n    if (this.tag) filtered = filtered.filter(drive => drive.tags.includes(this.tag))\n    if (typeof this.writable === 'boolean') {\n      filtered = filtered.filter(drive => drive.info.writable === this.writable)\n    }\n    if (this.currentTitleFilter) {\n      filtered = filtered.filter(a => a.info.title && a.info.title.toLowerCase().includes(this.currentTitleFilter))\n    }\n    return filtered\n  }\n\n  get hasValidSelection () {\n    return this.selection.length > 0 || isDriveUrl(this.currentTitleFilter)\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <form @submit=${this.onSubmit}>\n          <h1 class=\"title\">${this.customTitle || 'Select a drive'}</h1>\n\n          <div class=\"view drive-picker\">\n            ${this.renderFilters()}\n            <div class=\"filter-container\">\n              <i class=\"fa fa-search\"></i>\n              <input @keyup=${this.onChangeTitleFilter} id=\"filter\" class=\"filter\" type=\"text\" placeholder=\"Search or enter the URL of a hyperdrive\">\n            </div>\n            ${isDriveUrl(this.currentTitleFilter) ? html`\n            ` : html`\n              ${this.renderDrivesList()}\n            `}\n          </div>\n\n          <div class=\"form-actions\">\n            <div class=\"left\">\n              ${this.writable !== false && !this.allowMultiple ? html`\n                <button type=\"button\" @click=${this.onClickCreate} data-content=\"newdrive\" class=\"btn\">\n                  Create new drive\n                </button>\n              ` : ''}\n            </div>\n            <div class=\"right\">\n              <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n              <button ?disabled=${!this.hasValidSelection} type=\"submit\" class=\"btn primary\" tabindex=\"5\">\n                ${this.buttonLabel}\n              </button>\n            </div>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  renderFilters () {\n    if (!this.tag && typeof this.writable === 'undefined') return ''\n    return html`\n      <div class=\"tag-container\">\n        <strong>\n          Showing drives which are\n          ${typeof this.writable !== 'undefined' ? html`\n            ${this.writable ? 'editable' : 'read-only'}\n          ` : ''}\n          ${typeof this.writable !== 'undefined' && this.tag ? ' and ' : ''}\n          ${this.tag ? html`tagged \"${this.tag}\"` : ''}\n        </strong>\n      </div>`\n  }\n\n  renderDrivesList () {\n    if (!this.drives) {\n      return html`<ul class=\"drives-list\"><li class=\"loading\"><span class=\"spinner\"></span> Loading...</li></ul>`\n    }\n\n    var filtered = this.filteredDrives\n\n    if (!filtered.length) {\n      return html`<div class=\"drives-list\"><div class=\"empty\">No drives found</div></div>`\n    }\n\n    return html`<div class=\"drives-list\">${filtered.map(a => this.renderDrive(a))}</div>`\n  }\n\n  renderDrive (drive) {\n    var isSelected = this.selection.includes(drive.url)\n    return html`\n      <div\n        class=\"drive ${isSelected ? 'selected' : ''}\"\n        @click=${this.onChangeSelecteddrive}\n        @dblclick=${this.onDblClickdrive}\n        data-url=${drive.url}\n      >\n        <img class=\"thumb\" src=\"asset:favicon:${drive.url}\">\n        <div class=\"title\">\n          ${drive.info.title || html`<em>Untitled</em>`}\n          ${drive.forkOf?.label ? html`[${drive.forkOf.label}]` : ''}\n          ${drive.tags.map(tag => html`<span class=\"tag\">${tag}</span>`)}\n        </div>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onChangeTitleFilter (e) {\n    this.currentTitleFilter = e.target.value.toLowerCase()\n  }\n\n  onChangeSelecteddrive (e) {\n    var url = e.currentTarget.dataset.url\n    if (this.allowMultiple) {\n      if (this.selection.includes(url)) {\n        this.selection = this.selection.filter(u => u !== url)\n      } else {\n        this.selection = this.selection.concat([url])\n      }\n    } else {\n      this.selection = [url]\n    }\n  }\n\n  onDblClickdrive (e) {\n    e.preventDefault()\n    this.selection = [e.currentTarget.dataset.url]\n    this.onSubmit()\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cleanup()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  onClickCreate (e) {\n    this.cleanup()\n    this.cbs.resolve({gotoCreate: true})\n  }\n\n  onSubmit (e) {\n    if (e) e.preventDefault()\n    this.cleanup()\n    if (this.selection.length) {\n      if (this.allowMultiple) {\n        this.cbs.resolve({urls: this.selection})\n      } else {\n        this.cbs.resolve({url: this.selection[0]})\n      }\n    } else {\n      let url = (new URL(this.currentTitleFilter)).origin\n      if (this.allowMultiple) {\n        this.cbs.resolve({urls: [url]})\n      } else {\n        this.cbs.resolve({url})\n      }\n    }\n  }\n}\n\ncustomElements.define('select-drive-modal', SelectDriveModal)\n\nfunction isDriveUrl (v = '') {\n  try {\n    var urlp = new URL(v)\n    return urlp.protocol === 'hyper:'\n  } catch (e) {\n    return false\n  }\n}\n"
  },
  {
    "path": "app/fg/modals/select-file.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { classMap } from '../vendor/lit-element/lit-html/directives/class-map'\nimport { joinPath } from '../../lib/strings'\nimport { createStat } from '../../bg/web-apis/fg/stat'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons2.css'\n\nconst SHORTCUTS = [\n  {url: 'virtual:my-device', title: 'My Device', icon: 'fas fa-laptop'},\n  {url: 'virtual:my-drives', title: 'My Drives', icon: 'far fa-hdd'},\n  {url: 'virtual:hosting', title: 'Hosting', icon: 'fas fa-share-alt'}\n]\n\nclass SelectFileModal extends LitElement {\n  static get properties () {\n    return {\n      path: {type: String},\n      files: {type: Array},\n      selectedPaths: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, css`\n      .title {\n        background: #fff;\n        border: 0;\n        padding: 6px;\n        text-align: center;\n        font-size: 14px;\n        font-weight: 500;\n      }\n\n      .wrapper {\n        padding: 0 15px 10px;\n      }\n\n      form {\n        padding: 0;\n        margin: 0;\n      }\n\n      .layout {\n        display: grid;\n        grid-gap: 10px;\n        grid-template-columns: 180px 1fr;\n      }\n\n      .form-actions {\n        display: flex;\n        text-align: left;\n      }\n\n      .form-actions .left {\n        flex: 1;\n      }\n\n      .form-actions .btn.cancel {\n        margin-right: 5px;\n      }\n\n      .shortcuts-list {\n        background: #f5f5fa;\n        box-sizing: border-box;\n        padding: 5px 0;\n        height: 379px;\n        overflow-y: auto;\n      }\n\n      .shortcuts-list .shortcut {\n        padding: 8px 10px;\n      }\n\n      .shortcuts-list .shortcut.selected {\n        background: #0031;\n        font-weight: 500;\n      }\n\n      .shortcuts-list .shortcut .fa-fw {\n        margin-right: 5px;\n      }\n\n      .path {\n        display: flex;\n        align-items: center;\n        padding: 0 0 4px;\n      }\n\n      .path .fa-fw {\n        margin-right: 4px;\n      }\n\n      .path > div {\n        cursor: pointer;\n        margin-right: 4px;\n        max-width: 100px;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n\n      .path > div:hover {\n        text-decoration: underline;\n      }\n\n      .filename {\n        display: flex;\n        align-items: center;\n        margin: 6px 0 10px;\n        background: #f3f3fa;\n        border-radius: 4px;\n        padding-left: 10px;\n      }\n\n      .filename label {\n        margin-right: 10px;\n        font-weight: normal;\n      }\n\n      .filename input {\n        flex: 1;\n        margin: 0;\n        font-size: 13px;\n      }\n\n      .files-list {\n        border-radius: 4px;\n        height: 378px;\n        box-sizing: border-box;\n        overflow-y: scroll;\n        border: 1px solid #ccc;\n        user-select: none;\n        cursor: default;\n        padding: 4px 0;\n        margin-bottom: 10px;\n      }\n\n      .path + .files-list {\n        height: 358px;\n      }\n\n      .files-list.grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fill, 120px);\n        grid-template-rows: repeat(auto-fill, 74px);\n        gap: 15px;\n        padding: 12px;\n      }\n\n      .files-list .item {\n        display: flex;\n        width: 100%;\n        align-items: center;\n        padding: 6px 10px;\n      }\n\n      .files-list.grid .item {\n        flex-direction: column;\n        box-sizing: border-box;\n      }\n\n      .files-list .item.disabled {\n        font-style: italic;\n        color: #aaa;\n      }\n\n      .files-list .item .fa-fw,\n      .files-list .item .favicon {\n        margin-right: 5px;\n      }\n\n      .files-list.grid .item .fa-fw {\n        font-size: 28px;\n        margin: 5px 0 10px;\n      }\n\n      .files-list.grid .item .favicon {\n        width: 32px;\n        height: 32px;\n        object-fit: cover;\n        margin: 5px 0 10px;\n      }\n\n      .files-list .item .fa-folder {\n        color: #9ec2e0;\n      }\n\n      .files-list .item .fa-file {\n        -webkit-text-stroke: 1px #9a9aab;\n        color: #fff;\n      }\n\n      .files-list .item .name {\n        flex: 1;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n\n      .files-list .item.selected {\n        background: #2864dc;\n        color: #fff;\n      }\n\n      .files-list .item.selected .fa-fw {\n        text-shadow: 0 1px 2px #0006;\n      }\n\n      .drive-changer {\n        display: flex;\n      }\n\n      .drive-changer > * {\n        border-radius: 0 !important;\n      }\n      \n      .drive-changer > *:first-child {\n        border-top-left-radius: 4px !important;\n        border-bottom-left-radius: 4px !important;\n      }\n      \n      .drive-changer > *:last-child {\n        border-top-right-radius: 4px !important;\n        border-bottom-right-radius: 4px !important;\n      }\n\n      .drive-changer input {\n        flex: 0 0 300px;\n        height: auto;\n        margin: 0;\n        border-left: 0;\n        border-right: 0;\n      }\n      `]\n  }\n\n  get isVirtualListing () {\n    return this.drive && this.drive.startsWith('virtual:')\n  }\n\n  get virtualTitle () {\n    var s = SHORTCUTS.find(s => s.url === this.drive)\n    return s ? s.title : ''\n  }\n\n  constructor () {\n    super()\n\n    // state\n    this.drives = []\n    this.path = '/'\n    this.files = []\n    this.selectedPaths = []\n    this.driveInfo = null\n    this.reloadInterval = undefined\n\n    // params\n    this.saveMode = false\n    this.drive = null\n    this.defaultPath = '/'\n    this.defaultFilename = ''\n    this.title = ''\n    this.buttonLabel = ''\n    this.select = ['file', 'folder', 'mount']\n    this.filters = {\n      extensions: undefined,\n      writable: undefined,\n      networked: undefined\n    }\n    this.allowMultiple = false\n    this.cbs = null\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.saveMode = params.saveMode\n    this.drive = params.drive || 'virtual:my-device'\n    this.path = params.defaultPath || '/'\n    this.defaultFilename = params.defaultFilename || ''\n    this.title = params.title || ''\n    this.buttonLabel = params.buttonLabel || (this.saveMode ? 'Save' : 'Select')\n    if (params.select) this.select = params.select\n    if (params.filters) {\n      if ('extensions' in params.filters) {\n        this.filters.extensions = params.filters.extensions\n      }\n      if ('writable' in params.filters) {\n        this.filters.writable = params.filters.writable\n      }\n      if ('networked' in params.filters) {\n        this.filters.networked = params.filters.networked\n      }\n    }\n    this.allowMultiple = !this.saveMode && params.allowMultiple\n    if (!this.title) {\n      if (this.saveMode) {\n        this.title = 'Save file...'\n      } else {\n        let canSelect = v => this.select.includes(v)\n        let [file, folder, mount] = [canSelect('file'), canSelect('folder'), canSelect('mount')]\n        if (file && (folder || mount)) {\n          this.title = 'Select files or folders'\n        } else if (file && !(folder || mount)) {\n          this.title = 'Select files'\n        } else if (folder) {\n          this.title = 'Select folders'\n        } else if (mount) {\n          this.title = 'Select drives'\n        }\n      }\n    }\n\n    this.driveInfo = !this.isVirtualListing ? await bg.hyperdrive.getInfo(this.drive) : undefined\n    await this.readdir()\n    this.updateComplete.then(_ => {\n      this.adjustHeight()\n      if (this.saveMode) {\n        this.filenameInput.value = this.defaultFilename\n        this.focusInput()\n        this.requestUpdate()\n      }\n    })\n\n    this.drives = await bg.drives.list()\n    this.drives.push({url: 'hyper://private/', info: {title: 'My Private Drive', writable: true}})\n    this.drives.sort((a, b) => (a.info.title || '').toLowerCase().localeCompare(b.info.title || ''))\n    if (this.isVirtualListing) {\n      this.readvirtual()\n    }\n\n    if (!this.reloadInterval) {\n      // periodically reload to keep listing updated\n      this.reloadInterval = setInterval(this.reload.bind(this), 3e3)\n    }\n  }\n\n  async reload () {\n    this.drives = await bg.drives.list()\n    this.drives.push({url: 'hyper://private/', info: {title: 'My Private Drive', writable: true}})\n    this.drives.sort((a, b) => (a.info.title || '').toLowerCase().localeCompare(b.info.title || ''))\n    this.requestUpdate()\n  }\n\n  cleanup () {\n    if (this.reloadInterval) {\n      clearInterval(this.reloadInterval)\n      this.reloadInterval = undefined\n    }\n  }\n\n  adjustHeight () {\n    // adjust height based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  focusInput () {\n    var el = this.filenameInput\n    el.focus()\n    el.selectionStart = el.selectionEnd = 0\n  }\n\n  async goto (path) {\n    this.path = path\n    await this.readdir()\n    this.selectedPaths = []\n    if (this.saveMode) {\n      this.filenameInput.value = this.defaultFilename\n      this.focusInput()\n    }\n  }\n\n  async readvirtual () {\n    const vfile = (url, icon, name) => ({\n      isVirtual: true,\n      path: url,\n      icon: url.startsWith('hyper:')\n        ? url === 'hyper://private/'\n          ? html`<img class=\"favicon\" srcset=\"beaker://assets/img/drive-types/files.png 1x, beaker://assets/img/drive-types/files-64.png 2x\">`\n          : html`<img class=\"favicon\" src=\"asset:favicon:${url}\">`\n        : html`<span class=\"fa-fw ${icon}\"></span>`,\n      name,\n      stat: {isFile: () => true, isDirectory: () => false},\n    })\n    switch (this.drive) {\n      case 'virtual:my-device':\n        this.files = [\n          vfile('virtual:my-drives', 'far fa-hdd', 'My Drives'),\n          vfile('virtual:hosting', 'fas fa-share-alt', 'Hosting')\n        ]\n        break\n      case 'virtual:my-drives':\n        this.files = this.drives.filter(d => d.info.writable).map(drive => vfile(drive.url, undefined, drive.info.title))\n        break\n      case 'virtual:hosting':\n        this.files = this.drives.filter(d => !d.info.writable).map(drive => vfile(drive.url, undefined, drive.info.title))\n        break\n    }\n  }\n\n  async readdir () {\n    if (this.isVirtualListing) {\n      return this.readvirtual()\n    }\n\n    var files = await bg.hyperdrive.readdir(joinPath(this.drive, this.path), {includeStats: true})\n    files.forEach(file => {\n      file.stat = createStat(file.stat)\n      file.path = joinPath(this.path, file.name)\n    })\n    files.sort(sortFiles)\n    this.files = files\n  }\n\n  getFile (path) {\n    return this.files.find(f => f.path === path)\n  }\n\n  canSelectFile (file) {\n    if (this.isVirtualListing) {\n      return true // can always select items in virtual lists\n    }\n    if (!this.driveInfo) {\n      return false // probably still loading\n    }\n    if (defined(this.filters.networked) && this.filters.networked !== this.driveInfo.networked) {\n      return false\n    }\n    if (defined(this.filters.writable) && this.filters.writable !== this.driveInfo.writable) {\n      return false\n    }\n    if (this.saveMode && !this.driveInfo.writable) {\n      return false\n    }\n    if (file.stat.isFile()) {\n      if (!this.select.includes('file')) {\n        return false\n      }\n      if (this.filters.extensions) {\n        let hasExt = this.filters.extensions.some(ext => file.name.endsWith(ext))\n        if (!hasExt) {\n          return false\n        }\n      }\n      return true\n    } else {\n      return this.select.includes('folder') || this.select.includes('mount')\n    }\n  }\n\n  get filenameInput () {\n    return this.shadowRoot.querySelector('input')\n  }\n\n  get hasValidSelection () {\n    if (this.saveMode) {\n      if (!this.driveInfo || !this.driveInfo.writable) return false\n      let inputValue = this.filenameInput && this.filenameInput.value\n      if (!inputValue) return false\n      let file = this.getFile(joinPath(this.path, inputValue))\n      if (file && file.stat.isDirectory()) return false\n      return true\n    } else {\n      if (this.selectedPaths.length === 0) {\n        if (this.select.includes('folder')) return true // can select current location\n        return false\n      }\n      if (this.filters.extensions) {\n        // if there's an extensions requirement,\n        // folders can still be selected but they're not valid targets\n        return this.selectedPaths.every(path => this.filters.extensions.some(ext => path.endsWith(ext)))\n      }\n      return true\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div>\n        <div class=\"title\">${this.title}</div>\n        <div class=\"wrapper\">\n          <form @submit=${this.onSubmit}>\n            ${this.saveMode\n              ? html`\n                <div class=\"filename\">\n                  <label>Save as:</label>\n                  <input type=\"text\" name=\"filename\" @keyup=${e => this.requestUpdate()}>\n                </div>\n              `\n              : ''}\n\n            <div class=\"layout\">\n              <div class=\"column-shortcuts\">\n                <div class=\"shortcuts-list\">\n                  ${SHORTCUTS.map(shortcut => this.renderShortcut(shortcut))}\n                </div>\n              </div>\n              <div class=\"column-files\">\n                <div class=\"path\">\n                  ${this.renderPath()}\n                </div>\n                ${this.renderFilesList()}\n              </div>\n            </div>\n\n            <div class=\"form-actions\">\n              <div class=\"left\">\n              <button type=\"button\" @click=${this.onClickNewDrive} class=\"btn\">Create new drive</button>\n              </div>\n              <div class=\"right\">\n                <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n                <button ?disabled=${!this.hasValidSelection} type=\"submit\" class=\"btn primary\" tabindex=\"5\">\n                  ${this.buttonLabel}\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </div>\n    `\n  }\n\n  renderShortcut (shortcut) {\n    const cls = classMap({\n      shortcut: true,\n      selected: this.drive === shortcut.url\n    })\n    return html`\n      <div\n        class=\"${cls}\"\n        @click=${this.onSelectShortcut}\n        data-url=${shortcut.url}\n      >\n        <div class=\"info\">\n          <span class=\"fa-fw ${shortcut.icon}\"></span>\n          <span class=\"name\" title=\"${shortcut.title}\">${shortcut.title}</span>\n        </div>\n      </div>\n    `\n  }\n\n  renderPath () {\n    var pathParts = this.path.split('/').filter(Boolean)\n    var pathAcc = []\n    var topTitle = this.driveInfo ? (this.driveInfo.title || 'Untitled') : this.virtualTitle\n    return [html`\n      <div @click=${e => this.onClickPath(e, '/')}>${topTitle}</div>\n      <span class=\"fa-fw fas fa-angle-right\"></span>\n    `].concat(pathParts.map(part => {\n      pathAcc.push(part)\n      var path = '/' + pathAcc.join('/')\n      return html`\n        <div  @click=${e => this.onClickPath(e, path)}>${part}</div>\n        <span class=\"fa-fw fas fa-angle-right\"></span>\n      `\n    }))\n  }\n\n  renderFilesList () {\n    return html`\n      <div class=\"files-list ${this.isVirtualListing ? 'grid' : ''}\">\n        ${this.files.map(file => this.renderFile(file))}\n      </div>\n    `\n  }\n\n  renderFile (file) {\n    // TODO mounts\n    var isSelected = this.selectedPaths.includes(file.path)\n    var disabled = !this.canSelectFile(file)\n    const cls = classMap({\n      item: true,\n      file: file.stat.isFile(),\n      folder: file.stat.isDirectory(),\n      selected: isSelected,\n      disabled\n    })\n    return html`\n      <div\n        class=\"${cls}\"\n        @click=${disabled ? undefined : this.onSelectFile}\n        @dblclick=${disabled && !file.stat.isDirectory() ? undefined : this.onDblClickFile}\n        data-path=${file.path}\n      >\n        ${file.icon ? file.icon : html`\n          <span class=\"fa-fw ${file.stat.isFile() ? 'fas fa-file' : 'fas fa-folder'}\"></span>\n        `}\n        <span class=\"name\" title=\"${file.name}\">${file.name}</span>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  async onSelectShortcut (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.drive = e.currentTarget.dataset.url\n    this.driveInfo = undefined\n    this.goto('/')\n  }\n\n  onClickPath (e, path) {\n    e.preventDefault()\n    this.goto(path)\n  }\n\n  onSelectFile (e) {\n    var path = e.currentTarget.dataset.path\n    if (this.allowMultiple && (e.ctrlKey || e.metaKey) && !this.isVirtualListing) {\n      this.selectedPaths = this.selectedPaths.concat([path])\n    } else {\n      this.selectedPaths = [path]\n    }\n    if (this.saveMode) {\n      this.filenameInput.value = path.split('/').pop()\n    }\n  }\n\n  onDblClickFile (e) {\n    e.preventDefault()\n    var file = this.getFile(e.currentTarget.dataset.path)\n    if (file.stat.isDirectory()) {\n      this.goto(file.path)\n    } else {\n      this.selectedPaths = [file.path]\n      this.onSubmit()\n    }\n  }\n\n  onClickNewDrive (e) {\n    e.preventDefault()\n    this.cleanup()\n    this.cbs.resolve({gotoCreateDrive: true})\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cleanup()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    if (e) e.preventDefault()\n\n    if (this.isVirtualListing) {\n      this.drive = this.selectedPaths[0]\n      if (this.drive.startsWith('hyper://')) {\n        this.driveInfo = await bg.hyperdrive.getInfo(this.drive)\n      }\n      return this.goto('/')\n    }\n\n    const makeSelectionObj = path => ({path, origin: this.drive, url: joinPath(this.drive, path)})\n    if (this.saveMode) {\n      let path = joinPath(this.path, this.filenameInput.value)\n      if (this.getFile(path)) {\n        if (!confirm('Overwrite this file?')) {\n          return\n        }\n      }\n      this.cleanup()\n      this.cbs.resolve(makeSelectionObj(path))\n    } else {\n      if (this.select.includes('folder') && this.selectedPaths.length === 0) {\n        // use current location\n        this.selectedPaths = [this.path]\n      }\n      this.cleanup()\n      this.cbs.resolve(this.selectedPaths.map(makeSelectionObj))\n    }\n  }\n}\n\ncustomElements.define('select-file-modal', SelectFileModal)\n\nfunction sortFiles (a, b) {\n  if (a.stat.isDirectory() && !b.stat.isDirectory()) return -1\n  if (!a.stat.isDirectory() && b.stat.isDirectory()) return 1\n  return a.name.localeCompare(b.name)\n}\n\nfunction defined (v) {\n  return typeof v !== 'undefined'\n}"
  },
  {
    "path": "app/fg/modals/setup.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\n\nconst CANVAS_SIZE = 250\n\nclass SetupModal extends LitElement {\n  static get properties () {\n    return {\n      stage: {type: Number},\n      description: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.cbs = null\n    this.stage = 1\n    this.loadedImg = null\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.stage = 1\n    bg.modals.resizeSelf({width: 900, height: 700})\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    switch (this.stage) {\n      case 2:\n        return this.renderStage2()\n      case 3:\n        return this.renderStage3()\n      case 4:\n        return this.renderStage4()\n      case 5:\n        return this.renderStage5()\n      case 1:\n      default:\n        return this.renderStage1()\n    }\n  }\n\n  renderStage1 () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"intro\">\n          <img class=\"intro-logo\" src=\"beaker://assets/logo\">\n          <h1 class=\"intro-title\">Welcome to Beaker</h1>\n          <p class=\"intro-text\">\n            The browser that <strong>does more</strong>.\n          </p>\n        </div>\n\n        <div class=\"nav-controls\">\n          <button class=\"btn transparent thick\" tabindex=\"1\" @click=${this.onClickNext}>Next <span class=\"fas fa-chevron-circle-right\"></span></button>\n        </div>\n      </div>\n    `\n  }\n\n  renderStage2 () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"intro\">\n          <h1 class=\"intro-title\" style=\"margin: 10px 0 30px; font-size: 52px;\">What can Beaker do?</h1>\n          <div class=\"feature feat1\">\n            <span class=\"feature-icon fas fa-fw fa-magic\"></span>\n            <div class=\"feature-text\">\n              <h2>Create Websites</h2>\n              <p>Make a new Website at the click of a button.</p>\n            </div>\n          </div>\n          <div class=\"feature feat2\">\n            <span class=\"feature-icon fas fa-fw fa-rss\"></span>\n            <div class=\"feature-text\">\n              <h2>Follow users</h2>\n              <p>Share status updates and follow each others' websites.</p>\n            </div>\n          </div>\n          <div class=\"feature feat3\">\n            <span class=\"feature-icon fas fa-fw fa-search\"></span>\n            <div class=\"feature-text\">\n              <h2>Search privately</h2>\n              <p>Search links shared by the users you follow.</p>\n            </div>\n          </div>\n        </div>\n\n        <div class=\"nav-controls\">\n          <button class=\"btn transparent thick\" tabindex=\"1\" @click=${this.onClickNext}>Get Started <span class=\"fas fa-chevron-circle-right\"></span></button>\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  async onClickNext (e) {\n    this.stage++\n    if (this.stage > 2) {\n      return this.cbs.resolve()\n    }\n  }\n}\nSetupModal.styles = [commonCSS, inputsCSS, buttonsCSS, css`\n/* TODO\n.wrapper {\n  padding: 10px 20px;\n  height: 100%;\n  box-sizing: border-box;\n}\n*/\n\nh1.title {\n  font-size: 25px;\n}\n\n.help-text {\n  font-style: normal;\n  font-size: 16px;\n}\n\n.intro {\n  text-align: center;\n  position: fixed;\n  left: 0;\n  top: 50%;\n  transform: translate(0%, -55%);\n  width: 100%;\n}\n\n.intro-title,\n.intro-text {\n  font-size: 46px;\n  font-weight: normal;\n  margin: 0;\n}\n\n.intro-title {\n  font-size: 64px;\n  color: rgba(0,0,0,.8);\n}\n\n.intro-text {\n  color: #354cca;\n}\n\n.intro-logo {\n  margin: 0 0 60px;\n}\n\n.feature {\n  display: flex;\n  align-items: center;\n  text-align: left;\n  padding: 6px 40px 10px;\n  margin: 10px 50px;\n  font-size: 15px;\n}\n\n.feature-icon {\n  margin-right: 40px;\n  font-size: 40px;\n}\n\n.feature p {\n  font-size: 16px;\n}\n\n.feat1 .fas,\n.feat1 h2 {\n  color: #E91E63;\n}\n\n.feat2 .fas,\n.feat2 h2 {\n  color: #3F51B5;\n}\n\n.feat3 .fas,\n.feat3 h2 {\n  color: #2196F3;\n}\n\n.nav-controls {\n  position: fixed;\n  bottom: 20px;\n  right: 20px;\n}\n\n.nav-controls .btn {\n  font-size: 16px;\n  padding: 0 20px;\n  height: 40px;\n}\n`]\n\ncustomElements.define('setup-modal', SetupModal)"
  },
  {
    "path": "app/fg/modals/spinner.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\n.spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n`"
  },
  {
    "path": "app/fg/modals/tooltip.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nconst cssStr = css`\n*[data-tooltip] {\n  position: relative;\n}\n\n*[data-tooltip]:hover:before,\n*[data-tooltip]:hover:after {\n  display: block;\n  z-index: 1000;\n  transition: opacity 0.01s ease;\n  transition-delay: .2s;\n}\n\n*[data-tooltip]:hover:after {\n  opacity: 1;\n}\n\n*[data-tooltip]:hover:before {\n  transform: translate(-50%, 0);\n  opacity: 1;\n}\n\n*[data-tooltip]:before {\n  opacity: 0;\n  transform: translate(-50%, 0);\n  position: absolute;\n  top: 33px;\n  left: 50%;\n  z-index: 3000;\n  content: attr(data-tooltip);\n  background: rgba(17, 17, 17, 0.95);\n  font-size: 0.7rem;\n  border: 0;\n  border-radius: 4px;\n  padding: 7px 10px;\n  color: rgba(255, 255, 255, 0.925);\n  text-transform: none;\n  text-align: center;\n  font-weight: 500;\n  white-space: pre;\n  line-height: 1;\n  pointer-events: none;\n}\n\n*[data-tooltip]:after {\n  opacity: 0;\n  position: absolute;\n  left: calc(50% - 6px);\n  top: 28px;\n  content: '';\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid rgba(17, 17, 17, 0.95);\n  pointer-events: none;\n}\n\n.tooltip-nodelay[data-tooltip]:hover:before,\n.tooltip-nodelay[data-tooltip]:hover:after {\n  transition-delay: initial;\n}\n\n.tooltip-right[data-tooltip]:before {\n  top: 50%;\n  left: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-right[data-tooltip]:after {\n  top: 50%;\n  left: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-right: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-left[data-tooltip]:before {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-left[data-tooltip]:after {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-left: 6px solid rgba(17, 17, 17, 0.95);\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/fg/modals/user-editor.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\nimport defaultUserThumbJpg from '../lib/default-user-thumb.jpg'\n\nclass UserEditorModal extends LitElement {\n  static get properties () {\n    return {\n      thumbDataURL: {type: String},\n      thumbExt: {type: String},\n      title: {type: String},\n      description: {type: String},\n      errors: {type: Object}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n    \n    h1.title {\n      font-size: 17px;\n      padding: 14px 20px;\n      margin: 0;\n      border-color: #bbb;\n    }\n    \n    form {\n      padding: 14px 20px;\n      margin: 0;\n    }\n    \n    input {\n      font-size: 14px;\n      height: 34px;\n      padding: 0 10px;\n      border-color: #bbb;\n    }\n    \n    .img-ctrl {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n    }\n    \n    img {\n      border-radius: 50%;\n      object-fit: cover;\n      width: 130px;\n      height: 130px;\n      margin-bottom: 10px;\n    }\n    \n    input[type=\"file\"] {\n      display: none;\n    }\n    \n    .form-actions {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      text-align: left;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = null\n    this.userUrl = ''\n    this.thumbDataURL = undefined\n    this.thumbExt = undefined\n    this.title = ''\n    this.description = ''\n    this.errors = {}\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.userUrl = params.url || ''\n    this.title = params.title || ''\n    this.description = params.description || ''\n    if (!this.userUrl) {\n      // use default thumb\n      this.thumbDataURL = defaultUserThumbJpg\n      this.thumbExt = 'jpg'\n    }\n    this.errors = {}\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <div class=\"wrapper\">\n        <h1 class=\"title\">${this.userUrl ? 'Edit' : 'New'} user</h1>\n\n        <form @submit=${this.onSubmit}>\n          <div class=\"img-ctrl\">\n            <img src=${this.thumbDataURL || `asset:thumb:${this.userUrl}?cache_buster=${Date.now()}`}>\n            <input type=\"file\" accept=\".jpg,.jpeg,.png\" @change=${this.onChooseThumbFile}>\n            <button type=\"button\" @click=${this.onClickChangeThumb} class=\"btn\" tabindex=\"4\">Choose Picture</button>\n          </div>\n\n          <label for=\"title\">Name</label>\n          <input autofocus name=\"title\" tabindex=\"2\" value=${this.title || ''} placeholder=\"Name\" @change=${this.onChangeTitle} class=${this.errors.title ? 'has-error' : ''} />\n          ${this.errors.title ? html`<div class=\"error\">${this.errors.title}</div>` : ''}\n\n          <label for=\"description\">Bio / Description</label>\n          <input name=\"description\" tabindex=\"3\" placeholder=\"Bio / Description (optional)\" @change=${this.onChangeDescription} class=${this.errors.description ? 'has-error' : ''} value=${this.description || ''}>\n          ${this.errors.description ? html`<div class=\"error\">${this.errors.description}</div>` : ''}\n\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n            <button type=\"submit\" class=\"btn primary\" tabindex=\"5\">Create User</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  updated () {\n    // adjust size based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  onClickChangeThumb (e) {\n    e.preventDefault()\n    this.shadowRoot.querySelector('input[type=\"file\"]').click()\n  }\n\n  onChooseThumbFile (e) {\n    var file = e.currentTarget.files[0]\n    if (!file) return\n    var fr = new FileReader()\n    fr.onload = () => {\n      this.thumbExt = file.name.split('.').pop()\n      this.thumbDataURL = /** @type string */(fr.result)\n    }\n    fr.readAsDataURL(file)\n  }\n\n  onChangeTitle (e) {\n    this.title = e.target.value.trim()\n  }\n\n  onChangeDescription (e) {\n    this.description = e.target.value.trim()\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n\n    // validate\n    this.errors = {}\n    if (!this.title) this.errors.title = 'Required'\n    if (Object.keys(this.errors).length > 0) {\n      return this.requestUpdate()\n    }\n\n    try {\n      var thumbBase64 = this.thumbDataURL ? this.thumbDataURL.split(',').pop() : undefined\n      this.cbs.resolve({\n        title: this.title,\n        description: this.description,\n        thumbBase64,\n        thumbExt: this.thumbExt\n      })\n    } catch (e) {\n      this.cbs.reject(e.message || e.toString())\n    }\n  }\n}\n\ncustomElements.define('user-editor-modal', UserEditorModal)"
  },
  {
    "path": "app/fg/modals/user-select.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { classMap } from '../vendor/lit-element/lit-html/directives/class-map'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\n\nclass UserSelectModal extends LitElement {\n  static get properties () {\n    return {\n      selection: {type: String}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, css`\n    .wrapper {\n      padding: 0;\n    }\n\n    h1.title {\n      font-size: 17px;\n      padding: 14px 20px;\n      border-color: #bbb;\n      margin: 0;\n    }\n\n    form {\n      padding: 0;\n      margin: 0;\n    }\n\n    .users {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, 150px);\n      gap: 14px 4px;\n      padding: 14px 20px;\n      max-height: 300px;\n      overflow: auto;\n      box-sizing: border-box;\n      border-bottom: 1px solid #bbb;\n    }\n\n    .user {\n      text-align: center;\n    }\n\n    .user .title {\n      font-size: 15px;\n      max-width: 150px;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n    \n    .user.selected .title span {\n      display: inline-block;\n      padding: 0 4px;\n      border-radius: 4px;\n    }\n\n    .user img,\n    .user .create-img {\n      border-radius: 50%;\n      object-fit: cover;\n      width: 100px;\n      height: 100px;\n      margin-bottom: 10px;\n      box-sizing: border-box;\n    }\n\n    .user .create-img {\n      margin: 0 auto 10px;\n      background: #f3f3f8;\n      color: #0003;\n      font-size: 30px;\n      padding: 36px 0;\n    }\n\n    .user.selected .title span {\n      background: #2864dc;\n      color: #fff;\n    }\n\n    .form-actions {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 14px 20px;\n      text-align: left;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.cbs = null\n    this.users = []\n    this.selection = undefined\n  }\n\n  async init (params, cbs) {\n    this.cbs = cbs\n    this.users = params.users || []\n    this.selection = undefined\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <h1 class=\"title\">New session</h1>\n\n        <form @submit=${this.onSubmit}>\n          <div class=\"users\">\n            ${repeat(this.users, user => this.renderUser(user))}\n            ${this.renderCreateUser()}\n          </div>\n\n          <div class=\"form-actions\">\n            <button type=\"button\" @click=${this.onClickCancel} class=\"btn cancel\" tabindex=\"4\">Cancel</button>\n            <button type=\"submit\" class=\"btn primary\" tabindex=\"5\" ?disabled=${!this.selection}>OK</button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  renderUser (user) {\n    var selected = this.selection === user.url\n    return html`\n      <div class=${classMap({user: true, selected})} @click=${e => { this.selection = user.url }}>\n        <img src=\"${user.url}/thumb\">\n        <div class=\"title\"><span>${user.title}</span></div>\n      </div>\n    `\n  }\n\n  renderCreateUser () {\n    var selected = this.selection === 'create'\n    return html`\n      <div class=${classMap({user: true, selected})} @click=${e => { this.selection = 'create' }}>\n        <div class=\"create-img\"><span class=\"fas fa-plus\"></span></div>\n        <div class=\"title\"><span>New User</span></div>\n      </div>\n    `\n  }\n\n  // event handlers\n  // =\n\n  updated () {\n    // adjust size based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.modals.resizeSelf({height})\n  }\n\n  onClickCancel (e) {\n    e.preventDefault()\n    this.cbs.reject(new Error('Canceled'))\n  }\n\n  async onSubmit (e) {\n    e.preventDefault()\n    if (this.selection === 'create') {\n      this.cbs.resolve({gotoCreate: true})\n    } else {\n      this.cbs.resolve({url: this.selection})\n    }\n  }\n}\n\ncustomElements.define('user-select-modal', UserSelectModal)"
  },
  {
    "path": "app/fg/overlay/index.html",
    "content": "<html>\n  <head>\n    <style>\n      html, body {\n        background: transparent;\n        margin: 0;\n        padding: 0;\n      }\n      body {\n        display: none;\n        font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n        font-size: 12px;\n        overflow: hidden;\n      }\n      #text {\n        position: relative;\n        white-space: pre;\n        margin-top: 1px;\n        box-sizing: border-box;\n        padding: 4px 8px 4px;\n        height: calc(100% - 6px);\n        color: #555;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        border: 1px solid #bbb;\n        border-radius: 4px;\n        letter-spacing: 0.5px;\n        background: #fff;\n      }\n      #text.left-arrow {\n        overflow: visible;\n        margin-left: 5px;\n      }\n      #text.left-arrow::before {\n        content: '';\n        position: absolute;\n        left: -5px;\n        top: 8px;\n        width: 8px;\n        height: 8px;\n        background: #fff;\n        transform: rotate(45deg);\n        border-left: 1px solid #bbb;\n        border-bottom: 1px solid #bbb;\n        z-index: 1;\n      }\n      #text.top-arrow {\n        overflow: visible;\n        margin-top: 5px;\n      }\n      #text.top-arrow::before {\n        content: '';\n        position: absolute;\n        top: -5px;\n        left: calc(50% - 4px);\n        width: 8px;\n        height: 8px;\n        background: #fff;\n        transform: rotate(45deg);\n        border-left: 1px solid #bbb;\n        border-top: 1px solid #bbb;\n        z-index: 1;\n      }\n      #text.multi-line {\n        overflow: visible;\n        white-space: initial;\n      }\n      #text.centered {\n        text-align: center;\n      }\n    </style>\n    <script>\n      window.set = opts => {\n        if (opts?.leftArrow) text.classList.add('left-arrow')\n        else text.classList.remove('left-arrow')\n        if (opts?.topArrow) text.classList.add('top-arrow')\n        else text.classList.remove('top-arrow')\n        if (opts?.centered) text.classList.add('centered')\n        else text.classList.remove('centered')\n        if (opts?.multiLine) text.classList.add('multi-line')\n        else text.classList.remove('multi-line')\n        if (opts?.value) {\n          text.innerHTML = opts.value\n          document.body.style.display = 'block'\n        } else {\n          text.innerHTML = ''\n          document.body.style.display = 'none'\n        }\n      }\n    </script>\n  </head>\n  <body><div id=\"text\"></div></body>\n</html>"
  },
  {
    "path": "app/fg/perm-prompt/bg-process-rpc.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport browserManifest from '../../bg/web-apis/manifests/internal/browser'\nimport hyperdriveManifest from '../../bg/web-apis/manifests/external/hyperdrive'\nimport permPromptManifest from '../../bg/rpc-manifests/perm-prompt'\n\nexport const beakerBrowser = rpc.importAPI('beaker-browser', browserManifest)\nexport const hyperdrive = rpc.importAPI('hyperdrive', hyperdriveManifest)\nexport const permPrompt = rpc.importAPI('background-process-perm-prompt', permPromptManifest)"
  },
  {
    "path": "app/fg/perm-prompt/buttons.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\nbutton {\n  background: transparent;\n  border: 0;\n  padding: 0;\n}\n\nbutton:focus {\n  outline: 0;\n}\n\nbutton:disabled {\n  opacity: 0.5;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: #333;\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer !important;\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: #707070;\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: #333;\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.5);\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  cursor: default;\n  background: #fafafa;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n`"
  },
  {
    "path": "app/fg/perm-prompt/index.html",
    "content": "<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n    <style>\n    body {\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      margin: 0;\n      font-size: 12px;\n      color: rgba(0, 0, 0, 0.8);\n      background: transparent;\n      overflow: hidden;\n    }\n    perm-prompt {\n      display: block;\n      background: #fff;\n      border: 1px solid #bbb;\n      border-radius: 4px;\n      box-shadow: 0 2px 4px rgba(0,0,0,.4);\n      margin: 0 10px 10px;\n      overflow: hidden;\n    }\n    </style>\n  </head>\n  <body>\n    <perm-prompt></perm-prompt> <!-- this tag will be defined in the preload script -->\n  </body>\n</html>"
  },
  {
    "path": "app/fg/perm-prompt/index.js",
    "content": "/* globals customElements */\nimport { PERMS, PERM_ICONS, renderPermDesc, getPermId, getPermParam } from '../../lib/permissions'\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport prettyHash from 'pretty-hash'\nimport * as bg from './bg-process-rpc'\nimport buttonsCSS from './buttons.css'\n\nconst IS_DRIVE_KEY_REGEX = /^[0-9a-f]{64}$/i\n\nclass PermPrompt extends LitElement {\n  constructor () {\n    super()\n    this.resolve = null\n    this.url = null\n    this.permId = null\n    this.permParam = null\n    this.permOpts = null\n    this.isPermExperimental = false\n\n    // export interface\n    window.isPromptActive = false\n    window.runPrompt = this.runPrompt.bind(this)\n    window.clickAccept = () => this.shadowRoot.querySelector('.prompt-accept').click()\n    window.clickReject = () => this.shadowRoot.querySelector('.prompt-reject').click()\n\n    this.fetchBrowserInfo()\n  }\n\n  async fetchBrowserInfo () {\n    // fetch platform information\n    var {platform} = await bg.beakerBrowser.getInfo()\n    window.platform = platform\n    if (platform === 'darwin') {\n      document.body.classList.add('darwin')\n    }\n    if (platform === 'win32') {\n      document.body.classList.add('win32')\n    }\n  }\n\n  async runPrompt ({permission, url, opts}) {\n    window.isPromptActive = true\n\n    // lookup the perm description. auto-deny if it's not a known perm.\n    this.url = url\n    this.permId = getPermId(permission)\n    this.permParam = getPermParam(permission)\n    this.permOpts = opts || {}\n    const PERM = PERMS[this.permId]\n    if (!PERM) return false\n    this.isPermExperimental = PERM.experimental\n    this.isPermDangerous = !!PERM.dangerous\n\n    // fetch dat title if needed\n    if (!this.permOpts.title && IS_DRIVE_KEY_REGEX.test(this.permParam)) {\n      let driveKey = this.permParam\n      let driveInfo\n      try { driveInfo = await bg.hyperdrive.getInfo(driveKey) }\n      catch (e) { /* ignore */ }\n      this.permOpts.title = driveInfo && driveInfo.title ? driveInfo.title : prettyHash(this.permParam)\n    }\n\n    // create the prompt\n    await this.requestUpdate()\n\n    // adjust height based on rendering\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.permPrompt.resizeSelf({height})\n\n    // setup promise\n    return new Promise(resolve => {\n      this.resolve = resolve\n    }).then(v => {\n      window.isPromptActive = false\n      return v\n    })\n  }\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\" @contextmenu=${this.onContextMenu}>\n        <p>This site wants to:</p>\n        <p class=\"perm\">\n          <i class=\"${PERM_ICONS[this.permId]}\"></i>\n          ${renderPermDesc({bg, html, url: this.url, permId: this.permId, permParam: this.permParam, permOpts: this.permOpts})}\n        </p>\n\n        <div class=\"prompt-btns\">\n          <button class=\"btn prompt-reject\" @click=${this.onClickDecision(false)}>Block</button>\n          <button class=\"btn primary prompt-accept\" @click=${this.onClickDecision(true)}>Allow</button>\n        </div>\n\n        ${this.isPermExperimental\n          ? html`\n            <div class=\"perm-experimental\">\n              <i class=\"fa fa-info-circle\"></i>\n              <span>This page is requesting an experimental feature. Only click 'Allow' if you trust this page.</span>\n            </div>`\n          : ''}\n        ${this.isPermDangerous\n          ? html`\n            <div class=\"perm-experimental\">\n              <i class=\"fa fa-info-circle\"></i>\n              <span>Only click 'Allow' if you trust this page.</span>\n            </div>`\n          : ''}\n      </div>\n    `\n  }\n\n  onContextMenu (e) {\n    e.preventDefault() // disable context menu\n  }\n\n  onClickDecision (v) {\n    return e => this.resolve(v)\n  }\n}\nPermPrompt.styles = [buttonsCSS, css`\n.wrapper {\n  padding: 16px;\n}\n\na {\n  cursor: pointer;\n  color: blue;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\np {\n  margin-top: 0;\n  font-weight: 500;\n  font-size: 12.5px;\n  word-break: break-word;\n}\n\np.perm {\n  font-weight: 400;\n}\n\np.perm::first-letter {\n  text-transform: uppercase;\n}\n\np.perm i {\n  margin-right: 3px;\n  color: #777;\n  font-size: 13px;\n}\n\n.perm-experimental {\n  display: flex;\n  background: #dfe8fa;\n  color: #335291;\n  font-size: 12.5px;\n  padding: 10px;\n  margin: 15px -15px -15px;\n}\n\n.perm-experimental i {\n  color: #335291;\n  padding-right: 8px;\n  padding-top: 5px;\n}\n\n.prompt-btns {\n  text-align: right;\n}\n\n.prompt-btns button {\n  margin-left: 5px;\n}\n`]\n\ncustomElements.define('perm-prompt', PermPrompt)\n"
  },
  {
    "path": "app/fg/prompts/bg-process-rpc.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport promptsManifest from '../../bg/rpc-manifests/prompts'\nimport hyperdriveManifest from '../../bg/web-apis/manifests/external/hyperdrive'\n\nexport const prompts = rpc.importAPI('background-process-prompts', promptsManifest)\nexport const hyperdrive = rpc.importAPI('hyperdrive', hyperdriveManifest)"
  },
  {
    "path": "app/fg/prompts/buttons.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\nbutton {\n  background: #fff;\n  border: 1px solid #d4d7dc;\n  border-radius: 3px;\n  box-shadow: 0 1px 1px rgba(0,0,0,.05);\n  padding: 5px 10px;\n  color: #333;\n  outline: 0;\n}\n\nbutton:active {\n  background: #eee;\n}\n\nbutton:hover {\n  background: #f5f5f5;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.5);\n  background: #6d6d79;\n  color: rgba(255,255,255,1);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: #5289f7;\n  border-color: #2864dc;\n  color: #fff;\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton[disabled] {\n  border-color: #d4d7dc;\n  background: #fff;\n  color: #999;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: #6d6d79;\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: flex;\n  margin: 0 6px;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/fg/prompts/index.html",
    "content": "<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n    <style>\n    body {\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      margin: 0;\n      font-size: 12px;\n      background: transparent;\n      color: rgba(0, 0, 0, 0.8);\n      overflow: hidden;\n      user-select: none;\n      -webkit-app-region: no-drag;\n    }\n    prompts-wrapper {\n      display: block;\n      background: #fff;\n      border: 1px solid #bbb;\n      border-radius: 4px;\n      margin: 0 10px 10px;\n      overflow: hidden;\n    }\n    </style>\n  </head>\n  <body>\n    <prompts-wrapper></prompts-wrapper> <!-- this tag will be defined in the preload script -->\n  </body>\n</html>"
  },
  {
    "path": "app/fg/prompts/index.js",
    "content": "/* globals customElements */\nimport { LitElement, html } from '../vendor/lit-element/lit-element'\nimport './progress'\n\nclass PromptsWrapper extends LitElement {\n  static get properties () {\n    return {\n      currentPrompt: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentParams = null\n\n    // export interface\n    const reset = (name) => {\n      if (!name.endsWith('-prompt')) name += '-prompt'\n      try { this.shadowRoot.querySelector(name).reset() }\n      catch (e) { /* ignore */ }\n    }\n    const init = (name) => {\n      try { return this.shadowRoot.querySelector(name).init(this.currentParams) }\n      catch (e) { console.log(e) /* ignore */ }\n    }\n    window.showPrompt = async (v, params) => {\n      this.currentPrompt = v\n      this.currentParams = params\n      reset(`${v}-prompt`)\n      await this.updateComplete\n      await init(`${v}-prompt`)\n    }\n    window.reset = reset\n  }\n\n  render () {\n    return html`<div @contextmenu=${this.onContextMenu}>${this.renderPrompt()}</div>`\n  }\n\n  renderPrompt () {\n    switch (this.currentPrompt) {\n      case 'progress':\n        return html`<progress-prompt></progress-prompt>`\n    }\n    return html`<div></div>`\n  }\n\n  onContextMenu (e) {\n    e.preventDefault() // disable context menu\n  }\n}\n\ncustomElements.define('prompts-wrapper', PromptsWrapper)"
  },
  {
    "path": "app/fg/prompts/progress.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport _get from 'lodash.get'\nimport * as bg from './bg-process-rpc'\n\nclass ProgressPrompt extends LitElement {\n  static get properties () {\n    return {\n      label: {type: String},\n      progress: {type: Number}\n    }\n  }\n\n  static get styles () {\n    return [css`\n      .wrapper {\n        display: flex;\n        align-items: center;\n        overflow: hidden;\n        padding: 10px 16px;\n      }\n      .wrapper span {\n        margin-right: 10px;\n      }\n      .wrapper progress {\n        flex: 1;\n      }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.reset()\n  }\n\n  reset () {\n    this.label = 'Working...'\n    this.progress = 0\n  }\n\n  async init (params) {\n    this.label = params.label\n    window.updateProgress = p => this.progress = p\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    let pct = (this.progress * 100)|0\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <span>${this.label}</span>\n        <progress max=\"100\" value=${pct}> ${pct}% </progress>\n      </div>\n    `\n  }\n}\n\ncustomElements.define('progress-prompt', ProgressPrompt)\n"
  },
  {
    "path": "app/fg/shell-menus/background-tray.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\nimport buttonsCSS from './buttons2.css'\nimport spinnerCSS from './spinner.css'\n\nclass BackgroundTrayMenu extends LitElement {\n  static get properties () {\n    return {\n      tabs: {type: String},\n      keyboardFocused: {type: Number}\n    }\n  }\n\n  constructor () {\n    super()\n    this.$onGlobalKeyup = this.onGlobalKeyup.bind(this)\n    this.reset()\n  }\n\n  reset () {\n    this.tabs = undefined\n    this.keyboardFocused = -1\n    window.removeEventListener('keyup', this.$onGlobalKeyup)\n  }\n\n  async init (params) {\n    window.addEventListener('keyup', this.$onGlobalKeyup)\n    this.tabs = await bg.views.getBackgroundTabs()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.tabs) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"wrapper\">\n          <div class=\"header\"><h1>Minimized Tabs</h1></div>\n          <span class=\"spinner\"></span>\n        </div>\n      `\n    }\n    if (!this.tabs.length) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"wrapper\">\n          <div class=\"header\"><h1>Minimized Tabs</h1></div>\n          <div class=\"empty\">You can minimize tabs to this tray and they will run in the background.</div>\n        </div>\n      `\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"header\"><h1>Minimized Tabs</h1></div>\n        <div class=\"tabs\">\n          ${repeat(this.tabs, (tab, i) => html`\n            <div\n              class=\"tab ${this.keyboardFocused === i ? 'keyboard-focus' : ''}\"\n              @click=${e => this.onClickRestore(e, i)}\n              @contextmenu=${e => this.onContextMenuTab(e, i)}\n            >\n              <img src=\"asset:favicon:${tab.url}\">\n              <div class=\"title\">${tab.title || '-'}</div>\n              <div class=\"url\">${tab.url || html`<em>Loading...</em>`}</div>\n            </div>\n          `)}\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  updated () {\n    // adjust dimensions based on rendering\n    var width = this.shadowRoot.querySelector('div').clientWidth|0\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.shellMenus.resizeSelf({width, height})\n  }\n\n  onGlobalKeyup (e) {\n    if (!this.tabs) return\n    if ((e.key === 'ArrowUp' || e.key === 'ArrowDown') && this.keyboardFocused === -1) {\n      this.keyboardFocused = 0\n      return\n    }\n    if (e.key === 'ArrowUp') {\n      if (this.keyboardFocused > 0) {\n        this.keyboardFocused--\n      }\n    } else if (e.key === 'ArrowDown') {\n      if (this.keyboardFocused < this.tabs.length - 1) {\n        this.keyboardFocused++\n      }\n    } else if (e.key === 'Enter') {\n      this.onClickRestore(undefined, this.keyboardFocused)\n    }\n  }\n\n  async onContextMenuTab (e, index) {\n    var menu = [\n      {id: 'restore', label: 'Restore tab'},\n      {id: 'close', label: 'Close tab'}\n    ]\n    var choice = await bg.beakerBrowser.showContextMenu(menu)\n    if (choice === 'restore') this.onClickRestore(undefined, index)\n    if (choice === 'close') this.onClickClose(undefined, index)\n  }\n\n  onClickRestore (e, index) {\n    bg.views.restoreBgTab(index)\n    bg.shellMenus.close()\n  }\n\n  onClickClose (e, index) {\n    bg.views.closeBgTab(index)\n    this.tabs.splice(index, 1)\n    this.requestUpdate()\n  }\n}\nBackgroundTrayMenu.styles = [buttonsCSS, spinnerCSS, css`\n.wrapper {\n  width: 350px;\n  background: var(--bg-color--bgtabs--main);\n}\n\n.header {\n  padding: 6px 7px;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.header h1 {\n  font-size: 0.725rem;\n  font-weight: 500;\n  margin: 0;\n}\n\n.spinner {\n  margin: 12px;\n}\n\n.empty {\n  padding: 10px 22px 10px 12px;\n  color: var(--text-color--menus-wrapper--light);\n}\n\n.tabs {\n  max-height: 320px;\n  overflow-y: auto;\n}\n\n.tab {\n  display: flex;\n  align-items: center;\n  padding: 10px 6px;\n  border-bottom: 1px solid var(--border-color--default);\n  cursor: pointer;\n}\n\n.tab.keyboard-focus,\n.tab:hover {\n  background: var(--bg-color--bgtabs--active);\n}\n\n.tab.keyboard-focus {\n  box-shadow: 0 0 3px #0005;\n}\n\n.tab:last-child {\n  border-bottom: 0;\n}\n\n.tab * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.tab img {\n  width: 16px;\n  height: 16px;\n  object-fit: cover;\n  margin-right: 5px;\n}\n\n.tab .title {\n  flex: 1;\n  font-weight: 500;\n}\n\n.tab .url {\n  flex: 1;\n  color: var(--text-color--menus-wrapper--light);\n}\n`]\n\ncustomElements.define('background-tray-menu', BackgroundTrayMenu)\n"
  },
  {
    "path": "app/fg/shell-menus/bg-process-rpc.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport browserManifest from '../../bg/web-apis/manifests/internal/browser'\nimport drivesManifest from '../../bg/web-apis/manifests/internal/drives'\nimport bookmarksManifest from '../../bg/web-apis/manifests/internal/bookmarks'\nimport folderSyncManifest from '../../bg/web-apis/manifests/internal/folder-sync'\nimport historyManifest from '../../bg/web-apis/manifests/internal/history'\nimport sitedataManifest from '../../bg/web-apis/manifests/internal/sitedata'\nimport downloadsManifest from '../../bg/web-apis/manifests/internal/downloads'\nimport hyperdriveManifest from '../../bg/web-apis/manifests/external/hyperdrive'\nimport shellManifest from '../../bg/web-apis/manifests/external/shell'\nimport beakerFsManifest from '../../bg/web-apis/manifests/internal/beaker-filesystem'\nimport shellMenusManifest from '../../bg/rpc-manifests/shell-menus'\nimport viewsManifest from '../../bg/rpc-manifests/views'\n\nexport const beakerBrowser = rpc.importAPI('beaker-browser', browserManifest)\nexport const drives = rpc.importAPI('drives', drivesManifest)\nexport const bookmarks = rpc.importAPI('bookmarks', bookmarksManifest)\nexport const folderSync = rpc.importAPI('folder-sync', folderSyncManifest)\nexport const history = rpc.importAPI('history', historyManifest)\nexport const sitedata = rpc.importAPI('sitedata', sitedataManifest)\nexport const downloads = rpc.importAPI('downloads', downloadsManifest)\nexport const hyperdrive = rpc.importAPI('hyperdrive', hyperdriveManifest)\nexport const shell = rpc.importAPI('shell', shellManifest)\nexport const beakerFs = rpc.importAPI('beaker-filesystem', beakerFsManifest)\nexport const shellMenus = rpc.importAPI('background-process-shell-menus', shellMenusManifest)\nexport const views = rpc.importAPI('background-process-views', viewsManifest)"
  },
  {
    "path": "app/fg/shell-menus/bookmark.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons.css'\n\nclass BookmarkMenu extends LitElement {\n  static get properties () {\n    return {\n      href: {type: String},\n      title: {type: String},\n      pinned: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.reset()\n  }\n\n  reset () {\n    this.bookmark = null\n    this.href = ''\n    this.title = ''\n    this.pinned = false\n    this.existingBookmark = undefined\n  }\n\n  async init (params) {\n    this.existingBookmark = await bg.bookmarks.get(params.url)\n    if (this.existingBookmark) {\n      this.href = this.existingBookmark.href || params.url\n      this.title = this.existingBookmark.title || params.metadata.title || ''\n      this.pinned = this.existingBookmark.pinned\n    } else {\n      this.href = params.url\n      this.title = params.metadata && params.metadata.title ? params.metadata.title : ''\n    }\n    await this.requestUpdate()\n\n    // focus and highlight input\n    var input = this.shadowRoot.querySelector('input[type=text]')\n    input.focus()\n    input.setSelectionRange(0, input.value.length)\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <form @submit=${this.onSaveBookmark}>\n          <div class=\"input-group\">\n            <label for=\"title\">Title</label>\n            <input type=\"text\" name=\"title\" placeholder=\"Title\" value=\"${this.title}\" @keyup=${this.onChangeTitle}/>\n          </div>\n\n          <div class=\"input-group\">\n            <label for=\"href\">URL</label>\n            <input type=\"text\" name=\"href\" placeholder=\"Title\" value=\"${this.href}\" @keyup=${this.onChangeHref}/>\n          </div>\n\n          <div class=\"input-group\" style=\"margin: 5px 0\">\n            <label for=\"pinned-checkbox\">\n              <input id=\"pinned-checkbox\" type=\"checkbox\" name=\"pinned\" value=\"1\" ?checked=${this.pinned} @change=${this.onChangePinned}/>\n              Pin to start page\n            </label>\n          </div>\n\n          <div class=\"buttons\">\n            <button type=\"button\" class=\"btn remove\" @click=${this.onClickCancel}>\n              ${this.existingBookmark ? 'Delete' : 'Cancel'}\n            </button>\n            <button class=\"btn primary\" type=\"submit\">\n              ${this.existingBookmark ? 'Save' : 'Done'}\n            </button>\n          </div>\n        </form>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  async onSaveBookmark (e) {\n    e.preventDefault()\n    if (this.existingBookmark && this.href !== this.existingBookmark.href) {\n      await bg.bookmarks.remove(this.existingBookmark.href)\n    }\n    await bg.bookmarks.add({\n      href: this.href,\n      title: this.title,\n      pinned: this.pinned\n    })\n    bg.views.refreshState('active')\n    bg.shellMenus.close()\n  }\n\n  async onClickCancel (e) {\n    e.preventDefault()\n    if (this.existingBookmark) {\n      await bg.bookmarks.remove(this.href)\n      bg.views.refreshState('active')\n    }\n    bg.shellMenus.close()\n  }\n\n  onChangeHref (e) {\n    this.href = e.target.value\n  }\n\n  onChangeTitle (e) {\n    this.title = e.target.value\n  }\n\n  onChangePinned (e) {\n    this.pinned = !this.pinned\n  }\n}\nBookmarkMenu.styles = [commonCSS, inputsCSS, buttonsCSS, css`\n.wrapper {\n  box-sizing: border-box;\n  padding: 15px 15px 0;\n  height: 195px;\n  overflow: hidden;\n}\n\nform {\n  font-size: 13px;\n  margin: 0;\n}\n\n.input-group {\n  display: flex;\n  flex-direction: column;\n  margin-bottom: 10px;\n}\n\n.input-group label {\n  display: block;\n  font-size: 12px;\n  margin-bottom: 2px;\n}\n\n.input-group input,\n.input-group textarea {\n  display: inline-block;\n  font-size: 0.725rem;\n}\n\n.input-group textarea {\n  height: 50px;\n  padding-top: 5px;\n  resize: none;\n}\n\n.input-group input[type=text] {\n  height: 28px;\n  line-height: 28px;\n}\n\n.input-group input[type=checkbox] {\n  display: inline;\n  width: auto;\n  height: auto;\n  margin: 0 5px;\n  position: relative;\n  top: 2px;\n}\n\n.buttons {\n  display: flex;\n  justify-content: flex-end;\n  padding: 0;\n  margin: 15px -20px 0;\n}\n\n.buttons button {\n  height: 40px;\n  flex: 1;\n  text-align: center;\n  border-radius: 0;\n}\n`]\n\ncustomElements.define('bookmark-menu', BookmarkMenu)\n\nclass BookmarkEditMenu extends BookmarkMenu {}\ncustomElements.define('bookmark-edit-menu', BookmarkEditMenu)"
  },
  {
    "path": "app/fg/shell-menus/browser.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\n\nclass BrowserMenu extends LitElement {\n  static get properties () {\n    return {\n      submenu: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.submenu = ''\n    this.isDarwin = false\n  }\n\n  reset () {\n    this.submenu = ''\n  }\n\n  async init () {\n    await this.requestUpdate()\n    let browserInfo = await bg.beakerBrowser.getInfo()\n    this.browserInfo = browserInfo\n    this.isDarwin = browserInfo.platform === 'darwin'\n    await this.requestUpdate()\n    this.daemonStatus = await bg.beakerBrowser.getDaemonStatus()\n    this.requestUpdate()\n  }\n\n  render () {\n    // auto-updater\n    var autoUpdaterEl = html``\n    if (this.browserInfo && this.browserInfo.updater.isBrowserUpdatesSupported && this.browserInfo.updater.state === 'downloaded') {\n      autoUpdaterEl = html`\n        <div class=\"section auto-updater\">\n          <div class=\"menu-item auto-updater\" @click=${this.onClickRestart}>\n            <i class=\"fa fa-arrow-circle-up\"></i>\n            <span class=\"label\">Restart to update Beaker</span>\n          </div>\n        </div>\n      `\n    }\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        ${autoUpdaterEl}\n\n        <div class=\"section\">\n          <div class=\"menu-item\" @click=${e => this.onNewHyperdrive()}>\n            <i class=\"fas fa-plus\"></i>\n            <span class=\"label\">New Hyperdrive...</span>\n          </div>\n\n          <div class=\"menu-item\" @click=${e => this.onNewHyperdriveFromFolder(e)}>\n            <i class=\"fas fa-file-upload\"></i>\n            <span class=\"label\">New Hyperdrive From Folder...</span>\n          </div>\n        </div>\n\n        <div class=\"section\">\n          <div class=\"menu-item\" @click=${e => this.onOpenPage(e, 'hyper://private')}>\n            <i class=\"fas fa-lock\"></i>\n            <span class=\"label\">My Private Drive</span>\n          </div>\n        </div>\n\n        <div class=\"section\">\n          <div class=\"menu-item\" @click=${e => this.onOpenPage(e, 'beaker://library')}>\n            <img class=\"favicon\" src=\"asset:favicon:beaker://library/\">\n            <span class=\"label\">My Library</span>\n          </div>\n\n          <div class=\"menu-item\" @click=${e => this.onOpenPage(e, 'beaker://history')}>\n            <img class=\"favicon\" src=\"asset:favicon:beaker://history/\">\n            <span class=\"label\">History</span>\n          </div>\n\n          <div class=\"menu-item\" @click=${e => this.onOpenPage(e, 'beaker://settings')}>\n            <img class=\"favicon\" src=\"asset:favicon:beaker://settings/\">\n            <span class=\"label\">Settings</span>\n          </div>\n        </div>\n\n        <div class=\"section\">\n          <div class=\"menu-item\" @click=${e => this.onPrint()}>\n            <i class=\"fas fa-print\"></i>\n            <span class=\"label\">Print</span>\n          </div>\n\n          <div class=\"menu-item\" @click=${e => this.onOpenPage(e, 'https://docs.beakerbrowser.com')}>\n            <i class=\"far fa-life-ring\"></i>\n            <span class=\"label\">Help</span>\n          </div>\n        </div>\n\n        ${this.daemonStatus ? html`\n          <div class=\"network-status\">\n            <div class=\"network-status-title\">Network Status</div>\n            <div class=\"network-status-line\">\n              <span class=\"fa-fw fas fa-network-wired\"></span>\n              ${this.daemonStatus.remoteAddress || 'Unknown'}\n            </div>\n            <div class=\"network-status-line\">\n              ${this.daemonStatus.holepunchable\n                ? html`<span class=\"fa-fw fas fa-check\"></span> Hole-punchable`\n                : html`<span class=\"fa-fw fas fa-exclamation-triangle\"></span> Not hole-punchable`\n              }\n            </div>\n            ${!this.daemonStatus.holepunchable ? html`\n              <div class=\"help\">\n                <a @click=${e => this.onOpenPage(e, 'https://docs.beakerbrowser.com/help/hole-punchability')}>\n                  <span class=\"far fa-fw fa-question-circle\"></span> What does this mean?\n                </a>\n            </div>\n            ` : ''}\n          </div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  updated () {\n    // adjust dimensions based on rendering\n    var width = this.shadowRoot.querySelector('div').clientWidth|0\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.shellMenus.resizeSelf({width, height})\n  }\n\n  onShowSubmenu (v) {\n    this.submenu = v\n  }\n\n  onOpenNewTab () {\n    bg.shellMenus.createTab()\n    bg.shellMenus.close()\n  }\n\n  onClickMenuItem (menu, id) {\n    return async (e) => {\n      bg.shellMenus.triggerWindowMenuItemById(menu, id)\n      bg.shellMenus.close()\n    }\n  }\n\n  async onNewHyperdrive () {\n    bg.shellMenus.close()\n    const url = await bg.hyperdrive.createDrive()\n    bg.beakerBrowser.openUrl(url, {setActive: true, addedPaneUrls: ['beaker://editor/']})\n  }\n\n  async onNewHyperdriveFromFolder (e) {\n    bg.shellMenus.close()\n\n    var folder = await bg.beakerBrowser.showOpenDialog({\n      title: 'Select folder',\n      buttonLabel: 'Use folder',\n      properties: ['openDirectory']\n    })\n    if (!folder || !folder.length) return\n\n    var url = await bg.hyperdrive.createDrive({\n      title: folder[0].split('/').pop(),\n      prompt: false\n    })\n    await bg.hyperdrive.importFromFilesystem({src: folder[0], dst: url})\n    \n    bg.beakerBrowser.openUrl(url, {setActive: true})\n  }\n\n  onPrint (e) {\n    bg.views.print('active')\n  }\n\n  onOpenPage (e, url) {\n    bg.shellMenus.createTab(url)\n    bg.shellMenus.close()\n  }\n\n  onClickRestart () {\n    bg.shellMenus.close()\n    bg.beakerBrowser.restartBrowser()\n  }\n}\nBrowserMenu.styles = [commonCSS, css`\n.wrapper {\n  width: 250px;\n}\n\n.wrapper::-webkit-scrollbar {\n  display: none;\n}\n\n.section:last-child {\n  border-bottom: 0;\n}\n\n.section.auto-updater {\n  padding-bottom: 0;\n  border-bottom: 0;\n}\n\n.section.gray {\n  padding: 2px 0;\n  background: #f5f5fa;\n}\n\n.section.gray .menu-item:hover {\n  background: #e5e5ee;\n}\n\n.section.scrollable {\n  max-height: 400px;\n  overflow-y: auto;\n}\n\n.menu-item-group {\n  display: flex;\n  padding: 0 2px;\n}\n\n.menu-item-group > .menu-item:first-child {\n  padding-right: 8px;\n}\n\n.menu-item-group > .menu-item:last-child {\n  padding-left: 8px;\n}\n\n.menu-item-group > .menu-item .shortcut {\n  padding-left: 10px;\n}\n\n.menu-item {\n  height: 32px;\n}\n\n.menu-item[disabled] {\n  color: #99a;\n}\n\n.menu-item[disabled]:hover {\n  background: none;\n}\n\n.menu-item.auto-updater {\n  height: 35px;\n  background: #DCEDC8;\n  border-top: 1px solid #c5e1a5;\n  border-bottom: 1px solid #c5e1a5;\n  color: #000;\n}\n\n.menu-item.auto-updater i {\n  color: #7CB342;\n}\n\n.menu-item.auto-updater:hover {\n  background: #d0e7b5;\n}\n\n.menu-item i.more {\n  margin-left: auto;\n  padding-right: 0;\n  text-align: right;\n}\n\n.menu-item i {\n  color: var(--text-color--menu-item-icon--light);\n}\n\n.menu-item .more,\n.menu-item .shortcut {\n  color: var(--text-color--menu-item-icon--light);\n  margin-left: auto;\n}\n\n.menu-item .shortcut {\n  font-size: 12px;\n  -webkit-font-smoothing: antialiased;\n}\n\n.network-status {\n  padding: 8px;\n  background: var(--bg-color--bgtabs--main);\n}\n\n.network-status-title {\n font-size: 11px;\n font-weight: bold;\n padding: 0 3px 3px;\n}\n\n.network-status-line {\n  font-size: 12px;\n  white-space: nowrap;\n  color: inherit;\n  margin: 5px 2px 0;\n}\n\n.network-status-line .fa-fw,\n.network-status .help .fa-fw {\n  margin: 0 5px;\n}\n\n.network-status .fa-exclamation-triangle {\n  color: #FF8F00;\n}\n\n.network-status .help {\n  margin: 5px 2px 0;\n}\n\n.network-status .help a {\n  text-decoration: none;\n  color: inherit;\n}\n\n.network-status .help a:hover {\n  text-decoration: underline;\n}\n`]\n\ncustomElements.define('browser-menu', BrowserMenu)"
  },
  {
    "path": "app/fg/shell-menus/buttons.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\nbutton {\n  background: transparent;\n  border: 0;\n  padding: 0;\n}\n\nbutton:focus {\n  outline: 0;\n}\n\nbutton:disabled {\n  opacity: 0.5;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: #333;\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer !important;\n}\n\n@media (prefers-color-scheme: dark) {\n  .btn {\n    background: #445;\n    color: #ccd;\n    border-color: #668;\n  }\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: #707070;\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: #333;\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.5);\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n@media (prefers-color-scheme: dark) {\n  .btn:hover {\n    background: #556;\n  }\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  cursor: default;\n  background: #fafafa;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n`"
  },
  {
    "path": "app/fg/shell-menus/buttons2.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n/**\n * New button styles\n * We should replace buttons.css with this\n */\n\nbutton {\n  background: #fff;\n  border: 1px solid #d4d7dc;\n  border-radius: 3px;\n  box-shadow: 0 1px 1px rgba(0,0,0,.05);\n  padding: 5px 10px;\n  color: #333;\n  outline: 0;\n}\n\nbutton:active {\n  background: #eee;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.5);\n  background: #6d6d79;\n  color: rgba(255,255,255,1);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: #5289f7;\n  border-color: #2864dc;\n  color: #fff;\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton[disabled] {\n  border-color: #d4d7dc;\n  background: #fff;\n  color: #999;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: #6d6d79;\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: flex;\n  margin: 0 6px;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/fg/shell-menus/common.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\nhr {\n  border: 0;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.section {\n  padding: 6px 0;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.menu-item {\n  display: flex;\n}\n\n.menu-item {\n  align-items: center;\n  height: 25px;\n  padding: 0 15px;\n  cursor: default;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.menu-item:hover {\n  background: var(--bg-color--menu-item--hover);\n}\n\n.menu-item i {\n  color: var(--text-color--menu-item-icon);\n  width: 28px;\n  font-size: 13px;\n  padding-right: 5px;\n  text-align: center;\n  margin-left: -5px;\n}\n\n.menu-item .favicon {\n  flex: 0 0 16px;\n  width: 16px;\n  height: 16px;\n  margin-right: 10px;\n}\n\n.menu-item.disabled {\n  opacity: 0.5;\n}\n\n.menu-item.disabled:hover {\n  background: none;\n}\n\n.menu-item .label {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.menu-item i.more {\n  margin-left: auto;\n  padding-right: 0;\n  text-align: right;\n  color: var(--text-color--menu-item-icon--light);\n}\n\n.header {\n  position: relative;\n  width: 100%;\n  height: 35px;\n  line-height: 35px;\n  text-align: center;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.header h2 {\n  font-size: 12.5px;\n  margin: 0;\n  padding-right: 10px;\n}\n\n.header .btn {\n  position: absolute;\n  left: 4px;\n  top: 4px;\n  width: 27px;\n  height: 27px;\n  border: 0;\n  background: transparent;\n  border-radius: 4px;\n}\n\n.header .btn i {\n  font-size: 18px;\n  color: var(--text-color--menus-wrapper);\n  line-height: 27px;\n}\n\n.header .btn:focus {\n  outline: 0;\n}\n\n.header .btn:hover {\n  background: var(--bg-color--header-btn--hover);\n}\n`"
  },
  {
    "path": "app/fg/shell-menus/create.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport _get from 'lodash.get'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\n\nclass CreateMenu extends LitElement {\n  constructor () {\n    super()\n    this.reset()\n  }\n\n  reset () {\n    this.driveInfo = null\n  }\n\n  async init (params) {\n    this.driveInfo = (await bg.views.getTabState('active', {driveInfo: true})).driveInfo\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"header\"><h2>Create new</h2></div>\n      <div class=\"wrapper\">\n        <div class=\"menu-item\" @click=${e => this.onClickNew('wiki')}>\n          Wiki site\n        </div>\n        <div class=\"menu-item\" @click=${e => this.onClickNew()}>\n          Empty website\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onClickNew (template) {\n    bg.shellMenus.createTab(`beaker://library/?view=new-website&template=${encodeURIComponent(template || '')}`)\n    bg.shellMenus.close()\n  }\n}\nCreateMenu.styles = [commonCSS, css`\n.header {\n  text-align: left;\n}\n\n.header h2 {\n  padding: 0 14px;\n}\n\n.wrapper {\n  padding: 4px 0;\n}\n`]\n\ncustomElements.define('create-menu', CreateMenu)\n"
  },
  {
    "path": "app/fg/shell-menus/donate.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport _get from 'lodash.get'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\n\nclass DonateMenu extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.reset()\n  }\n\n  reset () {\n    this.driveInfo = null\n  }\n\n  async init (params) {\n    this.url = params.url\n    this.driveInfo = (await bg.views.getTabState('active', {driveInfo: true})).driveInfo\n    await this.requestUpdate()\n  }\n\n  resolvePaymentLink (paymentLink) {\n    if (!this.url) return paymentLink\n    if (paymentLink.indexOf('://') === -1) {\n      const shouldAddSlash = !this.url.endsWith('/') && !paymentLink.startsWith('/')\n      return `${this.url}${shouldAddSlash ? '/' : ''}${paymentLink}`\n    }\n    return paymentLink\n  }\n\n  // rendering\n  // =\n\n  renderDonationLink (paymentLink) {\n    const url = this.resolvePaymentLink(paymentLink)\n    return html`<a href=\"#\" class=\"link\" @click=${e => this.onOpenPage(url)}>${url}</a>`\n  }\n\n  render () {\n    var title = _get(this, 'driveInfo.title', 'this site')\n    const paymentLink = String(_get(this, 'driveInfo.links.payment.0.href'))\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"header\">\n          <div class=\"header-info\">\n            <span class=\"fa fa-hand-holding-usd\"></span>\n            <h1>Contribute to ${title}</h1>\n          </div>\n        </div>\n        <div class=\"body\">\n          <div>\n            Visit their donation page to show your appreciation!\n          </div>\n          <div>\n            ${this.renderDonationLink(paymentLink)}\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onOpenPage (href) {\n    bg.shellMenus.createTab(href)\n    bg.shellMenus.close()\n  }\n}\nDonateMenu.styles = [commonCSS, css`\n.wrapper {\n  overflow: hidden;\n}\n\n.header {\n  height: auto;\n  line-height: inherit;\n  padding: 10px;\n}\n\n.header-info {\n  display: flex;\n  align-items: baseline;\n  margin: 0;\n}\n\n.header-info .fa {\n  font-size: 14px;\n  margin: 0 7px 0 4px;\n}\n\n.header-info h1 {\n  margin: 0;\n  font-size: 14px;\n  overflow: hidden;\n  font-weight: 500;\n}\n\n.body {\n  padding: 10px;\n  overflow-wrap: break-word;\n}\n`]\n\ncustomElements.define('donate-menu', DonateMenu)\n"
  },
  {
    "path": "app/fg/shell-menus/hoverable.js",
    "content": "import { LitElement, html } from '../vendor/lit-element/lit-element'\n\n/*\nUsage:\n\n<beaker-hoverable>\n  <button class=\"btn\" slot=\"default\">Hover me!</button>\n  <button class=\"btn\" slot=\"hover\">I'm hovered!</button>\n</beaker-hoverable>\n*/\n\nexport class Hoverable extends LitElement {\n  static get properties () {\n    return {\n      isHovered: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.isHovered = false\n  }\n\n  render () {\n    if (this.isHovered) {\n      return html`<span @mouseleave=${this.onMouseleave}><slot name=\"hover\"></slot></span>`\n    }\n    return html`<span @mouseenter=${this.onMouseenter}><slot name=\"default\"></slot></span>`\n  }\n\n  onMouseenter () {\n    this.isHovered = true\n  }\n\n  onMouseleave () {\n    this.isHovered = false\n  }\n}\n\ncustomElements.define('beaker-hoverable', Hoverable)"
  },
  {
    "path": "app/fg/shell-menus/index.html",
    "content": "<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n    <style>\n    body {\n      --bg-color--menus-wrapper: #fff;\n      --bg-color--menu-item--hover: #ededf2;\n      --bg-color--header-btn--hover: #eee;\n      --bg-color--bgtabs--main: #fafafa;\n      --bg-color--bgtabs--active: #fff;\n      --text-color--menus-wrapper: rgba(0, 0, 0, 0.8);\n      --text-color--menus-wrapper--light: #707070;\n      --text-color--menu-item-icon: rgba(51, 51, 51, 0.97);\n      --text-color--menu-item-icon--light: #7a7a7a;\n      --border-color--default: #ccc;\n      --border-color--light: #eee;\n      --border-color--menus-wrapper: #bbb;\n      --box-shadow-color--menus-wrapper: rgba(0,0,0,.1);\n\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      margin: 0;\n      font-size: 12px;\n      background: transparent;\n      overflow: hidden;\n      user-select: none;\n      -webkit-app-region: no-drag;\n    }\n    menus-wrapper {\n      display: block;\n      background: var(--bg-color--menus-wrapper);\n      color: var(--text-color--menus-wrapper);\n      border: 1px solid var(--border-color--menus-wrapper);\n      border-radius: 0;\n      box-shadow: 0 2px 3px var(--box-shadow-color--menus-wrapper);\n      margin: 0 10px 10px;\n      overflow: hidden;\n    }\n    @media (prefers-color-scheme: dark) {\n      body {\n        --bg-color--menus-wrapper: #333;\n        --bg-color--menu-item--hover: #444;\n        --bg-color--header-btn--hover: #444;\n        --bg-color--bgtabs--main: #222;\n        --bg-color--bgtabs--active: #333;\n        --text-color--menus-wrapper: #ccc;\n        --text-color--menus-wrapper--light: #bbb;\n        --text-color--menu-item-icon: #bbb;\n        --text-color--menu-item-icon--light: #7a7a7a;\n        --border-color--default: #666;\n        --border-color--light: #666;\n        --border-color--menus-wrapper: #666;\n        --box-shadow-color--menus-wrapper: rgba(0,0,0,.4);\n      }\n    }\n    </style>\n  </head>\n  <body>\n    <menus-wrapper></menus-wrapper> <!-- this tag will be defined in the preload script -->\n  </body>\n</html>"
  },
  {
    "path": "app/fg/shell-menus/index.js",
    "content": "/* globals customElements */\nimport _debounce from 'lodash.debounce'\nimport { ipcRenderer } from 'electron'\nimport { LitElement, html } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport './background-tray'\nimport './browser'\nimport './bookmark'\nimport './donate'\nimport './peers'\nimport './share'\nimport './site'\n\nclass MenusWrapper extends LitElement {\n  static get properties () {\n    return {\n      currentMenu: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentParams = null\n    this.setup()\n  }\n\n  async setup () {\n    // export interface\n    const reset = (name) => {\n      if (!name.endsWith('-menu')) name += '-menu'\n      try { this.shadowRoot.querySelector(name).reset() }\n      catch (e) { /* ignore */ }\n    }\n    const init = (name) => {\n      try { return this.shadowRoot.querySelector(name).init(this.currentParams) }\n      catch (e) { console.log(e) /* ignore */ }\n    }\n    window.openMenu = async (v, params) => {\n      this.currentMenu = v\n      this.currentParams = params\n      reset(`${v}-menu`)\n      await this.updateComplete\n      await init(`${v}-menu`)\n    }\n    window.updateMenu = async (params) => {\n      this.currentParams = Object.assign(this.currentParams || {}, params)\n      try { return this.shadowRoot.querySelector(`${this.currentMenu}-menu`).updateMenu(this.currentParams) }\n      catch (e) { /* ignore */ }\n    }\n    window.reset = reset\n\n    // global event listeners\n    window.addEventListener('blur', e => {\n      try {\n        // check if any menu needs to stay open\n        if (this.shadowRoot.querySelector('[active-menu]').hasAttribute('stay-open')) {\n          return\n        }\n      } catch (e) {\n        // ignore\n      }\n\n      bg.shellMenus.close()\n\n      // reset any active state\n      reset(`${this.currentMenu}-menu`)\n\n      // unset the menu so that we can unrender the current\n      // (this stops a FOUC issue)\n      this.currentMenu = null\n    })\n    window.addEventListener('keydown', e => {\n      if (e.key === 'Escape') {\n        bg.shellMenus.close()\n      }\n    })\n\n    // fetch platform information\n    var browserInfo = await bg.beakerBrowser.getInfo()\n    window.platform = browserInfo.platform\n    if (browserInfo.platform === 'darwin') {\n      document.body.classList.add('darwin')\n    }\n    if (browserInfo.platform === 'win32') {\n      document.body.classList.add('win32')\n    }\n  }\n\n  render () {\n    return html`<div @contextmenu=${this.onContextMenu}>${this.renderMenu()}</div>`\n  }\n\n  renderMenu () {\n    switch (this.currentMenu) {\n      case 'background-tray':\n        return html`<background-tray-menu active-menu></background-tray-menu>`\n      case 'browser':\n        return html`<browser-menu active-menu></browser-menu>`\n      case 'bookmark':\n        return html`<bookmark-menu active-menu></bookmark-menu>`\n      case 'bookmark-edit':\n        return html`<bookmark-edit-menu active-menu></bookmark-edit-menu>`\n      case 'donate':\n        return html`<donate-menu active-menu></donate-menu>`\n      case 'peers':\n        return html`<peers-menu active-menu></peers-menu>`\n      case 'share':\n        return html`<share-menu active-menu></share-menu>`\n      case 'site':\n        return html`<site-menu active-menu></site-menu>`\n    }\n    return html`<div></div>`\n  }\n\n  onContextMenu (e) {\n    e.preventDefault() // disable context menu\n  }\n}\n\ncustomElements.define('menus-wrapper', MenusWrapper)\n\n// HACK\n// Electron has an issue where browserviews fail to calculate click regions after a resize\n// https://github.com/electron/electron/issues/14038\n// we can solve this by forcing a recalculation after every resize\n// -prf\n\nconst forceUpdateDragRegions = _debounce(() => ipcRenderer.send('resize-hackfix'), 100, {leading: true})\nwindow.addEventListener('resize', forceUpdateDragRegions)\ndocument.addEventListener('DOMContentLoaded', forceUpdateDragRegions)\n"
  },
  {
    "path": "app/fg/shell-menus/inputs.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\ninput,\ntextarea {\n  height: 30px;\n  padding: 0 7px;\n  border-radius: 4px;\n  border: 1px solid var(--border-color--default);\n  background: inherit;\n  color: inherit;\n}\n\ninput:focus,\ntextarea:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\n.toggle {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 10px;\n  cursor: pointer;\n  overflow: initial;\n}\n\n.toggle * {\n  cursor: pointer;\n}\n\n.toggle.disabled {\n  cursor: default;\n}\n\n.toggle.disabled * {\n  cursor: default;\n}\n\n.toggle input {\n  display: none;\n}\n\n.toggle .text {\n  font-weight: 400;\n}\n\n.toggle .switch {\n  display: inline-block;\n  position: relative;\n  width: 32px;\n  height: 17px;\n}\n\n.toggle .switch:before,\n.toggle .switch:after {\n  position: absolute;\n  display: block;\n  content: '';\n}\n\n.toggle .switch:before {\n  width: 100%;\n  height: 100%;\n  border-radius: 40px;\n  background: #dadada;\n}\n\n.toggle .switch:after {\n  width: 11px;\n  height: 11px;\n  border-radius: 50%;\n  left: 3px;\n  top: 3px;\n  background: #fafafa;\n  transition: transform 0.15s ease;\n}\n\n.toggle input:checked:not(:disabled) + .switch:before {\n  background: #41b855;\n}\n\n.toggle input:checked:not(:disabled) + .switch:after {\n  transform: translateX(15px);\n}\n\n.toggle.disabled {\n  color: #b8b8b8;\n}\n`"
  },
  {
    "path": "app/fg/shell-menus/peers.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { pluralize } from '../../lib/strings'\nimport * as bg from './bg-process-rpc'\nimport inputsCSS from './inputs.css'\nimport spinnerCSS from './spinner.css'\n\nconst NETWORK_STATS_POLL_INTERVAL = 500 // ms\n\nclass PeersMenu extends LitElement {\n  static get properties () {\n    return {\n      isLoading: {type: Boolean},\n      url: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.pollInterval = undefined\n    this.reset()\n  }\n\n  reset () {\n    this.isLoading = false\n    this.driveInfo = undefined\n    this.driveCfg = undefined\n    this.peers = []\n    if (this.pollInterval) {\n      clearInterval(this.pollInterval)\n    }\n  }\n\n  async init (params) {\n    this.isLoading = true\n    this.url = params.url\n    this.driveInfo = (await bg.views.getTabState('active', {driveInfo: true})).driveInfo\n    this.driveCfg = await bg.drives.get(this.url)\n    const getPeers = async () => {\n      var state = await bg.views.getNetworkState('active')\n      this.peers = state?.peers || []\n      this.isLoading = false\n      return this.requestUpdate()\n    }\n    await getPeers()\n\n    // periodically fetch updates\n    this.pollInterval = setInterval(getPeers, NETWORK_STATS_POLL_INTERVAL)\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var writable = this.driveInfo?.writable || false\n    var isSaved = this.driveCfg?.saved || false\n    var peers = this.peers\n    if (this.isLoading) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"wrapper\"><span class=\"spinner\"></span></div>\n      `\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"header\">\n          <div class=\"peer-count\">\n            ${peers.length} ${pluralize(peers.length, 'peer')} connected.\n          </div>\n\n          ${''/*<div class=\"net-stats\">\n            <div><span class=\"fa fa-arrow-down\"></span> ${prettyBytes(downloadTotal)}</div>\n            <div><span class=\"fa fa-arrow-up\"></span> ${prettyBytes(uploadTotal)}</div>\n            </div>*/}\n        </div>\n\n        ${writable\n          ? ''\n          : html`\n            <label class=\"toggle\">\n              <input\n                type=\"checkbox\"\n                name=\"host\"\n                value=\"host\"\n                .checked=${isSaved}\n                @click=${this.onToggleHosting}\n              >\n              <div class=\"switch\"></div>\n              <span class=\"text\">Host This Hyperdrive</span>\n            </label>\n          `}\n\n        <div class=\"addresses\">\n          ${peers.map(p => html`<div>${p.remoteAddress} (${p.type})</div>`)}\n          ${peers.length === 0 ? html`<em>No peers connected</em>` : ''}\n        </div>\n\n        ${''/*<div class=\"network-url\">\n          <a @click=${e => this.onOpenPage(`beaker://swarm-debugger/${this.url}`)}>\n            <i class=\"fa fa-cog\"></i>\n            View network activity\n          </a>*/}\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onOpenPage (href) {\n    bg.shellMenus.createTab(href)\n    bg.shellMenus.close()\n  }\n\n  async onToggleHosting () {\n    if (!this.driveCfg || !this.driveCfg.saved) {\n      this.driveCfg = {saved: true}\n      await bg.drives.configure(this.url)\n    } else {\n      this.driveCfg = {saved: false}\n      await bg.drives.remove(this.url)\n    }\n    bg.views.refreshState('active')\n  }\n}\nPeersMenu.styles = [inputsCSS, spinnerCSS, css`\n.wrapper {\n}\n\n.spinner {\n  margin: 12px;\n}\n\n.header {\n  font-size: 12px;\n  font-weight: 500;\n}\n\n.header,\n.toggle {\n  padding: 10px;\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n.peer-count,\n.net-stats {\n  color: var(--text-color--menus-wrapper--light);\n  font-weight: 300;\n}\n\n.net-stats {\n  display: flex;\n  opacity: 0.9;\n}\n\n.net-stats > div {\n  margin-right: 14px;\n}\n\n.net-stats .fa {\n  -webkit-text-stroke: 1px #fff;\n}\n\n.toggle {\n  justify-content: flex-start;\n  margin: 0;\n}\n\n.toggle .switch {\n  margin-right: 10px;\n}\n\n.network-url {\n  background: #f5f5f5;\n  padding: 10px;\n  cursor: pointer;\n}\n\n.network-url i {\n  color: var(--text-color--menus-wrapper--light);\n  margin-right: 3px;\n}\n\n.network-url:hover {\n  text-decoration: underline;\n}\n\n.addresses {\n  padding: 5px 10px;\n  color: var(--text-color--menus-wrapper--light);\n  line-height: 1.6;\n  font-family: monospace;\n  font-size: 0.9em;\n  overflow: auto;\n  height: 100px;\n}\n`]\n\ncustomElements.define('peers-menu', PeersMenu)\n"
  },
  {
    "path": "app/fg/shell-menus/share.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport inputsCSS from './inputs.css'\nimport buttonsCSS from './buttons2.css'\nimport { joinPath } from '../../lib/strings'\n\nclass ShareMenu extends LitElement {\n  static get properties () {\n    return {\n      hasCopied: {type: Boolean}\n    }\n  }\n\n  static get styles () {\n    return [commonCSS, inputsCSS, buttonsCSS, css`\n    .wrapper {\n      position: relative;\n      box-sizing: border-box;\n      padding: 12px;\n      color: #333;\n      background: #fff;\n      overflow: hidden;\n    }\n\n    h4 {\n      margin: 0 0 8px;\n    }\n\n    .ctrl {\n      display: flex;\n      align-items: center;\n    }\n\n    .ctrl button {\n      height: 30px;\n      border-top-right-radius: 0;\n      border-bottom-right-radius: 0;\n      border-right: 0;\n      cursor: pointer;\n    }\n\n    .ctrl input {\n      flex: 1;\n      border-top-left-radius: 0;\n      border-bottom-left-radius: 0;\n      box-shadow: none !important;\n      border-color: rgba(41, 95, 203, 0.8);\n    }\n\n    .copied-notice {\n      position: absolute;\n      z-index: 1;\n      top: 12px;\n      right: 12px;\n      background: rgba(0, 0, 0, 0.7);\n      color: #fff;\n      padding: 2px 7px;\n      font-size: 10px;\n      border-radius: 4px;\n      box-shadow: 0 1px 3px rgba(0,0,0,.2);\n      text-shadow: 0 1px 3px rgba(0,0,0,.9);\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.reset()\n  }\n\n  reset () {\n    this.url = undefined\n    this.canShare = undefined\n    this.hasCopied = false\n  }\n\n  async init (params) {\n    var shareableUrl = undefined\n    if (params.url.startsWith('hyper://')) {\n      // establish the shareable url\n      try {\n        let driveInfo\n        let urlp = new URL(params.url)\n        let pathParts = urlp.pathname.split('/').filter(Boolean)\n        let pathAcc = []\n               \n        // find the drive that owns the location\n        while (pathParts.length > 0) {\n          let st = await bg.hyperdrive.stat(joinPath(urlp.origin, pathParts.join('/')))\n          if (st.mount) {\n            driveInfo = await bg.hyperdrive.getInfo(st.mount.key)\n            break\n          }\n          pathAcc.unshift(pathParts.pop())\n        }\n        if (!driveInfo) {\n          driveInfo = await bg.hyperdrive.getInfo(urlp.origin)\n        }\n\n        // make sure it can be shared\n        if (driveInfo && driveInfo.url !== 'hyper://private/') {\n          shareableUrl = driveInfo.url + '/' + pathAcc.join('/') + urlp.search + urlp.hash\n        }\n      } catch (e) {\n        console.debug(e)\n      }\n    } else {\n      // can always share as-is\n      shareableUrl = params.url\n    }\n\n    this.canShare = !!shareableUrl\n    this.url = shareableUrl\n    await this.requestUpdate()\n\n    // focus and highlight input\n    if (this.canShare) {\n      var input = this.shadowRoot.querySelector('input[type=text]')\n      input.focus()\n      input.setSelectionRange(0, input.value.length)\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        ${this.canShare ? html`\n          ${this.hasCopied ? html`<span class=\"copied-notice\">Copied to your clipboard</span>` : ''}\n          <h4>Share this location</h4>\n          <p>Anyone with the link can view this location.</p>\n          <div class=\"ctrl\">\n            <button class=\"primary\" @click=${this.onClickCopy}><span class=\"fas fa-fw fa-copy\"></span> Copy</button>\n            <input type=\"text\" value=\"${this.url}\" @keypress=${e => e.preventDefault()} />\n          </div>\n        ` : html`\n          <h4>Share this location</h4>\n          <div><span class=\"fas fa-fw fa-lock\"></span> This location is private and cannot be shared.</div>\n        `}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onClickCopy () {\n    var input = this.shadowRoot.querySelector('input')\n    input.select()\n    document.execCommand('copy')\n    this.hasCopied = true\n\n    setTimeout(() => {\n      this.hasCopied = false\n    }, 1e3)\n  }\n}\n\ncustomElements.define('share-menu', ShareMenu)\n"
  },
  {
    "path": "app/fg/shell-menus/site.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport commonCSS from './common.css'\nimport { writeToClipboard } from '../lib/event-handlers'\n\nclass SiteMenu extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  constructor () {\n    super()\n  }\n\n  reset () {\n    this.submenu = ''\n    this.url = undefined\n    this.driveInfo = undefined\n  }\n\n  async init (params) {\n    this.url = params.url\n    this.requestUpdate()\n\n    if (this.url.startsWith('hyper://')) {\n      try {\n        this.driveInfo = await bg.hyperdrive.getInfo(this.url)\n      } catch (e) {\n        console.debug(e)\n      }\n      this.requestUpdate()\n    }\n  }\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\">\n        <div class=\"section\">\n          <div class=\"menu-item\" @click=${this.onCopyURL}>\n            <i class=\"fas fa-link\"></i>\n            <span class=\"label\">Copy URL</span>\n          </div>\n          ${this.driveInfo ? html`\n            <div class=\"menu-item\" @click=${this.onCopyDriveKey}>\n              <i class=\"fas fa-fingerprint\"></i>\n              <span class=\"label\">Copy Drive Key</span>\n            </div>\n          ` : ''}\n        </div>\n        ${this.driveInfo ? html`\n          <div class=\"section\">\n            <div class=\"menu-item\" @click=${this.onToggleLiveReload}>\n              <i class=\"fas fa-bolt\"></i>\n              <span class=\"label\">Toggle Live Reloading</span>\n            </div>\n            ${this.driveInfo.writable ? html`\n              <div class=\"section\">\n                <div class=\"menu-item\" @click=${this.onSync}>\n                  <i class=\"far fa-folder-open\"></i>\n                  <span class=\"label\">Sync with Local Folder</span>\n                </div>\n              </div>\n            ` : ''}\n          </div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  updated () {\n    // adjust dimensions based on rendering\n    var width = this.shadowRoot.querySelector('div').clientWidth|0\n    var height = this.shadowRoot.querySelector('div').clientHeight|0\n    bg.shellMenus.resizeSelf({width, height})\n  }\n\n  onOpenPage (e, url) {\n    bg.shellMenus.createTab(url)\n    bg.shellMenus.close()\n  }\n\n  onCopyURL () {\n    writeToClipboard(this.url)\n    bg.shellMenus.close()\n  }\n\n  onCopyDriveKey () {\n    writeToClipboard(this.driveInfo.key)\n    bg.shellMenus.close()\n  }\n\n  onToggleLiveReload () {\n    bg.views.toggleLiveReloading('active')\n    bg.shellMenus.close()\n  }\n\n  async onSync () {\n    await bg.folderSync.syncDialog(this.driveInfo.url)\n    await bg.beakerBrowser.refreshTabState()\n  }\n}\nSiteMenu.styles = [commonCSS, css`\n.wrapper {\n  width: 230px;\n}\n\n.wrapper::-webkit-scrollbar {\n  display: none;\n}\n\n.section:last-child {\n  border-bottom: 0;\n}\n\n.menu-item {\n  height: 40px;\n}\n`]\n\ncustomElements.define('site-menu', SiteMenu)"
  },
  {
    "path": "app/fg/shell-menus/spinner.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\n.spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n`"
  },
  {
    "path": "app/fg/shell-window/bg-process-rpc.js",
    "content": "import * as rpc from 'pauls-electron-rpc'\nimport bookmarksManifest from '../../bg/web-apis/manifests/internal/bookmarks'\nimport browserManifest from '../../bg/web-apis/manifests/internal/browser'\nimport folderSyncManifest from '../../bg/web-apis/manifests/internal/folder-sync'\nimport historyManifest from '../../bg/web-apis/manifests/internal/history'\nimport hyperdriveManifest from '../../bg/web-apis/manifests/external/hyperdrive'\nimport overlayManifest from '../../bg/rpc-manifests/overlay'\nimport viewsManifest from '../../bg/rpc-manifests/views'\nimport watchlistManifest from '../../bg/web-apis/manifests/internal/watchlist'\n\nexport const bookmarks = rpc.importAPI('bookmarks', bookmarksManifest)\nexport const beakerBrowser = rpc.importAPI('beaker-browser', browserManifest)\nexport const folderSync = rpc.importAPI('folder-sync', folderSyncManifest)\nexport const history = rpc.importAPI('history', historyManifest)\nexport const hyperdrive = rpc.importAPI('hyperdrive', hyperdriveManifest)\nexport const overlay = rpc.importAPI('background-process-overlay', overlayManifest)\nexport const views = rpc.importAPI('background-process-views', viewsManifest)\nexport const watchlist = rpc.importAPI('watchlist', watchlistManifest)\n"
  },
  {
    "path": "app/fg/shell-window/index.html",
    "content": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Beaker</title>\n  <link rel=\"stylesheet\" href=\"beaker://assets/icons.css\">\n  <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n  <style>\n  body {\n    --bg-color--foreground: #fff;\n    --bg-color--background: #f5f5f5;\n    --bg-color--content: #fff;\n    --bg-color--input: #fff;\n    --text-color--input: #222;\n    --border-color--input: #bbc;\n    --border-color--input--focused: #1d59c7;\n\n    --bg-color--location-input: #fff;\n    --bg-color--location-zoom: #f5f5f5;\n    --bg-color--location-zoom--hover: #eaeaea;\n    --bg-color--location-dat-convert-btn: #008dff; \n    --bg-color--location-dat-convert-btn--hover: #0076d6;\n    --text-color--location-input: #222;\n    --text-color--location-input--light: #777;\n    --text-color--location-btn: #666;\n    --text-color--location-bookmark--pressed: #2196F3;\n    --text-color--location-dat-convert-btn: #fff;\n    --text-color--location-live-reload-btn: #ffff91;\n    --text-stroke-color--location-live-reload-btn: #daba47;\n    --text-shadow-color--location-live-reload-btn: gold;\n    --border-color--location-input: var(--border-color--input);\n    --border-color--location-input--trusted: #91a6d6;\n    --border-color--location-input--untrusted: #e6aaaa;\n    --border-color--location-zoom: #ccc;\n\n    --text-color--cert--notrust: #333;\n    --text-color--cert--trusted: #0a52d6;\n    --text-color--cert--secure: #3c943c;\n    --text-color--cert--warning: #e2b206;\n    --text-color--cert--untrusted: #D11A1A;\n    --text-color--cert-sublabel: #fff;\n    --bg-color--cert--default: #eeeef3;\n    --bg-color--cert--trusted: #e6ebff;\n    --bg-color--cert--untrusted: #ffe6e6;\n    --bg-color--cert--default--hover: #e3e3e7;\n    --bg-color--cert--trusted--hover: #d9dffb;\n    --bg-color--cert--untrusted--hover: #f5d1d1;\n    --bg-color--cert-sublabel: #2fb935;\n\n    --border-color--tab: #e0e0e0;\n    --highlight-color--tab--current: #005aff;\n    --text-color--tab--title: #555;\n    --text-color--tab--close: #333;\n    --text-color--bg-tabs-btn: #666;\n    --text-color--tab--add: #666;\n    --text-color--tab--add--hover: #333;\n    --bg-color--tab--hover: #f3f3f8;\n    --bg-color--tab--current: var(--bg-color--foreground);\n    --bg-color--tab--dragover: #ddddea;\n    --bg-color--tab-close--hover: #eee;\n    --bg-color--tab-close--current--hover: #eee;\n\n    --border-color--navbar: #e0e0e0;\n    --text-color--navbar-btn: #333;\n    --stroke-color--navbar-btn: #666;\n    --text-color--navbar-btn--lighter: #555;\n    --text-color--navbar-btn--success: #67bf6b;\n    --text-color--navbar-btn--warning: #FF9800;\n\n    --bg-color--paneborder: #ccc;\n    --bg-color--paneborder--active: #4d82e4;\n    --bg-color--pane-status-bar: #fff;\n    --bg-color--pane-status-bar--active: #f3f3f3;\n    --bg-color--pane-status-bar-button--hover: #ddd;\n    --text-color--pane-status-bar: #888;\n    --text-color--pane-status-bar--active: #555;\n    --text-color--pane-status-bar-indicator: #4d82e4;\n\n    font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n    margin: 0;\n    padding: 0;\n    background: var(--bg-color--background);\n    height: 100vh;\n  }\n  @media (prefers-color-scheme: dark) {\n    body {\n      --bg-color--foreground: #333;\n      --bg-color--background: #1f1f1f;\n      --bg-color--content: #fff;\n      --bg-color--input: #222;\n      --text-color--input: #eee;\n      --border-color--input: #666;\n      --border-color--input--focused: #1d59c7;\n\n      --bg-color--location-input: #222;\n      --bg-color--location-zoom: #333;\n      --bg-color--location-zoom--hover: #333;\n      --bg-color--location-dat-convert-btn: #008dff;\n      --bg-color--location-dat-convert-btn--hover: #0076d6;\n      --text-color--location-input: #eee;\n      --text-color--location-input--light: #ccc;\n      --text-color--location-btn: #ccc;\n      --text-color--location-bookmark--pressed: #3f83ff;\n      --text-color--location-dat-convert-btn: #fff;\n      --text-color--location-live-reload-btn: #ffff91;\n      --text-stroke-color--location-live-reload-btn: #daba47;\n      --text-shadow-color--location-live-reload-btn: gold;\n      --border-color--location-input: var(--border-color--input);\n      --border-color--location-input--trusted: #4d71d6;\n      --border-color--location-input--untrusted: #712020;\n      --border-color--location-zoom: #666;\n\n      --text-color--cert--notrust: #ccc;\n      --text-color--cert--trusted: #d2d8fd;\n      --text-color--cert--secure: #3c943c;\n      --text-color--cert--warning: #e2b206;\n      --text-color--cert--untrusted: #ffdddd;\n      --text-color--cert-sublabel: #fff;\n      --bg-color--cert--default: #333;\n      --bg-color--cert--trusted: #333;\n      --bg-color--cert--untrusted: #352121;\n      --bg-color--cert--default--hover: #444;\n      --bg-color--cert--trusted--hover: #444;\n      --bg-color--cert--untrusted--hover: #521212;\n      --bg-color--cert-sublabel: #2fb935;\n\n      --border-color--tab: #333;\n      --highlight-color--tab--current: #005aff;\n      --text-color--tab--title: #ddd;\n      --text-color--tab--close: #ccc;\n      --text-color--bg-tabs: #666;\n      --text-color--tab--add: #666;\n      --text-color--tab--add--hover: #888a;\n      --bg-color--tab--hover: var(--bg-color--foreground);\n      --bg-color--tab--current: var(--bg-color--foreground);\n      --bg-color--tab--dragover: #ddddea;\n      --bg-color--tab-close--hover: #222;\n      --bg-color--tab-close--current--hover: #222;\n\n      --border-color--navbar: #222;\n      --stroke-color--navbar-btn: #bbb;\n      --text-color--navbar-btn: #bbb;\n      --text-color--navbar-btn--lighter: #bbb;\n      --text-color--navbar-btn--success: #67bf6b;\n      --text-color--navbar-btn--warning: #242322;\n\n      --bg-color--paneborder: #333;\n      --bg-color--paneborder--active: #4d82e4;\n      --bg-color--pane-status-bar: #222;\n      --bg-color--pane-status-bar--active: #333;\n      --bg-color--pane-status-bar-button--hover: #333;\n      --text-color--pane-status-bar: #666;\n      --text-color--pane-status-bar--active: #aaa;\n      --text-color--pane-status-bar-indicator: #4d82e4\n    }\n  }\n  </style>\n</head>\n<body>\n  <shell-window></shell-window>\n  <div id=\"svgs\">\n    <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n      <defs>\n        <g id=\"svg-padlock\" fill=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n          <g transform=\"translate(0.000000, 13.000000)\">\n            <rect x=\"0\" y=\"89\" width=\"180\" height=\"119\" rx=\"8\" fill=\"#3c943c\" />\n            <path d=\"M32.9765625,89.125 C32.9704162,88.7923789 33,55.3340372 33,55 C33,24.6243388 58.5197693,0 90,0 C121.480231,0 147,24.6243388 147,55 C147,55.3340372 146.144818,88.9427695 146.138672,89.2753906\" stroke=\"#3c943c\" stroke-width=\"25\"/>\n          </g>\n        </g>\n      </defs>\n    </svg>\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "app/fg/shell-window/index.js",
    "content": "/* globals customElements */\n\nimport { ipcRenderer } from 'electron'\nimport { LitElement, html } from '../vendor/lit-element/lit-element'\nimport * as bg from './bg-process-rpc'\nimport { fromEventStream } from '../../bg/web-apis/fg/event-target'\nimport './tabs'\nimport './navbar'\nimport './panes'\nimport './resize-hackfix'\n\n// setup\ndocument.addEventListener('DOMContentLoaded', () => {\n  ipcRenderer.send('shell-window:ready')\n})\n\nclass ShellWindowUI extends LitElement {\n  static get properties () {\n    return {\n      tabs: {type: Array},\n      isWindows: {type: Boolean},\n      isUpdateAvailable: {type: Boolean},\n      numWatchlistNotifications: {type: Number},\n      isHolepunchable: {type: Boolean},\n      isDaemonActive: {type: Boolean},\n      isShellInterfaceHidden: {type: Boolean},\n      isFullscreen: {type: Boolean},\n      hasBgTabs: {type: Boolean},\n      hasLocationExpanded: {type: Boolean},\n    }\n  }\n\n  constructor () {\n    super()\n    this.tabs = []\n    this.isUpdateAvailable = false\n    this.numWatchlistNotifications = 0\n    this.isHolepunchable = true\n    this.isDaemonActive = true\n    this.isShellInterfaceHidden = false\n    this.isFullscreen = false\n    this.hasBgTabs = false\n    this.hasLocationExpanded = false\n    this.activeTabIndex = -1\n    this.setup()\n  }\n\n  async setup () {\n    // fetch platform information\n    var browserInfo = await bg.beakerBrowser.getInfo()\n    window.platform = browserInfo.platform\n    if (browserInfo.platform === 'darwin') {\n      document.body.classList.add('darwin')\n    }\n    if (browserInfo.platform === 'win32') {\n      document.body.classList.add('win32')\n      this.isWindows = true\n    }\n\n    // handle drag/drop of files\n    window.addEventListener('drop', onDragDrop, false)\n    function onDragDrop (event) {\n      var files = Array.from(event.dataTransfer.files).slice(0, 10)\n      var setActive = true\n      for (let file of files) {\n        bg.views.createTab(`file://${file.path}`, {setActive})\n        setActive = false\n      }\n    }\n\n    // listen to state updates to the window's tabs states\n    var viewEvents = fromEventStream(bg.views.createEventStream())\n    viewEvents.addEventListener('replace-state', state => {\n      this.tabs = state.tabs\n      this.isFullscreen = state.isFullscreen\n      this.isShellInterfaceHidden = state.isShellInterfaceHidden\n      this.isSidebarHidden = state.isSidebarHidden\n      this.isDaemonActive = state.isDaemonActive\n      this.hasBgTabs = state.hasBgTabs\n      this.stateHasChanged()\n    })\n    viewEvents.addEventListener('update-state', ({index, state}) => {\n      if (this.tabs[index]) {\n        Object.assign(this.tabs[index], state)\n      }\n      this.stateHasChanged()\n    })\n    viewEvents.addEventListener('update-panes-state', ({index, paneLayout}) => {\n      if (this.tabs[index]) {\n        this.tabs[index].paneLayout = paneLayout\n      }\n      this.shadowRoot.querySelector('shell-window-panes').requestUpdate()\n    })\n\n    // listen to state updates on the auto-updater\n    var browserEvents = fromEventStream(bg.beakerBrowser.createEventsStream())\n    browserEvents.addEventListener('updater-state-changed', this.onUpdaterStateChange.bind(this))\n\n    // listen to state updates on the watchlist\n    var wlEvents = fromEventStream(bg.watchlist.createEventsStream())\n    wlEvents.addEventListener('resolved', () => {\n      this.numWatchlistNotifications++\n    })\n\n    const getDaemonStatus = async () => {\n      var status = await bg.beakerBrowser.getDaemonStatus()\n      // HACK: don't indicate 'not holepunchable' if the daemon isnt active to tell us\n      var isHolepunchable = status.holepunchable || !status.active\n      if (this.isHolepunchable !== isHolepunchable) {\n        this.isHolepunchable = isHolepunchable\n        this.stateHasChanged()\n      }\n    }\n\n    // fetch initial tab state\n    this.isUpdateAvailable = browserInfo.updater.state === 'downloaded'\n    this.tabs = await bg.views.getState()\n    this.stateHasChanged()\n    getDaemonStatus()\n  }\n\n  get activeTab () {\n    return this.tabs[this.activeTabIndex]\n  }\n\n  async stateHasChanged () {\n    // update active index\n    this.activeTabIndex = this.tabs.findIndex(tab => tab.isActive)\n\n    await this.requestUpdate()\n    if (!this.isShellInterfaceHidden) {\n      this.shadowRoot.querySelector('shell-window-tabs').requestUpdate()\n      if (this.activeTab) {\n        this.shadowRoot.querySelector('shell-window-navbar').requestUpdate()\n      }\n    }\n    this.shadowRoot.querySelector('shell-window-panes').requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      ${this.isWindows ? html`<shell-window-win32></shell-window-win32>` : ''}\n      ${this.isShellInterfaceHidden ? '' : html`\n        <shell-window-tabs .tabs=${this.tabs} ?is-fullscreen=${this.isFullscreen} ?has-bg-tabs=${this.hasBgTabs}></shell-window-tabs>\n        <shell-window-navbar\n          .activeTabIndex=${this.activeTabIndex}\n          .activeTab=${this.activeTab}\n          ?is-sidebar-hidden=${this.isSidebarHidden}\n          ?is-update-available=${this.isUpdateAvailable}\n          ?is-holepunchable=${this.isHolepunchable}\n          ?is-daemon-active=${this.isDaemonActive}\n          num-watchlist-notifications=\"${this.numWatchlistNotifications}\"\n        ></shell-window-navbar>\n      `}\n      <shell-window-panes .activeTab=${this.activeTab}></shell-window-panes>\n    `\n  }\n\n  // event handlers\n  // =\n\n  onUpdaterStateChange (e) {\n    this.isUpdateAvailable = (e && e.state === 'downloaded')\n  }\n}\n\ncustomElements.define('shell-window', ShellWindowUI)"
  },
  {
    "path": "app/fg/shell-window/navbar/button-reset.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element'\n\nexport default css`\nbutton {\n  background: transparent;\n  border: 0;\n  border-radius: 4px;\n  padding: 0;\n}\n\nbutton:focus {\n  outline: 0;\n}\n\nbutton:not(:disabled):hover {\n  background: rgba(0,0,0,.05);\n}\n@media (prefers-color-scheme: dark) {\n  button:not(:disabled):hover {\n    background: rgba(0,0,0,.2);\n  }\n}\n\nbutton:disabled {\n  opacity: 0.5;\n}\n\nbutton.pressed {\n  background: rgba(0,0,0,.1);\n  box-shadow: inset 0 2px 3px rgba(0,0,0,.2);\n}\n@media (prefers-color-scheme: dark) {\n  button.pressed {\n    background: rgba(0,0,0,.25);\n  }\n}\n`"
  },
  {
    "path": "app/fg/shell-window/navbar/inpage-find.js",
    "content": "/* globals customElements */\nimport {LitElement, html, css} from '../../vendor/lit-element/lit-element'\nimport * as bg from '../bg-process-rpc'\nimport buttonResetCSS from './button-reset.css'\n\nclass NavbarInpageFind extends LitElement {\n  static get properties () {\n    return {\n      activeTabIndex: {type: Number},\n      isActive: {type: Boolean, attribute: 'is-active'},\n      query: {type: String},\n      activeMatch: {type: Number, attribute: 'active-match'},\n      numMatches: {type: Number, attribute: 'num-matches'}\n    }\n  }\n\n  constructor () {\n    super()\n    this.activeTabIndex = undefined\n    this.isActive = false\n    this.query = ''\n    this.activeMatch = 0\n    this.numMatches = 0\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.isActive) {\n      return html`<div></div>`\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"input-container\">\n        <input type=\"text\" placeholder=\"Find in page\" @keyup=${this.onKeyup} autofocus>\n        <button @click=${this.onClickPrev}><i class=\"fas fa-angle-up\"></i></button>\n        <button @click=${this.onClickNext}><i class=\"fas fa-angle-down\"></i></button>\n        <button @click=${this.onClickStop}><i class=\"fas fa-times\"></i></button>\n        <div class=\"stats\">${this.activeMatch} / ${this.numMatches}</div>\n      </div>\n    `\n  }\n\n  updated (changedProperties) {\n    if (changedProperties.get('isActive') === false) {\n      // focus the input on initial render\n      this.shadowRoot.querySelector('input').focus()\n    }\n  }\n\n  // events\n  // =\n\n  onKeyup (e) {\n    if (e.key === 'Escape') {\n      bg.views.hideInpageFind(this.activeTabIndex)\n      return\n    }\n    if (e.key === 'Enter') {\n      let dir = e.shiftKey ? -1 : 1 // search backwords on shift+enter\n      this.query = e.currentTarget.value\n      if (this.query) {\n        bg.views.setInpageFindString(this.activeTabIndex, this.query, dir)\n      }\n      return\n    }\n    if (this.query !== e.currentTarget.value) {\n      this.query = e.currentTarget.value\n      if (this.query) {\n        bg.views.setInpageFindString(this.activeTabIndex, this.query, 1)\n      }\n    }\n  }\n\n  onClickNext (e) {\n    bg.views.moveInpageFind(this.activeTabIndex, 1)\n  }\n\n  onClickPrev (e) {\n    bg.views.moveInpageFind(this.activeTabIndex, -1)\n  }\n\n  onClickStop (e) {\n    bg.views.hideInpageFind(this.activeTabIndex)\n  }\n}\nNavbarInpageFind.styles = [buttonResetCSS, css`\n:host {\n}\n\n.input-container {\n  display: flex;\n  position: relative;\n  width: 350px;\n  margin-left: 10px;\n}\n\ninput {\n  flex: 1;\n  background: var(--bg-color--input);\n  border: 1px solid var(--border-color--input);\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n  padding: 0 8px;\n\n  line-height: 26px;\n  width: 100%;\n  height: 26px;\n\n  color: var(--text-color--input);\n  font-size: 13.5px;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-weight: 500;\n  letter-spacing: -.2px;\n}\n\ninput:focus {\n  outline: 0;\n  border-color: var(--border-color--input--focused);\n}\n\nbutton {\n  border: 1px solid var(--border-color--input);\n  border-left-width: 0;\n  border-radius: 0;\n  width: 30px;\n  color: gray;\n}\n\nbutton:last-child {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n\n.stats {\n  position: absolute;\n  right: 91px;\n  font-size: 13px;\n  color: var(--text-color--input);\n  opacity: 0.7;\n  top: 1px;\n  background: var(--bg-color--input);\n  height: 26px;\n  line-height: 26px;\n  padding: 0 9px;\n}\n`]\ncustomElements.define('shell-window-navbar-inpage-find', NavbarInpageFind)\n"
  },
  {
    "path": "app/fg/shell-window/navbar/location.js",
    "content": "/* globals customElements */\nimport { ipcRenderer } from 'electron'\nimport { LitElement, html, css } from '../../vendor/lit-element/lit-element'\nimport { classMap } from '../../vendor/lit-element/lit-html/directives/class-map'\nimport { queryAutocomplete } from '../../lib/location'\nimport prettyHash from 'pretty-hash'\nimport * as bg from '../bg-process-rpc'\nimport buttonResetCSS from './button-reset.css'\nimport tooltipCSS from './tooltip.css'\nimport './site-info'\n\nconst isHyperHashRegex = /^[a-z0-9]{64}/i\nconst NETWORK_STATS_POLL_INTERVAL = 5000 // ms\n\nclass NavbarLocation extends LitElement {\n  static get properties () {\n    return {\n      activeTabIndex: {type: Number},\n      url: {type: String},\n      title: {type: String},\n      siteTitle: {type: String},\n      siteSubtitle: {type: String},\n      siteIcon: {type: String},\n      siteTrust: {type: String},\n      driveDomain: {type: String},\n      driveIdent: {type: String},\n      writable: {type: Boolean},\n      folderSyncPath: {type: String, attribute: 'folder-sync-path'},\n      peers: {type: Number},\n      zoom: {type: Number},\n      loadError: {type: Object},\n      donateLinkHref: {type: String, attribute: 'donate-link-href'},\n      isLiveReloading: {type: Boolean, attribute: 'is-live-reloading'},\n      isShareMenuOpen: {type: Boolean},\n      isPeersMenuOpen: {type: Boolean},\n      isSiteMenuOpen: {type: Boolean},\n      isDonateMenuOpen: {type: Boolean},\n      isBookmarked: {type: Boolean, attribute: 'is-bookmarked'},\n      isLocationFocused: {type: Boolean},\n      hasExpanded: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.activeTabIndex = -1\n    this.url = ''\n    this.title = ''\n    this.siteTitle = ''\n    this.siteSubtitle = ''\n    this.siteIcon = ''\n    this.siteTrust = ''\n    this.driveDomain = ''\n    this.driveIdent = ''\n    this.writable = false\n    this.folderSyncPath = undefined\n    this.peers = 0\n    this.zoom = 0\n    this.loadError = null\n    this.donateLinkHref = false\n    this.isShareMenuOpen = false\n    this.isPeersMenuOpen = false\n    this.isSiteMenuOpen = false\n    this.isDonateMenuOpen = false\n    this.isBookmarked = false\n    this.isLocationFocused = false\n    this.hasExpanded = false\n    this.shouldSelectAllOnFocus = false\n    this.autocompleteState = {\n      queryIdCounter: 0,\n      inputValue: '',\n      lastInputValue: '',\n      results: [],\n      urlGuess: undefined,\n      bookmarksFetch: bg.bookmarks.list().then(bs => bs.map(b => {b.isBookmark = true; b.url = b.href; return b})),\n      searchEnginesPromise: bg.beakerBrowser.getSetting('search_engines')\n    }\n    this._isAutocompleteOpen = false\n    this.dontShowAutocompleteOnNextFocus = false // helper to avoid showing autocomplete on new tab\n\n    setInterval(async () => {\n      if (!this.url.startsWith('hyper://')) return\n      var state = await bg.views.getNetworkState('active')\n      this.peers = state?.peers?.length || 0\n      this.requestUpdate()\n    }, NETWORK_STATS_POLL_INTERVAL)\n\n    // listen for commands from the main process\n    ipcRenderer.on('command', this.onCommand.bind(this))\n  }\n\n  get isAutocompleteOpen () {\n    return this._isAutocompleteOpen || false\n  }\n\n  set isAutocompleteOpen (v) {\n    this._isAutocompleteOpen = v\n    if (v) {\n      this.setAttribute('autocomplete-open', 'autocomplete-open')\n    } else {\n      this.removeAttribute('autocomplete-open')\n    }\n  }\n\n  get isBeaker () {\n    return this.url.startsWith('beaker://')\n  }\n\n  get isHyperdrive () {\n    return this.url.startsWith('hyper://')\n  }\n\n  get modifiedUrl () {\n    var url = this.url\n    if (url.startsWith('beaker://desktop')) {\n      url = ''\n    } else if (url.includes('://')) {\n      try {\n        let urlp = (new URL(url))\n        url = urlp.pathname + urlp.search + urlp.hash\n      } catch (e) {\n        // ignore, malformed URL\n      }\n    }\n    return url\n  }\n\n  focusLocation () {\n    this.shouldSelectAllOnFocus = true\n    var input = this.shadowRoot.querySelector('.input-container input')\n    input.focus()\n    bg.views.focusShellWindow()\n  }\n\n  unfocusLocation () {\n    var input = this.shadowRoot.querySelector('.input-container input')\n    input.blur()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <shell-window-navbar-site-info\n        url=${this.url}\n        siteTitle=${this.siteTitle}\n        siteSubtitle=\"${this.siteSubtitle}\"\n        siteIcon=${this.siteIcon}\n        siteTrust=${this.siteTrust}\n        driveDomain=${this.driveDomain}\n        driveIdent=${this.driveIdent}\n        ?writable=${this.writable}\n        .loadError=${this.loadError}\n        ?hide-origin=${this.hasExpanded}\n        ?rounded=${false/*this.url.startsWith('beaker://desktop')*/}\n        ?autocomplete-open=${this.isAutocompleteOpen}\n      >\n      </shell-window-navbar-site-info>\n      ${this.renderLocation()}\n      ${this.renderZoom()}\n      ${this.renderDatConverterBtn()}\n      ${this.renderLiveReloadingBtn()}\n      ${this.renderFolderSyncBtn()}\n      ${this.renderPeers()}\n      ${this.renderDonateBtn()}\n      ${''/* DISABLED this.renderShareBtn()*/}\n      ${this.renderBookmarkBtn()}\n      ${this.renderSiteBtn()}\n    `\n  }\n\n  renderLocation () {\n    return html`\n      <div class=\"input-container\" @contextmenu=${this.onContextMenuLocation}>\n        <input\n          type=\"text\"\n          value=\"${this.modifiedUrl}\"\n          placeholder=\"Search or enter your address here\"\n          @focus=${this.onFocusLocation}\n          @blur=${this.onBlurLocation}\n          @input=${this.onInputLocation}\n          @keydown=${this.onKeydownLocation}\n          @contextmenu=${this.onContextmenuLocation}\n        >\n        ${this.isLocationFocused ? '' : this.renderInputPretty()}\n      </div>\n    `\n  }\n\n  renderInputPretty () {\n    if (this.url.startsWith('beaker://desktop')) {\n      return html`\n        <div class=\"input-pretty\" @mouseup=${this.onClickLocation}>\n          <span class=\"syntax\">Search or enter your address here</span>\n        </div>\n      `\n    }\n    if (/^(hyper|http|https|beaker|dat):\\/\\//.test(this.url)) {\n      try {\n        var { protocol, host, pathname, search, hash } = new URL(this.url)\n        // TODO just show path?\n        // return html`\n        //   <div class=\"input-pretty\">\n        //     <span class=\"path\">${pathname}${search}${hash}</span>\n        //   </div>\n        // `\n        var hostVersion\n        if (protocol === 'hyper:') {\n          let match = /(.*)\\+(.*)/.exec(host)\n          if (match) {\n            host = match[1]\n            hostVersion = '+' + match[2]\n          }\n          if (isHyperHashRegex.test(host)) {\n            host = prettyHash(host)\n          }\n        }\n        var cls = 'protocol'\n        // if (['beaker:'].includes(protocol)) cls += ' protocol-trusted'\n        // if (['https:'].includes(protocol) && !this.loadError) cls += ' protocol-trusted'\n        if (['https:'].includes(protocol) && this.loadError && this.loadError.isInsecureResponse) cls += ' protocol-untrusted'\n        // if (['dat:'].includes(protocol)) cls += ' protocol-trusted'\n        // if (['beaker:'].includes(protocol)) cls += ' protocol-trusted'\n        return html`\n          <div class=\"input-pretty\" @mouseup=${this.onClickLocation}>\n            ${''/*<span class=${cls}>${protocol.slice(0, -1)}</span><span class=\"syntax\">://</span><span class=\"host\">${host}</span>*/}\n            <span class=\"path\">${pathname}${search}${hash}</span>\n          </div>\n        `\n      } catch (e) {\n        // invalid URL, fallback to default\n      }\n    }\n    return html`\n      <div class=\"input-pretty\" @mouseup=${this.onClickLocation}>${this.url}</div>\n    `\n  }\n\n  renderZoom () {\n    if (this.zoom === 0) return ''\n    var zoomPct = ({\n      '-0.5': 90,\n      '-1': 75,\n      '-1.5': 67,\n      '-2': 50,\n      '-2.5': 33,\n      '-3': 25,\n      '0': 100,\n      '0.5': 110,\n      '1': 125,\n      '1.5': 150,\n      '2': 175,\n      '2.5': 200,\n      '3': 250,\n      '3.5': 300,\n      '4': 400,\n      '4.5': 500\n    })[this.zoom]\n    return html`\n      <button @click=${this.onClickZoom} title=\"Zoom: ${zoomPct}%\" class=\"zoom\">\n        ${zoomPct}%\n      </button>\n    `\n  }\n\n  renderDatConverterBtn () {\n    if (this.url.startsWith('dat:')) {\n      return html`\n        <button class=\"dat-converter\" title=\"Convert to Hyperdrive\" @click=${this.onClickConvertDat}>\n          Convert this site to Hyperdrive\n        </button>\n      `\n    }\n    return ''\n  }\n\n  renderLiveReloadingBtn () {\n    if (!this.isLiveReloading) {\n      return ''\n    }\n    return html`\n      <button class=\"live-reload\" @click=${this.onClickLiveReloadingBtn} title=\"Live reloading enabled\">\n        <i class=\"fa fa-bolt\"></i>\n      </button>\n    `\n  }\n\n  renderFolderSyncBtn () {\n    if (!this.folderSyncPath) {\n      return ''\n    }\n    var cls = classMap({'folder-sync': true})\n    return html`\n      <button class=${cls} @click=${this.onClickFolderSyncBtn} title=\"Folder Sync\">\n        <i class=\"fas fa-sync\"></i>\n        <i class=\"far fa-folder-open\"></i>\n      </button>\n    `\n  }\n\n  renderDonateBtn () {\n    if (!this.donateLinkHref) {\n      return ''\n    }\n    var cls = classMap({donate: true, pressed: this.isDonateMenuOpen})\n    return html`\n      <button class=\"${cls}\" @click=${this.onClickDonateMenu}>\n        <i class=\"fa fa-donate\"></i>\n      </button>\n    `\n  }\n\n  renderPeers () {\n    if (!this.isHyperdrive) {\n      return ''\n    }\n    var cls = classMap({peers: true, pressed: this.isPeersMenuOpen})\n    return html`\n      <button class=\"${cls}\" @click=${this.onClickPeersMenu}>\n        <span class=\"fas fa-share-alt\"></span> ${this.peers}\n      </button>\n    `\n  }\n\n  renderBookmarkBtn () {\n    return html`\n      <button class=\"bookmark\" @click=${this.onClickBookmark} title=\"Bookmark this page\">\n        <span class=\"${this.isBookmarked ? 'fas' : 'far'} fa-star\"></span>\n      </button>\n    `\n  }\n\n  renderShareBtn () {\n    var cls = classMap({share: true, pressed: this.isShareMenuOpen})\n    return html`\n      <button class=\"${cls}\" @click=${this.onClickShareMenu}>\n        <i class=\"fas fa-share-square\"></i>\n      </button>\n    `\n  }\n\n  renderSiteBtn () {\n    var cls = classMap({site: true, pressed: this.isSiteMenuOpen})\n    return html`\n      <button class=\"${cls}\" @click=${this.onClickSiteMenu}>\n        <i class=\"fas fa-angle-down\"></i>\n      </button>\n    `\n  }\n\n  // events\n  // =\n\n  onCommand (e, cmd, ...args) {\n    if (cmd === 'create-bookmark') {\n      this.onClickBookmark()\n    }\n    if (cmd === 'focus-location') {\n      this.dontShowAutocompleteOnNextFocus = true\n      this.focusLocation()\n    }\n    if (cmd === 'unfocus-location') {\n      this.unfocusLocation()\n    }\n    if (cmd === 'set-search-engines') {\n      this.autocompleteState.searchEnginesPromise = JSON.parse(args[0])\n    }\n  }\n\n  onContextMenuLocation (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    if (!this.isLocationFocused) {\n      this.focusLocation()\n    }\n    bg.views.showLocationBarContextMenu('active')\n  }\n\n  onClickLocation (e) {\n    e.preventDefault()\n    this.focusLocation()\n  }\n\n  async onFocusLocation (e) {\n    var input = e.currentTarget\n    if (!this.url.startsWith('beaker://desktop')) {\n      input.value = this.url\n    } else {\n      input.value = ''\n    }\n    this.hasExpanded = true\n    this.isLocationFocused = true\n\n    if (!this.dontShowAutocompleteOnNextFocus) {\n      var rect = this.getClientRects()[0]\n      bg.views.runLocationBarCmd('show', {\n        bounds: {x: (rect.left|0), y: (rect.bottom|0), width: (rect.width|0)},\n        results: (await this.autocompleteState.bookmarksFetch).slice(0, 10)\n      })\n      this.isAutocompleteOpen = true\n    }\n    this.dontShowAutocompleteOnNextFocus = false\n\n    await this.requestUpdate()\n\n    if (this.shouldSelectAllOnFocus) {\n      input.setSelectionRange(0, input.value.length)\n      this.shouldSelectAllOnFocus = false\n    }\n  }\n\n  onBlurLocation (e) {\n    this.isAutocompleteOpen = false\n    bg.views.runLocationBarCmd('hide')\n\n    // clear the selection range so that the next focusing doesnt carry it over\n    window.getSelection().empty()\n    this.shadowRoot.querySelector('.input-container input').value = this.url // reset value\n    this.isLocationFocused = false\n    this.hasExpanded = false\n\n    // HACK\n    // Sometimes the input is blurred by the user clicking on a separate webContents (eg the current page).\n    // For some reason, this correctly triggers the blur event (this function) but it does not put the\n    // input into a fully blurred state. I assume it's similar to when you click out of a browser window\n    // when an input is focused, it maintains some amount of \"focused\" state for when you focus the browser\n    // window again. We explicitly blur it here to fully enter blurred state.\n    // -prf\n    this.shadowRoot.querySelector('.input-container input').blur()\n  }\n\n  onInputLocation (e) {\n    this.autocompleteState.inputValue = e.currentTarget.value.trim()\n    queryAutocomplete(bg, this.autocompleteState, this.onAutocompleteResults.bind(this))\n  }\n\n  async onKeydownLocation (e) {\n    if (e.key === 'Enter') {\n      e.preventDefault()\n      this.autocompleteState.queryIdCounter = -1 // cancel any active queries\n      bg.views.runLocationBarCmd('choose-selection')\n      e.currentTarget.blur()\n      return\n    }\n\n    if (e.key === 'Escape') {\n      e.preventDefault()\n      e.currentTarget.blur()\n      return\n    }\n\n    var up = ((e.key === 'Tab' && e.shiftKey) || e.key === 'ArrowUp' || (e.ctrlKey && e.key === 'p'))\n    var down = ((e.key === 'Tab' && !e.shiftKey) || e.key === 'ArrowDown' || (e.ctrlKey && e.key === 'n'))\n    if (up || down) {\n      e.preventDefault()\n      this.shadowRoot.querySelector('input').value = await bg.views.runLocationBarCmd('move-selection', {up, down})\n    }\n  }\n\n  onContextmenuLocation (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    bg.views.showLocationBarContextMenu('active')\n  }\n\n  onAutocompleteResults (isPartialResults = false) {\n    if (!this.isAutocompleteOpen) {\n      let rect = this.getClientRects()[0]\n      bg.views.runLocationBarCmd('show', {\n        bounds: {x: (rect.left|0), y: (rect.bottom|0), width: (rect.width|0) + 1},\n        query: this.autocompleteState.inputValue,\n        results: this.autocompleteState.results\n      })\n      this.isAutocompleteOpen = true\n      this.requestUpdate() // to handle the isAutocompleteOpen change\n    } else {\n      bg.views.runLocationBarCmd('set-results', {\n        query: this.autocompleteState.inputValue,\n        results: this.autocompleteState.results\n      })\n    }\n    if (!isPartialResults && this.autocompleteState.urlGuess) {\n      // we have a \"URL guess\"\n      let rangeStart = this.autocompleteState.inputValue.length\n      let input = this.shadowRoot.querySelector('input')\n      input.value = this.autocompleteState.urlGuess.input\n      input.setSelectionRange(rangeStart, this.autocompleteState.urlGuess.input.length)\n    }\n  }\n\n  onClickZoom (e) {\n    bg.views.resetZoom(this.activeTabIndex)\n  }\n\n  onClickConvertDat (e) {\n    var { host } = new URL(this.url)\n    bg.beakerBrowser.convertDat(host)\n  }\n\n  onClickLiveReloadingBtn (e) {\n    bg.views.toggleLiveReloading('active')\n    this.isLiveReloading = false\n  }\n\n  async onClickFolderSyncBtn () {\n    bg.folderSync.syncDialog(this.url)\n  }\n\n  async onClickShareMenu (e) {\n    this.isShareMenuOpen = true\n    var rect = this.shadowRoot.querySelector('.share').getClientRects()[0]\n    await bg.views.toggleMenu('share', {\n      bounds: {rightOffset: (window.innerWidth - rect.right)|0},\n      params: {url: this.url}\n    })\n    this.isShareMenuOpen = false\n  }\n\n  async onClickDonateMenu (e) {\n    this.isDonateMenuOpen = true\n    var rect = e.currentTarget.getClientRects()[0]\n    await bg.views.toggleMenu('donate', {\n      bounds: {rightOffset: (window.innerWidth - rect.right)|0},\n      params: {url: this.url}\n    })\n    this.isDonateMenuOpen = false\n  }\n\n  async onClickBookmark () {\n    var rect = this.shadowRoot.querySelector('.bookmark').getClientRects()[0]\n    // show menu\n    bg.views.toggleMenu('bookmark', {\n      bounds: {rightOffset: (window.innerWidth - rect.right)|0},\n      params: {\n        url: this.url,\n        metadata: {title: this.title}\n      }\n    })\n  }\n\n  async onClickPeersMenu () {\n    if (Date.now() - (this.lastPeersMenuClick||0) < 100) {\n      return\n    }\n    this.isPeersMenuOpen = true\n    var rect = this.shadowRoot.querySelector('.peers').getClientRects()[0]\n    // show menu\n    await bg.views.toggleMenu('peers', {\n      bounds: {rightOffset: (window.innerWidth - rect.right)|0},\n      params: {\n        url: this.url\n      }\n    })\n    this.isPeersMenuOpen = false\n    this.lastPeersMenuClick = Date.now()\n  }\n\n  async onClickSiteMenu () {\n    if (Date.now() - (this.lastSiteMenuClick||0) < 100) {\n      return\n    }\n    this.isSiteMenuOpen = true\n    var rect = this.shadowRoot.querySelector('.site').getClientRects()[0]\n    // show menu\n    await bg.views.toggleMenu('site', {\n      bounds: {rightOffset: (window.innerWidth - rect.right)|0},\n      params: {\n        url: this.url\n      }\n    })\n    this.isSiteMenuOpen = false\n    this.lastSiteMenuClick = Date.now()\n  }\n}\nNavbarLocation.styles = [buttonResetCSS, tooltipCSS, css`\n:host {\n  display: flex;\n  flex: 1;\n  background: var(--bg-color--location-input);\n  border: 1px solid var(--border-color--location-input);\n  border-radius: 16px;\n  padding-right: 8px;\n  user-select: none;\n}\n\n:host(.trusted) {\n  border: 1px solid var(--border-color--location-input--trusted);\n}\n\n:host(.untrusted) {\n  border: 1px solid var(--border-color--location-input--untrusted);\n}\n\n:host([autocomplete-open]) {\n  border-top-left-radius: 12px;\n  border-top-right-radius: 12px;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n  border: 1px solid var(--border-color--input--focused);\n  border-bottom: 0;\n}\n\nbutton {\n  width: 27px;\n  border-radius: 0;\n  color: var(--text-color--location-btn);\n}\n\nbutton.text {\n  width: auto;\n  padding: 0 4px;\n  font-size: 11px;\n}\n\nbutton .fa,\nbutton .far,\nbutton .fas {\n  font-size: 15px;\n}\n\nbutton.text .fas,\nbutton.text .far {\n  font-size: 13px;\n}\n\nbutton.text .fa-info-circle {\n  font-size: 14px;\n}\n\nbutton.bookmark .fa-star {\n  font-size: 14px;\n}\n\nbutton.bookmark .fas.fa-star {\n  color: var(--text-color--location-bookmark--pressed);\n}\n\nbutton .fa-link {\n  font-size: 14px;\n}\n\nbutton.zoom {\n  width: auto;\n  font-size: 11px;\n  line-height: 10px;\n  background: var(--bg-color--location-zoom);\n  border-radius: 10px;\n  margin: 4px;\n  padding: 0 9px;\n  border: 1px solid var(--border-color--location-zoom);\n  font-weight: 500;\n}\n\nbutton.zoom:hover {\n  background: var(--bg-color--location-zoom--hover);\n}\n\nbutton.dat-converter {\n  width: auto;\n  font-size: 13px;\n  line-height: 23px;\n  background: var(--bg-color--location-dat-convert-btn);\n  border-radius: 5px;\n  margin: 2px;\n  padding: 0 9px;\n  font-weight: 500;\n  color: var(--text-color--location-dat-convert-btn);\n}\n\nbutton.dat-converter:hover {\n  cursor: pointer;\n  background: var(--bg-color--location-dat-convert-btn--hover);\n}\n\nbutton.live-reload {\n  width: 24px;\n}\n\nbutton.live-reload .fa {\n  font-size: 14px;\n  color: var(--text-color--location-live-reload-btn);\n  -webkit-text-stroke: 1px var(--text-stroke-color--location-live-reload-btn);\n  text-shadow: 0 0 8px var(--text-shadow-color--location-live-reload-btn);\n  animation: bolt-glow 2s infinite linear;\n}\n\n@keyframes bolt-glow {\n  0% { text-shadow: 0 0 8px var(--text-shadow-color--location-live-reload-btn); }\n  50% { text-shadow: 0 0 0px var(--text-shadow-color--location-live-reload-btn); }\n  100% { text-shadow: 0 0 8px var(--text-shadow-color--location-live-reload-btn); }\n}\n\nbutton.folder-sync {\n  width: 40px;\n}\n\nbutton.folder-sync .fa-sync {\n  font-size: 8px;\n  position: relative;\n  top: -3px;\n}\n\nbutton.folder-sync .fa-folder-open {\n  transform: translateY(.5px);\n}\n\nbutton.site .fa-angle-down {\n  position: relative;\n  top: 1px;\n}\n\n.input-container {\n  position: relative;\n  flex: 1;\n  margin: 0 6px;\n}\n\n.input-pretty,\ninput {\n  position: absolute;\n  left: 0;\n  top: 0;\n\n  box-sizing: border-box;\n  border: 0;\n  padding: 0;\n\n  width: 100%;\n  height: 26px;\n  overflow: hidden;\n\n  color: var(--text-color--location-input);\n  background: var(--bg-color--location-input);\n  font-size: 12.5px;\n  line-height: 27px;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-weight: 400;\n  letter-spacing: 0.5px;\n}\n\ninput:focus {\n  outline: 0;\n}\n\ninput::-webkit-input-placeholder {\n  font-weight: 400;\n}\n\n.input-pretty {\n  z-index: 1;\n  text-overflow: ellipsis;\n  cursor: text;\n}\n\n.input-pretty .protocol {\n  color: var(--text-color--location-input--light);\n}\n\n.input-pretty .protocol-trusted {\n  color: var(--text-color--cert--trusted);\n}\n\n.input-pretty .protocol-untrusted {\n  color: var(--text-color--cert--untrusted);\n}\n\n.input-pretty .host-version,\n.input-pretty .syntax,\n.input-pretty .path {\n  color: var(--text-color--location-input--light);\n  white-space: nowrap;\n  font-weight: 400;\n}\n\n.peers {\n  letter-spacing: 0.5px;\n  height: 27px;\n  line-height: 27px;\n  width: auto;\n  min-width: 32px;\n  padding: 0 5px;\n  font-size: 13px;\n}\n\n.peers .fas {\n  font-size: 11px;\n  position: relative;\n  top: -1px;\n}\n`]\ncustomElements.define('shell-window-navbar-location', NavbarLocation)\n"
  },
  {
    "path": "app/fg/shell-window/navbar/site-info.js",
    "content": "/* globals customElements */\nimport {LitElement, html, css} from '../../vendor/lit-element/lit-element'\nimport { classMap } from '../../vendor/lit-element/lit-html/directives/class-map'\nimport _get from 'lodash.get'\nimport * as bg from '../bg-process-rpc'\nimport buttonResetCSS from './button-reset.css'\n\nclass NavbarSiteInfo extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String},\n      siteTitle: {type: String},\n      siteSubtitle: {type: String},\n      siteIcon: {type: String},\n      siteTrust: {type: String},\n      driveDomain: {type: String},\n      driveIdent: {type: String},\n      writable: {type: Boolean},\n      isPressed: {type: Boolean},\n      hideOrigin: {type: Boolean, attribute: 'hide-origin'},\n      rounded: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.url = ''\n    this.siteTitle = ''\n    this.siteSubtitle = ''\n    this.siteIcon = ''\n    this.siteTrust = ''\n    this.driveDomain = ''\n    this.driveIdent = ''\n    this.writable = false\n    this.isPressed = false\n    this.hideOrigin = false\n    this.rounded = false\n  }\n\n  get scheme () {\n    try {\n      return (new URL(this.url)).protocol\n    } catch (e) {\n      return ''\n    }\n  }\n\n  get hostname () {\n    try {\n      return (new URL(this.url)).hostname\n    } catch (e) {\n      return ''\n    }\n  }\n\n  get isHyperdrive () {\n    return this.url.startsWith('hyper://')\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var innerHTML\n    if (this.siteIcon || this.siteTitle) {\n      innerHTML = html`\n        ${this.siteIcon === 'beaker-logo' ? html`\n          <svg class=\"beaker-logo\" viewBox=\"0 0 423.33333 423.33334\">\n            <g>\n              <path\n                d=\"m 200.89962,376.0479 c -24.73216,-1.58999 -50.03103,-9.19167 -71.4375,-21.46517 -22.17481,-12.71403 -41.770537,-31.08395 -55.750567,-52.2631 -21.57868,-32.69077 -30.78054,-71.64081 -26.07932,-110.38965 3.08365,-25.4163 11.91667,-49.42273 26.07932,-70.87855 5.92143,-8.97071 11.67851,-16.07078 19.58166,-24.149613 8.783677,-8.978953 16.400907,-15.324151 26.291127,-21.900673 16.86303,-11.213103 33.66176,-18.605574 52.91667,-23.286565 33.1993,-8.070963 66.14007,-5.907045 99.30693,6.523591 8.55737,3.20722 15.0652,4.616366 24.65855,5.339333 4.91048,0.37006 6.60707,0.329676 15.73451,-0.374531 5.6268,-0.434124 13.2468,-0.874368 16.93333,-0.97832 12.74853,-0.359481 18.3855,1.439679 20.55395,6.560239 1.54225,3.641861 1.58295,4.143194 1.84942,22.779822 0.27258,19.064617 0.52411,22.429417 2.29427,30.691657 1.29904,6.0633 2.38416,9.06084 5.94809,16.43101 10.13412,20.95726 15.29833,40.34326 16.79852,63.06025 1.5486,23.44986 -2.52328,48.80746 -11.36765,70.79207 -10.94619,27.20912 -28.1073,50.0767 -51.59882,68.75663 -4.51138,3.58735 -14.17744,10.08816 -19.75556,13.2864 -5.71429,3.27631 -16.55936,8.43954 -22.40138,10.66507 -22.80973,8.68939 -46.6421,12.33747 -70.55555,10.8001 z m 19.93194,-47.96386 c 29.14081,-2.50322 55.34477,-14.82307 75.17415,-35.34329 18.27114,-18.90769 29.06845,-41.81794 32.29806,-68.53161 0.61364,-5.07567 0.61364,-19.97154 0,-25.04722 -3.23107,-26.72572 -14.01866,-49.61537 -32.29806,-68.5316 -26.17801,-27.09003 -63.8503,-39.879737 -101.45609,-34.444247 -40.13126,5.800517 -74.90491,32.525387 -90.82786,69.804667 -4.448017,10.41383 -7.183307,20.87142 -8.722427,33.34757 -0.60148,4.87566 -0.59211,19.84443 0.0156,24.87083 3.23108,26.72573 14.018657,49.61538 32.298067,68.53161 19.64716,20.33165 46.03634,32.81965 74.64499,35.32384 4.89002,0.42803 14.00778,0.43743 18.87361,0.0194 z\"\n                style=\"stroke-width:0.352778\" />\n            </g>\n          </svg>\n        ` : html`\n          <span class=\"${this.siteIcon} ${this.siteTrust}\"></span>\n        `}\n        <span class=\"label\">${this.siteTitle}</span>\n        ${this.siteSubtitle ? html`<span class=\"label sublabel\">${this.siteSubtitle}</span>` : ''}\n      `\n    }\n\n    if (!innerHTML) {\n      return html`<button class=\"hidden\"></button>`\n    }\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <button class=${classMap({[this.siteTrust]: true, pressed: this.isPressed, 'hide-origin': this.hideOrigin, rounded: this.rounded})} @click=${this.onClickButton}>\n        ${innerHTML}\n        ${this.renderHyperCtrls()}\n      </button>\n    `\n  }\n\n  renderHyperCtrls () {\n    if (!this.isHyperdrive) {\n      return ''\n    }\n    if (this.writable) {\n      if (['system', 'profile'].includes(this.driveIdent)) {\n        return ''\n      }\n      return html`<span class=\"fas fa-fw fa-pen\"></span>`\n    }\n  }\n\n  // events\n  // =\n\n  async onClickButton (e) {\n    if (Date.now() - (this.lastButtonClick||0) < 100) {\n      return\n    }\n    this.isPressed = true\n    var rect = e.currentTarget.getClientRects()[0]\n    await bg.views.toggleSiteInfo({\n      bounds: {\n        top: (rect.bottom|0),\n        left: (rect.left|0)\n      }\n    })\n    this.isPressed = false\n    this.lastButtonClick = Date.now()\n  }\n}\nNavbarSiteInfo.styles = [buttonResetCSS, css`\n:host {\n  display: block;\n  min-width: 5px;\n}\n\nbutton {\n  border-radius: 0;\n  border-top-left-radius: 16px;\n  border-bottom-left-radius: 16px;\n  height: 26px;\n  line-height: 27px;\n  padding: 0 12px 0 10px;\n  background: var(--bg-color--cert--default);\n  clip-path: polygon(0% 0%, 100% 0%, calc(100% - 6px) 100%, 0% 100%);\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n:host([autocomplete-open]) button {\n  border-top-left-radius: 12px;\n  border-bottom-left-radius: 0;\n}\n\nbutton:not(:disabled):hover {\n  background: var(--bg-color--cert--default--hover);\n}\n\nbutton.trusted {\n  background: var(--bg-color--cert--trusted);\n}\n\nbutton.trusted:hover {\n  background: var(--bg-color--cert--trusted--hover);\n}\n\nbutton.untrusted {\n  background: var(--bg-color--cert--untrusted);\n}\n\nbutton.untrusted:hover {\n  background: var(--bg-color--cert--untrusted--hover);\n}\n\nbutton.hide-origin .label {\n  display: none;\n}\n\nbutton.rounded {\n  clip-path: none;\n  border-radius: 16px;\n  padding: 0 10px 0 10px;\n  margin-right: 2px;\n}\n\nbutton.hidden {\n  display: none;\n}\n\n.fa-exclamation-triangle,\n.fa-check-circle {\n  font-size: 12.5px;\n  line-height: 27px;\n}\n\n.fa-user-check {\n  font-size: 12px;\n  line-height: 27px;\n}\n\n.beaker-logo {\n  width: 16px;\n  height: 16px;\n  position: relative;\n  top: 3px;\n  margin: 0 -2px;\n}\n\n.beaker-logo path {\n  fill: var(--text-color--cert--trusted);\n}\n\n.fa-user {\n  font-size: 9px;\n  position: relative;\n  top: -1px;\n}\n\n.label {\n  margin-left: 2px;\n  margin-right: 2px;\n  font-variant-numeric: tabular-nums;\n  font-weight: 400;\n  font-size: 12.5px;\n  line-height: 27px;\n  letter-spacing: 0.5px;\n}\n\n.label.sublabel {\n  display: inline-block;\n  height: 18px;\n  line-height: 20px;\n  border-radius: 4px;\n  padding: 0 5px;\n  background: var(--bg-color--cert-sublabel);\n  color: var(--text-color--cert-sublabel);\n}\n\n.notrust {\n  color: var(--text-color--cert--notrust);\n}\n\n.trusted {\n  color: var(--text-color--cert--trusted);\n}\n\n.secure {\n  color: var(--text-color--cert--secure);\n}\n\n.warning {\n  color: var(--text-color--cert--warning);\n}\n\n.untrusted {\n  color: var(--text-color--cert--untrusted);\n}\n\n`]\ncustomElements.define('shell-window-navbar-site-info', NavbarSiteInfo)\n"
  },
  {
    "path": "app/fg/shell-window/navbar/tooltip.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element'\n\nconst cssStr = css`\n*[data-tooltip] {\n  position: relative;\n}\n\n*[data-tooltip]:hover:before,\n*[data-tooltip]:hover:after {\n  display: block;\n  z-index: 1000;\n  transition: opacity 0.01s ease;\n  transition-delay: 0.2s;\n}\n\n*[data-tooltip]:hover:after {\n  opacity: 1;\n}\n\n*[data-tooltip]:hover:before {\n  transform: translate(-50%, 0);\n  opacity: 1;\n}\n\n*[data-tooltip]:before {\n  opacity: 0;\n  transform: translate(-50%, 0);\n  position: absolute;\n  top: 33px;\n  left: 50%;\n  z-index: 3000;\n  content: attr(data-tooltip);\n  background: rgba(17, 17, 17, 0.95);\n  font-size: 0.7rem;\n  border: 0;\n  border-radius: 4px;\n  padding: 7px 10px;\n  color: rgba(255, 255, 255, 0.925);\n  text-transform: none;\n  text-align: center;\n  font-weight: 500;\n  white-space: pre;\n  line-height: 1;\n  pointer-events: none;\n}\n\n*[data-tooltip]:after {\n  opacity: 0;\n  position: absolute;\n  left: calc(50% - 6px);\n  top: 28px;\n  content: '';\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid rgba(17, 17, 17, 0.95);\n  pointer-events: none;\n}\n\n.tooltip-nodelay[data-tooltip]:hover:before,\n.tooltip-nodelay[data-tooltip]:hover:after {\n  transition-delay: initial;\n}\n\n.tooltip-right[data-tooltip]:before {\n  top: 50%;\n  left: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-right[data-tooltip]:after {\n  top: 50%;\n  left: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-right: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-left[data-tooltip]:before {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-left[data-tooltip]:after {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-left: 6px solid rgba(17, 17, 17, 0.95);\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/fg/shell-window/navbar.js",
    "content": "/* globals customElements */\nimport {LitElement, html, css} from '../vendor/lit-element/lit-element'\nimport {classMap} from '../vendor/lit-element/lit-html/directives/class-map'\nimport _get from 'lodash.get'\nimport * as bg from './bg-process-rpc'\nimport buttonResetCSS from './navbar/button-reset.css'\nimport './navbar/location'\nimport './navbar/inpage-find'\n\nclass ShellWindowNavbar extends LitElement {\n  static get properties () {\n    return {\n      activeTabIndex: {type: Number},\n      activeTab: {type: Object},\n      isSidebarHidden: {type: Boolean, attribute: 'is-sidebar-hidden'},\n      isUpdateAvailable: {type: Boolean, attribute: 'is-update-available'},\n      numWatchlistNotifications: {type: Number, attribute: 'num-watchlist-notifications'},\n      isHolepunchable: {type: Boolean, attribute: 'is-holepunchable'},\n      isDaemonActive: {type: Boolean, attribute: 'is-daemon-active'},\n      isBrowserMenuOpen: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.activeTabIndex = -1\n    this.activeTab = null\n    this.isSidebarHidden = false\n    this.isUpdateAvailable = false\n    this.numWatchlistNotifications = 0\n    this.isHolepunchable = true\n    this.isDaemonActive = false\n    this.isBrowserMenuOpen = false\n  }\n\n  get canGoBack () {\n    return _get(this, 'activeTab.canGoBack')\n  }\n\n  get canGoForward () {\n    return _get(this, 'activeTab.canGoForward')\n  }\n\n  get canGoUp () {\n    var url = _get(this, 'activeTab.url', '')\n    try {\n      var urlp = new URL(url)\n      if (urlp.pathname !== '/') return true\n      if (urlp.search) return true\n      if (urlp.hash) return true\n      return false\n    } catch (e) {\n      return false\n    }\n  }\n\n  get isLoading () {\n    return _get(this, 'activeTab.isLoading')\n  }\n\n  focusLocation () {\n    this.shadowRoot.querySelector('shell-window-navbar-location').focusLocation()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"buttons\" style=\"padding: 0 6px\">\n        ${this.backBtn}\n        ${this.forwardBtn}\n        ${this.reloadBtn}\n        ${this.updogBtn}\n        ${this.homeBtn}\n      </div>\n      <shell-window-navbar-location\n        class=${classMap({[_get(this.activeTab, 'siteTrust', 'notrust')]: true})}\n        .activeTabIndex=\"${this.activeTabIndex}\"\n        url=\"${_get(this, 'activeTab.url', '')}\"\n        title=\"${_get(this, 'activeTab.title', '')}\"\n        siteTitle=\"${_get(this, 'activeTab.siteTitle', '')}\"\n        siteSubtitle=\"${_get(this, 'activeTab.siteSubtitle', '')}\"\n        siteIcon=\"${_get(this, 'activeTab.siteIcon', '')}\"\n        siteTrust=\"${_get(this, 'activeTab.siteTrust', '')}\"\n        driveDomain=\"${_get(this, 'activeTab.driveDomain', '')}\"\n        driveIdent=${_get(this, 'activeTab.driveIdent', '')}\n        ?writable=${_get(this, 'activeTab.writable', false)}\n        folder-sync-path=\"${_get(this, 'activeTab.folderSyncPath') || ''}\"\n        peers=\"${_get(this, 'activeTab.peers', 0)}\"\n        zoom=\"${_get(this, 'activeTab.zoom', '')}\"\n        .loadError=${_get(this, 'activeTab.loadError', null)}\n        donate-link-href=\"${_get(this, 'activeTab.donateLinkHref') || ''}\"\n        ?is-live-reloading=${_get(this, 'activeTab.isLiveReloading')}\n        ?is-bookmarked=${_get(this, 'activeTab.isBookmarked', false)}\n      ></shell-window-navbar-location>\n      <shell-window-navbar-inpage-find\n        .activeTabIndex=\"${this.activeTabIndex}\"\n        ?is-active=${_get(this, 'activeTab.isInpageFindActive', false)}\n        query=\"${_get(this, 'activeTab.currentInpageFindString', '')}\"\n        active-match=\"${_get(this, 'activeTab.currentInpageFindResults.activeMatchOrdinal', '0')}\"\n        num-matches=\"${_get(this, 'activeTab.currentInpageFindResults.matches', '0')}\"\n      ></shell-window-navbar-inpage-find>\n      <div class=\"buttons\">\n        ${this.watchlistBtn}\n        ${this.daemonInactiveBtn}\n        ${this.browserMenuBtn}\n      </div>\n    `\n  }\n\n  get backBtn () {\n    return html`\n      <button class=\"nav-arrow-btn\" ?disabled=${!this.canGoBack} @click=${this.onClickGoBack} style=\"margin: 0px 2px\" title=\"Back\">\n        <svg\n          class=\"icon nav-arrow\"\n          width=\"9\" height=\"16\"\n          viewBox=\"0 0 9 16\"\n          xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          style=\"position: relative; left: -2px;\"\n        >\n          <g fill=\"none\" stroke-linejoin=\"round\">\n            <polyline stroke-width=\"2\" transform=\"translate(4.500000, 8.000000) scale(1, 1) translate(-4.500000, -8.000000) \" points=\"8 1 1 8 8 15\"/>\n          </g>\n        </svg>\n      </button>\n    `\n  }\n\n  get forwardBtn () {\n    return html`\n      <button class=\"nav-arrow-btn\" ?disabled=${!this.canGoForward} @click=${this.onClickGoForward} style=\"margin: 0px 2px\" title=\"Forward\">\n        <svg\n          class=\"icon nav-arrow\"\n          width=\"9\" height=\"16\"\n          viewBox=\"0 0 9 16\"\n          xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n        >\n          <g fill=\"none\" stroke-linejoin=\"round\">\n            <polyline stroke-width=\"2\" transform=\"translate(4.500000, 8.000000) scale(-1, 1) translate(-4.500000, -8.000000) \" points=\"8 1 1 8 8 15\"/>\n          </g>\n        </svg>\n      </button>\n    `\n  }\n\n  get reloadBtn () {\n    if (this.isLoading) {\n      return html`\n        <button @click=${this.onClickStop} style=\"margin: 0px 2px\" title=\"Refresh\">\n          <svg\n            class=\"icon close\"\n            width=\"12\"\n            height=\"12\"\n            viewBox=\"0 0 58 58\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g id=\"svg-close\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n              <g transform=\"translate(4, 5)\" stroke-width=\"10\">\n                <path d=\"M1.5,0.5 L48.5,47.5\"/>\n                <path d=\"M48.5,0 L1,48\"/>\n              </g>\n            </g>\n          </svg>\n        </button>\n      `\n    }\n    return html`\n      <button @click=${this.onClickReload} style=\"margin: 0px 2px\">\n        <svg\n          class=\"icon refresh\"\n          width=\"16\"\n          height=\"15\"\n          viewBox=\"0 0 16 15\"\n          xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n        >\n          <g transform=\"translate(1.000000, 1.000000)\" fill=\"none\">\n            <path d=\"M10.9451459,1.75753722 C9.78269142,0.66752209 8.21929978,0 6.5,0 C2.91014913,0 0,2.91014913 0,6.5 C0,10.0898509 2.91014913,13 6.5,13 C9.00186057,13 11.173586,11.5865234 12.2601674,9.51457898\" stroke-linecap=\"round\"/>\n            <polygon fill=\"#666666\" points=\"14.2374369 4.98743687 9.64124279 4.63388348 13.8838835 0.391242789\"/>\n          </g>\n        </svg>\n      </button>\n    `\n  }\n\n  get updogBtn () {\n    return html`\n      <button @click=${this.onClickUpdog} ?disabled=${!this.canGoUp} style=\"margin: 0 0 0 4px\" title=\"Up\">\n        <span class=\"fas fa-level-up-alt\"></span>\n      </button>\n    `\n  }\n\n  get homeBtn () {\n    return html`\n      <button @click=${this.onClickHome} style=\"margin: 0 6px\" title=\"Home\">\n        <span class=\"fas fa-home\"></span>\n      </button>\n    `\n  }\n\n  get watchlistBtn () {\n    if (!this.numWatchlistNotifications) {\n      return html``\n    }\n    return html`\n      <button class=\"watchlist-btn\" @click=${this.onClickWatchlistBtn} style=\"margin: 0px 2px\">\n        <span class=\"fas fa-eye\"></span>\n        <span class=\"badge\">${this.numWatchlistNotifications}</span>\n      </button>\n    `\n  }\n\n  get daemonInactiveBtn () {\n    if (this.isDaemonActive) return ''\n    return html`\n      <button class=\"daemon-inactive-btn\" @click=${this.onClickDaemonInactiveBtn} style=\"margin: 0px 2px\">\n        <span class=\"fas fa-exclamation-triangle\"></span>\n      </button>\n    `\n  }\n\n  get browserMenuBtn () {\n    const cls = classMap({'browser-menu-btn': true, pressed: this.isBrowserMenuOpen})\n    return html`\n      <button class=${cls} @click=${this.onClickBrowserMenu} style=\"margin: 0px 2px\">\n        ${this.isUpdateAvailable\n          ? html`<span class=\"fas fa-arrow-alt-circle-up\"></span>`\n          : html`<span class=\"fa fa-bars\"></span>`}\n        ${!this.isHolepunchable ? html`<span class=\"fas fa-circle\"></span>` : ''}\n      </button>\n    `\n  }\n\n  // events\n  // =\n\n  onClickGoBack (e) {\n    bg.views.goBack(this.activeTabIndex)\n  }\n\n  onClickGoForward (e) {\n    bg.views.goForward(this.activeTabIndex)\n  }\n\n  onClickStop (e) {\n    bg.views.stop(this.activeTabIndex)\n  }\n\n  onClickReload (e) {\n    bg.views.reload(this.activeTabIndex)\n  }\n\n  onClickHome (e) {\n    bg.views.loadURL('active', '$new_tab')\n  }\n\n  onClickUpdog (e) {\n    var url = _get(this, 'activeTab.url', '')\n    if (!url) return\n    try {\n      let urlp = new URL(url)\n      let pathname = `/${urlp.pathname.split('/').filter(Boolean).slice(0, -1).join('/')}`\n      url = urlp.origin + pathname\n      bg.views.loadURL('active', url)\n    } catch (e) {\n      // ignore\n    }\n  }\n\n  onClickWatchlistBtn (e) {\n    this.numWatchlistNotifications = 0\n    bg.views.createTab('beaker://watchlist', {setActive: true})\n  }\n\n  onClickDaemonInactiveBtn (e) {\n    bg.views.createTab('beaker://settings', {setActive: true})\n  }\n\n  async onClickBrowserMenu (e) {\n    if (Date.now() - (this.lastMenuClick||0) < 100) return\n    this.isBrowserMenuOpen = true\n    await bg.views.toggleMenu('browser')\n    this.isBrowserMenuOpen = false\n    this.lastMenuClick = Date.now()\n  }\n}\nShellWindowNavbar.styles = css`\n:host {\n  display: flex;\n  background: var(--bg-color--foreground);\n  height: 28px;\n  padding: 6px 0;\n  border-bottom: 1px solid var(--border-color--navbar);\n}\n\n${buttonResetCSS}\n\nbutton {\n  width: 28px;\n  position: relative;\n}\n\nbutton .fa,\nbutton .far,\nbutton .fas {\n  font-size: 16px;\n  color: var(--text-color--navbar-btn);\n}\n\nsvg.icon * {\n  stroke: var(--stroke-color--navbar-btn);\n}\n\nsvg.icon.refresh {\n  stroke-width: 1.75;\n}\n\n.buttons {\n  display: flex;\n  padding: 0 8px;\n}\n\n.fas.fa-level-up-alt {\n  font-size: 15px;\n  position: relative;\n  top: -1px;\n  color: var(--text-color--navbar-btn--lighter);\n}\n\n.fas.fa-exclamation-triangle {\n  color: var(--text-color--navbar-btn--warning);\n}\n\n.fas.fa-wifi {\n  color: var(--text-color--navbar-btn--lighter);\n}\n\n.fas.fa-arrow-alt-circle-up {\n  font-size: 20px;\n  color: var(--text-color--navbar-btn--success);\n}\n\n.badge {\n  position: absolute;\n  left: 0px;\n  top: 2px;\n  font-size: 10px;\n  border-radius: 8px;\n  height: 15px;\n  min-width: 10px;\n  line-height: 14px;\n  background: #0090ff;\n  color: #fff;\n  font-weight: bold;\n  padding: 0 3px;\n}\n\n.browser-menu-btn {\n  position: relative;\n}\n\n.browser-menu-btn .fa-circle {\n  position: absolute;\n  font-size: 8px;\n  right: 2px;\n  bottom: 4px;\n  color: var(--text-color--navbar-btn--warning);\n  -webkit-text-stroke: 2px var(--bg-color--foreground);\n}\n`\ncustomElements.define('shell-window-navbar', ShellWindowNavbar)\n"
  },
  {
    "path": "app/fg/shell-window/panes.js",
    "content": "/* globals customElements */\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport * as bg from './bg-process-rpc'\n\nconst STATUS_BAR_HEIGHT = 22\n\nclass ShellWindowPanes extends LitElement {\n  static get properties () {\n    return {\n      activeTab: {type: Object},\n      focusAttachId: {type: Number}\n    }\n  }\n\n  static get styles () {\n    return css`\n    .pane-background {\n      position: fixed;\n      background: var(--bg-color--content);\n      z-index: 1;\n    }\n    .pane-border {\n      position: fixed;\n      background: var(--bg-color--paneborder);\n      z-index: 2;\n    }\n    .pane-border.active {\n      z-index: 3;\n      background: var(--bg-color--paneborder--active);\n    }\n    .pane-border.horz {\n      height: 2px;\n    }\n    .pane-border.horz.movable {\n      cursor: ns-resize;\n    }\n    .pane-border.vert {\n      width: 2px;\n    }\n    .pane-border.vert.movable {\n      cursor: ew-resize;\n    }\n    .pane-status-bar {\n      position: fixed;\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      background: var(--bg-color--pane-status-bar);\n      color: var(--text-color--pane-status-bar);\n      z-index: 2;\n      display: flex;\n      align-items: baseline;\n      box-sizing: border-box;\n      padding: 0 4px;\n      font-size: 12px;\n      letter-spacing: 0.5px;\n      line-height: 23px;\n    }\n    .pane-status-bar.active {\n      color: var(--text-color--pane-status-bar--active);\n      background: var(--bg-color--pane-status-bar--active);\n    }\n    .pane-status-bar .status {\n      flex: 1;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n    .pane-status-bar .indicator {\n      position: relative;\n      top: -1px;\n      font-size: 9px;\n      margin: 0 2px;\n      color: var(--text-color--pane-status-bar-indicator);\n    }\n    .pane-status-bar button {\n      border: 0;\n      font-size: 11px;\n      line-height: 12px;\n      background: transparent;\n      color: inherit;\n      padding: 2px 4px;\n      border-radius: 2px;\n    }\n    .pane-status-bar button:hover {\n      background: var(--bg-color--pane-status-bar-button--hover);\n    }\n    .pane-status-bar button.attachment span.icon {\n      font-size: 14px;\n    }\n    .rotate90 {\n      transform: rotate(-90deg);\n    }\n    `\n  }\n\n  constructor () {\n    super()\n    this.activeTab = undefined\n    this.isResizing = false\n    this.focusAttachId = undefined\n    document.body.addEventListener('mousemove', this.onMouseMove.bind(this))\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.activeTab) {\n      return html``\n    }\n    \n    const hasMultiple = this.activeTab.paneLayout.length > 1\n    const attachTargets = {}\n    for (let pane of this.activeTab.paneLayout) {\n      if (pane.attachedPaneId) {\n        attachTargets[pane.attachedPaneId] = true\n      }\n    }\n\n    const background = (pane) => this.isResizing ? '' : html`\n      <div class=\"pane-background\"\n        style=\"left: ${pane.bounds.x}px; top: ${pane.bounds.y}px; width: ${pane.bounds.width}px; height: ${pane.bounds.height}px\"\n      ></div>\n    `\n    const horzLine = (pane, y, edge) => html`\n      <div class=\"pane-border horz ${!pane.isEdge[edge] ? 'movable' : ''} ${edge === 'top' && pane.isActive ? 'active' : ''}\"\n        style=\"left: ${pane.bounds.x - 2}px; top: ${y}px; width: ${pane.bounds.width + 4}px\"\n        @mousedown=${e => this.onMouseDown(e, pane, edge)}\n        @mousemove=${this.onMouseMove}\n        @mouseup=${this.onMouseUp}\n      ></div>\n    `\n    const vertLine = (pane, x, edge) => html`\n      <div class=\"pane-border vert ${!pane.isEdge[edge] ? 'movable' : ''}\"\n        style=\"left: ${x}px; top: ${pane.bounds.y}px; height: ${pane.bounds.height + 2}px\"\n        @mousedown=${e => this.onMouseDown(e, pane, edge)}\n        @mousemove=${this.onMouseMove}\n        @mouseup=${this.onMouseUp}\n      ></div>\n    `\n    const statusBar = (pane) => html`\n      <div class=\"pane-status-bar ${pane.isActive ? 'active' : ''}\"\n        style=\"left: ${pane.bounds.x}px; top: ${pane.bounds.y + pane.bounds.height - STATUS_BAR_HEIGHT}px; width: ${pane.bounds.width}px; height: ${STATUS_BAR_HEIGHT}px\"\n      >\n        ${pane.isActive && hasMultiple ? html`<span class=\"fas fa-circle indicator\"></span>` : ''}\n        <button @click=${e => this.onClickPaneMenu(e, pane)}>\n          <span class=\"fa fa-bars\"></span>\n        </button>\n        <span class=\"status\">\n          ${pane.status || pane.title}\n        </span>\n        ${hasMultiple ? html`\n          <button\n            class=\"attachment\"\n            @click=${e => this.onClickAttachMenu(e, pane)}\n            @mouseover=${e => this.onMouseoverAttachMenu(e, pane)}\n            @mouseleave=${e => this.onMouseleaveAttachMenu(e, pane)}\n          >\n            ${pane.attachedPaneId ? html`\n              Attached <span class=\"icon\">⚯</span>\n            ` : pane.wantsAttachedPane ? html`\n              <span class=\"icon\">⚬</span>\n            ` : ''}\n          </button>\n        ` : ''}\n        ${Number(pane.id) === Number(this.focusAttachId) ? html`\n          <span class=\"icon rotate90\">☞</span>\n        ` : ''}\n      </div>\n    `\n\n    if (!hasMultiple) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        ${repeat(this.activeTab.paneLayout, pane => pane.id, pane => html`\n          ${background(pane)}\n          ${statusBar(pane)}\n        `)}\n      `\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${repeat(this.activeTab.paneLayout, pane => pane.id, pane => html`\n        ${background(pane)}\n        ${horzLine(pane, pane.bounds.y - 2, 'top')}\n        ${!pane.isEdge.bottom ? horzLine(pane, pane.bounds.y + pane.bounds.height, 'bottom') : ''}\n        ${!pane.isEdge.right ? vertLine(pane, pane.bounds.x + pane.bounds.width, 'right') : ''}\n        ${statusBar(pane)}\n      `)}\n    `\n  }\n\n  // events\n  // =\n\n  onMouseDown (e, pane, edge) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.isResizing = true\n    this.requestUpdate()\n    bg.views.setPaneResizeModeEnabled(true, pane.id, edge)\n  }\n\n  onMouseMove (e) {\n    if (this.isResizing && !e.buttons) {\n      bg.views.setPaneResizeModeEnabled(false)\n      this.isResizing = false\n      this.requestUpdate()\n    }\n  }\n\n  onMouseUp (e) {\n    if (this.isResizing) {\n      bg.views.setPaneResizeModeEnabled(false)\n      this.isResizing = false\n      this.requestUpdate()\n    }\n  }\n\n  onClickPaneMenu (e, pane) {\n    bg.views.openPaneMenu(pane.id)\n  }\n\n  onClickAttachMenu (e, pane) {\n    bg.views.openAttachMenu(pane.id)\n  }\n\n  onMouseoverAttachMenu (e, pane) {\n    this.focusAttachId = pane.attachedPaneId\n  }\n\n  onMouseleaveAttachMenu (e, pane) {\n    this.focusAttachId = undefined\n  }\n}\ncustomElements.define('shell-window-panes', ShellWindowPanes)\n"
  },
  {
    "path": "app/fg/shell-window/resize-hackfix.js",
    "content": "// HACK\n// Electron has an issue where browserviews fail to calculate click regions after a resize\n// https://github.com/electron/electron/issues/14038\n// we can solve this by forcing a recalculation after every resize\n// -prf\n\nimport _debounce from 'lodash.debounce'\n\nwindow.addEventListener('resize', () => {\n  forceUpdateDragRegions()\n})\n\n// big thanks to PalmerAL and minbrowser for this fix\n// https://github.com/electron/electron/issues/14038#issuecomment-443948939\nconst forceUpdateDragRegions = window.forceUpdateDragRegions = _debounce(() => {\n  setTimeout(function () {\n    var d = document.createElement('div')\n    d.setAttribute('style', '-webkit-app-region:drag; width: 1px; height: 1px;')\n    document.body.appendChild(d)\n    setTimeout(function () {\n      document.body.removeChild(d)\n    }, 100)\n  }, 100)\n}, 100)"
  },
  {
    "path": "app/fg/shell-window/spinner.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element'\n\nexport default css`\n.spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n`"
  },
  {
    "path": "app/fg/shell-window/tabs.js",
    "content": "/* globals customElements */\nimport { ipcRenderer } from 'electron'\nimport { LitElement, html, css } from '../vendor/lit-element/lit-element'\nimport { classMap } from '../vendor/lit-element/lit-html/directives/class-map'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat'\nimport spinnerCSS from './spinner.css'\nimport * as bg from './bg-process-rpc'\n\nconst ANIMATIONS_ENABLED = false\n\nclass ShellWindowTabs extends LitElement {\n  static get properties () {\n    return {\n      tabs: {type: Array},\n      isFullscreen: {type: Boolean, attribute: 'is-fullscreen'},\n      hasBgTabs: {type: Boolean, attribute: 'has-bg-tabs'},\n      isBackgroundTrayOpen: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.tabs = []\n    this.tabsTransitionState = undefined // used for 'close animations'\n    this.isFullscreen = false\n    this.hasBgTabs = false\n    this.draggedTabIndex = null\n    this.isDraggingWindow = false\n    this.isBackgroundTrayOpen = false\n    this.faviconCache = {}\n\n    // use mousemove to ensure that dragging stops if the mouse button isnt pressed\n    // (we use this instead of mouseup because mouseup could happen outside the window)\n    window.addEventListener('mousemove', e => {\n      if (this.isDraggingWindow && (e.buttons & 1) === 0) {\n        bg.beakerBrowser.setWindowDragModeEnabled(false)\n        this.isDraggingWindow = false\n      }\n    })\n\n    // listen for commands from the main process\n    ipcRenderer.on('command', this.onCommand.bind(this))\n    window.doMinimizeToBgAnim = this.doMinimizeToBgAnim.bind(this)\n  }\n\n  get tabsState () {\n    return this.tabsTransitionState || this.tabs\n  }\n\n  getFavicon (index) {\n    var tab = this.tabsState[index]\n    if (!tab) return\n    var cache\n    try {\n      cache = this.faviconCache[(new URL(tab.url)).origin]\n    } catch (e) {\n      // invalid URL\n    }\n    if (tab.favicons && tab.favicons[0]) {\n      if (cache && cache.lastTried === tab.favicons[0]) {\n        return null // this favicon has been tried and failed\n      }\n      return tab.favicons[0]\n    }\n    if (cache) return cache.url // fallback to cache\n  }\n\n  render () {\n    const shellCls = classMap({\n      shell: true,\n      [window.platform]: true,\n      fullscreen: this.isFullscreen\n    })\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div\n        class=\"${shellCls}\"\n        @mousedown=${this.onMousedownShell}\n        @dblclick=${this.onDblclickShell}\n      >\n        <div class=\"tabs\">\n          ${this.backgroundTrayBtn}\n          ${repeat(this.tabsState, (tab, index) => this.renderTab(tab, index))}\n          <div\n            class=\"unused-space\"\n            @dragover=${e => this.onDragoverTab(e, this.tabsState.length)}\n            @dragleave=${e => this.onDragleaveTab(e, this.tabsState.length)}\n            @drop=${e => this.onDropTab(e, this.tabsState.length)}\n          >\n            <div class=\"tab tab-add-btn\" @click=${this.onClickNew} title=\"Open new tab\">\n              <span class=\"plus\">+</span>\n            </div>\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  renderTab (tab, index) {\n    const faviconUrl = this.getFavicon(index)\n    const showFavicon = Boolean(\n      tab.isLoading\n      || tab.isPinned\n      || faviconUrl\n      || tab.url.startsWith('beaker:')\n    )\n    const cls = classMap({\n      tab: true,\n      current: tab.isActive,\n      pinned: tab.isPinned,\n      'has-icon': tab.isAudioMuted || tab.isCurrentlyAudible,\n      'no-hover': this.tabs.length >= 12,\n      'no-favicon': !showFavicon\n    })\n    return html`\n      <div\n        class=\"${cls}\"\n        title=${tab.title || tab.url}\n        draggable=\"true\"\n        @click=${e => this.onClickTab(e, index)}\n        @contextmenu=${e => this.onContextmenuTab(e, index)}\n        @mousedown=${e => this.onMousedownTab(e, index)}\n        @dragstart=${e => this.onDragstartTab(e, index)}\n        @dragend=${e => this.onDragendTab(e, index)}\n        @dragover=${e => this.onDragoverTab(e, index)}\n        @dragleave=${e => this.onDragleaveTab(e, index)}\n        @drop=${e => this.onDropTab(e, index)}\n      >\n        ${showFavicon ? html`\n          <div class=\"tab-favicon\">\n            ${tab.isLoading\n              ? tab.isReceivingAssets\n                ? html`<div class=\"spinner\"></div>`\n                : html`<div class=\"spinner reverse\"></div>`\n              : faviconUrl\n                ? html`\n                  <img\n                    src=\"${faviconUrl}\"\n                    @load=${e => this.onFaviconLoad(e, index)}\n                    @error=${e => this.onFaviconError(e, index)}\n                  >\n                `\n                : html`<img src=\"asset:favicon:${tab.url}?cache=${Date.now()}\">`\n            }\n          </div>\n        ` : ''}\n        ${tab.isPinned\n          ? ''\n          : html`\n            <div class=\"tab-title\">${tab.title || tab.url}</div>\n            ${tab.isAudioMuted\n              ? html`<span class=\"fas fa-volume-mute\"></span>`\n              : tab.isCurrentlyAudible\n                ? html`<span class=\"fas fa-volume-up\"></span>`\n                : ''}\n            ${this.tabs.length < 12 || tab.isActive ? html`\n              <div class=\"tab-close\" title=\"Close tab\" @click=${e => this.onClickClose(e, index)}></div>\n            ` : ''}\n          `}\n      </div>\n    `\n  }\n\n  get backgroundTrayBtn () {\n    if (!this.hasBgTabs) return ''\n    const cls = classMap({\n      'background-tray-btn': true,\n      pressed: this.isBackgroundTrayOpen,\n      hidden: !this.hasBgTabs\n    })\n    return html`\n      <button class=${cls} @click=${this.onClickBackgroundTray}>\n        <span class=\"fas fa-caret-down\"></span>\n      </button>\n    `\n  }\n\n  updated (changedProperties) {\n    if (ANIMATIONS_ENABLED && changedProperties.has('tabs')) {\n      let oldVal = changedProperties.get('tabs') || []\n      let [oldLen, newLen] = [oldVal.length, this.tabs.length]\n      if (newLen > oldLen) {\n        // new tab\n        let newTabIndex = this.tabs.findIndex(t1 => !oldVal.find(t2 => t2.id === t1.id))\n        if (newTabIndex === -1) return\n        Array.from(this.shadowRoot.querySelectorAll('.tabs > .tab'))[newTabIndex].animate([\n          { transform: 'scaleX(0)', transformOrigin: 'center left' },\n          { transform: 'scaleX(1)', transformOrigin: 'center left' }\n        ], {\n          duration: 100,\n          iterations: 1\n        })\n      }\n    }\n  }\n\n  async shouldUpdate (changedProperties) {\n    if (ANIMATIONS_ENABLED && changedProperties.has('tabs')) {\n      let oldVal = changedProperties.get('tabs') || []\n      let [oldLen, newLen] = [oldVal.length, this.tabs.length]\n      if (newLen < oldLen) {\n        // closed tab\n        if (!this.tabsTransitionState) {\n          this.tabsTransitionState = oldVal\n        }\n        let closingTabIndex = this.tabsTransitionState.findIndex(t1 => !this.tabs.find(t2 => t2.id === t1.id))\n        if (closingTabIndex === -1) return true\n        let el = Array.from(this.shadowRoot.querySelectorAll('.tabs > .tab'))[closingTabIndex]\n        let rect = el.getClientRects()[0]\n        el.animate([{ width: `${rect.width}px` }, {width: '0px'}], {\n          duration: 100,\n          iterations: 1\n        }).onfinish = () => {\n          this.tabsTransitionState = undefined\n          this.requestUpdate()\n        }\n        return false\n      }\n    }\n  }\n\n  doMinimizeToBgAnim () {\n    // DISABLED\n    // var srcEl = this.shadowRoot.querySelector('.tab.current')\n    // var dstEl = this.shadowRoot.querySelector('.tabs')\n    // if (!srcEl) return console.warn('Minimize anim aborted; source element not found')\n    // if (!dstEl) return console.warn('Minimize anim aborted; target element not found')\n\n    // var src = srcEl.getClientRects()[0]\n    // var dst = dstEl.getClientRects()[0]\n    // var dist = Math.abs(src.left - dst.left)\n    // var animElem = document.createElement('div')\n    // animElem.classList.add('minimize-to-bg-anim-elem')\n    // this.shadowRoot.append(animElem)\n    // const px = v => `${v}px`\n    // animElem.animate([\n    //   {left: px(src.left), top: px(src.top), width: px(src.width), height: px(src.height)},\n    //   {left: px(dst.left), top: px(dst.top), width: px(dst.width), height: px(dst.height)}\n    // ], {iterations: 1, duration: Math.max(Math.min(dist / 6, 400), 100)}).onfinish = () => {\n    //   animElem.remove()\n    //   dstEl.animate([\n    //     {background: 'var(--bg-color--background)'},\n    //     {background: 'var(--bg-color--tab--hover)'},\n    //     {background: 'var(--bg-color--background)'}\n    //   ], {duration: 250, iterations: 1})\n    // }\n  }\n\n  // events\n  // =\n\n  async onClickBackgroundTray (e) {\n    if (Date.now() - (this.lastMenuClick||0) < 100) return\n    this.isBackgroundTrayOpen = true\n    await bg.views.toggleMenu('background-tray')\n    this.isBackgroundTrayOpen = false\n    this.lastMenuClick = Date.now()\n  }\n\n  onClickNew (e) {\n    bg.views.createTab(undefined, {focusLocationBar: true, setActive: true})\n  }\n\n  onClickTab (e, index) {\n    bg.views.setActiveTab(index)\n  }\n\n  onContextmenuTab (e, index) {\n    bg.views.showTabContextMenu(index)\n  }\n\n  onMousedownTab (e, index) {\n    // middle click\n    if (e.which === 2) {\n      bg.views.closeTab(index)\n    }\n  }\n\n  onClickClose (e, index) {\n    e.preventDefault()\n    e.stopPropagation()\n    bg.views.closeTab(index)\n  }\n\n  onFaviconLoad (e, index) {\n    var favicons = this.tabsState[index].favicons\n    var url = favicons && favicons[0] ? favicons[0] : null\n    var origin = (new URL(this.tabsState[index].url)).origin\n    this.faviconCache[origin] = {url}\n  }\n\n  onFaviconError (e, index) {\n    var origin = (new URL(this.tabsState[index].url)).origin\n    this.faviconCache[origin] = {\n      lastTried: this.tabsState[index].favicons ? this.tabsState[index].favicons[0] : null,\n      url: null // serve null from cache always\n    }\n    this.tabsState[index].favicons = null\n    this.requestUpdate()\n  }\n\n  onDragstartTab (e, index) {\n    this.draggedTabIndex = index\n    e.dataTransfer.effectAllowed = 'move'\n  }\n\n  onDragendTab (e, index) {\n    // TODO needed?\n  }\n\n  onDragoverTab (e, index) {\n    if (e.dataTransfer.files.length) {\n      return // allow toplevel event-handler to handle\n    }\n    e.preventDefault()\n\n    if (!this.canDrop(index)) {\n      return false\n    }\n\n    e.currentTarget.classList.add('drag-hover')\n    e.dataTransfer.dropEffect = 'move'\n    return false\n  }\n\n  onDragleaveTab (e, index) {\n    e.currentTarget.classList.remove('drag-hover')\n  }\n\n  onDropTab (e, index) {\n    if (e.dataTransfer.files.length) {\n      return // allow toplevel event-handler to handle\n    }\n    e.stopPropagation()\n    e.currentTarget.classList.remove('drag-hover')\n    \n    const url = e.dataTransfer.getData(\"text\")\n    if (url && (url.startsWith(\"https://\") || url.startsWith(\"dat://\") || url.startsWith(\"hyper://\"))) {\n      e.preventDefault()\n      bg.views.createTab(url, {focusLocationBar: true, setActive: true})\n      bg.views.reorderTab(this.tabsState.length, index)\n      return false;\n    }\n    if (this.draggedTabIndex !== null && this.canDrop(index)) {\n      bg.views.reorderTab(this.draggedTabIndex, index)\n    }\n    this.draggedTabIndex = null\n    return false\n  }\n\n  canDrop (index) {\n    if (this.draggedTabIndex === null) return false\n    var draggingTab = this.tabsState[this.draggedTabIndex]\n    var targetTab = this.tabsState[index]\n    if (draggingTab.isPinned !== targetTab.isPinned) {\n      // only allow tabs to drag within their own pinned/unpinned groups\n      return false\n    }\n    return true\n  }\n\n  onMousedownShell (e) {\n    const is = v => e.target.classList.contains(v)\n    if ((is('shell') || is('tabs') || is('unused-space')) && e.button === 0) {\n      this.isDraggingWindow = true\n      bg.beakerBrowser.setWindowDragModeEnabled(true)\n    }\n  }\n\n  onDblclickShell (e) {\n    const is = v => e.target.classList.contains(v)\n    if (is('shell') || is('tabs') || is('unused-space')) {\n      this.isDraggingWindow = false\n      bg.beakerBrowser.setWindowDragModeEnabled(false)\n      bg.beakerBrowser.toggleWindowMaximized()\n    }\n  }\n\n  onCommand (e, cmd) {\n    if (cmd === 'minimize-to-bg-anim') {\n      this.doMinimizeToBgAnim()\n    }\n  }\n}\nShellWindowTabs.styles = css`\n${spinnerCSS}\n\n.shell {\n  font-family: sans-serif;\n  background: var(--bg-color--background);\n  position: relative;\n  height: 34px;\n}\n\n.shell:not(.darwin) {\n  box-shadow: inset 0 2px 4px #0001;\n}\n\n.tabs {\n  display: flex;\n  padding: 0 18px 0 0;\n  border-bottom: 1px solid var(--border-color--tab);\n  height: 33px;\n}\n\n.shell:not(.darwin) .tabs > :first-child {\n  border-left: 0;\n}\n\n.background-tray-btn {\n  flex: 0 0 38px;\n  width: 38px;\n  height: 30px;\n  background: transparent;\n  color: var(--text-color--bg-tabs-btn);\n  border: 0;\n  border-left: 1px solid var(--border-color--tab);\n  margin-top: 3px;\n  outline: 0;\n}\n\n.background-tray-btn:hover,\n.background-tray-btn.pressed {\n  background: var(--bg-color--tab--hover);\n}\n\n.background-tray-btn span {\n  font-size: 14px;\n  line-height: 16px;\n}\n\n.background-tray-btn.hidden {\n  display: none;\n}\n\n.unused-space {\n  flex: 1;\n  position: relative;\n  top: 0px;\n  height: 33px;\n}\n\n.tabs * {\n  -webkit-user-select: none;\n  cursor: default;\n  font-size: 12px;\n  line-height: 13px;\n}\n\n.tab {\n  display: inline-block;\n  position: relative;\n  top: 3px;\n  height: 30px;\n  width: 200px;\n  min-width: 0; /* HACK: https://stackoverflow.com/questions/38223879/white-space-nowrap-breaks-flexbox-layout */\n  background: transparent;\n  transition: background 0.3s;\n  border-left: 1px solid var(--border-color--tab);\n}\n\n.tab.pinned {\n  flex: 0 0 45px;\n}\n\n.tab-favicon {\n  width: 16px;\n  height: 23px;\n  text-align: center;\n  position: absolute;\n  left: 10px;\n  top: 7px;\n  z-index: 3;\n}\n\n.tab-favicon img {\n  width: 16px;\n  height: 16px;\n}\n\n.tab-favicon .spinner {\n  position: relative;\n  left: 1px;\n  top: 1px;\n  width: 10px;\n  height: 10px;\n}\n\n.tab.pinned .tab-favicon {\n  left: 14px;\n}\n\n.tab-title {\n  font-family: system-ui;\n  color: var(--text-color--tab--title);\n  font-size: 11.5px;\n  padding: 9px 11px 9px 30px;\n  height: 13px;\n  line-height: 12px;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.tab.no-favicon .tab-title {\n  padding-left: 11px;\n}\n\n.fa-volume-up,\n.fa-volume-mute {\n  position: absolute;\n  top: 6px;\n  right: 10px;\n  font-size: 12px;\n  color: rgba(0,0,0,.6);\n  background: var(--bg-color--background);\n  padding: 2px 0 2px 4px;\n}\n\n.tab.current .fa-volume-up,\n.tab.current .fa-volume-mute {\n  background: var(--bg-color--foreground);\n}\n\n.tab-nofavicon .tab-title {\n  padding-left: 16px;\n}\n\n.tab-close,\n.tab-minimize {\n  opacity: 0;\n  position: absolute;\n  top: 7px;\n  width: 16px;\n  height: 16px;\n  z-index: 4;\n  border-radius: 2px;\n  text-align: center;\n  color: var(--text-color--tab--close);\n  background: var(--bg-color--background);\n  transition: background 0.3s;\n}\n\n.tab-close {\n  right: 8px;\n}\n\n.tab-close:before {\n  opacity: 0;\n}\n\n.tab-close:before {\n  display: block;\n  content: \"\\\\00D7\";\n  font-size: 20px;\n  font-weight: 200;\n  line-height: .71;\n}\n\n.tab-close:hover:before,\n.tab-close:active:before {\n  opacity: 1;\n}\n\n.tab-close:hover,\n.tab-close:active  {\n  background: var(--bg-color--tab-close--hover);\n}\n\n.tab:not(.current):hover,\n.tab:not(.current):hover .fa-volume-up,\n.tab:not(.current):hover .fa-volume-mute {\n  background: var(--bg-color--tab--hover);\n}\n\n.tab.has-icon .tab-title,\n.tab:hover:not(.no-hover) .tab-title {\n  padding-right: 28px;\n}\n\n.tab:hover .tab-close {\n  opacity: 1;\n  background: var(--bg-color--tab--hover);\n}\n\n.tab:hover .tab-close:hover {\n  background: var(--bg-color--tab-close--hover);\n}\n\n.tab.current:hover .tab-close:hover {\n  background: var(--bg-color--tab-close--current--hover);\n}\n\n.tab:hover .tab-close:before {\n  opacity: 1;\n}\n\n.tab.current {\n  background: var(--bg-color--tab--current);\n  height: 31px;\n}\n\n.tab.current:before {\n  content: '';\n  position: absolute;\n  left: -1px;\n  top: -3px;\n  width: calc(100% + 2px);\n  height: 3px;\n  background: var(--highlight-color--tab--current);\n}\n\n.tab.current .tab-close {\n  background: var(--bg-color--tab--current);\n}\n\n.tab.drag-hover {\n  background: var(--bg-color--tab--dragover);\n}\n\n.tab.tab-add-btn {\n  width: 40px;\n}\n\n.tab-add-btn .plus {\n  position: absolute;\n  top: 0;\n  display: block;\n  font-size: 22px;\n  font-weight: 300;\n  color: var(--text-color--tab--add);\n  margin: 3px 7px;\n  width: 26px;\n  height: 25px;\n  text-align: center;\n  line-height: 100%;\n}\n\n.tab-add-btn:hover .tab-close:before {\n  opacity: 1;\n}\n\n.tab-add-btn:hover .plus {\n  color: var(--text-color--tab--add--hover);\n}\n\n/* make room for traffic lights */\n.darwin .tabs {\n  padding-left: 75px;\n}\n.darwin.fullscreen .tabs {\n  padding-left: 0px; /* not during fullscreen */\n}\n\n.minimize-to-bg-anim-elem {\n  position: fixed;\n  z-index: 100;\n  background: #fffc;\n}\n`\ncustomElements.define('shell-window-tabs', ShellWindowTabs)\n"
  },
  {
    "path": "app/fg/syntax-highlighter/index.js",
    "content": "/*! highlight.js v9.18.1 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],i=Object.keys,_={},c={},C=!0,n=/^(no-?highlight|plain|text)$/i,l=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,r={case_insensitive:\"cI\",lexemes:\"l\",contains:\"c\",keywords:\"k\",subLanguage:\"sL\",className:\"cN\",begin:\"b\",beginKeywords:\"bK\",end:\"e\",endsWithParent:\"eW\",illegal:\"i\",excludeBegin:\"eB\",excludeEnd:\"eE\",returnBegin:\"rB\",returnEnd:\"rE\",variants:\"v\",IDENT_RE:\"IR\",UNDERSCORE_IDENT_RE:\"UIR\",NUMBER_RE:\"NR\",C_NUMBER_RE:\"CNR\",BINARY_NUMBER_RE:\"BNR\",RE_STARTERS_RE:\"RSR\",BACKSLASH_ESCAPE:\"BE\",APOS_STRING_MODE:\"ASM\",QUOTE_STRING_MODE:\"QSM\",PHRASAL_WORDS_MODE:\"PWM\",C_LINE_COMMENT_MODE:\"CLCM\",C_BLOCK_COMMENT_MODE:\"CBCM\",HASH_COMMENT_MODE:\"HCM\",NUMBER_MODE:\"NM\",C_NUMBER_MODE:\"CNM\",BINARY_NUMBER_MODE:\"BNM\",CSS_NUMBER_MODE:\"CSSNM\",REGEXP_MODE:\"RM\",TITLE_MODE:\"TM\",UNDERSCORE_TITLE_MODE:\"UTM\",COMMENT:\"C\",beginRe:\"bR\",endRe:\"eR\",illegalRe:\"iR\",lexemesRe:\"lR\",terminators:\"t\",terminator_end:\"tE\"},m=\"</span>\",O=\"Could not find the language '{}', did you forget to load/include a language module?\",B={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},o=\"of and for in not or if then\".split(\" \");function x(e){return e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")}function g(e){return e.nodeName.toLowerCase()}function u(e){return n.test(e)}function s(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function E(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:\"start\",offset:t,node:r}),t=e(r,t),g(r).match(/br|hr|img|input/)||a.push({event:\"stop\",offset:t,node:r}));return t}(e,0),a}function d(e,n,t){var r=0,a=\"\",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:\"start\"===n[0].event?e:n:e.length?e:n}function c(e){a+=\"<\"+g(e)+f.map.call(e.attributes,function(e){return\" \"+e.nodeName+'=\"'+x(e.value).replace(/\"/g,\"&quot;\")+'\"'}).join(\"\")+\">\"}function l(e){a+=\"</\"+g(e)+\">\"}function u(e){(\"start\"===e.event?c:l)(e.node)}for(;e.length||n.length;){var s=o();if(a+=x(t.substring(r,s[0].offset)),r=s[0].offset,s===e){for(i.reverse().forEach(l);u(s.splice(0,1)[0]),(s=o())===e&&s.length&&s[0].offset===r;);i.reverse().forEach(c)}else\"start\"===s[0].event?i.push(s[0].node):i.pop(),u(s.splice(0,1)[0])}return a+x(t.substr(r))}function R(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return s(n,{v:null},e)})),n.cached_variants?n.cached_variants:function e(n){return!!n&&(n.eW||e(n.starts))}(n)?[s(n,{starts:n.starts?s(n.starts):null})]:Object.isFrozen(n)?[s(n)]:[n]}function p(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(p)}}function v(n,r){var a={};return\"string\"==typeof n?t(\"keyword\",n):i(n).forEach(function(e){t(e,n[e])}),a;function t(t,e){r&&(e=e.toLowerCase()),e.split(\" \").forEach(function(e){var n=e.split(\"|\");a[n[0]]=[t,function(e,n){return n?Number(n):function(e){return-1!=o.indexOf(e.toLowerCase())}(e)?0:1}(n[0],n[1])]})}}function S(r){function s(e){return e&&e.source||e}function f(e,n){return new RegExp(s(e),\"m\"+(r.cI?\"i\":\"\")+(n?\"g\":\"\"))}function a(a){var i,e,o={},c=[],l={},t=1;function n(e,n){o[t]=e,c.push([e,n]),t+=function(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}(n)+1}for(var r=0;r<a.c.length;r++){n(e=a.c[r],e.bK?\"\\\\.?(?:\"+e.b+\")\\\\.?\":e.b)}a.tE&&n(\"end\",a.tE),a.i&&n(\"illegal\",a.i);var u=c.map(function(e){return e[1]});return i=f(function(e,n){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i<e.length;i++){var o=r+=1,c=s(e[i]);for(0<i&&(a+=n),a+=\"(\";0<c.length;){var l=t.exec(c);if(null==l){a+=c;break}a+=c.substring(0,l.index),c=c.substring(l.index+l[0].length),\"\\\\\"==l[0][0]&&l[1]?a+=\"\\\\\"+String(Number(l[1])+o):(a+=l[0],\"(\"==l[0]&&r++)}a+=\")\"}return a}(u,\"|\"),!0),l.lastIndex=0,l.exec=function(e){var n;if(0===c.length)return null;i.lastIndex=l.lastIndex;var t=i.exec(e);if(!t)return null;for(var r=0;r<t.length;r++)if(null!=t[r]&&null!=o[\"\"+r]){n=o[\"\"+r];break}return\"string\"==typeof n?(t.type=n,t.extra=[a.i,a.tE]):(t.type=\"begin\",t.rule=n),t},l}if(r.c&&-1!=r.c.indexOf(\"self\")){if(!C)throw new Error(\"ERR: contains `self` is not supported at the top-level of a language.  See documentation.\");r.c=r.c.filter(function(e){return\"self\"!=e})}!function n(t,e){t.compiled||(t.compiled=!0,t.k=t.k||t.bK,t.k&&(t.k=v(t.k,r.cI)),t.lR=f(t.l||/\\w+/,!0),e&&(t.bK&&(t.b=\"\\\\b(\"+t.bK.split(\" \").join(\"|\")+\")\\\\b\"),t.b||(t.b=/\\B|\\b/),t.bR=f(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\\B|\\b/),t.e&&(t.eR=f(t.e)),t.tE=s(t.e)||\"\",t.eW&&e.tE&&(t.tE+=(t.e?\"|\":\"\")+e.tE)),t.i&&(t.iR=f(t.i)),null==t.relevance&&(t.relevance=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return R(\"self\"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e),t.t=a(t))}(r)}function T(n,e,a,t){var i=e;function o(e,n){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.eW)return o(e.parent,n)}function c(e,n,t,r){if(!t&&\"\"===n)return\"\";if(!e)return n;var a='<span class=\"'+(r?\"\":B.classPrefix);return(a+=e+'\">')+n+(t?\"\":m)}function l(){p+=null!=d.sL?function(){var e=\"string\"==typeof d.sL;if(e&&!_[d.sL])return x(v);var n=e?T(d.sL,v,!0,R[d.sL]):w(v,d.sL.length?d.sL:void 0);return 0<d.relevance&&(M+=n.relevance),e&&(R[d.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!d.k)return x(v);for(r=\"\",n=0,d.lR.lastIndex=0,t=d.lR.exec(v);t;)r+=x(v.substring(n,t.index)),a=d,i=t,void 0,o=g.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(M+=e[1],r+=c(e[0],x(t[0]))):r+=x(t[0]),n=d.lR.lastIndex,t=d.lR.exec(v);return r+x(v.substr(n))}(),v=\"\"}function u(e){p+=e.cN?c(e.cN,\"\",!0):\"\",d=Object.create(e,{parent:{value:d}})}function s(e){var n=e[0],t=e.rule;return t&&t.endSameAsBegin&&(t.eR=function(e){return new RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(n)),t.skip?v+=n:(t.eB&&(v+=n),l(),t.rB||t.eB||(v=n)),u(t),t.rB?0:n.length}var f={};function r(e,n){var t=n&&n[0];if(v+=e,null==t)return l(),0;if(\"begin\"==f.type&&\"end\"==n.type&&f.index==n.index&&\"\"===t)return v+=i.slice(n.index,n.index+1),1;if(\"begin\"===(f=n).type)return s(n);if(\"illegal\"===n.type&&!a)throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(d.cN||\"<unnamed>\")+'\"');if(\"end\"===n.type){var r=function(e){var n=e[0],t=i.substr(e.index),r=o(d,t);if(r){var a=d;for(a.skip?v+=n:(a.rE||a.eE||(v+=n),l(),a.eE&&(v=n));d.cN&&(p+=m),d.skip||d.sL||(M+=d.relevance),(d=d.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}}(n);if(null!=r)return r}return v+=t,t.length}var g=D(n);if(!g)throw console.error(O.replace(\"{}\",n)),new Error('Unknown language: \"'+n+'\"');S(g);var E,d=t||g,R={},p=\"\";for(E=d;E!==g;E=E.parent)E.cN&&(p=c(E.cN,\"\",!0)+p);var v=\"\",M=0;try{for(var b,h,N=0;d.t.lastIndex=N,b=d.t.exec(i);)h=r(i.substring(N,b.index),b),N=b.index+h;for(r(i.substr(N)),E=d;E.parent;E=E.parent)E.cN&&(p+=m);return{relevance:M,value:p,i:!1,language:n,top:d}}catch(e){if(e.message&&-1!==e.message.indexOf(\"Illegal\"))return{i:!0,relevance:0,value:x(i)};if(C)return{relevance:0,value:x(i),language:n,top:d,errorRaised:e};throw e}}function w(t,e){e=e||B.languages||i(_);var r={relevance:0,value:x(t)},a=r;return e.filter(D).filter(L).forEach(function(e){var n=T(e,t,!1);n.language=e,n.relevance>a.relevance&&(a=n),n.relevance>r.relevance&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function M(e){return B.tabReplace||B.useBR?e.replace(t,function(e,n){return B.useBR&&\"\\n\"===e?\"<br>\":B.tabReplace?n.replace(/\\t/g,B.tabReplace):\"\"}):e}function b(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=l.exec(i)){var o=D(t[1]);return o||(console.warn(O.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),o?t[1]:\"no-highlight\"}for(n=0,r=(i=i.split(/\\s+/)).length;n<r;n++)if(u(a=i[n])||D(a))return a}(e);u(o)||(B.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\"):n=e,i=n.textContent,r=o?T(o,i,!0):w(i),(t=E(n)).length&&((a=document.createElement(\"div\")).innerHTML=r.value,r.value=d(t,E(a),i)),r.value=M(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll(\"pre code\");f.forEach.call(e,b)}}var N={disableAutodetect:!0};function D(e){return e=(e||\"\").toLowerCase(),_[e]||_[c[e]]}function L(e){var n=D(e);return n&&!n.disableAutodetect}return a.highlight=T,a.highlightAuto=w,a.fixMarkup=M,a.highlightBlock=b,a.configure=function(e){B=s(B,e)},a.initHighlighting=h,a.initHighlightingOnLoad=function(){window.addEventListener(\"DOMContentLoaded\",h,!1),window.addEventListener(\"load\",h,!1)},a.registerLanguage=function(n,e){var t;try{t=e(a)}catch(e){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!C)throw e;console.error(e),t=N}p(_[n]=t),t.rawDefinition=e.bind(null,a),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return i(_)},a.getLanguage=D,a.requireLanguage=function(e){var n=D(e);if(n)return n;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},a.autoDetection=L,a.inherit=s,a.debugMode=function(){C=!1},a.IR=a.IDENT_RE=\"[a-zA-Z]\\\\w*\",a.UIR=a.UNDERSCORE_IDENT_RE=\"[a-zA-Z_]\\\\w*\",a.NR=a.NUMBER_RE=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",a.CNR=a.C_NUMBER_RE=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",a.BNR=a.BINARY_NUMBER_RE=\"\\\\b(0b[01]+)\",a.RSR=a.RE_STARTERS_RE=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",a.BE=a.BACKSLASH_ESCAPE={b:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:\"comment\",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",relevance:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C(\"//\",\"$\"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C(\"/\\\\*\",\"\\\\*/\"),a.HCM=a.HASH_COMMENT_MODE=a.C(\"#\",\"$\"),a.NM=a.NUMBER_MODE={cN:\"number\",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:\"number\",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:\"number\",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:\"number\",b:a.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},a.RM=a.REGEXP_MODE={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[a.BE,{b:/\\[/,e:/\\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:\"title\",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:\"title\",b:a.UIR,relevance:0},a.METHOD_GUARD={b:\"\\\\.\\\\s*\"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(e){!function n(t){Object.freeze(t);var r=\"function\"==typeof t;Object.getOwnPropertyNames(t).forEach(function(e){!t.hasOwnProperty(e)||null===t[e]||\"object\"!=typeof t[e]&&\"function\"!=typeof t[e]||r&&(\"caller\"===e||\"callee\"===e||\"arguments\"===e)||Object.isFrozen(t[e])||n(t[e])});return t}(e)}),a});hljs.registerLanguage(\"css\",function(e){var c={b:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM,e.CSSNM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\",c:[e.ASM,e.QSM]},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(page|font-face)\",l:\"@[a-z-]+\",k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",i:/:/,rB:!0,c:[{cN:\"keyword\",b:/@\\-?\\w[\\w]*(\\-\\w+)*/},{b:/\\s/,eW:!0,eE:!0,relevance:0,k:\"and or not only\",c:[{b:/[a-z-]+:/,cN:\"attribute\"},e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,c]}]}});hljs.registerLanguage(\"javascript\",function(e){var r=\"<>\",a=\"</>\",t={b:/<[A-Za-z0-9\\\\._:-]+/,e:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},c=\"[A-Za-z$_][0-9A-Za-z$_]*\",n={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:n,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},b={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},l={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};o.c=[e.ASM,e.QSM,i,b,l,s,e.RM];var u=o.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],k:n,c:[{cN:\"meta\",relevance:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,i,b,l,e.CLCM,e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\",c:[{cN:\"type\",b:\"\\\\{\",e:\"\\\\}\",relevance:0},{cN:\"variable\",b:c+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{b:/(?=[^\\n])\\s/,relevance:0}]}]}),e.CBCM,s,{b:/[{,\\n]\\s*/,relevance:0,c:[{b:c+\"\\\\s*:\",rB:!0,relevance:0,c:[{cN:\"attr\",b:c,relevance:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+c+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:c},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:n,c:u}]}]},{cN:\"\",b:/\\s/,e:/\\s*/,skip:!0},{v:[{b:r,e:a},{b:t.b,e:t.e}],sL:\"xml\",c:[{b:t.b,e:t.e,skip:!0,c:[\"self\"]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:c}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:u}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor get set\",e:/\\{/,eE:!0}],i:/#(?!!)/}});\n\ntry {\n  hljs.highlightBlock(document.querySelector('pre'))\n} catch (e) {}"
  },
  {
    "path": "app/fg/tab-switcher/index.html",
    "content": "<html>\n  <head>\n    <style>\n      body {\n        background: transparent;\n        border: 1px solid #aab;\n        border-radius: 8px;\n        margin: 10px;\n        user-select: none;\n        overflow: hidden;\n      }\n      main {\n        display: grid;\n        background: #fff;\n        grid-auto-flow: column;\n        grid-gap: 10px;\n        font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n        font-size: 12px;\n        padding: 10px;\n        box-sizing: border-box;\n        border-radius: 8px;\n        overflow-x: hidden;\n        overflow-y: hidden;\n      }\n      main > div {\n        border: 1px solid transparent;\n        border-radius: 8px;\n        padding: 6px 6px 12px;\n        width: 120px;\n        box-sizing: border-box;\n      }\n      main > div.selected {\n        background: #f0f0f7;\n      }\n      main > div img {\n        display: block;\n        width: 32px;\n        height: 32px;\n        margin: 10px auto 15px;\n      }\n      main > div .title {\n        text-align: center;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n    </style>\n  </head>\n  <body>\n    <main>\n    </main>\n  </body>\n  <script>\n    var currentTabs\n    var currentSelection = 0\n\n    document.body.addEventListener('contextmenu', function (e) {\n      e.preventDefault()\n    })\n\n    var mainEl = document.querySelector('main')\n    window.setTabs = function (tabs, defaultCurrentSelection = 0) {\n      mainEl.innerHTML = ''\n      \n      currentTabs = tabs\n      \n      var i = 0\n      for (let tab of tabs) {\n        let imgEl = document.createElement('img')\n        imgEl.setAttribute('src', `asset:favicon:${tab.url}`)\n        \n        let titleEl = document.createElement('div')\n        titleEl.classList.add('title')\n        titleEl.textContent = tab.title\n        \n        let tabEl = document.createElement('div')\n        tabEl.classList.add('tab')\n        tabEl.dataset.index = i++\n        tabEl.append(imgEl)\n        tabEl.append(titleEl)\n        mainEl.append(tabEl)\n      }\n\n      currentSelection = defaultCurrentSelection\n      highlightCurrentSelection()\n\n      // HACK\n      // wait 100ms before attaching the hover listeners\n      // (otherwise the event gets picked up during initial render)\n      // -prf\n      setTimeout(function () {\n        for (let tabEl of Array.from(mainEl.querySelectorAll('.tab'))) {\n          tabEl.addEventListener('mouseover', onMouseOverTab)\n        }\n      }, 100)\n    }\n\n    window.moveSelection = function (dir) {\n      currentSelection += dir\n      if (currentSelection < 0) {\n        currentSelection = currentTabs.length - 1\n      } else if (currentSelection >= currentTabs.length) {\n        currentSelection = 0\n      }\n      highlightCurrentSelection()\n    }\n\n    window.getSelection = function () {\n      return {winId: currentTabs[currentSelection].winId, tabIndex: currentSelection}\n    }\n\n    function onMouseOverTab (e) {\n      currentSelection = Number(e.currentTarget.dataset.index)\n      highlightCurrentSelection()\n    }\n\n    function highlightCurrentSelection () {\n      try {\n        mainEl.querySelector('.selected').classList.remove('selected')\n      } catch (e) {}\n      var el = mainEl.querySelectorAll('.tab')[currentSelection]\n      el.classList.add('selected')\n      el.scrollIntoView({behavior: 'smooth'})\n    }\n  </script>\n</html>"
  },
  {
    "path": "app/fg/vendor/README.md",
    "content": "# About the vendored `lit-element`\n\nThe build system is having trouble properly bundling lit-element, because it's an ES module. Rather than waste time struggling with it, I'm vendoring it in this repo."
  },
  {
    "path": "app/fg/vendor/lit-element/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n<!-- ### Added -->\n<!-- ### Changed -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n## [2.0.1] - 2019-02-05\n### Fixed\n* Use `lit-html` 1.0 ([#543](https://github.com/Polymer/lit-element/pull/543)).\n\n## [2.0.0] - 2019-02-05\n### Added\n* Add `toString()` function to `CSSResult` ([#508](https://github.com/Polymer/lit-element/pull/508))\n* Add a global version to `window` ([#536](https://github.com/Polymer/lit-element/pull/536))\n\n### Changed\n* [Breaking] Renamed `unsafeCss` to `unsafeCSS` for consistency with lit-html's `unsafeHTML` ([#524](https://github.com/Polymer/lit-element/pull/524))\n* Remove all uses of `any` outside of tests ([#457](https://github.com/Polymer/lit-element/pull/457))\n\n### Fixed\n* A bunch of docs fixes ([#464](https://github.com/Polymer/lit-element/pull/464)), ([#458](https://github.com/Polymer/lit-element/pull/458)), ([#493](https://github.com/Polymer/lit-element/pull/493)), ([#504](https://github.com/Polymer/lit-element/pull/504)), ([#505](https://github.com/Polymer/lit-element/pull/505)), ([#501](https://github.com/Polymer/lit-element/pull/501)), ([#494](https://github.com/Polymer/lit-element/pull/494)), ([#491](https://github.com/Polymer/lit-element/pull/491)), ([#509](https://github.com/Polymer/lit-element/pull/509)), ([#513](https://github.com/Polymer/lit-element/pull/513)), ([#515](https://github.com/Polymer/lit-element/pull/515)), ([#512](https://github.com/Polymer/lit-element/pull/512)), ([#503](https://github.com/Polymer/lit-element/pull/503)), ([#460](https://github.com/Polymer/lit-element/pull/460)), ([#413](https://github.com/Polymer/lit-element/pull/413)), ([#426](https://github.com/Polymer/lit-element/pull/426)), ([#516](https://github.com/Polymer/lit-element/pull/516)), ([#537](https://github.com/Polymer/lit-element/pull/537)), ([#535](https://github.com/Polymer/lit-element/pull/535)), ([#539](https://github.com/Polymer/lit-element/pull/539)), ([#540](https://github.com/Polymer/lit-element/pull/540))\n* Build on checkout ([#423](https://github.com/Polymer/lit-element/pull/423))\n\n### Fixed\n* Adds a check to ensure `CSSStyleSheet` is constructable ([#527](https://github.com/Polymer/lit-element/pull/527)).\n\n## [2.0.0-rc.5] - 2019-01-24\n### Fixed\n* Fixed a bug causing duplicate styles when an array was returned from `static get styles` ([#480](https://github.com/Polymer/lit-element/issues/480)).\n\n## [2.0.0-rc.4] - 2019-01-24\n### Added\n* [Maintenance] Added script to publish dev releases automatically ([#476](https://github.com/Polymer/lit-element/pull/476)).\n* Adds `unsafeCss` for composing \"unsafe\" values into `css`. Note, `CSSResult` is no longer constructable. ([#451](https://github.com/Polymer/lit-element/issues/451) and [#471](https://github.com/Polymer/lit-element/issues/471)).\n\n### Fixed\n* Fixed a bug where we broke compatibility with closure compiler's property renaming optimizations. JSCompiler_renameProperty can't be a module export ([#465](https://github.com/Polymer/lit-element/pull/465)).\n* Fixed an issue with inheriting from `styles` property when extending a superclass that is never instanced. ([#470](https://github.com/Polymer/lit-element/pull/470)).\n* Fixed an issue with Closure Compiler and ([#470](https://github.com/Polymer/lit-element/pull/470)) ([#476](https://github.com/Polymer/lit-element/pull/476)).\n\n## [2.0.0-rc.3] - 2019-01-18\n### Fixed\n* README: Fixed jsfiddle reference ([#435](https://github.com/Polymer/lit-element/pull/435)).\n* Compile with Closure Compiler cleanly ([#436](https://github.com/Polymer/lit-element/pull/436)).\n* Opt `@property` decorators out of Closure Compiler renaming ([#448](https://github.com/Polymer/lit-element/pull/448)).\n\n### Changed\n* [Breaking] Property accessors are no longer wrapped when they already exist. Instead the `noAccessor` flag should be set when a user-defined accessor exists on the prototype (and in this case, user-defined accessors must call `requestUpdate` themselves). ([#454](https://github.com/Polymer/lit-element/pull/454)).\n* Class fields can now be used to define styles, e.g. `static styles = css` and `styles` correctly compose when elements are extended ([#456](https://github.com/Polymer/lit-element/pull/456)).\n* Styles returned via `static styles` are automatically flattend ([#437](https://github.com/Polymer/lit-element/pull/437)).\n* Replace use of for/of loops over Maps with forEach ([#455](https://github.com/Polymer/lit-element/pull/455))\n\n## [2.0.0-rc.2] - 2019-01-11\n### Fixed\n* Fix references to `@polymer/lit-element` in README and docs ([#427](https://github.com/Polymer/lit-element/pull/427)).\n* Fix decorator types causing compiler errors for TypeScript users. ([#431](https://github.com/Polymer/lit-element/pull/431)).\n\n## [2.0.0-rc.1] - 2019-01-10\n### Changed\n* [Breaking] Changed NPM package name to `lit-element`\n\n## [0.7.0] - 2019-01-10\n### Added\n* Updated decorator implementations to support TC39 decorator API proposal (supported by Babel 7.1+) in addition to the legacy decorator API (supported by older Babel and TypeScript) ([#156](https://github.com/Polymer/lit-element/issues/156)).\n* Added `static get styles()` to allow defining element styling separate from `render` method.\nThis takes advantage of [`adoptedStyleSheets`](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets) when possible ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* Added the `performUpdate` method to allow control of update timing ([#290](https://github.com/Polymer/lit-element/issues/290)).\n* Updates deferred until first connection ([#258](https://github.com/Polymer/lit-element/issues/258)).\n* Export `TemplateResult` and `SVGTemplateResult` ([#415](https://github.com/Polymer/lit-element/pull/415)).\n### Changed\n* [Breaking] The `createRenderRoot` method has moved from `UpdatingElement` to `LitElement`. Therefore, `UpdatingElement` no longer creates a `shadowRoot` by default ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* [Breaking] Changes property options to add `converter`. This option works the same as the previous `type` option except that the `converter` methods now also get `type` as the second argument. This effectively changes `type` to be a hint for the `converter`. A default `converter` is used if none is provided and it now supports `Boolean`, `String`, `Number`, `Object`, and `Array` ([#264](https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Numbers and strings now become null if their reflected attribute is removed (https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Previously, when an attribute changed as a result of a reflecting property changing, the property was prevented from mutating again as can happen when a custom\n`converter` is used. Now, the oppose is also true. When a property changes as a result of an attribute changing, the attribute is prevented from mutating again (https://github.com/Polymer/lit-element/issues/264))\n### Fixed\n* [Breaking] User defined accessors are now wrapped to enable better composition ([#286](https://github.com/Polymer/lit-element/issues/286))\n* Type for `eventOptions` decorator now properly includes `passive` and `once` options ([#325](https://github.com/Polymer/lit-element/issues/325))\n\n## [0.6.5] - 2018-12-13\n### Changed:\n* Use lit-html 1.0 release candidate.\n\n### Fixed\n* Types for the `property` and `customElement` decorators updated ([#288](https://github.com/Polymer/lit-element/issues/288) and [#291](https://github.com/Polymer/lit-element/issues/291)).\n* Docs updated.\n\n## [0.6.4] - 2018-11-30\n### Changed\n* Update lit-html dependency to ^0.14.0 ([#324](https://github.com/Polymer/lit-element/pull/324)).\n\n## [0.6.3] - 2018-11-08\n### Changed\n* Update lit-html dependency to ^0.13.0 ([#298](https://github.com/Polymer/lit-element/pull/298)).\n\n## [0.6.2] - 2018-10-05\n\n### Changed\n* LitElement changed to a non-abstract class to be more compatible with the JavaScript mixin pattern\n([#227](https://github.com/Polymer/lit-element/issues/227)).\n* Update lit-html dependency to ^0.12.0 ([#244](https://github.com/Polymer/lit-element/pull/244)).\n* Passes the component's `this` reference to lit-html as the `eventContext`, allowing unbound event listener methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n### Added\n* A `disconnectedCallback()` method was added to UpdatingElement ([#213](https://github.com/Polymer/lit-element/pull/213)).\n* Added `@eventOptions()` decorator for setting event listener options on methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n\n## [0.6.1] - 2018-09-17\n\n### Fixed\n* Fixes part rendering and css custom properties issues introduced with lit-html 0.11.3 by updating to 0.11.4 (https://github.com/Polymer/lit-element/issues/202).\n\n### Removed\n* Removed custom_typings for Polymer as they are no longer needed\n(https://github.com/Polymer/lit-element/issues/186).\n\n## [0.6.0] - 2018-09-13\n\n### Added\n* Added `@query()`, `@queryAll()`, and `@customElement` decorators ([#159](https://github.com/Polymer/lit-element/pull/159))\n\n### Changed\n* Significantly changed update/render lifecycle and property API. Render lifecycle\nis now `requestUpdate`, `shouldUpdate`, `update`, `render`, `firstUpdated`\n(first time only), `updated`, `updateComplete`. Property options are now\n`{attribute, reflect, type, hasChanged}`. Properties may be defined in a\n`static get properties` or using the `@property` decorator.\n(https://github.com/Polymer/lit-element/pull/132).\n\n\n### Removed\n* Removed render helpers `classString` and `styleString`. Similar directives\n(`classMap` and `styleMap`) have been added to lit-html and should be used instead\n(https://github.com/Polymer/lit-element/pull/165 and\nhttps://github.com/Polymer/lit-html/pull/486).\n\n### Fixed\n* The `npm run checksize` command should now return the correct minified size\n(https://github.com/Polymer/lit-element/pull/153).\n* The `firstUpdated` method should now always be called the first time the element\nupdates, even if `shouldUpdate` initially returned `false`\n(https://github.com/Polymer/lit-element/pull/173).\n"
  },
  {
    "path": "app/fg/vendor/lit-element/CONTRIBUTING.md",
    "content": "# Contributing to Polymer\n\nThere are many ways to contribute to the Polymer project! We welcome and truly appreciate contribution in all forms - issues and pull requests to the [main library](https://github.com/polymer/polymer), issues and pull requests to the [elements the Polymer team maintains](https://github.com/polymerelements), issues and pull requests to one of our many [Polymer-related tools](https://github.com/polymer), and of course we love to hear about any Polymer elements that you build to share with the community!\n\n## Logistics\n\n### Communicating with the Polymer team\n\nBeyond GitHub, we try to have a variety of different lines of communication open:\n\n* [Blog](https://blog.polymer-project.org/)\n* [Twitter](https://twitter.com/polymer)\n* [Google+ Community](https://plus.sandbox.google.com/u/0/communities/115626364525706131031?cfem=1)\n* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev)\n* [Slack channel](https://bit.ly/polymerslack)\n\n### The Polymer Repositories\n\nBecause of the component-based nature of the Polymer project, we tend to have lots of different repositories. Our main repository for the Polymer library itself is at [github.com/Polymer/polymer](https://github.com/polymer/polymer). File any issues or pull requests that have to do with the core library on that repository, and we'll take a look ASAP.\n\nWe keep all of the element \"product lines\" that the Polymer team maintains and distributes in the [PolymerElements](https://github.com/polymerelements) organization. For any element-specific issues or pull requests, file directly on the element's repository, such as the `paper-button` repository at [github.com/polymerelements/paper-button](https://github.com/polymerelements/paper-button). Of course, the elements built by the Polymer team are just a tiny fraction of all the Polymer-based elements out there - catalogs of other web components include [https://www.webcomponents.org/](https://github.com/webcomponents/webcomponents.org) and [component.kitchen](https://component.kitchen).\n\nThe GoogleWebComponents element product line is maintained by teams all across Google, and so is kept in a separate organization: the [GoogleWebComponents](https://github.com/googlewebcomponents) org. Feel free to file issues and PR's on those elements directly in that organization.\n\nWe also track each element product line overall in \"meta-repos\", named as `$PRODUCTLINE-elements`. These include [paper-elements](https://github.com/polymerelements/paper-elements), [iron-elements](https://github.com/polymerelements/iron-elements), [gold-elements](https://github.com/polymerelements/gold-elements), and more. Feel free to file issues for element requests on those meta-repos, and the README in each repo tracks a roadmap for the product line.\n\n### Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n## Contributing\n\n### Contributing documentation\n\nDocs source is in the `docs` folder. To build the site yourself, see the instructions in [docs/README.md](docs/README.md).\n\n### Filing bugs\n\nThe Polymer team heavily uses (and loves!) GitHub for all of our software management. We use GitHub issues to track all bugs and features.\n\nIf you find an issue, please do file it on the repository. The [Polymer/polymer issues](https://github.com/polymer/polymer/issues) should be used only for issues on the Polymer library itself - bugs somewhere in the core codebase.\n\nFor issues with elements the team maintains, please file directly on the element's repository. If you're not sure if a bug stems from the element or the library, air toward filing it on the element and we'll move the issue if necessary.\n\nPlease file issues using the issue template provided, filling out as many fields as possible. We love examples for addressing issues - issues with a jsBin, Plunkr, jsFiddle, or glitch.me repro will be much easier for us to work on quickly. You can start with [this StackBlitz](https://stackblitz.com/edit/lit-element-example?file=index.js) which sets up the basics to demonstrate a lit-element.  If you need your repro to run in IE11, you can start from [this glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html:1:0), which serves the source via polyserve for automatic transpilation, although you must sign up for a glitch.me account to ensure your code persists for more than 5 days (note the glitch.me _editing environment_ is not compatible with IE11, however the \"live\" view link of the running code should work).\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n### Contributing Pull Requests\n\nPR's are even better than issues. We gladly accept community pull requests. In general across the core library and all of the elements, there are a few necessary steps before we can accept a pull request:\n\n- Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself.\n- Sign the [CLA](https://cla.developers.google.com/clas), as described above.\n- Fork the repo you're making the fix on to your own GitHub account.\n- Code!\n- Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that's OK - or perhaps consider making two separate PR's.\n- **Include tests that test the range of behavior that changes with your PR.** If you PR fixes a bug, make sure your tests capture that bug. If your PR adds new behavior, make sure that behavior is fully tested. Every PR *must* include associated tests. (See [Unit tests](#unit-tests) for more.)\n- Submit your PR, making sure it references the issue you created.\n- If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix.\n\nIf you've completed all of these steps the core team will do its best to respond to the PR as soon as possible.\n\n#### Contributing Code to Elements\n\nThough the aim of the Polymer library is to allow lots of flexibility and not get in your way, we work to standardize our elements to make them as toolable and easy to maintain as possible.\n\nAll elements should follow the [Polymer element style guide](https://www.polymer-project.org/3.0/docs/tools/documentation), which defines how to specify properties, documentation, and more. It's a great guide to follow when building your own elements as well, for maximum standardization and toolability. For instance, structuring elements following the style guide will ensure that they work with the [`iron-component-page`](https://github.com/polymerelements/iron-component-page) element, an incredibly easy way to turn any raw element directly into a documentation page.\n\n#### Contributing Code to the Polymer library\n\nWe follow the most common JavaScript and HTML style guidelines for how we structure our code - in general, look at the code and you'll know how to contribute! If you'd like a bit more structure, the [Google JavaScript Styleguide](https://google.github.io/styleguide/javascriptguide.xml) is a good place to start.\n\nPolymer also participates in Google's [Patch Rewards Program](https://www.google.com/about/appsecurity/patch-rewards/), where you can earn cold, hard cash for qualifying security patches to the Polymer library. Visit the [patch rewards page](https://www.google.com/about/appsecurity/patch-rewards/) to find out more.\n\n## Unit tests\n\nAll Polymer projects use [`polymer-cli`](https://github.com/Polymer/tools/tree/master/packages/cli) for unit tests.\n\nFor maximum flexibility, install `polymer-cli` locally:\n\n    npm install -g polymer-cli\n\n### Running the lit-element unit tests\n\nTo run the lit-element unit tests:\n\n1.  Clone the [lit-element repo](https://github.com/polymer/lit-element).\n\n2.  Install the dependencies:\n\n\t\tnpm install\n\n3.  Run the tests:\n\n\t\tnpm test\n\n    Or if you have `polymer-cli` installed locally:\n\n\t\tpolymer test --npm\n\nTo run individual test suites:\n\n<code>npm test <var>path/to/suite</var></code>\n\nOr:\n\n<code>polymer test --npm <var>path/to/suite</var></code>\n\nFor example:\n\n\tpolymer test --npm test/index.html\n\nYou can also run tests in the browser:\n\n\tpolymer serve --npm\n\nNavigate to:\n\n[`http://localhost:8080/components/@polymer/lit-element/test/index.html`](http://localhost:8080/components/@polymer/lit-element/test/index.html)\n\n### Configuring `web-component-tester`\n\nBy default, `polymer test` runs tests on all installed browsers. You can configure it\nto run tests on a subset of available browsers, or to run tests remotely using Sauce Labs.\n\nSee the [`web-component-tester` README](https://github.com/Polymer/tools/tree/master/packages/web-component-tester) for\ninformation on configuring the tool using by `polymer-cli` to run the tests.\n\n### Viewing the source documentation locally\n\nYou can view the updates you make to the source documentation locally with the following steps.\nMake sure to rerun step 1 after every change you make.\n\n1. Run `polymer analyze > analysis.json`\n\n1. Run `polymer serve`\n\n1. Open `http://127.0.0.1:PORT/components/polymer/` to view the documentation\n"
  },
  {
    "path": "app/fg/vendor/lit-element/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/fg/vendor/lit-element/README.md",
    "content": "# LitElement\nA simple base class for creating fast, lightweight web components with [lit-html](https://lit-html.polymer-project.org/).\n\n[![Build Status](https://travis-ci.org/Polymer/lit-element.svg?branch=master)](https://travis-ci.org/Polymer/lit-element)\n[![Published on npm](https://img.shields.io/npm/v/lit-element.svg)](https://www.npmjs.com/package/lit-element)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/lit-element)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-element.polymer-project.org](https://lit-element.polymer-project.org).\n\n## Overview\n\nLitElement uses [lit-html](https://lit-html.polymer-project.org/) to render into the\nelement's [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)\nand adds API to help manage element properties and attributes. LitElement reacts to changes in properties\nand renders declaratively using `lit-html`. See the [lit-html guide](https://lit-html.polymer-project.org/guide)\nfor additional information on how to create templates for lit-element.\n\n```ts\n    import {LitElement, html, css, customElement, property} from 'lit-element';\n\n    // This decorator defines the element.\n    @customElement('my-element');\n    export class MyElement extends LitElement {\n\n      // This decorator creates a property accessor that triggers rendering and\n      // an observed attribute.\n      @property()\n      mood = 'great';\n\n      static styles = css`\n        span {\n          color: green;\n        }`;\n\n      // Render element DOM by returning a `lit-html` template.\n      render() {\n        return html`Web Components are <span>${this.mood}</span>!`;\n      }\n\n    }\n```\n\n```html\n    <my-element mood=\"awesome\"></my-element>\n```\n\nNote, this example uses decorators to create properties. Decorators are a proposed\nstandard currently available in [TypeScript](https://www.typescriptlang.org/) or [Babel](https://babeljs.io/docs/en/babel-plugin-proposal-decorators). LitElement also supports a [vanilla JavaScript method](https://lit-element.polymer-project.org/guide/properties#declare) of declaring reactive properties.\n\n## Examples\n\n  * Runs in all [supported](#supported-browsers) browsers: [Glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html)\n\n  * Runs in browsers with [JavaScript Modules](https://caniuse.com/#search=modules): [Stackblitz](https://stackblitz.com/edit/lit-element-demo?file=src%2Fmy-element.js), [JSFiddle](https://jsfiddle.net/sorvell1/801f9cdu/), [JSBin](http://jsbin.com/vecuyan/edit?html,output),\n[CodePen](https://codepen.io/sorvell/pen/RYQyoe?editors=1000).\n\n  * You can also copy [this HTML file](https://gist.githubusercontent.com/sorvell/48f4b7be35c8748e8f6db5c66d36ee29/raw/67346e4e8bc4c81d5a7968d18f0a6a8bc00d792e/index.html) into a local file and run it in any browser that supports [JavaScript Modules]((https://caniuse.com/#search=modules)).\n\n## Installation\n\nFrom inside your project folder, run:\n\n```bash\n$ npm install lit-element\n```\n\nTo install the web components polyfills needed for older browsers:\n\n```bash\n$ npm i -D @webcomponents/webcomponentsjs\n```\n\n## Supported Browsers\n\nThe last 2 versions of all modern browsers are supported, including\nChrome, Safari, Opera, Firefox, Edge. In addition, Internet Explorer 11 is also supported.\n\nEdge and Internet Explorer 11 require the web components polyfills.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md)."
  },
  {
    "path": "app/fg/vendor/lit-element/lib/css-tag.js",
    "content": "/**\n@license\nCopyright (c) 2019 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nexport const supportsAdoptingStyleSheets = ('adoptedStyleSheets' in Document.prototype) &&\n    ('replace' in CSSStyleSheet.prototype);\nconst constructionToken = Symbol();\nexport class CSSResult {\n    constructor(cssText, safeToken) {\n        if (safeToken !== constructionToken) {\n            throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n        }\n        this.cssText = cssText;\n    }\n    // Note, this is a getter so that it's lazy. In practice, this means\n    // stylesheets are not created until the first element instance is made.\n    get styleSheet() {\n        if (this._styleSheet === undefined) {\n            // Note, if `adoptedStyleSheets` is supported then we assume CSSStyleSheet\n            // is constructable.\n            if (supportsAdoptingStyleSheets) {\n                this._styleSheet = new CSSStyleSheet();\n                this._styleSheet.replaceSync(this.cssText);\n            }\n            else {\n                this._styleSheet = null;\n            }\n        }\n        return this._styleSheet;\n    }\n    toString() {\n        return this.cssText;\n    }\n}\n/**\n * Wrap a value for interpolation in a css tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value) => {\n    return new CSSResult(String(value), constructionToken);\n};\nconst textFromCSSResult = (value) => {\n    if (value instanceof CSSResult) {\n        return value.cssText;\n    }\n    else {\n        throw new Error(`Value passed to 'css' function must be a 'css' function result: ${value}. Use 'unsafeCSS' to pass non-literal values, but\n            take care to ensure page security.`);\n    }\n};\n/**\n * Template tag which which can be used with LitElement's `style` property to\n * set element styles. For security reasons, only literal string values may be\n * used. To incorporate non-literal values `unsafeCSS` may be used inside a\n * template string part.\n */\nexport const css = (strings, ...values) => {\n    const cssText = values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n    return new CSSResult(cssText, constructionToken);\n};\n//# sourceMappingURL=css-tag.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lib/decorators.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst legacyCustomElement = (tagName, clazz) => {\n    window.customElements.define(tagName, clazz);\n    // Cast as any because TS doesn't recognize the return type as being a\n    // subtype of the decorated class when clazz is typed as\n    // `Constructor<HTMLElement>` for some reason.\n    // `Constructor<HTMLElement>` is helpful to make sure the decorator is\n    // applied to elements however.\n    // tslint:disable-next-line:no-any\n    return clazz;\n};\nconst standardCustomElement = (tagName, descriptor) => {\n    const { kind, elements } = descriptor;\n    return {\n        kind,\n        elements,\n        // This callback is called once the class is otherwise fully defined\n        finisher(clazz) {\n            window.customElements.define(tagName, clazz);\n        }\n    };\n};\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * @param tagName the name of the custom element to define\n */\nexport const customElement = (tagName) => (classOrDescriptor) => (typeof classOrDescriptor === 'function') ?\n    legacyCustomElement(tagName, classOrDescriptor) :\n    standardCustomElement(tagName, classOrDescriptor);\nconst standardProperty = (options, element) => {\n    // When decorating an accessor, pass it through and add property metadata.\n    // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n    // stomp over the user's accessor.\n    if (element.kind === 'method' && element.descriptor &&\n        !('value' in element.descriptor)) {\n        return Object.assign({}, element, { finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            } });\n    }\n    else {\n        // createProperty() takes care of defining the property, but we still\n        // must return some kind of descriptor, so return a descriptor for an\n        // unused prototype field. The finisher calls createProperty().\n        return {\n            kind: 'field',\n            key: Symbol(),\n            placement: 'own',\n            descriptor: {},\n            // When @babel/plugin-proposal-decorators implements initializers,\n            // do this instead of the initializer below. See:\n            // https://github.com/babel/babel/issues/9260 extras: [\n            //   {\n            //     kind: 'initializer',\n            //     placement: 'own',\n            //     initializer: descriptor.initializer,\n            //   }\n            // ],\n            // tslint:disable-next-line:no-any decorator\n            initializer() {\n                if (typeof element.initializer === 'function') {\n                    this[element.key] = element.initializer.call(this);\n                }\n            },\n            finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            }\n        };\n    }\n};\nconst legacyProperty = (options, proto, name) => {\n    proto.constructor\n        .createProperty(name, options);\n};\n/**\n * A property decorator which creates a LitElement property which reflects a\n * corresponding attribute value. A `PropertyDeclaration` may optionally be\n * supplied to configure property features.\n *\n * @ExportDecoratedItems\n */\nexport function property(options) {\n    // tslint:disable-next-line:no-any decorator\n    return (protoOrDescriptor, name) => (name !== undefined) ?\n        legacyProperty(options, protoOrDescriptor, name) :\n        standardProperty(options, protoOrDescriptor);\n}\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n */\nexport const query = _query((target, selector) => target.querySelector(selector));\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's renderRoot.\n */\nexport const queryAll = _query((target, selector) => target.querySelectorAll(selector));\nconst legacyQuery = (descriptor, proto, name) => {\n    Object.defineProperty(proto, name, descriptor);\n};\nconst standardQuery = (descriptor, element) => ({\n    kind: 'method',\n    placement: 'prototype',\n    key: element.key,\n    descriptor,\n});\n/**\n * Base-implementation of `@query` and `@queryAll` decorators.\n *\n * @param queryFn exectute a `selector` (ie, querySelector or querySelectorAll)\n * against `target`.\n * @suppress {visibility} The descriptor accesses an internal field on the\n * element.\n */\nfunction _query(queryFn) {\n    return (selector) => (protoOrDescriptor, \n    // tslint:disable-next-line:no-any decorator\n    name) => {\n        const descriptor = {\n            get() {\n                return queryFn(this.renderRoot, selector);\n            },\n            enumerable: true,\n            configurable: true,\n        };\n        return (name !== undefined) ?\n            legacyQuery(descriptor, protoOrDescriptor, name) :\n            standardQuery(descriptor, protoOrDescriptor);\n    };\n}\nconst standardEventOptions = (options, element) => {\n    return Object.assign({}, element, { finisher(clazz) {\n            Object.assign(clazz.prototype[element.key], options);\n        } });\n};\nconst legacyEventOptions = \n// tslint:disable-next-line:no-any legacy decorator\n(options, proto, name) => {\n    Object.assign(proto[name], options);\n};\n/**\n * Adds event listener options to a method used as an event listener in a\n * lit-html template.\n *\n * @param options An object that specifis event listener options as accepted by\n * `EventTarget#addEventListener` and `EventTarget#removeEventListener`.\n *\n * Current browsers support the `capture`, `passive`, and `once` options. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters\n *\n * @example\n *\n *     class MyElement {\n *\n *       clicked = false;\n *\n *       render() {\n *         return html`<div @click=${this._onClick}`><button></button></div>`;\n *       }\n *\n *       @eventOptions({capture: true})\n *       _onClick(e) {\n *         this.clicked = true;\n *       }\n *     }\n */\nexport const eventOptions = (options) => \n// Return value typed as any to prevent TypeScript from complaining that\n// standard decorator function signature does not match TypeScript decorator\n// signature\n// TODO(kschaaf): unclear why it was only failing on this decorator and not\n// the others\n((protoOrDescriptor, name) => (name !== undefined) ?\n    legacyEventOptions(options, protoOrDescriptor, name) :\n    standardEventOptions(options, protoOrDescriptor));\n//# sourceMappingURL=decorators.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lib/updating-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\nwindow.JSCompiler_renameProperty =\n    (prop, _obj) => prop;\nexport const defaultConverter = {\n    toAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value ? '' : null;\n            case Object:\n            case Array:\n                // if the value is `null` or `undefined` pass this through\n                // to allow removing/no change behavior.\n                return value == null ? value : JSON.stringify(value);\n        }\n        return value;\n    },\n    fromAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value !== null;\n            case Number:\n                return value === null ? null : Number(value);\n            case Object:\n            case Array:\n                return JSON.parse(value);\n        }\n        return value;\n    }\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual = (value, old) => {\n    // This ensures (old==NaN, value==NaN) always returns false\n    return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n    attribute: true,\n    type: String,\n    converter: defaultConverter,\n    reflect: false,\n    hasChanged: notEqual\n};\nconst microtaskPromise = Promise.resolve(true);\nconst STATE_HAS_UPDATED = 1;\nconst STATE_UPDATE_REQUESTED = 1 << 2;\nconst STATE_IS_REFLECTING_TO_ATTRIBUTE = 1 << 3;\nconst STATE_IS_REFLECTING_TO_PROPERTY = 1 << 4;\nconst STATE_HAS_CONNECTED = 1 << 5;\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n */\nexport class UpdatingElement extends HTMLElement {\n    constructor() {\n        super();\n        this._updateState = 0;\n        this._instanceProperties = undefined;\n        this._updatePromise = microtaskPromise;\n        this._hasConnectedResolver = undefined;\n        /**\n         * Map with keys for any properties that have changed since the last\n         * update cycle with previous values.\n         */\n        this._changedProperties = new Map();\n        /**\n         * Map with keys of properties that should be reflected when updated.\n         */\n        this._reflectingProperties = undefined;\n        this.initialize();\n    }\n    /**\n     * Returns a list of attributes corresponding to the registered properties.\n     * @nocollapse\n     */\n    static get observedAttributes() {\n        // note: piggy backing on this to ensure we're finalized.\n        this.finalize();\n        const attributes = [];\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this._classProperties.forEach((v, p) => {\n            const attr = this._attributeNameForProperty(p, v);\n            if (attr !== undefined) {\n                this._attributeToPropertyMap.set(attr, p);\n                attributes.push(attr);\n            }\n        });\n        return attributes;\n    }\n    /**\n     * Ensures the private `_classProperties` property metadata is created.\n     * In addition to `finalize` this is also called in `createProperty` to\n     * ensure the `@property` decorator can add property metadata.\n     */\n    /** @nocollapse */\n    static _ensureClassProperties() {\n        // ensure private storage for property declarations.\n        if (!this.hasOwnProperty(JSCompiler_renameProperty('_classProperties', this))) {\n            this._classProperties = new Map();\n            // NOTE: Workaround IE11 not supporting Map constructor argument.\n            const superProperties = Object.getPrototypeOf(this)._classProperties;\n            if (superProperties !== undefined) {\n                superProperties.forEach((v, k) => this._classProperties.set(k, v));\n            }\n        }\n    }\n    /**\n     * Creates a property accessor on the element prototype if one does not exist.\n     * The property setter calls the property's `hasChanged` property option\n     * or uses a strict identity check to determine whether or not to request\n     * an update.\n     * @nocollapse\n     */\n    static createProperty(name, options = defaultPropertyDeclaration) {\n        // Note, since this can be called by the `@property` decorator which\n        // is called before `finalize`, we ensure storage exists for property\n        // metadata.\n        this._ensureClassProperties();\n        this._classProperties.set(name, options);\n        // Do not generate an accessor if the prototype already has one, since\n        // it would be lost otherwise and that would never be the user's intention;\n        // Instead, we expect users to call `requestUpdate` themselves from\n        // user-defined accessors. Note that if the super has an accessor we will\n        // still overwrite it\n        if (options.noAccessor || this.prototype.hasOwnProperty(name)) {\n            return;\n        }\n        const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n        Object.defineProperty(this.prototype, name, {\n            // tslint:disable-next-line:no-any no symbol in index\n            get() {\n                // tslint:disable-next-line:no-any no symbol in index\n                return this[key];\n            },\n            set(value) {\n                // tslint:disable-next-line:no-any no symbol in index\n                const oldValue = this[name];\n                // tslint:disable-next-line:no-any no symbol in index\n                this[key] = value;\n                this.requestUpdate(name, oldValue);\n            },\n            configurable: true,\n            enumerable: true\n        });\n    }\n    /**\n     * Creates property accessors for registered properties and ensures\n     * any superclasses are also finalized.\n     * @nocollapse\n     */\n    static finalize() {\n        if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this)) &&\n            this.finalized) {\n            return;\n        }\n        // finalize any superclasses\n        const superCtor = Object.getPrototypeOf(this);\n        if (typeof superCtor.finalize === 'function') {\n            superCtor.finalize();\n        }\n        this.finalized = true;\n        this._ensureClassProperties();\n        // initialize Map populated in observedAttributes\n        this._attributeToPropertyMap = new Map();\n        // make any properties\n        // Note, only process \"own\" properties since this element will inherit\n        // any properties defined on the superClass, and finalization ensures\n        // the entire prototype chain is finalized.\n        if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n            const props = this.properties;\n            // support symbols in properties (IE11 does not support this)\n            const propKeys = [\n                ...Object.getOwnPropertyNames(props),\n                ...(typeof Object.getOwnPropertySymbols === 'function') ?\n                    Object.getOwnPropertySymbols(props) :\n                    []\n            ];\n            // This for/of is ok because propKeys is an array\n            for (const p of propKeys) {\n                // note, use of `any` is due to TypeSript lack of support for symbol in\n                // index types\n                // tslint:disable-next-line:no-any no symbol in index\n                this.createProperty(p, props[p]);\n            }\n        }\n    }\n    /**\n     * Returns the property name for the given attribute `name`.\n     * @nocollapse\n     */\n    static _attributeNameForProperty(name, options) {\n        const attribute = options.attribute;\n        return attribute === false ?\n            undefined :\n            (typeof attribute === 'string' ?\n                attribute :\n                (typeof name === 'string' ? name.toLowerCase() : undefined));\n    }\n    /**\n     * Returns true if a property should request an update.\n     * Called when a property value is set and uses the `hasChanged`\n     * option for the property if present or a strict identity check.\n     * @nocollapse\n     */\n    static _valueHasChanged(value, old, hasChanged = notEqual) {\n        return hasChanged(value, old);\n    }\n    /**\n     * Returns the property value for the given attribute value.\n     * Called via the `attributeChangedCallback` and uses the property's\n     * `converter` or `converter.fromAttribute` property option.\n     * @nocollapse\n     */\n    static _propertyValueFromAttribute(value, options) {\n        const type = options.type;\n        const converter = options.converter || defaultConverter;\n        const fromAttribute = (typeof converter === 'function' ? converter : converter.fromAttribute);\n        return fromAttribute ? fromAttribute(value, type) : value;\n    }\n    /**\n     * Returns the attribute value for the given property value. If this\n     * returns undefined, the property will *not* be reflected to an attribute.\n     * If this returns null, the attribute will be removed, otherwise the\n     * attribute will be set to the value.\n     * This uses the property's `reflect` and `type.toAttribute` property options.\n     * @nocollapse\n     */\n    static _propertyValueToAttribute(value, options) {\n        if (options.reflect === undefined) {\n            return;\n        }\n        const type = options.type;\n        const converter = options.converter;\n        const toAttribute = converter && converter.toAttribute ||\n            defaultConverter.toAttribute;\n        return toAttribute(value, type);\n    }\n    /**\n     * Performs element initialization. By default captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        this._saveInstanceProperties();\n    }\n    /**\n     * Fixes any properties set on the instance before upgrade time.\n     * Otherwise these would shadow the accessor and break these properties.\n     * The properties are stored in a Map which is played back after the\n     * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n     * (<=41), properties created for native platform properties like (`id` or\n     * `name`) may not have default values set in the element constructor. On\n     * these browsers native properties appear on instances and therefore their\n     * default value will overwrite any element default (e.g. if the element sets\n     * this.id = 'id' in the constructor, the 'id' will become '' since this is\n     * the native platform default).\n     */\n    _saveInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this.constructor\n            ._classProperties.forEach((_v, p) => {\n            if (this.hasOwnProperty(p)) {\n                const value = this[p];\n                delete this[p];\n                if (!this._instanceProperties) {\n                    this._instanceProperties = new Map();\n                }\n                this._instanceProperties.set(p, value);\n            }\n        });\n    }\n    /**\n     * Applies previously saved instance properties.\n     */\n    _applyInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        // tslint:disable-next-line:no-any\n        this._instanceProperties.forEach((v, p) => this[p] = v);\n        this._instanceProperties = undefined;\n    }\n    connectedCallback() {\n        this._updateState = this._updateState | STATE_HAS_CONNECTED;\n        // Ensure connection triggers an update. Updates cannot complete before\n        // connection and if one is pending connection the `_hasConnectionResolver`\n        // will exist. If so, resolve it to complete the update, otherwise\n        // requestUpdate.\n        if (this._hasConnectedResolver) {\n            this._hasConnectedResolver();\n            this._hasConnectedResolver = undefined;\n        }\n        else {\n            this.requestUpdate();\n        }\n    }\n    /**\n     * Allows for `super.disconnectedCallback()` in extensions while\n     * reserving the possibility of making non-breaking feature additions\n     * when disconnecting at some point in the future.\n     */\n    disconnectedCallback() {\n    }\n    /**\n     * Synchronizes property values when attributes change.\n     */\n    attributeChangedCallback(name, old, value) {\n        if (old !== value) {\n            this._attributeToProperty(name, value);\n        }\n    }\n    _propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n        const ctor = this.constructor;\n        const attr = ctor._attributeNameForProperty(name, options);\n        if (attr !== undefined) {\n            const attrValue = ctor._propertyValueToAttribute(value, options);\n            // an undefined value does not change the attribute.\n            if (attrValue === undefined) {\n                return;\n            }\n            // Track if the property is being reflected to avoid\n            // setting the property again via `attributeChangedCallback`. Note:\n            // 1. this takes advantage of the fact that the callback is synchronous.\n            // 2. will behave incorrectly if multiple attributes are in the reaction\n            // stack at time of calling. However, since we process attributes\n            // in `update` this should not be possible (or an extreme corner case\n            // that we'd like to discover).\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_ATTRIBUTE;\n            if (attrValue == null) {\n                this.removeAttribute(attr);\n            }\n            else {\n                this.setAttribute(attr, attrValue);\n            }\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_ATTRIBUTE;\n        }\n    }\n    _attributeToProperty(name, value) {\n        // Use tracking info to avoid deserializing attribute value if it was\n        // just set from a property setter.\n        if (this._updateState & STATE_IS_REFLECTING_TO_ATTRIBUTE) {\n            return;\n        }\n        const ctor = this.constructor;\n        const propName = ctor._attributeToPropertyMap.get(name);\n        if (propName !== undefined) {\n            const options = ctor._classProperties.get(propName) || defaultPropertyDeclaration;\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_PROPERTY;\n            this[propName] =\n                // tslint:disable-next-line:no-any\n                ctor._propertyValueFromAttribute(value, options);\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_PROPERTY;\n        }\n    }\n    /**\n     * Requests an update which is processed asynchronously. This should\n     * be called when an element should update based on some state not triggered\n     * by setting a property. In this case, pass no arguments. It should also be\n     * called when manually implementing a property setter. In this case, pass the\n     * property `name` and `oldValue` to ensure that any configured property\n     * options are honored. Returns the `updateComplete` Promise which is resolved\n     * when the update completes.\n     *\n     * @param name {PropertyKey} (optional) name of requesting property\n     * @param oldValue {any} (optional) old value of requesting property\n     * @returns {Promise} A Promise that is resolved when the update completes.\n     */\n    requestUpdate(name, oldValue) {\n        let shouldRequestUpdate = true;\n        // if we have a property key, perform property update steps.\n        if (name !== undefined && !this._changedProperties.has(name)) {\n            const ctor = this.constructor;\n            const options = ctor._classProperties.get(name) || defaultPropertyDeclaration;\n            if (ctor._valueHasChanged(this[name], oldValue, options.hasChanged)) {\n                // track old value when changing.\n                this._changedProperties.set(name, oldValue);\n                // add to reflecting properties set\n                if (options.reflect === true &&\n                    !(this._updateState & STATE_IS_REFLECTING_TO_PROPERTY)) {\n                    if (this._reflectingProperties === undefined) {\n                        this._reflectingProperties = new Map();\n                    }\n                    this._reflectingProperties.set(name, options);\n                }\n                // abort the request if the property should not be considered changed.\n            }\n            else {\n                shouldRequestUpdate = false;\n            }\n        }\n        if (!this._hasRequestedUpdate && shouldRequestUpdate) {\n            this._enqueueUpdate();\n        }\n        return this.updateComplete;\n    }\n    /**\n     * Sets up the element to asynchronously update.\n     */\n    async _enqueueUpdate() {\n        // Mark state updating...\n        this._updateState = this._updateState | STATE_UPDATE_REQUESTED;\n        let resolve;\n        const previousUpdatePromise = this._updatePromise;\n        this._updatePromise = new Promise((res) => resolve = res);\n        // Ensure any previous update has resolved before updating.\n        // This `await` also ensures that property changes are batched.\n        await previousUpdatePromise;\n        // Make sure the element has connected before updating.\n        if (!this._hasConnected) {\n            await new Promise((res) => this._hasConnectedResolver = res);\n        }\n        // Allow `performUpdate` to be asynchronous to enable scheduling of updates.\n        const result = this.performUpdate();\n        // Note, this is to avoid delaying an additional microtask unless we need\n        // to.\n        if (result != null &&\n            typeof result.then === 'function') {\n            await result;\n        }\n        resolve(!this._hasRequestedUpdate);\n    }\n    get _hasConnected() {\n        return (this._updateState & STATE_HAS_CONNECTED);\n    }\n    get _hasRequestedUpdate() {\n        return (this._updateState & STATE_UPDATE_REQUESTED);\n    }\n    get hasUpdated() {\n        return (this._updateState & STATE_HAS_UPDATED);\n    }\n    /**\n     * Performs an element update.\n     *\n     * You can override this method to change the timing of updates. For instance,\n     * to schedule updates to occur just before the next frame:\n     *\n     * ```\n     * protected async performUpdate(): Promise<unknown> {\n     *   await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n     *   super.performUpdate();\n     * }\n     * ```\n     */\n    performUpdate() {\n        // Mixin instance properties once, if they exist.\n        if (this._instanceProperties) {\n            this._applyInstanceProperties();\n        }\n        if (this.shouldUpdate(this._changedProperties)) {\n            const changedProperties = this._changedProperties;\n            this.update(changedProperties);\n            this._markUpdated();\n            if (!(this._updateState & STATE_HAS_UPDATED)) {\n                this._updateState = this._updateState | STATE_HAS_UPDATED;\n                this.firstUpdated(changedProperties);\n            }\n            this.updated(changedProperties);\n        }\n        else {\n            this._markUpdated();\n        }\n    }\n    _markUpdated() {\n        this._changedProperties = new Map();\n        this._updateState = this._updateState & ~STATE_UPDATE_REQUESTED;\n    }\n    /**\n     * Returns a Promise that resolves when the element has completed updating.\n     * The Promise value is a boolean that is `true` if the element completed the\n     * update without triggering another update. The Promise result is `false` if\n     * a property was set inside `updated()`. This getter can be implemented to\n     * await additional state. For example, it is sometimes useful to await a\n     * rendered element before fulfilling this Promise. To do this, first await\n     * `super.updateComplete` then any subsequent state.\n     *\n     * @returns {Promise} The Promise returns a boolean that indicates if the\n     * update resolved without triggering another update.\n     */\n    get updateComplete() {\n        return this._updatePromise;\n    }\n    /**\n     * Controls whether or not `update` should be called when the element requests\n     * an update. By default, this method always returns `true`, but this can be\n     * customized to control when to update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    shouldUpdate(_changedProperties) {\n        return true;\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes.\n     * It can be overridden to render and keep updated element DOM.\n     * Setting properties inside this method will *not* trigger\n     * another update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(_changedProperties) {\n        if (this._reflectingProperties !== undefined &&\n            this._reflectingProperties.size > 0) {\n            // Use forEach so this works even if for/of loops are compiled to for\n            // loops expecting arrays\n            this._reflectingProperties.forEach((v, k) => this._propertyToAttribute(k, this[k], v));\n            this._reflectingProperties = undefined;\n        }\n    }\n    /**\n     * Invoked whenever the element is updated. Implement to perform\n     * post-updating tasks via DOM APIs, for example, focusing an element.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    updated(_changedProperties) {\n    }\n    /**\n     * Invoked when the element is first updated. Implement to perform one time\n     * work on the element after update.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    firstUpdated(_changedProperties) {\n    }\n}\n/**\n * Marks class as having finished creating properties.\n */\nUpdatingElement.finalized = true;\n//# sourceMappingURL=updating-element.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateResult } from './lit-html/lit-html.js';\nimport { render } from './lit-html/lib/shady-render.js';\nimport { UpdatingElement } from './lib/updating-element.js';\nexport * from './lib/updating-element.js';\nexport * from './lib/decorators.js';\nexport { html, svg, TemplateResult, SVGTemplateResult } from './lit-html/lit-html.js';\nimport { supportsAdoptingStyleSheets } from './lib/css-tag.js';\nexport * from './lib/css-tag.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litElementVersions'] || (window['litElementVersions'] = []))\n    .push('2.0.1');\n/**\n * Minimal implementation of Array.prototype.flat\n * @param arr the array to flatten\n * @param result the accumlated result\n */\nfunction arrayFlat(styles, result = []) {\n    for (let i = 0, length = styles.length; i < length; i++) {\n        const value = styles[i];\n        if (Array.isArray(value)) {\n            arrayFlat(value, result);\n        }\n        else {\n            result.push(value);\n        }\n    }\n    return result;\n}\n/** Deeply flattens styles array. Uses native flat if available. */\nconst flattenStyles = (styles) => styles.flat ? styles.flat(Infinity) : arrayFlat(styles);\nexport class LitElement extends UpdatingElement {\n    /** @nocollapse */\n    static finalize() {\n        super.finalize();\n        // Prepare styling that is stamped at first render time. Styling\n        // is built from user provided `styles` or is inherited from the superclass.\n        this._styles =\n            this.hasOwnProperty(JSCompiler_renameProperty('styles', this)) ?\n                this._getUniqueStyles() :\n                this._styles || [];\n    }\n    /** @nocollapse */\n    static _getUniqueStyles() {\n        // Take care not to call `this.styles` multiple times since this generates\n        // new CSSResults each time.\n        // TODO(sorvell): Since we do not cache CSSResults by input, any\n        // shared styles will generate new stylesheet objects, which is wasteful.\n        // This should be addressed when a browser ships constructable\n        // stylesheets.\n        const userStyles = this.styles;\n        const styles = [];\n        if (Array.isArray(userStyles)) {\n            const flatStyles = flattenStyles(userStyles);\n            // As a performance optimization to avoid duplicated styling that can\n            // occur especially when composing via subclassing, de-duplicate styles\n            // preserving the last item in the list. The last item is kept to\n            // try to preserve cascade order with the assumption that it's most\n            // important that last added styles override previous styles.\n            const styleSet = flatStyles.reduceRight((set, s) => {\n                set.add(s);\n                // on IE set.add does not return the set.\n                return set;\n            }, new Set());\n            // Array.from does not work on Set in IE\n            styleSet.forEach((v) => styles.unshift(v));\n        }\n        else if (userStyles) {\n            styles.push(userStyles);\n        }\n        return styles;\n    }\n    /**\n     * Performs element initialization. By default this calls `createRenderRoot`\n     * to create the element `renderRoot` node and captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        super.initialize();\n        this.renderRoot = this.createRenderRoot();\n        // Note, if renderRoot is not a shadowRoot, styles would/could apply to the\n        // element's getRootNode(). While this could be done, we're choosing not to\n        // support this now since it would require different logic around de-duping.\n        if (window.ShadowRoot && this.renderRoot instanceof window.ShadowRoot) {\n            this.adoptStyles();\n        }\n    }\n    /**\n     * Returns the node into which the element should render and by default\n     * creates and returns an open shadowRoot. Implement to customize where the\n     * element's DOM is rendered. For example, to render into the element's\n     * childNodes, return `this`.\n     * @returns {Element|DocumentFragment} Returns a node into which to render.\n     */\n    createRenderRoot() {\n        return this.attachShadow({ mode: 'open' });\n    }\n    /**\n     * Applies styling to the element shadowRoot using the `static get styles`\n     * property. Styling will apply using `shadowRoot.adoptedStyleSheets` where\n     * available and will fallback otherwise. When Shadow DOM is polyfilled,\n     * ShadyCSS scopes styles and adds them to the document. When Shadow DOM\n     * is available but `adoptedStyleSheets` is not, styles are appended to the\n     * end of the `shadowRoot` to [mimic spec\n     * behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n     */\n    adoptStyles() {\n        const styles = this.constructor._styles;\n        if (styles.length === 0) {\n            return;\n        }\n        // There are three separate cases here based on Shadow DOM support.\n        // (1) shadowRoot polyfilled: use ShadyCSS\n        // (2) shadowRoot.adoptedStyleSheets available: use it.\n        // (3) shadowRoot.adoptedStyleSheets polyfilled: append styles after\n        // rendering\n        if (window.ShadyCSS !== undefined && !window.ShadyCSS.nativeShadow) {\n            window.ShadyCSS.ScopingShim.prepareAdoptedCssText(styles.map((s) => s.cssText), this.localName);\n        }\n        else if (supportsAdoptingStyleSheets) {\n            this.renderRoot.adoptedStyleSheets =\n                styles.map((s) => s.styleSheet);\n        }\n        else {\n            // This must be done after rendering so the actual style insertion is done\n            // in `update`.\n            this._needsShimAdoptedStyleSheets = true;\n        }\n    }\n    connectedCallback() {\n        super.connectedCallback();\n        // Note, first update/render handles styleElement so we only call this if\n        // connected after first update.\n        if (this.hasUpdated && window.ShadyCSS !== undefined) {\n            window.ShadyCSS.styleElement(this);\n        }\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes\n     * and calls `render` to render DOM via lit-html. Setting properties inside\n     * this method will *not* trigger another update.\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(changedProperties) {\n        super.update(changedProperties);\n        const templateResult = this.render();\n        if (templateResult instanceof TemplateResult) {\n            this.constructor\n                .render(templateResult, this.renderRoot, { scopeName: this.localName, eventContext: this });\n        }\n        // When native Shadow DOM is used but adoptedStyles are not supported,\n        // insert styling after rendering to ensure adoptedStyles have highest\n        // priority.\n        if (this._needsShimAdoptedStyleSheets) {\n            this._needsShimAdoptedStyleSheets = false;\n            this.constructor._styles.forEach((s) => {\n                const style = document.createElement('style');\n                style.textContent = s.cssText;\n                this.renderRoot.appendChild(style);\n            });\n        }\n    }\n    /**\n     * Invoked on each update to perform rendering tasks. This method must return\n     * a lit-html TemplateResult. Setting properties inside this method will *not*\n     * trigger the element to update.\n     */\n    render() {\n    }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n */\nLitElement.finalized = true;\n/**\n * Render method used to render the lit-html TemplateResult to the element's\n * DOM.\n * @param {TemplateResult} Template to render.\n * @param {Element|DocumentFragment} Node into which to render.\n * @param {String} Element name.\n * @nocollapse\n */\nLitElement.render = render;\n//# sourceMappingURL=lit-element.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n\n<!-- ## Unreleased -->\n<!-- ### Changed -->\n<!-- ### Added -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n\n## [1.0.0] - 2019-02-05\n### Changed\n* Tons of docs updates ([#746](https://github.com/Polymer/lit-html/pull/746)), ([#675](https://github.com/Polymer/lit-html/pull/675)), ([#724](https://github.com/Polymer/lit-html/pull/724)), ([#753](https://github.com/Polymer/lit-html/pull/753)), ([#764](https://github.com/Polymer/lit-html/pull/764)), ([#763](https://github.com/Polymer/lit-html/pull/763)), ([#765](https://github.com/Polymer/lit-html/pull/765)), ([#767](https://github.com/Polymer/lit-html/pull/767)), ([#768](https://github.com/Polymer/lit-html/pull/768)), ([#734](https://github.com/Polymer/lit-html/pull/734)), ([#771](https://github.com/Polymer/lit-html/pull/771)), ([#766](https://github.com/Polymer/lit-html/pull/766)), ([#773](https://github.com/Polymer/lit-html/pull/773)), ([#770](https://github.com/Polymer/lit-html/pull/770)), ([#769](https://github.com/Polymer/lit-html/pull/769)), ([#777](https://github.com/Polymer/lit-html/pull/777)), ([#776](https://github.com/Polymer/lit-html/pull/776)), ([#754](https://github.com/Polymer/lit-html/pull/754)), ([#779](https://github.com/Polymer/lit-html/pull/779))\n### Added\n* Global version of `lit-html` on window ([#790](https://github.com/Polymer/lit-html/pull/790)).\n### Fixed\n* Removed use of `any` outside of test code ([#741](https://github.com/Polymer/lit-html/pull/741)).\n\n## [1.0.0-rc.2] - 2019-01-09\n### Changed\n* Performance improvements to template processing. ([#690](https://github.com/Polymer/lit-html/pull/690))\n### Added\n* Added the `nothing` sentinel value which can be used to clear a part. ([#673](https://github.com/Polymer/lit-html/pull/673))\n### Fixed\n* Fixed #702: a bug with the `unsafeHTML` directive when changing between unsafe and other values. ([#703](https://github.com/Polymer/lit-html/pull/703))\n* Fixed #708: a bug with the `until` directive where placeholders could overwrite resolved Promises. ([#721](https://github.com/Polymer/lit-html/pull/721))\n\n\n## [1.0.0-rc.1] - 2018-12-13\n### Fixed\n* Documentation updates.\n* Fixed typing for template_polyfill `createElement` call.\n\n## [0.14.0] - 2018-11-30\n### Changed\n* `until()` can now take any number of sync or async arguments. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* [Breaking] `guard()` supports multiple dependencies. If the first argument to `guard()` is an array, the array items are checked for equality to previous values. ([#666](https://github.com/Polymer/lit-html/pull/666))\n* [Breaking] Renamed `classMap.js` and `styleMap.js` files to kebab-case. ([#644](https://github.com/Polymer/lit-html/pull/644))\n### Added\n* Added `cache()` directive. ([#646](https://github.com/Polymer/lit-html/pull/646))\n* Removed Promise as a supposed node-position value type. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* Added a minimal `<template>` polyfill.\n### Removed\n* [Breaking] Removed the `when()` directive.  Users may achieve similar behavior by wrapping a ternary with the `cache()` directive.\n### Fixed\n* Bound attribute names are rewritten to avoid IE/Edge removing SVG and style attributes. ([#640](https://github.com/Polymer/lit-html/pull/640))\n* Ensure shady-render prepares styling for a scope before attaching child elements. ([#664](https://github.com/Polymer/lit-html/pull/664))\n* Handle CSS Custom Variables in the styleMap directive. [#642](https://github.com/Polymer/lit-html/pull/642))\n\n## [0.13.0] - 2018-11-08\n### Changed\n* [Breaking] Directives are now defined by passing the entire directive factory function to `directive()`. ([#562](https://github.com/Polymer/lit-html/pull/562))\n### Fixed\n* Fix issue on obscure browsers that do not accept event listener objects by using callback as event part listener ([#581](https://github.com/Polymer/lit-html/pull/581))\n* Fix KeyFn and ItemTemplate types ([#570](https://github.com/Polymer/lit-html/pull/570))\n* Don't use export * to workaround rollup bug ([#556](https://github.com/Polymer/lit-html/pull/556))\n* `eventContext` is no longer used as the `this` value for event listener objects (object with a `handleEvent` method), as the object itself is supposed to be the `this` value. ([#576](https://github.com/Polymer/lit-html/pull/576))\n\n## [0.12.0] - 2018-10-05\n### Changed\n* Re-implemented repeat directive for better performance ([#501](https://github.com/Polymer/lit-html/pull/501))\n* Updated TypeScript dependency to 3.1\n* [Breaking] `render()` now takes an options object as the third argument. ([#523](https://github.com/Polymer/lit-html/pull/523))\n### Added\n* Event listeners are called with a configurable `this` reference, which is set via the `eventContext` option to `render()`. ([#523](https://github.com/Polymer/lit-html/pull/523))\n* Support for event listener options, by passing the listener itself as both the second and third arguments to add/removeEventListener().\n\n\n## [0.11.4] - 2018-09-17\n### Fixed\n* Fixed issues with `shady-render` introduced in 0.11.3 ([#504](https://github.com/Polymer/lit-html/issues/504) and [#505](https://github.com/Polymer/lit-html/issues/505)).\n\n## [0.11.3] - 2018-09-13\n### Changed\n* Moved upgrading of custom elements in template fragments to a common location in TemplateInstance ([#489](https://github.com/Polymer/lit-html/pull/489))\n* Rewrite render() to reuse the logic in NodePart. render() now supports all the data types that NodeParts do. ([#491](https://github.com/Polymer/lit-html/pull/491))\n\n### Fixed\n* Fixed bug when using the ShadyCSS @apply` shim. ([#502](https://github.com/Polymer/lit-html/pull/502))\n\n## [0.11.2] - 2018-09-12\n\n### Added\n* Added `classMap` and `styleMap` directives ([#486](https://github.com/Polymer/lit-html/pull/486))\n\n### Fixed\n\n* Fixed bug in asyncReplace when rerendering the same iterable ([#485](https://github.com/Polymer/lit-html/pull/485))\n* Update properties before upgrading custom elements ([#455](https://github.com/Polymer/lit-html/pull/455))\n* Cache the ShadyCSS version lookup ([#477](https://github.com/Polymer/lit-html/pull/477))\n\n## [0.11.1] - 2018-09-02\n\n### Changed\n* Eliminated a cycle in the module import graph ([#472](https://github.com/Polymer/lit-html/pull/472))\n* Remove the default value for the templateProcessor parameter in TemplateResult#constuctor, making it a required paremeter ([#472](https://github.com/Polymer/lit-html/pull/472))\n\n## [0.11.0] - 2018-08-28\n\n### Added\n* Added support for property, event, and boolean bindings to default syntax ([#398](https://github.com/Polymer/lit-html/pull/398))\n* Added guard directive ([#438](https://github.com/Polymer/lit-html/pull/438))\n* Added when directive ([#439](https://github.com/Polymer/lit-html/pull/439))\n\n### Changed\n* Split implementation into multiple small modules and merged lit-html.js and core.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Moved directives into top-level `directives/` directory ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Replaced `PartCallback` with `TemplateProcessor` ([#405](https://github.com/Polymer/lit-html/pull/405))\n* Unified `NodePart` and `AttributePart` interfaces ([#400](https://github.com/Polymer/lit-html/pull/400))\n  * AttributePart#setValue() takes a single value\n  * `Part` has separate `setValue()` and `commit()` phases\n  * Added `AttributeCommitter` to commit attribute values once for multiple `AttributeParts`\n\n### Removed\n* Removed lit-extended.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n\n### Fixed\n* Render initial undefined values in attributes ([#377](https://github.com/Polymer/lit-html/pull/377))\n* Handle case-sensitive attributes like `viewBox` correctly ([#376](https://github.com/Polymer/lit-html/pull/376))\n* Support bindings in `<template>` elements ([#343](https://github.com/Polymer/lit-html/pull/343))\n* Don’t break templates when HTML comments have bindings in them ([#446](https://github.com/Polymer/lit-html/pull/446))\n* IE: Don't use Set() constructor arguments ([#401](https://github.com/Polymer/lit-html/pull/401))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Update values after upgrading custom elements ([#385](https://github.com/Polymer/lit-html/pull/385))\n* Dirty check primitive values passed to unsafeHTML() ([#384](https://github.com/Polymer/lit-html/pull/384))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Upgrade disconnected custom elements before setting properties on them. ([#442](https://github.com/Polymer/lit-html/pull/442))\n* Fix style attribute bindings in IE ([#448](https://github.com/Polymer/lit-html/pull/448))\n\n\n## [0.10.1] - 2018-06-13\n\n* Added `noChange` - Value in favour of `directiveValue` (deprecated).\n  * A `noChange` - Value signals that a value was handled by a directive and should not be written to the DOM\n* Updated shady-render to render styles in order, work with `@apply`, and work in browers where CSS Custom Properties must be polyfilled, like IE 11.\n* Introduced API to modify template contents safely without breaking template parts\n  * `insertNodeIntoTemplate(template: Template, node: Node, refNode: Node|null)`\n  * `removeNodesFromTemplate(template: Template, nodesToRemove: Set<Node>)`\n\n## [0.10.0] - 2018-05-03\n* Added IE11 support\n* Declarative events in lit-extended are more efficient when handlers change\n\n## [0.9.0] - 2018-02-01\n\n* Refactored how template tags and `render()` are implemented so that all\n  specialization of template syntax is done in tags, not `render()`, allowing\n  for the mixining of templates of different syntaxes, and for hooks in\n  `render()` to change templates before they're initially processed.\n* Added ShadyCSS support in lib/shady-render.js. It's exported render function\n  will pass templates to ShadyCSS's `prepareTemplate()` function to process style\n  tags and elements in the template for emulate CSS scoping.\n* lit-extended: Attribute bindings with a `?` suffix on the name now act as boolean\n  attributes. The attribute will be removed for falsey values and set to `''` for\n  truthy values, matching the HTML specification behavior for boolean attributes.\n* Fixed a bug where directives rendered incorrectly on AttributeParts and PropertyParts\n\n## [0.8.0] - 2018-01-12\n\n* Allow all valid HTML attribute names, including emoji and Angular-style\n  `(foo)=` and `[foo]=` names.\n* Drastically improved performance of the `repeat` directive.\n* Fixed an issue with expressions directly following elements.\n* Fixed numerous bugs with the `repeat` directive.\n* Performance improvements for template setup\n* Internal code cleanup\n* Support synchronous thenables\n* Added the `asyncAppend` and `asyncReplace` directives to handle async iterable values in expressions.\n\n## [0.7.0] - 2017-10-06\n\n* Added the `svg` template tag for creating partial SVG content\n* Support for expressions inside tables and other elements with limited permitted content\n* Only remove whitespace between elements, or at the start or end of elements\n* Fixed bugs with rendering iterables\n* A few IE/Edge fixes. Closer to full support.\n\n## [0.6.0] - 2017-09-01\n\n* Fixed removing event handlers when setting them to `undefined`.\n* Allow the text \"{{}}\" to appear in templates.\n* Optimized clearing of Parts.\n* Added `unsafeHTML()` directive to bind values as HTML source.\n* Optimizations, simplification and bug fixes of Array handling code.\n* Update to extension API: added partCallback parameter to `render()`.\n* Added the `directive()` decorator function to create directives. Functions values are no longer treated as directive by default, simplifying declarative event handlers.\n"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/CODE_OF_CONDUCT.md",
    "content": "The Polymer community is full of bright, thoughtful, helpful, supportive people - it's on all of us to keep it this way! Google and the Polymer team want to help foster and support this, and we take any breaches of mutual respect very seriously. Below is the community code of conduct, which applies to our Github repos and organizations, mailing lists, Slack channels, G+ community, and any other Polymer-supported communication group.\n\n\n### Be excellent to each other.\n\nTreat everyone with respect. Participate while acknowledging that everyone deserves to be here — and each of us has the right to enjoy our experience and participate without fear of harassment, discrimination, or condescension, whether blatant or via micro-aggressions.\n\n### Speak up if you see or hear something.\n\nHarassment is not tolerated, and you are empowered to politely engage when you or others are disrespected. Also, assume positive intent. The person making you feel uncomfortable may not be aware of what they are doing, and politely bringing their behavior to their attention is encouraged.\n\n### Practice saying \"Yes and\" to each other.\n\nBuild on each other’s ideas. We all benefit when we create together.\n\n### We have a ZERO TOLERANCE POLICY for harassment of any kind, including but not limited to:\n\n* Stalking/following\n* Harassing comments\n* Deliberate intimidation\n* Sustained disruption of threads, channels, lists, etc.\n* Offensive comments\n* Sexual images in public spaces\n* Unwelcome sexual or otherwise aggressive attention\n\n#### In relation to, but not limited to:\n\n* Neurodiversity\n* Race\n* Color\n* National origin\n* Gender\n* Gender identity\n* Gender presentation\n* Sexual orientation\n* Age\n* Body size\n* Differing abilities\n* Appearance\n* Religion\n* Pregnancy\n\nWe empower and encourage you to report any behavior that makes you or others feel uncomfortable by emailing community@polymer-project.org.\n\nAny person communicating in a disorderly manner, engaging in harassing or uncomfortable behavior, or otherwise failing to comply with this policy may be removed from any Google-supported channel or permanently banned (including to future Google communities) at any time in Google’s sole discretion. \n\n### ANTI-HARASSMENT POLICY\n\nGoogle and the Polymer team are dedicated to supporting a harassment-free and inclusive community for everyone regardless of gender identity and expression, sexual orientation, differing abilities, neurodiversity, physical appearance, body size, ethnicity, nationality, age, religion, or other protected category. We do not tolerate harassment of community members in any form. Sexual language and imagery is not appropriate for any Polymer-related community. Google and the Polymer team take these violations of our policy seriously and will respond appropriately. All community members must abide by our anti-harassment policy.\n\n### CONDUCT POLICY\n\nGoogle and the Polymer team reserve the right to remove or ban any person from a Polymer-supported community (and potentially all future Google-supported communities) at any time in its sole discretion. This includes but is not limited to community members behaving in a disorderly manner or failing to comply with the terms and conditions herein.\n"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/CONTRIBUTING.md",
    "content": "# Contributing to lit-html\n\nThank you for your interest in contributing to lit-html!\n\nThere are many ways to contribute to lit-html project, and we have many different needs to be addressed. All contributions, from PRs to reports of successful usage, are appreciated and valuable.\n\n## Code of Conduct\n\nWe have a [Code of Conduct](./CODE_OF_CONDUCT.md), please follow it in all interactions with project maintainers and fellow users.\n\n## Filing Issues\n\nIssues are one of the most important ways to contribute to lit-html.\n\nPlease search though open and closed issues to see if a similar issue already exists. If not, open an issue and try to provide a minimal reproduction if you can.\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n## Pull Requests\n\nPull requests are greatly appreciated! To ensure a smooth review process, please follow these steps:\n\n 1. Make sure there's an open issue that the PR addresses. Add \"Fixes #(issue number)\" to the PR description.\n 2. Please discuss the general shape of the change ahead of time. This can save much time for reviewers and submitters alike. Many times there may be existing ideas on how to handle an issue that are not fully written out, and asking about it will bring out more details.\n 3. All PRs that change behavior or fix bugs should have new or updated tests.\n 4. Try to create a set of descriptive commits that each do one focused change. Avoid commits like \"oops\", and prefer commits like \"Added method foo to Bar\".\n 5. When addressing review comments, try to add new commits, rather than modifying previous commits. This makes it easier for reviewers to see what changed since the last review. `git commit --fixup {SHA}` is really useful for this. Obviously, requests like \"Please rebase onto master\" require changing commits.\n 6. If you [allow changes to be committed to your PR branches](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) we can fix some small things in the PR for you, speeding up the review process. This is especially useful if you're new to TypeScript and need help with type annotations.\n 7. Please run `npm run lint` and `npm run format` before submitting PRs. PRs that don't lint and aren't formatted will fail contiuous integration tests.\n\n## Code Style\n\nWe follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html), but there are a couple of points worth emphasizing:\n\n 1. Clear is better than clever. Optimize for simple, readable code first.\n 2. Prefer longer, more descriptive names, over shorter names. For most variables, minification means we don't pay for extra characters in production.\n 3. Always err on the side of too many comments. When commenting, \"why\" is more important than \"what\".\n 4. If you're tempted to add a \"what\" comment, see if you can't restructure the code and use more descritive names so that the comment is unneccessary.\n\n## TypeScript\n\nWe use TypeScript on lit-html in order to automatically check the code for type errors and document the types of fields and attributes for easier reading. If you don't know TypeScript, we hope it doesn't discourage you from contributing - TypeScript is a superset of JavaScript that focuses on adding type annotations.\n\nTypeScript is hopefully relatively easy to pick up, but if you have any problems we're more than happy to help. You can submit a pull request with type warnings and we'll either help you fix them, or if you allow commits to your PR branch, fix them for you. VS Code is a very nice IDE for TypeScript development if you care to try it.\n\nWe stick to subset of TypeScript that is more strict and closer to standard JavaScript.\n 1. We have strict compiler options turned on. Do not change them.\n 2. Prefer the `unknown` type over `any`.\n 3. Prefer the `object` type over `Object`\n 4. Prefer named type alias over complex inline types.\n 5. Use web-compatible, full URLs as import specifiers, including file extensions. ie, `import * as foo from './foo.js`, not `import * as foo from './foo`\n 6. Only use TypeScript for types:\n    1. We compile to the `esnext` target and don't use TypeScript for \"downlevel\" compilation. Do not change that.\n    2. Don't use features that are not part of the type system:\n        1. `namespace`\n        2. `enum`\n        3. Parameter properties (initialize class fields in the constructor parameter list)\n 7. Prefix private members with `_`. (don't assume clients are using TypeScript)\n\n## Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/README.md",
    "content": "# lit-html\nEfficient, Expressive, Extensible HTML templates in JavaScript\n\n[![Build Status](https://travis-ci.org/Polymer/lit-html.svg?branch=master)](https://travis-ci.org/Polymer/lit-html)\n[![Published on npm](https://img.shields.io/npm/v/lit-html.svg)](https://www.npmjs.com/package/lit-html)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-html.polymer-project.org](https://lit-html.polymer-project.org).\n\nDocs source is in the `docs` folder. To build the site youself, see the instructions in [docs/README.md](docs/README.md).\n\n## Overview\n\n`lit-html` lets you write [HTML templates](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) in JavaScript with [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals).\n\nlit-html templates are plain JavaScript and combine the familiarity of writing HTML with the power of JavaScript. lit-html takes care of efficiently rendering templates to DOM, including efficiently updating the DOM with new values.\n\n```javascript\nimport {html, render} from 'lit-html';\n\n// This is a lit-html template function. It returns a lit-html template.\nconst helloTemplate = (name) => html`<div>Hello ${name}!</div>`;\n\n// This renders <div>Hello Steve!</div> to the document body\nrender(helloTemplate('Steve'), document.body);\n\n// This updates to <div>Hello Kevin!</div>, but only updates the ${name} part\nrender(helloTemplate('Kevin'), document.body);\n```\n\n`lit-html` provides two main exports:\n\n * `html`: A JavaScript [template tag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) used to produce a `TemplateResult`, which is a container for a template, and the values that should populate the template.\n * `render()`: A function that renders a `TemplateResult` to a DOM container, such as an element or shadow root.\n\n## Installation\n\n```bash\n$ npm install lit-html\n```\n\n## Status\n\n`lit-html` is under active development and has not yet had a 1.0 release. The\ninternal API may still change somewhat. The `html` and `render` API is stable.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md).\n"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/async-append.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { createMarker, directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], appending new\n * values after previous values, similar to the built-in support for iterables.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is appended to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncAppend = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncAppend can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    part.value = value;\n    // We keep track of item Parts across iterations, so that we can\n    // share marker nodes between consecutive Parts.\n    let itemPart;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This lets the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            // Like with sync iterables, each item induces a Part, so we need\n            // to keep track of start and end nodes for the Part.\n            // Note: Because these Parts are not updatable like with a sync\n            // iterable (if we render a new value, we always clear), it may\n            // be possible to optimize away the Parts and just re-use the\n            // Part.setValue() logic.\n            let itemStartNode = part.startNode;\n            // Check to see if we have a previous item and Part\n            if (itemPart !== undefined) {\n                // Create a new node to separate the previous and next Parts\n                itemStartNode = createMarker();\n                // itemPart is currently the Part for the previous item. Set\n                // it's endNode to the node we'll use for the next Part's\n                // startNode.\n                itemPart.endNode = itemStartNode;\n                part.endNode.parentNode.insertBefore(itemStartNode, part.endNode);\n            }\n            itemPart = new NodePart(part.options);\n            itemPart.insertAfterNode(itemStartNode);\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# sourceMappingURL=async-append.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/async-replace.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], replacing\n * previous values with new values, so that only one value is ever rendered\n * at a time.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is rendered to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncReplace = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncReplace can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    // We nest a new part to keep track of previous item values separately\n    // of the iterable as a value itself.\n    const itemPart = new NodePart(part.options);\n    part.value = value;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This let's the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n                itemPart.appendIntoPart(part);\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# sourceMappingURL=async-replace.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/cache.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateInstance } from '../lib/template-instance.js';\nimport { directive, NodePart, reparentNodes, TemplateResult } from '../lit-html.js';\nconst templateCaches = new WeakMap();\n/**\n * Enables fast switching between multiple templates by caching the DOM nodes\n * and TemplateInstances produced by the templates.\n *\n * Example:\n *\n * ```\n * let checked = false;\n *\n * html`\n *   ${cache(checked ? html`input is checked` : html`input is not checked`)}\n * `\n * ```\n */\nexport const cache = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('cache can only be used in text bindings');\n    }\n    let templateCache = templateCaches.get(part);\n    if (templateCache === undefined) {\n        templateCache = new WeakMap();\n        templateCaches.set(part, templateCache);\n    }\n    const previousValue = part.value;\n    // First, can we update the current TemplateInstance, or do we need to move\n    // the current nodes into the cache?\n    if (previousValue instanceof TemplateInstance) {\n        if (value instanceof TemplateResult &&\n            previousValue.template === part.options.templateFactory(value)) {\n            // Same Template, just trigger an update of the TemplateInstance\n            part.setValue(value);\n            return;\n        }\n        else {\n            // Not the same Template, move the nodes from the DOM into the cache.\n            let cachedTemplate = templateCache.get(previousValue.template);\n            if (cachedTemplate === undefined) {\n                cachedTemplate = {\n                    instance: previousValue,\n                    nodes: document.createDocumentFragment(),\n                };\n                templateCache.set(previousValue.template, cachedTemplate);\n            }\n            reparentNodes(cachedTemplate.nodes, part.startNode.nextSibling, part.endNode);\n        }\n    }\n    // Next, can we reuse nodes from the cache?\n    if (value instanceof TemplateResult) {\n        const template = part.options.templateFactory(value);\n        const cachedTemplate = templateCache.get(template);\n        if (cachedTemplate !== undefined) {\n            // Move nodes out of cache\n            part.setValue(cachedTemplate.nodes);\n            part.commit();\n            // Set the Part value to the TemplateInstance so it'll update it.\n            part.value = cachedTemplate.instance;\n        }\n    }\n    part.setValue(value);\n});\n//# sourceMappingURL=cache.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/class-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n// On IE11, classList.toggle doesn't accept a second argument.\n// Since this is so minor, we just polyfill it.\nif (window.navigator.userAgent.match('Trident')) {\n    DOMTokenList.prototype.toggle = function (token, force) {\n        if (force === undefined || force) {\n            this.add(token);\n        }\n        else {\n            this.remove(token);\n        }\n        return force === undefined ? true : force;\n    };\n}\n/**\n * Stores the ClassInfo object applied to a given AttributePart.\n * Used to unset existing values when a new ClassInfo object is applied.\n */\nconst classMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static classes applied (e.g. `foo` in\n * class=\"foo ${classMap()}\"). Static classes are applied only the first time\n * the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst classMapStatics = new WeakMap();\n/**\n * A directive that applies CSS classes. This must be used in the `class`\n * attribute and must be the only part used in the attribute. It takes each\n * property in the `classInfo` argument and adds the property name to the\n * element's `classList` if the property value is truthy; if the property value\n * is falsey, the property name is removed from the element's `classList`. For\n * example\n * `{foo: bar}` applies the class `foo` if the value of `bar` is truthy.\n * @param classInfo {ClassInfo}\n */\nexport const classMap = directive((classInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'class' || part.committer.parts.length > 1) {\n        throw new Error('The `classMap` directive must be used in the `class` attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // handle static classes\n    if (!classMapStatics.has(part)) {\n        part.committer.element.className = part.committer.strings.join(' ');\n        classMapStatics.set(part, true);\n    }\n    // remove old classes that no longer apply\n    const oldInfo = classMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in classInfo)) {\n            part.committer.element.classList.remove(name);\n        }\n    }\n    // add new classes\n    for (const name in classInfo) {\n        if (!oldInfo || (oldInfo[name] !== classInfo[name])) {\n            // We explicitly want a loose truthy check here because\n            // it seems more convenient that '' and 0 are skipped.\n            part.committer.element.classList.toggle(name, Boolean(classInfo[name]));\n        }\n    }\n    classMapCache.set(part, classInfo);\n});\n//# sourceMappingURL=class-map.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/guard.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { directive } from '../lit-html.js';\nconst previousValues = new WeakMap();\n/**\n * Prevents re-render of a template function until a single value or an array of\n * values changes.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([user.id, company.id], () => html`...`)}\n *   </div>\n * ```\n *\n * In this case, the template only renders if either `user.id` or `company.id`\n * changes.\n *\n * guard() is useful with immutable data patterns, by preventing expensive work\n * until data updates.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}\n *   </div>\n * ```\n *\n * In this case, items are mapped over only when the array reference changes.\n *\n * @param value the value to check before re-rendering\n * @param f the template function\n */\nexport const guard = directive((value, f) => (part) => {\n    const previousValue = previousValues.get(part);\n    if (Array.isArray(value)) {\n        // Dirty-check arrays by item\n        if (Array.isArray(previousValue) &&\n            previousValue.length === value.length &&\n            value.every((v, i) => v === previousValue[i])) {\n            return;\n        }\n    }\n    else if (previousValue === value &&\n        (value !== undefined || previousValues.has(part))) {\n        // Dirty-check non-arrays by identity\n        return;\n    }\n    part.setValue(f());\n    // Copy the value if it's an array so that if it's mutated we don't forget\n    // what the previous values were.\n    previousValues.set(part, Array.isArray(value) ? Array.from(value) : value);\n});\n//# sourceMappingURL=guard.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/if-defined.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive } from '../lit-html.js';\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = directive((value) => (part) => {\n    if (value === undefined && part instanceof AttributePart) {\n        if (value !== part.value) {\n            const name = part.committer.name;\n            part.committer.element.removeAttribute(name);\n        }\n    }\n    else {\n        part.setValue(value);\n    }\n});\n//# sourceMappingURL=if-defined.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/repeat.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { createMarker, directive, NodePart, removeNodes, reparentNodes } from '../lit-html.js';\n// Helper functions for manipulating parts\n// TODO(kschaaf): Refactor into Part API?\nconst createAndInsertPart = (containerPart, beforePart) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = beforePart === undefined ? containerPart.endNode :\n        beforePart.startNode;\n    const startNode = container.insertBefore(createMarker(), beforeNode);\n    container.insertBefore(createMarker(), beforeNode);\n    const newPart = new NodePart(containerPart.options);\n    newPart.insertAfterNode(startNode);\n    return newPart;\n};\nconst updatePart = (part, value) => {\n    part.setValue(value);\n    part.commit();\n    return part;\n};\nconst insertPartBefore = (containerPart, part, ref) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = ref ? ref.startNode : containerPart.endNode;\n    const endNode = part.endNode.nextSibling;\n    if (endNode !== beforeNode) {\n        reparentNodes(container, part.startNode, endNode, beforeNode);\n    }\n};\nconst removePart = (part) => {\n    removeNodes(part.startNode.parentNode, part.startNode, part.endNode.nextSibling);\n};\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list, start, end) => {\n    const map = new Map();\n    for (let i = start; i <= end; i++) {\n        map.set(list[i], i);\n    }\n    return map;\n};\n// Stores previous ordered list of parts and map of key to index\nconst partListCache = new WeakMap();\nconst keyListCache = new WeakMap();\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * amd removals.\n *\n * IMPORTANT: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive((items, keyFnOrTemplate, template) => {\n    let keyFn;\n    if (template === undefined) {\n        template = keyFnOrTemplate;\n    }\n    else if (keyFnOrTemplate !== undefined) {\n        keyFn = keyFnOrTemplate;\n    }\n    return (containerPart) => {\n        if (!(containerPart instanceof NodePart)) {\n            throw new Error('repeat can only be used in text bindings');\n        }\n        // Old part & key lists are retrieved from the last update\n        // (associated with the part for this instance of the directive)\n        const oldParts = partListCache.get(containerPart) || [];\n        const oldKeys = keyListCache.get(containerPart) || [];\n        // New part list will be built up as we go (either reused from\n        // old parts or created for new keys in this update). This is\n        // saved in the above cache at the end of the update.\n        const newParts = [];\n        // New value list is eagerly generated from items along with a\n        // parallel array indicating its key.\n        const newValues = [];\n        const newKeys = [];\n        let index = 0;\n        for (const item of items) {\n            newKeys[index] = keyFn ? keyFn(item, index) : index;\n            newValues[index] = template(item, index);\n            index++;\n        }\n        // Maps from key to index for current and previous update; these\n        // are generated lazily only when needed as a performance\n        // optimization, since they are only required for multiple\n        // non-contiguous changes in the list, which are less common.\n        let newKeyToIndexMap;\n        let oldKeyToIndexMap;\n        // Head and tail pointers to old parts and new values\n        let oldHead = 0;\n        let oldTail = oldParts.length - 1;\n        let newHead = 0;\n        let newTail = newValues.length - 1;\n        // Overview of O(n) reconciliation algorithm (general approach\n        // based on ideas found in ivi, vue, snabbdom, etc.):\n        //\n        // * We start with the list of old parts and new values (and\n        // arrays of\n        //   their respective keys), head/tail pointers into each, and\n        //   we build up the new list of parts by updating (and when\n        //   needed, moving) old parts or creating new ones. The initial\n        //   scenario might look like this (for brevity of the diagrams,\n        //   the numbers in the array reflect keys associated with the\n        //   old parts or new values, although keys and parts/values are\n        //   actually stored in parallel arrays indexed using the same\n        //   head/tail pointers):\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [ ,  ,  ,  ,  ,  ,  ]\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n        //   item order\n        //      newHead ^                 ^ newTail\n        //\n        // * Iterate old & new lists from both sides, updating,\n        // swapping, or\n        //   removing parts at the head/tail locations until neither\n        //   head nor tail can move.\n        //\n        // * Example below: keys at head pointers match, so update old\n        // part 0 in-\n        //   place (no need to move it) and record part 0 in the\n        //   `newParts` list. The last thing we do is advance the\n        //   `oldHead` and `newHead` pointers (will be reflected in the\n        //   next diagram).\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  ,  ] <- heads matched: update 0\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //      newHead ^                 ^ newTail\n        //\n        // * Example below: head pointers don't match, but tail pointers\n        // do, so\n        //   update part 6 in place (no need to move it), and record\n        //   part 6 in the `newParts` list. Last, advance the `oldTail`\n        //   and `oldHead` pointers.\n        //\n        //         oldHead v              v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- tails matched: update 6\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldTail\n        //   & newTail\n        //         newHead ^              ^ newTail\n        //\n        // * If neither head nor tail match; next check if one of the\n        // old head/tail\n        //   items was removed. We first need to generate the reverse\n        //   map of new keys to index (`newKeyToIndexMap`), which is\n        //   done once lazily as a performance optimization, since we\n        //   only hit this case if multiple non-contiguous changes were\n        //   made. Note that for contiguous removal anywhere in the\n        //   list, the head and tails would advance from either end and\n        //   pass each other before we get to this case and removals\n        //   would be handled in the final while loop without needing to\n        //   generate the map.\n        //\n        // * Example below: The key at `oldTail` was removed (no longer\n        // in the\n        //   `newKeyToIndexMap`), so remove that part from the DOM and\n        //   advance just the `oldTail` pointer.\n        //\n        //         oldHead v           v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- 5 not in new map; remove\n        //   5 and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance oldTail\n        //         newHead ^           ^ newTail\n        //\n        // * Once head and tail cannot move, any mismatches are due to\n        // either new or\n        //   moved items; if a new key is in the previous \"old key to\n        //   old index\" map, move the old part to the new location,\n        //   otherwise create and insert a new part. Note that when\n        //   moving an old part we null its position in the oldParts\n        //   array if it lies between the head and tail so we know to\n        //   skip it when the pointers get there.\n        //\n        // * Example below: neither head nor tail match, and neither\n        // were removed;\n        //   so find the `newHead` key in the `oldKeyToIndexMap`, and\n        //   move that old part's DOM into the next head position\n        //   (before `oldParts[oldHead]`). Last, null the part in the\n        //   `oldPart` array since it was somewhere in the remaining\n        //   oldParts still to be scanned (between the head and tail\n        //   pointers) so that we know to skip that old part on future\n        //   iterations.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2,  ,  ,  ,  , 6] <- stuck; update & move 2\n        //   into place newKeys:  [0, 2, 1, 4, 3, 7, 6]    and advance\n        //   newHead\n        //         newHead ^           ^ newTail\n        //\n        // * Note that for moves/insertions like the one above, a part\n        // inserted at\n        //   the head pointer is inserted before the current\n        //   `oldParts[oldHead]`, and a part inserted at the tail\n        //   pointer is inserted before `newParts[newTail+1]`. The\n        //   seeming asymmetry lies in the fact that new parts are moved\n        //   into place outside in, so to the right of the head pointer\n        //   are old parts, and to the right of the tail pointer are new\n        //   parts.\n        //\n        // * We always restart back from the top of the algorithm,\n        // allowing matching\n        //   and simple updates in place to continue...\n        //\n        // * Example below: the head pointers once again match, so\n        // simply update\n        //   part 1 and record it in the `newParts` array.  Last,\n        //   advance both head pointers.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1,  ,  ,  , 6] <- heads matched; update 1\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //            newHead ^        ^ newTail\n        //\n        // * As mentioned above, items that were moved as a result of\n        // being stuck\n        //   (the final else clause in the code below) are marked with\n        //   null, so we always advance old pointers over these so we're\n        //   comparing the next actual old value on either end.\n        //\n        // * Example below: `oldHead` is null (already placed in\n        // newParts), so\n        //   advance `oldHead`.\n        //\n        //            oldHead v     v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6] // old head already used;\n        //   advance newParts: [0, 2, 1,  ,  ,  , 6] // oldHead newKeys:\n        //   [0, 2, 1, 4, 3, 7, 6]\n        //               newHead ^     ^ newTail\n        //\n        // * Note it's not critical to mark old parts as null when they\n        // are moved\n        //   from head to tail or tail to head, since they will be\n        //   outside the pointer range and never visited again.\n        //\n        // * Example below: Here the old tail key matches the new head\n        // key, so\n        //   the part at the `oldTail` position and move its DOM to the\n        //   new head position (before `oldParts[oldHead]`). Last,\n        //   advance `oldTail` and `newHead` pointers.\n        //\n        //               oldHead v  v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4,  ,  , 6] <- old tail matches new\n        //   head: update newKeys:  [0, 2, 1, 4, 3, 7, 6]   & move 4,\n        //   advance oldTail & newHead\n        //               newHead ^     ^ newTail\n        //\n        // * Example below: Old and new head keys match, so update the\n        // old head\n        //   part in place, and advance the `oldHead` and `newHead`\n        //   pointers.\n        //\n        //               oldHead v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3,   ,6] <- heads match: update 3\n        //   and advance newKeys:  [0, 2, 1, 4, 3, 7, 6]    oldHead &\n        //   newHead\n        //                  newHead ^  ^ newTail\n        //\n        // * Once the new or old pointers move past each other then all\n        // we have\n        //   left is additions (if old list exhausted) or removals (if\n        //   new list exhausted). Those are handled in the final while\n        //   loops at the end.\n        //\n        // * Example below: `oldHead` exceeded `oldTail`, so we're done\n        // with the\n        //   main loop.  Create the remaining part and insert it at the\n        //   new head position, and the update is complete.\n        //\n        //                   (oldHead > oldTail)\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6]\n        //                     newHead ^ newTail\n        //\n        // * Note that the order of the if/else clauses is not important\n        // to the\n        //   algorithm, as long as the null checks come first (to ensure\n        //   we're always working on valid old parts) and that the final\n        //   else clause comes last (since that's where the expensive\n        //   moves occur). The order of remaining clauses is is just a\n        //   simple guess at which cases will be most common.\n        //\n        // * TODO(kschaaf) Note, we could calculate the longest\n        // increasing\n        //   subsequence (LIS) of old items in new position, and only\n        //   move those not in the LIS set. However that costs O(nlogn)\n        //   time and adds a bit more code, and only helps make rare\n        //   types of mutations require fewer moves. The above handles\n        //   removes, adds, reversal, swaps, and single moves of\n        //   contiguous items in linear time, in the minimum number of\n        //   moves. As the number of multiple moves where LIS might help\n        //   approaches a random shuffle, the LIS optimization becomes\n        //   less helpful, so it seems not worth the code at this point.\n        //   Could reconsider if a compelling case arises.\n        while (oldHead <= oldTail && newHead <= newTail) {\n            if (oldParts[oldHead] === null) {\n                // `null` means old part at head has already been used\n                // below; skip\n                oldHead++;\n            }\n            else if (oldParts[oldTail] === null) {\n                // `null` means old part at tail has already been used\n                // below; skip\n                oldTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newHead]) {\n                // Old head matches new head; update in place\n                newParts[newHead] =\n                    updatePart(oldParts[oldHead], newValues[newHead]);\n                oldHead++;\n                newHead++;\n            }\n            else if (oldKeys[oldTail] === newKeys[newTail]) {\n                // Old tail matches new tail; update in place\n                newParts[newTail] =\n                    updatePart(oldParts[oldTail], newValues[newTail]);\n                oldTail--;\n                newTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newTail]) {\n                // Old head matches new tail; update and move to new tail\n                newParts[newTail] =\n                    updatePart(oldParts[oldHead], newValues[newTail]);\n                insertPartBefore(containerPart, oldParts[oldHead], newParts[newTail + 1]);\n                oldHead++;\n                newTail--;\n            }\n            else if (oldKeys[oldTail] === newKeys[newHead]) {\n                // Old tail matches new head; update and move to new head\n                newParts[newHead] =\n                    updatePart(oldParts[oldTail], newValues[newHead]);\n                insertPartBefore(containerPart, oldParts[oldTail], oldParts[oldHead]);\n                oldTail--;\n                newHead++;\n            }\n            else {\n                if (newKeyToIndexMap === undefined) {\n                    // Lazily generate key-to-index maps, used for removals &\n                    // moves below\n                    newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n                    oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n                }\n                if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n                    // Old head is no longer in new list; remove\n                    removePart(oldParts[oldHead]);\n                    oldHead++;\n                }\n                else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n                    // Old tail is no longer in new list; remove\n                    removePart(oldParts[oldTail]);\n                    oldTail--;\n                }\n                else {\n                    // Any mismatches at this point are due to additions or\n                    // moves; see if we have an old part we can reuse and move\n                    // into place\n                    const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n                    const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n                    if (oldPart === null) {\n                        // No old part for this value; create a new one and\n                        // insert it\n                        const newPart = createAndInsertPart(containerPart, oldParts[oldHead]);\n                        updatePart(newPart, newValues[newHead]);\n                        newParts[newHead] = newPart;\n                    }\n                    else {\n                        // Reuse old part\n                        newParts[newHead] =\n                            updatePart(oldPart, newValues[newHead]);\n                        insertPartBefore(containerPart, oldPart, oldParts[oldHead]);\n                        // This marks the old part as having been used, so that\n                        // it will be skipped in the first two checks above\n                        oldParts[oldIndex] = null;\n                    }\n                    newHead++;\n                }\n            }\n        }\n        // Add parts for any remaining new values\n        while (newHead <= newTail) {\n            // For all remaining additions, we insert before last new\n            // tail, since old pointers are no longer valid\n            const newPart = createAndInsertPart(containerPart, newParts[newTail + 1]);\n            updatePart(newPart, newValues[newHead]);\n            newParts[newHead++] = newPart;\n        }\n        // Remove any remaining unused old parts\n        while (oldHead <= oldTail) {\n            const oldPart = oldParts[oldHead++];\n            if (oldPart !== null) {\n                removePart(oldPart);\n            }\n        }\n        // Save order of new parts for next round\n        partListCache.set(containerPart, newParts);\n        keyListCache.set(containerPart, newKeys);\n    };\n});\n//# sourceMappingURL=repeat.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/style-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n/**\n * Stores the StyleInfo object applied to a given AttributePart.\n * Used to unset existing values when a new StyleInfo object is applied.\n */\nconst styleMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static styles applied (e.g. `height: 0;`\n * in style=\"height: 0; ${styleMap()}\"). Static styles are applied only the\n * first time the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst styleMapStatics = new WeakMap();\n/**\n * A directive that applies CSS properties to an element.\n *\n * `styleMap` can only be used in the `style` attribute and must be the only\n * expression in the attribute. It takes the property names in the `styleInfo`\n * object and adds the property values as CSS propertes. Property names with\n * dashes (`-`) are assumed to be valid CSS property names and set on the\n * element's style object using `setProperty()`. Names without dashes are\n * assumed to be camelCased JavaScript property names and set on the element's\n * style object using property assignment, allowing the style object to\n * translate JavaScript-style names to CSS property names.\n *\n * For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\n *\n * @param styleInfo {StyleInfo}\n */\nexport const styleMap = directive((styleInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'style' || part.committer.parts.length > 1) {\n        throw new Error('The `styleMap` directive must be used in the style attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // Handle static styles the first time we see a Part\n    if (!styleMapStatics.has(part)) {\n        part.committer.element.style.cssText =\n            part.committer.strings.join(' ');\n        styleMapStatics.set(part, true);\n    }\n    const style = part.committer.element.style;\n    // Remove old properties that no longer exist in styleInfo\n    const oldInfo = styleMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in styleInfo)) {\n            if (name.indexOf('-') === -1) {\n                // tslint:disable-next-line:no-any\n                style[name] = null;\n            }\n            else {\n                style.removeProperty(name);\n            }\n        }\n    }\n    // Add or update properties\n    for (const name in styleInfo) {\n        if (name.indexOf('-') === -1) {\n            // tslint:disable-next-line:no-any\n            style[name] = styleInfo[name];\n        }\n        else {\n            style.setProperty(name, styleInfo[name]);\n        }\n    }\n    styleMapCache.set(part, styleInfo);\n});\n//# sourceMappingURL=style-map.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/unsafe-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive, NodePart } from '../lit-html.js';\n// For each part, remember the value that was last rendered to the part by the\n// unsafeHTML directive, and the DocumentFragment that was last set as a value.\n// The DocumentFragment is used as a unique key to check if the last value\n// rendered to the part was with unsafeHTML. If not, we'll always re-render the\n// value passed to unsafeHTML.\nconst previousValues = new WeakMap();\n/**\n * Renders the result as HTML, rather than text.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('unsafeHTML can only be used in text bindings');\n    }\n    const previousValue = previousValues.get(part);\n    if (previousValue !== undefined && isPrimitive(value) &&\n        value === previousValue.value && part.value === previousValue.fragment) {\n        return;\n    }\n    const template = document.createElement('template');\n    template.innerHTML = value; // innerHTML casts to string internally\n    const fragment = document.importNode(template.content, true);\n    part.setValue(fragment);\n    previousValues.set(part, { value, fragment });\n});\n//# sourceMappingURL=unsafe-html.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/directives/until.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive } from '../lit-html.js';\nconst _state = new WeakMap();\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n *     const content = fetch('./content.txt').then(r => r.text());\n *     html`${until(content, html`<span>Loading...</span>`)}`\n */\nexport const until = directive((...args) => (part) => {\n    let state = _state.get(part);\n    if (state === undefined) {\n        state = {\n            values: [],\n        };\n        _state.set(part, state);\n    }\n    const previousValues = state.values;\n    state.values = args;\n    for (let i = 0; i < args.length; i++) {\n        // If we've rendered a higher-priority value already, stop.\n        if (state.lastRenderedIndex !== undefined && i > state.lastRenderedIndex) {\n            break;\n        }\n        const value = args[i];\n        // Render non-Promise values immediately\n        if (isPrimitive(value) ||\n            typeof value.then !== 'function') {\n            part.setValue(value);\n            state.lastRenderedIndex = i;\n            // Since a lower-priority value will never overwrite a higher-priority\n            // synchronous value, we can stop processsing now.\n            break;\n        }\n        // If this is a Promise we've already handled, skip it.\n        if (state.lastRenderedIndex !== undefined &&\n            typeof value.then === 'function' &&\n            value === previousValues[i]) {\n            continue;\n        }\n        // We have a Promise that we haven't seen before, so priorities may have\n        // changed. Forget what we rendered before.\n        state.lastRenderedIndex = undefined;\n        Promise.resolve(value).then((resolvedValue) => {\n            const index = state.values.indexOf(value);\n            // If state.values doesn't contain the value, we've re-rendered without\n            // the value, so don't render it. Then, only render if the value is\n            // higher-priority than what's already been rendered.\n            if (index > -1 &&\n                (state.lastRenderedIndex === undefined ||\n                    index < state.lastRenderedIndex)) {\n                state.lastRenderedIndex = index;\n                part.setValue(resolvedValue);\n                part.commit();\n            }\n        });\n    }\n});\n//# sourceMappingURL=until.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/default-template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter } from './parts.js';\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor {\n    /**\n     * Create parts for an attribute-position binding, given the event, attribute\n     * name, and string literals.\n     *\n     * @param element The element containing the binding\n     * @param name  The attribute name\n     * @param strings The string literals. There are always at least two strings,\n     *   event for fully-controlled bindings with a single expression.\n     */\n    handleAttributeExpressions(element, name, strings, options) {\n        const prefix = name[0];\n        if (prefix === '.') {\n            const comitter = new PropertyCommitter(element, name.slice(1), strings);\n            return comitter.parts;\n        }\n        if (prefix === '@') {\n            return [new EventPart(element, name.slice(1), options.eventContext)];\n        }\n        if (prefix === '?') {\n            return [new BooleanAttributePart(element, name.slice(1), strings)];\n        }\n        const comitter = new AttributeCommitter(element, name, strings);\n        return comitter.parts;\n    }\n    /**\n     * Create parts for a text-position binding.\n     * @param templateFactory\n     */\n    handleTextExpression(options) {\n        return new NodePart(options);\n    }\n}\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n//# sourceMappingURL=default-template-processor.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/directive.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive so that lit-html will call the function\n * during template rendering, rather than passing as a value.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object\n *\n * @example\n *\n * ```\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n *   if (part.value !== v) {\n *     part.setValue(v)\n *   }\n * });\n * ```\n */\n// tslint:disable-next-line:no-any\nexport const directive = (f) => ((...args) => {\n    const d = f(...args);\n    directives.set(d, true);\n    return d;\n});\nexport const isDirective = (o) => {\n    return typeof o === 'function' && directives.has(o);\n};\n//# sourceMappingURL=directive.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/dom.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n    window.customElements.polyfillWrapFlushCallback !==\n        undefined;\n/**\n * Reparents nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), into another container (could be the same container), before\n * `beforeNode`. If `beforeNode` is null, it appends the nodes to the\n * container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n    let node = start;\n    while (node !== end) {\n        const n = node.nextSibling;\n        container.insertBefore(node, before);\n        node = n;\n    }\n};\n/**\n * Removes nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), from `container`.\n */\nexport const removeNodes = (container, startNode, endNode = null) => {\n    let node = startNode;\n    while (node !== endNode) {\n        const n = node.nextSibling;\n        container.removeChild(node);\n        node = n;\n    }\n};\n//# sourceMappingURL=dom.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/modify-template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module shady-render\n */\nimport { isTemplatePartActive } from './template.js';\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n *   div#1 (remove) <-- start removing (removing node is div#1)\n *     div\n *       div#2 (remove)  <-- continue removing (removing node is still div#1)\n *         div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(template, nodesToRemove) {\n    const { element: { content }, parts } = template;\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let part = parts[partIndex];\n    let nodeIndex = -1;\n    let removeCount = 0;\n    const nodesToRemoveInTemplate = [];\n    let currentRemovingNode = null;\n    while (walker.nextNode()) {\n        nodeIndex++;\n        const node = walker.currentNode;\n        // End removal if stepped past the removing node\n        if (node.previousSibling === currentRemovingNode) {\n            currentRemovingNode = null;\n        }\n        // A node to remove was found in the template\n        if (nodesToRemove.has(node)) {\n            nodesToRemoveInTemplate.push(node);\n            // Track node we're removing\n            if (currentRemovingNode === null) {\n                currentRemovingNode = node;\n            }\n        }\n        // When removing, increment count by which to adjust subsequent part indices\n        if (currentRemovingNode !== null) {\n            removeCount++;\n        }\n        while (part !== undefined && part.index === nodeIndex) {\n            // If part is in a removed node deactivate it by setting index to -1 or\n            // adjust the index as needed.\n            part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n            // go to the next active part.\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n            part = parts[partIndex];\n        }\n    }\n    nodesToRemoveInTemplate.forEach((n) => n.parentNode.removeChild(n));\n}\nconst countNodes = (node) => {\n    let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n    const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n    while (walker.nextNode()) {\n        count++;\n    }\n    return count;\n};\nconst nextActiveIndexInTemplateParts = (parts, startIndex = -1) => {\n    for (let i = startIndex + 1; i < parts.length; i++) {\n        const part = parts[i];\n        if (isTemplatePartActive(part)) {\n            return i;\n        }\n    }\n    return -1;\n};\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(template, node, refNode = null) {\n    const { element: { content }, parts } = template;\n    // If there's no refNode, then put node at end of template.\n    // No part indices need to be shifted in this case.\n    if (refNode === null || refNode === undefined) {\n        content.appendChild(node);\n        return;\n    }\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let insertCount = 0;\n    let walkerIndex = -1;\n    while (walker.nextNode()) {\n        walkerIndex++;\n        const walkerNode = walker.currentNode;\n        if (walkerNode === refNode) {\n            insertCount = countNodes(node);\n            refNode.parentNode.insertBefore(node, refNode);\n        }\n        while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n            // If we've inserted the node, simply adjust all subsequent parts\n            if (insertCount > 0) {\n                while (partIndex !== -1) {\n                    parts[partIndex].index += insertCount;\n                    partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n                }\n                return;\n            }\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n        }\n    }\n}\n//# sourceMappingURL=modify-template.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/part.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# sourceMappingURL=part.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/parts.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isDirective } from './directive.js';\nimport { removeNodes } from './dom.js';\nimport { noChange, nothing } from './part.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { createMarker } from './template.js';\nexport const isPrimitive = (value) => {\n    return (value === null ||\n        !(typeof value === 'object' || typeof value === 'function'));\n};\n/**\n * Sets attribute values for AttributeParts, so that the value is only set once\n * even if there are multiple parts for an attribute.\n */\nexport class AttributeCommitter {\n    constructor(element, name, strings) {\n        this.dirty = true;\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n        this.parts = [];\n        for (let i = 0; i < strings.length - 1; i++) {\n            this.parts[i] = this._createPart();\n        }\n    }\n    /**\n     * Creates a single part. Override this to create a differnt type of part.\n     */\n    _createPart() {\n        return new AttributePart(this);\n    }\n    _getValue() {\n        const strings = this.strings;\n        const l = strings.length - 1;\n        let text = '';\n        for (let i = 0; i < l; i++) {\n            text += strings[i];\n            const part = this.parts[i];\n            if (part !== undefined) {\n                const v = part.value;\n                if (v != null &&\n                    (Array.isArray(v) ||\n                        // tslint:disable-next-line:no-any\n                        typeof v !== 'string' && v[Symbol.iterator])) {\n                    for (const t of v) {\n                        text += typeof t === 'string' ? t : String(t);\n                    }\n                }\n                else {\n                    text += typeof v === 'string' ? v : String(v);\n                }\n            }\n        }\n        text += strings[l];\n        return text;\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            this.element.setAttribute(this.name, this._getValue());\n        }\n    }\n}\nexport class AttributePart {\n    constructor(comitter) {\n        this.value = undefined;\n        this.committer = comitter;\n    }\n    setValue(value) {\n        if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n            this.value = value;\n            // If the value is a not a directive, dirty the committer so that it'll\n            // call setAttribute. If the value is a directive, it'll dirty the\n            // committer if it calls setValue().\n            if (!isDirective(value)) {\n                this.committer.dirty = true;\n            }\n        }\n    }\n    commit() {\n        while (isDirective(this.value)) {\n            const directive = this.value;\n            this.value = noChange;\n            directive(this);\n        }\n        if (this.value === noChange) {\n            return;\n        }\n        this.committer.commit();\n    }\n}\nexport class NodePart {\n    constructor(options) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.options = options;\n    }\n    /**\n     * Inserts this part into a container.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendInto(container) {\n        this.startNode = container.appendChild(createMarker());\n        this.endNode = container.appendChild(createMarker());\n    }\n    /**\n     * Inserts this part between `ref` and `ref`'s next sibling. Both `ref` and\n     * its next sibling must be static, unchanging nodes such as those that appear\n     * in a literal section of a template.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterNode(ref) {\n        this.startNode = ref;\n        this.endNode = ref.nextSibling;\n    }\n    /**\n     * Appends this part into a parent part.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendIntoPart(part) {\n        part._insert(this.startNode = createMarker());\n        part._insert(this.endNode = createMarker());\n    }\n    /**\n     * Appends this part after `ref`\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterPart(ref) {\n        ref._insert(this.startNode = createMarker());\n        this.endNode = ref.endNode;\n        ref.endNode = this.startNode;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        const value = this._pendingValue;\n        if (value === noChange) {\n            return;\n        }\n        if (isPrimitive(value)) {\n            if (value !== this.value) {\n                this._commitText(value);\n            }\n        }\n        else if (value instanceof TemplateResult) {\n            this._commitTemplateResult(value);\n        }\n        else if (value instanceof Node) {\n            this._commitNode(value);\n        }\n        else if (Array.isArray(value) ||\n            // tslint:disable-next-line:no-any\n            value[Symbol.iterator]) {\n            this._commitIterable(value);\n        }\n        else if (value === nothing) {\n            this.value = nothing;\n            this.clear();\n        }\n        else {\n            // Fallback, will render the string representation\n            this._commitText(value);\n        }\n    }\n    _insert(node) {\n        this.endNode.parentNode.insertBefore(node, this.endNode);\n    }\n    _commitNode(value) {\n        if (this.value === value) {\n            return;\n        }\n        this.clear();\n        this._insert(value);\n        this.value = value;\n    }\n    _commitText(value) {\n        const node = this.startNode.nextSibling;\n        value = value == null ? '' : value;\n        if (node === this.endNode.previousSibling &&\n            node.nodeType === 3 /* Node.TEXT_NODE */) {\n            // If we only have a single text node between the markers, we can just\n            // set its value, rather than replacing it.\n            // TODO(justinfagnani): Can we just check if this.value is primitive?\n            node.data = value;\n        }\n        else {\n            this._commitNode(document.createTextNode(typeof value === 'string' ? value : String(value)));\n        }\n        this.value = value;\n    }\n    _commitTemplateResult(value) {\n        const template = this.options.templateFactory(value);\n        if (this.value instanceof TemplateInstance &&\n            this.value.template === template) {\n            this.value.update(value.values);\n        }\n        else {\n            // Make sure we propagate the template processor from the TemplateResult\n            // so that we use its syntax extension, etc. The template factory comes\n            // from the render function options so that it can control template\n            // caching and preprocessing.\n            const instance = new TemplateInstance(template, value.processor, this.options);\n            const fragment = instance._clone();\n            instance.update(value.values);\n            this._commitNode(fragment);\n            this.value = instance;\n        }\n    }\n    _commitIterable(value) {\n        // For an Iterable, we create a new InstancePart per item, then set its\n        // value to the item. This is a little bit of overhead for every item in\n        // an Iterable, but it lets us recurse easily and efficiently update Arrays\n        // of TemplateResults that will be commonly returned from expressions like:\n        // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n        // If _value is an array, then the previous render was of an\n        // iterable and _value will contain the NodeParts from the previous\n        // render. If _value is not an array, clear this part and make a new\n        // array for NodeParts.\n        if (!Array.isArray(this.value)) {\n            this.value = [];\n            this.clear();\n        }\n        // Lets us keep track of how many items we stamped so we can clear leftover\n        // items from a previous render\n        const itemParts = this.value;\n        let partIndex = 0;\n        let itemPart;\n        for (const item of value) {\n            // Try to reuse an existing part\n            itemPart = itemParts[partIndex];\n            // If no existing part, create a new one\n            if (itemPart === undefined) {\n                itemPart = new NodePart(this.options);\n                itemParts.push(itemPart);\n                if (partIndex === 0) {\n                    itemPart.appendIntoPart(this);\n                }\n                else {\n                    itemPart.insertAfterPart(itemParts[partIndex - 1]);\n                }\n            }\n            itemPart.setValue(item);\n            itemPart.commit();\n            partIndex++;\n        }\n        if (partIndex < itemParts.length) {\n            // Truncate the parts array so _value reflects the current state\n            itemParts.length = partIndex;\n            this.clear(itemPart && itemPart.endNode);\n        }\n    }\n    clear(startNode = this.startNode) {\n        removeNodes(this.startNode.parentNode, startNode.nextSibling, this.endNode);\n    }\n}\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart {\n    constructor(element, name, strings) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n            throw new Error('Boolean attributes can only contain a single expression');\n        }\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const value = !!this._pendingValue;\n        if (this.value !== value) {\n            if (value) {\n                this.element.setAttribute(this.name, '');\n            }\n            else {\n                this.element.removeAttribute(this.name);\n            }\n        }\n        this.value = value;\n        this._pendingValue = noChange;\n    }\n}\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n    constructor(element, name, strings) {\n        super(element, name, strings);\n        this.single =\n            (strings.length === 2 && strings[0] === '' && strings[1] === '');\n    }\n    _createPart() {\n        return new PropertyPart(this);\n    }\n    _getValue() {\n        if (this.single) {\n            return this.parts[0].value;\n        }\n        return super._getValue();\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            // tslint:disable-next-line:no-any\n            this.element[this.name] = this._getValue();\n        }\n    }\n}\nexport class PropertyPart extends AttributePart {\n}\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\ntry {\n    const options = {\n        get capture() {\n            eventOptionsSupported = true;\n            return false;\n        }\n    };\n    // tslint:disable-next-line:no-any\n    window.addEventListener('test', options, options);\n    // tslint:disable-next-line:no-any\n    window.removeEventListener('test', options, options);\n}\ncatch (_e) {\n}\nexport class EventPart {\n    constructor(element, eventName, eventContext) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.element = element;\n        this.eventName = eventName;\n        this.eventContext = eventContext;\n        this._boundHandleEvent = (e) => this.handleEvent(e);\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const newListener = this._pendingValue;\n        const oldListener = this.value;\n        const shouldRemoveListener = newListener == null ||\n            oldListener != null &&\n                (newListener.capture !== oldListener.capture ||\n                    newListener.once !== oldListener.once ||\n                    newListener.passive !== oldListener.passive);\n        const shouldAddListener = newListener != null && (oldListener == null || shouldRemoveListener);\n        if (shouldRemoveListener) {\n            this.element.removeEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        if (shouldAddListener) {\n            this._options = getOptions(newListener);\n            this.element.addEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        this.value = newListener;\n        this._pendingValue = noChange;\n    }\n    handleEvent(event) {\n        if (typeof this.value === 'function') {\n            this.value.call(this.eventContext || this.element, event);\n        }\n        else {\n            this.value.handleEvent(event);\n        }\n    }\n}\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o) => o &&\n    (eventOptionsSupported ?\n        { capture: o.capture, passive: o.passive, once: o.once } :\n        o.capture);\n//# sourceMappingURL=parts.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/render-options.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# sourceMappingURL=render-options.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { removeNodes } from './dom.js';\nimport { NodePart } from './parts.js';\nimport { templateFactory } from './template-factory.js';\nexport const parts = new WeakMap();\n/**\n * Renders a template to a container.\n *\n * To update a container with new values, reevaluate the template literal and\n * call `render` with the new result.\n *\n * @param result a TemplateResult created by evaluating a template tag like\n *     `html` or `svg`.\n * @param container A DOM parent to render to. The entire contents are either\n *     replaced, or efficiently updated if the same result type was previous\n *     rendered there.\n * @param options RenderOptions for the entire render tree rendered to this\n *     container. Render options must *not* change between renders to the same\n *     container, as those changes will not effect previously rendered DOM.\n */\nexport const render = (result, container, options) => {\n    let part = parts.get(container);\n    if (part === undefined) {\n        removeNodes(container, container.firstChild);\n        parts.set(container, part = new NodePart(Object.assign({ templateFactory }, options)));\n        part.appendInto(container);\n    }\n    part.setValue(result);\n    part.commit();\n};\n//# sourceMappingURL=render.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/shady-render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { removeNodes } from './dom.js';\nimport { insertNodeIntoTemplate, removeNodesFromTemplate } from './modify-template.js';\nimport { parts, render as litRender } from './render.js';\nimport { templateCaches } from './template-factory.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { marker, Template } from './template.js';\nexport { html, svg, TemplateResult } from '../lit-html.js';\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type, scopeName) => `${type}--${scopeName}`;\nlet compatibleShadyCSSVersion = true;\nif (typeof window.ShadyCSS === 'undefined') {\n    compatibleShadyCSSVersion = false;\n}\nelse if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n    console.warn(`Incompatible ShadyCSS version detected.` +\n        `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and` +\n        `@webcomponents/shadycss@1.3.1.`);\n    compatibleShadyCSSVersion = false;\n}\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName) => (result) => {\n    const cacheKey = getTemplateCacheKey(result.type, scopeName);\n    let templateCache = templateCaches.get(cacheKey);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(cacheKey, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    const key = result.strings.join(marker);\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        const element = result.getTemplateElement();\n        if (compatibleShadyCSSVersion) {\n            window.ShadyCSS.prepareTemplateDom(element, scopeName);\n        }\n        template = new Template(result, element);\n        templateCache.keyString.set(key, template);\n    }\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n};\nconst TEMPLATE_TYPES = ['html', 'svg'];\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName) => {\n    TEMPLATE_TYPES.forEach((type) => {\n        const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n        if (templates !== undefined) {\n            templates.keyString.forEach((template) => {\n                const { element: { content } } = template;\n                // IE 11 doesn't support the iterable param Set constructor\n                const styles = new Set();\n                Array.from(content.querySelectorAll('style')).forEach((s) => {\n                    styles.add(s);\n                });\n                removeNodesFromTemplate(template, styles);\n            });\n        }\n    });\n};\nconst shadyRenderSet = new Set();\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, <style> elements can only be placed into templates for the\n * initial rendering of the scope. If <style> elements are included in templates\n * dynamically rendered to the scope (after the first scope render), they will\n * not be scoped and the <style> will be left in the template and rendered\n * output.\n */\nconst prepareTemplateStyles = (renderedDOM, template, scopeName) => {\n    shadyRenderSet.add(scopeName);\n    // Move styles out of rendered DOM and store.\n    const styles = renderedDOM.querySelectorAll('style');\n    // If there are no styles, skip unnecessary work\n    if (styles.length === 0) {\n        // Ensure prepareTemplateStyles is called to support adding\n        // styles via `prepareAdoptedCssText` since that requires that\n        // `prepareTemplateStyles` is called.\n        window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n        return;\n    }\n    const condensedStyle = document.createElement('style');\n    // Collect styles into a single style. This helps us make sure ShadyCSS\n    // manipulations will not prevent us from being able to fix up template\n    // part indices.\n    // NOTE: collecting styles is inefficient for browsers but ShadyCSS\n    // currently does this anyway. When it does not, this should be changed.\n    for (let i = 0; i < styles.length; i++) {\n        const style = styles[i];\n        style.parentNode.removeChild(style);\n        condensedStyle.textContent += style.textContent;\n    }\n    // Remove styles from nested templates in this scope.\n    removeStylesFromLitTemplates(scopeName);\n    // And then put the condensed style into the \"root\" template passed in as\n    // `template`.\n    insertNodeIntoTemplate(template, condensedStyle, template.element.content.firstChild);\n    // Note, it's important that ShadyCSS gets the template that `lit-html`\n    // will actually render so that it can update the style inside when\n    // needed (e.g. @apply native Shadow DOM case).\n    window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n    if (window.ShadyCSS.nativeShadow) {\n        // When in native Shadow DOM, re-add styling to rendered content using\n        // the style ShadyCSS produced.\n        const style = template.element.content.querySelector('style');\n        renderedDOM.insertBefore(style.cloneNode(true), renderedDOM.firstChild);\n    }\n    else {\n        // When not in native Shadow DOM, at this point ShadyCSS will have\n        // removed the style from the lit template and parts will be broken as a\n        // result. To fix this, we put back the style node ShadyCSS removed\n        // and then tell lit to remove that node from the template.\n        // NOTE, ShadyCSS creates its own style so we can safely add/remove\n        // `condensedStyle` here.\n        template.element.content.insertBefore(condensedStyle, template.element.content.firstChild);\n        const removes = new Set();\n        removes.add(condensedStyle);\n        removeNodesFromTemplate(template, removes);\n    }\n};\n/**\n * Extension to the standard `render` method which supports rendering\n * to ShadowRoots when the ShadyDOM (https://github.com/webcomponents/shadydom)\n * and ShadyCSS (https://github.com/webcomponents/shadycss) polyfills are used\n * or when the webcomponentsjs\n * (https://github.com/webcomponents/webcomponentsjs) polyfill is used.\n *\n * Adds a `scopeName` option which is used to scope element DOM and stylesheets\n * when native ShadowDOM is unavailable. The `scopeName` will be added to\n * the class attribute of all rendered DOM. In addition, any style elements will\n * be automatically re-written with this `scopeName` selector and moved out\n * of the rendered DOM and into the document `<head>`.\n *\n * It is common to use this render method in conjunction with a custom element\n * which renders a shadowRoot. When this is done, typically the element's\n * `localName` should be used as the `scopeName`.\n *\n * In addition to DOM scoping, ShadyCSS also supports a basic shim for css\n * custom properties (needed only on older browsers like IE11) and a shim for\n * a deprecated feature called `@apply` that supports applying a set of css\n * custom properties to a given location.\n *\n * Usage considerations:\n *\n * * Part values in `<style>` elements are only applied the first time a given\n * `scopeName` renders. Subsequent changes to parts in style elements will have\n * no effect. Because of this, parts in style elements should only be used for\n * values that will never change, for example parts that set scope-wide theme\n * values or parts which render shared style elements.\n *\n * * Note, due to a limitation of the ShadyDOM polyfill, rendering in a\n * custom element's `constructor` is not supported. Instead rendering should\n * either done asynchronously, for example at microtask timing (for example\n * `Promise.resolve()`), or be deferred until the first time the element's\n * `connectedCallback` runs.\n *\n * Usage considerations when using shimmed custom properties or `@apply`:\n *\n * * Whenever any dynamic changes are made which affect\n * css custom properties, `ShadyCSS.styleElement(element)` must be called\n * to update the element. There are two cases when this is needed:\n * (1) the element is connected to a new parent, (2) a class is added to the\n * element that causes it to match different custom properties.\n * To address the first case when rendering a custom element, `styleElement`\n * should be called in the element's `connectedCallback`.\n *\n * * Shimmed custom properties may only be defined either for an entire\n * shadowRoot (for example, in a `:host` rule) or via a rule that directly\n * matches an element with a shadowRoot. In other words, instead of flowing from\n * parent to child as do native css custom properties, shimmed custom properties\n * flow only from shadowRoots to nested shadowRoots.\n *\n * * When using `@apply` mixing css shorthand property names with\n * non-shorthand names (for example `border` and `border-width`) is not\n * supported.\n */\nexport const render = (result, container, options) => {\n    const scopeName = options.scopeName;\n    const hasRendered = parts.has(container);\n    const needsScoping = container instanceof ShadowRoot &&\n        compatibleShadyCSSVersion && result instanceof TemplateResult;\n    // Handle first render to a scope specially...\n    const firstScopeRender = needsScoping && !shadyRenderSet.has(scopeName);\n    // On first scope render, render into a fragment; this cannot be a single\n    // fragment that is reused since nested renders can occur synchronously.\n    const renderContainer = firstScopeRender ? document.createDocumentFragment() : container;\n    litRender(result, renderContainer, Object.assign({ templateFactory: shadyTemplateFactory(scopeName) }, options));\n    // When performing first scope render,\n    // (1) We've rendered into a fragment so that there's a chance to\n    // `prepareTemplateStyles` before sub-elements hit the DOM\n    // (which might cause them to render based on a common pattern of\n    // rendering in a custom element's `connectedCallback`);\n    // (2) Scope the template with ShadyCSS one time only for this scope.\n    // (3) Render the fragment into the container and make sure the\n    // container knows its `part` is the one we just rendered. This ensures\n    // DOM will be re-used on subsequent renders.\n    if (firstScopeRender) {\n        const part = parts.get(renderContainer);\n        parts.delete(renderContainer);\n        if (part.value instanceof TemplateInstance) {\n            prepareTemplateStyles(renderContainer, part.value.template, scopeName);\n        }\n        removeNodes(container, container.firstChild);\n        container.appendChild(renderContainer);\n        parts.set(container, part);\n    }\n    // After elements have hit the DOM, update styling if this is the\n    // initial render to this container.\n    // This is needed whenever dynamic changes are made so it would be\n    // safest to do every render; however, this would regress performance\n    // so we leave it up to the user to call `ShadyCSSS.styleElement`\n    // for dynamic changes.\n    if (!hasRendered && needsScoping) {\n        window.ShadyCSS.styleElement(container.host);\n    }\n};\n//# sourceMappingURL=shady-render.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/template-factory.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { marker, Template } from './template.js';\n/**\n * The default TemplateFactory which caches Templates keyed on\n * result.type and result.strings.\n */\nexport function templateFactory(result) {\n    let templateCache = templateCaches.get(result.type);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(result.type, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    // If the TemplateStringsArray is new, generate a key from the strings\n    // This key is shared between all templates with identical content\n    const key = result.strings.join(marker);\n    // Check if we already have a Template for this key\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        // If we have not seen this key before, create a new Template\n        template = new Template(result, result.getTemplateElement());\n        // Cache the Template for this key\n        templateCache.keyString.set(key, template);\n    }\n    // Cache all future queries for this TemplateStringsArray\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n}\nexport const templateCaches = new Map();\n//# sourceMappingURL=template-factory.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/template-instance.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n    constructor(template, processor, options) {\n        this._parts = [];\n        this.template = template;\n        this.processor = processor;\n        this.options = options;\n    }\n    update(values) {\n        let i = 0;\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.setValue(values[i]);\n            }\n            i++;\n        }\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.commit();\n            }\n        }\n    }\n    _clone() {\n        // When using the Custom Elements polyfill, clone the node, rather than\n        // importing it, to keep the fragment in the template's document. This\n        // leaves the fragment inert so custom elements won't upgrade and\n        // potentially modify their contents by creating a polyfilled ShadowRoot\n        // while we traverse the tree.\n        const fragment = isCEPolyfill ?\n            this.template.element.content.cloneNode(true) :\n            document.importNode(this.template.element.content, true);\n        const parts = this.template.parts;\n        let partIndex = 0;\n        let nodeIndex = 0;\n        const _prepareInstance = (fragment) => {\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            let node = walker.nextNode();\n            // Loop through all the nodes and parts of a template\n            while (partIndex < parts.length && node !== null) {\n                const part = parts[partIndex];\n                // Consecutive Parts may have the same node index, in the case of\n                // multiple bound attributes on an element. So each iteration we either\n                // increment the nodeIndex, if we aren't on a node with a part, or the\n                // partIndex if we are. By not incrementing the nodeIndex when we find a\n                // part, we allow for the next part to be associated with the current\n                // node if neccessasry.\n                if (!isTemplatePartActive(part)) {\n                    this._parts.push(undefined);\n                    partIndex++;\n                }\n                else if (nodeIndex === part.index) {\n                    if (part.type === 'node') {\n                        const part = this.processor.handleTextExpression(this.options);\n                        part.insertAfterNode(node.previousSibling);\n                        this._parts.push(part);\n                    }\n                    else {\n                        this._parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n                    }\n                    partIndex++;\n                }\n                else {\n                    nodeIndex++;\n                    if (node.nodeName === 'TEMPLATE') {\n                        _prepareInstance(node.content);\n                    }\n                    node = walker.nextNode();\n                }\n            }\n        };\n        _prepareInstance(fragment);\n        if (isCEPolyfill) {\n            document.adoptNode(fragment);\n            customElements.upgrade(fragment);\n        }\n        return fragment;\n    }\n}\n//# sourceMappingURL=template-instance.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# sourceMappingURL=template-processor.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/template-result.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n    constructor(strings, values, type, processor) {\n        this.strings = strings;\n        this.values = values;\n        this.type = type;\n        this.processor = processor;\n    }\n    /**\n     * Returns a string of HTML used to create a `<template>` element.\n     */\n    getHTML() {\n        const endIndex = this.strings.length - 1;\n        let html = '';\n        for (let i = 0; i < endIndex; i++) {\n            const s = this.strings[i];\n            // This exec() call does two things:\n            // 1) Appends a suffix to the bound attribute name to opt out of special\n            // attribute value parsing that IE11 and Edge do, like for style and\n            // many SVG attributes. The Template class also appends the same suffix\n            // when looking up attributes to create Parts.\n            // 2) Adds an unquoted-attribute-safe marker for the first expression in\n            // an attribute. Subsequent attribute expressions will use node markers,\n            // and this is safe since attributes with multiple expressions are\n            // guaranteed to be quoted.\n            const match = lastAttributeNameRegex.exec(s);\n            if (match) {\n                // We're starting a new bound attribute.\n                // Add the safe attribute suffix, and use unquoted-attribute-safe\n                // marker.\n                html += s.substr(0, match.index) + match[1] + match[2] +\n                    boundAttributeSuffix + match[3] + marker;\n            }\n            else {\n                // We're either in a bound node, or trailing bound attribute.\n                // Either way, nodeMarker is safe to use.\n                html += s + nodeMarker;\n            }\n        }\n        return html + this.strings[endIndex];\n    }\n    getTemplateElement() {\n        const template = document.createElement('template');\n        template.innerHTML = this.getHTML();\n        return template;\n    }\n}\n/**\n * A TemplateResult for SVG fragments.\n *\n * This class wraps HTMl in an `<svg>` tag in order to parse its contents in the\n * SVG namespace, then modifies the template to remove the `<svg>` tag so that\n * clones only container the original fragment.\n */\nexport class SVGTemplateResult extends TemplateResult {\n    getHTML() {\n        return `<svg>${super.getHTML()}</svg>`;\n    }\n    getTemplateElement() {\n        const template = super.getTemplateElement();\n        const content = template.content;\n        const svgElement = content.firstChild;\n        content.removeChild(svgElement);\n        reparentNodes(content, svgElement.firstChild);\n        return template;\n    }\n}\n//# sourceMappingURL=template-result.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lib/template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = `<!--${marker}-->`;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n    constructor(result, element) {\n        this.parts = [];\n        this.element = element;\n        let index = -1;\n        let partIndex = 0;\n        const nodesToRemove = [];\n        const _prepareTemplate = (template) => {\n            const content = template.content;\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            // Keeps track of the last index associated with a part. We try to delete\n            // unnecessary nodes, but we never want to associate two different parts\n            // to the same index. They must have a constant node between.\n            let lastPartIndex = 0;\n            while (walker.nextNode()) {\n                index++;\n                const node = walker.currentNode;\n                if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n                    if (node.hasAttributes()) {\n                        const attributes = node.attributes;\n                        // Per\n                        // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n                        // attributes are not guaranteed to be returned in document order.\n                        // In particular, Edge/IE can return them out of order, so we cannot\n                        // assume a correspondance between part index and attribute index.\n                        let count = 0;\n                        for (let i = 0; i < attributes.length; i++) {\n                            if (attributes[i].value.indexOf(marker) >= 0) {\n                                count++;\n                            }\n                        }\n                        while (count-- > 0) {\n                            // Get the template literal section leading up to the first\n                            // expression in this attribute\n                            const stringForPart = result.strings[partIndex];\n                            // Find the attribute name\n                            const name = lastAttributeNameRegex.exec(stringForPart)[2];\n                            // Find the corresponding attribute\n                            // All bound attributes have had a suffix added in\n                            // TemplateResult#getHTML to opt out of special attribute\n                            // handling. To look up the attribute value we also need to add\n                            // the suffix.\n                            const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n                            const attributeValue = node.getAttribute(attributeLookupName);\n                            const strings = attributeValue.split(markerRegex);\n                            this.parts.push({ type: 'attribute', index, name, strings });\n                            node.removeAttribute(attributeLookupName);\n                            partIndex += strings.length - 1;\n                        }\n                    }\n                    if (node.tagName === 'TEMPLATE') {\n                        _prepareTemplate(node);\n                    }\n                }\n                else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n                    const data = node.data;\n                    if (data.indexOf(marker) >= 0) {\n                        const parent = node.parentNode;\n                        const strings = data.split(markerRegex);\n                        const lastIndex = strings.length - 1;\n                        // Generate a new text node for each literal section\n                        // These nodes are also used as the markers for node parts\n                        for (let i = 0; i < lastIndex; i++) {\n                            parent.insertBefore((strings[i] === '') ? createMarker() :\n                                document.createTextNode(strings[i]), node);\n                            this.parts.push({ type: 'node', index: ++index });\n                        }\n                        // If there's no text, we must insert a comment to mark our place.\n                        // Else, we can trust it will stick around after cloning.\n                        if (strings[lastIndex] === '') {\n                            parent.insertBefore(createMarker(), node);\n                            nodesToRemove.push(node);\n                        }\n                        else {\n                            node.data = strings[lastIndex];\n                        }\n                        // We have a part for each match found\n                        partIndex += lastIndex;\n                    }\n                }\n                else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n                    if (node.data === marker) {\n                        const parent = node.parentNode;\n                        // Add a new marker node to be the startNode of the Part if any of\n                        // the following are true:\n                        //  * We don't have a previousSibling\n                        //  * The previousSibling is already the start of a previous part\n                        if (node.previousSibling === null || index === lastPartIndex) {\n                            index++;\n                            parent.insertBefore(createMarker(), node);\n                        }\n                        lastPartIndex = index;\n                        this.parts.push({ type: 'node', index });\n                        // If we don't have a nextSibling, keep this node so we have an end.\n                        // Else, we can remove it to save future costs.\n                        if (node.nextSibling === null) {\n                            node.data = '';\n                        }\n                        else {\n                            nodesToRemove.push(node);\n                            index--;\n                        }\n                        partIndex++;\n                    }\n                    else {\n                        let i = -1;\n                        while ((i = node.data.indexOf(marker, i + 1)) !==\n                            -1) {\n                            // Comment node has a binding marker inside, make an inactive part\n                            // The binding won't work, but subsequent bindings will\n                            // TODO (justinfagnani): consider whether it's even worth it to\n                            // make bindings in comments work\n                            this.parts.push({ type: 'node', index: -1 });\n                        }\n                    }\n                }\n            }\n        };\n        _prepareTemplate(element);\n        // Remove text binding nodes after the walk to not disturb the TreeWalker\n        for (const n of nodesToRemove) {\n            n.parentNode.removeChild(n);\n        }\n    }\n}\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#attributes-0\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-character\n *\n * So an attribute is:\n *  * The name: any character except a control character, space character, ('),\n *    (\"), \">\", \"=\", or \"/\"\n *  * Followed by zero or more space characters\n *  * Followed by \"=\"\n *  * Followed by zero or more space characters\n *  * Followed by:\n *    * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n *    * (\") then any non-(\"), or\n *    * (') then any non-(')\n */\nexport const lastAttributeNameRegex = /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \\x09\\x0a\\x0c\\x0d\"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# sourceMappingURL=template.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/lit-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * -  [[html]]\n * -  [[svg]]\n * -  [[render]]\n *\n * @module lit-html\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { defaultTemplateProcessor } from './lib/default-template-processor.js';\nimport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { DefaultTemplateProcessor, defaultTemplateProcessor } from './lib/default-template-processor.js';\nexport { directive, isDirective } from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport { removeNodes, reparentNodes } from './lib/dom.js';\nexport { noChange, nothing } from './lib/part.js';\nexport { AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isPrimitive, NodePart, PropertyCommitter, PropertyPart } from './lib/parts.js';\nexport { parts, render } from './lib/render.js';\nexport { templateCaches, templateFactory } from './lib/template-factory.js';\nexport { TemplateInstance } from './lib/template-instance.js';\nexport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { createMarker, isTemplatePartActive, Template } from './lib/template.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.0.0');\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings, ...values) => new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings, ...values) => new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n//# sourceMappingURL=lit-html.js.map"
  },
  {
    "path": "app/fg/vendor/lit-element/lit-html/polyfills/template_polyfill.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A lightweight <template> polyfill that supports minimum features to cover\n * lit-html use cases. It provides an alternate route in case <template> is not\n * natively supported.\n * Please note that nested template, cloning template node and innerHTML getter\n * do NOT work with this polyfill.\n * If it can not fullfill your requirement, please consider using the full\n * polyfill: https://github.com/webcomponents/template\n */\nexport const initTemplatePolyfill = (forced = false) => {\n    if (typeof HTMLTemplateElement !== 'undefined' && !forced) {\n        return;\n    }\n    const contentDoc = document.implementation.createHTMLDocument('template');\n    // tslint:disable-next-line:no-any\n    const upgrade = (template) => {\n        template.content = contentDoc.createDocumentFragment();\n        Object.defineProperty(template, 'innerHTML', {\n            set: function (text) {\n                contentDoc.body.innerHTML = text;\n                const content = this.content;\n                while (content.firstChild) {\n                    content.removeChild(content.firstChild);\n                }\n                const body = contentDoc.body;\n                while (body.firstChild) {\n                    content.appendChild(body.firstChild);\n                }\n            },\n            configurable: true\n        });\n    };\n    const capturedCreateElement = Document.prototype.createElement;\n    Document.prototype.createElement = function createElement(tagName, options) {\n        let el = capturedCreateElement.call(this, tagName, options);\n        if (el.localName === 'template') {\n            el = capturedCreateElement.call(this, 'div');\n            upgrade(el);\n        }\n        return el;\n    };\n};\n//# sourceMappingURL=template_polyfill.js.map"
  },
  {
    "path": "app/fg/webview-preload/execute-javascript.js",
    "content": "import {webFrame, ipcRenderer} from 'electron'\n\nexport function setup (code) {\n  ipcRenderer.on('execute-javascript:call', (e, reqId, code) => {\n    webFrame.executeJavaScriptInIsolatedWorld(1, [{code}], true, res => {\n      ipcRenderer.sendToHost('execute-javascript:result', reqId, res)\n    })\n  })\n}"
  },
  {
    "path": "app/fg/webview-preload/exit-full-screen-hackfix.js",
    "content": "// HACK\n// we dont have an api for getting a webview out of html5 fullscreen mode\n// but we cant just executeJavaScript(`document.webkitExitFullscreen()`)\n// because an adversarial app could change the function reference to a noop\n// so we capture the reference here and expose it via RPC to be sure we\n// will have access to it\n// -prf\n\nimport {ipcRenderer} from 'electron'\n\nconst documentCtx = document\nconst webkitExitFullscreen = document.webkitExitFullscreen\n\nexport default function () {\n  ipcRenderer.on('exit-full-screen-hackfix', () => {\n    webkitExitFullscreen.call(documentCtx)\n  })\n}\n"
  },
  {
    "path": "app/fg/webview-preload/index.js",
    "content": "import { ipcRenderer } from 'electron'\nimport { setup as setupWebAPIs } from '../../bg/web-apis/fg.js'\nimport { setup as setupPrompt } from './prompt'\nimport { setup as setupExecuteJavascript } from './execute-javascript'\nimport setupExitFullScreenHackfix from './exit-full-screen-hackfix'\n// import readableStreamAsyncIteratorPolyfill from './readable-stream-async-iterator-polyfill'\nimport windowOpenCloseHackfix from './window-open-close-hackfix'\nimport resizeHackfix from './resize-hackfix'\n\n\n// HACKS\nsetupExitFullScreenHackfix()\n// readableStreamAsyncIteratorPolyfill()\nwindowOpenCloseHackfix()\nresizeHackfix()\n\nsetupWebAPIs()\nsetupPrompt()\nsetupExecuteJavascript()\n\nwindow.addEventListener('focus', e => {\n  // track focus\n  ipcRenderer.send('BEAKER_WC_FOCUSED')\n})"
  },
  {
    "path": "app/fg/webview-preload/prompt.js",
    "content": "/*\nThis provides window.prompt(), which electron does not do for us.\n*/\n\nimport { ipcRenderer, contextBridge, webFrame } from 'electron'\n\n// exported api\n// =\n\nexport function setup () {\n  // we have use ipc directly instead of using rpc, because we need custom\n  // repsonse-lifecycle management in the main thread\n  contextBridge.exposeInMainWorld('__internalPrompt__', {\n    prompt: (message, def) => {\n      return ipcRenderer.sendSync('page-prompt-dialog', message, def)\n    }\n  })\n  webFrame.executeJavaScript(`\n  Object.defineProperty(window, 'prompt', {\n    get: () => (message, def) => window.__internalPrompt__.prompt(message, def),\n    set: () => {}\n  });\n  undefined\n  `)\n}\n"
  },
  {
    "path": "app/fg/webview-preload/readable-stream-async-iterator-polyfill.js",
    "content": "/* globals ReadableStream */\n\n// Thanks to Simon Buchanon, https://jakearchibald.com/2017/async-iterators-and-generators/#comment-3673528560\nexport default function () {\n  if (!ReadableStream.prototype[Symbol.asyncIterator]) {\n    ReadableStream.prototype[Symbol.asyncIterator] = function ReadableStream_asyncIterator () {\n      const reader = this.getReader()\n      return {\n        next () { return reader.read() },\n        return () { return reader.releaseLock() }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/fg/webview-preload/resize-hackfix.js",
    "content": "// HACK\n// Electron has an issue where browserviews fail to calculate click regions after a resize\n// https://github.com/electron/electron/issues/14038\n// we can solve this by forcing a recalculation after every resize\n// -prf\n\nimport {ipcRenderer} from 'electron'\n\nexport default function () {\n  const setTimeoutFn = setTimeout\n  const clearTimeoutFn = clearTimeout\n  var to = undefined\n\n  function queueHackfix () {\n    if (to) clearTimeoutFn(to)\n    to = setTimeoutFn(() => {\n      ipcRenderer.send('resize-hackfix')\n      to = undefined\n    }, 500)\n  }\n\n  window.addEventListener('resize', queueHackfix)\n  document.addEventListener('DOMContentLoaded', queueHackfix)\n}\n"
  },
  {
    "path": "app/fg/webview-preload/window-open-close-hackfix.js",
    "content": "// HACK\n// window.close() will just crash the page's webcontents\n// the proper behavior is this:\n// - if the page was opened by a script, then close the tab\n// - otherwise, do nothing\n// but we're just going to do this:\n// - always allow it\n\nimport { ipcRenderer, contextBridge, webFrame } from 'electron'\n\nexport default function () {\n  contextBridge.exposeInMainWorld('__internalOpen__', {\n    close: () => {\n      return ipcRenderer.sendSync('BEAKER_SCRIPTCLOSE_SELF')\n    }\n  })\n  webFrame.executeJavaScript(`\n  Object.defineProperty(window, 'close', {\n    get: () => function () {\n      window.__internalOpen__.close()\n    },\n    set: () => {}\n  });\n  undefined\n  `)\n}"
  },
  {
    "path": "app/lib/README.md",
    "content": "# Lib (shared code)\n\nThis folder contains reusable code for both frontend and backend. If you have reusable code that only works on one or the other, store it in `/app/bg/lib` or `/app/fg/lib` as is appropriate."
  },
  {
    "path": "app/lib/anchor-markdown-header.js",
    "content": "/**\nhttps://github.com/thlorenz/anchor-markdown-header\n\nCopyright 2013 Thorsten Lorenz.\nAll rights reserved.\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport emojiRegex from 'emoji-regex'\n\nfunction basicGithubId (text) {\n  return text.replace(/ /g, '-')\n    // escape codes\n    .replace(/%([abcdef]|\\d){2,2}/ig, '')\n    // single chars that are removed\n    .replace(/[\\/?!:\\[\\]`.,()*\"';{}+=<>~\\$|#@&–—]/g, '')\n    // CJK punctuations that are removed\n    .replace(/[。？！，、；：“”【】（）〔〕［］﹃﹄“ ”‘’﹁﹂—…－～《》〈〉「」]/g, '')\n}\n\nfunction getGithubId (text, repetition) {\n  text = basicGithubId(text)\n\n  // If no repetition, or if the repetition is 0 then ignore. Otherwise append '-' and the number.\n  if (repetition) {\n    text += '-' + repetition\n  }\n\n  // Strip emojis\n  text = text.replace(emojiRegex(), '')\n\n  return text\n}\n\n/**\n * Generates an anchor for the given header and mode.\n *\n * @name anchorMarkdownHeader\n * @function\n * @param header      {String} The header to be anchored.\n * @param repetition  {Number} The nth occurrence of this header text, starting with 0. Not required for the 0th instance.\n * @return            {String} The header anchor id\n */\nexport default function anchorMarkdownHeader (header, repetition) {\n  var replace\n  var customEncodeURI = encodeURI\n\n  replace = getGithubId\n  customEncodeURI = function (uri) {\n    var newURI = encodeURI(uri)\n\n    // encodeURI replaces the zero width joiner character\n    // (used to generate emoji sequences, e.g.Female Construction Worker 👷🏼‍♀️)\n    // github doesn't URL encode them, so we replace them after url encoding to preserve the zwj character.\n    return newURI.replace(/%E2%80%8D/g, '\\u200D')\n  }\n\n  function asciiOnlyToLowerCase (input) {\n    var result = ''\n    for (var i = 0; i < input.length; ++i) {\n      if (input[i] >= 'A' && input[i] <= 'Z') {\n        result += input[i].toLowerCase()\n      } else {\n        result += input[i]\n      }\n    }\n    return result\n  }\n\n  var href = replace(asciiOnlyToLowerCase(header.trim()), repetition)\n\n  return customEncodeURI(href)\n};"
  },
  {
    "path": "app/lib/const.js",
    "content": "import bytes from 'bytes'\nimport ms from 'ms'\nimport { join as joinPath } from 'path'\n\n// native FS file paths\nexport const ANALYTICS_DATA_FILE = 'analytics-ping.json'\nexport const ANALYTICS_SERVER = 'analytics.beakerbrowser.com'\nexport const ANALYTICS_CHECKIN_INTERVAL = ms('6h')\n\n// hyperdrive FS file paths\nexport const PATHS = {\n  BOOKMARKS: '/bookmarks'\n}\n\n// hyperdrive trash management\nexport const TRASH_EXPIRATION_AGE = ms('7d') // how old do items need to be before deleting them from the trash?\nexport const TRASH_FIRST_COLLECT_WAIT = ms('30s') // how long after process start to do first collect?\nexport const TRASH_REGULAR_COLLECT_WAIT = ms('15m') // how long between collections?\n\n// 64 char hex\nexport const HYPERDRIVE_HASH_REGEX = /^[0-9a-f]{64}$/i\nexport const HYPERDRIVE_URL_REGEX = /^(?:(hyper|dat):\\/\\/)?([0-9a-f]{64})/i\n\n// url file paths\nexport const DRIVE_VALID_PATH_REGEX = /^[a-z0-9\\-._~!$&'()*+,;=:@/\\s]+$/i\nexport const INVALID_SAVE_FOLDER_CHAR_REGEX = /[^0-9a-zA-Z-_ ]/g\n\n// dat settings\nexport const DAT_SWARM_PORT = 3282\nexport const DRIVE_MANIFEST_FILENAME = 'index.json'\nlet quotaEnvVar = process.env.BEAKER_DAT_QUOTA_DEFAULT_BYTES_ALLOWED || process.env.beaker_dat_quota_default_bytes_allowed\nexport const DAT_QUOTA_DEFAULT_BYTES_ALLOWED = bytes.parse(quotaEnvVar || '500mb')\nexport const DAT_CACHE_TIME = ms('7d')\nexport const DEFAULT_DAT_DNS_TTL = ms('1h')\nexport const MAX_DAT_DNS_TTL = ms('7d')\nexport const DEFAULT_DRIVE_API_TIMEOUT = ms('60s')\n\n// index.json manifest fields which can be changed by configure()\nexport const DRIVE_CONFIGURABLE_FIELDS = [\n  'title',\n  'description',\n  'author'\n]\n\n// workspace settings\nexport const WORKSPACE_VALID_NAME_REGEX = /^[a-z][a-z0-9-]*$/i\n\n// git-url validator\nexport const IS_GIT_URL_REGEX = /(?:git|ssh|https?|git@[-\\w.]+):(\\/\\/)?(.*?)(\\.git)(\\/?|#[-\\d\\w._]+?)$/\n"
  },
  {
    "path": "app/lib/functions.js",
    "content": "/**\n * Helper to make node-style CBs into promises\n * @example\n * cbPromise(cb => myNodeStyleMethod(cb)).then(...)\n * @param {function(Function): any} method\n * @returns {Promise<any>}\n */\nexport function cbPromise (method) {\n  return new Promise((resolve, reject) => {\n    method((err, value) => {\n      if (err) reject(err)\n      else resolve(value)\n    })\n  })\n}\n\n/**\n * Helper to run an async operation against an array in chunks\n * @example\n * var res = await chunkAsync(values, v => fetchAsync(v), 3) // chunks of 3s\n * @param {any[]} arr \n * @param {Number} chunkSize \n * @param {(value: any, index: number, array: any[]) => Promise<any>} cb \n * @returns {Promise<any[]>}\n */\nexport async function chunkMapAsync (arr, chunkSize, cb) {\n  const resultChunks = []\n  for (let chunk of chunkArray(arr, chunkSize)) {\n    resultChunks.push(await Promise.all(chunk.map(cb)))\n  }\n  return resultChunks.flat()\n\n}\n\n/**\n * Helper to split an array into chunks\n * @param {any[]} arr \n * @param {Number} chunkSize \n * @returns {Array<any[]>}\n */\nexport function chunkArray (arr, chunkSize) {\n  const result = []\n  for (let i = 0; i < arr.length; i += chunkSize) {\n    result.push(arr.slice(i, i + chunkSize))\n  }\n  return result\n}\n\n/**\n * Async function which resolves after the given ms\n * @param {Number} ms \n */\nexport async function wait (ms = 1) {\n  return new Promise(resolve => setTimeout(resolve, ms))\n}"
  },
  {
    "path": "app/lib/lock.js",
    "content": "import AwaitLock from 'await-lock'\n\n// wraps await-lock in a simpler interface, with many possible locks\nvar locks = {}\n\n/**\n * Create a new lock\n * @example\n * var lock = require('./lock')\n * async function foo () {\n *   var release = await lock('bar')\n *   // ...\n *   release()\n * }\n * @param {string} key\n * @returns {Promise<function(): void>}\n */\nexport default async function (key) {\n  if (!(key in locks)) locks[key] = new AwaitLock()\n\n  var lock = locks[key]\n  await lock.acquireAsync()\n  return lock.release.bind(lock)\n};\n"
  },
  {
    "path": "app/lib/markdown.js",
    "content": "import MarkdownIt from 'markdown-it'\nimport anchorMarkdownHeader from './anchor-markdown-header'\n\nexport default function create ({allowHTML, useHeadingIds, useHeadingAnchors, hrefMassager, highlight} = {}) {\n  var md = MarkdownIt({\n    html: allowHTML, // Enable HTML tags in source\n    xhtmlOut: false, // Use '/' to close single tags (<br />)\n    breaks: false, // Convert '\\n' in paragraphs into <br>\n    langPrefix: 'language-', // CSS language prefix for fenced blocks\n    linkify: false, // Autoconvert URL-like text to links\n\n    // Enable some language-neutral replacement + quotes beautification\n    typographer: true,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Set doubles to '«»' for Russian, '„“' for German.\n    quotes: '“”‘’',\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed\n    highlight\n  })\n\n  if (useHeadingAnchors || useHeadingIds) {\n    var numRepetitions = {}\n    // heading anchor rendering\n    md.renderer.rules.heading_open = function (tokens, idx /*, options, env */) {\n      var txt = tokens[idx + 1].content || ''\n      numRepetitions[txt] = (numRepetitions[txt]) ? numRepetitions[txt] + 1 : 0\n      return '<' + tokens[idx].tag + ' id=\"' + anchorMarkdownHeader(txt, numRepetitions[txt]) + '\">'\n    }\n    if (useHeadingAnchors) {\n      md.renderer.rules.heading_close = function (tokens, idx /*, options, env */) {\n        var txt = tokens[idx - 1].content || ''\n        return '<a class=\"anchor-link\" href=\"#' + anchorMarkdownHeader(txt, numRepetitions[txt]) + '\">#</a></' + tokens[idx].tag + '>\\n'\n      }\n    }\n  }\n\n  if (hrefMassager) {\n    // link modifier\n    let orgLinkOpen = md.renderer.rules.link_open\n    md.renderer.rules.link_open = function (tokens, idx, options /* env */) {\n      var i = tokens[idx].attrs.findIndex(attr => attr[0] === 'href')\n      let href = hrefMassager(tokens[idx].attrs[i][1], 'a')\n      if (!href) return ''\n      tokens[idx].attrs[i][1] = href\n      if (orgLinkOpen) return orgLinkOpen.apply(null, arguments)\n      return md.renderer.renderToken.apply(md.renderer, arguments)\n    }\n    let orgImage = md.renderer.rules.image\n    md.renderer.rules.image = function (tokens, idx, options /* env */) {\n      var i = tokens[idx].attrs.findIndex(attr => attr[0] === 'src')\n      let src = hrefMassager(tokens[idx].attrs[i][1], 'img')\n      if (!src) return ''\n      tokens[idx].attrs[i][1] = src\n      if (orgImage) return orgImage.apply(null, arguments)\n      return md.renderer.renderToken.apply(md.renderer, arguments)\n    }\n  }\n\n  return md\n}\n"
  },
  {
    "path": "app/lib/math.js",
    "content": "export function clamp (v, min, max) {\n  return Math.min(Math.max(v, min), max)\n}"
  },
  {
    "path": "app/lib/permissions.js",
    "content": "const isDriveRegex = /^[a-z0-9]{64}/i\n\nexport const PERMS = {\n  js: {\n    persist: true,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: true,\n    experimental: false\n  },\n  network: {\n    persist: true,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: true,\n    experimental: false\n  },\n  createDrive: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  modifyDrive: {\n    persist: 'allow', // dont persist 'deny'\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  deleteDrive: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  tagDrive: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  listDrives: {\n    persist: 'allow', // dont persist 'deny'\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  media: {\n    persist: false,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  geolocation: {\n    persist: false,\n    idempotent: true,\n    alwaysDisallow: true, // NOTE geolocation is disabled, right now\n    requiresRefresh: false,\n    experimental: false\n  },\n  notifications: {\n    persist: true,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  midi: {\n    persist: false,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  midiSysex: {\n    persist: false,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  pointerLock: {\n    persist: false,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  fullscreen: {\n    persist: true,\n    idempotent: false,\n    alwaysAllow: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  download: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  dangerousAppControl: {\n    persist: true,\n    idempotent: false,\n    alwaysAllow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  openExternal: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: false\n  },\n  experimentalLibrary: {\n    persist: true,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  experimentalLibraryRequestAdd: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  experimentalLibraryRequestRemove: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  experimentalGlobalFetch: {\n    persist: true,\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  experimentalDatPeers: {\n    persist: true,\n    idempotent: true,\n    alwaysAllow: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  experimentalCapturePage: {\n    persist: false,\n    idempotent: false,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    experimental: true\n  },\n  panesCreate: {\n    persist: 'allow', // dont persist 'deny'\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    dangerous: true\n  },\n  panesAttach: {\n    persist: 'allow', // dont persist 'deny'\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    dangerous: true\n  },\n  panesInject: {\n    persist: 'allow', // dont persist 'deny'\n    idempotent: true,\n    alwaysDisallow: false,\n    requiresRefresh: false,\n    dangerous: true\n  },\n}\n\nexport const PERM_ICONS = {\n  js: 'fas fa-code',\n  network: 'fas fa-cloud',\n  createDrive: 'fas fa-folder-open',\n  modifyDrive: 'fas fa-folder-open',\n  deleteDrive: 'fas fa-folder-open',\n  tagDrive: 'fas fa-tag',\n  listDrives: 'fas fa-folder-open',\n  media: 'fas fa-video',\n  geolocation: 'fas fa-map-marked',\n  notifications: 'fas fa-bell',\n  midi: 'fas fa-headphones',\n  midiSysex: 'fas fa-headphones',\n  pointerLock: 'fas fa-mouse-pointer',\n  fullscreen: 'fas fa-arrows-alt',\n  download: 'fas fa-download',\n  openExternal: 'fas fa-external-link-alt',\n  experimentalLibrary: 'fas fa-book',\n  experimentalLibraryRequestAdd: 'fas fa-upload',\n  experimentalLibraryRequestRemove: 'fas fa-times',\n  experimentalGlobalFetch: 'fas fa-download',\n  experimentalDatPeers: 'fas fa-exchange-alt',\n  experimentalCapturePage: 'fas fa-camera',\n  dangerousAppControl: 'fas fa-flask',\n  panesCreate: 'fas fa-columns',\n  panesAttach: 'fas fa-columns',\n  panesInject: 'fas fa-columns'\n}\n\nexport function renderPermDesc ({html, bg, url, permId, permParam, permOpts}) {\n  const api = bg ? (bg.shellMenus || bg.permPrompt) : null\n  const openUrl = url => e => {\n    e.preventDefault()\n    e.stopPropagation()\n    url = isDriveRegex.test(url) ? `hyper://${url}/` : url\n    if (api) api.createTab(url)\n    else beaker.browser.openUrl(url, {setActive: true})\n  }\n  const mediaTypeToTool = v => ({video: 'camera', audio: 'microphone'})[v]\n  switch (permId) {\n    case 'js': return 'Run Javascript'\n    case 'media': return `Use your ${(permOpts.mediaTypes || ['video', 'audio']).map(mediaTypeToTool).join(' and ')}`\n    case 'geolocation': return 'Know your location'\n    case 'notifications': return 'Create desktop notifications'\n    case 'midi': return 'Access your MIDI devices'\n    case 'midiSysex': return 'Access your MIDI devices'\n    case 'pointerLock': return 'Lock your cursor'\n    case 'fullscreen': return 'Go fullscreen'\n    case 'openExternal': return `Open this URL in another program: ${shorten(permOpts.externalURL, 128)}`\n    case 'experimentalLibrary': return 'Read and modify your Library'\n    case 'experimentalDatPeers': return 'Send and receive messages with peers'\n    case 'dangerousAppControl': return 'Read and write your data, including bookmarks, archives, and files'\n    case 'panesCreate': return 'Open a page in a new pane'\n    case 'panesAttach': return 'Attach to other open pages and navigate them'\n    case 'panesInject': return 'Inject code into other open pages'\n\n    case 'network':\n      if (permParam === '*') return 'Access the network freely'\n      return 'contact ' + permParam\n\n    case 'download':\n      return html`<span>Download ${permOpts.filename}</span>`\n\n    case 'createDrive':\n      if (permOpts.tags) return `Create a new hyperdrive tagged \"${permOpts.tags.join(', ')}\"`\n      if (permOpts.title) return `Create a new hyperdrive, \"${permOpts.title}\"`\n      return 'Create a new hyperdrive'\n\n    case 'modifyDrive':\n      {\n        let viewArchive = openUrl(permParam)\n        return html`<span>Write files to <a @click=${viewArchive}>${permOpts.title}</a></span>`\n      }\n\n    case 'deleteDrive':\n      {\n        let viewArchive = openUrl(permParam)\n        return html`<span>Remove the hyperdrive <a @click=${viewArchive}>${permOpts.title}</a> from your library</span>`\n      }\n\n    case 'tagDrive':\n      {\n        let viewArchive = openUrl(permParam)\n        return html`<span>Add the tags \"${permOpts.tags.join(', ')}\" to the hyperdrive <a @click=${viewArchive}>${permOpts.title}</a></span>`\n      }\n\n    case 'listDrives':\n      if (permParam) return `Read the hyperdrives tagged \"${permParam}\" in your library`\n      return `Read all the hyperdrives in your library`\n\n    case 'experimentalLibraryRequestAdd':\n      {\n        let viewArchive = openUrl(permParam)\n        return html`<span>Host <a @click=${viewArchive}>${permOpts.title}</a></span>`\n      }\n\n    case 'experimentalLibraryRequestRemove':\n      {\n        let viewArchive = openUrl(permParam)\n        return html`<span>Stop hosting <a @click=${viewArchive}>${permOpts.title}</a></span>`\n      }\n\n    case 'experimentalGlobalFetch':\n      {\n        let viewPage = openUrl(permParam)\n        return html`<span>Fetch data from <a @click=${viewPage}>${permParam}</a></span>`\n      }\n\n    case 'experimentalCapturePage':\n      {\n        let viewPage = openUrl(permParam)\n        return html`<span>Take a screenshot of <a @click=${viewPage}>${permParam}</a></span>`\n      }\n  }\n}\n\nexport function getPermId (permissionToken) {\n  return permissionToken.split(':')[0]\n}\n\nexport function getPermParam (permissionToken) {\n  return permissionToken.split(':').slice(1).join(':')\n}\n\nfunction shorten (str, n = 6) {\n  if (str.length > (n + 3)) {\n    return str.slice(0, n) + '...'\n  }\n  return str\n}"
  },
  {
    "path": "app/lib/schemas/application.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"allOf\": [{\"$ref\": \"index.json\"}],\n  \"title\": \"Application\",\n  \"type\": \"object\",\n  \"required\": [\"type\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"application\"\n    },\n    \"driveTypes\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"id\", \"title\"],\n        \"properties\": {\n          \"id\": {\"type\": \"string\"},\n          \"title\": {\"type\": \"string\"}\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/index.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"index.json\",\n  \"title\": \"Index.json\",\n  \"description\": \"The common fields in every index.json\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"title\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"type\": {\n      \"type\": \"string\"\n    },\n    \"author\": {\n      \"type\": \"string\",\n      \"format\": \"url\"\n    },\n    \"links\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": [\"object\", \"array\"],\n        \"items\": {\n          \"type\": \"object\"\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/library.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Library\",\n  \"type\": \"object\",\n  \"required\": [\n    \"type\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"library\"\n    },\n    \"drives\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\n          \"key\"\n        ],\n        \"properties\": {\n          \"key\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[0-9a-fA-F]{64}$\"\n          },\n          \"isHosting\": {\n            \"type\": \"boolean\"\n          },\n          \"visibility\": {\n            \"type\": \"string\",\n            \"enum\": [\"private\", \"unlisted\", \"public\"]\n          },\n          \"savedAt\": {\n            \"type\": \"string\",\n            \"format\": \"date-time\"\n          }\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/program-registry.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Program Registry\",\n  \"type\": \"object\",\n  \"required\": [\n    \"type\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"program-registry\"\n    },\n    \"installed\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"url\", \"manifest\"],\n        \"properties\": {\n          \"url\": {\n            \"type\": \"string\",\n            \"format\": \"url\"\n          },\n          \"key\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[0-9a-f]{64}$\"\n          },\n          \"version\": {\n            \"type\": [\"number\", \"string\"]\n          },\n          \"manifest\": {\n            \"type\": \"object\"\n          }\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/type-pkg.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"allOf\": [{\"$ref\": \"index.json\"}],\n  \"title\": \"Type Package\",\n  \"type\": \"object\",\n  \"required\": [\"type\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"type-pkg\"\n    },\n    \"driveTypes\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"id\", \"title\"],\n        \"properties\": {\n          \"id\": {\"type\": \"string\"},\n          \"title\": {\"type\": \"string\"}\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/type-registry.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Type Registry\",\n  \"type\": \"object\",\n  \"required\": [\n    \"type\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"type-registry\"\n    },\n    \"installed\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"url\", \"manifest\"],\n        \"properties\": {\n          \"url\": {\n            \"type\": \"string\",\n            \"format\": \"url\"\n          },\n          \"key\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[0-9a-f]{64}$\"\n          },\n          \"version\": {\n            \"type\": [\"number\", \"string\"]\n          },\n          \"manifest\": {\n            \"type\": \"object\"\n          }\n        }\n      }\n    },\n    \"defaultDriveHandlers\": {\n      \"type\": \"object\",\n      \"additionalProperties\": { \"type\": \"string\" }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/bookmark.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/bookmark.json\",\n  \"type\": \"object\",\n  \"title\": \"Bookmark\",\n  \"description\": \"A saved/shared link to some URL.\",\n  \"required\": [\"type\", \"href\", \"title\", \"createdAt\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"description\": \"The object's type\",\n      \"const\": \"unwalled.garden/bookmark\"\n    },\n    \"href\": {\n      \"type\": \"string\",\n      \"format\": \"uri\",\n      \"maxLength\": 10000\n    },\n    \"title\": {\n      \"type\": \"string\",\n      \"maxLength\": 280\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"maxLength\": 560\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\",\n        \"maxLength\": 100,\n        \"pattern\": \"^[A-Za-z][A-Za-z0-9-_?]*$\"\n      }\n    },\n    \"createdAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"updatedAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/comment.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/comment.json\",\n  \"type\": \"object\",\n  \"title\": \"Comment\",\n  \"description\": \"A text post about some resource.\",\n  \"required\": [\n    \"type\",\n    \"topic\",\n    \"body\",\n    \"createdAt\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"description\": \"The object's type\",\n      \"const\": \"unwalled.garden/comment\"\n    },\n    \"topic\": {\n      \"type\": \"string\",\n      \"description\": \"What this comment is about\",\n      \"format\": \"uri\"\n    },\n    \"replyTo\": {\n      \"type\": \"string\",\n      \"description\": \"What this comment is replying to\",\n      \"format\": \"uri\"\n    },\n    \"body\": {\n      \"type\": \"string\",\n      \"description\": \"The post's text content\"\n    },\n    \"createdAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The time of this post's creation\"\n    },\n    \"updatedAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The time of this post's last edit\"\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/dats.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/dats.json\",\n  \"type\": \"object\",\n  \"title\": \"Dats\",\n  \"description\": \"A list of dats.\",\n  \"required\": [\n    \"type\",\n    \"dats\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"unwalled.garden/dats\"\n    },\n    \"dats\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"key\"],\n        \"properties\": {\n          \"key\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[0-9a-f]{64}$\"\n          },\n          \"title\": {\n            \"type\": \"string\"\n          },\n          \"description\": {\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"type\": [\"string\", \"array\"],\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/follows.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/follows.json\",\n  \"type\": \"object\",\n  \"title\": \"Follows\",\n  \"description\": \"A list of data subscriptions.\",\n  \"required\": [\n    \"type\",\n    \"urls\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"unwalled.garden/follows\"\n    },\n    \"urls\": {\n      \"type\": \"array\",\n      \"description\": \"The followed URLs\",\n      \"items\": {\n        \"type\": \"string\",\n        \"format\": \"uri\"\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/reaction.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/reaction.json\",\n  \"type\": \"object\",\n  \"title\": \"Reaction\",\n  \"description\": \"An string annotation on some resource.\",\n  \"required\": [\n    \"type\",\n    \"topic\",\n    \"phrases\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"unwalled.garden/reaction\"\n    },\n    \"topic\": {\n      \"type\": \"string\",\n      \"description\": \"What this reaction is about\",\n      \"format\": \"uri\"\n    },\n    \"phrases\": {\n      \"type\": \"array\",\n      \"description\": \"The reaction phrases.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"pattern\": \"^[a-z ]+$\",\n        \"maxLength\": 20\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/status.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/status.json\",\n  \"type\": \"object\",\n  \"title\": \"Status\",\n  \"description\": \"A broadcasted piece of content.\",\n  \"required\": [\"type\", \"body\", \"createdAt\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"unwalled.garden/status\"\n    },\n    \"body\": {\n      \"type\": \"string\",\n      \"maxLength\": 1000000\n    },\n    \"createdAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"updatedAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/unwalled.garden/vote.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://unwalled.garden/vote.json\",\n  \"type\": \"object\",\n  \"title\": \"Vote\",\n  \"description\": \"A vote up or down on some resource.\",\n  \"required\": [\n    \"type\",\n    \"topic\",\n    \"vote\",\n    \"createdAt\"\n  ],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"unwalled.garden/vote\"\n    },\n    \"topic\": {\n      \"type\": \"string\",\n      \"format\": \"uri\"\n    },\n    \"vote\": {\n      \"type\": \"number\",\n      \"enum\": [-1, 1]\n    },\n    \"createdAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"updatedAt\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas/webterm.sh/cmd-pkg.json",
    "content": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"allOf\": [{\"$ref\": \"index.json\"}],\n  \"type\": \"object\",\n  \"required\": [\"type\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"string\",\n      \"const\": \"webterm.sh/cmd-pkg\",\n    },\n    \"commands\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"name\"],\n        \"properties\": {\n          \"name\": {\"type\": \"string\"},\n          \"help\": {\"type\": \"string\"},\n          \"usage\": {\"type\": \"string\"},\n          \"options\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"object\",\n              \"required\": [\"name\"],\n              \"properties\": {\n                \"name\": {\"type\": \"string\"},\n                \"abbr\": {\"type\": \"string\"},\n                \"help\": {\"type\": \"string\"},\n                \"boolean\": {\"type\": \"boolean\"},\n                \"default\": {\"type\": [\"boolean\", \"number\", \"string\"]},\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "app/lib/schemas.js",
    "content": "import Ajv from 'ajv'\nimport { join as joinPath } from 'path'\nimport { readFileSync } from 'fs'\n\nconst ajv = (new Ajv())\nvar validators = {}\n\nexport function getValidator (name) {\n  if (validators[name]) return validators[name]\n  validators[name] = ajv.compile(JSON.parse(readFileSync(joinPath(__dirname, 'lib', 'schemas', name), 'utf8')))\n  return validators[name]\n}"
  },
  {
    "path": "app/lib/session-permissions.js",
    "content": "import { dirname, extname } from 'path'\nimport { isSameOrigin } from './urls'\nimport { parseSimplePathSpec } from './strings'\n\nconst VALID_ACCESS = ['read', 'write']\n\n/**\n * @typedef {Object} EnumeratedSessionPerm\n * @prop {String} prefix\n * @prop {String} extension\n * @prop {String} location\n * @prop {String} recordType\n * @prop {String} access\n */\n\nexport function validateAndNormalizePermissions (permissions) {\n  if (typeof permissions !== 'object') throw new Error(`Permissions must be an object`)\n  for (let key in permissions) {\n    if (key === 'publicFiles' || key === 'privateFiles') {\n      if (!Array.isArray(permissions[key])) throw new Error(`Permission '${key}' should be an array`)\n      for (let v of permissions[key]) {\n        if (!v.path || typeof v.path !== 'string') throw new Error(`'${key}' permissions must have a .path string`)\n        Object.assign(v, parseSimplePathSpec(v.path))\n        delete v.path\n\n        v.access = v.access || 'read'\n        if (!VALID_ACCESS.includes(v.access)) throw new Error(`'${key}' permissions .access must be one of: ${VALID_ACCESS.join(', ')}`)\n\n        if (!v.prefix.startsWith('/')) v.prefix = `/${v.prefix}`\n        while (v.prefix.endsWith('/')) v.prefix = v.prefix.slice(0, -1)\n        if (!v.prefix || v.prefix === '/') throw new Error(`'${key}' permissions .path can not be '/'`)\n        if (!v.extension) throw new Error(`'${key}' permissions .path must include an extension`)\n      }\n    } else {\n      throw new Error(`Invalid permission key: ${key}`)\n    }\n  }\n}\n\n/**\n * @param {Object} permissions \n * @returns {EnumeratedSessionPerm[]}\n */\nexport function enumeratePerms (permissions) {\n  var perms = []\n  for (let k in permissions) {\n    let arr = permissions[k]\n    if (k === 'publicFiles' || k === 'privateFiles') {\n      for (let v of arr) {\n        if (k === 'publicFiles' && v.access === 'read') {\n          continue // publicFiles have an implied read-all, don't render\n        }\n        let location = k === 'publicFiles' ? 'public' : 'private'\n        let recordType = getRecordType(v)\n        if (recordType === 'unknown') {\n          recordType = `${v.extension} files in ${v.prefix}`\n        }\n        perms.push({access: v.access, location, recordType, prefix: v.prefix, extension: v.extension})\n      }\n    }\n  }\n  return perms\n}\n\n/**\n * @param {String} access\n * @param {Object} session \n * @param {Object} session.permissions\n * @param {Object} session.userUrl\n * @param {String} driveUrl\n * @param {String} filepath\n * @returns {Boolean}\n */\nexport function sessionCan (access, session, driveUrl, filepath) {\n  var key\n  if (isSameOrigin(driveUrl, 'hyper://private')) {\n    key = 'privateFiles'\n  } else if (isSameOrigin(driveUrl, session.userUrl)) {\n    key = 'publicFiles'\n  } else {\n    return false\n  }\n  \n  var perm \n  var extension = extname(filepath)\n  if (extension) {\n    // individual file\n    let prefix = dirname(filepath)\n    perm = session.permissions[key]?.find(p => p.prefix === prefix && p.extension === extension)\n  } else {\n    // folder\n    let prefix = filepath\n    while (prefix.endsWith('/')) prefix = prefix.slice(0, -1)\n    if (!prefix) return false\n    perm = session.permissions[key]?.find(p => p.prefix === prefix)\n  }\n\n  if (perm) {\n    if (access === 'read' || (access === 'write' && perm.access === 'write')) {\n      return true\n    }\n  }\n  return false\n}\n"
  },
  {
    "path": "app/lib/streams.js",
    "content": "import { Transform, Writable } from 'stream'\n\nexport class NoopWritable extends Writable {\n  _write (chunk, encoding, cb) {\n    cb() // just discard\n  }\n}\n\nexport function transform (fn) {\n  return new Transform({\n    objectMode: true,\n    transform (chunk, encoding, cb) {\n      fn(chunk, cb)\n    }\n  })\n}\n\nexport function noopWritable () {\n  return new NoopWritable({ objectMode: true })\n}\n"
  },
  {
    "path": "app/lib/strings.js",
    "content": "/* globals window */\n\nconst URL = typeof window === 'undefined' ? require('url').URL : window.URL\nexport const DRIVE_KEY_REGEX = /[0-9a-f]{64}/i\n\nexport function ucfirst (str) {\n  if (!str) str = ''\n  if (typeof str !== 'string') str = '' + str\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function pluralize (num, base, suffix = 's') {\n  if (num === 1) { return base }\n  return base + suffix\n}\n\nexport function shorten (str, n = 6) {\n  if (str.length > (n + 3)) {\n    return str.slice(0, n) + '...'\n  }\n  return str\n}\n\nexport function shortenHash (str, n = 6) {\n  if (str.startsWith('hyper://')) {\n    return 'hyper://' + shortenHash(str.slice('hyper://'.length).replace(/\\/$/, '')) + '/'\n  }\n  if (str.length > (n + 5)) {\n    return str.slice(0, n) + '..' + str.slice(-2)\n  }\n  return str\n}\n\nexport function makeSafe (str = '') {\n  return str.replace(/&/g, '&amp;').replace(/\"/g, '').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\nexport function highlight (str = '', nonce = 0) {\n  var start = new RegExp(`\\\\{${nonce}\\\\}`, 'g') // eg {500}\n  var end = new RegExp(`\\\\{/${nonce}\\\\}`, 'g') // eg {/500}\n  return str.replace(start, '<strong>').replace(end, '</strong>')\n}\n\nexport function joinPath (...args) {\n  var str = args[0]\n  for (let v of args.slice(1)) {\n    v = v && typeof v === 'string' ? v : ''\n    let left = str.endsWith('/')\n    let right = v.startsWith('/')\n    if (left !== right) str += v\n    else if (left) str += v.slice(1)\n    else str += '/' + v\n  }\n  return str\n}\n\nexport function getHostname (str) {\n  try {\n    const u = new URL(str)\n    if (u.protocol === 'hyper:' && u.hostname.length === 64) {\n      return 'hyper://' + shortenHash(u.hostname)\n    }\n    return u.hostname\n  } catch (e) {\n    return str\n  }\n}\n\nexport function toNiceUrl (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    if (DRIVE_KEY_REGEX.test(urlParsed.hostname)) {\n      urlParsed.hostname = `${urlParsed.hostname.slice(0, 6)}..${urlParsed.hostname.slice(-2)}`\n    }\n    return urlParsed.toString()\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nconst reservedChars = /[^A-Za-z0-9]/g\nconst continuousDashes = /(-[-]+)/g\nconst endingDashes = /([-]+$)/g\nexport function slugify (str = '') {\n  return str.replace(reservedChars, '-').replace(continuousDashes, '-').replace(endingDashes, '')\n}\n\nexport function slugifyUrl (str = '') {\n  try {\n    let url = new URL(str)\n    str = url.protocol + url.hostname + url.pathname + url.search + url.hash\n  } catch (e) {\n    // ignore\n  }\n  return slugify(str)\n}\n\nexport function toHex (buf) {\n  return buf.reduce((memo, i) => (\n    memo + ('0' + i.toString(16)).slice(-2) // pad with leading 0 if <16\n  ), '')\n}\n\nexport function globToRegex (str = '') {\n  if (!str.startsWith('/')) {\n    str = `**/${str}`\n  }\n  str = str.replace(/(\\*\\*?)/g, match => {\n    if (match === '**') return '.*'\n    return '[^/]*'\n  })\n  return new RegExp(`^${str}(/.*)?$`)\n}\n\nconst pathSpecRe = /^(.*)\\/\\*(\\.[^\\/]+)?$/i\nexport function parseSimplePathSpec (str) {\n  if (typeof str !== 'string') {\n    throw new Error('Invalid path-spec. Must be a string.')\n  }\n  if (!pathSpecRe.test(str)) {\n    throw new Error('Invalid path-spec. Must be a simple path glob such as \"/comments/*\" or \"/comments/*.md\", not \"/comments\" or \"/comments/foo*.md\"')\n  }\n  var parts = str.split('*')\n  return {\n    prefix: parts[0].slice(0, -1), // slice to drop the trailing slash\n    extension: parts[1].length > 0 ? parts[1] : undefined\n  }\n}"
  },
  {
    "path": "app/lib/time.js",
    "content": "import moment from 'moment'\nimport {TimeoutError} from 'beaker-error-constants'\n\nmoment.updateLocale('en', {\n  relativeTime: {s: 'seconds'}\n})\n\nexport function niceDate (ts, opts) {\n  const endOfToday = moment().endOf('day')\n  if (typeof ts === 'number' || typeof ts === 'string' || ts instanceof Date) { ts = moment(ts) }\n  if (ts.isSame(endOfToday, 'day')) {\n    if (opts && opts.noTime) { return 'today' }\n    return ts.fromNow()\n  } else if (ts.isSame(endOfToday.subtract(1, 'day'), 'day')) { return 'yesterday' } else if (ts.isSame(endOfToday, 'month')) { return ts.fromNow() }\n  return ts.format('ll')\n}\n\nexport function downloadTimestamp (ts) {\n  if (typeof ts === 'string') {\n    ts = moment(Number(ts))\n  } else if (typeof ts === 'number') {\n    ts = moment(ts)\n  }\n  return moment(ts).local().format('ddd MMM D, h:mma')\n}\n\n// this is a wrapper for any behavior that needs to maintain a timeout\n// you call it like this:\n/*\ntimer(30e3, async (checkin, pause, resume) => {\n  checkin('doing work')\n  await work()\n\n  checkin('doing other work')\n  await otherWork()\n\n  pause() // dont count this period against the timeout\n  await askUserSomething()\n  resume() // resume the timeout\n\n  checkin('finishing')\n  return finishing()\n})\n*/\n// Rules of usage:\n// - Call `checkin` after a period of async work to give the timer a chance to\n//   abort further work. If the timer has expired, checkin() will stop running.\n// - Give `checkin` a description of the task if you want the timeouterror to be\n//   descriptive.\nexport function timer (ms, fn) {\n  var currentAction\n  var isTimedOut = false\n\n  // no timeout?\n  if (!ms) return fn(noop, noop, noop)\n\n  return new Promise((resolve, reject) => {\n    var timer\n    var remaining = ms\n    var start\n\n    const checkin = action => {\n      if (isTimedOut) throw new TimeoutError() // this will abort action, but the wrapping promise is already rejected\n      if (action) currentAction = action\n    }\n    const pause = () => {\n      clearTimeout(timer)\n      remaining -= (Date.now() - start)\n    }\n    const resume = () => {\n      if (isTimedOut) return\n      clearTimeout(timer)\n      start = Date.now()\n      timer = setTimeout(onTimeout, remaining)\n    }\n    const onTimeout = () => {\n      isTimedOut = true\n      reject(new TimeoutError(currentAction ? `Timed out while ${currentAction}` : undefined))\n    }\n\n    // call the fn to get the promise\n    var promise = fn(checkin, pause, resume)\n\n    // start the timer\n    resume()\n\n    // wrap the promise\n    promise.then(\n      val => {\n        clearTimeout(timer)\n        resolve(val)\n      },\n      err => {\n        clearTimeout(timer)\n        reject(err)\n      }\n    )\n  })\n}\n\nfunction noop () {}\n"
  },
  {
    "path": "app/lib/urls.js",
    "content": "const isNode = typeof window === 'undefined'\nconst parse = isNode ? require('url').parse : browserParse\nimport { slugify } from './strings'\n\nexport const isHyperHashRegex = /^[a-z0-9]{64}/i\nconst isIPAddressRegex = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/\nconst isPath = /^\\//\nconst URL_RE = /^[\\S]+:\\/\\/[\\S]+$/i\n\n// helper to determine what the user may be inputting into the locaiton bar\nexport function examineLocationInput (v) {\n  // does the value look like a url?\n  var isProbablyUrl = (!v.includes(' ') && (\n    isPath.test(v) ||\n    /\\.[A-z]/.test(v) ||\n    isIPAddressRegex.test(v) ||\n    isHyperHashRegex.test(v) ||\n    v.startsWith('localhost') ||\n    v.includes('://') ||\n    v.startsWith('beaker:') ||\n    v.startsWith('data:') ||\n    v.startsWith('intent:') ||\n    v.startsWith('about:')\n  ))\n  var vWithProtocol = v\n  var isGuessingTheScheme = false\n  if (isProbablyUrl && !isPath.test(v) && !v.includes('://') && !(v.startsWith('beaker:') || v.startsWith('data:') || v.startsWith('intent:') || v.startsWith('about:'))) {\n    if (isHyperHashRegex.test(v)) {\n      vWithProtocol = 'hyper://' + v\n    } else if (v.startsWith('localhost') || isIPAddressRegex.test(v)) {\n      vWithProtocol = 'http://' + v\n    } else {\n      vWithProtocol = 'https://' + v\n      isGuessingTheScheme = true // note that we're guessing so that, if this fails, we can try http://\n    }\n  }\n  var vSearch = '?q=' + v.split(' ').map(encodeURIComponent).join('+')\n  return {vWithProtocol, vSearch, isProbablyUrl, isGuessingTheScheme}\n}\n\nconst SCHEME_REGEX = /[a-z]+:\\/\\//i\n//                   1          2      3        4\nconst VERSION_REGEX = /^(hyper:\\/\\/)?([^/]+)(\\+[^/]+)(.*)$/i\nexport function parseDriveUrl (str, parseQS) {\n  // prepend the scheme if it's missing\n  if (!SCHEME_REGEX.test(str)) {\n    str = 'hyper://' + str\n  }\n\n  var parsed, version = null, match = VERSION_REGEX.exec(str)\n  if (match) {\n    // run typical parse with version segment removed\n    parsed = parse((match[1] || '') + (match[2] || '') + (match[4] || ''), parseQS)\n    version = match[3].slice(1)\n  } else {\n    parsed = parse(str, parseQS)\n  }\n  if (isNode) parsed.href = str // overwrite href to include actual original\n  else parsed.path = parsed.pathname // to match node\n  if (!parsed.query && parsed.searchParams) {\n    parsed.query = Object.fromEntries(parsed.searchParams) // to match node\n  }\n  parsed.version = version // add version segment\n  if (!parsed.origin) parsed.origin = `hyper://${parsed.hostname}/`\n  return parsed\n}\n\nfunction browserParse (str) {\n  return new URL(str)\n}\n\nexport function createResourceSlug (href, title) {\n  var slug\n  try {\n    var hrefp = new URL(href)\n    if (hrefp.pathname === '/' && !hrefp.search && !hrefp.hash) {\n      // at the root path - use the hostname for the filename\n      slug = slugify(hrefp.hostname)\n    } else if (typeof title === 'string' && !!title.trim()) {\n      // use the title if available on subpages\n      slug = slugify(title.trim())\n    } else {\n      // use parts of the url\n      slug = slugify(hrefp.hostname + hrefp.pathname + hrefp.search + hrefp.hash)\n    }\n  } catch (e) {\n    // weird URL, just use slugified version of it\n    slug = slugify(href)\n  }\n  return slug.toLowerCase()\n}\n\n/**\n * @param {String} str \n * @returns {String}\n */\nexport function normalizeOrigin (str) {\n  try {\n    let {protocol, hostname, port} = new URL(str)\n    return `${protocol}//${hostname}${(port ? `:${port}` : '')}`\n  } catch {\n    // assume hyper, if this fails then bomb out\n    let {protocol, hostname, port} = new URL(`hyper://${str}`)\n    return `${protocol}//${hostname}${(port ? `:${port}` : '')}`\n  }\n}\n\n/**\n * @param {String} a \n * @param {String} b \n * @returns {Boolean}\n */\nexport function isSameOrigin (a, b) {\n\treturn normalizeOrigin(a) === normalizeOrigin(b)\n}\n\n/**\n * @param {String} url\n * @param {String} [base]\n * @returns {String}\n */\nexport function normalizeUrl (url, base = undefined) {\n  try {\n    let {protocol, hostname, port, pathname, search, hash} = new URL(url, base)\n    return `${protocol}//${hostname}${(port ? `:${port}` : '')}${pathname || '/'}${search}${hash}`\n  } catch {\n    return url\n  }\n}\n\n/**\n * @param {String} url \n * @returns {Boolean}\n */\nexport function isUrlLike (url) {\n  return typeof url === 'string' && URL_RE.test(url)\n}\n\n/**\n * @param {String} url \n * @returns {Boolean}\n */\nexport function isHyperUrl (url) {\n  if (url.length === 64 && isHyperHashRegex.test(url)) return true\n  if (url.startsWith('hyper://')) return true\n  return false\n}\n\n/**\n * @param {String} url \n * @returns {String}\n */\nexport function stripUrlHash (url) {\n  try {\n    let i = url.indexOf('#')\n    if (i !== -1) return url.slice(0, i)\n    return url\n  } catch (e) {\n    return url\n  }\n}"
  },
  {
    "path": "app/main.js",
    "content": "require('tls').DEFAULT_ECDH_CURVE = 'auto' // HACK (prf) fix Node 8.9.x TLS issues, see https://github.com/nodejs/node/issues/19359\nprocess.noAsar = true\n\n// DEBUG\n// Error.stackTraceLimit = Infinity\n// require('events').defaultMaxListeners = 1e3 // pls stfu\n\n// This is main process of Electron, started as first thing when your\n// app starts. This script is running through entire life of your application.\n// It doesn't have any windows which you can see on screen, but we can open\n// window from here.\n\nimport { app, protocol, nativeTheme } from 'electron'\nimport { join } from 'path'\n\nimport { getEnvVar } from './bg/lib/env'\nimport * as logger from './bg/logger'\nimport * as beakerBrowser from './bg/browser'\nimport * as adblocker from './bg/adblocker'\nimport * as analytics from './bg/analytics'\nimport * as portForwarder from './bg/nat-port-forwarder'\nimport dbs from './bg/dbs/index'\nimport hyper from './bg/hyper/index'\nimport * as filesystem from './bg/filesystem/index'\nimport * as bookmarkPins from './bg/filesystem/pins'\nimport * as webapis from './bg/web-apis/bg'\n\nimport * as initWindow from './bg/ui/init-window'\nimport { runSetupFlow } from './bg/ui/setup-flow'\nimport * as windows from './bg/ui/windows'\nimport * as windowMenu from './bg/ui/window-menu'\nimport registerContextMenu from './bg/ui/context-menu'\nimport * as trayIcon from './bg/ui/tray-icon'\nimport * as downloads from './bg/ui/downloads'\nimport * as permissions from './bg/ui/permissions'\n\nimport * as beakerProtocol from './bg/protocols/beaker'\nimport * as assetProtocol from './bg/protocols/asset'\nimport * as hyperProtocol from './bg/protocols/hyper'\nimport * as datProtocol from './bg/protocols/dat'\n\nimport * as testDriver from './bg/test-driver'\nimport * as openURL from './bg/open-url'\n\n// setup\n// =\n\nconst log = logger.get().child({category: 'browser', subcategory: 'init'})\n\n// read config from env vars\nif (getEnvVar('BEAKER_USER_DATA_PATH')) {\n  console.log('User data path set by environment variables')\n  console.log('userData:', getEnvVar('BEAKER_USER_DATA_PATH'))\n  app.setPath('userData', getEnvVar('BEAKER_USER_DATA_PATH'))\n}\nif (getEnvVar('BEAKER_TEST_DRIVER')) {\n  testDriver.setup()\n}\nprocess.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = '1' // we know, we know\n\n// enable the sandbox\napp.enableSandbox()\n\n// HACK fix for cors in custom protocols\n// see https://github.com/electron/electron/issues/20730\napp.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors')\n\n// enable process reuse to speed up navigations\n// see https://github.com/electron/electron/issues/18397\napp.allowRendererProcessReuse = true\n\n// configure the protocols\nprotocol.registerSchemesAsPrivileged([\n  {scheme: 'dat', privileges: {standard: true, secure: true, allowServiceWorkers: true, supportFetchAPI: true, corsEnabled: true}},\n  {scheme: 'hyper', privileges: {standard: true, secure: true, allowServiceWorkers: true, supportFetchAPI: true, corsEnabled: true, stream: true}},\n  {scheme: 'beaker', privileges: {standard: true, secure: true, allowServiceWorkers: true, supportFetchAPI: true, corsEnabled: true}}\n])\n\n// handle OS event to open URLs\napp.on('open-url', (e, url) => {\n  e.preventDefault() // we are handling it\n  // wait for ready (not waiting can trigger errors)\n  if (app.isReady()) openURL.open(url)\n  else app.on('ready', () => openURL.open(url))\n})\n\n// handle OS event to open files\napp.on('open-file', (e, filepath) => {\n  e.preventDefault() // we are handling it\n  // wait for ready (not waiting can trigger errors)\n  if (app.isReady()) openURL.open(`file://${filepath}`)\n  else app.on('ready', () => openURL.open(`file://${filepath}`))\n})\n\napp.on('ready', async function () {\n  var commonOpts = {\n    userDataPath: app.getPath('userData'),\n    homePath: app.getPath('home')\n  }\n\n  await logger.setup(join(commonOpts.userDataPath, 'beaker.log'))\n  log.info('Welcome to Beaker')\n  beakerProtocol.register(protocol)\n  webapis.setup()\n  initWindow.open()\n  portForwarder.setup()\n\n  // setup databases\n  log.info('Initializing databases')\n  for (let k in dbs) {\n    if (dbs[k].setup) {\n      dbs[k].setup(commonOpts)\n    }\n  }\n\n  // start subsystems\n  // (order is important)\n  log.info('Starting hyperdrive')\n  await hyper.setup(commonOpts)\n  log.info('Initializing hyperdrive filesystem')\n  await filesystem.setup()\n  log.info('Initializing browser')\n  await beakerBrowser.setup()\n  adblocker.setup()\n  analytics.setup()\n  await bookmarkPins.setup()\n\n  // protocols\n  log.info('Registering protocols')\n  assetProtocol.setup()\n  assetProtocol.register(protocol)\n  hyperProtocol.register(protocol)\n  datProtocol.register(protocol)\n\n  initWindow.close()\n\n  // setup flow\n  log.info('Running setup flow')\n  await runSetupFlow()\n\n  // ui\n  log.info('Initializing window menu')\n  windowMenu.setup()\n  log.info('Initializing context menus')\n  registerContextMenu()\n  log.info('Initializing tray icon')\n  trayIcon.setup()\n  log.info('Initializing browser windows')\n  windows.setup()\n  log.info('Initializing downloads manager')\n  downloads.setup()\n  log.info('Initializing permissions manager')\n  permissions.setup()\n  log.info('Program setup complete')\n\n  // theming\n  nativeTheme.themeSource = await dbs.settings.get('browser_theme')\n  dbs.settings.on('set:browser_theme', v => {\n    nativeTheme.themeSource = v\n  })\n})\n\napp.on('window-all-closed', () => {\n  // do nothing\n})\n\napp.on('will-quit', async (e) => {\n  if (hyper.daemon.requiresShutdown()) {\n    e.preventDefault()\n    log.info('Delaying shutdown to teardown the daemon')\n    await hyper.daemon.shutdown()\n    app.quit()\n  }\n})\n\napp.on('quit', () => {\n  log.info('Program quit')\n  portForwarder.closePort()\n})\n\napp.on('custom-ready-to-show', () => {\n  // our first window is ready to show, do any additional setup\n})\n\n// only run one instance\nconst isFirstInstance = app.requestSingleInstanceLock()\nif (!isFirstInstance) {\n  app.exit()\n} else {\n  handleArgv(process.argv)\n  app.on('second-instance', (event, argv, workingDirectory) => {\n    log.info('Second instance opened', {argv})\n    handleArgv(argv)\n\n    // focus/create a window\n    windows.ensureOneWindowExists()\n  })\n}\nfunction handleArgv (argv) {\n  if (process.platform !== 'darwin') {\n    // look for URLs, windows & linux use argv instead of open-url\n    let url = argv.find(v => v.indexOf('://') !== -1)\n    if (url) {\n      openURL.open(url)\n    }\n  }\n}\n"
  },
  {
    "path": "app/package.json",
    "content": "{\n  \"name\": \"beaker-browser\",\n  \"productName\": \"Beaker Browser\",\n  \"description\": \"An Experimental Peer-to-Peer Web Browser.\",\n  \"homepage\": \"https://beakerbrowser.com/\",\n  \"version\": \"1.1.0\",\n  \"author\": \"Blue Link Labs <support@beakerbrowser.com>\",\n  \"copyright\": \"© 2020, Blue Link Labs\",\n  \"main\": \"main.build.js\",\n  \"dependencies\": {\n    \"@beaker/dat-serve-resolve-path\": \"^1.0.0\",\n    \"@beaker/library-tools\": \"^1.0.0\",\n    \"@cliqz/adblocker\": \"^1.17.0\",\n    \"abort-controller\": \"^3.0.0\",\n    \"ajv\": \"^6.10.2\",\n    \"anymatch\": \"^2.0.0\",\n    \"await-lock\": \"^1.2.1\",\n    \"base32.js\": \"^0.1.0\",\n    \"beaker-error-constants\": \"^1.5.0\",\n    \"beaker-index\": \"github:andrewosh/beaker-index#hyperbee-refactor\",\n    \"binary-extensions\": \"^1.13.1\",\n    \"bytes\": \"^3.1.0\",\n    \"circular-append-file\": \"^1.0.1\",\n    \"concat-stream\": \"^1.6.2\",\n    \"cross-fetch\": \"^3.0.5\",\n    \"dat-dns\": \"^3.2.1\",\n    \"dat-encoding\": \"^5.0.1\",\n    \"data-urls\": \"^1.0.0\",\n    \"diff\": \"^3.5.0\",\n    \"diff-file-tree\": \"^2.5.0\",\n    \"discovery-swarm\": \"^6.0.0\",\n    \"electron-is-accelerator\": \"^0.1.2\",\n    \"electron-updater\": \"^4.0.0\",\n    \"emit-stream\": \"^0.1.2\",\n    \"emoji-regex\": \"^8.0.0\",\n    \"fs-jetpack\": \"^1.3.1\",\n    \"fs-reverse\": \"0.0.3\",\n    \"function-queue\": \"0.0.12\",\n    \"graphql\": \"^15.3.0\",\n    \"graphql-fields\": \"^2.0.3\",\n    \"hyperdrive-daemon-client\": \"^2.0.0\",\n    \"hyperspace\": \"^3.6.1\",\n    \"icojs\": \"^0.12.3\",\n    \"identify-filetype\": \"^1.0.0\",\n    \"into-stream\": \"^3.1.0\",\n    \"isomorphic-git\": \"^1.7.4\",\n    \"keyboardevent-from-electron-accelerator\": \"^1.1.0\",\n    \"keyboardevents-areequal\": \"^0.2.2\",\n    \"knex\": \"^0.21.0\",\n    \"knex-on-conflict-do-nothing\": \"^1.0.0\",\n    \"lodash.clonedeep\": \"^4.5.0\",\n    \"lodash.debounce\": \"^4.0.8\",\n    \"lodash.difference\": \"^4.5.0\",\n    \"lodash.differenceby\": \"^4.8.0\",\n    \"lodash.flattendeep\": \"^4.4.0\",\n    \"lodash.get\": \"^4.4.2\",\n    \"lodash.groupby\": \"^4.6.0\",\n    \"lodash.isequal\": \"^4.5.0\",\n    \"lodash.pick\": \"^4.4.0\",\n    \"lodash.throttle\": \"^4.1.1\",\n    \"lodash.uniqby\": \"^4.7.0\",\n    \"lodash.uniqwith\": \"^4.5.0\",\n    \"lru\": \"^3.1.0\",\n    \"markdown-it\": \"^10.0.0\",\n    \"markdown-link-extractor\": \"^1.2.3\",\n    \"mime\": \"^1.4.0\",\n    \"mkdirp\": \"^0.5.1\",\n    \"moment\": \"^2.24.0\",\n    \"ms\": \"^2.1.2\",\n    \"nat-upnp\": \"^1.1.1\",\n    \"node-fetch\": \"^2.6.1\",\n    \"normalize-url\": \"^3.3.0\",\n    \"once\": \"^1.4.0\",\n    \"os-locale\": \"^3.1.0\",\n    \"os-name\": \"^2.0.1\",\n    \"page-metadata-parser\": \"^1.1.3\",\n    \"pauls-dat-api2\": \"^1.0.6\",\n    \"pauls-electron-rpc\": \"^7.0.1\",\n    \"pify\": \"^3.0.0\",\n    \"pretty-bytes\": \"^3.0.1\",\n    \"pretty-hash\": \"^1.0.0\",\n    \"pump\": \"^3.0.0\",\n    \"range-parser\": \"^1.2.0\",\n    \"recursive-watch\": \"^1.1.4\",\n    \"rimraf\": \"^2.6.3\",\n    \"scoped-fs\": \"^1.4.1\",\n    \"slugify\": \"^1.3.5\",\n    \"speedometer\": \"^1.0.0\",\n    \"split2\": \"^2.2.0\",\n    \"sqlite3\": \"^4.1.0\",\n    \"stream-throttle\": \"^0.1.3\",\n    \"streamx\": \"^2.6.0\",\n    \"textextensions\": \"^2.5.0\",\n    \"through2\": \"^2.0.5\",\n    \"tiny-promise-pool\": \"^1.3.1\",\n    \"to-ico\": \"^1.1.5\",\n    \"utp-native\": \"^2.1.7\",\n    \"winston\": \"github:winstonjs/winston#b4ced895b3e1ead8a616590189b003cfd9d7acca\",\n    \"yazl\": \"^2.5.1\",\n    \"yo-yo\": \"^1.4.0\"\n  }\n}\n"
  },
  {
    "path": "app/userland/README.md",
    "content": "# Userland\n\nThis folder contains frontend (aka \"fg\") code which is executed in the same environment as any userland page. This means that, unlike the code in `/app/fg`, the standard Web APIs are available (due to `webview-preload.js` being injected).\n\nEach folder in `/app/userland` is hosted at its own domain under `beaker://`. You can think of each folder being its own app. (Note: the \"viewer\" app contains multiple sub apps.)\n\nThe `beaker://app-stdlib` contains a number of components which are reused across userland apps. When possible, userland apps are not built. A build-step is used when the userland app needs to share code with beaker's internal code, as is the case for \"library\" and \"site-info.\"\n\nGenerally speaking, every app in `/app/userland` should be a candidate to be moved into hyperdrive. If there's no chance an app be may moved into a hyperdrive, it should probably be put into `/app/fg`."
  },
  {
    "path": "app/userland/app-stdlib/.gitignore",
    "content": "dat.json\n.datignore\n.DS_STORE\n"
  },
  {
    "path": "app/userland/app-stdlib/css/buttons.css",
    "content": "@import \"./reset.css\";\n@import \"./colors.css\";\n\n.link {\n  color: var(--blue);\n}\n\n.link:hover {\n  text-decoration: underline;\n}\n\n.btn.nofocus,\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: var(--text-color--default);\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer;\n  text-decoration: none;\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: var(--text-color--pretty-light);\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: var(--text-color--default);\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  outline: none;\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  line-height: 32px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default !important;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  background: #fafafa;\n}\n\n.btn[disabled=\"disabled\"] *,\n.btn.disabled *,\n.btn:disabled * {\n  cursor: default !important;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.transparent.disabled {\n  border-color: transparent !important;\n  background: none !important;\n}\n\n.btn.transparent.pressed {\n  background: linear-gradient(to top, #f5f3f3, #ececec);\n  border-color: #dadada;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n\n.btn.nofocus:focus,\nbutton.nofocus:focus {\n  outline: 0;\n  box-shadow: none;\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/css/buttons.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\nimport resetcss from './reset.css.js'\nimport colorscss from './colors.css.js'\nconst cssStr = css`\n${resetcss}\n${colorscss}\n\n.link {\n  color: var(--blue);\n}\n\n.link:hover {\n  text-decoration: underline;\n}\n\n.btn.nofocus,\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: var(--text-color--default);\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer;\n  text-decoration: none;\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: var(--text-color--pretty-light);\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: var(--color-text);\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  outline: none;\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  line-height: 32px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default !important;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  background: #fafafa;\n}\n\n.btn[disabled=\"disabled\"] *,\n.btn.disabled *,\n.btn:disabled * {\n  cursor: default !important;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.transparent.disabled {\n  border-color: transparent !important;\n  background: none !important;\n}\n\n.btn.transparent.pressed {\n  background: linear-gradient(to top, #f5f3f3, #ececec);\n  border-color: #dadada;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n\n.btn.nofocus:focus,\nbutton.nofocus:focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/buttons2.css",
    "content": "/**\n * New button styles\n * We should replace buttons.css with this\n */\nbutton {\n  --bg-color--button: #fff;\n  --bg-color--button--hover: #f5f5f5;\n  --bg-color--button--active: #eee;\n  --bg-color--button--pressed: #6d6d79;\n  --bg-color--button--disabled: #fff;\n  --bg-color--primary-button: #5289f7;\n  --bg-color--primary-button--hover: rgb(73, 126, 234);\n  --bg-color--transparent-button: transparent;\n  --bg-color--transparent-button--hover: #f5f5fa;\n  --bg-color--transparent-button--pressed: rgba(0,0,0,.1);\n  --bg-color--button-gray: #fafafa;\n  --bg-color--button-gray--hover: #f5f5f5;\n  --text-color--button: #333;\n  --text-color--button--pressed: #fff;\n  --text-color--button--disabled: #999;\n  --text-color--primary-button: #fff;\n  --border-color--button: #d4d7dc;\n  --border-color--primary-button: #2864dc;\n  --box-shadow-color--button: rgba(0,0,0,.05);\n  --box-shadow-color--button--hover: rgba(0,0,0,.5);\n  --box-shadow-color--transparent-button: rgba(0,0,0,.25);\n\n  background: var(--bg-color--button);\n  border: 1px solid var(--border-color--semi-light);\n  border-radius: 3px;\n  box-shadow: 0 1px 1px var(--box-shadow-color--button);\n  padding: 5px 10px;\n  color: var(--text-color--button);\n  outline: 0;\n  cursor: pointer;\n}\n\n@media (prefers-color-scheme: dark) {\n  button {\n    --bg-color--button: #333;\n    --bg-color--button--hover: #444;\n    --bg-color--button--active: #eee;\n    --bg-color--button--pressed: #6d6d6d;\n    --bg-color--button--disabled: #444;\n    --bg-color--primary-button: #5289f7;\n    --bg-color--primary-button--hover: rgb(73, 126, 234);\n    --bg-color--transparent-button: transparent;\n    --bg-color--transparent-button--hover: #444;\n    --bg-color--transparent-button--pressed: rgba(0,0,0,.1);\n    --bg-color--button-gray: #fafafa;\n    --bg-color--button-gray--hover: #f5f5f5;\n    --text-color--button: #ccc;\n    --text-color--button--pressed: #fff;\n    --text-color--button--disabled: #aaa;\n    --text-color--primary-button: #fff;\n    --border-color--button: #777;\n    --border-color--primary-button: #2864dc;\n    --box-shadow-color--button: rgba(0,0,0,.05);\n    --box-shadow-color--button--hover: rgba(0,0,0,.5);\n    --box-shadow-color--transparent-button: rgba(0,0,0,.25);\n  }\n}\n\nbutton:hover {\n  background: var(--bg-color--button--hover);\n}\n\nbutton:active {\n  background: var(--bg-color--button--active);\n}\n\nbutton.big {\n  padding: 6px 12px;\n}\n\nbutton.block {\n  display: block;\n  width: 100%;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px var(--box-shadow-color--button--hover);\n  background: var(--bg-color--button--pressed);\n  color: var(--text-color--button--pressed);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: var(--bg-color--primary-button);\n  border-color: var(--border-color--primary-button);\n  color: var(--text-color--primary-button);\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton.primary:hover {\n  background: var(--bg-color--primary-button--hover);\n}\n\nbutton.gray {\n  background: var(--bg-color--button-gray);\n}\n\nbutton.gray:hover {\n  background: var(--bg-color--button-gray--hover);\n}\n\nbutton[disabled] {\n  border-color: var(--border-color--semi-light) !important;\n  background: var(--bg-color--button--disabled) !important;\n  color: var(--text-color--button--disabled) !important;\n  cursor: default !important;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\nbutton.transparent {\n  background: var(--bg-color--transparent-button);\n  border-color: transparent;\n  box-shadow: none; \n}\n\nbutton.transparent[disabled] {\n  border-color: transparent !important;\n}\n\nbutton.transparent:hover {\n  background: var(--bg-color--transparent-button--hover);\n}\n\nbutton.transparent.pressed {\n  background: var(--bg-color--transparent-button--pressed);\n  box-shadow: inset 0 1px 2px var(--box-shadow-color--transparent-button);\n  color: inherit;\n}\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: var(--bg-color--button--pressed);\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: inline-flex;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/buttons2.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\nconst cssStr = css`\n/**\n * New button styles\n * We should replace buttons.css with this\n */\nbutton {\n  --bg-color--button: #fff;\n  --bg-color--button--hover: #f5f5f5;\n  --bg-color--button--active: #eee;\n  --bg-color--button--pressed: #6d6d79;\n  --bg-color--button--disabled: #fff;\n  --bg-color--primary-button: #5289f7;\n  --bg-color--primary-button--hover: rgb(73, 126, 234);\n  --bg-color--transparent-button: transparent;\n  --bg-color--transparent-button--hover: #f5f5fa;\n  --bg-color--transparent-button--pressed: rgba(0,0,0,.1);\n  --bg-color--button-gray: #fafafa;\n  --bg-color--button-gray--hover: #f5f5f5;\n  --text-color--button: #333;\n  --text-color--button--pressed: #fff;\n  --text-color--button--disabled: #999;\n  --text-color--primary-button: #fff;\n  --border-color--button: #d4d7dc;\n  --border-color--primary-button: #2864dc;\n  --box-shadow-color--button: rgba(0,0,0,.05);\n  --box-shadow-color--button--hover: rgba(0,0,0,.5);\n  --box-shadow-color--transparent-button: rgba(0,0,0,.25);\n\n  background: var(--bg-color--button);\n  border: 1px solid var(--border-color--button);\n  border-radius: 3px;\n  box-shadow: 0 1px 1px var(--box-shadow-color--button);\n  padding: 5px 10px;\n  color: var(--text-color--button);\n  outline: 0;\n  cursor: pointer;\n}\n\n@media (prefers-color-scheme: dark) {\n  button {\n    --bg-color--button: #333;\n    --bg-color--button--hover: #444;\n    --bg-color--button--active: #555;\n    --bg-color--button--pressed: #6d6d6d;\n    --bg-color--button--disabled: #444;\n    --bg-color--primary-button: #5289f7;\n    --bg-color--primary-button--hover: rgb(73, 126, 234);\n    --bg-color--transparent-button: transparent;\n    --bg-color--transparent-button--hover: #444;\n    --bg-color--transparent-button--pressed: rgba(0,0,0,.1);\n    --bg-color--button-gray: #fafafa;\n    --bg-color--button-gray--hover: #f5f5f5;\n    --text-color--button: #ccc;\n    --text-color--button--pressed: #fff;\n    --text-color--button--disabled: #aaa;\n    --text-color--primary-button: #fff;\n    --border-color--button: #777;\n    --border-color--primary-button: #2864dc;\n    --box-shadow-color--button: rgba(0,0,0,.05);\n    --box-shadow-color--button--hover: rgba(0,0,0,.5);\n    --box-shadow-color--transparent-button: rgba(0,0,0,.25);\n  }\n}\n\nbutton:hover {\n  background: var(--bg-color--button--hover);\n}\n\nbutton:active {\n  background: var(--bg-color--button--active);\n}\n\nbutton.big {\n  padding: 6px 12px;\n}\n\nbutton.block {\n  display: block;\n  width: 100%;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px var(--box-shadow-color--button--hover);\n  background: var(--bg-color--button--pressed);\n  color: var(--text-color--button--pressed);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: var(--bg-color--primary-button);\n  border-color: var(--border-color--primary-button);\n  color: var(--text-color--primary-button);\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton.primary:hover {\n  background: var(--bg-color--primary-button--hover);\n}\n\nbutton.gray {\n  background: var(--bg-color--button-gray);\n}\n\nbutton.gray:hover {\n  background: var(--bg-color--button-gray--hover);\n}\n\nbutton[disabled] {\n  border-color: var(--border-color--semi-light) !important;\n  background: var(--bg-color--button--disabled) !important;\n  color: var(--text-color--button--disabled) !important;\n  cursor: default !important;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\nbutton.transparent {\n  background: var(--bg-color--transparent-button);\n  border-color: transparent;\n  box-shadow: none; \n}\n\nbutton.transparent[disabled] {\n  border-color: transparent !important;\n}\n\nbutton.transparent:hover {\n  background: var(--bg-color--transparent-button--hover);\n}\n\nbutton.transparent.pressed {\n  background: var(--bg-color--transparent-button--pressed);\n  box-shadow: inset 0 1px 2px var(--box-shadow-color--transparent-button);\n  color: inherit;\n}\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: var(--bg-color--button--pressed);\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: inline-flex;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/colors.css",
    "content": "body {\n  --blue: #2864dc; /* this is a leftover that ought to get replaced */\n  --border-color--default: #bbc;\n  --border-color--light: #ccd;\n  --border-color--dark: #99a;\n  --border-color--semi-light: #dde;\n  --border-color--very-light: #eef;\n  --border-color--private-light: #b7c7b0;\n  --border-color--unread: #9497f5;\n  --text-color--default: #333;\n  --text-color--lightish: #555;\n  --text-color--light: #667;\n  --text-color--pretty-light: #889;\n  --text-color--very-light: #bbc;\n  --text-color--link: #4040e7;\n  --text-color--result-link: blue;\n  --text-color--markdown-link: #4040e7;\n  --text-color--private-default: #518680;\n  --text-color--private-link: #02796d;\n  --bg-color--default: #fff;\n  --bg-color--secondary: #fafafd;\n  --bg-color--light: #fafafd;\n  --bg-color--semi-light: #f0f0f6;\n  --bg-color--private-light: #f5faf7;\n  --bg-color--private-semi-light: #edf6f1;\n  --bg-color--light-highlight: #f7faff;\n  --bg-color--selected: var(--text-color--link);\n  --bg-color--unread: #f2f3ff;\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --border-color--default: #666;\n    --border-color--light: #555;\n    --border-color--dark: #888;\n    --border-color--semi-light: #444;\n    --border-color--very-light: #333;\n    --border-color--private-light: #3a5a4c;\n    --border-color--unread: #9497f5;\n    --text-color--default: #ccc;\n    --text-color--lightish: #bbb;\n    --text-color--light: #aaa;\n    --text-color--pretty-light: #999;\n    --text-color--very-light: #555;\n    --text-color--link: #5d80ff;\n    --text-color--result-link: #587bfb;\n    --text-color--markdown-link: #5d80ff;\n    --text-color--private-default: #69a59e;\n    --text-color--private-link: #04a294;\n    --bg-color--default: #222;\n    --bg-color--secondary: #1b1b1b;\n    --bg-color--light: #333;\n    --bg-color--semi-light: #444;\n    --bg-color--private-light: #202f2f;\n    --bg-color--private-semi-light: #354a48;\n    --bg-color--light-highlight: #3e3e3a;\n    --bg-color--selected: var(--text-color--link);\n    --bg-color--unread: #333658;\n  }\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/colors.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\nbody {\n  --blue: #2864dc; /* this is a leftover that ought to get replaced */\n  --border-color--default: #bbc;\n  --border-color--light: #ccd;\n  --border-color--dark: #99a;\n  --border-color--semi-light: #dde;\n  --border-color--very-light: #eef;\n  --border-color--private-light: #b7c7b0;\n  --border-color--unread: #9497f5;\n  --text-color--default: #333;\n  --text-color--lightish: #555;\n  --text-color--light: #667;\n  --text-color--pretty-light: #889;\n  --text-color--very-light: #bbc;\n  --text-color--link: #4040e7;\n  --text-color--result-link: blue;\n  --text-color--markdown-link: #4040e7;\n  --text-color--private-default: #518680;\n  --text-color--private-link: #02796d;\n  --bg-color--default: #fff;\n  --bg-color--secondary: #fafafd;\n  --bg-color--light: #fafafd;\n  --bg-color--semi-light: #f0f0f6;\n  --bg-color--private-light: #f5faf7;\n  --bg-color--private-semi-light: #edf6f1;\n  --bg-color--light-highlight: #f7faff;\n  --bg-color--unread: #f2f3ff;\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --border-color--default: #666;\n    --border-color--light: #555;\n    --border-color--dark: #888;\n    --border-color--semi-light: #444;\n    --border-color--very-light: #333;\n    --border-color--private-light: #3a5a4c;\n    --border-color--unread: #9497f5;\n    --text-color--default: #ccc;\n    --text-color--lightish: #bbb;\n    --text-color--light: #aaa;\n    --text-color--pretty-light: #999;\n    --text-color--very-light: #555;\n    --text-color--link: #5d80ff;\n    --text-color--result-link: #587bfb;\n    --text-color--markdown-link: #5d80ff;\n    --text-color--private-default: #69a59e;\n    --text-color--private-link: #04a294;\n    --bg-color--default: #222;\n    --bg-color--secondary: #1b1b1b;\n    --bg-color--light: #333;\n    --bg-color--semi-light: #444;\n    --bg-color--private-light: #202f2f;\n    --bg-color--private-semi-light: #354a48;\n    --bg-color--light-highlight: #3e3e3a;\n    --bg-color--selected: var(--text-color--link);\n    --bg-color--unread: #333658;\n  }\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/com/dropdown.css",
    "content": ".dropdown {\n  position: relative;\n\n  --text-color--dropdown-default: #333;\n  --text-color--dropdown-section: #aaa;\n  --text-color--dropdown-icon: rgba(0, 0, 0, 0.65);\n  --text-color--dropdown-btn--pressed: #dadada;\n  --text-color--title: gray;\n  --bg-color--dropdown: #fff;\n  --bg-color--dropdown-item--hover: #eee;\n  --border-color--dropdown: #dadada;\n  --border-color--dropdown-item: #eee;\n  --border-color--dropdown-section: rgba(0,0,0,.1);\n  --border-color--dropdown-separator: #ddd;\n}\n\n@media (prefers-color-scheme: dark) {\n  .dropdown {\n    --text-color--dropdown-default: #ccc;\n    --text-color--dropdown-section: #aaa;\n    --text-color--dropdown-icon: #eee;\n    --text-color--dropdown-btn--pressed: #2c2c2c;\n    --text-color--title: gray;\n    --bg-color--dropdown: #333;\n    --bg-color--dropdown-item--hover: #444;\n    --border-color--dropdown: #555;\n    --border-color--dropdown-item: #666;\n    --border-color--dropdown-section: rgba(0,0,0,.1);\n    --border-color--dropdown-separator: #ddd;\n  }\n}\n\n.dropdown.open .toggleable:not(.primary) {\n  background: var(--text-color--dropdown-btn--pressed);\n  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);\n  border-color: transparent;\n  outline: 0;\n}\n\n.toggleable-container .dropdown-items {\n  display: none;\n}\n\n.toggleable-container.hover:hover .dropdown-items,\n.toggleable-container.open .dropdown-items {\n  display: block;\n}\n\n.dropdown-items {\n  width: 270px;\n  position: absolute;\n  right: 0px;\n  z-index: 3000;\n  background: var(--bg-color--dropdown);\n  color: var(--text-color--dropdown-default);\n  border: 1px solid var(--border-color--dropdown);\n  border-radius: 0px;\n  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);\n  overflow: hidden;\n}\n\n.dropdown-items .section {\n  border-bottom: 1px solid var(--border-color--dropdown-section);\n  padding: 5px 0;\n}\n\n.dropdown-items .section-header {\n  padding: 2px 10px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.dropdown-items .section-header.light {\n  color: var(--text-color--dropdown-section);\n  font-weight: 500;\n}\n\n.dropdown-items .section-header.small {\n  font-size: 12px;\n}\n\n.dropdown-items hr {\n  border: 0;\n  border-bottom: 1px solid var(--border-color--dropdown-separator);\n}\n\n.dropdown-items.thin {\n  width: 170px;\n}\n\n.dropdown-items.wide {\n  width: 400px;\n}\n\n.dropdown-items.compact .dropdown-item {\n  padding: 2px 15px;\n  border-bottom: 0;\n}\n\n.dropdown-items.compact .description {\n  margin-left: 0;\n}\n\n.dropdown-items.compact hr {\n  margin: 5px 0;\n}\n\n.dropdown-items.roomy .dropdown-item {\n  padding: 10px 15px;\n}\n\n.dropdown-items.very-roomy .dropdown-item {\n  padding: 20px 30px;\n}\n\n.dropdown-items.rounded {\n  border-radius: 16px;\n}\n\n.dropdown-items.no-border .dropdown-item {\n  border-bottom: 0;\n}\n\n.dropdown-items.center {\n  left: 50%;\n  right: unset;\n  transform: translateX(-50%);\n}\n\n.dropdown-items.left {\n  right: initial;\n  left: 0;\n}\n\n.dropdown-items.over {\n  top: 0;\n}\n\n.dropdown-items.top {\n  bottom: calc(100% + 5px);\n}\n\n.dropdown-items.with-triangle:before {\n  content: '';\n  position: absolute;\n  top: -8px;\n  right: 10px;\n  width: 12px;\n  height: 12px;\n  z-index: 3;\n  width: 0;\n  height: 0;\n  border-left: 8px solid transparent;\n  border-right: 8px solid transparent;\n  border-bottom: 8px solid var(--bg-color--dropdown);\n}\n\n.dropdown-items.with-triangle.left:before {\n  left: 10px;\n}\n\n.dropdown-items.with-triangle.center:before {\n  left: 43%;\n}\n\n.dropdown-title {\n  border-bottom: 1px solid var(--border-color--dropdown-item);\n  padding: 2px 8px;\n  font-size: 11px;\n  color: var(--text-color--title);\n}\n\n.dropdown-item {\n  display: block;\n  padding: 7px 15px;\n  border-bottom: 1px solid var(--border-color--dropdown-item);\n}\n\n.dropdown-item.disabled {\n  opacity: 0.25;\n}\n\n.dropdown-item.no-border {\n  border-bottom: 0;\n}\n\n.dropdown-item.selected {\n  background: var(--bg-color--dropdown-item--hover);  \n}\n\n.dropdown-item:hover:not(.no-hover) {\n  background: var(--bg-color--dropdown-item--hover);\n  cursor: pointer;\n}\n\n.dropdown-item:hover:not(.no-hover) i:not(.fa-check-square) {\n  color: var(--text-color--dropdown-default);\n}\n\n.dropdown-item:hover:not(.no-hover) .description {\n  color: var(--text-color--dropdown-default);\n}\n\n.dropdown-item:hover:not(.no-hover).disabled {\n  background: inherit;\n  cursor: default;\n}\n\n.dropdown-item .fa,\n.dropdown-item i {\n  display: inline-block;\n  width: 20px;\n  color: var(--text-color--dropdown-icon);\n}\n\n.dropdown-item .fa-fw {\n  margin-left: -3px;\n  margin-right: 3px;\n}\n\n.dropdown-item img {\n  display: inline-block;\n  width: 16px;\n  position: relative;\n  top: 3px;\n  margin-right: 6px;\n}\n\n.dropdown-item .btn .fa {\n  color: inherit;\n}\n\n.dropdown-item .label {\n  font-weight: 500;\n  margin-bottom: 3px;\n}\n\n.dropdown-item .description {\n  color: var(--text-color--muted);\n  margin: 0;\n  margin-left: 23px;\n  margin-bottom: 3px;\n  line-height: 1.5;\n}\n\n.dropdown-item .description.small {\n  font-size: 12.5px;\n}\n\n.dropdown-item:first-of-type {\n  border-radius: 2px 2px 0 0;\n}\n\n.dropdown-item:last-of-type {\n  border-radius: 0 0 2px 2px;\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/com/dropdown.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.dropdown {\n  position: relative;\n\n  --text-color--dropdown-default: #333;\n  --text-color--dropdown-section: #aaa;\n  --text-color--dropdown-icon: rgba(0, 0, 0, 0.65);\n  --text-color--dropdown-btn--pressed: #dadada;\n  --text-color--title: gray;\n  --bg-color--dropdown: #fff;\n  --bg-color--dropdown-item--hover: #eee;\n  --border-color--dropdown: #dadada;\n  --border-color--dropdown-item: #eee;\n  --border-color--dropdown-section: rgba(0,0,0,.1);\n  --border-color--dropdown-separator: #ddd;\n}\n\n@media (prefers-color-scheme: dark) {\n  .dropdown {\n    --text-color--dropdown-default: #ccc;\n    --text-color--dropdown-section: #aaa;\n    --text-color--dropdown-icon: #eee;\n    --text-color--dropdown-btn--pressed: #2c2c2c;\n    --text-color--title: gray;\n    --bg-color--dropdown: #333;\n    --bg-color--dropdown-item--hover: #444;\n    --border-color--dropdown: #555;\n    --border-color--dropdown-item: #666;\n    --border-color--dropdown-section: rgba(0,0,0,.1);\n    --border-color--dropdown-separator: #ddd;\n  }\n}\n\n.dropdown.open .toggleable:not(.primary) {\n  background: var(--text-color--dropdown-btn--pressed);\n  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);\n  border-color: transparent;\n  outline: 0;\n}\n\n.toggleable-container .dropdown-items {\n  display: none;\n}\n\n.toggleable-container.hover:hover .dropdown-items,\n.toggleable-container.open .dropdown-items {\n  display: block;\n}\n\n.dropdown-items {\n  width: 270px;\n  position: absolute;\n  right: 0px;\n  z-index: 3000;\n  background: var(--bg-color--dropdown);\n  color: var(--text-color--dropdown-default);\n  border: 1px solid var(--border-color--dropdown);\n  border-radius: 0px;\n  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);\n  overflow: hidden;\n}\n\n.dropdown-items .section {\n  border-bottom: 1px solid var(--border-color--dropdown-section);\n  padding: 5px 0;\n}\n\n.dropdown-items .section-header {\n  padding: 2px 10px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.dropdown-items .section-header.light {\n  color: var(--text-color--dropdown-section);\n  font-weight: 500;\n}\n\n.dropdown-items .section-header.small {\n  font-size: 12px;\n}\n\n.dropdown-items hr {\n  border: 0;\n  border-bottom: 1px solid var(--border-color--dropdown-separator);\n}\n\n.dropdown-items.thin {\n  width: 170px;\n}\n\n.dropdown-items.wide {\n  width: 400px;\n}\n\n.dropdown-items.compact .dropdown-item {\n  padding: 2px 15px;\n  border-bottom: 0;\n}\n\n.dropdown-items.compact .description {\n  margin-left: 0;\n}\n\n.dropdown-items.compact hr {\n  margin: 5px 0;\n}\n\n.dropdown-items.roomy .dropdown-item {\n  padding: 10px 15px;\n}\n\n.dropdown-items.very-roomy .dropdown-item {\n  padding: 16px 40px 16px 20px;\n}\n\n.dropdown-items.rounded {\n  border-radius: 16px;\n}\n\n.dropdown-items.no-border .dropdown-item {\n  border-bottom: 0;\n}\n\n.dropdown-items.center {\n  left: 50%;\n  right: unset;\n  transform: translateX(-50%);\n}\n\n.dropdown-items.left {\n  right: initial;\n  left: 0;\n}\n\n.dropdown-items.over {\n  top: 0;\n}\n\n.dropdown-items.top {\n  bottom: calc(100% + 5px);\n}\n\n.dropdown-items.with-triangle:before {\n  content: '';\n  position: absolute;\n  top: -8px;\n  right: 10px;\n  width: 12px;\n  height: 12px;\n  z-index: 3;\n  width: 0;\n  height: 0;\n  border-left: 8px solid transparent;\n  border-right: 8px solid transparent;\n  border-bottom: 8px solid var(--bg-color--dropdown);\n}\n\n.dropdown-items.with-triangle.left:before {\n  left: 10px;\n}\n\n.dropdown-items.with-triangle.center:before {\n  left: 43%;\n}\n\n.dropdown-title {\n  border-bottom: 1px solid var(--border-color--dropdown-item);\n  padding: 2px 8px;\n  font-size: 11px;\n  color: var(--text-color--title);\n}\n\n.dropdown-item {\n  display: block;\n  padding: 7px 15px;\n  border-bottom: 1px solid var(--border-color--dropdown-item);\n}\n\n.dropdown-item.disabled {\n  opacity: 0.25;\n}\n\n.dropdown-item.no-border {\n  border-bottom: 0;\n}\n\n.dropdown-item.selected {\n  background: var(--bg-color--dropdown-item--hover);  \n}\n\n.dropdown-item:hover:not(.no-hover) {\n  background: var(--bg-color--dropdown-item--hover);\n  cursor: pointer;\n}\n\n.dropdown-item:hover:not(.no-hover) i:not(.fa-check-square) {\n  color: var(--text-color--dropdown-default);\n}\n\n.dropdown-item:hover:not(.no-hover) .description {\n  color: var(--text-color--dropdown-default);\n}\n\n.dropdown-item:hover:not(.no-hover).disabled {\n  background: inherit;\n  cursor: default;\n}\n\n.dropdown-item .fa,\n.dropdown-item i {\n  display: inline-block;\n  width: 20px;\n  color: var(--text-color--dropdown-icon);\n}\n\n.dropdown-item .fa-fw {\n  margin-left: -3px;\n  margin-right: 3px;\n}\n\n.dropdown-item img {\n  display: inline-block;\n  width: 16px;\n  position: relative;\n  top: 3px;\n  margin-right: 6px;\n}\n\n.dropdown-item .btn .fa {\n  color: inherit;\n}\n\n.dropdown-item .label {\n  font-weight: 500;\n  margin-bottom: 3px;\n}\n\n.dropdown-item .description {\n  color: var(--text-color--muted);\n  margin: 0;\n  margin-left: 23px;\n  margin-bottom: 3px;\n  line-height: 1.5;\n}\n\n.dropdown-item .description.small {\n  font-size: 12.5px;\n}\n\n.dropdown-item:first-of-type {\n  border-radius: 2px 2px 0 0;\n}\n\n.dropdown-item:last-of-type {\n  border-radius: 0 0 2px 2px;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/com/popups.css",
    "content": "@import \"../buttons2.css\";\n@import \"../inputs.css\";\n\n.popup-wrapper {\n  position: fixed;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 6000;\n  background: rgba(0, 0, 0, 0.45);\n  font-style: normal;\n  overflow-y: auto;\n}\n\n.popup-inner {\n  background: var(--bg-color--default);\n  box-shadow: 0 2px 25px rgba(0, 0, 0, 0.3);\n  border: 1px solid rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  width: 450px;\n  margin: 80px auto;\n  overflow: hidden;\n}\n\n.popup-inner .error {\n  color: #d80b00 !important;\n  margin: 10px 0 !important;\n  font-style: italic;\n}\n\n.popup-inner .head {\n  position: relative;\n  background: var(--bg-color--semi-light);\n  padding: 7px 12px;\n  width: 100%;\n  border-bottom: 1px solid var(--border-color--light);\n  border-radius: 4px 4px 0 0;\n}\n\n.popup-inner .head .title {\n  font-size: 0.95rem;\n  font-weight: 500;\n}\n\n.popup-inner .head .close-btn {\n  position: absolute;\n  top: 8px;\n  right: 12px;\n  cursor: pointer;\n}\n\n.popup-inner .body {\n  padding: 12px;\n}\n\n.popup-inner .body > div:not(:first-child) {\n  margin-top: 20px;\n}\n\n.popup-inner p:first-child {\n  margin-top: 0;\n}\n\n.popup-inner p:last-child {\n  margin-bottom: 0;\n}\n\n.popup-inner select {\n  height: 28px;\n}\n\n.popup-inner textarea,\n.popup-inner label:not(.checkbox-container),\n.popup-inner select,\n.popup-inner input {\n  display: block;\n  width: 100%;\n}\n\n.popup-inner label.toggle {\n  display: flex;\n  justify-content: flex-start;\n}\n\n.popup-inner label.toggle .text {\n  margin-right: 10px;\n}\n\n.popup-inner label.toggle input {\n  display: none;\n}\n\n.popup-inner label {\n  margin-bottom: 3px;\n  color: var(--text-color--light);\n}\n\n.popup-inner textarea,\n.popup-inner input {\n  margin-bottom: 10px;\n}\n\n.popup-inner textarea {\n  height: 60px;\n  resize: vertical;\n}\n\n.popup-inner .actions {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n  margin-top: 15px;\n  padding-top: 10px;\n  border-top: 1px solid var(--border-color--light);\n}\n\n.popup-inner .actions .left,\n.popup-inner .actions .link {\n  margin-right: auto;\n}\n\n.popup-inner .actions .btn,\n.popup-inner .actions .success,\n.popup-inner .actions .primary {\n  margin-left: 5px;\n}\n\n.popup-inner .actions .spinner {\n  width: 10px;\n  height: 10px;\n  border-width: 1.2px;\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/com/popups.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\nimport buttonscss from '../buttons2.css.js'\nimport inputscss from '../inputs.css.js'\nconst cssStr = css`\n${buttonscss}\n${inputscss}\n\n.popup-wrapper {\n  position: fixed;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 6000;\n  background: rgba(0, 0, 0, 0.45);\n  font-style: normal;\n  overflow-y: auto;\n}\n\n.popup-inner {\n  background: var(--bg-color--default);\n  box-shadow: 0 2px 25px rgba(0, 0, 0, 0.3);\n  border: 1px solid rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  width: 450px;\n  margin: 80px auto;\n  overflow: hidden;\n}\n\n.popup-inner .error {\n  color: #d80b00 !important;\n  margin: 10px 0 !important;\n  font-style: italic;\n}\n\n.popup-inner .head {\n  position: relative;\n  background: var(--bg-color--semi-light);\n  padding: 7px 12px;\n  width: 100%;\n  border-bottom: 1px solid var(--border-color--light);\n  border-radius: 4px 4px 0 0;\n}\n\n.popup-inner .head .title {\n  font-size: 0.95rem;\n  font-weight: 500;\n}\n\n.popup-inner .head .close-btn {\n  position: absolute;\n  top: 8px;\n  right: 12px;\n  cursor: pointer;\n}\n\n.popup-inner .body {\n  padding: 12px;\n}\n\n.popup-inner .body > div:not(:first-child) {\n  margin-top: 20px;\n}\n\n.popup-inner p:first-child {\n  margin-top: 0;\n}\n\n.popup-inner p:last-child {\n  margin-bottom: 0;\n}\n\n.popup-inner select {\n  height: 28px;\n}\n\n.popup-inner textarea,\n.popup-inner label:not(.checkbox-container),\n.popup-inner select,\n.popup-inner input {\n  display: block;\n  width: 100%;\n}\n\n.popup-inner label.toggle {\n  display: flex;\n  justify-content: flex-start;\n}\n\n.popup-inner label.toggle .text {\n  margin-right: 10px;\n}\n\n.popup-inner label.toggle input {\n  display: none;\n}\n\n.popup-inner label {\n  margin-bottom: 3px;\n  color: var(--text-color--light);\n}\n\n.popup-inner textarea,\n.popup-inner input {\n  margin-bottom: 10px;\n}\n\n.popup-inner textarea {\n  height: 60px;\n  resize: vertical;\n}\n\n.popup-inner .actions {\n  display: flex;\n  justify-content: flex-end;\n  align-items: center;\n  margin-top: 15px;\n  padding-top: 10px;\n  border-top: 1px solid var(--border-color--light);\n}\n\n.popup-inner .actions .left,\n.popup-inner .actions .link {\n  margin-right: auto;\n}\n\n.popup-inner .actions .btn,\n.popup-inner .actions .success,\n.popup-inner .actions .primary {\n  margin-left: 5px;\n}\n\n.popup-inner .actions .spinner {\n  width: 10px;\n  height: 10px;\n  border-width: 1.2px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/com/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/com/spinner.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/com/toast.css",
    "content": ".toast-wrapper {\n  position: fixed;\n  top: 20px;\n  right: 20px;\n  z-index: 20000;\n  transition: opacity 0.1s ease;\n}\n.toast-wrapper.hidden {\n  opacity: 0;\n}\n.toast {\n  position: relative;\n  min-width: 350px;\n  max-width: 450px;\n  background: #ddd;\n  margin: 0;\n  padding: 10px 15px;\n  border-radius: 4px;\n  font-size: 16px;\n  color: #fff;\n  background: rgba(0, 0, 0, 0.75);\n  -webkit-font-smoothing: antialiased;\n  font-weight: 600;\n}\n.toast.error {\n  padding-left: 38px;\n}\n.toast.success {\n  padding-left: 48px;\n}\n.toast.success:before,\n.toast.error:before {\n  position: absolute;\n  left: 18px;\n  top: 5px;\n  display: block;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-size: 22px;\n  font-weight: bold;\n}\n.toast.primary {\n  background: var(--color-blue);\n}\n.toast.success {\n  background: #26b33e;\n}\n.toast.success:before {\n  content: '✓';\n}\n.toast.error {\n  background: #c72e25;\n}\n.toast.error:before {\n  content: '!';\n}\n.toast .toast-btn {\n  position: absolute;\n  right: 15px;\n  color: inherit;\n  text-decoration: underline;\n  cursor: pointer;\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/com/toast.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n:host {\n  --toast-min-width: 350px;\n  --toast-padding: 10px 15px;\n  --toast-font-size: 16px;\n}\n\n.toast-wrapper {\n  position: fixed;\n  top: 20px;\n  right: 20px;\n  z-index: 20000;\n  transition: opacity 0.1s ease;\n}\n.toast-wrapper.hidden {\n  opacity: 0;\n}\n.toast {\n  position: relative;\n  min-width: var(--toast-min-width);\n  max-width: 450px;\n  background: #ddd;\n  margin: 0;\n  padding: var(--toast-padding);\n  border-radius: 4px;\n  font-size: var(--toast-font-size);\n  color: #fff;\n  background: rgba(0, 0, 0, 0.75);\n  -webkit-font-smoothing: antialiased;\n  font-weight: 600;\n}\n.toast.error {\n  padding-left: 38px;\n}\n.toast.success {\n  padding-left: 48px;\n}\n.toast.success:before,\n.toast.error:before {\n  position: absolute;\n  left: 18px;\n  top: 5px;\n  display: block;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-size: 22px;\n  font-weight: bold;\n}\n.toast.primary {\n  background: var(--color-blue);\n}\n.toast.success {\n  background: #26b33e;\n}\n.toast.success:before {\n  content: '✓';\n}\n.toast.error {\n  background: #c72e25;\n}\n.toast.error:before {\n  content: '!';\n}\n.toast .toast-btn {\n  position: absolute;\n  right: 15px;\n  color: inherit;\n  text-decoration: underline;\n  cursor: pointer;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/common.css",
    "content": "@import \"./reset.css\";\n@import \"./colors.css\";\n@import \"./typography.css\";\n@import \"./buttons.css\";\n@import \"./inputs.css\";\n\nbody {\n  background: var(--bg-color--default);\n  color: var(--text-color--default);\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/common.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\nimport resetcss from './reset.css.js'\nimport typographycss from './typography.css.js'\nimport buttonscss from './buttons.css.js'\nimport inputscss from './inputs.css.js'\nconst cssStr = css`\n${resetcss}\n${typographycss}\n${buttonscss}\n${inputscss}\n\nbody {\n  background: #f5f5f7;\n  color: #333;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/fontawesome.css",
    "content": ".fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-bacon:before{content:\"\\f7e5\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-medical:before{content:\"\\f7e6\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-bread-slice:before{content:\"\\f7ec\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-cheese:before{content:\"\\f7ef\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clinic-medical:before{content:\"\\f7f2\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-medical:before{content:\"\\f7f5\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-crutch:before{content:\"\\f7f7\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-egg:before{content:\"\\f7fb\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hamburger:before{content:\"\\f805\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-middle-finger:before{content:\"\\f806\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hard-hat:before{content:\"\\f807\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-haykal:before{content:\"\\f666\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotdog:before{content:\"\\f80f\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-ice-cream:before{content:\"\\f810\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laptop-medical:before{content:\"\\f812\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-nintendo-switch:before{content:\"\\f418\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-pager:before{content:\"\\f815\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-pepper-hot:before{content:\"\\f816\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-pizza-slice:before{content:\"\\f818\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-trash-restore:before{content:\"\\f829\"}.fa-trash-restore-alt:before{content:\"\\f82a\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-nurse:before{content:\"\\f82f\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:\"Font Awesome 5 Brands\";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.woff) format(\"woff\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\"),url(../webfonts/fa-brands-400.svg#fontawesome) format(\"svg\")}.fab{font-family:\"Font Awesome 5 Brands\"}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.woff) format(\"woff\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\"),url(../webfonts/fa-regular-400.svg#fontawesome) format(\"svg\")}.far{font-weight:400}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.woff) format(\"woff\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\"),url(../webfonts/fa-solid-900.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:\"Font Awesome 5 Free\"}.fa,.fas{font-weight:900}"
  },
  {
    "path": "app/userland/app-stdlib/css/fontawesome.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-bacon:before{content:\"\\f7e5\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-medical:before{content:\"\\f7e6\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-bread-slice:before{content:\"\\f7ec\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-cheese:before{content:\"\\f7ef\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clinic-medical:before{content:\"\\f7f2\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-medical:before{content:\"\\f7f5\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-crutch:before{content:\"\\f7f7\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-egg:before{content:\"\\f7fb\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hamburger:before{content:\"\\f805\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-middle-finger:before{content:\"\\f806\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hard-hat:before{content:\"\\f807\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-haykal:before{content:\"\\f666\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotdog:before{content:\"\\f80f\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-ice-cream:before{content:\"\\f810\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laptop-medical:before{content:\"\\f812\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-nintendo-switch:before{content:\"\\f418\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-pager:before{content:\"\\f815\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-pepper-hot:before{content:\"\\f816\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-pizza-slice:before{content:\"\\f818\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-trash-restore:before{content:\"\\f829\"}.fa-trash-restore-alt:before{content:\"\\f82a\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-nurse:before{content:\"\\f82f\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:\"Font Awesome 5 Brands\";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.woff) format(\"woff\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\"),url(../webfonts/fa-brands-400.svg#fontawesome) format(\"svg\")}.fab{font-family:\"Font Awesome 5 Brands\"}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.woff) format(\"woff\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\"),url(../webfonts/fa-regular-400.svg#fontawesome) format(\"svg\")}.far{font-weight:400}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.woff) format(\"woff\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\"),url(../webfonts/fa-solid-900.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:\"Font Awesome 5 Free\"}.fa,.fas{font-weight:900}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/inputs.css",
    "content": "textarea {\n  line-height: 1.4;\n}\n\ninput,\ntextarea {\n  border-radius: 4px;\n  color: var(--text-color--default);\n  background: var(--bg-color--default);\n  border: 1px solid #d9d9d9;\n  box-sizing: border-box;\n}\ntextarea {\n  padding: 7px;\n}\n\ninput[type=\"checkbox\"],\ntextarea[type=\"checkbox\"],\ninput[type=\"radio\"],\ntextarea[type=\"radio\"],\ninput[type=\"range\"],\ntextarea[type=\"range\"] {\n  padding: 0;\n}\n\ninput[type=\"checkbox\"]:focus,\ntextarea[type=\"checkbox\"]:focus,\ninput[type=\"radio\"]:focus,\ntextarea[type=\"radio\"]:focus,\ninput[type=\"range\"]:focus,\ntextarea[type=\"range\"]:focus {\n  box-shadow: none;\n}\n\ninput[type=\"radio\"],\ntextarea[type=\"radio\"] {\n  width: 14px;\n  height: 14px;\n  outline: none;\n  -webkit-appearance: none;\n  border-radius: 50%;\n  cursor: pointer;\n  transition: border 0.1s ease;\n}\n\ninput[type=\"radio\"]:hover,\ntextarea[type=\"radio\"]:hover {\n  border: 1px solid var(--blue);\n}\n\ninput[type=\"radio\"]:checked,\ntextarea[type=\"radio\"]:checked {\n  border: 4.5px solid var(--blue);\n}\n\ninput[type=\"file\"],\ntextarea[type=\"file\"] {\n  padding: 0;\n  border: 0;\n  line-height: 1;\n}\n\ninput[type=\"file\"]:focus,\ntextarea[type=\"file\"]:focus {\n  border: 0;\n  box-shadow: none;\n}\n\ninput:focus,\ntextarea:focus,\nselect:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput.error,\ntextarea.error,\nselect.error {\n  border: 1px solid rgba(209, 48, 39, 0.75);\n}\n\ninput.error:focus,\ntextarea.error:focus,\nselect.error:focus {\n  box-shadow: 0 0 0 2px rgba(204, 47, 38, 0.15);\n}\n\ninput.nofocus:focus,\ntextarea.nofocus:focus,\nselect.nofocus:focus {\n  outline: 0;\n  box-shadow: none;\n  border: initial;\n}\n\ninput.inline {\n  height: auto;\n  border: 1px solid transparent;\n  border-radius: 0;\n  background: transparent;\n  cursor: text;\n  padding: 3px 5px;\n  line-height: 1;\n}\n\ninput.big,\ntextarea.big {\n  height: 38px;\n  padding: 0 10px;\n  font-size: 14px;\n}\n\ntextarea.big {\n  padding: 5px 10px;\n}\n\ninput.huge,\ntextarea.huge {\n  height: 40px;\n  padding: 0 10px;\n  font-size: 18px;\n}\n\ntextarea.huge {\n  padding: 5px 10px;\n}\n\ninput.inline:focus,\ninput.inline:hover {\n  border: 1px solid #ccc;\n  box-shadow: none;\n}\n\ninput.inline:focus {\n  background: #fff;\n}\n\n.input-file-picker {\n  display: flex;\n  align-items: center;\n  padding: 3px;\n  border-radius: 2px;\n  border: 1px solid #d9d9d9;\n  color: var(--text-color--pretty-light);\n}\n\n.input-file-picker span {\n  flex: 1;\n  padding-left: 3px;\n}\n\n::-webkit-input-placeholder {\n  color: var(--text-color--pretty-light);\n}\n\n.big::-webkit-input-placeholder,\n.huge::-webkit-input-placeholder {\n  font-size: 0.9em;\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\nlabel.required:after {\n  content: '*';\n  color: red;\n}\n\n.toggle {\n  display: flex;\n  align-items: center;\n  flex-direction: row;\n  margin-bottom: 10px;\n  cursor: pointer;\n  overflow: initial;\n}\n\n.toggle .switch {\n  margin-right: 10px;\n}\n\n.toggle * {\n  cursor: pointer;\n}\n\n.toggle.disabled {\n  cursor: default;\n}\n\n.toggle.disabled * {\n  cursor: default;\n}\n\n.toggle input {\n  display: none;\n}\n\n.toggle .text {\n  font-weight: 400;\n}\n\n.toggle .switch {\n  display: inline-block;\n  position: relative;\n  width: 32px;\n  height: 17px;\n}\n\n.toggle .switch:before,\n.toggle .switch:after {\n  position: absolute;\n  display: block;\n  content: '';\n}\n\n.toggle .switch:before {\n  width: 100%;\n  height: 100%;\n  border-radius: 40px;\n  background: #dadada;\n}\n\n.toggle .switch:after {\n  width: 11px;\n  height: 11px;\n  border-radius: 50%;\n  left: 3px;\n  top: 3px;\n  background: #fafafa;\n  transition: transform 0.15s ease;\n}\n\n.toggle input:checked:not(:disabled) + .switch:before {\n  background: #41b855;\n}\n\n.toggle input:checked:not(:disabled) + .switch:after {\n  transform: translateX(15px);\n}\n\n.toggle.disabled {\n  color: var(--text-color--pretty-light);\n}\n\nlabel.checkbox-container {\n  display: flex;\n  align-items: center;\n  height: 15px;\n  font-weight: 400;\n}\n\nlabel.checkbox-container input[type=\"checkbox\"] {\n  width: 15px;\n  height: 15px;\n  margin: 0 5px 0 0;\n}\n\n"
  },
  {
    "path": "app/userland/app-stdlib/css/inputs.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\ntextarea {\n  line-height: 1.4;\n}\n\ninput,\ntextarea {\n  border-radius: 4px;\n  color: var(--text-color--default);\n  background: var(--bg-color--default);\n  border: 1px solid var(--border-color--light);\n  box-sizing: border-box;\n}\ntextarea {\n  padding: 7px;\n}\n\ninput[type=\"checkbox\"],\ntextarea[type=\"checkbox\"],\ninput[type=\"radio\"],\ntextarea[type=\"radio\"],\ninput[type=\"range\"],\ntextarea[type=\"range\"] {\n  padding: 0;\n}\n\ninput[type=\"checkbox\"]:focus,\ntextarea[type=\"checkbox\"]:focus,\ninput[type=\"radio\"]:focus,\ntextarea[type=\"radio\"]:focus,\ninput[type=\"range\"]:focus,\ntextarea[type=\"range\"]:focus {\n  box-shadow: none;\n}\n\ninput[type=\"radio\"],\ntextarea[type=\"radio\"] {\n  width: 14px;\n  height: 14px;\n  outline: none;\n  -webkit-appearance: none;\n  border-radius: 50%;\n  cursor: pointer;\n  transition: border 0.1s ease;\n}\n\ninput[type=\"radio\"]:hover,\ntextarea[type=\"radio\"]:hover {\n  border: 1px solid var(--blue);\n}\n\ninput[type=\"radio\"]:checked,\ntextarea[type=\"radio\"]:checked {\n  border: 4.5px solid var(--blue);\n}\n\ninput[type=\"file\"],\ntextarea[type=\"file\"] {\n  padding: 0;\n  border: 0;\n  line-height: 1;\n}\n\ninput[type=\"file\"]:focus,\ntextarea[type=\"file\"]:focus {\n  border: 0;\n  box-shadow: none;\n}\n\ninput:focus,\ntextarea:focus,\nselect:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput.error,\ntextarea.error,\nselect.error {\n  border: 1px solid rgba(209, 48, 39, 0.75);\n}\n\ninput.error:focus,\ntextarea.error:focus,\nselect.error:focus {\n  box-shadow: 0 0 0 2px rgba(204, 47, 38, 0.15);\n}\n\ninput.nofocus:focus,\ntextarea.nofocus:focus,\nselect.nofocus:focus {\n  outline: 0;\n  box-shadow: none;\n  border: initial;\n}\n\ninput.inline {\n  height: auto;\n  border: 1px solid transparent;\n  border-radius: 0;\n  background: transparent;\n  cursor: text;\n  padding: 3px 5px;\n  line-height: 1;\n}\n\ninput.big,\ntextarea.big {\n  height: 38px;\n  padding: 0 10px;\n  font-size: 14px;\n}\n\ntextarea.big {\n  padding: 5px 10px;\n}\n\ninput.huge,\ntextarea.huge {\n  height: 40px;\n  padding: 0 10px;\n  font-size: 18px;\n}\n\ntextarea.huge {\n  padding: 5px 10px;\n}\n\ninput.inline:focus,\ninput.inline:hover {\n  border: 1px solid #ccc;\n  box-shadow: none;\n}\n\ninput.inline:focus {\n  background: #fff;\n}\n\n.input-file-picker {\n  display: flex;\n  align-items: center;\n  padding: 3px;\n  border-radius: 2px;\n  border: 1px solid #d9d9d9;\n  color: var(--text-color--pretty-light);\n}\n\n.input-file-picker span {\n  flex: 1;\n  padding-left: 3px;\n}\n\n::-webkit-input-placeholder {\n  color: var(--text-color--pretty-light);\n}\n\n.big::-webkit-input-placeholder,\n.huge::-webkit-input-placeholder {\n  font-size: 0.9em;\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\nlabel.required:after {\n  content: '*';\n  color: red;\n}\n\n.toggle {\n  display: flex;\n  align-items: center;\n  flex-direction: row;\n  margin-bottom: 10px;\n  cursor: pointer;\n  overflow: initial;\n}\n\n.toggle .switch {\n  margin-right: 10px;\n}\n\n.toggle * {\n  cursor: pointer;\n}\n\n.toggle.disabled {\n  cursor: default;\n}\n\n.toggle.disabled * {\n  cursor: default;\n}\n\n.toggle input {\n  display: none;\n}\n\n.toggle .text {\n  font-weight: 400;\n}\n\n.toggle .switch {\n  display: inline-block;\n  position: relative;\n  width: 32px;\n  height: 17px;\n}\n\n.toggle .switch:before,\n.toggle .switch:after {\n  position: absolute;\n  display: block;\n  content: '';\n}\n\n.toggle .switch:before {\n  width: 100%;\n  height: 100%;\n  border-radius: 40px;\n  background: #dadada;\n}\n\n.toggle .switch:after {\n  width: 11px;\n  height: 11px;\n  border-radius: 50%;\n  left: 3px;\n  top: 3px;\n  background: #fafafa;\n  transition: transform 0.15s ease;\n}\n\n.toggle input:checked:not(:disabled) + .switch:before {\n  background: #41b855;\n}\n\n.toggle input:checked:not(:disabled) + .switch:after {\n  transform: translateX(15px);\n}\n\n.toggle.disabled {\n  color: var(--text-color--pretty-light);\n}\n\nlabel.checkbox-container {\n  display: flex;\n  align-items: center;\n  height: 15px;\n  font-weight: 400;\n}\n\nlabel.checkbox-container input[type=\"checkbox\"] {\n  width: 15px;\n  height: 15px;\n  margin: 0 5px 0 0;\n}\n\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/markdown.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.markdown :-webkit-any(h1, h2, h3, h4, h5) {\n  font-family: arial;\n}\n.markdown pre { font-size: 13px; }\n.markdown :-webkit-any(video, audio, img) { max-width: 100%; }\n.markdown a { color: var(--text-color--markdown-link); }\n.markdown hr { border: 0; border-bottom: 1px solid var(--border-color--semi-light); }\n.markdown blockquote {\n  border-left: 10px solid var(--bg-color--semi-light);\n  margin: 0 0 0.6em;\n  padding: 10px 0px 10px 20px;\n  color: var(--text-color--light);\n}\n.subject-content .markdown blockquote + blockquote {\n  margin-top: -14px;\n}\n.subject-content .markdown blockquote p {\n  margin: 0;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/reset.css",
    "content": "*,\n*:before,\n*:after {\n  box-sizing: border-box;\n}\n\nbody {\n  margin: 0;\n}\n\na {\n  text-decoration: none;\n  color: inherit;\n}\n\nbutton {\n  background: none;\n  outline-color: transparent;\n  border: none;\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/css/reset.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n*,\n*:before,\n*:after {\n  box-sizing: border-box;\n}\n\nbody {\n  margin: 0;\n}\n\na {\n  text-decoration: none;\n  color: inherit;\n}\n\nbutton {\n  background: none;\n  outline-color: transparent;\n  border: none;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/tooltip.css",
    "content": "*[data-tooltip] {\n  position: relative;\n}\n\n*[data-tooltip]:hover:before,\n*[data-tooltip]:hover:after {\n  display: block;\n  z-index: 1000;\n  transition: opacity 0.01s ease;\n  transition-delay: 0.2s;\n}\n\n*[data-tooltip]:hover:after {\n  opacity: 1;\n}\n\n*[data-tooltip]:hover:before {\n  transform: translate(-50%, 0);\n  opacity: 1;\n}\n\n*[data-tooltip]:before {\n  opacity: 0;\n  transform: translate(-50%, 0);\n  position: absolute;\n  top: 33px;\n  left: 50%;\n  z-index: 3000;\n  content: attr(data-tooltip);\n  background: rgba(17, 17, 17, 0.95);\n  font-size: 0.7rem;\n  border: 0;\n  border-radius: 4px;\n  padding: 7px 10px;\n  color: rgba(255, 255, 255, 0.925);\n  text-transform: none;\n  text-align: center;\n  font-weight: 500;\n  white-space: pre;\n  line-height: 1;\n  pointer-events: none;\n}\n\n*[data-tooltip]:after {\n  opacity: 0;\n  position: absolute;\n  left: calc(50% - 6px);\n  top: 28px;\n  content: '';\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid rgba(17, 17, 17, 0.95);\n  pointer-events: none;\n}\n\n.tooltip-nodelay[data-tooltip]:hover:before,\n.tooltip-nodelay[data-tooltip]:hover:after {\n  transition-delay: initial;\n}\n\n.tooltip-right[data-tooltip]:before {\n  top: 50%;\n  left: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-right[data-tooltip]:after {\n  top: 50%;\n  left: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-right: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-left[data-tooltip]:before {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-left[data-tooltip]:after {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-left: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-top[data-tooltip]:before {\n  top: unset;\n  bottom: 33px;\n}\n\n.tooltip-top[data-tooltip]:after {\n  top: unset;\n  bottom: 28px;\n  border: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 6px solid rgba(17, 17, 17, 0.95);\n}"
  },
  {
    "path": "app/userland/app-stdlib/css/tooltip.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n*[data-tooltip] {\n  position: relative;\n}\n\n*[data-tooltip]:hover:before,\n*[data-tooltip]:hover:after {\n  display: block;\n  z-index: 1000;\n  transition: opacity 0.01s ease;\n  transition-delay: 0.2s;\n}\n\n*[data-tooltip]:hover:after {\n  opacity: 1;\n}\n\n*[data-tooltip]:hover:before {\n  transform: translate(-50%, 0);\n  opacity: 1;\n}\n\n*[data-tooltip]:before {\n  opacity: 0;\n  transform: translate(-50%, 0);\n  position: absolute;\n  top: 33px;\n  left: 50%;\n  z-index: 3000;\n  content: attr(data-tooltip);\n  background: rgba(17, 17, 17, 0.95);\n  font-size: 0.7rem;\n  border: 0;\n  border-radius: 4px;\n  padding: 7px 10px;\n  color: rgba(255, 255, 255, 0.925);\n  text-transform: none;\n  text-align: center;\n  font-weight: 500;\n  white-space: pre;\n  line-height: 1;\n  pointer-events: none;\n}\n\n*[data-tooltip]:after {\n  opacity: 0;\n  position: absolute;\n  left: calc(50% - 6px);\n  top: 28px;\n  content: '';\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid rgba(17, 17, 17, 0.95);\n  pointer-events: none;\n}\n\n.tooltip-nodelay[data-tooltip]:hover:before,\n.tooltip-nodelay[data-tooltip]:hover:after {\n  transition-delay: initial;\n}\n\n.tooltip-right[data-tooltip]:before {\n  top: 50%;\n  left: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-right[data-tooltip]:after {\n  top: 50%;\n  left: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-right: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-left[data-tooltip]:before {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-left[data-tooltip]:after {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-left: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-top[data-tooltip]:before {\n  top: unset;\n  bottom: 33px;\n}\n\n.tooltip-top[data-tooltip]:after {\n  top: unset;\n  bottom: 28px;\n  border: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 6px solid rgba(17, 17, 17, 0.95);\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/css/typography.css",
    "content": "body {\n  --system-font: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  --code-font: Consolas, 'Lucida Console', Monaco, monospace;\n}\n\nbody {\n  font-family: var(--system-font);\n}\n\ncode {\n  font-family: var(--code-font);\n  font-style: normal;\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/css/typography.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\nbody {\n  --system-font: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  --code-font: Consolas, 'Lucida Console', Monaco, monospace;\n}\n\nbody {\n  font-family: var(--system-font);\n}\n\ncode {\n  font-family: var(--code-font);\n  font-style: normal;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/app-stdlib/data/emoji-list.js",
    "content": "\nexport const SUGGESTED = [\n  '❤',\n  '👀',\n  '🔥',\n  '🎉',\n  '✨',\n  '🆒',\n  '🙂',\n  '😂',\n  '😅',\n  '😢',\n  '😐',\n  '😮',\n  '😡',\n  '😤',\n  '🤭',\n  '🤔',\n  '🤨',\n  '🤯',\n  '👍',\n  '👎',\n  '👆',\n  '👏',\n  '🙌',\n  '🙏',\n  '👋',\n  '💪',\n  '💅',\n  '✊',\n  '👌',\n  '🤘'\n]\n\nexport const GROUPS = [\n  {\n    'name': 'Smileys & Emotion',\n    'emojis': [\n      '😀',\n      '😃',\n      '😄',\n      '😁',\n      '😆',\n      '😅',\n      '🤣',\n      '😂',\n      '🙂',\n      '🙃',\n      '😉',\n      '😊',\n      '😇',\n      '🥰',\n      '😍',\n      '🤩',\n      '😘',\n      '😗',\n      '😚',\n      '😙',\n      '😋',\n      '😛',\n      '😜',\n      '🤪',\n      '😝',\n      '🤑',\n      '🤗',\n      '🤭',\n      '🤫',\n      '🤔',\n      '🤐',\n      '🤨',\n      '😐',\n      '😑',\n      '😶',\n      '😏',\n      '😒',\n      '🙄',\n      '😬',\n      '🤥',\n      '😌',\n      '😔',\n      '😪',\n      '🤤',\n      '😴',\n      '😷',\n      '🤒',\n      '🤕',\n      '🤢',\n      '🤮',\n      '🤧',\n      '🥵',\n      '🥶',\n      '🥴',\n      '😵',\n      '🤯',\n      '🤠',\n      '🥳',\n      '😎',\n      '🤓',\n      '🧐',\n      '😕',\n      '😟',\n      '🙁',\n      '☹️',\n      '😮',\n      '😯',\n      '😲',\n      '😳',\n      '🥺',\n      '😦',\n      '😧',\n      '😨',\n      '😰',\n      '😥',\n      '😢',\n      '😭',\n      '😱',\n      '😖',\n      '😣',\n      '😞',\n      '😓',\n      '😩',\n      '😫',\n      '😤',\n      '😡',\n      '😠',\n      '🤬',\n      '😈',\n      '👿',\n      '💀',\n      '☠️',\n      '💩',\n      '🤡',\n      '👹',\n      '👺',\n      '👻',\n      '👽',\n      '👾',\n      '🤖',\n      '😺',\n      '😸',\n      '😹',\n      '😻',\n      '😼',\n      '😽',\n      '🙀',\n      '😿',\n      '😾',\n      '🙈',\n      '🙉',\n      '🙊',\n      '💋',\n      '💌',\n      '💘',\n      '💝',\n      '💖',\n      '💗',\n      '💓',\n      '💞',\n      '💕',\n      '💟',\n      '❣️',\n      '💔',\n      '❤️',\n      '🧡',\n      '💛',\n      '💚',\n      '💙',\n      '💜',\n      '🖤',\n      '💯',\n      '💢',\n      '💥',\n      '💫',\n      '💦',\n      '💨',\n      '🕳️',\n      '💣',\n      '💬',\n      '👁️‍🗨️',\n      '🗨️',\n      '🗯️',\n      '💭',\n      '💤'\n    ]\n  },\n  {\n    'name': 'People & Body',\n    'emojis': [\n      '👋',\n      '🤚',\n      '🖐️',\n      '🖐',\n      '✋',\n      '🖖',\n      '👌',\n      '✌️',\n      '✌',\n      '🤞',\n      '🤟',\n      '🤘',\n      '🤙',\n      '👈',\n      '👉',\n      '👆',\n      '👇',\n      '☝️',\n      '☝',\n      '👍',\n      '👎',\n      '✊',\n      '👊',\n      '🤛',\n      '🤜',\n      '👏',\n      '🙌',\n      '👐',\n      '🤲',\n      '🤝',\n      '🙏',\n      '✍️',\n      '✍',\n      '💅',\n      '🤳',\n      '💪',\n      '🦵',\n      '🦶',\n      '👂',\n      '👃',\n      '🧠',\n      '🦷',\n      '🦴',\n      '👀',\n      '👁️',\n      '👅',\n      '👄',\n      '👶',\n      '🧒',\n      '👦',\n      '👧',\n      '🧑',\n      '👱',\n      '👨',\n      '🧔',\n      '👩',\n      '🧓',\n      '👴',\n      '👵',\n      '🙍',\n      '🙎',\n      '🙅',\n      '🙆',\n      '💁',\n      '🙋',\n      '🙇',\n      '🤦',\n      '🤷',\n      '👨‍⚕️',\n      '👩‍⚕️',\n      '👨‍🎓',\n      '👩‍🎓',\n      '👨‍🏫',\n      '👩‍🏫',\n      '👨‍⚖️',\n      '👩‍⚖️',\n      '👨‍🌾',\n      '👩‍🌾',\n      '👨‍🍳',\n      '👩‍🍳',\n      '👨‍🔧',\n      '👩‍🔧',\n      '👨‍🏭',\n      '👩‍🏭',\n      '👨‍💼',\n      '👩‍💼',\n      '👨‍🔬',\n      '👩‍🔬',\n      '👨‍💻',\n      '👩‍💻',\n      '👨‍🎤',\n      '👩‍🎤',\n      '👨‍🎨',\n      '👩‍🎨',\n      '👨‍✈️',\n      '👩‍✈️',\n      '👨‍🚀',\n      '👩‍🚀',\n      '👨‍🚒',\n      '👩‍🚒',\n      '👮',\n      '🕵️',\n      '🕵',\n      '💂',\n      '👷',\n      '🤴',\n      '👸',\n      '👳',\n      '👲',\n      '🧕',\n      '🤵',\n      '👰',\n      '🤰',\n      '🤱',\n      '👼',\n      '🎅',\n      '🤶',\n      '🧙',\n      '🧚',\n      '🧛',\n      '🧜',\n      '🧝',\n      '🧞',\n      '🧟',\n      '💆',\n      '💇',\n      '🚶',\n      '🏃',\n      '💃',\n      '🕺',\n      '🕴️',\n      '🕴',\n      '👯',\n      '🧖',\n      '🧗',\n      '🤺',\n      '🏇',\n      '⛷️',\n      '🏂',\n      '🏌️',\n      '🏌',\n      '🏄',\n      '🚣',\n      '🏊',\n      '⛹️',\n      '⛹',\n      '🏋️',\n      '🏋',\n      '🚴',\n      '🚵',\n      '🤸',\n      '🤼',\n      '🤽',\n      '🤾',\n      '🤹',\n      '🧘',\n      '🛀',\n      '🛌',\n      '👭',\n      '👫',\n      '👬',\n      '💏',\n      '👪',\n      '👨‍👩‍👦',\n      '👨‍👩‍👧',\n      '👨‍👩‍👧‍👦',\n      '👨‍👩‍👦‍👦',\n      '👨‍👩‍👧‍👧',\n      '👨‍👨‍👦',\n      '👨‍👨‍👧',\n      '👨‍👨‍👧‍👦',\n      '👨‍👨‍👦‍👦',\n      '👨‍👨‍👧‍👧',\n      '👩‍👩‍👦',\n      '👩‍👩‍👧',\n      '👩‍👩‍👧‍👦',\n      '👩‍👩‍👦‍👦',\n      '👩‍👩‍👧‍👧',\n      '👨‍👦',\n      '👨‍👦‍👦',\n      '👨‍👧',\n      '👨‍👧‍👦',\n      '👨‍👧‍👧',\n      '👩‍👦',\n      '👩‍👦‍👦',\n      '👩‍👧',\n      '👩‍👧‍👦',\n      '👩‍👧‍👧',\n      '🗣️',\n      '👤',\n      '👥',\n      '👣'\n    ]\n  },\n  {\n    'name': 'Animals & Nature',\n    'emojis': [\n      '🐵',\n      '🐒',\n      '🦍',\n      '🐶',\n      '🐕',\n      '🐩',\n      '🐺',\n      '🦊',\n      '🦝',\n      '🐱',\n      '🐈',\n      '🦁',\n      '🐯',\n      '🐅',\n      '🐆',\n      '🐴',\n      '🐎',\n      '🦄',\n      '🦓',\n      '🦌',\n      '🐮',\n      '🐂',\n      '🐃',\n      '🐄',\n      '🐷',\n      '🐖',\n      '🐗',\n      '🐽',\n      '🐏',\n      '🐑',\n      '🐐',\n      '🐪',\n      '🐫',\n      '🦙',\n      '🦒',\n      '🐘',\n      '🦏',\n      '🦛',\n      '🐭',\n      '🐁',\n      '🐀',\n      '🐹',\n      '🐰',\n      '🐇',\n      '🐿️',\n      '🦔',\n      '🦇',\n      '🐻',\n      '🐨',\n      '🐼',\n      '🦘',\n      '🦡',\n      '🐾',\n      '🦃',\n      '🐔',\n      '🐓',\n      '🐣',\n      '🐤',\n      '🐥',\n      '🐦',\n      '🐧',\n      '🕊️',\n      '🦅',\n      '🦆',\n      '🦢',\n      '🦉',\n      '🦚',\n      '🦜',\n      '🐸',\n      '🐊',\n      '🐢',\n      '🦎',\n      '🐍',\n      '🐲',\n      '🐉',\n      '🦕',\n      '🦖',\n      '🐳',\n      '🐋',\n      '🐬',\n      '🐟',\n      '🐠',\n      '🐡',\n      '🦈',\n      '🐙',\n      '🐚',\n      '🐌',\n      '🦋',\n      '🐛',\n      '🐜',\n      '🐝',\n      '🐞',\n      '🦗',\n      '🕷️',\n      '🕸️',\n      '🦂',\n      '🦟',\n      '🦠',\n      '💐',\n      '🌸',\n      '💮',\n      '🏵️',\n      '🌹',\n      '🥀',\n      '🌺',\n      '🌻',\n      '🌼',\n      '🌷',\n      '🌱',\n      '🌲',\n      '🌳',\n      '🌴',\n      '🌵',\n      '🌾',\n      '🌿',\n      '☘️',\n      '🍀',\n      '🍁',\n      '🍂',\n      '🍃'\n    ]\n  },\n  {\n    'name': 'Food & Drink',\n    'emojis': [\n      '🍇',\n      '🍈',\n      '🍉',\n      '🍊',\n      '🍋',\n      '🍌',\n      '🍍',\n      '🥭',\n      '🍎',\n      '🍏',\n      '🍐',\n      '🍑',\n      '🍒',\n      '🍓',\n      '🥝',\n      '🍅',\n      '🥥',\n      '🥑',\n      '🍆',\n      '🥔',\n      '🥕',\n      '🌽',\n      '🌶️',\n      '🥒',\n      '🥬',\n      '🥦',\n      '🍄',\n      '🥜',\n      '🌰',\n      '🍞',\n      '🥐',\n      '🥖',\n      '🥨',\n      '🥯',\n      '🥞',\n      '🧀',\n      '🍖',\n      '🍗',\n      '🥩',\n      '🥓',\n      '🍔',\n      '🍟',\n      '🍕',\n      '🌭',\n      '🥪',\n      '🌮',\n      '🌯',\n      '🥙',\n      '🥚',\n      '🍳',\n      '🥘',\n      '🍲',\n      '🥣',\n      '🥗',\n      '🍿',\n      '🧂',\n      '🥫',\n      '🍱',\n      '🍘',\n      '🍙',\n      '🍚',\n      '🍛',\n      '🍜',\n      '🍝',\n      '🍠',\n      '🍢',\n      '🍣',\n      '🍤',\n      '🍥',\n      '🥮',\n      '🍡',\n      '🥟',\n      '🥠',\n      '🥡',\n      '🦀',\n      '🦞',\n      '🦐',\n      '🦑',\n      '🍦',\n      '🍧',\n      '🍨',\n      '🍩',\n      '🍪',\n      '🎂',\n      '🍰',\n      '🧁',\n      '🥧',\n      '🍫',\n      '🍬',\n      '🍭',\n      '🍮',\n      '🍯',\n      '🍼',\n      '🥛',\n      '☕',\n      '🍵',\n      '🍶',\n      '🍾',\n      '🍷',\n      '🍸',\n      '🍹',\n      '🍺',\n      '🍻',\n      '🥂',\n      '🥃',\n      '🥤',\n      '🥢',\n      '🍽️',\n      '🍴',\n      '🥄',\n      '🏺'\n    ]\n  },\n  {\n    'name': 'Travel & Places',\n    'emojis': [\n      '🌍',\n      '🌎',\n      '🌏',\n      '🌐',\n      '🗺️',\n      '🗾',\n      '🧭',\n      '🏔️',\n      '⛰️',\n      '🌋',\n      '🗻',\n      '🏕️',\n      '🏖️',\n      '🏜️',\n      '🏝️',\n      '🏞️',\n      '🏟️',\n      '🏛️',\n      '🏗️',\n      '🧱',\n      '🏘️',\n      '🏚️',\n      '🏠',\n      '🏡',\n      '🏢',\n      '🏣',\n      '🏤',\n      '🏥',\n      '🏦',\n      '🏨',\n      '🏩',\n      '🏪',\n      '🏫',\n      '🏬',\n      '🏭',\n      '🏯',\n      '🏰',\n      '💒',\n      '🗼',\n      '🗽',\n      '⛪',\n      '🕌',\n      '🕍',\n      '⛩️',\n      '🕋',\n      '⛲',\n      '⛺',\n      '🌁',\n      '🌃',\n      '🏙️',\n      '🌄',\n      '🌅',\n      '🌆',\n      '🌇',\n      '🌉',\n      '♨️',\n      '🎠',\n      '🎡',\n      '🎢',\n      '💈',\n      '🎪',\n      '🚂',\n      '🚃',\n      '🚄',\n      '🚅',\n      '🚆',\n      '🚇',\n      '🚈',\n      '🚉',\n      '🚊',\n      '🚝',\n      '🚞',\n      '🚋',\n      '🚌',\n      '🚍',\n      '🚎',\n      '🚐',\n      '🚑',\n      '🚒',\n      '🚓',\n      '🚔',\n      '🚕',\n      '🚖',\n      '🚗',\n      '🚘',\n      '🚙',\n      '🚚',\n      '🚛',\n      '🚜',\n      '🏎️',\n      '🏍️',\n      '🛵',\n      '🚲',\n      '🛴',\n      '🛹',\n      '🚏',\n      '🛣️',\n      '🛤️',\n      '🛢️',\n      '⛽',\n      '🚨',\n      '🚥',\n      '🚦',\n      '🛑',\n      '🚧',\n      '⚓',\n      '⛵',\n      '🛶',\n      '🚤',\n      '🛳️',\n      '⛴️',\n      '🛥️',\n      '🚢',\n      '✈️',\n      '🛩️',\n      '🛫',\n      '🛬',\n      '💺',\n      '🚁',\n      '🚟',\n      '🚠',\n      '🚡',\n      '🛰️',\n      '🚀',\n      '🛸',\n      '🛎️',\n      '🧳',\n      '⌛',\n      '⏳',\n      '⌚',\n      '⏰',\n      '⏱️',\n      '⏲️',\n      '🕰️',\n      '🕛',\n      '🕧',\n      '🕐',\n      '🕜',\n      '🕑',\n      '🕝',\n      '🕒',\n      '🕞',\n      '🕓',\n      '🕟',\n      '🕔',\n      '🕠',\n      '🕕',\n      '🕡',\n      '🕖',\n      '🕢',\n      '🕗',\n      '🕣',\n      '🕘',\n      '🕤',\n      '🕙',\n      '🕥',\n      '🕚',\n      '🕦',\n      '🌑',\n      '🌒',\n      '🌓',\n      '🌔',\n      '🌕',\n      '🌖',\n      '🌗',\n      '🌘',\n      '🌙',\n      '🌚',\n      '🌛',\n      '🌜',\n      '🌡️',\n      '☀️',\n      '🌝',\n      '🌞',\n      '⭐',\n      '🌟',\n      '🌠',\n      '🌌',\n      '☁️',\n      '⛅',\n      '⛈️',\n      '🌤️',\n      '🌥️',\n      '🌦️',\n      '🌧️',\n      '🌨️',\n      '🌩️',\n      '🌪️',\n      '🌫️',\n      '🌬️',\n      '🌀',\n      '🌈',\n      '🌂',\n      '☂️',\n      '☔',\n      '⛱️',\n      '⚡',\n      '❄️',\n      '☃️',\n      '⛄',\n      '☄️',\n      '🔥',\n      '💧',\n      '🌊'\n    ]\n  },\n  {\n    'name': 'Activities',\n    'emojis': [\n      '🎃',\n      '🎄',\n      '🎆',\n      '🎇',\n      '🧨',\n      '✨',\n      '🎈',\n      '🎉',\n      '🎊',\n      '🎋',\n      '🎍',\n      '🎎',\n      '🎏',\n      '🎐',\n      '🎑',\n      '🧧',\n      '🎀',\n      '🎁',\n      '🎗️',\n      '🎟️',\n      '🎫',\n      '🎖️',\n      '🏆',\n      '🏅',\n      '🥇',\n      '🥈',\n      '🥉',\n      '⚽',\n      '⚾',\n      '🥎',\n      '🏀',\n      '🏐',\n      '🏈',\n      '🏉',\n      '🎾',\n      '🥏',\n      '🎳',\n      '🏏',\n      '🏑',\n      '🏒',\n      '🥍',\n      '🏓',\n      '🏸',\n      '🥊',\n      '🥋',\n      '🥅',\n      '⛳',\n      '⛸️',\n      '🎣',\n      '🎽',\n      '🎿',\n      '🛷',\n      '🥌',\n      '🎯',\n      '🎱',\n      '🔮',\n      '🧿',\n      '🎮',\n      '🕹️',\n      '🎰',\n      '🎲',\n      '🧩',\n      '🧸',\n      '♠️',\n      '♥️',\n      '♦️',\n      '♣️',\n      '♟️',\n      '🃏',\n      '🀄',\n      '🎴',\n      '🎭',\n      '🖼️',\n      '🎨',\n      '🧵',\n      '🧶'\n    ]\n  },\n  {\n    'name': 'Objects',\n    'emojis': [\n      '👓',\n      '🕶️',\n      '🥽',\n      '🥼',\n      '👔',\n      '👕',\n      '👖',\n      '🧣',\n      '🧤',\n      '🧥',\n      '🧦',\n      '👗',\n      '👘',\n      '👙',\n      '👚',\n      '👛',\n      '👜',\n      '👝',\n      '🛍️',\n      '🎒',\n      '👞',\n      '👟',\n      '🥾',\n      '🥿',\n      '👠',\n      '👡',\n      '👢',\n      '👑',\n      '👒',\n      '🎩',\n      '🎓',\n      '🧢',\n      '⛑️',\n      '📿',\n      '💄',\n      '💍',\n      '💎',\n      '🔇',\n      '🔈',\n      '🔉',\n      '🔊',\n      '📢',\n      '📣',\n      '📯',\n      '🔔',\n      '🔕',\n      '🎼',\n      '🎵',\n      '🎶',\n      '🎙️',\n      '🎚️',\n      '🎛️',\n      '🎤',\n      '🎧',\n      '📻',\n      '🎷',\n      '🎸',\n      '🎹',\n      '🎺',\n      '🎻',\n      '🥁',\n      '📱',\n      '📲',\n      '☎️',\n      '📞',\n      '📟',\n      '📠',\n      '🔋',\n      '🔌',\n      '💻',\n      '🖥️',\n      '🖨️',\n      '⌨️',\n      '🖱️',\n      '🖲️',\n      '💽',\n      '💾',\n      '💿',\n      '📀',\n      '🧮',\n      '🎥',\n      '🎞️',\n      '📽️',\n      '🎬',\n      '📺',\n      '📷',\n      '📸',\n      '📹',\n      '📼',\n      '🔍',\n      '🔎',\n      '🕯️',\n      '💡',\n      '🔦',\n      '🏮',\n      '📔',\n      '📕',\n      '📖',\n      '📗',\n      '📘',\n      '📙',\n      '📚',\n      '📓',\n      '📒',\n      '📃',\n      '📜',\n      '📄',\n      '📰',\n      '🗞️',\n      '📑',\n      '🔖',\n      '🏷️',\n      '💰',\n      '💴',\n      '💵',\n      '💶',\n      '💷',\n      '💸',\n      '💳',\n      '🧾',\n      '💹',\n      '💱',\n      '💲',\n      '✉️',\n      '📧',\n      '📨',\n      '📩',\n      '📤',\n      '📥',\n      '📦',\n      '📫',\n      '📪',\n      '📬',\n      '📭',\n      '📮',\n      '🗳️',\n      '✏️',\n      '✒️',\n      '🖋️',\n      '🖊️',\n      '🖌️',\n      '🖍️',\n      '📝',\n      '💼',\n      '📁',\n      '📂',\n      '🗂️',\n      '📅',\n      '📆',\n      '🗒️',\n      '🗓️',\n      '📇',\n      '📈',\n      '📉',\n      '📊',\n      '📋',\n      '📌',\n      '📍',\n      '📎',\n      '🖇️',\n      '📏',\n      '📐',\n      '✂️',\n      '🗃️',\n      '🗄️',\n      '🗑️',\n      '🔒',\n      '🔓',\n      '🔏',\n      '🔐',\n      '🔑',\n      '🗝️',\n      '🔨',\n      '⛏️',\n      '⚒️',\n      '🛠️',\n      '⚔️',\n      '🏹',\n      '🛡️',\n      '🔧',\n      '🔩',\n      '⚙️',\n      '🗜️',\n      '⚖️',\n      '🔗',\n      '⛓️',\n      '🧰',\n      '🧲',\n      '⚗️',\n      '🧪',\n      '🧫',\n      '🧬',\n      '🔬',\n      '🔭',\n      '📡',\n      '💉',\n      '💊',\n      '🚪',\n      '🛏️',\n      '🛋️',\n      '🚽',\n      '🚿',\n      '🛁',\n      '🧴',\n      '🧷',\n      '🧹',\n      '🧺',\n      '🧻',\n      '🧼',\n      '🧽',\n      '🧯',\n      '🛒',\n      '🚬',\n      '⚰️',\n      '⚱️',\n      '🗿'\n    ]\n  },\n  {\n    'name': 'Symbols',\n    'emojis': [\n      '🏧',\n      '🚮',\n      '🚰',\n      '♿',\n      '🚹',\n      '🚺',\n      '🚻',\n      '🚼',\n      '🚾',\n      '🛂',\n      '🛃',\n      '🛄',\n      '🛅',\n      '⚠️',\n      '🚸',\n      '⛔',\n      '🚫',\n      '🚳',\n      '🚭',\n      '🚯',\n      '🚱',\n      '🚷',\n      '📵',\n      '🔞',\n      '☢️',\n      '☣️',\n      '⬆️',\n      '↗️',\n      '➡️',\n      '↘️',\n      '⬇️',\n      '↙️',\n      '⬅️',\n      '↖️',\n      '↕️',\n      '↔️',\n      '↩️',\n      '↪️',\n      '⤴️',\n      '⤵️',\n      '🔃',\n      '🔄',\n      '🔙',\n      '🔚',\n      '🔛',\n      '🔜',\n      '🔝',\n      '🛐',\n      '⚛️',\n      '🕉️',\n      '✡️',\n      '☸️',\n      '☯️',\n      '✝️',\n      '☦️',\n      '☪️',\n      '☮️',\n      '🕎',\n      '🔯',\n      '♈',\n      '♉',\n      '♊',\n      '♋',\n      '♌',\n      '♍',\n      '♎',\n      '♏',\n      '♐',\n      '♑',\n      '♒',\n      '♓',\n      '⛎',\n      '🔀',\n      '🔁',\n      '🔂',\n      '▶️',\n      '⏩',\n      '⏭️',\n      '⏯️',\n      '◀️',\n      '⏪',\n      '⏮️',\n      '🔼',\n      '⏫',\n      '🔽',\n      '⏬',\n      '⏸️',\n      '⏹️',\n      '⏺️',\n      '⏏️',\n      '🎦',\n      '🔅',\n      '🔆',\n      '📶',\n      '📳',\n      '📴',\n      '♀️',\n      '♂️',\n      '⚕️',\n      '♾️',\n      '♻️',\n      '⚜️',\n      '🔱',\n      '📛',\n      '🔰',\n      '⭕',\n      '✅',\n      '☑️',\n      '✔️',\n      '✖️',\n      '❌',\n      '❎',\n      '➕',\n      '➖',\n      '➗',\n      '➰',\n      '➿',\n      '〽️',\n      '✳️',\n      '✴️',\n      '❇️',\n      '‼️',\n      '⁉️',\n      '❓',\n      '❔',\n      '❕',\n      '❗',\n      '〰️',\n      '©️',\n      '®️',\n      '™️',\n      '#️⃣',\n      '*️⃣',\n      '0️⃣',\n      '1️⃣',\n      '2️⃣',\n      '3️⃣',\n      '4️⃣',\n      '5️⃣',\n      '6️⃣',\n      '7️⃣',\n      '8️⃣',\n      '9️⃣',\n      '🔟',\n      '🔠',\n      '🔡',\n      '🔢',\n      '🔣',\n      '🔤',\n      '🅰️',\n      '🆎',\n      '🅱️',\n      '🆑',\n      '🆒',\n      '🆓',\n      'ℹ️',\n      '🆔',\n      'Ⓜ️',\n      '🆕',\n      '🆖',\n      '🅾️',\n      '🆗',\n      '🅿️',\n      '🆘',\n      '🆙',\n      '🆚',\n      '🈁',\n      '🈂️',\n      '🈷️',\n      '🈶',\n      '🈯',\n      '🉐',\n      '🈹',\n      '🈚',\n      '🈲',\n      '🉑',\n      '🈸',\n      '🈴',\n      '🈳',\n      '㊗️',\n      '㊙️',\n      '🈺',\n      '🈵',\n      '🔴',\n      '🔵',\n      '⚫',\n      '⚪',\n      '⬛',\n      '⬜',\n      '◼️',\n      '◻️',\n      '◾',\n      '◽',\n      '▪️',\n      '▫️',\n      '🔶',\n      '🔷',\n      '🔸',\n      '🔹',\n      '🔺',\n      '🔻',\n      '💠',\n      '🔘',\n      '🔳',\n      '🔲'\n    ]\n  },\n  {\n    'name': 'Flags',\n    'emojis': [\n      '🏁',\n      '🚩',\n      '🎌',\n      '🏴',\n      '🏳️',\n      '🏳️‍🌈',\n      '🇦🇨',\n      '🇦🇩',\n      '🇦🇪',\n      '🇦🇫',\n      '🇦🇬',\n      '🇦🇮',\n      '🇦🇱',\n      '🇦🇲',\n      '🇦🇴',\n      '🇦🇶',\n      '🇦🇷',\n      '🇦🇸',\n      '🇦🇹',\n      '🇦🇺',\n      '🇦🇼',\n      '🇦🇽',\n      '🇦🇿',\n      '🇧🇦',\n      '🇧🇧',\n      '🇧🇩',\n      '🇧🇪',\n      '🇧🇫',\n      '🇧🇬',\n      '🇧🇭',\n      '🇧🇮',\n      '🇧🇯',\n      '🇧🇱',\n      '🇧🇲',\n      '🇧🇳',\n      '🇧🇴',\n      '🇧🇶',\n      '🇧🇷',\n      '🇧🇸',\n      '🇧🇹',\n      '🇧🇻',\n      '🇧🇼',\n      '🇧🇾',\n      '🇧🇿',\n      '🇨🇦',\n      '🇨🇨',\n      '🇨🇩',\n      '🇨🇫',\n      '🇨🇬',\n      '🇨🇭',\n      '🇨🇮',\n      '🇨🇰',\n      '🇨🇱',\n      '🇨🇲',\n      '🇨🇳',\n      '🇨🇴',\n      '🇨🇵',\n      '🇨🇷',\n      '🇨🇺',\n      '🇨🇻',\n      '🇨🇼',\n      '🇨🇽',\n      '🇨🇾',\n      '🇨🇿',\n      '🇩🇪',\n      '🇩🇬',\n      '🇩🇯',\n      '🇩🇰',\n      '🇩🇲',\n      '🇩🇴',\n      '🇩🇿',\n      '🇪🇦',\n      '🇪🇨',\n      '🇪🇪',\n      '🇪🇬',\n      '🇪🇭',\n      '🇪🇷',\n      '🇪🇸',\n      '🇪🇹',\n      '🇪🇺',\n      '🇫🇮',\n      '🇫🇯',\n      '🇫🇰',\n      '🇫🇲',\n      '🇫🇴',\n      '🇫🇷',\n      '🇬🇦',\n      '🇬🇧',\n      '🇬🇩',\n      '🇬🇪',\n      '🇬🇫',\n      '🇬🇬',\n      '🇬🇭',\n      '🇬🇮',\n      '🇬🇱',\n      '🇬🇲',\n      '🇬🇳',\n      '🇬🇵',\n      '🇬🇶',\n      '🇬🇷',\n      '🇬🇸',\n      '🇬🇹',\n      '🇬🇺',\n      '🇬🇼',\n      '🇬🇾',\n      '🇭🇰',\n      '🇭🇲',\n      '🇭🇳',\n      '🇭🇷',\n      '🇭🇹',\n      '🇭🇺',\n      '🇮🇨',\n      '🇮🇩',\n      '🇮🇪',\n      '🇮🇱',\n      '🇮🇲',\n      '🇮🇳',\n      '🇮🇴',\n      '🇮🇶',\n      '🇮🇷',\n      '🇮🇸',\n      '🇮🇹',\n      '🇯🇪',\n      '🇯🇲',\n      '🇯🇴',\n      '🇯🇵',\n      '🇰🇪',\n      '🇰🇬',\n      '🇰🇭',\n      '🇰🇮',\n      '🇰🇲',\n      '🇰🇳',\n      '🇰🇵',\n      '🇰🇷',\n      '🇰🇼',\n      '🇰🇾',\n      '🇰🇿',\n      '🇱🇦',\n      '🇱🇧',\n      '🇱🇨',\n      '🇱🇮',\n      '🇱🇰',\n      '🇱🇷',\n      '🇱🇸',\n      '🇱🇹',\n      '🇱🇺',\n      '🇱🇻',\n      '🇱🇾',\n      '🇲🇦',\n      '🇲🇨',\n      '🇲🇩',\n      '🇲🇪',\n      '🇲🇫',\n      '🇲🇬',\n      '🇲🇭',\n      '🇲🇰',\n      '🇲🇱',\n      '🇲🇲',\n      '🇲🇳',\n      '🇲🇴',\n      '🇲🇵',\n      '🇲🇶',\n      '🇲🇷',\n      '🇲🇸',\n      '🇲🇹',\n      '🇲🇺',\n      '🇲🇻',\n      '🇲🇼',\n      '🇲🇽',\n      '🇲🇾',\n      '🇲🇿',\n      '🇳🇦',\n      '🇳🇨',\n      '🇳🇪',\n      '🇳🇫',\n      '🇳🇬',\n      '🇳🇮',\n      '🇳🇱',\n      '🇳🇴',\n      '🇳🇵',\n      '🇳🇷',\n      '🇳🇺',\n      '🇳🇿',\n      '🇴🇲',\n      '🇵🇦',\n      '🇵🇪',\n      '🇵🇫',\n      '🇵🇬',\n      '🇵🇭',\n      '🇵🇰',\n      '🇵🇱',\n      '🇵🇲',\n      '🇵🇳',\n      '🇵🇷',\n      '🇵🇸',\n      '🇵🇹',\n      '🇵🇼',\n      '🇵🇾',\n      '🇶🇦',\n      '🇷🇪',\n      '🇷🇴',\n      '🇷🇸',\n      '🇷🇺',\n      '🇷🇼',\n      '🇸🇦',\n      '🇸🇧',\n      '🇸🇨',\n      '🇸🇩',\n      '🇸🇪',\n      '🇸🇬',\n      '🇸🇭',\n      '🇸🇮',\n      '🇸🇯',\n      '🇸🇰',\n      '🇸🇱',\n      '🇸🇲',\n      '🇸🇳',\n      '🇸🇴',\n      '🇸🇷',\n      '🇸🇸',\n      '🇸🇹',\n      '🇸🇻',\n      '🇸🇽',\n      '🇸🇾',\n      '🇸🇿',\n      '🇹🇦',\n      '🇹🇨',\n      '🇹🇩',\n      '🇹🇫',\n      '🇹🇬',\n      '🇹🇭',\n      '🇹🇯',\n      '🇹🇰',\n      '🇹🇱',\n      '🇹🇲',\n      '🇹🇳',\n      '🇹🇴',\n      '🇹🇷',\n      '🇹🇹',\n      '🇹🇻',\n      '🇹🇼',\n      '🇹🇿',\n      '🇺🇦',\n      '🇺🇬',\n      '🇺🇲',\n      '🇺🇳',\n      '🇺🇸',\n      '🇺🇾',\n      '🇺🇿',\n      '🇻🇦',\n      '🇻🇨',\n      '🇻🇪',\n      '🇻🇬',\n      '🇻🇮',\n      '🇻🇳',\n      '🇻🇺',\n      '🇼🇫',\n      '🇼🇸',\n      '🇽🇰',\n      '🇾🇪',\n      '🇾🇹',\n      '🇿🇦',\n      '🇿🇲',\n      '🇿🇼',\n      '🏴󠁧󠁢󠁥󠁮󠁧󠁿',\n      '🏴󠁧󠁢󠁳󠁣󠁴󠁿',\n      '🏴󠁧󠁢󠁷󠁬󠁳󠁿'\n    ]\n  }\n]\n\nexport const FULL_LIST = GROUPS.map(({emojis}) => emojis).reduce((acc, v) => acc.concat(v), [])\n"
  },
  {
    "path": "app/userland/app-stdlib/js/clipboard.js",
    "content": "export function writeToClipboard (str) {\n  var textarea = document.createElement('textarea')\n  textarea.textContent = str\n  document.body.appendChild(textarea)\n  textarea.select()\n  document.execCommand('copy')\n  document.body.removeChild(textarea)\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/com/context-menu.js",
    "content": "import {LitElement, html, css} from '../../vendor/lit-element/lit-element.js'\nimport {classMap} from '../../vendor/lit-element/lit-html/directives/class-map.js'\nimport {ifDefined} from '../../vendor/lit-element/lit-html/directives/if-defined.js'\nimport {findParent} from '../dom.js'\nimport dropdownCSS from '../../css/com/dropdown.css.js'\n\n// globals\n// =\n\nvar resolve\n\n// exported api\n// =\n\n// create a new context menu\n// - returns a promise that will resolve to undefined when the menu goes away\n// - example usage:\n/*\ncreate({\n  // where to put the menu\n  x: e.clientX,\n  y: e.clientY,\n\n  // align edge to right instead of left\n  right: true,\n\n  // use triangle\n  withTriangle: true,\n\n  // roomy style\n  roomy: true,\n\n  // no borders on items\n  noBorders: false,\n\n  // additional styles on dropdown-items\n  style: 'font-size: 14px',\n\n  // parent element to append to\n  parent: document.body,\n\n  // url to fontawesome css\n  fontAwesomeCSSUrl: '/css/font-awesome.css',\n\n  // menu items\n  items: [\n    // icon from font-awesome\n    {icon: 'fa fa-link', label: 'Copy link', click: () => writeToClipboard('...')}\n  ]\n\n  // instead of items, can give render()\n  render () {\n    return html`\n      <img src=\"smile.png\" onclick=${contextMenu.destroy} />\n    `\n  }\n}\n*/\nexport function create (opts) {\n  // destroy any existing\n  destroy()\n\n  // extract attrs\n  var parent = opts.parent || document.body\n\n  // render interface\n  parent.appendChild(new BeakerContextMenu(opts))\n  document.addEventListener('keyup', onKeyUp)\n  document.addEventListener('click', onClickAnywhere)\n\n  // return promise\n  return new Promise(_resolve => {\n    resolve = _resolve\n  })\n}\n\nexport function destroy (value) {\n  const el = document.querySelector('beaker-context-menu')\n  if (el) {\n    el.parentNode.removeChild(el)\n    document.removeEventListener('keyup', onKeyUp)\n    document.removeEventListener('click', onClickAnywhere)\n    resolve(value)\n  }\n}\n\n// global event handlers\n// =\n\nfunction onKeyUp (e) {\n  e.preventDefault()\n  e.stopPropagation()\n\n  if (e.keyCode === 27) {\n    destroy()\n  }\n}\n\nfunction onClickAnywhere (e) {\n  if (!findParent(e.target, el => el.tagName === 'BEAKER-CONTEXT-MENU')) {\n    // click is outside the context-menu, destroy\n    destroy()\n  }\n}\n\n// internal\n// =\n\nexport class BeakerContextMenu extends LitElement {\n  constructor ({x, y, right, center, top, withTriangle, roomy, veryRoomy, rounded, noBorders, style, items, fontAwesomeCSSUrl, render}) {\n    super()\n    this.x = x\n    this.y = y\n    this.right = right || false\n    this.center = center || false\n    this.top = top || false\n    this.withTriangle = withTriangle || false\n    this.roomy = roomy || false\n    this.veryRoomy = veryRoomy || false\n    this.rounded = rounded || false\n    this.noBorders = noBorders || false\n    this.customStyle = style || undefined\n    this.items = items\n    this.fontAwesomeCSSUrl = fontAwesomeCSSUrl || '/vendor/beaker-app-stdlib/css/fontawesome.css'\n    this.customRender = render\n  }\n\n  // calls the global destroy\n  // (this function exists so that custom renderers can destroy with this.destroy)\n  destroy () {\n    destroy()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const cls = classMap({\n      'dropdown-items': true,\n      right: this.right,\n      center: this.center,\n      left: !this.right,\n      top: this.top,\n      'with-triangle': this.withTriangle,\n      roomy: this.roomy,\n      'very-roomy': this.veryRoomy,\n      rounded: this.rounded,\n      'no-border': this.noBorders\n    })\n    var style = ''\n    if (this.x) style += `left: ${this.x}px; `\n    if (this.y) style += `top: ${this.y}px; `\n    return html`\n      ${this.fontAwesomeCSSUrl ? html`<link rel=\"stylesheet\" href=\"${this.fontAwesomeCSSUrl}\">` : ''}\n      <div class=\"context-menu dropdown\" style=\"${style}\">\n        ${this.customRender\n          ? this.customRender.call(this)\n          : html`\n            <div class=\"${cls}\" style=\"${ifDefined(this.customStyle)}\">\n              ${this.items.map(item => {\n                if (item === '-') {\n                  return html`<hr />`\n                }\n                if (item.type === 'html') {\n                  return item\n                }\n                var icon = item.icon\n                if (typeof icon === 'string' && !icon.includes(' ')) {\n                  icon = 'fa fa-' + icon\n                }\n                if (item.disabled) {\n                  return html`\n                    <div class=\"dropdown-item disabled\">\n                      ${icon !== false ? html`<i class=\"${icon}\"></i>` : ''}\n                      ${item.label}\n                    </div>\n                  `\n                }\n                if (item.href) {\n                  return html`\n                    <a class=\"dropdown-item ${item.selected ? 'selected' : ''}\" href=${item.href}>\n                      ${icon !== false ? html`<i class=\"${icon}\"></i>` : ''}\n                      ${item.label}\n                    </a>\n                  `\n                }\n                return html`\n                  <div class=\"dropdown-item ${item.selected ? 'selected' : ''}\" @click=${() => { destroy(); item.click() }}>\n                    ${typeof icon === 'string'\n                      ? html`<i class=\"${icon}\"></i>`\n                      : icon ? icon : ''}\n                    ${item.label}\n                  </div>\n                `\n              })}\n            </div>`\n        }\n      </div>`\n  }\n}\n\nBeakerContextMenu.styles = css`\n${dropdownCSS}\n\n.context-menu {\n  position: fixed;\n  z-index: 10000;\n}\n\n.dropdown-items {\n  width: auto;\n  white-space: nowrap;\n}\n\na.dropdown-item {\n  color: inherit;\n  text-decoration: none;\n}\n\n.dropdown-item,\n.dropdown-items.roomy .dropdown-item {\n  padding-right: 30px; /* add a little cushion to the right */\n}\n\n/* custom icon css */\n.fa-long-arrow-alt-right.custom-link-icon {\n  position: relative;\n  transform: rotate(-45deg);\n  left: 1px;\n}\n.fa-custom-path-icon:after {\n  content: './';\n  letter-spacing: -1px;\n  font-family: var(--code-font);\n}\n`\n\ncustomElements.define('beaker-context-menu', BeakerContextMenu)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/hover-card.js",
    "content": "import {LitElement, html, css} from '../../vendor/lit-element/lit-element.js'\n\n/*\nUsage:\n\n<beaker-hover-card>\n  <span slot=\"el\" class=\"fas fa-info-circle\"></span>\n  <div slot=\"card\"><strong>Discovery Key:</strong> ${toHex(core.discoveryKey)}</div></div>\n</beaker-hover-card>\n*/\n\nexport class Hoverable extends LitElement {\n  static get properties () {\n    return {\n      isHovered: {type: Boolean}\n    }\n  }\n\n  static get styles () {\n    return css`\n    :host {\n      position: relative;\n    }\n\n    .hovercard {\n      position: absolute;\n      top: 100%;\n      left: 50%;\n      transform: translateX(-50%);\n      border: 1px solid var(--border-color--default);\n      background: var(--bg-color--default);\n      border-radius: 4px;\n      padding: 8px 10px;\n    }\n    `\n  }\n\n  constructor () {\n    super()\n    this.isHovered = false\n    this.addEventListener('mouseenter', this.onMouseenter.bind(this))\n    this.addEventListener('mouseleave', this.onMouseleave.bind(this))\n  }\n\n  render () {\n    if (this.isHovered) {\n      return html`\n        <slot name=\"el\"></slot>\n        <div class=\"hovercard\">\n          <slot name=\"card\"></slot>\n        </div>\n      `\n    }\n    return html`<slot name=\"el\"></slot>`\n  }\n\n  onMouseenter () {\n    this.isHovered = true\n  }\n\n  onMouseleave () {\n    this.isHovered = false\n  }\n}\n\ncustomElements.define('beaker-hover-card', Hoverable)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/hoverable.js",
    "content": "import {LitElement, html} from '../../vendor/lit-element/lit-element.js'\n\n/*\nUsage:\n\n<beaker-hoverable>\n  <button class=\"btn\" slot=\"default\">Hover me!</button>\n  <button class=\"btn\" slot=\"hover\">I'm hovered!</button>\n</beaker-hoverable>\n*/\n\nexport class Hoverable extends LitElement {\n  static get properties () {\n    return {\n      isHovered: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.isHovered = false\n  }\n\n  render () {\n    if (this.isHovered) {\n      return html`<span @mouseleave=${this.onMouseleave}><slot name=\"hover\"></slot></span>`\n    }\n    return html`<span @mouseenter=${this.onMouseenter}><slot name=\"default\"></slot></span>`\n  }\n\n  onMouseenter () {\n    this.isHovered = true\n\n    // HACK\n    // sometimes, if the mouse cursor leaves too quickly, 'mouseleave' doesn't get fired\n    // after a few ms, double check that it's still hovered\n    // -prf\n    setTimeout(() => {\n      if (!this.querySelector(':hover')) {\n        this.isHovered = false\n      }\n    }, 50)\n  }\n\n  onMouseleave () {\n    this.isHovered = false\n  }\n}\n\ncustomElements.define('beaker-hoverable', Hoverable)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/img-fallbacks.js",
    "content": "import {LitElement, html} from '../../vendor/lit-element/lit-element.js'\n\n/*\nUsage:\n\n<beaker-img-fallbacks>\n  <img src=\"/foo.png\" slot=\"img1\">\n  <img src=\"/bar.png\" slot=\"img2\">\n  <img src=\"/baz.png\" slot=\"img3\">\n</beaker-img-fallbacks>\n*/\n\nexport class ImgFallbacks extends LitElement {\n  static get properties () {\n    return {\n      currentImage: {type: Number}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentImage = 1\n  }\n\n  render () {\n    return html`<slot name=\"img${this.currentImage}\" @slotchange=${this.onSlotChange}></slot>`\n  }\n\n  onSlotChange (e) {\n    var img = this.shadowRoot.querySelector('slot').assignedElements()[0]\n    if (img) img.addEventListener('error', this.onError.bind(this))\n  }\n\n  onError (e) {\n    this.currentImage = this.currentImage + 1\n  }\n}\n\ncustomElements.define('beaker-img-fallbacks', ImgFallbacks)\n"
  },
  {
    "path": "app/userland/app-stdlib/js/com/popups/base.js",
    "content": "import {LitElement, html} from '../../../vendor/lit-element/lit-element.js'\nimport popupsCSS from '../../../css/com/popups.css.js'\n\n// exported api\n// =\n\nexport class BasePopup extends LitElement {\n  constructor () {\n    super()\n\n    const onGlobalKeyUp = e => {\n      // listen for the escape key\n      if (this.shouldCloseOnEscape && e.keyCode === 27) {\n        this.onReject()\n      }\n    }\n    document.addEventListener('keyup', onGlobalKeyUp)\n\n    // cleanup function called on cancel\n    this.cleanup = () => {\n      document.removeEventListener('keyup', onGlobalKeyUp)\n    }\n  }\n\n  get shouldShowHead () {\n    return true\n  }\n\n  get shouldCloseOnOuterClick () {\n    return true\n  }\n\n  get shouldCloseOnEscape () {\n    return true\n  }\n\n  // management\n  //\n\n  static async coreCreate (parentEl, Class, ...args) {\n    var popupEl = new Class(...args)\n    parentEl.appendChild(popupEl)\n\n    const cleanup = () => {\n      popupEl.cleanup()\n      popupEl.remove()\n    }\n\n    // return a promise that resolves with resolve/reject events\n    return new Promise((resolve, reject) => {\n      popupEl.addEventListener('resolve', e => {\n        resolve(e.detail)\n        cleanup()\n      })\n\n      popupEl.addEventListener('reject', e => {\n        reject()\n        cleanup()\n      })\n    })\n  }\n\n  static async create (Class, ...args) {\n    return BasePopup.coreCreate(document.body, Class, ...args)\n  }\n\n  static destroy (tagName) {\n    var popup = document.querySelector(tagName)\n    if (popup) popup.onReject()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <div class=\"popup-wrapper\" @click=${this.onClickWrapper}>\n        <div class=\"popup-inner\">\n          ${this.shouldShowHead ? html`\n            <div class=\"head\">\n              <span class=\"title\">${this.renderTitle()}</span>\n              <span title=\"Cancel\" @click=${this.onReject} class=\"close-btn square\">&times;</span>\n            </div>\n          ` : ''}\n          <div class=\"body\">\n            ${this.renderBody()}\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  renderTitle () {\n    // should be overridden by subclasses\n  }\n\n  renderBody () {\n    // should be overridden by subclasses\n  }\n\n  // events\n  // =\n\n  onClickWrapper (e) {\n    if (e.target.classList.contains('popup-wrapper') && this.shouldCloseOnOuterClick) {\n      this.onReject()\n    }\n  }\n\n  onReject (e) {\n    if (e) e.preventDefault()\n    this.dispatchEvent(new CustomEvent('reject'))\n  }\n}\n\nBasePopup.styles = [popupsCSS]"
  },
  {
    "path": "app/userland/app-stdlib/js/com/popups/edit-bookmark.js",
    "content": "/* globals beaker */\nimport { html, css } from '../../../vendor/lit-element/lit-element.js'\nimport { BasePopup } from './base.js'\nimport popupsCSS from '../../../css/com/popups.css.js'\nimport { normalizeUrl, createResourceSlug, joinPath } from '../../strings.js'\nimport { getAvailableName } from '../../fs.js'\n\n// exported api\n// =\n\nexport class EditBookmarkPopup extends BasePopup {\n  constructor (bookmark) {\n    super()\n    this.bookmark = bookmark\n    if (bookmark && typeof beaker.bookmarks === 'undefined') {\n      // NOTE\n      // we're still migrating beaker-app-stdlib from being a purely internal library\n      // and the 'edit bookmark' logic needs to be updated. sorry!\n      // -prf\n      throw new Error('Can only create bookmarks with EditBookmarkPopup - edit not yet implemented')\n    }\n  }\n\n  static get styles () {\n    return [popupsCSS, css`\n    .popup-inner {\n      width: 500px;\n    }\n\n    .popup-inner label {\n      font-size: 13px;\n    }\n\n    .popup-inner label.checkbox {\n      display: flex;\n      align-items: center;\n      margin: 5px 0;\n    }\n\n    .popup-inner input[type=\"text\"] {\n      padding: 6px;\n    }\n\n    .popup-inner input[type=\"checkbox\"] {\n      display: inline;\n      height: auto;\n      width: auto;\n      margin: 0 10px 0 2px;\n    }\n\n    .viz-selector {\n      margin-bottom: 10px;\n    }\n\n    .viz-selector > span {\n      display: inline-flex;\n      margin-right: 5px;\n    }\n\n    .viz-selector a {\n      border: 1px solid var(--border-color--light);\n      border-radius: 4px;\n      padding: 4px 6px;\n    }\n\n    .viz-selector a:first-child {\n      border-top-right-radius: 0;\n      border-bottom-right-radius: 0;\n    }\n\n    .viz-selector a:last-child {\n      border-top-left-radius: 0;\n      border-bottom-left-radius: 0;\n    }\n\n    .viz-selector a.selected {\n      background: var(--bg-color--selected);\n      border-color: var(--bg-color--selected);\n      color: var(--bg-color--default);\n    }\n\n    .delete {\n      margin-right: auto;\n    }\n    `]\n  }\n\n  // management\n  //\n\n  static async create (bookmark) {\n    return BasePopup.create(EditBookmarkPopup, bookmark)\n  }\n\n  static destroy () {\n    return BasePopup.destroy('edit-bookmark-popup')\n  }\n\n  // rendering\n  // =\n\n  renderTitle () {\n    return this.bookmark ? 'Edit bookmark' : 'New bookmark'\n  }\n\n  renderBody () {\n    return html`\n      <link rel=\"stylesheet\" href=${(new URL('../../../css/fontawesome.css', import.meta.url)).toString()}>\n      <form @submit=${this.onSubmit}>\n        <div>\n          <label for=\"href-input\">URL</label>\n          <input required type=\"text\" id=\"href-input\" name=\"href\" value=\"${this.bookmark?.href || ''}\" placeholder=\"E.g. beakerbrowser.com\" />\n\n          <label for=\"title-input\">Title</label>\n          <input required type=\"text\" id=\"title-input\" name=\"title\" value=\"${this.bookmark?.title || ''}\" placeholder=\"E.g. Beaker Browser\" />\n\n          ${typeof beaker.bookmarks === 'undefined' ? '' : html`\n            <label class=\"checkbox\" for=\"pinned-input\">\n              <input type=\"checkbox\" id=\"pinned-input\" name=\"pinned\" value=\"1\" ?checked=${!!this.bookmark?.pinned} />\n              Pin to start page\n            </label>\n          `}\n        </div>\n\n        <div class=\"actions\">\n          ${this.bookmark ? html`<button type=\"button\" class=\"btn delete\" @click=${this.onDelete} tabindex=\"3\">Delete</button>` : ''}\n          <button type=\"button\" class=\"btn\" @click=${this.onReject} tabindex=\"2\">Cancel</button>\n          <button type=\"submit\" class=\"btn primary\" tabindex=\"1\">Save</button>\n        </div>\n      </form>\n    `\n  }\n\n  updated () {\n    this.shadowRoot.querySelector('input').focus()\n  }\n\n  // events\n  // =\n\n  async onSubmit (e) {\n    e.preventDefault()\n    e.stopPropagation()\n\n    let b = {\n      href: e.target.href.value,\n      title: e.target.title.value,\n      pinned: e.target.pinned?.checked\n    }\n    console.log(b)\n    if (typeof beaker.bookmarks === 'undefined') {\n      // userland\n      b.href = normalizeUrl(b.href)\n      let drive = beaker.hyperdrive.drive('hyper://private/')\n      let slug = createResourceSlug(b.href, b.title)\n      let filename = await getAvailableName('/bookmarks', slug, drive, 'goto') // avoid collisions\n      let path = joinPath('/bookmarks', filename)\n      await drive.writeFile(path, '', {metadata: {href: b.href, title: b.title}})\n    } else {\n      // builtin\n      if (this.bookmark && b.href !== this.bookmark.href) {\n        await beaker.bookmarks.remove(this.bookmark.href)\n      }\n      await beaker.bookmarks.add(b)\n    }\n\n    this.dispatchEvent(new CustomEvent('resolve'))\n  }\n\n  async onDelete (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    await beaker.bookmarks.remove(this.bookmark.href)\n    this.dispatchEvent(new CustomEvent('resolve'))\n  }\n}\n\ncustomElements.define('edit-bookmark-popup', EditBookmarkPopup)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/popups/edit-cover-photo.js",
    "content": "import { html, css } from '../../../vendor/lit-element/lit-element.js'\nimport { BasePopup } from './base.js'\nimport popupsCSS from '../../../css/com/popups.css.js'\n\nconst CANVAS_WIDTH = 600\nconst CANVAS_HEIGHT = 200\n\n// exported api\n// =\n\nexport class BeakerEditCoverPhoto extends BasePopup {\n  static get properties () {\n    return {\n      currentImgUrl: {type: String}\n    }\n  }\n\n  constructor (siteUrl, existingCoverPath) {\n    super()\n    this.siteUrl = siteUrl\n    this.loadedImg = null\n    this.currentImgUrl = ''\n    if (existingCoverPath) {\n      this.currentImgUrl = `${siteUrl}${existingCoverPath}`\n    }\n  }\n\n  // management\n  //\n\n  static async create (siteUrl, existingCoverPath) {\n    return BasePopup.create(BeakerEditCoverPhoto, siteUrl, existingCoverPath)\n  }\n\n  static async runFlow (profiles) {\n    var profile = await profiles.me()\n    var drive = beaker.hyperdrive.drive(profile.url)\n\n    // find the existing cover\n    var existingCoverPath = null\n    const test = async (path) => {\n      if (existingCoverPath) return\n      var res = await drive.stat(path).catch(e => undefined)\n      if (res) existingCoverPath = path\n    }\n    await test('/cover.jpg')\n    await test('/cover.jpeg')\n    await test('/cover.png')\n\n    // run the modal\n    var img = await BeakerEditCoverPhoto.create(profile.url, existingCoverPath)\n    if (!img) return\n\n    // replace any existing cover\n    await drive.unlink('/cover.jpg').catch(e => undefined)\n    await drive.unlink('/cover.jpeg').catch(e => undefined)\n    await drive.unlink('/cover.png').catch(e => undefined)\n    await drive.writeFile(`/cover.${img.ext}`, img.base64buf, 'base64')\n  }\n\n  static destroy () {\n    return BasePopup.destroy('beaker-edit-cover-photo')\n  }\n\n  // rendering\n  // =\n\n  renderTitle () {\n    return `Update your cover photo`\n  }\n\n  renderBody () {\n    return html`\n      <form @submit=${this.onSubmit}>      \n        <div class=\"controls\">\n          <img id=\"cover-img\" @click=${this.onClickThumb} src=\"${this.currentImgUrl}\">\n          <div>\n            <button class=\"btn\" tabindex=\"1\" @click=${this.onClickThumb}>Choose a file</button>\n            <input type=\"file\" accept=\".jpg,.jpeg,.png\" @change=${this.onChooseFile}>\n          </div>\n        </div>\n\n        <div class=\"actions\">\n          <button type=\"button\" class=\"btn\" @click=${this.onReject} tabindex=\"3\">Cancel</button>\n          <button type=\"submit\" class=\"btn primary\" tabindex=\"2\">Save</button>\n        </div>\n      </form>\n    `\n  }\n\n  // events\n  // =\n\n  async onClickThumb (e) {\n    e.preventDefault()\n    this.shadowRoot.querySelector('input[type=\"file\"]').click()\n  }\n\n  onChooseFile (e) {\n    var file = e.currentTarget.files[0]\n    if (!file) return\n    var fr = new FileReader()\n    fr.onload = () => {\n      var ext = file.name.split('.').pop()\n      this.currentImgUrl = fr.result\n      var base64buf = fr.result.split(',').pop()\n      this.loadedImg = {ext, base64buf}\n    }\n    fr.readAsDataURL(file)\n  }\n\n  onSubmit (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.dispatchEvent(new CustomEvent('resolve', {detail: this.loadedImg}))\n  }\n}\nBeakerEditCoverPhoto.styles = [popupsCSS, css`\nimg {\n  display: block;\n  width: 600px;\n  height: 200px;\n  cursor: pointer;\n  margin-bottom: 10px;\n  object-fit: cover;\n}\n\nimg:hover {\n  opacity: 0.9;\n}\n\n.controls {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.popup-inner {\n  width: 630px;\n}\n\n.popup-inner .actions {\n  justify-content: space-between;\n}\n\ninput[type=\"file\"] {\n  display: none;\n}\n`]\n\ncustomElements.define('beaker-edit-cover-photo', BeakerEditCoverPhoto)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/popups/edit-thumb.js",
    "content": "import { html, css } from '../../../vendor/lit-element/lit-element.js'\nimport { BasePopup } from './base.js'\nimport popupsCSS from '../../../css/com/popups.css.js'\n\nconst CANVAS_SIZE = 125\n\n// exported api\n// =\n\nexport class BeakerEditThumb extends BasePopup {\n  constructor (siteUrl, existingThumbPath) {\n    super()\n    this.siteUrl = siteUrl\n    this.loadedImg = null\n    if (existingThumbPath) {\n      this.loadImg(`${siteUrl}${existingThumbPath}`)\n    }\n  }\n\n  // management\n  //\n\n  static async create (siteUrl, existingThumbPath) {\n    return BasePopup.create(BeakerEditThumb, siteUrl, existingThumbPath)\n  }\n\n  static async runFlow (profiles) {\n    var profile = await profiles.me()\n    var drive = beaker.hyperdrive.drive(profile.url)\n\n    // find the existing thumb\n    var existingThumbPath = null\n    const test = async (path) => {\n      if (existingThumbPath) return\n      var res = await drive.stat(path).catch(e => undefined)\n      if (res) existingThumbPath = path\n    }\n    await test('/thumb.jpg')\n    await test('/thumb.jpeg')\n    await test('/thumb.png')\n\n    // run the modal\n    var img = await BeakerEditThumb.create(profile.url, existingThumbPath)\n    if (!img) return\n\n    // replace any existing thumb\n    await drive.unlink('/thumb.jpg').catch(e => undefined)\n    await drive.unlink('/thumb.jpeg').catch(e => undefined)\n    await drive.unlink('/thumb.png').catch(e => undefined)\n    await drive.writeFile(`/thumb.${img.ext}`, img.base64buf, 'base64')\n  }\n\n  static destroy () {\n    return BasePopup.destroy('beaker-edit-thumb')\n  }\n\n  // rendering\n  // =\n\n  renderTitle () {\n    return `Update your profile photo`\n  }\n\n  renderBody () {\n    return html`\n      <form @submit=${this.onSubmit}>\n        <div class=\"controls\">\n          <canvas id=\"thumb-canvas\" width=${CANVAS_SIZE} height=${CANVAS_SIZE} @click=${this.onClickThumb}></canvas>\n          <div>\n            <button class=\"btn\" tabindex=\"1\" @click=${this.onClickThumb}>Choose a file</button>\n            <input type=\"file\" accept=\".jpg,.jpeg,.png\" @change=${this.onChooseFile}>\n          </div>\n        </div>\n\n        <div class=\"actions\">\n          <button type=\"button\" class=\"btn\" @click=${this.onReject} tabindex=\"3\">Cancel</button>\n          <button type=\"submit\" class=\"btn primary\" tabindex=\"2\">Save</button>\n        </div>\n      </form>\n    `\n  }\n\n  // canvas handling\n  // =\n\n  loadImg (url) {\n    this.zoom = 1\n    this.img = document.createElement('img')\n    this.img.src = url\n    this.img.onload = () => {\n      var smallest = (this.img.width < this.img.height) ? this.img.width : this.img.height\n      this.zoom = CANVAS_SIZE / smallest\n      this.updateCanvas()\n    }\n  }\n\n  updateCanvas () {\n    var canvas = this.shadowRoot.getElementById('thumb-canvas')\n    if (canvas) {\n      var ctx = canvas.getContext('2d')\n      ctx.globalCompositeOperation = 'source-over'\n      ctx.fillStyle = '#fff'\n      ctx.fillRect(0, 0, CANVAS_SIZE, CANVAS_SIZE)\n      ctx.save()\n      ctx.scale(this.zoom, this.zoom)\n      ctx.drawImage(this.img, 0, 0, this.img.width, this.img.height)\n      ctx.restore()\n    }\n  }\n\n  // events\n  // =\n\n  async onClickThumb (e) {\n    e.preventDefault()\n    this.shadowRoot.querySelector('input[type=\"file\"]').click()\n  }\n\n  onChooseFile (e) {\n    var file = e.currentTarget.files[0]\n    if (!file) return\n    var fr = new FileReader()\n    fr.onload = () => {\n      var ext = file.name.split('.').pop()\n      this.loadImg(fr.result)\n      var base64buf = fr.result.split(',').pop()\n      this.loadedImg = {ext, base64buf}\n    }\n    fr.readAsDataURL(file)\n  }\n\n  onSubmit (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.dispatchEvent(new CustomEvent('resolve', {detail: this.loadedImg}))\n  }\n}\nBeakerEditThumb.styles = [popupsCSS, css`\ncanvas {\n  display: block;\n  margin: 0 30px 0 10px;\n  width: 125px;\n  height: 125px;\n  border-radius: 50%;\n  cursor: pointer;\n}\n\ncanvas:hover {\n  opacity: 0.5;\n}\n\n.controls {\n  display: flex;\n  margin: 20px 20px 30px;\n  align-items: center;\n}\n\n.popup-inner {\n  width: 360px;\n}\n\n.popup-inner .actions {\n  justify-content: space-between;\n}\n\ninput[type=\"file\"] {\n  display: none;\n}\n`]\n\ncustomElements.define('beaker-edit-thumb', BeakerEditThumb)"
  },
  {
    "path": "app/userland/app-stdlib/js/com/toast.js",
    "content": "import {LitElement, html} from '../../vendor/lit-element/lit-element.js'\nimport toastCSS from '../../css/com/toast.css.js'\n\n// exported api\n// =\n\nexport function create (message, type = '', time = 5000, button = null) {\n  // destroy existing\n  destroy()\n\n  // render toast\n  document.body.appendChild(new BeakerToast({message, type, button}))\n  setTimeout(destroy, time)\n}\n\nexport function destroy () {\n  var toast = document.querySelector('beaker-toast')\n\n  if (toast) {\n    // fadeout before removing element\n    toast.shadowRoot.querySelector('.toast-wrapper').classList.add('hidden')\n    setTimeout(() => toast.remove(), 500)\n  }\n}\n\n// internal\n// =\n\nclass BeakerToast extends LitElement {\n  constructor ({message, type, button}) {\n    super()\n    this.message = message\n    this.type = type\n    this.button = button\n  }\n\n  render () {\n    const onButtonClick = this.button ? (e) => { destroy(); this.button.click(e) } : undefined\n    return html`\n    <div id=\"toast-wrapper\" class=\"toast-wrapper ${this.button ? '' : 'nomouse'}\">\n      <p class=\"toast ${this.type}\">${this.message} ${this.button ? html`<a class=\"toast-btn\" @click=${onButtonClick}>${this.button.label}</a>` : ''}</p>\n    </div>\n    `\n  }\n}\nBeakerToast.styles = toastCSS\n\ncustomElements.define('beaker-toast', BeakerToast)\n"
  },
  {
    "path": "app/userland/app-stdlib/js/const.js",
    "content": "import { html } from '../vendor/lit-element/lit-element.js'\n\nexport const HELP = {\n  files: () => html`<p>Files drives are shareable folders.</p>`,\n  websites: () => html`<p>Websites contain web pages and applications.</p>`,\n  groups: () => html`<p>User Groups host other users who can share content together.</p>`,\n  modules: () => html`<p>Modules contain code. They can be imported by other drives to provide reusable components.</p>`,\n  frontends: () => html`<p>Frontends are swappable user-interfaces for drives.</p>`\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/dom.js",
    "content": "export function findParent (node, test) {\n  if (typeof test === 'string') {\n    // classname default\n    var cls = test\n    test = el => el.classList && el.classList.contains(cls)\n  }\n\n  while (node) {\n    if (test(node)) {\n      return node\n    }\n    node = node.parentNode\n  }\n}\n\nexport function on (el, event, fn, opts) {\n  el.addEventListener(event, fn, opts)\n}\n\nexport function once (el, event, fn, opts) {\n  opts = opts || {}\n  opts.once = true\n  el.addEventListener(event, fn, opts)\n}\n\nexport function emit (el, evt, opts = {}) {\n  opts.bubbles = ('bubbles' in opts) ? opts.bubbles : true\n  opts.composed = ('composed' in opts) ? opts.composed : true\n  el.dispatchEvent(new CustomEvent(evt, opts))\n}\n\n/*!\n * Dynamically changing favicons with JavaScript\n * Works in all A-grade browsers except Safari and Internet Explorer\n * Demo: http://mathiasbynens.be/demo/dynamic-favicons\n */\n\nvar _head = document.head || document.getElementsByTagName('head')[0] // https://stackoverflow.com/a/2995536\nexport function changeFavicon (src) {\n  var link = document.createElement('link')\n  var oldLink = document.getElementById('dynamic-favicon')\n  link.id = 'dynamic-favicon'\n  link.rel = 'shortcut icon'\n  link.href = src\n  if (oldLink) {\n    _head.removeChild(oldLink)\n  }\n  _head.appendChild(link)\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/emoji.js",
    "content": "import { FULL_LIST } from '../data/emoji-list.js'\nimport * as skinTone from '../vendor/emoji-skin-tone/index.js'\n\nconst EMOJI_VARIANT = `\\uFE0F` // this codepoint forces emoji rendering rather than symbolic\n\nexport function setSkinTone (emoji, tone) {\n  return skinTone.set(emoji, tone)\n}\n\nexport function render (emoji, tone = false) {\n  emoji = emoji.replace('\\uFE0F', '').replace('\\uFE0E', '')\n  return (tone === false ? emoji : skinTone.set(emoji, tone)) + EMOJI_VARIANT\n}\n\nexport function renderSafe (emoji, tone = false) {\n  // if (!isSupported(emoji)) return '' TODO needed?\n  return render(emoji, tone)\n}\n\nexport function isSupported (emoji) {\n  if (!emoji || typeof emoji !== 'string') return false\n  emoji = emoji.replace('\\uFE0F', '').replace('\\uFE0E', '')\n  return FULL_LIST.indexOf(skinTone.set(emoji, skinTone.NONE)) !== -1\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/fs.js",
    "content": "import { isFilenameBinary } from './is-ext-binary.js'\nimport { urlToKey, joinPath, slugify } from './strings.js'\n\n// typedefs\n// =\n\n/**\n * @typedef {Object} FSQueryOpts\n * @prop {string|string[]} path\n * @prop {string} [type]\n * @prop {string} [mount]\n * @prop {Object} [meta]\n * @prop {string} [sort] - 'name', 'ctime', 'mtime'\n * @prop {boolean} [reverse]\n * @prop {number} [limit]\n * @prop {number} [offset]\n *\n * @typedef {Object} Stat\n * @prop {number} mode\n * @prop {number} size\n * @prop {number} offset\n * @prop {number} blocks\n * @prop {Date} atime\n * @prop {Date} mtime\n * @prop {Date} ctime\n * @prop {Object} [mount]\n * @prop {string} [mount.key]\n * @prop {string} linkname\n *\n * @typedef {Object} FSQueryResult\n * @prop {string} type\n * @prop {string} path\n * @prop {string} url\n * @prop {Stat} stat\n * @prop {string} drive\n * @prop {string} [mount]\n * @prop {any} [content]\n */\n\n// exported\n// =\n\n/**\n * @param {Hyperdrive} fs\n * @param {FSQueryOpts} query\n * @returns {Promise<FSQueryResult[]>}\n */\nexport async function queryRead (fs, query) {\n  var files = await fs.query(query)\n  for (let file of files) {\n    if (isFilenameBinary(file.path)) continue\n    file.content = await fs.readFile(file.path, 'utf8').catch(err => undefined)\n    if (file.path.endsWith('.json')) {\n      try {\n        file.content = JSON.parse(file.content)\n      } catch (e) {\n        // ignore\n      }\n    }\n  }\n  return files\n}\n\n/**\n * @param {Hyperdrive} fs\n * @param {FSQueryOpts} query\n * @returns {Promise<boolean>}\n */\nexport async function queryHas (fs, query) {\n  var files = await fs.query(query)\n  return files.length > 0\n}\n\n/**\n * @param {Hyperdrive} fs\n * @param {string} path\n */\nexport async function ensureDir (fs, path) {\n  try {\n    let st = await fs.stat(path).catch(e => null)\n    if (!st) {\n      await fs.mkdir(path)\n    } else if (!st.isDirectory()) {\n      console.error('Warning! Filesystem expects a folder but an unexpected file exists at this location.', {path})\n    }\n  } catch (e) {\n    console.error('Filesystem failed to make directory', {path, error: e})\n  }\n}\n\n/**\n * @param {Hyperdrive} fs\n * @param {string} path\n */\nexport async function ensureParentDir (fs, path) {\n  return ensureDir(fs, path.split('/').slice(0, -1).join('/'))\n}\n\n/**\n * @param {Hyperdrive} fs\n * @param {string} path \n * @param {string} url \n * @return {Promise<void>}\n */\nexport async function ensureMount (fs, path, url) {\n  try {\n    let st = await fs.stat(path).catch(e => null)\n    let key = urlToKey(url)\n    if (!st) {\n      // add mount\n      await fs.mount(path, key)\n    } else if (st.mount) {\n      if (st.mount.key !== key) {\n        // change mount\n        await fs.unmount(path)\n        await fs.mount(path, key)\n      }\n    } else {\n      console.error('Warning! Filesystem expects a mount but an unexpected file exists at this location.', {path})\n    }\n  } catch (e) {\n    console.error('Filesystem failed to mount drive', {path, url, error: e})\n  }\n}\n\n/**\n * @param {Hyperdrive} fs\n * @param {string} path \n * @return {Promise<void>}\n */\nexport async function ensureUnmount (fs, path) {\n  try {\n    let st = await fs.stat(path).catch(e => null)\n    if (st && st.mount) {\n      // remove mount\n      await fs.unmount(path)\n    }\n  } catch (e) {\n    console.error('Filesystem failed to unmount drive', {path, error: e})\n  }\n}\n\n/**\n * @param {string} pathSelector \n * @param {string} url\n * @param {Object} drive\n * @return {Promise<void>}\n */\nexport async function ensureUnmountByUrl (pathSelector, url, drive) {\n  try {\n    let mounts = await drive.query({\n      path: pathSelector,\n      mount: url\n    })\n    if (mounts[0]) {\n      // remove mount\n      await drive.unmount(mounts[0].path)\n    } else {\n      throw \"Mount not found\"\n    }\n  } catch (e) {\n    console.error('Filesystem failed to unmount drive', {pathSelector, url, error: e})\n  }\n}\n\n/**\n * @param {string} containingPath\n * @param {string} title\n * @param {Object} fs\n * @param {string} ext\n * @returns {Promise<string>}\n */\nexport async function getAvailableName (containingPath, title, fs, ext = '') {\n  var basename = slugify((title || '').trim() || 'untitled').toLowerCase()\n  for (let i = 1; i < 1e9; i++) {\n    let name = ((i === 1) ? basename : `${basename}-${i}`) + (ext ? `.${ext}` : '')\n    let st = await fs.stat(joinPath(containingPath, name)).catch(e => null)\n    if (!st) return name\n  }\n  // yikes if this happens\n  throw new Error('Unable to find an available name for ' + title)\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/js/functions.js",
    "content": "\nexport function debouncer (ms, fallback) {\n  let stack = []\n  let running = false\n\n  async function pop () {\n    if (!stack.length) {\n      running = false\n      return\n    }\n    running = true\n    const startTime = Date.now()\n    const { run, cancel } = stack.pop()\n    for (let i = 0; i < stack.length; i++) {\n      stack.pop().cancel()\n    }\n    try {\n      await run()\n    } finally {\n      const diff = ms - (Date.now() - startTime)\n      if (diff < 0) return pop()\n      else setTimeout(pop, diff)\n    }\n  }\n\n  return async function push (task) {\n    return new Promise((resolve, reject) => {\n      stack.push({\n        run: () => task().then(resolve, reject),\n        // Resolve with empty search results if cancelled.\n        cancel: () => resolve(fallback)\n      })\n      if (!running) pop()\n    })\n  }\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/is-ext-binary.js",
    "content": "const BIN_EXTS = [\n  '3dm',\n  '3ds',\n  '3g2',\n  '3gp',\n  '7z',\n  'a',\n  'aac',\n  'adp',\n  'ai',\n  'aif',\n  'aiff',\n  'alz',\n  'ape',\n  'apk',\n  'ar',\n  'arj',\n  'asf',\n  'au',\n  'avi',\n  'bak',\n  'baml',\n  'bh',\n  'bin',\n  'bk',\n  'bmp',\n  'btif',\n  'bz2',\n  'bzip2',\n  'cab',\n  'caf',\n  'cgm',\n  'class',\n  'cmx',\n  'cpio',\n  'cr2',\n  'cur',\n  'dat',\n  'dcm',\n  'deb',\n  'dex',\n  'djvu',\n  'dll',\n  'dmg',\n  'dng',\n  'doc',\n  'docm',\n  'docx',\n  'dot',\n  'dotm',\n  'dra',\n  'DS_Store',\n  'dsk',\n  'dts',\n  'dtshd',\n  'dvb',\n  'dwg',\n  'dxf',\n  'ecelp4800',\n  'ecelp7470',\n  'ecelp9600',\n  'egg',\n  'eol',\n  'eot',\n  'epub',\n  'exe',\n  'f4v',\n  'fbs',\n  'fh',\n  'fla',\n  'flac',\n  'fli',\n  'flv',\n  'fpx',\n  'fst',\n  'fvt',\n  'g3',\n  'gh',\n  'gif',\n  'graffle',\n  'gz',\n  'gzip',\n  'h261',\n  'h263',\n  'h264',\n  'icns',\n  'ico',\n  'ief',\n  'img',\n  'ipa',\n  'iso',\n  'jar',\n  'jpeg',\n  'jpg',\n  'jpgv',\n  'jpm',\n  'jxr',\n  'key',\n  'ktx',\n  'lha',\n  'lib',\n  'lvp',\n  'lz',\n  'lzh',\n  'lzma',\n  'lzo',\n  'm3u',\n  'm4a',\n  'm4v',\n  'mar',\n  'mdi',\n  'mht',\n  'mid',\n  'midi',\n  'mj2',\n  'mka',\n  'mkv',\n  'mmr',\n  'mng',\n  'mobi',\n  'mov',\n  'movie',\n  'mp3',\n  'mp4',\n  'mp4a',\n  'mpeg',\n  'mpg',\n  'mpga',\n  'mxu',\n  'nef',\n  'npx',\n  'numbers',\n  'nupkg',\n  'o',\n  'oga',\n  'ogg',\n  'ogv',\n  'otf',\n  'pages',\n  'pbm',\n  'pcx',\n  'pdb',\n  'pdf',\n  'pea',\n  'pgm',\n  'pic',\n  'png',\n  'pnm',\n  'pot',\n  'potm',\n  'potx',\n  'ppa',\n  'ppam',\n  'ppm',\n  'pps',\n  'ppsm',\n  'ppsx',\n  'ppt',\n  'pptm',\n  'pptx',\n  'psd',\n  'pya',\n  'pyc',\n  'pyo',\n  'pyv',\n  'qt',\n  'rar',\n  'ras',\n  'raw',\n  'resources',\n  'rgb',\n  'rip',\n  'rlc',\n  'rmf',\n  'rmvb',\n  'rtf',\n  'rz',\n  's3m',\n  's7z',\n  'scpt',\n  'sgi',\n  'shar',\n  'sil',\n  'sketch',\n  'slk',\n  'smv',\n  'snk',\n  'so',\n  'stl',\n  'suo',\n  'sub',\n  'swf',\n  'tar',\n  'tbz',\n  'tbz2',\n  'tga',\n  'tgz',\n  'thmx',\n  'tif',\n  'tiff',\n  'tlz',\n  'ttc',\n  'ttf',\n  'txz',\n  'udf',\n  'uvh',\n  'uvi',\n  'uvm',\n  'uvp',\n  'uvs',\n  'uvu',\n  'viv',\n  'vob',\n  'war',\n  'wav',\n  'wax',\n  'wbmp',\n  'wdp',\n  'weba',\n  'webm',\n  'webp',\n  'whl',\n  'wim',\n  'wm',\n  'wma',\n  'wmv',\n  'wmx',\n  'woff',\n  'woff2',\n  'wrm',\n  'wvx',\n  'xbm',\n  'xif',\n  'xla',\n  'xlam',\n  'xls',\n  'xlsb',\n  'xlsm',\n  'xlsx',\n  'xlt',\n  'xltm',\n  'xltx',\n  'xm',\n  'xmind',\n  'xpi',\n  'xpm',\n  'xwd',\n  'xz',\n  'z',\n  'zip',\n  'zipx'\n]\n\nexport function isFilenameBinary (str = '') {\n  return BIN_EXTS.includes(str.split('.').pop())\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/query-params.js",
    "content": "export function setParams (kv, clear = false, replaceState = false) {\n  var url = (new URL(window.location))\n  if (clear) url.search = ''\n  for (var k in kv) {\n    if (kv[k]) {\n      url.searchParams.set(k, kv[k])\n    } else {\n      url.searchParams.delete(k)\n    }\n  }\n  if (replaceState) {\n    window.history.replaceState({}, null, url)\n  } else {\n    window.history.pushState({}, null, url)\n  }\n}\n\nexport function getParam (k, fallback = '') {\n  return (new URL(window.location)).searchParams.get(k) || fallback\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/quill.js",
    "content": "/**\n * https://github.com/frysztak/quill-delta-to-markdown/blob/master/src/utils/URL.js\n */\n\nconst encodeLink = (link) =>\n  encodeURI(link)\n    .replace(/\\(/i, \"%28\")\n    .replace(/\\)/i, \"%29\")\n\nvar idCounter = 0\n\nclass Node {\n  constructor (data) {\n    this.id = ++idCounter\n    if (Array.isArray(data)) {\n      this.open = data[0]\n      this.close = data[1]\n    } else if (typeof data === 'string') {\n      this.text = data\n    }\n    this.parent = undefined\n    this.children = []\n  }\n\n  append (e) {\n    if (!(e instanceof Node)) {\n      e = new Node(e)\n    }\n    if (e.parent) {\n      e.parent.children = e.parent.children.filter(child => child !== e)\n    }\n    e.parent = this\n    this.children = this.children.concat(e)\n  }\n\n  render () {\n    var text = ''\n    if (this.open) {\n      text += this.open\n    }\n    if (this.text) {\n      text += this.text\n    }\n    for (var i = 0; i < this.children.length; i++) {\n      text += this.children[i].render()\n    }\n    if (this.close) {\n      text += this.close\n    }\n    return text\n  }\n}\n\nconst converters = {\n  embed: {\n    image: function(src) {\n      this.append('![image](' + encodeLink(src) + ')');\n    },\n    mention: function(mention) {\n      this.append(`[${mention.denotationChar}${mention.value}](${mention.id})`);\n    }\n  },\n\n  inline: {\n    italic: function() {\n      return ['_', '_'];\n    },\n    bold: function() {\n      return ['**', '**'];\n    },\n    strike: function() {\n      return ['~~', '~~'];\n    },\n    link: function(url) {\n      return ['[', '](' + url + ')'];\n    },\n  },\n\n  block: {\n    header: function({header}) {\n      this.open = '#'.repeat(header) + ' ' + this.open;\n    },\n    blockquote: function() {\n      this.open = '> ' + this.open;\n    },\n    list: {\n      group: function() {\n        return new Node(['', '\\n']);\n      },\n      line: function(attrs, group) {\n        if (attrs.list === 'bullet') {\n          this.open = '- ' + this.open;\n        } else if (attrs.list === \"checked\") {\n          this.open = '- [x] ' + this.open;\n        } else if (attrs.list === \"unchecked\") {\n          this.open = '- [ ] ' + this.open;\n        } else if (attrs.list === 'ordered') {\n          group.count = group.count || 0;\n          var count = ++group.count;\n          this.open = count + '. ' + this.open;\n        }\n      },\n    }\n  },\n}\n\nexport function deltaToMarkdown (ops) {\n  var str = convert(ops).render().trim()\n\n  // HACK strip out any run of newlines\n  while (str.includes('\\n\\n\\n')) {\n    str = str.replace('\\n\\n\\n', '\\n\\n')\n  }\n\n  return str\n};\n\nfunction convert (ops) {\n  var group, line, el, activeInline, beginningOfLine;\n  var root = new Node();\n\n  function newLine (paragraph) {\n    el = line = new Node(['', paragraph ? '\\n\\n' : '\\n']);\n    root.append(line);\n    activeInline = {};\n  }\n  newLine();\n\n  for (var i = 0; i < ops.length; i++) {\n    var op = ops[i];\n\n    if (typeof op.insert === 'object') {\n      for (var k in op.insert) {\n        if (converters.embed[k]) {\n          applyInlineAttributes(op.attributes);\n          converters.embed[k].call(el, op.insert[k], op.attributes);\n        }\n      }\n    } else {\n      var lines = op.insert.split('\\n');\n\n      if (hasBlockLevelAttribute(op.attributes, converters)) {\n        // Some line-level styling (ie headings) is applied by inserting a \\n\n        // with the style; the style applies back to the previous \\n.\n        // There *should* only be one style in an insert operation.\n\n        for (var j = 1; j < lines.length; j++) {\n          for (var attr in op.attributes) {\n            if (converters.block[attr]) {\n              var fn = converters.block[attr];\n              if (typeof fn === 'object') {\n                if (group && group.type !== attr) {\n                  group = null;\n                }\n                if (!group && fn.group) {\n                  group = {\n                    el: fn.group(),\n                    type: attr,\n                    value: op.attributes[k],\n                    distance: 0,\n                  };\n                  root.append(group.el);\n                }\n\n                if (group) {\n                  group.el.append(line);\n                  group.distance = 0;\n                }\n                fn = fn.line;\n              }\n\n              fn.call(line, op.attributes, group);\n              newLine(attr !== 'list');\n              break\n            }\n          }\n        }\n        beginningOfLine = true;\n      } else {\n        for (var l = 0; l < lines.length; l++) {\n          if ((l > 0 || beginningOfLine) && group && ++group.distance >= 2) {\n            group = null;\n          }\n          applyInlineAttributes(op.attributes, ops[i + 1] && ops[i + 1].attributes);\n          el.append(lines[l]);\n          if (l < lines.length - 1) {\n            newLine();\n          }\n        }\n        beginningOfLine = false;\n      }\n    }\n  }\n\n  return root;\n\n  function applyInlineAttributes(attrs, next) {\n    var first = [],\n      then = [];\n    attrs = attrs || {};\n\n    var tag = el,\n      seen = {};\n    while (tag._format) {\n      seen[tag._format] = true;\n      if (!attrs[tag._format]) {\n        for (var k in seen) {\n          delete activeInline[k]\n        }\n        el = tag.parent\n      }\n\n      tag = tag.parent\n    }\n\n    for (var attr in attrs) {\n      if (converters.inline[attr]) {\n        if (activeInline[attr]) {\n          if (activeInline[attr] === attrs[attr]) {\n            continue; // do nothing -- we should already be inside this style's tag\n          }\n        }\n\n        if (next && attrs[attr] === next[attr]) {\n          first.push(attr); // if the next operation has the same style, this should be the outermost tag\n        } else {\n          then.push(attr);\n        }\n        activeInline[attr] = attrs[attr];\n      }\n    }\n\n    first.forEach(apply);\n    then.forEach(apply);\n\n    function apply(fmt) {\n      var newEl = converters.inline[fmt].call(null, attrs[fmt]);\n      if (Array.isArray(newEl)) {\n        newEl = new Node(newEl);\n      }\n      newEl._format = fmt;\n      el.append(newEl);\n      el = newEl;\n    }\n  }\n}\n\nfunction hasBlockLevelAttribute(attrs, converters) {\n  for (var k in attrs) {\n    if (Object.keys(converters.block).includes(k)) {\n      return true\n    }\n  }\n  return false\n}\n\n// HACK\n// https://github.com/quilljs/quill/issues/3066\n// Quill 2.0 removed the formats allowlist for some reason\n// this restores that functionality\n// -prf\nexport function quillFormatsHackfix (Quill, formats) {\n  const BuiltinScroll = Quill.import('blots/scroll');\n  class Scroll extends BuiltinScroll {\n    /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n    formatAt(index, length, format, value) {\n      if (!formats.includes(format)) return;\n      super.formatAt(index, length, format, value);\n      this.optimize();\n    }\n  }\n  Quill.register('blots/scroll', Scroll, /*overwrite*/ true);\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/strings.js",
    "content": "export const DRIVE_KEY_REGEX = /[0-9a-f]{64}/i\n\nexport function urlToKey (str) {\n  try {\n    return DRIVE_KEY_REGEX.exec(str)[0]\n  } catch (e) {\n    return ''\n  }\n}\n\nexport function ucfirst (str) {\n  if (!str) str = ''\n  if (typeof str !== 'string') str = '' + str\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function pluralize (num, base, suffix = 's') {\n  if (num === 1) { return base }\n  return base + suffix\n}\n\nexport function shorten (str, n = 6) {\n  if (str.length > (n + 3)) {\n    return str.slice(0, n) + '...'\n  }\n  return str\n}\n\nexport function joinPath (...args) {\n  var str = args[0]\n  for (let v of args.slice(1)) {\n    v = v && typeof v === 'string' ? v : ''\n    let left = str.endsWith('/')\n    let right = v.startsWith('/')\n    if (left !== right) str += v\n    else if (left) str += v.slice(1)\n    else str += '/' + v\n  }\n  return str\n}\n\nexport function shortenAllKeys (str = '') {\n  return str.replace(/[0-9a-f]{64}/ig, (key) => `${key.slice(0, 4)}..${key.slice(-2)}`)\n}\n\nexport function toDomain (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    return urlParsed.hostname\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nexport function toNiceDomain (str, len=4) {\n  var domain = str.includes('://') ? toDomain(str) : str\n  if (DRIVE_KEY_REGEX.test(domain)) {\n    domain = `${domain.slice(0, len)}..${domain.slice(-2)}`\n  }\n  return domain\n}\n\nexport function toNiceUrl (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    if (DRIVE_KEY_REGEX.test(urlParsed.hostname)) {\n      urlParsed.hostname = `${urlParsed.hostname.slice(0, 4)}..${urlParsed.hostname.slice(-2)}`\n    }\n    return urlParsed.toString()\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nexport function makeSafe (str = '') {\n  return str.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\n// search results are returned from beaker's search APIs with nonces wrapping the highlighted sections\n// e.g. a search for \"test\" might return \"the {500}test{/500} result\"\n// this enables us to safely escape the HTML, then replace the nonces with <strong> tags\nexport function highlightSearchResult (str = '', nonce = 0) {\n  var start = new RegExp(`\\\\{${nonce}\\\\}`, 'g') // eg {500}\n  var end = new RegExp(`\\\\{/${nonce}\\\\}`, 'g') // eg {/500}\n  return makeSafe(str).replace(start, '<strong>').replace(end, '</strong>')\n}\n\nexport function slugifyUrl (str = '') {\n  try {\n    let url = new URL(str)\n    str = url.protocol + url.hostname + url.pathname + url.search + url.hash\n  } catch (e) {\n    // ignore\n  }\n  return slugify(str)\n}\n\nexport function createResourceSlug (href, title) {\n  var slug\n  try {\n    var hrefp = new URL(href)\n    if (hrefp.pathname === '/' && !hrefp.search && !hrefp.hash) {\n      // at the root path - use the hostname for the filename\n      if (DRIVE_KEY_REGEX.test(hrefp.hostname) && !!title.trim()) {\n        // ...unless it's a hyper key\n        slug = slugify(title.trim())\n      } else {\n        slug = slugify(hrefp.hostname)\n      }\n    } else if (typeof title === 'string' && !!title.trim()) {\n      // use the title if available on subpages\n      slug = slugify(title.trim())\n    } else {\n      // use parts of the url\n      slug = slugify(hrefp.hostname + hrefp.pathname + hrefp.search + hrefp.hash)\n    }\n  } catch (e) {\n    // weird URL, just use slugified version of it\n    slug = slugify(href)\n  }\n  return slug.toLowerCase()\n}\n\nconst reservedChars = /[^\\w]/g\nconst endingDashes = /([-]+$)/g\nconst extraDashes = /(-[-]+)/g\nexport function slugify (str = '') {\n  return str.replace(reservedChars, '-').replace(endingDashes, '').replace(extraDashes, '-')\n}\n\nexport function normalizeUrl (str = '') {\n  try {\n    let url = new URL(str)\n    let res = url.protocol + '//' + url.hostname\n    if (url.port) res += ':' + url.port\n    res += url.pathname.replace(/(\\/)$/, '') || '/'\n    if (url.search && url.search !== '?') res += url.search\n    if (url.hash && url.hash !== '#') res += url.hash\n    return res\n  } catch (e) {\n    return str\n  }\n}\n\nexport function changeURLScheme (url = '', scheme = '') {\n  try {\n    let urlp = new URL(url)\n    urlp.protocol = scheme\n    return urlp.toString()\n  } catch (e) {\n    return url\n  }\n}\n\nexport function toNiceDriveType (type = '') {\n  if (!type) return 'files drive'\n  if (type === 'webterm.sh/cmd-pkg') return 'webterm command'\n  return type\n}\n\nexport function getDriveTypeIcon (type = '') {\n  switch (type) {\n    case 'user': return 'fas fa-user'\n    case 'group': return 'fas fa-users'\n    case 'webterm.sh/cmd-pkg': return 'fas fa-terminal'\n    case 'module': return 'fas fa-cube'\n    case 'website': return 'fas fa-desktop'\n    default: return 'far fa-folder-open'\n  }\n}\n\n/**\n * Calculate a 32 bit FNV-1a hash\n * Found here: https://gist.github.com/vaiorabbit/5657561\n * Ref.: http://isthe.com/chongo/tech/comp/fnv/\n *\n * @param {string} str the input value\n * @param {boolean} [asString=false] set to true to return the hash value as 8-digit hex string instead of an integer\n * @param {number} [seed] optionally pass the hash of the previous chunk\n * @returns {number | string}\n */\nexport function hashFnv32a (str, asString, seed) {\n  var i, l, hval = (seed === undefined) ? 0x811c9dc5 : seed\n\n  for (i = 0, l = str.length; i < l; i++) {\n    hval ^= str.charCodeAt(i)\n    hval += (hval << 1) + (hval << 4) + (hval << 7) + (hval << 8) + (hval << 24)\n  }\n  if (asString) {\n    // Convert to 8 digit hex string\n    return (\"0000000\" + (hval >>> 0).toString(16)).substr(-8)\n  }\n  return hval >>> 0\n}\n\nexport function toHex (buf) {\n  return buf.reduce((memo, i) => (\n    memo + ('0' + i.toString(16)).slice(-2) // pad with leading 0 if <16\n  ), '')\n}\n\nexport function isSameOrigin (a, b) {\n\treturn getOrigin(a) === getOrigin(b)\n}\n\nexport function getOrigin (str) {\n\tlet i = str.indexOf('://')\n\tlet j = str.indexOf('/', i + 3)\n\treturn str.slice(0, j === -1 ? undefined : j)\n}\n\nexport function fancyUrl (str, siteTitle) {\n  try {\n    let url = new URL(str)\n    let parts = [siteTitle || toNiceDomain(url.hostname)].concat(url.pathname.split('/').filter(Boolean))\n    return parts.join(' › ') + (url.search ? ` ? ${url.search.slice(1)}` : '')\n  } catch (e) {\n    return str\n  }\n}\n\nvar _fancyUrlAsyncCache = {}\nexport async function* fancyUrlAsync (str) {\n  try {\n    let url = new URL(str)\n    if (_fancyUrlAsyncCache[url.origin]) {\n      yield fancyUrl(str, _fancyUrlAsyncCache[url.origin])\n      return\n    }\n    yield fancyUrl(str)\n    // TODO\n    // if (url.protocol === 'hyper:') {\n    //   let {site} = await beaker.index.gql(`\n    //     query Site ($origin: String!) {\n    //       site(url: $origin, cached: true) { title }\n    //     }\n    //   `, {origin: url.origin})\n    //   _fancyUrlAsyncCache[url.origin] = site.title\n    //   yield fancyUrl(str, site.title)\n    // }\n  } catch (e) {\n    return str\n  }\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/time.js",
    "content": "import {pluralize} from './strings.js'\n\nconst shortFormatter = new Intl.DateTimeFormat('en-US', {\n  month: 'short',\n  day: 'numeric'\n})\nconst longFormatter = new Intl.DateTimeFormat('en-US', {\n  month: 'short',\n  year: 'numeric',\n  day: 'numeric'\n})\nconst yearFormatter = new Intl.DateTimeFormat('en-US', {year: 'numeric'})\nconst CURRENT_YEAR = yearFormatter.format(new Date())\n\nexport function shortDate (ts) {\n  ts = new Date(ts)\n  var year = yearFormatter.format(ts)\n  var formatter = (year === CURRENT_YEAR) ? shortFormatter : longFormatter\n  return formatter.format(ts)\n}\n\n// simple timediff fn\n// replace this with Intl.RelativeTimeFormat when it lands in Beaker\n// https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time-eg-2-seconds-ago-one-week-ago-etc-best\nconst msPerMinute = 60 * 1000\nconst msPerHour = msPerMinute * 60\nconst msPerDay = msPerHour * 24\nconst msPerMonth = msPerDay * 30\nconst msPerYear = msPerDay * 365\nconst now = Date.now()\nexport function timeDifference (ts, short = false, postfix = 'ago') {\n  ts = Number(new Date(ts))\n  var elapsed = now - ts\n  if (elapsed < 1) elapsed = 1 // let's avoid 0 and negative values\n  if (elapsed < msPerMinute) {\n    let n = Math.round(elapsed/1000)\n    return `${n}${short ? 's' : pluralize(n, ' second')} ${postfix}`\n  } else if (elapsed < msPerHour) {\n    let n = Math.round(elapsed/msPerMinute)\n    return `${n}${short ? 'm' : pluralize(n, ' minute')} ${postfix}`\n  } else if (elapsed < msPerDay) {\n    let n = Math.round(elapsed/msPerHour)\n    return `${n}${short ? 'h' : pluralize(n, ' hour')} ${postfix}`\n  } else if (elapsed < msPerMonth) {\n    let n = Math.round(elapsed/msPerDay)\n    return `${n}${short ? 'd' : pluralize(n, ' day')} ${postfix}`\n  } else if (elapsed < msPerYear) {\n    let n = Math.round(elapsed/msPerMonth)\n    return `${n}${short ? 'mo' : pluralize(n, ' month')} ${postfix}`\n  } else {\n    let n = Math.round(elapsed/msPerYear)\n    return `${n}${short ? 'yr' : pluralize(n, ' year')} ${postfix}`\n  }\n}"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/base/worker/workerMain.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n(function(){\nvar e,t,n=[\"require\",\"exports\",\"vs/editor/common/core/position\",\"vs/base/common/errors\",\"vs/base/common/platform\",\"vs/editor/common/core/range\",\"vs/base/common/diff/diff\",\"vs/base/common/iterator\",\"vs/base/common/lifecycle\",\"vs/base/common/event\",\"vs/base/common/types\",\"vs/base/common/uint\",\"vs/base/common/uri\",\"vs/base/common/arrays\",\"vs/base/common/diff/diffChange\",\"vs/base/common/functional\",\"vs/base/common/hash\",\"vs/base/common/keyCodes\",\"vs/base/common/linkedList\",\"vs/base/common/cancellation\",\"vs/base/common/strings\",\"vs/editor/common/core/characterClassifier\",\"vs/editor/common/core/selection\",\"vs/editor/common/core/token\",\"vs/editor/common/diff/diffComputer\",\"vs/editor/common/model/wordHelper\",\"vs/editor/common/modes/linkComputer\",\"vs/editor/common/modes/supports/inplaceReplaceSupport\",\"vs/editor/common/standalone/standaloneEnums\",\"vs/editor/common/standalone/standaloneBase\",\"vs/editor/common/viewModel/prefixSumComputer\",\"vs/editor/common/model/mirrorTextModel\",\"vs/base/common/worker/simpleWorker\",\"vs/editor/common/standalone/promise-polyfill/polyfill\",\"vs/editor/common/services/editorSimpleWorker\"],r=function(e){\nfor(var t=[],r=0,i=e.length;r<i;r++)t[r]=n[e[r]];return t},i=this,o=\"object\"==typeof global?global:{};!function(e){e.global=i;var t=function(){function t(){this._detected=!1,this._isWindows=!1,this._isNode=!1,this._isElectronRenderer=!1,this._isWebWorker=!1}return Object.defineProperty(t.prototype,\"isWindows\",{get:function(){return this._detect(),this._isWindows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isNode\",{get:function(){return this._detect(),this._isNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isElectronRenderer\",{get:function(){return this._detect(),this._isElectronRenderer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isWebWorker\",{get:function(){return this._detect(),this._isWebWorker},enumerable:!0,configurable:!0}),t.prototype._detect=function(){this._detected||(this._detected=!0,this._isWindows=t._isWindows(),this._isNode=\"undefined\"!=typeof module&&!!module.exports,\nthis._isElectronRenderer=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type,this._isWebWorker=\"function\"==typeof e.global.importScripts)},t._isWindows=function(){return!!(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf(\"Windows\")>=0)||\"undefined\"!=typeof process&&\"win32\"===process.platform},t}();e.Environment=t}(t||(t={})),function(e){var t=function(e,t,n){this.type=e,this.detail=t,this.timestamp=n};e.LoaderEvent=t;var n=function(){function n(e){this._events=[new t(1,\"\",e)]}return n.prototype.record=function(n,r){this._events.push(new t(n,r,e.Utilities.getHighPerformanceTimestamp()))},n.prototype.getEvents=function(){return this._events},n}();e.LoaderEventRecorder=n;var r=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=r}(t||(t={})),function(e){var t=function(){function t(){}\nreturn t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,\"#\"),e){if(/^file:\\/\\/\\//.test(t))return t.substr(8);if(/^file:\\/\\//.test(t))return t.substr(5)}else if(/^file:\\/\\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\\#]*\\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\\/\\/)|(https:\\/\\/)|(file:\\/\\/)|(\\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var n=void 0;for(n in e)e.hasOwnProperty(n)&&t(n,e[n])}},t.isEmpty=function(e){var n=!0;return t.forEachProperty(e,(function(){n=!1})),n},t.recursiveClone=function(e){if(!e||\"object\"!=typeof e)return e;var n=Array.isArray(e)?[]:{};return t.forEachProperty(e,(function(e,r){n[e]=r&&\"object\"==typeof r?t.recursiveClone(r):r})),n},t.generateAnonymousModule=function(){return\"===anonymous\"+t.NEXT_ANONYMOUS_ID+++\"===\"},\nt.isAnonymousModule=function(e){return t.startsWith(e,\"===anonymous\")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&\"function\"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(t||(t={})),function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||\"Unknown Error\");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var n=function(){function n(){}return n.validateConfigurationOptions=function(n){if(\"string\"!=typeof(n=n||{}).baseUrl&&(n.baseUrl=\"\"),\"boolean\"!=typeof n.isBuild&&(n.isBuild=!1),\"object\"!=typeof n.paths&&(n.paths={}),\"object\"!=typeof n.config&&(n.config={}),void 0===n.catchError&&(n.catchError=!1),void 0===n.recordStats&&(n.recordStats=!1),\"string\"!=typeof n.urlArgs&&(n.urlArgs=\"\"),\n\"function\"!=typeof n.onError&&(n.onError=function(e){return\"loading\"===e.phase?(console.error('Loading \"'+e.moduleId+'\" failed'),console.error(e),console.error(\"Here are the modules that depend on it:\"),void console.error(e.neededBy)):\"factory\"===e.phase?(console.error('The factory method of \"'+e.moduleId+'\" has thrown an exception'),void console.error(e)):void 0}),Array.isArray(n.ignoreDuplicateModules)||(n.ignoreDuplicateModules=[]),n.baseUrl.length>0&&(e.Utilities.endsWith(n.baseUrl,\"/\")||(n.baseUrl+=\"/\")),\"string\"!=typeof n.cspNonce&&(n.cspNonce=\"\"),Array.isArray(n.nodeModules)||(n.nodeModules=[]),n.nodeCachedData&&\"object\"==typeof n.nodeCachedData&&(\"string\"!=typeof n.nodeCachedData.seed&&(n.nodeCachedData.seed=\"seed\"),(\"number\"!=typeof n.nodeCachedData.writeDelay||n.nodeCachedData.writeDelay<0)&&(n.nodeCachedData.writeDelay=7e3),!n.nodeCachedData.path||\"string\"!=typeof n.nodeCachedData.path)){var r=t(new Error(\"INVALID cached data configuration, 'path' MUST be set\"));r.phase=\"configuration\",\nn.onError(r),n.nodeCachedData=void 0}return n},n.mergeConfigurationOptions=function(t,r){void 0===t&&(t=null),void 0===r&&(r=null);var i=e.Utilities.recursiveClone(r||{});return e.Utilities.forEachProperty(t,(function(t,n){\"ignoreDuplicateModules\"===t&&void 0!==i.ignoreDuplicateModules?i.ignoreDuplicateModules=i.ignoreDuplicateModules.concat(n):\"paths\"===t&&void 0!==i.paths?e.Utilities.forEachProperty(n,(function(e,t){return i.paths[e]=t})):\"config\"===t&&void 0!==i.config?e.Utilities.forEachProperty(n,(function(e,t){return i.config[e]=t})):i[t]=e.Utilities.recursiveClone(n)})),n.validateConfigurationOptions(i)},n}();e.ConfigurationOptionsUtil=n;var r=function(){function t(e,t){if(this._env=e,this.options=n.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),\"\"===this.options.baseUrl){if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){\nvar r=this.options.nodeRequire.main.filename,i=Math.max(r.lastIndexOf(\"/\"),r.lastIndexOf(\"\\\\\"));this.options.baseUrl=r.substring(0,i+1)}if(this.options.nodeMain&&this._env.isNode){r=this.options.nodeMain,i=Math.max(r.lastIndexOf(\"/\"),r.lastIndexOf(\"\\\\\"));this.options.baseUrl=r.substring(0,i+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e<this.options.ignoreDuplicateModules.length;e++)this.ignoreDuplicateModulesMap[this.options.ignoreDuplicateModules[e]]=!0},t.prototype._createNodeModulesMap=function(){this.nodeModulesMap=Object.create(null);for(var e=0,t=this.options.nodeModules;e<t.length;e++){var n=t[e];this.nodeModulesMap[n]=!0}},t.prototype._createSortedPathsRules=function(){var t=this;this.sortedPathsRules=[],e.Utilities.forEachProperty(this.options.paths,(function(e,n){Array.isArray(n)?t.sortedPathsRules.push({from:e,to:n}):t.sortedPathsRules.push({from:e,to:[n]})})),this.sortedPathsRules.sort((function(e,t){\nreturn t.from.length-e.from.length}))},t.prototype.cloneAndMerge=function(e){return new t(this._env,n.mergeConfigurationOptions(e,this.options))},t.prototype.getOptionsLiteral=function(){return this.options},t.prototype._applyPaths=function(t){for(var n,r=0,i=this.sortedPathsRules.length;r<i;r++)if(n=this.sortedPathsRules[r],e.Utilities.startsWith(t,n.from)){for(var o=[],s=0,u=n.to.length;s<u;s++)o.push(n.to[s]+t.substr(n.from.length));return o}return[t]},t.prototype._addUrlArgsToUrl=function(t){return e.Utilities.containsQueryString(t)?t+\"&\"+this.options.urlArgs:t+\"?\"+this.options.urlArgs},t.prototype._addUrlArgsIfNecessaryToUrl=function(e){return this.options.urlArgs?this._addUrlArgsToUrl(e):e},t.prototype._addUrlArgsIfNecessaryToUrls=function(e){if(this.options.urlArgs)for(var t=0,n=e.length;t<n;t++)e[t]=this._addUrlArgsToUrl(e[t]);return e},t.prototype.moduleIdToPaths=function(t){if(!0===this.nodeModulesMap[t])return this.isBuild()?[\"empty:\"]:[\"node|\"+t];var n,r=t\n;if(e.Utilities.endsWith(r,\".js\")||e.Utilities.isAbsolutePath(r))e.Utilities.endsWith(r,\".js\")||e.Utilities.containsQueryString(r)||(r+=\".js\"),n=[r];else for(var i=0,o=(n=this._applyPaths(r)).length;i<o;i++)this.isBuild()&&\"empty:\"===n[i]||(e.Utilities.isAbsolutePath(n[i])||(n[i]=this.options.baseUrl+n[i]),e.Utilities.endsWith(n[i],\".js\")||e.Utilities.containsQueryString(n[i])||(n[i]=n[i]+\".js\"));return this._addUrlArgsIfNecessaryToUrls(n)},t.prototype.requireToUrl=function(t){var n=t;return e.Utilities.isAbsolutePath(n)||(n=this._applyPaths(n)[0],e.Utilities.isAbsolutePath(n)||(n=this.options.baseUrl+n)),this._addUrlArgsIfNecessaryToUrl(n)},t.prototype.isBuild=function(){return this.options.isBuild},t.prototype.isDuplicateMessageIgnoredFor=function(e){return this.ignoreDuplicateModulesMap.hasOwnProperty(e)},t.prototype.getConfigForModule=function(e){if(this.options.config)return this.options.config[e]},t.prototype.shouldCatchError=function(){return this.options.catchError},\nt.prototype.shouldRecordStats=function(){return this.options.recordStats},t.prototype.onError=function(e){this.options.onError(e)},t}();e.Configuration=r}(t||(t={})),function(e){var t=function(){function e(e){this._env=e,this._scriptLoader=null,this._callbackMap={}}return e.prototype.load=function(e,t,o,s){var u=this;this._scriptLoader||(this._scriptLoader=this._env.isWebWorker?new r:this._env.isNode?new i(this._env):new n);var a={callback:o,errorback:s};this._callbackMap.hasOwnProperty(t)?this._callbackMap[t].push(a):(this._callbackMap[t]=[a],this._scriptLoader.load(e,t,(function(){return u.triggerCallback(t)}),(function(e){return u.triggerErrorback(t,e)})))},e.prototype.triggerCallback=function(e){var t=this._callbackMap[e];delete this._callbackMap[e];for(var n=0;n<t.length;n++)t[n].callback()},e.prototype.triggerErrorback=function(e,t){var n=this._callbackMap[e];delete this._callbackMap[e];for(var r=0;r<n.length;r++)n[r].errorback(t)},e}(),n=function(){function e(){}\nreturn e.prototype.attachListeners=function(e,t,n){var r=function(){e.removeEventListener(\"load\",i),e.removeEventListener(\"error\",o)},i=function(e){r(),t()},o=function(e){r(),n(e)};e.addEventListener(\"load\",i),e.addEventListener(\"error\",o)},e.prototype.load=function(e,t,n,r){var i=document.createElement(\"script\");i.setAttribute(\"async\",\"async\"),i.setAttribute(\"type\",\"text/javascript\"),this.attachListeners(i,n,r),i.setAttribute(\"src\",t);var o=e.getConfig().getOptionsLiteral().cspNonce;o&&i.setAttribute(\"nonce\",o),document.getElementsByTagName(\"head\")[0].appendChild(i)},e}(),r=function(){function e(){}return e.prototype.load=function(e,t,n,r){try{importScripts(t),n()}catch(e){r(e)}},e}(),i=function(){function t(e){this._env=e,this._didInitialize=!1,this._didPatchNodeRequire=!1}return t.prototype._init=function(e){this._didInitialize||(this._didInitialize=!0,this._fs=e(\"fs\"),this._vm=e(\"vm\"),this._path=e(\"path\"),this._crypto=e(\"crypto\"))},t.prototype._initNodeRequire=function(e,t){\nvar n=t.getConfig().getOptionsLiteral().nodeCachedData;if(n&&!this._didPatchNodeRequire){this._didPatchNodeRequire=!0;var r=this,i=e(\"module\");i.prototype._compile=function(e,s){var u,a=i.wrap(e.replace(/^#!.*/,\"\")),l=t.getRecorder(),c=r._getCachedDataPath(n,s),d={filename:s};try{var f=r._fs.readFileSync(c);u=f.slice(0,16),d.cachedData=f.slice(16),l.record(60,c)}catch(e){l.record(61,c)}var h=new r._vm.Script(a,d),p=h.runInThisContext(d),m=r._path.dirname(s),g=function(e){var t=e.constructor,n=function(t){try{return e.require(t)}finally{}};return n.resolve=function(n){return t._resolveFilename(n,e)},n.main=process.mainModule,n.extensions=t._extensions,n.cache=t._cache,n}(this),v=[this.exports,g,this,s,m,process,o,Buffer],_=p.apply(this.exports,v);return r._handleCachedData(h,a,c,!d.cachedData,t),r._verifyCachedData(h,a,c,u,t),_}}},t.prototype.load=function(n,r,i,o){var s=this,u=n.getConfig().getOptionsLiteral(),a=u.nodeRequire||e.global.nodeRequire,l=u.nodeInstrumenter||function(e){return e};this._init(a),\nthis._initNodeRequire(a,n);var c=n.getRecorder();if(/^node\\|/.test(r)){var d=r.split(\"|\"),f=null;try{f=a(d[1])}catch(e){return void o(e)}n.enqueueDefineAnonymousModule([],(function(){return f})),i()}else{r=e.Utilities.fileUriToFilePath(this._env.isWindows,r);var h=this._path.normalize(r),p=this._getElectronRendererScriptPathOrUri(h),m=Boolean(u.nodeCachedData),g=m?this._getCachedDataPath(u.nodeCachedData,r):void 0;this._readSourceAndCachedData(h,g,c,(function(e,r,u,a){if(e)o(e);else{var c;c=r.charCodeAt(0)===t._BOM?t._PREFIX+r.substring(1)+t._SUFFIX:t._PREFIX+r+t._SUFFIX,c=l(c,h);var d={filename:p,cachedData:u},f=s._createAndEvalScript(n,c,d,i,o);s._handleCachedData(f,c,g,m&&!u,n),s._verifyCachedData(f,c,g,a,n)}}))}},t.prototype._createAndEvalScript=function(t,n,r,i,o){var s=t.getRecorder();s.record(31,r.filename);var u=new this._vm.Script(n,r),a=u.runInThisContext(r),l=t.getGlobalAMDDefineFunc(),c=!1,d=function(){return c=!0,l.apply(null,arguments)};return d.amd=l.amd,\na.call(e.global,t.getGlobalAMDRequireFunc(),d,r.filename,this._path.dirname(r.filename)),s.record(32,r.filename),c?i():o(new Error(\"Didn't receive define call in \"+r.filename+\"!\")),u},t.prototype._getElectronRendererScriptPathOrUri=function(e){if(!this._env.isElectronRenderer)return e;var t=e.match(/^([a-z])\\:(.*)/i);return t?\"file:///\"+(t[1].toUpperCase()+\":\"+t[2]).replace(/\\\\/g,\"/\"):\"file://\"+e},t.prototype._getCachedDataPath=function(e,t){var n=this._crypto.createHash(\"md5\").update(t,\"utf8\").update(e.seed,\"utf8\").digest(\"hex\"),r=this._path.basename(t).replace(/\\.js$/,\"\");return this._path.join(e.path,r+\"-\"+n+\".code\")},t.prototype._handleCachedData=function(e,t,n,r,i){var o=this;e.cachedDataRejected?this._fs.unlink(n,(function(r){i.getRecorder().record(62,n),o._createAndWriteCachedData(e,t,n,i),r&&i.getConfig().onError(r)})):r&&this._createAndWriteCachedData(e,t,n,i)},t.prototype._createAndWriteCachedData=function(e,t,n,r){\nvar i=this,o=Math.ceil(r.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,u=0,a=void 0,l=function(){setTimeout((function(){a||(a=i._crypto.createHash(\"md5\").update(t,\"utf8\").digest());var o=e.createCachedData();0===o.length||o.length===s||u>=5||(s=o.length,i._fs.writeFile(n,Buffer.concat([a,o]),(function(e){e&&r.getConfig().onError(e),r.getRecorder().record(63,n),l()})))}),o*Math.pow(4,u++))};l()},t.prototype._readSourceAndCachedData=function(e,t,n,r){if(t){var i=void 0,o=void 0,s=void 0,u=2,a=function(e){e?r(e):0==--u&&r(void 0,i,o,s)};this._fs.readFile(e,{encoding:\"utf8\"},(function(e,t){i=t,a(e)})),this._fs.readFile(t,(function(e,r){!e&&r&&r.length>0?(s=r.slice(0,16),o=r.slice(16),n.record(60,t)):n.record(61,t),a()}))}else this._fs.readFile(e,{encoding:\"utf8\"},r)},t.prototype._verifyCachedData=function(e,t,n,r,i){var o=this;r&&(e.cachedDataRejected||setTimeout((function(){var e=o._crypto.createHash(\"md5\").update(t,\"utf8\").digest()\n;r.equals(e)||(i.getConfig().onError(new Error(\"FAILED TO VERIFY CACHED DATA, deleting stale '\"+n+\"' now, but a RESTART IS REQUIRED\")),o._fs.unlink(n,(function(e){return i.getConfig().onError(e)})))}),Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX=\"(function (require, define, __filename, __dirname) { \",t._SUFFIX=\"\\n});\",t}();e.createScriptLoader=function(e){return new t(e)}}(t||(t={})),function(e){var t=function(){function t(e){var t=e.lastIndexOf(\"/\");this.fromModulePath=-1!==t?e.substr(0,t+1):\"\"}return t._normalizeModuleId=function(e){var t,n=e;for(t=/\\/\\.\\//;t.test(n);)n=n.replace(t,\"/\");for(n=n.replace(/^\\.\\//g,\"\"),t=/\\/(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//;t.test(n);)n=n.replace(t,\"/\");return n=n.replace(/^(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//,\"\")},t.prototype.resolveModule=function(n){var r=n\n;return e.Utilities.isAbsolutePath(r)||(e.Utilities.startsWith(r,\"./\")||e.Utilities.startsWith(r,\"../\"))&&(r=t._normalizeModuleId(this.fromModulePath+r)),r},t.ROOT=new t(\"\"),t}();e.ModuleIdResolver=t;var n=function(){function t(e,t,n,r,i,o){this.id=e,this.strId=t,this.dependencies=n,this._callback=r,this._errorback=i,this.moduleIdResolver=o,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,n){try{return{returnedValue:t.apply(e.global,n),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,n,r,i){return t.isBuild()&&!e.Utilities.isAnonymousModule(n)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(r,i):{returnedValue:r.apply(e.global,i),producedError:null}},t.prototype.complete=function(n,r,i){this._isComplete=!0;var o=null;if(this._callback)if(\"function\"==typeof this._callback){n.record(21,this.strId)\n;var s=t._invokeFactory(r,this.strId,this._callback,i);o=s.producedError,n.record(22,this.strId),o||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(o){var u=e.ensureError(o);u.phase=\"factory\",u.moduleId=this.strId,this.error=u,r.onError(u)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e,!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=n;var r=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId(\"exports\"),this.getModuleId(\"module\"),this.getModuleId(\"require\")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,\nthis._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),i=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=i;var o=function(e,t,n){this.id=e,this.pluginId=t,this.pluginParam=n};e.PluginDependency=o;var s=function(){function s(t,n,i,o,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=n,this._loaderAvailableTimestamp=s,this._defineFunc=i,this._requireFunc=o,this._moduleIdProvider=new r,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},\ns.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var n=function(e){return e.replace(/\\\\/g,\"/\")},r=n(e),i=t.split(/\\n/),o=0;o<i.length;o++){var s=i[o].match(/(.*):(\\d+):(\\d+)\\)?$/);if(s){var u=s[1],a=s[2],l=s[3],c=Math.max(u.lastIndexOf(\" \")+1,u.lastIndexOf(\"(\")+1);if((u=n(u=u.substr(c)))===r){var d={line:parseInt(a,10),col:parseInt(l,10)};return 1===d.line&&(d.col-=\"(function (require, define, __filename, __dirname) { \".length),d}}}throw new Error(\"Could not correlate define call site for needle \"+e)},s.prototype.getBuildInfo=function(){if(!this._config.isBuild())return null;for(var e=[],t=0,n=0,r=this._modules2.length;n<r;n++){var i=this._modules2[n];if(i){var o=this._buildInfoPath[i.id]||null,u=this._buildInfoDefineStack[i.id]||null,a=this._buildInfoDependencies[i.id];e[t++]={id:i.strId,path:o,defineLocation:o&&u?s._findRelevantLocationInStack(o,u):null,\ndependencies:a,shim:null,exports:i.exports}}}return e},s.prototype.getRecorder=function(){return this._recorder||(this._config.shouldRecordStats()?this._recorder=new e.LoaderEventRecorder(this._loaderAvailableTimestamp):this._recorder=e.NullLoaderEventRecorder.INSTANCE),this._recorder},s.prototype.getLoaderEvents=function(){return this.getRecorder().getEvents()},s.prototype.enqueueDefineAnonymousModule=function(e,t){if(null!==this._currentAnnonymousDefineCall)throw new Error(\"Can only have one anonymous define call per script file\");var n=null;this._config.isBuild()&&(n=new Error(\"StackLocation\").stack||null),this._currentAnnonymousDefineCall={stack:n,dependencies:e,callback:t}},s.prototype.defineModule=function(e,r,i,o,s,u){var a=this;void 0===u&&(u=new t(e));var l=this._moduleIdProvider.getModuleId(e);if(this._modules2[l])this._config.isDuplicateMessageIgnoredFor(e)||console.warn(\"Duplicate definition of module '\"+e+\"'\");else{var c=new n(l,e,this._normalizeDependencies(r,u),i,o,u);this._modules2[l]=c,\nthis._config.isBuild()&&(this._buildInfoDefineStack[l]=s,this._buildInfoDependencies[l]=(c.dependencies||[]).map((function(e){return a._moduleIdProvider.getStrModuleId(e.id)}))),this._resolve(c)}},s.prototype._normalizeDependency=function(e,t){if(\"exports\"===e)return i.EXPORTS;if(\"module\"===e)return i.MODULE;if(\"require\"===e)return i.REQUIRE;var n=e.indexOf(\"!\");if(n>=0){var r=t.resolveModule(e.substr(0,n)),s=t.resolveModule(e.substr(n+1)),u=this._moduleIdProvider.getModuleId(r+\"!\"+s),a=this._moduleIdProvider.getModuleId(r);return new o(u,a,s)}return new i(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var n=[],r=0,i=0,o=e.length;i<o;i++)n[r++]=this._normalizeDependency(e[i],t);return n},s.prototype._relativeRequire=function(t,n,r,i){if(\"string\"==typeof n)return this.synchronousRequire(n,t);this.defineModule(e.Utilities.generateAnonymousModule(),n,r,i,null,t)},s.prototype.synchronousRequire=function(e,n){void 0===n&&(n=new t(e))\n;var r=this._normalizeDependency(e,n),i=this._modules2[r.id];if(!i)throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This is the first mention of this module!\");if(!i.isComplete())throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This module has not been resolved completely yet.\");if(i.error)throw i.error;return i.exports},s.prototype.configure=function(t,n){var r=this._config.shouldRecordStats();this._config=n?new e.Configuration(this._env,t):this._config.cloneAndMerge(t),this._config.shouldRecordStats()&&!r&&(this._recorder=null)},s.prototype.getConfig=function(){return this._config},s.prototype._onLoad=function(e){if(null!==this._currentAnnonymousDefineCall){var t=this._currentAnnonymousDefineCall;this._currentAnnonymousDefineCall=null,this.defineModule(this._moduleIdProvider.getStrModuleId(e),t.dependencies,t.callback,null,t.stack)}},s.prototype._createLoadError=function(t,n){\nvar r=this,i=this._moduleIdProvider.getStrModuleId(t),o=(this._inverseDependencies2[t]||[]).map((function(e){return r._moduleIdProvider.getStrModuleId(e)})),s=e.ensureError(n);return s.phase=\"loading\",s.moduleId=i,s.neededBy=o,s},s.prototype._onLoadError=function(e,t){var r=this._createLoadError(e,t);this._modules2[e]||(this._modules2[e]=new n(e,this._moduleIdProvider.getStrModuleId(e),[],(function(){}),(function(){}),null));for(var i=[],o=0,s=this._moduleIdProvider.getMaxModuleId();o<s;o++)i[o]=!1;var u=!1,a=[];for(a.push(e),i[e]=!0;a.length>0;){var l=a.shift(),c=this._modules2[l];c&&(u=c.onDependencyError(r)||u);var d=this._inverseDependencies2[l];if(d)for(o=0,s=d.length;o<s;o++){var f=d[o];i[f]||(a.push(f),i[f]=!0)}}u||this._config.onError(r)},s.prototype._hasDependencyPath=function(e,t){var n=this._modules2[e];if(!n)return!1;for(var r=[],i=0,o=this._moduleIdProvider.getMaxModuleId();i<o;i++)r[i]=!1;var s=[];for(s.push(n),r[e]=!0;s.length>0;){var u=s.shift().dependencies;if(u)for(i=0,o=u.length;i<o;i++){\nvar a=u[i];if(a.id===t)return!0;var l=this._modules2[a.id];l&&!r[a.id]&&(r[a.id]=!0,s.push(l))}}return!1},s.prototype._findCyclePath=function(e,t,n){if(e===t||50===n)return[e];var r=this._modules2[e];if(!r)return null;var i=r.dependencies;if(i)for(var o=0,s=i.length;o<s;o++){var u=this._findCyclePath(i[o].id,t,n+1);if(null!==u)return u.push(e),u}return null},s.prototype._createRequire=function(t){var n=this,r=function(e,r,i){return n._relativeRequire(t,e,r,i)};return r.toUrl=function(e){return n._config.requireToUrl(t.resolveModule(e))},r.getStats=function(){return n.getLoaderEvents()},r.__$__nodeRequire=e.global.nodeRequire,r},s.prototype._loadModule=function(e){var t=this;if(!this._modules2[e]&&!this._knownModules2[e]){this._knownModules2[e]=!0;var n=this._moduleIdProvider.getStrModuleId(e),r=this._config.moduleIdToPaths(n);this._env.isNode&&(-1===n.indexOf(\"/\")||/^@[^\\/]+\\/[^\\/]+$/.test(n))&&r.push(\"node|\"+n);var i=-1,o=function(n){if(++i>=r.length)t._onLoadError(e,n);else{var s=r[i],u=t.getRecorder()\n;if(t._config.isBuild()&&\"empty:\"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);u.record(10,s),t._scriptLoader.load(t,s,(function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),u.record(11,s),t._onLoad(e)}),(function(e){u.record(12,s),o(e)}))}};o(null)}},s.prototype._loadPluginDependency=function(e,n){var r=this;if(!this._modules2[n.id]&&!this._knownModules2[n.id]){this._knownModules2[n.id]=!0;var i=function(e){r.defineModule(r._moduleIdProvider.getStrModuleId(n.id),[],e,null,null)};i.error=function(e){r._config.onError(r._createLoadError(n.id,e))},e.load(n.pluginParam,this._createRequire(t.ROOT),i,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,n=e.dependencies;if(n)for(var r=0,s=n.length;r<s;r++){var u=n[r];if(u!==i.EXPORTS)if(u!==i.MODULE)if(u!==i.REQUIRE){var a=this._modules2[u.id];if(a&&a.isComplete()){if(a.error)return void e.onDependencyError(a.error);e.unresolvedDependenciesCount--\n}else if(this._hasDependencyPath(u.id,e.id)){console.warn(\"There is a dependency cycle between '\"+this._moduleIdProvider.getStrModuleId(u.id)+\"' and '\"+this._moduleIdProvider.getStrModuleId(e.id)+\"'. The cyclic path follows:\");var l=this._findCyclePath(u.id,e.id,0)||[];l.reverse(),l.push(u.id),console.warn(l.map((function(e){return t._moduleIdProvider.getStrModuleId(e)})).join(\" => \\n\")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[u.id]=this._inverseDependencies2[u.id]||[],this._inverseDependencies2[u.id].push(e.id),u instanceof o){var c=this._modules2[u.pluginId];if(c&&c.isComplete()){this._loadPluginDependency(c.exports,u);continue}var d=this._inversePluginDependencies2.get(u.pluginId);d||(d=[],this._inversePluginDependencies2.set(u.pluginId,d)),d.push(u),this._loadModule(u.pluginId)}else this._loadModule(u.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}\n0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,n=this.getRecorder();if(!e.isComplete()){var r=e.dependencies,o=[];if(r)for(var s=0,u=r.length;s<u;s++){var a=r[s];if(a!==i.EXPORTS)if(a!==i.MODULE)if(a!==i.REQUIRE){var l=this._modules2[a.id];o[s]=l?l.exports:null}else o[s]=this._createRequire(e.moduleIdResolver);else o[s]={id:e.strId,config:function(){return t._config.getConfigForModule(e.strId)}};else o[s]=e.exports}e.complete(n,this._config,o);var c=this._inverseDependencies2[e.id];if(this._inverseDependencies2[e.id]=null,c)for(s=0,u=c.length;s<u;s++){var d=c[s],f=this._modules2[d];f.unresolvedDependenciesCount--,0===f.unresolvedDependenciesCount&&this._onModuleComplete(f)}var h=this._inversePluginDependencies2.get(e.id);if(h){this._inversePluginDependencies2.delete(e.id);for(s=0,u=h.length;s<u;s++)this._loadPluginDependency(e.exports,h[s])}}},s}();e.ModuleManager=s}(t||(t={})),function(t){var n=new t.Environment,r=null,i=function(e,t,n){\n\"string\"!=typeof e&&(n=t,t=e,e=null),\"object\"==typeof t&&Array.isArray(t)||(n=t,t=null),t||(t=[\"require\",\"exports\",\"module\"]),e?r.defineModule(e,t,n,null,null):r.enqueueDefineAnonymousModule(t,n)};i.amd={jQuery:!0};var o=function(e,t){void 0===t&&(t=!1),r.configure(e,t)},s=function(){if(1===arguments.length){if(arguments[0]instanceof Object&&!Array.isArray(arguments[0]))return void o(arguments[0]);if(\"string\"==typeof arguments[0])return r.synchronousRequire(arguments[0])}if(2!==arguments.length&&3!==arguments.length||!Array.isArray(arguments[0]))throw new Error(\"Unrecognized require call\");r.defineModule(t.Utilities.generateAnonymousModule(),arguments[0],arguments[1],arguments[2],null)};function u(){if(void 0!==t.global.require||\"undefined\"!=typeof require){var e=t.global.require||require;if(\"function\"==typeof e&&\"function\"==typeof e.resolve){var o=function(t){r.getRecorder().record(33,t);try{return e(t)}finally{r.getRecorder().record(34,t)}};t.global.nodeRequire=o,s.nodeRequire=o,s.__$__nodeRequire=o}}\nn.isNode&&!n.isElectronRenderer?(module.exports=s,require=s):(n.isElectronRenderer||(t.global.define=i),t.global.require=s)}s.config=o,s.getConfig=function(){return r.getConfig().getOptionsLiteral()},s.reset=function(){r=r.reset()},s.getBuildInfo=function(){return r.getBuildInfo()},s.getStats=function(){return r.getLoaderEvents()},s.define=function(){return i.apply(null,arguments)},t.init=u,\"function\"==typeof t.global.define&&t.global.define.amd||(r=new t.ModuleManager(n,t.createScriptLoader(n),i,s,t.Utilities.getHighPerformanceTimestamp()),void 0!==t.global.require&&\"function\"!=typeof t.global.require&&s.config(t.global.require),(e=function(){return i.apply(null,arguments)}).amd=i.amd,\"undefined\"==typeof doNotInitLoader&&u())}(t||(t={})),e(n[13],r([0,1]),(function(e,t){\"use strict\";function n(e,t){return function e(t,n,r,i,o){if(i<=r)return;var s=r+(i-r)/2|0;e(t,n,r,s,o);e(t,n,s+1,i,o);if(n(t[s],t[s+1])<=0)return;!function(e,t,n,r,i,o){for(var s=n,u=r+1,a=n;a<=i;a++)o[a]=e[a]\n;for(a=n;a<=i;a++)s>r?e[a]=o[u++]:u>i?e[a]=o[s++]:t(o[u],o[s])<0?e[a]=o[u++]:e[a]=o[s++]}(t,n,r,s,i,o)}(e,t,0,e.length-1,[]),e}function r(e,t){for(var n=0;n<e.length;n++){if(t(e[n]))return n}return-1}Object.defineProperty(t,\"__esModule\",{value:!0}),t.tail=function(e,t){return void 0===t&&(t=0),e[e.length-(1+t)]},t.tail2=function(e){if(0===e.length)throw new Error(\"Invalid tail call\");return[e.slice(0,e.length-1),e[e.length-1]]},t.equals=function(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var r=0,i=e.length;r<i;r++)if(!n(e[r],t[r]))return!1;return!0},t.binarySearch=function(e,t,n){for(var r=0,i=e.length-1;r<=i;){var o=(r+i)/2|0,s=n(e[o],t);if(s<0)r=o+1;else{if(!(s>0))return o;i=o-1}}return-(r+1)},t.findFirstInSorted=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.mergeSort=n,t.groupBy=function(e,t){for(var r=[],i=void 0,o=0,s=n(e.slice(0),t);o<s.length;o++){\nvar u=s[o];i&&0===t(i[0],u)?i.push(u):(i=[u],r.push(i))}return r},t.coalesce=function(e){return e.filter((function(e){return!!e}))},t.isFalsyOrEmpty=function(e){return!Array.isArray(e)||0===e.length},t.isNonEmptyArray=function(e){return Array.isArray(e)&&e.length>0},t.distinct=function(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var r=t(e);return!n[r]&&(n[r]=!0,!0)}))},t.distinctES6=function(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))},t.fromSet=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.firstIndex=r,t.first=function(e,t,n){void 0===n&&(n=void 0);var i=r(e,t);return i<0?n:e[i]},t.firstOrDefault=function(e,t){return e.length>0?e[0]:t},t.flatten=function(e){var t;return(t=[]).concat.apply(t,e)},t.range=function(e,t){var n=\"number\"==typeof t?e:0;\"number\"==typeof t?n=e:(n=0,t=e);var r=[];if(n<=t)for(var i=n;i<t;i++)r.push(i);else for(i=n;i>t;i--)r.push(i);return r},\nt.arrayInsert=function(e,t,n){var r=e.slice(0,t),i=e.slice(t);return r.concat(n,i)},t.pushToStart=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.find=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(t(r,n,e))return r}},t.asArray=function(e){return Array.isArray(e)?e:[e]}})),e(n[14],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();t.DiffChange=n})),e(n[3],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){\nif(e.stack)throw new Error(e.message+\"\\n\\n\"+e.stack);throw e}),0)}}return e.prototype.emit=function(e){this.listeners.forEach((function(t){t(e)}))},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}();t.ErrorHandler=n,t.errorHandler=new n,t.onUnexpectedError=function(e){i(e)||t.errorHandler.onUnexpectedError(e)},t.onUnexpectedExternalError=function(e){i(e)||t.errorHandler.onUnexpectedExternalError(e)},t.transformErrorForSerialization=function(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e};var r=\"Canceled\";function i(e){return e instanceof Error&&e.name===r&&e.message===r}t.isPromiseCanceledError=i,t.canceled=function(){var e=new Error(r);return e.name=e.message,e},t.illegalArgument=function(e){return e?new Error(\"Illegal argument: \"+e):new Error(\"Illegal argument\")},t.illegalState=function(e){\nreturn e?new Error(\"Illegal state: \"+e):new Error(\"Illegal state\")}})),e(n[15],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.once=function(e){var t,n=this,r=!1;return function(){return r?t:(r=!0,t=e.apply(n,arguments))}}})),e(n[16],r([0,1]),(function(e,t){\"use strict\";function n(e,t){switch(void 0===t&&(t=0),typeof e){case\"object\":return null===e?r(349,t):Array.isArray(e)?(o=e,s=r(104579,s=t),o.reduce((function(e,t){return n(t,e)}),s)):function(e,t){return t=r(181387,t),Object.keys(e).sort().reduce((function(t,r){return t=i(r,t),n(e[r],t)}),t)}(e,t);case\"string\":return i(e,t);case\"boolean\":return function(e,t){return r(e?433:863,t)}(e,t);case\"number\":return r(e,t);case\"undefined\":return r(0,937);default:return r(0,617)}var o,s}function r(e,t){return(t<<5)-t+e|0}function i(e,t){t=r(149417,t);for(var n=0,i=e.length;n<i;n++)t=r(e.charCodeAt(n),t);return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hash=n,t.stringHash=i})),e(n[6],r([0,1,14,16]),(function(e,t,n,r){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.source=e}return e.prototype.getElements=function(){for(var e=this.source,t=new Int32Array(e.length),n=0,r=e.length;n<r;n++)t[n]=e.charCodeAt(n);return t},e}();t.StringDiffSequence=i,t.stringDiff=function(e,t,n){return new a(new i(e),new i(t)).ComputeDiff(n).changes};var o=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}();t.Debug=o;var s=function(){function e(){}return e.Copy=function(e,t,n,r,i){for(var o=0;o<i;o++)n[r+o]=e[t+o]},e.Copy2=function(e,t,n,r,i){for(var o=0;o<i;o++)n[r+o]=e[t+o]},e}();t.MyArray=s;var u=function(){function e(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return e.prototype.MarkNextChange=function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),\nthis.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),a=function(){function e(t,n,r){void 0===r&&(r=null),this.ContinueProcessingPredicate=r;var i=e._getElements(t),o=i[0],s=i[1],u=i[2],a=e._getElements(n),l=a[0],c=a[1],d=a[2];this._hasStrings=u&&d,this._originalStringElements=o,this._originalElementsOrHash=s,\nthis._modifiedStringElements=l,this._modifiedElementsOrHash=c,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e._isStringArray=function(e){return e.length>0&&\"string\"==typeof e[0]},e._getElements=function(t){var n=t.getElements();if(e._isStringArray(n)){for(var i=new Int32Array(n.length),o=0,s=n.length;o<s;o++)i[o]=r.stringHash(n[o],0);return[n,i,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]},e.prototype.ElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])},e.prototype.OriginalElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])},e.prototype.ModifiedElementsAreEqual=function(e,t){\nreturn this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)},e.prototype._ComputeDiff=function(e,t,n,r,i){var o=[!1],s=this.ComputeDiffRecursive(e,t,n,r,o);return i&&(s=this.PrettifyChanges(s)),{quitEarly:o[0],changes:s}},e.prototype.ComputeDiffRecursive=function(e,t,r,i,s){for(s[0]=!1;e<=t&&r<=i&&this.ElementsAreEqual(e,r);)e++,r++;for(;t>=e&&i>=r&&this.ElementsAreEqual(t,i);)t--,i--;if(e>t||r>i){var u=void 0;return r<=i?(o.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),u=[new n.DiffChange(e,0,r,i-r+1)]):e<=t?(o.Assert(r===i+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[new n.DiffChange(e,t-e+1,r,0)]):(o.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),\no.Assert(r===i+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[]),u}var a=[0],l=[0],c=this.ComputeRecursionPoint(e,t,r,i,a,l,s),d=a[0],f=l[0];if(null!==c)return c;if(!s[0]){var h=this.ComputeDiffRecursive(e,d,r,f,s),p=[];return p=s[0]?[new n.DiffChange(d+1,t-(d+1)+1,f+1,i-(f+1)+1)]:this.ComputeDiffRecursive(d+1,t,f+1,i,s),this.ConcatenateChanges(h,p)}return[new n.DiffChange(e,t-e+1,r,i-r+1)]},e.prototype.WALKTRACE=function(e,t,r,i,o,s,a,l,c,d,f,h,p,m,g,v,_,y){var b,C=null,E=new u,S=t,L=r,N=p[0]-v[0]-i,M=-1073741824,w=this.m_forwardHistory.length-1;do{(P=N+e)===S||P<L&&c[P-1]<c[P+1]?(m=(f=c[P+1])-N-i,f<M&&E.MarkNextChange(),M=f,E.AddModifiedElement(f+1,m),N=P+1-e):(m=(f=c[P-1]+1)-N-i,f<M&&E.MarkNextChange(),M=f-1,E.AddOriginalElement(f,m+1),N=P-1-e),w>=0&&(e=(c=this.m_forwardHistory[w])[0],S=1,L=c.length-1)}while(--w>=-1);if(b=E.getReverseChanges(),y[0]){var A=p[0]+1,I=v[0]+1;if(null!==b&&b.length>0){var D=b[b.length-1];A=Math.max(A,D.getOriginalEnd()),I=Math.max(I,D.getModifiedEnd())}\nC=[new n.DiffChange(A,h-A+1,I,g-I+1)]}else{E=new u,S=s,L=a,N=p[0]-v[0]-l,M=1073741824,w=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var P;(P=N+o)===S||P<L&&d[P-1]>=d[P+1]?(m=(f=d[P+1]-1)-N-l,f>M&&E.MarkNextChange(),M=f+1,E.AddOriginalElement(f+1,m+1),N=P+1-o):(m=(f=d[P-1])-N-l,f>M&&E.MarkNextChange(),M=f,E.AddModifiedElement(f+1,m+1),N=P-1-o),w>=0&&(o=(d=this.m_reverseHistory[w])[0],S=1,L=d.length-1)}while(--w>=-1);C=E.getChanges()}return this.ConcatenateChanges(b,C)},e.prototype.ComputeRecursionPoint=function(e,t,r,i,o,u,a){var l=0,c=0,d=0,f=0,h=0,p=0;e--,r--,o[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var m=t-e+(i-r),g=m+1,v=new Int32Array(g),_=new Int32Array(g),y=i-r,b=t-e,C=e-r,E=t-i,S=(b-y)%2==0;v[y]=e,_[b]=t,a[0]=!1;for(var L=1;L<=m/2+1;L++){var N=0,M=0;d=this.ClipDiagonalBound(y-L,L,y,g),f=this.ClipDiagonalBound(y+L,L,y,g);for(var w=d;w<=f;w+=2){c=(l=w===d||w<f&&v[w-1]<v[w+1]?v[w+1]:v[w-1]+1)-(w-y)-C;for(var A=l;l<t&&c<i&&this.ElementsAreEqual(l+1,c+1);)l++,\nc++;if(v[w]=l,l+c>N+M&&(N=l,M=c),!S&&Math.abs(w-b)<=L-1&&l>=_[w])return o[0]=l,u[0]=c,A<=_[w]&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):null}var I=(N-e+(M-r)-L)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(N,I))return a[0]=!0,o[0]=N,u[0]=M,I>0&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):(e++,r++,[new n.DiffChange(e,t-e+1,r,i-r+1)]);h=this.ClipDiagonalBound(b-L,L,b,g),p=this.ClipDiagonalBound(b+L,L,b,g);for(w=h;w<=p;w+=2){c=(l=w===h||w<p&&_[w-1]>=_[w+1]?_[w+1]-1:_[w-1])-(w-b)-E;for(A=l;l>e&&c>r&&this.ElementsAreEqual(l,c);)l--,c--;if(_[w]=l,S&&Math.abs(w-y)<=L&&l<=v[w])return o[0]=l,u[0]=c,A>=v[w]&&L<=1448?this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a):null}if(L<=1447){var D=new Int32Array(f-d+2);D[0]=y-d+1,s.Copy2(v,d,D,1,f-d+1),this.m_forwardHistory.push(D),(D=new Int32Array(p-h+2))[0]=b-h+1,s.Copy2(_,h,D,1,p-h+1),this.m_reverseHistory.push(D)}}return this.WALKTRACE(y,d,f,C,b,h,p,E,v,_,l,t,o,c,i,u,S,a)},\ne.prototype.PrettifyChanges=function(e){for(var t=0;t<e.length;t++){for(var n=e[t],r=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,i=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,o=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<r&&n.modifiedStart+n.modifiedLength<i&&(!o||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var u=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],u)&&(e[t]=u[0],e.splice(t+1,1),t--)}for(t=e.length-1;t>=0;t--){n=e[t],r=0,i=0;if(t>0){var a=e[t-1];a.originalLength>0&&(r=a.originalStart+a.originalLength),a.modifiedLength>0&&(i=a.modifiedStart+a.modifiedLength)}o=n.originalLength>0,s=n.modifiedLength>0;for(var l=0,c=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength),d=1;;d++){var f=n.originalStart-d,h=n.modifiedStart-d\n;if(f<r||h<i)break;if(o&&!this.OriginalElementsAreEqual(f,f+n.originalLength))break;if(s&&!this.ModifiedElementsAreEqual(h,h+n.modifiedLength))break;var p=this._boundaryScore(f,n.originalLength,h,n.modifiedLength);p>c&&(c=p,l=d)}n.originalStart-=l,n.modifiedStart-=l}return e},e.prototype._OriginalIsBoundary=function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._originalStringElements[e])},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._modifiedStringElements[e])},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t\n;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,r){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,r)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var r=new Array(e.length+t.length-1);return s.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],s.Copy(t,1,r,e.length,t.length-1),r}r=new Array(e.length+t.length);return s.Copy(e,0,r,0,e.length),s.Copy(t,0,r,e.length,t.length),r},e.prototype.ChangesOverlap=function(e,t,r){if(o.Assert(e.originalStart<=t.originalStart,\"Left change is not less than or equal to right change\"),o.Assert(e.modifiedStart<=t.modifiedStart,\"Left change is not less than or equal to right change\"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,s=e.originalLength,u=e.modifiedStart,a=e.modifiedLength\n;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new n.DiffChange(i,s,u,a),!0}return r[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,r){if(e>=0&&e<r)return e;var i=t%2==0;return e<0?i===(n%2==0)?0:1:i===((r-n-1)%2==0)?r-1:r-2},e}();t.LcsDiff=a}));var s,u,a=this&&this.__extends||(s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});e(n[7],r([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FIN={done:!0,value:void 0},function(e){var n={next:function(){return t.FIN}};e.empty=function(){return n},e.single=function(e){var n=!1;return{\nnext:function(){return n?t.FIN:(n=!0,{done:!1,value:e})}}},e.fromArray=function(e,n,r){return void 0===n&&(n=0),void 0===r&&(r=e.length),{next:function(){return n>=r?t.FIN:{done:!1,value:e[n++]}}}},e.fromNativeIterator=function(e){return{next:function(){var n=e.next();return n.done?t.FIN:{done:!1,value:n.value}}}},e.from=function(t){return t?Array.isArray(t)?e.fromArray(t):t:e.empty()},e.map=function(e,n){return{next:function(){var r=e.next();return r.done?t.FIN:{done:!1,value:n(r.value)}}}},e.filter=function(e,n){return{next:function(){for(;;){var r=e.next();if(r.done)return t.FIN;if(n(r.value))return{done:!1,value:r.value}}}}},e.forEach=function(e,t){for(var n=e.next();!n.done;n=e.next())t(n.value)},e.collect=function(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY);var n=[];if(0===t)return n;for(var r=0,i=e.next();!i.done&&(n.push(i.value),!(++r>=t));i=e.next());return n},e.concat=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var r=0;return{next:function(){if(r>=e.length)return t.FIN\n;var n=e[r].next();return n.done?(r++,this.next()):n}}},e.chain=function(e){return new r(e)}}(n=t.Iterator||(t.Iterator={}));var r=function(){function e(e){this.it=e}return e.prototype.next=function(){return this.it.next()},e}();t.ChainableIterator=r,t.getSequenceIterator=function(e){return Array.isArray(e)?n.fromArray(e):e||n.empty()};var i=function(){function e(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=e.length),void 0===r&&(r=t-1),this.items=e,this.start=t,this.end=n,this.index=r}return e.prototype.first=function(){return this.index=this.start,this.current()},e.prototype.next=function(){return this.index=Math.min(this.index+1,this.end),this.current()},e.prototype.current=function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]},e}();t.ArrayIterator=i;var o=function(e){function t(t,n,r,i){return void 0===n&&(n=0),void 0===r&&(r=t.length),void 0===i&&(i=n-1),e.call(this,t,n,r,i)||this}return a(t,e),t.prototype.current=function(){return e.prototype.current.call(this)},\nt.prototype.previous=function(){return this.index=Math.max(this.index-1,this.start-1),this.current()},t.prototype.first=function(){return this.index=this.start,this.current()},t.prototype.last=function(){return this.index=this.end-1,this.current()},t.prototype.parent=function(){return null},t}(i);t.ArrayNavigator=o;var s=function(){function e(e,t){this.iterator=e,this.fn=t}return e.prototype.next=function(){return this.fn(this.iterator.next())},e}();t.MappedIterator=s})),e(n[17],r([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},e.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),i=new r,o=new r,s=new r;function u(e,t){var n=!!(2048&e),r=!!(256&e)\n;return new a(2===t?r:n,!!(1024&e),!!(512&e),2===t?n:r,255&e)}!function(){function e(e,t,n,r){void 0===n&&(n=t),void 0===r&&(r=n),i.define(e,t),o.define(e,n),s.define(e,r)}e(0,\"unknown\"),e(1,\"Backspace\"),e(2,\"Tab\"),e(3,\"Enter\"),e(4,\"Shift\"),e(5,\"Ctrl\"),e(6,\"Alt\"),e(7,\"PauseBreak\"),e(8,\"CapsLock\"),e(9,\"Escape\"),e(10,\"Space\"),e(11,\"PageUp\"),e(12,\"PageDown\"),e(13,\"End\"),e(14,\"Home\"),e(15,\"LeftArrow\",\"Left\"),e(16,\"UpArrow\",\"Up\"),e(17,\"RightArrow\",\"Right\"),e(18,\"DownArrow\",\"Down\"),e(19,\"Insert\"),e(20,\"Delete\"),e(21,\"0\"),e(22,\"1\"),e(23,\"2\"),e(24,\"3\"),e(25,\"4\"),e(26,\"5\"),e(27,\"6\"),e(28,\"7\"),e(29,\"8\"),e(30,\"9\"),e(31,\"A\"),e(32,\"B\"),e(33,\"C\"),e(34,\"D\"),e(35,\"E\"),e(36,\"F\"),e(37,\"G\"),e(38,\"H\"),e(39,\"I\"),e(40,\"J\"),e(41,\"K\"),e(42,\"L\"),e(43,\"M\"),e(44,\"N\"),e(45,\"O\"),e(46,\"P\"),e(47,\"Q\"),e(48,\"R\"),e(49,\"S\"),e(50,\"T\"),e(51,\"U\"),e(52,\"V\"),e(53,\"W\"),e(54,\"X\"),e(55,\"Y\"),e(56,\"Z\"),e(57,\"Meta\"),e(58,\"ContextMenu\"),e(59,\"F1\"),e(60,\"F2\"),e(61,\"F3\"),e(62,\"F4\"),e(63,\"F5\"),e(64,\"F6\"),e(65,\"F7\"),e(66,\"F8\"),e(67,\"F9\"),e(68,\"F10\"),\ne(69,\"F11\"),e(70,\"F12\"),e(71,\"F13\"),e(72,\"F14\"),e(73,\"F15\"),e(74,\"F16\"),e(75,\"F17\"),e(76,\"F18\"),e(77,\"F19\"),e(78,\"NumLock\"),e(79,\"ScrollLock\"),e(80,\";\",\";\",\"OEM_1\"),e(81,\"=\",\"=\",\"OEM_PLUS\"),e(82,\",\",\",\",\"OEM_COMMA\"),e(83,\"-\",\"-\",\"OEM_MINUS\"),e(84,\".\",\".\",\"OEM_PERIOD\"),e(85,\"/\",\"/\",\"OEM_2\"),e(86,\"`\",\"`\",\"OEM_3\"),e(110,\"ABNT_C1\"),e(111,\"ABNT_C2\"),e(87,\"[\",\"[\",\"OEM_4\"),e(88,\"\\\\\",\"\\\\\",\"OEM_5\"),e(89,\"]\",\"]\",\"OEM_6\"),e(90,\"'\",\"'\",\"OEM_7\"),e(91,\"OEM_8\"),e(92,\"OEM_102\"),e(93,\"NumPad0\"),e(94,\"NumPad1\"),e(95,\"NumPad2\"),e(96,\"NumPad3\"),e(97,\"NumPad4\"),e(98,\"NumPad5\"),e(99,\"NumPad6\"),e(100,\"NumPad7\"),e(101,\"NumPad8\"),e(102,\"NumPad9\"),e(103,\"NumPad_Multiply\"),e(104,\"NumPad_Add\"),e(105,\"NumPad_Separator\"),e(106,\"NumPad_Subtract\"),e(107,\"NumPad_Decimal\"),e(108,\"NumPad_Divide\")}(),function(e){e.toString=function(e){return i.keyCodeToStr(e)},e.fromString=function(e){return i.strToKeyCode(e)},e.toUserSettingsUS=function(e){return o.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return s.keyCodeToStr(e)},\ne.fromUserSettings=function(e){return o.strToKeyCode(e)||s.strToKeyCode(e)}}(t.KeyCodeUtils||(t.KeyCodeUtils={})),t.KeyChord=function(e,t){return(e|(65535&t)<<16>>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;var n=(65535&e)>>>0,r=(4294901760&e)>>>16;return new l(0!==r?[u(n,t),u(r,t)]:[u(n,t)])},t.createSimpleKeybinding=u;var a=function(){function e(e,t,n,r,i){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}return e.prototype.equals=function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.toChord=function(){return new l([this])},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}()\n;t.SimpleKeybinding=a;var l=function(){function e(e){if(0===e.length)throw n.illegalArgument(\"parts\");this.parts=e}return e.prototype.equals=function(e){if(null===e)return!1;if(this.parts.length!==e.parts.length)return!1;for(var t=0;t<this.parts.length;t++)if(!this.parts[t].equals(e.parts[t]))return!1;return!0},e}();t.ChordKeybinding=l;var c=function(e,t,n,r,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyLabel=i,this.keyAriaLabel=o};t.ResolvedKeybindingPart=c;var d=function(){};t.ResolvedKeybinding=d})),e(n[8],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,r=\"__is_disposable_tracked__\";function i(e){if(n&&e&&e!==a.None)try{e[r]=!0}catch(e){}}function o(e){if(!n)return e;var t=new Error(\"Potentially leaked disposable\").stack;return setTimeout((function(){e[r]||console.log(t)}),3e3),e}function s(e){return Array.isArray(e)?(e.forEach((function(e){e&&(i(e),e.dispose())})),[]):e?(i(e),e.dispose(),e):void 0}t.isDisposable=function(e){\nreturn\"function\"==typeof e.dispose&&0===e.dispose.length},t.dispose=s,t.combinedDisposable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.forEach(i),o({dispose:function(){return s(e)}})},t.toDisposable=function(e){var t=o({dispose:function(){i(t),e()}});return t};var u=function(){function e(){this._toDispose=new Set,this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed||(i(this),this._isDisposed=!0,this.clear())},e.prototype.clear=function(){this._toDispose.forEach((function(e){return e.dispose()})),this._toDispose.clear()},e.prototype.add=function(e){if(!e)return e;if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return i(e),this._isDisposed?console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(e),e},e}();t.DisposableStore=u;var a=function(){function e(){this._store=new u,o(this)}return e.prototype.dispose=function(){\ni(this),this._store.dispose()},e.prototype._register=function(e){if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(e)},e.None=Object.freeze({dispose:function(){}}),e}();t.Disposable=a;var l=function(){function e(){this._isDisposed=!1,o(this)}return Object.defineProperty(e.prototype,\"value\",{get:function(){return this._isDisposed?void 0:this._value},set:function(e){this._isDisposed||e===this._value||(this._value&&this._value.dispose(),e&&i(e),this._value=e)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this.value=void 0},e.prototype.dispose=function(){this._isDisposed=!0,i(this),this._value&&this._value.dispose(),this._value=void 0},e}();t.MutableDisposable=l;var c=function(){function e(e){this.object=e}return e.prototype.dispose=function(){},e}();t.ImmortalReference=c})),e(n[18],r([0,1,7]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){this.element=t,this.next=e.Undefined,\nthis.prev=e.Undefined}return e.Undefined=new e(void 0),e}(),i=function(){function e(){this._first=r.Undefined,this._last=r.Undefined,this._size=0}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return this._first===r.Undefined},e.prototype.clear=function(){this._first=r.Undefined,this._last=r.Undefined,this._size=0},e.prototype.unshift=function(e){return this._insert(e,!1)},e.prototype.push=function(e){return this._insert(e,!0)},e.prototype._insert=function(e,t){var n=this,i=new r(e);if(this._first===r.Undefined)this._first=i,this._last=i;else if(t){var o=this._last;this._last=i,i.prev=o,o.next=i}else{var s=this._first;this._first=i,i.next=s,s.prev=i}this._size+=1;var u=!1;return function(){u||(u=!0,n._remove(i))}},e.prototype.shift=function(){if(this._first!==r.Undefined){var e=this._first.element;return this._remove(this._first),e}},e.prototype.pop=function(){if(this._last!==r.Undefined){\nvar e=this._last.element;return this._remove(this._last),e}},e.prototype._remove=function(e){if(e.prev!==r.Undefined&&e.next!==r.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===r.Undefined&&e.next===r.Undefined?(this._first=r.Undefined,this._last=r.Undefined):e.next===r.Undefined?(this._last=this._last.prev,this._last.next=r.Undefined):e.prev===r.Undefined&&(this._first=this._first.next,this._first.prev=r.Undefined);this._size-=1},e.prototype.iterator=function(){var e,t=this._first;return{next:function(){return t===r.Undefined?n.FIN:(e?e.value=t.element:e={done:!1,value:t.element},t=t.next,e)}}},e.prototype.toArray=function(){for(var e=[],t=this._first;t!==r.Undefined;t=t.next)e.push(t.element);return e},e}();t.LinkedList=i})),e(n[9],r([0,1,3,15,8,18]),(function(e,t,n,r,i,o){\"use strict\";var s;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e){return function(t,n,r){void 0===n&&(n=null);var i,o=!1;return i=e((function(e){if(!o)return i?i.dispose():o=!0,t.call(n,e)\n}),null,r),o&&i.dispose(),i}}function n(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){return n.call(r,t(e))}),null,i)}))}function r(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){t(e),n.call(r,e)}),null,i)}))}function o(e,t){return u((function(n,r,i){return void 0===r&&(r=null),e((function(e){return t(e)&&n.call(r,e)}),null,i)}))}function s(e,t,r){var i=r;return n(e,(function(e){return i=t(i,e)}))}function u(e){var t,n=new c({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function a(e,t,n,r,i){var o;void 0===n&&(n=100),void 0===r&&(r=!1);var s=void 0,u=void 0,a=0,l=new c({leakWarningThreshold:i,onFirstListenerAdd:function(){o=e((function(e){a++,s=t(s,e),r&&!u&&(l.fire(s),s=void 0),clearTimeout(u),u=setTimeout((function(){var e=s;s=void 0,u=void 0,(!r||a>1)&&l.fire(e),a=0}),n)}))},onLastListenerRemove:function(){o.dispose()}});return l.event}function l(e){var t,n=!0;return o(e,(function(e){\nvar r=n||e!==t;return n=!1,t=e,r}))}e.None=function(){return i.Disposable.None},e.once=t,e.map=n,e.forEach=r,e.filter=o,e.signal=function(e){return e},e.any=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n,r){return void 0===n&&(n=null),i.combinedDisposable.apply(void 0,e.map((function(e){return e((function(e){return t.call(n,e)}),null,r)})))}},e.reduce=s,e.snapshot=u,e.debounce=a,e.stopwatch=function(e){var r=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-r}))},e.latch=l,e.buffer=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=[]);var r=n.slice(),i=e((function(e){r?r.push(e):s.fire(e)})),o=function(){r&&r.forEach((function(e){return s.fire(e)})),r=null},s=new c({onFirstListenerAdd:function(){i||(i=e((function(e){return s.fire(e)})))},onFirstListenerDidAdd:function(){r&&(t?setTimeout(o):o())},onLastListenerRemove:function(){i&&i.dispose(),i=null}});return s.event};var d=function(){function e(e){this.event=e}\nreturn e.prototype.map=function(t){return new e(n(this.event,t))},e.prototype.forEach=function(t){return new e(r(this.event,t))},e.prototype.filter=function(t){return new e(o(this.event,t))},e.prototype.reduce=function(t,n){return new e(s(this.event,t,n))},e.prototype.latch=function(){return new e(l(this.event))},e.prototype.debounce=function(t,n,r,i){return void 0===n&&(n=100),void 0===r&&(r=!1),new e(a(this.event,t,n,r,i))},e.prototype.on=function(e,t,n){return this.event(e,t,n)},e.prototype.once=function(e,n,r){return t(this.event)(e,n,r)},e}();e.chain=function(e){return new d(e)},e.fromNodeEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var r=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return i.fire(n.apply(void 0,e))},i=new c({onFirstListenerAdd:function(){return e.on(t,r)},onLastListenerRemove:function(){return e.removeListener(t,r)}});return i.event},e.fromDOMEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var r=function(){\nfor(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return i.fire(n.apply(void 0,e))},i=new c({onFirstListenerAdd:function(){return e.addEventListener(t,r)},onLastListenerRemove:function(){return e.removeEventListener(t,r)}});return i.event},e.fromPromise=function(e){var t=new c,n=!1;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(s=t.Event||(t.Event={}));var u=-1,l=function(){function e(e,t){void 0===t&&(t=Math.random().toString(18).slice(2,5)),this.customThreshold=e,this.name=t,this._warnCountdown=0}return e.prototype.dispose=function(){this._stacks&&this._stacks.clear()},e.prototype.check=function(e){var t=this,n=u;if(\"number\"==typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var r=(new Error).stack.split(\"\\n\").slice(3).join(\"\\n\"),i=this._stacks.get(r)||0\n;if(this._stacks.set(r,i+1),this._warnCountdown-=1,this._warnCountdown<=0){var o;this._warnCountdown=.5*n;var s=0;this._stacks.forEach((function(e,t){(!o||s<e)&&(o=t,s=e)})),console.warn(\"[\"+this.name+\"] potential listener LEAK detected, having \"+e+\" listeners already. MOST frequent listener (\"+s+\"):\"),console.warn(o)}return function(){var e=t._stacks.get(r)||0;t._stacks.set(r,e-1)}}},e}(),c=function(){function e(e){this._disposed=!1,this._options=e,this._leakageMon=u>0?new l(this._options&&this._options.leakWarningThreshold):void 0}return Object.defineProperty(e.prototype,\"event\",{get:function(){var t=this;return this._event||(this._event=function(n,r,s){t._listeners||(t._listeners=new o.LinkedList);var u=t._listeners.isEmpty();u&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var a,l,c=t._listeners.push(r?[n,r]:n);return u&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),\nt._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,r),t._leakageMon&&(a=t._leakageMon.check(t._listeners.size)),l={dispose:function(){(a&&a(),l.dispose=e._noop,t._disposed)||(c(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},s instanceof i.DisposableStore?s.add(l):Array.isArray(s)&&s.push(l),l}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new o.LinkedList);for(var t=this._listeners.iterator(),r=t.next();!r.done;r=t.next())this._deliveryQueue.push([r.value,e]);for(;this._deliveryQueue.size>0;){var i=this._deliveryQueue.shift(),s=i[0],u=i[1];try{\"function\"==typeof s?s.call(void 0,u):s[0].call(s[1],u)}catch(r){n.onUnexpectedError(r)}}}},e.prototype.dispose=function(){this._listeners&&this._listeners.clear(),this._deliveryQueue&&this._deliveryQueue.clear(),this._leakageMon&&this._leakageMon.dispose(),this._disposed=!0},\ne._noop=function(){},e}();t.Emitter=c;var d=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaused=0,n._eventQueue=new o.LinkedList,n._mergeFn=t&&t.merge,n}return a(t,e),t.prototype.pause=function(){this._isPaused++},t.prototype.resume=function(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){var t=this._eventQueue.toArray();this._eventQueue.clear(),e.prototype.fire.call(this,this._mergeFn(t))}else for(;!this._isPaused&&0!==this._eventQueue.size;)e.prototype.fire.call(this,this._eventQueue.shift())},t.prototype.fire=function(t){this._listeners&&(0!==this._isPaused?this._eventQueue.push(t):e.prototype.fire.call(this,t))},t}(c);t.PauseableEmitter=d;var f=function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new c({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}return Object.defineProperty(e.prototype,\"event\",{get:function(){return this.emitter.event},enumerable:!0,\nconfigurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};this.events.push(n),this.hasListeners&&this.hook(n);return i.toDisposable(r.once((function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)})))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,this.events.forEach((function(t){return e.hook(t)}))},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach((function(t){return e.unhook(t)}))},e.prototype.hook=function(e){var t=this;e.listener=e.event((function(e){return t.emitter.fire(e)}))},e.prototype.unhook=function(e){e.listener&&e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()},e}();t.EventMultiplexer=f;var h=function(){function e(){this.buffers=[]}return e.prototype.wrapEvent=function(e){var t=this;return function(n,r,i){return e((function(e){var i=t.buffers[t.buffers.length-1];i?i.push((function(){return n.call(r,e)})):n.call(r,e)}),void 0,i)\n}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n},e}();t.EventBufferer=h;var p=function(){function e(){var e=this;this.listening=!1,this.inputEvent=s.None,this.inputEventListener=i.Disposable.None,this.emitter=new c({onFirstListenerDidAdd:function(){e.listening=!0,e.inputEventListener=e.inputEvent(e.emitter.fire,e.emitter)},onLastListenerRemove:function(){e.listening=!1,e.inputEventListener.dispose()}}),this.event=this.emitter.event}return Object.defineProperty(e.prototype,\"input\",{set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.inputEventListener.dispose(),this.emitter.dispose()},e}();t.Relay=p})),e(n[19],r([0,1,9]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r,i=Object.freeze((function(e,t){\nvar n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof o||!(!t||\"object\"!=typeof t)&&(\"boolean\"==typeof t.isCancellationRequested&&\"function\"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i})}(r=t.CancellationToken||(t.CancellationToken={}));var o=function(){function e(){this._isCancelled=!1,this._emitter=null}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))},Object.defineProperty(e.prototype,\"isCancellationRequested\",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onCancellationRequested\",{get:function(){return this._isCancelled?i:(this._emitter||(this._emitter=new n.Emitter),\nthis._emitter.event)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)},e}(),s=function(){function e(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}return Object.defineProperty(e.prototype,\"token\",{get:function(){return this._token||(this._token=new o),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token instanceof o&&this._token.cancel():this._token=r.Cancelled},e.prototype.dispose=function(e){void 0===e&&(e=!1),e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof o&&this._token.dispose():this._token=r.None},e}();t.CancellationTokenSource=s})),e(n[4],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var n=!1,r=!1,i=!1,o=!1,s=!1,u=!1,a=void 0,l=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type;if(\"object\"!=typeof navigator||l){if(\"object\"==typeof process){n=\"win32\"===process.platform,r=\"darwin\"===process.platform,i=\"linux\"===process.platform,\"en\",\"en\";var c=process.env.VSCODE_NLS_CONFIG;if(c)try{var d=JSON.parse(c),f=d.availableLanguages[\"*\"];d.locale,f||\"en\",d._translationsConfigFile}catch(e){}o=!0}}else n=(a=navigator.userAgent).indexOf(\"Windows\")>=0,r=a.indexOf(\"Macintosh\")>=0,u=a.indexOf(\"Macintosh\")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,i=a.indexOf(\"Linux\")>=0,s=!0,navigator.language;t.isWindows=n,t.isMacintosh=r,t.isLinux=i,t.isNative=o,t.isWeb=s,t.isIOS=u;var h=\"object\"==typeof self?self:\"object\"==typeof global?global:{};t.globals=h,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals);if(\"function\"==typeof t.globals.postMessage&&!t.globals.importScripts){var e=[]\n;t.globals.addEventListener(\"message\",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void i.callback()}}));var n=0;return function(r){var i=++n;e.push({id:i,callback:r}),t.globals.postMessage({vscodeSetImmediateId:i},\"*\")}}if(\"undefined\"!=typeof process&&\"function\"==typeof process.nextTick)return process.nextTick.bind(process);var r=Promise.resolve();return function(e){return r.then(e)}}(),t.OS=r?2:n?1:3})),e(n[20],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFalsyOrWhitespace=function(e){return!e||\"string\"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n=\"0\");for(var r=\"\"+e,i=[r],o=r.length;o<t;o++)i.push(n);return i.reverse().join(\"\")};var n=/{(\\d+)}/g;function r(e){return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g,\"\\\\$&\")}function i(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e\n;for(var r=0;e.indexOf(t,r)===r;)r+=n;return e.substring(r)}function o(e,t){if(!e||!t)return e;var n=t.length,r=e.length;if(0===n||0===r)return e;for(var i=r,o=-1;-1!==(o=e.lastIndexOf(t,i-1))&&o+n===i;){if(0===o)return\"\";i=o}return e.substring(0,i)}function s(e,t){return e<t?-1:e>t?1:0}function u(e){return e>=97&&e<=122}function a(e){return e>=65&&e<=90}function l(e){return u(e)||a(e)}function c(e,t,n){void 0===n&&(n=e.length);for(var r=0;r<n;r++){var i=e.charCodeAt(r),o=t.charCodeAt(r);if(i!==o)if(l(i)&&l(o)){var s=Math.abs(i-o);if(0!==s&&32!==s)return!1}else if(String.fromCharCode(i).toLowerCase()!==String.fromCharCode(o).toLowerCase())return!1}return!0}function d(e){return 55296<=e&&e<=56319}function f(e){return 56320<=e&&e<=57343}function h(e,t,n){var r=e.charCodeAt(n);if(d(r)&&n+1<t){var i=e.charCodeAt(n+1);if(f(i))return i-56320+(r-55296<<10)+65536}return r}function p(e,t){var n=e.charCodeAt(t-1);if(f(n)&&t>1){var r=e.charCodeAt(t-2);if(d(r))return n-56320+(r-55296<<10)+65536}return n}\nt.format=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return 0===t.length?e:e.replace(n,(function(e,n){var r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case\"&\":return\"&amp;\";default:return e}}))},t.escapeRegExpCharacters=r,t.trim=function(e,t){return void 0===t&&(t=\" \"),o(i(e,t),t)},t.ltrim=i,t.rtrim=o,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.startsWith=function(e,t){if(e.length<t.length)return!1;if(e===t)return!0;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.indexOf(t,n)===n:0===n&&e===t},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error(\"Cannot create regex from empty string\");t||(e=r(e)),n.wholeWord&&(/\\B/.test(e.charAt(0))||(e=\"\\\\b\"+e),\n/\\B/.test(e.charAt(e.length-1))||(e+=\"\\\\b\"));var i=\"\";return n.global&&(i+=\"g\"),n.matchCase||(i+=\"i\"),n.multiline&&(i+=\"m\"),n.unicode&&(i+=\"u\"),new RegExp(e,i)},t.regExpLeadsToEndlessLoop=function(e){return\"^\"!==e.source&&\"^$\"!==e.source&&\"$\"!==e.source&&\"^\\\\s*$\"!==e.source&&!(!e.exec(\"\")||0!==e.lastIndex)},t.regExpFlags=function(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\")},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t<n;t++){var r=e.charCodeAt(t);if(32!==r&&9!==r)return t}return-1},t.getLeadingWhitespace=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length);for(var r=t;r<n;r++){var i=e.charCodeAt(r);if(32!==i&&9!==i)return e.substring(t,r)}return e.substring(t,n)},t.lastNonWhitespaceIndex=function(e,t){void 0===t&&(t=e.length-1);for(var n=t;n>=0;n--){var r=e.charCodeAt(n);if(32!==r&&9!==r)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++){var i=e.charCodeAt(r),o=t.charCodeAt(r)\n;if(i!==o){a(i)&&(i+=32),a(o)&&(o+=32);var l=i-o;if(0!==l)return u(i)&&u(o)?l:s(e.toLowerCase(),t.toLowerCase())}}return e.length<t.length?-1:e.length>t.length?1:0},t.isLowerAsciiLetter=u,t.isUpperAsciiLetter=a,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&c(e,t)},t.startsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&c(e,t,n)},t.commonPrefixLength=function(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return r},t.commonSuffixLength=function(e,t){var n,r=Math.min(e.length,t.length),i=e.length-1,o=t.length-1;for(n=0;n<r;n++)if(e.charCodeAt(i-n)!==t.charCodeAt(o-n))return n;return r},t.isHighSurrogate=d,t.isLowSurrogate=f,t.getNextCodePoint=h,t.nextCharLength=function(e,t){var n=b.getInstance(),r=t,i=e.length,o=h(e,i,t);t+=o>=65536?2:1;for(var s=n.getGraphemeBreakType(o);t<i;){var u=h(e,i,t),a=n.getGraphemeBreakType(u);if(y(s,a))break;t+=u>=65536?2:1,s=a}return t-r},t.prevCharLength=function(e,t){\nvar n=b.getInstance(),r=t,i=p(e,t);t-=i>=65536?2:1;for(var o=n.getGraphemeBreakType(i);t>0;){var s=p(e,t),u=n.getGraphemeBreakType(s);if(y(u,o))break;t-=s>=65536?2:1,o=u}return r-t};var m=/(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;t.containsRTL=function(e){return m.test(e)};var g=/(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE82\\uDE90-\\uDE95])/;t.containsEmoji=function(e){return g.test(e)};var v=/^[\\t\\n\\r\\x20-\\x7E]*$/;function _(e){\nreturn(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function y(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return v.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;t<n;t++)if(_(e.charCodeAt(t)))return!0;return!1},t.isFullWidthCharacter=_,t.isEmojiImprecise=function(e){return e>=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n},\nt.containsUppercaseCharacter=function(e,t){return void 0===t&&(t=!1),!!e&&(t&&(e=e.replace(/\\\\./g,\"\")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return b.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=y;var b=function(){function e(){\nthis._data=JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getGraphemeBreakType=function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,r=1;r<=n;)if(e<t[3*r])r*=2;else{if(!(e>t[3*r+1]))return t[3*r+2];r=2*r+1}return 0},e._INSTANCE=null,e}()})),e(n[10],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n={number:\"number\",string:\"string\",undefined:\"undefined\",object:\"object\",function:\"function\"};function r(e){return typeof e===n.string||e instanceof String}function i(e){return!(typeof e!==n.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function o(e){return typeof e===n.undefined}function s(e){return o(e)||null===e}t.isArray=function(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==n.number||e.constructor!==Array)},t.isString=r,t.isObject=i,t.isNumber=function(e){return(typeof e===n.number||e instanceof Number)&&!isNaN(e)},t.isBoolean=function(e){\nreturn!0===e||!1===e},t.isUndefined=o,t.isUndefinedOrNull=s,t.assertType=function(e,t){if(!e)throw new Error(t?\"Unexpected type, expected '\"+t+\"'\":\"Unexpected type\")};var u=Object.prototype.hasOwnProperty;function a(e){return typeof e===n.function}function l(e,t){if(r(t)){if(typeof e!==t)throw new Error(\"argument does not match constraint: typeof \"+t)}else if(a(t)){try{if(e instanceof t)return}catch(e){}if(!s(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")}}function c(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}t.isEmptyObject=function(e){if(!i(e))return!1;for(var t in e)if(u.call(e,t))return!1;return!0},t.isFunction=a,t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)l(e[r],t[r])},\nt.validateConstraint=l,t.getAllPropertyNames=c,t.getAllMethodNames=function(e){for(var t=[],n=0,r=c(e);n<r.length;n++){var i=r[n];\"function\"==typeof e[i]&&t.push(i)}return t},t.createProxyObject=function(e,t){for(var n=function(e){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},r={},i=0,o=e;i<o.length;i++){var s=o[i];r[s]=n(s)}return r},t.withNullAsUndefined=function(e){return null===e?void 0:e},t.withUndefinedAsNull=function(e){return void 0===e?null:e}})),e(n[11],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toUint8=function(e){return e<0?0:e>255?255:0|e},t.toUint32=function(e){return e<0?0:e>4294967295?4294967295:0|e}})),e(n[12],r([0,1,4]),(function(e,t,n){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0});var i=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var u=\"\",l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,a,c){void 0===c&&(c=!1),\n\"object\"==typeof e?(this.scheme=e.scheme||u,this.authority=e.authority||u,this.path=e.path||u,this.query=e.query||u,this.fragment=e.fragment||u):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||u,this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||u),this.query=r||u,this.fragment=a||u,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')\n}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return v(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=u),void 0===n?n=this.authority:null===n&&(n=u),void 0===r?r=this.path:null===r&&(r=u),void 0===i?i=this.query:null===i&&(i=u),void 0===o?o=this.fragment:null===o&&(o=u),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){\nvoid 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||u,b(n[4]||u),b(n[5]||u),b(n[7]||u),b(n[9]||u),t):new h(u,u,u,u,u)},e.file=function(e){var t=u;if(n.isWindows&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var r=e.indexOf(l,2);-1===r?(t=e.substring(2),e=l):(t=e.substring(2,r),e=e.substring(r)||l)}return new h(\"file\",t,e,u,u)},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),_(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}();t.URI=d;var f=n.isWindows?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return a(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=v(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){\nreturn void 0===e&&(e=!1),e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((r={})[58]=\"%3A\",r[47]=\"%2F\",r[63]=\"%3F\",r[35]=\"%23\",r[91]=\"%5B\",r[93]=\"%5D\",r[64]=\"%40\",r[33]=\"%21\",r[36]=\"%24\",r[38]=\"%26\",r[39]=\"%27\",r[40]=\"%28\",r[41]=\"%29\",r[42]=\"%2A\",r[43]=\"%2B\",r[44]=\"%2C\",r[59]=\"%3B\",r[61]=\"%3D\",r[32]=\"%20\",r);function m(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=p[o]\n;void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function g(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function v(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,n.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}function _(e,t){var n=t?g:m,r=\"\",i=e.scheme,o=e.authority,s=e.path,u=e.query,a=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var c=o.indexOf(\"@\");if(-1!==c){var d=o.substr(0,c);o=o.substr(c+1),-1===(c=d.indexOf(\":\"))?r+=n(d,!1):(r+=n(d.substr(0,c),!1),r+=\":\",r+=n(d.substr(c+1),!1)),r+=\"@\"}\n-1===(c=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,c),!1),r+=o.substr(c))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(f=s.charCodeAt(1))>=65&&f<=90&&(s=\"/\"+String.fromCharCode(f+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var f;(f=s.charCodeAt(0))>=65&&f<=90&&(s=String.fromCharCode(f+32)+\":\"+s.substr(2))}r+=n(s,!0)}return u&&(r+=\"?\",r+=n(u,!1)),a&&(r+=\"#\",r+=t?a:m(a,!1)),r}var y=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function b(e){return e.match(y)?e.replace(y,(function(e){return function e(t){try{return decodeURIComponent(t)}catch(n){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}}(e)})):e}})),e(n[32],r([0,1,3,8,4,10]),(function(e,t,n,r,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=\"$initialize\",u=!1;t.logOnceWebWorkerWarning=function(e){i.isWeb&&(u||(u=!0,\nconsole.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq\")),console.warn(e.message))};var l=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=this,r=String(++this._lastSentReq);return new Promise((function(i,o){n._pendingReplies[r]={resolve:i,reject:o},n._send({vsWorker:n._workerId,req:r,method:e,args:t})}))},e.prototype.handleMessage=function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var r=e;if(!this._pendingReplies[r.seq])return void console.warn(\"Got reply to unknown seq\");var i=this._pendingReplies[r.seq];if(delete this._pendingReplies[r.seq],r.err){var o=r.err\n;return r.err.$isError&&((o=new Error).name=r.err.name,o.message=r.err.message,o.stack=r.err.stack),void i.reject(o)}i.resolve(r.res)}else{var s=e,u=s.req;this._handler.handleMessage(s.method,s.args).then((function(e){t._send({vsWorker:t._workerId,seq:u,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=n.transformErrorForSerialization(e.detail)),t._send({vsWorker:t._workerId,seq:u,res:void 0,err:n.transformErrorForSerialization(e)})}))}},e.prototype._send=function(e){var t=[];if(e.req)for(var n=e,r=0;r<n.args.length;r++)n.args[r]instanceof ArrayBuffer&&t.push(n.args[r]);else(n=e).res instanceof ArrayBuffer&&t.push(n.res);this._handler.sendMessage(e,t)},e}(),c=function(e){function t(t,n,r){var i=e.call(this)||this,u=null;i._worker=i._register(t.create(\"vs/base/common/worker/simpleWorker\",(function(e){i._protocol.handleMessage(e)}),(function(e){u&&u(e)}))),i._protocol=new l({sendMessage:function(e,t){i._worker.postMessage(e,t)},handleMessage:function(e,t){\nif(\"function\"!=typeof r[e])return Promise.reject(new Error(\"Missing method \"+e+\" on main thread host.\"));try{return Promise.resolve(r[e].apply(r,t))}catch(e){return Promise.reject(e)}}}),i._protocol.setWorkerId(i._worker.getId());var a=null;void 0!==self.require&&\"function\"==typeof self.require.getConfig?a=self.require.getConfig():void 0!==self.requirejs&&(a=self.requirejs.s.contexts._.config);var c=o.getAllMethodNames(r);i._onModuleLoaded=i._protocol.sendMessage(s,[i._worker.getId(),JSON.parse(JSON.stringify(a)),n,c]);var d=function(e,t){return i._request(e,t)};return i._lazyProxy=new Promise((function(e,t){u=t,i._onModuleLoaded.then((function(t){e(o.createProxyObject(t,d))}),(function(e){t(e),i._onError(\"Worker failed to load \"+n,e)}))})),i}return a(t,e),t.prototype.getProxyObject=function(){return this._lazyProxy},t.prototype._request=function(e,t){var n=this;return new Promise((function(r,i){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(r,i)}),i)}))},\nt.prototype._onError=function(e,t){console.error(e),console.info(t)},t}(r.Disposable);t.SimpleWorkerClient=c;var d=function(){function e(e,t){var n=this;this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new l({sendMessage:function(t,n){e(t,n)},handleMessage:function(e,t){return n._handleMessage(e,t)}})}return e.prototype.onmessage=function(e){this._protocol.handleMessage(e)},e.prototype._handleMessage=function(e,t){if(e===s)return this.initialize(t[0],t[1],t[2],t[3]);if(!this._requestHandler||\"function\"!=typeof this._requestHandler[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}},e.prototype.initialize=function(e,t,n,r){var i=this;this._protocol.setWorkerId(e);var s=o.createProxyObject(r,(function(e,t){return i._protocol.sendMessage(e,t)}));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(s),\nPromise.resolve(o.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((function(e,t){self.require([n],(function(n){i._requestHandler=n.create(s),i._requestHandler?e(o.getAllMethodNames(i._requestHandler)):t(new Error(\"No RequestHandler!\"))}),t)})))},e}();t.SimpleWorkerServer=d,t.create=function(e){return new d(e,null)}})),e(n[21],r([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){var r=n.toUint8(t);this._defaultValue=r,this._asciiMap=e._createAsciiMap(r),this._map=new Map}return e._createAsciiMap=function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t},e.prototype.set=function(e,t){var r=n.toUint8(t);e>=0&&e<256?this._asciiMap[e]=r:this._map.set(e,r)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=r\n;var i=function(){function e(){this._actual=new r(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=i})),e(n[2],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.with=function(t,n){return void 0===t&&(t=this.lineNumber),void 0===n&&(n=this.column),t===this.lineNumber&&n===this.column?this:new e(t,n)},e.prototype.delta=function(e,t){return void 0===e&&(e=0),void 0===t&&(t=0),this.with(this.lineNumber+e,this.column+t)},e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column},e.prototype.isBeforeOrEqual=function(t){\nreturn e.isBeforeOrEqual(this,t)},e.isBeforeOrEqual=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column},e.compare=function(e,t){var n=0|e.lineNumber,r=0|t.lineNumber;return n===r?(0|e.column)-(0|t.column):n-r},e.prototype.clone=function(){return new e(this.lineNumber,this.column)},e.prototype.toString=function(){return\"(\"+this.lineNumber+\",\"+this.column+\")\"},e.lift=function(t){return new e(t.lineNumber,t.column)},e.isIPosition=function(e){return e&&\"number\"==typeof e.lineNumber&&\"number\"==typeof e.column},e}();t.Position=n})),e(n[5],r([0,1,2]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,r){e>n||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){\nreturn e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))},e.prototype.strictContainsRange=function(t){return e.strictContainsRange(this,t)},e.strictContainsRange=function(e,t){\nreturn!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var r,i,o,s;return n.startLineNumber<t.startLineNumber?(r=n.startLineNumber,i=n.startColumn):n.startLineNumber===t.startLineNumber?(r=n.startLineNumber,i=Math.min(n.startColumn,t.startColumn)):(r=t.startLineNumber,i=t.startColumn),n.endLineNumber>t.endLineNumber?(o=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,s=t.endColumn),new e(r,i,o,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){\nvar r=t.startLineNumber,i=t.startColumn,o=t.endLineNumber,s=t.endColumn,u=n.startLineNumber,a=n.startColumn,l=n.endLineNumber,c=n.endColumn;return r<u?(r=u,i=a):r===u&&(i=Math.max(i,a)),o>l?(o=l,s=c):o===l&&(s=Math.min(s,c)),r>o?null:r===o&&i>s?null:new e(r,i,o,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},e.prototype.toString=function(){return\"[\"+this.startLineNumber+\",\"+this.startColumn+\" -> \"+this.endLineNumber+\",\"+this.endColumn+\"]\"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){\nreturn new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&\"number\"==typeof e.startLineNumber&&\"number\"==typeof e.startColumn&&\"number\"==typeof e.endLineNumber&&\"number\"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)},e.areIntersecting=function(e,t){\nreturn!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)},e.compareRangesUsingStarts=function(e,t){if(e&&t){var n=0|e.startLineNumber,r=0|t.startLineNumber;if(n===r){var i=0|e.startColumn,o=0|t.startColumn;if(i===o){var s=0|e.endLineNumber,u=0|t.endLineNumber;return s===u?(0|e.endColumn)-(0|t.endColumn):s-u}return i-o}return n-r}return(e?1:0)-(t?1:0)},e.compareRangesUsingEnds=function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber},e.spansMultipleLines=function(e){return e.endLineNumber>e.startLineNumber},e}();t.Range=r})),e(n[22],r([0,1,2,5]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,n,r,i){\nvar o=e.call(this,t,n,r,i)||this;return o.selectionStartLineNumber=t,o.selectionStartColumn=n,o.positionLineNumber=r,o.positionColumn=i,o}return a(t,e),t.prototype.toString=function(){return\"[\"+this.selectionStartLineNumber+\",\"+this.selectionStartColumn+\" -> \"+this.positionLineNumber+\",\"+this.positionColumn+\"]\"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1},t.prototype.setEndPosition=function(e,n){return 0===this.getDirection()?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){\nreturn new n.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return 0===this.getDirection()?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0},t.isISelection=function(e){return e&&\"number\"==typeof e.selectionStartLineNumber&&\"number\"==typeof e.selectionStartColumn&&\"number\"==typeof e.positionLineNumber&&\"number\"==typeof e.positionColumn},t.createWithDirection=function(e,n,r,i,o){return 0===o?new t(e,n,r,i):new t(r,i,e,n)},t}(r.Range);t.Selection=i})),e(n[23],r([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this.offset=0|e,this.type=t,this.language=n}return e.prototype.toString=function(){return\"(\"+this.offset+\", \"+this.type+\")\"},e}();t.Token=n;var r=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult=r;var i=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult2=i})),e(n[24],r([0,1,6,20]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=3;function o(e,t,r,i){return new n.LcsDiff(e,t,r).ComputeDiff(i)}var s=function(){function e(e){for(var t=[],n=[],r=0,i=e.length;r<i;r++)t[r]=d(e[r],1),n[r]=f(e[r],1);this.lines=e,this._startColumns=t,this._endColumns=n}return e.prototype.getElements=function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e},e.prototype.getStartLineNumber=function(e){return e+1},e.prototype.getEndLineNumber=function(e){return e+1},\ne.prototype.createCharSequence=function(e,t,n){for(var r=[],i=[],o=[],s=0,a=t;a<=n;a++)for(var l=this.lines[a],c=e?this._startColumns[a]:1,d=e?this._endColumns[a]:l.length+1,f=c;f<d;f++)r[s]=l.charCodeAt(f-1),i[s]=a+1,o[s]=f,s++;return new u(r,i,o)},e}(),u=function(){function e(e,t,n){this._charCodes=e,this._lineNumbers=t,this._columns=n}return e.prototype.getElements=function(){return this._charCodes},e.prototype.getStartLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getStartColumn=function(e){return this._columns[e]},e.prototype.getEndLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getEndColumn=function(e){return this._columns[e]+1},e}(),a=function(){function e(e,t,n,r,i,o,s,u){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=n,this.originalEndColumn=r,this.modifiedStartLineNumber=i,this.modifiedStartColumn=o,this.modifiedEndLineNumber=s,this.modifiedEndColumn=u}return e.createFromDiffChange=function(t,n,r){var i,o,s,u,a,l,c,d\n;return 0===t.originalLength?(i=0,o=0,s=0,u=0):(i=n.getStartLineNumber(t.originalStart),o=n.getStartColumn(t.originalStart),s=n.getEndLineNumber(t.originalStart+t.originalLength-1),u=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(a=0,l=0,c=0,d=0):(a=r.getStartLineNumber(t.modifiedStart),l=r.getStartColumn(t.modifiedStart),c=r.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),d=r.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(i,o,s,u,a,l,c,d)},e}();var l=function(){function e(e,t,n,r,i){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=n,this.modifiedEndLineNumber=r,this.charChanges=i}return e.createFromDiffResult=function(t,n,r,s,u,l,c){var d,f,h,p,m=void 0;if(0===n.originalLength?(d=r.getStartLineNumber(n.originalStart)-1,f=0):(d=r.getStartLineNumber(n.originalStart),f=r.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(h=s.getStartLineNumber(n.modifiedStart)-1,\np=0):(h=s.getStartLineNumber(n.modifiedStart),p=s.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),l&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&u()){var g=r.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),v=s.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),_=o(g,v,u,!0).changes;c&&(_=function(e){if(e.length<=1)return e;for(var t=[e[0]],n=t[0],r=1,o=e.length;r<o;r++){var s=e[r],u=s.originalStart-(n.originalStart+n.originalLength),a=s.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(u,a)<i?(n.originalLength=s.originalStart+s.originalLength-n.originalStart,n.modifiedLength=s.modifiedStart+s.modifiedLength-n.modifiedStart):(t.push(s),n=s)}return t}(_)),m=[];for(var y=0,b=_.length;y<b;y++)m.push(a.createFromDiffChange(_[y],g,v))}return new e(d,f,h,p,m)},e}(),c=function(){function e(e,t,n){this.shouldComputeCharChanges=n.shouldComputeCharChanges,this.shouldPostProcessCharChanges=n.shouldPostProcessCharChanges,\nthis.shouldIgnoreTrimWhitespace=n.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=n.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new s(e),this.modified=new s(t),this.continueLineDiff=h(n.maxComputationTime),this.continueCharDiff=h(0===n.maxComputationTime?0:Math.min(n.maxComputationTime,5e3))}return e.prototype.computeDiff=function(){if(1===this.original.lines.length&&0===this.original.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,\ncharChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=o(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){for(var r=[],i=0,s=t.length;i<s;i++)r.push(l.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[i],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:r}}for(var u=[],a=0,c=0,h=(i=-1,t.length);i<h;i++){for(var p=i+1<h?t[i+1]:null,m=p?p.originalStart:this.originalLines.length,g=p?p.modifiedStart:this.modifiedLines.length;a<m&&c<g;){var v=this.originalLines[a],_=this.modifiedLines[c];if(v!==_){for(var y=d(v,1),b=d(_,1);y>1&&b>1;){if(v.charCodeAt(y-2)!==_.charCodeAt(b-2))break;y--,b--}(y>1||b>1)&&this._pushTrimWhitespaceCharChange(u,a+1,1,y,c+1,1,b)\n;for(var C=f(v,1),E=f(_,1),S=v.length+1,L=_.length+1;C<S&&E<L;){if(v.charCodeAt(C-1)!==v.charCodeAt(E-1))break;C++,E++}(C<S||E<L)&&this._pushTrimWhitespaceCharChange(u,a+1,C,S,c+1,E,L)}a++,c++}p&&(u.push(l.createFromDiffResult(this.shouldIgnoreTrimWhitespace,p,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),a+=p.originalLength,c+=p.modifiedLength)}return{quitEarly:n,changes:u}},e.prototype._pushTrimWhitespaceCharChange=function(e,t,n,r,i,o,s){if(!this._mergeTrimWhitespaceCharChange(e,t,n,r,i,o,s)){var u=void 0;this.shouldComputeCharChanges&&(u=[new a(t,n,t,r,i,o,i,s)]),e.push(new l(t,t,i,i,u))}},e.prototype._mergeTrimWhitespaceCharChange=function(e,t,n,r,i,o,s){var u=e.length;if(0===u)return!1;var l=e[u-1];return 0!==l.originalEndLineNumber&&0!==l.modifiedEndLineNumber&&(l.originalEndLineNumber+1===t&&l.modifiedEndLineNumber+1===i&&(l.originalEndLineNumber=t,l.modifiedEndLineNumber=i,\nthis.shouldComputeCharChanges&&l.charChanges&&l.charChanges.push(new a(t,n,t,r,i,o,i,s)),!0))},e}();function d(e,t){var n=r.firstNonWhitespaceIndex(e);return-1===n?t:n+1}function f(e,t){var n=r.lastNonWhitespaceIndex(e);return-1===n?t:n+2}function h(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}t.DiffComputer=c})),e(n[25],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.USUAL_WORD_SEPARATORS=\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e=\"\");for(var n=\"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\",r=0,i=t.USUAL_WORD_SEPARATORS;r<i.length;r++){var o=i[r];e.indexOf(o)>=0||(n+=\"\\\\\"+o)}return n+=\"\\\\s]+)\",new RegExp(n,\"g\")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var r=\"g\";e.ignoreCase&&(r+=\"i\"),e.multiline&&(r+=\"m\"),e.unicode&&(r+=\"u\"),n=new RegExp(e.source,r)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,n,r){t.lastIndex=0\n;var i=t.exec(n);if(!i)return null;var o=i[0].indexOf(\" \")>=0?function(e,t,n,r){var i,o=e-1-r;for(t.lastIndex=0;i=t.exec(n);){var s=i.index||0;if(s>o)return null;if(t.lastIndex>=o)return{word:i[0],startColumn:r+1+s,endColumn:r+1+t.lastIndex}}return null}(e,t,n,r):function(e,t,n,r){var i,o=e-1-r,s=n.lastIndexOf(\" \",o-1)+1;for(t.lastIndex=s;i=t.exec(n);){var u=i.index||0;if(u<=o&&t.lastIndex>=o)return{word:i[0],startColumn:r+1+u,endColumn:r+1+t.lastIndex}}return null}(e,t,n,r);return t.lastIndex=0,o}})),e(n[26],r([0,1,21]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n){for(var r=new Uint8Array(e*t),i=0,o=e*t;i<o;i++)r[i]=n;this._data=r,this.rows=e,this.cols=t}return e.prototype.get=function(e,t){return this._data[e*this.cols+t]},e.prototype.set=function(e,t,n){this._data[e*this.cols+t]=n},e}();t.Uint8Matrix=r;var i=function(){function e(e){for(var t=0,n=0,i=0,o=e.length;i<o;i++){var s=e[i],u=s[0];(c=s[1])>t&&(t=c),u>n&&(n=u),(d=s[2])>n&&(n=d)}\nvar a=new r(++n,++t,0);for(i=0,o=e.length;i<o;i++){var l=e[i],c=(u=l[0],l[1]),d=l[2];a.set(u,c,d)}this._states=a,this._maxCharCode=t}return e.prototype.nextState=function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)},e}();t.StateMachine=i;var o=null;var s=null;var u=function(){function e(){}return e._createLink=function(e,t,n,r,i){var o=i-1;do{var s=t.charCodeAt(o);if(2!==e.get(s))break;o--}while(o>r);if(r>0){var u=t.charCodeAt(r-1),a=t.charCodeAt(o);(40===u&&41===a||91===u&&93===a||123===u&&125===a)&&o--}return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}},e.computeLinks=function(t,r){void 0===r&&(null===o&&(o=new i([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),r=o);for(var u=function(){if(null===s){s=new n.CharacterClassifier(0)\n;for(var e=0;e<\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".length;e++)s.set(\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".charCodeAt(e),1);for(e=0;e<\".,;\".length;e++)s.set(\".,;\".charCodeAt(e),2)}return s}(),a=[],l=1,c=t.getLineCount();l<=c;l++){for(var d=t.getLineContent(l),f=d.length,h=0,p=0,m=0,g=1,v=!1,_=!1,y=!1;h<f;){var b=!1,C=d.charCodeAt(h);if(13===g){var E=void 0;switch(C){case 40:v=!0,E=0;break;case 41:E=v?0:1;break;case 91:_=!0,E=0;break;case 93:E=_?0:1;break;case 123:y=!0,E=0;break;case 125:E=y?0:1;break;case 39:E=34===m||96===m?0:1;break;case 34:E=39===m||96===m?0:1;break;case 96:E=39===m||34===m?0:1;break;case 42:E=42===m?1:0;break;case 124:E=124===m?1:0;break;default:E=u.get(C)}1===E&&(a.push(e._createLink(u,d,l,p,h)),b=!0)}else if(12===g){E=void 0;91===C?(_=!0,E=0):E=u.get(C),1===E?b=!0:g=13}else 0===(g=r.nextState(g,C))&&(b=!0);b&&(g=1,v=!1,_=!1,y=!1,p=h+1,m=C),h++}13===g&&a.push(e._createLink(u,d,l,p,f))}return a},e}();t.LinkComputer=u,t.computeLinks=function(e){\nreturn e&&\"function\"==typeof e.getLineCount&&\"function\"==typeof e.getLineContent?u.computeLinks(e):[]}})),e(n[27],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._defaultValueSet=[[\"true\",\"false\"],[\"True\",\"False\"],[\"Private\",\"Public\",\"Friend\",\"ReadOnly\",\"Partial\",\"Protected\",\"WriteOnly\"],[\"public\",\"protected\",\"private\"]]}return e.prototype.navigateValueSet=function(e,t,n,r,i){var o;if(e&&t&&(o=this.doNavigateValueSet(t,i)))return{range:e,value:o};if(n&&r&&(o=this.doNavigateValueSet(r,i)))return{range:n,value:o};return null},e.prototype.doNavigateValueSet=function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)},e.prototype.numberReplace=function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(\".\")+1)),r=Number(e),i=parseFloat(e);return isNaN(r)||isNaN(i)||r!==i?null:0!==r||t?(r=Math.floor(r*n),r+=t?n:-n,String(r/n)):null},e.prototype.textReplace=function(e,t){\nreturn this.valueSetsReplace(this._defaultValueSet,e,t)},e.prototype.valueSetsReplace=function(e,t,n){for(var r=null,i=0,o=e.length;null===r&&i<o;i++)r=this.valueSetReplace(e[i],t,n);return r},e.prototype.valueSetReplace=function(e,t,n){var r=e.indexOf(t);return r>=0?((r+=n?1:-1)<0?r=e.length-1:r%=e.length,e[r]):null},e.INSTANCE=new e,e}();t.BasicInplaceReplace=n})),\n/*!\nCopyright (c) 2014 Taylor Hakes\nCopyright (c) 2014 Forbes Lindesay\n */\nu=function(){\"use strict\";function e(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){return t.reject(n)}))}))}var t=setTimeout;function n(){}function r(e){if(!(this instanceof r))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn((function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void s(t.promise,e)}o(t.promise,r)}else(1===e._state?o:s)(t.promise,e._value)}))):e._deferreds.push(t)}function o(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void u(e)\n;if(\"function\"==typeof n)return void l((i=n,o=t,function(){i.apply(o,arguments)}),e)}e._state=1,e._value=t,u(e)}catch(t){s(e,t)}var i,o}function s(e,t){e._state=2,e._value=t,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&r._immediateFn((function(){e._handled||r._unhandledRejectionFn(e._value)}));for(var t=0,n=e._deferreds.length;t<n;t++)i(e,e._deferreds[t]);e._deferreds=null}function a(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}function l(e,t){var n=!1;try{e((function(e){n||(n=!0,o(t,e))}),(function(e){n||(n=!0,s(t,e))}))}catch(e){if(n)return;n=!0,s(t,e)}}r.prototype.catch=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var r=new this.constructor(n);return i(this,new a(e,t,r)),r},r.prototype.finally=e,r.all=function(e){return new r((function(t,n){if(!e||void 0===e.length)throw new TypeError(\"Promise.all accepts an array\");var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);var i=r.length\n;function o(e,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var u=s.then;if(\"function\"==typeof u)return void u.call(s,(function(t){o(e,t)}),n)}r[e]=s,0==--i&&t(r)}catch(e){n(e)}}for(var s=0;s<r.length;s++)o(s,r[s])}))},r.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===r?e:new r((function(t){t(e)}))},r.reject=function(e){return new r((function(t,n){n(e)}))},r.race=function(e){return new r((function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)}))},r._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){t(e,0)},r._unhandledRejectionFn=function(e){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var c=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"unable to locate global object\")}();\"Promise\"in c?c.Promise.prototype.finally||(c.Promise.prototype.finally=e):c.Promise=r},\n\"object\"==typeof exports&&\"undefined\"!=typeof module?u():\"function\"==typeof e&&e.amd?e(\"vs/editor/common/standalone/promise-polyfill/polyfill\",u):u(),e(n[28],r([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Disabled=1]=\"Disabled\",e[e.Enabled=2]=\"Enabled\"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]=\"KeepWhitespace\",e[e.InsertAsSnippet=4]=\"InsertAsSnippet\"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){e[e.Method=0]=\"Method\",e[e.Function=1]=\"Function\",e[e.Constructor=2]=\"Constructor\",e[e.Field=3]=\"Field\",e[e.Variable=4]=\"Variable\",e[e.Class=5]=\"Class\",e[e.Struct=6]=\"Struct\",e[e.Interface=7]=\"Interface\",e[e.Module=8]=\"Module\",e[e.Property=9]=\"Property\",e[e.Event=10]=\"Event\",e[e.Operator=11]=\"Operator\",e[e.Unit=12]=\"Unit\",e[e.Value=13]=\"Value\",e[e.Constant=14]=\"Constant\",e[e.Enum=15]=\"Enum\",e[e.EnumMember=16]=\"EnumMember\",e[e.Keyword=17]=\"Keyword\",\ne[e.Text=18]=\"Text\",e[e.Color=19]=\"Color\",e[e.File=20]=\"File\",e[e.Reference=21]=\"Reference\",e[e.Customcolor=22]=\"Customcolor\",e[e.Folder=23]=\"Folder\",e[e.TypeParameter=24]=\"TypeParameter\",e[e.Snippet=25]=\"Snippet\"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]=\"Invoke\",e[e.TriggerCharacter=1]=\"TriggerCharacter\",e[e.TriggerForIncompleteCompletions=2]=\"TriggerForIncompleteCompletions\"}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]=\"EXACT\",e[e.ABOVE=1]=\"ABOVE\",e[e.BELOW=2]=\"BELOW\"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]=\"NotSet\",e[e.ContentFlush=1]=\"ContentFlush\",e[e.RecoverFromMarkers=2]=\"RecoverFromMarkers\",e[e.Explicit=3]=\"Explicit\",e[e.Paste=4]=\"Paste\",e[e.Undo=5]=\"Undo\",e[e.Redo=6]=\"Redo\"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"\n}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]=\"None\",e[e.Keep=1]=\"Keep\",e[e.Brackets=2]=\"Brackets\",e[e.Advanced=3]=\"Advanced\",e[e.Full=4]=\"Full\"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]=\"acceptSuggestionOnCommitCharacter\",e[e.acceptSuggestionOnEnter=1]=\"acceptSuggestionOnEnter\",e[e.accessibilitySupport=2]=\"accessibilitySupport\",e[e.accessibilityPageSize=3]=\"accessibilityPageSize\",e[e.ariaLabel=4]=\"ariaLabel\",e[e.autoClosingBrackets=5]=\"autoClosingBrackets\",e[e.autoClosingOvertype=6]=\"autoClosingOvertype\",e[e.autoClosingQuotes=7]=\"autoClosingQuotes\",e[e.autoIndent=8]=\"autoIndent\",e[e.automaticLayout=9]=\"automaticLayout\",e[e.autoSurround=10]=\"autoSurround\",e[e.codeLens=11]=\"codeLens\",e[e.colorDecorators=12]=\"colorDecorators\",e[e.comments=13]=\"comments\",e[e.contextmenu=14]=\"contextmenu\",\ne[e.copyWithSyntaxHighlighting=15]=\"copyWithSyntaxHighlighting\",e[e.cursorBlinking=16]=\"cursorBlinking\",e[e.cursorSmoothCaretAnimation=17]=\"cursorSmoothCaretAnimation\",e[e.cursorStyle=18]=\"cursorStyle\",e[e.cursorSurroundingLines=19]=\"cursorSurroundingLines\",e[e.cursorSurroundingLinesStyle=20]=\"cursorSurroundingLinesStyle\",e[e.cursorWidth=21]=\"cursorWidth\",e[e.disableLayerHinting=22]=\"disableLayerHinting\",e[e.disableMonospaceOptimizations=23]=\"disableMonospaceOptimizations\",e[e.dragAndDrop=24]=\"dragAndDrop\",e[e.emptySelectionClipboard=25]=\"emptySelectionClipboard\",e[e.extraEditorClassName=26]=\"extraEditorClassName\",e[e.fastScrollSensitivity=27]=\"fastScrollSensitivity\",e[e.find=28]=\"find\",e[e.fixedOverflowWidgets=29]=\"fixedOverflowWidgets\",e[e.folding=30]=\"folding\",e[e.foldingStrategy=31]=\"foldingStrategy\",e[e.foldingHighlight=32]=\"foldingHighlight\",e[e.fontFamily=33]=\"fontFamily\",e[e.fontInfo=34]=\"fontInfo\",e[e.fontLigatures=35]=\"fontLigatures\",e[e.fontSize=36]=\"fontSize\",e[e.fontWeight=37]=\"fontWeight\",\ne[e.formatOnPaste=38]=\"formatOnPaste\",e[e.formatOnType=39]=\"formatOnType\",e[e.glyphMargin=40]=\"glyphMargin\",e[e.gotoLocation=41]=\"gotoLocation\",e[e.hideCursorInOverviewRuler=42]=\"hideCursorInOverviewRuler\",e[e.highlightActiveIndentGuide=43]=\"highlightActiveIndentGuide\",e[e.hover=44]=\"hover\",e[e.inDiffEditor=45]=\"inDiffEditor\",e[e.letterSpacing=46]=\"letterSpacing\",e[e.lightbulb=47]=\"lightbulb\",e[e.lineDecorationsWidth=48]=\"lineDecorationsWidth\",e[e.lineHeight=49]=\"lineHeight\",e[e.lineNumbers=50]=\"lineNumbers\",e[e.lineNumbersMinChars=51]=\"lineNumbersMinChars\",e[e.links=52]=\"links\",e[e.matchBrackets=53]=\"matchBrackets\",e[e.minimap=54]=\"minimap\",e[e.mouseStyle=55]=\"mouseStyle\",e[e.mouseWheelScrollSensitivity=56]=\"mouseWheelScrollSensitivity\",e[e.mouseWheelZoom=57]=\"mouseWheelZoom\",e[e.multiCursorMergeOverlapping=58]=\"multiCursorMergeOverlapping\",e[e.multiCursorModifier=59]=\"multiCursorModifier\",e[e.multiCursorPaste=60]=\"multiCursorPaste\",e[e.occurrencesHighlight=61]=\"occurrencesHighlight\",\ne[e.overviewRulerBorder=62]=\"overviewRulerBorder\",e[e.overviewRulerLanes=63]=\"overviewRulerLanes\",e[e.parameterHints=64]=\"parameterHints\",e[e.peekWidgetDefaultFocus=65]=\"peekWidgetDefaultFocus\",e[e.quickSuggestions=66]=\"quickSuggestions\",e[e.quickSuggestionsDelay=67]=\"quickSuggestionsDelay\",e[e.readOnly=68]=\"readOnly\",e[e.renderControlCharacters=69]=\"renderControlCharacters\",e[e.renderIndentGuides=70]=\"renderIndentGuides\",e[e.renderFinalNewline=71]=\"renderFinalNewline\",e[e.renderLineHighlight=72]=\"renderLineHighlight\",e[e.renderValidationDecorations=73]=\"renderValidationDecorations\",e[e.renderWhitespace=74]=\"renderWhitespace\",e[e.revealHorizontalRightPadding=75]=\"revealHorizontalRightPadding\",e[e.roundedSelection=76]=\"roundedSelection\",e[e.rulers=77]=\"rulers\",e[e.scrollbar=78]=\"scrollbar\",e[e.scrollBeyondLastColumn=79]=\"scrollBeyondLastColumn\",e[e.scrollBeyondLastLine=80]=\"scrollBeyondLastLine\",e[e.selectionClipboard=81]=\"selectionClipboard\",e[e.selectionHighlight=82]=\"selectionHighlight\",\ne[e.selectOnLineNumbers=83]=\"selectOnLineNumbers\",e[e.showFoldingControls=84]=\"showFoldingControls\",e[e.showUnused=85]=\"showUnused\",e[e.snippetSuggestions=86]=\"snippetSuggestions\",e[e.smoothScrolling=87]=\"smoothScrolling\",e[e.stopRenderingLineAfter=88]=\"stopRenderingLineAfter\",e[e.suggest=89]=\"suggest\",e[e.suggestFontSize=90]=\"suggestFontSize\",e[e.suggestLineHeight=91]=\"suggestLineHeight\",e[e.suggestOnTriggerCharacters=92]=\"suggestOnTriggerCharacters\",e[e.suggestSelection=93]=\"suggestSelection\",e[e.tabCompletion=94]=\"tabCompletion\",e[e.useTabStops=95]=\"useTabStops\",e[e.wordSeparators=96]=\"wordSeparators\",e[e.wordWrap=97]=\"wordWrap\",e[e.wordWrapBreakAfterCharacters=98]=\"wordWrapBreakAfterCharacters\",e[e.wordWrapBreakBeforeCharacters=99]=\"wordWrapBreakBeforeCharacters\",e[e.wordWrapColumn=100]=\"wordWrapColumn\",e[e.wordWrapMinified=101]=\"wordWrapMinified\",e[e.wrappingIndent=102]=\"wrappingIndent\",e[e.wrappingStrategy=103]=\"wrappingStrategy\",e[e.editorClassName=104]=\"editorClassName\",\ne[e.pixelRatio=105]=\"pixelRatio\",e[e.tabFocusMode=106]=\"tabFocusMode\",e[e.layoutInfo=107]=\"layoutInfo\",e[e.wrappingInfo=108]=\"wrappingInfo\"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]=\"TextDefined\",e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]=\"LF\",e[e.CRLF=1]=\"CRLF\"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Backspace=1]=\"Backspace\",e[e.Tab=2]=\"Tab\",e[e.Enter=3]=\"Enter\",e[e.Shift=4]=\"Shift\",e[e.Ctrl=5]=\"Ctrl\",e[e.Alt=6]=\"Alt\",e[e.PauseBreak=7]=\"PauseBreak\",e[e.CapsLock=8]=\"CapsLock\",e[e.Escape=9]=\"Escape\",e[e.Space=10]=\"Space\",e[e.PageUp=11]=\"PageUp\",e[e.PageDown=12]=\"PageDown\",e[e.End=13]=\"End\",e[e.Home=14]=\"Home\",e[e.LeftArrow=15]=\"LeftArrow\",e[e.UpArrow=16]=\"UpArrow\",e[e.RightArrow=17]=\"RightArrow\",\ne[e.DownArrow=18]=\"DownArrow\",e[e.Insert=19]=\"Insert\",e[e.Delete=20]=\"Delete\",e[e.KEY_0=21]=\"KEY_0\",e[e.KEY_1=22]=\"KEY_1\",e[e.KEY_2=23]=\"KEY_2\",e[e.KEY_3=24]=\"KEY_3\",e[e.KEY_4=25]=\"KEY_4\",e[e.KEY_5=26]=\"KEY_5\",e[e.KEY_6=27]=\"KEY_6\",e[e.KEY_7=28]=\"KEY_7\",e[e.KEY_8=29]=\"KEY_8\",e[e.KEY_9=30]=\"KEY_9\",e[e.KEY_A=31]=\"KEY_A\",e[e.KEY_B=32]=\"KEY_B\",e[e.KEY_C=33]=\"KEY_C\",e[e.KEY_D=34]=\"KEY_D\",e[e.KEY_E=35]=\"KEY_E\",e[e.KEY_F=36]=\"KEY_F\",e[e.KEY_G=37]=\"KEY_G\",e[e.KEY_H=38]=\"KEY_H\",e[e.KEY_I=39]=\"KEY_I\",e[e.KEY_J=40]=\"KEY_J\",e[e.KEY_K=41]=\"KEY_K\",e[e.KEY_L=42]=\"KEY_L\",e[e.KEY_M=43]=\"KEY_M\",e[e.KEY_N=44]=\"KEY_N\",e[e.KEY_O=45]=\"KEY_O\",e[e.KEY_P=46]=\"KEY_P\",e[e.KEY_Q=47]=\"KEY_Q\",e[e.KEY_R=48]=\"KEY_R\",e[e.KEY_S=49]=\"KEY_S\",e[e.KEY_T=50]=\"KEY_T\",e[e.KEY_U=51]=\"KEY_U\",e[e.KEY_V=52]=\"KEY_V\",e[e.KEY_W=53]=\"KEY_W\",e[e.KEY_X=54]=\"KEY_X\",e[e.KEY_Y=55]=\"KEY_Y\",e[e.KEY_Z=56]=\"KEY_Z\",e[e.Meta=57]=\"Meta\",e[e.ContextMenu=58]=\"ContextMenu\",e[e.F1=59]=\"F1\",e[e.F2=60]=\"F2\",e[e.F3=61]=\"F3\",e[e.F4=62]=\"F4\",e[e.F5=63]=\"F5\",e[e.F6=64]=\"F6\",\ne[e.F7=65]=\"F7\",e[e.F8=66]=\"F8\",e[e.F9=67]=\"F9\",e[e.F10=68]=\"F10\",e[e.F11=69]=\"F11\",e[e.F12=70]=\"F12\",e[e.F13=71]=\"F13\",e[e.F14=72]=\"F14\",e[e.F15=73]=\"F15\",e[e.F16=74]=\"F16\",e[e.F17=75]=\"F17\",e[e.F18=76]=\"F18\",e[e.F19=77]=\"F19\",e[e.NumLock=78]=\"NumLock\",e[e.ScrollLock=79]=\"ScrollLock\",e[e.US_SEMICOLON=80]=\"US_SEMICOLON\",e[e.US_EQUAL=81]=\"US_EQUAL\",e[e.US_COMMA=82]=\"US_COMMA\",e[e.US_MINUS=83]=\"US_MINUS\",e[e.US_DOT=84]=\"US_DOT\",e[e.US_SLASH=85]=\"US_SLASH\",e[e.US_BACKTICK=86]=\"US_BACKTICK\",e[e.US_OPEN_SQUARE_BRACKET=87]=\"US_OPEN_SQUARE_BRACKET\",e[e.US_BACKSLASH=88]=\"US_BACKSLASH\",e[e.US_CLOSE_SQUARE_BRACKET=89]=\"US_CLOSE_SQUARE_BRACKET\",e[e.US_QUOTE=90]=\"US_QUOTE\",e[e.OEM_8=91]=\"OEM_8\",e[e.OEM_102=92]=\"OEM_102\",e[e.NUMPAD_0=93]=\"NUMPAD_0\",e[e.NUMPAD_1=94]=\"NUMPAD_1\",e[e.NUMPAD_2=95]=\"NUMPAD_2\",e[e.NUMPAD_3=96]=\"NUMPAD_3\",e[e.NUMPAD_4=97]=\"NUMPAD_4\",e[e.NUMPAD_5=98]=\"NUMPAD_5\",e[e.NUMPAD_6=99]=\"NUMPAD_6\",e[e.NUMPAD_7=100]=\"NUMPAD_7\",e[e.NUMPAD_8=101]=\"NUMPAD_8\",e[e.NUMPAD_9=102]=\"NUMPAD_9\",\ne[e.NUMPAD_MULTIPLY=103]=\"NUMPAD_MULTIPLY\",e[e.NUMPAD_ADD=104]=\"NUMPAD_ADD\",e[e.NUMPAD_SEPARATOR=105]=\"NUMPAD_SEPARATOR\",e[e.NUMPAD_SUBTRACT=106]=\"NUMPAD_SUBTRACT\",e[e.NUMPAD_DECIMAL=107]=\"NUMPAD_DECIMAL\",e[e.NUMPAD_DIVIDE=108]=\"NUMPAD_DIVIDE\",e[e.KEY_IN_COMPOSITION=109]=\"KEY_IN_COMPOSITION\",e[e.ABNT_C1=110]=\"ABNT_C1\",e[e.ABNT_C2=111]=\"ABNT_C2\",e[e.MAX_VALUE=112]=\"MAX_VALUE\"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]=\"Unnecessary\",e[e.Deprecated=2]=\"Deprecated\"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]=\"UNKNOWN\",e[e.TEXTAREA=1]=\"TEXTAREA\",e[e.GUTTER_GLYPH_MARGIN=2]=\"GUTTER_GLYPH_MARGIN\",e[e.GUTTER_LINE_NUMBERS=3]=\"GUTTER_LINE_NUMBERS\",e[e.GUTTER_LINE_DECORATIONS=4]=\"GUTTER_LINE_DECORATIONS\",e[e.GUTTER_VIEW_ZONE=5]=\"GUTTER_VIEW_ZONE\",\ne[e.CONTENT_TEXT=6]=\"CONTENT_TEXT\",e[e.CONTENT_EMPTY=7]=\"CONTENT_EMPTY\",e[e.CONTENT_VIEW_ZONE=8]=\"CONTENT_VIEW_ZONE\",e[e.CONTENT_WIDGET=9]=\"CONTENT_WIDGET\",e[e.OVERVIEW_RULER=10]=\"OVERVIEW_RULER\",e[e.SCROLLBAR=11]=\"SCROLLBAR\",e[e.OVERLAY_WIDGET=12]=\"OVERLAY_WIDGET\",e[e.OUTSIDE_EDITOR=13]=\"OUTSIDE_EDITOR\"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]=\"TOP_RIGHT_CORNER\",e[e.BOTTOM_RIGHT_CORNER=1]=\"BOTTOM_RIGHT_CORNER\",e[e.TOP_CENTER=2]=\"TOP_CENTER\"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]=\"Off\",e[e.On=1]=\"On\",e[e.Relative=2]=\"Relative\",e[e.Interval=3]=\"Interval\",e[e.Custom=4]=\"Custom\"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]=\"None\",e[e.Text=1]=\"Text\",e[e.Blocks=2]=\"Blocks\"}(t.RenderMinimap||(t.RenderMinimap={})),function(e){\ne[e.Smooth=0]=\"Smooth\",e[e.Immediate=1]=\"Immediate\"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]=\"Auto\",e[e.Hidden=2]=\"Hidden\",e[e.Visible=3]=\"Visible\"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]=\"LTR\",e[e.RTL=1]=\"RTL\"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]=\"File\",e[e.Module=1]=\"Module\",e[e.Namespace=2]=\"Namespace\",e[e.Package=3]=\"Package\",e[e.Class=4]=\"Class\",e[e.Method=5]=\"Method\",e[e.Property=6]=\"Property\",e[e.Field=7]=\"Field\",e[e.Constructor=8]=\"Constructor\",e[e.Enum=9]=\"Enum\",e[e.Interface=10]=\"Interface\",e[e.Function=11]=\"Function\",e[e.Variable=12]=\"Variable\",e[e.Constant=13]=\"Constant\",e[e.String=14]=\"String\",e[e.Number=15]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Array=17]=\"Array\",e[e.Object=18]=\"Object\",e[e.Key=19]=\"Key\",e[e.Null=20]=\"Null\",\ne[e.EnumMember=21]=\"EnumMember\",e[e.Struct=22]=\"Struct\",e[e.Event=23]=\"Event\",e[e.Operator=24]=\"Operator\",e[e.TypeParameter=25]=\"TypeParameter\"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]=\"Hidden\",e[e.Blink=1]=\"Blink\",e[e.Smooth=2]=\"Smooth\",e[e.Phase=3]=\"Phase\",e[e.Expand=4]=\"Expand\",e[e.Solid=5]=\"Solid\"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]=\"AlwaysGrowsWhenTypingAtEdges\",e[e.NeverGrowsWhenTypingAtEdges=1]=\"NeverGrowsWhenTypingAtEdges\",e[e.GrowsOnlyWhenTypingBefore=2]=\"GrowsOnlyWhenTypingBefore\",e[e.GrowsOnlyWhenTypingAfter=3]=\"GrowsOnlyWhenTypingAfter\"\n}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]=\"None\",e[e.Same=1]=\"Same\",e[e.Indent=2]=\"Indent\",e[e.DeepIndent=3]=\"DeepIndent\"}(t.WrappingIndent||(t.WrappingIndent={}))})),e(n[29],r([0,1,19,9,17,12,2,5,22,23,28,33]),(function(e,t,n,r,i,o,s,u,a,l,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(){}return e.chord=function(e,t){return i.KeyChord(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();t.KeyMod=d,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.CancellationTokenSource,Emitter:r.Emitter,KeyCode:c.KeyCode,KeyMod:d,Position:s.Position,Range:u.Range,Selection:a.Selection,SelectionDirection:c.SelectionDirection,MarkerSeverity:c.MarkerSeverity,MarkerTag:c.MarkerTag,Uri:o.URI,Token:l.Token}}})),e(n[30],r([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(e,t){this.index=e,this.remainder=t};t.PrefixSumIndexOfResult=r\n;var i=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.insertValues=function(e,t){e=n.toUint32(e);var r=this.values,i=this.prefixSum,o=t.length;return 0!==o&&(this.values=new Uint32Array(r.length+o),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e),e+o),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)},e.prototype.removeValues=function(e,t){e=n.toUint32(e),t=n.toUint32(t);var r=this.values,i=this.prefixSum;if(e>=r.length)return!1;var o=r.length-e;return t>=o&&(t=o),\n0!==t&&(this.values=new Uint32Array(r.length-t),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),\nthis.getTotalValue();for(var t=0,n=this.values.length-1,i=0,o=0,s=0;t<=n;)if(i=t+(n-t)/2|0,e<(s=(o=this.prefixSum[i])-this.values[i]))n=i-1;else{if(!(e>=o))break;t=i+1}return new r(i,e-s)},e}();t.PrefixSumComputer=i})),e(n[31],r([0,1,2,30]),(function(e,t,n,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,r){this._uri=e,this._lines=t,this._eol=n,this._versionId=r,this._lineStarts=null}return e.prototype.dispose=function(){this._lines.length=0},e.prototype.getText=function(){return this._lines.join(this._eol)},e.prototype.onEvents=function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);for(var t=0,r=e.changes;t<r.length;t++){var i=r[t];this._acceptDeleteRange(i.range),this._acceptInsertText(new n.Position(i.range.startLineNumber,i.range.startColumn),i.text)}this._versionId=e.versionId},e.prototype._ensureLineStarts=function(){if(!this._lineStarts){\nfor(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new r.PrefixSumComputer(n)}},e.prototype._setLineText=function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}},e.prototype._acceptInsertText=function(e,t){if(0!==t.length){var n=t.split(/\\r\\n|\\r|\\n/);if(1!==n.length){\nn[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);for(var r=new Uint32Array(n.length-1),i=1;i<n.length;i++)this._lines.splice(e.lineNumber+i-1,0,n[i]),r[i-1]=n[i].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,r)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}},e}();t.MirrorTextModel=i}));var l=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{a(r.next(e))}catch(e){o(e)}}function u(e){try{a(r.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,u)}a((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)\n},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,u])}}};e(n[34],r([0,1,13,6,7,4,12,2,5,24,31,25,26,27,29,10]),(function(e,t,n,r,i,o,s,u,d,f,h,p,m,g,v,_){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return a(t,e),Object.defineProperty(t.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"version\",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"eol\",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){return this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=p.getWordAtText(e.column,p.ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return n?new d.Range(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.createWordIterator=function(e){\nvar t,n,r=this,o=0,s=0,u=[],a=function(){if(s<u.length){var l=n.substring(u[s].start,u[s].end);return s+=1,t?t.value=l:t={done:!1,value:l},t}return o>=r._lines.length?i.FIN:(n=r._lines[o],u=r._wordenize(n,e),s=0,o+=1,a())};return{next:a}},t.prototype.getLineWords=function(e,t){for(var n=this._lines[e-1],r=[],i=0,o=this._wordenize(n,t);i<o.length;i++){var s=o[i];r.push({word:n.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}return r},t.prototype._wordenize=function(e,t){var n,r=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)r.push({start:n.index,end:n.index+n[0].length});return r},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,r=e.endLineNumber-1,i=[];i.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;o<r;o++)i.push(this._lines[o]);return i.push(this._lines[r].substring(0,e.endColumn-1)),i.join(t)},\nt.prototype.offsetAt=function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)},t.prototype.positionAt=function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}},t.prototype._validateRange=function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e},t.prototype._validatePosition=function(e){if(!u.Position.isIPosition(e))throw new Error(\"bad position\");var t=e.lineNumber,n=e.column,r=!1;if(t<1)t=1,n=1,r=!0;else if(t>this._lines.length)t=this._lines.length,\nn=this._lines[t-1].length+1,r=!0;else{var i=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>i&&(n=i,r=!0)}return r?{lineNumber:t,column:n}:e},t}(h.MirrorTextModel),b=function(){function t(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}return t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[];return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new y(s.URI.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t.prototype.computeDiff=function(e,t,n,r){return l(this,void 0,void 0,(function(){var i,o,s,u,a,l,d;return c(this,(function(c){return i=this._getModel(e),o=this._getModel(t),\ni&&o?(s=i.getLinesContent(),u=o.getLinesContent(),a=new f.DiffComputer(s,u,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:r}),l=a.computeDiff(),d=!(l.changes.length>0)&&this._modelsAreIdentical(i,o),[2,{quitEarly:l.quitEarly,identical:d,changes:l.changes}]):[2,null]}))}))},t.prototype._modelsAreIdentical=function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1;for(var r=1;r<=n;r++){if(e.getLineContent(r)!==t.getLineContent(r))return!1}return!0},t.prototype.computeMoreMinimalEdits=function(e,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l,f,h,p,m,g,v,_,y,b,C,E,S,L;return c(this,(function(c){if(!(o=this._getModel(e)))return[2,i];for(s=[],u=void 0,i=n.mergeSort(i,(function(e,t){return e.range&&t.range?d.Range.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),a=0,l=i;a<l.length;a++)if(f=l[a],h=f.range,p=f.text,\"number\"==typeof(m=f.eol)&&(u=m),\n(!d.Range.isEmpty(h)||p)&&(g=o.getValueInRange(h),p=p.replace(/\\r\\n|\\n|\\r/g,o.eol),g!==p))if(Math.max(p.length,g.length)>t._diffLimit)s.push({range:h,text:p});else for(v=r.stringDiff(g,p,!1),_=o.offsetAt(d.Range.lift(h).getStartPosition()),y=0,b=v;y<b.length;y++)C=b[y],E=o.positionAt(_+C.originalStart),S=o.positionAt(_+C.originalStart+C.originalLength),L={text:p.substr(C.modifiedStart,C.modifiedLength),range:{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:S.lineNumber,endColumn:S.column}},o.getValueInRange(L.range)!==L.text&&s.push(L);return\"number\"==typeof u&&s.push({eol:u,text:\"\",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),[2,s]}))}))},t.prototype.computeLinks=function(e){return l(this,void 0,void 0,(function(){var t;return c(this,(function(n){return(t=this._getModel(e))?[2,m.computeLinks(t)]:[2,null]}))}))},t.prototype.textualSuggest=function(e,n,r,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l,d,f,h;return c(this,(function(c){\nif(!(o=this._getModel(e)))return[2,null];for(s=[],u=new Set,a=new RegExp(r,i),(l=o.getWordAtPosition(n,a))&&u.add(o.getValueInRange(l)),d=o.createWordIterator(a),f=d.next();!f.done&&u.size<=t._suggestionsLimit;f=d.next())h=f.value,u.has(h)||(u.add(h),isNaN(Number(h))&&s.push(h));return[2,s]}))}))},t.prototype.computeWordRanges=function(e,t,n,r){return l(this,void 0,void 0,(function(){var i,o,s,u,a,l,d,f,h;return c(this,(function(c){if(!(i=this._getModel(e)))return[2,Object.create(null)];for(o=new RegExp(n,r),s=Object.create(null),u=t.startLineNumber;u<t.endLineNumber;u++)for(a=i.getLineWords(u,o),l=0,d=a;l<d.length;l++)f=d[l],isNaN(Number(f.word))&&((h=s[f.word])||(h=[],s[f.word]=h),h.push({startLineNumber:u,startColumn:f.startColumn,endLineNumber:u,endColumn:f.endColumn}));return[2,s]}))}))},t.prototype.navigateValueSet=function(e,t,n,r,i){return l(this,void 0,void 0,(function(){var o,s,u,a,l;return c(this,(function(c){return(o=this._getModel(e))?(s=new RegExp(r,i),t.startColumn===t.endColumn&&(t={\nstartLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),u=o.getValueInRange(t),(a=o.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s))?(l=o.getValueInRange(a),[2,g.BasicInplaceReplace.INSTANCE.navigateValueSet(t,u,a,l,n)]):[2,null]):[2,null]}))}))},t.prototype.loadForeignModule=function(t,n,r){var i=this,o={host:_.createProxyObject(r,(function(e,t){return i._host.fhr(e,t)})),getMirrorModels:function(){return i._getModels()}};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(o,n),Promise.resolve(_.getAllMethodNames(this._foreignModule))):new Promise((function(r,s){e([t],(function(e){i._foreignModule=e.create(o,n),r(_.getAllMethodNames(i._foreignModule))}),s)}))},t.prototype.fmr=function(e,t){if(!this._foreignModule||\"function\"!=typeof this._foreignModule[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{\nreturn Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}},t._diffLimit=1e5,t._suggestionsLimit=1e4,t}();t.EditorSimpleWorker=b,t.create=function(e){return new b(e,null)},\"function\"==typeof importScripts&&(o.globals.monaco=v.createMonacoBaseAPI())})),function(){var e=self.MonacoEnvironment,t=e&&e.baseUrl?e.baseUrl:\"../../../\";\"function\"==typeof self.define&&self.define.amd||importScripts(t+\"vs/loader.js\"),require.config({baseUrl:t,catchError:!0});var n=!0,r=[];self.onmessage=function(e){var t;n?(n=!1,t=e.data,require([t],(function(e){setTimeout((function(){var t=e.create((function(e,t){self.postMessage(e,t)}),null);for(self.onmessage=function(e){return t.onmessage(e.data)};r.length>0;)self.onmessage(r.shift())}),0)}))):r.push(e)}}()}).call(this);\n//# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/abap/abap.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/abap/abap\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"*\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"]]};n.language={defaultToken:\"invalid\",ignoreCase:!0,tokenPostfix:\".abap\",keywords:[\"abstract\",\"add\",\"add-corresponding\",\"adjacent\",\"alias\",\"aliases\",\"all\",\"append\",\"appending\",\"ascending\",\"as\",\"assert\",\"assign\",\"assigned\",\"assigning\",\"association\",\"authority-check\",\"back\",\"begin\",\"binary\",\"block\",\"bound\",\"break-point\",\"by\",\"byte\",\"class\",\"call\",\"cast\",\"changing\",\"check\",\"class-data\",\"class-method\",\"class-methods\",\"clear\",\"close\",\"cnt\",\"collect\",\"commit\",\"cond\",\"character\",\"corresponding\",\"communication\",\"component\",\"compute\",\"concatenate\",\"condense\",\"constants\",\"conv\",\"count\",\"controls\",\"convert\",\"create\",\"currency\",\"data\",\"descending\",\"default\",\"define\",\"deferred\",\"delete\",\"describe\",\"detail\",\"display\",\"divide\",\"divide-corresponding\",\"display-mode\",\"duplicates\",\"deleting\",\"editor-call\",\"end\",\"endexec\",\"endfunction\",\"ending\",\"endmodule\",\"end-of-definition\",\"end-of-page\",\"end-of-selection\",\"end-test-injection\",\"end-test-seam\",\"exit-command\",\"endclass\",\"endmethod\",\"endform\",\"endinterface\",\"endprovide\",\"endselect\",\"endtry\",\"endwhile\",\"enum\",\"event\",\"events\",\"exec\",\"exit\",\"export\",\"exporting\",\"extract\",\"exception\",\"exceptions\",\"field-symbols\",\"field-groups\",\"field\",\"first\",\"fetch\",\"fields\",\"format\",\"frame\",\"free\",\"from\",\"function\",\"find\",\"for\",\"found\",\"function-pool\",\"generate\",\"get\",\"handle\",\"hide\",\"hashed\",\"include\",\"import\",\"importing\",\"index\",\"infotypes\",\"initial\",\"initialization\",\"id\",\"is\",\"in\",\"interface\",\"interfaces\",\"init\",\"input\",\"insert\",\"instance\",\"into\",\"key\",\"left-justified\",\"leave\",\"like\",\"line\",\"line-count\",\"line-size\",\"load\",\"local\",\"log-point\",\"length\",\"left\",\"leading\",\"lower\",\"matchcode\",\"method\",\"mesh\",\"message\",\"message-id\",\"methods\",\"modify\",\"module\",\"move\",\"move-corresponding\",\"multiply\",\"multiply-corresponding\",\"match\",\"new\",\"new-line\",\"new-page\",\"new-section\",\"next\",\"no\",\"no-gap\",\"no-gaps\",\"no-sign\",\"no-zero\",\"non-unique\",\"number\",\"occurrence\",\"object\",\"obligatory\",\"of\",\"output\",\"overlay\",\"optional\",\"others\",\"occurrences\",\"occurs\",\"offset\",\"options\",\"pack\",\"parameters\",\"perform\",\"places\",\"position\",\"print-control\",\"private\",\"program\",\"protected\",\"provide\",\"public\",\"put\",\"radiobutton\",\"raising\",\"ranges\",\"receive\",\"receiving\",\"redefinition\",\"reduce\",\"reference\",\"refresh\",\"regex\",\"reject\",\"results\",\"requested\",\"ref\",\"replace\",\"report\",\"reserve\",\"restore\",\"result\",\"return\",\"returning\",\"right-justified\",\"rollback\",\"read\",\"read-only\",\"rp-provide-from-last\",\"run\",\"scan\",\"screen\",\"scroll\",\"search\",\"select\",\"select-options\",\"selection-screen\",\"stamp\",\"source\",\"subkey\",\"separated\",\"set\",\"shift\",\"single\",\"skip\",\"sort\",\"sorted\",\"split\",\"standard\",\"stamp\",\"starting\",\"start-of-selection\",\"sum\",\"subtract-corresponding\",\"statics\",\"step\",\"stop\",\"structure\",\"submatches\",\"submit\",\"subtract\",\"summary\",\"supplied\",\"suppress\",\"section\",\"syntax-check\",\"syntax-trace\",\"system-call\",\"switch\",\"tables\",\"table\",\"task\",\"testing\",\"test-seam\",\"test-injection\",\"then\",\"time\",\"times\",\"title\",\"titlebar\",\"to\",\"top-of-page\",\"trailing\",\"transfer\",\"transformation\",\"translate\",\"transporting\",\"types\",\"type\",\"type-pool\",\"type-pools\",\"unassign\",\"unique\",\"uline\",\"unpack\",\"update\",\"upper\",\"using\",\"value\",\"when\",\"while\",\"window\",\"write\",\"where\",\"with\",\"work\",\"at\",\"case\",\"catch\",\"continue\",\"do\",\"elseif\",\"else\",\"endat\",\"endcase\",\"enddo\",\"endif\",\"endloop\",\"endon\",\"if\",\"loop\",\"on\",\"raise\",\"try\",\"abs\",\"sign\",\"ceil\",\"floor\",\"trunc\",\"frac\",\"acos\",\"asin\",\"atan\",\"cos\",\"sin\",\"tan\",\"cosh\",\"sinh\",\"tanh\",\"exp\",\"log\",\"log10\",\"sqrt\",\"strlen\",\"xstrlen\",\"charlen\",\"lines\",\"numofchar\",\"dbmaxlen\",\"round\",\"rescale\",\"nmax\",\"nmin\",\"cmax\",\"cmin\",\"boolc\",\"boolx\",\"xsdbool\",\"contains\",\"contains_any_of\",\"contains_any_not_of\",\"matches\",\"line_exists\",\"ipow\",\"char_off\",\"count\",\"count_any_of\",\"count_any_not_of\",\"distance\",\"condense\",\"concat_lines_of\",\"escape\",\"find\",\"find_end\",\"find_any_of\",\"find_any_not_of\",\"insert\",\"match\",\"repeat\",\"replace\",\"reverse\",\"segment\",\"shift_left\",\"shift_right\",\"substring\",\"substring_after\",\"substring_from\",\"substring_before\",\"substring_to\",\"to_upper\",\"to_lower\",\"to_mixed\",\"from_mixed\",\"translate\",\"bit-set\",\"line_index\",\"definition\",\"implementation\",\"public\",\"inheriting\",\"final\"],typeKeywords:[\"abap_bool\",\"string\",\"xstring\",\"any\",\"clike\",\"csequence\",\"numeric\",\"xsequence\",\"c\",\"n\",\"i\",\"p\",\"f\",\"d\",\"t\",\"x\"],operators:[\"+\",\"-\",\"/\",\"*\",\"=\",\"<\",\">\",\"<=\",\">=\",\"<>\",\"><\",\"=<\",\"=>\",\"EQ\",\"NE\",\"GE\",\"LE\",\"CS\",\"CN\",\"CA\",\"CO\",\"CP\",\"NS\",\"NA\",\"NP\"],symbols:/[=><!~?&+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[:,.]/,\"delimiter\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/'/,{token:\"string\",bracket:\"@open\",next:\"@stringquote\"}],[/\\|/,{token:\"string\",bracket:\"@open\",next:\"@stringtemplate\"}],[/\\d+/,\"number\"]],stringtemplate:[[/[^\\\\\\|]+/,\"string\"],[/\\\\\\|/,\"string\"],[/\\|/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],stringquote:[[/[^\\\\']+/,\"string\"],[/'/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\*.*$/,\"comment\"],[/\\\".*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/apex/apex.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/apex/apex\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}};var s=[];[\"abstract\",\"activate\",\"and\",\"any\",\"array\",\"as\",\"asc\",\"assert\",\"autonomous\",\"begin\",\"bigdecimal\",\"blob\",\"boolean\",\"break\",\"bulk\",\"by\",\"case\",\"cast\",\"catch\",\"char\",\"class\",\"collect\",\"commit\",\"const\",\"continue\",\"convertcurrency\",\"decimal\",\"default\",\"delete\",\"desc\",\"do\",\"double\",\"else\",\"end\",\"enum\",\"exception\",\"exit\",\"export\",\"extends\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"from\",\"future\",\"get\",\"global\",\"goto\",\"group\",\"having\",\"hint\",\"if\",\"implements\",\"import\",\"in\",\"inner\",\"insert\",\"instanceof\",\"int\",\"interface\",\"into\",\"join\",\"last_90_days\",\"last_month\",\"last_n_days\",\"last_week\",\"like\",\"limit\",\"list\",\"long\",\"loop\",\"map\",\"merge\",\"native\",\"new\",\"next_90_days\",\"next_month\",\"next_n_days\",\"next_week\",\"not\",\"null\",\"nulls\",\"number\",\"object\",\"of\",\"on\",\"or\",\"outer\",\"override\",\"package\",\"parallel\",\"pragma\",\"private\",\"protected\",\"public\",\"retrieve\",\"return\",\"returning\",\"rollback\",\"savepoint\",\"search\",\"select\",\"set\",\"short\",\"sort\",\"stat\",\"static\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"system\",\"testmethod\",\"then\",\"this\",\"this_month\",\"this_week\",\"throw\",\"throws\",\"today\",\"tolabel\",\"tomorrow\",\"transaction\",\"transient\",\"trigger\",\"true\",\"try\",\"type\",\"undelete\",\"update\",\"upsert\",\"using\",\"virtual\",\"void\",\"volatile\",\"webservice\",\"when\",\"where\",\"while\",\"yesterday\"].forEach((function(e){s.push(e),s.push(e.toUpperCase()),s.push(function(e){return e.charAt(0).toUpperCase()+e.substr(1)}(e))})),t.language={defaultToken:\"\",tokenPostfix:\".apex\",keywords:s,operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@apexdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],apexdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/azcli/azcli.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/azcli/azcli\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\"}},t.language={defaultToken:\"keyword\",ignoreCase:!0,tokenPostfix:\".azcli\",str:/[^#\\s]/,tokenizer:{root:[{include:\"@comment\"},[/\\s-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}],[/^-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}]],type:[{include:\"@comment\"},[/-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":\"key.identifier\"}}],[/@str+\\s*/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}]],comment:[[/#.*$/,{cases:{\"@eos\":{token:\"comment\",next:\"@popall\"}}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/bat/bat.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/bat/bat\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={comments:{lineComment:\"REM\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#region\"),end:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#endregion\")}}},s.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".bat\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)(rem(?:\\s.*|))$/,[\"\",\"comment\"]],[/(\\@?)(@keywords)(?!\\w)/,[{token:\"keyword\"},{token:\"keyword.$2\"}]],[/[ \\t\\r\\n]+/,\"\"],[/setlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/endlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/[a-zA-Z_]\\w*/,\"\"],[/:\\w*/,\"metatag\"],[/%[^%]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],string:[[/[^\\\\\"'%]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/%[\\w ]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/$/,\"string\",\"@popall\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/cameligo/cameligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/cameligo/cameligo\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}]},t.language={defaultToken:\"\",tokenPostfix:\".cameligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"abs\",\"begin\",\"Bytes\",\"Crypto\",\"Current\",\"else\",\"end\",\"failwith\",\"false\",\"fun\",\"if\",\"in\",\"let\",\"let%entry\",\"let%init\",\"List\",\"list\",\"Map\",\"map\",\"match\",\"match%nat\",\"mod\",\"not\",\"operation\",\"Operation\",\"of\",\"Set\",\"set\",\"sender\",\"source\",\"String\",\"then\",\"true\",\"type\",\"with\"],typeKeywords:[\"int\",\"unit\",\"string\",\"tz\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\",\"->\",\"<-\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/clojure/clojure.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/clojure/clojure\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\";;\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}]},t.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".clj\",brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"}],constants:[\"true\",\"false\",\"nil\"],numbers:/^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/,characters:/^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,escapes:/^\\\\(?:[\"'\\\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,specialForms:[\".\",\"catch\",\"def\",\"do\",\"if\",\"monitor-enter\",\"monitor-exit\",\"new\",\"quote\",\"recur\",\"set!\",\"throw\",\"try\",\"var\"],coreSymbols:[\"*\",\"*'\",\"*1\",\"*2\",\"*3\",\"*agent*\",\"*allow-unresolved-vars*\",\"*assert*\",\"*clojure-version*\",\"*command-line-args*\",\"*compile-files*\",\"*compile-path*\",\"*compiler-options*\",\"*data-readers*\",\"*default-data-reader-fn*\",\"*e\",\"*err*\",\"*file*\",\"*flush-on-newline*\",\"*fn-loader*\",\"*in*\",\"*math-context*\",\"*ns*\",\"*out*\",\"*print-dup*\",\"*print-length*\",\"*print-level*\",\"*print-meta*\",\"*print-namespace-maps*\",\"*print-readably*\",\"*read-eval*\",\"*reader-resolver*\",\"*source-path*\",\"*suppress-read*\",\"*unchecked-math*\",\"*use-context-classloader*\",\"*verbose-defrecords*\",\"*warn-on-reflection*\",\"+\",\"+'\",\"-\",\"-'\",\"->\",\"->>\",\"->ArrayChunk\",\"->Eduction\",\"->Vec\",\"->VecNode\",\"->VecSeq\",\"-cache-protocol-fn\",\"-reset-methods\",\"..\",\"/\",\"<\",\"<=\",\"=\",\"==\",\">\",\">=\",\"EMPTY-NODE\",\"Inst\",\"StackTraceElement->vec\",\"Throwable->map\",\"accessor\",\"aclone\",\"add-classpath\",\"add-watch\",\"agent\",\"agent-error\",\"agent-errors\",\"aget\",\"alength\",\"alias\",\"all-ns\",\"alter\",\"alter-meta!\",\"alter-var-root\",\"amap\",\"ancestors\",\"and\",\"any?\",\"apply\",\"areduce\",\"array-map\",\"as->\",\"aset\",\"aset-boolean\",\"aset-byte\",\"aset-char\",\"aset-double\",\"aset-float\",\"aset-int\",\"aset-long\",\"aset-short\",\"assert\",\"assoc\",\"assoc!\",\"assoc-in\",\"associative?\",\"atom\",\"await\",\"await-for\",\"await1\",\"bases\",\"bean\",\"bigdec\",\"bigint\",\"biginteger\",\"binding\",\"bit-and\",\"bit-and-not\",\"bit-clear\",\"bit-flip\",\"bit-not\",\"bit-or\",\"bit-set\",\"bit-shift-left\",\"bit-shift-right\",\"bit-test\",\"bit-xor\",\"boolean\",\"boolean-array\",\"boolean?\",\"booleans\",\"bound-fn\",\"bound-fn*\",\"bound?\",\"bounded-count\",\"butlast\",\"byte\",\"byte-array\",\"bytes\",\"bytes?\",\"case\",\"cast\",\"cat\",\"char\",\"char-array\",\"char-escape-string\",\"char-name-string\",\"char?\",\"chars\",\"chunk\",\"chunk-append\",\"chunk-buffer\",\"chunk-cons\",\"chunk-first\",\"chunk-next\",\"chunk-rest\",\"chunked-seq?\",\"class\",\"class?\",\"clear-agent-errors\",\"clojure-version\",\"coll?\",\"comment\",\"commute\",\"comp\",\"comparator\",\"compare\",\"compare-and-set!\",\"compile\",\"complement\",\"completing\",\"concat\",\"cond\",\"cond->\",\"cond->>\",\"condp\",\"conj\",\"conj!\",\"cons\",\"constantly\",\"construct-proxy\",\"contains?\",\"count\",\"counted?\",\"create-ns\",\"create-struct\",\"cycle\",\"dec\",\"dec'\",\"decimal?\",\"declare\",\"dedupe\",\"default-data-readers\",\"definline\",\"definterface\",\"defmacro\",\"defmethod\",\"defmulti\",\"defn\",\"defn-\",\"defonce\",\"defprotocol\",\"defrecord\",\"defstruct\",\"deftype\",\"delay\",\"delay?\",\"deliver\",\"denominator\",\"deref\",\"derive\",\"descendants\",\"destructure\",\"disj\",\"disj!\",\"dissoc\",\"dissoc!\",\"distinct\",\"distinct?\",\"doall\",\"dorun\",\"doseq\",\"dosync\",\"dotimes\",\"doto\",\"double\",\"double-array\",\"double?\",\"doubles\",\"drop\",\"drop-last\",\"drop-while\",\"eduction\",\"empty\",\"empty?\",\"ensure\",\"ensure-reduced\",\"enumeration-seq\",\"error-handler\",\"error-mode\",\"eval\",\"even?\",\"every-pred\",\"every?\",\"ex-data\",\"ex-info\",\"extend\",\"extend-protocol\",\"extend-type\",\"extenders\",\"extends?\",\"false?\",\"ffirst\",\"file-seq\",\"filter\",\"filterv\",\"find\",\"find-keyword\",\"find-ns\",\"find-protocol-impl\",\"find-protocol-method\",\"find-var\",\"first\",\"flatten\",\"float\",\"float-array\",\"float?\",\"floats\",\"flush\",\"fn\",\"fn?\",\"fnext\",\"fnil\",\"for\",\"force\",\"format\",\"frequencies\",\"future\",\"future-call\",\"future-cancel\",\"future-cancelled?\",\"future-done?\",\"future?\",\"gen-class\",\"gen-interface\",\"gensym\",\"get\",\"get-in\",\"get-method\",\"get-proxy-class\",\"get-thread-bindings\",\"get-validator\",\"group-by\",\"halt-when\",\"hash\",\"hash-combine\",\"hash-map\",\"hash-ordered-coll\",\"hash-set\",\"hash-unordered-coll\",\"ident?\",\"identical?\",\"identity\",\"if-let\",\"if-not\",\"if-some\",\"ifn?\",\"import\",\"in-ns\",\"inc\",\"inc'\",\"indexed?\",\"init-proxy\",\"inst-ms\",\"inst-ms*\",\"inst?\",\"instance?\",\"int\",\"int-array\",\"int?\",\"integer?\",\"interleave\",\"intern\",\"interpose\",\"into\",\"into-array\",\"ints\",\"io!\",\"isa?\",\"iterate\",\"iterator-seq\",\"juxt\",\"keep\",\"keep-indexed\",\"key\",\"keys\",\"keyword\",\"keyword?\",\"last\",\"lazy-cat\",\"lazy-seq\",\"let\",\"letfn\",\"line-seq\",\"list\",\"list*\",\"list?\",\"load\",\"load-file\",\"load-reader\",\"load-string\",\"loaded-libs\",\"locking\",\"long\",\"long-array\",\"longs\",\"loop\",\"macroexpand\",\"macroexpand-1\",\"make-array\",\"make-hierarchy\",\"map\",\"map-entry?\",\"map-indexed\",\"map?\",\"mapcat\",\"mapv\",\"max\",\"max-key\",\"memfn\",\"memoize\",\"merge\",\"merge-with\",\"meta\",\"method-sig\",\"methods\",\"min\",\"min-key\",\"mix-collection-hash\",\"mod\",\"munge\",\"name\",\"namespace\",\"namespace-munge\",\"nat-int?\",\"neg-int?\",\"neg?\",\"newline\",\"next\",\"nfirst\",\"nil?\",\"nnext\",\"not\",\"not-any?\",\"not-empty\",\"not-every?\",\"not=\",\"ns\",\"ns-aliases\",\"ns-imports\",\"ns-interns\",\"ns-map\",\"ns-name\",\"ns-publics\",\"ns-refers\",\"ns-resolve\",\"ns-unalias\",\"ns-unmap\",\"nth\",\"nthnext\",\"nthrest\",\"num\",\"number?\",\"numerator\",\"object-array\",\"odd?\",\"or\",\"parents\",\"partial\",\"partition\",\"partition-all\",\"partition-by\",\"pcalls\",\"peek\",\"persistent!\",\"pmap\",\"pop\",\"pop!\",\"pop-thread-bindings\",\"pos-int?\",\"pos?\",\"pr\",\"pr-str\",\"prefer-method\",\"prefers\",\"primitives-classnames\",\"print\",\"print-ctor\",\"print-dup\",\"print-method\",\"print-simple\",\"print-str\",\"printf\",\"println\",\"println-str\",\"prn\",\"prn-str\",\"promise\",\"proxy\",\"proxy-call-with-super\",\"proxy-mappings\",\"proxy-name\",\"proxy-super\",\"push-thread-bindings\",\"pvalues\",\"qualified-ident?\",\"qualified-keyword?\",\"qualified-symbol?\",\"quot\",\"rand\",\"rand-int\",\"rand-nth\",\"random-sample\",\"range\",\"ratio?\",\"rational?\",\"rationalize\",\"re-find\",\"re-groups\",\"re-matcher\",\"re-matches\",\"re-pattern\",\"re-seq\",\"read\",\"read-line\",\"read-string\",\"reader-conditional\",\"reader-conditional?\",\"realized?\",\"record?\",\"reduce\",\"reduce-kv\",\"reduced\",\"reduced?\",\"reductions\",\"ref\",\"ref-history-count\",\"ref-max-history\",\"ref-min-history\",\"ref-set\",\"refer\",\"refer-clojure\",\"reify\",\"release-pending-sends\",\"rem\",\"remove\",\"remove-all-methods\",\"remove-method\",\"remove-ns\",\"remove-watch\",\"repeat\",\"repeatedly\",\"replace\",\"replicate\",\"require\",\"reset!\",\"reset-meta!\",\"reset-vals!\",\"resolve\",\"rest\",\"restart-agent\",\"resultset-seq\",\"reverse\",\"reversible?\",\"rseq\",\"rsubseq\",\"run!\",\"satisfies?\",\"second\",\"select-keys\",\"send\",\"send-off\",\"send-via\",\"seq\",\"seq?\",\"seqable?\",\"seque\",\"sequence\",\"sequential?\",\"set\",\"set-agent-send-executor!\",\"set-agent-send-off-executor!\",\"set-error-handler!\",\"set-error-mode!\",\"set-validator!\",\"set?\",\"short\",\"short-array\",\"shorts\",\"shuffle\",\"shutdown-agents\",\"simple-ident?\",\"simple-keyword?\",\"simple-symbol?\",\"slurp\",\"some\",\"some->\",\"some->>\",\"some-fn\",\"some?\",\"sort\",\"sort-by\",\"sorted-map\",\"sorted-map-by\",\"sorted-set\",\"sorted-set-by\",\"sorted?\",\"special-symbol?\",\"spit\",\"split-at\",\"split-with\",\"str\",\"string?\",\"struct\",\"struct-map\",\"subs\",\"subseq\",\"subvec\",\"supers\",\"swap!\",\"swap-vals!\",\"symbol\",\"symbol?\",\"sync\",\"tagged-literal\",\"tagged-literal?\",\"take\",\"take-last\",\"take-nth\",\"take-while\",\"test\",\"the-ns\",\"thread-bound?\",\"time\",\"to-array\",\"to-array-2d\",\"trampoline\",\"transduce\",\"transient\",\"tree-seq\",\"true?\",\"type\",\"unchecked-add\",\"unchecked-add-int\",\"unchecked-byte\",\"unchecked-char\",\"unchecked-dec\",\"unchecked-dec-int\",\"unchecked-divide-int\",\"unchecked-double\",\"unchecked-float\",\"unchecked-inc\",\"unchecked-inc-int\",\"unchecked-int\",\"unchecked-long\",\"unchecked-multiply\",\"unchecked-multiply-int\",\"unchecked-negate\",\"unchecked-negate-int\",\"unchecked-remainder-int\",\"unchecked-short\",\"unchecked-subtract\",\"unchecked-subtract-int\",\"underive\",\"unquote\",\"unquote-splicing\",\"unreduced\",\"unsigned-bit-shift-right\",\"update\",\"update-in\",\"update-proxy\",\"uri?\",\"use\",\"uuid?\",\"val\",\"vals\",\"var-get\",\"var-set\",\"var?\",\"vary-meta\",\"vec\",\"vector\",\"vector-of\",\"vector?\",\"volatile!\",\"volatile?\",\"vreset!\",\"vswap!\",\"when\",\"when-first\",\"when-let\",\"when-not\",\"when-some\",\"while\",\"with-bindings\",\"with-bindings*\",\"with-in-str\",\"with-loading-context\",\"with-local-vars\",\"with-meta\",\"with-open\",\"with-out-str\",\"with-precision\",\"with-redefs\",\"with-redefs-fn\",\"xml-seq\",\"zero?\",\"zipmap\"],tokenizer:{root:[{include:\"@whitespace\"},[/@numbers/,\"number\"],[/@characters/,\"string\"],{include:\"@string\"},[/[()\\[\\]{}]/,\"@brackets\"],[/\\/#\"(?:\\.|(?:\")|[^\"\\n])*\"\\/g/,\"regexp\"],[/[#'@^`~]/,\"meta\"],[/@qualifiedSymbols/,{cases:{\"^:.+$\":\"constant\",\"@specialForms\":\"keyword\",\"@coreSymbols\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],whitespace:[[/[\\s,]+/,\"white\"],[/;.*$/,\"comment\"],[/\\(comment\\b/,\"comment\",\"@comment\"]],comment:[[/\\(/,\"comment\",\"@push\"],[/\\)/,\"comment\",\"@pop\"],[/[^()]/,\"comment\"]],string:[[/\"/,\"string\",\"@multiLineString\"]],multiLineString:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/coffee/coffee.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/coffee/coffee\",[\"require\",\"exports\"],(function(e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},r.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".coffee\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\"and\",\"or\",\"is\",\"isnt\",\"not\",\"on\",\"yes\",\"@\",\"no\",\"off\",\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\",\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],symbols:/[=><!~?&%|+\\-*\\/\\^\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/###/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\()(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\=)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\[)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\!)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\&)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\|)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\?)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\{)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\;)(\\s*)(@regEx)/,[\"\",\"\",\"regexp\"]],[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/###/,\"comment\",\"@pop\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/cpp/cpp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/cpp/cpp\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\".cpp\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"abstract\",\"amp\",\"array\",\"auto\",\"bool\",\"break\",\"case\",\"catch\",\"char\",\"class\",\"const\",\"constexpr\",\"const_cast\",\"continue\",\"cpu\",\"decltype\",\"default\",\"delegate\",\"delete\",\"do\",\"double\",\"dynamic_cast\",\"each\",\"else\",\"enum\",\"event\",\"explicit\",\"export\",\"extern\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"friend\",\"gcnew\",\"generic\",\"goto\",\"if\",\"in\",\"initonly\",\"inline\",\"int\",\"interface\",\"interior_ptr\",\"internal\",\"literal\",\"long\",\"mutable\",\"namespace\",\"new\",\"noexcept\",\"nullptr\",\"__nullptr\",\"operator\",\"override\",\"partial\",\"pascal\",\"pin_ptr\",\"private\",\"property\",\"protected\",\"public\",\"ref\",\"register\",\"reinterpret_cast\",\"restrict\",\"return\",\"safe_cast\",\"sealed\",\"short\",\"signed\",\"sizeof\",\"static\",\"static_assert\",\"static_cast\",\"struct\",\"switch\",\"template\",\"this\",\"thread_local\",\"throw\",\"tile_static\",\"true\",\"try\",\"typedef\",\"typeid\",\"typename\",\"union\",\"unsigned\",\"using\",\"virtual\",\"void\",\"volatile\",\"wchar_t\",\"where\",\"while\",\"_asm\",\"_based\",\"_cdecl\",\"_declspec\",\"_fastcall\",\"_if_exists\",\"_if_not_exists\",\"_inline\",\"_multiple_inheritance\",\"_pascal\",\"_single_inheritance\",\"_stdcall\",\"_virtual_inheritance\",\"_w64\",\"__abstract\",\"__alignof\",\"__asm\",\"__assume\",\"__based\",\"__box\",\"__builtin_alignof\",\"__cdecl\",\"__clrcall\",\"__declspec\",\"__delegate\",\"__event\",\"__except\",\"__fastcall\",\"__finally\",\"__forceinline\",\"__gc\",\"__hook\",\"__identifier\",\"__if_exists\",\"__if_not_exists\",\"__inline\",\"__int128\",\"__int16\",\"__int32\",\"__int64\",\"__int8\",\"__interface\",\"__leave\",\"__m128\",\"__m128d\",\"__m128i\",\"__m256\",\"__m256d\",\"__m256i\",\"__m64\",\"__multiple_inheritance\",\"__newslot\",\"__nogc\",\"__noop\",\"__nounwind\",\"__novtordisp\",\"__pascal\",\"__pin\",\"__pragma\",\"__property\",\"__ptr32\",\"__ptr64\",\"__raise\",\"__restrict\",\"__resume\",\"__sealed\",\"__single_inheritance\",\"__stdcall\",\"__super\",\"__thiscall\",\"__try\",\"__try_cast\",\"__typeof\",\"__unaligned\",\"__unhook\",\"__uuidof\",\"__value\",\"__virtual_inheritance\",\"__w64\",\"__wchar_t\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\\\"(?:([^ ()\\\\\\t]*))\\(/,{token:\"string.raw.begin\",next:\"@raw.$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#include/,{token:\"keyword.directive.include\",next:\"@include\"}],[/^\\s*#\\s*\\w+/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],raw:[[/(.*)(\\))(?:([^ ()\\\\\\t]*))(\\\")/,{cases:{\"$3==$S2\":[\"string.raw\",\"string.raw.end\",\"string.raw.end\",{token:\"string.raw.end\",next:\"@pop\"}],\"@default\":[\"string.raw\",\"string.raw\",\"string.raw\",\"string.raw\"]}}],[/.*/,\"string.raw\"]],include:[[/(\\s*)(<)([^<>]*)(>)/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]],[/(\\s*)(\")([^\"]*)(\")/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/csharp/csharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/csharp/csharp\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\".cs\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"extern\",\"alias\",\"using\",\"bool\",\"decimal\",\"sbyte\",\"byte\",\"short\",\"ushort\",\"int\",\"uint\",\"long\",\"ulong\",\"char\",\"float\",\"double\",\"object\",\"dynamic\",\"string\",\"assembly\",\"is\",\"as\",\"ref\",\"out\",\"this\",\"base\",\"new\",\"typeof\",\"void\",\"checked\",\"unchecked\",\"default\",\"delegate\",\"var\",\"const\",\"if\",\"else\",\"switch\",\"case\",\"while\",\"do\",\"for\",\"foreach\",\"in\",\"break\",\"continue\",\"goto\",\"return\",\"throw\",\"try\",\"catch\",\"finally\",\"lock\",\"yield\",\"from\",\"let\",\"where\",\"join\",\"on\",\"equals\",\"into\",\"orderby\",\"ascending\",\"descending\",\"select\",\"group\",\"by\",\"namespace\",\"partial\",\"class\",\"field\",\"event\",\"method\",\"param\",\"property\",\"public\",\"protected\",\"internal\",\"private\",\"abstract\",\"sealed\",\"static\",\"struct\",\"readonly\",\"volatile\",\"virtual\",\"override\",\"params\",\"get\",\"set\",\"add\",\"remove\",\"operator\",\"true\",\"false\",\"implicit\",\"explicit\",\"interface\",\"enum\",\"null\",\"async\",\"await\",\"fixed\",\"sizeof\",\"stackalloc\",\"unsafe\",\"nameof\",\"when\"],namespaceFollows:[\"namespace\",\"using\"],parenFollows:[\"if\",\"for\",\"while\",\"switch\",\"foreach\",\"using\",\"catch\",\"when\"],operators:[\"=\",\"??\",\"||\",\"&&\",\"|\",\"^\",\"&\",\"==\",\"!=\",\"<=\",\">=\",\"<<\",\"+\",\"-\",\"*\",\"/\",\"%\",\"!\",\"~\",\"++\",\"--\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\">>\",\"=>\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@?[a-zA-Z_]\\w*/,{cases:{\"@namespaceFollows\":{token:\"keyword.$0\",next:\"@namespace\"},\"@keywords\":{token:\"keyword.$0\",next:\"@qualified\"},\"@default\":{token:\"identifier\",next:\"@qualified\"}}}],{include:\"@whitespace\"},[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string.quote\",next:\"@pop\"},\"$S2==litinterpstring\":{token:\"string.quote\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?[fFdD]?/,\"number.float\"],[/0[xX][0-9a-fA-F_]+/,\"number.hex\"],[/0[bB][01_]+/,\"number.hex\"],[/[0-9_]+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",next:\"@string\"}],[/\\$\\@\"/,{token:\"string.quote\",next:\"@litinterpstring\"}],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/\\$\"/,{token:\"string.quote\",next:\"@interpolatedstring\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],qualified:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/\\./,\"delimiter\"],[\"\",\"\",\"@pop\"]],namespace:[{include:\"@whitespace\"},[/[A-Z]\\w*/,\"namespace\"],[/[\\.=]/,\"delimiter\"],[\"\",\"\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litinterpstring:[[/[^\"{]+/,\"string\"],[/\"\"/,\"string.escape\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.litinterpstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],interpolatedstring:[[/[^\\\\\"{]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],whitespace:[[/^[ \\t\\v\\f]*#((r)|(load))(?=\\s)/,\"directive.csx\"],[/^[ \\t\\v\\f]*#\\w.*$/,\"namespace.cpp\"],[/[ \\t\\v\\f\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/csp/csp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/csp/csp\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={brackets:[],autoClosingPairs:[],surroundingPairs:[]},e.language={keywords:[],typeKeywords:[],tokenPostfix:\".csp\",operators:[],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,\"string.quote\"],[/connect-src/,\"string.quote\"],[/default-src/,\"string.quote\"],[/font-src/,\"string.quote\"],[/frame-src/,\"string.quote\"],[/img-src/,\"string.quote\"],[/manifest-src/,\"string.quote\"],[/media-src/,\"string.quote\"],[/object-src/,\"string.quote\"],[/script-src/,\"string.quote\"],[/style-src/,\"string.quote\"],[/worker-src/,\"string.quote\"],[/base-uri/,\"string.quote\"],[/plugin-types/,\"string.quote\"],[/sandbox/,\"string.quote\"],[/disown-opener/,\"string.quote\"],[/form-action/,\"string.quote\"],[/frame-ancestors/,\"string.quote\"],[/report-uri/,\"string.quote\"],[/report-to/,\"string.quote\"],[/upgrade-insecure-requests/,\"string.quote\"],[/block-all-mixed-content/,\"string.quote\"],[/require-sri-for/,\"string.quote\"],[/reflected-xss/,\"string.quote\"],[/referrer/,\"string.quote\"],[/policy-uri/,\"string.quote\"],[/'self'/,\"string.quote\"],[/'unsafe-inline'/,\"string.quote\"],[/'unsafe-eval'/,\"string.quote\"],[/'strict-dynamic'/,\"string.quote\"],[/'unsafe-hashed-attributes'/,\"string.quote\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/css/css.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/css/css\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|((::|[@#.!:])?[\\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".css\",ws:\"[ \\t\\n\\r\\f]*\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.bracket\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@strings\"},[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@selectorname\"},[\"[\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}]],selectorbody:[{include:\"@comments\"},[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],selectorname:[[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@name\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"delimiter\"],[\",\",\"delimiter\"]],rulevalue:[{include:\"@comments\"},{include:\"@strings\"},{include:\"@term\"},[\"!important\",\"keyword\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[/[^*/]+/,\"comment\"],[/./,\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"-?(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],keyframedeclaration:[[\"@identifier\",\"attribute.value\"],[\"{\",{token:\"delimiter.bracket\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"attribute.value\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"attribute.value\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string\",next:\"@pop\"}],[/[^\\\\\"]+/,\"string\"],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string\",next:\"@pop\"}],[/[^\\\\']+/,\"string\"],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/dockerfile/dockerfile.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/dockerfile/dockerfile\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},s.language={defaultToken:\"\",tokenPostfix:\".dockerfile\",variable:/\\${?[\\w]+}?/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/(ONBUILD)(\\s+)/,[\"keyword\",\"\"]],[/(ENV)(\\s+)([\\w]+)/,[\"keyword\",\"\",{token:\"variable\",next:\"@arguments\"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:\"keyword\",next:\"@arguments\"}]],arguments:[{include:\"@whitespace\"},{include:\"@strings\"},[/(@variable)/,{cases:{\"@eos\":{token:\"variable\",next:\"@popall\"},\"@default\":\"variable\"}}],[/\\\\/,{cases:{\"@eos\":\"\",\"@default\":\"\"}}],[/./,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],whitespace:[[/\\s+/,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],comment:[[/(^#.*$)/,\"comment\",\"@popall\"]],strings:[[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@stringBody\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/[^\\\\\\$']/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]],dblStringBody:[[/[^\\\\\\$\"]/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/fsharp/fsharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/fsharp/fsharp\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#region\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#region(.*)\\\\*\\\\)\"),end:new RegExp(\"^\\\\s*//\\\\s*#endregion\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#endregion\\\\s*\\\\*\\\\)\")}}},n.language={defaultToken:\"\",tokenPostfix:\".fs\",keywords:[\"abstract\",\"and\",\"atomic\",\"as\",\"assert\",\"asr\",\"base\",\"begin\",\"break\",\"checked\",\"component\",\"const\",\"constraint\",\"constructor\",\"continue\",\"class\",\"default\",\"delegate\",\"do\",\"done\",\"downcast\",\"downto\",\"elif\",\"else\",\"end\",\"exception\",\"eager\",\"event\",\"external\",\"extern\",\"false\",\"finally\",\"for\",\"fun\",\"function\",\"fixed\",\"functor\",\"global\",\"if\",\"in\",\"include\",\"inherit\",\"inline\",\"interface\",\"internal\",\"land\",\"lor\",\"lsl\",\"lsr\",\"lxor\",\"lazy\",\"let\",\"match\",\"member\",\"mod\",\"module\",\"mutable\",\"namespace\",\"method\",\"mixin\",\"new\",\"not\",\"null\",\"of\",\"open\",\"or\",\"object\",\"override\",\"private\",\"parallel\",\"process\",\"protected\",\"pure\",\"public\",\"rec\",\"return\",\"static\",\"sealed\",\"struct\",\"sig\",\"then\",\"to\",\"true\",\"tailcall\",\"trait\",\"try\",\"type\",\"upcast\",\"use\",\"val\",\"void\",\"virtual\",\"volatile\",\"when\",\"while\",\"with\",\"yield\"],symbols:/[=><!~?:&|+\\-*\\^%;\\.,\\/]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[<.*>\\]/,\"annotation\"],[/^#(if|else|endif)/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0x[0-9a-fA-F]+LF/,\"number.float\"],[/0x[0-9a-fA-F]+(@integersuffix)/,\"number.hex\"],[/0b[0-1]+(@integersuffix)/,\"number.bin\"],[/\\d+(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",'@string.\"\"\"'],[/\"/,\"string\",'@string.\"'],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/'[^\\\\']'B?/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\(\\*(?!\\))/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^*(]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"],[/\\(\\*\\)/,\"comment\"],[/\\(/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/(\"\"\"|\"B?)/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/go/go.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/go/go\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".go\",keywords:[\"break\",\"case\",\"chan\",\"const\",\"continue\",\"default\",\"defer\",\"else\",\"fallthrough\",\"for\",\"func\",\"go\",\"goto\",\"if\",\"import\",\"interface\",\"map\",\"package\",\"range\",\"return\",\"select\",\"struct\",\"switch\",\"type\",\"var\",\"bool\",\"true\",\"false\",\"uint8\",\"uint16\",\"uint32\",\"uint64\",\"int8\",\"int16\",\"int32\",\"int64\",\"float32\",\"float64\",\"complex64\",\"complex128\",\"byte\",\"rune\",\"uint\",\"int\",\"uintptr\",\"string\",\"nil\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"&\",\"|\",\"^\",\"<<\",\">>\",\"&^\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\"&^=\",\"&&\",\"||\",\"<-\",\"++\",\"--\",\"==\",\"<\",\">\",\"=\",\"!\",\"!=\",\"<=\",\">=\",\":=\",\"...\",\"(\",\")\",\"\",\"]\",\"{\",\"}\",\",\",\";\",\".\",\":\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex\"],[/0[0-7']*[0-7]/,\"number.octal\"],[/0[bB][0-1']*[0-1]/,\"number.binary\"],[/\\d[\\d']*/,\"number\"],[/\\d/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/`/,\"string\",\"@rawstring\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],rawstring:[[/[^\\`]/,\"string\"],[/`/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/graphql/graphql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/graphql/graphql\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"',notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"'},{open:'\"',close:'\"'}],folding:{offSide:!0}},n.language={defaultToken:\"invalid\",tokenPostfix:\".gql\",keywords:[\"null\",\"true\",\"false\",\"query\",\"mutation\",\"subscription\",\"extend\",\"schema\",\"directive\",\"scalar\",\"type\",\"interface\",\"union\",\"enum\",\"input\",\"implements\",\"fragment\",\"on\"],typeKeywords:[\"Int\",\"Float\",\"String\",\"Boolean\",\"ID\"],directiveLocations:[\"SCHEMA\",\"SCALAR\",\"OBJECT\",\"FIELD_DEFINITION\",\"ARGUMENT_DEFINITION\",\"INTERFACE\",\"UNION\",\"ENUM\",\"ENUM_VALUE\",\"INPUT_OBJECT\",\"INPUT_FIELD_DEFINITION\",\"QUERY\",\"MUTATION\",\"SUBSCRIPTION\",\"FIELD\",\"FRAGMENT_DEFINITION\",\"FRAGMENT_SPREAD\",\"INLINE_FRAGMENT\",\"VARIABLE_DEFINITION\"],operators:[\"=\",\"!\",\"?\",\":\",\"&\",\"|\"],symbols:/[=!?:&|]+/,escapes:/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"key.identifier\"}}],[/[$][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"argument.identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,{token:\"annotation\",log:\"annotation token: $0\"}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"\"\"/,{token:\"string\",next:\"@mlstring\",nextEmbedded:\"markdown\"}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}]],mlstring:[[/[^\"]+/,\"string\"],['\"\"\"',{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/handlebars/handlebars.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/handlebars/handlebars\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco,a=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{{!--\",\"--}}\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{{\",\"}}\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+a.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+a.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:n.languages.IndentAction.Indent}}]},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/\\{/,\"delimiter.html\"],[/[^<{]+/]],doctype:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],handlebarsInSimpleState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\"}],{include:\"handlebarsRoot\"}],handlebarsInEmbeddedState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"handlebarsRoot\"}],handlebarsRoot:[[/\"[^\"]*\"/,\"string.handlebars\"],[/[#/][^\\s}]+/,\"keyword.helper.handlebars\"],[/else\\b/,\"keyword.helper.handlebars\"],[/[\\s]+/],[/[^}]/,\"variable.parameter.handlebars\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/html/html.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/html/html\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco,i=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+i.join(\"|\")+\"))([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,action:{indentAction:n.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+i.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:n.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#endregion\\\\b.*--\\x3e\")}}},t.language={defaultToken:\"\",tokenPostfix:\".html\",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,\"metatag\",\"@doctype\"],[/<!--/,\"comment\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter\",\"tag\",\"\",\"delimiter\"]],[/(<)(script)/,[\"delimiter\",{token:\"tag\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter\",{token:\"tag\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/</,\"delimiter\"],[/[^<]+/]],doctype:[[/[^>]+/,\"metatag.content\"],[/>/,\"metatag\",\"@pop\"]],comment:[[/-->/,\"comment\",\"@pop\"],[/[^-]+/,\"comment.content\"],[/./,\"comment.content\"]],otherTag:[[/\\/?>/,\"delimiter\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/ini/ini.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/ini/ini\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".ini\",escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\\[[^\\]]*\\]/,\"metatag\"],[/(^\\w+)(\\s*)(\\=)/,[\"key\",\"\",\"delimiter\"]],{include:\"@whitespace\"},[/\\d+/,\"number\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*[#;].*$/,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/java/java.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/java/java\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},t.language={defaultToken:\"\",tokenPostfix:\".java\",keywords:[\"abstract\",\"continue\",\"for\",\"new\",\"switch\",\"assert\",\"default\",\"goto\",\"package\",\"synchronized\",\"boolean\",\"do\",\"if\",\"private\",\"this\",\"break\",\"double\",\"implements\",\"protected\",\"throw\",\"byte\",\"else\",\"import\",\"public\",\"throws\",\"case\",\"enum\",\"instanceof\",\"return\",\"transient\",\"catch\",\"extends\",\"int\",\"short\",\"try\",\"char\",\"final\",\"interface\",\"static\",\"void\",\"class\",\"finally\",\"long\",\"strictfp\",\"volatile\",\"const\",\"float\",\"native\",\"super\",\"while\",\"true\",\"false\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/javascript/javascript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/typescript/typescript\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco;t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],onEnterRules:[{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,afterText:/^\\s*\\*\\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:\" * \"}},{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:\" * \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),end:new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")}}},t.language={defaultToken:\"invalid\",tokenPostfix:\".ts\",keywords:[\"abstract\",\"as\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"declare\",\"default\",\"delete\",\"do\",\"else\",\"enum\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"implements\",\"import\",\"in\",\"infer\",\"instanceof\",\"interface\",\"is\",\"keyof\",\"let\",\"module\",\"namespace\",\"never\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"readonly\",\"require\",\"global\",\"return\",\"set\",\"static\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"type\",\"typeof\",\"unique\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[\"any\",\"boolean\",\"number\",\"object\",\"string\",\"undefined\"],operators:[\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"=>\",\"+\",\"-\",\"**\",\"*\",\"/\",\"%\",\"++\",\"--\",\"<<\",\"</\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"??\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"@\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"],[/`/,\"string\",\"@string_backtick\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([gimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],string_single:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]],string_backtick:[[/\\$\\{/,{token:\"delimiter.bracket\",next:\"@bracketCounting\"}],[/[^\\\\`$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/`/,\"string\",\"@pop\"]],bracketCounting:[[/\\{/,\"delimiter.bracket\",\"@bracketCounting\"],[/\\}/,\"delimiter.bracket\",\"@pop\"],{include:\"common\"}]}}})),define(\"vs/basic-languages/javascript/javascript\",[\"require\",\"exports\",\"../typescript/typescript\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});\"undefined\"==typeof monaco?self.monaco:monaco;t.conf=n.conf,t.language={defaultToken:\"invalid\",tokenPostfix:\".js\",keywords:[\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"default\",\"delete\",\"do\",\"else\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"import\",\"in\",\"instanceof\",\"let\",\"new\",\"null\",\"return\",\"set\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"undefined\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[],operators:n.language.operators,symbols:n.language.symbols,escapes:n.language.escapes,digits:n.language.digits,octaldigits:n.language.octaldigits,binarydigits:n.language.binarydigits,hexdigits:n.language.hexdigits,regexpctl:n.language.regexpctl,regexpesc:n.language.regexpesc,tokenizer:n.language.tokenizer}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/kotlin/kotlin.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/kotlin/kotlin\",[\"require\",\"exports\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),i.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},i.language={defaultToken:\"\",tokenPostfix:\".kt\",keywords:[\"as\",\"as?\",\"break\",\"class\",\"continue\",\"do\",\"else\",\"false\",\"for\",\"fun\",\"if\",\"in\",\"!in\",\"interface\",\"is\",\"!is\",\"null\",\"object\",\"package\",\"return\",\"super\",\"this\",\"throw\",\"true\",\"try\",\"typealias\",\"val\",\"var\",\"when\",\"while\",\"by\",\"catch\",\"constructor\",\"delegate\",\"dynamic\",\"field\",\"file\",\"finally\",\"get\",\"import\",\"init\",\"param\",\"property\",\"receiver\",\"set\",\"setparam\",\"where\",\"actual\",\"abstract\",\"annotation\",\"companion\",\"const\",\"crossinline\",\"data\",\"enum\",\"expect\",\"external\",\"final\",\"infix\",\"inline\",\"inner\",\"internal\",\"lateinit\",\"noinline\",\"open\",\"operator\",\"out\",\"override\",\"private\",\"protected\",\"public\",\"reified\",\"sealed\",\"suspend\",\"tailrec\",\"vararg\",\"field\",\"it\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"++\",\"--\",\"&&\",\"||\",\"!\",\"==\",\"!=\",\"===\",\"!==\",\">\",\"<\",\"<=\",\">=\",\"[\",\"]\",\"!!\",\"?.\",\"?:\",\"::\",\"..\",\":\",\"?\",\"->\",\"@\",\";\",\"$\",\"_\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[A-Z][\\w\\$]*/,\"type.identifier\"],[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",\"@multistring\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc\",\"@push\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],multistring:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"\"\"/,\"string\",\"@pop\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/less/less.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/less/less\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".less\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",identifierPlus:\"-?-?([a-zA-Z:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@nestedJSBegin\"},[\"[ \\\\t\\\\r\\\\n]+\",\"\"],{include:\"@comments\"},{include:\"@keyword\"},{include:\"@strings\"},{include:\"@numbers\"},[\"[*_]?[a-zA-Z\\\\-\\\\s]+(?=:.*(;|(\\\\\\\\$)))\",\"attribute.name\",\"@attribute\"],[\"url(\\\\-prefix)?\\\\(\",{token:\"tag\",next:\"@urldeclaration\"}],[\"[{}()\\\\[\\\\]]\",\"@brackets\"],[\"[,:;]\",\"delimiter\"],[\"#@identifierPlus\",\"tag.id\"],[\"&\",\"tag\"],[\"\\\\.@identifierPlus(?=\\\\()\",\"tag.class\",\"@attribute\"],[\"\\\\.@identifierPlus\",\"tag.class\"],[\"@identifierPlus\",\"tag\"],{include:\"@operators\"},[\"@(@identifier(?=[:,\\\\)]))\",\"variable\",\"@attribute\"],[\"@(@identifier)\",\"variable\"],[\"@\",\"key\",\"@atRules\"]],nestedJSBegin:[[\"``\",\"delimiter.backtick\"],[\"`\",{token:\"delimiter.backtick\",next:\"@nestedJSEnd\",nextEmbedded:\"text/javascript\"}]],nestedJSEnd:[[\"`\",{token:\"delimiter.backtick\",next:\"@pop\",nextEmbedded:\"@pop\"}]],operators:[[\"[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~]\",\"operator\"]],keyword:[[\"(@[\\\\s]*import|![\\\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\\\b\",\"keyword\"]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"tag\",next:\"@pop\"}]],attribute:[{include:\"@nestedJSBegin\"},{include:\"@comments\"},{include:\"@strings\"},{include:\"@numbers\"},{include:\"@keyword\"},[\"[a-zA-Z\\\\-]+(?=\\\\()\",\"attribute.value\",\"@attribute\"],[\">\",\"operator\",\"@pop\"],[\"@identifier\",\"attribute.value\"],{include:\"@operators\"},[\"@(@identifier)\",\"variable\"],[\"[)\\\\}]\",\"@brackets\",\"@pop\"],[\"[{}()\\\\[\\\\]>]\",\"@brackets\"],[\"[;]\",\"delimiter\",\"@pop\"],[\"[,=:]\",\"delimiter\"],[\"\\\\s\",\"\"],[\".\",\"attribute.value\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringsEndDoubleQuote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringsEndQuote\"}]],stringsEndDoubleQuote:[['\\\\\\\\\"',\"string\"],['\"',{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],stringsEndQuote:[[\"\\\\\\\\'\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],atRules:[{include:\"@comments\"},{include:\"@strings\"},[\"[()]\",\"delimiter\"],[\"[\\\\{;]\",\"delimiter\",\"@pop\"],[\".\",\"key\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/lua/lua.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/lua/lua\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"--\",blockComment:[\"--[[\",\"]]\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".lua\",keywords:[\"and\",\"break\",\"do\",\"else\",\"elseif\",\"end\",\"false\",\"for\",\"function\",\"goto\",\"if\",\"in\",\"local\",\"nil\",\"not\",\"or\",\"repeat\",\"return\",\"then\",\"true\",\"until\",\"while\"],brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"^\",\"#\",\"==\",\"~=\",\"<=\",\">=\",\"<\",\">\",\"=\",\";\",\":\",\",\",\".\",\"..\",\"...\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/(,)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"delimiter\",\"\",\"key\",\"\",\"delimiter\"]],[/({)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"@brackets\",\"\",\"key\",\"\",\"delimiter\"]],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/--\\[([=]*)\\[/,\"comment\",\"@comment.$1\"],[/--.*$/,\"comment\"]],comment:[[/[^\\]]+/,\"comment\"],[/\\]([=]*)\\]/,{cases:{\"$1==$S2\":{token:\"comment\",next:\"@pop\"},\"@default\":\"comment\"}}],[/./,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/markdown/markdown.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/markdown/markdown\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?endregion\\\\b.*--\\x3e\")}}},t.language={defaultToken:\"\",tokenPostfix:\".md\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,noncontrol:/[^\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,jsescapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],tokenizer:{root:[[/^\\s*\\|/,\"@rematch\",\"@table_header\"],[/^(\\s{0,3})(#+)((?:[^\\\\#]|@escapes)+)((?:#+)?)/,[\"white\",\"keyword\",\"keyword\",\"keyword\"]],[/^\\s*(=+|\\-+)\\s*$/,\"keyword\"],[/^\\s*((\\*[ ]?)+)\\s*$/,\"meta.separator\"],[/^\\s*>+/,\"comment\"],[/^\\s*([\\*\\-+:]|\\d+\\.)\\s/,\"keyword\"],[/^(\\t|[ ]{4})[^ ].*$/,\"string\"],[/^\\s*~~~\\s*((?:\\w|[\\/\\-#])+)?\\s*$/,{token:\"string\",next:\"@codeblock\"}],[/^\\s*```\\s*((?:\\w|[\\/\\-#])+).*$/,{token:\"string\",next:\"@codeblockgh\",nextEmbedded:\"$1\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@codeblock\"}],{include:\"@linecontent\"}],table_header:[{include:\"@table_common\"},[/[^\\|]+/,\"keyword.table.header\"]],table_body:[{include:\"@table_common\"},{include:\"@linecontent\"}],table_common:[[/\\s*[\\-:]+\\s*/,{token:\"keyword\",switchTo:\"table_body\"}],[/^\\s*\\|/,\"keyword.table.left\"],[/^\\s*[^\\|]/,\"@rematch\",\"@pop\"],[/^\\s*$/,\"@rematch\",\"@pop\"],[/\\|/,{cases:{\"@eos\":\"keyword.table.right\",\"@default\":\"keyword.table.middle\"}}]],codeblock:[[/^\\s*~~~\\s*$/,{token:\"string\",next:\"@pop\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblockgh:[[/```\\s*$/,{token:\"variable.source\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^`]+/,\"variable.source\"]],linecontent:[[/&\\w+;/,\"string.escape\"],[/@escapes/,\"escape\"],[/\\b__([^\\\\_]|@escapes|_(?!_))+__\\b/,\"strong\"],[/\\*\\*([^\\\\*]|@escapes|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\b_[^_]+_\\b/,\"emphasis\"],[/\\*([^\\\\*]|@escapes)+\\*/,\"emphasis\"],[/`([^\\\\`]|@escapes)+`/,\"variable\"],[/\\{+[^}]+\\}+/,\"string.target\"],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\]\\([^\\)]+\\))/,[\"string.link\",\"\",\"string.link\"]],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\])/,\"string.link\"],{include:\"html\"}],html:[[/<(\\w+)\\/>/,\"tag\"],[/<(\\w+)/,{cases:{\"@empty\":{token:\"tag\",next:\"@tag.$1\"},\"@default\":{token:\"tag\",next:\"@tag.$1\"}}}],[/<\\/(\\w+)\\s*>/,{token:\"tag\"}],[/<!--/,\"comment\",\"@comment\"]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,\"comment\",\"@pop\"],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],tag:[[/[ \\t\\r\\n]+/,\"white\"],[/(type)(\\s*=\\s*)(\")([^\"]+)(\")/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(type)(\\s*=\\s*)(')([^']+)(')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(\\w+)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\"]],[/\\w+/,\"attribute.name.html\"],[/\\/>/,\"tag\",\"@pop\"],[/>/,{cases:{\"$S2==style\":{token:\"tag\",switchTo:\"embeddedStyle\",nextEmbedded:\"text/css\"},\"$S2==script\":{cases:{$S3:{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"$S3\"},\"@default\":{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"text/javascript\"}}},\"@default\":{token:\"tag\",next:\"@pop\"}}}]],embeddedStyle:[[/[^<]+/,\"\"],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]],embeddedScript:[[/[^<]+/,\"\"],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/mips/mips.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/mips/mips\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t.language={defaultToken:\"\",ignoreCase:!1,tokenPostfix:\".mips\",regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\".data\",\".text\",\"syscall\",\"trap\",\"add\",\"addu\",\"addi\",\"addiu\",\"and\",\"andi\",\"div\",\"divu\",\"mult\",\"multu\",\"nor\",\"or\",\"ori\",\"sll\",\"slv\",\"sra\",\"srav\",\"srl\",\"srlv\",\"sub\",\"subu\",\"xor\",\"xori\",\"lhi\",\"lho\",\"lhi\",\"llo\",\"slt\",\"slti\",\"sltu\",\"sltiu\",\"beq\",\"bgtz\",\"blez\",\"bne\",\"j\",\"jal\",\"jalr\",\"jr\",\"lb\",\"lbu\",\"lh\",\"lhu\",\"lw\",\"li\",\"la\",\"sb\",\"sh\",\"sw\",\"mfhi\",\"mflo\",\"mthi\",\"mtlo\",\"move\"],symbols:/[\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\$[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[.a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/msdax/msdax.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/msdax/msdax\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]}]},T.language={defaultToken:\"\",tokenPostfix:\".msdax\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"VAR\",\"RETURN\",\"NOT\",\"EVALUATE\",\"DATATABLE\",\"ORDER\",\"BY\",\"START\",\"AT\",\"DEFINE\",\"MEASURE\",\"ASC\",\"DESC\",\"IN\",\"BOOLEAN\",\"DOUBLE\",\"INTEGER\",\"DATETIME\",\"CURRENCY\",\"STRING\"],functions:[\"CLOSINGBALANCEMONTH\",\"CLOSINGBALANCEQUARTER\",\"CLOSINGBALANCEYEAR\",\"DATEADD\",\"DATESBETWEEN\",\"DATESINPERIOD\",\"DATESMTD\",\"DATESQTD\",\"DATESYTD\",\"ENDOFMONTH\",\"ENDOFQUARTER\",\"ENDOFYEAR\",\"FIRSTDATE\",\"FIRSTNONBLANK\",\"LASTDATE\",\"LASTNONBLANK\",\"NEXTDAY\",\"NEXTMONTH\",\"NEXTQUARTER\",\"NEXTYEAR\",\"OPENINGBALANCEMONTH\",\"OPENINGBALANCEQUARTER\",\"OPENINGBALANCEYEAR\",\"PARALLELPERIOD\",\"PREVIOUSDAY\",\"PREVIOUSMONTH\",\"PREVIOUSQUARTER\",\"PREVIOUSYEAR\",\"SAMEPERIODLASTYEAR\",\"STARTOFMONTH\",\"STARTOFQUARTER\",\"STARTOFYEAR\",\"TOTALMTD\",\"TOTALQTD\",\"TOTALYTD\",\"ADDCOLUMNS\",\"ADDMISSINGITEMS\",\"ALL\",\"ALLEXCEPT\",\"ALLNOBLANKROW\",\"ALLSELECTED\",\"CALCULATE\",\"CALCULATETABLE\",\"CALENDAR\",\"CALENDARAUTO\",\"CROSSFILTER\",\"CROSSJOIN\",\"CURRENTGROUP\",\"DATATABLE\",\"DETAILROWS\",\"DISTINCT\",\"EARLIER\",\"EARLIEST\",\"EXCEPT\",\"FILTER\",\"FILTERS\",\"GENERATE\",\"GENERATEALL\",\"GROUPBY\",\"IGNORE\",\"INTERSECT\",\"ISONORAFTER\",\"KEEPFILTERS\",\"LOOKUPVALUE\",\"NATURALINNERJOIN\",\"NATURALLEFTOUTERJOIN\",\"RELATED\",\"RELATEDTABLE\",\"ROLLUP\",\"ROLLUPADDISSUBTOTAL\",\"ROLLUPGROUP\",\"ROLLUPISSUBTOTAL\",\"ROW\",\"SAMPLE\",\"SELECTCOLUMNS\",\"SUBSTITUTEWITHINDEX\",\"SUMMARIZE\",\"SUMMARIZECOLUMNS\",\"TOPN\",\"TREATAS\",\"UNION\",\"USERELATIONSHIP\",\"VALUES\",\"SUM\",\"SUMX\",\"PATH\",\"PATHCONTAINS\",\"PATHITEM\",\"PATHITEMREVERSE\",\"PATHLENGTH\",\"AVERAGE\",\"AVERAGEA\",\"AVERAGEX\",\"COUNT\",\"COUNTA\",\"COUNTAX\",\"COUNTBLANK\",\"COUNTROWS\",\"COUNTX\",\"DISTINCTCOUNT\",\"DIVIDE\",\"GEOMEAN\",\"GEOMEANX\",\"MAX\",\"MAXA\",\"MAXX\",\"MEDIAN\",\"MEDIANX\",\"MIN\",\"MINA\",\"MINX\",\"PERCENTILE.EXC\",\"PERCENTILE.INC\",\"PERCENTILEX.EXC\",\"PERCENTILEX.INC\",\"PRODUCT\",\"PRODUCTX\",\"RANK.EQ\",\"RANKX\",\"STDEV.P\",\"STDEV.S\",\"STDEVX.P\",\"STDEVX.S\",\"VAR.P\",\"VAR.S\",\"VARX.P\",\"VARX.S\",\"XIRR\",\"XNPV\",\"DATE\",\"DATEDIFF\",\"DATEVALUE\",\"DAY\",\"EDATE\",\"EOMONTH\",\"HOUR\",\"MINUTE\",\"MONTH\",\"NOW\",\"SECOND\",\"TIME\",\"TIMEVALUE\",\"TODAY\",\"WEEKDAY\",\"WEEKNUM\",\"YEAR\",\"YEARFRAC\",\"CONTAINS\",\"CONTAINSROW\",\"CUSTOMDATA\",\"ERROR\",\"HASONEFILTER\",\"HASONEVALUE\",\"ISBLANK\",\"ISCROSSFILTERED\",\"ISEMPTY\",\"ISERROR\",\"ISEVEN\",\"ISFILTERED\",\"ISLOGICAL\",\"ISNONTEXT\",\"ISNUMBER\",\"ISODD\",\"ISSUBTOTAL\",\"ISTEXT\",\"USERNAME\",\"USERPRINCIPALNAME\",\"AND\",\"FALSE\",\"IF\",\"IFERROR\",\"NOT\",\"OR\",\"SWITCH\",\"TRUE\",\"ABS\",\"ACOS\",\"ACOSH\",\"ACOT\",\"ACOTH\",\"ASIN\",\"ASINH\",\"ATAN\",\"ATANH\",\"BETA.DIST\",\"BETA.INV\",\"CEILING\",\"CHISQ.DIST\",\"CHISQ.DIST.RT\",\"CHISQ.INV\",\"CHISQ.INV.RT\",\"COMBIN\",\"COMBINA\",\"CONFIDENCE.NORM\",\"CONFIDENCE.T\",\"COS\",\"COSH\",\"COT\",\"COTH\",\"CURRENCY\",\"DEGREES\",\"EVEN\",\"EXP\",\"EXPON.DIST\",\"FACT\",\"FLOOR\",\"GCD\",\"INT\",\"ISO.CEILING\",\"LCM\",\"LN\",\"LOG\",\"LOG10\",\"MOD\",\"MROUND\",\"ODD\",\"PERMUT\",\"PI\",\"POISSON.DIST\",\"POWER\",\"QUOTIENT\",\"RADIANS\",\"RAND\",\"RANDBETWEEN\",\"ROUND\",\"ROUNDDOWN\",\"ROUNDUP\",\"SIGN\",\"SIN\",\"SINH\",\"SQRT\",\"SQRTPI\",\"TAN\",\"TANH\",\"TRUNC\",\"BLANK\",\"CONCATENATE\",\"CONCATENATEX\",\"EXACT\",\"FIND\",\"FIXED\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"MID\",\"REPLACE\",\"REPT\",\"RIGHT\",\"SEARCH\",\"SUBSTITUTE\",\"TRIM\",\"UNICHAR\",\"UNICODE\",\"UPPER\",\"VALUE\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},[/[;,.]/,\"delimiter\"],[/[({})]/,\"@brackets\"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{\"@keywords\":\"keyword\",\"@functions\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/\\/\\/+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N\"/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string\",next:\"@string\"}]],string:[[/[^\"]+/,\"string\"],[/\"\"/,\"string\"],[/\"/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/'/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^']+/,\"identifier\"],[/''/,\"identifier\"],[/'/,{token:\"identifier.quote\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/mysql/mysql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/mysql/mysql\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ACCESSIBLE\",\"ACCOUNT\",\"ACTION\",\"ADD\",\"AFTER\",\"AGAINST\",\"AGGREGATE\",\"ALGORITHM\",\"ALL\",\"ALTER\",\"ALWAYS\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"AS\",\"ASC\",\"ASCII\",\"ASENSITIVE\",\"AT\",\"AUTOEXTEND_SIZE\",\"AUTO_INCREMENT\",\"AVG\",\"AVG_ROW_LENGTH\",\"BACKUP\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BIGINT\",\"BINARY\",\"BINLOG\",\"BIT\",\"BLOB\",\"BLOCK\",\"BOOL\",\"BOOLEAN\",\"BOTH\",\"BTREE\",\"BY\",\"BYTE\",\"CACHE\",\"CALL\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CATALOG_NAME\",\"CHAIN\",\"CHANGE\",\"CHANGED\",\"CHANNEL\",\"CHAR\",\"CHARACTER\",\"CHARSET\",\"CHECK\",\"CHECKSUM\",\"CIPHER\",\"CLASS_ORIGIN\",\"CLIENT\",\"CLOSE\",\"COALESCE\",\"CODE\",\"COLLATE\",\"COLLATION\",\"COLUMN\",\"COLUMNS\",\"COLUMN_FORMAT\",\"COLUMN_NAME\",\"COMMENT\",\"COMMIT\",\"COMMITTED\",\"COMPACT\",\"COMPLETION\",\"COMPRESSED\",\"COMPRESSION\",\"CONCURRENT\",\"CONDITION\",\"CONNECTION\",\"CONSISTENT\",\"CONSTRAINT\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONTAINS\",\"CONTEXT\",\"CONTINUE\",\"CONVERT\",\"CPU\",\"CREATE\",\"CROSS\",\"CUBE\",\"CURRENT\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURSOR\",\"CURSOR_NAME\",\"DATA\",\"DATABASE\",\"DATABASES\",\"DATAFILE\",\"DATE\",\"DATETIME\",\"DAY\",\"DAY_HOUR\",\"DAY_MICROSECOND\",\"DAY_MINUTE\",\"DAY_SECOND\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFAULT_AUTH\",\"DEFINER\",\"DELAYED\",\"DELAY_KEY_WRITE\",\"DELETE\",\"DESC\",\"DESCRIBE\",\"DES_KEY_FILE\",\"DETERMINISTIC\",\"DIAGNOSTICS\",\"DIRECTORY\",\"DISABLE\",\"DISCARD\",\"DISK\",\"DISTINCT\",\"DISTINCTROW\",\"DIV\",\"DO\",\"DOUBLE\",\"DROP\",\"DUAL\",\"DUMPFILE\",\"DUPLICATE\",\"DYNAMIC\",\"EACH\",\"ELSE\",\"ELSEIF\",\"ENABLE\",\"ENCLOSED\",\"ENCRYPTION\",\"END\",\"ENDS\",\"ENGINE\",\"ENGINES\",\"ENUM\",\"ERROR\",\"ERRORS\",\"ESCAPE\",\"ESCAPED\",\"EVENT\",\"EVENTS\",\"EVERY\",\"EXCHANGE\",\"EXECUTE\",\"EXISTS\",\"EXIT\",\"EXPANSION\",\"EXPIRE\",\"EXPLAIN\",\"EXPORT\",\"EXTENDED\",\"EXTENT_SIZE\",\"FALSE\",\"FAST\",\"FAULTS\",\"FETCH\",\"FIELDS\",\"FILE\",\"FILE_BLOCK_SIZE\",\"FILTER\",\"FIRST\",\"FIXED\",\"FLOAT\",\"FLOAT4\",\"FLOAT8\",\"FLUSH\",\"FOLLOWS\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FORMAT\",\"FOUND\",\"FROM\",\"FULL\",\"FULLTEXT\",\"FUNCTION\",\"GENERAL\",\"GENERATED\",\"GEOMETRY\",\"GEOMETRYCOLLECTION\",\"GET\",\"GET_FORMAT\",\"GLOBAL\",\"GRANT\",\"GRANTS\",\"GROUP\",\"GROUP_REPLICATION\",\"HANDLER\",\"HASH\",\"HAVING\",\"HELP\",\"HIGH_PRIORITY\",\"HOST\",\"HOSTS\",\"HOUR\",\"HOUR_MICROSECOND\",\"HOUR_MINUTE\",\"HOUR_SECOND\",\"IDENTIFIED\",\"IF\",\"IGNORE\",\"IGNORE_SERVER_IDS\",\"IMPORT\",\"INDEX\",\"INDEXES\",\"INFILE\",\"INITIAL_SIZE\",\"INNER\",\"INOUT\",\"INSENSITIVE\",\"INSERT\",\"INSERT_METHOD\",\"INSTALL\",\"INSTANCE\",\"INT\",\"INT1\",\"INT2\",\"INT3\",\"INT4\",\"INT8\",\"INTEGER\",\"INTERVAL\",\"INTO\",\"INVOKER\",\"IO\",\"IO_AFTER_GTIDS\",\"IO_BEFORE_GTIDS\",\"IO_THREAD\",\"IPC\",\"ISOLATION\",\"ISSUER\",\"ITERATE\",\"JOIN\",\"JSON\",\"KEY\",\"KEYS\",\"KEY_BLOCK_SIZE\",\"KILL\",\"LANGUAGE\",\"LAST\",\"LEADING\",\"LEAVE\",\"LEAVES\",\"LEFT\",\"LESS\",\"LEVEL\",\"LIKE\",\"LIMIT\",\"LINEAR\",\"LINES\",\"LINESTRING\",\"LIST\",\"LOAD\",\"LOCAL\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCK\",\"LOCKS\",\"LOGFILE\",\"LOGS\",\"LONG\",\"LONGBLOB\",\"LONGTEXT\",\"LOOP\",\"LOW_PRIORITY\",\"MASTER\",\"MASTER_AUTO_POSITION\",\"MASTER_BIND\",\"MASTER_CONNECT_RETRY\",\"MASTER_DELAY\",\"MASTER_HEARTBEAT_PERIOD\",\"MASTER_HOST\",\"MASTER_LOG_FILE\",\"MASTER_LOG_POS\",\"MASTER_PASSWORD\",\"MASTER_PORT\",\"MASTER_RETRY_COUNT\",\"MASTER_SERVER_ID\",\"MASTER_SSL\",\"MASTER_SSL_CA\",\"MASTER_SSL_CAPATH\",\"MASTER_SSL_CERT\",\"MASTER_SSL_CIPHER\",\"MASTER_SSL_CRL\",\"MASTER_SSL_CRLPATH\",\"MASTER_SSL_KEY\",\"MASTER_SSL_VERIFY_SERVER_CERT\",\"MASTER_TLS_VERSION\",\"MASTER_USER\",\"MATCH\",\"MAXVALUE\",\"MAX_CONNECTIONS_PER_HOUR\",\"MAX_QUERIES_PER_HOUR\",\"MAX_ROWS\",\"MAX_SIZE\",\"MAX_STATEMENT_TIME\",\"MAX_UPDATES_PER_HOUR\",\"MAX_USER_CONNECTIONS\",\"MEDIUM\",\"MEDIUMBLOB\",\"MEDIUMINT\",\"MEDIUMTEXT\",\"MEMORY\",\"MERGE\",\"MESSAGE_TEXT\",\"MICROSECOND\",\"MIDDLEINT\",\"MIGRATE\",\"MINUTE\",\"MINUTE_MICROSECOND\",\"MINUTE_SECOND\",\"MIN_ROWS\",\"MOD\",\"MODE\",\"MODIFIES\",\"MODIFY\",\"MONTH\",\"MULTILINESTRING\",\"MULTIPOINT\",\"MULTIPOLYGON\",\"MUTEX\",\"MYSQL_ERRNO\",\"NAME\",\"NAMES\",\"NATIONAL\",\"NATURAL\",\"NCHAR\",\"NDB\",\"NDBCLUSTER\",\"NEVER\",\"NEW\",\"NEXT\",\"NO\",\"NODEGROUP\",\"NONBLOCKING\",\"NONE\",\"NO_WAIT\",\"NO_WRITE_TO_BINLOG\",\"NUMBER\",\"NUMERIC\",\"NVARCHAR\",\"OFFSET\",\"OLD_PASSWORD\",\"ON\",\"ONE\",\"ONLY\",\"OPEN\",\"OPTIMIZE\",\"OPTIMIZER_COSTS\",\"OPTION\",\"OPTIONALLY\",\"OPTIONS\",\"OR\",\"ORDER\",\"OUT\",\"OUTER\",\"OUTFILE\",\"OWNER\",\"PACK_KEYS\",\"PAGE\",\"PARSER\",\"PARSE_GCOL_EXPR\",\"PARTIAL\",\"PARTITION\",\"PARTITIONING\",\"PARTITIONS\",\"PASSWORD\",\"PHASE\",\"PLUGIN\",\"PLUGINS\",\"PLUGIN_DIR\",\"POINT\",\"POLYGON\",\"PORT\",\"PRECEDES\",\"PRECISION\",\"PREPARE\",\"PRESERVE\",\"PREV\",\"PRIMARY\",\"PRIVILEGES\",\"PROCEDURE\",\"PROCESSLIST\",\"PROFILE\",\"PROFILES\",\"PROXY\",\"PURGE\",\"QUARTER\",\"QUERY\",\"QUICK\",\"RANGE\",\"READ\",\"READS\",\"READ_ONLY\",\"READ_WRITE\",\"REAL\",\"REBUILD\",\"RECOVER\",\"REDOFILE\",\"REDO_BUFFER_SIZE\",\"REDUNDANT\",\"REFERENCES\",\"REGEXP\",\"RELAY\",\"RELAYLOG\",\"RELAY_LOG_FILE\",\"RELAY_LOG_POS\",\"RELAY_THREAD\",\"RELEASE\",\"RELOAD\",\"REMOVE\",\"RENAME\",\"REORGANIZE\",\"REPAIR\",\"REPEAT\",\"REPEATABLE\",\"REPLACE\",\"REPLICATE_DO_DB\",\"REPLICATE_DO_TABLE\",\"REPLICATE_IGNORE_DB\",\"REPLICATE_IGNORE_TABLE\",\"REPLICATE_REWRITE_DB\",\"REPLICATE_WILD_DO_TABLE\",\"REPLICATE_WILD_IGNORE_TABLE\",\"REPLICATION\",\"REQUIRE\",\"RESET\",\"RESIGNAL\",\"RESTORE\",\"RESTRICT\",\"RESUME\",\"RETURN\",\"RETURNED_SQLSTATE\",\"RETURNS\",\"REVERSE\",\"REVOKE\",\"RIGHT\",\"RLIKE\",\"ROLLBACK\",\"ROLLUP\",\"ROTATE\",\"ROUTINE\",\"ROW\",\"ROWS\",\"ROW_COUNT\",\"ROW_FORMAT\",\"RTREE\",\"SAVEPOINT\",\"SCHEDULE\",\"SCHEMA\",\"SCHEMAS\",\"SCHEMA_NAME\",\"SECOND\",\"SECOND_MICROSECOND\",\"SECURITY\",\"SELECT\",\"SENSITIVE\",\"SEPARATOR\",\"SERIAL\",\"SERIALIZABLE\",\"SERVER\",\"SESSION\",\"SET\",\"SHARE\",\"SHOW\",\"SHUTDOWN\",\"SIGNAL\",\"SIGNED\",\"SIMPLE\",\"SLAVE\",\"SLOW\",\"SMALLINT\",\"SNAPSHOT\",\"SOCKET\",\"SOME\",\"SONAME\",\"SOUNDS\",\"SOURCE\",\"SPATIAL\",\"SPECIFIC\",\"SQL\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"SQL_AFTER_GTIDS\",\"SQL_AFTER_MTS_GAPS\",\"SQL_BEFORE_GTIDS\",\"SQL_BIG_RESULT\",\"SQL_BUFFER_RESULT\",\"SQL_CACHE\",\"SQL_CALC_FOUND_ROWS\",\"SQL_NO_CACHE\",\"SQL_SMALL_RESULT\",\"SQL_THREAD\",\"SQL_TSI_DAY\",\"SQL_TSI_HOUR\",\"SQL_TSI_MINUTE\",\"SQL_TSI_MONTH\",\"SQL_TSI_QUARTER\",\"SQL_TSI_SECOND\",\"SQL_TSI_WEEK\",\"SQL_TSI_YEAR\",\"SSL\",\"STACKED\",\"START\",\"STARTING\",\"STARTS\",\"STATS_AUTO_RECALC\",\"STATS_PERSISTENT\",\"STATS_SAMPLE_PAGES\",\"STATUS\",\"STOP\",\"STORAGE\",\"STORED\",\"STRAIGHT_JOIN\",\"STRING\",\"SUBCLASS_ORIGIN\",\"SUBJECT\",\"SUBPARTITION\",\"SUBPARTITIONS\",\"SUPER\",\"SUSPEND\",\"SWAPS\",\"SWITCHES\",\"TABLE\",\"TABLES\",\"TABLESPACE\",\"TABLE_CHECKSUM\",\"TABLE_NAME\",\"TEMPORARY\",\"TEMPTABLE\",\"TERMINATED\",\"TEXT\",\"THAN\",\"THEN\",\"TIME\",\"TIMESTAMP\",\"TIMESTAMPADD\",\"TIMESTAMPDIFF\",\"TINYBLOB\",\"TINYINT\",\"TINYTEXT\",\"TO\",\"TRAILING\",\"TRANSACTION\",\"TRIGGER\",\"TRIGGERS\",\"TRUE\",\"TRUNCATE\",\"TYPE\",\"TYPES\",\"UNCOMMITTED\",\"UNDEFINED\",\"UNDO\",\"UNDOFILE\",\"UNDO_BUFFER_SIZE\",\"UNICODE\",\"UNINSTALL\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNLOCK\",\"UNSIGNED\",\"UNTIL\",\"UPDATE\",\"UPGRADE\",\"USAGE\",\"USE\",\"USER\",\"USER_RESOURCES\",\"USE_FRM\",\"USING\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"VALIDATION\",\"VALUE\",\"VALUES\",\"VARBINARY\",\"VARCHAR\",\"VARCHARACTER\",\"VARIABLES\",\"VARYING\",\"VIEW\",\"VIRTUAL\",\"WAIT\",\"WARNINGS\",\"WEEK\",\"WEIGHT_STRING\",\"WHEN\",\"WHERE\",\"WHILE\",\"WITH\",\"WITHOUT\",\"WORK\",\"WRAPPER\",\"WRITE\",\"X509\",\"XA\",\"XID\",\"XML\",\"XOR\",\"YEAR\",\"YEAR_MONTH\",\"ZEROFILL\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"ABS\",\"ACOS\",\"ADDDATE\",\"ADDTIME\",\"AES_DECRYPT\",\"AES_ENCRYPT\",\"ANY_VALUE\",\"Area\",\"AsBinary\",\"AsWKB\",\"ASCII\",\"ASIN\",\"AsText\",\"AsWKT\",\"ASYMMETRIC_DECRYPT\",\"ASYMMETRIC_DERIVE\",\"ASYMMETRIC_ENCRYPT\",\"ASYMMETRIC_SIGN\",\"ASYMMETRIC_VERIFY\",\"ATAN\",\"ATAN2\",\"ATAN\",\"AVG\",\"BENCHMARK\",\"BIN\",\"BIT_AND\",\"BIT_COUNT\",\"BIT_LENGTH\",\"BIT_OR\",\"BIT_XOR\",\"Buffer\",\"CAST\",\"CEIL\",\"CEILING\",\"Centroid\",\"CHAR\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CHARSET\",\"COALESCE\",\"COERCIBILITY\",\"COLLATION\",\"COMPRESS\",\"CONCAT\",\"CONCAT_WS\",\"CONNECTION_ID\",\"Contains\",\"CONV\",\"CONVERT\",\"CONVERT_TZ\",\"ConvexHull\",\"COS\",\"COT\",\"COUNT\",\"CRC32\",\"CREATE_ASYMMETRIC_PRIV_KEY\",\"CREATE_ASYMMETRIC_PUB_KEY\",\"CREATE_DH_PARAMETERS\",\"CREATE_DIGEST\",\"Crosses\",\"CURDATE\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURTIME\",\"DATABASE\",\"DATE\",\"DATE_ADD\",\"DATE_FORMAT\",\"DATE_SUB\",\"DATEDIFF\",\"DAY\",\"DAYNAME\",\"DAYOFMONTH\",\"DAYOFWEEK\",\"DAYOFYEAR\",\"DECODE\",\"DEFAULT\",\"DEGREES\",\"DES_DECRYPT\",\"DES_ENCRYPT\",\"Dimension\",\"Disjoint\",\"Distance\",\"ELT\",\"ENCODE\",\"ENCRYPT\",\"EndPoint\",\"Envelope\",\"Equals\",\"EXP\",\"EXPORT_SET\",\"ExteriorRing\",\"EXTRACT\",\"ExtractValue\",\"FIELD\",\"FIND_IN_SET\",\"FLOOR\",\"FORMAT\",\"FOUND_ROWS\",\"FROM_BASE64\",\"FROM_DAYS\",\"FROM_UNIXTIME\",\"GeomCollFromText\",\"GeometryCollectionFromText\",\"GeomCollFromWKB\",\"GeometryCollectionFromWKB\",\"GeometryCollection\",\"GeometryN\",\"GeometryType\",\"GeomFromText\",\"GeometryFromText\",\"GeomFromWKB\",\"GeometryFromWKB\",\"GET_FORMAT\",\"GET_LOCK\",\"GLength\",\"GREATEST\",\"GROUP_CONCAT\",\"GTID_SUBSET\",\"GTID_SUBTRACT\",\"HEX\",\"HOUR\",\"IF\",\"IFNULL\",\"INET_ATON\",\"INET_NTOA\",\"INET6_ATON\",\"INET6_NTOA\",\"INSERT\",\"INSTR\",\"InteriorRingN\",\"Intersects\",\"INTERVAL\",\"IS_FREE_LOCK\",\"IS_IPV4\",\"IS_IPV4_COMPAT\",\"IS_IPV4_MAPPED\",\"IS_IPV6\",\"IS_USED_LOCK\",\"IsClosed\",\"IsEmpty\",\"ISNULL\",\"IsSimple\",\"JSON_APPEND\",\"JSON_ARRAY\",\"JSON_ARRAY_APPEND\",\"JSON_ARRAY_INSERT\",\"JSON_CONTAINS\",\"JSON_CONTAINS_PATH\",\"JSON_DEPTH\",\"JSON_EXTRACT\",\"JSON_INSERT\",\"JSON_KEYS\",\"JSON_LENGTH\",\"JSON_MERGE\",\"JSON_MERGE_PRESERVE\",\"JSON_OBJECT\",\"JSON_QUOTE\",\"JSON_REMOVE\",\"JSON_REPLACE\",\"JSON_SEARCH\",\"JSON_SET\",\"JSON_TYPE\",\"JSON_UNQUOTE\",\"JSON_VALID\",\"LAST_INSERT_ID\",\"LCASE\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LineFromText\",\"LineStringFromText\",\"LineFromWKB\",\"LineStringFromWKB\",\"LineString\",\"LN\",\"LOAD_FILE\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATE\",\"LOG\",\"LOG10\",\"LOG2\",\"LOWER\",\"LPAD\",\"LTRIM\",\"MAKE_SET\",\"MAKEDATE\",\"MAKETIME\",\"MASTER_POS_WAIT\",\"MAX\",\"MBRContains\",\"MBRCoveredBy\",\"MBRCovers\",\"MBRDisjoint\",\"MBREqual\",\"MBREquals\",\"MBRIntersects\",\"MBROverlaps\",\"MBRTouches\",\"MBRWithin\",\"MD5\",\"MICROSECOND\",\"MID\",\"MIN\",\"MINUTE\",\"MLineFromText\",\"MultiLineStringFromText\",\"MLineFromWKB\",\"MultiLineStringFromWKB\",\"MOD\",\"MONTH\",\"MONTHNAME\",\"MPointFromText\",\"MultiPointFromText\",\"MPointFromWKB\",\"MultiPointFromWKB\",\"MPolyFromText\",\"MultiPolygonFromText\",\"MPolyFromWKB\",\"MultiPolygonFromWKB\",\"MultiLineString\",\"MultiPoint\",\"MultiPolygon\",\"NAME_CONST\",\"NOT IN\",\"NOW\",\"NULLIF\",\"NumGeometries\",\"NumInteriorRings\",\"NumPoints\",\"OCT\",\"OCTET_LENGTH\",\"OLD_PASSWORD\",\"ORD\",\"Overlaps\",\"PASSWORD\",\"PERIOD_ADD\",\"PERIOD_DIFF\",\"PI\",\"Point\",\"PointFromText\",\"PointFromWKB\",\"PointN\",\"PolyFromText\",\"PolygonFromText\",\"PolyFromWKB\",\"PolygonFromWKB\",\"Polygon\",\"POSITION\",\"POW\",\"POWER\",\"PROCEDURE ANALYSE\",\"QUARTER\",\"QUOTE\",\"RADIANS\",\"RAND\",\"RANDOM_BYTES\",\"RELEASE_ALL_LOCKS\",\"RELEASE_LOCK\",\"REPEAT\",\"REPLACE\",\"REVERSE\",\"RIGHT\",\"ROUND\",\"ROW_COUNT\",\"RPAD\",\"RTRIM\",\"SCHEMA\",\"SEC_TO_TIME\",\"SECOND\",\"SESSION_USER\",\"SHA1\",\"SHA\",\"SHA2\",\"SIGN\",\"SIN\",\"SLEEP\",\"SOUNDEX\",\"SPACE\",\"SQRT\",\"SRID\",\"ST_Area\",\"ST_AsBinary\",\"ST_AsWKB\",\"ST_AsGeoJSON\",\"ST_AsText\",\"ST_AsWKT\",\"ST_Buffer\",\"ST_Buffer_Strategy\",\"ST_Centroid\",\"ST_Contains\",\"ST_ConvexHull\",\"ST_Crosses\",\"ST_Difference\",\"ST_Dimension\",\"ST_Disjoint\",\"ST_Distance\",\"ST_Distance_Sphere\",\"ST_EndPoint\",\"ST_Envelope\",\"ST_Equals\",\"ST_ExteriorRing\",\"ST_GeoHash\",\"ST_GeomCollFromText\",\"ST_GeometryCollectionFromText\",\"ST_GeomCollFromTxt\",\"ST_GeomCollFromWKB\",\"ST_GeometryCollectionFromWKB\",\"ST_GeometryN\",\"ST_GeometryType\",\"ST_GeomFromGeoJSON\",\"ST_GeomFromText\",\"ST_GeometryFromText\",\"ST_GeomFromWKB\",\"ST_GeometryFromWKB\",\"ST_InteriorRingN\",\"ST_Intersection\",\"ST_Intersects\",\"ST_IsClosed\",\"ST_IsEmpty\",\"ST_IsSimple\",\"ST_IsValid\",\"ST_LatFromGeoHash\",\"ST_Length\",\"ST_LineFromText\",\"ST_LineStringFromText\",\"ST_LineFromWKB\",\"ST_LineStringFromWKB\",\"ST_LongFromGeoHash\",\"ST_MakeEnvelope\",\"ST_MLineFromText\",\"ST_MultiLineStringFromText\",\"ST_MLineFromWKB\",\"ST_MultiLineStringFromWKB\",\"ST_MPointFromText\",\"ST_MultiPointFromText\",\"ST_MPointFromWKB\",\"ST_MultiPointFromWKB\",\"ST_MPolyFromText\",\"ST_MultiPolygonFromText\",\"ST_MPolyFromWKB\",\"ST_MultiPolygonFromWKB\",\"ST_NumGeometries\",\"ST_NumInteriorRing\",\"ST_NumInteriorRings\",\"ST_NumPoints\",\"ST_Overlaps\",\"ST_PointFromGeoHash\",\"ST_PointFromText\",\"ST_PointFromWKB\",\"ST_PointN\",\"ST_PolyFromText\",\"ST_PolygonFromText\",\"ST_PolyFromWKB\",\"ST_PolygonFromWKB\",\"ST_Simplify\",\"ST_SRID\",\"ST_StartPoint\",\"ST_SymDifference\",\"ST_Touches\",\"ST_Union\",\"ST_Validate\",\"ST_Within\",\"ST_X\",\"ST_Y\",\"StartPoint\",\"STD\",\"STDDEV\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"STR_TO_DATE\",\"STRCMP\",\"SUBDATE\",\"SUBSTR\",\"SUBSTRING\",\"SUBSTRING_INDEX\",\"SUBTIME\",\"SUM\",\"SYSDATE\",\"SYSTEM_USER\",\"TAN\",\"TIME\",\"TIME_FORMAT\",\"TIME_TO_SEC\",\"TIMEDIFF\",\"TIMESTAMP\",\"TIMESTAMPADD\",\"TIMESTAMPDIFF\",\"TO_BASE64\",\"TO_DAYS\",\"TO_SECONDS\",\"Touches\",\"TRIM\",\"TRUNCATE\",\"UCASE\",\"UNCOMPRESS\",\"UNCOMPRESSED_LENGTH\",\"UNHEX\",\"UNIX_TIMESTAMP\",\"UpdateXML\",\"UPPER\",\"USER\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"UUID\",\"UUID_SHORT\",\"VALIDATE_PASSWORD_STRENGTH\",\"VALUES\",\"VAR_POP\",\"VAR_SAMP\",\"VARIANCE\",\"VERSION\",\"WAIT_FOR_EXECUTED_GTID_SET\",\"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS\",\"WEEK\",\"WEEKDAY\",\"WEEKOFYEAR\",\"WEIGHT_STRING\",\"Within\",\"X\",\"Y\",\"YEAR\",\"YEARWEEK\"],builtinVariables:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/#+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],complexIdentifiers:[[/`/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^`]+/,\"identifier\"],[/``/,\"identifier\"],[/`/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/objective-c/objective-c.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/objective-c/objective-c\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n.language={defaultToken:\"\",tokenPostfix:\".objective-c\",keywords:[\"#import\",\"#include\",\"#define\",\"#else\",\"#endif\",\"#if\",\"#ifdef\",\"#ifndef\",\"#ident\",\"#undef\",\"@class\",\"@defs\",\"@dynamic\",\"@encode\",\"@end\",\"@implementation\",\"@interface\",\"@package\",\"@private\",\"@protected\",\"@property\",\"@protocol\",\"@public\",\"@selector\",\"@synthesize\",\"__declspec\",\"assign\",\"auto\",\"BOOL\",\"break\",\"bycopy\",\"byref\",\"case\",\"char\",\"Class\",\"const\",\"copy\",\"continue\",\"default\",\"do\",\"double\",\"else\",\"enum\",\"extern\",\"FALSE\",\"false\",\"float\",\"for\",\"goto\",\"if\",\"in\",\"int\",\"id\",\"inout\",\"IMP\",\"long\",\"nil\",\"nonatomic\",\"NULL\",\"oneway\",\"out\",\"private\",\"public\",\"protected\",\"readwrite\",\"readonly\",\"register\",\"return\",\"SEL\",\"self\",\"short\",\"signed\",\"sizeof\",\"static\",\"struct\",\"super\",\"switch\",\"typedef\",\"TRUE\",\"true\",\"union\",\"unsigned\",\"volatile\",\"void\",\"while\"],decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()<>]/,\"@brackets\"],[/[a-zA-Z@#]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,]|and\\\\b|or\\\\b|not\\\\b]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,\"number.hex\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)[fF]*/,{cases:{\"(\\\\d)*\":\"number\",$0:\"number.float\"}}]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/pascal/pascal.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pascal/pascal\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"{\",\"}\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\{\\\\$REGION(\\\\s\\\\'.*\\\\')?\\\\}\"),end:new RegExp(\"^\\\\s*\\\\{\\\\$ENDREGION\\\\}\")}}},t.language={defaultToken:\"\",tokenPostfix:\".pascal\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"absolute\",\"abstract\",\"all\",\"and_then\",\"array\",\"as\",\"asm\",\"attribute\",\"begin\",\"bindable\",\"case\",\"class\",\"const\",\"contains\",\"default\",\"div\",\"else\",\"end\",\"except\",\"exports\",\"external\",\"far\",\"file\",\"finalization\",\"finally\",\"forward\",\"generic\",\"goto\",\"if\",\"implements\",\"import\",\"in\",\"index\",\"inherited\",\"initialization\",\"interrupt\",\"is\",\"label\",\"library\",\"mod\",\"module\",\"name\",\"near\",\"not\",\"object\",\"of\",\"on\",\"only\",\"operator\",\"or_else\",\"otherwise\",\"override\",\"package\",\"packed\",\"pow\",\"private\",\"program\",\"protected\",\"public\",\"published\",\"interface\",\"implementation\",\"qualified\",\"read\",\"record\",\"resident\",\"requires\",\"resourcestring\",\"restricted\",\"segment\",\"set\",\"shl\",\"shr\",\"specialize\",\"stored\",\"then\",\"threadvar\",\"to\",\"try\",\"type\",\"unit\",\"uses\",\"var\",\"view\",\"virtual\",\"dynamic\",\"overload\",\"reintroduce\",\"with\",\"write\",\"xor\",\"true\",\"false\",\"procedure\",\"function\",\"constructor\",\"destructor\",\"property\",\"break\",\"continue\",\"exit\",\"abort\",\"while\",\"do\",\"for\",\"raise\",\"repeat\",\"until\"],typeKeywords:[\"boolean\",\"double\",\"byte\",\"integer\",\"shortint\",\"char\",\"longint\",\"float\",\"string\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\*\\}]+/,\"comment\"],[/\\}/,\"comment\",\"@pop\"],[/[\\{]/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\{/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/pascaligo/pascaligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pascaligo/pascaligo\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}]},o.language={defaultToken:\"\",tokenPostfix:\".pascaligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"begin\",\"block\",\"case\",\"const\",\"else\",\"end\",\"fail\",\"for\",\"from\",\"function\",\"if\",\"is\",\"nil\",\"of\",\"remove\",\"return\",\"skip\",\"then\",\"type\",\"var\",\"while\",\"with\",\"option\",\"None\",\"transaction\"],typeKeywords:[\"bool\",\"int\",\"list\",\"map\",\"nat\",\"record\",\"string\",\"unit\",\"address\",\"map\",\"mtz\",\"xtz\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/perl/perl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/perl/perl\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},t.language={defaultToken:\"\",tokenPostfix:\".perl\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"__DATA__\",\"else\",\"lock\",\"__END__\",\"elsif\",\"lt\",\"__FILE__\",\"eq\",\"__LINE__\",\"exp\",\"ne\",\"sub\",\"__PACKAGE__\",\"for\",\"no\",\"and\",\"foreach\",\"or\",\"unless\",\"cmp\",\"ge\",\"package\",\"until\",\"continue\",\"gt\",\"while\",\"CORE\",\"if\",\"xor\",\"do\",\"le\",\"__DIE__\",\"__WARN__\"],builtinFunctions:[\"-A\",\"END\",\"length\",\"setpgrp\",\"-B\",\"endgrent\",\"link\",\"setpriority\",\"-b\",\"endhostent\",\"listen\",\"setprotoent\",\"-C\",\"endnetent\",\"local\",\"setpwent\",\"-c\",\"endprotoent\",\"localtime\",\"setservent\",\"-d\",\"endpwent\",\"log\",\"setsockopt\",\"-e\",\"endservent\",\"lstat\",\"shift\",\"-f\",\"eof\",\"map\",\"shmctl\",\"-g\",\"eval\",\"mkdir\",\"shmget\",\"-k\",\"exec\",\"msgctl\",\"shmread\",\"-l\",\"exists\",\"msgget\",\"shmwrite\",\"-M\",\"exit\",\"msgrcv\",\"shutdown\",\"-O\",\"fcntl\",\"msgsnd\",\"sin\",\"-o\",\"fileno\",\"my\",\"sleep\",\"-p\",\"flock\",\"next\",\"socket\",\"-r\",\"fork\",\"not\",\"socketpair\",\"-R\",\"format\",\"oct\",\"sort\",\"-S\",\"formline\",\"open\",\"splice\",\"-s\",\"getc\",\"opendir\",\"split\",\"-T\",\"getgrent\",\"ord\",\"sprintf\",\"-t\",\"getgrgid\",\"our\",\"sqrt\",\"-u\",\"getgrnam\",\"pack\",\"srand\",\"-w\",\"gethostbyaddr\",\"pipe\",\"stat\",\"-W\",\"gethostbyname\",\"pop\",\"state\",\"-X\",\"gethostent\",\"pos\",\"study\",\"-x\",\"getlogin\",\"print\",\"substr\",\"-z\",\"getnetbyaddr\",\"printf\",\"symlink\",\"abs\",\"getnetbyname\",\"prototype\",\"syscall\",\"accept\",\"getnetent\",\"push\",\"sysopen\",\"alarm\",\"getpeername\",\"quotemeta\",\"sysread\",\"atan2\",\"getpgrp\",\"rand\",\"sysseek\",\"AUTOLOAD\",\"getppid\",\"read\",\"system\",\"BEGIN\",\"getpriority\",\"readdir\",\"syswrite\",\"bind\",\"getprotobyname\",\"readline\",\"tell\",\"binmode\",\"getprotobynumber\",\"readlink\",\"telldir\",\"bless\",\"getprotoent\",\"readpipe\",\"tie\",\"break\",\"getpwent\",\"recv\",\"tied\",\"caller\",\"getpwnam\",\"redo\",\"time\",\"chdir\",\"getpwuid\",\"ref\",\"times\",\"CHECK\",\"getservbyname\",\"rename\",\"truncate\",\"chmod\",\"getservbyport\",\"require\",\"uc\",\"chomp\",\"getservent\",\"reset\",\"ucfirst\",\"chop\",\"getsockname\",\"return\",\"umask\",\"chown\",\"getsockopt\",\"reverse\",\"undef\",\"chr\",\"glob\",\"rewinddir\",\"UNITCHECK\",\"chroot\",\"gmtime\",\"rindex\",\"unlink\",\"close\",\"goto\",\"rmdir\",\"unpack\",\"closedir\",\"grep\",\"say\",\"unshift\",\"connect\",\"hex\",\"scalar\",\"untie\",\"cos\",\"index\",\"seek\",\"use\",\"crypt\",\"INIT\",\"seekdir\",\"utime\",\"dbmclose\",\"int\",\"select\",\"values\",\"dbmopen\",\"ioctl\",\"semctl\",\"vec\",\"defined\",\"join\",\"semget\",\"wait\",\"delete\",\"keys\",\"semop\",\"waitpid\",\"DESTROY\",\"kill\",\"send\",\"wantarray\",\"die\",\"last\",\"setgrent\",\"warn\",\"dump\",\"lc\",\"sethostent\",\"write\",\"each\",\"lcfirst\",\"setnetent\"],builtinFileHandlers:[\"ARGV\",\"STDERR\",\"STDOUT\",\"ARGVOUT\",\"STDIN\",\"ENV\"],builtinVariables:[\"$!\",\"$^RE_TRIE_MAXBUF\",\"$LAST_REGEXP_CODE_RESULT\",'$\"',\"$^S\",\"$LIST_SEPARATOR\",\"$#\",\"$^T\",\"$MATCH\",\"$$\",\"$^TAINT\",\"$MULTILINE_MATCHING\",\"$%\",\"$^UNICODE\",\"$NR\",\"$&\",\"$^UTF8LOCALE\",\"$OFMT\",\"$'\",\"$^V\",\"$OFS\",\"$(\",\"$^W\",\"$ORS\",\"$)\",\"$^WARNING_BITS\",\"$OS_ERROR\",\"$*\",\"$^WIDE_SYSTEM_CALLS\",\"$OSNAME\",\"$+\",\"$^X\",\"$OUTPUT_AUTO_FLUSH\",\"$,\",\"$_\",\"$OUTPUT_FIELD_SEPARATOR\",\"$-\",\"$`\",\"$OUTPUT_RECORD_SEPARATOR\",\"$.\",\"$a\",\"$PERL_VERSION\",\"$/\",\"$ACCUMULATOR\",\"$PERLDB\",\"$0\",\"$ARG\",\"$PID\",\"$:\",\"$ARGV\",\"$POSTMATCH\",\"$;\",\"$b\",\"$PREMATCH\",\"$<\",\"$BASETIME\",\"$PROCESS_ID\",\"$=\",\"$CHILD_ERROR\",\"$PROGRAM_NAME\",\"$>\",\"$COMPILING\",\"$REAL_GROUP_ID\",\"$?\",\"$DEBUGGING\",\"$REAL_USER_ID\",\"$@\",\"$EFFECTIVE_GROUP_ID\",\"$RS\",\"$[\",\"$EFFECTIVE_USER_ID\",\"$SUBSCRIPT_SEPARATOR\",\"$\\\\\",\"$EGID\",\"$SUBSEP\",\"$]\",\"$ERRNO\",\"$SYSTEM_FD_MAX\",\"$^\",\"$EUID\",\"$UID\",\"$^A\",\"$EVAL_ERROR\",\"$WARNING\",\"$^C\",\"$EXCEPTIONS_BEING_CAUGHT\",\"$|\",\"$^CHILD_ERROR_NATIVE\",\"$EXECUTABLE_NAME\",\"$~\",\"$^D\",\"$EXTENDED_OS_ERROR\",\"%!\",\"$^E\",\"$FORMAT_FORMFEED\",\"%^H\",\"$^ENCODING\",\"$FORMAT_LINE_BREAK_CHARACTERS\",\"%ENV\",\"$^F\",\"$FORMAT_LINES_LEFT\",\"%INC\",\"$^H\",\"$FORMAT_LINES_PER_PAGE\",\"%OVERLOAD\",\"$^I\",\"$FORMAT_NAME\",\"%SIG\",\"$^L\",\"$FORMAT_PAGE_NUMBER\",\"@+\",\"$^M\",\"$FORMAT_TOP_NAME\",\"@-\",\"$^N\",\"$GID\",\"@_\",\"$^O\",\"$INPLACE_EDIT\",\"@ARGV\",\"$^OPEN\",\"$INPUT_LINE_NUMBER\",\"@INC\",\"$^P\",\"$INPUT_RECORD_SEPARATOR\",\"@LAST_MATCH_START\",\"$^R\",\"$LAST_MATCH_END\",\"$^RE_DEBUG_FLAGS\",\"$LAST_PAREN_MATCH\"],symbols:/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/,quoteLikeOps:[\"qr\",\"m\",\"s\",\"q\",\"qq\",\"qx\",\"qw\",\"tr\",\"y\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/[a-zA-Z\\-_][\\w\\-_]*/,{cases:{\"@keywords\":\"keyword\",\"@builtinFunctions\":\"type.identifier\",\"@builtinFileHandlers\":\"variable.predefined\",\"@quoteLikeOps\":{token:\"@rematch\",next:\"quotedConstructs\"},\"@default\":\"\"}}],[/[\\$@%][*@#?\\+\\-\\$!\\w\\\\\\^><~:;\\.]+/,{cases:{\"@builtinVariables\":\"variable.predefined\",\"@default\":\"variable\"}}],{include:\"@strings\"},{include:\"@dblStrings\"},{include:\"@perldoc\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/[\\/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\\\/|[^\\]\\/]))*[\\/]\\w*\\s*(?=[).,;]|$)/,\"regexp\"],[/@symbols/,\"operators\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/\\\\'/,\"string.escape\"],[/./,\"string\"]],dblStrings:[[/\"/,\"string\",\"@dblStringBody\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],{include:\"@variables\"},[/./,\"string\"]],quotedConstructs:[[/(q|qw|tr|y)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qstring.(.)\"}],[/(q|qw|tr|y)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qstring.[.]\"}],[/(q|qw|tr|y)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qstring.{.}\"}],[/(q|qw|tr|y)\\s*</,{token:\"string.delim\",switchTo:\"@qstring.<.>\"}],[/(q|qw|tr|y)#/,{token:\"string.delim\",switchTo:\"@qstring.#.#\"}],[/(q|qw|tr|y)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(q|qw|tr|y)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(qr|m|s)\\s*\\(/,{token:\"regexp.delim\",switchTo:\"@qregexp.(.)\"}],[/(qr|m|s)\\s*\\[/,{token:\"regexp.delim\",switchTo:\"@qregexp.[.]\"}],[/(qr|m|s)\\s*\\{/,{token:\"regexp.delim\",switchTo:\"@qregexp.{.}\"}],[/(qr|m|s)\\s*</,{token:\"regexp.delim\",switchTo:\"@qregexp.<.>\"}],[/(qr|m|s)#/,{token:\"regexp.delim\",switchTo:\"@qregexp.#.#\"}],[/(qr|m|s)\\s*([^A-Za-z0-9_#\\s])/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qr|m|s)\\s+(\\w)/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qq|qx)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qqstring.(.)\"}],[/(qq|qx)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qqstring.[.]\"}],[/(qq|qx)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qqstring.{.}\"}],[/(qq|qx)\\s*</,{token:\"string.delim\",switchTo:\"@qqstring.<.>\"}],[/(qq|qx)#/,{token:\"string.delim\",switchTo:\"@qqstring.#.#\"}],[/(qq|qx)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}],[/(qq|qx)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}]],qstring:[[/\\\\./,\"string.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"string.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"string.delim\",next:\"@push\"},\"@default\":\"string\"}}]],qregexp:[{include:\"@variables\"},[/\\\\./,\"regexp.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@regexpModifiers\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"@default\":\"regexp\"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:\"regexp.modifier\",next:\"@popall\"}]],qqstring:[{include:\"@variables\"},{include:\"@qstring\"}],heredoc:[[/<<\\s*['\"`]?([\\w\\-]+)['\"`]?/,{token:\"string.heredoc.delimiter\",next:\"@heredocBody.$1\"}]],heredocBody:[[/^([\\w\\-]+)$/,{cases:{\"$1==$S2\":[{token:\"string.heredoc.delimiter\",next:\"@popall\"}],\"@default\":\"string.heredoc\"}}],[/./,\"string.heredoc\"]],perldoc:[[/^=\\w/,\"comment.doc\",\"@perldocBody\"]],perldocBody:[[/^=cut\\b/,\"type.identifier\",\"@popall\"],[/./,\"comment.doc\"]],variables:[[/\\$\\w+/,\"variable\"],[/@\\w+/,\"variable\"],[/%\\w+/,\"variable\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/pgsql/pgsql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pgsql/pgsql\",[\"require\",\"exports\"],(function(_,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},e.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"A\",\"ABORT\",\"ABS\",\"ABSENT\",\"ABSOLUTE\",\"ACCESS\",\"ACCORDING\",\"ACTION\",\"ADA\",\"ADD\",\"ADMIN\",\"AFTER\",\"AGGREGATE\",\"ALL\",\"ALLOCATE\",\"ALSO\",\"ALTER\",\"ALWAYS\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARE\",\"ARRAY\",\"ARRAY_AGG\",\"ARRAY_MAX_CARDINALITY\",\"AS\",\"ASC\",\"ASENSITIVE\",\"ASSERTION\",\"ASSIGNMENT\",\"ASYMMETRIC\",\"AT\",\"ATOMIC\",\"ATTRIBUTE\",\"ATTRIBUTES\",\"AUTHORIZATION\",\"AVG\",\"BACKWARD\",\"BASE64\",\"BEFORE\",\"BEGIN\",\"BEGIN_FRAME\",\"BEGIN_PARTITION\",\"BERNOULLI\",\"BETWEEN\",\"BIGINT\",\"BINARY\",\"BIT\",\"BIT_LENGTH\",\"BLOB\",\"BLOCKED\",\"BOM\",\"BOOLEAN\",\"BOTH\",\"BREADTH\",\"BY\",\"C\",\"CACHE\",\"CALL\",\"CALLED\",\"CARDINALITY\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CAST\",\"CATALOG\",\"CATALOG_NAME\",\"CEIL\",\"CEILING\",\"CHAIN\",\"CHAR\",\"CHARACTER\",\"CHARACTERISTICS\",\"CHARACTERS\",\"CHARACTER_LENGTH\",\"CHARACTER_SET_CATALOG\",\"CHARACTER_SET_NAME\",\"CHARACTER_SET_SCHEMA\",\"CHAR_LENGTH\",\"CHECK\",\"CHECKPOINT\",\"CLASS\",\"CLASS_ORIGIN\",\"CLOB\",\"CLOSE\",\"CLUSTER\",\"COALESCE\",\"COBOL\",\"COLLATE\",\"COLLATION\",\"COLLATION_CATALOG\",\"COLLATION_NAME\",\"COLLATION_SCHEMA\",\"COLLECT\",\"COLUMN\",\"COLUMNS\",\"COLUMN_NAME\",\"COMMAND_FUNCTION\",\"COMMAND_FUNCTION_CODE\",\"COMMENT\",\"COMMENTS\",\"COMMIT\",\"COMMITTED\",\"CONCURRENTLY\",\"CONDITION\",\"CONDITION_NUMBER\",\"CONFIGURATION\",\"CONFLICT\",\"CONNECT\",\"CONNECTION\",\"CONNECTION_NAME\",\"CONSTRAINT\",\"CONSTRAINTS\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONSTRUCTOR\",\"CONTAINS\",\"CONTENT\",\"CONTINUE\",\"CONTROL\",\"CONVERSION\",\"CONVERT\",\"COPY\",\"CORR\",\"CORRESPONDING\",\"COST\",\"COUNT\",\"COVAR_POP\",\"COVAR_SAMP\",\"CREATE\",\"CROSS\",\"CSV\",\"CUBE\",\"CUME_DIST\",\"CURRENT\",\"CURRENT_CATALOG\",\"CURRENT_DATE\",\"CURRENT_DEFAULT_TRANSFORM_GROUP\",\"CURRENT_PATH\",\"CURRENT_ROLE\",\"CURRENT_ROW\",\"CURRENT_SCHEMA\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_TRANSFORM_GROUP_FOR_TYPE\",\"CURRENT_USER\",\"CURSOR\",\"CURSOR_NAME\",\"CYCLE\",\"DATA\",\"DATABASE\",\"DATALINK\",\"DATE\",\"DATETIME_INTERVAL_CODE\",\"DATETIME_INTERVAL_PRECISION\",\"DAY\",\"DB\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFAULTS\",\"DEFERRABLE\",\"DEFERRED\",\"DEFINED\",\"DEFINER\",\"DEGREE\",\"DELETE\",\"DELIMITER\",\"DELIMITERS\",\"DENSE_RANK\",\"DEPENDS\",\"DEPTH\",\"DEREF\",\"DERIVED\",\"DESC\",\"DESCRIBE\",\"DESCRIPTOR\",\"DETERMINISTIC\",\"DIAGNOSTICS\",\"DICTIONARY\",\"DISABLE\",\"DISCARD\",\"DISCONNECT\",\"DISPATCH\",\"DISTINCT\",\"DLNEWCOPY\",\"DLPREVIOUSCOPY\",\"DLURLCOMPLETE\",\"DLURLCOMPLETEONLY\",\"DLURLCOMPLETEWRITE\",\"DLURLPATH\",\"DLURLPATHONLY\",\"DLURLPATHWRITE\",\"DLURLSCHEME\",\"DLURLSERVER\",\"DLVALUE\",\"DO\",\"DOCUMENT\",\"DOMAIN\",\"DOUBLE\",\"DROP\",\"DYNAMIC\",\"DYNAMIC_FUNCTION\",\"DYNAMIC_FUNCTION_CODE\",\"EACH\",\"ELEMENT\",\"ELSE\",\"EMPTY\",\"ENABLE\",\"ENCODING\",\"ENCRYPTED\",\"END\",\"END-EXEC\",\"END_FRAME\",\"END_PARTITION\",\"ENFORCED\",\"ENUM\",\"EQUALS\",\"ESCAPE\",\"EVENT\",\"EVERY\",\"EXCEPT\",\"EXCEPTION\",\"EXCLUDE\",\"EXCLUDING\",\"EXCLUSIVE\",\"EXEC\",\"EXECUTE\",\"EXISTS\",\"EXP\",\"EXPLAIN\",\"EXPRESSION\",\"EXTENSION\",\"EXTERNAL\",\"EXTRACT\",\"FALSE\",\"FAMILY\",\"FETCH\",\"FILE\",\"FILTER\",\"FINAL\",\"FIRST\",\"FIRST_VALUE\",\"FLAG\",\"FLOAT\",\"FLOOR\",\"FOLLOWING\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FORTRAN\",\"FORWARD\",\"FOUND\",\"FRAME_ROW\",\"FREE\",\"FREEZE\",\"FROM\",\"FS\",\"FULL\",\"FUNCTION\",\"FUNCTIONS\",\"FUSION\",\"G\",\"GENERAL\",\"GENERATED\",\"GET\",\"GLOBAL\",\"GO\",\"GOTO\",\"GRANT\",\"GRANTED\",\"GREATEST\",\"GROUP\",\"GROUPING\",\"GROUPS\",\"HANDLER\",\"HAVING\",\"HEADER\",\"HEX\",\"HIERARCHY\",\"HOLD\",\"HOUR\",\"ID\",\"IDENTITY\",\"IF\",\"IGNORE\",\"ILIKE\",\"IMMEDIATE\",\"IMMEDIATELY\",\"IMMUTABLE\",\"IMPLEMENTATION\",\"IMPLICIT\",\"IMPORT\",\"IN\",\"INCLUDING\",\"INCREMENT\",\"INDENT\",\"INDEX\",\"INDEXES\",\"INDICATOR\",\"INHERIT\",\"INHERITS\",\"INITIALLY\",\"INLINE\",\"INNER\",\"INOUT\",\"INPUT\",\"INSENSITIVE\",\"INSERT\",\"INSTANCE\",\"INSTANTIABLE\",\"INSTEAD\",\"INT\",\"INTEGER\",\"INTEGRITY\",\"INTERSECT\",\"INTERSECTION\",\"INTERVAL\",\"INTO\",\"INVOKER\",\"IS\",\"ISNULL\",\"ISOLATION\",\"JOIN\",\"K\",\"KEY\",\"KEY_MEMBER\",\"KEY_TYPE\",\"LABEL\",\"LAG\",\"LANGUAGE\",\"LARGE\",\"LAST\",\"LAST_VALUE\",\"LATERAL\",\"LEAD\",\"LEADING\",\"LEAKPROOF\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LEVEL\",\"LIBRARY\",\"LIKE\",\"LIKE_REGEX\",\"LIMIT\",\"LINK\",\"LISTEN\",\"LN\",\"LOAD\",\"LOCAL\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATION\",\"LOCATOR\",\"LOCK\",\"LOCKED\",\"LOGGED\",\"LOWER\",\"M\",\"MAP\",\"MAPPING\",\"MATCH\",\"MATCHED\",\"MATERIALIZED\",\"MAX\",\"MAXVALUE\",\"MAX_CARDINALITY\",\"MEMBER\",\"MERGE\",\"MESSAGE_LENGTH\",\"MESSAGE_OCTET_LENGTH\",\"MESSAGE_TEXT\",\"METHOD\",\"MIN\",\"MINUTE\",\"MINVALUE\",\"MOD\",\"MODE\",\"MODIFIES\",\"MODULE\",\"MONTH\",\"MORE\",\"MOVE\",\"MULTISET\",\"MUMPS\",\"NAME\",\"NAMES\",\"NAMESPACE\",\"NATIONAL\",\"NATURAL\",\"NCHAR\",\"NCLOB\",\"NESTING\",\"NEW\",\"NEXT\",\"NFC\",\"NFD\",\"NFKC\",\"NFKD\",\"NIL\",\"NO\",\"NONE\",\"NORMALIZE\",\"NORMALIZED\",\"NOT\",\"NOTHING\",\"NOTIFY\",\"NOTNULL\",\"NOWAIT\",\"NTH_VALUE\",\"NTILE\",\"NULL\",\"NULLABLE\",\"NULLIF\",\"NULLS\",\"NUMBER\",\"NUMERIC\",\"OBJECT\",\"OCCURRENCES_REGEX\",\"OCTETS\",\"OCTET_LENGTH\",\"OF\",\"OFF\",\"OFFSET\",\"OIDS\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OPERATOR\",\"OPTION\",\"OPTIONS\",\"OR\",\"ORDER\",\"ORDERING\",\"ORDINALITY\",\"OTHERS\",\"OUT\",\"OUTER\",\"OUTPUT\",\"OVER\",\"OVERLAPS\",\"OVERLAY\",\"OVERRIDING\",\"OWNED\",\"OWNER\",\"P\",\"PAD\",\"PARALLEL\",\"PARAMETER\",\"PARAMETER_MODE\",\"PARAMETER_NAME\",\"PARAMETER_ORDINAL_POSITION\",\"PARAMETER_SPECIFIC_CATALOG\",\"PARAMETER_SPECIFIC_NAME\",\"PARAMETER_SPECIFIC_SCHEMA\",\"PARSER\",\"PARTIAL\",\"PARTITION\",\"PASCAL\",\"PASSING\",\"PASSTHROUGH\",\"PASSWORD\",\"PATH\",\"PERCENT\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"PERCENT_RANK\",\"PERIOD\",\"PERMISSION\",\"PLACING\",\"PLANS\",\"PLI\",\"POLICY\",\"PORTION\",\"POSITION\",\"POSITION_REGEX\",\"POWER\",\"PRECEDES\",\"PRECEDING\",\"PRECISION\",\"PREPARE\",\"PREPARED\",\"PRESERVE\",\"PRIMARY\",\"PRIOR\",\"PRIVILEGES\",\"PROCEDURAL\",\"PROCEDURE\",\"PROGRAM\",\"PUBLIC\",\"QUOTE\",\"RANGE\",\"RANK\",\"READ\",\"READS\",\"REAL\",\"REASSIGN\",\"RECHECK\",\"RECOVERY\",\"RECURSIVE\",\"REF\",\"REFERENCES\",\"REFERENCING\",\"REFRESH\",\"REGR_AVGX\",\"REGR_AVGY\",\"REGR_COUNT\",\"REGR_INTERCEPT\",\"REGR_R2\",\"REGR_SLOPE\",\"REGR_SXX\",\"REGR_SXY\",\"REGR_SYY\",\"REINDEX\",\"RELATIVE\",\"RELEASE\",\"RENAME\",\"REPEATABLE\",\"REPLACE\",\"REPLICA\",\"REQUIRING\",\"RESET\",\"RESPECT\",\"RESTART\",\"RESTORE\",\"RESTRICT\",\"RESULT\",\"RETURN\",\"RETURNED_CARDINALITY\",\"RETURNED_LENGTH\",\"RETURNED_OCTET_LENGTH\",\"RETURNED_SQLSTATE\",\"RETURNING\",\"RETURNS\",\"REVOKE\",\"RIGHT\",\"ROLE\",\"ROLLBACK\",\"ROLLUP\",\"ROUTINE\",\"ROUTINE_CATALOG\",\"ROUTINE_NAME\",\"ROUTINE_SCHEMA\",\"ROW\",\"ROWS\",\"ROW_COUNT\",\"ROW_NUMBER\",\"RULE\",\"SAVEPOINT\",\"SCALE\",\"SCHEMA\",\"SCHEMA_NAME\",\"SCOPE\",\"SCOPE_CATALOG\",\"SCOPE_NAME\",\"SCOPE_SCHEMA\",\"SCROLL\",\"SEARCH\",\"SECOND\",\"SECTION\",\"SECURITY\",\"SELECT\",\"SELECTIVE\",\"SELF\",\"SENSITIVE\",\"SEQUENCE\",\"SEQUENCES\",\"SERIALIZABLE\",\"SERVER\",\"SERVER_NAME\",\"SESSION\",\"SESSION_USER\",\"SET\",\"SETOF\",\"SETS\",\"SHARE\",\"SHOW\",\"SIMILAR\",\"SIMPLE\",\"SIZE\",\"SKIP\",\"SMALLINT\",\"SNAPSHOT\",\"SOME\",\"SOURCE\",\"SPACE\",\"SPECIFIC\",\"SPECIFICTYPE\",\"SPECIFIC_NAME\",\"SQL\",\"SQLCODE\",\"SQLERROR\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"SQRT\",\"STABLE\",\"STANDALONE\",\"START\",\"STATE\",\"STATEMENT\",\"STATIC\",\"STATISTICS\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"STDIN\",\"STDOUT\",\"STORAGE\",\"STRICT\",\"STRIP\",\"STRUCTURE\",\"STYLE\",\"SUBCLASS_ORIGIN\",\"SUBMULTISET\",\"SUBSTRING\",\"SUBSTRING_REGEX\",\"SUCCEEDS\",\"SUM\",\"SYMMETRIC\",\"SYSID\",\"SYSTEM\",\"SYSTEM_TIME\",\"SYSTEM_USER\",\"T\",\"TABLE\",\"TABLES\",\"TABLESAMPLE\",\"TABLESPACE\",\"TABLE_NAME\",\"TEMP\",\"TEMPLATE\",\"TEMPORARY\",\"TEXT\",\"THEN\",\"TIES\",\"TIME\",\"TIMESTAMP\",\"TIMEZONE_HOUR\",\"TIMEZONE_MINUTE\",\"TO\",\"TOKEN\",\"TOP_LEVEL_COUNT\",\"TRAILING\",\"TRANSACTION\",\"TRANSACTIONS_COMMITTED\",\"TRANSACTIONS_ROLLED_BACK\",\"TRANSACTION_ACTIVE\",\"TRANSFORM\",\"TRANSFORMS\",\"TRANSLATE\",\"TRANSLATE_REGEX\",\"TRANSLATION\",\"TREAT\",\"TRIGGER\",\"TRIGGER_CATALOG\",\"TRIGGER_NAME\",\"TRIGGER_SCHEMA\",\"TRIM\",\"TRIM_ARRAY\",\"TRUE\",\"TRUNCATE\",\"TRUSTED\",\"TYPE\",\"TYPES\",\"UESCAPE\",\"UNBOUNDED\",\"UNCOMMITTED\",\"UNDER\",\"UNENCRYPTED\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNLINK\",\"UNLISTEN\",\"UNLOGGED\",\"UNNAMED\",\"UNNEST\",\"UNTIL\",\"UNTYPED\",\"UPDATE\",\"UPPER\",\"URI\",\"USAGE\",\"USER\",\"USER_DEFINED_TYPE_CATALOG\",\"USER_DEFINED_TYPE_CODE\",\"USER_DEFINED_TYPE_NAME\",\"USER_DEFINED_TYPE_SCHEMA\",\"USING\",\"VACUUM\",\"VALID\",\"VALIDATE\",\"VALIDATOR\",\"VALUE\",\"VALUES\",\"VALUE_OF\",\"VARBINARY\",\"VARCHAR\",\"VARIADIC\",\"VARYING\",\"VAR_POP\",\"VAR_SAMP\",\"VERBOSE\",\"VERSION\",\"VERSIONING\",\"VIEW\",\"VIEWS\",\"VOLATILE\",\"WHEN\",\"WHENEVER\",\"WHERE\",\"WHITESPACE\",\"WIDTH_BUCKET\",\"WINDOW\",\"WITH\",\"WITHIN\",\"WITHOUT\",\"WORK\",\"WRAPPER\",\"WRITE\",\"XML\",\"XMLAGG\",\"XMLATTRIBUTES\",\"XMLBINARY\",\"XMLCAST\",\"XMLCOMMENT\",\"XMLCONCAT\",\"XMLDECLARATION\",\"XMLDOCUMENT\",\"XMLELEMENT\",\"XMLEXISTS\",\"XMLFOREST\",\"XMLITERATE\",\"XMLNAMESPACES\",\"XMLPARSE\",\"XMLPI\",\"XMLQUERY\",\"XMLROOT\",\"XMLSCHEMA\",\"XMLSERIALIZE\",\"XMLTABLE\",\"XMLTEXT\",\"XMLVALIDATE\",\"YEAR\",\"YES\",\"ZONE\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"abbrev\",\"abs\",\"acos\",\"acosd\",\"age\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"ascii\",\"asin\",\"asind\",\"atan\",\"atan2\",\"atan2d\",\"atand\",\"avg\",\"bit\",\"bit_and\",\"bit_length\",\"bit_or\",\"bool_and\",\"bool_or\",\"bound_box\",\"box\",\"brin_summarize_new_values\",\"broadcast\",\"btrim\",\"cardinality\",\"cbrt\",\"ceil\",\"ceiling\",\"center\",\"char_length\",\"character_length\",\"chr\",\"circle\",\"clock_timestamp\",\"coalesce\",\"col_description\",\"concat\",\"concat_ws\",\"convert\",\"convert_from\",\"convert_to\",\"corr\",\"cos\",\"cosd\",\"cot\",\"cotd\",\"count\",\"covar_pop\",\"covar_samp\",\"cume_dist\",\"current_catalog\",\"current_database\",\"current_date\",\"current_query\",\"current_role\",\"current_schema\",\"current_schemas\",\"current_setting\",\"current_time\",\"current_timestamp\",\"current_user\",\"currval\",\"cursor_to_xml\",\"date_part\",\"date_trunc\",\"decode\",\"degrees\",\"dense_rank\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"exp\",\"extract\",\"family\",\"first_value\",\"floor\",\"format\",\"format_type\",\"generate_series\",\"generate_subscripts\",\"get_bit\",\"get_byte\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"greatest\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_database_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_schema_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_table_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"initcap\",\"isclosed\",\"isempty\",\"isfinite\",\"isopen\",\"json_agg\",\"json_object\",\"json_object_agg\",\"json_populate_record\",\"json_populate_recordset\",\"json_to_record\",\"json_to_recordset\",\"jsonb_agg\",\"jsonb_object_agg\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lag\",\"last_value\",\"lastval\",\"lead\",\"least\",\"left\",\"length\",\"line\",\"ln\",\"localtime\",\"localtimestamp\",\"log\",\"lower\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"ltrim\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"masklen\",\"max\",\"md5\",\"min\",\"mod\",\"mode\",\"netmask\",\"network\",\"nextval\",\"now\",\"npoints\",\"nth_value\",\"ntile\",\"nullif\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"octet_length\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backend_pid\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_cancel_backend\",\"pg_client_encoding\",\"pg_collation_is_visible\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_xlog_replay_paused\",\"pg_last_committed_xact\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_dir\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_postmaster_start_time\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_rotate_logfile\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_start_backup\",\"pg_stat_file\",\"pg_stop_backup\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_terminate_backend\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_xact_commit_timestamp\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"pi\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"position\",\"power\",\"pqserverversion\",\"query_to_xml\",\"querytree\",\"quote_ident\",\"quote_literal\",\"quote_nullable\",\"radians\",\"radius\",\"random\",\"range_merge\",\"rank\",\"regexp_matches\",\"regexp_replace\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"repeat\",\"replace\",\"reverse\",\"right\",\"round\",\"row_number\",\"row_security_active\",\"row_to_json\",\"rpad\",\"rtrim\",\"scale\",\"session_user\",\"set_bit\",\"set_byte\",\"set_config\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"shobj_description\",\"sign\",\"sin\",\"sind\",\"split_part\",\"sprintf\",\"sqrt\",\"statement_timestamp\",\"stddev\",\"stddev_pop\",\"stddev_samp\",\"string_agg\",\"string_to_array\",\"strip\",\"strpos\",\"substr\",\"substring\",\"sum\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"tan\",\"tand\",\"text\",\"timeofday\",\"timezone\",\"to_ascii\",\"to_char\",\"to_date\",\"to_hex\",\"to_json\",\"to_number\",\"to_regclass\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_timestamp\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"translate\",\"trim\",\"trunc\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_visible_in_snapshot\",\"unnest\",\"upper\",\"upper_inc\",\"upper_inf\",\"user\",\"var_pop\",\"var_samp\",\"variance\",\"version\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/php/php.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/php/php\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:\"(\",close:\")\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*(#|//)region\\\\b\"),end:new RegExp(\"^\\\\s*(#|//)endregion\\\\b\")}}},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<]+/]],doctype:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],phpInSimpleState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\"}],{include:\"phpRoot\"}],phpInEmbeddedState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"phpRoot\"}],phpRoot:[[/[a-zA-Z_]\\w*/,{cases:{\"@phpKeywords\":{token:\"keyword.php\"},\"@phpCompileTimeConstants\":{token:\"constant.php\"},\"@default\":\"identifier.php\"}}],[/[$a-zA-Z_]\\w*/,{cases:{\"@phpPreDefinedVariables\":{token:\"variable.predefined.php\"},\"@default\":\"variable.php\"}}],[/[{}]/,\"delimiter.bracket.php\"],[/[\\[\\]]/,\"delimiter.array.php\"],[/[()]/,\"delimiter.parenthesis.php\"],[/[ \\t\\r\\n]+/],[/(#|\\/\\/)$/,\"comment.php\"],[/(#|\\/\\/)/,\"comment.php\",\"@phpLineComment\"],[/\\/\\*/,\"comment.php\",\"@phpComment\"],[/\"/,\"string.php\",\"@phpDoubleQuoteString\"],[/'/,\"string.php\",\"@phpSingleQuoteString\"],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,\\@]/,\"delimiter.php\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.php\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.php\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.php\"],[/0[0-7']*[0-7]/,\"number.octal.php\"],[/0[bB][0-1']*[0-1]/,\"number.binary.php\"],[/\\d[\\d']*/,\"number.php\"],[/\\d/,\"number.php\"]],phpComment:[[/\\*\\//,\"comment.php\",\"@pop\"],[/[^*]+/,\"comment.php\"],[/./,\"comment.php\"]],phpLineComment:[[/\\?>/,{token:\"@rematch\",next:\"@pop\"}],[/.$/,\"comment.php\",\"@pop\"],[/[^?]+$/,\"comment.php\",\"@pop\"],[/[^?]+/,\"comment.php\"],[/./,\"comment.php\"]],phpDoubleQuoteString:[[/[^\\\\\"]+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/\"/,\"string.php\",\"@pop\"]],phpSingleQuoteString:[[/[^\\\\']+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/'/,\"string.php\",\"@pop\"]]},phpKeywords:[\"abstract\",\"and\",\"array\",\"as\",\"break\",\"callable\",\"case\",\"catch\",\"cfunction\",\"class\",\"clone\",\"const\",\"continue\",\"declare\",\"default\",\"do\",\"else\",\"elseif\",\"enddeclare\",\"endfor\",\"endforeach\",\"endif\",\"endswitch\",\"endwhile\",\"extends\",\"false\",\"final\",\"for\",\"foreach\",\"function\",\"global\",\"goto\",\"if\",\"implements\",\"interface\",\"instanceof\",\"insteadof\",\"namespace\",\"new\",\"null\",\"object\",\"old_function\",\"or\",\"private\",\"protected\",\"public\",\"resource\",\"static\",\"switch\",\"throw\",\"trait\",\"try\",\"true\",\"use\",\"var\",\"while\",\"xor\",\"die\",\"echo\",\"empty\",\"exit\",\"eval\",\"include\",\"include_once\",\"isset\",\"list\",\"require\",\"require_once\",\"return\",\"print\",\"unset\",\"yield\",\"__construct\"],phpCompileTimeConstants:[\"__CLASS__\",\"__DIR__\",\"__FILE__\",\"__LINE__\",\"__NAMESPACE__\",\"__METHOD__\",\"__FUNCTION__\",\"__TRAIT__\"],phpPreDefinedVariables:[\"$GLOBALS\",\"$_SERVER\",\"$_GET\",\"$_POST\",\"$_FILES\",\"$_REQUEST\",\"$_SESSION\",\"$_ENV\",\"$_COOKIE\",\"$php_errormsg\",\"$HTTP_RAW_POST_DATA\",\"$http_response_header\",\"$argc\",\"$argv\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/postiats/postiats.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/postiats/postiats\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t.language={tokenPostfix:\".pats\",defaultToken:\"invalid\",keywords:[\"abstype\",\"abst0ype\",\"absprop\",\"absview\",\"absvtype\",\"absviewtype\",\"absvt0ype\",\"absviewt0ype\",\"as\",\"and\",\"assume\",\"begin\",\"classdec\",\"datasort\",\"datatype\",\"dataprop\",\"dataview\",\"datavtype\",\"dataviewtype\",\"do\",\"end\",\"extern\",\"extype\",\"extvar\",\"exception\",\"fn\",\"fnx\",\"fun\",\"prfn\",\"prfun\",\"praxi\",\"castfn\",\"if\",\"then\",\"else\",\"ifcase\",\"in\",\"infix\",\"infixl\",\"infixr\",\"prefix\",\"postfix\",\"implmnt\",\"implement\",\"primplmnt\",\"primplement\",\"import\",\"let\",\"local\",\"macdef\",\"macrodef\",\"nonfix\",\"symelim\",\"symintr\",\"overload\",\"of\",\"op\",\"rec\",\"sif\",\"scase\",\"sortdef\",\"sta\",\"stacst\",\"stadef\",\"static\",\"staload\",\"dynload\",\"try\",\"tkindef\",\"typedef\",\"propdef\",\"viewdef\",\"vtypedef\",\"viewtypedef\",\"prval\",\"var\",\"prvar\",\"when\",\"where\",\"with\",\"withtype\",\"withprop\",\"withview\",\"withvtype\",\"withviewtype\"],keywords_dlr:[\"$delay\",\"$ldelay\",\"$arrpsz\",\"$arrptrsize\",\"$d2ctype\",\"$effmask\",\"$effmask_ntm\",\"$effmask_exn\",\"$effmask_ref\",\"$effmask_wrt\",\"$effmask_all\",\"$extern\",\"$extkind\",\"$extype\",\"$extype_struct\",\"$extval\",\"$extfcall\",\"$extmcall\",\"$literal\",\"$myfilename\",\"$mylocation\",\"$myfunction\",\"$lst\",\"$lst_t\",\"$lst_vt\",\"$list\",\"$list_t\",\"$list_vt\",\"$rec\",\"$rec_t\",\"$rec_vt\",\"$record\",\"$record_t\",\"$record_vt\",\"$tup\",\"$tup_t\",\"$tup_vt\",\"$tuple\",\"$tuple_t\",\"$tuple_vt\",\"$break\",\"$continue\",\"$raise\",\"$showtype\",\"$vcopyenv_v\",\"$vcopyenv_vt\",\"$tempenver\",\"$solver_assert\",\"$solver_verify\"],keywords_srp:[\"#if\",\"#ifdef\",\"#ifndef\",\"#then\",\"#elif\",\"#elifdef\",\"#elifndef\",\"#else\",\"#endif\",\"#error\",\"#prerr\",\"#print\",\"#assert\",\"#undef\",\"#define\",\"#include\",\"#require\",\"#pragma\",\"#codegen2\",\"#codegen3\"],irregular_keyword_list:[\"val+\",\"val-\",\"val\",\"case+\",\"case-\",\"case\",\"addr@\",\"addr\",\"fold@\",\"free@\",\"fix@\",\"fix\",\"lam@\",\"lam\",\"llam@\",\"llam\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"view+\",\"view-\",\"view@\",\"view\",\"type+\",\"type-\",\"type\",\"vtype+\",\"vtype-\",\"vtype\",\"vt@ype+\",\"vt@ype-\",\"vt@ype\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"prop+\",\"prop-\",\"prop\",\"type+\",\"type-\",\"type\",\"t@ype\",\"t@ype+\",\"t@ype-\",\"abst@ype\",\"abstype\",\"absviewt@ype\",\"absvt@ype\",\"for*\",\"for\",\"while*\",\"while\"],keywords_types:[\"bool\",\"double\",\"byte\",\"int\",\"short\",\"char\",\"void\",\"unit\",\"long\",\"float\",\"string\",\"strptr\"],keywords_effects:[\"0\",\"fun\",\"clo\",\"prf\",\"funclo\",\"cloptr\",\"cloref\",\"ref\",\"ntm\",\"1\"],operators:[\"@\",\"!\",\"|\",\"`\",\":\",\"$\",\".\",\"=\",\"#\",\"~\",\"..\",\"...\",\"=>\",\"=<>\",\"=/=>\",\"=>>\",\"=/=>>\",\"<\",\">\",\"><\",\".<\",\">.\",\".<>.\",\"->\",\"-<>\"],brackets:[{open:\",(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"`(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"%(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'{\",close:\"}\",token:\"delimiter.parenthesis\"},{open:\"@(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"@{\",close:\"}\",token:\"delimiter.brace\"},{open:\"@[\",close:\"]\",token:\"delimiter.square\"},{open:\"#[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\\.[0-9]*@fexponent?/,hexiexp:/\\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\\@?|fold\\@|free\\@|fix\\@?|lam\\@?|llam\\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\\*?|while\\*?/,ESCHAR:/[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,start:\"root\",tokenizer:{root:[{regex:/[ \\t\\r\\n]+/,action:{token:\"\"}},{regex:/\\(\\*\\)/,action:{token:\"invalid\"}},{regex:/\\(\\*/,action:{token:\"comment\",next:\"lexing_COMMENT_block_ml\"}},{regex:/\\(/,action:\"@brackets\"},{regex:/\\)/,action:\"@brackets\"},{regex:/\\[/,action:\"@brackets\"},{regex:/\\]/,action:\"@brackets\"},{regex:/\\{/,action:\"@brackets\"},{regex:/\\}/,action:\"@brackets\"},{regex:/,\\(/,action:\"@brackets\"},{regex:/,/,action:{token:\"delimiter.comma\"}},{regex:/;/,action:{token:\"delimiter.semicolon\"}},{regex:/@\\(/,action:\"@brackets\"},{regex:/@\\[/,action:\"@brackets\"},{regex:/@\\{/,action:\"@brackets\"},{regex:/:</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/\\.@symbolic+/,action:{token:\"identifier.sym\"}},{regex:/\\.@digit*@fexponent@FLOATSP*/,action:{token:\"number.float\"}},{regex:/\\.@digit+/,action:{token:\"number.float\"}},{regex:/\\$@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_dlr\":{token:\"keyword.dlr\"},\"@default\":{token:\"namespace\"}}}},{regex:/\\#@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_srp\":{token:\"keyword.srp\"},\"@default\":{token:\"identifier\"}}}},{regex:/%\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/^%{(#|\\^|\\$)?/,action:{token:\"keyword\",next:\"@lexing_EXTCODE\",nextEmbedded:\"text/javascript\"}},{regex:/^%}/,action:{token:\"keyword\"}},{regex:/'\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/'\\[/,action:{token:\"delimiter.bracket\"}},{regex:/'\\{/,action:{token:\"delimiter.brace\"}},[/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/,[\"string\",\"string.escape\",\"string\"]],[/'[^\\\\']'/,\"string\"],[/\"/,\"string.quote\",\"@lexing_DQUOTE\"],{regex:/`\\(/,action:\"@brackets\"},{regex:/\\\\/,action:{token:\"punctuation\"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:\"keyword\"}},{regex:/@IDENTFST@IDENTRST*[<!\\[]?/,action:{cases:{\"@keywords\":{token:\"keyword\"},\"@keywords_types\":{token:\"type\"},\"@default\":{token:\"identifier\"}}}},{regex:/\\/\\/\\/\\//,action:{token:\"comment\",next:\"@lexing_COMMENT_rest\"}},{regex:/\\/\\/.*$/,action:{token:\"comment\"}},{regex:/\\/\\*/,action:{token:\"comment\",next:\"@lexing_COMMENT_block_c\"}},{regex:/-<|=</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/@symbolic+/,action:{cases:{\"@operators\":\"keyword\",\"@default\":\"operator\"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:\"number.hex\"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:\"number.octal\"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:\"number.decimal\"}},{regex:/@digit+@INTSP*/,action:{token:\"number\"}}],lexing_COMMENT_block_ml:[[/[^\\(\\*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[/\\(\\*/,\"comment.invalid\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"]],lexing_COMMENT_block_c:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],lexing_COMMENT_rest:[[/$/,\"comment\",\"@pop\"],[/.*/,\"comment\"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{\"@keywords_effects\":{token:\"type.effect\"},\"@default\":{token:\"identifier\"}}}},{regex:/,/,action:{token:\"punctuation\"}},{regex:/>/,action:{token:\"@rematch\",next:\"@pop\"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}},{regex:/[^%]+/,action:\"\"}],lexing_DQUOTE:[{regex:/\"/,action:{token:\"string.quote\",next:\"@pop\"}},{regex:/(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/,action:[{token:\"string.escape\"},{token:\"identifier\"},{token:\"string.escape\"}]},{regex:/\\\\$/,action:{token:\"string.escape\"}},{regex:/\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:\"string.escape\"}},{regex:/[^\\\\\"]+/,action:{token:\"string\"}}]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/powerquery/powerquery.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/powerquery/powerquery\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\",\"identifier\"]}]},t.language={defaultToken:\"\",tokenPostfix:\".pq\",ignoreCase:!1,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],operatorKeywords:[\"and\",\"not\",\"or\"],keywords:[\"as\",\"each\",\"else\",\"error\",\"false\",\"if\",\"in\",\"is\",\"let\",\"meta\",\"otherwise\",\"section\",\"shared\",\"then\",\"true\",\"try\",\"type\"],constructors:[\"#binary\",\"#date\",\"#datetime\",\"#datetimezone\",\"#duration\",\"#table\",\"#time\"],constants:[\"#infinity\",\"#nan\",\"#sections\",\"#shared\"],typeKeywords:[\"action\",\"any\",\"anynonnull\",\"none\",\"null\",\"logical\",\"number\",\"time\",\"date\",\"datetime\",\"datetimezone\",\"duration\",\"text\",\"binary\",\"list\",\"record\",\"table\",\"function\"],builtinFunctions:[\"Access.Database\",\"Action.Return\",\"Action.Sequence\",\"Action.Try\",\"ActiveDirectory.Domains\",\"AdoDotNet.DataSource\",\"AdoDotNet.Query\",\"AdobeAnalytics.Cubes\",\"AnalysisServices.Database\",\"AnalysisServices.Databases\",\"AzureStorage.BlobContents\",\"AzureStorage.Blobs\",\"AzureStorage.Tables\",\"Binary.Buffer\",\"Binary.Combine\",\"Binary.Compress\",\"Binary.Decompress\",\"Binary.End\",\"Binary.From\",\"Binary.FromList\",\"Binary.FromText\",\"Binary.InferContentType\",\"Binary.Length\",\"Binary.ToList\",\"Binary.ToText\",\"BinaryFormat.7BitEncodedSignedInteger\",\"BinaryFormat.7BitEncodedUnsignedInteger\",\"BinaryFormat.Binary\",\"BinaryFormat.Byte\",\"BinaryFormat.ByteOrder\",\"BinaryFormat.Choice\",\"BinaryFormat.Decimal\",\"BinaryFormat.Double\",\"BinaryFormat.Group\",\"BinaryFormat.Length\",\"BinaryFormat.List\",\"BinaryFormat.Null\",\"BinaryFormat.Record\",\"BinaryFormat.SignedInteger16\",\"BinaryFormat.SignedInteger32\",\"BinaryFormat.SignedInteger64\",\"BinaryFormat.Single\",\"BinaryFormat.Text\",\"BinaryFormat.Transform\",\"BinaryFormat.UnsignedInteger16\",\"BinaryFormat.UnsignedInteger32\",\"BinaryFormat.UnsignedInteger64\",\"Byte.From\",\"Character.FromNumber\",\"Character.ToNumber\",\"Combiner.CombineTextByDelimiter\",\"Combiner.CombineTextByEachDelimiter\",\"Combiner.CombineTextByLengths\",\"Combiner.CombineTextByPositions\",\"Combiner.CombineTextByRanges\",\"Comparer.Equals\",\"Comparer.FromCulture\",\"Comparer.Ordinal\",\"Comparer.OrdinalIgnoreCase\",\"Csv.Document\",\"Cube.AddAndExpandDimensionColumn\",\"Cube.AddMeasureColumn\",\"Cube.ApplyParameter\",\"Cube.AttributeMemberId\",\"Cube.AttributeMemberProperty\",\"Cube.CollapseAndRemoveColumns\",\"Cube.Dimensions\",\"Cube.DisplayFolders\",\"Cube.Measures\",\"Cube.Parameters\",\"Cube.Properties\",\"Cube.PropertyKey\",\"Cube.ReplaceDimensions\",\"Cube.Transform\",\"Currency.From\",\"DB2.Database\",\"Date.AddDays\",\"Date.AddMonths\",\"Date.AddQuarters\",\"Date.AddWeeks\",\"Date.AddYears\",\"Date.Day\",\"Date.DayOfWeek\",\"Date.DayOfWeekName\",\"Date.DayOfYear\",\"Date.DaysInMonth\",\"Date.EndOfDay\",\"Date.EndOfMonth\",\"Date.EndOfQuarter\",\"Date.EndOfWeek\",\"Date.EndOfYear\",\"Date.From\",\"Date.FromText\",\"Date.IsInCurrentDay\",\"Date.IsInCurrentMonth\",\"Date.IsInCurrentQuarter\",\"Date.IsInCurrentWeek\",\"Date.IsInCurrentYear\",\"Date.IsInNextDay\",\"Date.IsInNextMonth\",\"Date.IsInNextNDays\",\"Date.IsInNextNMonths\",\"Date.IsInNextNQuarters\",\"Date.IsInNextNWeeks\",\"Date.IsInNextNYears\",\"Date.IsInNextQuarter\",\"Date.IsInNextWeek\",\"Date.IsInNextYear\",\"Date.IsInPreviousDay\",\"Date.IsInPreviousMonth\",\"Date.IsInPreviousNDays\",\"Date.IsInPreviousNMonths\",\"Date.IsInPreviousNQuarters\",\"Date.IsInPreviousNWeeks\",\"Date.IsInPreviousNYears\",\"Date.IsInPreviousQuarter\",\"Date.IsInPreviousWeek\",\"Date.IsInPreviousYear\",\"Date.IsInYearToDate\",\"Date.IsLeapYear\",\"Date.Month\",\"Date.MonthName\",\"Date.QuarterOfYear\",\"Date.StartOfDay\",\"Date.StartOfMonth\",\"Date.StartOfQuarter\",\"Date.StartOfWeek\",\"Date.StartOfYear\",\"Date.ToRecord\",\"Date.ToText\",\"Date.WeekOfMonth\",\"Date.WeekOfYear\",\"Date.Year\",\"DateTime.AddZone\",\"DateTime.Date\",\"DateTime.FixedLocalNow\",\"DateTime.From\",\"DateTime.FromFileTime\",\"DateTime.FromText\",\"DateTime.IsInCurrentHour\",\"DateTime.IsInCurrentMinute\",\"DateTime.IsInCurrentSecond\",\"DateTime.IsInNextHour\",\"DateTime.IsInNextMinute\",\"DateTime.IsInNextNHours\",\"DateTime.IsInNextNMinutes\",\"DateTime.IsInNextNSeconds\",\"DateTime.IsInNextSecond\",\"DateTime.IsInPreviousHour\",\"DateTime.IsInPreviousMinute\",\"DateTime.IsInPreviousNHours\",\"DateTime.IsInPreviousNMinutes\",\"DateTime.IsInPreviousNSeconds\",\"DateTime.IsInPreviousSecond\",\"DateTime.LocalNow\",\"DateTime.Time\",\"DateTime.ToRecord\",\"DateTime.ToText\",\"DateTimeZone.FixedLocalNow\",\"DateTimeZone.FixedUtcNow\",\"DateTimeZone.From\",\"DateTimeZone.FromFileTime\",\"DateTimeZone.FromText\",\"DateTimeZone.LocalNow\",\"DateTimeZone.RemoveZone\",\"DateTimeZone.SwitchZone\",\"DateTimeZone.ToLocal\",\"DateTimeZone.ToRecord\",\"DateTimeZone.ToText\",\"DateTimeZone.ToUtc\",\"DateTimeZone.UtcNow\",\"DateTimeZone.ZoneHours\",\"DateTimeZone.ZoneMinutes\",\"Decimal.From\",\"Diagnostics.ActivityId\",\"Diagnostics.Trace\",\"DirectQueryCapabilities.From\",\"Double.From\",\"Duration.Days\",\"Duration.From\",\"Duration.FromText\",\"Duration.Hours\",\"Duration.Minutes\",\"Duration.Seconds\",\"Duration.ToRecord\",\"Duration.ToText\",\"Duration.TotalDays\",\"Duration.TotalHours\",\"Duration.TotalMinutes\",\"Duration.TotalSeconds\",\"Embedded.Value\",\"Error.Record\",\"Excel.CurrentWorkbook\",\"Excel.Workbook\",\"Exchange.Contents\",\"Expression.Constant\",\"Expression.Evaluate\",\"Expression.Identifier\",\"Facebook.Graph\",\"File.Contents\",\"Folder.Contents\",\"Folder.Files\",\"Function.From\",\"Function.Invoke\",\"Function.InvokeAfter\",\"Function.IsDataSource\",\"GoogleAnalytics.Accounts\",\"Guid.From\",\"HdInsight.Containers\",\"HdInsight.Contents\",\"HdInsight.Files\",\"Hdfs.Contents\",\"Hdfs.Files\",\"Informix.Database\",\"Int16.From\",\"Int32.From\",\"Int64.From\",\"Int8.From\",\"ItemExpression.From\",\"Json.Document\",\"Json.FromValue\",\"Lines.FromBinary\",\"Lines.FromText\",\"Lines.ToBinary\",\"Lines.ToText\",\"List.Accumulate\",\"List.AllTrue\",\"List.Alternate\",\"List.AnyTrue\",\"List.Average\",\"List.Buffer\",\"List.Combine\",\"List.Contains\",\"List.ContainsAll\",\"List.ContainsAny\",\"List.Count\",\"List.Covariance\",\"List.DateTimeZones\",\"List.DateTimes\",\"List.Dates\",\"List.Difference\",\"List.Distinct\",\"List.Durations\",\"List.FindText\",\"List.First\",\"List.FirstN\",\"List.Generate\",\"List.InsertRange\",\"List.Intersect\",\"List.IsDistinct\",\"List.IsEmpty\",\"List.Last\",\"List.LastN\",\"List.MatchesAll\",\"List.MatchesAny\",\"List.Max\",\"List.MaxN\",\"List.Median\",\"List.Min\",\"List.MinN\",\"List.Mode\",\"List.Modes\",\"List.NonNullCount\",\"List.Numbers\",\"List.PositionOf\",\"List.PositionOfAny\",\"List.Positions\",\"List.Product\",\"List.Random\",\"List.Range\",\"List.RemoveFirstN\",\"List.RemoveItems\",\"List.RemoveLastN\",\"List.RemoveMatchingItems\",\"List.RemoveNulls\",\"List.RemoveRange\",\"List.Repeat\",\"List.ReplaceMatchingItems\",\"List.ReplaceRange\",\"List.ReplaceValue\",\"List.Reverse\",\"List.Select\",\"List.Single\",\"List.SingleOrDefault\",\"List.Skip\",\"List.Sort\",\"List.StandardDeviation\",\"List.Sum\",\"List.Times\",\"List.Transform\",\"List.TransformMany\",\"List.Union\",\"List.Zip\",\"Logical.From\",\"Logical.FromText\",\"Logical.ToText\",\"MQ.Queue\",\"MySQL.Database\",\"Number.Abs\",\"Number.Acos\",\"Number.Asin\",\"Number.Atan\",\"Number.Atan2\",\"Number.BitwiseAnd\",\"Number.BitwiseNot\",\"Number.BitwiseOr\",\"Number.BitwiseShiftLeft\",\"Number.BitwiseShiftRight\",\"Number.BitwiseXor\",\"Number.Combinations\",\"Number.Cos\",\"Number.Cosh\",\"Number.Exp\",\"Number.Factorial\",\"Number.From\",\"Number.FromText\",\"Number.IntegerDivide\",\"Number.IsEven\",\"Number.IsNaN\",\"Number.IsOdd\",\"Number.Ln\",\"Number.Log\",\"Number.Log10\",\"Number.Mod\",\"Number.Permutations\",\"Number.Power\",\"Number.Random\",\"Number.RandomBetween\",\"Number.Round\",\"Number.RoundAwayFromZero\",\"Number.RoundDown\",\"Number.RoundTowardZero\",\"Number.RoundUp\",\"Number.Sign\",\"Number.Sin\",\"Number.Sinh\",\"Number.Sqrt\",\"Number.Tan\",\"Number.Tanh\",\"Number.ToText\",\"OData.Feed\",\"Odbc.DataSource\",\"Odbc.Query\",\"OleDb.DataSource\",\"OleDb.Query\",\"Oracle.Database\",\"Percentage.From\",\"PostgreSQL.Database\",\"RData.FromBinary\",\"Record.AddField\",\"Record.Combine\",\"Record.Field\",\"Record.FieldCount\",\"Record.FieldNames\",\"Record.FieldOrDefault\",\"Record.FieldValues\",\"Record.FromList\",\"Record.FromTable\",\"Record.HasFields\",\"Record.RemoveFields\",\"Record.RenameFields\",\"Record.ReorderFields\",\"Record.SelectFields\",\"Record.ToList\",\"Record.ToTable\",\"Record.TransformFields\",\"Replacer.ReplaceText\",\"Replacer.ReplaceValue\",\"RowExpression.Column\",\"RowExpression.From\",\"Salesforce.Data\",\"Salesforce.Reports\",\"SapBusinessWarehouse.Cubes\",\"SapHana.Database\",\"SharePoint.Contents\",\"SharePoint.Files\",\"SharePoint.Tables\",\"Single.From\",\"Soda.Feed\",\"Splitter.SplitByNothing\",\"Splitter.SplitTextByAnyDelimiter\",\"Splitter.SplitTextByDelimiter\",\"Splitter.SplitTextByEachDelimiter\",\"Splitter.SplitTextByLengths\",\"Splitter.SplitTextByPositions\",\"Splitter.SplitTextByRanges\",\"Splitter.SplitTextByRepeatedLengths\",\"Splitter.SplitTextByWhitespace\",\"Sql.Database\",\"Sql.Databases\",\"SqlExpression.SchemaFrom\",\"SqlExpression.ToExpression\",\"Sybase.Database\",\"Table.AddColumn\",\"Table.AddIndexColumn\",\"Table.AddJoinColumn\",\"Table.AddKey\",\"Table.AggregateTableColumn\",\"Table.AlternateRows\",\"Table.Buffer\",\"Table.Column\",\"Table.ColumnCount\",\"Table.ColumnNames\",\"Table.ColumnsOfType\",\"Table.Combine\",\"Table.CombineColumns\",\"Table.Contains\",\"Table.ContainsAll\",\"Table.ContainsAny\",\"Table.DemoteHeaders\",\"Table.Distinct\",\"Table.DuplicateColumn\",\"Table.ExpandListColumn\",\"Table.ExpandRecordColumn\",\"Table.ExpandTableColumn\",\"Table.FillDown\",\"Table.FillUp\",\"Table.FilterWithDataTable\",\"Table.FindText\",\"Table.First\",\"Table.FirstN\",\"Table.FirstValue\",\"Table.FromColumns\",\"Table.FromList\",\"Table.FromPartitions\",\"Table.FromRecords\",\"Table.FromRows\",\"Table.FromValue\",\"Table.Group\",\"Table.HasColumns\",\"Table.InsertRows\",\"Table.IsDistinct\",\"Table.IsEmpty\",\"Table.Join\",\"Table.Keys\",\"Table.Last\",\"Table.LastN\",\"Table.MatchesAllRows\",\"Table.MatchesAnyRows\",\"Table.Max\",\"Table.MaxN\",\"Table.Min\",\"Table.MinN\",\"Table.NestedJoin\",\"Table.Partition\",\"Table.PartitionValues\",\"Table.Pivot\",\"Table.PositionOf\",\"Table.PositionOfAny\",\"Table.PrefixColumns\",\"Table.Profile\",\"Table.PromoteHeaders\",\"Table.Range\",\"Table.RemoveColumns\",\"Table.RemoveFirstN\",\"Table.RemoveLastN\",\"Table.RemoveMatchingRows\",\"Table.RemoveRows\",\"Table.RemoveRowsWithErrors\",\"Table.RenameColumns\",\"Table.ReorderColumns\",\"Table.Repeat\",\"Table.ReplaceErrorValues\",\"Table.ReplaceKeys\",\"Table.ReplaceMatchingRows\",\"Table.ReplaceRelationshipIdentity\",\"Table.ReplaceRows\",\"Table.ReplaceValue\",\"Table.ReverseRows\",\"Table.RowCount\",\"Table.Schema\",\"Table.SelectColumns\",\"Table.SelectRows\",\"Table.SelectRowsWithErrors\",\"Table.SingleRow\",\"Table.Skip\",\"Table.Sort\",\"Table.SplitColumn\",\"Table.ToColumns\",\"Table.ToList\",\"Table.ToRecords\",\"Table.ToRows\",\"Table.TransformColumnNames\",\"Table.TransformColumnTypes\",\"Table.TransformColumns\",\"Table.TransformRows\",\"Table.Transpose\",\"Table.Unpivot\",\"Table.UnpivotOtherColumns\",\"Table.View\",\"Table.ViewFunction\",\"TableAction.DeleteRows\",\"TableAction.InsertRows\",\"TableAction.UpdateRows\",\"Tables.GetRelationships\",\"Teradata.Database\",\"Text.AfterDelimiter\",\"Text.At\",\"Text.BeforeDelimiter\",\"Text.BetweenDelimiters\",\"Text.Clean\",\"Text.Combine\",\"Text.Contains\",\"Text.End\",\"Text.EndsWith\",\"Text.Format\",\"Text.From\",\"Text.FromBinary\",\"Text.Insert\",\"Text.Length\",\"Text.Lower\",\"Text.Middle\",\"Text.NewGuid\",\"Text.PadEnd\",\"Text.PadStart\",\"Text.PositionOf\",\"Text.PositionOfAny\",\"Text.Proper\",\"Text.Range\",\"Text.Remove\",\"Text.RemoveRange\",\"Text.Repeat\",\"Text.Replace\",\"Text.ReplaceRange\",\"Text.Select\",\"Text.Split\",\"Text.SplitAny\",\"Text.Start\",\"Text.StartsWith\",\"Text.ToBinary\",\"Text.ToList\",\"Text.Trim\",\"Text.TrimEnd\",\"Text.TrimStart\",\"Text.Upper\",\"Time.EndOfHour\",\"Time.From\",\"Time.FromText\",\"Time.Hour\",\"Time.Minute\",\"Time.Second\",\"Time.StartOfHour\",\"Time.ToRecord\",\"Time.ToText\",\"Type.AddTableKey\",\"Type.ClosedRecord\",\"Type.Facets\",\"Type.ForFunction\",\"Type.ForRecord\",\"Type.FunctionParameters\",\"Type.FunctionRequiredParameters\",\"Type.FunctionReturn\",\"Type.Is\",\"Type.IsNullable\",\"Type.IsOpenRecord\",\"Type.ListItem\",\"Type.NonNullable\",\"Type.OpenRecord\",\"Type.RecordFields\",\"Type.ReplaceFacets\",\"Type.ReplaceTableKeys\",\"Type.TableColumn\",\"Type.TableKeys\",\"Type.TableRow\",\"Type.TableSchema\",\"Type.Union\",\"Uri.BuildQueryString\",\"Uri.Combine\",\"Uri.EscapeDataString\",\"Uri.Parts\",\"Value.Add\",\"Value.As\",\"Value.Compare\",\"Value.Divide\",\"Value.Equals\",\"Value.Firewall\",\"Value.FromText\",\"Value.Is\",\"Value.Metadata\",\"Value.Multiply\",\"Value.NativeQuery\",\"Value.NullableEquals\",\"Value.RemoveMetadata\",\"Value.ReplaceMetadata\",\"Value.ReplaceType\",\"Value.Subtract\",\"Value.Type\",\"ValueAction.NativeStatement\",\"ValueAction.Replace\",\"Variable.Value\",\"Web.Contents\",\"Web.Page\",\"WebAction.Request\",\"Xml.Document\",\"Xml.Tables\"],builtinConstants:[\"BinaryEncoding.Base64\",\"BinaryEncoding.Hex\",\"BinaryOccurrence.Optional\",\"BinaryOccurrence.Repeating\",\"BinaryOccurrence.Required\",\"ByteOrder.BigEndian\",\"ByteOrder.LittleEndian\",\"Compression.Deflate\",\"Compression.GZip\",\"CsvStyle.QuoteAfterDelimiter\",\"CsvStyle.QuoteAlways\",\"Culture.Current\",\"Day.Friday\",\"Day.Monday\",\"Day.Saturday\",\"Day.Sunday\",\"Day.Thursday\",\"Day.Tuesday\",\"Day.Wednesday\",\"ExtraValues.Error\",\"ExtraValues.Ignore\",\"ExtraValues.List\",\"GroupKind.Global\",\"GroupKind.Local\",\"JoinAlgorithm.Dynamic\",\"JoinAlgorithm.LeftHash\",\"JoinAlgorithm.LeftIndex\",\"JoinAlgorithm.PairwiseHash\",\"JoinAlgorithm.RightHash\",\"JoinAlgorithm.RightIndex\",\"JoinAlgorithm.SortMerge\",\"JoinKind.FullOuter\",\"JoinKind.Inner\",\"JoinKind.LeftAnti\",\"JoinKind.LeftOuter\",\"JoinKind.RightAnti\",\"JoinKind.RightOuter\",\"JoinSide.Left\",\"JoinSide.Right\",\"MissingField.Error\",\"MissingField.Ignore\",\"MissingField.UseNull\",\"Number.E\",\"Number.Epsilon\",\"Number.NaN\",\"Number.NegativeInfinity\",\"Number.PI\",\"Number.PositiveInfinity\",\"Occurrence.All\",\"Occurrence.First\",\"Occurrence.Last\",\"Occurrence.Optional\",\"Occurrence.Repeating\",\"Occurrence.Required\",\"Order.Ascending\",\"Order.Descending\",\"Precision.Decimal\",\"Precision.Double\",\"QuoteStyle.Csv\",\"QuoteStyle.None\",\"RelativePosition.FromEnd\",\"RelativePosition.FromStart\",\"RoundingMode.AwayFromZero\",\"RoundingMode.Down\",\"RoundingMode.ToEven\",\"RoundingMode.TowardZero\",\"RoundingMode.Up\",\"SapHanaDistribution.All\",\"SapHanaDistribution.Connection\",\"SapHanaDistribution.Off\",\"SapHanaDistribution.Statement\",\"SapHanaRangeOperator.Equals\",\"SapHanaRangeOperator.GreaterThan\",\"SapHanaRangeOperator.GreaterThanOrEquals\",\"SapHanaRangeOperator.LessThan\",\"SapHanaRangeOperator.LessThanOrEquals\",\"SapHanaRangeOperator.NotEquals\",\"TextEncoding.Ascii\",\"TextEncoding.BigEndianUnicode\",\"TextEncoding.Unicode\",\"TextEncoding.Utf16\",\"TextEncoding.Utf8\",\"TextEncoding.Windows\",\"TraceLevel.Critical\",\"TraceLevel.Error\",\"TraceLevel.Information\",\"TraceLevel.Verbose\",\"TraceLevel.Warning\",\"WebMethod.Delete\",\"WebMethod.Get\",\"WebMethod.Head\",\"WebMethod.Patch\",\"WebMethod.Post\",\"WebMethod.Put\"],builtinTypes:[\"Action.Type\",\"Any.Type\",\"Binary.Type\",\"BinaryEncoding.Type\",\"BinaryOccurrence.Type\",\"Byte.Type\",\"ByteOrder.Type\",\"Character.Type\",\"Compression.Type\",\"CsvStyle.Type\",\"Currency.Type\",\"Date.Type\",\"DateTime.Type\",\"DateTimeZone.Type\",\"Day.Type\",\"Decimal.Type\",\"Double.Type\",\"Duration.Type\",\"ExtraValues.Type\",\"Function.Type\",\"GroupKind.Type\",\"Guid.Type\",\"Int16.Type\",\"Int32.Type\",\"Int64.Type\",\"Int8.Type\",\"JoinAlgorithm.Type\",\"JoinKind.Type\",\"JoinSide.Type\",\"List.Type\",\"Logical.Type\",\"MissingField.Type\",\"None.Type\",\"Null.Type\",\"Number.Type\",\"Occurrence.Type\",\"Order.Type\",\"Password.Type\",\"Percentage.Type\",\"Precision.Type\",\"QuoteStyle.Type\",\"Record.Type\",\"RelativePosition.Type\",\"RoundingMode.Type\",\"SapHanaDistribution.Type\",\"SapHanaRangeOperator.Type\",\"Single.Type\",\"Table.Type\",\"Text.Type\",\"TextEncoding.Type\",\"Time.Type\",\"TraceLevel.Type\",\"Type.Type\",\"Uri.Type\",\"WebMethod.Type\"],tokenizer:{root:[[/#\"[\\w \\.]+\"/,\"identifier.quote\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+([eE][\\-+]?\\d+)?/,\"number\"],[/(#?[a-z]+)\\b/,{cases:{\"@typeKeywords\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@constructors\":\"constructor\",\"@operatorKeywords\":\"operators\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.Type)\\b/,{cases:{\"@builtinTypes\":\"type\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.[A-Z][a-zA-Z0-9]+)\\b/,{cases:{\"@builtinFunctions\":\"keyword.function\",\"@builtinConstants\":\"constant\",\"@default\":\"identifier\"}}],[/\\b([a-zA-Z_][\\w\\.]*)\\b/,\"identifier\"],{include:\"@whitespace\"},{include:\"@comments\"},{include:\"@strings\"},[/[{}()\\[\\]]/,\"@brackets\"],[/([=\\+<>\\-\\*&@\\?\\/!])|([<>]=)|(<>)|(=>)|(\\.\\.\\.)|(\\.\\.)/,\"operators\"],[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],strings:[['\"',\"string\",\"@string\"]],string:[['\"\"',\"string.escape\"],['\"',\"string\",\"@pop\"],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/powershell/powershell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/powershell/powershell\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"#\",blockComment:[\"<#\",\"#>\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},n.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".ps1\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"begin\",\"break\",\"catch\",\"class\",\"continue\",\"data\",\"define\",\"do\",\"dynamicparam\",\"else\",\"elseif\",\"end\",\"exit\",\"filter\",\"finally\",\"for\",\"foreach\",\"from\",\"function\",\"if\",\"in\",\"param\",\"process\",\"return\",\"switch\",\"throw\",\"trap\",\"try\",\"until\",\"using\",\"var\",\"while\",\"workflow\",\"parallel\",\"sequence\",\"inlinescript\",\"configuration\"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\\-*\\/\\^;\\.,]+/,escapes:/`(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\\w-]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/^:\\w*/,\"metatag\"],[/\\$(\\{((global|local|private|script|using):)?[\\w]+\\}|((global|local|private|script|using):)?[\\w]+)/,\"variable\"],[/<#/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\\@\"/,\"string\",'@herestring.\"'],[/\\@'/,\"string\",\"@herestring.'\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\$`]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/`./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/\\$[\\w]+$/,{cases:{'$S2==\"':{token:\"variable\",next:\"@popall\"},\"@default\":{token:\"string\",next:\"@popall\"}}}],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}}}]],herestring:[[/^\\s*([\"'])@/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^\\$`]+/,\"string\"],[/@escapes/,\"string.escape\"],[/`./,\"string.escape.invalid\"],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}]],comment:[[/[^#\\.]+/,\"comment\"],[/#>/,\"comment\",\"@pop\"],[/(\\.)(@helpKeywords)(?!\\w)/,{token:\"comment.keyword.$2\"}],[/[\\.#]/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/pug/pug.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/pug/pug\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}],folding:{offSide:!0}},t.language={defaultToken:\"\",tokenPostfix:\".pug\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"append\",\"block\",\"case\",\"default\",\"doctype\",\"each\",\"else\",\"extends\",\"for\",\"if\",\"in\",\"include\",\"mixin\",\"typeof\",\"unless\",\"var\",\"when\"],tags:[\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"keygen\",\"kbd\",\"label\",\"li\",\"link\",\"map\",\"mark\",\"menu\",\"meta\",\"meter\",\"nav\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"tracks\",\"tt\",\"u\",\"ul\",\"video\",\"wbr\"],symbols:/[\\+\\-\\*\\%\\&\\|\\!\\=\\/\\.\\,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)([a-zA-Z_-][\\w-]*)/,{cases:{\"$2@tags\":{cases:{\"@eos\":[\"\",\"tag\"],\"@default\":[\"\",{token:\"tag\",next:\"@tag.$1\"}]}},\"$2@keywords\":[\"\",{token:\"keyword.$2\"}],\"@default\":[\"\",\"\"]}}],[/^(\\s*)(#[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.id\"],\"@default\":[\"\",{token:\"tag.id\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\.[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.class\"],\"@default\":[\"\",{token:\"tag.class\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\|.*)$/,\"\"],{include:\"@whitespace\"},[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\d+/,\"number\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],tag:[[/(\\.)(\\s*$)/,[{token:\"delimiter\",next:\"@blockText.$S2.\"},\"\"]],[/\\s+/,{token:\"\",next:\"@simpleText\"}],[/#[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.id\",next:\"@pop\"},\"@default\":\"tag.id\"}}],[/\\.[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.class\",next:\"@pop\"},\"@default\":\"tag.class\"}}],[/\\(/,{token:\"delimiter.parenthesis\",next:\"@attributeList\"}]],simpleText:[[/[^#]+$/,{token:\"\",next:\"@popall\"}],[/[^#]+/,{token:\"\"}],[/(#{)([^}]*)(})/,{cases:{\"@eos\":[\"interpolation.delimiter\",\"interpolation\",{token:\"interpolation.delimiter\",next:\"@popall\"}],\"@default\":[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]}}],[/#$/,{token:\"\",next:\"@popall\"}],[/#/,\"\"]],attributeList:[[/\\s+/,\"\"],[/(\\w+)(\\s*=\\s*)(\"|')/,[\"attribute.name\",\"delimiter\",{token:\"attribute.value\",next:\"@value.$3\"}]],[/\\w+/,\"attribute.name\"],[/,/,{cases:{\"@eos\":{token:\"attribute.delimiter\",next:\"@popall\"},\"@default\":\"attribute.delimiter\"}}],[/\\)$/,{token:\"delimiter.parenthesis\",next:\"@popall\"}],[/\\)/,{token:\"delimiter.parenthesis\",next:\"@pop\"}]],whitespace:[[/^(\\s*)(\\/\\/.*)$/,{token:\"comment\",next:\"@blockText.$1.comment\"}],[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],blockText:[[/^\\s+.*$/,{cases:{\"($S2\\\\s+.*$)\":{token:\"$S3\"},\"@default\":{token:\"@rematch\",next:\"@popall\"}}}],[/./,{token:\"@rematch\",next:\"@popall\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],string:[[/[^\\\\\"'#]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/(#{)([^}]*)(})/,[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]],[/#/,\"string\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{token:\"string\"}}}]],value:[[/[^\\\\\"']+/,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"attribute.value\",next:\"@pop\"},\"@default\":{token:\"attribute.value\"}}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/python/python.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/python/python\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=\"undefined\"==typeof monaco?self.monaco:monaco;n.conf={comments:{lineComment:\"#\",blockComment:[\"'''\",\"'''\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(\"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$\"),action:{indentAction:t.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".python\",keywords:[\"and\",\"as\",\"assert\",\"break\",\"class\",\"continue\",\"def\",\"del\",\"elif\",\"else\",\"except\",\"exec\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\"is\",\"lambda\",\"None\",\"not\",\"or\",\"pass\",\"print\",\"raise\",\"return\",\"self\",\"try\",\"while\",\"with\",\"yield\",\"int\",\"float\",\"long\",\"complex\",\"hex\",\"abs\",\"all\",\"any\",\"apply\",\"basestring\",\"bin\",\"bool\",\"buffer\",\"bytearray\",\"callable\",\"chr\",\"classmethod\",\"cmp\",\"coerce\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"execfile\",\"file\",\"filter\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"id\",\"input\",\"intern\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"locals\",\"list\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"reversed\",\"range\",\"raw_input\",\"reduce\",\"reload\",\"repr\",\"reversed\",\"round\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"unichr\",\"unicode\",\"vars\",\"xrange\",\"zip\",\"True\",\"False\",\"__dict__\",\"__methods__\",\"__members__\",\"__class__\",\"__bases__\",\"__name__\",\"__mro__\",\"__subclasses__\",\"__init__\",\"__import__\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()]/,\"@brackets\"],[/@[a-zA-Z]\\w*/,\"tag\"],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}]],whitespace:[[/\\s+/,\"white\"],[/(^#.*$)/,\"comment\"],[/'''/,\"string\",\"@endDocString\"],[/\"\"\"/,\"string\",\"@endDblDocString\"]],endDocString:[[/[^']+/,\"string\"],[/\\\\'/,\"string\"],[/'''/,\"string\",\"@popall\"],[/'/,\"string\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string\",\"@popall\"],[/\"/,\"string\"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\\d)+[lL]?/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?[jJ]?[lL]?/,\"number\"]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/r/r.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/r/r\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o.language={defaultToken:\"\",tokenPostfix:\".r\",roxygen:[\"@param\",\"@return\",\"@name\",\"@rdname\",\"@examples\",\"@include\",\"@docType\",\"@S3method\",\"@TODO\",\"@aliases\",\"@alias\",\"@assignee\",\"@author\",\"@callGraphDepth\",\"@callGraph\",\"@callGraphPrimitives\",\"@concept\",\"@exportClass\",\"@exportMethod\",\"@exportPattern\",\"@export\",\"@formals\",\"@format\",\"@importClassesFrom\",\"@importFrom\",\"@importMethodsFrom\",\"@import\",\"@keywords\",\"@method\",\"@nord\",\"@note\",\"@references\",\"@seealso\",\"@setClass\",\"@slot\",\"@source\",\"@title\",\"@usage\"],constants:[\"NULL\",\"FALSE\",\"TRUE\",\"NA\",\"Inf\",\"NaN \",\"NA_integer_\",\"NA_real_\",\"NA_complex_\",\"NA_character_ \",\"T\",\"F\",\"LETTERS\",\"letters\",\"month.abb\",\"month.name\",\"pi\",\"R.version.string\"],keywords:[\"break\",\"next\",\"return\",\"if\",\"else\",\"for\",\"in\",\"repeat\",\"while\",\"array\",\"category\",\"character\",\"complex\",\"double\",\"function\",\"integer\",\"list\",\"logical\",\"matrix\",\"numeric\",\"vector\",\"data.frame\",\"factor\",\"library\",\"require\",\"attach\",\"detach\",\"source\"],special:[\"\\\\n\",\"\\\\r\",\"\\\\t\",\"\\\\b\",\"\\\\a\",\"\\\\f\",\"\\\\v\",\"\\\\'\",'\\\\\"',\"\\\\\\\\\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@numbers\"},{include:\"@strings\"},[/[{}\\[\\]()]/,\"@brackets\"],{include:\"@operators\"},[/#'/,\"comment.doc\",\"@roxygen\"],[/(^#.*$)/,\"comment\"],[/\\s+/,\"white\"],[/[,:;]/,\"delimiter\"],[/@[a-zA-Z]\\w*/,\"tag\"],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],roxygen:[[/@\\w+/,{cases:{\"@roxygen\":\"tag\",\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/\\s+/,{cases:{\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/.*/,{token:\"comment.doc\",next:\"@pop\"}]],numbers:[[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?/,\"number\"]],operators:[[/<{1,2}-/,\"operator\"],[/->{1,2}/,\"operator\"],[/%[^%\\s]+%/,\"operator\"],[/\\*\\*/,\"operator\"],[/%%/,\"operator\"],[/&&/,\"operator\"],[/\\|\\|/,\"operator\"],[/<</,\"operator\"],[/>>/,\"operator\"],[/[-+=&|!<>^~*/:$]/,\"operator\"]],strings:[[/'/,\"string.escape\",\"@stringBody\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/'/,\"string.escape\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/\"/,\"string.escape\",\"@popall\"],[/./,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/razor/razor.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/razor/razor\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"undefined\"==typeof monaco?self.monaco:monaco,o=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(\"<(?!(?:\"+o.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(?!(?:\"+o.join(\"|\")+\"))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:r.languages.IndentAction.Indent}}]},t.language={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/@@/],[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/[^<@]+/]],doctype:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],razorInSimpleState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\"}]],razorInEmbeddedState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],razorBlockCommentTopLevel:[[/\\*@/,\"@rematch\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorBlockComment:[[/\\*@/,\"comment.cs\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorRootTopLevel:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/[})]/,\"@rematch\",\"@pop\"],{include:\"razorCommon\"}],razorRoot:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/\\}/,\"delimiter.bracket.cs\",\"@pop\"],[/\\)/,\"delimiter.parenthesis.cs\",\"@pop\"],{include:\"razorCommon\"}],razorCommon:[[/[a-zA-Z_]\\w*/,{cases:{\"@razorKeywords\":{token:\"keyword.cs\"},\"@default\":\"identifier.cs\"}}],[/[\\[\\]]/,\"delimiter.array.cs\"],[/[ \\t\\r\\n]+/],[/\\/\\/.*$/,\"comment.cs\"],[/@\\*/,\"comment.cs\",\"@razorBlockComment\"],[/\"([^\"]*)\"/,\"string.cs\"],[/'([^']*)'/,\"string.cs\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(\\w+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<\\/)(\\w+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,]/,\"delimiter.cs\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.cs\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.cs\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.cs\"],[/0[0-7']*[0-7]/,\"number.octal.cs\"],[/0[bB][0-1']*[0-1]/,\"number.binary.cs\"],[/\\d[\\d']*/,\"number.cs\"],[/\\d/,\"number.cs\"]]},razorKeywords:[\"abstract\",\"as\",\"async\",\"await\",\"base\",\"bool\",\"break\",\"by\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"descending\",\"explicit\",\"event\",\"extern\",\"else\",\"enum\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"from\",\"goto\",\"group\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"into\",\"is\",\"lock\",\"long\",\"nameof\",\"new\",\"null\",\"namespace\",\"object\",\"operator\",\"out\",\"override\",\"orderby\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"switch\",\"struct\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"select\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"volatile\",\"void\",\"when\",\"while\",\"where\",\"yield\",\"model\",\"inject\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/redis/redis.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/redis/redis\",[\"require\",\"exports\"],(function(E,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},e.language={defaultToken:\"\",tokenPostfix:\".redis\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"APPEND\",\"AUTH\",\"BGREWRITEAOF\",\"BGSAVE\",\"BITCOUNT\",\"BITFIELD\",\"BITOP\",\"BITPOS\",\"BLPOP\",\"BRPOP\",\"BRPOPLPUSH\",\"CLIENT\",\"KILL\",\"LIST\",\"GETNAME\",\"PAUSE\",\"REPLY\",\"SETNAME\",\"CLUSTER\",\"ADDSLOTS\",\"COUNT-FAILURE-REPORTS\",\"COUNTKEYSINSLOT\",\"DELSLOTS\",\"FAILOVER\",\"FORGET\",\"GETKEYSINSLOT\",\"INFO\",\"KEYSLOT\",\"MEET\",\"NODES\",\"REPLICATE\",\"RESET\",\"SAVECONFIG\",\"SET-CONFIG-EPOCH\",\"SETSLOT\",\"SLAVES\",\"SLOTS\",\"COMMAND\",\"COUNT\",\"GETKEYS\",\"CONFIG\",\"GET\",\"REWRITE\",\"SET\",\"RESETSTAT\",\"DBSIZE\",\"DEBUG\",\"OBJECT\",\"SEGFAULT\",\"DECR\",\"DECRBY\",\"DEL\",\"DISCARD\",\"DUMP\",\"ECHO\",\"EVAL\",\"EVALSHA\",\"EXEC\",\"EXISTS\",\"EXPIRE\",\"EXPIREAT\",\"FLUSHALL\",\"FLUSHDB\",\"GEOADD\",\"GEOHASH\",\"GEOPOS\",\"GEODIST\",\"GEORADIUS\",\"GEORADIUSBYMEMBER\",\"GETBIT\",\"GETRANGE\",\"GETSET\",\"HDEL\",\"HEXISTS\",\"HGET\",\"HGETALL\",\"HINCRBY\",\"HINCRBYFLOAT\",\"HKEYS\",\"HLEN\",\"HMGET\",\"HMSET\",\"HSET\",\"HSETNX\",\"HSTRLEN\",\"HVALS\",\"INCR\",\"INCRBY\",\"INCRBYFLOAT\",\"KEYS\",\"LASTSAVE\",\"LINDEX\",\"LINSERT\",\"LLEN\",\"LPOP\",\"LPUSH\",\"LPUSHX\",\"LRANGE\",\"LREM\",\"LSET\",\"LTRIM\",\"MGET\",\"MIGRATE\",\"MONITOR\",\"MOVE\",\"MSET\",\"MSETNX\",\"MULTI\",\"PERSIST\",\"PEXPIRE\",\"PEXPIREAT\",\"PFADD\",\"PFCOUNT\",\"PFMERGE\",\"PING\",\"PSETEX\",\"PSUBSCRIBE\",\"PUBSUB\",\"PTTL\",\"PUBLISH\",\"PUNSUBSCRIBE\",\"QUIT\",\"RANDOMKEY\",\"READONLY\",\"READWRITE\",\"RENAME\",\"RENAMENX\",\"RESTORE\",\"ROLE\",\"RPOP\",\"RPOPLPUSH\",\"RPUSH\",\"RPUSHX\",\"SADD\",\"SAVE\",\"SCARD\",\"SCRIPT\",\"FLUSH\",\"LOAD\",\"SDIFF\",\"SDIFFSTORE\",\"SELECT\",\"SETBIT\",\"SETEX\",\"SETNX\",\"SETRANGE\",\"SHUTDOWN\",\"SINTER\",\"SINTERSTORE\",\"SISMEMBER\",\"SLAVEOF\",\"SLOWLOG\",\"SMEMBERS\",\"SMOVE\",\"SORT\",\"SPOP\",\"SRANDMEMBER\",\"SREM\",\"STRLEN\",\"SUBSCRIBE\",\"SUNION\",\"SUNIONSTORE\",\"SWAPDB\",\"SYNC\",\"TIME\",\"TOUCH\",\"TTL\",\"TYPE\",\"UNSUBSCRIBE\",\"UNLINK\",\"UNWATCH\",\"WAIT\",\"WATCH\",\"ZADD\",\"ZCARD\",\"ZCOUNT\",\"ZINCRBY\",\"ZINTERSTORE\",\"ZLEXCOUNT\",\"ZRANGE\",\"ZRANGEBYLEX\",\"ZREVRANGEBYLEX\",\"ZRANGEBYSCORE\",\"ZRANK\",\"ZREM\",\"ZREMRANGEBYLEX\",\"ZREMRANGEBYRANK\",\"ZREMRANGEBYSCORE\",\"ZREVRANGE\",\"ZREVRANGEBYSCORE\",\"ZREVRANK\",\"ZSCORE\",\"ZUNIONSTORE\",\"SCAN\",\"SSCAN\",\"HSCAN\",\"ZSCAN\"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/redshift/redshift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/redshift/redshift\",[\"require\",\"exports\"],(function(e,_){\"use strict\";Object.defineProperty(_,\"__esModule\",{value:!0}),_.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},_.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"AES128\",\"AES256\",\"ALL\",\"ALLOWOVERWRITE\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARRAY\",\"AS\",\"ASC\",\"AUTHORIZATION\",\"BACKUP\",\"BETWEEN\",\"BINARY\",\"BLANKSASNULL\",\"BOTH\",\"BYTEDICT\",\"BZIP2\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"CONSTRAINT\",\"CREATE\",\"CREDENTIALS\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURRENT_USER_ID\",\"DEFAULT\",\"DEFERRABLE\",\"DEFLATE\",\"DEFRAG\",\"DELTA\",\"DELTA32K\",\"DESC\",\"DISABLE\",\"DISTINCT\",\"DO\",\"ELSE\",\"EMPTYASNULL\",\"ENABLE\",\"ENCODE\",\"ENCRYPT\",\"ENCRYPTION\",\"END\",\"EXCEPT\",\"EXPLICIT\",\"FALSE\",\"FOR\",\"FOREIGN\",\"FREEZE\",\"FROM\",\"FULL\",\"GLOBALDICT256\",\"GLOBALDICT64K\",\"GRANT\",\"GROUP\",\"GZIP\",\"HAVING\",\"IDENTITY\",\"IGNORE\",\"ILIKE\",\"IN\",\"INITIALLY\",\"INNER\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"LEADING\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LUN\",\"LUNS\",\"LZO\",\"LZOP\",\"MINUS\",\"MOSTLY13\",\"MOSTLY32\",\"MOSTLY8\",\"NATURAL\",\"NEW\",\"NOT\",\"NOTNULL\",\"NULL\",\"NULLS\",\"OFF\",\"OFFLINE\",\"OFFSET\",\"OID\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OR\",\"ORDER\",\"OUTER\",\"OVERLAPS\",\"PARALLEL\",\"PARTITION\",\"PERCENT\",\"PERMISSIONS\",\"PLACING\",\"PRIMARY\",\"RAW\",\"READRATIO\",\"RECOVER\",\"REFERENCES\",\"RESPECT\",\"REJECTLOG\",\"RESORT\",\"RESTORE\",\"RIGHT\",\"SELECT\",\"SESSION_USER\",\"SIMILAR\",\"SNAPSHOT\",\"SOME\",\"SYSDATE\",\"SYSTEM\",\"TABLE\",\"TAG\",\"TDES\",\"TEXT255\",\"TEXT32K\",\"THEN\",\"TIMESTAMP\",\"TO\",\"TOP\",\"TRAILING\",\"TRUE\",\"TRUNCATECOLUMNS\",\"UNION\",\"UNIQUE\",\"USER\",\"USING\",\"VERBOSE\",\"WALLET\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"current_schema\",\"current_schemas\",\"has_database_privilege\",\"has_schema_privilege\",\"has_table_privilege\",\"age\",\"current_time\",\"current_timestamp\",\"localtime\",\"isfinite\",\"now\",\"ascii\",\"get_bit\",\"get_byte\",\"set_bit\",\"set_byte\",\"to_ascii\",\"approximate percentile_disc\",\"avg\",\"count\",\"listagg\",\"max\",\"median\",\"min\",\"percentile_cont\",\"stddev_samp\",\"stddev_pop\",\"sum\",\"var_samp\",\"var_pop\",\"bit_and\",\"bit_or\",\"bool_and\",\"bool_or\",\"cume_dist\",\"first_value\",\"lag\",\"last_value\",\"lead\",\"nth_value\",\"ratio_to_report\",\"dense_rank\",\"ntile\",\"percent_rank\",\"rank\",\"row_number\",\"case\",\"coalesce\",\"decode\",\"greatest\",\"least\",\"nvl\",\"nvl2\",\"nullif\",\"add_months\",\"at time zone\",\"convert_timezone\",\"current_date\",\"date_cmp\",\"date_cmp_timestamp\",\"date_cmp_timestamptz\",\"date_part_year\",\"dateadd\",\"datediff\",\"date_part\",\"date_trunc\",\"extract\",\"getdate\",\"interval_cmp\",\"last_day\",\"months_between\",\"next_day\",\"sysdate\",\"timeofday\",\"timestamp_cmp\",\"timestamp_cmp_date\",\"timestamp_cmp_timestamptz\",\"timestamptz_cmp\",\"timestamptz_cmp_date\",\"timestamptz_cmp_timestamp\",\"timezone\",\"to_timestamp\",\"trunc\",\"abs\",\"acos\",\"asin\",\"atan\",\"atan2\",\"cbrt\",\"ceil\",\"ceiling\",\"checksum\",\"cos\",\"cot\",\"degrees\",\"dexp\",\"dlog1\",\"dlog10\",\"exp\",\"floor\",\"ln\",\"log\",\"mod\",\"pi\",\"power\",\"radians\",\"random\",\"round\",\"sin\",\"sign\",\"sqrt\",\"tan\",\"to_hex\",\"bpcharcmp\",\"btrim\",\"bttext_pattern_cmp\",\"char_length\",\"character_length\",\"charindex\",\"chr\",\"concat\",\"crc32\",\"func_sha1\",\"initcap\",\"left and rights\",\"len\",\"length\",\"lower\",\"lpad and rpads\",\"ltrim\",\"md5\",\"octet_length\",\"position\",\"quote_ident\",\"quote_literal\",\"regexp_count\",\"regexp_instr\",\"regexp_replace\",\"regexp_substr\",\"repeat\",\"replace\",\"replicate\",\"reverse\",\"rtrim\",\"split_part\",\"strpos\",\"strtol\",\"substring\",\"textlen\",\"translate\",\"trim\",\"upper\",\"cast\",\"convert\",\"to_char\",\"to_date\",\"to_number\",\"json_array_length\",\"json_extract_array_element_text\",\"json_extract_path_text\",\"current_setting\",\"pg_cancel_backend\",\"pg_terminate_backend\",\"set_config\",\"current_database\",\"current_user\",\"current_user_id\",\"pg_backend_pid\",\"pg_last_copy_count\",\"pg_last_copy_id\",\"pg_last_query_id\",\"pg_last_unload_count\",\"session_user\",\"slice_num\",\"user\",\"version\",\"abbrev\",\"acosd\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"asind\",\"atan2d\",\"atand\",\"bit\",\"bit_length\",\"bound_box\",\"box\",\"brin_summarize_new_values\",\"broadcast\",\"cardinality\",\"center\",\"circle\",\"clock_timestamp\",\"col_description\",\"concat_ws\",\"convert_from\",\"convert_to\",\"corr\",\"cosd\",\"cotd\",\"covar_pop\",\"covar_samp\",\"current_catalog\",\"current_query\",\"current_role\",\"currval\",\"cursor_to_xml\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"family\",\"format\",\"format_type\",\"generate_series\",\"generate_subscripts\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"isclosed\",\"isempty\",\"isopen\",\"json_agg\",\"json_object\",\"json_object_agg\",\"json_populate_record\",\"json_populate_recordset\",\"json_to_record\",\"json_to_recordset\",\"jsonb_agg\",\"jsonb_object_agg\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lastval\",\"left\",\"line\",\"localtimestamp\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"masklen\",\"mode\",\"netmask\",\"network\",\"nextval\",\"npoints\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_client_encoding\",\"pg_collation_is_visible\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_xlog_replay_paused\",\"pg_last_committed_xact\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_dir\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_postmaster_start_time\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_rotate_logfile\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_start_backup\",\"pg_stat_file\",\"pg_stop_backup\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_xact_commit_timestamp\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"pqserverversion\",\"query_to_xml\",\"querytree\",\"quote_nullable\",\"radius\",\"range_merge\",\"regexp_matches\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"right\",\"row_security_active\",\"row_to_json\",\"rpad\",\"scale\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"shobj_description\",\"sind\",\"sprintf\",\"statement_timestamp\",\"stddev\",\"string_agg\",\"string_to_array\",\"strip\",\"substr\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"tand\",\"text\",\"to_json\",\"to_regclass\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_visible_in_snapshot\",\"unnest\",\"upper_inc\",\"upper_inf\",\"variance\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/restructuredtext/restructuredtext.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/restructuredtext/restructuredtext\",[\"require\",\"exports\"],(function(e,s){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?region\\\\b.*--\\x3e\"),end:new RegExp(\"^\\\\s*\\x3c!--\\\\s*#?endregion\\\\b.*--\\x3e\")}}},s.language={defaultToken:\"\",tokenPostfix:\".rst\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],alphanumerics:/[A-Za-z0-9]/,alphanumericsplus:/[A-Za-z0-9-_+:.]/,simpleRefNameWithoutBq:/(?:@alphanumerics@alphanumericsplus*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@simpleRefNameWithoutBq`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefName(?:\\s@simpleRefName)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!\"#$%&'()*+,-./:;<=>?@\\[\\]^_`{|}~]|[\\s])/,precedingChars:/(?:[ -:/'\"<([{])/,followingChars:/(?:[ -.,:;!?/'\")\\]}>]|$)/,punctuation:/(=|-|~|`|#|\"|\\^|\\+|\\*|:|\\.|'|_|\\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,\"keyword\"],[/^\\s*([\\*\\-+‣•]|[a-zA-Z0-9]+\\.|\\([a-zA-Z0-9]+\\)|[a-zA-Z0-9]+\\))\\s/,\"keyword\"],[/([ ]::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],[/(::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],{include:\"@tables\"},{include:\"@explicitMarkupBlocks\"},{include:\"@inlineMarkup\"}],explicitMarkupBlocks:[{include:\"@citations\"},{include:\"@footnotes\"},[/^(\\.\\.\\s)(@simpleRefName)(::\\s)(.*)$/,[{token:\"\",next:\"subsequentLines\"},\"keyword\",\"\",\"\"]],[/^(\\.\\.)(\\s+)(_)(@simpleRefName)(:)(\\s+)(.*)/,[{token:\"\",next:\"hyperlinks\"},\"\",\"\",\"string.link\",\"\",\"\",\"string.link\"]],[/^((?:(?:\\.\\.)(?:\\s+))?)(__)(:)(\\s+)(.*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"\",\"\",\"string.link\"]],[/^(__\\s+)(.+)/,[\"\",\"string.link\"]],[/^(\\.\\.)( \\|)([^| ]+[^|]*[^| ]*)(\\| )(@simpleRefName)(:: .*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"string.link\",\"\",\"keyword\",\"\"],\"@rawBlocks\"],[/(\\|)([^| ]+[^|]*[^| ]*)(\\|_{0,2})/,[\"\",\"string.link\",\"\"]],[/^(\\.\\.)([ ].*)$/,[{token:\"\",next:\"@comments\"},\"comment\"]]],inlineMarkup:[{include:\"@citationsReference\"},{include:\"@footnotesReference\"},[/(@simpleRefName)(_{1,2})/,[\"string.link\",\"\"]],[/(`)([^<`]+\\s+)(<)(.*)(>)(`)(_)/,[\"\",\"string.link\",\"\",\"string.link\",\"\",\"\",\"\"]],[/\\*\\*([^\\\\*]|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\*[^*]+\\*/,\"emphasis\"],[/(``)((?:[^`]|\\`(?!`))+)(``)/,[\"\",\"keyword\",\"\"]],[/(__\\s+)(.+)/,[\"\",\"keyword\"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,[\"\",\"keyword\",\"\",\"\",\"\"]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,[\"\",\"\",\"\",\"keyword\",\"\"]],[/(`)([^`]+)(`)/,\"\"],[/(_`)(@phrase)(`)/,[\"\",\"string.link\",\"\"]]],citations:[[/^(\\.\\.\\s+\\[)((?:@citationName))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],citationsReference:[[/(\\[)(@citationName)(\\]_)/,[\"\",\"string.link\",\"\"]]],footnotes:[[/^(\\.\\.\\s+\\[)((?:[0-9]+))(\\]\\s+.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\"]],[/^(\\.\\.\\s+\\[)((?:#@simpleRefName?))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]],[/^(\\.\\.\\s+\\[)((?:\\*))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],footnotesReference:[[/(\\[)([0-9]+)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(#@simpleRefName?)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(\\*)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]]],blankLineOfLiteralBlocks:[[/^$/,\"\",\"@subsequentLinesOfLiteralBlocks\"],[/^.*$/,\"\",\"@pop\"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,[\"keyword\",\"\"]],[/^(?!blockLiteralStart)/,\"\",\"@popall\"]],subsequentLines:[[/^[\\s]+.*/,\"\"],[/^(?!\\s)/,\"\",\"@pop\"]],hyperlinks:[[/^[\\s]+.*/,\"string.link\"],[/^(?!\\s)/,\"\",\"@pop\"]],comments:[[/^[\\s]+.*/,\"comment\"],[/^(?!\\s)/,\"\",\"@pop\"]],tables:[[/\\+-[+-]+/,\"keyword\"],[/\\+=[+=]+/,\"keyword\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/ruby/ruby.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/ruby/ruby\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"#\",blockComment:[\"=begin\",\"=end\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],indentationRules:{increaseIndentPattern:new RegExp(\"^\\\\s*((begin|class|(private|protected)\\\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\\\sdo\\\\b)|([^#]*=\\\\s*(case|if|unless)))\\\\b([^#\\\\{;]|(\\\"|'|/).*\\\\4)*(#.*)?$\"),decreaseIndentPattern:new RegExp(\"^\\\\s*([}\\\\]]([,)]?\\\\s*(#|$)|\\\\.[a-zA-Z_]\\\\w*\\\\b)|(end|rescue|ensure|else|elsif|when)\\\\b)\")}},t.language={tokenPostfix:\".ruby\",keywords:[\"__LINE__\",\"__ENCODING__\",\"__FILE__\",\"BEGIN\",\"END\",\"alias\",\"and\",\"begin\",\"break\",\"case\",\"class\",\"def\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"for\",\"false\",\"if\",\"in\",\"module\",\"next\",\"nil\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"self\",\"super\",\"then\",\"true\",\"undef\",\"unless\",\"until\",\"when\",\"while\",\"yield\"],keywordops:[\"::\",\"..\",\"...\",\"?\",\":\",\"=>\"],builtins:[\"require\",\"public\",\"private\",\"include\",\"extend\",\"attr_reader\",\"protected\",\"private_class_method\",\"protected_class_method\",\"new\"],declarations:[\"module\",\"class\",\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],linedecls:[\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],operators:[\"^\",\"&\",\"|\",\"<=>\",\"==\",\"===\",\"!~\",\"=~\",\">\",\">=\",\"<\",\"<=\",\"<<\",\">>\",\"+\",\"-\",\"*\",\"/\",\"%\",\"**\",\"~\",\"+@\",\"-@\",\"[]\",\"[]=\",\"`\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"^=\",\"%=\",\"<<=\",\">>=\",\"&=\",\"&&=\",\"||=\",\"|=\"],brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%\\.]+/,escape:/(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\\s\\n\\r]/,heredelim:/(?:\\w+|'[^']*'|\"[^\"]*\"|`[^`]*`)/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[AzZbBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\\s*)([a-z_]\\w*[!?=]?)/,[\"white\",{cases:{\"for|until|while\":{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@declarations\":{token:\"keyword.$2\",next:\"@root.$2\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}]],[/[a-z_]\\w*[!?=]?/,{cases:{\"if|unless|while|until\":{token:\"keyword.$0x\",next:\"@modifier.$0x\"},for:{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@linedecls\":{token:\"keyword.$0\",next:\"@root.$0\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],[/[A-Z][\\w]*[!?=]?/,\"constructor.identifier\"],[/\\$[\\w]*/,\"global.constant\"],[/@[\\w]*/,\"namespace.instance.identifier\"],[/@@[\\w]*/,\"namespace.class.identifier\"],[/<<[-~](@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/[ \\t\\r\\n]+<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/^<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],{include:\"@whitespace\"},[/\"/,{token:\"string.d.delim\",next:'@dstring.d.\"'}],[/'/,{token:\"string.sq.delim\",next:\"@sstring.sq\"}],[/%([rsqxwW]|Q?)/,{token:\"@rematch\",next:\"pstring\"}],[/`/,{token:\"string.x.delim\",next:\"@dstring.x.`\"}],[/:(\\w|[$@])\\w*[!?=]?/,\"string.s\"],[/:\"/,{token:\"string.s.delim\",next:'@dstring.s.\"'}],[/:'/,{token:\"string.s.delim\",next:\"@sstring.s\"}],[/\\/(?=(\\\\\\/|[^\\/\\n])+\\/)/,{token:\"regexp.delim\",next:\"@regexp\"}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@keywordops\":\"keyword\",\"@operators\":\"operator\",\"@default\":\"\"}}],[/[;,]/,\"delimiter\"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,\"number.hex\"],[/0[_oO][0-7](_?[0-7])*/,\"number.octal\"],[/0[bB][01](_?[01])*/,\"number.binary\"],[/0[dD]@decpart/,\"number\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)/,{cases:{$1:\"number.float\",\"@default\":\"number\"}}]],dodecl:[[/^/,{token:\"\",switchTo:\"@root.$S2\"}],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},do:{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],modifier:[[/^/,\"\",\"@pop\"],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},\"then|else|elsif|do\":{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],sstring:[[/[^\\\\']+/,\"string.$S2\"],[/\\\\\\\\|\\\\'|\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.invalid\"],[/'/,{token:\"string.$S2.delim\",next:\"@pop\"}]],dstring:[[/[^\\\\`\"#]+/,\"string.$S2\"],[/#/,\"string.$S2.escape\",\"@interpolated\"],[/\\\\$/,\"string.$S2.escape\"],[/@escapes/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape.invalid\"],[/[`\"]/,{cases:{\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@pop\"},\"@default\":\"string.$S2\"}}]],heredoc:[[/^(\\s*)(@heredelim)$/,{cases:{\"$2==$S2\":[\"string.heredoc\",{token:\"string.heredoc.delimiter\",next:\"@pop\"}],\"@default\":[\"string.heredoc\",\"string.heredoc\"]}}],[/.*/,\"string.heredoc\"]],interpolated:[[/\\$\\w*/,\"global.constant\",\"@pop\"],[/@\\w*/,\"namespace.class.identifier\",\"@pop\"],[/@@\\w*/,\"namespace.instance.identifier\",\"@pop\"],[/[{]/,{token:\"string.escape.curly\",switchTo:\"@interpolated_compound\"}],[\"\",\"\",\"@pop\"]],interpolated_compound:[[/[}]/,{token:\"string.escape.curly\",next:\"@pop\"}],{include:\"@root\"}],pregexp:[{include:\"@whitespace\"},[/[^\\(\\{\\[\\\\]/,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"~[)}\\\\]]\":\"@brackets.regexp.escape.control\",\"~@regexpctl\":\"regexp.escape.control\",\"@default\":\"regexp\"}}],{include:\"@regexcontrol\"}],regexp:[{include:\"@regexcontrol\"},[/[^\\\\\\/]/,\"regexp\"],[\"/[ixmp]*\",{token:\"regexp.delim\"},\"@pop\"]],regexcontrol:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\",\"@brackets.regexp.escape.control\"]],[/(\\[)(\\^?)/,[\"@brackets.regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?[:=!])/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\"]],[/\\(\\?#/,{token:\"regexp.escape.control\",next:\"@regexpcomment\"}],[/[()]/,\"@brackets.regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/#/,\"regexp.escape\",\"@interpolated\"]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,\"@brackets.regexp.escape.control\",\"@pop\"]],regexpcomment:[[/[^)]+/,\"comment\"],[/\\)/,{token:\"regexp.escape.control\",next:\"@pop\"}]],pstring:[[/%([qws])\\(/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.(.)\"}],[/%([qws])\\[/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.[.]\"}],[/%([qws])\\{/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.{.}\"}],[/%([qws])</,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.<.>\"}],[/%([qws])(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.$2.$2\"}],[/%r\\(/,{token:\"regexp.delim\",switchTo:\"@pregexp.(.)\"}],[/%r\\[/,{token:\"regexp.delim\",switchTo:\"@pregexp.[.]\"}],[/%r\\{/,{token:\"regexp.delim\",switchTo:\"@pregexp.{.}\"}],[/%r</,{token:\"regexp.delim\",switchTo:\"@pregexp.<.>\"}],[/%r(@delim)/,{token:\"regexp.delim\",switchTo:\"@pregexp.$1.$1\"}],[/%(x|W|Q?)\\(/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.(.)\"}],[/%(x|W|Q?)\\[/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.[.]\"}],[/%(x|W|Q?)\\{/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.{.}\"}],[/%(x|W|Q?)</,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.<.>\"}],[/%(x|W|Q?)(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.$2.$2\"}],[/%([rqwsxW]|Q?)./,{token:\"invalid\",next:\"@pop\"}],[/./,{token:\"invalid\",next:\"@pop\"}]],qstring:[[/\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape\"],[/./,{cases:{\"$#==$S4\":{token:\"string.$S2.delim\",next:\"@pop\"},\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@push\"},\"@default\":\"string.$S2\"}}]],qqstring:[[/#/,\"string.$S2.escape\",\"@interpolated\"],{include:\"@qstring\"}],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*=begin\\b/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"]],comment:[[/[^=]+/,\"comment\"],[/^\\s*=begin\\b/,\"comment.invalid\"],[/^\\s*=end\\b.*/,\"comment\",\"@pop\"],[/[=]/,\"comment\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/rust/rust.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/rust/rust\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},t.language={tokenPostfix:\".rust\",defaultToken:\"invalid\",keywords:[\"as\",\"box\",\"break\",\"const\",\"continue\",\"crate\",\"else\",\"enum\",\"extern\",\"false\",\"fn\",\"for\",\"if\",\"impl\",\"in\",\"let\",\"loop\",\"match\",\"mod\",\"move\",\"mut\",\"pub\",\"ref\",\"return\",\"self\",\"static\",\"struct\",\"super\",\"trait\",\"true\",\"type\",\"unsafe\",\"use\",\"where\",\"while\",\"catch\",\"default\",\"union\",\"static\",\"abstract\",\"alignof\",\"become\",\"do\",\"final\",\"macro\",\"offsetof\",\"override\",\"priv\",\"proc\",\"pure\",\"sizeof\",\"typeof\",\"unsized\",\"virtual\",\"yield\"],typeKeywords:[\"Self\",\"m32\",\"m64\",\"m128\",\"f80\",\"f16\",\"f128\",\"int\",\"uint\",\"float\",\"char\",\"bool\",\"u8\",\"u16\",\"u32\",\"u64\",\"f32\",\"f64\",\"i8\",\"i16\",\"i32\",\"i64\",\"str\",\"Option\",\"Either\",\"c_float\",\"c_double\",\"c_void\",\"FILE\",\"fpos_t\",\"DIR\",\"dirent\",\"c_char\",\"c_schar\",\"c_uchar\",\"c_short\",\"c_ushort\",\"c_int\",\"c_uint\",\"c_long\",\"c_ulong\",\"size_t\",\"ptrdiff_t\",\"clock_t\",\"time_t\",\"c_longlong\",\"c_ulonglong\",\"intptr_t\",\"uintptr_t\",\"off_t\",\"dev_t\",\"ino_t\",\"pid_t\",\"mode_t\",\"ssize_t\"],constants:[\"true\",\"false\",\"Some\",\"None\",\"Left\",\"Right\",\"Ok\",\"Err\"],supportConstants:[\"EXIT_FAILURE\",\"EXIT_SUCCESS\",\"RAND_MAX\",\"EOF\",\"SEEK_SET\",\"SEEK_CUR\",\"SEEK_END\",\"_IOFBF\",\"_IONBF\",\"_IOLBF\",\"BUFSIZ\",\"FOPEN_MAX\",\"FILENAME_MAX\",\"L_tmpnam\",\"TMP_MAX\",\"O_RDONLY\",\"O_WRONLY\",\"O_RDWR\",\"O_APPEND\",\"O_CREAT\",\"O_EXCL\",\"O_TRUNC\",\"S_IFIFO\",\"S_IFCHR\",\"S_IFBLK\",\"S_IFDIR\",\"S_IFREG\",\"S_IFMT\",\"S_IEXEC\",\"S_IWRITE\",\"S_IREAD\",\"S_IRWXU\",\"S_IXUSR\",\"S_IWUSR\",\"S_IRUSR\",\"F_OK\",\"R_OK\",\"W_OK\",\"X_OK\",\"STDIN_FILENO\",\"STDOUT_FILENO\",\"STDERR_FILENO\"],supportMacros:[\"format!\",\"print!\",\"println!\",\"panic!\",\"format_args!\",\"unreachable!\",\"write!\",\"writeln!\"],operators:[\"!\",\"!=\",\"%\",\"%=\",\"&\",\"&=\",\"&&\",\"*\",\"*=\",\"+\",\"+=\",\"-\",\"-=\",\"->\",\".\",\"..\",\"...\",\"/\",\"/=\",\":\",\";\",\"<<\",\"<<=\",\"<\",\"<=\",\"=\",\"==\",\"=>\",\">\",\">=\",\">>\",\">>=\",\"@\",\"^\",\"^=\",\"|\",\"|=\",\"||\",\"_\",\"?\",\"#\"],escapes:/\\\\([nrt0\\\"''\\\\]|x\\h{2}|u\\{\\h{1,6}\\})/,delimiters:/[,]/,symbols:/[\\#\\!\\%\\&\\*\\+\\-\\.\\/\\:\\;\\<\\=\\>\\@\\^\\|_\\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{\"@typeKeywords\":\"keyword.type\",\"@keywords\":\"keyword\",\"@supportConstants\":\"keyword\",\"@supportMacros\":\"keyword\",\"@constants\":\"keyword\",\"@default\":\"identifier\"}}],[/\\$/,\"identifier\"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\\'])/,\"identifier\"],[/'\\S'/,\"string.byteliteral\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}],{include:\"@numbers\"},{include:\"@whitespace\"},[/@delimiters/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"delimiter\"}}],[/[{}()\\[\\]<>]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:\"number\"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(\\.[\\d][\\d_]*)?[eE][+-][\\d_]+(@floatSuffixes)?/,{token:\"number\"}],[/\\b(\\d\\.?[\\d_]*)(@floatSuffixes)?\\b/,{token:\"number\"}],[/(0x[\\da-fA-F]+)_?(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(@intSuffixes?)?/,{token:\"number\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/sb/sb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sb/sb\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\"'\"},brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"If\",\"EndIf\"],[\"While\",\"EndWhile\"],[\"For\",\"EndFor\"],[\"Sub\",\"EndSub\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]}]},o.language={defaultToken:\"\",tokenPostfix:\".sb\",ignoreCase:!0,brackets:[{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"keyword.tag-if\",open:\"If\",close:\"EndIf\"},{token:\"keyword.tag-while\",open:\"While\",close:\"EndWhile\"},{token:\"keyword.tag-for\",open:\"For\",close:\"EndFor\"},{token:\"keyword.tag-sub\",open:\"Sub\",close:\"EndSub\"}],keywords:[\"Else\",\"ElseIf\",\"EndFor\",\"EndIf\",\"EndSub\",\"EndWhile\",\"For\",\"Goto\",\"If\",\"Step\",\"Sub\",\"Then\",\"To\",\"While\"],tagwords:[\"If\",\"Sub\",\"While\",\"For\"],operators:[\">\",\"<\",\"<>\",\"<=\",\">=\",\"And\",\"Or\",\"+\",\"-\",\"*\",\"/\",\"=\"],identifier:/[a-zA-Z_][\\w]*/,symbols:/[=><:+\\-*\\/%\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/(@identifier)(?=[.])/,\"type\"],[/@identifier/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@operators\":\"operator\",\"@default\":\"variable.name\"}}],[/([.])(@identifier)/,{cases:{$2:[\"delimiter\",\"type.member\"],\"@default\":\"\"}}],[/\\d*\\.\\d+/,\"number.float\"],[/\\d+/,\"number\"],[/[()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"delimiter\"}}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\').*$/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"C?/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/scheme/scheme.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/scheme/scheme\",[\"require\",\"exports\"],(function(e,o){\"use strict\";Object.defineProperty(o,\"__esModule\",{value:!0}),o.conf={comments:{lineComment:\";\",blockComment:[\"#|\",\"|#\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".scheme\",brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],keywords:[\"case\",\"do\",\"let\",\"loop\",\"if\",\"else\",\"when\",\"cons\",\"car\",\"cdr\",\"cond\",\"lambda\",\"lambda*\",\"syntax-rules\",\"format\",\"set!\",\"quote\",\"eval\",\"append\",\"list\",\"list?\",\"member?\",\"load\"],constants:[\"#t\",\"#f\"],operators:[\"eq?\",\"eqv?\",\"equal?\",\"and\",\"or\",\"not\",\"null?\"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,\"number.hex\"],[/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?/,\"number.float\"],[/(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)/,[\"keyword\",\"white\",\"variable\"]],{include:\"@whitespace\"},{include:\"@strings\"},[/[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@operators\":\"operators\",\"@default\":\"identifier\"}}]],comment:[[/[^\\|#]+/,\"comment\"],[/#\\|/,\"comment\",\"@push\"],[/\\|#/,\"comment\",\"@pop\"],[/[\\|#]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#\\|/,\"comment\",\"@comment\"],[/;.*$/,\"comment\"]],strings:[[/\"$/,\"string\",\"@popall\"],[/\"(?=.)/,\"string\",\"@multiLineString\"]],multiLineString:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string.escape\"],[/\"/,\"string\",\"@popall\"],[/\\\\$/,\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/scss/scss.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/scss/scss\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@$#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t.language={defaultToken:\"\",tokenPostfix:\".scss\",ws:\"[ \\t\\n\\r\\f]*\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@variabledeclaration\"},{include:\"@warndebug\"},[\"[@](include)\",{token:\"keyword\",next:\"@includedeclaration\"}],[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"[@](function)\",{token:\"keyword\",next:\"@functiondeclaration\"}],[\"[@](mixin)\",{token:\"keyword\",next:\"@mixindeclaration\"}],[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@controlstatement\"},{include:\"@selectorname\"},[\"[&\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}]],selectorbody:[[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],{include:\"@selector\"},[\"[@](extend)\",{token:\"keyword\",next:\"@extendbody\"}],[\"[@](return)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],selectorname:[[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}],[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@variablereference\"},[\"(and\\\\b|or\\\\b|not\\\\b)\",\"operator\"],{include:\"@name\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"operator\"],[\",\",\"delimiter\"],[\"!default\",\"literal\"],[\"\\\\(\",{token:\"delimiter.parenthesis\",next:\"@parenthizedterm\"}]],rulevalue:[{include:\"@term\"},[\"!important\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@nestedproperty\"}],[\"(?=})\",{token:\"\",next:\"@pop\"}]],nestedproperty:[[\"[*_]?@identifier@ws:\",\"attribute.name\",\"@rulevalue\"],{include:\"@comments\"},[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],variabledeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\",\"@declarationbody\"]],urldeclaration:[{include:\"@strings\"},[\"[^)\\r\\n]+\",\"string\"],[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],extendbody:[{include:\"@selectorname\"},[\"!optional\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],variablereference:[[\"\\\\$@identifier\",\"variable.ref\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}]],variableinterpolation:[{include:\"@variablereference\"},[\"}\",{token:\"meta\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"number.hex\"]],units:[[\"(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"number\",\"@pop\"]],functiondeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@functionbody\"}]],mixindeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],parameterdeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\",\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],includedeclaration:[{include:\"@functioninvocation\"},[\"@identifier\",\"meta\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],keyframedeclaration:[[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],controlstatement:[[\"[@](if|else|for|while|each|media)\",{token:\"keyword.flow\",next:\"@controlstatementdeclaration\"}]],controlstatementdeclaration:[[\"(in|from|through|if|to)\\\\b\",{token:\"keyword.flow\"}],{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],functionbody:[[\"[@](return)\",{token:\"keyword\"}],{include:\"@variabledeclaration\"},{include:\"@term\"},{include:\"@controlstatement\"},[\";\",\"delimiter\"],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"meta\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/shell/shell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/shell/shell\",[\"require\",\"exports\"],(function(e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},r.language={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".shell\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"then\",\"do\",\"else\",\"elif\",\"while\",\"until\",\"for\",\"in\",\"esac\",\"fi\",\"fin\",\"fil\",\"done\",\"exit\",\"set\",\"unset\",\"export\",\"function\"],builtins:[\"ab\",\"awk\",\"bash\",\"beep\",\"cat\",\"cc\",\"cd\",\"chown\",\"chmod\",\"chroot\",\"clear\",\"cp\",\"curl\",\"cut\",\"diff\",\"echo\",\"find\",\"gawk\",\"gcc\",\"get\",\"git\",\"grep\",\"hg\",\"kill\",\"killall\",\"ln\",\"ls\",\"make\",\"mkdir\",\"openssl\",\"mv\",\"nc\",\"node\",\"npm\",\"ping\",\"ps\",\"restart\",\"rm\",\"rmdir\",\"sed\",\"service\",\"sh\",\"shopt\",\"shred\",\"source\",\"sort\",\"sleep\",\"ssh\",\"start\",\"stop\",\"su\",\"sudo\",\"svn\",\"tee\",\"telnet\",\"top\",\"touch\",\"vi\",\"vim\",\"wall\",\"wc\",\"wget\",\"who\",\"write\",\"yes\",\"zsh\"],symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,tokenizer:{root:[{include:\"@whitespace\"},[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@builtins\":\"type.identifier\",\"@default\":\"\"}}],{include:\"@strings\"},{include:\"@parameters\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/-+\\w+/,\"attribute.name\"],[/@symbols/,\"delimiter\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/./,\"string\"]],heredoc:[[/(<<[-<]?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)/,[\"constants\",\"white\",\"string.heredoc.delimiter\",\"string.heredoc\",\"string.heredoc.delimiter\"]]],parameters:[[/\\$\\d+/,\"variable.predefined\"],[/\\$\\w+/,\"variable\"],[/\\$[*@#?\\-$!0_]/,\"variable\"],[/\\$'/,\"variable\",\"@parameterBodyQuote\"],[/\\$\"/,\"variable\",\"@parameterBodyDoubleQuote\"],[/\\$\\(/,\"variable\",\"@parameterBodyParen\"],[/\\$\\{/,\"variable\",\"@parameterBodyCurlyBrace\"]],parameterBodyQuote:[[/[^#:%*@\\-!_']+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[']/,\"variable\",\"@pop\"]],parameterBodyDoubleQuote:[[/[^#:%*@\\-!_\"]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[\"]/,\"variable\",\"@pop\"]],parameterBodyParen:[[/[^#:%*@\\-!_)]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[)]/,\"variable\",\"@pop\"]],parameterBodyCurlyBrace:[[/[^#:%*@\\-!_}]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[}]/,\"variable\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/solidity/solidity.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/solidity/solidity\",[\"require\",\"exports\"],(function(x,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},e.language={defaultToken:\"\",tokenPostfix:\".sol\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"pragma\",\"solidity\",\"contract\",\"library\",\"using\",\"struct\",\"function\",\"modifier\",\"constructor\",\"address\",\"string\",\"bool\",\"Int\",\"Uint\",\"Byte\",\"Fixed\",\"Ufixed\",\"int\",\"int8\",\"int16\",\"int24\",\"int32\",\"int40\",\"int48\",\"int56\",\"int64\",\"int72\",\"int80\",\"int88\",\"int96\",\"int104\",\"int112\",\"int120\",\"int128\",\"int136\",\"int144\",\"int152\",\"int160\",\"int168\",\"int176\",\"int184\",\"int192\",\"int200\",\"int208\",\"int216\",\"int224\",\"int232\",\"int240\",\"int248\",\"int256\",\"uint\",\"uint8\",\"uint16\",\"uint24\",\"uint32\",\"uint40\",\"uint48\",\"uint56\",\"uint64\",\"uint72\",\"uint80\",\"uint88\",\"uint96\",\"uint104\",\"uint112\",\"uint120\",\"uint128\",\"uint136\",\"uint144\",\"uint152\",\"uint160\",\"uint168\",\"uint176\",\"uint184\",\"uint192\",\"uint200\",\"uint208\",\"uint216\",\"uint224\",\"uint232\",\"uint240\",\"uint248\",\"uint256\",\"byte\",\"bytes\",\"bytes1\",\"bytes2\",\"bytes3\",\"bytes4\",\"bytes5\",\"bytes6\",\"bytes7\",\"bytes8\",\"bytes9\",\"bytes10\",\"bytes11\",\"bytes12\",\"bytes13\",\"bytes14\",\"bytes15\",\"bytes16\",\"bytes17\",\"bytes18\",\"bytes19\",\"bytes20\",\"bytes21\",\"bytes22\",\"bytes23\",\"bytes24\",\"bytes25\",\"bytes26\",\"bytes27\",\"bytes28\",\"bytes29\",\"bytes30\",\"bytes31\",\"bytes32\",\"fixed\",\"fixed0x8\",\"fixed0x16\",\"fixed0x24\",\"fixed0x32\",\"fixed0x40\",\"fixed0x48\",\"fixed0x56\",\"fixed0x64\",\"fixed0x72\",\"fixed0x80\",\"fixed0x88\",\"fixed0x96\",\"fixed0x104\",\"fixed0x112\",\"fixed0x120\",\"fixed0x128\",\"fixed0x136\",\"fixed0x144\",\"fixed0x152\",\"fixed0x160\",\"fixed0x168\",\"fixed0x176\",\"fixed0x184\",\"fixed0x192\",\"fixed0x200\",\"fixed0x208\",\"fixed0x216\",\"fixed0x224\",\"fixed0x232\",\"fixed0x240\",\"fixed0x248\",\"fixed0x256\",\"fixed8x8\",\"fixed8x16\",\"fixed8x24\",\"fixed8x32\",\"fixed8x40\",\"fixed8x48\",\"fixed8x56\",\"fixed8x64\",\"fixed8x72\",\"fixed8x80\",\"fixed8x88\",\"fixed8x96\",\"fixed8x104\",\"fixed8x112\",\"fixed8x120\",\"fixed8x128\",\"fixed8x136\",\"fixed8x144\",\"fixed8x152\",\"fixed8x160\",\"fixed8x168\",\"fixed8x176\",\"fixed8x184\",\"fixed8x192\",\"fixed8x200\",\"fixed8x208\",\"fixed8x216\",\"fixed8x224\",\"fixed8x232\",\"fixed8x240\",\"fixed8x248\",\"fixed16x8\",\"fixed16x16\",\"fixed16x24\",\"fixed16x32\",\"fixed16x40\",\"fixed16x48\",\"fixed16x56\",\"fixed16x64\",\"fixed16x72\",\"fixed16x80\",\"fixed16x88\",\"fixed16x96\",\"fixed16x104\",\"fixed16x112\",\"fixed16x120\",\"fixed16x128\",\"fixed16x136\",\"fixed16x144\",\"fixed16x152\",\"fixed16x160\",\"fixed16x168\",\"fixed16x176\",\"fixed16x184\",\"fixed16x192\",\"fixed16x200\",\"fixed16x208\",\"fixed16x216\",\"fixed16x224\",\"fixed16x232\",\"fixed16x240\",\"fixed24x8\",\"fixed24x16\",\"fixed24x24\",\"fixed24x32\",\"fixed24x40\",\"fixed24x48\",\"fixed24x56\",\"fixed24x64\",\"fixed24x72\",\"fixed24x80\",\"fixed24x88\",\"fixed24x96\",\"fixed24x104\",\"fixed24x112\",\"fixed24x120\",\"fixed24x128\",\"fixed24x136\",\"fixed24x144\",\"fixed24x152\",\"fixed24x160\",\"fixed24x168\",\"fixed24x176\",\"fixed24x184\",\"fixed24x192\",\"fixed24x200\",\"fixed24x208\",\"fixed24x216\",\"fixed24x224\",\"fixed24x232\",\"fixed32x8\",\"fixed32x16\",\"fixed32x24\",\"fixed32x32\",\"fixed32x40\",\"fixed32x48\",\"fixed32x56\",\"fixed32x64\",\"fixed32x72\",\"fixed32x80\",\"fixed32x88\",\"fixed32x96\",\"fixed32x104\",\"fixed32x112\",\"fixed32x120\",\"fixed32x128\",\"fixed32x136\",\"fixed32x144\",\"fixed32x152\",\"fixed32x160\",\"fixed32x168\",\"fixed32x176\",\"fixed32x184\",\"fixed32x192\",\"fixed32x200\",\"fixed32x208\",\"fixed32x216\",\"fixed32x224\",\"fixed40x8\",\"fixed40x16\",\"fixed40x24\",\"fixed40x32\",\"fixed40x40\",\"fixed40x48\",\"fixed40x56\",\"fixed40x64\",\"fixed40x72\",\"fixed40x80\",\"fixed40x88\",\"fixed40x96\",\"fixed40x104\",\"fixed40x112\",\"fixed40x120\",\"fixed40x128\",\"fixed40x136\",\"fixed40x144\",\"fixed40x152\",\"fixed40x160\",\"fixed40x168\",\"fixed40x176\",\"fixed40x184\",\"fixed40x192\",\"fixed40x200\",\"fixed40x208\",\"fixed40x216\",\"fixed48x8\",\"fixed48x16\",\"fixed48x24\",\"fixed48x32\",\"fixed48x40\",\"fixed48x48\",\"fixed48x56\",\"fixed48x64\",\"fixed48x72\",\"fixed48x80\",\"fixed48x88\",\"fixed48x96\",\"fixed48x104\",\"fixed48x112\",\"fixed48x120\",\"fixed48x128\",\"fixed48x136\",\"fixed48x144\",\"fixed48x152\",\"fixed48x160\",\"fixed48x168\",\"fixed48x176\",\"fixed48x184\",\"fixed48x192\",\"fixed48x200\",\"fixed48x208\",\"fixed56x8\",\"fixed56x16\",\"fixed56x24\",\"fixed56x32\",\"fixed56x40\",\"fixed56x48\",\"fixed56x56\",\"fixed56x64\",\"fixed56x72\",\"fixed56x80\",\"fixed56x88\",\"fixed56x96\",\"fixed56x104\",\"fixed56x112\",\"fixed56x120\",\"fixed56x128\",\"fixed56x136\",\"fixed56x144\",\"fixed56x152\",\"fixed56x160\",\"fixed56x168\",\"fixed56x176\",\"fixed56x184\",\"fixed56x192\",\"fixed56x200\",\"fixed64x8\",\"fixed64x16\",\"fixed64x24\",\"fixed64x32\",\"fixed64x40\",\"fixed64x48\",\"fixed64x56\",\"fixed64x64\",\"fixed64x72\",\"fixed64x80\",\"fixed64x88\",\"fixed64x96\",\"fixed64x104\",\"fixed64x112\",\"fixed64x120\",\"fixed64x128\",\"fixed64x136\",\"fixed64x144\",\"fixed64x152\",\"fixed64x160\",\"fixed64x168\",\"fixed64x176\",\"fixed64x184\",\"fixed64x192\",\"fixed72x8\",\"fixed72x16\",\"fixed72x24\",\"fixed72x32\",\"fixed72x40\",\"fixed72x48\",\"fixed72x56\",\"fixed72x64\",\"fixed72x72\",\"fixed72x80\",\"fixed72x88\",\"fixed72x96\",\"fixed72x104\",\"fixed72x112\",\"fixed72x120\",\"fixed72x128\",\"fixed72x136\",\"fixed72x144\",\"fixed72x152\",\"fixed72x160\",\"fixed72x168\",\"fixed72x176\",\"fixed72x184\",\"fixed80x8\",\"fixed80x16\",\"fixed80x24\",\"fixed80x32\",\"fixed80x40\",\"fixed80x48\",\"fixed80x56\",\"fixed80x64\",\"fixed80x72\",\"fixed80x80\",\"fixed80x88\",\"fixed80x96\",\"fixed80x104\",\"fixed80x112\",\"fixed80x120\",\"fixed80x128\",\"fixed80x136\",\"fixed80x144\",\"fixed80x152\",\"fixed80x160\",\"fixed80x168\",\"fixed80x176\",\"fixed88x8\",\"fixed88x16\",\"fixed88x24\",\"fixed88x32\",\"fixed88x40\",\"fixed88x48\",\"fixed88x56\",\"fixed88x64\",\"fixed88x72\",\"fixed88x80\",\"fixed88x88\",\"fixed88x96\",\"fixed88x104\",\"fixed88x112\",\"fixed88x120\",\"fixed88x128\",\"fixed88x136\",\"fixed88x144\",\"fixed88x152\",\"fixed88x160\",\"fixed88x168\",\"fixed96x8\",\"fixed96x16\",\"fixed96x24\",\"fixed96x32\",\"fixed96x40\",\"fixed96x48\",\"fixed96x56\",\"fixed96x64\",\"fixed96x72\",\"fixed96x80\",\"fixed96x88\",\"fixed96x96\",\"fixed96x104\",\"fixed96x112\",\"fixed96x120\",\"fixed96x128\",\"fixed96x136\",\"fixed96x144\",\"fixed96x152\",\"fixed96x160\",\"fixed104x8\",\"fixed104x16\",\"fixed104x24\",\"fixed104x32\",\"fixed104x40\",\"fixed104x48\",\"fixed104x56\",\"fixed104x64\",\"fixed104x72\",\"fixed104x80\",\"fixed104x88\",\"fixed104x96\",\"fixed104x104\",\"fixed104x112\",\"fixed104x120\",\"fixed104x128\",\"fixed104x136\",\"fixed104x144\",\"fixed104x152\",\"fixed112x8\",\"fixed112x16\",\"fixed112x24\",\"fixed112x32\",\"fixed112x40\",\"fixed112x48\",\"fixed112x56\",\"fixed112x64\",\"fixed112x72\",\"fixed112x80\",\"fixed112x88\",\"fixed112x96\",\"fixed112x104\",\"fixed112x112\",\"fixed112x120\",\"fixed112x128\",\"fixed112x136\",\"fixed112x144\",\"fixed120x8\",\"fixed120x16\",\"fixed120x24\",\"fixed120x32\",\"fixed120x40\",\"fixed120x48\",\"fixed120x56\",\"fixed120x64\",\"fixed120x72\",\"fixed120x80\",\"fixed120x88\",\"fixed120x96\",\"fixed120x104\",\"fixed120x112\",\"fixed120x120\",\"fixed120x128\",\"fixed120x136\",\"fixed128x8\",\"fixed128x16\",\"fixed128x24\",\"fixed128x32\",\"fixed128x40\",\"fixed128x48\",\"fixed128x56\",\"fixed128x64\",\"fixed128x72\",\"fixed128x80\",\"fixed128x88\",\"fixed128x96\",\"fixed128x104\",\"fixed128x112\",\"fixed128x120\",\"fixed128x128\",\"fixed136x8\",\"fixed136x16\",\"fixed136x24\",\"fixed136x32\",\"fixed136x40\",\"fixed136x48\",\"fixed136x56\",\"fixed136x64\",\"fixed136x72\",\"fixed136x80\",\"fixed136x88\",\"fixed136x96\",\"fixed136x104\",\"fixed136x112\",\"fixed136x120\",\"fixed144x8\",\"fixed144x16\",\"fixed144x24\",\"fixed144x32\",\"fixed144x40\",\"fixed144x48\",\"fixed144x56\",\"fixed144x64\",\"fixed144x72\",\"fixed144x80\",\"fixed144x88\",\"fixed144x96\",\"fixed144x104\",\"fixed144x112\",\"fixed152x8\",\"fixed152x16\",\"fixed152x24\",\"fixed152x32\",\"fixed152x40\",\"fixed152x48\",\"fixed152x56\",\"fixed152x64\",\"fixed152x72\",\"fixed152x80\",\"fixed152x88\",\"fixed152x96\",\"fixed152x104\",\"fixed160x8\",\"fixed160x16\",\"fixed160x24\",\"fixed160x32\",\"fixed160x40\",\"fixed160x48\",\"fixed160x56\",\"fixed160x64\",\"fixed160x72\",\"fixed160x80\",\"fixed160x88\",\"fixed160x96\",\"fixed168x8\",\"fixed168x16\",\"fixed168x24\",\"fixed168x32\",\"fixed168x40\",\"fixed168x48\",\"fixed168x56\",\"fixed168x64\",\"fixed168x72\",\"fixed168x80\",\"fixed168x88\",\"fixed176x8\",\"fixed176x16\",\"fixed176x24\",\"fixed176x32\",\"fixed176x40\",\"fixed176x48\",\"fixed176x56\",\"fixed176x64\",\"fixed176x72\",\"fixed176x80\",\"fixed184x8\",\"fixed184x16\",\"fixed184x24\",\"fixed184x32\",\"fixed184x40\",\"fixed184x48\",\"fixed184x56\",\"fixed184x64\",\"fixed184x72\",\"fixed192x8\",\"fixed192x16\",\"fixed192x24\",\"fixed192x32\",\"fixed192x40\",\"fixed192x48\",\"fixed192x56\",\"fixed192x64\",\"fixed200x8\",\"fixed200x16\",\"fixed200x24\",\"fixed200x32\",\"fixed200x40\",\"fixed200x48\",\"fixed200x56\",\"fixed208x8\",\"fixed208x16\",\"fixed208x24\",\"fixed208x32\",\"fixed208x40\",\"fixed208x48\",\"fixed216x8\",\"fixed216x16\",\"fixed216x24\",\"fixed216x32\",\"fixed216x40\",\"fixed224x8\",\"fixed224x16\",\"fixed224x24\",\"fixed224x32\",\"fixed232x8\",\"fixed232x16\",\"fixed232x24\",\"fixed240x8\",\"fixed240x16\",\"fixed248x8\",\"ufixed\",\"ufixed0x8\",\"ufixed0x16\",\"ufixed0x24\",\"ufixed0x32\",\"ufixed0x40\",\"ufixed0x48\",\"ufixed0x56\",\"ufixed0x64\",\"ufixed0x72\",\"ufixed0x80\",\"ufixed0x88\",\"ufixed0x96\",\"ufixed0x104\",\"ufixed0x112\",\"ufixed0x120\",\"ufixed0x128\",\"ufixed0x136\",\"ufixed0x144\",\"ufixed0x152\",\"ufixed0x160\",\"ufixed0x168\",\"ufixed0x176\",\"ufixed0x184\",\"ufixed0x192\",\"ufixed0x200\",\"ufixed0x208\",\"ufixed0x216\",\"ufixed0x224\",\"ufixed0x232\",\"ufixed0x240\",\"ufixed0x248\",\"ufixed0x256\",\"ufixed8x8\",\"ufixed8x16\",\"ufixed8x24\",\"ufixed8x32\",\"ufixed8x40\",\"ufixed8x48\",\"ufixed8x56\",\"ufixed8x64\",\"ufixed8x72\",\"ufixed8x80\",\"ufixed8x88\",\"ufixed8x96\",\"ufixed8x104\",\"ufixed8x112\",\"ufixed8x120\",\"ufixed8x128\",\"ufixed8x136\",\"ufixed8x144\",\"ufixed8x152\",\"ufixed8x160\",\"ufixed8x168\",\"ufixed8x176\",\"ufixed8x184\",\"ufixed8x192\",\"ufixed8x200\",\"ufixed8x208\",\"ufixed8x216\",\"ufixed8x224\",\"ufixed8x232\",\"ufixed8x240\",\"ufixed8x248\",\"ufixed16x8\",\"ufixed16x16\",\"ufixed16x24\",\"ufixed16x32\",\"ufixed16x40\",\"ufixed16x48\",\"ufixed16x56\",\"ufixed16x64\",\"ufixed16x72\",\"ufixed16x80\",\"ufixed16x88\",\"ufixed16x96\",\"ufixed16x104\",\"ufixed16x112\",\"ufixed16x120\",\"ufixed16x128\",\"ufixed16x136\",\"ufixed16x144\",\"ufixed16x152\",\"ufixed16x160\",\"ufixed16x168\",\"ufixed16x176\",\"ufixed16x184\",\"ufixed16x192\",\"ufixed16x200\",\"ufixed16x208\",\"ufixed16x216\",\"ufixed16x224\",\"ufixed16x232\",\"ufixed16x240\",\"ufixed24x8\",\"ufixed24x16\",\"ufixed24x24\",\"ufixed24x32\",\"ufixed24x40\",\"ufixed24x48\",\"ufixed24x56\",\"ufixed24x64\",\"ufixed24x72\",\"ufixed24x80\",\"ufixed24x88\",\"ufixed24x96\",\"ufixed24x104\",\"ufixed24x112\",\"ufixed24x120\",\"ufixed24x128\",\"ufixed24x136\",\"ufixed24x144\",\"ufixed24x152\",\"ufixed24x160\",\"ufixed24x168\",\"ufixed24x176\",\"ufixed24x184\",\"ufixed24x192\",\"ufixed24x200\",\"ufixed24x208\",\"ufixed24x216\",\"ufixed24x224\",\"ufixed24x232\",\"ufixed32x8\",\"ufixed32x16\",\"ufixed32x24\",\"ufixed32x32\",\"ufixed32x40\",\"ufixed32x48\",\"ufixed32x56\",\"ufixed32x64\",\"ufixed32x72\",\"ufixed32x80\",\"ufixed32x88\",\"ufixed32x96\",\"ufixed32x104\",\"ufixed32x112\",\"ufixed32x120\",\"ufixed32x128\",\"ufixed32x136\",\"ufixed32x144\",\"ufixed32x152\",\"ufixed32x160\",\"ufixed32x168\",\"ufixed32x176\",\"ufixed32x184\",\"ufixed32x192\",\"ufixed32x200\",\"ufixed32x208\",\"ufixed32x216\",\"ufixed32x224\",\"ufixed40x8\",\"ufixed40x16\",\"ufixed40x24\",\"ufixed40x32\",\"ufixed40x40\",\"ufixed40x48\",\"ufixed40x56\",\"ufixed40x64\",\"ufixed40x72\",\"ufixed40x80\",\"ufixed40x88\",\"ufixed40x96\",\"ufixed40x104\",\"ufixed40x112\",\"ufixed40x120\",\"ufixed40x128\",\"ufixed40x136\",\"ufixed40x144\",\"ufixed40x152\",\"ufixed40x160\",\"ufixed40x168\",\"ufixed40x176\",\"ufixed40x184\",\"ufixed40x192\",\"ufixed40x200\",\"ufixed40x208\",\"ufixed40x216\",\"ufixed48x8\",\"ufixed48x16\",\"ufixed48x24\",\"ufixed48x32\",\"ufixed48x40\",\"ufixed48x48\",\"ufixed48x56\",\"ufixed48x64\",\"ufixed48x72\",\"ufixed48x80\",\"ufixed48x88\",\"ufixed48x96\",\"ufixed48x104\",\"ufixed48x112\",\"ufixed48x120\",\"ufixed48x128\",\"ufixed48x136\",\"ufixed48x144\",\"ufixed48x152\",\"ufixed48x160\",\"ufixed48x168\",\"ufixed48x176\",\"ufixed48x184\",\"ufixed48x192\",\"ufixed48x200\",\"ufixed48x208\",\"ufixed56x8\",\"ufixed56x16\",\"ufixed56x24\",\"ufixed56x32\",\"ufixed56x40\",\"ufixed56x48\",\"ufixed56x56\",\"ufixed56x64\",\"ufixed56x72\",\"ufixed56x80\",\"ufixed56x88\",\"ufixed56x96\",\"ufixed56x104\",\"ufixed56x112\",\"ufixed56x120\",\"ufixed56x128\",\"ufixed56x136\",\"ufixed56x144\",\"ufixed56x152\",\"ufixed56x160\",\"ufixed56x168\",\"ufixed56x176\",\"ufixed56x184\",\"ufixed56x192\",\"ufixed56x200\",\"ufixed64x8\",\"ufixed64x16\",\"ufixed64x24\",\"ufixed64x32\",\"ufixed64x40\",\"ufixed64x48\",\"ufixed64x56\",\"ufixed64x64\",\"ufixed64x72\",\"ufixed64x80\",\"ufixed64x88\",\"ufixed64x96\",\"ufixed64x104\",\"ufixed64x112\",\"ufixed64x120\",\"ufixed64x128\",\"ufixed64x136\",\"ufixed64x144\",\"ufixed64x152\",\"ufixed64x160\",\"ufixed64x168\",\"ufixed64x176\",\"ufixed64x184\",\"ufixed64x192\",\"ufixed72x8\",\"ufixed72x16\",\"ufixed72x24\",\"ufixed72x32\",\"ufixed72x40\",\"ufixed72x48\",\"ufixed72x56\",\"ufixed72x64\",\"ufixed72x72\",\"ufixed72x80\",\"ufixed72x88\",\"ufixed72x96\",\"ufixed72x104\",\"ufixed72x112\",\"ufixed72x120\",\"ufixed72x128\",\"ufixed72x136\",\"ufixed72x144\",\"ufixed72x152\",\"ufixed72x160\",\"ufixed72x168\",\"ufixed72x176\",\"ufixed72x184\",\"ufixed80x8\",\"ufixed80x16\",\"ufixed80x24\",\"ufixed80x32\",\"ufixed80x40\",\"ufixed80x48\",\"ufixed80x56\",\"ufixed80x64\",\"ufixed80x72\",\"ufixed80x80\",\"ufixed80x88\",\"ufixed80x96\",\"ufixed80x104\",\"ufixed80x112\",\"ufixed80x120\",\"ufixed80x128\",\"ufixed80x136\",\"ufixed80x144\",\"ufixed80x152\",\"ufixed80x160\",\"ufixed80x168\",\"ufixed80x176\",\"ufixed88x8\",\"ufixed88x16\",\"ufixed88x24\",\"ufixed88x32\",\"ufixed88x40\",\"ufixed88x48\",\"ufixed88x56\",\"ufixed88x64\",\"ufixed88x72\",\"ufixed88x80\",\"ufixed88x88\",\"ufixed88x96\",\"ufixed88x104\",\"ufixed88x112\",\"ufixed88x120\",\"ufixed88x128\",\"ufixed88x136\",\"ufixed88x144\",\"ufixed88x152\",\"ufixed88x160\",\"ufixed88x168\",\"ufixed96x8\",\"ufixed96x16\",\"ufixed96x24\",\"ufixed96x32\",\"ufixed96x40\",\"ufixed96x48\",\"ufixed96x56\",\"ufixed96x64\",\"ufixed96x72\",\"ufixed96x80\",\"ufixed96x88\",\"ufixed96x96\",\"ufixed96x104\",\"ufixed96x112\",\"ufixed96x120\",\"ufixed96x128\",\"ufixed96x136\",\"ufixed96x144\",\"ufixed96x152\",\"ufixed96x160\",\"ufixed104x8\",\"ufixed104x16\",\"ufixed104x24\",\"ufixed104x32\",\"ufixed104x40\",\"ufixed104x48\",\"ufixed104x56\",\"ufixed104x64\",\"ufixed104x72\",\"ufixed104x80\",\"ufixed104x88\",\"ufixed104x96\",\"ufixed104x104\",\"ufixed104x112\",\"ufixed104x120\",\"ufixed104x128\",\"ufixed104x136\",\"ufixed104x144\",\"ufixed104x152\",\"ufixed112x8\",\"ufixed112x16\",\"ufixed112x24\",\"ufixed112x32\",\"ufixed112x40\",\"ufixed112x48\",\"ufixed112x56\",\"ufixed112x64\",\"ufixed112x72\",\"ufixed112x80\",\"ufixed112x88\",\"ufixed112x96\",\"ufixed112x104\",\"ufixed112x112\",\"ufixed112x120\",\"ufixed112x128\",\"ufixed112x136\",\"ufixed112x144\",\"ufixed120x8\",\"ufixed120x16\",\"ufixed120x24\",\"ufixed120x32\",\"ufixed120x40\",\"ufixed120x48\",\"ufixed120x56\",\"ufixed120x64\",\"ufixed120x72\",\"ufixed120x80\",\"ufixed120x88\",\"ufixed120x96\",\"ufixed120x104\",\"ufixed120x112\",\"ufixed120x120\",\"ufixed120x128\",\"ufixed120x136\",\"ufixed128x8\",\"ufixed128x16\",\"ufixed128x24\",\"ufixed128x32\",\"ufixed128x40\",\"ufixed128x48\",\"ufixed128x56\",\"ufixed128x64\",\"ufixed128x72\",\"ufixed128x80\",\"ufixed128x88\",\"ufixed128x96\",\"ufixed128x104\",\"ufixed128x112\",\"ufixed128x120\",\"ufixed128x128\",\"ufixed136x8\",\"ufixed136x16\",\"ufixed136x24\",\"ufixed136x32\",\"ufixed136x40\",\"ufixed136x48\",\"ufixed136x56\",\"ufixed136x64\",\"ufixed136x72\",\"ufixed136x80\",\"ufixed136x88\",\"ufixed136x96\",\"ufixed136x104\",\"ufixed136x112\",\"ufixed136x120\",\"ufixed144x8\",\"ufixed144x16\",\"ufixed144x24\",\"ufixed144x32\",\"ufixed144x40\",\"ufixed144x48\",\"ufixed144x56\",\"ufixed144x64\",\"ufixed144x72\",\"ufixed144x80\",\"ufixed144x88\",\"ufixed144x96\",\"ufixed144x104\",\"ufixed144x112\",\"ufixed152x8\",\"ufixed152x16\",\"ufixed152x24\",\"ufixed152x32\",\"ufixed152x40\",\"ufixed152x48\",\"ufixed152x56\",\"ufixed152x64\",\"ufixed152x72\",\"ufixed152x80\",\"ufixed152x88\",\"ufixed152x96\",\"ufixed152x104\",\"ufixed160x8\",\"ufixed160x16\",\"ufixed160x24\",\"ufixed160x32\",\"ufixed160x40\",\"ufixed160x48\",\"ufixed160x56\",\"ufixed160x64\",\"ufixed160x72\",\"ufixed160x80\",\"ufixed160x88\",\"ufixed160x96\",\"ufixed168x8\",\"ufixed168x16\",\"ufixed168x24\",\"ufixed168x32\",\"ufixed168x40\",\"ufixed168x48\",\"ufixed168x56\",\"ufixed168x64\",\"ufixed168x72\",\"ufixed168x80\",\"ufixed168x88\",\"ufixed176x8\",\"ufixed176x16\",\"ufixed176x24\",\"ufixed176x32\",\"ufixed176x40\",\"ufixed176x48\",\"ufixed176x56\",\"ufixed176x64\",\"ufixed176x72\",\"ufixed176x80\",\"ufixed184x8\",\"ufixed184x16\",\"ufixed184x24\",\"ufixed184x32\",\"ufixed184x40\",\"ufixed184x48\",\"ufixed184x56\",\"ufixed184x64\",\"ufixed184x72\",\"ufixed192x8\",\"ufixed192x16\",\"ufixed192x24\",\"ufixed192x32\",\"ufixed192x40\",\"ufixed192x48\",\"ufixed192x56\",\"ufixed192x64\",\"ufixed200x8\",\"ufixed200x16\",\"ufixed200x24\",\"ufixed200x32\",\"ufixed200x40\",\"ufixed200x48\",\"ufixed200x56\",\"ufixed208x8\",\"ufixed208x16\",\"ufixed208x24\",\"ufixed208x32\",\"ufixed208x40\",\"ufixed208x48\",\"ufixed216x8\",\"ufixed216x16\",\"ufixed216x24\",\"ufixed216x32\",\"ufixed216x40\",\"ufixed224x8\",\"ufixed224x16\",\"ufixed224x24\",\"ufixed224x32\",\"ufixed232x8\",\"ufixed232x16\",\"ufixed232x24\",\"ufixed240x8\",\"ufixed240x16\",\"ufixed248x8\",\"event\",\"enum\",\"let\",\"mapping\",\"private\",\"public\",\"external\",\"inherited\",\"payable\",\"true\",\"false\",\"var\",\"import\",\"constant\",\"if\",\"else\",\"for\",\"else\",\"for\",\"while\",\"do\",\"break\",\"continue\",\"throw\",\"returns\",\"return\",\"suicide\",\"new\",\"is\",\"this\",\"super\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/sophia/sophia.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sophia/sophia\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t.language={defaultToken:\"\",tokenPostfix:\".aes\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"contract\",\"library\",\"entrypoint\",\"function\",\"stateful\",\"state\",\"hash\",\"signature\",\"tuple\",\"list\",\"address\",\"string\",\"bool\",\"int\",\"record\",\"datatype\",\"type\",\"option\",\"oracle\",\"oracle_query\",\"Call\",\"Bits\",\"Bytes\",\"Oracle\",\"String\",\"Crypto\",\"Address\",\"Auth\",\"Chain\",\"None\",\"Some\",\"bits\",\"bytes\",\"event\",\"let\",\"map\",\"private\",\"public\",\"true\",\"false\",\"var\",\"if\",\"else\",\"throw\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\"::\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/sql/sql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/sql/sql\",[\"require\",\"exports\"],(function(E,T){\"use strict\";Object.defineProperty(T,\"__esModule\",{value:!0}),T.conf={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T.language={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ABORT_AFTER_WAIT\",\"ABSENT\",\"ABSOLUTE\",\"ACCENT_SENSITIVITY\",\"ACTION\",\"ACTIVATION\",\"ACTIVE\",\"ADD\",\"ADDRESS\",\"ADMIN\",\"AES\",\"AES_128\",\"AES_192\",\"AES_256\",\"AFFINITY\",\"AFTER\",\"AGGREGATE\",\"ALGORITHM\",\"ALL_CONSTRAINTS\",\"ALL_ERRORMSGS\",\"ALL_INDEXES\",\"ALL_LEVELS\",\"ALL_SPARSE_COLUMNS\",\"ALLOW_CONNECTIONS\",\"ALLOW_MULTIPLE_EVENT_LOSS\",\"ALLOW_PAGE_LOCKS\",\"ALLOW_ROW_LOCKS\",\"ALLOW_SINGLE_EVENT_LOSS\",\"ALLOW_SNAPSHOT_ISOLATION\",\"ALLOWED\",\"ALTER\",\"ANONYMOUS\",\"ANSI_DEFAULTS\",\"ANSI_NULL_DEFAULT\",\"ANSI_NULL_DFLT_OFF\",\"ANSI_NULL_DFLT_ON\",\"ANSI_NULLS\",\"ANSI_PADDING\",\"ANSI_WARNINGS\",\"APPEND\",\"APPLICATION\",\"APPLICATION_LOG\",\"ARITHABORT\",\"ARITHIGNORE\",\"AS\",\"ASC\",\"ASSEMBLY\",\"ASYMMETRIC\",\"ASYNCHRONOUS_COMMIT\",\"AT\",\"ATOMIC\",\"ATTACH\",\"ATTACH_REBUILD_LOG\",\"AUDIT\",\"AUDIT_GUID\",\"AUTHENTICATION\",\"AUTHORIZATION\",\"AUTO\",\"AUTO_CLEANUP\",\"AUTO_CLOSE\",\"AUTO_CREATE_STATISTICS\",\"AUTO_SHRINK\",\"AUTO_UPDATE_STATISTICS\",\"AUTO_UPDATE_STATISTICS_ASYNC\",\"AUTOMATED_BACKUP_PREFERENCE\",\"AUTOMATIC\",\"AVAILABILITY\",\"AVAILABILITY_MODE\",\"BACKUP\",\"BACKUP_PRIORITY\",\"BASE64\",\"BATCHSIZE\",\"BEGIN\",\"BEGIN_DIALOG\",\"BIGINT\",\"BINARY\",\"BINDING\",\"BIT\",\"BLOCKERS\",\"BLOCKSIZE\",\"BOUNDING_BOX\",\"BREAK\",\"BROKER\",\"BROKER_INSTANCE\",\"BROWSE\",\"BUCKET_COUNT\",\"BUFFER\",\"BUFFERCOUNT\",\"BULK\",\"BULK_LOGGED\",\"BY\",\"CACHE\",\"CALL\",\"CALLED\",\"CALLER\",\"CAP_CPU_PERCENT\",\"CASCADE\",\"CASE\",\"CATALOG\",\"CATCH\",\"CELLS_PER_OBJECT\",\"CERTIFICATE\",\"CHANGE_RETENTION\",\"CHANGE_TRACKING\",\"CHANGES\",\"CHAR\",\"CHARACTER\",\"CHECK\",\"CHECK_CONSTRAINTS\",\"CHECK_EXPIRATION\",\"CHECK_POLICY\",\"CHECKALLOC\",\"CHECKCATALOG\",\"CHECKCONSTRAINTS\",\"CHECKDB\",\"CHECKFILEGROUP\",\"CHECKIDENT\",\"CHECKPOINT\",\"CHECKTABLE\",\"CLASSIFIER_FUNCTION\",\"CLEANTABLE\",\"CLEANUP\",\"CLEAR\",\"CLOSE\",\"CLUSTER\",\"CLUSTERED\",\"CODEPAGE\",\"COLLATE\",\"COLLECTION\",\"COLUMN\",\"COLUMN_SET\",\"COLUMNS\",\"COLUMNSTORE\",\"COLUMNSTORE_ARCHIVE\",\"COMMIT\",\"COMMITTED\",\"COMPATIBILITY_LEVEL\",\"COMPRESSION\",\"COMPUTE\",\"CONCAT\",\"CONCAT_NULL_YIELDS_NULL\",\"CONFIGURATION\",\"CONNECT\",\"CONSTRAINT\",\"CONTAINMENT\",\"CONTENT\",\"CONTEXT\",\"CONTINUE\",\"CONTINUE_AFTER_ERROR\",\"CONTRACT\",\"CONTRACT_NAME\",\"CONTROL\",\"CONVERSATION\",\"COOKIE\",\"COPY_ONLY\",\"COUNTER\",\"CPU\",\"CREATE\",\"CREATE_NEW\",\"CREATION_DISPOSITION\",\"CREDENTIAL\",\"CRYPTOGRAPHIC\",\"CUBE\",\"CURRENT\",\"CURRENT_DATE\",\"CURSOR\",\"CURSOR_CLOSE_ON_COMMIT\",\"CURSOR_DEFAULT\",\"CYCLE\",\"DATA\",\"DATA_COMPRESSION\",\"DATA_PURITY\",\"DATABASE\",\"DATABASE_DEFAULT\",\"DATABASE_MIRRORING\",\"DATABASE_SNAPSHOT\",\"DATAFILETYPE\",\"DATE\",\"DATE_CORRELATION_OPTIMIZATION\",\"DATEFIRST\",\"DATEFORMAT\",\"DATETIME\",\"DATETIME2\",\"DATETIMEOFFSET\",\"DAY\",\"DAYOFYEAR\",\"DAYS\",\"DB_CHAINING\",\"DBCC\",\"DBREINDEX\",\"DDL_DATABASE_LEVEL_EVENTS\",\"DEADLOCK_PRIORITY\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DECRYPTION\",\"DEFAULT\",\"DEFAULT_DATABASE\",\"DEFAULT_FULLTEXT_LANGUAGE\",\"DEFAULT_LANGUAGE\",\"DEFAULT_SCHEMA\",\"DEFINITION\",\"DELAY\",\"DELAYED_DURABILITY\",\"DELETE\",\"DELETED\",\"DENSITY_VECTOR\",\"DENY\",\"DEPENDENTS\",\"DES\",\"DESC\",\"DESCRIPTION\",\"DESX\",\"DHCP\",\"DIAGNOSTICS\",\"DIALOG\",\"DIFFERENTIAL\",\"DIRECTORY_NAME\",\"DISABLE\",\"DISABLE_BROKER\",\"DISABLED\",\"DISK\",\"DISTINCT\",\"DISTRIBUTED\",\"DOCUMENT\",\"DOUBLE\",\"DROP\",\"DROP_EXISTING\",\"DROPCLEANBUFFERS\",\"DUMP\",\"DURABILITY\",\"DYNAMIC\",\"EDITION\",\"ELEMENTS\",\"ELSE\",\"EMERGENCY\",\"EMPTY\",\"EMPTYFILE\",\"ENABLE\",\"ENABLE_BROKER\",\"ENABLED\",\"ENCRYPTION\",\"END\",\"ENDPOINT\",\"ENDPOINT_URL\",\"ERRLVL\",\"ERROR\",\"ERROR_BROKER_CONVERSATIONS\",\"ERRORFILE\",\"ESCAPE\",\"ESTIMATEONLY\",\"EVENT\",\"EVENT_RETENTION_MODE\",\"EXEC\",\"EXECUTABLE\",\"EXECUTE\",\"EXIT\",\"EXPAND\",\"EXPIREDATE\",\"EXPIRY_DATE\",\"EXPLICIT\",\"EXTENDED_LOGICAL_CHECKS\",\"EXTENSION\",\"EXTERNAL\",\"EXTERNAL_ACCESS\",\"FAIL_OPERATION\",\"FAILOVER\",\"FAILOVER_MODE\",\"FAILURE_CONDITION_LEVEL\",\"FALSE\",\"FAN_IN\",\"FAST\",\"FAST_FORWARD\",\"FETCH\",\"FIELDTERMINATOR\",\"FILE\",\"FILEGROUP\",\"FILEGROWTH\",\"FILELISTONLY\",\"FILENAME\",\"FILEPATH\",\"FILESTREAM\",\"FILESTREAM_ON\",\"FILETABLE_COLLATE_FILENAME\",\"FILETABLE_DIRECTORY\",\"FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME\",\"FILETABLE_NAMESPACE\",\"FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME\",\"FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME\",\"FILLFACTOR\",\"FILTERING\",\"FIRE_TRIGGERS\",\"FIRST\",\"FIRSTROW\",\"FLOAT\",\"FMTONLY\",\"FOLLOWING\",\"FOR\",\"FORCE\",\"FORCE_FAILOVER_ALLOW_DATA_LOSS\",\"FORCE_SERVICE_ALLOW_DATA_LOSS\",\"FORCED\",\"FORCEPLAN\",\"FORCESCAN\",\"FORCESEEK\",\"FOREIGN\",\"FORMATFILE\",\"FORMSOF\",\"FORWARD_ONLY\",\"FREE\",\"FREEPROCCACHE\",\"FREESESSIONCACHE\",\"FREESYSTEMCACHE\",\"FROM\",\"FULL\",\"FULLSCAN\",\"FULLTEXT\",\"FUNCTION\",\"GB\",\"GEOGRAPHY_AUTO_GRID\",\"GEOGRAPHY_GRID\",\"GEOMETRY_AUTO_GRID\",\"GEOMETRY_GRID\",\"GET\",\"GLOBAL\",\"GO\",\"GOTO\",\"GOVERNOR\",\"GRANT\",\"GRIDS\",\"GROUP\",\"GROUP_MAX_REQUESTS\",\"HADR\",\"HASH\",\"HASHED\",\"HAVING\",\"HEADERONLY\",\"HEALTH_CHECK_TIMEOUT\",\"HELP\",\"HIERARCHYID\",\"HIGH\",\"HINT\",\"HISTOGRAM\",\"HOLDLOCK\",\"HONOR_BROKER_PRIORITY\",\"HOUR\",\"HOURS\",\"IDENTITY\",\"IDENTITY_INSERT\",\"IDENTITY_VALUE\",\"IDENTITYCOL\",\"IF\",\"IGNORE_CONSTRAINTS\",\"IGNORE_DUP_KEY\",\"IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX\",\"IGNORE_TRIGGERS\",\"IMAGE\",\"IMMEDIATE\",\"IMPERSONATE\",\"IMPLICIT_TRANSACTIONS\",\"IMPORTANCE\",\"INCLUDE\",\"INCREMENT\",\"INCREMENTAL\",\"INDEX\",\"INDEXDEFRAG\",\"INFINITE\",\"INFLECTIONAL\",\"INIT\",\"INITIATOR\",\"INPUT\",\"INPUTBUFFER\",\"INSENSITIVE\",\"INSERT\",\"INSERTED\",\"INSTEAD\",\"INT\",\"INTEGER\",\"INTO\",\"IO\",\"IP\",\"ISABOUT\",\"ISOLATION\",\"JOB\",\"KB\",\"KEEP\",\"KEEP_CDC\",\"KEEP_NULLS\",\"KEEP_REPLICATION\",\"KEEPDEFAULTS\",\"KEEPFIXED\",\"KEEPIDENTITY\",\"KEEPNULLS\",\"KERBEROS\",\"KEY\",\"KEY_SOURCE\",\"KEYS\",\"KEYSET\",\"KILL\",\"KILOBYTES_PER_BATCH\",\"LABELONLY\",\"LANGUAGE\",\"LAST\",\"LASTROW\",\"LEVEL\",\"LEVEL_1\",\"LEVEL_2\",\"LEVEL_3\",\"LEVEL_4\",\"LIFETIME\",\"LIMIT\",\"LINENO\",\"LIST\",\"LISTENER\",\"LISTENER_IP\",\"LISTENER_PORT\",\"LOAD\",\"LOADHISTORY\",\"LOB_COMPACTION\",\"LOCAL\",\"LOCAL_SERVICE_NAME\",\"LOCK_ESCALATION\",\"LOCK_TIMEOUT\",\"LOGIN\",\"LOGSPACE\",\"LOOP\",\"LOW\",\"MANUAL\",\"MARK\",\"MARK_IN_USE_FOR_REMOVAL\",\"MASTER\",\"MAX_CPU_PERCENT\",\"MAX_DISPATCH_LATENCY\",\"MAX_DOP\",\"MAX_DURATION\",\"MAX_EVENT_SIZE\",\"MAX_FILES\",\"MAX_IOPS_PER_VOLUME\",\"MAX_MEMORY\",\"MAX_MEMORY_PERCENT\",\"MAX_QUEUE_READERS\",\"MAX_ROLLOVER_FILES\",\"MAX_SIZE\",\"MAXDOP\",\"MAXERRORS\",\"MAXLENGTH\",\"MAXRECURSION\",\"MAXSIZE\",\"MAXTRANSFERSIZE\",\"MAXVALUE\",\"MB\",\"MEDIADESCRIPTION\",\"MEDIANAME\",\"MEDIAPASSWORD\",\"MEDIUM\",\"MEMBER\",\"MEMORY_OPTIMIZED\",\"MEMORY_OPTIMIZED_DATA\",\"MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT\",\"MEMORY_PARTITION_MODE\",\"MERGE\",\"MESSAGE\",\"MESSAGE_FORWARD_SIZE\",\"MESSAGE_FORWARDING\",\"MICROSECOND\",\"MILLISECOND\",\"MIN_CPU_PERCENT\",\"MIN_IOPS_PER_VOLUME\",\"MIN_MEMORY_PERCENT\",\"MINUTE\",\"MINUTES\",\"MINVALUE\",\"MIRROR\",\"MIRROR_ADDRESS\",\"MODIFY\",\"MONEY\",\"MONTH\",\"MOVE\",\"MULTI_USER\",\"MUST_CHANGE\",\"NAME\",\"NANOSECOND\",\"NATIONAL\",\"NATIVE_COMPILATION\",\"NCHAR\",\"NEGOTIATE\",\"NESTED_TRIGGERS\",\"NEW_ACCOUNT\",\"NEW_BROKER\",\"NEW_PASSWORD\",\"NEWNAME\",\"NEXT\",\"NO\",\"NO_BROWSETABLE\",\"NO_CHECKSUM\",\"NO_COMPRESSION\",\"NO_EVENT_LOSS\",\"NO_INFOMSGS\",\"NO_TRUNCATE\",\"NO_WAIT\",\"NOCHECK\",\"NOCOUNT\",\"NOEXEC\",\"NOEXPAND\",\"NOFORMAT\",\"NOINDEX\",\"NOINIT\",\"NOLOCK\",\"NON\",\"NON_TRANSACTED_ACCESS\",\"NONCLUSTERED\",\"NONE\",\"NORECOMPUTE\",\"NORECOVERY\",\"NORESEED\",\"NORESET\",\"NOREWIND\",\"NORMAL\",\"NOSKIP\",\"NOTIFICATION\",\"NOTRUNCATE\",\"NOUNLOAD\",\"NOWAIT\",\"NTEXT\",\"NTLM\",\"NUMANODE\",\"NUMERIC\",\"NUMERIC_ROUNDABORT\",\"NVARCHAR\",\"OBJECT\",\"OF\",\"OFF\",\"OFFLINE\",\"OFFSET\",\"OFFSETS\",\"OLD_ACCOUNT\",\"OLD_PASSWORD\",\"ON\",\"ON_FAILURE\",\"ONLINE\",\"ONLY\",\"OPEN\",\"OPEN_EXISTING\",\"OPENTRAN\",\"OPTIMISTIC\",\"OPTIMIZE\",\"OPTION\",\"ORDER\",\"OUT\",\"OUTPUT\",\"OUTPUTBUFFER\",\"OVER\",\"OVERRIDE\",\"OWNER\",\"OWNERSHIP\",\"PAD_INDEX\",\"PAGE\",\"PAGE_VERIFY\",\"PAGECOUNT\",\"PAGLOCK\",\"PARAMETERIZATION\",\"PARSEONLY\",\"PARTIAL\",\"PARTITION\",\"PARTITIONS\",\"PARTNER\",\"PASSWORD\",\"PATH\",\"PER_CPU\",\"PER_NODE\",\"PERCENT\",\"PERMISSION_SET\",\"PERSISTED\",\"PHYSICAL_ONLY\",\"PLAN\",\"POISON_MESSAGE_HANDLING\",\"POOL\",\"POPULATION\",\"PORT\",\"PRECEDING\",\"PRECISION\",\"PRIMARY\",\"PRIMARY_ROLE\",\"PRINT\",\"PRIOR\",\"PRIORITY\",\"PRIORITY_LEVEL\",\"PRIVATE\",\"PRIVILEGES\",\"PROC\",\"PROCCACHE\",\"PROCEDURE\",\"PROCEDURE_NAME\",\"PROCESS\",\"PROFILE\",\"PROPERTY\",\"PROPERTY_DESCRIPTION\",\"PROPERTY_INT_ID\",\"PROPERTY_SET_GUID\",\"PROVIDER\",\"PROVIDER_KEY_NAME\",\"PUBLIC\",\"PUT\",\"QUARTER\",\"QUERY\",\"QUERY_GOVERNOR_COST_LIMIT\",\"QUEUE\",\"QUEUE_DELAY\",\"QUOTED_IDENTIFIER\",\"RAISERROR\",\"RANGE\",\"RAW\",\"RC2\",\"RC4\",\"RC4_128\",\"READ\",\"READ_COMMITTED_SNAPSHOT\",\"READ_ONLY\",\"READ_ONLY_ROUTING_LIST\",\"READ_ONLY_ROUTING_URL\",\"READ_WRITE\",\"READ_WRITE_FILEGROUPS\",\"READCOMMITTED\",\"READCOMMITTEDLOCK\",\"READONLY\",\"READPAST\",\"READTEXT\",\"READUNCOMMITTED\",\"READWRITE\",\"REAL\",\"REBUILD\",\"RECEIVE\",\"RECOMPILE\",\"RECONFIGURE\",\"RECOVERY\",\"RECURSIVE\",\"RECURSIVE_TRIGGERS\",\"REFERENCES\",\"REGENERATE\",\"RELATED_CONVERSATION\",\"RELATED_CONVERSATION_GROUP\",\"RELATIVE\",\"REMOTE\",\"REMOTE_PROC_TRANSACTIONS\",\"REMOTE_SERVICE_NAME\",\"REMOVE\",\"REORGANIZE\",\"REPAIR_ALLOW_DATA_LOSS\",\"REPAIR_FAST\",\"REPAIR_REBUILD\",\"REPEATABLE\",\"REPEATABLEREAD\",\"REPLICA\",\"REPLICATION\",\"REQUEST_MAX_CPU_TIME_SEC\",\"REQUEST_MAX_MEMORY_GRANT_PERCENT\",\"REQUEST_MEMORY_GRANT_TIMEOUT_SEC\",\"REQUIRED\",\"RESAMPLE\",\"RESEED\",\"RESERVE_DISK_SPACE\",\"RESET\",\"RESOURCE\",\"RESTART\",\"RESTORE\",\"RESTRICT\",\"RESTRICTED_USER\",\"RESULT\",\"RESUME\",\"RETAINDAYS\",\"RETENTION\",\"RETURN\",\"RETURNS\",\"REVERT\",\"REVOKE\",\"REWIND\",\"REWINDONLY\",\"ROBUST\",\"ROLE\",\"ROLLBACK\",\"ROLLUP\",\"ROOT\",\"ROUTE\",\"ROW\",\"ROWCOUNT\",\"ROWGUIDCOL\",\"ROWLOCK\",\"ROWS\",\"ROWS_PER_BATCH\",\"ROWTERMINATOR\",\"ROWVERSION\",\"RSA_1024\",\"RSA_2048\",\"RSA_512\",\"RULE\",\"SAFE\",\"SAFETY\",\"SAMPLE\",\"SAVE\",\"SCHEDULER\",\"SCHEMA\",\"SCHEMA_AND_DATA\",\"SCHEMA_ONLY\",\"SCHEMABINDING\",\"SCHEME\",\"SCROLL\",\"SCROLL_LOCKS\",\"SEARCH\",\"SECOND\",\"SECONDARY\",\"SECONDARY_ONLY\",\"SECONDARY_ROLE\",\"SECONDS\",\"SECRET\",\"SECURITY_LOG\",\"SECURITYAUDIT\",\"SELECT\",\"SELECTIVE\",\"SELF\",\"SEND\",\"SENT\",\"SEQUENCE\",\"SERIALIZABLE\",\"SERVER\",\"SERVICE\",\"SERVICE_BROKER\",\"SERVICE_NAME\",\"SESSION\",\"SESSION_TIMEOUT\",\"SET\",\"SETS\",\"SETUSER\",\"SHOW_STATISTICS\",\"SHOWCONTIG\",\"SHOWPLAN\",\"SHOWPLAN_ALL\",\"SHOWPLAN_TEXT\",\"SHOWPLAN_XML\",\"SHRINKDATABASE\",\"SHRINKFILE\",\"SHUTDOWN\",\"SID\",\"SIGNATURE\",\"SIMPLE\",\"SINGLE_BLOB\",\"SINGLE_CLOB\",\"SINGLE_NCLOB\",\"SINGLE_USER\",\"SINGLETON\",\"SIZE\",\"SKIP\",\"SMALLDATETIME\",\"SMALLINT\",\"SMALLMONEY\",\"SNAPSHOT\",\"SORT_IN_TEMPDB\",\"SOURCE\",\"SPARSE\",\"SPATIAL\",\"SPATIAL_WINDOW_MAX_CELLS\",\"SPECIFICATION\",\"SPLIT\",\"SQL\",\"SQL_VARIANT\",\"SQLPERF\",\"STANDBY\",\"START\",\"START_DATE\",\"STARTED\",\"STARTUP_STATE\",\"STAT_HEADER\",\"STATE\",\"STATEMENT\",\"STATIC\",\"STATISTICAL_SEMANTICS\",\"STATISTICS\",\"STATISTICS_INCREMENTAL\",\"STATISTICS_NORECOMPUTE\",\"STATS\",\"STATS_STREAM\",\"STATUS\",\"STATUSONLY\",\"STOP\",\"STOP_ON_ERROR\",\"STOPAT\",\"STOPATMARK\",\"STOPBEFOREMARK\",\"STOPLIST\",\"STOPPED\",\"SUBJECT\",\"SUBSCRIPTION\",\"SUPPORTED\",\"SUSPEND\",\"SWITCH\",\"SYMMETRIC\",\"SYNCHRONOUS_COMMIT\",\"SYNONYM\",\"SYSNAME\",\"SYSTEM\",\"TABLE\",\"TABLERESULTS\",\"TABLESAMPLE\",\"TABLOCK\",\"TABLOCKX\",\"TAKE\",\"TAPE\",\"TARGET\",\"TARGET_RECOVERY_TIME\",\"TB\",\"TCP\",\"TEXT\",\"TEXTIMAGE_ON\",\"TEXTSIZE\",\"THEN\",\"THESAURUS\",\"THROW\",\"TIES\",\"TIME\",\"TIMEOUT\",\"TIMER\",\"TIMESTAMP\",\"TINYINT\",\"TO\",\"TOP\",\"TORN_PAGE_DETECTION\",\"TRACEOFF\",\"TRACEON\",\"TRACESTATUS\",\"TRACK_CAUSALITY\",\"TRACK_COLUMNS_UPDATED\",\"TRAN\",\"TRANSACTION\",\"TRANSFER\",\"TRANSFORM_NOISE_WORDS\",\"TRIGGER\",\"TRIPLE_DES\",\"TRIPLE_DES_3KEY\",\"TRUE\",\"TRUNCATE\",\"TRUNCATEONLY\",\"TRUSTWORTHY\",\"TRY\",\"TSQL\",\"TWO_DIGIT_YEAR_CUTOFF\",\"TYPE\",\"TYPE_WARNING\",\"UNBOUNDED\",\"UNCHECKED\",\"UNCOMMITTED\",\"UNDEFINED\",\"UNIQUE\",\"UNIQUEIDENTIFIER\",\"UNKNOWN\",\"UNLIMITED\",\"UNLOAD\",\"UNSAFE\",\"UPDATE\",\"UPDATETEXT\",\"UPDATEUSAGE\",\"UPDLOCK\",\"URL\",\"USE\",\"USED\",\"USER\",\"USEROPTIONS\",\"USING\",\"VALID_XML\",\"VALIDATION\",\"VALUE\",\"VALUES\",\"VARBINARY\",\"VARCHAR\",\"VARYING\",\"VERIFYONLY\",\"VERSION\",\"VIEW\",\"VIEW_METADATA\",\"VIEWS\",\"VISIBILITY\",\"WAIT_AT_LOW_PRIORITY\",\"WAITFOR\",\"WEEK\",\"WEIGHT\",\"WELL_FORMED_XML\",\"WHEN\",\"WHERE\",\"WHILE\",\"WINDOWS\",\"WITH\",\"WITHIN\",\"WITHOUT\",\"WITNESS\",\"WORK\",\"WORKLOAD\",\"WRITETEXT\",\"XACT_ABORT\",\"XLOCK\",\"XMAX\",\"XMIN\",\"XML\",\"XMLDATA\",\"XMLNAMESPACES\",\"XMLSCHEMA\",\"XQUERY\",\"XSINIL\",\"YEAR\",\"YMAX\",\"YMIN\"],operators:[\"ALL\",\"AND\",\"ANY\",\"BETWEEN\",\"EXISTS\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"SOME\",\"EXCEPT\",\"INTERSECT\",\"UNION\",\"APPLY\",\"CROSS\",\"FULL\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\",\"CONTAINS\",\"FREETEXT\",\"IS\",\"NULL\",\"PIVOT\",\"UNPIVOT\",\"MATCHED\"],builtinFunctions:[\"AVG\",\"CHECKSUM_AGG\",\"COUNT\",\"COUNT_BIG\",\"GROUPING\",\"GROUPING_ID\",\"MAX\",\"MIN\",\"SUM\",\"STDEV\",\"STDEVP\",\"VAR\",\"VARP\",\"CUME_DIST\",\"FIRST_VALUE\",\"LAG\",\"LAST_VALUE\",\"LEAD\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"PERCENT_RANK\",\"COLLATE\",\"COLLATIONPROPERTY\",\"TERTIARY_WEIGHTS\",\"FEDERATION_FILTERING_VALUE\",\"CAST\",\"CONVERT\",\"PARSE\",\"TRY_CAST\",\"TRY_CONVERT\",\"TRY_PARSE\",\"ASYMKEY_ID\",\"ASYMKEYPROPERTY\",\"CERTPROPERTY\",\"CERT_ID\",\"CRYPT_GEN_RANDOM\",\"DECRYPTBYASYMKEY\",\"DECRYPTBYCERT\",\"DECRYPTBYKEY\",\"DECRYPTBYKEYAUTOASYMKEY\",\"DECRYPTBYKEYAUTOCERT\",\"DECRYPTBYPASSPHRASE\",\"ENCRYPTBYASYMKEY\",\"ENCRYPTBYCERT\",\"ENCRYPTBYKEY\",\"ENCRYPTBYPASSPHRASE\",\"HASHBYTES\",\"IS_OBJECTSIGNED\",\"KEY_GUID\",\"KEY_ID\",\"KEY_NAME\",\"SIGNBYASYMKEY\",\"SIGNBYCERT\",\"SYMKEYPROPERTY\",\"VERIFYSIGNEDBYCERT\",\"VERIFYSIGNEDBYASYMKEY\",\"CURSOR_STATUS\",\"DATALENGTH\",\"IDENT_CURRENT\",\"IDENT_INCR\",\"IDENT_SEED\",\"IDENTITY\",\"SQL_VARIANT_PROPERTY\",\"CURRENT_TIMESTAMP\",\"DATEADD\",\"DATEDIFF\",\"DATEFROMPARTS\",\"DATENAME\",\"DATEPART\",\"DATETIME2FROMPARTS\",\"DATETIMEFROMPARTS\",\"DATETIMEOFFSETFROMPARTS\",\"DAY\",\"EOMONTH\",\"GETDATE\",\"GETUTCDATE\",\"ISDATE\",\"MONTH\",\"SMALLDATETIMEFROMPARTS\",\"SWITCHOFFSET\",\"SYSDATETIME\",\"SYSDATETIMEOFFSET\",\"SYSUTCDATETIME\",\"TIMEFROMPARTS\",\"TODATETIMEOFFSET\",\"YEAR\",\"CHOOSE\",\"COALESCE\",\"IIF\",\"NULLIF\",\"ABS\",\"ACOS\",\"ASIN\",\"ATAN\",\"ATN2\",\"CEILING\",\"COS\",\"COT\",\"DEGREES\",\"EXP\",\"FLOOR\",\"LOG\",\"LOG10\",\"PI\",\"POWER\",\"RADIANS\",\"RAND\",\"ROUND\",\"SIGN\",\"SIN\",\"SQRT\",\"SQUARE\",\"TAN\",\"APP_NAME\",\"APPLOCK_MODE\",\"APPLOCK_TEST\",\"ASSEMBLYPROPERTY\",\"COL_LENGTH\",\"COL_NAME\",\"COLUMNPROPERTY\",\"DATABASE_PRINCIPAL_ID\",\"DATABASEPROPERTYEX\",\"DB_ID\",\"DB_NAME\",\"FILE_ID\",\"FILE_IDEX\",\"FILE_NAME\",\"FILEGROUP_ID\",\"FILEGROUP_NAME\",\"FILEGROUPPROPERTY\",\"FILEPROPERTY\",\"FULLTEXTCATALOGPROPERTY\",\"FULLTEXTSERVICEPROPERTY\",\"INDEX_COL\",\"INDEXKEY_PROPERTY\",\"INDEXPROPERTY\",\"OBJECT_DEFINITION\",\"OBJECT_ID\",\"OBJECT_NAME\",\"OBJECT_SCHEMA_NAME\",\"OBJECTPROPERTY\",\"OBJECTPROPERTYEX\",\"ORIGINAL_DB_NAME\",\"PARSENAME\",\"SCHEMA_ID\",\"SCHEMA_NAME\",\"SCOPE_IDENTITY\",\"SERVERPROPERTY\",\"STATS_DATE\",\"TYPE_ID\",\"TYPE_NAME\",\"TYPEPROPERTY\",\"DENSE_RANK\",\"NTILE\",\"RANK\",\"ROW_NUMBER\",\"PUBLISHINGSERVERNAME\",\"OPENDATASOURCE\",\"OPENQUERY\",\"OPENROWSET\",\"OPENXML\",\"CERTENCODED\",\"CERTPRIVATEKEY\",\"CURRENT_USER\",\"HAS_DBACCESS\",\"HAS_PERMS_BY_NAME\",\"IS_MEMBER\",\"IS_ROLEMEMBER\",\"IS_SRVROLEMEMBER\",\"LOGINPROPERTY\",\"ORIGINAL_LOGIN\",\"PERMISSIONS\",\"PWDENCRYPT\",\"PWDCOMPARE\",\"SESSION_USER\",\"SESSIONPROPERTY\",\"SUSER_ID\",\"SUSER_NAME\",\"SUSER_SID\",\"SUSER_SNAME\",\"SYSTEM_USER\",\"USER\",\"USER_ID\",\"USER_NAME\",\"ASCII\",\"CHAR\",\"CHARINDEX\",\"CONCAT\",\"DIFFERENCE\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"LTRIM\",\"NCHAR\",\"PATINDEX\",\"QUOTENAME\",\"REPLACE\",\"REPLICATE\",\"REVERSE\",\"RIGHT\",\"RTRIM\",\"SOUNDEX\",\"SPACE\",\"STR\",\"STUFF\",\"SUBSTRING\",\"UNICODE\",\"UPPER\",\"BINARY_CHECKSUM\",\"CHECKSUM\",\"CONNECTIONPROPERTY\",\"CONTEXT_INFO\",\"CURRENT_REQUEST_ID\",\"ERROR_LINE\",\"ERROR_NUMBER\",\"ERROR_MESSAGE\",\"ERROR_PROCEDURE\",\"ERROR_SEVERITY\",\"ERROR_STATE\",\"FORMATMESSAGE\",\"GETANSINULL\",\"GET_FILESTREAM_TRANSACTION_CONTEXT\",\"HOST_ID\",\"HOST_NAME\",\"ISNULL\",\"ISNUMERIC\",\"MIN_ACTIVE_ROWVERSION\",\"NEWID\",\"NEWSEQUENTIALID\",\"ROWCOUNT_BIG\",\"XACT_STATE\",\"TEXTPTR\",\"TEXTVALID\",\"COLUMNS_UPDATED\",\"EVENTDATA\",\"TRIGGER_NESTLEVEL\",\"UPDATE\",\"CHANGETABLE\",\"CHANGE_TRACKING_CONTEXT\",\"CHANGE_TRACKING_CURRENT_VERSION\",\"CHANGE_TRACKING_IS_COLUMN_IN_MASK\",\"CHANGE_TRACKING_MIN_VALID_VERSION\",\"CONTAINSTABLE\",\"FREETEXTTABLE\",\"SEMANTICKEYPHRASETABLE\",\"SEMANTICSIMILARITYDETAILSTABLE\",\"SEMANTICSIMILARITYTABLE\",\"FILETABLEROOTPATH\",\"GETFILENAMESPACEPATH\",\"GETPATHLOCATOR\",\"PATHNAME\",\"GET_TRANSMISSION_STATUS\"],builtinVariables:[\"@@DATEFIRST\",\"@@DBTS\",\"@@LANGID\",\"@@LANGUAGE\",\"@@LOCK_TIMEOUT\",\"@@MAX_CONNECTIONS\",\"@@MAX_PRECISION\",\"@@NESTLEVEL\",\"@@OPTIONS\",\"@@REMSERVER\",\"@@SERVERNAME\",\"@@SERVICENAME\",\"@@SPID\",\"@@TEXTSIZE\",\"@@VERSION\",\"@@CURSOR_ROWS\",\"@@FETCH_STATUS\",\"@@DATEFIRST\",\"@@PROCID\",\"@@ERROR\",\"@@IDENTITY\",\"@@ROWCOUNT\",\"@@TRANCOUNT\",\"@@CONNECTIONS\",\"@@CPU_BUSY\",\"@@IDLE\",\"@@IO_BUSY\",\"@@PACKET_ERRORS\",\"@@PACK_RECEIVED\",\"@@PACK_SENT\",\"@@TIMETICKS\",\"@@TOTAL_ERRORS\",\"@@TOTAL_READ\",\"@@TOTAL_WRITE\"],pseudoColumns:[\"$ACTION\",\"$IDENTITY\",\"$ROWGUID\",\"$PARTITION\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N'/,{token:\"string\",next:\"@string\"}],[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[[/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i,\"keyword\"],[/BEGIN\\s+TRY\\b/i,{token:\"keyword.try\"}],[/END\\s+TRY\\b/i,{token:\"keyword.try\"}],[/BEGIN\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/END\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/(BEGIN|CASE)\\b/i,{token:\"keyword.block\"}],[/END\\b/i,{token:\"keyword.block\"}],[/WHEN\\b/i,{token:\"keyword.choice\"}],[/THEN\\b/i,{token:\"keyword.choice\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/st/st.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/st/st\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"var\",\"end_var\"],[\"var_input\",\"end_var\"],[\"var_output\",\"end_var\"],[\"var_in_out\",\"end_var\"],[\"var_temp\",\"end_var\"],[\"var_global\",\"end_var\"],[\"var_access\",\"end_var\"],[\"var_external\",\"end_var\"],[\"type\",\"end_type\"],[\"struct\",\"end_struct\"],[\"program\",\"end_program\"],[\"function\",\"end_function\"],[\"function_block\",\"end_function_block\"],[\"action\",\"end_action\"],[\"step\",\"end_step\"],[\"initial_step\",\"end_step\"],[\"transaction\",\"end_transaction\"],[\"configuration\",\"end_configuration\"],[\"tcp\",\"end_tcp\"],[\"recource\",\"end_recource\"],[\"channel\",\"end_channel\"],[\"library\",\"end_library\"],[\"folder\",\"end_folder\"],[\"binaries\",\"end_binaries\"],[\"includes\",\"end_includes\"],[\"sources\",\"end_sources\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"/*\",close:\"*/\"},{open:\"'\",close:\"'\",notIn:[\"string_sq\"]},{open:'\"',close:'\"',notIn:[\"string_dq\"]},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"var\",close:\"end_var\"},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".st\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"end_if\",\"elsif\",\"else\",\"case\",\"of\",\"to\",\"__try\",\"__catch\",\"__finally\",\"do\",\"with\",\"by\",\"while\",\"repeat\",\"end_while\",\"end_repeat\",\"end_case\",\"for\",\"end_for\",\"task\",\"retain\",\"non_retain\",\"constant\",\"with\",\"at\",\"exit\",\"return\",\"interval\",\"priority\",\"address\",\"port\",\"on_channel\",\"then\",\"iec\",\"file\",\"uses\",\"version\",\"packagetype\",\"displayname\",\"copyright\",\"summary\",\"vendor\",\"common_source\",\"from\",\"extends\"],constant:[\"false\",\"true\",\"null\"],defineKeywords:[\"var\",\"var_input\",\"var_output\",\"var_in_out\",\"var_temp\",\"var_global\",\"var_access\",\"var_external\",\"end_var\",\"type\",\"end_type\",\"struct\",\"end_struct\",\"program\",\"end_program\",\"function\",\"end_function\",\"function_block\",\"end_function_block\",\"interface\",\"end_interface\",\"method\",\"end_method\",\"property\",\"end_property\",\"namespace\",\"end_namespace\",\"configuration\",\"end_configuration\",\"tcp\",\"end_tcp\",\"resource\",\"end_resource\",\"channel\",\"end_channel\",\"library\",\"end_library\",\"folder\",\"end_folder\",\"binaries\",\"end_binaries\",\"includes\",\"end_includes\",\"sources\",\"end_sources\",\"action\",\"end_action\",\"step\",\"initial_step\",\"end_step\",\"transaction\",\"end_transaction\"],typeKeywords:[\"int\",\"sint\",\"dint\",\"lint\",\"usint\",\"uint\",\"udint\",\"ulint\",\"real\",\"lreal\",\"time\",\"date\",\"time_of_day\",\"date_and_time\",\"string\",\"bool\",\"byte\",\"word\",\"dword\",\"array\",\"pointer\",\"lword\"],operators:[\"=\",\">\",\"<\",\":\",\":=\",\"<=\",\">=\",\"<>\",\"&\",\"+\",\"-\",\"*\",\"**\",\"MOD\",\"^\",\"or\",\"and\",\"not\",\"xor\",\"abs\",\"acos\",\"asin\",\"atan\",\"cos\",\"exp\",\"expt\",\"ln\",\"log\",\"sin\",\"sqrt\",\"tan\",\"sel\",\"max\",\"min\",\"limit\",\"mux\",\"shl\",\"shr\",\"rol\",\"ror\",\"indexof\",\"sizeof\",\"adr\",\"adrinst\",\"bitadr\",\"is_valid\",\"ref\",\"ref_to\"],builtinVariables:[],builtinFunctions:[\"sr\",\"rs\",\"tp\",\"ton\",\"tof\",\"eq\",\"ge\",\"le\",\"lt\",\"ne\",\"round\",\"trunc\",\"ctd\",\"сtu\",\"ctud\",\"r_trig\",\"f_trig\",\"move\",\"concat\",\"delete\",\"find\",\"insert\",\"left\",\"len\",\"replace\",\"right\",\"rtc\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/(\\.\\.)/,\"delimiter\"],[/\\b(16#[0-9A-Fa-f\\_]*)+\\b/,\"number.hex\"],[/\\b(2#[01\\_]+)+\\b/,\"number.binary\"],[/\\b(8#[0-9\\_]*)+\\b/,\"number.octal\"],[/\\b\\d*\\.\\d+([eE][\\-+]?\\d+)?\\b/,\"number.float\"],[/\\b(L?REAL)#[0-9\\_\\.e]+\\b/,\"number.float\"],[/\\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\\_]+\\b/,\"number\"],[/\\d+/,\"number\"],[/\\b(T|DT|TOD)#[0-9:-_shmyd]+\\b/,\"tag\"],[/\\%(I|Q|M)(X|B|W|D|L)[0-9\\.]+/,\"tag\"],[/\\%(I|Q|M)[0-9\\.]*/,\"tag\"],[/\\b[A-Za-z]{1,6}#[0-9]+\\b/,\"tag\"],[/\\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\\b/,\"predefined\"],[/\\b[A_Za-z]+(_TO_)[A_Za-z]+\\b/,\"predefined\"],[/[;]/,\"delimiter\"],[/[.]/,{token:\"delimiter\",next:\"@params\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@operators\":\"operators\",\"@keywords\":\"keyword\",\"@typeKeywords\":\"type\",\"@defineKeywords\":\"variable\",\"@constant\":\"constant\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_dq\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_sq\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],params:[[/\\b[A-Za-z0-9_]+\\b(?=\\()/,{token:\"identifier\",next:\"@pop\"}],[/\\b[A-Za-z0-9_]+\\b/,\"variable.name\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],comment2:[[/[^\\(*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[\"\\\\*\\\\)\",\"comment\",\"@pop\"],[/[\\(*]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\(\\*/,\"comment\",\"@comment2\"]],string_dq:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],string_sq:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/swift/swift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n/*!---------------------------------------------------------------------------------------------\n *  Copyright (C) David Owens II, owensd.io. All rights reserved.\n *--------------------------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/swift/swift\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},t.language={defaultToken:\"\",tokenPostfix:\".swift\",identifier:/[a-zA-Z_][\\w$]*/,attributes:[\"@autoclosure\",\"@noescape\",\"@noreturn\",\"@NSApplicationMain\",\"@NSCopying\",\"@NSManaged\",\"@objc\",\"@UIApplicationMain\",\"@noreturn\",\"@availability\",\"@IBAction\",\"@IBDesignable\",\"@IBInspectable\",\"@IBOutlet\"],accessmodifiers:[\"public\",\"private\",\"internal\"],keywords:[\"__COLUMN__\",\"__FILE__\",\"__FUNCTION__\",\"__LINE__\",\"as\",\"as!\",\"as?\",\"associativity\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"convenience\",\"default\",\"deinit\",\"didSet\",\"do\",\"dynamic\",\"dynamicType\",\"else\",\"enum\",\"extension\",\"fallthrough\",\"final\",\"for\",\"func\",\"get\",\"guard\",\"if\",\"import\",\"in\",\"infix\",\"init\",\"inout\",\"internal\",\"is\",\"lazy\",\"left\",\"let\",\"mutating\",\"nil\",\"none\",\"nonmutating\",\"operator\",\"optional\",\"override\",\"postfix\",\"precedence\",\"prefix\",\"private\",\"protocol\",\"Protocol\",\"public\",\"repeat\",\"required\",\"return\",\"right\",\"self\",\"Self\",\"set\",\"static\",\"struct\",\"subscript\",\"super\",\"switch\",\"throw\",\"throws\",\"try\",\"try!\",\"Type\",\"typealias\",\"unowned\",\"var\",\"weak\",\"where\",\"while\",\"willSet\",\"FALSE\",\"TRUE\"],symbols:/[=(){}\\[\\].,:;@#\\_&\\-<>`?!+*\\\\\\/]/,operatorstart:/[\\/=\\-+!*%<>&|^~?\\u00A1-\\u00A7\\u00A9\\u00AB\\u00AC\\u00AE\\u00B0-\\u00B1\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7\\u2016-\\u2017\\u2020-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u23FF\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3030]/,operatorend:/[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uE0100-\\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},{include:\"@attribute\"},{include:\"@literal\"},{include:\"@keyword\"},{include:\"@invokedmethod\"},{include:\"@symbol\"}],whitespace:[[/\\s+/,\"white\"],[/\"\"\"/,\"string.quote\",\"@endDblDocString\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string.quote\",\"@popall\"],[/\"/,\"string\"]],symbol:[[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/[.]/,\"delimiter\"],[/@operators/,\"operator\"],[/@symbols/,\"operator\"]],comment:[[/\\/\\/\\/.*$/,\"comment.doc\"],[/\\/\\*\\*/,\"comment.doc\",\"@commentdocbody\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@commentbody\"]],commentdocbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/\\:[a-zA-Z]+\\:/,\"comment.doc.param\"],[/./,\"comment.doc\"]],commentbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment\",\"@pop\"],[/./,\"comment\"]],attribute:[[/\\@@identifier/,{cases:{\"@attributes\":\"keyword.control\",\"@default\":\"\"}}]],literal:[[/\"/,{token:\"string.quote\",next:\"@stringlit\"}],[/0[b]([01]_?)+/,\"number.binary\"],[/0[o]([0-7]_?)+/,\"number.octal\"],[/0[x]([0-9a-fA-F]_?)+([pP][\\-+](\\d_?)+)?/,\"number.hex\"],[/(\\d_?)*\\.(\\d_?)+([eE][\\-+]?(\\d_?)+)?/,\"number.float\"],[/(\\d_?)+/,\"number\"]],stringlit:[[/\\\\\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/@escapes/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}],[/./,\"string\"]],interpolatedexpression:[[/\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/\\)/,{token:\"operator\",next:\"@pop\"}],{include:\"@literal\"},{include:\"@keyword\"},{include:\"@symbol\"}],keyword:[[/`/,{token:\"operator\",next:\"@escapedkeyword\"}],[/@identifier/,{cases:{\"@keywords\":\"keyword\",\"[A-Z][a-zA-Z0-9$]*\":\"type.identifier\",\"@default\":\"identifier\"}}]],escapedkeyword:[[/`/,{token:\"operator\",next:\"@pop\"}],[/./,\"identifier\"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:[\"delimeter\",\"type.identifier\"],\"@default\":\"\"}}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/tcl/tcl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/tcl/tcl\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},t.language={tokenPostfix:\".tcl\",specialFunctions:[\"set\",\"unset\",\"rename\",\"variable\",\"proc\",\"coroutine\",\"foreach\",\"incr\",\"append\",\"lappend\",\"linsert\",\"lreplace\"],mainFunctions:[\"if\",\"then\",\"elseif\",\"else\",\"case\",\"switch\",\"while\",\"for\",\"break\",\"continue\",\"return\",\"package\",\"namespace\",\"catch\",\"exit\",\"eval\",\"expr\",\"uplevel\",\"upvar\"],builtinFunctions:[\"file\",\"info\",\"concat\",\"join\",\"lindex\",\"list\",\"llength\",\"lrange\",\"lsearch\",\"lsort\",\"split\",\"array\",\"parray\",\"binary\",\"format\",\"regexp\",\"regsub\",\"scan\",\"string\",\"subst\",\"dict\",\"cd\",\"clock\",\"exec\",\"glob\",\"pid\",\"pwd\",\"close\",\"eof\",\"fblocked\",\"fconfigure\",\"fcopy\",\"fileevent\",\"flush\",\"gets\",\"open\",\"puts\",\"read\",\"seek\",\"socket\",\"tell\",\"interp\",\"after\",\"auto_execok\",\"auto_load\",\"auto_mkindex\",\"auto_reset\",\"bgerror\",\"error\",\"global\",\"history\",\"load\",\"source\",\"time\",\"trace\",\"unknown\",\"unset\",\"update\",\"vwait\",\"winfo\",\"wm\",\"bind\",\"event\",\"pack\",\"place\",\"grid\",\"font\",\"bell\",\"clipboard\",\"destroy\",\"focus\",\"grab\",\"lower\",\"option\",\"raise\",\"selection\",\"send\",\"tk\",\"tkwait\",\"tk_bisque\",\"tk_focusNext\",\"tk_focusPrev\",\"tk_focusFollowsMouse\",\"tk_popup\",\"tk_setPalette\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],escapes:/\\\\(?:[abfnrtv\\\\\"'\\[\\]\\{\\};\\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\\$+(?:(?:\\:\\:?)?[a-zA-Z_]\\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@specialFunctions\":{token:\"keyword.flow\",next:\"@specialFunc\"},\"@mainFunctions\":\"keyword\",\"@builtinFunctions\":\"variable\",\"@default\":\"operator.scss\"}}],[/\\s+\\-+(?!\\d|\\.)\\w*|{\\*}/,\"metatag\"],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"operator\"],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/\\.(?!\\d|\\.)[\\w\\-]*/,\"operator.sql\"],[/\\d+(\\.\\d+)?/,\"number\"],[/\\d+/,\"number\"],[/;/,\"delimiter\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@dstring\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@sstring\"}]],dstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],sstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]']+/,\"string\"],[/@escapes/,\"string.escape\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#.*\\\\$/,{token:\"comment\",next:\"@newlineComment\"}],[/#.*(?!\\\\)$/,\"comment\"]],newlineComment:[[/.*\\\\$/,\"comment\"],[/.*(?!\\\\)$/,{token:\"comment\",next:\"@pop\"}]],nestedVariable:[[/[^\\{\\}\\$]+/,\"type.identifier\"],[/\\}/,{token:\"identifier\",next:\"@pop\"}]],nestedCall:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\]/,{token:\"@brackets\",next:\"@pop\"}],{include:\"root\"}],specialFunc:[[/\"/,{token:\"string\",next:\"@dstring\"}],[/'/,{token:\"string\",next:\"@sstring\"}],[/\\S+/,{token:\"type\",next:\"@pop\"}]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/twig/twig.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/twig/twig\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{#\",\"#}\"]},brackets:[[\"{#\",\"#}\"],[\"{%\",\"%}\"],[\"{{\",\"}}\"],[\"(\",\")\"],[\"[\",\"]\"],[\"\\x3c!--\",\"--\\x3e\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{# \",close:\" #}\"},{open:\"{% \",close:\" %}\"},{open:\"{{ \",close:\" }}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}]},e.language={defaultToken:\"\",tokenPostfix:\"\",ignoreCase:!0,keywords:[\"apply\",\"autoescape\",\"block\",\"deprecated\",\"do\",\"embed\",\"extends\",\"flush\",\"for\",\"from\",\"if\",\"import\",\"include\",\"macro\",\"sandbox\",\"set\",\"use\",\"verbatim\",\"with\",\"endapply\",\"endautoescape\",\"endblock\",\"endembed\",\"endfor\",\"endif\",\"endmacro\",\"endsandbox\",\"endset\",\"endwith\",\"true\",\"false\"],tokenizer:{root:[[/\\s+/],[/{#/,\"comment.twig\",\"@commentState\"],[/{%[-~]?/,\"delimiter.twig\",\"@blockState\"],[/{{[-~]?/,\"delimiter.twig\",\"@variableState\"],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<]+/]],commentState:[[/#}/,\"comment.twig\",\"@pop\"],[/./,\"comment.twig\"]],blockState:[[/[-~]?%}/,\"delimiter.twig\",\"@pop\"],[/\\s+/],[/(verbatim)(\\s*)([-~]?%})/,[\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@rawDataState\"}]],{include:\"expression\"}],rawDataState:[[/({%[-~]?)(\\s*)(endverbatim)(\\s*)([-~]?%})/,[\"delimiter.twig\",\"\",\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@popall\"}]],[/./,\"string.twig\"]],variableState:[[/[-~]?}}/,\"delimiter.twig\",\"@pop\"],{include:\"expression\"}],stringState:[[/\"/,\"string.twig\",\"@pop\"],[/#{\\s*/,\"string.twig\",\"@interpolationState\"],[/[^#\"\\\\]*(?:(?:\\\\.|#(?!\\{))[^#\"\\\\]*)*/,\"string.twig\"]],interpolationState:[[/}/,\"string.twig\",\"@pop\"],{include:\"expression\"}],expression:[[/\\s+/],[/\\+|-|\\/{1,2}|%|\\*{1,2}/,\"operators.twig\"],[/(and|or|not|b-and|b-xor|b-or)(\\s+)/,[\"operators.twig\",\"\"]],[/==|!=|<|>|>=|<=/,\"operators.twig\"],[/(starts with|ends with|matches)(\\s+)/,[\"operators.twig\",\"\"]],[/(in)(\\s+)/,[\"operators.twig\",\"\"]],[/(is)(\\s+)/,[\"operators.twig\",\"\"]],[/\\||~|:|\\.{1,2}|\\?{1,2}/,\"operators.twig\"],[/[^\\W\\d][\\w]*/,{cases:{\"@keywords\":\"keyword.twig\",\"@default\":\"variable.twig\"}}],[/\\d+(\\.\\d+)?/,\"number.twig\"],[/\\(|\\)|\\[|\\]|{|}|,/,\"delimiter.twig\"],[/\"([^#\"\\\\]*(?:\\\\.[^#\"\\\\]*)*)\"|\\'([^\\'\\\\]*(?:\\\\.[^\\'\\\\]*)*)\\'/,\"string.twig\"],[/\"/,\"string.twig\",\"@stringState\"],[/=>/,\"operators.twig\"],[/=/,\"operators.twig\"]],doctype:[[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name.html\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter.html\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name.html\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter.html\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/typescript/typescript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/typescript/typescript\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"undefined\"==typeof monaco?self.monaco:monaco;t.conf={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],onEnterRules:[{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,afterText:/^\\s*\\*\\/$/,action:{indentAction:n.languages.IndentAction.IndentOutdent,appendText:\" * \"}},{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,action:{indentAction:n.languages.IndentAction.None,appendText:\" * \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,action:{indentAction:n.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,action:{indentAction:n.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),end:new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")}}},t.language={defaultToken:\"invalid\",tokenPostfix:\".ts\",keywords:[\"abstract\",\"as\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"declare\",\"default\",\"delete\",\"do\",\"else\",\"enum\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"implements\",\"import\",\"in\",\"infer\",\"instanceof\",\"interface\",\"is\",\"keyof\",\"let\",\"module\",\"namespace\",\"never\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"readonly\",\"require\",\"global\",\"return\",\"set\",\"static\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"type\",\"typeof\",\"unique\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[\"any\",\"boolean\",\"number\",\"object\",\"string\",\"undefined\"],operators:[\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"=>\",\"+\",\"-\",\"**\",\"*\",\"/\",\"%\",\"++\",\"--\",\"<<\",\"</\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"??\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"@\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"],[/`/,\"string\",\"@string_backtick\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([gimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],string_single:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]],string_backtick:[[/\\$\\{/,{token:\"delimiter.bracket\",next:\"@bracketCounting\"}],[/[^\\\\`$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/`/,\"string\",\"@pop\"]],bracketCounting:[[/\\{/,\"delimiter.bracket\",\"@bracketCounting\"],[/\\}/,\"delimiter.bracket\",\"@pop\"],{include:\"common\"}]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/vb/vb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/vb/vb\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"'\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"],[\"addhandler\",\"end addhandler\"],[\"class\",\"end class\"],[\"enum\",\"end enum\"],[\"event\",\"end event\"],[\"function\",\"end function\"],[\"get\",\"end get\"],[\"if\",\"end if\"],[\"interface\",\"end interface\"],[\"module\",\"end module\"],[\"namespace\",\"end namespace\"],[\"operator\",\"end operator\"],[\"property\",\"end property\"],[\"raiseevent\",\"end raiseevent\"],[\"removehandler\",\"end removehandler\"],[\"select\",\"end select\"],[\"set\",\"end set\"],[\"structure\",\"end structure\"],[\"sub\",\"end sub\"],[\"synclock\",\"end synclock\"],[\"try\",\"end try\"],[\"while\",\"end while\"],[\"with\",\"end with\"],[\"using\",\"end using\"],[\"do\",\"loop\"],[\"for\",\"next\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"<\",close:\">\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*#Region\\\\b\"),end:new RegExp(\"^\\\\s*#End Region\\\\b\")}}},n.language={defaultToken:\"\",tokenPostfix:\".vb\",ignoreCase:!0,brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"},{token:\"keyword.tag-addhandler\",open:\"addhandler\",close:\"end addhandler\"},{token:\"keyword.tag-class\",open:\"class\",close:\"end class\"},{token:\"keyword.tag-enum\",open:\"enum\",close:\"end enum\"},{token:\"keyword.tag-event\",open:\"event\",close:\"end event\"},{token:\"keyword.tag-function\",open:\"function\",close:\"end function\"},{token:\"keyword.tag-get\",open:\"get\",close:\"end get\"},{token:\"keyword.tag-if\",open:\"if\",close:\"end if\"},{token:\"keyword.tag-interface\",open:\"interface\",close:\"end interface\"},{token:\"keyword.tag-module\",open:\"module\",close:\"end module\"},{token:\"keyword.tag-namespace\",open:\"namespace\",close:\"end namespace\"},{token:\"keyword.tag-operator\",open:\"operator\",close:\"end operator\"},{token:\"keyword.tag-property\",open:\"property\",close:\"end property\"},{token:\"keyword.tag-raiseevent\",open:\"raiseevent\",close:\"end raiseevent\"},{token:\"keyword.tag-removehandler\",open:\"removehandler\",close:\"end removehandler\"},{token:\"keyword.tag-select\",open:\"select\",close:\"end select\"},{token:\"keyword.tag-set\",open:\"set\",close:\"end set\"},{token:\"keyword.tag-structure\",open:\"structure\",close:\"end structure\"},{token:\"keyword.tag-sub\",open:\"sub\",close:\"end sub\"},{token:\"keyword.tag-synclock\",open:\"synclock\",close:\"end synclock\"},{token:\"keyword.tag-try\",open:\"try\",close:\"end try\"},{token:\"keyword.tag-while\",open:\"while\",close:\"end while\"},{token:\"keyword.tag-with\",open:\"with\",close:\"end with\"},{token:\"keyword.tag-using\",open:\"using\",close:\"end using\"},{token:\"keyword.tag-do\",open:\"do\",close:\"loop\"},{token:\"keyword.tag-for\",open:\"for\",close:\"next\"}],keywords:[\"AddHandler\",\"AddressOf\",\"Alias\",\"And\",\"AndAlso\",\"As\",\"Async\",\"Boolean\",\"ByRef\",\"Byte\",\"ByVal\",\"Call\",\"Case\",\"Catch\",\"CBool\",\"CByte\",\"CChar\",\"CDate\",\"CDbl\",\"CDec\",\"Char\",\"CInt\",\"Class\",\"CLng\",\"CObj\",\"Const\",\"Continue\",\"CSByte\",\"CShort\",\"CSng\",\"CStr\",\"CType\",\"CUInt\",\"CULng\",\"CUShort\",\"Date\",\"Decimal\",\"Declare\",\"Default\",\"Delegate\",\"Dim\",\"DirectCast\",\"Do\",\"Double\",\"Each\",\"Else\",\"ElseIf\",\"End\",\"EndIf\",\"Enum\",\"Erase\",\"Error\",\"Event\",\"Exit\",\"False\",\"Finally\",\"For\",\"Friend\",\"Function\",\"Get\",\"GetType\",\"GetXMLNamespace\",\"Global\",\"GoSub\",\"GoTo\",\"Handles\",\"If\",\"Implements\",\"Imports\",\"In\",\"Inherits\",\"Integer\",\"Interface\",\"Is\",\"IsNot\",\"Let\",\"Lib\",\"Like\",\"Long\",\"Loop\",\"Me\",\"Mod\",\"Module\",\"MustInherit\",\"MustOverride\",\"MyBase\",\"MyClass\",\"NameOf\",\"Namespace\",\"Narrowing\",\"New\",\"Next\",\"Not\",\"Nothing\",\"NotInheritable\",\"NotOverridable\",\"Object\",\"Of\",\"On\",\"Operator\",\"Option\",\"Optional\",\"Or\",\"OrElse\",\"Out\",\"Overloads\",\"Overridable\",\"Overrides\",\"ParamArray\",\"Partial\",\"Private\",\"Property\",\"Protected\",\"Public\",\"RaiseEvent\",\"ReadOnly\",\"ReDim\",\"RemoveHandler\",\"Resume\",\"Return\",\"SByte\",\"Select\",\"Set\",\"Shadows\",\"Shared\",\"Short\",\"Single\",\"Static\",\"Step\",\"Stop\",\"String\",\"Structure\",\"Sub\",\"SyncLock\",\"Then\",\"Throw\",\"To\",\"True\",\"Try\",\"TryCast\",\"TypeOf\",\"UInteger\",\"ULong\",\"UShort\",\"Using\",\"Variant\",\"Wend\",\"When\",\"While\",\"Widening\",\"With\",\"WithEvents\",\"WriteOnly\",\"Xor\"],tagwords:[\"If\",\"Sub\",\"Select\",\"Try\",\"Class\",\"Enum\",\"Function\",\"Get\",\"Interface\",\"Module\",\"Namespace\",\"Operator\",\"Set\",\"Structure\",\"Using\",\"While\",\"With\",\"Do\",\"Loop\",\"For\",\"Next\",\"Property\",\"Continue\",\"AddHandler\",\"RemoveHandler\",\"Event\",\"RaiseEvent\",\"SyncLock\"],symbols:/[=><!~?;\\.,:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:\"@whitespace\"},[/next(?!\\w)/,{token:\"keyword.tag-for\"}],[/loop(?!\\w)/,{token:\"keyword.tag-do\"}],[/end\\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:\"keyword.tag-$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@tagwords\":{token:\"keyword.tag-$0\"},\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/^\\s*#\\w+/,\"keyword\"],[/\\d*\\d+e([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+(e[\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/&H[0-9a-f]+(@integersuffix)/,\"number.hex\"],[/&0[0-7]+(@integersuffix)/,\"number.octal\"],[/\\d+(@integersuffix)/,\"number\"],[/#.*#/,\"number\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\'|REM(?!\\w)).*$/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"C?/,\"string\",\"@pop\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/xml/xml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/xml/xml\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.conf={comments:{blockComment:[\"\\x3c!--\",\"--\\x3e\"]},brackets:[[\"<\",\">\"]],autoClosingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}]},t.language={defaultToken:\"\",tokenPostfix:\".xml\",ignoreCase:!0,qualifiedName:/(?:[\\w\\.\\-]+:)?[\\w\\.\\-]+/,tokenizer:{root:[[/[^<&]+/,\"\"],{include:\"@whitespace\"},[/(<)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"tag\",next:\"@tag\"}]],[/(<\\/)(@qualifiedName)(\\s*)(>)/,[{token:\"delimiter\"},{token:\"tag\"},\"\",{token:\"delimiter\"}]],[/(<\\?)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/(<\\!)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/<\\!\\[CDATA\\[/,{token:\"delimiter.cdata\",next:\"@cdata\"}],[/&\\w+;/,\"string.escape\"]],cdata:[[/[^\\]]+/,\"\"],[/\\]\\]>/,{token:\"delimiter.cdata\",next:\"@pop\"}],[/\\]/,\"\"]],tag:[[/[ \\t\\r\\n]+/,\"\"],[/(@qualifiedName)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">?\\/]*|'[^'>?\\/]*)(?=[\\?\\/]\\>)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">]*|'[^'>]*)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/@qualifiedName/,\"attribute.name\"],[/\\?>/,{token:\"delimiter\",next:\"@pop\"}],[/(\\/)(>)/,[{token:\"tag\"},{token:\"delimiter\",next:\"@pop\"}]],[/>/,{token:\"delimiter\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/basic-languages/yaml/yaml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/yaml/yaml\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.conf={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{offSide:!0}},n.language={tokenPostfix:\".yaml\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"true\",\"True\",\"TRUE\",\"false\",\"False\",\"FALSE\",\"null\",\"Null\",\"Null\",\"~\"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\\.(?:inf|Inf|INF)/,numberNaN:/\\.(?:nan|Nan|NAN)/,numberDate:/\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,escapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/%[^ ]+.*$/,\"meta.directive\"],[/---/,\"operators.directivesEnd\"],[/\\.{3}/,\"operators.documentEnd\"],[/[-?:](?= )/,\"operators\"],{include:\"@anchor\"},{include:\"@tagHandle\"},{include:\"@flowCollections\"},{include:\"@blockStyle\"},[/@numberInteger(?![ \\t]*\\S+)/,\"number\"],[/@numberFloat(?![ \\t]*\\S+)/,\"number.float\"],[/@numberOctal(?![ \\t]*\\S+)/,\"number.octal\"],[/@numberHex(?![ \\t]*\\S+)/,\"number.hex\"],[/@numberInfinity(?![ \\t]*\\S+)/,\"number.infinity\"],[/@numberNaN(?![ \\t]*\\S+)/,\"number.nan\"],[/@numberDate(?![ \\t]*\\S+)/,\"number.date\"],[/(\".*?\"|'.*?'|.*?)([ \\t]*)(:)( |$)/,[\"type\",\"white\",\"operators\",\"white\"]],{include:\"@flowScalars\"},[/.+$/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],object:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\}/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],[/:(?= )/,\"operators\"],[/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/,\"type\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\},]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],array:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\]/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\],]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],multiString:[[/^( +).+$/,\"string\",\"@multiStringContinued.$1\"]],multiStringContinued:[[/^( *).+$/,{cases:{\"$1==$S2\":\"string\",\"@default\":{token:\"@rematch\",next:\"@popall\"}}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"]],comment:[[/#.*$/,\"comment\"]],flowCollections:[[/\\[/,\"@brackets\",\"@array\"],[/\\{/,\"@brackets\",\"@object\"]],flowScalars:[[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'[^']*'/,\"string\"],[/\"/,\"string\",\"@doubleQuotedString\"]],doubleQuotedString:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],blockStyle:[[/[>|][0-9]*[+-]?$/,\"operators\",\"@multiString\"]],flowNumber:[[/@numberInteger(?=[ \\t]*[,\\]\\}])/,\"number\"],[/@numberFloat(?=[ \\t]*[,\\]\\}])/,\"number.float\"],[/@numberOctal(?=[ \\t]*[,\\]\\}])/,\"number.octal\"],[/@numberHex(?=[ \\t]*[,\\]\\}])/,\"number.hex\"],[/@numberInfinity(?=[ \\t]*[,\\]\\}])/,\"number.infinity\"],[/@numberNaN(?=[ \\t]*[,\\]\\}])/,\"number.nan\"],[/@numberDate(?=[ \\t]*[,\\]\\}])/,\"number.date\"]],tagHandle:[[/\\![^ ]*/,\"tag\"]],anchor:[[/[&*][^ ]+/,\"namespace\"]]}}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.css",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/.monaco-action-bar{text-align:right;overflow:hidden;white-space:nowrap}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;width:100%;justify-content:flex-end}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar.reverse .actions-container{flex-direction:row-reverse}.monaco-action-bar .action-item{cursor:pointer;display:inline-block;transition:transform 50ms ease;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar.animated .action-item.active{transform:scale(1.272019649)}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:inline-block}.monaco-action-bar .action-label{font-size:11px;margin-right:4px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar.animated.vertical .action-item.active{transform:translate(5px)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-aria-container{position:absolute;left:-999em}.monaco-custom-checkbox{margin-left:2px;float:left;cursor:pointer;overflow:hidden;opacity:.7;width:20px;height:20px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-custom-checkbox.checked,.monaco-custom-checkbox:hover{opacity:1}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-custom-checkbox.monaco-simple-checkbox.unchecked:not(.checked):before{visibility:hidden}@font-face{font-family:codicon;src:url(../base/browser/ui/codiconLabel/codicon/codicon.ttf) format(\"truetype\")}.codicon[class*=codicon-]{font:normal normal normal 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codicon-add:before,.codicon-gist-new:before,.codicon-plus:before,.codicon-repo-create:before{content:\"\\ea60\"}.codicon-light-bulb:before,.codicon-lightbulb:before{content:\"\\ea61\"}.codicon-repo-delete:before,.codicon-repo:before{content:\"\\ea62\"}.codicon-gist-fork:before,.codicon-repo-forked:before{content:\"\\ea63\"}.codicon-git-pull-request-abandoned:before,.codicon-git-pull-request:before{content:\"\\ea64\"}.codicon-keyboard:before,.codicon-record-keys:before{content:\"\\ea65\"}.codicon-tag-add:before,.codicon-tag-remove:before,.codicon-tag:before{content:\"\\ea66\"}.codicon-person-add:before,.codicon-person-filled:before,.codicon-person-follow:before,.codicon-person-outline:before,.codicon-person:before{content:\"\\ea67\"}.codicon-git-branch-create:before,.codicon-git-branch-delete:before,.codicon-git-branch:before,.codicon-source-control:before{content:\"\\ea68\"}.codicon-mirror-public:before,.codicon-mirror:before{content:\"\\ea69\"}.codicon-star-add:before,.codicon-star-delete:before,.codicon-star-empty:before,.codicon-star:before{content:\"\\ea6a\"}.codicon-comment-add:before,.codicon-comment:before{content:\"\\ea6b\"}.codicon-alert:before,.codicon-warning:before{content:\"\\ea6c\"}.codicon-search-save:before,.codicon-search:before{content:\"\\ea6d\"}.codicon-log-out:before,.codicon-sign-out:before{content:\"\\ea6e\"}.codicon-log-in:before,.codicon-sign-in:before{content:\"\\ea6f\"}.codicon-eye-unwatch:before,.codicon-eye-watch:before,.codicon-eye:before{content:\"\\ea70\"}.codicon-circle-filled:before,.codicon-close-dirty:before,.codicon-debug-breakpoint-disabled:before,.codicon-debug-breakpoint:before,.codicon-debug-hint:before,.codicon-primitive-dot:before{content:\"\\ea71\"}.codicon-primitive-square:before{content:\"\\ea72\"}.codicon-edit:before,.codicon-pencil:before{content:\"\\ea73\"}.codicon-info:before,.codicon-issue-opened:before{content:\"\\ea74\"}.codicon-gist-private:before,.codicon-git-fork-private:before,.codicon-lock:before,.codicon-mirror-private:before{content:\"\\ea75\"}.codicon-close:before,.codicon-remove-close:before,.codicon-x:before{content:\"\\ea76\"}.codicon-repo-sync:before,.codicon-sync:before{content:\"\\ea77\"}.codicon-clone:before,.codicon-desktop-download:before{content:\"\\ea78\"}.codicon-beaker:before,.codicon-microscope:before{content:\"\\ea79\"}.codicon-device-desktop:before,.codicon-vm:before{content:\"\\ea7a\"}.codicon-file-text:before,.codicon-file:before{content:\"\\ea7b\"}.codicon-ellipsis:before,.codicon-kebab-horizontal:before,.codicon-more:before{content:\"\\ea7c\"}.codicon-mail-reply:before,.codicon-reply:before{content:\"\\ea7d\"}.codicon-organization-filled:before,.codicon-organization-outline:before,.codicon-organization:before{content:\"\\ea7e\"}.codicon-file-add:before,.codicon-new-file:before{content:\"\\ea7f\"}.codicon-file-directory-create:before,.codicon-new-folder:before{content:\"\\ea80\"}.codicon-trash:before,.codicon-trashcan:before{content:\"\\ea81\"}.codicon-clock:before,.codicon-history:before{content:\"\\ea82\"}.codicon-file-directory:before,.codicon-folder:before,.codicon-symbol-folder:before{content:\"\\ea83\"}.codicon-github:before,.codicon-logo-github:before,.codicon-mark-github:before{content:\"\\ea84\"}.codicon-console:before,.codicon-repl:before,.codicon-terminal:before{content:\"\\ea85\"}.codicon-symbol-event:before,.codicon-zap:before{content:\"\\ea86\"}.codicon-error:before,.codicon-stop:before{content:\"\\ea87\"}.codicon-symbol-variable:before,.codicon-variable:before{content:\"\\ea88\"}.codicon-array:before,.codicon-symbol-array:before{content:\"\\ea8a\"}.codicon-symbol-module:before,.codicon-symbol-namespace:before,.codicon-symbol-object:before,.codicon-symbol-package:before{content:\"\\ea8b\"}.codicon-symbol-constructor:before,.codicon-symbol-function:before,.codicon-symbol-method:before{content:\"\\ea8c\"}.codicon-symbol-boolean:before,.codicon-symbol-null:before{content:\"\\ea8f\"}.codicon-symbol-number:before,.codicon-symbol-numeric:before{content:\"\\ea90\"}.codicon-symbol-struct:before,.codicon-symbol-structure:before{content:\"\\ea91\"}.codicon-symbol-parameter:before,.codicon-symbol-type-parameter:before{content:\"\\ea92\"}.codicon-symbol-key:before,.codicon-symbol-text:before{content:\"\\ea93\"}.codicon-go-to-file:before,.codicon-symbol-reference:before{content:\"\\ea94\"}.codicon-symbol-enum:before,.codicon-symbol-value:before{content:\"\\ea95\"}.codicon-symbol-ruler:before,.codicon-symbol-unit:before{content:\"\\ea96\"}.codicon-activate-breakpoints:before{content:\"\\ea97\"}.codicon-archive:before{content:\"\\ea98\"}.codicon-arrow-both:before{content:\"\\ea99\"}.codicon-arrow-down:before{content:\"\\ea9a\"}.codicon-arrow-left:before{content:\"\\ea9b\"}.codicon-arrow-right:before{content:\"\\ea9c\"}.codicon-arrow-small-down:before{content:\"\\ea9d\"}.codicon-arrow-small-left:before{content:\"\\ea9e\"}.codicon-arrow-small-right:before{content:\"\\ea9f\"}.codicon-arrow-small-up:before{content:\"\\eaa0\"}.codicon-arrow-up:before{content:\"\\eaa1\"}.codicon-bell:before{content:\"\\eaa2\"}.codicon-bold:before{content:\"\\eaa3\"}.codicon-book:before{content:\"\\eaa4\"}.codicon-bookmark:before{content:\"\\eaa5\"}.codicon-debug-breakpoint-conditional-unverified:before{content:\"\\eaa6\"}.codicon-debug-breakpoint-conditional-disabled:before,.codicon-debug-breakpoint-conditional:before{content:\"\\eaa7\"}.codicon-debug-breakpoint-data-unverified:before{content:\"\\eaa8\"}.codicon-debug-breakpoint-data-disabled:before,.codicon-debug-breakpoint-data:before{content:\"\\eaa9\"}.codicon-debug-breakpoint-log-unverified:before{content:\"\\eaaa\"}.codicon-debug-breakpoint-log-disabled:before,.codicon-debug-breakpoint-log:before{content:\"\\eaab\"}.codicon-briefcase:before{content:\"\\eaac\"}.codicon-broadcast:before{content:\"\\eaad\"}.codicon-browser:before{content:\"\\eaae\"}.codicon-bug:before{content:\"\\eaaf\"}.codicon-calendar:before{content:\"\\eab0\"}.codicon-case-sensitive:before{content:\"\\eab1\"}.codicon-check:before{content:\"\\eab2\"}.codicon-checklist:before{content:\"\\eab3\"}.codicon-chevron-down:before{content:\"\\eab4\"}.codicon-chevron-left:before{content:\"\\eab5\"}.codicon-chevron-right:before{content:\"\\eab6\"}.codicon-chevron-up:before{content:\"\\eab7\"}.codicon-chrome-close:before{content:\"\\eab8\"}.codicon-chrome-maximize:before{content:\"\\eab9\"}.codicon-chrome-minimize:before{content:\"\\eaba\"}.codicon-chrome-restore:before{content:\"\\eabb\"}.codicon-circle-outline:before,.codicon-debug-breakpoint-unverified:before{content:\"\\eabc\"}.codicon-circle-slash:before{content:\"\\eabd\"}.codicon-circuit-board:before{content:\"\\eabe\"}.codicon-clear-all:before{content:\"\\eabf\"}.codicon-clippy:before{content:\"\\eac0\"}.codicon-close-all:before{content:\"\\eac1\"}.codicon-cloud-download:before{content:\"\\eac2\"}.codicon-cloud-upload:before{content:\"\\eac3\"}.codicon-code:before{content:\"\\eac4\"}.codicon-collapse-all:before{content:\"\\eac5\"}.codicon-color-mode:before{content:\"\\eac6\"}.codicon-comment-discussion:before{content:\"\\eac7\"}.codicon-compare-changes:before{content:\"\\eac8\"}.codicon-credit-card:before{content:\"\\eac9\"}.codicon-dash:before{content:\"\\eacc\"}.codicon-dashboard:before{content:\"\\eacd\"}.codicon-database:before{content:\"\\eace\"}.codicon-debug-continue:before{content:\"\\eacf\"}.codicon-debug-disconnect:before{content:\"\\ead0\"}.codicon-debug-pause:before{content:\"\\ead1\"}.codicon-debug-restart:before{content:\"\\ead2\"}.codicon-debug-start:before{content:\"\\ead3\"}.codicon-debug-step-into:before{content:\"\\ead4\"}.codicon-debug-step-out:before{content:\"\\ead5\"}.codicon-debug-step-over:before{content:\"\\ead6\"}.codicon-debug-stop:before{content:\"\\ead7\"}.codicon-debug:before{content:\"\\ead8\"}.codicon-device-camera-video:before{content:\"\\ead9\"}.codicon-device-camera:before{content:\"\\eada\"}.codicon-device-mobile:before{content:\"\\eadb\"}.codicon-diff-added:before{content:\"\\eadc\"}.codicon-diff-ignored:before{content:\"\\eadd\"}.codicon-diff-modified:before{content:\"\\eade\"}.codicon-diff-removed:before{content:\"\\eadf\"}.codicon-diff-renamed:before{content:\"\\eae0\"}.codicon-diff:before{content:\"\\eae1\"}.codicon-discard:before{content:\"\\eae2\"}.codicon-editor-layout:before{content:\"\\eae3\"}.codicon-empty-window:before{content:\"\\eae4\"}.codicon-exclude:before{content:\"\\eae5\"}.codicon-extensions:before{content:\"\\eae6\"}.codicon-eye-closed:before{content:\"\\eae7\"}.codicon-file-binary:before{content:\"\\eae8\"}.codicon-file-code:before{content:\"\\eae9\"}.codicon-file-media:before{content:\"\\eaea\"}.codicon-file-pdf:before{content:\"\\eaeb\"}.codicon-file-submodule:before{content:\"\\eaec\"}.codicon-file-symlink-directory:before{content:\"\\eaed\"}.codicon-file-symlink-file:before{content:\"\\eaee\"}.codicon-file-zip:before{content:\"\\eaef\"}.codicon-files:before{content:\"\\eaf0\"}.codicon-filter:before{content:\"\\eaf1\"}.codicon-flame:before{content:\"\\eaf2\"}.codicon-fold-down:before{content:\"\\eaf3\"}.codicon-fold-up:before{content:\"\\eaf4\"}.codicon-fold:before{content:\"\\eaf5\"}.codicon-folder-active:before{content:\"\\eaf6\"}.codicon-folder-opened:before{content:\"\\eaf7\"}.codicon-gear:before{content:\"\\eaf8\"}.codicon-gift:before{content:\"\\eaf9\"}.codicon-gist-secret:before{content:\"\\eafa\"}.codicon-gist:before{content:\"\\eafb\"}.codicon-git-commit:before{content:\"\\eafc\"}.codicon-git-compare:before{content:\"\\eafd\"}.codicon-git-merge:before{content:\"\\eafe\"}.codicon-github-action:before{content:\"\\eaff\"}.codicon-github-alt:before{content:\"\\eb00\"}.codicon-globe:before{content:\"\\eb01\"}.codicon-grabber:before{content:\"\\eb02\"}.codicon-graph:before{content:\"\\eb03\"}.codicon-gripper:before{content:\"\\eb04\"}.codicon-heart:before{content:\"\\eb05\"}.codicon-home:before{content:\"\\eb06\"}.codicon-horizontal-rule:before{content:\"\\eb07\"}.codicon-hubot:before{content:\"\\eb08\"}.codicon-inbox:before{content:\"\\eb09\"}.codicon-issue-closed:before{content:\"\\eb0a\"}.codicon-issue-reopened:before{content:\"\\eb0b\"}.codicon-issues:before{content:\"\\eb0c\"}.codicon-italic:before{content:\"\\eb0d\"}.codicon-jersey:before{content:\"\\eb0e\"}.codicon-json:before{content:\"\\eb0f\"}.codicon-kebab-vertical:before{content:\"\\eb10\"}.codicon-key:before{content:\"\\eb11\"}.codicon-law:before{content:\"\\eb12\"}.codicon-lightbulb-autofix:before{content:\"\\eb13\"}.codicon-link-external:before{content:\"\\eb14\"}.codicon-link:before{content:\"\\eb15\"}.codicon-list-ordered:before{content:\"\\eb16\"}.codicon-list-unordered:before{content:\"\\eb17\"}.codicon-live-share:before{content:\"\\eb18\"}.codicon-loading:before{content:\"\\eb19\"}.codicon-location:before{content:\"\\eb1a\"}.codicon-mail-read:before{content:\"\\eb1b\"}.codicon-mail:before{content:\"\\eb1c\"}.codicon-markdown:before{content:\"\\eb1d\"}.codicon-megaphone:before{content:\"\\eb1e\"}.codicon-mention:before{content:\"\\eb1f\"}.codicon-milestone:before{content:\"\\eb20\"}.codicon-mortar-board:before{content:\"\\eb21\"}.codicon-move:before{content:\"\\eb22\"}.codicon-multiple-windows:before{content:\"\\eb23\"}.codicon-mute:before{content:\"\\eb24\"}.codicon-no-newline:before{content:\"\\eb25\"}.codicon-note:before{content:\"\\eb26\"}.codicon-octoface:before{content:\"\\eb27\"}.codicon-open-preview:before{content:\"\\eb28\"}.codicon-package:before{content:\"\\eb29\"}.codicon-paintcan:before{content:\"\\eb2a\"}.codicon-pin:before{content:\"\\eb2b\"}.codicon-play:before{content:\"\\eb2c\"}.codicon-plug:before{content:\"\\eb2d\"}.codicon-preserve-case:before{content:\"\\eb2e\"}.codicon-preview:before{content:\"\\eb2f\"}.codicon-project:before{content:\"\\eb30\"}.codicon-pulse:before{content:\"\\eb31\"}.codicon-question:before{content:\"\\eb32\"}.codicon-quote:before{content:\"\\eb33\"}.codicon-radio-tower:before{content:\"\\eb34\"}.codicon-reactions:before{content:\"\\eb35\"}.codicon-references:before{content:\"\\eb36\"}.codicon-refresh:before{content:\"\\eb37\"}.codicon-regex:before{content:\"\\eb38\"}.codicon-remote-explorer:before{content:\"\\eb39\"}.codicon-remote:before{content:\"\\eb3a\"}.codicon-remove:before{content:\"\\eb3b\"}.codicon-replace-all:before{content:\"\\eb3c\"}.codicon-replace:before{content:\"\\eb3d\"}.codicon-repo-clone:before{content:\"\\eb3e\"}.codicon-repo-force-push:before{content:\"\\eb3f\"}.codicon-repo-pull:before{content:\"\\eb40\"}.codicon-repo-push:before{content:\"\\eb41\"}.codicon-report:before{content:\"\\eb42\"}.codicon-request-changes:before{content:\"\\eb43\"}.codicon-rocket:before{content:\"\\eb44\"}.codicon-root-folder-opened:before{content:\"\\eb45\"}.codicon-root-folder:before{content:\"\\eb46\"}.codicon-rss:before{content:\"\\eb47\"}.codicon-ruby:before{content:\"\\eb48\"}.codicon-save-all:before{content:\"\\eb49\"}.codicon-save-as:before{content:\"\\eb4a\"}.codicon-save:before{content:\"\\eb4b\"}.codicon-screen-full:before{content:\"\\eb4c\"}.codicon-screen-normal:before{content:\"\\eb4d\"}.codicon-search-stop:before{content:\"\\eb4e\"}.codicon-server:before{content:\"\\eb50\"}.codicon-settings-gear:before{content:\"\\eb51\"}.codicon-settings:before{content:\"\\eb52\"}.codicon-shield:before{content:\"\\eb53\"}.codicon-smiley:before{content:\"\\eb54\"}.codicon-sort-precedence:before{content:\"\\eb55\"}.codicon-split-horizontal:before{content:\"\\eb56\"}.codicon-split-vertical:before{content:\"\\eb57\"}.codicon-squirrel:before{content:\"\\eb58\"}.codicon-star-full:before{content:\"\\eb59\"}.codicon-star-half:before{content:\"\\eb5a\"}.codicon-symbol-class:before{content:\"\\eb5b\"}.codicon-symbol-color:before{content:\"\\eb5c\"}.codicon-symbol-constant:before{content:\"\\eb5d\"}.codicon-symbol-enum-member:before{content:\"\\eb5e\"}.codicon-symbol-field:before{content:\"\\eb5f\"}.codicon-symbol-file:before{content:\"\\eb60\"}.codicon-symbol-interface:before{content:\"\\eb61\"}.codicon-symbol-keyword:before{content:\"\\eb62\"}.codicon-symbol-misc:before{content:\"\\eb63\"}.codicon-symbol-operator:before{content:\"\\eb64\"}.codicon-symbol-property:before{content:\"\\eb65\"}.codicon-symbol-snippet:before{content:\"\\eb66\"}.codicon-tasklist:before{content:\"\\eb67\"}.codicon-telescope:before{content:\"\\eb68\"}.codicon-text-size:before{content:\"\\eb69\"}.codicon-three-bars:before{content:\"\\eb6a\"}.codicon-thumbsdown:before{content:\"\\eb6b\"}.codicon-thumbsup:before{content:\"\\eb6c\"}.codicon-tools:before{content:\"\\eb6d\"}.codicon-triangle-down:before{content:\"\\eb6e\"}.codicon-triangle-left:before{content:\"\\eb6f\"}.codicon-triangle-right:before{content:\"\\eb70\"}.codicon-triangle-up:before{content:\"\\eb71\"}.codicon-twitter:before{content:\"\\eb72\"}.codicon-unfold:before{content:\"\\eb73\"}.codicon-unlock:before{content:\"\\eb74\"}.codicon-unmute:before{content:\"\\eb75\"}.codicon-unverified:before{content:\"\\eb76\"}.codicon-verified:before{content:\"\\eb77\"}.codicon-versions:before{content:\"\\eb78\"}.codicon-vm-active:before{content:\"\\eb79\"}.codicon-vm-outline:before{content:\"\\eb7a\"}.codicon-vm-running:before{content:\"\\eb7b\"}.codicon-watch:before{content:\"\\eb7c\"}.codicon-whitespace:before{content:\"\\eb7d\"}.codicon-whole-word:before{content:\"\\eb7e\"}.codicon-window:before{content:\"\\eb7f\"}.codicon-word-wrap:before{content:\"\\eb80\"}.codicon-zoom-in:before{content:\"\\eb81\"}.codicon-zoom-out:before{content:\"\\eb82\"}.codicon-list-filter:before{content:\"\\eb83\"}.codicon-list-flat:before{content:\"\\eb84\"}.codicon-list-selection:before,.codicon-selection:before{content:\"\\eb85\"}.codicon-list-tree:before{content:\"\\eb86\"}.codicon-debug-breakpoint-function-unverified:before{content:\"\\eb87\"}.codicon-debug-breakpoint-function-disabled:before,.codicon-debug-breakpoint-function:before{content:\"\\eb88\"}.codicon-debug-stackframe-active:before{content:\"\\eb89\"}.codicon-debug-stackframe-dot:before{content:\"\\eb8a\"}.codicon-debug-stackframe-focused:before,.codicon-debug-stackframe:before{content:\"\\eb8b\"}.codicon-debug-breakpoint-unsupported:before{content:\"\\eb8c\"}.codicon-symbol-string:before{content:\"\\eb8d\"}.codicon-debug-reverse-continue:before{content:\"\\eb8e\"}.codicon-debug-step-back:before{content:\"\\eb8f\"}.codicon-debug-restart-frame:before{content:\"\\eb90\"}.codicon-debug-alternate:before{content:\"\\eb91\"}.codicon-call-incoming:before{content:\"\\eb92\"}.codicon-call-outgoing:before{content:\"\\eb93\"}.codicon-menu:before{content:\"\\eb94\"}.codicon-expand-all:before{content:\"\\eb95\"}.codicon-feedback:before{content:\"\\eb96\"}.codicon-group-by-ref-type:before{content:\"\\eb97\"}.codicon-ungroup-by-ref-type:before{content:\"\\eb98\"}.codicon-debug-alt:before{content:\"\\f101\"}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-animation-spin{animation:codicon-spin 1.5s linear infinite}.context-view{position:absolute;z-index:2500}.monaco-count-badge{padding:3px 5px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.italic>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;padding:0 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after,.monaco-tree.focused .selected .monaco-icon-label,.monaco-tree.focused .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.monaco-tree-row.focused.selected .label-description,.monaco-tree-row.selected .label-description{opacity:.8}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;font-size:inherit}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.wrapper>.input,.monaco-inputbox>.wrapper>.mirror{padding:4px}.monaco-inputbox>.wrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.wrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.wrapper>input{text-overflow:ellipsis}.monaco-inputbox>.wrapper>textarea.input{display:block;-ms-overflow-style:none;scrollbar-width:none;outline:none}.monaco-inputbox>.wrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.wrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.wrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;min-height:34px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);border-radius:3px;box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);background-color:hsla(0,0%,87%,.4);vertical-align:middle;color:#555;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.hc-black .monaco-keybinding>.monaco-keybinding-key,.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);color:#ccc;border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6)}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-list:focus .monaco-list-row.selected .codicon{color:inherit}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-list-type-filter{display:flex;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:flex;align-items:center;box-sizing:border-box;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;flex-shrink:0;margin:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter:checked:before{content:\"\\eb83\"!important}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:grab}.monaco-list-type-filter.dragging{cursor:grabbing}.monaco-menu .monaco-action-bar.vertical{margin-left:0;overflow:visible}.monaco-menu .monaco-action-bar.vertical .actions-container{display:block}.monaco-menu .monaco-action-bar.vertical .action-item{padding:0;transform:none;display:flex}.monaco-menu .monaco-action-bar.vertical .action-item.active{transform:none}.monaco-menu .monaco-action-bar.vertical .action-menu-item{flex:1 1 auto;display:flex;height:2em;align-items:center;position:relative}.monaco-menu .monaco-action-bar.vertical .action-label{flex:1 1 auto;text-decoration:none;padding:0 1em;background:none;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .keybinding,.monaco-menu .monaco-action-bar.vertical .submenu-indicator{display:inline-block;flex:2 1 auto;padding:0 1em;text-align:right;font-size:12px;line-height:1}.monaco-menu .monaco-action-bar.vertical .submenu-indicator{height:100%}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon{font-size:16px!important;display:flex;align-items:center}.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon:before{margin-left:auto;margin-right:-20px}.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator{opacity:.4}.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator){display:inline-block;box-sizing:border-box;margin:0}.monaco-menu .monaco-action-bar.vertical .action-item{position:static;overflow:visible}.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu{position:absolute}.monaco-menu .monaco-action-bar.vertical .action-label.separator{padding:.5em 0 0;margin-bottom:.5em;width:100%}.monaco-menu .monaco-action-bar.vertical .action-label.separator.text{padding:.7em 1em .1em;font-weight:700;opacity:1}.monaco-menu .monaco-action-bar.vertical .action-label:hover{color:inherit}.monaco-menu .monaco-action-bar.vertical .menu-item-check{position:absolute;visibility:hidden;width:1em;height:100%}.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check{visibility:visible;display:flex;align-items:center;justify-content:center}.context-view.monaco-menu-container{outline:0;border:none;animation:fadeIn 83ms linear}.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,.context-view.monaco-menu-container .monaco-action-bar.vertical :focus,.context-view.monaco-menu-container :focus{outline:0}.monaco-menu .monaco-action-bar.vertical .action-item{border:thin solid transparent}.hc-black .context-view.monaco-menu-container{box-shadow:none}.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused{background:none}.menubar{display:flex;flex-shrink:1;box-sizing:border-box;height:30px;overflow:hidden;flex-wrap:wrap}.fullscreen .menubar:not(.compact){margin:0;padding:0 5px}.menubar>.menubar-menu-button{align-items:center;box-sizing:border-box;padding:0 8px;cursor:default;-webkit-app-region:no-drag;zoom:1;white-space:nowrap;outline:0}.menubar.compact{flex-shrink:0}.menubar.compact>.menubar-menu-button{width:100%;height:100%;padding:0}.menubar .menubar-menu-items-holder{position:absolute;left:0;opacity:1;z-index:2000}.menubar .menubar-menu-items-holder.monaco-menu-container{outline:0;border:none}.menubar .menubar-menu-items-holder.monaco-menu-container :focus{outline:0}.menubar .toolbar-toggle-more{width:20px;height:100%}.menubar.compact .toolbar-toggle-more{position:absolute;left:0;top:0;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center}.menubar .toolbar-toggle-more{padding:0;vertical-align:sub}.menubar.compact .toolbar-toggle-more:before{content:\"\\eb94\"!important}.monaco-progress-container{width:100%;height:5px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:5px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:linear;transform:translateZ(0)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4950%) scaleX(1)}}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.vertical{cursor:ew-resize;top:0;width:4px;height:100%}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:4px}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash:not(.disabled).orthogonal-end:after,.monaco-sash:not(.disabled).orthogonal-start:before{content:\" \";height:8px;width:8px;z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.orthogonal-start.vertical:before{left:-2px;top:-4px}.monaco-sash.orthogonal-end.vertical:after{left:-2px;bottom:-4px}.monaco-sash.orthogonal-start.horizontal:before{top:-2px;left:-4px}.monaco-sash.orthogonal-end.horizontal:after{top:-2px;right:-4px}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.touch.vertical{width:20px}.monaco-sash.touch.horizontal{height:20px}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled).orthogonal-end:after,.monaco-sash.debug:not(.disabled).orthogonal-start:before{background:red}.monaco-scrollable-element>.scrollbar>.up-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=);cursor:pointer}.monaco-scrollable-element>.scrollbar>.down-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=);cursor:pointer}.monaco-scrollable-element>.scrollbar>.left-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+);cursor:pointer}.monaco-scrollable-element>.scrollbar>.right-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+);cursor:pointer}.hc-black .monaco-scrollable-element>.scrollbar>.up-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.up-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiNFOEU4RTgiLz48L3N2Zz4=)}.hc-black .monaco-scrollable-element>.scrollbar>.down-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.down-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=)}.hc-black .monaco-scrollable-element>.scrollbar>.left-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.left-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+)}.hc-black .monaco-scrollable-element>.scrollbar>.right-arrow,.vs-dark .monaco-scrollable-element>.scrollbar>.right-arrow{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+)}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:inset 0 6px 6px -6px #ddd}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:inset 6px 0 6px -6px #ddd}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:inset 6px 6px 6px -6px #ddd}.vs .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,39%,.4)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:hsla(0,0%,47%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider{background:rgba(111,195,223,.6)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:hsla(0,0%,39%,.7)}.hc-black .monaco-scrollable-element>.scrollbar>.slider:hover{background:rgba(111,195,223,.8)}.monaco-scrollable-element>.scrollbar>.slider.active{background:rgba(0,0,0,.6)}.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active{background:hsla(0,0%,75%,.4)}.hc-black .monaco-scrollable-element>.scrollbar>.slider.active{background:#6fc3df}.vs-dark .monaco-scrollable-element .shadow.top{box-shadow:none}.vs-dark .monaco-scrollable-element .shadow.left{box-shadow:inset 6px 0 6px -6px #000}.vs-dark .monaco-scrollable-element .shadow.top.left{box-shadow:inset 6px 6px 6px -6px #000}.hc-black .monaco-scrollable-element .shadow.left,.hc-black .monaco-scrollable-element .shadow.top,.hc-black .monaco-scrollable-element .shadow.top.left{box-shadow:none}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.split-view-container>.split-view-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;color:inherit!important;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-loading:before{animation:codicon-spin 1.25s linear infinite}.monaco-quick-open-widget{position:absolute;width:600px;z-index:2000;padding-bottom:6px;left:50%;margin-left:-300px}.monaco-quick-open-widget .monaco-progress-container{position:absolute;left:0;top:38px;z-index:1;height:2px}.monaco-quick-open-widget .monaco-progress-container .progress-bit{height:2px}.monaco-quick-open-widget .quick-open-input{width:588px;border:none;margin:6px}.monaco-quick-open-widget .quick-open-input .monaco-inputbox{width:100%;height:25px}.monaco-quick-open-widget .quick-open-result-count{position:absolute;left:-10000px}.monaco-quick-open-widget .quick-open-tree{line-height:22px}.monaco-quick-open-widget .quick-open-tree .monaco-tree-row>.content>.sub-content{overflow:hidden}.monaco-quick-open-widget.content-changing .quick-open-tree .monaco-scrollable-element .slider{display:none}.monaco-quick-open-widget .quick-open-tree .quick-open-entry{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%}.monaco-quick-open-widget .quick-open-tree .quick-open-entry>.quick-open-row{display:flex;align-items:center}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon{overflow:hidden;width:16px;height:16px;margin-right:4px;display:flex;align-items:center;vertical-align:middle;flex-shrink:0}.monaco-quick-open-widget .quick-open-tree .monaco-icon-label,.monaco-quick-open-widget .quick-open-tree .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .monaco-highlighted-label span{opacity:1}.monaco-quick-open-widget .quick-open-tree .quick-open-entry .monaco-highlighted-label .codicon{vertical-align:sub}.monaco-quick-open-widget .quick-open-tree .quick-open-entry-meta{opacity:.7;line-height:normal}.monaco-quick-open-widget .quick-open-tree .content.has-group-label .quick-open-entry-keybinding{margin-right:8px}.monaco-quick-open-widget .quick-open-tree .quick-open-entry-keybinding .monaco-keybinding-key{vertical-align:text-bottom}.monaco-quick-open-widget .quick-open-tree .results-group{margin-right:18px}.monaco-quick-open-widget .quick-open-tree .focused .monaco-tree-row.focused>.content.has-actions>.results-group,.monaco-quick-open-widget .quick-open-tree .monaco-tree-row.focused>.content.has-actions>.results-group,.monaco-quick-open-widget .quick-open-tree .monaco-tree-row:hover:not(.highlighted)>.content.has-actions>.results-group{margin-right:0}.monaco-quick-open-widget .quick-open-tree .results-group-separator{border-top-width:1px;border-top-style:solid;box-sizing:border-box;margin-left:-11px;padding-left:11px}.monaco-tree .monaco-tree-row>.content.actions{position:relative;display:flex}.monaco-tree .monaco-tree-row>.content.actions>.sub-content{flex:1}.monaco-tree .monaco-tree-row>.content.actions .action-item{margin:0}.monaco-tree .monaco-tree-row>.content.actions>.primary-action-bar{line-height:22px;display:none;padding:0 .8em 0 .4em}.monaco-tree .monaco-tree-row.focused>.content.has-actions>.primary-action-bar{width:0;display:block}.monaco-tree.focused .monaco-tree-row.focused>.content.has-actions>.primary-action-bar,.monaco-tree .monaco-tree-row:hover:not(.highlighted)>.content.has-actions>.primary-action-bar,.monaco-tree .monaco-tree-row>.content.has-actions.more>.primary-action-bar{width:inherit;display:block}.monaco-tree .monaco-tree-row>.content.actions>.primary-action-bar .action-label{margin-right:.4em;margin-top:4px;background-repeat:no-repeat;width:16px;height:16px}.monaco-quick-open-widget .quick-open-tree .monaco-highlighted-label .highlight{font-weight:700}.monaco-tree{height:100%;width:100%;white-space:nowrap;user-select:none;-webkit-user-select:none;-ms-user-select:none;position:relative}.monaco-tree>.monaco-scrollable-element{height:100%}.monaco-tree>.monaco-scrollable-element>.monaco-tree-wrapper{height:100%;width:100%;position:relative}.monaco-tree .monaco-tree-rows{position:absolute;width:100%;height:100%}.monaco-tree .monaco-tree-rows>.monaco-tree-row{box-sizing:border-box;cursor:pointer;overflow:hidden;width:100%;touch-action:none}.monaco-tree .monaco-tree-rows>.monaco-tree-row>.content{position:relative;height:100%}.monaco-tree-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute}.monaco-tree .monaco-tree-rows>.monaco-tree-row.scrolling{display:none}.monaco-tree.highlighted .monaco-tree-rows>.monaco-tree-row:not(.highlighted){opacity:.3}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .lines-content .cigr,.monaco-editor .lines-content .cigra{position:absolute}.monaco-editor .margin-view-overlays .line-numbers{position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{cursor:text;white-space:nowrap}.monaco-editor.hc-black.mac .view-lines,.monaco-editor.vs-dark.mac .view-lines{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;cursor:text;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-diff-editor .diffViewport{box-shadow:inset 0 0 1px 0 #b9b9b9;background:rgba(0,0,0,.1)}.monaco-diff-editor.hc-black .diffViewport,.monaco-diff-editor.vs-dark .diffViewport{background:hsla(0,0%,100%,.1)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .diagonal-fill{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAChJREFUKFNjOH/+fAMDDgCSu3Dhwn9c8gwwBTgNGR4KQP4HhQOhsAIAZCBTkhtqePcAAAAASUVORK5CYII=)}.monaco-editor.vs-dark .diagonal-fill{opacity:.2}.monaco-editor.hc-black .diagonal-fill{background:none}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-cell{display:table-cell}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .bracket-match{box-sizing:border-box}.monaco-menu .monaco-action-bar.vertical .action-label.hover{background-color:#eee}.monaco-editor .codicon-lightbulb,.monaco-editor .lightbulb-glyph{display:flex;align-items:center;justify-content:center;height:16px;width:20px;padding-left:2px}.monaco-editor .codicon-lightbulb:hover,.monaco-editor .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .colorpicker-hover:focus{outline:none}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:216px;line-height:24px;cursor:pointer;color:#fff;flex:1;text-align:center}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-list .monaco-list-row.focused.selected .outline-element-decoration,.monaco-list .monaco-list-row.focused.selected .outline-element .monaco-highlighted-label{color:inherit!important}.monaco-list .outline-element{display:flex;flex:1;flex-flow:row nowrap;align-items:center}.monaco-list .outline-element .monaco-highlighted-label{color:var(--outline-element-color)}.monaco-tree .monaco-tree-row.focused .outline-element .outline-element-detail{visibility:inherit}.monaco-list .outline-element .outline-element-decoration{opacity:.75;font-size:90%;font-weight:600;padding:0 12px 0 5px;margin-left:auto;text-align:center;color:var(--outline-element-color)}.monaco-list .outline-element .outline-element-decoration.bubble{font-family:codicon;font-size:14px;opacity:.4}.monaco-list .outline-element .outline-element-icon{margin-right:4px}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-editor .find-widget{position:absolute;z-index:10;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px))}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:4px 0 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.wrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.wrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.wrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:20px;height:20px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .button:not(.disabled):hover{background-color:rgba(0,0,0,.1)}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{opacity:.3;cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{width:2px!important;margin-left:-4px}.monaco-editor.hc-black .find-widget .button:not(.disabled):hover,.monaco-editor.vs-dark .find-widget .button:not(.disabled):hover{background-color:hsla(0,0%,100%,.1)}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .margin-view-overlays .codicon-chevron-down,.monaco-editor .margin-view-overlays .codicon-chevron-right{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-chevron-right,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;margin:.1em .2em 0;content:\"⋯\";display:inline;line-height:1em;cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;-ms-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:\"(\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:\")\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor-hover{cursor:default;position:absolute;overflow:hidden;z-index:50;user-select:text;-webkit-user-select:text;-ms-user-select:text;box-sizing:initial;animation:fadein .1s linear;line-height:1.5em}.monaco-editor-hover.hidden{display:none}.monaco-editor-hover .hover-contents{padding:4px 8px}.monaco-editor-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:500px;word-wrap:break-word}.monaco-editor-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100vw}.monaco-editor-hover p,.monaco-editor-hover ul{margin:8px 0}.monaco-editor-hover code{font-family:var(--monaco-monospace-font)}.monaco-editor-hover hr{margin:4px -10px -6px;height:1px}.monaco-editor-hover p:first-child,.monaco-editor-hover ul:first-child{margin-top:0}.monaco-editor-hover p:last-child,.monaco-editor-hover ul:last-child{margin-bottom:0}.monaco-editor-hover ol,.monaco-editor-hover ul{padding-left:20px}.monaco-editor-hover li>p{margin-bottom:0}.monaco-editor-hover li>ul{margin-top:0}.monaco-editor-hover code{border-radius:3px;padding:0 .4em}.monaco-editor-hover .monaco-tokenized-source{white-space:pre-wrap;word-break:break-all}.monaco-editor-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-editor-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-editor-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-editor-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-editor-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-editor-hover .hover-contents a.code-link:after{content:\")\"}.monaco-editor-hover .hover-contents a.code-link{color:inherit}.monaco-editor-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent}.monaco-editor-hover .hover-contents a.code-link>span,.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:1px 4px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border:8px solid transparent;z-index:1000;position:absolute}.monaco-editor .parameter-hints-widget{z-index:10;display:flex;flex-direction:column;line-height:1.5em}.monaco-editor .parameter-hints-widget>.wrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs .markdown-docs code{font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;opacity:.5;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{font-weight:700;text-decoration:underline}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:center;font-size:13px;margin-left:20px;cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:\"-\";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-item{margin-left:4px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-label{width:16px;height:100%;margin:0;line-height:inherit;background-repeat:no-repeat;background-position:50%}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar .action-label.codicon{margin:0}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .rename-box{z-index:100;color:inherit}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px}.monaco-editor .finish-snippet-placeholder,.monaco-editor .snippet-placeholder{outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{z-index:40;width:430px}.monaco-editor .suggest-widget>.details,.monaco-editor .suggest-widget>.message,.monaco-editor .suggest-widget>.tree{width:100%;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor.hc-black .suggest-widget>.details,.monaco-editor.hc-black .suggest-widget>.message,.monaco-editor.hc-black .suggest-widget>.tree{border-width:2px}.monaco-editor .suggest-widget.docs-side{width:660px}.monaco-editor .suggest-widget.docs-side>.details,.monaco-editor .suggest-widget.docs-side>.tree{width:50%;float:left}.monaco-editor .suggest-widget.docs-side.list-right>.details,.monaco-editor .suggest-widget.docs-side.list-right>.tree{float:right}.monaco-editor .suggest-widget>.details ol,.monaco-editor .suggest-widget>.details ul{padding-left:20px}.monaco-editor .suggest-widget>.details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget>.suggest-status-bar{visibility:hidden;position:absolute;left:0;box-sizing:border-box;display:flex;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid;border-bottom-width:1px;border-bottom-style:solid;padding:1px 8px 1px 4px;box-shadow:0 -.5px 3px #ddd}.monaco-editor .suggest-widget>.suggest-status-bar span{opacity:.7}.monaco-editor .suggest-widget.list-right.docs-side>.suggest-status-bar{left:auto;right:0}.monaco-editor .suggest-widget.docs-side>.suggest-status-bar{width:50%}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:2px;right:2px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:4px;opacity:.4;font-size:90%;text-overflow:ellipsis;overflow:hidden;line-height:17px;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{margin-left:.8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused>.contents>.main>.right.always-show-details>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right.always-show-details>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:0;max-width:45%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right:not(.always-show-details)>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main>.right:not(.always-show-details)>.readMore{display:inline-block}.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:50%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-widget .details{display:flex;flex-direction:column;cursor:default}.monaco-editor .suggest-widget .details.no-docs{display:none}.monaco-editor .suggest-widget.docs-below .details{border-top-width:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body{position:absolute;box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;word-break:break-all;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:normal;min-height:calc(1rem + 8px)}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-widget .details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-widget .details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-insert-unexpected{font-style:italic}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{visibility:visible}.monaco-editor .suggest-widget.with-status-bar>.tree{margin-bottom:18px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar span{min-height:18px}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused>.contents>.main>.right:not(.always-show-details)>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .accessibilityHelpWidget{padding:10px;vertical-align:middle;overflow:scroll}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzY0IDQuMDEwNDJINC4wMDc3OUw0LjAwNzc5IDMyLjAyODZINDguMDM2NFY0LjAxMDQyWk00LjAwNzc5IDAuMDA3ODEyNUMxLjc5NzIxIDAuMDA3ODEyNSAwLjAwNTE4Nzk5IDEuNzk5ODQgMC4wMDUxODc5OSA0LjAxMDQyVjMyLjAyODZDMC4wMDUxODc5OSAzNC4yMzkyIDEuNzk3MjEgMzYuMDMxMiA0LjAwNzc5IDM2LjAzMTJINDguMDM2NEM1MC4yNDcgMzYuMDMxMiA1Mi4wMzkgMzQuMjM5MiA1Mi4wMzkgMzIuMDI4NlY0LjAxMDQyQzUyLjAzOSAxLjc5OTg0IDUwLjI0NyAwLjAwNzgxMjUgNDguMDM2NCAwLjAwNzgxMjVINC4wMDc3OVpNOC4wMTA0MiA4LjAxMzAySDEyLjAxM1YxMi4wMTU2SDguMDEwNDJWOC4wMTMwMlpNMjAuMDE4MiA4LjAxMzAySDE2LjAxNTZWMTIuMDE1NkgyMC4wMTgyVjguMDEzMDJaTTI0LjAyMDggOC4wMTMwMkgyOC4wMjM0VjEyLjAxNTZIMjQuMDIwOFY4LjAxMzAyWk0zNi4wMjg2IDguMDEzMDJIMzIuMDI2VjEyLjAxNTZIMzYuMDI4NlY4LjAxMzAyWk00MC4wMzEyIDguMDEzMDJINDQuMDMzOVYxMi4wMTU2SDQwLjAzMTJWOC4wMTMwMlpNMTYuMDE1NiAxNi4wMTgySDguMDEwNDJWMjAuMDIwOEgxNi4wMTU2VjE2LjAxODJaTTIwLjAxODIgMTYuMDE4MkgyNC4wMjA4VjIwLjAyMDhIMjAuMDE4MlYxNi4wMTgyWk0zMi4wMjYgMTYuMDE4MkgyOC4wMjM0VjIwLjAyMDhIMzIuMDI2VjE2LjAxODJaTTQ0LjAzMzkgMTYuMDE4MlYyMC4wMjA4SDM2LjAyODZWMTYuMDE4Mkg0NC4wMzM5Wk0xMi4wMTMgMjQuMDIzNEg4LjAxMDQyVjI4LjAyNkgxMi4wMTNWMjQuMDIzNFpNMTYuMDE1NiAyNC4wMjM0SDM2LjAyODZWMjguMDI2SDE2LjAxNTZWMjQuMDIzNFpNNDQuMDMzOSAyNC4wMjM0SDQwLjAzMTJWMjguMDI2SDQ0LjAzMzlWMjQuMDIzNFoiIGZpbGw9IiM0MjQyNDIiLz4NCjwvZz4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJjbGlwMCI+DQo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPC9zdmc+DQo=) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzY0IDQuMDEwNDJINC4wMDc3OUw0LjAwNzc5IDMyLjAyODZINDguMDM2NFY0LjAxMDQyWk00LjAwNzc5IDAuMDA3ODEyNUMxLjc5NzIxIDAuMDA3ODEyNSAwLjAwNTE4Nzk5IDEuNzk5ODQgMC4wMDUxODc5OSA0LjAxMDQyVjMyLjAyODZDMC4wMDUxODc5OSAzNC4yMzkyIDEuNzk3MjEgMzYuMDMxMiA0LjAwNzc5IDM2LjAzMTJINDguMDM2NEM1MC4yNDcgMzYuMDMxMiA1Mi4wMzkgMzQuMjM5MiA1Mi4wMzkgMzIuMDI4NlY0LjAxMDQyQzUyLjAzOSAxLjc5OTg0IDUwLjI0NyAwLjAwNzgxMjUgNDguMDM2NCAwLjAwNzgxMjVINC4wMDc3OVpNOC4wMTA0MiA4LjAxMzAySDEyLjAxM1YxMi4wMTU2SDguMDEwNDJWOC4wMTMwMlpNMjAuMDE4MiA4LjAxMzAySDE2LjAxNTZWMTIuMDE1NkgyMC4wMTgyVjguMDEzMDJaTTI0LjAyMDggOC4wMTMwMkgyOC4wMjM0VjEyLjAxNTZIMjQuMDIwOFY4LjAxMzAyWk0zNi4wMjg2IDguMDEzMDJIMzIuMDI2VjEyLjAxNTZIMzYuMDI4NlY4LjAxMzAyWk00MC4wMzEyIDguMDEzMDJINDQuMDMzOVYxMi4wMTU2SDQwLjAzMTJWOC4wMTMwMlpNMTYuMDE1NiAxNi4wMTgySDguMDEwNDJWMjAuMDIwOEgxNi4wMTU2VjE2LjAxODJaTTIwLjAxODIgMTYuMDE4MkgyNC4wMjA4VjIwLjAyMDhIMjAuMDE4MlYxNi4wMTgyWk0zMi4wMjYgMTYuMDE4MkgyOC4wMjM0VjIwLjAyMDhIMzIuMDI2VjE2LjAxODJaTTQ0LjAzMzkgMTYuMDE4MlYyMC4wMjA4SDM2LjAyODZWMTYuMDE4Mkg0NC4wMzM5Wk0xMi4wMTMgMjQuMDIzNEg4LjAxMDQyVjI4LjAyNkgxMi4wMTNWMjQuMDIzNFpNMTYuMDE1NiAyNC4wMjM0SDM2LjAyODZWMjguMDI2SDE2LjAxNTZWMjQuMDIzNFpNNDQuMDMzOSAyNC4wMjM0SDQwLjAzMTJWMjguMDI2SDQ0LjAzMzlWMjQuMDIzNFoiIGZpbGw9IiNDNUM1QzUiLz4NCjwvZz4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJjbGlwMCI+DQo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPC9zdmc+DQo=) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;-ms-user-select:text;padding:10px}.tokens-inspect-separator{height:1px;border:0}.monaco-editor .tokens-inspect-widget .tm-token{font-family:monospace}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:monospace;text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:monospace}.monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#0066bf}.vs-dark .monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.vs-dark .monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .monaco-quick-open-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight,.hc-black .monaco-quick-open-widget .monaco-tree .monaco-tree-row .monaco-highlighted-label .highlight{color:#f38518}.monaco-quick-open-widget{font-size:13px}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,Ubuntu,Droid Sans,sans-serif}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor-hover p{margin:0}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs-dark .view-overlays .current-line,.monaco-editor.vs .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs-dark .cursor,.monaco-editor.vs .cursor{background-color:windowtext!important}.monaco-editor.vs-dark .dnd-target,.monaco-editor.vs .dnd-target{border-color:windowtext!important}.monaco-editor.vs-dark .selected-text,.monaco-editor.vs .selected-text{background-color:highlight!important}.monaco-editor.vs-dark .view-line,.monaco-editor.vs .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .view-line span,.monaco-editor.vs .view-line span{color:windowtext!important}.monaco-editor.vs-dark .view-line span.inline-selected-text,.monaco-editor.vs .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs-dark .view-overlays,.monaco-editor.vs .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong,.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong{border:2px dotted highlight!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .rangeHighlight,.monaco-editor.vs .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs-dark .bracket-match,.monaco-editor.vs .bracket-match{border-color:windowtext!important;background:transparent!important}.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch,.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch{border:2px dotted activeborder!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .find-widget,.monaco-editor.vs .find-widget{border:1px solid windowtext}.monaco-editor.vs-dark .monaco-list .monaco-list-row,.monaco-editor.vs .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused,.monaco-editor.vs .monaco-list .monaco-list-row.focused{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover,.monaco-editor.vs .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row,.monaco-editor.vs .monaco-tree .monaco-tree-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.selected,.monaco-editor.vs .monaco-tree .monaco-tree-row.focused,.monaco-editor.vs .monaco-tree .monaco-tree-row.selected{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-tree .monaco-tree-row:hover,.monaco-editor.vs .monaco-tree .monaco-tree-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar,.monaco-editor.vs .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs-dark .decorationsOverviewRuler,.monaco-editor.vs .decorationsOverviewRuler{opacity:0}.monaco-editor.vs-dark .minimap,.monaco-editor.vs .minimap{display:none}.monaco-editor.vs-dark .squiggly-d-error,.monaco-editor.vs .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs-dark .squiggly-a-hint,.monaco-editor.vs .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-diff-editor.vs .diffOverviewRuler{display:none}.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert{background:transparent!important}}.context-view .monaco-menu{min-width:130px}.context-view-block{position:fixed;left:0;top:0;z-index:-1;width:100%;height:100%}"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n(function(){\nvar e,t,n=[\"require\",\"exports\",\"vs/base/common/lifecycle\",\"vs/editor/common/core/range\",\"vs/base/common/event\",\"vs/base/common/strings\",\"vs/base/browser/dom\",\"vs/nls\",\"vs/nls!vs/editor/editor.main\",\"vs/css!vs/editor/editor.main\",\"vs/base/common/errors\",\"vs/platform/instantiation/common/instantiation\",\"vs/editor/browser/editorExtensions\",\"vs/editor/common/core/position\",\"vs/platform/theme/common/themeService\",\"vs/base/common/async\",\"vs/base/common/platform\",\"vs/editor/common/modes\",\"vs/platform/contextkey/common/contextkey\",\"vs/base/common/arrays\",\"vs/platform/theme/common/colorRegistry\",\"vs/base/common/types\",\"vs/editor/common/core/selection\",\"vs/editor/common/editorContextKeys\",\"vs/base/browser/browser\",\"vs/base/common/uri\",\"vs/base/common/cancellation\",\"vs/base/common/color\",\"vs/base/browser/fastDomNode\",\"vs/platform/commands/common/commands\",\"vs/editor/common/model/textModel\",\"vs/base/common/objects\",\"vs/editor/browser/services/codeEditorService\",\"vs/editor/common/config/editorOptions\",\"vs/platform/keybinding/common/keybinding\",\"vs/platform/notification/common/notification\",\"vs/base/common/keyCodes\",\"vs/editor/browser/view/viewPart\",\"vs/base/common/map\",\"vs/base/common/resources\",\"vs/editor/common/controller/cursorCommon\",\"vs/editor/common/modes/languageConfigurationRegistry\",\"vs/platform/registry/common/platform\",\"vs/platform/configuration/common/configuration\",\"vs/editor/common/view/editorColorRegistry\",\"vs/base/browser/mouseEvent\",\"vs/base/common/network\",\"vs/base/browser/ui/widget\",\"vs/editor/common/model\",\"vs/editor/common/services/modelService\",\"vs/base/browser/ui/aria/aria\",\"vs/platform/opener/common/opener\",\"vs/base/browser/event\",\"vs/base/browser/ui/scrollbar/scrollableElement\",\"vs/base/common/iterator\",\"vs/base/common/actions\",\"vs/base/browser/keyboardEvent\",\"vs/base/browser/touch\",\"vs/editor/common/core/editOperation\",\"vs/editor/common/standaloneStrings\",\"vs/editor/browser/config/configuration\",\"vs/base/common/filters\",\"vs/editor/common/services/editorWorkerService\",\"vs/editor/common/modes/nullMode\",\"vs/platform/accessibility/common/accessibility\",\"vs/platform/actions/common/actions\",\"vs/platform/contextview/browser/contextView\",\"vs/editor/browser/core/editorState\",\"vs/editor/common/editorCommon\",\"vs/editor/common/viewModel/viewModel\",\"vs/base/browser/ui/actionbar/actionbar\",\"vs/editor/common/services/modeService\",\"vs/platform/markers/common/markers\",\"vs/platform/progress/common/progress\",\"vs/platform/storage/common/storage\",\"vs/base/common/htmlContent\",\"vs/base/common/linkedList\",\"vs/base/common/path\",\"vs/base/browser/globalMouseMoveMonitor\",\"vs/editor/common/core/characterClassifier\",\"vs/editor/common/commands/replaceCommand\",\"vs/editor/common/view/viewEvents\",\"vs/editor/browser/view/dynamicViewOverlay\",\"vs/platform/instantiation/common/extensions\",\"vs/editor/common/services/resolverService\",\"vs/platform/configuration/common/configurationRegistry\",\"vs/platform/keybinding/common/keybindingsRegistry\",\"vs/base/common/collections\",\"vs/base/browser/canIUse\",\"vs/editor/common/controller/wordCharacterClassifier\",\"vs/editor/common/modes/languageConfiguration\",\"vs/editor/common/view/renderingContext\",\"vs/editor/common/viewModel/viewEventHandler\",\"vs/editor/common/core/lineTokens\",\"vs/editor/standalone/common/standaloneThemeService\",\"vs/platform/log/common/log\",\"vs/platform/telemetry/common/telemetry\",\"vs/platform/theme/common/styler\",\"vs/base/browser/dnd\",\"vs/base/browser/ui/tree/tree\",\"vs/base/common/codicons\",\"vs/base/common/decorators\",\"vs/base/common/functional\",\"vs/base/common/range\",\"vs/base/browser/ui/sash/sash\",\"vs/editor/common/config/editorZoom\",\"vs/editor/common/core/stringBuilder\",\"vs/editor/common/core/token\",\"vs/editor/browser/editorBrowser\",\"vs/editor/common/model/wordHelper\",\"vs/editor/common/viewLayout/viewLineRenderer\",\"vs/editor/contrib/codeAction/types\",\"vs/base/common/severity\",\"vs/editor/contrib/gotoSymbol/referencesModel\",\"vs/editor/common/services/textResourceConfigurationService\",\"vs/platform/instantiation/common/serviceCollection\",\"vs/platform/label/common/label\",\"vs/editor/contrib/markdown/markdownRenderer\",\"vs/editor/common/modes/modesRegistry\",\"vs/editor/contrib/codeAction/codeAction\",\"vs/editor/contrib/suggest/suggest\",\"vs/editor/browser/widget/codeEditorWidget\",\"vs/editor/contrib/message/messageController\",\"vs/editor/contrib/peekView/peekView\",\"vs/base/common/assert\",\"vs/base/common/hash\",\"vs/base/common/diff/diff\",\"vs/base/common/idGenerator\",\"vs/base/common/lazy\",\"vs/base/browser/ui/tree/indexTreeModel\",\"vs/base/browser/ui/tree/objectTreeModel\",\"vs/base/common/numbers\",\"vs/base/common/stopwatch\",\"vs/base/browser/ui/highlightedlabel/highlightedLabel\",\"vs/base/browser/formattedTextRenderer\",\"vs/base/browser/ui/scrollbar/scrollbarArrow\",\"vs/base/common/labels\",\"vs/base/parts/tree/browser/treeDefaults\",\"vs/base/browser/ui/checkbox/checkbox\",\"vs/base/browser/ui/iconLabel/iconLabel\",\"vs/base/browser/ui/list/listView\",\"vs/editor/browser/editorDom\",\"vs/editor/common/config/fontInfo\",\"vs/editor/browser/view/viewLayer\",\"vs/editor/common/model/textModelSearch\",\"vs/editor/common/modes/supports\",\"vs/editor/common/modes/supports/richEditBrackets\",\"vs/editor/common/standalone/standaloneEnums\",\"vs/editor/common/viewLayout/lineDecorations\",\"vs/editor/browser/viewParts/glyphMargin/glyphMargin\",\"vs/editor/contrib/folding/foldingRanges\",\"vs/editor/contrib/snippet/snippetParser\",\"vs/base/browser/ui/inputbox/inputBox\",\"vs/base/browser/ui/list/listWidget\",\"vs/base/browser/ui/tree/abstractTree\",\"vs/base/parts/quickopen/browser/quickOpenModel\",\"vs/editor/browser/services/bulkEditService\",\"vs/editor/common/model/tokensStore\",\"vs/editor/common/controller/cursorMoveOperations\",\"vs/editor/common/controller/cursorTypeOperations\",\"vs/editor/common/controller/cursorWordOperations\",\"vs/editor/common/viewModel/splitLinesCollection\",\"vs/platform/clipboard/common/clipboardService\",\"vs/editor/common/config/commonEditorConfig\",\"vs/editor/browser/controller/coreCommands\",\"vs/editor/contrib/parameterHints/provideSignatureHelp\",\"vs/editor/browser/controller/mouseTarget\",\"vs/editor/browser/widget/embeddedCodeEditorWidget\",\"vs/editor/contrib/find/findModel\",\"vs/editor/standalone/browser/quickOpen/editorQuickOpen\",\"vs/platform/list/browser/listService\",\"vs/platform/workspace/common/workspace\",\"vs/editor/standalone/browser/simpleServices\",\"vs/editor/contrib/snippet/snippetController2\",\"vs/base/browser/iframe\",\"vs/base/browser/ui/scrollbar/scrollbarState\",\"vs/base/common/scrollable\",\"vs/base/common/extpath\",\"vs/base/common/glob\",\"vs/base/common/uint\",\"vs/base/common/marshalling\",\"vs/base/browser/ui/scrollbar/abstractScrollbar\",\"vs/base/common/worker/simpleWorker\",\"vs/base/browser/ui/codiconLabel/codiconLabel\",\"vs/css!vs/base/browser/ui/findinput/findInput\",\"vs/editor/browser/config/elementSizeObserver\",\"vs/editor/browser/viewParts/minimap/minimapCharSheet\",\"vs/editor/browser/controller/textAreaState\",\"vs/editor/browser/widget/diffNavigator\",\"vs/editor/browser/controller/textAreaInput\",\"vs/editor/common/editorAction\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase\",\"vs/editor/common/standalone/standaloneBase\",\"vs/editor/common/view/overviewZoneManager\",\"vs/editor/common/viewModel/prefixSumComputer\",\"vs/editor/browser/viewParts/margin/margin\",\"vs/editor/contrib/comment/blockCommentCommand\",\"vs/editor/contrib/folding/syntaxRangeProvider\",\"vs/editor/contrib/format/formattingEdit\",\"vs/editor/contrib/gotoSymbol/link/clickLinkGesture\",\"vs/editor/contrib/hover/hoverOperation\",\"vs/editor/contrib/hover/hoverWidgets\",\"vs/editor/contrib/smartSelect/bracketSelections\",\"vs/editor/standalone/common/monarch/monarchCommon\",\"vs/base/browser/ui/findinput/findInputCheckboxes\",\"vs/base/browser/ui/menu/menu\",\"vs/base/browser/ui/tree/objectTree\",\"vs/base/common/keybindingLabels\",\"vs/platform/files/common/files\",\"vs/platform/instantiation/common/descriptors\",\"vs/editor/common/services/markersDecorationService\",\"vs/editor/common/commands/shiftCommand\",\"vs/editor/common/controller/cursorDeleteOperations\",\"vs/editor/common/controller/cursorMoveCommands\",\"vs/editor/common/modes/textToHtmlTokenizer\",\"vs/editor/common/viewModel/minimapTokensColorTracker\",\"vs/editor/standalone/common/monarch/monarchLexer\",\"vs/platform/keybinding/common/keybindingResolver\",\"vs/platform/layout/browser/layoutService\",\"vs/editor/common/services/editorWorkerServiceImpl\",\"vs/platform/jsonschemas/common/jsonContributionRegistry\",\"vs/editor/contrib/codelens/codelens\",\"vs/editor/contrib/colorPicker/color\",\"vs/editor/contrib/colorPicker/colorDetector\",\"vs/editor/contrib/gotoSymbol/goToSymbol\",\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",\"vs/editor/contrib/wordOperations/wordOperations\",\"vs/editor/browser/viewParts/lines/viewLine\",\"vs/editor/browser/view/viewOutgoingEvents\",\"vs/editor/browser/viewParts/lineNumbers/lineNumbers\",\"vs/editor/browser/widget/diffEditorWidget\",\"vs/editor/contrib/documentSymbols/outlineTree\",\"vs/editor/contrib/find/findController\",\"vs/editor/contrib/codeAction/codeActionCommands\",\"vs/editor/contrib/gotoSymbol/peek/referencesController\",\"vs/editor/contrib/gotoSymbol/goToCommands\",\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/editor/contrib/gotoError/gotoError\",\"vs/editor/standalone/browser/standaloneServices\",\"vs/base/browser/ui/list/list\",\"vs/base/browser/ui/list/splice\",\"vs/base/common/diff/diffChange\",\"vs/base/common/history\",\"vs/base/browser/ui/tree/compressedObjectTreeModel\",\"vs/base/browser/ui/scrollbar/scrollbarVisibilityController\",\"vs/base/common/process\",\"vs/base/browser/ui/list/rangeMap\",\"vs/base/common/search\",\"vs/base/browser/markdownRenderer\",\"vs/base/browser/ui/list/rowCache\",\"vs/base/browser/ui/scrollbar/horizontalScrollbar\",\"vs/base/browser/ui/scrollbar/verticalScrollbar\",\"vs/base/common/mime\",\"vs/base/parts/quickopen/browser/quickOpenViewer\",\"vs/base/parts/tree/browser/tree\",\"vs/base/parts/tree/browser/treeDnd\",\"vs/base/parts/tree/browser/treeModel\",\"vs/base/parts/tree/browser/treeViewModel\",\"vs/base/worker/defaultWorkerFactory\",\"vs/css!vs/base/browser/ui/actionbar/actionbar\",\"vs/css!vs/base/browser/ui/aria/aria\",\"vs/css!vs/base/browser/ui/checkbox/checkbox\",\"vs/css!vs/base/browser/ui/codiconLabel/codicon/codicon\",\"vs/css!vs/base/browser/ui/codiconLabel/codicon/codicon-animations\",\"vs/css!vs/base/browser/ui/contextview/contextview\",\"vs/base/browser/ui/contextview/contextview\",\"vs/css!vs/base/browser/ui/countBadge/countBadge\",\"vs/base/browser/ui/countBadge/countBadge\",\"vs/css!vs/base/browser/ui/iconLabel/iconlabel\",\"vs/css!vs/base/browser/ui/inputbox/inputBox\",\"vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/css!vs/base/browser/ui/list/list\",\"vs/css!vs/base/browser/ui/menu/menu\",\"vs/css!vs/base/browser/ui/progressbar/progressbar\",\"vs/base/browser/ui/progressbar/progressbar\",\"vs/css!vs/base/browser/ui/sash/sash\",\"vs/css!vs/base/browser/ui/scrollbar/media/scrollbars\",\"vs/base/parts/tree/browser/treeView\",\"vs/css!vs/base/browser/ui/splitview/splitview\",\"vs/base/browser/ui/splitview/splitview\",\"vs/css!vs/base/browser/ui/tree/media/tree\",\"vs/css!vs/base/parts/quickopen/browser/quickopen\",\"vs/css!vs/base/parts/tree/browser/tree\",\"vs/base/parts/tree/browser/treeImpl\",\"vs/css!vs/editor/browser/controller/textAreaHandler\",\"vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight\",\"vs/css!vs/editor/browser/viewParts/decorations/decorations\",\"vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin\",\"vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides\",\"vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers\",\"vs/css!vs/editor/browser/viewParts/lines/viewLines\",\"vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations\",\"vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations\",\"vs/css!vs/editor/browser/viewParts/minimap/minimap\",\"vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets\",\"vs/css!vs/editor/browser/viewParts/rulers/rulers\",\"vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration\",\"vs/css!vs/editor/browser/viewParts/selections/selections\",\"vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors\",\"vs/css!vs/editor/browser/widget/media/diffEditor\",\"vs/css!vs/editor/browser/widget/media/diffReview\",\"vs/css!vs/editor/browser/widget/media/editor\",\"vs/css!vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/css!vs/editor/contrib/clipboard/clipboard\",\"vs/css!vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/css!vs/editor/contrib/codelens/codelensWidget\",\"vs/css!vs/editor/contrib/colorPicker/colorPicker\",\"vs/css!vs/editor/contrib/dnd/dnd\",\"vs/css!vs/editor/contrib/documentSymbols/media/outlineTree\",\"vs/css!vs/editor/contrib/documentSymbols/media/symbol-icons\",\"vs/css!vs/editor/contrib/find/findWidget\",\"vs/css!vs/editor/contrib/folding/folding\",\"vs/css!vs/editor/contrib/gotoError/media/gotoErrorWidget\",\"vs/css!vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/css!vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/css!vs/editor/contrib/hover/hover\",\"vs/css!vs/editor/contrib/links/links\",\"vs/css!vs/editor/contrib/message/messageController\",\"vs/css!vs/editor/contrib/parameterHints/parameterHints\",\"vs/css!vs/editor/contrib/peekView/media/peekViewWidget\",\"vs/css!vs/editor/contrib/rename/renameInputField\",\"vs/css!vs/editor/contrib/snippet/snippetSession\",\"vs/css!vs/editor/contrib/suggest/media/suggest\",\"vs/css!vs/editor/contrib/suggest/media/suggestStatusBar\",\"vs/css!vs/editor/contrib/zoneWidget/zoneWidget\",\"vs/css!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp\",\"vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard\",\"vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens\",\"vs/css!vs/editor/standalone/browser/quickOpen/editorQuickOpen\",\"vs/css!vs/editor/standalone/browser/quickOpen/gotoLine\",\"vs/css!vs/editor/standalone/browser/quickOpen/quickOutline\",\"vs/css!vs/editor/standalone/browser/standalone-tokens\",\"vs/css!vs/platform/contextview/browser/contextMenuHandler\",\"vs/editor/browser/config/charWidthReader\",\"vs/editor/browser/services/abstractCodeEditorService\",\"vs/editor/browser/viewParts/minimap/minimapCharRenderer\",\"vs/editor/browser/viewParts/minimap/minimapPreBaked\",\"vs/editor/browser/viewParts/minimap/minimapCharRendererFactory\",\"vs/editor/common/commands/trimTrailingWhitespaceCommand\",\"vs/editor/common/core/rgba\",\"vs/editor/common/commands/surroundSelectionCommand\",\"vs/editor/common/diff/diffComputer\",\"vs/editor/common/model/editStack\",\"vs/editor/common/model/indentationGuesser\",\"vs/editor/common/model/intervalTree\",\"vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase\",\"vs/editor/common/model/textModelEvents\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer\",\"vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder\",\"vs/editor/common/modes/abstractMode\",\"vs/editor/common/modes/languageSelector\",\"vs/editor/common/modes/linkComputer\",\"vs/editor/common/modes/supports/characterPair\",\"vs/editor/common/modes/supports/indentRules\",\"vs/editor/common/modes/supports/inplaceReplaceSupport\",\"vs/editor/common/modes/supports/onEnter\",\"vs/editor/common/modes/supports/electricCharacter\",\"vs/editor/common/modes/supports/tokenization\",\"vs/editor/common/modes/tokenizationRegistry\",\"vs/editor/browser/viewParts/lines/rangeUtil\",\"vs/editor/common/view/viewContext\",\"vs/editor/common/view/viewEventDispatcher\",\"vs/editor/common/viewLayout/linesLayout\",\"vs/editor/common/viewLayout/viewLinesViewportData\",\"vs/editor/common/model/mirrorTextModel\",\"vs/editor/common/services/editorSimpleWorker\",\"vs/editor/browser/viewParts/contentWidgets/contentWidgets\",\"vs/editor/browser/viewParts/decorations/decorations\",\"vs/editor/browser/viewParts/linesDecorations/linesDecorations\",\"vs/editor/browser/viewParts/marginDecorations/marginDecorations\",\"vs/editor/browser/viewParts/overlayWidgets/overlayWidgets\",\"vs/editor/browser/viewParts/overviewRuler/overviewRuler\",\"vs/editor/browser/viewParts/viewZones/viewZones\",\"vs/editor/common/viewLayout/viewLayout\",\"vs/editor/contrib/caretOperations/moveCaretCommand\",\"vs/editor/contrib/colorPicker/colorPickerModel\",\"vs/editor/contrib/comment/lineCommentCommand\",\"vs/editor/contrib/dnd/dragAndDropCommand\",\"vs/editor/contrib/find/findState\",\"vs/editor/contrib/find/replaceAllCommand\",\"vs/editor/contrib/find/replacePattern\",\"vs/editor/contrib/folding/foldingModel\",\"vs/editor/contrib/folding/hiddenRangeModel\",\"vs/editor/contrib/folding/intializingRangeProvider\",\"vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand\",\"vs/editor/contrib/indentation/indentUtils\",\"vs/editor/contrib/linesOperations/copyLinesCommand\",\"vs/editor/contrib/linesOperations/sortLinesCommand\",\"vs/editor/contrib/smartSelect/wordSelections\",\"vs/editor/contrib/suggest/completionModel\",\"vs/editor/contrib/suggest/suggestCommitCharacters\",\"vs/editor/contrib/suggest/suggestRangeHighlighter\",\"vs/editor/contrib/suggest/wordDistance\",\"vs/editor/standalone/common/monarch/monarchCompile\",\"vs/nls!vs/base/browser/ui/actionbar/actionbar\",\"vs/nls!vs/base/browser/ui/aria/aria\",\"vs/nls!vs/base/browser/ui/findinput/findInput\",\"vs/nls!vs/base/browser/ui/findinput/findInputCheckboxes\",\"vs/nls!vs/base/browser/ui/findinput/replaceInput\",\"vs/nls!vs/base/browser/ui/inputbox/inputBox\",\"vs/base/browser/ui/findinput/findInput\",\"vs/base/browser/ui/findinput/replaceInput\",\"vs/nls!vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/nls!vs/base/browser/ui/list/listWidget\",\"vs/nls!vs/base/browser/ui/menu/menu\",\"vs/base/browser/contextmenu\",\"vs/nls!vs/base/browser/ui/tree/abstractTree\",\"vs/base/browser/ui/tree/dataTree\",\"vs/base/browser/ui/tree/asyncDataTree\",\"vs/nls!vs/base/common/keybindingLabels\",\"vs/base/browser/ui/keybindingLabel/keybindingLabel\",\"vs/nls!vs/base/common/severity\",\"vs/nls!vs/base/parts/quickopen/browser/quickOpenModel\",\"vs/nls!vs/base/parts/quickopen/browser/quickOpenWidget\",\"vs/base/parts/quickopen/browser/quickOpenWidget\",\"vs/nls!vs/editor/browser/controller/coreCommands\",\"vs/nls!vs/editor/browser/controller/textAreaHandler\",\"vs/nls!vs/editor/browser/widget/codeEditorWidget\",\"vs/nls!vs/editor/browser/widget/diffEditorWidget\",\"vs/nls!vs/editor/browser/widget/diffReview\",\"vs/nls!vs/editor/browser/widget/inlineDiffMargin\",\"vs/editor/browser/widget/inlineDiffMargin\",\"vs/nls!vs/editor/common/config/commonEditorConfig\",\"vs/nls!vs/editor/common/config/editorOptions\",\"vs/editor/common/viewModel/viewModelDecorations\",\"vs/nls!vs/editor/common/modes/modesRegistry\",\"vs/nls!vs/editor/common/standaloneStrings\",\"vs/nls!vs/editor/common/view/editorColorRegistry\",\"vs/nls!vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/nls!vs/editor/contrib/caretOperations/caretOperations\",\"vs/nls!vs/editor/contrib/caretOperations/transpose\",\"vs/nls!vs/editor/contrib/clipboard/clipboard\",\"vs/nls!vs/editor/contrib/codeAction/codeActionCommands\",\"vs/nls!vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/nls!vs/editor/contrib/comment/comment\",\"vs/nls!vs/editor/contrib/contextmenu/contextmenu\",\"vs/nls!vs/editor/contrib/cursorUndo/cursorUndo\",\"vs/nls!vs/editor/contrib/documentSymbols/outlineTree\",\"vs/nls!vs/editor/contrib/find/findController\",\"vs/nls!vs/editor/contrib/find/findWidget\",\"vs/nls!vs/editor/contrib/folding/folding\",\"vs/nls!vs/editor/contrib/fontZoom/fontZoom\",\"vs/nls!vs/editor/contrib/format/format\",\"vs/nls!vs/editor/contrib/format/formatActions\",\"vs/nls!vs/editor/contrib/gotoError/gotoError\",\"vs/nls!vs/editor/contrib/gotoError/gotoErrorWidget\",\"vs/nls!vs/editor/contrib/gotoSymbol/goToCommands\",\"vs/nls!vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesController\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesTree\",\"vs/nls!vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/nls!vs/editor/contrib/gotoSymbol/referencesModel\",\"vs/nls!vs/editor/contrib/gotoSymbol/symbolNavigation\",\"vs/nls!vs/editor/contrib/hover/hover\",\"vs/nls!vs/editor/contrib/hover/modesContentHover\",\"vs/nls!vs/editor/contrib/inPlaceReplace/inPlaceReplace\",\"vs/nls!vs/editor/contrib/linesOperations/linesOperations\",\"vs/nls!vs/editor/contrib/links/links\",\"vs/nls!vs/editor/contrib/message/messageController\",\"vs/nls!vs/editor/contrib/multicursor/multicursor\",\"vs/nls!vs/editor/contrib/parameterHints/parameterHints\",\"vs/nls!vs/editor/contrib/parameterHints/parameterHintsWidget\",\"vs/nls!vs/editor/contrib/peekView/peekView\",\"vs/nls!vs/editor/contrib/rename/rename\",\"vs/nls!vs/editor/contrib/rename/renameInputField\",\"vs/nls!vs/editor/contrib/smartSelect/smartSelect\",\"vs/nls!vs/editor/contrib/snippet/snippetVariables\",\"vs/nls!vs/editor/contrib/suggest/suggestController\",\"vs/nls!vs/editor/contrib/suggest/suggestWidget\",\"vs/nls!vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",\"vs/nls!vs/editor/contrib/tokenization/tokenization\",\"vs/nls!vs/editor/contrib/wordHighlighter/wordHighlighter\",\"vs/nls!vs/platform/configuration/common/configurationRegistry\",\"vs/nls!vs/platform/keybinding/common/abstractKeybindingService\",\"vs/nls!vs/platform/list/browser/listService\",\"vs/nls!vs/platform/markers/common/markers\",\"vs/nls!vs/platform/theme/common/colorRegistry\",\"vs/platform/contextkey/common/contextkeys\",\"vs/platform/editor/common/editor\",\"vs/platform/extensions/common/extensions\",\"vs/platform/instantiation/common/graph\",\"vs/editor/common/modes/languageFeatureRegistry\",\"vs/editor/common/model/textModelTokens\",\"vs/editor/common/controller/cursorColumnSelection\",\"vs/editor/common/controller/oneCursor\",\"vs/editor/common/controller/cursorCollection\",\"vs/editor/common/controller/cursor\",\"vs/editor/common/viewModel/monospaceLineBreaksComputer\",\"vs/editor/common/viewModel/viewModelImpl\",\"vs/editor/contrib/documentSymbols/outlineModel\",\"vs/editor/contrib/folding/foldingDecorations\",\"vs/editor/contrib/folding/indentRangeProvider\",\"vs/editor/contrib/linesOperations/moveLinesCommand\",\"vs/editor/contrib/zoneWidget/zoneWidget\",\"vs/editor/standalone/browser/colorizer\",\"vs/editor/contrib/links/getLinks\",\"vs/editor/contrib/quickOpen/quickOpen\",\"vs/editor/contrib/suggest/suggestAlternatives\",\"vs/editor/contrib/suggest/wordContextKey\",\"vs/platform/actions/common/menuService\",\"vs/platform/dialogs/common/dialogs\",\"vs/platform/instantiation/common/instantiationService\",\"vs/platform/keybinding/common/abstractKeybindingService\",\"vs/platform/keybinding/common/baseResolvedKeybinding\",\"vs/platform/keybinding/common/resolvedKeybindingItem\",\"vs/platform/keybinding/common/usLayoutResolvedKeybinding\",\"vs/platform/contextview/browser/contextViewService\",\"vs/editor/common/services/webWorker\",\"vs/platform/markers/common/markerService\",\"vs/editor/browser/services/openerService\",\"vs/editor/contrib/hover/modesGlyphHover\",\"vs/editor/common/services/getIconClasses\",\"vs/editor/browser/view/domLineBreaksComputer\",\"vs/editor/browser/view/viewOverlays\",\"vs/editor/browser/viewParts/viewCursors/viewCursor\",\"vs/editor/common/services/languagesRegistry\",\"vs/editor/common/services/modeServiceImpl\",\"vs/platform/accessibility/common/accessibilityService\",\"vs/platform/configuration/common/configurationModels\",\"vs/platform/contextkey/browser/contextKeyService\",\"vs/platform/browser/contextScopedHistoryWidget\",\"vs/editor/contrib/suggest/suggestMemory\",\"vs/editor/browser/core/keybindingCancellation\",\"vs/editor/browser/view/viewController\",\"vs/editor/contrib/caretOperations/caretOperations\",\"vs/editor/contrib/caretOperations/transpose\",\"vs/editor/contrib/clipboard/clipboard\",\"vs/editor/contrib/codeAction/codeActionMenu\",\"vs/editor/contrib/codeAction/codeActionModel\",\"vs/editor/contrib/codelens/codeLensCache\",\"vs/editor/contrib/comment/comment\",\"vs/editor/contrib/contextmenu/contextmenu\",\"vs/editor/contrib/cursorUndo/cursorUndo\",\"vs/editor/contrib/dnd/dnd\",\"vs/editor/contrib/fontZoom/fontZoom\",\"vs/editor/contrib/format/format\",\"vs/editor/contrib/format/formatActions\",\"vs/editor/contrib/gotoSymbol/symbolNavigation\",\"vs/editor/contrib/hover/getHover\",\"vs/editor/contrib/linesOperations/linesOperations\",\"vs/editor/contrib/parameterHints/parameterHintsModel\",\"vs/editor/contrib/smartSelect/smartSelect\",\"vs/editor/contrib/tokenization/tokenization\",\"vs/editor/contrib/wordPartOperations/wordPartOperations\",\"vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard\",\"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast\",\"vs/editor/standalone/browser/quickOpen/quickOpenEditorWidget\",\"vs/platform/contextview/browser/contextMenuHandler\",\"vs/editor/browser/services/codeEditorServiceImpl\",\"vs/editor/browser/viewParts/editorScrollbar/editorScrollbar\",\"vs/editor/browser/controller/mouseHandler\",\"vs/editor/browser/controller/pointerHandler\",\"vs/editor/browser/viewParts/lines/viewLines\",\"vs/editor/browser/viewParts/minimap/minimap\",\"vs/editor/browser/viewParts/scrollDecoration/scrollDecoration\",\"vs/editor/browser/viewParts/selections/selections\",\"vs/editor/common/services/modelServiceImpl\",\"vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight\",\"vs/editor/browser/viewParts/indentGuides/indentGuides\",\"vs/editor/browser/controller/textAreaHandler\",\"vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler\",\"vs/editor/browser/viewParts/rulers/rulers\",\"vs/editor/browser/viewParts/viewCursors/viewCursors\",\"vs/editor/browser/view/viewImpl\",\"vs/editor/browser/widget/diffReview\",\"vs/editor/common/services/markerDecorationsServiceImpl\",\"vs/editor/contrib/bracketMatching/bracketMatching\",\"vs/editor/contrib/codeAction/lightBulbWidget\",\"vs/editor/contrib/codelens/codelensWidget\",\"vs/editor/contrib/codelens/codelensController\",\"vs/editor/contrib/colorPicker/colorPickerWidget\",\"vs/editor/contrib/find/findDecorations\",\"vs/editor/contrib/find/findOptionsWidget\",\"vs/editor/contrib/find/findWidget\",\"vs/editor/contrib/folding/folding\",\"vs/editor/contrib/gotoSymbol/peek/referencesTree\",\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\",\"vs/editor/contrib/links/links\",\"vs/editor/contrib/codeAction/codeActionUi\",\"vs/editor/contrib/codeAction/codeActionContributions\",\"vs/editor/contrib/multicursor/multicursor\",\"vs/editor/contrib/parameterHints/parameterHintsWidget\",\"vs/editor/contrib/parameterHints/parameterHints\",\"vs/editor/contrib/rename/renameInputField\",\"vs/editor/contrib/rename/rename\",\"vs/editor/contrib/suggest/suggestWidget\",\"vs/editor/contrib/wordHighlighter/wordHighlighter\",\"vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp\",\"vs/editor/standalone/browser/inspectTokens/inspectTokens\",\"vs/editor/standalone/browser/quickOpen/gotoLine\",\"vs/editor/standalone/browser/quickOpen/quickCommand\",\"vs/editor/standalone/browser/quickOpen/quickOutline\",\"vs/editor/standalone/browser/standaloneCodeServiceImpl\",\"vs/editor/standalone/common/themes\",\"vs/editor/standalone/browser/standaloneThemeServiceImpl\",\"vs/platform/contextview/browser/contextMenuService\",\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\",\"vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch\",\"vs/platform/severityIcon/common/severityIcon\",\"vs/editor/contrib/gotoError/gotoErrorWidget\",\"vs/editor/contrib/hover/modesContentHover\",\"vs/editor/contrib/hover/hover\",\"vs/editor/standalone/browser/standaloneCodeEditor\",\"vs/editor/standalone/browser/standaloneEditor\",\"vs/editor/standalone/browser/standaloneLanguages\",\"vs/editor/editor.api\",\"vs/platform/workspaces/common/workspaces\",\"vs/editor/contrib/snippet/snippetVariables\",\"vs/editor/contrib/snippet/snippetSession\",\"vs/editor/contrib/suggest/suggestModel\",\"vs/editor/contrib/suggest/suggestController\",\"vs/editor/editor.all\",\"vs/base/common/marked/marked\",\"vs/base/common/insane/insane\",\"vs/editor/common/standalone/promise-polyfill/polyfill\",\"vs/editor/edcore.main\"],i=function(e){\nfor(var t=[],i=0,o=e.length;i<o;i++)t[i]=n[e[i]];return t};!function(e){var t=function(){function e(){this._pendingLoads=0}return e.prototype.attachListeners=function(e,t,n,i){var o=function(){t.removeEventListener(\"load\",r),t.removeEventListener(\"error\",s)},r=function(e){o(),n()},s=function(e){o(),i(e)};t.addEventListener(\"load\",r),t.addEventListener(\"error\",s)},e.prototype._onLoad=function(e,t){this._pendingLoads--,t()},e.prototype._onLoadError=function(e,t,n){this._pendingLoads--,t(n)},e.prototype._insertLinkNode=function(e){this._pendingLoads++;var t=document.head||document.getElementsByTagName(\"head\")[0],n=t.getElementsByTagName(\"link\")||document.head.getElementsByTagName(\"script\");n.length>0?t.insertBefore(e,n[n.length-1]):t.appendChild(e)},e.prototype.createLinkTag=function(e,t,n,i){var o=this,r=document.createElement(\"link\");r.setAttribute(\"rel\",\"stylesheet\"),r.setAttribute(\"type\",\"text/css\"),r.setAttribute(\"data-name\",e);return this.attachListeners(e,r,(function(){return o._onLoad(e,n)\n}),(function(t){return o._onLoadError(e,i,t)})),r.setAttribute(\"href\",t),r},e.prototype._linkTagExists=function(e,t){var n,i,o,r,s=document.getElementsByTagName(\"link\");for(n=0,i=s.length;n<i;n++)if(o=s[n].getAttribute(\"data-name\"),r=s[n].getAttribute(\"href\"),o===e||r===t)return!0;return!1},e.prototype.load=function(e,t,n,i){if(this._linkTagExists(e,t))n();else{var o=this.createLinkTag(e,t,n,i);this._insertLinkNode(o)}},e}(),n=function(){function e(){this._cssLoader=new t}return e.prototype.load=function(e,t,n){var i=t.toUrl(e+\".css\");this._cssLoader.load(e,i,(function(e){n({})}),(function(e){\"function\"==typeof n.error&&n.error(\"Could not find \"+i+\" or it was empty\")}))},e}();e.CSSPlugin=n,define(\"vs/css\",new n)}(e||(e={})),function(e){var t=function(){function e(){this._detected=!1,this._isPseudo=!1}return Object.defineProperty(e.prototype,\"isPseudo\",{get:function(){return this._detect(),this._isPseudo},enumerable:!0,configurable:!0}),e.prototype._detect=function(){this._detected||(this._detected=!0,\nthis._isPseudo=\"undefined\"!=typeof document&&document.location&&document.location.hash.indexOf(\"pseudo=true\")>=0)},e}();function n(e,t,n){var i;return i=0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0],o=t[i],r=e;return\"string\"==typeof o?r=o:\"number\"!=typeof o&&\"boolean\"!=typeof o&&null!=o||(r=String(o)),r})),n.isPseudo&&(i=\"［\"+i.replace(/[aouei]/g,\"$&$&\")+\"］\"),i}function i(e,t,i){for(var o=[],r=3;r<arguments.length;r++)o[r-3]=arguments[r];return n(i,o,e)}function o(e,t){return function(i,o){var r=Array.prototype.slice.call(arguments,2);return n(e[i],r,t)}}var r=function(){function e(e){var t=this;this._env=e,this.localize=function(e,n){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];return i.apply(void 0,[t._env,e,n].concat(o))}}return e.prototype.setPseudoTranslation=function(e){this._env._isPseudo=e},e.prototype.create=function(e,t){return{localize:o(t[e],this._env)}},e.prototype.load=function(t,n,i,r){var s=this;if(r=r||{},t&&0!==t.length){\nvar a=r[\"vs/nls\"]||{},l=a.availableLanguages?function(e,t){var n=e[t];return n||((n=e[\"*\"])||null)}(a.availableLanguages,t):null,u=\".nls\";null!==l&&l!==e.DEFAULT_TAG&&(u=u+\".\"+l);var d=function(e){Array.isArray(e)?e.localize=o(e,s._env):e.localize=o(e[t],s._env),i(e)};\"function\"==typeof a.loadBundle?a.loadBundle(t,l,(function(e,i){e?n([t+\".nls\"],d):d(i)})):n([t+u],d)}else i({localize:this.localize})},e.DEFAULT_TAG=\"i-default\",e}();e.NLSPlugin=r,define(\"vs/nls\",new r(new t))}(t||(t={})),define(n[98],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.DataTransfers={RESOURCES:\"ResourceURLs\",DOWNLOAD_URL:\"DownloadURL\",FILES:\"Files\",TEXT:\"text/plain\"};var n=function(){function e(e){this.data=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.data},e}();t.DragAndDropData=n,t.StaticDND={CurrentDragAndDropData:void 0}})),define(n[174],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=null\n;function o(e){if(!e.parent||e.parent===e)return null;try{var t=e.location,i=e.parent.location;if(t.protocol!==i.protocol||t.hostname!==i.hostname||t.port!==i.port)return n=!0,null}catch(e){return n=!0,null}return e.parent}function r(e,t){for(var n,i=e.document.getElementsByTagName(\"iframe\"),o=0,r=i.length;o<r;o++)if((n=i[o]).contentWindow===t)return n;return null}var s=function(){function e(){}return e.getSameOriginWindowChain=function(){if(!i){i=[];var e,t=window;do{(e=o(t))?i.push({window:t,iframeElement:r(e,t)}):i.push({window:t,iframeElement:null}),t=e}while(t)}return i.slice(0)},e.hasDifferentOriginAncestor=function(){return i||this.getSameOriginWindowChain(),n},e.getPositionOfChildWindowRelativeToAncestorWindow=function(e,t){if(!t||e===t)return{top:0,left:0};for(var n=0,i=0,o=0,r=this.getSameOriginWindowChain();o<r.length;o++){var s=r[o];if(s.window===t)break;if(!s.iframeElement)break;var a=s.iframeElement.getBoundingClientRect();n+=a.top,i+=a.left}return{top:n,left:i}},e}();t.IframeUtils=s}))\n;var o,r=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});\n/*\nThe MIT License (MIT)\n\nCopyright © 2015 Nicolas Bevacqua\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nlet s;define(n[239],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.TREE=\"tree\",e.FORM=\"form\"}(t.ListAriaRootRole||(t.ListAriaRootRole={}));var n=function(e){function t(t,n){return e.call(this,\"ListError [\"+t+\"] \"+n)||this}return r(t,e),t}(Error);t.ListError=n})),define(n[240],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.spliceables=e}return e.prototype.splice=function(e,t,n){this.spliceables.forEach((function(i){return i.splice(e,t,n)}))},e}();t.CombinedSpliceable=n})),define(n[175],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i,o,r){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(n),this._arrowSize=Math.round(e),this._visibleSize=i,this._scrollSize=o,this._scrollPosition=r,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,\nthis._computedSliderPosition=0,this._refreshComputedValues()}return e.prototype.clone=function(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)},e.prototype.setVisibleSize=function(e){var t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollSize=function(e){var t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollPosition=function(e){var t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)},e._computeValues=function(e,t,n,i,o){var r=Math.max(0,n-e),s=Math.max(0,r-2*t),a=i>0&&i>n;if(!a)return{computedAvailableSize:Math.round(r),computedIsNeeded:a,computedSliderSize:Math.round(s),computedSliderRatio:0,computedSliderPosition:0};var l=Math.round(Math.max(20,Math.floor(n*s/i))),u=(s-l)/(i-n),d=o*u;return{computedAvailableSize:Math.round(r),\ncomputedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:u,computedSliderPosition:Math.round(d)}},e.prototype._refreshComputedValues=function(){var t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition},e.prototype.getArrowSize=function(){return this._arrowSize},e.prototype.getScrollPosition=function(){return this._scrollPosition},e.prototype.getRectangleLargeSize=function(){return this._computedAvailableSize},e.prototype.getRectangleSmallSize=function(){return this._scrollbarSize},e.prototype.isNeeded=function(){return this._computedIsNeeded},e.prototype.getSliderSize=function(){return this._computedSliderSize},e.prototype.getSliderPosition=function(){return this._computedSliderPosition},\ne.prototype.getDesiredScrollPositionFromOffset=function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)},e.prototype.getDesiredScrollPositionFromDelta=function(e){if(!this._computedIsNeeded)return 0;var t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)},e}();t.ScrollbarState=n})),define(n[99],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){function t(t,n){return e.call(this,\"TreeError [\"+t+\"] \"+n)||this}return r(t,e),t}(Error);t.TreeError=n;var i=function(){function e(e){this.fn=e,this._map=new WeakMap}return e.prototype.map=function(e){var t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t},e}();t.WeakMapper=i})),define(n[19],i([0,1]),(function(e,t){\"use strict\";function n(e,t){return function e(t,n,i,o,r){if(o<=i)return;var s=i+(o-i)/2|0;e(t,n,i,s,r);e(t,n,s+1,o,r);if(n(t[s],t[s+1])<=0)return;!function(e,t,n,i,o,r){\nfor(var s=n,a=i+1,l=n;l<=o;l++)r[l]=e[l];for(l=n;l<=o;l++)s>i?e[l]=r[a++]:a>o?e[l]=r[s++]:t(r[a],r[s])<0?e[l]=r[a++]:e[l]=r[s++]}(t,n,i,s,o,r)}(e,t,0,e.length-1,[]),e}function i(e,t){for(var n=0;n<e.length;n++){if(t(e[n]))return n}return-1}Object.defineProperty(t,\"__esModule\",{value:!0}),t.tail=function(e,t){return void 0===t&&(t=0),e[e.length-(1+t)]},t.tail2=function(e){if(0===e.length)throw new Error(\"Invalid tail call\");return[e.slice(0,e.length-1),e[e.length-1]]},t.equals=function(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var i=0,o=e.length;i<o;i++)if(!n(e[i],t[i]))return!1;return!0},t.binarySearch=function(e,t,n){for(var i=0,o=e.length-1;i<=o;){var r=(i+o)/2|0,s=n(e[r],t);if(s<0)i=r+1;else{if(!(s>0))return r;o=r-1}}return-(i+1)},t.findFirstInSorted=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var o=Math.floor((n+i)/2);t(e[o])?i=o:n=o+1}return n},t.mergeSort=n,t.groupBy=function(e,t){\nfor(var i=[],o=void 0,r=0,s=n(e.slice(0),t);r<s.length;r++){var a=s[r];o&&0===t(o[0],a)?o.push(a):(o=[a],i.push(o))}return i},t.coalesce=function(e){return e.filter((function(e){return!!e}))},t.isFalsyOrEmpty=function(e){return!Array.isArray(e)||0===e.length},t.isNonEmptyArray=function(e){return Array.isArray(e)&&e.length>0},t.distinct=function(e,t){if(!t)return e.filter((function(t,n){return e.indexOf(t)===n}));var n=Object.create(null);return e.filter((function(e){var i=t(e);return!n[i]&&(n[i]=!0,!0)}))},t.distinctES6=function(e){var t=new Set;return e.filter((function(e){return!t.has(e)&&(t.add(e),!0)}))},t.fromSet=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.firstIndex=i,t.first=function(e,t,n){void 0===n&&(n=void 0);var o=i(e,t);return o<0?n:e[o]},t.firstOrDefault=function(e,t){return e.length>0?e[0]:t},t.flatten=function(e){var t;return(t=[]).concat.apply(t,e)},t.range=function(e,t){var n=\"number\"==typeof t?e:0;\"number\"==typeof t?n=e:(n=0,t=e);var i=[]\n;if(n<=t)for(var o=n;o<t;o++)i.push(o);else for(o=n;o>t;o--)i.push(o);return i},t.arrayInsert=function(e,t,n){var i=e.slice(0,t),o=e.slice(t);return i.concat(n,o)},t.pushToStart=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.find=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(t(i,n,e))return i}},t.asArray=function(e){return Array.isArray(e)?e:[e]}})),define(n[124],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ok=function(e,t){if(!e)throw new Error(t?\"Assertion failed (\"+t+\")\":\"Assertion Failed\")}})),define(n[100],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=/(\\\\)?\\$\\([a-z0-9\\-]+?(?:~[a-z0-9\\-]*?)?\\)/gi;t.escapeCodicons=function(e){return e.replace(n,(function(e,t){return t?e:\"\\\\\"+e}))};var i=/\\\\\\$\\([a-z0-9\\-]+?(?:~[a-z0-9\\-]*?)?\\)/gi;t.markdownEscapeEscapedCodicons=function(e){return e.replace(i,(function(e){\nreturn\"\\\\\"+e}))};var o=/(\\\\)?\\$\\((([a-z0-9\\-]+?)(?:~([a-z0-9\\-]*?))?)\\)/gi;t.renderCodicons=function(e){return e.replace(o,(function(e,t,n,i,o){return t?\"$(\"+n+\")\":'<span class=\"codicon codicon-'+i+(o?\" codicon-animation-\"+o:\"\")+'\"></span>'}))}})),define(n[87],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=Object.prototype.hasOwnProperty;t.values=function(e){var t=[];for(var i in e)n.call(e,i)&&t.push(e[i]);return t},t.first=function(e){for(var t in e)if(n.call(e,t))return e[t]},t.forEach=function(e,t){var i=function(i){if(n.call(e,i)&&!1===t({key:i,value:e[i]},(function(){delete e[i]})))return{value:void 0}};for(var o in e){var r=i(o);if(\"object\"==typeof r)return r.value}};var i=function(){function e(){this.map=new Map}return e.prototype.add=function(e,t){var n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)},e.prototype.delete=function(e,t){var n=this.map.get(e);n&&(n.delete(t),0===n.size&&this.map.delete(e))},e.prototype.forEach=function(e,t){\nvar n=this.map.get(e);n&&n.forEach(t)},e}();t.SetMap=i})),define(n[27],i([0,1]),(function(e,t){\"use strict\";function n(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,i,o){void 0===o&&(o=1),this.r=0|Math.min(255,Math.max(0,e)),this.g=0|Math.min(255,Math.max(0,t)),this.b=0|Math.min(255,Math.max(0,i)),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a},e}();t.RGBA=i;var o=function(){function e(e,t,i,o){this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.l=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a},e.fromRGBA=function(t){var n=t.r/255,i=t.g/255,o=t.b/255,r=t.a,s=Math.max(n,i,o),a=Math.min(n,i,o),l=0,u=0,d=(a+s)/2,c=s-a;if(c>0){switch(u=Math.min(d<=.5?c/(2*d):c/(2-2*d),1),s){case n:l=(i-o)/c+(i<o?6:0);break;case i:l=(o-n)/c+2;break\n;case o:l=(n-i)/c+4}l*=60,l=Math.round(l)}return new e(l,u,d,r)},e._hue2rgb=function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},e.toRGBA=function(t){var n,o,r,s=t.h/360,a=t.s,l=t.l,u=t.a;if(0===a)n=o=r=l;else{var d=l<.5?l*(1+a):l+a-l*a,c=2*l-d;n=e._hue2rgb(c,d,s+1/3),o=e._hue2rgb(c,d,s),r=e._hue2rgb(c,d,s-1/3)}return new i(Math.round(255*n),Math.round(255*o),Math.round(255*r),u)},e}();t.HSLA=o;var r=function(){function e(e,t,i,o){this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.v=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}return e.equals=function(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a},e.fromRGBA=function(t){var n,i=t.r/255,o=t.g/255,r=t.b/255,s=Math.max(i,o,r),a=s-Math.min(i,o,r),l=0===s?0:a/s;return n=0===a?0:s===i?((o-r)/a%6+6)%6:s===o?(r-i)/a+2:(i-o)/a+4,new e(Math.round(60*n),l,s,t.a)},e.toRGBA=function(e){\nvar t=e.h,n=e.s,o=e.v,r=e.a,s=o*n,a=s*(1-Math.abs(t/60%2-1)),l=o-s,u=[0,0,0],d=u[0],c=u[1],h=u[2];return t<60?(d=s,c=a):t<120?(d=a,c=s):t<180?(c=s,h=a):t<240?(c=a,h=s):t<300?(d=a,h=s):t<360&&(d=s,h=a),d=Math.round(255*(d+l)),c=Math.round(255*(c+l)),h=Math.round(255*(h+l)),new i(d,c,h,r)},e}();t.HSVA=r;var s=function(){function e(e){if(!e)throw new Error(\"Color needs a value\");if(e instanceof i)this.rgba=e;else if(e instanceof o)this._hsla=e,this.rgba=o.toRGBA(e);else{if(!(e instanceof r))throw new Error(\"Invalid color ctor argument\");this._hsva=e,this.rgba=r.toRGBA(e)}}return e.fromHex=function(t){return e.Format.CSS.parseHex(t)||e.red},Object.defineProperty(e.prototype,\"hsla\",{get:function(){return this._hsla?this._hsla:o.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hsva\",{get:function(){return this._hsva?this._hsva:r.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),e.prototype.equals=function(e){\nreturn!!e&&i.equals(this.rgba,e.rgba)&&o.equals(this.hsla,e.hsla)&&r.equals(this.hsva,e.hsva)},e.prototype.getRelativeLuminance=function(){return n(.2126*e._relativeLuminanceForComponent(this.rgba.r)+.7152*e._relativeLuminanceForComponent(this.rgba.g)+.0722*e._relativeLuminanceForComponent(this.rgba.b),4)},e._relativeLuminanceForComponent=function(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)},e.prototype.isLighter=function(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128},e.prototype.isLighterThan=function(e){return this.getRelativeLuminance()>e.getRelativeLuminance()},e.prototype.isDarkerThan=function(e){return this.getRelativeLuminance()<e.getRelativeLuminance()},e.prototype.lighten=function(t){return new e(new o(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*t,this.hsla.a))},e.prototype.darken=function(t){return new e(new o(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*t,this.hsla.a))},e.prototype.transparent=function(t){var n=this.rgba,o=n.r,r=n.g,s=n.b,a=n.a\n;return new e(new i(o,r,s,a*t))},e.prototype.isTransparent=function(){return 0===this.rgba.a},e.prototype.isOpaque=function(){return 1===this.rgba.a},e.prototype.opposite=function(){return new e(new i(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))},e.prototype.toString=function(){return\"\"+e.Format.CSS.format(this)},e.getLighterColor=function(e,t,n){if(e.isLighterThan(t))return e;n=n||.5;var i=e.getRelativeLuminance(),o=t.getRelativeLuminance();return n=n*(o-i)/o,e.lighten(n)},e.getDarkerColor=function(e,t,n){if(e.isDarkerThan(t))return e;n=n||.5;var i=e.getRelativeLuminance();return n=n*(i-t.getRelativeLuminance())/i,e.darken(n)},e.white=new e(new i(255,255,255,1)),e.black=new e(new i(0,0,0,1)),e.red=new e(new i(255,0,0,1)),e.blue=new e(new i(0,0,255,1)),e.cyan=new e(new i(0,255,255,1)),e.lightgrey=new e(new i(211,211,211,1)),e.transparent=new e(new i(0,0,0,0)),e}();t.Color=s,function(e){!function(t){!function(t){function n(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}function o(e){\nswitch(e){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:case 65:return 10;case 98:case 66:return 11;case 99:case 67:return 12;case 100:case 68:return 13;case 101:case 69:return 14;case 102:case 70:return 15}return 0}t.formatRGB=function(t){return 1===t.rgba.a?\"rgb(\"+t.rgba.r+\", \"+t.rgba.g+\", \"+t.rgba.b+\")\":e.Format.CSS.formatRGBA(t)},t.formatRGBA=function(e){return\"rgba(\"+e.rgba.r+\", \"+e.rgba.g+\", \"+e.rgba.b+\", \"+ +e.rgba.a.toFixed(2)+\")\"},t.formatHSL=function(t){return 1===t.hsla.a?\"hsl(\"+t.hsla.h+\", \"+(100*t.hsla.s).toFixed(2)+\"%, \"+(100*t.hsla.l).toFixed(2)+\"%)\":e.Format.CSS.formatHSLA(t)},t.formatHSLA=function(e){return\"hsla(\"+e.hsla.h+\", \"+(100*e.hsla.s).toFixed(2)+\"%, \"+(100*e.hsla.l).toFixed(2)+\"%, \"+e.hsla.a.toFixed(2)+\")\"},t.formatHex=function(e){return\"#\"+n(e.rgba.r)+n(e.rgba.g)+n(e.rgba.b)},t.formatHexA=function(t,i){return void 0===i&&(i=!1),\ni&&1===t.rgba.a?e.Format.CSS.formatHex(t):\"#\"+n(t.rgba.r)+n(t.rgba.g)+n(t.rgba.b)+n(Math.round(255*t.rgba.a))},t.format=function(t){return t.isOpaque()?e.Format.CSS.formatHex(t):e.Format.CSS.formatRGBA(t)},t.parseHex=function(t){var n=t.length;if(0===n)return null;if(35!==t.charCodeAt(0))return null;if(7===n){var r=16*o(t.charCodeAt(1))+o(t.charCodeAt(2)),s=16*o(t.charCodeAt(3))+o(t.charCodeAt(4)),a=16*o(t.charCodeAt(5))+o(t.charCodeAt(6));return new e(new i(r,s,a,1))}if(9===n){r=16*o(t.charCodeAt(1))+o(t.charCodeAt(2)),s=16*o(t.charCodeAt(3))+o(t.charCodeAt(4)),a=16*o(t.charCodeAt(5))+o(t.charCodeAt(6));var l=16*o(t.charCodeAt(7))+o(t.charCodeAt(8));return new e(new i(r,s,a,l/255))}if(4===n){r=o(t.charCodeAt(1)),s=o(t.charCodeAt(2)),a=o(t.charCodeAt(3));return new e(new i(16*r+r,16*s+s,16*a+a))}if(5===n){r=o(t.charCodeAt(1)),s=o(t.charCodeAt(2)),a=o(t.charCodeAt(3)),l=o(t.charCodeAt(4));return new e(new i(16*r+r,16*s+s,16*a+a,(16*l+l)/255))}return null}}(t.CSS||(t.CSS={}))}(e.Format||(e.Format={}))\n}(s=t.Color||(t.Color={})),t.Color=s})),define(n[101],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=0;function i(){var e=\"$memoize\"+n++,t=void 0,i=function(n,i,o){var r=null,s=null;if(\"function\"==typeof o.value?(r=\"value\",0!==(s=o.value).length&&console.warn(\"Memoize should only be used in functions with zero parameters\")):\"function\"==typeof o.get&&(r=\"get\",s=o.get),!s)throw new Error(\"not supported\");var a=e+\":\"+i;o[r]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t=this,this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!0,enumerable:!1,writable:!0,value:s.apply(this,e)}),this[a]}};return i.clear=function(){void 0!==t&&Object.getOwnPropertyNames(t).forEach((function(n){0===n.indexOf(e)&&delete t[n]}))},i}t.createMemoizer=i,t.memoize=function(e,t,n){return i()(e,t,n)}})),define(n[241],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){\nthis.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=i}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();t.DiffChange=n})),define(n[10],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((function(){if(e.stack)throw new Error(e.message+\"\\n\\n\"+e.stack);throw e}),0)}}return e.prototype.emit=function(e){this.listeners.forEach((function(t){t(e)}))},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}();t.ErrorHandler=n,t.errorHandler=new n,t.onUnexpectedError=function(e){o(e)||t.errorHandler.onUnexpectedError(e)},t.onUnexpectedExternalError=function(e){o(e)||t.errorHandler.onUnexpectedExternalError(e)},\nt.transformErrorForSerialization=function(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e};var i=\"Canceled\";function o(e){return e instanceof Error&&e.name===i&&e.message===i}t.isPromiseCanceledError=o,t.canceled=function(){var e=new Error(i);return e.name=e.message,e},t.illegalArgument=function(e){return e?new Error(\"Illegal argument: \"+e):new Error(\"Illegal argument\")},t.illegalState=function(e){return e?new Error(\"Illegal state: \"+e):new Error(\"Illegal state\")}})),define(n[102],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.once=function(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}})),define(n[125],i([0,1]),(function(e,t){\"use strict\";function n(e,t){switch(void 0===t&&(t=0),typeof e){case\"object\":return null===e?i(349,t):Array.isArray(e)?(r=e,s=i(104579,s=t),r.reduce((function(e,t){return n(t,e)}),s)):function(e,t){return t=i(181387,t),\nObject.keys(e).sort().reduce((function(t,i){return t=o(i,t),n(e[i],t)}),t)}(e,t);case\"string\":return o(e,t);case\"boolean\":return function(e,t){return i(e?433:863,t)}(e,t);case\"number\":return i(e,t);case\"undefined\":return i(0,937);default:return i(0,617)}var r,s}function i(e,t){return(t<<5)-t+e|0}function o(e,t){t=i(149417,t);for(var n=0,o=e.length;n<o;n++)t=i(e.charCodeAt(n),t);return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hash=n,t.stringHash=o})),define(n[126],i([0,1,241,125]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this.source=e}return e.prototype.getElements=function(){for(var e=this.source,t=new Int32Array(e.length),n=0,i=e.length;n<i;n++)t[n]=e.charCodeAt(n);return t},e}();t.StringDiffSequence=o,t.stringDiff=function(e,t,n){return new l(new o(e),new o(t)).ComputeDiff(n).changes};var r=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}();t.Debug=r;var s=function(){function e(){}\nreturn e.Copy=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},e.Copy2=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},e}();t.MyArray=s;var a=function(){function e(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}return e.prototype.MarkNextChange=function(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){\nreturn(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),l=function(){function e(t,n,i){void 0===i&&(i=null),this.ContinueProcessingPredicate=i;var o=e._getElements(t),r=o[0],s=o[1],a=o[2],l=e._getElements(n),u=l[0],d=l[1],c=l[2];this._hasStrings=a&&c,this._originalStringElements=r,this._originalElementsOrHash=s,this._modifiedStringElements=u,this._modifiedElementsOrHash=d,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e._isStringArray=function(e){return e.length>0&&\"string\"==typeof e[0]},e._getElements=function(t){var n=t.getElements();if(e._isStringArray(n)){for(var o=new Int32Array(n.length),r=0,s=n.length;r<s;r++)o[r]=i.stringHash(n[r],0);return[n,o,!0]}return n instanceof Int32Array?[[],n,!1]:[[],new Int32Array(n),!1]},e.prototype.ElementsAreEqual=function(e,t){\nreturn this._originalElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._modifiedStringElements[t])},e.prototype.OriginalElementsAreEqual=function(e,t){return this._originalElementsOrHash[e]===this._originalElementsOrHash[t]&&(!this._hasStrings||this._originalStringElements[e]===this._originalStringElements[t])},e.prototype.ModifiedElementsAreEqual=function(e,t){return this._modifiedElementsOrHash[e]===this._modifiedElementsOrHash[t]&&(!this._hasStrings||this._modifiedStringElements[e]===this._modifiedStringElements[t])},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)},e.prototype._ComputeDiff=function(e,t,n,i,o){var r=[!1],s=this.ComputeDiffRecursive(e,t,n,i,r);return o&&(s=this.PrettifyChanges(s)),{quitEarly:r[0],changes:s}},e.prototype.ComputeDiffRecursive=function(e,t,i,o,s){for(s[0]=!1;e<=t&&i<=o&&this.ElementsAreEqual(e,i);)e++,i++\n;for(;t>=e&&o>=i&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||i>o){var a=void 0;return i<=o?(r.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),a=[new n.DiffChange(e,0,i,o-i+1)]):e<=t?(r.Assert(i===o+1,\"modifiedStart should only be one more than modifiedEnd\"),a=[new n.DiffChange(e,t-e+1,i,0)]):(r.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),r.Assert(i===o+1,\"modifiedStart should only be one more than modifiedEnd\"),a=[]),a}var l=[0],u=[0],d=this.ComputeRecursionPoint(e,t,i,o,l,u,s),c=l[0],h=u[0];if(null!==d)return d;if(!s[0]){var p=this.ComputeDiffRecursive(e,c,i,h,s),g=[];return g=s[0]?[new n.DiffChange(c+1,t-(c+1)+1,h+1,o-(h+1)+1)]:this.ComputeDiffRecursive(c+1,t,h+1,o,s),this.ConcatenateChanges(p,g)}return[new n.DiffChange(e,t-e+1,i,o-i+1)]},e.prototype.WALKTRACE=function(e,t,i,o,r,s,l,u,d,c,h,p,g,f,m,v,_,y){var C,b=null,S=new a,w=t,E=i,L=g[0]-v[0]-o,D=-1073741824,N=this.m_forwardHistory.length-1;do{(k=L+e)===w||k<E&&d[k-1]<d[k+1]?(f=(h=d[k+1])-L-o,\nh<D&&S.MarkNextChange(),D=h,S.AddModifiedElement(h+1,f),L=k+1-e):(f=(h=d[k-1]+1)-L-o,h<D&&S.MarkNextChange(),D=h-1,S.AddOriginalElement(h,f+1),L=k-1-e),N>=0&&(e=(d=this.m_forwardHistory[N])[0],w=1,E=d.length-1)}while(--N>=-1);if(C=S.getReverseChanges(),y[0]){var x=g[0]+1,I=v[0]+1;if(null!==C&&C.length>0){var M=C[C.length-1];x=Math.max(x,M.getOriginalEnd()),I=Math.max(I,M.getModifiedEnd())}b=[new n.DiffChange(x,p-x+1,I,m-I+1)]}else{S=new a,w=s,E=l,L=g[0]-v[0]-u,D=1073741824,N=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{var k;(k=L+r)===w||k<E&&c[k-1]>=c[k+1]?(f=(h=c[k+1]-1)-L-u,h>D&&S.MarkNextChange(),D=h+1,S.AddOriginalElement(h+1,f+1),L=k+1-r):(f=(h=c[k-1])-L-u,h>D&&S.MarkNextChange(),D=h,S.AddModifiedElement(h+1,f+1),L=k-1-r),N>=0&&(r=(c=this.m_reverseHistory[N])[0],w=1,E=c.length-1)}while(--N>=-1);b=S.getChanges()}return this.ConcatenateChanges(C,b)},e.prototype.ComputeRecursionPoint=function(e,t,i,o,r,a,l){var u=0,d=0,c=0,h=0,p=0,g=0;e--,i--,r[0]=0,a[0]=0,this.m_forwardHistory=[],\nthis.m_reverseHistory=[];var f=t-e+(o-i),m=f+1,v=new Int32Array(m),_=new Int32Array(m),y=o-i,C=t-e,b=e-i,S=t-o,w=(C-y)%2==0;v[y]=e,_[C]=t,l[0]=!1;for(var E=1;E<=f/2+1;E++){var L=0,D=0;c=this.ClipDiagonalBound(y-E,E,y,m),h=this.ClipDiagonalBound(y+E,E,y,m);for(var N=c;N<=h;N+=2){d=(u=N===c||N<h&&v[N-1]<v[N+1]?v[N+1]:v[N-1]+1)-(N-y)-b;for(var x=u;u<t&&d<o&&this.ElementsAreEqual(u+1,d+1);)u++,d++;if(v[N]=u,u+d>L+D&&(L=u,D=d),!w&&Math.abs(N-C)<=E-1&&u>=_[N])return r[0]=u,a[0]=d,x<=_[N]&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):null}var I=(L-e+(D-i)-E)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(L,I))return l[0]=!0,r[0]=L,a[0]=D,I>0&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):(e++,i++,[new n.DiffChange(e,t-e+1,i,o-i+1)]);p=this.ClipDiagonalBound(C-E,E,C,m),g=this.ClipDiagonalBound(C+E,E,C,m);for(N=p;N<=g;N+=2){d=(u=N===p||N<g&&_[N-1]>=_[N+1]?_[N+1]-1:_[N-1])-(N-C)-S;for(x=u;u>e&&d>i&&this.ElementsAreEqual(u,d);)u--,d--;if(_[N]=u,\nw&&Math.abs(N-y)<=E&&u<=v[N])return r[0]=u,a[0]=d,x>=v[N]&&E<=1448?this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l):null}if(E<=1447){var M=new Int32Array(h-c+2);M[0]=y-c+1,s.Copy2(v,c,M,1,h-c+1),this.m_forwardHistory.push(M),(M=new Int32Array(g-p+2))[0]=C-p+1,s.Copy2(_,p,M,1,g-p+1),this.m_reverseHistory.push(M)}}return this.WALKTRACE(y,c,h,b,C,p,g,S,v,_,u,t,r,d,o,a,w,l)},e.prototype.PrettifyChanges=function(e){for(var t=0;t<e.length;t++){for(var n=e[t],i=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,r=n.originalLength>0,s=n.modifiedLength>0;n.originalStart+n.originalLength<i&&n.modifiedStart+n.modifiedLength<o&&(!r||this.OriginalElementsAreEqual(n.originalStart,n.originalStart+n.originalLength))&&(!s||this.ModifiedElementsAreEqual(n.modifiedStart,n.modifiedStart+n.modifiedLength));)n.originalStart++,n.modifiedStart++;var a=[null];t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],a)&&(e[t]=a[0],e.splice(t+1,1),t--)}\nfor(t=e.length-1;t>=0;t--){n=e[t],i=0,o=0;if(t>0){var l=e[t-1];l.originalLength>0&&(i=l.originalStart+l.originalLength),l.modifiedLength>0&&(o=l.modifiedStart+l.modifiedLength)}r=n.originalLength>0,s=n.modifiedLength>0;for(var u=0,d=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength),c=1;;c++){var h=n.originalStart-c,p=n.modifiedStart-c;if(h<i||p<o)break;if(r&&!this.OriginalElementsAreEqual(h,h+n.originalLength))break;if(s&&!this.ModifiedElementsAreEqual(p,p+n.modifiedLength))break;var g=this._boundaryScore(h,n.originalLength,p,n.modifiedLength);g>d&&(d=g,u=c)}n.originalStart-=u,n.modifiedStart-=u}return e},e.prototype._OriginalIsBoundary=function(e){return e<=0||e>=this._originalElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._originalStringElements[e])},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t\n;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\\s*$/.test(this._modifiedStringElements[e])},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){var i=new Array(e.length+t.length-1);return s.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],s.Copy(t,1,i,e.length,t.length-1),i}i=new Array(e.length+t.length);return s.Copy(e,0,i,0,e.length),s.Copy(t,0,i,e.length,t.length),i},e.prototype.ChangesOverlap=function(e,t,i){\nif(r.Assert(e.originalStart<=t.originalStart,\"Left change is not less than or equal to right change\"),r.Assert(e.modifiedStart<=t.modifiedStart,\"Left change is not less than or equal to right change\"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var o=e.originalStart,s=e.originalLength,a=e.modifiedStart,l=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(l=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new n.DiffChange(o,s,a,l),!0}return i[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,i){if(e>=0&&e<i)return e;var o=t%2==0;return e<0?o===(n%2==0)?0:1:o===((i-n-1)%2==0)?i-1:i-2},e}();t.LcsDiff=l})),define(n[75],i([0,1,19,100]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){var n,i;void 0===e&&(e=\"\"),void 0===t&&(t=!1),this._value=e,\n\"boolean\"==typeof t?(this._isTrusted=t,this._supportThemeIcons=!1):(this._isTrusted=null!==(n=t.isTrusted)&&void 0!==n&&n,this._supportThemeIcons=null!==(i=t.supportThemeIcons)&&void 0!==i&&i)}return Object.defineProperty(e.prototype,\"value\",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isTrusted\",{get:function(){return this._isTrusted},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"supportThemeIcons\",{get:function(){return this._supportThemeIcons},enumerable:!0,configurable:!0}),e.prototype.appendText=function(e){return this._value+=(this._supportThemeIcons?i.escapeCodicons(e):e).replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\").replace(\"\\n\",\"\\n\\n\"),this},e.prototype.appendMarkdown=function(e){return this._value+=e,this},e.prototype.appendCodeblock=function(e,t){return this._value+=\"\\n```\",this._value+=e,this._value+=\"\\n\",this._value+=t,this._value+=\"\\n```\\n\",this},e}();function r(e){\nreturn e instanceof o||!(!e||\"object\"!=typeof e)&&!(\"string\"!=typeof e.value||\"boolean\"!=typeof e.isTrusted&&void 0!==e.isTrusted||\"boolean\"!=typeof e.supportThemeIcons&&void 0!==e.supportThemeIcons)}function s(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}t.MarkdownString=o,t.isEmptyMarkdownString=function e(t){return r(t)?!t.value:!Array.isArray(t)||t.every(e)},t.isMarkdownString=r,t.markedStringsEquals=function(e,t){return!e&&!t||!(!e||!t)&&(Array.isArray(e)&&Array.isArray(t)?n.equals(e,t,s):!(!r(e)||!r(t))&&s(e,t))},t.removeMarkdownEscapes=function(e){return e?e.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!])/g,\"$1\"):e},t.parseHrefAndDimensions=function(e){var t=[],n=e.split(\"|\").map((function(e){return e.trim()}));e=n[0];var i=n[1];if(i){var o=/height=(\\d+)/.exec(i),r=/width=(\\d+)/.exec(i),s=o?o[1]:\"\",a=r?r[1]:\"\",l=isFinite(parseInt(a)),u=isFinite(parseInt(s));l&&t.push('width=\"'+a+'\"'),u&&t.push('height=\"'+s+'\"')}return{href:e,dimensions:t}}\n})),define(n[127],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._prefix=e,this._lastId=0}return e.prototype.nextId=function(){return this._prefix+ ++this._lastId},e}();t.IdGenerator=n,t.defaultGenerator=new n(\"id#\")})),function e(t,n,i){function o(s,a){if(!n[s]){if(!t[s]){var l=\"function\"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var u=new Error(\"Cannot find module '\"+s+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var d=n[s]={exports:{}};t[s][0].call(d.exports,(function(e){return o(t[s][1][e]||e)}),d,d.exports,e,t,n,i)}return n[s].exports}for(var r=\"function\"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(e,t,n){\"use strict\";var i=e(\"./toMap\");t.exports={uris:i([\"background\",\"base\",\"cite\",\"href\",\"longdesc\",\"src\",\"usemap\"])}},{\"./toMap\":10}],2:[function(e,t,n){\"use strict\";t.exports={allowedAttributes:{\"*\":[\"title\",\"accesskey\"],a:[\"href\",\"name\",\"target\",\"aria-label\"],\niframe:[\"allowfullscreen\",\"frameborder\",\"src\"],img:[\"src\",\"alt\",\"title\",\"aria-label\"]},allowedClasses:{},allowedSchemes:[\"http\",\"https\",\"mailto\"],allowedTags:[\"a\",\"abbr\",\"article\",\"b\",\"blockquote\",\"br\",\"caption\",\"code\",\"del\",\"details\",\"div\",\"em\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"ins\",\"kbd\",\"li\",\"main\",\"mark\",\"ol\",\"p\",\"pre\",\"section\",\"span\",\"strike\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"th\",\"thead\",\"tr\",\"u\",\"ul\"],filter:null}},{}],3:[function(e,t,n){\"use strict\";var i=e(\"./toMap\");t.exports={voids:i([\"area\",\"br\",\"col\",\"hr\",\"img\",\"wbr\",\"input\",\"base\",\"basefont\",\"link\",\"meta\"])}},{\"./toMap\":10}],4:[function(e,t,n){\"use strict\";e(\"he\");var i=e(\"assignment\"),o=e(\"./parser\"),r=e(\"./sanitizer\"),a=e(\"./defaults\");function l(e,t,n){var s=[],l=!0===n?t:i({},a,t),u=r(s,l);return o(e,u),s.join(\"\")}l.defaults=a,t.exports=l,s=l},{\"./defaults\":2,\"./parser\":7,\"./sanitizer\":8,assignment:6,he:9}],5:[function(e,t,n){\"use strict\";t.exports=function(e){return\"string\"==typeof e?e.toLowerCase():e}},{}],\n6:[function(e,t,n){\"use strict\";t.exports=function e(t){for(var n,i,o=Array.prototype.slice.call(arguments,1);o.length;)for(i in n=o.shift())n.hasOwnProperty(i)&&(\"[object Object]\"===Object.prototype.toString.call(t[i])?t[i]=e(t[i],n[i]):t[i]=n[i]);return t}},{}],7:[function(e,t,n){\"use strict\";var i=e(\"he\"),o=e(\"./lowercase\"),r=(e(\"./attributes\"),e(\"./elements\")),s=/^<\\s*([\\w:-]+)((?:\\s+[\\w:-]+(?:\\s*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>\\s]+))?)*)\\s*(\\/?)\\s*>/,a=/^<\\s*\\/\\s*([\\w:-]+)[^>]*>/,l=/([\\w:-]+)(?:\\s*=\\s*(?:(?:\"((?:[^\"])*)\")|(?:'((?:[^'])*)')|([^>\\s]+)))?/g,u=/^</,d=/^<\\s*\\//;t.exports=function(e,t){for(var n,c=function(){var e=[];return e.lastItem=function(){return e[e.length-1]},e}(),h=e;e;)p();function p(){n=!0,function(){\"\\x3c!--\"===e.substr(0,4)?(i=e.indexOf(\"--\\x3e\"))>=0&&(t.comment&&t.comment(e.substring(4,i)),e=e.substring(i+3),n=!1):d.test(e)?g(a,m):u.test(e)&&g(s,f);var i;!function(){if(!n)return;var i,o=e.indexOf(\"<\");o>=0?(i=e.substring(0,o),e=e.substring(o)):(i=e,e=\"\");t.chars&&t.chars(i)}()\n}();var i=e===h;h=e,i&&(e=\"\")}function g(t,i){var o=e.match(t);o&&(e=e.substring(o[0].length),o[0].replace(t,i),n=!1)}function f(e,n,s,a){var u={},d=o(n),h=r.voids[d]||!!a;s.replace(l,(function(e,t,n,o,r){u[t]=void 0===n&&void 0===o&&void 0===r?void 0:i.decode(n||o||r||\"\")})),h||c.push(d),t.start&&t.start(d,u,h)}function m(e,n){var i,r=0,s=o(n);if(s)for(r=c.length-1;r>=0&&c[r]!==s;r--);if(r>=0){for(i=c.length-1;i>=r;i--)t.end&&t.end(c[i]);c.length=r}}m()}},{\"./attributes\":1,\"./elements\":3,\"./lowercase\":5,he:9}],8:[function(e,t,n){\"use strict\";var i=e(\"he\"),o=e(\"./lowercase\"),r=e(\"./attributes\"),s=e(\"./elements\");t.exports=function(e,t){var n,a=t||{};return c(),{start:function(e,t,s){var d=o(e);if(n.ignoring)return void u(d);if(-1===(a.allowedTags||[]).indexOf(d))return void u(d);if(a.filter&&!a.filter({tag:d,attrs:t}))return void u(d);l(\"<\"),l(d),Object.keys(t).forEach((function(e){var n=t[e],s=(a.allowedClasses||{})[d]||[],u=(a.allowedAttributes||{})[d]||[];u=u.concat((a.allowedAttributes||{})[\"*\"]||[])\n;var c=o(e);(\"class\"===c&&-1===u.indexOf(c)?(n=n.split(\" \").filter((function(e){return s&&-1!==s.indexOf(e)})).join(\" \").trim()).length:-1!==u.indexOf(c)&&(!0!==r.uris[c]||function(e){var t=e[0];if(\"#\"===t||\"/\"===t)return!0;var n=e.indexOf(\":\");if(-1===n)return!0;var i=e.indexOf(\"?\");if(-1!==i&&n>i)return!0;var o=e.indexOf(\"#\");if(-1!==o&&n>o)return!0;return a.allowedSchemes.some((function(t){return 0===e.indexOf(t+\":\")}))}(n)))&&(l(\" \"),l(e),\"string\"==typeof n&&(l('=\"'),l(i.encode(n)),l('\"')))})),l(s?\"/>\":\">\")},end:function(e){var t=o(e);-1!==(a.allowedTags||[]).indexOf(t)&&!1===n.ignoring?(l(\"</\"),l(t),l(\">\")):d(t)},chars:function(e){!1===n.ignoring&&l(a.transformText?a.transformText(e):e)}};function l(t){e.push(t)}function u(e){s.voids[e]||(!1===n.ignoring?n={ignoring:e,depth:1}:n.ignoring===e&&n.depth++)}function d(e){n.ignoring===e&&--n.depth<=0&&c()}function c(){n={ignoring:!1,depth:0}}}},{\"./attributes\":1,\"./elements\":3,\"./lowercase\":5,he:9}],9:[function(e,t,n){\"use strict\";var i={\"&\":\"&amp;\",\n\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},o={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},r=/(&amp;|&lt;|&gt;|&quot;|&#39;)/g,s=/[&<>\"']/g;function a(e){return i[e]}function l(e){return o[e]}function u(e){return null==e?\"\":String(e).replace(s,a)}function d(e){return null==e?\"\":String(e).replace(r,l)}u.options=d.options={},t.exports={encode:u,escape:u,decode:d,unescape:d,version:\"1.0.0-browser\"}},{}],10:[function(e,t,n){\"use strict\";function i(e,t){return e[t]=!0,e}t.exports=function(e){return e.reduce(i,{})}},{}]},{},[4]),define(\"vs/base/common/insane/insane\",(function(){return{insane:s}})),define(n[54],i([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FIN={done:!0,value:void 0},function(e){var n={next:function(){return t.FIN}};e.empty=function(){return n},e.single=function(e){var n=!1;return{next:function(){return n?t.FIN:(n=!0,{done:!1,value:e})}}},e.fromArray=function(e,n,i){return void 0===n&&(n=0),void 0===i&&(i=e.length),{next:function(){\nreturn n>=i?t.FIN:{done:!1,value:e[n++]}}}},e.fromNativeIterator=function(e){return{next:function(){var n=e.next();return n.done?t.FIN:{done:!1,value:n.value}}}},e.from=function(t){return t?Array.isArray(t)?e.fromArray(t):t:e.empty()},e.map=function(e,n){return{next:function(){var i=e.next();return i.done?t.FIN:{done:!1,value:n(i.value)}}}},e.filter=function(e,n){return{next:function(){for(;;){var i=e.next();if(i.done)return t.FIN;if(n(i.value))return{done:!1,value:i.value}}}}},e.forEach=function(e,t){for(var n=e.next();!n.done;n=e.next())t(n.value)},e.collect=function(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY);var n=[];if(0===t)return n;for(var i=0,o=e.next();!o.done&&(n.push(o.value),!(++i>=t));o=e.next());return n},e.concat=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var i=0;return{next:function(){if(i>=e.length)return t.FIN;var n=e[i].next();return n.done?(i++,this.next()):n}}},e.chain=function(e){return new i(e)}}(n=t.Iterator||(t.Iterator={}));var i=function(){function e(e){\nthis.it=e}return e.prototype.next=function(){return this.it.next()},e}();t.ChainableIterator=i,t.getSequenceIterator=function(e){return Array.isArray(e)?n.fromArray(e):e||n.empty()};var o=function(){function e(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=e.length),void 0===i&&(i=t-1),this.items=e,this.start=t,this.end=n,this.index=i}return e.prototype.first=function(){return this.index=this.start,this.current()},e.prototype.next=function(){return this.index=Math.min(this.index+1,this.end),this.current()},e.prototype.current=function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]},e}();t.ArrayIterator=o;var s=function(e){function t(t,n,i,o){return void 0===n&&(n=0),void 0===i&&(i=t.length),void 0===o&&(o=n-1),e.call(this,t,n,i,o)||this}return r(t,e),t.prototype.current=function(){return e.prototype.current.call(this)},t.prototype.previous=function(){return this.index=Math.max(this.index-1,this.start-1),this.current()},t.prototype.first=function(){\nreturn this.index=this.start,this.current()},t.prototype.last=function(){return this.index=this.end-1,this.current()},t.prototype.parent=function(){return null},t}(o);t.ArrayNavigator=s;var a=function(){function e(e,t){this.iterator=e,this.fn=t}return e.prototype.next=function(){return this.fn(this.iterator.next())},e}();t.MappedIterator=a})),define(n[242],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=10),this._initialize(e),this._limit=t,this._onChange()}return e.prototype.add=function(e){this._history.delete(e),this._history.add(e),this._onChange()},e.prototype.next=function(){return this._navigator.next()},e.prototype.previous=function(){return this._navigator.previous()},e.prototype.current=function(){return this._navigator.current()},e.prototype.parent=function(){return null},e.prototype.first=function(){return this._navigator.first()},e.prototype.last=function(){return this._navigator.last()},\ne.prototype.has=function(e){return this._history.has(e)},e.prototype._onChange=function(){this._reduceToLimit();var e=this._elements;this._navigator=new n.ArrayNavigator(e,0,e.length,e.length)},e.prototype._reduceToLimit=function(){var e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))},e.prototype._initialize=function(e){this._history=new Set;for(var t=0,n=e;t<n.length;t++){var i=n[t];this._history.add(i)}},Object.defineProperty(e.prototype,\"_elements\",{get:function(){var e=[];return this._history.forEach((function(t){return e.push(t)})),e},enumerable:!0,configurable:!0}),e}();t.HistoryNavigator=i})),define(n[36],i([0,1,10]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},\ne.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),o=new i,r=new i,s=new i;function a(e,t){var n=!!(2048&e),i=!!(256&e);return new l(2===t?i:n,!!(1024&e),!!(512&e),2===t?n:i,255&e)}!function(){function e(e,t,n,i){void 0===n&&(n=t),void 0===i&&(i=n),o.define(e,t),r.define(e,n),s.define(e,i)}e(0,\"unknown\"),e(1,\"Backspace\"),e(2,\"Tab\"),e(3,\"Enter\"),e(4,\"Shift\"),e(5,\"Ctrl\"),e(6,\"Alt\"),e(7,\"PauseBreak\"),e(8,\"CapsLock\"),e(9,\"Escape\"),e(10,\"Space\"),e(11,\"PageUp\"),e(12,\"PageDown\"),e(13,\"End\"),e(14,\"Home\"),e(15,\"LeftArrow\",\"Left\"),e(16,\"UpArrow\",\"Up\"),e(17,\"RightArrow\",\"Right\"),e(18,\"DownArrow\",\"Down\"),e(19,\"Insert\"),e(20,\"Delete\"),e(21,\"0\"),e(22,\"1\"),e(23,\"2\"),e(24,\"3\"),e(25,\"4\"),e(26,\"5\"),e(27,\"6\"),e(28,\"7\"),e(29,\"8\"),e(30,\"9\"),e(31,\"A\"),e(32,\"B\"),e(33,\"C\"),e(34,\"D\"),e(35,\"E\"),e(36,\"F\"),e(37,\"G\"),e(38,\"H\"),e(39,\"I\"),e(40,\"J\"),e(41,\"K\"),e(42,\"L\"),e(43,\"M\"),e(44,\"N\"),e(45,\"O\"),e(46,\"P\"),e(47,\"Q\"),e(48,\"R\"),e(49,\"S\"),e(50,\"T\"),e(51,\"U\"),e(52,\"V\"),e(53,\"W\"),e(54,\"X\"),e(55,\"Y\"),\ne(56,\"Z\"),e(57,\"Meta\"),e(58,\"ContextMenu\"),e(59,\"F1\"),e(60,\"F2\"),e(61,\"F3\"),e(62,\"F4\"),e(63,\"F5\"),e(64,\"F6\"),e(65,\"F7\"),e(66,\"F8\"),e(67,\"F9\"),e(68,\"F10\"),e(69,\"F11\"),e(70,\"F12\"),e(71,\"F13\"),e(72,\"F14\"),e(73,\"F15\"),e(74,\"F16\"),e(75,\"F17\"),e(76,\"F18\"),e(77,\"F19\"),e(78,\"NumLock\"),e(79,\"ScrollLock\"),e(80,\";\",\";\",\"OEM_1\"),e(81,\"=\",\"=\",\"OEM_PLUS\"),e(82,\",\",\",\",\"OEM_COMMA\"),e(83,\"-\",\"-\",\"OEM_MINUS\"),e(84,\".\",\".\",\"OEM_PERIOD\"),e(85,\"/\",\"/\",\"OEM_2\"),e(86,\"`\",\"`\",\"OEM_3\"),e(110,\"ABNT_C1\"),e(111,\"ABNT_C2\"),e(87,\"[\",\"[\",\"OEM_4\"),e(88,\"\\\\\",\"\\\\\",\"OEM_5\"),e(89,\"]\",\"]\",\"OEM_6\"),e(90,\"'\",\"'\",\"OEM_7\"),e(91,\"OEM_8\"),e(92,\"OEM_102\"),e(93,\"NumPad0\"),e(94,\"NumPad1\"),e(95,\"NumPad2\"),e(96,\"NumPad3\"),e(97,\"NumPad4\"),e(98,\"NumPad5\"),e(99,\"NumPad6\"),e(100,\"NumPad7\"),e(101,\"NumPad8\"),e(102,\"NumPad9\"),e(103,\"NumPad_Multiply\"),e(104,\"NumPad_Add\"),e(105,\"NumPad_Separator\"),e(106,\"NumPad_Subtract\"),e(107,\"NumPad_Decimal\"),e(108,\"NumPad_Divide\")}(),function(e){e.toString=function(e){return o.keyCodeToStr(e)},e.fromString=function(e){\nreturn o.strToKeyCode(e)},e.toUserSettingsUS=function(e){return r.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return s.keyCodeToStr(e)},e.fromUserSettings=function(e){return r.strToKeyCode(e)||s.strToKeyCode(e)}}(t.KeyCodeUtils||(t.KeyCodeUtils={})),t.KeyChord=function(e,t){return(e|(65535&t)<<16>>>0)>>>0},t.createKeybinding=function(e,t){if(0===e)return null;var n=(65535&e)>>>0,i=(4294901760&e)>>>16;return new u(0!==i?[a(n,t),a(i,t)]:[a(n,t)])},t.createSimpleKeybinding=a;var l=function(){function e(e,t,n,i,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyCode=o}return e.prototype.equals=function(e){return this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.toChord=function(){return new u([this])},e.prototype.isDuplicateModifierCase=function(){\nreturn this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}();t.SimpleKeybinding=l;var u=function(){function e(e){if(0===e.length)throw n.illegalArgument(\"parts\");this.parts=e}return e.prototype.equals=function(e){if(null===e)return!1;if(this.parts.length!==e.parts.length)return!1;for(var t=0;t<this.parts.length;t++)if(!this.parts[t].equals(e.parts[t]))return!1;return!0},e}();t.ChordKeybinding=u;var d=function(e,t,n,i,o,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyLabel=o,this.keyAriaLabel=r};t.ResolvedKeybindingPart=d;var c=function(){};t.ResolvedKeybinding=c})),define(n[128],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.executor=e,this._didRun=!1}return e.prototype.getValue=function(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value\n},Object.defineProperty(e.prototype,\"rawValue\",{get:function(){return this._value},enumerable:!0,configurable:!0}),e}();t.Lazy=n})),define(n[2],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=\"__is_disposable_tracked__\";function o(e){if(n&&e&&e!==l.None)try{e[i]=!0}catch(e){}}function r(e){if(!n)return e;var t=new Error(\"Potentially leaked disposable\").stack;return setTimeout((function(){e[i]||console.log(t)}),3e3),e}function s(e){return Array.isArray(e)?(e.forEach((function(e){e&&(o(e),e.dispose())})),[]):e?(o(e),e.dispose(),e):void 0}t.isDisposable=function(e){return\"function\"==typeof e.dispose&&0===e.dispose.length},t.dispose=s,t.combinedDisposable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.forEach(o),r({dispose:function(){return s(e)}})},t.toDisposable=function(e){var t=r({dispose:function(){o(t),e()}});return t};var a=function(){function e(){this._toDispose=new Set,this._isDisposed=!1}\nreturn e.prototype.dispose=function(){this._isDisposed||(o(this),this._isDisposed=!0,this.clear())},e.prototype.clear=function(){this._toDispose.forEach((function(e){return e.dispose()})),this._toDispose.clear()},e.prototype.add=function(e){if(!e)return e;if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return o(e),this._isDisposed?console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(e),e},e}();t.DisposableStore=a;var l=function(){function e(){this._store=new a,r(this)}return e.prototype.dispose=function(){o(this),this._store.dispose()},e.prototype._register=function(e){if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(e)},e.None=Object.freeze({dispose:function(){}}),e}();t.Disposable=l;var u=function(){function e(){this._isDisposed=!1,r(this)}return Object.defineProperty(e.prototype,\"value\",{get:function(){\nreturn this._isDisposed?void 0:this._value},set:function(e){this._isDisposed||e===this._value||(this._value&&this._value.dispose(),e&&o(e),this._value=e)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this.value=void 0},e.prototype.dispose=function(){this._isDisposed=!0,o(this),this._value&&this._value.dispose(),this._value=void 0},e}();t.MutableDisposable=u;var d=function(){function e(e){this.object=e}return e.prototype.dispose=function(){},e}();t.ImmortalReference=d})),define(n[76],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}return e.Undefined=new e(void 0),e}(),o=function(){function e(){this._first=i.Undefined,this._last=i.Undefined,this._size=0}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return this._first===i.Undefined},e.prototype.clear=function(){\nthis._first=i.Undefined,this._last=i.Undefined,this._size=0},e.prototype.unshift=function(e){return this._insert(e,!1)},e.prototype.push=function(e){return this._insert(e,!0)},e.prototype._insert=function(e,t){var n=this,o=new i(e);if(this._first===i.Undefined)this._first=o,this._last=o;else if(t){var r=this._last;this._last=o,o.prev=r,r.next=o}else{var s=this._first;this._first=o,o.next=s,s.prev=o}this._size+=1;var a=!1;return function(){a||(a=!0,n._remove(o))}},e.prototype.shift=function(){if(this._first!==i.Undefined){var e=this._first.element;return this._remove(this._first),e}},e.prototype.pop=function(){if(this._last!==i.Undefined){var e=this._last.element;return this._remove(this._last),e}},e.prototype._remove=function(e){if(e.prev!==i.Undefined&&e.next!==i.Undefined){var t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===i.Undefined&&e.next===i.Undefined?(this._first=i.Undefined,this._last=i.Undefined):e.next===i.Undefined?(this._last=this._last.prev,\nthis._last.next=i.Undefined):e.prev===i.Undefined&&(this._first=this._first.next,this._first.prev=i.Undefined);this._size-=1},e.prototype.iterator=function(){var e,t=this._first;return{next:function(){return t===i.Undefined?n.FIN:(e?e.value=t.element:e={done:!1,value:t.element},t=t.next,e)}}},e.prototype.toArray=function(){for(var e=[],t=this._first;t!==i.Undefined;t=t.next)e.push(t.element);return e},e}();t.LinkedList=o})),define(n[4],i([0,1,10,102,2,76]),(function(e,t,n,i,o,s){\"use strict\";var a;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e){return function(t,n,i){void 0===n&&(n=null);var o,r=!1;return o=e((function(e){if(!r)return o?o.dispose():r=!0,t.call(n,e)}),null,i),r&&o.dispose(),o}}function n(e,t){return a((function(n,i,o){return void 0===i&&(i=null),e((function(e){return n.call(i,t(e))}),null,o)}))}function i(e,t){return a((function(n,i,o){return void 0===i&&(i=null),e((function(e){t(e),n.call(i,e)}),null,o)}))}function r(e,t){return a((function(n,i,o){\nreturn void 0===i&&(i=null),e((function(e){return t(e)&&n.call(i,e)}),null,o)}))}function s(e,t,i){var o=i;return n(e,(function(e){return o=t(o,e)}))}function a(e){var t,n=new d({onFirstListenerAdd:function(){t=e(n.fire,n)},onLastListenerRemove:function(){t.dispose()}});return n.event}function l(e,t,n,i,o){var r;void 0===n&&(n=100),void 0===i&&(i=!1);var s=void 0,a=void 0,l=0,u=new d({leakWarningThreshold:o,onFirstListenerAdd:function(){r=e((function(e){l++,s=t(s,e),i&&!a&&(u.fire(s),s=void 0),clearTimeout(a),a=setTimeout((function(){var e=s;s=void 0,a=void 0,(!i||l>1)&&u.fire(e),l=0}),n)}))},onLastListenerRemove:function(){r.dispose()}});return u.event}function u(e){var t,n=!0;return r(e,(function(e){var i=n||e!==t;return n=!1,t=e,i}))}e.None=function(){return o.Disposable.None},e.once=t,e.map=n,e.forEach=i,e.filter=r,e.signal=function(e){return e},e.any=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n,i){return void 0===n&&(n=null),\no.combinedDisposable.apply(void 0,e.map((function(e){return e((function(e){return t.call(n,e)}),null,i)})))}},e.reduce=s,e.snapshot=a,e.debounce=l,e.stopwatch=function(e){var i=(new Date).getTime();return n(t(e),(function(e){return(new Date).getTime()-i}))},e.latch=u,e.buffer=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=[]);var i=n.slice(),o=e((function(e){i?i.push(e):s.fire(e)})),r=function(){i&&i.forEach((function(e){return s.fire(e)})),i=null},s=new d({onFirstListenerAdd:function(){o||(o=e((function(e){return s.fire(e)})))},onFirstListenerDidAdd:function(){i&&(t?setTimeout(r):r())},onLastListenerRemove:function(){o&&o.dispose(),o=null}});return s.event};var c=function(){function e(e){this.event=e}return e.prototype.map=function(t){return new e(n(this.event,t))},e.prototype.forEach=function(t){return new e(i(this.event,t))},e.prototype.filter=function(t){return new e(r(this.event,t))},e.prototype.reduce=function(t,n){return new e(s(this.event,t,n))},e.prototype.latch=function(){\nreturn new e(u(this.event))},e.prototype.debounce=function(t,n,i,o){return void 0===n&&(n=100),void 0===i&&(i=!1),new e(l(this.event,t,n,i,o))},e.prototype.on=function(e,t,n){return this.event(e,t,n)},e.prototype.once=function(e,n,i){return t(this.event)(e,n,i)},e}();e.chain=function(e){return new c(e)},e.fromNodeEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.fire(n.apply(void 0,e))},o=new d({onFirstListenerAdd:function(){return e.on(t,i)},onLastListenerRemove:function(){return e.removeListener(t,i)}});return o.event},e.fromDOMEventEmitter=function(e,t,n){void 0===n&&(n=function(e){return e});var i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.fire(n.apply(void 0,e))},o=new d({onFirstListenerAdd:function(){return e.addEventListener(t,i)},onLastListenerRemove:function(){return e.removeEventListener(t,i)}});return o.event},e.fromPromise=function(e){var t=new d,n=!1\n;return e.then(void 0,(function(){return null})).then((function(){n?t.fire(void 0):setTimeout((function(){return t.fire(void 0)}),0)})),n=!0,t.event},e.toPromise=function(e){return new Promise((function(n){return t(e)(n)}))}}(a=t.Event||(t.Event={}));var l=-1,u=function(){function e(e,t){void 0===t&&(t=Math.random().toString(18).slice(2,5)),this.customThreshold=e,this.name=t,this._warnCountdown=0}return e.prototype.dispose=function(){this._stacks&&this._stacks.clear()},e.prototype.check=function(e){var t=this,n=l;if(\"number\"==typeof this.customThreshold&&(n=this.customThreshold),!(n<=0||e<n)){this._stacks||(this._stacks=new Map);var i=(new Error).stack.split(\"\\n\").slice(3).join(\"\\n\"),o=this._stacks.get(i)||0;if(this._stacks.set(i,o+1),this._warnCountdown-=1,this._warnCountdown<=0){var r;this._warnCountdown=.5*n;var s=0;this._stacks.forEach((function(e,t){(!r||s<e)&&(r=t,s=e)})),console.warn(\"[\"+this.name+\"] potential listener LEAK detected, having \"+e+\" listeners already. MOST frequent listener (\"+s+\"):\"),\nconsole.warn(r)}return function(){var e=t._stacks.get(i)||0;t._stacks.set(i,e-1)}}},e}(),d=function(){function e(e){this._disposed=!1,this._options=e,this._leakageMon=l>0?new u(this._options&&this._options.leakWarningThreshold):void 0}return Object.defineProperty(e.prototype,\"event\",{get:function(){var t=this;return this._event||(this._event=function(n,i,r){t._listeners||(t._listeners=new s.LinkedList);var a=t._listeners.isEmpty();a&&t._options&&t._options.onFirstListenerAdd&&t._options.onFirstListenerAdd(t);var l,u,d=t._listeners.push(i?[n,i]:n);return a&&t._options&&t._options.onFirstListenerDidAdd&&t._options.onFirstListenerDidAdd(t),t._options&&t._options.onListenerDidAdd&&t._options.onListenerDidAdd(t,n,i),t._leakageMon&&(l=t._leakageMon.check(t._listeners.size)),u={dispose:function(){(l&&l(),u.dispose=e._noop,t._disposed)||(d(),t._options&&t._options.onLastListenerRemove&&(t._listeners&&!t._listeners.isEmpty()||t._options.onLastListenerRemove(t)))}},\nr instanceof o.DisposableStore?r.add(u):Array.isArray(r)&&r.push(u),u}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new s.LinkedList);for(var t=this._listeners.iterator(),i=t.next();!i.done;i=t.next())this._deliveryQueue.push([i.value,e]);for(;this._deliveryQueue.size>0;){var o=this._deliveryQueue.shift(),r=o[0],a=o[1];try{\"function\"==typeof r?r.call(void 0,a):r[0].call(r[1],a)}catch(i){n.onUnexpectedError(i)}}}},e.prototype.dispose=function(){this._listeners&&this._listeners.clear(),this._deliveryQueue&&this._deliveryQueue.clear(),this._leakageMon&&this._leakageMon.dispose(),this._disposed=!0},e._noop=function(){},e}();t.Emitter=d;var c=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaused=0,n._eventQueue=new s.LinkedList,n._mergeFn=t&&t.merge,n}return r(t,e),t.prototype.pause=function(){this._isPaused++},t.prototype.resume=function(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){\nvar t=this._eventQueue.toArray();this._eventQueue.clear(),e.prototype.fire.call(this,this._mergeFn(t))}else for(;!this._isPaused&&0!==this._eventQueue.size;)e.prototype.fire.call(this,this._eventQueue.shift())},t.prototype.fire=function(t){this._listeners&&(0!==this._isPaused?this._eventQueue.push(t):e.prototype.fire.call(this,t))},t}(d);t.PauseableEmitter=c;var h=function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new d({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}return Object.defineProperty(e.prototype,\"event\",{get:function(){return this.emitter.event},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};this.events.push(n),this.hasListeners&&this.hook(n);return o.toDisposable(i.once((function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)})))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,\nthis.events.forEach((function(t){return e.hook(t)}))},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach((function(t){return e.unhook(t)}))},e.prototype.hook=function(e){var t=this;e.listener=e.event((function(e){return t.emitter.fire(e)}))},e.prototype.unhook=function(e){e.listener&&e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()},e}();t.EventMultiplexer=h;var p=function(){function e(){this.buffers=[]}return e.prototype.wrapEvent=function(e){var t=this;return function(n,i,o){return e((function(e){var o=t.buffers[t.buffers.length-1];o?o.push((function(){return n.call(i,e)})):n.call(i,e)}),void 0,o)}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t);var n=e();return this.buffers.pop(),t.forEach((function(e){return e()})),n},e}();t.EventBufferer=p;var g=function(){function e(){var e=this;this.listening=!1,this.inputEvent=a.None,this.inputEventListener=o.Disposable.None,this.emitter=new d({\nonFirstListenerDidAdd:function(){e.listening=!0,e.inputEventListener=e.inputEvent(e.emitter.fire,e.emitter)},onLastListenerRemove:function(){e.listening=!1,e.inputEventListener.dispose()}}),this.event=this.emitter.event}return Object.defineProperty(e.prototype,\"input\",{set:function(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.inputEventListener.dispose(),this.emitter.dispose()},e}();t.Relay=g})),define(n[24],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._zoomLevel=0,this._lastZoomLevelChangeTime=0,this._onDidChangeZoomLevel=new n.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return e.prototype.getZoomLevel=function(){return this._zoomLevel},e.prototype.getTimeSinceLastZoomLevelChanged=function(){return Date.now()-this._lastZoomLevelChangeTime},\ne.prototype.getPixelRatio=function(){var e=document.createElement(\"canvas\").getContext(\"2d\");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)},e.INSTANCE=new e,e}();t.getZoomLevel=function(){return i.INSTANCE.getZoomLevel()},t.getTimeSinceLastZoomLevelChanged=function(){return i.INSTANCE.getTimeSinceLastZoomLevelChanged()},t.onDidChangeZoomLevel=function(e){return i.INSTANCE.onDidChangeZoomLevel(e)},t.getPixelRatio=function(){return i.INSTANCE.getPixelRatio()};var o=navigator.userAgent;t.isIE=o.indexOf(\"Trident\")>=0,t.isEdge=o.indexOf(\"Edge/\")>=0,t.isEdgeOrIE=t.isIE||t.isEdge,t.isFirefox=o.indexOf(\"Firefox\")>=0,t.isWebKit=o.indexOf(\"AppleWebKit\")>=0,t.isChrome=o.indexOf(\"Chrome\")>=0,t.isSafari=!t.isChrome&&o.indexOf(\"Safari\")>=0,t.isWebkitWebView=!t.isChrome&&!t.isSafari&&t.isWebKit,t.isIPad=o.indexOf(\"iPad\")>=0||t.isSafari&&navigator.maxTouchPoints>0,\nt.isEdgeWebView=t.isEdge&&o.indexOf(\"WebView/\")>=0,t.isStandalone=window.matchMedia&&window.matchMedia(\"(display-mode: standalone)\").matches})),define(n[52],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.domEvent=function(e,t,i){var o=function(e){return r.fire(e)},r=new n.Emitter({onFirstListenerAdd:function(){e.addEventListener(t,o,i)},onLastListenerRemove:function(){e.removeEventListener(t,o,i)}});return r.event},t.stop=function(e){return n.Event.map(e,(function(e){return e.preventDefault(),e.stopPropagation(),e}))}}));var a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[129],i([0,1,99,19,4,54]),(function(e,t,n,i,o,r){\"use strict\";function s(e){return\"object\"==typeof e&&\"visibility\"in e&&\"data\"in e}function l(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function u(e){\nreturn\"boolean\"==typeof e.collapsible}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFilterResult=s,t.getVisibleState=l;var d=function(){function e(e,t,n,i){void 0===i&&(i={}),this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new o.EventBufferer,this._onDidChangeCollapseState=new o.Emitter,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new o.Emitter,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new o.Emitter,this.onDidSplice=this._onDidSplice.event,this.collapseByDefault=void 0!==i.collapseByDefault&&i.collapseByDefault,this.filter=i.filter,this.autoExpandSingleChildren=void 0!==i.autoExpandSingleChildren&&i.autoExpandSingleChildren,this.root={parent:void 0,element:n,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visible:!0,filterData:void 0}}\nreturn e.prototype.splice=function(e,t,i,o,s){var l,u=this;if(0===e.length)throw new n.TreeError(this.user,\"Invalid tree location\");for(var d=this.getParentNodeWithListIndex(e),c=d.parentNode,h=d.listIndex,p=d.revealed,g=d.visible,f=[],m=r.Iterator.map(r.Iterator.from(i),(function(e){return u.createTreeNode(e,c,c.visible?1:0,p,f,o)})),v=e[e.length-1],_=0,y=v;y>=0&&y<c.children.length;y--){if((N=c.children[y]).visible){_=N.visibleChildIndex;break}}var C=[],b=0,S=0;r.Iterator.forEach(m,(function(e){C.push(e),S+=e.renderNodeCount,e.visible&&(e.visibleChildIndex=_+b++)}));for(var w=(l=c.children).splice.apply(l,a([v,t],C)),E=0,L=0,D=w;L<D.length;L++){(N=D[L]).visible&&E++}if(0!==E)for(y=v+C.length;y<c.children.length;y++){var N;(N=c.children[y]).visible&&(N.visibleChildIndex-=E)}if(c.visibleChildrenCount+=b-E,p&&g){var x=w.reduce((function(e,t){return e+(t.visible?t.renderNodeCount:0)}),0);this._updateAncestorsRenderNodeCount(c,S-x),this.list.splice(h,x,f)}if(w.length>0&&s){var I=function(e){s(e),\ne.children.forEach(I)};w.forEach(I)}this._onDidSplice.fire({insertedNodes:C,deletedNodes:w})},e.prototype.rerender=function(e){if(0===e.length)throw new n.TreeError(this.user,\"Invalid tree location\");var t=this.getTreeNodeWithListIndex(e),i=t.node,o=t.listIndex;t.revealed&&this.list.splice(o,1,[i])},e.prototype.has=function(e){return this.hasTreeNode(e)},e.prototype.getListIndex=function(e){var t=this.getTreeNodeWithListIndex(e),n=t.listIndex,i=t.visible,o=t.revealed;return i&&o?n:-1},e.prototype.getListRenderCount=function(e){return this.getTreeNode(e).renderNodeCount},e.prototype.isCollapsible=function(e){return this.getTreeNode(e).collapsible},e.prototype.setCollapsible=function(e,t){var n=this,i=this.getTreeNode(e);void 0===t&&(t=!i.collapsible);var o={collapsible:t};return this.eventBufferer.bufferEvents((function(){return n._setCollapseState(e,o)}))},e.prototype.isCollapsed=function(e){return this.getTreeNode(e).collapsed},e.prototype.setCollapsed=function(e,t,n){var i=this,o=this.getTreeNode(e)\n;void 0===t&&(t=!o.collapsed);var r={collapsed:t,recursive:n||!1};return this.eventBufferer.bufferEvents((function(){return i._setCollapseState(e,r)}))},e.prototype._setCollapseState=function(e,t){var n=this.getTreeNodeWithListIndex(e),i=n.node,o=n.listIndex,r=n.revealed,s=this._setListNodeCollapseState(i,o,r,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!u(t)&&i.collapsible&&!i.collapsed&&!t.recursive){for(var l=-1,d=0;d<i.children.length;d++){if(i.children[d].visible){if(l>-1){l=-1;break}l=d}}l>-1&&this._setCollapseState(a(e,[l]),t)}return s},e.prototype._setListNodeCollapseState=function(e,t,n,i){var o=this._setNodeCollapseState(e,i,!1);if(!n||!e.visible||!o)return o;var r=e.renderNodeCount,s=this.updateNodeAfterCollapseChange(e),a=r-(-1===t?0:1);return this.list.splice(t+1,a,s.slice(1)),o},e.prototype._setNodeCollapseState=function(e,t,n){var i;if(e===this.root?i=!1:(u(t)?(i=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(i=e.collapsed!==t.collapsed,\ne.collapsed=t.collapsed):i=!1,i&&this._onDidChangeCollapseState.fire({node:e,deep:n})),!u(t)&&t.recursive)for(var o=0,r=e.children;o<r.length;o++){var s=r[o];i=this._setNodeCollapseState(s,t,!0)||i}return i},e.prototype.expandTo=function(e){var t=this;this.eventBufferer.bufferEvents((function(){for(var n=t.getTreeNode(e);n.parent;)n=n.parent,e=e.slice(0,e.length-1),n.collapsed&&t._setCollapseState(e,{collapsed:!1,recursive:!1})}))},e.prototype.refilter=function(){var e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t)},e.prototype.createTreeNode=function(e,t,n,i,o,s){var a=this,l={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:\"boolean\"==typeof e.collapsible?e.collapsible:void 0!==e.collapsed,collapsed:void 0===e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visible:!0,filterData:void 0},u=this._filterNode(l,n);i&&o.push(l)\n;var d=r.Iterator.from(e.children),c=i&&0!==u&&!l.collapsed,h=r.Iterator.map(d,(function(e){return a.createTreeNode(e,l,u,c,o,s)})),p=0,g=1;return r.Iterator.forEach(h,(function(e){l.children.push(e),g+=e.renderNodeCount,e.visible&&(e.visibleChildIndex=p++)})),l.collapsible=l.collapsible||l.children.length>0,l.visibleChildrenCount=p,l.visible=2===u?p>0:1===u,l.visible?l.collapsed||(l.renderNodeCount=g):(l.renderNodeCount=0,i&&o.pop()),s&&s(l),l},e.prototype.updateNodeAfterCollapseChange=function(e){var t=e.renderNodeCount,n=[];return this._updateNodeAfterCollapseChange(e,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n},e.prototype._updateNodeAfterCollapseChange=function(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(var n=0,i=e.children;n<i.length;n++){var o=i[n];e.renderNodeCount+=this._updateNodeAfterCollapseChange(o,t)}return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount},e.prototype.updateNodeAfterFilterChange=function(e){\nvar t=e.renderNodeCount,n=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,n),this._updateAncestorsRenderNodeCount(e.parent,n.length-t),n},e.prototype._updateNodeAfterFilterChange=function(e,t,n,i){var o;if(void 0===i&&(i=!0),e!==this.root){if(0===(o=this._filterNode(e,t)))return e.visible=!1,e.renderNodeCount=0,!1;i&&n.push(e)}var r=n.length;e.renderNodeCount=e===this.root?0:1;var s=!1;if(e.collapsed&&0===o)e.visibleChildrenCount=0;else{for(var a=0,l=0,u=e.children;l<u.length;l++){var d=u[l];s=this._updateNodeAfterFilterChange(d,o,n,i&&!e.collapsed)||s,d.visible&&(d.visibleChildIndex=a++)}e.visibleChildrenCount=a}return e!==this.root&&(e.visible=2===o?s:1===o),e.visible?e.collapsed||(e.renderNodeCount+=n.length-r):(e.renderNodeCount=0,i&&n.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible},e.prototype._updateAncestorsRenderNodeCount=function(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent},e.prototype._filterNode=function(e,t){\nvar n=this.filter?this.filter.filter(e.element,t):1;return\"boolean\"==typeof n?(e.filterData=void 0,n?1:0):s(n)?(e.filterData=n.data,l(n.visibility)):(e.filterData=void 0,l(n))},e.prototype.hasTreeNode=function(e,t){if(void 0===t&&(t=this.root),!e||0===e.length)return!0;var n=e[0],i=e.slice(1);return!(n<0||n>t.children.length)&&this.hasTreeNode(i,t.children[n])},e.prototype.getTreeNode=function(e,t){if(void 0===t&&(t=this.root),!e||0===e.length)return t;var i=e[0],o=e.slice(1);if(i<0||i>t.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");return this.getTreeNode(o,t.children[i])},e.prototype.getTreeNodeWithListIndex=function(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};var t=this.getParentNodeWithListIndex(e),i=t.parentNode,o=t.listIndex,r=t.revealed,s=t.visible,a=e[e.length-1];if(a<0||a>i.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");var l=i.children[a];return{node:l,listIndex:o,revealed:r,visible:s&&l.visible}},\ne.prototype.getParentNodeWithListIndex=function(e,t,i,o,r){void 0===t&&(t=this.root),void 0===i&&(i=0),void 0===o&&(o=!0),void 0===r&&(r=!0);var s=e[0],a=e.slice(1);if(s<0||s>t.children.length)throw new n.TreeError(this.user,\"Invalid tree location\");for(var l=0;l<s;l++)i+=t.children[l].renderNodeCount;return o=o&&!t.collapsed,r=r&&t.visible,0===a.length?{parentNode:t,listIndex:i,revealed:o,visible:r}:this.getParentNodeWithListIndex(a,t.children[s],i+1,o,r)},e.prototype.getNode=function(e){return void 0===e&&(e=[]),this.getTreeNode(e)},e.prototype.getNodeLocation=function(e){for(var t=[],n=e;n.parent;)t.push(n.parent.children.indexOf(n)),n=n.parent;return t.reverse()},e.prototype.getParentNodeLocation=function(e){return 0===e.length?void 0:1===e.length?[]:i.tail2(e)[0]},e}();t.IndexTreeModel=d}));var l=this&&this.__assign||function(){return(l=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e\n}).apply(this,arguments)};a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[130],i([0,1,54,129,99,19]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n){void 0===n&&(n={}),this.user=e,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new i.IndexTreeModel(e,t,null,n),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,n.sorter&&(this.sorter={compare:function(e,t){return n.sorter.compare(e.element,t.element)}}),this.identityProvider=n.identityProvider}return e.prototype.setChildren=function(e,t,n,i){var o=this.getElementLocation(e);this._setChildren(o,this.preserveCollapseState(t),n,i)},e.prototype._setChildren=function(e,t,n,i){\nvar o=this,r=new Set,s=new Set;this.model.splice(a(e,[0]),Number.MAX_VALUE,t,(function(e){if(r.add(e.element),o.nodes.set(e.element,e),o.identityProvider){var t=o.identityProvider.getId(e.element).toString();s.add(t),o.nodesByIdentity.set(t,e)}n&&n(e)}),(function(e){if(r.has(e.element)||o.nodes.delete(e.element),o.identityProvider){var t=o.identityProvider.getId(e.element).toString();s.has(t)||o.nodesByIdentity.delete(t)}i&&i(e)}))},e.prototype.preserveCollapseState=function(e){var t=this,i=e?n.getSequenceIterator(e):n.Iterator.empty();return this.sorter&&(i=n.Iterator.fromArray(r.mergeSort(n.Iterator.collect(i),this.sorter.compare.bind(this.sorter)))),n.Iterator.map(i,(function(e){var n=t.nodes.get(e.element);if(!n&&t.identityProvider){var i=t.identityProvider.getId(e.element).toString();n=t.nodesByIdentity.get(i)}if(!n)return l(l({},e),{children:t.preserveCollapseState(e.children)});var o=\"boolean\"==typeof e.collapsible?e.collapsible:n.collapsible,r=void 0!==e.collapsed?e.collapsed:n.collapsed\n;return l(l({},e),{collapsible:o,collapsed:r,children:t.preserveCollapseState(e.children)})}))},e.prototype.rerender=function(e){var t=this.getElementLocation(e);this.model.rerender(t)},e.prototype.has=function(e){return this.nodes.has(e)},e.prototype.getListIndex=function(e){var t=this.getElementLocation(e);return this.model.getListIndex(t)},e.prototype.getListRenderCount=function(e){var t=this.getElementLocation(e);return this.model.getListRenderCount(t)},e.prototype.isCollapsible=function(e){var t=this.getElementLocation(e);return this.model.isCollapsible(t)},e.prototype.setCollapsible=function(e,t){var n=this.getElementLocation(e);return this.model.setCollapsible(n,t)},e.prototype.isCollapsed=function(e){var t=this.getElementLocation(e);return this.model.isCollapsed(t)},e.prototype.setCollapsed=function(e,t,n){var i=this.getElementLocation(e);return this.model.setCollapsed(i,t,n)},e.prototype.expandTo=function(e){var t=this.getElementLocation(e);this.model.expandTo(t)},e.prototype.refilter=function(){\nthis.model.refilter()},e.prototype.getNode=function(e){if(void 0===e&&(e=null),null===e)return this.model.getNode(this.model.rootRef);var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return t},e.prototype.getNodeLocation=function(e){return e.element},e.prototype.getParentNodeLocation=function(e){if(null===e)throw new o.TreeError(this.user,\"Invalid getParentNodeLocation call\");var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);var n=this.model.getNodeLocation(t),i=this.model.getParentNodeLocation(n);return this.model.getNode(i).element},e.prototype.getElementLocation=function(e){if(null===e)return[];var t=this.nodes.get(e);if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return this.model.getNodeLocation(t)},e}();t.ObjectTreeModel=s})),define(n[243],i([0,1,54,4,99,130]),(function(e,t,n,i,o,r){\"use strict\";function s(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},\nchildren:n.Iterator.map(n.Iterator.from(e.children),s),collapsible:e.collapsible,collapsed:e.collapsed}}function a(e){for(var t,i,o=[e.element],r=e.incompressible||!1;t=n.Iterator.from(e.children),1===(i=n.Iterator.collect(t,2)).length&&!(e=i[0]).incompressible;)o.push(e.element);return{element:{elements:o,incompressible:r},children:n.Iterator.map(n.Iterator.concat(n.Iterator.fromArray(i),t),a),collapsible:e.collapsible,collapsed:e.collapsed}}function u(e){return function e(t,i){var o;return void 0===i&&(i=0),o=i<t.element.elements.length-1?n.Iterator.single(e(t,i+1)):n.Iterator.map(n.Iterator.from(t.children),(function(t){return e(t,0)})),0===i&&t.element.incompressible?{element:t.element.elements[i],children:o,incompressible:!0,collapsible:t.collapsible,collapsed:t.collapsed}:{element:t.element.elements[i],children:o,collapsible:t.collapsible,collapsed:t.collapsed}}(e,0)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.compress=a,t.decompress=u;var d=function(){function e(e,t,n){void 0===n&&(n={}),\nthis.user=e,this.nodes=new Map,this.model=new r.ObjectTreeModel(e,t,n),this.enabled=void 0===n.compressionEnabled||n.compressionEnabled}return Object.defineProperty(e.prototype,\"onDidSplice\",{get:function(){return this.model.onDidSplice},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),e.prototype.setChildren=function(e,t){if(null!==e){var i=this.nodes.get(e);if(!i)throw new Error(\"Unknown compressed tree node\");var o=this.model.getNode(i),r=this.model.getParentNodeLocation(i),d=this.model.getNode(r),c=function e(t,i,o){return t.element===i?l(l({},t),{children:o}):l(l({},t),{children:n.Iterator.map(n.Iterator.from(t.children),(function(t){return e(t,i,o)}))})}(u(o),e,n.Iterator.from(t)),h=(this.enabled?a:s)(c),p=d.children.map((function(e){return e===o?h:e}));this._setChildren(d.element,p)}else{var g=n.Iterator.map(n.Iterator.from(t),this.enabled?a:s)\n;this._setChildren(null,g)}},e.prototype.setCompressionEnabled=function(e){if(e!==this.enabled){this.enabled=e;var t=this.model.getNode(),i=n.Iterator.from(t.children),o=n.Iterator.map(i,u),r=n.Iterator.map(o,e?a:s);this._setChildren(null,r)}},e.prototype._setChildren=function(e,t){var n=this,i=new Set;this.model.setChildren(e,t,(function(e){for(var t=0,o=e.element.elements;t<o.length;t++){var r=o[t];i.add(r),n.nodes.set(r,e.element)}}),(function(e){for(var t=0,o=e.element.elements;t<o.length;t++){var r=o[t];i.has(r)||n.nodes.delete(r)}}))},e.prototype.has=function(e){return this.nodes.has(e)},e.prototype.getListIndex=function(e){var t=this.getCompressedNode(e);return this.model.getListIndex(t)},e.prototype.getListRenderCount=function(e){var t=this.getCompressedNode(e);return this.model.getListRenderCount(t)},e.prototype.getNode=function(e){if(void 0===e)return this.model.getNode();var t=this.getCompressedNode(e);return this.model.getNode(t)},e.prototype.getNodeLocation=function(e){\nvar t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]},e.prototype.getParentNodeLocation=function(e){var t=this.getCompressedNode(e),n=this.model.getParentNodeLocation(t);return null===n?null:n.elements[n.elements.length-1]},e.prototype.isCollapsible=function(e){var t=this.getCompressedNode(e);return this.model.isCollapsible(t)},e.prototype.setCollapsible=function(e,t){var n=this.getCompressedNode(e);return this.model.setCollapsible(n,t)},e.prototype.isCollapsed=function(e){var t=this.getCompressedNode(e);return this.model.isCollapsed(t)},e.prototype.setCollapsed=function(e,t,n){var i=this.getCompressedNode(e);return this.model.setCollapsed(i,t,n)},e.prototype.expandTo=function(e){var t=this.getCompressedNode(e);this.model.expandTo(t)},e.prototype.rerender=function(e){var t=this.getCompressedNode(e);this.model.rerender(t)},e.prototype.refilter=function(){this.model.refilter()},e.prototype.getCompressedNode=function(e){if(null===e)return null;var t=this.nodes.get(e)\n;if(!t)throw new o.TreeError(this.user,\"Tree element not found: \"+e);return t},e}();t.CompressedObjectTreeModel=d,t.DefaultElementMapper=function(e){return e[e.length-1]};var c=function(){function e(e,t){this.unwrapper=e,this.node=t}return Object.defineProperty(e.prototype,\"element\",{get:function(){return null===this.node.element?null:this.unwrapper(this.node.element)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){var t=this;return this.node.children.map((function(n){return new e(t.unwrapper,n)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{get:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}();var h=function(){function e(e,n,i){var r=this;void 0===i&&(i={}),this.elementMapper=i.elementMapper||t.DefaultElementMapper;var s=function(e){return r.elementMapper(e.elements)};this.nodeMapper=new o.WeakMapper((function(e){return new c(s,e)})),this.model=new d(e,function(e,t){return{splice:function(n,i,o){t.splice(n,i,o.map((function(t){return e.map(t)})))}}}(this.nodeMapper,n),function(e,t){return l(l({},t),{sorter:t.sorter&&{compare:function(e,n){return t.sorter.compare(e.elements[0],n.elements[0])}},\nidentityProvider:t.identityProvider&&{getId:function(n){return t.identityProvider.getId(e(n))}},filter:t.filter&&{filter:function(n,i){return t.filter.filter(e(n),i)}}})}(s,i))}return Object.defineProperty(e.prototype,\"onDidSplice\",{get:function(){var e=this;return i.Event.map(this.model.onDidSplice,(function(t){var n=t.insertedNodes,i=t.deletedNodes;return{insertedNodes:n.map((function(t){return e.nodeMapper.map(t)})),deletedNodes:i.map((function(t){return e.nodeMapper.map(t)}))}}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){var e=this;return i.Event.map(this.model.onDidChangeCollapseState,(function(t){var n=t.node,i=t.deep;return{node:e.nodeMapper.map(n),deep:i}}))},enumerable:!0,configurable:!0}),e.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},e.prototype.setCompressionEnabled=function(e){this.model.setCompressionEnabled(e)},e.prototype.has=function(e){return this.model.has(e)},e.prototype.getListIndex=function(e){\nreturn this.model.getListIndex(e)},e.prototype.getListRenderCount=function(e){return this.model.getListRenderCount(e)},e.prototype.getNode=function(e){return this.nodeMapper.map(this.model.getNode(e))},e.prototype.getNodeLocation=function(e){return e.element},e.prototype.getParentNodeLocation=function(e){return this.model.getParentNodeLocation(e)},e.prototype.isCollapsible=function(e){return this.model.isCollapsible(e)},e.prototype.setCollapsible=function(e,t){return this.model.setCollapsible(e,t)},e.prototype.isCollapsed=function(e){return this.model.isCollapsed(e)},e.prototype.setCollapsed=function(e,t,n){return this.model.setCollapsed(e,t,n)},e.prototype.expandTo=function(e){return this.model.expandTo(e)},e.prototype.rerender=function(e){return this.model.rerender(e)},e.prototype.refilter=function(){return this.model.refilter()},e.prototype.getCompressedTreeNode=function(e){return void 0===e&&(e=null),this.model.getNode(e)},e}();t.CompressibleObjectTreeModel=h}))\n;var u,d=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(o,r){function s(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,i,o,r,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(r){return function(a){return function(r){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:\nif(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]<o[3])){s.label=r[1];break}if(6===r[0]&&s.label<o[1]){s.label=o[1],o=r;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(r);break}o[2]&&s.ops.pop(),s.trys.pop();continue}r=t.call(e,s)}catch(e){r=[6,e],i=0}finally{n=o=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,a])}}};define(n[55],i([0,1,2,4]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,o,r,s){void 0===n&&(n=\"\"),void 0===o&&(o=\"\"),void 0===r&&(r=!0);var a=e.call(this)||this;return a._onDidChange=a._register(new i.Emitter),a.onDidChange=a._onDidChange.event,a._enabled=!0,a._checked=!1,a._id=t,a._label=n,a._cssClass=o,a._enabled=r,a._actionCallback=s,a}return r(t,e),Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"label\",{get:function(){return this._label},set:function(e){\nthis._setLabel(e)},enumerable:!0,configurable:!0}),t.prototype._setLabel=function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))},Object.defineProperty(t.prototype,\"tooltip\",{get:function(){return this._tooltip||\"\"},set:function(e){this._setTooltip(e)},enumerable:!0,configurable:!0}),t.prototype._setTooltip=function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))},Object.defineProperty(t.prototype,\"class\",{get:function(){return this._cssClass},set:function(e){this._setClass(e)},enumerable:!0,configurable:!0}),t.prototype._setClass=function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))},Object.defineProperty(t.prototype,\"enabled\",{get:function(){return this._enabled},set:function(e){this._setEnabled(e)},enumerable:!0,configurable:!0}),t.prototype._setEnabled=function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))},Object.defineProperty(t.prototype,\"checked\",{get:function(){return this._checked},\nset:function(e){this._setChecked(e)},enumerable:!0,configurable:!0}),t.prototype._setChecked=function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))},t.prototype.run=function(e,t){return this._actionCallback?this._actionCallback(e):Promise.resolve(!0)},t}(n.Disposable);t.Action=o;var s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onDidBeforeRun=t._register(new i.Emitter),t.onDidBeforeRun=t._onDidBeforeRun.event,t._onDidRun=t._register(new i.Emitter),t.onDidRun=t._onDidRun.event,t}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:if(!e.enabled)return[2,Promise.resolve(null)];this._onDidBeforeRun.fire({action:e}),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.runAction(e,t)];case 2:return n=o.sent(),this._onDidRun.fire({action:e,result:n}),[3,4];case 3:return i=o.sent(),this._onDidRun.fire({action:e,error:i}),[3,4];case 4:return[2]}}))}))},\nt.prototype.runAction=function(e,t){var n=t?e.run(t):e.run();return Promise.resolve(n)},t}(n.Disposable);t.ActionRunner=s})),define(n[26],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=Object.freeze((function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}}));!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof r||!(!t||\"object\"!=typeof t)&&(\"boolean\"==typeof t.isCancellationRequested&&\"function\"==typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o})}(i=t.CancellationToken||(t.CancellationToken={}));var r=function(){function e(){this._isCancelled=!1,this._emitter=null}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))},\nObject.defineProperty(e.prototype,\"isCancellationRequested\",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onCancellationRequested\",{get:function(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._emitter&&(this._emitter.dispose(),this._emitter=null)},e}(),s=function(){function e(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}return Object.defineProperty(e.prototype,\"token\",{get:function(){return this._token||(this._token=new r),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token instanceof r&&this._token.cancel():this._token=i.Cancelled},e.prototype.dispose=function(e){void 0===e&&(e=!1),e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),\nthis._token?this._token instanceof r&&this._token.dispose():this._token=i.None},e}();t.CancellationTokenSource=s})),define(n[15],i([0,1,26,10,2]),(function(e,t,n,i,o){\"use strict\";function r(e){var t=new n.CancellationTokenSource,o=e(t.token),r=new Promise((function(e,n){t.token.onCancellationRequested((function(){n(i.canceled())})),Promise.resolve(o).then((function(n){t.dispose(),e(n)}),(function(e){t.dispose(),n(e)}))}));return new(function(){function e(){}return e.prototype.cancel=function(){t.cancel()},e.prototype.then=function(e,t){return r.then(e,t)},e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype.finally=function(e){return r.finally(e)},e}())}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isThenable=function(e){return e&&\"function\"==typeof e.then},t.createCancelablePromise=r,t.raceCancellation=function(e,t,n){return Promise.race([e,new Promise((function(e){return t.onCancellationRequested((function(){return e(n)}))}))])};var s=function(){function e(e){this.defaultDelay=e,\nthis.timeout=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}return e.prototype.trigger=function(e,t){var n=this;return void 0===t&&(t=this.defaultDelay),this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((function(e,t){n.doResolve=e,n.doReject=t})).then((function(){if(n.completionPromise=null,n.doResolve=null,n.task){var e=n.task;return n.task=null,e()}}))),this.timeout=setTimeout((function(){n.timeout=null,n.doResolve&&n.doResolve(null)}),t),this.completionPromise},e.prototype.isTriggered=function(){return null!==this.timeout},e.prototype.cancel=function(){this.cancelTimeout(),this.completionPromise&&(this.doReject&&this.doReject(i.canceled()),this.completionPromise=null)},e.prototype.cancelTimeout=function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},e.prototype.dispose=function(){this.cancelTimeout()},e}();t.Delayer=s,t.timeout=function e(t,n){return n?new Promise((function(e,o){var r=setTimeout(e,t)\n;n.onCancellationRequested((function(){clearTimeout(r),o(i.canceled())}))})):r((function(n){return e(t,n)}))},t.disposableTimeout=function(e,t){void 0===t&&(t=0);var n=setTimeout(e,t);return o.toDisposable((function(){return clearTimeout(n)}))},t.first=function(e,t,n){void 0===t&&(t=function(e){return!!e}),void 0===n&&(n=null);var i=0,o=e.length,r=function(){if(i>=o)return Promise.resolve(n);var s=e[i++];return Promise.resolve(s()).then((function(e){return t(e)?Promise.resolve(e):r()}))};return r()};var a=function(){function e(e,t){this._token=-1,\"function\"==typeof e&&\"number\"==typeof t&&this.setIfNotSet(e,t)}return e.prototype.dispose=function(){this.cancel()},e.prototype.cancel=function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)},e.prototype.cancelAndSet=function(e,t){var n=this;this.cancel(),this._token=setTimeout((function(){n._token=-1,e()}),t)},e.prototype.setIfNotSet=function(e,t){var n=this;-1===this._token&&(this._token=setTimeout((function(){n._token=-1,e()}),t))},e}()\n;t.TimeoutTimer=a;var l=function(){function e(){this._token=-1}return e.prototype.dispose=function(){this.cancel()},e.prototype.cancel=function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)},e.prototype.cancelAndSet=function(e,t){this.cancel(),this._token=setInterval((function(){e()}),t)},e}();t.IntervalTimer=l;var u=function(){function e(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}return e.prototype.dispose=function(){this.cancel(),this.runner=null},e.prototype.cancel=function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)},e.prototype.schedule=function(e){void 0===e&&(e=this.timeout),this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)},e.prototype.isScheduled=function(){return-1!==this.timeoutToken},e.prototype.onTimeout=function(){this.timeoutToken=-1,this.runner&&this.doRun()},e.prototype.doRun=function(){this.runner&&this.runner()},e}();t.RunOnceScheduler=u,function(){\nif(\"function\"!=typeof requestIdleCallback||\"function\"!=typeof cancelIdleCallback){var e=Object.freeze({didTimeout:!0,timeRemaining:function(){return 15}});t.runWhenIdle=function(t){var n=setTimeout((function(){return t(e)})),i=!1;return{dispose:function(){i||(i=!0,clearTimeout(n))}}}}else t.runWhenIdle=function(e,t){var n=requestIdleCallback(e,\"number\"==typeof t?{timeout:t}:void 0),i=!1;return{dispose:function(){i||(i=!0,cancelIdleCallback(n))}}}}();var d=function(){function e(e){var n=this;this._didRun=!1,this._executor=function(){try{n._value=e()}catch(e){n._error=e}finally{n._didRun=!0}},this._handle=t.runWhenIdle((function(){return n._executor()}))}return e.prototype.dispose=function(){this._handle.dispose()},e.prototype.getValue=function(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value},e}();t.IdleValue=d})),define(n[244],i([0,1,15,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){\nfunction t(t,i,o){var r=e.call(this)||this;return r._visibility=t,r._visibleClassName=i,r._invisibleClassName=o,r._domNode=null,r._isVisible=!1,r._isNeeded=!1,r._shouldBeVisible=!1,r._revealTimer=r._register(new n.TimeoutTimer),r}return r(t,e),t.prototype.applyVisibilitySetting=function(e){return 2!==this._visibility&&(3===this._visibility||e)},t.prototype.setShouldBeVisible=function(e){var t=this.applyVisibilitySetting(e);this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())},t.prototype.setIsNeeded=function(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())},t.prototype.setDomNode=function(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)},t.prototype.ensureVisibility=function(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)},t.prototype._reveal=function(){var e=this;this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((function(){\ne._domNode&&e._domNode.setClassName(e._visibleClassName)}),0))},t.prototype._hide=function(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode&&this._domNode.setClassName(this._invisibleClassName+(e?\" fade\":\"\")))},t}(i.Disposable);t.ScrollbarVisibilityController=o})),define(n[38],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},t.keys=function(e){var t=[];return e.forEach((function(e,n){return t.push(n)})),t};var n=function(){function e(){this._value=\"\",this._pos=0}return e.prototype.reset=function(e){return this._value=e,this._pos=0,this},e.prototype.next=function(){return this._pos+=1,this},e.prototype.hasNext=function(){return this._pos<this._value.length-1},e.prototype.cmp=function(e){return e.charCodeAt(0)-this._value.charCodeAt(this._pos)},e.prototype.value=function(){return this._value[this._pos]},e}();t.StringIterator=n;var i=function(){function e(e){\nvoid 0===e&&(e=!0),this._splitOnBackslash=e}return e.prototype.reset=function(e){return this._value=e.replace(/\\\\$|\\/$/,\"\"),this._from=0,this._to=0,this.next()},e.prototype.hasNext=function(){return this._to<this._value.length},e.prototype.next=function(){this._from=this._to;for(var e=!0;this._to<this._value.length;this._to++){var t=this._value.charCodeAt(this._to);if(47===t||this._splitOnBackslash&&92===t){if(!e)break;this._from++}else e=!1}return this},e.prototype.cmp=function(e){for(var t=0,n=e.length,i=this._from;t<n&&i<this._to;){var o=e.charCodeAt(t)-this._value.charCodeAt(i);if(0!==o)return o;t+=1,i+=1}return n===this._to-this._from?0:t<n?-1:1},e.prototype.value=function(){return this._value.substring(this._from,this._to)},e}();t.PathIterator=i;var o=function(){},s=function(){function e(e){this._iter=e}return e.forPaths=function(){return new e(new i)},e.forStrings=function(){return new e(new n)},e.prototype.clear=function(){this._root=void 0},e.prototype.set=function(e,t){var n,i=this._iter.reset(e)\n;for(this._root||(this._root=new o,this._root.segment=i.value()),n=this._root;;){var r=i.cmp(n.segment);if(r>0)n.left||(n.left=new o,n.left.segment=i.value()),n=n.left;else if(r<0)n.right||(n.right=new o,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new o,n.mid.segment=i.value()),n=n.mid}}var s=n.value;return n.value=t,n.key=e,s},e.prototype.get=function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())break;t.next(),n=n.mid}}return n?n.value:void 0},e.prototype.findSubstr=function(e){for(var t=this._iter.reset(e),n=this._root,i=void 0;n;){var o=t.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i},e.prototype.forEach=function(e){this._forEach(this._root,e)},e.prototype._forEach=function(e,t){e&&(this._forEach(e.left,t),e.value&&t(e.value,e.key),this._forEach(e.mid,t),this._forEach(e.right,t))},e}()\n;t.TernarySearchTree=s;var a=function(){function e(){this.map=new Map,this.ignoreCase=!1}return e.prototype.set=function(e,t){this.map.set(this.toKey(e),t)},e.prototype.get=function(e){return this.map.get(this.toKey(e))},e.prototype.toKey=function(e){var t=e.toString();return this.ignoreCase&&(t=t.toLowerCase()),t},e}();t.ResourceMap=a;var l=function(){function e(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0}return e.prototype.clear=function(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0},Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.get=function(e,t){void 0===t&&(t=0);var n=this._map.get(e);if(n)return 0!==t&&this.touch(n,t),n.value},e.prototype.set=function(e,t,n){void 0===n&&(n=0);var i=this._map.get(e);if(i)i.value=t,0!==n&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case 0:this.addItemLast(i);break;case 1:this.addItemFirst(i);break;case 2:default:\nthis.addItemLast(i)}this._map.set(e,i),this._size++}},e.prototype.delete=function(e){return!!this.remove(e)},e.prototype.remove=function(e){var t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value},e.prototype.forEach=function(e,t){for(var n=this._head;n;)t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),n=n.next},e.prototype.trimOld=function(e){if(!(e>=this.size))if(0!==e){for(var t=this._head,n=this.size;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0)}else this.clear()},e.prototype.addItemFirst=function(e){if(this._head||this._tail){if(!this._head)throw new Error(\"Invalid list\");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e},e.prototype.addItemLast=function(e){if(this._head||this._tail){if(!this._tail)throw new Error(\"Invalid list\");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e},e.prototype.removeItem=function(e){if(e===this._head&&e===this._tail)this._head=void 0,\nthis._tail=void 0;else if(e===this._head){if(!e.next)throw new Error(\"Invalid list\");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error(\"Invalid list\");e.previous.next=void 0,this._tail=e.previous}else{var t=e.next,n=e.previous;if(!t||!n)throw new Error(\"Invalid list\");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0},e.prototype.touch=function(e,t){if(!this._head||!this._tail)throw new Error(\"Invalid list\");if(1===t||2===t)if(1===t){if(e===this._head)return;var n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e}else if(2===t){if(e===this._tail)return;n=e.next,i=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e}},e.prototype.toJSON=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),e},e}();t.LinkedMap=l;var u=function(e){\nfunction t(t,n){void 0===n&&(n=1);var i=e.call(this)||this;return i._limit=t,i._ratio=Math.min(Math.max(0,n),1),i}return r(t,e),t.prototype.get=function(t){return e.prototype.get.call(this,t,2)},t.prototype.peek=function(t){return e.prototype.get.call(this,t,0)},t.prototype.set=function(t,n){e.prototype.set.call(this,t,n,2),this.checkTrim()},t.prototype.checkTrim=function(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))},t}(l);t.LRUCache=u})),function(e){\"use strict\";var t={newline:/^\\n+/,code:/^( {4}[^\\n]+\\n*)+/,fences:m,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,heading:/^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,nptable:m,blockquote:/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,list:/^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\nhtml:\"^ {0,3}(?:<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*|<![A-Z][\\\\s\\\\S]*?>\\\\n*|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\\\\n*|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$))\",def:/^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,table:m,lheading:/^([^\\n]+)\\n *(=|-){2,} *(?:\\n+|$)/,paragraph:/^([^\\n]+(?:\\n(?!hr|heading|lheading| {0,3}>|<\\/?(?:tag)(?: +|\\n|\\/?>)|<(?:script|pre|style|!--))[^\\n]+)*)/,text:/^[^\\n]+/};function n(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||b.defaults,this.rules=t.normal,this.options.pedantic?this.rules=t.pedantic:this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/,\nt._title=/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/,t.def=h(t.def).replace(\"label\",t._label).replace(\"title\",t._title).getRegex(),t.bullet=/(?:[*+-]|\\d{1,9}\\.)/,t.item=/^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/,t.item=h(t.item,\"gm\").replace(/bull/g,t.bullet).getRegex(),t.list=h(t.list).replace(/bull/g,t.bullet).replace(\"hr\",\"\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))\").replace(\"def\",\"\\\\n+(?=\"+t.def.source+\")\").getRegex(),t._tag=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",t._comment=/<!--(?!-?>)[\\s\\S]*?-->/,\nt.html=h(t.html,\"i\").replace(\"comment\",t._comment).replace(\"tag\",t._tag).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),t.paragraph=h(t.paragraph).replace(\"hr\",t.hr).replace(\"heading\",t.heading).replace(\"lheading\",t.lheading).replace(\"tag\",t._tag).getRegex(),t.blockquote=h(t.blockquote).replace(\"paragraph\",t.paragraph).getRegex(),t.normal=v({},t),t.gfm=v({},t.normal,{fences:/^ {0,3}(`{3,}|~{3,})([^`\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\\n]+?) *#* *(?:\\n+|$)/}),t.gfm.paragraph=h(t.paragraph).replace(\"(?!\",\"(?!\"+t.gfm.fences.source.replace(\"\\\\1\",\"\\\\2\")+\"|\"+t.list.source.replace(\"\\\\1\",\"\\\\3\")+\"|\").getRegex(),t.tables=v({},t.gfm,{nptable:/^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,table:/^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/}),t.pedantic=v({},t.normal,{\nhtml:h(\"^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\\\"[^\\\"]*\\\"|'[^']*'|\\\\s[^'\\\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))\").replace(\"comment\",t._comment).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\\r\\n|\\r/g,\"\\n\").replace(/\\t/g,\"    \").replace(/\\u00a0/g,\" \").replace(/\\u2424/g,\"\\n\"),this.token(e,!0)},n.prototype.token=function(e,n){var i,o,r,s,a,l,u,d,c,h,p,g,f,m,v,C;for(e=e.replace(/^ +$/gm,\"\");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:\"space\"})),r=this.rules.code.exec(e))e=e.substring(r[0].length),r=r[0].replace(/^ {4}/gm,\"\"),this.tokens.push({type:\"code\",text:this.options.pedantic?r:y(r,\"\\n\")\n});else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"code\",lang:r[2]?r[2].trim():r[2],text:r[3]||\"\"});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"heading\",depth:r[1].length,text:r[2]});else if((r=this.rules.nptable.exec(e))&&(l={type:\"table\",header:_(r[1].replace(/^ *| *\\| *$/g,\"\")),align:r[2].replace(/^ *|\\| *$/g,\"\").split(/ *\\| */),cells:r[3]?r[3].replace(/\\n$/,\"\").split(\"\\n\"):[]}).header.length===l.align.length){for(e=e.substring(r[0].length),p=0;p<l.align.length;p++)/^ *-+: *$/.test(l.align[p])?l.align[p]=\"right\":/^ *:-+: *$/.test(l.align[p])?l.align[p]=\"center\":/^ *:-+ *$/.test(l.align[p])?l.align[p]=\"left\":l.align[p]=null;for(p=0;p<l.cells.length;p++)l.cells[p]=_(l.cells[p],l.header.length);this.tokens.push(l)}else if(r=this.rules.hr.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"hr\"});else if(r=this.rules.blockquote.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"blockquote_start\"}),\nr=r[0].replace(/^ *> ?/gm,\"\"),this.token(r,n),this.tokens.push({type:\"blockquote_end\"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),u={type:\"list_start\",ordered:m=(s=r[2]).length>1,start:m?+s:\"\",loose:!1},this.tokens.push(u),d=[],i=!1,f=(r=r[0].match(this.rules.item)).length,p=0;p<f;p++)h=(l=r[p]).length,~(l=l.replace(/^ *([*+-]|\\d+\\.) */,\"\")).indexOf(\"\\n \")&&(h-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,\"\"):l.replace(new RegExp(\"^ {1,\"+h+\"}\",\"gm\"),\"\")),p!==f-1&&(a=t.bullet.exec(r[p+1])[0],(s.length>1?1===a.length:a.length>1||this.options.smartLists&&a!==s)&&(e=r.slice(p+1).join(\"\\n\")+e,p=f-1)),o=i||/\\n\\n(?!\\s*$)/.test(l),p!==f-1&&(i=\"\\n\"===l.charAt(l.length-1),o||(o=i)),o&&(u.loose=!0),C=void 0,(v=/^\\[[ xX]\\] /.test(l))&&(C=\" \"!==l[1],l=l.replace(/^\\[[ xX]\\] +/,\"\")),c={type:\"list_item_start\",task:v,checked:C,loose:o},d.push(c),this.tokens.push(c),this.token(l,!1),this.tokens.push({type:\"list_item_end\"});if(u.loose)for(f=d.length,p=0;p<f;p++)d[p].loose=!0;this.tokens.push({\ntype:\"list_end\"})}else if(r=this.rules.html.exec(e))e=e.substring(r[0].length),this.tokens.push({type:this.options.sanitize?\"paragraph\":\"html\",pre:!this.options.sanitizer&&(\"pre\"===r[1]||\"script\"===r[1]||\"style\"===r[1]),text:r[0]});else if(n&&(r=this.rules.def.exec(e)))e=e.substring(r[0].length),r[3]&&(r[3]=r[3].substring(1,r[3].length-1)),g=r[1].toLowerCase().replace(/\\s+/g,\" \"),this.tokens.links[g]||(this.tokens.links[g]={href:r[2],title:r[3]});else if((r=this.rules.table.exec(e))&&(l={type:\"table\",header:_(r[1].replace(/^ *| *\\| *$/g,\"\")),align:r[2].replace(/^ *|\\| *$/g,\"\").split(/ *\\| */),cells:r[3]?r[3].replace(/\\n$/,\"\").split(\"\\n\"):[]}).header.length===l.align.length){for(e=e.substring(r[0].length),p=0;p<l.align.length;p++)/^ *-+: *$/.test(l.align[p])?l.align[p]=\"right\":/^ *:-+: *$/.test(l.align[p])?l.align[p]=\"center\":/^ *:-+ *$/.test(l.align[p])?l.align[p]=\"left\":l.align[p]=null;for(p=0;p<l.cells.length;p++)l.cells[p]=_(l.cells[p].replace(/^ *\\| *| *\\| *$/g,\"\"),l.header.length);this.tokens.push(l)\n}else if(r=this.rules.lheading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"heading\",depth:\"=\"===r[2]?1:2,text:r[1]});else if(n&&(r=this.rules.paragraph.exec(e)))e=e.substring(r[0].length),this.tokens.push({type:\"paragraph\",text:\"\\n\"===r[1].charAt(r[1].length-1)?r[1].slice(0,-1):r[1]});else if(r=this.rules.text.exec(e))e=e.substring(r[0].length),this.tokens.push({type:\"text\",text:r[0]});else if(e)throw new Error(\"Infinite loop on byte: \"+e.charCodeAt(0));return this.tokens};var i={escape:/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,autolink:/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,url:m,tag:\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",link:/^!?\\[(label)\\]\\(href(?:\\s+(title))?\\s*\\)/,reflink:/^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,nolink:/^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\nstrong:/^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,em:/^_([^\\s_])_(?!_)|^\\*([^\\s*\"<\\[])\\*(?!\\*)|^_([^\\s][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s\"<\\[][\\s\\S]*?[^\\s*])\\*(?!\\*)|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,code:/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,br:/^( {2,}|\\\\)\\n(?!\\s*$)/,del:m,text:/^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*]|\\b_|$)|[^ ](?= {2,}\\n))|(?= {2,}\\n))/};function o(e,t){if(this.options=t||b.defaults,this.links=e,this.rules=i.normal,this.renderer=this.options.renderer||new r,this.renderer.options=this.options,!this.links)throw new Error(\"Tokens array requires a `links` property.\");this.options.pedantic?this.rules=i.pedantic:this.options.gfm&&(this.options.breaks?this.rules=i.breaks:this.rules=i.gfm)}function r(e){this.options=e||b.defaults}function s(){}function a(e){this.tokens=[],this.token=null,this.options=e||b.defaults,this.options.renderer=this.options.renderer||new r,\nthis.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new l}function l(){this.seen={}}function d(e,t){if(t){if(d.escapeTest.test(e))return e.replace(d.escapeReplace,(function(e){return d.replacements[e]}))}else if(d.escapeTestNoEncode.test(e))return e.replace(d.escapeReplaceNoEncode,(function(e){return d.replacements[e]}));return e}function c(e){return e.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/gi,(function(e,t){return\"colon\"===(t=t.toLowerCase())?\":\":\"#\"===t.charAt(0)?\"x\"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):\"\"}))}function h(e,t){return e=e.source||e,t=t||\"\",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\\[])\\^/g,\"$1\"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function p(e,t,n){if(e){try{var i=decodeURIComponent(c(n)).replace(/[^\\w:]/g,\"\").toLowerCase()}catch(e){return null}if(0===i.indexOf(\"javascript:\")||0===i.indexOf(\"vbscript:\")||0===i.indexOf(\"data:\"))return null\n}t&&!f.test(n)&&(n=function(e,t){g[\" \"+e]||(/^[^:]+:\\/*[^/]*$/.test(e)?g[\" \"+e]=e+\"/\":g[\" \"+e]=y(e,\"/\",!0));return e=g[\" \"+e],\"//\"===t.slice(0,2)?e.replace(/:[\\s\\S]*/,\":\")+t:\"/\"===t.charAt(0)?e.replace(/(:\\/*[^/]*)[\\s\\S]*/,\"$1\")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,\"%\")}catch(e){return null}return n}i._punctuation=\"!\\\"#$%&'()*+,\\\\-./:;<=>?@\\\\[^_{|}~\",i.em=h(i.em).replace(/punctuation/g,i._punctuation).getRegex(),i._escapes=/\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g,i._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,i._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,i.autolink=h(i.autolink).replace(\"scheme\",i._scheme).replace(\"email\",i._email).getRegex(),i._attribute=/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/,i.tag=h(i.tag).replace(\"comment\",t._comment).replace(\"attribute\",i._attribute).getRegex(),i._label=/(?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]?|`[^`]*`|`(?!`)|[^\\[\\]\\\\`])*?/,\ni._href=/\\s*(<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*)/,i._title=/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/,i.link=h(i.link).replace(\"label\",i._label).replace(\"href\",i._href).replace(\"title\",i._title).getRegex(),i.reflink=h(i.reflink).replace(\"label\",i._label).getRegex(),i.normal=v({},i),i.pedantic=v({},i.normal,{strong:/^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,em:/^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,link:h(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",i._label).getRegex(),reflink:h(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",i._label).getRegex()}),i.gfm=v({},i.normal,{escape:h(i.escape).replace(\"])\",\"~|])\").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\\S)([\\s\\S]*?\\S)~+/,\ntext:/^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\<!\\[`*~]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?= {2,}\\n|[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/}),i.gfm.url=h(i.gfm.url,\"i\").replace(\"email\",i.gfm._extended_email).getRegex(),i.breaks=v({},i.gfm,{br:h(i.br).replace(\"{2,}\",\"*\").getRegex(),text:h(i.gfm.text).replace(/\\{2,\\}/g,\"*\").getRegex()}),o.rules=i,o.output=function(e,t,n){return new o(t,n).output(e)},o.prototype.output=function(e){for(var t,n,i,r,s,a,l=\"\";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),l+=d(s[1]);else if(s=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(s[0])?this.inLink=!0:this.inLink&&/^<\\/a>/i.test(s[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\\s|>)/i.test(s[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\\/(pre|code|kbd|script)(\\s|>)/i.test(s[0])&&(this.inRawBlock=!1),e=e.substring(s[0].length),\nl+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):d(s[0]):s[0];else if(s=this.rules.link.exec(e)){var u=C(s[2],\"()\");if(u>-1){var c=s[0].length-(s[2].length-u)-(s[3]||\"\").length;s[2]=s[2].substring(0,u),s[0]=s[0].substring(0,c).trim(),s[3]=\"\"}e=e.substring(s[0].length),this.inLink=!0,i=s[2],this.options.pedantic?(t=/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(i))?(i=t[1],r=t[3]):r=\"\":r=s[3]?s[3].slice(1,-1):\"\",i=i.trim().replace(/^<([\\s\\S]*)>$/,\"$1\"),l+=this.outputLink(s,{href:o.escapes(i),title:o.escapes(r)}),this.inLink=!1}else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\\s+/g,\" \"),!(t=this.links[t.toLowerCase()])||!t.href){l+=s[0].charAt(0),e=s[0].substring(1)+e;continue}this.inLink=!0,l+=this.outputLink(s,t),this.inLink=!1}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),l+=this.renderer.strong(this.output(s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),\nl+=this.renderer.em(this.output(s[6]||s[5]||s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),l+=this.renderer.codespan(d(s[2].trim(),!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),l+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),l+=this.renderer.del(this.output(s[1]));else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),i=\"@\"===s[2]?\"mailto:\"+(n=d(this.mangle(s[1]))):n=d(s[1]),l+=this.renderer.link(i,null,n);else if(this.inLink||!(s=this.rules.url.exec(e))){if(s=this.rules.text.exec(e))e=e.substring(s[0].length),this.inRawBlock?l+=this.renderer.text(s[0]):l+=this.renderer.text(d(this.smartypants(s[0])));else if(e)throw new Error(\"Infinite loop on byte: \"+e.charCodeAt(0))}else{if(\"@\"===s[2])i=\"mailto:\"+(n=d(s[0]));else{do{a=s[0],s[0]=this.rules._backpedal.exec(s[0])[0]}while(a!==s[0]);n=d(s[0]),i=\"www.\"===s[1]?\"http://\"+n:n}e=e.substring(s[0].length),l+=this.renderer.link(i,null,n)}return l},\no.escapes=function(e){return e?e.replace(o.rules._escapes,\"$1\"):e},o.prototype.outputLink=function(e,t){var n=t.href,i=t.title?d(t.title):null;return\"!\"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,d(e[1]))},o.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,\"—\").replace(/--/g,\"–\").replace(/(^|[-\\u2014/(\\[{\"\\s])'/g,\"$1‘\").replace(/'/g,\"’\").replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g,\"$1“\").replace(/\"/g,\"”\").replace(/\\.{3}/g,\"…\"):e},o.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n=\"\",i=e.length,o=0;o<i;o++)t=e.charCodeAt(o),Math.random()>.5&&(t=\"x\"+t.toString(16)),n+=\"&#\"+t+\";\";return n},r.prototype.code=function(e,t,n){var i=(t||\"\").match(/\\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,i);null!=o&&o!==e&&(n=!0,e=o)}return i?'<pre><code class=\"'+this.options.langPrefix+d(i,!0)+'\">'+(n?e:d(e,!0))+\"</code></pre>\\n\":\"<pre><code>\"+(n?e:d(e,!0))+\"</code></pre>\"},r.prototype.blockquote=function(e){\nreturn\"<blockquote>\\n\"+e+\"</blockquote>\\n\"},r.prototype.html=function(e){return e},r.prototype.heading=function(e,t,n,i){return this.options.headerIds?\"<h\"+t+' id=\"'+this.options.headerPrefix+i.slug(n)+'\">'+e+\"</h\"+t+\">\\n\":\"<h\"+t+\">\"+e+\"</h\"+t+\">\\n\"},r.prototype.hr=function(){return this.options.xhtml?\"<hr/>\\n\":\"<hr>\\n\"},r.prototype.list=function(e,t,n){var i=t?\"ol\":\"ul\";return\"<\"+i+(t&&1!==n?' start=\"'+n+'\"':\"\")+\">\\n\"+e+\"</\"+i+\">\\n\"},r.prototype.listitem=function(e){return\"<li>\"+e+\"</li>\\n\"},r.prototype.checkbox=function(e){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"'+(this.options.xhtml?\" /\":\"\")+\"> \"},r.prototype.paragraph=function(e){return\"<p>\"+e+\"</p>\\n\"},r.prototype.table=function(e,t){return t&&(t=\"<tbody>\"+t+\"</tbody>\"),\"<table>\\n<thead>\\n\"+e+\"</thead>\\n\"+t+\"</table>\\n\"},r.prototype.tablerow=function(e){return\"<tr>\\n\"+e+\"</tr>\\n\"},r.prototype.tablecell=function(e,t){var n=t.header?\"th\":\"td\";return(t.align?\"<\"+n+' align=\"'+t.align+'\">':\"<\"+n+\">\")+e+\"</\"+n+\">\\n\"},\nr.prototype.strong=function(e){return\"<strong>\"+e+\"</strong>\"},r.prototype.em=function(e){return\"<em>\"+e+\"</em>\"},r.prototype.codespan=function(e){return\"<code>\"+e+\"</code>\"},r.prototype.br=function(){return this.options.xhtml?\"<br/>\":\"<br>\"},r.prototype.del=function(e){return\"<del>\"+e+\"</del>\"},r.prototype.link=function(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<a href=\"'+d(e)+'\"';return t&&(i+=' title=\"'+t+'\"'),i+=\">\"+n+\"</a>\"},r.prototype.image=function(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;var i='<img src=\"'+e+'\" alt=\"'+n+'\"';return t&&(i+=' title=\"'+t+'\"'),i+=this.options.xhtml?\"/>\":\">\"},r.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return\"\"+n},s.prototype.br=function(){return\"\"},a.parse=function(e,t){return new a(t).parse(e)},a.prototype.parse=function(e){\nthis.inline=new o(e.links,this.options),this.inlineText=new o(e.links,v({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t=\"\";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;\"text\"===this.peek().type;)e+=\"\\n\"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case\"space\":return\"\";case\"hr\":return this.renderer.hr();case\"heading\":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,c(this.inlineText.output(this.token.text)),this.slugger);case\"code\":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case\"table\":var e,t,n,i,o=\"\",r=\"\";for(n=\"\",e=0;e<this.token.header.length;e++)n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]})\n;for(o+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n=\"\",i=0;i<t.length;i++)n+=this.renderer.tablecell(this.inline.output(t[i]),{header:!1,align:this.token.align[i]});r+=this.renderer.tablerow(n)}return this.renderer.table(o,r);case\"blockquote_start\":for(r=\"\";\"blockquote_end\"!==this.next().type;)r+=this.tok();return this.renderer.blockquote(r);case\"list_start\":r=\"\";for(var s=this.token.ordered,a=this.token.start;\"list_end\"!==this.next().type;)r+=this.tok();return this.renderer.list(r,s,a);case\"list_item_start\":r=\"\";var l=this.token.loose,u=this.token.checked,d=this.token.task;for(this.token.task&&(r+=this.renderer.checkbox(u));\"list_item_end\"!==this.next().type;)r+=l||\"text\"!==this.token.type?this.tok():this.parseText();return this.renderer.listitem(r,d,u);case\"html\":return this.renderer.html(this.token.text);case\"paragraph\":return this.renderer.paragraph(this.inline.output(this.token.text));case\"text\":return this.renderer.paragraph(this.parseText());default:\nvar h='Token with \"'+this.token.type+'\" type was not found.';if(!this.options.silent)throw new Error(h);console.log(h)}},l.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g,\"\").replace(/\\s/g,\"-\");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+\"-\"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},d.escapeTest=/[&<>\"']/,d.escapeReplace=/[&<>\"']/g,d.replacements={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},d.escapeTestNoEncode=/[<>\"']|&(?!#?\\w+;)/,d.escapeReplaceNoEncode=/[<>\"']|&(?!#?\\w+;)/g;var g={},f=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function m(){}function v(e){for(var t,n,i=1;i<arguments.length;i++)for(n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function _(e,t){var n=e.replace(/\\|/g,(function(e,t,n){for(var i=!1,o=t;--o>=0&&\"\\\\\"===n[o];)i=!i;return i?\"|\":\" |\"})).split(/ \\|/),i=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(\"\")\n;for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\\\\|/g,\"|\");return n}function y(e,t,n){if(0===e.length)return\"\";for(var i=0;i<e.length;){var o=e.charAt(e.length-i-1);if(o!==t||n){if(o===t||!n)break;i++}else i++}return e.substr(0,e.length-i)}function C(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=0,i=0;i<e.length;i++)if(\"\\\\\"===e[i])i++;else if(e[i]===t[0])n++;else if(e[i]===t[1]&&--n<0)return i;return-1}function b(e,t,i){if(null==e)throw new Error(\"marked(): input parameter is undefined or null\");if(\"string\"!=typeof e)throw new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(e)+\", string expected\");if(i||\"function\"==typeof t){i||(i=t,t=null);var o,r,s=(t=v({},b.defaults,t||{})).highlight,l=0;try{o=n.lex(e,t)}catch(e){return i(e)}r=o.length;var u=function(e){if(e)return t.highlight=s,i(e);var n;try{n=a.parse(o,t)}catch(t){e=t}return t.highlight=s,e?i(e):i(null,n)};if(!s||s.length<3)return u();if(delete t.highlight,!r)return u();for(;l<o.length;l++)!function(e){\n\"code\"!==e.type?--r||u():s(e.text,e.lang,(function(t,n){return t?u(t):null==n||n===e.text?--r||u():(e.text=n,e.escaped=!0,void(--r||u()))}))}(o[l])}else try{return t&&(t=v({},b.defaults,t)),a.parse(n.lex(e,t),t)}catch(e){if(e.message+=\"\\nPlease report this to https://github.com/markedjs/marked.\",(t||b.defaults).silent)return\"<p>An error occurred:</p><pre>\"+d(e.message+\"\",!0)+\"</pre>\";throw e}}m.exec=m,b.options=b.setOptions=function(e){return v(b.defaults,e),b},b.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:\"\",highlight:null,langPrefix:\"language-\",mangle:!0,pedantic:!1,renderer:new r,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},b.defaults=b.getDefaults(),b.Parser=a,b.parser=a.parse,b.Renderer=r,b.TextRenderer=s,b.Lexer=n,b.lexer=n.lex,b.InlineLexer=o,b.inlineLexer=o.output,b.Slugger=l,b.parse=b,u=b}.call(this),define(\"vs/base/common/marked/marked\",(function(){return u})),define(n[131],i([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.clamp=function(e,t,n){return Math.min(Math.max(e,t),n)}})),define(n[16],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=!1,i=!1,o=!1,r=!1,s=!1,a=!1,l=void 0,u=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type;if(\"object\"!=typeof navigator||u){if(\"object\"==typeof process){n=\"win32\"===process.platform,i=\"darwin\"===process.platform,o=\"linux\"===process.platform,\"en\",\"en\";var d=process.env.VSCODE_NLS_CONFIG;if(d)try{var c=JSON.parse(d),h=c.availableLanguages[\"*\"];c.locale,h||\"en\",c._translationsConfigFile}catch(e){}r=!0}}else n=(l=navigator.userAgent).indexOf(\"Windows\")>=0,i=l.indexOf(\"Macintosh\")>=0,a=l.indexOf(\"Macintosh\")>=0&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,o=l.indexOf(\"Linux\")>=0,s=!0,navigator.language;t.isWindows=n,t.isMacintosh=i,t.isLinux=o,t.isNative=r,t.isWeb=s,t.isIOS=a\n;var p=\"object\"==typeof self?self:\"object\"==typeof global?global:{};t.globals=p,t.setImmediate=function(){if(t.globals.setImmediate)return t.globals.setImmediate.bind(t.globals);if(\"function\"==typeof t.globals.postMessage&&!t.globals.importScripts){var e=[];t.globals.addEventListener(\"message\",(function(t){if(t.data&&t.data.vscodeSetImmediateId)for(var n=0,i=e.length;n<i;n++){var o=e[n];if(o.id===t.data.vscodeSetImmediateId)return e.splice(n,1),void o.callback()}}));var n=0;return function(i){var o=++n;e.push({id:o,callback:i}),t.globals.postMessage({vscodeSetImmediateId:o},\"*\")}}if(\"undefined\"!=typeof process&&\"function\"==typeof process.nextTick)return process.nextTick.bind(process);var i=Promise.resolve();return function(e){return i.then(e)}}(),t.OS=i?2:n?1:3})),define(n[88],i([0,1,24,16]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.BrowserFeatures={clipboard:{\nwriteText:i.isNative||document.queryCommandSupported&&document.queryCommandSupported(\"copy\")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:i.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText),richText:function(){if(n.isIE)return!1;if(n.isEdge){var e=navigator.userAgent.indexOf(\"Edge/\"),t=parseInt(navigator.userAgent.substring(e+5,navigator.userAgent.indexOf(\".\",e)),10);if(!t||t>=12&&t<=16)return!1}return!0}()},keyboard:i.isNative||n.isStandalone?0:navigator.keyboard||n.isSafari?1:2,touch:\"ontouchstart\"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0,pointerEvents:window.PointerEvent&&(\"ontouchstart\"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0)}})),define(n[56],i([0,1,24,36,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=new Array(230),s=new Array(112);!function(){for(var e=0;e<s.length;e++)s[e]=-1;function t(e,t){r[e]=t,\ns[t]=e}t(3,7),t(8,1),t(9,2),t(13,3),t(16,4),t(17,5),t(18,6),t(19,7),t(20,8),t(27,9),t(32,10),t(33,11),t(34,12),t(35,13),t(36,14),t(37,15),t(38,16),t(39,17),t(40,18),t(45,19),t(46,20),t(48,21),t(49,22),t(50,23),t(51,24),t(52,25),t(53,26),t(54,27),t(55,28),t(56,29),t(57,30),t(65,31),t(66,32),t(67,33),t(68,34),t(69,35),t(70,36),t(71,37),t(72,38),t(73,39),t(74,40),t(75,41),t(76,42),t(77,43),t(78,44),t(79,45),t(80,46),t(81,47),t(82,48),t(83,49),t(84,50),t(85,51),t(86,52),t(87,53),t(88,54),t(89,55),t(90,56),t(93,58),t(96,93),t(97,94),t(98,95),t(99,96),t(100,97),t(101,98),t(102,99),t(103,100),t(104,101),t(105,102),t(106,103),t(107,104),t(108,105),t(109,106),t(110,107),t(111,108),t(112,59),t(113,60),t(114,61),t(115,62),t(116,63),t(117,64),t(118,65),t(119,66),t(120,67),t(121,68),t(122,69),t(123,70),t(124,71),t(125,72),t(126,73),t(127,74),t(128,75),t(129,76),t(130,77),t(144,78),t(145,79),t(186,80),t(187,81),t(188,82),t(189,83),t(190,84),t(191,85),t(192,86),t(193,110),t(194,111),t(219,87),t(220,88),t(221,89),t(222,90),\nt(223,91),t(226,92),t(229,109),n.isIE?t(91,57):n.isFirefox?(t(59,80),t(107,81),t(109,83),o.isMacintosh&&t(224,57)):n.isWebKit&&(t(91,57),o.isMacintosh?t(93,57):t(92,57))}();var a=o.isMacintosh?256:2048,l=o.isMacintosh?2048:256,u=function(){function e(e){this._standardKeyboardEventBrand=!0;var t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.keyCode=function(e){if(e.charCode){var t=String.fromCharCode(e.charCode).toUpperCase();return i.KeyCodeUtils.fromString(t)}return r[e.keyCode]||0}(t),this.code=t.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asRuntimeKeybinding=this._computeRuntimeKeybinding()}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},\ne.prototype.stopPropagation=function(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e.prototype.toKeybinding=function(){return this._asRuntimeKeybinding},e.prototype.equals=function(e){return this._asKeybinding===e},e.prototype._computeKeybinding=function(){var e=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode);var t=0;return this.ctrlKey&&(t|=a),this.altKey&&(t|=512),this.shiftKey&&(t|=1024),this.metaKey&&(t|=l),t|=e},e.prototype._computeRuntimeKeybinding=function(){var e=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(e=this.keyCode),new i.SimpleKeybinding(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)},e}();t.StandardKeyboardEvent=u})),define(n[45],i([0,1,24,174,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=0===e.button,\nthis.middleButton=1===e.button,this.rightButton=2===e.button,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,\"dblclick\"===e.type&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,\"number\"==typeof e.pageX?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,this.posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop);var t=i.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(self,e.view);this.posx-=t.left,this.posy-=t.top}return e.prototype.preventDefault=function(){this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardMouseEvent=s;var a=function(e){function t(t){var n=e.call(this,t)||this;return n.dataTransfer=t.dataTransfer,n}return r(t,e),t}(s);t.DragMouseEvent=a;var l=function(){\nfunction e(e,t,i){if(void 0===t&&(t=0),void 0===i&&(i=0),this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t,e){var r=e,s=e;if(void 0!==r.wheelDeltaY)this.deltaY=r.wheelDeltaY/120;else if(void 0!==s.VERTICAL_AXIS&&s.axis===s.VERTICAL_AXIS)this.deltaY=-s.detail/3;else if(\"wheel\"===e.type){(a=e).deltaMode===a.DOM_DELTA_LINE?this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(void 0!==r.wheelDeltaX)n.isSafari&&o.isWindows?this.deltaX=-r.wheelDeltaX/120:this.deltaX=r.wheelDeltaX/120;else if(void 0!==s.HORIZONTAL_AXIS&&s.axis===s.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(\"wheel\"===e.type){var a;(a=e).deltaMode===a.DOM_DELTA_LINE?this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}0===this.deltaY&&0===this.deltaX&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}return e.prototype.preventDefault=function(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()},e.prototype.stopPropagation=function(){\nthis.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()},e}();t.StandardWheelEvent=l})),define(n[245],i([0,1,16]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=\"undefined\"==typeof process?{cwd:function(){return\"/\"},env:Object.create(null),get platform(){return n.isWindows?\"win32\":n.isMacintosh?\"darwin\":\"linux\"},nextTick:function(e){return n.setImmediate(e)}}:process;t.cwd=i.cwd,t.env=i.env,t.platform=i.platform})),define(n[77],i([0,1,245]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=65,o=97,s=90,a=122,l=46,u=47,d=92,c=function(e){function t(t,n,i){var o,r=this;\"string\"==typeof n&&0===n.indexOf(\"not \")?(o=\"must not be\",n=n.replace(/^not /,\"\")):o=\"must be\";var s=-1!==t.indexOf(\".\")?\"property\":\"argument\",a='The \"'+t+'\" '+s+\" \"+o+\" of type \"+n;return a+=\". Received type \"+typeof i,(r=e.call(this,a)||this).code=\"ERR_INVALID_ARG_TYPE\",r}return r(t,e),t}(Error);function h(e,t){\nif(\"string\"!=typeof e)throw new c(t,\"string\",e)}function p(e){return e===u||e===d}function g(e){return e===u}function f(e){return e>=i&&e<=s||e>=o&&e<=a}function m(e,t,n,i){for(var o,r=\"\",s=0,a=-1,d=0,c=0;c<=e.length;++c){if(c<e.length)o=e.charCodeAt(c);else{if(i(o))break;o=u}if(i(o)){if(a===c-1||1===d);else if(a!==c-1&&2===d){if(r.length<2||2!==s||r.charCodeAt(r.length-1)!==l||r.charCodeAt(r.length-2)!==l){if(r.length>2){var h=r.lastIndexOf(n);-1===h?(r=\"\",s=0):s=(r=r.slice(0,h)).length-1-r.lastIndexOf(n),a=c,d=0;continue}if(2===r.length||1===r.length){r=\"\",s=0,a=c,d=0;continue}}t&&(r.length>0?r+=n+\"..\":r=\"..\",s=2)}else r.length>0?r+=n+e.slice(a+1,c):r=e.slice(a+1,c),s=c-a-1;a=c,d=0}else o===l&&-1!==d?++d:d=-1}return r}function v(e,t){var n=t.dir||t.root,i=t.base||(t.name||\"\")+(t.ext||\"\");return n?n===t.root?n+i:n+e+i:i}t.win32={resolve:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var i=\"\",o=\"\",r=!1,s=e.length-1;s>=-1;s--){var a=void 0\n;if(s>=0?a=e[s]:i?void 0!==(a=n.env[\"=\"+i]||n.cwd())&&a.slice(0,3).toLowerCase()===i.toLowerCase()+\"\\\\\"||(a=i+\"\\\\\"):a=n.cwd(),h(a,\"path\"),0!==a.length){var l=a.length,u=0,d=\"\",c=!1,g=a.charCodeAt(0);if(l>1)if(p(g))if(c=!0,p(a.charCodeAt(1))){for(var v=2,_=v;v<l&&!p(a.charCodeAt(v));++v);if(v<l&&v!==_){var y=a.slice(_,v);for(_=v;v<l&&p(a.charCodeAt(v));++v);if(v<l&&v!==_){for(_=v;v<l&&!p(a.charCodeAt(v));++v);v===l?(d=\"\\\\\\\\\"+y+\"\\\\\"+a.slice(_),u=v):v!==_&&(d=\"\\\\\\\\\"+y+\"\\\\\"+a.slice(_,v),u=v)}}}else u=1;else f(g)&&58===a.charCodeAt(1)&&(d=a.slice(0,2),u=2,l>2&&p(a.charCodeAt(2))&&(c=!0,u=3));else p(g)&&(u=1,c=!0);if(!(d.length>0&&i.length>0&&d.toLowerCase()!==i.toLowerCase())&&(0===i.length&&d.length>0&&(i=d),r||(o=a.slice(u)+\"\\\\\"+o,r=c),i.length>0&&r))break}}return i+(r?\"\\\\\":\"\")+(o=m(o,!r,\"\\\\\",p))||\".\"},normalize:function(e){h(e,\"path\");var t=e.length;if(0===t)return\".\";var n,i,o=0,r=!1,s=e.charCodeAt(0);if(t>1)if(p(s))if(r=!0,p(e.charCodeAt(1))){for(var a=2,l=a;a<t&&!p(e.charCodeAt(a));++a);if(a<t&&a!==l){\nvar u=e.slice(l,a);for(l=a;a<t&&p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&!p(e.charCodeAt(a));++a);if(a===t)return\"\\\\\\\\\"+u+\"\\\\\"+e.slice(l)+\"\\\\\";a!==l&&(n=\"\\\\\\\\\"+u+\"\\\\\"+e.slice(l,a),o=a)}}}else o=1;else f(s)&&58===e.charCodeAt(1)&&(n=e.slice(0,2),o=2,t>2&&p(e.charCodeAt(2))&&(r=!0,o=3));else if(p(s))return\"\\\\\";return 0!==(i=o<t?m(e.slice(o),!r,\"\\\\\",p):\"\").length||r||(i=\".\"),i.length>0&&p(e.charCodeAt(t-1))&&(i+=\"\\\\\"),void 0===n?r?i.length>0?\"\\\\\"+i:\"\\\\\":i.length>0?i:\"\":r?i.length>0?n+\"\\\\\"+i:n+\"\\\\\":i.length>0?n+i:n},isAbsolute:function(e){h(e,\"path\");var t=e.length;if(0===t)return!1;var n=e.charCodeAt(0);return!!p(n)||!!(f(n)&&t>2&&58===e.charCodeAt(1)&&p(e.charCodeAt(2)))},join:function(){for(var e,n,i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(0===i.length)return\".\";for(var r=0;r<i.length;++r){var s=i[r];h(s,\"path\"),s.length>0&&(void 0===e?e=n=s:e+=\"\\\\\"+s)}if(void 0===e)return\".\";var a=!0,l=0;if(\"string\"==typeof n&&p(n.charCodeAt(0))){++l;var u=n.length;u>1&&p(n.charCodeAt(1))&&(++l,\nu>2&&(p(n.charCodeAt(2))?++l:a=!1))}if(a){for(;l<e.length&&p(e.charCodeAt(l));++l);l>=2&&(e=\"\\\\\"+e.slice(l))}return t.win32.normalize(e)},relative:function(e,n){if(h(e,\"from\"),h(n,\"to\"),e===n)return\"\";var i=t.win32.resolve(e),o=t.win32.resolve(n);if(i===o)return\"\";if((e=i.toLowerCase())===(n=o.toLowerCase()))return\"\";for(var r=0;r<e.length&&e.charCodeAt(r)===d;++r);for(var s=e.length;s-1>r&&e.charCodeAt(s-1)===d;--s);for(var a=s-r,l=0;l<n.length&&n.charCodeAt(l)===d;++l);for(var u=n.length;u-1>l&&n.charCodeAt(u-1)===d;--u);for(var c=u-l,p=a<c?a:c,g=-1,f=0;f<=p;++f){if(f===p){if(c>p){if(n.charCodeAt(l+f)===d)return o.slice(l+f+1);if(2===f)return o.slice(l+f)}a>p&&(e.charCodeAt(r+f)===d?g=f:2===f&&(g=3));break}var m=e.charCodeAt(r+f);if(m!==n.charCodeAt(l+f))break;m===d&&(g=f)}if(f!==p&&-1===g)return o;var v=\"\";for(-1===g&&(g=0),f=r+g+1;f<=s;++f)f!==s&&e.charCodeAt(f)!==d||(0===v.length?v+=\"..\":v+=\"\\\\..\");return v.length>0?v+o.slice(l+g,u):(l+=g,o.charCodeAt(l)===d&&++l,o.slice(l,u))},\ntoNamespacedPath:function(e){if(\"string\"!=typeof e)return e;if(0===e.length)return\"\";var n=t.win32.resolve(e);if(n.length>=3)if(n.charCodeAt(0)===d){if(n.charCodeAt(1)===d){var i=n.charCodeAt(2);if(63!==i&&i!==l)return\"\\\\\\\\?\\\\UNC\\\\\"+n.slice(2)}}else if(f(n.charCodeAt(0))&&58===n.charCodeAt(1)&&n.charCodeAt(2)===d)return\"\\\\\\\\?\\\\\"+n;return e},dirname:function(e){h(e,\"path\");var t=e.length;if(0===t)return\".\";var n=-1,i=-1,o=!0,r=0,s=e.charCodeAt(0);if(t>1)if(p(s)){if(n=r=1,p(e.charCodeAt(1))){for(var a=2,l=a;a<t&&!p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&p(e.charCodeAt(a));++a);if(a<t&&a!==l){for(l=a;a<t&&!p(e.charCodeAt(a));++a);if(a===t)return e;a!==l&&(n=r=a+1)}}}}else f(s)&&58===e.charCodeAt(1)&&(n=r=2,t>2&&p(e.charCodeAt(2))&&(n=r=3));else if(p(s))return e;for(var u=t-1;u>=r;--u)if(p(e.charCodeAt(u))){if(!o){i=u;break}}else o=!1;if(-1===i){if(-1===n)return\".\";i=n}return e.slice(0,i)},basename:function(e,t){void 0!==t&&h(t,\"ext\"),h(e,\"path\");var n,i=0,o=-1,r=!0\n;e.length>=2&&(f(e.charCodeAt(0))&&58===e.charCodeAt(1)&&(i=2));if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return\"\";var s=t.length-1,a=-1;for(n=e.length-1;n>=i;--n){var l=e.charCodeAt(n);if(p(l)){if(!r){i=n+1;break}}else-1===a&&(r=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1==--s&&(o=n):(s=-1,o=a))}return i===o?o=a:-1===o&&(o=e.length),e.slice(i,o)}for(n=e.length-1;n>=i;--n)if(p(e.charCodeAt(n))){if(!r){i=n+1;break}}else-1===o&&(r=!1,o=n+1);return-1===o?\"\":e.slice(i,o)},extname:function(e){h(e,\"path\");var t=0,n=-1,i=0,o=-1,r=!0,s=0;e.length>=2&&58===e.charCodeAt(1)&&f(e.charCodeAt(0))&&(t=i=2);for(var a=e.length-1;a>=t;--a){var u=e.charCodeAt(a);if(p(u)){if(!r){i=a+1;break}}else-1===o&&(r=!1,o=a+1),u===l?-1===n?n=a:1!==s&&(s=1):-1!==n&&(s=-1)}return-1===n||-1===o||0===s||1===s&&n===o-1&&n===i+1?\"\":e.slice(n,o)},format:function(e){if(null===e||\"object\"!=typeof e)throw new c(\"pathObject\",\"Object\",e);return v(\"\\\\\",e)},parse:function(e){h(e,\"path\");var t={root:\"\",dir:\"\",base:\"\",\next:\"\",name:\"\"};if(0===e.length)return t;var n=e.length,i=0,o=e.charCodeAt(0);if(n>1){if(p(o)){if(i=1,p(e.charCodeAt(1))){for(var r=2,s=r;r<n&&!p(e.charCodeAt(r));++r);if(r<n&&r!==s){for(s=r;r<n&&p(e.charCodeAt(r));++r);if(r<n&&r!==s){for(s=r;r<n&&!p(e.charCodeAt(r));++r);r===n?i=r:r!==s&&(i=r+1)}}}}else if(f(o)&&58===e.charCodeAt(1)){if(i=2,!(n>2))return t.root=t.dir=e,t;if(p(e.charCodeAt(2))){if(3===n)return t.root=t.dir=e,t;i=3}}}else if(p(o))return t.root=t.dir=e,t;i>0&&(t.root=e.slice(0,i));for(var a=-1,u=i,d=-1,c=!0,g=e.length-1,m=0;g>=i;--g)if(p(o=e.charCodeAt(g))){if(!c){u=g+1;break}}else-1===d&&(c=!1,d=g+1),o===l?-1===a?a=g:1!==m&&(m=1):-1!==a&&(m=-1);return-1===a||-1===d||0===m||1===m&&a===d-1&&a===u+1?-1!==d&&(t.base=t.name=e.slice(u,d)):(t.name=e.slice(u,a),t.base=e.slice(u,d),t.ext=e.slice(a,d)),t.dir=u>0&&u!==i?e.slice(0,u-1):t.root,t},sep:\"\\\\\",delimiter:\";\",win32:null,posix:null},t.posix={resolve:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]\n;for(var i=\"\",o=!1,r=e.length-1;r>=-1&&!o;r--){var s=void 0;h(s=r>=0?e[r]:n.cwd(),\"path\"),0!==s.length&&(i=s+\"/\"+i,o=s.charCodeAt(0)===u)}return i=m(i,!o,\"/\",g),o?i.length>0?\"/\"+i:\"/\":i.length>0?i:\".\"},normalize:function(e){if(h(e,\"path\"),0===e.length)return\".\";var t=e.charCodeAt(0)===u,n=e.charCodeAt(e.length-1)===u;return 0!==(e=m(e,!t,\"/\",g)).length||t||(e=\".\"),e.length>0&&n&&(e+=\"/\"),t?\"/\"+e:e},isAbsolute:function(e){return h(e,\"path\"),e.length>0&&e.charCodeAt(0)===u},join:function(){for(var e,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];if(0===n.length)return\".\";for(var o=0;o<n.length;++o){var r=arguments[o];h(r,\"path\"),r.length>0&&(void 0===e?e=r:e+=\"/\"+r)}return void 0===e?\".\":t.posix.normalize(e)},relative:function(e,n){if(h(e,\"from\"),h(n,\"to\"),e===n)return\"\";if((e=t.posix.resolve(e))===(n=t.posix.resolve(n)))return\"\";for(var i=1;i<e.length&&e.charCodeAt(i)===u;++i);for(var o=e.length,r=o-i,s=1;s<n.length&&n.charCodeAt(s)===u;++s);for(var a=n.length-s,l=r<a?r:a,d=-1,c=0;c<=l;++c){if(c===l){\nif(a>l){if(n.charCodeAt(s+c)===u)return n.slice(s+c+1);if(0===c)return n.slice(s+c)}else r>l&&(e.charCodeAt(i+c)===u?d=c:0===c&&(d=0));break}var p=e.charCodeAt(i+c);if(p!==n.charCodeAt(s+c))break;p===u&&(d=c)}var g=\"\";for(c=i+d+1;c<=o;++c)c!==o&&e.charCodeAt(c)!==u||(0===g.length?g+=\"..\":g+=\"/..\");return g.length>0?g+n.slice(s+d):(s+=d,n.charCodeAt(s)===u&&++s,n.slice(s))},toNamespacedPath:function(e){return e},dirname:function(e){if(h(e,\"path\"),0===e.length)return\".\";for(var t=e.charCodeAt(0)===u,n=-1,i=!0,o=e.length-1;o>=1;--o)if(e.charCodeAt(o)===u){if(!i){n=o;break}}else i=!1;return-1===n?t?\"/\":\".\":t&&1===n?\"//\":e.slice(0,n)},basename:function(e,t){void 0!==t&&h(t,\"ext\"),h(e,\"path\");var n,i=0,o=-1,r=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return\"\";var s=t.length-1,a=-1;for(n=e.length-1;n>=0;--n){var l=e.charCodeAt(n);if(l===u){if(!r){i=n+1;break}}else-1===a&&(r=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1==--s&&(o=n):(s=-1,o=a))}return i===o?o=a:-1===o&&(o=e.length),\ne.slice(i,o)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===u){if(!r){i=n+1;break}}else-1===o&&(r=!1,o=n+1);return-1===o?\"\":e.slice(i,o)},extname:function(e){h(e,\"path\");for(var t=-1,n=0,i=-1,o=!0,r=0,s=e.length-1;s>=0;--s){var a=e.charCodeAt(s);if(a!==u)-1===i&&(o=!1,i=s+1),a===l?-1===t?t=s:1!==r&&(r=1):-1!==t&&(r=-1);else if(!o){n=s+1;break}}return-1===t||-1===i||0===r||1===r&&t===i-1&&t===n+1?\"\":e.slice(t,i)},format:function(e){if(null===e||\"object\"!=typeof e)throw new c(\"pathObject\",\"Object\",e);return v(\"/\",e)},parse:function(e){h(e,\"path\");var t={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===e.length)return t;var n,i=e.charCodeAt(0)===u;i?(t.root=\"/\",n=1):n=0;for(var o=-1,r=0,s=-1,a=!0,d=e.length-1,c=0;d>=n;--d){var p=e.charCodeAt(d);if(p!==u)-1===s&&(a=!1,s=d+1),p===l?-1===o?o=d:1!==c&&(c=1):-1!==o&&(c=-1);else if(!a){r=d+1;break}}return-1===o||-1===s||0===c||1===c&&o===s-1&&o===r+1?-1!==s&&(t.base=t.name=0===r&&i?e.slice(1,s):e.slice(r,s)):(0===r&&i?(t.name=e.slice(1,o),\nt.base=e.slice(1,s)):(t.name=e.slice(r,o),t.base=e.slice(r,s)),t.ext=e.slice(o,s)),r>0?t.dir=e.slice(0,r-1):i&&(t.dir=\"/\"),t},sep:\"/\",delimiter:\":\",win32:null,posix:null},t.posix.win32=t.win32.win32=t.win32,t.posix.posix=t.win32.posix=t.posix,t.normalize=\"win32\"===n.platform?t.win32.normalize:t.posix.normalize,t.join=\"win32\"===n.platform?t.win32.join:t.posix.join,t.relative=\"win32\"===n.platform?t.win32.relative:t.posix.relative,t.dirname=\"win32\"===n.platform?t.win32.dirname:t.posix.dirname,t.basename=\"win32\"===n.platform?t.win32.basename:t.posix.basename,t.extname=\"win32\"===n.platform?t.win32.extname:t.posix.extname,t.sep=\"win32\"===n.platform?t.win32.sep:t.posix.sep})),define(n[103],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};var n=Math.max(e.start,t.start),i=Math.min(e.end,t.end);return i-n<=0?{start:0,end:0}:{start:n,end:i}}function n(e){return e.end-e.start<=0}e.intersect=t,\ne.isEmpty=n,e.intersects=function(e,i){return!n(t(e,i))},e.relativeComplement=function(e,t){var i=[],o={start:e.start,end:Math.min(t.start,e.end)},r={start:Math.max(t.end,e.start),end:e.end};return n(o)||i.push(o),n(r)||i.push(r),i}}(t.Range||(t.Range={}))})),define(n[246],i([0,1,103]),(function(e,t,n){\"use strict\";function i(e,t){for(var i=[],o=0,r=t;o<r.length;o++){var s=r[o];if(!(e.start>=s.range.end)){if(e.end<s.range.start)break;var a=n.Range.intersect(e,s.range);n.Range.isEmpty(a)||i.push({range:a,size:s.size})}}return i}function o(e,t){return{start:e.start+t,end:e.end+t}}function r(e){for(var t=[],n=null,i=0,o=e;i<o.length;i++){var r=o[i],s=r.range.start,a=r.range.end,l=r.size;n&&l===n.size?n.range.end=a:(n={range:{start:s,end:a},size:l},t.push(n))}return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.groupIntersect=i,t.shift=o,t.consolidate=r;var s=function(){function e(){this.groups=[],this._size=0}return e.prototype.splice=function(e,t,n){void 0===n&&(n=[]);var s=n.length-t,a=i({start:0,end:e\n},this.groups),l=i({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((function(e){return{range:o(e.range,s),size:e.size}})),u=n.map((function(t,n){return{range:{start:e+n,end:e+n+1},size:t.size}}));this.groups=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r(e.reduce((function(e,t){return e.concat(t)}),[]))}(a,u,l),this._size=this.groups.reduce((function(e,t){return e+t.size*(t.range.end-t.range.start)}),0)},Object.defineProperty(e.prototype,\"count\",{get:function(){var e=this.groups.length;return e?this.groups[e-1].range.end:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.indexAt=function(e){if(e<0)return-1;for(var t=0,n=0,i=0,o=this.groups;i<o.length;i++){var r=o[i],s=r.range.end-r.range.start,a=n+s*r.size;if(e<a)return t+Math.floor((e-n)/r.size);t+=s,n=a}return t},e.prototype.indexAfter=function(e){return Math.min(this.indexAt(e)+1,this.count)},\ne.prototype.positionAt=function(e){if(e<0)return-1;for(var t=0,n=0,i=0,o=this.groups;i<o.length;i++){var r=o[i],s=r.range.end-r.range.start,a=n+s;if(e<a)return t+(e-n)*r.size;t+=s*r.size,n=a}return-1},e}();t.RangeMap=s})),define(n[176],i([0,1,4,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n,i,o,r){(e|=0)<0&&(e=0),(n|=0)+e>(t|=0)&&(n=t-e),n<0&&(n=0),(i|=0)<0&&(i=0),(r|=0)+i>(o|=0)&&(r=o-i),r<0&&(r=0),this.width=e,this.scrollWidth=t,this.scrollLeft=n,this.height=i,this.scrollHeight=o,this.scrollTop=r}return e.prototype.equals=function(e){return this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop},e.prototype.withScrollDimensions=function(t){\nreturn new e(void 0!==t.width?t.width:this.width,void 0!==t.scrollWidth?t.scrollWidth:this.scrollWidth,this.scrollLeft,void 0!==t.height?t.height:this.height,void 0!==t.scrollHeight?t.scrollHeight:this.scrollHeight,this.scrollTop)},e.prototype.withScrollPosition=function(t){return new e(this.width,this.scrollWidth,void 0!==t.scrollLeft?t.scrollLeft:this.scrollLeft,this.height,this.scrollHeight,void 0!==t.scrollTop?t.scrollTop:this.scrollTop)},e.prototype.createScrollEvent=function(e){var t=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,o=this.height!==e.height,r=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:t,scrollWidthChanged:n,scrollLeftChanged:i,heightChanged:o,scrollHeightChanged:r,scrollTopChanged:s}},e}();t.ScrollState=o;var s=function(e){function t(t,i){\nvar r=e.call(this)||this;return r._onScroll=r._register(new n.Emitter),r.onScroll=r._onScroll.event,r._smoothScrollDuration=t,r._scheduleAtNextAnimationFrame=i,r._state=new o(0,0,0,0,0,0),r._smoothScrolling=null,r}return r(t,e),t.prototype.dispose=function(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),e.prototype.dispose.call(this)},t.prototype.setSmoothScrollDuration=function(e){this._smoothScrollDuration=e},t.prototype.validateScrollPosition=function(e){return this._state.withScrollPosition(e)},t.prototype.getScrollDimensions=function(){return this._state},t.prototype.setScrollDimensions=function(e){var t=this._state.withScrollDimensions(e);this._setState(t),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)},t.prototype.getFutureScrollPosition=function(){return this._smoothScrolling?this._smoothScrolling.to:this._state},t.prototype.getCurrentScrollPosition=function(){return this._state},t.prototype.setScrollPositionNow=function(e){\nvar t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t)},t.prototype.setScrollPositionSmooth=function(e){var t=this;if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:void 0===e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:void 0===e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};var n=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===n.scrollLeft&&this._smoothScrolling.to.scrollTop===n.scrollTop)return;var i=this._smoothScrolling.combine(this._state,n,this._smoothScrollDuration);this._smoothScrolling.dispose(),this._smoothScrolling=i}else{n=this._state.withScrollPosition(e);this._smoothScrolling=u.start(this._state,n,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){t._smoothScrolling&&(t._smoothScrolling.animationFrameDisposable=null,\nt._performSmoothScrolling())}))},t.prototype._performSmoothScrolling=function(){var e=this;if(this._smoothScrolling){var t=this._smoothScrolling.tick(),n=this._state.withScrollPosition(t);if(this._setState(n),t.isDone)return this._smoothScrolling.dispose(),void(this._smoothScrolling=null);this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((function(){e._smoothScrolling&&(e._smoothScrolling.animationFrameDisposable=null,e._performSmoothScrolling())}))}},t.prototype._setState=function(e){var t=this._state;t.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(t)))},t}(i.Disposable);t.Scrollable=s;var a=function(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n};function l(e,t){var n=t-e;return function(t){return e+n*(1-function(e){return Math.pow(e,3)}(1-t))}}t.SmoothScrollingUpdate=a;var u=function(){function e(e,t,n,i){this.from=e,this.to=t,this.duration=i,this._startTime=n,this.animationFrameDisposable=null,this._initAnimations()}\nreturn e.prototype._initAnimations=function(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)},e.prototype._initAnimation=function(e,t,n){var i,o,r;if(Math.abs(e-t)>2.5*n){var s=void 0,a=void 0;return e<t?(s=e+.75*n,a=t-.75*n):(s=e-.75*n,a=t+.75*n),i=l(e,s),o=l(a,t),r=.33,function(e){return e<r?i(e/r):o((e-r)/(1-r))}}return l(e,t)},e.prototype.dispose=function(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)},e.prototype.acceptScrollDimensions=function(e){this.to=e.withScrollPosition(this.to),this._initAnimations()},e.prototype.tick=function(){return this._tick(Date.now())},e.prototype._tick=function(e){var t=(e-this._startTime)/this.duration;if(t<1){var n=this.scrollLeft(t),i=this.scrollTop(t);return new a(n,i,!1)}return new a(this.to.scrollLeft,this.to.scrollTop,!0)},e.prototype.combine=function(t,n,i){\nreturn e.start(t,n,i)},e.start=function(t,n,i){return i+=10,new e(t,n,Date.now()-10,i)},e}();t.SmoothScrollingOperation=u})),define(n[132],i([0,1,16]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=n.globals.performance&&\"function\"==typeof n.globals.performance.now,o=function(){function e(e){this._highResolution=i&&e,this._startTime=this._now(),this._stopTime=-1}return e.create=function(t){return void 0===t&&(t=!0),new e(t)},e.prototype.stop=function(){this._stopTime=this._now()},e.prototype.elapsed=function(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime},e.prototype._now=function(){return this._highResolution?n.globals.performance.now():(new Date).getTime()},e}();t.StopWatch=o})),define(n[5],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFalsyOrWhitespace=function(e){return!e||\"string\"!=typeof e||0===e.trim().length},t.pad=function(e,t,n){void 0===n&&(n=\"0\")\n;for(var i=\"\"+e,o=[i],r=i.length;r<t;r++)o.push(n);return o.reverse().join(\"\")};var n=/{(\\d+)}/g;function i(e){return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g,\"\\\\$&\")}function o(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e;for(var i=0;e.indexOf(t,i)===i;)i+=n;return e.substring(i)}function r(e,t){if(!e||!t)return e;var n=t.length,i=e.length;if(0===n||0===i)return e;for(var o=i,r=-1;-1!==(r=e.lastIndexOf(t,o-1))&&r+n===o;){if(0===r)return\"\";o=r}return e.substring(0,o)}function s(e,t){return e<t?-1:e>t?1:0}function a(e){return e>=97&&e<=122}function l(e){return e>=65&&e<=90}function u(e){return a(e)||l(e)}function d(e,t,n){void 0===n&&(n=e.length);for(var i=0;i<n;i++){var o=e.charCodeAt(i),r=t.charCodeAt(i);if(o!==r)if(u(o)&&u(r)){var s=Math.abs(o-r);if(0!==s&&32!==s)return!1}else if(String.fromCharCode(o).toLowerCase()!==String.fromCharCode(r).toLowerCase())return!1}return!0}function c(e){return 55296<=e&&e<=56319}function h(e){return 56320<=e&&e<=57343}function p(e,t,n){\nvar i=e.charCodeAt(n);if(c(i)&&n+1<t){var o=e.charCodeAt(n+1);if(h(o))return o-56320+(i-55296<<10)+65536}return i}function g(e,t){var n=e.charCodeAt(t-1);if(h(n)&&t>1){var i=e.charCodeAt(t-2);if(c(i))return n-56320+(i-55296<<10)+65536}return n}t.format=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return 0===t.length?e:e.replace(n,(function(e,n){var i=parseInt(n,10);return isNaN(i)||i<0||i>=t.length?e:t[i]}))},t.escape=function(e){return e.replace(/[<>&]/g,(function(e){switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case\"&\":return\"&amp;\";default:return e}}))},t.escapeRegExpCharacters=i,t.trim=function(e,t){return void 0===t&&(t=\" \"),r(o(e,t),t)},t.ltrim=o,t.rtrim=r,t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.startsWith=function(e,t){if(e.length<t.length)return!1;if(e===t)return!0;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length\n;return n>0?e.indexOf(t,n)===n:0===n&&e===t},t.createRegExp=function(e,t,n){if(void 0===n&&(n={}),!e)throw new Error(\"Cannot create regex from empty string\");t||(e=i(e)),n.wholeWord&&(/\\B/.test(e.charAt(0))||(e=\"\\\\b\"+e),/\\B/.test(e.charAt(e.length-1))||(e+=\"\\\\b\"));var o=\"\";return n.global&&(o+=\"g\"),n.matchCase||(o+=\"i\"),n.multiline&&(o+=\"m\"),n.unicode&&(o+=\"u\"),new RegExp(e,o)},t.regExpLeadsToEndlessLoop=function(e){return\"^\"!==e.source&&\"^$\"!==e.source&&\"$\"!==e.source&&\"^\\\\s*$\"!==e.source&&!(!e.exec(\"\")||0!==e.lastIndex)},t.regExpFlags=function(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.unicode?\"u\":\"\")},t.firstNonWhitespaceIndex=function(e){for(var t=0,n=e.length;t<n;t++){var i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1},t.getLeadingWhitespace=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length);for(var i=t;i<n;i++){var o=e.charCodeAt(i);if(32!==o&&9!==o)return e.substring(t,i)}return e.substring(t,n)},t.lastNonWhitespaceIndex=function(e,t){\nvoid 0===t&&(t=e.length-1);for(var n=t;n>=0;n--){var i=e.charCodeAt(n);if(32!==i&&9!==i)return n}return-1},t.compare=s,t.compareIgnoreCase=function(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++){var o=e.charCodeAt(i),r=t.charCodeAt(i);if(o!==r){l(o)&&(o+=32),l(r)&&(r+=32);var u=o-r;if(0!==u)return a(o)&&a(r)?u:s(e.toLowerCase(),t.toLowerCase())}}return e.length<t.length?-1:e.length>t.length?1:0},t.isLowerAsciiLetter=a,t.isUpperAsciiLetter=l,t.equalsIgnoreCase=function(e,t){return e.length===t.length&&d(e,t)},t.startsWithIgnoreCase=function(e,t){var n=t.length;return!(t.length>e.length)&&d(e,t,n)},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.commonSuffixLength=function(e,t){var n,i=Math.min(e.length,t.length),o=e.length-1,r=t.length-1;for(n=0;n<i;n++)if(e.charCodeAt(o-n)!==t.charCodeAt(r-n))return n;return i},t.isHighSurrogate=c,t.isLowSurrogate=h,t.getNextCodePoint=p,t.nextCharLength=function(e,t){\nvar n=C.getInstance(),i=t,o=e.length,r=p(e,o,t);t+=r>=65536?2:1;for(var s=n.getGraphemeBreakType(r);t<o;){var a=p(e,o,t),l=n.getGraphemeBreakType(a);if(y(s,l))break;t+=a>=65536?2:1,s=l}return t-i},t.prevCharLength=function(e,t){var n=C.getInstance(),i=t,o=g(e,t);t-=o>=65536?2:1;for(var r=n.getGraphemeBreakType(o);t>0;){var s=g(e,t),a=n.getGraphemeBreakType(s);if(y(a,r))break;t-=s>=65536?2:1,r=a}return i-t};var f=/(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;t.containsRTL=function(e){return f.test(e)}\n;var m=/(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE82\\uDE90-\\uDE95])/;t.containsEmoji=function(e){return m.test(e)};var v=/^[\\t\\n\\r\\x20-\\x7E]*$/;function _(e){return(e=+e)>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function y(e,t){return 0===e?5!==t&&7!==t:(2!==e||3!==t)&&(4===e||2===e||3===e||(4===t||2===t||3===t||(8!==e||8!==t&&9!==t&&11!==t&&12!==t)&&((11!==e&&9!==e||9!==t&&10!==t)&&((12!==e&&10!==e||10!==t)&&(5!==t&&13!==t&&(7!==t&&(1!==e&&((13!==e||14!==t)&&(6!==e||6!==t)))))))))}t.isBasicASCII=function(e){return v.test(e)},t.containsFullWidthCharacter=function(e){for(var t=0,n=e.length;t<n;t++)if(_(e.charCodeAt(t)))return!0;return!1},t.isFullWidthCharacter=_,t.isEmojiImprecise=function(e){\nreturn e>=127462&&e<=127487||e>=9728&&e<=10175||e>=127744&&e<=128591||e>=128640&&e<=128764||e>=128992&&e<=129003||e>=129280&&e<=129535||e>=129648&&e<=129651||e>=129656&&e<=129666||e>=129680&&e<=129685},t.UTF8_BOM_CHARACTER=String.fromCharCode(65279),t.startsWithUTF8BOM=function(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))},t.safeBtoa=function(e){return btoa(encodeURIComponent(e))},t.repeat=function(e,t){for(var n=\"\",i=0;i<t;i++)n+=e;return n},t.containsUppercaseCharacter=function(e,t){return void 0===t&&(t=!1),!!e&&(t&&(e=e.replace(/\\\\./g,\"\")),e.toLowerCase()!==e)},t.singleLetterHash=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)},t.getGraphemeBreakType=function(e){return C.getInstance().getGraphemeBreakType(e)},t.breakBetweenGraphemeBreakType=y;var C=function(){function e(){\nthis._data=JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getGraphemeBreakType=function(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;for(var t=this._data,n=t.length/3,i=1;i<=n;)if(e<t[3*i])i*=2;else{if(!(e>t[3*i+1]))return t[3*i+2];i=2*i+1}return 0},e._INSTANCE=null,e}()})),define(n[177],i([0,1,5,77]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toSlashes=function(e){return e.replace(/[\\\\/]/g,i.posix.sep)},t.isEqualOrParent=function(e,t,o,r){if(void 0===r&&(r=i.sep),e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(o){if(!n.startsWithIgnoreCase(e,t))return!1;if(t.length===e.length)return!0;var s=t.length;return t.charAt(t.length-1)===r&&s--,e.charAt(s)===r}return t.charAt(t.length-1)!==r&&(t+=r),0===e.indexOf(t)},t.isWindowsDriveLetter=function(e){return e>=65&&e<=90||e>=97&&e<=122}})),define(n[61],i([0,1,38,5]),(function(e,t,n,i){\"use strict\";function o(){\nfor(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t,n){for(var i=0,o=e.length;i<o;i++){var r=e[i](t,n);if(r)return r}return null}}function r(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}function s(e,t){return function e(t,n,i,o){if(i===t.length)return[];if(o===n.length)return null;if(t[i]===n[o]){var r;return(r=e(t,n,i+1,o+1))?p({start:o,end:o+1},r):null}return e(t,n,i,o+1)}(e.toLowerCase(),t.toLowerCase(),0,0)}function a(e){return 97<=e&&e<=122}function l(e){return 65<=e&&e<=90}function u(e){return 48<=e&&e<=57}function d(e){return 32===e||9===e||10===e||13===e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.or=o,t.matchesPrefix=function(e,t,n){if(!n||n.length<t.length)return null;var o;o=e?i.startsWithIgnoreCase(n,t):0===n.indexOf(t);if(!o)return null;return t.length>0?[{start:0,end:t.length}]:[]}.bind(void 0,!0),t.matchesContiguousSubString=r,t.matchesSubString=s,t.isUpper=l;var c=new Set;function h(e){return a(e)||l(e)||u(e)}\nfunction p(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function g(e,t){for(var n=t;n<e.length;n++){var i=e.charCodeAt(n);if(l(i)||u(i)||n>0&&!h(e.charCodeAt(n-1)))return n}return e.length}function f(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var o=null,r=i+1;for(o=f(e,t,n+1,i+1);!o&&(r=g(t,r))<t.length;)o=f(e,t,n+1,r),r++;return null===o?null:p({start:i,end:i+1},o)}function m(e,t){if(!t)return null;if(0===(t=t.trim()).length)return null;if(!function(e){for(var t=0,n=0,i=0,o=0,r=0;r<e.length;r++)l(i=e.charCodeAt(r))&&t++,a(i)&&n++,d(i)&&o++;return 0!==t&&0!==n||0!==o?t<=5:e.length<=30}(e))return null;if(t.length>60)return null;var n=function(e){for(var t=0,n=0,i=0,o=0,r=0,s=0;s<e.length;s++)l(r=e.charCodeAt(s))&&t++,a(r)&&n++,h(r)&&i++,u(r)&&o++;return{upperPercent:t/e.length,lowerPercent:n/e.length,alphaPercent:i/e.length,numericPercent:o/e.length}}(t);if(!function(e){\nvar t=e.upperPercent,n=e.lowerPercent,i=e.alphaPercent,o=e.numericPercent;return n>.2&&t<.8&&i>.6&&o<.2}(n)){if(!function(e){var t=e.upperPercent;return 0===e.lowerPercent&&t>.6}(n))return null;t=t.toLowerCase()}var i=null,o=0;for(e=e.toLowerCase();o<t.length&&null===(i=f(e,t,0,o));)o=g(t,o+1);return i}\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\".split(\"\").forEach((function(e){return c.add(e.charCodeAt(0))})),t.matchesCamelCase=m;var v=o(t.matchesPrefix,m,r),_=o(t.matchesPrefix,m,s),y=new n.LRUCache(1e4);t.matchesFuzzy=function(e,t,n){if(void 0===n&&(n=!1),\"string\"!=typeof e||\"string\"!=typeof t)return null;var o=y.get(e);o||(o=new RegExp(i.convertSimple2RegExpPattern(e),\"i\"),y.set(e,o));var r=o.exec(t);return r?[{start:r.index,end:r.index+r[0].length}]:n?_(e,t):v(e,t)},t.anyScore=function(e,t,n,i,o,r){var s=M(e,t,0,i,o,0,!0);if(s)return s;for(var a=0,l=0,u=r,d=0;d<t.length&&d<C;++d){var c=o.indexOf(t.charAt(d),u);if(c>=0)l+=1,a+=Math.pow(2,c),u=c+1;else if(0!==a)break}return[l,a,r]},t.createMatches=function(e){\nif(void 0===e)return[];for(var t=e[1].toString(2),n=[],i=e[2];i<C;i++)if(\"1\"===t[t.length-(i+1)]){var o=n[n.length-1];o&&o.end===i?o.end=i+1:n.push({start:i,end:i+1})}return n};var C=128;function b(){for(var e=[],t=[0],n=1;n<=C;n++)t.push(-n);for(n=0;n<=C;n++){var i=t.slice(0);i[0]=-n,e.push(i)}return e}var S=b(),w=b(),E=b(),L=!1;function D(e,t,n,i,o){function r(e,t,n){for(void 0===n&&(n=\" \");e.length<t;)e=n+e;return e}for(var s=\" |   |\"+i.split(\"\").map((function(e){return r(e,3)})).join(\"|\")+\"\\n\",a=0;a<=n;a++)s+=0===a?\" |\":t[a-1]+\"|\",s+=e[a].slice(0,o+1).map((function(e){return r(e.toString(),3)})).join(\"|\")+\"\\n\";return s}function N(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:return!0;default:return!1}}function x(e,t,n){return t[e]!==n[e]}function I(e,t,n,i,o,r){for(;t<n&&o<r;)e[t]===i[o]&&(t+=1),o+=1;return t===n}function M(e,t,n,i,o,r,s){var a=e.length>C?C:e.length,l=i.length>C?C:i.length\n;if(!(n>=a||r>=l||a-n>l-r)&&I(t,n,a,o,r,l)){var u=1,d=1,c=n,h=r;for(u=1,c=n;c<a;u++,c++)for(d=1,h=r;h<l;d++,h++){var p=k(e,t,c,n,i,o,h);w[u][d]=p;var g=S[u-1][d-1]+(p>1?1:p),f=S[u-1][d]+-1,m=S[u][d-1]+-1;m>=f?m>g?(S[u][d]=m,E[u][d]=4):m===g?(S[u][d]=m,E[u][d]=6):(S[u][d]=g,E[u][d]=2):f>g?(S[u][d]=f,E[u][d]=1):f===g?(S[u][d]=f,E[u][d]=3):(S[u][d]=g,E[u][d]=2)}if(L&&function(e,t,n,i){e=e.substr(t),n=n.substr(i),console.log(D(S,e,e.length,n,n.length)),console.log(D(E,e,e.length,n,n.length)),console.log(D(w,e,e.length,n,n.length))}(e,n,i,r),T=0,O=-100,P=r,A=s,function e(t,n,i,o,r){if(T>=10||i<-25)return;var s=0;for(;t>0&&n>0;){var a=w[t][n],l=E[t][n];if(4===l)n-=1,r?i-=5:0!==o&&(i-=1),r=!1,s=0;else{if(!(2&l))return;if(4&l&&e(t,n-1,0!==o?i-1:i,o,r),i+=a,t-=1,n-=1,r=!0,o+=Math.pow(2,n+P),1===a){if(s+=1,0===t&&!A)return}else i+=1+s*(a-1),s=0}}i-=n>=3?9:3*n;T+=1;i>O&&(O=i,R=o)}(u-1,d-1,a===l?1:0,0,!1),0!==T)return[O,R,r]}}function k(e,t,n,i,o,r,s){\nreturn t[n]!==r[s]?-1:s===n-i?e[n]===o[s]?7:5:!x(s,o,r)||0!==s&&x(s-1,o,r)?!N(r,s)||0!==s&&N(r,s-1)?N(r,s-1)||function(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}(r,s-1)?5:1:5:e[n]===o[s]?7:5}t.isPatternInWord=I,function(e){e.Default=Object.freeze([-100,0,0]),e.isDefault=function(e){return!e||-100===e[0]&&0===e[1]&&0===e[2]}}(t.FuzzyScore||(t.FuzzyScore={})),t.fuzzyScore=M;var T=0,R=0,O=0,P=0,A=!1;function F(e,t){if(!(t+1>=e.length)){var n=e[t],i=e[t+1];if(n!==i)return e.slice(0,t)+i+n+e.slice(t+2)}}t.fuzzyScoreGracefulAggressive=function(e,t,n,i,o,r,s){return function(e,t,n,i,o,r,s,a){var l=M(e,t,n,i,o,r,a);if(l&&!s)return l;if(e.length>=3)for(var u=Math.min(7,e.length-1),d=n+1;d<u;d++){var c=F(e,d);if(c){var h=M(c,c.toLowerCase(),n,i,o,r,a);h&&(h[0]-=3,(!l||h[0]>l[0])&&(l=h))}}return l}(e,t,n,i,o,r,!0,s)}})),define(n[178],i([0,1,19,5,177,77,38,15]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var l=\"**\",u=\"/\",d=\"[/\\\\\\\\]\",c=\"[^/\\\\\\\\]\",h=/\\//g;function p(e){switch(e){case 0:return\"\";case 1:return c+\"*?\";default:return\"(?:\"+d+\"|\"+c+\"+\"+d+\"|\"+d+c+\"+)*?\"}}function g(e,t){if(!e)return[];for(var n=[],i=!1,o=!1,r=\"\",s=0,a=e;s<a.length;s++){var l=a[s];switch(l){case t:if(!i&&!o){n.push(r),r=\"\";continue}break;case\"{\":i=!0;break;case\"}\":i=!1;break;case\"[\":o=!0;break;case\"]\":o=!1}r+=l}return r&&n.push(r),n}t.splitGlobAware=g;var f=/^\\*\\*\\/\\*\\.[\\w\\.-]+$/,m=/^\\*\\*\\/([\\w\\.-]+)\\/?$/,v=/^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?)*}$/,_=/^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/,y=/^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/,C=/^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/,b=new s.LRUCache(1e4),S=function(){return!1},w=function(){return null};function E(e,t){if(!e)return w;var o,r,s=(o=(o=\"string\"!=typeof e?e.pattern:e).trim())+\"_\"+!!t.trimForExclusions,a=b.get(s);if(a)return L(a,e);if(f.test(o)){var h=o.substr(4);a=function(e,t){return\"string\"==typeof e&&i.endsWith(e,h)?o:null}\n}else a=(r=m.exec(D(o,t)))?function(e,t){var n=\"/\"+e,o=\"\\\\\"+e,r=function(r,s){return\"string\"!=typeof r?null:s?s===e?t:null:r===e||i.endsWith(r,n)||i.endsWith(r,o)?t:null},s=[e];return r.basenames=s,r.patterns=[t],r.allBasenames=s,r}(r[1],o):(t.trimForExclusions?_:v).test(o)?function(e,t){var i=M(e.slice(1,-1).split(\",\").map((function(e){return E(e,t)})).filter((function(e){return e!==w})),e),o=i.length;if(!o)return w;if(1===o)return i[0];var r=function(t,n){for(var o=0,r=i.length;o<r;o++)if(i[o](t,n))return e;return null},s=n.first(i,(function(e){return!!e.allBasenames}));s&&(r.allBasenames=s.allBasenames);var a=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);a.length&&(r.allPaths=a);return r}(o,t):(r=y.exec(D(o,t)))?N(r[1].substr(1),o,!0):(r=C.exec(D(o,t)))?N(r[1],o,!1):function(e){try{var t=new RegExp(\"^\"+function e(t){if(!t)return\"\";var n=\"\",o=g(t,u);if(o.every((function(e){return e===l})))n=\".*\";else{var r=!1;o.forEach((function(t,s){if(t!==l){\nfor(var a=!1,h=\"\",f=!1,m=\"\",v=0,_=t;v<_.length;v++){var y=_[v];if(\"}\"!==y&&a)h+=y;else if(!f||\"]\"===y&&m)switch(y){case\"{\":a=!0;continue;case\"[\":f=!0;continue;case\"}\":var C=\"(?:\"+g(h,\",\").map((function(t){return e(t)})).join(\"|\")+\")\";n+=C,a=!1,h=\"\";break;case\"]\":n+=\"[\"+m+\"]\",f=!1,m=\"\";break;case\"?\":n+=c;continue;case\"*\":n+=p(1);continue;default:n+=i.escapeRegExpCharacters(y)}else{m+=\"-\"===y?y:\"^\"!==y&&\"!\"!==y||m?y===u?\"\":i.escapeRegExpCharacters(y):\"^\"}}s<o.length-1&&(o[s+1]!==l||s+2<o.length)&&(n+=d),r=!1}else r||(n+=p(2),r=!0)}))}return n}(e)+\"$\");return function(n,i){return t.lastIndex=0,\"string\"==typeof n&&t.test(n)?e:null}}catch(e){return w}}(o);return b.set(s,a),L(a,e)}function L(e,t){return\"string\"==typeof t?e:function(n,i){return o.isEqualOrParent(n,t.base)?e(r.relative(t.base,n),i):null}}function D(e,t){return t.trimForExclusions&&i.endsWith(e,\"/**\")?e.substr(0,e.length-2):e}function N(e,t,n){var o=r.sep!==r.posix.sep?e.replace(h,r.sep):e,s=r.sep+o,a=n?function(e,n){\nreturn\"string\"!=typeof e||e!==o&&!i.endsWith(e,s)?null:t}:function(e,n){return\"string\"==typeof e&&e===o?t:null};return a.allPaths=[(n?\"*/\":\"./\")+e],a}function x(e,t){if(void 0===t&&(t={}),!e)return S;if(\"string\"==typeof e||I(e)){var i=E(e,t);if(i===w)return S;var o=function(e,t){return!!i(e,t)};return i.allBasenames&&(o.allBasenames=i.allBasenames),i.allPaths&&(o.allPaths=i.allPaths),o}return function(e,t){var i=M(Object.getOwnPropertyNames(e).map((function(n){return function(e,t,n){if(!1===t)return w;var i=E(e,n);if(i===w)return w;if(\"boolean\"==typeof t)return i;if(t){var o=t.when;if(\"string\"==typeof o){var r=function(t,n,r,s){if(!s||!i(t,n))return null;var l=s(o.replace(\"$(basename)\",r));return a.isThenable(l)?l.then((function(t){return t?e:null})):l?e:null};return r.requiresSiblings=!0,r}}return i}(n,e[n],t)})).filter((function(e){return e!==w}))),o=i.length;if(!o)return w;if(!i.some((function(e){return!!e.requiresSiblings}))){if(1===o)return i[0];var s=function(e,t){for(var n=0,o=i.length;n<o;n++){\nvar r=i[n](e,t);if(r)return r}return null},l=n.first(i,(function(e){return!!e.allBasenames}));l&&(s.allBasenames=l.allBasenames);var u=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);return u.length&&(s.allPaths=u),s}var d=function(e,t,n){for(var o=void 0,s=0,a=i.length;s<a;s++){var l=i[s];l.requiresSiblings&&n&&(t||(t=r.basename(e)),o||(o=t.substr(0,t.length-r.extname(e).length)));var u=l(e,t,o,n);if(u)return u}return null},c=n.first(i,(function(e){return!!e.allBasenames}));c&&(d.allBasenames=c.allBasenames);var h=i.reduce((function(e,t){return t.allPaths?e.concat(t.allPaths):e}),[]);h.length&&(d.allPaths=h);return d}(e,t)}function I(e){var t=e;return t&&\"string\"==typeof t.base&&\"string\"==typeof t.pattern}function M(e,t){var n=e.filter((function(e){return!!e.basenames}));if(n.length<2)return e;var i,o=n.reduce((function(e,t){var n=t.basenames;return n?e.concat(n):e}),[]);if(t){i=[];for(var r=0,s=o.length;r<s;r++)i.push(t)}else i=n.reduce((function(e,t){var n=t.patterns\n;return n?e.concat(n):e}),[]);var a=function(e,t){if(\"string\"!=typeof e)return null;if(!t){var n=void 0;for(n=e.length;n>0;n--){var r=e.charCodeAt(n-1);if(47===r||92===r)break}t=e.substr(n)}var s=o.indexOf(t);return-1!==s?i[s]:null};a.basenames=o,a.patterns=i,a.allBasenames=o;var l=e.filter((function(e){return!e.basenames}));return l.push(a),l}t.match=function(e,t,n){return!(!e||\"string\"!=typeof t)&&x(e)(t,void 0,n)},t.parse=x,t.isRelativePattern=I})),define(n[247],i([0,1,5]),(function(e,t,n){\"use strict\";function i(e,t){if(e&&\"\"!==e[0]){var i=o(e,t,\"-\"),s=o(e,t,\"_\");return i&&!s?r(e,t,\"-\"):!i&&s?r(e,t,\"_\"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():n.containsUppercaseCharacter(e[0][0])?t[0].toUpperCase()+t.substr(1):t}return t}function o(e,t,n){return-1!==e[0].indexOf(n)&&-1!==t.indexOf(n)&&e[0].split(n).length===t.split(n).length}function r(e,t,n){var o=t.split(n),r=e[0].split(n),s=\"\";return o.forEach((function(e,t){s+=i([r[t]],e)+n})),s.slice(0,-1)}\nObject.defineProperty(t,\"__esModule\",{value:!0}),t.buildReplaceStringWithCasePreserved=i})),define(n[21],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n={number:\"number\",string:\"string\",undefined:\"undefined\",object:\"object\",function:\"function\"};function i(e){return typeof e===n.string||e instanceof String}function o(e){return!(typeof e!==n.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function r(e){return typeof e===n.undefined}function s(e){return r(e)||null===e}t.isArray=function(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==n.number||e.constructor!==Array)},t.isString=i,t.isObject=o,t.isNumber=function(e){return(typeof e===n.number||e instanceof Number)&&!isNaN(e)},t.isBoolean=function(e){return!0===e||!1===e},t.isUndefined=r,t.isUndefinedOrNull=s,t.assertType=function(e,t){if(!e)throw new Error(t?\"Unexpected type, expected '\"+t+\"'\":\"Unexpected type\")};var a=Object.prototype.hasOwnProperty;function l(e){\nreturn typeof e===n.function}function u(e,t){if(i(t)){if(typeof e!==t)throw new Error(\"argument does not match constraint: typeof \"+t)}else if(l(t)){try{if(e instanceof t)return}catch(e){}if(!s(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")}}function d(e){for(var t=[],n=Object.getPrototypeOf(e);Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}t.isEmptyObject=function(e){if(!o(e))return!1;for(var t in e)if(a.call(e,t))return!1;return!0},t.isFunction=l,t.validateConstraints=function(e,t){for(var n=Math.min(e.length,t.length),i=0;i<n;i++)u(e[i],t[i])},t.validateConstraint=u,t.getAllPropertyNames=d,t.getAllMethodNames=function(e){for(var t=[],n=0,i=d(e);n<i.length;n++){var o=i[n];\"function\"==typeof e[o]&&t.push(o)}return t},t.createProxyObject=function(e,t){for(var n=function(e){\nreturn function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},i={},o=0,r=e;o<r.length;o++){var s=r[o];i[s]=n(s)}return i},t.withNullAsUndefined=function(e){return null===e?void 0:e},t.withUndefinedAsNull=function(e){return void 0===e?null:e}})),define(n[31],i([0,1,21]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.deepClone=function e(t){if(!t||\"object\"!=typeof t)return t;if(t instanceof RegExp)return t;var n=Array.isArray(t)?[]:{};return Object.keys(t).forEach((function(i){t[i]&&\"object\"==typeof t[i]?n[i]=e(t[i]):n[i]=t[i]})),n},t.deepFreeze=function(e){if(!e||\"object\"!=typeof e)return e;for(var t=[e];t.length>0;){var n=t.shift();for(var o in Object.freeze(n),n)if(i.call(n,o)){var r=n[o];\"object\"!=typeof r||Object.isFrozen(r)||t.push(r)}}return e};var i=Object.prototype.hasOwnProperty;t.cloneAndChange=function(e,t){return function e(t,o,r){if(n.isUndefinedOrNull(t))return t;var s=o(t);if(void 0!==s)return s;if(n.isArray(t)){\nfor(var a=[],l=0,u=t;l<u.length;l++){var d=u[l];a.push(e(d,o,r))}return a}if(n.isObject(t)){if(r.has(t))throw new Error(\"Cannot clone recursive data-structure\");r.add(t);var c={};for(var h in t)i.call(t,h)&&(c[h]=e(t[h],o,r));return r.delete(t),c}return t}(e,t,new Set)},t.mixin=function e(t,i,o){return void 0===o&&(o=!0),n.isObject(t)?(n.isObject(i)&&Object.keys(i).forEach((function(r){r in t?o&&(n.isObject(t[r])&&n.isObject(i[r])?e(t[r],i[r],o):t[r]=i[r]):t[r]=i[r]})),t):i},t.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.forEach((function(t){return Object.keys(t).forEach((function(n){return e[n]=t[n]}))})),e},t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var i,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(i=0;i<t.length;i++)if(!e(t[i],n[i]))return!1}else{var r=[];for(o in t)r.push(o);r.sort();var s=[]\n;for(o in n)s.push(o);if(s.sort(),!e(r,s))return!1;for(i=0;i<r.length;i++)if(!e(t[r[i]],n[r[i]]))return!1}return!0},t.getOrDefault=function(e,t,n){var i=t(e);return void 0===i?n:i}})),define(n[133],i([0,1,31,100,5]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){this.supportCodicons=t,this.text=\"\",this.title=\"\",this.highlights=[],this.didEverRender=!1,this.domNode=document.createElement(\"span\"),this.domNode.className=\"monaco-highlighted-label\",e.appendChild(this.domNode)}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),e.prototype.set=function(t,i,o,r){void 0===i&&(i=[]),void 0===o&&(o=\"\"),t||(t=\"\"),r&&(t=e.escapeNewLines(t,i)),this.didEverRender&&this.text===t&&this.title===o&&n.equals(this.highlights,i)||(Array.isArray(i)||(i=[]),this.text=t,this.title=o,this.highlights=i,this.render())},e.prototype.render=function(){\nfor(var e=\"\",t=0,n=0,r=this.highlights;n<r.length;n++){var s=r[n];if(s.end!==s.start){if(t<s.start){e+=\"<span>\";var a=this.text.substring(t,s.start);e+=this.supportCodicons?i.renderCodicons(o.escape(a)):o.escape(a),e+=\"</span>\",t=s.end}s.extraClasses?e+='<span class=\"highlight '+s.extraClasses+'\">':e+='<span class=\"highlight\">';var l=this.text.substring(s.start,s.end);e+=this.supportCodicons?i.renderCodicons(o.escape(l)):o.escape(l),e+=\"</span>\",t=s.end}}if(t<this.text.length){e+=\"<span>\";l=this.text.substring(t);e+=this.supportCodicons?i.renderCodicons(o.escape(l)):o.escape(l),e+=\"</span>\"}this.domNode.innerHTML=e,this.title?this.domNode.title=this.title:this.domNode.removeAttribute(\"title\"),this.didEverRender=!0},e.escapeNewLines=function(e,t){var n=0,i=0;return e.replace(/\\r\\n|\\r|\\n/g,(function(e,o){i=\"\\r\\n\"===e?-1:0,o+=n;for(var r=0,s=t;r<s.length;r++){var a=s[r];a.end<=o||(a.start>=o&&(a.start+=i),a.end>=o&&(a.end+=i))}return n+=i,\"⏎\"}))},e}();t.HighlightedLabel=r})),\ndefine(n[179],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.toUint8=function(e){return e<0?0:e>255?255:0|e},t.toUint32=function(e){return e<0?0:e>4294967295?4294967295:0|e}})),define(n[25],i([0,1,16]),(function(e,t,n){\"use strict\";var i;Object.defineProperty(t,\"__esModule\",{value:!0});var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"\",u=\"/\",d=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,c=function(){function e(e,t,n,i,r,d){void 0===d&&(d=!1),\"object\"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,d),this.authority=t||l,this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||l),this.query=i||l,this.fragment=r||l,function(e,t){\nif(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,d))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return v(this)},enumerable:!0,\nconfigurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,o=e.query,r=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===i?i=this.path:null===i&&(i=l),void 0===o?o=this.query:null===o&&(o=l),void 0===r?r=this.fragment:null===r&&(r=l),t===this.scheme&&n===this.authority&&i===this.path&&o===this.query&&r===this.fragment?this:new p(t,n,i,o,r)},e.parse=function(e,t){void 0===t&&(t=!1);var n=d.exec(e);return n?new p(n[2]||l,C(n[4]||l),C(n[5]||l),C(n[7]||l),C(n[9]||l),t):new p(l,l,l,l,l)},e.file=function(e){var t=l;if(n.isWindows&&(e=e.replace(/\\\\/g,u)),e[0]===u&&e[1]===u){var i=e.indexOf(u,2);-1===i?(t=e.substring(2),e=u):(t=e.substring(2,i),e=e.substring(i)||u)}return new p(\"file\",t,e,l,l)},e.from=function(e){return new p(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),_(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){\nif(t instanceof e)return t;var n=new p(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=c;var h=n.isWindows?1:void 0,p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return r(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=v(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?_(this,!0):(this._formatted||(this._formatted=_(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(c),g=((i={})[58]=\"%3A\",i[47]=\"%2F\",i[63]=\"%3F\",i[35]=\"%23\",i[91]=\"%5B\",i[93]=\"%5D\",i[64]=\"%40\",i[33]=\"%21\",\ni[36]=\"%24\",i[38]=\"%26\",i[39]=\"%27\",i[40]=\"%28\",i[41]=\"%29\",i[42]=\"%2A\",i[43]=\"%2B\",i[44]=\"%2C\",i[59]=\"%3B\",i[61]=\"%3D\",i[32]=\"%20\",i);function f(e,t){for(var n=void 0,i=-1,o=0;o<e.length;o++){var r=e.charCodeAt(o);if(r>=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||45===r||46===r||95===r||126===r||t&&47===r)-1!==i&&(n+=encodeURIComponent(e.substring(i,o)),i=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var s=g[r];void 0!==s?(-1!==i&&(n+=encodeURIComponent(e.substring(i,o)),i=-1),n+=s):-1===i&&(i=o)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=g[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function v(e){var t\n;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,n.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}function _(e,t){var n=t?m:f,i=\"\",o=e.scheme,r=e.authority,s=e.path,a=e.query,l=e.fragment;if(o&&(i+=o,i+=\":\"),(r||\"file\"===o)&&(i+=u,i+=u),r){var d=r.indexOf(\"@\");if(-1!==d){var c=r.substr(0,d);r=r.substr(d+1),-1===(d=c.indexOf(\":\"))?i+=n(c,!1):(i+=n(c.substr(0,d),!1),i+=\":\",i+=n(c.substr(d+1),!1)),i+=\"@\"}-1===(d=(r=r.toLowerCase()).indexOf(\":\"))?i+=n(r,!1):(i+=n(r.substr(0,d),!1),i+=r.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}i+=n(s,!0)}\nreturn a&&(i+=\"?\",i+=n(a,!1)),l&&(i+=\"#\",i+=t?l:f(l,!1)),i}var y=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(e){return e.match(y)?e.replace(y,(function(e){return function e(t){try{return decodeURIComponent(t)}catch(n){return t.length>3?t.substr(0,3)+e(t.substr(3)):t}}(e)})):e}})),define(n[180],i([0,1,25]),(function(e,t,n){\"use strict\";function i(e,t){if(void 0===t&&(t=0),!e||t>200)return e;if(\"object\"==typeof e){switch(e.$mid){case 1:return n.URI.revive(e);case 2:return new RegExp(e.source,e.flags)}for(var o in e)Object.hasOwnProperty.call(e,o)&&(e[o]=i(e[o],t+1))}return e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.parse=function(e){var t=JSON.parse(e);return t=i(t)},t.revive=i})),define(n[46],i([0,1,25,16]),(function(e,t,n,i){\"use strict\";var o;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.inMemory=\"inmemory\",e.vscode=\"vscode\",e.internal=\"private\",e.walkThrough=\"walkThrough\",e.walkThroughSnippet=\"walkThroughSnippet\",e.http=\"http\",e.https=\"https\",e.file=\"file\",e.mailto=\"mailto\",\ne.untitled=\"untitled\",e.data=\"data\",e.command=\"command\",e.vscodeRemote=\"vscode-remote\",e.vscodeRemoteResource=\"vscode-remote-resource\",e.userData=\"vscode-userdata\"}(o=t.Schemas||(t.Schemas={}));var r=function(){function e(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema=\"http\",this._delegate=null}return e.prototype.setPreferredWebSchema=function(e){this._preferredWebSchema=e},e.prototype.rewrite=function(e){if(this._delegate)return this._delegate(e);var t=e.authority,r=this._hosts[t];r&&-1!==r.indexOf(\":\")&&(r=\"[\"+r+\"]\");var s=this._ports[t],a=this._connectionTokens[t],l=\"path=\"+encodeURIComponent(e.path);return\"string\"==typeof a&&(l+=\"&tkn=\"+encodeURIComponent(a)),n.URI.from({scheme:i.isWeb?this._preferredWebSchema:o.vscodeRemoteResource,authority:r+\":\"+s,path:\"/vscode-remote-resource\",query:l})},e}();t.RemoteAuthorities=new r}));a=this&&this.__spreadArrays||function(){\nfor(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[6],i([0,1,24,52,56,45,15,10,4,2,16,19,46,88]),(function(e,t,n,i,o,s,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.clearNode=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},t.removeNode=function(e){e.parentNode&&e.parentNode.removeChild(e)},t.isInDOM=function(e){for(;e;){if(e===document.body)return!0;e=e.parentNode||e.host}return!1};var v=new(function(){function e(){this._lastStart=-1,this._lastEnd=-1}return e.prototype._findClassName=function(e,t){var n=e.className;if(n){t=t.trim();var i=n.length,o=t.length;if(0!==o)if(i<o)this._lastStart=-1;else{if(n===t)return this._lastStart=0,void(this._lastEnd=i);for(var r,s=-1;(s=n.indexOf(t,s+1))>=0;){if(r=s+o,(0===s||32===n.charCodeAt(s-1))&&32===n.charCodeAt(r))return this._lastStart=s,void(this._lastEnd=r+1)\n;if(s>0&&32===n.charCodeAt(s-1)&&r===i)return this._lastStart=s-1,void(this._lastEnd=r);if(0===s&&r===i)return this._lastStart=0,void(this._lastEnd=r)}this._lastStart=-1}else this._lastStart=-1}else this._lastStart=-1},e.prototype.hasClass=function(e,t){return this._findClassName(e,t),-1!==this._lastStart},e.prototype.addClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.addClass(e,n)}))}))},e.prototype.addClass=function(e,t){e.className?(this._findClassName(e,t),-1===this._lastStart&&(e.className=e.className+\" \"+t)):e.className=t},e.prototype.removeClass=function(e,t){this._findClassName(e,t),-1!==this._lastStart&&(e.className=e.className.substring(0,this._lastStart)+e.className.substring(this._lastEnd))},e.prototype.removeClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.removeClass(e,n)}))\n}))},e.prototype.toggleClass=function(e,t,n){this._findClassName(e,t),-1===this._lastStart||void 0!==n&&n||this.removeClass(e,t),-1!==this._lastStart||void 0!==n&&!n||this.addClass(e,t)},e}()),_=new(function(){function e(){}return e.prototype.hasClass=function(e,t){return Boolean(t)&&e.classList&&e.classList.contains(t)},e.prototype.addClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.addClass(e,n)}))}))},e.prototype.addClass=function(e,t){t&&e.classList&&e.classList.add(t)},e.prototype.removeClass=function(e,t){t&&e.classList&&e.classList.remove(t)},e.prototype.removeClasses=function(e){for(var t=this,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];n.forEach((function(n){return n.split(\" \").forEach((function(n){return t.removeClass(e,n)}))}))},e.prototype.toggleClass=function(e,t,n){e.classList&&e.classList.toggle(t,n)},e}()),y=n.isIE?v:_;t.hasClass=y.hasClass.bind(y),\nt.addClass=y.addClass.bind(y),t.addClasses=y.addClasses.bind(y),t.removeClass=y.removeClass.bind(y),t.removeClasses=y.removeClasses.bind(y),t.toggleClass=y.toggleClass.bind(y);var C=function(){function e(e,t,n,i){this._node=e,this._type=t,this._handler=n,this._options=i||!1,this._node.addEventListener(this._type,this._handler,this._options)}return e.prototype.dispose=function(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)},e}();function b(e,t,n,i){return new C(e,t,n,i)}function S(e){return function(t){return e(new s.StandardMouseEvent(t))}}function w(e,n,i){return b(e,p.isIOS&&m.BrowserFeatures.pointerEvents?t.EventType.POINTER_DOWN:t.EventType.MOUSE_DOWN,n,i)}t.addDisposableListener=b,t.addStandardDisposableListener=function(e,t,n,i){var r=n;return\"click\"===t||\"mousedown\"===t?r=S(n):\"keydown\"!==t&&\"keypress\"!==t&&\"keyup\"!==t||(r=function(e){return function(t){return e(new o.StandardKeyboardEvent(t))}}(n)),b(e,t,r,i)},\nt.addStandardDisposableGenericMouseDownListner=function(e,t,n){return w(e,S(t),n)},t.addDisposableGenericMouseDownListner=w,t.addDisposableGenericMouseUpListner=function(e,n,i){return b(e,p.isIOS&&m.BrowserFeatures.pointerEvents?t.EventType.POINTER_UP:t.EventType.MOUSE_UP,n,i)},t.addDisposableNonBubblingMouseOutListener=function(e,t){return b(e,\"mouseout\",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))},t.addDisposableNonBubblingPointerOutListener=function(e,t){return b(e,\"pointerout\",(function(n){for(var i=n.relatedTarget;i&&i!==e;)i=i.parentNode;i!==e&&t(n)}))};var E=null;var L,D,N,x,I,M=function(){function e(e,t){void 0===t&&(t=0),this._runner=e,this.priority=t,this._canceled=!1}return e.prototype.dispose=function(){this._canceled=!0},e.prototype.execute=function(){if(!this._canceled)try{this._runner()}catch(e){d.onUnexpectedError(e)}},e.sort=function(e,t){return t.priority-e.priority},e}();L=[],D=null,N=!1,x=!1,I=function(){for(N=!1,D=L,L=[],x=!0;D.length>0;)D.sort(M.sort),\nD.shift().execute();x=!1},t.scheduleAtNextAnimationFrame=function(e,t){void 0===t&&(t=0);var n,i=new M(e,t);return L.push(i),N||(N=!0,n=I,E||(E=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout((function(){return e((new Date).getTime())}),0)}),E.call(self,n)),i},t.runAtThisOrScheduleAtNextAnimationFrame=function(e,n){if(x){var i=new M(e,n);return D.push(i),i}return t.scheduleAtNextAnimationFrame(e,n)};var k=16,T=function(e,t){return t},R=function(e){function t(t,n,i,o,r){void 0===o&&(o=T),void 0===r&&(r=k);var s=e.call(this)||this,a=null,l=0,d=s._register(new u.TimeoutTimer),c=function(){l=(new Date).getTime(),i(a),a=null};return s._register(b(t,n,(function(e){a=o(a,e);var t=(new Date).getTime()-l;t>=r?(d.cancel(),c()):d.setIfNotSet(c,r-t)}))),s}return r(t,e),t}(h.Disposable);function O(e){return document.defaultView.getComputedStyle(e,null)}\nt.addDisposableThrottledListener=function(e,t,n,i,o){return new R(e,t,n,i,o)},t.getComputedStyle=O,t.getClientArea=function(e){if(e!==document.body)return new A(e.clientWidth,e.clientHeight);if(p.isIOS&&window.visualViewport){var t=window.visualViewport.width,i=window.visualViewport.height-(n.isStandalone?24:0);return new A(t,i)}if(window.innerWidth&&window.innerHeight)return new A(window.innerWidth,window.innerHeight);if(document.body&&document.body.clientWidth&&document.body.clientHeight)return new A(document.body.clientWidth,document.body.clientHeight);if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight)return new A(document.documentElement.clientWidth,document.documentElement.clientHeight);throw new Error(\"Unable to figure out browser width and height\")};var P=function(){function e(){}return e.convertToPixels=function(e,t){return parseFloat(t)||0},e.getDimension=function(t,n,i){var o=O(t),r=\"0\"\n;return o&&(r=o.getPropertyValue?o.getPropertyValue(n):o.getAttribute(i)),e.convertToPixels(t,r)},e.getBorderLeftWidth=function(t){return e.getDimension(t,\"border-left-width\",\"borderLeftWidth\")},e.getBorderRightWidth=function(t){return e.getDimension(t,\"border-right-width\",\"borderRightWidth\")},e.getBorderTopWidth=function(t){return e.getDimension(t,\"border-top-width\",\"borderTopWidth\")},e.getBorderBottomWidth=function(t){return e.getDimension(t,\"border-bottom-width\",\"borderBottomWidth\")},e.getPaddingLeft=function(t){return e.getDimension(t,\"padding-left\",\"paddingLeft\")},e.getPaddingRight=function(t){return e.getDimension(t,\"padding-right\",\"paddingRight\")},e.getPaddingTop=function(t){return e.getDimension(t,\"padding-top\",\"paddingTop\")},e.getPaddingBottom=function(t){return e.getDimension(t,\"padding-bottom\",\"paddingBottom\")},e.getMarginLeft=function(t){return e.getDimension(t,\"margin-left\",\"marginLeft\")},e.getMarginTop=function(t){return e.getDimension(t,\"margin-top\",\"marginTop\")},e.getMarginRight=function(t){\nreturn e.getDimension(t,\"margin-right\",\"marginRight\")},e.getMarginBottom=function(t){return e.getDimension(t,\"margin-bottom\",\"marginBottom\")},e}(),A=function(e,t){this.width=e,this.height=t};function F(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function W(e){return e&&!!e.host&&!!e.mode}function B(e){for(;e.parentNode;){if(e===document.body)return null;e=e.parentNode}return W(e)?e:null}function V(e){void 0===e&&(e=document.getElementsByTagName(\"head\")[0]);var t=document.createElement(\"style\");return t.type=\"text/css\",t.media=\"screen\",e.appendChild(t),t}t.Dimension=A,t.getTopLeftOffset=function(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var o=W(e)?null:O(e);o&&(i-=\"rtl\"!==o.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=P.getBorderLeftWidth(e),n+=P.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}},t.getDomNodePagePosition=function(e){\nvar n=e.getBoundingClientRect();return{left:n.left+t.StandardWindow.scrollX,top:n.top+t.StandardWindow.scrollY,width:n.width,height:n.height}},t.StandardWindow=new(function(){function e(){}return Object.defineProperty(e.prototype,\"scrollX\",{get:function(){return\"number\"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"scrollY\",{get:function(){return\"number\"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop},enumerable:!0,configurable:!0}),e}()),t.getTotalWidth=function(e){var t=P.getMarginLeft(e)+P.getMarginRight(e);return e.offsetWidth+t},t.getContentWidth=function(e){var t=P.getBorderLeftWidth(e)+P.getBorderRightWidth(e),n=P.getPaddingLeft(e)+P.getPaddingRight(e);return e.offsetWidth-t-n},t.getContentHeight=function(e){var t=P.getBorderTopWidth(e)+P.getBorderBottomWidth(e),n=P.getPaddingTop(e)+P.getPaddingBottom(e);return e.offsetHeight-t-n},\nt.getTotalHeight=function(e){var t=P.getMarginTop(e)+P.getMarginBottom(e);return e.offsetHeight+t},t.isAncestor=F,t.findParentWithClass=function(e,n,i){for(;e&&e.nodeType===e.ELEMENT_NODE;){if(t.hasClass(e,n))return e;if(i)if(\"string\"==typeof i){if(t.hasClass(e,i))return null}else if(e===i)return null;e=e.parentNode}return null},t.isShadowRoot=W,t.isInShadowDOM=function(e){return!!B(e)},t.getShadowRoot=B,t.createStyleSheet=V;var z=null;function H(){return z||(z=V()),z}t.createCSSRule=function(e,t,n){void 0===n&&(n=H()),n&&t&&n.sheet.insertRule(e+\"{\"+t+\"}\",0)},t.removeCSSRulesContainingSelector=function(e,t){if(void 0===t&&(t=H()),t){for(var n=function(e){return e&&e.sheet&&e.sheet.rules?e.sheet.rules:e&&e.sheet&&e.sheet.cssRules?e.sheet.cssRules:[]}(t),i=[],o=0;o<n.length;o++){-1!==n[o].selectorText.indexOf(e)&&i.push(o)}for(o=i.length-1;o>=0;o--)t.sheet.deleteRule(i[o])}},t.isHTMLElement=function(e){\nreturn\"object\"==typeof HTMLElement?e instanceof HTMLElement:e&&\"object\"==typeof e&&1===e.nodeType&&\"string\"==typeof e.nodeName},t.EventType={CLICK:\"click\",DBLCLICK:\"dblclick\",MOUSE_UP:\"mouseup\",MOUSE_DOWN:\"mousedown\",MOUSE_OVER:\"mouseover\",MOUSE_MOVE:\"mousemove\",MOUSE_OUT:\"mouseout\",MOUSE_ENTER:\"mouseenter\",MOUSE_LEAVE:\"mouseleave\",POINTER_UP:\"pointerup\",POINTER_DOWN:\"pointerdown\",POINTER_MOVE:\"pointermove\",CONTEXT_MENU:\"contextmenu\",WHEEL:\"wheel\",KEY_DOWN:\"keydown\",KEY_PRESS:\"keypress\",KEY_UP:\"keyup\",LOAD:\"load\",BEFORE_UNLOAD:\"beforeunload\",UNLOAD:\"unload\",ABORT:\"abort\",ERROR:\"error\",RESIZE:\"resize\",SCROLL:\"scroll\",FULLSCREEN_CHANGE:\"fullscreenchange\",WK_FULLSCREEN_CHANGE:\"webkitfullscreenchange\",SELECT:\"select\",CHANGE:\"change\",SUBMIT:\"submit\",RESET:\"reset\",FOCUS:\"focus\",FOCUS_IN:\"focusin\",FOCUS_OUT:\"focusout\",BLUR:\"blur\",INPUT:\"input\",STORAGE:\"storage\",DRAG_START:\"dragstart\",DRAG:\"drag\",DRAG_ENTER:\"dragenter\",DRAG_LEAVE:\"dragleave\",DRAG_OVER:\"dragover\",DROP:\"drop\",DRAG_END:\"dragend\",\nANIMATION_START:n.isWebKit?\"webkitAnimationStart\":\"animationstart\",ANIMATION_END:n.isWebKit?\"webkitAnimationEnd\":\"animationend\",ANIMATION_ITERATION:n.isWebKit?\"webkitAnimationIteration\":\"animationiteration\"},t.EventHelper={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}},t.saveParentsScrollTop=function(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t},t.restoreParentsScrollTop=function(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode};var K=function(e){function n(n){var o=e.call(this)||this;o._onDidFocus=o._register(new c.Emitter),o.onDidFocus=o._onDidFocus.event,o._onDidBlur=o._register(new c.Emitter),o.onDidBlur=o._onDidBlur.event;var r=F(document.activeElement,n),s=!1,a=function(){s=!1,r||(r=!0,o._onDidFocus.fire())},l=function(){r&&(s=!0,window.setTimeout((function(){s&&(s=!1,r=!1,o._onDidBlur.fire())}),0))}\n;return o._refreshStateHandler=function(){F(document.activeElement,n)!==r&&(r?l():a())},o._register(i.domEvent(n,t.EventType.FOCUS,!0)(a)),o._register(i.domEvent(n,t.EventType.BLUR,!0)(l)),o}return r(n,e),n}(h.Disposable);t.trackFocus=function(e){return new K(e)},t.append=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.forEach((function(t){return e.appendChild(t)})),t[t.length-1]};var U,j=/([\\w\\-]+)?(#([\\w\\-]+))?((.([\\w\\-]+))*)/;function q(e,t,n){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var r=j.exec(t);if(!r)throw new Error(\"Bad use of emmet\");n=l({},n||{});var s,a=r[1]||\"div\";return s=e!==U.HTML?document.createElementNS(e,a):document.createElement(a),r[3]&&(s.id=r[3]),r[4]&&(s.className=r[4].replace(/\\./g,\" \").trim()),Object.keys(n).forEach((function(e){var t=n[e];void 0!==t&&(/^on\\w+$/.test(e)?s[e]=t:\"selected\"===e?t&&s.setAttribute(e,\"true\"):s.setAttribute(e,t))})),g.coalesce(i).forEach((function(e){\ne instanceof Node?s.appendChild(e):s.appendChild(document.createTextNode(e))})),s}function G(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return q.apply(void 0,a([U.HTML,e,t],n))}function Y(e){return e&&f.Schemas.vscodeRemote===e.scheme?f.RemoteAuthorities.rewrite(e):e}!function(e){e.HTML=\"http://www.w3.org/1999/xhtml\",e.SVG=\"http://www.w3.org/2000/svg\"}(U=t.Namespace||(t.Namespace={})),t.$=G,G.SVG=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return q.apply(void 0,a([U.SVG,e,t],n))},t.show=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,i=e;n<i.length;n++){var o=i[n];o.style.display=\"\",o.removeAttribute(\"aria-hidden\")}},t.hide=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,i=e;n<i.length;n++){var o=i[n];o.style.display=\"none\",o.setAttribute(\"aria-hidden\",\"true\")}},t.removeTabIndexAndUpdateFocus=function(e){if(e&&e.hasAttribute(\"tabIndex\")){if(document.activeElement===e){var t=function(e,t){\nfor(;e&&e.nodeType===e.ELEMENT_NODE;){if(e instanceof HTMLElement&&e.hasAttribute(t))return e;e=e.parentNode}return null}(e.parentElement,\"tabIndex\");t&&t.focus()}e.removeAttribute(\"tabindex\")}},t.getElementsByTagName=function(e){return Array.prototype.slice.call(document.getElementsByTagName(e),0)},t.computeScreenAwareSize=function(e){var t=window.devicePixelRatio*e;return Math.max(1,Math.floor(t))/window.devicePixelRatio},t.windowOpenNoOpener=function(e){if(p.isNative||n.isEdgeWebView)window.open(e);else{var t=window.open();t&&(t.opener=null,t.location.href=e)}},t.animate=function(e){var n=function(){e(),i=t.scheduleAtNextAnimationFrame(n)},i=t.scheduleAtNextAnimationFrame(n);return h.toDisposable((function(){return i.dispose()}))},f.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href)?\"https\":\"http\"),t.asDomUri=Y,t.asCSSUrl=function(e){return e?\"url('\"+Y(e).toString(!0).replace(/'/g,\"%27\")+\"')\":\"url('')\"}})),define(n[28],i([0,1,6]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.domNode=e,this._maxWidth=-1,this._width=-1,this._height=-1,this._top=-1,this._left=-1,this._bottom=-1,this._right=-1,this._fontFamily=\"\",this._fontWeight=\"\",this._fontSize=-1,this._fontFeatureSettings=\"\",this._lineHeight=-1,this._letterSpacing=-100,this._className=\"\",this._display=\"\",this._position=\"\",this._visibility=\"\",this._backgroundColor=\"\",this._layerHint=!1,this._contain=\"none\"}return e.prototype.setMaxWidth=function(e){this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth+\"px\")},e.prototype.setWidth=function(e){this._width!==e&&(this._width=e,this.domNode.style.width=this._width+\"px\")},e.prototype.setHeight=function(e){this._height!==e&&(this._height=e,this.domNode.style.height=this._height+\"px\")},e.prototype.setTop=function(e){this._top!==e&&(this._top=e,this.domNode.style.top=this._top+\"px\")},e.prototype.unsetTop=function(){-1!==this._top&&(this._top=-1,this.domNode.style.top=\"\")},\ne.prototype.setLeft=function(e){this._left!==e&&(this._left=e,this.domNode.style.left=this._left+\"px\")},e.prototype.setBottom=function(e){this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom+\"px\")},e.prototype.setRight=function(e){this._right!==e&&(this._right=e,this.domNode.style.right=this._right+\"px\")},e.prototype.setFontFamily=function(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)},e.prototype.setFontWeight=function(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)},e.prototype.setFontSize=function(e){this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize+\"px\")},e.prototype.setFontFeatureSettings=function(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)},e.prototype.setLineHeight=function(e){this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight+\"px\")},\ne.prototype.setLetterSpacing=function(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing+\"px\")},e.prototype.setClassName=function(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)},e.prototype.toggleClassName=function(e,t){n.toggleClass(this.domNode,e,t),this._className=this.domNode.className},e.prototype.setDisplay=function(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)},e.prototype.setPosition=function(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)},e.prototype.setVisibility=function(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)},e.prototype.setBackgroundColor=function(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)},e.prototype.setLayerHinting=function(e){this._layerHint!==e&&(this._layerHint=e,\nthis.domNode.style.transform=this._layerHint?\"translate3d(0px, 0px, 0px)\":\"\")},e.prototype.setContain=function(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)},e.prototype.setAttribute=function(e,t){this.domNode.setAttribute(e,t)},e.prototype.removeAttribute=function(e){this.domNode.removeAttribute(e)},e.prototype.appendChild=function(e){this.domNode.appendChild(e.domNode)},e.prototype.removeChild=function(e){this.domNode.removeChild(e.domNode)},e}();t.FastDomNode=i,t.createFastDomNode=function(e){return new i(e)}})),define(n[134],i([0,1,6]),(function(e,t,n){\"use strict\";function i(e){var t=e.inline?\"span\":\"div\",n=document.createElement(t);return e.className&&(n.className=e.className),n}Object.defineProperty(t,\"__esModule\",{value:!0}),t.renderText=function(e,t){void 0===t&&(t={});var n=i(t);return n.textContent=e,n},t.renderFormattedText=function(e,t){void 0===t&&(t={});var s=i(t);return function e(t,i,o){var r\n;if(2===i.type)r=document.createTextNode(i.content||\"\");else if(3===i.type)r=document.createElement(\"b\");else if(4===i.type)r=document.createElement(\"i\");else if(5===i.type&&o){var s=document.createElement(\"a\");s.href=\"#\",o.disposeables.add(n.addStandardDisposableListener(s,\"click\",(function(e){o.callback(String(i.index),e)}))),r=s}else 7===i.type?r=document.createElement(\"br\"):1===i.type&&(r=t);r&&t!==r&&t.appendChild(r);r&&Array.isArray(i.children)&&i.children.forEach((function(t){e(r,t,o)}))}(s,function(e){var t={type:1,children:[]},n=0,i=t,s=[],a=new o(e);for(;!a.eos();){var l=a.next(),u=\"\\\\\"===l&&0!==r(a.peek());if(u&&(l=a.next()),u||0===r(l)||l!==a.peek())if(\"\\n\"===l)2===i.type&&(i=s.pop()),i.children.push({type:7});else if(2!==i.type){var d={type:2,content:l};i.children.push(d),s.push(i),i=d}else i.content+=l;else{a.advance(),2===i.type&&(i=s.pop());var c=r(l);if(i.type===c||5===i.type&&6===c)i=s.pop();else{var h={type:c,children:[]};5===c&&(h.index=n,n++),i.children.push(h),s.push(i),i=h}}}\n2===i.type&&(i=s.pop());s.length;return t}(e),t.actionHandler),s},t.createElement=i;var o=function(){function e(e){this.source=e,this.index=0}return e.prototype.eos=function(){return this.index>=this.source.length},e.prototype.next=function(){var e=this.peek();return this.advance(),e},e.prototype.peek=function(){return this.source[this.index]},e.prototype.advance=function(){this.index++},e}();function r(e){switch(e){case\"*\":return 3;case\"_\":return 4;case\"[\":return 5;case\"]\":return 6;default:return 0}}})),define(n[78],i([0,1,6,16,24,174,45,2,88]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.standardMouseMoveMerger=function(e,t){var n=new s.StandardMouseEvent(t);return n.preventDefault(),{leftButton:n.leftButton,buttons:n.buttons,posx:n.posx,posy:n.posy}};var u=function(){function e(){this._hooks=new a.DisposableStore,this._mouseMoveEventMerger=null,this._mouseMoveCallback=null,this._onStopCallback=null}return e.prototype.dispose=function(){\nthis.stopMonitoring(!1),this._hooks.dispose()},e.prototype.stopMonitoring=function(e){if(this.isMonitoring()){this._hooks.clear(),this._mouseMoveEventMerger=null,this._mouseMoveCallback=null;var t=this._onStopCallback;this._onStopCallback=null,e&&t&&t()}},e.prototype.isMonitoring=function(){return!!this._mouseMoveEventMerger},e.prototype.startMonitoring=function(e,t,a,u,d){var c=this;if(!this.isMonitoring()){this._mouseMoveEventMerger=a,this._mouseMoveCallback=u,this._onStopCallback=d;var h=r.IframeUtils.getSameOriginWindowChain(),p=i.isIOS&&l.BrowserFeatures.pointerEvents?\"pointermove\":\"mousemove\",g=i.isIOS&&l.BrowserFeatures.pointerEvents?\"pointerup\":\"mouseup\",f=h.map((function(e){return e.window.document})),m=n.getShadowRoot(e);m&&f.unshift(m);for(var v=0,_=f;v<_.length;v++){var y=_[v];this._hooks.add(n.addDisposableThrottledListener(y,p,(function(e){o.isIE||e.buttons===t?c._mouseMoveCallback(e):c.stopMonitoring(!0)}),(function(e,t){return c._mouseMoveEventMerger(e,t)}))),\nthis._hooks.add(n.addDisposableListener(y,g,(function(e){return c.stopMonitoring(!0)})))}if(r.IframeUtils.hasDifferentOriginAncestor()){var C=h[h.length-1];this._hooks.add(n.addDisposableListener(C.window.document,\"mouseout\",(function(e){\"html\"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&c.stopMonitoring(!0)}))),this._hooks.add(n.addDisposableListener(C.window.document,\"mouseover\",(function(e){\"html\"===new s.StandardMouseEvent(e).target.tagName.toLowerCase()&&c.stopMonitoring(!0)}))),this._hooks.add(n.addDisposableListener(C.window.document.body,\"mouseleave\",(function(e){c.stopMonitoring(!0)})))}}},e}();t.GlobalMouseMoveMonitor=u})),define(n[248],i([0,1,6,134,10,75,127,612,613,180,31,5,25,46,100]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.renderMarkdown=function(e,t){void 0===t&&(t={});var f,m=i.createElement(t),v=function(t){var n;try{n=u.parse(decodeURIComponent(t))}catch(e){}return n?(n=d.cloneAndChange(n,(function(t){\nreturn e.uris&&e.uris[t]?h.URI.revive(e.uris[t]):void 0})),encodeURIComponent(JSON.stringify(n))):t},_=function(t,i){var o=e.uris&&e.uris[t];if(!o)return t;var r=h.URI.revive(o);return h.URI.parse(t).toString()===r.toString()?t:(i&&(r=n.asDomUri(r)),r.query&&(r=r.with({query:v(r.query)})),r.toString(!0))},y=new Promise((function(e){return f=e})),C=new a.Renderer;C.image=function(e,t,n){var i,o=[],s=[];return e&&(e=(i=r.parseHrefAndDimensions(e)).href,o=i.dimensions,e=_(e,!0),s.push('src=\"'+e+'\"')),n&&s.push('alt=\"'+n+'\"'),t&&s.push('title=\"'+t+'\"'),o.length&&(s=s.concat(o)),\"<img \"+s.join(\" \")+\">\"},C.link=function(t,n,i){return t===i&&(i=r.removeMarkdownEscapes(i)),t=_(t,!1),n=r.removeMarkdownEscapes(n),\n!(t=r.removeMarkdownEscapes(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted||t.match(/^command:(\\/\\/\\/)?_workbench\\.downloadResource/i)?i:'<a href=\"#\" data-href=\"'+(t=t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#39;\"))+'\" title=\"'+(n||t)+'\">'+i+\"</a>\"},C.paragraph=function(t){return\"<p>\"+(e.supportThemeIcons?g.renderCodicons(t):t)+\"</p>\"},t.codeBlockRenderer&&(C.code=function(e,n){var i=t.codeBlockRenderer(n,e),o=s.defaultGenerator.nextId(),r=Promise.all([i,y]).then((function(e){var t=e[0],n=m.querySelector('div[data-code=\"'+o+'\"]');n&&(n.innerHTML=t)})).catch((function(e){}));return t.codeBlockRenderCallback&&r.then(t.codeBlockRenderCallback),'<div class=\"code\" data-code=\"'+o+'\">'+c.escape(e)+\"</div>\"});var b=t.actionHandler;b&&b.disposeables.add(n.addStandardDisposableListener(m,\"click\",(function(e){var t=e.target;if(\"A\"===t.tagName||(t=t.parentElement)&&\"A\"===t.tagName)try{var n=t.dataset.href;n&&b.callback(n,e)}catch(e){\no.onUnexpectedError(e)}finally{e.preventDefault()}})));var S={sanitize:!0,renderer:C},w=[p.Schemas.http,p.Schemas.https,p.Schemas.mailto,p.Schemas.data,p.Schemas.file,p.Schemas.vscodeRemote,p.Schemas.vscodeRemoteResource];e.isTrusted&&w.push(p.Schemas.command);var E=a.parse(e.supportThemeIcons?g.markdownEscapeEscapedCodicons(e.value):e.value,S);return m.innerHTML=l.insane(E,{allowedSchemes:w,allowedAttributes:{a:[\"href\",\"name\",\"target\",\"data-href\"],iframe:[\"allowfullscreen\",\"frameborder\",\"src\"],img:[\"src\",\"title\",\"alt\",\"width\",\"height\"],div:[\"class\",\"data-code\"],span:[\"class\"]}}),f(),m}}));var h=this&&this.__decorate||function(e,t,n,i){var o,r=arguments.length,s=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(r<3?o(s):r>3?o(t,n,s):o(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s};define(n[57],i([0,1,19,2,6,101]),(function(e,t,n,i,o,s){\"use strict\";var a\n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Tap=\"-monaco-gesturetap\",e.Change=\"-monaco-gesturechange\",e.Start=\"-monaco-gesturestart\",e.End=\"-monaco-gesturesend\",e.Contextmenu=\"-monaco-gesturecontextmenu\"}(a=t.EventType||(t.EventType={}));var l=function(e){function t(){var t=e.call(this)||this;return t.dispatched=!1,t.activeTouches={},t.handle=null,t.targets=[],t.ignoreTargets=[],t._lastSetTapCountTime=0,t._register(o.addDisposableListener(document,\"touchstart\",(function(e){return t.onTouchStart(e)}))),t._register(o.addDisposableListener(document,\"touchend\",(function(e){return t.onTouchEnd(e)}))),t._register(o.addDisposableListener(document,\"touchmove\",(function(e){return t.onTouchMove(e)}))),t}return r(t,e),t.addTarget=function(e){return t.isTouchDevice()?(t.INSTANCE||(t.INSTANCE=new t),t.INSTANCE.targets.push(e),{dispose:function(){t.INSTANCE.targets=t.INSTANCE.targets.filter((function(t){return t!==e}))}}):i.Disposable.None},t.ignoreTarget=function(e){\nreturn t.isTouchDevice()?(t.INSTANCE||(t.INSTANCE=new t),t.INSTANCE.ignoreTargets.push(e),{dispose:function(){t.INSTANCE.ignoreTargets=t.INSTANCE.ignoreTargets.filter((function(t){return t!==e}))}}):i.Disposable.None},t.isTouchDevice=function(){return\"ontouchstart\"in window||navigator.maxTouchPoints>0||window.navigator.msMaxTouchPoints>0},t.prototype.dispose=function(){this.handle&&(this.handle.dispose(),this.handle=null),e.prototype.dispose.call(this)},t.prototype.onTouchStart=function(e){var t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(var n=0,i=e.targetTouches.length;n<i;n++){var o=e.targetTouches.item(n);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};var r=this.newGestureEvent(a.Start,o.target);r.pageX=o.pageX,r.pageY=o.pageY,this.dispatchEvent(r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},\nt.prototype.onTouchEnd=function(e){for(var i=Date.now(),o=Object.keys(this.activeTouches).length,r=function(r,l){var u=e.changedTouches.item(r);if(!s.activeTouches.hasOwnProperty(String(u.identifier)))return console.warn(\"move of an UNKNOWN touch\",u),\"continue\";var d=s.activeTouches[u.identifier],c=Date.now()-d.initialTimeStamp;if(c<t.HOLD_DELAY&&Math.abs(d.initialPageX-n.tail(d.rollingPageX))<30&&Math.abs(d.initialPageY-n.tail(d.rollingPageY))<30)(h=s.newGestureEvent(a.Tap,d.initialTarget)).pageX=n.tail(d.rollingPageX),h.pageY=n.tail(d.rollingPageY),s.dispatchEvent(h);else if(c>=t.HOLD_DELAY&&Math.abs(d.initialPageX-n.tail(d.rollingPageX))<30&&Math.abs(d.initialPageY-n.tail(d.rollingPageY))<30){var h;(h=s.newGestureEvent(a.Contextmenu,d.initialTarget)).pageX=n.tail(d.rollingPageX),h.pageY=n.tail(d.rollingPageY),s.dispatchEvent(h)}else if(1===o){\nvar p=n.tail(d.rollingPageX),g=n.tail(d.rollingPageY),f=n.tail(d.rollingTimestamps)-d.rollingTimestamps[0],m=p-d.rollingPageX[0],v=g-d.rollingPageY[0],_=s.targets.filter((function(e){return d.initialTarget instanceof Node&&e.contains(d.initialTarget)}));s.inertia(_,i,Math.abs(m)/f,m>0?1:-1,p,Math.abs(v)/f,v>0?1:-1,g)}s.dispatchEvent(s.newGestureEvent(a.End,d.initialTarget)),delete s.activeTouches[u.identifier]},s=this,l=0,u=e.changedTouches.length;l<u;l++)r(l);this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},t.prototype.newGestureEvent=function(e,t){var n=document.createEvent(\"CustomEvent\");return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n},t.prototype.dispatchEvent=function(e){var n=this;if(e.type===a.Tap){var i=(new Date).getTime(),o=0;o=i-this._lastSetTapCountTime>t.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=i,e.tapCount=o}else e.type!==a.Change&&e.type!==a.Contextmenu||(this._lastSetTapCountTime=0)\n;for(var r=0;r<this.ignoreTargets.length;r++)if(e.initialTarget instanceof Node&&this.ignoreTargets[r].contains(e.initialTarget))return;this.targets.forEach((function(t){e.initialTarget instanceof Node&&t.contains(e.initialTarget)&&(t.dispatchEvent(e),n.dispatched=!0)}))},t.prototype.inertia=function(e,n,i,r,s,l,u,d){var c=this;this.handle=o.scheduleAtNextAnimationFrame((function(){var o=Date.now(),h=o-n,p=0,g=0,f=!0;i+=t.SCROLL_FRICTION*h,l+=t.SCROLL_FRICTION*h,i>0&&(f=!1,p=r*i*h),l>0&&(f=!1,g=u*l*h);var m=c.newGestureEvent(a.Change);m.translationX=p,m.translationY=g,e.forEach((function(e){return e.dispatchEvent(m)})),f||c.inertia(e,o,i,r,s+p,l,u,d+g)}))},t.prototype.onTouchMove=function(e){for(var t=Date.now(),i=0,o=e.changedTouches.length;i<o;i++){var r=e.changedTouches.item(i);if(this.activeTouches.hasOwnProperty(String(r.identifier))){var s=this.activeTouches[r.identifier],l=this.newGestureEvent(a.Change,s.initialTarget);l.translationX=r.pageX-n.tail(s.rollingPageX),\nl.translationY=r.pageY-n.tail(s.rollingPageY),l.pageX=r.pageX,l.pageY=r.pageY,this.dispatchEvent(l),s.rollingPageX.length>3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(r.pageX),s.rollingPageY.push(r.pageY),s.rollingTimestamps.push(t)}else console.warn(\"end of an UNKNOWN touch\",r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},t.SCROLL_FRICTION=-.005,t.HOLD_DELAY=700,t.CLEAR_TAP_COUNT_TIME=400,h([s.memoize],t,\"isTouchDevice\",null),t}(i.Disposable);t.Gesture=l})),define(n[249],i([0,1,6]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.renderers=e,this.cache=new Map}return e.prototype.alloc=function(e){var t=this.getTemplateCache(e).pop();if(!t){var i=n.$(\".monaco-list-row\");t={domNode:i,templateId:e,templateData:this.getRenderer(e).renderTemplate(i)}}return t},e.prototype.release=function(e){e&&this.releaseRow(e)},e.prototype.releaseRow=function(e){\nvar t=e.domNode,i=e.templateId;t&&(n.removeClass(t,\"scrolling\"),function(e){try{e.parentElement&&e.parentElement.removeChild(e)}catch(e){}}(t)),this.getTemplateCache(i).push(e)},e.prototype.getTemplateCache=function(e){var t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t},e.prototype.dispose=function(){var e=this;this.cache.forEach((function(t,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];e.getRenderer(n).disposeTemplate(r.templateData),r.domNode=null,r.templateData=null}})),this.cache.clear()},e.prototype.getRenderer=function(e){var t=this.renderers.get(e);if(!t)throw new Error(\"No renderer found for \"+e);return t},e}();t.RowCache=i})),define(n[47],i([0,1,6,56,45,2,57]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.onclick=function(e,t){this._register(n.addDisposableListener(e,n.EventType.CLICK,(function(e){return t(new o.StandardMouseEvent(e))})))},\nt.prototype.onmousedown=function(e,t){this._register(n.addDisposableListener(e,n.EventType.MOUSE_DOWN,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onmouseover=function(e,t){this._register(n.addDisposableListener(e,n.EventType.MOUSE_OVER,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onnonbubblingmouseout=function(e,t){this._register(n.addDisposableNonBubblingMouseOutListener(e,(function(e){return t(new o.StandardMouseEvent(e))})))},t.prototype.onkeydown=function(e,t){this._register(n.addDisposableListener(e,n.EventType.KEY_DOWN,(function(e){return t(new i.StandardKeyboardEvent(e))})))},t.prototype.onkeyup=function(e,t){this._register(n.addDisposableListener(e,n.EventType.KEY_UP,(function(e){return t(new i.StandardKeyboardEvent(e))})))},t.prototype.oninput=function(e,t){this._register(n.addDisposableListener(e,n.EventType.INPUT,t))},t.prototype.onblur=function(e,t){this._register(n.addDisposableListener(e,n.EventType.BLUR,t))},t.prototype.onfocus=function(e,t){\nthis._register(n.addDisposableListener(e,n.EventType.FOCUS,t))},t.prototype.ignoreGesture=function(e){a.Gesture.ignoreTarget(e)},t}(s.Disposable);t.Widget=l})),define(n[135],i([0,1,78,47,15]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ARROW_IMG_SIZE=11;var s=function(e){function i(i){var r=e.call(this)||this;return r._onActivate=i.onActivate,r.bgDomNode=document.createElement(\"div\"),r.bgDomNode.className=\"arrow-background\",r.bgDomNode.style.position=\"absolute\",r.bgDomNode.style.width=i.bgWidth+\"px\",r.bgDomNode.style.height=i.bgHeight+\"px\",void 0!==i.top&&(r.bgDomNode.style.top=\"0px\"),void 0!==i.left&&(r.bgDomNode.style.left=\"0px\"),void 0!==i.bottom&&(r.bgDomNode.style.bottom=\"0px\"),void 0!==i.right&&(r.bgDomNode.style.right=\"0px\"),r.domNode=document.createElement(\"div\"),r.domNode.className=i.className,r.domNode.style.position=\"absolute\",r.domNode.style.width=t.ARROW_IMG_SIZE+\"px\",r.domNode.style.height=t.ARROW_IMG_SIZE+\"px\",\nvoid 0!==i.top&&(r.domNode.style.top=i.top+\"px\"),void 0!==i.left&&(r.domNode.style.left=i.left+\"px\"),void 0!==i.bottom&&(r.domNode.style.bottom=i.bottom+\"px\"),void 0!==i.right&&(r.domNode.style.right=i.right+\"px\"),r._mouseMoveMonitor=r._register(new n.GlobalMouseMoveMonitor),r.onmousedown(r.bgDomNode,(function(e){return r._arrowMouseDown(e)})),r.onmousedown(r.domNode,(function(e){return r._arrowMouseDown(e)})),r._mousedownRepeatTimer=r._register(new o.IntervalTimer),r._mousedownScheduleRepeatTimer=r._register(new o.TimeoutTimer),r}return r(i,e),i.prototype._arrowMouseDown=function(e){var t=this;this._onActivate(),this._mousedownRepeatTimer.cancel(),this._mousedownScheduleRepeatTimer.cancelAndSet((function(){t._mousedownRepeatTimer.cancelAndSet((function(){return t._onActivate()}),1e3/24)}),200),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,n.standardMouseMoveMerger,(function(e){}),(function(){t._mousedownRepeatTimer.cancel(),t._mousedownScheduleRepeatTimer.cancel()})),e.preventDefault()},i\n}(i.Widget);t.ScrollbarArrow=s})),define(n[181],i([0,1,6,28,78,135,244,47,16]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t){var n=e.call(this)||this;return n._lazyRender=t.lazyRender,n._host=t.host,n._scrollable=t.scrollable,n._scrollbarState=t.scrollbarState,n._visibilityController=n._register(new a.ScrollbarVisibilityController(t.visibility,\"visible scrollbar \"+t.extraScrollbarClassName,\"invisible scrollbar \"+t.extraScrollbarClassName)),n._visibilityController.setIsNeeded(n._scrollbarState.isNeeded()),n._mouseMoveMonitor=n._register(new o.GlobalMouseMoveMonitor),n._shouldRender=!0,n.domNode=i.createFastDomNode(document.createElement(\"div\")),n.domNode.setAttribute(\"role\",\"presentation\"),n.domNode.setAttribute(\"aria-hidden\",\"true\"),n._visibilityController.setDomNode(n.domNode),n.domNode.setPosition(\"absolute\"),n.onmousedown(n.domNode.domNode,(function(e){return n._domNodeMouseDown(e)})),n}return r(t,e),\nt.prototype._createArrow=function(e){var t=this._register(new s.ScrollbarArrow(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)},t.prototype._createSlider=function(e,t,n,o){var r=this;this.slider=i.createFastDomNode(document.createElement(\"div\")),this.slider.setClassName(\"slider\"),this.slider.setPosition(\"absolute\"),this.slider.setTop(e),this.slider.setLeft(t),\"number\"==typeof n&&this.slider.setWidth(n),\"number\"==typeof o&&this.slider.setHeight(o),this.slider.setLayerHinting(!0),this.slider.setContain(\"strict\"),this.domNode.domNode.appendChild(this.slider.domNode),this.onmousedown(this.slider.domNode,(function(e){e.leftButton&&(e.preventDefault(),r._sliderMouseDown(e,(function(){})))})),this.onclick(this.slider.domNode,(function(e){e.leftButton&&e.stopPropagation()}))},t.prototype._onElementSize=function(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,\nthis._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollSize=function(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype._onElementScrollPosition=function(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender},t.prototype.beginReveal=function(){this._visibilityController.setShouldBeVisible(!0)},t.prototype.beginHide=function(){this._visibilityController.setShouldBeVisible(!1)},t.prototype.render=function(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),\nthis._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))},t.prototype._domNodeMouseDown=function(e){e.target===this.domNode.domNode&&this._onMouseDown(e)},t.prototype.delegateMouseDown=function(e){var t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),i=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderMousePosition(e);n<=o&&o<=i?e.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){}))):this._onMouseDown(e)},t.prototype._onMouseDown=function(e){var t,i;if(e.target===this.domNode.domNode&&\"number\"==typeof e.browserEvent.offsetX&&\"number\"==typeof e.browserEvent.offsetY)t=e.browserEvent.offsetX,i=e.browserEvent.offsetY;else{var o=n.getDomNodePagePosition(this.domNode.domNode);t=e.posx-o.left,i=e.posy-o.top}this._setDesiredScrollPositionNow(this._scrollbarState.getDesiredScrollPositionFromOffset(this._mouseDownRelativePosition(t,i))),\ne.leftButton&&(e.preventDefault(),this._sliderMouseDown(e,(function(){})))},t.prototype._sliderMouseDown=function(e,t){var n=this,i=this._sliderMousePosition(e),r=this._sliderOrthogonalMousePosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName(\"active\",!0),this._mouseMoveMonitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){var t=n._sliderOrthogonalMousePosition(e),o=Math.abs(t-r);if(u.isWindows&&o>140)n._setDesiredScrollPositionNow(s.getScrollPosition());else{var a=n._sliderMousePosition(e)-i;n._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(a))}}),(function(){n.slider.toggleClassName(\"active\",!1),n._host.onDragEnd(),t()})),this._host.onDragStart()},t.prototype._setDesiredScrollPositionNow=function(e){var t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)},t}(l.Widget);t.AbstractScrollbar=d})),define(n[250],i([0,1,45,181,135,175]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var a=function(e){function t(t,i,r){var a=this,l=t.getScrollDimensions(),u=t.getCurrentScrollPosition();if(a=e.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new s.ScrollbarState(i.horizontalHasArrows?i.arrowSize:0,2===i.horizontal?0:i.horizontalScrollbarSize,2===i.vertical?0:i.verticalScrollbarSize,l.width,l.scrollWidth,u.scrollLeft),visibility:i.horizontal,extraScrollbarClassName:\"horizontal\",scrollable:t})||this,i.horizontalHasArrows){var d=(i.arrowSize-o.ARROW_IMG_SIZE)/2,c=(i.horizontalScrollbarSize-o.ARROW_IMG_SIZE)/2;a._createArrow({className:\"left-arrow\",top:c,left:d,bottom:void 0,right:void 0,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,1,0))}}),a._createArrow({className:\"right-arrow\",top:c,left:void 0,bottom:void 0,right:d,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,-1,0))}})}\nreturn a._createSlider(Math.floor((i.horizontalScrollbarSize-i.horizontalSliderSize)/2),0,void 0,i.horizontalSliderSize),a}return r(t,e),t.prototype._updateSlider=function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return e},t.prototype._sliderMousePosition=function(e){return e.posx},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posy},t.prototype.writeScrollPosition=function(e,t){e.scrollLeft=t},t}(i.AbstractScrollbar);t.HorizontalScrollbar=a})),\ndefine(n[251],i([0,1,45,181,135,175]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,i,r){var a=this,l=t.getScrollDimensions(),u=t.getCurrentScrollPosition();if(a=e.call(this,{lazyRender:i.lazyRender,host:r,scrollbarState:new s.ScrollbarState(i.verticalHasArrows?i.arrowSize:0,2===i.vertical?0:i.verticalScrollbarSize,0,l.height,l.scrollHeight,u.scrollTop),visibility:i.vertical,extraScrollbarClassName:\"vertical\",scrollable:t})||this,i.verticalHasArrows){var d=(i.arrowSize-o.ARROW_IMG_SIZE)/2,c=(i.verticalScrollbarSize-o.ARROW_IMG_SIZE)/2;a._createArrow({className:\"up-arrow\",top:d,left:c,bottom:void 0,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){return a._host.onMouseWheel(new n.StandardWheelEvent(null,0,1))}}),a._createArrow({className:\"down-arrow\",top:void 0,left:c,bottom:d,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:function(){\nreturn a._host.onMouseWheel(new n.StandardWheelEvent(null,0,-1))}})}return a._createSlider(0,Math.floor((i.verticalScrollbarSize-i.verticalSliderSize)/2),i.verticalSliderSize,void 0),a}return r(t,e),t.prototype._updateSlider=function(e,t){this.slider.setHeight(e),this.slider.setTop(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return t},t.prototype._sliderMousePosition=function(e){return e.posy},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posx},t.prototype.writeScrollPosition=function(e,t){e.scrollTop=t},t}(i.AbstractScrollbar);t.VerticalScrollbar=a\n}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[39],i([0,1,177,77,25,5,46,16]),(function(e,t,n,i,o,r,s,l){\"use strict\";function u(e){return!e||e.scheme!==s.Schemas.file||!l.isLinux}function d(e,t){return e===t||r.equalsIgnoreCase(e,t)}function c(e){return i.posix.basename(e.path)}function h(e){var t,i=e.path;return t=e.authority&&i.length>1&&e.scheme===s.Schemas.file?\"//\"+e.authority+i:l.isWindows&&47===i.charCodeAt(0)&&n.isWindowsDriveLetter(i.charCodeAt(1))&&58===i.charCodeAt(2)?i.substr(1):i,l.isWindows&&(t=t.replace(/\\//g,\"\\\\\")),t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.hasToIgnoreCase=u,t.basenameOrAuthority=function(e){return c(e)||e.authority},t.isEqualAuthority=d,t.isEqual=function(e,t,n){if(void 0===n&&(n=u(e)),e===t)return!0;if(!e||!t)return!1;if(e.scheme!==t.scheme||!d(e.authority,t.authority))return!1\n;var i=e.path||\"/\",o=t.path||\"/\";return i===o||n&&r.equalsIgnoreCase(i||\"/\",o||\"/\")},t.basename=c,t.dirname=function(e){if(0===e.path.length)return e;if(e.scheme===s.Schemas.file)return o.URI.file(i.dirname(h(e)));var t=i.posix.dirname(e.path);return e.authority&&t.length&&47!==t.charCodeAt(0)&&(console.error('dirname(\"'+e.toString+\")) resulted in a relative path\"),t=\"/\"),e.with({path:t})},t.joinPath=function(e){for(var t,n,r=[],l=1;l<arguments.length;l++)r[l-1]=arguments[l];return n=e.scheme===s.Schemas.file?o.URI.file(i.join.apply(i,a([h(e)],r))).path:(t=i.posix).join.apply(t,a([e.path||\"/\"],r)),e.with({path:n})},t.normalizePath=function(e){return e.path.length?(t=e.scheme===s.Schemas.file?o.URI.file(i.normalize(h(e))).path:i.posix.normalize(e.path),e.with({path:t})):e;var t},t.originalFSPath=h,t.relativePath=function(e,t,o){if(void 0===o&&(o=u(e)),e.scheme===t.scheme&&d(e.authority,t.authority)){if(e.scheme===s.Schemas.file){var r=i.relative(e.path,t.path);return l.isWindows?n.toSlashes(r):r}\nvar a=e.path||\"/\",c=t.path||\"/\";if(o){for(var h=0,p=Math.min(a.length,c.length);h<p&&(a.charCodeAt(h)===c.charCodeAt(h)||a.charAt(h).toLowerCase()===c.charAt(h).toLowerCase());h++);a=c.substr(0,h)+a.substr(h)}return i.posix.relative(a,c)}},function(e){e.META_DATA_LABEL=\"label\",e.META_DATA_DESCRIPTION=\"description\",e.META_DATA_SIZE=\"size\",e.META_DATA_MIME=\"mime\",e.parseMetaData=function(t){var n=new Map;t.path.substring(t.path.indexOf(\";\")+1,t.path.lastIndexOf(\";\")).split(\";\").forEach((function(e){var t=e.split(\":\"),i=t[0],o=t[1];i&&o&&n.set(i,o)}));var i=t.path.substring(0,t.path.indexOf(\";\"));return i&&n.set(e.META_DATA_MIME,i),n}}(t.DataUri||(t.DataUri={}))})),define(n[136],i([0,1,25,77,5,46,16,39]),(function(e,t,n,i,o,r,s,a){\"use strict\";function l(e){return!(!s.isWindows||!e||\":\"!==e[1])}function u(e){return l(e)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getPathLabel=function(e,t,o){if(\"string\"==typeof e&&(e=n.URI.file(e)),o){var d=o.getWorkspaceFolder(e)\n;if(d){var h=o.getWorkspace().folders.length>1,p=void 0;if(p=a.isEqual(d.uri,e)?\"\":a.relativePath(d.uri,e),h){var g=d.name?d.name:a.basename(d.uri);p=p?g+\" • \"+p:g}return p}}if(e.scheme!==r.Schemas.file&&e.scheme!==r.Schemas.untitled)return e.with({query:null,fragment:null}).toString(!0);if(l(e.fsPath))return i.normalize(u(e.fsPath));var f=i.normalize(e.fsPath);return!s.isWindows&&t&&(f=c(f,t.userHome)),f},t.getBaseLabel=function(e){if(e){\"string\"==typeof e&&(e=n.URI.file(e));var t=a.basename(e)||(e.scheme===r.Schemas.file?e.fsPath:e.path);return l(t)?u(t):t}},t.normalizeDriveLetter=u;var d=Object.create(null);function c(e,t){if(s.isWindows||!e||!t)return e;var n=d.original===t?d.normalized:void 0;return n||(n=\"\"+o.rtrim(t,i.posix.sep)+i.posix.sep,d={original:t,normalized:n}),(s.isLinux?o.startsWith(e,n):o.startsWithIgnoreCase(e,n))&&(e=\"~/\"+e.substr(n.length)),e}t.tildify=c})),define(n[252],i([0,1,77,5,178,46,39]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.MIME_TEXT=\"text/plain\",t.MIME_UNKNOWN=\"application/unknown\";var a=[],l=[],u=[];function d(e,t,n){for(var r=null,s=null,a=null,l=n.length-1;l>=0;l--){var u=n[l];if(t===u.filenameLowercase){r=u;break}if(u.filepattern&&(!s||u.filepattern.length>s.filepattern.length)){var d=u.filepatternOnPath?e:t;o.match(u.filepatternLowercase,d)&&(s=u)}u.extension&&(!a||u.extension.length>a.extension.length)&&i.endsWith(t,u.extensionLowercase)&&(a=u)}return r?r.mime:s?s.mime:a?a.mime:null}t.registerTextMime=function(e,t){void 0===t&&(t=!1);var i=function(e){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:e.userConfigured,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?e.filepattern.toLowerCase():void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(n.posix.sep)>=0}}(e);a.push(i),i.userConfigured?u.push(i):l.push(i),\nt&&!i.userConfigured&&a.forEach((function(e){e.mime===i.mime||e.userConfigured||(i.extension&&e.extension===i.extension&&console.warn(\"Overwriting extension <<\"+i.extension+\">> to now point to mime <<\"+i.mime+\">>\"),i.filename&&e.filename===i.filename&&console.warn(\"Overwriting filename <<\"+i.filename+\">> to now point to mime <<\"+i.mime+\">>\"),i.filepattern&&e.filepattern===i.filepattern&&console.warn(\"Overwriting filepattern <<\"+i.filepattern+\">> to now point to mime <<\"+i.mime+\">>\"),i.firstline&&e.firstline===i.firstline&&console.warn(\"Overwriting firstline <<\"+i.firstline+\">> to now point to mime <<\"+i.mime+\">>\"))}))},t.guessMimeTypes=function(e,o){var c;if(e)switch(e.scheme){case r.Schemas.file:c=e.fsPath;break;case r.Schemas.data:c=s.DataUri.parseMetaData(e).get(s.DataUri.META_DATA_LABEL);break;default:c=e.path}if(!c)return[t.MIME_UNKNOWN];c=c.toLowerCase();var h=n.basename(c),p=d(c,h,u);if(p)return[p,t.MIME_TEXT];var g=d(c,h,l);if(g)return[g,t.MIME_TEXT];if(o){var f=function(e){\ni.startsWithUTF8BOM(e)&&(e=e.substr(1));if(e.length>0)for(var t=a.length-1;t>=0;t--){var n=a[t];if(n.firstline){var o=e.match(n.firstline);if(o&&o.length>0)return n.mime}}return null}(o);if(f)return[f,t.MIME_TEXT]}return[t.MIME_UNKNOWN]}})),define(n[182],i([0,1,10,2,16,21]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=\"$initialize\",l=!1;t.logOnceWebWorkerWarning=function(e){o.isWeb&&(l||(l=!0,console.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq\")),console.warn(e.message))};var u=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=this,i=String(++this._lastSentReq);return new Promise((function(o,r){n._pendingReplies[i]={resolve:o,reject:r},n._send({\nvsWorker:n._workerId,req:i,method:e,args:t})}))},e.prototype.handleMessage=function(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var i=e;if(!this._pendingReplies[i.seq])return void console.warn(\"Got reply to unknown seq\");var o=this._pendingReplies[i.seq];if(delete this._pendingReplies[i.seq],i.err){var r=i.err;return i.err.$isError&&((r=new Error).name=i.err.name,r.message=i.err.message,r.stack=i.err.stack),void o.reject(r)}o.resolve(i.res)}else{var s=e,a=s.req;this._handler.handleMessage(s.method,s.args).then((function(e){t._send({vsWorker:t._workerId,seq:a,res:e,err:void 0})}),(function(e){e.detail instanceof Error&&(e.detail=n.transformErrorForSerialization(e.detail)),t._send({vsWorker:t._workerId,seq:a,res:void 0,err:n.transformErrorForSerialization(e)})}))}},e.prototype._send=function(e){var t=[]\n;if(e.req)for(var n=e,i=0;i<n.args.length;i++)n.args[i]instanceof ArrayBuffer&&t.push(n.args[i]);else(n=e).res instanceof ArrayBuffer&&t.push(n.res);this._handler.sendMessage(e,t)},e}(),d=function(e){function t(t,n,i){var o=e.call(this)||this,r=null;o._worker=o._register(t.create(\"vs/base/common/worker/simpleWorker\",(function(e){o._protocol.handleMessage(e)}),(function(e){r&&r(e)}))),o._protocol=new u({sendMessage:function(e,t){o._worker.postMessage(e,t)},handleMessage:function(e,t){if(\"function\"!=typeof i[e])return Promise.reject(new Error(\"Missing method \"+e+\" on main thread host.\"));try{return Promise.resolve(i[e].apply(i,t))}catch(e){return Promise.reject(e)}}}),o._protocol.setWorkerId(o._worker.getId());var l=null;void 0!==self.require&&\"function\"==typeof self.require.getConfig?l=self.require.getConfig():void 0!==self.requirejs&&(l=self.requirejs.s.contexts._.config);var d=s.getAllMethodNames(i);o._onModuleLoaded=o._protocol.sendMessage(a,[o._worker.getId(),JSON.parse(JSON.stringify(l)),n,d])\n;var c=function(e,t){return o._request(e,t)};return o._lazyProxy=new Promise((function(e,t){r=t,o._onModuleLoaded.then((function(t){e(s.createProxyObject(t,c))}),(function(e){t(e),o._onError(\"Worker failed to load \"+n,e)}))})),o}return r(t,e),t.prototype.getProxyObject=function(){return this._lazyProxy},t.prototype._request=function(e,t){var n=this;return new Promise((function(i,o){n._onModuleLoaded.then((function(){n._protocol.sendMessage(e,t).then(i,o)}),o)}))},t.prototype._onError=function(e,t){console.error(e),console.info(t)},t}(i.Disposable);t.SimpleWorkerClient=d;var c=function(){function e(e,t){var n=this;this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new u({sendMessage:function(t,n){e(t,n)},handleMessage:function(e,t){return n._handleMessage(e,t)}})}return e.prototype.onmessage=function(e){this._protocol.handleMessage(e)},e.prototype._handleMessage=function(e,t){if(e===a)return this.initialize(t[0],t[1],t[2],t[3])\n;if(!this._requestHandler||\"function\"!=typeof this._requestHandler[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(e){return Promise.reject(e)}},e.prototype.initialize=function(e,t,n,i){var o=this;this._protocol.setWorkerId(e);var r=s.createProxyObject(i,(function(e,t){return o._protocol.sendMessage(e,t)}));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(r),Promise.resolve(s.getAllMethodNames(this._requestHandler))):(t&&(void 0!==t.baseUrl&&delete t.baseUrl,void 0!==t.paths&&void 0!==t.paths.vs&&delete t.paths.vs,t.catchError=!0,self.require.config(t)),new Promise((function(e,t){self.require([n],(function(n){o._requestHandler=n.create(r),o._requestHandler?e(s.getAllMethodNames(o._requestHandler)):t(new Error(\"No RequestHandler!\"))}),t)})))},e}();t.SimpleWorkerServer=c,t.create=function(e){return new c(e,null)}})),define(n[253],i([0,1,21]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.modelProvider=n.isFunction(e.getModel)?e:{getModel:function(){return e}}}return e.prototype.getId=function(e,t){if(!t)return null;var n=this.modelProvider.getModel();return n===t?\"__root__\":n.dataSource.getId(t)},e.prototype.hasChildren=function(e,t){var n=this.modelProvider.getModel();return!!(n&&n===t&&n.entries.length>0)},e.prototype.getChildren=function(e,t){var n=this.modelProvider.getModel();return Promise.resolve(n===t?n.entries:[])},e.prototype.getParent=function(e,t){return Promise.resolve(null)},e}();t.DataSource=i;var o=function(){function e(e){this.modelProvider=e}return e.prototype.getAriaLabel=function(e,t){var n=this.modelProvider.getModel();return n.accessibilityProvider?n.accessibilityProvider.getAriaLabel(t):null},e.prototype.getPosInSet=function(e,t){var n=this.modelProvider.getModel(),i=0;if(n.filter)for(var o=0,r=n.entries;o<r.length;o++){var s=r[o];if(n.filter.isVisible(s)&&i++,s===t)break\n}else i=n.entries.indexOf(t)+1;return String(i)},e.prototype.getSetSize=function(){var e=this.modelProvider.getModel(),t=0;if(e.filter)for(var n=0,i=e.entries;n<i.length;n++){var o=i[n];e.filter.isVisible(o)&&t++}else t=e.entries.length;return String(t)},e}();t.AccessibilityProvider=o;var r=function(){function e(e){this.modelProvider=e}return e.prototype.isVisible=function(e,t){var n=this.modelProvider.getModel();return!n.filter||n.filter.isVisible(t)},e}();t.Filter=r;var s=function(){function e(e,t){this.modelProvider=e,this.styles=t}return e.prototype.updateStyles=function(e){this.styles=e},e.prototype.getHeight=function(e,t){return this.modelProvider.getModel().renderer.getHeight(t)},e.prototype.getTemplateId=function(e,t){return this.modelProvider.getModel().renderer.getTemplateId(t)},e.prototype.renderTemplate=function(e,t,n){return this.modelProvider.getModel().renderer.renderTemplate(t,n,this.styles)},e.prototype.renderElement=function(e,t,n,i){\nthis.modelProvider.getModel().renderer.renderElement(t,n,i,this.styles)},e.prototype.disposeTemplate=function(e,t,n){this.modelProvider.getModel().renderer.disposeTemplate(t,n)},e}();t.Renderer=s})),define(n[254],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this._posx=e,this._posy=t,this._target=n}return e.prototype.preventDefault=function(){},e.prototype.stopPropagation=function(){},Object.defineProperty(e.prototype,\"target\",{get:function(){return this._target},enumerable:!0,configurable:!0}),e}();t.ContextMenuEvent=n;var i=function(e){function t(t){var n=e.call(this,t.posx,t.posy,t.target)||this;return n.originalEvent=t,n}return r(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.MouseContextMenuEvent=i;var o=function(e){function t(t,n,i){var o=e.call(this,t,n,i.target)||this;return o.originalEvent=i,o}return r(t,e),\nt.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(n);t.KeyboardContextMenuEvent=o})),define(n[137],i([0,1,16,10,6,36]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){this._arr=[]}return e.prototype.set=function(e,t){this._arr.push({keybinding:r.createKeybinding(e,n.OS),callback:t})},e.prototype.dispatch=function(e){for(var t=this._arr.length-1;t>=0;t--){var n=this._arr[t];if(e.toChord().equals(n.keybinding))return n.callback}return null},e}();t.KeybindingDispatcher=s;var a=function(){function e(e){var t=this;void 0===e&&(e={clickBehavior:0,keyboardSupport:!0,openMode:0}),this.options=e,this.downKeyBindingDispatcher=new s,this.upKeyBindingDispatcher=new s,(\"boolean\"!=typeof e.keyboardSupport||e.keyboardSupport)&&(this.downKeyBindingDispatcher.set(16,(function(e,n){return t.onUp(e,n)})),this.downKeyBindingDispatcher.set(18,(function(e,n){\nreturn t.onDown(e,n)})),this.downKeyBindingDispatcher.set(15,(function(e,n){return t.onLeft(e,n)})),this.downKeyBindingDispatcher.set(17,(function(e,n){return t.onRight(e,n)})),n.isMacintosh&&(this.downKeyBindingDispatcher.set(2064,(function(e,n){return t.onLeft(e,n)})),this.downKeyBindingDispatcher.set(300,(function(e,n){return t.onDown(e,n)})),this.downKeyBindingDispatcher.set(302,(function(e,n){return t.onUp(e,n)}))),this.downKeyBindingDispatcher.set(11,(function(e,n){return t.onPageUp(e,n)})),this.downKeyBindingDispatcher.set(12,(function(e,n){return t.onPageDown(e,n)})),this.downKeyBindingDispatcher.set(14,(function(e,n){return t.onHome(e,n)})),this.downKeyBindingDispatcher.set(13,(function(e,n){return t.onEnd(e,n)})),this.downKeyBindingDispatcher.set(10,(function(e,n){return t.onSpace(e,n)})),this.downKeyBindingDispatcher.set(9,(function(e,n){return t.onEscape(e,n)})),this.upKeyBindingDispatcher.set(3,this.onEnter.bind(this)),this.upKeyBindingDispatcher.set(2051,this.onEnter.bind(this)))}\nreturn e.prototype.onMouseDown=function(e,t,n,i){if(void 0===i&&(i=\"mouse\"),0===this.options.clickBehavior&&(n.leftButton||n.middleButton)){if(n.target){if(n.target.tagName&&\"input\"===n.target.tagName.toLowerCase())return!1;if(o.findParentWithClass(n.target,\"scrollbar\",\"monaco-tree\"))return!1;if(o.findParentWithClass(n.target,\"monaco-action-bar\",\"row\"))return!1}return this.onLeftClick(e,t,n,i)}return!1},e.prototype.onClick=function(e,t,i){return n.isMacintosh&&i.ctrlKey?(i.preventDefault(),i.stopPropagation(),!1):(!i.target||!i.target.tagName||\"input\"!==i.target.tagName.toLowerCase())&&((0!==this.options.clickBehavior||!i.leftButton&&!i.middleButton)&&this.onLeftClick(e,t,i))},e.prototype.onLeftClick=function(e,t,n,o){void 0===o&&(o=\"mouse\");var r=n,s={origin:o,originalEvent:n,didClickOnTwistie:this.isClickOnTwistie(r)};e.getInput()===t?(e.clearFocus(s),e.clearSelection(s)):(n&&r.browserEvent&&\"mousedown\"===r.browserEvent.type&&1===r.browserEvent.detail||n.preventDefault(),n.stopPropagation(),e.domFocus(),\ne.setSelection([t],s),e.setFocus(t,s),this.shouldToggleExpansion(t,r,o)&&(e.isExpanded(t)?e.collapse(t).then(void 0,i.onUnexpectedError):e.expand(t).then(void 0,i.onUnexpectedError)));return!0},e.prototype.shouldToggleExpansion=function(e,t,n){var i=\"mouse\"===n&&2===t.detail;return this.openOnSingleClick||i||this.isClickOnTwistie(t)},Object.defineProperty(e.prototype,\"openOnSingleClick\",{get:function(){return 0===this.options.openMode},enumerable:!0,configurable:!0}),e.prototype.isClickOnTwistie=function(e){var t=e.target;if(!o.hasClass(t,\"content\"))return!1;var n=window.getComputedStyle(t,\":before\");if(\"none\"===n.backgroundImage||\"none\"===n.display)return!1;var i=parseInt(n.width)+parseInt(n.paddingRight);return e.browserEvent.offsetX<=i},e.prototype.onContextMenu=function(e,t,n){return(!n.target||!n.target.tagName||\"input\"!==n.target.tagName.toLowerCase())&&(n&&(n.preventDefault(),n.stopPropagation()),!1)},e.prototype.onTap=function(e,t,n){var i=n.initialTarget\n;return(!i||!i.tagName||\"input\"!==i.tagName.toLowerCase())&&this.onLeftClick(e,t,n,\"touch\")},e.prototype.onKeyDown=function(e,t){return this.onKey(this.downKeyBindingDispatcher,e,t)},e.prototype.onKeyUp=function(e,t){return this.onKey(this.upKeyBindingDispatcher,e,t)},e.prototype.onKey=function(e,t,n){var i=e.dispatch(n.toKeybinding());return!(!i||!i(t,n))&&(n.preventDefault(),n.stopPropagation(),!0)},e.prototype.onUp=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPrevious(1,n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onPageUp=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPreviousPage(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onDown=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNext(1,n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},\ne.prototype.onPageDown=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNextPage(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onHome=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusFirst(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onEnd=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusLast(n),e.reveal(e.getFocus()).then(void 0,i.onUnexpectedError)),!0},e.prototype.onLeft=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var o=e.getFocus();e.collapse(o).then((function(t){if(o&&!t)return e.focusParent(n),e.reveal(e.getFocus())})).then(void 0,i.onUnexpectedError)}return!0},e.prototype.onRight=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var o=e.getFocus()\n;e.expand(o).then((function(t){if(o&&!t)return e.focusFirstChild(n),e.reveal(e.getFocus())})).then(void 0,i.onUnexpectedError)}return!0},e.prototype.onEnter=function(e,t){var n={origin:\"keyboard\",originalEvent:t};if(e.getHighlight())return!1;var i=e.getFocus();return i&&e.setSelection([i],n),!0},e.prototype.onSpace=function(e,t){if(e.getHighlight())return!1;var n=e.getFocus();return n&&e.toggleExpansion(n),!0},e.prototype.onEscape=function(e,t){var n={origin:\"keyboard\",originalEvent:t};return e.getHighlight()?(e.clearHighlight(n),!0):e.getSelection().length?(e.clearSelection(n),!0):!!e.getFocus()&&(e.clearFocus(n),!0)},e}();t.DefaultController=a;var l=function(){function e(){}return e.prototype.getDragURI=function(e,t){return null},e.prototype.onDragStart=function(e,t,n){},e.prototype.onDragOver=function(e,t,n,i){return null},e.prototype.drop=function(e,t,n,i){},e}();t.DefaultDragAndDrop=l;var u=function(){function e(){}return e.prototype.isVisible=function(e,t){return!0},e}();t.DefaultFilter=u\n;var d=function(){function e(){}return e.prototype.getAriaLabel=function(e,t){return null},e}();t.DefaultAccessibilityProvider=d;var c=function(){function e(e,t){this.styleElement=e,this.selectorSuffix=t}return e.prototype.style=function(e){var t=this.selectorSuffix?\".\"+this.selectorSuffix:\"\",n=[];e.listFocusBackground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { background-color: \"+e.listFocusBackground+\"; }\"),e.listFocusForeground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { color: \"+e.listFocusForeground+\"; }\"),e.listActiveSelectionBackground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: \"+e.listActiveSelectionBackground+\"; }\"),e.listActiveSelectionForeground&&n.push(\".monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: \"+e.listActiveSelectionForeground+\"; }\"),\ne.listFocusAndSelectionBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image,\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { background-color: \"+e.listFocusAndSelectionBackground+\"; }\\n\\t\\t\\t\"),e.listFocusAndSelectionForeground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image,\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { color: \"+e.listFocusAndSelectionForeground+\"; }\\n\\t\\t\\t\"),e.listInactiveSelectionBackground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: \"+e.listInactiveSelectionBackground+\"; }\"),e.listInactiveSelectionForeground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: \"+e.listInactiveSelectionForeground+\"; }\"),\ne.listHoverBackground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { background-color: \"+e.listHoverBackground+\"; }\"),e.listHoverForeground&&n.push(\".monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { color: \"+e.listHoverForeground+\"; }\"),e.listDropBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-wrapper.drop-target,\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.drop-target { background-color: \"+e.listDropBackground+\" !important; color: inherit !important; }\\n\\t\\t\\t\"),\ne.listFocusOutline&&n.push(\"\\n\\t\\t\\t\\t.monaco-tree-drag-image\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; background: #000; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px solid transparent; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) \\t\\t\\t\\t\\t\\t{ border: 1px dotted \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted)  \\t\\t\\t\\t\\t\\t\\t{ border: 1px solid \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused)  \\t{ border: 1px dashed \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-wrapper.drop-target,\\n\\t\\t\\t\\t.monaco-tree\"+t+\" .monaco-tree-rows > .monaco-tree-row.drop-target\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ border: 1px dashed \"+e.listFocusOutline+\"; }\\n\\t\\t\\t\")\n;var i=n.join(\"\\n\");i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i)},e}();t.DefaultTreestyler=c})),define(n[255],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ElementsDragAndDropData=n;var i=function(){function e(e){this.elements=e}return e.prototype.update=function(e){},e.prototype.getData=function(){return this.elements},e}();t.ExternalElementsDragAndDropData=i;var o=function(){function e(){this.types=[],this.files=[]}return e.prototype.update=function(e){e.types&&(this.types=[],Array.prototype.push.apply(this.types,e.types)),e.files&&(this.files=[],Array.prototype.push.apply(this.files,e.files),this.files=this.files.filter((function(e){return e.size||e.type})))},e.prototype.getData=function(){return{types:this.types,files:this.files}},e}();t.DesktopDragAndDropData=o})),\ndefine(n[256],i([0,1,124,10,2,4]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._onDispose=new s.Emitter,this.onDispose=this._onDispose.event,this._item=e}return Object.defineProperty(e.prototype,\"item\",{get:function(){return this._item},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose&&(this._onDispose.fire(),this._onDispose.dispose(),this._onDispose=void 0)},e}();t.LockData=a;var l=function(){function e(){this.locks=Object.create({})}return e.prototype.isLocked=function(e){return!!this.locks[e.id]},e.prototype.run=function(e,t){var n=this,i=this.getLock(e);return i?new Promise((function(o,r){s.Event.once(i.onDispose)((function(){return n.run(e,t).then(o,r)}))})):new Promise((function(i,o){if(e.isDisposed())return o(new Error(\"Item is disposed.\"));var r=n.locks[e.id]=new a(e);return t().then((function(t){return delete n.locks[e.id],r.dispose(),t})).then(i,o)}))},e.prototype.getLock=function(e){var t\n;for(t in this.locks){var n=this.locks[t];if(e.intersects(n.item))return n}return null},e}();t.Lock=l;var u=function(){function e(){this._isDisposed=!1,this._onDidRevealItem=new s.EventMultiplexer,this.onDidRevealItem=this._onDidRevealItem.event,this._onExpandItem=new s.EventMultiplexer,this.onExpandItem=this._onExpandItem.event,this._onDidExpandItem=new s.EventMultiplexer,this.onDidExpandItem=this._onDidExpandItem.event,this._onCollapseItem=new s.EventMultiplexer,this.onCollapseItem=this._onCollapseItem.event,this._onDidCollapseItem=new s.EventMultiplexer,this.onDidCollapseItem=this._onDidCollapseItem.event,this._onDidAddTraitItem=new s.EventMultiplexer,this.onDidAddTraitItem=this._onDidAddTraitItem.event,this._onDidRemoveTraitItem=new s.EventMultiplexer,this.onDidRemoveTraitItem=this._onDidRemoveTraitItem.event,this._onDidRefreshItem=new s.EventMultiplexer,this.onDidRefreshItem=this._onDidRefreshItem.event,this._onRefreshItemChildren=new s.EventMultiplexer,\nthis.onRefreshItemChildren=this._onRefreshItemChildren.event,this._onDidRefreshItemChildren=new s.EventMultiplexer,this.onDidRefreshItemChildren=this._onDidRefreshItemChildren.event,this._onDidDisposeItem=new s.EventMultiplexer,this.onDidDisposeItem=this._onDidDisposeItem.event,this.items={}}return e.prototype.register=function(e){n.ok(!this.isRegistered(e.id),\"item already registered: \"+e.id);var t=o.combinedDisposable(this._onDidRevealItem.add(e.onDidReveal),this._onExpandItem.add(e.onExpand),this._onDidExpandItem.add(e.onDidExpand),this._onCollapseItem.add(e.onCollapse),this._onDidCollapseItem.add(e.onDidCollapse),this._onDidAddTraitItem.add(e.onDidAddTrait),this._onDidRemoveTraitItem.add(e.onDidRemoveTrait),this._onDidRefreshItem.add(e.onDidRefresh),this._onRefreshItemChildren.add(e.onRefreshChildren),this._onDidRefreshItemChildren.add(e.onDidRefreshChildren),this._onDidDisposeItem.add(e.onDidDispose));this.items[e.id]={item:e,disposable:t}},e.prototype.deregister=function(e){\nn.ok(this.isRegistered(e.id),\"item not registered: \"+e.id),this.items[e.id].disposable.dispose(),delete this.items[e.id]},e.prototype.isRegistered=function(e){return this.items.hasOwnProperty(e)},e.prototype.getItem=function(e){var t=this.items[e];return t?t.item:null},e.prototype.dispose=function(){this.items={},this._onDidRevealItem.dispose(),this._onExpandItem.dispose(),this._onDidExpandItem.dispose(),this._onCollapseItem.dispose(),this._onDidCollapseItem.dispose(),this._onDidAddTraitItem.dispose(),this._onDidRemoveTraitItem.dispose(),this._onDidRefreshItem.dispose(),this._onRefreshItemChildren.dispose(),this._onDidRefreshItemChildren.dispose(),this._isDisposed=!0},e.prototype.isDisposed=function(){return this._isDisposed},e}();t.ItemRegistry=u;var d=function(){function e(e,t,n,i,o){this._onDidCreate=new s.Emitter,this._onDidReveal=new s.Emitter,this.onDidReveal=this._onDidReveal.event,this._onExpand=new s.Emitter,this.onExpand=this._onExpand.event,this._onDidExpand=new s.Emitter,\nthis.onDidExpand=this._onDidExpand.event,this._onCollapse=new s.Emitter,this.onCollapse=this._onCollapse.event,this._onDidCollapse=new s.Emitter,this.onDidCollapse=this._onDidCollapse.event,this._onDidAddTrait=new s.Emitter,this.onDidAddTrait=this._onDidAddTrait.event,this._onDidRemoveTrait=new s.Emitter,this.onDidRemoveTrait=this._onDidRemoveTrait.event,this._onDidRefresh=new s.Emitter,this.onDidRefresh=this._onDidRefresh.event,this._onRefreshChildren=new s.Emitter,this.onRefreshChildren=this._onRefreshChildren.event,this._onDidRefreshChildren=new s.Emitter,this.onDidRefreshChildren=this._onDidRefreshChildren.event,this._onDidDispose=new s.Emitter,this.onDidDispose=this._onDidDispose.event,this.registry=t,this.context=n,this.lock=i,this.element=o,this.id=e,this.registry.register(this),this.doesHaveChildren=this.context.dataSource.hasChildren(this.context.tree,this.element),this.needsChildrenRefresh=!0,this.parent=null,this.previous=null,this.next=null,this.firstChild=null,this.lastChild=null,this.traits={},\nthis.depth=0,this.expanded=!(!this.context.dataSource.shouldAutoexpand||!this.context.dataSource.shouldAutoexpand(this.context.tree,o)),this._onDidCreate.fire(this),this.visible=this._isVisible(),this.height=this._getHeight(),this._isDisposed=!1}return e.prototype.getElement=function(){return this.element},e.prototype.hasChildren=function(){return this.doesHaveChildren},e.prototype.getDepth=function(){return this.depth},e.prototype.isVisible=function(){return this.visible},e.prototype.setVisible=function(e){this.visible=e},e.prototype.isExpanded=function(){return this.expanded},e.prototype._setExpanded=function(e){this.expanded=e},e.prototype.reveal=function(e){void 0===e&&(e=null);var t={item:this,relativeTop:e};this._onDidReveal.fire(t)},e.prototype.expand=function(){var e=this;return this.isExpanded()||!this.doesHaveChildren||this.lock.isLocked(this)?Promise.resolve(!1):this.lock.run(this,(function(){if(e.isExpanded()||!e.doesHaveChildren)return Promise.resolve(!1);var t={item:e}\n;return e._onExpand.fire(t),(e.needsChildrenRefresh?e.refreshChildren(!1,!0,!0):Promise.resolve(null)).then((function(){return e._setExpanded(!0),e._onDidExpand.fire(t),!0}))})).then((function(t){return!e.isDisposed()&&(e.context.options.autoExpandSingleChildren&&t&&null!==e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.isVisible()?e.firstChild.expand().then((function(){return!0})):t)}))},e.prototype.collapse=function(e){var t=this;if(void 0===e&&(e=!1),e){var n=Promise.resolve(null);return this.forEachChild((function(e){n=n.then((function(){return e.collapse(!0)}))})),n.then((function(){return t.collapse(!1)}))}return!this.isExpanded()||this.lock.isLocked(this)?Promise.resolve(!1):this.lock.run(this,(function(){var e={item:t};return t._onCollapse.fire(e),t._setExpanded(!1),t._onDidCollapse.fire(e),Promise.resolve(!0)}))},e.prototype.addTrait=function(e){var t={item:this,trait:e};this.traits[e]=!0,this._onDidAddTrait.fire(t)},e.prototype.removeTrait=function(e){var t={item:this,trait:e}\n;delete this.traits[e],this._onDidRemoveTrait.fire(t)},e.prototype.hasTrait=function(e){return this.traits[e]||!1},e.prototype.getAllTraits=function(){var e,t=[];for(e in this.traits)this.traits.hasOwnProperty(e)&&this.traits[e]&&t.push(e);return t},e.prototype.getHeight=function(){return this.height},e.prototype.refreshChildren=function(t,n,o){var r=this;if(void 0===n&&(n=!1),void 0===o&&(o=!1),!o&&!this.isExpanded()){var s=function(e){e.needsChildrenRefresh=!0,e.forEachChild(s)};return s(this),Promise.resolve(this)}this.needsChildrenRefresh=!1;var a=function(){var o={item:r,isNested:n};return r._onRefreshChildren.fire(o),(r.doesHaveChildren?r.context.dataSource.getChildren(r.context.tree,r.element):Promise.resolve([])).then((function(n){if(r.isDisposed()||r.registry.isDisposed())return Promise.resolve(null);if(!Array.isArray(n))return Promise.reject(new Error(\"Please return an array of children.\"));n=n?n.slice(0):[],n=r.sort(n);for(var i={};null!==r.firstChild;)i[r.firstChild.id]=r.firstChild,\nr.removeChild(r.firstChild);for(var o=0,s=n.length;o<s;o++){var a=n[o],l=r.context.dataSource.getId(r.context.tree,a),u=i[l]||new e(l,r.registry,r.context,r.lock,a);u.element=a,t&&(u.needsChildrenRefresh=t),delete i[l],r.addChild(u)}for(var d in i)i.hasOwnProperty(d)&&i[d].dispose();return t?Promise.all(r.mapEachChild((function(e){return e.doRefresh(t,!0)}))):Promise.all(r.mapEachChild((function(e){return e.isExpanded()&&e.needsChildrenRefresh?e.doRefresh(t,!0):(e.updateVisibility(),Promise.resolve(null))})))})).then(void 0,i.onUnexpectedError).then((function(){return r._onDidRefreshChildren.fire(o)}))};return n?a():this.lock.run(this,a)},e.prototype.doRefresh=function(e,t){return void 0===t&&(t=!1),this.doesHaveChildren=this.context.dataSource.hasChildren(this.context.tree,this.element),this.height=this._getHeight(),this.updateVisibility(),this._onDidRefresh.fire(this),this.refreshChildren(e,t)},e.prototype.updateVisibility=function(){this.setVisible(this._isVisible())},e.prototype.refresh=function(e){\nreturn this.doRefresh(e)},e.prototype.getNavigator=function(){return new h(this)},e.prototype.intersects=function(e){return this.isAncestorOf(e)||e.isAncestorOf(this)},e.prototype.isAncestorOf=function(e){for(var t=e;t;){if(t.id===this.id)return!0;t=t.parent}return!1},e.prototype.addChild=function(e,t){void 0===t&&(t=this.lastChild);var n=null===this.firstChild,i=null===t,o=t===this.lastChild;if(n)this.firstChild=this.lastChild=e,e.next=e.previous=null;else if(i){if(!this.firstChild)throw new Error(\"Invalid tree state\");this.firstChild.previous=e,e.next=this.firstChild,e.previous=null,this.firstChild=e}else if(o){if(!this.lastChild)throw new Error(\"Invalid tree state\");this.lastChild.next=e,e.next=null,e.previous=this.lastChild,this.lastChild=e}else{if(e.previous=t,!t)throw new Error(\"Invalid tree state\");if(e.next=t.next,!t.next)throw new Error(\"Invalid tree state\");t.next.previous=e,t.next=e}e.parent=this,e.depth=this.depth+1},e.prototype.removeChild=function(e){\nvar t=this.firstChild===e,n=this.lastChild===e;if(t&&n)this.firstChild=this.lastChild=null;else if(t){if(!e.next)throw new Error(\"Invalid tree state\");e.next.previous=null,this.firstChild=e.next}else if(n){if(!e.previous)throw new Error(\"Invalid tree state\");e.previous.next=null,this.lastChild=e.previous}else{if(!e.next)throw new Error(\"Invalid tree state\");if(e.next.previous=e.previous,!e.previous)throw new Error(\"Invalid tree state\");e.previous.next=e.next}e.parent=null,e.depth=NaN},e.prototype.forEachChild=function(e){for(var t,n=this.firstChild;n;)t=n.next,e(n),n=t},e.prototype.mapEachChild=function(e){var t=[];return this.forEachChild((function(n){t.push(e(n))})),t},e.prototype.sort=function(e){var t=this,n=this.context.sorter;return n?e.sort((function(e,i){return n.compare(t.context.tree,e,i)})):e},e.prototype._getHeight=function(){return this.context.renderer?this.context.renderer.getHeight(this.context.tree,this.element):0},e.prototype._isVisible=function(){\nreturn!!this.context.filter&&this.context.filter.isVisible(this.context.tree,this.element)},e.prototype.isDisposed=function(){return this._isDisposed},e.prototype.dispose=function(){this.forEachChild((function(e){return e.dispose()})),this.parent=null,this.previous=null,this.next=null,this.firstChild=null,this.lastChild=null,this._onDidDispose.fire(this),this.registry.deregister(this),this._onDidCreate.dispose(),this._onDidReveal.dispose(),this._onExpand.dispose(),this._onDidExpand.dispose(),this._onCollapse.dispose(),this._onDidCollapse.dispose(),this._onDidAddTrait.dispose(),this._onDidRemoveTrait.dispose(),this._onDidRefresh.dispose(),this._onRefreshChildren.dispose(),this._onDidRefreshChildren.dispose(),this._onDidDispose.dispose(),this._isDisposed=!0},e}();t.Item=d;var c=function(e){function t(t,n,i,o,r){return e.call(this,t,n,i,o,r)||this}return r(t,e),t.prototype.isVisible=function(){return!1},t.prototype.setVisible=function(e){},t.prototype.isExpanded=function(){return!0},\nt.prototype._setExpanded=function(e){},t.prototype._getHeight=function(){return 0},t.prototype._isVisible=function(){return!1},t}(d),h=function(){function e(e,t){void 0===t&&(t=!0),this.item=e,this.start=t?e:null}return e.lastDescendantOf=function(t){return t?t instanceof c?e.lastDescendantOf(t.lastChild):t.isVisible()?t.isExpanded()&&null!==t.lastChild?e.lastDescendantOf(t.lastChild):t:e.lastDescendantOf(t.previous):null},e.prototype.current=function(){return this.item||null},e.prototype.next=function(){if(this.item)do{if((this.item instanceof c||this.item.isVisible()&&this.item.isExpanded())&&this.item.firstChild)this.item=this.item.firstChild;else if(this.item===this.start)this.item=null;else{for(;this.item&&this.item!==this.start&&!this.item.next;)this.item=this.item.parent;this.item===this.start&&(this.item=null),this.item=this.item?this.item.next:null}}while(this.item&&!this.item.isVisible());return this.item||null},e.prototype.previous=function(){if(this.item)do{\nvar t=e.lastDescendantOf(this.item.previous);t?this.item=t:this.item.parent&&this.item.parent!==this.start&&this.item.parent.isVisible()?this.item=this.item.parent:this.item=null}while(this.item&&!this.item.isVisible());return this.item||null},e.prototype.parent=function(){if(this.item){var e=this.item.parent;e&&e!==this.start&&e.isVisible()?this.item=e:this.item=null}return this.item||null},e.prototype.first=function(){return this.item=this.start,this.next(),this.item||null},e.prototype.last=function(){return e.lastDescendantOf(this.start)},e}();t.TreeNavigator=h;var p=function(){function e(e){this.registry=new u,this.registryDisposable=o.Disposable.None,this._onSetInput=new s.Emitter,this.onSetInput=this._onSetInput.event,this._onDidSetInput=new s.Emitter,this.onDidSetInput=this._onDidSetInput.event,this._onRefresh=new s.Emitter,this.onRefresh=this._onRefresh.event,this._onDidRefresh=new s.Emitter,this.onDidRefresh=this._onDidRefresh.event,this._onDidHighlight=new s.Emitter,\nthis.onDidHighlight=this._onDidHighlight.event,this._onDidSelect=new s.Emitter,this.onDidSelect=this._onDidSelect.event,this._onDidFocus=new s.Emitter,this.onDidFocus=this._onDidFocus.event,this._onDidRevealItem=new s.Relay,this.onDidRevealItem=this._onDidRevealItem.event,this._onExpandItem=new s.Relay,this.onExpandItem=this._onExpandItem.event,this._onDidExpandItem=new s.Relay,this.onDidExpandItem=this._onDidExpandItem.event,this._onCollapseItem=new s.Relay,this.onCollapseItem=this._onCollapseItem.event,this._onDidCollapseItem=new s.Relay,this.onDidCollapseItem=this._onDidCollapseItem.event,this._onDidAddTraitItem=new s.Relay,this.onDidAddTraitItem=this._onDidAddTraitItem.event,this._onDidRemoveTraitItem=new s.Relay,this.onDidRemoveTraitItem=this._onDidRemoveTraitItem.event,this._onDidRefreshItem=new s.Relay,this.onDidRefreshItem=this._onDidRefreshItem.event,this._onRefreshItemChildren=new s.Relay,this.onRefreshItemChildren=this._onRefreshItemChildren.event,this._onDidRefreshItemChildren=new s.Relay,\nthis.onDidRefreshItemChildren=this._onDidRefreshItemChildren.event,this._onDidDisposeItem=new s.Relay,this.context=e,this.input=null,this.traitsToItems={}}return e.prototype.setInput=function(e){var t=this,n={item:this.input};this._onSetInput.fire(n),this.setSelection([]),this.setFocus(),this.setHighlight(),this.lock=new l,this.input&&this.input.dispose(),this.registry&&(this.registry.dispose(),this.registryDisposable.dispose()),this.registry=new u,this._onDidRevealItem.input=this.registry.onDidRevealItem,this._onExpandItem.input=this.registry.onExpandItem,this._onDidExpandItem.input=this.registry.onDidExpandItem,this._onCollapseItem.input=this.registry.onCollapseItem,this._onDidCollapseItem.input=this.registry.onDidCollapseItem,this._onDidAddTraitItem.input=this.registry.onDidAddTraitItem,this._onDidRemoveTraitItem.input=this.registry.onDidRemoveTraitItem,this._onDidRefreshItem.input=this.registry.onDidRefreshItem,this._onRefreshItemChildren.input=this.registry.onRefreshItemChildren,\nthis._onDidRefreshItemChildren.input=this.registry.onDidRefreshItemChildren,this._onDidDisposeItem.input=this.registry.onDidDisposeItem,this.registryDisposable=this.registry.onDidDisposeItem((function(e){return e.getAllTraits().forEach((function(n){return delete t.traitsToItems[n][e.id]}))}));var i=this.context.dataSource.getId(this.context.tree,e);return this.input=new c(i,this.registry,this.context,this.lock,e),n={item:this.input},this._onDidSetInput.fire(n),this.refresh(this.input)},e.prototype.getInput=function(){return this.input?this.input.getElement():null},e.prototype.refresh=function(e,t){var n=this;void 0===e&&(e=null),void 0===t&&(t=!0);var i=this.getItem(e);if(!i)return Promise.resolve(null);var o={item:i,recursive:t};return this._onRefresh.fire(o),i.refresh(t).then((function(){n._onDidRefresh.fire(o)}))},e.prototype.expand=function(e){var t=this.getItem(e);return t?t.expand():Promise.resolve(!1)},e.prototype.collapse=function(e,t){void 0===t&&(t=!1);var n=this.getItem(e)\n;return n?n.collapse(t):Promise.resolve(!1)},e.prototype.toggleExpansion=function(e,t){return void 0===t&&(t=!1),this.isExpanded(e)?this.collapse(e,t):this.expand(e)},e.prototype.isExpanded=function(e){var t=this.getItem(e);return!!t&&t.isExpanded()},e.prototype.reveal=function(e,t){var n=this;return void 0===t&&(t=null),this.resolveUnknownParentChain(e).then((function(e){var t=Promise.resolve(null);return e.forEach((function(e){t=t.then((function(){return n.expand(e)}))})),t})).then((function(){var i=n.getItem(e);if(i)return i.reveal(t)}))},e.prototype.resolveUnknownParentChain=function(e){var t=this;return this.context.dataSource.getParent(this.context.tree,e).then((function(e){return e?t.resolveUnknownParentChain(e).then((function(t){return t.push(e),t})):Promise.resolve([])}))},e.prototype.setHighlight=function(e,t){this.setTraits(\"highlighted\",e?[e]:[]);var n={highlight:this.getHighlight(),payload:t};this._onDidHighlight.fire(n)},e.prototype.getHighlight=function(e){void 0===e&&(e=!1)\n;var t=this.getElementsWithTrait(\"highlighted\",e);return 0===t.length?null:t[0]},e.prototype.setSelection=function(e,t){this.setTraits(\"selected\",e);var n={selection:this.getSelection(),payload:t};this._onDidSelect.fire(n)},e.prototype.getSelection=function(e){return void 0===e&&(e=!1),this.getElementsWithTrait(\"selected\",e)},e.prototype.setFocus=function(e,t){this.setTraits(\"focused\",e?[e]:[]);var n={focus:this.getFocus(),payload:t};this._onDidFocus.fire(n)},e.prototype.getFocus=function(e){void 0===e&&(e=!1);var t=this.getElementsWithTrait(\"focused\",e);return 0===t.length?null:t[0]},e.prototype.focusNext=function(e,t){void 0===e&&(e=1);for(var n,i=this.getFocus()||this.input,o=this.getNavigator(i,!1),r=0;r<e&&(n=o.next());r++)i=n;this.setFocus(i,t)},e.prototype.focusPrevious=function(e,t){void 0===e&&(e=1);for(var n,i=this.getFocus()||this.input,o=this.getNavigator(i,!1),r=0;r<e&&(n=o.previous());r++)i=n;this.setFocus(i,t)},e.prototype.focusParent=function(e){\nvar t=this.getFocus()||this.input,n=this.getNavigator(t,!1).parent();n&&this.setFocus(n,e)},e.prototype.focusFirstChild=function(e){var t=this.getItem(this.getFocus()||this.input),n=this.getNavigator(t,!1),i=n.next();n.parent()===t&&this.setFocus(i,e)},e.prototype.focusFirst=function(e,t){this.focusNth(0,e,t)},e.prototype.focusNth=function(e,t,n){for(var i=this.getParent(n),o=this.getNavigator(i),r=o.first(),s=0;s<e;s++)r=o.next();r&&this.setFocus(r,t)},e.prototype.focusLast=function(e,t){var n,i=this.getParent(t);t&&i?n=i.lastChild:n=this.getNavigator(i).last();n&&this.setFocus(n,e)},e.prototype.getParent=function(e){if(e){var t=this.getItem(e);if(t&&t.parent)return t.parent}return this.getItem(this.input)},e.prototype.getNavigator=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!0),new h(this.getItem(e),t)},e.prototype.getItem=function(e){return void 0===e&&(e=null),\nnull===e?this.input:e instanceof d?e:\"string\"==typeof e?this.registry.getItem(e):this.registry.getItem(this.context.dataSource.getId(this.context.tree,e))},e.prototype.removeTraits=function(e,t){var n,i,o=this.traitsToItems[e]||{};if(0===t.length){for(i in o)o.hasOwnProperty(i)&&(n=o[i]).removeTrait(e);delete this.traitsToItems[e]}else for(var r=0,s=t.length;r<s;r++)(n=this.getItem(t[r]))&&(n.removeTrait(e),delete o[n.id])},e.prototype.setTraits=function(e,t){if(0===t.length)this.removeTraits(e,t);else{for(var n={},i=void 0,o=0,r=t.length;o<r;o++)(i=this.getItem(t[o]))&&(n[i.id]=i);var s=this.traitsToItems[e]||{},a=[],l=void 0;for(l in s)s.hasOwnProperty(l)&&(n.hasOwnProperty(l)?delete n[l]:a.push(s[l]));for(o=0,r=a.length;o<r;o++)(i=a[o]).removeTrait(e),delete s[i.id];for(l in n)n.hasOwnProperty(l)&&((i=n[l]).addTrait(e),s[l]=i);this.traitsToItems[e]=s}},e.prototype.getElementsWithTrait=function(e,t){var n,i=[],o=this.traitsToItems[e]||{}\n;for(n in o)o.hasOwnProperty(n)&&(o[n].isVisible()||t)&&i.push(o[n].getElement());return i},e.prototype.dispose=function(){this.registry.dispose(),this._onSetInput.dispose(),this._onDidSetInput.dispose(),this._onRefresh.dispose(),this._onDidRefresh.dispose(),this._onDidHighlight.dispose(),this._onDidSelect.dispose(),this._onDidFocus.dispose(),this._onDidRevealItem.dispose(),this._onExpandItem.dispose(),this._onDidExpandItem.dispose(),this._onCollapseItem.dispose(),this._onDidCollapseItem.dispose(),this._onDidAddTraitItem.dispose(),this._onDidRemoveTraitItem.dispose(),this._onDidRefreshItem.dispose(),this._onRefreshItemChildren.dispose(),this._onDidRefreshItemChildren.dispose(),this._onDidDisposeItem.dispose()},e}();t.TreeModel=p})),define(n[257],i([0,1,54]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this.heightMap=[],this.indexes={}}return e.prototype.getContentHeight=function(){var e=this.heightMap[this.heightMap.length-1]\n;return e?e.top+e.height:0},e.prototype.onInsertItems=function(e,t){void 0===t&&(t=null);var n,i,o,r,s=null,a=0;if(null===t)i=0,r=0;else{if(i=this.indexes[t]+1,!(n=this.heightMap[i-1]))return void console.error(\"view item doesnt exist\");r=n.top+n.height}for(var l=this.heightMap.splice.bind(this.heightMap,i,0),u=[];s=e.next();)(n=this.createViewItem(s)).top=r+a,this.indexes[s.id]=i++,u.push(n),a+=n.height;for(l.apply(this.heightMap,u),o=i;o<this.heightMap.length;o++)(n=this.heightMap[o]).top+=a,this.indexes[n.model.id]=o;for(o=u.length-1;o>=0;o--)this.onInsertItem(u[o]);for(o=this.heightMap.length-1;o>=i;o--)this.onRefreshItem(this.heightMap[o]);return a},e.prototype.onInsertItem=function(e){},e.prototype.onRemoveItems=function(e){for(var t,n=null,i=null,o=0,r=0;n=e.next();){if(o=this.indexes[n],!(t=this.heightMap[o]))return void console.error(\"view item doesnt exist\");r-=t.height,delete this.indexes[n],this.onRemoveItem(t),null===i&&(i=o)}if(0!==r&&null!==i)for(this.heightMap.splice(i,o-i+1),\no=i;o<this.heightMap.length;o++)(t=this.heightMap[o]).top+=r,this.indexes[t.model.id]=o,this.onRefreshItem(t)},e.prototype.onRemoveItem=function(e){},e.prototype.onRefreshItemSet=function(e){var t=this,i=e.sort((function(e,n){return t.indexes[e.id]-t.indexes[n.id]}));this.onRefreshItems(new n.ArrayIterator(i))},e.prototype.onRefreshItems=function(e){for(var t,n,i,o=null,r=null,s=0;o=e.next();){for(i=this.indexes[o.id];0!==s&&null!==r&&r<i;r++)(t=this.heightMap[r]).top+=s,this.onRefreshItem(t);t=this.heightMap[i],n=o.getHeight(),t.top+=s,s+=n-t.height,t.height=n,this.onRefreshItem(t,!0),r=i+1}if(0!==s&&null!==r)for(;r<this.heightMap.length;r++)(t=this.heightMap[r]).top+=s,this.onRefreshItem(t)},e.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1)},e.prototype.indexAt=function(e){for(var t,n,i=0,o=this.heightMap.length;i<o;)if(t=Math.floor((i+o)/2),e<(n=this.heightMap[t]).top)o=t;else{if(!(e>=n.top+n.height))return t;if(i===t)break;i=t}return this.heightMap.length},e.prototype.indexAfter=function(e){\nreturn Math.min(this.indexAt(e)+1,this.heightMap.length)},e.prototype.itemAtIndex=function(e){return this.heightMap[e]},e.prototype.itemAfter=function(e){return this.heightMap[this.indexes[e.model.id]+1]||null},e.prototype.createViewItem=function(e){throw new Error(\"not implemented\")},e.prototype.dispose=function(){this.heightMap=[],this.indexes={}},e}();t.HeightMap=i})),define(n[258],i([0,1,16,182]),(function(e,t,n,i){\"use strict\";function o(t,n){if(/^(http:)|(https:)|(file:)/.test(t)){var i=String(window.location),o=i.substr(0,i.length-window.location.hash.length-window.location.search.length-window.location.pathname.length);if(t.substring(0,o.length)!==o){var r=\"vs/base/worker/defaultWorkerFactory.js\",s=e.toUrl(r).slice(0,-r.length);return\"data:text/javascript;charset=utf-8,\"+encodeURIComponent(\"/*\"+n+\"*/self.MonacoEnvironment={baseUrl: '\"+s+\"'};importScripts('\"+t+\"');/*\"+n+\"*/\")}}return t+\"#\"+n}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWorkerBootstrapUrl=o;var r=function(){\nfunction t(t,i,r,s,a){this.id=i;var l=function(t,i){if(n.globals.MonacoEnvironment){if(\"function\"==typeof n.globals.MonacoEnvironment.getWorker)return n.globals.MonacoEnvironment.getWorker(t,i);if(\"function\"==typeof n.globals.MonacoEnvironment.getWorkerUrl)return new Worker(n.globals.MonacoEnvironment.getWorkerUrl(t,i))}if(\"function\"==typeof e){var r=o(e.toUrl(\"./\"+t),i);return new Worker(r,{name:i})}throw new Error(\"You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker\")}(\"workerMain.js\",r);\"function\"==typeof l.then?this.worker=l:this.worker=Promise.resolve(l),this.postMessage(t,[]),this.worker.then((function(e){e.onmessage=function(e){s(e.data)},e.onmessageerror=a,\"function\"==typeof e.addEventListener&&e.addEventListener(\"error\",a)}))}return t.prototype.getId=function(){return this.id},t.prototype.postMessage=function(e,t){this.worker&&this.worker.then((function(n){return n.postMessage(e,t)}))},t.prototype.dispose=function(){this.worker&&this.worker.then((function(e){\nreturn e.terminate()})),this.worker=null},t}(),s=function(){function e(e){this._label=e,this._webWorkerFailedBeforeError=!1}return e.prototype.create=function(t,n,o){var s=this,a=++e.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new r(t,a,this._label||\"anonymous\"+a,n,(function(e){i.logOnceWebWorkerWarning(e),s._webWorkerFailedBeforeError=e,o(e)}))},e.LAST_WORKER_ID=0,e}();t.DefaultWorkerFactory=s})),define(n[259],i([9]),{}),define(n[260],i([9]),{}),define(n[261],i([9]),{}),define(n[138],i([0,1,6,47,27,4,31,261]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l={inputActiveOptionBorder:o.Color.fromHex(\"#007ACC00\"),inputActiveOptionBackground:o.Color.fromHex(\"#0E639C50\")},u=function(e){function t(t){var n=e.call(this)||this;return n._onChange=n._register(new s.Emitter),n.onChange=n._onChange.event,n._onKeyDown=n._register(new s.Emitter),n.onKeyDown=n._onKeyDown.event,n._opts=a.deepClone(t),a.mixin(n._opts,l,!1),\nn._checked=n._opts.isChecked,n.domNode=document.createElement(\"div\"),n.domNode.title=n._opts.title,n.domNode.className=\"monaco-custom-checkbox codicon \"+(n._opts.actionClassName||\"\")+\" \"+(n._checked?\"checked\":\"unchecked\"),n.domNode.tabIndex=0,n.domNode.setAttribute(\"role\",\"checkbox\"),n.domNode.setAttribute(\"aria-checked\",String(n._checked)),n.domNode.setAttribute(\"aria-label\",n._opts.title),n.applyStyles(),n.onclick(n.domNode,(function(e){n.checked=!n._checked,n._onChange.fire(!1),e.preventDefault()})),n.ignoreGesture(n.domNode),n.onkeydown(n.domNode,(function(e){if(10===e.keyCode||3===e.keyCode)return n.checked=!n._checked,n._onChange.fire(!0),void e.preventDefault();n._onKeyDown.fire(e)})),n}return r(t,e),Object.defineProperty(t.prototype,\"enabled\",{get:function(){return\"true\"!==this.domNode.getAttribute(\"aria-disabled\")},enumerable:!0,configurable:!0}),t.prototype.focus=function(){this.domNode.focus()},Object.defineProperty(t.prototype,\"checked\",{get:function(){return this._checked},set:function(e){\nthis._checked=e,this.domNode.setAttribute(\"aria-checked\",String(this._checked)),this._checked?this.domNode.classList.add(\"checked\"):this.domNode.classList.remove(\"checked\"),this.applyStyles()},enumerable:!0,configurable:!0}),t.prototype.width=function(){return 22},t.prototype.style=function(e){e.inputActiveOptionBorder&&(this._opts.inputActiveOptionBorder=e.inputActiveOptionBorder),e.inputActiveOptionBackground&&(this._opts.inputActiveOptionBackground=e.inputActiveOptionBackground),this.applyStyles()},t.prototype.applyStyles=function(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder?this._opts.inputActiveOptionBorder.toString():\"transparent\",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground?this._opts.inputActiveOptionBackground.toString():\"transparent\")},t.prototype.enable=function(){this.domNode.tabIndex=0,this.domNode.setAttribute(\"aria-disabled\",String(!1))},t.prototype.disable=function(){\nn.removeTabIndexAndUpdateFocus(this.domNode),this.domNode.setAttribute(\"aria-disabled\",String(!0))},t}(i.Widget);t.Checkbox=u})),define(n[262],i([9]),{}),define(n[263],i([9]),{}),define(n[183],i([0,1,262,263]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})})),define(n[264],i([9]),{}),define(n[265],i([0,1,6,16,2,103,88,264]),(function(e,t,n,i,o,s,a){\"use strict\";function l(e,t,n){var i=n.offset+n.size;return 0===n.position?t<=e-i?i:t<=n.offset?n.offset-t:Math.max(e-t,0):t<=n.offset?n.offset-t:t<=e-i?i:0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.layout=l;var u=function(e){function t(t){var i=e.call(this)||this;return i.container=null,i.delegate=null,i.toDisposeOnClean=o.Disposable.None,i.toDisposeOnSetContainer=o.Disposable.None,i.view=n.$(\".context-view\"),n.hide(i.view),i.setContainer(t),i._register(o.toDisposable((function(){return i.setContainer(null)}))),i}return r(t,e),t.prototype.setContainer=function(e){var i=this\n;if(this.container&&(this.toDisposeOnSetContainer.dispose(),this.container.removeChild(this.view),this.container=null),e){this.container=e,this.container.appendChild(this.view);var r=new o.DisposableStore;t.BUBBLE_UP_EVENTS.forEach((function(e){r.add(n.addStandardDisposableListener(i.container,e,(function(e){i.onDOMEvent(e,!1)})))})),t.BUBBLE_DOWN_EVENTS.forEach((function(e){r.add(n.addStandardDisposableListener(i.container,e,(function(e){i.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=r}},t.prototype.show=function(e){this.isVisible()&&this.hide(),n.clearNode(this.view),this.view.className=\"context-view\",this.view.style.top=\"0px\",this.view.style.left=\"0px\",n.show(this.view),this.toDisposeOnClean=e.render(this.view)||o.Disposable.None,this.delegate=e,this.doLayout(),this.delegate.focus&&this.delegate.focus()},t.prototype.layout=function(){this.isVisible()&&(!1!==this.delegate.canRelayout||i.isIOS&&a.BrowserFeatures.pointerEvents?(this.delegate.layout&&this.delegate.layout(),\nthis.doLayout()):this.hide())},t.prototype.doLayout=function(){if(this.isVisible()){var e,t=this.delegate.getAnchor();if(n.isHTMLElement(t)){var i=n.getDomNodePagePosition(t);e={top:i.top,left:i.left,width:i.width,height:i.height}}else e={top:t.y,left:t.x,width:t.width||1,height:t.height||2};var o,r=n.getTotalWidth(this.view),a=n.getTotalHeight(this.view),u=this.delegate.anchorPosition||0,d=this.delegate.anchorAlignment||0,c={offset:e.top-window.pageYOffset,size:e.height,position:0===u?0:1};o=0===d?{offset:e.left,size:0,position:0}:{offset:e.left+e.width,size:0,position:1};var h=l(window.innerHeight,a,c)+window.pageYOffset;s.Range.intersects({start:h,end:h+a},{start:c.offset,end:c.offset+c.size})&&(o.size=e.width,1===d&&(o.offset=e.left));var p=l(window.innerWidth,r,o);n.removeClasses(this.view,\"top\",\"bottom\",\"left\",\"right\"),n.addClass(this.view,0===u?\"bottom\":\"top\"),n.addClass(this.view,0===d?\"left\":\"right\");var g=n.getDomNodePagePosition(this.container);this.view.style.top=h-g.top+\"px\",\nthis.view.style.left=p-g.left+\"px\",this.view.style.width=\"initial\"}},t.prototype.hide=function(e){var t=this.delegate;this.delegate=null,(null==t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),n.hide(this.view)},t.prototype.isVisible=function(){return!!this.delegate},t.prototype.onDOMEvent=function(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!n.isAncestor(e.target,this.container)&&this.hide())},t.prototype.dispose=function(){this.hide(),e.prototype.dispose.call(this)},t.BUBBLE_UP_EVENTS=[\"click\",\"keydown\",\"focus\",\"blur\"],t.BUBBLE_DOWN_EVENTS=[\"click\"],t}(o.Disposable);t.ContextView=u})),define(n[266],i([9]),{}),define(n[267],i([0,1,6,5,27,31,266]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s={badgeBackground:o.Color.fromHex(\"#4D4D4D\"),badgeForeground:o.Color.fromHex(\"#FFFFFF\")},a=function(){function e(e,t){this.count=0,this.options=t||Object.create(null),r.mixin(this.options,s,!1),\nthis.badgeBackground=this.options.badgeBackground,this.badgeForeground=this.options.badgeForeground,this.badgeBorder=this.options.badgeBorder,this.element=n.append(e,n.$(\".monaco-count-badge\")),this.countFormat=this.options.countFormat||\"{0}\",this.titleFormat=this.options.titleFormat||\"\",this.setCount(this.options.count||0)}return e.prototype.setCount=function(e){this.count=e,this.render()},e.prototype.setTitleFormat=function(e){this.titleFormat=e,this.render()},e.prototype.render=function(){this.element.textContent=i.format(this.countFormat,this.count),this.element.title=i.format(this.titleFormat,this.count),this.applyStyles()},e.prototype.style=function(e){this.badgeBackground=e.badgeBackground,this.badgeForeground=e.badgeForeground,this.badgeBorder=e.badgeBorder,this.applyStyles()},e.prototype.applyStyles=function(){if(this.element){var e=this.badgeBackground?this.badgeBackground.toString():\"\",t=this.badgeForeground?this.badgeForeground.toString():\"\",n=this.badgeBorder?this.badgeBorder.toString():\"\"\n;this.element.style.backgroundColor=e,this.element.style.color=t,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.borderColor=n}},e}();t.CountBadge=a})),define(n[184],i([9]),{}),define(n[268],i([9]),{}),define(n[139],i([0,1,6,133,2,103,31,268]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e){this._element=e}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"textContent\",{set:function(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"className\",{set:function(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"title\",{set:function(e){\nthis.disposed||e===this._title||(this._title=e,this._title?this._element.title=e:this._element.removeAttribute(\"title\"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"empty\",{set:function(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?\"0\":\"\")},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.disposed=!0},e}(),u=function(e){function t(t,o){var r=e.call(this)||this;r.domNode=r._register(new l(n.append(t,n.$(\".monaco-icon-label\"))));var s=n.append(r.domNode.element,n.$(\".monaco-icon-label-container\")),a=n.append(s,n.$(\"span.monaco-icon-name-container\"));return r.descriptionContainer=r._register(new l(n.append(s,n.$(\"span.monaco-icon-description-container\")))),(null==o?void 0:o.supportHighlights)?r.nameNode=new c(a,!!o.supportCodicons):r.nameNode=new d(a),(null==o?void 0:o.supportDescriptionHighlights)?r.descriptionNodeFactory=function(){\nreturn new i.HighlightedLabel(n.append(r.descriptionContainer.element,n.$(\"span.label-description\")),!!o.supportCodicons)}:r.descriptionNodeFactory=function(){return r._register(new l(n.append(r.descriptionContainer.element,n.$(\"span.label-description\"))))},r}return r(t,e),t.prototype.setLabel=function(e,t,n){var o=[\"monaco-icon-label\"];n&&(n.extraClasses&&o.push.apply(o,n.extraClasses),n.italic&&o.push(\"italic\")),this.domNode.className=o.join(\" \"),this.domNode.title=(null==n?void 0:n.title)||\"\",this.nameNode.setLabel(e,n),(t||this.descriptionNode)&&(this.descriptionNode||(this.descriptionNode=this.descriptionNodeFactory()),this.descriptionNode instanceof i.HighlightedLabel?(this.descriptionNode.set(t||\"\",n?n.descriptionMatches:void 0),(null==n?void 0:n.descriptionTitle)?this.descriptionNode.element.title=n.descriptionTitle:this.descriptionNode.element.removeAttribute(\"title\")):(this.descriptionNode.textContent=t||\"\",this.descriptionNode.title=(null==n?void 0:n.descriptionTitle)||\"\",\nthis.descriptionNode.empty=!t))},t}(o.Disposable);t.IconLabel=u;var d=function(){function e(e){this.container=e,this.label=void 0,this.singleLabel=void 0}return e.prototype.setLabel=function(e,t){if(this.label!==e||!a.equals(this.options,t))if(this.label=e,this.options=t,\"string\"==typeof e)this.singleLabel||(this.container.innerHTML=\"\",n.removeClass(this.container,\"multiple\"),this.singleLabel=n.append(this.container,n.$(\"a.label-name\",{id:null==t?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerHTML=\"\",n.addClass(this.container,\"multiple\"),this.singleLabel=void 0;for(var i=0;i<e.length;i++){var o=e[i],r=(null==t?void 0:t.domId)&&(null==t?void 0:t.domId)+\"_\"+i;n.append(this.container,n.$(\"a.label-name\",{id:r,\"data-icon-label-count\":e.length,\"data-icon-label-index\":i},o)),i<e.length-1&&n.append(this.container,n.$(\"span.label-separator\",void 0,(null==t?void 0:t.separator)||\"/\"))}}},e}();var c=function(){function e(e,t){this.container=e,this.supportCodicons=t,this.label=void 0,\nthis.singleLabel=void 0}return e.prototype.setLabel=function(e,t){if(this.label!==e||!a.equals(this.options,t))if(this.label=e,this.options=t,\"string\"==typeof e)this.singleLabel||(this.container.innerHTML=\"\",n.removeClass(this.container,\"multiple\"),this.singleLabel=new i.HighlightedLabel(n.append(this.container,n.$(\"a.label-name\",{id:null==t?void 0:t.domId})),this.supportCodicons)),this.singleLabel.set(e,null==t?void 0:t.matches,null==t?void 0:t.title,null==t?void 0:t.labelEscapeNewLines);else{this.container.innerHTML=\"\",n.addClass(this.container,\"multiple\"),this.singleLabel=void 0;for(var o=(null==t?void 0:t.separator)||\"/\",r=function(e,t,n){if(n){var i=0;return e.map((function(e){var o={start:i,end:i+e.length},r=n.map((function(e){return s.Range.intersect(o,e)})).filter((function(e){return!s.Range.isEmpty(e)})).map((function(e){var t=e.start,n=e.end;return{start:t-i,end:n-i}}));return i=o.end+t.length,r}))}}(e,o,null==t?void 0:t.matches),l=0;l<e.length;l++){\nvar u=e[l],d=r?r[l]:void 0,c=(null==t?void 0:t.domId)&&(null==t?void 0:t.domId)+\"_\"+l,h=n.$(\"a.label-name\",{id:c,\"data-icon-label-count\":e.length,\"data-icon-label-index\":l});new i.HighlightedLabel(n.append(this.container,h),this.supportCodicons).set(u,d,null==t?void 0:t.title,null==t?void 0:t.labelEscapeNewLines),l<e.length-1&&n.append(h,n.$(\"span.label-separator\",void 0,o))}}},e}()})),define(n[269],i([9]),{}),define(n[270],i([9]),{}),define(n[271],i([9]),{}),define(n[272],i([9]),{}),define(n[273],i([9]),{}),define(n[274],i([0,1,2,27,31,6,15,273]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l={progressBarBackground:i.Color.fromHex(\"#0E70C0\")},u=function(e){function t(t,n){var i=e.call(this)||this;return i.options=n||Object.create(null),o.mixin(i.options,l,!1),i.workedVal=0,i.progressBarBackground=i.options.progressBarBackground,i._register(i.showDelayedScheduler=new a.RunOnceScheduler((function(){return s.show(i.element)}),0)),i.create(t),i}return r(t,e),\nt.prototype.create=function(e){this.element=document.createElement(\"div\"),s.addClass(this.element,\"monaco-progress-container\"),e.appendChild(this.element),this.bit=document.createElement(\"div\"),s.addClass(this.bit,\"progress-bit\"),this.element.appendChild(this.bit),this.applyStyles()},t.prototype.off=function(){this.bit.style.width=\"inherit\",this.bit.style.opacity=\"1\",s.removeClasses(this.element,\"active\",\"infinite\",\"discrete\"),this.workedVal=0,this.totalWork=void 0},t.prototype.stop=function(){return this.doDone(!1)},t.prototype.doDone=function(e){var t=this;return s.addClass(this.element,\"done\"),s.hasClass(this.element,\"infinite\")?(this.bit.style.opacity=\"0\",e?setTimeout((function(){return t.off()}),200):this.off()):(this.bit.style.width=\"inherit\",e?setTimeout((function(){return t.off()}),200):this.off()),this},t.prototype.hide=function(){s.hide(this.element),this.showDelayedScheduler.cancel()},t.prototype.style=function(e){this.progressBarBackground=e.progressBarBackground,this.applyStyles()},\nt.prototype.applyStyles=function(){if(this.bit){var e=this.progressBarBackground?this.progressBarBackground.toString():\"\";this.bit.style.backgroundColor=e}},t}(n.Disposable);t.ProgressBar=u})),define(n[275],i([9]),{});a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[104],i([0,1,2,24,16,21,57,45,4,6,52,275]),(function(e,t,n,i,o,s,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=!1,g=function(e){function t(t,r,s){void 0===s&&(s={});var a=e.call(this)||this;return a._state=3,a._onDidEnablementChange=a._register(new d.Emitter),a.onDidEnablementChange=a._onDidEnablementChange.event,a._onDidStart=a._register(new d.Emitter),a.onDidStart=a._onDidStart.event,a._onDidChange=a._register(new d.Emitter),a.onDidChange=a._onDidChange.event,a._onDidReset=a._register(new d.Emitter),a.onDidReset=a._onDidReset.event,\na._onDidEnd=a._register(new d.Emitter),a.onDidEnd=a._onDidEnd.event,a.linkedSash=void 0,a.orthogonalStartSashDisposables=a._register(new n.DisposableStore),a.orthogonalEndSashDisposables=a._register(new n.DisposableStore),a.el=c.append(t,c.$(\".monaco-sash\")),o.isMacintosh&&c.addClass(a.el,\"mac\"),a._register(h.domEvent(a.el,\"mousedown\")(a.onMouseDown,a)),a._register(h.domEvent(a.el,\"dblclick\")(a.onMouseDoubleClick,a)),a._register(l.Gesture.addTarget(a.el)),a._register(h.domEvent(a.el,l.EventType.Start)(a.onTouchStart,a)),i.isIPad&&c.addClass(a.el,\"touch\"),a.setOrientation(s.orientation||0),a.hidden=!1,a.layoutProvider=r,a.orthogonalStartSash=s.orthogonalStartSash,a.orthogonalEndSash=s.orthogonalEndSash,c.toggleClass(a.el,\"debug\",p),a}return r(t,e),Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){this._state!==e&&(c.toggleClass(this.el,\"disabled\",0===e),c.toggleClass(this.el,\"minimum\",1===e),c.toggleClass(this.el,\"maximum\",2===e),this._state=e,\nthis._onDidEnablementChange.fire(e))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalStartSash\",{get:function(){return this._orthogonalStartSash},set:function(e){this.orthogonalStartSashDisposables.clear(),e?(this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalStartSashEnablementChange,this)),this.onOrthogonalStartSashEnablementChange(e.state)):this.onOrthogonalStartSashEnablementChange(0),this._orthogonalStartSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalEndSash\",{get:function(){return this._orthogonalEndSash},set:function(e){this.orthogonalEndSashDisposables.clear(),e?(this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(this.onOrthogonalEndSashEnablementChange,this)),this.onOrthogonalEndSashEnablementChange(e.state)):this.onOrthogonalEndSashEnablementChange(0),this._orthogonalEndSash=e},enumerable:!0,configurable:!0}),t.prototype.setOrientation=function(e){this.orientation=e,\n1===this.orientation?(c.addClass(this.el,\"horizontal\"),c.removeClass(this.el,\"vertical\")):(c.removeClass(this.el,\"horizontal\"),c.addClass(this.el,\"vertical\")),this.layoutProvider&&this.layout()},t.prototype.onMouseDown=function(e){var t=this;c.EventHelper.stop(e,!1);var i=!1;if(!e.__orthogonalSashEvent){var r=this.getOrthogonalSash(e);r&&(i=!0,e.__orthogonalSashEvent=!0,r.onMouseDown(e))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),this.state){for(var s=a(c.getElementsByTagName(\"iframe\"),c.getElementsByTagName(\"webview\")),l=0,d=s;l<d.length;l++){d[l].style.pointerEvents=\"none\"}var p=new u.StandardMouseEvent(e),g=p.posx,f=p.posy,m=p.altKey,v={startX:g,currentX:g,startY:f,currentY:f,altKey:m};c.addClass(this.el,\"active\"),this._onDidStart.fire(v);var _=c.createStyleSheet(this.el),y=function(){var e=\"\"\n;e=i?\"all-scroll\":1===t.orientation?1===t.state?\"s-resize\":2===t.state?\"n-resize\":o.isMacintosh?\"row-resize\":\"ns-resize\":1===t.state?\"e-resize\":2===t.state?\"w-resize\":o.isMacintosh?\"col-resize\":\"ew-resize\",_.innerHTML=\"* { cursor: \"+e+\" !important; }\"},C=new n.DisposableStore;y(),i||this.onDidEnablementChange(y,null,C);h.domEvent(window,\"mousemove\")((function(e){c.EventHelper.stop(e,!1);var n=new u.StandardMouseEvent(e),i={startX:g,currentX:n.posx,startY:f,currentY:n.posy,altKey:m};t._onDidChange.fire(i)}),null,C),h.domEvent(window,\"mouseup\")((function(e){c.EventHelper.stop(e,!1),t.el.removeChild(_),c.removeClass(t.el,\"active\"),t._onDidEnd.fire(),C.dispose();for(var n=0,i=s;n<i.length;n++){i[n].style.pointerEvents=\"auto\"}}),null,C)}},t.prototype.onMouseDoubleClick=function(e){var t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()},t.prototype.onTouchStart=function(e){var t=this;c.EventHelper.stop(e)\n;var i=[],o=e.pageX,r=e.pageY,a=e.altKey;this._onDidStart.fire({startX:o,currentX:o,startY:r,currentY:r,altKey:a}),i.push(c.addDisposableListener(this.el,l.EventType.Change,(function(e){s.isNumber(e.pageX)&&s.isNumber(e.pageY)&&t._onDidChange.fire({startX:o,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:a})}))),i.push(c.addDisposableListener(this.el,l.EventType.End,(function(e){t._onDidEnd.fire(),n.dispose(i)})))},t.prototype.layout=function(){var e=i.isIPad?20:4;if(0===this.orientation){var t=this.layoutProvider;this.el.style.left=t.getVerticalSashLeft(this)-e/2+\"px\",t.getVerticalSashTop&&(this.el.style.top=t.getVerticalSashTop(this)+\"px\"),t.getVerticalSashHeight&&(this.el.style.height=t.getVerticalSashHeight(this)+\"px\")}else{var n=this.layoutProvider;this.el.style.top=n.getHorizontalSashTop(this)-e/2+\"px\",n.getHorizontalSashLeft&&(this.el.style.left=n.getHorizontalSashLeft(this)+\"px\"),n.getHorizontalSashWidth&&(this.el.style.width=n.getHorizontalSashWidth(this)+\"px\")}},t.prototype.hide=function(){\nthis.hidden=!0,this.el.style.display=\"none\",this.el.setAttribute(\"aria-hidden\",\"true\")},t.prototype.onOrthogonalStartSashEnablementChange=function(e){c.toggleClass(this.el,\"orthogonal-start\",0!==e)},t.prototype.onOrthogonalEndSashEnablementChange=function(e){c.toggleClass(this.el,\"orthogonal-end\",0!==e)},t.prototype.getOrthogonalSash=function(e){if(0===this.orientation){if(e.offsetY<=4)return this.orthogonalStartSash;if(e.offsetY>=this.el.clientHeight-4)return this.orthogonalEndSash}else{if(e.offsetX<=4)return this.orthogonalStartSash;if(e.offsetX>=this.el.clientWidth-4)return this.orthogonalEndSash}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.el.remove()},t}(n.Disposable);t.Sash=g})),define(n[276],i([9]),{}),define(n[53],i([0,1,24,6,28,45,250,251,47,15,4,2,16,176,276]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e,t,n){this.timestamp=e,this.deltaX=t,this.deltaY=n,this.score=0},m=function(){function e(){\nthis._capacity=5,this._memory=[],this._front=-1,this._rear=-1}return e.prototype.isPhysicalMouseWheel=function(){if(-1===this._front&&-1===this._rear)return!1;for(var e=1,t=0,n=1,i=this._rear;;){var o=i===this._front?e:Math.pow(2,-n);if(e-=o,t+=this._memory[i].score*o,i===this._front)break;i=(this._capacity+i-1)%this._capacity,n++}return t<=.5},e.prototype.accept=function(e,t,n){var i=new f(e,t,n);i.score=this._computeScore(i),-1===this._front&&-1===this._rear?(this._memory[0]=i,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i)},e.prototype._computeScore=function(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;var t=.5;-1===this._front&&-1===this._rear||this._memory[this._rear];return(Math.abs(e.deltaX-Math.round(e.deltaX))>0||Math.abs(e.deltaY-Math.round(e.deltaY))>0)&&(t+=.25),Math.min(Math.max(t,0),1)},e.INSTANCE=new e,e}();t.MouseWheelClassifier=m;var v=function(e){\nfunction t(t,n,i){var r=e.call(this)||this;r._onScroll=r._register(new c.Emitter),r.onScroll=r._onScroll.event,t.style.overflow=\"hidden\",r._options=b(n),r._scrollable=i,r._register(r._scrollable.onScroll((function(e){r._onDidScroll(e),r._onScroll.fire(e)})));var s={onMouseWheel:function(e){return r._onMouseWheel(e)},onDragStart:function(){return r._onDragStart()},onDragEnd:function(){return r._onDragEnd()}};return r._verticalScrollbar=r._register(new l.VerticalScrollbar(r._scrollable,r._options,s)),r._horizontalScrollbar=r._register(new a.HorizontalScrollbar(r._scrollable,r._options,s)),r._domNode=document.createElement(\"div\"),r._domNode.className=\"monaco-scrollable-element \"+r._options.className,r._domNode.setAttribute(\"role\",\"presentation\"),r._domNode.style.position=\"relative\",r._domNode.style.overflow=\"hidden\",r._domNode.appendChild(t),r._domNode.appendChild(r._horizontalScrollbar.domNode.domNode),r._domNode.appendChild(r._verticalScrollbar.domNode.domNode),\nr._options.useShadows?(r._leftShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._leftShadowDomNode.setClassName(\"shadow\"),r._domNode.appendChild(r._leftShadowDomNode.domNode),r._topShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._topShadowDomNode.setClassName(\"shadow\"),r._domNode.appendChild(r._topShadowDomNode.domNode),r._topLeftShadowDomNode=o.createFastDomNode(document.createElement(\"div\")),r._topLeftShadowDomNode.setClassName(\"shadow top-left-corner\"),r._domNode.appendChild(r._topLeftShadowDomNode.domNode)):(r._leftShadowDomNode=null,r._topShadowDomNode=null,r._topLeftShadowDomNode=null),r._listenOnDomNode=r._options.listenOnDomNode||r._domNode,r._mouseWheelToDispose=[],r._setListeningToMouseWheel(r._options.handleMouseWheel),r.onmouseover(r._listenOnDomNode,(function(e){return r._onMouseOver(e)})),r.onnonbubblingmouseout(r._listenOnDomNode,(function(e){return r._onMouseOut(e)})),r._hideTimeout=r._register(new d.TimeoutTimer),r._isDragging=!1,r._mouseIsOver=!1,\nr._shouldRender=!0,r._revealOnScroll=!0,r}return r(t,e),t.prototype.dispose=function(){this._mouseWheelToDispose=h.dispose(this._mouseWheelToDispose),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getOverviewRulerLayoutInfo=function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._verticalScrollbar.delegateMouseDown(e)},t.prototype.getScrollDimensions=function(){return this._scrollable.getScrollDimensions()},t.prototype.setScrollDimensions=function(e){this._scrollable.setScrollDimensions(e)},t.prototype.updateClassName=function(e){this._options.className=e,p.isMacintosh&&(this._options.className+=\" mac\"),this._domNode.className=\"monaco-scrollable-element \"+this._options.className},t.prototype.updateOptions=function(e){var t=b(e);this._options.handleMouseWheel=t.handleMouseWheel,this._options.mouseWheelScrollSensitivity=t.mouseWheelScrollSensitivity,\nthis._options.fastScrollSensitivity=t.fastScrollSensitivity,this._setListeningToMouseWheel(this._options.handleMouseWheel),this._options.lazyRender||this._render()},t.prototype._setListeningToMouseWheel=function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=h.dispose(this._mouseWheelToDispose),e)){this._mouseWheelToDispose.push(i.addDisposableListener(this._listenOnDomNode,n.isEdgeOrIE?\"mousewheel\":\"wheel\",(function(e){t._onMouseWheel(new s.StandardWheelEvent(e))}),{passive:!1}))}},t.prototype._onMouseWheel=function(e){var t,n=m.INSTANCE;if(n.accept(Date.now(),e.deltaX,e.deltaY),e.deltaY||e.deltaX){var i=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.flipAxes&&(i=(t=[o,i])[0],o=t[1]);var r=!p.isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!r||o||(o=i,i=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,\ni*=this._options.fastScrollSensitivity);var s=this._scrollable.getFutureScrollPosition(),a={};if(i){var l=s.scrollTop-50*i;this._verticalScrollbar.writeScrollPosition(a,l)}if(o){var u=s.scrollLeft-50*o;this._horizontalScrollbar.writeScrollPosition(a,u)}if(a=this._scrollable.validateScrollPosition(a),s.scrollLeft!==a.scrollLeft||s.scrollTop!==a.scrollTop)this._options.mouseWheelSmoothScroll&&n.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(a):this._scrollable.setScrollPositionNow(a),this._shouldRender=!0}(this._options.alwaysConsumeMouseWheel||this._shouldRender)&&(e.preventDefault(),e.stopPropagation())},t.prototype._onDidScroll=function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()},t.prototype.renderNow=function(){\nif(!this._options.lazyRender)throw new Error(\"Please use `lazyRender` together with `renderNow`!\");this._render()},t.prototype._render=function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0;this._leftShadowDomNode.setClassName(\"shadow\"+(n?\" left\":\"\")),this._topShadowDomNode.setClassName(\"shadow\"+(t?\" top\":\"\")),this._topLeftShadowDomNode.setClassName(\"shadow top-left-corner\"+(t?\" top\":\"\")+(n?\" left\":\"\"))}},t.prototype._onDragStart=function(){this._isDragging=!0,this._reveal()},t.prototype._onDragEnd=function(){this._isDragging=!1,this._hide()},t.prototype._onMouseOut=function(e){this._mouseIsOver=!1,this._hide()},t.prototype._onMouseOver=function(e){this._mouseIsOver=!0,this._reveal()},t.prototype._reveal=function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()},\nt.prototype._hide=function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())},t.prototype._scheduleHide=function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((function(){return e._hide()}),500)},t}(u.Widget);t.AbstractScrollableElement=v;var _=function(e){function t(t,n){var o=this;(n=n||{}).mouseWheelSmoothScroll=!1;var r=new g.Scrollable(0,(function(e){return i.scheduleAtNextAnimationFrame(e)}));return(o=e.call(this,t,n,r)||this)._register(r),o}return r(t,e),t.prototype.setScrollPosition=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.getScrollPosition=function(){return this._scrollable.getCurrentScrollPosition()},t}(v);t.ScrollableElement=_;var y=function(e){function t(t,n,i){return e.call(this,t,n,i)||this}return r(t,e),t}(v);t.SmoothScrollableElement=y;var C=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i._element=t,i.onScroll((function(e){\ne.scrollTopChanged&&(i._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(i._element.scrollLeft=e.scrollLeft)})),i.scanDomNode(),i}return r(t,e),t.prototype.scanDomNode=function(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})},t}(_);function b(e){var t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:\"\",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,\nfastScrollSensitivity:void 0!==e.fastScrollSensitivity?e.fastScrollSensitivity:5,mouseWheelSmoothScroll:void 0===e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:1,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:1,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0};return t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,\nt.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,p.isMacintosh&&(t.className+=\" mac\"),t}t.DomScrollableElement=C}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[140],i([0,1,31,2,57,6,4,52,53,246,249,101,103,19,98,15,24]),(function(e,t,n,i,o,r,s,l,u,d,c,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:function(e){return[e]},getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},drop:function(){}},horizontalScrolling:!1},C=function(){function e(e){this.elements=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.elements},e}();t.ElementsDragAndDropData=C;var b=function(){function e(e){\nthis.elements=e}return e.prototype.update=function(){},e.prototype.getData=function(){return this.elements},e}();t.ExternalElementsDragAndDropData=b;var S=function(){function e(){this.types=[],this.files=[]}return e.prototype.update=function(e){var t;if(e.types&&(t=this.types).splice.apply(t,a([0,this.types.length],e.types)),e.files){this.files.splice(0,this.files.length);for(var n=0;n<e.files.length;n++){var i=e.files.item(n);i&&(i.size||i.type)&&this.files.push(i)}}},e.prototype.getData=function(){return{types:this.types,files:this.files}},e}();t.DesktopDragAndDropData=S;var w=function(){function e(t,a,h,p){var g=this;if(void 0===p&&(p=y),this.virtualDelegate=a,this.domId=\"list_id_\"+ ++e.InstanceCount,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new v.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=i.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,\nthis.currentDragFeedbackDisposable=i.Disposable.None,this.onDragLeaveTimeout=i.Disposable.None,this.disposables=new i.DisposableStore,this._onDidChangeContentHeight=new s.Emitter,p.horizontalScrolling&&p.supportDynamicHeights)throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");this.items=[],this.itemId=0,this.rangeMap=new d.RangeMap;for(var f=0,m=h;f<m.length;f++){var _=m[f];this.renderers.set(_.templateId,_)}this.cache=this.disposables.add(new c.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement(\"div\"),this.domNode.className=\"monaco-list\",r.addClass(this.domNode,this.domId),this.domNode.tabIndex=0,r.toggleClass(this.domNode,\"mouse-support\",\"boolean\"!=typeof p.mouseSupport||p.mouseSupport),this.horizontalScrolling=n.getOrDefault(p,(function(e){return e.horizontalScrolling}),y.horizontalScrolling),r.toggleClass(this.domNode,\"horizontal-scrolling\",this.horizontalScrolling),\nthis.additionalScrollHeight=void 0===p.additionalScrollHeight?0:p.additionalScrollHeight,this.ariaProvider=p.ariaProvider||{getSetSize:function(e,t,n){return n},getPosInSet:function(e,t){return t+1}},this.rowsContainer=document.createElement(\"div\"),this.rowsContainer.className=\"monaco-list-rows\",this.rowsContainer.style.transform=\"translate3d(0px, 0px, 0px)\",this.disposables.add(o.Gesture.addTarget(this.rowsContainer)),this.scrollableElement=this.disposables.add(new u.ScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:!0,horizontal:this.horizontalScrolling?1:2,vertical:n.getOrDefault(p,(function(e){return e.verticalScrollMode}),y.verticalScrollMode),useShadows:n.getOrDefault(p,(function(e){return e.useShadows}),y.useShadows)})),this.domNode.appendChild(this.scrollableElement.getDomNode()),t.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),l.domEvent(this.rowsContainer,o.EventType.Change)(this.onTouchChange,this,this.disposables),\nl.domEvent(this.scrollableElement.getDomNode(),\"scroll\")((function(e){return e.target.scrollTop=0}),null,this.disposables),s.Event.map(l.domEvent(this.domNode,\"dragover\"),(function(e){return g.toDragEvent(e)}))(this.onDragOver,this,this.disposables),s.Event.map(l.domEvent(this.domNode,\"drop\"),(function(e){return g.toDragEvent(e)}))(this.onDrop,this,this.disposables),l.domEvent(this.domNode,\"dragleave\")(this.onDragLeave,this,this.disposables),l.domEvent(window,\"dragend\")(this.onDragEnd,this,this.disposables),this.setRowLineHeight=n.getOrDefault(p,(function(e){return e.setRowLineHeight}),y.setRowLineHeight),this.supportDynamicHeights=n.getOrDefault(p,(function(e){return e.supportDynamicHeights}),y.supportDynamicHeights),this.dnd=n.getOrDefault(p,(function(e){return e.dnd}),y.dnd),this.layout()}return Object.defineProperty(e.prototype,\"contentHeight\",{get:function(){return this.rangeMap.size},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){if(void 0===n&&(n=[]),\nthis.splicing)throw new Error(\"Can't run recursive splices.\");this.splicing=!0;try{return this._splice(e,t,n)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}},e.prototype._splice=function(e,t,n){var o,r=this;void 0===n&&(n=[]);for(var s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),l={start:e,end:e+t},u=g.Range.intersect(s,l),c=u.start;c<u.end;c++)this.removeItemFromDOM(c);var h,p={start:e+t,end:this.items.length},f=g.Range.intersect(p,s),m=g.Range.relativeComplement(p,s),v=n.map((function(e){return{id:String(r.itemId++),element:e,templateId:r.virtualDelegate.getTemplateId(e),size:r.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!r.virtualDelegate.hasDynamicHeight&&r.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:i.Disposable.None}}));0===e&&t>=this.items.length?(this.rangeMap=new d.RangeMap,this.rangeMap.splice(0,0,v),this.items=v,h=[]):(this.rangeMap.splice(e,t,v),\nh=(o=this.items).splice.apply(o,a([e,t],v)));var _=n.length-t,y=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),C=d.shift(f,_),b=g.Range.intersect(y,C);for(c=b.start;c<b.end;c++)this.updateItemInDOM(this.items[c],c);for(var S=0,w=g.Range.relativeComplement(C,y);S<w.length;S++)for(c=(M=w[S]).start;c<M.end;c++)this.removeItemFromDOM(c);for(var E=m.map((function(e){return d.shift(e,_)})),L={start:e,end:e+n.length},D=a([L],E).map((function(e){return g.Range.intersect(y,e)})),N=this.getNextToLastElement(D),x=0,I=D;x<I.length;x++){var M;for(c=(M=I[x]).start;c<M.end;c++)this.insertItemInDOM(c,N)}return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map((function(e){return e.element}))},e.prototype.eventuallyUpdateScrollDimensions=function(){var e=this;this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=this._scrollHeight+\"px\",\nthis.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=r.scheduleAtNextAnimationFrame((function(){e.scrollableElement.setScrollDimensions({scrollHeight:e.scrollHeight}),e.updateScrollWidth(),e.scrollableElementUpdateDisposable=null})))},e.prototype.eventuallyUpdateScrollWidth=function(){var e=this;this.horizontalScrolling&&this.scrollableElementWidthDelayer.trigger((function(){return e.updateScrollWidth()}))},e.prototype.updateScrollWidth=function(){if(this.horizontalScrolling){0===this.items.length&&this.scrollableElement.setScrollDimensions({scrollWidth:0});for(var e=0,t=0,n=this.items;t<n.length;t++){var i=n[t];void 0!==i.width&&(e=Math.max(e,i.width))}this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e+10})}},e.prototype.rerender=function(){if(this.supportDynamicHeights){for(var e=0,t=this.items;e<t.length;e++){t[e].lastDynamicHeightWidth=void 0}this._rerender(this.lastRenderTop,this.lastRenderHeight)}},Object.defineProperty(e.prototype,\"length\",{\nget:function(){return this.items.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderHeight\",{get:function(){return this.scrollableElement.getScrollDimensions().height},enumerable:!0,configurable:!0}),e.prototype.element=function(e){return this.items[e].element},e.prototype.domElement=function(e){var t=this.items[e].row;return t&&t.domNode},e.prototype.elementHeight=function(e){return this.items[e].size},e.prototype.elementTop=function(e){return this.rangeMap.positionAt(e)},e.prototype.indexAt=function(e){return this.rangeMap.indexAt(e)},e.prototype.indexAfter=function(e){return this.rangeMap.indexAfter(e)},e.prototype.layout=function(e,t){var n={height:\"number\"==typeof e?e:r.getContentHeight(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,n.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(n),void 0!==t&&(this.renderWidth=t,\nthis.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:\"number\"==typeof t?t:r.getContentWidth(this.domNode)}))},e.prototype.render=function(e,t,n,i){for(var o=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),r=this.getRenderRange(e,t),s=g.Range.relativeComplement(r,o),a=g.Range.relativeComplement(o,r),l=this.getNextToLastElement(s),u=0,d=s;u<d.length;u++)for(var c=(f=d[u]).start;c<f.end;c++)this.insertItemInDOM(c,l);for(var h=0,p=a;h<p.length;h++){var f;for(c=(f=p[h]).start;c<f.end;c++)this.removeItemFromDOM(c)}this.rowsContainer.style.left=\"-\"+n+\"px\",this.rowsContainer.style.top=\"-\"+e+\"px\",this.horizontalScrolling&&(this.rowsContainer.style.width=Math.max(i,this.renderWidth)+\"px\"),this.lastRenderTop=e,this.lastRenderHeight=t},e.prototype.insertItemInDOM=function(e,t){var n=this,i=this.items[e];if(!i.row){i.row=this.cache.alloc(i.templateId)\n;var o=this.ariaProvider.getRole?this.ariaProvider.getRole(i.element):\"treeitem\";i.row.domNode.setAttribute(\"role\",o);var r=this.ariaProvider.isChecked?this.ariaProvider.isChecked(i.element):void 0;void 0!==r&&i.row.domNode.setAttribute(\"aria-checked\",String(r))}i.row.domNode.parentElement||(t?this.rowsContainer.insertBefore(i.row.domNode,t):this.rowsContainer.appendChild(i.row.domNode)),this.updateItemInDOM(i,e);var s=this.renderers.get(i.templateId);if(!s)throw new Error(\"No renderer found for template id \"+i.templateId);s&&s.renderElement(i.element,e,i.row.templateData,i.size);var a=this.dnd.getDragURI(i.element);if(i.dragStartDisposable.dispose(),i.row.domNode.draggable=!!a,a){var u=l.domEvent(i.row.domNode,\"dragstart\");i.dragStartDisposable=u((function(e){return n.onDragStart(i.element,a,e)}))}this.horizontalScrolling&&(this.measureItemWidth(i),this.eventuallyUpdateScrollWidth())},e.prototype.measureItemWidth=function(e){if(e.row&&e.row.domNode){\ne.row.domNode.style.width=_.isFirefox?\"-moz-fit-content\":\"fit-content\",e.width=r.getContentWidth(e.row.domNode);var t=window.getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=\"\"}},e.prototype.updateItemInDOM=function(e,t){e.row.domNode.style.top=this.elementTop(t)+\"px\",e.row.domNode.style.height=e.size+\"px\",this.setRowLineHeight&&(e.row.domNode.style.lineHeight=e.size+\"px\"),e.row.domNode.setAttribute(\"data-index\",\"\"+t),e.row.domNode.setAttribute(\"data-last-element\",t===this.length-1?\"true\":\"false\"),e.row.domNode.setAttribute(\"aria-setsize\",String(this.ariaProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute(\"aria-posinset\",String(this.ariaProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute(\"id\",this.getElementDomId(t)),r.toggleClass(e.row.domNode,\"drop-target\",e.dropTarget)},e.prototype.removeItemFromDOM=function(e){var t=this.items[e]\n;t.dragStartDisposable.dispose();var n=this.renderers.get(t.templateId);n&&n.disposeElement&&n.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null,this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()},e.prototype.getScrollTop=function(){return this.scrollableElement.getScrollPosition().scrollTop},e.prototype.setScrollTop=function(e){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e})},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.getScrollTop()},set:function(e){this.setScrollTop(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"scrollHeight\",{get:function(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.additionalScrollHeight},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onMouseClick\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"click\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDblClick\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"dblclick\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseMiddleClick\",{get:function(){var e=this;return s.Event.filter(s.Event.map(l.domEvent(this.domNode,\"auxclick\"),(function(t){return e.toMouseEvent(t)})),(function(e){return 1===e.browserEvent.button}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDown\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"mousedown\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onContextMenu\",{get:function(){var e=this\n;return s.Event.map(l.domEvent(this.domNode,\"contextmenu\"),(function(t){return e.toMouseEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchStart\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.domNode,\"touchstart\"),(function(t){return e.toTouchEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTap\",{get:function(){var e=this;return s.Event.map(l.domEvent(this.rowsContainer,o.EventType.Tap),(function(t){return e.toGestureEvent(t)}))},enumerable:!0,configurable:!0}),e.prototype.toMouseEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toTouchEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toGestureEvent=function(e){\nvar t=this.getItemIndexFromEventTarget(e.initialTarget||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toDragEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target||null),n=void 0===t?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.onScroll=function(e){try{this.render(e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height)}catch(t){throw console.error(\"Got bad scroll event:\",e),t}},e.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},e.prototype.onDragStart=function(e,t,n){if(n.dataTransfer){var i=this.dnd.getDragElements(e);if(n.dataTransfer.effectAllowed=\"copyMove\",n.dataTransfer.setData(m.DataTransfers.RESOURCES,JSON.stringify([t])),n.dataTransfer.setDragImage){var o=void 0;this.dnd.getDragLabel&&(o=this.dnd.getDragLabel(i,n)),void 0===o&&(o=String(i.length))\n;var s=r.$(\".monaco-drag-image\");s.textContent=o,document.body.appendChild(s),n.dataTransfer.setDragImage(s,-10,-10),setTimeout((function(){return document.body.removeChild(s)}),0)}this.currentDragData=new C(i),m.StaticDND.CurrentDragAndDropData=new b(i),this.dnd.onDragStart&&this.dnd.onDragStart(this.currentDragData,n)}},e.prototype.onDragOver=function(e){var t=this;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),m.StaticDND.CurrentDragAndDropData&&\"vscode-ui\"===m.StaticDND.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(m.StaticDND.CurrentDragAndDropData)this.currentDragData=m.StaticDND.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new S}var n,o,s,a=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop=\"boolean\"==typeof a?a:a.accept,\n!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;if(e.browserEvent.dataTransfer.dropEffect=\"boolean\"!=typeof a&&0===a.effect?\"copy\":\"move\",n=\"boolean\"!=typeof a&&a.feedback?a.feedback:void 0===e.index?[-1]:[e.index],n=-1===(n=f.distinct(n).filter((function(e){return e>=-1&&e<t.length})).sort((function(e,t){return e-t})))[0]?[-1]:n,o=this.currentDragFeedback,s=n,Array.isArray(o)&&Array.isArray(s)?f.equals(o,s):o===s)return!0;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),-1===n[0])r.addClass(this.domNode,\"drop-target\"),r.addClass(this.rowsContainer,\"drop-target\"),this.currentDragFeedbackDisposable=i.toDisposable((function(){r.removeClass(t.domNode,\"drop-target\"),r.removeClass(t.rowsContainer,\"drop-target\")}));else{for(var l=0,u=n;l<u.length;l++){var d=u[l],c=this.items[d];c.dropTarget=!0,c.row&&c.row.domNode&&r.addClass(c.row.domNode,\"drop-target\")}this.currentDragFeedbackDisposable=i.toDisposable((function(){\nfor(var e=0,i=n;e<i.length;e++){var o=i[e],s=t.items[o];s.dropTarget=!1,s.row&&s.row.domNode&&r.removeClass(s.row.domNode,\"drop-target\")}}))}return!0},e.prototype.onDragLeave=function(){var e=this;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=v.disposableTimeout((function(){return e.clearDragOverFeedback()}),100)},e.prototype.onDrop=function(e){if(this.canDrop){var t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,m.StaticDND.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.browserEvent))}},e.prototype.onDragEnd=function(e){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.currentDragData=void 0,m.StaticDND.CurrentDragAndDropData=void 0,this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e.prototype.clearDragOverFeedback=function(){this.currentDragFeedback=void 0,\nthis.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=i.Disposable.None},e.prototype.setupDragAndDropScrollTopAnimation=function(e){var t=this;if(!this.dragOverAnimationDisposable){var n=r.getTopLeftOffset(this.domNode).top;this.dragOverAnimationDisposable=r.animate(this.animateDragAndDropScrollTop.bind(this,n))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=v.disposableTimeout((function(){t.dragOverAnimationDisposable&&(t.dragOverAnimationDisposable.dispose(),t.dragOverAnimationDisposable=void 0)}),1e3),this.dragOverMouseY=e.pageY},e.prototype.animateDragAndDropScrollTop=function(e){if(void 0!==this.dragOverMouseY){var t=this.dragOverMouseY-e,n=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>n&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-n))))}},e.prototype.teardownDragAndDropScrollTopAnimation=function(){this.dragOverAnimationStopDisposable.dispose(),\nthis.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},e.prototype.getItemIndexFromEventTarget=function(e){for(var t=e;t instanceof HTMLElement&&t!==this.rowsContainer;){var n=t.getAttribute(\"data-index\");if(n){var i=Number(n);if(!isNaN(i))return i}t=t.parentElement}},e.prototype.getRenderRange=function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}},e.prototype._rerender=function(e,t){var n,i,o=this.getRenderRange(e,t);e===this.elementTop(o.start)?(n=o.start,i=0):o.end-o.start>1&&(n=o.start+1,i=this.elementTop(n)-e);for(var r=0;;){for(var s=this.getRenderRange(e,t),a=!1,l=s.start;l<s.end;l++){var u=this.probeDynamicHeight(l);0!==u&&this.rangeMap.splice(l,1,[this.items[l]]),r+=u,a=a||0!==u}if(!a){0!==r&&this.eventuallyUpdateScrollDimensions();for(var d=0,c=g.Range.relativeComplement(o,s);d<c.length;d++)for(l=(f=c[d]).start;l<f.end;l++)this.items[l].row&&this.removeItemFromDOM(l)\n;for(var h=0,p=g.Range.relativeComplement(s,o);h<p.length;h++){var f;for(l=(f=p[h]).start;l<f.end;l++){var m=l+1,v=m<this.items.length?this.items[m].row:null,_=v?v.domNode:null;this.insertItemInDOM(l,_)}}for(l=s.start;l<s.end;l++)this.items[l].row&&this.updateItemInDOM(this.items[l],l);return\"number\"==typeof n&&(this.scrollTop=this.elementTop(n)-i),void this._onDidChangeContentHeight.fire(this.contentHeight)}}},e.prototype.probeDynamicHeight=function(e){var t=this.items[e];if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth)return 0;var n=t.size,i=this.cache.alloc(t.templateId);i.domNode.style.height=\"\",this.rowsContainer.appendChild(i.domNode);var o=this.renderers.get(t.templateId);return o&&(o.renderElement(t.element,e,i.templateData,void 0),o.disposeElement&&o.disposeElement(t.element,e,i.templateData,void 0)),t.size=i.domNode.offsetHeight,this.virtualDelegate.setDynamicHeight&&this.virtualDelegate.setDynamicHeight(t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,\nthis.rowsContainer.removeChild(i.domNode),this.cache.release(i),t.size-n},e.prototype.getNextToLastElement=function(e){var t=e[e.length-1];if(!t)return null;var n=this.items[t.end];return n&&n.row?n.row.domNode:null},e.prototype.getElementDomId=function(e){return this.domId+\"_\"+e},e.prototype.dispose=function(){if(this.items){for(var e=0,t=this.items;e<t.length;e++){var n=t[e];if(n.row){var o=this.renderers.get(n.row.templateId);o&&o.disposeTemplate(n.row.templateData)}}this.items=[]}this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),i.dispose(this.disposables)},e.InstanceCount=0,h([p.memoize],e.prototype,\"onMouseClick\",null),h([p.memoize],e.prototype,\"onMouseDblClick\",null),h([p.memoize],e.prototype,\"onMouseMiddleClick\",null),h([p.memoize],e.prototype,\"onMouseDown\",null),h([p.memoize],e.prototype,\"onContextMenu\",null),h([p.memoize],e.prototype,\"onTouchStart\",null),h([p.memoize],e.prototype,\"onTap\",null),e}();t.ListView=w})),\ndefine(n[277],i([0,1,16,24,2,6,126,57,5,45,56,255,54,53,257,254,4,98,137,15]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this.context=e,this._cache={\"\":[]}}return e.prototype.alloc=function(e){var t=this.cache(e).pop();if(!t){var n=document.createElement(\"div\");n.className=\"content\";var i=document.createElement(\"div\");i.appendChild(n);var o=null;try{o=this.context.renderer.renderTemplate(this.context.tree,e,n)}catch(e){console.error(\"Tree usage error: exception while rendering template\"),console.error(e)}t={element:i,templateId:e,templateData:o}}return t},e.prototype.release=function(e,t){!function(e){try{e.parentElement.removeChild(e)}catch(e){}}(t.element),this.cache(e).push(t)},e.prototype.cache=function(e){return this._cache[e]||(this._cache[e]=[])},e.prototype.garbageCollect=function(){var e=this;this._cache&&Object.keys(this._cache).forEach((function(t){e._cache[t].forEach((function(n){\ne.context.renderer.disposeTemplate(e.context.tree,t,n.templateData),n.element=null,n.templateData=null})),delete e._cache[t]}))},e.prototype.dispose=function(){this.garbageCollect(),this._cache=null},e}();t.RowCache=b;var S=function(){function e(e,t){var n=this;this.width=0,this.needsRender=!1,this.uri=null,this.unbindDragStart=o.Disposable.None,this._draggable=!1,this.context=e,this.model=t,this.id=this.model.id,this.row=null,this.top=0,this.height=t.getHeight(),this._styles={},t.getAllTraits().forEach((function(e){return n._styles[e]=!0})),t.isExpanded()&&this.addClass(\"expanded\")}return Object.defineProperty(e.prototype,\"expanded\",{set:function(e){e?this.addClass(\"expanded\"):this.removeClass(\"expanded\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"loading\",{set:function(e){e?this.addClass(\"codicon-loading\"):this.removeClass(\"codicon-loading\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"draggable\",{get:function(){return this._draggable},set:function(e){\nthis._draggable=e,this.render(!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"dropTarget\",{set:function(e){e?this.addClass(\"drop-target\"):this.removeClass(\"drop-target\")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"element\",{get:function(){return this.row&&this.row.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"templateId\",{get:function(){return this._templateId||(this._templateId=this.context.renderer.getTemplateId&&this.context.renderer.getTemplateId(this.context.tree,this.model.getElement()))},enumerable:!0,configurable:!0}),e.prototype.addClass=function(e){this._styles[e]=!0,this.render(!0)},e.prototype.removeClass=function(e){delete this._styles[e],this.render(!0)},e.prototype.render=function(e){var t=this;if(void 0===e&&(e=!1),this.model&&this.element){var n=[\"monaco-tree-row\"];n.push.apply(n,Object.keys(this._styles)),this.model.hasChildren()&&n.push(\"has-children\"),this.element.className=n.join(\" \"),\nthis.element.draggable=this.draggable,this.element.style.height=this.height+\"px\",this.element.setAttribute(\"role\",\"treeitem\");var o=this.context.accessibilityProvider,r=o.getAriaLabel(this.context.tree,this.model.getElement());if(r&&this.element.setAttribute(\"aria-label\",r),o.getPosInSet&&o.getSetSize&&(this.element.setAttribute(\"aria-setsize\",o.getSetSize()),this.element.setAttribute(\"aria-posinset\",o.getPosInSet(this.context.tree,this.model.getElement()))),this.model.hasTrait(\"focused\")){var a=u.safeBtoa(this.model.id);this.element.setAttribute(\"aria-selected\",\"true\"),this.element.setAttribute(\"id\",a)}else this.element.setAttribute(\"aria-selected\",\"false\"),this.element.removeAttribute(\"id\");this.model.hasChildren()?this.element.setAttribute(\"aria-expanded\",String(!!this._styles.expanded)):this.element.removeAttribute(\"aria-expanded\"),this.element.setAttribute(\"aria-level\",String(this.model.getDepth())),\nthis.context.options.paddingOnRow?this.element.style.paddingLeft=this.context.options.twistiePixels+(this.model.getDepth()-1)*this.context.options.indentPixels+\"px\":(this.element.style.paddingLeft=(this.model.getDepth()-1)*this.context.options.indentPixels+\"px\",this.row.element.firstElementChild.style.paddingLeft=this.context.options.twistiePixels+\"px\");var l=this.context.dnd.getDragURI(this.context.tree,this.model.getElement());if(l!==this.uri&&(this.unbindDragStart&&this.unbindDragStart.dispose(),l?(this.uri=l,this.draggable=!0,this.unbindDragStart=s.addDisposableListener(this.element,\"dragstart\",(function(e){t.onDragStart(e)}))):this.uri=null),!e&&this.element){var d=0;if(this.context.horizontalScrolling){var c=window.getComputedStyle(this.element);d=parseFloat(c.paddingLeft)}this.context.horizontalScrolling&&(this.element.style.width=i.isFirefox?\"-moz-fit-content\":\"fit-content\");try{this.context.renderer.renderElement(this.context.tree,this.model.getElement(),this.templateId,this.row.templateData)\n}catch(e){console.error(\"Tree usage error: exception while rendering element\"),console.error(e)}this.context.horizontalScrolling&&(this.width=s.getContentWidth(this.element)+d,this.element.style.width=\"\")}}},e.prototype.insertInDOM=function(e,t){if(this.row||(this.row=this.context.cache.alloc(this.templateId),this.element[E.BINDING]=this),!this.element.parentElement){if(null===t)e.appendChild(this.element);else try{e.insertBefore(this.element,t)}catch(t){console.warn(\"Failed to locate previous tree element\"),e.appendChild(this.element)}this.render()}},e.prototype.removeFromDOM=function(){this.row&&(this.unbindDragStart.dispose(),this.uri=null,this.element[E.BINDING]=null,this.context.cache.release(this.templateId,this.row),this.row=null)},e.prototype.dispose=function(){this.row=null},e}();t.ViewItem=S;var w=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o.row={element:i,templateData:null,templateId:null},o}return r(t,e),t.prototype.render=function(){if(this.model&&this.element){\nvar e=[\"monaco-tree-wrapper\"];e.push.apply(e,Object.keys(this._styles)),this.model.hasChildren()&&e.push(\"has-children\"),this.element.className=e.join(\" \")}},t.prototype.insertInDOM=function(e,t){},t.prototype.removeFromDOM=function(){},t}(S);var E=function(e){function t(n,r){var a=e.call(this)||this;a.model=null,a.lastPointerType=\"\",a.lastClickTimeStamp=0,a.contentWidthUpdateDelayer=new C.Delayer(50),a.isRefreshing=!1,a.refreshingPreviousChildrenIds={},a.currentDragAndDropData=null,a.currentDropTarget=null,a.currentDropTargets=null,a.currentDropDisposable=o.Disposable.None,a.gestureDisposable=o.Disposable.None,a.dragAndDropScrollInterval=null,a.dragAndDropScrollTimeout=null,a.dragAndDropMouseY=null,a.highlightedItemWasDraggable=!1,a.onHiddenScrollTop=null,a._onDOMFocus=new v.Emitter,a.onDOMFocus=a._onDOMFocus.event,a._onDOMBlur=new v.Emitter,a._onDidScroll=new v.Emitter,t.counter++,a.instance=t.counter;var u=void 0===n.options.horizontalScrollMode?2:n.options.horizontalScrollMode;a.horizontalScrolling=2!==u,\na.context={dataSource:n.dataSource,renderer:n.renderer,controller:n.controller,dnd:n.dnd,filter:n.filter,sorter:n.sorter,tree:n.tree,accessibilityProvider:n.accessibilityProvider,options:n.options,cache:new b(n),horizontalScrolling:a.horizontalScrolling},a.modelListeners=[],a.viewListeners=[],a.items={},a.domNode=document.createElement(\"div\"),a.domNode.className=\"monaco-tree no-focused-item monaco-tree-instance-\"+a.instance,a.domNode.tabIndex=n.options.preventRootFocus?-1:0,a.styleElement=s.createStyleSheet(a.domNode),a.treeStyler=n.styler||new y.DefaultTreestyler(a.styleElement,\"monaco-tree-instance-\"+a.instance),a.domNode.setAttribute(\"role\",\"tree\"),a.context.options.ariaLabel&&a.domNode.setAttribute(\"aria-label\",a.context.options.ariaLabel),a.context.options.alwaysFocused&&s.addClass(a.domNode,\"focused\"),a.context.options.paddingOnRow||s.addClass(a.domNode,\"no-row-padding\"),a.wrapper=document.createElement(\"div\"),a.wrapper.className=\"monaco-tree-wrapper\",\na.scrollableElement=new g.ScrollableElement(a.wrapper,{alwaysConsumeMouseWheel:!0,horizontal:u,vertical:void 0!==n.options.verticalScrollMode?n.options.verticalScrollMode:1,useShadows:n.options.useShadows}),a.scrollableElement.onScroll((function(e){a.render(e.scrollTop,e.height,e.scrollLeft,e.width,e.scrollWidth),a._onDidScroll.fire()})),i.isIE?(a.wrapper.style.msTouchAction=\"none\",a.wrapper.style.msContentZooming=\"none\"):a.gestureDisposable=l.Gesture.addTarget(a.wrapper),a.rowsContainer=document.createElement(\"div\"),a.rowsContainer.className=\"monaco-tree-rows\",n.options.showTwistie&&(a.rowsContainer.className+=\" show-twisties\");var d=s.trackFocus(a.domNode);return a.viewListeners.push(d.onDidFocus((function(){return a.onFocus()}))),a.viewListeners.push(d.onDidBlur((function(){return a.onBlur()}))),a.viewListeners.push(d),a.viewListeners.push(s.addDisposableListener(a.domNode,\"keydown\",(function(e){return a.onKeyDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"keyup\",(function(e){\nreturn a.onKeyUp(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"mousedown\",(function(e){return a.onMouseDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"mouseup\",(function(e){return a.onMouseUp(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"auxclick\",(function(e){e&&1===e.button&&a.onMouseMiddleClick(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"click\",(function(e){return a.onClick(e)}))),a.viewListeners.push(s.addDisposableListener(a.domNode,\"contextmenu\",(function(e){return a.onContextMenu(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,l.EventType.Tap,(function(e){return a.onTap(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,l.EventType.Change,(function(e){return a.onTouchChange(e)}))),i.isIE&&(a.viewListeners.push(s.addDisposableListener(a.wrapper,\"MSPointerDown\",(function(e){return a.onMsPointerDown(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"MSGestureTap\",(function(e){\nreturn a.onMsGestureTap(e)}))),a.viewListeners.push(s.addDisposableThrottledListener(a.wrapper,\"MSGestureChange\",(function(e){return a.onThrottledMsGestureChange(e)}),(function(e,t){t.stopPropagation(),t.preventDefault();var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n})))),a.viewListeners.push(s.addDisposableListener(window,\"dragover\",(function(e){return a.onDragOver(e)}))),a.viewListeners.push(s.addDisposableListener(a.wrapper,\"drop\",(function(e){return a.onDrop(e)}))),a.viewListeners.push(s.addDisposableListener(window,\"dragend\",(function(e){return a.onDragEnd(e)}))),a.viewListeners.push(s.addDisposableListener(window,\"dragleave\",(function(e){return a.onDragOver(e)}))),a.wrapper.appendChild(a.rowsContainer),a.domNode.appendChild(a.scrollableElement.getDomNode()),r.appendChild(a.domNode),a.lastRenderTop=0,a.lastRenderHeight=0,a.didJustPressContextMenuKey=!1,a.currentDropTarget=null,a.currentDropTargets=[],\na.shouldInvalidateDropReaction=!1,a.dragAndDropScrollInterval=null,a.dragAndDropScrollTimeout=null,a.onRowsChanged(),a.layout(),a.setupMSGesture(),a.applyStyles(n.options),a}return r(t,e),t.prototype.applyStyles=function(e){this.treeStyler.style(e)},t.prototype.createViewItem=function(e){return new S(this.context,e)},t.prototype.getHTMLElement=function(){return this.domNode},t.prototype.focus=function(){this.domNode.focus()},t.prototype.isFocused=function(){return document.activeElement===this.domNode},t.prototype.blur=function(){this.domNode.blur()},t.prototype.setupMSGesture=function(){var e=this;window.MSGesture&&(this.msGesture=new MSGesture,setTimeout((function(){return e.msGesture.target=e.wrapper}),100))},t.prototype.isTreeVisible=function(){return null===this.onHiddenScrollTop},t.prototype.layout=function(e,t){this.isTreeVisible()&&(this.viewHeight=e||s.getContentHeight(this.wrapper),this.scrollHeight=this.getContentHeight(),\nthis.horizontalScrolling&&(this.viewWidth=t||s.getContentWidth(this.wrapper)))},t.prototype.render=function(e,t,n,i,o){var r,s,a=e,l=e+t,u=this.lastRenderTop+this.lastRenderHeight;for(r=this.indexAfter(l)-1,s=this.indexAt(Math.max(u,a));r>=s;r--)this.insertItemInDOM(this.itemAtIndex(r));for(r=Math.min(this.indexAt(this.lastRenderTop),this.indexAfter(l))-1,s=this.indexAt(a);r>=s;r--)this.insertItemInDOM(this.itemAtIndex(r));for(r=this.indexAt(this.lastRenderTop),s=Math.min(this.indexAt(a),this.indexAfter(u));r<s;r++)this.removeItemFromDOM(this.itemAtIndex(r));for(r=Math.max(this.indexAfter(l),this.indexAt(this.lastRenderTop)),s=this.indexAfter(u);r<s;r++)this.removeItemFromDOM(this.itemAtIndex(r));var d=this.itemAtIndex(this.indexAt(a));d&&(this.rowsContainer.style.top=d.top-a+\"px\"),this.horizontalScrolling&&(this.rowsContainer.style.left=-n+\"px\",this.rowsContainer.style.width=Math.max(o,i)+\"px\"),this.lastRenderTop=a,this.lastRenderHeight=l-a},t.prototype.setModel=function(e){this.releaseModel(),this.model=e,\nthis.model.onRefresh(this.onRefreshing,this,this.modelListeners),this.model.onDidRefresh(this.onRefreshed,this,this.modelListeners),this.model.onSetInput(this.onClearingInput,this,this.modelListeners),this.model.onDidSetInput(this.onSetInput,this,this.modelListeners),this.model.onDidFocus(this.onModelFocusChange,this,this.modelListeners),this.model.onRefreshItemChildren(this.onItemChildrenRefreshing,this,this.modelListeners),this.model.onDidRefreshItemChildren(this.onItemChildrenRefreshed,this,this.modelListeners),this.model.onDidRefreshItem(this.onItemRefresh,this,this.modelListeners),this.model.onExpandItem(this.onItemExpanding,this,this.modelListeners),this.model.onDidExpandItem(this.onItemExpanded,this,this.modelListeners),this.model.onCollapseItem(this.onItemCollapsing,this,this.modelListeners),this.model.onDidRevealItem(this.onItemReveal,this,this.modelListeners),this.model.onDidAddTraitItem(this.onItemAddTrait,this,this.modelListeners),\nthis.model.onDidRemoveTraitItem(this.onItemRemoveTrait,this,this.modelListeners)},t.prototype.onRefreshing=function(){this.isRefreshing=!0},t.prototype.onRefreshed=function(){this.isRefreshing=!1,this.onRowsChanged()},t.prototype.onRowsChanged=function(e){void 0===e&&(e=this.scrollTop),this.isRefreshing||(this.scrollTop=e,this.updateScrollWidth())},t.prototype.updateScrollWidth=function(){var e=this;this.horizontalScrolling&&this.contentWidthUpdateDelayer.trigger((function(){for(var t=0,n=0,i=Object.keys(e.items);n<i.length;n++){var o=i[n];t=Math.max(t,e.items[o].width)}e.scrollWidth=t+10}))},t.prototype.focusNextPage=function(e){var t=this,n=this.indexAt(this.scrollTop+this.viewHeight);n=0===n?0:n-1;var i=this.itemAtIndex(n).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop+=this.viewHeight,this.scrollTop!==o&&setTimeout((function(){t.focusNextPage(e)}),0)}},t.prototype.focusPreviousPage=function(e){var t,n=this\n;t=0===this.scrollTop?this.indexAt(this.scrollTop):this.indexAfter(this.scrollTop-1);var i=this.itemAtIndex(t).model.getElement();if(this.model.getFocus()!==i)this.model.setFocus(i,e);else{var o=this.scrollTop;this.scrollTop-=this.viewHeight,this.scrollTop!==o&&setTimeout((function(){n.focusPreviousPage(e)}),0)}},Object.defineProperty(t.prototype,\"viewHeight\",{get:function(){return this.scrollableElement.getScrollDimensions().height},set:function(e){this.scrollableElement.setScrollDimensions({height:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollHeight\",{set:function(e){e+=this.horizontalScrolling?10:0,this.scrollableElement.setScrollDimensions({scrollHeight:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"viewWidth\",{get:function(){return this.scrollableElement.getScrollDimensions().width},set:function(e){this.scrollableElement.setScrollDimensions({width:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollWidth\",{set:function(e){\nthis.scrollableElement.setScrollDimensions({scrollWidth:e})},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"scrollTop\",{get:function(){return this.scrollableElement.getScrollPosition().scrollTop},set:function(e){var t=this.getContentHeight()+(this.horizontalScrolling?10:0);this.scrollableElement.setScrollDimensions({scrollHeight:t}),this.scrollableElement.setScrollPosition({scrollTop:e})},enumerable:!0,configurable:!0}),t.prototype.onClearingInput=function(e){var t=e.item;t&&(this.onRemoveItems(new p.MappedIterator(t.getNavigator(),(function(e){return e&&e.id}))),this.onRowsChanged())},t.prototype.onSetInput=function(e){this.context.cache.garbageCollect(),this.inputItem=new w(this.context,e.item,this.wrapper)},t.prototype.onItemChildrenRefreshing=function(e){var n=e.item,i=this.items[n.id];if(i&&this.context.options.showLoading&&(i.loadingTimer=setTimeout((function(){i.loadingTimer=0,i.loading=!0}),t.LOADING_DECORATION_DELAY)),!e.isNested){\nfor(var o=[],r=n.getNavigator(),s=void 0;s=r.next();)o.push(s.id);this.refreshingPreviousChildrenIds[n.id]=o}},t.prototype.onItemChildrenRefreshed=function(e){var t=this,n=e.item,i=this.items[n.id];if(i&&(i.loadingTimer&&(clearTimeout(i.loadingTimer),i.loadingTimer=0),i.loading=!1),!e.isNested){for(var o=this.refreshingPreviousChildrenIds[n.id],r=[],s=n.getNavigator(),l=void 0;l=s.next();)r.push(l);var u=Math.abs(o.length-r.length)>1e3,d=[],c=!1;if(!u)c=(d=new a.LcsDiff({getElements:function(){return o}},{getElements:function(){return r.map((function(e){return e.id}))}},null).ComputeDiff(!1).changes).some((function(e){if(e.modifiedLength>0)for(var n=e.modifiedStart,i=e.modifiedStart+e.modifiedLength;n<i;n++)if(t.items.hasOwnProperty(r[n].id))return!0;return!1}));if(!u&&!c&&d.length<50)for(var h=0,g=d;h<g.length;h++){var f=g[h];if(f.originalLength>0&&this.onRemoveItems(new p.ArrayIterator(o,f.originalStart,f.originalStart+f.originalLength)),f.modifiedLength>0){var m=r[f.modifiedStart-1]||n\n;m=m.getDepth()>0?m:null,this.onInsertItems(new p.ArrayIterator(r,f.modifiedStart,f.modifiedStart+f.modifiedLength),m?m.id:null)}}else(u||d.length)&&(this.onRemoveItems(new p.ArrayIterator(o)),this.onInsertItems(new p.ArrayIterator(r),n.getDepth()>0?n.id:null));(u||d.length)&&this.onRowsChanged()}},t.prototype.onItemRefresh=function(e){this.onItemsRefresh([e])},t.prototype.onItemsRefresh=function(e){var t=this;this.onRefreshItemSet(e.filter((function(e){return t.items.hasOwnProperty(e.id)}))),this.onRowsChanged()},t.prototype.onItemExpanding=function(e){var t=this.items[e.item.id];t&&(t.expanded=!0)},t.prototype.onItemExpanded=function(e){var t=e.item,n=this.items[t.id];if(n){n.expanded=!0;var i=this.onInsertItems(t.getNavigator(),t.id)||0,o=this.scrollTop;n.top+n.height<=this.scrollTop&&(o+=i),this.onRowsChanged(o)}},t.prototype.onItemCollapsing=function(e){var t=e.item,n=this.items[t.id];n&&(n.expanded=!1,this.onRemoveItems(new p.MappedIterator(t.getNavigator(),(function(e){return e&&e.id}))),\nthis.onRowsChanged())},t.prototype.onItemReveal=function(e){var t=e.item,n=e.relativeTop,i=this.items[t.id];if(i)if(null!==n){n=(n=n<0?0:n)>1?1:n;var o=i.height-this.viewHeight;this.scrollTop=o*n+i.top}else{var r=i.top+i.height,s=this.scrollTop+this.viewHeight;i.top<this.scrollTop?this.scrollTop=i.top:r>=s&&(this.scrollTop=r-this.viewHeight)}},t.prototype.onItemAddTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.addClass(n),\"highlighted\"===n&&(s.addClass(this.domNode,n),i&&(this.highlightedItemWasDraggable=!!i.draggable,i.draggable&&(i.draggable=!1)))},t.prototype.onItemRemoveTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.removeClass(n),\"highlighted\"===n&&(s.removeClass(this.domNode,n),this.highlightedItemWasDraggable&&(i.draggable=!0),this.highlightedItemWasDraggable=!1)},t.prototype.onModelFocusChange=function(){var e=this.model&&this.model.getFocus();s.toggleClass(this.domNode,\"no-focused-item\",!e),\ne?this.domNode.setAttribute(\"aria-activedescendant\",u.safeBtoa(this.context.dataSource.getId(this.context.tree,e))):this.domNode.removeAttribute(\"aria-activedescendant\")},t.prototype.onInsertItem=function(e){var t=this;e.onDragStart=function(n){t.onDragStart(e,n)},e.needsRender=!0,this.refreshViewItem(e),this.items[e.id]=e},t.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1),e.needsRender=e.needsRender||t,this.refreshViewItem(e)},t.prototype.onRemoveItem=function(e){this.removeItemFromDOM(e),e.dispose(),delete this.items[e.id]},t.prototype.refreshViewItem=function(e){e.render(),this.shouldBeRendered(e)?this.insertItemInDOM(e):this.removeItemFromDOM(e)},t.prototype.onClick=function(e){if(!this.lastPointerType||\"mouse\"===this.lastPointerType){var t=new d.StandardMouseEvent(e),n=this.getItemAround(t.target);n&&(i.isIE&&Date.now()-this.lastClickTimeStamp<300&&(t.detail=2),this.lastClickTimeStamp=Date.now(),this.context.controller.onClick(this.context.tree,n.model.getElement(),t))}},\nt.prototype.onMouseMiddleClick=function(e){if(this.context.controller.onMouseMiddleClick){var t=new d.StandardMouseEvent(e),n=this.getItemAround(t.target);n&&this.context.controller.onMouseMiddleClick(this.context.tree,n.model.getElement(),t)}},t.prototype.onMouseDown=function(e){if(this.didJustPressContextMenuKey=!1,this.context.controller.onMouseDown&&(!this.lastPointerType||\"mouse\"===this.lastPointerType)){var t=new d.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseDown(this.context.tree,i.model.getElement(),t)}}},t.prototype.onMouseUp=function(e){if(this.context.controller.onMouseUp&&(!this.lastPointerType||\"mouse\"===this.lastPointerType)){var t=new d.StandardMouseEvent(e);if(!(t.ctrlKey&&n.isNative&&n.isMacintosh)){var i=this.getItemAround(t.target);i&&this.context.controller.onMouseUp(this.context.tree,i.model.getElement(),t)}}},t.prototype.onTap=function(e){var t=this.getItemAround(e.initialTarget)\n;t&&this.context.controller.onTap(this.context.tree,t.model.getElement(),e)},t.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},t.prototype.onContextMenu=function(e){var t,n;if(e instanceof KeyboardEvent||this.didJustPressContextMenuKey){this.didJustPressContextMenuKey=!1;var i=new c.StandardKeyboardEvent(e),o=void 0;if(n=this.model.getFocus()){var r=this.context.dataSource.getId(this.context.tree,n),a=this.items[r];o=s.getDomNodePagePosition(a.element)}else n=this.model.getInput(),o=s.getDomNodePagePosition(this.inputItem.element);t=new m.KeyboardContextMenuEvent(o.left+o.width,o.top,i)}else{var l=new d.StandardMouseEvent(e),u=this.getItemAround(l.target);if(!u)return;n=u.model.getElement(),t=new m.MouseContextMenuEvent(l)}this.context.controller.onContextMenu(this.context.tree,n,t)},t.prototype.onKeyDown=function(e){var t=new c.StandardKeyboardEvent(e);this.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode,\nt.target&&t.target.tagName&&\"input\"===t.target.tagName.toLowerCase()||(this.didJustPressContextMenuKey&&(t.preventDefault(),t.stopPropagation()),this.context.controller.onKeyDown(this.context.tree,t))},t.prototype.onKeyUp=function(e){this.didJustPressContextMenuKey&&this.onContextMenu(e),this.didJustPressContextMenuKey=!1,this.context.controller.onKeyUp(this.context.tree,new c.StandardKeyboardEvent(e))},t.prototype.onDragStart=function(e,t){if(!this.model.getHighlight()){var n,i=e.model.getElement(),o=this.model.getSelection();if(n=o.indexOf(i)>-1?o:[i],t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setData(_.DataTransfers.RESOURCES,JSON.stringify([e.uri])),t.dataTransfer.setDragImage){var r=void 0;r=this.context.dnd.getDragLabel?this.context.dnd.getDragLabel(this.context.tree,n):String(n.length);var s=document.createElement(\"div\");s.className=\"monaco-tree-drag-image\",s.textContent=r,document.body.appendChild(s),t.dataTransfer.setDragImage(s,-10,-10),setTimeout((function(){\nreturn document.body.removeChild(s)}),0)}this.currentDragAndDropData=new h.ElementsDragAndDropData(n),_.StaticDND.CurrentDragAndDropData=new h.ExternalElementsDragAndDropData(n),this.context.dnd.onDragStart(this.context.tree,this.currentDragAndDropData,new d.DragMouseEvent(t))}},t.prototype.setupDragAndDropScrollInterval=function(){var e=this,t=s.getTopLeftOffset(this.wrapper).top;this.dragAndDropScrollInterval||(this.dragAndDropScrollInterval=window.setInterval((function(){if(null!==e.dragAndDropMouseY){var n=e.dragAndDropMouseY-t,i=0,o=e.viewHeight-35;n<35?i=Math.max(-14,.2*(n-35)):n>o&&(i=Math.min(14,.2*(n-o))),e.scrollTop+=i}}),10),this.cancelDragAndDropScrollTimeout(),this.dragAndDropScrollTimeout=window.setTimeout((function(){e.cancelDragAndDropScrollInterval(),e.dragAndDropScrollTimeout=null}),1e3))},t.prototype.cancelDragAndDropScrollInterval=function(){this.dragAndDropScrollInterval&&(window.clearInterval(this.dragAndDropScrollInterval),this.dragAndDropScrollInterval=null),\nthis.cancelDragAndDropScrollTimeout()},t.prototype.cancelDragAndDropScrollTimeout=function(){this.dragAndDropScrollTimeout&&(window.clearTimeout(this.dragAndDropScrollTimeout),this.dragAndDropScrollTimeout=null)},t.prototype.onDragOver=function(e){var t=this;e.preventDefault();var n,i=new d.DragMouseEvent(e),r=this.getItemAround(i.target);if(!r||0===i.posx&&0===i.posy&&i.browserEvent.type===s.EventType.DRAG_LEAVE)return this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[],this.currentDropDisposable.dispose()),this.cancelDragAndDropScrollInterval(),this.currentDropTarget=null,this.currentDropElement=null,this.dragAndDropMouseY=null,!1;if(this.setupDragAndDropScrollInterval(),this.dragAndDropMouseY=i.posy,!this.currentDragAndDropData)if(_.StaticDND.CurrentDragAndDropData)this.currentDragAndDropData=_.StaticDND.CurrentDragAndDropData;else{if(!i.dataTransfer.types)return!1;this.currentDragAndDropData=new h.DesktopDragAndDropData}\nthis.currentDragAndDropData.update(i.browserEvent.dataTransfer);var a,l=r.model;do{if(n=l?l.getElement():this.model.getInput(),!(a=this.context.dnd.onDragOver(this.context.tree,this.currentDragAndDropData,n,i))||1!==a.bubble)break;l=l&&l.parent}while(l);if(!l)return this.currentDropElement=null,!1;var u=a&&a.accept;u?(this.currentDropElement=l.getElement(),i.preventDefault(),i.dataTransfer.dropEffect=0===a.effect?\"copy\":\"move\"):this.currentDropElement=null;var c,p,g=l.id===this.inputItem.id?this.inputItem:this.items[l.id];if((this.shouldInvalidateDropReaction||this.currentDropTarget!==g||(c=this.currentDropElementReaction,p=a,!(!c&&!p||c&&p&&c.accept===p.accept&&c.bubble===p.bubble&&c.effect===p.effect)))&&(this.shouldInvalidateDropReaction=!1,this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[],this.currentDropDisposable.dispose()),this.currentDropTarget=g,this.currentDropElementReaction=a,u)){\nif(this.currentDropTarget&&(this.currentDropTarget.dropTarget=!0,this.currentDropTargets.push(this.currentDropTarget)),0===a.bubble)for(var f=l.getNavigator(),m=void 0;m=f.next();)(r=this.items[m.id])&&(r.dropTarget=!0,this.currentDropTargets.push(r));if(a.autoExpand){var v=C.timeout(500);this.currentDropDisposable=o.toDisposable((function(){return v.cancel()})),v.then((function(){return t.context.tree.expand(t.currentDropElement)})).then((function(){return t.shouldInvalidateDropReaction=!0}))}}return!0},t.prototype.onDrop=function(e){if(this.currentDropElement){var t=new d.DragMouseEvent(e);t.preventDefault(),this.currentDragAndDropData.update(t.browserEvent.dataTransfer),this.context.dnd.drop(this.context.tree,this.currentDragAndDropData,this.currentDropElement,t),this.onDragEnd(e)}this.cancelDragAndDropScrollInterval()},t.prototype.onDragEnd=function(e){this.currentDropTarget&&(this.currentDropTargets.forEach((function(e){return e.dropTarget=!1})),this.currentDropTargets=[]),\nthis.currentDropDisposable.dispose(),this.cancelDragAndDropScrollInterval(),this.currentDragAndDropData=null,_.StaticDND.CurrentDragAndDropData=void 0,this.currentDropElement=null,this.currentDropTarget=null,this.dragAndDropMouseY=null},t.prototype.onFocus=function(){this.context.options.alwaysFocused||s.addClass(this.domNode,\"focused\"),this._onDOMFocus.fire()},t.prototype.onBlur=function(){this.context.options.alwaysFocused||s.removeClass(this.domNode,\"focused\"),this.domNode.removeAttribute(\"aria-activedescendant\"),this._onDOMBlur.fire()},t.prototype.onMsPointerDown=function(e){if(this.msGesture){var t=e.pointerType;t!==(e.MSPOINTER_TYPE_MOUSE||\"mouse\")?t===(e.MSPOINTER_TYPE_TOUCH||\"touch\")&&(this.lastPointerType=\"touch\",e.stopPropagation(),e.preventDefault(),this.msGesture.addPointer(e.pointerId)):this.lastPointerType=\"mouse\"}},t.prototype.onThrottledMsGestureChange=function(e){this.scrollTop-=e.translationY},t.prototype.onMsGestureTap=function(e){\ne.initialTarget=document.elementFromPoint(e.clientX,e.clientY),this.onTap(e)},t.prototype.insertItemInDOM=function(e){var t=null,n=this.itemAfter(e);n&&n.element&&(t=n.element),e.insertInDOM(this.rowsContainer,t)},t.prototype.removeItemFromDOM=function(e){e&&e.removeFromDOM()},t.prototype.shouldBeRendered=function(e){return e.top<this.lastRenderTop+this.lastRenderHeight&&e.top+e.height>this.lastRenderTop},t.prototype.getItemAround=function(e){var n=this.inputItem,i=e;do{if(i[t.BINDING]&&(n=i[t.BINDING]),i===this.wrapper||i===this.domNode)return n;if(i===this.scrollableElement.getDomNode()||i===document.body)return}while(i=i.parentElement)},t.prototype.releaseModel=function(){this.model&&(this.modelListeners=o.dispose(this.modelListeners),this.model=null)},t.prototype.dispose=function(){var t=this;this.scrollableElement.dispose(),this.releaseModel(),this.viewListeners=o.dispose(this.viewListeners),this._onDOMFocus.dispose(),this._onDOMBlur.dispose(),\nthis.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.items&&Object.keys(this.items).forEach((function(e){return t.items[e].removeFromDOM()})),this.context.cache&&this.context.cache.dispose(),this.gestureDisposable.dispose(),e.prototype.dispose.call(this)},t.BINDING=\"monaco-tree-row\",t.LOADING_DECORATION_DELAY=800,t.counter=0,t}(f.HeightMap);t.TreeView=E})),define(n[278],i([9]),{});var p;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[279],i([0,1,2,4,21,6,131,19,104,27,52,278]),(function(e,t,n,i,o,s,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p,g={separatorBorder:c.Color.transparent},f=function(){function e(e,t,n,i){this.container=e,this.view=t,this.disposable=i,this._cachedVisibleSize=void 0,\"number\"==typeof n?(this._size=n,this._cachedVisibleSize=void 0,\ns.addClass(e,\"visible\")):(this._size=0,this._cachedVisibleSize=n.cachedVisibleSize)}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this._size},set:function(e){this._size=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return void 0===this._cachedVisibleSize},enumerable:!0,configurable:!0}),e.prototype.setVisible=function(e,t){e!==this.visible&&(e?(this.size=l.clamp(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=\"number\"==typeof t?t:this.size,this.size=0),s.toggleClass(this.container,\"visible\",e),this.view.setVisible&&this.view.setVisible(e))},Object.defineProperty(e.prototype,\"minimumSize\",{get:function(){return this.visible?this.view.minimumSize:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"viewMinimumSize\",{get:function(){return this.view.minimumSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"maximumSize\",{\nget:function(){return this.visible?this.view.maximumSize:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"viewMaximumSize\",{get:function(){return this.view.maximumSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"priority\",{get:function(){return this.view.priority},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"snap\",{get:function(){return!!this.view.snap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"enabled\",{set:function(e){this.container.style.pointerEvents=e?null:\"none\"},enumerable:!0,configurable:!0}),e.prototype.layout=function(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)},e.prototype.dispose=function(){return this.disposable.dispose(),this.view},e}(),m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.layoutContainer=function(e){this.container.style.top=e+\"px\",this.container.style.height=this.size+\"px\"},t}(f),v=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.layoutContainer=function(e){this.container.style.left=e+\"px\",this.container.style.width=this.size+\"px\"},t}(f);!function(e){e[e.Idle=0]=\"Idle\",e[e.Busy=1]=\"Busy\"}(p||(p={})),function(e){e.Distribute={type:\"distribute\"},e.Split=function(e){return{type:\"split\",index:e}},e.Invisible=function(e){return{type:\"invisible\",cachedVisibleSize:e}}}(t.Sizing||(t.Sizing={}));var _=function(e){function t(t,n){void 0===n&&(n={});var r=e.call(this)||this;return r.size=0,r.contentSize=0,r.proportions=void 0,r.viewItems=[],r.sashItems=[],r.state=p.Idle,r._onDidSashChange=r._register(new i.Emitter),r.onDidSashChange=r._onDidSashChange.event,r._onDidSashReset=r._register(new i.Emitter),r._startSnappingEnabled=!0,r._endSnappingEnabled=!0,r.orientation=o.isUndefined(n.orientation)?0:n.orientation,r.inverseAltBehavior=!!n.inverseAltBehavior,r.proportionalLayout=!!o.isUndefined(n.proportionalLayout)||!!n.proportionalLayout,r.el=document.createElement(\"div\"),\ns.addClass(r.el,\"monaco-split-view2\"),s.addClass(r.el,0===r.orientation?\"vertical\":\"horizontal\"),t.appendChild(r.el),r.sashContainer=s.append(r.el,s.$(\".sash-container\")),r.viewContainer=s.append(r.el,s.$(\".split-view-container\")),r.style(n.styles||g),n.descriptor&&(r.size=n.descriptor.size,n.descriptor.views.forEach((function(e,t){var n=o.isUndefined(e.visible)||e.visible?e.size:{type:\"invisible\",cachedVisibleSize:e.size},i=e.view;r.doAddView(i,n,t,!0)})),r.contentSize=r.viewItems.reduce((function(e,t){return e+t.size}),0),r.saveProportions()),r}return r(t,e),Object.defineProperty(t.prototype,\"orthogonalStartSash\",{get:function(){return this._orthogonalStartSash},set:function(e){for(var t=0,n=this.sashItems;t<n.length;t++){n[t].sash.orthogonalStartSash=e}this._orthogonalStartSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"orthogonalEndSash\",{get:function(){return this._orthogonalEndSash},set:function(e){for(var t=0,n=this.sashItems;t<n.length;t++){n[t].sash.orthogonalEndSash=e}\nthis._orthogonalEndSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"startSnappingEnabled\",{get:function(){return this._startSnappingEnabled},set:function(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"endSnappingEnabled\",{get:function(){return this._endSnappingEnabled},set:function(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())},enumerable:!0,configurable:!0}),t.prototype.style=function(e){e.separatorBorder.isTransparent()?(s.removeClass(this.el,\"separator-border\"),this.el.style.removeProperty(\"--separator-border\")):(s.addClass(this.el,\"separator-border\"),this.el.style.setProperty(\"--separator-border\",e.separatorBorder.toString()))},t.prototype.addView=function(e,t,n){void 0===n&&(n=this.viewItems.length),this.doAddView(e,t,n,!1)},t.prototype.layout=function(e,t){var n=this,i=Math.max(this.size,this.contentSize);if(this.size=e,\nthis.layoutContext=t,this.proportions)for(var o=0;o<this.viewItems.length;o++){var r=this.viewItems[o];r.size=l.clamp(Math.round(this.proportions[o]*e),r.minimumSize,r.maximumSize)}else{var s=u.range(this.viewItems.length),a=s.filter((function(e){return 1===n.viewItems[e].priority})),d=s.filter((function(e){return 2===n.viewItems[e].priority}));this.resize(this.viewItems.length-1,e-i,void 0,a,d)}this.distributeEmptySpace(),this.layoutViews()},t.prototype.saveProportions=function(){var e=this;this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map((function(t){return t.size/e.contentSize})))},t.prototype.onSashStart=function(e){for(var t=this,i=e.sash,o=e.start,r=e.alt,s=0,a=this.viewItems;s<a.length;s++){a[s].enabled=!1}var l=u.firstIndex(this.sashItems,(function(e){return e.sash===i})),d=n.combinedDisposable(h.domEvent(document.body,\"keydown\")((function(e){return c(t.sashDragState.current,e.altKey)})),h.domEvent(document.body,\"keyup\")((function(){return c(t.sashDragState.current,!1)\n}))),c=function(e,n){var i,o,r=t.viewItems.map((function(e){return e.size})),s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;(t.inverseAltBehavior&&(n=!n),n)&&(l===t.sashItems.length-1?(s=((b=t.viewItems[l]).minimumSize-b.size)/2,a=(b.maximumSize-b.size)/2):(s=((b=t.viewItems[l+1]).size-b.maximumSize)/2,a=(b.size-b.minimumSize)/2));if(!n){var c=u.range(l,-1),h=u.range(l+1,t.viewItems.length),p=c.reduce((function(e,n){return e+(t.viewItems[n].minimumSize-r[n])}),0),g=c.reduce((function(e,n){return e+(t.viewItems[n].viewMaximumSize-r[n])}),0),f=0===h.length?Number.POSITIVE_INFINITY:h.reduce((function(e,n){return e+(r[n]-t.viewItems[n].minimumSize)}),0),m=0===h.length?Number.NEGATIVE_INFINITY:h.reduce((function(e,n){return e+(r[n]-t.viewItems[n].viewMaximumSize)}),0),v=Math.max(p,m),_=Math.min(f,g),y=t.findFirstSnapIndex(c),C=t.findFirstSnapIndex(h);if(\"number\"==typeof y){var b=t.viewItems[y],S=Math.floor(b.viewMinimumSize/2);i={index:y,limitDelta:b.visible?v-S:v+S,size:b.size}}if(\"number\"==typeof C){\nb=t.viewItems[C],S=Math.floor(b.viewMinimumSize/2);o={index:C,limitDelta:b.visible?_+S:_-S,size:b.size}}}t.sashDragState={start:e,current:e,index:l,sizes:r,minDelta:s,maxDelta:a,alt:n,snapBefore:i,snapAfter:o,disposable:d}};c(o,r)},t.prototype.onSashChange=function(e){var t=e.current,n=this.sashDragState,i=n.index,o=n.start,r=n.sizes,s=n.alt,a=n.minDelta,l=n.maxDelta,u=n.snapBefore,d=n.snapAfter;this.sashDragState.current=t;var c=t-o,h=this.resize(i,c,r,void 0,void 0,a,l,u,d);if(s){var p=i===this.sashItems.length-1,g=this.viewItems.map((function(e){return e.size})),f=p?i:i+1,m=this.viewItems[f],v=m.size-m.maximumSize,_=m.size-m.minimumSize,y=p?i-1:i+1;this.resize(y,-h,g,void 0,void 0,v,_)}this.distributeEmptySpace(),this.layoutViews()},t.prototype.onSashEnd=function(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(var t=0,n=this.viewItems;t<n.length;t++){n[t].enabled=!0}},t.prototype.onViewChange=function(e,t){var n=this.viewItems.indexOf(e)\n;n<0||n>=this.viewItems.length||(t=\"number\"==typeof t?t:e.size,t=l.clamp(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&n>0?(this.resize(n-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([n],void 0)))},t.prototype.resizeView=function(e,t){var n=this;if(this.state!==p.Idle)throw new Error(\"Cant modify splitview\");if(this.state=p.Busy,!(e<0||e>=this.viewItems.length)){var i=u.range(this.viewItems.length).filter((function(t){return t!==e})),o=a(i.filter((function(e){return 1===n.viewItems[e].priority})),[e]),r=i.filter((function(e){return 2===n.viewItems[e].priority})),s=this.viewItems[e];t=Math.round(t),t=l.clamp(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(o,r),this.state=p.Idle}},t.prototype.distributeViewSizes=function(){for(var e=this,t=[],n=0,i=0,o=this.viewItems;i<o.length;i++){(d=o[i]).maximumSize-d.minimumSize>0&&(t.push(d),n+=d.size)}for(var r=Math.floor(n/t.length),s=0,a=t;s<a.length;s++){var d\n;(d=a[s]).size=l.clamp(r,d.minimumSize,d.maximumSize)}var c=u.range(this.viewItems.length),h=c.filter((function(t){return 1===e.viewItems[t].priority})),p=c.filter((function(t){return 2===e.viewItems[t].priority}));this.relayout(h,p)},t.prototype.getViewSize=function(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size},t.prototype.doAddView=function(e,t,o,r){var a=this;if(void 0===o&&(o=this.viewItems.length),this.state!==p.Idle)throw new Error(\"Cant modify splitview\");this.state=p.Busy;var l=s.$(\".split-view-view\");o===this.viewItems.length?this.viewContainer.appendChild(l):this.viewContainer.insertBefore(l,this.viewContainer.children.item(o));var c,h=e.onDidChange((function(e){return a.onViewChange(y,e)})),g=n.toDisposable((function(){return a.viewContainer.removeChild(l)})),f=n.combinedDisposable(h,g);c=\"number\"==typeof t?t:\"split\"===t.type?this.getViewSize(t.index)/2:\"invisible\"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize\n;var _,y=0===this.orientation?new m(l,e,c,f):new v(l,e,c,f);if(this.viewItems.splice(o,0,y),this.viewItems.length>1){var C=0===this.orientation?1:0,b=0===this.orientation?{getHorizontalSashTop:function(e){return a.getSashPosition(e)}}:{getVerticalSashLeft:function(e){return a.getSashPosition(e)}},S=new d.Sash(this.sashContainer,b,{orientation:C,orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash}),w=0===this.orientation?function(e){return{sash:S,start:e.startY,current:e.currentY,alt:e.altKey}}:function(e){return{sash:S,start:e.startX,current:e.currentX,alt:e.altKey}},E=i.Event.map(S.onDidStart,w)(this.onSashStart,this),L=i.Event.map(S.onDidChange,w)(this.onSashChange,this),D=i.Event.map(S.onDidEnd,(function(){return u.firstIndex(a.sashItems,(function(e){return e.sash===S}))}))(this.onSashEnd,this),N=S.onDidReset((function(){var e=u.firstIndex(a.sashItems,(function(e){return e.sash===S\n})),t=u.range(e,-1),n=u.range(e+1,a.viewItems.length),i=a.findFirstSnapIndex(t),o=a.findFirstSnapIndex(n);(\"number\"!=typeof i||a.viewItems[i].visible)&&(\"number\"!=typeof o||a.viewItems[o].visible)&&a._onDidSashReset.fire(e)})),x=n.combinedDisposable(E,L,D,N,S),I={sash:S,disposable:x};this.sashItems.splice(o-1,0,I)}l.appendChild(e.element),\"number\"!=typeof t&&\"split\"===t.type&&(_=[t.index]),r||this.relayout([o],_),this.state=p.Idle,r||\"number\"==typeof t||\"distribute\"!==t.type||this.distributeViewSizes()},t.prototype.relayout=function(e,t){var n=this.viewItems.reduce((function(e,t){return e+t.size}),0);this.resize(this.viewItems.length-1,this.size-n,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()},t.prototype.resize=function(e,t,n,i,o,r,s,a,d){var c=this;if(void 0===n&&(n=this.viewItems.map((function(e){return e.size}))),void 0===r&&(r=Number.NEGATIVE_INFINITY),void 0===s&&(s=Number.POSITIVE_INFINITY),e<0||e>=this.viewItems.length)return 0\n;var h=u.range(e,-1),p=u.range(e+1,this.viewItems.length);if(o)for(var g=0,f=o;g<f.length;g++){var m=f[g];u.pushToStart(h,m),u.pushToStart(p,m)}if(i)for(var v=0,_=i;v<_.length;v++){var y=_[v];u.pushToEnd(h,y),u.pushToEnd(p,y)}var C=h.map((function(e){return c.viewItems[e]})),b=h.map((function(e){return n[e]})),S=p.map((function(e){return c.viewItems[e]})),w=p.map((function(e){return n[e]})),E=h.reduce((function(e,t){return e+(c.viewItems[t].minimumSize-n[t])}),0),L=h.reduce((function(e,t){return e+(c.viewItems[t].maximumSize-n[t])}),0),D=0===p.length?Number.POSITIVE_INFINITY:p.reduce((function(e,t){return e+(n[t]-c.viewItems[t].minimumSize)}),0),N=0===p.length?Number.NEGATIVE_INFINITY:p.reduce((function(e,t){return e+(n[t]-c.viewItems[t].maximumSize)}),0),x=Math.max(E,N,r),I=Math.min(D,L,s),M=!1;if(a){var k=this.viewItems[a.index];M=(T=t>=a.limitDelta)!==k.visible,k.setVisible(T,a.size)}if(!M&&d){var T;k=this.viewItems[d.index];M=(T=t<d.limitDelta)!==k.visible,k.setVisible(T,d.size)}\nif(M)return this.resize(e,t,n,i,o,r,s);for(var R=0,O=t=l.clamp(t,x,I);R<C.length;R++){var P=C[R];O-=(F=l.clamp(b[R]+O,P.minimumSize,P.maximumSize))-b[R],P.size=F}R=0;for(var A=t;R<S.length;R++){var F;P=S[R];A+=(F=l.clamp(w[R]-A,P.minimumSize,P.maximumSize))-w[R],P.size=F}return t},t.prototype.distributeEmptySpace=function(e){for(var t=this,n=this.viewItems.reduce((function(e,t){return e+t.size}),0),i=this.size-n,o=u.range(this.viewItems.length-1,-1),r=o.filter((function(e){return 1===t.viewItems[e].priority})),s=0,a=o.filter((function(e){return 2===t.viewItems[e].priority}));s<a.length;s++){var d=a[s];u.pushToStart(o,d)}for(var c=0,h=r;c<h.length;c++){d=h[c];u.pushToEnd(o,d)}\"number\"==typeof e&&u.pushToEnd(o,e);for(var p=0;0!==i&&p<o.length;p++){var g=this.viewItems[o[p]],f=l.clamp(g.size+i,g.minimumSize,g.maximumSize);i-=f-g.size,g.size=f}},t.prototype.layoutViews=function(){this.contentSize=this.viewItems.reduce((function(e,t){return e+t.size}),0);for(var e=0,t=0,n=this.viewItems;t<n.length;t++){var i=n[t]\n;i.layout(e,this.layoutContext),e+=i.size}this.sashItems.forEach((function(e){return e.sash.layout()})),this.updateSashEnablement()},t.prototype.updateSashEnablement=function(){var e=!1,t=this.viewItems.map((function(t){return e=t.size-t.minimumSize>0||e}));e=!1;var n=this.viewItems.map((function(t){return e=t.maximumSize-t.size>0||e})),i=a(this.viewItems).reverse();e=!1;var o=i.map((function(t){return e=t.size-t.minimumSize>0||e})).reverse();e=!1;for(var r=i.map((function(t){return e=t.maximumSize-t.size>0||e})).reverse(),s=0,l=0;l<this.sashItems.length;l++){var d=this.sashItems[l].sash;s+=this.viewItems[l].size;var c=!(t[l]&&r[l+1]),h=!(n[l]&&o[l+1]);if(c&&h){var p=u.range(l,-1),g=u.range(l+1,this.viewItems.length),f=this.findFirstSnapIndex(p),m=this.findFirstSnapIndex(g),v=\"number\"==typeof f&&!this.viewItems[f].visible,_=\"number\"==typeof m&&!this.viewItems[m].visible;v&&o[l]&&(s>0||this.startSnappingEnabled)?d.state=1:_&&t[l]&&(s<this.contentSize||this.endSnappingEnabled)?d.state=2:d.state=0\n}else d.state=c&&!h?1:!c&&h?2:3}},t.prototype.getSashPosition=function(e){for(var t=0,n=0;n<this.sashItems.length;n++)if(t+=this.viewItems[n].size,this.sashItems[n].sash===e)return Math.min(t,this.contentSize-2);return 0},t.prototype.findFirstSnapIndex=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t];if((s=this.viewItems[i]).visible&&s.snap)return i}for(var o=0,r=e;o<r.length;o++){var s;i=r[o];if((s=this.viewItems[i]).visible&&s.maximumSize-s.minimumSize>0)return;if(!s.visible&&s.snap)return i}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.viewItems.forEach((function(e){return e.dispose()})),this.viewItems=[],this.sashItems.forEach((function(e){return e.disposable.dispose()})),this.sashItems=[]},t}(n.Disposable);t.SplitView=_})),define(n[280],i([9]),{}),define(n[281],i([9]),{}),define(n[282],i([9]),{}),define(n[283],i([0,1,137,256,277,4,27,31,282]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e,t,i){if(void 0===i&&(i={}),\nthis.tree=e,this.configuration=t,this.options=i,!t.dataSource)throw new Error(\"You must provide a Data Source to the tree.\");this.dataSource=t.dataSource,this.renderer=t.renderer,this.controller=t.controller||new n.DefaultController({clickBehavior:1,keyboardSupport:\"boolean\"!=typeof i.keyboardSupport||i.keyboardSupport}),this.dnd=t.dnd||new n.DefaultDragAndDrop,this.filter=t.filter||new n.DefaultFilter,this.sorter=t.sorter,this.accessibilityProvider=t.accessibilityProvider||new n.DefaultAccessibilityProvider,this.styler=t.styler};t.TreeContext=l;var u={listFocusBackground:s.Color.fromHex(\"#073655\"),listActiveSelectionBackground:s.Color.fromHex(\"#0E639C\"),listActiveSelectionForeground:s.Color.fromHex(\"#FFFFFF\"),listFocusAndSelectionBackground:s.Color.fromHex(\"#094771\"),listFocusAndSelectionForeground:s.Color.fromHex(\"#FFFFFF\"),listInactiveSelectionBackground:s.Color.fromHex(\"#3F3F46\"),listHoverBackground:s.Color.fromHex(\"#2A2D2E\"),listDropBackground:s.Color.fromHex(\"#383B3D\")},d=function(){function e(e,t,n){\nvoid 0===n&&(n={}),this._onDidChangeFocus=new r.Relay,this.onDidChangeFocus=this._onDidChangeFocus.event,this._onDidChangeSelection=new r.Relay,this.onDidChangeSelection=this._onDidChangeSelection.event,this._onHighlightChange=new r.Relay,this._onDidExpandItem=new r.Relay,this._onDidCollapseItem=new r.Relay,this._onDispose=new r.Emitter,this.onDidDispose=this._onDispose.event,this.container=e,a.mixin(n,u,!1),n.twistiePixels=\"number\"==typeof n.twistiePixels?n.twistiePixels:32,n.showTwistie=!1!==n.showTwistie,n.indentPixels=\"number\"==typeof n.indentPixels?n.indentPixels:12,n.alwaysFocused=!0===n.alwaysFocused,n.useShadows=!1!==n.useShadows,n.paddingOnRow=!1!==n.paddingOnRow,n.showLoading=!1!==n.showLoading,this.context=new l(this,t,n),this.model=new i.TreeModel(this.context),this.view=new o.TreeView(this.context,this.container),this.view.setModel(this.model),this._onDidChangeFocus.input=this.model.onDidFocus,this._onDidChangeSelection.input=this.model.onDidSelect,\nthis._onHighlightChange.input=this.model.onDidHighlight,this._onDidExpandItem.input=this.model.onDidExpandItem,this._onDidCollapseItem.input=this.model.onDidCollapseItem}return e.prototype.style=function(e){this.view.applyStyles(e)},Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.view.onDOMFocus},enumerable:!0,configurable:!0}),e.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.domFocus=function(){this.view.focus()},e.prototype.isDOMFocused=function(){return this.view.isFocused()},e.prototype.domBlur=function(){this.view.blur()},e.prototype.setInput=function(e){return this.model.setInput(e)},e.prototype.getInput=function(){return this.model.getInput()},e.prototype.expand=function(e){return this.model.expand(e)},e.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.collapse(e,t)},e.prototype.toggleExpansion=function(e,t){return void 0===t&&(t=!1),this.model.toggleExpansion(e,t)\n},e.prototype.isExpanded=function(e){return this.model.isExpanded(e)},e.prototype.reveal=function(e,t){return void 0===t&&(t=null),this.model.reveal(e,t)},e.prototype.getHighlight=function(){return this.model.getHighlight()},e.prototype.clearHighlight=function(e){this.model.setHighlight(null,e)},e.prototype.setSelection=function(e,t){this.model.setSelection(e,t)},e.prototype.getSelection=function(){return this.model.getSelection()},e.prototype.clearSelection=function(e){this.model.setSelection([],e)},e.prototype.setFocus=function(e,t){this.model.setFocus(e,t)},e.prototype.getFocus=function(){return this.model.getFocus()},e.prototype.focusNext=function(e,t){this.model.focusNext(e,t)},e.prototype.focusPrevious=function(e,t){this.model.focusPrevious(e,t)},e.prototype.focusParent=function(e){this.model.focusParent(e)},e.prototype.focusFirstChild=function(e){this.model.focusFirstChild(e)},e.prototype.focusFirst=function(e,t){this.model.focusFirst(e,t)},e.prototype.focusNth=function(e,t){this.model.focusNth(e,t)},\ne.prototype.focusLast=function(e,t){this.model.focusLast(e,t)},e.prototype.focusNextPage=function(e){this.view.focusNextPage(e)},e.prototype.focusPreviousPage=function(e){this.view.focusPreviousPage(e)},e.prototype.clearFocus=function(e){this.model.setFocus(null,e)},e.prototype.dispose=function(){this._onDispose.fire(),this.model.dispose(),this.view.dispose(),this._onDidChangeFocus.dispose(),this._onDidChangeSelection.dispose(),this._onHighlightChange.dispose(),this._onDidExpandItem.dispose(),this._onDidCollapseItem.dispose(),this._onDispose.dispose()},e}();t.Tree=d})),define(n[284],i([9]),{}),define(n[285],i([9]),{}),define(n[286],i([9]),{}),define(n[287],i([9]),{}),define(n[288],i([9]),{}),define(n[289],i([9]),{}),define(n[290],i([9]),{}),define(n[291],i([9]),{}),define(n[292],i([9]),{}),define(n[293],i([9]),{}),define(n[294],i([9]),{}),define(n[295],i([9]),{}),define(n[296],i([9]),{}),define(n[297],i([9]),{}),define(n[298],i([9]),{}),define(n[299],i([9]),{}),define(n[300],i([9]),{}),\ndefine(n[301],i([9]),{}),define(n[302],i([9]),{}),define(n[303],i([9]),{}),define(n[304],i([9]),{}),define(n[305],i([9]),{}),define(n[306],i([9]),{}),define(n[307],i([9]),{}),define(n[308],i([9]),{}),define(n[309],i([9]),{}),define(n[310],i([9]),{}),define(n[311],i([9]),{}),define(n[312],i([9]),{}),define(n[313],i([9]),{}),define(n[314],i([9]),{}),define(n[315],i([9]),{}),define(n[316],i([9]),{}),define(n[317],i([9]),{}),define(n[318],i([9]),{}),define(n[319],i([9]),{}),define(n[320],i([9]),{}),define(n[321],i([9]),{}),define(n[322],i([9]),{}),define(n[323],i([9]),{}),define(n[324],i([9]),{}),define(n[325],i([9]),{}),define(n[326],i([9]),{}),define(n[327],i([9]),{}),define(n[328],i([9]),{}),define(n[329],i([9]),{}),define(n[330],i([9]),{}),define(n[331],i([9]),{}),define(n[332],i([9]),{}),define(n[333],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.chr=e,this.type=t,this.width=0}return e.prototype.fulfill=function(e){this.width=e},e\n}();t.CharWidthRequest=n;var i=function(){function e(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}return e.prototype.read=function(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null},e.prototype._createDomElements=function(){var t=document.createElement(\"div\");t.style.position=\"absolute\",t.style.top=\"-50000px\",t.style.width=\"50000px\";var n=document.createElement(\"div\");n.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),n.style.fontWeight=this._bareFontInfo.fontWeight,n.style.fontSize=this._bareFontInfo.fontSize+\"px\",n.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,n.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",n.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",t.appendChild(n);var i=document.createElement(\"div\");i.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),\ni.style.fontWeight=\"bold\",i.style.fontSize=this._bareFontInfo.fontSize+\"px\",i.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,i.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",i.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",t.appendChild(i);var o=document.createElement(\"div\");o.style.fontFamily=this._bareFontInfo.getMassagedFontFamily(),o.style.fontWeight=this._bareFontInfo.fontWeight,o.style.fontSize=this._bareFontInfo.fontSize+\"px\",o.style.fontFeatureSettings=this._bareFontInfo.fontFeatureSettings,o.style.lineHeight=this._bareFontInfo.lineHeight+\"px\",o.style.letterSpacing=this._bareFontInfo.letterSpacing+\"px\",o.style.fontStyle=\"italic\",t.appendChild(o);for(var r=[],s=0,a=this._requests;s<a.length;s++){var l=a[s],u=void 0;0===l.type&&(u=n),2===l.type&&(u=i),1===l.type&&(u=o),u.appendChild(document.createElement(\"br\"));var d=document.createElement(\"span\");e._render(d,l),u.appendChild(d),r.push(d)}this._container=t,this._testElements=r},e._render=function(e,t){if(\" \"===t.chr){\nfor(var n=\"&#160;\",i=0;i<8;i++)n+=n;e.innerHTML=n}else{var o=t.chr;for(i=0;i<8;i++)o+=o;e.textContent=o}},e.prototype._readFromDomElements=function(){for(var e=0,t=this._requests.length;e<t;e++){var n=this._requests[e],i=this._testElements[e];n.fulfill(i.offsetWidth/256)}},e}();t.readCharWidths=function(e,t){new i(e,t).read()}})),define(n[185],i([0,1,2,6]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i){var o=e.call(this)||this;return o.referenceDomElement=t,o.changeCallback=i,o.width=-1,o.height=-1,o.mutationObserver=null,o.windowSizeListener=null,o.measureReferenceDomElement(!1,n),o}return r(t,e),t.prototype.dispose=function(){this.stopObserving(),e.prototype.dispose.call(this)},t.prototype.getWidth=function(){return this.width},t.prototype.getHeight=function(){return this.height},t.prototype.startObserving=function(){var e=this;!this.mutationObserver&&this.referenceDomElement&&(this.mutationObserver=new MutationObserver((function(){\nreturn e._onDidMutate()})),this.mutationObserver.observe(this.referenceDomElement,{attributes:!0})),this.windowSizeListener||(this.windowSizeListener=i.addDisposableListener(window,\"resize\",(function(){return e._onDidResizeWindow()})))},t.prototype.stopObserving=function(){this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null),this.windowSizeListener&&(this.windowSizeListener.dispose(),this.windowSizeListener=null)},t.prototype.observe=function(e){this.measureReferenceDomElement(!0,e)},t.prototype._onDidMutate=function(){this.measureReferenceDomElement(!0)},t.prototype._onDidResizeWindow=function(){this.measureReferenceDomElement(!0)},t.prototype.measureReferenceDomElement=function(e,t){var n=0,i=0;t?(n=t.width,i=t.height):this.referenceDomElement&&(n=this.referenceDomElement.clientWidth,i=this.referenceDomElement.clientHeight),n=Math.max(5,n),i=Math.max(5,i),this.width===n&&this.height===i||(this.width=n,this.height=i,e&&this.changeCallback())},t}(n.Disposable)\n;t.ElementSizeObserver=o})),define(n[141],i([0,1,6,78,45,2]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this.x=e,this.y=t}return e.prototype.toClientCoordinates=function(){return new l(this.x-n.StandardWindow.scrollX,this.y-n.StandardWindow.scrollY)},e}();t.PageCoordinates=a;var l=function(){function e(e,t){this.clientX=e,this.clientY=t}return e.prototype.toPageCoordinates=function(){return new a(this.clientX+n.StandardWindow.scrollX,this.clientY+n.StandardWindow.scrollY)},e}();t.ClientCoordinates=l;var u=function(e,t,n,i){this.x=e,this.y=t,this.width=n,this.height=i};function d(e){var t=n.getDomNodePagePosition(e);return new u(t.left,t.top,t.width,t.height)}t.EditorPagePosition=u,t.createEditorPagePosition=d;var c=function(e){function t(t,n){var i=e.call(this,t)||this;return i.pos=new a(i.posx,i.posy),i.editorPos=d(n),i}return r(t,e),t}(o.StandardMouseEvent);t.EditorMouseEvent=c;var h=function(){function e(e){this._editorViewDomNode=e\n}return e.prototype._create=function(e){return new c(e,this._editorViewDomNode)},e.prototype.onContextMenu=function(e,t){var i=this;return n.addDisposableListener(e,\"contextmenu\",(function(e){t(i._create(e))}))},e.prototype.onMouseUp=function(e,t){var i=this;return n.addDisposableListener(e,\"mouseup\",(function(e){t(i._create(e))}))},e.prototype.onMouseDown=function(e,t){var i=this;return n.addDisposableListener(e,\"mousedown\",(function(e){t(i._create(e))}))},e.prototype.onMouseLeave=function(e,t){var i=this;return n.addDisposableNonBubblingMouseOutListener(e,(function(e){t(i._create(e))}))},e.prototype.onMouseMoveThrottled=function(e,t,i,o){var r=this;return n.addDisposableThrottledListener(e,\"mousemove\",t,(function(e,t){return i(e,r._create(t))}),o)},e}();t.EditorMouseEventFactory=h;var p=function(){function e(e){this._editorViewDomNode=e}return e.prototype._create=function(e){return new c(e,this._editorViewDomNode)},e.prototype.onPointerUp=function(e,t){var i=this\n;return n.addDisposableListener(e,\"pointerup\",(function(e){t(i._create(e))}))},e.prototype.onPointerDown=function(e,t){var i=this;return n.addDisposableListener(e,\"pointerdown\",(function(e){t(i._create(e))}))},e.prototype.onPointerLeave=function(e,t){var i=this;return n.addDisposableNonBubblingPointerOutListener(e,(function(e){t(i._create(e))}))},e.prototype.onPointerMoveThrottled=function(e,t,i,o){var r=this;return n.addDisposableThrottledListener(e,\"pointermove\",t,(function(e,t){return i(e,r._create(t))}),o)},e}();t.EditorPointerEventFactory=p;var g=function(e){function t(t){var n=e.call(this)||this;return n._editorViewDomNode=t,n._globalMouseMoveMonitor=n._register(new i.GlobalMouseMoveMonitor),n._keydownListener=null,n}return r(t,e),t.prototype.startMonitoring=function(e,t,i,o,r){var s=this;this._keydownListener=n.addStandardDisposableListener(document,\"keydown\",(function(e){e.toKeybinding().isModifierKey()||s._globalMouseMoveMonitor.stopMonitoring(!0)}),!0)\n;this._globalMouseMoveMonitor.startMonitoring(e,t,(function(e,t){return i(e,new c(t,s._editorViewDomNode))}),o,(function(){s._keydownListener.dispose(),r()}))},t}(s.Disposable);t.GlobalEditorMouseMoveMonitor=g})),define(n[334],i([0,1,4,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(){var t=e.call(this)||this;return t._onCodeEditorAdd=t._register(new n.Emitter),t.onCodeEditorAdd=t._onCodeEditorAdd.event,t._onCodeEditorRemove=t._register(new n.Emitter),t.onCodeEditorRemove=t._onCodeEditorRemove.event,t._onDiffEditorAdd=t._register(new n.Emitter),t._onDiffEditorRemove=t._register(new n.Emitter),t._codeEditors=Object.create(null),t._diffEditors=Object.create(null),t}return r(t,e),t.prototype.addCodeEditor=function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)},t.prototype.removeCodeEditor=function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)},t.prototype.listCodeEditors=function(){var e=this\n;return Object.keys(this._codeEditors).map((function(t){return e._codeEditors[t]}))},t.prototype.addDiffEditor=function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)},t.prototype.removeDiffEditor=function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)},t.prototype.listDiffEditors=function(){var e=this;return Object.keys(this._diffEditors).map((function(t){return e._diffEditors[t]}))},t.prototype.getFocusedCodeEditor=function(){for(var e=null,t=0,n=this.listCodeEditors();t<n.length;t++){var i=n[t];if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e},t}(i.Disposable);t.AbstractCodeEditorService=o})),define(n[186],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.allCharCodes=function(){for(var e=[],t=32;t<=126;t++)e.push(t);return e.push(65533),e}(),t.getCharIndex=function(e,t){return(e-=32)<0||e>96?t<=2?(e+96)%96:95:e}})),define(n[335],i([0,1,186]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var i=function(){function e(t,n){this.scale=n,this.charDataNormal=e.soften(t,.8),this.charDataLight=e.soften(t,50/60)}return e.soften=function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,o=e.length;i<o;i++)n[i]=e[i]*t;return n},e.prototype.renderChar=function(e,t,i,o,r,s,a,l){var u=1*this.scale,d=2*this.scale;if(t+u>e.width||i+d>e.height)console.warn(\"bad render request outside image data\");else for(var c=l?this.charDataLight:this.charDataNormal,h=n.getCharIndex(o,a),p=4*e.width,g=s.r,f=s.g,m=s.b,v=r.r-g,_=r.g-f,y=r.b-m,C=e.data,b=h*u*d,S=i*p+4*t,w=0;w<d;w++){for(var E=S,L=0;L<u;L++){var D=c[b++]/255;C[E++]=g+v*D,C[E++]=f+_*D,C[E++]=m+y*D,E++}S+=p}},e.prototype.blockRenderChar=function(e,t,n,i,o,r){var s=1*this.scale,a=2*this.scale;if(t+s>e.width||n+a>e.height)console.warn(\"bad render request outside image data\");else for(var l=4*e.width,u=o.r,d=o.g,c=o.b,h=u+.5*(i.r-u),p=d+.5*(i.g-d),g=c+.5*(i.b-c),f=e.data,m=n*l+4*t,v=0;v<a;v++){for(var _=m,y=0;y<s;y++)f[_++]=h,f[_++]=p,f[_++]=g,_++;m+=l}\n},e}();t.MinimapCharRenderer=i})),define(n[336],i([0,1,102]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},o=function(e){for(var t=new Uint8ClampedArray(e.length/2),n=0;n<e.length;n+=2)t[n>>1]=i[e[n]]<<4|15&i[e[n+1]];return t};t.prebakedMiniMaps={1:n.once((function(){return o(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\")})),2:n.once((function(){\nreturn o(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\")\n}))}})),define(n[337],i([0,1,335,186,336]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.create=function(t,i){return this.lastCreated&&t===this.lastCreated.scale&&i===this.lastFontFamily?this.lastCreated:(r=o.prebakedMiniMaps[t]?new n.MinimapCharRenderer(o.prebakedMiniMaps[t](),t):e.createFromSampleData(e.createSampleData(i).data,t),this.lastFontFamily=i,this.lastCreated=r,r);var r},e.createSampleData=function(e){var t=document.createElement(\"canvas\"),n=t.getContext(\"2d\");t.style.height=\"16px\",t.height=16,t.width=960,t.style.width=\"960px\",n.fillStyle=\"#ffffff\",n.font=\"bold 16px \"+e,n.textBaseline=\"middle\";for(var o=0,r=0,s=i.allCharCodes;r<s.length;r++){var a=s[r];n.fillText(String.fromCharCode(a),o,8),o+=10}return n.getImageData(0,0,960,16)},e.createFromSampleData=function(t,i){if(61440!==t.length)throw new Error(\"Unexpected source in MinimapCharRenderer\");var o=e._downsample(t,i);return new n.MinimapCharRenderer(o,i)},\ne._downsampleChar=function(e,t,n,i,o){for(var r=1*o,s=2*o,a=i,l=0,u=0;u<s;u++)for(var d=u/s*16,c=(u+1)/s*16,h=0;h<r;h++){for(var p=h/r*10,g=(h+1)/r*10,f=0,m=0,v=d;v<c;v++)for(var _=t+3840*Math.floor(v),y=1-(v-Math.floor(v)),C=p;C<g;C++){var b=1-(C-Math.floor(C)),S=_+4*Math.floor(C),w=b*y;m+=w,f+=e[S]*e[S+3]/255*w}var E=f/m;l=Math.max(l,E),n[a++]=E}return l},e._downsample=function(e,t){for(var n=2*t*1*t,i=96*n,o=new Uint8ClampedArray(i),r=0,s=0,a=0,l=0;l<96;l++)a=Math.max(a,this._downsampleChar(e,s,o,r,t)),r+=n,s+=40;if(a>0)for(var u=255/a,d=0;d<i;d++)o[d]*=u;return o},e}();t.MinimapCharRendererFactory=r})),define(n[105],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.EditorZoom=new(function(){function e(){this._zoomLevel=0,this._onDidChangeZoomLevel=new n.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}return e.prototype.getZoomLevel=function(){return this._zoomLevel},e.prototype.setZoomLevel=function(e){e=Math.min(Math.max(-5,e),20),\nthis._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))},e}())})),define(n[142],i([0,1,16,105]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n.isMacintosh?1.5:1.35,s=function(){function e(e){this.zoomLevel=e.zoomLevel,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}return e.createFromValidatedSettings=function(t,n,i){var o=t.get(33),r=t.get(37),s=t.get(36),a=t.get(35),l=t.get(49),u=t.get(46);return e._create(o,r,s,a,l,u,n,i)},e._create=function(t,n,r,s,a,l,u,d){0===a?a=Math.round(o*r):a<8&&(a=8);var c=1+(d?0:.1*i.EditorZoom.getZoomLevel());return new e({zoomLevel:u,fontFamily:t,fontWeight:n,fontSize:r*=c,fontFeatureSettings:s,lineHeight:a*=c,letterSpacing:l})},e.prototype.getId=function(){\nreturn this.zoomLevel+\"-\"+this.fontFamily+\"-\"+this.fontWeight+\"-\"+this.fontSize+\"-\"+this.fontFeatureSettings+\"-\"+this.lineHeight+\"-\"+this.letterSpacing},e.prototype.getMassagedFontFamily=function(){return/[,\"']/.test(this.fontFamily)?this.fontFamily:/[+ ]/.test(this.fontFamily)?'\"'+this.fontFamily+'\"':this.fontFamily},e}();t.BareFontInfo=s;var a=function(e){function t(t,n){var i=e.call(this,t)||this;return i.isTrusted=n,i.isMonospace=t.isMonospace,i.typicalHalfwidthCharacterWidth=t.typicalHalfwidthCharacterWidth,i.typicalFullwidthCharacterWidth=t.typicalFullwidthCharacterWidth,i.canUseHalfwidthRightwardsArrow=t.canUseHalfwidthRightwardsArrow,i.spaceWidth=t.spaceWidth,i.middotWidth=t.middotWidth,i.maxDigitWidth=t.maxDigitWidth,i}return r(t,e),t.prototype.equals=function(e){\nreturn this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.maxDigitWidth===e.maxDigitWidth},t}(s);t.FontInfo=a})),define(n[79],i([0,1,179]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){var i=n.toUint8(t);this._defaultValue=i,this._asciiMap=e._createAsciiMap(i),this._map=new Map}return e._createAsciiMap=function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t},e.prototype.set=function(e,t){var i=n.toUint8(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)},e.prototype.get=function(e){\nreturn e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}();t.CharacterClassifier=i;var o=function(){function e(){this._actual=new i(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}();t.CharacterSet=o})),define(n[89],i([0,1,79]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o,s=function(e){function t(t){for(var n=e.call(this,0)||this,i=0,o=t.length;i<o;i++)n.set(t.charCodeAt(i),2);return n.set(32,1),n.set(9,1),n}return r(t,e),t}(n.CharacterClassifier);t.WordCharacterClassifier=s,t.getMapForWordSeparators=(i=function(e){return new s(e)},o={},function(e){return o.hasOwnProperty(e)||(o[e]=i(e)),o[e]})})),define(n[13],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.with=function(t,n){return void 0===t&&(t=this.lineNumber),void 0===n&&(n=this.column),\nt===this.lineNumber&&n===this.column?this:new e(t,n)},e.prototype.delta=function(e,t){return void 0===e&&(e=0),void 0===t&&(t=0),this.with(this.lineNumber+e,this.column+t)},e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<t.column},e.prototype.isBeforeOrEqual=function(t){return e.isBeforeOrEqual(this,t)},e.isBeforeOrEqual=function(e,t){return e.lineNumber<t.lineNumber||!(t.lineNumber<e.lineNumber)&&e.column<=t.column},e.compare=function(e,t){var n=0|e.lineNumber,i=0|t.lineNumber;return n===i?(0|e.column)-(0|t.column):n-i},e.prototype.clone=function(){return new e(this.lineNumber,this.column)},e.prototype.toString=function(){return\"(\"+this.lineNumber+\",\"+this.column+\")\"},e.lift=function(t){return new e(t.lineNumber,t.column)},e.isIPosition=function(e){\nreturn e&&\"number\"==typeof e.lineNumber&&\"number\"==typeof e.column},e}();t.Position=n})),define(n[3],i([0,1,13]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,i){e>n||e===n&&t>i?(this.startLineNumber=n,this.startColumn=i,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=i)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>e.endColumn))},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){\nreturn!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)))},e.prototype.strictContainsRange=function(t){return e.strictContainsRange(this,t)},e.strictContainsRange=function(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber)&&(!(t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var i,o,r,s;return n.startLineNumber<t.startLineNumber?(i=n.startLineNumber,o=n.startColumn):n.startLineNumber===t.startLineNumber?(i=n.startLineNumber,o=Math.min(n.startColumn,t.startColumn)):(i=t.startLineNumber,o=t.startColumn),\nn.endLineNumber>t.endLineNumber?(r=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(r=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(r=t.endLineNumber,s=t.endColumn),new e(i,o,r,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var i=t.startLineNumber,o=t.startColumn,r=t.endLineNumber,s=t.endColumn,a=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn;return i<a?(i=a,o=l):i===a&&(o=Math.max(o,l)),r>u?(r=u,s=d):r===u&&(s=Math.min(s,d)),i>r?null:i===r&&o>s?null:new e(i,o,r,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new n.Position(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new n.Position(this.startLineNumber,this.startColumn)},\ne.prototype.toString=function(){return\"[\"+this.startLineNumber+\",\"+this.startColumn+\" -> \"+this.endLineNumber+\",\"+this.endColumn+\"]\"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&\"number\"==typeof e.startLineNumber&&\"number\"==typeof e.startColumn&&\"number\"==typeof e.endLineNumber&&\"number\"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){\nreturn!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)},e.areIntersecting=function(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)&&!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)},e.compareRangesUsingStarts=function(e,t){if(e&&t){var n=0|e.startLineNumber,i=0|t.startLineNumber;if(n===i){var o=0|e.startColumn,r=0|t.startColumn;if(o===r){var s=0|e.endLineNumber,a=0|t.endLineNumber;return s===a?(0|e.endColumn)-(0|t.endColumn):s-a}return o-r}return n-i}return(e?1:0)-(t?1:0)},e.compareRangesUsingEnds=function(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber},\ne.spansMultipleLines=function(e){return e.endLineNumber>e.startLineNumber},e}();t.Range=i})),define(n[187],i([0,1,5,13,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i,o){this.value=e,this.selectionStart=t,this.selectionEnd=n,this.selectionStartPosition=i,this.selectionEndPosition=o}return e.prototype.toString=function(){return\"[ <\"+this.value+\">, selectionStart: \"+this.selectionStart+\", selectionEnd: \"+this.selectionEnd+\"]\"},e.readFromTextArea=function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd(),null,null)},e.prototype.collapseSelection=function(){return new e(this.value,this.value.length,this.value.length,null,null)},e.prototype.writeToTextArea=function(e,t,n){t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)},e.prototype.deduceEditorPosition=function(e){if(e<=this.selectionStart){var t=this.value.substring(e,this.selectionStart)\n;return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd){t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selectionEndPosition,t,1)}var n=this.value.substring(this.selectionStart,e);if(-1===n.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,n,1);var i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)},e.prototype._finishDeduceEditorPosition=function(e,t,n){for(var i=0,o=-1;-1!==(o=t.indexOf(\"\\n\",o+1));)i++;return[e,n*t.length,i]},e.selectedText=function(t){return new e(t,0,t.length,null,null)},e.deduceInput=function(e,t,i){if(!e)return{text:\"\",replaceCharCnt:0};var o=e.value,r=e.selectionStart,s=e.selectionEnd,a=t.value,l=t.selectionStart,u=t.selectionEnd,d=o.substring(s),c=a.substring(u),h=n.commonSuffixLength(d,c);a=a.substring(0,a.length-h)\n;var p=(o=o.substring(0,o.length-h)).substring(0,r),g=a.substring(0,l),f=n.commonPrefixLength(p,g);if(a=a.substring(f),o=o.substring(f),l-=f,r-=f,u-=f,s-=f,i&&l===u&&o.length>0){var m=null;if(l===a.length?n.startsWith(a,o)&&(m=a.substring(o.length)):n.endsWith(a,o)&&(m=a.substring(0,a.length-o.length)),null!==m&&m.length>0&&(/\\uFE0F/.test(m)||n.containsEmoji(m)))return{text:m,replaceCharCnt:0}}return l===u?o===a&&0===r&&s===o.length&&l===a.length&&-1===a.indexOf(\"\\n\")&&n.containsFullWidthCharacter(a)?{text:\"\",replaceCharCnt:0}:{text:a,replaceCharCnt:p.length-f}:{text:a,replaceCharCnt:s-r}},e.EMPTY=new e(\"\",0,0,null,null),e}();t.TextAreaState=r;var s=function(){function e(){}return e._getPageOfLine=function(e,t){return Math.floor((e-1)/t)},e._getRangeForPage=function(e,t){var n=e*t,i=n+1,r=n+t;return new o.Range(i,1,r+1,1)},e.fromEditorSelection=function(t,n,s,a,l){\nvar u,d=e._getPageOfLine(s.startLineNumber,a),c=e._getRangeForPage(d,a),h=e._getPageOfLine(s.endLineNumber,a),p=e._getRangeForPage(h,a),g=c.intersectRanges(new o.Range(1,1,s.startLineNumber,s.startColumn)),f=n.getValueInRange(g,1),m=n.getLineCount(),v=n.getLineMaxColumn(m),_=p.intersectRanges(new o.Range(s.endLineNumber,s.endColumn,m,v)),y=n.getValueInRange(_,1);if(d===h||d+1===h)u=n.getValueInRange(s,1);else{var C=c.intersectRanges(s),b=p.intersectRanges(s);u=n.getValueInRange(C,1)+String.fromCharCode(8230)+n.getValueInRange(b,1)}if(l){f.length>500&&(f=f.substring(f.length-500,f.length)),y.length>500&&(y=y.substring(0,500)),u.length>1e3&&(u=u.substring(0,500)+String.fromCharCode(8230)+u.substring(u.length-500,u.length))}return new r(f+u+y,f.length,f.length+u.length,new i.Position(s.startLineNumber,s.startColumn),new i.Position(s.endLineNumber,s.endColumn))},e}();t.PagedScreenReaderStrategy=s})),define(n[188],i([0,1,124,4,2,31,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var l={followsCaret:!0,ignoreCharChanges:!0,alwaysRevealFirst:!0},u=function(e){function t(t,n){void 0===n&&(n={});var o=e.call(this)||this;return o._onDidUpdate=o._register(new i.Emitter),o._editor=t,o._options=s.mixin(n,l,!1),o.disposed=!1,o.nextIdx=-1,o.ranges=[],o.ignoreSelectionChange=!1,o.revealFirst=Boolean(o._options.alwaysRevealFirst),o._register(o._editor.onDidDispose((function(){return o.dispose()}))),o._register(o._editor.onDidUpdateDiff((function(){return o._onDiffUpdated()}))),o._options.followsCaret&&o._register(o._editor.getModifiedEditor().onDidChangeCursorPosition((function(e){o.ignoreSelectionChange||(o.nextIdx=-1)}))),o._options.alwaysRevealFirst&&o._register(o._editor.getModifiedEditor().onDidChangeModel((function(e){o.revealFirst=!0}))),o._init(),o}return r(t,e),t.prototype._init=function(){this._editor.getLineChanges()},t.prototype._onDiffUpdated=function(){this._init(),this._compute(this._editor.getLineChanges()),\nthis.revealFirst&&null!==this._editor.getLineChanges()&&(this.revealFirst=!1,this.nextIdx=-1,this.next(1))},t.prototype._compute=function(e){var t=this;this.ranges=[],e&&e.forEach((function(e){!t._options.ignoreCharChanges&&e.charChanges?e.charChanges.forEach((function(e){t.ranges.push({rhs:!0,range:new a.Range(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)})})):t.ranges.push({rhs:!0,range:new a.Range(e.modifiedStartLineNumber,1,e.modifiedStartLineNumber,1)})})),this.ranges.sort((function(e,t){return e.range.getStartPosition().isBeforeOrEqual(t.range.getStartPosition())?-1:t.range.getStartPosition().isBeforeOrEqual(e.range.getStartPosition())?1:0})),this._onDidUpdate.fire(this)},t.prototype._initIdx=function(e){var t=!1,n=this._editor.getPosition();if(n){for(var i=0,o=this.ranges.length;i<o&&!t;i++){var r=this.ranges[i].range;n.isBeforeOrEqual(r.getStartPosition())&&(this.nextIdx=i+(e?0:-1),t=!0)}t||(this.nextIdx=e?0:this.ranges.length-1),\nthis.nextIdx<0&&(this.nextIdx=this.ranges.length-1)}else this.nextIdx=0},t.prototype._move=function(e,t){if(n.ok(!this.disposed,\"Illegal State - diff navigator has been disposed\"),this.canNavigate()){-1===this.nextIdx?this._initIdx(e):e?(this.nextIdx+=1,this.nextIdx>=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var i=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var o=i.range.getStartPosition();this._editor.setPosition(o),this._editor.revealPositionInCenter(o,t)}finally{this.ignoreSelectionChange=!1}}},t.prototype.canNavigate=function(){return this.ranges&&this.ranges.length>0},t.prototype.next=function(e){void 0===e&&(e=0),this._move(!0,e)},t.prototype.previous=function(e){void 0===e&&(e=0),this._move(!1,e)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.ranges=[],this.disposed=!0},t}(o.Disposable);t.DiffNavigator=u})),define(n[58],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var i=function(){function e(){}return e.insert=function(e,t){return{range:new n.Range(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}},e.delete=function(e){return{range:e,text:null}},e.replace=function(e,t){return{range:e,text:t}},e.replaceMove=function(e,t){return{range:e,text:t,forceMoveMarkers:!0}},e}();t.EditOperation=i})),define(n[338],i([0,1,5,58,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){this._selection=e,this._cursors=t,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){for(var n=s(e,this._cursors),i=0,o=n.length;i<o;i++){var r=n[i];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._selectionId)},e}();function s(e,t){t.sort((function(e,t){return e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber}))\n;for(var r=t.length-2;r>=0;r--)t[r].lineNumber===t[r+1].lineNumber&&t.splice(r,1);for(var s=[],a=0,l=0,u=t.length,d=1,c=e.getLineCount();d<=c;d++){var h=e.getLineContent(d),p=h.length+1,g=0;if(!(l<u&&t[l].lineNumber===d&&(g=t[l].column,l++,g===p))&&0!==h.length){var f=n.lastNonWhitespaceIndex(h),m=0;if(-1===f)m=1;else{if(f===h.length-1)continue;m=f+2}m=Math.max(g,m),s[a++]=i.EditOperation.delete(new o.Range(d,m,d,p))}}return s}t.TrimTrailingWhitespaceCommand=r,t.trimTrailingWhitespace=s})),define(n[339],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(t,n,i,o){this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(i),this.a=e._clamp(o)}return e._clamp=function(e){return e<0?0:e>255?255:0|e},e.Empty=new e(0,0,0,0),e}();t.RGBA8=n})),define(n[22],i([0,1,13,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i,o){var r=e.call(this,t,n,i,o)||this;return r.selectionStartLineNumber=t,\nr.selectionStartColumn=n,r.positionLineNumber=i,r.positionColumn=o,r}return r(t,e),t.prototype.toString=function(){return\"[\"+this.selectionStartLineNumber+\",\"+this.selectionStartColumn+\" -> \"+this.positionLineNumber+\",\"+this.positionColumn+\"]\"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1},t.prototype.setEndPosition=function(e,n){return 0===this.getDirection()?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new n.Position(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){\nreturn 0===this.getDirection()?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n<i;n++)if(!this.selectionsEqual(e[n],t[n]))return!1;return!0},t.isISelection=function(e){return e&&\"number\"==typeof e.selectionStartLineNumber&&\"number\"==typeof e.selectionStartColumn&&\"number\"==typeof e.positionLineNumber&&\"number\"==typeof e.positionColumn},t.createWithDirection=function(e,n,i,o,r){return 0===r?new t(e,n,i,o):new t(i,o,e,n)},t}(i.Range);t.Selection=o})),define(n[189],i([0,1,24,6,15,4,2,16,5,187,22,88]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.CopyOptions={forceCopyWithSyntaxHighlighting:!1};var p=function(){function e(){this._lastState=null}return e.prototype.set=function(e,t){this._lastState={lastCopiedValue:e,data:t}},e.prototype.get=function(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)},e.INSTANCE=new e,e}(),g=function(e){function t(t,r){var a=e.call(this)||this;a.textArea=r,a._onFocus=a._register(new s.Emitter),a.onFocus=a._onFocus.event,a._onBlur=a._register(new s.Emitter),a.onBlur=a._onBlur.event,a._onKeyDown=a._register(new s.Emitter),a.onKeyDown=a._onKeyDown.event,a._onKeyUp=a._register(new s.Emitter),a.onKeyUp=a._onKeyUp.event,a._onCut=a._register(new s.Emitter),a.onCut=a._onCut.event,a._onPaste=a._register(new s.Emitter),a.onPaste=a._onPaste.event,a._onType=a._register(new s.Emitter),a.onType=a._onType.event,a._onCompositionStart=a._register(new s.Emitter),a.onCompositionStart=a._onCompositionStart.event,a._onCompositionUpdate=a._register(new s.Emitter),\na.onCompositionUpdate=a._onCompositionUpdate.event,a._onCompositionEnd=a._register(new s.Emitter),a.onCompositionEnd=a._onCompositionEnd.event,a._onSelectionChangeRequest=a._register(new s.Emitter),a.onSelectionChangeRequest=a._onSelectionChangeRequest.event,a._host=t,a._textArea=a._register(new m(r)),a._asyncTriggerCut=a._register(new o.RunOnceScheduler((function(){return a._onCut.fire()}),0)),a._textAreaState=d.TextAreaState.EMPTY,a._selectionChangeListener=null,a.writeScreenReaderContent(\"ctor\"),a._hasFocus=!1,a._isDoingComposition=!1,a._nextCommand=0,a._register(i.addStandardDisposableListener(r.domNode,\"keydown\",(function(e){!a._isDoingComposition||109!==e.keyCode&&1!==e.keyCode||e.stopPropagation(),e.equals(9)&&e.preventDefault(),a._onKeyDown.fire(e)}))),a._register(i.addStandardDisposableListener(r.domNode,\"keyup\",(function(e){a._onKeyUp.fire(e)}))),a._register(i.addDisposableListener(r.domNode,\"compositionstart\",(function(e){a._isDoingComposition||(a._isDoingComposition=!0,\nn.isEdgeOrIE||a._setAndWriteTextAreaState(\"compositionstart\",d.TextAreaState.EMPTY),a._onCompositionStart.fire())})));var c=function(e){var t=a._textAreaState,n=d.TextAreaState.readFromTextArea(a._textArea);return[n,d.TextAreaState.deduceInput(t,n,e)]},h=function(e){var t=a._textAreaState,n=d.TextAreaState.selectedText(e);return[n,{text:n.value,replaceCharCnt:t.selectionEnd-t.selectionStart}]},p=function(e){return!(!n.isEdgeOrIE||\"ja\"!==e)||!(!n.isIE||0!==e.indexOf(\"zh-Han\"))};return a._register(i.addDisposableListener(r.domNode,\"compositionupdate\",(function(e){if(p(e.locale)){var t=c(!1),n=t[0],i=t[1];return a._textAreaState=n,a._onType.fire(i),void a._onCompositionUpdate.fire(e)}var o=h(e.data),r=o[0],s=o[1];a._textAreaState=r,a._onType.fire(s),a._onCompositionUpdate.fire(e)}))),a._register(i.addDisposableListener(r.domNode,\"compositionend\",(function(e){if(a._isDoingComposition){if(p(e.locale)){var t=c(!1),i=t[0],o=t[1];a._textAreaState=i,a._onType.fire(o)}else{var r=h(e.data);i=r[0],o=r[1]\n;a._textAreaState=i,a._onType.fire(o)}(n.isEdgeOrIE||n.isChrome)&&(a._textAreaState=d.TextAreaState.readFromTextArea(a._textArea)),a._isDoingComposition&&(a._isDoingComposition=!1,a._onCompositionEnd.fire())}}))),a._register(i.addDisposableListener(r.domNode,\"input\",(function(){if(a._textArea.setIgnoreSelectionChangeTime(\"received input event\"),!a._isDoingComposition){var e=c(l.isMacintosh),t=e[0],n=e[1];0===n.replaceCharCnt&&1===n.text.length&&u.isHighSurrogate(n.text.charCodeAt(0))||(a._textAreaState=t,0===a._nextCommand?\"\"!==n.text&&a._onType.fire(n):(\"\"===n.text&&0===n.replaceCharCnt||a._firePaste(n.text,null),a._nextCommand=0))}}))),a._register(i.addDisposableListener(r.domNode,\"cut\",(function(e){a._textArea.setIgnoreSelectionChangeTime(\"received cut event\"),a._ensureClipboardGetsEditorSelection(e),a._asyncTriggerCut.schedule()}))),a._register(i.addDisposableListener(r.domNode,\"copy\",(function(e){a._ensureClipboardGetsEditorSelection(e)}))),\na._register(i.addDisposableListener(r.domNode,\"paste\",(function(e){if(a._textArea.setIgnoreSelectionChangeTime(\"received paste event\"),f.canUseTextData(e)){var t=f.getTextData(e),n=t[0],i=t[1];\"\"!==n&&a._firePaste(n,i)}else a._textArea.getSelectionStart()!==a._textArea.getSelectionEnd()&&a._setAndWriteTextAreaState(\"paste\",d.TextAreaState.EMPTY),a._nextCommand=1}))),a._register(i.addDisposableListener(r.domNode,\"focus\",(function(){a._setHasFocus(!0)}))),a._register(i.addDisposableListener(r.domNode,\"blur\",(function(){a._setHasFocus(!1)}))),a}return r(t,e),t.prototype._installSelectionChangeListener=function(){var e=this,t=0;return i.addDisposableListener(document,\"selectionchange\",(function(i){if(e._hasFocus&&!e._isDoingComposition&&n.isChrome&&l.isWindows){var o=Date.now(),r=o-t;if(t=o,!(r<5)){var s=o-e._textArea.getIgnoreSelectionChangeTime();if(e._textArea.resetSelectionChangeTime(),!(s<100)&&e._textAreaState.selectionStartPosition&&e._textAreaState.selectionEndPosition){var a=e._textArea.getValue()\n;if(e._textAreaState.value===a){var u=e._textArea.getSelectionStart(),d=e._textArea.getSelectionEnd();if(e._textAreaState.selectionStart!==u||e._textAreaState.selectionEnd!==d){var h=e._textAreaState.deduceEditorPosition(u),p=e._host.deduceModelPosition(h[0],h[1],h[2]),g=e._textAreaState.deduceEditorPosition(d),f=e._host.deduceModelPosition(g[0],g[1],g[2]),m=new c.Selection(p.lineNumber,p.column,f.lineNumber,f.column);e._onSelectionChangeRequest.fire(m)}}}}}}))},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)},t.prototype.focusTextArea=function(){this._setHasFocus(!0),this.refreshFocusState()},t.prototype.isFocused=function(){return this._hasFocus},t.prototype.refreshFocusState=function(){var e=i.getShadowRoot(this.textArea.domNode)\n;e?this._setHasFocus(e.activeElement===this.textArea.domNode):i.isInDOM(this.textArea.domNode)?this._setHasFocus(document.activeElement===this.textArea.domNode):this._setHasFocus(!1)},t.prototype._setHasFocus=function(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&(n.isEdge?this._setAndWriteTextAreaState(\"focusgain\",d.TextAreaState.EMPTY):this.writeScreenReaderContent(\"focusgain\")),this._hasFocus?this._onFocus.fire():this._onBlur.fire())},t.prototype._setAndWriteTextAreaState=function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t},t.prototype.writeScreenReaderContent=function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))},\nt.prototype._ensureClipboardGetsEditorSelection=function(e){var t=this._host.getDataToCopy(f.canUseTextData(e)&&h.BrowserFeatures.clipboard.richText),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};p.INSTANCE.set(n.isFirefox?t.text.replace(/\\r\\n/g,\"\\n\"):t.text,i),f.canUseTextData(e)?f.setTextData(e,t.text,t.html,i):this._setAndWriteTextAreaState(\"copy or cut\",d.TextAreaState.selectedText(t.text))},t.prototype._firePaste=function(e,t){t||(t=p.INSTANCE.get(e)),this._onPaste.fire({text:e,metadata:t})},t}(a.Disposable);t.TextAreaInput=g;var f=function(){function e(){}return e.canUseTextData=function(e){return!!e.clipboardData||!!window.clipboardData},e.getTextData=function(e){if(e.clipboardData){e.preventDefault();var t=e.clipboardData.getData(\"text/plain\"),n=null,i=e.clipboardData.getData(\"vscode-editor-data\");if(\"string\"==typeof i)try{1!==(n=JSON.parse(i)).version&&(n=null)}catch(e){}return[t,n]}if(window.clipboardData)return e.preventDefault(),\n[t=window.clipboardData.getData(\"Text\"),null];throw new Error(\"ClipboardEventUtils.getTextData: Cannot use text data!\")},e.setTextData=function(e,t,n,i){if(e.clipboardData)return e.clipboardData.setData(\"text/plain\",t),\"string\"==typeof n&&e.clipboardData.setData(\"text/html\",n),e.clipboardData.setData(\"vscode-editor-data\",JSON.stringify(i)),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData(\"Text\",t),void e.preventDefault();throw new Error(\"ClipboardEventUtils.setTextData: Cannot use text data!\")},e}(),m=function(e){function t(t){var n=e.call(this)||this;return n._actual=t,n._ignoreSelectionChangeTime=0,n}return r(t,e),t.prototype.setIgnoreSelectionChangeTime=function(e){this._ignoreSelectionChangeTime=Date.now()},t.prototype.getIgnoreSelectionChangeTime=function(){return this._ignoreSelectionChangeTime},t.prototype.resetSelectionChangeTime=function(){this._ignoreSelectionChangeTime=0},t.prototype.getValue=function(){return this._actual.domNode.value},\nt.prototype.setValue=function(e,t){var n=this._actual.domNode;n.value!==t&&(this.setIgnoreSelectionChangeTime(\"setValue\"),n.value=t)},t.prototype.getSelectionStart=function(){return this._actual.domNode.selectionStart},t.prototype.getSelectionEnd=function(){return this._actual.domNode.selectionEnd},t.prototype.setSelectionRange=function(e,t,o){var r=this._actual.domNode,s=i.getShadowRoot(r),a=(s?s.activeElement:document.activeElement)===r,l=r.selectionStart,u=r.selectionEnd;if(a&&l===t&&u===o)n.isFirefox&&window.parent!==window&&r.focus();else{if(a)return this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),r.setSelectionRange(t,o),void(n.isFirefox&&window.parent!==window&&r.focus());try{var d=i.saveParentsScrollTop(r);this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),r.focus(),r.setSelectionRange(t,o),i.restoreParentsScrollTop(r,d)}catch(e){}}},t}(a.Disposable)})),define(n[80],i([0,1,22]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){\nvoid 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.endLineNumber,i.endColumn,i.endLineNumber,i.endColumn)},e}();t.ReplaceCommand=i;var o=function(){function e(e,t){this._range=e,this._text=t}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)},e}();t.ReplaceCommandThatSelectsText=o;var r=function(){function e(e,t,n){void 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){\nvar i=t.getInverseEditOperations()[0].range;return new n.Selection(i.startLineNumber,i.startColumn,i.startLineNumber,i.startColumn)},e}();t.ReplaceCommandWithoutChangingPosition=r;var s=function(){function e(e,t,n,i,o){void 0===o&&(o=!1),this._range=e,this._text=t,this._columnDeltaOffset=i,this._lineNumberDeltaOffset=n,this.insertsAutoWhitespace=o}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return new n.Selection(i.endLineNumber+this._lineNumberDeltaOffset,i.endColumn+this._columnDeltaOffset,i.endLineNumber+this._lineNumberDeltaOffset,i.endColumn+this._columnDeltaOffset)},e}();t.ReplaceCommandWithOffsetCursorState=s;var a=function(){function e(e,t,n,i){void 0===i&&(i=!1),this._range=e,this._text=t,this._initialSelection=n,this._forceMoveMarkers=i,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){\nt.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._selectionId)},e}();t.ReplaceCommandThatPreservesSelection=a})),define(n[340],i([0,1,3,22]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(new n.Range(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new n.Range(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations(),o=n[0].range,r=n[1].range\n;return new i.Selection(o.endLineNumber,o.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)},e}();t.SurroundSelectionCommand=o})),define(n[106],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\"undefined\"!=typeof TextDecoder?t.createStringBuilder=function(e){return new i(e)}:t.createStringBuilder=function(e){return new o};var i=function(){function e(e){this._decoder=new TextDecoder(\"UTF-16LE\"),this._capacity=0|e,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}return e.prototype.reset=function(){this._completedStrings=null,this._bufferLength=0},e.prototype.build=function(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join(\"\")):this._buildBuffer()},e.prototype._buildBuffer=function(){if(0===this._bufferLength)return\"\";var e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return this._decoder.decode(e)},e.prototype._flushBuffer=function(){\nvar e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e},e.prototype.write1=function(e){var t=this._capacity-this._bufferLength;t<=1&&(0===t||n.isHighSurrogate(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCII=function(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCIIString=function(e){var t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(var n=0;n<t;n++)this._buffer[this._bufferLength++]=e.charCodeAt(n)},e}(),o=function(){function e(){this._pieces=[],this._piecesLen=0}return e.prototype.reset=function(){this._pieces=[],this._piecesLen=0},e.prototype.build=function(){return this._pieces.join(\"\")},e.prototype.write1=function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)},\ne.prototype.appendASCII=function(e){this._pieces[this._piecesLen++]=String.fromCharCode(e)},e.prototype.appendASCIIString=function(e){this._pieces[this._piecesLen++]=e},e}()})),define(n[143],i([0,1,28,106]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._createLine=e,this._set(1,[])}return e.prototype.flush=function(){this._set(1,[])},e.prototype._set=function(e,t){this._lines=t,this._rendLineNumberStart=e},e.prototype._get=function(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}},e.prototype.getStartLineNumber=function(){return this._rendLineNumberStart},e.prototype.getEndLineNumber=function(){return this._rendLineNumberStart+this._lines.length-1},e.prototype.getCount=function(){return this._lines.length},e.prototype.getLine=function(e){var t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Error(\"Illegal value for lineNumber\");return this._lines[t]},e.prototype.onLinesDeleted=function(e,t){\nif(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(t<n){var o=t-e+1;return this._rendLineNumberStart-=o,null}if(e>i)return null;for(var r=0,s=0,a=n;a<=i;a++){var l=a-this._rendLineNumberStart;e<=a&&a<=t&&(0===s?(r=l,s=1):s++)}if(e<n){var u=0;u=t<n?t-e+1:n-e,this._rendLineNumberStart-=u}return this._lines.splice(r,s)},e.prototype.onLinesChanged=function(e,t){if(0===this.getCount())return!1;for(var n=this.getStartLineNumber(),i=this.getEndLineNumber(),o=!1,r=e;r<=t;r++)r>=n&&r<=i&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),o=!0);return o},e.prototype.onLinesInserted=function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>o)return null;if(n+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);for(var r=[],s=0;s<n;s++)r[s]=this._createLine()\n;var a=e-this._rendLineNumberStart,l=this._lines.slice(0,a),u=this._lines.slice(a,this._lines.length-n),d=this._lines.slice(this._lines.length-n,this._lines.length);return this._lines=l.concat(r).concat(u),d},e.prototype.onTokensChanged=function(e){if(0===this.getCount())return!1;for(var t=this.getStartLineNumber(),n=this.getEndLineNumber(),i=!1,o=0,r=e.length;o<r;o++){var s=e[o];if(!(s.toLineNumber<t||s.fromLineNumber>n))for(var a=Math.max(t,s.fromLineNumber),l=Math.min(n,s.toLineNumber),u=a;u<=l;u++){var d=u-this._rendLineNumberStart;this._lines[d].onTokensChanged(),i=!0}}return i},e}();t.RenderedLinesCollection=o;var r=function(){function e(e){var t=this;this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new o((function(){return t._host.createVisibleLine()}))}return e.prototype._createDomNode=function(){var e=n.createFastDomNode(document.createElement(\"div\"));return e.setClassName(\"view-layer\"),e.setPosition(\"absolute\"),e.domNode.setAttribute(\"role\",\"presentation\"),\ne.domNode.setAttribute(\"aria-hidden\",\"true\"),e},e.prototype.onConfigurationChanged=function(e){return!!e.hasChanged(107)},e.prototype.onFlushed=function(e){return this._linesCollection.flush(),!0},e.prototype.onLinesChanged=function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var o=t[n].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0},e.prototype.onLinesInserted=function(e){var t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;n<i;n++){var o=t[n].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0},e.prototype.onScrollChanged=function(e){return e.scrollTopChanged},e.prototype.onTokensChanged=function(e){return this._linesCollection.onTokensChanged(e.ranges)},e.prototype.onZonesChanged=function(e){return!0},e.prototype.getStartLineNumber=function(){\nreturn this._linesCollection.getStartLineNumber()},e.prototype.getEndLineNumber=function(){return this._linesCollection.getEndLineNumber()},e.prototype.getVisibleLine=function(e){return this._linesCollection.getLine(e)},e.prototype.renderLines=function(e){var t=this._linesCollection._get(),n=new s(this.domNode.domNode,this._host,e),i={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},o=n.render(i,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(o.rendLineNumberStart,o.lines)},e}();t.VisibleLinesCollection=r;var s=function(){function e(e,t,n){this.domNode=e,this.host=t,this.viewportData=n}return e.prototype.render=function(e,t,n,i){var o={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(o.rendLineNumberStart+o.linesLength-1<t||n<o.rendLineNumberStart){o.rendLineNumberStart=t,o.linesLength=n-t+1,o.lines=[];for(var r=t;r<=n;r++)o.lines[r-t]=this.host.createVisibleLine()\n;return this._finishRendering(o,!0,i),o}if(this._renderUntouchedLines(o,Math.max(t-o.rendLineNumberStart,0),Math.min(n-o.rendLineNumberStart,o.linesLength-1),i,t),o.rendLineNumberStart>t)(l=t)<=(s=Math.min(n,o.rendLineNumberStart-1))&&(this._insertLinesBefore(o,l,s,i,t),o.linesLength+=s-l+1);else if(o.rendLineNumberStart<t){(a=Math.min(o.linesLength,t-o.rendLineNumberStart))>0&&(this._removeLinesBefore(o,a),o.linesLength-=a)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1<n)(l=o.rendLineNumberStart+o.linesLength)<=(s=n)&&(this._insertLinesAfter(o,l,s,i,t),o.linesLength+=s-l+1);else if(o.rendLineNumberStart+o.linesLength-1>n){var s,a,l=Math.max(0,n-o.rendLineNumberStart+1);(a=(s=o.linesLength-1)-l+1)>0&&(this._removeLinesAfter(o,a),o.linesLength-=a)}return this._finishRendering(o,!1,i),o},e.prototype._renderUntouchedLines=function(e,t,n,i,o){for(var r=e.rendLineNumberStart,s=e.lines,a=t;a<=n;a++){var l=r+a;s[a].layoutLine(l,i[l-o])}},e.prototype._insertLinesBefore=function(e,t,n,i,o){\nfor(var r=[],s=0,a=t;a<=n;a++)r[s++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)},e.prototype._removeLinesBefore=function(e,t){for(var n=0;n<t;n++){var i=e.lines[n].getDomNode();i&&this.domNode.removeChild(i)}e.lines.splice(0,t)},e.prototype._insertLinesAfter=function(e,t,n,i,o){for(var r=[],s=0,a=t;a<=n;a++)r[s++]=this.host.createVisibleLine();e.lines=e.lines.concat(r)},e.prototype._removeLinesAfter=function(e,t){for(var n=e.linesLength-t,i=0;i<t;i++){var o=e.lines[n+i].getDomNode();o&&this.domNode.removeChild(o)}e.lines.splice(n,t)},e.prototype._finishRenderingNewLines=function(e,t,n,i){var o=this.domNode.lastChild;t||!o?this.domNode.innerHTML=n:o.insertAdjacentHTML(\"afterend\",n);for(var r=this.domNode.lastChild,s=e.linesLength-1;s>=0;s--){var a=e.lines[s];i[s]&&(a.setDomNode(r),r=r.previousSibling)}},e.prototype._finishRenderingInvalidLines=function(e,t,n){var i=document.createElement(\"div\");i.innerHTML=t;for(var o=0;o<e.linesLength;o++){var r=e.lines[o];if(n[o]){\nvar s=i.firstChild,a=r.getDomNode();a.parentNode.replaceChild(s,a),r.setDomNode(s)}}},e.prototype._finishRendering=function(t,n,i){var o=e._sb,r=t.linesLength,s=t.lines,a=t.rendLineNumberStart,l=[];o.reset();for(var u=!1,d=0;d<r;d++){var c=s[d];if(l[d]=!1,!c.getDomNode())c.renderLine(d+a,i[d],this.viewportData,o)&&(l[d]=!0,u=!0)}u&&this._finishRenderingNewLines(t,n,o.build(),l),o.reset();var h=!1,p=[];for(d=0;d<r;d++){c=s[d];if(p[d]=!1,!l[d])c.renderLine(d+a,i[d],this.viewportData,o)&&(p[d]=!0,h=!0)}h&&this._finishRenderingInvalidLines(t,o.build(),p)},e._sb=i.createStringBuilder(1e5),e}()})),define(n[107],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n){this.offset=0|e,this.type=t,this.language=n}return e.prototype.toString=function(){return\"(\"+this.offset+\", \"+this.type+\")\"},e}();t.Token=n;var i=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult=i;var o=function(e,t){this.tokens=e,this.endState=t};t.TokenizationResult2=o\n})),define(n[341],i([0,1,126,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=3;function r(e,t,i,o){return new n.LcsDiff(e,t,i).ComputeDiff(o)}var s=function(){function e(e){for(var t=[],n=[],i=0,o=e.length;i<o;i++)t[i]=c(e[i],1),n[i]=h(e[i],1);this.lines=e,this._startColumns=t,this._endColumns=n}return e.prototype.getElements=function(){for(var e=[],t=0,n=this.lines.length;t<n;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e},e.prototype.getStartLineNumber=function(e){return e+1},e.prototype.getEndLineNumber=function(e){return e+1},e.prototype.createCharSequence=function(e,t,n){for(var i=[],o=[],r=[],s=0,l=t;l<=n;l++)for(var u=this.lines[l],d=e?this._startColumns[l]:1,c=e?this._endColumns[l]:u.length+1,h=d;h<c;h++)i[s]=u.charCodeAt(h-1),o[s]=l+1,r[s]=h,s++;return new a(i,o,r)},e}(),a=function(){function e(e,t,n){this._charCodes=e,this._lineNumbers=t,this._columns=n}return e.prototype.getElements=function(){\nreturn this._charCodes},e.prototype.getStartLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getStartColumn=function(e){return this._columns[e]},e.prototype.getEndLineNumber=function(e){return this._lineNumbers[e]},e.prototype.getEndColumn=function(e){return this._columns[e]+1},e}(),l=function(){function e(e,t,n,i,o,r,s,a){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=n,this.originalEndColumn=i,this.modifiedStartLineNumber=o,this.modifiedStartColumn=r,this.modifiedEndLineNumber=s,this.modifiedEndColumn=a}return e.createFromDiffChange=function(t,n,i){var o,r,s,a,l,u,d,c;return 0===t.originalLength?(o=0,r=0,s=0,a=0):(o=n.getStartLineNumber(t.originalStart),r=n.getStartColumn(t.originalStart),s=n.getEndLineNumber(t.originalStart+t.originalLength-1),a=n.getEndColumn(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(l=0,u=0,d=0,c=0):(l=i.getStartLineNumber(t.modifiedStart),u=i.getStartColumn(t.modifiedStart),\nd=i.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),c=i.getEndColumn(t.modifiedStart+t.modifiedLength-1)),new e(o,r,s,a,l,u,d,c)},e}();var u=function(){function e(e,t,n,i,o){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=n,this.modifiedEndLineNumber=i,this.charChanges=o}return e.createFromDiffResult=function(t,n,i,s,a,u,d){var c,h,p,g,f=void 0;if(0===n.originalLength?(c=i.getStartLineNumber(n.originalStart)-1,h=0):(c=i.getStartLineNumber(n.originalStart),h=i.getEndLineNumber(n.originalStart+n.originalLength-1)),0===n.modifiedLength?(p=s.getStartLineNumber(n.modifiedStart)-1,g=0):(p=s.getStartLineNumber(n.modifiedStart),g=s.getEndLineNumber(n.modifiedStart+n.modifiedLength-1)),u&&n.originalLength>0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&a()){var m=i.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),v=s.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1),_=r(m,v,a,!0).changes;d&&(_=function(e){\nif(e.length<=1)return e;for(var t=[e[0]],n=t[0],i=1,r=e.length;i<r;i++){var s=e[i],a=s.originalStart-(n.originalStart+n.originalLength),l=s.modifiedStart-(n.modifiedStart+n.modifiedLength);Math.min(a,l)<o?(n.originalLength=s.originalStart+s.originalLength-n.originalStart,n.modifiedLength=s.modifiedStart+s.modifiedLength-n.modifiedStart):(t.push(s),n=s)}return t}(_)),f=[];for(var y=0,C=_.length;y<C;y++)f.push(l.createFromDiffChange(_[y],m,v))}return new e(c,h,p,g,f)},e}(),d=function(){function e(e,t,n){this.shouldComputeCharChanges=n.shouldComputeCharChanges,this.shouldPostProcessCharChanges=n.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=n.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=n.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new s(e),this.modified=new s(t),this.continueLineDiff=p(n.maxComputationTime),this.continueCharDiff=p(0===n.maxComputationTime?0:Math.min(n.maxComputationTime,5e3))}return e.prototype.computeDiff=function(){\nif(1===this.original.lines.length&&0===this.original.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};if(1===this.modified.lines.length&&0===this.modified.lines[0].length)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:[{modifiedEndColumn:0,modifiedEndLineNumber:0,modifiedStartColumn:0,modifiedStartLineNumber:0,originalEndColumn:0,originalEndLineNumber:0,originalStartColumn:0,originalStartLineNumber:0}]}]};var e=r(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,n=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){\nfor(var i=[],o=0,s=t.length;o<s;o++)i.push(u.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[o],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:n,changes:i}}for(var a=[],l=0,d=0,p=(o=-1,t.length);o<p;o++){for(var g=o+1<p?t[o+1]:null,f=g?g.originalStart:this.originalLines.length,m=g?g.modifiedStart:this.modifiedLines.length;l<f&&d<m;){var v=this.originalLines[l],_=this.modifiedLines[d];if(v!==_){for(var y=c(v,1),C=c(_,1);y>1&&C>1;){if(v.charCodeAt(y-2)!==_.charCodeAt(C-2))break;y--,C--}(y>1||C>1)&&this._pushTrimWhitespaceCharChange(a,l+1,1,y,d+1,1,C);for(var b=h(v,1),S=h(_,1),w=v.length+1,E=_.length+1;b<w&&S<E;){if(v.charCodeAt(b-1)!==v.charCodeAt(S-1))break;b++,S++}(b<w||S<E)&&this._pushTrimWhitespaceCharChange(a,l+1,b,w,d+1,S,E)}l++,d++}g&&(a.push(u.createFromDiffResult(this.shouldIgnoreTrimWhitespace,g,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),\nl+=g.originalLength,d+=g.modifiedLength)}return{quitEarly:n,changes:a}},e.prototype._pushTrimWhitespaceCharChange=function(e,t,n,i,o,r,s){if(!this._mergeTrimWhitespaceCharChange(e,t,n,i,o,r,s)){var a=void 0;this.shouldComputeCharChanges&&(a=[new l(t,n,t,i,o,r,o,s)]),e.push(new u(t,t,o,o,a))}},e.prototype._mergeTrimWhitespaceCharChange=function(e,t,n,i,o,r,s){var a=e.length;if(0===a)return!1;var u=e[a-1];return 0!==u.originalEndLineNumber&&0!==u.modifiedEndLineNumber&&(u.originalEndLineNumber+1===t&&u.modifiedEndLineNumber+1===o&&(u.originalEndLineNumber=t,u.modifiedEndLineNumber=o,this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new l(t,n,t,i,o,r,o,s)),!0))},e}();function c(e,t){var n=i.firstNonWhitespaceIndex(e);return-1===n?t:n+1}function h(e,t){var n=i.lastNonWhitespaceIndex(e);return-1===n?t:n+2}function p(e){if(0===e)return function(){return!0};var t=Date.now();return function(){return Date.now()-t<e}}t.DiffComputer=d})),define(n[190],i([0,1]),(function(e,t){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i,o,r){this.id=e,this.label=t,this.alias=n,this._precondition=i,this._run=o,this._contextKeyService=r}return e.prototype.isSupported=function(){return this._contextKeyService.contextMatchesRules(this._precondition)},e.prototype.run=function(){if(!this.isSupported())return Promise.resolve(void 0);var e=this._run();return e||Promise.resolve(void 0)},e}();t.InternalEditorAction=n})),define(n[68],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isThemeColor=function(e){return e&&\"string\"==typeof e.id},t.EditorType={ICodeEditor:\"vs.editor.ICodeEditor\",IDiffEditor:\"vs.editor.IDiffEditor\"},t.Handler={ExecuteCommand:\"executeCommand\",ExecuteCommands:\"executeCommands\",Type:\"type\",ReplacePreviousChar:\"replacePreviousChar\",CompositionStart:\"compositionStart\",CompositionEnd:\"compositionEnd\",Paste:\"paste\",Cut:\"cut\",Undo:\"undo\",Redo:\"redo\"}})),define(n[108],i([0,1,68]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.isCodeEditor=function(e){return!(!e||\"function\"!=typeof e.getEditorType)&&e.getEditorType()===n.EditorType.ICodeEditor}})),define(n[48],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={}));var n=function(){function e(e){this.tabSize=Math.max(1,0|e.tabSize),this.indentSize=0|e.tabSize,this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=0|e.defaultEOL,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace)}return e.prototype.equals=function(e){return this.tabSize===e.tabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace},e.prototype.createChangeEvent=function(e){return{\ntabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}},e}();t.TextModelResolvedOptions=n;var i=function(e,t){this.range=e,this.matches=t};t.FindMatch=i;var o=function(e,t,n){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=n};t.ApplyEditsResult=o})),define(n[342],i([0,1,10]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this.beforeVersionId=e,this.beforeCursorState=t,this.afterCursorState=null,this.afterVersionId=-1,this.editOperations=[]}return e.prototype.undo=function(e){for(var t=this.editOperations.length-1;t>=0;t--)this.editOperations[t]={operations:e.applyEdits(this.editOperations[t].operations)}},e.prototype.redo=function(e){for(var t=0;t<this.editOperations.length;t++)this.editOperations[t]={operations:e.applyEdits(this.editOperations[t].operations)}},e}();function o(e){\nreturn\"\\n\"===e.getEOL()?0:1}var r=function(){function e(e,t){this.beforeVersionId=e,this.beforeCursorState=null,this.afterCursorState=null,this.afterVersionId=-1,this.eol=t}return e.prototype.undo=function(e){var t=o(e);e.setEOL(this.eol),this.eol=t},e.prototype.redo=function(e){var t=o(e);e.setEOL(this.eol),this.eol=t},e}(),s=function(){function e(e){this.model=e,this.currentOpenStackElement=null,this.past=[],this.future=[]}return e.prototype.pushStackElement=function(){null!==this.currentOpenStackElement&&(this.past.push(this.currentOpenStackElement),this.currentOpenStackElement=null)},e.prototype.clear=function(){this.currentOpenStackElement=null,this.past=[],this.future=[]},e.prototype.pushEOL=function(e){this.future=[],this.currentOpenStackElement&&this.pushStackElement();var t=o(this.model),n=new r(this.model.getAlternativeVersionId(),t);this.model.setEOL(e),n.afterVersionId=this.model.getVersionId(),this.currentOpenStackElement=n,this.pushStackElement()},e.prototype.pushEditOperation=function(t,n,o){\nthis.future=[];var r=null;this.currentOpenStackElement&&(this.currentOpenStackElement instanceof i?r=this.currentOpenStackElement:this.pushStackElement()),this.currentOpenStackElement||(r=new i(this.model.getAlternativeVersionId(),t),this.currentOpenStackElement=r);var s={operations:this.model.applyEdits(n)};return r.editOperations.push(s),r.afterCursorState=e._computeCursorState(o,s.operations),r.afterVersionId=this.model.getVersionId(),r.afterCursorState},e._computeCursorState=function(e,t){try{return e?e(t):null}catch(e){return n.onUnexpectedError(e),null}},e.prototype.undo=function(){if(this.pushStackElement(),this.past.length>0){var e=this.past.pop();try{e.undo(this.model)}catch(e){return n.onUnexpectedError(e),this.clear(),null}return this.future.push(e),{selections:e.beforeCursorState,recordedVersionId:e.beforeVersionId}}return null},e.prototype.canUndo=function(){return this.past.length>0||null!==this.currentOpenStackElement},e.prototype.redo=function(){if(this.future.length>0){var e=this.future.pop()\n;try{e.redo(this.model)}catch(e){return n.onUnexpectedError(e),this.clear(),null}return this.past.push(e),{selections:e.afterCursorState,recordedVersionId:e.afterVersionId}}return null},e.prototype.canRedo=function(){return this.future.length>0},e}();t.EditStack=s})),define(n[343],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){this.spacesDiff=0,this.looksLikeAlignment=!1};function i(e,t,n,i,o){var r;for(o.spacesDiff=0,o.looksLikeAlignment=!1,r=0;r<t&&r<i;r++){if(e.charCodeAt(r)!==n.charCodeAt(r))break}for(var s=0,a=0,l=r;l<t;l++){32===e.charCodeAt(l)?s++:a++}var u=0,d=0;for(l=r;l<i;l++){32===n.charCodeAt(l)?u++:d++}if(!(s>0&&a>0||u>0&&d>0)){var c=Math.abs(a-d),h=Math.abs(s-u);if(0===c)return o.spacesDiff=h,void(h>0&&0<=u-1&&u-1<e.length&&u<n.length&&32!==n.charCodeAt(u)&&32===e.charCodeAt(u-1)&&44===e.charCodeAt(e.length-1)&&(o.looksLikeAlignment=!0));h%c!=0||(o.spacesDiff=h/c)}}t.guessIndentation=function(e,t,o){\nfor(var r=Math.min(e.getLineCount(),1e4),s=0,a=0,l=\"\",u=0,d=[0,0,0,0,0,0,0,0,0],c=new n,h=1;h<=r;h++){for(var p=e.getLineLength(h),g=e.getLineContent(h),f=p<=65536,m=!1,v=0,_=0,y=0,C=0,b=p;C<b;C++){var S=f?g.charCodeAt(C):e.getLineCharCode(h,C);if(9===S)y++;else{if(32!==S){m=!0,v=C;break}_++}}if(m&&(y>0?s++:_>1&&a++,i(l,u,g,v,c),!c.looksLikeAlignment||o&&t===c.spacesDiff)){var w=c.spacesDiff;w<=8&&d[w]++,l=g,u=v}}var E=o;s!==a&&(E=s<a);var L=t;if(E){var D=E?0:.1*r;[2,4,6,8,3,5,7].forEach((function(e){var t=d[e];t>D&&(D=t,L=e)})),4===L&&d[4]>0&&d[2]>0&&d[2]>=d[4]/2&&(L=2)}return{insertSpaces:E,tabSize:L}}})),define(n[344],i([0,1]),(function(e,t){\"use strict\";function n(e){return(1&e.metadata)>>>0}function i(e,t){e.metadata=254&e.metadata|t<<0}function o(e){return(2&e.metadata)>>>1==1}function r(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function s(e){return(4&e.metadata)>>>2==1}function a(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function l(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function u(e,t){\ne.metadata=207&e.metadata|t<<4}function d(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getNodeColor=n,t.getNodeIsInOverviewRuler=function(e){return(8&e.metadata)>>>3==1};var c=function(){function e(e,t,n){this.metadata=0,this.parent=this,this.left=this,this.right=this,i(this,1),this.start=t,this.end=n,this.delta=0,this.maxEnd=n,this.id=e,this.ownerId=0,this.options=null,a(this,!1),u(this,1),l(this,!1),d(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=null,r(this,!1)}return e.prototype.reset=function(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i},e.prototype.setOptions=function(e){this.options=e;var t=this.options.className;a(this,\"squiggly-error\"===t||\"squiggly-warning\"===t||\"squiggly-info\"===t),u(this,this.options.stickiness),l(this,!(!this.options.overviewRuler||!this.options.overviewRuler.color)),\nd(this,this.options.collapseOnReplaceEdit)},e.prototype.setCachedOffsets=function(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}();t.IntervalNode=c,t.SENTINEL=new c(null,0,0),t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.left=t.SENTINEL,t.SENTINEL.right=t.SENTINEL,i(t.SENTINEL,0);var h=function(){function e(){this.root=t.SENTINEL,this.requestNormalizeDelta=!1}return e.prototype.intervalSearch=function(e,n,i,a,l){return this.root===t.SENTINEL?[]:function(e,n,i,a,l,u){var d=e.root,c=0,h=0,p=0,g=[],f=0;for(;d!==t.SENTINEL;)if(o(d))r(d.left,!1),r(d.right,!1),d===d.parent.right&&(c-=d.parent.delta),d=d.parent;else{if(!o(d.left)){if(c+d.maxEnd<n){r(d,!0);continue}if(d.left!==t.SENTINEL){d=d.left;continue}}if((h=c+d.start)>i)r(d,!0);else{if((p=c+d.end)>=n){d.setCachedOffsets(h,p,u);var m=!0;a&&d.ownerId&&d.ownerId!==a&&(m=!1),l&&s(d)&&(m=!1),m&&(g[f++]=d)}\nr(d,!0),d.right===t.SENTINEL||o(d.right)||(c+=d.delta,d=d.right)}}return r(e.root,!1),g}(this,e,n,i,a,l)},e.prototype.search=function(e,n,i){return this.root===t.SENTINEL?[]:function(e,n,i,a){var l=e.root,u=0,d=0,c=0,h=[],p=0;for(;l!==t.SENTINEL;)if(o(l))r(l.left,!1),r(l.right,!1),l===l.parent.right&&(u-=l.parent.delta),l=l.parent;else if(l.left===t.SENTINEL||o(l.left)){d=u+l.start,c=u+l.end,l.setCachedOffsets(d,c,a);var g=!0;n&&l.ownerId&&l.ownerId!==n&&(g=!1),i&&s(l)&&(g=!1),g&&(h[p++]=l),r(l,!0),l.right===t.SENTINEL||o(l.right)||(u+=l.delta,l=l.right)}else l=l.left;return r(e.root,!1),h}(this,e,n,i)},e.prototype.collectNodesFromOwner=function(e){return function(e,n){var i=e.root,s=[],a=0;for(;i!==t.SENTINEL;)o(i)?(r(i.left,!1),r(i.right,!1),i=i.parent):i.left===t.SENTINEL||o(i.left)?(i.ownerId===n&&(s[a++]=i),r(i,!0),i.right===t.SENTINEL||o(i.right)||(i=i.right)):i=i.left;return r(e.root,!1),s}(this,e)},e.prototype.collectNodesPostOrder=function(){return function(e){var n=e.root,i=[],s=0\n;for(;n!==t.SENTINEL;)o(n)?(r(n.left,!1),r(n.right,!1),n=n.parent):n.left===t.SENTINEL||o(n.left)?n.right===t.SENTINEL||o(n.right)?(i[s++]=n,r(n,!0)):n=n.right:n=n.left;return r(e.root,!1),i}(this)},e.prototype.insert=function(e){f(this,e),this._normalizeDeltaIfNecessary()},e.prototype.delete=function(e){m(this,e),this._normalizeDeltaIfNecessary()},e.prototype.resolveNode=function(e,t){for(var n=e,i=0;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;var o=n.start+i,r=n.end+i;n.setCachedOffsets(o,r,t)},e.prototype.acceptReplace=function(e,n,i,s){for(var a=function(e,n,i){var s=e.root,a=0,l=0,u=0,d=[],c=0;for(;s!==t.SENTINEL;)if(o(s))r(s.left,!1),r(s.right,!1),s===s.parent.right&&(a-=s.parent.delta),s=s.parent;else{if(!o(s.left)){if(a+s.maxEnd<n){r(s,!0);continue}if(s.left!==t.SENTINEL){s=s.left;continue}}(l=a+s.start)>i?r(s,!0):((u=a+s.end)>=n&&(s.setCachedOffsets(l,u,0),d[c++]=s),r(s,!0),s.right===t.SENTINEL||o(s.right)||(a+=s.delta,s=s.right))}return r(e.root,!1),d\n}(this,e,e+n),l=0,u=a.length;l<u;l++){m(this,d=a[l])}this._normalizeDeltaIfNecessary(),function(e,n,i,s){var a=e.root,l=0,u=s-(i-n);for(;a!==t.SENTINEL;)if(o(a))r(a.left,!1),r(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),b(a),a=a.parent;else{if(!o(a.left)){if(l+a.maxEnd<n){r(a,!0);continue}if(a.left!==t.SENTINEL){a=a.left;continue}}l+a.start>i?(a.start+=u,a.end+=u,a.delta+=u,(a.delta<-1073741824||a.delta>1073741824)&&(e.requestNormalizeDelta=!0),r(a,!0)):(r(a,!0),a.right===t.SENTINEL||o(a.right)||(l+=a.delta,a=a.right))}r(e.root,!1)}(this,e,e+n,i),this._normalizeDeltaIfNecessary();for(l=0,u=a.length;l<u;l++){var d;(d=a[l]).start=d.cachedAbsoluteStart,d.end=d.cachedAbsoluteEnd,g(d,e,e+n,i,s),d.maxEnd=d.end,f(this,d)}this._normalizeDeltaIfNecessary()},e.prototype._normalizeDeltaIfNecessary=function(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){var n=e.root,i=0;for(;n!==t.SENTINEL;)n.left===t.SENTINEL||o(n.left)?n.right===t.SENTINEL||o(n.right)?(n.start=i+n.start,n.end=i+n.end,\nn.delta=0,b(n),r(n,!0),r(n.left,!1),r(n.right,!1),n===n.parent.right&&(i-=n.parent.delta),n=n.parent):(i+=n.delta,n=n.right):n=n.left;r(e.root,!1)}(this))},e}();function p(e,t,n,i){return e<n||!(e>n)&&(1!==i&&(2===i||t))}function g(e,t,n,i,o){var r=function(e){return(48&e.metadata)>>>4}(e),s=0===r||2===r,a=1===r||2===r,l=n-t,u=i,d=Math.min(l,u),c=e.start,h=!1,g=e.end,f=!1;t<=c&&g<=n&&function(e){return(64&e.metadata)>>>6==1}(e)&&(e.start=t,h=!0,e.end=t,f=!0);var m=o?1:l>0?2:0;if(!h&&p(c,s,t,m)&&(h=!0),!f&&p(g,a,t,m)&&(f=!0),d>0&&!o){m=l>u?2:0;!h&&p(c,s,t+d,m)&&(h=!0),!f&&p(g,a,t+d,m)&&(f=!0)}m=o?1:0;!h&&p(c,s,n,m)&&(e.start=t+u,h=!0),!f&&p(g,a,n,m)&&(e.end=t+u,f=!0);var v=u-l;h||(e.start=Math.max(0,c+v)),f||(e.end=Math.max(0,g+v)),e.start>e.end&&(e.end=e.start)}function f(e,o){if(e.root===t.SENTINEL)return o.parent=t.SENTINEL,o.left=t.SENTINEL,o.right=t.SENTINEL,i(o,0),e.root=o,e.root;!function(e,n){var o=0,r=e.root,s=n.start,a=n.end;for(;;){if(w(s,a,r.start+o,r.end+o)<0){if(r.left===t.SENTINEL){n.start-=o,\nn.end-=o,n.maxEnd-=o,r.left=n;break}r=r.left}else{if(r.right===t.SENTINEL){n.start-=o+r.delta,n.end-=o+r.delta,n.maxEnd-=o+r.delta,r.right=n;break}o+=r.delta,r=r.right}}n.parent=r,n.left=t.SENTINEL,n.right=t.SENTINEL,i(n,1)}(e,o),S(o.parent);for(var r=o;r!==e.root&&1===n(r.parent);){var s;if(r.parent===r.parent.parent.left)1===n(s=r.parent.parent.right)?(i(r.parent,0),i(s,0),i(r.parent.parent,1),r=r.parent.parent):(r===r.parent.right&&_(e,r=r.parent),i(r.parent,0),i(r.parent.parent,1),y(e,r.parent.parent));else 1===n(s=r.parent.parent.left)?(i(r.parent,0),i(s,0),i(r.parent.parent,1),r=r.parent.parent):(r===r.parent.left&&y(e,r=r.parent),i(r.parent,0),i(r.parent.parent,1),_(e,r.parent.parent))}return i(e.root,0),o}function m(e,o){var r,s;if(o.left===t.SENTINEL?(s=o,(r=o.right).delta+=o.delta,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),r.start+=o.delta,r.end+=o.delta):o.right===t.SENTINEL?(r=o.left,s=o):((r=(s=function(e){for(;e.left!==t.SENTINEL;)e=e.left;return e\n}(o.right)).right).start+=s.delta,r.end+=s.delta,r.delta+=s.delta,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),s.start+=o.delta,s.end+=o.delta,s.delta=o.delta,(s.delta<-1073741824||s.delta>1073741824)&&(e.requestNormalizeDelta=!0)),s===e.root)return e.root=r,i(r,0),o.detach(),v(),b(r),void(e.root.parent=t.SENTINEL);var a,l=1===n(s);if(s===s.parent.left?s.parent.left=r:s.parent.right=r,s===o?r.parent=s.parent:(s.parent===o?r.parent=s:r.parent=s.parent,s.left=o.left,s.right=o.right,s.parent=o.parent,i(s,n(o)),o===e.root?e.root=s:o===o.parent.left?o.parent.left=s:o.parent.right=s,s.left!==t.SENTINEL&&(s.left.parent=s),s.right!==t.SENTINEL&&(s.right.parent=s)),o.detach(),l)return S(r.parent),s!==o&&(S(s),S(s.parent)),void v();for(S(r),S(r.parent),s!==o&&(S(s),S(s.parent));r!==e.root&&0===n(r);)r===r.parent.left?(1===n(a=r.parent.right)&&(i(a,0),i(r.parent,1),_(e,r.parent),a=r.parent.right),0===n(a.left)&&0===n(a.right)?(i(a,1),r=r.parent):(0===n(a.right)&&(i(a.left,0),i(a,1),y(e,a),\na=r.parent.right),i(a,n(r.parent)),i(r.parent,0),i(a.right,0),_(e,r.parent),r=e.root)):(1===n(a=r.parent.left)&&(i(a,0),i(r.parent,1),y(e,r.parent),a=r.parent.left),0===n(a.left)&&0===n(a.right)?(i(a,1),r=r.parent):(0===n(a.left)&&(i(a.right,0),i(a,1),_(e,a),a=r.parent.left),i(a,n(r.parent)),i(r.parent,0),i(a.left,0),y(e,r.parent),r=e.root));i(r,0),v()}function v(){t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.delta=0,t.SENTINEL.start=0,t.SENTINEL.end=0}function _(e,n){var i=n.right;i.delta+=n.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=n.delta,i.end+=n.delta,n.right=i.left,i.left!==t.SENTINEL&&(i.left.parent=n),i.parent=n.parent,n.parent===t.SENTINEL?e.root=i:n===n.parent.left?n.parent.left=i:n.parent.right=i,i.left=n,n.parent=i,b(n),b(i)}function y(e,n){var i=n.left;n.delta-=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start-=i.delta,n.end-=i.delta,n.left=i.right,i.right!==t.SENTINEL&&(i.right.parent=n),i.parent=n.parent,\nn.parent===t.SENTINEL?e.root=i:n===n.parent.right?n.parent.right=i:n.parent.left=i,i.right=n,n.parent=i,b(n),b(i)}function C(e){var n=e.end;if(e.left!==t.SENTINEL){var i=e.left.maxEnd;i>n&&(n=i)}if(e.right!==t.SENTINEL){var o=e.right.maxEnd+e.delta;o>n&&(n=o)}return n}function b(e){e.maxEnd=C(e)}function S(e){for(;e!==t.SENTINEL;){var n=C(e);if(e.maxEnd===n)return;e.maxEnd=n,e=e.parent}}function w(e,t,n,i){return e===n?t-i:e-n}t.IntervalTree=h,t.nodeAcceptEdit=g,t.recomputeMaxEnd=b,t.intervalCompare=w})),define(n[345],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}return e.prototype.next=function(){if(this.right!==t.SENTINEL)return i(this.right);for(var e=this;e.parent!==t.SENTINEL&&e.parent.left!==e;)e=e.parent;return e.parent===t.SENTINEL?t.SENTINEL:e.parent},e.prototype.prev=function(){if(this.left!==t.SENTINEL)return o(this.left)\n;for(var e=this;e.parent!==t.SENTINEL&&e.parent.right!==e;)e=e.parent;return e.parent===t.SENTINEL?t.SENTINEL:e.parent},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}();function i(e){for(;e.left!==t.SENTINEL;)e=e.left;return e}function o(e){for(;e.right!==t.SENTINEL;)e=e.right;return e}function r(e){return e===t.SENTINEL?0:e.size_left+e.piece.length+r(e.right)}function s(e){return e===t.SENTINEL?0:e.lf_left+e.piece.lineFeedCnt+s(e.right)}function a(){t.SENTINEL.parent=t.SENTINEL}function l(e,n){var i=n.right;i.size_left+=n.size_left+(n.piece?n.piece.length:0),i.lf_left+=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),n.right=i.left,i.left!==t.SENTINEL&&(i.left.parent=n),i.parent=n.parent,n.parent===t.SENTINEL?e.root=i:n.parent.left===n?n.parent.left=i:n.parent.right=i,i.left=n,n.parent=i}function u(e,n){var i=n.left;n.left=i.right,i.right!==t.SENTINEL&&(i.right.parent=n),i.parent=n.parent,n.size_left-=i.size_left+(i.piece?i.piece.length:0),\nn.lf_left-=i.lf_left+(i.piece?i.piece.lineFeedCnt:0),n.parent===t.SENTINEL?e.root=i:n===n.parent.right?n.parent.right=i:n.parent.left=i,i.right=n,n.parent=i}function d(e,n,i,o){for(;n!==e.root&&n!==t.SENTINEL;)n.parent.left===n&&(n.parent.size_left+=i,n.parent.lf_left+=o),n=n.parent}function c(e,t){var n=0,i=0;if(t!==e.root){if(0===n){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t===e.root)return;n=r((t=t.parent).left)-t.size_left,i=s(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i}for(;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}t.TreeNode=n,t.SENTINEL=new n(null,0),t.SENTINEL.parent=t.SENTINEL,t.SENTINEL.left=t.SENTINEL,t.SENTINEL.right=t.SENTINEL,t.SENTINEL.color=0,t.leftest=i,t.righttest=o,t.calculateSize=r,t.calculateLF=s,t.resetSentinel=a,t.leftRotate=l,t.rightRotate=u,t.rbDelete=function(e,n){var o,h;if(o=n.left===t.SENTINEL?(h=n).right:n.right===t.SENTINEL?(h=n).left:(h=i(n.right)).right,h===e.root)return e.root=o,o.color=0,n.detach(),a(),\nvoid(e.root.parent=t.SENTINEL);var p=1===h.color;if(h===h.parent.left?h.parent.left=o:h.parent.right=o,h===n?(o.parent=h.parent,c(e,o)):(h.parent===n?o.parent=h:o.parent=h.parent,c(e,o),h.left=n.left,h.right=n.right,h.parent=n.parent,h.color=n.color,n===e.root?e.root=h:n===n.parent.left?n.parent.left=h:n.parent.right=h,h.left!==t.SENTINEL&&(h.left.parent=h),h.right!==t.SENTINEL&&(h.right.parent=h),h.size_left=n.size_left,h.lf_left=n.lf_left,c(e,h)),n.detach(),o.parent.left===o){var g=r(o),f=s(o);if(g!==o.parent.size_left||f!==o.parent.lf_left){var m=g-o.parent.size_left,v=f-o.parent.lf_left;o.parent.size_left=g,o.parent.lf_left=f,d(e,o.parent,m,v)}}if(c(e,o.parent),p)a();else{for(var _;o!==e.root&&0===o.color;)o===o.parent.left?(1===(_=o.parent.right).color&&(_.color=0,o.parent.color=1,l(e,o.parent),_=o.parent.right),0===_.left.color&&0===_.right.color?(_.color=1,o=o.parent):(0===_.right.color&&(_.left.color=0,_.color=1,u(e,_),_=o.parent.right),_.color=o.parent.color,o.parent.color=0,_.right.color=0,\nl(e,o.parent),o=e.root)):(1===(_=o.parent.left).color&&(_.color=0,o.parent.color=1,u(e,o.parent),_=o.parent.left),0===_.left.color&&0===_.right.color?(_.color=1,o=o.parent):(0===_.left.color&&(_.right.color=0,_.color=1,l(e,_),_=o.parent.left),_.color=o.parent.color,o.parent.color=0,_.left.color=0,u(e,o.parent),o=e.root));o.color=0,a()}},t.fixInsert=function(e,t){for(c(e,t);t!==e.root&&1===t.parent.color;){var n;if(t.parent===t.parent.parent.left)1===(n=t.parent.parent.right).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&l(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,u(e,t.parent.parent));else 1===(n=t.parent.parent.left).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&u(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,l(e,t.parent.parent))}e.root.color=0},t.updateTreeMetadata=d,t.recomputeTreeMetadata=c})),define(n[346],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{\nvalue:!0});var n=function(){this.changeType=1};t.ModelRawFlush=n;var i=function(e,t){this.changeType=2,this.lineNumber=e,this.detail=t};t.ModelRawLineChanged=i;var o=function(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t};t.ModelRawLinesDeleted=o;var r=function(e,t,n){this.changeType=4,this.fromLineNumber=e,this.toLineNumber=t,this.detail=n};t.ModelRawLinesInserted=r;var s=function(){this.changeType=5};t.ModelRawEOLChanged=s;var a=function(){function e(e,t,n,i){this.changes=e,this.versionId=t,this.isUndoing=n,this.isRedoing=i}return e.prototype.containsEvent=function(e){for(var t=0,n=this.changes.length;t<n;t++){if(this.changes[t].changeType===e)return!0}return!1},e.merge=function(t,n){return new e([].concat(t.changes).concat(n.changes),n.versionId,t.isUndoing||n.isUndoing,t.isRedoing||n.isRedoing)},e}();t.ModelRawContentChangedEvent=a;var l=function(){function e(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}return e.prototype.merge=function(t){\nvar n=a.merge(this.rawContentChangedEvent,t.rawContentChangedEvent),i=e._mergeChangeEvents(this.contentChangedEvent,t.contentChangedEvent);return new e(n,i)},e._mergeChangeEvents=function(e,t){return{changes:[].concat(e.changes).concat(t.changes),eol:t.eol,versionId:t.versionId,isUndoing:e.isUndoing||t.isUndoing,isRedoing:e.isRedoing||t.isRedoing,isFlush:e.isFlush||t.isFlush}},e}();t.InternalModelContentChangeEvent=l})),define(n[144],i([0,1,5,89,13,3,48]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t,n,i){this.searchString=e,this.isRegex=t,this.matchCase=n,this.wordSeparators=i}return e.prototype.parseSearchRequest=function(){if(\"\"===this.searchString)return null;var e;e=this.isRegex?l(this.searchString):this.searchString.indexOf(\"\\n\")>=0;var t=null;try{t=n.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(e){return null}if(!t)return null;var o=!this.isRegex&&!e\n;return o&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(o=this.matchCase),new u(t,this.wordSeparators?i.getMapForWordSeparators(this.wordSeparators):null,o?this.searchString:null)},e}();function l(e){if(!e||0===e.length)return!1;for(var t=0,n=e.length;t<n;t++){if(92===e.charCodeAt(t)){if(++t>=n)break;var i=e.charCodeAt(t);if(110===i||114===i||87===i||119===i)return!0}}return!1}t.SearchParams=a,t.isMultilineRegexSource=l;var u=function(e,t,n){this.regex=e,this.wordSeparators=t,this.simpleSearch=n};function d(e,t,n){if(!n)return new s.FindMatch(e,null);for(var i=[],o=0,r=t.length;o<r;o++)i[o]=t[o];return new s.FindMatch(e,i)}t.SearchData=u,t.createFindMatch=d;var c=function(){function e(e){for(var t=[],n=0,i=0,o=e.length;i<o;i++)10===e.charCodeAt(i)&&(t[n++]=i);this._lineFeedsOffsets=t}return e.prototype.findLineFeedCountBeforeOffset=function(e){var t=this._lineFeedsOffsets,n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){var o=n+((i-n)/2>>0)\n;t[o]>=e?i=o-1:t[o+1]>=e?(n=o,i=o):n=o+1}return n+1},e}(),h=function(){function e(){}return e.findMatches=function(e,t,n,i,o){var r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,n,new g(r.wordSeparators,r.regex),i,o):this._doFindMatchesLineByLine(e,n,r,i,o):[]},e._getMultilineMatchRange=function(e,t,n,i,o,s){var a,l,u=0;if(a=i?t+o+(u=i.findLineFeedCountBeforeOffset(o)):t+o,i){var d=i.findLineFeedCountBeforeOffset(o+s.length)-u;l=a+s.length+d}else l=a+s.length;var c=e.getPositionAt(a),h=e.getPositionAt(l);return new r.Range(c.lineNumber,c.column,h.lineNumber,h.column)},e._doFindMatchesMultiline=function(e,t,n,i,o){var r,s=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=\"\\r\\n\"===e.getEOL()?new c(a):null,u=[],h=0;for(n.reset(0);r=n.next(a);)if(u[h++]=d(this._getMultilineMatchRange(e,s,a,l,r.index,r[0]),r,i),h>=o)return u;return u},e._doFindMatchesLineByLine=function(e,t,n,i,o){var r=[],s=0;if(t.startLineNumber===t.endLineNumber){\nvar a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return s=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,s,r,i,o),r}var l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);s=this._findMatchesInLine(n,l,t.startLineNumber,t.startColumn-1,s,r,i,o);for(var u=t.startLineNumber+1;u<t.endLineNumber&&s<o;u++)s=this._findMatchesInLine(n,e.getLineContent(u),u,0,s,r,i,o);if(s<o){var d=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);s=this._findMatchesInLine(n,d,t.endLineNumber,0,s,r,i,o)}return r},e._findMatchesInLine=function(e,t,n,i,o,a,l,u){var c=e.wordSeparators;if(!l&&e.simpleSearch){for(var h=e.simpleSearch,f=h.length,m=t.length,v=-f;-1!==(v=t.indexOf(h,v+f));)if((!c||p(c,t,m,v,f))&&(a[o++]=new s.FindMatch(new r.Range(n,v+1+i,n,v+1+f+i),null),o>=u))return o;return o}var _,y=new g(e.wordSeparators,e.regex);y.reset(0);do{if((_=y.next(t))&&(a[o++]=d(new r.Range(n,_.index+1+i,n,_.index+1+_[0].length+i),_,l),o>=u))return o}while(_);return o},\ne.findNextMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,n,r,i):this._doFindNextMatchLineByLine(e,n,r,i)},e._doFindNextMatchMultiline=function(e,t,n,i){var s=new o.Position(t.lineNumber,1),a=e.getOffsetAt(s),l=e.getLineCount(),u=e.getValueInRange(new r.Range(s.lineNumber,s.column,l,e.getLineMaxColumn(l)),1),h=\"\\r\\n\"===e.getEOL()?new c(u):null;n.reset(t.column-1);var p=n.next(u);return p?d(this._getMultilineMatchRange(e,a,u,h,p.index,p[0]),p,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new o.Position(1,1),n,i):null},e._doFindNextMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r),a=this._findFirstMatchInLine(n,s,r,t.column,i);if(a)return a;for(var l=1;l<=o;l++){var u=(r+l-1)%o,d=e.getLineContent(u+1),c=this._findFirstMatchInLine(n,d,u+1,1,i);if(c)return c}return null},e._findFirstMatchInLine=function(e,t,n,i,o){e.reset(i-1)\n;var s=e.next(t);return s?d(new r.Range(n,s.index+1,n,s.index+1+s[0].length),s,o):null},e.findPreviousMatch=function(e,t,n,i){var o=t.parseSearchRequest();if(!o)return null;var r=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,n,r,i):this._doFindPreviousMatchLineByLine(e,n,r,i)},e._doFindPreviousMatchMultiline=function(e,t,n,i){var s=this._doFindMatchesMultiline(e,new r.Range(1,1,t.lineNumber,t.column),n,i,9990);if(s.length>0)return s[s.length-1];var a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new o.Position(a,e.getLineMaxColumn(a)),n,i):null},e._doFindPreviousMatchLineByLine=function(e,t,n,i){var o=e.getLineCount(),r=t.lineNumber,s=e.getLineContent(r).substring(0,t.column-1),a=this._findLastMatchInLine(n,s,r,i);if(a)return a;for(var l=1;l<=o;l++){var u=(o+r-l-1)%o,d=e.getLineContent(u+1),c=this._findLastMatchInLine(n,d,u+1,i);if(c)return c}return null},e._findLastMatchInLine=function(e,t,n,i){\nvar o,s=null;for(e.reset(0);o=e.next(t);)s=d(new r.Range(n,o.index+1,n,o.index+1+o[0].length),o,i);return s},e}();function p(e,t,n,i,o){return function(e,t,n,i,o){if(0===i)return!0;var r=t.charCodeAt(i-1);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(o>0){var s=t.charCodeAt(i);if(0!==e.get(s))return!0}return!1}(e,t,0,i,o)&&function(e,t,n,i,o){if(i+o===n)return!0;var r=t.charCodeAt(i+o);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(o>0){var s=t.charCodeAt(i+o-1);if(0!==e.get(s))return!0}return!1}(e,t,n,i,o)}t.TextModelSearch=h,t.isValidMatch=p;var g=function(){function e(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return e.prototype.reset=function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0},e.prototype.next=function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,o=t[0].length\n;if(i===this._prevMatchStartIndex&&o===this._prevMatchLength){if(0===o){this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=i,this._prevMatchLength=o,!this._wordSeparators||p(this._wordSeparators,e,n,i,o))return t}while(t);return null},e}();t.Searcher=g})),define(n[191],i([0,1,13,3,48,345,144]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e){var t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.AverageBufferSize=65535,t.createUintArray=a;var l=function(e,t,n,i,o){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=o};function u(e,t){void 0===t&&(t=!0);for(var n=[0],i=1,o=0,r=e.length;o<r;o++){var s=e.charCodeAt(o);13===s?o+1<r&&10===e.charCodeAt(o+1)?(n[i++]=o+2,o++):n[i++]=o+1:10===s&&(n[i++]=o+1)}return t?a(n):n}t.LineStarts=l,t.createLineStartsFast=u,t.createLineStarts=function(e,t){e.length=0,e[0]=0;for(var n=1,i=0,o=0,r=0,s=!0,u=0,d=t.length;u<d;u++){\nvar c=t.charCodeAt(u);13===c?u+1<d&&10===t.charCodeAt(u+1)?(r++,e[n++]=u+2,u++):(i++,e[n++]=u+1):10===c?(o++,e[n++]=u+1):s&&9!==c&&(c<32||c>126)&&(s=!1)}var h=new l(a(e),i,o,r,s);return e.length=0,h};var d=function(e,t,n,i,o){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=o};t.Piece=d;var c=function(e,t){this.buffer=e,this.lineStarts=t};t.StringBuffer=c;var h=function(){function e(e){this._limit=e,this._cache=[]}return e.prototype.get=function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null},e.prototype.get2=function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<e&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=e)return n}return null},e.prototype.set=function(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)},e.prototype.valdiate=function(e){for(var t=!1,n=this._cache,i=0;i<n.length;i++){\nvar o=n[i];(null===o.node.parent||o.nodeStartOffset>=e)&&(n[i]=null,t=!0)}if(t){for(var r=[],s=0,a=n;s<a.length;s++){var l=a[s];null!==l&&r.push(l)}this._cache=r}},e}(),p=function(){function e(e,t,n){this.create(e,t,n)}return e.prototype.create=function(e,t,n){this._buffers=[new c(\"\",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=r.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;for(var i=null,o=0,s=e.length;o<s;o++)if(e[o].buffer.length>0){e[o].lineStarts||(e[o].lineStarts=u(e[o].buffer));var a=new d(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),i=this.rbInsertRight(i,a)}this._searchCache=new h(1),this._lastVisitedLine={lineNumber:0,value:\"\"},this.computeBufferMetadata()},e.prototype.normalizeEOL=function(e){var n=this,i=t.AverageBufferSize,o=i-Math.floor(i/3),r=2*o,s=\"\",a=0,l=[]\n;if(this.iterate(this.root,(function(t){var i=n.getNodeContent(t),d=i.length;if(a<=o||a+d<r)return s+=i,a+=d,!0;var h=s.replace(/\\r\\n|\\r|\\n/g,e);return l.push(new c(h,u(h))),s=i,a=d,!0})),a>0){var d=s.replace(/\\r\\n|\\r|\\n/g,e);l.push(new c(d,u(d)))}this.create(l,e,!0)},e.prototype.getEOL=function(){return this._EOL},e.prototype.setEOL=function(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)},e.prototype.getOffsetAt=function(e,t){for(var n=0,i=this.root;i!==r.SENTINEL;)if(i.left!==r.SENTINEL&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return(n+=i.size_left)+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n},e.prototype.getPositionAt=function(e){e=Math.floor(e),e=Math.max(0,e);for(var t=this.root,i=0,o=e;t!==r.SENTINEL;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){var s=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+s.index,0===s.index){\nvar a=o-this.getOffsetAt(i+1,1);return new n.Position(i+1,a+1)}return new n.Position(i+1,s.remainder+1)}if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===r.SENTINEL){a=o-e-this.getOffsetAt(i+1,1);return new n.Position(i+1,a+1)}t=t.right}return new n.Position(1,1)},e.prototype.getValueInRange=function(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return\"\";var n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\\r\\n|\\r|\\n/g,t):o},e.prototype.getValueInRange2=function(e,t){if(e.node===t.node){var n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,o=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(o+e.remainder,o+t.remainder)}\nvar s=e.node,a=this._buffers[s.piece.bufferIndex].buffer,l=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start),u=a.substring(l+e.remainder,l+s.piece.length);for(s=s.next();s!==r.SENTINEL;){var d=this._buffers[s.piece.bufferIndex].buffer,c=this.offsetInBuffer(s.piece.bufferIndex,s.piece.start);if(s===t.node){u+=d.substring(c,c+t.remainder);break}u+=d.substr(c,s.piece.length),s=s.next()}return u},e.prototype.getLinesContent=function(){var e=this,t=[],n=0,i=\"\",o=!1;return this.iterate(this.root,(function(s){if(s===r.SENTINEL)return!0;var a=s.piece,l=a.length;if(0===l)return!0;var u=e._buffers[a.bufferIndex].buffer,d=e._buffers[a.bufferIndex].lineStarts,c=a.start.line,h=a.end.line,p=d[c]+a.start.column;if(o&&(10===u.charCodeAt(p)&&(p++,l--),t[n++]=i,i=\"\",o=!1,0===l))return!0;if(c===h)return e._EOLNormalized||13!==u.charCodeAt(p+l-1)?i+=u.substr(p,l):(o=!0,i+=u.substr(p,l-1)),!0;i+=e._EOLNormalized?u.substring(p,Math.max(p,d[c+1]-e._EOLLength)):u.substring(p,d[c+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),t[n++]=i\n;for(var g=c+1;g<h;g++)i=e._EOLNormalized?u.substring(d[g],d[g+1]-e._EOLLength):u.substring(d[g],d[g+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),t[n++]=i;return e._EOLNormalized||13!==u.charCodeAt(d[h]+a.end.column-1)?i=u.substr(d[h],a.end.column):(o=!0,0===a.end.column?n--:i=u.substr(d[h],a.end.column-1)),!0})),o&&(t[n++]=i,i=\"\"),t[n++]=i,t},e.prototype.getLength=function(){return this._length},e.prototype.getLineCount=function(){return this._lineCnt},e.prototype.getLineContent=function(e){return this._lastVisitedLine.lineNumber===e?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\\r\\n|\\r|\\n)$/,\"\"),this._lastVisitedLine.value)},e.prototype.getLineCharCode=function(e,t){var n=this.nodeAt2(e,t+1);if(n.remainder===n.node.piece.length){var i=n.node.next();if(!i)return 0\n;var o=this._buffers[i.piece.bufferIndex],r=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o.buffer.charCodeAt(r)}o=this._buffers[n.node.piece.bufferIndex];var s=(r=this.offsetInBuffer(n.node.piece.bufferIndex,n.node.piece.start))+n.remainder;return o.buffer.charCodeAt(s)},e.prototype.getLineLength=function(e){if(e===this.getLineCount()){var t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength},e.prototype.findMatchesInNode=function(e,t,n,o,r,a,l,u,d,c,h){var p,g,f,m=this._buffers[e.piece.bufferIndex],v=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),_=this.offsetInBuffer(e.piece.bufferIndex,r),y=this.offsetInBuffer(e.piece.bufferIndex,a),C={line:0,column:0};t._wordSeparators?(g=m.buffer.substring(_,y),f=function(e){return e+_},t.reset(-1)):(g=m.buffer,f=function(e){return e},t.reset(_));do{if(p=t.next(g)){if(f(p.index)>=y)return c;this.positionInBuffer(e,f(p.index)-v,C)\n;var b=this.getLineFeedCnt(e.piece.bufferIndex,r,C),S=C.line===r.line?C.column-r.column+o:C.column+1,w=S+p[0].length;if(h[c++]=s.createFindMatch(new i.Range(n+b,S,n+b,w),p,u),f(p.index)+p[0].length>=y)return c;if(c>=d)return c}}while(p);return c},e.prototype.findMatchesLineByLine=function(e,t,n,i){var o=[],r=0,a=new s.Searcher(t.wordSeparators,t.regex),l=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===l)return[];var u=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===u)return[];var d=this.positionInBuffer(l.node,l.remainder),c=this.positionInBuffer(u.node,u.remainder);if(l.node===u.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,d,c,t,n,i,r,o),o;for(var h=e.startLineNumber,p=l.node;p!==u.node;){var g=this.getLineFeedCnt(p.piece.bufferIndex,d,p.piece.end);if(g>=1){var f=this._buffers[p.piece.bufferIndex].lineStarts,m=this.offsetInBuffer(p.piece.bufferIndex,p.piece.start),v=f[d.line+g],_=h===e.startLineNumber?e.startColumn:1\n;if((r=this.findMatchesInNode(p,a,h,_,d,this.positionInBuffer(p,v-m),t,n,i,r,o))>=i)return o;h+=g}var y=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){var C=this.getLineContent(h).substring(y,e.endColumn-1);return r=this._findMatchesInLine(t,a,C,e.endLineNumber,y,r,o,n,i),o}if((r=this._findMatchesInLine(t,a,this.getLineContent(h).substr(y),h,y,r,o,n,i))>=i)return o;h++,p=(l=this.nodeAt2(h,1)).node,d=this.positionInBuffer(l.node,l.remainder)}if(h===e.endLineNumber){var b=h===e.startLineNumber?e.startColumn-1:0;C=this.getLineContent(h).substring(b,e.endColumn-1);return r=this._findMatchesInLine(t,a,C,e.endLineNumber,b,r,o,n,i),o}var S=h===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(u.node,a,h,S,d,c,t,n,i,r,o),o},e.prototype._findMatchesInLine=function(e,t,n,r,a,l,u,d,c){var h,p=e.wordSeparators;if(!d&&e.simpleSearch){\nfor(var g=e.simpleSearch,f=g.length,m=n.length,v=-f;-1!==(v=n.indexOf(g,v+f));)if((!p||s.isValidMatch(p,n,m,v,f))&&(u[l++]=new o.FindMatch(new i.Range(r,v+1+a,r,v+1+f+a),null),l>=c))return l;return l}t.reset(0);do{if((h=t.next(n))&&(u[l++]=s.createFindMatch(new i.Range(r,h.index+1+a,r,h.index+1+h[0].length+a),h,d),l>=c))return l}while(h);return l},e.prototype.insert=function(e,n,i){if(void 0===i&&(i=!1),this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",this.root!==r.SENTINEL){var o=this.nodeAt(e),s=o.node,a=o.remainder,l=o.nodeStartOffset,u=s.piece,c=u.bufferIndex,h=this.positionInBuffer(s,a);if(0===s.piece.bufferIndex&&u.end.line===this._lastChangeBufferPos.line&&u.end.column===this._lastChangeBufferPos.column&&l+u.length===e&&n.length<t.AverageBufferSize)return this.appendToNode(s,n),void this.computeBufferMetadata();if(l===e)this.insertContentToNodeLeft(n,s),this._searchCache.valdiate(e);else if(l+s.piece.length>e){\nvar p=[],g=new d(u.bufferIndex,h,u.end,this.getLineFeedCnt(u.bufferIndex,h,u.end),this.offsetInBuffer(c,u.end)-this.offsetInBuffer(c,h));if(this.shouldCheckCRLF()&&this.endWithCR(n))if(10===this.nodeCharCodeAt(s,a)){var f={line:g.start.line+1,column:0};g=new d(g.bufferIndex,f,g.end,this.getLineFeedCnt(g.bufferIndex,f,g.end),g.length-1),n+=\"\\n\"}if(this.shouldCheckCRLF()&&this.startWithLF(n))if(13===this.nodeCharCodeAt(s,a-1)){var m=this.positionInBuffer(s,a-1);this.deleteNodeTail(s,m),n=\"\\r\"+n,0===s.piece.length&&p.push(s)}else this.deleteNodeTail(s,h);else this.deleteNodeTail(s,h);var v=this.createNewPieces(n);g.length>0&&this.rbInsertRight(s,g);for(var _=s,y=0;y<v.length;y++)_=this.rbInsertRight(_,v[y]);this.deleteNodes(p)}else this.insertContentToNodeRight(n,s)}else{var C=this.createNewPieces(n);for(s=this.rbInsertLeft(null,C[0]),y=1;y<C.length;y++)s=this.rbInsertRight(s,C[y])}this.computeBufferMetadata()},e.prototype.delete=function(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",\n!(t<=0||this.root===r.SENTINEL)){var n=this.nodeAt(e),i=this.nodeAt(e+t),o=n.node,s=i.node;if(o===s){var a=this.positionInBuffer(o,n.remainder),l=this.positionInBuffer(o,i.remainder);if(n.nodeStartOffset===e){if(t===o.piece.length){var u=o.next();return r.rbDelete(this,o),this.validateCRLFWithPrevNode(u),void this.computeBufferMetadata()}return this.deleteNodeHead(o,l),this._searchCache.valdiate(e),this.validateCRLFWithPrevNode(o),void this.computeBufferMetadata()}return n.nodeStartOffset+o.piece.length===e+t?(this.deleteNodeTail(o,a),this.validateCRLFWithNextNode(o),void this.computeBufferMetadata()):(this.shrinkNode(o,a,l),void this.computeBufferMetadata())}var d=[],c=this.positionInBuffer(o,n.remainder);this.deleteNodeTail(o,c),this._searchCache.valdiate(e),0===o.piece.length&&d.push(o);var h=this.positionInBuffer(s,i.remainder);this.deleteNodeHead(s,h),0===s.piece.length&&d.push(s);for(var p=o.next();p!==r.SENTINEL&&p!==s;p=p.next())d.push(p);var g=0===o.piece.length?o.prev():o;this.deleteNodes(d),\nthis.validateCRLFWithNextNode(g),this.computeBufferMetadata()}},e.prototype.insertContentToNodeLeft=function(e,t){var n=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){var i=t.piece,o={line:i.start.line+1,column:0},s=new d(i.bufferIndex,o,i.end,this.getLineFeedCnt(i.bufferIndex,o,i.end),i.length-1);t.piece=s,e+=\"\\n\",r.updateTreeMetadata(this,t,-1,-1),0===t.piece.length&&n.push(t)}for(var a=this.createNewPieces(e),l=this.rbInsertLeft(t,a[a.length-1]),u=a.length-2;u>=0;u--)l=this.rbInsertLeft(l,a[u]);this.validateCRLFWithPrevNode(l),this.deleteNodes(n)},e.prototype.insertContentToNodeRight=function(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=\"\\n\");for(var n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]),o=i,r=1;r<n.length;r++)o=this.rbInsertRight(o,n[r]);this.validateCRLFWithPrevNode(i)},e.prototype.positionInBuffer=function(e,t,n){\nfor(var i=e.piece,o=e.piece.bufferIndex,r=this._buffers[o].lineStarts,s=r[i.start.line]+i.start.column+t,a=i.start.line,l=i.end.line,u=0,d=0,c=0;a<=l&&(c=r[u=a+(l-a)/2|0],u!==l);)if(d=r[u+1],s<c)l=u-1;else{if(!(s>=d))break;a=u+1}return n?(n.line=u,n.column=s-c,null):{line:u,column:s-c}},e.prototype.getLineFeedCnt=function(e,t,n){if(0===n.column)return n.line-t.line;var i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;var o=i[n.line+1],r=i[n.line]+n.column;if(o>r+1)return n.line-t.line;var s=r-1;return 13===this._buffers[e].buffer.charCodeAt(s)?n.line-t.line+1:n.line-t.line},e.prototype.offsetInBuffer=function(e,t){return this._buffers[e].lineStarts[t.line]+t.column},e.prototype.deleteNodes=function(e){for(var t=0;t<e.length;t++)r.rbDelete(this,e[t])},e.prototype.createNewPieces=function(e){if(e.length>t.AverageBufferSize){for(var n=[];e.length>t.AverageBufferSize;){var i=e.charCodeAt(t.AverageBufferSize-1),o=void 0;13===i||i>=55296&&i<=56319?(o=e.substring(0,t.AverageBufferSize-1),\ne=e.substring(t.AverageBufferSize-1)):(o=e.substring(0,t.AverageBufferSize),e=e.substring(t.AverageBufferSize));var r=u(o);n.push(new d(this._buffers.length,{line:0,column:0},{line:r.length-1,column:o.length-r[r.length-1]},r.length-1,o.length)),this._buffers.push(new c(o,r))}var s=u(e);return n.push(new d(this._buffers.length,{line:0,column:0},{line:s.length-1,column:e.length-s[s.length-1]},s.length-1,e.length)),this._buffers.push(new c(e,s)),n}var a=this._buffers[0].buffer.length,l=u(e,!1),h=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&0!==a&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},h=this._lastChangeBufferPos;for(var p=0;p<l.length;p++)l[p]+=a+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(l.slice(1)),this._buffers[0].buffer+=\"_\"+e,a+=1}else{if(0!==a)for(p=0;p<l.length;p++)l[p]+=a\n;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(l.slice(1)),this._buffers[0].buffer+=e}var g=this._buffers[0].buffer.length,f=this._buffers[0].lineStarts.length-1,m={line:f,column:g-this._buffers[0].lineStarts[f]},v=new d(0,h,m,this.getLineFeedCnt(0,h,m),g-a);return this._lastChangeBufferPos=m,[v]},e.prototype.getLineRawContent=function(e,t){void 0===t&&(t=0);var n=this.root,i=\"\",o=this._searchCache.get2(e);if(o){n=o.node;var s=this.getAccumulatedValue(n,e-o.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(o.nodeStartLineNumber+n.piece.lineFeedCnt!==e){var u=this.getAccumulatedValue(n,e-o.nodeStartLineNumber);return a.substring(l+s,l+u-t)}i=a.substring(l+s,l+n.piece.length)}else for(var d=0,c=e;n!==r.SENTINEL;)if(n.left!==r.SENTINEL&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){s=this.getAccumulatedValue(n,e-n.lf_left-2),u=this.getAccumulatedValue(n,e-n.lf_left-1),\na=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return d+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:d,nodeStartLineNumber:c-(e-1-n.lf_left)}),a.substring(l+s,l+u-t)}if(n.lf_left+n.piece.lineFeedCnt===e-1){s=this.getAccumulatedValue(n,e-n.lf_left-2),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=a.substring(l+s,l+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,d+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==r.SENTINEL;){a=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){u=this.getAccumulatedValue(n,0),l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=a.substring(l,l+u-t)}l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i+=a.substr(l,n.piece.length),n=n.next()}return i},e.prototype.computeBufferMetadata=function(){for(var e=this.root,t=1,n=0;e!==r.SENTINEL;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,\ne=e.right;this._lineCnt=t,this._length=n,this._searchCache.valdiate(this._length)},e.prototype.getIndexOf=function(e,t){var n=e.piece,i=this.positionInBuffer(e,t),o=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){var r=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(r!==o)return{index:r,remainder:0}}return{index:o,remainder:i.column}},e.prototype.getAccumulatedValue=function(e,t){if(t<0)return 0;var n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,o=n.start.line+t+1;return o>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[o]-i[n.start.line]-n.start.column},e.prototype.deleteNodeTail=function(e,t){var n=e.piece,i=n.lineFeedCnt,o=this.offsetInBuffer(n.bufferIndex,n.end),s=t,a=this.offsetInBuffer(n.bufferIndex,s),l=this.getLineFeedCnt(n.bufferIndex,n.start,s),u=l-i,c=a-o,h=n.length+c;e.piece=new d(n.bufferIndex,n.start,s,l,h),r.updateTreeMetadata(this,e,c,u)},e.prototype.deleteNodeHead=function(e,t){\nvar n=e.piece,i=n.lineFeedCnt,o=this.offsetInBuffer(n.bufferIndex,n.start),s=t,a=this.getLineFeedCnt(n.bufferIndex,s,n.end),l=a-i,u=o-this.offsetInBuffer(n.bufferIndex,s),c=n.length+u;e.piece=new d(n.bufferIndex,s,n.end,a,c),r.updateTreeMetadata(this,e,u,l)},e.prototype.shrinkNode=function(e,t,n){var i=e.piece,o=i.start,s=i.end,a=i.length,l=i.lineFeedCnt,u=t,c=this.getLineFeedCnt(i.bufferIndex,i.start,u),h=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,o);e.piece=new d(i.bufferIndex,i.start,u,c,h),r.updateTreeMetadata(this,e,h-a,c-l);var p=new d(i.bufferIndex,n,s,this.getLineFeedCnt(i.bufferIndex,n,s),this.offsetInBuffer(i.bufferIndex,s)-this.offsetInBuffer(i.bufferIndex,n)),g=this.rbInsertRight(e,p);this.validateCRLFWithPrevNode(g)},e.prototype.appendToNode=function(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=\"\\n\");var n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t\n;for(var o=u(t,!1),s=0;s<o.length;s++)o[s]+=i;if(n){var a=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:i-a}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(o.slice(1));var l=this._buffers[0].lineStarts.length-1,c={line:l,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[l]},h=e.piece.length+t.length,p=e.piece.lineFeedCnt,g=this.getLineFeedCnt(0,e.piece.start,c),f=g-p;e.piece=new d(e.piece.bufferIndex,e.piece.start,c,g,h),this._lastChangeBufferPos=c,r.updateTreeMetadata(this,e,t.length,f)},e.prototype.nodeAt=function(e){var t=this.root,n=this._searchCache.get(e);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:e-n.nodeStartOffset};for(var i=0;t!==r.SENTINEL;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;var o={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(o),o}\ne-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null},e.prototype.nodeAt2=function(e,t){for(var n=this.root,i=0;n!==r.SENTINEL;)if(n.left!==r.SENTINEL&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var o=this.getAccumulatedValue(n,e-n.lf_left-2),s=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(o+t-1,s),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){if((o=this.getAccumulatedValue(n,e-n.lf_left-2))+t-1<=n.piece.length)return{node:n,remainder:o+t-1,nodeStartOffset:i};t-=n.piece.length-o;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==r.SENTINEL;){if(n.piece.lineFeedCnt>0){s=this.getAccumulatedValue(n,0);var a=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,s),nodeStartOffset:a}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null},e.prototype.nodeCharCodeAt=function(e,t){\nif(e.piece.lineFeedCnt<1)return-1;var n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)},e.prototype.offsetOfNode=function(e){if(!e)return 0;for(var t=e.size_left;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t},e.prototype.shouldCheckCRLF=function(){return!(this._EOLNormalized&&\"\\n\"===this._EOL)},e.prototype.startWithLF=function(e){if(\"string\"==typeof e)return 10===e.charCodeAt(0);if(e===r.SENTINEL||0===e.piece.lineFeedCnt)return!1;var t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,o=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>o+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(o))},e.prototype.endWithCR=function(e){return\"string\"==typeof e?13===e.charCodeAt(e.length-1):e!==r.SENTINEL&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)},e.prototype.validateCRLFWithPrevNode=function(e){\nif(this.shouldCheckCRLF()&&this.startWithLF(e)){var t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}},e.prototype.validateCRLFWithNextNode=function(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}},e.prototype.fixCRLF=function(e,t){var n,i=[],o=this._buffers[e.piece.bufferIndex].lineStarts;n=0===e.piece.end.column?{line:e.piece.end.line-1,column:o[e.piece.end.line]-o[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};var s=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new d(e.piece.bufferIndex,e.piece.start,n,a,s),r.updateTreeMetadata(this,e,-1,-1),0===e.piece.length&&i.push(e);var l={line:t.piece.start.line+1,column:0},u=t.piece.length-1,c=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new d(t.piece.bufferIndex,l,t.piece.end,c,u),r.updateTreeMetadata(this,t,-1,-1),0===t.piece.length&&i.push(t);var h=this.createNewPieces(\"\\r\\n\");this.rbInsertRight(e,h[0]);for(var p=0;p<i.length;p++)r.rbDelete(this,i[p])},\ne.prototype.adjustCarriageReturnFromNext=function(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var n=t.next();if(this.startWithLF(n)){if(e+=\"\\n\",1===n.piece.length)r.rbDelete(this,n);else{var i=n.piece,o={line:i.start.line+1,column:0},s=i.length-1,a=this.getLineFeedCnt(i.bufferIndex,o,i.end);n.piece=new d(i.bufferIndex,o,i.end,a,s),r.updateTreeMetadata(this,n,-1,-1)}return!0}}return!1},e.prototype.iterate=function(e,t){if(e===r.SENTINEL)return t(r.SENTINEL);var n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n},e.prototype.getNodeContent=function(e){if(e===r.SENTINEL)return\"\";var t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),o=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,o)},e.prototype.rbInsertRight=function(e,t){var n=new r.TreeNode(t,1);if(n.left=r.SENTINEL,n.right=r.SENTINEL,n.parent=r.SENTINEL,n.size_left=0,n.lf_left=0,this.root===r.SENTINEL)this.root=n,n.color=0;else if(e.right===r.SENTINEL)e.right=n,\nn.parent=e;else{var i=r.leftest(e.right);i.left=n,n.parent=i}return r.fixInsert(this,n),n},e.prototype.rbInsertLeft=function(e,t){var n=new r.TreeNode(t,1);if(n.left=r.SENTINEL,n.right=r.SENTINEL,n.parent=r.SENTINEL,n.size_left=0,n.lf_left=0,this.root===r.SENTINEL)this.root=n,n.color=0;else if(e.left===r.SENTINEL)e.left=n,n.parent=e;else{var i=r.righttest(e.left);i.right=n,n.parent=i}return r.fixInsert(this,n),n},e}();t.PieceTreeBase=p})),define(n[347],i([0,1,5,3,48,191]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n,i,o,s){this._BOM=t,this._mightContainNonBasicASCII=!o,this._mightContainRTL=i,this._pieceTree=new r.PieceTreeBase(e,n,s)}return e.prototype.mightContainRTL=function(){return this._mightContainRTL},e.prototype.mightContainNonBasicASCII=function(){return this._mightContainNonBasicASCII},e.prototype.getBOM=function(){return this._BOM},e.prototype.getEOL=function(){return this._pieceTree.getEOL()},\ne.prototype.getOffsetAt=function(e,t){return this._pieceTree.getOffsetAt(e,t)},e.prototype.getPositionAt=function(e){return this._pieceTree.getPositionAt(e)},e.prototype.getRangeAt=function(e,t){var n=e+t,o=this.getPositionAt(e),r=this.getPositionAt(n);return new i.Range(o.lineNumber,o.column,r.lineNumber,r.column)},e.prototype.getValueInRange=function(e,t){if(void 0===t&&(t=0),e.isEmpty())return\"\";var n=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,n)},e.prototype.getValueLengthInRange=function(e,t){if(void 0===t&&(t=0),e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;var n=this.getOffsetAt(e.startLineNumber,e.startColumn);return this.getOffsetAt(e.endLineNumber,e.endColumn)-n},e.prototype.getCharacterCountInRange=function(e,t){if(void 0===t&&(t=0),this._mightContainNonBasicASCII){\nfor(var i=0,o=e.startLineNumber,r=e.endLineNumber,s=o;s<=r;s++)for(var a=this.getLineContent(s),l=s===o?e.startColumn-1:0,u=s===r?e.endColumn-1:a.length,d=l;d<u;d++)n.isHighSurrogate(a.charCodeAt(d))?(i+=1,d+=1):i+=1;return i+=this._getEndOfLine(t).length*(r-o)}return this.getValueLengthInRange(e,t)},e.prototype.getLength=function(){return this._pieceTree.getLength()},e.prototype.getLineCount=function(){return this._pieceTree.getLineCount()},e.prototype.getLinesContent=function(){return this._pieceTree.getLinesContent()},e.prototype.getLineContent=function(e){return this._pieceTree.getLineContent(e)},e.prototype.getLineCharCode=function(e,t){return this._pieceTree.getLineCharCode(e,t)},e.prototype.getLineLength=function(e){return this._pieceTree.getLineLength(e)},e.prototype.getLineFirstNonWhitespaceColumn=function(e){var t=n.firstNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+1},e.prototype.getLineLastNonWhitespaceColumn=function(e){var t=n.lastNonWhitespaceIndex(this.getLineContent(e))\n;return-1===t?0:t+2},e.prototype._getEndOfLine=function(e){switch(e){case 1:return\"\\n\";case 2:return\"\\r\\n\";case 0:return this.getEOL()}throw new Error(\"Unknown EOL preference\")},e.prototype.setEOL=function(e){this._pieceTree.setEOL(e)},e.prototype.applyEdits=function(t,i){for(var r=this._mightContainRTL,s=this._mightContainNonBasicASCII,a=!0,l=[],u=0;u<t.length;u++){var d=t[u];a&&d._isTracked&&(a=!1);var c=d.range;!r&&d.text&&(r=n.containsRTL(d.text)),!s&&d.text&&(s=!n.isBasicASCII(d.text)),l[u]={sortIndex:u,identifier:d.identifier||null,range:c,rangeOffset:this.getOffsetAt(c.startLineNumber,c.startColumn),rangeLength:this.getValueLengthInRange(c),lines:d.text?d.text.split(/\\r\\n|\\r|\\n/):null,forceMoveMarkers:Boolean(d.forceMoveMarkers),isAutoWhitespaceEdit:d.isAutoWhitespaceEdit||!1}}l.sort(e._sortOpsAscending);for(var h=!1,p=(u=0,l.length-1);u<p;u++){var g=l[u].range.getEndPosition(),f=l[u+1].range.getStartPosition();if(f.isBeforeOrEqual(g)){\nif(f.isBefore(g))throw new Error(\"Overlapping ranges are not allowed!\");h=!0}}a&&(l=this._reduceOperations(l));var m=e._getInverseEditRanges(l),v=[];for(u=0;u<l.length;u++){d=l[u];var _=m[u];if(i&&d.isAutoWhitespaceEdit&&d.range.isEmpty())for(var y=_.startLineNumber;y<=_.endLineNumber;y++){var C=\"\";y===_.startLineNumber&&(C=this.getLineContent(d.range.startLineNumber),-1!==n.firstNonWhitespaceIndex(C))||v.push({lineNumber:y,oldContent:C})}}var b=[];for(u=0;u<l.length;u++){d=l[u],_=m[u];b[u]={sortIndex:d.sortIndex,identifier:d.identifier,range:_,text:this.getValueInRange(d.range),forceMoveMarkers:d.forceMoveMarkers}}h||b.sort((function(e,t){return e.sortIndex-t.sortIndex})),this._mightContainRTL=r,this._mightContainNonBasicASCII=s;var S=this._doApplyEdits(l),w=null;if(i&&v.length>0){v.sort((function(e,t){return t.lineNumber-e.lineNumber})),w=[];u=0;for(var E=v.length;u<E;u++){y=v[u].lineNumber;if(!(u>0&&v[u-1].lineNumber===y)){var L=v[u].oldContent,D=this.getLineContent(y)\n;0!==D.length&&D!==L&&-1===n.firstNonWhitespaceIndex(D)&&w.push(y)}}}return new o.ApplyEditsResult(b,S,w)},e.prototype._reduceOperations=function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]},e.prototype._toSingleEditOperation=function(e){for(var t=!1,n=e[0].range,o=e[e.length-1].range,r=new i.Range(n.startLineNumber,n.startColumn,o.endLineNumber,o.endColumn),s=n.startLineNumber,a=n.startColumn,l=[],u=0,d=e.length;u<d;u++){var c=e[u],h=c.range;t=t||c.forceMoveMarkers;for(var p=s;p<h.startLineNumber;p++)p===s?l.push(this.getLineContent(p).substring(a-1)):(l.push(\"\\n\"),l.push(this.getLineContent(p)));if(h.startLineNumber===s?l.push(this.getLineContent(h.startLineNumber).substring(a-1,h.startColumn-1)):(l.push(\"\\n\"),l.push(this.getLineContent(h.startLineNumber).substring(0,h.startColumn-1))),c.lines)for(var g=0,f=c.lines.length;g<f;g++)0!==g&&l.push(\"\\n\"),l.push(c.lines[g]);s=c.range.endLineNumber,a=c.range.endColumn}return{sortIndex:0,identifier:e[0].identifier,range:r,\nrangeOffset:this.getOffsetAt(r.startLineNumber,r.startColumn),rangeLength:this.getValueLengthInRange(r,0),lines:l.join(\"\").split(\"\\n\"),forceMoveMarkers:t,isAutoWhitespaceEdit:!1}},e.prototype._doApplyEdits=function(t){t.sort(e._sortOpsDescending);for(var n=[],o=0;o<t.length;o++){var r=t[o],s=r.range.startLineNumber,a=r.range.startColumn,l=r.range.endLineNumber,u=r.range.endColumn;if(s!==l||a!==u||r.lines&&0!==r.lines.length){var d=l-s,c=r.lines?r.lines.length-1:0,h=Math.min(d,c),p=r.lines?r.lines.join(this.getEOL()):\"\";if(p?(this._pieceTree.delete(r.rangeOffset,r.rangeLength),this._pieceTree.insert(r.rangeOffset,p,!0)):this._pieceTree.delete(r.rangeOffset,r.rangeLength),h<c){for(var g=[],f=h+1;f<=c;f++)g.push(r.lines[f]);g[g.length-1]=this.getLineContent(s+c-1)}var m=new i.Range(s,a,l,u);n.push({range:m,rangeLength:r.rangeLength,text:p,rangeOffset:r.rangeOffset,forceMoveMarkers:r.forceMoveMarkers})}}return n},e.prototype.findMatchesLineByLine=function(e,t,n,i){\nreturn this._pieceTree.findMatchesLineByLine(e,t,n,i)},e._getInverseEditRanges=function(e){for(var t=[],n=0,o=0,r=null,s=0,a=e.length;s<a;s++){var l=e[s],u=void 0,d=void 0;r?r.range.endLineNumber===l.range.startLineNumber?(u=n,d=o+(l.range.startColumn-r.range.endColumn)):(u=n+(l.range.startLineNumber-r.range.endLineNumber),d=l.range.startColumn):(u=l.range.startLineNumber,d=l.range.startColumn);var c=void 0;if(l.lines&&l.lines.length>0){var h=l.lines.length,p=l.lines[0],g=l.lines[h-1];c=1===h?new i.Range(u,d,u,d+p.length):new i.Range(u,d,u+h-1,g.length+1)}else c=new i.Range(u,d,u,d);n=c.endLineNumber,o=c.endColumn,t.push(c),r=l}return t},e._sortOpsAscending=function(e,t){var n=i.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n},e._sortOpsDescending=function(e,t){var n=i.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n},e}();t.PieceTreeTextBuffer=s})),define(n[348],i([0,1,5,191,347]),(function(e,t,n,i,o){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i,o,r,s,a){this._chunks=e,this._bom=t,this._cr=n,this._lf=i,this._crlf=o,this._containsRTL=r,this._isBasicASCII=s,this._normalizeEOL=a}return e.prototype._getEOL=function(e){var t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?1===e?\"\\n\":\"\\r\\n\":n>t/2?\"\\r\\n\":\"\\n\"},e.prototype.create=function(e){var t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&(\"\\r\\n\"===t&&(this._cr>0||this._lf>0)||\"\\n\"===t&&(this._cr>0||this._crlf>0)))for(var r=0,s=n.length;r<s;r++){var a=n[r].buffer.replace(/\\r\\n|\\r|\\n/g,t),l=i.createLineStartsFast(a);n[r]=new i.StringBuffer(a,l)}return new o.PieceTreeTextBuffer(n,this._bom,t,this._containsRTL,this._isBasicASCII,this._normalizeEOL)},e}();t.PieceTreeTextBufferFactory=r;var s=function(){function e(){this.chunks=[],this.BOM=\"\",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.isBasicASCII=!0}\nreturn e.prototype.acceptChunk=function(e){if(0!==e.length){0===this.chunks.length&&n.startsWithUTF8BOM(e)&&(this.BOM=n.UTF8_BOM_CHARACTER,e=e.substr(1));var t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}},e.prototype._acceptChunk1=function(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))},e.prototype._acceptChunk2=function(e){var t=i.createLineStarts(this._tmpLineStarts,e);this.chunks.push(new i.StringBuffer(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=n.containsRTL(e))},e.prototype.finish=function(e){return void 0===e&&(e=!0),this._finish(),new r(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.isBasicASCII,e)\n},e.prototype._finish=function(){if(0===this.chunks.length&&this._acceptChunk1(\"\",!0),this._hasPreviousChar){this._hasPreviousChar=!1;var e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);var t=i.createLineStartsFast(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}},e}();t.PieceTreeTextBufferBuilder=s})),define(n[109],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.USUAL_WORD_SEPARATORS=\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\",t.DEFAULT_WORD_REGEXP=function(e){void 0===e&&(e=\"\");for(var n=\"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\",i=0,o=t.USUAL_WORD_SEPARATORS;i<o.length;i++){var r=o[i];e.indexOf(r)>=0||(n+=\"\\\\\"+r)}return n+=\"\\\\s]+)\",new RegExp(n,\"g\")}(),t.ensureValidWordDefinition=function(e){var n=t.DEFAULT_WORD_REGEXP;if(e&&e instanceof RegExp)if(e.global)n=e;else{var i=\"g\";e.ignoreCase&&(i+=\"i\"),e.multiline&&(i+=\"m\"),e.unicode&&(i+=\"u\"),n=new RegExp(e.source,i)}return n.lastIndex=0,n},t.getWordAtText=function(e,t,n,i){t.lastIndex=0\n;var o=t.exec(n);if(!o)return null;var r=o[0].indexOf(\" \")>=0?function(e,t,n,i){var o,r=e-1-i;for(t.lastIndex=0;o=t.exec(n);){var s=o.index||0;if(s>r)return null;if(t.lastIndex>=r)return{word:o[0],startColumn:i+1+s,endColumn:i+1+t.lastIndex}}return null}(e,t,n,i):function(e,t,n,i){var o,r=e-1-i,s=n.lastIndexOf(\" \",r-1)+1;for(t.lastIndex=s;o=t.exec(n);){var a=o.index||0;if(a<=r&&t.lastIndex>=r)return{word:o[0],startColumn:i+1+a,endColumn:i+1+t.lastIndex}}return null}(e,t,n,i);return t.lastIndex=0,r}})),define(n[349],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._languageIdentifier=e}return e.prototype.getId=function(){return this._languageIdentifier.language},e}();t.FrankensteinMode=n})),define(n[90],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={}))\n;var n=function(){function e(e){if(this.open=e.open,this.close=e.close,this._standardTokenMask=0,Array.isArray(e.notIn))for(var t=0,n=e.notIn.length;t<n;t++){switch(e.notIn[t]){case\"string\":this._standardTokenMask|=2;break;case\"comment\":this._standardTokenMask|=1;break;case\"regex\":this._standardTokenMask|=4}}}return e.prototype.isOK=function(e){return 0==(this._standardTokenMask&e)},e}();t.StandardAutoClosingPairConditional=n})),define(n[350],i([0,1,178]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.score=function e(t,i,o,r){if(Array.isArray(t)){for(var s=0,a=0,l=t;a<l.length;a++){var u=e(l[a],i,o,r);if(10===u)return u;u>s&&(s=u)}return s}if(\"string\"==typeof t)return r?\"*\"===t?5:t===o?10:0:0;if(t){var d=t.language,c=t.pattern,h=t.scheme,p=t.hasAccessToAllModels;if(!r&&!p)return 0;s=0;if(h)if(h===i.scheme)s=10;else{if(\"*\"!==h)return 0;s=5}if(d)if(d===o)s=10;else{if(\"*\"!==d)return 0;s=Math.max(s,5)}if(c){if(c!==i.fsPath&&!n.match(c,i.fsPath))return 0;s=10}return s}return 0}\n})),define(n[351],i([0,1,79]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){for(var i=new Uint8Array(e*t),o=0,r=e*t;o<r;o++)i[o]=n;this._data=i,this.rows=e,this.cols=t}return e.prototype.get=function(e,t){return this._data[e*this.cols+t]},e.prototype.set=function(e,t,n){this._data[e*this.cols+t]=n},e}();t.Uint8Matrix=i;var o=function(){function e(e){for(var t=0,n=0,o=0,r=e.length;o<r;o++){var s=e[o],a=s[0];(d=s[1])>t&&(t=d),a>n&&(n=a),(c=s[2])>n&&(n=c)}var l=new i(++n,++t,0);for(o=0,r=e.length;o<r;o++){var u=e[o],d=(a=u[0],u[1]),c=u[2];l.set(a,d,c)}this._states=l,this._maxCharCode=t}return e.prototype.nextState=function(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)},e}();t.StateMachine=o;var r=null;var s=null;var a=function(){function e(){}return e._createLink=function(e,t,n,i,o){var r=o-1;do{var s=t.charCodeAt(r);if(2!==e.get(s))break;r--}while(r>i);if(i>0){var a=t.charCodeAt(i-1),l=t.charCodeAt(r)\n;(40===a&&41===l||91===a&&93===l||123===a&&125===l)&&r--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:r+2},url:t.substring(i,r+1)}},e.computeLinks=function(t,i){void 0===i&&(null===r&&(r=new o([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),i=r);for(var a=function(){if(null===s){s=new n.CharacterClassifier(0);for(var e=0;e<\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".length;e++)s.set(\" \\t<>'\\\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…\".charCodeAt(e),1);for(e=0;e<\".,;\".length;e++)s.set(\".,;\".charCodeAt(e),2)}return s}(),l=[],u=1,d=t.getLineCount();u<=d;u++){for(var c=t.getLineContent(u),h=c.length,p=0,g=0,f=0,m=1,v=!1,_=!1,y=!1;p<h;){var C=!1,b=c.charCodeAt(p);if(13===m){var S=void 0;switch(b){case 40:v=!0,S=0;break;case 41:S=v?0:1;break;case 91:_=!0,S=0;break;case 93:S=_?0:1;break;case 123:y=!0,S=0;break\n;case 125:S=y?0:1;break;case 39:S=34===f||96===f?0:1;break;case 34:S=39===f||96===f?0:1;break;case 96:S=39===f||34===f?0:1;break;case 42:S=42===f?1:0;break;case 124:S=124===f?1:0;break;default:S=a.get(b)}1===S&&(l.push(e._createLink(a,c,u,g,p)),C=!0)}else if(12===m){S=void 0;91===b?(_=!0,S=0):S=a.get(b),1===S?C=!0:m=13}else 0===(m=i.nextState(m,b))&&(C=!0);C&&(m=1,v=!1,_=!1,y=!1,g=p+1,f=b),p++}13===m&&l.push(e._createLink(a,c,u,g,h))}return l},e}();t.LinkComputer=a,t.computeLinks=function(e){return e&&\"function\"==typeof e.getLineCount&&\"function\"==typeof e.getLineContent?a.computeLinks(e):[]}})),define(n[145],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScopedLineTokens=function(e,t){for(var i=e.getCount(),o=e.findTokenIndexAtOffset(t),r=e.getLanguageId(o),s=o;s+1<i&&e.getLanguageId(s+1)===r;)s++;for(var a=o;a>0&&e.getLanguageId(a-1)===r;)a--;return new n(e,r,a,s+1,e.getStartOffset(a),e.getEndOffset(s))};var n=function(){function e(e,t,n,i,o,r){this._actual=e,\nthis.languageId=t,this._firstTokenIndex=n,this._lastTokenIndex=i,this.firstCharOffset=o,this._lastCharOffset=r}return e.prototype.getLineContent=function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)},e.prototype.getActualLineContentBefore=function(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)},e.prototype.getTokenCount=function(){return this._lastTokenIndex-this._firstTokenIndex},e.prototype.findTokenIndexAtOffset=function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex},e.prototype.getStandardTokenType=function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)},e}();t.ScopedLineTokens=n,t.ignoreBracketsInToken=function(e){return 0!=(7&e)}})),define(n[352],i([0,1,90]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){if(t.autoClosingPairs?this._autoClosingPairs=t.autoClosingPairs.map((function(e){\nreturn new n.StandardAutoClosingPairConditional(e)})):t.brackets?this._autoClosingPairs=t.brackets.map((function(e){return new n.StandardAutoClosingPairConditional({open:e[0],close:e[1]})})):this._autoClosingPairs=[],t.__electricCharacterSupport&&t.__electricCharacterSupport.docComment){var i=t.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new n.StandardAutoClosingPairConditional({open:i.open,close:i.close||\"\"}))}this._autoCloseBefore=\"string\"==typeof t.autoCloseBefore?t.autoCloseBefore:e.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED,this._surroundingPairs=t.surroundingPairs||this._autoClosingPairs}return e.prototype.getAutoClosingPairs=function(){return this._autoClosingPairs},e.prototype.getAutoCloseBeforeSet=function(){return this._autoCloseBefore},e.shouldAutoClosePair=function(e,t,n){if(0===t.getTokenCount())return!0;var i=t.findTokenIndexAtOffset(n-2),o=t.getStandardTokenType(i);return e.isOK(o)},e.prototype.getSurroundingPairs=function(){return this._surroundingPairs},\ne.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED=\";:.,=}])> \\n\\t\",e}();t.CharacterPairSupport=i})),define(n[353],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._indentationRules=e}return e.prototype.shouldIncrease=function(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&this._indentationRules.increaseIndentPattern.test(e))},e.prototype.shouldDecrease=function(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&this._indentationRules.decreaseIndentPattern.test(e))},e.prototype.shouldIndentNextLine=function(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&this._indentationRules.indentNextLinePattern.test(e))},e.prototype.shouldIgnore=function(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&this._indentationRules.unIndentedLinePattern.test(e))},e.prototype.getIndentMetadata=function(e){var t=0\n;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t},e}();t.IndentRulesSupport=n})),define(n[354],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._defaultValueSet=[[\"true\",\"false\"],[\"True\",\"False\"],[\"Private\",\"Public\",\"Friend\",\"ReadOnly\",\"Partial\",\"Protected\",\"WriteOnly\"],[\"public\",\"protected\",\"private\"]]}return e.prototype.navigateValueSet=function(e,t,n,i,o){var r;if(e&&t&&(r=this.doNavigateValueSet(t,o)))return{range:e,value:r};if(n&&i&&(r=this.doNavigateValueSet(i,o)))return{range:n,value:r};return null},e.prototype.doNavigateValueSet=function(e,t){var n=this.numberReplace(e,t);return null!==n?n:this.textReplace(e,t)},e.prototype.numberReplace=function(e,t){var n=Math.pow(10,e.length-(e.lastIndexOf(\".\")+1)),i=Number(e),o=parseFloat(e);return isNaN(i)||isNaN(o)||i!==o?null:0!==i||t?(i=Math.floor(i*n),i+=t?n:-n,String(i/n)):null},\ne.prototype.textReplace=function(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)},e.prototype.valueSetsReplace=function(e,t,n){for(var i=null,o=0,r=e.length;null===i&&o<r;o++)i=this.valueSetReplace(e[o],t,n);return i},e.prototype.valueSetReplace=function(e,t,n){var i=e.indexOf(t);return i>=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null},e.INSTANCE=new e,e}();t.BasicInplaceReplace=n})),define(n[355],i([0,1,10,5,90]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(t){var n=this;(t=t||{}).brackets=t.brackets||[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],this._brackets=[],t.brackets.forEach((function(t){var i=e._createOpenBracketRegExp(t[0]),o=e._createCloseBracketRegExp(t[1]);i&&o&&n._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:o})})),this._regExpRules=t.onEnterRules||[]}return e.prototype.onEnter=function(e,t,n,i){if(e>=3)for(var r=0,s=this._regExpRules.length;r<s;r++){var a=this._regExpRules[r];if([{reg:a.beforeText,text:n},{\nreg:a.afterText,text:i},{reg:a.oneLineAboveText,text:t}].every((function(e){return!e.reg||e.reg.test(e.text)})))return a.action}if(e>=2&&n.length>0&&i.length>0)for(r=0,s=this._brackets.length;r<s;r++){if((l=this._brackets[r]).openRegExp.test(n)&&l.closeRegExp.test(i))return{indentAction:o.IndentAction.IndentOutdent}}if(e>=2&&n.length>0)for(r=0,s=this._brackets.length;r<s;r++){var l;if((l=this._brackets[r]).openRegExp.test(n))return{indentAction:o.IndentAction.Indent}}return null},e._createOpenBracketRegExp=function(t){var n=i.escapeRegExpCharacters(t);return/\\B/.test(n.charAt(0))||(n=\"\\\\b\"+n),n+=\"\\\\s*$\",e._safeRegExp(n)},e._createCloseBracketRegExp=function(t){var n=i.escapeRegExpCharacters(t);return/\\B/.test(n.charAt(n.length-1))||(n+=\"\\\\b\"),n=\"^\\\\s*\"+n,e._safeRegExp(n)},e._safeRegExp=function(e){try{return new RegExp(e)}catch(e){return n.onUnexpectedError(e),null}},e}();t.OnEnterSupport=r})),define(n[146],i([0,1,5,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var o=function(){function e(t,n,i,o,r,s){this.languageIdentifier=t,this.index=n,this.open=i,this.close=o,this.forwardRegex=r,this.reversedRegex=s,this._openSet=e._toSet(this.open),this._closeSet=e._toSet(this.close)}return e.prototype.isOpen=function(e){return this._openSet.has(e)},e.prototype.isClose=function(e){return this._closeSet.has(e)},e._toSet=function(e){for(var t=new Set,n=0,i=e;n<i.length;n++){var o=i[n];t.add(o)}return t},e}();t.RichEditBracket=o;var r=function(e,t){var n=function(e){var t=e.length;e=e.map((function(e){return[e[0].toLowerCase(),e[1].toLowerCase()]}));for(var n=[],i=0;i<t;i++)n[i]=i;var o=function(e,t){var n=e[0],i=e[1],o=t[0],r=t[1];return n===o||n===r||i===o||i===r},r=function(e,i){for(var o=Math.min(e,i),r=Math.max(e,i),s=0;s<t;s++)n[s]===r&&(n[s]=o)};for(i=0;i<t;i++)for(var s=e[i],a=i+1;a<t;a++)o(s,e[a])&&r(n[i],n[a]);for(var l=[],u=0;u<t;u++){var d=[],c=[];for(i=0;i<t;i++)if(n[i]===u){var h=e[i],p=h[0],g=h[1];d.push(p),c.push(g)}d.length>0&&l.push({open:d,close:c})}return l\n}(t);this.brackets=n.map((function(t,i){return new o(e,i,t.open,t.close,function(e,t,n,i){var o=[];o=(o=o.concat(e)).concat(t);for(var r=0,u=o.length;r<u;r++)s(o[r],n,i,o);return(o=l(o)).sort(a),o.reverse(),d(o)}(t.open,t.close,n,i),function(e,t,n,i){var o=[];o=(o=o.concat(e)).concat(t);for(var r=0,u=o.length;r<u;r++)s(o[r],n,i,o);return(o=l(o)).sort(a),o.reverse(),d(o.map(p))}(t.open,t.close,n,i))})),this.forwardRegex=function(e){for(var t=[],n=0,i=e;n<i.length;n++){for(var o=i[n],r=0,s=o.open;r<s.length;r++){var a=s[r];t.push(a)}for(var u=0,c=o.close;u<c.length;u++){var h=c[u];t.push(h)}}return d(t=l(t))}(this.brackets),this.reversedRegex=function(e){for(var t=[],n=0,i=e;n<i.length;n++){for(var o=i[n],r=0,s=o.open;r<s.length;r++){var a=s[r];t.push(a)}for(var u=0,c=o.close;u<c.length;u++){var h=c[u];t.push(h)}}return d((t=l(t)).map(p))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(var i=0,r=this.brackets;i<r.length;i++){\nfor(var u=r[i],c=0,h=u.open;c<h.length;c++){var g=h[c];this.textIsBracket[g]=u,this.textIsOpenBracket[g]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,g.length)}for(var f=0,m=u.close;f<m.length;f++){var v=m[f];this.textIsBracket[v]=u,this.textIsOpenBracket[v]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,v.length)}}};function s(e,t,n,i){for(var o=0,r=t.length;o<r;o++)if(o!==n){for(var s=t[o],a=0,l=s.open;a<l.length;a++){var u=l[a];u.indexOf(e)>=0&&i.push(u)}for(var d=0,c=s.close;d<c.length;d++){var h=c[d];h.indexOf(e)>=0&&i.push(h)}}}function a(e,t){return e.length-t.length}function l(e){if(e.length<=1)return e;for(var t=[],n=new Set,i=0,o=e;i<o.length;i++){var r=o[i];n.has(r)||(t.push(r),n.add(r))}return t}function u(e){var t=/^[\\w ]+$/.test(e);return e=n.escapeRegExpCharacters(e),t?\"\\\\b\"+e+\"\\\\b\":e}function d(e){var t=\"(\"+e.map(u).join(\")|(\")+\")\";return n.createRegExp(t,!0)}t.RichEditBrackets=r;var c,h,p=(c=null,h=null,function(e){return c!==e&&(h=function(e){\nfor(var t=\"\",n=e.length-1;n>=0;n--)t+=e.charAt(n);return t}(c=e)),h}),g=function(){function e(){}return e._findPrevBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=n.length-(r.index||0),a=r[0].length,l=o+s;return new i.Range(t,l-a+1,t,l+1)},e.findPrevBracketInRange=function(e,t,n,i,o){var r=p(n).substring(n.length-o,n.length-i);return this._findPrevBracketInText(e,t,r,i)},e.findNextBracketInText=function(e,t,n,o){var r=n.match(e);if(!r)return null;var s=r.index||0,a=r[0].length;if(0===a)return null;var l=o+s;return new i.Range(t,l+1,t,l+1+a)},e.findNextBracketInRange=function(e,t,n,i,o){var r=n.substring(i,o);return this.findNextBracketInText(e,t,r,i)},e}();t.BracketsUtils=g})),define(n[356],i([0,1,145,146]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._richEditBrackets=e}return e.prototype.getElectricCharacters=function(){var e=[]\n;if(this._richEditBrackets)for(var t=0,n=this._richEditBrackets.brackets;t<n.length;t++)for(var i=0,o=n[t].close;i<o.length;i++){var r=o[i],s=r.charAt(r.length-1);e.push(s)}return e=e.filter((function(e,t,n){return n.indexOf(e)===t}))},e.prototype.onElectricCharacter=function(e,t,o){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;var r=t.findTokenIndexAtOffset(o-1);if(n.ignoreBracketsInToken(t.getStandardTokenType(r)))return null;var s=this._richEditBrackets.reversedRegex,a=t.getLineContent().substring(0,o-1)+e,l=i.BracketsUtils.findPrevBracketInRange(s,1,a,0,a.length);if(!l)return null;var u=a.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[u])return null;var d=t.getActualLineContentBefore(l.startColumn-1);return/^\\s*$/.test(d)?{matchOpenBracket:u}:null},e}();t.BracketElectricCharacterSupport=o})),define(n[41],i([0,1,4,2,5,109,90,145,352,356,353,355,146]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(){function e(t,n,i){this._languageIdentifier=t,this._brackets=null,this._electricCharacter=null;var o=null;n&&(o=n._conf),this._conf=e._mergeConf(o,i),this._onEnterSupport=this._conf.brackets||this._conf.indentationRules||this._conf.onEnterRules?new c.OnEnterSupport(this._conf):null,this.comments=e._handleComments(this._conf),this.characterPair=new l.CharacterPairSupport(this._conf),this.wordDefinition=this._conf.wordPattern||r.DEFAULT_WORD_REGEXP,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules?this.indentRulesSupport=new d.IndentRulesSupport(this._conf.indentationRules):this.indentRulesSupport=null,this.foldingRules=this._conf.folding||{}}return Object.defineProperty(e.prototype,\"brackets\",{get:function(){return!this._brackets&&this._conf.brackets&&(this._brackets=new h.RichEditBrackets(this._languageIdentifier,this._conf.brackets)),this._brackets},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"electricCharacter\",{get:function(){return this._electricCharacter||(this._electricCharacter=new u.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter},enumerable:!0,configurable:!0}),e.prototype.onEnter=function(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null},e._mergeConf=function(e,t){return{comments:e?t.comments||e.comments:t.comments,brackets:e?t.brackets||e.brackets:t.brackets,wordPattern:e?t.wordPattern||e.wordPattern:t.wordPattern,indentationRules:e?t.indentationRules||e.indentationRules:t.indentationRules,onEnterRules:e?t.onEnterRules||e.onEnterRules:t.onEnterRules,autoClosingPairs:e?t.autoClosingPairs||e.autoClosingPairs:t.autoClosingPairs,surroundingPairs:e?t.surroundingPairs||e.surroundingPairs:t.surroundingPairs,autoCloseBefore:e?t.autoCloseBefore||e.autoCloseBefore:t.autoCloseBefore,folding:e?t.folding||e.folding:t.folding,\n__electricCharacterSupport:e?t.__electricCharacterSupport||e.__electricCharacterSupport:t.__electricCharacterSupport}},e._handleComments=function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=t.blockComment,o=i[0],r=i[1];n.blockCommentStartToken=o,n.blockCommentEndToken=r}return n},e}();t.RichEditSupport=p;var g=function(e){this.languageIdentifier=e};t.LanguageConfigurationChangeEvent=g;var f=function(){function e(){this._entries=new Map,this._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event}return e.prototype.register=function(e,t){var n=this,o=this._getRichEditSupport(e.id),r=new p(e,o,t);return this._entries.set(e.id,r),this._onDidChange.fire(new g(e)),i.toDisposable((function(){n._entries.get(e.id)===r&&(n._entries.set(e.id,o),n._onDidChange.fire(new g(e)))}))},e.prototype._getRichEditSupport=function(e){return this._entries.get(e)},e.prototype._getElectricCharacterSupport=function(e){\nvar t=this._getRichEditSupport(e);return t&&t.electricCharacter||null},e.prototype.getElectricCharacters=function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]},e.prototype.onElectricCharacter=function(e,t,n){var i=a.createScopedLineTokens(t,n-1),o=this._getElectricCharacterSupport(i.languageId);return o?o.onElectricCharacter(e,i,n-i.firstCharOffset):null},e.prototype.getComments=function(e){var t=this._getRichEditSupport(e);return t&&t.comments||null},e.prototype._getCharacterPairSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.characterPair||null},e.prototype.getAutoClosingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoClosingPairs():[]},e.prototype.getAutoCloseBeforeSet=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoCloseBeforeSet():l.CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED},e.prototype.getSurroundingPairs=function(e){var t=this._getCharacterPairSupport(e)\n;return t?t.getSurroundingPairs():[]},e.prototype.shouldAutoClosePair=function(e,t,n){var i=a.createScopedLineTokens(t,n-1);return l.CharacterPairSupport.shouldAutoClosePair(e,i,n-i.firstCharOffset)},e.prototype.getWordDefinition=function(e){var t=this._getRichEditSupport(e);return t?r.ensureValidWordDefinition(t.wordDefinition||null):r.ensureValidWordDefinition(null)},e.prototype.getFoldingRules=function(e){var t=this._getRichEditSupport(e);return t?t.foldingRules:{}},e.prototype.getIndentRulesSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null},e.prototype.getPrecedingValidLine=function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var o=void 0,r=-1;for(o=t-1;o>=1;o--){if(e.getLanguageIdAtPosition(o,0)!==i)return r;var s=e.getLineContent(o);if(!n.shouldIgnore(s)&&!/^\\s+$/.test(s)&&\"\"!==s)return o;r=o}}return-1},e.prototype.getInheritIndentForLine=function(e,t,n,i){if(void 0===i&&(i=!0),e<4)return null;var r=this.getIndentRulesSupport(t.getLanguageIdentifier().id)\n;if(!r)return null;if(n<=1)return{indentation:\"\",action:null};var a=this.getPrecedingValidLine(t,n,r);if(a<0)return null;if(a<1)return{indentation:\"\",action:null};var l=t.getLineContent(a);if(r.shouldIncrease(l)||r.shouldIndentNextLine(l))return{indentation:o.getLeadingWhitespace(l),action:s.IndentAction.Indent,line:a};if(r.shouldDecrease(l))return{indentation:o.getLeadingWhitespace(l),action:null,line:a};if(1===a)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};var u=a-1,d=r.getIndentMetadata(t.getLineContent(u));if(!(3&d)&&4&d){for(var c=0,h=u-1;h>0;h--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=h;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:o.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};for(h=a;h>0;h--){var p=t.getLineContent(h);if(r.shouldIncrease(p))return{indentation:o.getLeadingWhitespace(p),action:s.IndentAction.Indent,line:h};if(r.shouldIndentNextLine(p)){c=0\n;for(var g=h-1;g>0;g--)if(!r.shouldIndentNextLine(t.getLineContent(h))){c=g;break}return{indentation:o.getLeadingWhitespace(t.getLineContent(c+1)),action:null,line:c+1}}if(r.shouldDecrease(p))return{indentation:o.getLeadingWhitespace(p),action:null,line:h}}return{indentation:o.getLeadingWhitespace(t.getLineContent(1)),action:null,line:1}},e.prototype.getGoodIndentForLine=function(e,t,n,i,r){if(e<4)return null;var a=this._getRichEditSupport(n);if(!a)return null;var l=this.getIndentRulesSupport(n);if(!l)return null;var u=this.getInheritIndentForLine(e,t,i),d=t.getLineContent(i);if(u){var c=u.line;if(void 0!==c){var h=a.onEnter(e,\"\",t.getLineContent(c),\"\");if(h){var p=o.getLeadingWhitespace(t.getLineContent(c));return h.removeText&&(p=p.substring(0,p.length-h.removeText)),h.indentAction===s.IndentAction.Indent||h.indentAction===s.IndentAction.IndentOutdent?p=r.shiftIndent(p):h.indentAction===s.IndentAction.Outdent&&(p=r.unshiftIndent(p)),l.shouldDecrease(d)&&(p=r.unshiftIndent(p)),\nh.appendText&&(p+=h.appendText),o.getLeadingWhitespace(p)}}return l.shouldDecrease(d)?u.action===s.IndentAction.Indent?u.indentation:r.unshiftIndent(u.indentation):u.action===s.IndentAction.Indent?r.shiftIndent(u.indentation):u.indentation}return null},e.prototype.getIndentForEnter=function(e,t,n,i){if(e<4)return null;t.forceTokenization(n.startLineNumber);var r,l,u=t.getLineTokens(n.startLineNumber),d=a.createScopedLineTokens(u,n.startColumn-1),c=d.getLineContent(),h=!1;(d.firstCharOffset>0&&u.getLanguageId(0)!==d.languageId?(h=!0,r=c.substr(0,n.startColumn-1-d.firstCharOffset)):r=u.getLineContent().substring(0,n.startColumn-1),n.isEmpty())?l=c.substr(n.startColumn-1-d.firstCharOffset):l=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-d.firstCharOffset);var p=this.getIndentRulesSupport(d.languageId);if(!p)return null;var g=r,f=o.getLeadingWhitespace(r),m={getLineTokens:function(e){return t.getLineTokens(e)},getLanguageIdentifier:function(){\nreturn t.getLanguageIdentifier()},getLanguageIdAtPosition:function(e,n){return t.getLanguageIdAtPosition(e,n)},getLineContent:function(e){return e===n.startLineNumber?g:t.getLineContent(e)}},v=o.getLeadingWhitespace(u.getLineContent()),_=this.getInheritIndentForLine(e,m,n.startLineNumber+1);if(!_){var y=h?v:f;return{beforeEnter:y,afterEnter:y}}var C=h?v:_.indentation;return _.action===s.IndentAction.Indent&&(C=i.shiftIndent(C)),p.shouldDecrease(l)&&(C=i.unshiftIndent(C)),{beforeEnter:h?v:f,afterEnter:C}},e.prototype.getIndentActionForType=function(e,t,n,i,o){if(e<4)return null;var r=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),a=this.getIndentRulesSupport(r.languageId);if(!a)return null;var l,u=r.getLineContent(),d=u.substr(0,n.startColumn-1-r.firstCharOffset);n.isEmpty()?l=u.substr(n.startColumn-1-r.firstCharOffset):l=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-r.firstCharOffset);if(!a.shouldDecrease(d+l)&&a.shouldDecrease(d+i+l)){\nvar c=this.getInheritIndentForLine(e,t,n.startLineNumber,!1);if(!c)return null;var h=c.indentation;return c.action!==s.IndentAction.Indent&&(h=o.unshiftIndent(h)),h}return null},e.prototype.getIndentMetadata=function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null},e.prototype.getEnterAction=function(e,t,n){var i=this.getScopedLineTokens(t,n.startLineNumber,n.startColumn),o=this._getRichEditSupport(i.languageId);if(!o)return null;var r,a=i.getLineContent(),l=a.substr(0,n.startColumn-1-i.firstCharOffset);n.isEmpty()?r=a.substr(n.startColumn-1-i.firstCharOffset):r=this.getScopedLineTokens(t,n.endLineNumber,n.endColumn).getLineContent().substr(n.endColumn-1-i.firstCharOffset);var u=\"\";if(n.startLineNumber>1&&0===i.firstCharOffset){var d=this.getScopedLineTokens(t,n.startLineNumber-1);d.languageId===i.languageId&&(u=d.getLineContent())}var c=o.onEnter(e,u,l,r);if(!c)return null\n;var h=c.indentAction,p=c.appendText,g=c.removeText||0;p||(p=h===s.IndentAction.Indent||h===s.IndentAction.IndentOutdent?\"\\t\":\"\");var f=this.getIndentationAtPosition(t,n.startLineNumber,n.startColumn);return g&&(f=f.substring(0,f.length-g)),{indentAction:h,appendText:p,removeText:g,indentation:f}},e.prototype.getIndentationAtPosition=function(e,t,n){var i=e.getLineContent(t),r=o.getLeadingWhitespace(i);return r.length>n-1&&(r=r.substring(0,n-1)),r},e.prototype.getScopedLineTokens=function(e,t,n){e.forceTokenization(t);var i=e.getLineTokens(t),o=void 0===n?e.getLineMaxColumn(t)-1:n-1;return a.createScopedLineTokens(i,o)},e.prototype.getBracketsSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.brackets||null},e}();t.LanguageConfigurationRegistryImpl=f,t.LanguageConfigurationRegistry=new f})),define(n[357],i([0,1,27]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n,i,o){this.token=e,this.index=t,this.fontStyle=n,this.foreground=i,\nthis.background=o};function o(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,o=0,r=e.length;o<r;o++){var s=e[o],a=-1;if(\"string\"==typeof s.fontStyle){a=0;for(var l=s.fontStyle.split(\" \"),u=0,d=l.length;u<d;u++){switch(l[u]){case\"italic\":a|=1;break;case\"bold\":a|=2;break;case\"underline\":a|=4}}}var c=null;\"string\"==typeof s.foreground&&(c=s.foreground);var h=null;\"string\"==typeof s.background&&(h=s.background),t[n++]=new i(s.token||\"\",o,a,c,h)}return t}function r(e,t){e.sort((function(e,t){var n=c(e.token,t.token);return 0!==n?n:e.index-t.index}));for(var n=0,i=\"000000\",o=\"ffffff\";e.length>=1&&\"\"===e[0].token;){var r=e.shift();-1!==r.fontStyle&&(n=r.fontStyle),null!==r.foreground&&(i=r.foreground),null!==r.background&&(o=r.background)}for(var s=new a,u=0,d=t;u<d.length;u++){var g=d[u];s.getId(g)}for(var f=s.getId(i),m=s.getId(o),v=new h(n,f,m),_=new p(v),y=0,C=e.length;y<C;y++){var b=e[y];_.insert(b.token,b.fontStyle,s.getId(b.foreground),s.getId(b.background))}return new l(s,_)}t.ParsedTokenThemeRule=i,\nt.parseTokenTheme=o;var s=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/,a=function(){function e(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}return e.prototype.getId=function(e){if(null===e)return 0;var t=e.match(s);if(!t)throw new Error(\"Illegal value for token color: \"+e);e=t[1].toUpperCase();var i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=n.Color.fromHex(\"#\"+e),i)},e.prototype.getColorMap=function(){return this._id2color.slice(0)},e}();t.ColorMap=a;var l=function(){function e(e,t){this._colorMap=e,this._root=t,this._cache=new Map}return e.createFromRawTokenTheme=function(e,t){return this.createFromParsedTokenTheme(o(e),t)},e.createFromParsedTokenTheme=function(e,t){return r(e,t)},e.prototype.getColorMap=function(){return this._colorMap.getColorMap()},e.prototype._match=function(e){return this._root.match(e)},e.prototype.match=function(e,t){var n=this._cache.get(t);if(void 0===n){var i=this._match(t),o=d(t);n=(i.metadata|o<<8)>>>0,\nthis._cache.set(t,n)}return(n|e<<0)>>>0},e}();t.TokenTheme=l;var u=/\\b(comment|string|regex|regexp)\\b/;function d(e){var t=e.match(u);if(!t)return 0;switch(t[1]){case\"comment\":return 1;case\"string\":return 2;case\"regex\":case\"regexp\":return 4}throw new Error(\"Unexpected match for standard token type!\")}function c(e,t){return e<t?-1:e>t?1:0}t.toStandardTokenType=d,t.strcmp=c;var h=function(){function e(e,t,n){this._fontStyle=e,this._foreground=t,this._background=n,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return e.prototype.clone=function(){return new e(this._fontStyle,this._foreground,this._background)},e.prototype.acceptOverwrite=function(e,t,n){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==n&&(this._background=n),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0},e}();t.ThemeTrieElementRule=h;var p=function(){function e(e){this._mainRule=e,this._children=new Map}return e.prototype.match=function(e){\nif(\"\"===e)return this._mainRule;var t,n,i=e.indexOf(\".\");-1===i?(t=e,n=\"\"):(t=e.substring(0,i),n=e.substring(i+1));var o=this._children.get(t);return void 0!==o?o.match(n):this._mainRule},e.prototype.insert=function(t,n,i,o){if(\"\"!==t){var r,s,a=t.indexOf(\".\");-1===a?(r=t,s=\"\"):(r=t.substring(0,a),s=t.substring(a+1));var l=this._children.get(r);void 0===l&&(l=new e(this._mainRule.clone()),this._children.set(r,l)),l.insert(s,n,i,o)}else this._mainRule.acceptOverwrite(n,i,o)},e}();t.ThemeTrieElement=p,t.generateTokensCSSForColorMap=function(e){for(var t=[],n=1,i=e.length;n<i;n++){var o=e[n];t[n]=\".mtk\"+n+\" { color: \"+o+\"; }\"}return t.push(\".mtki { font-style: italic; }\"),t.push(\".mtkb { font-weight: bold; }\"),t.push(\".mtku { text-decoration: underline; text-underline-position: under; }\"),t.join(\"\\n\")}})),define(n[358],i([0,1,4,2,21,38]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){this._map=new Map,this._promises=new Map,\nthis._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event,this._colorMap=null}return e.prototype.fire=function(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})},e.prototype.register=function(e,t){var n=this;return this._map.set(e,t),this.fire([e]),i.toDisposable((function(){n._map.get(e)===t&&(n._map.delete(e),n.fire([e]))}))},e.prototype.registerPromise=function(e,t){var n=this,o=null,r=!1;return this._promises.set(e,t.then((function(t){n._promises.delete(e),!r&&t&&(o=n.register(e,t))}))),i.toDisposable((function(){r=!0,o&&o.dispose()}))},e.prototype.getPromise=function(e){var t=this,n=this.get(e);if(n)return Promise.resolve(n);var i=this._promises.get(e);return i?i.then((function(n){return t.get(e)})):null},e.prototype.get=function(e){return o.withUndefinedAsNull(this._map.get(e))},e.prototype.setColorMap=function(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:r.keys(this._map),changedColorMap:!0})},e.prototype.getColorMap=function(){return this._colorMap},\ne.prototype.getDefaultBackground=function(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null},e}();t.TokenizationRegistryImpl=s})),\n/*!\nCopyright (c) 2014 Taylor Hakes\nCopyright (c) 2014 Forbes Lindesay\n */\np=function(){\"use strict\";function e(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){return t.reject(n)}))}))}var t=setTimeout;function n(){}function i(e){if(!(this instanceof i))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],u(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn((function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void s(t.promise,e)}r(t.promise,i)}else(1===e._state?r:s)(t.promise,e._value)}))):e._deferreds.push(t)}function r(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof i)return e._state=3,e._value=t,void a(e)\n;if(\"function\"==typeof n)return void u((o=n,r=t,function(){o.apply(r,arguments)}),e)}e._state=1,e._value=t,a(e)}catch(t){s(e,t)}var o,r}function s(e,t){e._state=2,e._value=t,a(e)}function a(e){2===e._state&&0===e._deferreds.length&&i._immediateFn((function(){e._handled||i._unhandledRejectionFn(e._value)}));for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function l(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}function u(e,t){var n=!1;try{e((function(e){n||(n=!0,r(t,e))}),(function(e){n||(n=!0,s(t,e))}))}catch(e){if(n)return;n=!0,s(t,e)}}i.prototype.catch=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var i=new this.constructor(n);return o(this,new l(e,t,i)),i},i.prototype.finally=e,i.all=function(e){return new i((function(t,n){if(!e||void 0===e.length)throw new TypeError(\"Promise.all accepts an array\");var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);var o=i.length\n;function r(e,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var a=s.then;if(\"function\"==typeof a)return void a.call(s,(function(t){r(e,t)}),n)}i[e]=s,0==--o&&t(i)}catch(e){n(e)}}for(var s=0;s<i.length;s++)r(s,i[s])}))},i.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===i?e:new i((function(t){t(e)}))},i.reject=function(e){return new i((function(t,n){n(e)}))},i.race=function(e){return new i((function(t,n){for(var i=0,o=e.length;i<o;i++)e[i].then(t,n)}))},i._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){t(e,0)},i._unhandledRejectionFn=function(e){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var d=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"unable to locate global object\")}();\"Promise\"in d?d.Promise.prototype.finally||(d.Promise.prototype.finally=e):d.Promise=i},\n\"object\"==typeof exports&&\"undefined\"!=typeof module?p():\"function\"==typeof define&&define.amd?define(\"vs/editor/common/standalone/promise-polyfill/polyfill\",p):p(),define(n[147],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Disabled=1]=\"Disabled\",e[e.Enabled=2]=\"Enabled\"}(t.AccessibilitySupport||(t.AccessibilitySupport={})),function(e){e[e.KeepWhitespace=1]=\"KeepWhitespace\",e[e.InsertAsSnippet=4]=\"InsertAsSnippet\"}(t.CompletionItemInsertTextRule||(t.CompletionItemInsertTextRule={})),function(e){e[e.Method=0]=\"Method\",e[e.Function=1]=\"Function\",e[e.Constructor=2]=\"Constructor\",e[e.Field=3]=\"Field\",e[e.Variable=4]=\"Variable\",e[e.Class=5]=\"Class\",e[e.Struct=6]=\"Struct\",e[e.Interface=7]=\"Interface\",e[e.Module=8]=\"Module\",e[e.Property=9]=\"Property\",e[e.Event=10]=\"Event\",e[e.Operator=11]=\"Operator\",e[e.Unit=12]=\"Unit\",e[e.Value=13]=\"Value\",e[e.Constant=14]=\"Constant\",e[e.Enum=15]=\"Enum\",e[e.EnumMember=16]=\"EnumMember\",\ne[e.Keyword=17]=\"Keyword\",e[e.Text=18]=\"Text\",e[e.Color=19]=\"Color\",e[e.File=20]=\"File\",e[e.Reference=21]=\"Reference\",e[e.Customcolor=22]=\"Customcolor\",e[e.Folder=23]=\"Folder\",e[e.TypeParameter=24]=\"TypeParameter\",e[e.Snippet=25]=\"Snippet\"}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e[e.Invoke=0]=\"Invoke\",e[e.TriggerCharacter=1]=\"TriggerCharacter\",e[e.TriggerForIncompleteCompletions=2]=\"TriggerForIncompleteCompletions\"}(t.CompletionTriggerKind||(t.CompletionTriggerKind={})),function(e){e[e.EXACT=0]=\"EXACT\",e[e.ABOVE=1]=\"ABOVE\",e[e.BELOW=2]=\"BELOW\"}(t.ContentWidgetPositionPreference||(t.ContentWidgetPositionPreference={})),function(e){e[e.NotSet=0]=\"NotSet\",e[e.ContentFlush=1]=\"ContentFlush\",e[e.RecoverFromMarkers=2]=\"RecoverFromMarkers\",e[e.Explicit=3]=\"Explicit\",e[e.Paste=4]=\"Paste\",e[e.Undo=5]=\"Undo\",e[e.Redo=6]=\"Redo\"}(t.CursorChangeReason||(t.CursorChangeReason={})),function(e){e[e.LF=1]=\"LF\",\ne[e.CRLF=2]=\"CRLF\"}(t.DefaultEndOfLine||(t.DefaultEndOfLine={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e[e.None=0]=\"None\",e[e.Keep=1]=\"Keep\",e[e.Brackets=2]=\"Brackets\",e[e.Advanced=3]=\"Advanced\",e[e.Full=4]=\"Full\"}(t.EditorAutoIndentStrategy||(t.EditorAutoIndentStrategy={})),function(e){e[e.acceptSuggestionOnCommitCharacter=0]=\"acceptSuggestionOnCommitCharacter\",e[e.acceptSuggestionOnEnter=1]=\"acceptSuggestionOnEnter\",e[e.accessibilitySupport=2]=\"accessibilitySupport\",e[e.accessibilityPageSize=3]=\"accessibilityPageSize\",e[e.ariaLabel=4]=\"ariaLabel\",e[e.autoClosingBrackets=5]=\"autoClosingBrackets\",e[e.autoClosingOvertype=6]=\"autoClosingOvertype\",e[e.autoClosingQuotes=7]=\"autoClosingQuotes\",e[e.autoIndent=8]=\"autoIndent\",e[e.automaticLayout=9]=\"automaticLayout\",e[e.autoSurround=10]=\"autoSurround\",e[e.codeLens=11]=\"codeLens\",e[e.colorDecorators=12]=\"colorDecorators\",e[e.comments=13]=\"comments\",\ne[e.contextmenu=14]=\"contextmenu\",e[e.copyWithSyntaxHighlighting=15]=\"copyWithSyntaxHighlighting\",e[e.cursorBlinking=16]=\"cursorBlinking\",e[e.cursorSmoothCaretAnimation=17]=\"cursorSmoothCaretAnimation\",e[e.cursorStyle=18]=\"cursorStyle\",e[e.cursorSurroundingLines=19]=\"cursorSurroundingLines\",e[e.cursorSurroundingLinesStyle=20]=\"cursorSurroundingLinesStyle\",e[e.cursorWidth=21]=\"cursorWidth\",e[e.disableLayerHinting=22]=\"disableLayerHinting\",e[e.disableMonospaceOptimizations=23]=\"disableMonospaceOptimizations\",e[e.dragAndDrop=24]=\"dragAndDrop\",e[e.emptySelectionClipboard=25]=\"emptySelectionClipboard\",e[e.extraEditorClassName=26]=\"extraEditorClassName\",e[e.fastScrollSensitivity=27]=\"fastScrollSensitivity\",e[e.find=28]=\"find\",e[e.fixedOverflowWidgets=29]=\"fixedOverflowWidgets\",e[e.folding=30]=\"folding\",e[e.foldingStrategy=31]=\"foldingStrategy\",e[e.foldingHighlight=32]=\"foldingHighlight\",e[e.fontFamily=33]=\"fontFamily\",e[e.fontInfo=34]=\"fontInfo\",e[e.fontLigatures=35]=\"fontLigatures\",e[e.fontSize=36]=\"fontSize\",\ne[e.fontWeight=37]=\"fontWeight\",e[e.formatOnPaste=38]=\"formatOnPaste\",e[e.formatOnType=39]=\"formatOnType\",e[e.glyphMargin=40]=\"glyphMargin\",e[e.gotoLocation=41]=\"gotoLocation\",e[e.hideCursorInOverviewRuler=42]=\"hideCursorInOverviewRuler\",e[e.highlightActiveIndentGuide=43]=\"highlightActiveIndentGuide\",e[e.hover=44]=\"hover\",e[e.inDiffEditor=45]=\"inDiffEditor\",e[e.letterSpacing=46]=\"letterSpacing\",e[e.lightbulb=47]=\"lightbulb\",e[e.lineDecorationsWidth=48]=\"lineDecorationsWidth\",e[e.lineHeight=49]=\"lineHeight\",e[e.lineNumbers=50]=\"lineNumbers\",e[e.lineNumbersMinChars=51]=\"lineNumbersMinChars\",e[e.links=52]=\"links\",e[e.matchBrackets=53]=\"matchBrackets\",e[e.minimap=54]=\"minimap\",e[e.mouseStyle=55]=\"mouseStyle\",e[e.mouseWheelScrollSensitivity=56]=\"mouseWheelScrollSensitivity\",e[e.mouseWheelZoom=57]=\"mouseWheelZoom\",e[e.multiCursorMergeOverlapping=58]=\"multiCursorMergeOverlapping\",e[e.multiCursorModifier=59]=\"multiCursorModifier\",e[e.multiCursorPaste=60]=\"multiCursorPaste\",\ne[e.occurrencesHighlight=61]=\"occurrencesHighlight\",e[e.overviewRulerBorder=62]=\"overviewRulerBorder\",e[e.overviewRulerLanes=63]=\"overviewRulerLanes\",e[e.parameterHints=64]=\"parameterHints\",e[e.peekWidgetDefaultFocus=65]=\"peekWidgetDefaultFocus\",e[e.quickSuggestions=66]=\"quickSuggestions\",e[e.quickSuggestionsDelay=67]=\"quickSuggestionsDelay\",e[e.readOnly=68]=\"readOnly\",e[e.renderControlCharacters=69]=\"renderControlCharacters\",e[e.renderIndentGuides=70]=\"renderIndentGuides\",e[e.renderFinalNewline=71]=\"renderFinalNewline\",e[e.renderLineHighlight=72]=\"renderLineHighlight\",e[e.renderValidationDecorations=73]=\"renderValidationDecorations\",e[e.renderWhitespace=74]=\"renderWhitespace\",e[e.revealHorizontalRightPadding=75]=\"revealHorizontalRightPadding\",e[e.roundedSelection=76]=\"roundedSelection\",e[e.rulers=77]=\"rulers\",e[e.scrollbar=78]=\"scrollbar\",e[e.scrollBeyondLastColumn=79]=\"scrollBeyondLastColumn\",e[e.scrollBeyondLastLine=80]=\"scrollBeyondLastLine\",e[e.selectionClipboard=81]=\"selectionClipboard\",\ne[e.selectionHighlight=82]=\"selectionHighlight\",e[e.selectOnLineNumbers=83]=\"selectOnLineNumbers\",e[e.showFoldingControls=84]=\"showFoldingControls\",e[e.showUnused=85]=\"showUnused\",e[e.snippetSuggestions=86]=\"snippetSuggestions\",e[e.smoothScrolling=87]=\"smoothScrolling\",e[e.stopRenderingLineAfter=88]=\"stopRenderingLineAfter\",e[e.suggest=89]=\"suggest\",e[e.suggestFontSize=90]=\"suggestFontSize\",e[e.suggestLineHeight=91]=\"suggestLineHeight\",e[e.suggestOnTriggerCharacters=92]=\"suggestOnTriggerCharacters\",e[e.suggestSelection=93]=\"suggestSelection\",e[e.tabCompletion=94]=\"tabCompletion\",e[e.useTabStops=95]=\"useTabStops\",e[e.wordSeparators=96]=\"wordSeparators\",e[e.wordWrap=97]=\"wordWrap\",e[e.wordWrapBreakAfterCharacters=98]=\"wordWrapBreakAfterCharacters\",e[e.wordWrapBreakBeforeCharacters=99]=\"wordWrapBreakBeforeCharacters\",e[e.wordWrapColumn=100]=\"wordWrapColumn\",e[e.wordWrapMinified=101]=\"wordWrapMinified\",e[e.wrappingIndent=102]=\"wrappingIndent\",e[e.wrappingStrategy=103]=\"wrappingStrategy\",\ne[e.editorClassName=104]=\"editorClassName\",e[e.pixelRatio=105]=\"pixelRatio\",e[e.tabFocusMode=106]=\"tabFocusMode\",e[e.layoutInfo=107]=\"layoutInfo\",e[e.wrappingInfo=108]=\"wrappingInfo\"}(t.EditorOption||(t.EditorOption={})),function(e){e[e.TextDefined=0]=\"TextDefined\",e[e.LF=1]=\"LF\",e[e.CRLF=2]=\"CRLF\"}(t.EndOfLinePreference||(t.EndOfLinePreference={})),function(e){e[e.LF=0]=\"LF\",e[e.CRLF=1]=\"CRLF\"}(t.EndOfLineSequence||(t.EndOfLineSequence={})),function(e){e[e.None=0]=\"None\",e[e.Indent=1]=\"Indent\",e[e.IndentOutdent=2]=\"IndentOutdent\",e[e.Outdent=3]=\"Outdent\"}(t.IndentAction||(t.IndentAction={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.Backspace=1]=\"Backspace\",e[e.Tab=2]=\"Tab\",e[e.Enter=3]=\"Enter\",e[e.Shift=4]=\"Shift\",e[e.Ctrl=5]=\"Ctrl\",e[e.Alt=6]=\"Alt\",e[e.PauseBreak=7]=\"PauseBreak\",e[e.CapsLock=8]=\"CapsLock\",e[e.Escape=9]=\"Escape\",e[e.Space=10]=\"Space\",e[e.PageUp=11]=\"PageUp\",e[e.PageDown=12]=\"PageDown\",e[e.End=13]=\"End\",e[e.Home=14]=\"Home\",e[e.LeftArrow=15]=\"LeftArrow\",e[e.UpArrow=16]=\"UpArrow\",\ne[e.RightArrow=17]=\"RightArrow\",e[e.DownArrow=18]=\"DownArrow\",e[e.Insert=19]=\"Insert\",e[e.Delete=20]=\"Delete\",e[e.KEY_0=21]=\"KEY_0\",e[e.KEY_1=22]=\"KEY_1\",e[e.KEY_2=23]=\"KEY_2\",e[e.KEY_3=24]=\"KEY_3\",e[e.KEY_4=25]=\"KEY_4\",e[e.KEY_5=26]=\"KEY_5\",e[e.KEY_6=27]=\"KEY_6\",e[e.KEY_7=28]=\"KEY_7\",e[e.KEY_8=29]=\"KEY_8\",e[e.KEY_9=30]=\"KEY_9\",e[e.KEY_A=31]=\"KEY_A\",e[e.KEY_B=32]=\"KEY_B\",e[e.KEY_C=33]=\"KEY_C\",e[e.KEY_D=34]=\"KEY_D\",e[e.KEY_E=35]=\"KEY_E\",e[e.KEY_F=36]=\"KEY_F\",e[e.KEY_G=37]=\"KEY_G\",e[e.KEY_H=38]=\"KEY_H\",e[e.KEY_I=39]=\"KEY_I\",e[e.KEY_J=40]=\"KEY_J\",e[e.KEY_K=41]=\"KEY_K\",e[e.KEY_L=42]=\"KEY_L\",e[e.KEY_M=43]=\"KEY_M\",e[e.KEY_N=44]=\"KEY_N\",e[e.KEY_O=45]=\"KEY_O\",e[e.KEY_P=46]=\"KEY_P\",e[e.KEY_Q=47]=\"KEY_Q\",e[e.KEY_R=48]=\"KEY_R\",e[e.KEY_S=49]=\"KEY_S\",e[e.KEY_T=50]=\"KEY_T\",e[e.KEY_U=51]=\"KEY_U\",e[e.KEY_V=52]=\"KEY_V\",e[e.KEY_W=53]=\"KEY_W\",e[e.KEY_X=54]=\"KEY_X\",e[e.KEY_Y=55]=\"KEY_Y\",e[e.KEY_Z=56]=\"KEY_Z\",e[e.Meta=57]=\"Meta\",e[e.ContextMenu=58]=\"ContextMenu\",e[e.F1=59]=\"F1\",e[e.F2=60]=\"F2\",e[e.F3=61]=\"F3\",e[e.F4=62]=\"F4\",\ne[e.F5=63]=\"F5\",e[e.F6=64]=\"F6\",e[e.F7=65]=\"F7\",e[e.F8=66]=\"F8\",e[e.F9=67]=\"F9\",e[e.F10=68]=\"F10\",e[e.F11=69]=\"F11\",e[e.F12=70]=\"F12\",e[e.F13=71]=\"F13\",e[e.F14=72]=\"F14\",e[e.F15=73]=\"F15\",e[e.F16=74]=\"F16\",e[e.F17=75]=\"F17\",e[e.F18=76]=\"F18\",e[e.F19=77]=\"F19\",e[e.NumLock=78]=\"NumLock\",e[e.ScrollLock=79]=\"ScrollLock\",e[e.US_SEMICOLON=80]=\"US_SEMICOLON\",e[e.US_EQUAL=81]=\"US_EQUAL\",e[e.US_COMMA=82]=\"US_COMMA\",e[e.US_MINUS=83]=\"US_MINUS\",e[e.US_DOT=84]=\"US_DOT\",e[e.US_SLASH=85]=\"US_SLASH\",e[e.US_BACKTICK=86]=\"US_BACKTICK\",e[e.US_OPEN_SQUARE_BRACKET=87]=\"US_OPEN_SQUARE_BRACKET\",e[e.US_BACKSLASH=88]=\"US_BACKSLASH\",e[e.US_CLOSE_SQUARE_BRACKET=89]=\"US_CLOSE_SQUARE_BRACKET\",e[e.US_QUOTE=90]=\"US_QUOTE\",e[e.OEM_8=91]=\"OEM_8\",e[e.OEM_102=92]=\"OEM_102\",e[e.NUMPAD_0=93]=\"NUMPAD_0\",e[e.NUMPAD_1=94]=\"NUMPAD_1\",e[e.NUMPAD_2=95]=\"NUMPAD_2\",e[e.NUMPAD_3=96]=\"NUMPAD_3\",e[e.NUMPAD_4=97]=\"NUMPAD_4\",e[e.NUMPAD_5=98]=\"NUMPAD_5\",e[e.NUMPAD_6=99]=\"NUMPAD_6\",e[e.NUMPAD_7=100]=\"NUMPAD_7\",e[e.NUMPAD_8=101]=\"NUMPAD_8\",\ne[e.NUMPAD_9=102]=\"NUMPAD_9\",e[e.NUMPAD_MULTIPLY=103]=\"NUMPAD_MULTIPLY\",e[e.NUMPAD_ADD=104]=\"NUMPAD_ADD\",e[e.NUMPAD_SEPARATOR=105]=\"NUMPAD_SEPARATOR\",e[e.NUMPAD_SUBTRACT=106]=\"NUMPAD_SUBTRACT\",e[e.NUMPAD_DECIMAL=107]=\"NUMPAD_DECIMAL\",e[e.NUMPAD_DIVIDE=108]=\"NUMPAD_DIVIDE\",e[e.KEY_IN_COMPOSITION=109]=\"KEY_IN_COMPOSITION\",e[e.ABNT_C1=110]=\"ABNT_C1\",e[e.ABNT_C2=111]=\"ABNT_C2\",e[e.MAX_VALUE=112]=\"MAX_VALUE\"}(t.KeyCode||(t.KeyCode={})),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e[e.Unnecessary=1]=\"Unnecessary\",e[e.Deprecated=2]=\"Deprecated\"}(t.MarkerTag||(t.MarkerTag={})),function(e){e[e.Inline=1]=\"Inline\",e[e.Gutter=2]=\"Gutter\"}(t.MinimapPosition||(t.MinimapPosition={})),function(e){e[e.UNKNOWN=0]=\"UNKNOWN\",e[e.TEXTAREA=1]=\"TEXTAREA\",e[e.GUTTER_GLYPH_MARGIN=2]=\"GUTTER_GLYPH_MARGIN\",e[e.GUTTER_LINE_NUMBERS=3]=\"GUTTER_LINE_NUMBERS\",e[e.GUTTER_LINE_DECORATIONS=4]=\"GUTTER_LINE_DECORATIONS\",\ne[e.GUTTER_VIEW_ZONE=5]=\"GUTTER_VIEW_ZONE\",e[e.CONTENT_TEXT=6]=\"CONTENT_TEXT\",e[e.CONTENT_EMPTY=7]=\"CONTENT_EMPTY\",e[e.CONTENT_VIEW_ZONE=8]=\"CONTENT_VIEW_ZONE\",e[e.CONTENT_WIDGET=9]=\"CONTENT_WIDGET\",e[e.OVERVIEW_RULER=10]=\"OVERVIEW_RULER\",e[e.SCROLLBAR=11]=\"SCROLLBAR\",e[e.OVERLAY_WIDGET=12]=\"OVERLAY_WIDGET\",e[e.OUTSIDE_EDITOR=13]=\"OUTSIDE_EDITOR\"}(t.MouseTargetType||(t.MouseTargetType={})),function(e){e[e.TOP_RIGHT_CORNER=0]=\"TOP_RIGHT_CORNER\",e[e.BOTTOM_RIGHT_CORNER=1]=\"BOTTOM_RIGHT_CORNER\",e[e.TOP_CENTER=2]=\"TOP_CENTER\"}(t.OverlayWidgetPositionPreference||(t.OverlayWidgetPositionPreference={})),function(e){e[e.Left=1]=\"Left\",e[e.Center=2]=\"Center\",e[e.Right=4]=\"Right\",e[e.Full=7]=\"Full\"}(t.OverviewRulerLane||(t.OverviewRulerLane={})),function(e){e[e.Off=0]=\"Off\",e[e.On=1]=\"On\",e[e.Relative=2]=\"Relative\",e[e.Interval=3]=\"Interval\",e[e.Custom=4]=\"Custom\"}(t.RenderLineNumbersType||(t.RenderLineNumbersType={})),function(e){e[e.None=0]=\"None\",e[e.Text=1]=\"Text\",e[e.Blocks=2]=\"Blocks\"\n}(t.RenderMinimap||(t.RenderMinimap={})),function(e){e[e.Smooth=0]=\"Smooth\",e[e.Immediate=1]=\"Immediate\"}(t.ScrollType||(t.ScrollType={})),function(e){e[e.Auto=1]=\"Auto\",e[e.Hidden=2]=\"Hidden\",e[e.Visible=3]=\"Visible\"}(t.ScrollbarVisibility||(t.ScrollbarVisibility={})),function(e){e[e.LTR=0]=\"LTR\",e[e.RTL=1]=\"RTL\"}(t.SelectionDirection||(t.SelectionDirection={})),function(e){e[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.File=0]=\"File\",e[e.Module=1]=\"Module\",e[e.Namespace=2]=\"Namespace\",e[e.Package=3]=\"Package\",e[e.Class=4]=\"Class\",e[e.Method=5]=\"Method\",e[e.Property=6]=\"Property\",e[e.Field=7]=\"Field\",e[e.Constructor=8]=\"Constructor\",e[e.Enum=9]=\"Enum\",e[e.Interface=10]=\"Interface\",e[e.Function=11]=\"Function\",e[e.Variable=12]=\"Variable\",e[e.Constant=13]=\"Constant\",e[e.String=14]=\"String\",e[e.Number=15]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Array=17]=\"Array\",\ne[e.Object=18]=\"Object\",e[e.Key=19]=\"Key\",e[e.Null=20]=\"Null\",e[e.EnumMember=21]=\"EnumMember\",e[e.Struct=22]=\"Struct\",e[e.Event=23]=\"Event\",e[e.Operator=24]=\"Operator\",e[e.TypeParameter=25]=\"TypeParameter\"}(t.SymbolKind||(t.SymbolKind={})),function(e){e[e.Deprecated=1]=\"Deprecated\"}(t.SymbolTag||(t.SymbolTag={})),function(e){e[e.Hidden=0]=\"Hidden\",e[e.Blink=1]=\"Blink\",e[e.Smooth=2]=\"Smooth\",e[e.Phase=3]=\"Phase\",e[e.Expand=4]=\"Expand\",e[e.Solid=5]=\"Solid\"}(t.TextEditorCursorBlinkingStyle||(t.TextEditorCursorBlinkingStyle={})),function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(t.TextEditorCursorStyle||(t.TextEditorCursorStyle={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]=\"AlwaysGrowsWhenTypingAtEdges\",e[e.NeverGrowsWhenTypingAtEdges=1]=\"NeverGrowsWhenTypingAtEdges\",e[e.GrowsOnlyWhenTypingBefore=2]=\"GrowsOnlyWhenTypingBefore\",\ne[e.GrowsOnlyWhenTypingAfter=3]=\"GrowsOnlyWhenTypingAfter\"}(t.TrackedRangeStickiness||(t.TrackedRangeStickiness={})),function(e){e[e.None=0]=\"None\",e[e.Same=1]=\"Same\",e[e.Indent=2]=\"Indent\",e[e.DeepIndent=3]=\"DeepIndent\"}(t.WrappingIndent||(t.WrappingIndent={}))})),define(n[192],i([0,1,26,4,36,25,13,3,22,107,147,614]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){}return e.chord=function(e,t){return o.KeyChord(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();t.KeyMod=c,t.createMonacoBaseAPI=function(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.CancellationTokenSource,Emitter:i.Emitter,KeyCode:d.KeyCode,KeyMod:c,Position:s.Position,Range:a.Range,Selection:l.Selection,SelectionDirection:d.SelectionDirection,MarkerSeverity:d.MarkerSeverity,MarkerTag:d.MarkerTag,Uri:r.URI,Token:u.Token}}})),define(n[193],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var n=function(){function e(e,t,n){this.from=0|e,this.to=0|t,this.colorId=0|n}return e.compare=function(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId},e}();t.ColorZone=n;var i=function(){function e(e,t,n){this.startLineNumber=e,this.endLineNumber=t,this.color=n,this._colorZone=null}return e.compare=function(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1},e.prototype.setColorZone=function(e){this._colorZone=e},e.prototype.getColorZones=function(){return this._colorZone},e}();t.OverviewRulerZone=i;var o=function(){function e(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}return e.prototype.getId2Color=function(){return this._id2Color},\ne.prototype.setZones=function(e){this._zones=e,this._zones.sort(i.compare)},e.prototype.setLineHeight=function(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.setPixelRatio=function(e){this._pixelRatio=e,this._colorZonesInvalid=!0},e.prototype.getDOMWidth=function(){return this._domWidth},e.prototype.getCanvasWidth=function(){return this._domWidth*this._pixelRatio},e.prototype.setDOMWidth=function(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)},e.prototype.getDOMHeight=function(){return this._domHeight},e.prototype.getCanvasHeight=function(){return this._domHeight*this._pixelRatio},e.prototype.setDOMHeight=function(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.getOuterHeight=function(){return this._outerHeight},e.prototype.setOuterHeight=function(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)},e.prototype.resolveColorZones=function(){\nfor(var e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),o=i/Math.floor(this._outerHeight),r=Math.floor(4*this._pixelRatio/2),s=[],a=0,l=this._zones.length;a<l;a++){var u=this._zones[a];if(!e){var d=u.getColorZones();if(d){s.push(d);continue}}var c=Math.floor(o*this._getVerticalOffsetForLine(u.startLineNumber)),h=Math.floor(o*(this._getVerticalOffsetForLine(u.endLineNumber)+t)),p=Math.floor((c+h)/2),g=h-p;g<r&&(g=r),p-g<0&&(p=g),p+g>i&&(p=i-g);var f=u.color,m=this._color2Id[f];m||(m=++this._lastAssignedId,this._color2Id[f]=m,this._id2Color[m]=f);var v=new n(p-g,p+g,m);u.setColorZone(v),s.push(v)}return this._colorZonesInvalid=!1,s.sort(n.compare),s},e}();t.OverviewZoneManager=o})),define(n[91],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),\nthis.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;var n=this._viewLayout.getCurrentViewport();this.scrollTop=n.top,this.scrollLeft=n.left,this.viewportWidth=n.width,this.viewportHeight=n.height}return e.prototype.getScrolledTopFromAbsoluteTop=function(e){return e-this.scrollTop},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._viewLayout.getVerticalOffsetForLineNumber(e)},e.prototype.getDecorationsInViewport=function(){return this.viewportData.getDecorationsInViewport()},e}();t.RestrictedRenderingContext=n;var i=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._viewLines=i,o}return r(t,e),t.prototype.linesVisibleRangesForRange=function(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)},t.prototype.visibleRangeForPosition=function(e){return this._viewLines.visibleRangeForPosition(e)},t}(n);t.RenderingContext=i;var o=function(e,t,n){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=n}\n;t.LineVisibleRanges=o;var s=function(){function e(e,t){this.left=Math.round(e),this.width=Math.round(t)}return e.prototype.toString=function(){return\"[\"+this.left+\",\"+this.width+\"]\"},e}();t.HorizontalRange=s;var a=function(e,t){this.outsideRenderedLine=e,this.left=Math.round(t)};t.HorizontalPosition=a;var l=function(e,t){this.outsideRenderedLine=e,this.ranges=t};t.VisibleRanges=l})),define(n[359],i([0,1,91]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this.left=e,this.width=t}return e.prototype.toString=function(){return\"[\"+this.left+\",\"+this.width+\"]\"},e.compare=function(e,t){return e.left-t.left},e}(),o=function(){function e(){}return e._createRange=function(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange},e._detachRange=function(e,t){e.selectNodeContents(t)},e._readClientRects=function(e,t,n,i,o){var r=this._createRange();try{return r.setStart(e,t),r.setEnd(n,i),r.getClientRects()\n}catch(e){return null}finally{this._detachRange(r,o)}},e._mergeAdjacentRanges=function(e){if(1===e.length)return[new n.HorizontalRange(e[0].left,e[0].width)];e.sort(i.compare);for(var t=[],o=0,r=e[0].left,s=e[0].width,a=1,l=e.length;a<l;a++){var u=e[a],d=u.left,c=u.width;r+s+.9>=d?s=Math.max(s,d+c-r):(t[o++]=new n.HorizontalRange(r,s),r=d,s=c)}return t[o++]=new n.HorizontalRange(r,s),t},e._createHorizontalRangesFromClientRects=function(e,t){if(!e||0===e.length)return null;for(var n=[],o=0,r=e.length;o<r;o++){var s=e[o];n[o]=new i(Math.max(0,s.left-t),s.width)}return this._mergeAdjacentRanges(n)},e.readHorizontalRanges=function(e,t,n,i,o,r,s){var a=e.children.length-1;if(0>a)return null;(t=Math.min(a,Math.max(0,t)))!==(i=Math.min(a,Math.max(0,i)))&&i>0&&0===o&&(i--,o=1073741824);var l=e.children[t].firstChild,u=e.children[i].firstChild;if(l&&u||(!l&&0===n&&t>0&&(l=e.children[t-1].firstChild,n=1073741824),!u&&0===o&&i>0&&(u=e.children[i-1].firstChild,o=1073741824)),!l||!u)return null\n;n=Math.min(l.textContent.length,Math.max(0,n)),o=Math.min(u.textContent.length,Math.max(0,o));var d=this._readClientRects(l,n,u,o,s);return this._createHorizontalRangesFromClientRects(d,r)},e}();t.RangeUtil=o})),define(n[360],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this.configuration=e,this.theme=t,this.model=n,this.viewLayout=n.viewLayout,this.privateViewEventBus=i}return e.prototype.addEventHandler=function(e){this.privateViewEventBus.addEventHandler(e)},e.prototype.removeEventHandler=function(e){this.privateViewEventBus.removeEventHandler(e)},e}();t.ViewContext=n})),define(n[361],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._eventHandlerGateKeeper=e,this._eventHandlers=[],this._eventQueue=null,this._isConsumingQueue=!1}return e.prototype.addEventHandler=function(e){\nfor(var t=0,n=this._eventHandlers.length;t<n;t++)this._eventHandlers[t]===e&&console.warn(\"Detected duplicate listener in ViewEventDispatcher\",e);this._eventHandlers.push(e)},e.prototype.removeEventHandler=function(e){for(var t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}},e.prototype.emit=function(e){this._eventQueue?this._eventQueue.push(e):this._eventQueue=[e],this._isConsumingQueue||this.consumeQueue()},e.prototype.emitMany=function(e){this._eventQueue?this._eventQueue=this._eventQueue.concat(e):this._eventQueue=e,this._isConsumingQueue||this.consumeQueue()},e.prototype.consumeQueue=function(){var e=this;this._eventHandlerGateKeeper((function(){try{e._isConsumingQueue=!0,e._doConsumeQueue()}finally{e._isConsumingQueue=!1}}))},e.prototype._doConsumeQueue=function(){for(;this._eventQueue;){var e=this._eventQueue;this._eventQueue=null;for(var t=this._eventHandlers.slice(0),n=0,i=t.length;n<i;n++)t[n].handleEvents(e)}},e}();t.ViewEventDispatcher=n\n})),define(n[81],i([0,1,10,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this.type=1,this._source=e}return e.prototype.hasChanged=function(e){return this._source.hasChanged(e)},e}();t.ViewConfigurationChangedEvent=o;var s=function(e){this.type=2,this.contentWidth=e.contentWidth,this.contentHeight=e.contentHeight,this.contentWidthChanged=e.contentWidthChanged,this.contentHeightChanged=e.contentHeightChanged};t.ViewContentSizeChangedEvent=s;var a=function(e,t){this.type=3,this.selections=e,this.modelSelections=t};t.ViewCursorStateChangedEvent=a;var l=function(){this.type=4};t.ViewDecorationsChangedEvent=l;var u=function(){this.type=5};t.ViewFlushedEvent=u;var d=function(e){this.type=6,this.isFocused=e};t.ViewFocusChangedEvent=d;var c=function(){this.type=7};t.ViewLanguageConfigurationEvent=c;var h=function(){this.type=8};t.ViewLineMappingChangedEvent=h;var p=function(e,t){this.type=9,this.fromLineNumber=e,this.toLineNumber=t}\n;t.ViewLinesChangedEvent=p;var g=function(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t};t.ViewLinesDeletedEvent=g;var f=function(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t};t.ViewLinesInsertedEvent=f;var m=function(e,t,n,i,o){this.type=12,this.source=e,this.range=t,this.verticalType=n,this.revealHorizontal=i,this.scrollType=o};t.ViewRevealRangeRequestEvent=m;var v=function(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged};t.ViewScrollChangedEvent=v;var _=function(){this.type=14};t.ViewThemeChangedEvent=_;var y=function(e){this.type=15,this.ranges=e};t.ViewTokensChangedEvent=y;var C=function(){this.type=16};t.ViewTokensColorsChangedEvent=C;var b=function(){this.type=17};t.ViewZonesChangedEvent=b;var S=function(e){\nfunction t(){var t=e.call(this)||this;return t._listeners=[],t._collector=null,t._collectorCnt=0,t}return r(t,e),t.prototype.dispose=function(){this._listeners=[],e.prototype.dispose.call(this)},t.prototype._beginEmit=function(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new w),this._collector},t.prototype._endEmit=function(){if(this._collectorCnt--,0===this._collectorCnt){var e=this._collector.finalize();this._collector=null,e.length>0&&this._emit(e)}},t.prototype._emit=function(e){for(var t=this._listeners.slice(0),n=0,i=t.length;n<i;n++)E(t[n],e)},t.prototype.addEventListener=function(e){var t=this;return this._listeners.push(e),i.toDisposable((function(){for(var n=t._listeners,i=0,o=n.length;i<o;i++)if(n[i]===e){n.splice(i,1);break}}))},t}(i.Disposable);t.ViewEventEmitter=S;var w=function(){function e(){this._eventsLen=0,this._events=[],this._eventsLen=0}return e.prototype.emit=function(e){this._events[this._eventsLen++]=e},e.prototype.finalize=function(){var e=this._events\n;return this._events=[],e},e}();function E(e,t){try{e(t)}catch(e){n.onUnexpectedError(e)}}t.ViewEventsCollector=w})),define(n[148],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n,i){this.startColumn=e,this.endColumn=t,this.className=n,this.type=i}return e._equals=function(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type},e.equalsArr=function(t,n){var i=t.length;if(i!==n.length)return!1;for(var o=0;o<i;o++)if(!e._equals(t[o],n[o]))return!1;return!0},e.filter=function(t,n,i,o){if(0===t.length)return[];for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a],d=u.range;if(!(d.endLineNumber<n||d.startLineNumber>n)&&(!d.isEmpty()||0!==u.type&&3!==u.type)){var c=d.startLineNumber===n?d.startColumn:i,h=d.endLineNumber===n?d.endColumn:o;r[s++]=new e(c,h,u.inlineClassName,u.type)}}return r},e.compare=function(e,t){\nreturn e.startColumn===t.startColumn?e.endColumn===t.endColumn?e.className<t.className?-1:e.className>t.className?1:0:e.endColumn-t.endColumn:e.startColumn-t.startColumn},e}();t.LineDecoration=i;var o=function(e,t,n){this.startOffset=e,this.endOffset=t,this.className=n};t.DecorationSegment=o;var r=function(){function e(){this.stopOffsets=[],this.classNames=[],this.count=0}return e.prototype.consumeLowerThan=function(e,t,n){for(;this.count>0&&this.stopOffsets[0]<e;){for(var i=0;i+1<this.count&&this.stopOffsets[i]===this.stopOffsets[i+1];)i++;n.push(new o(t,this.stopOffsets[i],this.classNames.join(\" \"))),t=this.stopOffsets[i]+1,this.stopOffsets.splice(0,i+1),this.classNames.splice(0,i+1),this.count-=i+1}return this.count>0&&t<e&&(n.push(new o(t,e-1,this.classNames.join(\" \"))),t=e),t},e.prototype.insert=function(e,t){if(0===this.count||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t);else for(var n=0;n<this.count;n++)if(this.stopOffsets[n]>=e){this.stopOffsets.splice(n,0,e),\nthis.classNames.splice(n,0,t);break}this.count++},e}(),s=function(){function e(){}return e.normalize=function(e,t){if(0===t.length)return[];for(var i=[],o=new r,s=0,a=0,l=t.length;a<l;a++){var u=t[a],d=u.startColumn,c=u.endColumn,h=u.className;if(d>1){var p=e.charCodeAt(d-2);n.isHighSurrogate(p)&&d--}if(c>1){p=e.charCodeAt(c-2);n.isHighSurrogate(p)&&c--}var g=d-1,f=c-2;s=o.consumeLowerThan(g,s,i),0===o.count&&(s=g),o.insert(f,h)}return o.consumeLowerThan(1073741824,s,i),i},e}();t.LineDecorationsNormalizer=s})),define(n[362],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}return e.prototype.insert=function(e){this._hasPending=!0,this._inserts.push(e)},e.prototype.change=function(e){this._hasPending=!0,this._changes.push(e)},e.prototype.remove=function(e){this._hasPending=!0,this._removes.push(e)},e.prototype.mustCommit=function(){return this._hasPending},\ne.prototype.commit=function(e){if(this._hasPending){var t=this._inserts,n=this._changes,i=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,n,i)}},e}(),o=function(e,t,n,i,o){this.id=e,this.afterLineNumber=t,this.ordinal=n,this.height=i,this.minWidth=o,this.prefixSum=0};t.EditorWhitespace=o;var r=function(){function e(t,o){this._instanceId=n.singleLetterHash(++e.INSTANCE_COUNT),this._pendingChanges=new i,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._lineHeight=o}return e.findInsertionIndex=function(e,t,n){for(var i=0,o=e.length;i<o;){var r=i+o>>>1;t===e[r].afterLineNumber?n<e[r].ordinal?o=r:i=r+1:t<e[r].afterLineNumber?o=r:i=r+1}return i},e.prototype.setLineHeight=function(e){this._checkPendingChanges(),this._lineHeight=e},e.prototype.onFlushed=function(e){this._checkPendingChanges(),this._lineCount=e},e.prototype.changeWhitespace=function(e){var t=this;try{return e({\ninsertWhitespace:function(e,n,i,r){e|=0,n|=0,i|=0,r|=0;var s=t._instanceId+ ++t._lastWhitespaceId;return t._pendingChanges.insert(new o(s,e,n,i,r)),s},changeOneWhitespace:function(e,n,i){n|=0,i|=0,t._pendingChanges.change({id:e,newAfterLineNumber:n,newHeight:i})},removeWhitespace:function(e){t._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}},e.prototype._commitPendingChanges=function(e,t,n){if((e.length>0||n.length>0)&&(this._minWidth=-1),e.length+t.length+n.length<=1){for(var i=0,o=e;i<o.length;i++){var r=o[i];this._insertWhitespace(r)}for(var s=0,a=t;s<a.length;s++){var l=a[s];this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight)}for(var u=0,d=n;u<d.length;u++){var c=d[u],h=this._findWhitespaceIndex(c.id);-1!==h&&this._removeWhitespace(h)}}else{for(var p=new Set,g=0,f=n;g<f.length;g++){c=f[g];p.add(c.id)}for(var m=new Map,v=0,_=t;v<_.length;v++){l=_[v];m.set(l.id,l)}var y=function(e){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n];if(!p.has(o.id)){if(m.has(o.id)){\nvar r=m.get(o.id);o.afterLineNumber=r.newAfterLineNumber,o.height=r.newHeight}t.push(o)}}return t},C=y(this._arr).concat(y(e));C.sort((function(e,t){return e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber})),this._arr=C,this._prefixSumValidIndex=-1}},e.prototype._checkPendingChanges=function(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)},e.prototype._insertWhitespace=function(t){var n=e.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(n,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)},e.prototype._findWhitespaceIndex=function(e){for(var t=this._arr,n=0,i=t.length;n<i;n++)if(t[n].id===e)return n;return-1},e.prototype._changeOneWhitespace=function(e,t,n){var i=this._findWhitespaceIndex(e);if(-1!==i&&(this._arr[i].height!==n&&(this._arr[i].height=n,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1)),this._arr[i].afterLineNumber!==t)){var o=this._arr[i];this._removeWhitespace(i),\no.afterLineNumber=t,this._insertWhitespace(o)}},e.prototype._removeWhitespace=function(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)},e.prototype.onLinesDeleted=function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){var o=this._arr[n].afterLineNumber;e<=o&&o<=t?this._arr[n].afterLineNumber=e-1:o>t&&(this._arr[n].afterLineNumber-=t-e+1)}},e.prototype.onLinesInserted=function(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(var n=0,i=this._arr.length;n<i;n++){e<=this._arr[n].afterLineNumber&&(this._arr[n].afterLineNumber+=t-e+1)}},e.prototype.getWhitespacesTotalHeight=function(){return this._checkPendingChanges(),0===this._arr.length?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)},e.prototype.getWhitespacesAccumulatedHeight=function(e){this._checkPendingChanges(),e|=0;var t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++)\n;for(var n=t;n<=e;n++)this._arr[n].prefixSum=this._arr[n-1].prefixSum+this._arr[n].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum},e.prototype.getLinesTotalHeight=function(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()},e.prototype.getWhitespaceAccumulatedHeightBeforeLineNumber=function(e){this._checkPendingChanges(),e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e);return-1===t?0:this.getWhitespacesAccumulatedHeight(t)},e.prototype._findLastWhitespaceBeforeLineNumber=function(e){e|=0;for(var t=this._arr,n=0,i=t.length-1;n<=i;){var o=n+((i-n|0)/2|0)|0;if(t[o].afterLineNumber<e){if(o+1>=t.length||t[o+1].afterLineNumber>=e)return o;n=o+1|0}else i=o-1|0}return-1},e.prototype._findFirstWhitespaceAfterLineNumber=function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1},e.prototype.getFirstWhitespaceIndexAfterLineNumber=function(e){\nreturn this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)},e.prototype.getWhitespaceMinWidth=function(){if(this._checkPendingChanges(),-1===this._minWidth){for(var e=0,t=0,n=this._arr.length;t<n;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth},e.prototype.isAfterLines=function(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()},e.prototype.getLineNumberAtOrAfterVerticalOffset=function(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,o=t;i<o;){var r=(i+o)/2|0,s=0|this.getVerticalOffsetForLineNumber(r);if(e>=s+n)i=r+1;else{if(e>=s)return r;o=r}}return i>t?t:i},e.prototype.getLinesViewportData=function(e,t){this._checkPendingChanges(),e|=0,t|=0\n;var n,i,o=this._lineHeight,r=0|this.getLineNumberAtOrAfterVerticalOffset(e),s=0|this.getVerticalOffsetForLineNumber(r),a=0|this._lineCount,l=0|this.getFirstWhitespaceIndexAfterLineNumber(r),u=0|this.getWhitespacesCount();-1===l?(l=u,i=a+1,n=0):(i=0|this.getAfterLineNumberForWhitespaceIndex(l),n=0|this.getHeightForWhitespaceIndex(l));var d=s,c=d,h=0;s>=5e5&&(h=5e5*Math.floor(s/5e5),c-=h=Math.floor(h/o)*o);for(var p=[],g=e+(t-e)/2,f=-1,m=r;m<=a;m++){if(-1===f){(d<=g&&g<d+o||d>g)&&(f=m)}for(d+=o,p[m-r]=c,c+=o;i===m;)c+=n,d+=n,++l>=u?i=a+1:(i=0|this.getAfterLineNumberForWhitespaceIndex(l),n=0|this.getHeightForWhitespaceIndex(l));if(d>=t){a=m;break}}-1===f&&(f=a);var v=0|this.getVerticalOffsetForLineNumber(a),_=r,y=a;return _<y&&s<e&&_++,_<y&&v+o>t&&y--,{bigNumbersDelta:h,startLineNumber:r,endLineNumber:a,relativeVerticalOffset:p,centeredLineNumber:f,completelyVisibleStartLineNumber:_,completelyVisibleEndLineNumber:y}},e.prototype.getVerticalOffsetForWhitespaceIndex=function(e){this._checkPendingChanges(),e|=0\n;var t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)},e.prototype.getWhitespaceIndexAtOrAfterVerticallOffset=function(e){this._checkPendingChanges(),e|=0;var t=0,n=this.getWhitespacesCount()-1;if(n<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(n)+this.getHeightForWhitespaceIndex(n))return-1;for(;t<n;){var i=Math.floor((t+n)/2),o=this.getVerticalOffsetForWhitespaceIndex(i);if(e>=o+this.getHeightForWhitespaceIndex(i))t=i+1;else{if(e>=o)return i;n=i}}return t},e.prototype.getWhitespaceAtVerticalOffset=function(e){this._checkPendingChanges(),e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}},\ne.prototype.getWhitespaceViewportData=function(e,t){this._checkPendingChanges(),e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this.getWhitespacesCount()-1;if(n<0)return[];for(var o=[],r=n;r<=i;r++){var s=this.getVerticalOffsetForWhitespaceIndex(r),a=this.getHeightForWhitespaceIndex(r);if(s>=t)break;o.push({id:this.getIdForWhitespaceIndex(r),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:s,height:a})}return o},e.prototype.getWhitespaces=function(){return this._checkPendingChanges(),this._arr.slice(0)},e.prototype.getWhitespacesCount=function(){return this._checkPendingChanges(),this._arr.length},e.prototype.getIdForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].id},e.prototype.getAfterLineNumberForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber},e.prototype.getHeightForWhitespaceIndex=function(e){return this._checkPendingChanges(),e|=0,this._arr[e].height},e.INSTANCE_COUNT=0,e\n}();t.LinesLayout=r})),define(n[110],i([0,1,5,106,148]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(e,t){this.endIndex=e,this.type=t},s=function(){function e(e,t){this.startOffset=e,this.endOffset=t}return e.prototype.equals=function(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset},e}();t.LineRange=s;var a=function(){function e(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m,v){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.continuesWithWrappedLine=i,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=s,this.lineTokens=a,this.lineDecorations=l,this.tabSize=u,this.startVisibleColumn=d,this.spaceWidth=c,this.middotWidth=h,this.stopRenderingLineAfter=p,this.renderWhitespace=\"all\"===g?3:\"boundary\"===g?1:\"selection\"===g?2:0,this.renderControlCharacters=f,this.fontLigatures=m,this.selectionsOnLine=v&&v.sort((function(e,t){return e.startOffset<t.startOffset?-1:1}))}\nreturn e.prototype.sameSelection=function(e){if(null===this.selectionsOnLine)return null===e;if(null===e)return!1;if(e.length!==this.selectionsOnLine.length)return!1;for(var t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0},e.prototype.equals=function(e){\nreturn this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&o.LineDecoration.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)},e}();t.RenderLineInput=a;var l=function(){function e(e,t){this.length=e,this._data=new Uint32Array(this.length),this._absoluteOffsets=new Uint32Array(this.length)}return e.getPartIndex=function(e){return(4294901760&e)>>>16},\ne.getCharIndex=function(e){return(65535&e)>>>0},e.prototype.setPartData=function(e,t,n,i){var o=(t<<16|n<<0)>>>0;this._data[e]=o,this._absoluteOffsets[e]=i+n},e.prototype.getAbsoluteOffsets=function(){return this._absoluteOffsets},e.prototype.charOffsetToPartData=function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]},e.prototype.partDataToCharOffset=function(t,n,i){if(0===this.length)return 0;for(var o=(t<<16|i<<0)>>>0,r=0,s=this.length-1;r+1<s;){var a=r+s>>>1,l=this._data[a];if(l===o)return a;l>o?s=a:r=a}if(r===s)return r;var u=this._data[r],d=this._data[s];if(u===o)return r;if(d===o)return s;var c=e.getPartIndex(u);return i-e.getCharIndex(u)<=(c!==e.getPartIndex(d)?n:e.getCharIndex(d))-i?r:s},e}();t.CharacterMapping=l;var u=function(e,t,n){this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=n};function d(e,t){if(0===e.lineContent.length){var i=0,s=\"<span><span> </span></span>\";if(e.lineDecorations.length>0){\nfor(var a=[],d=[],c=0,p=e.lineDecorations.length;c<p;c++){var g=e.lineDecorations[c];1===g.type&&(a.push(e.lineDecorations[c].className),i|=1),2===g.type&&(d.push(e.lineDecorations[c].className),i|=2)}if(0!==i)s=\"<span>\"+(a.length>0?'<span class=\"'+a.join(\" \")+'\"></span>':\"\")+(d.length>0?'<span class=\"'+d.join(\" \")+'\"></span>':\"\")+\"</span>\"}return t.appendASCIIString(s),new u(new l(0,0),!1,i)}return function(e,t){var i=e.fontIsMonospace,o=e.canUseHalfwidthRightwardsArrow,r=e.containsForeignElements,s=e.lineContent,a=e.len,d=e.isOverflowing,c=e.parts,h=e.fauxIndentLength,p=e.tabSize,g=e.startVisibleColumn,f=e.containsRTL,m=e.spaceWidth,v=e.middotWidth,_=e.renderWhitespace,y=e.renderControlCharacters,C=v>m?11825:183,b=new l(a+1,c.length),S=0,w=g,E=0,L=0,D=0;t.appendASCIIString(\"<span>\");for(var N=0,x=c.length;N<x;N++){D+=L;var I=c[N],M=I.endIndex,k=I.type,T=0!==_&&k.indexOf(\"vs-whitespace\")>=0;if(E=0,t.appendASCIIString('<span class=\"'),t.appendASCIIString(k),t.appendASCII(34),T){for(var R=0,O=S,P=w;O<M;O++){\nvar A=s.charCodeAt(O);R+=F=0|(9===A?p-P%p:1),O>=h&&(P+=F)}if(!i)!(\"vs-whitespace\"===k)&&r||(t.appendASCIIString(' style=\"display:inline-block;width:'),t.appendASCIIString(String(m*R)),t.appendASCIIString('px\"'));for(t.appendASCII(62);S<M;S++){b.setPartData(S,N,E,D);A=s.charCodeAt(S);var F=void 0;if(9===A){F=p-w%p|0,!o||F>1?t.write1(8594):t.write1(65515);for(var W=2;W<=F;W++)t.write1(160)}else F=1,t.write1(C);E+=F,S>=h&&(w+=F)}L=R}else{R=0;for(f&&t.appendASCIIString(' dir=\"ltr\"'),t.appendASCII(62);S<M;S++){b.setPartData(S,N,E,D);A=s.charCodeAt(S);var B=1;F=1;switch(A){case 9:F=B=p-w%p;for(W=1;W<=B;W++)t.write1(160);break;case 32:t.write1(160);break;case 60:t.appendASCIIString(\"&lt;\");break;case 62:t.appendASCIIString(\"&gt;\");break;case 38:t.appendASCIIString(\"&amp;\");break;case 0:t.appendASCIIString(\"&#00;\");break;case 65279:case 8232:t.write1(65533);break;default:n.isFullWidthCharacter(A)&&F++,y&&A<32?t.write1(9216+A):t.write1(A)}E+=B,R+=B,S>=h&&(w+=F)}L=R}t.appendASCIIString(\"</span>\")}\nb.setPartData(a,c.length-1,E,D),d&&t.appendASCIIString(\"<span>&hellip;</span>\");return t.appendASCIIString(\"</span>\"),new u(b,f,r)}(function(e){var t,i,s=e.useMonospaceOptimizations,a=e.lineContent;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter<a.length?(t=!0,i=e.stopRenderingLineAfter):(t=!1,i=a.length);var l=function(e,t,n){var i=[],o=0;t>0&&(i[o++]=new r(t,\"\"));for(var s=0,a=e.getCount();s<a;s++){var l=e.getEndOffset(s);if(!(l<=t)){var u=e.getClassName(s);if(l>=n){i[o++]=new r(n,u);break}i[o++]=new r(l,u)}}return i}(e.lineTokens,e.fauxIndentLength,i);(3===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine)&&(l=function(e,t,i,o,s,a,l,u,d,c){var h,p=[],g=0,f=0,m=o[f].type,v=o[f].endIndex,_=o.length,y=n.firstNonWhitespaceIndex(e);-1===y?(y=t,h=t):h=n.lastNonWhitespaceIndex(e);for(var C=!1,b=0,S=d&&d[b],w=l%a,E=s;E<t;E++){var L=e.charCodeAt(E);S&&E>=S.endOffset&&(b++,S=d&&d[b]);var D=void 0;if(E<y||E>h)D=!0;else if(9===L)D=!0;else if(32===L)if(c)if(C)D=!0;else{\nvar N=E+1<t?e.charCodeAt(E+1):0;D=32===N||9===N}else D=!0;else D=!1;D&&d&&(D=!!S&&S.startOffset<=E&&S.endOffset>E),C?(!D||!u&&w>=a)&&(p[g++]=new r(E,\"vs-whitespace\"),w%=a):(E===v||D&&E>s)&&(p[g++]=new r(E,m),w%=a),9===L?w=a:n.isFullWidthCharacter(L)?w+=2:w++,C=D,E===v&&++f<_&&(m=o[f].type,v=o[f].endIndex)}var x=!1;if(C)if(i&&c){var I=t>0?e.charCodeAt(t-1):0,M=t>1?e.charCodeAt(t-2):0;32===I&&32!==M&&9!==M||(x=!0)}else x=!0;return p[g++]=new r(t,x?\"vs-whitespace\":m),p}(a,i,e.continuesWithWrappedLine,l,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,s,e.selectionsOnLine,1===e.renderWhitespace));var u=0;if(e.lineDecorations.length>0){for(var d=0,c=e.lineDecorations.length;d<c;d++){var p=e.lineDecorations[d];3===p.type?u|=1:1===p.type?u|=1:2===p.type&&(u|=2)}l=function(e,t,n,i){i.sort(o.LineDecoration.compare);for(var s=o.LineDecorationsNormalizer.normalize(e,i),a=s.length,l=0,u=[],d=0,c=0,h=0,p=n.length;h<p;h++){for(var g=n[h],f=g.endIndex,m=g.type;l<a&&s[l].startOffset<f;){var v=s[l]\n;if(v.startOffset>c&&(c=v.startOffset,u[d++]=new r(c,m)),!(v.endOffset+1<=f)){c=f,u[d++]=new r(c,m+\" \"+v.className);break}c=v.endOffset+1,u[d++]=new r(c,m+\" \"+v.className),l++}f>c&&(c=f,u[d++]=new r(c,m))}var _=n[n.length-1].endIndex;if(l<a&&s[l].startOffset===_){for(var y=[];l<a&&s[l].startOffset===_;)y.push(s[l].className),l++;u[d++]=new r(c,y.join(\" \"))}return u}(a,0,l,e.lineDecorations)}e.containsRTL||(l=function(e,t,n){var i=0,o=[],s=0;if(n)for(var a=0,l=t.length;a<l;a++){var u=(g=t[a]).endIndex;if(i+50<u){for(var d=g.type,c=-1,h=i,p=i;p<u;p++)32===e.charCodeAt(p)&&(c=p),-1!==c&&p-h>=50&&(o[s++]=new r(c+1,d),h=c+1,c=-1);h!==u&&(o[s++]=new r(u,d))}else o[s++]=g;i=u}else for(a=0,l=t.length;a<l;a++){var g=t[a],f=(u=g.endIndex)-i;if(f>50){d=g.type;var m=Math.ceil(f/50);for(p=1;p<m;p++){var v=i+50*p;o[s++]=new r(v,d)}o[s++]=new r(u,d)}else o[s++]=g;i=u}return o}(a,l,!e.isBasicASCII||e.fontLigatures))\n;return new h(s,e.canUseHalfwidthRightwardsArrow,a,i,t,l,u,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.containsRTL,e.spaceWidth,e.middotWidth,e.renderWhitespace,e.renderControlCharacters)}(e),t)}t.RenderLineOutput=u,t.renderViewLine=d;var c=function(e,t,n,i){this.characterMapping=e,this.html=t,this.containsRTL=n,this.containsForeignElements=i};t.RenderLineOutput2=c,t.renderViewLine2=function(e){var t=i.createStringBuilder(1e4),n=d(e,t);return new c(n.characterMapping,t.build(),n.containsRTL,n.containsForeignElements)};var h=function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.len=i,this.isOverflowing=o,this.parts=r,this.containsForeignElements=s,this.fauxIndentLength=a,this.tabSize=l,this.startVisibleColumn=u,this.containsRTL=d,this.spaceWidth=c,this.middotWidth=h,this.renderWhitespace=p,this.renderControlCharacters=g}})),define(n[363],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var i=function(){function e(e,t,i,o){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.whitespaceViewportData=i,this._model=o,this.visibleRange=new n.Range(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}return e.prototype.getViewLineRenderingData=function(e){return this._model.getViewLineRenderingData(this.visibleRange,e)},e.prototype.getDecorationsInViewport=function(){return this._model.getDecorationsInViewport(this.visibleRange)},e}();t.ViewportData=i})),define(n[194],i([0,1,179]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t){this.index=e,this.remainder=t};t.PrefixSumIndexOfResult=i;var o=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),\nthis.prefixSumValidIndex[0]=-1}return e.prototype.insertValues=function(e,t){e=n.toUint32(e);var i=this.values,o=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(i.length+r),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=n.toUint32(e),t=n.toUint32(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)},e.prototype.removeValues=function(e,t){e=n.toUint32(e),t=n.toUint32(t);var i=this.values,o=this.prefixSum;if(e>=i.length)return!1;var r=i.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),\nthis.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=n.toUint32(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t=0,n=this.values.length-1,o=0,r=0,s=0;t<=n;)if(o=t+(n-t)/2|0,\ne<(s=(r=this.prefixSum[o])-this.values[o]))n=o-1;else{if(!(e>=r))break;t=o+1}return new i(o,e-s)},e}();t.PrefixSumComputer=o})),define(n[364],i([0,1,13,194]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n,i){this._uri=e,this._lines=t,this._eol=n,this._versionId=i,this._lineStarts=null}return e.prototype.dispose=function(){this._lines.length=0},e.prototype.getText=function(){return this._lines.join(this._eol)},e.prototype.onEvents=function(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);for(var t=0,i=e.changes;t<i.length;t++){var o=i[t];this._acceptDeleteRange(o.range),this._acceptInsertText(new n.Position(o.range.startLineNumber,o.range.startColumn),o.text)}this._versionId=e.versionId},e.prototype._ensureLineStarts=function(){if(!this._lineStarts){for(var e=this._eol.length,t=this._lines.length,n=new Uint32Array(t),o=0;o<t;o++)n[o]=this._lines[o].length+e;this._lineStarts=new i.PrefixSumComputer(n)}},\ne.prototype._setLineText=function(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.changeValue(e,this._lines[e].length+this._eol.length)},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}},e.prototype._acceptInsertText=function(e,t){if(0!==t.length){var n=t.split(/\\r\\n|\\r|\\n/);if(1!==n.length){n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0])\n;for(var i=new Uint32Array(n.length-1),o=1;o<n.length;o++)this._lines.splice(e.lineNumber+o-1,0,n[o]),i[o-1]=n[o].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,i)}else this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1))}},e}();t.MirrorTextModel=o})),define(n[365],i([0,1,19,126,54,16,25,13,3,341,364,109,351,354,192,21]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),Object.defineProperty(t.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"version\",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"eol\",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){\nreturn this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=g.getWordAtText(e.column,g.ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return n?new u.Range(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.createWordIterator=function(e){var t,n,i=this,r=0,s=0,a=[],l=function(){if(s<a.length){var u=n.substring(a[s].start,a[s].end);return s+=1,t?t.value=u:t={done:!1,value:u},t}return r>=i._lines.length?o.FIN:(n=i._lines[r],a=i._wordenize(n,e),s=0,r+=1,l())};return{next:l}},t.prototype.getLineWords=function(e,t){for(var n=this._lines[e-1],i=[],o=0,r=this._wordenize(n,t);o<r.length;o++){var s=r[o];i.push({word:n.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1})}return i},t.prototype._wordenize=function(e,t){var n,i=[]\n;for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,o=[];o.push(this._lines[n].substring(e.startColumn-1));for(var r=n+1;r<i;r++)o.push(this._lines[r]);return o.push(this._lines[i].substring(0,e.endColumn-1)),o.join(t)},t.prototype.offsetAt=function(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getAccumulatedValue(e.lineNumber-2)+(e.column-1)},t.prototype.positionAt=function(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();var t=this._lineStarts.getIndexOf(e),n=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,n)}},t.prototype._validateRange=function(e){var t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn\n}),n=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||n.lineNumber!==e.endLineNumber||n.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:n.lineNumber,endColumn:n.column}:e},t.prototype._validatePosition=function(e){if(!l.Position.isIPosition(e))throw new Error(\"bad position\");var t=e.lineNumber,n=e.column,i=!1;if(t<1)t=1,n=1,i=!0;else if(t>this._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var o=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>o&&(n=o,i=!0)}return i?{lineNumber:t,column:n}:e},t}(p.MirrorTextModel),C=function(){function t(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}return t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[]\n;return Object.keys(this._models).forEach((function(n){return t.push(e._models[n])})),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new y(a.URI.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t.prototype.computeDiff=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a,l,u,d;return c(this,(function(c){return o=this._getModel(e),r=this._getModel(t),o&&r?(s=o.getLinesContent(),a=r.getLinesContent(),l=new h.DiffComputer(s,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:i}),u=l.computeDiff(),d=!(u.changes.length>0)&&this._modelsAreIdentical(o,r),[2,{quitEarly:u.quitEarly,identical:d,changes:u.changes}]):[2,null]}))}))},t.prototype._modelsAreIdentical=function(e,t){var n=e.getLineCount();if(n!==t.getLineCount())return!1\n;for(var i=1;i<=n;i++){if(e.getLineContent(i)!==t.getLineContent(i))return!1}return!0},t.prototype.computeMoreMinimalEdits=function(e,o){return d(this,void 0,void 0,(function(){var r,s,a,l,d,h,p,g,f,m,v,_,y,C,b,S,w,E;return c(this,(function(c){if(!(r=this._getModel(e)))return[2,o];for(s=[],a=void 0,o=n.mergeSort(o,(function(e,t){return e.range&&t.range?u.Range.compareRangesUsingStarts(e.range,t.range):(e.range?0:1)-(t.range?0:1)})),l=0,d=o;l<d.length;l++)if(h=d[l],p=h.range,g=h.text,\"number\"==typeof(f=h.eol)&&(a=f),(!u.Range.isEmpty(p)||g)&&(m=r.getValueInRange(p),g=g.replace(/\\r\\n|\\n|\\r/g,r.eol),m!==g))if(Math.max(g.length,m.length)>t._diffLimit)s.push({range:p,text:g});else for(v=i.stringDiff(m,g,!1),_=r.offsetAt(u.Range.lift(p).getStartPosition()),y=0,C=v;y<C.length;y++)b=C[y],S=r.positionAt(_+b.originalStart),w=r.positionAt(_+b.originalStart+b.originalLength),E={text:g.substr(b.modifiedStart,b.modifiedLength),range:{startLineNumber:S.lineNumber,startColumn:S.column,endLineNumber:w.lineNumber,\nendColumn:w.column}},r.getValueInRange(E.range)!==E.text&&s.push(E);return\"number\"==typeof a&&s.push({eol:a,text:\"\",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),[2,s]}))}))},t.prototype.computeLinks=function(e){return d(this,void 0,void 0,(function(){var t;return c(this,(function(n){return(t=this._getModel(e))?[2,f.computeLinks(t)]:[2,null]}))}))},t.prototype.textualSuggest=function(e,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l,u,d,h,p;return c(this,(function(c){if(!(r=this._getModel(e)))return[2,null];for(s=[],a=new Set,l=new RegExp(i,o),(u=r.getWordAtPosition(n,l))&&a.add(r.getValueInRange(u)),d=r.createWordIterator(l),h=d.next();!h.done&&a.size<=t._suggestionsLimit;h=d.next())p=h.value,a.has(p)||(a.add(p),isNaN(Number(p))&&s.push(p));return[2,s]}))}))},t.prototype.computeWordRanges=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a,l,u,d,h,p;return c(this,(function(c){if(!(o=this._getModel(e)))return[2,Object.create(null)];for(r=new RegExp(n,i),\ns=Object.create(null),a=t.startLineNumber;a<t.endLineNumber;a++)for(l=o.getLineWords(a,r),u=0,d=l;u<d.length;u++)h=d[u],isNaN(Number(h.word))&&((p=s[h.word])||(p=[],s[h.word]=p),p.push({startLineNumber:a,startColumn:h.startColumn,endLineNumber:a,endColumn:h.endColumn}));return[2,s]}))}))},t.prototype.navigateValueSet=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l,u;return c(this,(function(d){return(r=this._getModel(e))?(s=new RegExp(i,o),t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1}),a=r.getValueInRange(t),(l=r.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s))?(u=r.getValueInRange(l),[2,m.BasicInplaceReplace.INSTANCE.navigateValueSet(t,a,l,u,n)]):[2,null]):[2,null]}))}))},t.prototype.loadForeignModule=function(t,n,i){var o=this,r={host:_.createProxyObject(i,(function(e,t){return o._host.fhr(e,t)})),getMirrorModels:function(){return o._getModels()}}\n;return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,n),Promise.resolve(_.getAllMethodNames(this._foreignModule))):new Promise((function(i,s){e([t],(function(e){o._foreignModule=e.create(r,n),i(_.getAllMethodNames(o._foreignModule))}),s)}))},t.prototype.fmr=function(e,t){if(!this._foreignModule||\"function\"!=typeof this._foreignModule[e])return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return Promise.reject(e)}},t._diffLimit=1e5,t._suggestionsLimit=1e4,t}();t.EditorSimpleWorker=C,t.create=function(e){return new C(e,null)},\"function\"==typeof importScripts&&(s.globals.monaco=v.createMonacoBaseAPI())})),define(n[92],i([0,1,2]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(){var t=e.call(this)||this;return t._shouldRender=!0,t}return r(t,e),t.prototype.shouldRender=function(){return this._shouldRender},\nt.prototype.forceShouldRender=function(){this._shouldRender=!0},t.prototype.setShouldRender=function(){this._shouldRender=!0},t.prototype.onDidRender=function(){this._shouldRender=!1},t.prototype.onConfigurationChanged=function(e){return!1},t.prototype.onContentSizeChanged=function(e){return!1},t.prototype.onCursorStateChanged=function(e){return!1},t.prototype.onDecorationsChanged=function(e){return!1},t.prototype.onFlushed=function(e){return!1},t.prototype.onFocusChanged=function(e){return!1},t.prototype.onLanguageConfigurationChanged=function(e){return!1},t.prototype.onLineMappingChanged=function(e){return!1},t.prototype.onLinesChanged=function(e){return!1},t.prototype.onLinesDeleted=function(e){return!1},t.prototype.onLinesInserted=function(e){return!1},t.prototype.onRevealRangeRequest=function(e){return!1},t.prototype.onScrollChanged=function(e){return!1},t.prototype.onThemeChanged=function(e){return!1},t.prototype.onTokensChanged=function(e){return!1},t.prototype.onTokensColorsChanged=function(e){\nreturn!1},t.prototype.onZonesChanged=function(e){return!1},t.prototype.handleEvents=function(e){for(var t=!1,n=0,i=e.length;n<i;n++){var o=e[n];switch(o.type){case 1:this.onConfigurationChanged(o)&&(t=!0);break;case 2:this.onContentSizeChanged(o)&&(t=!0);break;case 3:this.onCursorStateChanged(o)&&(t=!0);break;case 4:this.onDecorationsChanged(o)&&(t=!0);break;case 5:this.onFlushed(o)&&(t=!0);break;case 6:this.onFocusChanged(o)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(o)&&(t=!0);break;case 8:this.onLineMappingChanged(o)&&(t=!0);break;case 9:this.onLinesChanged(o)&&(t=!0);break;case 10:this.onLinesDeleted(o)&&(t=!0);break;case 11:this.onLinesInserted(o)&&(t=!0);break;case 12:this.onRevealRangeRequest(o)&&(t=!0);break;case 13:this.onScrollChanged(o)&&(t=!0);break;case 15:this.onTokensChanged(o)&&(t=!0);break;case 14:this.onThemeChanged(o)&&(t=!0);break;case 16:this.onTokensColorsChanged(o)&&(t=!0);break;case 17:this.onZonesChanged(o)&&(t=!0);break;default:\nconsole.info(\"View received unknown event: \"),console.info(o)}}t&&(this._shouldRender=!0)},t}(n.Disposable);t.ViewEventHandler=i})),define(n[82],i([0,1,92]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t}(n.ViewEventHandler);t.DynamicViewOverlay=i})),define(n[37],i([0,1,28,92]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t}(i.ViewEventHandler);t.ViewPart=o;var s=function(){function e(){}return e.write=function(e,t){n.FastDomNode,e.setAttribute(\"data-mprt\",String(t))},e.read=function(e){var t=e.getAttribute(\"data-mprt\");return null===t?0:parseInt(t,10)},e.collect=function(e,t){\nfor(var n=[],i=0;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[i++]=this.read(e)),e=e.parentElement;for(var o=new Uint8Array(i),r=0;r<i;r++)o[r]=n[i-r-1];return o},e}();t.PartFingerprints=s})),define(n[366],i([0,1,6,28,37]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e,t){this.top=e,this.left=t},a=function(e){function t(t,n){var r=e.call(this,t)||this;return r._viewDomNode=n,r._widgets={},r.domNode=i.createFastDomNode(document.createElement(\"div\")),o.PartFingerprints.write(r.domNode,1),r.domNode.setClassName(\"contentWidgets\"),r.domNode.setPosition(\"absolute\"),r.domNode.setTop(0),r.overflowingContentWidgetsDomNode=i.createFastDomNode(document.createElement(\"div\")),o.PartFingerprints.write(r.overflowingContentWidgetsDomNode,2),r.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\"),r}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets={}},t.prototype.onConfigurationChanged=function(e){\nfor(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onConfigurationChanged(e)}return!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLineMappingChanged=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onLineMappingChanged(e)}return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.addWidget=function(e){var t=new l(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t,n){this._widgets[e.getId()].setPosition(t,n),this.setShouldRender()},\nt.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t];delete this._widgets[t];var i=n.domNode.domNode;i.parentNode.removeChild(i),i.removeAttribute(\"monaco-visible-content-widget\"),this.setShouldRender()}},t.prototype.shouldSuppressMouseDownOnWidget=function(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown},t.prototype.onBeforeRender=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].onBeforeRender(e)}},t.prototype.prepareRender=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].prepareRender(e)}},t.prototype.render=function(e){for(var t=0,n=Object.keys(this._widgets);t<n.length;t++){var i=n[t];this._widgets[i].render(e)}},t}(o.ViewPart);t.ViewContentWidgets=a;var l=function(){function e(e,t,n){this._context=e,this._viewDomNode=t,this._actual=n,this.domNode=i.createFastDomNode(this._actual.getDomNode()),this.id=this._actual.getId(),\nthis.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;var o=this._context.configuration.options,r=o.get(107);this._fixedOverflowWidgets=o.get(29),this._contentWidth=r.contentWidth,this._contentLeft=r.contentLeft,this._lineHeight=o.get(49),this._range=null,this._viewRange=null,this._preference=[],this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?\"fixed\":\"absolute\"),this.domNode.setVisibility(\"hidden\"),this.domNode.setAttribute(\"widgetId\",this.id),this.domNode.setMaxWidth(this._maxWidth)}return e.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;if(this._lineHeight=t.get(49),e.hasChanged(107)){var n=t.get(107);this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._maxWidth=this._getMaxWidth()}},\ne.prototype.onLineMappingChanged=function(e){this._setPosition(this._range)},e.prototype._setPosition=function(e){if(this._range=e,this._viewRange=null,this._range){var t=this._context.model.validateModelRange(this._range);(this._context.model.coordinatesConverter.modelPositionIsVisible(t.getStartPosition())||this._context.model.coordinatesConverter.modelPositionIsVisible(t.getEndPosition()))&&(this._viewRange=this._context.model.coordinatesConverter.convertModelRangeToViewRange(t))}},e.prototype._getMaxWidth=function(){return this.allowEditorOverflow?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:this._contentWidth},e.prototype.setPosition=function(e,t){this._setPosition(e),this._preference=t,this._cachedDomNodeClientWidth=-1,this._cachedDomNodeClientHeight=-1},e.prototype._layoutBoxInViewport=function(e,t,n,i,o){var r=e.top,s=r,a=t.top+this._lineHeight,l=r-i,u=s>=i,d=a,c=o.viewportHeight-a>=i,h=e.left,p=t.left\n;return h+n>o.scrollLeft+o.viewportWidth&&(h=o.scrollLeft+o.viewportWidth-n),p+n>o.scrollLeft+o.viewportWidth&&(p=o.scrollLeft+o.viewportWidth-n),h<o.scrollLeft&&(h=o.scrollLeft),p<o.scrollLeft&&(p=o.scrollLeft),{fitsAbove:u,aboveTop:l,aboveLeft:h,fitsBelow:c,belowTop:d,belowLeft:p}},e.prototype._layoutHorizontalSegmentInPage=function(e,t,i,o){var r,s=Math.max(0,t.left-o),a=Math.min(t.left+t.width+o,e.width),l=t.left+i-n.StandardWindow.scrollX;l+o>a&&(l-=r=l-(a-o),i-=r);l<s&&(l-=r=l-s,i-=r);return[i,l]},e.prototype._layoutBoxInPage=function(e,t,i,o,r){var s=e.top-o,a=t.top+this._lineHeight,l=n.getDomNodePagePosition(this._viewDomNode.domNode),u=l.top+s-n.StandardWindow.scrollY,d=l.top+a-n.StandardWindow.scrollY,c=n.getClientArea(document.body),h=this._layoutHorizontalSegmentInPage(c,l,e.left-r.scrollLeft+this._contentLeft,i),p=h[0],g=h[1],f=this._layoutHorizontalSegmentInPage(c,l,t.left-r.scrollLeft+this._contentLeft,i),m=f[0],v=f[1],_=u>=22,y=d+o<=c.height-22;return this._fixedOverflowWidgets?{fitsAbove:_,\naboveTop:Math.max(u,22),aboveLeft:g,fitsBelow:y,belowTop:d,belowLeft:v}:{fitsAbove:_,aboveTop:Math.max(s,22),aboveLeft:p,fitsBelow:y,belowTop:a,belowLeft:m}},e.prototype._prepareRenderWidgetAtExactPositionOverflowing=function(e){return new s(e.top,e.left+this._contentLeft)},e.prototype._getTopAndBottomLeft=function(e){if(!this._viewRange)return[null,null];var t=e.linesVisibleRangesForRange(this._viewRange,!1);if(!t||0===t.length)return[null,null];for(var n=t[0],i=t[0],o=0,r=t;o<r.length;o++){var a=r[o];a.lineNumber<n.lineNumber&&(n=a),a.lineNumber>i.lineNumber&&(i=a)}for(var l=1073741824,u=0,d=n.ranges;u<d.length;u++){(g=d[u]).left<l&&(l=g.left)}for(var c=1073741824,h=0,p=i.ranges;h<p.length;h++){var g;(g=p[h]).left<c&&(c=g.left)}var f=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.scrollTop,m=new s(f,l),v=e.getVerticalOffsetForLineNumber(i.lineNumber)-e.scrollTop;return[m,new s(v,c)]},e.prototype._prepareRenderWidget=function(e){var t,n=this._getTopAndBottomLeft(e),i=n[0],o=n[1];if(!i||!o)return null\n;if(-1===this._cachedDomNodeClientWidth||-1===this._cachedDomNodeClientHeight){var r=this.domNode.domNode;this._cachedDomNodeClientWidth=r.clientWidth,this._cachedDomNodeClientHeight=r.clientHeight}if(t=this.allowEditorOverflow?this._layoutBoxInPage(i,o,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e):this._layoutBoxInViewport(i,o,this._cachedDomNodeClientWidth,this._cachedDomNodeClientHeight,e),this._preference)for(var a=1;a<=2;a++)for(var l=0,u=this._preference;l<u.length;l++){var d=u[l];if(1===d){if(!t)return null;if(2===a||t.fitsAbove)return new s(t.aboveTop,t.aboveLeft)}else{if(2!==d)return this.allowEditorOverflow?this._prepareRenderWidgetAtExactPositionOverflowing(i):i;if(!t)return null;if(2===a||t.fitsBelow)return new s(t.belowTop,t.belowLeft)}}return null},e.prototype.onBeforeRender=function(e){this._viewRange&&this._preference&&(this._viewRange.endLineNumber<e.startLineNumber||this._viewRange.startLineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))},\ne.prototype.prepareRender=function(e){this._renderData=this._prepareRenderWidget(e)},e.prototype.render=function(e){this._renderData?(this.allowEditorOverflow?(this.domNode.setTop(this._renderData.top),this.domNode.setLeft(this._renderData.left)):(this.domNode.setTop(this._renderData.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.left)),this._isVisible||(this.domNode.setVisibility(\"inherit\"),this.domNode.setAttribute(\"monaco-visible-content-widget\",\"true\"),this._isVisible=!0)):this._isVisible&&(this.domNode.removeAttribute(\"monaco-visible-content-widget\"),this._isVisible=!1,this.domNode.setVisibility(\"hidden\"))},e}()})),define(n[367],i([0,1,82,3,91,286]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options;return n._lineHeight=i.get(49),n._typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,n._renderResult=null,\nn._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged||e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){for(var t=e.getDecorationsInViewport(),n=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r];a.options.className&&(n[o++]=a)}n=n.sort((function(e,t){if(e.options.zIndex<t.options.zIndex)return-1\n;if(e.options.zIndex>t.options.zIndex)return 1;var n=e.options.className,o=t.options.className;return n<o?-1:n>o?1:i.Range.compareRangesUsingStarts(e.range,t.range)}));for(var l=e.visibleRange.startLineNumber,u=e.visibleRange.endLineNumber,d=[],c=l;c<=u;c++){d[c-l]=\"\"}this._renderWholeLineDecorations(e,n,d),this._renderNormalDecorations(e,n,d),this._renderResult=d},t.prototype._renderWholeLineDecorations=function(e,t,n){for(var i=String(this._lineHeight),o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=0,a=t.length;s<a;s++){var l=t[s];if(l.options.isWholeLine)for(var u='<div class=\"cdr '+l.options.className+'\" style=\"left:0;width:100%;height:'+i+'px;\"></div>',d=Math.max(l.range.startLineNumber,o),c=Math.min(l.range.endLineNumber,r),h=d;h<=c;h++){n[h-o]+=u}}},t.prototype._renderNormalDecorations=function(e,t,n){for(var o=String(this._lineHeight),r=e.visibleRange.startLineNumber,s=null,a=!1,l=null,u=0,d=t.length;u<d;u++){var c=t[u];if(!c.options.isWholeLine){\nvar h=c.options.className,p=Boolean(c.options.showIfCollapsed),g=c.range;p&&1===g.endColumn&&g.endLineNumber!==g.startLineNumber&&(g=new i.Range(g.startLineNumber,g.startColumn,g.endLineNumber-1,this._context.model.getLineMaxColumn(g.endLineNumber-1))),s===h&&a===p&&i.Range.areIntersectingOrTouching(l,g)?l=i.Range.plusRange(l,g):(null!==s&&this._renderNormalDecoration(e,l,s,a,o,r,n),s=h,a=p,l=g)}}null!==s&&this._renderNormalDecoration(e,l,s,a,o,r,n)},t.prototype._renderNormalDecoration=function(e,t,n,i,r,s,a){var l=e.linesVisibleRangesForRange(t,\"findMatch\"===n);if(l)for(var u=0,d=l.length;u<d;u++){var c=l[u];if(!c.outsideRenderedLine){var h=c.lineNumber-s;if(i&&1===c.ranges.length){var p=c.ranges[0];0===p.width&&(c.ranges[0]=new o.HorizontalRange(p.left,this._typicalHalfwidthCharacterWidth))}for(var g=0,f=c.ranges.length;g<f;g++){var m=c.ranges[g],v='<div class=\"cdr '+n+'\" style=\"left:'+String(m.left)+\"px;width:\"+String(m.width)+\"px;height:\"+r+'px;\"></div>';a[h]+=v}}}},t.prototype.render=function(e,t){\nif(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(n.DynamicViewOverlay);t.DecorationsOverlay=s})),define(n[149],i([0,1,82,287]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n){this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(n)};t.DecorationToRender=i;var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._render=function(e,t,n){for(var i=[],o=e;o<=t;o++){i[o-e]=[]}if(0===n.length)return i;n.sort((function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1}));for(var r=null,s=0,a=0,l=n.length;a<l;a++){var u=n[a],d=u.className,c=Math.max(u.startLineNumber,e)-e,h=Math.min(u.endLineNumber,t)-e;r===d?(c=Math.max(s+1,c),s=Math.max(s,h)):(r=d,s=h);for(var p=c;p<=s;p++)i[p].push(r)}return i},t}(n.DynamicViewOverlay)\n;t.DedupOverlay=o;var s=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options,o=i.get(107);return n._lineHeight=i.get(49),n._glyphMargin=i.get(40),n._glyphMarginLeft=o.glyphMarginLeft,n._glyphMarginWidth=o.glyphMarginWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._glyphMargin=t.get(40),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){\nreturn e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),n=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.glyphMarginClassName;l&&(n[o++]=new i(a.range.startLineNumber,a.range.endLineNumber,l))}return n},t.prototype.prepareRender=function(e){if(this._glyphMargin){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o=this._lineHeight.toString(),r='\" style=\"left:'+this._glyphMarginLeft.toString()+\"px;width:\"+this._glyphMarginWidth.toString()+\"px;height:\"+o+'px;\"></div>',s=[],a=t;a<=n;a++){var l=a-t,u=i[l];0===u.length?s[l]=\"\":s[l]='<div class=\"cgmr codicon '+u.join(\" \")+r}this._renderResult=s}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(o);t.GlyphMarginOverlay=s})),define(n[368],i([0,1,149,291]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options.get(107);return n._decorationsLeft=i.decorationsLeft,n._decorationsWidth=i.decorationsWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(107);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},\nt.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),i=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.linesDecorationsClassName;l&&(i[o++]=new n.DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l))}return i},t.prototype.prepareRender=function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o='\" style=\"left:'+this._decorationsLeft.toString()+\"px;width:\"+this._decorationsWidth.toString()+'px;\"></div>',r=[],s=t;s<=n;s++){for(var a=s-t,l=i[a],u=\"\",d=0,c=l.length;d<c;d++)u+='<div class=\"cldr '+l[d]+o;r[a]=u}this._renderResult=r},t.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:\"\"},t}(n.DedupOverlay);t.LinesDecorationsOverlay=i})),define(n[195],i([0,1,28,37]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(i){var o=e.call(this,i)||this,r=o._context.configuration.options,s=r.get(107)\n;return o._canUseLayerHinting=!r.get(22),o._contentLeft=s.contentLeft,o._glyphMarginLeft=s.glyphMarginLeft,o._glyphMarginWidth=s.glyphMarginWidth,o._domNode=n.createFastDomNode(document.createElement(\"div\")),o._domNode.setClassName(t.OUTER_CLASS_NAME),o._domNode.setPosition(\"absolute\"),o._domNode.setAttribute(\"role\",\"presentation\"),o._domNode.setAttribute(\"aria-hidden\",\"true\"),o._glyphMarginBackgroundDomNode=n.createFastDomNode(document.createElement(\"div\")),o._glyphMarginBackgroundDomNode.setClassName(t.CLASS_NAME),o._domNode.appendChild(o._glyphMarginBackgroundDomNode),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._canUseLayerHinting=!t.get(22),this._contentLeft=n.contentLeft,this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0},t.prototype.onScrollChanged=function(t){\nreturn e.prototype.onScrollChanged.call(this,t)||t.scrollTopChanged},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain(\"strict\");var t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);var n=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(n),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(n)},t.CLASS_NAME=\"glyph-margin\",t.OUTER_CLASS_NAME=\"margin\",t}(i.ViewPart);t.Margin=o})),define(n[369],i([0,1,149,292]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,\ne.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),i=[],o=0,r=0,s=t.length;r<s;r++){var a=t[r],l=a.options.marginClassName;l&&(i[o++]=new n.DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l))}return i},t.prototype.prepareRender=function(e){for(var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._render(t,n,this._getDecorations(e)),o=[],r=t;r<=n;r++){for(var s=r-t,a=i[s],l=\"\",u=0,d=a.length;u<d;u++)l+='<div class=\"cmdr '+a[u]+'\" style=\"\"></div>';o[s]=l}this._renderResult=o},\nt.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:\"\"},t}(n.DedupOverlay);t.MarginViewLineDecorationsOverlay=i})),define(n[370],i([0,1,28,37,294]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var o=e.call(this,t)||this,r=o._context.configuration.options.get(107);return o._widgets={},o._verticalScrollbarWidth=r.verticalScrollbarWidth,o._minimapWidth=r.minimapWidth,o._horizontalScrollbarHeight=r.horizontalScrollbarHeight,o._editorHeight=r.height,o._editorWidth=r.width,o._domNode=n.createFastDomNode(document.createElement(\"div\")),i.PartFingerprints.write(o._domNode,4),o._domNode.setClassName(\"overlayWidgets\"),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets={}},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(107)\n;return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0},t.prototype.addWidget=function(e){var t=n.createFastDomNode(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition(\"absolute\"),t.setAttribute(\"widgetId\",e.getId()),this._domNode.appendChild(t),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)},t.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}},t.prototype._renderWidget=function(e){var t=e.domNode;if(null!==e.preference)if(0===e.preference)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(1===e.preference){\nvar n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else 2===e.preference&&(t.setTop(0),t.domNode.style.right=\"50%\");else t.unsetTop()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n<i;n++){var o=t[n];this._renderWidget(this._widgets[o])}},t}(i.ViewPart);t.ViewOverlayWidgets=o})),define(n[371],i([0,1,28,193,92]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,o){var r=e.call(this)||this;r._context=t;var s=r._context.configuration.options;return r._domNode=n.createFastDomNode(document.createElement(\"canvas\")),r._domNode.setClassName(o),r._domNode.setPosition(\"absolute\"),r._domNode.setLayerHinting(!0),r._domNode.setContain(\"strict\"),r._zoneManager=new i.OverviewZoneManager((function(e){\nreturn r._context.viewLayout.getVerticalOffsetForLineNumber(e)})),r._zoneManager.setDOMWidth(0),r._zoneManager.setDOMHeight(0),r._zoneManager.setOuterHeight(r._context.viewLayout.getScrollHeight()),r._zoneManager.setLineHeight(s.get(49)),r._zoneManager.setPixelRatio(s.get(105)),r._context.addEventHandler(r),r}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return e.hasChanged(49)&&(this._zoneManager.setLineHeight(t.get(49)),this._render()),e.hasChanged(105)&&(this._zoneManager.setPixelRatio(t.get(105)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0},t.prototype.onFlushed=function(e){return this._render(),!0},\nt.prototype.onScrollChanged=function(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0},t.prototype.onZonesChanged=function(e){return this._render(),!0},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.setLayout=function(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())},t.prototype.setZones=function(e){this._zoneManager.setZones(e),this._render()},t.prototype._render=function(){if(0===this._zoneManager.getOuterHeight())return!1\n;var e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),i=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext(\"2d\");return o.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(o,n,i,e),!0},t.prototype._renderOneLane=function(e,t,n,i){for(var o=0,r=0,s=0,a=0,l=t;a<l.length;a++){var u=l[a],d=u.colorId,c=u.from,h=u.to;d!==o?(e.fillRect(0,r,i,s-r),o=d,e.fillStyle=n[o],r=c,s=h):s>=c?s=Math.max(s,h):(e.fillRect(0,r,i,s-r),r=c,s=h)}e.fillRect(0,r,i,s-r)},t}(o.ViewEventHandler);t.OverviewRuler=s})),define(n[372],i([0,1,28,10,37,13]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){throw new Error(\"Invalid change accessor\")},l=function(e){function t(t){var i=e.call(this,t)||this,o=i._context.configuration.options,r=o.get(107);return i._lineHeight=o.get(49),i._contentWidth=r.contentWidth,i._contentLeft=r.contentLeft,i.domNode=n.createFastDomNode(document.createElement(\"div\")),\ni.domNode.setClassName(\"view-zones\"),i.domNode.setPosition(\"absolute\"),i.domNode.setAttribute(\"role\",\"presentation\"),i.domNode.setAttribute(\"aria-hidden\",\"true\"),i.marginDomNode=n.createFastDomNode(document.createElement(\"div\")),i.marginDomNode.setClassName(\"margin-view-zones\"),i.marginDomNode.setPosition(\"absolute\"),i.marginDomNode.setAttribute(\"role\",\"presentation\"),i.marginDomNode.setAttribute(\"aria-hidden\",\"true\"),i._zones={},i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._zones={}},t.prototype._recomputeWhitespacesProps=function(){for(var e=this,t=this._context.viewLayout.getWhitespaces(),n=new Map,i=0,o=t;i<o.length;i++){var r=o[i];n.set(r.id,r)}return this._context.viewLayout.changeWhitespace((function(t){for(var i=!1,o=Object.keys(e._zones),r=0,s=o.length;r<s;r++){var a=o[r],l=e._zones[a],u=e._computeWhitespaceProps(l.delegate),d=n.get(a)\n;!d||d.afterLineNumber===u.afterViewLineNumber&&d.height===u.heightInPx||(t.changeOneWhitespace(a,u.afterViewLineNumber,u.heightInPx),e._safeCallOnComputedHeight(l.delegate,u.heightInPx),i=!0)}return i}))},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,e.hasChanged(49)&&this._recomputeWhitespacesProps(),!0},t.prototype.onLineMappingChanged=function(e){var t=this._recomputeWhitespacesProps();return t&&this._context.viewLayout.onHeightMaybeChanged(),t},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged||e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype._getZoneOrdinal=function(e){return void 0!==e.afterColumn?e.afterColumn:1e4},t.prototype._computeWhitespaceProps=function(e){if(0===e.afterLineNumber)return{\nafterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};var t,n;if(void 0!==e.afterColumn)t=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{var i=this._context.model.validateModelPosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new s.Position(i,this._context.model.getModelLineMaxColumn(i))}n=t.column===this._context.model.getModelLineMaxColumn(t.lineNumber)?this._context.model.validateModelPosition({lineNumber:t.lineNumber+1,column:1}):this._context.model.validateModelPosition({lineNumber:t.lineNumber,column:t.column+1});var o=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),r=this._context.model.coordinatesConverter.modelPositionIsVisible(n);return{afterViewLineNumber:o.lineNumber,heightInPx:r?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}},t.prototype.changeViewZones=function(e){var t=this;return this._context.viewLayout.changeWhitespace((function(n){\nvar o=!1,r={addZone:function(e){return o=!0,t._addZone(n,e)},removeZone:function(e){e&&(o=t._removeZone(n,e)||o)},layoutZone:function(e){e&&(o=t._layoutZone(n,e)||o)}};return function(e,t){try{e(t)}catch(e){i.onUnexpectedError(e)}}(e,r),r.addZone=a,r.removeZone=a,r.layoutZone=a,o}))},t.prototype._addZone=function(e,t){var i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isVisible:!1,domNode:n.createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?n.createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition(\"absolute\"),o.domNode.domNode.style.width=\"100%\",o.domNode.setDisplay(\"none\"),o.domNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition(\"absolute\"),o.marginDomNode.domNode.style.width=\"100%\",o.marginDomNode.setDisplay(\"none\"),\no.marginDomNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId},t.prototype._removeZone=function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t];return delete this._zones[t],e.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute(\"monaco-visible-view-zone\"),n.domNode.removeAttribute(\"monaco-view-zone\"),n.domNode.domNode.parentNode.removeChild(n.domNode.domNode),n.marginDomNode&&(n.marginDomNode.removeAttribute(\"monaco-visible-view-zone\"),n.marginDomNode.removeAttribute(\"monaco-view-zone\"),n.marginDomNode.domNode.parentNode.removeChild(n.marginDomNode.domNode)),this.setShouldRender(),!0}return!1},t.prototype._layoutZone=function(e,t){if(this._zones.hasOwnProperty(t)){var n=this._zones[t],i=this._computeWhitespaceProps(n.delegate);return e.changeOneWhitespace(n.whitespaceId,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(n.delegate,i.heightInPx),\nthis.setShouldRender(),!0}return!1},t.prototype.shouldSuppressMouseDownOnViewZone=function(e){if(this._zones.hasOwnProperty(e)){var t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1},t.prototype._heightInPixels=function(e){return\"number\"==typeof e.heightInPx?e.heightInPx:\"number\"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight},t.prototype._minWidthInPixels=function(e){return\"number\"==typeof e.minWidthInPx?e.minWidthInPx:0},t.prototype._safeCallOnComputedHeight=function(e,t){if(\"function\"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){i.onUnexpectedError(e)}},t.prototype._safeCallOnDomNodeTop=function(e,t){if(\"function\"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){i.onUnexpectedError(e)}},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){for(var t=e.viewportData.whitespaceViewportData,n={},i=!1,o=0,r=t.length;o<r;o++)n[t[o].id]=t[o],i=!0;var s=Object.keys(this._zones);for(o=0,r=s.length;o<r;o++){\nvar a=s[o],l=this._zones[a],u=0,d=0,c=\"none\";n.hasOwnProperty(a)?(u=n[a].verticalOffset-e.bigNumbersDelta,d=n[a].height,c=\"block\",l.isVisible||(l.domNode.setAttribute(\"monaco-visible-view-zone\",\"true\"),l.isVisible=!0),this._safeCallOnDomNodeTop(l.delegate,e.getScrolledTopFromAbsoluteTop(n[a].verticalOffset))):(l.isVisible&&(l.domNode.removeAttribute(\"monaco-visible-view-zone\"),l.isVisible=!1),this._safeCallOnDomNodeTop(l.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),l.domNode.setTop(u),l.domNode.setHeight(d),l.domNode.setDisplay(c),l.marginDomNode&&(l.marginDomNode.setTop(u),l.marginDomNode.setHeight(d),l.marginDomNode.setDisplay(c))}i&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))},t}(o.ViewPart);t.ViewZones=l})),define(n[69],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e,t,n,i){this.top=0|e,this.left=0|t,this.width=0|n,this.height=0|i};t.Viewport=i;var o=function(e,t){\nthis.tabSize=e,this.data=t};t.MinimapLinesRenderingData=o;var r=function(e,t,n,i,o,r){this.content=e,this.continuesWithWrappedLine=t,this.minColumn=n,this.maxColumn=i,this.startVisibleColumn=o,this.tokens=r};t.ViewLineData=r;var s=function(){function e(t,n,i,o,r,s,a,l,u,d){this.minColumn=t,this.maxColumn=n,this.content=i,this.continuesWithWrappedLine=o,this.isBasicASCII=e.isBasicASCII(i,s),this.containsRTL=e.containsRTL(i,this.isBasicASCII,r),this.tokens=a,this.inlineDecorations=l,this.tabSize=u,this.startVisibleColumn=d}return e.isBasicASCII=function(e,t){return!t||n.isBasicASCII(e)},e.containsRTL=function(e,t,i){return!(t||!i)&&n.containsRTL(e)},e}();t.ViewLineRenderingData=s;var a=function(e,t,n){this.range=e,this.inlineClassName=t,this.type=n};t.InlineDecoration=a;var l=function(e,t){this.range=e,this.options=t};t.ViewModelDecoration=l})),define(n[373],i([0,1,4,2,176,362,69]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e,t,n,i){\n(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(n|=0)<0&&(n=0),(i|=0)<0&&(i=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=n,this.contentHeight=i,this.scrollHeight=Math.max(n,i)}return e.prototype.equals=function(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight},e}(),u=function(e){function t(t,i){var r=e.call(this)||this;return r._onDidContentSizeChange=r._register(new n.Emitter),r.onDidContentSizeChange=r._onDidContentSizeChange.event,r._dimensions=new l(0,0,0,0),r._scrollable=r._register(new o.Scrollable(t,i)),r.onDidScroll=r._scrollable.onScroll,r}return r(t,e),t.prototype.getScrollable=function(){return this._scrollable},t.prototype.setSmoothScrollDuration=function(e){this._scrollable.setSmoothScrollDuration(e)},t.prototype.validateScrollPosition=function(e){return this._scrollable.validateScrollPosition(e)},t.prototype.getScrollDimensions=function(){return this._dimensions},\nt.prototype.setScrollDimensions=function(e){if(!this._dimensions.equals(e)){var t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight});var n=t.contentWidth!==e.contentWidth,i=t.contentHeight!==e.contentHeight;(n||i)&&this._onDidContentSizeChange.fire({contentWidth:e.contentWidth,contentHeight:e.contentHeight,contentWidthChanged:n,contentHeightChanged:i})}},t.prototype.getFutureScrollPosition=function(){return this._scrollable.getFutureScrollPosition()},t.prototype.getCurrentScrollPosition=function(){return this._scrollable.getCurrentScrollPosition()},t.prototype.setScrollPositionNow=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.setScrollPositionSmooth=function(e){this._scrollable.setScrollPositionSmooth(e)},t}(i.Disposable),d=function(e){function t(t,n,i){var o=e.call(this)||this;o._configuration=t;var r=o._configuration.options,a=r.get(107)\n;return o._linesLayout=new s.LinesLayout(n,r.get(49)),o._scrollable=o._register(new u(0,i)),o._configureSmoothScrollDuration(),o._scrollable.setScrollDimensions(new l(a.contentWidth,0,a.height,0)),o.onDidScroll=o._scrollable.onDidScroll,o.onDidContentSizeChange=o._scrollable.onDidContentSizeChange,o._updateHeight(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.getScrollable=function(){return this._scrollable.getScrollable()},t.prototype.onHeightMaybeChanged=function(){this._updateHeight()},t.prototype._configureSmoothScrollDuration=function(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(87)?125:0)},t.prototype.onConfigurationChanged=function(e){var t=this._configuration.options;if(e.hasChanged(49)&&this._linesLayout.setLineHeight(t.get(49)),e.hasChanged(107)){var n=t.get(107),i=n.contentWidth,o=n.height,r=this._scrollable.getScrollDimensions(),s=r.scrollWidth\n;this._scrollable.setScrollDimensions(new l(i,r.contentWidth,o,this._getContentHeight(i,o,s)))}else this._updateHeight();e.hasChanged(87)&&this._configureSmoothScrollDuration()},t.prototype.onFlushed=function(e){this._linesLayout.onFlushed(e)},t.prototype.onLinesDeleted=function(e,t){this._linesLayout.onLinesDeleted(e,t)},t.prototype.onLinesInserted=function(e,t){this._linesLayout.onLinesInserted(e,t)},t.prototype._getHorizontalScrollbarHeight=function(e,t){var n=this._configuration.options.get(78);return 2===n.horizontal?0:e>=t?0:n.horizontalScrollbarSize},t.prototype._getContentHeight=function(e,t,n){var i=this._configuration.options,o=this._linesLayout.getLinesTotalHeight();return i.get(80)?o+=t-i.get(49):o+=this._getHorizontalScrollbarHeight(e,n),o},t.prototype._updateHeight=function(){var e=this._scrollable.getScrollDimensions(),t=e.width,n=e.height,i=e.scrollWidth;this._scrollable.setScrollDimensions(new l(t,e.contentWidth,n,this._getContentHeight(t,n,i)))},t.prototype.getCurrentViewport=function(){\nvar e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new a.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype.getFutureViewport=function(){var e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new a.Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype._computeContentWidth=function(e){var t=this._configuration.options,n=t.get(108),i=t.get(34);if(n.isViewportWrapping){var o=t.get(107),r=t.get(54);return e>o.contentWidth+i.typicalHalfwidthCharacterWidth&&r.enabled&&\"right\"===r.side?e+o.verticalScrollbarWidth:e}var s=t.get(79)*i.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+s,a)},t.prototype.onMaxLineWidthChanged=function(e){var t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new l(t.width,this._computeContentWidth(e),t.height,t.contentHeight)),this._updateHeight()},t.prototype.saveState=function(){\nvar e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}},t.prototype.changeWhitespace=function(e){return this._linesLayout.changeWhitespace(e)},t.prototype.getVerticalOffsetForLineNumber=function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)},t.prototype.isAfterLines=function(e){return this._linesLayout.isAfterLines(e)},t.prototype.getLineNumberAtVerticalOffset=function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)},t.prototype.getWhitespaceAtVerticalOffset=function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)},t.prototype.getLinesViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)},t.prototype.getLinesViewportDataAtScrollTop=function(e){var t=this._scrollable.getScrollDimensions()\n;return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)},t.prototype.getWhitespaceViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)},t.prototype.getWhitespaces=function(){return this._linesLayout.getWhitespaces()},t.prototype.getContentWidth=function(){return this._scrollable.getScrollDimensions().contentWidth},t.prototype.getScrollWidth=function(){return this._scrollable.getScrollDimensions().scrollWidth},t.prototype.getContentHeight=function(){return this._scrollable.getScrollDimensions().contentHeight},t.prototype.getScrollHeight=function(){return this._scrollable.getScrollDimensions().scrollHeight},t.prototype.getCurrentScrollLeft=function(){return this._scrollable.getCurrentScrollPosition().scrollLeft},t.prototype.getCurrentScrollTop=function(){return this._scrollable.getCurrentScrollPosition().scrollTop},t.prototype.validateScrollPosition=function(e){\nreturn this._scrollable.validateScrollPosition(e)},t.prototype.setScrollPositionNow=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.setScrollPositionSmooth=function(e){this._scrollable.setScrollPositionSmooth(e)},t.prototype.deltaScrollNow=function(e,t){var n=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})},t}(i.Disposable);t.ViewLayout=d})),define(n[374],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this._selection=e,this._isMovingLeft=t,this._cutStartIndex=-1,this._cutEndIndex=-1,this._moved=!1,this._selectionId=null}return e.prototype.getEditOperations=function(e,t){var i=this._selection;if(this._selectionId=t.trackSelection(i),i.startLineNumber===i.endLineNumber&&(!this._isMovingLeft||0!==i.startColumn)&&(this._isMovingLeft||i.endColumn!==e.getLineMaxColumn(i.startLineNumber))){\nvar o,r,s,a=i.selectionStartLineNumber,l=e.getLineContent(a);this._isMovingLeft?(o=l.substring(0,i.startColumn-2),r=l.substring(i.startColumn-1,i.endColumn-1),s=l.substring(i.startColumn-2,i.startColumn-1)+l.substring(i.endColumn-1)):(o=l.substring(0,i.startColumn-1)+l.substring(i.endColumn-1,i.endColumn),r=l.substring(i.startColumn-1,i.endColumn-1),s=l.substring(i.endColumn));var u=o+r+s;t.addEditOperation(new n.Range(a,1,a,e.getLineMaxColumn(a)),null),t.addEditOperation(new n.Range(a,1,a,1),u),this._cutStartIndex=i.startColumn+(this._isMovingLeft?-1:1),this._cutEndIndex=this._cutStartIndex+i.endColumn-i.startColumn,this._moved=!0}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moved&&(n=(n=n.setStartPosition(n.startLineNumber,this._cutStartIndex)).setEndPosition(n.startLineNumber,this._cutEndIndex)),n},e}();t.MoveCaretCommand=i})),define(n[111],i([0,1,5]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var i=function(){function e(e){this.value=e}return e.prototype.equals=function(e){return this.value===e.value},e.prototype.contains=function(t){return this.equals(t)||\"\"===this.value||n.startsWith(t.value,this.value+e.sep)},e.prototype.intersects=function(e){return this.contains(e)||e.contains(this)},e.prototype.append=function(t){return new e(this.value+e.sep+t)},e.sep=\".\",e.None=new e(\"@@none@@\"),e.Empty=new e(\"\"),e.QuickFix=new e(\"quickfix\"),e.Refactor=new e(\"refactor\"),e.Source=new e(\"source\"),e.SourceOrganizeImports=e.Source.append(\"organizeImports\"),e.SourceFixAll=e.Source.append(\"fixAll\"),e}();function o(e,t,n){return!!t.contains(e)&&(!n||!t.contains(n))}t.CodeActionKind=i,t.mayIncludeActionsOfKind=function(e,t){return!(e.include&&!e.include.intersects(t))&&((!e.excludes||!e.excludes.some((function(n){return o(t,n,e.include)})))&&!(!e.includeSourceActions&&i.Source.contains(t)))},t.filtersAction=function(e,t){var n=t.kind?new i(t.kind):void 0\n;return!!(!e.include||n&&e.include.contains(n))&&(!(e.excludes&&n&&e.excludes.some((function(t){return o(n,t,e.include)})))&&(!(!e.includeSourceActions&&n&&i.Source.contains(n))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))};var r=function(){function e(e,t,n){this.kind=e,this.apply=t,this.preferred=n}return e.fromUser=function(t,n){return t&&\"object\"==typeof t?new e(e.getKindFromUser(t,n.kind),e.getApplyFromUser(t,n.apply),e.getPreferredUser(t)):new e(n.kind,n.apply,!1)},e.getApplyFromUser=function(e,t){switch(\"string\"==typeof e.apply?e.apply.toLowerCase():\"\"){case\"first\":return\"first\";case\"never\":return\"never\";case\"ifsingle\":return\"ifSingle\";default:return t}},e.getKindFromUser=function(e,t){return\"string\"==typeof e.kind?new i(e.kind):t},e.getPreferredUser=function(e){return\"boolean\"==typeof e.preferred&&e.preferred},e}();t.CodeActionCommandArgs=r})),define(n[375],i([0,1,4]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,i){\nthis.presentationIndex=i,this._onColorFlushed=new n.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new n.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new n.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}return Object.defineProperty(e.prototype,\"color\",{get:function(){return this._color},set:function(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"presentation\",{get:function(){return this.colorPresentations[this.presentationIndex]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"colorPresentations\",{get:function(){return this._colorPresentations},set:function(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)},enumerable:!0,configurable:!0}),\ne.prototype.selectNextColorPresentation=function(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)},e.prototype.guessColorPresentation=function(e,t){for(var n=0;n<this.colorPresentations.length;n++)if(t===this.colorPresentations[n].label){this.presentationIndex=n,this._onDidChangePresentation.fire(this.presentation);break}},e.prototype.flushColor=function(){this._onColorFlushed.fire(this._color)},e}();t.ColorPickerModel=i})),define(n[196],i([0,1,58,13,3,22,41]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this._selection=e,this._insertSpace=t,this._usedEndToken=null}return e._haystackHasNeedleAtOffset=function(e,t,n){if(n<0)return!1;var i=t.length;if(n+i>e.length)return!1;for(var o=0;o<i;o++){var r=e.charCodeAt(n+o),s=t.charCodeAt(o);if(r!==s&&!(r>=65&&r<=90&&r+32===s||s>=65&&s<=90&&s+32===r))return!1}return!0},\ne.prototype._createOperationsForBlockComment=function(t,n,i,r,s,a){var l,u=t.startLineNumber,d=t.startColumn,c=t.endLineNumber,h=t.endColumn,p=s.getLineContent(u),g=s.getLineContent(c),f=p.lastIndexOf(n,d-1+n.length),m=g.indexOf(i,h-1-i.length);if(-1!==f&&-1!==m)if(u===c){p.substring(f+n.length,m).indexOf(i)>=0&&(f=-1,m=-1)}else{var v=p.substring(f+n.length),_=g.substring(0,m);(v.indexOf(i)>=0||_.indexOf(i)>=0)&&(f=-1,m=-1)}-1!==f&&-1!==m?(r&&f+n.length<p.length&&32===p.charCodeAt(f+n.length)&&(n+=\" \"),r&&m>0&&32===g.charCodeAt(m-1)&&(i=\" \"+i,m-=1),l=e._createRemoveBlockCommentOperations(new o.Range(u,f+n.length+1,c,m+1),n,i)):(l=e._createAddBlockCommentOperations(t,n,i,this._insertSpace),this._usedEndToken=1===l.length?i:null);for(var y=0,C=l;y<C.length;y++){var b=C[y];a.addTrackedEditOperation(b.range,b.text)}},e._createRemoveBlockCommentOperations=function(e,t,i){var r=[]\n;return o.Range.isEmpty(e)?r.push(n.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(r.push(n.EditOperation.delete(new o.Range(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),r.push(n.EditOperation.delete(new o.Range(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),r},e._createAddBlockCommentOperations=function(e,t,r,s){var a=[];return o.Range.isEmpty(e)?a.push(n.EditOperation.replace(new o.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+\"  \"+r)):(a.push(n.EditOperation.insert(new i.Position(e.startLineNumber,e.startColumn),t+(s?\" \":\"\"))),a.push(n.EditOperation.insert(new i.Position(e.endLineNumber,e.endColumn),(s?\" \":\"\")+r))),a},e.prototype.getEditOperations=function(e,t){var n=this._selection.startLineNumber,i=this._selection.startColumn;e.tokenizeIfCheap(n);var o=e.getLanguageIdAtPosition(n,i),r=s.LanguageConfigurationRegistry.getComments(o)\n;r&&r.blockCommentStartToken&&r.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,r.blockCommentStartToken,r.blockCommentEndToken,this._insertSpace,e,t)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations();if(2===n.length){var i=n[0],o=n[1];return new r.Selection(i.range.endLineNumber,i.range.endColumn,o.range.startLineNumber,o.range.startColumn)}var s=n[0].range,a=this._usedEndToken?-this._usedEndToken.length-1:0;return new r.Selection(s.endLineNumber,s.endColumn+a,s.endLineNumber,s.endColumn+a)},e}();t.BlockCommentCommand=a})),define(n[376],i([0,1,5,58,13,3,22,41,196]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t,n,i){this._selection=e,this._tabSize=t,this._type=n,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1}return e._gatherPreflightCommentStrings=function(e,t,n){e.tokenizeIfCheap(t)\n;var i=e.getLanguageIdAtPosition(t,1),o=a.LanguageConfigurationRegistry.getComments(i),r=o?o.lineCommentToken:null;if(!r)return null;for(var s=[],l=0,u=n-t+1;l<u;l++)s[l]={ignore:!1,commentStr:r,commentStrOffset:0,commentStrLength:r.length};return s},e._analyzeLines=function(e,t,i,o,r){var s,a=!0;s=0===e||1!==e;for(var u=0,d=o.length;u<d;u++){var c=o[u],h=r+u,p=i.getLineContent(h),g=n.firstNonWhitespaceIndex(p);if(-1!==g){if(a=!1,c.ignore=!1,c.commentStrOffset=g,s&&!l.BlockCommentCommand._haystackHasNeedleAtOffset(p,c.commentStr,g)&&(0===e?s=!1:1===e||(c.ignore=!0)),s&&t){var f=g+c.commentStrLength;f<p.length&&32===p.charCodeAt(f)&&(c.commentStrLength+=1)}}else c.ignore=!0,c.commentStrOffset=p.length}if(0===e&&a){s=!1;for(u=0,d=o.length;u<d;u++)o[u].ignore=!1}return{supported:!0,shouldRemoveComments:s,lines:o}},e._gatherPreflightData=function(t,n,i,o,r){var s=e._gatherPreflightCommentStrings(i,o,r);return null===s?{supported:!1}:e._analyzeLines(t,n,i,s,o)},e.prototype._executeLineComments=function(t,n,i,r){\nvar s;i.shouldRemoveComments?s=e._createRemoveLineCommentsOperations(i.lines,r.startLineNumber):(e._normalizeInsertionPoint(t,i.lines,r.startLineNumber,this._tabSize),s=this._createAddLineCommentsOperations(i.lines,r.startLineNumber));for(var a=new o.Position(r.positionLineNumber,r.positionColumn),l=0,u=s.length;l<u;l++){if(n.addEditOperation(s[l].range,s[l].text),s[l].range.isEmpty()&&s[l].range.getStartPosition().equals(a))t.getLineContent(a.lineNumber).length+1===a.column&&(this._deltaColumn=(s[l].text||\"\").length)}this._selectionId=n.trackSelection(r)},e.prototype._attemptRemoveBlockComment=function(e,t,n,i){var o=t.startLineNumber,s=t.endLineNumber,a=i.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn),u=e.getLineContent(o).lastIndexOf(n,a-1),d=e.getLineContent(s).indexOf(i,t.endColumn-1-n.length);return-1!==u&&-1===d&&(d=e.getLineContent(o).indexOf(i,u+n.length),s=o),-1===u&&-1!==d&&(u=e.getLineContent(s).lastIndexOf(n,d),o=s),\n!t.isEmpty()||-1!==u&&-1!==d||-1!==(u=e.getLineContent(o).indexOf(n))&&(d=e.getLineContent(o).indexOf(i,u+n.length)),-1!==u&&32===e.getLineContent(o).charCodeAt(u+n.length)&&(n+=\" \"),-1!==d&&32===e.getLineContent(s).charCodeAt(d-1)&&(i=\" \"+i,d-=1),-1!==u&&-1!==d?l.BlockCommentCommand._createRemoveBlockCommentOperations(new r.Range(o,u+n.length+1,s,d+1),n,i):null},e.prototype._executeBlockComment=function(e,t,i){e.tokenizeIfCheap(i.startLineNumber);var o=e.getLanguageIdAtPosition(i.startLineNumber,1),s=a.LanguageConfigurationRegistry.getComments(o);if(s&&s.blockCommentStartToken&&s.blockCommentEndToken){var u=s.blockCommentStartToken,d=s.blockCommentEndToken,c=this._attemptRemoveBlockComment(e,i,u,d);if(!c){if(i.isEmpty()){var h=e.getLineContent(i.startLineNumber),p=n.firstNonWhitespaceIndex(h);-1===p&&(p=h.length),c=l.BlockCommentCommand._createAddBlockCommentOperations(new r.Range(i.startLineNumber,p+1,i.startLineNumber,h.length+1),u,d,this._insertSpace)\n}else c=l.BlockCommentCommand._createAddBlockCommentOperations(new r.Range(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),u,d,this._insertSpace);1===c.length&&(this._deltaColumn=u.length+1)}this._selectionId=t.trackSelection(i);for(var g=0,f=c;g<f.length;g++){var m=f[g];t.addEditOperation(m.range,m.text)}}},e.prototype.getEditOperations=function(t,n){var i=this._selection;this._moveEndPositionDown=!1,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,t.getLineMaxColumn(i.endLineNumber-1)));var o=e._gatherPreflightData(this._type,this._insertSpace,t,i.startLineNumber,i.endLineNumber);return o.supported?this._executeLineComments(t,n,o,i):this._executeBlockComment(t,n,i)},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),\nnew s.Selection(n.selectionStartLineNumber,n.selectionStartColumn+this._deltaColumn,n.positionLineNumber,n.positionColumn+this._deltaColumn)},e._createRemoveLineCommentsOperations=function(e,t){for(var n=[],o=0,s=e.length;o<s;o++){var a=e[o];a.ignore||n.push(i.EditOperation.delete(new r.Range(t+o,a.commentStrOffset+1,t+o,a.commentStrOffset+a.commentStrLength+1)))}return n},e.prototype._createAddLineCommentsOperations=function(e,t){for(var n=[],r=this._insertSpace?\" \":\"\",s=0,a=e.length;s<a;s++){var l=e[s];l.ignore||n.push(i.EditOperation.insert(new o.Position(t+s,l.commentStrOffset+1),l.commentStr+r))}return n},e.nextVisibleColumn=function(e,t,n,i){return n?e+(t-e%t):e+i},e._normalizeInsertionPoint=function(t,n,i,o){for(var r,s,a=1073741824,l=0,u=n.length;l<u;l++)if(!n[l].ignore){for(var d=t.getLineContent(i+l),c=0,h=0,p=n[l].commentStrOffset;c<a&&h<p;h++)c=e.nextVisibleColumn(c,o,9===d.charCodeAt(h),1);c<a&&(a=c)}a=Math.floor(a/o)*o;for(l=0,u=n.length;l<u;l++)if(!n[l].ignore){d=t.getLineContent(i+l),c=0\n;for(r=0,s=n[l].commentStrOffset;c<a&&r<s;r++)c=e.nextVisibleColumn(c,o,9===d.charCodeAt(r),1);n[l].commentStrOffset=c>a?r-1:r}},e}();t.LineCommentCommand=u})),define(n[377],i([0,1,22,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,n){this.selection=e,this.targetPosition=t,this.copy=n,this.targetSelection=null}return e.prototype.getEditOperations=function(e,t){var o=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new i.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),o),\n!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new n.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber<this.selection.endLineNumber?this.targetSelection=new n.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,\nthis.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new n.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn):this.targetSelection=this.selection},e.prototype.computeCursorState=function(e,t){return this.targetSelection},e}();t.DragAndDropCommand=o})),define(n[378],i([0,1,4,2,3]),(function(e,t,n,i,o){\"use strict\";function s(e,t){return 1===e||2!==e&&t}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(){var t=e.call(this)||this;return t._onFindReplaceStateChange=t._register(new n.Emitter),t.onFindReplaceStateChange=t._onFindReplaceStateChange.event,t._searchString=\"\",\nt._replaceString=\"\",t._isRevealed=!1,t._isReplaceRevealed=!1,t._isRegex=!1,t._isRegexOverride=0,t._wholeWord=!1,t._wholeWordOverride=0,t._matchCase=!1,t._matchCaseOverride=0,t._preserveCase=!1,t._preserveCaseOverride=0,t._searchScope=null,t._matchesPosition=0,t._matchesCount=0,t._currentMatch=null,t}return r(t,e),Object.defineProperty(t.prototype,\"searchString\",{get:function(){return this._searchString},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"replaceString\",{get:function(){return this._replaceString},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isRevealed\",{get:function(){return this._isRevealed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isReplaceRevealed\",{get:function(){return this._isReplaceRevealed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isRegex\",{get:function(){return s(this._isRegexOverride,this._isRegex)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"wholeWord\",{get:function(){\nreturn s(this._wholeWordOverride,this._wholeWord)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"matchCase\",{get:function(){return s(this._matchCaseOverride,this._matchCase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"preserveCase\",{get:function(){return s(this._preserveCaseOverride,this._preserveCase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualIsRegex\",{get:function(){return this._isRegex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualWholeWord\",{get:function(){return this._wholeWord},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualMatchCase\",{get:function(){return this._matchCase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"actualPreserveCase\",{get:function(){return this._preserveCase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"searchScope\",{get:function(){return this._searchScope},enumerable:!0,configurable:!0}),\nObject.defineProperty(t.prototype,\"matchesPosition\",{get:function(){return this._matchesPosition},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"matchesCount\",{get:function(){return this._matchesCount},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"currentMatch\",{get:function(){return this._currentMatch},enumerable:!0,configurable:!0}),t.prototype.changeMatchInfo=function(e,t,n){var i={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},r=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,i.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,i.matchesCount=!0,r=!0),void 0!==n&&(o.Range.equalsRange(this._currentMatch,n)||(this._currentMatch=n,i.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(i)},t.prototype.change=function(e,t,n){\nvoid 0===n&&(n=!0);var i={moveCursor:t,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},r=!1,s=this.isRegex,a=this.wholeWord,l=this.matchCase,u=this.preserveCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,i.searchString=!0,r=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,i.replaceString=!0,r=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,i.isRevealed=!0,r=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,i.isReplaceRevealed=!0,r=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),\nvoid 0!==e.preserveCase&&(this._preserveCase=e.preserveCase),void 0!==e.searchScope&&(o.Range.equalsRange(this._searchScope,e.searchScope)||(this._searchScope=e.searchScope,i.searchScope=!0,r=!0)),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride=void 0!==e.preserveCaseOverride?e.preserveCaseOverride:0,s!==this.isRegex&&(r=!0,i.isRegex=!0),a!==this.wholeWord&&(r=!0,i.wholeWord=!0),l!==this.matchCase&&(r=!0,i.matchCase=!0),u!==this.preserveCase&&(r=!0,i.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(i)},t}(i.Disposable);t.FindReplaceState=a})),define(n[379],i([0,1,3]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){this._editorSelection=e,this._ranges=t,this._replaceStrings=n,this._trackedEditorSelectionId=null}\nreturn e.prototype.getEditOperations=function(e,t){if(this._ranges.length>0){for(var i=[],o=0;o<this._ranges.length;o++)i.push({range:this._ranges[o],text:this._replaceStrings[o]});i.sort((function(e,t){return n.Range.compareRangesUsingStarts(e.range,t.range)}));var r=[],s=i[0];for(o=1;o<i.length;o++)s.range.endLineNumber===i[o].range.startLineNumber&&s.range.endColumn===i[o].range.startColumn?(s.range=s.range.plusRange(i[o].range),s.text=s.text+i[o].text):(r.push(s),s=i[o]);r.push(s);for(var a=0,l=r;a<l.length;a++){var u=l[a];t.addEditOperation(u.range,u.text)}}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)},e}();t.ReplaceAllCommand=i})),define(n[380],i([0,1,247]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){this.staticValue=e,this.kind=0},o=function(e){this.pieces=e,this.kind=1},r=function(){function e(e){\ne&&0!==e.length?1===e.length&&null!==e[0].staticValue?this._state=new i(e[0].staticValue):this._state=new o(e):this._state=new i(\"\")}return e.fromStaticValue=function(t){return new e([s.staticValue(t)])},Object.defineProperty(e.prototype,\"hasReplacementPatterns\",{get:function(){return 1===this._state.kind},enumerable:!0,configurable:!0}),e.prototype.buildReplaceString=function(t,i){if(0===this._state.kind)return i?n.buildReplaceStringWithCasePreserved(t,this._state.staticValue):this._state.staticValue;for(var o=\"\",r=0,s=this._state.pieces.length;r<s;r++){var a=this._state.pieces[r];null===a.staticValue?o+=e._substitute(a.matchIndex,t):o+=a.staticValue}return o},e._substitute=function(e,t){if(null===t)return\"\";if(0===e)return t[0];for(var n=\"\";e>0;){if(e<t.length)return(t[e]||\"\")+n;n=String(e%10)+n,e=Math.floor(e/10)}return\"$\"+n},e}();t.ReplacePattern=r;var s=function(){function e(e,t){this.staticValue=e,this.matchIndex=t}return e.staticValue=function(t){return new e(t,-1)},e.matchIndex=function(t){\nreturn new e(null,t)},e}();t.ReplacePiece=s;var a=function(){function e(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=\"\"}return e.prototype.emitUnchanged=function(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e},e.prototype.emitStatic=function(e,t){this._emitStatic(e),this._lastCharIndex=t},e.prototype._emitStatic=function(e){0!==e.length&&(this._currentStaticPiece+=e)},e.prototype.emitMatchIndex=function(e,t){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=s.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),this._result[this._resultLen++]=s.matchIndex(e),this._lastCharIndex=t},e.prototype.finalize=function(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=s.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),new r(this._result)},e}();t.parseReplaceString=function(e){\nif(!e||0===e.length)return new r(null);for(var t=new a(e),n=0,i=e.length;n<i;n++){var o=e.charCodeAt(n);if(92!==o){if(36===o){if(++n>=i)break;if(36===(u=e.charCodeAt(n))){t.emitUnchanged(n-1),t.emitStatic(\"$\",n+1);continue}if(48===u||38===u){t.emitUnchanged(n-1),t.emitMatchIndex(0,n+1);continue}if(49<=u&&u<=57){var s=u-48;if(n+1<i){var l=e.charCodeAt(n+1);if(48<=l&&l<=57){n++,s=10*s+(l-48),t.emitUnchanged(n-2),t.emitMatchIndex(s,n+1);continue}}t.emitUnchanged(n-1),t.emitMatchIndex(s,n+1);continue}}}else{if(++n>=i)break;var u;switch(u=e.charCodeAt(n)){case 92:t.emitUnchanged(n-1),t.emitStatic(\"\\\\\",n+1);break;case 110:t.emitUnchanged(n-1),t.emitStatic(\"\\n\",n+1);break;case 116:t.emitUnchanged(n-1),t.emitStatic(\"\\t\",n+1)}}}return t.finalize()}})),define(n[150],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.MAX_FOLDING_REGIONS=65535,t.MAX_LINE_NUMBER=16777215;var n=function(){function e(e,n,i){\nif(e.length!==n.length||e.length>t.MAX_FOLDING_REGIONS)throw new Error(\"invalid startIndexes or endIndexes size\");this._startIndexes=e,this._endIndexes=n,this._collapseStates=new Uint32Array(Math.ceil(e.length/32)),this._types=i,this._parentsComputed=!1}return e.prototype.ensureParentIndices=function(){var e=this;if(!this._parentsComputed){this._parentsComputed=!0;for(var n=[],i=function(t,i){var o=n[n.length-1];return e.getStartLineNumber(o)<=t&&e.getEndLineNumber(o)>=i},o=0,r=this._startIndexes.length;o<r;o++){var s=this._startIndexes[o],a=this._endIndexes[o];if(s>t.MAX_LINE_NUMBER||a>t.MAX_LINE_NUMBER)throw new Error(\"startLineNumber or endLineNumber must not exceed \"+t.MAX_LINE_NUMBER);for(;n.length>0&&!i(s,a);)n.pop();var l=n.length>0?n[n.length-1]:-1;n.push(o),this._startIndexes[o]=s+((255&l)<<24),this._endIndexes[o]=a+((65280&l)<<16)}}},Object.defineProperty(e.prototype,\"length\",{get:function(){return this._startIndexes.length},enumerable:!0,configurable:!0}),e.prototype.getStartLineNumber=function(e){\nreturn this._startIndexes[e]&t.MAX_LINE_NUMBER},e.prototype.getEndLineNumber=function(e){return this._endIndexes[e]&t.MAX_LINE_NUMBER},e.prototype.getType=function(e){return this._types?this._types[e]:void 0},e.prototype.hasTypes=function(){return!!this._types},e.prototype.isCollapsed=function(e){var t=e/32|0,n=e%32;return 0!=(this._collapseStates[t]&1<<n)},e.prototype.setCollapsed=function(e,t){var n=e/32|0,i=e%32,o=this._collapseStates[n];this._collapseStates[n]=t?o|1<<i:o&~(1<<i)},e.prototype.toRegion=function(e){return new i(this,e)},e.prototype.getParentIndex=function(e){this.ensureParentIndices();var n=((4278190080&this._startIndexes[e])>>>24)+((4278190080&this._endIndexes[e])>>>16);return n===t.MAX_FOLDING_REGIONS?-1:n},e.prototype.contains=function(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t},e.prototype.findIndex=function(e){var t=0,n=this._startIndexes.length;if(0===n)return-1;for(;t<n;){var i=Math.floor((t+n)/2);e<this.getStartLineNumber(i)?n=i:t=i+1}return t-1},\ne.prototype.findRange=function(e){var t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1},e.prototype.toString=function(){for(var e=[],t=0;t<this.length;t++)e[t]=\"[\"+(this.isCollapsed(t)?\"+\":\"-\")+\"] \"+this.getStartLineNumber(t)+\"/\"+this.getEndLineNumber(t);return e.join(\", \")},e}();t.FoldingRegions=n;var i=function(){function e(e,t){this.ranges=e,this.index=t}return Object.defineProperty(e.prototype,\"startLineNumber\",{get:function(){return this.ranges.getStartLineNumber(this.index)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"endLineNumber\",{get:function(){return this.ranges.getEndLineNumber(this.index)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"regionIndex\",{get:function(){return this.index},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"parentIndex\",{get:function(){return this.ranges.getParentIndex(this.index)},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCollapsed\",{get:function(){return this.ranges.isCollapsed(this.index)},enumerable:!0,configurable:!0}),e.prototype.containedBy=function(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber},e.prototype.containsLine=function(e){return this.startLineNumber<=e&&e<=this.endLineNumber},e}();t.FoldingRegion=i})),define(n[381],i([0,1,4,150]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this._updateEventEmitter=new n.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new i.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return Object.defineProperty(e.prototype,\"regions\",{get:function(){return this._regions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"textModel\",{get:function(){return this._textModel},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isInitialized\",{get:function(){return this._isInitialized},enumerable:!0,configurable:!0}),e.prototype.toggleCollapseState=function(e){var t=this;if(e.length){var n={};this._decorationProvider.changeDecorations((function(i){for(var o=0,r=e;o<r.length;o++){var s=r[o].regionIndex,a=t._editorDecorationIds[s];if(a&&!n[a]){n[a]=!0;var l=!t._regions.isCollapsed(s);t._regions.setCollapsed(s,l),i.changeDecorationOptions(a,t._decorationProvider.getDecorationOption(l))}}})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}},e.prototype.update=function(e,t){var n=this;void 0===t&&(t=[]);for(var i=[],o=function(o,r){var s=e.getStartLineNumber(o);r&&function(e,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];if(e<r&&r<=n)return!0}return!1}(s,e.getEndLineNumber(o))&&(r=!1),e.setCollapsed(o,r);var a=n._textModel.getLineMaxColumn(s),l={startLineNumber:s,startColumn:a,endLineNumber:s,endColumn:a};i.push({range:l,\noptions:n._decorationProvider.getDecorationOption(r)})},r=0,s=function(){for(;r<n._regions.length;){var e=n._regions.isCollapsed(r);if(r++,e)return r-1}return-1},a=0,l=s();-1!==l&&a<e.length;){var u=this._textModel.getDecorationRange(this._editorDecorationIds[l]);if(u){var d=u.startLineNumber;if(this._textModel.getLineMaxColumn(d)===u.startColumn)for(;a<e.length;){var c=e.getStartLineNumber(a);if(!(d>=c))break;o(a,d===c),a++}}l=s()}for(;a<e.length;)o(a,!1),a++;this._editorDecorationIds=this._decorationProvider.deltaDecorations(this._editorDecorationIds,i),this._regions=e,this._isInitialized=!0,this._updateEventEmitter.fire({model:this})},e.prototype.getMemento=function(){for(var e=[],t=0;t<this._regions.length;t++)if(this._regions.isCollapsed(t)){var n=this._textModel.getDecorationRange(this._editorDecorationIds[t]);if(n){var i=n.startLineNumber,o=n.endLineNumber+this._regions.getEndLineNumber(t)-this._regions.getStartLineNumber(t);e.push({startLineNumber:i,endLineNumber:o})}}if(e.length>0)return e},\ne.prototype.applyMemento=function(e){if(Array.isArray(e)){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n],r=this.getRegionAtLine(o.startLineNumber);r&&!r.isCollapsed&&t.push(r)}this.toggleCollapseState(t)}},e.prototype.dispose=function(){this._decorationProvider.deltaDecorations(this._editorDecorationIds,[])},e.prototype.getAllRegionsAtLine=function(e,t){var n=[];if(this._regions)for(var i=this._regions.findRange(e),o=1;i>=0;){var r=this._regions.toRegion(i);t&&!t(r,o)||n.push(r),o++,i=r.parentIndex}return n},e.prototype.getRegionAtLine=function(e){if(this._regions){var t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null},e.prototype.getRegionsInside=function(e,t){var n=[],i=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length)for(var r=[],s=i,a=this._regions.length;s<a;s++){var l=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;for(;r.length>0&&!l.containedBy(r[r.length-1]);)r.pop();r.push(l),t(l,r.length)&&n.push(l)\n}else for(s=i,a=this._regions.length;s<a;s++){l=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<o))break;t&&!t(l)||n.push(l)}return n},e}();t.FoldingModel=o,t.toggleCollapseState=function(e,t,n){for(var i=[],o=function(n){var o=e.getRegionAtLine(n);if(o){var r=!o.isCollapsed;if(i.push(o),t>1){var s=e.getRegionsInside(o,(function(e,n){return e.isCollapsed!==r&&n<t}));i.push.apply(i,s)}}},r=0,s=n;r<s.length;r++){o(s[r])}e.toggleCollapseState(i)},t.setCollapseStateLevelsDown=function(e,t,n,i){void 0===n&&(n=Number.MAX_VALUE);var o=[];if(i&&i.length>0)for(var r=0,s=i;r<s.length;r++){var a=s[r],l=e.getRegionAtLine(a);if(l&&(l.isCollapsed!==t&&o.push(l),n>1)){var u=e.getRegionsInside(l,(function(e,i){return e.isCollapsed!==t&&i<n}));o.push.apply(o,u)}}else{u=e.getRegionsInside(null,(function(e,i){return e.isCollapsed!==t&&i<n}));o.push.apply(o,u)}e.toggleCollapseState(o)},t.setCollapseStateLevelsUp=function(e,t,n,i){for(var o=[],r=0,s=i;r<s.length;r++){\nvar a=s[r],l=e.getAllRegionsAtLine(a,(function(e,i){return e.isCollapsed!==t&&i<=n}));o.push.apply(o,l)}e.toggleCollapseState(o)},t.setCollapseStateUp=function(e,t,n){for(var i=[],o=0,r=n;o<r.length;o++){var s=r[o],a=e.getAllRegionsAtLine(s,(function(e){return e.isCollapsed!==t}));a.length>0&&i.push(a[0])}e.toggleCollapseState(i)},t.setCollapseStateAtLevel=function(e,t,n,i){var o=e.getRegionsInside(null,(function(e,o){return o===t&&e.isCollapsed!==n&&!i.some((function(t){return e.containsLine(t)}))}));e.toggleCollapseState(o)},t.setCollapseStateForMatchingLines=function(e,t,n){for(var i=e.textModel,o=e.regions,r=[],s=o.length-1;s>=0;s--)if(n!==o.isCollapsed(s)){var a=o.getStartLineNumber(s);t.test(i.getLineContent(a))&&r.push(o.toRegion(s))}e.toggleCollapseState(r)},t.setCollapseStateForType=function(e,t,n){for(var i=e.regions,o=[],r=i.length-1;r>=0;r--)n!==i.isCollapsed(r)&&t===i.getType(r)&&o.push(i.toRegion(r));e.toggleCollapseState(o)}})),define(n[382],i([0,1,4,3,19]),(function(e,t,n,i,o){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e){var t=this;this._updateEventEmitter=new n.Emitter,this._foldingModel=e,this._foldingModelListener=e.onDidChange((function(e){return t.updateHiddenRanges()})),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._updateEventEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hiddenRanges\",{get:function(){return this._hiddenRanges},enumerable:!0,configurable:!0}),e.prototype.updateHiddenRanges=function(){for(var e=!1,t=[],n=0,o=0,r=Number.MAX_VALUE,s=-1,a=this._foldingModel.regions;n<a.length;n++)if(a.isCollapsed(n)){var l=a.getStartLineNumber(n)+1,u=a.getEndLineNumber(n);r<=l&&u<=s||(!e&&o<this._hiddenRanges.length&&this._hiddenRanges[o].startLineNumber===l&&this._hiddenRanges[o].endLineNumber===u?(t.push(this._hiddenRanges[o]),o++):(e=!0,t.push(new i.Range(l,1,u,1))),r=l,s=u)}\n(e||o<this._hiddenRanges.length)&&this.applyHiddenRanges(t)},e.prototype.applyMemento=function(e){if(!Array.isArray(e)||0===e.length)return!1;for(var t=[],n=0,o=e;n<o.length;n++){var r=o[n];if(!r.startLineNumber||!r.endLineNumber)return!1;t.push(new i.Range(r.startLineNumber+1,1,r.endLineNumber,1))}return this.applyHiddenRanges(t),!0},e.prototype.getMemento=function(){return this._hiddenRanges.map((function(e){return{startLineNumber:e.startLineNumber-1,endLineNumber:e.endLineNumber}}))},e.prototype.applyHiddenRanges=function(e){this._hiddenRanges=e,this._updateEventEmitter.fire(e)},e.prototype.hasRanges=function(){return this._hiddenRanges.length>0},e.prototype.isHidden=function(e){return null!==s(this._hiddenRanges,e)},e.prototype.adjustSelections=function(e){for(var t=this,n=!1,i=this._foldingModel.textModel,o=null,r=function(e){return o&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,o)||(o=s(t._hiddenRanges,e)),o?o.startLineNumber-1:null},a=0,l=e.length;a<l;a++){\nvar u=e[a],d=r(u.startLineNumber);d&&(u=u.setStartPosition(d,i.getLineMaxColumn(d)),n=!0);var c=r(u.endLineNumber);c&&(u=u.setEndPosition(c,i.getLineMaxColumn(c)),n=!0),e[a]=u}return n},e.prototype.dispose=function(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)},e}();function s(e,t){var n=o.findFirstInSorted(e,(function(e){return t<e.startLineNumber}))-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}t.HiddenRangeModel=r})),define(n[197],i([0,1,10,150]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=5e3,r={};t.ID_SYNTAX_PROVIDER=\"syntax\";var s=function(){function e(e,n,i){void 0===i&&(i=o),this.editorModel=e,this.providers=n,this.limit=i,this.id=t.ID_SYNTAX_PROVIDER}return e.prototype.compute=function(e){var t=this;return function(e,t,i){var o=null,s=e.map((function(e,s){\nreturn Promise.resolve(e.provideFoldingRanges(t,r,i)).then((function(e){if(!i.isCancellationRequested&&Array.isArray(e)){Array.isArray(o)||(o=[]);for(var n=t.getLineCount(),r=0,a=e;r<a.length;r++){var l=a[r];l.start>0&&l.end>l.start&&l.end<=n&&o.push({start:l.start,end:l.end,rank:s,kind:l.kind})}}}),n.onUnexpectedExternalError)}));return Promise.all(s).then((function(e){return o}))}(this.providers,this.editorModel,e).then((function(e){return e?l(e,t.limit):null}))},e.prototype.dispose=function(){},e}();t.SyntaxRangeProvider=s;var a=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}return e.prototype.add=function(e,t,n,o){if(!(e>i.MAX_LINE_NUMBER||t>i.MAX_LINE_NUMBER)){var r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=o,this._types[r]=n,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}},\ne.prototype.toIndentRanges=function(){if(this._length<=this._foldingRangesLimit){for(var e=new Uint32Array(this._length),t=new Uint32Array(this._length),n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new i.FoldingRegions(e,t,this._types)}var o=0,r=this._nestingLevelCounts.length;for(n=0;n<this._nestingLevelCounts.length;n++){var s=this._nestingLevelCounts[n];if(s){if(s+o>this._foldingRangesLimit){r=n;break}o+=s}}e=new Uint32Array(this._foldingRangesLimit),t=new Uint32Array(this._foldingRangesLimit);for(var a=[],l=(n=0,0);n<this._length;n++){var u=this._nestingLevels[n];(u<r||u===r&&o++<this._foldingRangesLimit)&&(e[l]=this._startIndexes[n],t[l]=this._endIndexes[n],a[l]=this._types[n],l++)}return new i.FoldingRegions(e,t,a)},e}();function l(e,t){for(var n=e.sort((function(e,t){var n=e.start-t.start;return 0===n&&(n=e.rank-t.rank),n})),i=new a(t),o=void 0,r=[],s=0,l=n;s<l.length;s++){var u=l[s];if(o){if(u.start>o.start)if(u.end<=o.end)r.push(o),o=u,\ni.add(u.start,u.end,u.kind&&u.kind.value,r.length);else{if(u.start>o.end){do{o=r.pop()}while(o&&u.start>o.end);o&&r.push(o),o=u}i.add(u.start,u.end,u.kind&&u.kind.value,r.length)}}else o=u,i.add(u.start,u.end,u.kind&&u.kind.value,r.length)}return i.toIndentRanges()}t.RangesCollector=a,t.sanitizeRanges=l})),define(n[383],i([0,1,197]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ID_INIT_PROVIDER=\"init\";var i=function(){function e(e,n,i,o){if(this.editorModel=e,this.id=t.ID_INIT_PROVIDER,n.length){this.decorationIds=e.deltaDecorations([],n.map((function(t){return{range:{startLineNumber:t.startLineNumber,startColumn:0,endLineNumber:t.endLineNumber,endColumn:e.getLineLength(t.endLineNumber)},options:{stickiness:1}}}))),this.timeout=setTimeout(i,o)}}return e.prototype.dispose=function(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),\"number\"==typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},\ne.prototype.compute=function(e){var t=[];if(this.decorationIds)for(var i=0,o=this.decorationIds;i<o.length;i++){var r=o[i],s=this.editorModel.getDecorationRange(r);s&&t.push({start:s.startLineNumber,end:s.endLineNumber,rank:1})}return Promise.resolve(n.sanitizeRanges(t,Number.MAX_VALUE))},e}();t.InitializingRangeProvider=i})),define(n[198],i([0,1,58,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e._handleEolEdits=function(e,t){for(var n=void 0,i=[],o=0,r=t;o<r.length;o++){var s=r[o];\"number\"==typeof s.eol&&(n=s.eol),s.range&&\"string\"==typeof s.text&&i.push(s)}return\"number\"==typeof n&&e.hasModel()&&e.getModel().pushEOL(n),i},e._isFullModelReplaceEdit=function(e,t){if(!e.hasModel())return!1;var n=e.getModel(),i=n.validateRange(t.range);return n.getFullModelRange().equalsRange(i)},e.execute=function(t,o){t.pushUndoStop();var r=e._handleEolEdits(t,o)\n;1===r.length&&e._isFullModelReplaceEdit(t,r[0])?t.executeEdits(\"formatEditsCommand\",r.map((function(e){return n.EditOperation.replace(i.Range.lift(e.range),e.text)}))):t.executeEdits(\"formatEditsCommand\",r.map((function(e){return n.EditOperation.replaceMove(i.Range.lift(e.range),e.text)}))),t.pushUndoStop()},e}();t.FormattingEdit=o})),define(n[199],i([0,1,24,2,4,16]),(function(e,t,n,i,o,s){\"use strict\";function a(e,t){return!!e[t]}Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e,t){this.target=e.target,this.hasTriggerModifier=a(e.event,t.triggerModifier),this.hasSideBySideModifier=a(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=n.isIE||e.event.detail<=1};t.ClickLinkMouseEvent=l;var u=function(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=a(e,t.triggerModifier)};t.ClickLinkKeyboardEvent=u;var d=function(){function e(e,t,n,i){this.triggerKey=e,this.triggerModifier=t,\nthis.triggerSideBySideKey=n,this.triggerSideBySideModifier=i}return e.prototype.equals=function(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier},e}();function c(e){return\"altKey\"===e?s.isMacintosh?new d(57,\"metaKey\",6,\"altKey\"):new d(5,\"ctrlKey\",6,\"altKey\"):s.isMacintosh?new d(6,\"altKey\",57,\"metaKey\"):new d(6,\"altKey\",5,\"ctrlKey\")}t.ClickLinkOptions=d;var h=function(e){function t(t){var n=e.call(this)||this;return n._onMouseMoveOrRelevantKeyDown=n._register(new o.Emitter),n.onMouseMoveOrRelevantKeyDown=n._onMouseMoveOrRelevantKeyDown.event,n._onExecute=n._register(new o.Emitter),n.onExecute=n._onExecute.event,n._onCancel=n._register(new o.Emitter),n.onCancel=n._onCancel.event,n._editor=t,n._opts=c(n._editor.getOption(59)),n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._register(n._editor.onDidChangeConfiguration((function(e){if(e.hasChanged(59)){\nvar t=c(n._editor.getOption(59));if(n._opts.equals(t))return;n._opts=t,n.lastMouseMoveEvent=null,n.hasTriggerKeyOnMouseDown=!1,n._onCancel.fire()}}))),n._register(n._editor.onMouseMove((function(e){return n.onEditorMouseMove(new l(e,n._opts))}))),n._register(n._editor.onMouseDown((function(e){return n.onEditorMouseDown(new l(e,n._opts))}))),n._register(n._editor.onMouseUp((function(e){return n.onEditorMouseUp(new l(e,n._opts))}))),n._register(n._editor.onKeyDown((function(e){return n.onEditorKeyDown(new u(e,n._opts))}))),n._register(n._editor.onKeyUp((function(e){return n.onEditorKeyUp(new u(e,n._opts))}))),n._register(n._editor.onMouseDrag((function(){return n.resetHandler()}))),n._register(n._editor.onDidChangeCursorSelection((function(e){return n.onDidChangeCursorSelection(e)}))),n._register(n._editor.onDidChangeModel((function(e){return n.resetHandler()}))),n._register(n._editor.onDidChangeModelContent((function(){return n.resetHandler()}))),n._register(n._editor.onDidScrollChange((function(e){\n(e.scrollTopChanged||e.scrollLeftChanged)&&n.resetHandler()}))),n}return r(t,e),t.prototype.onDidChangeCursorSelection=function(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this.resetHandler()},t.prototype.onEditorMouseMove=function(e){this.lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])},t.prototype.onEditorMouseDown=function(e){this.hasTriggerKeyOnMouseDown=e.hasTriggerModifier},t.prototype.onEditorMouseUp=function(e){this.hasTriggerKeyOnMouseDown&&this._onExecute.fire(e)},t.prototype.onEditorKeyDown=function(e){this.lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this.lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()},t.prototype.onEditorKeyUp=function(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()},t.prototype.resetHandler=function(){this.lastMouseMoveEvent=null,this.hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()},t}(i.Disposable);t.ClickLinkGesture=h})),\ndefine(n[200],i([0,1,15,10]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t,i,o,r){var s=this;this._computer=e,this._state=0,this._hoverTime=r,this._firstWaitScheduler=new n.RunOnceScheduler((function(){return s._triggerAsyncComputation()}),0),this._secondWaitScheduler=new n.RunOnceScheduler((function(){return s._triggerSyncComputation()}),0),this._loadingMessageScheduler=new n.RunOnceScheduler((function(){return s._showLoadingMessage()}),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=t,this._errorCallback=i,this._progressCallback=o}return e.prototype.setHoverTime=function(e){this._hoverTime=e},e.prototype._firstWaitTime=function(){return this._hoverTime/2},e.prototype._secondWaitTime=function(){return this._hoverTime/2},e.prototype._loadingMessageTime=function(){return 3*this._hoverTime},e.prototype._triggerAsyncComputation=function(){var e=this;this._state=2,\nthis._secondWaitScheduler.schedule(this._secondWaitTime()),this._computer.computeAsync?(this._asyncComputationPromiseDone=!1,this._asyncComputationPromise=n.createCancelablePromise((function(t){return e._computer.computeAsync(t)})),this._asyncComputationPromise.then((function(t){e._asyncComputationPromiseDone=!0,e._withAsyncResult(t)}),(function(t){return e._onError(t)}))):this._asyncComputationPromiseDone=!0},e.prototype._triggerSyncComputation=function(){this._computer.computeSync&&this._computer.onResult(this._computer.computeSync(),!0),this._asyncComputationPromiseDone?(this._state=0,this._onComplete(this._computer.getResult())):(this._state=3,this._onProgress(this._computer.getResult()))},e.prototype._showLoadingMessage=function(){3===this._state&&this._onProgress(this._computer.getResultWithLoadingMessage())},e.prototype._withAsyncResult=function(e){e&&this._computer.onResult(e,!1),3===this._state&&(this._state=0,this._onComplete(this._computer.getResult()))},e.prototype._onComplete=function(e){\nthis._completeCallback&&this._completeCallback(e)},e.prototype._onError=function(e){this._errorCallback?this._errorCallback(e):i.onUnexpectedError(e)},e.prototype._onProgress=function(e){this._progressCallback&&this._progressCallback(e)},e.prototype.start=function(e){if(0===e)0===this._state&&(this._state=1,this._firstWaitScheduler.schedule(this._firstWaitTime()),this._loadingMessageScheduler.schedule(this._loadingMessageTime()));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}},e.prototype.cancel=function(){this._loadingMessageScheduler.cancel(),1===this._state&&this._firstWaitScheduler.cancel(),2===this._state&&(this._secondWaitScheduler.cancel(),this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),this._asyncComputationPromise=null)),3===this._state&&this._asyncComputationPromise&&(this._asyncComputationPromise.cancel(),\nthis._asyncComputationPromise=null),this._state=0},e}();t.HoverOperation=o}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[201],i([0,1,6,53,47]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,n){var o=e.call(this)||this;return o.allowEditorOverflow=!0,o._id=t,o._editor=n,o._isVisible=!1,o._stoleFocus=!1,o._containerDomNode=document.createElement(\"div\"),o._containerDomNode.className=\"monaco-editor-hover hidden\",o._containerDomNode.tabIndex=0,o._domNode=document.createElement(\"div\"),o._domNode.className=\"monaco-editor-hover-content\",o.scrollbar=new i.DomScrollableElement(o._domNode,{}),o._register(o.scrollbar),o._containerDomNode.appendChild(o.scrollbar.getDomNode()),o.onkeydown(o._containerDomNode,(function(e){e.equals(9)&&o.hide()})),\no._register(o._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&o.updateFont()}))),o._editor.onDidLayoutChange((function(e){return o.layout()})),o.layout(),o._editor.addContentWidget(o),o._showAtPosition=null,o._showAtRange=null,o._stoleFocus=!1,o}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._containerDomNode,\"hidden\",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._containerDomNode},t.prototype.showAt=function(e,t,n){this._showAtPosition=e,this._showAtRange=t,this.isVisible=!0,this._editor.layoutContentWidget(this),this._editor.render(),this._stoleFocus=n,n&&this._containerDomNode.focus()},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1,this._editor.layoutContentWidget(this),this._stoleFocus&&this._editor.focus())},t.prototype.getPosition=function(){return this.isVisible?{\nposition:this._showAtPosition,range:this._showAtRange,preference:[1,2]}:null},t.prototype.dispose=function(){this._editor.removeContentWidget(this),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this;Array.prototype.slice.call(this._domNode.getElementsByClassName(\"code\")).forEach((function(t){return e._editor.applyFontInfo(t)}))},t.prototype.updateContents=function(e){this._domNode.textContent=\"\",this._domNode.appendChild(e),this.updateFont(),this._editor.layoutContentWidget(this),this.onContentsChange()},t.prototype.onContentsChange=function(){this.scrollbar.scanDomNode()},t.prototype.layout=function(){var e=Math.max(this._editor.getLayoutInfo().height/4,250),t=this._editor.getOption(34),n=t.fontSize,i=t.lineHeight;this._domNode.style.fontSize=n+\"px\",this._domNode.style.lineHeight=i+\"px\",this._domNode.style.maxHeight=e+\"px\",this._domNode.style.maxWidth=Math.max(.66*this._editor.getLayoutInfo().width,500)+\"px\"},t}(o.Widget);t.ContentHoverWidget=s;var l=function(e){function t(t,n){\nvar i=e.call(this)||this;return i._id=t,i._editor=n,i._isVisible=!1,i._domNode=document.createElement(\"div\"),i._domNode.className=\"monaco-editor-hover hidden\",i._domNode.setAttribute(\"aria-hidden\",\"true\"),i._domNode.setAttribute(\"role\",\"presentation\"),i._showAtLineNumber=-1,i._register(i._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&i.updateFont()}))),i._editor.addOverlayWidget(i),i}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._isVisible},set:function(e){this._isVisible=e,n.toggleClass(this._domNode,\"hidden\",!this._isVisible)},enumerable:!0,configurable:!0}),t.prototype.getId=function(){return this._id},t.prototype.getDomNode=function(){return this._domNode},t.prototype.showAt=function(e){this._showAtLineNumber=e,this.isVisible||(this.isVisible=!0);var t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(this._showAtLineNumber),i=this._editor.getScrollTop(),o=this._editor.getOption(49),r=n-i-(this._domNode.clientHeight-o)/2\n;this._domNode.style.left=t.glyphMarginLeft+t.glyphMarginWidth+\"px\",this._domNode.style.top=Math.max(Math.round(r),0)+\"px\"},t.prototype.hide=function(){this.isVisible&&(this.isVisible=!1)},t.prototype.getPosition=function(){return null},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.updateFont=function(){var e=this,t=Array.prototype.slice.call(this._domNode.getElementsByTagName(\"code\")),n=Array.prototype.slice.call(this._domNode.getElementsByClassName(\"code\"));a(t,n).forEach((function(t){return e._editor.applyFontInfo(t)}))},t.prototype.updateContents=function(e){this._domNode.textContent=\"\",this._domNode.appendChild(e),this.updateFont()},t}(o.Widget);t.GlyphHoverWidget=l})),define(n[384],i([0,1,22]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){this._editRange=e,this._originalSelection=t,this._text=n}return e.prototype.getEditOperations=function(e,t){\nt.addTrackedEditOperation(this._editRange,this._text)},e.prototype.computeCursorState=function(e,t){var i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new n.Selection(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new n.Selection(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)},e}();t.InPlaceReplaceCommand=i})),define(n[385],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getSpaceCnt=function(e,t){for(var n=0,i=0;i<e.length;i++)\"\\t\"===e.charAt(i)?n+=t:n++;return n},t.generateIndent=function(e,t,n){e=e<0?0:e;var i=\"\";if(!n){var o=Math.floor(e/t);e%=t;for(var r=0;r<o;r++)i+=\"\\t\"}for(r=0;r<e;r++)i+=\" \";return i}})),define(n[386],i([0,1,3,22]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this._selection=e,this._isCopyingDown=t,\nthis._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}return e.prototype.getEditOperations=function(e,t){var i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));for(var o=[],r=i.startLineNumber;r<=i.endLineNumber;r++)o.push(e.getLineContent(r));var s=o.join(\"\\n\");\"\"===s&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._isCopyingDown?t.addEditOperation(new n.Range(i.startLineNumber,1,i.startLineNumber,1),s+\"\\n\"):t.addEditOperation(new n.Range(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),\"\\n\"+s),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId)\n;if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){var o=n.startLineNumber,r=n.startColumn,s=n.endLineNumber,a=n.endColumn;0!==this._startLineNumberDelta&&(o+=this._startLineNumberDelta,r=1),0!==this._endLineNumberDelta&&(s+=this._endLineNumberDelta,a=1),n=i.Selection.createWithDirection(o,r,s,a,this._selectionDirection)}return n},e}();t.CopyLinesCommand=o})),define(n[387],i([0,1,58,3]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){this.selection=e,this.descending=t,this.selectionId=null}return e.getCollator=function(){return e._COLLATOR||(e._COLLATOR=new Intl.Collator),e._COLLATOR},e.prototype.getEditOperations=function(e,t){var o=function(e,t,o){var s=r(e,t,o);if(!s)return null;return n.EditOperation.replace(new i.Range(s.startLineNumber,1,s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),s.after.join(\"\\n\"))}(e,this.selection,this.descending);o&&t.addEditOperation(o.range,o.text),\nthis.selectionId=t.trackSelection(this.selection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this.selectionId)},e.canRun=function(e,t,n){if(null===e)return!1;var i=r(e,t,n);if(!i)return!1;for(var o=0,s=i.before.length;o<s;o++)if(i.before[o]!==i.after[o])return!0;return!1},e._COLLATOR=null,e}();function r(e,t,n){var i=t.startLineNumber,r=t.endLineNumber;if(1===t.endColumn&&r--,i>=r)return null;for(var s=[],a=i;a<=r;a++)s.push(e.getLineContent(a));var l=s.slice(0);return l.sort(o.getCollator().compare),!0===n&&(l=l.reverse()),{startLineNumber:i,endLineNumber:r,before:s,after:l}}t.SortLinesCommand=o})),define(n[202],i([0,1,13,3,76]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.prototype.provideSelectionRanges=function(t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,a;return c(this,(function(l){switch(l.label){case 0:i=[],o=function(n){var o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn o=[],i.push(o),r=new Map,[4,new Promise((function(i){return e._bracketsRightYield(i,0,t,n,r)}))];case 1:return s.sent(),[4,new Promise((function(i){return e._bracketsLeftYield(i,0,t,n,r,o)}))];case 2:return s.sent(),[2]}}))},r=0,s=n,l.label=1;case 1:return r<s.length?(a=s[r],[5,o(a)]):[3,4];case 2:l.sent(),l.label=3;case 3:return r++,[3,1];case 4:return[2,i]}}))}))},e._bracketsRightYield=function(t,n,i,r,s){for(var a=new Map,l=Date.now();;){if(n>=e._maxRounds){t();break}if(!r){t();break}var u=i.findNextBracket(r);if(!u){t();break}if(Date.now()-l>e._maxDuration){setTimeout((function(){return e._bracketsRightYield(t,n+1,i,r,s)}));break}var d=u.close[0];if(u.isOpen){var c=a.has(d)?a.get(d):0;a.set(d,c+1)}else{c=a.has(d)?a.get(d):0;if(c-=1,a.set(d,Math.max(0,c)),c<0){var h=s.get(d);h||(h=new o.LinkedList,s.set(d,h)),h.push(u.range)}}r=u.range.getEndPosition()}},e._bracketsLeftYield=function(t,n,o,r,s,a){for(var l=new Map,u=Date.now();;){if(n>=e._maxRounds&&0===s.size){t();break}if(!r){t();break}\nvar d=o.findPrevBracket(r);if(!d){t();break}if(Date.now()-u>e._maxDuration){setTimeout((function(){return e._bracketsLeftYield(t,n+1,o,r,s,a)}));break}var c=d.close[0];if(d.isOpen){m=l.has(c)?l.get(c):0;if(m-=1,l.set(c,Math.max(0,m)),m<0){var h=s.get(c);if(h){var p=h.shift();0===h.size&&s.delete(c);var g=i.Range.fromPositions(d.range.getEndPosition(),p.getStartPosition()),f=i.Range.fromPositions(d.range.getStartPosition(),p.getEndPosition());a.push({range:g}),a.push({range:f}),e._addBracketLeading(o,f,a)}}}else{var m=l.has(c)?l.get(c):0;l.set(c,m+1)}r=d.range.getStartPosition()}},e._addBracketLeading=function(e,t,o){if(t.startLineNumber!==t.endLineNumber){var r=t.startLineNumber,s=e.getLineFirstNonWhitespaceColumn(r);0!==s&&s!==t.startColumn&&(o.push({range:i.Range.fromPositions(new n.Position(r,s),t.getEndPosition())}),o.push({range:i.Range.fromPositions(new n.Position(r,1),t.getEndPosition())}));var a=r-1;if(a>0){var l=e.getLineFirstNonWhitespaceColumn(a)\n;l===t.startColumn&&l!==e.getLineLastNonWhitespaceColumn(a)&&(o.push({range:i.Range.fromPositions(new n.Position(a,l),t.getEndPosition())}),o.push({range:i.Range.fromPositions(new n.Position(a,1),t.getEndPosition())}))}}},e._maxDuration=30,e._maxRounds=2,e}();t.BracketSelectionRangeProvider=r})),define(n[388],i([0,1,3,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.prototype.provideSelectionRanges=function(e,t){for(var n=[],i=0,o=t;i<o.length;i++){var r=o[i],s=[];n.push(s),this._addInWordRanges(s,e,r),this._addWordRanges(s,e,r),this._addWhitespaceLine(s,e,r),s.push({range:e.getFullModelRange()})}return n},e.prototype._addInWordRanges=function(e,t,o){var r=t.getWordAtPosition(o);if(r){for(var s=r.word,a=r.startColumn,l=o.column-a,u=l,d=l,c=0;u>=0;u--){if(95===(h=s.charCodeAt(u))||45===h)break;if(i.isLowerAsciiLetter(h)&&i.isUpperAsciiLetter(c))break;c=h}for(u+=1;d<s.length;d++){var h=s.charCodeAt(d)\n;if(i.isUpperAsciiLetter(h)&&i.isLowerAsciiLetter(c))break;if(95===h||45===h)break;c=h}u<d&&e.push({range:new n.Range(o.lineNumber,a+u,o.lineNumber,a+d)})}},e.prototype._addWordRanges=function(e,t,i){var o=t.getWordAtPosition(i);o&&e.push({range:new n.Range(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)})},e.prototype._addWhitespaceLine=function(e,t,i){t.getLineLength(i.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(i.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(i.lineNumber)&&e.push({range:new n.Range(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})},e}();t.WordSelectionRangeProvider=o}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[151],i([0,1]),(function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){this.value=\"\",this.pos=0}\nreturn e.isDigitCharacter=function(e){return e>=48&&e<=57},e.isVariableCharacter=function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90},e.prototype.text=function(e){this.value=e,this.pos=0},e.prototype.tokenText=function(e){return this.value.substr(e.pos,e.len)},e.prototype.next=function(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};var t,n=this.pos,i=0,o=this.value.charCodeAt(n);if(\"number\"==typeof(t=e._table[o]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(o)){t=8;do{i+=1,o=this.value.charCodeAt(n+i)}while(e.isDigitCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}}if(e.isVariableCharacter(o)){t=9;do{o=this.value.charCodeAt(n+ ++i)}while(e.isVariableCharacter(o)||e.isDigitCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}}t=10;do{i+=1,o=this.value.charCodeAt(n+i)}while(!isNaN(o)&&void 0===e._table[o]&&!e.isDigitCharacter(o)&&!e.isVariableCharacter(o));return this.pos+=i,{type:t,pos:n,len:i}},e._table=((n={})[36]=0,n[58]=1,n[44]=2,n[123]=3,n[125]=4,n[92]=5,\nn[47]=6,n[124]=7,n[43]=11,n[45]=12,n[63]=13,n),e}();t.Scanner=i;var o=function(){function e(){this._children=[]}return e.prototype.appendChild=function(e){return e instanceof s&&this._children[this._children.length-1]instanceof s?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this},e.prototype.replace=function(e,t){var n=e.parent,i=n.children.indexOf(e),o=n.children.slice(0);o.splice.apply(o,a([i,1],t)),n._children=o,function e(t,n){for(var i=0,o=t;i<o.length;i++){var r=o[i];r.parent=n,e(r.children,r)}}(t,n)},Object.defineProperty(e.prototype,\"children\",{get:function(){return this._children},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"snippet\",{get:function(){for(var e=this;;){if(!e)return;if(e instanceof f)return e;e=e.parent}},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.children.reduce((function(e,t){return e+t.toString()}),\"\")},e.prototype.len=function(){return 0},e}();t.Marker=o;var s=function(e){\nfunction t(t){var n=e.call(this)||this;return n.value=t,n}return r(t,e),t.prototype.toString=function(){return this.value},t.prototype.len=function(){return this.value.length},t.prototype.clone=function(){return new t(this.value)},t}(o);t.Text=s;var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t}(o);t.TransformableMarker=l;var u=function(e){function t(t){var n=e.call(this)||this;return n.index=t,n}return r(t,e),t.compareByIndex=function(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop?-1:e.index<t.index?-1:e.index>t.index?1:0},Object.defineProperty(t.prototype,\"isFinalTabstop\",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"choice\",{get:function(){return 1===this._children.length&&this._children[0]instanceof d?this._children[0]:void 0},enumerable:!0,configurable:!0}),t.prototype.clone=function(){var e=new t(this.index);return this.transform&&(e.transform=this.transform.clone()),\ne._children=this.children.map((function(e){return e.clone()})),e},t}(l);t.Placeholder=u;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.options=[],t}return r(t,e),t.prototype.appendChild=function(e){return e instanceof s&&(e.parent=this,this.options.push(e)),this},t.prototype.toString=function(){return this.options[0].value},t.prototype.len=function(){return this.options[0].len()},t.prototype.clone=function(){var e=new t;return this.options.forEach(e.appendChild,e),e},t}(o);t.Choice=d;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.regexp=new RegExp(\"\"),t}return r(t,e),t.prototype.resolve=function(e){var t=this,n=!1,i=e.replace(this.regexp,(function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!n&&this._children.some((function(e){return e instanceof h&&Boolean(e.elseValue)}))&&(i=this._replace([])),i},t.prototype._replace=function(e){for(var t=\"\",n=0,i=this._children;n<i.length;n++){var o=i[n]\n;if(o instanceof h){var r=e[o.index]||\"\";t+=r=o.resolve(r)}else t+=o.toString()}return t},t.prototype.toString=function(){return\"\"},t.prototype.clone=function(){var e=new t;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?\"i\":\"\")+(this.regexp.global?\"g\":\"\")),e._children=this.children.map((function(e){return e.clone()})),e},t}(o);t.Transform=c;var h=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.index=t,r.shorthandName=n,r.ifValue=i,r.elseValue=o,r}return r(t,e),t.prototype.resolve=function(e){return\"upcase\"===this.shorthandName?e?e.toLocaleUpperCase():\"\":\"downcase\"===this.shorthandName?e?e.toLocaleLowerCase():\"\":\"capitalize\"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):\"\":\"pascalcase\"===this.shorthandName?e?this._toPascalCase(e):\"\":Boolean(e)&&\"string\"==typeof this.ifValue?this.ifValue:Boolean(e)||\"string\"!=typeof this.elseValue?e||\"\":this.elseValue},t.prototype._toPascalCase=function(e){var t=e.match(/[a-z]+/gi);return t?t.map((function(e){\nreturn e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})).join(\"\"):e},t.prototype.clone=function(){return new t(this.index,this.shorthandName,this.ifValue,this.elseValue)},t}(o);t.FormatString=h;var p=function(e){function t(t){var n=e.call(this)||this;return n.name=t,n}return r(t,e),t.prototype.resolve=function(e){var t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||\"\")),void 0!==t&&(this._children=[new s(t)],!0)},t.prototype.clone=function(){var e=new t(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((function(e){return e.clone()})),e},t}(l);function g(e,t){for(var n=a(e);n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,i.children)}}t.Variable=p;var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),Object.defineProperty(t.prototype,\"placeholderInfo\",{get:function(){if(!this._placeholders){var e,t=[];this.walk((function(n){return n instanceof u&&(t.push(n),\ne=!e||e.index<n.index?n:e),!0})),this._placeholders={all:t,last:e}}return this._placeholders},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"placeholders\",{get:function(){return this.placeholderInfo.all},enumerable:!0,configurable:!0}),t.prototype.offset=function(e){var t=0,n=!1;return this.walk((function(i){return i===e?(n=!0,!1):(t+=i.len(),!0)})),n?t:-1},t.prototype.fullLen=function(e){var t=0;return g([e],(function(e){return t+=e.len(),!0})),t},t.prototype.enclosingPlaceholders=function(e){for(var t=[],n=e.parent;n;)n instanceof u&&t.push(n),n=n.parent;return t},t.prototype.resolveVariables=function(e){var t=this;return this.walk((function(n){return n instanceof p&&n.resolve(e)&&(t._placeholders=void 0),!0})),this},t.prototype.appendChild=function(t){return this._placeholders=void 0,e.prototype.appendChild.call(this,t)},t.prototype.replace=function(t,n){return this._placeholders=void 0,e.prototype.replace.call(this,t,n)},t.prototype.clone=function(){var e=new t\n;return this._children=this.children.map((function(e){return e.clone()})),e},t.prototype.walk=function(e){g(this.children,e)},t}(o);t.TextmateSnippet=f;var m=function(){function e(){this._scanner=new i,this._token={type:14,pos:0,len:0}}return e.escape=function(e){return e.replace(/\\$|}|\\\\/g,\"\\\\$&\")},e.prototype.parse=function(e,t,n){this._scanner.text(e),this._token=this._scanner.next();for(var i=new f;this._parse(i););var o=new Map,r=[],s=0;i.walk((function(e){return e instanceof u&&(s+=1,e.isFinalTabstop?o.set(0,void 0):!o.has(e.index)&&e.children.length>0?o.set(e.index,e.children):r.push(e)),!0}));for(var a=0,l=r;a<l.length;a++){var d=l[a],c=o.get(d.index);if(c){var h=new u(d.index);h.transform=d.transform;for(var p=0,g=c;p<g.length;p++){var m=g[p];h.appendChild(m.clone())}i.replace(d,[h])}}return n||(n=s>0&&t),!o.has(0)&&n&&i.appendChild(new u(0)),i},e.prototype._accept=function(e,t){if(void 0===e||this._token.type===e){var n=!t||this._scanner.tokenText(this._token)\n;return this._token=this._scanner.next(),n}return!1},e.prototype._backTo=function(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1},e.prototype._until=function(e){for(var t=this._token;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){var n=this._scanner.next();if(0!==n.type&&4!==n.type&&5!==n.type)return!1}this._token=this._scanner.next()}var i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\\\(\\$|}|\\\\)/g,\"$1\");return this._token=this._scanner.next(),i},e.prototype._parse=function(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)},e.prototype._parseEscaped=function(e){var t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new s(t)),!0)},e.prototype._parseTabstopOrVariableName=function(e){var t,n=this._token\n;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\\d+$/.test(t)?new u(Number(t)):new p(t)),!0):this._backTo(n)},e.prototype._parseComplexPlaceholder=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);var i=new u(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new s(\"${\"+t+\":\")),i.children.forEach(e.appendChild,e),!0}else{if(!(i.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(var o=new d;;){if(this._parseChoiceElement(o)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(o),this._accept(4)))return e.appendChild(i),!0}return this._backTo(n),!1}}},e.prototype._parseChoiceElement=function(e){for(var t=this._token,n=[];2!==this._token.type&&7!==this._token.type;){var i=void 0\n;if(!(i=(i=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||i:this._accept(void 0,!0)))return this._backTo(t),!1;n.push(i)}return 0===n.length?(this._backTo(t),!1):(e.appendChild(new s(n.join(\"\"))),!0)},e.prototype._parseComplexVariable=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);var i=new p(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new s(\"${\"+t+\":\")),i.children.forEach(e.appendChild,e),!0}},e.prototype._parseTransform=function(e){for(var t=new c,n=\"\",i=\"\";!this._accept(6);){var o=void 0;if(o=this._accept(5,!0))n+=o=this._accept(6,!0)||o;else{if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}}for(;!this._accept(6);){o=void 0\n;if(o=this._accept(5,!0))o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new s(o));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}try{t.regexp=new RegExp(n,i)}catch(e){return!1}return e.transform=t,!0},e.prototype._parseFormatString=function(e){var t=this._token;if(!this._accept(0))return!1;var n=!1;this._accept(3)&&(n=!0);var i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!n)return e.appendChild(new h(Number(i))),!0;if(this._accept(4))return e.appendChild(new h(Number(i))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){var o=this._accept(9,!0);return o&&this._accept(4)?(e.appendChild(new h(Number(i),o)),!0):(this._backTo(t),!1)}if(this._accept(11)){if(r=this._until(4))return e.appendChild(new h(Number(i),void 0,r,void 0)),!0}else if(this._accept(12)){if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,void 0,s)),!0}else if(this._accept(13)){var r\n;if(r=this._until(1))if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,r,s)),!0}else{var s;if(s=this._until(4))return e.appendChild(new h(Number(i),void 0,void 0,s)),!0}return this._backTo(t),!1},e.prototype._parseAnything=function(e){return 14!==this._token.type&&(e.appendChild(new s(this._scanner.tokenText(this._token))),this._accept(void 0),!0)},e}();t.SnippetParser=m})),define(n[389],i([0,1,61,5]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e,t){this.leadingLineContent=e,this.characterCountDelta=t};t.LineContext=o;var r=function(){function e(t,n,i,o,r,s){this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=o,this._options=r,this._refilterKind=1,this._lineContext=i,\"top\"===s?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:\"bottom\"===s&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return Object.defineProperty(e.prototype,\"lineContext\",{get:function(){\nreturn this._lineContext},set:function(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"items\",{get:function(){return this._ensureCachedState(),this._filteredItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"incomplete\",{get:function(){return this._ensureCachedState(),this._isIncomplete},enumerable:!0,configurable:!0}),e.prototype.adopt=function(e){for(var t=new Array,n=0;n<this._items.length;)e.has(this._items[n].provider)?n++:(t.push(this._items[n]),this._items[n]=this._items[this._items.length-1],this._items.pop());return this._refilterKind=1,t},Object.defineProperty(e.prototype,\"stats\",{get:function(){return this._ensureCachedState(),this._stats},enumerable:!0,configurable:!0}),\ne.prototype._ensureCachedState=function(){0!==this._refilterKind&&this._createCachedState()},e.prototype._createCachedState=function(){this._isIncomplete=new Set,this._stats={suggestionCount:0,snippetCount:0,textCount:0};for(var e=this._lineContext,t=e.leadingLineContent,o=e.characterCountDelta,r=\"\",s=\"\",a=1===this._refilterKind?this._items:this._filteredItems,l=[],u=!this._options.filterGraceful||a.length>2e3?n.fuzzyScore:n.fuzzyScoreGracefulAggressive,d=0;d<a.length;d++){var c=a[d];c.container.incomplete&&this._isIncomplete.add(c.provider);var h=c.position.column-c.editStart.column,p=h+o-(c.position.column-this._column);if(r.length!==p&&(s=(r=0===p?\"\":t.slice(-p)).toLowerCase()),c.word=r,0===p)c.score=n.FuzzyScore.Default;else{for(var g=0;g<h;){var f=r.charCodeAt(g);if(32!==f&&9!==f)break;g+=1}var m=\"string\"==typeof c.completion.label?c.completion.label:c.completion.label.name;if(g>=p)c.score=n.FuzzyScore.Default;else if(\"string\"==typeof c.completion.filterText){\nif(!(v=u(r,s,g,c.completion.filterText,c.filterTextLow,0,!1)))continue;0===i.compareIgnoreCase(c.completion.filterText,m)?c.score=v:(c.score=n.anyScore(r,s,g,m,c.labelLow,0),c.score[0]=v[0])}else{var v;if(!(v=u(r,s,g,m,c.labelLow,0,!1)))continue;c.score=v}}switch(c.idx=d,c.distance=this._wordDistance.distance(c.position,c.completion),l.push(c),this._stats.suggestionCount++,c.completion.kind){case 25:this._stats.snippetCount++;break;case 18:this._stats.textCount++}}this._filteredItems=l.sort(this._snippetCompareFn),this._refilterKind=0},e._compareCompletionItems=function(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0},e._compareCompletionItemsSnippetsDown=function(t,n){if(t.completion.kind!==n.completion.kind){if(25===t.completion.kind)return 1;if(25===n.completion.kind)return-1}return e._compareCompletionItems(t,n)},e._compareCompletionItemsSnippetsUp=function(t,n){if(t.completion.kind!==n.completion.kind){\nif(25===t.completion.kind)return-1;if(25===n.completion.kind)return 1}return e._compareCompletionItems(t,n)},e}();t.CompletionModel=r})),define(n[390],i([0,1,19,2,79]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n){var o=this;this._disposables=new i.DisposableStore,this._disposables.add(t.onDidShow((function(){return o._onItem(t.getFocusedItem())}))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType((function(i){if(o._active&&!t.isFrozen()){var r=i.charCodeAt(i.length-1);o._active.acceptCharacters.has(r)&&e.getOption(0)&&n(o._active.item)}})))}return e.prototype._onItem=function(e){if(e&&n.isNonEmptyArray(e.item.completion.commitCharacters)){if(!this._active||this._active.item.item!==e.item){for(var t=new o.CharacterSet,i=0,r=e.item.completion.commitCharacters;i<r.length;i++){var s=r[i];s.length>0&&t.add(s.charCodeAt(0))}this._active={\nacceptCharacters:t,item:e}}}else this.reset()},e.prototype.reset=function(){this._active=void 0},e.prototype.dispose=function(){this._disposables.dispose()},e}();t.CommitCharacterController=r})),define(n[391],i([0,1,2,3,4,52]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){var t=this;this._controller=e,this._disposables=new n.DisposableStore,this._decorations=[],this._disposables.add(e.model.onDidSuggest((function(e){if(!e.shy){var n=t._controller.widget.getValue(),i=n.getFocusedItem();i&&t._highlight(i.item),t._widgetListener||(t._widgetListener=n.onDidFocus((function(e){return t._highlight(e.item)})))}}))),this._disposables.add(e.model.onDidCancel((function(){t._reset()})))}return e.prototype.dispose=function(){this._reset(),this._disposables.dispose(),n.dispose(this._widgetListener),n.dispose(this._shiftKeyListener)},e.prototype._reset=function(){this._decorations=this._controller.editor.deltaDecorations(this._decorations,[]),\nthis._shiftKeyListener&&(this._shiftKeyListener.dispose(),this._shiftKeyListener=void 0)},e.prototype._highlight=function(e){var t,n=this;this._currentItem=e;var o=this._controller.editor.getOption(89),r=[];if(o.insertHighlight){this._shiftKeyListener||(this._shiftKeyListener=l.event((function(){return n._highlight(n._currentItem)})));var s=this._controller.getOverwriteInfo(e,l.isPressed),a=this._controller.editor.getPosition();if(\"insert\"===o.insertMode&&s.overwriteAfter>0)r=[{range:new i.Range(a.lineNumber,a.column,a.lineNumber,a.column+s.overwriteAfter),options:{inlineClassName:\"suggest-insert-unexpected\"}}];else if(\"replace\"===o.insertMode&&0===s.overwriteAfter){var u=null===(t=this._controller.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(a);u&&u.endColumn>a.column&&(r=[{range:new i.Range(a.lineNumber,a.column,a.lineNumber,u.endColumn),options:{inlineClassName:\"suggest-insert-unexpected\"}}])}}this._decorations=this._controller.editor.deltaDecorations(this._decorations,r)},e}()\n;t.SuggestRangeHighlighter=a;var l=new(function(e){function t(){var t=e.call(this)||this;return t._subscriptions=new n.DisposableStore,t._isPressed=!1,t._subscriptions.add(s.domEvent(document.body,\"keydown\")((function(e){return t.isPressed=e.shiftKey}))),t._subscriptions.add(s.domEvent(document.body,\"keyup\")((function(){return t.isPressed=!1}))),t._subscriptions.add(s.domEvent(document.body,\"mouseleave\")((function(){return t.isPressed=!1}))),t._subscriptions.add(s.domEvent(document.body,\"blur\")((function(){return t.isPressed=!1}))),t}return r(t,e),Object.defineProperty(t.prototype,\"isPressed\",{get:function(){return this._isPressed},set:function(e){this._isPressed!==e&&(this._isPressed=e,this.fire(e))},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._subscriptions.dispose(),e.prototype.dispose.call(this)},t}(o.Emitter))})),define(n[392],i([0,1,19,3,202]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){}\nreturn e.create=function(t,s){return d(this,void 0,void 0,(function(){var a,l,u,d;return c(this,(function(c){switch(c.label){case 0:return s.getOption(89).localityBonus&&s.hasModel()?(a=s.getModel(),l=s.getPosition(),t.canComputeWordRanges(a.uri)?[4,(new o.BracketSelectionRangeProvider).provideSelectionRanges(a,[l])]:[2,e.None]):[2,e.None];case 1:return(u=c.sent())&&0!==u.length&&0!==u[0].length?[4,t.computeWordRanges(a.uri,u[0][0].range)]:[2,e.None];case 2:return d=c.sent(),[2,new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.distance=function(e,t){if(!d||!l.equals(s.getPosition()))return 0;if(17===t.kind)return 2<<20;var o=\"string\"==typeof t.label?t.label:t.label.name,r=d[o];if(n.isFalsyOrEmpty(r))return 2<<20;for(var a=n.binarySearch(r,i.Range.fromPositions(e),i.Range.compareRangesUsingStarts),c=a>=0?r[a]:r[Math.max(0,~a-1)],h=u.length,p=0,g=u[0];p<g.length;p++){var f=g[p];if(!i.Range.containsRange(f.range,c))break;h-=1}return h},t}(e))]}}))}))},\ne.None=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.distance=function(){return 0},t}(e)),e}();t.WordDistance=s})),define(n[203],i([0,1]),(function(e,t){\"use strict\";function n(e){return Array.isArray(e)}function i(e){return\"string\"==typeof e}function o(e){return!e}function r(e,t){return e.ignoreCase&&t?t.toLowerCase():t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isFuzzyActionArr=n,t.isFuzzyAction=function(e){return!n(e)},t.isString=i,t.isIAction=function(e){return!i(e)},t.empty=o,t.fixCase=r,t.sanitize=function(e){return e.replace(/[&<>'\"_]/g,\"-\")},t.log=function(e,t){console.log(e.languageId+\": \"+t)},t.createError=function(e,t){return new Error(e.languageId+\": \"+t)},t.substituteMatches=function(e,t,n,i,s){var a=null;return t.replace(/\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g,(function(t,l,u,d,c,h,p,g,f){return o(u)?o(d)?!o(c)&&c<i.length?r(e,i[c]):!o(p)&&e&&\"string\"==typeof e[p]?e[p]:(null===a&&(a=s.split(\".\")).unshift(s),\n!o(h)&&h<a.length?r(e,a[h]):\"\"):r(e,n):\"$\"}))},t.findRules=function(e,t){for(var n=t;n&&n.length>0;){var i=e.tokenizer[n];if(i)return i;var o=n.lastIndexOf(\".\");n=o<0?null:n.substr(0,o)}return null},t.stateExists=function(e,t){for(var n=t;n&&n.length>0;){if(e.stateNames[n])return!0;var i=n.lastIndexOf(\".\");n=i<0?null:n.substr(0,i)}return!1}})),define(n[393],i([0,1,203]),(function(e,t,n){\"use strict\";function i(e,t){return\"boolean\"==typeof e?e:t}function o(e,t){return\"string\"==typeof e?e:t}function r(e,t){void 0===t&&(t=!1),t&&(e=e.map((function(e){return e.toLowerCase()})));var n=function(e){for(var t={},n=0,i=e;n<i.length;n++){t[i[n]]=!0}return t}(e);return t?function(e){return void 0!==n[e.toLowerCase()]&&n.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==n[e]&&n.hasOwnProperty(e)}}function s(e,t){for(var i=0;t.indexOf(\"@\")>=0&&i<5;)i++,t=t.replace(/@(\\w+)/g,(function(i,o){var r=\"\";if(\"string\"==typeof e[o])r=e[o];else{\nif(!(e[o]&&e[o]instanceof RegExp))throw void 0===e[o]?n.createError(e,\"language definition does not contain attribute '\"+o+\"', used at: \"+t):n.createError(e,\"attribute reference '\"+o+\"' must be a string, used at: \"+t);r=e[o].source}return n.empty(r)?\"\":\"(?:\"+r+\")\"}));return new RegExp(t,e.ignoreCase?\"i\":\"\")}function a(e,t,i,o){var a=-1,l=i,u=i.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);u&&(u[3]&&(a=parseInt(u[3]),u[2]&&(a+=100)),l=u[4]);var d,c=\"~\",h=l;if(l&&0!==l.length?/^\\w*$/.test(h)?c=\"==\":(u=l.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(c=u[1],h=u[2]):(c=\"!=\",h=\"\"),\"~\"!==c&&\"!~\"!==c||!/^(\\w|\\|)*$/.test(h))if(\"@\"===c||\"!@\"===c){var p=e[h];if(!p)throw n.createError(e,\"the @ match target '\"+h+\"' is not defined, in rule: \"+t);if(!function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;for(var n=0,i=t;n<i.length;n++){if(!e(i[n]))return!1}return!0}((function(e){return\"string\"==typeof e}),p))throw n.createError(e,\"the @ match target '\"+h+\"' must be an array of strings, in rule: \"+t);var g=r(p,e.ignoreCase);d=function(e){\nreturn\"@\"===c?g(e):!g(e)}}else if(\"~\"===c||\"!~\"===c)if(h.indexOf(\"$\")<0){var f=s(e,\"^\"+h+\"$\");d=function(e){return\"~\"===c?f.test(e):!f.test(e)}}else d=function(t,i,o,r){return s(e,\"^\"+n.substituteMatches(e,h,i,o,r)+\"$\").test(t)};else if(h.indexOf(\"$\")<0){var m=n.fixCase(e,h);d=function(e){return\"==\"===c?e===m:e!==m}}else{var v=n.fixCase(e,h);d=function(t,i,o,r,s){var a=n.substituteMatches(e,v,i,o,r);return\"==\"===c?t===a:t!==a}}else{var _=r(h.split(\"|\"),e.ignoreCase);d=function(e){return\"~\"===c?_(e):!_(e)}}return-1===a?{name:i,value:o,test:function(e,t,n,i){return d(e,e,t,n,i)}}:{name:i,value:o,test:function(e,t,n,i){var o=function(e,t,n,i){if(i<0)return e;if(i<t.length)return t[i];if(i>=100){i-=100;var o=n.split(\".\");if(o.unshift(n),i<o.length)return o[i]}return null}(e,t,n,a);return d(o||\"\",e,t,n,i)}}}Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(e){this.regex=new RegExp(\"\"),this.action={token:\"\"},this.matchOnlyAtLineStart=!1,this.name=\"\",this.name=e}\nreturn e.prototype.setRegex=function(e,t){var i;if(\"string\"==typeof t)i=t;else{if(!(t instanceof RegExp))throw n.createError(e,\"rules must start with a match string or regular expression: \"+this.name);i=t.source}this.matchOnlyAtLineStart=i.length>0&&\"^\"===i[0],this.name=this.name+\": \"+i,this.regex=s(e,\"^(?:\"+(this.matchOnlyAtLineStart?i.substr(1):i)+\")\")},e.prototype.setAction=function(e,t){this.action=function e(t,i,o){if(o){if(\"string\"==typeof o)return o;if(o.token||\"\"===o.token){if(\"string\"!=typeof o.token)throw n.createError(t,\"a 'token' attribute must be of type string, in rule: \"+i);var r={token:o.token};if(o.token.indexOf(\"$\")>=0&&(r.tokenSubst=!0),\"string\"==typeof o.bracket)if(\"@open\"===o.bracket)r.bracket=1;else{if(\"@close\"!==o.bracket)throw n.createError(t,\"a 'bracket' attribute must be either '@open' or '@close', in rule: \"+i);r.bracket=-1}if(o.next){if(\"string\"!=typeof o.next)throw n.createError(t,\"the next state must be a string value in rule: \"+i);var s=o.next\n;if(!/^(@pop|@push|@popall)$/.test(s)&&(\"@\"===s[0]&&(s=s.substr(1)),s.indexOf(\"$\")<0&&!n.stateExists(t,n.substituteMatches(t,s,\"\",[],\"\"))))throw n.createError(t,\"the next state '\"+o.next+\"' is not defined in rule: \"+i);r.next=s}return\"number\"==typeof o.goBack&&(r.goBack=o.goBack),\"string\"==typeof o.switchTo&&(r.switchTo=o.switchTo),\"string\"==typeof o.log&&(r.log=o.log),\"string\"==typeof o.nextEmbedded&&(r.nextEmbedded=o.nextEmbedded,t.usesEmbedded=!0),r}if(Array.isArray(o)){for(var l=[],u=0,d=o.length;u<d;u++)l[u]=e(t,i,o[u]);return{group:l}}if(o.cases){var c=[];for(var h in o.cases)if(o.cases.hasOwnProperty(h)){var p=e(t,i,o.cases[h]);\"@default\"===h||\"@\"===h||\"\"===h?c.push({test:void 0,value:p,name:h}):\"@eos\"===h?c.push({test:function(e,t,n,i){return i},value:p,name:h}):c.push(a(t,i,h,p))}var g=t.defaultToken;return{test:function(e,t,n,i){for(var o=0,r=c;o<r.length;o++){var s=r[o];if(!s.test||s.test(e,t,n,i))return s.value}return g}}}\nthrow n.createError(t,\"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \"+i)}return{token:\"\"}}(e,this.name,t)},e}();t.compile=function(e,t){if(!t||\"object\"!=typeof t)throw new Error(\"Monarch: expecting a language definition object\");var r={};r.languageId=e,r.noThrow=!1,r.maxStack=100,r.start=\"string\"==typeof t.start?t.start:null,r.ignoreCase=i(t.ignoreCase,!1),r.tokenPostfix=o(t.tokenPostfix,\".\"+r.languageId),r.defaultToken=o(t.defaultToken,\"source\"),r.usesEmbedded=!1;var s=t;function a(e,o,u){for(var d=0,c=u;d<c.length;d++){var h=c[d],p=h.include;if(p){if(\"string\"!=typeof p)throw n.createError(r,\"an 'include' attribute must be a string at: \"+e);if(\"@\"===p[0]&&(p=p.substr(1)),!t.tokenizer[p])throw n.createError(r,\"include target '\"+p+\"' is not defined at: \"+e);a(e+\".\"+p,o,t.tokenizer[p])}else{var g=new l(e);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(g.setRegex(s,h[0]),h.length>=3)if(\"string\"==typeof h[1])g.setAction(s,{token:h[1],next:h[2]\n});else{if(\"object\"!=typeof h[1])throw n.createError(r,\"a next state as the last element of a rule can only be given if the action is either an object or a string, at: \"+e);var f=h[1];f.next=h[2],g.setAction(s,f)}else g.setAction(s,h[1]);else{if(!h.regex)throw n.createError(r,\"a rule must either be an array, or an object with a 'regex' or 'include' field at: \"+e);h.name&&\"string\"==typeof h.name&&(g.name=h.name),h.matchOnlyAtStart&&(g.matchOnlyAtLineStart=i(h.matchOnlyAtLineStart,!1)),g.setRegex(s,h.regex),g.setAction(s,h.action)}o.push(g)}}}if(s.languageId=e,s.ignoreCase=r.ignoreCase,s.noThrow=r.noThrow,s.usesEmbedded=r.usesEmbedded,s.stateNames=t.tokenizer,s.defaultToken=r.defaultToken,!t.tokenizer||\"object\"!=typeof t.tokenizer)throw n.createError(r,\"a language definition must define the 'tokenizer' attribute as an object\");for(var u in r.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(u)){r.start||(r.start=u);var d=t.tokenizer[u];r.tokenizer[u]=new Array,a(\"tokenizer.\"+u,r.tokenizer[u],d)}\nif(r.usesEmbedded=s.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw n.createError(r,\"the 'brackets' attribute must be defined as an array\")}else t.brackets=[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}];for(var c=[],h=0,p=t.brackets;h<p.length;h++){var g=p[h];if(g&&Array.isArray(g)&&3===g.length&&(g={token:g[2],open:g[0],close:g[1]}),g.open===g.close)throw n.createError(r,\"open and close brackets in a 'brackets' attribute must be different: \"+g.open+\"\\n hint: use the 'bracket' attribute if matching on equal brackets is required.\");if(\"string\"!=typeof g.open||\"string\"!=typeof g.token||\"string\"!=typeof g.close)throw n.createError(r,\"every element in the 'brackets' array must be a '{open,close,token}' object or array\");c.push({token:g.token+r.tokenPostfix,open:n.fixCase(r,g.open),close:n.fixCase(r,g.close)})}return r.brackets=c,r.noThrow=!0,r}})),\ndefine(n[394],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/actionbar/actionbar\",t)})),define(n[70],i([0,1,16,394,2,55,6,21,57,56,4,98,24,259]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(e){function t(t,n,i){var o=e.call(this)||this;return o.options=i,o._context=t||o,o._action=n,n instanceof s.Action&&o._register(n.onDidChange((function(e){o.element&&o.handleActionChangeEvent(e)}))),o}return r(t,e),t.prototype.handleActionChangeEvent=function(e){void 0!==e.enabled&&this.updateEnabled(),void 0!==e.checked&&this.updateChecked(),void 0!==e.class&&this.updateClass(),void 0!==e.label&&(this.updateLabel(),this.updateTooltip()),void 0!==e.tooltip&&this.updateTooltip()},Object.defineProperty(t.prototype,\"actionRunner\",{get:function(){return this._actionRunner||(this._actionRunner=this._register(new s.ActionRunner)),this._actionRunner},set:function(e){this._actionRunner=e},enumerable:!0,configurable:!0}),\nt.prototype.getAction=function(){return this._action},t.prototype.isEnabled=function(){return this._action.enabled},t.prototype.setActionContext=function(e){this._context=e},t.prototype.render=function(e){var t=this,i=this.element=e;this._register(u.Gesture.addTarget(e));var o=this.options&&this.options.draggable;o&&(e.draggable=!0,p.isFirefox&&this._register(a.addDisposableListener(e,a.EventType.DRAG_START,(function(e){var n;return null===(n=e.dataTransfer)||void 0===n?void 0:n.setData(h.DataTransfers.TEXT,t._action.label)})))),this._register(a.addDisposableListener(i,u.EventType.Tap,(function(e){return t.onClick(e)}))),this._register(a.addDisposableListener(i,a.EventType.MOUSE_DOWN,(function(e){o||a.EventHelper.stop(e,!0),t._action.enabled&&0===e.button&&a.addClass(i,\"active\")}))),this._register(a.addDisposableListener(i,a.EventType.CLICK,(function(e){a.EventHelper.stop(e,!0),t.options&&t.options.isMenu?t.onClick(e):n.setImmediate((function(){return t.onClick(e)}))}))),\nthis._register(a.addDisposableListener(i,a.EventType.DBLCLICK,(function(e){a.EventHelper.stop(e,!0)}))),[a.EventType.MOUSE_UP,a.EventType.MOUSE_OUT].forEach((function(e){t._register(a.addDisposableListener(i,e,(function(e){a.EventHelper.stop(e),a.removeClass(i,\"active\")})))}))},t.prototype.onClick=function(e){var t;a.EventHelper.stop(e,!0),l.isUndefinedOrNull(this._context)?t=e:(t=this._context,l.isObject(t)&&(t.event=e)),this.actionRunner.run(this._action,t)},t.prototype.focus=function(){this.element&&(this.element.focus(),a.addClass(this.element,\"focused\"))},t.prototype.blur=function(){this.element&&(this.element.blur(),a.removeClass(this.element,\"focused\"))},t.prototype.updateEnabled=function(){},t.prototype.updateLabel=function(){},t.prototype.updateTooltip=function(){},t.prototype.updateClass=function(){},t.prototype.updateChecked=function(){},t.prototype.dispose=function(){this.element&&(a.removeNode(this.element),this.element=void 0),e.prototype.dispose.call(this)},t}(o.Disposable)\n;t.BaseActionViewItem=g;var f=function(e){function t(n){var i=e.call(this,t.ID,n,n?\"separator text\":\"separator\")||this;return i.checked=!1,i.enabled=!1,i}return r(t,e),t.ID=\"vs.actions.separator\",t}(s.Action);t.Separator=f;var m=function(e){function t(t,n,i){void 0===i&&(i={});var o=e.call(this,t,n,i)||this;return o.options=i,o.options.icon=void 0!==i.icon&&i.icon,o.options.label=void 0===i.label||i.label,o.cssClass=\"\",o}return r(t,e),t.prototype.render=function(t){e.prototype.render.call(this,t),this.element&&(this.label=a.append(this.element,a.$(\"a.action-label\"))),this.label&&(this._action.id===f.ID?this.label.setAttribute(\"role\",\"presentation\"):this.options.isMenu?this.label.setAttribute(\"role\",\"menuitem\"):this.label.setAttribute(\"role\",\"button\")),this.options.label&&this.options.keybinding&&this.element&&(a.append(this.element,a.$(\"span.keybinding\")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()},\nt.prototype.focus=function(){e.prototype.focus.call(this),this.label&&this.label.focus()},t.prototype.updateLabel=function(){this.options.label&&this.label&&(this.label.textContent=this.getAction().label)},t.prototype.updateTooltip=function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=i.localize(0,null,e,this.options.keybinding))),e&&this.label&&(this.label.title=e)},t.prototype.updateClass=function(){this.cssClass&&this.label&&a.removeClasses(this.label,this.cssClass),this.options.icon?(this.cssClass=this.getAction().class,this.label&&(a.addClass(this.label,\"codicon\"),this.cssClass&&a.addClasses(this.label,this.cssClass)),this.updateEnabled()):this.label&&a.removeClass(this.label,\"codicon\")},t.prototype.updateEnabled=function(){this.getAction().enabled?(this.label&&(this.label.removeAttribute(\"aria-disabled\"),a.removeClass(this.label,\"disabled\"),this.label.tabIndex=0),\nthis.element&&a.removeClass(this.element,\"disabled\")):(this.label&&(this.label.setAttribute(\"aria-disabled\",\"true\"),a.addClass(this.label,\"disabled\"),a.removeTabIndexAndUpdateFocus(this.label)),this.element&&a.addClass(this.element,\"disabled\"))},t.prototype.updateChecked=function(){this.label&&(this.getAction().checked?a.addClass(this.label,\"checked\"):a.removeClass(this.label,\"checked\"))},t}(g);t.ActionViewItem=m;var v={orientation:0,context:null,triggerKeys:{keys:[3,10],keyDown:!1}},_=function(e){function t(t,n){void 0===n&&(n=v);var i,o,r=e.call(this)||this;switch(r._onDidBlur=r._register(new c.Emitter),r.onDidBlur=r._onDidBlur.event,r._onDidCancel=r._register(new c.Emitter),r.onDidCancel=r._onDidCancel.event,r._onDidRun=r._register(new c.Emitter),r.onDidRun=r._onDidRun.event,r._onDidBeforeRun=r._register(new c.Emitter),r.onDidBeforeRun=r._onDidBeforeRun.event,r.options=n,r._context=n.context,r.options.triggerKeys||(r.options.triggerKeys=v.triggerKeys),\nr.options.actionRunner?r._actionRunner=r.options.actionRunner:(r._actionRunner=new s.ActionRunner,r._register(r._actionRunner)),r._register(r._actionRunner.onDidRun((function(e){return r._onDidRun.fire(e)}))),r._register(r._actionRunner.onDidBeforeRun((function(e){return r._onDidBeforeRun.fire(e)}))),r.viewItems=[],r.focusedItem=void 0,r.domNode=document.createElement(\"div\"),r.domNode.className=\"monaco-action-bar\",!1!==n.animated&&a.addClass(r.domNode,\"animated\"),r.options.orientation){case 0:i=15,o=17;break;case 1:i=17,o=15,r.domNode.className+=\" reverse\";break;case 2:i=16,o=18,r.domNode.className+=\" vertical\";break;case 3:i=18,o=16,r.domNode.className+=\" vertical reverse\"}return r._register(a.addDisposableListener(r.domNode,a.EventType.KEY_DOWN,(function(e){var t=new d.StandardKeyboardEvent(e),n=!0;t.equals(i)?r.focusPrevious():t.equals(o)?r.focusNext():t.equals(9)?r.cancel():r.isTriggerKeyEvent(t)?r.options.triggerKeys&&r.options.triggerKeys.keyDown&&r.doTrigger(t):n=!1,n&&(t.preventDefault(),\nt.stopPropagation())}))),r._register(a.addDisposableListener(r.domNode,a.EventType.KEY_UP,(function(e){var t=new d.StandardKeyboardEvent(e);r.isTriggerKeyEvent(t)?(r.options.triggerKeys&&!r.options.triggerKeys.keyDown&&r.doTrigger(t),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026))&&r.updateFocusedItem()}))),r.focusTracker=r._register(a.trackFocus(r.domNode)),r._register(r.focusTracker.onDidBlur((function(){document.activeElement!==r.domNode&&a.isAncestor(document.activeElement,r.domNode)||(r._onDidBlur.fire(),r.focusedItem=void 0)}))),r._register(r.focusTracker.onDidFocus((function(){return r.updateFocusedItem()}))),r.actionsList=document.createElement(\"ul\"),r.actionsList.className=\"actions-container\",r.actionsList.setAttribute(\"role\",\"toolbar\"),r.options.ariaLabel&&r.actionsList.setAttribute(\"aria-label\",r.options.ariaLabel),r.domNode.appendChild(r.actionsList),t.appendChild(r.domNode),r}return r(t,e),t.prototype.isTriggerKeyEvent=function(e){var t=!1\n;return this.options.triggerKeys&&this.options.triggerKeys.keys.forEach((function(n){t=t||e.equals(n)})),t},t.prototype.updateFocusedItem=function(){for(var e=0;e<this.actionsList.children.length;e++){var t=this.actionsList.children[e];if(a.isAncestor(document.activeElement,t)){this.focusedItem=e;break}}},Object.defineProperty(t.prototype,\"context\",{get:function(){return this._context},set:function(e){this._context=e,this.viewItems.forEach((function(t){return t.setActionContext(e)}))},enumerable:!0,configurable:!0}),t.prototype.getContainer=function(){return this.domNode},t.prototype.push=function(e,t){var n=this;void 0===t&&(t={});var i=Array.isArray(e)?e:[e],o=l.isNumber(t.index)?t.index:null;i.forEach((function(e){var i,r=document.createElement(\"li\");r.className=\"action-item\",r.setAttribute(\"role\",\"presentation\"),n._register(a.addDisposableListener(r,a.EventType.CONTEXT_MENU,(function(e){e.preventDefault(),e.stopPropagation()}))),n.options.actionViewItemProvider&&(i=n.options.actionViewItemProvider(e)),\ni||(i=new m(n.context,e,t)),i.actionRunner=n._actionRunner,i.setActionContext(n.context),i.render(r),null===o||o<0||o>=n.actionsList.children.length?(n.actionsList.appendChild(r),n.viewItems.push(i)):(n.actionsList.insertBefore(r,n.actionsList.children[o]),n.viewItems.splice(o,0,i),o++)}))},t.prototype.clear=function(){this.viewItems=o.dispose(this.viewItems),a.clearNode(this.actionsList)},t.prototype.isEmpty=function(){return 0===this.viewItems.length},t.prototype.focus=function(e){var t=!1,n=void 0;void 0===e?t=!0:\"number\"==typeof e?n=e:\"boolean\"==typeof e&&(t=e),t&&void 0===this.focusedItem?(this.focusedItem=this.viewItems.length-1,this.focusNext()):(void 0!==n&&(this.focusedItem=n),this.updateFocus())},t.prototype.focusNext=function(){void 0===this.focusedItem&&(this.focusedItem=this.viewItems.length-1);var e,t=this.focusedItem;do{this.focusedItem=(this.focusedItem+1)%this.viewItems.length,e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled())\n;this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus()},t.prototype.focusPrevious=function(){void 0===this.focusedItem&&(this.focusedItem=0);var e,t=this.focusedItem;do{this.focusedItem=this.focusedItem-1,this.focusedItem<0&&(this.focusedItem=this.viewItems.length-1),e=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled());this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus(!0)},t.prototype.updateFocus=function(e,t){void 0===this.focusedItem&&this.actionsList.focus({preventScroll:t});for(var n=0;n<this.viewItems.length;n++){var i=this.viewItems[n];n===this.focusedItem?l.isFunction(i.isEnabled)&&(i.isEnabled()&&l.isFunction(i.focus)?i.focus(e):this.actionsList.focus({preventScroll:t})):l.isFunction(i.blur)&&i.blur()}},t.prototype.doTrigger=function(e){if(void 0!==this.focusedItem){var t=this.viewItems[this.focusedItem];if(t instanceof g){var n=null===t._context||void 0===t._context?e:t._context;this.run(t._action,n)}}},\nt.prototype.cancel=function(){document.activeElement instanceof HTMLElement&&document.activeElement.blur(),this._onDidCancel.fire()},t.prototype.run=function(e,t){return this._actionRunner.run(e,t)},t.prototype.dispose=function(){o.dispose(this.viewItems),this.viewItems=[],a.removeNode(this.getContainer()),e.prototype.dispose.call(this)},t}(o.Disposable);t.ActionBar=_})),define(n[395],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/aria/aria\",t)})),define(n[50],i([0,1,395,16,6,260]),(function(e,t,n,i,o){\"use strict\";var r,s,a;function l(e,t){c(s,e,t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setARIAContainer=function(e){(r=document.createElement(\"div\")).className=\"monaco-aria-container\",(s=document.createElement(\"div\")).className=\"monaco-alert\",s.setAttribute(\"role\",\"alert\"),s.setAttribute(\"aria-atomic\",\"true\"),r.appendChild(s),(a=document.createElement(\"div\")).className=\"monaco-status\",a.setAttribute(\"role\",\"status\"),a.setAttribute(\"aria-atomic\",\"true\"),r.appendChild(a),e.appendChild(r)\n},t.alert=l,t.status=function(e,t){i.isMacintosh?l(e,t):c(a,e,t)};var u=0,d=void 0;function c(e,t,i){if(r){if(!i)switch(d===t?u++:(d=t,u=0),u){case 0:break;case 1:t=n.localize(0,null,t);break;default:t=n.localize(1,null,t,u)}o.clearNode(e),e.textContent=t,e.style.visibility=\"hidden\",e.style.visibility=\"visible\"}}})),define(n[396],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/findInput\",t)})),define(n[397],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/findInputCheckboxes\",t)})),define(n[204],i([0,1,138,397]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=i.localize(0,null),s=i.localize(1,null),a=i.localize(2,null),l=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-case-sensitive\",title:o+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.CaseSensitiveCheckbox=l\n;var u=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-whole-word\",title:s+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.WholeWordsCheckbox=u;var d=function(e){function t(t){return e.call(this,{actionClassName:\"codicon-regex\",title:a+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(n.Checkbox);t.RegexCheckbox=d})),define(n[398],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/findinput/replaceInput\",t)})),define(n[399],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/inputbox/inputBox\",t)})),define(n[152],i([0,1,399,24,6,134,50,70,4,47,27,31,242,53,52,269]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=o.$,v={\ninputBackground:c.Color.fromHex(\"#3C3C3C\"),inputForeground:c.Color.fromHex(\"#CCCCCC\"),inputValidationInfoBorder:c.Color.fromHex(\"#55AAFF\"),inputValidationInfoBackground:c.Color.fromHex(\"#063B49\"),inputValidationWarningBorder:c.Color.fromHex(\"#B89500\"),inputValidationWarningBackground:c.Color.fromHex(\"#352A05\"),inputValidationErrorBorder:c.Color.fromHex(\"#BE1100\"),inputValidationErrorBackground:c.Color.fromHex(\"#5A1D1D\")},_=function(e){function t(t,n,r){var s=e.call(this)||this;s.state=\"idle\",s.maxHeight=Number.POSITIVE_INFINITY,s._onDidChange=s._register(new u.Emitter),s.onDidChange=s._onDidChange.event,s._onDidHeightChange=s._register(new u.Emitter),s.onDidHeightChange=s._onDidHeightChange.event,s.contextViewProvider=n,s.options=r||Object.create(null),h.mixin(s.options,v,!1),s.message=null,s.placeholder=s.options.placeholder||\"\",s.ariaLabel=s.options.ariaLabel||\"\",s.inputBackground=s.options.inputBackground,s.inputForeground=s.options.inputForeground,s.inputBorder=s.options.inputBorder,\ns.inputValidationInfoBorder=s.options.inputValidationInfoBorder,s.inputValidationInfoBackground=s.options.inputValidationInfoBackground,s.inputValidationInfoForeground=s.options.inputValidationInfoForeground,s.inputValidationWarningBorder=s.options.inputValidationWarningBorder,s.inputValidationWarningBackground=s.options.inputValidationWarningBackground,s.inputValidationWarningForeground=s.options.inputValidationWarningForeground,s.inputValidationErrorBorder=s.options.inputValidationErrorBorder,s.inputValidationErrorBackground=s.options.inputValidationErrorBackground,s.inputValidationErrorForeground=s.options.inputValidationErrorForeground,s.options.validationOptions&&(s.validation=s.options.validationOptions.validation),s.element=o.append(t,m(\".monaco-inputbox.idle\"));var a=s.options.flexibleHeight?\"textarea\":\"input\",d=o.append(s.element,m(\".wrapper\"));if(s.input=o.append(d,m(a+\".input.empty\")),s.input.setAttribute(\"autocorrect\",\"off\"),s.input.setAttribute(\"autocapitalize\",\"off\"),\ns.input.setAttribute(\"spellcheck\",\"false\"),s.onfocus(s.input,(function(){return o.addClass(s.element,\"synthetic-focus\")})),s.onblur(s.input,(function(){return o.removeClass(s.element,\"synthetic-focus\")})),s.options.flexibleHeight){s.maxHeight=\"number\"==typeof s.options.flexibleMaxHeight?s.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,s.mirror=o.append(d,m(\"div.mirror\")),s.mirror.innerHTML=\"&#160;\",s.scrollableElement=new g.ScrollableElement(s.element,{vertical:1}),s.options.flexibleWidth&&(s.input.setAttribute(\"wrap\",\"off\"),s.mirror.style.whiteSpace=\"pre\",s.mirror.style.wordWrap=\"initial\"),o.append(t,s.scrollableElement.getDomNode()),s._register(s.scrollableElement),s._register(s.scrollableElement.onScroll((function(e){return s.input.scrollTop=e.scrollTop})));var c=u.Event.filter(f.domEvent(document,\"selectionchange\"),(function(){var e=document.getSelection();return(null==e?void 0:e.anchorNode)===d}));s._register(c(s.updateScrollDimensions,s)),s._register(s.onDidHeightChange(s.updateScrollDimensions,s))\n}else s.input.type=s.options.type||\"text\",s.input.setAttribute(\"wrap\",\"off\");return s.ariaLabel&&s.input.setAttribute(\"aria-label\",s.ariaLabel),s.placeholder&&s.setPlaceHolder(s.placeholder),s.oninput(s.input,(function(){return s.onValueChange()})),s.onblur(s.input,(function(){return s.onBlur()})),s.onfocus(s.input,(function(){return s.onFocus()})),s.placeholder&&i.isIE&&s.onclick(s.input,(function(e){o.EventHelper.stop(e,!0),s.input.focus()})),s.ignoreGesture(s.input),setTimeout((function(){return s.updateMirror()}),0),s.options.actions&&(s.actionbar=s._register(new l.ActionBar(s.element)),s.actionbar.push(s.options.actions,{icon:!0,label:!1})),s.applyStyles(),s}return r(t,e),t.prototype.onBlur=function(){this._hideMessage()},t.prototype.onFocus=function(){this._showMessage()},t.prototype.setPlaceHolder=function(e){this.placeholder=e,this.input.setAttribute(\"placeholder\",e),this.input.title=e},t.prototype.setAriaLabel=function(e){this.ariaLabel=e,\ne?this.input.setAttribute(\"aria-label\",this.ariaLabel):this.input.removeAttribute(\"aria-label\")},Object.defineProperty(t.prototype,\"inputElement\",{get:function(){return this.input},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"value\",{get:function(){return this.input.value},set:function(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return\"number\"==typeof this.cachedHeight?this.cachedHeight:o.getTotalHeight(this.element)},enumerable:!0,configurable:!0}),t.prototype.focus=function(){this.input.focus()},t.prototype.blur=function(){this.input.blur()},t.prototype.hasFocus=function(){return document.activeElement===this.input},t.prototype.select=function(e){void 0===e&&(e=null),this.input.select(),e&&this.input.setSelectionRange(e.start,e.end)},t.prototype.enable=function(){this.input.removeAttribute(\"disabled\")},t.prototype.disable=function(){this.blur(),this.input.disabled=!0,\nthis._hideMessage()},Object.defineProperty(t.prototype,\"width\",{get:function(){return o.getTotalWidth(this.input)},set:function(e){if(this.options.flexibleHeight&&this.options.flexibleWidth){var t=0;if(this.mirror)t=(parseFloat(this.mirror.style.paddingLeft||\"\")||0)+(parseFloat(this.mirror.style.paddingRight||\"\")||0);this.input.style.width=e-t+\"px\"}else this.input.style.width=e+\"px\";this.mirror&&(this.mirror.style.width=e+\"px\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"paddingRight\",{set:function(e){this.options.flexibleHeight&&this.options.flexibleWidth?this.input.style.width=\"calc(100% - \"+e+\"px)\":this.input.style.paddingRight=e+\"px\",this.mirror&&(this.mirror.style.paddingRight=e+\"px\")},enumerable:!0,configurable:!0}),t.prototype.updateScrollDimensions=function(){if(\"number\"==typeof this.cachedContentHeight&&\"number\"==typeof this.cachedHeight&&this.scrollableElement){var e=this.cachedContentHeight,t=this.cachedHeight,n=this.input.scrollTop\n;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:n})}},t.prototype.showMessage=function(e,t){this.message=e,o.removeClass(this.element,\"idle\"),o.removeClass(this.element,\"info\"),o.removeClass(this.element,\"warning\"),o.removeClass(this.element,\"error\"),o.addClass(this.element,this.classForType(e.type));var i,r=this.stylesForType(this.message.type);this.element.style.border=r.border?\"1px solid \"+r.border:\"\",i=3===e.type?n.localize(0,null,e.content):2===e.type?n.localize(1,null,e.content):n.localize(2,null,e.content),a.alert(i),(this.hasFocus()||t)&&this._showMessage()},t.prototype.hideMessage=function(){this.message=null,o.removeClass(this.element,\"info\"),o.removeClass(this.element,\"warning\"),o.removeClass(this.element,\"error\"),o.addClass(this.element,\"idle\"),this._hideMessage(),this.applyStyles()},t.prototype.validate=function(){var e=null\n;return this.validation&&((e=this.validation(this.value))?(this.inputElement.setAttribute(\"aria-invalid\",\"true\"),this.showMessage(e)):this.inputElement.hasAttribute(\"aria-invalid\")&&(this.inputElement.removeAttribute(\"aria-invalid\"),this.hideMessage())),!e},t.prototype.stylesForType=function(e){switch(e){case 1:return{border:this.inputValidationInfoBorder,background:this.inputValidationInfoBackground,foreground:this.inputValidationInfoForeground};case 2:return{border:this.inputValidationWarningBorder,background:this.inputValidationWarningBackground,foreground:this.inputValidationWarningForeground};default:return{border:this.inputValidationErrorBorder,background:this.inputValidationErrorBackground,foreground:this.inputValidationErrorForeground}}},t.prototype.classForType=function(e){switch(e){case 1:return\"info\";case 2:return\"warning\";default:return\"error\"}},t.prototype._showMessage=function(){var e=this;if(this.contextViewProvider&&this.message){var t,n=function(){\nreturn t.style.width=o.getTotalWidth(e.element)+\"px\"};this.contextViewProvider.showContextView({getAnchor:function(){return e.element},anchorAlignment:1,render:function(i){if(!e.message)return null;t=o.append(i,m(\".monaco-inputbox-container\")),n();var r={inline:!0,className:\"monaco-inputbox-message\"},a=e.message.formatContent?s.renderFormattedText(e.message.content,r):s.renderText(e.message.content,r);o.addClass(a,e.classForType(e.message.type));var l=e.stylesForType(e.message.type);return a.style.backgroundColor=l.background?l.background.toString():\"\",a.style.color=l.foreground?l.foreground.toString():\"\",a.style.border=l.border?\"1px solid \"+l.border:\"\",o.append(t,a),null},onHide:function(){e.state=\"closed\"},layout:n}),this.state=\"open\"}},t.prototype._hideMessage=function(){this.contextViewProvider&&(\"open\"===this.state&&this.contextViewProvider.hideContextView(),this.state=\"idle\")},t.prototype.onValueChange=function(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),\no.toggleClass(this.input,\"empty\",!this.value),\"open\"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()},t.prototype.updateMirror=function(){if(this.mirror){var e=this.value,t=10===e.charCodeAt(e.length-1)?\" \":\"\";e+t?this.mirror.textContent=e+t:this.mirror.innerHTML=\"&#160;\",this.layout()}},t.prototype.style=function(e){this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,\nthis.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){var e=this.inputBackground?this.inputBackground.toString():\"\",t=this.inputForeground?this.inputForeground.toString():\"\",n=this.inputBorder?this.inputBorder.toString():\"\";this.element.style.backgroundColor=e,this.element.style.color=t,this.input.style.backgroundColor=e,this.input.style.color=t,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.borderColor=n},t.prototype.layout=function(){if(this.mirror){var e=this.cachedContentHeight;this.cachedContentHeight=o.getTotalHeight(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+\"px\",this._onDidHeightChange.fire(this.cachedContentHeight))}},t.prototype.insertAtCursor=function(e){var t=this.inputElement,n=t.selectionStart,i=t.selectionEnd,o=t.value\n;null!==n&&null!==i&&(this.value=o.substr(0,n)+e+o.substr(i),t.setSelectionRange(n+1,n+1),this.layout())},t.prototype.dispose=function(){this._hideMessage(),this.message=null,this.actionbar&&this.actionbar.dispose(),e.prototype.dispose.call(this)},t}(d.Widget);t.InputBox=_;var y=function(e){function t(t,n,i){var o=e.call(this,t,n,i)||this;return o.history=new p.HistoryNavigator(i.history,100),o}return r(t,e),t.prototype.addToHistory=function(){this.value&&this.value!==this.getCurrentValue()&&this.history.add(this.value)},t.prototype.showNextValue=function(){this.history.has(this.value)||this.addToHistory();var e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),e&&(this.value=e,a.status(this.value))},t.prototype.showPreviousValue=function(){this.history.has(this.value)||this.addToHistory();var e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,a.status(this.value))},t.prototype.getCurrentValue=function(){var e=this.history.current()\n;return e||(e=this.history.last(),this.history.next()),e},t.prototype.getPreviousValue=function(){return this.history.previous()||this.history.first()},t.prototype.getNextValue=function(){return this.history.next()||this.history.last()},t}(_);t.HistoryInputBox=y})),define(n[400],i([0,1,396,6,152,47,4,204,184]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=n.localize(0,null),d=function(e){function t(t,n,r,s){var d=e.call(this)||this;d._showOptionButtons=r,d.fixFocusOnOptionClickEnabled=!0,d._onDidOptionChange=d._register(new a.Emitter),d.onDidOptionChange=d._onDidOptionChange.event,d._onKeyDown=d._register(new a.Emitter),d.onKeyDown=d._onKeyDown.event,d._onMouseDown=d._register(new a.Emitter),d.onMouseDown=d._onMouseDown.event,d._onInput=d._register(new a.Emitter),d._onKeyUp=d._register(new a.Emitter),d._onCaseSensitiveKeyDown=d._register(new a.Emitter),d.onCaseSensitiveKeyDown=d._onCaseSensitiveKeyDown.event,d._onRegexKeyDown=d._register(new a.Emitter),\nd.onRegexKeyDown=d._onRegexKeyDown.event,d._lastHighlightFindOptions=0,d.contextViewProvider=n,d.placeholder=s.placeholder||\"\",d.validation=s.validation,d.label=s.label||u,d.inputActiveOptionBorder=s.inputActiveOptionBorder,d.inputActiveOptionBackground=s.inputActiveOptionBackground,d.inputBackground=s.inputBackground,d.inputForeground=s.inputForeground,d.inputBorder=s.inputBorder,d.inputValidationInfoBorder=s.inputValidationInfoBorder,d.inputValidationInfoBackground=s.inputValidationInfoBackground,d.inputValidationInfoForeground=s.inputValidationInfoForeground,d.inputValidationWarningBorder=s.inputValidationWarningBorder,d.inputValidationWarningBackground=s.inputValidationWarningBackground,d.inputValidationWarningForeground=s.inputValidationWarningForeground,d.inputValidationErrorBorder=s.inputValidationErrorBorder,d.inputValidationErrorBackground=s.inputValidationErrorBackground,d.inputValidationErrorForeground=s.inputValidationErrorForeground\n;var c=s.appendCaseSensitiveLabel||\"\",h=s.appendWholeWordsLabel||\"\",p=s.appendRegexLabel||\"\",g=s.history||[],f=!!s.flexibleHeight,m=!!s.flexibleWidth,v=s.flexibleMaxHeight;d.domNode=document.createElement(\"div\"),i.addClass(d.domNode,\"monaco-findInput\"),d.inputBox=d._register(new o.HistoryInputBox(d.domNode,d.contextViewProvider,{placeholder:d.placeholder||\"\",ariaLabel:d.label||\"\",validationOptions:{validation:d.validation},inputBackground:d.inputBackground,inputForeground:d.inputForeground,inputBorder:d.inputBorder,inputValidationInfoBackground:d.inputValidationInfoBackground,inputValidationInfoForeground:d.inputValidationInfoForeground,inputValidationInfoBorder:d.inputValidationInfoBorder,inputValidationWarningBackground:d.inputValidationWarningBackground,inputValidationWarningForeground:d.inputValidationWarningForeground,inputValidationWarningBorder:d.inputValidationWarningBorder,inputValidationErrorBackground:d.inputValidationErrorBackground,inputValidationErrorForeground:d.inputValidationErrorForeground,\ninputValidationErrorBorder:d.inputValidationErrorBorder,history:g,flexibleHeight:f,flexibleWidth:m,flexibleMaxHeight:v})),d.regex=d._register(new l.RegexCheckbox({appendTitle:p,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,inputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.regex.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d._register(d.regex.onKeyDown((function(e){d._onRegexKeyDown.fire(e)}))),d.wholeWords=d._register(new l.WholeWordsCheckbox({appendTitle:h,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,inputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.wholeWords.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d.caseSensitive=d._register(new l.CaseSensitiveCheckbox({appendTitle:c,isChecked:!1,inputActiveOptionBorder:d.inputActiveOptionBorder,\ninputActiveOptionBackground:d.inputActiveOptionBackground})),d._register(d.caseSensitive.onChange((function(e){d._onDidOptionChange.fire(e),!e&&d.fixFocusOnOptionClickEnabled&&d.inputBox.focus(),d.validate()}))),d._register(d.caseSensitive.onKeyDown((function(e){d._onCaseSensitiveKeyDown.fire(e)}))),d._showOptionButtons&&(d.inputBox.paddingRight=d.caseSensitive.width()+d.wholeWords.width()+d.regex.width());var _=[d.caseSensitive.domNode,d.wholeWords.domNode,d.regex.domNode];d.onkeydown(d.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=_.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%_.length:e.equals(15)&&(n=0===t?_.length-1:t-1),e.equals(9)?_[t].blur():n>=0&&_[n].focus(),i.EventHelper.stop(e,!0)}}}));var y=document.createElement(\"div\");return y.className=\"controls\",y.style.display=d._showOptionButtons?\"block\":\"none\",y.appendChild(d.caseSensitive.domNode),y.appendChild(d.wholeWords.domNode),y.appendChild(d.regex.domNode),d.domNode.appendChild(y),\nt&&t.appendChild(d.domNode),d.onkeydown(d.inputBox.inputElement,(function(e){return d._onKeyDown.fire(e)})),d.onkeyup(d.inputBox.inputElement,(function(e){return d._onKeyUp.fire(e)})),d.oninput(d.inputBox.inputElement,(function(e){return d._onInput.fire()})),d.onmousedown(d.inputBox.inputElement,(function(e){return d._onMouseDown.fire(e)})),d}return r(t,e),t.prototype.enable=function(){i.removeClass(this.domNode,\"disabled\"),this.inputBox.enable(),this.regex.enable(),this.wholeWords.enable(),this.caseSensitive.enable()},t.prototype.disable=function(){i.addClass(this.domNode,\"disabled\"),this.inputBox.disable(),this.regex.disable(),this.wholeWords.disable(),this.caseSensitive.disable()},t.prototype.setFocusInputOnOptionClick=function(e){this.fixFocusOnOptionClickEnabled=e},t.prototype.setEnabled=function(e){e?this.enable():this.disable()},t.prototype.getValue=function(){return this.inputBox.value},t.prototype.setValue=function(e){this.inputBox.value!==e&&(this.inputBox.value=e)},t.prototype.style=function(e){\nthis.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,this.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionBackground:this.inputActiveOptionBackground}\n;this.regex.style(e),this.wholeWords.style(e),this.caseSensitive.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,inputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}},t.prototype.select=function(){this.inputBox.select()},t.prototype.focus=function(){this.inputBox.focus()},t.prototype.getCaseSensitive=function(){return this.caseSensitive.checked},t.prototype.setCaseSensitive=function(e){\nthis.caseSensitive.checked=e},t.prototype.getWholeWords=function(){return this.wholeWords.checked},t.prototype.setWholeWords=function(e){this.wholeWords.checked=e},t.prototype.getRegex=function(){return this.regex.checked},t.prototype.setRegex=function(e){this.regex.checked=e,this.validate()},t.prototype.focusOnCaseSensitive=function(){this.caseSensitive.focus()},t.prototype.highlightFindOptions=function(){i.removeClass(this.domNode,\"highlight-\"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,i.addClass(this.domNode,\"highlight-\"+this._lastHighlightFindOptions)},t.prototype.validate=function(){this.inputBox.validate()},t.prototype.clearMessage=function(){this.inputBox.hideMessage()},t}(s.Widget);t.FindInput=d})),define(n[401],i([0,1,398,6,152,47,4,138,184]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=n.localize(0,null),d=n.localize(1,null),c=function(e){function t(t){return e.call(this,{\nactionClassName:\"codicon-preserve-case\",title:d+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionBackground:t.inputActiveOptionBackground})||this}return r(t,e),t}(l.Checkbox);t.PreserveCaseCheckbox=c;var h=function(e){function t(t,n,r,s){var l=e.call(this)||this;l._showOptionButtons=r,l.fixFocusOnOptionClickEnabled=!0,l.cachedOptionsWidth=0,l._onDidOptionChange=l._register(new a.Emitter),l.onDidOptionChange=l._onDidOptionChange.event,l._onKeyDown=l._register(new a.Emitter),l.onKeyDown=l._onKeyDown.event,l._onMouseDown=l._register(new a.Emitter),l._onInput=l._register(new a.Emitter),l._onKeyUp=l._register(new a.Emitter),l._onPreserveCaseKeyDown=l._register(new a.Emitter),l.onPreserveCaseKeyDown=l._onPreserveCaseKeyDown.event,l.contextViewProvider=n,l.placeholder=s.placeholder||\"\",l.validation=s.validation,l.label=s.label||u,l.inputActiveOptionBorder=s.inputActiveOptionBorder,l.inputActiveOptionBackground=s.inputActiveOptionBackground,\nl.inputBackground=s.inputBackground,l.inputForeground=s.inputForeground,l.inputBorder=s.inputBorder,l.inputValidationInfoBorder=s.inputValidationInfoBorder,l.inputValidationInfoBackground=s.inputValidationInfoBackground,l.inputValidationInfoForeground=s.inputValidationInfoForeground,l.inputValidationWarningBorder=s.inputValidationWarningBorder,l.inputValidationWarningBackground=s.inputValidationWarningBackground,l.inputValidationWarningForeground=s.inputValidationWarningForeground,l.inputValidationErrorBorder=s.inputValidationErrorBorder,l.inputValidationErrorBackground=s.inputValidationErrorBackground,l.inputValidationErrorForeground=s.inputValidationErrorForeground;var d=s.history||[],h=!!s.flexibleHeight,p=!!s.flexibleWidth,g=s.flexibleMaxHeight;l.domNode=document.createElement(\"div\"),i.addClass(l.domNode,\"monaco-findInput\"),l.inputBox=l._register(new o.HistoryInputBox(l.domNode,l.contextViewProvider,{ariaLabel:l.label||\"\",placeholder:l.placeholder||\"\",validationOptions:{validation:l.validation},\ninputBackground:l.inputBackground,inputForeground:l.inputForeground,inputBorder:l.inputBorder,inputValidationInfoBackground:l.inputValidationInfoBackground,inputValidationInfoForeground:l.inputValidationInfoForeground,inputValidationInfoBorder:l.inputValidationInfoBorder,inputValidationWarningBackground:l.inputValidationWarningBackground,inputValidationWarningForeground:l.inputValidationWarningForeground,inputValidationWarningBorder:l.inputValidationWarningBorder,inputValidationErrorBackground:l.inputValidationErrorBackground,inputValidationErrorForeground:l.inputValidationErrorForeground,inputValidationErrorBorder:l.inputValidationErrorBorder,history:d,flexibleHeight:h,flexibleWidth:p,flexibleMaxHeight:g})),l.preserveCase=l._register(new c({appendTitle:\"\",isChecked:!1,inputActiveOptionBorder:l.inputActiveOptionBorder,inputActiveOptionBackground:l.inputActiveOptionBackground})),l._register(l.preserveCase.onChange((function(e){l._onDidOptionChange.fire(e),!e&&l.fixFocusOnOptionClickEnabled&&l.inputBox.focus(),\nl.validate()}))),l._register(l.preserveCase.onKeyDown((function(e){l._onPreserveCaseKeyDown.fire(e)}))),l._showOptionButtons?l.cachedOptionsWidth=l.preserveCase.width():l.cachedOptionsWidth=0;var f=[l.preserveCase.domNode];l.onkeydown(l.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=f.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%f.length:e.equals(15)&&(n=0===t?f.length-1:t-1),e.equals(9)?f[t].blur():n>=0&&f[n].focus(),i.EventHelper.stop(e,!0)}}}));var m=document.createElement(\"div\");return m.className=\"controls\",m.style.display=l._showOptionButtons?\"block\":\"none\",m.appendChild(l.preserveCase.domNode),l.domNode.appendChild(m),t&&t.appendChild(l.domNode),l.onkeydown(l.inputBox.inputElement,(function(e){return l._onKeyDown.fire(e)})),l.onkeyup(l.inputBox.inputElement,(function(e){return l._onKeyUp.fire(e)})),l.oninput(l.inputBox.inputElement,(function(e){return l._onInput.fire()})),l.onmousedown(l.inputBox.inputElement,(function(e){return l._onMouseDown.fire(e)\n})),l}return r(t,e),t.prototype.enable=function(){i.removeClass(this.domNode,\"disabled\"),this.inputBox.enable(),this.preserveCase.enable()},t.prototype.disable=function(){i.addClass(this.domNode,\"disabled\"),this.inputBox.disable(),this.preserveCase.disable()},t.prototype.setEnabled=function(e){e?this.enable():this.disable()},t.prototype.style=function(e){this.inputActiveOptionBorder=e.inputActiveOptionBorder,this.inputActiveOptionBackground=e.inputActiveOptionBackground,this.inputBackground=e.inputBackground,this.inputForeground=e.inputForeground,this.inputBorder=e.inputBorder,this.inputValidationInfoBackground=e.inputValidationInfoBackground,this.inputValidationInfoForeground=e.inputValidationInfoForeground,this.inputValidationInfoBorder=e.inputValidationInfoBorder,this.inputValidationWarningBackground=e.inputValidationWarningBackground,this.inputValidationWarningForeground=e.inputValidationWarningForeground,this.inputValidationWarningBorder=e.inputValidationWarningBorder,\nthis.inputValidationErrorBackground=e.inputValidationErrorBackground,this.inputValidationErrorForeground=e.inputValidationErrorForeground,this.inputValidationErrorBorder=e.inputValidationErrorBorder,this.applyStyles()},t.prototype.applyStyles=function(){if(this.domNode){var e={inputActiveOptionBorder:this.inputActiveOptionBorder,inputActiveOptionBackground:this.inputActiveOptionBackground};this.preserveCase.style(e);var t={inputBackground:this.inputBackground,inputForeground:this.inputForeground,inputBorder:this.inputBorder,inputValidationInfoBackground:this.inputValidationInfoBackground,inputValidationInfoForeground:this.inputValidationInfoForeground,inputValidationInfoBorder:this.inputValidationInfoBorder,inputValidationWarningBackground:this.inputValidationWarningBackground,inputValidationWarningForeground:this.inputValidationWarningForeground,inputValidationWarningBorder:this.inputValidationWarningBorder,inputValidationErrorBackground:this.inputValidationErrorBackground,\ninputValidationErrorForeground:this.inputValidationErrorForeground,inputValidationErrorBorder:this.inputValidationErrorBorder};this.inputBox.style(t)}},t.prototype.select=function(){this.inputBox.select()},t.prototype.focus=function(){this.inputBox.focus()},t.prototype.getPreserveCase=function(){return this.preserveCase.checked},t.prototype.setPreserveCase=function(e){this.preserveCase.checked=e},t.prototype.focusOnPreserve=function(){this.preserveCase.focus()},t.prototype.validate=function(){this.inputBox&&this.inputBox.validate()},Object.defineProperty(t.prototype,\"width\",{set:function(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.inputBox.width=e,this.domNode.style.width=e+\"px\"},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t}(s.Widget);t.ReplaceInput=h})),define(n[402],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/keybindingLabel/keybindingLabel\",t)})),define(n[403],i([7,8]),(function(e,t){\nreturn e.create(\"vs/base/browser/ui/list/listWidget\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[153],i([0,1,403,2,21,19,101,6,16,57,56,4,52,239,140,27,31,240,131,61,271]),(function(e,t,n,i,o,s,u,d,c,p,g,f,m,v,_,y,C,b,S,w){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var E=function(){function e(e){this.trait=e,this.renderedElements=[]}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return\"template:\"+this.trait.trait},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){var i=s.firstIndex(this.renderedElements,(function(e){return e.templateData===n}));if(i>=0){var o=this.renderedElements[i];this.trait.unrender(n),o.index=t}else{o={index:t,templateData:n};this.renderedElements.push(o)}this.trait.renderIndex(t,n)},\ne.prototype.splice=function(e,t,n){for(var i=[],o=0,r=this.renderedElements;o<r.length;o++){var s=r[o];s.index<e?i.push(s):s.index>=e+t&&i.push({index:s.index+n-t,templateData:s.templateData})}this.renderedElements=i},e.prototype.renderIndexes=function(e){for(var t=0,n=this.renderedElements;t<n.length;t++){var i=n[t],o=i.index,r=i.templateData;e.indexOf(o)>-1&&this.trait.renderIndex(o,r)}},e.prototype.disposeTemplate=function(e){var t=s.firstIndex(this.renderedElements,(function(t){return t.templateData===e}));t<0||this.renderedElements.splice(t,1)},e}(),L=function(){function e(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new f.Emitter,this.onChange=this._onChange.event}return Object.defineProperty(e.prototype,\"trait\",{get:function(){return this._trait},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderer\",{get:function(){return new E(this)},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){\nvar i=n.length-t,o=e+t,r=a(this.sortedIndexes.filter((function(t){return t<e})),n.map((function(t,n){return t?n+e:-1})).filter((function(e){return-1!==e})),this.sortedIndexes.filter((function(e){return e>=o})).map((function(e){return e+i})));this.renderer.splice(e,t,n.length),this._set(r,r)},e.prototype.renderIndex=function(e,t){d.toggleClass(t,this._trait,this.contains(e))},e.prototype.unrender=function(e){d.removeClass(e,this._trait)},e.prototype.set=function(e,t){return this._set(e,a(e).sort(K),t)},e.prototype._set=function(e,t,n){var i=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;var r=H(o,e);return this.renderer.renderIndexes(r),this._onChange.fire({indexes:e,browserEvent:n}),i},e.prototype.get=function(){return this.indexes},e.prototype.contains=function(e){return s.binarySearch(this.sortedIndexes,e,K)>=0},e.prototype.dispose=function(){i.dispose(this._onChange)},h([u.memoize],e.prototype,\"renderer\",null),e}(),D=function(e){function t(){return e.call(this,\"focused\")||this}\nreturn r(t,e),t.prototype.renderIndex=function(t,n){e.prototype.renderIndex.call(this,t,n),this.contains(t)?n.setAttribute(\"aria-selected\",\"true\"):n.removeAttribute(\"aria-selected\")},t}(L),N=function(){function e(e,t,n){this.trait=e,this.view=t,this.identityProvider=n}return e.prototype.splice=function(e,t,n){var i=this;if(!this.identityProvider)return this.trait.splice(e,t,n.map((function(){return!1})));var o=this.trait.get().map((function(e){return i.identityProvider.getId(i.view.element(e)).toString()})),r=n.map((function(e){return o.indexOf(i.identityProvider.getId(e).toString())>-1}));this.trait.splice(e,t,r)},e}();function x(e){return\"INPUT\"===e.tagName||\"TEXTAREA\"===e.tagName}var I,M=function(){function e(e,t,n){this.list=e,this.view=t,this.disposables=new i.DisposableStore;var o=!1!==n.multipleSelectionSupport;this.openController=n.openController||F;var r=f.Event.chain(m.domEvent(t.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).map((function(e){return new g.StandardKeyboardEvent(e)}))\n;r.filter((function(e){return 3===e.keyCode})).on(this.onEnter,this,this.disposables),r.filter((function(e){return 16===e.keyCode})).on(this.onUpArrow,this,this.disposables),r.filter((function(e){return 18===e.keyCode})).on(this.onDownArrow,this,this.disposables),r.filter((function(e){return 11===e.keyCode})).on(this.onPageUpArrow,this,this.disposables),r.filter((function(e){return 12===e.keyCode})).on(this.onPageDownArrow,this,this.disposables),r.filter((function(e){return 9===e.keyCode})).on(this.onEscape,this,this.disposables),o&&r.filter((function(e){return(c.isMacintosh?e.metaKey:e.ctrlKey)&&31===e.keyCode})).on(this.onCtrlA,this,this.disposables)}return e.prototype.onEnter=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent),this.openController.shouldOpen(e.browserEvent)&&this.list.open(this.list.getFocus(),e.browserEvent)},e.prototype.onUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent),\nthis.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onCtrlA=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(s.range(this.list.length),e.browserEvent),this.view.domNode.focus()},e.prototype.onEscape=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.view.domNode.focus()},e.prototype.dispose=function(){this.disposables.dispose()},e}();!function(e){\ne[e.Idle=0]=\"Idle\",e[e.Typing=1]=\"Typing\"}(I||(I={})),t.DefaultKeyboardNavigationDelegate=new(function(){function e(){}return e.prototype.mightProducePrintableCharacter=function(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=93&&e.keyCode<=102||e.keyCode>=80&&e.keyCode<=90)},e}());var k=function(){function e(e,t,n,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=n,this.delegate=o,this.enabled=!1,this.state=I.Idle,this.automaticKeyboardNavigation=!0,this.triggered=!1,this.enabledDisposables=new i.DisposableStore,this.disposables=new i.DisposableStore,this.updateOptions(e.options)}return e.prototype.updateOptions=function(e){void 0===e.enableKeyboardNavigation||!!e.enableKeyboardNavigation?this.enable():this.disable(),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation)},e.prototype.enable=function(){var e=this;if(!this.enabled){\nvar t=f.Event.chain(m.domEvent(this.view.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).map((function(e){return new g.StandardKeyboardEvent(e)})).filter((function(t){return e.delegate.mightProducePrintableCharacter(t)})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).map((function(e){return e.browserEvent.key})).event,n=f.Event.debounce(t,(function(){return null}),800);f.Event.reduce(f.Event.any(t,n),(function(e,t){return null===t?null:(e||\"\")+t}))(this.onInput,this,this.enabledDisposables),this.enabled=!0,this.triggered=!1}},e.prototype.disable=function(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)},e.prototype.onInput=function(e){if(!e)return this.state=I.Idle,void(this.triggered=!1);var t=this.list.getFocus(),n=t.length>0?t[0]:0,i=this.state===I.Idle?1:0;this.state=I.Typing;for(var o=0;o<this.list.length;o++){\nvar r=(n+o+i)%this.list.length,s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(r)),a=s&&s.toString();if(void 0===a||w.matchesPrefix(e,a))return this.list.setFocus([r]),void this.list.reveal(r)}},e.prototype.dispose=function(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()},e}(),T=function(){function e(e,t){this.list=e,this.view=t,this.disposables=new i.DisposableStore,f.Event.chain(m.domEvent(t.domNode,\"keydown\")).filter((function(e){return!x(e.target)})).map((function(e){return new g.StandardKeyboardEvent(e)})).filter((function(e){return!(2!==e.keyCode||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)})).on(this.onTab,this,this.disposables)}return e.prototype.onTab=function(e){if(e.target===this.view.domNode){var t=this.list.getFocus();if(0!==t.length){var n=this.view.domElement(t[0]);if(n){var i=n.querySelector(\"[tabIndex]\");if(i&&i instanceof HTMLElement&&-1!==i.tabIndex){var o=window.getComputedStyle(i)\n;\"hidden\"!==o.visibility&&\"none\"!==o.display&&(e.preventDefault(),e.stopPropagation(),i.focus())}}}}},e.prototype.dispose=function(){this.disposables.dispose()},e}();function R(e){return c.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function O(e){return e.browserEvent.shiftKey}function P(e){return e instanceof MouseEvent&&2===e.button}t.isSelectionSingleChangeEvent=R,t.isSelectionRangeChangeEvent=O;var A={isSelectionSingleChangeEvent:R,isSelectionRangeChangeEvent:O},F={shouldOpen:function(e){return!(e instanceof MouseEvent)||!P(e)}},W=function(){function e(e){this.list=e,this.disposables=new i.DisposableStore,this.multipleSelectionSupport=!(!1===e.options.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=e.options.multipleSelectionController||A),this.openController=e.options.openController||F,this.mouseSupport=void 0===e.options.mouseSupport||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),\ne.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(p.Gesture.addTarget(e.getHTMLElement()))),e.onMouseClick(this.onPointer,this,this.disposables),e.onMouseMiddleClick(this.onPointer,this,this.disposables),e.onTap(this.onPointer,this,this.disposables)}return e.prototype.isSelectionSingleChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):c.isMacintosh?e.browserEvent.metaKey:e.browserEvent.ctrlKey},e.prototype.isSelectionRangeChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey},e.prototype.isSelectionChangeEvent=function(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)},e.prototype.onMouseDown=function(e){\ndocument.activeElement!==e.browserEvent.target&&this.list.domFocus()},e.prototype.onContextMenu=function(e){var t=void 0===e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)},e.prototype.onPointer=function(e){if(this.mouseSupport&&!x(e.browserEvent.target)){var t=this.list.getFocus()[0],n=this.list.getSelection();t=void 0===t?n[0]:t;var i=e.index;if(void 0===i)return this.list.setFocus([],e.browserEvent),void this.list.setSelection([],e.browserEvent);if(this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e))return this.changeSelection(e,t);if(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return this.changeSelection(e,t);this.list.setFocus([i],e.browserEvent),P(e.browserEvent)||(this.list.setSelection([i],e.browserEvent),this.openController.shouldOpen(e.browserEvent)&&this.list.open([i],e.browserEvent))}},e.prototype.onDoubleClick=function(e){if(!(x(e.browserEvent.target)||this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))){var t=this.list.getFocus()\n;this.list.setSelection(t,e.browserEvent),this.list.pin(t)}},e.prototype.changeSelection=function(e,t){var n=e.index;if(this.isSelectionRangeChangeEvent(e)&&void 0!==t){var i=Math.min(t,n),o=Math.max(t,n),r=s.range(i,o+1),l=function(e,t){var n=e.indexOf(t);if(-1===n)return[];var i=[],o=n-1;for(;o>=0&&e[o]===t-(n-o);)i.push(e[o--]);i.reverse(),o=n;for(;o<e.length&&e[o]===t+(o-n);)i.push(e[o++]);return i}(H(d=this.list.getSelection(),[t]),t);if(0===l.length)return;var u=H(r,function(e,t){var n=[],i=0,o=0;for(;i<e.length||o<t.length;)if(i>=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){i++,o++;continue}e[i]<t[o]?n.push(e[i++]):o++}return n}(d,l));this.list.setSelection(u,e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){var d;u=(d=this.list.getSelection()).filter((function(e){return e!==n}));this.list.setFocus([n]),d.length===u.length?this.list.setSelection(a(u,[n]),e.browserEvent):this.list.setSelection(u,e.browserEvent)}},e.prototype.dispose=function(){\nthis.disposables.dispose()},e}();t.MouseController=W;var B=function(){function e(e,t){this.styleElement=e,this.selectorSuffix=t}return e.prototype.style=function(e){var t=this.selectorSuffix&&\".\"+this.selectorSuffix,n=[];e.listBackground&&(e.listBackground.isOpaque()?n.push(\".monaco-list\"+t+\" .monaco-list-rows { background: \"+e.listBackground+\"; }\"):c.isMacintosh||console.warn(\"List with id '\"+this.selectorSuffix+\"' was styled with a non-opaque background color. This will break sub-pixel antialiasing.\")),e.listFocusBackground&&(n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused { background-color: \"+e.listFocusBackground+\"; }\"),n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused:hover { background-color: \"+e.listFocusBackground+\"; }\")),e.listFocusForeground&&n.push(\".monaco-list\"+t+\":focus .monaco-list-row.focused { color: \"+e.listFocusForeground+\"; }\"),\ne.listActiveSelectionBackground&&(n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected { background-color: \"+e.listActiveSelectionBackground+\"; }\"),n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected:hover { background-color: \"+e.listActiveSelectionBackground+\"; }\")),e.listActiveSelectionForeground&&n.push(\".monaco-list\"+t+\":focus .monaco-list-row.selected { color: \"+e.listActiveSelectionForeground+\"; }\"),e.listFocusAndSelectionBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.selected.focused { background-color: \"+e.listFocusAndSelectionBackground+\"; }\\n\\t\\t\\t\"),e.listFocusAndSelectionForeground&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.selected.focused { color: \"+e.listFocusAndSelectionForeground+\"; }\\n\\t\\t\\t\"),e.listInactiveFocusBackground&&(n.push(\".monaco-list\"+t+\" .monaco-list-row.focused { background-color:  \"+e.listInactiveFocusBackground+\"; }\"),\nn.push(\".monaco-list\"+t+\" .monaco-list-row.focused:hover { background-color:  \"+e.listInactiveFocusBackground+\"; }\")),e.listInactiveSelectionBackground&&(n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { background-color:  \"+e.listInactiveSelectionBackground+\"; }\"),n.push(\".monaco-list\"+t+\" .monaco-list-row.selected:hover { background-color:  \"+e.listInactiveSelectionBackground+\"; }\")),e.listInactiveSelectionForeground&&n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { color: \"+e.listInactiveSelectionForeground+\"; }\"),e.listHoverBackground&&n.push(\".monaco-list\"+t+\":not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color:  \"+e.listHoverBackground+\"; }\"),e.listHoverForeground&&n.push(\".monaco-list\"+t+\" .monaco-list-row:hover:not(.selected):not(.focused) { color:  \"+e.listHoverForeground+\"; }\"),e.listSelectionOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row.selected { outline: 1px dotted \"+e.listSelectionOutline+\"; outline-offset: -1px; }\"),\ne.listFocusOutline&&n.push(\"\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list\"+t+\":focus .monaco-list-row.focused { outline: 1px solid \"+e.listFocusOutline+\"; outline-offset: -1px; }\\n\\t\\t\\t\"),e.listInactiveFocusOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row.focused { outline: 1px dotted \"+e.listInactiveFocusOutline+\"; outline-offset: -1px; }\"),e.listHoverOutline&&n.push(\".monaco-list\"+t+\" .monaco-list-row:hover { outline: 1px dashed \"+e.listHoverOutline+\"; outline-offset: -1px; }\"),e.listDropBackground&&n.push(\"\\n\\t\\t\\t\\t.monaco-list\"+t+\".drop-target,\\n\\t\\t\\t\\t.monaco-list\"+t+\" .monaco-list-rows.drop-target,\\n\\t\\t\\t\\t.monaco-list\"+t+\" .monaco-list-row.drop-target { background-color: \"+e.listDropBackground+\" !important; color: inherit !important; }\\n\\t\\t\\t\"),e.listFilterWidgetBackground&&n.push(\".monaco-list-type-filter { background-color: \"+e.listFilterWidgetBackground+\" }\"),e.listFilterWidgetOutline&&n.push(\".monaco-list-type-filter { border: 1px solid \"+e.listFilterWidgetOutline+\"; }\"),\ne.listFilterWidgetNoMatchesOutline&&n.push(\".monaco-list-type-filter.no-matches { border: 1px solid \"+e.listFilterWidgetNoMatchesOutline+\"; }\"),e.listMatchesShadow&&n.push(\".monaco-list-type-filter { box-shadow: 1px 1px 1px \"+e.listMatchesShadow+\"; }\");var i=n.join(\"\\n\");i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i)},e}();t.DefaultStyleController=B;var V={listFocusBackground:y.Color.fromHex(\"#7FB0D0\"),listActiveSelectionBackground:y.Color.fromHex(\"#0E639C\"),listActiveSelectionForeground:y.Color.fromHex(\"#FFFFFF\"),listFocusAndSelectionBackground:y.Color.fromHex(\"#094771\"),listFocusAndSelectionForeground:y.Color.fromHex(\"#FFFFFF\"),listInactiveSelectionBackground:y.Color.fromHex(\"#3F3F46\"),listHoverBackground:y.Color.fromHex(\"#2A2D2E\"),listDropBackground:y.Color.fromHex(\"#383B3D\"),treeIndentGuidesStroke:y.Color.fromHex(\"#a9a9a9\")},z={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:function(){return null},onDragStart:function(){},onDragOver:function(){return!1},\ndrop:function(){}},ariaRootRole:v.ListAriaRootRole.TREE};function H(e,t){for(var n=[],i=0,o=0;i<e.length||o<t.length;)if(i>=e.length)n.push(t[o++]);else if(o>=t.length)n.push(e[i++]);else{if(e[i]===t[o]){n.push(e[i]),i++,o++;continue}e[i]<t[o]?n.push(e[i++]):n.push(t[o++])}return n}var K=function(e,t){return e-t},U=function(){function e(e,t){this._templateId=e,this.renderers=t}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return this._templateId},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return this.renderers.map((function(t){return t.renderTemplate(e)}))},e.prototype.renderElement=function(e,t,n,i){for(var o=0,r=0,s=this.renderers;r<s.length;r++){s[r].renderElement(e,t,n[o++],i)}},e.prototype.disposeElement=function(e,t,n,i){for(var o=0,r=0,s=this.renderers;r<s.length;r++){var a=s[r];a.disposeElement&&a.disposeElement(e,t,n[o],i),o+=1}},e.prototype.disposeTemplate=function(e){for(var t=0,n=0,i=this.renderers;n<i.length;n++){i[n].disposeTemplate(e[t++])}},e\n}(),j=function(){function e(e){this.accessibilityProvider=e,this.templateId=\"a18n\"}return e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){var i=this.accessibilityProvider.getAriaLabel(e);i?n.setAttribute(\"aria-label\",i):n.removeAttribute(\"aria-label\");var o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);\"number\"==typeof o?n.setAttribute(\"aria-level\",\"\"+o):n.removeAttribute(\"aria-level\")},e.prototype.disposeTemplate=function(e){},e}(),q=function(){function e(e,t){this.list=e,this.dnd=t}return e.prototype.getDragElements=function(e){var t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]},e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(e,t)},e.prototype.onDragOver=function(e,t,n,i){return this.dnd.onDragOver(e,t,n,i)},\ne.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e.prototype.drop=function(e,t,n,i){this.dnd.drop(e,t,n,i)},e}(),G=function(){function e(e,o,r,s,u){void 0===u&&(u=z),this.user=e,this._options=u,this.eventBufferer=new f.EventBufferer,this.disposables=new i.DisposableStore,this._onDidOpen=new f.Emitter,this.onDidOpen=this._onDidOpen.event,this._onDidPin=new f.Emitter,this.didJustPressContextMenuKey=!1,this._onDidDispose=new f.Emitter,this.onDidDispose=this._onDidDispose.event,this.focus=new D,this.selection=new L(\"selected\"),C.mixin(u,V,!1);var c=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=u.accessibilityProvider,this.accessibilityProvider&&(c.push(new j(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant&&this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map((function(e){return new U(e.templateId,a(c,[e]))}));var h=l(l({},u),{dnd:u.dnd&&new q(this,u.dnd)})\n;if(this.view=new _.ListView(o,r,s,h),\"string\"!=typeof u.ariaRole?this.view.domNode.setAttribute(\"role\",v.ListAriaRootRole.TREE):this.view.domNode.setAttribute(\"role\",u.ariaRole),u.styleController)this.styleController=u.styleController(this.view.domId);else{var p=d.createStyleSheet(this.view.domNode);this.styleController=new B(p,this.view.domId)}if(this.spliceable=new b.CombinedSpliceable([new N(this.focus,this.view,u.identityProvider),new N(this.selection,this.view,u.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.onDidFocus=f.Event.map(m.domEvent(this.view.domNode,\"focus\",!0),(function(){return null})),this.onDidBlur=f.Event.map(m.domEvent(this.view.domNode,\"blur\",!0),(function(){return null})),this.disposables.add(new T(this,this.view)),\"boolean\"!=typeof u.keyboardSupport||u.keyboardSupport){var g=new M(this,this.view,u);this.disposables.add(g)}\nif(u.keyboardNavigationLabelProvider){var y=u.keyboardNavigationDelegate||t.DefaultKeyboardNavigationDelegate;this.typeLabelController=new k(this,this.view,u.keyboardNavigationLabelProvider,y),this.disposables.add(this.typeLabelController)}this.disposables.add(this.createMouseController(u)),this.onFocusChange(this._onFocusChange,this,this.disposables),this.onSelectionChange(this._onSelectionChange,this,this.disposables),u.ariaLabel&&this.view.domNode.setAttribute(\"aria-label\",n.localize(0,null,u.ariaLabel))}return Object.defineProperty(e.prototype,\"onFocusChange\",{get:function(){var e=this;return f.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),(function(t){return e.toListEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onSelectionChange\",{get:function(){var e=this;return f.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),(function(t){return e.toListEvent(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"domId\",{get:function(){\nreturn this.view.domId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseClick\",{get:function(){return this.view.onMouseClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDblClick\",{get:function(){return this.view.onMouseDblClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseMiddleClick\",{get:function(){return this.view.onMouseMiddleClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onMouseDown\",{get:function(){return this.view.onMouseDown},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTouchStart\",{get:function(){return this.view.onTouchStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onTap\",{get:function(){return this.view.onTap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onContextMenu\",{get:function(){var e=this,t=f.Event.chain(m.domEvent(this.view.domNode,\"keydown\")).map((function(e){return new g.StandardKeyboardEvent(e)\n})).filter((function(t){return e.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode})).filter((function(e){return e.preventDefault(),e.stopPropagation(),!1})).event,n=f.Event.chain(m.domEvent(this.view.domNode,\"keyup\")).filter((function(){var t=e.didJustPressContextMenuKey;return e.didJustPressContextMenuKey=!1,t})).filter((function(){return e.getFocus().length>0&&!!e.view.domElement(e.getFocus()[0])})).map((function(t){var n=e.getFocus()[0];return{index:n,element:e.view.element(n),anchor:e.view.domElement(n),browserEvent:t}})).event,i=f.Event.chain(this.view.onContextMenu).filter((function(){return!e.didJustPressContextMenuKey})).map((function(e){var t=e.element,n=e.index,i=e.browserEvent;return{element:t,index:n,anchor:{x:i.clientX+1,y:i.clientY},browserEvent:i}})).event;return f.Event.any(t,n,i)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onKeyDown\",{get:function(){return m.domEvent(this.view.domNode,\"keydown\")},enumerable:!0,configurable:!0}),\ne.prototype.createMouseController=function(e){return new W(this)},e.prototype.updateOptions=function(e){void 0===e&&(e={}),this._options=l(l({},this._options),e),this.typeLabelController&&this.typeLabelController.updateOptions(this._options)},Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){var i=this;if(void 0===n&&(n=[]),e<0||e>this.view.length)throw new v.ListError(this.user,\"Invalid start index: \"+e);if(t<0)throw new v.ListError(this.user,\"Invalid delete count: \"+t);0===t&&0===n.length||this.eventBufferer.bufferEvents((function(){return i.spliceable.splice(e,t,n)}))},e.prototype.rerender=function(){this.view.rerender()},e.prototype.element=function(e){return this.view.element(e)},Object.defineProperty(e.prototype,\"length\",{get:function(){return this.view.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"contentHeight\",{get:function(){return this.view.contentHeight},enumerable:!0,\nconfigurable:!0}),Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.view.getScrollTop()},set:function(e){this.view.setScrollTop(e)},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.view.domNode.focus()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.setSelection=function(e,t){for(var n=0,i=e;n<i.length;n++){var o=i[n];if(o<0||o>=this.length)throw new v.ListError(this.user,\"Invalid index \"+o)}this.selection.set(e,t)},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.getSelectedElements=function(){var e=this;return this.getSelection().map((function(t){return e.view.element(t)}))},e.prototype.setFocus=function(e,t){for(var n=0,i=e;n<i.length;n++){var o=i[n];if(o<0||o>=this.length)throw new v.ListError(this.user,\"Invalid index \"+o)}this.focus.set(e,t)},e.prototype.focusNext=function(e,t,n,i){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var o=this.focus.get(),r=this.findNextIndex(o.length>0?o[0]+e:0,t,i)\n;r>-1&&this.setFocus([r],n)}},e.prototype.focusPrevious=function(e,t,n,i){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var o=this.focus.get(),r=this.findPreviousIndex(o.length>0?o[0]-e:0,t,i);r>-1&&this.setFocus([r],n)}},e.prototype.focusNextPage=function(e,t){var n=this,i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=0===i?0:i-1;var o=this.view.element(i),r=this.getFocusedElements()[0];if(r!==o){var s=this.findPreviousIndex(i,!1,t);s>-1&&r!==this.view.element(s)?this.setFocus([s],e):this.setFocus([i],e)}else{var a=this.view.getScrollTop();this.view.setScrollTop(a+this.view.renderHeight-this.view.elementHeight(i)),this.view.getScrollTop()!==a&&setTimeout((function(){return n.focusNextPage(e,t)}),0)}},e.prototype.focusPreviousPage=function(e,t){var n,i=this,o=this.view.getScrollTop();n=0===o?this.view.indexAt(o):this.view.indexAfter(o-1);var r=this.view.element(n),s=this.getFocusedElements()[0];if(s!==r){var a=this.findNextIndex(n,!1,t)\n;a>-1&&s!==this.view.element(a)?this.setFocus([a],e):this.setFocus([n],e)}else{var l=o;this.view.setScrollTop(o-this.view.renderHeight),this.view.getScrollTop()!==l&&setTimeout((function(){return i.focusPreviousPage(e,t)}),0)}},e.prototype.focusLast=function(e,t){if(0!==this.length){var n=this.findPreviousIndex(this.length-1,!1,t);n>-1&&this.setFocus([n],e)}},e.prototype.focusFirst=function(e,t){if(0!==this.length){var n=this.findNextIndex(0,!1,t);n>-1&&this.setFocus([n],e)}},e.prototype.findNextIndex=function(e,t,n){void 0===t&&(t=!1);for(var i=0;i<this.length;i++){if(e>=this.length&&!t)return-1;if(e%=this.length,!n||n(this.element(e)))return e;e++}return-1},e.prototype.findPreviousIndex=function(e,t,n){void 0===t&&(t=!1);for(var i=0;i<this.length;i++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!n||n(this.element(e)))return e;e--}return-1},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.getFocusedElements=function(){var e=this\n;return this.getFocus().map((function(t){return e.view.element(t)}))},e.prototype.reveal=function(e,t){if(e<0||e>=this.length)throw new v.ListError(this.user,\"Invalid index \"+e);var n=this.view.getScrollTop(),i=this.view.elementTop(e),r=this.view.elementHeight(e);if(o.isNumber(t)){var s=r-this.view.renderHeight;this.view.setScrollTop(s*S.clamp(t,0,1)+i)}else{var a=i+r,l=n+this.view.renderHeight;i<n&&a>=l||(i<n?this.view.setScrollTop(i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}},e.prototype.getRelativeTop=function(e){if(e<0||e>=this.length)throw new v.ListError(this.user,\"Invalid index \"+e);var t=this.view.getScrollTop(),n=this.view.elementTop(e),i=this.view.elementHeight(e);if(n<t||n+i>t+this.view.renderHeight)return null;var o=i-this.view.renderHeight;return Math.abs((t-n)/o)},e.prototype.getHTMLElement=function(){return this.view.domNode},e.prototype.open=function(e,t){for(var n=this,i=0,o=e;i<o.length;i++){var r=o[i];if(r<0||r>=this.length)throw new v.ListError(this.user,\"Invalid index \"+r)}\nthis._onDidOpen.fire({indexes:e,elements:e.map((function(e){return n.view.element(e)})),browserEvent:t})},e.prototype.pin=function(e,t){for(var n=this,i=0,o=e;i<o.length;i++){var r=o[i];if(r<0||r>=this.length)throw new v.ListError(this.user,\"Invalid index \"+r)}this._onDidPin.fire({indexes:e,elements:e.map((function(e){return n.view.element(e)})),browserEvent:t})},e.prototype.style=function(e){this.styleController.style(e)},e.prototype.toListEvent=function(e){var t=this,n=e.indexes,i=e.browserEvent;return{indexes:n,elements:n.map((function(e){return t.view.element(e)})),browserEvent:i}},e.prototype._onFocusChange=function(){var e=this.focus.get();d.toggleClass(this.view.domNode,\"element-focused\",e.length>0),this.onDidChangeActiveDescendant()},e.prototype.onDidChangeActiveDescendant=function(){var e,t=this.focus.get();if(t.length>0){var n=void 0;(null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(n=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),\nthis.view.domNode.setAttribute(\"aria-activedescendant\",n||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute(\"aria-activedescendant\")},e.prototype._onSelectionChange=function(){var e=this.selection.get();d.toggleClass(this.view.domNode,\"selection-none\",0===e.length),d.toggleClass(this.view.domNode,\"selection-single\",1===e.length),d.toggleClass(this.view.domNode,\"selection-multiple\",e.length>1)},e.prototype.dispose=function(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidOpen.dispose(),this._onDidPin.dispose(),this._onDidDispose.dispose()},h([u.memoize],e.prototype,\"onFocusChange\",null),h([u.memoize],e.prototype,\"onSelectionChange\",null),h([u.memoize],e.prototype,\"onContextMenu\",null),e}();t.List=G})),define(n[404],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/menu/menu\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[205],i([0,1,404,5,55,70,6,56,15,2,53,16,272]),(function(e,t,n,i,o,s,l,u,d,c,h,p){\"use strict\";var g;Object.defineProperty(t,\"__esModule\",{value:!0}),t.MENU_MNEMONIC_REGEX=/\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/,t.MENU_ESCAPED_MNEMONIC_REGEX=/(&amp;)?(&amp;)([^\\s&])/g,function(e){e[e.Right=0]=\"Right\",e[e.Left=1]=\"Left\"}(g=t.Direction||(t.Direction={}));var f=function(e){function t(t,n,i){var o=e.call(this,i||\"submenu\",t,\"\",!0)||this;return o.entries=n,o}return r(t,e),t}(o.Action);t.SubmenuAction=f;var m=function(e){function t(t,n,i){void 0===i&&(i={});var o=this;l.addClass(t,\"monaco-menu-container\"),t.setAttribute(\"role\",\"presentation\");var r=document.createElement(\"div\");l.addClass(r,\"monaco-menu\"),r.setAttribute(\"role\",\"presentation\"),(o=e.call(this,r,{orientation:2,actionViewItemProvider:function(e){return o.doGetActionViewItem(e,i,s)},context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,triggerKeys:{\nkeys:a([3],p.isMacintosh?[10]:[]),keyDown:!0}})||this).menuElement=r,o.actionsList.setAttribute(\"role\",\"menu\"),o.actionsList.tabIndex=0,o.menuDisposables=o._register(new c.DisposableStore),l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){new u.StandardKeyboardEvent(e).equals(2)&&e.preventDefault()})),i.enableMnemonics&&o.menuDisposables.add(l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){var t=e.key.toLocaleLowerCase();if(o.mnemonics.has(t)){l.EventHelper.stop(e,!0);var n=o.mnemonics.get(t);if(1===n.length&&(n[0]instanceof _&&n[0].container&&o.focusItemByElement(n[0].container),n[0].onClick(e)),n.length>1){var i=n.shift();i&&i.container&&(o.focusItemByElement(i.container),n.push(i)),o.mnemonics.set(t,n)}}}))),p.isLinux&&o._register(l.addDisposableListener(r,l.EventType.KEY_DOWN,(function(e){var t=new u.StandardKeyboardEvent(e);t.equals(14)||t.equals(11)?(o.focusedItem=o.viewItems.length-1,o.focusNext(),l.EventHelper.stop(e,!0)):(t.equals(13)||t.equals(12))&&(o.focusedItem=0,\no.focusPrevious(),l.EventHelper.stop(e,!0))}))),o._register(l.addDisposableListener(o.domNode,l.EventType.MOUSE_OUT,(function(e){var t=e.relatedTarget;l.isAncestor(t,o.domNode)||(o.focusedItem=void 0,o.updateFocus(),e.stopPropagation())}))),o._register(l.addDisposableListener(o.actionsList,l.EventType.MOUSE_OVER,(function(e){var t=e.target;if(t&&l.isAncestor(t,o.actionsList)&&t!==o.actionsList){for(;t.parentElement!==o.actionsList&&null!==t.parentElement;)t=t.parentElement;if(l.hasClass(t,\"action-item\")){var n=o.focusedItem;o.setFocusedItem(t),n!==o.focusedItem&&o.updateFocus()}}})));var s={parent:o};o.mnemonics=new Map,o.scrollableElement=o._register(new h.DomScrollableElement(r,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));var d=o.scrollableElement.getDomNode();return d.style.position=\"\",o._register(l.addDisposableListener(d,l.EventType.MOUSE_UP,(function(e){e.preventDefault()}))),\nr.style.maxHeight=Math.max(10,window.innerHeight-t.getBoundingClientRect().top-30)+\"px\",o.push(n,{icon:!0,label:!0,isMenu:!0}),t.appendChild(o.scrollableElement.getDomNode()),o.scrollableElement.scanDomNode(),o.viewItems.filter((function(e){return!(e instanceof y)})).forEach((function(e,t,n){e.updatePositionInSet(t+1,n.length)})),o}return r(t,e),t.prototype.style=function(e){var t=this.getContainer(),n=e.foregroundColor?\"\"+e.foregroundColor:\"\",i=e.backgroundColor?\"\"+e.backgroundColor:\"\",o=e.borderColor?\"1px solid \"+e.borderColor:\"\",r=e.shadowColor?\"0 2px 4px \"+e.shadowColor:\"\";t.style.border=o,this.domNode.style.color=n,this.domNode.style.backgroundColor=i,t.style.boxShadow=r,this.viewItems&&this.viewItems.forEach((function(t){(t instanceof v||t instanceof y)&&t.style(e)}))},t.prototype.getContainer=function(){return this.scrollableElement.getDomNode()},Object.defineProperty(t.prototype,\"onScroll\",{get:function(){return this.scrollableElement.onScroll},enumerable:!0,configurable:!0}),\nObject.defineProperty(t.prototype,\"scrollOffset\",{get:function(){return this.menuElement.scrollTop},enumerable:!0,configurable:!0}),t.prototype.focusItemByElement=function(e){var t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()},t.prototype.setFocusedItem=function(e){for(var t=0;t<this.actionsList.children.length;t++){if(e===this.actionsList.children[t]){this.focusedItem=t;break}}},t.prototype.updateFocus=function(t){e.prototype.updateFocus.call(this,t,!0),void 0!==this.focusedItem&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})},t.prototype.doGetActionViewItem=function(e,t,n){if(e instanceof s.Separator)return new y(t.context,e,{icon:!0});if(e instanceof f){var i=new _(e,e.entries,n,t);if(t.enableMnemonics)if((u=i.getMnemonic())&&i.isEnabled()){var o=[];this.mnemonics.has(u)&&(o=this.mnemonics.get(u)),o.push(i),this.mnemonics.set(u,o)}return i}var r={enableMnemonics:t.enableMnemonics};if(t.getKeyBinding){var a=t.getKeyBinding(e)\n;if(a){var l=a.getLabel();l&&(r.keybinding=l)}}var u;i=new v(t.context,e,r);if(t.enableMnemonics&&(u=i.getMnemonic())&&i.isEnabled()){o=[];this.mnemonics.has(u)&&(o=this.mnemonics.get(u)),o.push(i),this.mnemonics.set(u,o)}return i},t}(s.ActionBar);t.Menu=m;var v=function(e){function o(n,i,o){void 0===o&&(o={});var r=this;if(o.isMenu=!0,(r=e.call(this,i,i,o)||this).options=o,r.options.icon=void 0!==o.icon&&o.icon,r.options.label=void 0===o.label||o.label,r.cssClass=\"\",r.options.label&&o.enableMnemonics){var s=r.getAction().label;if(s){var a=t.MENU_MNEMONIC_REGEX.exec(s);a&&(r.mnemonic=(a[1]?a[1]:a[3]).toLocaleLowerCase())}}return r.runOnceToEnableMouseUp=new d.RunOnceScheduler((function(){r.element&&r._register(l.addDisposableListener(r.element,l.EventType.MOUSE_UP,(function(e){e.defaultPrevented||(l.EventHelper.stop(e,!0),r.onClick(e))})))}),100),r._register(r.runOnceToEnableMouseUp),r}return r(o,e),o.prototype.render=function(t){e.prototype.render.call(this,t),this.element&&(this.container=t,\nthis.item=l.append(this.element,l.$(\"a.action-menu-item\")),this._action.id===s.Separator.ID?this.item.setAttribute(\"role\",\"presentation\"):(this.item.setAttribute(\"role\",\"menuitem\"),this.mnemonic&&this.item.setAttribute(\"aria-keyshortcuts\",\"\"+this.mnemonic)),this.check=l.append(this.item,l.$(\"span.menu-item-check.codicon.codicon-check\")),this.check.setAttribute(\"role\",\"none\"),this.label=l.append(this.item,l.$(\"span.action-label\")),this.options.label&&this.options.keybinding&&(l.append(this.item,l.$(\"span.keybinding\")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked())},o.prototype.blur=function(){e.prototype.blur.call(this),this.applyStyle()},o.prototype.focus=function(){e.prototype.focus.call(this),this.item&&this.item.focus(),this.applyStyle()},o.prototype.updatePositionInSet=function(e,t){this.item&&(this.item.setAttribute(\"aria-posinset\",\"\"+e),\nthis.item.setAttribute(\"aria-setsize\",\"\"+t))},o.prototype.updateLabel=function(){if(this.options.label){var e=this.getAction().label;if(e){var n=C(e);this.options.enableMnemonics||(e=n),this.label&&this.label.setAttribute(\"aria-label\",n.replace(/&&/g,\"&\"));var o=t.MENU_MNEMONIC_REGEX.exec(e);if(o){e=i.escape(e),t.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;for(var r=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);r&&r[1];)r=t.MENU_ESCAPED_MNEMONIC_REGEX.exec(e);r&&(e=e.substr(0,r.index)+'<u aria-hidden=\"true\">'+r[3]+\"</u>\"+e.substr(r.index+r[0].length)),e=e.replace(/&amp;&amp;/g,\"&amp;\"),this.item&&this.item.setAttribute(\"aria-keyshortcuts\",(o[1]?o[1]:o[3]).toLocaleLowerCase())}else e=e.replace(/&&/g,\"&\")}this.label&&(this.label.innerHTML=e.trim())}},o.prototype.updateTooltip=function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=n.localize(0,null,e,this.options.keybinding))),\ne&&this.item&&(this.item.title=e)},o.prototype.updateClass=function(){this.cssClass&&this.item&&l.removeClasses(this.item,this.cssClass),this.options.icon&&this.label?(this.cssClass=this.getAction().class||\"\",l.addClass(this.label,\"icon\"),this.cssClass&&l.addClasses(this.label,this.cssClass),this.updateEnabled()):this.label&&l.removeClass(this.label,\"icon\")},o.prototype.updateEnabled=function(){this.getAction().enabled?(this.element&&l.removeClass(this.element,\"disabled\"),this.item&&(l.removeClass(this.item,\"disabled\"),this.item.tabIndex=0)):(this.element&&l.addClass(this.element,\"disabled\"),this.item&&(l.addClass(this.item,\"disabled\"),l.removeTabIndexAndUpdateFocus(this.item)))},o.prototype.updateChecked=function(){this.item&&(this.getAction().checked?(l.addClass(this.item,\"checked\"),this.item.setAttribute(\"role\",\"menuitemcheckbox\"),this.item.setAttribute(\"aria-checked\",\"true\")):(l.removeClass(this.item,\"checked\"),this.item.setAttribute(\"role\",\"menuitem\"),this.item.setAttribute(\"aria-checked\",\"false\")))},\no.prototype.getMnemonic=function(){return this.mnemonic},o.prototype.applyStyle=function(){if(this.menuStyle){var e=this.element&&l.hasClass(this.element,\"focused\"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,n=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,i=e&&this.menuStyle.selectionBorderColor?\"thin solid \"+this.menuStyle.selectionBorderColor:\"\";this.item&&(this.item.style.color=t?t.toString():\"\",this.item.style.backgroundColor=n?n.toString():\"\"),this.check&&(this.check.style.color=t?t.toString():\"\"),this.container&&(this.container.style.border=i)}},o.prototype.style=function(e){this.menuStyle=e,this.applyStyle()},o}(s.BaseActionViewItem),_=function(e){function t(t,n,i,o){var r=e.call(this,t,t,o)||this;return r.submenuActions=n,r.parentData=i,r.submenuOptions=o,r.mysubmenu=null,r.submenuDisposables=r._register(new c.DisposableStore),r.mouseOver=!1,\nr.expandDirection=o&&void 0!==o.expandDirection?o.expandDirection:g.Right,r.showScheduler=new d.RunOnceScheduler((function(){r.mouseOver&&(r.cleanupExistingSubmenu(!1),r.createSubmenu(!1))}),250),r.hideScheduler=new d.RunOnceScheduler((function(){r.element&&!l.isAncestor(document.activeElement,r.element)&&r.parentData.submenu===r.mysubmenu&&(r.parentData.parent.focus(!1),r.cleanupExistingSubmenu(!0))}),750),r}return r(t,e),t.prototype.render=function(t){var n=this;e.prototype.render.call(this,t),this.element&&(this.item&&(l.addClass(this.item,\"monaco-submenu-item\"),this.item.setAttribute(\"aria-haspopup\",\"true\"),this.updateAriaExpanded(\"false\"),this.submenuIndicator=l.append(this.item,l.$(\"span.submenu-indicator.codicon.codicon-chevron-right\")),this.submenuIndicator.setAttribute(\"aria-hidden\",\"true\")),this._register(l.addDisposableListener(this.element,l.EventType.KEY_UP,(function(e){var t=new u.StandardKeyboardEvent(e);(t.equals(17)||t.equals(3))&&(l.EventHelper.stop(e,!0),n.createSubmenu(!0))}))),\nthis._register(l.addDisposableListener(this.element,l.EventType.KEY_DOWN,(function(e){var t=new u.StandardKeyboardEvent(e);document.activeElement===n.item&&(t.equals(17)||t.equals(3))&&l.EventHelper.stop(e,!0)}))),this._register(l.addDisposableListener(this.element,l.EventType.MOUSE_OVER,(function(e){n.mouseOver||(n.mouseOver=!0,n.showScheduler.schedule())}))),this._register(l.addDisposableListener(this.element,l.EventType.MOUSE_LEAVE,(function(e){n.mouseOver=!1}))),this._register(l.addDisposableListener(this.element,l.EventType.FOCUS_OUT,(function(e){n.element&&!l.isAncestor(document.activeElement,n.element)&&n.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((function(){n.parentData.parent.focus(!1),n.cleanupExistingSubmenu(!1)}))))},t.prototype.onClick=function(e){l.EventHelper.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)},t.prototype.cleanupExistingSubmenu=function(e){\nthis.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)&&(this.parentData.submenu.dispose(),this.parentData.submenu=void 0,this.updateAriaExpanded(\"false\"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0))},t.prototype.createSubmenu=function(e){var t=this;if(void 0===e&&(e=!0),this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded(\"true\"),this.submenuContainer=l.append(this.element,l.$(\"div.monaco-submenu\")),l.addClasses(this.submenuContainer,\"menubar-menu-items-holder\",\"context-view\");var n=getComputedStyle(this.parentData.parent.domNode),i=parseFloat(n.paddingTop||\"0\")||0;this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\",this.parentData.submenu=new m(this.submenuContainer,this.submenuActions,this.submenuOptions),this.menuStyle&&this.parentData.submenu.style(this.menuStyle);var o=this.element.getBoundingClientRect(),r=this.submenuContainer.getBoundingClientRect()\n;this.expandDirection===g.Right?window.innerWidth<=o.right+r.width?(this.submenuContainer.style.left=\"10px\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset+o.height+\"px\"):(this.submenuContainer.style.left=this.element.offsetWidth+\"px\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\"):this.expandDirection===g.Left&&(this.submenuContainer.style.right=this.element.offsetWidth+\"px\",this.submenuContainer.style.left=\"auto\",this.submenuContainer.style.top=this.element.offsetTop-this.parentData.parent.scrollOffset-i+\"px\"),this.submenuDisposables.add(l.addDisposableListener(this.submenuContainer,l.EventType.KEY_UP,(function(e){new u.StandardKeyboardEvent(e).equals(15)&&(l.EventHelper.stop(e,!0),t.parentData.parent.focus(),t.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add(l.addDisposableListener(this.submenuContainer,l.EventType.KEY_DOWN,(function(e){new u.StandardKeyboardEvent(e).equals(15)&&l.EventHelper.stop(e,!0)\n}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((function(){t.parentData.parent.focus(),t.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}},t.prototype.updateAriaExpanded=function(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute(\"aria-expanded\",e))},t.prototype.applyStyle=function(){if(e.prototype.applyStyle.call(this),this.menuStyle){var t=this.element&&l.hasClass(this.element,\"focused\")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t?\"\"+t:\"\"),this.parentData.submenu&&this.parentData.submenu.style(this.menuStyle)}},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)},t}(v),y=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.style=function(e){this.label&&(this.label.style.borderBottomColor=e.separatorColor?\"\"+e.separatorColor:\"\")},t}(s.ActionViewItem);function C(e){var n=t.MENU_MNEMONIC_REGEX,i=n.exec(e);if(!i)return e;var o=!i[1];return e.replace(n,o?\"$2$3\":\"\").trim()}t.cleanMnemonic=C})),define(n[405],i([0,1,205]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,n){var i=e.call(this,t,n,\"contextsubmenu\")||this;return i.entries=n,i}return r(t,e),t}(n.SubmenuAction);t.ContextSubMenu=i})),define(n[406],i([7,8]),(function(e,t){return e.create(\"vs/base/browser/ui/tree/abstractTree\",t)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}\n;define(n[154],i([0,1,2,153,6,4,56,98,19,140,52,61,129,406,15,16,38,131,87,280]),(function(e,t,n,i,o,s,u,d,c,h,p,g,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(e){function t(t){var n=e.call(this,t.elements.map((function(e){return e.element})))||this;return n.data=t,n}return r(t,e),t}(h.ElementsDragAndDropData);function w(e){return e instanceof h.ElementsDragAndDropData?new S(e):e}var E=function(){function e(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=n.Disposable.None}return e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e.element)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(w(e),t)},e.prototype.onDragOver=function(e,t,n,i,o){var r=this;void 0===o&&(o=!0);var s=this.dnd.onDragOver(w(e),t&&t.element,n,i),a=this.autoExpandNode!==t\n;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),void 0===t)return s;if(a&&\"boolean\"!=typeof s&&s.autoExpand&&(this.autoExpandDisposable=v.disposableTimeout((function(){var e=r.modelProvider(),n=e.getNodeLocation(t);e.isCollapsed(n)&&e.setCollapsed(n,!1),r.autoExpandNode=void 0}),500)),\"boolean\"==typeof s||!s.accept||void 0===s.bubble||s.feedback)return o?s:{accept:\"boolean\"==typeof s?s:s.accept,effect:\"boolean\"==typeof s?void 0:s.effect,feedback:[n]};if(1===s.bubble){var u=this.modelProvider(),d=u.getNodeLocation(t),h=u.getParentNodeLocation(d),p=u.getNode(h),g=h&&u.getListIndex(h);return this.onDragOver(e,p,g,i,!1)}var f=this.modelProvider(),m=f.getNodeLocation(t),_=f.getListIndex(m),y=f.getListRenderCount(m);return l(l({},s),{feedback:c.range(_,_+y)})},e.prototype.drop=function(e,t,n,i){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(w(e),t&&t.element,n,i)},e.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e}();var L,D=function(){\nfunction e(e){this.delegate=e}return e.prototype.getHeight=function(e){return this.delegate.getHeight(e.element)},e.prototype.getTemplateId=function(e){return this.delegate.getTemplateId(e.element)},e.prototype.hasDynamicHeight=function(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)},e.prototype.setDynamicHeight=function(e,t){this.delegate.setDynamicHeight&&this.delegate.setDynamicHeight(e.element,t)},e}();t.ComposedTreeDelegate=D,function(e){e.None=\"none\",e.OnHover=\"onHover\",e.Always=\"always\"}(L=t.RenderIndentGuides||(t.RenderIndentGuides={}));var N=function(){function e(e,t){var n=this;void 0===t&&(t=[]),this._elements=t,this.onDidChange=s.Event.forEach(e,(function(e){return n._elements=e}))}return Object.defineProperty(e.prototype,\"elements\",{get:function(){return this._elements},enumerable:!0,configurable:!0}),e}(),x=function(){function e(t,i,o,r,a){void 0===a&&(a={}),this.renderer=t,this.modelProvider=i,this.activeNodes=r,this.renderedElements=new Map,\nthis.renderedNodes=new Map,this.indent=e.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new b.SetMap,this.activeIndentNodes=new Set,this.indentGuidesDisposable=n.Disposable.None,this.disposables=new n.DisposableStore,this.templateId=t.templateId,this.updateOptions(a),s.Event.map(o,(function(e){return e.node}))(this.onDidChangeNodeTwistieState,this,this.disposables),t.onDidChangeTwistieState&&t.onDidChangeTwistieState(this.onDidChangeTwistieState,this,this.disposables)}return e.prototype.updateOptions=function(e){if(void 0===e&&(e={}),void 0!==e.indent&&(this.indent=C.clamp(e.indent,0,40)),void 0!==e.renderIndentGuides){var t=e.renderIndentGuides!==L.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){var i=new n.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}\nvoid 0!==e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)},e.prototype.renderTemplate=function(e){var t=o.append(e,o.$(\".monaco-tl-row\")),i=o.append(t,o.$(\".monaco-tl-indent\")),r=o.append(t,o.$(\".monaco-tl-twistie\")),s=o.append(t,o.$(\".monaco-tl-contents\")),a=this.renderer.renderTemplate(s);return{container:e,indent:i,twistie:r,indentGuidesDisposable:n.Disposable.None,templateData:a}},e.prototype.renderElement=function(t,n,i,o){\"number\"==typeof o&&(this.renderedNodes.set(t,{templateData:i,height:o}),this.renderedElements.set(t.element,t));var r=e.DefaultIndent+(t.depth-1)*this.indent;i.twistie.style.paddingLeft=r+\"px\",i.indent.style.width=r+this.indent-16+\"px\",this.renderTwistie(t,i),\"number\"==typeof o&&this.renderIndentGuides(t,i),this.renderer.renderElement(t,n,i.templateData,o)},e.prototype.disposeElement=function(e,t,n,i){n.indentGuidesDisposable.dispose(),this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.templateData,i),\n\"number\"==typeof i&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.onDidChangeTwistieState=function(e){var t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)},e.prototype.onDidChangeNodeTwistieState=function(e){var t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))},e.prototype.renderTwistie=function(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e.element,t.twistie),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(o.addClasses(t.twistie,\"codicon\",\"codicon-chevron-down\",\"collapsible\"),o.toggleClass(t.twistie,\"collapsed\",e.collapsed)):o.removeClasses(t.twistie,\"codicon\",\"codicon-chevron-down\",\"collapsible\",\"collapsed\"),\ne.collapsible?t.container.setAttribute(\"aria-expanded\",String(!e.collapsed)):t.container.removeAttribute(\"aria-expanded\")},e.prototype.renderIndentGuides=function(e,t){var i=this;if(o.clearNode(t.indent),t.indentGuidesDisposable.dispose(),this.shouldRenderIndentGuides){for(var r=new n.DisposableStore,s=this.modelProvider(),a=e,l=function(){var e=s.getNodeLocation(a),l=s.getParentNodeLocation(e);if(!l)return\"break\";var d=s.getNode(l),c=o.$(\".indent-guide\",{style:\"width: \"+u.indent+\"px\"});u.activeIndentNodes.has(d)&&o.addClass(c,\"active\"),0===t.indent.childElementCount?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),u.renderedIndentGuides.add(d,c),r.add(n.toDisposable((function(){return i.renderedIndentGuides.delete(d,c)}))),a=d},u=this;;){if(\"break\"===l())break}t.indentGuidesDisposable=r}},e.prototype._onDidChangeActiveNodes=function(e){var t=this;if(this.shouldRenderIndentGuides){var n=new Set,i=this.modelProvider();e.forEach((function(e){var t=i.getNodeLocation(e);try{\nvar o=i.getParentNodeLocation(t);e.collapsible&&e.children.length>0&&!e.collapsed?n.add(e):o&&n.add(i.getNode(o))}catch(e){}})),this.activeIndentNodes.forEach((function(e){n.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return o.removeClass(e,\"active\")}))})),n.forEach((function(e){t.activeIndentNodes.has(e)||t.renderedIndentGuides.forEach(e,(function(e){return o.addClass(e,\"active\")}))})),this.activeIndentNodes=n}},e.prototype.dispose=function(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),n.dispose(this.disposables)},e.DefaultIndent=8,e}(),I=function(){function e(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern=\"\",this._lowercasePattern=\"\",this.disposables=new n.DisposableStore,e.onWillRefilter(this.reset,this,this.disposables)}return Object.defineProperty(e.prototype,\"totalCount\",{get:function(){return this._totalCount},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"matchCount\",{get:function(){return this._matchCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"pattern\",{set:function(e){this._pattern=e,this._lowercasePattern=e.toLowerCase()},enumerable:!0,configurable:!0}),e.prototype.filter=function(e,t){if(this._filter){var n=this._filter.filter(e,t);if(this.tree.options.simpleKeyboardNavigation)return n;if(0===(\"boolean\"==typeof n?n?1:0:f.isFilterResult(n)?f.getVisibleState(n.visibility):n))return!1}if(this._totalCount++,this.tree.options.simpleKeyboardNavigation||!this._pattern)return this._matchCount++,{data:g.FuzzyScore.Default,visibility:!0};var i=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=i&&i.toString();if(void 0===o)return{data:g.FuzzyScore.Default,visibility:!0};var r=g.fuzzyScore(this._pattern,this._lowercasePattern,0,o,o.toLowerCase(),0,!0);return r?(this._matchCount++,{data:r,visibility:!0}):this.tree.options.filterOnType?2:{data:g.FuzzyScore.Default,visibility:!0}},\ne.prototype.reset=function(){this._totalCount=0,this._matchCount=0},e.prototype.dispose=function(){n.dispose(this.disposables)},e}(),M=function(){function e(e,t,i,r,a){this.tree=e,this.view=i,this.filter=r,this.keyboardNavigationDelegate=a,this._enabled=!1,this._pattern=\"\",this._empty=!1,this._onDidChangeEmptyState=new s.Emitter,this.positionClassName=\"ne\",this.automaticKeyboardNavigation=!0,this.triggered=!1,this._onDidChangePattern=new s.Emitter,this.enabledDisposables=new n.DisposableStore,this.disposables=new n.DisposableStore,this.domNode=o.$(\".monaco-list-type-filter.\"+this.positionClassName),this.domNode.draggable=!0,p.domEvent(this.domNode,\"dragstart\")(this.onDragStart,this,this.disposables),this.messageDomNode=o.append(i.getHTMLElement(),o.$(\".monaco-list-type-filter-message\")),this.labelDomNode=o.append(this.domNode,o.$(\"span.label\"));var l=o.append(this.domNode,o.$(\".controls\"));this._filterOnType=!!e.options.filterOnType,\nthis.filterOnTypeDomNode=o.append(l,o.$(\"input.filter.codicon.codicon-list-selection\")),this.filterOnTypeDomNode.type=\"checkbox\",this.filterOnTypeDomNode.checked=this._filterOnType,this.filterOnTypeDomNode.tabIndex=-1,this.updateFilterOnTypeTitle(),p.domEvent(this.filterOnTypeDomNode,\"input\")(this.onDidChangeFilterOnType,this,this.disposables),this.clearDomNode=o.append(l,o.$(\"button.clear.codicon.codicon-close\")),this.clearDomNode.tabIndex=-1,this.clearDomNode.title=m.localize(0,null),this.keyboardNavigationEventFilter=e.options.keyboardNavigationEventFilter,t.onDidSplice(this.onDidSpliceModel,this,this.disposables),this.updateOptions(e.options)}return Object.defineProperty(e.prototype,\"enabled\",{get:function(){return this._enabled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"pattern\",{get:function(){return this._pattern},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterOnType\",{get:function(){return this._filterOnType},enumerable:!0,configurable:!0}),\ne.prototype.updateOptions=function(e){e.simpleKeyboardNavigation?this.disable():this.enable(),void 0!==e.filterOnType&&(this._filterOnType=!!e.filterOnType,this.filterOnTypeDomNode.checked=this._filterOnType),void 0!==e.automaticKeyboardNavigation&&(this.automaticKeyboardNavigation=e.automaticKeyboardNavigation),this.tree.refilter(),this.render(),this.automaticKeyboardNavigation||this.onEventOrInput(\"\")},e.prototype.enable=function(){var e=this;if(!this._enabled){var t=s.Event.chain(p.domEvent(this.view.getHTMLElement(),\"keydown\")).filter((function(t){return!k(t.target)||t.target===e.filterOnTypeDomNode})).filter((function(e){return\"Dead\"!==e.key&&!/^Media/.test(e.key)})).map((function(e){return new u.StandardKeyboardEvent(e)})).filter(this.keyboardNavigationEventFilter||function(){return!0}).filter((function(){return e.automaticKeyboardNavigation||e.triggered})).filter((function(t){\nreturn e.keyboardNavigationDelegate.mightProducePrintableCharacter(t)||(e.pattern.length>0||e.triggered)&&(9===t.keyCode||1===t.keyCode)&&!t.altKey&&!t.ctrlKey&&!t.metaKey||1===t.keyCode&&(_.isMacintosh?t.altKey&&!t.metaKey:t.ctrlKey)&&!t.shiftKey})).forEach((function(e){e.stopPropagation(),e.preventDefault()})).event,n=p.domEvent(this.clearDomNode,\"click\");s.Event.chain(s.Event.any(t,n)).event(this.onEventOrInput,this,this.enabledDisposables),this.filter.pattern=\"\",this.tree.refilter(),this.render(),this._enabled=!0,this.triggered=!1}},e.prototype.disable=function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.clear(),this.tree.refilter(),this.render(),this._enabled=!1,this.triggered=!1)},e.prototype.onEventOrInput=function(e){\n\"string\"==typeof e?this.onInput(e):e instanceof MouseEvent||9===e.keyCode||1===e.keyCode&&(_.isMacintosh?e.altKey:e.ctrlKey)?this.onInput(\"\"):1===e.keyCode?this.onInput(0===this.pattern.length?\"\":this.pattern.substr(0,this.pattern.length-1)):this.onInput(this.pattern+e.browserEvent.key)},e.prototype.onInput=function(e){var t=this.view.getHTMLElement();e&&!this.domNode.parentElement?t.append(this.domNode):!e&&this.domNode.parentElement&&(this.domNode.remove(),this.tree.domFocus()),this._pattern=e,this._onDidChangePattern.fire(e),this.filter.pattern=e,this.tree.refilter(),e&&this.tree.focusNext(0,!0,void 0,(function(e){return!g.FuzzyScore.isDefault(e.filterData)}));var n=this.tree.getFocus();if(n.length>0){var i=n[0];null===this.tree.getRelativeTop(i)&&this.tree.reveal(i,.5)}this.render(),e||(this.triggered=!1)},e.prototype.onDragStart=function(){\nvar e=this,t=this.view.getHTMLElement(),i=o.getDomNodePagePosition(t).left,r=t.clientWidth,s=r/2,a=this.domNode.clientWidth,l=new n.DisposableStore,u=this.positionClassName,c=function(){switch(u){case\"nw\":e.domNode.style.top=\"4px\",e.domNode.style.left=\"4px\";break;case\"ne\":e.domNode.style.top=\"4px\",e.domNode.style.left=r-a-6+\"px\"}};c(),o.removeClass(this.domNode,u),o.addClass(this.domNode,\"dragging\"),l.add(n.toDisposable((function(){return o.removeClass(e.domNode,\"dragging\")}))),p.domEvent(document,\"dragover\")((function(e){e.preventDefault();var t=e.screenX-i;e.dataTransfer&&(e.dataTransfer.dropEffect=\"none\"),u=t<s?\"nw\":\"ne\",c()}),null,l),p.domEvent(this.domNode,\"dragend\")((function(){e.positionClassName=u,e.domNode.className=\"monaco-list-type-filter \"+e.positionClassName,e.domNode.style.top=\"\",e.domNode.style.left=\"\",n.dispose(l)}),null,l),d.StaticDND.CurrentDragAndDropData=new d.DragAndDropData(\"vscode-ui\"),l.add(n.toDisposable((function(){return d.StaticDND.CurrentDragAndDropData=void 0})))},\ne.prototype.onDidSpliceModel=function(){this._enabled&&0!==this.pattern.length&&(this.tree.refilter(),this.render())},e.prototype.onDidChangeFilterOnType=function(){this.tree.updateOptions({filterOnType:this.filterOnTypeDomNode.checked}),this.tree.refilter(),this.tree.domFocus(),this.render(),this.updateFilterOnTypeTitle()},e.prototype.updateFilterOnTypeTitle=function(){this.filterOnType?this.filterOnTypeDomNode.title=m.localize(1,null):this.filterOnTypeDomNode.title=m.localize(2,null)},e.prototype.render=function(){var e=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&this.tree.options.filterOnType&&e?(this.messageDomNode.textContent=m.localize(3,null),this._empty=!0):(this.messageDomNode.innerHTML=\"\",this._empty=!1),o.toggleClass(this.domNode,\"no-matches\",e),this.domNode.title=m.localize(4,null,this.filter.matchCount,this.filter.totalCount),this.labelDomNode.textContent=this.pattern.length>16?\"…\"+this.pattern.substr(this.pattern.length-16):this.pattern,\nthis._onDidChangeEmptyState.fire(this._empty)},e.prototype.shouldAllowFocus=function(e){return!(this.enabled&&this.pattern&&!this.filterOnType)||(this.filter.totalCount>0&&this.filter.matchCount<=1||!g.FuzzyScore.isDefault(e.filterData))},e.prototype.dispose=function(){this._enabled&&(this.domNode.remove(),this.enabledDisposables.dispose(),this._enabled=!1,this.triggered=!1),this._onDidChangePattern.dispose(),n.dispose(this.disposables)},e}();function k(e){return\"INPUT\"===e.tagName||\"TEXTAREA\"===e.tagName}function T(e){return{elements:e.elements.map((function(e){return e.element})),browserEvent:e.browserEvent}}function R(e,t){t(e),e.children.forEach((function(e){return R(e,t)}))}var O=function(){function e(e){this.identityProvider=e,this.nodes=[],this._onDidChange=new s.Emitter,this.onDidChange=this._onDidChange.event}return Object.defineProperty(e.prototype,\"nodeSet\",{get:function(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet},enumerable:!0,configurable:!0}),\ne.prototype.set=function(e,t){c.equals(this.nodes,e)||this._set(e,!1,t)},e.prototype._set=function(e,t,n){if(this.nodes=a(e),this.elements=void 0,this._nodeSet=void 0,!t){var i=this;this._onDidChange.fire({get elements(){return i.get()},browserEvent:n})}},e.prototype.get=function(){return this.elements||(this.elements=this.nodes.map((function(e){return e.element}))),a(this.elements)},e.prototype.getNodes=function(){return this.nodes},e.prototype.has=function(e){return this.nodeSet.has(e)},e.prototype.onDidModelSplice=function(e){var t=this,n=e.insertedNodes,i=e.deletedNodes;if(!this.identityProvider){var o=this.createNodeSet(),r=function(e){return o.delete(e)};return i.forEach((function(e){return R(e,r)})),void this.set(y.values(o))}var s=new Set,a=function(e){return s.add(t.identityProvider.getId(e.element).toString())};i.forEach((function(e){return R(e,a)}));var l=new Map,u=function(e){return l.set(t.identityProvider.getId(e.element).toString(),e)};n.forEach((function(e){return R(e,u)}))\n;for(var d=[],c=0,h=this.nodes;c<h.length;c++){var p=h[c],g=this.identityProvider.getId(p.element).toString();if(s.has(g)){var f=l.get(g);f&&d.push(f)}else d.push(p)}this._set(d,!0)},e.prototype.createNodeSet=function(){for(var e=new Set,t=0,n=this.nodes;t<n.length;t++){var i=n[t];e.add(i)}return e},e}(),P=function(e){function t(t,n){var i=e.call(this,t)||this;return i.tree=n,i}return r(t,e),t.prototype.onPointer=function(t){if(!k(t.browserEvent.target)){var n=t.element;if(!n)return e.prototype.onPointer.call(this,t);if(this.isSelectionRangeChangeEvent(t)||this.isSelectionSingleChangeEvent(t))return e.prototype.onPointer.call(this,t);var i=o.hasClass(t.browserEvent.target,\"monaco-tl-twistie\");if(!this.tree.openOnSingleClick&&2!==t.browserEvent.detail&&!i)return e.prototype.onPointer.call(this,t);var r=!1;if((r=\"function\"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(n.element):!!this.tree.expandOnlyOnTwistieClick)&&!i)return e.prototype.onPointer.call(this,t);if(n.collapsible){\nvar s=this.tree.model,a=s.getNodeLocation(n),l=t.browserEvent.altKey;if(s.setCollapsed(a,void 0,l),r&&i)return}e.prototype.onPointer.call(this,t)}},t.prototype.onDoubleClick=function(t){o.hasClass(t.browserEvent.target,\"monaco-tl-twistie\")||e.prototype.onDoubleClick.call(this,t)},t}(i.MouseController),A=function(e){function t(t,n,i,o,r,s,a){var l=e.call(this,t,n,i,o,a)||this;return l.focusTrait=r,l.selectionTrait=s,l}return r(t,e),t.prototype.createMouseController=function(e){return new P(this,e.tree)},t.prototype.splice=function(t,n,i){var o=this;if(void 0===i&&(i=[]),e.prototype.splice.call(this,t,n,i),0!==i.length){var r=[],s=[];i.forEach((function(e,n){o.focusTrait.has(e)&&r.push(t+n),o.selectionTrait.has(e)&&s.push(t+n)})),r.length>0&&e.prototype.setFocus.call(this,c.distinctES6(a(e.prototype.getFocus.call(this),r))),s.length>0&&e.prototype.setSelection.call(this,c.distinctES6(a(e.prototype.getSelection.call(this),s)))}},t.prototype.setFocus=function(t,n,i){var o=this;void 0===i&&(i=!1),\ne.prototype.setFocus.call(this,t,n),i||this.focusTrait.set(t.map((function(e){return o.element(e)})),n)},t.prototype.setSelection=function(t,n,i){var o=this;void 0===i&&(i=!1),e.prototype.setSelection.call(this,t,n),i||this.selectionTrait.set(t.map((function(e){return o.element(e)})),n)},t}(i.List),F=function(){function e(e,t,r,a,d){var h=this;void 0===d&&(d={}),this._options=d,this.eventBufferer=new s.EventBufferer,this.disposables=new n.DisposableStore,this._onWillRefilter=new s.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new s.Emitter;var p,g,f,m=new D(r),v=new s.Relay,_=new s.Relay,y=new N(_.event);this.renderers=a.map((function(e){return new x(e,(function(){return h.model}),v.event,y,d)}));for(var C=0,b=this.renderers;C<b.length;C++){var S=b[C];this.disposables.add(S)}d.keyboardNavigationLabelProvider&&(p=new I(this,d.keyboardNavigationLabelProvider,d.filter),d=l(l({},d),{filter:p}),this.disposables.add(p)),this.focus=new O(d.identityProvider),\nthis.selection=new O(d.identityProvider),this.view=new A(e,t,m,this.renderers,this.focus,this.selection,l(l({},(g=function(){return h.model},(f=d)&&l(l({},f),{identityProvider:f.identityProvider&&{getId:function(e){return f.identityProvider.getId(e.element)}},dnd:f.dnd&&new E(g,f.dnd),multipleSelectionController:f.multipleSelectionController&&{isSelectionSingleChangeEvent:function(e){return f.multipleSelectionController.isSelectionSingleChangeEvent(l(l({},e),{element:e.element}))},isSelectionRangeChangeEvent:function(e){return f.multipleSelectionController.isSelectionRangeChangeEvent(l(l({},e),{element:e.element}))}},accessibilityProvider:f.accessibilityProvider&&l(l({},f.accessibilityProvider),{getAriaLabel:function(e){return f.accessibilityProvider.getAriaLabel(e.element)},getAriaLevel:function(e){return e.depth},getActiveDescendantId:f.accessibilityProvider.getActiveDescendantId&&function(e){return f.accessibilityProvider.getActiveDescendantId(e.element)}}),\nkeyboardNavigationLabelProvider:f.keyboardNavigationLabelProvider&&l(l({},f.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(e){return f.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),enableKeyboardNavigation:f.simpleKeyboardNavigation,ariaProvider:{getSetSize:function(e){var t=g(),n=t.getNodeLocation(e),i=t.getParentNodeLocation(n);return t.getNode(i).visibleChildrenCount},getPosInSet:function(e){return e.visibleChildIndex+1},isChecked:f.ariaProvider&&f.ariaProvider.isChecked?function(e){return f.ariaProvider.isChecked(e.element)}:void 0,getRole:f.ariaProvider&&f.ariaProvider.getRole?function(e){return f.ariaProvider.getRole(e.element)}:void 0}}))),{tree:this})),this.model=this.createModel(e,this.view,d),v.input=this.model.onDidChangeCollapseState;var w=s.Event.forEach(this.model.onDidSplice,(function(e){h.eventBufferer.bufferEvents((function(){h.focus.onDidModelSplice(e),h.selection.onDidModelSplice(e)}))}));if(w((function(){return null\n}),null,this.disposables),_.input=s.Event.chain(s.Event.any(w,this.focus.onDidChange,this.selection.onDidChange)).debounce((function(){return null}),0).map((function(){for(var e=new Set,t=0,n=h.focus.getNodes();t<n.length;t++){var i=n[t];e.add(i)}for(var o=0,r=h.selection.getNodes();o<r.length;o++){i=r[o];e.add(i)}return c.fromSet(e)})).event,!1!==d.keyboardSupport){var T=s.Event.chain(this.view.onKeyDown).filter((function(e){return!k(e.target)})).map((function(e){return new u.StandardKeyboardEvent(e)}));T.filter((function(e){return 15===e.keyCode})).on(this.onLeftArrow,this,this.disposables),T.filter((function(e){return 17===e.keyCode})).on(this.onRightArrow,this,this.disposables),T.filter((function(e){return 10===e.keyCode})).on(this.onSpace,this,this.disposables)}if(d.keyboardNavigationLabelProvider){var R=d.keyboardNavigationDelegate||i.DefaultKeyboardNavigationDelegate;this.typeFilterController=new M(this,this.model,this.view,p,R),this.focusNavigationFilter=function(e){\nreturn h.typeFilterController.shouldAllowFocus(e)},this.disposables.add(this.typeFilterController)}this.styleElement=o.createStyleSheet(this.view.getHTMLElement()),o.toggleClass(this.getHTMLElement(),\"always\",this._options.renderIndentGuides===L.Always)}return Object.defineProperty(e.prototype,\"onDidChangeFocus\",{get:function(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeSelection\",{get:function(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidOpen\",{get:function(){return s.Event.map(this.view.onDidOpen,T)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.view.onDidFocus},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"openOnSingleClick\",{get:function(){return void 0===this._options.openOnSingleClick||this._options.openOnSingleClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"expandOnlyOnTwistieClick\",{get:function(){return void 0!==this._options.expandOnlyOnTwistieClick&&this._options.expandOnlyOnTwistieClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidDispose\",{get:function(){return this.view.onDidDispose},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e){void 0===e&&(e={}),this._options=l(l({},this._options),e);for(var t=0,n=this.renderers;t<n.length;t++){n[t].updateOptions(e)}this.view.updateOptions({enableKeyboardNavigation:this._options.simpleKeyboardNavigation,automaticKeyboardNavigation:this._options.automaticKeyboardNavigation}),this.typeFilterController&&this.typeFilterController.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),\no.toggleClass(this.getHTMLElement(),\"always\",this._options.renderIndentGuides===L.Always)},Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),e.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.view.scrollTop},set:function(e){this.view.scrollTop=e},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.view.domFocus()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.style=function(e){var t=\".\"+this.view.domId,n=[];e.treeIndentGuidesStroke&&(n.push(\".monaco-list\"+t+\":hover .monaco-tl-indent > .indent-guide, .monaco-list\"+t+\".always .monaco-tl-indent > .indent-guide  { border-color: \"+e.treeIndentGuidesStroke.transparent(.4)+\"; }\"),n.push(\".monaco-list\"+t+\" .monaco-tl-indent > .indent-guide.active { border-color: \"+e.treeIndentGuidesStroke+\"; }\"));var i=n.join(\"\\n\")\n;i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i),this.view.style(e)},e.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.setCollapsed(e,!0,t)},e.prototype.expand=function(e,t){return void 0===t&&(t=!1),this.model.setCollapsed(e,!1,t)},e.prototype.isCollapsible=function(e){return this.model.isCollapsible(e)},e.prototype.setCollapsible=function(e,t){return this.model.setCollapsible(e,t)},e.prototype.isCollapsed=function(e){return this.model.isCollapsed(e)},e.prototype.refilter=function(){this._onWillRefilter.fire(void 0),this.model.refilter()},e.prototype.setSelection=function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.selection.set(i,t);var o=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setSelection(o,t,!0)},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.setFocus=function(e,t){var n=this,i=e.map((function(e){return n.model.getNode(e)}));this.focus.set(i,t)\n;var o=e.map((function(e){return n.model.getListIndex(e)})).filter((function(e){return e>-1}));this.view.setFocus(o,t,!0)},e.prototype.focusNext=function(e,t,n,i){void 0===e&&(e=1),void 0===t&&(t=!1),void 0===i&&(i=this.focusNavigationFilter),this.view.focusNext(e,t,n,i)},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.reveal=function(e,t){this.model.expandTo(e);var n=this.model.getListIndex(e);-1!==n&&this.view.reveal(n,t)},e.prototype.getRelativeTop=function(e){var t=this.model.getListIndex(e);return-1===t?null:this.view.getRelativeTop(t)},e.prototype.onLeftArrow=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!0)){var o=this.model.getParentNodeLocation(i);if(!o)return;var r=this.model.getListIndex(o);this.view.reveal(r),this.view.setFocus([r])}}},e.prototype.onRightArrow=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements()\n;if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n);if(!this.model.setCollapsed(i,!1)){if(!n.children.some((function(e){return e.visible})))return;var o=this.view.getFocus()[0]+1;this.view.reveal(o),this.view.setFocus([o])}}},e.prototype.onSpace=function(e){e.preventDefault(),e.stopPropagation();var t=this.view.getFocusedElements();if(0!==t.length){var n=t[0],i=this.model.getNodeLocation(n),o=e.browserEvent.altKey;this.model.setCollapsed(i,void 0,o)}},e.prototype.dispose=function(){n.dispose(this.disposables),this.view.dispose()},e}();t.AbstractTree=F})),define(n[407],i([0,1,154,130]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n,i,o,r,s){void 0===s&&(s={});var a=e.call(this,t,n,i,o,s)||this;return a.user=t,a.dataSource=r,a.identityProvider=s.identityProvider,a}return r(t,e),t.prototype.createModel=function(e,t,n){return new i.ObjectTreeModel(e,t,n)},t}(n.AbstractTree);t.DataTree=o})),\ndefine(n[206],i([0,1,154,130,243,101]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n,i,o,r){return void 0===r&&(r={}),e.call(this,t,n,i,o,r)||this}return r(t,e),Object.defineProperty(t.prototype,\"onDidChangeCollapseState\",{get:function(){return this.model.onDidChangeCollapseState},enumerable:!0,configurable:!0}),t.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},t.prototype.rerender=function(e){void 0!==e?this.model.rerender(e):this.view.rerender()},t.prototype.hasElement=function(e){return this.model.has(e)},t.prototype.createModel=function(e,t,n){return new i.ObjectTreeModel(e,t,n)},t}(n.AbstractTree);t.ObjectTree=a;var u=function(){function e(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}return Object.defineProperty(e.prototype,\"compressedTreeNodeProvider\",{get:function(){\nreturn this._compressedTreeNodeProvider()},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){var o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(n.compressedTreeNode=void 0,this.renderer.renderElement(e,t,n.data,i)):(n.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,n.data,i))},e.prototype.disposeElement=function(e,t,n,i){n.compressedTreeNode?this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(n.compressedTreeNode,t,n.data,i):this.renderer.disposeElement&&this.renderer.disposeElement(e,t,n.data,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.data)},e.prototype.renderTwistie=function(e,t){this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)},h([s.memoize],e.prototype,\"compressedTreeNodeProvider\",null),e}();var d=function(e){function t(t,n,i,o,r){\nvoid 0===r&&(r={});var s=this,a=function(){return s},d=o.map((function(e){return new u(a,e)}));return s=e.call(this,t,n,i,d,function(e,t){return t&&l(l({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel:function(n){var i;try{i=e().getCompressedTreeNode(n)}catch(e){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n)}return 1===i.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(n):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}(a,r))||this}return r(t,e),t.prototype.setChildren=function(e,t){this.model.setChildren(e,t)},t.prototype.createModel=function(e,t,n){return new o.CompressibleObjectTreeModel(e,t,n)},t.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),void 0!==t.compressionEnabled&&this.model.setCompressionEnabled(t.compressionEnabled)},t.prototype.getCompressedTreeNode=function(e){\nreturn void 0===e&&(e=null),this.model.getCompressedTreeNode(e)},t}(a);t.CompressibleObjectTree=d}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[408],i([0,1,154,206,99,2,4,15,54,140,10,6,38,129]),(function(e,t,n,i,o,s,u,h,p,g,f,m,v,_){\"use strict\";function y(e){return l(l({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function C(e,t){return!!t.parent&&(t.parent===e||C(e,t.parent))}Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this.node=e}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.node.element.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){return this.node.children.map((function(t){return new e(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{\nget:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}(),S=function(){function e(e,t,n){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.templateId=e.templateId}\nreturn e.prototype.renderTemplate=function(e){return{templateData:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.renderTwistie=function(e,t){return m.toggleClass(t,\"codicon-loading\",e.slow),!1},e.prototype.disposeElement=function(e,t,n,i){this.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.dispose=function(){this.renderedNodes.clear()},e}();function w(e){return{browserEvent:e.browserEvent,elements:e.elements.map((function(e){return e.element}))}}var E=function(e){function t(t){var n=e.call(this,t.elements.map((function(e){return e.element})))||this;return n.data=t,n}return r(t,e),t}(g.ElementsDragAndDropData);function L(e){return e instanceof g.ElementsDragAndDropData?new E(e):e}var D=function(){function e(e){this.dnd=e}\nreturn e.prototype.getDragURI=function(e){return this.dnd.getDragURI(e.element)},e.prototype.getDragLabel=function(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((function(e){return e.element})),t)},e.prototype.onDragStart=function(e,t){this.dnd.onDragStart&&this.dnd.onDragStart(L(e),t)},e.prototype.onDragOver=function(e,t,n,i,o){return void 0===o&&(o=!0),this.dnd.onDragOver(L(e),t&&t.element,n,i)},e.prototype.drop=function(e,t,n,i){this.dnd.drop(L(e),t&&t.element,n,i)},e.prototype.onDragEnd=function(e){this.dnd.onDragEnd&&this.dnd.onDragEnd(e)},e}();function N(e){return e&&l(l({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:function(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new D(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:function(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(l(l({},t),{element:t.element}))},isSelectionRangeChangeEvent:function(t){\nreturn e.multipleSelectionController.isSelectionRangeChangeEvent(l(l({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&l(l({},e.accessibilityProvider),{getAriaLabel:function(t){return e.accessibilityProvider.getAriaLabel(t.element)},getAriaLevel:e.accessibilityProvider.getAriaLevel&&function(t){return e.accessibilityProvider.getAriaLevel(t.element)},getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&function(t){return e.accessibilityProvider.getActiveDescendantId(t.element)}}),filter:e.filter&&{filter:function(t,n){return e.filter.filter(t.element,n)}},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&l(l({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),sorter:void 0,expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:\"function\"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:function(t){\nreturn e.expandOnlyOnTwistieClick(t.element)},ariaProvider:e.ariaProvider&&{getPosInSet:function(t,n){return e.ariaProvider.getPosInSet(t.element,n)},getSetSize:function(t,n,i){return e.ariaProvider.getSetSize(t.element,n,i)},getRole:e.ariaProvider.getRole?function(t){return e.ariaProvider.getRole(t.element)}:void 0,isChecked:e.ariaProvider.isChecked?function(t){var n;return(null===(n=e.ariaProvider)||void 0===n?void 0:n.isChecked)(t.element)}:void 0},additionalScrollHeight:e.additionalScrollHeight})}function x(e,t){t(e),e.children.forEach((function(e){return x(e,t)}))}var I=function(){function e(e,t,n,i,r,a){void 0===a&&(a={}),this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new u.Emitter,this._onDidChangeNodeSlowState=new u.Emitter,this.nodeMapper=new o.WeakMapper((function(e){return new b(e)})),this.disposables=new s.DisposableStore,this.identityProvider=a.identityProvider,\nthis.autoExpandSingleChildren=void 0!==a.autoExpandSingleChildren&&a.autoExpandSingleChildren,this.sorter=a.sorter,this.collapseByDefault=a.collapseByDefault,this.tree=this.createTree(e,t,n,i,a),this.root=y({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=l(l({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}return Object.defineProperty(e.prototype,\"onDidChangeFocus\",{get:function(){return u.Event.map(this.tree.onDidChangeFocus,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidChangeSelection\",{get:function(){return u.Event.map(this.tree.onDidChangeSelection,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidOpen\",{get:function(){return u.Event.map(this.tree.onDidOpen,w)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"onDidFocus\",{get:function(){return this.tree.onDidFocus},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onDidDispose\",{get:function(){return this.tree.onDidDispose},enumerable:!0,configurable:!0}),e.prototype.createTree=function(e,t,o,r,s){var a=this,l=new n.ComposedTreeDelegate(o),u=r.map((function(e){return new S(e,a.nodeMapper,a._onDidChangeNodeSlowState.event)})),d=N(s)||{};return new i.ObjectTree(e,t,l,u,d)},e.prototype.updateOptions=function(e){void 0===e&&(e={}),this.tree.updateOptions(e)},e.prototype.getHTMLElement=function(){return this.tree.getHTMLElement()},Object.defineProperty(e.prototype,\"scrollTop\",{get:function(){return this.tree.scrollTop},set:function(e){this.tree.scrollTop=e},enumerable:!0,configurable:!0}),e.prototype.domFocus=function(){this.tree.domFocus()},e.prototype.layout=function(e,t){this.tree.layout(e,t)},e.prototype.style=function(e){this.tree.style(e)},e.prototype.getInput=function(){return this.root.element},e.prototype.setInput=function(e,t){return d(this,void 0,void 0,(function(){var n;return c(this,(function(i){switch(i.label){case 0:\nreturn this.refreshPromises.forEach((function(e){return e.cancel()})),this.refreshPromises.clear(),this.root.element=e,n=t&&{viewState:t,focus:[],selection:[]},[4,this._updateChildren(e,!0,!1,n)];case 1:return i.sent(),n&&(this.tree.setFocus(n.focus),this.tree.setSelection(n.selection)),t&&\"number\"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop),[2]}}))}))},e.prototype._updateChildren=function(e,t,n,i){return void 0===e&&(e=this.root.element),void 0===t&&(t=!0),void 0===n&&(n=!1),d(this,void 0,void 0,(function(){var r;return c(this,(function(s){switch(s.label){case 0:if(void 0===this.root.element)throw new o.TreeError(this.user,\"Tree input not set\");return this.root.refreshPromise?[4,this.root.refreshPromise]:[3,3];case 1:return s.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 2:s.sent(),s.label=3;case 3:return r=this.getDataNode(e),[4,this.refreshAndRenderNode(r,t,i)];case 4:if(s.sent(),n)try{this.tree.rerender(r)}catch(e){}return[2]}}))}))},e.prototype.rerender=function(e){\nif(void 0!==e&&e!==this.root.element){var t=this.getDataNode(e);this.tree.rerender(t)}else this.tree.rerender()},e.prototype.collapse=function(e,t){void 0===t&&(t=!1);var n=this.getDataNode(e);return this.tree.collapse(n===this.root?null:n,t)},e.prototype.expand=function(e,t){return void 0===t&&(t=!1),d(this,void 0,void 0,(function(){var n,i;return c(this,(function(r){switch(r.label){case 0:if(void 0===this.root.element)throw new o.TreeError(this.user,\"Tree input not set\");return this.root.refreshPromise?[4,this.root.refreshPromise]:[3,3];case 1:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 2:r.sent(),r.label=3;case 3:return n=this.getDataNode(e),this.tree.hasElement(n)&&!this.tree.isCollapsible(n)?[2,!1]:n.refreshPromise?[4,this.root.refreshPromise]:[3,6];case 4:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 5:r.sent(),r.label=6;case 6:return n===this.root||n.refreshPromise||this.tree.isCollapsed(n)?(i=this.tree.expand(n===this.root?null:n,t),\nn.refreshPromise?[4,this.root.refreshPromise]:[3,9]):[2,!1];case 7:return r.sent(),[4,u.Event.toPromise(this._onDidRender.event)];case 8:r.sent(),r.label=9;case 9:return[2,i]}}))}))},e.prototype.setSelection=function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setSelection(i,t)},e.prototype.getSelection=function(){return this.tree.getSelection().map((function(e){return e.element}))},e.prototype.setFocus=function(e,t){var n=this,i=e.map((function(e){return n.getDataNode(e)}));this.tree.setFocus(i,t)},e.prototype.getFocus=function(){return this.tree.getFocus().map((function(e){return e.element}))},e.prototype.reveal=function(e,t){this.tree.reveal(this.getDataNode(e),t)},e.prototype.getDataNode=function(e){var t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new o.TreeError(this.user,\"Data tree node not found: \"+e);return t},e.prototype.refreshAndRenderNode=function(e,t,n){return d(this,void 0,void 0,(function(){return c(this,(function(i){switch(i.label){case 0:\nreturn[4,this.refreshNode(e,t,n)];case 1:return i.sent(),this.render(e,n),[2]}}))}))},e.prototype.refreshNode=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o=this;return c(this,(function(r){return this.subTreeRefreshPromises.forEach((function(r,s){!i&&function(e,t){return e===t||C(e,t)||C(t,e)}(s,e)&&(i=r.then((function(){return o.refreshNode(e,t,n)})))})),i?[2,i]:[2,this.doRefreshSubTree(e,t,n)]}))}))},e.prototype.doRefreshSubTree=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r=this;return c(this,(function(s){switch(s.label){case 0:e.refreshPromise=new Promise((function(e){return i=e})),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((function(){e.refreshPromise=void 0,r.subTreeRefreshPromises.delete(e)})),s.label=1;case 1:return s.trys.push([1,,4,5]),[4,this.doRefreshNode(e,t,n)];case 2:return o=s.sent(),e.stale=!1,[4,Promise.all(o.map((function(e){return r.doRefreshSubTree(e,t,n)})))];case 3:return s.sent(),[3,5];case 4:return i(),[7];case 5:\nreturn[2]}}))}))},e.prototype.doRefreshNode=function(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,a=this;return c(this,(function(l){switch(l.label){case 0:e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren?((o=h.timeout(800)).then((function(){e.slow=!0,a._onDidChangeNodeSlowState.fire(e)}),(function(e){return null})),i=this.doGetChildren(e).finally((function(){return o.cancel()}))):i=Promise.resolve([]),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,i];case 2:return r=l.sent(),[2,this.setChildren(e,r,t,n)];case 3:if(s=l.sent(),e!==this.root&&this.tree.collapse(e===this.root?null:e),f.isPromiseCanceledError(s))return[2,[]];throw s;case 4:return e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e)),[7];case 5:return[2]}}))}))},e.prototype.doGetChildren=function(e){var t=this,n=this.refreshPromises.get(e);return n||(n=h.createCancelablePromise((function(){return d(t,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:\nreturn[4,this.dataSource.getChildren(e.element)];case 1:return t=n.sent(),[2,this.processChildren(t)]}}))}))})),this.refreshPromises.set(e,n),n.finally((function(){return t.refreshPromises.delete(e)})))},e.prototype._onDidChangeCollapseState=function(e){var t=e.node,n=e.deep;!t.collapsed&&t.element.stale&&(n?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(f.onUnexpectedError))},e.prototype.setChildren=function(e,t,n,i){var o,r=this;if(0===e.children.length&&0===t.length)return[];for(var s=new Map,l=new Map,u=0,d=e.children;u<d.length;u++){var c=d[u];if(s.set(c.element,c),this.identityProvider){var h=this.tree.isCollapsed(c);l.set(c.id,{node:c,collapsed:h})}}for(var p=[],g=t.map((function(t){var o=!!r.dataSource.hasChildren(t);if(!r.identityProvider){var a=y({element:t,parent:e,hasChildren:o});return o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var u=r.identityProvider.getId(t).toString(),d=l.get(u);if(d){a=d.node\n;return s.delete(a.element),r.nodes.delete(a.element),r.nodes.set(t,a),a.element=t,a.hasChildren=o,n?d.collapsed?(a.children.forEach((function(e){return x(e,(function(e){return r.nodes.delete(e.element)}))})),a.children.splice(0,a.children.length),a.stale=!0):p.push(a):o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(a.collapsedByDefault=!1,p.push(a)),a}var c=y({element:t,parent:e,id:u,hasChildren:o});return i&&i.viewState.focus&&i.viewState.focus.indexOf(u)>-1&&i.focus.push(c),i&&i.viewState.selection&&i.viewState.selection.indexOf(u)>-1&&i.selection.push(c),i&&i.viewState.expanded&&i.viewState.expanded.indexOf(u)>-1?p.push(c):o&&r.collapseByDefault&&!r.collapseByDefault(t)&&(c.collapsedByDefault=!1,p.push(c)),c})),f=0,m=v.values(s);f<m.length;f++){x(m[f],(function(e){return r.nodes.delete(e.element)}))}for(var _=0,C=g;_<C.length;_++){c=C[_];this.nodes.set(c.element,c)}return(o=e.children).splice.apply(o,a([0,e.children.length],g)),\ne!==this.root&&this.autoExpandSingleChildren&&1===g.length&&0===p.length&&(g[0].collapsedByDefault=!1,p.push(g[0])),p},e.prototype.render=function(e,t){var n=this,i=e.children.map((function(e){return n.asTreeElement(e,t)}));this.tree.setChildren(e===this.root?null:e,i),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()},e.prototype.asTreeElement=function(e,t){var n,i=this;return e.stale?{element:e,collapsible:e.hasChildren,collapsed:!0}:(n=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?p.Iterator.map(p.Iterator.fromArray(e.children),(function(e){return i.asTreeElement(e,t)})):[],collapsible:e.hasChildren,collapsed:n})},e.prototype.processChildren=function(e){return this.sorter&&e.sort(this.sorter.compare.bind(this.sorter)),e},e.prototype.dispose=function(){this.disposables.dispose()},e}();t.AsyncDataTree=I;var M=function(){function e(e){this.node=e}\nreturn Object.defineProperty(e.prototype,\"element\",{get:function(){return{elements:this.node.element.elements.map((function(e){return e.element})),incompressible:this.node.element.incompressible}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){return this.node.children.map((function(t){return new e(t)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"depth\",{get:function(){return this.node.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildrenCount\",{get:function(){return this.node.visibleChildrenCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"visibleChildIndex\",{get:function(){return this.node.visibleChildIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsible\",{get:function(){return this.node.collapsible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"collapsed\",{get:function(){return this.node.collapsed},enumerable:!0,\nconfigurable:!0}),Object.defineProperty(e.prototype,\"visible\",{get:function(){return this.node.visible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filterData\",{get:function(){return this.node.filterData},enumerable:!0,configurable:!0}),e}(),k=function(){function e(e,t,n,i){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=n,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}return e.prototype.renderTemplate=function(e){return{templateData:this.renderer.renderTemplate(e)}},e.prototype.renderElement=function(e,t,n,i){this.renderer.renderElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.renderCompressedElements=function(e,t,n,i){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)},e.prototype.renderTwistie=function(e,t){return m.toggleClass(t,\"codicon-loading\",e.slow),!1},e.prototype.disposeElement=function(e,t,n,i){\nthis.renderer.disposeElement&&this.renderer.disposeElement(this.nodeMapper.map(e),t,n.templateData,i)},e.prototype.disposeCompressedElements=function(e,t,n,i){this.renderer.disposeCompressedElements&&this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e),t,n.templateData,i)},e.prototype.disposeTemplate=function(e){this.renderer.disposeTemplate(e.templateData)},e.prototype.dispose=function(){this.renderedNodes.clear(),this.disposables=s.dispose(this.disposables)},e}();var T=function(e){function t(t,n,i,r,s,a,l){void 0===l&&(l={});var u=e.call(this,t,n,i,s,a,l)||this;return u.compressionDelegate=r,u.compressibleNodeMapper=new o.WeakMapper((function(e){return new M(e)})),u.filter=l.filter,u}return r(t,e),t.prototype.createTree=function(e,t,o,r,s){var a=this,u=new n.ComposedTreeDelegate(o),d=r.map((function(e){return new k(e,a.nodeMapper,(function(){return a.compressibleNodeMapper}),a._onDidChangeNodeSlowState.event)})),c=function(e){var t=e&&N(e);return t&&l(l({},t),{\nkeyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&l(l({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:function(t){return e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((function(e){return e.element})))}})})}(s)||{};return new i.CompressibleObjectTree(e,t,u,d,c)},t.prototype.asTreeElement=function(t,n){return l({incompressible:this.compressionDelegate.isIncompressible(t.element)},e.prototype.asTreeElement.call(this,t,n))},t.prototype.updateOptions=function(e){void 0===e&&(e={}),this.tree.updateOptions(e)},t.prototype.render=function(t,n){var i=this;if(!this.identityProvider)return e.prototype.render.call(this,t,n);var o=function(e){return i.identityProvider.getId(e).toString()},r=function(e){for(var t=new Set,n=0,r=e;n<r.length;n++){var s=r[n],a=i.tree.getCompressedTreeNode(s===i.root?null:s);if(a.element)for(var l=0,u=a.element.elements;l<u.length;l++){var d=u[l];t.add(o(d.element))}}return t\n},s=r(this.tree.getSelection()),a=r(this.tree.getFocus());e.prototype.render.call(this,t,n);var l=this.getSelection(),u=!1,d=this.getFocus(),c=!1,h=function(e){var t=e.element;if(t)for(var n=0;n<t.elements.length;n++){var i=o(t.elements[n].element),r=t.elements[t.elements.length-1].element;s.has(i)&&-1===l.indexOf(r)&&(l.push(r),u=!0),a.has(i)&&-1===d.indexOf(r)&&(d.push(r),c=!0)}e.children.forEach(h)};h(this.tree.getCompressedTreeNode(t===this.root?null:t)),u&&this.setSelection(l),c&&this.setFocus(d)},t.prototype.processChildren=function(t){var n=this;return this.filter&&(t=t.filter((function(e){var t,i=n.filter.filter(e,1),o=\"boolean\"==typeof(t=i)?t?1:0:_.isFilterResult(t)?_.getVisibleState(t.visibility):_.getVisibleState(t);if(2===o)throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");return 1===o}))),e.prototype.processChildren.call(this,t)},t}(I);t.CompressibleAsyncDataTree=T})),define(n[409],i([7,8]),(function(e,t){return e.create(\"vs/base/common/keybindingLabels\",t)\n})),define(n[207],i([0,1,409]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t,n){void 0===n&&(n=t),this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=n}return e.prototype.toLabel=function(e,t,n){if(0===t.length)return null;for(var i=[],r=0,s=t.length;r<s;r++){var a=t[r],l=n(a);if(null===l)return null;i[r]=o(a,l,this.modifierLabels[e])}return i.join(\" \")},e}();function o(e,t,n){if(null===t)return\"\";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),i.push(t),i.join(n.separator)}t.ModifierLabelProvider=i,t.UILabelProvider=new i({ctrlKey:\"⌃\",shiftKey:\"⇧\",altKey:\"⌥\",metaKey:\"⌘\",separator:\"\"},{ctrlKey:n.localize(0,null),shiftKey:n.localize(1,null),altKey:n.localize(2,null),metaKey:n.localize(3,null),separator:\"+\"},{ctrlKey:n.localize(4,null),shiftKey:n.localize(5,null),altKey:n.localize(6,null),metaKey:n.localize(7,null),\nseparator:\"+\"}),t.AriaLabelProvider=new i({ctrlKey:n.localize(8,null),shiftKey:n.localize(9,null),altKey:n.localize(10,null),metaKey:n.localize(11,null),separator:\"+\"},{ctrlKey:n.localize(12,null),shiftKey:n.localize(13,null),altKey:n.localize(14,null),metaKey:n.localize(15,null),separator:\"+\"},{ctrlKey:n.localize(16,null),shiftKey:n.localize(17,null),altKey:n.localize(18,null),metaKey:n.localize(19,null),separator:\"+\"})})),define(n[410],i([0,1,31,207,6,402,270]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=o.$,a=function(){function e(e,t,n){this.os=t,this.options=n,this.domNode=o.append(e,s(\".monaco-keybinding\")),this.didEverRender=!1,e.appendChild(this.domNode)}return e.prototype.set=function(t,n){this.didEverRender&&this.keybinding===t&&e.areSame(this.matches,n)||(this.keybinding=t,this.matches=n,this.render())},e.prototype.render=function(){if(o.clearNode(this.domNode),this.keybinding){var e=this.keybinding.getParts(),t=e[0],n=e[1]\n;t&&this.renderPart(this.domNode,t,this.matches?this.matches.firstPart:null),n&&(o.append(this.domNode,s(\"span.monaco-keybinding-key-chord-separator\",void 0,\" \")),this.renderPart(this.domNode,n,this.matches?this.matches.chordPart:null)),this.domNode.title=this.keybinding.getAriaLabel()||\"\"}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0},e.prototype.renderPart=function(e,t,n){var o=i.UILabelProvider.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,o.ctrlKey,Boolean(null==n?void 0:n.ctrlKey),o.separator),t.shiftKey&&this.renderKey(e,o.shiftKey,Boolean(null==n?void 0:n.shiftKey),o.separator),t.altKey&&this.renderKey(e,o.altKey,Boolean(null==n?void 0:n.altKey),o.separator),t.metaKey&&this.renderKey(e,o.metaKey,Boolean(null==n?void 0:n.metaKey),o.separator);var r=t.keyLabel;r&&this.renderKey(e,r,Boolean(null==n?void 0:n.keyCode),\"\")},e.prototype.renderKey=function(e,t,n,i){o.append(e,s(\"span.monaco-keybinding-key\"+(n?\".highlight\":\"\"),void 0,t)),\ni&&o.append(e,s(\"span.monaco-keybinding-key-separator\",void 0,i))},e.prototype.renderUnbound=function(e){o.append(e,s(\"span.monaco-keybinding-key\",void 0,r.localize(0,null)))},e.areSame=function(e,t){return e===t||!e&&!t||!!e&&!!t&&n.equals(e.firstPart,t.firstPart)&&n.equals(e.chordPart,t.chordPart)},e}();t.KeybindingLabel=a})),define(n[411],i([7,8]),(function(e,t){return e.create(\"vs/base/common/severity\",t)})),define(n[112],i([0,1,411,5]),(function(e,t,n,i){\"use strict\";var o;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ignore=0]=\"Ignore\",e[e.Info=1]=\"Info\",e[e.Warning=2]=\"Warning\",e[e.Error=3]=\"Error\"}(o||(o={})),function(e){var t=\"error\",o=\"warning\",r=\"warn\",s=\"info\",a=Object.create(null);a[e.Error]=n.localize(0,null),a[e.Warning]=n.localize(1,null),a[e.Info]=n.localize(2,null),e.fromValue=function(n){return n?i.equalsIgnoreCase(t,n)?e.Error:i.equalsIgnoreCase(o,n)||i.equalsIgnoreCase(r,n)?e.Warning:i.equalsIgnoreCase(s,n)?e.Info:e.Ignore:e.Ignore}}(o||(o={})),t.default=o})),\ndefine(n[412],i([7,8]),(function(e,t){return e.create(\"vs/base/parts/quickopen/browser/quickOpenModel\",t)})),define(n[155],i([0,1,412,21,139,70,133,6,410,16,19]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=0,p=function(){function e(e){void 0===e&&(e=[]),this.id=(h++).toString(),this.labelHighlights=e,this.descriptionHighlights=[]}return e.prototype.getId=function(){return this.id},e.prototype.getLabel=function(){},e.prototype.getLabelOptions=function(){},e.prototype.getAriaLabel=function(){return c.coalesce([this.getLabel(),this.getDescription(),this.getDetail()]).join(\", \")},e.prototype.getDetail=function(){},e.prototype.getIcon=function(){},e.prototype.getDescription=function(){},e.prototype.getTooltip=function(){},e.prototype.getDescriptionTooltip=function(){},e.prototype.getKeybinding=function(){},e.prototype.isHidden=function(){return!!this.hidden},e.prototype.setHighlights=function(e,t,n){this.labelHighlights=e,this.descriptionHighlights=t,\nthis.detailHighlights=n},e.prototype.getHighlights=function(){return[this.labelHighlights,this.descriptionHighlights,this.detailHighlights]},e.prototype.run=function(e,t){return!1},e}();t.QuickOpenEntry=p;var g=function(e){function t(t,n,i){var o=e.call(this)||this;return o.entry=t,o.groupLabel=n,o.withBorder=i,o}return r(t,e),t.prototype.getGroupLabel=function(){return this.groupLabel},t.prototype.setGroupLabel=function(e){this.groupLabel=e},t.prototype.showBorder=function(){return!!this.withBorder},t.prototype.setShowBorder=function(e){this.withBorder=e},t.prototype.getLabel=function(){return this.entry?this.entry.getLabel():e.prototype.getLabel.call(this)},t.prototype.getLabelOptions=function(){return this.entry?this.entry.getLabelOptions():e.prototype.getLabelOptions.call(this)},t.prototype.getAriaLabel=function(){return this.entry?this.entry.getAriaLabel():e.prototype.getAriaLabel.call(this)},t.prototype.getDetail=function(){return this.entry?this.entry.getDetail():e.prototype.getDetail.call(this)},\nt.prototype.getIcon=function(){return this.entry?this.entry.getIcon():e.prototype.getIcon.call(this)},t.prototype.getDescription=function(){return this.entry?this.entry.getDescription():e.prototype.getDescription.call(this)},t.prototype.getHighlights=function(){return this.entry?this.entry.getHighlights():e.prototype.getHighlights.call(this)},t.prototype.isHidden=function(){return this.entry?this.entry.isHidden():e.prototype.isHidden.call(this)},t.prototype.setHighlights=function(t,n,i){this.entry?this.entry.setHighlights(t,n,i):e.prototype.setHighlights.call(this,t,n,i)},t.prototype.run=function(t,n){return this.entry?this.entry.run(t,n):e.prototype.run.call(this,t,n)},t}(p);t.QuickOpenEntryGroup=g;var f=function(){function e(){}return e.prototype.hasActions=function(e,t){return!1},e.prototype.getActions=function(e,t){return null},e}(),m=function(){function e(e,t){void 0===e&&(e=new f),this.actionProvider=e,this.actionRunner=t}return e.prototype.getHeight=function(e){return e.getDetail()?44:22},\ne.prototype.getTemplateId=function(e){return e instanceof g?\"quickOpenEntryGroup\":\"quickOpenEntry\"},e.prototype.renderTemplate=function(e,t,n){var i=document.createElement(\"div\");l.addClass(i,\"sub-content\"),t.appendChild(i);var r=l.$(\".quick-open-row\"),c=l.$(\".quick-open-row\"),h=l.$(\".quick-open-entry\",void 0,r,c);i.appendChild(h);var p=document.createElement(\"span\");r.appendChild(p);var g=new o.IconLabel(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportCodicons:!0}),f=document.createElement(\"span\");r.appendChild(f),l.addClass(f,\"quick-open-entry-keybinding\");var m=new u.KeybindingLabel(f,d.OS),v=document.createElement(\"div\");c.appendChild(v),l.addClass(v,\"quick-open-entry-meta\");var _,y=new a.HighlightedLabel(v,!0);\"quickOpenEntryGroup\"===e&&(_=document.createElement(\"div\"),l.addClass(_,\"results-group\"),t.appendChild(_)),l.addClass(t,\"actions\");var C=document.createElement(\"div\");return l.addClass(C,\"primary-action-bar\"),t.appendChild(C),{container:t,entry:h,icon:p,label:g,detail:y,\nkeybinding:m,group:_,actionBar:new s.ActionBar(C,{actionRunner:this.actionRunner})}},e.prototype.renderElement=function(e,t,n,i){this.actionProvider.hasActions(null,e)?l.addClass(n.container,\"has-actions\"):l.removeClass(n.container,\"has-actions\"),n.actionBar.context=e;var o=this.actionProvider.getActions(null,e);if(n.actionBar.isEmpty()&&o&&o.length>0?n.actionBar.push(o,{icon:!0,label:!1}):n.actionBar.isEmpty()||o&&0!==o.length||n.actionBar.clear(),e instanceof g&&e.getGroupLabel()?l.addClass(n.container,\"has-group-label\"):l.removeClass(n.container,\"has-group-label\"),e instanceof g){var r=e,s=n;r.showBorder()?(l.addClass(s.container,\"results-group-separator\"),i.pickerGroupBorder&&(s.container.style.borderTopColor=i.pickerGroupBorder.toString())):(l.removeClass(s.container,\"results-group-separator\"),s.container.style.borderTopColor=\"\");var a=r.getGroupLabel()||\"\";s.group&&(s.group.textContent=a,i.pickerGroupForeground&&(s.group.style.color=i.pickerGroupForeground.toString()))}if(e instanceof p){\nvar u=e.getHighlights(),d=u[0],c=u[1],h=u[2],f=e.getIcon()?\"quick-open-entry-icon \"+e.getIcon():\"\";n.icon.className=f;var m=e.getLabelOptions()||Object.create(null);m.matches=d||[],m.title=e.getTooltip(),m.descriptionTitle=e.getDescriptionTooltip()||e.getDescription(),m.descriptionMatches=c||[],n.label.setLabel(e.getLabel()||\"\",e.getDescription(),m),n.detail.set(e.getDetail(),h),n.keybinding.set(e.getKeybinding())}},e.prototype.disposeTemplate=function(e,t){t.actionBar.dispose(),t.actionBar=null,t.container=null,t.entry=null,t.keybinding=null,t.detail=null,t.group=null,t.icon=null,t.label.dispose(),t.label=null},e}(),v=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=new f),this._entries=e,this._dataSource=this,this._renderer=new m(t),this._filter=this,this._runner=this,this._accessibilityProvider=this}return Object.defineProperty(e.prototype,\"entries\",{get:function(){return this._entries},set:function(e){this._entries=e},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"dataSource\",{get:function(){return this._dataSource},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderer\",{get:function(){return this._renderer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"runner\",{get:function(){return this._runner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"accessibilityProvider\",{get:function(){return this._accessibilityProvider},enumerable:!0,configurable:!0}),e.prototype.getId=function(e){return e.getId()},e.prototype.getLabel=function(e){return i.withUndefinedAsNull(e.getLabel())},e.prototype.getAriaLabel=function(e){return e.getAriaLabel()?n.localize(0,null,e.getAriaLabel()):n.localize(1,null)},e.prototype.isVisible=function(e){return!e.isHidden()},e.prototype.run=function(e,t,n){return e.run(t,n)},e}();t.QuickOpenModel=v})),define(n[413],i([7,8]),(function(e,t){\nreturn e.create(\"vs/base/parts/quickopen/browser/quickOpenWidget\",t)})),define(n[414],i([0,1,413,16,21,253,152,283,274,56,137,6,2,27,31,45,281]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.onContextMenu=function(t,n,o){return i.isMacintosh?this.onLeftClick(t,n,o):e.prototype.onContextMenu.call(this,t,n,o)},t}(c.DefaultController);t.QuickOpenController=v;var _={background:g.Color.fromHex(\"#1E1E1E\"),foreground:g.Color.fromHex(\"#CCCCCC\"),pickerGroupForeground:g.Color.fromHex(\"#0097FB\"),pickerGroupBorder:g.Color.fromHex(\"#3F3F46\"),widgetShadow:g.Color.fromHex(\"#000000\"),progressBarBackground:g.Color.fromHex(\"#0E70C0\")},y=n.localize(0,null),C=function(e){function t(t,n,i){var o=e.call(this)||this;return o.isDisposed=!1,o.container=t,o.callbacks=n,o.options=i,o.styles=i||Object.create(null),f.mixin(o.styles,_,!1),o.model=null,o}return r(t,e),\nt.prototype.getModel=function(){return this.model},t.prototype.create=function(){var e=this;this.element=document.createElement(\"div\"),h.addClass(this.element,\"monaco-quick-open-widget\"),this.container.appendChild(this.element),this._register(h.addDisposableListener(this.element,h.EventType.CONTEXT_MENU,(function(e){return h.EventHelper.stop(e,!0)}))),this._register(h.addDisposableListener(this.element,h.EventType.FOCUS,(function(t){return e.gainingFocus()}),!0)),this._register(h.addDisposableListener(this.element,h.EventType.BLUR,(function(t){return e.loosingFocus(t)}),!0)),this._register(h.addDisposableListener(this.element,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);if(9===n.keyCode)h.EventHelper.stop(t,!0),e.hide(2);else if(2===n.keyCode&&!n.altKey&&!n.ctrlKey&&!n.metaKey){var i=t.currentTarget.querySelectorAll(\"input, .monaco-tree, .monaco-tree-row.focused .action-label.icon\");n.shiftKey&&n.target===i[0]?(h.EventHelper.stop(t,!0),\ni[i.length-1].focus()):n.shiftKey||n.target!==i[i.length-1]||(h.EventHelper.stop(t,!0),i[0].focus())}}))),this.progressBar=this._register(new u.ProgressBar(this.element,{progressBarBackground:this.styles.progressBarBackground})),this.progressBar.hide(),this.inputContainer=document.createElement(\"div\"),h.addClass(this.inputContainer,\"quick-open-input\"),this.element.appendChild(this.inputContainer),this.inputBox=this._register(new a.InputBox(this.inputContainer,void 0,{placeholder:this.options.inputPlaceHolder||\"\",ariaLabel:y,inputBackground:this.styles.inputBackground,inputForeground:this.styles.inputForeground,inputBorder:this.styles.inputBorder,inputValidationInfoBackground:this.styles.inputValidationInfoBackground,inputValidationInfoForeground:this.styles.inputValidationInfoForeground,inputValidationInfoBorder:this.styles.inputValidationInfoBorder,inputValidationWarningBackground:this.styles.inputValidationWarningBackground,inputValidationWarningForeground:this.styles.inputValidationWarningForeground,\ninputValidationWarningBorder:this.styles.inputValidationWarningBorder,inputValidationErrorBackground:this.styles.inputValidationErrorBackground,inputValidationErrorForeground:this.styles.inputValidationErrorForeground,inputValidationErrorBorder:this.styles.inputValidationErrorBorder})),this.inputElement=this.inputBox.inputElement,this.inputElement.setAttribute(\"role\",\"combobox\"),this.inputElement.setAttribute(\"aria-haspopup\",\"false\"),this.inputElement.setAttribute(\"aria-autocomplete\",\"list\"),this._register(h.addDisposableListener(this.inputBox.inputElement,h.EventType.INPUT,(function(t){return e.onType()}))),this._register(h.addDisposableListener(this.inputBox.inputElement,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t),i=e.shouldOpenInBackground(n);if(2!==n.keyCode)if(18===n.keyCode||16===n.keyCode||12===n.keyCode||11===n.keyCode)h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode,n.shiftKey),\ne.inputBox.inputElement.selectionStart===e.inputBox.inputElement.selectionEnd&&(e.inputBox.inputElement.selectionStart=e.inputBox.value.length);else if(3===n.keyCode||i){h.EventHelper.stop(t,!0);var o=e.tree.getFocus();o&&e.elementSelected(o,t,i?2:1)}}))),this.resultCount=document.createElement(\"div\"),h.addClass(this.resultCount,\"quick-open-result-count\"),this.resultCount.setAttribute(\"aria-live\",\"polite\"),this.resultCount.setAttribute(\"aria-atomic\",\"true\"),this.element.appendChild(this.resultCount),this.treeContainer=document.createElement(\"div\"),h.addClass(this.treeContainer,\"quick-open-tree\"),this.element.appendChild(this.treeContainer);var t=this.options.treeCreator||function(e,t,n){return new l.Tree(e,t,n)};return this.tree=this._register(t(this.treeContainer,{dataSource:new s.DataSource(this),controller:new v({clickBehavior:1,keyboardSupport:this.options.keyboardSupport}),renderer:this.renderer=new s.Renderer(this,this.styles),filter:new s.Filter(this),\naccessibilityProvider:new s.AccessibilityProvider(this)},{twistiePixels:11,indentPixels:0,alwaysFocused:!0,verticalScrollMode:3,horizontalScrollMode:2,ariaLabel:n.localize(1,null),keyboardSupport:this.options.keyboardSupport,preventRootFocus:!1})),this.treeElement=this.tree.getHTMLElement(),this._register(this.tree.onDidChangeFocus((function(t){e.elementFocused(t.focus,t)}))),this._register(this.tree.onDidChangeSelection((function(t){if(t.selection&&t.selection.length>0){var n=t.payload&&t.payload.originalEvent instanceof m.StandardMouseEvent?t.payload.originalEvent:void 0,i=!!n&&e.shouldOpenInBackground(n);e.elementSelected(t.selection[0],t,i?2:1)}}))),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);if(e.quickNavigateConfiguration)if(18===n.keyCode||16===n.keyCode||12===n.keyCode||11===n.keyCode)h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode);else if(3===n.keyCode){h.EventHelper.stop(t,!0);var i=e.tree.getFocus()\n;i&&e.elementSelected(i,t)}}))),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_UP,(function(t){var n=new d.StandardKeyboardEvent(t),i=n.keyCode;if(e.quickNavigateConfiguration&&e.quickNavigateConfiguration.keybindings.some((function(e){var t=e.getParts(),o=t[0];return!t[1]&&(o.shiftKey&&4===i?!(n.ctrlKey||n.altKey||n.metaKey):!(!o.altKey||6!==i)||(!(!o.ctrlKey||5!==i)||!(!o.metaKey||57!==i)))}))){var o=e.tree.getFocus();o&&e.elementSelected(o,t)}}))),this.layoutDimensions&&this.layout(this.layoutDimensions),this.applyStyles(),this._register(h.addDisposableListener(this.treeContainer,h.EventType.KEY_DOWN,(function(t){var n=new d.StandardKeyboardEvent(t);e.quickNavigateConfiguration||18!==n.keyCode&&16!==n.keyCode&&12!==n.keyCode&&11!==n.keyCode||(h.EventHelper.stop(t,!0),e.navigateInTree(n.keyCode,n.shiftKey),e.treeElement.focus())}))),this.element},t.prototype.style=function(e){this.styles=e,this.applyStyles()},t.prototype.applyStyles=function(){if(this.element){\nvar e=this.styles.foreground?this.styles.foreground.toString():\"\",t=this.styles.background?this.styles.background.toString():\"\",n=this.styles.borderColor?this.styles.borderColor.toString():\"\",i=this.styles.widgetShadow?this.styles.widgetShadow.toString():\"\";this.element.style.color=e,this.element.style.backgroundColor=t,this.element.style.borderColor=n,this.element.style.borderWidth=n?\"1px\":\"\",this.element.style.borderStyle=n?\"solid\":\"\",this.element.style.boxShadow=i?\"0 5px 8px \"+i:\"\"}this.progressBar&&this.progressBar.style({progressBarBackground:this.styles.progressBarBackground}),this.inputBox&&this.inputBox.style({inputBackground:this.styles.inputBackground,inputForeground:this.styles.inputForeground,inputBorder:this.styles.inputBorder,inputValidationInfoBackground:this.styles.inputValidationInfoBackground,inputValidationInfoForeground:this.styles.inputValidationInfoForeground,inputValidationInfoBorder:this.styles.inputValidationInfoBorder,\ninputValidationWarningBackground:this.styles.inputValidationWarningBackground,inputValidationWarningForeground:this.styles.inputValidationWarningForeground,inputValidationWarningBorder:this.styles.inputValidationWarningBorder,inputValidationErrorBackground:this.styles.inputValidationErrorBackground,inputValidationErrorForeground:this.styles.inputValidationErrorForeground,inputValidationErrorBorder:this.styles.inputValidationErrorBorder}),this.tree&&!this.options.treeCreator&&this.tree.style(this.styles),this.renderer&&this.renderer.updateStyles(this.styles)},t.prototype.shouldOpenInBackground=function(e){if(e instanceof d.StandardKeyboardEvent){if(17!==e.keyCode)return!1;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return!1;var t=this.inputBox.inputElement;return t.selectionEnd===this.inputBox.value.length&&t.selectionStart===t.selectionEnd}return e.middleButton},t.prototype.onType=function(){var e=this.inputBox.value;this.helpText&&(e?h.hide(this.helpText):h.show(this.helpText)),this.callbacks.onType(e)},\nt.prototype.navigateInTree=function(e,t){var n=this.tree.getInput(),i=n?n.entries:[],o=this.tree.getFocus();switch(e){case 18:this.tree.focusNext();break;case 16:this.tree.focusPrevious();break;case 12:this.tree.focusNextPage();break;case 11:this.tree.focusPreviousPage();break;case 2:t?this.tree.focusPrevious():this.tree.focusNext()}var r=this.tree.getFocus();i.length>1&&o===r&&(16===e||2===e&&t?this.tree.focusLast():(18===e||2===e&&!t)&&this.tree.focusFirst()),(r=this.tree.getFocus())&&this.tree.reveal(r)},t.prototype.elementFocused=function(e,t){if(e&&this.isVisible()){var n=this.treeElement.getAttribute(\"aria-activedescendant\");n?this.inputElement.setAttribute(\"aria-activedescendant\",n):this.inputElement.removeAttribute(\"aria-activedescendant\");var i={event:t,keymods:this.extractKeyMods(t),quickNavigateConfiguration:this.quickNavigateConfiguration};this.model.runner.run(e,0,i)}},t.prototype.elementSelected=function(e,t,n){var i=!0;if(this.isVisible()){var o=n||1,r={event:t,keymods:this.extractKeyMods(t),\nquickNavigateConfiguration:this.quickNavigateConfiguration};i=this.model.runner.run(e,o,r)}i&&this.hide(0)},t.prototype.extractKeyMods=function(e){return{ctrlCmd:e&&(e.ctrlKey||e.metaKey||e.payload&&e.payload.originalEvent&&(e.payload.originalEvent.ctrlKey||e.payload.originalEvent.metaKey)),alt:e&&(e.altKey||e.payload&&e.payload.originalEvent&&e.payload.originalEvent.altKey)}},t.prototype.show=function(e,t){this.visible=!0,this.isLoosingFocus=!1,this.quickNavigateConfiguration=t?t.quickNavigateConfiguration:void 0,this.quickNavigateConfiguration?(h.hide(this.inputContainer),h.show(this.element),this.tree.domFocus()):(h.show(this.inputContainer),h.show(this.element),this.inputBox.focus()),this.helpText&&(this.quickNavigateConfiguration||o.isString(e)?h.hide(this.helpText):h.show(this.helpText)),o.isString(e)?this.doShowWithPrefix(e):(t&&t.value&&this.restoreLastInput(t.value),this.doShowWithInput(e,t&&t.autoFocus?t.autoFocus:{})),\nt&&t.inputSelection&&!this.quickNavigateConfiguration&&this.inputBox.select(t.inputSelection),this.callbacks.onShow&&this.callbacks.onShow()},t.prototype.restoreLastInput=function(e){this.inputBox.value=e,this.inputBox.select(),this.callbacks.onType(e)},t.prototype.doShowWithPrefix=function(e){this.inputBox.value=e,this.callbacks.onType(e)},t.prototype.doShowWithInput=function(e,t){this.setInput(e,t)},t.prototype.setInputAndLayout=function(e,t){var n=this;this.treeContainer.style.height=this.getHeight(e)+\"px\",this.tree.setInput(null).then((function(){return n.model=e,n.inputElement.setAttribute(\"aria-haspopup\",String(e&&e.entries&&e.entries.length>0)),n.tree.setInput(e)})).then((function(){n.tree.layout();var i=e?e.entries.filter((function(t){return n.isElementVisible(e,t)})):[];n.updateResultCount(i.length),i.length&&n.autoFocus(e,i,t)}))},t.prototype.isElementVisible=function(e,t){return!e.filter||e.filter.isVisible(t)},t.prototype.autoFocus=function(e,t,n){if(void 0===n&&(n={}),n.autoFocusPrefixMatch){\nfor(var i=void 0,o=void 0,r=n.autoFocusPrefixMatch,s=r.toLowerCase(),a=0,l=t;a<l.length;a++){var u=l[a],d=e.dataSource.getLabel(u)||\"\";if(i||0!==d.indexOf(r)?o||0!==d.toLowerCase().indexOf(s)||(o=u):i=u,i&&o)break}var c=i||o;if(c)return this.tree.setFocus(c),void this.tree.reveal(c,.5)}n.autoFocusFirstEntry?(this.tree.focusFirst(),this.tree.reveal(this.tree.getFocus())):\"number\"==typeof n.autoFocusIndex?t.length>n.autoFocusIndex&&(this.tree.focusNth(n.autoFocusIndex),this.tree.reveal(this.tree.getFocus())):n.autoFocusSecondEntry?t.length>1&&this.tree.focusNth(1):n.autoFocusLastEntry&&t.length>1&&(this.tree.focusLast(),this.tree.reveal(this.tree.getFocus()))},t.prototype.getHeight=function(e){var n=this,i=e.renderer;if(!e){var o=i.getHeight(null);return this.options.minItemsToShow?this.options.minItemsToShow*o:0}var r,s=0;this.layoutDimensions&&this.layoutDimensions.height&&(r=.4*(this.layoutDimensions.height-50)),(!r||r>t.MAX_ITEMS_HEIGHT)&&(r=t.MAX_ITEMS_HEIGHT);for(var a=e.entries.filter((function(t){\nreturn n.isElementVisible(e,t)})),l=this.options.maxItemsToShow||a.length,u=0;u<l&&u<a.length;u++){var d=i.getHeight(a[u]);if(!(s+d<=r))break;s+=d}return s},t.prototype.updateResultCount=function(e){this.resultCount.textContent=n.localize(2,null,e)},t.prototype.hide=function(e){this.isVisible()&&(this.visible=!1,h.hide(this.element),this.element.blur(),this.inputBox.value=\"\",this.tree.setInput(null),this.inputElement.setAttribute(\"aria-haspopup\",\"false\"),this.treeContainer.style.height=(this.options.minItemsToShow?22*this.options.minItemsToShow:0)+\"px\",this.progressBar.stop().hide(),this.tree.isDOMFocused()?this.tree.domBlur():this.inputBox.hasFocus()&&this.inputBox.blur(),0===e?this.callbacks.onOk():this.callbacks.onCancel(),this.callbacks.onHide&&this.callbacks.onHide(e))},t.prototype.setInput=function(e,t,n){this.isVisible()&&(this.getInput()&&this.onInputChanging(),this.setInputAndLayout(e,t),this.inputBox&&this.inputBox.setAriaLabel(n||y))},t.prototype.onInputChanging=function(){var e=this\n;this.inputChangingTimeoutHandle&&(clearTimeout(this.inputChangingTimeoutHandle),this.inputChangingTimeoutHandle=null),h.addClass(this.element,\"content-changing\"),this.inputChangingTimeoutHandle=setTimeout((function(){h.removeClass(e.element,\"content-changing\")}),500)},t.prototype.getInput=function(){return this.tree.getInput()},t.prototype.isVisible=function(){return this.visible},t.prototype.layout=function(e){this.layoutDimensions=e;var n=Math.min(.62*this.layoutDimensions.width,t.MAX_WIDTH);this.element&&(this.element.style.width=n+\"px\",this.element.style.marginLeft=\"-\"+n/2+\"px\",this.inputContainer.style.width=n-12+\"px\")},t.prototype.gainingFocus=function(){this.isLoosingFocus=!1},t.prototype.loosingFocus=function(e){var t=this;if(this.isVisible()){var n=e.relatedTarget;!this.quickNavigateConfiguration&&h.isAncestor(n,this.element)||(this.isLoosingFocus=!0,setTimeout((function(){t.isLoosingFocus&&!t.isDisposed&&(t.callbacks.onFocusLost&&t.callbacks.onFocusLost()||t.hide(1))}),0))}},\nt.prototype.dispose=function(){e.prototype.dispose.call(this),this.isDisposed=!0},t.MAX_WIDTH=600,t.MAX_ITEMS_HEIGHT=440,t}(p.Disposable);t.QuickOpenWidget=C})),define(n[415],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/controller/coreCommands\",t)})),define(n[416],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/controller/textAreaHandler\",t)})),define(n[417],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/codeEditorWidget\",t)})),define(n[418],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/diffEditorWidget\",t)})),define(n[419],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/diffReview\",t)})),define(n[420],i([7,8]),(function(e,t){return e.create(\"vs/editor/browser/widget/inlineDiffMargin\",t)})),define(n[421],i([0,1,420,6,55,2,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t,r,s,l,u,h){var p=e.call(this)||this;p._viewZoneId=t,p._marginDomNode=r,p.editor=s,\np.diff=l,p._contextMenuService=u,p._clipboardService=h,p._visibility=!1,p._marginDomNode.style.zIndex=\"10\",p._diffActions=document.createElement(\"div\"),p._diffActions.className=\"codicon codicon-lightbulb lightbulb-glyph\",p._diffActions.style.position=\"absolute\";var g=s.getOption(49),f=s.getModel().getEOL();p._diffActions.style.right=\"0px\",p._diffActions.style.visibility=\"hidden\",p._diffActions.style.height=g+\"px\",p._diffActions.style.lineHeight=g+\"px\",p._marginDomNode.appendChild(p._diffActions);var m=[];m.push(new o.Action(\"diff.clipboard.copyDeletedContent\",l.originalEndLineNumber>l.modifiedStartLineNumber?n.localize(0,null):n.localize(1,null),void 0,!0,(function(){return d(p,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this._clipboardService.writeText(l.originalContent.join(f)+f)];case 1:return e.sent(),[2]}}))}))})));var v=0,_=void 0\n;l.originalEndLineNumber>l.modifiedStartLineNumber&&(_=new o.Action(\"diff.clipboard.copyDeletedLineContent\",n.localize(2,null,l.originalStartLineNumber),void 0,!0,(function(){return d(p,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this._clipboardService.writeText(l.originalContent[v])];case 1:return e.sent(),[2]}}))}))})),m.push(_)),s.getOption(68)||m.push(new o.Action(\"diff.inline.revertChange\",n.localize(3,null),void 0,!0,(function(){return d(p,void 0,void 0,(function(){var e;return c(this,(function(t){return 0===l.modifiedEndLineNumber?(e=s.getModel().getLineMaxColumn(l.modifiedStartLineNumber),s.executeEdits(\"diffEditor\",[{range:new a.Range(l.modifiedStartLineNumber,e,l.modifiedStartLineNumber,e),text:f+l.originalContent.join(f)}])):(e=s.getModel().getLineMaxColumn(l.modifiedEndLineNumber),s.executeEdits(\"diffEditor\",[{range:new a.Range(l.modifiedStartLineNumber,1,l.modifiedEndLineNumber,e),text:l.originalContent.join(f)}])),[2]}))}))})));var y=function(e,t){\np._contextMenuService.showContextMenu({getAnchor:function(){return{x:e,y:t}},getActions:function(){return _&&(_.label=n.localize(4,null,l.originalStartLineNumber+v)),m},autoSelectFirstItem:!0})};return p._register(i.addStandardDisposableListener(p._diffActions,\"mousedown\",(function(e){var t=i.getDomNodePagePosition(p._diffActions),n=t.top,o=t.height,r=Math.floor(g/3);e.preventDefault(),y(e.posx,n+o+r)}))),p._register(s.onMouseMove((function(e){8===e.target.type||5===e.target.type?e.target.detail.viewZoneId===p._viewZoneId?(p.visibility=!0,v=p._updateLightBulbPosition(p._marginDomNode,e.event.browserEvent.y,g)):p.visibility=!1:p.visibility=!1}))),p._register(s.onMouseDown((function(e){e.event.rightButton&&(8!==e.target.type&&5!==e.target.type||e.target.detail.viewZoneId===p._viewZoneId&&(e.event.preventDefault(),v=p._updateLightBulbPosition(p._marginDomNode,e.event.browserEvent.y,g),y(e.event.posx,e.event.posy+g)))}))),p}return r(t,e),Object.defineProperty(t.prototype,\"visibility\",{get:function(){\nreturn this._visibility},set:function(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?\"visible\":\"hidden\")},enumerable:!0,configurable:!0}),t.prototype._updateLightBulbPosition=function(e,t,n){var o=t-i.getDomNodePagePosition(e).top,r=Math.floor(o/n),s=r*n;return this._diffActions.style.top=s+\"px\",r},t}(s.Disposable);t.InlineDiffMargin=l})),define(n[422],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/config/commonEditorConfig\",t)})),define(n[423],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/config/editorOptions\",t)})),define(n[33],i([0,1,423,16,109]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.MINIMAP_GUTTER_WIDTH=8;var s=function(){function e(e){this._values=e}return e.prototype.hasChanged=function(e){return this._values[e]},e}();t.ConfigurationChangedEvent=s;var a=function(){function e(){this._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype.get=function(e){\nreturn this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}();t.ValidatedEditorOptions=a;var u=function(){function e(e,t,n,i){this.id=e,this.name=t,this.defaultValue=n,this.schema=i}return e.prototype.compute=function(e,t,n){return n},e}(),d=function(){function e(e,t){void 0===t&&(t=null),this.schema=void 0,this.id=e,this.name=\"_never_\",this.defaultValue=void 0,this.deps=t}return e.prototype.validate=function(e){return this.defaultValue},e}(),c=function(){function e(e,t,n,i){this.id=e,this.name=t,this.defaultValue=n,this.schema=i}return e.prototype.validate=function(e){return void 0===e?this.defaultValue:e},e.prototype.compute=function(e,t,n){return n},e}(),h=function(e){function t(t,n,i,o){void 0===o&&(o=void 0);return void 0!==o&&(o.type=\"boolean\",o.default=i),e.call(this,t,n,i,o)||this}return r(t,e),t.boolean=function(e,t){return void 0===e?t:\"false\"!==e&&Boolean(e)},t.prototype.validate=function(e){return t.boolean(e,this.defaultValue)},t}(c),p=function(e){function t(t,n,i,o,r,s){\nvoid 0===s&&(s=void 0);var a=this;return void 0!==s&&(s.type=\"integer\",s.default=i,s.minimum=o,s.maximum=r),(a=e.call(this,t,n,i,s)||this).minimum=o,a.maximum=r,a}return r(t,e),t.clampedInt=function(e,t,n,i){var o;return void 0===e?o=t:(o=parseInt(e,10),isNaN(o)&&(o=t)),o=Math.max(n,o),0|(o=Math.min(i,o))},t.prototype.validate=function(e){return t.clampedInt(e,this.defaultValue,this.minimum,this.maximum)},t}(c),g=function(e){function t(t,n,i,o,r){var s=this;return void 0!==r&&(r.type=\"number\",r.default=i),(s=e.call(this,t,n,i,r)||this).validationFn=o,s}return r(t,e),t.clamp=function(e,t,n){return e<t?t:e>n?n:e},t.float=function(e,t){if(\"number\"==typeof e)return e;if(void 0===e)return t;var n=parseFloat(e);return isNaN(n)?t:n},t.prototype.validate=function(e){return this.validationFn(t.float(e,this.defaultValue))},t}(c),f=function(e){function t(t,n,i,o){void 0===o&&(o=void 0);return void 0!==o&&(o.type=\"string\",o.default=i),e.call(this,t,n,i,o)||this}return r(t,e),t.string=function(e,t){\nreturn\"string\"!=typeof e?t:e},t.prototype.validate=function(e){return t.string(e,this.defaultValue)},t}(c),m=function(e){function t(t,n,i,o,r){void 0===r&&(r=void 0);var s=this;return void 0!==r&&(r.type=\"string\",r.enum=o,r.default=i),(s=e.call(this,t,n,i,r)||this)._allowedValues=o,s}return r(t,e),t.stringSet=function(e,t,n){return\"string\"!=typeof e?t:-1===n.indexOf(e)?t:e},t.prototype.validate=function(e){return t.stringSet(e,this.defaultValue,this._allowedValues)},t}(c),v=function(e){function t(t,n,i,o,r,s,a){void 0===a&&(a=void 0);var l=this;return void 0!==a&&(a.type=\"string\",a.enum=r,a.default=o),(l=e.call(this,t,n,i,a)||this)._allowedValues=r,l._convert=s,l}return r(t,e),t.prototype.validate=function(e){return\"string\"!=typeof e?this.defaultValue:-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)},t}(u);var _,y=function(e){function t(){return e.call(this,2,\"accessibilitySupport\",0,{type:\"string\",enum:[\"auto\",\"on\",\"off\"],\nenumDescriptions:[n.localize(0,null),n.localize(1,null),n.localize(2,null)],default:\"auto\",description:n.localize(3,null)})||this}return r(t,e),t.prototype.validate=function(e){switch(e){case\"auto\":return 0;case\"off\":return 1;case\"on\":return 2}return this.defaultValue},t.prototype.compute=function(e,t,n){return 0===n?e.accessibilitySupport:n},t}(u),C=function(e){function t(){var t={insertSpace:!0};return e.call(this,13,\"comments\",t,{\"editor.comments.insertSpace\":{type:\"boolean\",default:t.insertSpace,description:n.localize(4,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{insertSpace:h.boolean(t.insertSpace,this.defaultValue.insertSpace)}},t}(u);!function(e){e[e.Line=1]=\"Line\",e[e.Block=2]=\"Block\",e[e.Underline=3]=\"Underline\",e[e.LineThin=4]=\"LineThin\",e[e.BlockOutline=5]=\"BlockOutline\",e[e.UnderlineThin=6]=\"UnderlineThin\"}(_=t.TextEditorCursorStyle||(t.TextEditorCursorStyle={}));var b=function(e){function t(){\nreturn e.call(this,104,[55,26])||this}return r(t,e),t.prototype.compute=function(e,t,n){var i=\"monaco-editor\";return t.get(26)&&(i+=\" \"+t.get(26)),e.extraEditorClassName&&(i+=\" \"+e.extraEditorClassName),\"default\"===t.get(55)?i+=\" mouse-default\":\"copy\"===t.get(55)&&(i+=\" mouse-copy\"),t.get(85)&&(i+=\" showUnused\"),i},t}(d),S=function(e){function t(){return e.call(this,25,\"emptySelectionClipboard\",!0,{description:n.localize(5,null)})||this}return r(t,e),t.prototype.compute=function(e,t,n){return n&&e.emptySelectionClipboard},t}(h),w=function(e){function t(){var t={seedSearchStringFromSelection:!0,autoFindInSelection:\"never\",globalFindClipboard:!1,addExtraSpaceOnTop:!0};return e.call(this,28,\"find\",t,{\"editor.find.seedSearchStringFromSelection\":{type:\"boolean\",default:t.seedSearchStringFromSelection,description:n.localize(6,null)},\"editor.find.autoFindInSelection\":{type:\"string\",enum:[\"never\",\"always\",\"multiline\"],default:t.autoFindInSelection,\nenumDescriptions:[n.localize(7,null),n.localize(8,null),n.localize(9,null)],description:n.localize(10,null)},\"editor.find.globalFindClipboard\":{type:\"boolean\",default:t.globalFindClipboard,description:n.localize(11,null),included:i.isMacintosh},\"editor.find.addExtraSpaceOnTop\":{type:\"boolean\",default:t.addExtraSpaceOnTop,description:n.localize(12,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{seedSearchStringFromSelection:h.boolean(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection),autoFindInSelection:\"boolean\"==typeof e.autoFindInSelection?e.autoFindInSelection?\"always\":\"never\":m.stringSet(t.autoFindInSelection,this.defaultValue.autoFindInSelection,[\"never\",\"always\",\"multiline\"]),globalFindClipboard:h.boolean(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:h.boolean(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop)}},t}(u),E=function(e){function t(){\nreturn e.call(this,35,\"fontLigatures\",t.OFF,{anyOf:[{type:\"boolean\",description:n.localize(13,null)},{type:\"string\",description:n.localize(14,null)}],description:n.localize(15,null),default:!1})||this}return r(t,e),t.prototype.validate=function(e){return void 0===e?this.defaultValue:\"string\"==typeof e?\"false\"===e?t.OFF:\"true\"===e?t.ON:e:Boolean(e)?t.ON:t.OFF},t.OFF='\"liga\" off, \"calt\" off',t.ON='\"liga\" on, \"calt\" on',t}(u);t.EditorFontLigatures=E;var L=function(e){function t(){return e.call(this,34)||this}return r(t,e),t.prototype.compute=function(e,t,n){return e.fontInfo},t}(d),D=function(e){function i(){return e.call(this,36,\"fontSize\",t.EDITOR_FONT_DEFAULTS.fontSize,{type:\"number\",minimum:6,maximum:100,default:t.EDITOR_FONT_DEFAULTS.fontSize,description:n.localize(16,null)})||this}return r(i,e),i.prototype.validate=function(e){var n=g.float(e,this.defaultValue);return 0===n?t.EDITOR_FONT_DEFAULTS.fontSize:g.clamp(n,6,100)},i.prototype.compute=function(e,t,n){return e.fontInfo.fontSize},i}(c),N=function(e){\nfunction t(){var t={multiple:\"peek\",multipleDefinitions:\"peek\",multipleTypeDefinitions:\"peek\",multipleDeclarations:\"peek\",multipleImplementations:\"peek\",multipleReferences:\"peek\",alternativeDefinitionCommand:\"editor.action.goToReferences\",alternativeTypeDefinitionCommand:\"editor.action.goToReferences\",alternativeDeclarationCommand:\"editor.action.goToReferences\",alternativeImplementationCommand:\"\",alternativeReferenceCommand:\"\"},i={type:\"string\",enum:[\"peek\",\"gotoAndPeek\",\"goto\"],default:t.multiple,enumDescriptions:[n.localize(17,null),n.localize(18,null),n.localize(19,null)]};return e.call(this,41,\"gotoLocation\",t,{\"editor.gotoLocation.multiple\":{deprecationMessage:n.localize(20,null)},\"editor.gotoLocation.multipleDefinitions\":l({description:n.localize(21,null)},i),\"editor.gotoLocation.multipleTypeDefinitions\":l({description:n.localize(22,null)},i),\"editor.gotoLocation.multipleDeclarations\":l({description:n.localize(23,null)},i),\"editor.gotoLocation.multipleImplementations\":l({description:n.localize(24,null)\n},i),\"editor.gotoLocation.multipleReferences\":l({description:n.localize(25,null)},i),\"editor.gotoLocation.alternativeDefinitionCommand\":{type:\"string\",default:t.alternativeDefinitionCommand,description:n.localize(26,null)},\"editor.gotoLocation.alternativeTypeDefinitionCommand\":{type:\"string\",default:t.alternativeTypeDefinitionCommand,description:n.localize(27,null)},\"editor.gotoLocation.alternativeDeclarationCommand\":{type:\"string\",default:t.alternativeDeclarationCommand,description:n.localize(28,null)},\"editor.gotoLocation.alternativeImplementationCommand\":{type:\"string\",default:t.alternativeImplementationCommand,description:n.localize(29,null)},\"editor.gotoLocation.alternativeReferenceCommand\":{type:\"string\",default:t.alternativeReferenceCommand,description:n.localize(30,null)}})||this}return r(t,e),t.prototype.validate=function(e){var t,n,i,o,r;if(\"object\"!=typeof e)return this.defaultValue;var s=e;return{multiple:m.stringSet(s.multiple,this.defaultValue.multiple,[\"peek\",\"gotoAndPeek\",\"goto\"]),\nmultipleDefinitions:null!==(t=s.multipleDefinitions)&&void 0!==t?t:m.stringSet(s.multipleDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleTypeDefinitions:null!==(n=s.multipleTypeDefinitions)&&void 0!==n?n:m.stringSet(s.multipleTypeDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleDeclarations:null!==(i=s.multipleDeclarations)&&void 0!==i?i:m.stringSet(s.multipleDeclarations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleImplementations:null!==(o=s.multipleImplementations)&&void 0!==o?o:m.stringSet(s.multipleImplementations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleReferences:null!==(r=s.multipleReferences)&&void 0!==r?r:m.stringSet(s.multipleReferences,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),alternativeDefinitionCommand:f.string(s.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:f.string(s.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),\nalternativeDeclarationCommand:f.string(s.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:f.string(s.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:f.string(s.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}},t}(u),x=function(e){function t(){var t={enabled:!0,delay:300,sticky:!0};return e.call(this,44,\"hover\",t,{\"editor.hover.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(31,null)},\"editor.hover.delay\":{type:\"number\",default:t.delay,description:n.localize(32,null)},\"editor.hover.sticky\":{type:\"boolean\",default:t.sticky,description:n.localize(33,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),delay:p.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:h.boolean(t.sticky,this.defaultValue.sticky)}},t\n}(u),I=function(e){function n(){return e.call(this,107,[40,48,30,54,78,50])||this}return r(n,e),n.prototype.compute=function(e,t,i){return n.computeLayout(t,{outerWidth:e.outerWidth,outerHeight:e.outerHeight,lineHeight:e.fontInfo.lineHeight,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio})},n.computeLayout=function(e,n){var i,o=0|n.outerWidth,r=0|n.outerHeight,s=0|n.lineHeight,a=0|n.lineNumbersDigitCount,l=n.typicalHalfwidthCharacterWidth,u=n.maxDigitWidth,d=n.pixelRatio,c=e.get(40),h=0!==e.get(50).renderType,g=0|e.get(51),f=e.get(54),m=f.enabled,v=f.side,_=f.renderCharacters,y=d>=2?Math.round(2*f.scale):f.scale,C=0|f.maxColumn,b=e.get(78),S=0|b.verticalScrollbarSize,w=b.verticalHasArrows,E=0|b.arrowSize,L=0|b.horizontalScrollbarSize,D=e.get(48),N=e.get(30);if(\"string\"==typeof D&&/^\\d+(\\.\\d+)?ch$/.test(D)){var x=parseFloat(D.substr(0,D.length-2));i=p.clampedInt(x*l,0,0,1e3)\n}else i=p.clampedInt(D,0,0,1e3);N&&(i+=16);var I=0;if(h){var M=Math.max(a,g);I=Math.round(M*u)}var k=0;c&&(k=s);var T,R,O,P,A=0,F=A+k,W=F+I,B=W+i,V=o-k-I-i;if(m){var z=y/d;T=_?1:2,(O=Math.max(0,Math.floor((V-S-2)*z/(l+z)))+t.MINIMAP_GUTTER_WIDTH)/z>C&&(O=Math.floor(C*z)),P=V-O,\"left\"===v?(R=0,A+=O,F+=O,W+=O,B+=O):R=o-O-S}else R=0,O=0,T=0,P=V;var H=w?E:0;return{width:o,height:r,glyphMarginLeft:A,glyphMarginWidth:k,lineNumbersLeft:F,lineNumbersWidth:I,decorationsLeft:W,decorationsWidth:i,contentLeft:B,contentWidth:P,renderMinimap:T,minimapLeft:R,minimapWidth:O,viewportColumn:Math.max(1,Math.floor((P-S-2)/l)),verticalScrollbarWidth:S,horizontalScrollbarHeight:L,overviewRuler:{top:H,width:S,height:r-2*H,right:0}}},n}(d);t.EditorLayoutInfoComputer=I;var M=function(e){function t(){var t={enabled:!0};return e.call(this,47,\"lightbulb\",t,{\"editor.lightbulb.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(34,null)}})||this}return r(t,e),t.prototype.validate=function(e){\nif(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled)}},t}(u),k=function(e){function i(){return e.call(this,49,\"lineHeight\",t.EDITOR_FONT_DEFAULTS.lineHeight,0,150,{description:n.localize(35,null)})||this}return r(i,e),i.prototype.compute=function(e,t,n){return e.fontInfo.lineHeight},i}(p),T=function(e){function t(){var t={enabled:!0,side:\"right\",showSlider:\"mouseover\",renderCharacters:!0,maxColumn:120,scale:1};return e.call(this,54,\"minimap\",t,{\"editor.minimap.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(36,null)},\"editor.minimap.side\":{type:\"string\",enum:[\"left\",\"right\"],default:t.side,description:n.localize(37,null)},\"editor.minimap.showSlider\":{type:\"string\",enum:[\"always\",\"mouseover\"],default:t.showSlider,description:n.localize(38,null)},\"editor.minimap.scale\":{type:\"number\",default:t.scale,minimum:1,maximum:3,description:n.localize(39,null)},\"editor.minimap.renderCharacters\":{type:\"boolean\",default:t.renderCharacters,\ndescription:n.localize(40,null)},\"editor.minimap.maxColumn\":{type:\"number\",default:t.maxColumn,description:n.localize(41,null)}})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),side:m.stringSet(t.side,this.defaultValue.side,[\"right\",\"left\"]),showSlider:m.stringSet(t.showSlider,this.defaultValue.showSlider,[\"always\",\"mouseover\"]),renderCharacters:h.boolean(t.renderCharacters,this.defaultValue.renderCharacters),scale:p.clampedInt(t.scale,1,1,3),maxColumn:p.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}},t}(u);var R=function(e){function t(){var t={enabled:!0,cycle:!1};return e.call(this,64,\"parameterHints\",t,{\"editor.parameterHints.enabled\":{type:\"boolean\",default:t.enabled,description:n.localize(42,null)},\"editor.parameterHints.cycle\":{type:\"boolean\",default:t.cycle,description:n.localize(43,null)}})||this}return r(t,e),t.prototype.validate=function(e){\nif(\"object\"!=typeof e)return this.defaultValue;var t=e;return{enabled:h.boolean(t.enabled,this.defaultValue.enabled),cycle:h.boolean(t.cycle,this.defaultValue.cycle)}},t}(u),O=function(e){function t(){return e.call(this,105)||this}return r(t,e),t.prototype.compute=function(e,t,n){return e.pixelRatio},t}(d),P=function(e){function t(){var t=this,i={other:!0,comments:!1,strings:!1};return(t=e.call(this,66,\"quickSuggestions\",i,{anyOf:[{type:\"boolean\"},{type:\"object\",properties:{strings:{type:\"boolean\",default:i.strings,description:n.localize(44,null)},comments:{type:\"boolean\",default:i.comments,description:n.localize(45,null)},other:{type:\"boolean\",default:i.other,description:n.localize(46,null)}}}],default:i,description:n.localize(47,null)})||this).defaultValue=i,t}return r(t,e),t.prototype.validate=function(e){if(\"boolean\"==typeof e)return e;if(\"object\"==typeof e){var t=e,n={other:h.boolean(t.other,this.defaultValue.other),comments:h.boolean(t.comments,this.defaultValue.comments),\nstrings:h.boolean(t.strings,this.defaultValue.strings)};return!!(n.other&&n.comments&&n.strings)||!!(n.other||n.comments||n.strings)&&n}return this.defaultValue},t}(u),A=function(e){function t(){return e.call(this,50,\"lineNumbers\",{renderType:1,renderFn:null},{type:\"string\",enum:[\"off\",\"on\",\"relative\",\"interval\"],enumDescriptions:[n.localize(48,null),n.localize(49,null),n.localize(50,null),n.localize(51,null)],default:\"on\",description:n.localize(52,null)})||this}return r(t,e),t.prototype.validate=function(e){var t=this.defaultValue.renderType,n=this.defaultValue.renderFn;return void 0!==e&&(\"function\"==typeof e?(t=4,n=e):t=\"interval\"===e?3:\"relative\"===e?2:\"on\"===e?1:0),{renderType:t,renderFn:n}},t}(u);t.filterValidationDecorations=function(e){var t=e.get(73);return\"editable\"===t?e.get(68):\"on\"!==t};var F=function(e){function t(){var t=[];return e.call(this,77,\"rulers\",t,{type:\"array\",items:{type:\"number\"},default:t,description:n.localize(53,null)})||this}return r(t,e),t.prototype.validate=function(e){\nif(Array.isArray(e)){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n];t.push(p.clampedInt(o,0,0,1e4))}return t.sort((function(e,t){return e-t})),t}return this.defaultValue},t}(c);function W(e,t){if(\"string\"!=typeof e)return t;switch(e){case\"hidden\":return 2;case\"visible\":return 3;default:return 1}}var B=function(e){function t(){return e.call(this,78,\"scrollbar\",{vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:10,horizontalSliderSize:10,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e,n=p.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),i=p.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:p.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:W(t.vertical,this.defaultValue.vertical),\nhorizontal:W(t.horizontal,this.defaultValue.horizontal),useShadows:h.boolean(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:h.boolean(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:h.boolean(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:h.boolean(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:h.boolean(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:p.clampedInt(t.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:i,verticalSliderSize:p.clampedInt(t.verticalSliderSize,i,0,1e3)}},t}(u),V=function(e){function t(){var t={insertMode:\"insert\",insertHighlight:!1,filterGraceful:!0,snippetsPreventQuickSuggestions:!0,localityBonus:!1,shareSuggestSelections:!1,showIcons:!0,maxVisibleSuggestions:12,showMethods:!0,showFunctions:!0,showConstructors:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,\nshowProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,hideStatusBar:!0};return e.call(this,89,\"suggest\",t,{\"editor.suggest.insertMode\":{type:\"string\",enum:[\"insert\",\"replace\"],enumDescriptions:[n.localize(54,null),n.localize(55,null)],default:t.insertMode,description:n.localize(56,null)},\"editor.suggest.insertHighlight\":{type:\"boolean\",default:t.insertHighlight,description:n.localize(57,null)},\"editor.suggest.filterGraceful\":{type:\"boolean\",default:t.filterGraceful,description:n.localize(58,null)},\"editor.suggest.localityBonus\":{type:\"boolean\",default:t.localityBonus,description:n.localize(59,null)},\"editor.suggest.shareSuggestSelections\":{type:\"boolean\",default:t.shareSuggestSelections,markdownDescription:n.localize(60,null)},\"editor.suggest.snippetsPreventQuickSuggestions\":{type:\"boolean\",\ndefault:t.snippetsPreventQuickSuggestions,description:n.localize(61,null)},\"editor.suggest.showIcons\":{type:\"boolean\",default:t.showIcons,description:n.localize(62,null)},\"editor.suggest.maxVisibleSuggestions\":{type:\"number\",default:t.maxVisibleSuggestions,minimum:1,maximum:15,description:n.localize(63,null)},\"editor.suggest.filteredTypes\":{type:\"object\",deprecationMessage:n.localize(64,null)},\"editor.suggest.showMethods\":{type:\"boolean\",default:!0,markdownDescription:n.localize(65,null)},\"editor.suggest.showFunctions\":{type:\"boolean\",default:!0,markdownDescription:n.localize(66,null)},\"editor.suggest.showConstructors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(67,null)},\"editor.suggest.showFields\":{type:\"boolean\",default:!0,markdownDescription:n.localize(68,null)},\"editor.suggest.showVariables\":{type:\"boolean\",default:!0,markdownDescription:n.localize(69,null)},\"editor.suggest.showClasses\":{type:\"boolean\",default:!0,markdownDescription:n.localize(70,null)},\"editor.suggest.showStructs\":{\ntype:\"boolean\",default:!0,markdownDescription:n.localize(71,null)},\"editor.suggest.showInterfaces\":{type:\"boolean\",default:!0,markdownDescription:n.localize(72,null)},\"editor.suggest.showModules\":{type:\"boolean\",default:!0,markdownDescription:n.localize(73,null)},\"editor.suggest.showProperties\":{type:\"boolean\",default:!0,markdownDescription:n.localize(74,null)},\"editor.suggest.showEvents\":{type:\"boolean\",default:!0,markdownDescription:n.localize(75,null)},\"editor.suggest.showOperators\":{type:\"boolean\",default:!0,markdownDescription:n.localize(76,null)},\"editor.suggest.showUnits\":{type:\"boolean\",default:!0,markdownDescription:n.localize(77,null)},\"editor.suggest.showValues\":{type:\"boolean\",default:!0,markdownDescription:n.localize(78,null)},\"editor.suggest.showConstants\":{type:\"boolean\",default:!0,markdownDescription:n.localize(79,null)},\"editor.suggest.showEnums\":{type:\"boolean\",default:!0,markdownDescription:n.localize(80,null)},\"editor.suggest.showEnumMembers\":{type:\"boolean\",default:!0,\nmarkdownDescription:n.localize(81,null)},\"editor.suggest.showKeywords\":{type:\"boolean\",default:!0,markdownDescription:n.localize(82,null)},\"editor.suggest.showWords\":{type:\"boolean\",default:!0,markdownDescription:n.localize(83,null)},\"editor.suggest.showColors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(84,null)},\"editor.suggest.showFiles\":{type:\"boolean\",default:!0,markdownDescription:n.localize(85,null)},\"editor.suggest.showReferences\":{type:\"boolean\",default:!0,markdownDescription:n.localize(86,null)},\"editor.suggest.showCustomcolors\":{type:\"boolean\",default:!0,markdownDescription:n.localize(87,null)},\"editor.suggest.showFolders\":{type:\"boolean\",default:!0,markdownDescription:n.localize(88,null)},\"editor.suggest.showTypeParameters\":{type:\"boolean\",default:!0,markdownDescription:n.localize(89,null)},\"editor.suggest.showSnippets\":{type:\"boolean\",default:!0,markdownDescription:n.localize(90,null)},\"editor.suggest.hideStatusBar\":{type:\"boolean\",default:!0,markdownDescription:n.localize(91,null)}\n})||this}return r(t,e),t.prototype.validate=function(e){if(\"object\"!=typeof e)return this.defaultValue;var t=e;return{insertMode:m.stringSet(t.insertMode,this.defaultValue.insertMode,[\"insert\",\"replace\"]),insertHighlight:h.boolean(t.insertHighlight,this.defaultValue.insertHighlight),filterGraceful:h.boolean(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:h.boolean(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:h.boolean(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:h.boolean(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),showIcons:h.boolean(t.showIcons,this.defaultValue.showIcons),maxVisibleSuggestions:p.clampedInt(t.maxVisibleSuggestions,this.defaultValue.maxVisibleSuggestions,1,15),showMethods:h.boolean(t.showMethods,this.defaultValue.showMethods),showFunctions:h.boolean(t.showFunctions,this.defaultValue.showFunctions),\nshowConstructors:h.boolean(t.showConstructors,this.defaultValue.showConstructors),showFields:h.boolean(t.showFields,this.defaultValue.showFields),showVariables:h.boolean(t.showVariables,this.defaultValue.showVariables),showClasses:h.boolean(t.showClasses,this.defaultValue.showClasses),showStructs:h.boolean(t.showStructs,this.defaultValue.showStructs),showInterfaces:h.boolean(t.showInterfaces,this.defaultValue.showInterfaces),showModules:h.boolean(t.showModules,this.defaultValue.showModules),showProperties:h.boolean(t.showProperties,this.defaultValue.showProperties),showEvents:h.boolean(t.showEvents,this.defaultValue.showEvents),showOperators:h.boolean(t.showOperators,this.defaultValue.showOperators),showUnits:h.boolean(t.showUnits,this.defaultValue.showUnits),showValues:h.boolean(t.showValues,this.defaultValue.showValues),showConstants:h.boolean(t.showConstants,this.defaultValue.showConstants),showEnums:h.boolean(t.showEnums,this.defaultValue.showEnums),\nshowEnumMembers:h.boolean(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:h.boolean(t.showKeywords,this.defaultValue.showKeywords),showWords:h.boolean(t.showWords,this.defaultValue.showWords),showColors:h.boolean(t.showColors,this.defaultValue.showColors),showFiles:h.boolean(t.showFiles,this.defaultValue.showFiles),showReferences:h.boolean(t.showReferences,this.defaultValue.showReferences),showFolders:h.boolean(t.showFolders,this.defaultValue.showFolders),showTypeParameters:h.boolean(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:h.boolean(t.showSnippets,this.defaultValue.showSnippets),hideStatusBar:h.boolean(t.hideStatusBar,this.defaultValue.hideStatusBar)}},t}(u),z=function(e){function t(){return e.call(this,106,[68])||this}return r(t,e),t.prototype.compute=function(e,t,n){return!!t.get(68)||e.tabFocusMode},t}(d);var H=function(e){function t(){return e.call(this,108,[97,100,101,107,2])||this}return r(t,e),t.prototype.compute=function(e,t,n){\nvar i=t.get(97),o=t.get(100),r=t.get(101),s=t.get(107),a=null;return a=2===t.get(2)?{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1}:r&&e.isDominatedByLongLines?{isWordWrapMinified:!0,isViewportWrapping:!0,wrappingColumn:Math.max(1,s.viewportColumn)}:\"on\"===i?{isWordWrapMinified:!1,isViewportWrapping:!0,wrappingColumn:Math.max(1,s.viewportColumn)}:\"bounded\"===i?{isWordWrapMinified:!1,isViewportWrapping:!0,wrappingColumn:Math.min(Math.max(1,s.viewportColumn),o)}:\"wordWrapColumn\"===i?{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:o}:{isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1},{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:a.isWordWrapMinified,isViewportWrapping:a.isViewportWrapping,wrappingColumn:a.wrappingColumn}},t}(d);function K(e){return t.editorOptionsRegistry[e.id]=e,e}t.EDITOR_FONT_DEFAULTS={\nfontFamily:i.isMacintosh?\"Menlo, Monaco, 'Courier New', monospace\":i.isLinux?\"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'\":\"Consolas, 'Courier New', monospace\",fontWeight:\"normal\",fontSize:i.isMacintosh?12:14,lineHeight:0,letterSpacing:0},t.EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},t.editorOptionsRegistry=[],t.EditorOptions={acceptSuggestionOnCommitCharacter:K(new h(0,\"acceptSuggestionOnCommitCharacter\",!0,{markdownDescription:n.localize(92,null)})),acceptSuggestionOnEnter:K(new m(1,\"acceptSuggestionOnEnter\",\"on\",[\"on\",\"smart\",\"off\"],{markdownEnumDescriptions:[\"\",n.localize(93,null),\"\"],markdownDescription:n.localize(94,null)})),accessibilitySupport:K(new y),accessibilityPageSize:K(new p(3,\"accessibilityPageSize\",10,1,1073741824,{description:n.localize(95,null)})),ariaLabel:K(new f(4,\"ariaLabel\",n.localize(96,null))),\nautoClosingBrackets:K(new m(5,\"autoClosingBrackets\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",n.localize(97,null),n.localize(98,null),\"\"],description:n.localize(99,null)})),autoClosingOvertype:K(new m(6,\"autoClosingOvertype\",\"auto\",[\"always\",\"auto\",\"never\"],{enumDescriptions:[\"\",n.localize(100,null),\"\"],description:n.localize(101,null)})),autoClosingQuotes:K(new m(7,\"autoClosingQuotes\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",n.localize(102,null),n.localize(103,null),\"\"],description:n.localize(104,null)})),autoIndent:K(new v(8,\"autoIndent\",4,\"full\",[\"none\",\"keep\",\"brackets\",\"advanced\",\"full\"],(function(e){switch(e){case\"none\":return 0;case\"keep\":return 1;case\"brackets\":return 2;case\"advanced\":return 3;case\"full\":return 4}}),{enumDescriptions:[n.localize(105,null),n.localize(106,null),n.localize(107,null),n.localize(108,null),n.localize(109,null)],description:n.localize(110,null)})),\nautomaticLayout:K(new h(9,\"automaticLayout\",!1)),autoSurround:K(new m(10,\"autoSurround\",\"languageDefined\",[\"languageDefined\",\"quotes\",\"brackets\",\"never\"],{enumDescriptions:[n.localize(111,null),n.localize(112,null),n.localize(113,null),\"\"],description:n.localize(114,null)})),codeLens:K(new h(11,\"codeLens\",!0,{description:n.localize(115,null)})),colorDecorators:K(new h(12,\"colorDecorators\",!0,{description:n.localize(116,null)})),comments:K(new C),contextmenu:K(new h(14,\"contextmenu\",!0)),copyWithSyntaxHighlighting:K(new h(15,\"copyWithSyntaxHighlighting\",!0,{description:n.localize(117,null)})),cursorBlinking:K(new v(16,\"cursorBlinking\",1,\"blink\",[\"blink\",\"smooth\",\"phase\",\"expand\",\"solid\"],(function(e){switch(e){case\"blink\":return 1;case\"smooth\":return 2;case\"phase\":return 3;case\"expand\":return 4;case\"solid\":return 5}}),{description:n.localize(118,null)})),cursorSmoothCaretAnimation:K(new h(17,\"cursorSmoothCaretAnimation\",!1,{description:n.localize(119,null)})),\ncursorStyle:K(new v(18,\"cursorStyle\",_.Line,\"line\",[\"line\",\"block\",\"underline\",\"line-thin\",\"block-outline\",\"underline-thin\"],(function(e){switch(e){case\"line\":return _.Line;case\"block\":return _.Block;case\"underline\":return _.Underline;case\"line-thin\":return _.LineThin;case\"block-outline\":return _.BlockOutline;case\"underline-thin\":return _.UnderlineThin}}),{description:n.localize(120,null)})),cursorSurroundingLines:K(new p(19,\"cursorSurroundingLines\",0,0,1073741824,{description:n.localize(121,null)})),cursorSurroundingLinesStyle:K(new m(20,\"cursorSurroundingLinesStyle\",\"default\",[\"default\",\"all\"],{enumDescriptions:[n.localize(122,null),n.localize(123,null)],description:n.localize(124,null)})),cursorWidth:K(new p(21,\"cursorWidth\",0,0,1073741824,{markdownDescription:n.localize(125,null)})),disableLayerHinting:K(new h(22,\"disableLayerHinting\",!1)),disableMonospaceOptimizations:K(new h(23,\"disableMonospaceOptimizations\",!1)),dragAndDrop:K(new h(24,\"dragAndDrop\",!0,{description:n.localize(126,null)})),\nemptySelectionClipboard:K(new S),extraEditorClassName:K(new f(26,\"extraEditorClassName\",\"\")),fastScrollSensitivity:K(new g(27,\"fastScrollSensitivity\",5,(function(e){return e<=0?5:e}),{markdownDescription:n.localize(127,null)})),find:K(new w),fixedOverflowWidgets:K(new h(29,\"fixedOverflowWidgets\",!1)),folding:K(new h(30,\"folding\",!0,{description:n.localize(128,null)})),foldingStrategy:K(new m(31,\"foldingStrategy\",\"auto\",[\"auto\",\"indentation\"],{markdownDescription:n.localize(129,null)})),foldingHighlight:K(new h(32,\"foldingHighlight\",!0,{description:n.localize(130,null)})),fontFamily:K(new f(33,\"fontFamily\",t.EDITOR_FONT_DEFAULTS.fontFamily,{description:n.localize(131,null)})),fontInfo:K(new L),fontLigatures2:K(new E),fontSize:K(new D),fontWeight:K(new f(37,\"fontWeight\",t.EDITOR_FONT_DEFAULTS.fontWeight,{enum:[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"],description:n.localize(132,null)})),formatOnPaste:K(new h(38,\"formatOnPaste\",!1,{description:n.localize(133,null)})),\nformatOnType:K(new h(39,\"formatOnType\",!1,{description:n.localize(134,null)})),glyphMargin:K(new h(40,\"glyphMargin\",!0,{description:n.localize(135,null)})),gotoLocation:K(new N),hideCursorInOverviewRuler:K(new h(42,\"hideCursorInOverviewRuler\",!1,{description:n.localize(136,null)})),highlightActiveIndentGuide:K(new h(43,\"highlightActiveIndentGuide\",!0,{description:n.localize(137,null)})),hover:K(new x),inDiffEditor:K(new h(45,\"inDiffEditor\",!1)),letterSpacing:K(new g(46,\"letterSpacing\",t.EDITOR_FONT_DEFAULTS.letterSpacing,(function(e){return g.clamp(e,-5,20)}),{description:n.localize(138,null)})),lightbulb:K(new M),lineDecorationsWidth:K(new c(48,\"lineDecorationsWidth\",10)),lineHeight:K(new k),lineNumbers:K(new A),lineNumbersMinChars:K(new p(51,\"lineNumbersMinChars\",5,1,300)),links:K(new h(52,\"links\",!0,{description:n.localize(139,null)})),matchBrackets:K(new m(53,\"matchBrackets\",\"always\",[\"always\",\"near\",\"never\"],{description:n.localize(140,null)})),minimap:K(new T),\nmouseStyle:K(new m(55,\"mouseStyle\",\"text\",[\"text\",\"default\",\"copy\"])),mouseWheelScrollSensitivity:K(new g(56,\"mouseWheelScrollSensitivity\",1,(function(e){return 0===e?1:e}),{markdownDescription:n.localize(141,null)})),mouseWheelZoom:K(new h(57,\"mouseWheelZoom\",!1,{markdownDescription:n.localize(142,null)})),multiCursorMergeOverlapping:K(new h(58,\"multiCursorMergeOverlapping\",!0,{description:n.localize(143,null)})),multiCursorModifier:K(new v(59,\"multiCursorModifier\",\"altKey\",\"alt\",[\"ctrlCmd\",\"alt\"],(function(e){return\"ctrlCmd\"===e?i.isMacintosh?\"metaKey\":\"ctrlKey\":\"altKey\"}),{markdownEnumDescriptions:[n.localize(144,null),n.localize(145,null)],markdownDescription:n.localize(146,null)})),multiCursorPaste:K(new m(60,\"multiCursorPaste\",\"spread\",[\"spread\",\"full\"],{markdownEnumDescriptions:[n.localize(147,null),n.localize(148,null)],markdownDescription:n.localize(149,null)})),occurrencesHighlight:K(new h(61,\"occurrencesHighlight\",!0,{description:n.localize(150,null)})),\noverviewRulerBorder:K(new h(62,\"overviewRulerBorder\",!0,{description:n.localize(151,null)})),overviewRulerLanes:K(new p(63,\"overviewRulerLanes\",3,0,3)),parameterHints:K(new R),peekWidgetDefaultFocus:K(new m(65,\"peekWidgetDefaultFocus\",\"tree\",[\"tree\",\"editor\"],{enumDescriptions:[n.localize(152,null),n.localize(153,null)],description:n.localize(154,null)})),quickSuggestions:K(new P),quickSuggestionsDelay:K(new p(67,\"quickSuggestionsDelay\",10,0,1073741824,{description:n.localize(155,null)})),readOnly:K(new h(68,\"readOnly\",!1)),renderControlCharacters:K(new h(69,\"renderControlCharacters\",!1,{description:n.localize(156,null)})),renderIndentGuides:K(new h(70,\"renderIndentGuides\",!0,{description:n.localize(157,null)})),renderFinalNewline:K(new h(71,\"renderFinalNewline\",!0,{description:n.localize(158,null)})),renderLineHighlight:K(new m(72,\"renderLineHighlight\",\"line\",[\"none\",\"gutter\",\"line\",\"all\"],{enumDescriptions:[\"\",\"\",\"\",n.localize(159,null)],description:n.localize(160,null)})),\nrenderValidationDecorations:K(new m(73,\"renderValidationDecorations\",\"editable\",[\"editable\",\"on\",\"off\"])),renderWhitespace:K(new m(74,\"renderWhitespace\",\"none\",[\"none\",\"boundary\",\"selection\",\"all\"],{enumDescriptions:[\"\",n.localize(161,null),n.localize(162,null),\"\"],description:n.localize(163,null)})),revealHorizontalRightPadding:K(new p(75,\"revealHorizontalRightPadding\",30,0,1e3)),roundedSelection:K(new h(76,\"roundedSelection\",!0,{description:n.localize(164,null)})),rulers:K(new F),scrollbar:K(new B),scrollBeyondLastColumn:K(new p(79,\"scrollBeyondLastColumn\",5,0,1073741824,{description:n.localize(165,null)})),scrollBeyondLastLine:K(new h(80,\"scrollBeyondLastLine\",!0,{description:n.localize(166,null)})),selectionClipboard:K(new h(81,\"selectionClipboard\",!0,{description:n.localize(167,null),included:i.isLinux})),selectionHighlight:K(new h(82,\"selectionHighlight\",!0,{description:n.localize(168,null)})),selectOnLineNumbers:K(new h(83,\"selectOnLineNumbers\",!0)),\nshowFoldingControls:K(new m(84,\"showFoldingControls\",\"mouseover\",[\"always\",\"mouseover\"],{description:n.localize(169,null)})),showUnused:K(new h(85,\"showUnused\",!0,{description:n.localize(170,null)})),snippetSuggestions:K(new m(86,\"snippetSuggestions\",\"inline\",[\"top\",\"bottom\",\"inline\",\"none\"],{enumDescriptions:[n.localize(171,null),n.localize(172,null),n.localize(173,null),n.localize(174,null)],description:n.localize(175,null)})),smoothScrolling:K(new h(87,\"smoothScrolling\",!1,{description:n.localize(176,null)})),stopRenderingLineAfter:K(new p(88,\"stopRenderingLineAfter\",1e4,-1,1073741824)),suggest:K(new V),suggestFontSize:K(new p(90,\"suggestFontSize\",0,0,1e3,{markdownDescription:n.localize(177,null)})),suggestLineHeight:K(new p(91,\"suggestLineHeight\",0,0,1e3,{markdownDescription:n.localize(178,null)})),suggestOnTriggerCharacters:K(new h(92,\"suggestOnTriggerCharacters\",!0,{description:n.localize(179,null)})),\nsuggestSelection:K(new m(93,\"suggestSelection\",\"recentlyUsed\",[\"first\",\"recentlyUsed\",\"recentlyUsedByPrefix\"],{markdownEnumDescriptions:[n.localize(180,null),n.localize(181,null),n.localize(182,null)],description:n.localize(183,null)})),tabCompletion:K(new m(94,\"tabCompletion\",\"off\",[\"on\",\"off\",\"onlySnippets\"],{enumDescriptions:[n.localize(184,null),n.localize(185,null),n.localize(186,null)],description:n.localize(187,null)})),useTabStops:K(new h(95,\"useTabStops\",!0,{description:n.localize(188,null)})),wordSeparators:K(new f(96,\"wordSeparators\",o.USUAL_WORD_SEPARATORS,{description:n.localize(189,null)})),wordWrap:K(new m(97,\"wordWrap\",\"off\",[\"off\",\"on\",\"wordWrapColumn\",\"bounded\"],{markdownEnumDescriptions:[n.localize(190,null),n.localize(191,null),n.localize(192,null),n.localize(193,null)],description:n.localize(194,null)})),wordWrapBreakAfterCharacters:K(new f(98,\"wordWrapBreakAfterCharacters\",\" \\t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣\")),\nwordWrapBreakBeforeCharacters:K(new f(99,\"wordWrapBreakBeforeCharacters\",\"([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋\")),wordWrapColumn:K(new p(100,\"wordWrapColumn\",80,1,1073741824,{markdownDescription:n.localize(195,null)})),wordWrapMinified:K(new h(101,\"wordWrapMinified\",!0)),wrappingIndent:K(new v(102,\"wrappingIndent\",1,\"same\",[\"none\",\"same\",\"indent\",\"deepIndent\"],(function(e){switch(e){case\"none\":return 0;case\"same\":return 1;case\"indent\":return 2;case\"deepIndent\":return 3}}),{enumDescriptions:[n.localize(196,null),n.localize(197,null),n.localize(198,null),n.localize(199,null)],description:n.localize(200,null)})),wrappingStrategy:K(new m(103,\"wrappingStrategy\",\"simple\",[\"simple\",\"advanced\"],{enumDescriptions:[n.localize(201,null),n.localize(202,null)],description:n.localize(203,null)})),editorClassName:K(new b),pixelRatio:K(new O),tabFocusMode:K(new z),layoutInfo:K(new I),wrappingInfo:K(new H)}})),define(n[424],i([0,1,13,3,69,33]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var s=function(){function e(e,t,n,i,o){this.editorId=e,this.model=t,this.configuration=n,this._linesCollection=i,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}return e.prototype._clearCachedModelDecorationsResolver=function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null},e.prototype.dispose=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.reset=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onModelDecorationsChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onLineMappingChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype._getOrCreateViewModelDecoration=function(e){\nvar t=e.id,r=this._decorationsCache[t];if(!r){var s=e.range,a=e.options,l=void 0;if(a.isWholeLine){var u=this._coordinatesConverter.convertModelPositionToViewPosition(new n.Position(s.startLineNumber,1)),d=this._coordinatesConverter.convertModelPositionToViewPosition(new n.Position(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)));l=new i.Range(u.lineNumber,u.column,d.lineNumber,d.column)}else l=this._coordinatesConverter.convertModelRangeToViewRange(s);r=new o.ViewModelDecoration(l,a),this._decorationsCache[t]=r}return r},e.prototype.getDecorationsViewportData=function(e){var t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver},e.prototype._getDecorationsViewportData=function(e){\nfor(var t=this._linesCollection.getDecorationsInRange(e,this.editorId,r.filterValidationDecorations(this.configuration.options)),n=e.startLineNumber,s=e.endLineNumber,a=[],l=0,u=[],d=n;d<=s;d++)u[d-n]=[];for(var c=0,h=t.length;c<h;c++){var p=t[c],g=p.options,f=this._getOrCreateViewModelDecoration(p),m=f.range;if(a[l++]=f,g.inlineClassName){var v=new o.InlineDecoration(m,g.inlineClassName,g.inlineClassNameAffectsLetterSpacing?3:0),_=Math.max(n,m.startLineNumber),y=Math.min(s,m.endLineNumber);for(d=_;d<=y;d++)u[d-n].push(v)}if(g.beforeContentClassName&&n<=m.startLineNumber&&m.startLineNumber<=s){v=new o.InlineDecoration(new i.Range(m.startLineNumber,m.startColumn,m.startLineNumber,m.startColumn),g.beforeContentClassName,1);u[m.startLineNumber-n].push(v)}if(g.afterContentClassName&&n<=m.endLineNumber&&m.endLineNumber<=s){v=new o.InlineDecoration(new i.Range(m.endLineNumber,m.endColumn,m.endLineNumber,m.endColumn),g.afterContentClassName,2);u[m.endLineNumber-n].push(v)}}return{decorations:a,inlineDecorations:u}},\ne}();t.ViewModelDecorations=s})),define(n[425],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/modes/modesRegistry\",t)})),define(n[426],i([7,8]),(function(e,t){return e.create(\"vs/editor/common/standaloneStrings\",t)})),define(n[59],i([0,1,426]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.noSelection=n.localize(0,null),e.singleSelectionRange=n.localize(1,null),e.singleSelection=n.localize(2,null),e.multiSelectionRange=n.localize(3,null),e.multiSelection=n.localize(4,null),e.emergencyConfOn=n.localize(5,null),e.openingDocs=n.localize(6,null),e.readonlyDiffEditor=n.localize(7,null),e.editableDiffEditor=n.localize(8,null),e.readonlyEditor=n.localize(9,null),e.editableEditor=n.localize(10,null),e.changeConfigToOnMac=n.localize(11,null),e.changeConfigToOnWinLinux=n.localize(12,null),e.auto_on=n.localize(13,null),e.auto_off=n.localize(14,null),e.tabFocusModeOnMsg=n.localize(15,null),e.tabFocusModeOnMsgNoKb=n.localize(16,null),\ne.tabFocusModeOffMsg=n.localize(17,null),e.tabFocusModeOffMsgNoKb=n.localize(18,null),e.openDocMac=n.localize(19,null),e.openDocWinLinux=n.localize(20,null),e.outroMsg=n.localize(21,null),e.showAccessibilityHelpAction=n.localize(22,null)}(t.AccessibilityHelpNLS||(t.AccessibilityHelpNLS={})),function(e){e.inspectTokensAction=n.localize(23,null)}(t.InspectTokensNLS||(t.InspectTokensNLS={})),function(e){e.gotoLineLabelValidLineAndColumn=n.localize(24,null),e.gotoLineLabelValidLine=n.localize(25,null),e.gotoLineLabelEmptyWithLineLimit=n.localize(26,null),e.gotoLineLabelEmptyWithLineAndColumnLimit=n.localize(27,null),e.gotoLineAriaLabel=n.localize(28,null),e.gotoLineActionInput=n.localize(29,null),e.gotoLineActionLabel=n.localize(30,null)}(t.GoToLineNLS||(t.GoToLineNLS={})),function(e){e.ariaLabelEntryWithKey=n.localize(31,null),e.ariaLabelEntry=n.localize(32,null),e.quickCommandActionInput=n.localize(33,null),e.quickCommandActionLabel=n.localize(34,null)}(t.QuickCommandNLS||(t.QuickCommandNLS={})),function(e){\ne.entryAriaLabel=n.localize(35,null),e.quickOutlineActionInput=n.localize(36,null),e.quickOutlineActionLabel=n.localize(37,null),e._symbols_=n.localize(38,null),e._modules_=n.localize(39,null),e._class_=n.localize(40,null),e._interface_=n.localize(41,null),e._method_=n.localize(42,null),e._function_=n.localize(43,null),e._property_=n.localize(44,null),e._variable_=n.localize(45,null),e._variable2_=n.localize(46,null),e._constructor_=n.localize(47,null),e._call_=n.localize(48,null)}(t.QuickOutlineNLS||(t.QuickOutlineNLS={})),function(e){e.editorViewAccessibleLabel=n.localize(49,null),e.accessibilityHelpMessageIE=n.localize(50,null),e.accessibilityHelpMessage=n.localize(51,null)}(t.StandaloneCodeEditorNLS||(t.StandaloneCodeEditorNLS={})),function(e){e.toggleHighContrast=n.localize(52,null)}(t.ToggleHighContrastNLS||(t.ToggleHighContrastNLS={})),function(e){e.bulkEditServiceSummary=n.localize(53,null)}(t.SimpleServicesNLS||(t.SimpleServicesNLS={}))})),define(n[427],i([7,8]),(function(e,t){\nreturn e.create(\"vs/editor/common/view/editorColorRegistry\",t)})),define(n[428],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/bracketMatching/bracketMatching\",t)})),define(n[429],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/caretOperations/caretOperations\",t)})),define(n[430],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/caretOperations/transpose\",t)})),define(n[431],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/clipboard/clipboard\",t)})),define(n[432],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/codeAction/codeActionCommands\",t)})),define(n[433],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/codeAction/lightBulbWidget\",t)})),define(n[434],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/comment/comment\",t)})),define(n[435],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/contextmenu/contextmenu\",t)})),define(n[436],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/cursorUndo/cursorUndo\",t)})),\ndefine(n[437],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/documentSymbols/outlineTree\",t)})),define(n[438],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/find/findController\",t)})),define(n[439],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/find/findWidget\",t)})),define(n[440],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/folding/folding\",t)})),define(n[441],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/fontZoom/fontZoom\",t)})),define(n[442],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/format/format\",t)})),define(n[443],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/format/formatActions\",t)})),define(n[444],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoError/gotoError\",t)})),define(n[445],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoError/gotoErrorWidget\",t)})),define(n[446],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/goToCommands\",t)})),\ndefine(n[447],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\",t)})),define(n[448],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesController\",t)})),define(n[449],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesTree\",t)})),define(n[450],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\",t)})),define(n[451],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/referencesModel\",t)})),define(n[113],i([0,1,451,4,39,2,5,127,3]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t,n,i){this.isProviderFirst=e,this.parent=t,this._range=n,this._rangeCallback=i,this.id=a.defaultGenerator.nextId()}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this.parent.uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"range\",{\nget:function(){return this._range},set:function(e){this._range=e,this._rangeCallback(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){return n.localize(0,null,o.basename(this.uri),this.range.startLineNumber,this.range.startColumn)},enumerable:!0,configurable:!0}),e}();t.OneReference=u;var d=function(){function e(e){this._modelReference=e}return e.prototype.dispose=function(){this._modelReference.dispose()},e.prototype.preview=function(e,t){void 0===t&&(t=8);var n=this._modelReference.object.textEditorModel;if(n){var i=e.startLineNumber,o=e.startColumn,r=e.endLineNumber,s=e.endColumn,a=n.getWordUntilPosition({lineNumber:i,column:o-t}),u=new l.Range(i,a.startColumn,i,o),d=new l.Range(r,s,r,1073741824),c=n.getValueInRange(u).replace(/^\\s+/,\"\"),h=n.getValueInRange(e);return{value:c+h+n.getValueInRange(d).replace(/\\s+$/,\"\"),highlight:{start:c.length,end:c.length+h.length}}}},e}();t.FilePreview=d;var c=function(){function e(e,t){this.parent=e,this.uri=t,\nthis.children=[]}return e.prototype.dispose=function(){r.dispose(this._preview),this._preview=void 0},Object.defineProperty(e.prototype,\"preview\",{get:function(){return this._preview},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"failure\",{get:function(){return this._loadFailure},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){var e=this.children.length;return 1===e?n.localize(1,null,o.basename(this.uri),this.uri.fsPath):n.localize(2,null,e,o.basename(this.uri),this.uri.fsPath)},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;return this._resolved?Promise.resolve(this):Promise.resolve(e.createModelReference(this.uri).then((function(e){if(!e.object)throw e.dispose(),new Error;return t._preview=new d(e),t._resolved=!0,t}),(function(e){return t.children.length=0,t._resolved=!0,t._loadFailure=e,t})))},e}();t.FileReferences=c;var h=function(){function e(t,n){var o=this;this._disposables=new r.DisposableStore,\nthis.groups=[],this.references=[],this._onDidChangeReferenceRange=new i.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;var s,a=t[0];t.sort(e._compareReferences);for(var d=0,h=t;d<h.length;d++){var p=h[d];if(s&&s.uri.toString()===p.uri.toString()||(s=new c(this,p.uri),this.groups.push(s)),0===s.children.length||!l.Range.equalsRange(p.range,s.children[s.children.length-1].range)){var g=new u(a===p,s,p.targetSelectionRange||p.range,(function(e){return o._onDidChangeReferenceRange.fire(e)}));this.references.push(g),s.children.push(g)}}}return e.prototype.dispose=function(){r.dispose(this.groups),this._disposables.dispose(),this._onDidChangeReferenceRange.dispose(),this.groups.length=0},e.prototype.clone=function(){return new e(this._links,this._title)},Object.defineProperty(e.prototype,\"title\",{get:function(){return this._title},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isEmpty\",{get:function(){return 0===this.groups.length},\nenumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ariaMessage\",{get:function(){return this.isEmpty?n.localize(3,null):1===this.references.length?n.localize(4,null,this.references[0].uri.fsPath):1===this.groups.length?n.localize(5,null,this.references.length,this.groups[0].uri.fsPath):n.localize(6,null,this.references.length,this.groups.length)},enumerable:!0,configurable:!0}),e.prototype.nextOrPreviousReference=function(e,t){var n=e.parent,i=n.children.indexOf(e),o=n.children.length,r=n.parent.groups.length;return 1===r||t&&i+1<o||!t&&i>0?(i=t?(i+1)%o:(i+o-1)%o,n.children[i]):(i=n.parent.groups.indexOf(n),t?(i=(i+1)%r,n.parent.groups[i].children[0]):(i=(i+r-1)%r,n.parent.groups[i].children[n.parent.groups[i].children.length-1]))},e.prototype.nearestReference=function(e,t){var n=this.references.map((function(n,i){return{idx:i,prefixLen:s.commonPrefixLength(n.uri.toString(),e.toString()),offsetDist:100*Math.abs(n.range.startLineNumber-t.lineNumber)+Math.abs(n.range.startColumn-t.column)}\n})).sort((function(e,t){return e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0}))[0];if(n)return this.references[n.idx]},e.prototype.referenceAt=function(e,t){for(var n=0,i=this.references;n<i.length;n++){var o=i[n];if(o.uri.toString()===e.toString()&&l.Range.containsPosition(o.range,t))return o}},e.prototype.firstReference=function(){for(var e=0,t=this.references;e<t.length;e++){var n=t[e];if(n.isProviderFirst)return n}return this.references[0]},e._compareReferences=function(e,t){return s.compare(e.uri.toString(),t.uri.toString())||l.Range.compareRangesUsingStarts(e.range,t.range)},e}();t.ReferencesModel=h})),define(n[452],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/gotoSymbol/symbolNavigation\",t)})),define(n[453],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/hover/hover\",t)})),define(n[454],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/hover/modesContentHover\",t)})),define(n[455],i([7,8]),(function(e,t){\nreturn e.create(\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\",t)})),define(n[456],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/linesOperations/linesOperations\",t)})),define(n[457],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/links/links\",t)})),define(n[458],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/message/messageController\",t)})),define(n[459],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/multicursor/multicursor\",t)})),define(n[460],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/parameterHints/parameterHints\",t)})),define(n[461],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/parameterHints/parameterHintsWidget\",t)})),define(n[462],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/peekView/peekView\",t)})),define(n[463],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/rename/rename\",t)})),define(n[464],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/rename/renameInputField\",t)})),\ndefine(n[465],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/smartSelect/smartSelect\",t)})),define(n[466],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/snippet/snippetVariables\",t)})),define(n[467],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/suggest/suggestController\",t)})),define(n[468],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/suggest/suggestWidget\",t)})),define(n[469],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\",t)})),define(n[470],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/tokenization/tokenization\",t)})),define(n[471],i([7,8]),(function(e,t){return e.create(\"vs/editor/contrib/wordHighlighter/wordHighlighter\",t)})),define(n[472],i([7,8]),(function(e,t){return e.create(\"vs/platform/configuration/common/configurationRegistry\",t)})),define(n[473],i([7,8]),(function(e,t){return e.create(\"vs/platform/keybinding/common/abstractKeybindingService\",t)})),\ndefine(n[474],i([7,8]),(function(e,t){return e.create(\"vs/platform/list/browser/listService\",t)})),define(n[475],i([7,8]),(function(e,t){return e.create(\"vs/platform/markers/common/markers\",t)})),define(n[476],i([7,8]),(function(e,t){return e.create(\"vs/platform/theme/common/colorRegistry\",t)})),define(n[477],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputFocusedContextKey=\"inputFocus\"})),define(n[478],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.API=0]=\"API\",e[e.USER=1]=\"USER\"}(t.EditorOpenContext||(t.EditorOpenContext={}))})),define(n[479],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this.value=e,this._lower=e.toLowerCase()}return e.toKey=function(e){return\"string\"==typeof e?e.toLowerCase():e._lower},e}();t.ExtensionIdentifier=n})),define(n[208],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nfunction(e){e[e.FILE=0]=\"FILE\",e[e.FOLDER=1]=\"FOLDER\",e[e.ROOT_FOLDER=2]=\"ROOT_FOLDER\"}(t.FileKind||(t.FileKind={}))})),define(n[209],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=!1),this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=n};t.SyncDescriptor=n})),define(n[83],i([0,1,209]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=[];t.registerSingleton=function(e,t,o){i.push([e,new n.SyncDescriptor(t,[],o)])},t.getSingletonServiceDescriptors=function(){return i}})),define(n[480],i([0,1,21,87]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e){this._hashFn=e,this._nodes=Object.create(null)}return e.prototype.roots=function(){var e=[];return i.forEach(this._nodes,(function(t){n.isEmptyObject(t.value.outgoing)&&e.push(t.value)})),e},e.prototype.insertEdge=function(e,t){\nvar n=this.lookupOrInsertNode(e),i=this.lookupOrInsertNode(t);n.outgoing[this._hashFn(t)]=i,i.incoming[this._hashFn(e)]=n},e.prototype.removeNode=function(e){var t=this._hashFn(e);delete this._nodes[t],i.forEach(this._nodes,(function(e){delete e.value.outgoing[t],delete e.value.incoming[t]}))},e.prototype.lookupOrInsertNode=function(e){var t=this._hashFn(e),n=this._nodes[t];return n||(n=function(e){return{data:e,incoming:Object.create(null),outgoing:Object.create(null)}}(e),this._nodes[t]=n),n},e.prototype.isEmpty=function(){for(var e in this._nodes)return!1;return!0},e.prototype.toString=function(){var e=[];return i.forEach(this._nodes,(function(t){e.push(t.key+\", (incoming)[\"+Object.keys(t.value.incoming).join(\", \")+\"], (outgoing)[\"+Object.keys(t.value.outgoing).join(\",\")+\"]\")})),e.join(\"\\n\")},e}();t.Graph=o})),define(n[11],i([0,1]),(function(e,t){\"use strict\";var n;function i(e,t,i,o){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i,optional:o}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i,optional:o}],\nt[n.DI_TARGET]=t)}function o(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);var t=function(e,n,o){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");i(t,e,o,!1)};return t.toString=function(){return e},n.serviceIds.set(e,t),t}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.serviceIds=new Map,e.DI_TARGET=\"$di$target\",e.DI_DEPENDENCIES=\"$di$dependencies\",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(n=t._util||(t._util={})),t.IInstantiationService=o(\"instantiationService\"),t.createDecorator=o,t.optional=function(e){return function(t,n,o){if(3!==arguments.length)throw new Error(\"@optional-decorator can only be used to decorate a parameter\");i(e,t,o,!0)}}})),define(n[156],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IBulkEditService=n.createDecorator(\"IWorkspaceEditService\")})),define(n[32],i([0,1,11]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICodeEditorService=n.createDecorator(\"codeEditorService\")})),define(n[62],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ID_EDITOR_WORKER_SERVICE=\"editorWorkerService\",t.IEditorWorkerService=n.createDecorator(t.ID_EDITOR_WORKER_SERVICE)})),define(n[210],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IMarkerDecorationsService=n.createDecorator(\"markerDecorationsService\")})),define(n[71],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IModeService=n.createDecorator(\"modeService\")})),define(n[49],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IModelService=n.createDecorator(\"modelService\"),t.shouldSynchronizeModel=function(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}})),define(n[481],i([0,1,4,2,350,49]),(function(e,t,n,i,o,r){\"use strict\";function s(e){\nreturn\"string\"!=typeof e&&(Array.isArray(e)?e.every(s):!!e.exclusive)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(){this._clock=0,this._entries=[],this._onDidChange=new n.Emitter}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var n=this,o={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(o),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i.toDisposable((function(){if(o){var e=n._entries.indexOf(o);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),o=void 0)}}))},e.prototype.has=function(e){return this.all(e).length>0},e.prototype.all=function(e){if(!e)return[];this._updateScores(e);for(var t=[],n=0,i=this._entries;n<i.length;n++){var o=i[n];o._score>0&&t.push(o.provider)}return t},e.prototype.ordered=function(e){var t=[]\n;return this._orderedForEach(e,(function(e){return t.push(e.provider)})),t},e.prototype.orderedGroups=function(e){var t,n,i=[];return this._orderedForEach(e,(function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))})),i},e.prototype._orderedForEach=function(e,t){if(e){this._updateScores(e);for(var n=0,i=this._entries;n<i.length;n++){var o=i[n];o._score>0&&t(o)}}},e.prototype._updateScores=function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;for(var i=0,a=this._entries;i<a.length;i++){var l=a[i];if(l._score=o.score(l.selector,t.uri,t.getLanguageIdentifier().language,r.shouldSynchronizeModel(t)),s(l.selector)&&l._score>0){for(var u=0,d=this._entries;u<d.length;u++){d[u]._score=0}l._score=1e3;break}}this._entries.sort(e._compareByScoreAndTime)}},e._compareByScoreAndTime=function(e,t){\nreturn e._score<t._score?1:e._score>t._score?-1:e._time<t._time?1:e._time>t._time?-1:0},e}();t.LanguageFeatureRegistry=a})),define(n[17],i([0,1,21,25,3,481,358]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e,t){this.language=e,this.id=t};t.LanguageIdentifier=a;var l,u=function(){function e(){}return e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(1792&e)>>>8},e.getFontStyle=function(e){return(14336&e)>>>11},e.getForeground=function(e){return(8372224&e)>>>14},e.getBackground=function(e){return(4286578688&e)>>>23},e.getClassNameFromMetadata=function(e){var t=\"mtk\"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=\" mtki\"),2&n&&(t+=\" mtkb\"),4&n&&(t+=\" mtku\"),t},e.getInlineStyleFromMetadata=function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),o=\"color: \"+t[n]+\";\";return 1&i&&(o+=\"font-style: italic;\"),2&i&&(o+=\"font-weight: bold;\"),4&i&&(o+=\"text-decoration: underline;\"),o},e}();t.TokenMetadata=u,\nt.completionKindToCssClass=((l=Object.create(null))[0]=\"method\",l[1]=\"function\",l[2]=\"constructor\",l[3]=\"field\",l[4]=\"variable\",l[5]=\"class\",l[6]=\"struct\",l[7]=\"interface\",l[8]=\"module\",l[9]=\"property\",l[10]=\"event\",l[11]=\"operator\",l[12]=\"unit\",l[13]=\"value\",l[14]=\"constant\",l[15]=\"enum\",l[16]=\"enum-member\",l[17]=\"keyword\",l[25]=\"snippet\",l[18]=\"text\",l[19]=\"color\",l[20]=\"file\",l[21]=\"reference\",l[22]=\"customcolor\",l[23]=\"folder\",l[24]=\"type-parameter\",function(e){return l[e]||\"property\"}),t.completionKindFromString=function(){var e=Object.create(null);return e.method=0,e.function=1,e.constructor=2,e.field=3,e.variable=4,e.class=5,e.struct=6,e.interface=7,e.module=8,e.property=9,e.event=10,e.operator=11,e.unit=12,e.value=13,e.constant=14,e.enum=15,e[\"enum-member\"]=16,e.enumMember=16,e.keyword=17,e.snippet=25,e.text=18,e.color=19,e.file=20,e.reference=21,e.customcolor=22,e.folder=23,e[\"type-parameter\"]=24,e.typeParameter=24,function(t,n){var i=e[t];return void 0!==i||n||(i=9),i}}(),function(e){\ne[e.Invoke=1]=\"Invoke\",e[e.TriggerCharacter=2]=\"TriggerCharacter\",e[e.ContentChange=3]=\"ContentChange\"}(t.SignatureHelpTriggerKind||(t.SignatureHelpTriggerKind={})),function(e){e[e.Text=0]=\"Text\",e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),t.isLocationLink=function(e){return e&&i.URI.isUri(e.uri)&&o.Range.isIRange(e.range)&&(o.Range.isIRange(e.originSelectionRange)||o.Range.isIRange(e.targetSelectionRange))},function(e){var t=new Map;t.set(\"file\",0),t.set(\"module\",1),t.set(\"namespace\",2),t.set(\"package\",3),t.set(\"class\",4),t.set(\"method\",5),t.set(\"property\",6),t.set(\"field\",7),t.set(\"constructor\",8),t.set(\"enum\",9),t.set(\"interface\",10),t.set(\"function\",11),t.set(\"variable\",12),t.set(\"constant\",13),t.set(\"string\",14),t.set(\"number\",15),t.set(\"boolean\",16),t.set(\"array\",17),t.set(\"object\",18),t.set(\"key\",19),t.set(\"null\",20),t.set(\"enum-member\",21),t.set(\"struct\",22),t.set(\"event\",23),t.set(\"operator\",24),t.set(\"type-parameter\",25);var n=new Map\n;n.set(0,\"file\"),n.set(1,\"module\"),n.set(2,\"namespace\"),n.set(3,\"package\"),n.set(4,\"class\"),n.set(5,\"method\"),n.set(6,\"property\"),n.set(7,\"field\"),n.set(8,\"constructor\"),n.set(9,\"enum\"),n.set(10,\"interface\"),n.set(11,\"function\"),n.set(12,\"variable\"),n.set(13,\"constant\"),n.set(14,\"string\"),n.set(15,\"number\"),n.set(16,\"boolean\"),n.set(17,\"array\"),n.set(18,\"object\"),n.set(19,\"key\"),n.set(20,\"null\"),n.set(21,\"enum-member\"),n.set(22,\"struct\"),n.set(23,\"event\"),n.set(24,\"operator\"),n.set(25,\"type-parameter\"),e.fromString=function(e){return t.get(e)},e.toString=function(e){return n.get(e)},e.toCssClassName=function(e,t){return\"codicon \"+(t?\"inline\":\"block\")+\" codicon-symbol-\"+(n.get(e)||\"property\")}}(t.SymbolKinds||(t.SymbolKinds={}));var d=function(){function e(e){this.value=e}return e.Comment=new e(\"comment\"),e.Imports=new e(\"imports\"),e.Region=new e(\"region\"),e}();t.FoldingRangeKind=d,function(e){e.is=function(e){return n.isObject(e)&&(Boolean(e.newUri)||Boolean(e.oldUri))}\n}(t.WorkspaceFileEdit||(t.WorkspaceFileEdit={})),function(e){e.is=function(e){return n.isObject(e)&&i.URI.isUri(e.resource)&&n.isObject(e.edit)}}(t.WorkspaceTextEdit||(t.WorkspaceTextEdit={})),t.ReferenceProviderRegistry=new r.LanguageFeatureRegistry,t.RenameProviderRegistry=new r.LanguageFeatureRegistry,t.CompletionProviderRegistry=new r.LanguageFeatureRegistry,t.SignatureHelpProviderRegistry=new r.LanguageFeatureRegistry,t.HoverProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentSymbolProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentHighlightProviderRegistry=new r.LanguageFeatureRegistry,t.DefinitionProviderRegistry=new r.LanguageFeatureRegistry,t.DeclarationProviderRegistry=new r.LanguageFeatureRegistry,t.ImplementationProviderRegistry=new r.LanguageFeatureRegistry,t.TypeDefinitionProviderRegistry=new r.LanguageFeatureRegistry,t.CodeLensProviderRegistry=new r.LanguageFeatureRegistry,t.CodeActionProviderRegistry=new r.LanguageFeatureRegistry,\nt.DocumentFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentRangeFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.OnTypeFormattingEditProviderRegistry=new r.LanguageFeatureRegistry,t.LinkProviderRegistry=new r.LanguageFeatureRegistry,t.ColorProviderRegistry=new r.LanguageFeatureRegistry,t.SelectionRangeRegistry=new r.LanguageFeatureRegistry,t.FoldingRangeProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentSemanticTokensProviderRegistry=new r.LanguageFeatureRegistry,t.DocumentRangeSemanticTokensProviderRegistry=new r.LanguageFeatureRegistry,t.TokenizationRegistry=new s.TokenizationRegistryImpl})),define(n[93],i([0,1,17]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t}return e.prototype.equals=function(t){return t instanceof e&&this.slicedEquals(t,0,this._tokensCount)},e.prototype.slicedEquals=function(e,t,n){\nif(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;for(var i=t<<1,o=i+(n<<1),r=i;r<o;r++)if(this._tokens[r]!==e._tokens[r])return!1;return!0},e.prototype.getLineContent=function(){return this._text},e.prototype.getCount=function(){return this._tokensCount},e.prototype.getStartOffset=function(e){return e>0?this._tokens[e-1<<1]:0},e.prototype.getMetadata=function(e){return this._tokens[1+(e<<1)]},e.prototype.getLanguageId=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getLanguageId(t)},e.prototype.getStandardTokenType=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getTokenType(t)},e.prototype.getForeground=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getForeground(t)},e.prototype.getClassName=function(e){var t=this._tokens[1+(e<<1)];return n.TokenMetadata.getClassNameFromMetadata(t)},e.prototype.getInlineStyle=function(e,t){var i=this._tokens[1+(e<<1)];return n.TokenMetadata.getInlineStyleFromMetadata(i,t)},\ne.prototype.getEndOffset=function(e){return this._tokens[e<<1]},e.prototype.findTokenIndexAtOffset=function(t){return e.findIndexInTokensArray(this._tokens,t)},e.prototype.inflate=function(){return this},e.prototype.sliceAndInflate=function(e,t,n){return new o(this,e,t,n)},e.convertToEndOffset=function(e,t){for(var n=(e.length>>>1)-1,i=0;i<n;i++)e[i<<1]=e[i+1<<1];e[n<<1]=t},e.findIndexInTokensArray=function(e,t){if(e.length<=2)return 0;for(var n=0,i=(e.length>>>1)-1;n<i;){var o=n+Math.floor((i-n)/2),r=e[o<<1];if(r===t)return o+1;r<t?n=o+1:r>t&&(i=o)}return n},e}();t.LineTokens=i;var o=function(){function e(e,t,n,i){this._source=e,this._startOffset=t,this._endOffset=n,this._deltaOffset=i,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(var o=this._firstTokenIndex,r=e.getCount();o<r;o++){if(e.getStartOffset(o)>=n)break;this._tokensCount++}}return e.prototype.equals=function(t){\nreturn t instanceof e&&(this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount))},e.prototype.getCount=function(){return this._tokensCount},e.prototype.getForeground=function(e){return this._source.getForeground(this._firstTokenIndex+e)},e.prototype.getEndOffset=function(e){var t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset},e.prototype.getClassName=function(e){return this._source.getClassName(this._firstTokenIndex+e)},e.prototype.getInlineStyle=function(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)},e.prototype.findTokenIndexAtOffset=function(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex},e}();t.SlicedLineTokens=o})),define(n[157],i([0,1,19,93,13,17]),(function(e,t,n,i,o,r){\"use strict\";function s(e){\nfor(var t=0,n=0,i=0,o=0,r=e.length;o<r;o++){var s=e.charCodeAt(o);13===s?(0===t&&(n=o),t++,o+1<r&&10===e.charCodeAt(o+1)&&o++,i=o+1):10===s&&(0===t&&(n=o),t++,i=o+1)}return 0===t&&(n=e.length),[t,n,e.length-i]}function a(e){return(16384|e<<0|2<<23)>>>0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.countEOL=s;var l=new Uint32Array(0).buffer,u=function(){function e(){this.tokens=[]}return e.prototype.add=function(e,t){if(this.tokens.length>0){var n=this.tokens[this.tokens.length-1];if(n.startLineNumber+n.tokens.length-1+1===e)return void n.tokens.push(t)}this.tokens.push(new p(e,[t]))},e}();t.MultilineTokensBuilder=u;var d=function(){function e(e){this._tokens=e,this._tokenCount=e.length/4}return e.prototype.getMaxDeltaLine=function(){var e=this.getTokenCount();return 0===e?-1:this.getDeltaLine(e-1)},e.prototype.getTokenCount=function(){return this._tokenCount},e.prototype.getDeltaLine=function(e){return this._tokens[4*e]},e.prototype.getStartCharacter=function(e){return this._tokens[4*e+1]},\ne.prototype.getEndCharacter=function(e){return this._tokens[4*e+2]},e.prototype.getMetadata=function(e){return this._tokens[4*e+3]},e.prototype.clear=function(){this._tokenCount=0},e.prototype.acceptDeleteRange=function(e,t,n,i,o){for(var r=this._tokens,s=this._tokenCount,a=i-t,l=0,u=!1,d=0;d<s;d++){var c=4*d,h=r[c],p=r[c+1],g=r[c+2],f=r[c+3];if(h<t||h===t&&g<=n)l++;else{if(h===t&&p<n)h===i&&g>o?g-=o-n:g=n;else if(h===t&&p===n){if(!(h===i&&g>o)){u=!0;continue}g-=o-n}else if(h<i||h===i&&p<o){if(!(h===i&&g>o)){u=!0;continue}g=h===t?(p=n)+(g-o):(p=0)+(g-o)}else if(h>i){if(0===a&&!u){l=s;break}h-=a}else{if(!(h===i&&p>=o))throw new Error(\"Not possible!\");e&&0===h&&(p+=e,g+=e),h-=a,p-=o-n,g-=o-n}var m=4*l;r[m]=h,r[m+1]=p,r[m+2]=g,r[m+3]=f,l++}}this._tokenCount=l},e.prototype.acceptInsertText=function(e,t,n,i,o,r){for(var s=0===n&&1===i&&(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122),a=this._tokens,l=this._tokenCount,u=0;u<l;u++){var d=4*u,c=a[d],h=a[d+1],p=a[d+2];if(!(c<e||c===e&&p<t)){if(c===e&&p===t){if(!s)continue\n;p+=1}else if(c===e&&h<t&&t<p)0===n?p+=i:p=t;else{if(c===e&&h===t&&s)continue;if(c===e)if(c+=n,0===n)h+=i,p+=i;else{var g=p-h;p=(h=o+(h-t))+g}else c+=n}a[d]=c,a[d+1]=h,a[d+2]=p}}},e}();t.SparseEncodedTokens=d;var c=function(){function e(e,t,n){this._actual=e,this._startTokenIndex=t,this._endTokenIndex=n}return e.prototype.getCount=function(){return this._endTokenIndex-this._startTokenIndex+1},e.prototype.getStartCharacter=function(e){return this._actual.getStartCharacter(this._startTokenIndex+e)},e.prototype.getEndCharacter=function(e){return this._actual.getEndCharacter(this._startTokenIndex+e)},e.prototype.getMetadata=function(e){return this._actual.getMetadata(this._startTokenIndex+e)},e}();t.LineTokens2=c;var h=function(){function e(e,t){this.startLineNumber=e,this.tokens=t,this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()}return e.prototype._updateEndLineNumber=function(){this.endLineNumber=this.startLineNumber+this.tokens.getMaxDeltaLine()},e.prototype.getLineTokens=function(t){\nif(this.startLineNumber<=t&&t<=this.endLineNumber){var n=e._findTokensWithLine(this.tokens,t-this.startLineNumber);if(n){var i=n[0],o=n[1];return new c(this.tokens,i,o)}}return null},e._findTokensWithLine=function(e,t){for(var n=0,i=e.getTokenCount()-1;n<i;){var o=n+Math.floor((i-n)/2),r=e.getDeltaLine(o);if(r<t)n=o+1;else{if(!(r>t)){for(var s=o;s>n&&e.getDeltaLine(s-1)===t;)s--;for(var a=o;a<i&&e.getDeltaLine(a+1)===t;)a++;return[s,a]}i=o-1}}return e.getDeltaLine(n)===t?[n,n]:null},e.prototype.applyEdit=function(e,t){var n=s(t),i=n[0],o=n[1],r=n[2];this.acceptEdit(e,i,o,r,t.length>0?t.charCodeAt(0):0)},e.prototype.acceptEdit=function(e,t,n,i,r){this._acceptDeleteRange(e),this._acceptInsertText(new o.Position(e.startLineNumber,e.startColumn),t,n,i,r),this._updateEndLineNumber()},e.prototype._acceptDeleteRange=function(e){if(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn){var t=e.startLineNumber-this.startLineNumber,n=e.endLineNumber-this.startLineNumber;if(n<0){var i=n-t\n;this.startLineNumber-=i}else{var o=this.tokens.getMaxDeltaLine();if(!(t>=o+1)){if(t<0&&n>=o+1)return this.startLineNumber=0,void this.tokens.clear();if(t<0){var r=-t;this.startLineNumber-=r,this.tokens.acceptDeleteRange(e.startColumn-1,0,0,n,e.endColumn-1)}else this.tokens.acceptDeleteRange(0,t,e.startColumn-1,n,e.endColumn-1)}}}},e.prototype._acceptInsertText=function(e,t,n,i,o){if(0!==t||0!==n){var r=e.lineNumber-this.startLineNumber;if(r<0)this.startLineNumber+=t;else r>=this.tokens.getMaxDeltaLine()+1||this.tokens.acceptInsertText(r,e.column-1,t,n,i,o)}},e}();t.MultilineTokens2=h;var p=function(e,t){this.startLineNumber=e,this.tokens=t};function g(e){return e instanceof Uint32Array?e:new Uint32Array(e)}t.MultilineTokens=p;var f=function(){function e(){this._pieces=[]}return e.prototype.flush=function(){this._pieces=[]},e.prototype.set=function(e){this._pieces=e||[]},e.prototype.addSemanticTokens=function(t,n){var o=this._pieces;if(0===o.length)return n\n;var r=e._findFirstPieceWithLine(o,t),s=this._pieces[r].getLineTokens(t);if(!s)return n;for(var a=n.getCount(),l=s.getCount(),u=0,d=[],c=0,h=0;h<l;h++){for(var p=s.getStartCharacter(h),g=s.getEndCharacter(h),f=s.getMetadata(h),m=((1&f?2048:0)|(2&f?4096:0)|(4&f?8192:0)|(8&f?8372224:0)|(16&f?4286578688:0))>>>0,v=~m>>>0;u<a&&n.getEndOffset(u)<=p;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u),u++;for(u<a&&n.getStartOffset(u)<p&&(d[c++]=p,d[c++]=n.getMetadata(u));u<a&&n.getEndOffset(u)<g;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u)&v|f&m,u++;if(u<a&&n.getEndOffset(u)===g)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u)&v|f&m,u++;else{var _=Math.min(Math.max(0,u-1),a-1);d[c++]=g,d[c++]=n.getMetadata(_)&v|f&m}}for(;u<a;)d[c++]=n.getEndOffset(u),d[c++]=n.getMetadata(u),u++;return new i.LineTokens(new Uint32Array(d),n.getLineContent())},e._findFirstPieceWithLine=function(e,t){for(var n=0,i=e.length-1;n<i;){var o=n+Math.floor((i-n)/2);if(e[o].endLineNumber<t)n=o+1;else{if(!(e[o].startLineNumber>t)){\nfor(;o>n&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}i=o-1}}return n},e.prototype.acceptEdit=function(e,t,n,i,o){for(var r=0,s=this._pieces;r<s.length;r++){s[r].acceptEdit(e,t,n,i,o)}},e}();t.TokensStore2=f;var m=function(){function e(){this._lineTokens=[],this._len=0}return e.prototype.flush=function(){this._lineTokens=[],this._len=0},e.prototype.getTokens=function(e,t,n){var o=null;if(t<this._len&&(o=this._lineTokens[t]),null!==o&&o!==l)return new i.LineTokens(g(o),n);var r=new Uint32Array(2);return r[0]=n.length,r[1]=a(e),new i.LineTokens(r,n)},e._massageTokens=function(e,t,n){var i=n?g(n):null;if(0===t){var o=!1;if(i&&i.length>1&&(o=r.TokenMetadata.getLanguageId(i[1])!==e),!o)return l}if(!i||0===i.length){var s=new Uint32Array(2);return s[0]=t,s[1]=a(e),s.buffer}return i[i.length-2]=t,0===i.byteOffset&&i.byteLength===i.buffer.byteLength?i.buffer:i},e.prototype._ensureLine=function(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++},\ne.prototype._deleteLines=function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)},e.prototype._insertLines=function(e,t){if(0!==t){for(var i=[],o=0;o<t;o++)i[o]=null;this._lineTokens=n.arrayInsert(this._lineTokens,e,i),this._len+=t}},e.prototype.setTokens=function(t,n,i,o){var r=e._massageTokens(t,i,o);this._ensureLine(n),this._lineTokens[n]=r},e.prototype.acceptEdit=function(e,t,n){this._acceptDeleteRange(e),this._acceptInsertText(new o.Position(e.startLineNumber,e.startColumn),t,n)},e.prototype._acceptDeleteRange=function(t){var n=t.startLineNumber-1;if(!(n>=this._len))if(t.startLineNumber!==t.endLineNumber){this._lineTokens[n]=e._deleteEnding(this._lineTokens[n],t.startColumn-1);var i=t.endLineNumber-1,o=null;i<this._len&&(o=e._deleteBeginning(this._lineTokens[i],t.endColumn-1)),this._lineTokens[n]=e._append(this._lineTokens[n],o),this._deleteLines(t.startLineNumber,t.endLineNumber-t.startLineNumber)}else{if(t.startColumn===t.endColumn)return\n;this._lineTokens[n]=e._delete(this._lineTokens[n],t.startColumn-1,t.endColumn-1)}},e.prototype._acceptInsertText=function(t,n,i){if(0!==n||0!==i){var o=t.lineNumber-1;o>=this._len||(0!==n?(this._lineTokens[o]=e._deleteEnding(this._lineTokens[o],t.column-1),this._lineTokens[o]=e._insert(this._lineTokens[o],t.column-1,i),this._insertLines(t.lineNumber,n)):this._lineTokens[o]=e._insert(this._lineTokens[o],t.column-1,i))}},e._deleteBeginning=function(t,n){return null===t||t===l?t:e._delete(t,0,n)},e._deleteEnding=function(t,n){if(null===t||t===l)return t;var i=g(t),o=i[i.length-2];return e._delete(t,n,o)},e._delete=function(e,t,n){if(null===e||e===l||t===n)return e;var o=g(e),r=o.length>>>1;if(0===t&&o[o.length-2]===n)return l;var s,a,u=i.LineTokens.findIndexInTokensArray(o,t),d=u>0?o[u-1<<1]:0;if(n<o[u<<1]){for(var c=n-t,h=u;h<r;h++)o[h<<1]-=c;return e}d!==t?(o[u<<1]=t,s=u+1<<1,a=t):(s=u<<1,a=d);for(var p=n-t,f=u+1;f<r;f++){var m=o[f<<1]-p;m>a&&(o[s++]=m,o[s++]=o[1+(f<<1)],a=m)}if(s===o.length)return e\n;var v=new Uint32Array(s);return v.set(o.subarray(0,s),0),v.buffer},e._append=function(e,t){if(t===l)return e;if(e===l)return t;if(null===e)return e;if(null===t)return null;var n=g(e),i=g(t),o=i.length>>>1,r=new Uint32Array(n.length+i.length);r.set(n,0);for(var s=n.length,a=n[n.length-2],u=0;u<o;u++)r[s++]=i[u<<1]+a,r[s++]=i[1+(u<<1)];return r.buffer},e._insert=function(e,t,n){if(null===e||e===l)return e;var o=g(e),r=o.length>>>1,s=i.LineTokens.findIndexInTokensArray(o,t);s>0&&(o[s-1<<1]===t&&s--);for(var a=s;a<r;a++)o[a<<1]+=n;return e},e}();t.TokensStore=m})),define(n[63],i([0,1,107,17]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.prototype.clone=function(){return this},e.prototype.equals=function(e){return this===e},e}();t.NULL_STATE=new o,t.NULL_MODE_ID=\"vs.editor.nullMode\",t.NULL_LANGUAGE_IDENTIFIER=new i.LanguageIdentifier(t.NULL_MODE_ID,0),t.nullTokenize=function(e,t,i,o){\nreturn new n.TokenizationResult([new n.Token(o,\"\",e)],i)},t.nullTokenize2=function(e,i,o,r){var s=new Uint32Array(2);return s[0]=r,s[1]=(16384|e<<0|2<<23)>>>0,new n.TokenizationResult2(s,null===o?t.NULL_STATE:o)}})),define(n[482],i([0,1,19,10,93,13,17,63,2,132,157,16]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(){function e(){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0}return e.prototype._reset=function(e){this._beginState=[],this._valid=[],this._len=0,this._invalidLineStartIndex=0,e&&this._setBeginState(0,e)},e.prototype.flush=function(e){this._reset(e)},Object.defineProperty(e.prototype,\"invalidLineStartIndex\",{get:function(){return this._invalidLineStartIndex},enumerable:!0,configurable:!0}),e.prototype._invalidateLine=function(e){e<this._len&&(this._valid[e]=!1),e<this._invalidLineStartIndex&&(this._invalidLineStartIndex=e)},e.prototype._isValid=function(e){return e<this._len&&this._valid[e]},\ne.prototype.getBeginState=function(e){return e<this._len?this._beginState[e]:null},e.prototype._ensureLine=function(e){for(;e>=this._len;)this._beginState[this._len]=null,this._valid[this._len]=!1,this._len++},e.prototype._deleteLines=function(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._beginState.splice(e,t),this._valid.splice(e,t),this._len-=t)},e.prototype._insertLines=function(e,t){if(0!==t){for(var i=[],o=[],r=0;r<t;r++)i[r]=null,o[r]=!1;this._beginState=n.arrayInsert(this._beginState,e,i),this._valid=n.arrayInsert(this._valid,e,o),this._len+=t}},e.prototype._setValid=function(e,t){this._ensureLine(e),this._valid[e]=t},e.prototype._setBeginState=function(e,t){this._ensureLine(e),this._beginState[e]=t},e.prototype.setEndState=function(e,t,n){if(this._setValid(t,!0),this._invalidLineStartIndex=t+1,t!==e-1){var i=this.getBeginState(t+1);if(null===i||!n.equals(i))return this._setBeginState(t+1,n),void this._invalidateLine(t+1);for(var o=t+1;o<e&&this._isValid(o);)o++;this._invalidLineStartIndex=o}},\ne.prototype.setFakeTokens=function(e){this._setValid(e,!1)},e.prototype.applyEdits=function(e,t){for(var n=e.endLineNumber-e.startLineNumber,i=t,o=Math.min(n,i);o>=0;o--)this._invalidateLine(e.startLineNumber+o-1);this._acceptDeleteRange(e),this._acceptInsertText(new s.Position(e.startLineNumber,e.startColumn),t)},e.prototype._acceptDeleteRange=function(e){e.startLineNumber-1>=this._len||this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)},e.prototype._acceptInsertText=function(e,t){e.lineNumber-1>=this._len||this._insertLines(e.lineNumber,t)},e}();t.TokenizationStateStore=p;var g=function(e){function t(t){var n=e.call(this)||this;return n._isDisposed=!1,n._textModel=t,n._tokenizationStateStore=new p,n._tokenizationSupport=null,n._register(a.TokenizationRegistry.onDidChange((function(e){var t=n._textModel.getLanguageIdentifier();-1!==e.changedLanguages.indexOf(t.language)&&(n._resetTokenizationState(),n._textModel.clearTokens())}))),\nn._register(n._textModel.onDidChangeRawContentFast((function(e){e.containsEvent(1)&&n._resetTokenizationState()}))),n._register(n._textModel.onDidChangeContentFast((function(e){for(var t=0,i=e.changes.length;t<i;t++){var o=e.changes[t],r=c.countEOL(o.text)[0];n._tokenizationStateStore.applyEdits(o.range,r)}n._beginBackgroundTokenization()}))),n._register(n._textModel.onDidChangeAttached((function(){n._beginBackgroundTokenization()}))),n._register(n._textModel.onDidChangeLanguage((function(){n._resetTokenizationState(),n._textModel.clearTokens()}))),n._resetTokenizationState(),n}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,e.prototype.dispose.call(this)},t.prototype._resetTokenizationState=function(){var e=function(e){var t=e.getLanguageIdentifier(),n=e.isTooLargeForTokenization()?null:a.TokenizationRegistry.get(t.language),o=null;if(n)try{o=n.getInitialState()}catch(e){i.onUnexpectedError(e),n=null}return[n,o]}(this._textModel),t=e[0],n=e[1];this._tokenizationSupport=t,\nthis._tokenizationStateStore.flush(n),this._beginBackgroundTokenization()},t.prototype._beginBackgroundTokenization=function(){var e=this;this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&h.setImmediate((function(){e._isDisposed||e._revalidateTokensNow()}))},t.prototype._revalidateTokensNow=function(e){void 0===e&&(e=this._textModel.getLineCount());for(var t=new c.MultilineTokensBuilder,n=d.StopWatch.create(!1);this._hasLinesToTokenize()&&!(n.elapsed()>1);){if(this._tokenizeOneInvalidLine(t)>=e)break}this._beginBackgroundTokenization(),this._textModel.setTokens(t.tokens)},t.prototype.tokenizeViewport=function(e,t){var n=new c.MultilineTokensBuilder;this._tokenizeViewport(n,e,t),this._textModel.setTokens(n.tokens)},t.prototype.reset=function(){this._resetTokenizationState(),this._textModel.clearTokens()},t.prototype.forceTokenization=function(e){var t=new c.MultilineTokensBuilder;this._updateTokensUntilLine(t,e),this._textModel.setTokens(t.tokens)},t.prototype.isCheapToTokenize=function(e){\nif(!this._tokenizationSupport)return!0;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)},t.prototype._hasLinesToTokenize=function(){return!!this._tokenizationSupport&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()},t.prototype._tokenizeOneInvalidLine=function(e){if(!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;var t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t},t.prototype._updateTokensUntilLine=function(e,t){if(this._tokenizationSupport)for(var n=this._textModel.getLanguageIdentifier(),i=this._textModel.getLineCount(),o=t-1,r=this._tokenizationStateStore.invalidLineStartIndex;r<=o;r++){var s=this._textModel.getLineContent(r+1),a=this._tokenizationStateStore.getBeginState(r),l=f(n,this._tokenizationSupport,s,a);e.add(r+1,l.tokens),this._tokenizationStateStore.setEndState(i,r,l.endState),\nr=this._tokenizationStateStore.invalidLineStartIndex-1}},t.prototype._tokenizeViewport=function(e,t,n){if(this._tokenizationSupport&&!(n<=this._tokenizationStateStore.invalidLineStartIndex))if(t<=this._tokenizationStateStore.invalidLineStartIndex)this._updateTokensUntilLine(e,n);else{for(var i=this._textModel.getLineFirstNonWhitespaceColumn(t),o=[],r=null,s=t-1;i>0&&s>=1;s--){var a=this._textModel.getLineFirstNonWhitespaceColumn(s);if(0!==a&&a<i){if(r=this._tokenizationStateStore.getBeginState(s-1))break;o.push(this._textModel.getLineContent(s)),i=a}}r||(r=this._tokenizationSupport.getInitialState());var l=this._textModel.getLanguageIdentifier(),u=r;for(s=o.length-1;s>=0;s--){u=(h=f(l,this._tokenizationSupport,o[s],u)).endState}for(var d=t;d<=n;d++){var c=this._textModel.getLineContent(d),h=f(l,this._tokenizationSupport,c,u);e.add(d,h.tokens),this._tokenizationStateStore.setFakeTokens(d-1),u=h.endState}}},t}(u.Disposable);function f(e,t,n,r){var s=null;if(t)try{s=t.tokenize2(n,r.clone(),0)}catch(e){\ni.onUnexpectedError(e)}return s||(s=l.nullTokenize2(e.id,n,r,0)),o.LineTokens.convertToEndOffset(s.tokens,n.length),s}t.TextModelTokenization=g})),define(n[30],i([0,1,10,4,2,5,25,33,13,3,22,48,342,343,344,348,346,144,482,109,41,63,145,146,21,157,27]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N){\"use strict\";function x(e){var t=new m.PieceTreeTextBufferBuilder;return t.acceptChunk(e),t.finish()}function I(e,t){return(\"string\"==typeof e?x(e):e).create(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createTextBufferFactory=x,t.createTextBuffer=I;var M=0;t.LONG_LINE_BOUNDARY=1e4;var k=function(){throw new Error(\"Invalid change accessor\")},T=function(e){function o(t,n,r,l){void 0===l&&(l=null);var u=e.call(this)||this;u._onWillDispose=u._register(new i.Emitter),u.onWillDispose=u._onWillDispose.event,u._onDidChangeDecorations=u._register(new z),u.onDidChangeDecorations=u._onDidChangeDecorations.event,u._onDidChangeLanguage=u._register(new i.Emitter),\nu.onDidChangeLanguage=u._onDidChangeLanguage.event,u._onDidChangeLanguageConfiguration=u._register(new i.Emitter),u.onDidChangeLanguageConfiguration=u._onDidChangeLanguageConfiguration.event,u._onDidChangeTokens=u._register(new i.Emitter),u.onDidChangeTokens=u._onDidChangeTokens.event,u._onDidChangeOptions=u._register(new i.Emitter),u.onDidChangeOptions=u._onDidChangeOptions.event,u._onDidChangeAttached=u._register(new i.Emitter),u.onDidChangeAttached=u._onDidChangeAttached.event,u._eventEmitter=u._register(new H),M++,u.id=\"$model\"+M,u.isForSimpleWidget=n.isForSimpleWidget,u._associatedResource=null==l?a.URI.parse(\"inmemory://model/\"+M):l,u._attachedEditorCount=0,u._buffer=I(t,n.defaultEOL),u._options=o.resolveOptions(u._buffer,n);var c=u._buffer.getLineCount(),h=u._buffer.getValueLengthInRange(new d.Range(1,1,c,u._buffer.getLineLength(c)+1),0);return n.largeFileOptimizations?u._isTooLargeForTokenization=h>o.LARGE_FILE_SIZE_THRESHOLD||c>o.LARGE_FILE_LINE_COUNT_THRESHOLD:u._isTooLargeForTokenization=!1,\nu._isTooLargeForSyncing=h>o.MODEL_SYNC_LIMIT,u._versionId=1,u._alternativeVersionId=1,u._isDisposed=!1,u._isDisposing=!1,u._languageIdentifier=r||S.NULL_LANGUAGE_IDENTIFIER,u._languageRegistryListener=b.LanguageConfigurationRegistry.onDidChange((function(e){e.languageIdentifier.id===u._languageIdentifier.id&&u._onDidChangeLanguageConfiguration.fire({})})),u._instanceId=s.singleLetterHash(M),u._lastDecorationId=0,u._decorations=Object.create(null),u._decorationsTree=new R,u._commandManager=new p.EditStack(u),u._isUndoing=!1,u._isRedoing=!1,u._trimAutoWhitespaceLines=null,u._tokens=new D.TokensStore,u._tokens2=new D.TokensStore2,u._tokenization=new y.TextModelTokenization(u),u}return r(o,e),o.createFromString=function(e,t,n,i){return void 0===t&&(t=o.DEFAULT_CREATION_OPTIONS),void 0===n&&(n=null),void 0===i&&(i=null),new o(e,t,n,i)},o.resolveOptions=function(e,t){if(t.detectIndentation){var n=g.guessIndentation(e,t.tabSize,t.insertSpaces);return new h.TextModelResolvedOptions({tabSize:n.tabSize,\nindentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new h.TextModelResolvedOptions({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})},o.prototype.onDidChangeRawContentFast=function(e){return this._eventEmitter.fastEvent((function(t){return e(t.rawContentChangedEvent)}))},o.prototype.onDidChangeRawContent=function(e){return this._eventEmitter.slowEvent((function(t){return e(t.rawContentChangedEvent)}))},o.prototype.onDidChangeContentFast=function(e){return this._eventEmitter.fastEvent((function(t){return e(t.contentChangedEvent)}))},o.prototype.onDidChangeContent=function(e){return this._eventEmitter.slowEvent((function(t){return e(t.contentChangedEvent)}))},o.prototype.dispose=function(){this._isDisposing=!0,this._onWillDispose.fire(),this._languageRegistryListener.dispose(),this._tokenization.dispose(),this._isDisposed=!0,e.prototype.dispose.call(this),\nthis._isDisposing=!1},o.prototype._assertNotDisposed=function(){if(this._isDisposed)throw new Error(\"Model is disposed!\")},o.prototype._emitContentChangedEvent=function(e,t){this._isDisposing||this._eventEmitter.fire(new v.InternalModelContentChangeEvent(e,t))},o.prototype.setValue=function(e){if(this._assertNotDisposed(),null!==e){var t=I(e,this._options.defaultEOL);this.setValueFromTextBuffer(t)}},o.prototype._createContentChanged2=function(e,t,n,i,o,r,s){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:o,isRedoing:r,isFlush:s}},o.prototype.setValueFromTextBuffer=function(e){if(this._assertNotDisposed(),null!==e){var t=this.getFullModelRange(),n=this.getValueLengthInRange(t),i=this.getLineCount(),o=this.getLineMaxColumn(i);this._buffer=e,this._increaseVersionId(),this._tokens.flush(),this._tokens2.flush(),this._decorations=Object.create(null),this._decorationsTree=new R,this._commandManager=new p.EditStack(this),\nthis._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new v.ModelRawContentChangedEvent([new v.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,i,o),0,n,this.getValue(),!1,!1,!0))}},o.prototype.setEOL=function(e){this._assertNotDisposed();var t=1===e?\"\\r\\n\":\"\\n\";if(this._buffer.getEOL()!==t){var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new v.ModelRawContentChangedEvent([new v.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new d.Range(1,1,o,r),0,i,this.getValue(),!1,!1,!1))}},o.prototype._onBeforeEOLChange=function(){var e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)},o.prototype._onAfterEOLChange=function(){\nfor(var e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder(),n=0,i=t.length;n<i;n++){var o=t[n],r=o.cachedAbsoluteStart-o.start,s=this._buffer.getOffsetAt(o.range.startLineNumber,o.range.startColumn),a=this._buffer.getOffsetAt(o.range.endLineNumber,o.range.endColumn);o.cachedAbsoluteStart=s,o.cachedAbsoluteEnd=a,o.cachedVersionId=e,o.start=s-r,o.end=a-r,f.recomputeMaxEnd(o)}},o.prototype.onBeforeAttached=function(){this._attachedEditorCount++,1===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)},o.prototype.onBeforeDetached=function(){this._attachedEditorCount--,0===this._attachedEditorCount&&this._onDidChangeAttached.fire(void 0)},o.prototype.isAttachedToEditor=function(){return this._attachedEditorCount>0},o.prototype.getAttachedEditorCount=function(){return this._attachedEditorCount},o.prototype.isTooLargeForSyncing=function(){return this._isTooLargeForSyncing},o.prototype.isTooLargeForTokenization=function(){return this._isTooLargeForTokenization},\no.prototype.isDisposed=function(){return this._isDisposed},o.prototype.isDominatedByLongLines=function(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;for(var e=0,n=0,i=this._buffer.getLineCount(),o=1;o<=i;o++){var r=this._buffer.getLineLength(o);r>=t.LONG_LINE_BOUNDARY?n+=r:e+=r}return n>e},Object.defineProperty(o.prototype,\"uri\",{get:function(){return this._associatedResource},enumerable:!0,configurable:!0}),o.prototype.getOptions=function(){return this._assertNotDisposed(),this._options},o.prototype.getFormattingOptions=function(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}},o.prototype.updateOptions=function(e){this._assertNotDisposed();var t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,n=void 0!==e.indentSize?e.indentSize:this._options.indentSize,i=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,o=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=new h.TextModelResolvedOptions({\ntabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o});if(!this._options.equals(r)){var s=this._options.createChangeEvent(r);this._options=r,this._onDidChangeOptions.fire(s)}},o.prototype.detectIndentation=function(e,t){this._assertNotDisposed();var n=g.guessIndentation(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})},o._normalizeIndentationFromWhitespace=function(e,t,n){for(var i=0,o=0;o<e.length;o++)\"\\t\"===e.charAt(o)?i+=t:i++;var r=\"\";if(!n){var s=Math.floor(i/t);i%=t;for(o=0;o<s;o++)r+=\"\\t\"}for(o=0;o<i;o++)r+=\" \";return r},o.normalizeIndentation=function(e,t,n){var i=s.firstNonWhitespaceIndex(e);return-1===i&&(i=e.length),o._normalizeIndentationFromWhitespace(e.substring(0,i),t,n)+e.substring(i)},o.prototype.normalizeIndentation=function(e){return this._assertNotDisposed(),o.normalizeIndentation(e,this._options.indentSize,this._options.insertSpaces)},o.prototype.getVersionId=function(){\nreturn this._assertNotDisposed(),this._versionId},o.prototype.mightContainRTL=function(){return this._buffer.mightContainRTL()},o.prototype.mightContainNonBasicASCII=function(){return this._buffer.mightContainNonBasicASCII()},o.prototype.getAlternativeVersionId=function(){return this._assertNotDisposed(),this._alternativeVersionId},o.prototype.getOffsetAt=function(e){this._assertNotDisposed();var t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)},o.prototype.getPositionAt=function(e){this._assertNotDisposed();var t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)},o.prototype._increaseVersionId=function(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId},o.prototype._overwriteAlternativeVersionId=function(e){this._alternativeVersionId=e},o.prototype.getValue=function(e,t){void 0===t&&(t=!1),this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueInRange(n,e)\n;return t?this._buffer.getBOM()+i:i},o.prototype.getValueLength=function(e,t){void 0===t&&(t=!1),this._assertNotDisposed();var n=this.getFullModelRange(),i=this.getValueLengthInRange(n,e);return t?this._buffer.getBOM().length+i:i},o.prototype.getValueInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)},o.prototype.getValueLengthInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)},o.prototype.getCharacterCountInRange=function(e,t){return void 0===t&&(t=0),this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)},o.prototype.getLineCount=function(){return this._assertNotDisposed(),this._buffer.getLineCount()},o.prototype.getLineContent=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineContent(e)},o.prototype.getLineLength=function(e){\nif(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)},o.prototype.getLinesContent=function(){return this._assertNotDisposed(),this._buffer.getLinesContent()},o.prototype.getEOL=function(){return this._assertNotDisposed(),this._buffer.getEOL()},o.prototype.getLineMinColumn=function(e){return this._assertNotDisposed(),1},o.prototype.getLineMaxColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)+1},o.prototype.getLineFirstNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineFirstNonWhitespaceColumn(e)},o.prototype.getLineLastNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._buffer.getLineLastNonWhitespaceColumn(e)},\no.prototype._validateRangeRelaxedNoAllocations=function(e){var t,n,i=this._buffer.getLineCount(),o=e.startLineNumber,r=e.startColumn;if(o<1)t=1,n=1;else if(o>i)t=i,n=this.getLineMaxColumn(t);else{if(t=0|o,r<=1)n=1;else n=r>=(h=this.getLineMaxColumn(t))?h:0|r}var s,a,l=e.endLineNumber,u=e.endColumn;if(l<1)s=1,a=1;else if(l>i)s=i,a=this.getLineMaxColumn(s);else{var h;if(s=0|l,u<=1)a=1;else a=u>=(h=this.getLineMaxColumn(s))?h:0|u}return o===t&&r===n&&l===s&&u===a&&e instanceof d.Range&&!(e instanceof c.Selection)?e:new d.Range(t,n,s,a)},o.prototype._isValidPosition=function(e,t,n){if(\"number\"!=typeof e||\"number\"!=typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===n){var i=this._buffer.getLineCharCode(e,t-2);if(s.isHighSurrogate(i))return!1}return!0},o.prototype._validatePosition=function(e,t,n){\nvar i=Math.floor(\"number\"!=typeof e||isNaN(e)?1:e),o=Math.floor(\"number\"!=typeof t||isNaN(t)?1:t),r=this._buffer.getLineCount();if(i<1)return new u.Position(1,1);if(i>r)return new u.Position(r,this.getLineMaxColumn(r));if(o<=1)return new u.Position(i,1);var a=this.getLineMaxColumn(i);if(o>=a)return new u.Position(i,a);if(1===n){var l=this._buffer.getLineCharCode(i,o-2);if(s.isHighSurrogate(l))return new u.Position(i,o-1)}return new u.Position(i,o)},o.prototype.validatePosition=function(e){return this._assertNotDisposed(),e instanceof u.Position&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)},o.prototype._isValidRange=function(e,t){var n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(o,r,0))return!1;if(1===t){\nvar a=i>1?this._buffer.getLineCharCode(n,i-2):0,l=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,u=s.isHighSurrogate(a),d=s.isHighSurrogate(l);return!u&&!d}return!0},o.prototype.validateRange=function(e){if(this._assertNotDisposed(),e instanceof d.Range&&!(e instanceof c.Selection)&&this._isValidRange(e,1))return e;var t=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),i=t.lineNumber,o=t.column,r=n.lineNumber,a=n.column,l=o>1?this._buffer.getLineCharCode(i,o-2):0,u=a>1&&a<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,a-2):0,h=s.isHighSurrogate(l),p=s.isHighSurrogate(u);return h||p?i===r&&o===a?new d.Range(i,o-1,r,a-1):h&&p?new d.Range(i,o-1,r,a+1):h?new d.Range(i,o-1,r,a):new d.Range(i,o,r,a+1):new d.Range(i,o,r,a)},o.prototype.modifyPosition=function(e,t){this._assertNotDisposed();var n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))},\no.prototype.getFullModelRange=function(){this._assertNotDisposed();var e=this.getLineCount();return new d.Range(1,1,e,this.getLineMaxColumn(e))},o.prototype.findMatchesLineByLine=function(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)},o.prototype.findMatches=function(e,t,n,i,o,r,s){var a;if(void 0===s&&(s=999),this._assertNotDisposed(),a=d.Range.isIRange(t)?this.validateRange(t):this.getFullModelRange(),!n&&e.indexOf(\"\\n\")<0){var l=new _.SearchParams(e,n,i,o).parseSearchRequest();return l?this.findMatchesLineByLine(a,l,r,s):[]}return _.TextModelSearch.findMatches(this,new _.SearchParams(e,n,i,o),a,r,s)},o.prototype.findNextMatch=function(e,t,n,i,o,r){this._assertNotDisposed();var s=this.validatePosition(t);if(!n&&e.indexOf(\"\\n\")<0){var a=new _.SearchParams(e,n,i,o).parseSearchRequest();if(!a)return null;var l=this.getLineCount(),u=new d.Range(s.lineNumber,s.column,l,this.getLineMaxColumn(l)),c=this.findMatchesLineByLine(u,a,r,1)\n;return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,n,i,o),s,r),c.length>0?c[0]:(u=new d.Range(1,1,s.lineNumber,this.getLineMaxColumn(s.lineNumber)),(c=this.findMatchesLineByLine(u,a,r,1)).length>0?c[0]:null)}return _.TextModelSearch.findNextMatch(this,new _.SearchParams(e,n,i,o),s,r)},o.prototype.findPreviousMatch=function(e,t,n,i,o,r){this._assertNotDisposed();var s=this.validatePosition(t);return _.TextModelSearch.findPreviousMatch(this,new _.SearchParams(e,n,i,o),s,r)},o.prototype.pushStackElement=function(){this._commandManager.pushStackElement()},o.prototype.pushEOL=function(e){if((\"\\n\"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.pushEditOperations=function(e,t,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),\nthis._pushEditOperations(e,t,n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._pushEditOperations=function(e,t,n){var i=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){for(var o=t.map((function(e){return{range:i.validateRange(e.range),text:e.text}})),r=!0,s=0,a=e.length;s<a;s++){for(var l=e[s],u=!1,c=0,h=o.length;c<h;c++){var p=(_=o[c].range).startLineNumber>l.endLineNumber,g=l.startLineNumber>_.endLineNumber;if(!p&&!g){u=!0;break}}if(!u){r=!1;break}}if(r)for(s=0,a=this._trimAutoWhitespaceLines.length;s<a;s++){var f=this._trimAutoWhitespaceLines[s],m=this.getLineMaxColumn(f),v=!0;for(c=0,h=o.length;c<h;c++){var _=o[c].range,y=o[c].text;if(!(f<_.startLineNumber||f>_.endLineNumber)&&!(f===_.startLineNumber&&_.startColumn===m&&_.isEmpty()&&y&&y.length>0&&\"\\n\"===y.charAt(0)||f===_.startLineNumber&&1===_.startColumn&&_.isEmpty()&&y&&y.length>0&&\"\\n\"===y.charAt(y.length-1))){v=!1;break}}v&&t.push({range:new d.Range(f,1,f,m),\ntext:null})}this._trimAutoWhitespaceLines=null}return this._commandManager.pushEditOperation(e,t,n)},o.prototype.applyEdits=function(e){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._applyEdits(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._applyEdits=function(e){for(var t=0,n=e.length;t<n;t++)e[t].range=this.validateRange(e[t].range);var i=this._buffer.getLineCount(),o=this._buffer.applyEdits(e,this._options.trimAutoWhitespace),r=this._buffer.getLineCount(),s=o.changes;if(this._trimAutoWhitespaceLines=o.trimAutoWhitespaceLineNumbers,0!==s.length){var a=[],l=i;for(t=0,n=s.length;t<n;t++){var u=s[t],d=D.countEOL(u.text),c=d[0],h=d[1],p=d[2];this._tokens.acceptEdit(u.range,c,h),this._tokens2.acceptEdit(u.range,c,h,p,u.text.length>0?u.text.charCodeAt(0):0),this._onDidChangeDecorations.fire(),this._decorationsTree.acceptReplace(u.rangeOffset,u.rangeLength,u.text.length,u.forceMoveMarkers)\n;for(var g=u.range.startLineNumber,f=u.range.endLineNumber,m=f-g,_=c,y=Math.min(m,_),C=_-m,b=y;b>=0;b--){var S=g+b,w=r-l-C+S;a.push(new v.ModelRawLineChanged(S,this.getLineContent(w)))}if(y<m){var E=g+y;a.push(new v.ModelRawLinesDeleted(E+1,f))}if(y<_){for(var L=g+y,N=_-y,x=r-l-N+L+1,I=[],M=0;M<N;M++){var k=x+M;I[k-x]=this.getLineContent(k)}a.push(new v.ModelRawLinesInserted(L+1,g+_,I))}l+=C}this._increaseVersionId(),this._emitContentChangedEvent(new v.ModelRawContentChangedEvent(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:s,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return o.reverseEdits},o.prototype._undo=function(){this._isUndoing=!0;var e=this._commandManager.undo();return this._isUndoing=!1,e?(this._overwriteAlternativeVersionId(e.recordedVersionId),e.selections):null},o.prototype.undo=function(){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._undo()\n}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.canUndo=function(){return this._commandManager.canUndo()},o.prototype._redo=function(){this._isRedoing=!0;var e=this._commandManager.redo();return this._isRedoing=!1,e?(this._overwriteAlternativeVersionId(e.recordedVersionId),e.selections):null},o.prototype.redo=function(){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._redo()}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},o.prototype.canRedo=function(){return this._commandManager.canRedo()},o.prototype.changeDecorations=function(e,t){void 0===t&&(t=0),this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}},o.prototype._changeDecorations=function(e,t){var i=this,o={addDecoration:function(t,n){return i._onDidChangeDecorations.fire(),\ni._deltaDecorationsImpl(e,[],[{range:t,options:n}])[0]},changeDecoration:function(e,t){i._onDidChangeDecorations.fire(),i._changeDecorationImpl(e,t)},changeDecorationOptions:function(e,t){i._onDidChangeDecorations.fire(),i._changeDecorationOptionsImpl(e,V(t))},removeDecoration:function(t){i._onDidChangeDecorations.fire(),i._deltaDecorationsImpl(e,[t],[])},deltaDecorations:function(t,n){return 0===t.length&&0===n.length?[]:(i._onDidChangeDecorations.fire(),i._deltaDecorationsImpl(e,t,n))}},r=null;try{r=t(o)}catch(e){n.onUnexpectedError(e)}return o.addDecoration=k,o.changeDecoration=k,o.changeDecorationOptions=k,o.removeDecoration=k,o.deltaDecorations=k,r},o.prototype.deltaDecorations=function(e,t,n){if(void 0===n&&(n=0),this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._deltaDecorationsImpl(n,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}},\no.prototype._getTrackedRange=function(e){return this.getDecorationRange(e)},o.prototype._setTrackedRange=function(e,t,n){var i=e?this._decorations[e]:null;if(!i)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:B[n]}])[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;var o=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),s=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),r,s,o),i.setOptions(B[n]),this._decorationsTree.insert(i),i.id},o.prototype.removeAllDecorationsWithOwnerId=function(e){if(!this._isDisposed)for(var t=this._decorationsTree.collectNodesFromOwner(e),n=0,i=t.length;n<i;n++){var o=t[n];this._decorationsTree.delete(o),delete this._decorations[o.id]}},o.prototype.getDecorationOptions=function(e){var t=this._decorations[e];return t?t.options:null},o.prototype.getDecorationRange=function(e){var t=this._decorations[e]\n;if(!t)return null;var n=this.getVersionId();return t.cachedVersionId!==n&&this._decorationsTree.resolveNode(t,n),null===t.range&&(t.range=this._getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range},o.prototype.getLineDecorations=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=!1),e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)},o.prototype.getLinesDecorations=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=!1);var o=this.getLineCount(),r=Math.min(o,Math.max(1,e)),s=Math.min(o,Math.max(1,t)),a=this.getLineMaxColumn(s);return this._getDecorationsInRange(new d.Range(r,1,s,a),n,i)},o.prototype.getDecorationsInRange=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=!1);var i=this.validateRange(e);return this._getDecorationsInRange(i,t,n)},o.prototype.getOverviewRulerDecorations=function(e,t){void 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!0,n);return this._ensureNodesHaveRanges(i)},o.prototype.getAllDecorations=function(e,t){\nvoid 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!1,n);return this._ensureNodesHaveRanges(i)},o.prototype._getDecorationsInRange=function(e,t,n){var i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),o=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),r=this.getVersionId(),s=this._decorationsTree.intervalSearch(i,o,t,n,r);return this._ensureNodesHaveRanges(s)},o.prototype._ensureNodesHaveRanges=function(e){for(var t=0,n=e.length;t<n;t++){var i=e[t];null===i.range&&(i.range=this._getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd))}return e},o.prototype._getRangeAt=function(e,t){return this._buffer.getRangeAt(e,t-e)},o.prototype._changeDecorationImpl=function(e,t){var n=this._decorations[e];if(n){var i=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),r=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),o,r,i),\nthis._decorationsTree.insert(n)}},o.prototype._changeDecorationOptionsImpl=function(e,t){var n=this._decorations[e];n&&(!(!n.options.overviewRuler||!n.options.overviewRuler.color)!==!(!t.overviewRuler||!t.overviewRuler.color)?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t))},o.prototype._deltaDecorationsImpl=function(e,t,n){for(var i=this.getVersionId(),o=t.length,r=0,s=n.length,a=0,l=new Array(s);r<o||a<s;){var u=null;if(r<o){do{u=this._decorations[t[r++]]}while(!u&&r<o);u&&this._decorationsTree.delete(u)}if(a<s){if(!u){var d=++this._lastDecorationId,c=this._instanceId+\";\"+d;u=new f.IntervalNode(c,0,0),this._decorations[c]=u}var h=n[a],p=this._validateRangeRelaxedNoAllocations(h.range),g=V(h.options),m=this._buffer.getOffsetAt(p.startLineNumber,p.startColumn),v=this._buffer.getOffsetAt(p.endLineNumber,p.endColumn);u.ownerId=e,u.reset(i,m,v,p),u.setOptions(g),this._decorationsTree.insert(u),l[a]=u.id,a++}else u&&delete this._decorations[u.id]}return l},\no.prototype.setLineTokens=function(e,t){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");this._tokens.setTokens(this._languageIdentifier.id,e-1,this._buffer.getLineLength(e),t)},o.prototype.setTokens=function(e){if(0!==e.length){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];t.push({fromLineNumber:o.startLineNumber,toLineNumber:o.startLineNumber+o.tokens.length-1});for(var r=0,s=o.tokens.length;r<s;r++)this.setLineTokens(o.startLineNumber+r,o.tokens[r])}this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,ranges:t})}},o.prototype.setSemanticTokens=function(e){this._tokens2.set(e),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]})},o.prototype.tokenizeViewport=function(e,t){e=Math.max(1,e),t=Math.min(this._buffer.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)},o.prototype.clearTokens=function(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,\nranges:[{fromLineNumber:1,toLineNumber:this._buffer.getLineCount()}]})},o.prototype._emitModelTokensChangedEvent=function(e){this._isDisposing||this._onDidChangeTokens.fire(e)},o.prototype.resetTokenization=function(){this._tokenization.reset()},o.prototype.forceTokenization=function(e){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");this._tokenization.forceTokenization(e)},o.prototype.isCheapToTokenize=function(e){return this._tokenization.isCheapToTokenize(e)},o.prototype.tokenizeIfCheap=function(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)},o.prototype.getLineTokens=function(e){if(e<1||e>this.getLineCount())throw new Error(\"Illegal value for lineNumber\");return this._getLineTokens(e)},o.prototype._getLineTokens=function(e){var t=this.getLineContent(e),n=this._tokens.getTokens(this._languageIdentifier.id,e-1,t);return this._tokens2.addSemanticTokens(e,n)},o.prototype.getLanguageIdentifier=function(){return this._languageIdentifier},o.prototype.getModeId=function(){\nreturn this._languageIdentifier.language},o.prototype.setMode=function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}},o.prototype.getLanguageIdAtPosition=function(e,t){var n=this.validatePosition(new u.Position(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))},o.prototype.getWordAtPosition=function(e){this._assertNotDisposed();var t=this.validatePosition(e),n=this.getLineContent(t.lineNumber),i=this._getLineTokens(t.lineNumber),r=i.findTokenIndexAtOffset(t.column-1),s=o._findLanguageBoundaries(i,r),a=s[0],l=s[1],u=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(i.getLanguageId(r)),n.substring(a,l),a);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn)return u;if(r>0&&a===t.column-1){\nvar d=o._findLanguageBoundaries(i,r-1),c=d[0],h=d[1],p=C.getWordAtText(t.column,b.LanguageConfigurationRegistry.getWordDefinition(i.getLanguageId(r-1)),n.substring(c,h),c);if(p&&p.startColumn<=e.column&&e.column<=p.endColumn)return p}return null},o._findLanguageBoundaries=function(e,t){for(var n=e.getLanguageId(t),i=0,o=t;o>=0&&e.getLanguageId(o)===n;o--)i=e.getStartOffset(o);for(var r=e.getLineContent().length,s=(o=t,e.getCount());o<s&&e.getLanguageId(o)===n;o++)r=e.getEndOffset(o);return[i,r]},o.prototype.getWordUntilPosition=function(e){var t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:\"\",startColumn:e.column,endColumn:e.column}},o.prototype.findMatchingBracketUp=function(e,t){var n=e.toLowerCase(),i=this.validatePosition(t),o=this._getLineTokens(i.lineNumber),r=o.getLanguageId(o.findTokenIndexAtOffset(i.column-1)),s=b.LanguageConfigurationRegistry.getBracketsSupport(r);if(!s)return null;var a=s.textIsBracket[n]\n;return a?this._findMatchingBracketUp(a,i):null},o.prototype.matchBracket=function(e){return this._matchBracket(this.validatePosition(e))},o.prototype._matchBracket=function(e){var t=e.lineNumber,n=this._getLineTokens(t),i=n.getCount(),o=this._buffer.getLineContent(t),r=n.findTokenIndexAtOffset(e.column-1);if(r<0)return null;var s=b.LanguageConfigurationRegistry.getBracketsSupport(n.getLanguageId(r));if(s&&!w.ignoreBracketsInToken(n.getStandardTokenType(r))){for(var a=Math.max(0,e.column-1-s.maxBracketLength),l=r-1;l>=0;l--){var u=n.getEndOffset(l);if(u<=a)break;w.ignoreBracketsInToken(n.getStandardTokenType(l))&&(a=u)}for(var d=Math.min(o.length,e.column-1+s.maxBracketLength),c=null;;){if(!(m=E.BracketsUtils.findNextBracketInRange(s.forwardRegex,t,o,a,d)))break;if(m.startColumn<=e.column&&e.column<=m.endColumn){var h=o.substring(m.startColumn-1,m.endColumn-1).toLowerCase();(v=this._matchFoundBracket(m,s.textIsBracket[h],s.textIsOpenBracket[h]))&&(c=v)}a=m.endColumn-1}if(c)return c}\nif(r>0&&n.getStartOffset(r)===e.column-1){var p=r-1,g=b.LanguageConfigurationRegistry.getBracketsSupport(n.getLanguageId(p));if(g&&!w.ignoreBracketsInToken(n.getStandardTokenType(p))){for(a=Math.max(0,e.column-1-g.maxBracketLength),d=Math.min(o.length,e.column-1+g.maxBracketLength),l=p+1;l<i;l++){var f=n.getStartOffset(l);if(f>=d)break;w.ignoreBracketsInToken(n.getStandardTokenType(l))&&(d=f)}var m;if((m=E.BracketsUtils.findPrevBracketInRange(g.reversedRegex,t,o,a,d))&&m.startColumn<=e.column&&e.column<=m.endColumn){var v;h=o.substring(m.startColumn-1,m.endColumn-1).toLowerCase();if(v=this._matchFoundBracket(m,g.textIsBracket[h],g.textIsOpenBracket[h]))return v}}}return null},o.prototype._matchFoundBracket=function(e,t,n){if(!t)return null;var i;if(n){if(i=this._findMatchingBracketDown(t,e.getEndPosition()))return[e,i]}else if(i=this._findMatchingBracketUp(t,e.getStartPosition()))return[e,i];return null},o.prototype._findMatchingBracketUp=function(e,t){\nfor(var n=e.languageIdentifier.id,i=e.reversedRegex,o=-1,r=function(t,n,r,s){for(;;){var a=E.BracketsUtils.findPrevBracketInRange(i,t,n,r,s);if(!a)break;var l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(e.isOpen(l)?o++:e.isClose(l)&&o--,0===o)return a;s=a.startColumn-1}return null},s=t.lineNumber;s>=1;s--){var a=this._getLineTokens(s),l=a.getCount(),u=this._buffer.getLineContent(s),d=l-1,c=u.length,h=u.length;s===t.lineNumber&&(d=a.findTokenIndexAtOffset(t.column-1),c=t.column-1,h=t.column-1);for(var p=!0;d>=0;d--){var g,f=a.getLanguageId(d)===n&&!w.ignoreBracketsInToken(a.getStandardTokenType(d));if(f)p?c=a.getStartOffset(d):(c=a.getStartOffset(d),h=a.getEndOffset(d));else if(p&&c!==h)if(g=r(s,u,c,h))return g;p=f}if(p&&c!==h)if(g=r(s,u,c,h))return g}return null},o.prototype._findMatchingBracketDown=function(e,t){for(var n=e.languageIdentifier.id,i=e.forwardRegex,o=1,r=function(t,n,r,s){for(;;){var a=E.BracketsUtils.findNextBracketInRange(i,t,n,r,s);if(!a)break\n;var l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(e.isOpen(l)?o++:e.isClose(l)&&o--,0===o)return a;r=a.endColumn-1}return null},s=this.getLineCount(),a=t.lineNumber;a<=s;a++){var l=this._getLineTokens(a),u=l.getCount(),d=this._buffer.getLineContent(a),c=0,h=0,p=0;a===t.lineNumber&&(c=l.findTokenIndexAtOffset(t.column-1),h=t.column-1,p=t.column-1);for(var g=!0;c<u;c++){var f,m=l.getLanguageId(c)===n&&!w.ignoreBracketsInToken(l.getStandardTokenType(c));if(m)g?p=l.getEndOffset(c):(h=l.getStartOffset(c),p=l.getEndOffset(c));else if(g&&h!==p)if(f=r(a,d,h,p))return f;g=m}if(g&&h!==p)if(f=r(a,d,h,p))return f}return null},o.prototype.findPrevBracket=function(e){for(var t=this.validatePosition(e),n=-1,i=null,o=t.lineNumber;o>=1;o--){var r=this._getLineTokens(o),s=r.getCount(),a=this._buffer.getLineContent(o),l=s-1,u=a.length,d=a.length;if(o===t.lineNumber)l=r.findTokenIndexAtOffset(t.column-1),u=t.column-1,d=t.column-1,n!==(h=r.getLanguageId(l))&&(n=h,\ni=b.LanguageConfigurationRegistry.getBracketsSupport(n));for(var c=!0;l>=0;l--){var h;if(n!==(h=r.getLanguageId(l))){if(i&&c&&u!==d){if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p);c=!1}n=h,i=b.LanguageConfigurationRegistry.getBracketsSupport(n)}var p,g=!!i&&!w.ignoreBracketsInToken(r.getStandardTokenType(l));if(g)c?u=r.getStartOffset(l):(u=r.getStartOffset(l),d=r.getEndOffset(l));else if(i&&c&&u!==d)if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p);c=g}if(i&&c&&u!==d)if(p=E.BracketsUtils.findPrevBracketInRange(i.reversedRegex,o,a,u,d))return this._toFoundBracket(i,p)}return null},o.prototype.findNextBracket=function(e){for(var t=this.validatePosition(e),n=this.getLineCount(),i=-1,o=null,r=t.lineNumber;r<=n;r++){var s=this._getLineTokens(r),a=s.getCount(),l=this._buffer.getLineContent(r),u=0,d=0,c=0;if(r===t.lineNumber)u=s.findTokenIndexAtOffset(t.column-1),d=t.column-1,c=t.column-1,\ni!==(p=s.getLanguageId(u))&&(i=p,o=b.LanguageConfigurationRegistry.getBracketsSupport(i));for(var h=!0;u<a;u++){var p;if(i!==(p=s.getLanguageId(u))){if(o&&h&&d!==c){if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g);h=!1}i=p,o=b.LanguageConfigurationRegistry.getBracketsSupport(i)}var g,f=!!o&&!w.ignoreBracketsInToken(s.getStandardTokenType(u));if(f)h?c=s.getEndOffset(u):(d=s.getStartOffset(u),c=s.getEndOffset(u));else if(o&&h&&d!==c)if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g);h=f}if(o&&h&&d!==c)if(g=E.BracketsUtils.findNextBracketInRange(o.forwardRegex,r,l,d,c))return this._toFoundBracket(o,g)}return null},o.prototype.findEnclosingBrackets=function(e,t){var n=this;void 0===t&&(t=1073741824);for(var i=this.validatePosition(e),o=this.getLineCount(),r=new Map,s=[],a=function(e,t){if(!r.has(e)){for(var n=[],i=0,o=t?t.brackets.length:0;i<o;i++)n[i]=0;r.set(e,n)}s=r.get(e)},l=function(e,t,i,o,r){for(;;){\nvar a=E.BracketsUtils.findNextBracketInRange(e.forwardRegex,t,i,o,r);if(!a)break;var l=i.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),u=e.textIsBracket[l];if(u&&(u.isOpen(l)?s[u.index]++:u.isClose(l)&&s[u.index]--,-1===s[u.index]))return n._matchFoundBracket(a,u,!1);o=a.endColumn-1}return null},u=-1,d=null,c=Date.now(),h=i.lineNumber;h<=o;h++){if(Date.now()-c>t)return null;var p=this._getLineTokens(h),g=p.getCount(),f=this._buffer.getLineContent(h),m=0,v=0,_=0;if(h===i.lineNumber)m=p.findTokenIndexAtOffset(i.column-1),v=i.column-1,_=i.column-1,u!==(C=p.getLanguageId(m))&&a(u=C,d=b.LanguageConfigurationRegistry.getBracketsSupport(u));for(var y=!0;m<g;m++){var C;if(u!==(C=p.getLanguageId(m))){if(d&&y&&v!==_){if(S=l(d,h,f,v,_))return S;y=!1}a(u=C,d=b.LanguageConfigurationRegistry.getBracketsSupport(u))}var S,L=!!d&&!w.ignoreBracketsInToken(p.getStandardTokenType(m));if(L)y?_=p.getEndOffset(m):(v=p.getStartOffset(m),_=p.getEndOffset(m));else if(d&&y&&v!==_)if(S=l(d,h,f,v,_))return S;y=L}\nif(d&&y&&v!==_)if(S=l(d,h,f,v,_))return S}return null},o.prototype._toFoundBracket=function(e,t){if(!t)return null;var n=this.getValueInRange(t);n=n.toLowerCase();var i=e.textIsBracket[n];return i?{range:t,open:i.open,close:i.close,isOpen:e.textIsOpenBracket[n]}:null},o.computeIndentLevel=function(e,t){for(var n=0,i=0,o=e.length;i<o;){var r=e.charCodeAt(i);if(32===r)n++;else{if(9!==r)break;n=n-n%t+t}i++}return i===o?-1:n},o.prototype._computeIndentLevel=function(e){return o.computeIndentLevel(this._buffer.getLineContent(e+1),this._options.tabSize)},o.prototype.getActiveIndentGuide=function(e,t,n){var i=this;this._assertNotDisposed();var o=this.getLineCount();if(e<1||e>o)throw new Error(\"Illegal value for lineNumber\");for(var r=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),s=Boolean(r&&r.offSide),a=-2,l=-1,u=-2,d=-1,c=function(e){if(-1!==a&&(-2===a||a>e-1)){a=-1,l=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){a=t,l=n;break}}}if(-2===u){u=-1,d=-1\n;for(t=e;t<o;t++){var r=i._computeIndentLevel(t);if(r>=0){u=t,d=r;break}}}},h=-2,p=-1,g=-2,f=-1,m=function(e){if(-2===h){h=-1,p=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){h=t,p=n;break}}}if(-1!==g&&(-2===g||g<e-1)){g=-1,f=-1;for(t=e;t<o;t++){var r=i._computeIndentLevel(t);if(r>=0){g=t,f=r;break}}}},v=0,_=!0,y=0,C=!0,S=0,w=0;_||C;w++){var E=e-w,L=e+w;if(0!==w&&(E<1||E<t)&&(_=!1),0!==w&&(L>o||L>n)&&(C=!1),w>5e4&&(_=!1,C=!1),_){var D=void 0;if((N=this._computeIndentLevel(E-1))>=0?(u=E-1,d=N,D=Math.ceil(N/this._options.indentSize)):(c(E),D=this._getIndentLevelForWhitespaceLine(s,l,d)),0===w){if(v=E,y=L,0===(S=D))return{startLineNumber:v,endLineNumber:y,indent:S};continue}D>=S?v=E:_=!1}if(C){var N,x=void 0;(N=this._computeIndentLevel(L-1))>=0?(h=L-1,p=N,x=Math.ceil(N/this._options.indentSize)):(m(L),x=this._getIndentLevelForWhitespaceLine(s,p,f)),x>=S?y=L:C=!1}}return{startLineNumber:v,endLineNumber:y,indent:S}},o.prototype.getLinesIndentGuides=function(e,t){this._assertNotDisposed()\n;var n=this.getLineCount();if(e<1||e>n)throw new Error(\"Illegal value for startLineNumber\");if(t<1||t>n)throw new Error(\"Illegal value for endLineNumber\");for(var i=b.LanguageConfigurationRegistry.getFoldingRules(this._languageIdentifier.id),o=Boolean(i&&i.offSide),r=new Array(t-e+1),s=-2,a=-1,l=-2,u=-1,d=e;d<=t;d++){var c=d-e,h=this._computeIndentLevel(d-1);if(h>=0)s=d-1,a=h,r[c]=Math.ceil(h/this._options.indentSize);else{if(-2===s){s=-1,a=-1;for(var p=d-2;p>=0;p--){if((g=this._computeIndentLevel(p))>=0){s=p,a=g;break}}}if(-1!==l&&(-2===l||l<d-1)){l=-1,u=-1;for(p=d;p<n;p++){var g;if((g=this._computeIndentLevel(p))>=0){l=p,u=g;break}}}r[c]=this._getIndentLevelForWhitespaceLine(o,a,u)}}return r},o.prototype._getIndentLevelForWhitespaceLine=function(e,t,n){return-1===t||-1===n?0:t<n?1+Math.floor(t/this._options.indentSize):t===n?Math.ceil(n/this._options.indentSize):e?Math.ceil(n/this._options.indentSize):1+Math.floor(n/this._options.indentSize)},o.MODEL_SYNC_LIMIT=52428800,o.LARGE_FILE_SIZE_THRESHOLD=20971520,\no.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,o.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:l.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:l.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:l.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:l.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:l.EDITOR_MODEL_DEFAULTS.largeFileOptimizations},o}(o.Disposable);t.TextModel=T;var R=function(){function e(){this._decorationsTree0=new f.IntervalTree,this._decorationsTree1=new f.IntervalTree}return e.prototype.intervalSearch=function(e,t,n,i,o){var r=this._decorationsTree0.intervalSearch(e,t,n,i,o),s=this._decorationsTree1.intervalSearch(e,t,n,i,o);return r.concat(s)},e.prototype.search=function(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);var o=this._decorationsTree0.search(e,t,i),r=this._decorationsTree1.search(e,t,i);return o.concat(r)},e.prototype.collectNodesFromOwner=function(e){\nvar t=this._decorationsTree0.collectNodesFromOwner(e),n=this._decorationsTree1.collectNodesFromOwner(e);return t.concat(n)},e.prototype.collectNodesPostOrder=function(){var e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder();return e.concat(t)},e.prototype.insert=function(e){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)},e.prototype.delete=function(e){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)},e.prototype.resolveNode=function(e,t){f.getNodeIsInOverviewRuler(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)},e.prototype.acceptReplace=function(e,t,n,i){this._decorationsTree0.acceptReplace(e,t,n,i),this._decorationsTree1.acceptReplace(e,t,n,i)},e}();function O(e){return e.replace(/[^a-z0-9\\-_]/gi,\" \")}var P=function(e){this.color=e.color||\"\",this.darkColor=e.darkColor||\"\"},A=function(e){function t(t){var n=e.call(this,t)||this\n;return n._resolvedColor=null,n.position=\"number\"==typeof t.position?t.position:h.OverviewRulerLane.Center,n}return r(t,e),t.prototype.getColor=function(e){return this._resolvedColor||(\"light\"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor},t.prototype.invalidateCachedColor=function(){this._resolvedColor=null},t.prototype._resolveColor=function(e,t){if(\"string\"==typeof e)return e;var n=e?t.getColor(e.id):null;return n?n.toString():\"\"},t}(P);t.ModelDecorationOverviewRulerOptions=A;var F=function(e){function t(t){var n=e.call(this,t)||this;return n.position=t.position,n}return r(t,e),t.prototype.getColor=function(e){return this._resolvedColor||(\"light\"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor},t.prototype.invalidateCachedColor=function(){this._resolvedColor=void 0},\nt.prototype._resolveColor=function(e,t){return\"string\"==typeof e?N.Color.fromHex(e):t.getColor(e.id)},t}(P);t.ModelDecorationMinimapOptions=F;var W=function(){function e(e){this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?O(e.className):null,this.hoverMessage=L.withUndefinedAsNull(e.hoverMessage),this.glyphMarginHoverMessage=L.withUndefinedAsNull(e.glyphMarginHoverMessage),this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new A(e.overviewRuler):null,this.minimap=e.minimap?new F(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?O(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?O(e.linesDecorationsClassName):null,this.marginClassName=e.marginClassName?O(e.marginClassName):null,this.inlineClassName=e.inlineClassName?O(e.inlineClassName):null,\nthis.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?O(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?O(e.afterContentClassName):null}return e.register=function(t){return new e(t)},e.createDynamic=function(t){return new e(t)},e}();t.ModelDecorationOptions=W,W.EMPTY=W.register({});var B=[W.register({stickiness:0}),W.register({stickiness:1}),W.register({stickiness:2}),W.register({stickiness:3})];function V(e){return e instanceof W?e:W.createDynamic(e)}var z=function(e){function t(){var t=e.call(this)||this;return t._actual=t._register(new i.Emitter),t.event=t._actual.event,t._deferredCnt=0,t._shouldFire=!1,t}return r(t,e),t.prototype.beginDeferredEmit=function(){this._deferredCnt++},t.prototype.endDeferredEmit=function(){this._deferredCnt--,0===this._deferredCnt&&this._shouldFire&&(this._shouldFire=!1,this._actual.fire({}))},t.prototype.fire=function(){this._shouldFire=!0},t}(o.Disposable)\n;t.DidChangeDecorationsEmitter=z;var H=function(e){function t(){var t=e.call(this)||this;return t._fastEmitter=t._register(new i.Emitter),t.fastEvent=t._fastEmitter.event,t._slowEmitter=t._register(new i.Emitter),t.slowEvent=t._slowEmitter.event,t._deferredCnt=0,t._deferredEvent=null,t}return r(t,e),t.prototype.beginDeferredEmit=function(){this._deferredCnt++},t.prototype.endDeferredEmit=function(){if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){var e=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(e),this._slowEmitter.fire(e)}},t.prototype.fire=function(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))},t}(o.Disposable);t.DidChangeContentEmitter=H})),define(n[40],i([0,1,10,5,13,3,22,30,41]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){return!0},d=function(){return!1},c=function(e){\nreturn\" \"===e||\"\\t\"===e};function h(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}var p=function(){function e(t,n,i){this._languageIdentifier=t;var o=i.options,r=o.get(107);this.readOnly=o.get(68),this.tabSize=n.tabSize,this.indentSize=n.indentSize,this.insertSpaces=n.insertSpaces,this.lineHeight=o.get(49),this.pageSize=Math.max(1,Math.floor(r.height/this.lineHeight)-2),this.useTabStops=o.get(95),this.wordSeparators=o.get(96),this.emptySelectionClipboard=o.get(25),this.copyWithSyntaxHighlighting=o.get(15),this.multiCursorMergeOverlapping=o.get(58),this.multiCursorPaste=o.get(60),this.autoClosingBrackets=o.get(5),this.autoClosingQuotes=o.get(7),this.autoClosingOvertype=o.get(6),this.autoSurround=o.get(10),this.autoIndent=o.get(8),this.autoClosingPairsOpen2=new Map,this.autoClosingPairsClose2=new Map,this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:e._getShouldAutoClose(t,this.autoClosingQuotes),bracket:e._getShouldAutoClose(t,this.autoClosingBrackets)}\n;var s=e._getAutoClosingPairs(t);if(s)for(var a=0,l=s;a<l.length;a++){var u=l[a];h(this.autoClosingPairsOpen2,u.open.charAt(u.open.length-1),u),1===u.close.length&&h(this.autoClosingPairsClose2,u.close,u)}var d=e._getSurroundingPairs(t);if(d)for(var c=0,p=d;c<p.length;c++){u=p[c];this.surroundingPairs[u.open]=u.close}}return e.shouldRecreate=function(e){return e.hasChanged(107)||e.hasChanged(96)||e.hasChanged(25)||e.hasChanged(58)||e.hasChanged(60)||e.hasChanged(5)||e.hasChanged(7)||e.hasChanged(6)||e.hasChanged(10)||e.hasChanged(95)||e.hasChanged(49)||e.hasChanged(68)},Object.defineProperty(e.prototype,\"electricChars\",{get:function(){if(!this._electricChars){this._electricChars={};var t=e._getElectricCharacters(this._languageIdentifier);if(t)for(var n=0,i=t;n<i.length;n++){var o=i[n];this._electricChars[o]=!0}}return this._electricChars},enumerable:!0,configurable:!0}),e.prototype.normalizeIndentation=function(e){return a.TextModel.normalizeIndentation(e,this.indentSize,this.insertSpaces)},\ne._getElectricCharacters=function(e){try{return l.LanguageConfigurationRegistry.getElectricCharacters(e.id)}catch(e){return n.onUnexpectedError(e),null}},e._getAutoClosingPairs=function(e){try{return l.LanguageConfigurationRegistry.getAutoClosingPairs(e.id)}catch(e){return n.onUnexpectedError(e),null}},e._getShouldAutoClose=function(t,n){switch(n){case\"beforeWhitespace\":return c;case\"languageDefined\":return e._getLanguageDefinedShouldAutoClose(t);case\"always\":return u;case\"never\":return d}},e._getLanguageDefinedShouldAutoClose=function(e){try{var t=l.LanguageConfigurationRegistry.getAutoCloseBeforeSet(e.id);return function(e){return-1!==t.indexOf(e)}}catch(e){return n.onUnexpectedError(e),d}},e._getSurroundingPairs=function(e){try{return l.LanguageConfigurationRegistry.getSurroundingPairs(e.id)}catch(e){return n.onUnexpectedError(e),null}},e}();t.CursorConfiguration=p;var g=function(){function e(t,n,i,o){this.selectionStart=t,this.selectionStartLeftoverVisibleColumns=n,this.position=i,\nthis.leftoverVisibleColumns=o,this.selection=e._computeSelection(this.selectionStart,this.position)}return e.prototype.equals=function(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)},e.prototype.hasSelection=function(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()},e.prototype.move=function(t,n,i,s){return t?new e(this.selectionStart,this.selectionStartLeftoverVisibleColumns,new o.Position(n,i),s):new e(new r.Range(n,i,n,i),s,new o.Position(n,i),s)},e._computeSelection=function(e,t){var n,i,o,r;return e.isEmpty()?(n=e.startLineNumber,i=e.startColumn,o=t.lineNumber,r=t.column):t.isBeforeOrEqual(e.getStartPosition())?(n=e.endLineNumber,i=e.endColumn,o=t.lineNumber,r=t.column):(n=e.startLineNumber,i=e.startColumn,o=t.lineNumber,r=t.column),new s.Selection(n,i,o,r)},e}();t.SingleCursorState=g;var f=function(){\nfunction e(e,t,n){this.model=t,this.viewModel=n,this.config=new p(this.model.getLanguageIdentifier(),this.model.getOptions(),e)}return e.prototype.validateViewPosition=function(e,t){return this.viewModel.coordinatesConverter.validateViewPosition(e,t)},e.prototype.validateViewRange=function(e,t){return this.viewModel.coordinatesConverter.validateViewRange(e,t)},e.prototype.convertViewRangeToModelRange=function(e){return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(e)},e.prototype.convertViewPositionToModelPosition=function(e,t){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e,t))},e.prototype.convertModelPositionToViewPosition=function(e){return this.viewModel.coordinatesConverter.convertModelPositionToViewPosition(e)},e.prototype.convertModelRangeToViewRange=function(e){return this.viewModel.coordinatesConverter.convertModelRangeToViewRange(e)},e.prototype.getCurrentScrollTop=function(){return this.viewModel.viewLayout.getCurrentScrollTop()},\ne.prototype.getCompletelyVisibleViewRange=function(){return this.viewModel.getCompletelyVisibleViewRange()},e.prototype.getCompletelyVisibleModelRange=function(){var e=this.viewModel.getCompletelyVisibleViewRange();return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(e)},e.prototype.getCompletelyVisibleViewRangeAtScrollTop=function(e){return this.viewModel.getCompletelyVisibleViewRangeAtScrollTop(e)},e.prototype.getVerticalOffsetForViewLine=function(e){return this.viewModel.viewLayout.getVerticalOffsetForLineNumber(e)},e}();t.CursorContext=f;var m=function(e){this.modelState=e,this.viewState=null};t.PartialModelCursorState=m;var v=function(e){this.modelState=null,this.viewState=e};t.PartialViewCursorState=v;var _=function(){function e(e,t){this.modelState=e,this.viewState=t}return e.fromModelState=function(e){return new m(e)},e.fromViewState=function(e){return new v(e)},e.fromModelSelection=function(t){\nvar n=t.selectionStartLineNumber,i=t.selectionStartColumn,s=t.positionLineNumber,a=t.positionColumn,l=new g(new r.Range(n,i,n,i),0,new o.Position(s,a),0);return e.fromModelState(l)},e.fromModelSelections=function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=this.fromModelSelection(e[n]);return t},e.prototype.equals=function(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)},e}();t.CursorState=_;var y=function(e,t,n){this.type=e,this.commands=t,this.shouldPushStackElementBefore=n.shouldPushStackElementBefore,this.shouldPushStackElementAfter=n.shouldPushStackElementAfter};t.EditOperationResult=y;var C=function(){function e(){}return e.visibleColumnFromColumn=function(t,n,o){for(var r=t.length,s=n-1<r?n-1:r,a=0,l=0;l<s;){var u=i.getNextCodePoint(t,s,l);if(l+=u>=65536?2:1,9===u)a=e.nextRenderTabStop(a,o);else{for(var d=i.getGraphemeBreakType(u);l<s;){var c=i.getNextCodePoint(t,s,l),h=i.getGraphemeBreakType(c);if(i.breakBetweenGraphemeBreakType(d,h))break;l+=c>=65536?2:1,d=h}\ni.isFullWidthCharacter(u)||i.isEmojiImprecise(u)?a+=2:a+=1}}return a},e.visibleColumnFromColumn2=function(e,t,n){return this.visibleColumnFromColumn(t.getLineContent(n.lineNumber),n.column,e.tabSize)},e.columnFromVisibleColumn=function(t,n,o){if(n<=0)return 1;for(var r=t.length,s=0,a=1,l=0;l<r;){var u=i.getNextCodePoint(t,r,l);l+=u>=65536?2:1;var d=void 0;if(9===u)d=e.nextRenderTabStop(s,o);else{for(var c=i.getGraphemeBreakType(u);l<r;){var h=i.getNextCodePoint(t,r,l),p=i.getGraphemeBreakType(h);if(i.breakBetweenGraphemeBreakType(c,p))break;l+=h>=65536?2:1,c=p}d=i.isFullWidthCharacter(u)||i.isEmojiImprecise(u)?s+2:s+1}var g=l+1;if(d>=n)return d-n<n-s?g:a;s=d,a=g}return r+1},e.columnFromVisibleColumn2=function(e,t,n,i){var o=this.columnFromVisibleColumn(t.getLineContent(n),i,e.tabSize),r=t.getLineMinColumn(n);if(o<r)return r;var s=t.getLineMaxColumn(n);return o>s?s:o},e.nextRenderTabStop=function(e,t){return e+t-e%t},e.nextIndentTabStop=function(e,t){return e+t-e%t},e.prevRenderTabStop=function(e,t){\nreturn e-1-(e-1)%t},e.prevIndentTabStop=function(e,t){return e-1-(e-1)%t},e}();t.CursorColumns=C,t.isQuote=function(e){return\"'\"===e||'\"'===e||\"`\"===e}})),define(n[211],i([0,1,5,40,3,22,41]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=Object.create(null);function l(e,t){a[e]||(a[e]=[\"\",e]);for(var n=a[e],i=n.length;i<=t;i++)n[i]=n[i-1]+e;return n[t]}t.cachedStringRepeat=l;var u=function(){function e(e,t){this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return e.unshiftIndent=function(e,t,n,o,r){var s=i.CursorColumns.visibleColumnFromColumn(e,t,n);if(r){var a=l(\" \",o);return l(a,i.CursorColumns.prevIndentTabStop(s,o)/o)}return l(a=\"\\t\",i.CursorColumns.prevRenderTabStop(s,n)/n)},e.shiftIndent=function(e,t,n,o,r){var s=i.CursorColumns.visibleColumnFromColumn(e,t,n);if(r){var a=l(\" \",o);return l(a,i.CursorColumns.nextIndentTabStop(s,o)/o)}\nreturn l(a=\"\\t\",i.CursorColumns.nextRenderTabStop(s,n)/n)},e.prototype._addEditOperation=function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)},e.prototype.getEditOperations=function(t,r){var a=this._selection.startLineNumber,u=this._selection.endLineNumber;1===this._selection.endColumn&&a!==u&&(u-=1);var d=this._opts,c=d.tabSize,h=d.indentSize,p=d.insertSpaces,g=a===u;if(this._selection.isEmpty()&&/^\\s*$/.test(t.getLineContent(a))&&(this._useLastEditRangeForCursorEndPosition=!0),this._opts.useTabStops)for(var f=0,m=0,v=a;v<=u;v++,f=m){m=0;var _=t.getLineContent(v),y=n.firstNonWhitespaceIndex(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&(g||this._opts.isUnshift||0!==_.length)){if(-1===y&&(y=_.length),v>1)if(i.CursorColumns.visibleColumnFromColumn(_,y+1,c)%h!=0&&t.isCheapToTokenize(v-1)){var C=s.LanguageConfigurationRegistry.getEnterAction(this._opts.autoIndent,t,new o.Range(v-1,t.getLineMaxColumn(v-1),v-1,t.getLineMaxColumn(v-1)));if(C){\nif(m=f,C.appendText)for(var b=0,S=C.appendText.length;b<S&&m<h&&32===C.appendText.charCodeAt(b);b++)m++;C.removeText&&(m=Math.max(0,m-C.removeText));for(b=0;b<m&&(0!==y&&32===_.charCodeAt(y-1));b++)y--}}if(!this._opts.isUnshift||0!==y){var w=void 0;w=this._opts.isUnshift?e.unshiftIndent(_,y+1,c,h,p):e.shiftIndent(_,y+1,c,h,p),this._addEditOperation(r,new o.Range(v,1,v,y+1),w),v!==a||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=this._selection.startColumn<=y+1)}}}else{var E=p?l(\" \",h):\"\\t\";for(v=a;v<=u;v++){_=t.getLineContent(v),y=n.firstNonWhitespaceIndex(_);if((!this._opts.isUnshift||0!==_.length&&0!==y)&&((g||this._opts.isUnshift||0!==_.length)&&(-1===y&&(y=_.length),!this._opts.isUnshift||0!==y)))if(this._opts.isUnshift){y=Math.min(y,h);for(var L=0;L<y;L++){if(9===_.charCodeAt(L)){y=L+1;break}}this._addEditOperation(r,new o.Range(v,1,v,y+1),\"\")}else this._addEditOperation(r,new o.Range(v,1,v,1),E),\nv!==a||this._selection.isEmpty()||(this._selectionStartColumnStaysPut=1===this._selection.startColumn)}}this._selectionId=r.trackSelection(this._selection)},e.prototype.computeCursorState=function(e,t){if(this._useLastEditRangeForCursorEndPosition){var n=t.getInverseEditOperations()[0];return new r.Selection(n.range.endLineNumber,n.range.endColumn,n.range.endLineNumber,n.range.endColumn)}var i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){var o=this._selection.startColumn;return i.startColumn<=o?i:0===i.getDirection()?new r.Selection(i.startLineNumber,o,i.endLineNumber,i.endColumn):new r.Selection(i.endLineNumber,i.endColumn,i.startLineNumber,o)}return i},e}();t.ShiftCommand=u})),define(n[483],i([0,1,40,13,3]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(){}return e.columnSelect=function(e,t,r,s,a,l){for(var u=Math.abs(a-r)+1,d=r>a,c=s>l,h=s<l,p=[],g=0;g<u;g++){\nvar f=r+(d?-g:g),m=n.CursorColumns.columnFromVisibleColumn2(e,t,f,s),v=n.CursorColumns.columnFromVisibleColumn2(e,t,f,l),_=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(f,m)),y=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(f,v));if(h){if(_>l)continue;if(y<s)continue}if(c){if(y>s)continue;if(_<l)continue}p.push(new n.SingleCursorState(new o.Range(f,m,f,m),0,new i.Position(f,v),0))}if(0===p.length)for(g=0;g<u;g++){f=r+(d?-g:g);var C=t.getLineMaxColumn(f);p.push(new n.SingleCursorState(new o.Range(f,C,f,C),0,new i.Position(f,C),0))}return{viewStates:p,reversed:d,fromLineNumber:r,fromVisualColumn:s,toLineNumber:a,toVisualColumn:l}},e.columnSelectLeft=function(t,n,i){var o=i.toViewVisualColumn;return o>1&&o--,e.columnSelect(t,n,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,o)},e.columnSelectRight=function(e,t,o){for(var r=0,s=Math.min(o.fromViewLineNumber,o.toViewLineNumber),a=Math.max(o.fromViewLineNumber,o.toViewLineNumber),l=s;l<=a;l++){\nvar u=t.getLineMaxColumn(l),d=n.CursorColumns.visibleColumnFromColumn2(e,t,new i.Position(l,u));r=Math.max(r,d)}var c=o.toViewVisualColumn;return c<r&&c++,this.columnSelect(e,t,o.fromViewLineNumber,o.fromViewVisualColumn,o.toViewLineNumber,c)},e.columnSelectUp=function(e,t,n,i){var o=i?e.pageSize:1,r=Math.max(1,n.toViewLineNumber-o);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,r,n.toViewVisualColumn)},e.columnSelectDown=function(e,t,n,i){var o=i?e.pageSize:1,r=Math.min(t.getLineCount(),n.toViewLineNumber+o);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,r,n.toViewVisualColumn)},e}();t.ColumnSelection=r})),define(n[158],i([0,1,40,13,3,5]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e,t,n){this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=n};t.CursorPosition=s;var a=function(){function e(){}return e.leftPosition=function(e,t,n){\nreturn n>e.getLineMinColumn(t)?n-=r.prevCharLength(e.getLineContent(t),n-1):t>1&&(t-=1,n=e.getLineMaxColumn(t)),new i.Position(t,n)},e.left=function(t,n,i,o){var r=e.leftPosition(n,i,o);return new s(r.lineNumber,r.column,0)},e.moveLeft=function(t,n,i,o,r){var s,a;if(i.hasSelection()&&!o)s=i.selection.startLineNumber,a=i.selection.startColumn;else{var l=e.left(t,n,i.position.lineNumber,i.position.column-(r-1));s=l.lineNumber,a=l.column}return i.move(o,s,a,0)},e.rightPosition=function(e,t,n){return n<e.getLineMaxColumn(t)?n+=r.nextCharLength(e.getLineContent(t),n-1):t<e.getLineCount()&&(t+=1,n=e.getLineMinColumn(t)),new i.Position(t,n)},e.right=function(t,n,i,o){var r=e.rightPosition(n,i,o);return new s(r.lineNumber,r.column,0)},e.moveRight=function(t,n,i,o,r){var s,a;if(i.hasSelection()&&!o)s=i.selection.endLineNumber,a=i.selection.endColumn;else{var l=e.right(t,n,i.position.lineNumber,i.position.column+(r-1));s=l.lineNumber,a=l.column}return i.move(o,s,a,0)},e.down=function(e,t,i,o,r,a,l){\nvar u=n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize)+r;i+=a;var d=t.getLineCount();return i>d?(i=d,o=l?t.getLineMaxColumn(i):Math.min(t.getLineMaxColumn(i),o)):o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,u),r=u-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new s(i,o,r)},e.moveDown=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.down(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateDown=function(t,r,s){var a=s.selection,l=e.down(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),u=e.down(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new i.Position(u.lineNumber,u.column),u.leftoverVisibleColumns)},\ne.up=function(e,t,i,o,r,a,l){var u=n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize)+r;return(i-=a)<1?(i=1,o=l?t.getLineMinColumn(i):Math.min(t.getLineMaxColumn(i),o)):o=n.CursorColumns.columnFromVisibleColumn2(e,t,i,u),r=u-n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),new s(i,o,r)},e.moveUp=function(t,n,i,o,r){var s,a;i.hasSelection()&&!o?(s=i.selection.startLineNumber,a=i.selection.startColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.up(t,n,s,a,i.leftoverVisibleColumns,r,!0);return i.move(o,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateUp=function(t,r,s){var a=s.selection,l=e.up(t,r,a.selectionStartLineNumber,a.selectionStartColumn,s.selectionStartLeftoverVisibleColumns,1,!1),u=e.up(t,r,a.positionLineNumber,a.positionColumn,s.leftoverVisibleColumns,1,!1);return new n.SingleCursorState(new o.Range(l.lineNumber,l.column,l.lineNumber,l.column),l.leftoverVisibleColumns,new i.Position(u.lineNumber,u.column),u.leftoverVisibleColumns)},\ne.moveToBeginningOfLine=function(e,t,n,i){var o,r=n.position.lineNumber,s=t.getLineMinColumn(r),a=t.getLineFirstNonWhitespaceColumn(r)||s;return o=n.position.column===a?s:a,n.move(i,r,o,0)},e.moveToEndOfLine=function(e,t,n,i){var o=n.position.lineNumber,r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e.moveToBeginningOfBuffer=function(e,t,n,i){return n.move(i,1,1,0)},e.moveToEndOfBuffer=function(e,t,n,i){var o=t.getLineCount(),r=t.getLineMaxColumn(o);return n.move(i,o,r,0)},e}();t.MoveOperations=a})),define(n[212],i([0,1,5,80,40,158,3]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(){}return e.deleteRight=function(e,t,n,o){for(var a=[],l=3!==e,u=0,d=o.length;u<d;u++){var c=o[u],h=c;if(h.isEmpty()){var p=c.getPosition(),g=r.MoveOperations.right(t,n,p.lineNumber,p.column);h=new s.Range(g.lineNumber,g.column,p.lineNumber,p.column)}h.isEmpty()?a[u]=null:(h.startLineNumber!==h.endLineNumber&&(l=!0),a[u]=new i.ReplaceCommand(h,\"\"))}return[l,a]},\ne._isAutoClosingPairDelete=function(e,t,n){if(\"never\"===e.autoClosingBrackets&&\"never\"===e.autoClosingQuotes)return!1;for(var i=0,r=n.length;i<r;i++){var s=n[i],a=s.getPosition();if(!s.isEmpty())return!1;var l=t.getLineContent(a.lineNumber),u=l[a.column-2],d=e.autoClosingPairsOpen2.get(u);if(!d)return!1;if(o.isQuote(u)){if(\"never\"===e.autoClosingQuotes)return!1}else if(\"never\"===e.autoClosingBrackets)return!1;for(var c=l[a.column-1],h=!1,p=0,g=d;p<g.length;p++){var f=g[p];f.open===u&&f.close===c&&(h=!0)}if(!h)return!1}return!0},e._runAutoClosingPairDelete=function(e,t,n){for(var o=[],r=0,a=n.length;r<a;r++){var l=n[r].getPosition(),u=new s.Range(l.lineNumber,l.column-1,l.lineNumber,l.column+1);o[r]=new i.ReplaceCommand(u,\"\")}return[!0,o]},e.deleteLeft=function(e,t,a,l){if(this._isAutoClosingPairDelete(t,a,l))return this._runAutoClosingPairDelete(t,a,l);for(var u=[],d=2!==e,c=0,h=l.length;c<h;c++){var p=l[c],g=p;if(g.isEmpty()){var f=p.getPosition();if(t.useTabStops&&f.column>1){\nvar m=a.getLineContent(f.lineNumber),v=n.firstNonWhitespaceIndex(m),_=-1===v?m.length+1:v+1;if(f.column<=_){var y=o.CursorColumns.visibleColumnFromColumn2(t,a,f),C=o.CursorColumns.prevIndentTabStop(y,t.indentSize),b=o.CursorColumns.columnFromVisibleColumn2(t,a,f.lineNumber,C);g=new s.Range(f.lineNumber,b,f.lineNumber,f.column)}else g=new s.Range(f.lineNumber,f.column-1,f.lineNumber,f.column)}else{var S=r.MoveOperations.left(t,a,f.lineNumber,f.column);g=new s.Range(S.lineNumber,S.column,f.lineNumber,f.column)}}g.isEmpty()?u[c]=null:(g.startLineNumber!==g.endLineNumber&&(d=!0),u[c]=new i.ReplaceCommand(g,\"\"))}return[d,u]},e.cut=function(e,t,n){for(var r=[],a=0,l=n.length;a<l;a++){var u=n[a];if(u.isEmpty())if(e.emptySelectionClipboard){var d=u.getPosition(),c=void 0,h=void 0,p=void 0,g=void 0;d.lineNumber<t.getLineCount()?(c=d.lineNumber,h=1,p=d.lineNumber+1,g=1):d.lineNumber>1?(c=d.lineNumber-1,h=t.getLineMaxColumn(d.lineNumber-1),p=d.lineNumber,g=t.getLineMaxColumn(d.lineNumber)):(c=d.lineNumber,h=1,\np=d.lineNumber,g=t.getLineMaxColumn(d.lineNumber));var f=new s.Range(c,h,p,g);f.isEmpty()?r[a]=null:r[a]=new i.ReplaceCommand(f,\"\")}else r[a]=null;else r[a]=new i.ReplaceCommand(u,\"\")}return new o.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e}();t.DeleteOperations=a})),define(n[159],i([0,1,10,5,80,211,340,40,89,3,22,90,41]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(){function e(){}return e.indent=function(e,t,n){if(null===t||null===n)return[];for(var i=[],o=0,r=n.length;o<r;o++)i[o]=new s.ShiftCommand(n[o],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i},e.outdent=function(e,t,n){for(var i=[],o=0,r=n.length;o<r;o++)i[o]=new s.ShiftCommand(n[o],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent});return i},\ne.shiftIndent=function(e,t,n){return n=n||1,s.ShiftCommand.shiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)},e.unshiftIndent=function(e,t,n){return n=n||1,s.ShiftCommand.unshiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)},e._distributedPaste=function(e,t,n,i){for(var r=[],s=0,a=n.length;s<a;s++)r[s]=new o.ReplaceCommand(n[s],i[s]);return new l.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._simplePaste=function(e,t,n,i,r){for(var s=[],a=0,u=n.length;a<u;a++){var c=n[a],h=c.getPosition();if(r&&!c.isEmpty()&&(r=!1),r&&i.indexOf(\"\\n\")!==i.length-1&&(r=!1),r){var p=new d.Range(h.lineNumber,1,h.lineNumber,1);s[a]=new o.ReplaceCommandThatPreservesSelection(p,i,c,!0)}else s[a]=new o.ReplaceCommand(c,i)}return new l.EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._distributePasteToCursors=function(e,t,n,i,o){if(i)return null;if(1===t.length)return null;if(o&&o.length===t.length)return o\n;if(\"spread\"===e.multiCursorPaste){10===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1)),13===n.charCodeAt(n.length-1)&&(n=n.substr(0,n.length-1));var r=n.split(/\\r\\n|\\r|\\n/);if(r.length===t.length)return r}return null},e.paste=function(e,t,n,i,o,r){var s=this._distributePasteToCursors(e,n,i,o,r);return s?(n=n.sort(d.Range.compareRangesUsingStarts),this._distributedPaste(e,t,n,s)):this._simplePaste(e,t,n,i,o)},e._goodIndentForLine=function(t,n,o){var r=null,s=\"\",a=p.LanguageConfigurationRegistry.getInheritIndentForLine(t.autoIndent,n,o,!1);if(a)r=a.action,s=a.indentation;else if(o>1){var l=void 0;for(l=o-1;l>=1;l--){var u=n.getLineContent(l);if(i.lastNonWhitespaceIndex(u)>=0)break}if(l<1)return null;var c=n.getLineMaxColumn(l),g=p.LanguageConfigurationRegistry.getEnterAction(t.autoIndent,n,new d.Range(l,c,l,c));g&&(s=g.indentation+g.appendText)}return r&&(r===h.IndentAction.Indent&&(s=e.shiftIndent(t,s)),r===h.IndentAction.Outdent&&(s=e.unshiftIndent(t,s)),s=t.normalizeIndentation(s)),s||null},\ne._replaceJumpToNextIndent=function(e,t,n,i){var r=\"\",s=n.getStartPosition();if(e.insertSpaces)for(var a=l.CursorColumns.visibleColumnFromColumn2(e,t,s),u=e.indentSize,d=u-a%u,c=0;c<d;c++)r+=\" \";else r=\"\\t\";return new o.ReplaceCommand(n,r,i)},e.tab=function(e,t,n){for(var r=[],a=0,l=n.length;a<l;a++){var u=n[a];if(u.isEmpty()){var c=t.getLineContent(u.startLineNumber);if(/^\\s*$/.test(c)&&t.isCheapToTokenize(u.startLineNumber)){var h=this._goodIndentForLine(e,t,u.startLineNumber);h=h||\"\\t\";var p=e.normalizeIndentation(h);if(!i.startsWith(c,p)){r[a]=new o.ReplaceCommand(new d.Range(u.startLineNumber,1,u.startLineNumber,c.length+1),p,!0);continue}}r[a]=this._replaceJumpToNextIndent(e,t,u,!0)}else{if(u.startLineNumber===u.endLineNumber){var g=t.getLineMaxColumn(u.startLineNumber);if(1!==u.startColumn||u.endColumn!==g){r[a]=this._replaceJumpToNextIndent(e,t,u,!1);continue}}r[a]=new s.ShiftCommand(u,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,\nautoIndent:e.autoIndent})}}return r},e.replacePreviousChar=function(e,t,n,i,r,s){for(var a=[],u=0,c=i.length;u<c;u++){var h=i[u];if(h.isEmpty()){var p=h.getPosition(),g=Math.max(1,p.column-s),f=new d.Range(p.lineNumber,g,p.lineNumber,p.column);a[u]=new o.ReplaceCommand(f,r)}else a[u]=null}return new l.EditOperationResult(1,a,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e._typeCommand=function(e,t,n){return n?new o.ReplaceCommandWithoutChangingPosition(e,t,!0):new o.ReplaceCommand(e,t,!0)},e._enter=function(t,n,r,s){if(0===t.autoIndent)return e._typeCommand(s,\"\\n\",r);if(!n.isCheapToTokenize(s.getStartPosition().lineNumber)||1===t.autoIndent){var a=n.getLineContent(s.startLineNumber),u=i.getLeadingWhitespace(a).substring(0,s.startColumn-1);return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(u),r)}var c=p.LanguageConfigurationRegistry.getEnterAction(t.autoIndent,n,s);if(c){\nif(c.indentAction===h.IndentAction.None)return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(c.indentation+c.appendText),r);if(c.indentAction===h.IndentAction.Indent)return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(c.indentation+c.appendText),r);if(c.indentAction===h.IndentAction.IndentOutdent){var g=t.normalizeIndentation(c.indentation),f=t.normalizeIndentation(c.indentation+c.appendText),m=\"\\n\"+f+\"\\n\"+g;return r?new o.ReplaceCommandWithoutChangingPosition(s,m,!0):new o.ReplaceCommandWithOffsetCursorState(s,m,-1,f.length-g.length,!0)}if(c.indentAction===h.IndentAction.Outdent){var v=e.unshiftIndent(t,c.indentation);return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(v+c.appendText),r)}}var _=n.getLineContent(s.startLineNumber),y=i.getLeadingWhitespace(_).substring(0,s.startColumn-1);if(t.autoIndent>=4){var C=p.LanguageConfigurationRegistry.getIndentForEnter(t.autoIndent,n,s,{unshiftIndent:function(n){return e.unshiftIndent(t,n)},shiftIndent:function(n){return e.shiftIndent(t,n)},\nnormalizeIndentation:function(e){return t.normalizeIndentation(e)}});if(C){var b=l.CursorColumns.visibleColumnFromColumn2(t,n,s.getEndPosition()),S=s.endColumn,w=\"\\n\";y!==t.normalizeIndentation(C.beforeEnter)&&(w=t.normalizeIndentation(C.beforeEnter)+_.substring(y.length,s.startColumn-1)+\"\\n\",s=new d.Range(s.startLineNumber,1,s.endLineNumber,s.endColumn));var E=n.getLineContent(s.endLineNumber),L=i.firstNonWhitespaceIndex(E);if(s=L>=0?s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,L+1)):s.setEndPosition(s.endLineNumber,n.getLineMaxColumn(s.endLineNumber)),r)return new o.ReplaceCommandWithoutChangingPosition(s,w+t.normalizeIndentation(C.afterEnter),!0);var D=0;return S<=L+1&&(t.insertSpaces||(b=Math.ceil(b/t.indentSize)),D=Math.min(b+1-t.normalizeIndentation(C.afterEnter).length-1,0)),new o.ReplaceCommandWithOffsetCursorState(s,w+t.normalizeIndentation(C.afterEnter),0,D,!0)}}return e._typeCommand(s,\"\\n\"+t.normalizeIndentation(y),r)},e._isAutoIndentType=function(e,t,n){if(e.autoIndent<4)return!1\n;for(var i=0,o=n.length;i<o;i++)if(!t.isCheapToTokenize(n[i].getEndPosition().lineNumber))return!1;return!0},e._runAutoIndentType=function(t,n,i,o){var r=p.LanguageConfigurationRegistry.getIndentationAtPosition(n,i.startLineNumber,i.startColumn),s=p.LanguageConfigurationRegistry.getIndentActionForType(t.autoIndent,n,i,o,{shiftIndent:function(n){return e.shiftIndent(t,n)},unshiftIndent:function(n){return e.unshiftIndent(t,n)}});if(null===s)return null;if(s!==t.normalizeIndentation(r)){var a=n.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===a?e._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(s)+o,!1):e._typeCommand(new d.Range(i.startLineNumber,0,i.endLineNumber,i.endColumn),t.normalizeIndentation(s)+n.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+o,!1)}return null},e._isAutoClosingOvertype=function(e,t,n,i,o){if(\"never\"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairsClose2.has(o))return!1;for(var r=0,s=n.length;r<s;r++){\nvar a=n[r];if(!a.isEmpty())return!1;var u=a.getPosition(),d=t.getLineContent(u.lineNumber);if(d.charAt(u.column-1)!==o)return!1;var c=l.isQuote(o);if(92===(u.column>2?d.charCodeAt(u.column-2):0)&&c)return!1;if(\"auto\"===e.autoClosingOvertype){for(var h=!1,p=0,g=i.length;p<g;p++){var f=i[p];if(u.lineNumber===f.startLineNumber&&u.column===f.startColumn){h=!0;break}}if(!h)return!1}}return!0},e._runAutoClosingOvertype=function(e,t,n,i,r){for(var s=[],a=0,u=i.length;a<u;a++){var c=i[a].getPosition(),h=new d.Range(c.lineNumber,c.column,c.lineNumber,c.column+1);s[a]=new o.ReplaceCommand(h,r)}return new l.EditOperationResult(1,s,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e._autoClosingPairIsSymmetric=function(e){var t=e.open,n=e.close;return t.indexOf(n)>=0||n.indexOf(t)>=0},e._isBeforeClosingBrace=function(t,n,i){var o=t.autoClosingPairsClose2.get(i);if(!o)return!1;for(var r=e._autoClosingPairIsSymmetric(n),s=0,a=o;s<a.length;s++){var l=a[s],u=e._autoClosingPairIsSymmetric(l)\n;if(r||!u)return!0}return!1},e._findAutoClosingPairOpen=function(e,t,n,i){var o=e.autoClosingPairsOpen2.get(i);if(!o)return null;for(var r=null,s=0,a=o;s<a.length;s++){var l=a[s];if(null===r||l.open.length>r.open.length){for(var u=!0,c=0,h=n;c<h.length;c++){var p=h[c];if(t.getValueInRange(new d.Range(p.lineNumber,p.column-l.open.length+1,p.lineNumber,p.column))+i!==l.open){u=!1;break}}u&&(r=l)}}return r},e._isAutoClosingOpenCharType=function(t,i,o,r,s){var a=l.isQuote(r),d=a?t.autoClosingQuotes:t.autoClosingBrackets;if(\"never\"===d)return null;var c=this._findAutoClosingPairOpen(t,i,o.map((function(e){return e.getPosition()})),r);if(!c)return null;for(var h=a?t.shouldAutoCloseBefore.quote:t.shouldAutoCloseBefore.bracket,g=0,f=o.length;g<f;g++){var m=o[g];if(!m.isEmpty())return null;var v=m.getPosition(),_=i.getLineContent(v.lineNumber);if(_.length>v.column-1){var y=_.charAt(v.column-1);if(!e._isBeforeClosingBrace(t,c,y)&&!h(y))return null}if(!i.isCheapToTokenize(v.lineNumber))return null\n;if(1===c.open.length&&a&&\"always\"!==d){var C=u.getMapForWordSeparators(t.wordSeparators);if(s&&v.column>1&&0===C.get(_.charCodeAt(v.column-2)))return null;if(!s&&v.column>2&&0===C.get(_.charCodeAt(v.column-3)))return null}i.forceTokenization(v.lineNumber);var b=i.getLineTokens(v.lineNumber),S=!1;try{S=p.LanguageConfigurationRegistry.shouldAutoClosePair(c,b,s?v.column:v.column-1)}catch(e){n.onUnexpectedError(e)}if(!S)return null}return c},e._runAutoClosingOpenCharType=function(e,t,n,i,o,r,s){for(var a=[],u=0,d=i.length;u<d;u++){var c=i[u];a[u]=new f(c,o,r,s.close)}return new l.EditOperationResult(1,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})},e._shouldSurroundChar=function(e,t){return l.isQuote(t)?\"quotes\"===e.autoSurround||\"languageDefined\"===e.autoSurround:\"brackets\"===e.autoSurround||\"languageDefined\"===e.autoSurround},e._isSurroundSelectionType=function(t,n,i,o){if(!e._shouldSurroundChar(t,o)||!t.surroundingPairs.hasOwnProperty(o))return!1\n;for(var r=l.isQuote(o),s=0,a=i.length;s<a;s++){var u=i[s];if(u.isEmpty())return!1;for(var d=!0,c=u.startLineNumber;c<=u.endLineNumber;c++){var h=n.getLineContent(c),p=c===u.startLineNumber?u.startColumn-1:0,g=c===u.endLineNumber?u.endColumn-1:h.length,f=h.substring(p,g);if(/[^ \\t]/.test(f)){d=!1;break}}if(d)return!1;if(r&&u.startLineNumber===u.endLineNumber&&u.startColumn+1===u.endColumn){var m=n.getValueInRange(u);if(l.isQuote(m))return!1}}return!0},e._runSurroundSelectionType=function(e,t,n,i,o){for(var r=[],s=0,u=i.length;s<u;s++){var d=i[s],c=t.surroundingPairs[o];r[s]=new a.SurroundSelectionCommand(d,o,c)}return new l.EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e._isTypeInterceptorElectricChar=function(e,t,n){return!(1!==n.length||!t.isCheapToTokenize(n[0].getEndPosition().lineNumber))},e._typeInterceptorElectricChar=function(e,t,r,s,a){if(!t.electricChars.hasOwnProperty(a)||!s.isEmpty())return null;var u=s.getPosition();r.forceTokenization(u.lineNumber)\n;var c,h=r.getLineTokens(u.lineNumber);try{c=p.LanguageConfigurationRegistry.onElectricCharacter(a,h,u.column)}catch(e){return n.onUnexpectedError(e),null}if(!c)return null;if(c.matchOpenBracket){var g=(h.getLineContent()+a).lastIndexOf(c.matchOpenBracket)+1,f=r.findMatchingBracketUp(c.matchOpenBracket,{lineNumber:u.lineNumber,column:g});if(f){if(f.startLineNumber===u.lineNumber)return null;var m=r.getLineContent(f.startLineNumber),v=i.getLeadingWhitespace(m),_=t.normalizeIndentation(v),y=r.getLineContent(u.lineNumber),C=r.getLineFirstNonWhitespaceColumn(u.lineNumber)||u.column,b=_+y.substring(C-1,u.column-1)+a,S=new d.Range(u.lineNumber,1,u.lineNumber,u.column),w=new o.ReplaceCommand(S,b);return new l.EditOperationResult(1,[w],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null},e.compositionEndWithInterceptors=function(e,t,n,i,r,s){if(!i||c.Selection.selectionsArrEqual(i,r))return null;for(var a=null,u=0,h=r;u<h.length;u++){var p=h[u];if(!p.isEmpty())return null\n;var g=p.getPosition(),f=n.getValueInRange(new d.Range(g.lineNumber,g.column-1,g.lineNumber,g.column));if(null===a)a=f;else if(a!==f)return null}if(!a)return null;if(this._isAutoClosingOvertype(t,n,r,s,a)){var m=r.map((function(e){return new o.ReplaceCommand(new d.Range(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),\"\",!1)}));return new l.EditOperationResult(1,m,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}var v=this._isAutoClosingOpenCharType(t,n,r,a,!1);return v?this._runAutoClosingOpenCharType(e,t,n,r,a,!1,v):null},e.typeWithInterceptors=function(t,n,i,r,s,a){if(\"\\n\"===a){for(var u=[],d=0,c=r.length;d<c;d++)u[d]=e._enter(n,i,!1,r[d]);return new l.EditOperationResult(1,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoIndentType(n,i,r)){var h=[],p=!1;for(d=0,c=r.length;d<c;d++)if(h[d]=this._runAutoIndentType(n,i,r[d],a),!h[d]){p=!0;break}if(!p)return new l.EditOperationResult(1,h,{shouldPushStackElementBefore:!0,\nshouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(n,i,r,s,a))return this._runAutoClosingOvertype(t,n,i,r,a);var g=this._isAutoClosingOpenCharType(n,i,r,a,!0);if(g)return this._runAutoClosingOpenCharType(t,n,i,r,a,!0,g);if(this._isSurroundSelectionType(n,i,r,a))return this._runSurroundSelectionType(t,n,i,r,a);if(this._isTypeInterceptorElectricChar(n,i,r)){var f=this._typeInterceptorElectricChar(t,n,i,r[0],a);if(f)return f}var m=[];for(d=0,c=r.length;d<c;d++)m[d]=new o.ReplaceCommand(r[d],a);var v=1!==t;return\" \"===a&&(v=!0),new l.EditOperationResult(1,m,{shouldPushStackElementBefore:v,shouldPushStackElementAfter:!1})},e.typeWithoutInterceptors=function(e,t,n,i,r){for(var s=[],a=0,u=i.length;a<u;a++)s[a]=new o.ReplaceCommand(i[a],r);return new l.EditOperationResult(1,s,{shouldPushStackElementBefore:1!==e,shouldPushStackElementAfter:!1})},e.lineInsertBefore=function(e,t,n){if(null===t||null===n)return[];for(var i=[],r=0,s=n.length;r<s;r++){var a=n[r].positionLineNumber\n;if(1===a)i[r]=new o.ReplaceCommandWithoutChangingPosition(new d.Range(1,1,1,1),\"\\n\");else{a--;var l=t.getLineMaxColumn(a);i[r]=this._enter(e,t,!1,new d.Range(a,l,a,l))}}return i},e.lineInsertAfter=function(e,t,n){if(null===t||null===n)return[];for(var i=[],o=0,r=n.length;o<r;o++){var s=n[o].positionLineNumber,a=t.getLineMaxColumn(s);i[o]=this._enter(e,t,!1,new d.Range(s,a,s,a))}return i},e.lineBreakInsert=function(e,t,n){for(var i=[],o=0,r=n.length;o<r;o++)i[o]=this._enter(e,t,!0,n[o]);return i},e}();t.TypeOperations=g;var f=function(e){function t(t,n,i,o){var r=e.call(this,t,(i?n:\"\")+o,0,-o.length)||this;return r._openCharacter=n,r._closeCharacter=o,r.closeCharacterRange=null,r.enclosingRange=null,r}return r(t,e),t.prototype.computeCursorState=function(t,n){var i=n.getInverseEditOperations()[0].range;return this.closeCharacterRange=new d.Range(i.startLineNumber,i.endColumn-this._closeCharacter.length,i.endLineNumber,i.endColumn),\nthis.enclosingRange=new d.Range(i.startLineNumber,i.endColumn-this._openCharacter.length-this._closeCharacter.length,i.endLineNumber,i.endColumn),e.prototype.computeCursorState.call(this,t,n)},t}(o.ReplaceCommandWithOffsetCursorState);t.TypeWithAutoClosingCommand=f})),define(n[160],i([0,1,5,40,89,13,3]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(){}return e._createWord=function(e,t,n,i,o){return{start:i,end:o,wordType:t,nextCharClass:n}},e._findPreviousWordOnLine=function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(i,e,n)},e._doFindPreviousWordOnLine=function(e,t,n){for(var i=0,o=n.column-2;o>=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(0===s){if(2===i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1));i=1}else if(2===s){if(1===i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1));i=2}else if(1===s&&0!==i)return this._createWord(e,i,s,o+1,this._findEndOfWord(e,t,i,o+1))}\nreturn 0!==i?this._createWord(e,i,1,0,this._findEndOfWord(e,t,i,0)):null},e._findEndOfWord=function(e,t,n,i){for(var o=e.length,r=i;r<o;r++){var s=e.charCodeAt(r),a=t.get(s);if(1===a)return r;if(1===n&&2===a)return r;if(2===n&&0===a)return r}return o},e._findNextWordOnLine=function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindNextWordOnLine(i,e,n)},e._doFindNextWordOnLine=function(e,t,n){for(var i=0,o=e.length,r=n.column-1;r<o;r++){var s=e.charCodeAt(r),a=t.get(s);if(0===a){if(2===i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r);i=1}else if(2===a){if(1===i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r);i=2}else if(1===a&&0!==i)return this._createWord(e,i,a,this._findStartOfWord(e,t,i,r-1),r)}return 0!==i?this._createWord(e,i,1,this._findStartOfWord(e,t,i,o-1),o):null},e._findStartOfWord=function(e,t,n,i){for(var o=i;o>=0;o--){var r=e.charCodeAt(o),s=t.get(r);if(1===s)return o+1;if(1===n&&2===s)return o+1;if(2===n&&0===s)return o+1}return 0},\ne.moveWordLeft=function(t,n,i,o){var r=i.lineNumber,a=i.column,l=!1;1===a&&r>1&&(l=!0,r-=1,a=n.getLineMaxColumn(r));var u=e._findPreviousWordOnLine(t,n,new s.Position(r,a));if(0===o){if(u&&!l)if(n.getLineLastNonWhitespaceColumn(r)<a)return new s.Position(r,u.end+1);return new s.Position(r,u?u.start+1:1)}if(1===o)return u&&2===u.wordType&&u.end-u.start==1&&0===u.nextCharClass&&(u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1))),new s.Position(r,u?u.start+1:1);if(3===o){for(;u&&2===u.wordType;)u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1));return new s.Position(r,u?u.start+1:1)}return u&&a<=u.end+1&&(u=e._findPreviousWordOnLine(t,n,new s.Position(r,u.start+1))),new s.Position(r,u?u.end+1:1)},e._moveWordPartLeft=function(e,t){var i=t.lineNumber,o=e.getLineMaxColumn(i);if(1===t.column)return i>1?new s.Position(i-1,e.getLineMaxColumn(i-1)):t;for(var r=e.getLineContent(i),a=t.column-1;a>1;a--){var l=r.charCodeAt(a-2),u=r.charCodeAt(a-1);if(95!==l&&95===u)return new s.Position(i,a)\n;if(n.isLowerAsciiLetter(l)&&n.isUpperAsciiLetter(u))return new s.Position(i,a);if(n.isUpperAsciiLetter(l)&&n.isUpperAsciiLetter(u)&&a+1<o){var d=r.charCodeAt(a);if(n.isLowerAsciiLetter(d))return new s.Position(i,a)}}return new s.Position(i,1)},e.moveWordRight=function(t,n,i,o){var r=i.lineNumber,a=i.column,l=!1;a===n.getLineMaxColumn(r)&&r<n.getLineCount()&&(l=!0,r+=1,a=1);var u=e._findNextWordOnLine(t,n,new s.Position(r,a));if(2===o)u&&2===u.wordType&&u.end-u.start==1&&0===u.nextCharClass&&(u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1))),a=u?u.end+1:n.getLineMaxColumn(r);else if(3===o){for(l&&(a=0);u&&(2===u.wordType||u.start+1<=a);)u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1));a=u?u.start+1:n.getLineMaxColumn(r)}else u&&!l&&a>=u.start+1&&(u=e._findNextWordOnLine(t,n,new s.Position(r,u.end+1))),a=u?u.start+1:n.getLineMaxColumn(r);return new s.Position(r,a)},e._moveWordPartRight=function(e,t){var i=t.lineNumber,o=e.getLineMaxColumn(i)\n;if(t.column===o)return i<e.getLineCount()?new s.Position(i+1,1):t;for(var r=e.getLineContent(i),a=t.column+1;a<o;a++){var l=r.charCodeAt(a-2),u=r.charCodeAt(a-1);if(95===l&&95!==u)return new s.Position(i,a);if(n.isLowerAsciiLetter(l)&&n.isUpperAsciiLetter(u))return new s.Position(i,a);if(n.isUpperAsciiLetter(l)&&n.isUpperAsciiLetter(u)&&a+1<o){var d=r.charCodeAt(a);if(n.isLowerAsciiLetter(d))return new s.Position(i,a)}}return new s.Position(i,o)},e._deleteWordLeftWhitespace=function(e,t){var i=e.getLineContent(t.lineNumber),o=t.column-2,r=n.lastNonWhitespaceIndex(i,o);return r+1<o?new a.Range(t.lineNumber,r+2,t.lineNumber,t.column):null},e.deleteWordLeft=function(t,n,i,o,r){if(!i.isEmpty())return i;var l=new s.Position(i.positionLineNumber,i.positionColumn),u=l.lineNumber,d=l.column;if(1===u&&1===d)return null;if(o){var c=this._deleteWordLeftWhitespace(n,l);if(c)return c}var h=e._findPreviousWordOnLine(t,n,l);return 0===r?h?d=h.start+1:d>1?d=1:(u--,\nd=n.getLineMaxColumn(u)):(h&&d<=h.end+1&&(h=e._findPreviousWordOnLine(t,n,new s.Position(u,h.start+1))),h?d=h.end+1:d>1?d=1:(u--,d=n.getLineMaxColumn(u))),new a.Range(u,d,l.lineNumber,l.column)},e._deleteWordPartLeft=function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),o=e._moveWordPartLeft(t,i);return new a.Range(i.lineNumber,i.column,o.lineNumber,o.column)},e._findFirstNonWhitespaceChar=function(e,t){for(var n=e.length,i=t;i<n;i++){var o=e.charAt(i);if(\" \"!==o&&\"\\t\"!==o)return i}return n},e._deleteWordRightWhitespace=function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-1,o=this._findFirstNonWhitespaceChar(n,i);return i+1<o?new a.Range(t.lineNumber,t.column,t.lineNumber,o+1):null},e.deleteWordRight=function(t,n,i,o,r){if(!i.isEmpty())return i;var l=new s.Position(i.positionLineNumber,i.positionColumn),u=l.lineNumber,d=l.column,c=n.getLineCount(),h=n.getLineMaxColumn(u);if(u===c&&d===h)return null;if(o){var p=this._deleteWordRightWhitespace(n,l);if(p)return p}\nvar g=e._findNextWordOnLine(t,n,l);return 2===r?g?d=g.end+1:d<h||u===c?d=h:(u++,d=(g=e._findNextWordOnLine(t,n,new s.Position(u,1)))?g.start+1:n.getLineMaxColumn(u)):(g&&d>=g.start+1&&(g=e._findNextWordOnLine(t,n,new s.Position(u,g.end+1))),g?d=g.start+1:d<h||u===c?d=h:(u++,d=(g=e._findNextWordOnLine(t,n,new s.Position(u,1)))?g.start+1:n.getLineMaxColumn(u))),new a.Range(u,d,l.lineNumber,l.column)},e._deleteWordPartRight=function(t,n){if(!n.isEmpty())return n;var i=n.getPosition(),o=e._moveWordPartRight(t,i);return new a.Range(i.lineNumber,i.column,o.lineNumber,o.column)},e.word=function(t,n,r,l,u){var d,c,h,p,g=o.getMapForWordSeparators(t.wordSeparators),f=e._findPreviousWordOnLine(g,n,u),m=e._findNextWordOnLine(g,n,u);if(!l)return f&&1===f.wordType&&f.start<=u.column-1&&u.column-1<=f.end?(d=f.start+1,c=f.end+1):m&&1===m.wordType&&m.start<=u.column-1&&u.column-1<=m.end?(d=m.start+1,c=m.end+1):(d=f?f.end+1:1,c=m?m.start+1:n.getLineMaxColumn(u.lineNumber)),\nnew i.SingleCursorState(new a.Range(u.lineNumber,d,u.lineNumber,c),0,new s.Position(u.lineNumber,c),0);f&&1===f.wordType&&f.start<u.column-1&&u.column-1<f.end?(h=f.start+1,p=f.end+1):m&&1===m.wordType&&m.start<u.column-1&&u.column-1<m.end?(h=m.start+1,p=m.end+1):(h=u.column,p=u.column);var v,_=u.lineNumber;if(r.selectionStart.containsPosition(u))v=r.selectionStart.endColumn;else if(u.isBeforeOrEqual(r.selectionStart.getStartPosition())){v=h;var y=new s.Position(_,v);r.selectionStart.containsPosition(y)&&(v=r.selectionStart.endColumn)}else{v=p;y=new s.Position(_,v);r.selectionStart.containsPosition(y)&&(v=r.selectionStart.startColumn)}return r.move(!0,_,v,0)},e}();t.WordOperations=l;var u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.deleteWordPartLeft=function(e,t,n,i){var o=d([l.deleteWordLeft(e,t,n,i,0),l.deleteWordLeft(e,t,n,i,2),l._deleteWordPartLeft(t,n)]);return o.sort(a.Range.compareRangesUsingEnds),o[2]},t.deleteWordPartRight=function(e,t,n,i){\nvar o=d([l.deleteWordRight(e,t,n,i,0),l.deleteWordRight(e,t,n,i,2),l._deleteWordPartRight(t,n)]);return o.sort(a.Range.compareRangesUsingStarts),o[0]},t.moveWordPartLeft=function(e,t,n){var i=d([l.moveWordLeft(e,t,n,0),l.moveWordLeft(e,t,n,2),l._moveWordPartLeft(t,n)]);return i.sort(s.Position.compare),i[2]},t.moveWordPartRight=function(e,t,n){var i=d([l.moveWordRight(e,t,n,0),l.moveWordRight(e,t,n,2),l._moveWordPartRight(t,n)]);return i.sort(s.Position.compare),i[0]},t}(l);function d(e){return e.filter((function(e){return Boolean(e)}))}t.WordPartOperations=u})),define(n[213],i([0,1,21,40,158,160,13,3]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(){function e(){}return e.addCursorDown=function(e,t,n){for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a];r[s++]=new i.CursorState(u.modelState,u.viewState),\nr[s++]=n?i.CursorState.fromModelState(o.MoveOperations.translateDown(e.config,e.model,u.modelState)):i.CursorState.fromViewState(o.MoveOperations.translateDown(e.config,e.viewModel,u.viewState))}return r},e.addCursorUp=function(e,t,n){for(var r=[],s=0,a=0,l=t.length;a<l;a++){var u=t[a];r[s++]=new i.CursorState(u.modelState,u.viewState),r[s++]=n?i.CursorState.fromModelState(o.MoveOperations.translateUp(e.config,e.model,u.modelState)):i.CursorState.fromViewState(o.MoveOperations.translateUp(e.config,e.viewModel,u.viewState))}return r},e.moveToBeginningOfLine=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o];i[o]=this._moveToLineStart(e,s,n)}return i},e._moveToLineStart=function(e,t,n){var i=t.viewState.position.column,o=i===t.modelState.position.column,r=t.viewState.position.lineNumber,s=e.viewModel.getLineFirstNonWhitespaceColumn(r);return o||i===s?this._moveToLineStartByModel(e,t,n):this._moveToLineStartByView(e,t,n)},e._moveToLineStartByView=function(e,t,n){\nreturn i.CursorState.fromViewState(o.MoveOperations.moveToBeginningOfLine(e.config,e.viewModel,t.viewState,n))},e._moveToLineStartByModel=function(e,t,n){return i.CursorState.fromModelState(o.MoveOperations.moveToBeginningOfLine(e.config,e.model,t.modelState,n))},e.moveToEndOfLine=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o];i[o]=this._moveToLineEnd(e,s,n)}return i},e._moveToLineEnd=function(e,t,n){var i=t.viewState.position,o=e.viewModel.getLineMaxColumn(i.lineNumber),r=i.column===o,s=t.modelState.position,a=e.model.getLineMaxColumn(s.lineNumber),l=o-i.column==a-s.column;return r||l?this._moveToLineEndByModel(e,t,n):this._moveToLineEndByView(e,t,n)},e._moveToLineEndByView=function(e,t,n){return i.CursorState.fromViewState(o.MoveOperations.moveToEndOfLine(e.config,e.viewModel,t.viewState,n))},e._moveToLineEndByModel=function(e,t,n){return i.CursorState.fromModelState(o.MoveOperations.moveToEndOfLine(e.config,e.model,t.modelState,n))},e.expandLineSelection=function(e,t){\nfor(var n=[],o=0,r=t.length;o<r;o++){var l=t[o],u=l.modelState.selection.startLineNumber,d=e.model.getLineCount(),c=l.modelState.selection.endLineNumber,h=void 0;c===d?h=e.model.getLineMaxColumn(d):(c++,h=1),n[o]=i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(u,1,u,1),0,new s.Position(c,h),0))}return n},e.moveToBeginningOfBuffer=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s];r[s]=i.CursorState.fromModelState(o.MoveOperations.moveToBeginningOfBuffer(e.config,e.model,l.modelState,n))}return r},e.moveToEndOfBuffer=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s];r[s]=i.CursorState.fromModelState(o.MoveOperations.moveToEndOfBuffer(e.config,e.model,l.modelState,n))}return r},e.selectAll=function(e,t){var n=e.model.getLineCount(),o=e.model.getLineMaxColumn(n);return i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(1,1,1,1),0,new s.Position(n,o),0))},e.line=function(e,t,n,o,r){\nvar l=e.model.validatePosition(o),u=r?e.validateViewPosition(new s.Position(r.lineNumber,r.column),l):e.convertModelPositionToViewPosition(l);if(!n||!t.modelState.hasSelection()){var d=e.model.getLineCount(),c=l.lineNumber+1,h=1;return c>d&&(c=d,h=e.model.getLineMaxColumn(c)),i.CursorState.fromModelState(new i.SingleCursorState(new a.Range(l.lineNumber,1,c,h),0,new s.Position(c,h),0))}var p=t.modelState.selectionStart.getStartPosition().lineNumber;if(l.lineNumber<p)return i.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),u.lineNumber,1,0));if(l.lineNumber>p){d=e.viewModel.getLineCount();var g=u.lineNumber+1,f=1;return g>d&&(g=d,f=e.viewModel.getLineMaxColumn(g)),i.CursorState.fromViewState(t.viewState.move(t.modelState.hasSelection(),g,f,0))}var m=t.modelState.selectionStart.getEndPosition();return i.CursorState.fromModelState(t.modelState.move(t.modelState.hasSelection(),m.lineNumber,m.column,0))},e.word=function(e,t,n,o){var s=e.model.validatePosition(o)\n;return i.CursorState.fromModelState(r.WordOperations.word(e.config,e.model,t.modelState,n,s))},e.cancelSelection=function(e,t){if(!t.modelState.hasSelection())return new i.CursorState(t.modelState,t.viewState);var n=t.viewState.position.lineNumber,o=t.viewState.position.column;return i.CursorState.fromViewState(new i.SingleCursorState(new a.Range(n,o,n,o),0,new s.Position(n,o),0))},e.moveTo=function(e,t,n,o,r){var a=e.model.validatePosition(o),l=r?e.validateViewPosition(new s.Position(r.lineNumber,r.column),a):e.convertModelPositionToViewPosition(a);return i.CursorState.fromViewState(t.viewState.move(n,l.lineNumber,l.column,0))},e.move=function(e,t,n){var i=n.select,o=n.value;switch(n.direction){case 0:return 4===n.unit?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,o);case 1:return 4===n.unit?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,o);case 2:return 2===n.unit?this._moveUpByViewLines(e,t,i,o):this._moveUpByModelLines(e,t,i,o);case 3:\nreturn 2===n.unit?this._moveDownByViewLines(e,t,i,o):this._moveDownByModelLines(e,t,i,o);case 4:return this._moveToViewMinColumn(e,t,i);case 5:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 6:return this._moveToViewCenterColumn(e,t,i);case 7:return this._moveToViewMaxColumn(e,t,i);case 8:return this._moveToViewLastNonWhitespaceColumn(e,t,i);case 9:var r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._firstLineNumberInRange(e.model,s,o),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 11:r=t[0],s=e.getCompletelyVisibleModelRange(),a=this._lastLineNumberInRange(e.model,s,o),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 10:r=t[0],s=e.getCompletelyVisibleModelRange(),a=Math.round((s.startLineNumber+s.endLineNumber)/2),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,r,i,a,l)];case 12:for(var u=e.getCompletelyVisibleViewRange(),d=[],c=0,h=t.length;c<h;c++){r=t[c]\n;d[c]=this.findPositionInViewportIfOutside(e,r,u,i)}return d}return null},e.findPositionInViewportIfOutside=function(e,t,n,o){var r=t.viewState.position.lineNumber;if(n.startLineNumber<=r&&r<=n.endLineNumber-1)return new i.CursorState(t.modelState,t.viewState);r>n.endLineNumber-1&&(r=n.endLineNumber-1),r<n.startLineNumber&&(r=n.startLineNumber);var s=e.viewModel.getLineFirstNonWhitespaceColumn(r);return this._moveToViewPosition(e,t,o,r,s)},e._firstLineNumberInRange=function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.min(t.endLineNumber,i+n-1)},e._lastLineNumberInRange=function(e,t,n){var i=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(i)&&i++,Math.max(i,t.endLineNumber-n+1)},e._moveLeft=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a],d=o.MoveOperations.moveLeft(e.config,e.viewModel,u.viewState,n,r)\n;if(1===r&&d.position.lineNumber!==u.viewState.position.lineNumber)e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(d.position).lineNumber===u.modelState.position.lineNumber&&(d=o.MoveOperations.moveLeft(e.config,e.viewModel,d,n,1));s[a]=i.CursorState.fromViewState(d)}return s},e._moveHalfLineLeft=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s],u=l.viewState.position.lineNumber,d=Math.round(e.viewModel.getLineContent(u).length/2);r[s]=i.CursorState.fromViewState(o.MoveOperations.moveLeft(e.config,e.viewModel,l.viewState,n,d))}return r},e._moveRight=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a],d=o.MoveOperations.moveRight(e.config,e.viewModel,u.viewState,n,r);if(1===r&&d.position.lineNumber!==u.viewState.position.lineNumber)e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(d.position).lineNumber===u.modelState.position.lineNumber&&(d=o.MoveOperations.moveRight(e.config,e.viewModel,d,n,1));s[a]=i.CursorState.fromViewState(d)}return s},\ne._moveHalfLineRight=function(e,t,n){for(var r=[],s=0,a=t.length;s<a;s++){var l=t[s],u=l.viewState.position.lineNumber,d=Math.round(e.viewModel.getLineContent(u).length/2);r[s]=i.CursorState.fromViewState(o.MoveOperations.moveRight(e.config,e.viewModel,l.viewState,n,d))}return r},e._moveDownByViewLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromViewState(o.MoveOperations.moveDown(e.config,e.viewModel,u.viewState,n,r))}return s},e._moveDownByModelLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromModelState(o.MoveOperations.moveDown(e.config,e.model,u.modelState,n,r))}return s},e._moveUpByViewLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a];s[a]=i.CursorState.fromViewState(o.MoveOperations.moveUp(e.config,e.viewModel,u.viewState,n,r))}return s},e._moveUpByModelLines=function(e,t,n,r){for(var s=[],a=0,l=t.length;a<l;a++){var u=t[a]\n;s[a]=i.CursorState.fromModelState(o.MoveOperations.moveUp(e.config,e.model,u.modelState,n,r))}return s},e._moveToViewPosition=function(e,t,n,o,r){return i.CursorState.fromViewState(t.viewState.move(n,o,r,0))},e._moveToModelPosition=function(e,t,n,o,r){return i.CursorState.fromModelState(t.modelState.move(n,o,r,0))},e._moveToViewMinColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineMinColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewFirstNonWhitespaceColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineFirstNonWhitespaceColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewCenterColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=Math.round((e.viewModel.getLineMaxColumn(a)+e.viewModel.getLineMinColumn(a))/2);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},\ne._moveToViewMaxColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineMaxColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e._moveToViewLastNonWhitespaceColumn=function(e,t,n){for(var i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=s.viewState.position.lineNumber,l=e.viewModel.getLineLastNonWhitespaceColumn(a);i[o]=this._moveToViewPosition(e,s,n,a,l)}return i},e}();t.CursorMoveCommands=l,function(e){e.description={description:\"Move cursor to a logical position in the view\",args:[{name:\"Cursor move argument object\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory logical position value providing where to move the cursor.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'left', 'right', 'up', 'down'\\n\\t\\t\\t\\t\\t\\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\\n\\t\\t\\t\\t\\t\\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\\n\\t\\t\\t\\t\\t\\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'character', 'halfLine'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'select': If 'true' makes the selection. Default is 'false'.\\n\\t\\t\\t\\t\",constraint:function(e){if(!n.isObject(e))return!1;var t=e\n;return!!n.isString(t.to)&&(!(!n.isUndefined(t.select)&&!n.isBoolean(t.select))&&(!(!n.isUndefined(t.by)&&!n.isString(t.by))&&!(!n.isUndefined(t.value)&&!n.isNumber(t.value))))},schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"left\",\"right\",\"up\",\"down\",\"wrappedLineStart\",\"wrappedLineEnd\",\"wrappedLineColumnCenter\",\"wrappedLineFirstNonWhitespaceCharacter\",\"wrappedLineLastNonWhitespaceCharacter\",\"viewPortTop\",\"viewPortCenter\",\"viewPortBottom\",\"viewPortIfOutside\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"character\",\"halfLine\"]},value:{type:\"number\",default:1},select:{type:\"boolean\",default:!1}}}}]},e.RawDirection={Left:\"left\",Right:\"right\",Up:\"up\",Down:\"down\",WrappedLineStart:\"wrappedLineStart\",WrappedLineFirstNonWhitespaceCharacter:\"wrappedLineFirstNonWhitespaceCharacter\",WrappedLineColumnCenter:\"wrappedLineColumnCenter\",WrappedLineEnd:\"wrappedLineEnd\",WrappedLineLastNonWhitespaceCharacter:\"wrappedLineLastNonWhitespaceCharacter\",ViewPortTop:\"viewPortTop\",\nViewPortCenter:\"viewPortCenter\",ViewPortBottom:\"viewPortBottom\",ViewPortIfOutside:\"viewPortIfOutside\"},e.RawUnit={Line:\"line\",WrappedLine:\"wrappedLine\",Character:\"character\",HalfLine:\"halfLine\"},e.parse=function(t){if(!t.to)return null;var n;switch(t.to){case e.RawDirection.Left:n=0;break;case e.RawDirection.Right:n=1;break;case e.RawDirection.Up:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.WrappedLineStart:n=4;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=5;break;case e.RawDirection.WrappedLineColumnCenter:n=6;break;case e.RawDirection.WrappedLineEnd:n=7;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=8;break;case e.RawDirection.ViewPortTop:n=9;break;case e.RawDirection.ViewPortBottom:n=11;break;case e.RawDirection.ViewPortCenter:n=10;break;case e.RawDirection.ViewPortIfOutside:n=12;break;default:return null}var i=0;switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Character:i=3;break\n;case e.RawUnit.HalfLine:i=4}return{direction:n,unit:i,select:!!t.select,value:t.value||1}}}(t.CursorMove||(t.CursorMove={}))})),define(n[484],i([0,1,40,13,3,22]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new n.SingleCursorState(new o.Range(1,1,1,1),0,new i.Position(1,1),0),new n.SingleCursorState(new o.Range(1,1,1,1),0,new i.Position(1,1),0))}return e.prototype.dispose=function(e){this._removeTrackedRange(e)},e.prototype.startTrackingSelection=function(e){this._trackSelection=!0,this._updateTrackedRange(e)},e.prototype.stopTrackingSelection=function(e){this._trackSelection=!1,this._removeTrackedRange(e)},e.prototype._updateTrackedRange=function(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))},e.prototype._removeTrackedRange=function(e){\nthis._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)},e.prototype.asCursorState=function(){return new n.CursorState(this.modelState,this.viewState)},e.prototype.readSelectionFromMarkers=function(e){var t=e.model._getTrackedRange(this._selTrackedRange);return 0===this.modelState.selection.getDirection()?new r.Selection(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new r.Selection(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)},e.prototype.ensureValidState=function(e){this._setState(e,this.modelState,this.viewState)},e.prototype.setState=function(e,t,n){this._setState(e,t,n)},e.prototype._setState=function(e,t,r){if(t){l=e.model.validateRange(t.selectionStart);var s=t.selectionStart.equalsRange(l)?t.selectionStartLeftoverVisibleColumns:0,a=(u=e.model.validatePosition(t.position),t.position.equals(u)?t.leftoverVisibleColumns:0);t=new n.SingleCursorState(l,s,u,a)}else{if(!r)return\n;var l=e.model.validateRange(e.convertViewRangeToModelRange(r.selectionStart)),u=e.model.validatePosition(e.convertViewPositionToModelPosition(r.position.lineNumber,r.position.column));t=new n.SingleCursorState(l,r.selectionStartLeftoverVisibleColumns,u,r.leftoverVisibleColumns)}if(r){h=e.validateViewRange(r.selectionStart,t.selectionStart),p=e.validateViewPosition(r.position,t.position);r=new n.SingleCursorState(h,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}else{var d=e.convertModelPositionToViewPosition(new i.Position(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),c=e.convertModelPositionToViewPosition(new i.Position(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),h=new o.Range(d.lineNumber,d.column,c.lineNumber,c.column),p=e.convertModelPositionToViewPosition(t.position);r=new n.SingleCursorState(h,t.selectionStartLeftoverVisibleColumns,p,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=r,this._updateTrackedRange(e)},e}();t.OneCursor=s})),\ndefine(n[485],i([0,1,40,484,22]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e){this.context=e,this.primaryCursor=new i.OneCursor(e),this.secondaryCursors=[],this.lastAddedCursorIndex=0}return e.prototype.dispose=function(){this.primaryCursor.dispose(this.context),this.killSecondaryCursors()},e.prototype.startTrackingSelections=function(){this.primaryCursor.startTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].startTrackingSelection(this.context)},e.prototype.stopTrackingSelections=function(){this.primaryCursor.stopTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].stopTrackingSelection(this.context)},e.prototype.updateContext=function(e){this.context=e},e.prototype.ensureValidState=function(){this.primaryCursor.ensureValidState(this.context)\n;for(var e=0,t=this.secondaryCursors.length;e<t;e++)this.secondaryCursors[e].ensureValidState(this.context)},e.prototype.readSelectionFromMarkers=function(){var e=[];e[0]=this.primaryCursor.readSelectionFromMarkers(this.context);for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].readSelectionFromMarkers(this.context);return e},e.prototype.getAll=function(){var e=[];e[0]=this.primaryCursor.asCursorState();for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].asCursorState();return e},e.prototype.getViewPositions=function(){var e=[];e[0]=this.primaryCursor.viewState.position;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.position;return e},e.prototype.getSelections=function(){var e=[];e[0]=this.primaryCursor.modelState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].modelState.selection;return e},e.prototype.getViewSelections=function(){var e=[]\n;e[0]=this.primaryCursor.viewState.selection;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t].viewState.selection;return e},e.prototype.setSelections=function(e){this.setStates(n.CursorState.fromModelSelections(e))},e.prototype.getPrimaryCursor=function(){return this.primaryCursor.asCursorState()},e.prototype.setStates=function(e){null!==e&&(this.primaryCursor.setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))},e.prototype._setSecondaryStates=function(e){var t=this.secondaryCursors.length,n=e.length;if(t<n)for(var i=n-t,o=0;o<i;o++)this._addSecondaryCursor();else if(t>n){var r=t-n;for(o=0;o<r;o++)this._removeSecondaryCursor(this.secondaryCursors.length-1)}for(o=0;o<n;o++)this.secondaryCursors[o].setState(this.context,e[o].modelState,e[o].viewState)},e.prototype.killSecondaryCursors=function(){this._setSecondaryStates([])},e.prototype._addSecondaryCursor=function(){this.secondaryCursors.push(new i.OneCursor(this.context)),\nthis.lastAddedCursorIndex=this.secondaryCursors.length},e.prototype.getLastAddedCursorIndex=function(){return 0===this.secondaryCursors.length||0===this.lastAddedCursorIndex?0:this.lastAddedCursorIndex},e.prototype._removeSecondaryCursor=function(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)},e.prototype._getAll=function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;t<n;t++)e[t+1]=this.secondaryCursors[t];return e},e.prototype.normalize=function(){if(0!==this.secondaryCursors.length){for(var e=this._getAll(),t=[],i=0,r=e.length;i<r;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort((function(e,t){return e.selection.startLineNumber===t.selection.startLineNumber?e.selection.startColumn-t.selection.startColumn:e.selection.startLineNumber-t.selection.startLineNumber}));for(var s=0;s<t.length-1;s++){var a=t[s],l=t[s+1],u=a.selection,d=l.selection\n;if(this.context.config.multiCursorMergeOverlapping){if(d.isEmpty()||u.isEmpty()?d.getStartPosition().isBeforeOrEqual(u.getEndPosition()):d.getStartPosition().isBefore(u.getEndPosition())){var c=a.index<l.index?s:s+1,h=a.index<l.index?s+1:s,p=t[h].index,g=t[c].index,f=t[h].selection,m=t[c].selection;if(!f.equalsSelection(m)){var v=f.plusRange(m),_=f.selectionStartLineNumber===f.startLineNumber&&f.selectionStartColumn===f.startColumn,y=m.selectionStartLineNumber===m.startLineNumber&&m.selectionStartColumn===m.startColumn,C=void 0;p===this.lastAddedCursorIndex?(C=_,this.lastAddedCursorIndex=g):C=y;var b=void 0;b=C?new o.Selection(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn):new o.Selection(v.endLineNumber,v.endColumn,v.startLineNumber,v.startColumn),t[c].selection=b;var S=n.CursorState.fromModelSelection(b);e[g].setState(this.context,S.modelState,S.viewState)}for(var w=0,E=t;w<E.length;w++){var L=E[w];L.index>p&&L.index--}e.splice(p,1),t.splice(h,1),this._removeSecondaryCursor(p-1),s--}}}}},e}()\n;t.CursorCollection=r})),define(n[486],i([0,1,10,4,5,485,40,212,159,3,22,68,81,2]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e,t,n,i,o,r){this.selections=e,this.modelVersionId=t,this.oldSelections=n,this.oldModelVersionId=i,this.source=o,this.reason=r};t.CursorStateChangedEvent=f;var m=function(){function e(e,t){this.modelVersionId=e.getVersionId(),this.cursorState=t.getAll()}return e.prototype.equals=function(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(var t=0,n=this.cursorState.length;t<n;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0},e}();t.CursorModelState=m;var v=function(){function e(e,t,n){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=n}return e.getAllAutoClosedCharacters=function(e){for(var t=[],n=0,i=e;n<i.length;n++){var o=i[n]\n;t=t.concat(o.getAutoClosedCharactersRanges())}return t},e.prototype.dispose=function(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])},e.prototype.getAutoClosedCharactersRanges=function(){for(var e=[],t=0;t<this._autoClosedCharactersDecorations.length;t++){var n=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);n&&e.push(n)}return e},e.prototype.isValid=function(e){for(var t=[],n=0;n<this._autoClosedEnclosingDecorations.length;n++){var i=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[n]);if(i&&(t.push(i),i.startLineNumber!==i.endLineNumber))return!1}t.sort(d.Range.compareRangesUsingStarts),e.sort(d.Range.compareRangesUsingStarts);for(n=0;n<e.length;n++){if(n>=t.length)return!1;if(!t[n].strictContainsRange(e[n]))return!1}return!0},e}(),_=function(e){function t(t,n,o){var r=e.call(this)||this\n;r._onDidReachMaxCursorCount=r._register(new i.Emitter),r.onDidReachMaxCursorCount=r._onDidReachMaxCursorCount.event,r._onDidAttemptReadOnlyEdit=r._register(new i.Emitter),r.onDidAttemptReadOnlyEdit=r._onDidAttemptReadOnlyEdit.event,r._onDidChange=r._register(new i.Emitter),r.onDidChange=r._onDidChange.event,r._configuration=t,r._model=n,r._knownModelVersionId=r._model.getVersionId(),r._viewModel=o,r.context=new a.CursorContext(r._configuration,r._model,r._viewModel),r._cursors=new s.CursorCollection(r.context),r._isHandling=!1,r._isDoingComposition=!1,r._selectionsWhenCompositionStarted=null,r._columnSelectData=null,r._autoClosedActions=[],r._prevEditOperationType=0,r._register(r._model.onDidChangeRawContent((function(e){if(r._knownModelVersionId=e.versionId,!r._isHandling){var t=e.containsEvent(1);r._onModelContentChanged(t)}}))),r._register(o.addEventListener((function(e){(function(e){for(var t=0,n=e.length;t<n;t++)if(8===e[t].type)return!0;return!1\n})(e)&&r._knownModelVersionId===r._model.getVersionId()&&r.setStates(\"viewModel\",0,r.getAll())})));var l=function(){r.context=new a.CursorContext(r._configuration,r._model,r._viewModel),r._cursors.updateContext(r.context)};return r._register(r._model.onDidChangeLanguage((function(e){l()}))),r._register(r._model.onDidChangeLanguageConfiguration((function(){l()}))),r._register(r._model.onDidChangeOptions((function(){l()}))),r._register(r._configuration.onDidChange((function(e){a.CursorConfiguration.shouldRecreate(e)&&l()}))),r}return r(t,e),t.prototype.dispose=function(){this._cursors.dispose(),this._autoClosedActions=g.dispose(this._autoClosedActions),e.prototype.dispose.call(this)},t.prototype._validateAutoClosedActions=function(){if(this._autoClosedActions.length>0)for(var e=this._cursors.getSelections(),t=0;t<this._autoClosedActions.length;t++){var n=this._autoClosedActions[t];n.isValid(e)||(n.dispose(),this._autoClosedActions.splice(t,1),t--)}},t.prototype.getPrimaryCursor=function(){\nreturn this._cursors.getPrimaryCursor()},t.prototype.getLastAddedCursorIndex=function(){return this._cursors.getLastAddedCursorIndex()},t.prototype.getAll=function(){return this._cursors.getAll()},t.prototype.setStates=function(e,n,i){null!==i&&i.length>t.MAX_CURSOR_COUNT&&(i=i.slice(0,t.MAX_CURSOR_COUNT),this._onDidReachMaxCursorCount.fire(void 0));var o=new m(this._model,this);this._cursors.setStates(i),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,n,o)},t.prototype.setColumnSelectData=function(e){this._columnSelectData=e},t.prototype.reveal=function(e,t,n,i){this._revealRange(e,n,0,t,i)},t.prototype.revealRange=function(e,t,n,i,o){this.emitCursorRevealRange(e,n,i,t,o)},t.prototype.scrollTo=function(e){this._viewModel.viewLayout.setScrollPositionSmooth({scrollTop:e})},t.prototype.saveState=function(){for(var e=[],t=this._cursors.getSelections(),n=0,i=t.length;n<i;n++){var o=t[n];e.push({inSelectionMode:!o.isEmpty(),\nselectionStart:{lineNumber:o.selectionStartLineNumber,column:o.selectionStartColumn},position:{lineNumber:o.positionLineNumber,column:o.positionColumn}})}return e},t.prototype.restoreState=function(e){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n],r=1,s=1;o.position&&o.position.lineNumber&&(r=o.position.lineNumber),o.position&&o.position.column&&(s=o.position.column);var l=r,u=s;o.selectionStart&&o.selectionStart.lineNumber&&(l=o.selectionStart.lineNumber),o.selectionStart&&o.selectionStart.column&&(u=o.selectionStart.column),t.push({selectionStartLineNumber:l,selectionStartColumn:u,positionLineNumber:r,positionColumn:s})}this.setStates(\"restoreState\",0,a.CursorState.fromModelSelections(t)),this.reveal(\"restoreState\",!0,0,1)},t.prototype._onModelContentChanged=function(e){if(this._prevEditOperationType=0,e)this._cursors.dispose(),this._cursors=new s.CursorCollection(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(\"model\",1,null);else{\nvar t=this._cursors.readSelectionFromMarkers();this.setStates(\"modelChange\",2,a.CursorState.fromModelSelections(t))}},t.prototype.getSelection=function(){return this._cursors.getPrimaryCursor().modelState.selection},t.prototype.getColumnSelectData=function(){if(this._columnSelectData)return this._columnSelectData;var e=this._cursors.getPrimaryCursor().viewState.selectionStart.getStartPosition(),t=e.lineNumber,n=a.CursorColumns.visibleColumnFromColumn2(this.context.config,this.context.viewModel,e);return{isReal:!1,fromViewLineNumber:t,fromViewVisualColumn:n,toViewLineNumber:t,toViewVisualColumn:n}},t.prototype.getSelections=function(){return this._cursors.getSelections()},t.prototype.getViewSelections=function(){return this._cursors.getViewSelections()},t.prototype.getPosition=function(){return this._cursors.getPrimaryCursor().modelState.position},t.prototype.setSelections=function(e,t){this.setStates(e,0,a.CursorState.fromModelSelections(t))},t.prototype.getPrevEditOperationType=function(){\nreturn this._prevEditOperationType},t.prototype.setPrevEditOperationType=function(e){this._prevEditOperationType=e},t.prototype._pushAutoClosedAction=function(e,t){for(var n=[],i=[],o=0,r=e.length;o<r;o++)n.push({range:e[o],options:{inlineClassName:\"auto-closed-character\",stickiness:1}}),i.push({range:t[o],options:{stickiness:1}});var s=this._model.deltaDecorations([],n),a=this._model.deltaDecorations([],i);this._autoClosedActions.push(new v(this._model,s,a))},t.prototype._executeEditOperation=function(e){if(e){e.shouldPushStackElementBefore&&this._model.pushStackElement();var t=y.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);for(var n=[],i=[],o=0;o<e.commands.length;o++){var r=e.commands[o];r instanceof u.TypeWithAutoClosingCommand&&r.enclosingRange&&r.closeCharacterRange&&(n.push(r.closeCharacterRange),i.push(r.enclosingRange))}n.length>0&&this._pushAutoClosedAction(n,i),this._prevEditOperationType=e.type}\ne.shouldPushStackElementAfter&&this._model.pushStackElement()}},t.prototype._interpretCommandResult=function(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()},t.prototype._emitStateChangedIfNecessary=function(e,t,n){var i=new m(this._model,this);if(i.equals(n))return!1;var o=this._cursors.getSelections(),r=this._cursors.getViewSelections();try{this._beginEmit().emit(new p.ViewCursorStateChangedEvent(r,o))}finally{this._endEmit()}if(!n||n.cursorState.length!==i.cursorState.length||i.cursorState.some((function(e,t){return!e.modelState.equals(n.cursorState[t].modelState)}))){var s=n?n.cursorState.map((function(e){return e.modelState.selection})):null,a=n?n.modelVersionId:0;this._onDidChange.fire(new f(o,i.modelVersionId,s,a,e||\"keyboard\",t))}return!0},t.prototype._revealRange=function(e,t,n,i,o){var r=this._cursors.getViewPositions(),s=r[0]\n;if(1===t)for(var a=1;a<r.length;a++)r[a].isBefore(s)&&(s=r[a]);else if(2===t)for(a=1;a<r.length;a++)s.isBeforeOrEqual(r[a])&&(s=r[a]);else if(r.length>1)return;var l=new d.Range(s.lineNumber,s.column,s.lineNumber,s.column);this.emitCursorRevealRange(e,l,n,i,o)},t.prototype.emitCursorRevealRange=function(e,t,n,i,o){try{this._beginEmit().emit(new p.ViewRevealRangeRequestEvent(e,t,n,i,o))}finally{this._endEmit()}},t.prototype._findAutoClosingPairs=function(e){if(!e.length)return null;for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];if(!o.text||o.text.indexOf(\"\\n\")>=0)return null;var r=o.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);if(!r)return null;var s=r[1],a=this.context.config.autoClosingPairsClose2.get(s);if(!a||1!==a.length)return null;var l=a[0].open,u=o.text.length-r[2].length-1,d=o.text.lastIndexOf(l,u-1);if(-1===d)return null;t.push([d,u])}return t},t.prototype.executeEdits=function(e,t,n){var i=this,o=null;\"snippet\"===e&&(o=this._findAutoClosingPairs(t)),o&&(t[0]._isTracked=!0)\n;var r=[],s=[],a=this._model.pushEditOperations(this.getSelections(),t,(function(e){if(o)for(var t=0,a=o.length;t<a;t++){var l=o[t],u=l[0],c=l[1],h=e[t],p=h.range.startLineNumber,g=h.range.startColumn-1+u,f=h.range.startColumn-1+c;r.push(new d.Range(p,f+1,p,f+2)),s.push(new d.Range(p,g+1,p,f+2))}var m=n(e);return m&&(i._isHandling=!0),m}));a&&(this._isHandling=!1,this.setSelections(e,a)),r.length>0&&this._pushAutoClosedAction(r,s)},t.prototype.trigger=function(e,t,i){var o=h.Handler;if(t===o.CompositionStart)return this._isDoingComposition=!0,void(this._selectionsWhenCompositionStarted=this.getSelections().slice(0));if(t===o.CompositionEnd&&(this._isDoingComposition=!1),this._configuration.options.get(68))this._onDidAttemptReadOnlyEdit.fire(void 0);else{var r=new m(this._model,this),s=0;t!==o.Undo&&t!==o.Redo&&this._cursors.stopTrackingSelections(),this._cursors.ensureValidState(),this._isHandling=!0;try{switch(t){case o.Type:this._type(e,i.text);break;case o.ReplacePreviousChar:\nthis._replacePreviousChar(i.text,i.replaceCharCnt);break;case o.Paste:s=4,this._paste(i.text,i.pasteOnNewLine,i.multicursorText||[]);break;case o.Cut:this._cut();break;case o.Undo:s=5,this._interpretCommandResult(this._model.undo());break;case o.Redo:s=6,this._interpretCommandResult(this._model.redo());break;case o.ExecuteCommand:this._externalExecuteCommand(i);break;case o.ExecuteCommands:this._externalExecuteCommands(i);break;case o.CompositionEnd:this._interpretCompositionEnd(e)}}catch(e){n.onUnexpectedError(e)}this._isHandling=!1,t!==o.Undo&&t!==o.Redo&&this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,s,r)&&this._revealRange(e,0,0,!0,0)}},t.prototype._interpretCompositionEnd=function(e){if(!this._isDoingComposition&&\"keyboard\"===e){var t=v.getAllAutoClosedCharacters(this._autoClosedActions)\n;this._executeEditOperation(u.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this._selectionsWhenCompositionStarted,this.getSelections(),t)),this._selectionsWhenCompositionStarted=null}},t.prototype._type=function(e,t){if(this._isDoingComposition||\"keyboard\"!==e)this._executeEditOperation(u.TypeOperations.typeWithoutInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),t));else for(var n=t.length,i=0;i<n;){var r=o.nextCharLength(t,i),s=t.substr(i,r),a=v.getAllAutoClosedCharacters(this._autoClosedActions);this._executeEditOperation(u.TypeOperations.typeWithInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),a,s)),i+=r}},t.prototype._replacePreviousChar=function(e,t){this._executeEditOperation(u.TypeOperations.replacePreviousChar(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),e,t))},\nt.prototype._paste=function(e,t,n){this._executeEditOperation(u.TypeOperations.paste(this.context.config,this.context.model,this.getSelections(),e,t,n))},t.prototype._cut=function(){this._executeEditOperation(l.DeleteOperations.cut(this.context.config,this.context.model,this.getSelections()))},t.prototype._externalExecuteCommand=function(e){this._cursors.killSecondaryCursors(),this._executeEditOperation(new a.EditOperationResult(0,[e],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},t.prototype._externalExecuteCommands=function(e){this._executeEditOperation(new a.EditOperationResult(0,e,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},t.MAX_CURSOR_COUNT=1e4,t}(p.ViewEventEmitter);t.Cursor=_;var y=function(){function e(){}return e.executeCommands=function(e,t,n){for(var i={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(i,n),r=0,s=i.trackedRanges.length;r<s;r++)i.model._setTrackedRange(i.trackedRanges[r],null,0);return o\n},e._innerExecuteCommands=function(e,t){if(this._arrayIsEmpty(t))return null;var n=this._getEditOperations(e,t);if(0===n.operations.length)return null;var i=n.operations,o=this._getLoserCursorMap(i);if(o.hasOwnProperty(\"0\"))return console.warn(\"Ignoring commands\"),null;for(var r=[],s=0,a=i.length;s<a;s++)o.hasOwnProperty(i[s].identifier.major.toString())||r.push(i[s]);n.hadTrackedEditOperation&&r.length>0&&(r[0]._isTracked=!0);var l=e.model.pushEditOperations(e.selectionsBefore,r,(function(n){for(var i=[],o=0;o<e.selectionsBefore.length;o++)i[o]=[];for(var r=0,s=n;r<s.length;r++){var a=s[r];a.identifier&&i[a.identifier.major].push(a)}var l=function(e,t){return e.identifier.minor-t.identifier.minor},u=[],d=function(n){i[n].length>0?(i[n].sort(l),u[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getTrackedRange(e.trackedRanges[n])\n;return 0===e.trackedRangesDirection[n]?new c.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new c.Selection(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn)}})):u[n]=e.selectionsBefore[n]};for(o=0;o<e.selectionsBefore.length;o++)d(o);return u}));l||(l=e.selectionsBefore);var u=[];for(var d in o)o.hasOwnProperty(d)&&u.push(parseInt(d,10));u.sort((function(e,t){return t-e}));for(var h=0,p=u;h<p.length;h++){var g=p[h];l.splice(g,1)}return l},e._arrayIsEmpty=function(e){for(var t=0,n=e.length;t<n;t++)if(e[t])return!1;return!0},e._getEditOperations=function(e,t){for(var n=[],i=!1,o=0,r=t.length;o<r;o++){var s=t[o];if(s){var a=this._getEditOperationsFromCommand(e,o,s);n=n.concat(a.operations),i=i||a.hadTrackedEditOperation}}return{operations:n,hadTrackedEditOperation:i}},e._getEditOperationsFromCommand=function(e,t,i){var o=[],r=0,s=function(e,n,s){void 0===s&&(s=!1),e.isEmpty()&&\"\"===n||o.push({identifier:{major:t,minor:r++},range:e,text:n,forceMoveMarkers:s,\nisAutoWhitespaceEdit:i.insertsAutoWhitespace})},a=!1,l={addEditOperation:s,addTrackedEditOperation:function(e,t,n){a=!0,s(e,t,n)},trackSelection:function(t,n){var i;if(t.isEmpty())if(\"boolean\"==typeof n)i=n?2:3;else{var o=e.model.getLineMaxColumn(t.startLineNumber);i=t.startColumn===o?2:3}else i=1;var r=e.trackedRanges.length,s=e.model._setTrackedRange(null,t,i);return e.trackedRanges[r]=s,e.trackedRangesDirection[r]=t.getDirection(),r.toString()}};try{i.getEditOperations(e.model,l)}catch(e){return n.onUnexpectedError(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:o,hadTrackedEditOperation:a}},e._getLoserCursorMap=function(e){(e=e.slice(0)).sort((function(e,t){return-d.Range.compareRangesUsingEnds(e.range,t.range)}));for(var t={},n=1;n<e.length;n++){var i=e[n-1],o=e[n];if(i.range.getStartPosition().isBefore(o.range.getEndPosition())){var r=void 0;t[(r=i.identifier.major>o.identifier.major?i.identifier.major:o.identifier.major).toString()]=!0\n;for(var s=0;s<e.length;s++)e[s].identifier.major===r&&(e.splice(s,1),s<n&&n--,s--);n>0&&n--}}return t},e}()})),define(n[214],i([0,1,5,93,63]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r={getInitialState:function(){return o.NULL_STATE},tokenize2:function(e,t,n){return o.nullTokenize2(0,e,t,n)}};t.tokenizeToString=function(e,t){return void 0===t&&(t=r),function(e,t){for(var o='<div class=\"monaco-tokenized-source\">',r=e.split(/\\r\\n|\\r|\\n/),s=t.getInitialState(),a=0,l=r.length;a<l;a++){var u=r[a];a>0&&(o+=\"<br/>\");var d=t.tokenize2(u,s,0);i.LineTokens.convertToEndOffset(d.tokens,u.length);for(var c=new i.LineTokens(d.tokens,u).inflate(),h=0,p=0,g=c.getCount();p<g;p++){var f=c.getClassName(p),m=c.getEndOffset(p);o+='<span class=\"'+f+'\">'+n.escape(u.substring(h,m))+\"</span>\",h=m}s=d.endState}return o+=\"</div>\"}(e,t||r)},t.tokenizeLineToHTML=function(e,t,n,i,o,r,s){for(var a=\"<div>\",l=i,u=0,d=0,c=t.getCount();d<c;d++){var h=t.getEndOffset(d);if(!(h<=i)){\nfor(var p=\"\";l<h&&l<o;l++){var g=e.charCodeAt(l);switch(g){case 9:var f=r-(l+u)%r;for(u+=f-1;f>0;)p+=s?\"&#160;\":\" \",f--;break;case 60:p+=\"&lt;\";break;case 62:p+=\"&gt;\";break;case 38:p+=\"&amp;\";break;case 0:p+=\"&#00;\";break;case 65279:case 8232:p+=\"�\";break;case 13:p+=\"&#8203\";break;case 32:p+=s?\"&#160;\":\" \";break;default:p+=String.fromCharCode(g)}}if(a+='<span style=\"'+t.getInlineStyle(d,n)+'\">'+p+\"</span>\",h>o||l>=o)break}}return a+=\"</div>\"}})),define(n[84],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITextModelService=n.createDecorator(\"textModelService\")})),define(n[114],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITextResourceConfigurationService=n.createDecorator(\"textResourceConfigurationService\"),t.ITextResourcePropertiesService=n.createDecorator(\"textResourcePropertiesService\")})),define(n[215],i([0,1,4,339,17]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var r=function(){function e(){var e=this;this._onDidChange=new n.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),o.TokenizationRegistry.onDidChange((function(t){t.changedColorMap&&e._updateColorMap()}))}return e.getInstance=function(){return this._INSTANCE||(this._INSTANCE=new e),this._INSTANCE},e.prototype._updateColorMap=function(){var e=o.TokenizationRegistry.getColorMap();if(!e)return this._colors=[i.RGBA8.Empty],void(this._backgroundIsLight=!0);this._colors=[i.RGBA8.Empty];for(var t=1;t<e.length;t++){var n=e[t].rgba;this._colors[t]=new i.RGBA8(n.r,n.g,n.b,Math.round(255*n.a))}var r=e[2].getRelativeLuminance();this._backgroundIsLight=r>=.5,this._onDidChange.fire(void 0)},e.prototype.getColor=function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]},e.prototype.backgroundIsLight=function(){return this._backgroundIsLight},e._INSTANCE=null,e}();t.MinimapTokensColorTracker=r})),define(n[161],i([0,1,19,13,3,30,81,194,69]),(function(e,t,n,i,o,r,s,a,l){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e,t){this.outputLineIndex=e,this.outputOffset=t};t.OutputPosition=u;var d=function(){function e(e,t,n){this.breakOffsets=e,this.breakOffsetsVisibleColumn=t,this.wrappedTextIndentLength=n}return e.getInputOffsetOfOutputPosition=function(e,t,n){return 0===t?n:e[t-1]+n},e.getOutputPositionOfInputOffset=function(e,t){for(var n=0,i=e.length-1,o=0,r=0;n<=i;){var s=e[o=n+(i-n)/2|0];if(t<(r=o>0?e[o-1]:0))i=o-1;else{if(!(t>=s))break;n=o+1}}return new u(o,t-r)},e}();t.LineBreakData=d;var c=function(){function e(e){this._lines=e}return e.prototype.convertViewPositionToModelPosition=function(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)},e.prototype.convertViewRangeToModelRange=function(e){return this._lines.convertViewRangeToModelRange(e)},e.prototype.validateViewPosition=function(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)},e.prototype.validateViewRange=function(e,t){\nreturn this._lines.validateViewRange(e,t)},e.prototype.convertModelPositionToViewPosition=function(e){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column)},e.prototype.convertModelRangeToViewRange=function(e){return this._lines.convertModelRangeToViewRange(e)},e.prototype.modelPositionIsVisible=function(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)},e}();t.CoordinatesConverter=c;var h=function(){function e(e){this._counts=e,this._isValid=!1,this._validEndIndex=-1,this._modelToView=[],this._viewToModel=[]}return e.prototype._invalidate=function(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)},e.prototype._ensureValid=function(){if(!this._isValid){for(var e=this._validEndIndex+1,t=this._counts.length;e<t;e++){var n=this._counts[e],i=e>0?this._modelToView[e-1]:0;this._modelToView[e]=i+n;for(var o=0;o<n;o++)this._viewToModel[i+o]=e}this._modelToView.length=this._counts.length,\nthis._viewToModel.length=this._modelToView[this._modelToView.length-1],this._isValid=!0,this._validEndIndex=this._counts.length-1}},e.prototype.changeValue=function(e,t){this._counts[e]!==t&&(this._counts[e]=t,this._invalidate(e))},e.prototype.removeValues=function(e,t){this._counts.splice(e,t),this._invalidate(e)},e.prototype.insertValues=function(e,t){this._counts=n.arrayInsert(this._counts,e,t),this._invalidate(e)},e.prototype.getTotalValue=function(){return this._ensureValid(),this._viewToModel.length},e.prototype.getAccumulatedValue=function(e){return this._ensureValid(),this._modelToView[e]},e.prototype.getIndexOf=function(e){this._ensureValid();var t=this._viewToModel[e],n=t>0?this._modelToView[t-1]:0;return new a.PrefixSumIndexOfResult(t,e-n)},e}(),p=function(){function e(e,t,n,i,o,r,s,a){this.model=e,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=t,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=i,this.tabSize=o,this.wrappingStrategy=r,this.wrappingColumn=s,\nthis.wrappingIndent=a,this._constructLines(!0,null)}return e.prototype.dispose=function(){this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,[])},e.prototype.createCoordinatesConverter=function(){return new c(this)},e.prototype._constructLines=function(e,t){var n=this;this.lines=[],e&&(this.hiddenAreasIds=[]);for(var i=this.model.getLinesContent(),r=i.length,s=this.createLineBreaksComputer(),a=0;a<r;a++)s.addRequest(i[a],t?t[a]:null);var l=s.finalize(),u=[],d=this.hiddenAreasIds.map((function(e){return n.model.getDecorationRange(e)})).sort(o.Range.compareRangesUsingStarts),c=1,p=0,g=-1,f=g+1<d.length?p+1:r+2;for(a=0;a<r;a++){var m=a+1;m===f&&(c=d[++g].startLineNumber,p=d[g].endLineNumber,f=g+1<d.length?p+1:r+2);var v=m>=c&&m<=p,_=C(l[a],!v);u[a]=_.getViewLineCount(),this.lines[a]=_}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new h(u)},e.prototype.getHiddenAreas=function(){var e=this;return this.hiddenAreasIds.map((function(t){return e.model.getDecorationRange(t)\n}))},e.prototype._reduceRanges=function(e){var t=this;if(0===e.length)return[];for(var n=e.map((function(e){return t.model.validateRange(e)})).sort(o.Range.compareRangesUsingStarts),i=[],r=n[0].startLineNumber,s=n[0].endLineNumber,a=1,l=n.length;a<l;a++){var u=n[a];u.startLineNumber>s+1?(i.push(new o.Range(r,1,s,1)),r=u.startLineNumber,s=u.endLineNumber):u.endLineNumber>s&&(s=u.endLineNumber)}return i.push(new o.Range(r,1,s,1)),i},e.prototype.setHiddenAreas=function(e){var t=this,n=this._reduceRanges(e),i=this.hiddenAreasIds.map((function(e){return t.model.getDecorationRange(e)})).sort(o.Range.compareRangesUsingStarts);if(n.length===i.length){for(var s=!1,a=0;a<n.length;a++)if(!n[a].equalsRange(i[a])){s=!0;break}if(!s)return!1}for(var l=[],u=0,d=n;u<d.length;u++){var c=d[u];l.push({range:c,options:r.ModelDecorationOptions.EMPTY})}this.hiddenAreasIds=this.model.deltaDecorations(this.hiddenAreasIds,l);var h=n,p=1,g=0,f=-1,m=f+1<h.length?g+1:this.lines.length+2,v=!1;for(a=0;a<this.lines.length;a++){var _=a+1\n;_===m&&(p=h[++f].startLineNumber,g=h[f].endLineNumber,m=f+1<h.length?g+1:this.lines.length+2);var y=!1;if(_>=p&&_<=g?this.lines[a].isVisible()&&(this.lines[a]=this.lines[a].setVisible(!1),y=!0):(v=!0,this.lines[a].isVisible()||(this.lines[a]=this.lines[a].setVisible(!0),y=!0)),y){var C=this.lines[a].getViewLineCount();this.prefixSumComputer.changeValue(a,C)}}return v||this.setHiddenAreas([]),!0},e.prototype.modelPositionIsVisible=function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()},e.prototype.setTabSize=function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)},e.prototype.setWrappingSettings=function(e,t,n,i){var o=this.fontInfo.equals(e),r=this.wrappingStrategy===t,s=this.wrappingColumn===n,a=this.wrappingIndent===i;if(o&&r&&s&&a)return!1;var l=o&&r&&!s&&a;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=n,this.wrappingIndent=i;var u=null;if(l){u=[];for(var d=0,c=this.lines.length;d<c;d++)u[d]=this.lines[d].getLineBreakData()}\nreturn this._constructLines(!1,u),!0},e.prototype.createLineBreaksComputer=function(){return(\"advanced\"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent)},e.prototype.onModelFlushed=function(){this._constructLines(!0,null)},e.prototype.onModelLinesDeleted=function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,o=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new s.ViewLinesDeletedEvent(i,o)},e.prototype.onModelLinesInserted=function(e,t,n,o){if(e<=this._validModelVersionId)return null;for(var r=this.getHiddenAreas(),a=!1,l=new i.Position(t,1),u=0,d=r;u<d.length;u++){if(d[u].containsPosition(l)){a=!0;break}}for(var c=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,h=0,p=[],g=[],f=0,m=o.length;f<m;f++){\nvar v=C(o[f],!a);p.push(v);var _=v.getViewLineCount();h+=_,g[f]=_}return this.lines=this.lines.slice(0,t-1).concat(p).concat(this.lines.slice(t-1)),this.prefixSumComputer.insertValues(t-1,g),new s.ViewLinesInsertedEvent(c,c+h-1)},e.prototype.onModelLineChanged=function(e,t,n){if(e<=this._validModelVersionId)return[!1,null,null,null];var i=t-1,o=this.lines[i].getViewLineCount(),r=C(n,this.lines[i].isVisible());this.lines[i]=r;var a=this.lines[i].getViewLineCount(),l=!1,u=0,d=-1,c=0,h=-1,p=0,g=-1;return o>a?(g=(p=(d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1)+1)+(o-a)-1,l=!0):o<a?(h=(c=(d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+o-1)+1)+(a-o)-1,l=!0):d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1,this.prefixSumComputer.changeValue(i,a),[l,u<=d?new s.ViewLinesChangedEvent(u,d):null,c<=h?new s.ViewLinesInsertedEvent(c,h):null,p<=g?new s.ViewLinesDeletedEvent(p,g):null]},e.prototype.acceptVersionId=function(e){this._validModelVersionId=e,\n1!==this.lines.length||this.lines[0].isVisible()||this.setHiddenAreas([])},e.prototype.getViewLineCount=function(){return this.prefixSumComputer.getTotalValue()},e.prototype._toValidViewLineNumber=function(e){if(e<1)return 1;var t=this.getViewLineCount();return e>t?t:0|e},e.prototype.getActiveIndentGuide=function(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);var i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),r=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),s=this.model.getActiveIndentGuide(i.lineNumber,o.lineNumber,r.lineNumber),a=this.convertModelPositionToViewPosition(s.startLineNumber,1),l=this.convertModelPositionToViewPosition(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber));return{startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:s.indent}},e.prototype.getViewLinesIndentGuides=function(e,t){\ne=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),r=[],s=[],a=[],l=n.lineNumber-1,u=o.lineNumber-1,d=null,c=l;c<=u;c++){var h=this.lines[c];if(h.isVisible()){var p=h.getViewLineNumberOfModelPosition(0,c===l?n.column:1),g=h.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(c+1)),f=0;(S=g-p+1)>1&&1===h.getViewLineMinColumn(this.model,c+1,g)&&(f=0===p?1:2),s.push(S),a.push(f),null===d&&(d=new i.Position(c+1,0))}else null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,c)),d=null)}null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,o.lineNumber)),d=null);for(var m=t-e+1,v=new Array(m),_=0,y=0,C=r.length;y<C;y++){var b=r[y],S=Math.min(m-_,s[y]),w=void 0;w=2===(f=a[y])?0:1===f?1:S;for(var E=0;E<S;E++)E===w&&(b=0),v[_++]=b}return v},e.prototype.getViewLineContent=function(e){\ne=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineContent(this.model,n+1,i)},e.prototype.getViewLineLength=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineLength(this.model,n+1,i)},e.prototype.getViewLineMinColumn=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMinColumn(this.model,n+1,i)},e.prototype.getViewLineMaxColumn=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineMaxColumn(this.model,n+1,i)},e.prototype.getViewLineData=function(e){e=this._toValidViewLineNumber(e);var t=this.prefixSumComputer.getIndexOf(e-1),n=t.index,i=t.remainder;return this.lines[n].getViewLineData(this.model,n+1,i)},e.prototype.getViewLinesData=function(e,t,n){\ne=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var i=this.prefixSumComputer.getIndexOf(e-1),o=e,r=i.index,s=i.remainder,a=[],l=r,u=this.model.getLineCount();l<u;l++){var d=this.lines[l];if(d.isVisible()){var c=l===r?s:0,h=d.getViewLineCount()-c,p=!1;o+h>t&&(p=!0,h=t-o+1);var g=c+h;if(d.getViewLinesData(this.model,l+1,c,g,o-e,n,a),o+=h,p)break}}return a},e.prototype.validateViewPosition=function(e,t,n){e=this._toValidViewLineNumber(e);var o=this.prefixSumComputer.getIndexOf(e-1),r=o.index,s=o.remainder,a=this.lines[r],l=a.getViewLineMinColumn(this.model,r+1,s),u=a.getViewLineMaxColumn(this.model,r+1,s);t<l&&(t=l),t>u&&(t=u);var d=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new i.Position(r+1,d)).equals(n)?new i.Position(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)},e.prototype.validateViewRange=function(e,t){\nvar n=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),i=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new o.Range(n.lineNumber,n.column,i.lineNumber,i.column)},e.prototype.convertViewPositionToModelPosition=function(e,t){e=this._toValidViewLineNumber(e);var n=this.prefixSumComputer.getIndexOf(e-1),o=n.index,r=n.remainder,s=this.lines[o].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new i.Position(o+1,s))},e.prototype.convertViewRangeToModelRange=function(e){var t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),n=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new o.Range(t.lineNumber,t.column,n.lineNumber,n.column)},e.prototype.convertModelPositionToViewPosition=function(e,t){for(var n=this.model.validatePosition(new i.Position(e,t)),o=n.lineNumber,r=n.column,s=o-1,a=!1;s>0&&!this.lines[s].isVisible();)s--,a=!0\n;if(0===s&&!this.lines[s].isVisible())return new i.Position(1,1);var l=1+(0===s?0:this.prefixSumComputer.getAccumulatedValue(s-1));return a?this.lines[s].getViewPositionOfModelPosition(l,this.model.getLineMaxColumn(s+1)):this.lines[o-1].getViewPositionOfModelPosition(l,r)},e.prototype.convertModelRangeToViewRange=function(e){var t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn);return e.startLineNumber===e.endLineNumber&&t.lineNumber!==n.lineNumber&&n.column===this.getViewLineMinColumn(n.lineNumber)?new o.Range(t.lineNumber,t.column,n.lineNumber-1,this.getViewLineMaxColumn(n.lineNumber-1)):new o.Range(t.lineNumber,t.column,n.lineNumber,n.column)},e.prototype._getViewLineNumberForModelPosition=function(e,t){var n=e-1;if(this.lines[n].isVisible()){var i=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(i,t)}for(;n>0&&!this.lines[n].isVisible();)n--\n;if(0===n&&!this.lines[n].isVisible())return 1;var o=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(o,this.model.getLineMaxColumn(n+1))},e.prototype.getAllOverviewRulerDecorations=function(e,t,n){for(var i=this.model.getOverviewRulerDecorations(e,t),o=new w,r=0,s=i;r<s.length;r++){var a=s[r],l=a.options.overviewRuler,u=l?l.position:0;if(0!==u){var d=l.getColor(n),c=this._getViewLineNumberForModelPosition(a.range.startLineNumber,a.range.startColumn),h=this._getViewLineNumberForModelPosition(a.range.endLineNumber,a.range.endColumn);o.accept(d,c,h,u)}}return o.result},e.prototype.getDecorationsInRange=function(e,t,n){var r=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),s=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(s.lineNumber-r.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new o.Range(r.lineNumber,1,s.lineNumber,s.column),t,n)\n;for(var a=[],l=r.lineNumber-1,u=s.lineNumber-1,d=null,c=l;c<=u;c++){if(this.lines[c].isVisible())null===d&&(d=new i.Position(c+1,c===l?r.column:1));else if(null!==d){var h=this.model.getLineMaxColumn(c);a=a.concat(this.model.getDecorationsInRange(new o.Range(d.lineNumber,d.column,c,h),t,n)),d=null}}null!==d&&(a=a.concat(this.model.getDecorationsInRange(new o.Range(d.lineNumber,d.column,s.lineNumber,s.column),t,n)),d=null),a.sort((function(e,t){var n=o.Range.compareRangesUsingStarts(e.range,t.range);return 0===n?e.id<t.id?-1:e.id>t.id?1:0:n}));for(var p=[],g=0,f=null,m=0,v=a;m<v.length;m++){var _=v[m],y=_.id;f!==y&&(f=y,p[g++]=_)}return p},e}();t.SplitLinesCollection=p;var g=function(){function e(){}return e.prototype.isVisible=function(){return!0},e.prototype.setVisible=function(e){return e?this:f.INSTANCE},e.prototype.getLineBreakData=function(){return null},e.prototype.getViewLineCount=function(){return 1},e.prototype.getViewLineContent=function(e,t,n){return e.getLineContent(t)},\ne.prototype.getViewLineLength=function(e,t,n){return e.getLineLength(t)},e.prototype.getViewLineMinColumn=function(e,t,n){return e.getLineMinColumn(t)},e.prototype.getViewLineMaxColumn=function(e,t,n){return e.getLineMaxColumn(t)},e.prototype.getViewLineData=function(e,t,n){var i=e.getLineTokens(t),o=i.getLineContent();return new l.ViewLineData(o,!1,1,o.length+1,0,i.inflate())},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){r[o]?s[o]=this.getViewLineData(e,t,0):s[o]=null},e.prototype.getModelColumnOfViewPosition=function(e,t){return t},e.prototype.getViewPositionOfModelPosition=function(e,t){return new i.Position(e,t)},e.prototype.getViewLineNumberOfModelPosition=function(e,t){return e},e.INSTANCE=new e,e}(),f=function(){function e(){}return e.prototype.isVisible=function(){return!1},e.prototype.setVisible=function(e){return e?g.INSTANCE:this},e.prototype.getLineBreakData=function(){return null},e.prototype.getViewLineCount=function(){return 0},e.prototype.getViewLineContent=function(e,t,n){\nthrow new Error(\"Not supported\")},e.prototype.getViewLineLength=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineMinColumn=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineMaxColumn=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLineData=function(e,t,n){throw new Error(\"Not supported\")},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){throw new Error(\"Not supported\")},e.prototype.getModelColumnOfViewPosition=function(e,t){throw new Error(\"Not supported\")},e.prototype.getViewPositionOfModelPosition=function(e,t){throw new Error(\"Not supported\")},e.prototype.getViewLineNumberOfModelPosition=function(e,t){throw new Error(\"Not supported\")},e.INSTANCE=new e,e}(),m=function(){function e(e,t){this._lineBreakData=e,this._isVisible=t}return e.prototype.isVisible=function(){return this._isVisible},e.prototype.setVisible=function(e){return this._isVisible=e,this},e.prototype.getLineBreakData=function(){return this._lineBreakData},\ne.prototype.getViewLineCount=function(){return this._isVisible?this._lineBreakData.breakOffsets.length:0},e.prototype.getInputStartOffsetOfOutputLineIndex=function(e){return d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,0)},e.prototype.getInputEndOffsetOfOutputLineIndex=function(e,t,n){return n+1===this._lineBreakData.breakOffsets.length?e.getLineMaxColumn(t)-1:d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,n+1,0)},e.prototype.getViewLineContent=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),r=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:o+1});return n>0&&(r=_(this._lineBreakData.wrappedTextIndentLength)+r),r},e.prototype.getViewLineLength=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n)-i\n;return n>0&&(o=this._lineBreakData.wrappedTextIndentLength+o),o},e.prototype.getViewLineMinColumn=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");return n>0?this._lineBreakData.wrappedTextIndentLength+1:1},e.prototype.getViewLineMaxColumn=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");return this.getViewLineContent(e,t,n).length+1},e.prototype.getViewLineData=function(e,t,n){if(!this._isVisible)throw new Error(\"Not supported\");var i=this.getInputStartOffsetOfOutputLineIndex(n),o=this.getInputEndOffsetOfOutputLineIndex(e,t,n),r=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:o+1});n>0&&(r=_(this._lineBreakData.wrappedTextIndentLength)+r);var s=n>0?this._lineBreakData.wrappedTextIndentLength+1:1,a=r.length+1,u=n+1<this.getViewLineCount(),d=0;n>0&&(d=this._lineBreakData.wrappedTextIndentLength);var c=e.getLineTokens(t),h=0===n?0:this._lineBreakData.breakOffsetsVisibleColumn[n-1]\n;return new l.ViewLineData(r,u,s,a,h,c.sliceAndInflate(i,o,d))},e.prototype.getViewLinesData=function(e,t,n,i,o,r,s){if(!this._isVisible)throw new Error(\"Not supported\");for(var a=n;a<i;a++){var l=o+a-n;r[l]?s[l]=this.getViewLineData(e,t,a):s[l]=null}},e.prototype.getModelColumnOfViewPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\");var n=t-1;return e>0&&(n<this._lineBreakData.wrappedTextIndentLength?n=0:n-=this._lineBreakData.wrappedTextIndentLength),d.getInputOffsetOfOutputPosition(this._lineBreakData.breakOffsets,e,n)+1},e.prototype.getViewPositionOfModelPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\");var n=d.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1),o=n.outputLineIndex,r=n.outputOffset+1;return o>0&&(r+=this._lineBreakData.wrappedTextIndentLength),new i.Position(e+o,r)},e.prototype.getViewLineNumberOfModelPosition=function(e,t){if(!this._isVisible)throw new Error(\"Not supported\")\n;return e+d.getOutputPositionOfInputOffset(this._lineBreakData.breakOffsets,t-1).outputLineIndex},e}();t.SplitLine=m;var v=[\"\"];function _(e){if(e>=v.length)for(var t=1;t<=e;t++)v[t]=y(t);return v[e]}function y(e){return new Array(e+1).join(\" \")}function C(e,t){return null===e?t?g.INSTANCE:f.INSTANCE:new m(e,t)}var b=function(){function e(e){this._lines=e}return e.prototype._validPosition=function(e){return this._lines.model.validatePosition(e)},e.prototype._validRange=function(e){return this._lines.model.validateRange(e)},e.prototype.convertViewPositionToModelPosition=function(e){return this._validPosition(e)},e.prototype.convertViewRangeToModelRange=function(e){return this._validRange(e)},e.prototype.validateViewPosition=function(e,t){return this._validPosition(t)},e.prototype.validateViewRange=function(e,t){return this._validRange(t)},e.prototype.convertModelPositionToViewPosition=function(e){return this._validPosition(e)},e.prototype.convertModelRangeToViewRange=function(e){return this._validRange(e)},\ne.prototype.modelPositionIsVisible=function(e){var t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)},e}();t.IdentityCoordinatesConverter=b;var S=function(){function e(e){this.model=e}return e.prototype.dispose=function(){},e.prototype.createCoordinatesConverter=function(){return new b(this)},e.prototype.getHiddenAreas=function(){return[]},e.prototype.setHiddenAreas=function(e){return!1},e.prototype.setTabSize=function(e){return!1},e.prototype.setWrappingSettings=function(e,t,n,i){return!1},e.prototype.createLineBreaksComputer=function(){var e=[];return{addRequest:function(t,n){e.push(null)},finalize:function(){return e}}},e.prototype.onModelFlushed=function(){},e.prototype.onModelLinesDeleted=function(e,t,n){return new s.ViewLinesDeletedEvent(t,n)},e.prototype.onModelLinesInserted=function(e,t,n,i){return new s.ViewLinesInsertedEvent(t,n)},e.prototype.onModelLineChanged=function(e,t,n){return[!1,new s.ViewLinesChangedEvent(t,t),null,null]},e.prototype.acceptVersionId=function(e){},\ne.prototype.getViewLineCount=function(){return this.model.getLineCount()},e.prototype.getActiveIndentGuide=function(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}},e.prototype.getViewLinesIndentGuides=function(e,t){for(var n=t-e+1,i=new Array(n),o=0;o<n;o++)i[o]=0;return i},e.prototype.getViewLineContent=function(e){return this.model.getLineContent(e)},e.prototype.getViewLineLength=function(e){return this.model.getLineLength(e)},e.prototype.getViewLineMinColumn=function(e){return this.model.getLineMinColumn(e)},e.prototype.getViewLineMaxColumn=function(e){return this.model.getLineMaxColumn(e)},e.prototype.getViewLineData=function(e){var t=this.model.getLineTokens(e),n=t.getLineContent();return new l.ViewLineData(n,!1,1,n.length+1,0,t.inflate())},e.prototype.getViewLinesData=function(e,t,n){var i=this.model.getLineCount();e=Math.min(Math.max(1,e),i),t=Math.min(Math.max(1,t),i);for(var o=[],r=e;r<=t;r++){var s=r-e;n[s]||(o[s]=null),o[s]=this.getViewLineData(r)}return o},\ne.prototype.getAllOverviewRulerDecorations=function(e,t,n){for(var i=this.model.getOverviewRulerDecorations(e,t),o=new w,r=0,s=i;r<s.length;r++){var a=s[r],l=a.options.overviewRuler,u=l?l.position:0;if(0!==u){var d=l.getColor(n),c=a.range.startLineNumber,h=a.range.endLineNumber;o.accept(d,c,h,u)}}return o.result},e.prototype.getDecorationsInRange=function(e,t,n){return this.model.getDecorationsInRange(e,t,n)},e}();t.IdentityLinesCollection=S;var w=function(){function e(){this.result=Object.create(null)}return e.prototype.accept=function(e,t,n,i){var o=this.result[e];if(o){var r=o[o.length-3],s=o[o.length-1];if(r===i&&s+1>=t)return void(n>s&&(o[o.length-1]=n));o.push(i,t,n)}else this.result[e]=[i,t,n]},e}()})),define(n[487],i([0,1,5,79,161]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,n){for(var i=e.call(this,0)||this,o=0;o<t.length;o++)i.set(t.charCodeAt(o),1);for(o=0;o<n.length;o++)i.set(n.charCodeAt(o),2);return i}return r(t,e),\nt.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue},t}(i.CharacterClassifier),a=[],l=[],u=function(){function e(e,t){this.classifier=new s(e,t)}return e.create=function(t){return new e(t.get(99),t.get(98))},e.prototype.createLineBreaksComputer=function(e,t,n,i){var o=this;t|=0,n=+n;var r=[],s=[];return{addRequest:function(e,t){r.push(e),s.push(t)},finalize:function(){for(var u=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,h=[],p=0,g=r.length;p<g;p++){var f=s[p];h[p]=f?d(o.classifier,f,r[p],t,n,u,i):c(o.classifier,r[p],t,n,u,i)}return a.length=0,l.length=0,h}}},e}();function d(e,t,i,o,r,s,u){if(-1===r)return null;var d=i.length;if(d<=1)return null;var c=t.breakOffsets,p=t.breakOffsetsVisibleColumn,m=f(i,o,r,s,u),v=r-m,_=a,y=l,C=0,b=r,S=c.length,w=0;if(w>=0)for(var E=Math.abs(p[w]-b);w+1<S;){if((U=Math.abs(p[w+1]-b))>=E)break;E=U,w++}for(;w<S;){\nvar L=w<0?0:c[w],D=w<0?0:p[w],N=0,x=0,I=0,M=0;if(D<=b){for(var k=D,T=i.charCodeAt(L-1),R=e.get(T),O=!0,P=L;P<d;P++){var A=P,F=i.charCodeAt(P),W=void 0,B=void 0;if(n.isHighSurrogate(F)?(P++,W=0,B=2):(W=e.get(F),B=h(F,k,o,s)),g(T,R,F,W)&&(N=A,x=k),(k+=B)>b){I=A,M=k-B,k-x>v&&(N=0),O=!1;break}T=F,R=W}if(O){C>0&&(_[C]=c[c.length-1],y[C]=p[c.length-1],C++);break}}if(0===N){k=D,F=i.charCodeAt(L),W=e.get(F);var V=!1;for(P=L-1;P>=0;P--){A=P+1;if(9===(T=i.charCodeAt(P))){V=!0;break}R=void 0;var z=void 0;if(n.isLowSurrogate(T)?(P--,R=0,z=2):(R=e.get(T),z=n.isFullWidthCharacter(T)?s:1),k<=b){if(0===I&&(I=A,M=k),k<=b-v)break;if(g(T,R,F,W)){N=A,x=k;break}}k-=z,F=T,W=R}if(0!==N){var H=v-(M-x);if(H<=o){var K=i.charCodeAt(I);B=void 0;H-(B=n.isHighSurrogate(K)?2:h(K,M,o,s))<0&&(N=0)}}if(V){w--;continue}}for(0===N&&(N=I,x=M),_[C]=N,y[C]=x,C++,b=x+v;w<0||w<S&&p[w]<x;)w++;for(E=Math.abs(p[w]-b);w+1<S;){var U;if((U=Math.abs(p[w+1]-b))>=E)break;E=U,w++}}return 0===C?null:(_.length=C,y.length=C,a=t.breakOffsets,\nl=t.breakOffsetsVisibleColumn,t.breakOffsets=_,t.breakOffsetsVisibleColumn=y,t.wrappedTextIndentLength=m,t)}function c(e,t,i,r,s,a){if(-1===r)return null;var l=t.length;if(l<=1)return null;var u=f(t,i,r,s,a),d=r-u,c=[],p=[],m=0,v=0,_=0,y=r,C=t.charCodeAt(0),b=e.get(C),S=h(C,0,i,s),w=1;n.isHighSurrogate(C)&&(S+=1,C=t.charCodeAt(1),b=e.get(C),w++);for(var E=w;E<l;E++){var L=E,D=t.charCodeAt(E),N=void 0,x=void 0;n.isHighSurrogate(D)?(E++,N=0,x=2):(N=e.get(D),x=h(D,S,i,s)),g(C,b,D,N)&&(v=L,_=S),(S+=x)>y&&((0===v||S-_>d)&&(v=L,_=S-x),c[m]=v,p[m]=_,m++,y=_+d,v=0),C=D,b=N}return 0===m?null:(c[m]=l,p[m]=S,new o.LineBreakData(c,p,u))}function h(e,t,i,o){return 9===e?i-t%i:n.isFullWidthCharacter(e)?o:1}function p(e,t){return t-e%t}function g(e,t,n,i){return 32!==n&&(2===t||3===t&&2!==i||1===i||3===i&&1!==t)}function f(e,t,i,o,r){var s=0;if(0!==r){var a=n.firstNonWhitespaceIndex(e);if(-1!==a){for(var l=0;l<a;l++){s+=9===e.charCodeAt(l)?p(s,t):1}var u=3===r?2:2===r?1:0;for(l=0;l<u;l++){s+=p(s,t)}s+o>i&&(s=0)}}return s}\nt.MonospaceLineBreaksComputerFactory=u})),define(n[488],i([0,1,27,5,33,13,3,17,214,215,81,373,161,69,424,15,16]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=!0,y=function(e){function t(t,n,i,o,r,s){var a=e.call(this)||this;if(a.editorId=t,a.configuration=n,a.model=i,a._tokenizeViewportSoon=a._register(new m.RunOnceScheduler((function(){return a.tokenizeViewport()}),50)),a.hasFocus=!1,a.viewportStartLine=-1,a.viewportStartLineTrackedRange=null,a.viewportStartLineDelta=0,_&&a.model.isTooLargeForTokenization())a.lines=new p.IdentityLinesCollection(a.model);else{var l=a.configuration.options,u=l.get(34),g=l.get(103),v=l.get(108),y=l.get(102);a.lines=new p.SplitLinesCollection(a.model,o,r,u,a.model.getOptions().tabSize,g,v.wrappingColumn,y)}return a.coordinatesConverter=a.lines.createCoordinatesConverter(),a.viewLayout=a._register(new h.ViewLayout(a.configuration,a.getLineCount(),s)),a._register(a.viewLayout.onDidScroll((function(e){\ne.scrollTopChanged&&a._tokenizeViewportSoon.schedule();try{a._beginEmit().emit(new c.ViewScrollChangedEvent(e))}finally{a._endEmit()}}))),a._register(a.viewLayout.onDidContentSizeChange((function(e){try{a._beginEmit().emit(new c.ViewContentSizeChangedEvent(e))}finally{a._endEmit()}}))),a.decorations=new f.ViewModelDecorations(a.editorId,a.model,a.configuration,a.lines,a.coordinatesConverter),a._registerModelEvents(),a._register(a.configuration.onDidChange((function(e){try{var t=a._beginEmit();a._onConfigurationChanged(t,e)}finally{a._endEmit()}}))),a._register(d.MinimapTokensColorTracker.getInstance().onDidChange((function(){try{a._beginEmit().emit(new c.ViewTokensColorsChangedEvent)}finally{a._endEmit()}}))),a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this.decorations.dispose(),this.lines.dispose(),this.invalidateMinimapColorCache(),this.viewportStartLineTrackedRange=this.model._setTrackedRange(this.viewportStartLineTrackedRange,null,1)},\nt.prototype.tokenizeViewport=function(){var e=this.viewLayout.getLinesViewportData(),t=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e.startLineNumber,1)),n=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e.endLineNumber,1));this.model.tokenizeViewport(t.lineNumber,n.lineNumber)},t.prototype.setHasFocus=function(e){this.hasFocus=e},t.prototype._onConfigurationChanged=function(e,t){var n=null;if(-1!==this.viewportStartLine){var i=new s.Position(this.viewportStartLine,this.getLineMinColumn(this.viewportStartLine));n=this.coordinatesConverter.convertViewPositionToModelPosition(i)}var o=!1,r=this.configuration.options,a=r.get(34),l=r.get(103),u=r.get(108),d=r.get(102);if(this.lines.setWrappingSettings(a,l,u.wrappingColumn,d)&&(e.emit(new c.ViewFlushedEvent),e.emit(new c.ViewLineMappingChangedEvent),e.emit(new c.ViewDecorationsChangedEvent),this.decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),\n0!==this.viewLayout.getCurrentScrollTop()&&(o=!0)),t.hasChanged(68)&&(this.decorations.reset(),e.emit(new c.ViewDecorationsChangedEvent)),e.emit(new c.ViewConfigurationChangedEvent(t)),this.viewLayout.onConfigurationChanged(t),o&&n){var h=this.coordinatesConverter.convertModelPositionToViewPosition(n),p=this.viewLayout.getVerticalOffsetForLineNumber(h.lineNumber);this.viewLayout.setScrollPositionNow({scrollTop:p+this.viewportStartLineDelta})}},t.prototype._registerModelEvents=function(){var e=this;this._register(this.model.onDidChangeRawContentFast((function(t){try{for(var n=e._beginEmit(),i=!1,o=!1,r=t.changes,s=t.versionId,a=e.lines.createLineBreaksComputer(),l=0,u=r;l<u.length;l++){switch((_=u[l]).changeType){case 4:for(var d=0,h=_.detail;d<h.length;d++){var p=h[d];a.addRequest(p,null)}break;case 2:a.addRequest(_.detail,null)}}for(var g=a.finalize(),f=0,m=0,v=r;m<v.length;m++){var _;switch((_=v[m]).changeType){case 1:e.lines.onModelFlushed(),n.emit(new c.ViewFlushedEvent),e.decorations.reset(),\ne.viewLayout.onFlushed(e.getLineCount()),i=!0;break;case 3:null!==(L=e.lines.onModelLinesDeleted(s,_.fromLineNumber,_.toLineNumber))&&(n.emit(L),e.viewLayout.onLinesDeleted(L.fromLineNumber,L.toLineNumber)),i=!0;break;case 4:var y=g.slice(f,f+_.detail.length);f+=_.detail.length,null!==(E=e.lines.onModelLinesInserted(s,_.fromLineNumber,_.toLineNumber,y))&&(n.emit(E),e.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),i=!0;break;case 2:var C=g[f];f++;var b=e.lines.onModelLineChanged(s,_.lineNumber,C),S=b[0],w=b[1],E=b[2],L=b[3];o=S,w&&n.emit(w),E&&(n.emit(E),e.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),L&&(n.emit(L),e.viewLayout.onLinesDeleted(L.fromLineNumber,L.toLineNumber))}}e.lines.acceptVersionId(s),e.viewLayout.onHeightMaybeChanged(),!i&&o&&(n.emit(new c.ViewLineMappingChangedEvent),n.emit(new c.ViewDecorationsChangedEvent),e.decorations.onLineMappingChanged())}finally{e._endEmit()}if(e.viewportStartLine=-1,e.configuration.setMaxLineNumber(e.model.getLineCount()),\n!e.hasFocus&&e.model.getAttachedEditorCount()>=2&&e.viewportStartLineTrackedRange){var D=e.model._getTrackedRange(e.viewportStartLineTrackedRange);if(D){var N=e.coordinatesConverter.convertModelPositionToViewPosition(D.getStartPosition()),x=e.viewLayout.getVerticalOffsetForLineNumber(N.lineNumber);e.viewLayout.setScrollPositionNow({scrollTop:x+e.viewportStartLineDelta})}}}))),this._register(this.model.onDidChangeTokens((function(t){for(var n=[],i=0,o=t.ranges.length;i<o;i++){var r=t.ranges[i],a=e.coordinatesConverter.convertModelPositionToViewPosition(new s.Position(r.fromLineNumber,1)).lineNumber,l=e.coordinatesConverter.convertModelPositionToViewPosition(new s.Position(r.toLineNumber,e.model.getLineMaxColumn(r.toLineNumber))).lineNumber;n[i]={fromLineNumber:a,toLineNumber:l}}try{e._beginEmit().emit(new c.ViewTokensChangedEvent(n))}finally{e._endEmit()}t.tokenizationSupportChanged&&e._tokenizeViewportSoon.schedule()}))),this._register(this.model.onDidChangeLanguageConfiguration((function(t){try{\ne._beginEmit().emit(new c.ViewLanguageConfigurationEvent)}finally{e._endEmit()}}))),this._register(this.model.onDidChangeOptions((function(t){if(e.lines.setTabSize(e.model.getOptions().tabSize)){e.decorations.onLineMappingChanged(),e.viewLayout.onFlushed(e.getLineCount());try{var n=e._beginEmit();n.emit(new c.ViewFlushedEvent),n.emit(new c.ViewLineMappingChangedEvent),n.emit(new c.ViewDecorationsChangedEvent)}finally{e._endEmit()}}}))),this._register(this.model.onDidChangeDecorations((function(t){e.decorations.onModelDecorationsChanged();try{e._beginEmit().emit(new c.ViewDecorationsChangedEvent)}finally{e._endEmit()}})))},t.prototype.setHiddenAreas=function(e){try{var t=this._beginEmit();this.lines.setHiddenAreas(e)&&(t.emit(new c.ViewFlushedEvent),t.emit(new c.ViewLineMappingChangedEvent),t.emit(new c.ViewDecorationsChangedEvent),this.decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged())}finally{this._endEmit()}},\nt.prototype.getVisibleRanges=function(){var e=this.getCompletelyVisibleViewRange(),t=this.coordinatesConverter.convertViewRangeToModelRange(e),n=this.lines.getHiddenAreas();if(0===n.length)return[t];for(var i=[],o=0,r=t.startLineNumber,s=t.startColumn,l=t.endLineNumber,u=t.endColumn,d=0,c=n.length;d<c;d++){var h=n[d].startLineNumber,p=n[d].endLineNumber;p<r||(h>l||(r<h&&(i[o++]=new a.Range(r,s,h-1,this.model.getLineMaxColumn(h-1))),r=p+1,s=1))}return(r<l||r===l&&s<u)&&(i[o++]=new a.Range(r,s,l,u)),i},t.prototype.getCompletelyVisibleViewRange=function(){var e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,n=e.completelyVisibleEndLineNumber;return new a.Range(t,this.getLineMinColumn(t),n,this.getLineMaxColumn(n))},t.prototype.getCompletelyVisibleViewRangeAtScrollTop=function(e){var t=this.viewLayout.getLinesViewportDataAtScrollTop(e),n=t.completelyVisibleStartLineNumber,i=t.completelyVisibleEndLineNumber;return new a.Range(n,this.getLineMinColumn(n),i,this.getLineMaxColumn(i))},\nt.prototype.saveState=function(){var e=this.viewLayout.saveState(),t=e.scrollTop,n=this.viewLayout.getLineNumberAtVerticalOffset(t),i=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(n,this.getLineMinColumn(n))),o=this.viewLayout.getVerticalOffsetForLineNumber(n)-t;return{scrollLeft:e.scrollLeft,firstPosition:i,firstPositionDeltaTop:o}},t.prototype.reduceRestoreState=function(e){if(void 0===e.firstPosition)return this._reduceRestoreStateCompatibility(e);var t=this.model.validatePosition(e.firstPosition),n=this.coordinatesConverter.convertModelPositionToViewPosition(t),i=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:i}},t.prototype._reduceRestoreStateCompatibility=function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}},t.prototype.getTabSize=function(){return this.model.getOptions().tabSize},t.prototype.getOptions=function(){return this.model.getOptions()},\nt.prototype.getLineCount=function(){return this.lines.getViewLineCount()},t.prototype.setViewport=function(e,t,n){this.viewportStartLine=e;var i=this.coordinatesConverter.convertViewPositionToModelPosition(new s.Position(e,this.getLineMinColumn(e)));this.viewportStartLineTrackedRange=this.model._setTrackedRange(this.viewportStartLineTrackedRange,new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),1);var o=this.viewLayout.getVerticalOffsetForLineNumber(e),r=this.viewLayout.getCurrentScrollTop();this.viewportStartLineDelta=r-o},t.prototype.getActiveIndentGuide=function(e,t,n){return this.lines.getActiveIndentGuide(e,t,n)},t.prototype.getLinesIndentGuides=function(e,t){return this.lines.getViewLinesIndentGuides(e,t)},t.prototype.getLineContent=function(e){return this.lines.getViewLineContent(e)},t.prototype.getLineLength=function(e){return this.lines.getViewLineLength(e)},t.prototype.getLineMinColumn=function(e){return this.lines.getViewLineMinColumn(e)},t.prototype.getLineMaxColumn=function(e){\nreturn this.lines.getViewLineMaxColumn(e)},t.prototype.getLineFirstNonWhitespaceColumn=function(e){var t=i.firstNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+1},t.prototype.getLineLastNonWhitespaceColumn=function(e){var t=i.lastNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+2},t.prototype.getDecorationsInViewport=function(e){return this.decorations.getDecorationsViewportData(e).decorations},t.prototype.getViewLineRenderingData=function(e,t){var n=this.model.mightContainRTL(),i=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),r=this.lines.getViewLineData(t),s=this.decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return new g.ViewLineRenderingData(r.minColumn,r.maxColumn,r.content,r.continuesWithWrappedLine,n,i,r.tokens,s,o,r.startVisibleColumn)},t.prototype.getViewLineData=function(e){return this.lines.getViewLineData(e)},t.prototype.getMinimapLinesRenderingData=function(e,t,n){var i=this.lines.getViewLinesData(e,t,n)\n;return new g.MinimapLinesRenderingData(this.getTabSize(),i)},t.prototype.getAllOverviewRulerDecorations=function(e){return this.lines.getAllOverviewRulerDecorations(this.editorId,o.filterValidationDecorations(this.configuration.options),e)},t.prototype.invalidateOverviewRulerColorCache=function(){for(var e=0,t=this.model.getOverviewRulerDecorations();e<t.length;e++){var n=t[e].options.overviewRuler;n&&n.invalidateCachedColor()}},t.prototype.invalidateMinimapColorCache=function(){for(var e=0,t=this.model.getAllDecorations();e<t.length;e++){var n=t[e].options.minimap;n&&n.invalidateCachedColor()}},t.prototype.getValueInRange=function(e,t){var n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(n,t)},t.prototype.getModelLineMaxColumn=function(e){return this.model.getLineMaxColumn(e)},t.prototype.validateModelPosition=function(e){return this.model.validatePosition(e)},t.prototype.validateModelRange=function(e){return this.model.validateRange(e)},\nt.prototype.deduceModelPositionRelativeToViewPosition=function(e,t,n){var i=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=n:t+=n);var o=this.model.getOffsetAt(i)+t;return this.model.getPositionAt(o)},t.prototype.getEOL=function(){return this.model.getEOL()},t.prototype.getPlainTextToCopy=function(e,t,n){var i=n?\"\\r\\n\":this.model.getEOL();(e=e.slice(0)).sort(a.Range.compareRangesUsingStarts);for(var o=!1,r=!1,s=0,l=e;s<l.length;s++){l[s].isEmpty()?o=!0:r=!0}if(!r){if(!t)return\"\";for(var u=e.map((function(e){return e.startLineNumber})),d=\"\",c=0;c<u.length;c++)c>0&&u[c-1]===u[c]||(d+=this.model.getLineContent(u[c])+i);return d}if(o&&t){for(var h=[],p=0,g=0,f=e;g<f.length;g++){var m=(C=f[g]).startLineNumber;C.isEmpty()?m!==p&&h.push(this.model.getLineContent(m)):h.push(this.model.getValueInRange(C,n?2:0)),p=m}return 1===h.length?h[0]:h}for(var v=[],_=0,y=e;_<y.length;_++){var C;(C=y[_]).isEmpty()||v.push(this.model.getValueInRange(C,n?2:0))}\nreturn 1===v.length?v[0]:v},t.prototype.getRichTextToCopy=function(e,t){var n=this.model.getLanguageIdentifier();if(1===n.id)return null;if(1!==e.length)return null;var i=e[0];if(i.isEmpty()){if(!t)return null;var r=i.startLineNumber;i=new a.Range(r,this.model.getLineMinColumn(r),r,this.model.getLineMaxColumn(r))}var s=this.configuration.options.get(34),l=this._getColorMap(),u=s.fontFamily===o.EDITOR_FONT_DEFAULTS.fontFamily?s.fontFamily:\"'\"+s.fontFamily+\"', \"+o.EDITOR_FONT_DEFAULTS.fontFamily;return{mode:n.language,html:'<div style=\"color: '+l[1]+\";background-color: \"+l[2]+\";font-family: \"+u+\";font-weight: \"+s.fontWeight+\";font-size: \"+s.fontSize+\"px;line-height: \"+s.lineHeight+'px;white-space: pre;\">'+this._getHTMLToCopy(i,l)+\"</div>\"}},t.prototype._getHTMLToCopy=function(e,t){for(var n=e.startLineNumber,i=e.startColumn,o=e.endLineNumber,r=e.endColumn,s=this.getTabSize(),a=\"\",l=n;l<=o;l++){var d=this.model.getLineTokens(l),c=d.getLineContent(),h=l===n?i-1:0,p=l===o?r-1:c.length\n;a+=\"\"===c?\"<br>\":u.tokenizeLineToHTML(c,d.inflate(),t,h,p,s,v.isWindows)}return a},t.prototype._getColorMap=function(){var e=l.TokenizationRegistry.getColorMap(),t=[\"#000000\"];if(e)for(var i=1,o=e.length;i<o;i++)t[i]=n.Color.Format.CSS.formatHex(e[i]);return t},t}(c.ViewEventEmitter);t.ViewModel=y})),define(n[489],i([0,1,19,26,87,10,38,17]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(){}return e.prototype.remove=function(){this.parent&&delete this.parent.children[this.id]},e.findId=function(e,t){var n;\"string\"==typeof e?n=t.id+\"/\"+e:(n=t.id+\"/\"+e.name,void 0!==t.children[n]&&(n=t.id+\"/\"+e.name+\"_\"+e.range.startLineNumber+\"_\"+e.range.startColumn));for(var i=n,o=0;void 0!==t.children[i];o++)i=n+\"_\"+o;return i},e.empty=function(e){for(var t in e.children)return!1;return!0},e}();t.TreeElement=u;var d=function(e){function t(t,n,i){var o=e.call(this)||this;return o.id=t,o.parent=n,o.symbol=i,o.children=Object.create(null),o}return r(t,e),t\n}(u);t.OutlineElement=d;var c=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.id=t,r.parent=n,r.provider=i,r.providerIndex=o,r.children=Object.create(null),r}return r(t,e),t}(u);t.OutlineGroup=c;var h=function(){function e(){this._n=1,this._val=0}return e.prototype.update=function(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this},e}(),p=function(e){function t(t){var n=e.call(this)||this;return n.textModel=t,n.id=\"root\",n.parent=void 0,n._groups=Object.create(null),n.children=Object.create(null),n.id=\"root\",n.parent=void 0,n}return r(t,e),t.create=function(e,n){var o=this,r=this._keys.for(e,!0),s=t._requests.get(r);if(!s){var a=new i.CancellationTokenSource;s={promiseCnt:0,source:a,promise:t._create(e,a.token),model:void 0},t._requests.set(r,s);var l=Date.now();s.promise.then((function(){var t=o._keys.for(e,!1),n=o._requestDurations.get(t);n||(n=new h,o._requestDurations.set(t,n)),n.update(Date.now()-l)}))}return s.model?Promise.resolve(s.model):(s.promiseCnt+=1,\nn.onCancellationRequested((function(){0==--s.promiseCnt&&(s.source.cancel(),t._requests.delete(r))})),new Promise((function(e,n){s.promise.then((function(t){s.model=t,e(t)}),(function(e){t._requests.delete(r),n(e)}))})))},t._create=function(e,o){var r=new i.CancellationTokenSource(o),a=new t(e),d=l.DocumentSymbolProviderRegistry.ordered(e),h=d.map((function(e,n){var i=u.findId(\"provider_\"+n,a),o=new c(i,a,e,n);return Promise.resolve(e.provideDocumentSymbols(a.textModel,r.token)).then((function(e){for(var n=0,i=e||[];n<i.length;n++){var r=i[n];t._makeOutlineElement(r,o)}return o}),(function(e){return s.onUnexpectedExternalError(e),o})).then((function(e){u.empty(e)?e.remove():a._groups[i]=e}))})),p=l.DocumentSymbolProviderRegistry.onDidChange((function(){var t=l.DocumentSymbolProviderRegistry.ordered(e);n.equals(t,d)||r.cancel()}));return Promise.all(h).then((function(){return r.token.isCancellationRequested&&!o.isCancellationRequested?t._create(e,o):a._compact()})).finally((function(){p.dispose()}))},\nt._makeOutlineElement=function(e,n){var i=u.findId(e,n),o=new d(i,n,e);if(e.children)for(var r=0,s=e.children;r<s.length;r++){var a=s[r];t._makeOutlineElement(a,o)}n.children[o.id]=o},t.prototype._compact=function(){var e=0;for(var t in this._groups){var n=this._groups[t];void 0===o.first(n.children)?delete this._groups[t]:e+=1}if(1!==e)this.children=this._groups;else{n=o.first(this._groups);for(var t in n.children){var i=n.children[t];i.parent=this,this.children[i.id]=i}}return this},t._requestDurations=new a.LRUCache(50,.7),t._requests=new a.LRUCache(9,.75),t._keys=new(function(){function e(){this._counter=1,this._data=new WeakMap}return e.prototype.for=function(e,t){return e.id+\"/\"+(t?e.getVersionId():\"\")+\"/\"+this._hash(l.DocumentSymbolProviderRegistry.all(e))},e.prototype._hash=function(e){for(var t=\"\",n=0,i=e;n<i.length;n++){var o=i[n],r=this._data.get(o);void 0===r&&(r=this._counter++,this._data.set(o,r)),t+=r}return t},e}()),t}(u);t.OutlineModel=p})),define(n[490],i([0,1,30]),(function(e,t,n){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e){this.editor=e,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}return e.prototype.getDecorationOption=function(t){return t?this.showFoldingHighlights?e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION},e.prototype.deltaDecorations=function(e,t){return this.editor.deltaDecorations(e,t)},e.prototype.changeDecorations=function(e){return this.editor.changeDecorations(e)},e.COLLAPSED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,afterContentClassName:\"inline-folded\",linesDecorationsClassName:\"codicon codicon-chevron-right\"}),e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,afterContentClassName:\"inline-folded\",className:\"folded-background\",isWholeLine:!0,linesDecorationsClassName:\"codicon codicon-chevron-right\"}),\ne.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,linesDecorationsClassName:\"codicon codicon-chevron-down\"}),e.EXPANDED_VISUAL_DECORATION=n.ModelDecorationOptions.register({stickiness:1,linesDecorationsClassName:\"codicon codicon-chevron-down alwaysShowFoldIcons\"}),e}();t.FoldingDecorationProvider=i})),define(n[491],i([0,1,150,30,41]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=5e3;t.ID_INDENT_PROVIDER=\"indent\";var s=function(){function e(e){this.editorModel=e,this.id=t.ID_INDENT_PROVIDER}return e.prototype.dispose=function(){},e.prototype.compute=function(e){var t=o.LanguageConfigurationRegistry.getFoldingRules(this.editorModel.getLanguageIdentifier().id),n=t&&!!t.offSide,i=t&&t.markers;return Promise.resolve(l(this.editorModel,n,i))},e}();t.IndentRangeProvider=s;var a=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}\nreturn e.prototype.insertFirst=function(e,t,i){if(!(e>n.MAX_LINE_NUMBER||t>n.MAX_LINE_NUMBER)){var o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}},e.prototype.toIndentRanges=function(e){if(this._length<=this._foldingRangesLimit){for(var t=new Uint32Array(this._length),o=new Uint32Array(this._length),r=this._length-1,s=0;r>=0;r--,s++)t[s]=this._startIndexes[r],o[s]=this._endIndexes[r];return new n.FoldingRegions(t,o)}var a=0,l=this._indentOccurrences.length;for(r=0;r<this._indentOccurrences.length;r++){var u=this._indentOccurrences[r];if(u){if(u+a>this._foldingRangesLimit){l=r;break}a+=u}}var d=e.getOptions().tabSize;for(t=new Uint32Array(this._foldingRangesLimit),o=new Uint32Array(this._foldingRangesLimit),r=this._length-1,s=0;r>=0;r--){var c=this._startIndexes[r],h=e.getLineContent(c),p=i.TextModel.computeIndentLevel(h,d);(p<l||p===l&&a++<this._foldingRangesLimit)&&(t[s]=c,o[s]=this._endIndexes[r],s++)}\nreturn new n.FoldingRegions(t,o)},e}();function l(e,t,n,o){void 0===o&&(o=r);var s=e.getOptions().tabSize,l=new a(o),u=void 0;n&&(u=new RegExp(\"(\"+n.start.source+\")|(?:\"+n.end.source+\")\"));var d=[],c=e.getLineCount()+1;d.push({indent:-1,endAbove:c,line:c});for(var h=e.getLineCount();h>0;h--){var p=e.getLineContent(h),g=i.TextModel.computeIndentLevel(p,s),f=d[d.length-1];if(-1!==g){var m=void 0;if(u&&(m=p.match(u))){if(!m[1]){d.push({indent:-2,endAbove:h,line:h});continue}for(var v=d.length-1;v>0&&-2!==d[v].indent;)v--;if(v>0){d.length=v+1,f=d[v],l.insertFirst(h,f.line,g),f.line=h,f.indent=g,f.endAbove=h;continue}}if(f.indent>g){do{d.pop(),f=d[d.length-1]}while(f.indent>g);var _=f.endAbove-1;_-h>=1&&l.insertFirst(h,_,g)}f.indent===g?f.endAbove=h:d.push({indent:g,endAbove:h,line:h})}else t&&(f.endAbove=h)}return l.toIndentRanges(e)}t.RangesCollector=a,t.computeRanges=l})),define(n[492],i([0,1,5,211,3,22,90,41,385]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var u=function(){function e(e,t,n){this._selection=e,this._isMovingDown=t,this._autoIndent=n,this._selectionId=null,this._moveEndLineSelectionShrink=!1}return e.prototype.getEditOperations=function(e,t){var i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i)this._selectionId=t.trackSelection(this._selection);else if(this._isMovingDown||1!==this._selection.startLineNumber){this._moveEndPositionDown=!1;var s=this._selection;s.startLineNumber<s.endLineNumber&&1===s.endColumn&&(this._moveEndPositionDown=!0,s=s.setEndPosition(s.endLineNumber-1,e.getLineMaxColumn(s.endLineNumber-1)));var u=e.getOptions(),d=u.tabSize,c=u.indentSize,h=u.insertSpaces,p=this.buildIndentConverter(d,c,h),g={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:null};if(s.startLineNumber===s.endLineNumber&&1===e.getLineMaxColumn(s.startLineNumber)){\nvar f=s.startLineNumber,m=this._isMovingDown?f+1:f-1;1===e.getLineMaxColumn(m)?t.addEditOperation(new o.Range(1,1,1,1),null):(t.addEditOperation(new o.Range(f,1,f,1),e.getLineContent(m)),t.addEditOperation(new o.Range(m,1,m,e.getLineMaxColumn(m)),null)),s=new r.Selection(m,1,m,1)}else{var v,_=void 0;if(this._isMovingDown){v=s.endLineNumber+1,_=e.getLineContent(v),t.addEditOperation(new o.Range(v-1,e.getLineMaxColumn(v-1),v,e.getLineMaxColumn(v)),null);var y=_;if(this.shouldAutoIndent(e,s)){var C=this.matchEnterRule(e,p,d,v,s.startLineNumber-1);if(null!==C){var b=n.getLeadingWhitespace(e.getLineContent(v)),S=C+l.getSpaceCnt(b,d),w=l.generateIndent(S,d,h);y=w+this.trimLeft(_)}else{g.getLineContent=function(t){return t===s.startLineNumber?e.getLineContent(v):e.getLineContent(t)};var E=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(v,1),s.startLineNumber,p);if(null!==E){b=n.getLeadingWhitespace(e.getLineContent(v))\n;if((S=l.getSpaceCnt(E,d))!==(I=l.getSpaceCnt(b,d))){w=l.generateIndent(S,d,h);y=w+this.trimLeft(_)}}}if(t.addEditOperation(new o.Range(s.startLineNumber,1,s.startLineNumber,1),y+\"\\n\"),null!==(N=this.matchEnterRule(e,p,d,s.startLineNumber,s.startLineNumber,y)))0!==N&&this.getIndentEditsOfMovingBlock(e,t,s,d,h,N);else{g.getLineContent=function(t){return t===s.startLineNumber?y:t>=s.startLineNumber+1&&t<=s.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t)};var L=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(v,1),s.startLineNumber+1,p);if(null!==L){b=n.getLeadingWhitespace(e.getLineContent(s.startLineNumber));if((S=l.getSpaceCnt(L,d))!==(I=l.getSpaceCnt(b,d))){var D=S-I;this.getIndentEditsOfMovingBlock(e,t,s,d,h,D)}}}}else t.addEditOperation(new o.Range(s.startLineNumber,1,s.startLineNumber,1),y+\"\\n\")}else{var N;if(v=s.startLineNumber-1,_=e.getLineContent(v),t.addEditOperation(new o.Range(v,1,v+1,1),null),\nt.addEditOperation(new o.Range(s.endLineNumber,e.getLineMaxColumn(s.endLineNumber),s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),\"\\n\"+_),this.shouldAutoIndent(e,s))if(g.getLineContent=function(t){return t===v?e.getLineContent(s.startLineNumber):e.getLineContent(t)},null!==(N=this.matchEnterRule(e,p,d,s.startLineNumber,s.startLineNumber-2)))0!==N&&this.getIndentEditsOfMovingBlock(e,t,s,d,h,N);else{var x=a.LanguageConfigurationRegistry.getGoodIndentForLine(this._autoIndent,g,e.getLanguageIdAtPosition(s.startLineNumber,1),v,p);if(null!==x){var I,M=n.getLeadingWhitespace(e.getLineContent(s.startLineNumber));if((S=l.getSpaceCnt(x,d))!==(I=l.getSpaceCnt(M,d))){D=S-I;this.getIndentEditsOfMovingBlock(e,t,s,d,h,D)}}}}}this._selectionId=t.trackSelection(s)}else this._selectionId=t.trackSelection(this._selection)},e.prototype.buildIndentConverter=function(e,t,n){return{shiftIndent:function(o){return i.ShiftCommand.shiftIndent(o,o.length+1,e,t,n)},unshiftIndent:function(o){\nreturn i.ShiftCommand.unshiftIndent(o,o.length+1,e,t,n)}}},e.prototype.matchEnterRule=function(e,t,i,r,u,d){for(var c=u;c>=1;){var h=void 0;if(h=c===u&&void 0!==d?d:e.getLineContent(c),n.lastNonWhitespaceIndex(h)>=0)break;c--}if(c<1||r>e.getLineCount())return null;var p=e.getLineMaxColumn(c),g=a.LanguageConfigurationRegistry.getEnterAction(this._autoIndent,e,new o.Range(c,p,c,p));if(g){var f=g.indentation;g.indentAction===s.IndentAction.None?f=g.indentation+g.appendText:g.indentAction===s.IndentAction.Indent?f=g.indentation+g.appendText:g.indentAction===s.IndentAction.IndentOutdent?f=g.indentation:g.indentAction===s.IndentAction.Outdent&&(f=t.unshiftIndent(g.indentation)+g.appendText);var m=e.getLineContent(r);if(this.trimLeft(m).indexOf(this.trimLeft(f))>=0){var v=n.getLeadingWhitespace(e.getLineContent(r)),_=n.getLeadingWhitespace(f),y=a.LanguageConfigurationRegistry.getIndentMetadata(e,r);return null!==y&&2&y&&(_=t.unshiftIndent(_)),l.getSpaceCnt(_,i)-l.getSpaceCnt(v,i)}}return null},\ne.prototype.trimLeft=function(e){return e.replace(/^\\s+/,\"\")},e.prototype.shouldAutoIndent=function(e,t){if(this._autoIndent<4)return!1;if(!e.isCheapToTokenize(t.startLineNumber))return!1;var n=e.getLanguageIdAtPosition(t.startLineNumber,1);return n===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==a.LanguageConfigurationRegistry.getIndentRulesSupport(n)},e.prototype.getIndentEditsOfMovingBlock=function(e,t,i,r,s,a){for(var u=i.startLineNumber;u<=i.endLineNumber;u++){var d=e.getLineContent(u),c=n.getLeadingWhitespace(d),h=l.getSpaceCnt(c,r)+a,p=l.generateIndent(h,r,s);p!==c&&(t.addEditOperation(new o.Range(u,1,u,c.length+1),p),u===i.endLineNumber&&i.endColumn<=c.length+1&&\"\"===p&&(this._moveEndLineSelectionShrink=!0))}},e.prototype.computeCursorState=function(e,t){var n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n},e}()\n;t.MoveLinesCommand=u})),define(n[493],i([0,1,6,104,27,127,2,31,3,30,324]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=new o.Color(new o.RGBA(0,122,204)),c={showArrow:!0,showFrame:!0,className:\"\",frameColor:d,arrowColor:d,keepEditorSelection:!1},h=function(){function e(e,t,n,i,o,r){this.id=\"\",this.domNode=e,this.afterLineNumber=t,this.afterColumn=n,this.heightInLines=i,this._onDomNodeTop=o,this._onComputedHeight=r}return e.prototype.onDomNodeTop=function(e){this._onDomNodeTop(e)},e.prototype.onComputedHeight=function(e){this._onComputedHeight(e)},e}();t.ViewZoneDelegate=h;var p=function(){function e(e,t){this._id=e,this._domNode=t}return e.prototype.getId=function(){return this._id},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return null},e}();t.OverlayWidgetDelegate=p;var g=function(){function e(t){this._editor=t,this._ruleName=e._IdGenerator.nextId(),this._decorations=[],this._color=null,this._height=-1}\nreturn e.prototype.dispose=function(){this.hide(),n.removeCSSRulesContainingSelector(this._ruleName)},Object.defineProperty(e.prototype,\"color\",{set:function(e){this._color!==e&&(this._color=e,this._updateStyle())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"height\",{set:function(e){this._height!==e&&(this._height=e,this._updateStyle())},enumerable:!0,configurable:!0}),e.prototype._updateStyle=function(){n.removeCSSRulesContainingSelector(this._ruleName),n.createCSSRule(\".monaco-editor \"+this._ruleName,\"border-style: solid; border-color: transparent; border-bottom-color: \"+this._color+\"; border-width: \"+this._height+\"px; bottom: -\"+this._height+\"px; margin-left: -\"+this._height+\"px; \")},e.prototype.show=function(e){this._decorations=this._editor.deltaDecorations(this._decorations,[{range:l.Range.fromPositions(e),options:{className:this._ruleName,stickiness:1}}])},e.prototype.hide=function(){this._editor.deltaDecorations(this._decorations,[])},\ne._IdGenerator=new r.IdGenerator(\".arrow-decoration-\"),e}(),f=function(){function e(e,t){var n=this;void 0===t&&(t={}),this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._positionMarkerId=[],this._viewZone=null,this._disposables=new s.DisposableStore,this.container=null,this._isShowing=!1,this.editor=e,this.options=a.deepClone(t),a.mixin(this.options,c,!1),this.domNode=document.createElement(\"div\"),this.options.isAccessible||(this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.domNode.setAttribute(\"role\",\"presentation\")),this._disposables.add(this.editor.onDidLayoutChange((function(e){var t=n._getWidth(e);n.domNode.style.width=t+\"px\",n.domNode.style.left=n._getLeft(e)+\"px\",n._onWidth(t)})))}return e.prototype.dispose=function(){var e=this;this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id),e._viewZone=null})),\nthis.editor.deltaDecorations(this._positionMarkerId,[]),this._positionMarkerId=[],this._disposables.dispose()},e.prototype.create=function(){n.addClass(this.domNode,\"zone-widget\"),this.options.className&&n.addClass(this.domNode,this.options.className),this.container=document.createElement(\"div\"),n.addClass(this.container,\"zone-widget-container\"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new g(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()},e.prototype.style=function(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()},e.prototype._applyStyles=function(){if(this.container&&this.options.frameColor){var e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){var t=this.options.arrowColor.toString();this._arrow.color=t}},\ne.prototype._getWidth=function(e){return e.width-e.minimapWidth-e.verticalScrollbarWidth},e.prototype._getLeft=function(e){return e.minimapWidth>0&&0===e.minimapLeft?e.minimapWidth:0},e.prototype._onViewZoneTop=function(e){this.domNode.style.top=e+\"px\"},e.prototype._onViewZoneHeight=function(e){if(this.domNode.style.height=e+\"px\",this.container){var t=e-this._decoratingElementsHeight();this.container.style.height=t+\"px\";var n=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(n))}this._resizeSash&&this._resizeSash.layout()},Object.defineProperty(e.prototype,\"position\",{get:function(){var e=this._positionMarkerId[0];if(e){var t=this.editor.getModel();if(t){var n=t.getDecorationRange(e);if(n)return n.getStartPosition()}}},enumerable:!0,configurable:!0}),e.prototype.show=function(e,t){var n=l.Range.isIRange(e)?l.Range.lift(e):l.Range.fromPositions(e);this._isShowing=!0,this._showImpl(n,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:n,\noptions:u.ModelDecorationOptions.EMPTY}])},e.prototype.hide=function(){var e=this;this._viewZone&&(this.editor.changeViewZones((function(t){e._viewZone&&t.removeZone(e._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow&&this._arrow.hide()},e.prototype._decoratingElementsHeight=function(){var e=this.editor.getOption(49),t=0;this.options.showArrow&&(t+=2*Math.round(e/3));this.options.showFrame&&(t+=2*Math.round(e/9));return t},e.prototype._showImpl=function(e,t){var n=this,i=e.getStartPosition(),o=this.editor.getLayoutInfo(),r=this._getWidth(o);this.domNode.style.width=r+\"px\",this.domNode.style.left=this._getLeft(o)+\"px\";var s=document.createElement(\"div\");s.style.overflow=\"hidden\";var a=this.editor.getOption(49),l=this.editor.getLayoutInfo().height/a*.8;t>=l&&(t=l);var u=0,d=0;if(this._arrow&&this.options.showArrow&&(u=Math.round(a/3),this._arrow.height=u,this._arrow.show(i)),\nthis.options.showFrame&&(d=Math.round(a/9)),this.editor.changeViewZones((function(e){n._viewZone&&e.removeZone(n._viewZone.id),n._overlayWidget&&(n.editor.removeOverlayWidget(n._overlayWidget),n._overlayWidget=null),n.domNode.style.top=\"-1000px\",n._viewZone=new h(s,i.lineNumber,i.column,t,(function(e){return n._onViewZoneTop(e)}),(function(e){return n._onViewZoneHeight(e)})),n._viewZone.id=e.addZone(n._viewZone),n._overlayWidget=new p(\"vs.editor.contrib.zoneWidget\"+n._viewZone.id,n.domNode),n.editor.addOverlayWidget(n._overlayWidget)})),this.container&&this.options.showFrame){var c=this.options.frameWidth?this.options.frameWidth:d;this.container.style.borderTopWidth=c+\"px\",this.container.style.borderBottomWidth=c+\"px\"}var g=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=u+\"px\",this.container.style.height=g+\"px\",this.container.style.overflow=\"hidden\"),this._doLayout(g,r),this.options.keepEditorSelection||this.editor.setSelection(e);var f=this.editor.getModel();if(f){\nvar m=e.endLineNumber+1;m<=f.getLineCount()?this.revealLine(m,!1):this.revealLine(f.getLineCount(),!0)}},e.prototype.revealLine=function(e,t){t?this.editor.revealLineInCenter(e,0):this.editor.revealLine(e,0)},e.prototype.setCssClass=function(e,t){this.container&&(t&&this.container.classList.remove(t),n.addClass(this.container,e))},e.prototype._onWidth=function(e){},e.prototype._doLayout=function(e,t){},e.prototype._relayout=function(e){var t=this;this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((function(n){t._viewZone&&(t._viewZone.heightInLines=e,n.layoutZone(t._viewZone.id))}))},e.prototype._initSash=function(){var e,t=this;this._resizeSash||(this._resizeSash=this._disposables.add(new i.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.hide(),this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((function(n){t._viewZone&&(e={startY:n.startY,heightInLines:t._viewZone.heightInLines})}))),\nthis._disposables.add(this._resizeSash.onDidEnd((function(){e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((function(n){if(e){var i=(n.currentY-e.startY)/t.editor.getOption(49),o=i<0?Math.ceil(i):Math.floor(i),r=e.heightInLines+o;r>5&&r<35&&t._relayout(r)}}))))},e.prototype.getHorizontalSashLeft=function(){return 0},e.prototype.getHorizontalSashTop=function(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2},e.prototype.getHorizontalSashWidth=function(){var e=this.editor.getLayoutInfo();return e.width-e.minimapWidth},e}();t.ZoneWidget=f})),define(n[216],i([0,1,107,17,63,203]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new a(e,t);var n=a.getStackElementId(e)\n;n.length>0&&(n+=\"|\"),n+=t;var i=this._entries[n];return i||(i=new a(e,t),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),a=function(){function e(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}return e.getStackElementId=function(e){for(var t=\"\";null!==e;)t.length>0&&(t+=\"|\"),t+=e.state,e=e.parent;return t},e._equals=function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t},e.prototype.equals=function(t){return e._equals(this,t)},e.prototype.push=function(e){return s.create(this,e)},e.prototype.pop=function(){return this.parent},e.prototype.popall=function(){for(var e=this;e.parent;)e=e.parent;return e},e.prototype.switchTo=function(e){return s.create(this.parent,e)},e}(),l=function(){function e(e,t){this.modeId=e,this.state=t}return e.prototype.equals=function(e){return this.modeId===e.modeId&&this.state.equals(e.state)},e.prototype.clone=function(){\nreturn this.state.clone()===this.state?this:new e(this.modeId,this.state)},e}(),u=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==t)return new d(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new d(e,t);var n=a.getStackElementId(e),i=this._entries[n];return i||(i=new d(e,null),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),d=function(){function e(e,t){this.stack=e,this.embeddedModeData=t}return e.prototype.clone=function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:u.create(this.stack,this.embeddedModeData)},e.prototype.equals=function(t){return t instanceof e&&(!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData)))},e}(),c=function(){function e(){this._tokens=[],\nthis._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return e.prototype.enterMode=function(e,t){this._language=t},e.prototype.emit=function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new n.Token(e,t,this._language)))},e.prototype.nestedModeTokenize=function(e,t,n){var o=t.modeId,r=t.state,s=i.TokenizationRegistry.get(o);if(!s)return this.enterMode(n,o),this.emit(n,\"\"),r;var a=s.tokenize(e,r,n);return this._tokens=this._tokens.concat(a.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,a.endState},e.prototype.finalize=function(e){return new n.TokenizationResult(this._tokens,e)},e}(),h=function(){function e(e,t){this._modeService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return e.prototype.enterMode=function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id},\ne.prototype.emit=function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))},e._merge=function(e,t,n){var i=null!==e?e.length:0,o=t.length,r=null!==n?n.length:0;if(0===i&&0===o&&0===r)return new Uint32Array(0);if(0===i&&0===o)return n;if(0===o&&0===r)return e;var s=new Uint32Array(i+o+r);null!==e&&s.set(e);for(var a=0;a<o;a++)s[i+a]=t[a];return null!==n&&s.set(n,i+o),s},e.prototype.nestedModeTokenize=function(t,n,o){var r=n.modeId,s=n.state,a=i.TokenizationRegistry.get(r);if(!a)return this.enterMode(o,r),this.emit(o,\"\"),s;var l=a.tokenize2(t,s,o);return this._prependTokens=e._merge(this._prependTokens,this._tokens,l.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,l.endState},e.prototype.finalize=function(t){return new n.TokenizationResult2(e._merge(this._prependTokens,this._tokens,null),t)},e}(),p=function(){function e(e,t,n,o){var r=this;this._modeService=e,\nthis._standaloneThemeService=t,this._modeId=n,this._lexer=o,this._embeddedModes=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);var s=!1;this._tokenizationRegistryListener=i.TokenizationRegistry.onDidChange((function(e){if(!s){for(var t=!1,n=0,o=e.changedLanguages.length;n<o;n++){var a=e.changedLanguages[n];if(r._embeddedModes[a]){t=!0;break}}t&&(s=!0,i.TokenizationRegistry.fire([r._modeId]),s=!1)}}))}return e.prototype.dispose=function(){this._tokenizationRegistryListener.dispose()},e.prototype.getLoadStatus=function(){var t=[];for(var n in this._embeddedModes){var o=i.TokenizationRegistry.get(n);if(o){if(o instanceof e){var r=o.getLoadStatus();!1===r.loaded&&t.push(r.promise)}}else{var s=i.TokenizationRegistry.getPromise(n);s&&t.push(s)}}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((function(e){}))}},e.prototype.getInitialState=function(){var e=s.create(null,this._lexer.start);return u.create(e,null)},e.prototype.tokenize=function(e,t,n){\nvar i=new c,o=this._tokenize(e,t,n,i);return i.finalize(o)},e.prototype.tokenize2=function(e,t,n){var i=new h(this._modeService,this._standaloneThemeService.getTheme().tokenTheme),o=this._tokenize(e,t,n,i);return i.finalize(o)},e.prototype._tokenize=function(e,t,n,i){return t.embeddedModeData?this._nestedTokenize(e,t,n,i):this._myTokenize(e,t,n,i)},e.prototype._findLeavingNestedModeOffset=function(e,t){var n=this._lexer.tokenizer[t.stack.state];if(!n&&!(n=r.findRules(this._lexer,t.stack.state)))throw r.createError(this._lexer,\"tokenizer state is not defined: \"+t.stack.state);for(var i=-1,o=!1,s=0,a=n;s<a.length;s++){var l=a[s];if(r.isIAction(l.action)&&\"@pop\"===l.action.nextEmbedded){o=!0;var u=l.regex,d=l.regex.source;\"^(?:\"===d.substr(0,4)&&\")\"===d.substr(d.length-1,1)&&(u=new RegExp(d.substr(4,d.length-5),u.ignoreCase?\"i\":\"\"));var c=e.search(u);-1===c||0!==c&&l.matchOnlyAtLineStart||(-1===i||c<i)&&(i=c)}}\nif(!o)throw r.createError(this._lexer,'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: '+t.stack.state);return i},e.prototype._nestedTokenize=function(e,t,n,i){var o=this._findLeavingNestedModeOffset(e,t);if(-1===o){var r=i.nestedModeTokenize(e,t.embeddedModeData,n);return u.create(t.stack,new l(t.embeddedModeData.modeId,r))}var s=e.substring(0,o);s.length>0&&i.nestedModeTokenize(s,t.embeddedModeData,n);var a=e.substring(o);return this._myTokenize(a,t,n+o,i)},e.prototype._safeRuleName=function(e){return e?e.name:\"(unknown)\"},e.prototype._myTokenize=function(e,t,n,i){i.enterMode(n,this._modeId);for(var o=e.length,s=t.embeddedModeData,a=t.stack,l=0,d=null,c=!0;c||l<o;){var h=l,p=a.depth,f=d?d.groups.length:0,m=a.state,v=null,_=null,y=null,C=null,b=null;if(d){v=d.matches;var S=d.groups.shift();_=S.matched,y=S.action,C=d.rule,0===d.groups.length&&(d=null)}else{if(!c&&l>=o)break;c=!1;var w=this._lexer.tokenizer[m]\n;if(!w&&!(w=r.findRules(this._lexer,m)))throw r.createError(this._lexer,\"tokenizer state is not defined: \"+m);for(var E=e.substr(l),L=0,D=w;L<D.length;L++){var N=D[L];if((0===l||!N.matchOnlyAtLineStart)&&(v=E.match(N.regex))){_=v[0],y=N.action;break}}}if(v||(v=[\"\"],_=\"\"),y||(l<o&&(_=(v=[e.charAt(l)])[0]),y=this._lexer.defaultToken),null===_)break;for(l+=_.length;r.isFuzzyAction(y)&&r.isIAction(y)&&y.test;)y=y.test(_,v,m,l===o);var x=null;if(\"string\"==typeof y||Array.isArray(y))x=y;else if(y.group)x=y.group;else if(null!==y.token&&void 0!==y.token){if(x=y.tokenSubst?r.substituteMatches(this._lexer,y.token,_,v,m):y.token,y.nextEmbedded)if(\"@pop\"===y.nextEmbedded){if(!s)throw r.createError(this._lexer,\"cannot pop embedded mode if not inside one\");s=null}else{if(s)throw r.createError(this._lexer,\"cannot enter embedded mode from within an embedded mode\");b=r.substituteMatches(this._lexer,y.nextEmbedded,_,v,m)}if(y.goBack&&(l=Math.max(0,l-y.goBack)),y.switchTo&&\"string\"==typeof y.switchTo){\nif(\"@\"===(I=r.substituteMatches(this._lexer,y.switchTo,_,v,m))[0]&&(I=I.substr(1)),!r.findRules(this._lexer,I))throw r.createError(this._lexer,\"trying to switch to a state '\"+I+\"' that is undefined in rule: \"+this._safeRuleName(C));a=a.switchTo(I)}else{if(y.transform&&\"function\"==typeof y.transform)throw r.createError(this._lexer,\"action.transform not supported\");if(y.next)if(\"@push\"===y.next){if(a.depth>=this._lexer.maxStack)throw r.createError(this._lexer,\"maximum tokenizer stack size reached: [\"+a.state+\",\"+a.parent.state+\",...]\");a=a.push(m)}else if(\"@pop\"===y.next){if(a.depth<=1)throw r.createError(this._lexer,\"trying to pop an empty stack in rule: \"+this._safeRuleName(C));a=a.pop()}else if(\"@popall\"===y.next)a=a.popall();else{var I;if(\"@\"===(I=r.substituteMatches(this._lexer,y.next,_,v,m))[0]&&(I=I.substr(1)),!r.findRules(this._lexer,I))throw r.createError(this._lexer,\"trying to set a next state '\"+I+\"' that is undefined in rule: \"+this._safeRuleName(C));a=a.push(I)}}\ny.log&&\"string\"==typeof y.log&&r.log(this._lexer,this._lexer.languageId+\": \"+r.substituteMatches(this._lexer,y.log,_,v,m))}if(null===x)throw r.createError(this._lexer,\"lexer rule has no well-defined action in rule: \"+this._safeRuleName(C));if(Array.isArray(x)){if(d&&d.groups.length>0)throw r.createError(this._lexer,\"groups cannot be nested: \"+this._safeRuleName(C));if(v.length!==x.length+1)throw r.createError(this._lexer,\"matched number of groups does not match the number of actions in rule: \"+this._safeRuleName(C));for(var M=0,k=1;k<v.length;k++)M+=v[k].length;if(M!==_.length)throw r.createError(this._lexer,\"with groups, all characters should be matched in consecutive groups in rule: \"+this._safeRuleName(C));d={rule:C,matches:v,groups:[]};for(k=0;k<x.length;k++)d.groups[k]={action:x[k],matched:v[k+1]};l-=_.length}else{if(\"@rematch\"===x&&(l-=_.length,_=\"\",v=null,x=\"\"),0===_.length){if(0===o||p!==a.depth||m!==a.state||(d?d.groups.length:0)!==f)continue\n;throw r.createError(this._lexer,\"no progress in tokenizer in rule: \"+this._safeRuleName(C))}var T=null;if(r.isString(x)&&0===x.indexOf(\"@brackets\")){var R=x.substr(\"@brackets\".length),O=g(this._lexer,_);if(!O)throw r.createError(this._lexer,\"@brackets token returned but no bracket defined as: \"+_);T=r.sanitize(O.token+R)}else{var P=\"\"===x?\"\":x+this._lexer.tokenPostfix;T=r.sanitize(P)}if(i.emit(h+n,T),null!==b){var A=this._modeService.getModeIdForLanguageName(b);A&&(b=A);var F=this._getNestedEmbeddedModeData(b);if(l<o){E=e.substr(l);return this._nestedTokenize(E,u.create(a,F),n+l,i)}return u.create(a,F)}}}return u.create(a,s)},e.prototype._getNestedEmbeddedModeData=function(e){var t=this._locateMode(e);if(t){var n=i.TokenizationRegistry.get(t);if(n)return new l(t,n.getInitialState())}return new l(t||o.NULL_MODE_ID,o.NULL_STATE)},e.prototype._locateMode=function(e){if(!e||!this._modeService.isRegisteredMode(e))return null;if(e===this._modeId)return e;var t=this._modeService.getModeId(e)\n;return t&&(this._modeService.triggerMode(t),this._embeddedModes[t]=!0),t},e}();function g(e,t){if(!t)return null;t=r.fixCase(e,t);for(var n=0,i=e.brackets;n<i.length;n++){var o=i[n];if(o.open===t)return{token:o.token,bracketType:1};if(o.close===t)return{token:o.token,bracketType:-1}}return null}t.MonarchTokenizer=p,t.createTokenizationSupport=function(e,t,n,i){return new p(e,t,n,i)}})),define(n[494],i([0,1,15,5,93,17,110,69,216]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(){}return e.colorizeElement=function(e,t,n,i){var o=(i=i||{}).theme||\"vs\",r=i.mimeType||n.getAttribute(\"lang\")||n.getAttribute(\"data-lang\");if(!r)return console.error(\"Mode not detected\"),Promise.resolve();e.setTheme(o);var s=n.firstChild?n.firstChild.nodeValue:\"\";n.className+=\" \"+o;return this.colorize(t,s||\"\",r,i).then((function(e){n.innerHTML=e}),(function(e){return console.error(e)}))},e.colorize=function(e,t,o,s){var a=4\n;s&&\"number\"==typeof s.tabSize&&(a=s.tabSize),i.startsWithUTF8BOM(t)&&(t=t.substr(1));var l=t.split(/\\r\\n|\\r|\\n/),u=e.getModeId(o);if(!u)return Promise.resolve(c(l,a));e.triggerMode(u);var h=r.TokenizationRegistry.get(u);if(h)return d(l,a,h);var p=r.TokenizationRegistry.getPromise(u);return p?new Promise((function(e,t){p.then((function(n){d(l,a,n).then(e,t)}),t)})):new Promise((function(e,t){var i=null,o=null,s=function(){i&&(i.dispose(),i=null),o&&(o.dispose(),o=null);var n=r.TokenizationRegistry.get(u);n?d(l,a,n).then(e,t):e(c(l,a))};(o=new n.TimeoutTimer).cancelAndSet(s,500),i=r.TokenizationRegistry.onDidChange((function(e){e.changedLanguages.indexOf(u)>=0&&s()}))}))},e.colorizeLine=function(e,t,n,i,o){void 0===o&&(o=4);var r=a.ViewLineRenderingData.isBasicASCII(e,t),l=a.ViewLineRenderingData.containsRTL(e,r,n);return s.renderViewLine2(new s.RenderLineInput(!1,!0,e,!1,r,l,0,i,[],o,0,0,0,-1,\"none\",!1,!1,null)).html},e.colorizeModelLine=function(e,t,n){void 0===n&&(n=4);var i=e.getLineContent(t)\n;e.forceTokenization(t);var o=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,n)},e}();function d(e,t,n){return new Promise((function(i,r){var u=function(){var d=function(e,t,n){for(var i=[],r=n.getInitialState(),l=0,u=e.length;l<u;l++){var d=e[l],c=n.tokenize2(d,r,0);o.LineTokens.convertToEndOffset(c.tokens,d.length);var h=new o.LineTokens(c.tokens,d),p=a.ViewLineRenderingData.isBasicASCII(d,!0),g=a.ViewLineRenderingData.containsRTL(d,p,!0),f=s.renderViewLine2(new s.RenderLineInput(!1,!0,d,!1,p,g,0,h.inflate(),[],t,0,0,0,-1,\"none\",!1,!1,null));(i=i.concat(f.html)).push(\"<br/>\"),r=c.endState}return i.join(\"\")}(e,t,n);if(n instanceof l.MonarchTokenizer){var c=n.getLoadStatus();if(!1===c.loaded)return void c.promise.then(u,r)}i(d)};u()}))}function c(e,t){var n=[],i=new Uint32Array(2);i[0]=0,i[1]=16793600;for(var r=0,l=e.length;r<l;r++){var u=e[r];i[0]=u.length\n;var d=new o.LineTokens(i,u),c=a.ViewLineRenderingData.isBasicASCII(u,!0),h=a.ViewLineRenderingData.containsRTL(u,c,!0),p=s.renderViewLine2(new s.RenderLineInput(!1,!0,u,!1,c,h,0,d,[],t,0,0,0,-1,\"none\",!1,!1,null));(n=n.concat(p.html)).push(\"<br/>\")}return n.join(\"\")}t.Colorizer=u})),define(n[94],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IStandaloneThemeService=n.createDecorator(\"themeService\")})),define(n[162],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IClipboardService=n.createDecorator(\"clipboardService\")}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[29],i([0,1,2,21,11,4,76,38]),(function(e,t,n,i,o,r,s,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICommandService=o.createDecorator(\"commandService\"),\nt.CommandsRegistry=new(function(){function e(){this._commands=new Map,this._onDidRegisterCommand=new r.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}return e.prototype.registerCommand=function(e,t){var o=this;if(!e)throw new Error(\"invalid command\");if(\"string\"==typeof e){if(!t)throw new Error(\"invalid command\");return this.registerCommand({id:e,handler:t})}if(e.description){for(var r=[],l=0,u=e.description.args;l<u.length;l++){var d=u[l];r.push(d.constraint)}var c=e.handler;e.handler=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return i.validateConstraints(t,r),c.apply(void 0,a([e],t))}}var h=e.id,p=this._commands.get(h);p||(p=new s.LinkedList,this._commands.set(h,p));var g=p.unshift(e),f=n.toDisposable((function(){g();var e=o._commands.get(h);(null==e?void 0:e.isEmpty())&&o._commands.delete(h)}));return this._onDidRegisterCommand.fire(h),f},e.prototype.registerCommandAlias=function(e,n){return t.CommandsRegistry.registerCommand(e,(function(e){\nfor(var i,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];return(i=e.get(t.ICommandService)).executeCommand.apply(i,a([n],o))}))},e.prototype.getCommand=function(e){var t=this._commands.get(e);if(t&&!t.isEmpty())return t.iterator().next().value},e.prototype.getCommands=function(){for(var e=new Map,t=0,n=l.keys(this._commands);t<n.length;t++){var i=n[t],o=this.getCommand(i);o&&e.set(i,o)}return e},e}())})),define(n[495],i([0,1,26,10,25,3,17,49,29,2,19]),(function(e,t,n,i,o,s,a,l,u,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(){function e(e,t){this._link=e,this._provider=t}return e.prototype.toJSON=function(){return{range:this.range,url:this.url,tooltip:this.tooltip}},Object.defineProperty(e.prototype,\"range\",{get:function(){return this._link.range},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"url\",{get:function(){return this._link.url},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tooltip\",{get:function(){\nreturn this._link.tooltip},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){return d(this,void 0,void 0,(function(){var t=this;return c(this,(function(n){return this._link.url?[2,this._link.url]:\"function\"==typeof this._provider.resolveLink?[2,Promise.resolve(this._provider.resolveLink(this._link,e)).then((function(n){return t._link=n||t._link,t._link.url?t.resolve(e):Promise.reject(new Error(\"missing\"))}))]:[2,Promise.reject(new Error(\"missing\"))]}))}))},e}();t.Link=g;var f=function(e){function t(n){for(var i=e.call(this)||this,o=[],r=function(e,n){var i=e.links.map((function(e){return new g(e,n)}));o=t._union(o,i),h.isDisposable(n)&&s._register(n)},s=this,a=0,l=n;a<l.length;a++){var u=l[a];r(u[0],u[1])}return i.links=o,i}return r(t,e),t._union=function(e,t){var n,i,o,r,a=[];for(n=0,o=0,i=e.length,r=t.length;n<i&&o<r;){var l=e[n],u=t[o];if(s.Range.areIntersectingOrTouching(l.range,u.range))n++;else s.Range.compareRangesUsingStarts(l.range,u.range)<0?(a.push(l),n++):(a.push(u),o++)}\nfor(;n<i;n++)a.push(e[n]);for(;o<r;o++)a.push(t[o]);return a},t}(h.Disposable);function m(e,t){var n=[],o=a.LinkProviderRegistry.ordered(e).reverse().map((function(o,r){return Promise.resolve(o.provideLinks(e,t)).then((function(e){e&&(n[r]=[e,o])}),i.onUnexpectedExternalError)}));return Promise.all(o).then((function(){var e=new f(p.coalesce(n));return t.isCancellationRequested?(e.dispose(),new f([])):e}))}t.LinksList=f,t.getLinks=m,u.CommandsRegistry.registerCommand(\"_executeLinkProvider\",(function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return d(void 0,void 0,void 0,(function(){var i,r,s,a;return c(this,(function(u){switch(u.label){case 0:return(i=t[0])instanceof o.URI&&(r=e.get(l.IModelService).getModel(i))?[4,m(r,n.CancellationToken.None)]:[2,[]];case 1:return(s=u.sent())?(a=s.links.slice(0),s.dispose(),[2,a]):[2,[]]}}))}))}))})),define(n[496],i([0,1,25,3,49,26,84,489,87,29,21]),(function(e,t,n,i,o,r,s,a,l,u,h){\"use strict\";function p(e,t,n){return d(this,void 0,void 0,(function(){\nvar i,o,r,s,u,d;return c(this,(function(c){switch(c.label){case 0:return[4,a.OutlineModel.create(e,n)];case 1:for(i=c.sent(),o=[],r=0,s=l.values(i.children);r<s.length;r++)(u=s[r])instanceof a.OutlineElement?o.push(u.symbol):o.push.apply(o,l.values(u.children).map((function(e){return e.symbol})));return d=[],n.isCancellationRequested?[2,d]:(t?function e(t,n,i){for(var o=0,r=n;o<r.length;o++){var s=r[o];t.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&e(t,s.children,s.name)}}(d,o,\"\"):d=o,[2,d.sort(g)])}}))}))}function g(e,t){return i.Range.compareRangesUsingStarts(e.range,t.range)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDocumentSymbols=p,u.CommandsRegistry.registerCommand(\"_executeDocumentSymbolProvider\",(function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return d(this,void 0,void 0,(function(){var i,a,l;return c(this,(function(u){switch(u.label){case 0:\nreturn i=t[0],h.assertType(n.URI.isUri(i)),(a=e.get(o.IModelService).getModel(i))?[2,p(a,!1,r.CancellationToken.None)]:[4,e.get(s.ITextModelService).createModelReference(i)];case 1:l=u.sent(),u.label=2;case 2:return u.trys.push([2,,4,5]),[4,p(l.object.textEditorModel,!1,r.CancellationToken.None)];case 3:return[2,u.sent()];case 4:return l.dispose(),[7];case 5:return[2]}}))}))}))})),define(n[18],i([0,1,5,11]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){}return e.has=function(e){return a.create(e)},e.equals=function(e,t){return l.create(e,t)},e.regex=function(e,t){return c.create(e,t)},e.not=function(e){return d.create(e)},e.and=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return p.create(e)},e.or=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return g.create(e)},e.deserialize=function(e,t){if(void 0===t&&(t=!1),e)return this._deserializeOrExpression(e,t)},e._deserializeOrExpression=function(e,t){\nvar n=this,i=e.split(\"||\");return g.create(i.map((function(e){return n._deserializeAndExpression(e,t)})))},e._deserializeAndExpression=function(e,t){var n=this,i=e.split(\"&&\");return p.create(i.map((function(e){return n._deserializeOne(e,t)})))},e._deserializeOne=function(e,t){if((e=e.trim()).indexOf(\"!=\")>=0){var n=e.split(\"!=\");return u.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf(\"==\")>=0){n=e.split(\"==\");return l.create(n[0].trim(),this._deserializeValue(n[1],t))}if(e.indexOf(\"=~\")>=0){n=e.split(\"=~\");return c.create(n[0].trim(),this._deserializeRegexValue(n[1],t))}return/^\\!\\s*/.test(e)?d.create(e.substr(1).trim()):a.create(e)},e._deserializeValue=function(e,t){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;var n=/^'([^']*)'$/.exec(e);return n?n[1].trim():e},e._deserializeRegexValue=function(e,t){if(n.isFalsyOrWhitespace(e)){if(t)throw new Error(\"missing regexp-value for =~-expression\");return console.warn(\"missing regexp-value for =~-expression\"),null}\nvar i=e.indexOf(\"/\"),o=e.lastIndexOf(\"/\");if(i===o||i<0){if(t)throw new Error(\"bad regexp-value '\"+e+\"', missing /-enclosure\");return console.warn(\"bad regexp-value '\"+e+\"', missing /-enclosure\"),null}var r=e.slice(i+1,o),s=\"i\"===e[o+1]?\"i\":\"\";try{return new RegExp(r,s)}catch(n){if(t)throw new Error(\"bad regexp-value '\"+e+\"', parse error: \"+n);return console.warn(\"bad regexp-value '\"+e+\"', parse error: \"+n),null}},e}();function s(e,t){var n=e.getType(),i=t.getType();if(n!==i)return n-i;switch(n){case 1:case 2:case 3:case 4:case 6:case 7:case 5:return e.cmp(t);default:throw new Error(\"Unknown ContextKeyExpr!\")}}t.ContextKeyExpr=o;var a=function(){function e(e){this.key=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 1},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!!e.getValue(this.key)},e.prototype.keys=function(){return[this.key]},\ne.prototype.negate=function(){return d.create(this.key)},e}();t.ContextKeyDefinedExpr=a;var l=function(){function e(e,t){this.key=e,this.value=t}return e.create=function(t,n){return\"boolean\"==typeof n?n?a.create(t):d.create(t):new e(t,n)},e.prototype.getType=function(){return 3},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:this.value<e.value?-1:this.value>e.value?1:0},e.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)==this.value},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return u.create(this.key,this.value)},e}();t.ContextKeyEqualsExpr=l;var u=function(){function e(e,t){this.key=e,this.value=t}return e.create=function(t,n){return\"boolean\"==typeof n?n?d.create(t):a.create(t):new e(t,n)},e.prototype.getType=function(){return 4},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:this.value<e.value?-1:this.value>e.value?1:0},\ne.prototype.equals=function(t){return t instanceof e&&(this.key===t.key&&this.value===t.value)},e.prototype.evaluate=function(e){return e.getValue(this.key)!=this.value},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return l.create(this.key,this.value)},e}();t.ContextKeyNotEqualsExpr=u;var d=function(){function e(e){this.key=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 2},e.prototype.cmp=function(e){return this.key<e.key?-1:this.key>e.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!e.getValue(this.key)},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return a.create(this.key)},e}();t.ContextKeyNotExpr=d;var c=function(){function e(e,t){this.key=e,this.regexp=t}return e.create=function(t,n){return new e(t,n)},e.prototype.getType=function(){return 6},e.prototype.cmp=function(e){if(this.key<e.key)return-1;if(this.key>e.key)return 1\n;var t=this.regexp?this.regexp.source:\"\",n=e.regexp?e.regexp.source:\"\";return t<n?-1:t>n?1:0},e.prototype.equals=function(t){if(t instanceof e){var n=this.regexp?this.regexp.source:\"\",i=t.regexp?t.regexp.source:\"\";return this.key===t.key&&n===i}return!1},e.prototype.evaluate=function(e){var t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)},e.prototype.keys=function(){return[this.key]},e.prototype.negate=function(){return h.create(this)},e}();t.ContextKeyRegexExpr=c;var h=function(){function e(e){this._actual=e}return e.create=function(t){return new e(t)},e.prototype.getType=function(){return 7},e.prototype.cmp=function(e){return this._actual.cmp(e._actual)},e.prototype.equals=function(t){return t instanceof e&&this._actual.equals(t._actual)},e.prototype.evaluate=function(e){return!this._actual.evaluate(e)},e.prototype.keys=function(){return this._actual.keys()},e.prototype.negate=function(){return this._actual},e}();t.ContextKeyNotRegexExpr=h;var p=function(){function e(e){this.expr=e}\nreturn e.create=function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)},e.prototype.getType=function(){return 5},e.prototype.cmp=function(e){if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(var t=0,n=this.expr.length;t<n;t++){var i=s(this.expr[t],e.expr[t]);if(0!==i)return i}return 0},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n<i;n++)if(!this.expr[n].equals(t.expr[n]))return!1;return!0}return!1},e.prototype.evaluate=function(e){for(var t=0,n=this.expr.length;t<n;t++)if(!this.expr[t].evaluate(e))return!1;return!0},e._normalizeArr=function(t){var n=[];if(t){for(var i=0,o=t.length;i<o;i++){var r=t[i];if(r)if(r instanceof e)n=n.concat(r.expr);else{if(r instanceof g)throw new Error('It is not allowed to have an or expression here due to lack of parens! For example \"a && (b||c)\" is not supported, use \"(a&&b) || (a&&c)\" instead.');n.push(r)}}n.sort(s)}return n},\ne.prototype.keys=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t];e.push.apply(e,i.keys())}return e},e.prototype.negate=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t];e.push(i.negate())}return g.create(e)},e}();t.ContextKeyAndExpr=p;var g=function(){function e(e){this.expr=e}return e.create=function(t){var n=e._normalizeArr(t);if(0!==n.length)return 1===n.length?n[0]:new e(n)},e.prototype.getType=function(){return 8},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n<i;n++)if(!this.expr[n].equals(t.expr[n]))return!1;return!0}return!1},e.prototype.evaluate=function(e){for(var t=0,n=this.expr.length;t<n;t++)if(this.expr[t].evaluate(e))return!0;return!1},e._normalizeArr=function(t){var n=[];if(t){for(var i=0,o=t.length;i<o;i++){var r=t[i];r&&(r instanceof e?n=n.concat(r.expr):n.push(r))}n.sort(s)}return n},e.prototype.keys=function(){for(var e=[],t=0,n=this.expr;t<n.length;t++){var i=n[t]\n;e.push.apply(e,i.keys())}return e},e.prototype.negate=function(){for(var t=[],n=0,i=this.expr;n<i.length;n++){var r=i[n];t.push(r.negate())}for(var s=function(t){return t instanceof e?t.expr:[t]};t.length>1;){for(var a=t.shift(),l=t.shift(),u=[],d=0,c=s(a);d<c.length;d++)for(var h=c[d],p=0,g=s(l);p<g.length;p++){var f=g[p];u.push(o.and(h,f))}t.unshift(o.or.apply(o,u))}return t[0]},e}();t.ContextKeyOrExpr=g;var f=function(e){function t(t,n){var i=e.call(this,t)||this;return i._defaultValue=n,i}return r(t,e),t.prototype.bindTo=function(e){return e.createKey(this.key,this._defaultValue)},t.prototype.getValue=function(e){return e.getContextKeyValue(this.key)},t.prototype.toNegated=function(){return o.not(this.key)},t}(a);t.RawContextKey=f,t.IContextKeyService=i.createDecorator(\"contextKeyService\"),t.SET_CONTEXT_COMMAND_ID=\"setContext\"})),define(n[23],i([0,1,18]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){\ne.editorSimpleInput=new n.RawContextKey(\"editorSimpleInput\",!1),e.editorTextFocus=new n.RawContextKey(\"editorTextFocus\",!1),e.focus=new n.RawContextKey(\"editorFocus\",!1),e.textInputFocus=new n.RawContextKey(\"textInputFocus\",!1),e.readOnly=new n.RawContextKey(\"editorReadonly\",!1),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new n.RawContextKey(\"editorHasSelection\",!1),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new n.RawContextKey(\"editorHasMultipleSelections\",!1),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new n.RawContextKey(\"editorTabMovesFocus\",!1),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInEmbeddedEditor=new n.RawContextKey(\"isInEmbeddedEditor\",!1),e.canUndo=new n.RawContextKey(\"canUndo\",!1),e.canRedo=new n.RawContextKey(\"canRedo\",!1),e.languageId=new n.RawContextKey(\"editorLangId\",\"\"),e.hasCompletionItemProvider=new n.RawContextKey(\"editorHasCompletionItemProvider\",!1),\ne.hasCodeActionsProvider=new n.RawContextKey(\"editorHasCodeActionsProvider\",!1),e.hasCodeLensProvider=new n.RawContextKey(\"editorHasCodeLensProvider\",!1),e.hasDefinitionProvider=new n.RawContextKey(\"editorHasDefinitionProvider\",!1),e.hasDeclarationProvider=new n.RawContextKey(\"editorHasDeclarationProvider\",!1),e.hasImplementationProvider=new n.RawContextKey(\"editorHasImplementationProvider\",!1),e.hasTypeDefinitionProvider=new n.RawContextKey(\"editorHasTypeDefinitionProvider\",!1),e.hasHoverProvider=new n.RawContextKey(\"editorHasHoverProvider\",!1),e.hasDocumentHighlightProvider=new n.RawContextKey(\"editorHasDocumentHighlightProvider\",!1),e.hasDocumentSymbolProvider=new n.RawContextKey(\"editorHasDocumentSymbolProvider\",!1),e.hasReferenceProvider=new n.RawContextKey(\"editorHasReferenceProvider\",!1),e.hasRenameProvider=new n.RawContextKey(\"editorHasRenameProvider\",!1),e.hasSignatureHelpProvider=new n.RawContextKey(\"editorHasSignatureHelpProvider\",!1),\ne.hasDocumentFormattingProvider=new n.RawContextKey(\"editorHasDocumentFormattingProvider\",!1),e.hasDocumentSelectionFormattingProvider=new n.RawContextKey(\"editorHasDocumentSelectionFormattingProvider\",!1),e.hasMultipleDocumentFormattingProvider=new n.RawContextKey(\"editorHasMultipleDocumentFormattingProvider\",!1),e.hasMultipleDocumentSelectionFormattingProvider=new n.RawContextKey(\"editorHasMultipleDocumentSelectionFormattingProvider\",!1)}(t.EditorContextKeys||(t.EditorContextKeys={}))}));var g=this&&this.__param||function(e,t){return function(n,i){t(n,i,e)}};define(n[497],i([0,1,2,18]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(t,n){this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(n)}return e.prototype.dispose=function(){this.reset()},e.prototype.reset=function(){this._ckOtherSuggestions.reset(),n.dispose(this._listener),this._model=void 0,this._acceptNext=void 0,this._ignore=!1},e.prototype.set=function(t,n){\nvar i=this,o=t.model,r=t.index;0!==o.items.length?e._moveIndex(!0,o,r)!==r?(this._acceptNext=n,this._model=o,this._index=r,this._listener=this._editor.onDidChangeCursorPosition((function(){i._ignore||i.reset()})),this._ckOtherSuggestions.set(!0)):this.reset():this.reset()},e._moveIndex=function(e,t,n){for(var i=n;(i=(i+t.items.length+(e?1:-1))%t.items.length)!==n&&t.items[i].completion.additionalTextEdits;);return i},e.prototype.next=function(){this._move(!0)},e.prototype.prev=function(){this._move(!1)},e.prototype._move=function(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}},e.OtherSuggestions=new i.RawContextKey(\"hasOtherSuggestions\",!1),e=h([g(1,i.IContextKeyService)],e)}();t.SuggestAlternatives=o})),define(n[498],i([0,1,18,2]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(n,i){\nvar o=e.call(this)||this;return o._editor=n,o._enabled=!1,o._ckAtEnd=t.AtEnd.bindTo(i),o._register(o._editor.onDidChangeConfiguration((function(e){return e.hasChanged(94)&&o._update()}))),o._update(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),i.dispose(this._selectionListener),this._ckAtEnd.reset()},t.prototype._update=function(){var e=this,t=\"on\"===this._editor.getOption(94);if(this._enabled!==t)if(this._enabled=t,this._enabled){var n=function(){if(e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getSelection(),i=t.getWordAtPosition(n.getStartPosition());i?e._ckAtEnd.set(i.endColumn===n.getStartPosition().column):e._ckAtEnd.set(!1)}else e._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(n),n()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)},t.AtEnd=new n.RawContextKey(\"atEndOfWord\",!1),t=h([g(1,n.IContextKeyService)],t)}(i.Disposable);t.WordContextKey=o})),\ndefine(n[64],i([0,1,11,18]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IAccessibilityService=n.createDecorator(\"accessibilityService\"),t.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new i.RawContextKey(\"accessibilityModeEnabled\",!1)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[65],i([0,1,55,11,18,29,4]),(function(e,t,n,i,o,s,l){\"use strict\";function u(e){return void 0!==e.command}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isIMenuItem=u,t.IMenuService=i.createDecorator(\"menuService\"),t.MenuRegistry=new(function(){function e(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new l.Emitter,this.onDidChangeMenu=this._onDidChangeMenu.event}return e.prototype.addCommand=function(e){var t=this;return this._commands.set(e.id,e),this._onDidChangeMenu.fire(0),{dispose:function(){\nt._commands.delete(e.id)&&t._onDidChangeMenu.fire(0)}}},e.prototype.getCommand=function(e){return this._commands.get(e)},e.prototype.getCommands=function(){var e=new Map;return this._commands.forEach((function(t,n){return e.set(n,t)})),e},e.prototype.appendMenuItem=function(e,t){var n=this,i=this._menuItems.get(e);return i?i.push(t):(i=[t],this._menuItems.set(e,i)),this._onDidChangeMenu.fire(e),{dispose:function(){var o=i.indexOf(t);o>=0&&(i.splice(o,1),n._onDidChangeMenu.fire(e))}}},e.prototype.getMenuItems=function(e){var t=(this._menuItems.get(e)||[]).slice(0);return 0===e&&this._appendImplicitItems(t),t},e.prototype._appendImplicitItems=function(e){for(var t=new Set,n=0,i=e.filter((function(e){return u(e)}));n<i.length;n++){var o=i[n],r=o.command,s=o.alt;t.add(r.id),s&&t.add(s.id)}this._commands.forEach((function(n,i){t.has(i)||e.push({command:n})}))},e}());var d=function(e){function t(t,n,i){var o=e.call(this,t,n)||this;return o._commandService=i,o}return r(t,e),t.prototype.run=function(){\nfor(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(e=this._commandService).executeCommand.apply(e,a([this.id],t))},t=h([g(2,s.ICommandService)],t)}(n.Action);t.ExecuteCommandAction=d;var c=function(e){function t(t){var n=this;return(n=\"string\"==typeof t.title?e.call(this,\"\",t.title,\"submenu\")||this:e.call(this,\"\",t.title.value,\"submenu\")||this).item=t,n}return r(t,e),t}(n.Action);t.SubmenuItemAction=c;var p=function(e){function t(n,i,o,r,s){var a=this;return(a=\"string\"==typeof n.title?e.call(this,n.id,n.title,s)||this:e.call(this,n.id,n.title.value,s)||this)._cssClass=void 0,a._enabled=!n.precondition||r.contextMatchesRules(n.precondition),a._checked=Boolean(n.toggled&&r.contextMatchesRules(n.toggled)),a._options=o||{},a.item=n,a.alt=i?new t(i,void 0,a._options,r,s):void 0,a}return r(t,e),t.prototype.dispose=function(){this.alt&&this.alt.dispose(),e.prototype.dispose.call(this)},t.prototype.run=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=[]\n;return this._options.arg&&(i=a(i,[this._options.arg])),this._options.shouldForwardArgs&&(i=a(i,t)),e.prototype.run.apply(this,i)},t=h([g(3,o.IContextKeyService),g(4,s.ICommandService)],t)}(d);t.MenuItemAction=p})),define(n[499],i([0,1,4,2,65,29,18]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._commandService=e}return e.prototype.createMenu=function(e,t){return new l(e,this._commandService,t)},e=h([g(0,r.ICommandService)],e)}();t.MenuService=a;var l=function(){function e(e,t,r){var s=this;this._id=e,this._commandService=t,this._contextKeyService=r,this._onDidChange=new n.Emitter,this._dispoables=new i.DisposableStore,this._menuGroups=[],this._contextKeys=new Set,this._build(),this._dispoables.add(n.Event.debounce(n.Event.filter(o.MenuRegistry.onDidChangeMenu,(function(e){return e===s._id})),(function(){}),50)(this._build,this)),this._dispoables.add(n.Event.debounce(this._contextKeyService.onDidChangeContext,(function(e,t){\nreturn e||t.affectsSome(s._contextKeys)}),50)((function(e){return e&&s._onDidChange.fire(void 0)}),this))}return e.prototype.dispose=function(){this._dispoables.dispose(),this._onDidChange.dispose()},e.prototype._build=function(){this._menuGroups.length=0,this._contextKeys.clear();var t,n=o.MenuRegistry.getMenuItems(this._id);n.sort(e._compareMenuItems);for(var i=0,r=n;i<r.length;i++){var s=r[i],a=s.group||\"\";t&&t[0]===a||(t=[a,[]],this._menuGroups.push(t)),t[1].push(s),e._fillInKbExprKeys(s.when,this._contextKeys),o.isIMenuItem(s)&&s.command.precondition&&e._fillInKbExprKeys(s.command.precondition,this._contextKeys),o.isIMenuItem(s)&&s.command.toggled&&e._fillInKbExprKeys(s.command.toggled,this._contextKeys)}this._onDidChange.fire(this)},e.prototype.getActions=function(e){for(var t=[],n=0,i=this._menuGroups;n<i.length;n++){for(var r=i[n],s=r[0],a=[],l=0,u=r[1];l<u.length;l++){var d=u[l];if(this._contextKeyService.contextMatchesRules(d.when)){\nvar c=o.isIMenuItem(d)?new o.MenuItemAction(d.command,d.alt,e,this._contextKeyService,this._commandService):new o.SubmenuItemAction(d);a.push(c)}}a.length>0&&t.push([s,a])}return t},e._fillInKbExprKeys=function(e,t){if(e)for(var n=0,i=e.keys();n<i.length;n++){var o=i[n];t.add(o)}},e._compareMenuItems=function(t,n){var i=t.group,r=n.group;if(i!==r){if(!i)return 1;if(!r)return-1;if(\"navigation\"===i)return-1;if(\"navigation\"===r)return 1;var s=i.localeCompare(r);if(0!==s)return s}var a=t.order||0,l=n.order||0;return a<l?-1:a>l?1:e._compareTitles(o.isIMenuItem(t)?t.command.title:t.title,o.isIMenuItem(n)?n.command.title:n.title)},e._compareTitles=function(e,t){var n=\"string\"==typeof e?e:e.value,i=\"string\"==typeof t?t:t.value;return n.localeCompare(i)},e=h([g(1,r.ICommandService),g(2,s.IContextKeyService)],e)}()})),define(n[66],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IContextViewService=n.createDecorator(\"contextViewService\"),\nt.IContextMenuService=n.createDecorator(\"contextMenuService\")})),define(n[500],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDialogService=n.createDecorator(\"dialogService\")})),define(n[115],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._entries=new Map;for(var n=0,i=e;n<i.length;n++){var o=i[n],r=o[0],s=o[1];this.set(r,s)}}return e.prototype.set=function(e,t){var n=this._entries.get(e);return this._entries.set(e,t),n},e.prototype.has=function(e){return this._entries.has(e)},e.prototype.get=function(e){return this._entries.get(e)},e}();t.ServiceCollection=n}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}\n;define(n[501],i([0,1,10,480,209,11,115,15]),(function(e,t,n,i,o,s,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"function\"==typeof Proxy,c=function(e){function t(t){var n=e.call(this,\"cyclic dependency between services\")||this;return n.message=t.toString(),n}return r(t,e),t}(Error),h=function(){function e(e,t,n){void 0===e&&(e=new l.ServiceCollection),void 0===t&&(t=!1),this._services=e,this._strict=t,this._parent=n,this._services.set(s.IInstantiationService,this)}return e.prototype.createChild=function(t){return new e(t,this._strict,this)},e.prototype.invokeFunction=function(e){for(var t=this,i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var r=p.traceInvocation(e),l=!1;try{var u={get:function(e,i){if(l)throw n.illegalState(\"service accessor is only valid during the invocation of its target method\");var o=t._getOrCreateServiceInstance(e,r);if(!o&&i!==s.optional)throw new Error(\"[invokeFunction] unknown service '\"+e+\"'\");return o}};return e.apply(void 0,a([u],i))}finally{l=!0,\nr.stop()}},e.prototype.createInstance=function(e){for(var t,n,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];return e instanceof o.SyncDescriptor?(t=p.traceCreation(e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(i),t)):(t=p.traceCreation(e),n=this._createInstance(e,i,t)),t.stop(),n},e.prototype._createInstance=function(e,t,n){void 0===t&&(t=[]);for(var i=s._util.getServiceDependencies(e).sort((function(e,t){return e.index-t.index})),o=[],r=0,l=i;r<l.length;r++){var u=l[r],d=this._getOrCreateServiceInstance(u.id,n);if(!d&&this._strict&&!u.optional)throw new Error(\"[createInstance] \"+e.name+\" depends on UNKNOWN service \"+u.id+\".\");o.push(d)}var c=i.length>0?i[0].index:t.length;if(t.length!==c){console.warn(\"[createInstance] First service dependency of \"+e.name+\" at position \"+(c+1)+\" conflicts with \"+t.length+\" static arguments\");var h=c-t.length;t=h>0?t.concat(new Array(h)):t.slice(0,c)}return new(e.bind.apply(e,a([void 0],a(t,o))))},e.prototype._setServiceInstance=function(e,t){\nif(this._services.get(e)instanceof o.SyncDescriptor)this._services.set(e,t);else{if(!this._parent)throw new Error(\"illegalState - setting UNKNOWN service instance\");this._parent._setServiceInstance(e,t)}},e.prototype._getServiceInstanceOrDescriptor=function(e){var t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t},e.prototype._getOrCreateServiceInstance=function(e,t){var n=this._getServiceInstanceOrDescriptor(e);return n instanceof o.SyncDescriptor?this._createAndCacheServiceInstance(e,n,t.branch(e,!0)):(t.branch(e,!1),n)},e.prototype._createAndCacheServiceInstance=function(e,t,n){for(var r=new i.Graph((function(e){return e.id.toString()})),a=0,l=[{id:e,desc:t,_trace:n}];l.length;){var u=l.pop();if(r.lookupOrInsertNode(u),a++>150)throw new c(r);for(var d=0,h=s._util.getServiceDependencies(u.desc.ctor);d<h.length;d++){var p=h[d],g=this._getServiceInstanceOrDescriptor(p.id)\n;if(g||p.optional||console.warn(\"[createInstance] \"+e+\" depends on \"+p.id+\" which is NOT registered.\"),g instanceof o.SyncDescriptor){var f={id:p.id,desc:g,_trace:u._trace.branch(p.id,!0)};r.insertEdge(u,f),l.push(f)}}}for(;;){var m=r.roots();if(0===m.length){if(!r.isEmpty())throw new c(r);break}for(var v=0,_=m;v<_.length;v++){var y=_[v].data,C=this._createServiceInstanceWithOwner(y.id,y.desc.ctor,y.desc.staticArguments,y.desc.supportsDelayedInstantiation,y._trace);this._setServiceInstance(y.id,C),r.removeNode(y)}}return this._getServiceInstanceOrDescriptor(e)},e.prototype._createServiceInstanceWithOwner=function(e,t,n,i,r){if(void 0===n&&(n=[]),this._services.get(e)instanceof o.SyncDescriptor)return this._createServiceInstance(t,n,i,r);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,n,i,r);throw new Error(\"illegalState - creating UNKNOWN service instance \"+t.name)},e.prototype._createServiceInstance=function(e,t,n,i){var o=this;if(void 0===t&&(t=[]),n&&d){\nvar r=new u.IdleValue((function(){return o._createInstance(e,t,i)}));return new Proxy(Object.create(null),{get:function(e,t){if(t in e)return e[t];var n=r.getValue(),i=n[t];return\"function\"!=typeof i?i:(i=i.bind(n),e[t]=i,i)},set:function(e,t,n){return r.getValue()[t]=n,!0}})}return this._createInstance(e,t,i)},e}();t.InstantiationService=h;var p=function(){function e(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}return e.traceInvocation=function(t){return e._None},e.traceCreation=function(t){return e._None},e.prototype.branch=function(t,n){var i=new e(2,t.toString());return this._dep.push([t,n,i]),i},e.prototype.stop=function(){var t=Date.now()-this._start;e._totals+=t;var n=!1;var i=[(0===this.type?\"CREATE\":\"CALL\")+\" \"+this.name,\"\"+function e(t,i){for(var o=[],r=new Array(t+1).join(\"\\t\"),s=0,a=i._dep;s<a.length;s++){var l=a[s],u=l[0],d=l[1],c=l[2];if(d&&c){n=!0,o.push(r+\"CREATES -> \"+u);var h=e(t+1,c);h&&o.push(h)}else o.push(r+\"uses -> \"+u)}return o.join(\"\\n\")\n}(1,this),\"DONE, took \"+t.toFixed(2)+\"ms (grand total \"+e._totals.toFixed(2)+\"ms)\"];(t>2||n)&&console.log(i.join(\"\\n\"))},e._None=new(function(e){function t(){return e.call(this,-1,null)||this}return r(t,e),t.prototype.stop=function(){},t.prototype.branch=function(){return this},t}(e)),e._totals=0,e}()})),define(n[502],i([0,1,473,15,4,2]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n,r,s){var a=e.call(this)||this;return a._contextKeyService=t,a._commandService=n,a._telemetryService=r,a._notificationService=s,a._onDidUpdateKeybindings=a._register(new o.Emitter),a._currentChord=null,a._currentChordChecker=new i.IntervalTimer,a._currentChordStatusMessage=null,a}return r(t,e),Object.defineProperty(t.prototype,\"onDidUpdateKeybindings\",{get:function(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:o.Event.None},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},\nt.prototype.getKeybindings=function(){return this._getResolver().getKeybindings()},t.prototype.lookupKeybinding=function(e){var t=this._getResolver().lookupPrimaryKeybinding(e);if(t)return t.resolvedKeybinding},t.prototype.softDispatch=function(e,t){var n=this.resolveKeyboardEvent(e);if(n.isChord())return console.warn(\"Unexpected keyboard event mapped to a chord\"),null;var i=n.getDispatchParts()[0];if(null===i)return null;var o=this._contextKeyService.getContext(t),r=this._currentChord?this._currentChord.keypress:null;return this._getResolver().resolve(o,r,i)},t.prototype._enterChordMode=function(e,t){var i=this;this._currentChord={keypress:e,label:t},this._currentChordStatusMessage=this._notificationService.status(n.localize(0,null,t));var o=Date.now();this._currentChordChecker.cancelAndSet((function(){i._documentHasFocus()?Date.now()-o>5e3&&i._leaveChordMode():i._leaveChordMode()}),500)},t.prototype._leaveChordMode=function(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),\nthis._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null},t.prototype._dispatch=function(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t)},t.prototype._doDispatch=function(e,t){var i=this,o=!1;if(e.isChord())return console.warn(\"Unexpected keyboard event mapped to a chord\"),!1;var r=e.getDispatchParts()[0];if(null===r)return o;var s=this._contextKeyService.getContext(t),a=this._currentChord?this._currentChord.keypress:null,l=e.getLabel(),u=this._getResolver().resolve(s,a,r);return u&&u.enterChord?(o=!0,this._enterChordMode(r,l),o):(this._currentChord&&(u&&u.commandId||(this._notificationService.status(n.localize(1,null,this._currentChord.label,l),{hideAfter:1e4}),o=!0)),this._leaveChordMode(),u&&u.commandId&&(u.bubble||(o=!0),void 0===u.commandArgs?this._commandService.executeCommand(u.commandId).then(void 0,(function(e){return i._notificationService.warn(e)})):this._commandService.executeCommand(u.commandId,u.commandArgs).then(void 0,(function(e){\nreturn i._notificationService.warn(e)})),this._telemetryService.publicLog2(\"workbenchActionExecuted\",{id:u.commandId,from:\"keybinding\"})),o)},t.prototype.mightProducePrintableCharacter=function(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)},t}(s.Disposable);t.AbstractKeybindingService=a})),define(n[503],i([0,1,10,207,36]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t,i){var o=e.call(this)||this;if(0===i.length)throw n.illegalArgument(\"parts\");return o._os=t,o._parts=i,o}return r(t,e),t.prototype.getLabel=function(){var e=this;return i.UILabelProvider.toLabel(this._os,this._parts,(function(t){return e._getLabel(t)}))},t.prototype.getAriaLabel=function(){var e=this;return i.AriaLabelProvider.toLabel(this._os,this._parts,(function(t){return e._getAriaLabel(t)}))},t.prototype.isChord=function(){return this._parts.length>1},t.prototype.getParts=function(){var e=this\n;return this._parts.map((function(t){return e._getPart(t)}))},t.prototype._getPart=function(e){return new o.ResolvedKeybindingPart(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))},t.prototype.getDispatchParts=function(){var e=this;return this._parts.map((function(t){return e._getDispatchPart(t)}))},t}(o.ResolvedKeybinding);t.BaseResolvedKeybinding=s})),define(n[34],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IKeybindingService=n.createDecorator(\"keybindingService\")})),define(n[217],i([0,1,18]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t,n){this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(var i=0,o=t.length;i<o;i++){var r=t[i].command;r&&this._defaultBoundCommands.set(r,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=e.combine(t,n);for(i=0,o=this._keybindings.length;i<o;i++){var s=this._keybindings[i]\n;0!==s.keypressParts.length&&this._addKeyPress(s.keypressParts[0],s)}}return e._isTargetedForRemoval=function(e,t,n,i,o){if(e.command!==i)return!1;if(t&&e.keypressParts[0]!==t)return!1;if(n&&e.keypressParts[1]!==n)return!1;if(o){if(!e.when)return!1;if(!o.equals(e.when))return!1}return!0},e.combine=function(e,t){e=e.slice(0);for(var n=[],i=0,o=t;i<o.length;i++){var r=o[i];if(r.command&&0!==r.command.length&&\"-\"===r.command.charAt(0))for(var s=r.command.substr(1),a=r.keypressParts[0],l=r.keypressParts[1],u=r.when,d=e.length-1;d>=0;d--)this._isTargetedForRemoval(e[d],a,l,s,u)&&e.splice(d,1);else n.push(r)}return e.concat(n)},e.prototype._addKeyPress=function(t,n){var i=this._map.get(t);if(void 0===i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var o=i.length-1;o>=0;o--){var r=i[o];if(r.command!==n.command){var s=r.keypressParts.length>1,a=n.keypressParts.length>1;s&&a&&r.keypressParts[1]!==n.keypressParts[1]||e.whenIsEntirelyIncluded(r.when,n.when)&&this._removeFromLookupMap(r)}}i.push(n),\nthis._addToLookupMap(n)},e.prototype._addToLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}},e.prototype._removeFromLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);if(void 0!==t)for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return void t.splice(n,1)}},e.whenIsEntirelyIncluded=function(e,t){return!t||!!e&&this._implies(e,t)},e._implies=function(e,t){for(var i=function(e){return e instanceof n.ContextKeyOrExpr?e.expr:[e]},o=i(e.negate()).concat(i(t)),r=0;r<o.length;r++)for(var s=o[r].negate(),a=r+1;a<o.length;a++){var l=o[a];if(s.equals(l))return!0}return!1},e.prototype.getKeybindings=function(){return this._keybindings},e.prototype.lookupPrimaryKeybinding=function(e){var t=this._lookupMap.get(e);return void 0===t||0===t.length?null:t[t.length-1]},e.prototype.resolve=function(e,t,n){var i=null;if(null!==t){if(void 0===(a=this._map.get(t)))return null;i=[];for(var o=0,r=a.length;o<r;o++){var s=a[o]\n;s.keypressParts[1]===n&&i.push(s)}}else{var a;if(void 0===(a=this._map.get(n)))return null;i=a}var l=this._findCommand(e,i);return l?null===t&&l.keypressParts.length>1&&null!==l.keypressParts[1]?{enterChord:!0,commandId:null,commandArgs:null,bubble:!1}:{enterChord:!1,commandId:l.command,commandArgs:l.commandArgs,bubble:l.bubble}:null},e.prototype._findCommand=function(t,n){for(var i=n.length-1;i>=0;i--){var o=n[i];if(e.contextMatchesRules(t,o.when))return o}return null},e.contextMatchesRules=function(e,t){return!t||t.evaluate(e)},e}();t.KeybindingResolver=i})),define(n[504],i([0,1]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,n,o,r){this.resolvedKeybinding=e,this.keypressParts=e?i(e.getDispatchParts()):[],this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=n,this.when=o,this.isDefault=r};function i(e){for(var t=[],n=0,i=e.length;n<i;n++){var o=e[n];if(!o)return t;t.push(o)}return t}t.ResolvedKeybindingItem=n,\nt.removeElementsAfterNulls=i})),define(n[505],i([0,1,36,503]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t,n){return e.call(this,n,t.parts)||this}return r(t,e),t.prototype._keyCodeToUILabel=function(e){if(2===this._os)switch(e){case 15:return\"←\";case 16:return\"↑\";case 17:return\"→\";case 18:return\"↓\"}return n.KeyCodeUtils.toString(e)},t.prototype._getLabel=function(e){return e.isDuplicateModifierCase()?\"\":this._keyCodeToUILabel(e.keyCode)},t.prototype._getAriaLabel=function(e){return e.isDuplicateModifierCase()?\"\":n.KeyCodeUtils.toString(e.keyCode)},t.prototype._getDispatchPart=function(e){return t.getDispatchStr(e)},t.getDispatchStr=function(e){if(e.isModifierKey())return null;var t=\"\";return e.ctrlKey&&(t+=\"ctrl+\"),e.shiftKey&&(t+=\"shift+\"),e.altKey&&(t+=\"alt+\"),e.metaKey&&(t+=\"meta+\"),t+=n.KeyCodeUtils.toString(e.keyCode)},t}(i.BaseResolvedKeybinding);t.USLayoutResolvedKeybinding=o})),define(n[116],i([0,1,11]),(function(e,t,n){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});t.ILabelService=n.createDecorator(\"label\")})),define(n[218],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILayoutService=n.createDecorator(\"layoutService\")})),define(n[506],i([0,1,265,2,218]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t){var i=e.call(this)||this;return i.layoutService=t,i.contextView=i._register(new n.ContextView(t.container)),i.layout(),i._register(t.onLayout((function(){return i.layout()}))),i}return r(t,e),t.prototype.setContainer=function(e){this.contextView.setContainer(e)},t.prototype.showContextView=function(e){this.contextView.show(e)},t.prototype.layout=function(){this.contextView.layout()},t.prototype.hideContextView=function(e){this.contextView.hide(e)},t=h([g(0,o.ILayoutService)],t)}(i.Disposable);t.ContextViewService=s})),define(n[95],i([0,1,11]),(function(e,t,n){\"use strict\";var i\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILogService=n.createDecorator(\"logService\"),function(e){e[e.Trace=0]=\"Trace\",e[e.Debug=1]=\"Debug\",e[e.Info=2]=\"Info\",e[e.Warning=3]=\"Warning\",e[e.Error=4]=\"Error\",e[e.Critical=5]=\"Critical\",e[e.Off=6]=\"Off\"}(i=t.LogLevel||(t.LogLevel={}));var o=function(){function e(){}return e.prototype.getLevel=function(){return i.Info},e.prototype.trace=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n]},e.prototype.error=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n]},e.prototype.dispose=function(){},e}();t.NullLogService=o})),define(n[219],i([0,1,15,2,182,258,3,17,41,365,49,114,5,19,95,132]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=6e4,S=3e5;function w(e,t){var n=e.getModel(t);return!!n&&!n.isTooLargeForSyncing()}var E=function(e){function t(t,n,i){var o=e.call(this)||this;return o._modelService=t,o._workerManager=o._register(new D(o._modelService)),\no._logService=i,o._register(l.LinkProviderRegistry.register(\"*\",{provideLinks:function(e,t){return w(o._modelService,e.uri)?o._workerManager.withWorker().then((function(t){return t.computeLinks(e.uri)})).then((function(e){return e&&{links:e}})):Promise.resolve({links:[]})}})),o._register(l.CompletionProviderRegistry.register(\"*\",new L(o._workerManager,n,o._modelService))),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.canComputeDiff=function(e,t){return w(this._modelService,e)&&w(this._modelService,t)},t.prototype.computeDiff=function(e,t,n,i){return this._workerManager.withWorker().then((function(o){return o.computeDiff(e,t,n,i)}))},t.prototype.computeMoreMinimalEdits=function(e,t){var n=this;if(_.isNonEmptyArray(t)){if(!w(this._modelService,e))return Promise.resolve(t);var i=C.StopWatch.create(!0),o=this._workerManager.withWorker().then((function(n){return n.computeMoreMinimalEdits(e,t)}));return o.finally((function(){\nreturn n._logService.trace(\"FORMAT#computeMoreMinimalEdits\",e.toString(!0),i.elapsed())})),o}return Promise.resolve(void 0)},t.prototype.canNavigateValueSet=function(e){return w(this._modelService,e)},t.prototype.navigateValueSet=function(e,t,n){return this._workerManager.withWorker().then((function(i){return i.navigateValueSet(e,t,n)}))},t.prototype.canComputeWordRanges=function(e){return w(this._modelService,e)},t.prototype.computeWordRanges=function(e,t){return this._workerManager.withWorker().then((function(n){return n.computeWordRanges(e,t)}))},t=h([g(0,f.IModelService),g(1,m.ITextResourceConfigurationService),g(2,y.ILogService)],t)}(i.Disposable);t.EditorWorkerServiceImpl=E;var L=function(){function e(e,t,n){this._debugDisplayName=\"wordbasedCompletions\",this._workerManager=e,this._configurationService=t,this._modelService=n}return e.prototype.provideCompletionItems=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn this._configurationService.getValue(e.uri,t,\"editor\").wordBasedSuggestions&&w(this._modelService,e.uri)?(n=e.getWordAtPosition(t),i=n?new a.Range(t.lineNumber,n.startColumn,t.lineNumber,n.endColumn):a.Range.fromPositions(t),o=i.setEndPosition(t.lineNumber,t.column),[4,this._workerManager.withWorker()]):[2,void 0];case 1:return[4,s.sent().textualSuggest(e.uri,t)];case 2:return(r=s.sent())?[2,{suggestions:r.map((function(e){return{kind:18,label:e,insertText:e,range:{insert:o,replace:i}}}))}]:[2,void 0]}}))}))},e}(),D=function(e){function t(t){var i=e.call(this)||this;return i._modelService=t,i._editorWorkerClient=null,i._lastWorkerUsedTime=(new Date).getTime(),i._register(new n.IntervalTimer).cancelAndSet((function(){return i._checkStopIdleWorker()}),Math.round(S/2)),i._register(i._modelService.onModelRemoved((function(e){return i._checkStopEmptyWorker()}))),i}return r(t,e),t.prototype.dispose=function(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),\ne.prototype.dispose.call(this)},t.prototype._checkStopEmptyWorker=function(){this._editorWorkerClient&&(0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))},t.prototype._checkStopIdleWorker=function(){this._editorWorkerClient&&((new Date).getTime()-this._lastWorkerUsedTime>S&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null))},t.prototype.withWorker=function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new M(this._modelService,!1,\"editorWorkerService\")),Promise.resolve(this._editorWorkerClient)},t}(i.Disposable),N=function(e){function t(t,i,o){var r=e.call(this)||this;if(r._syncedModels=Object.create(null),r._syncedModelsLastUsedTime=Object.create(null),r._proxy=t,r._modelService=i,!o){var s=new n.IntervalTimer;s.cancelAndSet((function(){return r._checkStopModelSync()}),Math.round(b/2)),r._register(s)}return r}return r(t,e),t.prototype.dispose=function(){\nfor(var t in this._syncedModels)i.dispose(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),e.prototype.dispose.call(this)},t.prototype.ensureSyncedResources=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t],o=i.toString();this._syncedModels[o]||this._beginModelSync(i),this._syncedModels[o]&&(this._syncedModelsLastUsedTime[o]=(new Date).getTime())}},t.prototype._checkStopModelSync=function(){var e=(new Date).getTime(),t=[];for(var n in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[n]>b&&t.push(n)}for(var i=0,o=t;i<o.length;i++){var r=o[i];this._stopModelSync(r)}},t.prototype._beginModelSync=function(e){var t=this,n=this._modelService.getModel(e);if(n&&!n.isTooLargeForSyncing()){var o=e.toString();this._proxy.acceptNewModel({url:n.uri.toString(),lines:n.getLinesContent(),EOL:n.getEOL(),versionId:n.getVersionId()});var r=new i.DisposableStore;r.add(n.onDidChangeContent((function(e){t._proxy.acceptModelChanged(o.toString(),e)\n}))),r.add(n.onWillDispose((function(){t._stopModelSync(o)}))),r.add(i.toDisposable((function(){t._proxy.acceptRemovedModel(o)}))),this._syncedModels[o]=r}},t.prototype._stopModelSync=function(e){var t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],i.dispose(t)},t}(i.Disposable),x=function(){function e(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}return e.prototype.dispose=function(){this._instance.dispose()},e.prototype.getProxyObject=function(){return this._proxyObj},e}(),I=function(){function e(e){this._workerClient=e}return e.prototype.fhr=function(e,t){return this._workerClient.fhr(e,t)},e}();t.EditorWorkerHost=I;var M=function(e){function t(t,n,i){var o=e.call(this)||this;return o._modelService=t,o._keepIdleModels=n,o._workerFactory=new s.DefaultWorkerFactory(i),o._worker=null,o._modelManager=null,o}return r(t,e),t.prototype.fhr=function(e,t){throw new Error(\"Not implemented!\")},t.prototype._getOrCreateWorker=function(){\nif(!this._worker)try{this._worker=this._register(new o.SimpleWorkerClient(this._workerFactory,\"vs/editor/common/services/editorSimpleWorker\",new I(this)))}catch(e){o.logOnceWebWorkerWarning(e),this._worker=new x(new p.EditorSimpleWorker(new I(this),null))}return this._worker},t.prototype._getProxy=function(){var e=this;return this._getOrCreateWorker().getProxyObject().then(void 0,(function(t){return o.logOnceWebWorkerWarning(t),e._worker=new x(new p.EditorSimpleWorker(new I(e),null)),e._getOrCreateWorker().getProxyObject()}))},t.prototype._getOrCreateModelManager=function(e){return this._modelManager||(this._modelManager=this._register(new N(e,this._modelService,this._keepIdleModels))),this._modelManager},t.prototype._withSyncedResources=function(e){var t=this;return this._getProxy().then((function(n){return t._getOrCreateModelManager(n).ensureSyncedResources(e),n}))},t.prototype.computeDiff=function(e,t,n,i){return this._withSyncedResources([e,t]).then((function(o){\nreturn o.computeDiff(e.toString(),t.toString(),n,i)}))},t.prototype.computeMoreMinimalEdits=function(e,t){return this._withSyncedResources([e]).then((function(n){return n.computeMoreMinimalEdits(e.toString(),t)}))},t.prototype.computeLinks=function(e){return this._withSyncedResources([e]).then((function(t){return t.computeLinks(e.toString())}))},t.prototype.textualSuggest=function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var o=n._modelService.getModel(e);if(!o)return null;var r=u.LanguageConfigurationRegistry.getWordDefinition(o.getLanguageIdentifier().id),s=r.source,a=v.regExpFlags(r);return i.textualSuggest(e.toString(),t,s,a)}))},t.prototype.computeWordRanges=function(e,t){var n=this;return this._withSyncedResources([e]).then((function(i){var o=n._modelService.getModel(e);if(!o)return Promise.resolve(null);var r=u.LanguageConfigurationRegistry.getWordDefinition(o.getLanguageIdentifier().id),s=r.source,a=v.regExpFlags(r);return i.computeWordRanges(e.toString(),t,s,a)}))},\nt.prototype.navigateValueSet=function(e,t,n){var i=this;return this._withSyncedResources([e]).then((function(o){var r=i._modelService.getModel(e);if(!r)return null;var s=u.LanguageConfigurationRegistry.getWordDefinition(r.getLanguageIdentifier().id),a=s.source,l=v.regExpFlags(s);return o.navigateValueSet(e.toString(),t,n,a,l)}))},t}(i.Disposable);t.EditorWorkerClient=M})),define(n[507],i([0,1,219,21]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createWebWorker=function(e,t){return new o(e,t)};var o=function(e){function t(t,n){var i=e.call(this,t,n.keepIdleModels||!1,n.label)||this;return i._foreignModuleId=n.moduleId,i._foreignModuleCreateData=n.createData||null,i._foreignModuleHost=n.host||null,i._foreignProxy=null,i}return r(t,e),t.prototype.fhr=function(e,t){if(!this._foreignModuleHost||\"function\"!=typeof this._foreignModuleHost[e])return Promise.reject(new Error(\"Missing method \"+e+\" or missing main thread foreign host.\"));try{\nreturn Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(e){return Promise.reject(e)}},t.prototype._getForeignProxy=function(){var e=this;return this._foreignProxy||(this._foreignProxy=this._getProxy().then((function(t){var n=e._foreignModuleHost?i.getAllMethodNames(e._foreignModuleHost):[];return t.loadForeignModule(e._foreignModuleId,e._foreignModuleCreateData,n).then((function(n){e._foreignModuleCreateData=null;for(var i=function(e,n){return t.fmr(e,n)},o=function(e,t){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},r={},s=0,a=n;s<a.length;s++){var l=a[s];r[l]=o(l,i)}return r}))}))),this._foreignProxy},t.prototype.getProxy=function(){return this._getForeignProxy()},t.prototype.withSyncedResources=function(e){var t=this;return this._withSyncedResources(e).then((function(e){return t.getProxy()}))},t}(n.EditorWorkerClient)})),define(n[72],i([0,1,11,475,112]),(function(e,t,n,i,o){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0\n}),function(e){e[e.Hint=1]=\"Hint\",e[e.Info=2]=\"Info\",e[e.Warning=4]=\"Warning\",e[e.Error=8]=\"Error\"}(r=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){e.compare=function(e,t){return t-e};var t=Object.create(null);t[e.Error]=i.localize(0,null),t[e.Warning]=i.localize(1,null),t[e.Info]=i.localize(2,null),e.toString=function(e){return t[e]||\"\"},e.fromSeverity=function(t){switch(t){case o.default.Error:return e.Error;case o.default.Warning:return e.Warning;case o.default.Info:return e.Info;case o.default.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return o.default.Error;case e.Warning:return o.default.Warning;case e.Info:return o.default.Info;case e.Hint:return o.default.Ignore}}}(r=t.MarkerSeverity||(t.MarkerSeverity={})),function(e){var t=\"\";function n(e,n){var i=[t];return e.source?i.push(e.source.replace(\"¦\",\"¦\")):i.push(t),e.code?\"string\"==typeof e.code?i.push(e.code.replace(\"¦\",\"¦\")):i.push(e.code.value.replace(\"¦\",\"¦\")):i.push(t),\nvoid 0!==e.severity&&null!==e.severity?i.push(r.toString(e.severity)):i.push(t),e.message&&n?i.push(e.message.replace(\"¦\",\"¦\")):i.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?i.push(e.startLineNumber.toString()):i.push(t),void 0!==e.startColumn&&null!==e.startColumn?i.push(e.startColumn.toString()):i.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?i.push(e.endLineNumber.toString()):i.push(t),void 0!==e.endColumn&&null!==e.endColumn?i.push(e.endColumn.toString()):i.push(t),i.push(t),i.join(\"¦\")}e.makeKey=function(e){return n(e,!0)},e.makeKeyOptionalMessage=n}(t.IMarkerData||(t.IMarkerData={})),t.IMarkerService=n.createDecorator(\"markerService\")})),define(n[508],i([0,1,19,46,21,4,72]),(function(e,t,n,i,o,r,s){\"use strict\";var a;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.get=function(e,t,n){if(e[t])return e[t][n]},e.set=function(e,t,n,i){e[t]||(e[t]=Object.create(null)),e[t][n]=i},e.remove=function(e,t,n){return!(!e[t]||!e[t][n])&&(delete e[t][n],\no.isEmptyObject(e[t])&&delete e[t],!0)}}(a||(a={}));var l=function(){function e(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=Object.create(null),this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}return e.prototype.dispose=function(){this._subscription.dispose(),this._data=void 0},e.prototype._update=function(e){if(this._data)for(var t=0,n=e;t<n.length;t++){var i=n[t],o=i.toString(),r=this._data[o];r&&this._substract(r);var s=this._resourceStats(i);this._add(s),this._data[o]=s}},e.prototype._resourceStats=function(e){var t={errors:0,warnings:0,infos:0,unknowns:0};if(e.scheme===i.Schemas.inMemory||e.scheme===i.Schemas.walkThrough||e.scheme===i.Schemas.walkThroughSnippet)return t;for(var n=0,o=this._service.read({resource:e});n<o.length;n++){var r=o[n].severity;r===s.MarkerSeverity.Error?t.errors+=1:r===s.MarkerSeverity.Warning?t.warnings+=1:r===s.MarkerSeverity.Info?t.infos+=1:t.unknowns+=1}return t},e.prototype._substract=function(e){this.errors-=e.errors,\nthis.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns},e.prototype._add=function(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns},e}(),u=function(){function e(){this._onMarkerChanged=new r.Emitter,this._onMarkerChangedEvent=r.Event.debounce(this._onMarkerChanged.event,e._debouncer,0),this._byResource=Object.create(null),this._byOwner=Object.create(null),this._stats=new l(this)}return e.prototype.dispose=function(){this._stats.dispose()},Object.defineProperty(e.prototype,\"onMarkerChanged\",{get:function(){return this._onMarkerChangedEvent},enumerable:!0,configurable:!0}),e.prototype.remove=function(e,t){for(var n=0,i=t||[];n<i.length;n++){var o=i[n];this.changeOne(e,o,[])}},e.prototype.changeOne=function(t,i,o){if(n.isFalsyOrEmpty(o)){var r=a.remove(this._byResource,i.toString(),t),s=a.remove(this._byOwner,t,i.toString());if(r!==s)throw new Error(\"invalid marker service state\");r&&s&&this._onMarkerChanged.fire([i])}else{\nfor(var l=[],u=0,d=o;u<d.length;u++){var c=d[u],h=e._toMarker(t,i,c);h&&l.push(h)}a.set(this._byResource,i.toString(),t,l),a.set(this._byOwner,t,i.toString(),l),this._onMarkerChanged.fire([i])}},e._toMarker=function(e,t,n){var i=n.code,o=n.severity,r=n.message,s=n.source,a=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn,c=n.relatedInformation,h=n.tags;if(r)return{resource:t,owner:e,code:i,severity:o,message:r,source:s,startLineNumber:a=a>0?a:1,startColumn:l=l>0?l:1,endLineNumber:u=u>=a?u:a,endColumn:d=d>0?d:l,relatedInformation:c,tags:h}},e.prototype.read=function(t){void 0===t&&(t=Object.create(null));var n=t.owner,i=t.resource,o=t.severities,r=t.take;if((!r||r<0)&&(r=-1),n&&i){if(C=a.get(this._byResource,i.toString(),n)){for(var s=[],l=0,u=C;l<u.length;l++){var d=u[l];if(e._accept(d,o)){var c=s.push(d);if(r>0&&c===r)break}}return s}return[]}if(n||i){var h=n?this._byOwner[n]:i?this._byResource[i.toString()]:void 0;if(!h)return[];s=[];for(var p in h)for(var g=0,f=h[p];g<f.length;g++){C=f[g]\n;if(e._accept(C,o)){c=s.push(C);if(r>0&&c===r)return s}}return s}var s=[];for(var m in this._byResource)for(var v in this._byResource[m])for(var _=0,y=this._byResource[m][v];_<y.length;_++){var C=y[_];if(e._accept(C,o)){var c=s.push(C);if(r>0&&c===r)return s}}return s},e._accept=function(e,t){return void 0===t||(t&e.severity)===e.severity},e._debouncer=function(t,n){t||(e._dedupeMap=Object.create(null),t=[]);for(var i=0,o=n;i<o.length;i++){var r=o[i];void 0===e._dedupeMap[r.toString()]&&(e._dedupeMap[r.toString()]=!0,t.push(r))}return t},e}();t.MarkerService=u})),define(n[35],i([0,1,112,11]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Severity=n.default,t.INotificationService=i.createDecorator(\"notificationService\");var o=function(){};t.NoOpNotification=o})),define(n[51],i([0,1,25,11,2,5]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IOpenerService=i.createDecorator(\"openerService\"),t.NullOpenerService=Object.freeze({\n_serviceBrand:void 0,registerOpener:function(){return o.Disposable.None},registerValidator:function(){return o.Disposable.None},registerExternalUriResolver:function(){return o.Disposable.None},setExternalOpener:function(){},open:function(){return d(this,void 0,void 0,(function(){return c(this,(function(e){return[2,!1]}))}))},resolveExternalUri:function(e){return d(this,void 0,void 0,(function(){return c(this,(function(t){return[2,{resolved:e,dispose:function(){}}]}))}))}}),t.matchesScheme=function(e,t){return n.URI.isUri(e)?r.equalsIgnoreCase(e.scheme,t):r.startsWithIgnoreCase(e,t+\":\")}}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[509],i([0,1,6,76,180,46,39,25,32,29,51,478]),(function(e,t,n,i,o,r,s,l,u,p,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=function(){function e(e){this._commandService=e}\nreturn e.prototype.open=function(e){return d(this,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(!f.matchesScheme(e,r.Schemas.command))return[2,!1];if(\"string\"==typeof e&&(e=l.URI.parse(e)),!p.CommandsRegistry.getCommand(e.path))throw new Error(\"command '\"+e.path+\"' NOT known\");t=[];try{t=o.parse(decodeURIComponent(e.query))}catch(n){try{t=o.parse(e.query)}catch(e){}}return Array.isArray(t)||(t=[t]),[4,(n=this._commandService).executeCommand.apply(n,a([e.path],t))];case 1:return i.sent(),[2,!0]}}))}))},e=h([g(0,p.ICommandService)],e)}(),_=function(){function e(e){this._editorService=e}return e.prototype.open=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:return\"string\"==typeof e&&(e=l.URI.parse(e)),n=void 0,(i=/^L?(\\d+)(?:,(\\d+))?/.exec(e.fragment))&&(n={startLineNumber:parseInt(i[1]),startColumn:i[2]?parseInt(i[2]):1},e=e.with({fragment:\"\"})),e.scheme===r.Schemas.file&&(e=s.normalizePath(e)),\n[4,this._editorService.openCodeEditor({resource:e,options:{selection:n,context:(null==t?void 0:t.fromUserGesture)?m.EditorOpenContext.USER:m.EditorOpenContext.API}},this._editorService.getFocusedCodeEditor(),null==t?void 0:t.openToSide)];case 1:return o.sent(),[2,!0]}}))}))},e=h([g(0,u.ICodeEditorService)],e)}(),y=function(){function e(e,t){var o=this;this._openers=new i.LinkedList,this._validators=new i.LinkedList,this._resolvers=new i.LinkedList,this._externalOpener={openExternal:function(e){return n.windowOpenNoOpener(e),Promise.resolve(!0)}},this._openers.push({open:function(e,t){return d(o,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return(null==t?void 0:t.openExternal)||f.matchesScheme(e,r.Schemas.mailto)||f.matchesScheme(e,r.Schemas.http)||f.matchesScheme(e,r.Schemas.https)?[4,this._doOpenExternal(e,t)]:[3,2];case 1:return n.sent(),[2,!0];case 2:return[2,!1]}}))}))}}),this._openers.push(new v(t)),this._openers.push(new _(e))}return e.prototype.open=function(e,t){\nreturn d(this,void 0,void 0,(function(){var n,i,o,r;return c(this,(function(s){switch(s.label){case 0:n=0,i=this._validators.toArray(),s.label=1;case 1:return n<i.length?[4,i[n].shouldOpen(e)]:[3,4];case 2:if(!s.sent())return[2,!1];s.label=3;case 3:return n++,[3,1];case 4:o=0,r=this._openers.toArray(),s.label=5;case 5:return o<r.length?[4,r[o].open(e,t)]:[3,8];case 6:if(s.sent())return[2,!0];s.label=7;case 7:return o++,[3,5];case 8:return[2,!1]}}))}))},e.prototype.resolveExternalUri=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o;return c(this,(function(r){switch(r.label){case 0:n=0,i=this._resolvers.toArray(),r.label=1;case 1:return n<i.length?[4,i[n].resolveExternalUri(e,t)]:[3,4];case 2:if(o=r.sent())return[2,o];r.label=3;case 3:return n++,[3,1];case 4:return[2,{resolved:e,dispose:function(){}}]}}))}))},e.prototype._doOpenExternal=function(e,t){return d(this,void 0,void 0,(function(){var n,i;return c(this,(function(o){switch(o.label){case 0:return n=\"string\"==typeof e?l.URI.parse(e):e,\n[4,this.resolveExternalUri(n,t)];case 1:return i=o.sent().resolved,\"string\"==typeof e&&n.toString()===i.toString()?[2,this._externalOpener.openExternal(e)]:[2,this._externalOpener.openExternal(encodeURI(i.toString(!0)))]}}))}))},e.prototype.dispose=function(){this._validators.clear()},e=h([g(0,u.ICodeEditorService),g(1,p.ICommandService)],e)}();t.OpenerService=y})),define(n[117],i([0,1,248,51,71,10,214,11,4,2,17]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,o){void 0===o&&(o=i.NullOpenerService);var r=e.call(this)||this;return r._editor=t,r._modeService=n,r._openerService=o,r._onDidRenderCodeBlock=r._register(new u.Emitter),r.onDidRenderCodeBlock=r._onDidRenderCodeBlock.event,r}return r(t,e),t.prototype.getOptions=function(e){var t=this;return{codeBlockRenderer:function(e,n){var i=null;if(e)i=t._modeService.getModeIdForLanguageName(e);else{var o=t._editor.getModel();o&&(i=o.getLanguageIdentifier().language)}\nreturn t._modeService.triggerMode(i||\"\"),Promise.resolve(!0).then((function(e){var t=c.TokenizationRegistry.getPromise(i||\"\");return t?t.then((function(e){return a.tokenizeToString(n,e)})):a.tokenizeToString(n,void 0)})).then((function(e){return'<span style=\"font-family: '+t._editor.getOption(34).fontFamily+'\">'+e+\"</span>\"}))},codeBlockRenderCallback:function(){return t._onDidRenderCodeBlock.fire()},actionHandler:{callback:function(e){t._openerService.open(e,{fromUserGesture:!0}).catch(s.onUnexpectedError)},disposeables:e}}},t.prototype.render=function(e){var t=new d.DisposableStore;return{element:e?n.renderMarkdown(e,this.getOptions(t)):document.createElement(\"span\"),dispose:function(){return t.dispose()}}},t=h([g(1,o.IModeService),g(2,l.optional(i.IOpenerService))],t)}(d.Disposable);t.MarkdownRenderer=p})),define(n[510],i([0,1,6,75,2,200,201,117,51,19]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(e){this._editor=e,\nthis._lineNumber=-1,this._result=[]}return e.prototype.setLineNumber=function(e){this._lineNumber=e,this._result=[]},e.prototype.clearResult=function(){this._result=[]},e.prototype.computeSync=function(){var e=function(e){return{value:e}},t=this._editor.getLineDecorations(this._lineNumber),n=[];if(!t)return n;for(var o=0,r=t;o<r.length;o++){var s=r[o];if(s.options.glyphMarginClassName){var a=s.options.glyphMarginHoverMessage;a&&!i.isEmptyMarkdownString(a)&&n.push.apply(n,d.asArray(a).map(e))}}return n},e.prototype.onResult=function(e,t){this._result=this._result.concat(e)},e.prototype.getResult=function(){return this._result},e.prototype.getResultWithLoadingMessage=function(){return this.getResult()},e}(),h=function(e){function t(n,i,r){void 0===r&&(r=u.NullOpenerService);var a=e.call(this,t.ID,n)||this;return a._renderDisposeables=a._register(new o.DisposableStore),a._messages=[],a._lastLineNumber=-1,a._markdownRenderer=a._register(new l.MarkdownRenderer(a._editor,i,r)),a._computer=new c(a._editor),\na._hoverOperation=new s.HoverOperation(a._computer,(function(e){return a._withResult(e)}),void 0,(function(e){return a._withResult(e)}),300),a}return r(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),e.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._hoverOperation.start(0))},t.prototype.startShowingAt=function(e){this._lastLineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._lastLineNumber=e,this._computer.setLineNumber(e),this._hoverOperation.start(0))},t.prototype.hide=function(){this._lastLineNumber=-1,this._hoverOperation.cancel(),e.prototype.hide.call(this)},t.prototype._withResult=function(e){this._messages=e,this._messages.length>0?this._renderMessages(this._lastLineNumber,this._messages):this.hide()},t.prototype._renderMessages=function(e,t){this._renderDisposeables.clear();for(var i=document.createDocumentFragment(),o=0,r=t;o<r.length;o++){\nvar s=r[o],a=this._markdownRenderer.render(s.value);this._renderDisposeables.add(a),i.appendChild(n.$(\"div.hover-row\",void 0,a.element))}this.updateContents(i),this.showAt(e)},t.ID=\"editor.contrib.modesGlyphHoverWidget\",t}(a.GlyphHoverWidget);t.ModesGlyphHoverWidget=h})),define(n[73],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IEditorProgressService=n.createDecorator(\"editorProgressService\")})),define(n[42],i([0,1,21,124]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){this.data=new Map}return e.prototype.add=function(e,t){i.ok(n.isString(e)),i.ok(n.isObject(t)),i.ok(!this.data.has(e),\"There is already an extension with this id\"),this.data.set(e,t)},e.prototype.as=function(e){return this.data.get(e)||null},e}();t.Registry=new o})),define(n[118],i([0,1,425,4,17,41,42]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={\nModesRegistry:\"editor.modesRegistry\"};var a=function(){function e(){this._onDidChangeLanguages=new i.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[],this._dynamicLanguages=[]}return e.prototype.registerLanguage=function(e){this._languages.push(e),this._onDidChangeLanguages.fire(void 0)},e.prototype.getLanguages=function(){return[].concat(this._languages).concat(this._dynamicLanguages)},e}();t.EditorModesRegistry=a,t.ModesRegistry=new a,s.Registry.add(t.Extensions.ModesRegistry,t.ModesRegistry),t.PLAINTEXT_MODE_ID=\"plaintext\",t.PLAINTEXT_LANGUAGE_IDENTIFIER=new o.LanguageIdentifier(t.PLAINTEXT_MODE_ID,1),t.ModesRegistry.registerLanguage({id:t.PLAINTEXT_MODE_ID,extensions:[\".txt\",\".gitignore\"],aliases:[n.localize(0,null),\"text\"],mimetypes:[\"text/plain\"]}),r.LanguageConfigurationRegistry.register(t.PLAINTEXT_LANGUAGE_IDENTIFIER,{brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{\nopen:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],folding:{offSide:!0}})})),define(n[511],i([0,1,46,39,118,208]),(function(e,t,n,i,o,r){\"use strict\";function s(e,t,r){if(!r)return null;var s=null;if(r.scheme===n.Schemas.data){var a=i.DataUri.parseMetaData(r).get(i.DataUri.META_DATA_MIME);a&&(s=t.getModeId(a))}else{var l=e.getModel(r);l&&(s=l.getModeId())}return s&&s!==o.PLAINTEXT_MODE_ID?s:t.getModeIdByFilepathOrFirstLine(r)}function a(e){return e.replace(/\\s/g,\"\\\\$&\")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getIconClasses=function(e,t,o,l){var u=l===r.FileKind.ROOT_FOLDER?[\"rootfolder-icon\"]:l===r.FileKind.FOLDER?[\"folder-icon\"]:[\"file-icon\"];if(o){var d;if(o.scheme===n.Schemas.data)d=i.DataUri.parseMetaData(o).get(i.DataUri.META_DATA_LABEL);else d=a(i.basenameOrAuthority(o).toLowerCase());if(l===r.FileKind.FOLDER)u.push(d+\"-name-folder-icon\");else{if(d){u.push(d+\"-name-file-icon\");for(var c=d.split(\".\"),h=1;h<c.length;h++)u.push(c.slice(h).join(\".\")+\"-ext-file-icon\")\n;u.push(\"ext-file-icon\")}var p=s(e,t,o);p&&u.push(a(p)+\"-lang-file-icon\")}}return u},t.detectModeId=s,t.cssEscape=a})),define(n[220],i([0,1,42,4]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={JSONContribution:\"base.contributions.json\"};var o=new(function(){function e(){this._onDidChangeSchema=new i.Emitter,this.schemasById={}}return e.prototype.registerSchema=function(e,t){var n;this.schemasById[(n=e,n.length>0&&\"#\"===n.charAt(n.length-1)?n.substring(0,n.length-1):n)]=t,this._onDidChangeSchema.fire(e)},e.prototype.notifySchemaChanged=function(e){this._onDidChangeSchema.fire(e)},e}());n.Registry.add(t.Extensions.JSONContribution,o)})),define(n[85],i([0,1,472,4,42,21,220,38]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={Configuration:\"base.contributions.configuration\"},t.allSettings={properties:{},patternProperties:{}},t.applicationSettings={properties:{},patternProperties:{}},t.machineSettings={\nproperties:{},patternProperties:{}},t.machineOverridableSettings={properties:{},patternProperties:{}},t.windowSettings={properties:{},patternProperties:{}},t.resourceSettings={properties:{},patternProperties:{}},t.resourceLanguageSettingsSchemaId=\"vscode://schemas/settings/resourceLanguage\";var l=o.Registry.as(s.Extensions.JSONContribution),u=function(){function e(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new i.Emitter,this._onDidUpdateConfiguration=new i.Emitter,this.defaultOverridesConfigurationNode={id:\"defaultOverrides\",title:n.localize(0,null),properties:{}},this.configurationContributors=[this.defaultOverridesConfigurationNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:\"Unknown editor configuration setting\",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},l.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema)}\nreturn e.prototype.registerConfiguration=function(e,t){void 0===t&&(t=!0),this.registerConfigurations([e],t)},e.prototype.registerConfigurations=function(e,n){var i=this;void 0===n&&(n=!0);var o=[];e.forEach((function(e){o.push.apply(o,i.validateAndRegisterProperties(e,n)),i.configurationContributors.push(e),i.registerJSONConfiguration(e)})),l.registerSchema(t.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire(o)},e.prototype.registerOverrideIdentifiers=function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t];this.overrideIdentifiers.add(i)}this.updateOverridePropertyPatternKey()},e.prototype.validateAndRegisterProperties=function(e,n,i){void 0===n&&(n=!0),void 0===i&&(i=3),i=r.isUndefinedOrNull(e.scope)?i:e.scope;var o=[],s=e.properties;if(s)for(var a in s)if(n&&h(a))delete s[a];else{var l=s[a],u=l.default;r.isUndefined(u)&&(l.default=d(l.type)),\nt.OVERRIDE_PROPERTY_PATTERN.test(a)?l.scope=void 0:l.scope=r.isUndefinedOrNull(l.scope)?i:l.scope,!s[a].hasOwnProperty(\"included\")||s[a].included?(this.configurationProperties[a]=s[a],o.push(a)):(this.excludedConfigurationProperties[a]=s[a],delete s[a])}var c=e.allOf;if(c)for(var p=0,g=c;p<g.length;p++){var f=g[p];o.push.apply(o,this.validateAndRegisterProperties(f,n,i))}return o},e.prototype.getConfigurationProperties=function(){return this.configurationProperties},e.prototype.registerJSONConfiguration=function(e){var n=this,i=function(e){var o=e.properties;if(o)for(var r in o)switch(t.allSettings.properties[r]=o[r],o[r].scope){case 1:t.applicationSettings.properties[r]=o[r];break;case 2:t.machineSettings.properties[r]=o[r];break;case 6:t.machineOverridableSettings.properties[r]=o[r];break;case 3:t.windowSettings.properties[r]=o[r];break;case 4:t.resourceSettings.properties[r]=o[r];break;case 5:t.resourceSettings.properties[r]=o[r],n.resourceLanguageSettingsSchema.properties[r]=o[r]}var s=e.allOf\n;s&&s.forEach(i)};i(e)},e.prototype.updateOverridePropertyPatternKey=function(){for(var e,i=0,o=a.values(this.overrideIdentifiers);i<o.length;i++){var r=\"[\"+o[i]+\"]\",s={type:\"object\",description:n.localize(1,null),errorMessage:n.localize(2,null),$ref:t.resourceLanguageSettingsSchemaId,default:null===(e=this.defaultOverridesConfigurationNode.properties[r])||void 0===e?void 0:e.default};t.allSettings.properties[r]=s,t.applicationSettings.properties[r]=s,t.machineSettings.properties[r]=s,t.machineOverridableSettings.properties[r]=s,t.windowSettings.properties[r]=s,t.resourceSettings.properties[r]=s}this._onDidSchemaChange.fire()},e}();function d(e){switch(Array.isArray(e)?e[0]:e){case\"boolean\":return!1;case\"integer\":case\"number\":return 0;case\"string\":return\"\";case\"array\":return[];case\"object\":return{};default:return null}}t.OVERRIDE_PROPERTY_PATTERN=new RegExp(\"\\\\[.*\\\\]$\"),t.getDefaultValue=d;var c=new u;function h(e){\nreturn t.OVERRIDE_PROPERTY_PATTERN.test(e)?n.localize(3,null,e):void 0!==c.getConfigurationProperties()[e]?n.localize(4,null,e):null}o.Registry.add(t.Extensions.Configuration,c),t.validateProperty=h})),define(n[163],i([0,1,422,4,2,31,19,33,105,142,85,42,87]),(function(e,t,n,i,o,s,a,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.TabFocus=new(function(){function e(){this._tabFocus=!1,this._onDidChangeTabFocus=new i.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}return e.prototype.getTabFocusMode=function(){return this._tabFocus},e.prototype.setTabFocusMode=function(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))},e}());var f=Object.hasOwnProperty,m=function(){function e(){this._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype.get=function(e){return this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}();t.ComputedEditorOptions=m;var v=function(){function e(){\nthis._values=[]}return e.prototype._read=function(e){return this._values[e]},e.prototype._write=function(e,t){this._values[e]=t},e}(),_=function(){function e(){}return e.readOptions=function(e){for(var t=e,n=new v,i=0,o=u.editorOptionsRegistry;i<o.length;i++){var r=o[i],s=\"_never_\"===r.name?void 0:t[r.name];n._write(r.id,s)}return n},e.validateOptions=function(e){for(var t=new u.ValidatedEditorOptions,n=0,i=u.editorOptionsRegistry;n<i.length;n++){var o=i[n];t._write(o.id,o.validate(e._read(o.id)))}return t},e.computeOptions=function(e,t){for(var n=new m,i=0,o=u.editorOptionsRegistry;i<o.length;i++){var r=o[i];n._write(r.id,r.compute(t,n,e._read(r.id)))}return n},e._deepEquals=function(t,n){if(\"object\"!=typeof t||\"object\"!=typeof n)return t===n;if(Array.isArray(t)||Array.isArray(n))return!(!Array.isArray(t)||!Array.isArray(n))&&a.equals(t,n);for(var i in t)if(!e._deepEquals(t[i],n[i]))return!1;return!0},e.checkEquals=function(t,n){for(var i=[],o=!1,r=0,s=u.editorOptionsRegistry;r<s.length;r++){\nvar a=s[r],l=!e._deepEquals(t._read(a.id),n._read(a.id));i[a.id]=l,l&&(o=!0)}return o?new u.ConfigurationChangedEvent(i):null},e}();function y(e){var t=s.deepClone(e);return function(e){var t=e.wordWrap;!0===t?e.wordWrap=\"on\":!1===t&&(e.wordWrap=\"off\");var n=e.lineNumbers;!0===n?e.lineNumbers=\"on\":!1===n&&(e.lineNumbers=\"off\"),!1===e.autoClosingBrackets&&(e.autoClosingBrackets=\"never\",e.autoClosingQuotes=\"never\",e.autoSurround=\"never\"),\"visible\"===e.cursorBlinking&&(e.cursorBlinking=\"solid\");var i=e.renderWhitespace;!0===i?e.renderWhitespace=\"boundary\":!1===i&&(e.renderWhitespace=\"none\");var o=e.renderLineHighlight;!0===o?e.renderLineHighlight=\"line\":!1===o&&(e.renderLineHighlight=\"none\");var r=e.acceptSuggestionOnEnter;!0===r?e.acceptSuggestionOnEnter=\"on\":!1===r&&(e.acceptSuggestionOnEnter=\"off\");var s=e.tabCompletion;!1===s?e.tabCompletion=\"off\":!0===s&&(e.tabCompletion=\"onlySnippets\");var a=e.suggest;if(a&&\"object\"==typeof a.filteredTypes&&a.filteredTypes){var l={method:\"showMethods\",\nfunction:\"showFunctions\",constructor:\"showConstructors\",field:\"showFields\",variable:\"showVariables\",class:\"showClasses\",struct:\"showStructs\",interface:\"showInterfaces\",module:\"showModules\",property:\"showProperties\",event:\"showEvents\",operator:\"showOperators\",unit:\"showUnits\",value:\"showValues\",constant:\"showConstants\",enum:\"showEnums\",enumMember:\"showEnumMembers\",keyword:\"showKeywords\",text:\"showWords\",color:\"showColors\",file:\"showFiles\",reference:\"showReferences\",folder:\"showFolders\",typeParameter:\"showTypeParameters\",snippet:\"showSnippets\"};g.forEach(l,(function(e){var t=a.filteredTypes[e.key];!1===t&&(a[e.value]=t)}))}var u=e.hover;!0===u?e.hover={enabled:!0}:!1===u&&(e.hover={enabled:!1});var d=e.parameterHints;!0===d?e.parameterHints={enabled:!0}:!1===d&&(e.parameterHints={enabled:!1});var c=e.autoIndent;!0===c?e.autoIndent=\"full\":!1===c&&(e.autoIndent=\"advanced\");var h=e.matchBrackets;!0===h?e.matchBrackets=\"always\":!1===h&&(e.matchBrackets=\"never\")}(t),t}var C=function(e){function n(n,o){\nvar r=e.call(this)||this;return r._onDidChange=r._register(new i.Emitter),r.onDidChange=r._onDidChange.event,r.isSimpleWidget=n,r._isDominatedByLongLines=!1,r._lineNumbersDigitCount=1,r._rawOptions=y(o),r._readOptions=_.readOptions(r._rawOptions),r._validatedOptions=_.validateOptions(r._readOptions),r._register(d.EditorZoom.onDidChangeZoomLevel((function(e){return r._recomputeOptions()}))),r._register(t.TabFocus.onDidChangeTabFocus((function(e){return r._recomputeOptions()}))),r}return r(n,e),n.prototype.observeReferenceElement=function(e){},n.prototype.dispose=function(){e.prototype.dispose.call(this)},n.prototype._recomputeOptions=function(){var e=this.options,t=this._computeInternalOptions();if(e){var n=_.checkEquals(e,t);if(null===n)return;this.options=t,this._onDidChange.fire(n)}else this.options=t},n.prototype.getRawOptions=function(){return this._rawOptions},n.prototype._computeInternalOptions=function(){\nvar e=this._getEnvConfiguration(),n=c.BareFontInfo.createFromValidatedSettings(this._validatedOptions,e.zoomLevel,this.isSimpleWidget),i={outerWidth:e.outerWidth,outerHeight:e.outerHeight,fontInfo:this.readConfiguration(n),extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:t.TabFocus.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport};return _.computeOptions(this._validatedOptions,i)},n._subsetEquals=function(e,t){for(var n in t)if(f.call(t,n)){var i=t[n],o=e[n];if(o===i)continue;if(Array.isArray(o)&&Array.isArray(i)){if(!a.equals(o,i))return!1;continue}if(\"object\"==typeof o&&\"object\"==typeof i){if(!this._subsetEquals(o,i))return!1;continue}return!1}return!0},n.prototype.updateOptions=function(e){if(void 0!==e){var t=y(e);n._subsetEquals(this._rawOptions,t)||(this._rawOptions=s.mixin(this._rawOptions,t||{}),\nthis._readOptions=_.readOptions(this._rawOptions),this._validatedOptions=_.validateOptions(this._readOptions),this._recomputeOptions())}},n.prototype.setIsDominatedByLongLines=function(e){this._isDominatedByLongLines=e,this._recomputeOptions()},n.prototype.setMaxLineNumber=function(e){var t=n._digitCount(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())},n._digitCount=function(e){for(var t=0;e;)e=Math.floor(e/10),t++;return t||1},n}(o.Disposable);t.CommonEditorConfiguration=C,t.editorConfigurationBaseNode=Object.freeze({id:\"editor\",order:5,type:\"object\",title:n.localize(0,null),scope:5});var b,S=p.Registry.as(h.Extensions.Configuration),w=l(l({},t.editorConfigurationBaseNode),{properties:{\"editor.tabSize\":{type:\"number\",default:u.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:n.localize(1,null)},\"editor.insertSpaces\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:n.localize(2,null)},\"editor.detectIndentation\":{\ntype:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:n.localize(3,null)},\"editor.trimAutoWhitespace\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:n.localize(4,null)},\"editor.largeFileOptimizations\":{type:\"boolean\",default:u.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:n.localize(5,null)},\"editor.wordBasedSuggestions\":{type:\"boolean\",default:!0,description:n.localize(6,null)},\"editor.semanticHighlighting.enabled\":{type:\"boolean\",default:!1,description:n.localize(7,null)},\"editor.stablePeek\":{type:\"boolean\",default:!1,markdownDescription:n.localize(8,null)},\"editor.maxTokenizationLineLength\":{type:\"integer\",default:2e4,description:n.localize(9,null)},\"diffEditor.maxComputationTime\":{type:\"number\",default:5e3,description:n.localize(10,null)},\"diffEditor.renderSideBySide\":{type:\"boolean\",default:!0,description:n.localize(11,null)},\"diffEditor.ignoreTrimWhitespace\":{type:\"boolean\",default:!0,description:n.localize(12,null)},\n\"diffEditor.renderIndicators\":{type:\"boolean\",default:!0,description:n.localize(13,null)}}});for(var E=0,L=u.editorOptionsRegistry;E<L.length;E++){var D=L[E],N=D.schema;if(void 0!==N)if(void 0!==(b=N).type||void 0!==b.anyOf)w.properties[\"editor.\"+D.name]=N;else for(var x in N)f.call(N,x)&&(w.properties[x]=N[x])}var I=null;function M(){return null===I&&(I=Object.create(null),Object.keys(w.properties).forEach((function(e){I[e]=!0}))),I}t.isEditorConfigurationKey=function(e){return M()[\"editor.\"+e]||!1},t.isDiffEditorConfigurationKey=function(e){return M()[\"diffEditor.\"+e]||!1},S.registerConfiguration(w)})),define(n[60],i([0,1,24,4,2,16,333,185,163,33,142]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(){function e(){this._keys=Object.create(null),this._values=Object.create(null)}return e.prototype.has=function(e){var t=e.getId();return!!this._values[t]},e.prototype.get=function(e){var t=e.getId();return this._values[t]},\ne.prototype.put=function(e,t){var n=e.getId();this._keys[n]=e,this._values[n]=t},e.prototype.remove=function(e){var t=e.getId();delete this._keys[t],delete this._values[t]},e.prototype.getValues=function(){var e=this;return Object.keys(this._keys).map((function(t){return e._values[t]}))},e}();t.clearAllFontInfos=function(){p.INSTANCE.clearCache()};var p=function(e){function t(){var t=e.call(this)||this;return t._onDidChange=t._register(new i.Emitter),t.onDidChange=t._onDidChange.event,t._cache=new h,t._evictUntrustedReadingsTimeout=-1,t}return r(t,e),t.prototype.dispose=function(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),e.prototype.dispose.call(this)},t.prototype.clearCache=function(){this._cache=new h,this._onDidChange.fire()},t.prototype._writeToCache=function(e,t){var n=this;this._cache.put(e,t),t.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=setTimeout((function(){\nn._evictUntrustedReadingsTimeout=-1,n._evictUntrustedReadings()}),5e3))},t.prototype._evictUntrustedReadings=function(){for(var e=this._cache.getValues(),t=!1,n=0,i=e.length;n<i;n++){var o=e[n];o.isTrusted||(t=!0,this._cache.remove(o))}t&&this._onDidChange.fire()},t.prototype.readConfiguration=function(e){if(!this._cache.has(e)){var i=t._actualReadConfiguration(e);(i.typicalHalfwidthCharacterWidth<=2||i.typicalFullwidthCharacterWidth<=2||i.spaceWidth<=2||i.maxDigitWidth<=2)&&(i=new c.FontInfo({zoomLevel:n.getZoomLevel(),fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:i.isMonospace,typicalHalfwidthCharacterWidth:Math.max(i.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(i.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:i.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(i.spaceWidth,5),middotWidth:Math.max(i.middotWidth,5),\nmaxDigitWidth:Math.max(i.maxDigitWidth,5)},!1)),this._writeToCache(e,i)}return this._cache.get(e)},t.createRequest=function(e,t,n,i){var o=new a.CharWidthRequest(e,t);return n.push(o),i&&i.push(o),o},t._actualReadConfiguration=function(e){var t=[],i=[],o=this.createRequest(\"n\",0,t,i),r=this.createRequest(\"ｍ\",0,t,null),s=this.createRequest(\" \",0,t,i),l=this.createRequest(\"0\",0,t,i),u=this.createRequest(\"1\",0,t,i),h=this.createRequest(\"2\",0,t,i),p=this.createRequest(\"3\",0,t,i),g=this.createRequest(\"4\",0,t,i),f=this.createRequest(\"5\",0,t,i),m=this.createRequest(\"6\",0,t,i),v=this.createRequest(\"7\",0,t,i),_=this.createRequest(\"8\",0,t,i),y=this.createRequest(\"9\",0,t,i),C=this.createRequest(\"→\",0,t,i),b=this.createRequest(\"￫\",0,t,null),S=this.createRequest(\"·\",0,t,i);this.createRequest(\"|\",0,t,i),this.createRequest(\"/\",0,t,i),this.createRequest(\"-\",0,t,i),this.createRequest(\"_\",0,t,i),this.createRequest(\"i\",0,t,i),this.createRequest(\"l\",0,t,i),this.createRequest(\"m\",0,t,i),this.createRequest(\"|\",1,t,i),\nthis.createRequest(\"_\",1,t,i),this.createRequest(\"i\",1,t,i),this.createRequest(\"l\",1,t,i),this.createRequest(\"m\",1,t,i),this.createRequest(\"n\",1,t,i),this.createRequest(\"|\",2,t,i),this.createRequest(\"_\",2,t,i),this.createRequest(\"i\",2,t,i),this.createRequest(\"l\",2,t,i),this.createRequest(\"m\",2,t,i),this.createRequest(\"n\",2,t,i),a.readCharWidths(e,t);for(var w=Math.max(l.width,u.width,h.width,p.width,g.width,f.width,m.width,v.width,_.width,y.width),E=e.fontFeatureSettings===d.EditorFontLigatures.OFF,L=i[0].width,D=1,N=i.length;E&&D<N;D++){var x=L-i[D].width;if(x<-.001||x>.001){E=!1;break}}var I=!0;E&&b.width!==L&&(I=!1),b.width>C.width&&(I=!1);var M=n.getTimeSinceLastZoomLevelChanged()>2e3;return new c.FontInfo({zoomLevel:n.getZoomLevel(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:E,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:r.width,\ncanUseHalfwidthRightwardsArrow:I,spaceWidth:s.width,middotWidth:S.width,maxDigitWidth:w},M)},t.INSTANCE=new t,t}(o.Disposable),g=function(e){function t(t,i,o,r){void 0===o&&(o=null);var s=e.call(this,t,i)||this;return s.accessibilityService=r,s._elementSizeObserver=s._register(new l.ElementSizeObserver(o,i.dimension,(function(){return s._onReferenceDomElementSizeChanged()}))),s._register(p.INSTANCE.onDidChange((function(){return s._onCSSBasedConfigurationChanged()}))),s._validatedOptions.get(9)&&s._elementSizeObserver.startObserving(),s._register(n.onDidChangeZoomLevel((function(e){return s._recomputeOptions()}))),s._register(s.accessibilityService.onDidChangeScreenReaderOptimized((function(){return s._recomputeOptions()}))),s._recomputeOptions(),s}return r(t,e),t.applyFontInfoSlow=function(e,t){e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+\"px\",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.lineHeight=t.lineHeight+\"px\",\ne.style.letterSpacing=t.letterSpacing+\"px\"},t.applyFontInfo=function(e,t){e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)},t.prototype._onReferenceDomElementSizeChanged=function(){this._recomputeOptions()},t.prototype._onCSSBasedConfigurationChanged=function(){this._recomputeOptions()},t.prototype.observeReferenceElement=function(e){this._elementSizeObserver.observe(e)},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getExtraEditorClassName=function(){var e=\"\";return n.isSafari||n.isWebkitWebView||(e+=\"no-user-select \"),s.isMacintosh&&(e+=\"mac \"),e},t.prototype._getEnvConfiguration=function(){return{extraEditorClassName:this._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:n.isWebKit||n.isFirefox,\npixelRatio:n.getPixelRatio(),zoomLevel:n.getZoomLevel(),accessibilitySupport:this.accessibilityService.isScreenReaderOptimized()?2:this.accessibilityService.getAccessibilitySupport()}},t.prototype.readConfiguration=function(e){return p.INSTANCE.readConfiguration(e)},t}(u.CommonEditorConfiguration);t.Configuration=g})),define(n[512],i([0,1,161,106,5,60]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){}return e.create=function(){return new e},e.prototype.createLineBreaksComputer=function(e,t,s,u){t|=0,s=+s;var d=[];return{addRequest:function(e,t){d.push(e)},finalize:function(){return function(e,t,s,u,d){if(-1===u){for(var c=[],h=0,p=e.length;h<p;h++)c[h]=null;return c}var g=Math.round(u*t.typicalHalfwidthCharacterWidth);2!==d&&3!==d||(d=1);var f=document.createElement(\"div\");r.Configuration.applyFontInfoSlow(f,t);var m=i.createStringBuilder(1e4),v=[],_=[],y=[],C=[],b=[];for(h=0;h<e.length;h++){var S=e[h],w=0,E=0,L=g\n;if(0!==d)if(-1===(w=o.firstNonWhitespaceIndex(S)))w=0;else{for(var D=0;D<w;D++){var N=9===S.charCodeAt(D)?s-E%s:1;E+=N}var x=Math.ceil(t.spaceWidth*E);x+t.typicalFullwidthCharacterWidth>g?(w=0,E=0):L=g-x}var I=S.substr(w),M=a(I,E,s,L,m);v[h]=w,_[h]=E,y[h]=I,C[h]=M[0],b[h]=M[1]}f.innerHTML=m.build(),f.style.position=\"absolute\",f.style.top=\"10000\",f.style.wordWrap=\"break-word\",document.body.appendChild(f);var k=document.createRange(),T=Array.prototype.slice.call(f.children,0),R=[];for(h=0;h<e.length;h++){var O=T[h],P=l(k,O,y[h],C[h]);if(null!==P){w=v[h],E=_[h];var A=b[h],F=[],W=0;for(p=P.length;W<p;W++)F[W]=A[P[W]];if(0!==w)for(W=0,p=P.length;W<p;W++)P[W]+=w;R[h]=new n.LineBreakData(P,F,E)}else R[h]=null}return document.body.removeChild(f),R}(d,e,t,s,u)}}},e}();function a(e,t,n,i,r){r.appendASCIIString('<div style=\"width:'),r.appendASCIIString(String(i)),r.appendASCIIString('px;\">');for(var s=e.length,a=t,l=0,u=[],d=[],c=0<s?e.charCodeAt(0):0,h=0;h<s;h++){u[h]=l,d[h]=a;var p=c;c=h+1<s?e.charCodeAt(h+1):0\n;var g=1,f=1;switch(p){case 9:f=g=n-a%n;for(var m=1;m<=g;m++)m<g?r.write1(160):r.appendASCII(32);break;case 32:32===c?r.write1(160):r.appendASCII(32);break;case 60:r.appendASCIIString(\"&lt;\");break;case 62:r.appendASCIIString(\"&gt;\");break;case 38:r.appendASCIIString(\"&amp;\");break;case 0:r.appendASCIIString(\"&#00;\");break;case 65279:case 8232:r.write1(65533);break;default:o.isFullWidthCharacter(p)&&f++,r.write1(p)}l+=g,a+=f}return u[e.length]=l,d[e.length]=a,r.appendASCIIString(\"</div>\"),[u,d]}function l(e,t,n,i){if(n.length<=1)return null;var o=[];return function e(t,n,i,o,r,s,a,l){if(o===s)return;r=r||u(t,n,i[o],i[o+1]);a=a||u(t,n,i[s],i[s+1]);if(Math.abs(r[0].top-a[0].top)<=.1)return;if(o+1===s)return void l.push(s);var d=o+(s-o)/2|0;var c=u(t,n,i[d],i[d+1]);e(t,n,i,o,r,d,c,l);e(t,n,i,d,c,s,a,l)}(e,t.firstChild,i,0,null,n.length-1,null,o),0===o.length?null:(o.push(n.length),o)}function u(e,t,n,i){return e.setStart(t,n),e.setEnd(t,i),e.getClientRects()}t.DOMLineBreaksComputerFactory=s})),\ndefine(n[513],i([0,1,28,60,143,37]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n._visibleLines=new o.VisibleLinesCollection(n),n.domNode=n._visibleLines.domNode,n._dynamicOverlays=[],n._isFocused=!1,n.domNode.setClassName(\"view-overlays\"),n}return r(t,e),t.prototype.shouldRender=function(){if(e.prototype.shouldRender.call(this))return!0;for(var t=0,n=this._dynamicOverlays.length;t<n;t++){if(this._dynamicOverlays[t].shouldRender())return!0}return!1},t.prototype.dispose=function(){e.prototype.dispose.call(this);for(var t=0,n=this._dynamicOverlays.length;t<n;t++){this._dynamicOverlays[t].dispose()}this._dynamicOverlays=[]},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new l(this._context.configuration,this._dynamicOverlays)},t.prototype.addDynamicOverlay=function(e){this._dynamicOverlays.push(e)},t.prototype.onConfigurationChanged=function(e){\nthis._visibleLines.onConfigurationChanged(e);for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){this._visibleLines.getVisibleLine(i).onConfigurationChanged(e)}return!0},t.prototype.onFlushed=function(e){return this._visibleLines.onFlushed(e)},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!0},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onScrollChanged=function(e){return this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._visibleLines.onZonesChanged(e)},t.prototype.prepareRender=function(e){for(var t=this._dynamicOverlays.filter((function(e){return e.shouldRender()\n})),n=0,i=t.length;n<i;n++){var o=t[n];o.prepareRender(e),o.onDidRender()}},t.prototype.render=function(e){this._viewOverlaysRender(e),this.domNode.toggleClassName(\"focused\",this._isFocused)},t.prototype._viewOverlaysRender=function(e){this._visibleLines.renderLines(e.viewportData)},t}(s.ViewPart);t.ViewOverlays=a;var l=function(){function e(e,t){this._configuration=e,this._lineHeight=this._configuration.options.get(49),this._dynamicOverlays=t,this._domNode=null,this._renderedContent=null}return e.prototype.getDomNode=function(){return this._domNode?this._domNode.domNode:null},e.prototype.setDomNode=function(e){this._domNode=n.createFastDomNode(e)},e.prototype.onContentChanged=function(){},e.prototype.onTokensChanged=function(){},e.prototype.onConfigurationChanged=function(e){this._lineHeight=this._configuration.options.get(49)},e.prototype.renderLine=function(e,t,n,i){for(var o=\"\",r=0,s=this._dynamicOverlays.length;r<s;r++){o+=this._dynamicOverlays[r].render(n.startLineNumber,e)}\nreturn this._renderedContent!==o&&(this._renderedContent=o,i.appendASCIIString('<div style=\"position:absolute;top:'),i.appendASCIIString(String(t)),i.appendASCIIString(\"px;width:100%;height:\"),i.appendASCIIString(String(this._lineHeight)),i.appendASCIIString('px;\">'),i.appendASCIIString(o),i.appendASCIIString(\"</div>\"),!0)},e.prototype.layoutLine=function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))},e}();t.ViewOverlayLine=l;var u=function(e){function t(t){var n=e.call(this,t)||this,i=n._context.configuration.options.get(107);return n._contentWidth=i.contentWidth,n.domNode.setHeight(0),n}return r(t,e),t.prototype.onConfigurationChanged=function(t){var n=this._context.configuration.options.get(107);return this._contentWidth=n.contentWidth,e.prototype.onConfigurationChanged.call(this,t)||!0},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollWidthChanged},t.prototype._viewOverlaysRender=function(t){\ne.prototype._viewOverlaysRender.call(this,t),this.domNode.setWidth(Math.max(t.scrollWidth,this._contentWidth))},t}(a);t.ContentViewOverlays=u;var d=function(e){function t(t){var n=e.call(this,t)||this,o=n._context.configuration.options,r=o.get(107);return n._contentLeft=r.contentLeft,n.domNode.setClassName(\"margin-view-overlays\"),n.domNode.setWidth(1),i.Configuration.applyFontInfo(n.domNode,o.get(34)),n}return r(t,e),t.prototype.onConfigurationChanged=function(t){var n=this._context.configuration.options;i.Configuration.applyFontInfo(this.domNode,n.get(34));var o=n.get(107);return this._contentLeft=o.contentLeft,e.prototype.onConfigurationChanged.call(this,t)||!0},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollHeightChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t);var n=Math.min(t.scrollHeight,1e6);this.domNode.setHeight(n),this.domNode.setWidth(this._contentLeft)},t}(a);t.MarginViewOverlays=d})),\ndefine(n[514],i([0,1,6,28,5,60,33,13,3]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e,t,n,i,o,r){this.top=e,this.left=t,this.width=n,this.height=i,this.textContent=o,this.textContentClassName=r},d=function(){function e(e){this._context=e;var t=this._context.configuration.options,n=t.get(34);this._cursorStyle=t.get(18),this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(21),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=i.createFastDomNode(document.createElement(\"div\")),this._domNode.setClassName(\"cursor\"),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),r.Configuration.applyFontInfo(this._domNode,n),this._domNode.setDisplay(\"none\"),this._position=new a.Position(1,1),this._lastRenderedContent=\"\",this._renderData=null}return e.prototype.getDomNode=function(){return this._domNode},\ne.prototype.getPosition=function(){return this._position},e.prototype.show=function(){this._isVisible||(this._domNode.setVisibility(\"inherit\"),this._isVisible=!0)},e.prototype.hide=function(){this._isVisible&&(this._domNode.setVisibility(\"hidden\"),this._isVisible=!1)},e.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(34);return this._cursorStyle=t.get(18),this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(21),this._typicalHalfwidthCharacterWidth),r.Configuration.applyFontInfo(this._domNode,n),!0},e.prototype.onCursorPositionChanged=function(e){return this._position=e,!0},e.prototype._prepareRender=function(e){var t=\"\";if(this._cursorStyle===s.TextEditorCursorStyle.Line||this._cursorStyle===s.TextEditorCursorStyle.LineThin){var i,r=e.visibleRangeForPosition(this._position);if(!r||r.outsideRenderedLine)return null;if(this._cursorStyle===s.TextEditorCursorStyle.Line){\nif((i=n.computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2))>2){var a=this._context.model.getLineContent(this._position.lineNumber),d=o.nextCharLength(a,this._position.column-1);t=a.substr(this._position.column-1,d)}}else i=n.computeScreenAwareSize(1);var c=r.left;i>=2&&c>=1&&(c-=1);var h=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new u(h,c,i,this._lineHeight,t,\"\")}var p=this._context.model.getLineContent(this._position.lineNumber),g=o.nextCharLength(p,this._position.column-1),f=e.linesVisibleRangesForRange(new l.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+g),!1);if(!f||0===f.length)return null;var m=f[0];if(m.outsideRenderedLine||0===m.ranges.length)return null;var v=m.ranges[0],_=v.width<1?this._typicalHalfwidthCharacterWidth:v.width,y=\"\";if(this._cursorStyle===s.TextEditorCursorStyle.Block){var C=this._context.model.getViewLineData(this._position.lineNumber)\n;t=p.substr(this._position.column-1,g);var b=C.tokens.findTokenIndexAtOffset(this._position.column-1);y=C.tokens.getClassName(b)}var S=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,w=this._lineHeight;return this._cursorStyle!==s.TextEditorCursorStyle.Underline&&this._cursorStyle!==s.TextEditorCursorStyle.UnderlineThin||(S+=this._lineHeight-2,w=2),new u(S,v.left,_,w,t,y)},e.prototype.prepareRender=function(e){this._renderData=this._prepareRender(e)},e.prototype.render=function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(\"cursor \"+this._renderData.textContentClassName),this._domNode.setDisplay(\"block\"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),\nthis._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay(\"none\"),null)},e}();t.ViewCursor=d})),define(n[515],i([0,1,10,4,2,252,5,17,118,63,85,42]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=Object.prototype.hasOwnProperty,g=function(e){function t(t,n){void 0===t&&(t=!0),void 0===n&&(n=!1);var o=e.call(this)||this;return o._onDidChange=o._register(new i.Emitter),o.onDidChange=o._onDidChange.event,o._warnOnOverwrite=n,o._nextLanguageId2=1,o._languageIdToLanguage=[],o._languageToLanguageId=Object.create(null),o._languages={},o._mimeTypesMap={},o._nameMap={},o._lowercaseNameMap={},t&&(o._initializeFromRegistry(),o._register(u.ModesRegistry.onDidChangeLanguages((function(e){return o._initializeFromRegistry()})))),o}return r(t,e),t.prototype._initializeFromRegistry=function(){this._languages={},\nthis._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={};var e=u.ModesRegistry.getLanguages();this._registerLanguages(e)},t.prototype._registerLanguages=function(e){for(var t=this,n=0,i=e;n<i.length;n++){var o=i[n];this._registerLanguage(o)}this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((function(e){var n=t._languages[e];n.name&&(t._nameMap[n.name]=n.identifier),n.aliases.forEach((function(e){t._lowercaseNameMap[e.toLowerCase()]=n.identifier})),n.mimetypes.forEach((function(e){t._mimeTypesMap[e]=n.identifier}))})),h.Registry.as(c.Extensions.Configuration).registerOverrideIdentifiers(u.ModesRegistry.getLanguages().map((function(e){return e.id}))),this._onDidChange.fire()},t.prototype._getLanguageId=function(e){if(this._languageToLanguageId[e])return this._languageToLanguageId[e];var t=this._nextLanguageId2++;return this._languageIdToLanguage[t]=e,this._languageToLanguageId[e]=t,t},t.prototype._registerLanguage=function(e){var t,n=e.id\n;if(p.call(this._languages,n))t=this._languages[n];else{var i=this._getLanguageId(n);t={identifier:new l.LanguageIdentifier(n,i),name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[]},this._languages[n]=t}this._mergeLanguage(t,e)},t.prototype._mergeLanguage=function(e,t){var i,o=t.id,r=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&((i=e.mimetypes).push.apply(i,t.mimetypes),r=t.mimetypes[0]),r||(r=\"text/x-\"+o,e.mimetypes.push(r)),Array.isArray(t.extensions))for(var l=0,u=t.extensions;l<u.length;l++){var d=u[l];s.registerTextMime({id:o,mime:r,extension:d},this._warnOnOverwrite),e.extensions.push(d)}if(Array.isArray(t.filenames))for(var c=0,h=t.filenames;c<h.length;c++){var p=h[c];s.registerTextMime({id:o,mime:r,filename:p},this._warnOnOverwrite),e.filenames.push(p)}if(Array.isArray(t.filenamePatterns))for(var g=0,f=t.filenamePatterns;g<f.length;g++){var m=f[g];s.registerTextMime({id:o,mime:r,filepattern:m},this._warnOnOverwrite)}\nif(\"string\"==typeof t.firstLine&&t.firstLine.length>0){var v=t.firstLine;\"^\"!==v.charAt(0)&&(v=\"^\"+v);try{var _=new RegExp(v);a.regExpLeadsToEndlessLoop(_)||s.registerTextMime({id:o,mime:r,firstline:_},this._warnOnOverwrite)}catch(e){n.onUnexpectedError(e)}}e.aliases.push(o);var y=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(y=0===t.aliases.length?[null]:t.aliases),null!==y)for(var C=0,b=y;C<b.length;C++){var S=b[C];S&&0!==S.length&&e.aliases.push(S)}var w=null!==y&&y.length>0;if(w&&null===y[0]);else{var E=(w?y[0]:null)||o;!w&&e.name||(e.name=E)}t.configuration&&e.configurationFiles.push(t.configuration)},t.prototype.isRegisteredMode=function(e){return!!p.call(this._mimeTypesMap,e)||p.call(this._languages,e)},t.prototype.getModeIdForLanguageNameLowercase=function(e){return p.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null},t.prototype.extractModeIds=function(e){var t=this;return e?e.split(\",\").map((function(e){return e.trim()})).map((function(e){\nreturn p.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e})).filter((function(e){return p.call(t._languages,e)})):[]},t.prototype.getLanguageIdentifier=function(e){if(e===d.NULL_MODE_ID||0===e)return d.NULL_LANGUAGE_IDENTIFIER;var t;if(\"string\"==typeof e)t=e;else if(!(t=this._languageIdToLanguage[e]))return null;return p.call(this._languages,t)?this._languages[t].identifier:null},t.prototype.getModeIdsFromFilepathOrFirstLine=function(e,t){if(!e&&!t)return[];var n=s.guessMimeTypes(e,t);return this.extractModeIds(n.join(\",\"))},t}(o.Disposable);t.LanguagesRegistry=g})),define(n[516],i([0,1,4,2,349,63,515,19]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(t,i){var o=e.call(this)||this;return o._onDidChange=o._register(new n.Emitter),o.onDidChange=o._onDidChange.event,o._selector=i,o.languageIdentifier=o._selector(),o._register(t((function(){return o._evaluate()}))),o}return r(t,e),t.prototype._evaluate=function(){var e=this._selector()\n;e.id!==this.languageIdentifier.id&&(this.languageIdentifier=e,this._onDidChange.fire(this.languageIdentifier))},t}(i.Disposable),d=function(){function e(e){var t=this;void 0===e&&(e=!1),this._onDidCreateMode=new n.Emitter,this.onDidCreateMode=this._onDidCreateMode.event,this._onLanguagesMaybeChanged=new n.Emitter,this.onLanguagesMaybeChanged=this._onLanguagesMaybeChanged.event,this._instantiatedModes={},this._registry=new a.LanguagesRegistry(!0,e),this._registry.onDidChange((function(){return t._onLanguagesMaybeChanged.fire()}))}return e.prototype.isRegisteredMode=function(e){return this._registry.isRegisteredMode(e)},e.prototype.getModeIdForLanguageName=function(e){return this._registry.getModeIdForLanguageNameLowercase(e)},e.prototype.getModeIdByFilepathOrFirstLine=function(e,t){var n=this._registry.getModeIdsFromFilepathOrFirstLine(e,t);return l.firstOrDefault(n,null)},e.prototype.getModeId=function(e){var t=this._registry.extractModeIds(e);return l.firstOrDefault(t,null)},\ne.prototype.getLanguageIdentifier=function(e){return this._registry.getLanguageIdentifier(e)},e.prototype.create=function(e){var t=this;return new u(this.onLanguagesMaybeChanged,(function(){var n=t.getModeId(e);return t._createModeAndGetLanguageIdentifier(n)}))},e.prototype.createByFilepathOrFirstLine=function(e,t){var n=this;return new u(this.onLanguagesMaybeChanged,(function(){var i=n.getModeIdByFilepathOrFirstLine(e,t);return n._createModeAndGetLanguageIdentifier(i)}))},e.prototype._createModeAndGetLanguageIdentifier=function(e){var t=this.getLanguageIdentifier(e||\"plaintext\")||s.NULL_LANGUAGE_IDENTIFIER;return this._getOrCreateMode(t.language),t},e.prototype.triggerMode=function(e){var t=this.getModeId(e);this._getOrCreateMode(t||\"plaintext\")},e.prototype._getOrCreateMode=function(e){if(!this._instantiatedModes.hasOwnProperty(e)){var t=this.getLanguageIdentifier(e)||s.NULL_LANGUAGE_IDENTIFIER;this._instantiatedModes[e]=new o.FrankensteinMode(t),this._onDidCreateMode.fire(this._instantiatedModes[e])}\nreturn this._instantiatedModes[e]},e}();t.ModeServiceImpl=d})),define(n[43],i([0,1,42,11,85]),(function(e,t,n,i,o){\"use strict\";function r(e,t,n,i){for(var o=t.split(\".\"),r=o.pop(),s=e,a=0;a<o.length;a++){var l=o[a],u=s[l];switch(typeof u){case\"undefined\":u=s[l]=Object.create(null);break;case\"object\":break;default:return void i(\"Ignoring \"+t+\" as \"+o.slice(0,a+1).join(\".\")+\" is \"+JSON.stringify(u))}s=u}\"object\"==typeof s?s[r]=n:i(\"Ignoring \"+t+\" as \"+o.join(\".\")+\" is \"+JSON.stringify(s))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.IConfigurationService=i.createDecorator(\"configurationService\"),t.toValuesTree=function(e,t){var n=Object.create(null);for(var i in e)r(n,i,e[i],t);return n},t.addToValueTree=r,t.removeFromValueTree=function(e,t){!function e(t,n){var i=n.shift();if(0===n.length)return void delete t[i];if(-1!==Object.keys(t).indexOf(i)){var o=t[i];\"object\"!=typeof o||Array.isArray(o)||(e(o,n),0===Object.keys(o).length&&delete t[i])}}(e,t.split(\".\"))},t.getConfigurationValue=function(e,t,n){\nvar i=function(e,t){for(var n=e,i=0,o=t;i<o.length;i++){var r=o[i];if(\"object\"!=typeof n||null===n)return;n=n[r]}return n}(e,t.split(\".\"));return void 0===i?n:i},t.getConfigurationKeys=function(){var e=n.Registry.as(o.Extensions.Configuration).getConfigurationProperties();return Object.keys(e)},t.getDefaultValues=function(){var e=Object.create(null),t=n.Registry.as(o.Extensions.Configuration).getConfigurationProperties();for(var i in t){r(e,i,t[i].default,(function(e){return console.error(\"Conflict in default settings: \"+e)}))}return e},t.overrideIdentifierFromKey=function(e){return e.substring(1,e.length-1)},t.getMigratedSettingValue=function(e,t,n){var i=e.inspect(t),o=e.inspect(n);return void 0!==i.userValue||void 0!==i.workspaceValue||void 0!==i.workspaceFolderValue?i.value:void 0!==o.userValue||void 0!==o.workspaceValue||void 0!==o.workspaceFolderValue?o.value:i.defaultValue}})),define(n[517],i([0,1,2,64,4,18,43]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var l=function(e){function t(t,n){var r=e.call(this)||this;r._contextKeyService=t,r._configurationService=n,r._accessibilitySupport=0,r._onDidChangeScreenReaderOptimized=new o.Emitter,r._accessibilityModeEnabledContext=i.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(r._contextKeyService);var s=function(){return r._accessibilityModeEnabledContext.set(r.isScreenReaderOptimized())};return r._register(r._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration(\"editor.accessibilitySupport\")&&(s(),r._onDidChangeScreenReaderOptimized.fire())}))),s(),r.onDidChangeScreenReaderOptimized((function(){return s()})),r}return r(t,e),Object.defineProperty(t.prototype,\"onDidChangeScreenReaderOptimized\",{get:function(){return this._onDidChangeScreenReaderOptimized.event},enumerable:!0,configurable:!0}),t.prototype.isScreenReaderOptimized=function(){var e=this._configurationService.getValue(\"editor.accessibilitySupport\");return\"on\"===e||\"auto\"===e&&2===this._accessibilitySupport},\nt.prototype.getAccessibilitySupport=function(){return this._accessibilitySupport},t=h([g(0,s.IContextKeyService),g(1,a.IConfigurationService)],t)}(n.Disposable);t.AccessibilityService=l}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[518],i([0,1,38,19,21,31,85,43]),(function(e,t,n,i,o,s,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e,t,n){void 0===e&&(e={}),void 0===t&&(t=[]),void 0===n&&(n=[]),this._contents=e,this._keys=t,this._overrides=n,this.isFrozen=!1}return Object.defineProperty(e.prototype,\"contents\",{get:function(){return this.checkAndFreeze(this._contents)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"overrides\",{get:function(){return this.checkAndFreeze(this._overrides)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"keys\",{\nget:function(){return this.checkAndFreeze(this._keys)},enumerable:!0,configurable:!0}),e.prototype.isEmpty=function(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length},e.prototype.getValue=function(e){return e?u.getConfigurationValue(this.contents,e):this.contents},e.prototype.getOverrideValue=function(e,t){var n=this.getContentsForOverrideIdentifer(t);return n?e?u.getConfigurationValue(n,e):n:void 0},e.prototype.override=function(t){var n=this.getContentsForOverrideIdentifer(t);if(!n||\"object\"!=typeof n||!Object.keys(n).length)return this;for(var o={},r=0,l=i.distinct(a(Object.keys(this.contents),Object.keys(n)));r<l.length;r++){var u=l[r],d=this.contents[u],c=n[u];c&&(\"object\"==typeof d&&\"object\"==typeof c?(d=s.deepClone(d),this.mergeContents(d,c)):d=c),o[u]=d}return new e(o,this.keys,this.overrides)},e.prototype.merge=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n]\n;for(var o=s.deepClone(this.contents),r=s.deepClone(this.overrides),l=a(this.keys),u=0,d=t;u<d.length;u++){var c=d[u];this.mergeContents(o,c.contents);for(var h=function(e){var t=r.filter((function(t){return i.equals(t.identifiers,e.identifiers)}))[0];t?p.mergeContents(t.contents,e.contents):r.push(s.deepClone(e))},p=this,g=0,f=c.overrides;g<f.length;g++){var m=f[g];h(m)}for(var v=0,_=c.keys;v<_.length;v++){var y=_[v];-1===l.indexOf(y)&&l.push(y)}}return new e(o,l,r)},e.prototype.freeze=function(){return this.isFrozen=!0,this},e.prototype.mergeContents=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];r in e&&o.isObject(e[r])&&o.isObject(t[r])?this.mergeContents(e[r],t[r]):e[r]=s.deepClone(t[r])}},e.prototype.checkAndFreeze=function(e){return this.isFrozen&&!Object.isFrozen(e)?s.deepFreeze(e):e},e.prototype.getContentsForOverrideIdentifer=function(e){for(var t=0,n=this.overrides;t<n.length;t++){var i=n[t];if(-1!==i.identifiers.indexOf(e))return i.contents}return null},\ne.prototype.toJSON=function(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}},e.prototype.setValue=function(e,t){this.addKey(e),u.addToValueTree(this.contents,e,t,(function(e){throw new Error(e)}))},e.prototype.removeValue=function(e){this.removeKey(e)&&u.removeFromValueTree(this.contents,e)},e.prototype.addKey=function(e){for(var t=this.keys.length,n=0;n<t;n++)0===e.indexOf(this.keys[n])&&(t=n);this.keys.splice(t,1,e)},e.prototype.removeKey=function(e){var t=this.keys.indexOf(e);return-1!==t&&(this.keys.splice(t,1),!0)},e}();t.ConfigurationModel=d;var c=function(e){function t(){for(var t=u.getDefaultValues(),n=u.getConfigurationKeys(),i=[],o=0,r=Object.keys(t);o<r.length;o++){var s=r[o];l.OVERRIDE_PROPERTY_PATTERN.test(s)&&i.push({identifiers:[u.overrideIdentifierFromKey(s).trim()],keys:Object.keys(t[s]),contents:u.toValuesTree(t[s],(function(e){return console.error(\"Conflict in default settings file: \"+e)}))})}return e.call(this,t,n,i)||this}return r(t,e),t}(d)\n;t.DefaultConfigurationModel=c;var h=function(){function e(e,t,i,o,r,s,a,l){void 0===i&&(i=new d),void 0===o&&(o=new d),void 0===r&&(r=new n.ResourceMap),void 0===s&&(s=new d),void 0===a&&(a=new n.ResourceMap),void 0===l&&(l=!0),this._defaultConfiguration=e,this._localUserConfiguration=t,this._remoteUserConfiguration=i,this._workspaceConfiguration=o,this._folderConfigurations=r,this._memoryConfiguration=s,this._memoryConfigurationByResource=a,this._freeze=l,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new n.ResourceMap,this._userConfiguration=null}return e.prototype.getValue=function(e,t,n){return this.getConsolidateConfigurationModel(t,n).getValue(e)},e.prototype.updateValue=function(e,t,n){var i;void 0===n&&(n={}),n.resource?(i=this._memoryConfigurationByResource.get(n.resource))||(i=new d,this._memoryConfigurationByResource.set(n.resource,i)):i=this._memoryConfiguration,void 0===t?i.removeValue(e):i.setValue(e,t),\nn.resource||(this._workspaceConsolidatedConfiguration=null)},e.prototype.inspect=function(e,t,n){\nvar o=this.getConsolidateConfigurationModel(t,n),r=this.getFolderConfigurationModelForResource(t.resource,n),s=t.resource&&this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration,a=t.overrideIdentifier?this._defaultConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._defaultConfiguration.freeze().getValue(e),l=t.overrideIdentifier?this.userConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.userConfiguration.freeze().getValue(e),u=t.overrideIdentifier?this.localUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.localUserConfiguration.freeze().getValue(e),d=t.overrideIdentifier?this.remoteUserConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this.remoteUserConfiguration.freeze().getValue(e),c=n?t.overrideIdentifier?this._workspaceConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._workspaceConfiguration.freeze().getValue(e):void 0,h=r?t.overrideIdentifier?r.freeze().override(t.overrideIdentifier).getValue(e):r.freeze().getValue(e):void 0,p=t.overrideIdentifier?s.override(t.overrideIdentifier).getValue(e):s.getValue(e),g=o.getValue(e),f=i.distinct(i.flatten(o.overrides.map((function(e){\nreturn e.identifiers})))).filter((function(t){return void 0!==o.getOverrideValue(e,t)}));return{defaultValue:a,userValue:l,userLocalValue:u,userRemoteValue:d,workspaceValue:c,workspaceFolderValue:h,memoryValue:p,value:g,default:void 0!==a?{value:this._defaultConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._defaultConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,user:void 0!==l?{value:this.userConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.userConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userLocal:void 0!==u?{value:this.localUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.localUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,userRemote:void 0!==d?{value:this.remoteUserConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this.remoteUserConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,\nworkspace:void 0!==c?{value:this._workspaceConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._workspaceConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspaceFolder:void 0!==h?{value:null==r?void 0:r.freeze().getValue(e),override:t.overrideIdentifier?null==r?void 0:r.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,memory:void 0!==p?{value:s.getValue(e),override:t.overrideIdentifier?s.getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,overrideIdentifiers:f.length?f:void 0}},Object.defineProperty(e.prototype,\"userConfiguration\",{get:function(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration),this._freeze&&this._userConfiguration.freeze()),this._userConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"localUserConfiguration\",{get:function(){\nreturn this._localUserConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"remoteUserConfiguration\",{get:function(){return this._remoteUserConfiguration},enumerable:!0,configurable:!0}),e.prototype.getConsolidateConfigurationModel=function(e,t){var n=this.getConsolidatedConfigurationModelForResource(e,t);return e.overrideIdentifier?n.override(e.overrideIdentifier):n},e.prototype.getConsolidatedConfigurationModelForResource=function(e,t){var n=e.resource,i=this.getWorkspaceConsolidatedConfiguration();if(t&&n){var o=t.getFolder(n);o&&(i=this.getFolderConsolidatedConfiguration(o.uri)||i);var r=this._memoryConfigurationByResource.get(n);r&&(i=i.merge(r))}return i},e.prototype.getWorkspaceConsolidatedConfiguration=function(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),\nthis._freeze&&(this._workspaceConfiguration=this._workspaceConfiguration.freeze())),this._workspaceConsolidatedConfiguration},e.prototype.getFolderConsolidatedConfiguration=function(e){var t=this._foldersConsolidatedConfigurations.get(e);if(!t){var n=this.getWorkspaceConsolidatedConfiguration(),i=this._folderConfigurations.get(e);i?(t=n.merge(i),this._freeze&&(t=t.freeze()),this._foldersConsolidatedConfigurations.set(e,t)):t=n}return t},e.prototype.getFolderConfigurationModelForResource=function(e,t){if(t&&e){var n=t.getFolder(e);if(n)return this._folderConfigurations.get(n.uri)}},e}();t.Configuration=h})),define(n[519],i([0,1,4,2,38,29,43,18,217]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"data-keybinding-context\",c=function(){function e(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}return e.prototype.setValue=function(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)},e.prototype.removeValue=function(e){\nreturn e in this._value&&(delete this._value[e],!0)},e.prototype.getValue=function(e){var t=this._value[e];return void 0===t&&this._parent?this._parent.getValue(e):t},e}();t.Context=c;var p=function(e){function t(){return e.call(this,-1,null)||this}return r(t,e),t.prototype.setValue=function(e,t){return!1},t.prototype.removeValue=function(e){return!1},t.prototype.getValue=function(e){},t.INSTANCE=new t,t}(c),f=function(e){function t(t,n,i){var r=e.call(this,t,null)||this;return r._configurationService=n,r._values=new Map,r._listener=r._configurationService.onDidChangeConfiguration((function(e){if(6===e.source){var t=o.keys(r._values);r._values.clear(),i.fire(new _(t))}else{for(var n=[],s=0,a=e.affectedKeys;s<a.length;s++){var l=\"config.\"+a[s];r._values.has(l)&&(r._values.delete(l),n.push(l))}i.fire(new _(n))}})),r}return r(t,e),t.prototype.dispose=function(){this._listener.dispose()},t.prototype.getValue=function(n){if(0!==n.indexOf(t._keyPrefix))return e.prototype.getValue.call(this,n)\n;if(this._values.has(n))return this._values.get(n);var i=n.substr(t._keyPrefix.length),o=this._configurationService.getValue(i),r=void 0;switch(typeof o){case\"number\":case\"boolean\":case\"string\":r=o}return this._values.set(n,r),r},t.prototype.setValue=function(t,n){return e.prototype.setValue.call(this,t,n)},t.prototype.removeValue=function(t){return e.prototype.removeValue.call(this,t)},t._keyPrefix=\"config.\",t}(c),m=function(){function e(e,t,n){this._service=e,this._key=t,this._defaultValue=n,this.reset()}return e.prototype.set=function(e){this._service.setContext(this._key,e)},e.prototype.reset=function(){void 0===this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)},e.prototype.get=function(){return this._service.getContextKeyValue(this._key)},e}(),v=function(){function e(e){this.key=e}return e.prototype.affectsSome=function(e){return e.has(this.key)},e}(),_=function(){function e(e){this.keys=e}return e.prototype.affectsSome=function(e){\nfor(var t=0,n=this.keys;t<n.length;t++){var i=n[t];if(e.has(i))return!0}return!1},e}(),y=function(){function e(e){this.events=e}return e.prototype.affectsSome=function(e){for(var t=0,n=this.events;t<n.length;t++){if(n[t].affectsSome(e))return!0}return!1},e}(),C=function(){function e(e){this._onDidChangeContext=new n.PauseableEmitter({merge:function(e){return new y(e)}}),this._isDisposed=!1,this._myContextId=e}return e.prototype.createKey=function(e,t){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new m(this,e,t)},Object.defineProperty(e.prototype,\"onDidChangeContext\",{get:function(){return this._onDidChangeContext.event},enumerable:!0,configurable:!0}),e.prototype.bufferChangeEvents=function(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}},e.prototype.createScoped=function(e){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new S(this,e)},e.prototype.contextMatchesRules=function(e){\nif(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");var t=this.getContextValuesContainer(this._myContextId);return u.KeybindingResolver.contextMatchesRules(t,e)},e.prototype.getContextKeyValue=function(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)},e.prototype.setContext=function(e,t){if(!this._isDisposed){var n=this.getContextValuesContainer(this._myContextId);n&&n.setValue(e,t)&&this._onDidChangeContext.fire(new v(e))}},e.prototype.removeContext=function(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new v(e))},e.prototype.getContext=function(e){return this._isDisposed?p.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(d)){var t=e.getAttribute(d);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))},e}();t.AbstractContextKeyService=C;var b=function(e){function t(t){var n=e.call(this,0)||this;n._contexts=new Map,\nn._toDispose=new i.DisposableStore,n._lastContextId=0;var o=new f(n._myContextId,t,n._onDidChangeContext);return n._contexts.set(n._myContextId,o),n._toDispose.add(o),n}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,this._toDispose.dispose()},t.prototype.getContextValuesContainer=function(e){return this._isDisposed?p.INSTANCE:this._contexts.get(e)||p.INSTANCE},t.prototype.createChildContext=function(e){if(void 0===e&&(e=this._myContextId),this._isDisposed)throw new Error(\"ContextKeyService has been disposed\");var t=++this._lastContextId;return this._contexts.set(t,new c(t,this.getContextValuesContainer(e))),t},t.prototype.disposeContext=function(e){this._isDisposed||this._contexts.delete(e)},t=h([g(0,a.IConfigurationService)],t)}(C);t.ContextKeyService=b;var S=function(e){function t(t,n){var i=e.call(this,t.createChildContext())||this;return i._parent=t,n&&(i._domNode=n,i._domNode.setAttribute(d,String(i._myContextId))),i}return r(t,e),t.prototype.dispose=function(){this._isDisposed=!0,\nthis._parent.disposeContext(this._myContextId),this._domNode&&(this._domNode.removeAttribute(d),this._domNode=void 0)},Object.defineProperty(t.prototype,\"onDidChangeContext\",{get:function(){return n.Event.any(this._parent.onDidChangeContext,this._onDidChangeContext.event)},enumerable:!0,configurable:!0}),t.prototype.getContextValuesContainer=function(e){return this._isDisposed?p.INSTANCE:this._parent.getContextValuesContainer(e)},t.prototype.createChildContext=function(e){if(void 0===e&&(e=this._myContextId),this._isDisposed)throw new Error(\"ScopedContextKeyService has been disposed\");return this._parent.createChildContext(e)},t.prototype.disposeContext=function(e){this._isDisposed||this._parent.disposeContext(e)},t}(C);s.CommandsRegistry.registerCommand(l.SET_CONTEXT_COMMAND_ID,(function(e,t,n){e.get(l.IContextKeyService).createKey(String(t),n)}))})),define(n[86],i([0,1,36,16,29,42]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(){\nthis._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}return e.bindToCurrentPlatform=function(e){if(1===i.OS){if(e&&e.win)return e.win}else if(2===i.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e},e.prototype.registerKeybindingRule=function(t){var o=e.bindToCurrentPlatform(t);o&&o.primary&&((a=n.createKeybinding(o.primary,i.OS))&&this._registerDefaultKeybinding(a,t.id,t.args,t.weight,0,t.when));if(o&&Array.isArray(o.secondary))for(var r=0,s=o.secondary.length;r<s;r++){var a,l=o.secondary[r];(a=n.createKeybinding(l,i.OS))&&this._registerDefaultKeybinding(a,t.id,t.args,t.weight,-r-1,t.when)}},e.prototype.registerCommandAndKeybindingRule=function(e){this.registerKeybindingRule(e),o.CommandsRegistry.registerCommand(e)},e._mightProduceChar=function(e){return e>=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))},e.prototype._assertNoCtrlAlt=function(t,n){\nt.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn(\"Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: \",t,\" for \",n)},e.prototype._registerDefaultKeybinding=function(e,t,n,o,r,s){1===i.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e,command:t,commandArgs:n,when:s,weight1:o,weight2:r}),this._cachedMergedKeybindings=null},e.prototype.getDefaultKeybindings=function(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(a)),this._cachedMergedKeybindings.slice(0)},e}();function a(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.command<t.command?-1:e.command>t.command?1:e.weight2-t.weight2}t.KeybindingsRegistry=new s,t.Extensions={EditorModes:\"platform.keybindingsRegistry\"},r.Registry.add(t.Extensions.EditorModes,t.KeybindingsRegistry)})),define(n[520],i([0,1,18,400,86,401]),(function(e,t,n,i,o,s){\n\"use strict\";function a(e,t){return e.getContext(document.activeElement).getValue(t)}function l(e,i){var o=function(e,t){return e.createScoped(t.target)}(e,i);return function(e,t,i){new n.RawContextKey(i,t).bindTo(e)}(o,i,t.HistoryNavigationWidgetContext),{scopedContextKeyService:o,historyNavigationEnablement:new n.RawContextKey(t.HistoryNavigationEnablementContext,!0).bindTo(o)}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.HistoryNavigationWidgetContext=\"historyNavigationWidget\",t.HistoryNavigationEnablementContext=\"historyNavigationEnabled\",t.createAndBindHistoryNavigationWidgetScopedContextKeyService=l;var u=function(e){function t(t,n,i,o,r){void 0===r&&(r=!1);var s=e.call(this,t,n,r,i)||this;return s._register(l(o,{target:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return r(t,e),t=h([g(3,n.IContextKeyService)],t)}(i.FindInput);t.ContextScopedFindInput=u;var d=function(e){function t(t,n,i,o,r){void 0===r&&(r=!1);var s=e.call(this,t,n,r,i)||this;return s._register(l(o,{\ntarget:s.inputBox.element,historyNavigator:s.inputBox}).scopedContextKeyService),s}return r(t,e),t=h([g(3,n.IContextKeyService)],t)}(s.ReplaceInput);t.ContextScopedReplaceInput=d,o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"history.showPrevious\",weight:200,when:n.ContextKeyExpr.and(n.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),n.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:16,secondary:[528],handler:function(e,i){var o=a(e.get(n.IContextKeyService),t.HistoryNavigationWidgetContext);o&&o.historyNavigator.showPreviousValue()}}),o.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"history.showNext\",weight:200,when:n.ContextKeyExpr.and(n.ContextKeyExpr.has(t.HistoryNavigationWidgetContext),n.ContextKeyExpr.equals(t.HistoryNavigationEnablementContext,!0)),primary:18,secondary:[530],handler:function(e,i){var o=a(e.get(n.IContextKeyService),t.HistoryNavigationWidgetContext);o&&o.historyNavigator.showNextValue()}})})),\ndefine(n[74],i([0,1,11,4,2,21]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IStorageService=n.createDecorator(\"storageService\"),function(e){e[e.NONE=0]=\"NONE\",e[e.SHUTDOWN=1]=\"SHUTDOWN\"}(t.WillSaveStateReason||(t.WillSaveStateReason={}));var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._onDidChangeStorage=t._register(new i.Emitter),t.onDidChangeStorage=t._onDidChangeStorage.event,t._onWillSaveState=t._register(new i.Emitter),t.onWillSaveState=t._onWillSaveState.event,t.globalCache=new Map,t.workspaceCache=new Map,t}return r(t,e),t.prototype.getCache=function(e){return 0===e?this.globalCache:this.workspaceCache},t.prototype.get=function(e,t,n){var i=this.getCache(t).get(e);return s.isUndefinedOrNull(i)?n:i},t.prototype.getBoolean=function(e,t,n){var i=this.getCache(t).get(e);return s.isUndefinedOrNull(i)?n:\"true\"===i},t.prototype.store=function(e,t,n){if(s.isUndefinedOrNull(t))return this.remove(e,n);var i=String(t)\n;return this.getCache(n).get(e)===i?Promise.resolve():(this.getCache(n).set(e,i),this._onDidChangeStorage.fire({scope:n,key:e}),Promise.resolve())},t.prototype.remove=function(e,t){return this.getCache(t).delete(e)?(this._onDidChangeStorage.fire({scope:t,key:e}),Promise.resolve()):Promise.resolve()},t}(o.Disposable);t.InMemoryStorageService=a})),define(n[521],i([0,1,38,74,17,2,15,11,43,83]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){}return e.prototype.select=function(e,t,n){if(0===n.length)return 0;for(var i=n[0].score[0],o=1;o<n.length;o++){var r=n[o],s=r.score,a=r.completion;if(s[0]!==i)break;if(a.preselect)return o}return 0},e}();t.Memory=c;var p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.memorize=function(e,t,n){},t.prototype.toJSON=function(){},t.prototype.fromJSON=function(){},t}(c);t.NoMemory=p;var f=function(e){function t(){\nvar t=null!==e&&e.apply(this,arguments)||this;return t._cache=new n.LRUCache(300,.66),t._seq=0,t}return r(t,e),t.prototype.memorize=function(e,t,n){var i=n.completion.label,o=e.getLanguageIdentifier().language+\"/\"+i;this._cache.set(o,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})},t.prototype.select=function(t,n,i){if(0===i.length)return 0;var o=t.getLineContent(n.lineNumber).substr(n.column-10,n.column-1);if(/\\s$/.test(o))return e.prototype.select.call(this,t,n,i);for(var r=i[0].score[0],s=-1,a=-1,l=-1,u=0;u<i.length&&i[u].score[0]===r;u++){var d=t.getLanguageIdentifier().language+\"/\"+i[u].completion.label,c=this._cache.peek(d);if(c&&c.touch>l&&c.type===i[u].completion.kind&&c.insertText===i[u].completion.insertText&&(l=c.touch,a=u),i[u].completion.preselect&&-1===s)return u}return-1!==a?a:-1!==s?s:0},t.prototype.toJSON=function(){var e=[];return this._cache.forEach((function(t,n){e.push([n,t])})),e},t.prototype.fromJSON=function(e){this._cache.clear()\n;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=i[0],s=i[1];s.touch=0,s.type=\"number\"==typeof s.type?s.type:o.completionKindFromString(s.type),this._cache.set(r,s)}this._seq=this._cache.size},t}(c);t.LRUMemory=f;var m=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._trie=n.TernarySearchTree.forStrings(),t._seq=0,t}return r(t,e),t.prototype.memorize=function(e,t,n){var i=e.getWordUntilPosition(t).word,o=e.getLanguageIdentifier().language+\"/\"+i;this._trie.set(o,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})},t.prototype.select=function(t,n,i){var o=t.getWordUntilPosition(n).word;if(!o)return e.prototype.select.call(this,t,n,i);var r=t.getLanguageIdentifier().language+\"/\"+o,s=this._trie.get(r);if(s||(s=this._trie.findSubstr(r)),s)for(var a=0;a<i.length;a++){var l=i[a].completion,u=l.kind,d=l.insertText;if(u===s.type&&d===s.insertText)return a}return e.prototype.select.call(this,t,n,i)},t.prototype.toJSON=function(){var e=[]\n;return this._trie.forEach((function(t,n){return e.push([n,t])})),e.sort((function(e,t){return-(e[1].touch-t[1].touch)})).forEach((function(e,t){return e[1].touch=t})),e.slice(0,200)},t.prototype.fromJSON=function(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=i[0],s=i[1];s.type=\"number\"==typeof s.type?s.type:o.completionKindFromString(s.type),this._trie.set(r,s)}}},t}(c);t.PrefixMemory=m;var v=function(e){function t(t,n){var o=e.call(this)||this;o._storageService=t,o._configService=n,o._storagePrefix=\"suggest/memories\";var r=function(){var e=o._configService.getValue(\"editor.suggestSelection\"),t=o._configService.getValue(\"editor.suggest.shareSuggestSelections\");o._update(e,t,!1)};return o._persistSoon=o._register(new a.RunOnceScheduler((function(){return o._saveState()}),500)),o._register(t.onWillSaveState((function(e){e.reason===i.WillSaveStateReason.SHUTDOWN&&o._saveState()}))),o._register(o._configService.onDidChangeConfiguration((function(e){\n(e.affectsConfiguration(\"editor.suggestSelection\")||e.affectsConfiguration(\"editor.suggest.shareSuggestSelections\"))&&r()}))),o._register(o._storageService.onDidChangeStorage((function(e){0===e.scope&&0===e.key.indexOf(o._storagePrefix)&&(document.hasFocus()||o._update(o._mode,o._shareMem,!0))}))),r(),o}return r(t,e),t.prototype._update=function(e,t,n){if(n||this._mode!==e||this._shareMem!==t){this._shareMem=t,this._mode=e,this._strategy=\"recentlyUsedByPrefix\"===e?new m:\"recentlyUsed\"===e?new f:new p;try{var i=t?0:1,o=this._storageService.get(this._storagePrefix+\"/\"+this._mode,i);o&&this._strategy.fromJSON(JSON.parse(o))}catch(e){}}},t.prototype.memorize=function(e,t,n){this._strategy.memorize(e,t,n),this._persistSoon.schedule()},t.prototype.select=function(e,t,n){return this._strategy.select(e,t,n)},t.prototype._saveState=function(){var e=JSON.stringify(this._strategy),t=this._shareMem?0:1;this._storageService.store(this._storagePrefix+\"/\"+this._mode,e,t)},\nt=h([g(0,i.IStorageService),g(1,u.IConfigurationService)],t)}(s.Disposable);t.SuggestMemoryService=v,t.ISuggestMemoryService=l.createDecorator(\"ISuggestMemories\"),d.registerSingleton(t.ISuggestMemoryService,v,!0)})),define(n[96],i([0,1,11]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ITelemetryService=n.createDecorator(\"telemetryService\")})),define(n[12],i([0,1,10,25,32,13,49,84,65,29,18,86,42,96,21]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(){function e(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this._description=e.description}return e.prototype.register=function(){var e=this;if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){var t=this._kbOpts.kbExpr;this.precondition&&(t=t?c.ContextKeyExpr.and(t,this.precondition):this.precondition),\nh.KeybindingsRegistry.registerCommandAndKeybindingRule({id:this.id,handler:function(t,n){return e.runCommand(t,n)},weight:this._kbOpts.weight,when:t,primary:this._kbOpts.primary,secondary:this._kbOpts.secondary,win:this._kbOpts.win,linux:this._kbOpts.linux,mac:this._kbOpts.mac,description:this._description})}else d.CommandsRegistry.registerCommand({id:this.id,handler:function(t,n){return e.runCommand(t,n)},description:this._description})},e.prototype._registerMenuItem=function(e){u.MenuRegistry.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title},when:e.when,order:e.order})},e}();t.Command=m;var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.bindToContribution=function(e){return function(t){function n(e){var n=t.call(this,e)||this;return n._callback=e.handler,n}return r(n,t),n.prototype.runEditorCommand=function(t,n,i){e(n)&&this._callback(e(n),i)},n}(t)},t.prototype.runCommand=function(e,t){\nvar n=this,i=e.get(o.ICodeEditorService),r=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(r)return r.invokeWithinContext((function(e){if(e.get(c.IContextKeyService).contextMatchesRules(f.withNullAsUndefined(n.precondition)))return n.runEditorCommand(e,r,t)}))},t}(m);t.EditorCommand=v;var _=function(e){function t(n){var i=e.call(this,t.convertOptions(n))||this;return i.label=n.label,i.alias=n.alias,i}return r(t,e),t.convertOptions=function(e){var t;function n(t){return t.menuId||(t.menuId=7),t.title||(t.title=e.label),t.when=c.ContextKeyExpr.and(e.precondition,t.when),t}return t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts)?t.push.apply(t,e.contextMenuOpts.map(n)):e.contextMenuOpts&&t.push(n(e.contextMenuOpts)),e.menuOpts=t,e},t.prototype.runEditorCommand=function(e,t,n){return this.reportTelemetry(e,t),this.run(e,t,n||{})},t.prototype.reportTelemetry=function(e,t){e.get(g.ITelemetryService).publicLog2(\"editorActionInvoked\",{name:this.label,id:this.id})\n},t}(v);function y(e,t){d.CommandsRegistry.registerCommand(e,(function(e,n){return t(e,n||{})}))}t.EditorAction=_,t.registerLanguageCommand=y,t.registerDefaultLanguageCommand=function(e,t){y(e,(function(e,o){var r=o.resource,u=o.position;if(!(r instanceof i.URI))throw n.illegalArgument(\"resource\");if(!s.Position.isIPosition(u))throw n.illegalArgument(\"position\");var d=e.get(a.IModelService).getModel(r);if(d){var c=s.Position.lift(u);return t(d,c,o)}return e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(n,i){try{n(t(e.object.textEditorModel,s.Position.lift(u),o))}catch(e){i(e)}})).finally((function(){e.dispose()}))}))}))},t.registerModelAndPositionCommand=function(e,t){d.CommandsRegistry.registerCommand(e,(function(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];var r=n[0],u=n[1];f.assertType(i.URI.isUri(r)),f.assertType(s.Position.isIPosition(u));var d=e.get(a.IModelService).getModel(r);if(d){var c=s.Position.lift(u);return t(d,c,n.slice(2))}\nreturn e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(i,o){try{i(t(e.object.textEditorModel,s.Position.lift(u),n.slice(2)))}catch(e){o(e)}})).finally((function(){e.dispose()}))}))}))},t.registerModelCommand=function(e,t){d.CommandsRegistry.registerCommand(e,(function(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];var r=n[0];f.assertType(i.URI.isUri(r));var s=e.get(a.IModelService).getModel(r);return s?t(s,n.slice(1)):e.get(l.ITextModelService).createModelReference(r).then((function(e){return new Promise((function(i,o){try{i(t(e.object.textEditorModel,n.slice(1)))}catch(e){o(e)}})).finally((function(){e.dispose()}))}))}))},t.registerEditorCommand=function(e){return C.INSTANCE.registerEditorCommand(e),e},t.registerEditorAction=function(e){C.INSTANCE.registerEditorAction(new e)},t.registerInstantiatedEditorAction=function(e){C.INSTANCE.registerEditorAction(e)},t.registerEditorContribution=function(e,t){C.INSTANCE.registerEditorContribution(e,t)},\nfunction(e){e.getEditorCommand=function(e){return C.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return C.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return C.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return C.INSTANCE.getEditorContributions().filter((function(t){return e.indexOf(t.id)>=0}))},e.getDiffEditorContributions=function(){return C.INSTANCE.getDiffEditorContributions()}}(t.EditorExtensionsRegistry||(t.EditorExtensionsRegistry={}));var C=function(){function e(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}return e.prototype.registerEditorContribution=function(e,t){this.editorContributions.push({id:e,ctor:t})},e.prototype.getEditorContributions=function(){return this.editorContributions.slice(0)},e.prototype.getDiffEditorContributions=function(){return this.diffEditorContributions.slice(0)},e.prototype.registerEditorAction=function(e){e.register(),\nthis.editorActions.push(e)},e.prototype.getEditorActions=function(){return this.editorActions.slice(0)},e.prototype.registerEditorCommand=function(e){e.register(),this.editorCommands[e.id]=e},e.prototype.getEditorCommand=function(e){return this.editorCommands[e]||null},e.INSTANCE=new e,e}();p.Registry.add(\"editor.contributions\",C.INSTANCE)})),define(n[164],i([0,1,415,21,12,32,483,40,212,213,159,13,3,68,23,18]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v,_,y,C=0,b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors();i&&this.runCoreEditorCommand(i,n||{})},t}(o.EditorCommand);function S(e){e.register()}t.CoreEditorCommand=b,function(e){e.description={description:\"Scroll editor in the given direction\",args:[{name:\"Editor scroll argument object\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory direction value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'up', 'down'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'page', 'halfPage'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\\n\\t\\t\\t\\t\",constraint:function(e){if(!i.isObject(e))return!1;var t=e;return!!i.isString(t.to)&&(!(!i.isUndefined(t.by)&&!i.isString(t.by))&&(!(!i.isUndefined(t.value)&&!i.isNumber(t.value))&&!(!i.isUndefined(t.revealCursor)&&!i.isBoolean(t.revealCursor))))},schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"up\",\"down\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"page\",\"halfPage\"]},value:{type:\"number\",default:1},revealCursor:{type:\"boolean\"}}}}]},e.RawDirection={Up:\"up\",Down:\"down\"},e.RawUnit={\nLine:\"line\",WrappedLine:\"wrappedLine\",Page:\"page\",HalfPage:\"halfPage\"},e.parse=function(t){var n,i;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(v=t.EditorScroll_||(t.EditorScroll_={})),function(e){e.description={description:\"Reveal the given line at the given logical position\",args:[{name:\"Reveal line argument object\",description:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'lineNumber': A mandatory line number value.\\n\\t\\t\\t\\t\\t* 'at': Logical position at which line has to be revealed .\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'top', 'center', 'bottom'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\",constraint:function(e){if(!i.isObject(e))return!1;var t=e\n;return!!i.isNumber(t.lineNumber)&&!(!i.isUndefined(t.at)&&!i.isString(t.at))},schema:{type:\"object\",required:[\"lineNumber\"],properties:{lineNumber:{type:\"number\"},at:{type:\"string\",enum:[\"top\",\"center\",\"bottom\"]}}}}]},e.RawAtArgument={Top:\"top\",Center:\"center\",Bottom:\"bottom\"}}(_=t.RevealLine_||(t.RevealLine_={})),function(e){var t=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.moveTo(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(t.source,!0,0,0)},t}(b);e.MoveTo=o.registerEditorCommand(new t({id:\"_moveTo\",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=o.registerEditorCommand(new t({id:\"_moveToSelect\",inSelectionMode:!0,precondition:void 0}));var n=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),\nt.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement();var n=this._getColumnSelectResult(e.context,e.getPrimaryCursor(),e.getColumnSelectData(),t);e.setStates(t.source,3,n.viewStates.map((function(e){return l.CursorState.fromViewState(e)}))),e.setColumnSelectData({isReal:!0,fromViewLineNumber:n.fromLineNumber,fromViewVisualColumn:n.fromVisualColumn,toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),e.reveal(t.source,!0,n.reversed?1:2,0)},t}(b);e.ColumnSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"columnSelect\",precondition:void 0})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){var o=e.model.validatePosition(i.position),r=e.validateViewPosition(new h.Position(i.viewPosition.lineNumber,i.viewPosition.column),o),s=i.doColumnSelect?n.fromViewLineNumber:r.lineNumber,l=i.doColumnSelect?n.fromViewVisualColumn:i.mouseColumn-1\n;return a.ColumnSelection.columnSelect(e.config,e.viewModel,s,l,r.lineNumber,i.mouseColumn-1)},t}(n))),e.CursorColumnSelectLeft=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorColumnSelectLeft\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectLeft(e.config,e.viewModel,n)},t}(n))),e.CursorColumnSelectRight=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorColumnSelectRight\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})||this}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectRight(e.config,e.viewModel,n)},t}(n)));var i=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return r(t,e),\nt.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectUp(e.config,e.viewModel,n,this._isPaged)},t}(n);e.CursorColumnSelectUp=o.registerEditorCommand(new i({isPaged:!1,id:\"cursorColumnSelectUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=o.registerEditorCommand(new i({isPaged:!0,id:\"cursorColumnSelectPageUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));var s=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return r(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return a.ColumnSelection.columnSelectDown(e.config,e.viewModel,n,this._isPaged)},t}(n);e.CursorColumnSelectDown=o.registerEditorCommand(new s({isPaged:!1,id:\"cursorColumnSelectDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),\ne.CursorColumnSelectPageDown=o.registerEditorCommand(new s({isPaged:!0,id:\"cursorColumnSelectPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));var u=function(e){function t(){return e.call(this,{id:\"cursorMove\",precondition:void 0,description:d.CursorMove.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=d.CursorMove.parse(t);n&&this._runCursorMove(e,t.source,n)},t.prototype._runCursorMove=function(e,t,n){e.context.model.pushStackElement(),e.setStates(t,3,d.CursorMoveCommands.move(e.context,e.getAll(),n)),e.reveal(t,!0,0,0)},t}(b);e.CursorMoveImpl=u,e.CursorMove=o.registerEditorCommand(new u);var c=function(t){function n(e){var n=t.call(this,e)||this;return n._staticArgs=e.args,n}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){var i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,\nvalue:t.context.config.pageSize}),e.CursorMove._runCursorMove(t,n.source,i)},n}(b);e.CursorLeft=o.registerEditorCommand(new c({args:{direction:0,unit:0,select:!1,value:1},id:\"cursorLeft\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=o.registerEditorCommand(new c({args:{direction:0,unit:0,select:!0,value:1},id:\"cursorLeftSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1039}})),e.CursorRight=o.registerEditorCommand(new c({args:{direction:1,unit:0,select:!1,value:1},id:\"cursorRight\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=o.registerEditorCommand(new c({args:{direction:1,unit:0,select:!0,value:1},id:\"cursorRightSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1041}})),e.CursorUp=o.registerEditorCommand(new c({args:{\ndirection:2,unit:2,select:!1,value:1},id:\"cursorUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!0,value:1},id:\"cursorUpSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!1,value:-1},id:\"cursorPageUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:11}})),e.CursorPageUpSelect=o.registerEditorCommand(new c({args:{direction:2,unit:2,select:!0,value:-1},id:\"cursorPageUpSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1035}})),e.CursorDown=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!1,value:1},id:\"cursorDown\",precondition:void 0,kbOpts:{weight:C,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!0,value:1},id:\"cursorDownSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!1,value:-1},id:\"cursorPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:12}})),e.CursorPageDownSelect=o.registerEditorCommand(new c({args:{direction:3,unit:2,select:!0,value:-1},id:\"cursorPageDownSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1036}})),e.CreateCursor=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"createCursor\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n,i=e.context\n;n=t.wholeLine?d.CursorMoveCommands.line(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition):d.CursorMoveCommands.moveTo(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition);var o=e.getAll();if(o.length>1)for(var r=n.modelState?n.modelState.position:null,s=n.viewState?n.viewState.position:null,a=0,l=o.length;a<l;a++){var u=o[a];if((!r||u.modelState.selection.containsPosition(r))&&(!s||u.viewState.selection.containsPosition(s)))return o.splice(a,1),e.context.model.pushStackElement(),void e.setStates(t.source,3,o)}o.push(n),e.context.model.pushStackElement(),e.setStates(t.source,3,o)},t}(b))),e.LastCursorMoveToSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"_lastCursorMoveToSelect\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.context,i=e.getLastAddedCursorIndex(),o=e.getAll(),r=o.slice(0);r[i]=d.CursorMoveCommands.moveTo(n,o[i],!0,t.position,t.viewPosition),e.context.model.pushStackElement(),e.setStates(t.source,3,r)},t\n}(b)));var g=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToBeginningOfLine(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorHome=o.registerEditorCommand(new g({inSelectionMode:!1,id:\"cursorHome\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=o.registerEditorCommand(new g({inSelectionMode:!0,id:\"cursorHomeSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}})),e.CursorLineStart=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorLineStart\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:287}}})||this}return r(t,e),\nt.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,this._exec(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t.prototype._exec=function(e,t){for(var n=[],i=0,o=t.length;i<o;i++){var r=t[i],s=r.modelState.position.lineNumber;n[i]=l.CursorState.fromModelState(r.modelState.move(!1,s,1,0))}return n},t}(b)));var m=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToEndOfLine(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorEnd=o.registerEditorCommand(new m({inSelectionMode:!1,id:\"cursorEnd\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}}})),e.CursorEndSelect=o.registerEditorCommand(new m({inSelectionMode:!0,id:\"cursorEndSelect\",precondition:void 0,kbOpts:{\nweight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}}})),e.CursorLineEnd=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cursorLineEnd\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:291}}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,this._exec(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t.prototype._exec=function(e,t){for(var n=[],i=0,o=t.length;i<o;i++){var r=t[i],s=r.modelState.position.lineNumber,a=e.model.getLineMaxColumn(s);n[i]=l.CursorState.fromModelState(r.modelState.move(!1,s,a,0))}return n},t}(b)));var y=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),\ne.setStates(t.source,3,d.CursorMoveCommands.moveToBeginningOfBuffer(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorTop=o.registerEditorCommand(new y({inSelectionMode:!1,id:\"cursorTop\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=o.registerEditorCommand(new y({inSelectionMode:!0,id:\"cursorTopSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3086,mac:{primary:3088}}}));var S=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.moveToEndOfBuffer(e.context,e.getAll(),this._inSelectionMode)),e.reveal(t.source,!0,0,0)},t}(b);e.CursorBottom=o.registerEditorCommand(new S({inSelectionMode:!1,id:\"cursorBottom\",precondition:void 0,kbOpts:{weight:C,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=o.registerEditorCommand(new S({inSelectionMode:!0,id:\"cursorBottomSelect\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:3085,mac:{primary:3090}}}));var w=function(e){function t(){return e.call(this,{id:\"editorScroll\",precondition:void 0,description:v.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=v.parse(t);n&&this._runEditorScroll(e,t.source,n)},t.prototype._runEditorScroll=function(e,t,n){var i=this._computeDesiredScrollTop(e.context,n);if(n.revealCursor){var o=e.context.getCompletelyVisibleViewRangeAtScrollTop(i);e.setStates(t,3,[d.CursorMoveCommands.findPositionInViewportIfOutside(e.context,e.getPrimaryCursor(),o,n.select)])}e.scrollTo(i)},t.prototype._computeDesiredScrollTop=function(e,t){if(1===t.unit){var n=e.getCompletelyVisibleModelRange(),i=void 0\n;i=1===t.direction?Math.max(1,n.startLineNumber-t.value):Math.min(e.model.getLineCount(),n.startLineNumber+t.value);var o=e.convertModelPositionToViewPosition(new h.Position(i,1));return e.getVerticalOffsetForViewLine(o.lineNumber)}var r;r=3===t.unit?e.config.pageSize*t.value:4===t.unit?Math.round(e.config.pageSize/2)*t.value:t.value;var s=(1===t.direction?-1:1)*r;return e.getCurrentScrollTop()+s*e.config.lineHeight},t}(b);e.EditorScrollImpl=w,e.EditorScroll=o.registerEditorCommand(new w),e.ScrollLineUp=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollLineUp\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2064,mac:{primary:267}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:2,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollPageUp=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollPageUp\",precondition:void 0,kbOpts:{\nweight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:1,unit:3,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollLineDown=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollLineDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2066,mac:{primary:268}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){e.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:2,value:1,revealCursor:!1,select:!1})},n}(b))),e.ScrollPageDown=o.registerEditorCommand(new(function(t){function n(){return t.call(this,{id:\"scrollPageDown\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})||this}return r(n,t),n.prototype.runCoreEditorCommand=function(t,n){\ne.EditorScroll._runEditorScroll(t,n.source,{direction:2,unit:3,value:1,revealCursor:!1,select:!1})},n}(b)));var E=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.word(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position)]),e.reveal(t.source,!0,0,0)},t}(b);e.WordSelect=o.registerEditorCommand(new E({inSelectionMode:!1,id:\"_wordSelect\",precondition:void 0})),e.WordSelectDrag=o.registerEditorCommand(new E({inSelectionMode:!0,id:\"_wordSelectDrag\",precondition:void 0})),e.LastCursorWordSelect=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"lastCursorWordSelect\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.context,i=e.getLastAddedCursorIndex(),o=e.getAll(),r=o.slice(0),s=o[i]\n;r[i]=d.CursorMoveCommands.word(n,s,s.modelState.hasSelection(),t.position),n.model.pushStackElement(),e.setStates(t.source,3,r)},t}(b)));var L=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.line(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(t.source,!1,0,0)},t}(b);e.LineSelect=o.registerEditorCommand(new L({inSelectionMode:!1,id:\"_lineSelect\",precondition:void 0})),e.LineSelectDrag=o.registerEditorCommand(new L({inSelectionMode:!0,id:\"_lineSelectDrag\",precondition:void 0}));var D=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=e.getLastAddedCursorIndex(),i=e.getAll(),o=i.slice(0)\n;o[n]=d.CursorMoveCommands.line(e.context,i[n],this._inSelectionMode,t.position,t.viewPosition),e.context.model.pushStackElement(),e.setStates(t.source,3,o)},t}(b);e.LastCursorLineSelect=o.registerEditorCommand(new D({inSelectionMode:!1,id:\"lastCursorLineSelect\",precondition:void 0})),e.LastCursorLineSelectDrag=o.registerEditorCommand(new D({inSelectionMode:!0,id:\"lastCursorLineSelectDrag\",precondition:void 0})),e.ExpandLineSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"expandLineSelection\",precondition:void 0,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2090}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,d.CursorMoveCommands.expandLineSelection(e.context,e.getAll())),e.reveal(t.source,!0,0,0)},t}(b))),e.CancelSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"cancelSelection\",precondition:f.EditorContextKeys.hasNonEmptySelection,\nkbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.cancelSelection(e.context,e.getPrimaryCursor())]),e.reveal(t.source,!0,0,0)},t}(b))),e.RemoveSecondaryCursors=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"removeSecondaryCursors\",precondition:f.EditorContextKeys.hasMultipleSelections,kbOpts:{weight:C+1,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[e.getPrimaryCursor()]),e.reveal(t.source,!0,0,0)},t}(b))),e.RevealLine=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"revealLine\",precondition:void 0,description:_.description})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=t,i=(n.lineNumber||0)+1\n;i<1&&(i=1);var o=e.context.model.getLineCount();i>o&&(i=o);var r=new p.Range(i,1,i,e.context.model.getLineMaxColumn(i)),s=0;if(n.at)switch(n.at){case _.RawAtArgument.Top:s=3;break;case _.RawAtArgument.Center:s=1;break;case _.RawAtArgument.Bottom:s=4}var a=e.context.convertModelRangeToViewRange(r);e.revealRange(t.source,!1,a,s,0)},t}(b))),e.SelectAll=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"selectAll\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[d.CursorMoveCommands.selectAll(e.context,e.getPrimaryCursor())])},t}(b))),e.SetSelection=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"setSelection\",precondition:void 0})||this}return r(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,3,[l.CursorState.fromModelSelection(t.selection)])},t}(b)))\n}(y=t.CoreNavigationCommands||(t.CoreNavigationCommands={})),function(e){var t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors();i&&this.runCoreEditingCommand(t,i,n||{})},t}(o.EditorCommand);e.CoreEditingCommand=t,e.LineBreakInsert=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"lineBreakInsert\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.lineBreakInsert(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))))},t}(t))),e.Outdent=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"outdent\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,\nkbExpr:m.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.outdent(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection})))),e.pushUndoStop()},t}(t))),e.Tab=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"tab\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:m.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,c.TypeOperations.tab(t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection})))),e.pushUndoStop()},t}(t))),e.DeleteLeft=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"deleteLeft\",\nprecondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){var i=u.DeleteOperations.deleteLeft(t.getPrevEditOperationType(),t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))),o=i[0],r=i[1];o&&e.pushUndoStop(),e.executeCommands(this.id,r),t.setPrevEditOperationType(2)},t}(t))),e.DeleteRight=o.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"deleteRight\",precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})||this}return r(t,e),t.prototype.runCoreEditingCommand=function(e,t,n){var i=u.DeleteOperations.deleteRight(t.getPrevEditOperationType(),t.context.config,t.context.model,t.getAll().map((function(e){return e.modelState.selection}))),o=i[0],r=i[1]\n;o&&e.pushUndoStop(),e.executeCommands(this.id,r),t.setPrevEditOperationType(3)},t}(t)))}(t.CoreEditingCommands||(t.CoreEditingCommands={}));var w=function(e){function t(t){var n=e.call(this,t)||this;return n._editorHandler=t.editorHandler,n._inputHandler=t.inputHandler,n}return r(t,e),t.prototype.runCommand=function(e,t){var n=e.get(s.ICodeEditorService).getFocusedCodeEditor();if(n&&n.hasTextFocus())return this._runEditorHandler(e,n,t);var i=document.activeElement;if(!(i&&[\"input\",\"textarea\"].indexOf(i.tagName.toLowerCase())>=0)){var o=e.get(s.ICodeEditorService).getActiveCodeEditor();return o?(o.focus(),this._runEditorHandler(e,o,t)):void 0}document.execCommand(this._inputHandler)},t.prototype._runEditorHandler=function(e,t,n){var i=this._editorHandler;\"string\"==typeof i?t.trigger(\"keyboard\",i,n):((n=n||{}).source=\"keyboard\",i.runEditorCommand(e,t,n))},t}(o.Command),E=function(e){function t(t,n,i){var o=e.call(this,{id:t,precondition:void 0,description:i})||this;return o._handlerId=n,o}return r(t,e),\nt.prototype.runCommand=function(e,t){var n=e.get(s.ICodeEditorService).getFocusedCodeEditor();n&&n.trigger(\"keyboard\",this._handlerId,t)},t}(o.Command);function L(e,t){S(new E(\"default:\"+e,e)),S(new E(e,e,t))}S(new w({editorHandler:y.SelectAll,inputHandler:\"selectAll\",id:\"editor.action.selectAll\",precondition:f.EditorContextKeys.textInputFocus,kbOpts:{weight:C,kbExpr:null,primary:2079},menuOpts:{menuId:25,group:\"1_basic\",title:n.localize(0,null),order:1}})),S(new w({editorHandler:g.Handler.Undo,inputHandler:\"undo\",id:g.Handler.Undo,precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2104},menuOpts:{menuId:17,group:\"1_do\",title:n.localize(1,null),order:1}})),S(new E(\"default:\"+g.Handler.Undo,g.Handler.Undo)),S(new w({editorHandler:g.Handler.Redo,inputHandler:\"redo\",id:g.Handler.Redo,precondition:f.EditorContextKeys.writable,kbOpts:{weight:C,kbExpr:f.EditorContextKeys.textInputFocus,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:{menuId:17,\ngroup:\"1_do\",title:n.localize(2,null),order:2}})),S(new E(\"default:\"+g.Handler.Redo,g.Handler.Redo)),L(g.Handler.Type,{description:\"Type\",args:[{name:\"args\",schema:{type:\"object\",required:[\"text\"],properties:{text:{type:\"string\"}}}}]}),L(g.Handler.ReplacePreviousChar),L(g.Handler.CompositionStart),L(g.Handler.CompositionEnd),L(g.Handler.Paste),L(g.Handler.Cut)})),define(n[522],i([0,1,12,18,26,76,11,83]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=a.createDecorator(\"IEditorCancelService\"),d=new i.RawContextKey(\"cancellableOperation\",!1);l.registerSingleton(u,function(){function e(){this._tokens=new WeakMap}return e.prototype.add=function(e,t){var n,o=this._tokens.get(e);return o||(o=e.invokeWithinContext((function(e){return{key:d.bindTo(e.get(i.IContextKeyService)),tokens:new s.LinkedList}})),this._tokens.set(e,o)),o.key.set(!0),n=o.tokens.push(t),function(){n&&(n(),o.key.set(!o.tokens.isEmpty()),n=void 0)}},e.prototype.cancel=function(e){\nvar t=this._tokens.get(e);if(t){var n=t.tokens.pop();n&&(n.cancel(),t.key.set(!t.tokens.isEmpty()))}},e}(),!0);var c=function(e){function t(t,n){var i=e.call(this,n)||this;return i.editor=t,i._unregister=t.invokeWithinContext((function(e){return e.get(u).add(t,i)})),i}return r(t,e),t.prototype.dispose=function(){this._unregister(),e.prototype.dispose.call(this)},t}(o.CancellationTokenSource);t.EditorKeybindingCancellationTokenSource=c,n.registerEditorCommand(new(function(e){function t(){return e.call(this,{id:\"editor.cancelOperation\",kbOpts:{weight:100,primary:9},precondition:d})||this}return r(t,e),t.prototype.runEditorCommand=function(e,t){e.get(u).cancel(t)},t}(n.EditorCommand)))})),define(n[67],i([0,1,5,26,2,522]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){if(this.flags=t,0!=(1&this.flags)){var i=e.getModel();this.modelVersionId=i?n.format(\"{0}#{1}\",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null\n;0!=(4&this.flags)?this.position=e.getPosition():this.position=null,0!=(2&this.flags)?this.selection=e.getSelection():this.selection=null,0!=(8&this.flags)?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}return e.prototype._equals=function(t){if(!(t instanceof e))return!1;var n=t;return this.modelVersionId===n.modelVersionId&&(this.scrollLeft===n.scrollLeft&&this.scrollTop===n.scrollTop&&(!(!this.position&&n.position||this.position&&!n.position||this.position&&n.position&&!this.position.equals(n.position))&&!(!this.selection&&n.selection||this.selection&&!n.selection||this.selection&&n.selection&&!this.selection.equalsRange(n.selection))))},e.prototype.validate=function(t){return this._equals(new e(t,this.flags))},e}();t.EditorState=a;var l=function(e){function t(t,n,i){var r=e.call(this,t,i)||this;return r.editor=t,r._listener=new o.DisposableStore,4&n&&r._listener.add(t.onDidChangeCursorPosition((function(e){return r.cancel()}))),\n2&n&&r._listener.add(t.onDidChangeCursorSelection((function(e){return r.cancel()}))),8&n&&r._listener.add(t.onDidScrollChange((function(e){return r.cancel()}))),1&n&&(r._listener.add(t.onDidChangeModel((function(e){return r.cancel()}))),r._listener.add(t.onDidChangeModelContent((function(e){return r.cancel()})))),r}return r(t,e),t.prototype.dispose=function(){this._listener.dispose(),e.prototype.dispose.call(this)},t}(s.EditorKeybindingCancellationTokenSource);t.EditorStateCancellationTokenSource=l;var u=function(e){function t(t,n){var i=e.call(this,n)||this;return i._listener=t.onDidChangeContent((function(){return i.cancel()})),i}return r(t,e),t.prototype.dispose=function(){this._listener.dispose(),e.prototype.dispose.call(this)},t}(i.CancellationTokenSource);t.TextModelCancellationTokenSource=u;var d=function(){function e(e,t){this._visiblePosition=e,this._visiblePositionScrollDelta=t}return e.capture=function(t){var n=null,i=0;if(0!==t.getScrollTop()){var o=t.getVisibleRanges();if(o.length>0){\nn=o[0].getStartPosition();var r=t.getTopForPosition(n.lineNumber,n.column);i=t.getScrollTop()-r}}return new e(n,i)},e.prototype.restore=function(e){if(this._visiblePosition){var t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}},e}();t.StableEditorScrollState=d})),define(n[523],i([0,1,164,13,16]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t,n,i){this.configuration=e,this.viewModel=t,this.outgoingEvents=n,this.commandDelegate=i}return e.prototype._execMouseCommand=function(e,t){t.source=\"mouse\",this.commandDelegate.executeEditorCommand(e,t)},e.prototype.paste=function(e,t,n,i,o){this.commandDelegate.paste(e,t,n,i,o)},e.prototype.type=function(e,t){this.commandDelegate.type(e,t)},e.prototype.replacePreviousChar=function(e,t,n){this.commandDelegate.replacePreviousChar(e,t,n)},e.prototype.compositionStart=function(e){this.commandDelegate.compositionStart(e)},\ne.prototype.compositionEnd=function(e){this.commandDelegate.compositionEnd(e)},e.prototype.cut=function(e){this.commandDelegate.cut(e)},e.prototype.setSelection=function(e,t){this.commandDelegate.executeEditorCommand(n.CoreNavigationCommands.SetSelection,{source:e,selection:t})},e.prototype._validateViewColumn=function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new i.Position(e.lineNumber,t):e},e.prototype._hasMulticursorModifier=function(e){switch(this.configuration.options.get(59)){case\"altKey\":return e.altKey;case\"ctrlKey\":return e.ctrlKey;case\"metaKey\":return e.metaKey}return!1},e.prototype._hasNonMulticursorModifier=function(e){switch(this.configuration.options.get(59)){case\"altKey\":return e.ctrlKey||e.metaKey;case\"ctrlKey\":return e.altKey||e.metaKey;case\"metaKey\":return e.ctrlKey||e.altKey}return!1},e.prototype.dispatchMouse=function(e){var t=o.isLinux&&this.configuration.options.get(81)\n;e.middleButton&&!t?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):e.mouseDownCount>=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position):this._lastCursorLineSelect(e.position):e.inSelectionMode?this._lineSelectDrag(e.position):this._lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position):e.inSelectionMode?this._wordSelectDrag(e.position):this._wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position):this.moveTo(e.position)\n},e.prototype._usualArgs=function(e){return e=this._validateViewColumn(e),{position:this._convertViewToModelPosition(e),viewPosition:e}},e.prototype.moveTo=function(e){this._execMouseCommand(n.CoreNavigationCommands.MoveTo,this._usualArgs(e))},e.prototype._moveToSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.MoveToSelect,this._usualArgs(e))},e.prototype._columnSelect=function(e,t,i){e=this._validateViewColumn(e),this._execMouseCommand(n.CoreNavigationCommands.ColumnSelect,{position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})},e.prototype._createCursor=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(n.CoreNavigationCommands.CreateCursor,{position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})},e.prototype._lastCursorMoveToSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorMoveToSelect,this._usualArgs(e))},e.prototype._wordSelect=function(e){\nthis._execMouseCommand(n.CoreNavigationCommands.WordSelect,this._usualArgs(e))},e.prototype._wordSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.WordSelectDrag,this._usualArgs(e))},e.prototype._lastCursorWordSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorWordSelect,this._usualArgs(e))},e.prototype._lineSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LineSelect,this._usualArgs(e))},e.prototype._lineSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.LineSelectDrag,this._usualArgs(e))},e.prototype._lastCursorLineSelect=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorLineSelect,this._usualArgs(e))},e.prototype._lastCursorLineSelectDrag=function(e){this._execMouseCommand(n.CoreNavigationCommands.LastCursorLineSelectDrag,this._usualArgs(e))},e.prototype._selectAll=function(){this._execMouseCommand(n.CoreNavigationCommands.SelectAll,{})},e.prototype._convertViewToModelPosition=function(e){\nreturn this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)},e.prototype.emitKeyDown=function(e){this.outgoingEvents.emitKeyDown(e)},e.prototype.emitKeyUp=function(e){this.outgoingEvents.emitKeyUp(e)},e.prototype.emitContextMenu=function(e){this.outgoingEvents.emitContextMenu(e)},e.prototype.emitMouseMove=function(e){this.outgoingEvents.emitMouseMove(e)},e.prototype.emitMouseLeave=function(e){this.outgoingEvents.emitMouseLeave(e)},e.prototype.emitMouseUp=function(e){this.outgoingEvents.emitMouseUp(e)},e.prototype.emitMouseDown=function(e){this.outgoingEvents.emitMouseDown(e)},e.prototype.emitMouseDrag=function(e){this.outgoingEvents.emitMouseDrag(e)},e.prototype.emitMouseDrop=function(e){this.outgoingEvents.emitMouseDrop(e)},e.prototype.emitMouseWheel=function(e){this.outgoingEvents.emitMouseWheel(e)},e}();t.ViewController=r})),define(n[524],i([0,1,429,12,23,374]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t,n){\nvar i=e.call(this,n)||this;return i.left=t,i}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=[],i=0,o=t.getSelections();i<o.length;i++){var r=o[i];n.push(new s.MoveCaretCommand(r,this.left))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}},t}(i.EditorAction),l=function(e){function t(){return e.call(this,!0,{id:\"editor.action.moveCarretLeftAction\",label:n.localize(0,null),alias:\"Move Caret Left\",precondition:o.EditorContextKeys.writable})||this}return r(t,e),t}(a),u=function(e){function t(){return e.call(this,!1,{id:\"editor.action.moveCarretRightAction\",label:n.localize(1,null),alias:\"Move Caret Right\",precondition:o.EditorContextKeys.writable})||this}return r(t,e),t}(a);i.registerEditorAction(l),i.registerEditorAction(u)})),define(n[525],i([0,1,430,12,80,3,23,158]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(){return e.call(this,{id:\"editor.action.transposeLetters\",label:n.localize(0,null),\nalias:\"Transpose Letters\",precondition:a.EditorContextKeys.writable,kbOpts:{kbExpr:a.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getModel(),i=[],r=0,a=t.getSelections();r<a.length;r++){var u=a[r];if(u.isEmpty()){var d=u.startLineNumber,c=u.startColumn,h=n.getLineMaxColumn(d);if(1!==d||1!==c&&(2!==c||2!==h)){var p=c===h?u.getPosition():l.MoveOperations.rightPosition(n,u.getPosition().lineNumber,u.getPosition().column),g=l.MoveOperations.leftPosition(n,p.lineNumber,p.column),f=l.MoveOperations.leftPosition(n,g.lineNumber,g.column),m=n.getValueInRange(s.Range.fromPositions(f,g)),v=n.getValueInRange(s.Range.fromPositions(g,p)),_=s.Range.fromPositions(f,p);i.push(new o.ReplaceCommand(_,v+m))}}}i.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop())}},t}(i.EditorAction);i.registerEditorAction(u)})),define(n[526],i([0,1,431,24,16,189,12,32,23,303]),(function(e,t,n,i,o,s,a,l,u){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=\"9_cutcopypaste\",c=o.isNative||document.queryCommandSupported(\"cut\"),h=o.isNative||document.queryCommandSupported(\"copy\"),p=h&&!i.isEdgeOrIE,g=o.isNative||!i.isChrome&&document.queryCommandSupported(\"paste\"),f=function(e){function t(t,n){var i=e.call(this,n)||this;return i.browserCommand=t,i}return r(t,e),t.prototype.runCommand=function(e,t){var n=e.get(l.ICodeEditorService).getFocusedCodeEditor();n&&n.hasTextFocus()?n.trigger(\"keyboard\",this.id,t):document.execCommand(this.browserCommand)},t.prototype.run=function(e,t){t.focus(),document.execCommand(this.browserCommand)},t}(a.EditorAction),m=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2102,win:{primary:2102,secondary:[1044]},weight:100};return o.isNative||(t=void 0),e.call(this,\"cut\",{id:\"editor.action.clipboardCutAction\",label:n.localize(0,null),alias:\"Cut\",precondition:u.EditorContextKeys.writable,kbOpts:t,contextMenuOpts:{group:d,order:1},menuOpts:{\nmenuId:17,group:\"2_ccp\",title:n.localize(1,null),order:1}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n))},t}(f),v=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2081,win:{primary:2081,secondary:[2067]},weight:100};return o.isNative||(t=void 0),e.call(this,\"copy\",{id:\"editor.action.clipboardCopyAction\",label:n.localize(2,null),alias:\"Copy\",precondition:void 0,kbOpts:t,contextMenuOpts:{group:d,order:2},menuOpts:{menuId:17,group:\"2_ccp\",title:n.localize(3,null),order:2}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||e.prototype.run.call(this,t,n))},t}(f),_=function(e){function t(){var t={kbExpr:u.EditorContextKeys.textInputFocus,primary:2100,win:{primary:2100,secondary:[1043]},weight:100};return o.isNative||(t=void 0),e.call(this,\"paste\",{id:\"editor.action.clipboardPasteAction\",label:n.localize(4,null),alias:\"Paste\",\nprecondition:u.EditorContextKeys.writable,kbOpts:t,contextMenuOpts:{group:d,order:3},menuOpts:{menuId:17,group:\"2_ccp\",title:n.localize(5,null),order:3}})||this}return r(t,e),t}(f),y=function(e){function t(){return e.call(this,\"copy\",{id:\"editor.action.clipboardCopyWithSyntaxHighlightingAction\",label:n.localize(6,null),alias:\"Copy With Syntax Highlighting\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.textInputFocus,primary:0,weight:100}})||this}return r(t,e),t.prototype.run=function(t,n){n.hasModel()&&(!n.getOption(25)&&n.getSelection().isEmpty()||(s.CopyOptions.forceCopyWithSyntaxHighlighting=!0,e.prototype.run.call(this,t,n),s.CopyOptions.forceCopyWithSyntaxHighlighting=!1))},t}(f);c&&a.registerEditorAction(m),h&&a.registerEditorAction(v),g&&a.registerEditorAction(_),p&&a.registerEditorAction(y)}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s]\n;return i};define(n[119],i([0,1,19,26,10,2,25,67,12,3,22,17,49,111]),(function(e,t,n,i,o,s,l,u,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.codeActionCommandId=\"editor.action.codeAction\",t.refactorCommandId=\"editor.action.refactor\",t.sourceActionCommandId=\"editor.action.sourceAction\",t.organizeImportsCommandId=\"editor.action.organizeImports\",t.fixAllCommandId=\"editor.action.fixAll\";var _=function(e){function t(i,o){var r=e.call(this)||this;return r._register(o),r.allActions=n.mergeSort(a(i),t.codeActionsComparator),r.validActions=r.allActions.filter((function(e){return!e.disabled})),r}return r(t,e),t.codeActionsComparator=function(e,t){return n.isNonEmptyArray(e.diagnostics)?n.isNonEmptyArray(t.diagnostics)?e.diagnostics[0].message.localeCompare(t.diagnostics[0].message):-1:n.isNonEmptyArray(t.diagnostics)?1:0},Object.defineProperty(t.prototype,\"hasAutoFix\",{get:function(){return this.validActions.some((function(e){\nreturn!!e.kind&&v.CodeActionKind.QuickFix.contains(new v.CodeActionKind(e.kind))&&!!e.isPreferred}))},enumerable:!0,configurable:!0}),t}(s.Disposable);function y(e,t,i,r){var a,l=this,h=i.filter||{},p={only:null===(a=h.include)||void 0===a?void 0:a.value,trigger:i.type},g=new u.TextModelCancellationTokenSource(e,r),m=function(e,t){return f.CodeActionProviderRegistry.all(e).filter((function(e){return!e.providedCodeActionKinds||e.providedCodeActionKinds.some((function(e){return v.mayIncludeActionsOfKind(t,new v.CodeActionKind(e))}))}))}(e,h),y=new s.DisposableStore,C=m.map((function(n){return d(l,void 0,void 0,(function(){var i,r;return c(this,(function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,n.provideCodeActions(e,t,p,g.token)];case 1:return i=s.sent(),g.token.isCancellationRequested||!i?[2,[]]:(y.add(i),[2,i.actions.filter((function(e){return e&&v.filtersAction(h,e)}))]);case 2:if(r=s.sent(),o.isPromiseCanceledError(r))throw r;return o.onUnexpectedExternalError(r),[2,[]];case 3:return[2]}}))\n}))})),b=f.CodeActionProviderRegistry.onDidChange((function(){var t=f.CodeActionProviderRegistry.all(e);n.equals(t,m)||g.cancel()}));return Promise.all(C).then(n.flatten).then((function(e){return new _(e,y)})).finally((function(){b.dispose(),g.dispose()}))}t.getCodeActions=y,h.registerLanguageCommand(\"_executeCodeActionProvider\",(function(e,t){return d(this,void 0,void 0,(function(){var n,r,s,a,u,d;return c(this,(function(c){switch(c.label){case 0:if(n=t.resource,r=t.rangeOrSelection,s=t.kind,!(n instanceof l.URI))throw o.illegalArgument();if(!(a=e.get(m.IModelService).getModel(n)))throw o.illegalArgument();if(!(u=g.Selection.isISelection(r)?g.Selection.liftSelection(r):p.Range.isIRange(r)?a.validateRange(r):void 0))throw o.illegalArgument();return[4,y(a,u,{type:2,filter:{includeSourceActions:!0,include:s&&s.value?new v.CodeActionKind(s.value):void 0}},i.CancellationToken.None)];case 1:return d=c.sent(),setTimeout((function(){return d.dispose()}),100),[2,d.validActions]}}))}))}))}))\n;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[527],i([0,1,6,70,55,10,128,2,13,17,119,111,66,34]),(function(e,t,n,i,o,s,u,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(e){function t(t,n){var i=e.call(this,t.command?t.command.id:t.title,t.title,void 0,!t.disabled,n)||this;return i.action=t,i}return r(t,e),t}(o.Action),S=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r._editor=t,r._delegate=n,r._contextMenuService=i,r._visible=!1,r._showingActions=r._register(new p.MutableDisposable),r._keybindingResolver=new w({getKeybindings:function(){return o.getKeybindings()}}),r}return r(t,e),Object.defineProperty(t.prototype,\"isVisible\",{get:function(){return this._visible},enumerable:!0,configurable:!0}),t.prototype.show=function(e,t,n,i){return d(this,void 0,void 0,(function(){\nvar o,r,a,l,u=this;return c(this,(function(d){if(!(o=i.includeDisabledActions?t.allActions:t.validActions).length)return this._visible=!1,[2];if(!this._editor.getDomNode())throw this._visible=!1,s.canceled();return this._visible=!0,this._showingActions.value=t,r=this.getMenuActions(e,o),a=f.Position.isIPosition(n)?this._toCoords(n):n||{x:0,y:0},l=this._keybindingResolver.getResolver(),this._contextMenuService.showContextMenu({getAnchor:function(){return a},getActions:function(){return r},onHide:function(){u._visible=!1,u._editor.focus()},autoSelectFirstItem:!0,getKeyBinding:function(e){return e instanceof b?l(e.action):void 0}}),[2]}))}))},t.prototype.getMenuActions=function(e,t){var n,o,r=this,s=function(e){return new b(e,(function(){return r._delegate.onSelectCodeAction(e)}))},l=t.map(s),u=this._editor.getModel();if(u&&l.length)for(var d=0,c=m.CodeActionProviderRegistry.all(u);d<c.length;d++){var h=c[d];if(h._getAdditionalMenuItems){var p=h._getAdditionalMenuItems({trigger:e.type,\nonly:null===(o=null===(n=e.filter)||void 0===n?void 0:n.include)||void 0===o?void 0:o.value},t);p.length&&l.push.apply(l,a([new i.Separator],p.map((function(e){return s({title:e.title,command:e})}))))}}return l},t.prototype._toCoords=function(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();var t=this._editor.getScrolledVisiblePosition(e),i=n.getDomNodePagePosition(this._editor.getDomNode());return{x:i.left+t.left,y:i.top+t.top+t.height}},t=h([g(2,y.IContextMenuService),g(3,C.IKeybindingService)],t)}(p.Disposable);t.CodeActionMenu=S;var w=function(){function e(e){this._keybindingProvider=e}return e.prototype.getResolver=function(){var t=this,n=new u.Lazy((function(){return t._keybindingProvider.getKeybindings().filter((function(t){return e.codeActionCommands.indexOf(t.command)>=0})).filter((function(e){return e.resolvedKeybinding})).map((function(e){var t=e.commandArgs;return e.command===v.organizeImportsCommandId?t={\nkind:_.CodeActionKind.SourceOrganizeImports.value}:e.command===v.fixAllCommandId&&(t={kind:_.CodeActionKind.SourceFixAll.value}),l({resolvedKeybinding:e.resolvedKeybinding},_.CodeActionCommandArgs.fromUser(t,{kind:_.CodeActionKind.None,apply:\"never\"}))}))}));return function(e){if(e.kind){var i=t.bestKeybindingForCodeAction(e,n.getValue());return null==i?void 0:i.resolvedKeybinding}}},e.prototype.bestKeybindingForCodeAction=function(e,t){if(e.kind){var n=new _.CodeActionKind(e.kind);return t.filter((function(e){return e.kind.contains(n)})).filter((function(t){return!t.preferred||e.isPreferred})).reduceRight((function(e,t){return e?e.kind.contains(t.kind)?t:e:t}),void 0)}},e.codeActionCommands=[v.refactorCommandId,v.codeActionCommandId,v.sourceActionCommandId,v.organizeImportsCommandId,v.fixAllCommandId],e}();t.CodeActionKeybindingResolver=w})),define(n[528],i([0,1,15,4,2,3,17,18,119,39]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.SUPPORTED_CODE_ACTIONS=new l.RawContextKey(\"supportedCodeAction\",\"\");var c,h=function(e){function t(t,i,o,r){void 0===r&&(r=250);var s=e.call(this)||this;return s._editor=t,s._markerService=i,s._signalChange=o,s._delay=r,s._autoTriggerTimer=s._register(new n.TimeoutTimer),s._register(s._markerService.onMarkerChanged((function(e){return s._onMarkerChanges(e)}))),s._register(s._editor.onDidChangeCursorPosition((function(){return s._onCursorChange()}))),s}return r(t,e),t.prototype.trigger=function(e){var t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);return this._createEventAndSignalChange(e,t)},t.prototype._onMarkerChanges=function(e){var t=this,n=this._editor.getModel();n&&e.some((function(e){return d.isEqual(e,n.uri)}))&&this._autoTriggerTimer.cancelAndSet((function(){t.trigger({type:1})}),this._delay)},t.prototype._onCursorChange=function(){var e=this;this._autoTriggerTimer.cancelAndSet((function(){e.trigger({type:1})}),this._delay)},t.prototype._getRangeOfMarker=function(e){\nvar t=this._editor.getModel();if(t)for(var n=0,i=this._markerService.read({resource:t.uri});n<i.length;n++){var o=i[n],r=t.validateRange(o);if(s.Range.intersectRanges(r,e))return s.Range.lift(r)}},t.prototype._getRangeOfSelectionUnlessWhitespaceEnclosed=function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=this._editor.getSelection();if(n.isEmpty()&&1===e.type){var i=n.getPosition(),o=i.lineNumber,r=i.column,s=t.getLineContent(o);if(0===s.length)return;if(1===r){if(/\\s/.test(s[0]))return}else if(r===t.getLineMaxColumn(o)){if(/\\s/.test(s[s.length-1]))return}else if(/\\s/.test(s[r-2])&&/\\s/.test(s[r-1]))return}return n}},t.prototype._createEventAndSignalChange=function(e,t){var n=this._editor.getModel();if(t&&n){var i=this._getRangeOfMarker(t),o=i?i.getStartPosition():t.getStartPosition(),r={trigger:e,selection:t,position:o};return this._signalChange(r),r}this._signalChange(void 0)},t}(o.Disposable);!function(e){e.Empty={type:0};var t=function(e,t,n,i){this.trigger=e,this.rangeOrSelection=t,\nthis.position=n,this.actions=i,this.type=1};e.Triggered=t}(c=t.CodeActionsState||(t.CodeActionsState={}));var p=function(e){function s(n,r,s,l){var u=e.call(this)||this;return u._editor=n,u._markerService=r,u._progressService=l,u._codeActionOracle=u._register(new o.MutableDisposable),u._state=c.Empty,u._onDidChangeState=u._register(new i.Emitter),u.onDidChangeState=u._onDidChangeState.event,u._supportedCodeActions=t.SUPPORTED_CODE_ACTIONS.bindTo(s),u._register(u._editor.onDidChangeModel((function(){return u._update()}))),u._register(u._editor.onDidChangeModelLanguage((function(){return u._update()}))),u._register(a.CodeActionProviderRegistry.onDidChange((function(){return u._update()}))),u._update(),u}return r(s,e),s.prototype.dispose=function(){e.prototype.dispose.call(this),this.setState(c.Empty,!0)},s.prototype._update=function(){var e=this;this._codeActionOracle.value=void 0,this.setState(c.Empty);var t=this._editor.getModel();if(t&&a.CodeActionProviderRegistry.has(t)&&!this._editor.getOption(68)){\nfor(var i=[],o=0,r=a.CodeActionProviderRegistry.all(t);o<r.length;o++){var s=r[o];Array.isArray(s.providedCodeActionKinds)&&i.push.apply(i,s.providedCodeActionKinds)}this._supportedCodeActions.set(i.join(\" \")),this._codeActionOracle.value=new h(this._editor,this._markerService,(function(i){if(i){var o=n.createCancelablePromise((function(e){return u.getCodeActions(t,i.selection,i.trigger,e)}));e._progressService&&2===i.trigger.type&&e._progressService.showWhile(o,250),e.setState(new c.Triggered(i.trigger,i.selection,i.position,o))}else e.setState(c.Empty)}),void 0),this._codeActionOracle.value.trigger({type:1})}else this._supportedCodeActions.reset()},s.prototype.trigger=function(e){this._codeActionOracle.value&&this._codeActionOracle.value.trigger(e)},s.prototype.setState=function(e,t){e!==this._state&&(1===this._state.type&&this._state.actions.cancel(),this._state=e,t||this._onDidChangeState.fire(e))},s}(o.Disposable);t.CodeActionModel=p})),\ndefine(n[221],i([0,1,19,26,10,25,12,17,49,2]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(){this.lenses=[],this._disposables=new u.DisposableStore}return e.prototype.dispose=function(){this._disposables.dispose()},e.prototype.add=function(e,t){this._disposables.add(e);for(var n=0,i=e.lenses;n<i.length;n++){var o=i[n];this.lenses.push({symbol:o,provider:t})}},e}();function c(e,t){var i=a.CodeLensProviderRegistry.ordered(e),r=new Map,s=new d,l=i.map((function(n,i){return r.set(n,i),Promise.resolve(n.provideCodeLenses(e,t)).then((function(e){return e&&s.add(e,n)})).catch(o.onUnexpectedExternalError)}));return Promise.all(l).then((function(){return s.lenses=n.mergeSort(s.lenses,(function(e,t){\nreturn e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:r.get(e.provider)<r.get(t.provider)?-1:r.get(e.provider)>r.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0})),s}))}t.CodeLensModel=d,t.getCodeLensData=c,s.registerLanguageCommand(\"_executeCodeLensProvider\",(function(e,t){var n=t.resource,s=t.itemResolveCount;if(!(n instanceof r.URI))throw o.illegalArgument();var a=e.get(l.IModelService).getModel(n);if(!a)throw o.illegalArgument();var d=[],h=new u.DisposableStore;return c(a,i.CancellationToken.None).then((function(e){h.add(e);for(var t=[],n=function(e){void 0===s||Boolean(e.symbol.command)?d.push(e.symbol):s-- >0&&e.provider.resolveCodeLens&&t.push(Promise.resolve(e.provider.resolveCodeLens(a,e.symbol,i.CancellationToken.None)).then((function(t){return d.push(t||e.symbol)})))},o=0,r=e.lenses;o<r.length;o++){n(r[o])}return Promise.all(t)\n})).then((function(){return d})).finally((function(){setTimeout((function(){return h.dispose()}),100)}))}))})),define(n[529],i([0,1,11,83,221,38,74,3,15,102]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ICodeLensCache=n.createDecorator(\"ICodeLensCache\");var d=function(e,t){this.lineCount=e,this.data=t},c=function(){function e(e){var t=this;this._fakeProvider=new(function(){function e(){}return e.prototype.provideCodeLenses=function(){throw new Error(\"not supported\")},e}()),this._cache=new r.LRUCache(20,.75);l.runWhenIdle((function(){return e.remove(\"codelens/cache\",1)}));var n=\"codelens/cache2\",i=e.get(n,1,\"{}\");this._deserialize(i),u.once(e.onWillSaveState)((function(i){i.reason===s.WillSaveStateReason.SHUTDOWN&&e.store(n,t._serialize(),1)}))}return e.prototype.put=function(e,t){var n=t.lenses.map((function(e){var t;return{range:e.symbol.range,command:e.symbol.command&&{id:\"\",title:null===(t=e.symbol.command)||void 0===t?void 0:t.title}}\n})),i=new o.CodeLensModel;i.add({lenses:n,dispose:function(){}},this._fakeProvider);var r=new d(e.getLineCount(),i);this._cache.set(e.uri.toString(),r)},e.prototype.get=function(e){var t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0},e.prototype.delete=function(e){this._cache.delete(e.uri.toString())},e.prototype._serialize=function(){var e=Object.create(null);return this._cache.forEach((function(t,n){for(var i=new Set,o=0,s=t.data.lenses;o<s.length;o++){var a=s[o];i.add(a.symbol.range.startLineNumber)}e[n]={lineCount:t.lineCount,lines:r.values(i)}})),JSON.stringify(e)},e.prototype._deserialize=function(e){try{var t=JSON.parse(e);for(var n in t){for(var i=t[n],r=[],s=0,l=i.lines;s<l.length;s++){var u=l[s];r.push({range:new a.Range(u,1,u,11)})}var c=new o.CodeLensModel;c.add({lenses:r,dispose:function(){}},this._fakeProvider),this._cache.set(n,new d(i.lineCount,c))}}catch(e){}},e=h([g(0,s.IStorageService)],e)}();t.CodeLensCache=c,\ni.registerSingleton(t.ICodeLensCache,c)})),define(n[222],i([0,1,26,10,25,12,3,17,49]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getColors=function(e,t){var n=[],i=a.ColorProviderRegistry.ordered(e).reverse().map((function(i){return Promise.resolve(i.provideDocumentColors(e,t)).then((function(e){if(Array.isArray(e))for(var t=0,o=e;t<o.length;t++){var r=o[t];n.push({colorInfo:r,provider:i})}}))}));return Promise.all(i).then((function(){return n}))},t.getColorPresentations=function(e,t,n,i){return Promise.resolve(n.provideColorPresentations(e,t,i))},r.registerLanguageCommand(\"_executeDocumentColorProvider\",(function(e,t){var r=t.resource;if(!(r instanceof o.URI))throw i.illegalArgument();var s=e.get(l.IModelService).getModel(r);if(!s)throw i.illegalArgument();var u=[],d=a.ColorProviderRegistry.ordered(s).reverse().map((function(e){return Promise.resolve(e.provideDocumentColors(s,n.CancellationToken.None)).then((function(e){\nif(Array.isArray(e))for(var t=0,n=e;t<n.length;t++){var i=n[t];u.push({range:i.range,color:[i.color.red,i.color.green,i.color.blue,i.color.alpha]})}}))}));return Promise.all(d).then((function(){return u}))})),r.registerLanguageCommand(\"_executeColorPresentationProvider\",(function(e,t){var r=t.resource,u=t.color,d=t.range;if(!(r instanceof o.URI&&Array.isArray(u)&&4===u.length&&s.Range.isIRange(d)))throw i.illegalArgument();var c=u[0],h=u[1],p=u[2],g=u[3],f=e.get(l.IModelService).getModel(r);if(!f)throw i.illegalArgument();var m={range:d,color:{red:c,green:h,blue:p,alpha:g}},v=[],_=a.ColorProviderRegistry.ordered(f).reverse().map((function(e){return Promise.resolve(e.provideColorPresentations(f,m,n.CancellationToken.None)).then((function(e){Array.isArray(e)&&v.push.apply(v,e)}))}));return Promise.all(_).then((function(){return v}))}))})),define(n[223],i([0,1,15,27,10,125,2,12,32,3,30,17,222,43]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var v=function(e){function t(t,n,i){var o=e.call(this)||this;return o._editor=t,o._codeEditorService=n,o._configurationService=i,o._localToDispose=o._register(new a.DisposableStore),o._decorationsIds=[],o._colorDatas=new Map,o._colorDecoratorIds=[],o._decorationsTypes=new Set,o._register(t.onDidChangeModel((function(e){o._isEnabled=o.isEnabled(),o.onModelChanged()}))),o._register(t.onDidChangeModelLanguage((function(e){return o.onModelChanged()}))),o._register(p.ColorProviderRegistry.onDidChange((function(e){return o.onModelChanged()}))),o._register(t.onDidChangeConfiguration((function(e){var t=o._isEnabled;o._isEnabled=o.isEnabled(),t!==o._isEnabled&&(o._isEnabled?o.onModelChanged():o.removeAllDecorations())}))),o._timeoutTimer=null,o._computePromise=null,o._isEnabled=o.isEnabled(),o.onModelChanged(),o}return r(t,e),t.prototype.isEnabled=function(){var e=this._editor.getModel();if(!e)return!1;var t=e.getLanguageIdentifier(),n=this._configurationService.getValue(t.language);if(n){var i=n.colorDecorators\n;if(i&&void 0!==i.enable&&!i.enable)return i.enable}return this._editor.getOption(12)},t.get=function(e){return e.getContribution(this.ID)},t.prototype.dispose=function(){this.stop(),this.removeAllDecorations(),e.prototype.dispose.call(this)},t.prototype.onModelChanged=function(){var e=this;if(this.stop(),this._isEnabled){var i=this._editor.getModel();i&&p.ColorProviderRegistry.has(i)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((function(i){e._timeoutTimer||(e._timeoutTimer=new n.TimeoutTimer,e._timeoutTimer.cancelAndSet((function(){e._timeoutTimer=null,e.beginCompute()}),t.RECOMPUTE_TIME))}))),this.beginCompute())}},t.prototype.beginCompute=function(){var e=this;this._computePromise=n.createCancelablePromise((function(t){var n=e._editor.getModel();return n?f.getColors(n,t):Promise.resolve([])})),this._computePromise.then((function(t){e.updateDecorations(t),e.updateColorDecorators(t),e._computePromise=null}),o.onUnexpectedError)},t.prototype.stop=function(){\nthis._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()},t.prototype.updateDecorations=function(e){var t=this,n=e.map((function(e){return{range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:c.ModelDecorationOptions.EMPTY}}));this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((function(n,i){return t._colorDatas.set(n,e[i])}))},t.prototype.updateColorDecorators=function(e){for(var t=this,n=[],o={},r=0;r<e.length&&n.length<500;r++){var a=e[r].colorInfo.color,l=a.red,u=a.green,d=a.blue,c=a.alpha,h=new i.RGBA(Math.round(255*l),Math.round(255*u),Math.round(255*d),c),p=s.hash(h).toString(16),g=\"rgba(\"+h.r+\", \"+h.g+\", \"+h.b+\", \"+h.a+\")\",f=\"colorBox-\"+p\n;this._decorationsTypes.has(f)||o[f]||this._codeEditorService.registerDecorationType(f,{before:{contentText:\" \",border:\"solid 0.1em #000\",margin:\"0.1em 0.2em 0 0.2em\",width:\"0.8em\",height:\"0.8em\",backgroundColor:g},dark:{before:{border:\"solid 0.1em #eee\"}}},void 0,this._editor),o[f]=!0,n.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:this._codeEditorService.resolveDecorationOptions(f,!0)})}this._decorationsTypes.forEach((function(e){o[e]||t._codeEditorService.removeDecorationType(e)})),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,n)},t.prototype.removeAllDecorations=function(){var e=this;this._decorationsIds=this._editor.deltaDecorations(this._decorationsIds,[]),this._colorDecoratorIds=this._editor.deltaDecorations(this._colorDecoratorIds,[]),this._decorationsTypes.forEach((function(t){\ne._codeEditorService.removeDecorationType(t)}))},t.prototype.getColorData=function(e){var t=this,n=this._editor.getModel();if(!n)return null;var i=n.getDecorationsInRange(d.Range.fromPositions(e,e)).filter((function(e){return t._colorDatas.has(e.id)}));return 0===i.length?null:this._colorDatas.get(i[0].id)},t.ID=\"editor.contrib.colorDetector\",t.RECOMPUTE_TIME=1e3,t=h([g(1,u.ICodeEditorService),g(2,m.IConfigurationService)],t)}(a.Disposable);t.ColorDetector=v,l.registerEditorContribution(v.ID,v)})),define(n[530],i([0,1,434,36,12,23,196,376]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(t,n){var i=e.call(this,n)||this;return i._type=t,i}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getModel(),i=[],o=t.getSelections(),r=n.getOptions(),s=t.getOption(13),a=0,u=o;a<u.length;a++){var d=u[a];i.push(new l.LineCommentCommand(d,r.tabSize,this._type,s.insertSpace))}t.pushUndoStop(),t.executeCommands(this.id,i),\nt.pushUndoStop()}},t}(o.EditorAction),d=function(e){function t(){return e.call(this,0,{id:\"editor.action.commentLine\",label:n.localize(0,null),alias:\"Toggle Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:17,group:\"5_insert\",title:n.localize(1,null),order:1}})||this}return r(t,e),t}(u),c=function(e){function t(){return e.call(this,1,{id:\"editor.action.addCommentLine\",label:n.localize(2,null),alias:\"Add Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2081),weight:100}})||this}return r(t,e),t}(u),h=function(e){function t(){return e.call(this,2,{id:\"editor.action.removeCommentLine\",label:n.localize(3,null),alias:\"Remove Line Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2099),weight:100}})||this}return r(t,e),t}(u),p=function(e){function t(){\nreturn e.call(this,{id:\"editor.action.blockComment\",label:n.localize(4,null),alias:\"Toggle Block Comment\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:17,group:\"5_insert\",title:n.localize(5,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getOption(13),i=[],o=0,r=t.getSelections();o<r.length;o++){var s=r[o];i.push(new a.BlockCommentCommand(s,n.insertSpace))}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},t}(o.EditorAction);o.registerEditorAction(d),o.registerEditorAction(c),o.registerEditorAction(h),o.registerEditorAction(p)})),define(n[531],i([0,1,435,6,70,2,12,23,65,18,66,34,405]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(){function e(e,t,n,i,o,r){var a=this;this._contextMenuService=t,this._contextViewService=n,this._contextKeyService=i,this._keybindingService=o,\nthis._menuService=r,this._toDispose=new s.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu((function(e){return a._onContextMenu(e)}))),this._toDispose.add(this._editor.onMouseWheel((function(e){a._contextMenuIsBeingShownCount>0&&a._contextViewService.hideContextView()}))),this._toDispose.add(this._editor.onKeyDown((function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),a.showContextMenu())})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype._onContextMenu=function(e){if(this._editor.hasModel()){if(!this._editor.getOption(14))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12!==e.target.type&&(e.event.preventDefault(),6===e.target.type||7===e.target.type||1===e.target.type)){if(this._editor.focus(),e.target.position){for(var t=!1,n=0,i=this._editor.getSelections();n<i.length;n++){\nif(i[n].containsPosition(e.target.position)){t=!0;break}}t||this._editor.setPosition(e.target.position)}var o=null;1!==e.target.type&&(o={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(o)}}},e.prototype.showContextMenu=function(e){if(this._editor.getOption(14)&&this._editor.hasModel())if(this._contextMenuService){var t=this._getMenuActions(this._editor.getModel(),7);t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()},e.prototype._getMenuActions=function(e,t){var n=[],i=this._menuService.createMenu(t,this._contextKeyService),r=i.getActions({arg:e.uri});i.dispose();for(var s=0,a=r;s<a.length;s++){for(var l=0,d=0,c=a[s][1];d<c.length;d++){var h=c[d];if(h instanceof u.SubmenuItemAction){var p=this._getMenuActions(e,h.item.submenu);p.length>0&&(n.push(new f.ContextSubMenu(h.label,p)),l++)}else n.push(h),l++}l&&n.push(new o.Separator)}return n.length&&n.pop(),n},e.prototype._doShowContextMenu=function(e,t){var n=this;if(void 0===t&&(t=null),this._editor.hasModel()){\nvar r=this._editor.getOption(44);if(this._editor.updateOptions({hover:{enabled:!1}}),!t){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();var s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=i.getDomNodePagePosition(this._editor.getDomNode()),l=a.left+s.left,u=a.top+s.top+s.height;t={x:l,y:u}}this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({getAnchor:function(){return t},getActions:function(){return e},getActionViewItem:function(e){var t=n._keybindingFor(e);if(t)return new o.ActionViewItem(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});var i=e;return\"function\"==typeof i.getActionViewItem?i.getActionViewItem():new o.ActionViewItem(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:function(e){return n._keybindingFor(e)},onHide:function(e){n._contextMenuIsBeingShownCount--,n._editor.focus(),n._editor.updateOptions({hover:r})}})}},e.prototype._keybindingFor=function(e){return this._keybindingService.lookupKeybinding(e.id)},\ne.prototype.dispose=function(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()},e.ID=\"editor.contrib.contextmenu\",e=h([g(1,c.IContextMenuService),g(2,c.IContextViewService),g(3,d.IContextKeyService),g(4,p.IKeybindingService),g(5,u.IMenuService)],e)}();t.ContextMenuController=m;var v=function(e){function t(){return e.call(this,{id:\"editor.action.showContextMenu\",label:n.localize(0,null),alias:\"Show Editor Context Menu\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.textInputFocus,primary:1092,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){m.get(t).showContextMenu()},t}(a.EditorAction);a.registerEditorContribution(m.ID,m),a.registerEditorAction(v)})),define(n[532],i([0,1,436,2,12,23]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this.selections=e}return e.prototype.equals=function(e){var t=this.selections.length;if(t!==e.selections.length)return!1\n;for(var n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0},e}(),l=function(e,t,n){this.cursorState=e,this.scrollTop=t,this.scrollLeft=n},u=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._isCursorUndoRedo=!1,n._undoStack=[],n._redoStack=[],n._register(t.onDidChangeModel((function(e){n._undoStack=[],n._redoStack=[]}))),n._register(t.onDidChangeModelContent((function(e){n._undoStack=[],n._redoStack=[]}))),n._register(t.onDidChangeCursorSelection((function(e){if(!n._isCursorUndoRedo&&e.oldSelections&&e.oldModelVersionId===e.modelVersionId){var i=new a(e.oldSelections);n._undoStack.length>0&&n._undoStack[n._undoStack.length-1].cursorState.equals(i)||(n._undoStack.push(new l(i,t.getScrollTop(),t.getScrollLeft())),n._redoStack=[],n._undoStack.length>50&&n._undoStack.shift())}}))),n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.cursorUndo=function(){\nthis._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))},t.prototype.cursorRedo=function(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new l(new a(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))},t.prototype._applyState=function(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1},t.ID=\"editor.contrib.cursorUndoRedoController\",t}(i.Disposable);t.CursorUndoRedoController=u;var d=function(e){function t(){return e.call(this,{id:\"cursorUndo\",label:n.localize(0,null),alias:\"Cursor Undo\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:2099,weight:100}})||this}return r(t,e),\nt.prototype.run=function(e,t,n){u.get(t).cursorUndo()},t}(o.EditorAction);t.CursorUndo=d;var c=function(e){function t(){return e.call(this,{id:\"cursorRedo\",label:n.localize(1,null),alias:\"Cursor Redo\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t,n){u.get(t).cursorRedo()},t}(o.EditorAction);t.CursorRedo=c,o.registerEditorContribution(u.ID,u),o.registerEditorAction(d),o.registerEditorAction(c)})),define(n[533],i([0,1,2,16,12,13,3,22,377,30,307]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";function c(e){return i.isMacintosh?e.altKey:e.ctrlKey}Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._register(n._editor.onMouseDown((function(e){return n._onEditorMouseDown(e)}))),n._register(n._editor.onMouseUp((function(e){return n._onEditorMouseUp(e)}))),n._register(n._editor.onMouseDrag((function(e){return n._onEditorMouseDrag(e)}))),n._register(n._editor.onMouseDrop((function(e){return n._onEditorMouseDrop(e)}))),\nn._register(n._editor.onKeyDown((function(e){return n.onEditorKeyDown(e)}))),n._register(n._editor.onKeyUp((function(e){return n.onEditorKeyUp(e)}))),n._register(n._editor.onDidBlurEditorWidget((function(){return n.onEditorBlur()}))),n._dndDecorationIds=[],n._mouseDown=!1,n._modifierPressed=!1,n._dragSelection=null,n}return r(t,e),t.prototype.onEditorBlur=function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1},t.prototype.onEditorKeyDown=function(e){this._editor.getOption(24)&&(c(e)&&(this._modifierPressed=!0),this._mouseDown&&c(e)&&this._editor.updateOptions({mouseStyle:\"copy\"}))},t.prototype.onEditorKeyUp=function(e){this._editor.getOption(24)&&(c(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===t.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:\"default\"}))},t.prototype._onEditorMouseDown=function(e){this._mouseDown=!0},t.prototype._onEditorMouseUp=function(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:\"text\"})},\nt.prototype._onEditorMouseDrag=function(e){var t=e.target;if(null===this._dragSelection){var n=(this._editor.getSelections()||[]).filter((function(e){return t.position&&e.containsPosition(t.position)}));if(1!==n.length)return;this._dragSelection=n[0]}c(e.event)?this._editor.updateOptions({mouseStyle:\"copy\"}):this._editor.updateOptions({mouseStyle:\"default\"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))},t.prototype._onEditorMouseDrop=function(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){var n=new s.Position(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){var i=null;if(e.event.shiftKey){var o=this._editor.getSelection();if(o){var r=o.selectionStartLineNumber,a=o.selectionStartColumn;i=[new l.Selection(r,a,n.lineNumber,n.column)]}}else i=(this._editor.getSelections()||[]).map((function(e){\nreturn e.containsPosition(n)?new l.Selection(n.lineNumber,n.column,n.lineNumber,n.column):e}));this._editor.setSelections(i||[],\"mouse\")}else(!this._dragSelection.containsPosition(n)||(c(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(t.ID,new u.DragAndDropCommand(this._dragSelection,n,c(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:\"text\"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1},t.prototype.showAt=function(e){var n=[{range:new a.Range(e.lineNumber,e.column,e.lineNumber,e.column),options:t._DECORATION_OPTIONS}];this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,n),this._editor.revealPosition(e,1)},t.prototype._removeDecoration=function(){this._dndDecorationIds=this._editor.deltaDecorations(this._dndDecorationIds,[])},t.prototype._hitContent=function(e){\nreturn 6===e.type||7===e.type},t.prototype._hitMargin=function(e){return 2===e.type||3===e.type||4===e.type},t.prototype.dispose=function(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,e.prototype.dispose.call(this)},t.ID=\"editor.contrib.dragAndDrop\",t.TRIGGER_KEY_VALUE=i.isMacintosh?6:5,t._DECORATION_OPTIONS=d.ModelDecorationOptions.register({className:\"dnd-target\"}),t}(n.Disposable);t.DragAndDropController=h,o.registerEditorContribution(h.ID,h)})),define(n[534],i([0,1,441,12,105]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomIn\",label:n.localize(0,null),alias:\"Editor Font Zoom In\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()+1)},t}(i.EditorAction),a=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomOut\",label:n.localize(1,null),\nalias:\"Editor Font Zoom Out\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(o.EditorZoom.getZoomLevel()-1)},t}(i.EditorAction),l=function(e){function t(){return e.call(this,{id:\"editor.action.fontZoomReset\",label:n.localize(2,null),alias:\"Editor Font Zoom Reset\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){o.EditorZoom.setZoomLevel(0)},t}(i.EditorAction);i.registerEditorAction(s),i.registerEditorAction(a),i.registerEditorAction(l)})),define(n[535],i([0,1,50,19,26,10,25,67,108,13,3,22,17,62,49,198,442,479,11,76,29,21]),(function(e,t,n,i,o,r,s,a,l,u,h,p,g,f,m,v,_,y,C,b,S,w){\"use strict\";function E(e){if((e=e.filter((function(e){return e.range}))).length){for(var t=e[0].range,i=1;i<e.length;i++)t=h.Range.plusRange(t,e[i].range);var o=t.startLineNumber,r=t.endLineNumber\n;o===r?1===e.length?n.alert(_.localize(0,null,o)):n.alert(_.localize(1,null,e.length,o)):1===e.length?n.alert(_.localize(2,null,o,r)):n.alert(_.localize(3,null,e.length,o,r))}}function L(e){for(var t=[],n=new Set,i=0,o=g.DocumentFormattingEditProviderRegistry.ordered(e);i<o.length;i++){var r=o[i];t.push(r),r.extensionId&&n.add(y.ExtensionIdentifier.toKey(r.extensionId))}for(var s=function(e){if(e.extensionId){if(n.has(y.ExtensionIdentifier.toKey(e.extensionId)))return\"continue\";n.add(y.ExtensionIdentifier.toKey(e.extensionId))}t.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:function(t,n,i){return e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),n,i)}})},a=0,l=g.DocumentRangeFormattingEditProviderRegistry.ordered(e);a<l.length;a++){s(r=l[a])}return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.alertFormattingEdits=E,t.getRealAndSyntheticDocumentFormattersOrdered=L;var D=function(){function e(){}return e.select=function(t,n,i){\nreturn d(this,void 0,void 0,(function(){var o;return c(this,(function(r){switch(r.label){case 0:return 0===t.length?[2,void 0]:(o=e._selectors.iterator().next().value)?[4,o(t,n,i)]:[3,2];case 1:return[2,r.sent()];case 2:return[2,t[0]]}}))}))},e._selectors=new b.LinkedList,e}();function N(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,u,d,g,m,_;return c(this,(function(c){switch(c.label){case 0:r=e.get(f.IEditorWorkerService),l.isCodeEditor(n)?(s=n.getModel(),u=new a.EditorStateCancellationTokenSource(n,5,o)):(s=n,u=new a.TextModelCancellationTokenSource(n,o)),c.label=1;case 1:return c.trys.push([1,,4,5]),[4,t.provideDocumentRangeFormattingEdits(s,i,s.getFormattingOptions(),u.token)];case 2:return g=c.sent(),[4,r.computeMoreMinimalEdits(s.uri,g)];case 3:return d=c.sent(),u.token.isCancellationRequested?[2,!0]:[3,5];case 4:return u.dispose(),[7];case 5:return d&&0!==d.length?(l.isCodeEditor(n)?(v.FormattingEdit.execute(n,d),E(d),n.pushUndoStop(),\nn.revealPositionInCenterIfOutsideViewport(n.getPosition(),1)):(m=d[0].range,_=new p.Selection(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn),s.pushEditOperations([_],d.map((function(e){return{text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0}})),(function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t].range;if(h.Range.areIntersectingOrTouching(i,_))return[new p.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}return null}))),[2,!0]):[2,!1]}}))}))}function x(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,u,d,g,m,_;return c(this,(function(c){switch(c.label){case 0:r=e.get(f.IEditorWorkerService),l.isCodeEditor(n)?(s=n.getModel(),u=new a.EditorStateCancellationTokenSource(n,5,o)):(s=n,u=new a.TextModelCancellationTokenSource(n,o)),c.label=1;case 1:return c.trys.push([1,,4,5]),[4,t.provideDocumentFormattingEdits(s,s.getFormattingOptions(),u.token)];case 2:return g=c.sent(),[4,r.computeMoreMinimalEdits(s.uri,g)];case 3:return d=c.sent(),\nu.token.isCancellationRequested?[2,!0]:[3,5];case 4:return u.dispose(),[7];case 5:return d&&0!==d.length?(l.isCodeEditor(n)?(v.FormattingEdit.execute(n,d),2!==i&&(E(d),n.pushUndoStop(),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),1))):(m=d[0].range,_=new p.Selection(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn),s.pushEditOperations([_],d.map((function(e){return{text:e.text,range:h.Range.lift(e.range),forceMoveMarkers:!0}})),(function(e){for(var t=0,n=e;t<n.length;t++){var i=n[t].range;if(h.Range.areIntersectingOrTouching(i,_))return[new p.Selection(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)]}return null}))),[2,!0]):[2,!1]}}))}))}function I(e,t,n,o,s){return d(this,void 0,void 0,(function(){var a,l,u,d,h;return c(this,(function(c){switch(c.label){case 0:a=g.DocumentRangeFormattingEditProviderRegistry.ordered(t),l=0,u=a,c.label=1;case 1:return l<u.length?(d=u[l],\n[4,Promise.resolve(d.provideDocumentRangeFormattingEdits(t,n,o,s)).catch(r.onUnexpectedExternalError)]):[3,5];case 2:return h=c.sent(),i.isNonEmptyArray(h)?[4,e.computeMoreMinimalEdits(t.uri,h)]:[3,4];case 3:return[2,c.sent()];case 4:return l++,[3,1];case 5:return[2,void 0]}}))}))}function M(e,t,n,o){return d(this,void 0,void 0,(function(){var s,a,l,u,d;return c(this,(function(c){switch(c.label){case 0:s=L(t),a=0,l=s,c.label=1;case 1:return a<l.length?(u=l[a],[4,Promise.resolve(u.provideDocumentFormattingEdits(t,n,o)).catch(r.onUnexpectedExternalError)]):[3,5];case 2:return d=c.sent(),i.isNonEmptyArray(d)?[4,e.computeMoreMinimalEdits(t.uri,d)]:[3,4];case 3:return[2,c.sent()];case 4:return a++,[3,1];case 5:return[2,void 0]}}))}))}function k(e,t,n,i,s){var a=g.OnTypeFormattingEditProviderRegistry.ordered(t)\n;return 0===a.length?Promise.resolve(void 0):a[0].autoFormatTriggerCharacters.indexOf(i)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,n,i,s,o.CancellationToken.None)).catch(r.onUnexpectedExternalError).then((function(n){return e.computeMoreMinimalEdits(t.uri,n)}))}t.FormattingConflicts=D,t.formatDocumentRangeWithSelectedProvider=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,u;return c(this,(function(d){switch(d.label){case 0:return r=e.get(C.IInstantiationService),s=l.isCodeEditor(t)?t.getModel():t,a=g.DocumentRangeFormattingEditProviderRegistry.ordered(s),[4,D.select(a,s,i)];case 1:return(u=d.sent())?[4,r.invokeFunction(N,u,t,n,o)]:[3,3];case 2:d.sent(),d.label=3;case 3:return[2]}}))}))},t.formatDocumentRangeWithProvider=N,t.formatDocumentWithSelectedProvider=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a;return c(this,(function(u){switch(u.label){case 0:return o=e.get(C.IInstantiationService),r=l.isCodeEditor(t)?t.getModel():t,\ns=L(r),[4,D.select(s,r,n)];case 1:return(a=u.sent())?[4,o.invokeFunction(x,a,t,n,i)]:[3,3];case 2:u.sent(),u.label=3;case 3:return[2]}}))}))},t.formatDocumentWithProvider=x,t.getDocumentRangeFormattingEditsUntilResult=I,t.getDocumentFormattingEditsUntilResult=M,t.getOnTypeFormattingEdits=k,S.CommandsRegistry.registerCommand(\"_executeFormatRangeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],a=t[1],l=t[2];w.assertType(s.URI.isUri(i)),w.assertType(h.Range.isIRange(a));var u=e.get(m.IModelService).getModel(i);if(!u)throw r.illegalArgument(\"resource\");return I(e.get(f.IEditorWorkerService),u,h.Range.lift(a),l,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand(\"_executeFormatDocumentProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],a=t[1];w.assertType(s.URI.isUri(i));var l=e.get(m.IModelService).getModel(i);if(!l)throw r.illegalArgument(\"resource\")\n;return M(e.get(f.IEditorWorkerService),l,a,o.CancellationToken.None)})),S.CommandsRegistry.registerCommand(\"_executeFormatOnTypeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=t[0],o=t[1],a=t[2],l=t[3];w.assertType(s.URI.isUri(i)),w.assertType(u.Position.isIPosition(o)),w.assertType(\"string\"==typeof a);var d=e.get(m.IModelService).getModel(i);if(!d)throw r.illegalArgument(\"resource\");return k(e.get(f.IEditorWorkerService),d,u.Position.lift(o),a,l)}))})),define(n[536],i([0,1,19,26,36,2,12,32,79,3,23,17,62,535,198,443,29,18,11,10]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=function(){function e(e,t){var n=this;this._workerService=t,this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._editor=e,this._callOnDispose.add(e.onDidChangeConfiguration((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModel((function(){return n._update()}))),\nthis._callOnDispose.add(e.onDidChangeModelLanguage((function(){return n._update()}))),this._callOnDispose.add(m.OnTypeFormattingEditProviderRegistry.onDidChange(this._update,this))}return e.prototype.dispose=function(){this._callOnDispose.dispose(),this._callOnModel.dispose()},e.prototype._update=function(){var e=this;if(this._callOnModel.clear(),this._editor.getOption(39)&&this._editor.hasModel()){var t=this._editor.getModel(),n=m.OnTypeFormattingEditProviderRegistry.ordered(t)[0];if(n&&n.autoFormatTriggerCharacters){for(var i=new u.CharacterSet,o=0,r=n.autoFormatTriggerCharacters;o<r.length;o++){var s=r[o];i.add(s.charCodeAt(0))}this._callOnModel.add(this._editor.onDidType((function(t){var n=t.charCodeAt(t.length-1);i.has(n)&&e._trigger(String.fromCharCode(n))})))}}},e.prototype._trigger=function(e){var t=this;if(this._editor.hasModel()&&!(this._editor.getSelections().length>1)){var i=this._editor.getModel(),o=this._editor.getPosition(),r=!1,s=this._editor.onDidChangeModelContent((function(e){\nif(e.isFlush)return r=!0,void s.dispose();for(var t=0,n=e.changes.length;t<n;t++){if(e.changes[t].range.endLineNumber<=o.lineNumber)return r=!0,void s.dispose()}}));_.getOnTypeFormattingEdits(this._workerService,i,o,e,i.getFormattingOptions()).then((function(e){s.dispose(),r||n.isNonEmptyArray(e)&&(y.FormattingEdit.execute(t._editor,e),_.alertFormattingEdits(e))}),(function(e){throw s.dispose(),e}))}},e.ID=\"editor.contrib.autoFormat\",e=h([g(1,v.IEditorWorkerService)],e)}(),D=function(){function e(e,t){var n=this;this.editor=e,this._instantiationService=t,this._callOnDispose=new s.DisposableStore,this._callOnModel=new s.DisposableStore,this._callOnDispose.add(e.onDidChangeConfiguration((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModel((function(){return n._update()}))),this._callOnDispose.add(e.onDidChangeModelLanguage((function(){return n._update()}))),this._callOnDispose.add(m.DocumentRangeFormattingEditProviderRegistry.onDidChange(this._update,this))}\nreturn e.prototype.dispose=function(){this._callOnDispose.dispose(),this._callOnModel.dispose()},e.prototype._update=function(){var e=this;this._callOnModel.clear(),this.editor.getOption(38)&&this.editor.hasModel()&&m.DocumentRangeFormattingEditProviderRegistry.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((function(t){var n=t.range;return e._trigger(n)})))},e.prototype._trigger=function(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(_.formatDocumentRangeWithSelectedProvider,this.editor,e,2,i.CancellationToken.None).catch(E.onUnexpectedError))},e.ID=\"editor.contrib.formatOnPaste\",e=h([g(1,w.IInstantiationService)],e)}(),N=function(e){function t(){return e.call(this,{id:\"editor.action.formatDocument\",label:C.localize(0,null),alias:\"Format Document\",precondition:S.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{\nkbExpr:S.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.hasDocumentFormattingProvider),primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{when:f.EditorContextKeys.hasDocumentFormattingProvider,group:\"1_modification\",order:1.3}})||this}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return t.hasModel()?[4,e.get(w.IInstantiationService).invokeFunction(_.formatDocumentWithSelectedProvider,t,1,i.CancellationToken.None)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))},t}(a.EditorAction),x=function(e){function t(){return e.call(this,{id:\"editor.action.formatSelection\",label:C.localize(1,null),alias:\"Format Selection\",precondition:S.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:S.ContextKeyExpr.and(f.EditorContextKeys.editorTextFocus,f.EditorContextKeys.hasDocumentSelectionFormattingProvider),\nprimary:o.KeyChord(2089,2084),weight:100},contextMenuOpts:{when:S.ContextKeyExpr.and(f.EditorContextKeys.hasDocumentSelectionFormattingProvider,f.EditorContextKeys.hasNonEmptySelection),group:\"1_modification\",order:1.31}})||this}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var n,o,r;return c(this,(function(s){switch(s.label){case 0:return t.hasModel()?(n=e.get(w.IInstantiationService),o=t.getModel(),(r=t.getSelection()).isEmpty()&&(r=new p.Range(r.startLineNumber,1,r.startLineNumber,o.getLineMaxColumn(r.startLineNumber))),[4,n.invokeFunction(_.formatDocumentRangeWithSelectedProvider,t,r,1,i.CancellationToken.None)]):[2];case 1:return s.sent(),[2]}}))}))},t}(a.EditorAction);a.registerEditorContribution(L.ID,L),a.registerEditorContribution(D.ID,D),a.registerEditorAction(N),a.registerEditorAction(x),b.CommandsRegistry.registerCommand(\"editor.action.format\",(function(e){return d(void 0,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:\nreturn(t=e.get(l.ICodeEditorService).getFocusedCodeEditor())&&t.hasModel()?(n=e.get(b.ICommandService),t.getSelection().isEmpty()?[4,n.executeCommand(\"editor.action.formatDocument\")]:[3,2]):[2];case 1:return i.sent(),[3,4];case 2:return[4,n.executeCommand(\"editor.action.formatSelection\")];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))}))})),define(n[224],i([0,1,19,26,10,12,17]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e,t,i,r){var s=i.ordered(e).map((function(n){return Promise.resolve(r(n,e,t)).then(void 0,(function(e){o.onUnexpectedExternalError(e)}))}));return Promise.all(s).then(n.flatten).then(n.coalesce)}function l(e,t,n){return a(e,t,s.DefinitionProviderRegistry,(function(e,t,i){return e.provideDefinition(t,i,n)}))}function u(e,t,n){return a(e,t,s.DeclarationProviderRegistry,(function(e,t,i){return e.provideDeclaration(t,i,n)}))}function h(e,t,n){return a(e,t,s.ImplementationProviderRegistry,(function(e,t,i){return e.provideImplementation(t,i,n)}))}function p(e,t,n){\nreturn a(e,t,s.TypeDefinitionProviderRegistry,(function(e,t,i){return e.provideTypeDefinition(t,i,n)}))}function g(e,t,n,i){var o=this;return a(e,t,s.ReferenceProviderRegistry,(function(e,t,r){return d(o,void 0,void 0,(function(){var o,s;return c(this,(function(a){switch(a.label){case 0:return[4,e.provideReferences(t,r,{includeDeclaration:!0},i)];case 1:return o=a.sent(),n&&o&&2===o.length?[4,e.provideReferences(t,r,{includeDeclaration:!1},i)]:[2,o];case 2:return(s=a.sent())&&1===s.length?[2,s]:[2,o]}}))}))}))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDefinitionsAtPosition=l,t.getDeclarationsAtPosition=u,t.getImplementationsAtPosition=h,t.getTypeDefinitionsAtPosition=p,t.getReferencesAtPosition=g,r.registerModelAndPositionCommand(\"_executeDefinitionProvider\",(function(e,t){return l(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeDeclarationProvider\",(function(e,t){return u(e,t,i.CancellationToken.None)})),\nr.registerModelAndPositionCommand(\"_executeImplementationProvider\",(function(e,t){return h(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeTypeDefinitionProvider\",(function(e,t){return p(e,t,i.CancellationToken.None)})),r.registerModelAndPositionCommand(\"_executeReferenceProvider\",(function(e,t){return g(e,t,!1,i.CancellationToken.None)}))})),define(n[537],i([0,1,18,11,83,86,12,32,3,2,4,452,34,35,39]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ctxHasSymbols=new n.RawContextKey(\"hasSymbols\",!1),t.ISymbolNavigationService=i.createDecorator(\"ISymbolNavigationService\");var _=function(){function e(e,n,i,o){this._editorService=n,this._notificationService=i,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=t.ctxHasSymbols.bindTo(e)}return e.prototype.reset=function(){this._ctxHasSymbols.reset(),d.dispose(this._currentState),d.dispose(this._currentMessage),\nthis._currentModel=void 0,this._currentIdx=-1},e.prototype.put=function(e){var t=this,n=e.parent.parent;if(n.references.length<=1)this.reset();else{this._currentModel=n,this._currentIdx=n.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();var i=new y(this._editorService),o=i.onDidChange((function(e){if(!t._ignoreEditorChange){var i=t._editorService.getActiveCodeEditor();if(i){var o=i.getModel(),r=i.getPosition();if(o&&r){for(var s=!1,a=!1,l=0,d=n.references;l<d.length;l++){var c=d[l];if(v.isEqual(c.uri,o.uri))s=!0,a=a||u.Range.containsPosition(c.range,r);else if(s)break}s&&a||t.reset()}}}}));this._currentState=d.combinedDisposable(i,o)}},e.prototype.revealNext=function(e){var t=this;if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;var n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{\nselection:u.Range.collapseToStart(n.range),revealInCenterIfOutsideViewport:!0}},e).finally((function(){t._ignoreEditorChange=!1}))},e.prototype._showMessage=function(){d.dispose(this._currentMessage);var e=this._keybindingService.lookupKeybinding(\"editor.gotoNextSymbolFromResult\"),t=e?p.localize(0,null,this._currentIdx+1,this._currentModel.references.length,e.getLabel()):p.localize(1,null,this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)},e=h([g(0,n.IContextKeyService),g(1,l.ICodeEditorService),g(2,m.INotificationService),g(3,f.IKeybindingService)],e)}();o.registerSingleton(t.ISymbolNavigationService,_,!0),a.registerEditorCommand(new(function(e){function n(){return e.call(this,{id:\"editor.gotoNextSymbolFromResult\",precondition:t.ctxHasSymbols,kbOpts:{weight:100,primary:70}})||this}return r(n,e),n.prototype.runEditorCommand=function(e,n){return e.get(t.ISymbolNavigationService).revealNext(n)},n}(a.EditorCommand))),\ns.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"editor.gotoNextSymbolFromResult.cancel\",weight:100,when:t.ctxHasSymbols,primary:9,handler:function(e){e.get(t.ISymbolNavigationService).reset()}});var y=function(){function e(e){this._listener=new Map,this._disposables=new d.DisposableStore,this._onDidChange=new c.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}return e.prototype.dispose=function(){this._disposables.dispose(),this._onDidChange.dispose(),this._listener.forEach(d.dispose)},e.prototype._onDidAddEditor=function(e){var t=this;this._listener.set(e,d.combinedDisposable(e.onDidChangeCursorPosition((function(n){return t._onDidChange.fire({editor:e})})),e.onDidChangeModelContent((function(n){return t._onDidChange.fire({editor:e})}))))},e.prototype._onDidRemoveEditor=function(e){\nd.dispose(this._listener.get(e)),this._listener.delete(e)},e=h([g(0,l.ICodeEditorService)],e)}()})),define(n[538],i([0,1,19,26,10,12,17]),(function(e,t,n,i,o,r,s){\"use strict\";function a(e,t,i){var r=s.HoverProviderRegistry.ordered(e).map((function(n){return Promise.resolve(n.provideHover(e,t,i)).then((function(e){return e&&(n=void 0!==(t=e).range,i=void 0!==t.contents&&t.contents&&t.contents.length>0,n&&i)?e:void 0;var t,n,i}),(function(e){o.onUnexpectedExternalError(e)}))}));return Promise.all(r).then(n.coalesce)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getHover=a,r.registerModelAndPositionCommand(\"_executeHoverProvider\",(function(e,t){return a(e,t,i.CancellationToken.None)}))})),define(n[539],i([0,1,456,36,164,12,80,338,159,58,13,3,22,23,386,492,387]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(e){function t(t,n){var i=e.call(this,n)||this;return i.down=t,i}return r(t,e),t.prototype.run=function(e,t){\nfor(var n=[],i=0,o=t.getSelections()||[];i<o.length;i++){var r=o[i];n.push(new f.CopyLinesCommand(r,this.down))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()},t}(s.EditorAction),y=function(e){function t(){return e.call(this,!1,{id:\"editor.action.copyLinesUpAction\",label:n.localize(0,null),alias:\"Copy Line Up\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(1,null),order:1}})||this}return r(t,e),t}(_),C=function(e){function t(){return e.call(this,!0,{id:\"editor.action.copyLinesDownAction\",label:n.localize(2,null),alias:\"Copy Line Down\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(3,null),order:2}})||this}return r(t,e),t}(_),b=function(e){function t(){return e.call(this,{id:\"editor.action.duplicateSelection\",\nlabel:n.localize(4,null),alias:\"Duplicate Selection\",precondition:g.EditorContextKeys.writable,menuOpts:{menuId:25,group:\"2_line\",title:n.localize(5,null),order:5}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){for(var i=[],o=t.getSelections(),r=t.getModel(),s=0,l=o;s<l.length;s++){var u=l[s];if(u.isEmpty())i.push(new f.CopyLinesCommand(u,!0));else{var d=new p.Selection(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn);i.push(new a.ReplaceCommandThatSelectsText(d,r.getValueInRange(u)))}}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},t}(s.EditorAction);t.DuplicateSelectionAction=b;var S=function(e){function t(t,n){var i=e.call(this,n)||this;return i.down=t,i}return r(t,e),t.prototype.run=function(e,t){for(var n=[],i=t.getSelections()||[],o=t.getOption(8),r=0,s=i;r<s.length;r++){var a=s[r];n.push(new m.MoveLinesCommand(a,this.down,o))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()},t}(s.EditorAction),w=function(e){function t(){\nreturn e.call(this,!1,{id:\"editor.action.moveLinesUpAction\",label:n.localize(6,null),alias:\"Move Line Up\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(7,null),order:3}})||this}return r(t,e),t}(S),E=function(e){function t(){return e.call(this,!0,{id:\"editor.action.moveLinesDownAction\",label:n.localize(8,null),alias:\"Move Line Down\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:25,group:\"2_line\",title:n.localize(9,null),order:4}})||this}return r(t,e),t}(S),L=function(e){function t(t,n){var i=e.call(this,n)||this;return i.descending=t,i}return r(t,e),t.prototype.run=function(e,t){for(var n=t.getSelections()||[],i=0,o=n;i<o.length;i++){var r=o[i];if(!v.SortLinesCommand.canRun(t.getModel(),r,this.descending))return}\nfor(var s=[],a=0,l=n.length;a<l;a++)s[a]=new v.SortLinesCommand(n[a],this.descending);t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()},t}(s.EditorAction);t.AbstractSortLinesAction=L;var D=function(e){function t(){return e.call(this,!1,{id:\"editor.action.sortLinesAscending\",label:n.localize(10,null),alias:\"Sort Lines Ascending\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t}(L);t.SortLinesAscendingAction=D;var N=function(e){function t(){return e.call(this,!0,{id:\"editor.action.sortLinesDescending\",label:n.localize(11,null),alias:\"Sort Lines Descending\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t}(L);t.SortLinesDescendingAction=N;var x=function(e){function t(){return e.call(this,{id:t.ID,label:n.localize(12,null),alias:\"Trim Trailing Whitespace\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2102),weight:100}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=[]\n;\"auto-save\"===n.reason&&(i=(t.getSelections()||[]).map((function(e){return new c.Position(e.positionLineNumber,e.positionColumn)})));var o=t.getSelection();if(null!==o){var r=new l.TrimTrailingWhitespaceCommand(o,i);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop()}},t.ID=\"editor.action.trimTrailingWhitespace\",t}(s.EditorAction);t.TrimTrailingWhitespaceAction=x;var I=function(e){function t(){return e.call(this,{id:\"editor.action.deleteLines\",label:n.localize(13,null),alias:\"Delete Line\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:3113,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=this._getLinesToRemove(t),i=t.getModel();if(1!==i.getLineCount()||1!==i.getLineMaxColumn(1)){for(var o=0,r=[],s=[],a=0,l=n.length;a<l;a++){var u=n[a],c=u.startLineNumber,h=u.endLineNumber,g=1,f=i.getLineMaxColumn(h);h<i.getLineCount()?(h+=1,f=1):c>1&&(c-=1,g=i.getLineMaxColumn(c)),\nr.push(d.EditOperation.replace(new p.Selection(c,g,h,f),\"\")),s.push(new p.Selection(c-o,u.positionColumn,c-o,u.positionColumn)),o+=u.endLineNumber-u.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}},t.prototype._getLinesToRemove=function(e){var t=e.getSelections().map((function(e){var t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&1===e.endColumn&&(t-=1),{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}}));t.sort((function(e,t){return e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber}));for(var n=[],i=t[0],o=1;o<t.length;o++)i.endLineNumber+1>=t[o].startLineNumber?i.endLineNumber=t[o].endLineNumber:(n.push(i),i=t[o]);return n.push(i),n},t}(s.EditorAction);t.DeleteLinesAction=I;var M=function(e){function t(){return e.call(this,{id:\"editor.action.indentLines\",label:n.localize(14,null),alias:\"Indent Line\",\nprecondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2137,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.indent(n.context.config,t.getModel(),t.getSelections())),t.pushUndoStop())},t}(s.EditorAction);t.IndentLinesAction=M;var k=function(e){function t(){return e.call(this,{id:\"editor.action.outdentLines\",label:n.localize(15,null),alias:\"Outdent Line\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2135,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){o.CoreEditingCommands.Outdent.runEditorCommand(e,t,null)},t}(s.EditorAction),T=function(e){function t(){return e.call(this,{id:\"editor.action.insertLineBefore\",label:n.localize(16,null),alias:\"Insert Line Above\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})||this}\nreturn r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.lineInsertBefore(n.context.config,t.getModel(),t.getSelections())))},t}(s.EditorAction);t.InsertLineBeforeAction=T;var R=function(e){function t(){return e.call(this,{id:\"editor.action.insertLineAfter\",label:n.localize(17,null),alias:\"Insert Line Below\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t._getCursors();n&&(t.pushUndoStop(),t.executeCommands(this.id,u.TypeOperations.lineInsertAfter(n.context.config,t.getModel(),t.getSelections())))},t}(s.EditorAction);t.InsertLineAfterAction=R;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getSelection(),i=this._getRangesToDelete(t),o=[],r=0,s=i.length-1;r<s;r++){var a=i[r],l=i[r+1]\n;null===h.Range.intersectRanges(a,l)?o.push(a):i[r+1]=h.Range.plusRange(a,l)}o.push(i[i.length-1]);var u=this._getEndCursorState(n,o),c=o.map((function(e){return d.EditOperation.replace(e,\"\")}));t.pushUndoStop(),t.executeEdits(this.id,c,u),t.pushUndoStop()}},t}(s.EditorAction);t.AbstractDeleteAllToBoundaryAction=O;var P=function(e){function t(){return e.call(this,{id:\"deleteAllLeft\",label:n.localize(18,null),alias:\"Delete All Left\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})||this}return r(t,e),t.prototype._getEndCursorState=function(e,t){var n=null,i=[],o=0;return t.forEach((function(t){var r;if(1===t.endColumn&&o>0){var s=t.startLineNumber-o;r=new p.Selection(s,t.startColumn,s,t.startColumn)}else r=new p.Selection(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);o+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?n=r:i.push(r)})),n&&i.unshift(n),i},t.prototype._getRangesToDelete=function(e){\nvar t=e.getSelections();if(null===t)return[];var n=t,i=e.getModel();return null===i?[]:(n.sort(h.Range.compareRangesUsingStarts),n=n.map((function(e){if(e.isEmpty()){if(1===e.startColumn){var t=Math.max(1,e.startLineNumber-1),n=1===e.startLineNumber?1:i.getLineContent(t).length+1;return new h.Range(t,n,e.startLineNumber,1)}return new h.Range(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new h.Range(e.startLineNumber,1,e.endLineNumber,e.endColumn)})))},t}(O);t.DeleteAllLeftAction=P;var A=function(e){function t(){return e.call(this,{id:\"deleteAllRight\",label:n.localize(19,null),alias:\"Delete All Right\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})||this}return r(t,e),t.prototype._getEndCursorState=function(e,t){for(var n=null,i=[],o=0,r=t.length;o<r;o++){var s=t[o],a=new p.Selection(s.startLineNumber-0,s.startColumn,s.startLineNumber-0,s.startColumn);s.intersectRanges(e)?n=a:i.push(a)}\nreturn n&&i.unshift(n),i},t.prototype._getRangesToDelete=function(e){var t=e.getModel();if(null===t)return[];var n=e.getSelections();if(null===n)return[];var i=n.map((function(e){if(e.isEmpty()){var n=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===n?new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new h.Range(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e}));return i.sort(h.Range.compareRangesUsingStarts),i},t}(O);t.DeleteAllRightAction=A;var F=function(e){function t(){return e.call(this,{id:\"editor.action.joinLines\",label:n.localize(20,null),alias:\"Join Lines\",precondition:g.EditorContextKeys.writable,kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=t.getSelections();if(null!==n){var i=t.getSelection();if(null!==i){n.sort(h.Range.compareRangesUsingStarts);var o=[],r=n.reduce((function(e,t){\nreturn e.isEmpty()?e.endLineNumber===t.startLineNumber?(i.equalsSelection(e)&&(i=t),t):t.startLineNumber>e.endLineNumber+1?(o.push(e),t):new p.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new p.Selection(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)}));o.push(r);var s=t.getModel();if(null!==s){for(var a=[],l=[],u=i,c=0,g=0,f=o.length;g<f;g++){var m=o[g],v=m.startLineNumber,_=0,y=void 0,C=void 0,b=s.getLineContent(m.endLineNumber).length-m.endColumn;if(m.isEmpty()||m.startLineNumber===m.endLineNumber){var S=m.getStartPosition();S.lineNumber<s.getLineCount()?(y=v+1,C=s.getLineMaxColumn(y)):(y=S.lineNumber,C=s.getLineMaxColumn(S.lineNumber))}else y=m.endLineNumber,C=s.getLineMaxColumn(y);for(var w=s.getLineContent(v),E=v+1;E<=y;E++){var L=s.getLineContent(E),D=s.getLineFirstNonWhitespaceColumn(E);if(D>=1){var N=!0;\"\"===w&&(N=!1),!N||\" \"!==w.charAt(w.length-1)&&\"\\t\"!==w.charAt(w.length-1)||(N=!1,\nw=w.replace(/[\\s\\uFEFF\\xA0]+$/g,\" \"));var x=L.substr(D-1);w+=(N?\" \":\"\")+x,_=N?x.length+1:x.length}else _=0}var I=new h.Range(v,1,y,C);if(!I.isEmpty()){var M=void 0;m.isEmpty()?(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(I.startLineNumber-c,w.length-_+1,v-c,w.length-_+1)):m.startLineNumber===m.endLineNumber?(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(m.startLineNumber-c,m.startColumn,m.endLineNumber-c,m.endColumn)):(a.push(d.EditOperation.replace(I,w)),M=new p.Selection(m.startLineNumber-c,m.startColumn,m.startLineNumber-c,w.length-b)),null!==h.Range.intersectRanges(I,i)?u=M:l.push(M)}c+=I.endLineNumber-I.startLineNumber}l.unshift(u),t.pushUndoStop(),t.executeEdits(this.id,a,l),t.pushUndoStop()}}}},t}(s.EditorAction);t.JoinLinesAction=F;var W=function(e){function t(){return e.call(this,{id:\"editor.action.transpose\",label:n.localize(21,null),alias:\"Transpose characters around the cursor\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype.run=function(e,t){\nvar n=t.getSelections();if(null!==n){var i=t.getModel();if(null!==i){for(var o=[],r=0,s=n.length;r<s;r++){var l=n[r];if(l.isEmpty()){var u=l.getStartPosition(),d=i.getLineMaxColumn(u.lineNumber);if(u.column>=d){if(u.lineNumber===i.getLineCount())continue;var c=new h.Range(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),g=i.getValueInRange(c).split(\"\").reverse().join(\"\");o.push(new a.ReplaceCommand(new p.Selection(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),g))}else{c=new h.Range(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),g=i.getValueInRange(c).split(\"\").reverse().join(\"\");o.push(new a.ReplaceCommandThatPreservesSelection(c,g,new p.Selection(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}},t}(s.EditorAction);t.TransposeAction=W;var B=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=t.getSelections();if(null!==n){var i=t.getModel()\n;if(null!==i){for(var o=t.getOption(96),r=[],s=0,l=n.length;s<l;s++){var u=n[s];if(u.isEmpty()){var d=u.getStartPosition(),c=i.getWordAtPosition(d);if(!c)continue;var g=new h.Range(d.lineNumber,c.startColumn,d.lineNumber,c.endColumn),f=i.getValueInRange(g);r.push(new a.ReplaceCommandThatPreservesSelection(g,this._modifyText(f,o),new p.Selection(d.lineNumber,d.column,d.lineNumber,d.column)))}else{f=i.getValueInRange(u);r.push(new a.ReplaceCommandThatPreservesSelection(u,this._modifyText(f,o),u))}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}},t}(s.EditorAction);t.AbstractCaseAction=B;var V=function(e){function t(){return e.call(this,{id:\"editor.action.transformToUppercase\",label:n.localize(22,null),alias:\"Transform to Uppercase\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){return e.toLocaleUpperCase()},t}(B);t.UpperCaseAction=V;var z=function(e){function t(){return e.call(this,{id:\"editor.action.transformToLowercase\",\nlabel:n.localize(23,null),alias:\"Transform to Lowercase\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){return e.toLocaleLowerCase()},t}(B);t.LowerCaseAction=z;var H=function(e){function t(){return e.call(this,{id:\"editor.action.transformToTitlecase\",label:n.localize(24,null),alias:\"Transform to Title Case\",precondition:g.EditorContextKeys.writable})||this}return r(t,e),t.prototype._modifyText=function(e,t){for(var n=(\"\\r\\n\\t \"+t).split(\"\"),i=\"\",o=!0,r=0;r<e.length;r++){var s=e[r];n.indexOf(s)>=0?(o=!0,i+=s):o?(o=!1,i+=s.toLocaleUpperCase()):i+=s.toLocaleLowerCase()}return i},t}(B);t.TitleCaseAction=H,s.registerEditorAction(y),s.registerEditorAction(C),s.registerEditorAction(b),s.registerEditorAction(w),s.registerEditorAction(E),s.registerEditorAction(D),s.registerEditorAction(N),s.registerEditorAction(x),s.registerEditorAction(I),s.registerEditorAction(M),s.registerEditorAction(k),s.registerEditorAction(T),s.registerEditorAction(R),\ns.registerEditorAction(P),s.registerEditorAction(A),s.registerEditorAction(F),s.registerEditorAction(W),s.registerEditorAction(V),s.registerEditorAction(z),s.registerEditorAction(H)})),define(n[165],i([0,1,15,10,12,17,18,26]),(function(e,t,n,i,o,r,s,a){\"use strict\";function l(e,t,o,s){var a=r.SignatureHelpProviderRegistry.ordered(e);return n.first(a.map((function(n){return function(){return Promise.resolve(n.provideSignatureHelp(e,t,s,o)).catch((function(e){return i.onUnexpectedExternalError(e)}))}})))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.Context={Visible:new s.RawContextKey(\"parameterHintsVisible\",!1),MultipleSignatures:new s.RawContextKey(\"parameterHintsMultipleSignatures\",!1)},t.provideSignatureHelp=l,o.registerDefaultLanguageCommand(\"_executeSignatureHelpProvider\",(function(e,t,n){return d(void 0,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return[4,l(e,t,{triggerKind:r.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:n.triggerCharacter\n},a.CancellationToken.None)];case 1:return(i=o.sent())?(setTimeout((function(){return i.dispose()}),0),[2,i.value]):[2,void 0]}}))}))}))})),define(n[540],i([0,1,15,10,4,2,79,17,165]),(function(e,t,n,i,o,s,a,u,h){\"use strict\";var p;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Default={type:0};var t=function(e){this.request=e,this.type=2};e.Pending=t;var n=function(e){this.hints=e,this.type=1};e.Active=n}(p||(p={}));var g=function(e){function t(i,r){void 0===r&&(r=t.DEFAULT_DELAY);var l=e.call(this)||this;return l._onChangedHints=l._register(new o.Emitter),l.onChangedHints=l._onChangedHints.event,l.triggerOnType=!1,l._state=p.Default,l._pendingTriggers=[],l._lastSignatureHelpResult=l._register(new s.MutableDisposable),l.triggerChars=new a.CharacterSet,l.retriggerChars=new a.CharacterSet,l.triggerId=0,l.editor=i,l.throttledDelayer=new n.Delayer(r),l._register(l.editor.onDidChangeConfiguration((function(){return l.onEditorConfigurationChange()}))),\nl._register(l.editor.onDidChangeModel((function(e){return l.onModelChanged()}))),l._register(l.editor.onDidChangeModelLanguage((function(e){return l.onModelChanged()}))),l._register(l.editor.onDidChangeCursorSelection((function(e){return l.onCursorChange(e)}))),l._register(l.editor.onDidChangeModelContent((function(e){return l.onModelContentChange()}))),l._register(u.SignatureHelpProviderRegistry.onDidChange(l.onModelChanged,l)),l._register(l.editor.onDidType((function(e){return l.onDidType(e)}))),l.onEditorConfigurationChange(),l.onModelChanged(),l}return r(t,e),Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){2===this._state.type&&this._state.request.cancel(),this._state=e},enumerable:!0,configurable:!0}),t.prototype.cancel=function(e){void 0===e&&(e=!1),this.state=p.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)},t.prototype.trigger=function(e,t){var n=this,o=this.editor.getModel();if(o&&u.SignatureHelpProviderRegistry.has(o)){\nvar r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((function(){return n.doTrigger(r)}),t).catch(i.onUnexpectedError)}},t.prototype.next=function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t%e==e-1,i=this.editor.getOption(64).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?0:t+1):this.cancel()}},t.prototype.previous=function(){if(1===this.state.type){var e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=0===t,i=this.editor.getOption(64).cycle;!(e<2||n)||i?this.updateActiveSignature(n&&i?e-1:t-1):this.cancel()}},t.prototype.updateActiveSignature=function(e){1===this.state.type&&(this.state=new p.Active(l(l({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))},t.prototype.doTrigger=function(e){return d(this,void 0,void 0,(function(){var t,o,r,s,a,l,u,d;return c(this,(function(c){switch(c.label){case 0:if(t=1===this.state.type||2===this.state.type,\no=1===this.state.type?this.state.hints:void 0,this.cancel(!0),0===this._pendingTriggers.length)return[2,!1];if(r=this._pendingTriggers.reduce(f),this._pendingTriggers=[],s={triggerKind:r.triggerKind,triggerCharacter:r.triggerCharacter,isRetrigger:t,activeSignatureHelp:o},!this.editor.hasModel())return[2,!1];a=this.editor.getModel(),l=this.editor.getPosition(),this.state=new p.Pending(n.createCancelablePromise((function(e){return h.provideSignatureHelp(a,l,s,e)}))),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,this.state.request];case 2:return u=c.sent(),e!==this.triggerId?(null==u||u.dispose(),[2,!1]):u&&u.value.signatures&&0!==u.value.signatures.length?(this.state=new p.Active(u.value),this._lastSignatureHelpResult.value=u,this._onChangedHints.fire(this.state.hints),[2,!0]):(null==u||u.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),[2,!1]);case 3:return d=c.sent(),e===this.triggerId&&(this.state=p.Default),i.onUnexpectedError(d),[2,!1];case 4:return[2]}}))}))},\nObject.defineProperty(t.prototype,\"isTriggered\",{get:function(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()},enumerable:!0,configurable:!0}),t.prototype.onModelChanged=function(){this.cancel(),this.triggerChars=new a.CharacterSet,this.retriggerChars=new a.CharacterSet;var e=this.editor.getModel();if(e)for(var t=0,n=u.SignatureHelpProviderRegistry.ordered(e);t<n.length;t++){for(var i=n[t],o=0,r=i.signatureHelpTriggerCharacters||[];o<r.length;o++){var s=r[o];this.triggerChars.add(s.charCodeAt(0)),this.retriggerChars.add(s.charCodeAt(0))}for(var l=0,d=i.signatureHelpRetriggerCharacters||[];l<d.length;l++){s=d[l];this.retriggerChars.add(s.charCodeAt(0))}}},t.prototype.onDidType=function(e){if(this.triggerOnType){var t=e.length-1,n=e.charCodeAt(t);(this.triggerChars.has(n)||this.isTriggered&&this.retriggerChars.has(n))&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:e.charAt(t)})}},t.prototype.onCursorChange=function(e){\n\"mouse\"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.ContentChange})},t.prototype.onModelContentChange=function(){this.isTriggered&&this.trigger({triggerKind:u.SignatureHelpTriggerKind.ContentChange})},t.prototype.onEditorConfigurationChange=function(){this.triggerOnType=this.editor.getOption(64).enabled,this.triggerOnType||this.cancel()},t.prototype.dispose=function(){this.cancel(!0),e.prototype.dispose.call(this)},t.DEFAULT_DELAY=120,t}(s.Disposable);function f(e,t){switch(t.triggerKind){case u.SignatureHelpTriggerKind.Invoke:return t;case u.SignatureHelpTriggerKind.ContentChange:return e;case u.SignatureHelpTriggerKind.TriggerCharacter:default:return t}}t.ParameterHintsModel=g})),define(n[541],i([0,1,19,26,12,13,3,22,23,17,465,2,388,202,29,10]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(){function e(e,t){this.index=e,this.ranges=t}return e.prototype.mov=function(t){\nvar n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;var i=new e(n,this.ranges);return i.ranges[n].equalsRange(this.ranges[this.index])?i.mov(t):i},e}(),C=function(){function e(e){this._ignoreSelection=!1,this._editor=e}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){g.dispose(this._selectionListener)},e.prototype.run=function(e){var t=this;if(this._editor.hasModel()){var o=this._editor.getSelections(),r=this._editor.getModel();if(h.SelectionRangeRegistry.has(r)){var s=Promise.resolve(void 0);return this._state||(s=E(r,o.map((function(e){return e.getPosition()})),i.CancellationToken.None).then((function(e){if(n.isNonEmptyArray(e)&&e.length===o.length&&t._editor.hasModel()&&n.equals(t._editor.getSelections(),o,(function(e,t){return e.equalsSelection(t)}))){for(var i=function(t){e[t]=e[t].filter((function(e){return e.containsPosition(o[t].getStartPosition())&&e.containsPosition(o[t].getEndPosition())})),e[t].unshift(o[t])},r=0;r<e.length;r++)i(r)\n;t._state=e.map((function(e){return new y(0,e)})),g.dispose(t._selectionListener),t._selectionListener=t._editor.onDidChangeCursorPosition((function(){t._ignoreSelection||(g.dispose(t._selectionListener),t._state=void 0)}))}}))),s.then((function(){if(t._state){t._state=t._state.map((function(t){return t.mov(e)}));var n=t._state.map((function(e){return l.Selection.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())}));t._ignoreSelection=!0;try{t._editor.setSelections(n)}finally{t._ignoreSelection=!1}}}))}}},e.ID=\"editor.contrib.smartSelectController\",e}(),b=function(e){function t(t,n){var i=e.call(this,n)||this;return i._forward=t,i}return r(t,e),t.prototype.run=function(e,t){return d(this,void 0,void 0,(function(){var e;return c(this,(function(n){switch(n.label){case 0:return(e=C.get(t))?[4,e.run(this._forward)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))},t}(o.EditorAction),S=function(e){function t(){return e.call(this,!0,{id:\"editor.action.smartSelect.expand\",\nlabel:p.localize(0,null),alias:\"Expand Selection\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:25,group:\"1_basic\",title:p.localize(1,null),order:2}})||this}return r(t,e),t}(b);v.CommandsRegistry.registerCommandAlias(\"editor.action.smartSelect.grow\",\"editor.action.smartSelect.expand\");var w=function(e){function t(){return e.call(this,!1,{id:\"editor.action.smartSelect.shrink\",label:p.localize(2,null),alias:\"Shrink Selection\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:25,group:\"1_basic\",title:p.localize(3,null),order:3}})||this}return r(t,e),t}(b);function E(e,t,i){var o=h.SelectionRangeRegistry.all(e);1===o.length&&o.unshift(new m.BracketSelectionRangeProvider);for(var r=[],l=[],u=0,d=o;u<d.length;u++){var c=d[u];r.push(Promise.resolve(c.provideSelectionRanges(e,t,i)).then((function(e){\nif(n.isNonEmptyArray(e)&&e.length===t.length)for(var i=0;i<t.length;i++){l[i]||(l[i]=[]);for(var o=0,r=e[i];o<r.length;o++){var s=r[o];a.Range.isIRange(s.range)&&a.Range.containsPosition(s.range,t[i])&&l[i].push(a.Range.lift(s.range))}}}),_.onUnexpectedExternalError))}return Promise.all(r).then((function(){return l.map((function(t){if(0===t.length)return[];t.sort((function(e,t){return s.Position.isBefore(e.getStartPosition(),t.getStartPosition())?1:s.Position.isBefore(t.getStartPosition(),e.getStartPosition())?-1:s.Position.isBefore(e.getEndPosition(),t.getEndPosition())?-1:s.Position.isBefore(t.getEndPosition(),e.getEndPosition())?1:0}));for(var n,i=[],o=0,r=t;o<r.length;o++){var l=r[o];(!n||a.Range.containsRange(l,n)&&!a.Range.equalsRange(l,n))&&(i.push(l),n=l)}for(var u=[i[0]],d=1;d<i.length;d++){var c=i[d-1],h=i[d];if(h.startLineNumber!==c.startLineNumber||h.endLineNumber!==c.endLineNumber){\nvar p=new a.Range(c.startLineNumber,e.getLineFirstNonWhitespaceColumn(c.startLineNumber),c.endLineNumber,e.getLineLastNonWhitespaceColumn(c.endLineNumber));p.containsRange(c)&&!p.equalsRange(c)&&h.containsRange(p)&&!h.equalsRange(p)&&u.push(p);var g=new a.Range(c.startLineNumber,1,c.endLineNumber,e.getLineMaxColumn(c.endLineNumber));g.containsRange(c)&&!g.equalsRange(p)&&h.containsRange(g)&&!h.equalsRange(g)&&u.push(g)}u.push(h)}return u}))}))}o.registerEditorContribution(C.ID,C),o.registerEditorAction(S),o.registerEditorAction(w),h.SelectionRangeRegistry.register(\"*\",new f.WordSelectionRangeProvider),t.provideSelectionRanges=E,o.registerModelCommand(\"_executeSelectionRangeProvider\",(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var o=t[0];return E(e,o,i.CancellationToken.None)}))})),define(n[120],i([0,1,15,31,10,12,17,13,18,26,3,61,2]),(function(e,t,n,i,o,r,s,a,l,u,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Context={\nVisible:new l.RawContextKey(\"suggestWidgetVisible\",!1),MultipleSuggestions:new l.RawContextKey(\"suggestWidgetMultipleSuggestions\",!1),MakesTextEdit:new l.RawContextKey(\"suggestionMakesTextEdit\",!0),AcceptSuggestionsOnEnter:new l.RawContextKey(\"acceptSuggestionOnEnter\",!0)};var f=function(e,t,n,r,s){var l=this;this.position=e,this.completion=t,this.container=n,this.provider=r,this.isResolved=!1,this.score=p.FuzzyScore.Default,this.distance=0,this.textLabel=\"string\"==typeof t.label?t.label:t.label.name,this.labelLow=this.textLabel.toLowerCase(),this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),h.Range.isIRange(t.range)?(this.editStart=new a.Position(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new a.Position(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new a.Position(t.range.endLineNumber,t.range.endColumn)):(this.editStart=new a.Position(t.range.insert.startLineNumber,t.range.insert.startColumn),\nthis.editInsertEnd=new a.Position(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new a.Position(t.range.replace.endLineNumber,t.range.replace.endColumn));var u,d=r.resolveCompletionItem;\"function\"!=typeof d?(this.resolve=function(){return Promise.resolve()},this.isResolved=!0):this.resolve=function(n){return u||(u=Promise.resolve(d.call(r,s,e,t,n)).then((function(e){i.assign(t,e),l.isResolved=!0}),(function(e){o.isPromiseCanceledError(e)&&(u=void 0)})),n.onCancellationRequested((function(){l.isResolved||(u=void 0)}))),u}};t.CompletionItem=f;var m,v=function(){function e(e,t,n){void 0===e&&(e=2),void 0===t&&(t=new Set),void 0===n&&(n=new Set),this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=n}return e.default=new e,e}();function _(e,t,i,r,a){void 0===i&&(i=v.default),void 0===r&&(r={triggerKind:0}),void 0===a&&(a=u.CancellationToken.None)\n;var l=e.getWordAtPosition(t),d=l?new h.Range(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):h.Range.fromPositions(t),c=d.setEndPosition(t.lineNumber,t.column);t=t.clone();var p=s.CompletionProviderRegistry.orderedGroups(e);!i.kindFilter.has(25)&&m&&p.unshift([m]);var _=[],y=new g.DisposableStore,C=!1,S=p.map((function(n){return function(){return Promise.all(n.map((function(n){if(!(i.providerFilter.size>0)||i.providerFilter.has(n))return Promise.resolve(n.provideCompletionItems(e,t,r,a)).then((function(o){var r=_.length;if(o){for(var s=0,a=o.suggestions||[];s<a.length;s++){var l=a[s];i.kindFilter.has(l.kind)||(l.range||(l.range={insert:c,replace:d}),l.sortText||(l.sortText=\"string\"==typeof l.label?l.label:l.label.name),_.push(new f(t,l,o,n,e)))}g.isDisposable(o)&&y.add(o)}r!==_.length&&n!==m&&(C=!0)}),o.onUnexpectedExternalError)})))}}));return n.first(S,(function(){return C||a.isCancellationRequested})).then((function(){return a.isCancellationRequested?(y.dispose(),\nPromise.reject(o.canceled())):_.sort(b(i.snippetSortOrder))}))}function y(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.completion.label<t.completion.label?-1:e.completion.label>t.completion.label?1:e.completion.kind-t.completion.kind}t.CompletionOptions=v,t.getSnippetSuggestSupport=function(){return m},t.provideSuggestionItems=_;var C=new Map;function b(e){return C.get(e)}C.set(0,(function(e,t){if(e.completion.kind!==t.completion.kind){if(25===e.completion.kind)return-1;if(25===t.completion.kind)return 1}return y(e,t)})),C.set(2,(function(e,t){if(e.completion.kind!==t.completion.kind){if(25===e.completion.kind)return 1;if(25===t.completion.kind)return-1}return y(e,t)})),C.set(1,y),t.getSuggestionComparator=b,r.registerDefaultLanguageCommand(\"_executeCompletionItemProvider\",(function(e,t,n){return d(void 0,void 0,void 0,(function(){var i,o,r,s,a,l,d,h;return c(this,(function(c){switch(c.label){case 0:return i={incomplete:!1,\nsuggestions:[]},o=new g.DisposableStore,r=[],s=n.maxItemsToResolve||0,[4,_(e,t)];case 1:for(a=c.sent(),l=0,d=a;l<d.length;l++)h=d[l],r.length<s&&r.push(h.resolve(u.CancellationToken.None)),i.incomplete=i.incomplete||h.container.incomplete,i.suggestions.push(h.completion),g.isDisposable(h.container)&&o.add(h.container);c.label=2;case 2:return c.trys.push([2,,4,5]),[4,Promise.all(r)];case 3:return c.sent(),[2,i];case 4:return setTimeout((function(){return o.dispose()}),100),[7];case 5:return[2]}}))}))}));var S=new(function(){function e(){this.onlyOnceSuggestions=[]}return e.prototype.provideCompletionItems=function(){var e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e},e}());s.CompletionProviderRegistry.register(\"*\",S),t.showSimpleSuggestions=function(e,t){setTimeout((function(){var n;(n=S.onlyOnceSuggestions).push.apply(n,t),e.getContribution(\"editor.contrib.suggestController\").triggerSuggest((new Set).add(S))}),0)}})),\ndefine(n[225],i([0,1,469,50,12,163]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(){return e.call(this,{id:t.ID,label:n.localize(0,null),alias:\"Toggle Tab Key Moves Focus\",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var o=!s.TabFocus.getTabFocusMode();s.TabFocus.setTabFocusMode(o),o?i.alert(n.localize(1,null)):i.alert(n.localize(2,null))},t.ID=\"editor.action.toggleTabFocusMode\",t}(o.EditorAction);t.ToggleTabFocusModeAction=a,o.registerEditorAction(a)})),define(n[542],i([0,1,470,12,132]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return e.call(this,{id:\"editor.action.forceRetokenize\",label:n.localize(0,null),alias:\"Developer: Force Retokenize\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=t.getModel();n.resetTokenization()\n;var i=new o.StopWatch(!0);n.forceTokenization(n.getLineCount()),i.stop(),console.log(\"tokenization took \"+i.elapsed())}},t}(i.EditorAction);i.registerEditorAction(s)})),define(n[226],i([0,1,12,80,40,160,89,13,3,22,23,64,18,33]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n._wordNavigationType=t.wordNavigationType,n}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this;if(t.hasModel()){var r=a.getMapForWordSeparators(t.getOption(96)),s=t.getModel(),u=t.getSelections().map((function(e){var t=new l.Position(e.positionLineNumber,e.positionColumn),n=i._move(r,s,t,i._wordNavigationType);return i._moveTo(e,n,i._inSelectionMode)}));if(t._getCursors().setStates(\"moveWordCommand\",0,u.map((function(e){return o.CursorState.fromModelSelection(e)}))),1===u.length){var d=new l.Position(u[0].positionLineNumber,u[0].positionColumn)\n;t.revealPosition(d,0)}}},t.prototype._moveTo=function(e,t,n){return n?new d.Selection(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new d.Selection(t.lineNumber,t.column,t.lineNumber,t.column)},t}(n.EditorCommand);t.MoveWordCommand=f;var m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,i){return s.WordOperations.moveWordLeft(e,t,n,i)},t}(f);t.WordLeftCommand=m;var v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,i){return s.WordOperations.moveWordRight(e,t,n,i)},t}(f);t.WordRightCommand=v;var _=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordStartLeft\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2063,mac:{primary:527},weight:100}})||this}return r(t,e),t}(m);t.CursorWordStartLeft=_;var y=function(e){function t(){return e.call(this,{inSelectionMode:!1,\nwordNavigationType:2,id:\"cursorWordEndLeft\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordEndLeft=y;var C=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:1,id:\"cursorWordLeft\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordLeft=C;var b=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartLeftSelect\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3087,mac:{primary:1551},weight:100}})||this}return r(t,e),t}(m);t.CursorWordStartLeftSelect=b;var S=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndLeftSelect\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordEndLeftSelect=S;var w=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:1,id:\"cursorWordLeftSelect\",precondition:void 0})||this}return r(t,e),t}(m);t.CursorWordLeftSelect=w;var E=function(e){function t(){return e.call(this,{\ninSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityLeft\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2063},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(m);t.CursorWordAccessibilityLeft=E;var L=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityLeftSelect\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3087},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(m);t.CursorWordAccessibilityLeftSelect=L;var D=function(e){function t(){return e.call(this,{inSelectionMode:!1,\nwordNavigationType:0,id:\"cursorWordStartRight\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordStartRight=D;var N=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordEndRight\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2065,mac:{primary:529},weight:100}})||this}return r(t,e),t}(v);t.CursorWordEndRight=N;var x=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordRight\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordRight=x;var I=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartRightSelect\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordStartRightSelect=I;var M=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndRightSelect\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:3089,mac:{primary:1553},weight:100}})||this}\nreturn r(t,e),t}(v);t.CursorWordEndRightSelect=M;var k=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordRightSelect\",precondition:void 0})||this}return r(t,e),t}(v);t.CursorWordRightSelect=k;var T=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityRight\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:2065},weight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(v);t.CursorWordAccessibilityRight=T;var R=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityRightSelect\",precondition:void 0,kbOpts:{kbExpr:p.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.CONTEXT_ACCESSIBILITY_MODE_ENABLED),win:{primary:3089},\nweight:101}})||this}return r(t,e),t.prototype._move=function(t,n,i,o){return e.prototype._move.call(this,a.getMapForWordSeparators(g.EditorOptions.wordSeparators.defaultValue),n,i,o)},t}(v);t.CursorWordAccessibilityRightSelect=R;var O=function(e){function t(t){var n=e.call(this,t)||this;return n._whitespaceHeuristics=t.whitespaceHeuristics,n._wordNavigationType=t.wordNavigationType,n}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var o=this;if(t.hasModel()){var r=a.getMapForWordSeparators(t.getOption(96)),s=t.getModel(),l=t.getSelections().map((function(e){var t=o._delete(r,s,e,o._whitespaceHeuristics,o._wordNavigationType);return new i.ReplaceCommand(t,\"\")}));t.pushUndoStop(),t.executeCommands(this.id,l),t.pushUndoStop()}},t}(n.EditorCommand);t.DeleteWordCommand=O;var P=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._delete=function(e,t,n,i,o){var r=s.WordOperations.deleteWordLeft(e,t,n,i,o);return r||new u.Range(1,1,1,1)},t}(O)\n;t.DeleteWordLeftCommand=P;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._delete=function(e,t,n,i,o){var r=s.WordOperations.deleteWordRight(e,t,n,i,o);if(r)return r;var a=t.getLineCount(),l=t.getLineMaxColumn(a);return new u.Range(a,l,a,l)},t}(O);t.DeleteWordRightCommand=A;var F=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartLeft\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(P);t.DeleteWordStartLeft=F;var W=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndLeft\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(P);t.DeleteWordEndLeft=W;var B=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordLeft\",precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})||this}\nreturn r(t,e),t}(P);t.DeleteWordLeft=B;var V=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartRight\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(A);t.DeleteWordStartRight=V;var z=function(e){function t(){return e.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndRight\",precondition:c.EditorContextKeys.writable})||this}return r(t,e),t}(A);t.DeleteWordEndRight=z;var H=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordRight\",precondition:c.EditorContextKeys.writable,kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})||this}return r(t,e),t}(A);t.DeleteWordRight=H,n.registerEditorCommand(new _),n.registerEditorCommand(new y),n.registerEditorCommand(new C),n.registerEditorCommand(new b),n.registerEditorCommand(new S),n.registerEditorCommand(new w),n.registerEditorCommand(new D),n.registerEditorCommand(new N),\nn.registerEditorCommand(new x),n.registerEditorCommand(new I),n.registerEditorCommand(new M),n.registerEditorCommand(new k),n.registerEditorCommand(new E),n.registerEditorCommand(new L),n.registerEditorCommand(new T),n.registerEditorCommand(new R),n.registerEditorCommand(new F),n.registerEditorCommand(new W),n.registerEditorCommand(new B),n.registerEditorCommand(new V),n.registerEditorCommand(new z),n.registerEditorCommand(new H)})),define(n[543],i([0,1,12,160,3,23,226,29]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordPartLeft\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})||this}return r(t,e),t.prototype._delete=function(e,t,n,r,s){var a=i.WordPartOperations.deleteWordPartLeft(e,t,n,r);return a||new o.Range(1,1,1,1)},t}(a.DeleteWordCommand);t.DeleteWordPartLeft=u\n;var d=function(e){function t(){return e.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordPartRight\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})||this}return r(t,e),t.prototype._delete=function(e,t,n,r,s){var a=i.WordPartOperations.deleteWordPartRight(e,t,n,r);if(a)return a;var l=t.getLineCount(),u=t.getLineMaxColumn(l);return new o.Range(l,u,l,u)},t}(a.DeleteWordCommand);t.DeleteWordPartRight=d;var c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,o){return i.WordPartOperations.moveWordPartLeft(e,t,n)},t}(a.MoveWordCommand);t.WordPartLeftCommand=c;var h=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordPartLeft\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})||this}return r(t,e),t}(c);t.CursorWordPartLeft=h,\nl.CommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeft\",\"cursorWordPartLeft\");var p=function(e){function t(){return e.call(this,{inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordPartLeftSelect\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})||this}return r(t,e),t}(c);t.CursorWordPartLeftSelect=p,l.CommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeftSelect\",\"cursorWordPartLeftSelect\");var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._move=function(e,t,n,o){return i.WordPartOperations.moveWordPartRight(e,t,n)},t}(a.MoveWordCommand);t.WordPartRightCommand=g;var f=function(e){function t(){return e.call(this,{inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordPartRight\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})||this}return r(t,e),t}(g);t.CursorWordPartRight=f;var m=function(e){function t(){\nreturn e.call(this,{inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordPartRightSelect\",precondition:void 0,kbOpts:{kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})||this}return r(t,e),t}(g);t.CursorWordPartRightSelect=m,n.registerEditorCommand(new u),n.registerEditorCommand(new d),n.registerEditorCommand(new h),n.registerEditorCommand(new p),n.registerEditorCommand(new f),n.registerEditorCommand(new m)})),define(n[544],i([0,1,24,6,2,12,326]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var i=e.call(this)||this;return i.editor=t,i.widget=null,n.isIPad&&(i._register(t.onDidChangeConfiguration((function(){return i.update()}))),i.update()),i}return r(t,e),t.prototype.update=function(){var e=!this.editor.getOption(68);!this.widget&&e?this.widget=new l(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)},t.prototype.dispose=function(){e.prototype.dispose.call(this),\nthis.widget&&(this.widget.dispose(),this.widget=null)},t.ID=\"editor.contrib.iPadShowKeyboard\",t}(o.Disposable);t.IPadShowKeyboard=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.editor=t,n._domNode=document.createElement(\"textarea\"),n._domNode.className=\"iPadShowKeyboard\",n._register(i.addDisposableListener(n._domNode,\"touchstart\",(function(e){n.editor.focus()}))),n._register(i.addDisposableListener(n._domNode,\"focus\",(function(e){n.editor.focus()}))),n.editor.addOverlayWidget(n),n}return r(t,e),t.prototype.dispose=function(){this.editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{preference:1}},t.ID=\"editor.contrib.ShowKeyboardWidget\",t}(o.Disposable);s.registerEditorContribution(a.ID,a)})),define(n[545],i([0,1,12,94,59]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){\nvar t=e.call(this,{id:\"editor.action.toggleHighContrast\",label:o.ToggleHighContrastNLS.toggleHighContrast,alias:\"Toggle High Contrast Theme\",precondition:void 0})||this;return t._originalThemeName=null,t}return r(t,e),t.prototype.run=function(e,t){var n=e.get(i.IStandaloneThemeService);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getTheme().themeName,n.setTheme(\"hc-black\"))},t}(n.EditorAction);n.registerEditorAction(s)})),define(n[20],i([0,1,42,27,4,476,220,15]),(function(e,t,n,i,o,r,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Extensions={ColorContribution:\"base.contributions.colors\"};var l=new(function(){function e(){this._onDidChangeSchema=new o.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:\"object\",properties:{}},this.colorReferenceSchema={type:\"string\",enum:[],enumDescriptions:[]},this.colorsById={}}return e.prototype.registerColor=function(e,t,n,i,o){void 0===i&&(i=!1)\n;var r={id:e,description:n,defaults:t,needsTransparency:i,deprecationMessage:o};this.colorsById[e]=r;var s={type:\"string\",description:n,format:\"color-hex\",defaultSnippets:[{body:\"${1:#ff0000}\"}]};return o&&(s.deprecationMessage=o),this.colorSchema.properties[e]=s,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(n),this._onDidChangeSchema.fire(),e},e.prototype.resolveDefaultColor=function(e,t){var n=this.colorsById[e];if(n&&n.defaults)return g(n.defaults[t.type],t)},e.prototype.getColorSchema=function(){return this.colorSchema},e.prototype.toString=function(){var e=this;return Object.keys(this.colorsById).sort((function(e,t){var n=-1===e.indexOf(\".\")?0:1,i=-1===t.indexOf(\".\")?0:1;return n!==i?n-i:e.localeCompare(t)})).map((function(t){return\"- `\"+t+\"`: \"+e.colorsById[t].description})).join(\"\\n\")},e}());function u(e,t,n,i,o){return l.registerColor(e,t,n,i,o)}function d(e,t){return function(n){var i=g(e,n);if(i)return i.darken(t)}}function c(e,t){return function(n){\nvar i=g(e,n);if(i)return i.lighten(t)}}function h(e,t){return function(n){var i=g(e,n);if(i)return i.transparent(t)}}function p(e,t,n,o){return function(r){var s=g(e,r);if(s){var a=g(t,r);return a?s.isDarkerThan(a)?i.Color.getLighterColor(s,a,n).transparent(o):i.Color.getDarkerColor(s,a,n).transparent(o):s.transparent(n*o)}}}function g(e,t){if(null!==e)return\"string\"==typeof e?\"#\"===e[0]?i.Color.fromHex(e):t.getColor(e):e instanceof i.Color?e:\"function\"==typeof e?e(t):void 0}n.Registry.add(t.Extensions.ColorContribution,l),t.registerColor=u,t.foreground=u(\"foreground\",{dark:\"#CCCCCC\",light:\"#616161\",hc:\"#FFFFFF\"},r.localize(0,null)),t.errorForeground=u(\"errorForeground\",{dark:\"#F48771\",light:\"#A1260D\",hc:\"#F48771\"},r.localize(1,null)),t.focusBorder=u(\"focusBorder\",{dark:i.Color.fromHex(\"#0E639C\").transparent(.8),light:i.Color.fromHex(\"#007ACC\").transparent(.4),hc:\"#F38518\"},r.localize(2,null)),t.contrastBorder=u(\"contrastBorder\",{light:null,dark:null,hc:\"#6FC3DF\"},r.localize(3,null)),\nt.activeContrastBorder=u(\"contrastActiveBorder\",{light:null,dark:null,hc:t.focusBorder},r.localize(4,null)),t.textLinkForeground=u(\"textLink.foreground\",{light:\"#006AB1\",dark:\"#3794FF\",hc:\"#3794FF\"},r.localize(5,null)),t.textCodeBlockBackground=u(\"textCodeBlock.background\",{light:\"#dcdcdc66\",dark:\"#0a0a0a66\",hc:i.Color.black},r.localize(6,null)),t.widgetShadow=u(\"widget.shadow\",{dark:\"#000000\",light:\"#A8A8A8\",hc:null},r.localize(7,null)),t.inputBackground=u(\"input.background\",{dark:\"#3C3C3C\",light:i.Color.white,hc:i.Color.black},r.localize(8,null)),t.inputForeground=u(\"input.foreground\",{dark:t.foreground,light:t.foreground,hc:t.foreground},r.localize(9,null)),t.inputBorder=u(\"input.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(10,null)),t.inputActiveOptionBorder=u(\"inputOption.activeBorder\",{dark:\"#007ACC00\",light:\"#007ACC00\",hc:t.contrastBorder},r.localize(11,null)),t.inputActiveOptionBackground=u(\"inputOption.activeBackground\",{dark:h(t.focusBorder,.5),light:h(t.focusBorder,.3),hc:null\n},r.localize(12,null)),t.inputValidationInfoBackground=u(\"inputValidation.infoBackground\",{dark:\"#063B49\",light:\"#D6ECF2\",hc:i.Color.black},r.localize(13,null)),t.inputValidationInfoForeground=u(\"inputValidation.infoForeground\",{dark:null,light:null,hc:null},r.localize(14,null)),t.inputValidationInfoBorder=u(\"inputValidation.infoBorder\",{dark:\"#007acc\",light:\"#007acc\",hc:t.contrastBorder},r.localize(15,null)),t.inputValidationWarningBackground=u(\"inputValidation.warningBackground\",{dark:\"#352A05\",light:\"#F6F5D2\",hc:i.Color.black},r.localize(16,null)),t.inputValidationWarningForeground=u(\"inputValidation.warningForeground\",{dark:null,light:null,hc:null},r.localize(17,null)),t.inputValidationWarningBorder=u(\"inputValidation.warningBorder\",{dark:\"#B89500\",light:\"#B89500\",hc:t.contrastBorder},r.localize(18,null)),t.inputValidationErrorBackground=u(\"inputValidation.errorBackground\",{dark:\"#5A1D1D\",light:\"#F2DEDE\",hc:i.Color.black},r.localize(19,null)),\nt.inputValidationErrorForeground=u(\"inputValidation.errorForeground\",{dark:null,light:null,hc:null},r.localize(20,null)),t.inputValidationErrorBorder=u(\"inputValidation.errorBorder\",{dark:\"#BE1100\",light:\"#BE1100\",hc:t.contrastBorder},r.localize(21,null)),t.selectBackground=u(\"dropdown.background\",{dark:\"#3C3C3C\",light:i.Color.white,hc:i.Color.black},r.localize(22,null)),t.selectForeground=u(\"dropdown.foreground\",{dark:\"#F0F0F0\",light:null,hc:i.Color.white},r.localize(23,null)),t.pickerGroupForeground=u(\"pickerGroup.foreground\",{dark:\"#3794FF\",light:\"#0066BF\",hc:i.Color.white},r.localize(24,null)),t.pickerGroupBorder=u(\"pickerGroup.border\",{dark:\"#3F3F46\",light:\"#CCCEDB\",hc:i.Color.white},r.localize(25,null)),t.badgeBackground=u(\"badge.background\",{dark:\"#4D4D4D\",light:\"#C4C4C4\",hc:i.Color.black},r.localize(26,null)),t.badgeForeground=u(\"badge.foreground\",{dark:i.Color.white,light:\"#333\",hc:i.Color.white},r.localize(27,null)),t.scrollbarShadow=u(\"scrollbar.shadow\",{dark:\"#000000\",light:\"#DDDDDD\",hc:null\n},r.localize(28,null)),t.scrollbarSliderBackground=u(\"scrollbarSlider.background\",{dark:i.Color.fromHex(\"#797979\").transparent(.4),light:i.Color.fromHex(\"#646464\").transparent(.4),hc:h(t.contrastBorder,.6)},r.localize(29,null)),t.scrollbarSliderHoverBackground=u(\"scrollbarSlider.hoverBackground\",{dark:i.Color.fromHex(\"#646464\").transparent(.7),light:i.Color.fromHex(\"#646464\").transparent(.7),hc:h(t.contrastBorder,.8)},r.localize(30,null)),t.scrollbarSliderActiveBackground=u(\"scrollbarSlider.activeBackground\",{dark:i.Color.fromHex(\"#BFBFBF\").transparent(.4),light:i.Color.fromHex(\"#000000\").transparent(.6),hc:t.contrastBorder},r.localize(31,null)),t.progressBarBackground=u(\"progressBar.background\",{dark:i.Color.fromHex(\"#0E70C0\"),light:i.Color.fromHex(\"#0E70C0\"),hc:t.contrastBorder},r.localize(32,null)),t.editorErrorForeground=u(\"editorError.foreground\",{dark:\"#F48771\",light:\"#E51400\",hc:null},r.localize(33,null)),t.editorErrorBorder=u(\"editorError.border\",{dark:null,light:null,\nhc:i.Color.fromHex(\"#E47777\").transparent(.8)},r.localize(34,null)),t.editorWarningForeground=u(\"editorWarning.foreground\",{dark:\"#CCA700\",light:\"#E9A700\",hc:null},r.localize(35,null)),t.editorWarningBorder=u(\"editorWarning.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#FFCC00\").transparent(.8)},r.localize(36,null)),t.editorInfoForeground=u(\"editorInfo.foreground\",{dark:\"#75BEFF\",light:\"#75BEFF\",hc:null},r.localize(37,null)),t.editorInfoBorder=u(\"editorInfo.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#75BEFF\").transparent(.8)},r.localize(38,null)),t.editorHintForeground=u(\"editorHint.foreground\",{dark:i.Color.fromHex(\"#eeeeee\").transparent(.7),light:\"#6c6c6c\",hc:null},r.localize(39,null)),t.editorHintBorder=u(\"editorHint.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#eeeeee\").transparent(.8)},r.localize(40,null)),t.editorBackground=u(\"editor.background\",{light:\"#fffffe\",dark:\"#1E1E1E\",hc:i.Color.black},r.localize(41,null)),t.editorForeground=u(\"editor.foreground\",{light:\"#333333\",dark:\"#BBBBBB\",\nhc:i.Color.white},r.localize(42,null)),t.editorWidgetBackground=u(\"editorWidget.background\",{dark:\"#252526\",light:\"#F3F3F3\",hc:\"#0C141F\"},r.localize(43,null)),t.editorWidgetForeground=u(\"editorWidget.foreground\",{dark:t.foreground,light:t.foreground,hc:t.foreground},r.localize(44,null)),t.editorWidgetBorder=u(\"editorWidget.border\",{dark:\"#454545\",light:\"#C8C8C8\",hc:t.contrastBorder},r.localize(45,null)),t.editorWidgetResizeBorder=u(\"editorWidget.resizeBorder\",{light:null,dark:null,hc:null},r.localize(46,null)),t.editorSelectionBackground=u(\"editor.selectionBackground\",{light:\"#ADD6FF\",dark:\"#264F78\",hc:\"#f3f518\"},r.localize(47,null)),t.editorSelectionForeground=u(\"editor.selectionForeground\",{light:null,dark:null,hc:\"#000000\"},r.localize(48,null)),t.editorInactiveSelection=u(\"editor.inactiveSelectionBackground\",{light:h(t.editorSelectionBackground,.5),dark:h(t.editorSelectionBackground,.5),hc:h(t.editorSelectionBackground,.5)},r.localize(49,null),!0),\nt.editorSelectionHighlight=u(\"editor.selectionHighlightBackground\",{light:p(t.editorSelectionBackground,t.editorBackground,.3,.6),dark:p(t.editorSelectionBackground,t.editorBackground,.3,.6),hc:null},r.localize(50,null),!0),t.editorSelectionHighlightBorder=u(\"editor.selectionHighlightBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(51,null)),t.editorFindMatch=u(\"editor.findMatchBackground\",{light:\"#A8AC94\",dark:\"#515C6A\",hc:null},r.localize(52,null)),t.editorFindMatchHighlight=u(\"editor.findMatchHighlightBackground\",{light:\"#EA5C0055\",dark:\"#EA5C0055\",hc:null},r.localize(53,null),!0),t.editorFindRangeHighlight=u(\"editor.findRangeHighlightBackground\",{dark:\"#3a3d4166\",light:\"#b4b4b44d\",hc:null},r.localize(54,null),!0),t.editorFindMatchBorder=u(\"editor.findMatchBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(55,null)),t.editorFindMatchHighlightBorder=u(\"editor.findMatchHighlightBorder\",{light:null,dark:null,hc:t.activeContrastBorder},r.localize(56,null)),\nt.editorFindRangeHighlightBorder=u(\"editor.findRangeHighlightBorder\",{dark:null,light:null,hc:h(t.activeContrastBorder,.4)},r.localize(57,null),!0),t.editorHoverHighlight=u(\"editor.hoverHighlightBackground\",{light:\"#ADD6FF26\",dark:\"#264f7840\",hc:\"#ADD6FF26\"},r.localize(58,null),!0),t.editorHoverBackground=u(\"editorHoverWidget.background\",{light:t.editorWidgetBackground,dark:t.editorWidgetBackground,hc:t.editorWidgetBackground},r.localize(59,null)),t.editorHoverForeground=u(\"editorHoverWidget.foreground\",{light:t.editorWidgetForeground,dark:t.editorWidgetForeground,hc:t.editorWidgetForeground},r.localize(60,null)),t.editorHoverBorder=u(\"editorHoverWidget.border\",{light:t.editorWidgetBorder,dark:t.editorWidgetBorder,hc:t.editorWidgetBorder},r.localize(61,null)),t.editorHoverStatusBarBackground=u(\"editorHoverWidget.statusBarBackground\",{dark:c(t.editorHoverBackground,.2),light:d(t.editorHoverBackground,.05),hc:t.editorWidgetBackground},r.localize(62,null)),\nt.editorActiveLinkForeground=u(\"editorLink.activeForeground\",{dark:\"#4E94CE\",light:i.Color.blue,hc:i.Color.cyan},r.localize(63,null)),t.editorLightBulbForeground=u(\"editorLightBulb.foreground\",{dark:\"#FFCC00\",light:\"#DDB100\",hc:\"#FFCC00\"},r.localize(64,null)),t.editorLightBulbAutoFixForeground=u(\"editorLightBulbAutoFix.foreground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},r.localize(65,null)),t.defaultInsertColor=new i.Color(new i.RGBA(155,185,85,.2)),t.defaultRemoveColor=new i.Color(new i.RGBA(255,0,0,.2)),t.diffInserted=u(\"diffEditor.insertedTextBackground\",{dark:t.defaultInsertColor,light:t.defaultInsertColor,hc:null},r.localize(66,null),!0),t.diffRemoved=u(\"diffEditor.removedTextBackground\",{dark:t.defaultRemoveColor,light:t.defaultRemoveColor,hc:null},r.localize(67,null),!0),t.diffInsertedOutline=u(\"diffEditor.insertedTextBorder\",{dark:null,light:null,hc:\"#33ff2eff\"},r.localize(68,null)),t.diffRemovedOutline=u(\"diffEditor.removedTextBorder\",{dark:null,light:null,hc:\"#FF008F\"},r.localize(69,null)),\nt.diffBorder=u(\"diffEditor.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(70,null)),t.listFocusBackground=u(\"list.focusBackground\",{dark:\"#062F4A\",light:\"#D6EBFF\",hc:null},r.localize(71,null)),t.listFocusForeground=u(\"list.focusForeground\",{dark:null,light:null,hc:null},r.localize(72,null)),t.listActiveSelectionBackground=u(\"list.activeSelectionBackground\",{dark:\"#094771\",light:\"#0074E8\",hc:null},r.localize(73,null)),t.listActiveSelectionForeground=u(\"list.activeSelectionForeground\",{dark:i.Color.white,light:i.Color.white,hc:null},r.localize(74,null)),t.listInactiveSelectionBackground=u(\"list.inactiveSelectionBackground\",{dark:\"#37373D\",light:\"#E4E6F1\",hc:null},r.localize(75,null)),t.listInactiveSelectionForeground=u(\"list.inactiveSelectionForeground\",{dark:null,light:null,hc:null},r.localize(76,null)),t.listInactiveFocusBackground=u(\"list.inactiveFocusBackground\",{dark:null,light:null,hc:null},r.localize(77,null)),t.listHoverBackground=u(\"list.hoverBackground\",{dark:\"#2A2D2E\",light:\"#F0F0F0\",\nhc:null},r.localize(78,null)),t.listHoverForeground=u(\"list.hoverForeground\",{dark:null,light:null,hc:null},r.localize(79,null)),t.listDropBackground=u(\"list.dropBackground\",{dark:t.listFocusBackground,light:t.listFocusBackground,hc:null},r.localize(80,null)),t.listHighlightForeground=u(\"list.highlightForeground\",{dark:\"#0097fb\",light:\"#0066BF\",hc:t.focusBorder},r.localize(81,null)),t.listFilterWidgetBackground=u(\"listFilterWidget.background\",{light:\"#efc1ad\",dark:\"#653723\",hc:i.Color.black},r.localize(82,null)),t.listFilterWidgetOutline=u(\"listFilterWidget.outline\",{dark:i.Color.transparent,light:i.Color.transparent,hc:\"#f38518\"},r.localize(83,null)),t.listFilterWidgetNoMatchesOutline=u(\"listFilterWidget.noMatchesOutline\",{dark:\"#BE1100\",light:\"#BE1100\",hc:t.contrastBorder},r.localize(84,null)),t.treeIndentGuidesStroke=u(\"tree.indentGuidesStroke\",{dark:\"#585858\",light:\"#a9a9a9\",hc:\"#a9a9a9\"},r.localize(85,null)),t.menuBorder=u(\"menu.border\",{dark:null,light:null,hc:t.contrastBorder},r.localize(86,null)),\nt.menuForeground=u(\"menu.foreground\",{dark:t.selectForeground,light:t.foreground,hc:t.selectForeground},r.localize(87,null)),t.menuBackground=u(\"menu.background\",{dark:t.selectBackground,light:t.selectBackground,hc:t.selectBackground},r.localize(88,null)),t.menuSelectionForeground=u(\"menu.selectionForeground\",{dark:t.listActiveSelectionForeground,light:t.listActiveSelectionForeground,hc:t.listActiveSelectionForeground},r.localize(89,null)),t.menuSelectionBackground=u(\"menu.selectionBackground\",{dark:t.listActiveSelectionBackground,light:t.listActiveSelectionBackground,hc:t.listActiveSelectionBackground},r.localize(90,null)),t.menuSelectionBorder=u(\"menu.selectionBorder\",{dark:null,light:null,hc:t.activeContrastBorder},r.localize(91,null)),t.menuSeparatorBackground=u(\"menu.separatorBackground\",{dark:\"#BBBBBB\",light:\"#888888\",hc:t.contrastBorder},r.localize(92,null)),t.snippetTabstopHighlightBackground=u(\"editor.snippetTabstopHighlightBackground\",{dark:new i.Color(new i.RGBA(124,124,124,.3)),\nlight:new i.Color(new i.RGBA(10,50,100,.2)),hc:new i.Color(new i.RGBA(124,124,124,.3))},r.localize(93,null)),t.snippetTabstopHighlightBorder=u(\"editor.snippetTabstopHighlightBorder\",{dark:null,light:null,hc:null},r.localize(94,null)),t.snippetFinalTabstopHighlightBackground=u(\"editor.snippetFinalTabstopHighlightBackground\",{dark:null,light:null,hc:null},r.localize(95,null)),t.snippetFinalTabstopHighlightBorder=u(\"editor.snippetFinalTabstopHighlightBorder\",{dark:\"#525252\",light:new i.Color(new i.RGBA(10,50,100,.5)),hc:\"#525252\"},r.localize(96,null)),t.overviewRulerFindMatchForeground=u(\"editorOverviewRuler.findMatchForeground\",{dark:\"#d186167e\",light:\"#d186167e\",hc:\"#AB5A00\"},r.localize(97,null),!0),t.overviewRulerSelectionHighlightForeground=u(\"editorOverviewRuler.selectionHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hc:\"#A0A0A0CC\"},r.localize(98,null),!0),t.minimapFindMatch=u(\"minimap.findMatchHighlight\",{light:\"#d18616\",dark:\"#d18616\",hc:\"#AB5A00\"},r.localize(99,null),!0),\nt.minimapSelection=u(\"minimap.selectionHighlight\",{light:\"#ADD6FF\",dark:\"#264F78\",hc:\"#ffffff\"},r.localize(100,null),!0),t.minimapError=u(\"minimap.errorHighlight\",{dark:new i.Color(new i.RGBA(255,18,18,.7)),light:new i.Color(new i.RGBA(255,18,18,.7)),hc:new i.Color(new i.RGBA(255,50,50,1))},r.localize(101,null)),t.minimapWarning=u(\"minimap.warningHighlight\",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningBorder},r.localize(102,null)),t.problemsErrorIconForeground=u(\"problemsErrorIcon.foreground\",{dark:t.editorErrorForeground,light:t.editorErrorForeground,hc:t.editorErrorForeground},r.localize(103,null)),t.problemsWarningIconForeground=u(\"problemsWarningIcon.foreground\",{dark:t.editorWarningForeground,light:t.editorWarningForeground,hc:t.editorWarningForeground},r.localize(104,null)),t.problemsInfoIconForeground=u(\"problemsInfoIcon.foreground\",{dark:t.editorInfoForeground,light:t.editorInfoForeground,hc:t.editorInfoForeground},r.localize(105,null)),t.darken=d,t.lighten=c,\nt.transparent=h,t.oneOf=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var n=0,i=e;n<i.length;n++){var o=g(i[n],t);if(o)return o}}},t.resolveColorValue=g,t.workbenchColorsSchemaId=\"vscode://schemas/workbench-colors\";var f=n.Registry.as(s.Extensions.JSONContribution);f.registerSchema(t.workbenchColorsSchemaId,l.getColorSchema());var m=new a.RunOnceScheduler((function(){return f.notifySchemaChanged(t.workbenchColorsSchemaId)}),200);l.onDidChangeSchema((function(){m.isScheduled()||m.schedule()}))})),define(n[97],i([0,1,20]),(function(e,t,n){\"use strict\";function i(e,t){var i=Object.create(null);for(var o in t){var r=t[o];r&&(i[o]=n.resolveColorValue(r,e))}return i}function o(e,t,n){function o(o){var r=i(e.getTheme(),t);\"function\"==typeof n?n(r):n.style(r)}return o(e.getTheme()),e.onThemeChange(o)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeStyles=i,t.attachStyler=o,t.attachBadgeStyler=function(e,t,i){return o(t,{\nbadgeBackground:i&&i.badgeBackground||n.badgeBackground,badgeForeground:i&&i.badgeForeground||n.badgeForeground,badgeBorder:n.contrastBorder},e)},t.attachQuickOpenStyler=function(e,t,i){return o(t,{foreground:i&&i.foreground||n.foreground,background:i&&i.background||n.editorBackground,borderColor:i&&i.borderColor||n.contrastBorder,widgetShadow:i&&i.widgetShadow||n.widgetShadow,progressBarBackground:i&&i.progressBarBackground||n.progressBarBackground,pickerGroupForeground:i&&i.pickerGroupForeground||n.pickerGroupForeground,pickerGroupBorder:i&&i.pickerGroupBorder||n.pickerGroupBorder,inputBackground:i&&i.inputBackground||n.inputBackground,inputForeground:i&&i.inputForeground||n.inputForeground,inputBorder:i&&i.inputBorder||n.inputBorder,inputValidationInfoBorder:i&&i.inputValidationInfoBorder||n.inputValidationInfoBorder,inputValidationInfoBackground:i&&i.inputValidationInfoBackground||n.inputValidationInfoBackground,\ninputValidationInfoForeground:i&&i.inputValidationInfoForeground||n.inputValidationInfoForeground,inputValidationWarningBorder:i&&i.inputValidationWarningBorder||n.inputValidationWarningBorder,inputValidationWarningBackground:i&&i.inputValidationWarningBackground||n.inputValidationWarningBackground,inputValidationWarningForeground:i&&i.inputValidationWarningForeground||n.inputValidationWarningForeground,inputValidationErrorBorder:i&&i.inputValidationErrorBorder||n.inputValidationErrorBorder,inputValidationErrorBackground:i&&i.inputValidationErrorBackground||n.inputValidationErrorBackground,inputValidationErrorForeground:i&&i.inputValidationErrorForeground||n.inputValidationErrorForeground,listFocusBackground:i&&i.listFocusBackground||n.listFocusBackground,listFocusForeground:i&&i.listFocusForeground||n.listFocusForeground,listActiveSelectionBackground:i&&i.listActiveSelectionBackground||n.darken(n.listActiveSelectionBackground,.1),\nlistActiveSelectionForeground:i&&i.listActiveSelectionForeground||n.listActiveSelectionForeground,listFocusAndSelectionBackground:i&&i.listFocusAndSelectionBackground||n.listActiveSelectionBackground,listFocusAndSelectionForeground:i&&i.listFocusAndSelectionForeground||n.listActiveSelectionForeground,listInactiveSelectionBackground:i&&i.listInactiveSelectionBackground||n.listInactiveSelectionBackground,listInactiveSelectionForeground:i&&i.listInactiveSelectionForeground||n.listInactiveSelectionForeground,listInactiveFocusBackground:i&&i.listInactiveFocusBackground||n.listInactiveFocusBackground,listHoverBackground:i&&i.listHoverBackground||n.listHoverBackground,listHoverForeground:i&&i.listHoverForeground||n.listHoverForeground,listDropBackground:i&&i.listDropBackground||n.listDropBackground,listFocusOutline:i&&i.listFocusOutline||n.activeContrastBorder,listSelectionOutline:i&&i.listSelectionOutline||n.activeContrastBorder,listHoverOutline:i&&i.listHoverOutline||n.activeContrastBorder},e)},\nt.attachListStyler=function(e,n,i){return o(n,l(l({},t.defaultListStyles),i||{}),e)},t.defaultListStyles={listFocusBackground:n.listFocusBackground,listFocusForeground:n.listFocusForeground,listActiveSelectionBackground:n.darken(n.listActiveSelectionBackground,.1),listActiveSelectionForeground:n.listActiveSelectionForeground,listFocusAndSelectionBackground:n.listActiveSelectionBackground,listFocusAndSelectionForeground:n.listActiveSelectionForeground,listInactiveSelectionBackground:n.listInactiveSelectionBackground,listInactiveSelectionForeground:n.listInactiveSelectionForeground,listInactiveFocusBackground:n.listInactiveFocusBackground,listHoverBackground:n.listHoverBackground,listHoverForeground:n.listHoverForeground,listDropBackground:n.listDropBackground,listFocusOutline:n.activeContrastBorder,listSelectionOutline:n.activeContrastBorder,listHoverOutline:n.activeContrastBorder,listFilterWidgetBackground:n.listFilterWidgetBackground,listFilterWidgetOutline:n.listFilterWidgetOutline,\nlistFilterWidgetNoMatchesOutline:n.listFilterWidgetNoMatchesOutline,listMatchesShadow:n.widgetShadow,treeIndentGuidesStroke:n.treeIndentGuidesStroke},t.defaultMenuStyles={shadowColor:n.widgetShadow,borderColor:n.menuBorder,foregroundColor:n.menuForeground,backgroundColor:n.menuBackground,selectionForegroundColor:n.menuSelectionForeground,selectionBackgroundColor:n.menuSelectionBackground,selectionBorderColor:n.menuSelectionBorder,separatorColor:n.menuSeparatorBackground},t.attachMenuStyler=function(e,n,i){return o(n,l(l({},t.defaultMenuStyles),i),e)}})),define(n[546],i([0,1,6,414,20,97]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(){function e(e,t,n,s,a,l){this.codeEditor=e,this.themeService=l,this.visible=!1,this.domNode=document.createElement(\"div\"),this.quickOpenWidget=new i.QuickOpenWidget(this.domNode,{onOk:t,onCancel:n,onType:s},{inputPlaceHolder:void 0,inputAriaLabel:a.inputAriaLabel,keyboardSupport:!0}),\nthis.styler=r.attachQuickOpenStyler(this.quickOpenWidget,this.themeService,{pickerGroupForeground:o.foreground}),this.quickOpenWidget.create(),this.codeEditor.addOverlayWidget(this)}return e.prototype.setInput=function(e,t){this.quickOpenWidget.setInput(e,t)},e.prototype.getId=function(){return e.ID},e.prototype.getDomNode=function(){return this.domNode},e.prototype.destroy=function(){this.codeEditor.removeOverlayWidget(this),this.quickOpenWidget.dispose(),this.styler.dispose()},e.prototype.show=function(e){this.visible=!0;var t=this.codeEditor.getLayoutInfo();t&&this.quickOpenWidget.layout(new n.Dimension(t.width,t.height)),this.quickOpenWidget.show(e),this.codeEditor.layoutOverlayWidget(this)},e.prototype.getPosition=function(){return this.visible?{preference:2}:null},e.ID=\"editor.contrib.quickOpenEditorWidget\",e}();t.QuickOpenEditorWidget=s})),define(n[547],i([0,1,55,2,205,6,97,52,45,332]),(function(e,t,n,i,o,r,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){\nfunction e(e,t,n,i,o){this.contextViewService=e,this.telemetryService=t,this.notificationService=n,this.keybindingService=i,this.themeService=o,this.focusToReturn=null,this.block=null,this.options={blockMouse:!0}}return e.prototype.configure=function(e){this.options=e},e.prototype.showContextMenu=function(e){var t,u=this,d=e.getActions();d.length&&(this.focusToReturn=document.activeElement,this.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,anchorAlignment:e.anchorAlignment,render:function(c){var h=e.getMenuClassName?e.getMenuClassName():\"\";h&&(c.className+=\" \"+h),u.options.blockMouse&&(u.block=c.appendChild(r.$(\".context-view-block\")));var p=new i.DisposableStore,g=e.actionRunner||new n.ActionRunner;return g.onDidBeforeRun(u.onActionRun,u,p),g.onDidRun(u.onDidActionRun,u,p),t=new o.Menu(c,d,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:g,getKeyBinding:e.getKeyBinding?e.getKeyBinding:function(e){\nreturn u.keybindingService.lookupKeybinding(e.id)}}),p.add(s.attachMenuStyler(t,u.themeService)),t.onDidCancel((function(){return u.contextViewService.hideContextView(!0)}),null,p),t.onDidBlur((function(){return u.contextViewService.hideContextView(!0)}),null,p),a.domEvent(window,r.EventType.BLUR)((function(){u.contextViewService.hideContextView(!0)}),null,p),a.domEvent(window,r.EventType.MOUSE_DOWN)((function(e){if(!e.defaultPrevented){var t=new l.StandardMouseEvent(e),n=t.target;if(!t.rightButton){for(;n;){if(n===c)return;n=n.parentElement}u.contextViewService.hideContextView(!0)}}}),null,p),i.combinedDisposable(p,t)},focus:function(){t&&t.focus(!!e.autoSelectFirstItem)},onHide:function(t){e.onHide&&e.onHide(!!t),u.block&&(r.removeNode(u.block),u.block=null),u.focusToReturn&&u.focusToReturn.focus()}}))},e.prototype.onActionRun=function(e){this.telemetryService&&this.telemetryService.publicLog2(\"workbenchActionExecuted\",{id:e.action.id,from:\"contextMenu\"}),this.contextViewService.hideContextView(!1),\nthis.focusToReturn&&this.focusToReturn.focus()},e.prototype.onDidActionRun=function(e){e.error&&this.notificationService&&this.notificationService.error(e.error)},e}();t.ContextMenuHandler=u})),define(n[14],i([0,1,11,2,42,4]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IThemeService=n.createDecorator(\"themeService\"),t.themeColorFromId=function(e){return{id:e}},t.DARK=\"dark\",t.HIGH_CONTRAST=\"hc\",t.getThemeTypeSelector=function(e){switch(e){case t.DARK:return\"vs-dark\";case t.HIGH_CONTRAST:return\"hc-black\";default:return\"vs\"}},t.Extensions={ThemingContribution:\"base.contributions.theming\"};var s=new(function(){function e(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new r.Emitter}return e.prototype.onThemeChange=function(e){var t=this;return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),i.toDisposable((function(){var n=t.themingParticipants.indexOf(e);t.themingParticipants.splice(n,1)}))\n},e.prototype.getThemingParticipants=function(){return this.themingParticipants},e}());o.Registry.add(t.Extensions.ThemingContribution,s),t.registerThemingParticipant=function(e){return s.onThemeChange(e)}})),define(n[548],i([0,1,6,2,5,25,334,68,48,14]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(e,t,n){this._parent=e,this._editorId=t,this.styleSheet=n,this._refCount=0}return e.prototype.ref=function(){this._refCount++},e.prototype.unref=function(){var e;this._refCount--,0===this._refCount&&(null===(e=this.styleSheet.parentNode)||void 0===e||e.removeChild(this.styleSheet),this._parent._removeEditorStyleSheets(this._editorId))},e}(),p=function(){function e(e){this.styleSheet=e}return e.prototype.ref=function(){},e.prototype.unref=function(){},e}(),f=function(e){function t(t,n){void 0===n&&(n=null);var i=e.call(this)||this;return i._decorationOptionProviders=new Map,i._editorStyleSheets=new Map,i._globalStyleSheet=n?new p(n):null,\ni._themeService=t,i}return r(t,e),t.prototype._getOrCreateGlobalStyleSheet=function(){return this._globalStyleSheet||(this._globalStyleSheet=new p(n.createStyleSheet())),this._globalStyleSheet},t.prototype._getOrCreateStyleSheet=function(e){if(!e)return this._getOrCreateGlobalStyleSheet();var t=e.getContainerDomNode();if(!n.isInShadowDOM(t))return this._getOrCreateGlobalStyleSheet();var i=e.getId();if(!this._editorStyleSheets.has(i)){var o=new c(this,i,n.createStyleSheet(t));this._editorStyleSheets.set(i,o)}return this._editorStyleSheets.get(i)},t.prototype._removeEditorStyleSheets=function(e){this._editorStyleSheets.delete(e)},t.prototype.registerDecorationType=function(e,t,n,i){var o=this._decorationOptionProviders.get(e);if(!o){var r=this._getOrCreateStyleSheet(i),s={styleSheet:r.styleSheet,key:e,parentTypeKey:n,options:t||Object.create(null)};o=n?new m(this._themeService,r,s):new v(this._themeService,r,s),this._decorationOptionProviders.set(e,o)}o.refCount++},t.prototype.removeDecorationType=function(e){\nvar t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((function(t){return t.removeDecorations(e)}))))},t.prototype.resolveDecorationOptions=function(e,t){var n=this._decorationOptionProviders.get(e);if(!n)throw new Error(\"Unknown decoration type key: \"+e);return n.getOptions(this,t)},t=h([g(0,d.IThemeService)],t)}(a.AbstractCodeEditorService);t.CodeEditorServiceImpl=f;var m=function(){function e(e,t,n){this._styleSheet=t,this._styleSheet.ref(),this._parentTypeKey=n.parentTypeKey,this.refCount=0,this._beforeContentRules=new y(3,n,e),this._afterContentRules=new y(4,n,e)}return e.prototype.getOptions=function(e,t){var n=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(n.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(n.afterContentClassName=this._afterContentRules.className),n},e.prototype.dispose=function(){\nthis._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null),this._styleSheet.unref()},e}(),v=function(){function e(e,t,n){var o=this;this._disposables=new i.DisposableStore,this._styleSheet=t,this._styleSheet.ref(),this.refCount=0;var r=function(t){var i=new y(t,n,e);if(o._disposables.add(i),i.hasContent)return i.className};this.className=r(0);var s,a=(s=new y(1,n,e),o._disposables.add(s),s.hasContent?{className:s.className,hasLetterSpacing:s.hasLetterSpacing}:null);a&&(this.inlineClassName=a.className,this.inlineClassNameAffectsLetterSpacing=a.hasLetterSpacing),this.beforeContentClassName=r(3),this.afterContentClassName=r(4),this.glyphMarginClassName=r(2);var l=n.options;this.isWholeLine=Boolean(l.isWholeLine),this.stickiness=l.rangeBehavior;var d=l.light&&l.light.overviewRulerColor||l.overviewRulerColor,c=l.dark&&l.dark.overviewRulerColor||l.overviewRulerColor\n;void 0===d&&void 0===c||(this.overviewRuler={color:d||c,darkColor:c||d,position:l.overviewRulerLane||u.OverviewRulerLane.Center})}return e.prototype.getOptions=function(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this},e.prototype.dispose=function(){this._disposables.dispose(),this._styleSheet.unref()},e}(),_={color:\"color:{0} !important;\",opacity:\"opacity:{0};\",backgroundColor:\"background-color:{0};\",outline:\"outline:{0};\",outlineColor:\"outline-color:{0};\",outlineStyle:\"outline-style:{0};\",outlineWidth:\"outline-width:{0};\",border:\"border:{0};\",borderColor:\"border-color:{0};\",borderRadius:\"border-radius:{0};\",borderSpacing:\"border-spacing:{0};\",borderStyle:\"border-style:{0};\",borderWidth:\"border-width:{0};\",fontStyle:\"font-style:{0};\",\nfontWeight:\"font-weight:{0};\",textDecoration:\"text-decoration:{0};\",cursor:\"cursor:{0};\",letterSpacing:\"letter-spacing:{0};\",gutterIconPath:\"background:{0} center center no-repeat;\",gutterIconSize:\"background-size:{0};\",contentText:\"content:'{0}';\",contentIconPath:\"content:{0};\",margin:\"margin:{0};\",width:\"width:{0};\",height:\"height:{0};\"},y=function(){function e(e,t,n){var i=this;this._theme=n.getTheme(),this._ruleType=e,this._providerArgs=t,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;var o=C.getClassName(this._providerArgs.key,e);this._providerArgs.parentTypeKey&&(o=o+\" \"+C.getClassName(this._providerArgs.parentTypeKey,e)),this._className=o,this._unThemedSelector=C.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,e),this._buildCSS(),this._usesThemeColors?this._themeListener=n.onThemeChange((function(e){i._theme=n.getTheme(),i._removeCSS(),i._buildCSS()})):this._themeListener=null}return e.prototype.dispose=function(){this._hasContent&&(this._removeCSS(),\nthis._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)},Object.defineProperty(e.prototype,\"hasContent\",{get:function(){return this._hasContent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasLetterSpacing\",{get:function(){return this._hasLetterSpacing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"className\",{get:function(){return this._className},enumerable:!0,configurable:!0}),e.prototype._buildCSS=function(){var e,t,n,i=this._providerArgs.options;switch(this._ruleType){case 0:e=this.getCSSTextForModelDecorationClassName(i),t=this.getCSSTextForModelDecorationClassName(i.light),n=this.getCSSTextForModelDecorationClassName(i.dark);break;case 1:e=this.getCSSTextForModelDecorationInlineClassName(i),t=this.getCSSTextForModelDecorationInlineClassName(i.light),n=this.getCSSTextForModelDecorationInlineClassName(i.dark);break;case 2:e=this.getCSSTextForModelDecorationGlyphMarginClassName(i),\nt=this.getCSSTextForModelDecorationGlyphMarginClassName(i.light),n=this.getCSSTextForModelDecorationGlyphMarginClassName(i.dark);break;case 3:e=this.getCSSTextForModelDecorationContentClassName(i.before),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.before),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.before);break;case 4:e=this.getCSSTextForModelDecorationContentClassName(i.after),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.after),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.after);break;default:throw new Error(\"Unknown rule type: \"+this._ruleType)}var o=this._providerArgs.styleSheet.sheet,r=!1;e.length>0&&(o.insertRule(this._unThemedSelector+\" {\"+e+\"}\",0),r=!0),t.length>0&&(o.insertRule(\".vs\"+this._unThemedSelector+\" {\"+t+\"}\",0),r=!0),n.length>0&&(o.insertRule(\".vs-dark\"+this._unThemedSelector+\", .hc-black\"+this._unThemedSelector+\" {\"+n+\"}\",0),r=!0),this._hasContent=r},e.prototype._removeCSS=function(){\nn.removeCSSRulesContainingSelector(this._unThemedSelector,this._providerArgs.styleSheet)},e.prototype.getCSSTextForModelDecorationClassName=function(e){if(!e)return\"\";var t=[];return this.collectCSSText(e,[\"backgroundColor\"],t),this.collectCSSText(e,[\"outline\",\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],t),this.collectBorderSettingsCSSText(e,t),t.join(\"\")},e.prototype.getCSSTextForModelDecorationInlineClassName=function(e){if(!e)return\"\";var t=[];return this.collectCSSText(e,[\"fontStyle\",\"fontWeight\",\"textDecoration\",\"cursor\",\"color\",\"opacity\",\"letterSpacing\"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join(\"\")},e.prototype.getCSSTextForModelDecorationContentClassName=function(e){if(!e)return\"\";var t=[];if(void 0!==e){if(this.collectBorderSettingsCSSText(e,t),void 0!==e.contentIconPath&&t.push(o.format(_.contentIconPath,n.asCSSUrl(s.URI.revive(e.contentIconPath)))),\"string\"==typeof e.contentText){var i=e.contentText.match(/^.*$/m)[0].replace(/['\\\\]/g,\"\\\\$&\");t.push(o.format(_.contentText,i))}\nthis.collectCSSText(e,[\"fontStyle\",\"fontWeight\",\"textDecoration\",\"color\",\"opacity\",\"backgroundColor\",\"margin\"],t),this.collectCSSText(e,[\"width\",\"height\"],t)&&t.push(\"display:inline-block;\")}return t.join(\"\")},e.prototype.getCSSTextForModelDecorationGlyphMarginClassName=function(e){if(!e)return\"\";var t=[];return void 0!==e.gutterIconPath&&(t.push(o.format(_.gutterIconPath,n.asCSSUrl(s.URI.revive(e.gutterIconPath)))),void 0!==e.gutterIconSize&&t.push(o.format(_.gutterIconSize,e.gutterIconSize))),t.join(\"\")},e.prototype.collectBorderSettingsCSSText=function(e,t){return!!this.collectCSSText(e,[\"border\",\"borderColor\",\"borderRadius\",\"borderSpacing\",\"borderStyle\",\"borderWidth\"],t)&&(t.push(o.format(\"box-sizing: border-box;\")),!0)},e.prototype.collectCSSText=function(e,t,n){for(var i=n.length,r=0,s=t;r<s.length;r++){var a=s[r],l=this.resolveValue(e[a]);\"string\"==typeof l&&n.push(o.format(_[a],l))}return n.length!==i},e.prototype.resolveValue=function(e){if(l.isThemeColor(e)){this._usesThemeColors=!0\n;var t=this._theme.getColor(e.id);return t?t.toString():\"transparent\"}return e},e}(),C=function(){function e(){}return e.getClassName=function(e,t){return\"ced-\"+e+\"-\"+t},e.getSelector=function(e,t,n){var i=\".monaco-editor .\"+this.getClassName(e,n);return t&&(i=i+\".\"+this.getClassName(t,n)),3===n?i+=\"::before\":4===n&&(i+=\"::after\"),i},e}()})),define(n[549],i([0,1,6,28,53,37,14]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t,r,l,u){var d=e.call(this,t)||this,c=d._context.configuration.options,h=c.get(78),p=c.get(56),g=c.get(27),f={listenOnDomNode:l.domNode,className:\"editor-scrollable \"+a.getThemeTypeSelector(t.theme.type),useShadows:!1,lazyRender:!0,vertical:h.vertical,horizontal:h.horizontal,verticalHasArrows:h.verticalHasArrows,horizontalHasArrows:h.horizontalHasArrows,verticalScrollbarSize:h.verticalScrollbarSize,verticalSliderSize:h.verticalSliderSize,horizontalScrollbarSize:h.horizontalScrollbarSize,\nhorizontalSliderSize:h.horizontalSliderSize,handleMouseWheel:h.handleMouseWheel,alwaysConsumeMouseWheel:h.alwaysConsumeMouseWheel,arrowSize:h.arrowSize,mouseWheelScrollSensitivity:p,fastScrollSensitivity:g};d.scrollbar=d._register(new o.SmoothScrollableElement(r.domNode,f,d._context.viewLayout.getScrollable())),s.PartFingerprints.write(d.scrollbar.getDomNode(),5),d.scrollbarDomNode=i.createFastDomNode(d.scrollbar.getDomNode()),d.scrollbarDomNode.setPosition(\"absolute\"),d._setLayout();var m=function(e,t,n){var i={};if(t){var o=e.scrollTop;o&&(i.scrollTop=d._context.viewLayout.getCurrentScrollTop()+o,e.scrollTop=0)}if(n){var r=e.scrollLeft;r&&(i.scrollLeft=d._context.viewLayout.getCurrentScrollLeft()+r,e.scrollLeft=0)}d._context.viewLayout.setScrollPositionNow(i)};return d._register(n.addDisposableListener(l.domNode,\"scroll\",(function(e){return m(l.domNode,!0,!0)}))),d._register(n.addDisposableListener(r.domNode,\"scroll\",(function(e){return m(r.domNode,!0,!1)}))),\nd._register(n.addDisposableListener(u.domNode,\"scroll\",(function(e){return m(u.domNode,!0,!1)}))),d._register(n.addDisposableListener(d.scrollbarDomNode.domNode,\"scroll\",(function(e){return m(d.scrollbarDomNode.domNode,!0,!1)}))),d}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._setLayout=function(){var e=this._context.configuration.options,t=e.get(107);this.scrollbarDomNode.setLeft(t.contentLeft),\"right\"===e.get(54).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)},t.prototype.getOverviewRulerLayoutInfo=function(){return this.scrollbar.getOverviewRulerLayoutInfo()},t.prototype.getDomNode=function(){return this.scrollbarDomNode},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)},t.prototype.onConfigurationChanged=function(e){if(e.hasChanged(78)||e.hasChanged(56)||e.hasChanged(27)){\nvar t=this._context.configuration.options,n=t.get(78),i=t.get(56),o=t.get(27),r={handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:o};this.scrollbar.updateOptions(r)}return e.hasChanged(107)&&this._setLayout(),!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onThemeChanged=function(e){return this.scrollbar.updateClassName(\"editor-scrollable \"+a.getThemeTypeSelector(this._context.theme.type)),!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this.scrollbar.renderNow()},t}(s.ViewPart);t.EditorScrollbar=l})),define(n[227],i([0,1,24,28,16,359,91,148,110,14,33]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=!!o.isNative||!(o.isLinux||n.isFirefox||n.isSafari),p=n.isEdgeOrIE,g=function(){function e(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=t}return Object.defineProperty(e.prototype,\"clientRectDeltaLeft\",{get:function(){\nreturn this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft},enumerable:!0,configurable:!0}),e}();t.DomReadingContext=g;var f=function(){function e(e,t){this.themeType=t;var n=e.options,i=n.get(34);this.renderWhitespace=n.get(74),this.renderControlCharacters=n.get(69),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.useMonospaceOptimizations=i.isMonospace&&!n.get(23),this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=n.get(49),this.stopRenderingLineAfter=n.get(88),this.fontLigatures=n.get(35)}return e.prototype.equals=function(e){\nreturn this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures},e}();t.ViewLineOptions=f;var m=function(){function e(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}return e.prototype.getDomNode=function(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null},e.prototype.setDomNode=function(e){if(!this._renderedViewLine)throw new Error(\"I have no rendered view line to set the dom node to...\");this._renderedViewLine.domNode=i.createFastDomNode(e)},e.prototype.onContentChanged=function(){this._isMaybeInvalid=!0},\ne.prototype.onTokensChanged=function(){this._isMaybeInvalid=!0},e.prototype.onDecorationsChanged=function(){this._isMaybeInvalid=!0},e.prototype.onOptionsChanged=function(e){this._isMaybeInvalid=!0,this._options=e},e.prototype.onSelectionChanged=function(){return!(!p&&this._options.themeType!==d.HIGH_CONTRAST&&\"selection\"!==this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)},e.prototype.renderLine=function(t,n,i,o){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;var r=i.getViewLineRenderingData(t),s=this._options,a=l.LineDecoration.filter(r.inlineDecorations,t,r.minColumn,r.maxColumn),g=null;if(p||s.themeType===d.HIGH_CONTRAST||\"selection\"===this._options.renderWhitespace)for(var f=0,m=i.selections;f<m.length;f++){var _=m[f];if(!(_.endLineNumber<t||_.startLineNumber>t)){var y=_.startLineNumber===t?_.startColumn:r.minColumn,b=_.endLineNumber===t?_.endColumn:r.maxColumn\n;y<b&&(\"selection\"!==this._options.renderWhitespace?a.push(new l.LineDecoration(y,b,\"inline-selected-text\",0)):(g||(g=[]),g.push(new u.LineRange(y-1,b-1))))}}var S=new u.RenderLineInput(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,a,r.tabSize,r.startVisibleColumn,s.spaceWidth,s.middotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==c.EditorFontLigatures.OFF,g);if(this._renderedViewLine&&this._renderedViewLine.input.equals(S))return!1;o.appendASCIIString('<div style=\"top:'),o.appendASCIIString(String(n)),o.appendASCIIString(\"px;height:\"),o.appendASCIIString(String(this._options.lineHeight)),o.appendASCIIString('px;\" class=\"'),o.appendASCIIString(e.CLASS_NAME),o.appendASCIIString('\">');var w=u.renderViewLine(S,o);o.appendASCIIString(\"</div>\");var E=null\n;return h&&r.isBasicASCII&&s.useMonospaceOptimizations&&0===w.containsForeignElements&&r.content.length<300&&S.lineTokens.getCount()<100&&(E=new v(this._renderedViewLine?this._renderedViewLine.domNode:null,S,w.characterMapping)),E||(E=C(this._renderedViewLine?this._renderedViewLine.domNode:null,S,w.characterMapping,w.containsRTL,w.containsForeignElements)),this._renderedViewLine=E,!0},e.prototype.layoutLine=function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))},e.prototype.getWidth=function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0},e.prototype.getWidthIsFast=function(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()},e.prototype.getVisibleRangesForRange=function(e,t,n){if(!this._renderedViewLine)return null;e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),\nt=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));var i=0|this._renderedViewLine.input.stopRenderingLineAfter,o=!1;-1!==i&&e>i+1&&t>i+1&&(o=!0),-1!==i&&e>i+1&&(e=i+1),-1!==i&&t>i+1&&(t=i+1);var r=this._renderedViewLine.getVisibleRangesForRange(e,t,n);return r&&r.length>0?new a.VisibleRanges(o,r):null},e.prototype.getColumnOfNodeOffset=function(e,t,n){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t,n):1},e.CLASS_NAME=\"view-line\",e}();t.ViewLine=m;var v=function(){function e(e,t,n){this.domNode=e,this.input=t,this._characterMapping=n,this._charWidth=t.spaceWidth}return e.prototype.getWidth=function(){return this._getCharPosition(this._characterMapping.length)},e.prototype.getWidthIsFast=function(){return!0},e.prototype.getVisibleRangesForRange=function(e,t,n){var i=this._getCharPosition(e),o=this._getCharPosition(t);return[new a.HorizontalRange(i,o-i)]},e.prototype._getCharPosition=function(e){var t=this._characterMapping.getAbsoluteOffsets()\n;return 0===t.length?0:Math.round(this._charWidth*t[e-1])},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),_=function(){function e(e,t,n,i,o){if(this.domNode=e,this.input=t,this._characterMapping=n,this._isWhitespaceOnly=/^\\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!i||0===this._characterMapping.length){this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(var r=0,s=this._characterMapping.length;r<=s;r++)this._pixelOffsetCache[r]=-1}}return e.prototype._getReadingTarget=function(e){return e.domNode.firstChild},e.prototype.getWidth=function(){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth),this._cachedWidth):0},e.prototype.getWidthIsFast=function(){return-1!==this._cachedWidth},\ne.prototype.getVisibleRangesForRange=function(e,t,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){var i=this._readPixelOffset(this.domNode,e,n);if(-1===i)return null;var o=this._readPixelOffset(this.domNode,t,n);return-1===o?null:[new a.HorizontalRange(i,o-i)]}return this._readVisibleRangesForRange(this.domNode,e,t,n)},e.prototype._readVisibleRangesForRange=function(e,t,n,i){if(t===n){var o=this._readPixelOffset(e,t,i);return-1===o?null:[new a.HorizontalRange(o,0)]}return this._readRawVisibleRangesForRange(e,t,n,i)},e.prototype._readPixelOffset=function(e,t,n){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth();var i=this._getReadingTarget(e);return i.firstChild?i.firstChild.offsetWidth:0}if(null!==this._pixelOffsetCache){var o=this._pixelOffsetCache[t];if(-1!==o)return o;var r=this._actualReadPixelOffset(e,t,n);return this._pixelOffsetCache[t]=r,r}\nreturn this._actualReadPixelOffset(e,t,n)},e.prototype._actualReadPixelOffset=function(e,t,n){if(0===this._characterMapping.length){var i=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n.clientRectDeltaLeft,n.endNode);return i&&0!==i.length?i[0].left:-1}if(t===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();var o=this._characterMapping.charOffsetToPartData(t-1),r=u.CharacterMapping.getPartIndex(o),a=u.CharacterMapping.getCharIndex(o),l=s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r,a,r,a,n.clientRectDeltaLeft,n.endNode);return l&&0!==l.length?l[0].left:-1},e.prototype._readRawVisibleRangesForRange=function(e,t,n,i){if(1===t&&n===this._characterMapping.length)return[new a.HorizontalRange(0,this.getWidth())]\n;var o=this._characterMapping.charOffsetToPartData(t-1),r=u.CharacterMapping.getPartIndex(o),l=u.CharacterMapping.getCharIndex(o),d=this._characterMapping.charOffsetToPartData(n-1),c=u.CharacterMapping.getPartIndex(d),h=u.CharacterMapping.getCharIndex(d);return s.RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r,l,c,h,i.clientRectDeltaLeft,i.endNode)},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,o=-1;t;)t=t.previousSibling,o++;return this._characterMapping.partDataToCharOffset(o,i,n)+1},e}(),y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._readVisibleRangesForRange=function(t,n,i,o){var r=e.prototype._readVisibleRangesForRange.call(this,t,n,i,o);if(!r||0===r.length||n===i||1===n&&i===this._characterMapping.length)return r;if(!this.input.containsRTL){var s=this._readPixelOffset(t,i,o);if(-1!==s){var a=r[r.length-1];a.left<s&&(a.width=s-a.left)}}return r},t}(_),C=n.isWebKit?b:S;function b(e,t,n,i,o){\nreturn new y(e,t,n,i,o)}function S(e,t,n,i,o){return new _(e,t,n,i,o)}})),define(n[166],i([0,1,24,141,37,227,13,3,40,6]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t};t.PointerHandlerLastRenderData=c;var h=function(){function e(e,t,n,i,o,r){void 0===n&&(n=0),void 0===i&&(i=null),void 0===o&&(o=null),void 0===r&&(r=null),this.element=e,this.type=t,this.mouseColumn=n,this.position=i,!o&&i&&(o=new l.Range(i.lineNumber,i.column,i.lineNumber,i.column)),this.range=o,this.detail=r}return e._typeToString=function(e){return 1===e?\"TEXTAREA\":2===e?\"GUTTER_GLYPH_MARGIN\":3===e?\"GUTTER_LINE_NUMBERS\":4===e?\"GUTTER_LINE_DECORATIONS\":5===e?\"GUTTER_VIEW_ZONE\":6===e?\"CONTENT_TEXT\":7===e?\"CONTENT_EMPTY\":8===e?\"CONTENT_VIEW_ZONE\":9===e?\"CONTENT_WIDGET\":10===e?\"OVERVIEW_RULER\":11===e?\"SCROLLBAR\":12===e?\"OVERLAY_WIDGET\":\"UNKNOWN\"},e.toString=function(e){\nreturn this._typeToString(e.type)+\": \"+e.position+\" - \"+e.range+\" - \"+e.detail},e.prototype.toString=function(){return e.toString(this)},e}();t.MouseTarget=h;var p=function(){function e(){}return e.isTextArea=function(e){return 2===e.length&&3===e[0]&&6===e[1]},e.isChildOfViewLines=function(e){return e.length>=4&&3===e[0]&&7===e[3]},e.isStrictChildOfViewLines=function(e){return e.length>4&&3===e[0]&&7===e[3]},e.isChildOfScrollableElement=function(e){return e.length>=2&&3===e[0]&&5===e[1]},e.isChildOfMinimap=function(e){return e.length>=2&&3===e[0]&&8===e[1]},e.isChildOfContentWidgets=function(e){return e.length>=4&&3===e[0]&&1===e[3]},e.isChildOfOverflowingContentWidgets=function(e){return e.length>=1&&2===e[0]},e.isChildOfOverlayWidgets=function(e){return e.length>=2&&3===e[0]&&4===e[1]},e}(),g=function(){function e(e,t,n){this.model=e.model;var i=e.configuration.options;this.layoutInfo=i.get(107),this.viewDomNode=t.viewDomNode,this.lineHeight=i.get(49),\nthis.typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,this.lastRenderData=n,this._context=e,this._viewHelper=t}return e.prototype.getZoneAtCoord=function(t){return e.getZoneAtCoord(this._context,t)},e.getZoneAtCoord=function(e,t){var n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){var i=n.verticalOffset+n.height/2,o=e.model.getLineCount(),r=null,s=void 0,l=null;return n.afterLineNumber!==o&&(l=new a.Position(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(r=new a.Position(n.afterLineNumber,e.model.getLineMaxColumn(n.afterLineNumber))),s=null===l?r:null===r?l:t<i?r:l,{viewZoneId:n.id,afterLineNumber:n.afterLineNumber,positionBefore:r,positionAfter:l,position:s}}return null},e.prototype.getFullLineRangeAtCoord=function(e){if(this._context.viewLayout.isAfterLines(e)){var t=this._context.model.getLineCount(),n=this._context.model.getLineMaxColumn(t);return{range:new l.Range(t,n,t,n),isAfterLines:!0}}\nvar i=this._context.viewLayout.getLineNumberAtVerticalOffset(e),o=this._context.model.getLineMaxColumn(i);return{range:new l.Range(i,1,i,o),isAfterLines:!1}},e.prototype.getLineNumberAtVerticalOffset=function(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)},e.prototype.isAfterLines=function(e){return this._context.viewLayout.isAfterLines(e)},e.prototype.getVerticalOffsetForLineNumber=function(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)},e.prototype.findAttribute=function(t,n){return e._findAttribute(t,n,this._viewHelper.viewDomNode)},e._findAttribute=function(e,t,n){for(;e&&e!==document.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===n)return null;e=e.parentNode}return null},e.prototype.getLineWidth=function(e){return this._viewHelper.getLineWidth(e)},e.prototype.visibleRangeForPosition=function(e,t){return this._viewHelper.visibleRangeForPosition(e,t)},e.prototype.getPositionFromDOMInfo=function(e,t){\nreturn this._viewHelper.getPositionFromDOMInfo(e,t)},e.prototype.getCurrentScrollTop=function(){return this._context.viewLayout.getCurrentScrollTop()},e.prototype.getCurrentScrollLeft=function(){return this._context.viewLayout.getCurrentScrollLeft()},e}();t.HitTestContext=g;var f=function(e){function t(t,n,i,r){var s=e.call(this,t,n,i)||this;return s._ctx=t,r?(s.target=r,s.targetPath=o.PartFingerprints.collect(r,t.viewDomNode)):(s.target=null,s.targetPath=new Uint8Array(0)),s}return r(t,e),t.prototype.toString=function(){return\"pos(\"+this.pos.x+\",\"+this.pos.y+\"), editorPos(\"+this.editorPos.x+\",\"+this.editorPos.y+\"), mouseVerticalOffset: \"+this.mouseVerticalOffset+\", mouseContentHorizontalOffset: \"+this.mouseContentHorizontalOffset+\"\\n\\ttarget: \"+(this.target?this.target.outerHTML:null)},t.prototype.fulfill=function(e,t,n,i){void 0===t&&(t=null),void 0===n&&(n=null),void 0===i&&(i=null);var o=this.mouseColumn\n;return t&&t.column<this._ctx.model.getLineMaxColumn(t.lineNumber)&&(o=u.CursorColumns.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber),t.column,this._ctx.model.getOptions().tabSize)+1),new h(this.target,e,o,t,n,i)},t.prototype.withTarget=function(e){return new t(this._ctx,this.editorPos,this.pos,e)},t}((function(e,t,n){this.editorPos=t,this.pos=n,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+n.y-t.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+n.x-t.x-e.layoutInfo.contentLeft,this.isInMarginArea=n.x-t.x<e.layoutInfo.contentLeft&&n.x-t.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,_._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))})),m={isAfterLines:!0};function v(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var _=function(){function e(e,t){this._context=e,this._viewHelper=t}return e.prototype.mouseTargetIsWidget=function(e){\nvar t=e.target,n=o.PartFingerprints.collect(t,this._viewHelper.viewDomNode);return!(!p.isChildOfContentWidgets(n)&&!p.isChildOfOverflowingContentWidgets(n))||!!p.isChildOfOverlayWidgets(n)},e.prototype.createMouseTarget=function(t,n,i,o){var r=new g(this._context,this._viewHelper,t),s=new f(r,n,i,o);try{return e._createMouseTarget(r,s,!1)}catch(e){return s.fulfill(0)}},e._createMouseTarget=function(t,n,i){if(null===n.target){if(i)return n.fulfill(0);var o=e._doHitTest(t,n);return o.position?e.createMouseTargetFromHitTestPosition(t,n,o.position.lineNumber,o.position.column):this._createMouseTarget(t,n.withTarget(o.hitTarget),!0)}var r=n,s=null;return(s=(s=(s=(s=(s=(s=(s=(s=(s=(s=s||e._hitTestContentWidget(t,r))||e._hitTestOverlayWidget(t,r))||e._hitTestMinimap(t,r))||e._hitTestScrollbarSlider(t,r))||e._hitTestViewZone(t,r))||e._hitTestMargin(t,r))||e._hitTestViewCursor(t,r))||e._hitTestTextArea(t,r))||e._hitTestViewLines(t,r,i))||e._hitTestScrollbar(t,r))||n.fulfill(0)},e._hitTestContentWidget=function(e,t){\nif(p.isChildOfContentWidgets(t.targetPath)||p.isChildOfOverflowingContentWidgets(t.targetPath)){var n=e.findAttribute(t.target,\"widgetId\");return n?t.fulfill(9,null,null,n):t.fulfill(0)}return null},e._hitTestOverlayWidget=function(e,t){if(p.isChildOfOverlayWidgets(t.targetPath)){var n=e.findAttribute(t.target,\"widgetId\");return n?t.fulfill(12,null,null,n):t.fulfill(0)}return null},e._hitTestViewCursor=function(e,t){if(t.target)for(var n=0,i=r=e.lastRenderData.lastViewCursorsRenderData;n<i.length;n++){var o=i[n];if(t.target===o.domNode)return t.fulfill(6,o.position)}if(t.isInContentArea)for(var r=e.lastRenderData.lastViewCursorsRenderData,s=t.mouseContentHorizontalOffset,a=t.mouseVerticalOffset,l=0,u=r;l<u.length;l++){if(!(s<(o=u[l]).contentLeft)&&!(s>o.contentLeft+o.width)){var d=e.getVerticalOffsetForLineNumber(o.position.lineNumber);if(d<=a&&a<=d+o.height)return t.fulfill(6,o.position)}}return null},e._hitTestViewZone=function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){\nvar i=t.isInContentArea?8:5;return t.fulfill(i,n.position,null,n)}return null},e._hitTestTextArea=function(e,t){return p.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfill(6,e.lastRenderData.lastTextareaPosition):t.fulfill(1,e.lastRenderData.lastTextareaPosition):null},e._hitTestMargin=function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),o=Math.abs(t.pos.x-t.editorPos.x),r={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};return(o-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(2,i,n.range,r):(o-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(3,i,n.range,r):(o-=e.layoutInfo.lineNumbersWidth,t.fulfill(4,i,n.range,r))}return null},e._hitTestViewLines=function(t,n,i){if(!p.isChildOfViewLines(n.targetPath))return null\n;if(t.isAfterLines(n.mouseVerticalOffset)){var o=t.model.getLineCount(),r=t.model.getLineMaxColumn(o);return n.fulfill(7,new a.Position(o,r),void 0,m)}if(i){if(p.isStrictChildOfViewLines(n.targetPath)){var s=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(0===t.model.getLineLength(s)){var l=t.getLineWidth(s),u=v(n.mouseContentHorizontalOffset-l);return n.fulfill(7,new a.Position(s,1),void 0,u)}var d=t.getLineWidth(s);if(n.mouseContentHorizontalOffset>=d){u=v(n.mouseContentHorizontalOffset-d);var c=new a.Position(s,t.model.getLineMaxColumn(s));return n.fulfill(7,c,void 0,u)}}return n.fulfill(0)}var h=e._doHitTest(t,n);return h.position?e.createMouseTargetFromHitTestPosition(t,n,h.position.lineNumber,h.position.column):this._createMouseTarget(t,n.withTarget(h.hitTarget),!0)},e._hitTestMinimap=function(e,t){if(p.isChildOfMinimap(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new a.Position(n,i))}return null},\ne._hitTestScrollbarSlider=function(e,t){if(p.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var n=t.target.className;if(n&&/\\b(slider|scrollbar)\\b/.test(n)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.model.getLineMaxColumn(i);return t.fulfill(11,new a.Position(i,o))}}return null},e._hitTestScrollbar=function(e,t){if(p.isChildOfScrollableElement(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(11,new a.Position(n,i))}return null},e.prototype.getMouseColumn=function(t,n){var i=this._context.configuration.options,o=i.get(107),r=this._context.viewLayout.getCurrentScrollLeft()+n.x-t.x-o.contentLeft;return e._getMouseColumn(r,i.get(34).typicalHalfwidthCharacterWidth)},e._getMouseColumn=function(e,t){return e<0?1:Math.round(e/t)+1},e.createMouseTargetFromHitTestPosition=function(e,t,i,o){var r=new a.Position(i,o),s=e.getLineWidth(i);if(t.mouseContentHorizontalOffset>s){\nif(n.isEdge&&1===r.column){var u=v(t.mouseContentHorizontalOffset-s);return t.fulfill(7,new a.Position(i,e.model.getLineMaxColumn(i)),void 0,u)}var d=v(t.mouseContentHorizontalOffset-s);return t.fulfill(7,r,void 0,d)}var c=e.visibleRangeForPosition(i,o);if(!c)return t.fulfill(0,r);var h=c.left;if(t.mouseContentHorizontalOffset===h)return t.fulfill(6,r);var p=[];if(p.push({offset:c.left,column:o}),o>1){var g=e.visibleRangeForPosition(i,o-1);g&&p.push({offset:g.left,column:o-1})}if(o<e.model.getLineMaxColumn(i)){var f=e.visibleRangeForPosition(i,o+1);f&&p.push({offset:f.left,column:o+1})}p.sort((function(e,t){return e.offset-t.offset}));for(var m=1;m<p.length;m++){var _=p[m-1],y=p[m];if(_.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=y.offset){var C=new l.Range(i,_.column,i,y.column);return t.fulfill(6,r,C)}}return t.fulfill(6,r)},e._doHitTestWithCaretRangeFromPoint=function(e,t){\nvar n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.getVerticalOffsetForLineNumber(n)+Math.floor(e.lineHeight/2),r=t.pos.y+(o-t.mouseVerticalOffset);r<=t.editorPos.y&&(r=t.editorPos.y+1),r>=t.editorPos.y+e.layoutInfo.height&&(r=t.editorPos.y+e.layoutInfo.height-1);var s=new i.PageCoordinates(t.pos.x,r),a=this._actualDoHitTestWithCaretRangeFromPoint(e,s.toClientCoordinates());return a.position?a:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())},e._actualDoHitTestWithCaretRangeFromPoint=function(e,t){var n,i=d.getShadowRoot(e.viewDomNode);if(!(n=i?void 0===i.caretRangeFromPoint?y(i,t.clientX,t.clientY):i.caretRangeFromPoint(t.clientX,t.clientY):document.caretRangeFromPoint(t.clientX,t.clientY))||!n.startContainer)return{position:null,hitTarget:null};var o=n.startContainer,r=null;if(o.nodeType===o.TEXT_NODE){var a=(u=(l=o.parentNode)?l.parentNode:null)?u.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===s.ViewLine.CLASS_NAME)return{\nposition:e.getPositionFromDOMInfo(l,n.startOffset),hitTarget:null};r=o.parentNode}else if(o.nodeType===o.ELEMENT_NODE){var l,u;if(((u=(l=o.parentNode)?l.parentNode:null)&&u.nodeType===u.ELEMENT_NODE?u.className:null)===s.ViewLine.CLASS_NAME)return{position:e.getPositionFromDOMInfo(o,o.textContent.length),hitTarget:null};r=o}return{position:null,hitTarget:r}},e._doHitTestWithCaretPositionFromPoint=function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,o=i?i.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===s.ViewLine.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}return{position:null,hitTarget:n.offsetNode}},e._doHitTestWithMoveToPoint=function(e,t){var n=null,i=null,o=document.body.createTextRange();try{o.moveToPoint(t.clientX,t.clientY)}catch(e){return{position:null,\nhitTarget:null}}o.collapse(!0);var r=o?o.parentElement():null,a=r?r.parentNode:null,l=a?a.parentNode:null;if((l&&l.nodeType===l.ELEMENT_NODE?l.className:\"\")===s.ViewLine.CLASS_NAME){var u=o.duplicate();u.moveToElementText(r),u.setEndPoint(\"EndToStart\",o),n=e.getPositionFromDOMInfo(r,u.text.length),u.moveToElementText(e.viewDomNode)}else i=r;return o.moveToElementText(e.viewDomNode),{position:n,hitTarget:i}},e._doHitTest=function(e,t){return\"function\"==typeof document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):document.body.createTextRange?this._doHitTestWithMoveToPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}},e}();function y(e,t,n){var i=document.createRange(),o=e.elementFromPoint(t,n);if(null!==o){for(;o&&o.firstChild&&o.firstChild.nodeType!==o.firstChild.TEXT_NODE;)o=o.lastChild\n;var r=o.getBoundingClientRect(),s=window.getComputedStyle(o,null).getPropertyValue(\"font\"),a=o.innerText,l=r.left,u=0,d=void 0;if(t>r.left+r.width)u=a.length;else for(var c=C.getInstance(),h=0;h<a.length+1;h++){if(t<(l+=d=c.getCharWidth(a.charAt(h),s)/2)){u=h;break}l+=d}i.setStart(o.firstChild,u),i.setEnd(o.firstChild,u)}return i}t.MouseTargetFactory=_,t.shadowCaretRangeFromPoint=y;var C=function(){function e(){this._cache={},this._canvas=document.createElement(\"canvas\")}return e.getInstance=function(){return e._INSTANCE||(e._INSTANCE=new e),e._INSTANCE},e.prototype.getCharWidth=function(e,t){var n=e+t;if(this._cache[n])return this._cache[n];var i=this._canvas.getContext(\"2d\");i.font=t;var o=i.measureText(e).width;return this._cache[n]=o,o},e._INSTANCE=null,e}()})),define(n[550],i([0,1,24,6,45,15,2,16,166,141,105,13,22,92]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g){\"use strict\";function f(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}\nObject.defineProperty(t,\"__esModule\",{value:!0}),t.createMouseMoveEventMerger=f;var m=function(e){function t(r,a,l){var h=e.call(this)||this;h._isFocused=!1,h._context=r,h.viewController=a,h.viewHelper=l,h.mouseTargetFactory=new u.MouseTargetFactory(h._context,l),h._mouseDownOperation=h._register(new v(h._context,h.viewController,h.viewHelper,(function(e,t){return h._createMouseTarget(e,t)}),(function(e){return h._getMouseColumn(e)}))),h._asyncFocus=h._register(new s.RunOnceScheduler((function(){return h.viewHelper.focusTextArea()}),0)),h.lastMouseLeaveTime=-1;var p=new d.EditorMouseEventFactory(h.viewHelper.viewDomNode);h._register(p.onContextMenu(h.viewHelper.viewDomNode,(function(e){return h._onContextMenu(e,!0)}))),h._register(p.onMouseMoveThrottled(h.viewHelper.viewDomNode,(function(e){return h._onMouseMove(e)}),f(h.mouseTargetFactory),t.MOUSE_MOVE_MINIMUM_TIME)),h._register(p.onMouseUp(h.viewHelper.viewDomNode,(function(e){return h._onMouseUp(e)}))),\nh._register(p.onMouseLeave(h.viewHelper.viewDomNode,(function(e){return h._onMouseLeave(e)}))),h._register(p.onMouseDown(h.viewHelper.viewDomNode,(function(e){return h._onMouseDown(e)})));return h._register(i.addDisposableListener(h.viewHelper.viewDomNode,n.isEdgeOrIE?\"mousewheel\":\"wheel\",(function(e){if(h.viewController.emitMouseWheel(e),h._context.configuration.options.get(57)){var t=new o.StandardWheelEvent(e);if(t.browserEvent.ctrlKey||t.browserEvent.metaKey){var n=c.EditorZoom.getZoomLevel(),i=t.deltaY>0?1:-1;c.EditorZoom.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}}),{capture:!0,passive:!1})),h._context.addEventHandler(h),h}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onCursorStateChanged=function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!1},t.prototype.onScrollChanged=function(e){\nreturn this._mouseDownOperation.onScrollChanged(),!1},t.prototype.getTargetAtClientPoint=function(e,t){var n=new d.ClientCoordinates(e,t).toPageCoordinates(),i=d.createEditorPagePosition(this.viewHelper.viewDomNode);return n.y<i.y||n.y>i.y+i.height||n.x<i.x||n.x>i.x+i.width?null:this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),i,n,null)},t.prototype._createMouseTarget=function(e,t){return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,t?e.target:null)},t.prototype._getMouseColumn=function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)},t.prototype._onContextMenu=function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})},t.prototype._onMouseMove=function(e){this._mouseDownOperation.isActive()||(e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)}))},t.prototype._onMouseLeave=function(e){\nthis.lastMouseLeaveTime=(new Date).getTime(),this.viewController.emitMouseLeave({event:e,target:null})},t.prototype._onMouseUp=function(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})},t.prototype._onMouseDown=function(e){var t=this,i=this._createMouseTarget(e,!0),o=6===i.type||7===i.type,r=2===i.type||3===i.type||4===i.type,s=3===i.type,a=this._context.configuration.options.get(83),u=8===i.type||5===i.type,d=9===i.type,c=e.leftButton||e.middleButton;l.isMacintosh&&e.leftButton&&e.ctrlKey&&(c=!1);var h=function(){n.isIE&&!t._isFocused?t._asyncFocus.schedule():(e.preventDefault(),t.viewHelper.focusTextArea())};if(c&&(o||s&&a))h(),this._mouseDownOperation.start(i.type,e);else if(r)e.preventDefault();else if(u){var p=i.detail;this.viewHelper.shouldSuppressMouseDownOnViewZone(p.viewZoneId)&&(h(),this._mouseDownOperation.start(i.type,e),e.preventDefault())}else d&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(h(),e.preventDefault())\n;this.viewController.emitMouseDown({event:e,target:i})},t.MOUSE_MOVE_MINIMUM_TIME=100,t}(g.ViewEventHandler);t.MouseHandler=m;var v=function(e){function t(t,n,i,o,r){var a=e.call(this)||this;return a._context=t,a._viewController=n,a._viewHelper=i,a._createMouseTarget=o,a._getMouseColumn=r,a._mouseMoveMonitor=a._register(new d.GlobalEditorMouseMoveMonitor(a._viewHelper.viewDomNode)),a._onScrollTimeout=a._register(new s.TimeoutTimer),a._mouseState=new _,a._currentSelection=new p.Selection(1,1,1,1),a._isActive=!1,a._lastMouseEvent=null,a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.isActive=function(){return this._isActive},t.prototype._onMouseDownThenMove=function(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);var t=this._findMousePosition(e,!0);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):this._dispatchMouse(t,!0))},t.prototype.start=function(e,t){var n=this;this._lastMouseEvent=t,\nthis._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);var i=this._findMousePosition(t,!0);if(i&&i.position){this._mouseState.trySetCount(t.detail,i.position),t.detail=this._mouseState.count;var o=this._context.configuration.options;if(!o.get(68)&&o.get(24)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===i.type&&i.position&&this._currentSelection.containsPosition(i.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(t.target,t.buttons,f(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){var e=n._findMousePosition(n._lastMouseEvent,!0);n._viewController.emitMouseDrop({event:n._lastMouseEvent,target:e?n._createMouseTarget(n._lastMouseEvent,!0):null}),n._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(i,t.shiftKey),this._isActive||(this._isActive=!0,\nthis._mouseMoveMonitor.startMonitoring(t.target,t.buttons,f(null),(function(e){return n._onMouseDownThenMove(e)}),(function(){return n._stop()})))}},t.prototype._stop=function(){this._isActive=!1,this._onScrollTimeout.cancel()},t.prototype.onScrollChanged=function(){var e=this;this._isActive&&this._onScrollTimeout.setIfNotSet((function(){if(e._lastMouseEvent){var t=e._findMousePosition(e._lastMouseEvent,!1);t&&(e._mouseState.isDragAndDrop||e._dispatchMouse(t,!0))}}),10)},t.prototype.onCursorStateChanged=function(e){this._currentSelection=e.selections[0]},t.prototype._getPositionOutsideEditor=function(e){var t=e.editorPos,n=this._context.model,i=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posy<t.y){var r=Math.max(i.getCurrentScrollTop()-(t.y-e.posy),0);if(a=u.HitTestContext.getZoneAtCoord(this._context,r))if(l=this._helpPositionJumpOverViewZone(a))return new u.MouseTarget(null,13,o,l);var s=i.getLineNumberAtVerticalOffset(r);return new u.MouseTarget(null,13,o,new h.Position(s,1))}\nif(e.posy>t.y+t.height){var a,l;r=i.getCurrentScrollTop()+(e.posy-t.y);if(a=u.HitTestContext.getZoneAtCoord(this._context,r))if(l=this._helpPositionJumpOverViewZone(a))return new u.MouseTarget(null,13,o,l);var d=i.getLineNumberAtVerticalOffset(r);return new u.MouseTarget(null,13,o,new h.Position(d,n.getLineMaxColumn(d)))}var c=i.getLineNumberAtVerticalOffset(i.getCurrentScrollTop()+(e.posy-t.y));return e.posx<t.x?new u.MouseTarget(null,13,o,new h.Position(c,1)):e.posx>t.x+t.width?new u.MouseTarget(null,13,o,new h.Position(c,n.getLineMaxColumn(c))):null},t.prototype._findMousePosition=function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(8===i.type||5===i.type){var o=this._helpPositionJumpOverViewZone(i.detail);if(o)return new u.MouseTarget(i.element,i.type,i.mouseColumn,o,null,i.detail)}return i},t.prototype._helpPositionJumpOverViewZone=function(e){\nvar t=new h.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,i=e.positionAfter;return n&&i?n.isBefore(t)?n:i:null},t.prototype._dispatchMouse=function(e,t){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})},t}(a.Disposable),_=function(){function e(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}\nreturn Object.defineProperty(e.prototype,\"altKey\",{get:function(){return this._altKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"ctrlKey\",{get:function(){return this._ctrlKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"metaKey\",{get:function(){return this._metaKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"shiftKey\",{get:function(){return this._shiftKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"leftButton\",{get:function(){return this._leftButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"middleButton\",{get:function(){return this._middleButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"startedOnLineNumbers\",{get:function(){return this._startedOnLineNumbers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"count\",{get:function(){return this._lastMouseDownCount},enumerable:!0,configurable:!0}),e.prototype.setModifiers=function(e){\nthis._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey},e.prototype.setStartButtons=function(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton},e.prototype.setStartedOnLineNumbers=function(e){this._startedOnLineNumbers=e},e.prototype.trySetCount=function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)},e.CLEAR_MOUSE_DOWN_COUNT_TIME=400,e}()})),define(n[551],i([0,1,6,16,57,2,550,141,88]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";function d(e,t){var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,\nn.translationX+=e.translationX),n}Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.msTouchAction=\"none\",r.viewHelper.linesContentDomNode.style.msContentZooming=\"none\",r._installGestureHandlerTimeout=window.setTimeout((function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener(\"MSPointerDown\",(function(n){var i=n.pointerType;i!==(n.MSPOINTER_TYPE_MOUSE||\"mouse\")?i===(n.MSPOINTER_TYPE_TOUCH||\"touch\")?(r._lastPointerType=\"touch\",e.addPointer(n.pointerId)):(r._lastPointerType=\"pen\",t.addPointer(n.pointerId)):r._lastPointerType=\"mouse\"})),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,\"MSGestureChange\",(function(e){return r._onGestureChange(e)}),d)),\nr._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,\"MSGestureTap\",(function(e){return r._onCaptureGestureTap(e)}),!0))}}),100),r._lastPointerType=\"mouse\",r}return r(t,e),t.prototype._onMouseDown=function(t){\"mouse\"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout((function(){t.viewHelper.focusTextArea()}))},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(a.MouseHandler),h=function(e){function t(t,i,o){var r=e.call(this,t,i,o)||this;return r.viewHelper.linesContentDomNode.style.touchAction=\"none\",\nr._installGestureHandlerTimeout=window.setTimeout((function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener(\"pointerdown\",(function(n){var i=n.pointerType;\"mouse\"!==i?\"touch\"===i?(r._lastPointerType=\"touch\",e.addPointer(n.pointerId)):(r._lastPointerType=\"pen\",t.addPointer(n.pointerId)):r._lastPointerType=\"mouse\"})),r._register(n.addDisposableThrottledListener(r.viewHelper.linesContentDomNode,\"MSGestureChange\",(function(e){return r._onGestureChange(e)}),d)),r._register(n.addDisposableListener(r.viewHelper.linesContentDomNode,\"MSGestureTap\",(function(e){return r._onCaptureGestureTap(e)}),!0))}}),100),r._lastPointerType=\"mouse\",r}return r(t,e),t.prototype._onMouseDown=function(t){\"mouse\"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){\nvar t=this,n=new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout((function(){t.viewHelper.focusTextArea()}))},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(a.MouseHandler),p=function(e){function t(t,i,r){var s=e.call(this,t,i,r)||this;s._register(o.Gesture.addTarget(s.viewHelper.linesContentDomNode)),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Tap,(function(e){return s.onTap(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Change,(function(e){return s.onChange(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Contextmenu,(function(e){\nreturn s._onContextMenu(new l.EditorMouseEvent(e,s.viewHelper.viewDomNode),!1)}))),s._lastPointerType=\"mouse\",s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,\"pointerdown\",(function(e){var t=e.pointerType;s._lastPointerType=\"mouse\"!==t?\"touch\"===t?\"touch\":\"pen\":\"mouse\"})));var u=new l.EditorPointerEventFactory(s.viewHelper.viewDomNode);return s._register(u.onPointerMoveThrottled(s.viewHelper.viewDomNode,(function(e){return s._onMouseMove(e)}),a.createMouseMoveEventMerger(s.mouseTargetFactory),a.MouseHandler.MOUSE_MOVE_MINIMUM_TIME)),s._register(u.onPointerUp(s.viewHelper.viewDomNode,(function(e){return s._onMouseUp(e)}))),s._register(u.onPointerLeave(s.viewHelper.viewDomNode,(function(e){return s._onMouseLeave(e)}))),s._register(u.onPointerDown(s.viewHelper.viewDomNode,(function(e){return s._onMouseDown(e)}))),s}return r(t,e),t.prototype.onTap=function(e){if(e.initialTarget&&this.viewHelper.linesContentDomNode.contains(e.initialTarget)){e.preventDefault(),this.viewHelper.focusTextArea()\n;var t=this._createMouseTarget(new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1})}},t.prototype.onChange=function(e){\"touch\"===this._lastPointerType&&this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype._onMouseDown=function(t){t.target&&this.viewHelper.linesContentDomNode.contains(t.target)&&\"touch\"===this._lastPointerType||e.prototype._onMouseDown.call(this,t)},t}(a.MouseHandler);t.PointerEventHandler=p;var g=function(e){function t(t,i,r){var s=e.call(this,t,i,r)||this;return s._register(o.Gesture.addTarget(s.viewHelper.linesContentDomNode)),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Tap,(function(e){return s.onTap(e)}))),\ns._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Change,(function(e){return s.onChange(e)}))),s._register(n.addDisposableListener(s.viewHelper.linesContentDomNode,o.EventType.Contextmenu,(function(e){return s._onContextMenu(new l.EditorMouseEvent(e,s.viewHelper.viewDomNode),!1)}))),s}return r(t,e),t.prototype.onTap=function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new l.EditorMouseEvent(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.moveTo(t.position)},t.prototype.onChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t}(a.MouseHandler),f=function(e){function t(t,n,o){var r=e.call(this)||this\n;return window.navigator.msPointerEnabled?r.handler=r._register(new c(t,n,o)):i.isIOS&&u.BrowserFeatures.pointerEvents?r.handler=r._register(new p(t,n,o)):window.TouchEvent?r.handler=r._register(new g(t,n,o)):window.navigator.pointerEnabled||window.PointerEvent?r.handler=r._register(new h(t,n,o)):r.handler=r._register(new a.MouseHandler(t,n,o)),r}return r(t,e),t.prototype.getTargetAtClientPoint=function(e,t){return this.handler.getTargetAtClientPoint(e,t)},t}(s.Disposable);t.PointerHandler=f})),define(n[228],i([0,1,2,166]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(e){function t(t){var n=e.call(this)||this;return n.onDidContentSizeChange=null,n.onDidScroll=null,n.onDidGainFocus=null,n.onDidLoseFocus=null,n.onKeyDown=null,n.onKeyUp=null,n.onContextMenu=null,n.onMouseMove=null,n.onMouseLeave=null,n.onMouseUp=null,n.onMouseDown=null,n.onMouseDrag=null,n.onMouseDrop=null,n.onMouseWheel=null,n._viewModel=t,n}return r(t,e),\nt.prototype.emitContentSizeChange=function(e){this.onDidContentSizeChange&&this.onDidContentSizeChange(e)},t.prototype.emitScrollChanged=function(e){this.onDidScroll&&this.onDidScroll(e)},t.prototype.emitViewFocusGained=function(){this.onDidGainFocus&&this.onDidGainFocus(void 0)},t.prototype.emitViewFocusLost=function(){this.onDidLoseFocus&&this.onDidLoseFocus(void 0)},t.prototype.emitKeyDown=function(e){this.onKeyDown&&this.onKeyDown(e)},t.prototype.emitKeyUp=function(e){this.onKeyUp&&this.onKeyUp(e)},t.prototype.emitContextMenu=function(e){this.onContextMenu&&this.onContextMenu(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseMove=function(e){this.onMouseMove&&this.onMouseMove(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseLeave=function(e){this.onMouseLeave&&this.onMouseLeave(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseUp=function(e){this.onMouseUp&&this.onMouseUp(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDown=function(e){\nthis.onMouseDown&&this.onMouseDown(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrag=function(e){this.onMouseDrag&&this.onMouseDrag(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseDrop=function(e){this.onMouseDrop&&this.onMouseDrop(this._convertViewToModelMouseEvent(e))},t.prototype.emitMouseWheel=function(e){this.onMouseWheel&&this.onMouseWheel(e)},t.prototype._convertViewToModelMouseEvent=function(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e},t.prototype._convertViewToModelMouseTarget=function(e){return t.convertViewToModelMouseTarget(e,this._viewModel.coordinatesConverter)},t.convertViewToModelMouseTarget=function(e,t){return new s(e.element,e.type,e.mouseColumn,e.position?t.convertViewPositionToModelPosition(e.position):null,e.range?t.convertViewRangeToModelRange(e.range):null,e.detail)},t}(n.Disposable);t.ViewOutgoingEvents=o;var s=function(){function e(e,t,n,i,o,r){this.element=e,this.type=t,this.mouseColumn=n,this.position=i,\nthis.range=o,this.detail=r}return e.prototype.toString=function(){return i.MouseTarget.toString(this)},e}()})),define(n[552],i([0,1,15,60,143,37,227,13,3,91,290]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(){this._currentVisibleRange=new u.Range(1,1,1,1)}return e.prototype.getCurrentVisibleRange=function(){return this._currentVisibleRange},e.prototype.setCurrentVisibleRange=function(e){this._currentVisibleRange=e},e}(),h=function(e,t,n,i,o,r){this.lineNumber=e,this.startColumn=t,this.endColumn=n,this.startScrollTop=i,this.stopScrollTop=o,this.scrollType=r},p=function(e){function t(t,r){var l=e.call(this,t)||this;l._linesContent=r,l._textRangeRestingSpot=document.createElement(\"div\"),l._visibleLines=new o.VisibleLinesCollection(l),l.domNode=l._visibleLines.domNode;var u=l._context.configuration,d=l._context.configuration.options,h=d.get(34),p=d.get(108);return l._lineHeight=d.get(49),\nl._typicalHalfwidthCharacterWidth=h.typicalHalfwidthCharacterWidth,l._isViewportWrapping=p.isViewportWrapping,l._revealHorizontalRightPadding=d.get(75),l._cursorSurroundingLines=d.get(19),l._cursorSurroundingLinesStyle=d.get(20),l._canUseLayerHinting=!d.get(22),l._viewLineOptions=new a.ViewLineOptions(u,l._context.theme.type),s.PartFingerprints.write(l.domNode,7),l.domNode.setClassName(\"view-lines\"),i.Configuration.applyFontInfo(l.domNode,h),l._maxLineWidth=0,l._asyncUpdateLineWidths=new n.RunOnceScheduler((function(){l._updateLineWidthsSlow()}),200),l._lastRenderedData=new c,l._horizontalRevealRequest=null,l}return r(t,e),t.prototype.dispose=function(){this._asyncUpdateLineWidths.dispose(),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new a.ViewLine(this._viewLineOptions)},t.prototype.onConfigurationChanged=function(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(108)&&(this._maxLineWidth=0)\n;var t=this._context.configuration.options,n=t.get(34),o=t.get(108);return this._lineHeight=t.get(49),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._isViewportWrapping=o.isViewportWrapping,this._revealHorizontalRightPadding=t.get(75),this._cursorSurroundingLines=t.get(19),this._cursorSurroundingLinesStyle=t.get(20),this._canUseLayerHinting=!t.get(22),i.Configuration.applyFontInfo(this.domNode,n),this._onOptionsMaybeChanged(),e.hasChanged(107)&&(this._maxLineWidth=0),!0},t.prototype._onOptionsMaybeChanged=function(){var e=this._context.configuration,t=new a.ViewLineOptions(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),o=n;o<=i;o++){this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions)}return!0}return!1},t.prototype.onCursorStateChanged=function(e){\nfor(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,o=t;o<=n;o++)i=this._visibleLines.getVisibleLine(o).onSelectionChanged()||i;return i},t.prototype.onDecorationsChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0},t.prototype.onFlushed=function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onRevealRangeRequest=function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.range,e.verticalType),n=this._context.viewLayout.validateScrollPosition({scrollTop:t})\n;e.revealHorizontal?e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:this._horizontalRevealRequest=new h(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):this._horizontalRevealRequest=null;var i=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop);return 0===e.scrollType&&i>this._lineHeight?this._context.viewLayout.setScrollPositionSmooth(n):this._context.viewLayout.setScrollPositionNow(n),!0},t.prototype.onScrollChanged=function(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){var t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>n)&&(this._horizontalRevealRequest=null)}\nreturn this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._context.viewLayout.onMaxLineWidthChanged(this._maxLineWidth),this._visibleLines.onZonesChanged(e)},t.prototype.onThemeChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.getPositionFromDOMInfo=function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new l.Position(i,1);var o=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(i<o||i>r)return null;var s=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),a=this._context.model.getLineMinColumn(i);return s<a&&(s=a),new l.Position(i,s)},t.prototype._getViewLineDomNode=function(e){\nfor(;e&&1===e.nodeType;){if(e.className===a.ViewLine.CLASS_NAME)return e;e=e.parentElement}return null},t.prototype._getLineNumberFor=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++){if(e===this._visibleLines.getVisibleLine(i).getDomNode())return i}return-1},t.prototype.getLineWidth=function(e){var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();return e<t||e>n?-1:this._visibleLines.getVisibleLine(e).getWidth()},t.prototype.linesVisibleRangesForRange=function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber,i=u.Range.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!i)return null;var o=[],r=0,s=new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),c=0;t&&(c=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new l.Position(i.startLineNumber,1)).lineNumber)\n;for(var h=this._visibleLines.getStartLineNumber(),p=this._visibleLines.getEndLineNumber(),g=i.startLineNumber;g<=i.endLineNumber;g++)if(!(g<h||g>p)){var f=g===i.startLineNumber?i.startColumn:1,m=g===i.endLineNumber?i.endColumn:this._context.model.getLineMaxColumn(g),v=this._visibleLines.getVisibleLine(g).getVisibleRangesForRange(f,m,s);if(v){if(t&&g<n)c!==(c=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new l.Position(g+1,1)).lineNumber)&&(v.ranges[v.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth);o[r++]=new d.LineVisibleRanges(v.outsideRenderedLine,g,v.ranges)}}return 0===r?null:o},t.prototype._visibleRangesForLineRange=function(e,t,n){return this.shouldRender()?null:e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?null:this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(t,n,new a.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot))},t.prototype.visibleRangeForPosition=function(e){\nvar t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new d.HorizontalPosition(t.outsideRenderedLine,t.ranges[0].left):null},t.prototype.updateLineWidths=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidthsFast=function(){return this._updateLineWidths(!0)},t.prototype._updateLineWidthsSlow=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidths=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=1,o=!0,r=t;r<=n;r++){var s=this._visibleLines.getVisibleLine(r);!e||s.getWidthIsFast()?i=Math.max(i,s.getWidth()):o=!1}return o&&1===t&&n===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(i),o},t.prototype.prepareRender=function(){throw new Error(\"Not supported\")},t.prototype.render=function(){throw new Error(\"Not supported\")},t.prototype.renderText=function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),\nthis.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){var t=this._horizontalRevealRequest.lineNumber,n=this._horizontalRevealRequest.startColumn,i=this._horizontalRevealRequest.endColumn,o=this._horizontalRevealRequest.scrollType;if(e.startLineNumber<=t&&t<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();var r=this._computeScrollLeftToRevealRange(t,n,i);this._isViewportWrapping||this._ensureMaxLineWidth(r.maxHorizontalOffset),0===o?this._context.viewLayout.setScrollPositionSmooth({scrollLeft:r.scrollLeft}):this._context.viewLayout.setScrollPositionNow({scrollLeft:r.scrollLeft})}}this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain(\"strict\");var s=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-s),\nthis._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())},t.prototype._ensureMaxLineWidth=function(e){var t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewLayout.onMaxLineWidthChanged(this._maxLineWidth))},t.prototype._computeScrollTopToRevealRange=function(e,t,n,i){var o,r,s,a=e.top,l=e.height,u=a+l;if(o=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),r=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight,!(\"mouse\"===t&&\"default\"===this._cursorSurroundingLinesStyle)){var d=Math.min(l/this._lineHeight/2,this._cursorSurroundingLines);o-=d*this._lineHeight,r+=Math.max(0,d-1)*this._lineHeight}if(0!==i&&4!==i||(r+=this._lineHeight),r-o>l)s=o;else if(1===i||2===i)if(2===i&&a<=o&&r<=u)s=a;else{var c=(o+r)/2;s=Math.max(0,c-l/2)}else s=this._computeMinimumScrolling(a,u,o,r,3===i,4===i);return s},t.prototype._computeScrollLeftToRevealRange=function(e,n,i){\nvar o=0,r=this._context.viewLayout.getCurrentViewport(),s=r.left,a=s+r.width,l=this._visibleRangesForLineRange(e,n,i),u=1073741824,d=0;if(!l)return{scrollLeft:s,maxHorizontalOffset:o};for(var c=0,h=l.ranges;c<h.length;c++){var p=h[c];p.left<u&&(u=p.left),p.left+p.width>d&&(d=p.left+p.width)}return o=d,u=Math.max(0,u-t.HORIZONTAL_EXTRA_PX),d+=this._revealHorizontalRightPadding,{scrollLeft:this._computeMinimumScrolling(s,a,u,d),maxHorizontalOffset:o}},t.prototype._computeMinimumScrolling=function(e,t,n,i,o,r){o=!!o,r=!!r;var s=(t|=0)-(e|=0);return(i|=0)-(n|=0)<s?o?n:r?Math.max(0,i-s):n<e?n:i>t?Math.max(0,i-s):e:n},t.HORIZONTAL_EXTRA_PX=30,t}(s.ViewPart);t.ViewLines=p})),define(n[553],i([0,1,6,28,78,16,5,143,37,33,3,215,81,20,14,57,337,48,102,293]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y){\"use strict\";function C(e,t){return 1===e?2*t:3*t}function b(e,t){return 1*t}Object.defineProperty(t,\"__esModule\",{value:!0});var S=140,w=function(){function e(e){\nvar t=this,n=e.options,i=n.get(105),o=n.get(107),r=n.get(34);this.renderMinimap=0|o.renderMinimap,this.scrollBeyondLastLine=n.get(80);var s=n.get(54);this.showSlider=s.showSlider,this.fontScale=Math.round(s.scale*i),this.charRenderer=y.once((function(){return v.MinimapCharRendererFactory.create(t.fontScale,r.fontFamily)})),this.pixelRatio=i,this.typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this.lineHeight=n.get(49),this.minimapLeft=o.minimapLeft,this.minimapWidth=o.minimapWidth,this.minimapHeight=o.height,this.canvasInnerWidth=Math.floor(i*this.minimapWidth),this.canvasInnerHeight=Math.floor(i*this.minimapHeight),this.canvasOuterWidth=this.canvasInnerWidth/i,this.canvasOuterHeight=this.canvasInnerHeight/i}return e.prototype.equals=function(e){\nreturn this.renderMinimap===e.renderMinimap&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.showSlider===e.showSlider&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.fontScale===e.fontScale&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight},e}(),E=function(){function e(e,t,n,i,o,r,s){this.scrollTop=e,this.scrollHeight=t,this._computedSliderRatio=n,this.sliderTop=i,this.sliderHeight=o,this.startLineNumber=r,this.endLineNumber=s}return e.prototype.getDesiredScrollTopFromDelta=function(e){var t=this.sliderTop+e;return Math.round(t/this._computedSliderRatio)},e.prototype.getDesiredScrollTopFromTouchLocation=function(e){\nreturn Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)},e.create=function(t,n,i,o,r,s,a,l,u){var d,c,h=t.pixelRatio,p=C(t.renderMinimap,t.fontScale),g=Math.floor(t.canvasInnerHeight/p),f=t.lineHeight;if(r&&i!==s){var m=i-n+1;d=Math.floor(m*p/h)}else{var v=o/f;d=Math.floor(v*p/h)}c=t.scrollBeyondLastLine?(s-1)*p/h:Math.max(0,s*p/h-d);var _=(c=Math.min(t.minimapHeight-d,c))/(l-o),y=a*_,b=0;t.scrollBeyondLastLine&&(b=v=o/f);if(g>=s+b)return new e(a,l,_,y,d,S=1,s);var S=Math.max(1,Math.floor(n-y*h/p));return u&&u.scrollHeight===l&&(u.scrollTop>a&&(S=Math.min(S,u.startLineNumber)),u.scrollTop<a&&(S=Math.max(S,u.startLineNumber))),new e(a,l,_,y,d,S,Math.min(s,S+g-1))},e}(),L=function(){function e(e){this.dy=e}return e.prototype.onContentChanged=function(){this.dy=-1},e.prototype.onTokensChanged=function(){this.dy=-1},e.INVALID=new e(-1),e}(),D=function(){function e(e,t,n){this.renderedLayout=e,this._imageData=t,this._renderedLines=new l.RenderedLinesCollection((function(){return L.INVALID})),\nthis._renderedLines._set(e.startLineNumber,n)}return e.prototype.linesEquals=function(e){if(!this.scrollEquals(e))return!1;for(var t=this._renderedLines._get().lines,n=0,i=t.length;n<i;n++)if(-1===t[n].dy)return!1;return!0},e.prototype.scrollEquals=function(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber},e.prototype._get=function(){var e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}},e.prototype.onLinesChanged=function(e){return this._renderedLines.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){this._renderedLines.onLinesDeleted(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesInserted=function(e){this._renderedLines.onLinesInserted(e.fromLineNumber,e.toLineNumber)},e.prototype.onTokensChanged=function(e){return this._renderedLines.onTokensChanged(e.ranges)},e}(),N=function(){function e(t,n,i,o){\nthis._backgroundFillData=e._createBackgroundFillData(n,i,o),this._buffers=[t.createImageData(n,i),t.createImageData(n,i)],this._lastUsedBuffer=0}return e.prototype.getBuffer=function(){this._lastUsedBuffer=1-this._lastUsedBuffer;var e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e},e._createBackgroundFillData=function(e,t,n){for(var i=n.r,o=n.g,r=n.b,s=new Uint8ClampedArray(e*t*4),a=0,l=0;l<t;l++)for(var u=0;u<e;u++)s[a]=i,s[a+1]=o,s[a+2]=r,s[a+3]=255,a+=4;return s},e}(),x=function(e){function t(t){var r=e.call(this,t)||this;return r._selections=[],r._renderDecorations=!1,r._gestureInProgress=!1,r._options=new w(r._context.configuration),r._lastRenderData=null,r._buffers=null,r._selectionColor=r._context.theme.getColor(g.minimapSelection),r._domNode=i.createFastDomNode(document.createElement(\"div\")),u.PartFingerprints.write(r._domNode,8),r._domNode.setClassName(r._getMinimapDomNodeClassName()),r._domNode.setPosition(\"absolute\"),r._domNode.setAttribute(\"role\",\"presentation\"),\nr._domNode.setAttribute(\"aria-hidden\",\"true\"),r._shadow=i.createFastDomNode(document.createElement(\"div\")),r._shadow.setClassName(\"minimap-shadow-hidden\"),r._domNode.appendChild(r._shadow),r._canvas=i.createFastDomNode(document.createElement(\"canvas\")),r._canvas.setPosition(\"absolute\"),r._canvas.setLeft(0),r._domNode.appendChild(r._canvas),r._decorationsCanvas=i.createFastDomNode(document.createElement(\"canvas\")),r._decorationsCanvas.setPosition(\"absolute\"),r._decorationsCanvas.setClassName(\"minimap-decorations-layer\"),r._decorationsCanvas.setLeft(0),r._domNode.appendChild(r._decorationsCanvas),r._slider=i.createFastDomNode(document.createElement(\"div\")),r._slider.setPosition(\"absolute\"),r._slider.setClassName(\"minimap-slider\"),r._slider.setLayerHinting(!0),r._slider.setContain(\"strict\"),r._domNode.appendChild(r._slider),r._sliderHorizontal=i.createFastDomNode(document.createElement(\"div\")),r._sliderHorizontal.setPosition(\"absolute\"),r._sliderHorizontal.setClassName(\"minimap-slider-horizontal\"),\nr._slider.appendChild(r._sliderHorizontal),r._tokensColorTracker=h.MinimapTokensColorTracker.getInstance(),r._applyLayout(),r._mouseDownListener=n.addStandardDisposableListener(r._domNode.domNode,\"mousedown\",(function(e){e.preventDefault();var t=r._options.renderMinimap;if(0!==t&&r._lastRenderData){var n=C(t,r._options.fontScale),i=r._options.pixelRatio*e.browserEvent.offsetY,o=Math.floor(i/n)+r._lastRenderData.renderedLayout.startLineNumber;o=Math.min(o,r._context.model.getLineCount()),r._context.privateViewEventBus.emit(new p.ViewRevealRangeRequestEvent(\"mouse\",new c.Range(o,1,o,1),1,!1,0))}})),r._sliderMouseMoveMonitor=new o.GlobalMouseMoveMonitor,r._sliderMouseDownListener=n.addStandardDisposableListener(r._slider.domNode,\"mousedown\",(function(e){if(e.preventDefault(),e.stopPropagation(),e.leftButton&&r._lastRenderData){var t=e.posy,n=e.posx,i=r._lastRenderData.renderedLayout;r._slider.toggleClassName(\"active\",!0),\nr._sliderMouseMoveMonitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){var o=Math.abs(e.posx-n);if(s.isWindows&&o>S)r._context.viewLayout.setScrollPositionNow({scrollTop:i.scrollTop});else{var a=e.posy-t;r._context.viewLayout.setScrollPositionNow({scrollTop:i.getDesiredScrollTopFromDelta(a)})}}),(function(){r._slider.toggleClassName(\"active\",!1)}))}})),r._gestureDisposable=m.Gesture.addTarget(r._domNode.domNode),r._sliderTouchStartListener=n.addDisposableListener(r._domNode.domNode,m.EventType.Start,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&(r._slider.toggleClassName(\"active\",!0),r._gestureInProgress=!0,r.scrollDueToTouchEvent(e))})),r._sliderTouchMoveListener=n.addStandardDisposableListener(r._domNode.domNode,m.EventType.Change,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&r._gestureInProgress&&r.scrollDueToTouchEvent(e)})),\nr._sliderTouchEndListener=n.addStandardDisposableListener(r._domNode.domNode,m.EventType.End,(function(e){e.preventDefault(),e.stopPropagation(),r._gestureInProgress=!1,r._slider.toggleClassName(\"active\",!1)})),r}return r(t,e),t.prototype.scrollDueToTouchEvent=function(e){var t=this._domNode.domNode.getBoundingClientRect().top,n=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._context.viewLayout.setScrollPositionNow({scrollTop:n})},t.prototype.dispose=function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),e.prototype.dispose.call(this)},t.prototype._getMinimapDomNodeClassName=function(){return\"always\"===this._options.showSlider?\"minimap slider-always\":\"minimap slider-mouseover\"},t.prototype.getDomNode=function(){return this._domNode},\nt.prototype._applyLayout=function(){this._domNode.setLeft(this._options.minimapLeft),this._domNode.setWidth(this._options.minimapWidth),this._domNode.setHeight(this._options.minimapHeight),this._shadow.setHeight(this._options.minimapHeight),this._canvas.setWidth(this._options.canvasOuterWidth),this._canvas.setHeight(this._options.canvasOuterHeight),this._canvas.domNode.width=this._options.canvasInnerWidth,this._canvas.domNode.height=this._options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._options.canvasInnerHeight,this._slider.setWidth(this._options.minimapWidth)},t.prototype._getBuffer=function(){\nreturn this._buffers||this._options.canvasInnerWidth>0&&this._options.canvasInnerHeight>0&&(this._buffers=new N(this._canvas.domNode.getContext(\"2d\"),this._options.canvasInnerWidth,this._options.canvasInnerHeight,this._tokensColorTracker.getColor(2))),this._buffers?this._buffers.getBuffer():null},t.prototype._onOptionsMaybeChanged=function(){var e=new w(this._context.configuration);return!this._options.equals(e)&&(this._options=e,this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName()),!0)},t.prototype.onConfigurationChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections,this._renderDecorations=!0,!0},t.prototype.onFlushed=function(e){return this._lastRenderData=null,!0},t.prototype.onLinesChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){\nreturn this._lastRenderData&&this._lastRenderData.onLinesDeleted(e),!0},t.prototype.onLinesInserted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e),!0},t.prototype.onScrollChanged=function(e){return this._renderDecorations=!0,!0},t.prototype.onTokensChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)},t.prototype.onTokensColorsChanged=function(e){return this._lastRenderData=null,this._buffers=null,!0},t.prototype.onZonesChanged=function(e){return this._lastRenderData=null,!0},t.prototype.onDecorationsChanged=function(e){return this._renderDecorations=!0,!0},t.prototype.onThemeChanged=function(e){return this._context.model.invalidateMinimapColorCache(),this._selectionColor=this._context.theme.getColor(g.minimapSelection),this._renderDecorations=!0,!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){if(0===this._options.renderMinimap)return this._shadow.setClassName(\"minimap-shadow-hidden\"),\nthis._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName(\"minimap-shadow-hidden\"):this._shadow.setClassName(\"minimap-shadow-visible\");var t=E.create(this._options,e.visibleRange.startLineNumber,e.visibleRange.endLineNumber,e.viewportHeight,e.viewportData.whitespaceViewportData.length>0,this._context.model.getLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._options.typicalHalfwidthCharacterWidth,i=Math.min(this._options.minimapWidth,Math.round(n*b(this._options.renderMinimap,this._options.fontScale)/this._options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)},\nt.prototype.renderDecorations=function(e){if(this._renderDecorations){this._renderDecorations=!1;var t=this._context.model.getDecorationsInViewport(new c.Range(e.startLineNumber,1,e.endLineNumber,this._context.model.getLineMaxColumn(e.endLineNumber))),n=this._options,i=n.renderMinimap,o=n.canvasInnerWidth,r=n.canvasInnerHeight,s=C(i,this._options.fontScale),a=b(0,this._options.fontScale),l=this._context.model.getOptions().tabSize,u=this._decorationsCanvas.domNode.getContext(\"2d\");u.clearRect(0,0,o,r);for(var d=new Map,h=0;h<this._selections.length;h++)for(var p=this._selections[h],g=p.startLineNumber;g<=p.endLineNumber;g++)this.renderDecorationOnLine(u,d,p,this._selectionColor,e,g,s,s,l,a);for(h=0;h<t.length;h++){var f=t[h];if(f.options.minimap){var m=f.options.minimap.getColor(this._context.theme);for(g=f.range.startLineNumber;g<=f.range.endLineNumber;g++)switch(f.options.minimap.position){case _.MinimapPosition.Inline:this.renderDecorationOnLine(u,d,f.range,m,e,g,s,s,l,a);continue\n;case _.MinimapPosition.Gutter:var v=(g-e.startLineNumber)*s;this.renderDecoration(u,m,2,v,2,s);continue}}}}},t.prototype.renderDecorationOnLine=function(e,t,n,i,o,r,s,l,u,c){var h=(r-o.startLineNumber)*l;if(!(h+s<0||h>this._options.canvasInnerHeight)){var p=t.get(r),g=!p;if(!p){var f=this._context.model.getLineContent(r);p=[d.MINIMAP_GUTTER_WIDTH];for(var m=1;m<f.length+1;m++){var v=f.charCodeAt(m-1),_=9===v?u*c:a.isFullWidthCharacter(v)?2*c:c;p[m]=p[m-1]+_}t.set(r,p)}var y=n.startColumn,C=n.endColumn,b=n.startLineNumber,S=n.endLineNumber,w=b===r?p[y-1]:d.MINIMAP_GUTTER_WIDTH,E=S>r?p.length-1:C-1;if(E>0){var L=p[E]-w||2;this.renderDecoration(e,i,w,h,L,s)}g&&this.renderLineHighlight(e,i,h,s)}},t.prototype.renderLineHighlight=function(e,t,n,i){e.fillStyle=t&&t.transparent(.5).toString()||\"\",e.fillRect(d.MINIMAP_GUTTER_WIDTH,n,e.canvas.width,i)},t.prototype.renderDecoration=function(e,t,n,i,o,r){e.fillStyle=t&&t.toString()||\"\",e.fillRect(n,i,o,r)},t.prototype.renderLines=function(e){\nvar n=this._options.renderMinimap,i=this._options.charRenderer(),o=e.startLineNumber,r=e.endLineNumber,s=C(n,this._options.fontScale);if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var a=this._lastRenderData._get();return new D(e,a.imageData,a.lines)}var l=this._getBuffer();if(!l)return null;for(var u=t._renderUntouchedLines(l,o,r,s,this._lastRenderData),d=u[0],c=u[1],h=u[2],p=this._context.model.getMinimapLinesRenderingData(o,r,h),g=p.tabSize,f=this._tokensColorTracker.getColor(2),m=this._tokensColorTracker.backgroundIsLight(),v=0,_=[],y=0,b=r-o+1;y<b;y++)h[y]&&t._renderLine(l,f,m,n,this._tokensColorTracker,i,v,g,p.data[y],this._options.fontScale),_[y]=new L(v),v+=s;var S=-1===d?0:d,w=(-1===c?l.height:c)-S;return this._canvas.domNode.getContext(\"2d\").putImageData(l,0,0,0,S,l.width,w),new D(e,l,_)},t._renderUntouchedLines=function(e,t,n,i,o){var r=[];if(!o){for(var s=0,a=n-t+1;s<a;s++)r[s]=!0;return[-1,-1,r]}\nfor(var l=o._get(),u=l.imageData.data,d=l.rendLineNumberStart,c=l.lines,h=c.length,p=e.width,g=e.data,f=(n-t+1)*i*p*4,m=-1,v=-1,_=-1,y=-1,C=-1,b=-1,S=0,w=t;w<=n;w++){var E=w-t,L=w-d,D=L>=0&&L<h?c[L].dy:-1;if(-1!==D){var N=D*p*4,x=(D+i)*p*4,I=S*p*4,M=(S+i)*p*4;y===N&&b===I?(y=x,b=M):(-1!==_&&(g.set(u.subarray(_,y),C),-1===m&&0===_&&_===C&&(m=y),-1===v&&y===f&&_===C&&(v=_)),_=N,y=x,C=I,b=M),r[E]=!1,S+=i}else r[E]=!0,S+=i}return-1!==_&&(g.set(u.subarray(_,y),C),-1===m&&0===_&&_===C&&(m=y),-1===v&&y===f&&_===C&&(v=_)),[-1===m?-1:m/(4*p),-1===v?-1:v/(4*p),r]},t._renderLine=function(e,t,n,i,o,r,s,l,u,c){for(var h=u.content,p=u.tokens,g=b(0,c),f=e.width-g,m=d.MINIMAP_GUTTER_WIDTH,v=0,_=0,y=0,C=p.getCount();y<C;y++)for(var S=p.getEndOffset(y),w=p.getForeground(y),E=o.getColor(w);v<S;v++){if(m>f)return;var L=h.charCodeAt(v);if(9===L){var D=l-(v+_)%l;_+=D-1,m+=D*g}else if(32===L)m+=g;else for(var N=a.isFullWidthCharacter(L)?2:1,x=0;x<N;x++)if(2===i?r.blockRenderChar(e,m,s,E,t,n):r.renderChar(e,m,s,L,E,t,c,n),\n(m+=g)>f)return}},t}(u.ViewPart);t.Minimap=x,f.registerThemingParticipant((function(e,t){var n=e.getColor(g.scrollbarSliderBackground);if(n){var i=n.transparent(.5);t.addRule(\".monaco-editor .minimap-slider, .monaco-editor .minimap-slider .minimap-slider-horizontal { background: \"+i+\"; }\")}var o=e.getColor(g.scrollbarSliderHoverBackground);if(o){var r=o.transparent(.5);t.addRule(\".monaco-editor .minimap-slider:hover, .monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: \"+r+\"; }\")}var s=e.getColor(g.scrollbarSliderActiveBackground);if(s){var a=s.transparent(.5);t.addRule(\".monaco-editor .minimap-slider.active, .monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: \"+a+\"; }\")}var l=e.getColor(g.scrollbarShadow);l&&t.addRule(\".monaco-editor .minimap-shadow-visible { box-shadow: \"+l+\" -6px 0 6px -6px inset; }\")}))})),define(n[554],i([0,1,28,37,20,14,296]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){\nfunction t(t){var i=e.call(this,t)||this;i._scrollTop=0,i._width=0,i._updateWidth(),i._shouldShow=!1;var o=i._context.configuration.options.get(78);return i._useShadows=o.useShadows,i._domNode=n.createFastDomNode(document.createElement(\"div\")),i._domNode.setAttribute(\"role\",\"presentation\"),i._domNode.setAttribute(\"aria-hidden\",\"true\"),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._updateShouldShow=function(){var e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)},t.prototype.getDomNode=function(){return this._domNode},t.prototype._updateWidth=function(){var e=this._context.configuration.options.get(107);0===e.renderMinimap||e.minimapWidth>0&&0===e.minimapLeft?this._width=e.width:this._width=e.width-e.minimapWidth-e.verticalScrollbarWidth},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options.get(78);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0},\nt.prototype.onScrollChanged=function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?\"scroll-decoration\":\"\")},t}(i.ViewPart);t.ScrollDecorationViewPart=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.scrollbarShadow);n&&t.addRule(\".monaco-editor .scroll-decoration { box-shadow: \"+n+\" 0 6px 6px -6px inset; }\")}))})),define(n[555],i([0,1,24,82,20,14,297]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null},l=function(e,t){this.lineNumber=e,this.ranges=t};function u(e){return new a(e)}function d(e){return new l(e.lineNumber,e.ranges.map(u))}var c=n.isEdgeOrIE,h=function(e){function t(t){var n=e.call(this)||this;n._previousFrameVisibleRangesWithStyle=[],n._context=t;var i=n._context.configuration.options\n;return n._lineHeight=i.get(49),n._roundedSelection=i.get(76),n._typicalHalfwidthCharacterWidth=i.get(34).typicalHalfwidthCharacterWidth,n._selections=[],n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._lineHeight=t.get(49),this._roundedSelection=t.get(76),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},\nt.prototype.onZonesChanged=function(e){return!0},t.prototype._visibleRangesHaveGaps=function(e){for(var t=0,n=e.length;t<n;t++){if(e[t].ranges.length>1)return!0}return!1},t.prototype._enrichVisibleRangesWithStyle=function(e,t,n){var i=this._typicalHalfwidthCharacterWidth/4,o=null,r=null;if(n&&n.length>0&&t.length>0){var s=t[0].lineNumber;if(s===e.startLineNumber)for(var a=0;!o&&a<n.length;a++)n[a].lineNumber===s&&(o=n[a].ranges[0]);var l=t[t.length-1].lineNumber;if(l===e.endLineNumber)for(a=n.length-1;!r&&a>=0;a--)n[a].lineNumber===l&&(r=n[a].ranges[0]);o&&!o.startStyle&&(o=null),r&&!r.startStyle&&(r=null)}a=0;for(var u=t.length;a<u;a++){var d=t[a].ranges[0],c=d.left,h=d.left+d.width,g={top:0,bottom:0},f={top:0,bottom:0};if(a>0){var m=t[a-1].ranges[0].left,v=t[a-1].ranges[0].left+t[a-1].ranges[0].width;p(c-m)<i?g.top=2:c>m&&(g.top=1),p(h-v)<i?f.top=2:m<h&&h<v&&(f.top=1)}else o&&(g.top=o.startStyle.top,f.top=o.endStyle.top);if(a+1<u){var _=t[a+1].ranges[0].left,y=t[a+1].ranges[0].left+t[a+1].ranges[0].width\n;p(c-_)<i?g.bottom=2:_<c&&c<y&&(g.bottom=1),p(h-y)<i?f.bottom=2:h<y&&(f.bottom=1)}else r&&(g.bottom=r.startStyle.bottom,f.bottom=r.endStyle.bottom);d.startStyle=g,d.endStyle=f}},t.prototype._getVisibleRangesWithStyle=function(e,t,n){var i=(t.linesVisibleRangesForRange(e,!0)||[]).map(d),o=this._visibleRangesHaveGaps(i);return c||o||!this._roundedSelection||this._enrichVisibleRangesWithStyle(t.visibleRange,i,n),i},t.prototype._createSelectionPiece=function(e,t,n,i,o){return'<div class=\"cslr '+n+'\" style=\"top:'+e.toString()+\"px;left:\"+i.toString()+\"px;width:\"+o.toString()+\"px;height:\"+t+'px;\"></div>'},t.prototype._actualRenderOneSelection=function(e,n,i,o){if(0!==o.length)for(var r=!!o[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=o[0].lineNumber,u=o[o.length-1].lineNumber,d=0,c=o.length;d<c;d++){for(var h=o[d],p=h.lineNumber,g=p-n,f=i&&(p===u||p===l)?a:s,m=i&&p===l?1:0,v=\"\",_=\"\",y=0,C=h.ranges.length;y<C;y++){var b=h.ranges[y];if(r){var S=b.startStyle,w=b.endStyle\n;if(1===S.top||1===S.bottom){v+=this._createSelectionPiece(m,f,t.SELECTION_CLASS_NAME,b.left-t.ROUNDED_PIECE_WIDTH,t.ROUNDED_PIECE_WIDTH);var E=t.EDITOR_BACKGROUND_CLASS_NAME;1===S.top&&(E+=\" \"+t.SELECTION_TOP_RIGHT),1===S.bottom&&(E+=\" \"+t.SELECTION_BOTTOM_RIGHT),v+=this._createSelectionPiece(m,f,E,b.left-t.ROUNDED_PIECE_WIDTH,t.ROUNDED_PIECE_WIDTH)}if(1===w.top||1===w.bottom){v+=this._createSelectionPiece(m,f,t.SELECTION_CLASS_NAME,b.left+b.width,t.ROUNDED_PIECE_WIDTH);var L=t.EDITOR_BACKGROUND_CLASS_NAME;1===w.top&&(L+=\" \"+t.SELECTION_TOP_LEFT),1===w.bottom&&(L+=\" \"+t.SELECTION_BOTTOM_LEFT),v+=this._createSelectionPiece(m,f,L,b.left+b.width,t.ROUNDED_PIECE_WIDTH)}}var D=t.SELECTION_CLASS_NAME;if(r){S=b.startStyle,w=b.endStyle;0===S.top&&(D+=\" \"+t.SELECTION_TOP_LEFT),0===S.bottom&&(D+=\" \"+t.SELECTION_BOTTOM_LEFT),0===w.top&&(D+=\" \"+t.SELECTION_TOP_RIGHT),0===w.bottom&&(D+=\" \"+t.SELECTION_BOTTOM_RIGHT)}_+=this._createSelectionPiece(m,f,D,b.left,b.width)}e[g][0]+=v,e[g][1]+=_}},\nt.prototype.prepareRender=function(e){for(var t=[],n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,o=n;o<=i;o++){t[o-n]=[\"\",\"\"]}for(var r=[],s=0,a=this._selections.length;s<a;s++){var l=this._selections[s];if(l.isEmpty())r[s]=null;else{var u=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[s]);r[s]=u,this._actualRenderOneSelection(t,n,this._selections.length>1,u)}}this._previousFrameVisibleRangesWithStyle=r,this._renderResult=t.map((function(e){return e[0]+e[1]}))},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t.SELECTION_CLASS_NAME=\"selected-text\",t.SELECTION_TOP_LEFT=\"top-left-radius\",t.SELECTION_BOTTOM_LEFT=\"bottom-left-radius\",t.SELECTION_TOP_RIGHT=\"top-right-radius\",t.SELECTION_BOTTOM_RIGHT=\"bottom-right-radius\",t.EDITOR_BACKGROUND_CLASS_NAME=\"monaco-editor-background\",t.ROUNDED_PIECE_WIDTH=10,t}(i.DynamicViewOverlay);function p(e){return e<0?-e:e}\nt.SelectionsOverlay=h,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorSelectionBackground);n&&t.addRule(\".monaco-editor .focused .selected-text { background-color: \"+n+\"; }\");var i=e.getColor(o.editorInactiveSelection);i&&t.addRule(\".monaco-editor .selected-text { background-color: \"+i+\"; }\");var r=e.getColor(o.editorSelectionForeground);r&&t.addRule(\".monaco-editor .view-line span.inline-selected-text { color: \"+r+\"; }\")}))})),define(n[556],i([0,1,4,2,16,10,33,30,17,118,114,43,15,26,157,14,95]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";function C(e){return e.toString()}Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e,t,n){this._modelEventListeners=new i.DisposableStore,this.model=e,this._languageSelection=null,this._languageSelectionListener=null,this._modelEventListeners.add(e.onWillDispose((function(){return t(e)}))),this._modelEventListeners.add(e.onDidChangeLanguage((function(t){return n(e,t)})))}\nreturn e.prototype._disposeLanguageSelection=function(){this._languageSelectionListener&&(this._languageSelectionListener.dispose(),this._languageSelectionListener=null),this._languageSelection&&(this._languageSelection.dispose(),this._languageSelection=null)},e.prototype.dispose=function(){this._modelEventListeners.dispose(),this._disposeLanguageSelection()},e.prototype.setLanguage=function(e){var t=this;this._disposeLanguageSelection(),this._languageSelection=e,this._languageSelectionListener=this._languageSelection.onDidChange((function(){return t.model.setMode(e.languageIdentifier)})),this.model.setMode(e.languageIdentifier)},e}(),S=o.isLinux||o.isMacintosh?1:2,w=function(e){function t(t,i,o,r){var s=e.call(this)||this;return s._onModelAdded=s._register(new n.Emitter),s.onModelAdded=s._onModelAdded.event,s._onModelRemoved=s._register(new n.Emitter),s.onModelRemoved=s._onModelRemoved.event,s._onModelModeChanged=s._register(new n.Emitter),s.onModelModeChanged=s._onModelModeChanged.event,\ns._configurationService=t,s._resourcePropertiesService=i,s._models={},s._modelCreationOptionsByLanguageAndResource=Object.create(null),s._configurationServiceSubscription=s._configurationService.onDidChangeConfiguration((function(e){return s._updateModelOptions()})),s._updateModelOptions(),s._register(new E(s,o,t,r)),s}return r(t,e),t._readModelOptions=function(e,t){var n=a.EDITOR_MODEL_DEFAULTS.tabSize;if(e.editor&&void 0!==e.editor.tabSize){var i=parseInt(e.editor.tabSize,10);isNaN(i)||(n=i),n<1&&(n=1)}var o=n;if(e.editor&&void 0!==e.editor.indentSize&&\"tabSize\"!==e.editor.indentSize){var r=parseInt(e.editor.indentSize,10);isNaN(r)||(o=r),o<1&&(o=1)}var s=a.EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(s=\"false\"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));var l=S,u=e.eol;\"\\r\\n\"===u?l=2:\"\\n\"===u&&(l=1);var d=a.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace\n;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(d=\"false\"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));var c=a.EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(c=\"false\"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));var h=a.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;return e.editor&&void 0!==e.editor.largeFileOptimizations&&(h=\"false\"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations)),{isForSimpleWidget:t,tabSize:n,indentSize:o,insertSpaces:s,detectIndentation:c,defaultEOL:l,trimAutoWhitespace:d,largeFileOptimizations:h}},t.prototype.getCreationOptions=function(e,n,i){var o=this._modelCreationOptionsByLanguageAndResource[e+n];if(!o){var r=this._configurationService.getValue(\"editor\",{overrideIdentifier:e,resource:n}),s=this._resourcePropertiesService.getEOL(n,e);o=t._readModelOptions({editor:r,eol:s},i),this._modelCreationOptionsByLanguageAndResource[e+n]=o}return o},\nt.prototype._updateModelOptions=function(){var e=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);for(var n=Object.keys(this._models),i=0,o=n.length;i<o;i++){var r=n[i],s=this._models[r],a=s.model.getLanguageIdentifier().language,l=s.model.uri,u=e[a+l],d=this.getCreationOptions(a,l,s.model.isForSimpleWidget);t._setModelOptionsForModel(s.model,d,u)}},t._setModelOptionsForModel=function(e,t,n){n&&n.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),n&&n.detectIndentation===t.detectIndentation&&n.insertSpaces===t.insertSpaces&&n.tabSize===t.tabSize&&n.indentSize===t.indentSize&&n.trimAutoWhitespace===t.trimAutoWhitespace||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace}))},t.prototype.dispose=function(){\nthis._configurationServiceSubscription.dispose(),e.prototype.dispose.call(this)},t.prototype._createModelData=function(e,t,n,i){var o=this,r=this.getCreationOptions(t.language,n,i),s=new l.TextModel(e,r,t,n),a=C(s.uri);if(this._models[a])throw new Error(\"ModelService: Cannot add model because it already exists!\");var u=new b(s,(function(e){return o._onWillDispose(e)}),(function(e,t){return o._onDidChangeLanguage(e,t)}));return this._models[a]=u,u},t.prototype.createModel=function(e,t,n,i){var o;return void 0===i&&(i=!1),t?(o=this._createModelData(e,t.languageIdentifier,n,i),this.setMode(o.model,t)):o=this._createModelData(e,d.PLAINTEXT_LANGUAGE_IDENTIFIER,n,i),this._onModelAdded.fire(o.model),o.model},t.prototype.setMode=function(e,t){if(t){var n=this._models[C(e.uri)];n&&n.setLanguage(t)}},t.prototype.getModels=function(){for(var e=[],t=Object.keys(this._models),n=0,i=t.length;n<i;n++){var o=t[n];e.push(this._models[o].model)}return e},t.prototype.getModel=function(e){var t=C(e),n=this._models[t]\n;return n?n.model:null},t.prototype._onWillDispose=function(e){var t=C(e.uri),n=this._models[t];delete this._models[t],n.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageIdentifier().language+e.uri],this._onModelRemoved.fire(e)},t.prototype._onDidChangeLanguage=function(e,n){var i=n.oldLanguage,o=e.getLanguageIdentifier().language,r=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),s=this.getCreationOptions(o,e.uri,e.isForSimpleWidget);t._setModelOptionsForModel(e,s,r),this._onModelModeChanged.fire({model:e,oldModeId:i})},t=h([g(0,p.IConfigurationService),g(1,c.ITextResourcePropertiesService),g(2,_.IThemeService),g(3,y.ILogService)],t)}(i.Disposable);t.ModelServiceImpl=w;var E=function(e){function t(n,i,o,r){var s=e.call(this)||this;s._configurationService=o,s._watchers=Object.create(null),s._semanticStyling=s._register(new L(i,r));var a=function(e){var n=o.getValue(t.SETTING_ID,{overrideIdentifier:e.getLanguageIdentifier().language,resource:e.uri});return n&&n.enabled\n},l=function(e){s._watchers[e.uri.toString()]=new M(e,i,s._semanticStyling)},u=function(e,t){t.dispose(),delete s._watchers[e.uri.toString()]};return s._register(n.onModelAdded((function(e){a(e)&&l(e)}))),s._register(n.onModelRemoved((function(e){var t=s._watchers[e.uri.toString()];t&&u(e,t)}))),s._configurationService.onDidChangeConfiguration((function(e){if(e.affectsConfiguration(t.SETTING_ID))for(var i=0,o=n.getModels();i<o.length;i++){var r=o[i],d=s._watchers[r.uri.toString()];a(r)?d||l(r):d&&u(r,d)}})),s}return r(t,e),t.SETTING_ID=\"editor.semanticHighlighting\",t}(i.Disposable),L=function(e){function t(t,n){var i=e.call(this)||this;return i._themeService=t,i._logService=n,i._caches=new WeakMap,i._themeService&&i._register(i._themeService.onThemeChange((function(){i._caches=new WeakMap}))),i}return r(t,e),t.prototype.get=function(e){return this._caches.has(e)||this._caches.set(e,new x(e.getLegend(),this._themeService,this._logService)),this._caches.get(e)},t}(i.Disposable),D=function(e,t,n){\nthis.tokenTypeIndex=e,this.tokenModifierSet=t,this.metadata=n,this.next=null},N=function(){function e(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],e._nullOutEntries(this._elements,this._currentLength)}return e._nullOutEntries=function(e,t){for(var n=0;n<t;n++)e[n]=null},e.prototype._hashFunc=function(e,t){return((e<<5)-e+t|0)%this._currentLength},e.prototype.get=function(e,t){for(var n=this._hashFunc(e,t),i=this._elements[n];i;){if(i.tokenTypeIndex===e&&i.tokenModifierSet===t)return i;i=i.next}return null},e.prototype.add=function(t,n,i){if(this._elementsCount++,0!==this._growCount&&this._elementsCount>=this._growCount){var o=this._elements;this._currentLengthIndex++,this._currentLength=e._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<e._SIZES.length?2/3*this._currentLength:0),this._elements=[],\ne._nullOutEntries(this._elements,this._currentLength);for(var r=0,s=o;r<s.length;r++)for(var a=s[r];a;){var l=a.next;a.next=null,this._add(a),a=l}}this._add(new D(t,n,i))},e.prototype._add=function(e){var t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet);e.next=this._elements[t],this._elements[t]=e},e._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143],e}(),x=function(){function e(e,t,n){this._legend=e,this._themeService=t,this._logService=n,this._hashTable=new N}return e.prototype.getMetadata=function(e,t){var n,i=this._hashTable.get(e,t);if(i)n=i.metadata;else{for(var o=this._legend.tokenTypes[e],r=[],s=t,a=0;s>0&&a<this._legend.tokenModifiers.length;a++)1&s&&r.push(this._legend.tokenModifiers[a]),s>>=1;var l=this._themeService.getTheme().getTokenStyleMetadata(o,r);if(void 0===l)n=2147483647;else{if(n=0,void 0!==l.italic)n|=1|(l.italic?1:0)<<11;if(void 0!==l.bold)n|=2|(l.bold?2:0)<<11;if(void 0!==l.underline)n|=4|(l.underline?4:0)<<11\n;if(l.foreground)n|=8|l.foreground<<14;0===n&&(n=2147483647)}this._hashTable.add(e,t,n)}if(this._logService.getLevel()===y.LogLevel.Trace){var d=this._legend.tokenTypes[e],c=t?\" \"+this._legend.tokenModifiers.filter((function(e,n){return t&1<<n})).join(\" \"):\"\";this._logService.trace(\"tokenStyleMetadata \"+(i?\"[CACHED] \":\"\")+d+c+\": foreground \"+u.TokenMetadata.getForeground(n)+\", fontStyle \"+u.TokenMetadata.getFontStyle(n).toString(2))}return n},e}(),I=function(){function e(e,t,n){this._provider=e,this.resultId=t,this.data=n}return e.prototype.dispose=function(){this._provider.releaseDocumentSemanticTokens(this.resultId)},e}(),M=function(e){function t(t,n,i){var o=e.call(this)||this;return o._isDisposed=!1,o._model=t,o._semanticStyling=i,o._fetchSemanticTokens=o._register(new f.RunOnceScheduler((function(){return o._fetchSemanticTokensNow()}),300)),o._currentResponse=null,o._currentRequestCancellationTokenSource=null,o._register(o._model.onDidChangeContent((function(e){\no._fetchSemanticTokens.isScheduled()||o._fetchSemanticTokens.schedule()}))),o._register(u.DocumentSemanticTokensProviderRegistry.onDidChange((function(e){return o._fetchSemanticTokens.schedule()}))),n&&o._register(n.onThemeChange((function(e){o._setSemanticTokens(null,null,null,[]),o._fetchSemanticTokens.schedule()}))),o._fetchSemanticTokens.schedule(0),o}return r(t,e),t.prototype.dispose=function(){this._currentResponse&&(this._currentResponse.dispose(),this._currentResponse=null),this._currentRequestCancellationTokenSource&&(this._currentRequestCancellationTokenSource.cancel(),this._currentRequestCancellationTokenSource=null),this._setSemanticTokens(null,null,null,[]),this._isDisposed=!0,e.prototype.dispose.call(this)},t.prototype._fetchSemanticTokensNow=function(){var e=this;if(!this._currentRequestCancellationTokenSource){var t=this._getSemanticColoringProvider();if(t){this._currentRequestCancellationTokenSource=new m.CancellationTokenSource;var n=[],i=this._model.onDidChangeContent((function(e){n.push(e)\n})),o=this._semanticStyling.get(t),r=this._currentResponse&&this._currentResponse.resultId||null;Promise.resolve(t.provideDocumentSemanticTokens(this._model,r,this._currentRequestCancellationTokenSource.token)).then((function(r){e._currentRequestCancellationTokenSource=null,i.dispose(),e._setSemanticTokens(t,r||null,o,n)}),(function(t){t&&\"string\"==typeof t.message&&-1!==t.message.indexOf(\"busy\")||s.onUnexpectedError(t),e._currentRequestCancellationTokenSource=null,i.dispose(),n.length>0&&(e._fetchSemanticTokens.isScheduled()||e._fetchSemanticTokens.schedule())}))}}},t._isSemanticTokens=function(e){return e&&!!e.data},t._isSemanticTokensEdits=function(e){return e&&Array.isArray(e.edits)},t._copy=function(e,t,n,i,o){for(var r=0;r<o;r++)n[i+r]=e[t+r]},t.prototype._setSemanticTokens=function(e,n,i,o){var r=this._currentResponse;if(this._currentResponse&&(this._currentResponse.dispose(),this._currentResponse=null),this._isDisposed)e&&n&&e.releaseDocumentSemanticTokens(n.resultId);else if(e&&n&&i){\nif(t._isSemanticTokensEdits(n)){if(!r)return void this._model.setSemanticTokens(null);if(0===n.edits.length)n={resultId:n.resultId,data:r.data};else{for(var s=0,a=0,l=n.edits;a<l.length;a++){s+=((g=l[a]).data?g.data.length:0)-g.deleteCount}for(var u=r.data,d=new Uint32Array(u.length+s),c=u.length,h=d.length,p=n.edits.length-1;p>=0;p--){var g,f=c-((g=n.edits[p]).start+g.deleteCount);f>0&&(t._copy(u,c-f,d,h-f,f),h-=f),g.data&&(t._copy(g.data,0,d,h-g.data.length,g.data.length),h-=g.data.length),c=g.start}c>0&&t._copy(u,0,d,0,c),n={resultId:n.resultId,data:d}}}if(t._isSemanticTokens(n)){this._currentResponse=new I(e,n.resultId,n.data);u=n.data;for(var m=n.data.length/5|0,_=Math.max(Math.ceil(m/1024),400),y=[],C=0,b=1,S=0;C<m;){var w=C,E=Math.min(w+_,m);if(E<m){for(var L=E;L-1>w&&0===u[5*L];)L--;if(L-1===w){for(var D=E;D+1<m&&0===u[5*D];)D++;E=D}else E=L}d=new Uint32Array(4*(E-w));for(var N=0,x=0;C<E;){var M=5*C,k=u[M],T=u[M+1],R=b+k,O=0===k?S+T:T,P=u[M+2],A=u[M+3],F=u[M+4],W=i.getMetadata(A,F)\n;2147483647!==W&&(0===x&&(x=R),d[N]=R-x,d[N+1]=O,d[N+2]=O+P,d[N+3]=W,N+=4),b=R,S=O,C++}N!==d.length&&(d=d.subarray(0,N));var B=new v.MultilineTokens2(x,new v.SparseEncodedTokens(d));y.push(B)}if(o.length>0){for(var V=0,z=o;V<z.length;V++)for(var H=z[V],K=0,U=y;K<U.length;K++)for(var j=U[K],q=0,G=H.changes;q<G.length;q++){var Y=G[q];j.applyEdit(Y.range,Y.text)}this._fetchSemanticTokens.isScheduled()||this._fetchSemanticTokens.schedule()}this._model.setSemanticTokens(y)}else this._model.setSemanticTokens(null)}else this._model.setSemanticTokens(null)},t.prototype._getSemanticColoringProvider=function(){var e=u.DocumentSemanticTokensProviderRegistry.ordered(this._model);return e.length>0?e[0]:null},t}(i.Disposable)})),define(n[44],i([0,1,427,27,20,14]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.editorLineHighlight=o.registerColor(\"editor.lineHighlightBackground\",{dark:null,light:null,hc:null},n.localize(0,null)),\nt.editorLineHighlightBorder=o.registerColor(\"editor.lineHighlightBorder\",{dark:\"#282828\",light:\"#eeeeee\",hc:\"#f38518\"},n.localize(1,null)),t.editorRangeHighlight=o.registerColor(\"editor.rangeHighlightBackground\",{dark:\"#ffffff0b\",light:\"#fdff0033\",hc:null},n.localize(2,null),!0),t.editorRangeHighlightBorder=o.registerColor(\"editor.rangeHighlightBorder\",{dark:null,light:null,hc:o.activeContrastBorder},n.localize(3,null),!0),t.editorSymbolHighlight=o.registerColor(\"editor.symbolHighlightBackground\",{dark:o.editorFindMatchHighlight,light:o.editorFindMatchHighlight,hc:null},n.localize(4,null),!0),t.editorSymbolHighlightBorder=o.registerColor(\"editor.symbolHighlightBorder\",{dark:null,light:null,hc:o.activeContrastBorder},n.localize(5,null),!0),t.editorCursorForeground=o.registerColor(\"editorCursor.foreground\",{dark:\"#AEAFAD\",light:i.Color.black,hc:i.Color.white},n.localize(6,null)),t.editorCursorBackground=o.registerColor(\"editorCursor.background\",null,n.localize(7,null)),\nt.editorWhitespaces=o.registerColor(\"editorWhitespace.foreground\",{dark:\"#e3e4e229\",light:\"#33333333\",hc:\"#e3e4e229\"},n.localize(8,null)),t.editorIndentGuides=o.registerColor(\"editorIndentGuide.background\",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},n.localize(9,null)),t.editorActiveIndentGuides=o.registerColor(\"editorIndentGuide.activeBackground\",{dark:t.editorWhitespaces,light:t.editorWhitespaces,hc:t.editorWhitespaces},n.localize(10,null)),t.editorLineNumbers=o.registerColor(\"editorLineNumber.foreground\",{dark:\"#858585\",light:\"#237893\",hc:i.Color.white},n.localize(11,null));var s=o.registerColor(\"editorActiveLineNumber.foreground\",{dark:\"#c6c6c6\",light:\"#0B216F\",hc:o.activeContrastBorder},n.localize(12,null),!1,n.localize(13,null));t.editorActiveLineNumber=o.registerColor(\"editorLineNumber.activeForeground\",{dark:s,light:s,hc:s},n.localize(14,null)),t.editorRuler=o.registerColor(\"editorRuler.foreground\",{dark:\"#5A5A5A\",light:i.Color.lightgrey,hc:i.Color.white\n},n.localize(15,null)),t.editorCodeLensForeground=o.registerColor(\"editorCodeLens.foreground\",{dark:\"#999999\",light:\"#999999\",hc:\"#999999\"},n.localize(16,null)),t.editorBracketMatchBackground=o.registerColor(\"editorBracketMatch.background\",{dark:\"#0064001a\",light:\"#0064001a\",hc:\"#0064001a\"},n.localize(17,null)),t.editorBracketMatchBorder=o.registerColor(\"editorBracketMatch.border\",{dark:\"#888\",light:\"#B9B9B9\",hc:o.contrastBorder},n.localize(18,null)),t.editorOverviewRulerBorder=o.registerColor(\"editorOverviewRuler.border\",{dark:\"#7f7f7f4d\",light:\"#7f7f7f4d\",hc:\"#7f7f7f4d\"},n.localize(19,null)),t.editorGutter=o.registerColor(\"editorGutter.background\",{dark:o.editorBackground,light:o.editorBackground,hc:o.editorBackground},n.localize(20,null)),t.editorUnnecessaryCodeBorder=o.registerColor(\"editorUnnecessaryCode.border\",{dark:null,light:null,hc:i.Color.fromHex(\"#fff\").transparent(.8)},n.localize(21,null)),t.editorUnnecessaryCodeOpacity=o.registerColor(\"editorUnnecessaryCode.opacity\",{\ndark:i.Color.fromHex(\"#000a\"),light:i.Color.fromHex(\"#0007\"),hc:null},n.localize(22,null)),t.overviewRulerError=o.registerColor(\"editorOverviewRuler.errorForeground\",{dark:new i.Color(new i.RGBA(255,18,18,.7)),light:new i.Color(new i.RGBA(255,18,18,.7)),hc:new i.Color(new i.RGBA(255,50,50,1))},n.localize(23,null)),t.overviewRulerWarning=o.registerColor(\"editorOverviewRuler.warningForeground\",{dark:o.editorWarningForeground,light:o.editorWarningForeground,hc:o.editorWarningBorder},n.localize(24,null)),t.overviewRulerInfo=o.registerColor(\"editorOverviewRuler.infoForeground\",{dark:o.editorInfoForeground,light:o.editorInfoForeground,hc:o.editorInfoBorder},n.localize(25,null)),r.registerThemingParticipant((function(e,n){var i=e.getColor(o.editorBackground);i&&n.addRule(\".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: \"+i+\"; }\");var r=e.getColor(o.editorForeground);r&&n.addRule(\".monaco-editor, .monaco-editor .inputarea.ime-input { color: \"+r+\"; }\")\n;var s=e.getColor(t.editorGutter);s&&n.addRule(\".monaco-editor .margin { background-color: \"+s+\"; }\");var a=e.getColor(t.editorRangeHighlight);a&&n.addRule(\".monaco-editor .rangeHighlight { background-color: \"+a+\"; }\");var l=e.getColor(t.editorRangeHighlightBorder);l&&n.addRule(\".monaco-editor .rangeHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+l+\"; }\");var u=e.getColor(t.editorSymbolHighlight);u&&n.addRule(\".monaco-editor .symbolHighlight { background-color: \"+u+\"; }\");var d=e.getColor(t.editorSymbolHighlightBorder);d&&n.addRule(\".monaco-editor .symbolHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+d+\"; }\");var c=e.getColor(t.editorWhitespaces);c&&n.addRule(\".vs-whitespace { color: \"+c+\" !important; }\")}))})),define(n[557],i([0,1,82,44,19,14,285]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=!0,l=function(e){function t(t){var n=e.call(this)||this;n._context=t;var i=n._context.configuration.options,o=i.get(107)\n;return n._lineHeight=i.get(49),n._renderLineHighlight=i.get(72),n._contentLeft=o.contentLeft,n._contentWidth=o.contentWidth,n._selectionIsEmpty=!0,n._cursorLineNumbers=[],n._selections=[],n._renderData=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype._readFromSelections=function(){var e=!1,t=a?this._selections.slice(0,1):this._selections,n=t.map((function(e){return e.positionLineNumber}));n.sort((function(e,t){return e-t})),o.equals(this._cursorLineNumbers,n)||(this._cursorLineNumbers=n,e=!0);var i=t.every((function(e){return e.isEmpty()}));return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e},t.prototype.onThemeChanged=function(e){return this._readFromSelections()},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._lineHeight=t.get(49),this._renderLineHighlight=t.get(72),this._contentLeft=n.contentLeft,\nthis._contentWidth=n.contentWidth,!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections,this._readFromSelections()},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollWidthChanged||e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._shouldRenderThis()){for(var t=this._renderOne(e),n=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,o=this._cursorLineNumbers.length,r=0,s=[],a=n;a<=i;a++){for(var l=a-n;r<o&&this._cursorLineNumbers[r]<a;)r++;r<o&&this._cursorLineNumbers[r]===a?s[l]=t:s[l]=\"\"}this._renderData=s}else this._renderData=null},t.prototype.render=function(e,t){if(!this._renderData)return\"\";var n=t-e;return n>=this._renderData.length?\"\":this._renderData[n]},t}(n.DynamicViewOverlay);t.AbstractLineHighlightOverlay=l;var u=function(e){function t(){\nreturn null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._renderOne=function(e){return'<div class=\"'+(\"current-line\"+(this._shouldRenderOther()?\" current-line-both\":\"\"))+'\" style=\"width:'+Math.max(e.scrollWidth,this._contentWidth)+\"px; height:\"+this._lineHeight+'px;\"></div>'},t.prototype._shouldRenderThis=function(){return(\"line\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight)&&this._selectionIsEmpty},t.prototype._shouldRenderOther=function(){return\"gutter\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight},t}(l);t.CurrentLineHighlightOverlay=u;var d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._renderOne=function(e){return'<div class=\"'+(\"current-line current-line-margin\"+(this._shouldRenderOther()?\" current-line-margin-both\":\"\"))+'\" style=\"width:'+this._contentLeft+\"px; height:\"+this._lineHeight+'px;\"></div>'},t.prototype._shouldRenderThis=function(){\nreturn\"gutter\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight},t.prototype._shouldRenderOther=function(){return(\"line\"===this._renderLineHighlight||\"all\"===this._renderLineHighlight)&&this._selectionIsEmpty},t}(l);t.CurrentLineMarginHighlightOverlay=d,s.registerThemingParticipant((function(e,t){a=!1;var n=e.getColor(i.editorLineHighlight);if(n&&(t.addRule(\".monaco-editor .view-overlays .current-line { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { background-color: \"+n+\"; border: none; }\")),!n||n.isTransparent()||e.defines(i.editorLineHighlightBorder)){var o=e.getColor(i.editorLineHighlightBorder);o&&(a=!0,t.addRule(\".monaco-editor .view-overlays .current-line { border: 2px solid \"+o+\"; }\"),t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid \"+o+\"; }\"),\"hc\"===e.type&&(t.addRule(\".monaco-editor .view-overlays .current-line { border-width: 1px; }\"),\nt.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }\")))}}))})),define(n[558],i([0,1,82,13,44,14,288]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var n=e.call(this)||this;n._context=t,n._primaryLineNumber=0;var i=n._context.configuration.options,o=i.get(108),r=i.get(34);return n._lineHeight=i.get(49),n._spaceWidth=r.spaceWidth,n._enabled=i.get(70),n._activeIndentEnabled=i.get(43),n._maxIndentLeft=-1===o.wrappingColumn?-1:o.wrappingColumn*r.typicalHalfwidthCharacterWidth,n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(108),i=t.get(34);return this._lineHeight=t.get(49),this._spaceWidth=i.spaceWidth,this._enabled=t.get(70),this._activeIndentEnabled=t.get(43),\nthis._maxIndentLeft=-1===n.wrappingColumn?-1:n.wrappingColumn*i.typicalHalfwidthCharacterWidth,!0},t.prototype.onCursorStateChanged=function(e){var t=e.selections[0],n=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==n&&(this._primaryLineNumber=n,!0)},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onLanguageConfigurationChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._enabled){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._context.model.getOptions().indentSize*this._spaceWidth,r=e.scrollWidth,s=this._lineHeight,a=this._context.model.getLinesIndentGuides(t,n),l=0,u=0,d=0\n;if(this._activeIndentEnabled&&this._primaryLineNumber){var c=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,n);l=c.startLineNumber,u=c.endLineNumber,d=c.indent}for(var h=[],p=t;p<=n;p++){var g=l<=p&&p<=u,f=p-t,m=a[f],v=\"\";if(m>=1)for(var _=e.visibleRangeForPosition(new i.Position(p,1)),y=_?_.left:0,C=1;C<=m;C++){if(v+='<div class=\"'+(g&&C===d?\"cigra\":\"cigr\")+'\" style=\"left:'+y+\"px;height:\"+s+\"px;width:\"+o+'px\"></div>',(y+=o)>r||this._maxIndentLeft>0&&y>this._maxIndentLeft)break}h[f]=v}this._renderResult=h}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t}(n.DynamicViewOverlay);t.IndentGuidesOverlay=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorIndentGuides);n&&t.addRule(\".monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 \"+n+\" inset; }\");var i=e.getColor(o.editorActiveIndentGuides)||n\n;i&&t.addRule(\".monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 \"+i+\" inset; }\")}))})),define(n[229],i([0,1,16,82,13,44,14,289]),(function(e,t,n,i,o,s,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var l=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._readConfig(),n._lastCursorModelPosition=new o.Position(1,1),n._renderResult=null,n._context.addEventHandler(n),n}return r(t,e),t.prototype._readConfig=function(){var e=this._context.configuration.options;this._lineHeight=e.get(49);var t=e.get(50);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(71);var n=e.get(107);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth},t.prototype.dispose=function(){this._context.removeEventHandler(this),this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return this._readConfig(),!0},t.prototype.onCursorStateChanged=function(e){\nvar t=e.selections[0].getPosition();return this._lastCursorModelPosition=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t),2===this._renderLineNumbers||3===this._renderLineNumbers},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getLineRenderLineNumber=function(e){var t=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new o.Position(e,1));if(1!==t.column)return\"\";var n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(2===this._renderLineNumbers){var i=Math.abs(this._lastCursorModelPosition.lineNumber-n);return 0===i?'<span class=\"relative-current-line-number\">'+n+\"</span>\":String(i)}\nreturn 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===n?String(n):n%10==0?String(n):\"\":String(n)},t.prototype.prepareRender=function(e){if(0!==this._renderLineNumbers){for(var i=n.isLinux?this._lineHeight%2==0?\" lh-even\":\" lh-odd\":\"\",o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s='<div class=\"'+t.CLASS_NAME+i+'\" style=\"left:'+this._lineNumbersLeft.toString()+\"px;width:\"+this._lineNumbersWidth.toString()+'px;\">',a=this._context.model.getLineCount(),l=[],u=o;u<=r;u++){var d=u-o;if(this._renderFinalNewline||u!==a||0!==this._context.model.getLineLength(u)){var c=this._getLineRenderLineNumber(u);l[d]=c?s+c+\"</div>\":\"\"}else l[d]=\"\"}this._renderResult=l}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return\"\";var n=t-e;return n<0||n>=this._renderResult.length?\"\":this._renderResult[n]},t.CLASS_NAME=\"line-numbers\",t}(i.DynamicViewOverlay);t.LineNumbersOverlay=l,a.registerThemingParticipant((function(e,t){\nvar n=e.getColor(s.editorLineNumbers);n&&t.addRule(\".monaco-editor .line-numbers { color: \"+n+\"; }\");var i=e.getColor(s.editorActiveLineNumber);i&&t.addRule(\".monaco-editor .current-line ~ .line-numbers { color: \"+i+\"; }\")}))})),define(n[559],i([0,1,416,24,28,16,5,60,189,187,37,229,195,33,89,13,3,22,81,284]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=function(){function e(e,t,n){this.top=e,this.left=t,this.width=n}return e.prototype.setWidth=function(t){return new e(this.top,this.left,t)},e}(),b=i.isEdgeOrIE||i.isFirefox,S=function(e){function t(t,n,r){var a=e.call(this,t)||this;a._primaryCursorPosition=new m.Position(1,1),a._primaryCursorVisibleRange=null,a._viewController=n,a._viewHelper=r,a._scrollLeft=0,a._scrollTop=0;var l=a._context.configuration.options,h=l.get(107);a._setAccessibilityOptions(l),a._contentLeft=h.contentLeft,a._contentWidth=h.contentWidth,a._contentHeight=h.height,a._fontInfo=l.get(34),a._lineHeight=l.get(49),\na._emptySelectionClipboard=l.get(25),a._copyWithSyntaxHighlighting=l.get(15),a._visibleTextArea=null,a._selections=[new _.Selection(1,1,1,1)],a._modelSelections=[new _.Selection(1,1,1,1)],a._lastRenderPosition=null,a.textArea=o.createFastDomNode(document.createElement(\"textarea\")),c.PartFingerprints.write(a.textArea,6),a.textArea.setClassName(\"inputarea\"),a.textArea.setAttribute(\"wrap\",\"off\"),a.textArea.setAttribute(\"autocorrect\",\"off\"),a.textArea.setAttribute(\"autocapitalize\",\"off\"),a.textArea.setAttribute(\"autocomplete\",\"off\"),a.textArea.setAttribute(\"spellcheck\",\"false\"),a.textArea.setAttribute(\"aria-label\",a._getAriaLabel(l)),a.textArea.setAttribute(\"role\",\"textbox\"),a.textArea.setAttribute(\"aria-multiline\",\"true\"),a.textArea.setAttribute(\"aria-haspopup\",\"false\"),a.textArea.setAttribute(\"aria-autocomplete\",\"both\"),s.isWeb&&l.get(68)&&a.textArea.setAttribute(\"readonly\",\"true\"),a.textAreaCover=o.createFastDomNode(document.createElement(\"div\")),a.textAreaCover.setPosition(\"absolute\");var p={\ngetLineCount:function(){return a._context.model.getLineCount()},getLineMaxColumn:function(e){return a._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return a._context.model.getValueInRange(e,t)}},g={getDataToCopy:function(e){var t=a._context.model.getPlainTextToCopy(a._modelSelections,a._emptySelectionClipboard,s.isWindows),n=a._context.model.getEOL(),i=a._emptySelectionClipboard&&1===a._modelSelections.length&&a._modelSelections[0].isEmpty(),o=Array.isArray(t)?t:null,r=Array.isArray(t)?t.join(n):t,l=void 0,d=null;if(e&&(u.CopyOptions.forceCopyWithSyntaxHighlighting||a._copyWithSyntaxHighlighting&&r.length<65536)){var c=a._context.model.getRichTextToCopy(a._modelSelections,a._emptySelectionClipboard);c&&(l=c.html,d=c.mode)}return{isFromEmptySelection:i,multicursorText:o,text:r,html:l,mode:d}},getScreenReaderContent:function(e){if(i.isIPad)return d.TextAreaState.EMPTY;if(1===a._accessibilitySupport){if(s.isMacintosh){var t=a._selections[0];if(t.isEmpty()){\nvar n=t.getStartPosition(),o=a._getWordBeforePosition(n);if(0===o.length&&(o=a._getCharacterBeforePosition(n)),o.length>0)return new d.TextAreaState(o,o.length,o.length,n,n)}}return d.TextAreaState.EMPTY}return d.PagedScreenReaderStrategy.fromEditorSelection(e,p,a._selections[0],a._accessibilityPageSize,0===a._accessibilitySupport)},deduceModelPosition:function(e,t,n){return a._context.model.deduceModelPositionRelativeToViewPosition(e,t,n)}};return a._textAreaInput=a._register(new u.TextAreaInput(g,a.textArea)),a._register(a._textAreaInput.onKeyDown((function(e){a._viewController.emitKeyDown(e)}))),a._register(a._textAreaInput.onKeyUp((function(e){a._viewController.emitKeyUp(e)}))),a._register(a._textAreaInput.onPaste((function(e){var t=!1,n=null,i=null;e.metadata&&(t=a._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,n=void 0!==e.metadata.multicursorText?e.metadata.multicursorText:null,i=e.metadata.mode),a._viewController.paste(\"keyboard\",e.text,t,n,i)}))),\na._register(a._textAreaInput.onCut((function(){a._viewController.cut(\"keyboard\")}))),a._register(a._textAreaInput.onType((function(e){e.replaceCharCnt?a._viewController.replacePreviousChar(\"keyboard\",e.text,e.replaceCharCnt):a._viewController.type(\"keyboard\",e.text)}))),a._register(a._textAreaInput.onSelectionChangeRequest((function(e){a._viewController.setSelection(\"keyboard\",e)}))),a._register(a._textAreaInput.onCompositionStart((function(){var e=a._selections[0].startLineNumber,t=a._selections[0].startColumn;a._context.privateViewEventBus.emit(new y.ViewRevealRangeRequestEvent(\"keyboard\",new v.Range(e,t,e,t),0,!0,1));var n=a._viewHelper.visibleRangeForPositionRelativeToEditor(e,t);n&&(a._visibleTextArea=new C(a._context.viewLayout.getVerticalOffsetForLineNumber(e),n.left,b?0:1),a._render()),a.textArea.setClassName(\"inputarea ime-input\"),a._viewController.compositionStart(\"keyboard\")}))),a._register(a._textAreaInput.onCompositionUpdate((function(e){\ni.isEdgeOrIE?a._visibleTextArea=a._visibleTextArea.setWidth(0):a._visibleTextArea=a._visibleTextArea.setWidth(function(e,t){var n=document.createElement(\"canvas\").getContext(\"2d\");n.font=(o=t,r=\"normal\",s=o.fontWeight,a=o.fontSize,l=o.lineHeight,u=o.fontFamily,r+\" normal \"+s+\" \"+a+\"px / \"+l+\"px \"+u);var o,r,s,a,l,u;var d=n.measureText(e);return i.isFirefox?d.width+2:d.width}(e.data,a._fontInfo)),a._render()}))),a._register(a._textAreaInput.onCompositionEnd((function(){a._visibleTextArea=null,a._render(),a.textArea.setClassName(\"inputarea\"),a._viewController.compositionEnd(\"keyboard\")}))),a._register(a._textAreaInput.onFocus((function(){a._context.privateViewEventBus.emit(new y.ViewFocusChangedEvent(!0))}))),a._register(a._textAreaInput.onBlur((function(){a._context.privateViewEventBus.emit(new y.ViewFocusChangedEvent(!1))}))),a}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getWordBeforePosition=function(e){\nfor(var t=this._context.model.getLineContent(e.lineNumber),n=f.getMapForWordSeparators(this._context.configuration.options.get(96)),i=e.column,o=0;i>1;){var r=t.charCodeAt(i-2);if(0!==n.get(r)||o>50)return t.substring(i-1,e.column-1);o++,i--}return t.substring(0,e.column-1)},t.prototype._getCharacterBeforePosition=function(e){if(e.column>1){var t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2);if(!a.isHighSurrogate(t.charCodeAt(0)))return t}return\"\"},t.prototype._getAriaLabel=function(e){return 1===e.get(2)?n.localize(0,null):e.get(4)},t.prototype._setAccessibilityOptions=function(e){this._accessibilitySupport=e.get(2);var t=e.get(3);2===this._accessibilitySupport&&t===g.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=160:this._accessibilityPageSize=t},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options,n=t.get(107);return this._setAccessibilityOptions(t),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,\nthis._contentHeight=n.height,this._fontInfo=t.get(34),this._lineHeight=t.get(49),this._emptySelectionClipboard=t.get(25),this._copyWithSyntaxHighlighting=t.get(15),this.textArea.setAttribute(\"aria-label\",this._getAriaLabel(t)),s.isWeb&&e.hasChanged(68)&&(t.get(68)?this.textArea.setAttribute(\"readonly\",\"true\"):this.textArea.removeAttribute(\"readonly\")),e.hasChanged(2)&&this._textAreaInput.writeScreenReaderContent(\"strategy changed\"),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeScreenReaderContent(\"selection changed\"),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0},\nt.prototype.onZonesChanged=function(e){return!0},t.prototype.isFocused=function(){return this._textAreaInput.isFocused()},t.prototype.focusTextArea=function(){this._textAreaInput.focusTextArea()},t.prototype.getLastRenderData=function(){return this._lastRenderPosition},t.prototype.setAriaOptions=function(e){e.activeDescendant?(this.textArea.setAttribute(\"aria-haspopup\",\"true\"),this.textArea.setAttribute(\"aria-autocomplete\",\"list\"),this.textArea.setAttribute(\"aria-activedescendant\",e.activeDescendant)):(this.textArea.setAttribute(\"aria-haspopup\",\"false\"),this.textArea.setAttribute(\"aria-autocomplete\",\"both\"),this.textArea.removeAttribute(\"aria-activedescendant\"))},t.prototype.prepareRender=function(e){this._primaryCursorPosition=new m.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition)},t.prototype.render=function(e){this._textAreaInput.writeScreenReaderContent(\"render\"),this._render()},\nt.prototype._render=function(){if(this._visibleTextArea)this._renderInsideEditor(null,this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():s.isMacintosh?this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,this._lineHeight):this._renderInsideEditor(this._primaryCursorPosition,t,e,b?0:1,b?0:1)}}else this._renderAtTopLeft()},t.prototype._renderInsideEditor=function(e,t,n,i,o){this._lastRenderPosition=e;var r=this.textArea,s=this.textAreaCover;l.Configuration.applyFontInfo(r,this._fontInfo),r.setTop(t),r.setLeft(n),r.setWidth(i),\nr.setHeight(o),s.setTop(0),s.setLeft(0),s.setWidth(0),s.setHeight(0)},t.prototype._renderAtTopLeft=function(){this._lastRenderPosition=null;var e=this.textArea,t=this.textAreaCover;if(l.Configuration.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),b)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1);var n=this._context.configuration.options;n.get(40)?t.setClassName(\"monaco-editor-background textAreaCover \"+p.Margin.OUTER_CLASS_NAME):0!==n.get(50).renderType?t.setClassName(\"monaco-editor-background textAreaCover \"+h.LineNumbersOverlay.CLASS_NAME):t.setClassName(\"monaco-editor-background textAreaCover\")},t}(c.ViewPart);t.TextAreaHandler=S})),define(n[560],i([0,1,28,27,37,13,17,44]),(function(e,t,n,i,o,s,a,l){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(e,t){var n=e.options;this.lineHeight=n.get(49),this.pixelRatio=n.get(105),\nthis.overviewRulerLanes=n.get(63),this.renderBorder=n.get(62);var o=t.getColor(l.editorOverviewRulerBorder);this.borderColor=o?o.toString():null,this.hideCursor=n.get(42);var r=t.getColor(l.editorCursorForeground);this.cursorColor=r?r.transparent(.7).toString():null,this.themeType=t.type;var s=n.get(54),u=s.enabled,d=s.side,c=u?a.TokenizationRegistry.getDefaultBackground():null;this.backgroundColor=null===c||\"left\"===d?null:i.Color.Format.CSS.formatHex(c);var h=n.get(107).overviewRuler;this.top=h.top,this.right=h.right,this.domWidth=h.width,this.domHeight=h.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);var p=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes),g=p[0],f=p[1];this.x=g,this.w=f}return e.prototype._initLanes=function(e,t,n){var i=t-e;if(n>=3){var o,r,s,a=i-(o=Math.floor(i/3))-(r=Math.floor(i/3)),l=(s=e)+o\n;return[[0,s,l,s,s+o+a,s,l,s],[0,o,a,o+a,r,o+a+r,a+r,o+a+r]]}if(2===n)return[[0,s=e,s,s,s+(o=Math.floor(i/2)),s,s,s],[0,o,o,o,r=i-o,o+r,o+r,o+r]];return[[0,e,e,e,e,e,e,e],[0,i,i,i,i,i,i,i]]},e.prototype.equals=function(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight},e}(),d=function(e){function t(t){var i=e.call(this,t)||this;return i._domNode=n.createFastDomNode(document.createElement(\"canvas\")),i._domNode.setClassName(\"decorationsOverviewRuler\"),i._domNode.setPosition(\"absolute\"),i._domNode.setLayerHinting(!0),i._domNode.setContain(\"strict\"),\ni._domNode.setAttribute(\"aria-hidden\",\"true\"),i._updateSettings(!1),i._tokensColorTrackerListener=a.TokenizationRegistry.onDidChange((function(e){e.changedColorMap&&i._updateSettings(!0)})),i._cursorPositions=[],i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._tokensColorTrackerListener.dispose()},t.prototype._updateSettings=function(e){var t=new u(this._context.configuration,this._context.theme);return(!this._settings||!this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)},t.prototype.onConfigurationChanged=function(e){return this._updateSettings(!1)},t.prototype.onCursorStateChanged=function(e){this._cursorPositions=[]\n;for(var t=0,n=e.selections.length;t<n;t++)this._cursorPositions[t]=e.selections[t].getPosition();return this._cursorPositions.sort(s.Position.compare),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onThemeChanged=function(e){return this._context.model.invalidateOverviewRulerColorCache(),this._updateSettings(!1)},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._render()},t.prototype._render=function(){if(0!==this._settings.overviewRulerLanes){\nvar e=this._settings.canvasWidth,t=this._settings.canvasHeight,n=this._settings.lineHeight,i=this._context.viewLayout,o=t/this._context.viewLayout.getScrollHeight(),r=this._context.model.getAllOverviewRulerDecorations(this._context.theme),s=6*this._settings.pixelRatio|0,a=s/2|0,l=this._domNode.domNode.getContext(\"2d\");null===this._settings.backgroundColor?l.clearRect(0,0,e,t):(l.fillStyle=this._settings.backgroundColor,l.fillRect(0,0,e,t));var u=this._settings.x,d=this._settings.w,c=Object.keys(r);c.sort();for(var h=0,p=c.length;h<p;h++){var g=c[h],f=r[g];l.fillStyle=g;for(var m=0,v=0,_=0,y=0,C=f.length;y<C;y++){var b=f[3*y],S=f[3*y+1],w=f[3*y+2],E=i.getVerticalOffsetForLineNumber(S)*o|0;if((k=(i.getVerticalOffsetForLineNumber(w)+n)*o|0)-E<s)(I=(E+k)/2|0)<a?I=a:I+a>t&&(I=t-a),E=I-a,k=I+a;E>_+1||b!==m?(0!==y&&l.fillRect(u[m],v,d[m],_-v),m=b,v=E,_=k):k>_&&(_=k)}l.fillRect(u[m],v,d[m],_-v)}if(!this._settings.hideCursor&&this._settings.cursorColor){\nvar L=2*this._settings.pixelRatio|0,D=L/2|0,N=this._settings.x[7],x=this._settings.w[7];l.fillStyle=this._settings.cursorColor;for(v=-100,_=-100,y=0,C=this._cursorPositions.length;y<C;y++){var I,M=this._cursorPositions[y];(I=i.getVerticalOffsetForLineNumber(M.lineNumber)*o|0)<D?I=D:I+D>t&&(I=t-D);var k=(E=I-D)+L;E>_+1?(0!==y&&l.fillRect(N,v,x,_-v),v=E,_=k):k>_&&(_=k)}l.fillRect(N,v,x,_-v)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,t),l.stroke(),l.moveTo(0,0),l.lineTo(e,0),l.stroke())}else this._domNode.setBackgroundColor(this._settings.backgroundColor?this._settings.backgroundColor:\"\")},t}(o.ViewPart);t.DecorationsOverviewRuler=d})),define(n[561],i([0,1,28,37,44,14,295]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(e){function t(t){var i=e.call(this,t)||this\n;i.domNode=n.createFastDomNode(document.createElement(\"div\")),i.domNode.setAttribute(\"role\",\"presentation\"),i.domNode.setAttribute(\"aria-hidden\",\"true\"),i.domNode.setClassName(\"view-rulers\"),i._renderedRulers=[];var o=i._context.configuration.options;return i._rulers=o.get(77),i._typicalHalfwidthCharacterWidth=o.get(34).typicalHalfwidthCharacterWidth,i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;return this._rulers=t.get(77),this._typicalHalfwidthCharacterWidth=t.get(34).typicalHalfwidthCharacterWidth,!0},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.prepareRender=function(e){},t.prototype._ensureRulersCount=function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e<t)for(var i=this._context.model.getOptions().tabSize,o=t-e;o>0;){(s=n.createFastDomNode(document.createElement(\"div\"))).setClassName(\"view-ruler\"),s.setWidth(i),\nthis.domNode.appendChild(s),this._renderedRulers.push(s),o--}else for(var r=e-t;r>0;){var s=this._renderedRulers.pop();this.domNode.removeChild(s),r--}},t.prototype.render=function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;t<n;t++){var i=this._renderedRulers[t];i.setHeight(Math.min(e.scrollHeight,1e6)),i.setLeft(this._rulers[t]*this._typicalHalfwidthCharacterWidth)}},t}(i.ViewPart);t.Rulers=a,s.registerThemingParticipant((function(e,t){var n=e.getColor(o.editorRuler);n&&t.addRule(\".monaco-editor .view-ruler { box-shadow: 1px 0 0 0 \"+n+\" inset; }\")}))})),define(n[562],i([0,1,28,15,37,514,33,44,14,298]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t){var o=e.call(this,t)||this,r=o._context.configuration.options;return o._readOnly=r.get(68),o._cursorBlinking=r.get(16),o._cursorStyle=r.get(18),o._cursorSmoothCaretAnimation=r.get(17),o._selectionIsEmpty=!0,o._isVisible=!1,o._primaryCursor=new s.ViewCursor(o._context),\no._secondaryCursors=[],o._renderData=[],o._domNode=n.createFastDomNode(document.createElement(\"div\")),o._domNode.setAttribute(\"role\",\"presentation\"),o._domNode.setAttribute(\"aria-hidden\",\"true\"),o._updateDomClassName(),o._domNode.appendChild(o._primaryCursor.getDomNode()),o._startCursorBlinkAnimation=new i.TimeoutTimer,o._cursorFlatBlinkInterval=new i.IntervalTimer,o._blinkingEnabled=!1,o._editorHasFocus=!1,o._updateBlinking(),o}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.options;this._readOnly=t.get(68),this._cursorBlinking=t.get(16),this._cursorStyle=t.get(18),this._cursorSmoothCaretAnimation=t.get(17),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e)\n;for(var n=0,i=this._secondaryCursors.length;n<i;n++)this._secondaryCursors[n].onConfigurationChanged(e);return!0},t.prototype._onCursorPositionChanged=function(e,t){if(this._primaryCursor.onCursorPositionChanged(e),this._updateBlinking(),this._secondaryCursors.length<t.length)for(var n=t.length-this._secondaryCursors.length,i=0;i<n;i++){var o=new s.ViewCursor(this._context);this._domNode.domNode.insertBefore(o.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(o)}else if(this._secondaryCursors.length>t.length){var r=this._secondaryCursors.length-t.length;for(i=0;i<r;i++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(i=0;i<t.length;i++)this._secondaryCursors[i].onCursorPositionChanged(t[i])},t.prototype.onCursorStateChanged=function(e){for(var t=[],n=0,i=e.selections.length;n<i;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1));var o=e.selections[0].isEmpty()\n;return this._selectionIsEmpty!==o&&(this._selectionIsEmpty=o,this._updateDomClassName()),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onFocusChanged=function(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onTokensChanged=function(e){var t=function(t){for(var n=0,i=e.ranges.length;n<i;n++)if(e.ranges[n].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(var n=0,i=this._secondaryCursors;n<i.length;n++){if(t(i[n].getPosition()))return!0}return!1},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getCursorBlinking=function(){return this._editorHasFocus?this._readOnly?5:this._cursorBlinking:0},\nt.prototype._updateBlinking=function(){var e=this;this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();var n=this._getCursorBlinking(),i=0===n,o=5===n;i?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),i||o||(1===n?this._cursorFlatBlinkInterval.cancelAndSet((function(){e._isVisible?e._hide():e._show()}),t.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet((function(){e._blinkingEnabled=!0,e._updateDomClassName()}),t.BLINK_INTERVAL))},t.prototype._updateDomClassName=function(){this._domNode.setClassName(this._getClassName())},t.prototype._getClassName=function(){var e=\"cursors-layer\";switch(this._selectionIsEmpty||(e+=\" has-selection\"),this._cursorStyle){case a.TextEditorCursorStyle.Line:e+=\" cursor-line-style\";break;case a.TextEditorCursorStyle.Block:e+=\" cursor-block-style\";break;case a.TextEditorCursorStyle.Underline:e+=\" cursor-underline-style\";break;case a.TextEditorCursorStyle.LineThin:e+=\" cursor-line-thin-style\";break\n;case a.TextEditorCursorStyle.BlockOutline:e+=\" cursor-block-outline-style\";break;case a.TextEditorCursorStyle.UnderlineThin:e+=\" cursor-underline-thin-style\";break;default:e+=\" cursor-line-style\"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=\" cursor-blink\";break;case 2:e+=\" cursor-smooth\";break;case 3:e+=\" cursor-phase\";break;case 4:e+=\" cursor-expand\";break;case 5:e+=\" cursor-solid\";break;default:e+=\" cursor-solid\"}else e+=\" cursor-solid\";return this._cursorSmoothCaretAnimation&&(e+=\" cursor-smooth-caret-animation\"),e},t.prototype._show=function(){this._primaryCursor.show();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0},t.prototype._hide=function(){this._primaryCursor.hide();for(var e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1},t.prototype.prepareRender=function(e){this._primaryCursor.prepareRender(e)\n;for(var t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].prepareRender(e)},t.prototype.render=function(e){var t=[],n=0,i=this._primaryCursor.render(e);i&&(t[n++]=i);for(var o=0,r=this._secondaryCursors.length;o<r;o++){var s=this._secondaryCursors[o].render(e);s&&(t[n++]=s)}this._renderData=t},t.prototype.getLastRenderData=function(){return this._renderData},t.BLINK_INTERVAL=500,t}(o.ViewPart);t.ViewCursors=d,u.registerThemingParticipant((function(e,t){var n=e.getColor(l.editorCursorForeground);if(n){var i=e.getColor(l.editorCursorBackground);i||(i=n.opposite()),t.addRule(\".monaco-editor .cursor { background-color: \"+n+\"; border-color: \"+n+\"; color: \"+i+\"; }\"),\"hc\"===e.type&&t.addRule(\".monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid \"+i+\"; border-right: 1px solid \"+i+\"; }\")}}))})),\ndefine(n[563],i([0,1,6,28,10,551,559,523,228,513,37,366,557,367,549,149,558,229,552,368,195,369,553,370,560,371,561,554,555,562,372,13,3,91,360,361,81,363,92,14,166]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B,V,z){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var H=function(e){function t(t,n,o,r,u,D){var T=e.call(this)||this;T._cursor=u,T._renderAnimationFrame=null,T.outgoingEvents=D;var R=new l.ViewController(n,r,T.outgoingEvents,t);T.eventDispatcher=new A.ViewEventDispatcher((function(e){return T._renderOnce(e)})),T.eventDispatcher.addEventHandler(T),T._context=new P.ViewContext(n,o.getTheme(),r,T.eventDispatcher),T._register(o.onThemeChange((function(e){T._context.theme=e,T.eventDispatcher.emit(new F.ViewThemeChangedEvent),T.render(!0,!1)}))),T.viewParts=[],T._textAreaHandler=new a.TextAreaHandler(T._context,R,T.createTextAreaHandlerHelper()),T.viewParts.push(T._textAreaHandler),T.linesContent=i.createFastDomNode(document.createElement(\"div\")),\nT.linesContent.setClassName(\"lines-content monaco-editor-background\"),T.linesContent.setPosition(\"absolute\"),T.domNode=i.createFastDomNode(document.createElement(\"div\")),T.domNode.setClassName(T.getEditorClassName()),T.overflowGuardContainer=i.createFastDomNode(document.createElement(\"div\")),c.PartFingerprints.write(T.overflowGuardContainer,3),T.overflowGuardContainer.setClassName(\"overflow-guard\"),T._scrollbar=new f.EditorScrollbar(T._context,T.linesContent,T.domNode,T.overflowGuardContainer),T.viewParts.push(T._scrollbar),T.viewLines=new y.ViewLines(T._context,T.linesContent),T.viewZones=new k.ViewZones(T._context),T.viewParts.push(T.viewZones);var O=new L.DecorationsOverviewRuler(T._context);T.viewParts.push(O);var W=new x.ScrollDecorationViewPart(T._context);T.viewParts.push(W);var B=new d.ContentViewOverlays(T._context);T.viewParts.push(B),B.addDynamicOverlay(new p.CurrentLineHighlightOverlay(T._context)),B.addDynamicOverlay(new I.SelectionsOverlay(T._context)),\nB.addDynamicOverlay(new v.IndentGuidesOverlay(T._context)),B.addDynamicOverlay(new g.DecorationsOverlay(T._context));var V=new d.MarginViewOverlays(T._context);T.viewParts.push(V),V.addDynamicOverlay(new p.CurrentLineMarginHighlightOverlay(T._context)),V.addDynamicOverlay(new m.GlyphMarginOverlay(T._context)),V.addDynamicOverlay(new S.MarginViewLineDecorationsOverlay(T._context)),V.addDynamicOverlay(new C.LinesDecorationsOverlay(T._context)),V.addDynamicOverlay(new _.LineNumbersOverlay(T._context));var z=new b.Margin(T._context);z.getDomNode().appendChild(T.viewZones.marginDomNode),z.getDomNode().appendChild(V.getDomNode()),T.viewParts.push(z),T.contentWidgets=new h.ViewContentWidgets(T._context,T.domNode),T.viewParts.push(T.contentWidgets),T.viewCursors=new M.ViewCursors(T._context),T.viewParts.push(T.viewCursors),T.overlayWidgets=new E.ViewOverlayWidgets(T._context),T.viewParts.push(T.overlayWidgets);var H=new N.Rulers(T._context);T.viewParts.push(H);var K=new w.Minimap(T._context);if(T.viewParts.push(K),\nO){var U=T._scrollbar.getOverviewRulerLayoutInfo();U.parent.insertBefore(O.getDomNode(),U.insertBefore)}return T.linesContent.appendChild(B.getDomNode()),T.linesContent.appendChild(H.domNode),T.linesContent.appendChild(T.viewZones.domNode),T.linesContent.appendChild(T.viewLines.getDomNode()),T.linesContent.appendChild(T.contentWidgets.domNode),T.linesContent.appendChild(T.viewCursors.getDomNode()),T.overflowGuardContainer.appendChild(z.getDomNode()),T.overflowGuardContainer.appendChild(T._scrollbar.getDomNode()),T.overflowGuardContainer.appendChild(W.getDomNode()),T.overflowGuardContainer.appendChild(T._textAreaHandler.textArea),T.overflowGuardContainer.appendChild(T._textAreaHandler.textAreaCover),T.overflowGuardContainer.appendChild(T.overlayWidgets.getDomNode()),T.overflowGuardContainer.appendChild(K.getDomNode()),T.domNode.appendChild(T.overflowGuardContainer),T.domNode.appendChild(T.contentWidgets.overflowingContentWidgetsDomNode),T._applyLayout(),\nT.pointerHandler=T._register(new s.PointerHandler(T._context,R,T.createPointerHandlerHelper())),T._register(r.addEventListener((function(e){T.eventDispatcher.emitMany(e)}))),T._register(T._cursor.addEventListener((function(e){T.eventDispatcher.emitMany(e)}))),T}return r(t,e),t.prototype._flushAccumulatedAndRenderNow=function(){this._renderNow()},t.prototype.createPointerHandlerHelper=function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this.linesContent.domNode,focusTextArea:function(){e.focus()},getLastRenderData:function(){var t=e.viewCursors.getLastRenderData()||[],n=e._textAreaHandler.getLastRenderData();return new z.PointerHandlerLastRenderData(t,n)},shouldSuppressMouseDownOnViewZone:function(t){return e.viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e.contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.getPositionFromDOMInfo(t,n)},\nvisibleRangeForPosition:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.visibleRangeForPosition(new T.Position(t,n))},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e.viewLines.getLineWidth(t)}}},t.prototype.createTextAreaHandlerHelper=function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.visibleRangeForPosition(new T.Position(t,n))}}},t.prototype._applyLayout=function(){var e=this._context.configuration.options.get(107);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this.overflowGuardContainer.setWidth(e.width),this.overflowGuardContainer.setHeight(e.height),this.linesContent.setWidth(1e6),this.linesContent.setHeight(1e6)},t.prototype.getEditorClassName=function(){var e=this._textAreaHandler.isFocused()?\" focused\":\"\";return this._context.configuration.options.get(104)+\" \"+V.getThemeTypeSelector(this._context.theme.type)+e},t.prototype.onConfigurationChanged=function(e){\nreturn this.domNode.setClassName(this.getEditorClassName()),this._applyLayout(),!1},t.prototype.onContentSizeChanged=function(e){return this.outgoingEvents.emitContentSizeChange(e),!1},t.prototype.onFocusChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),this._context.model.setHasFocus(e.isFocused),e.isFocused?this.outgoingEvents.emitViewFocusGained():this.outgoingEvents.emitViewFocusLost(),!1},t.prototype.onScrollChanged=function(e){return this.outgoingEvents.emitScrollChanged(e),!1},t.prototype.onThemeChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),!1},t.prototype.dispose=function(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this.eventDispatcher.removeEventHandler(this),this.outgoingEvents.dispose(),this.viewLines.dispose();for(var t=0,n=this.viewParts.length;t<n;t++)this.viewParts[t].dispose();this.viewParts=[],e.prototype.dispose.call(this)},t.prototype._renderOnce=function(e){\nvar t=K(e);return this._scheduleRender(),t},t.prototype._scheduleRender=function(){null===this._renderAnimationFrame&&(this._renderAnimationFrame=n.runAtThisOrScheduleAtNextAnimationFrame(this._onRenderScheduled.bind(this),100))},t.prototype._onRenderScheduled=function(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()},t.prototype._renderNow=function(){var e=this;K((function(){return e._actualRender()}))},t.prototype._getViewPartsToRender=function(){for(var e=[],t=0,n=0,i=this.viewParts.length;n<i;n++){var o=this.viewParts[n];o.shouldRender()&&(e[t++]=o)}return e},t.prototype._actualRender=function(){if(n.isInDOM(this.domNode.domNode)){var e=this._getViewPartsToRender();if(this.viewLines.shouldRender()||0!==e.length){var t=this._context.viewLayout.getLinesViewportData();this._context.model.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);var i=new W.ViewportData(this._cursor.getViewSelections(),t,this._context.viewLayout.getWhitespaceViewportData(),this._context.model)\n;this.contentWidgets.shouldRender()&&this.contentWidgets.onBeforeRender(i),this.viewLines.shouldRender()&&(this.viewLines.renderText(i),this.viewLines.onDidRender(),e=this._getViewPartsToRender());for(var o=new O.RenderingContext(this._context.viewLayout,i,this.viewLines),r=0,s=e.length;r<s;r++){(a=e[r]).prepareRender(o)}for(r=0,s=e.length;r<s;r++){var a;(a=e[r]).render(o),a.onDidRender()}}}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._scrollbar.delegateVerticalScrollbarMouseDown(e)},t.prototype.restoreState=function(e){this._context.viewLayout.setScrollPositionNow({scrollTop:e.scrollTop}),this._context.model.tokenizeViewport(),this._renderNow(),this.viewLines.updateLineWidths(),this._context.viewLayout.setScrollPositionNow({scrollLeft:e.scrollLeft})},t.prototype.getOffsetForColumn=function(e,t){var n=this._context.model.validateModelPosition({lineNumber:e,column:t}),i=this._context.model.coordinatesConverter.convertModelPositionToViewPosition(n);this._flushAccumulatedAndRenderNow()\n;var o=this.viewLines.visibleRangeForPosition(new T.Position(i.lineNumber,i.column));return o?o.left:-1},t.prototype.getTargetAtClientPoint=function(e,t){var n=this.pointerHandler.getTargetAtClientPoint(e,t);return n?u.ViewOutgoingEvents.convertViewToModelMouseTarget(n,this._context.model.coordinatesConverter):null},t.prototype.createOverviewRuler=function(e){return new D.OverviewRuler(this._context,e)},t.prototype.change=function(e){var t=this;return this._renderOnce((function(){var n=t.viewZones.changeViewZones(e);return n&&(t._context.viewLayout.onHeightMaybeChanged(),t._context.privateViewEventBus.emit(new F.ViewZonesChangedEvent)),n}))},t.prototype.render=function(e,t){if(t){this.viewLines.forceShouldRender();for(var n=0,i=this.viewParts.length;n<i;n++){this.viewParts[n].forceShouldRender()}}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()},t.prototype.focus=function(){this._textAreaHandler.focusTextArea()},t.prototype.isFocused=function(){return this._textAreaHandler.isFocused()},\nt.prototype.setAriaOptions=function(e){this._textAreaHandler.setAriaOptions(e)},t.prototype.addContentWidget=function(e){this.contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()},t.prototype.layoutContentWidget=function(e){var t=e.position&&e.position.range||null;if(null===t){var n=e.position?e.position.position:null;null!==n&&(t=new R.Range(n.lineNumber,n.column,n.lineNumber,n.column))}var i=e.position?e.position.preference:null;this.contentWidgets.setWidgetPosition(e.widget,t,i),this._scheduleRender()},t.prototype.removeContentWidget=function(e){this.contentWidgets.removeWidget(e.widget),this._scheduleRender()},t.prototype.addOverlayWidget=function(e){this.overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()},t.prototype.layoutOverlayWidget=function(e){var t=e.position?e.position.preference:null;this.overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()},t.prototype.removeOverlayWidget=function(e){\nthis.overlayWidgets.removeWidget(e.widget),this._scheduleRender()},t}(B.ViewEventHandler);function K(e){try{return e()}catch(e){o.onUnexpectedError(e)}}t.View=H})),define(n[121],i([0,1,417,6,10,4,2,46,60,12,32,563,228,33,486,40,13,3,22,190,68,23,17,44,20,488,29,18,11,115,35,14,64,21,487,512,301]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var B=0,V=function(){function e(e,t,n,i,o,r){this.model=e,this.viewModel=t,this.cursor=n,this.view=i,this.hasRealView=o,this.listenersToRemove=r}return e.prototype.dispose=function(){a.dispose(this.listenersToRemove),this.model.onBeforeDetached(),this.hasRealView&&this.view.dispose(),this.cursor.dispose(),this.viewModel.dispose()},e}(),z=function(e){function t(t,n,i,r,a,l,u,c,h,p){var g=e.call(this)||this;g._onDidDispose=g._register(new s.Emitter),g.onDidDispose=g._onDidDispose.event,g._onDidChangeModelContent=g._register(new s.Emitter),\ng.onDidChangeModelContent=g._onDidChangeModelContent.event,g._onDidChangeModelLanguage=g._register(new s.Emitter),g.onDidChangeModelLanguage=g._onDidChangeModelLanguage.event,g._onDidChangeModelLanguageConfiguration=g._register(new s.Emitter),g.onDidChangeModelLanguageConfiguration=g._onDidChangeModelLanguageConfiguration.event,g._onDidChangeModelOptions=g._register(new s.Emitter),g.onDidChangeModelOptions=g._onDidChangeModelOptions.event,g._onDidChangeModelDecorations=g._register(new s.Emitter),g.onDidChangeModelDecorations=g._onDidChangeModelDecorations.event,g._onDidChangeConfiguration=g._register(new s.Emitter),g.onDidChangeConfiguration=g._onDidChangeConfiguration.event,g._onDidChangeModel=g._register(new s.Emitter),g.onDidChangeModel=g._onDidChangeModel.event,g._onDidChangeCursorPosition=g._register(new s.Emitter),g.onDidChangeCursorPosition=g._onDidChangeCursorPosition.event,g._onDidChangeCursorSelection=g._register(new s.Emitter),g.onDidChangeCursorSelection=g._onDidChangeCursorSelection.event,\ng._onDidAttemptReadOnlyEdit=g._register(new s.Emitter),g.onDidAttemptReadOnlyEdit=g._onDidAttemptReadOnlyEdit.event,g._onDidLayoutChange=g._register(new s.Emitter),g.onDidLayoutChange=g._onDidLayoutChange.event,g._editorTextFocus=g._register(new H),g.onDidFocusEditorText=g._editorTextFocus.onDidChangeToTrue,g.onDidBlurEditorText=g._editorTextFocus.onDidChangeToFalse,g._editorWidgetFocus=g._register(new H),g.onDidFocusEditorWidget=g._editorWidgetFocus.onDidChangeToTrue,g.onDidBlurEditorWidget=g._editorWidgetFocus.onDidChangeToFalse,g._onWillType=g._register(new s.Emitter),g.onWillType=g._onWillType.event,g._onDidType=g._register(new s.Emitter),g.onDidType=g._onDidType.event,g._onDidCompositionStart=g._register(new s.Emitter),g.onDidCompositionStart=g._onDidCompositionStart.event,g._onDidCompositionEnd=g._register(new s.Emitter),g.onDidCompositionEnd=g._onDidCompositionEnd.event,g._onDidPaste=g._register(new s.Emitter),g.onDidPaste=g._onDidPaste.event,g._onMouseUp=g._register(new s.Emitter),\ng.onMouseUp=g._onMouseUp.event,g._onMouseDown=g._register(new s.Emitter),g.onMouseDown=g._onMouseDown.event,g._onMouseDrag=g._register(new s.Emitter),g.onMouseDrag=g._onMouseDrag.event,g._onMouseDrop=g._register(new s.Emitter),g.onMouseDrop=g._onMouseDrop.event,g._onContextMenu=g._register(new s.Emitter),g.onContextMenu=g._onContextMenu.event,g._onMouseMove=g._register(new s.Emitter),g.onMouseMove=g._onMouseMove.event,g._onMouseLeave=g._register(new s.Emitter),g.onMouseLeave=g._onMouseLeave.event,g._onMouseWheel=g._register(new s.Emitter),g.onMouseWheel=g._onMouseWheel.event,g._onKeyUp=g._register(new s.Emitter),g.onKeyUp=g._onKeyUp.event,g._onKeyDown=g._register(new s.Emitter),g.onKeyDown=g._onKeyDown.event,g._onDidContentSizeChange=g._register(new s.Emitter),g.onDidContentSizeChange=g._onDidContentSizeChange.event,g._onDidScrollChange=g._register(new s.Emitter),g.onDidScrollChange=g._onDidScrollChange.event,g._onDidChangeViewZones=g._register(new s.Emitter),\ng.onDidChangeViewZones=g._onDidChangeViewZones.event,g._domElement=t,g._id=++B,g._decorationTypeKeysToIds={},g._decorationTypeSubtypes={},g.isSimpleWidget=i.isSimpleWidget||!1,g._telemetryData=i.telemetryData,n=n||{},g._configuration=g._register(g._createConfiguration(n,p)),g._register(g._configuration.onDidChange((function(e){g._onDidChangeConfiguration.fire(e);var t=g._configuration.options;if(e.hasChanged(107)){var n=t.get(107);g._onDidLayoutChange.fire(n)}}))),g._contextKeyService=g._register(u.createScoped(g._domElement)),g._notificationService=h,g._codeEditorService=a,g._commandService=l,g._themeService=c,g._register(new K(g,g._contextKeyService)),g._register(new U(g,g._contextKeyService)),g._instantiationService=r.createChild(new T.ServiceCollection([M.IContextKeyService,g._contextKeyService])),g._modelData=null,g._contributions={},g._actions={},g._focusTracker=new j(t),g._focusTracker.onChange((function(){g._editorWidgetFocus.setValue(g._focusTracker.hasFocus())})),g._contentWidgets={},\ng._overlayWidgets={};for(var f=0,m=Array.isArray(i.contributions)?i.contributions:d.EditorExtensionsRegistry.getEditorContributions();f<m.length;f++){var v=m[f];try{var _=g._instantiationService.createInstance(v.ctor,g);g._contributions[v.id]=_}catch(e){o.onUnexpectedError(e)}}return d.EditorExtensionsRegistry.getEditorActions().forEach((function(e){var t=new S.InternalEditorAction(e.id,e.label,e.alias,A.withNullAsUndefined(e.precondition),(function(){return g._instantiationService.invokeFunction((function(t){return Promise.resolve(e.runEditorCommand(t,g,null))}))}),g._contextKeyService);g._actions[t.id]=t})),g._codeEditorService.addCodeEditor(g),g}return r(t,e),t.prototype._createConfiguration=function(e,t){return new u.Configuration(this.isSimpleWidget,e,this._domElement,t)},t.prototype.getId=function(){return this.getEditorType()+\":\"+this._id},t.prototype.getEditorType=function(){return w.EditorType.ICodeEditor},t.prototype.dispose=function(){this._codeEditorService.removeCodeEditor(this),\nthis._focusTracker.dispose();for(var t=Object.keys(this._contributions),n=0,i=t.length;n<i;n++){var o=t[n];this._contributions[o].dispose()}this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),e.prototype.dispose.call(this)},t.prototype.invokeWithinContext=function(e){return this._instantiationService.invokeFunction(e)},t.prototype.updateOptions=function(e){this._configuration.updateOptions(e)},t.prototype.getOptions=function(){return this._configuration.options},t.prototype.getOption=function(e){return this._configuration.options.get(e)},t.prototype.getRawOptions=function(){return this._configuration.getRawOptions()},t.prototype.getValue=function(e){if(void 0===e&&(e=null),!this._modelData)return\"\";var t=!(!e||!e.preserveBOM),n=0;return e&&e.lineEnding&&\"\\n\"===e.lineEnding?n=1:e&&e.lineEnding&&\"\\r\\n\"===e.lineEnding&&(n=2),this._modelData.model.getValue(n,t)},t.prototype.setValue=function(e){this._modelData&&this._modelData.model.setValue(e)},\nt.prototype.getModel=function(){return this._modelData?this._modelData.model:null},t.prototype.setModel=function(e){void 0===e&&(e=null);var t=e;if(!(null===this._modelData&&null===t||this._modelData&&this._modelData.model===t)){var n=this.hasTextFocus(),i=this._detachModel();this._attachModel(t),n&&this.hasModel()&&this.focus();var o={oldModelUrl:i?i.uri:null,newModelUrl:t?t.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(o),this._postDetachModelCleanup(i)}},t.prototype._removeDecorationTypes=function(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(var e in this._decorationTypeSubtypes){var t=this._decorationTypeSubtypes[e];for(var n in t)this._removeDecorationType(e+\"-\"+n)}this._decorationTypeSubtypes={}}},t.prototype.getVisibleRanges=function(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]},t.prototype.getWhitespaces=function(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]},\nt._getVerticalOffsetForPosition=function(e,t,n){var i=e.model.validatePosition({lineNumber:t,column:n}),o=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber)},t.prototype.getTopForLineNumber=function(e){return this._modelData?t._getVerticalOffsetForPosition(this._modelData,e,1):-1},t.prototype.getTopForPosition=function(e,n){return this._modelData?t._getVerticalOffsetForPosition(this._modelData,e,n):-1},t.prototype.setHiddenAreas=function(e){this._modelData&&this._modelData.viewModel.setHiddenAreas(e.map((function(e){return C.Range.lift(e)})))},t.prototype.getVisibleColumnFromPosition=function(e){if(!this._modelData)return e.column;var t=this._modelData.model.validatePosition(e),n=this._modelData.model.getOptions().tabSize;return _.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,n)+1},t.prototype.getPosition=function(){\nreturn this._modelData?this._modelData.cursor.getPosition():null},t.prototype.setPosition=function(e){if(this._modelData){if(!y.Position.isIPosition(e))throw new Error(\"Invalid arguments\");this._modelData.cursor.setSelections(\"api\",[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}},t.prototype._sendRevealRange=function(e,t,n,i){if(this._modelData){if(!C.Range.isIRange(e))throw new Error(\"Invalid arguments\");var o=this._modelData.model.validateRange(e),r=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.cursor.emitCursorRevealRange(\"api\",r,t,n,i)}},t.prototype.revealLine=function(e,t){void 0===t&&(t=0),this._revealLine(e,0,t)},t.prototype.revealLineInCenter=function(e,t){void 0===t&&(t=0),this._revealLine(e,1,t)},t.prototype.revealLineInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealLine(e,2,t)},t.prototype._revealLine=function(e,t,n){\nif(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e,1,e,1),t,!1,n)},t.prototype.revealPosition=function(e,t){void 0===t&&(t=0),this._revealPosition(e,0,!0,t)},t.prototype.revealPositionInCenter=function(e,t){void 0===t&&(t=0),this._revealPosition(e,1,!0,t)},t.prototype.revealPositionInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealPosition(e,2,!0,t)},t.prototype._revealPosition=function(e,t,n,i){if(!y.Position.isIPosition(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e.lineNumber,e.column,e.lineNumber,e.column),t,n,i)},t.prototype.getSelection=function(){return this._modelData?this._modelData.cursor.getSelection():null},t.prototype.getSelections=function(){return this._modelData?this._modelData.cursor.getSelections():null},t.prototype.setSelection=function(e){var t=b.Selection.isISelection(e),n=C.Range.isIRange(e);if(!t&&!n)throw new Error(\"Invalid arguments\");if(t)this._setSelectionImpl(e);else if(n){var i={\nselectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i)}},t.prototype._setSelectionImpl=function(e){if(this._modelData){var t=new b.Selection(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.cursor.setSelections(\"api\",[t])}},t.prototype.revealLines=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,0,n)},t.prototype.revealLinesInCenter=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,1,n)},t.prototype.revealLinesInCenterIfOutsideViewport=function(e,t,n){void 0===n&&(n=0),this._revealLines(e,t,2,n)},t.prototype._revealLines=function(e,t,n,i){if(\"number\"!=typeof e||\"number\"!=typeof t)throw new Error(\"Invalid arguments\");this._sendRevealRange(new C.Range(e,1,t,1),n,!1,i)},t.prototype.revealRange=function(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===i&&(i=!0),this._revealRange(e,n?1:0,i,t)},\nt.prototype.revealRangeInCenter=function(e,t){void 0===t&&(t=0),this._revealRange(e,1,!0,t)},t.prototype.revealRangeInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this._revealRange(e,2,!0,t)},t.prototype.revealRangeAtTop=function(e,t){void 0===t&&(t=0),this._revealRange(e,3,!0,t)},t.prototype._revealRange=function(e,t,n,i){if(!C.Range.isIRange(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(C.Range.lift(e),t,n,i)},t.prototype.setSelections=function(e,t){if(void 0===t&&(t=\"api\"),this._modelData){if(!e||0===e.length)throw new Error(\"Invalid arguments\");for(var n=0,i=e.length;n<i;n++)if(!b.Selection.isISelection(e[n]))throw new Error(\"Invalid arguments\");this._modelData.cursor.setSelections(t,e)}},t.prototype.getContentWidth=function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1},t.prototype.getScrollWidth=function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1},t.prototype.getScrollLeft=function(){\nreturn this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1},t.prototype.getContentHeight=function(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1},t.prototype.getScrollHeight=function(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1},t.prototype.getScrollTop=function(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1},t.prototype.setScrollLeft=function(e){if(this._modelData){if(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPositionNow({scrollLeft:e})}},t.prototype.setScrollTop=function(e){if(this._modelData){if(\"number\"!=typeof e)throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPositionNow({scrollTop:e})}},t.prototype.setScrollPosition=function(e){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPositionNow(e)},t.prototype.saveViewState=function(){\nif(!this._modelData)return null;for(var e={},t=0,n=Object.keys(this._contributions);t<n.length;t++){var i=n[t],o=this._contributions[i];\"function\"==typeof o.saveViewState&&(e[i]=o.saveViewState())}return{cursorState:this._modelData.cursor.saveState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}},t.prototype.restoreViewState=function(e){if(this._modelData&&this._modelData.hasRealView){var t=e;if(t&&t.cursorState&&t.viewState){var n=t.cursorState;Array.isArray(n)?this._modelData.cursor.restoreState(n):this._modelData.cursor.restoreState([n]);for(var i=t.contributionsState||{},o=Object.keys(this._contributions),r=0,s=o.length;r<s;r++){var a=o[r],l=this._contributions[a];\"function\"==typeof l.restoreViewState&&l.restoreViewState(i[a])}var u=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(u)}}},t.prototype.getContribution=function(e){return this._contributions[e]||null},t.prototype.getActions=function(){\nfor(var e=[],t=Object.keys(this._actions),n=0,i=t.length;n<i;n++){var o=t[n];e.push(this._actions[o])}return e},t.prototype.getSupportedActions=function(){var e=this.getActions();return e=e.filter((function(e){return e.isSupported()}))},t.prototype.getAction=function(e){return this._actions[e]||null},t.prototype.trigger=function(e,t,n){if(n=n||{},t===w.Handler.Type){if(!this._modelData||\"string\"!=typeof n.text||0===n.text.length)return;return\"keyboard\"===e&&this._onWillType.fire(n.text),this._modelData.cursor.trigger(e,t,n),void(\"keyboard\"===e&&this._onDidType.fire(n.text))}if(t!==w.Handler.Paste){var i=this.getAction(t);i?Promise.resolve(i.run()).then(void 0,o.onUnexpectedError):this._modelData&&(this._triggerEditorCommand(e,t,n)||(this._modelData.cursor.trigger(e,t,n),t===w.Handler.CompositionStart&&this._onDidCompositionStart.fire(),t===w.Handler.CompositionEnd&&this._onDidCompositionEnd.fire()))}else{if(!this._modelData||\"string\"!=typeof n.text||0===n.text.length)return\n;var r=this._modelData.cursor.getSelection().getStartPosition();this._modelData.cursor.trigger(e,t,n);var s=this._modelData.cursor.getSelection().getStartPosition();\"keyboard\"===e&&this._onDidPaste.fire({range:new C.Range(r.lineNumber,r.column,s.lineNumber,s.column),mode:n.mode})}},t.prototype._triggerEditorCommand=function(e,t,n){var i=this,r=d.EditorExtensionsRegistry.getEditorCommand(t);return!!r&&((n=n||{}).source=e,this._instantiationService.invokeFunction((function(e){Promise.resolve(r.runEditorCommand(e,i,n)).then(void 0,o.onUnexpectedError)})),!0)},t.prototype._getCursors=function(){return this._modelData?this._modelData.cursor:null},t.prototype.pushUndoStop=function(){return!!this._modelData&&(!this._configuration.options.get(68)&&(this._modelData.model.pushStackElement(),!0))},t.prototype.executeEdits=function(e,t,n){return!!this._modelData&&(!this._configuration.options.get(68)&&(i=n?Array.isArray(n)?function(){return n}:n:function(){return null},this._modelData.cursor.executeEdits(e,t,i),!0))\n;var i},t.prototype.executeCommand=function(e,t){this._modelData&&this._modelData.cursor.trigger(e,w.Handler.ExecuteCommand,t)},t.prototype.executeCommands=function(e,t){this._modelData&&this._modelData.cursor.trigger(e,w.Handler.ExecuteCommands,t)},t.prototype.changeDecorations=function(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null},t.prototype.getLineDecorations=function(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,m.filterValidationDecorations(this._configuration.options)):null},t.prototype.deltaDecorations=function(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]},t.prototype.removeDecorations=function(e){var t=this._decorationTypeKeysToIds[e];t&&this.deltaDecorations(t,[]),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]},\nt.prototype.getLayoutInfo=function(){return this._configuration.options.get(107)},t.prototype.createOverviewRuler=function(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null},t.prototype.getContainerDomNode=function(){return this._domElement},t.prototype.getDomNode=function(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarMouseDown(e)},t.prototype.layout=function(e){this._configuration.observeReferenceElement(e),this.render()},t.prototype.focus=function(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()},t.prototype.hasTextFocus=function(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()},t.prototype.hasWidgetFocus=function(){return this._focusTracker&&this._focusTracker.hasFocus()},\nt.prototype.addContentWidget=function(e){var t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting a content widget with the same id.\"),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)},t.prototype.layoutContentWidget=function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(n)}},t.prototype.removeContentWidget=function(e){var t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){var n=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(n)}},t.prototype.addOverlayWidget=function(e){var t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting an overlay widget with the same id.\"),\nthis._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)},t.prototype.layoutOverlayWidget=function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(n)}},t.prototype.removeOverlayWidget=function(e){var t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){var n=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(n)}},t.prototype.changeViewZones=function(e){this._modelData&&this._modelData.hasRealView&&(this._modelData.view.change(e)&&this._onDidChangeViewZones.fire())},t.prototype.getTargetAtClientPoint=function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null},t.prototype.getScrolledVisiblePosition=function(e){\nif(!this._modelData||!this._modelData.hasRealView)return null;var n=this._modelData.model.validatePosition(e),i=this._configuration.options,o=i.get(107);return{top:t._getVerticalOffsetForPosition(this._modelData,n.lineNumber,n.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(n.lineNumber,n.column)+o.glyphMarginWidth+o.lineNumbersWidth+o.decorationsWidth-this.getScrollLeft(),height:i.get(49)}},t.prototype.getOffsetForColumn=function(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1},t.prototype.render=function(e){void 0===e&&(e=!1),this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)},t.prototype.setAriaOptions=function(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)},t.prototype.applyFontInfo=function(e){u.Configuration.applyFontInfoSlow(e,this._configuration.options.get(34))},t.prototype._attachModel=function(e){var t=this;if(e){var o=[]\n;this._domElement.setAttribute(\"data-mode-id\",e.getLanguageIdentifier().language),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setMaxLineNumber(e.getLineCount()),e.onBeforeAttached();var r=new x.ViewModel(this._id,this._configuration,e,W.DOMLineBreaksComputerFactory.create(),F.MonospaceLineBreaksComputerFactory.create(this._configuration.options),(function(e){return i.scheduleAtNextAnimationFrame(e)}));o.push(e.onDidChangeDecorations((function(e){return t._onDidChangeModelDecorations.fire(e)}))),o.push(e.onDidChangeLanguage((function(n){t._domElement.setAttribute(\"data-mode-id\",e.getLanguageIdentifier().language),t._onDidChangeModelLanguage.fire(n)}))),o.push(e.onDidChangeLanguageConfiguration((function(e){return t._onDidChangeModelLanguageConfiguration.fire(e)}))),o.push(e.onDidChangeContent((function(e){return t._onDidChangeModelContent.fire(e)}))),o.push(e.onDidChangeOptions((function(e){return t._onDidChangeModelOptions.fire(e)}))),\no.push(e.onWillDispose((function(){return t.setModel(null)})));var s=new v.Cursor(this._configuration,e,r);o.push(s.onDidReachMaxCursorCount((function(){t._notificationService.warn(n.localize(0,null,v.Cursor.MAX_CURSOR_COUNT))}))),o.push(s.onDidAttemptReadOnlyEdit((function(){t._onDidAttemptReadOnlyEdit.fire(void 0)}))),o.push(s.onDidChange((function(e){for(var n=[],i=0,o=e.selections.length;i<o;i++)n[i]=e.selections[i].getPosition();var r={position:n[0],secondaryPositions:n.slice(1),reason:e.reason,source:e.source};t._onDidChangeCursorPosition.fire(r);var s={selection:e.selections[0],secondarySelections:e.selections.slice(1),modelVersionId:e.modelVersionId,oldSelections:e.oldSelections,oldModelVersionId:e.oldModelVersionId,source:e.source,reason:e.reason};t._onDidChangeCursorSelection.fire(s)})));var a=this._createView(r,s),l=a[0],u=a[1];if(u){this._domElement.appendChild(l.domNode.domNode);for(var d=Object.keys(this._contentWidgets),c=0,h=d.length;c<h;c++){var p=d[c]\n;l.addContentWidget(this._contentWidgets[p])}for(c=0,h=(d=Object.keys(this._overlayWidgets)).length;c<h;c++){p=d[c];l.addOverlayWidget(this._overlayWidgets[p])}l.render(!1,!0),l.domNode.domNode.setAttribute(\"data-uri\",e.uri.toString())}this._modelData=new V(e,r,s,l,u,o)}else this._modelData=null},t.prototype._createView=function(e,t){var n,i=this;n=this.isSimpleWidget?{executeEditorCommand:function(e,n){e.runCoreEditorCommand(t,n)},paste:function(e,t,n,o,r){i.trigger(e,w.Handler.Paste,{text:t,pasteOnNewLine:n,multicursorText:o,mode:r})},type:function(e,t){i.trigger(e,w.Handler.Type,{text:t})},replacePreviousChar:function(e,t,n){i.trigger(e,w.Handler.ReplacePreviousChar,{text:t,replaceCharCnt:n})},compositionStart:function(e){i.trigger(e,w.Handler.CompositionStart,void 0)},compositionEnd:function(e){i.trigger(e,w.Handler.CompositionEnd,void 0)},cut:function(e){i.trigger(e,w.Handler.Cut,void 0)}}:{executeEditorCommand:function(e,n){e.runCoreEditorCommand(t,n)},paste:function(e,t,n,o,r){\ni._commandService.executeCommand(w.Handler.Paste,{text:t,pasteOnNewLine:n,multicursorText:o,mode:r})},type:function(e,t){i._commandService.executeCommand(w.Handler.Type,{text:t})},replacePreviousChar:function(e,t,n){i._commandService.executeCommand(w.Handler.ReplacePreviousChar,{text:t,replaceCharCnt:n})},compositionStart:function(e){i._commandService.executeCommand(w.Handler.CompositionStart,{})},compositionEnd:function(e){i._commandService.executeCommand(w.Handler.CompositionEnd,{})},cut:function(e){i._commandService.executeCommand(w.Handler.Cut,{})}};var o=new f.ViewOutgoingEvents(e);return o.onDidContentSizeChange=function(e){return i._onDidContentSizeChange.fire(e)},o.onDidScroll=function(e){return i._onDidScrollChange.fire(e)},o.onDidGainFocus=function(){return i._editorTextFocus.setValue(!0)},o.onDidLoseFocus=function(){return i._editorTextFocus.setValue(!1)},o.onContextMenu=function(e){return i._onContextMenu.fire(e)},o.onMouseDown=function(e){return i._onMouseDown.fire(e)},o.onMouseUp=function(e){\nreturn i._onMouseUp.fire(e)},o.onMouseDrag=function(e){return i._onMouseDrag.fire(e)},o.onMouseDrop=function(e){return i._onMouseDrop.fire(e)},o.onKeyUp=function(e){return i._onKeyUp.fire(e)},o.onMouseMove=function(e){return i._onMouseMove.fire(e)},o.onMouseLeave=function(e){return i._onMouseLeave.fire(e)},o.onMouseWheel=function(e){return i._onMouseWheel.fire(e)},o.onKeyDown=function(e){return i._onKeyDown.fire(e)},[new p.View(n,this._configuration,this._themeService,e,t,o),!0]},t.prototype._postDetachModelCleanup=function(e){e&&e.removeAllDecorationsWithOwnerId(this._id)},t.prototype._detachModel=function(){if(!this._modelData)return null;var e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute(\"data-mode-id\"),t&&this._domElement.removeChild(t),e},t.prototype._removeDecorationType=function(e){this._codeEditorService.removeDecorationType(e)},t.prototype.hasModel=function(){\nreturn null!==this._modelData},t=h([g(3,k.IInstantiationService),g(4,c.ICodeEditorService),g(5,I.ICommandService),g(6,M.IContextKeyService),g(7,O.IThemeService),g(8,R.INotificationService),g(9,P.IAccessibilityService)],t)}(a.Disposable);t.CodeEditorWidget=z;var H=function(e){function t(){var t=e.call(this)||this;return t._onDidChangeToTrue=t._register(new s.Emitter),t.onDidChangeToTrue=t._onDidChangeToTrue.event,t._onDidChangeToFalse=t._register(new s.Emitter),t.onDidChangeToFalse=t._onDidChangeToFalse.event,t._value=0,t}return r(t,e),t.prototype.setValue=function(e){var t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())},t}(a.Disposable);t.BooleanEventEmitter=H;var K=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,n.createKey(\"editorId\",t.getId()),i._editorSimpleInput=E.EditorContextKeys.editorSimpleInput.bindTo(n),i._editorFocus=E.EditorContextKeys.focus.bindTo(n),\ni._textInputFocus=E.EditorContextKeys.textInputFocus.bindTo(n),i._editorTextFocus=E.EditorContextKeys.editorTextFocus.bindTo(n),i._editorTabMovesFocus=E.EditorContextKeys.tabMovesFocus.bindTo(n),i._editorReadonly=E.EditorContextKeys.readOnly.bindTo(n),i._hasMultipleSelections=E.EditorContextKeys.hasMultipleSelections.bindTo(n),i._hasNonEmptySelection=E.EditorContextKeys.hasNonEmptySelection.bindTo(n),i._canUndo=E.EditorContextKeys.canUndo.bindTo(n),i._canRedo=E.EditorContextKeys.canRedo.bindTo(n),i._register(i._editor.onDidChangeConfiguration((function(){return i._updateFromConfig()}))),i._register(i._editor.onDidChangeCursorSelection((function(){return i._updateFromSelection()}))),i._register(i._editor.onDidFocusEditorWidget((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidBlurEditorWidget((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidFocusEditorText((function(){return i._updateFromFocus()}))),i._register(i._editor.onDidBlurEditorText((function(){\nreturn i._updateFromFocus()}))),i._register(i._editor.onDidChangeModel((function(){return i._updateFromModel()}))),i._register(i._editor.onDidChangeConfiguration((function(){return i._updateFromModel()}))),i._updateFromConfig(),i._updateFromSelection(),i._updateFromFocus(),i._updateFromModel(),i._editorSimpleInput.set(i._editor.isSimpleWidget),i}return r(t,e),t.prototype._updateFromConfig=function(){var e=this._editor.getOptions();this._editorTabMovesFocus.set(e.get(106)),this._editorReadonly.set(e.get(68))},t.prototype._updateFromSelection=function(){var e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((function(e){return!e.isEmpty()})))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())},t.prototype._updateFromFocus=function(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),\nthis._textInputFocus.set(this._editor.hasTextFocus())},t.prototype._updateFromModel=function(){var e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))},t}(a.Disposable),U=function(e){function t(t,n){var i=e.call(this)||this;i._editor=t,i._contextKeyService=n,i._langId=E.EditorContextKeys.languageId.bindTo(n),i._hasCompletionItemProvider=E.EditorContextKeys.hasCompletionItemProvider.bindTo(n),i._hasCodeActionsProvider=E.EditorContextKeys.hasCodeActionsProvider.bindTo(n),i._hasCodeLensProvider=E.EditorContextKeys.hasCodeLensProvider.bindTo(n),i._hasDefinitionProvider=E.EditorContextKeys.hasDefinitionProvider.bindTo(n),i._hasDeclarationProvider=E.EditorContextKeys.hasDeclarationProvider.bindTo(n),i._hasImplementationProvider=E.EditorContextKeys.hasImplementationProvider.bindTo(n),i._hasTypeDefinitionProvider=E.EditorContextKeys.hasTypeDefinitionProvider.bindTo(n),i._hasHoverProvider=E.EditorContextKeys.hasHoverProvider.bindTo(n),\ni._hasDocumentHighlightProvider=E.EditorContextKeys.hasDocumentHighlightProvider.bindTo(n),i._hasDocumentSymbolProvider=E.EditorContextKeys.hasDocumentSymbolProvider.bindTo(n),i._hasReferenceProvider=E.EditorContextKeys.hasReferenceProvider.bindTo(n),i._hasRenameProvider=E.EditorContextKeys.hasRenameProvider.bindTo(n),i._hasSignatureHelpProvider=E.EditorContextKeys.hasSignatureHelpProvider.bindTo(n),i._hasDocumentFormattingProvider=E.EditorContextKeys.hasDocumentFormattingProvider.bindTo(n),i._hasDocumentSelectionFormattingProvider=E.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(n),i._hasMultipleDocumentFormattingProvider=E.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(n),i._hasMultipleDocumentSelectionFormattingProvider=E.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(n),i._isInWalkThrough=E.EditorContextKeys.isInEmbeddedEditor.bindTo(n);var o=function(){return i._update()};return i._register(t.onDidChangeModel(o)),\ni._register(t.onDidChangeModelLanguage(o)),i._register(L.CompletionProviderRegistry.onDidChange(o)),i._register(L.CodeActionProviderRegistry.onDidChange(o)),i._register(L.CodeLensProviderRegistry.onDidChange(o)),i._register(L.DefinitionProviderRegistry.onDidChange(o)),i._register(L.DeclarationProviderRegistry.onDidChange(o)),i._register(L.ImplementationProviderRegistry.onDidChange(o)),i._register(L.TypeDefinitionProviderRegistry.onDidChange(o)),i._register(L.HoverProviderRegistry.onDidChange(o)),i._register(L.DocumentHighlightProviderRegistry.onDidChange(o)),i._register(L.DocumentSymbolProviderRegistry.onDidChange(o)),i._register(L.ReferenceProviderRegistry.onDidChange(o)),i._register(L.RenameProviderRegistry.onDidChange(o)),i._register(L.DocumentFormattingEditProviderRegistry.onDidChange(o)),i._register(L.DocumentRangeFormattingEditProviderRegistry.onDidChange(o)),i._register(L.SignatureHelpProviderRegistry.onDidChange(o)),o(),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},\nt.prototype.reset=function(){var e=this;this._contextKeyService.bufferChangeEvents((function(){e._langId.reset(),e._hasCompletionItemProvider.reset(),e._hasCodeActionsProvider.reset(),e._hasCodeLensProvider.reset(),e._hasDefinitionProvider.reset(),e._hasDeclarationProvider.reset(),e._hasImplementationProvider.reset(),e._hasTypeDefinitionProvider.reset(),e._hasHoverProvider.reset(),e._hasDocumentHighlightProvider.reset(),e._hasDocumentSymbolProvider.reset(),e._hasReferenceProvider.reset(),e._hasRenameProvider.reset(),e._hasDocumentFormattingProvider.reset(),e._hasDocumentSelectionFormattingProvider.reset(),e._hasSignatureHelpProvider.reset(),e._isInWalkThrough.reset()}))},t.prototype._update=function(){var e=this,t=this._editor.getModel();t?this._contextKeyService.bufferChangeEvents((function(){e._langId.set(t.getLanguageIdentifier().language),e._hasCompletionItemProvider.set(L.CompletionProviderRegistry.has(t)),e._hasCodeActionsProvider.set(L.CodeActionProviderRegistry.has(t)),\ne._hasCodeLensProvider.set(L.CodeLensProviderRegistry.has(t)),e._hasDefinitionProvider.set(L.DefinitionProviderRegistry.has(t)),e._hasDeclarationProvider.set(L.DeclarationProviderRegistry.has(t)),e._hasImplementationProvider.set(L.ImplementationProviderRegistry.has(t)),e._hasTypeDefinitionProvider.set(L.TypeDefinitionProviderRegistry.has(t)),e._hasHoverProvider.set(L.HoverProviderRegistry.has(t)),e._hasDocumentHighlightProvider.set(L.DocumentHighlightProviderRegistry.has(t)),e._hasDocumentSymbolProvider.set(L.DocumentSymbolProviderRegistry.has(t)),e._hasReferenceProvider.set(L.ReferenceProviderRegistry.has(t)),e._hasRenameProvider.set(L.RenameProviderRegistry.has(t)),e._hasSignatureHelpProvider.set(L.SignatureHelpProviderRegistry.has(t)),e._hasDocumentFormattingProvider.set(L.DocumentFormattingEditProviderRegistry.has(t)||L.DocumentRangeFormattingEditProviderRegistry.has(t)),e._hasDocumentSelectionFormattingProvider.set(L.DocumentRangeFormattingEditProviderRegistry.has(t)),\ne._hasMultipleDocumentFormattingProvider.set(L.DocumentFormattingEditProviderRegistry.all(t).length+L.DocumentRangeFormattingEditProviderRegistry.all(t).length>1),e._hasMultipleDocumentSelectionFormattingProvider.set(L.DocumentRangeFormattingEditProviderRegistry.all(t).length>1),e._isInWalkThrough.set(t.uri.scheme===l.Schemas.walkThroughSnippet)})):this.reset()},t}(a.Disposable);t.EditorModeContext=U;var j=function(e){function t(t){var n=e.call(this)||this;return n._onChange=n._register(new s.Emitter),n.onChange=n._onChange.event,n._hasFocus=!1,n._domFocusTracker=n._register(i.trackFocus(t)),n._register(n._domFocusTracker.onDidFocus((function(){n._hasFocus=!0,n._onChange.fire(void 0)}))),n._register(n._domFocusTracker.onDidBlur((function(){n._hasFocus=!1,n._onChange.fire(void 0)}))),n}return r(t,e),t.prototype.hasFocus=function(){return this._hasFocus},t\n}(a.Disposable),q=encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='\"),G=encodeURIComponent(\"'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>\");function Y(e){return q+encodeURIComponent(e.toString())+G}var Z=encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"'),$=encodeURIComponent('\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>');O.registerThemingParticipant((function(e,t){var n=e.getColor(N.editorErrorBorder);n&&t.addRule(\".monaco-editor .squiggly-error { border-bottom: 4px double \"+n+\"; }\");var i=e.getColor(N.editorErrorForeground);i&&t.addRule('.monaco-editor .squiggly-error { background: url(\"data:image/svg+xml,'+Y(i)+'\") repeat-x bottom left; }');var o=e.getColor(N.editorWarningBorder)\n;o&&t.addRule(\".monaco-editor .squiggly-warning { border-bottom: 4px double \"+o+\"; }\");var r=e.getColor(N.editorWarningForeground);r&&t.addRule('.monaco-editor .squiggly-warning { background: url(\"data:image/svg+xml,'+Y(r)+'\") repeat-x bottom left; }');var s=e.getColor(N.editorInfoBorder);s&&t.addRule(\".monaco-editor .squiggly-info { border-bottom: 4px double \"+s+\"; }\");var a=e.getColor(N.editorInfoForeground);a&&t.addRule('.monaco-editor .squiggly-info { background: url(\"data:image/svg+xml,'+Y(a)+'\") repeat-x bottom left; }');var l=e.getColor(N.editorHintBorder);l&&t.addRule(\".monaco-editor .squiggly-hint { border-bottom: 2px dotted \"+l+\"; }\");var u=e.getColor(N.editorHintForeground);u&&t.addRule('.monaco-editor .squiggly-hint { background: url(\"data:image/svg+xml,'+(Z+encodeURIComponent(u.toString())+$)+'\") no-repeat bottom left; }');var d=e.getColor(D.editorUnnecessaryCodeOpacity);d&&t.addRule(\".monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: \"+d.rgba.a+\"; }\")\n;var c=e.getColor(D.editorUnnecessaryCodeBorder);c&&t.addRule(\".monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed \"+c+\"; }\");var h=e.getColor(N.editorForeground)||\"inherit\";t.addRule(\".monaco-editor .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: \"+h+\"}\")}))})),define(n[564],i([0,1,419,6,28,70,53,55,2,60,12,32,33,93,13,44,110,69,18,20,14,300]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(){function e(e,t,n,i){this.originalLineStart=e,this.originalLineEnd=t,this.modifiedLineStart=n,this.modifiedLineEnd=i}return e.prototype.getType=function(){return 0===this.originalLineStart?1:0===this.modifiedLineStart?2:0},e}(),w=function(e){this.entries=e},E=function(e){function t(t){var r=e.call(this)||this;return r._width=0,r._diffEditor=t,r._isVisible=!1,r.shadow=o.createFastDomNode(document.createElement(\"div\")),r.shadow.setClassName(\"diff-review-shadow\"),\nr.actionBarContainer=o.createFastDomNode(document.createElement(\"div\")),r.actionBarContainer.setClassName(\"diff-review-actions\"),r._actionBar=r._register(new s.ActionBar(r.actionBarContainer.domNode)),r._actionBar.push(new l.Action(\"diffreview.close\",n.localize(0,null),\"close-diff-review\",!0,(function(){return r.hide(),Promise.resolve(null)})),{label:!1,icon:!0}),r.domNode=o.createFastDomNode(document.createElement(\"div\")),r.domNode.setClassName(\"diff-review monaco-editor-background\"),r._content=o.createFastDomNode(document.createElement(\"div\")),r._content.setClassName(\"diff-review-content\"),r.scrollbar=r._register(new a.DomScrollableElement(r._content.domNode,{})),r.domNode.domNode.appendChild(r.scrollbar.getDomNode()),r._register(t.onDidUpdateDiff((function(){r._isVisible&&(r._diffs=r._compute(),r._render())}))),r._register(t.getModifiedEditor().onDidChangeCursorPosition((function(){r._isVisible&&r._render()}))),r._register(t.getOriginalEditor().onDidFocusEditorWidget((function(){r._isVisible&&r.hide()}))),\nr._register(t.getModifiedEditor().onDidFocusEditorWidget((function(){r._isVisible&&r.hide()}))),r._register(i.addStandardDisposableListener(r.domNode.domNode,\"click\",(function(e){e.preventDefault();var t=i.findParentWithClass(e.target,\"diff-review-row\");t&&r._goToRow(t)}))),r._register(i.addStandardDisposableListener(r.domNode.domNode,\"keydown\",(function(e){(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),r._goToRow(r._getNextRow())),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),r._goToRow(r._getPrevRow())),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),r.hide()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),r.accept())}))),r._diffs=[],r._currentDiff=null,r}return r(t,e),t.prototype.prev=function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=this._diffs.length+t-1\n}else e=this._findDiffIndex(this._diffEditor.getPosition());0!==this._diffs.length&&(e%=this._diffs.length,this._diffEditor.setPosition(new f.Position(this._diffs[e].entries[0].modifiedLineStart,1)),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow()))},t.prototype.next=function(){var e=0;if(this._isVisible||(this._diffs=this._compute()),this._isVisible){for(var t=-1,n=0,i=this._diffs.length;n<i;n++)if(this._diffs[n]===this._currentDiff){t=n;break}e=t+1}else e=this._findDiffIndex(this._diffEditor.getPosition());0!==this._diffs.length&&(e%=this._diffs.length,this._diffEditor.setPosition(new f.Position(this._diffs[e].entries[0].modifiedLineStart,1)),this._isVisible=!0,this._diffEditor.doLayout(),this._render(),this._goToRow(this._getNextRow()))},t.prototype.accept=function(){var e=-1,t=this._getCurrentFocusedRow();if(t){var n=parseInt(t.getAttribute(\"data-line\"),10);isNaN(n)||(e=n)}this.hide(),-1!==e&&(this._diffEditor.setPosition(new f.Position(e,1)),\nthis._diffEditor.revealPosition(new f.Position(e,1),1))},t.prototype.hide=function(){this._isVisible=!1,this._diffEditor.focus(),this._diffEditor.doLayout(),this._render()},t.prototype._getPrevRow=function(){var e=this._getCurrentFocusedRow();return e?e.previousElementSibling?e.previousElementSibling:e:this._getFirstRow()},t.prototype._getNextRow=function(){var e=this._getCurrentFocusedRow();return e?e.nextElementSibling?e.nextElementSibling:e:this._getFirstRow()},t.prototype._getFirstRow=function(){return this.domNode.domNode.querySelector(\".diff-review-row\")},t.prototype._getCurrentFocusedRow=function(){var e=document.activeElement;return e&&/diff-review-row/.test(e.className)?e:null},t.prototype._goToRow=function(e){var t=this._getCurrentFocusedRow();e.tabIndex=0,e.focus(),t&&t!==e&&(t.tabIndex=-1),this.scrollbar.scanDomNode()},t.prototype.isVisible=function(){return this._isVisible},t.prototype.layout=function(e,t,n){this._width=t,this.shadow.setTop(e-6),this.shadow.setWidth(t),\nthis.shadow.setHeight(this._isVisible?6:0),this.domNode.setTop(e),this.domNode.setWidth(t),this.domNode.setHeight(n),this._content.setHeight(n),this._content.setWidth(t),this._isVisible?(this.actionBarContainer.setAttribute(\"aria-hidden\",\"false\"),this.actionBarContainer.setDisplay(\"block\")):(this.actionBarContainer.setAttribute(\"aria-hidden\",\"true\"),this.actionBarContainer.setDisplay(\"none\"))},t.prototype._compute=function(){var e=this._diffEditor.getLineChanges();if(!e||0===e.length)return[];var n=this._diffEditor.getOriginalEditor().getModel(),i=this._diffEditor.getModifiedEditor().getModel();return n&&i?t._mergeAdjacent(e,n.getLineCount(),i.getLineCount()):[]},t._mergeAdjacent=function(e,t,n){if(!e||0===e.length)return[];for(var i=[],o=0,r=0,s=e.length;r<s;r++){var a=e[r],l=a.originalStartLineNumber,u=a.originalEndLineNumber,d=a.modifiedStartLineNumber,c=a.modifiedEndLineNumber,h=[],p=0,g=0===u?l:l-1,f=0===c?d:d-1,m=1,v=1;if(r>0){var _=e[r-1]\n;m=0===_.originalEndLineNumber?_.originalStartLineNumber+1:_.originalEndLineNumber+1,v=0===_.modifiedEndLineNumber?_.modifiedStartLineNumber+1:_.modifiedEndLineNumber+1}var y=g-3+1,C=f-3+1;if(y<m)y+=x=m-y,C+=x;if(C<v)y+=x=v-C,C+=x;h[p++]=new S(y,g,C,f),0!==u&&(h[p++]=new S(l,u,0,0)),0!==c&&(h[p++]=new S(0,0,d,c));var b=0===u?l+1:u+1,E=0===c?d+1:c+1,L=t,D=n;if(r+1<s){var N=e[r+1];L=0===N.originalEndLineNumber?N.originalStartLineNumber:N.originalStartLineNumber-1,D=0===N.modifiedEndLineNumber?N.modifiedStartLineNumber:N.modifiedStartLineNumber-1}var x,I=b+3-1,M=E+3-1;if(I>L)I+=x=L-I,M+=x;if(M>D)I+=x=D-M,M+=x;h[p++]=new S(b,I,E,M),i[o++]=new w(h)}var k=i[0].entries,T=[],R=0;for(r=1,s=i.length;r<s;r++){var O=i[r].entries,P=k[k.length-1],A=O[0];0===P.getType()&&0===A.getType()&&A.originalLineStart<=P.originalLineEnd?(k[k.length-1]=new S(P.originalLineStart,A.originalLineEnd,P.modifiedLineStart,A.modifiedLineEnd),k=k.concat(O.slice(1))):(T[R++]=new w(k),k=O)}return T[R++]=new w(k),T},\nt.prototype._findDiffIndex=function(e){for(var t=e.lineNumber,n=0,i=this._diffs.length;n<i;n++){var o=this._diffs[n].entries;if(t<=o[o.length-1].modifiedLineEnd)return n}return 0},t.prototype._render=function(){var e=this._diffEditor.getOriginalEditor().getOptions(),o=this._diffEditor.getModifiedEditor().getOptions(),r=this._diffEditor.getOriginalEditor().getModel(),s=this._diffEditor.getModifiedEditor().getModel(),a=r.getOptions(),l=s.getOptions();if(!this._isVisible||!r||!s)return i.clearNode(this._content.domNode),this._currentDiff=null,void this.scrollbar.scanDomNode();var u=this._findDiffIndex(this._diffEditor.getPosition());if(this._diffs[u]!==this._currentDiff){this._currentDiff=this._diffs[u];var c=this._diffs[u].entries,h=document.createElement(\"div\");h.className=\"diff-review-table\",h.setAttribute(\"role\",\"list\"),d.Configuration.applyFontInfoSlow(h,o.get(34));for(var p=0,g=0,f=0,m=0,v=0,_=c.length;v<_;v++){var y=(k=c[v]).originalLineStart,C=k.originalLineEnd,b=k.modifiedLineStart,S=k.modifiedLineEnd\n;0!==y&&(0===p||y<p)&&(p=y),0!==C&&(0===g||C>g)&&(g=C),0!==b&&(0===f||b<f)&&(f=b),0!==S&&(0===m||S>m)&&(m=S)}var w=document.createElement(\"div\");w.className=\"diff-review-row\";var E=document.createElement(\"div\");E.className=\"diff-review-cell diff-review-summary\";var L=g-p+1,D=m-f+1;E.appendChild(document.createTextNode(u+1+\"/\"+this._diffs.length+\": @@ -\"+p+\",\"+L+\" +\"+f+\",\"+D+\" @@\")),w.setAttribute(\"data-line\",String(f));var N=function(e){return 0===e?n.localize(1,null):1===e?n.localize(2,null):n.localize(3,null,e)},x=N(L),I=N(D);w.setAttribute(\"aria-label\",n.localize(4,null,u+1,this._diffs.length,p,x,f,I)),w.appendChild(E),w.setAttribute(\"role\",\"listitem\"),h.appendChild(w);var M=f;for(v=0,_=c.length;v<_;v++){var k=c[v];t._renderSection(h,k,M,this._width,e,r,a,o,s,l),0!==k.modifiedLineStart&&(M=k.modifiedLineEnd)}i.clearNode(this._content.domNode),this._content.domNode.appendChild(h),this.scrollbar.scanDomNode()}},t._renderSection=function(e,t,i,o,r,s,a,l,u,d){\nvar c=t.getType(),h=\"diff-review-row\",p=\"\",g=\"diff-review-spacer\";switch(c){case 1:h=\"diff-review-row line-insert\",p=\" char-insert\",g=\"diff-review-spacer insert-sign\";break;case 2:h=\"diff-review-row line-delete\",p=\" char-delete\",g=\"diff-review-spacer delete-sign\"}for(var f=t.originalLineStart,m=t.originalLineEnd,v=t.modifiedLineStart,_=t.modifiedLineEnd,y=Math.max(_-v,m-f),C=r.get(107),b=C.glyphMarginWidth+C.lineNumbersWidth,S=l.get(107),w=10+S.glyphMarginWidth+S.lineNumbersWidth,E=0;E<=y;E++){var L=0===f?0:f+E,D=0===v?0:v+E,N=document.createElement(\"div\");N.style.minWidth=o+\"px\",N.className=h,N.setAttribute(\"role\",\"listitem\"),0!==D&&(i=D),N.setAttribute(\"data-line\",String(i));var x=document.createElement(\"div\");x.className=\"diff-review-cell\",N.appendChild(x);var I=document.createElement(\"span\");I.style.width=b+\"px\",I.style.minWidth=b+\"px\",I.className=\"diff-review-line-number\"+p,0!==L?I.appendChild(document.createTextNode(String(L))):I.innerHTML=\"&#160;\",x.appendChild(I);var M=document.createElement(\"span\")\n;M.style.width=w+\"px\",M.style.minWidth=w+\"px\",M.style.paddingRight=\"10px\",M.className=\"diff-review-line-number\"+p,0!==D?M.appendChild(document.createTextNode(String(D))):M.innerHTML=\"&#160;\",x.appendChild(M);var k=document.createElement(\"span\");k.className=g,k.innerHTML=\"&#160;&#160;\",x.appendChild(k);var T=void 0;0!==D?(x.insertAdjacentHTML(\"beforeend\",this._renderLine(u,l,d.tabSize,D)),T=u.getLineContent(D)):(x.insertAdjacentHTML(\"beforeend\",this._renderLine(s,r,a.tabSize,L)),T=s.getLineContent(L)),0===T.length&&(T=n.localize(5,null));var R=\"\";switch(c){case 0:R=n.localize(6,null,L,D,T);break;case 1:R=n.localize(7,null,D,T);break;case 2:R=n.localize(8,null,L,T)}N.setAttribute(\"aria-label\",R),e.appendChild(N)}},t._renderLine=function(e,t,n,i){var o=e.getLineContent(i),r=t.get(34),s=new Uint32Array(2);s[0]=o.length,s[1]=16793600;var a=new g.LineTokens(s,o),l=_.ViewLineRenderingData.isBasicASCII(o,e.mightContainNonBasicASCII()),u=_.ViewLineRenderingData.containsRTL(o,l,e.mightContainRTL())\n;return v.renderViewLine2(new v.RenderLineInput(r.isMonospace&&!t.get(23),r.canUseHalfwidthRightwardsArrow,o,!1,l,u,0,a,[],n,0,r.spaceWidth,r.middotWidth,t.get(88),t.get(74),t.get(69),t.get(35)!==p.EditorFontLigatures.OFF,null)).html},t}(u.Disposable);t.DiffReview=E,b.registerThemingParticipant((function(e,t){var n=e.getColor(m.editorLineNumbers);n&&t.addRule(\".monaco-diff-editor .diff-review-line-number { color: \"+n+\"; }\");var i=e.getColor(C.scrollbarShadow);i&&t.addRule(\".monaco-diff-editor .diff-review-shadow { box-shadow: \"+i+\" 0 -6px 6px -6px inset; }\")}));var L=function(e){function t(){return e.call(this,{id:\"editor.action.diffReview.next\",label:n.localize(9,null),alias:\"Go to Next Difference\",precondition:y.ContextKeyExpr.has(\"isInDiffEditor\"),kbOpts:{kbExpr:null,primary:65,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=N(e);n&&n.diffReviewNext()},t}(c.EditorAction),D=function(e){function t(){return e.call(this,{id:\"editor.action.diffReview.prev\",label:n.localize(10,null),\nalias:\"Go to Previous Difference\",precondition:y.ContextKeyExpr.has(\"isInDiffEditor\"),kbOpts:{kbExpr:null,primary:1089,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=N(e);n&&n.diffReviewPrev()},t}(c.EditorAction);function N(e){for(var t=e.get(h.ICodeEditorService).listDiffEditors(),n=0,i=t.length;n<i;n++){var o=t[n];if(o.hasWidgetFocus())return o}return null}c.registerEditorAction(L),c.registerEditorAction(D)})),define(n[230],i([0,1,418,6,28,104,15,4,2,31,60,67,32,121,564,33,3,106,68,30,62,193,148,110,69,18,11,115,35,20,14,66,421,12,10,73,185,299]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var V=function(){function e(e,t){this._contextMenuService=e,this._clipboardService=t,this._zones=[],this.inlineDiffMargins=[],this._zonesMap={},this._decorations=[]}return e.prototype.getForeignViewZones=function(e){var t=this;return e.filter((function(e){return!t._zonesMap[String(e.id)]}))},\ne.prototype.clean=function(e){var t=this;this._zones.length>0&&e.changeViewZones((function(e){for(var n=0,i=t._zones.length;n<i;n++)e.removeZone(t._zones[n])})),this._zones=[],this._zonesMap={},this._decorations=e.deltaDecorations(this._decorations,[])},e.prototype.apply=function(e,t,n,i){var o=this,r=i?p.StableEditorScrollState.capture(e):null;e.changeViewZones((function(t){for(var i=0,r=o._zones.length;i<r;i++)t.removeZone(o._zones[i]);i=0;for(var s=o.inlineDiffMargins.length;i<s;i++)o.inlineDiffMargins[i].dispose();o._zones=[],o._zonesMap={},o.inlineDiffMargins=[];i=0;for(var a=n.zones.length;i<a;i++){var l=n.zones[i];l.suppressMouseDown=!0;var u=t.addZone(l);o._zones.push(u),o._zonesMap[String(u)]=!0,n.zones[i].diff&&l.marginDomNode&&o._clipboardService&&(l.suppressMouseDown=!1,o.inlineDiffMargins.push(new P.InlineDiffMargin(u,l.marginDomNode,e,n.zones[i].diff,o._contextMenuService,o._clipboardService)))}})),r&&r.restore(e),this._decorations=e.deltaDecorations(this._decorations,n.decorations),\nt&&t.setZones(n.overviewZones)},e}(),z=0,H=function(e){function t(n,r,s,u,d,c,h,p,g,f,m){var _=e.call(this)||this;_._editorProgressService=m,_._onDidDispose=_._register(new l.Emitter),_.onDidDispose=_._onDidDispose.event,_._onDidUpdateDiff=_._register(new l.Emitter),_.onDidUpdateDiff=_._onDidUpdateDiff.event,_._lastOriginalWarning=null,_._lastModifiedWarning=null,_._editorWorkerService=u,_._codeEditorService=h,_._contextKeyService=_._register(d.createScoped(n)),_._contextKeyService.createKey(\"isInDiffEditor\",!0),_._themeService=p,_._notificationService=g,_.id=++z,_._state=0,_._updatingDiffProgress=null,_._domElement=n,r=r||{},_._renderSideBySide=!0,void 0!==r.renderSideBySide&&(_._renderSideBySide=r.renderSideBySide),_._maxComputationTime=5e3,void 0!==r.maxComputationTime&&(_._maxComputationTime=r.maxComputationTime),_._ignoreTrimWhitespace=!0,void 0!==r.ignoreTrimWhitespace&&(_._ignoreTrimWhitespace=r.ignoreTrimWhitespace),_._renderIndicators=!0,\nvoid 0!==r.renderIndicators&&(_._renderIndicators=r.renderIndicators),_._originalIsEditable=!1,void 0!==r.originalEditable&&(_._originalIsEditable=Boolean(r.originalEditable)),_._updateDecorationsRunner=_._register(new a.RunOnceScheduler((function(){return _._updateDecorations()}),0)),_._containerDomElement=document.createElement(\"div\"),_._containerDomElement.className=t._getClassName(_._themeService.getTheme(),_._renderSideBySide),_._containerDomElement.style.position=\"relative\",_._containerDomElement.style.height=\"100%\",_._domElement.appendChild(_._containerDomElement),_._overviewViewportDomElement=o.createFastDomNode(document.createElement(\"div\")),_._overviewViewportDomElement.setClassName(\"diffViewport\"),_._overviewViewportDomElement.setPosition(\"absolute\"),_._overviewDomElement=document.createElement(\"div\"),_._overviewDomElement.className=\"diffOverview\",_._overviewDomElement.style.position=\"absolute\",_._overviewDomElement.appendChild(_._overviewViewportDomElement.domNode),\n_._register(i.addStandardDisposableListener(_._overviewDomElement,\"mousedown\",(function(e){_.modifiedEditor.delegateVerticalScrollbarMouseDown(e)}))),_._containerDomElement.appendChild(_._overviewDomElement),_._originalDomNode=document.createElement(\"div\"),_._originalDomNode.className=\"editor original\",_._originalDomNode.style.position=\"absolute\",_._originalDomNode.style.height=\"100%\",_._containerDomElement.appendChild(_._originalDomNode),_._modifiedDomNode=document.createElement(\"div\"),_._modifiedDomNode.className=\"editor modified\",_._modifiedDomNode.style.position=\"absolute\",_._modifiedDomNode.style.height=\"100%\",_._containerDomElement.appendChild(_._modifiedDomNode),_._beginUpdateDecorationsTimeout=-1,_._currentlyChangingViewZones=!1,_._diffComputationToken=0,_._originalEditorState=new V(f,s),_._modifiedEditorState=new V(f,s),_._isVisible=!0,_._isHandlingScrollEvent=!1,_._elementSizeObserver=_._register(new B.ElementSizeObserver(_._containerDomElement,void 0,(function(){\nreturn _._onDidContainerSizeChanged()}))),r.automaticLayout&&_._elementSizeObserver.startObserving(),_._diffComputationResult=null;var y=_._contextKeyService.createScoped();y.createKey(\"isInDiffLeftEditor\",!0);var C=new M.ServiceCollection;C.set(x.IContextKeyService,y);var b=c.createChild(C),S=_._contextKeyService.createScoped();S.createKey(\"isInDiffRightEditor\",!0);var w=new M.ServiceCollection;w.set(x.IContextKeyService,S);var E=c.createChild(w);_.originalEditor=_._createLeftHandSideEditor(r,b),_.modifiedEditor=_._createRightHandSideEditor(r,E),_._originalOverviewRuler=null,_._modifiedOverviewRuler=null,_._reviewPane=new v.DiffReview(_),_._containerDomElement.appendChild(_._reviewPane.domNode.domNode),_._containerDomElement.appendChild(_._reviewPane.shadow.domNode),_._containerDomElement.appendChild(_._reviewPane.actionBarContainer.domNode),_._enableSplitViewResizing=!0,void 0!==r.enableSplitViewResizing&&(_._enableSplitViewResizing=r.enableSplitViewResizing),\n_._renderSideBySide?_._setStrategy(new Y(_._createDataSource(),_._enableSplitViewResizing)):_._setStrategy(new $(_._createDataSource(),_._enableSplitViewResizing)),_._register(p.onThemeChange((function(e){_._strategy&&_._strategy.applyColors(e)&&_._updateDecorationsRunner.schedule(),_._containerDomElement.className=t._getClassName(_._themeService.getTheme(),_._renderSideBySide)})));for(var L=0,D=A.EditorExtensionsRegistry.getDiffEditorContributions();L<D.length;L++){var N=D[L];try{_._register(c.createInstance(N.ctor,_))}catch(e){F.onUnexpectedError(e)}}return _._codeEditorService.addDiffEditor(_),_}return r(t,e),t.prototype._setState=function(e){this._state!==e&&(this._state=e,this._updatingDiffProgress&&(this._updatingDiffProgress.done(),this._updatingDiffProgress=null),1===this._state&&(this._updatingDiffProgress=this._editorProgressService.show(!0,1e3)))},t.prototype.hasWidgetFocus=function(){return i.isAncestor(document.activeElement,this._domElement)},t.prototype.diffReviewNext=function(){\nthis._reviewPane.next()},t.prototype.diffReviewPrev=function(){this._reviewPane.prev()},t._getClassName=function(e,t){var n=\"monaco-diff-editor monaco-editor-background \";return t&&(n+=\"side-by-side \"),n+=R.getThemeTypeSelector(e.type)},t.prototype._recreateOverviewRulers=function(){this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this.originalEditor.hasModel()&&(this._originalOverviewRuler=this.originalEditor.createOverviewRuler(\"original diffOverviewRuler\"),this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this.modifiedEditor.hasModel()&&(this._modifiedOverviewRuler=this.modifiedEditor.createOverviewRuler(\"modified diffOverviewRuler\"),this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())),\nthis._layoutOverviewRulers()},t.prototype._createLeftHandSideEditor=function(e,t){var n=this,i=this._createInnerEditor(t,this._originalDomNode,this._adjustOptionsForLeftHandSide(e,this._originalIsEditable));return this._register(i.onDidScrollChange((function(e){n._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(n._isHandlingScrollEvent=!0,n.modifiedEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),n._isHandlingScrollEvent=!1,n._layoutOverviewViewport())}))),this._register(i.onDidChangeViewZones((function(){n._onViewZonesChanged()}))),this._register(i.onDidChangeModelContent((function(){n._isVisible&&n._beginUpdateDecorationsSoon()}))),i},t.prototype._createRightHandSideEditor=function(e,t){var n=this,i=this._createInnerEditor(t,this._modifiedDomNode,this._adjustOptionsForRightHandSide(e));return this._register(i.onDidScrollChange((function(e){\nn._isHandlingScrollEvent||(e.scrollTopChanged||e.scrollLeftChanged||e.scrollHeightChanged)&&(n._isHandlingScrollEvent=!0,n.originalEditor.setScrollPosition({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}),n._isHandlingScrollEvent=!1,n._layoutOverviewViewport())}))),this._register(i.onDidChangeViewZones((function(){n._onViewZonesChanged()}))),this._register(i.onDidChangeConfiguration((function(e){e.hasChanged(34)&&i.getModel()&&n._onViewZonesChanged()}))),this._register(i.onDidChangeModelContent((function(){n._isVisible&&n._beginUpdateDecorationsSoon()}))),this._register(i.onDidChangeModelOptions((function(e){e.tabSize&&n._updateDecorationsRunner.schedule()}))),i},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(m.CodeEditorWidget,t,n,{})},t.prototype.dispose=function(){this._codeEditorService.removeDiffEditor(this),-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),\nthis._cleanViewZonesAndDecorations(),this._originalOverviewRuler&&(this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()),this._originalOverviewRuler.dispose()),this._modifiedOverviewRuler&&(this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()),this._modifiedOverviewRuler.dispose()),this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode),this._containerDomElement.removeChild(this._overviewDomElement),this._containerDomElement.removeChild(this._originalDomNode),this.originalEditor.dispose(),this._containerDomElement.removeChild(this._modifiedDomNode),this.modifiedEditor.dispose(),this._strategy.dispose(),this._containerDomElement.removeChild(this._reviewPane.domNode.domNode),this._containerDomElement.removeChild(this._reviewPane.shadow.domNode),this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode),this._reviewPane.dispose(),this._domElement.removeChild(this._containerDomElement),this._onDidDispose.fire(),\ne.prototype.dispose.call(this)},t.prototype.getId=function(){return this.getEditorType()+\":\"+this.id},t.prototype.getEditorType=function(){return b.EditorType.IDiffEditor},t.prototype.getLineChanges=function(){return this._diffComputationResult?this._diffComputationResult.changes:null},t.prototype.getOriginalEditor=function(){return this.originalEditor},t.prototype.getModifiedEditor=function(){return this.modifiedEditor},t.prototype.updateOptions=function(e){var n=!1;void 0!==e.renderSideBySide&&this._renderSideBySide!==e.renderSideBySide&&(this._renderSideBySide=e.renderSideBySide,n=!0),void 0!==e.maxComputationTime&&(this._maxComputationTime=e.maxComputationTime,this._isVisible&&this._beginUpdateDecorationsSoon());var i=!1;void 0!==e.ignoreTrimWhitespace&&this._ignoreTrimWhitespace!==e.ignoreTrimWhitespace&&(this._ignoreTrimWhitespace=e.ignoreTrimWhitespace,i=!0),void 0!==e.renderIndicators&&this._renderIndicators!==e.renderIndicators&&(this._renderIndicators=e.renderIndicators,i=!0),\ni&&this._beginUpdateDecorations(),void 0!==e.originalEditable&&(this._originalIsEditable=Boolean(e.originalEditable)),this.modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(e)),this.originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(e,this._originalIsEditable)),void 0!==e.enableSplitViewResizing&&(this._enableSplitViewResizing=e.enableSplitViewResizing),this._strategy.setEnableSplitViewResizing(this._enableSplitViewResizing),n&&(this._renderSideBySide?this._setStrategy(new Y(this._createDataSource(),this._enableSplitViewResizing)):this._setStrategy(new $(this._createDataSource(),this._enableSplitViewResizing)),this._containerDomElement.className=t._getClassName(this._themeService.getTheme(),this._renderSideBySide))},t.prototype.getModel=function(){return{original:this.originalEditor.getModel(),modified:this.modifiedEditor.getModel()}},t.prototype.setModel=function(e){\nif(e&&(!e.original||!e.modified))throw new Error(e.original?\"DiffEditorWidget.setModel: Modified model is null\":\"DiffEditorWidget.setModel: Original model is null\");this._cleanViewZonesAndDecorations(),this.originalEditor.setModel(e?e.original:null),this.modifiedEditor.setModel(e?e.modified:null),this._updateDecorationsRunner.cancel(),e&&(this.originalEditor.setScrollTop(0),this.modifiedEditor.setScrollTop(0)),this._diffComputationResult=null,this._diffComputationToken++,this._setState(0),e&&(this._recreateOverviewRulers(),this._beginUpdateDecorations()),this._layoutOverviewViewport()},t.prototype.getDomNode=function(){return this._domElement},t.prototype.getVisibleColumnFromPosition=function(e){return this.modifiedEditor.getVisibleColumnFromPosition(e)},t.prototype.getPosition=function(){return this.modifiedEditor.getPosition()},t.prototype.setPosition=function(e){this.modifiedEditor.setPosition(e)},t.prototype.revealLine=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLine(e,t)},\nt.prototype.revealLineInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLineInCenter(e,t)},t.prototype.revealLineInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealLineInCenterIfOutsideViewport(e,t)},t.prototype.revealPosition=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPosition(e,t)},t.prototype.revealPositionInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPositionInCenter(e,t)},t.prototype.revealPositionInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealPositionInCenterIfOutsideViewport(e,t)},t.prototype.getSelection=function(){return this.modifiedEditor.getSelection()},t.prototype.getSelections=function(){return this.modifiedEditor.getSelections()},t.prototype.setSelection=function(e){this.modifiedEditor.setSelection(e)},t.prototype.setSelections=function(e){this.modifiedEditor.setSelections(e)},t.prototype.revealLines=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLines(e,t,n)},\nt.prototype.revealLinesInCenter=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLinesInCenter(e,t,n)},t.prototype.revealLinesInCenterIfOutsideViewport=function(e,t,n){void 0===n&&(n=0),this.modifiedEditor.revealLinesInCenterIfOutsideViewport(e,t,n)},t.prototype.revealRange=function(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===i&&(i=!0),this.modifiedEditor.revealRange(e,t,n,i)},t.prototype.revealRangeInCenter=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeInCenter(e,t)},t.prototype.revealRangeInCenterIfOutsideViewport=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeInCenterIfOutsideViewport(e,t)},t.prototype.revealRangeAtTop=function(e,t){void 0===t&&(t=0),this.modifiedEditor.revealRangeAtTop(e,t)},t.prototype.getSupportedActions=function(){return this.modifiedEditor.getSupportedActions()},t.prototype.saveViewState=function(){return{original:this.originalEditor.saveViewState(),modified:this.modifiedEditor.saveViewState()}},\nt.prototype.restoreViewState=function(e){if(e.original&&e.modified){var t=e;this.originalEditor.restoreViewState(t.original),this.modifiedEditor.restoreViewState(t.modified)}},t.prototype.layout=function(e){this._elementSizeObserver.observe(e)},t.prototype.focus=function(){this.modifiedEditor.focus()},t.prototype.hasTextFocus=function(){return this.originalEditor.hasTextFocus()||this.modifiedEditor.hasTextFocus()},t.prototype.trigger=function(e,t,n){this.modifiedEditor.trigger(e,t,n)},t.prototype.changeDecorations=function(e){return this.modifiedEditor.changeDecorations(e)},t.prototype._onDidContainerSizeChanged=function(){this._doLayout()},t.prototype._getReviewHeight=function(){return this._reviewPane.isVisible()?this._elementSizeObserver.getHeight():0},t.prototype._layoutOverviewRulers=function(){if(this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._elementSizeObserver.getHeight(),n=this._getReviewHeight(),i=t.ENTIRE_DIFF_OVERVIEW_WIDTH-2*t.ONE_OVERVIEW_WIDTH\n;this.modifiedEditor.getLayoutInfo()&&(this._originalOverviewRuler.setLayout({top:0,width:t.ONE_OVERVIEW_WIDTH,right:i+t.ONE_OVERVIEW_WIDTH,height:e-n}),this._modifiedOverviewRuler.setLayout({top:0,right:0,width:t.ONE_OVERVIEW_WIDTH,height:e-n}))}},t.prototype._onViewZonesChanged=function(){this._currentlyChangingViewZones||this._updateDecorationsRunner.schedule()},t.prototype._beginUpdateDecorationsSoon=function(){var e=this;-1!==this._beginUpdateDecorationsTimeout&&(window.clearTimeout(this._beginUpdateDecorationsTimeout),this._beginUpdateDecorationsTimeout=-1),this._beginUpdateDecorationsTimeout=window.setTimeout((function(){return e._beginUpdateDecorations()}),t.UPDATE_DIFF_DECORATIONS_DELAY)},t._equals=function(e,t){return!e&&!t||!(!e||!t)&&e.toString()===t.toString()},t.prototype._beginUpdateDecorations=function(){var e=this;this._beginUpdateDecorationsTimeout=-1;var i=this.originalEditor.getModel(),o=this.modifiedEditor.getModel();if(i&&o){this._diffComputationToken++;var r=this._diffComputationToken\n;this._setState(1),this._editorWorkerService.canComputeDiff(i.uri,o.uri)?this._editorWorkerService.computeDiff(i.uri,o.uri,this._ignoreTrimWhitespace,this._maxComputationTime).then((function(t){r===e._diffComputationToken&&i===e.originalEditor.getModel()&&o===e.modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=t,e._updateDecorationsRunner.schedule(),e._onDidUpdateDiff.fire())}),(function(t){r===e._diffComputationToken&&i===e.originalEditor.getModel()&&o===e.modifiedEditor.getModel()&&(e._setState(2),e._diffComputationResult=null,e._updateDecorationsRunner.schedule())})):t._equals(i.uri,this._lastOriginalWarning)&&t._equals(o.uri,this._lastModifiedWarning)||(this._lastOriginalWarning=i.uri,this._lastModifiedWarning=o.uri,this._notificationService.warn(n.localize(0,null)))}},t.prototype._cleanViewZonesAndDecorations=function(){this._originalEditorState.clean(this.originalEditor),this._modifiedEditorState.clean(this.modifiedEditor)},t.prototype._updateDecorations=function(){\nif(this.originalEditor.getModel()&&this.modifiedEditor.getModel()&&this._originalOverviewRuler&&this._modifiedOverviewRuler){var e=this._diffComputationResult?this._diffComputationResult.changes:[],t=this._originalEditorState.getForeignViewZones(this.originalEditor.getWhitespaces()),n=this._modifiedEditorState.getForeignViewZones(this.modifiedEditor.getWhitespaces()),i=this._strategy.getEditorsDiffDecorations(e,this._ignoreTrimWhitespace,this._renderIndicators,t,n,this.originalEditor,this.modifiedEditor);try{this._currentlyChangingViewZones=!0,this._originalEditorState.apply(this.originalEditor,this._originalOverviewRuler,i.original,!1),this._modifiedEditorState.apply(this.modifiedEditor,this._modifiedOverviewRuler,i.modified,!0)}finally{this._currentlyChangingViewZones=!1}}},t.prototype._adjustOptionsForSubEditor=function(e){var t=d.deepClone(e||{});return t.inDiffEditor=!0,t.wordWrap=\"off\",t.wordWrapMinified=!1,t.automaticLayout=!1,t.scrollbar=t.scrollbar||{},t.scrollbar.vertical=\"visible\",t.folding=!1,\nt.codeLens=!1,t.fixedOverflowWidgets=!0,t.minimap||(t.minimap={}),t.minimap.enabled=!1,t},t.prototype._adjustOptionsForLeftHandSide=function(e,t){var n=this._adjustOptionsForSubEditor(e);return n.readOnly=!t,n.extraEditorClassName=\"original-in-monaco-diff-editor\",n},t.prototype._adjustOptionsForRightHandSide=function(e){var n=this._adjustOptionsForSubEditor(e);return n.revealHorizontalRightPadding=_.EditorOptions.revealHorizontalRightPadding.defaultValue+t.ENTIRE_DIFF_OVERVIEW_WIDTH,n.scrollbar.verticalHasArrows=!1,n.extraEditorClassName=\"modified-in-monaco-diff-editor\",n},t.prototype.doLayout=function(){this._elementSizeObserver.observe(),this._doLayout()},t.prototype._doLayout=function(){var e=this._elementSizeObserver.getWidth(),n=this._elementSizeObserver.getHeight(),i=this._getReviewHeight(),o=this._strategy.layout();this._originalDomNode.style.width=o+\"px\",this._originalDomNode.style.left=\"0px\",this._modifiedDomNode.style.width=e-o+\"px\",this._modifiedDomNode.style.left=o+\"px\",\nthis._overviewDomElement.style.top=\"0px\",this._overviewDomElement.style.height=n-i+\"px\",this._overviewDomElement.style.width=t.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\",this._overviewDomElement.style.left=e-t.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\",this._overviewViewportDomElement.setWidth(t.ENTIRE_DIFF_OVERVIEW_WIDTH),this._overviewViewportDomElement.setHeight(30),this.originalEditor.layout({width:o,height:n-i}),this.modifiedEditor.layout({width:e-o-t.ENTIRE_DIFF_OVERVIEW_WIDTH,height:n-i}),(this._originalOverviewRuler||this._modifiedOverviewRuler)&&this._layoutOverviewRulers(),this._reviewPane.layout(n-i,e,i),this._layoutOverviewViewport()},t.prototype._layoutOverviewViewport=function(){var e=this._computeOverviewViewport();e?(this._overviewViewportDomElement.setTop(e.top),this._overviewViewportDomElement.setHeight(e.height)):(this._overviewViewportDomElement.setTop(0),this._overviewViewportDomElement.setHeight(0))},t.prototype._computeOverviewViewport=function(){var e=this.modifiedEditor.getLayoutInfo();if(!e)return null\n;var t=this.modifiedEditor.getScrollTop(),n=this.modifiedEditor.getScrollHeight(),i=Math.max(0,e.height),o=Math.max(0,i-0),r=n>0?o/n:0;return{height:Math.max(0,Math.floor(e.height*r)),top:Math.floor(t*r)}},t.prototype._createDataSource=function(){var e=this;return{getWidth:function(){return e._elementSizeObserver.getWidth()},getHeight:function(){return e._elementSizeObserver.getHeight()-e._getReviewHeight()},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e.originalEditor},getModifiedEditor:function(){return e.modifiedEditor}}},t.prototype._setStrategy=function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getTheme()),this._diffComputationResult&&this._updateDecorations(),this._doLayout()},t.prototype._getLineChangeAtOrBeforeLineNumber=function(e,t){var n=this._diffComputationResult?this._diffComputationResult.changes:[];if(0===n.length||e<t(n[0]))return null\n;for(var i=0,o=n.length-1;i<o;){var r=Math.floor((i+o)/2),s=t(n[r]),a=r+1<=o?t(n[r+1]):1073741824;e<s?o=r-1:e>=a?i=r+1:(i=r,o=r)}return n[i]},t.prototype._getEquivalentLineForOriginalLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.originalStartLineNumber}));if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-n;return s<=o?i+Math.min(s,r):i+r-o+s},t.prototype._getEquivalentLineForModifiedLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,(function(e){return e.modifiedStartLineNumber}));if(!t)return e\n;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),o=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,r=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-i;return s<=r?n+Math.min(s,o):n+o-r+s},t.prototype.getDiffLineInformationForOriginal=function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null},t.prototype.getDiffLineInformationForModified=function(e){return this._diffComputationResult?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null},t.ONE_OVERVIEW_WIDTH=15,t.ENTIRE_DIFF_OVERVIEW_WIDTH=30,t.UPDATE_DIFF_DECORATIONS_DELAY=200,t=h([g(3,w.IEditorWorkerService),g(4,x.IContextKeyService),g(5,I.IInstantiationService),g(6,f.ICodeEditorService),g(7,R.IThemeService),g(8,k.INotificationService),g(9,O.IContextMenuService),g(10,W.IEditorProgressService)],t)}(u.Disposable)\n;t.DiffEditorWidget=H;var K=function(e){function t(t){var n=e.call(this)||this;return n._dataSource=t,n._insertColor=null,n._removeColor=null,n}return r(t,e),t.prototype.applyColors=function(e){var t=(e.getColor(T.diffInserted)||T.defaultInsertColor).transparent(2),n=(e.getColor(T.diffRemoved)||T.defaultRemoveColor).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i},t.prototype.getEditorsDiffDecorations=function(e,t,n,i,o,r,s){o=o.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber})),i=i.sort((function(e,t){return e.afterLineNumber-t.afterLineNumber}));var a=this._getViewZones(e,i,o,r,s,n),l=this._getOriginalEditorDecorations(e,t,n,r,s),u=this._getModifiedEditorDecorations(e,t,n,r,s);return{original:{decorations:l.decorations,overviewZones:l.overviewZones,zones:a.original},modified:{decorations:u.decorations,overviewZones:u.overviewZones,zones:a.modified}}},t}(u.Disposable),U=function(){function e(e){this._source=e,\nthis._index=-1,this.current=null,this.advance()}return e.prototype.advance=function(){this._index++,this._index<this._source.length?this.current=this._source[this._index]:this.current=null},e}(),j=function(){function e(e,t,n,i,o){this.lineChanges=e,this.originalForeignVZ=t,this.originalLineHeight=n,this.modifiedForeignVZ=i,this.modifiedLineHeight=o}return e.prototype.getViewZones=function(){for(var t=[],n=[],i=0,o=0,r=0,s=0,a=0,l=0,u=function(e,t){return e.afterLineNumber-t.afterLineNumber},d=function(e,t){if(null===t.domNode&&e.length>0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},c=new U(this.modifiedForeignVZ),h=new U(this.originalForeignVZ),p=0,g=this.lineChanges.length;p<=g;p++){var f=p<g?this.lineChanges[p]:null;null!==f?(r=f.originalStartLineNumber+(f.originalEndLineNumber>0?-1:0),s=f.modifiedStartLineNumber+(f.modifiedEndLineNumber>0?-1:0),\no=f.originalEndLineNumber>0?f.originalEndLineNumber-f.originalStartLineNumber+1:0,i=f.modifiedEndLineNumber>0?f.modifiedEndLineNumber-f.modifiedStartLineNumber+1:0,a=Math.max(f.originalStartLineNumber,f.originalEndLineNumber),l=Math.max(f.modifiedStartLineNumber,f.modifiedEndLineNumber)):(a=r+=1e7+o,l=s+=1e7+i);for(var m,v=[],_=[];c.current&&c.current.afterLineNumber<=l;){var y=void 0;y=c.current.afterLineNumber<=s?r-s+c.current.afterLineNumber:a;var C=null;f&&f.modifiedStartLineNumber<=c.current.afterLineNumber&&c.current.afterLineNumber<=f.modifiedEndLineNumber&&(C=this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),v.push({afterLineNumber:y,heightInLines:c.current.height/this.modifiedLineHeight,domNode:null,marginDomNode:C}),c.advance()}for(;h.current&&h.current.afterLineNumber<=a;){y=void 0;y=h.current.afterLineNumber<=r?s-r+h.current.afterLineNumber:l,_.push({afterLineNumber:y,heightInLines:h.current.height/this.originalLineHeight,domNode:null}),h.advance()}\nif(null!==f&&Q(f))(m=this._produceOriginalFromDiff(f,o,i))&&v.push(m);if(null!==f&&J(f))(m=this._produceModifiedFromDiff(f,o,i))&&_.push(m);var b=0,S=0;for(v=v.sort(u),_=_.sort(u);b<v.length&&S<_.length;){var w=v[b],E=_[S],L=w.afterLineNumber-r,D=E.afterLineNumber-s;L<D?(d(t,w),b++):D<L?(d(n,E),S++):w.shouldNotShrink?(d(t,w),b++):E.shouldNotShrink?(d(n,E),S++):w.heightInLines>=E.heightInLines?(w.heightInLines-=E.heightInLines,S++):(E.heightInLines-=w.heightInLines,b++)}for(;b<v.length;)d(t,v[b]),b++;for(;S<_.length;)d(n,_[S]),S++}return{original:e._ensureDomNodes(t),modified:e._ensureDomNodes(n)}},e._ensureDomNodes=function(e){return e.map((function(e){var t;return e.domNode||(e.domNode=((t=document.createElement(\"div\")).className=\"diagonal-fill\",t)),e}))},e}();function q(e,t,n,i,o){return{range:new y.Range(e,t,n,i),options:o}}var G={charDelete:S.ModelDecorationOptions.register({className:\"char-delete\"}),charDeleteWholeLine:S.ModelDecorationOptions.register({className:\"char-delete\",isWholeLine:!0}),\ncharInsert:S.ModelDecorationOptions.register({className:\"char-insert\"}),charInsertWholeLine:S.ModelDecorationOptions.register({className:\"char-insert\",isWholeLine:!0}),lineInsert:S.ModelDecorationOptions.register({className:\"line-insert\",marginClassName:\"line-insert\",isWholeLine:!0}),lineInsertWithSign:S.ModelDecorationOptions.register({className:\"line-insert\",linesDecorationsClassName:\"insert-sign codicon codicon-add\",marginClassName:\"line-insert\",isWholeLine:!0}),lineDelete:S.ModelDecorationOptions.register({className:\"line-delete\",marginClassName:\"line-delete\",isWholeLine:!0}),lineDeleteWithSign:S.ModelDecorationOptions.register({className:\"line-delete\",linesDecorationsClassName:\"delete-sign codicon codicon-remove\",marginClassName:\"line-delete\",isWholeLine:!0}),lineDeleteMargin:S.ModelDecorationOptions.register({marginClassName:\"line-delete\"})},Y=function(e){function t(t,n){var i=e.call(this,t)||this;return i._disableSash=!1===n,i._sashRatio=null,i._sashPosition=null,i._startSashPosition=null,\ni._sash=i._register(new s.Sash(i._dataSource.getContainerDomNode(),i)),i._disableSash&&(i._sash.state=0),i._sash.onDidStart((function(){return i.onSashDragStart()})),i._sash.onDidChange((function(e){return i.onSashDrag(e)})),i._sash.onDidEnd((function(){return i.onSashDragEnd()})),i._sash.onDidReset((function(){return i.onSashReset()})),i}return r(t,e),t.prototype.setEnableSplitViewResizing=function(e){var t=!1===e;this._disableSash!==t&&(this._disableSash=t,this._sash.state=this._disableSash?0:3)},t.prototype.layout=function(e){void 0===e&&(e=this._sashRatio);var n=this._dataSource.getWidth()-H.ENTIRE_DIFF_OVERVIEW_WIDTH,i=Math.floor((e||.5)*n),o=Math.floor(.5*n);return i=this._disableSash?o:i||o,n>2*t.MINIMUM_EDITOR_WIDTH?(i<t.MINIMUM_EDITOR_WIDTH&&(i=t.MINIMUM_EDITOR_WIDTH),i>n-t.MINIMUM_EDITOR_WIDTH&&(i=n-t.MINIMUM_EDITOR_WIDTH)):i=o,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition},t.prototype.onSashDragStart=function(){this._startSashPosition=this._sashPosition},\nt.prototype.onSashDrag=function(e){var t=this._dataSource.getWidth()-H.ENTIRE_DIFF_OVERVIEW_WIDTH,n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()},t.prototype.onSashDragEnd=function(){this._sash.layout()},t.prototype.onSashReset=function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()},t.prototype.getVerticalSashTop=function(e){return 0},t.prototype.getVerticalSashLeft=function(e){return this._sashPosition},t.prototype.getVerticalSashHeight=function(e){return this._dataSource.getHeight()},t.prototype._getViewZones=function(e,t,n,i,o){return new Z(e,t,i.getOption(49),n,o.getOption(49)).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r=String(this._removeColor),s={decorations:[],overviewZones:[]},a=i.getModel(),l=0,u=e.length;l<u;l++){var d=e[l];if(J(d)&&(s.decorations.push({range:new y.Range(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824),\noptions:n?G.lineDeleteWithSign:G.lineDelete}),Q(d)&&d.charChanges||s.decorations.push(q(d.originalStartLineNumber,1,d.originalEndLineNumber,1073741824,G.charDeleteWholeLine)),s.overviewZones.push(new E.OverviewRulerZone(d.originalStartLineNumber,d.originalEndLineNumber,r)),d.charChanges))for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(J(p))if(t)for(var g=p.originalStartLineNumber;g<=p.originalEndLineNumber;g++){var f=void 0,m=void 0;f=g===p.originalStartLineNumber?p.originalStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.originalEndLineNumber?p.originalEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charDelete))}else s.decorations.push(q(p.originalStartLineNumber,p.originalStartColumn,p.originalEndLineNumber,p.originalEndColumn,G.charDelete))}}return s},t.prototype._getModifiedEditorDecorations=function(e,t,n,i,o){for(var r=String(this._insertColor),s={decorations:[],overviewZones:[]},a=o.getModel(),l=0,u=e.length;l<u;l++){var d=e[l]\n;if(Q(d)&&(s.decorations.push({range:new y.Range(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?G.lineInsertWithSign:G.lineInsert}),J(d)&&d.charChanges||s.decorations.push(q(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,G.charInsertWholeLine)),s.overviewZones.push(new E.OverviewRulerZone(d.modifiedStartLineNumber,d.modifiedEndLineNumber,r)),d.charChanges))for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(Q(p))if(t)for(var g=p.modifiedStartLineNumber;g<=p.modifiedEndLineNumber;g++){var f=void 0,m=void 0;f=g===p.modifiedStartLineNumber?p.modifiedStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.modifiedEndLineNumber?p.modifiedEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charInsert))}else s.decorations.push(q(p.modifiedStartLineNumber,p.modifiedStartColumn,p.modifiedEndLineNumber,p.modifiedEndColumn,G.charInsert))}}return s},t.MINIMUM_EDITOR_WIDTH=100,t}(K),Z=function(e){function t(t,n,i,o,r){\nreturn e.call(this,t,n,i,o,r)||this}return r(t,e),t.prototype._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion=function(){return null},t.prototype._produceOriginalFromDiff=function(e,t,n){return n>t?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null},t.prototype._produceModifiedFromDiff=function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null},t}(j),$=function(e){function t(t,n){var i=e.call(this,t)||this;return i.decorationsLeft=t.getOriginalEditor().getLayoutInfo().decorationsLeft,i._register(t.getOriginalEditor().onDidLayoutChange((function(e){i.decorationsLeft!==e.decorationsLeft&&(i.decorationsLeft=e.decorationsLeft,t.relayoutEditors())}))),i}return r(t,e),t.prototype.setEnableSplitViewResizing=function(e){},t.prototype._getViewZones=function(e,t,n,i,o,r){return new X(e,t,n,i,o,r).getViewZones()},\nt.prototype._getOriginalEditorDecorations=function(e,t,n,i,o){for(var r=String(this._removeColor),s={decorations:[],overviewZones:[]},a=0,l=e.length;a<l;a++){var u=e[a];J(u)&&(s.decorations.push({range:new y.Range(u.originalStartLineNumber,1,u.originalEndLineNumber,1073741824),options:G.lineDeleteMargin}),s.overviewZones.push(new E.OverviewRulerZone(u.originalStartLineNumber,u.originalEndLineNumber,r)))}return s},t.prototype._getModifiedEditorDecorations=function(e,t,n,i,o){for(var r=String(this._insertColor),s={decorations:[],overviewZones:[]},a=o.getModel(),l=0,u=e.length;l<u;l++){var d=e[l];if(Q(d))if(s.decorations.push({range:new y.Range(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824),options:n?G.lineInsertWithSign:G.lineInsert}),s.overviewZones.push(new E.OverviewRulerZone(d.modifiedStartLineNumber,d.modifiedEndLineNumber,r)),d.charChanges)for(var c=0,h=d.charChanges.length;c<h;c++){var p=d.charChanges[c];if(Q(p))if(t)for(var g=p.modifiedStartLineNumber;g<=p.modifiedEndLineNumber;g++){\nvar f=void 0,m=void 0;f=g===p.modifiedStartLineNumber?p.modifiedStartColumn:a.getLineFirstNonWhitespaceColumn(g),m=g===p.modifiedEndLineNumber?p.modifiedEndColumn:a.getLineLastNonWhitespaceColumn(g),s.decorations.push(q(g,f,g,m,G.charInsert))}else s.decorations.push(q(p.modifiedStartLineNumber,p.modifiedStartColumn,p.modifiedEndLineNumber,p.modifiedEndColumn,G.charInsert))}else s.decorations.push(q(d.modifiedStartLineNumber,1,d.modifiedEndLineNumber,1073741824,G.charInsertWholeLine))}return s},t.prototype.layout=function(){return Math.max(5,this.decorationsLeft)},t}(K),X=function(e){function t(t,n,i,o,r,s){var a=e.call(this,t,n,o.getOption(49),i,r.getOption(49))||this;return a.originalModel=o.getModel(),a.modifiedEditorOptions=r.getOptions(),a.modifiedEditorTabSize=r.getModel().getOptions().tabSize,a.renderIndicators=s,a}return r(t,e),t.prototype._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion=function(){var e=document.createElement(\"div\")\n;return e.className=\"inline-added-margin-view-zone\",e},t.prototype._produceOriginalFromDiff=function(e,t,n){var i=document.createElement(\"div\");return i.className=\"inline-added-margin-view-zone\",{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n,domNode:document.createElement(\"div\"),marginDomNode:i}},t.prototype._produceModifiedFromDiff=function(e,t,n){var i=[];if(e.charChanges)for(var o=0,r=e.charChanges.length;o<r;o++){var s=e.charChanges[o];J(s)&&i.push(new N.InlineDecoration(new y.Range(s.originalStartLineNumber,s.originalStartColumn,s.originalEndLineNumber,s.originalEndColumn),\"char-delete\",0))}\nfor(var a=C.createStringBuilder(1e4),l=[],u=this.modifiedEditorOptions.get(107),d=this.modifiedEditorOptions.get(34),h=u.decorationsWidth,p=this.modifiedEditorOptions.get(49),g=d.typicalHalfwidthCharacterWidth,f=0,m=[],v=e.originalStartLineNumber;v<=e.originalEndLineNumber;v++)if(f=Math.max(f,this._renderOriginalLine(v-e.originalStartLineNumber,this.originalModel,this.modifiedEditorOptions,this.modifiedEditorTabSize,v,i,a)),m.push(this.originalModel.getLineContent(v)),this.renderIndicators){var _=v-e.originalStartLineNumber;l=l.concat(['<div class=\"delete-sign codicon codicon-remove\" style=\"position:absolute;top:'+_*p+\"px;width:\"+h+\"px;height:\"+p+'px;right:0;\"></div>'])}f+=this.modifiedEditorOptions.get(79);var b=document.createElement(\"div\");b.className=\"view-lines line-delete\",b.innerHTML=a.build(),c.Configuration.applyFontInfoSlow(b,d);var S=document.createElement(\"div\");return S.className=\"inline-deleted-margin-view-zone\",S.innerHTML=l.join(\"\"),c.Configuration.applyFontInfoSlow(S,d),{shouldNotShrink:!0,\nafterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:f*g,domNode:b,marginDomNode:S,diff:{originalStartLineNumber:e.originalStartLineNumber,originalEndLineNumber:e.originalEndLineNumber,modifiedStartLineNumber:e.modifiedStartLineNumber,modifiedEndLineNumber:e.modifiedEndLineNumber,originalContent:m}}},t.prototype._renderOriginalLine=function(e,t,n,i,o,r,s){var a=t.getLineTokens(o),l=a.getLineContent(),u=n.get(34),d=L.LineDecoration.filter(r,o,1,l.length+1);s.appendASCIIString('<div class=\"view-line'),0===r.length&&s.appendASCIIString(\" char-delete\"),s.appendASCIIString('\" style=\"top:'),s.appendASCIIString(String(e*n.get(49))),s.appendASCIIString('px;width:1000000px;\">')\n;var c=N.ViewLineRenderingData.isBasicASCII(l,t.mightContainNonBasicASCII()),h=N.ViewLineRenderingData.containsRTL(l,c,t.mightContainRTL()),p=D.renderViewLine(new D.RenderLineInput(u.isMonospace&&!n.get(23),u.canUseHalfwidthRightwardsArrow,l,!1,c,h,0,a,d,i,0,u.spaceWidth,u.middotWidth,n.get(88),n.get(74),n.get(69),n.get(35)!==_.EditorFontLigatures.OFF,null),s);s.appendASCIIString(\"</div>\");var g=p.characterMapping.getAbsoluteOffsets();return g.length>0?g[g.length-1]:0},t}(j);function Q(e){return e.modifiedEndLineNumber>0}function J(e){return e.originalEndLineNumber>0}R.registerThemingParticipant((function(e,t){var n=e.getColor(T.diffInserted);n&&(t.addRule(\".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: \"+n+\"; }\"),t.addRule(\".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .inline-added-margin-view-zone { background-color: \"+n+\"; }\"));var i=e.getColor(T.diffRemoved)\n;i&&(t.addRule(\".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: \"+i+\"; }\"),t.addRule(\".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: \"+i+\"; }\"),t.addRule(\".monaco-editor .inline-deleted-margin-view-zone { background-color: \"+i+\"; }\"));var o=e.getColor(T.diffInsertedOutline);o&&t.addRule(\".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+o+\"; }\");var r=e.getColor(T.diffRemovedOutline);r&&t.addRule(\".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+r+\"; }\");var s=e.getColor(T.scrollbarShadow);s&&t.addRule(\".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px \"+s+\"; }\");var a=e.getColor(T.diffBorder);a&&t.addRule(\".monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid \"+a+\"; }\")}))})),define(n[167],i([0,1,31,32,121,29,18,11,35,14,64]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,i,o,r,s,a,l,u,d){var c=e.call(this,t,i.getRawOptions(),{},o,r,s,a,l,u,d)||this;return c._parentEditor=i,c._overwriteOptions=n,e.prototype.updateOptions.call(c,c._overwriteOptions),c._register(i.onDidChangeConfiguration((function(e){return c._onParentConfigurationChanged(e)}))),c}return r(t,e),t.prototype.getParentEditor=function(){return this._parentEditor},t.prototype._onParentConfigurationChanged=function(t){e.prototype.updateOptions.call(this,this._parentEditor.getRawOptions()),e.prototype.updateOptions.call(this,this._overwriteOptions)},t.prototype.updateOptions=function(t){n.mixin(this._overwriteOptions,t,!0),e.prototype.updateOptions.call(this,this._overwriteOptions)},t=h([g(3,l.IInstantiationService),g(4,i.ICodeEditorService),g(5,s.ICommandService),g(6,a.IContextKeyService),g(7,d.IThemeService),g(8,u.INotificationService),g(9,c.IAccessibilityService)],t)}(o.CodeEditorWidget);t.EmbeddedCodeEditorWidget=p})),\ndefine(n[565],i([0,1,72,2,48,14,44,49,3,38,46,4,21,20]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m){\"use strict\";function v(e){return e.toString()}Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(e){function t(t){var n=e.call(this)||this;return n.model=t,n._markersData=new Map,n._register(i.toDisposable((function(){n.model.deltaDecorations(d.keys(n._markersData),[]),n._markersData.clear()}))),n}return r(t,e),t.prototype.update=function(e,t){var n=d.keys(this._markersData);this._markersData.clear();for(var i=this.model.deltaDecorations(n,t),o=0;o<i.length;o++)this._markersData.set(i[o],e[o])},t.prototype.getMarker=function(e){return this._markersData.get(e.id)},t}(i.Disposable),y=function(e){function t(t,n){var i=e.call(this)||this;return i._markerService=n,i._onDidChangeMarker=i._register(new p.Emitter),i._markerDecorations=new Map,t.getModels().forEach((function(e){return i._onModelAdded(e)})),i._register(t.onModelAdded(i._onModelAdded,i)),i._register(t.onModelRemoved(i._onModelRemoved,i)),\ni._register(i._markerService.onMarkerChanged(i._handleMarkerChange,i)),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._markerDecorations.forEach((function(e){return e.dispose()})),this._markerDecorations.clear()},t.prototype.getMarker=function(e,t){var n=this._markerDecorations.get(v(e.uri));return n?f.withUndefinedAsNull(n.getMarker(t)):null},t.prototype._handleMarkerChange=function(e){var t=this;e.forEach((function(e){var n=t._markerDecorations.get(v(e));n&&t._updateDecorations(n)}))},t.prototype._onModelAdded=function(e){var t=new _(e);this._markerDecorations.set(v(e.uri),t),this._updateDecorations(t)},t.prototype._onModelRemoved=function(e){var t=this,n=this._markerDecorations.get(v(e.uri));n&&(n.dispose(),this._markerDecorations.delete(v(e.uri))),e.uri.scheme!==c.Schemas.inMemory&&e.uri.scheme!==c.Schemas.internal&&e.uri.scheme!==c.Schemas.vscode||this._markerService&&this._markerService.read({resource:e.uri}).map((function(e){return e.owner})).forEach((function(n){\nreturn t._markerService.remove(n,[e.uri])}))},t.prototype._updateDecorations=function(e){var t=this,n=this._markerService.read({resource:e.model.uri,take:500}),i=n.map((function(n){return{range:t._createDecorationRange(e.model,n),options:t._createDecorationOption(n)}}));e.update(n,i),this._onDidChangeMarker.fire(e.model)},t.prototype._createDecorationRange=function(e,t){var i=u.Range.lift(t);if(t.severity!==n.MarkerSeverity.Hint||this._hasMarkerTag(t,1)||this._hasMarkerTag(t,2)||(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),(i=e.validateRange(i)).isEmpty()){var o=e.getWordAtPosition(i.getStartPosition());if(o)i=new u.Range(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn);else{var r=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);1===r||(i=i.endColumn>=r?new u.Range(i.startLineNumber,r-1,i.endLineNumber,r):new u.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn+1))}\n}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&i.startLineNumber===i.endLineNumber){var s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s<i.endColumn&&(i=new u.Range(i.startLineNumber,s,i.endLineNumber,i.endColumn),t.startColumn=s)}return i},t.prototype._createDecorationOption=function(e){var t,i,r,l=void 0,u=void 0;switch(e.severity){case n.MarkerSeverity.Hint:t=this._hasMarkerTag(e,2)?void 0:this._hasMarkerTag(e,1)?\"squiggly-unnecessary\":\"squiggly-hint\",i=0;break;case n.MarkerSeverity.Warning:t=\"squiggly-warning\",l=s.themeColorFromId(a.overviewRulerWarning),i=20,r={color:s.themeColorFromId(m.minimapWarning),position:o.MinimapPosition.Inline};break;case n.MarkerSeverity.Info:t=\"squiggly-info\",l=s.themeColorFromId(a.overviewRulerInfo),i=10;break;case n.MarkerSeverity.Error:default:t=\"squiggly-error\",l=s.themeColorFromId(a.overviewRulerError),i=30,r={color:s.themeColorFromId(m.minimapError),position:o.MinimapPosition.Inline}}\nreturn e.tags&&(-1!==e.tags.indexOf(1)&&(u=\"squiggly-inline-unnecessary\"),-1!==e.tags.indexOf(2)&&(u=\"squiggly-inline-deprecated\")),{stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:l,position:o.OverviewRulerLane.Right},minimap:r,zIndex:i,inlineClassName:u}},t.prototype._hasMarkerTag=function(e,t){return!!e.tags&&e.tags.indexOf(t)>=0},t=h([g(0,l.IModelService),g(1,n.IMarkerService)],t)}(i.Disposable);t.MarkerDecorationsService=y})),define(n[566],i([0,1,428,15,2,12,13,3,22,23,48,30,44,20,14,65,302]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var v=g.registerColor(\"editorOverviewRuler.bracketMatchForeground\",{dark:\"#A0A0A0\",light:\"#A0A0A0\",hc:\"#A0A0A0\"},n.localize(0,null)),_=function(e){function t(){return e.call(this,{id:\"editor.action.jumpToBracket\",label:n.localize(1,null),alias:\"Go to Bracket\",precondition:void 0,kbOpts:{kbExpr:d.EditorContextKeys.editorTextFocus,primary:3160,weight:100}})||this}return r(t,e),\nt.prototype.run=function(e,t){var n=b.get(t);n&&n.jumpToBracket()},t}(s.EditorAction),y=function(e){function t(){return e.call(this,{id:\"editor.action.selectToBracket\",label:n.localize(2,null),alias:\"Select to Bracket\",precondition:void 0,description:{description:\"Select to Bracket\",args:[{name:\"args\",schema:{type:\"object\",properties:{selectBrackets:{type:\"boolean\",default:!0}}}}]}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=b.get(t);if(i){var o=!0;n&&!1===n.selectBrackets&&(o=!1),i.selectToBracket(o)}},t}(s.EditorAction),C=function(e,t,n){this.position=e,this.brackets=t,this.options=n},b=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._lastBracketsData=[],n._lastVersionId=0,n._decorations=[],n._updateBracketsSoon=n._register(new i.RunOnceScheduler((function(){return n._updateBrackets()}),50)),n._matchBrackets=n._editor.getOption(53),n._updateBracketsSoon.schedule(),n._register(t.onDidChangeCursorPosition((function(e){\n\"never\"!==n._matchBrackets&&n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModelContent((function(e){n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModel((function(e){n._lastBracketsData=[],n._decorations=[],n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeModelLanguageConfiguration((function(e){n._lastBracketsData=[],n._updateBracketsSoon.schedule()}))),n._register(t.onDidChangeConfiguration((function(e){e.hasChanged(53)&&(n._matchBrackets=n._editor.getOption(53),n._decorations=n._editor.deltaDecorations(n._decorations,[]),n._lastBracketsData=[],n._lastVersionId=0,n._updateBracketsSoon.schedule())}))),n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.jumpToBracket=function(){if(this._editor.hasModel()){var e=this._editor.getModel(),t=this._editor.getSelections().map((function(t){var n=t.getStartPosition(),i=e.matchBracket(n),o=null\n;if(i)i[0].containsPosition(n)?o=i[1].getStartPosition():i[1].containsPosition(n)&&(o=i[0].getStartPosition());else{var r=e.findEnclosingBrackets(n);if(r)o=r[0].getStartPosition();else{var s=e.findNextBracket(n);s&&s.range&&(o=s.range.getStartPosition())}}return o?new u.Selection(o.lineNumber,o.column,o.lineNumber,o.column):new u.Selection(n.lineNumber,n.column,n.lineNumber,n.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}},t.prototype.selectToBracket=function(e){if(this._editor.hasModel()){var t=this._editor.getModel(),n=[];this._editor.getSelections().forEach((function(i){var o=i.getStartPosition(),r=t.matchBracket(o);if(!r&&!(r=t.findEnclosingBrackets(o))){var s=t.findNextBracket(o);s&&s.range&&(r=t.matchBracket(s.range.getStartPosition()))}var a=null,d=null;if(r){r.sort(l.Range.compareRangesUsingStarts);var c=r[0],h=r[1];a=e?c.getStartPosition():c.getEndPosition(),d=e?h.getEndPosition():h.getStartPosition()}a&&d&&n.push(new u.Selection(a.lineNumber,a.column,d.lineNumber,d.column))\n})),n.length>0&&(this._editor.setSelections(n),this._editor.revealRange(n[0]))}},t.prototype._updateBrackets=function(){if(\"never\"!==this._matchBrackets){this._recomputeBrackets();for(var e=[],t=0,n=0,i=this._lastBracketsData;n<i.length;n++){var o=i[n],r=o.brackets;r&&(e[t++]={range:r[0],options:o.options},e[t++]={range:r[1],options:o.options})}this._decorations=this._editor.deltaDecorations(this._decorations,e)}},t.prototype._recomputeBrackets=function(){if(!this._editor.hasModel())return this._lastBracketsData=[],void(this._lastVersionId=0);var e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);var n=this._editor.getModel(),i=n.getVersionId(),o=[];this._lastVersionId===i&&(o=this._lastBracketsData);for(var r=[],s=0,l=0,u=e.length;l<u;l++){var d=e[l];d.isEmpty()&&(r[s++]=d.getStartPosition())}r.length>1&&r.sort(a.Position.compare);var c=[],h=0,p=0,g=o.length;for(l=0,u=r.length;l<u;l++){for(var f=r[l];p<g&&o[p].position.isBefore(f);)p++\n;if(p<g&&o[p].position.equals(f))c[h++]=o[p];else{var m=n.matchBracket(f),v=t._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;m||\"always\"!==this._matchBrackets||(m=n.findEnclosingBrackets(f,20),v=t._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[h++]=new C(f,m,v)}}this._lastBracketsData=c,this._lastVersionId=i},t.ID=\"editor.contrib.bracketMatchingController\",t._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=h.ModelDecorationOptions.register({stickiness:1,className:\"bracket-match\",overviewRuler:{color:f.themeColorFromId(v),position:c.OverviewRulerLane.Center}}),t._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=h.ModelDecorationOptions.register({stickiness:1,className:\"bracket-match\"}),t}(o.Disposable);t.BracketMatchingController=b,s.registerEditorContribution(b.ID,b),s.registerEditorAction(y),s.registerEditorAction(_),f.registerThemingParticipant((function(e,t){var n=e.getColor(p.editorBracketMatchBackground);n&&t.addRule(\".monaco-editor .bracket-match { background-color: \"+n+\"; }\");var i=e.getColor(p.editorBracketMatchBorder)\n;i&&t.addRule(\".monaco-editor .bracket-match { border: 1px solid \"+i+\"; }\")})),m.MenuRegistry.appendMenuItem(19,{group:\"5_infile_nav\",command:{id:\"editor.action.jumpToBracket\",title:n.localize(3,null)},order:2})})),define(n[567],i([0,1,6,78,4,2,30,433,34,14,20,57,304]),(function(e,t,n,i,o,s,a,l,u,d,c,p){\"use strict\";var f;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.Hidden={type:0};var t=function(e,t,n,i){this.actions=e,this.trigger=t,this.editorPosition=n,this.widgetPosition=i,this.type=1};e.Showing=t}(f||(f={}));var m=function(e){function t(t,r,s,a){var l=e.call(this)||this;return l._editor=t,l._quickFixActionId=r,l._preferredFixActionId=s,l._keybindingService=a,l._onClick=l._register(new o.Emitter),l.onClick=l._onClick.event,l._state=f.Hidden,l._domNode=document.createElement(\"div\"),l._domNode.className=\"codicon codicon-lightbulb\",l._editor.addContentWidget(l),l._register(l._editor.onDidChangeModelContent((function(e){var t=l._editor.getModel()\n;(1!==l.state.type||!t||l.state.editorPosition.lineNumber>=t.getLineCount())&&l.hide()}))),p.Gesture.ignoreTarget(l._domNode),l._register(n.addStandardDisposableGenericMouseDownListner(l._domNode,(function(e){if(1===l.state.type){l._editor.focus(),e.preventDefault();var t=n.getDomNodePagePosition(l._domNode),i=t.top,o=t.height,r=l._editor.getOption(49),s=Math.floor(r/3);null!==l.state.widgetPosition.position&&l.state.widgetPosition.position.lineNumber<l.state.editorPosition.lineNumber&&(s+=r),l._onClick.fire({x:e.posx,y:i+o+s,actions:l.state.actions,trigger:l.state.trigger})}}))),l._register(n.addDisposableListener(l._domNode,\"mouseenter\",(function(e){if(1==(1&e.buttons)){l.hide();var t=new i.GlobalMouseMoveMonitor;t.startMonitoring(e.target,e.buttons,i.standardMouseMoveMerger,(function(){}),(function(){t.dispose()}))}}))),l._register(l._editor.onDidChangeConfiguration((function(e){e.hasChanged(47)&&!l._editor.getOption(47).enabled&&l.hide()}))),l._updateLightBulbTitle(),\nl._register(l._keybindingService.onDidUpdateKeybindings(l._updateLightBulbTitle,l)),l}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._editor.removeContentWidget(this)},t.prototype.getId=function(){return\"LightBulbWidget\"},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return 1===this._state.type?this._state.widgetPosition:null},t.prototype.update=function(e,i,o){var r=this;if(e.validActions.length<=0)return this.hide();var s=this._editor.getOptions();if(!s.get(47).enabled)return this.hide();var l=o.lineNumber,u=o.column,d=this._editor.getModel();if(!d)return this.hide();var c=d.getOptions().tabSize,h=s.get(34),p=d.getLineContent(l),g=a.TextModel.computeIndentLevel(p,c),m=function(e){return e>2&&r._editor.getTopForLineNumber(e)===r._editor.getTopForLineNumber(e-1)},v=l;if(!(h.spaceWidth*g>22))if(l>1&&!m(l-1))v-=1;else if(m(l+1)){if(u*h.spaceWidth<22)return this.hide()}else v+=1;this.state=new f.Showing(e,i,o,{position:{lineNumber:v,\ncolumn:1},preference:t._posPref}),n.toggleClass(this._domNode,\"codicon-lightbulb-autofix\",e.hasAutoFix),this._editor.layoutContentWidget(this)},t.prototype.hide=function(){this.state=f.Hidden,this._editor.layoutContentWidget(this)},Object.defineProperty(t.prototype,\"state\",{get:function(){return this._state},set:function(e){this._state=e,this._updateLightBulbTitle()},enumerable:!0,configurable:!0}),t.prototype._updateLightBulbTitle=function(){if(1===this.state.type&&this.state.actions.hasAutoFix){var e=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(e)return void(this.title=l.localize(0,null,e.getLabel()))}var t=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=t?l.localize(1,null,t.getLabel()):l.localize(2,null)},Object.defineProperty(t.prototype,\"title\",{set:function(e){this._domNode.title=e},enumerable:!0,configurable:!0}),t._posPref=[0],t=h([g(3,u.IKeybindingService)],t)}(s.Disposable);t.LightBulbWidget=m,d.registerThemingParticipant((function(e,t){\nvar n=e.getColor(c.editorLightBulbForeground);n&&t.addRule(\"\\n\\t\\t.monaco-editor .contentWidgets .codicon-lightbulb {\\n\\t\\t\\tcolor: \"+n+\";\\n\\t\\t}\");var i=e.getColor(c.editorLightBulbAutoFixForeground);i&&t.addRule(\"\\n\\t\\t.monaco-editor .contentWidgets .codicon-lightbulb-autofix {\\n\\t\\t\\tcolor: \"+i+\";\\n\\t\\t}\")}))})),define(n[568],i([0,1,6,100,5,3,30,44,20,14,305]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e,t){this.afterLineNumber=e,this._onHeight=t,this.heightInLines=1,this.suppressMouseDown=!0,this.domNode=document.createElement(\"div\")}return e.prototype.onComputedHeight=function(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())},e}(),c=function(){function e(t,n,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id=\"codelens.widget-\"+e._idPool++,this.updatePosition(i),\nthis._domNode=document.createElement(\"span\"),this._domNode.className=\"codelens-decoration \"+n}return e.prototype.withCommands=function(e,t){this._commands.clear();for(var r=\"\",s=!1,a=0;a<e.length;a++){var l=e[a];if(l&&(s=!0,l.command)){var u=i.renderCodicons(o.escape(l.command.title));l.command.id?(r+=\"<a id=\"+a+\">\"+u+\"</a>\",this._commands.set(String(a),l.command)):r+=\"<span>\"+u+\"</span>\",a+1<e.length&&(r+=\"<span>&#160;|&#160;</span>\")}}s?(r||(r=\"&#160;\"),this._domNode.innerHTML=r,this._isEmpty&&t&&n.addClass(this._domNode,\"fadein\"),this._isEmpty=!1):this._domNode.innerHTML=\"<span>no commands</span>\"},e.prototype.getCommand=function(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0},e.prototype.getId=function(){return this._id},e.prototype.getDomNode=function(){return this._domNode},e.prototype.updatePosition=function(e){var t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}},\ne.prototype.getPosition=function(){return this._widgetPosition||null},e._idPool=0,e}(),h=function(){function e(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return e.prototype.addDecoration=function(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)},e.prototype.removeDecoration=function(e){this._removeDecorations.push(e)},e.prototype.commit=function(e){for(var t=e.deltaDecorations(this._removeDecorations,this._addDecorations),n=0,i=t.length;n<i;n++)this._addDecorationsCallbacks[n](t[n])},e}();t.CodeLensHelper=h;var p=function(){function e(e,t,n,i,o,a){var l,u=this;this._isDisposed=!1,this._editor=t,this._className=n,this._data=e,this._decorationIds=[];var c=[];this._data.forEach((function(e,t){e.symbol.command&&c.push(e.symbol),i.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},(function(e){return u._decorationIds[t]=e})),l=l?r.Range.plusRange(l,e.symbol.range):r.Range.lift(e.symbol.range)})),\nthis._viewZone=new d(l.startLineNumber-1,a),this._viewZoneId=o.addZone(this._viewZone),c.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(c,!1))}return e.prototype._createContentWidgetIfNecessary=function(){this._contentWidget||(this._contentWidget=new c(this._editor,this._className,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))},e.prototype.dispose=function(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t&&t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0},e.prototype.isDisposed=function(){return this._isDisposed},e.prototype.isValid=function(){var e=this;return this._decorationIds.some((function(t,n){var i=e._editor.getModel().getDecorationRange(t),o=e._data[n].symbol;return!(!i||r.Range.isEmpty(o.range)!==i.isEmpty())}))},e.prototype.updateCodeLensSymbols=function(e,t){var n=this\n;this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((function(e,i){t.addDecoration({range:e.symbol.range,options:s.ModelDecorationOptions.EMPTY},(function(e){return n._decorationIds[i]=e}))}))},e.prototype.computeIfNecessary=function(e){if(!this._viewZone.domNode.hasAttribute(\"monaco-visible-view-zone\"))return null;for(var t=0;t<this._decorationIds.length;t++){var n=e.getDecorationRange(this._decorationIds[t]);n&&(this._data[t].symbol.range=n)}return this._data},e.prototype.updateCommands=function(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(var t=0;t<this._data.length;t++){var n=e[t];if(n){var i=this._data[t].symbol;i.command=n.command||i.command}}},e.prototype.getCommand=function(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)},e.prototype.getLineNumber=function(){var e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1},\ne.prototype.update=function(e){if(this.isValid()){var t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}},e}();t.CodeLensWidget=p,u.registerThemingParticipant((function(e,t){var n=e.getColor(a.editorCodeLensForeground);n&&(t.addRule(\".monaco-editor .codelens-decoration { color: \"+n+\"; }\"),t.addRule(\".monaco-editor .codelens-decoration .codicon { color: \"+n+\"; }\"));var i=e.getColor(l.editorActiveLinkForeground);i&&(t.addRule(\".monaco-editor .codelens-decoration > a:hover { color: \"+i+\" !important; }\"),t.addRule(\".monaco-editor .codelens-decoration > a:hover .codicon { color: \"+i+\" !important; }\"))}))}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[569],i([0,1,15,10,2,67,12,17,221,568,29,35,529,6,125]),(function(e,t,n,i,o,r,s,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t,n,i){var r=this;this._editor=e,this._commandService=t,this._notificationService=n,this._codeLensCache=i,this._globalToDispose=new o.DisposableStore,this._localToDispose=new o.DisposableStore,this._lenses=[],this._oldCodeLensModels=new o.DisposableStore,this._modelChangeCounter=0,this._isEnabled=this._editor.getOption(11),this._globalToDispose.add(this._editor.onDidChangeModel((function(){return r._onModelChange()}))),this._globalToDispose.add(this._editor.onDidChangeModelLanguage((function(){return r._onModelChange()}))),this._globalToDispose.add(this._editor.onDidChangeConfiguration((function(){var e=r._isEnabled;r._isEnabled=r._editor.getOption(11),e!==r._isEnabled&&r._onModelChange()}))),\nthis._globalToDispose.add(l.CodeLensProviderRegistry.onDidChange(this._onModelChange,this)),this._globalToDispose.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&r._updateLensStyle()}))),this._onModelChange(),this._styleClassName=v.hash(this._editor.getId()).toString(16),this._styleElement=m.createStyleSheet(m.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}return e.prototype.dispose=function(){this._localDispose(),this._globalToDispose.dispose(),this._oldCodeLensModels.dispose(),o.dispose(this._currentCodeLensModel)},e.prototype._updateLensStyle=function(){\nvar e=this._editor.getOptions(),t=e.get(34),n=e.get(49),i=Math.round(1.1*n),o=Math.round(.9*t.fontSize),r=\"\\n\\t\\t.monaco-editor .codelens-decoration.\"+this._styleClassName+\" { height: \"+i+\"px; line-height: \"+n+\"px; font-size: \"+o+\"px; padding-right: \"+Math.round(.45*t.fontSize)+\"px;}\\n\\t\\t.monaco-editor .codelens-decoration.\"+this._styleClassName+\" > a > .codicon { line-height: \"+n+\"px; font-size: \"+o+\"px; }\\n\\t\\t\";this._styleElement.innerHTML=r},e.prototype._localDispose=function(){this._currentFindCodeLensSymbolsPromise&&(this._currentFindCodeLensSymbolsPromise.cancel(),this._currentFindCodeLensSymbolsPromise=void 0,this._modelChangeCounter++),this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0),this._localToDispose.clear(),this._oldCodeLensModels.clear(),o.dispose(this._currentCodeLensModel)},e.prototype._onModelChange=function(){var e=this;this._localDispose();var t=this._editor.getModel()\n;if(t&&this._isEnabled){var s=this._codeLensCache.get(t);if(s&&this._renderCodeLensSymbols(s),l.CodeLensProviderRegistry.has(t)){for(var c=0,h=l.CodeLensProviderRegistry.all(t);c<h.length;c++){var p=h[c];if(\"function\"==typeof p.onDidChange){var g=p.onDidChange((function(){return m.schedule()}));this._localToDispose.add(g)}}var f=this._detectVisibleLenses=new n.RunOnceScheduler((function(){return e._onViewportChanged()}),250),m=new n.RunOnceScheduler((function(){var o=++e._modelChangeCounter;e._currentFindCodeLensSymbolsPromise&&e._currentFindCodeLensSymbolsPromise.cancel(),e._currentFindCodeLensSymbolsPromise=n.createCancelablePromise((function(e){return u.getCodeLensData(t,e)})),e._currentFindCodeLensSymbolsPromise.then((function(n){o===e._modelChangeCounter&&(e._currentCodeLensModel&&e._oldCodeLensModels.add(e._currentCodeLensModel),e._currentCodeLensModel=n,e._codeLensCache.put(t,n),e._renderCodeLensSymbols(n),f.schedule())}),i.onUnexpectedError)}),250);this._localToDispose.add(m),\nthis._localToDispose.add(f),this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){var i=[],o=-1;e._lenses.forEach((function(e){e.isValid()&&o!==e.getLineNumber()?(e.update(n),o=e.getLineNumber()):i.push(e)}));var r=new d.CodeLensHelper;i.forEach((function(t){t.dispose(r,n),e._lenses.splice(e._lenses.indexOf(t),1)})),r.commit(t)}))})),f.schedule(),m.schedule()}))),this._localToDispose.add(this._editor.onDidScrollChange((function(t){t.scrollTopChanged&&e._lenses.length>0&&f.schedule()}))),this._localToDispose.add(this._editor.onDidLayoutChange((function(){f.schedule()}))),this._localToDispose.add(o.toDisposable((function(){if(e._editor.getModel()){var t=r.StableEditorScrollState.capture(e._editor);e._editor.changeDecorations((function(t){e._editor.changeViewZones((function(n){e._disposeAllLenses(t,n)}))})),t.restore(e._editor)}else e._disposeAllLenses(void 0,void 0)}))),\nthis._localToDispose.add(this._editor.onMouseUp((function(t){var n;if(9===t.target.type){var i=t.target.element;if(\"SPAN\"===(null==i?void 0:i.tagName)&&(i=i.parentElement),\"A\"===(null==i?void 0:i.tagName))for(var o=0,r=e._lenses;o<r.length;o++){var s=r[o].getCommand(i);if(s){(n=e._commandService).executeCommand.apply(n,a([s.id],s.arguments||[])).catch((function(t){return e._notificationService.error(t)}));break}}}}))),m.schedule()}else s&&this._localToDispose.add(n.disposableTimeout((function(){var n=e._codeLensCache.get(t);s===n&&(e._codeLensCache.delete(t),e._onModelChange())}),3e4))}},e.prototype._disposeAllLenses=function(e,t){for(var n=new d.CodeLensHelper,i=0,o=this._lenses;i<o.length;i++){o[i].dispose(n,t)}e&&n.commit(e),this._lenses=[]},e.prototype._renderCodeLensSymbols=function(e){var t=this;if(this._editor.hasModel()){for(var n,i=this._editor.getModel().getLineCount(),o=[],s=0,a=e.lenses;s<a.length;s++){var l=a[s],u=l.symbol.range.startLineNumber\n;u<1||u>i||(n&&n[n.length-1].symbol.range.startLineNumber===u?n.push(l):(n=[l],o.push(n)))}var c=r.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations((function(e){t._editor.changeViewZones((function(n){for(var i=new d.CodeLensHelper,r=0,s=0;s<o.length&&r<t._lenses.length;){var a=o[s][0].symbol.range.startLineNumber,l=t._lenses[r].getLineNumber();l<a?(t._lenses[r].dispose(i,n),t._lenses.splice(r,1)):l===a?(t._lenses[r].updateCodeLensSymbols(o[s],i),s++,r++):(t._lenses.splice(r,0,new d.CodeLensWidget(o[s],t._editor,t._styleClassName,i,n,(function(){return t._detectVisibleLenses&&t._detectVisibleLenses.schedule()}))),r++,s++)}for(;r<t._lenses.length;)t._lenses[r].dispose(i,n),t._lenses.splice(r,1);for(;s<o.length;)t._lenses.push(new d.CodeLensWidget(o[s],t._editor,t._styleClassName,i,n,(function(){return t._detectVisibleLenses&&t._detectVisibleLenses.schedule()}))),s++;i.commit(e)}))})),c.restore(this._editor)}},e.prototype._onViewportChanged=function(){var e=this\n;this._currentResolveCodeLensSymbolsPromise&&(this._currentResolveCodeLensSymbolsPromise.cancel(),this._currentResolveCodeLensSymbolsPromise=void 0);var t=this._editor.getModel();if(t){var o=[],r=[];if(this._lenses.forEach((function(e){var n=e.computeIfNecessary(t);n&&(o.push(n),r.push(e))})),0!==o.length){var s=n.createCancelablePromise((function(e){var n=o.map((function(n,o){var s=new Array(n.length),a=n.map((function(n,o){return n.symbol.command||\"function\"!=typeof n.provider.resolveCodeLens?(s[o]=n.symbol,Promise.resolve(void 0)):Promise.resolve(n.provider.resolveCodeLens(t,n.symbol,e)).then((function(e){s[o]=e}),i.onUnexpectedExternalError)}));return Promise.all(a).then((function(){e.isCancellationRequested||r[o].isDisposed()||r[o].updateCommands(s)}))}));return Promise.all(n)}));this._currentResolveCodeLensSymbolsPromise=s,this._currentResolveCodeLensSymbolsPromise.then((function(){e._currentCodeLensModel&&e._codeLensCache.put(t,e._currentCodeLensModel),e._oldCodeLensModels.clear(),\ns===e._currentResolveCodeLensSymbolsPromise&&(e._currentResolveCodeLensSymbolsPromise=void 0)}),(function(t){i.onUnexpectedError(t),s===e._currentResolveCodeLensSymbolsPromise&&(e._currentResolveCodeLensSymbolsPromise=void 0)}))}}},e.ID=\"css.editor.codeLens\",e=h([g(1,c.ICommandService),g(2,p.INotificationService),g(3,f.ICodeLensCache)],e)}();t.CodeLensContribution=_,s.registerEditorContribution(_.ID,_)})),define(n[570],i([0,1,24,6,78,47,27,4,2,20,14,306]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=i.$,p=function(e){function t(t,n,o){var r=e.call(this)||this;r.model=n,r.domNode=h(\".colorpicker-header\"),i.append(t,r.domNode),r.pickedColorNode=i.append(r.domNode,h(\".picked-color\"));var s=i.append(r.domNode,h(\".original-color\"));return s.style.backgroundColor=a.Color.Format.CSS.format(r.model.originalColor)||\"\",r.backgroundColor=o.getTheme().getColor(d.editorHoverBackground)||a.Color.white,r._register(c.registerThemingParticipant((function(e,t){\nr.backgroundColor=e.getColor(d.editorHoverBackground)||a.Color.white}))),r._register(i.addDisposableListener(r.pickedColorNode,i.EventType.CLICK,(function(){return r.model.selectNextColorPresentation()}))),r._register(i.addDisposableListener(s,i.EventType.CLICK,(function(){r.model.color=r.model.originalColor,r.model.flushColor()}))),r._register(n.onDidChangeColor(r.onDidChangeColor,r)),r._register(n.onDidChangePresentation(r.onDidChangePresentation,r)),r.pickedColorNode.style.backgroundColor=a.Color.Format.CSS.format(n.color)||\"\",i.toggleClass(r.pickedColorNode,\"light\",n.color.rgba.a<.5?r.backgroundColor.isLighter():n.color.isLighter()),r}return r(t,e),t.prototype.onDidChangeColor=function(e){this.pickedColorNode.style.backgroundColor=a.Color.Format.CSS.format(e)||\"\",i.toggleClass(this.pickedColorNode,\"light\",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()},t.prototype.onDidChangePresentation=function(){\nthis.pickedColorNode.textContent=this.model.presentation?this.model.presentation.label:\"\"},t}(u.Disposable);t.ColorPickerHeader=p;var g=function(e){function t(t,n,o){var r=e.call(this)||this;return r.model=n,r.pixelRatio=o,r.domNode=h(\".colorpicker-body\"),i.append(t,r.domNode),r.saturationBox=new f(r.domNode,r.model,r.pixelRatio),r._register(r.saturationBox),r._register(r.saturationBox.onDidChange(r.onDidSaturationValueChange,r)),r._register(r.saturationBox.onColorFlushed(r.flushColor,r)),r.opacityStrip=new v(r.domNode,r.model),r._register(r.opacityStrip),r._register(r.opacityStrip.onDidChange(r.onDidOpacityChange,r)),r._register(r.opacityStrip.onColorFlushed(r.flushColor,r)),r.hueStrip=new _(r.domNode,r.model),r._register(r.hueStrip),r._register(r.hueStrip.onDidChange(r.onDidHueChange,r)),r._register(r.hueStrip.onColorFlushed(r.flushColor,r)),r}return r(t,e),t.prototype.flushColor=function(){this.model.flushColor()},t.prototype.onDidSaturationValueChange=function(e){var t=e.s,n=e.v,i=this.model.color.hsva\n;this.model.color=new a.Color(new a.HSVA(i.h,t,n,i.a))},t.prototype.onDidOpacityChange=function(e){var t=this.model.color.hsva;this.model.color=new a.Color(new a.HSVA(t.h,t.s,t.v,e))},t.prototype.onDidHueChange=function(e){var t=this.model.color.hsva,n=360*(1-e);this.model.color=new a.Color(new a.HSVA(360===n?0:n,t.s,t.v,t.a))},t.prototype.layout=function(){this.saturationBox.layout(),this.opacityStrip.layout(),this.hueStrip.layout()},t}(u.Disposable);t.ColorPickerBody=g;var f=function(e){function t(t,n,o){var r=e.call(this)||this;return r.model=n,r.pixelRatio=o,r._onDidChange=new l.Emitter,r.onDidChange=r._onDidChange.event,r._onColorFlushed=new l.Emitter,r.onColorFlushed=r._onColorFlushed.event,r.domNode=h(\".saturation-wrap\"),i.append(t,r.domNode),r.canvas=document.createElement(\"canvas\"),r.canvas.className=\"saturation-box\",i.append(r.domNode,r.canvas),r.selection=h(\".saturation-selection\"),i.append(r.domNode,r.selection),r.layout(),r._register(i.addDisposableGenericMouseDownListner(r.domNode,(function(e){\nreturn r.onMouseDown(e)}))),r._register(r.model.onDidChangeColor(r.onDidChangeColor,r)),r.monitor=null,r}return r(t,e),t.prototype.onMouseDown=function(e){var t=this;this.monitor=this._register(new o.GlobalMouseMoveMonitor);var n=i.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){return t.onDidChangePosition(e.posx-n.left,e.posy-n.top)}),(function(){return null}));var r=i.addDisposableGenericMouseUpListner(document,(function(){t._onColorFlushed.fire(),r.dispose(),t.monitor&&(t.monitor.stopMonitoring(!0),t.monitor=null)}),!0)},t.prototype.onDidChangePosition=function(e,t){var n=Math.max(0,Math.min(1,e/this.width)),i=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(n,i),this._onDidChange.fire({s:n,v:i})},t.prototype.layout=function(){this.width=this.domNode.offsetWidth,this.height=this.domNode.offsetHeight,this.canvas.width=this.width*this.pixelRatio,\nthis.canvas.height=this.height*this.pixelRatio,this.paint();var e=this.model.color.hsva;this.paintSelection(e.s,e.v)},t.prototype.paint=function(){var e=this.model.color.hsva,t=new a.Color(new a.HSVA(e.h,1,1,1)),n=this.canvas.getContext(\"2d\"),i=n.createLinearGradient(0,0,this.canvas.width,0);i.addColorStop(0,\"rgba(255, 255, 255, 1)\"),i.addColorStop(.5,\"rgba(255, 255, 255, 0.5)\"),i.addColorStop(1,\"rgba(255, 255, 255, 0)\");var o=n.createLinearGradient(0,0,0,this.canvas.height);o.addColorStop(0,\"rgba(0, 0, 0, 0)\"),o.addColorStop(1,\"rgba(0, 0, 0, 1)\"),n.rect(0,0,this.canvas.width,this.canvas.height),n.fillStyle=a.Color.Format.CSS.format(t),n.fill(),n.fillStyle=i,n.fill(),n.fillStyle=o,n.fill()},t.prototype.paintSelection=function(e,t){this.selection.style.left=e*this.width+\"px\",this.selection.style.top=this.height-t*this.height+\"px\"},t.prototype.onDidChangeColor=function(){this.monitor&&this.monitor.isMonitoring()||this.paint()},t}(u.Disposable),m=function(e){function t(t,n){var o=e.call(this)||this\n;return o.model=n,o._onDidChange=new l.Emitter,o.onDidChange=o._onDidChange.event,o._onColorFlushed=new l.Emitter,o.onColorFlushed=o._onColorFlushed.event,o.domNode=i.append(t,h(\".strip\")),o.overlay=i.append(o.domNode,h(\".overlay\")),o.slider=i.append(o.domNode,h(\".slider\")),o.slider.style.top=\"0px\",o._register(i.addDisposableGenericMouseDownListner(o.domNode,(function(e){return o.onMouseDown(e)}))),o.layout(),o}return r(t,e),t.prototype.layout=function(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;var e=this.getValue(this.model.color);this.updateSliderPosition(e)},t.prototype.onMouseDown=function(e){var t=this,n=this._register(new o.GlobalMouseMoveMonitor),r=i.getDomNodePagePosition(this.domNode);i.addClass(this.domNode,\"grabbing\"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),n.startMonitoring(e.target,e.buttons,o.standardMouseMoveMerger,(function(e){return t.onDidChangeTop(e.posy-r.top)}),(function(){return null}));var s=i.addDisposableGenericMouseUpListner(document,(function(){\nt._onColorFlushed.fire(),s.dispose(),n.stopMonitoring(!0),i.removeClass(t.domNode,\"grabbing\")}),!0)},t.prototype.onDidChangeTop=function(e){var t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)},t.prototype.updateSliderPosition=function(e){this.slider.style.top=(1-e)*this.height+\"px\"},t}(u.Disposable),v=function(e){function t(t,n){var o=e.call(this,t,n)||this;return i.addClass(o.domNode,\"opacity-strip\"),o._register(n.onDidChangeColor(o.onDidChangeColor,o)),o.onDidChangeColor(o.model.color),o}return r(t,e),t.prototype.onDidChangeColor=function(e){var t=e.rgba,n=t.r,i=t.g,o=t.b,r=new a.Color(new a.RGBA(n,i,o,1)),s=new a.Color(new a.RGBA(n,i,o,0));this.overlay.style.background=\"linear-gradient(to bottom, \"+r+\" 0%, \"+s+\" 100%)\"},t.prototype.getValue=function(e){return e.hsva.a},t}(m),_=function(e){function t(t,n){var o=e.call(this,t,n)||this;return i.addClass(o.domNode,\"hue-strip\"),o}return r(t,e),t.prototype.getValue=function(e){return 1-e.hsva.h/360},t\n}(m),y=function(e){function t(t,i,o,r){var s=e.call(this)||this;s.model=i,s.pixelRatio=o,s._register(n.onDidChangeZoomLevel((function(){return s.layout()})));var a=h(\".colorpicker-widget\");t.appendChild(a);var l=new p(a,s.model,r);return s.body=new g(a,s.model,s.pixelRatio),s._register(l),s._register(s.body),s}return r(t,e),t.prototype.layout=function(){this.body.layout()},t}(s.Widget);t.ColorPickerWidget=y})),define(n[231],i([0,1,437,14,20,308,309]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.SYMBOL_ICON_ARRAY_FOREGROUND=o.registerColor(\"symbolIcon.arrayForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(0,null)),t.SYMBOL_ICON_BOOLEAN_FOREGROUND=o.registerColor(\"symbolIcon.booleanForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(1,null)),t.SYMBOL_ICON_CLASS_FOREGROUND=o.registerColor(\"symbolIcon.classForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(2,null)),\nt.SYMBOL_ICON_COLOR_FOREGROUND=o.registerColor(\"symbolIcon.colorForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(3,null)),t.SYMBOL_ICON_CONSTANT_FOREGROUND=o.registerColor(\"symbolIcon.constantForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(4,null)),t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=o.registerColor(\"symbolIcon.constructorForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(5,null)),t.SYMBOL_ICON_ENUMERATOR_FOREGROUND=o.registerColor(\"symbolIcon.enumeratorForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(6,null)),t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=o.registerColor(\"symbolIcon.enumeratorMemberForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(7,null)),t.SYMBOL_ICON_EVENT_FOREGROUND=o.registerColor(\"symbolIcon.eventForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hc:\"#EE9D28\"},n.localize(8,null)),t.SYMBOL_ICON_FIELD_FOREGROUND=o.registerColor(\"symbolIcon.fieldForeground\",{dark:\"#75BEFF\",\nlight:\"#007ACC\",hc:\"#75BEFF\"},n.localize(9,null)),t.SYMBOL_ICON_FILE_FOREGROUND=o.registerColor(\"symbolIcon.fileForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(10,null)),t.SYMBOL_ICON_FOLDER_FOREGROUND=o.registerColor(\"symbolIcon.folderForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(11,null)),t.SYMBOL_ICON_FUNCTION_FOREGROUND=o.registerColor(\"symbolIcon.functionForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(12,null)),t.SYMBOL_ICON_INTERFACE_FOREGROUND=o.registerColor(\"symbolIcon.interfaceForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(13,null)),t.SYMBOL_ICON_KEY_FOREGROUND=o.registerColor(\"symbolIcon.keyForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(14,null)),t.SYMBOL_ICON_KEYWORD_FOREGROUND=o.registerColor(\"symbolIcon.keywordForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(15,null)),\nt.SYMBOL_ICON_METHOD_FOREGROUND=o.registerColor(\"symbolIcon.methodForeground\",{dark:\"#B180D7\",light:\"#652D90\",hc:\"#B180D7\"},n.localize(16,null)),t.SYMBOL_ICON_MODULE_FOREGROUND=o.registerColor(\"symbolIcon.moduleForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(17,null)),t.SYMBOL_ICON_NAMESPACE_FOREGROUND=o.registerColor(\"symbolIcon.namespaceForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(18,null)),t.SYMBOL_ICON_NULL_FOREGROUND=o.registerColor(\"symbolIcon.nullForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(19,null)),t.SYMBOL_ICON_NUMBER_FOREGROUND=o.registerColor(\"symbolIcon.numberForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(20,null)),t.SYMBOL_ICON_OBJECT_FOREGROUND=o.registerColor(\"symbolIcon.objectForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(21,null)),t.SYMBOL_ICON_OPERATOR_FOREGROUND=o.registerColor(\"symbolIcon.operatorForeground\",{dark:o.foreground,\nlight:o.foreground,hc:o.foreground},n.localize(22,null)),t.SYMBOL_ICON_PACKAGE_FOREGROUND=o.registerColor(\"symbolIcon.packageForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(23,null)),t.SYMBOL_ICON_PROPERTY_FOREGROUND=o.registerColor(\"symbolIcon.propertyForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(24,null)),t.SYMBOL_ICON_REFERENCE_FOREGROUND=o.registerColor(\"symbolIcon.referenceForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(25,null)),t.SYMBOL_ICON_SNIPPET_FOREGROUND=o.registerColor(\"symbolIcon.snippetForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(26,null)),t.SYMBOL_ICON_STRING_FOREGROUND=o.registerColor(\"symbolIcon.stringForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(27,null)),t.SYMBOL_ICON_STRUCT_FOREGROUND=o.registerColor(\"symbolIcon.structForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(28,null)),\nt.SYMBOL_ICON_TEXT_FOREGROUND=o.registerColor(\"symbolIcon.textForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(29,null)),t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=o.registerColor(\"symbolIcon.typeParameterForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(30,null)),t.SYMBOL_ICON_UNIT_FOREGROUND=o.registerColor(\"symbolIcon.unitForeground\",{dark:o.foreground,light:o.foreground,hc:o.foreground},n.localize(31,null)),t.SYMBOL_ICON_VARIABLE_FOREGROUND=o.registerColor(\"symbolIcon.variableForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hc:\"#75BEFF\"},n.localize(32,null)),i.registerThemingParticipant((function(e,n){var i=e.getColor(t.SYMBOL_ICON_ARRAY_FOREGROUND);i&&n.addRule(\".codicon-symbol-array { color: \"+i+\" !important; }\");var o=e.getColor(t.SYMBOL_ICON_BOOLEAN_FOREGROUND);o&&n.addRule(\".codicon-symbol-boolean { color: \"+o+\" !important; }\");var r=e.getColor(t.SYMBOL_ICON_CLASS_FOREGROUND);r&&n.addRule(\".codicon-symbol-class { color: \"+r+\" !important; }\")\n;var s=e.getColor(t.SYMBOL_ICON_METHOD_FOREGROUND);s&&n.addRule(\".codicon-symbol-method { color: \"+s+\" !important; }\");var a=e.getColor(t.SYMBOL_ICON_COLOR_FOREGROUND);a&&n.addRule(\".codicon-symbol-color { color: \"+a+\" !important; }\");var l=e.getColor(t.SYMBOL_ICON_CONSTANT_FOREGROUND);l&&n.addRule(\".codicon-symbol-constant { color: \"+l+\" !important; }\");var u=e.getColor(t.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND);u&&n.addRule(\".codicon-symbol-constructor { color: \"+u+\" !important; }\");var d=e.getColor(t.SYMBOL_ICON_ENUMERATOR_FOREGROUND);d&&n.addRule(\"\\n\\t\\t\\t.codicon-symbol-value,.codicon-symbol-enum { color: \"+d+\" !important; }\");var c=e.getColor(t.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND);c&&n.addRule(\".codicon-symbol-enum-member { color: \"+c+\" !important; }\");var h=e.getColor(t.SYMBOL_ICON_EVENT_FOREGROUND);h&&n.addRule(\".codicon-symbol-event { color: \"+h+\" !important; }\");var p=e.getColor(t.SYMBOL_ICON_FIELD_FOREGROUND);p&&n.addRule(\".codicon-symbol-field { color: \"+p+\" !important; }\")\n;var g=e.getColor(t.SYMBOL_ICON_FILE_FOREGROUND);g&&n.addRule(\".codicon-symbol-file { color: \"+g+\" !important; }\");var f=e.getColor(t.SYMBOL_ICON_FOLDER_FOREGROUND);f&&n.addRule(\".codicon-symbol-folder { color: \"+f+\" !important; }\");var m=e.getColor(t.SYMBOL_ICON_FUNCTION_FOREGROUND);m&&n.addRule(\".codicon-symbol-function { color: \"+m+\" !important; }\");var v=e.getColor(t.SYMBOL_ICON_INTERFACE_FOREGROUND);v&&n.addRule(\".codicon-symbol-interface { color: \"+v+\" !important; }\");var _=e.getColor(t.SYMBOL_ICON_KEY_FOREGROUND);_&&n.addRule(\".codicon-symbol-key { color: \"+_+\" !important; }\");var y=e.getColor(t.SYMBOL_ICON_KEYWORD_FOREGROUND);y&&n.addRule(\".codicon-symbol-keyword { color: \"+y+\" !important; }\");var C=e.getColor(t.SYMBOL_ICON_MODULE_FOREGROUND);C&&n.addRule(\".codicon-symbol-module { color: \"+C+\" !important; }\");var b=e.getColor(t.SYMBOL_ICON_NAMESPACE_FOREGROUND);b&&n.addRule(\".codicon-symbol-namespace { color: \"+b+\" !important; }\");var S=e.getColor(t.SYMBOL_ICON_NULL_FOREGROUND)\n;S&&n.addRule(\".codicon-symbol-null { color: \"+S+\" !important; }\");var w=e.getColor(t.SYMBOL_ICON_NUMBER_FOREGROUND);w&&n.addRule(\".codicon-symbol-number { color: \"+w+\" !important; }\");var E=e.getColor(t.SYMBOL_ICON_OBJECT_FOREGROUND);E&&n.addRule(\".codicon-symbol-object { color: \"+E+\" !important; }\");var L=e.getColor(t.SYMBOL_ICON_OPERATOR_FOREGROUND);L&&n.addRule(\".codicon-symbol-operator { color: \"+L+\" !important; }\");var D=e.getColor(t.SYMBOL_ICON_PACKAGE_FOREGROUND);D&&n.addRule(\".codicon-symbol-package { color: \"+D+\" !important; }\");var N=e.getColor(t.SYMBOL_ICON_PROPERTY_FOREGROUND);N&&n.addRule(\".codicon-symbol-property { color: \"+N+\" !important; }\");var x=e.getColor(t.SYMBOL_ICON_REFERENCE_FOREGROUND);x&&n.addRule(\".codicon-symbol-reference { color: \"+x+\" !important; }\");var I=e.getColor(t.SYMBOL_ICON_SNIPPET_FOREGROUND);I&&n.addRule(\".codicon-symbol-snippet { color: \"+I+\" !important; }\");var M=e.getColor(t.SYMBOL_ICON_STRING_FOREGROUND)\n;M&&n.addRule(\".codicon-symbol-string { color: \"+M+\" !important; }\");var k=e.getColor(t.SYMBOL_ICON_STRUCT_FOREGROUND);k&&n.addRule(\".codicon-symbol-struct { color: \"+k+\" !important; }\");var T=e.getColor(t.SYMBOL_ICON_TEXT_FOREGROUND);T&&n.addRule(\".codicon-symbol-text { color: \"+T+\" !important; }\");var R=e.getColor(t.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND);R&&n.addRule(\".codicon-symbol-type-parameter { color: \"+R+\" !important; }\");var O=e.getColor(t.SYMBOL_ICON_UNIT_FOREGROUND);O&&n.addRule(\".codicon-symbol-unit { color: \"+O+\" !important; }\");var P=e.getColor(t.SYMBOL_ICON_VARIABLE_FOREGROUND);P&&n.addRule(\".codicon-symbol-variable { color: \"+P+\" !important; }\")}))})),define(n[571],i([0,1,3,48,30,20,14]),(function(e,t,n,i,o,r,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,\nthis._startPosition=this._editor.getPosition()}return e.prototype.dispose=function(){this._editor.deltaDecorations(this._allDecorations(),[]),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null},e.prototype.reset=function(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationId=null,this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null},e.prototype.getCount=function(){return this._decorations.length},e.prototype.getFindScope=function(){return this._findScopeDecorationId?this._editor.getModel().getDecorationRange(this._findScopeDecorationId):null},e.prototype.getStartPosition=function(){return this._startPosition},e.prototype.setStartPosition=function(e){this._startPosition=e,this.setCurrentFindMatch(null)},e.prototype._getDecorationIndex=function(e){var t=this._decorations.indexOf(e);return t>=0?t+1:1},\ne.prototype.getCurrentMatchesPosition=function(t){for(var n=0,i=this._editor.getModel().getDecorationsInRange(t);n<i.length;n++){var o=i[n],r=o.options;if(r===e._FIND_MATCH_DECORATION||r===e._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(o.id)}return 1},e.prototype.setCurrentFindMatch=function(t){var i=this,o=null,r=0;if(t)for(var s=0,a=this._decorations.length;s<a;s++){var l=this._editor.getModel().getDecorationRange(this._decorations[s]);if(t.equalsRange(l)){o=this._decorations[s],r=s+1;break}}return null===this._highlightedDecorationId&&null===o||this._editor.changeDecorations((function(t){if(null!==i._highlightedDecorationId&&(t.changeDecorationOptions(i._highlightedDecorationId,e._FIND_MATCH_DECORATION),i._highlightedDecorationId=null),null!==o&&(i._highlightedDecorationId=o,t.changeDecorationOptions(i._highlightedDecorationId,e._CURRENT_FIND_MATCH_DECORATION)),null!==i._rangeHighlightDecorationId&&(t.removeDecoration(i._rangeHighlightDecorationId),i._rangeHighlightDecorationId=null),\nnull!==o){var r=i._editor.getModel().getDecorationRange(o);if(r.startLineNumber!==r.endLineNumber&&1===r.endColumn){var s=r.endLineNumber-1,a=i._editor.getModel().getLineMaxColumn(s);r=new n.Range(r.startLineNumber,r.startColumn,s,a)}i._rangeHighlightDecorationId=t.addDecoration(r,e._RANGE_HIGHLIGHT_DECORATION)}})),r},e.prototype.set=function(t,i){var o=this;this._editor.changeDecorations((function(r){var s=e._FIND_MATCH_DECORATION,a=[];if(t.length>1e3){s=e._FIND_MATCH_NO_OVERVIEW_DECORATION;for(var l=o._editor.getModel().getLineCount(),u=o._editor.getLayoutInfo().height/l,d=Math.max(2,Math.ceil(3/u)),c=t[0].range.startLineNumber,h=t[0].range.endLineNumber,p=1,g=t.length;p<g;p++){var f=t[p].range;h+d>=f.startLineNumber?f.endLineNumber>h&&(h=f.endLineNumber):(a.push({range:new n.Range(c,1,h,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=f.startLineNumber,h=f.endLineNumber)}a.push({range:new n.Range(c,1,h,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}var m=new Array(t.length);for(p=0,\ng=t.length;p<g;p++)m[p]={range:t[p].range,options:s};o._decorations=r.deltaDecorations(o._decorations,m),o._overviewRulerApproximateDecorations=r.deltaDecorations(o._overviewRulerApproximateDecorations,a),o._rangeHighlightDecorationId&&(r.removeDecoration(o._rangeHighlightDecorationId),o._rangeHighlightDecorationId=null),o._findScopeDecorationId&&(r.removeDecoration(o._findScopeDecorationId),o._findScopeDecorationId=null),i&&(o._findScopeDecorationId=r.addDecoration(i,e._FIND_SCOPE_DECORATION))}))},e.prototype.matchBeforePosition=function(e){if(0===this._decorations.length)return null;for(var t=this._decorations.length-1;t>=0;t--){var n=this._decorations[t],i=this._editor.getModel().getDecorationRange(n);if(i&&!(i.endLineNumber>e.lineNumber)){if(i.endLineNumber<e.lineNumber)return i;if(!(i.endColumn>e.column))return i}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])},e.prototype.matchAfterPosition=function(e){if(0===this._decorations.length)return null\n;for(var t=0,n=this._decorations.length;t<n;t++){var i=this._decorations[t],o=this._editor.getModel().getDecorationRange(i);if(o&&!(o.startLineNumber<e.lineNumber)){if(o.startLineNumber>e.lineNumber)return o;if(!(o.startColumn<e.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[0])},e.prototype._allDecorations=function(){var e=[];return e=(e=e.concat(this._decorations)).concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationId&&e.push(this._findScopeDecorationId),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e},e._CURRENT_FIND_MATCH_DECORATION=o.ModelDecorationOptions.register({stickiness:1,zIndex:13,className:\"currentFindMatch\",showIfCollapsed:!0,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center},minimap:{color:s.themeColorFromId(r.minimapFindMatch),position:i.MinimapPosition.Inline}}),e._FIND_MATCH_DECORATION=o.ModelDecorationOptions.register({stickiness:1,\nclassName:\"findMatch\",showIfCollapsed:!0,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center},minimap:{color:s.themeColorFromId(r.minimapFindMatch),position:i.MinimapPosition.Inline}}),e._FIND_MATCH_NO_OVERVIEW_DECORATION=o.ModelDecorationOptions.register({stickiness:1,className:\"findMatch\",showIfCollapsed:!0}),e._FIND_MATCH_ONLY_OVERVIEW_DECORATION=o.ModelDecorationOptions.register({stickiness:1,overviewRuler:{color:s.themeColorFromId(r.overviewRulerFindMatchForeground),position:i.OverviewRulerLane.Center}}),e._RANGE_HIGHLIGHT_DECORATION=o.ModelDecorationOptions.register({stickiness:1,className:\"rangeHighlight\",isWholeLine:!0}),e._FIND_SCOPE_DECORATION=o.ModelDecorationOptions.register({className:\"findScope\",isWholeLine:!0}),e}();t.FindDecorations=a})),define(n[168],i([0,1,15,2,80,13,3,22,144,571,379,380,18]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nt.CONTEXT_FIND_WIDGET_VISIBLE=new h.RawContextKey(\"findWidgetVisible\",!1),t.CONTEXT_FIND_INPUT_FOCUSED=new h.RawContextKey(\"findInputFocussed\",!1),t.CONTEXT_REPLACE_INPUT_FOCUSED=new h.RawContextKey(\"replaceInputFocussed\",!1),t.ToggleCaseSensitiveKeybinding={primary:545,mac:{primary:2593}},t.ToggleWholeWordKeybinding={primary:565,mac:{primary:2613}},t.ToggleRegexKeybinding={primary:560,mac:{primary:2608}},t.ToggleSearchScopeKeybinding={primary:554,mac:{primary:2602}},t.FIND_IDS={StartFindAction:\"actions.find\",StartFindWithSelection:\"actions.findWithSelection\",NextMatchFindAction:\"editor.action.nextMatchFindAction\",PreviousMatchFindAction:\"editor.action.previousMatchFindAction\",NextSelectionMatchFindAction:\"editor.action.nextSelectionMatchFindAction\",PreviousSelectionMatchFindAction:\"editor.action.previousSelectionMatchFindAction\",StartFindReplaceAction:\"editor.action.startFindReplaceAction\",CloseFindWidgetCommand:\"closeFindWidget\",ToggleCaseSensitiveCommand:\"toggleFindCaseSensitive\",\nToggleWholeWordCommand:\"toggleFindWholeWord\",ToggleRegexCommand:\"toggleFindRegex\",ToggleSearchScopeCommand:\"toggleFindInSelection\",TogglePreserveCaseCommand:\"togglePreserveCase\",ReplaceOneAction:\"editor.action.replaceOne\",ReplaceAllAction:\"editor.action.replaceAll\",SelectAllMatchesAction:\"editor.action.selectAllMatches\"},t.MATCHES_LIMIT=19999;var p=function(){function e(e,t){var o=this;this._toDispose=new i.DisposableStore,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new n.TimeoutTimer,this._decorations=new u.FindDecorations(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new n.RunOnceScheduler((function(){return o.research(!1)}),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((function(e){3!==e.reason&&5!==e.reason&&6!==e.reason||o._decorations.setStartPosition(o._editor.getPosition())}))),this._ignoreModelContentChanged=!1,\nthis._toDispose.add(this._editor.onDidChangeModelContent((function(e){o._ignoreModelContentChanged||(e.isFlush&&o._decorations.reset(),o._decorations.setStartPosition(o._editor.getPosition()),o._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((function(e){return o._onStateChanged(e)}))),this.research(!1,this._state.searchScope)}return e.prototype.dispose=function(){this._isDisposed=!0,i.dispose(this._startSearchingTimer),this._toDispose.dispose()},e.prototype._onStateChanged=function(e){var t=this;this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((function(){e.searchScope?t.research(e.moveCursor,t._state.searchScope):t.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))},\ne._getSearchRange=function(e,t){return t||e.getFullModelRange()},e.prototype.research=function(e,n){var i=null;null!==(i=void 0!==n?n:this._decorations.getFindScope())&&i.startLineNumber!==i.endLineNumber&&(i=1===i.endColumn?new s.Range(i.startLineNumber,1,i.endLineNumber-1,this._editor.getModel().getLineMaxColumn(i.endLineNumber-1)):new s.Range(i.startLineNumber,1,i.endLineNumber,this._editor.getModel().getLineMaxColumn(i.endLineNumber)));var o=this._findMatches(i,!1,t.MATCHES_LIMIT);this._decorations.set(o,i),this._state.changeMatchInfo(this._decorations.getCurrentMatchesPosition(this._editor.getSelection()),this._decorations.getCount(),void 0),e&&this._moveToNextMatch(this._decorations.getStartPosition())},e.prototype._hasMatches=function(){return this._state.matchesCount>0},e.prototype._cannotFind=function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1},e.prototype._setCurrentFindMatch=function(e){\nvar t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)},e.prototype._prevSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0),n=e.lineNumber,i=e.column,o=this._editor.getModel();return t||1===i?(1===n?n=o.getLineCount():n--,i=o.getLineMaxColumn(n)):i--,new r.Position(n,i)},e.prototype._moveToPrevMatch=function(n,i){if(void 0===i&&(i=!1),this._decorations.getCount()<t.MATCHES_LIMIT){var o=this._decorations.matchBeforePosition(n);return o&&o.isEmpty()&&o.getStartPosition().equals(n)&&(n=this._prevSearchPosition(n),o=this._decorations.matchBeforePosition(n)),void(o&&this._setCurrentFindMatch(o))}if(!this._cannotFind()){var s=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),s);a.getEndPosition().isBefore(n)&&(n=a.getEndPosition()),\nn.isBefore(a.getStartPosition())&&(n=a.getEndPosition());var l=n.lineNumber,u=n.column,d=this._editor.getModel(),c=new r.Position(l,u),h=d.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,!1);if(h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),h=d.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,!1)),h)return i||a.containsRange(h.range)?void this._setCurrentFindMatch(h.range):this._moveToPrevMatch(h.range.getStartPosition(),!0)}},e.prototype.moveToPrevMatch=function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())},e.prototype._nextSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0),n=e.lineNumber,i=e.column,o=this._editor.getModel()\n;return t||i===o.getLineMaxColumn(n)?(n===o.getLineCount()?n=1:n++,i=1):i++,new r.Position(n,i)},e.prototype._moveToNextMatch=function(e){if(this._decorations.getCount()<t.MATCHES_LIMIT){var n=this._decorations.matchAfterPosition(e);return n&&n.isEmpty()&&n.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),n=this._decorations.matchAfterPosition(e)),void(n&&this._setCurrentFindMatch(n))}var i=this._getNextMatch(e,!1,!0);i&&this._setCurrentFindMatch(i.range)},e.prototype._getNextMatch=function(t,n,i,o){if(void 0===o&&(o=!1),this._cannotFind())return null;var s=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),s);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var l=t.lineNumber,u=t.column,d=this._editor.getModel(),c=new r.Position(l,u),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n)\n;return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n)),h?o||a.containsRange(h.range)?h:this._getNextMatch(h.range.getEndPosition(),n,i,!0):null},e.prototype.moveToNextMatch=function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())},e.prototype._getReplacePattern=function(){return this._state.isRegex?c.parseReplaceString(this._state.replaceString):c.ReplacePattern.fromStaticValue(this._state.replaceString)},e.prototype.replace=function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),!0,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches,this._state.preserveCase),s=new o.ReplaceCommand(t,i);this._executeEditorCommand(\"replace\",s),\nthis._decorations.setStartPosition(new r.Position(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}},e.prototype._findMatches=function(t,n,i){var o=e._getSearchRange(this._editor.getModel(),t);return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null,n,i)},e.prototype.replaceAll=function(){if(this._hasMatches()){var e=this._decorations.getFindScope();null===e&&this._state.matchesCount>=t.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}},e.prototype._largeReplaceAll=function(){var e=new l.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(96):null).parseSearchRequest();if(e){var t=e.regex;if(!t.multiline){var n=\"mu\";t.ignoreCase&&(n+=\"i\"),t.global&&(n+=\"g\"),t=new RegExp(t.source,n)}\nvar i,r=this._editor.getModel(),s=r.getValue(1),a=r.getFullModelRange(),u=this._getReplacePattern(),d=this._state.preserveCase;i=u.hasReplacementPatterns||d?s.replace(t,(function(){return u.buildReplaceString(arguments,d)})):s.replace(t,u.buildReplaceString(null,d));var c=new o.ReplaceCommandThatPreservesSelection(a,i,this._editor.getSelection());this._executeEditorCommand(\"replaceAll\",c)}},e.prototype._regularReplaceAll=function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),i=[],o=0,r=n.length;o<r;o++)i[o]=t.buildReplaceString(n[o].matches,this._state.preserveCase);var s=new d.ReplaceAllCommand(this._editor.getSelection(),n.map((function(e){return e.range})),i);this._executeEditorCommand(\"replaceAll\",s)},e.prototype.selectAllMatches=function(){if(this._hasMatches()){for(var e=this._decorations.getFindScope(),t=this._findMatches(e,!1,1073741824).map((function(e){\nreturn new a.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})),n=this._editor.getSelection(),i=0,o=t.length;i<o;i++){if(t[i].equalsRange(n)){t=[n].concat(t.slice(0,i)).concat(t.slice(i+1));break}}this._editor.setSelections(t)}},e.prototype._executeEditorCommand=function(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}},e}();t.FindModelBoundToEditorModel=p})),define(n[572],i([0,1,6,204,47,15,168,20,14]),(function(e,t,n,i,o,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(e){function t(t,o,r,u){var d=e.call(this)||this;d._hideSoon=d._register(new s.RunOnceScheduler((function(){return d._hide()}),2e3)),d._isVisible=!1,d._editor=t,d._state=o,d._keybindingService=r,d._domNode=document.createElement(\"div\"),d._domNode.className=\"findOptionsWidget\",d._domNode.style.display=\"none\",d._domNode.style.top=\"10px\",\nd._domNode.setAttribute(\"role\",\"presentation\"),d._domNode.setAttribute(\"aria-hidden\",\"true\");var c=u.getTheme().getColor(l.inputActiveOptionBorder),h=u.getTheme().getColor(l.inputActiveOptionBackground);return d.caseSensitive=d._register(new i.CaseSensitiveCheckbox({appendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:d._state.matchCase,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.caseSensitive.domNode),d._register(d.caseSensitive.onChange((function(){d._state.change({matchCase:d.caseSensitive.checked},!1)}))),d.wholeWords=d._register(new i.WholeWordsCheckbox({appendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleWholeWordCommand),isChecked:d._state.wholeWord,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.wholeWords.domNode),d._register(d.wholeWords.onChange((function(){d._state.change({wholeWord:d.wholeWords.checked},!1)}))),d.regex=d._register(new i.RegexCheckbox({\nappendTitle:d._keybindingLabelFor(a.FIND_IDS.ToggleRegexCommand),isChecked:d._state.isRegex,inputActiveOptionBorder:c,inputActiveOptionBackground:h})),d._domNode.appendChild(d.regex.domNode),d._register(d.regex.onChange((function(){d._state.change({isRegex:d.regex.checked},!1)}))),d._editor.addOverlayWidget(d),d._register(d._state.onFindReplaceStateChange((function(e){var t=!1;e.isRegex&&(d.regex.checked=d._state.isRegex,t=!0),e.wholeWord&&(d.wholeWords.checked=d._state.wholeWord,t=!0),e.matchCase&&(d.caseSensitive.checked=d._state.matchCase,t=!0),!d._state.isRevealed&&t&&d._revealTemporarily()}))),d._register(n.addDisposableNonBubblingMouseOutListener(d._domNode,(function(e){return d._onMouseOut()}))),d._register(n.addDisposableListener(d._domNode,\"mouseover\",(function(e){return d._onMouseOver()}))),d._applyTheme(u.getTheme()),d._register(u.onThemeChange(d._applyTheme.bind(d))),d}return r(t,e),t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e)\n;return t?\" (\"+t.getLabel()+\")\":\"\"},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{preference:0}},t.prototype.highlightFindOptions=function(){this._revealTemporarily()},t.prototype._revealTemporarily=function(){this._show(),this._hideSoon.schedule()},t.prototype._onMouseOut=function(){this._hideSoon.schedule()},t.prototype._onMouseOver=function(){this._hideSoon.cancel()},t.prototype._show=function(){this._isVisible||(this._isVisible=!0,this._domNode.style.display=\"block\")},t.prototype._hide=function(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display=\"none\")},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(l.inputActiveOptionBorder),inputActiveOptionBackground:e.getColor(l.inputActiveOptionBackground)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)\n},t.ID=\"editor.contrib.findOptionsWidget\",t}(o.Widget);t.FindOptionsWidget=d,u.registerThemingParticipant((function(e,t){var n=e.getColor(l.editorWidgetBackground);n&&t.addRule(\".monaco-editor .findOptionsWidget { background-color: \"+n+\"; }\");var i=e.getColor(l.editorWidgetForeground);i&&t.addRule(\".monaco-editor .findOptionsWidget { color: \"+i+\"; }\");var o=e.getColor(l.widgetShadow);o&&t.addRule(\".monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px \"+o+\"; }\");var r=e.getColor(l.contrastBorder);r&&t.addRule(\".monaco-editor .findOptionsWidget { border: 2px solid \"+r+\"; }\")}))})),define(n[573],i([0,1,439,6,50,138,104,47,15,10,2,16,5,3,168,20,14,520,310]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})\n;var y=n.localize(0,null),C=n.localize(1,null),b=n.localize(2,null),S=n.localize(3,null),w=n.localize(4,null),E=n.localize(5,null),L=n.localize(6,null),D=n.localize(7,null),N=n.localize(8,null),x=n.localize(9,null),I=n.localize(10,null),M=n.localize(11,null,f.MATCHES_LIMIT),k=n.localize(12,null),T=n.localize(13,null),R=69,O=33,P=\"ctrlEnterReplaceAll.windows.donotask\",A=h.isMacintosh?256:2048,F=function(e){this.afterLineNumber=e,this.heightInPx=O,this.suppressMouseDown=!1,this.domNode=document.createElement(\"div\"),this.domNode.className=\"dock-find-viewzone\"};function W(e,t,n){var i=!!t.match(/\\n/);n&&i&&n.selectionStart>0&&e.stopPropagation()}function B(e,t,n){var i=!!t.match(/\\n/);n&&i&&n.selectionEnd<n.value.length&&e.stopPropagation()}t.FindWidgetViewZone=F;var V=function(e){function t(t,n,o,r,s,a,l,d,h){var p=e.call(this)||this;return p._cachedHeight=null,p._codeEditor=t,p._controller=n,p._state=o,p._contextViewProvider=r,p._keybindingService=s,p._contextKeyService=a,p._storageService=d,\np._notificationService=h,p._ctrlEnterReplaceAllWarningPrompted=!!d.getBoolean(P,0),p._isVisible=!1,p._isReplaceVisible=!1,p._ignoreChangeEvent=!1,p._updateHistoryDelayer=new u.Delayer(500),p._register(c.toDisposable((function(){return p._updateHistoryDelayer.cancel()}))),p._register(p._state.onFindReplaceStateChange((function(e){return p._onStateChanged(e)}))),p._buildDomNode(),p._updateButtons(),p._tryUpdateWidgetWidth(),p._findInput.inputBox.layout(),p._register(p._codeEditor.onDidChangeConfiguration((function(e){if(e.hasChanged(68)&&(p._codeEditor.getOption(68)&&p._state.change({isReplaceRevealed:!1},!1),p._updateButtons()),e.hasChanged(107)&&p._tryUpdateWidgetWidth(),e.hasChanged(2)&&p.updateAccessibilitySupport(),e.hasChanged(28)){var t=p._codeEditor.getOption(28).addExtraSpaceOnTop;t&&!p._viewZone&&(p._viewZone=new F(0),p._showViewZone()),!t&&p._viewZone&&p._removeViewZone()}}))),p.updateAccessibilitySupport(),p._register(p._codeEditor.onDidChangeCursorSelection((function(){\np._isVisible&&p._updateToggleSelectionFindButton()}))),p._register(p._codeEditor.onDidFocusEditorWidget((function(){if(p._isVisible){var e=p._controller.getGlobalBufferTerm();e&&e!==p._state.searchString&&(p._state.change({searchString:e},!0),p._findInput.select())}}))),p._findInputFocused=f.CONTEXT_FIND_INPUT_FOCUSED.bindTo(a),p._findFocusTracker=p._register(i.trackFocus(p._findInput.inputBox.inputElement)),p._register(p._findFocusTracker.onDidFocus((function(){p._findInputFocused.set(!0),p._updateSearchScope()}))),p._register(p._findFocusTracker.onDidBlur((function(){p._findInputFocused.set(!1)}))),p._replaceInputFocused=f.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(a),p._replaceFocusTracker=p._register(i.trackFocus(p._replaceInput.inputBox.inputElement)),p._register(p._replaceFocusTracker.onDidFocus((function(){p._replaceInputFocused.set(!0),p._updateSearchScope()}))),p._register(p._replaceFocusTracker.onDidBlur((function(){p._replaceInputFocused.set(!1)}))),p._codeEditor.addOverlayWidget(p),\np._codeEditor.getOption(28).addExtraSpaceOnTop&&(p._viewZone=new F(0)),p._applyTheme(l.getTheme()),p._register(l.onThemeChange(p._applyTheme.bind(p))),p._register(p._codeEditor.onDidChangeModel((function(){p._isVisible&&(p._viewZoneId=void 0)}))),p._register(p._codeEditor.onDidScrollChange((function(e){e.scrollTopChanged?p._layoutViewZone():setTimeout((function(){p._layoutViewZone()}),0)}))),p}return r(t,e),t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return this._isVisible?{preference:0}:null},t.prototype._onStateChanged=function(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),\ne.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(68)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=i.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;i.toggleClass(this._domNode,\"no-results\",t),this._updateMatchesCount(),\nthis._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory()},t.prototype._delayedUpdateHistory=function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))},t.prototype._updateHistory=function(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()},t.prototype._updateMatchesCount=function(){var e;if(this._matchesCount.style.minWidth=R+\"px\",this._state.matchesCount>=f.MATCHES_LIMIT?this._matchesCount.title=M:this._matchesCount.title=\"\",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=f.MATCHES_LIMIT&&(t+=\"+\");var n=String(this._state.matchesPosition);\"0\"===n&&(n=\"?\"),e=p.format(k,n,t)}else e=T;this._matchesCount.appendChild(document.createTextNode(e)),\no.alert(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString),!0),R=Math.max(R,this._matchesCount.clientWidth)},t.prototype._getAriaLabel=function(e,t,i){return e===T?\"\"===i?n.localize(14,null,e):n.localize(15,null,e,i):t?n.localize(16,null,e,i,t.startLineNumber+\":\"+t.startColumn):n.localize(17,null,e,i)},t.prototype._updateToggleSelectionFindButton=function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()},t.prototype._updateButtons=function(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t),\nthis._nextBtn.setEnabled(this._isVisible&&e&&t),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),i.toggleClass(this._domNode,\"replaceToggled\",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-right\",!this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-down\",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var n=!this._codeEditor.getOption(68);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)},t.prototype._reveal=function(){var e=this;if(!this._isVisible){this._isVisible=!0;var t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(28).autoFindInSelection){case\"always\":this._toggleSelectionFind.checked=!0;break;case\"never\":this._toggleSelectionFind.checked=!1;break;case\"multiline\":var n=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=n}this._tryUpdateWidgetWidth(),this._updateButtons(),\nsetTimeout((function(){i.addClass(e._domNode,\"visible\"),e._domNode.setAttribute(\"aria-hidden\",\"false\")}),0),setTimeout((function(){e._findInput.validate()}),200),this._codeEditor.layoutOverlayWidget(this);var o=!0;if(this._codeEditor.getOption(28).seedSearchStringFromSelection&&t){var r=this._codeEditor.getDomNode();if(r){var s=i.getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),l=s.left+(a?a.left:0),u=a?a.top:0;if(this._viewZone&&u<this._viewZone.heightInPx){t.endLineNumber>t.startLineNumber&&(o=!1);var d=i.getTopLeftOffset(this._domNode).left;l>d&&(o=!1);var c=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());s.left+(c?c.left:0)>d&&(o=!1)}}}this._showViewZone(o)}},t.prototype._hide=function(e){this._isVisible&&(this._isVisible=!1,this._updateButtons(),i.removeClass(this._domNode,\"visible\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),\nthis._removeViewZone())},t.prototype._layoutViewZone=function(){var e=this;if(this._codeEditor.getOption(28).addExtraSpaceOnTop){if(this._isVisible){var t=this._viewZone;void 0===this._viewZoneId&&t&&this._codeEditor.changeViewZones((function(n){t.heightInPx=e._getHeight(),e._viewZoneId=n.addZone(t),e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+t.heightInPx)}))}}else this._removeViewZone()},t.prototype._showViewZone=function(e){var t=this;if((void 0===e&&(e=!0),this._isVisible)&&this._codeEditor.getOption(28).addExtraSpaceOnTop){void 0===this._viewZone&&(this._viewZone=new F(0));var n=this._viewZone;this._codeEditor.changeViewZones((function(i){if(void 0!==t._viewZoneId){var o=t._getHeight();if(o===n.heightInPx)return;var r=o-n.heightInPx;return n.heightInPx=o,i.layoutZone(t._viewZoneId),void(e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+r))}r=t._getHeight();n.heightInPx=r,t._viewZoneId=i.addZone(n),e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+r)}))}},\nt.prototype._removeViewZone=function(){var e=this;this._codeEditor.changeViewZones((function(t){void 0!==e._viewZoneId&&(t.removeZone(e._viewZoneId),e._viewZoneId=void 0,e._viewZone&&(e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()-e._viewZone.heightInPx),e._viewZone=void 0))}))},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(m.inputActiveOptionBorder),inputActiveOptionBackground:e.getColor(m.inputActiveOptionBackground),inputBackground:e.getColor(m.inputBackground),inputForeground:e.getColor(m.inputForeground),inputBorder:e.getColor(m.inputBorder),inputValidationInfoBackground:e.getColor(m.inputValidationInfoBackground),inputValidationInfoForeground:e.getColor(m.inputValidationInfoForeground),inputValidationInfoBorder:e.getColor(m.inputValidationInfoBorder),inputValidationWarningBackground:e.getColor(m.inputValidationWarningBackground),inputValidationWarningForeground:e.getColor(m.inputValidationWarningForeground),\ninputValidationWarningBorder:e.getColor(m.inputValidationWarningBorder),inputValidationErrorBackground:e.getColor(m.inputValidationErrorBackground),inputValidationErrorForeground:e.getColor(m.inputValidationErrorForeground),inputValidationErrorBorder:e.getColor(m.inputValidationErrorBorder)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)},t.prototype._tryUpdateWidgetWidth=function(){if(this._isVisible&&i.isInDOM(this._domNode)){var e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)i.addClass(this._domNode,\"hiddenEditor\");else{i.hasClass(this._domNode,\"hiddenEditor\")&&i.removeClass(this._domNode,\"hiddenEditor\");var t=e.width,n=e.minimapWidth,o=!1,r=!1,s=!1;if(this._resized)if(i.getTotalWidth(this._domNode)>419)return this._domNode.style.maxWidth=t-28-n-15+\"px\",void(this._replaceInput.width=i.getTotalWidth(this._findInput.domNode));if(447+n>=t&&(r=!0),447+n-R>=t&&(s=!0),447+n-R>=t+50&&(o=!0),i.toggleClass(this._domNode,\"collapsed-find-widget\",o),\ni.toggleClass(this._domNode,\"narrow-find-widget\",s),i.toggleClass(this._domNode,\"reduced-find-widget\",r),s||o||(this._domNode.style.maxWidth=t-28-n-15+\"px\"),this._resized){this._findInput.inputBox.layout();var a=this._findInput.inputBox.element.clientWidth;a>0&&(this._replaceInput.width=a)}else this._isReplaceVisible&&(this._replaceInput.width=i.getTotalWidth(this._findInput.domNode))}}},t.prototype._getHeight=function(){var e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4},t.prototype._tryUpdateHeight=function(){var e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height=e+\"px\",!0)},t.prototype.focusFindInput=function(){this._findInput.select(),this._findInput.focus()},t.prototype.focusReplaceInput=function(){this._replaceInput.select(),this._replaceInput.focus()},t.prototype.highlightFindOptions=function(){this._findInput.highlightFindOptions()},\nt.prototype._updateSearchScope=function(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){var e=this._codeEditor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));var t=this._state.currentMatch;e.startLineNumber!==e.endLineNumber&&(g.Range.equalsRange(e,t)||this._state.change({searchScope:e},!0))}},t.prototype._onFindInputMouseDown=function(e){e.middleButton&&e.stopPropagation()},t.prototype._onFindInputKeyDown=function(e){return e.equals(3|A)?(this._findInput.inputBox.insertAtCursor(\"\\n\"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),\nvoid e.preventDefault()):e.equals(16)?W(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\")):e.equals(18)?B(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\")):void 0},t.prototype._onReplaceInputKeyDown=function(e){return e.equals(3|A)?(h.isWindows&&h.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(n.localize(18,null)),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(P,!0,0)),this._replaceInput.inputBox.insertAtCursor(\"\\n\"),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?W(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\")):e.equals(18)?B(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\")):void 0},\nt.prototype.getHorizontalSashTop=function(e){return 0},t.prototype.getHorizontalSashLeft=function(e){return 0},t.prototype.getHorizontalSashWidth=function(e){return 500},t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e);return t?\" (\"+t.getLabel()+\")\":\"\"},t.prototype._buildDomNode=function(){var e=this;this._findInput=this._register(new _.ContextScopedFindInput(null,this._contextViewProvider,{width:221,label:y,placeholder:C,appendCaseSensitiveLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(f.FIND_IDS.ToggleRegexCommand),validation:function(t){if(0===t.length||!e._findInput.getRegex())return null;try{return new RegExp(t),null}catch(e){return{content:e.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),\nthis._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((function(t){return e._onFindInputKeyDown(t)}))),this._register(this._findInput.inputBox.onDidChange((function(){e._ignoreChangeEvent||e._state.change({searchString:e._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((function(t){e._tryUpdateHeight()&&e._showViewZone()}))),\nh.isLinux&&this._register(this._findInput.onMouseDown((function(t){return e._onFindInputMouseDown(t)}))),this._matchesCount=document.createElement(\"div\"),this._matchesCount.className=\"matchesCount\",this._updateMatchesCount(),this._prevBtn=this._register(new z({label:b+this._keybindingLabelFor(f.FIND_IDS.PreviousMatchFindAction),className:\"codicon codicon-arrow-up\",onTrigger:function(){e._codeEditor.getAction(f.FIND_IDS.PreviousMatchFindAction).run().then(void 0,d.onUnexpectedError)}})),this._nextBtn=this._register(new z({label:S+this._keybindingLabelFor(f.FIND_IDS.NextMatchFindAction),className:\"codicon codicon-arrow-down\",onTrigger:function(){e._codeEditor.getAction(f.FIND_IDS.NextMatchFindAction).run().then(void 0,d.onUnexpectedError)}}));var t=document.createElement(\"div\");t.className=\"find-part\",t.appendChild(this._findInput.domNode);var n=document.createElement(\"div\");n.className=\"find-actions\",t.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),\nn.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new s.Checkbox({actionClassName:\"codicon codicon-selection\",title:w+this._keybindingLabelFor(f.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((function(){if(e._toggleSelectionFind.checked){if(e._codeEditor.hasModel()){var t=e._codeEditor.getSelection();1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,e._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()||e._state.change({searchScope:t},!0)}}else e._state.change({searchScope:null},!0)}))),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new z({label:E+this._keybindingLabelFor(f.FIND_IDS.CloseFindWidgetCommand),className:\"codicon codicon-close\",onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){\nt.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),n.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new _.ContextScopedReplaceInput(null,void 0,{label:L,placeholder:D,history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((function(t){return e._onReplaceInputKeyDown(t)}))),this._register(this._replaceInput.inputBox.onDidChange((function(){e._state.change({replaceString:e._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((function(t){e._isReplaceVisible&&e._tryUpdateHeight()&&e._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((function(){e._state.change({preserveCase:e._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((function(t){\nt.equals(2)&&(e._prevBtn.isEnabled()?e._prevBtn.focus():e._nextBtn.isEnabled()?e._nextBtn.focus():e._toggleSelectionFind.enabled?e._toggleSelectionFind.focus():e._closeBtn.isEnabled()&&e._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new z({label:N+this._keybindingLabelFor(f.FIND_IDS.ReplaceOneAction),className:\"codicon codicon-replace\",onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new z({label:x+this._keybindingLabelFor(f.FIND_IDS.ReplaceAllAction),className:\"codicon codicon-replace-all\",onTrigger:function(){e._controller.replaceAll()}}));var o=document.createElement(\"div\");o.className=\"replace-part\",o.appendChild(this._replaceInput.domNode);var r=document.createElement(\"div\");r.className=\"replace-actions\",o.appendChild(r),r.appendChild(this._replaceBtn.domNode),r.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new z({label:I,\nclassName:\"codicon toggle left\",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode),e._replaceInput.inputBox.layout()),e._showViewZone()}})),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-down\",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass(\"codicon-chevron-right\",!this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement(\"div\"),this._domNode.className=\"editor-widget find-widget\",this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._domNode.style.width=\"419px\",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(o),this._resizeSash=new a.Sash(this._domNode,this,{orientation:0}),this._resized=!1;var l=419;this._register(this._resizeSash.onDidStart((function(){l=i.getTotalWidth(e._domNode)}))),this._register(this._resizeSash.onDidChange((function(t){e._resized=!0\n;var n=l+t.startX-t.currentX;n<419||(n>(parseFloat(i.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width=n+\"px\",e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout(),e._tryUpdateHeight()))}))),this._register(this._resizeSash.onDidReset((function(){var t=i.getTotalWidth(e._domNode);if(!(t<419)){var n=419;if(!e._resized||419===t){var o=e._codeEditor.getLayoutInfo();n=o.width-28-o.minimapWidth-15,e._resized=!0}e._domNode.style.width=n+\"px\",e._isReplaceVisible&&(e._replaceInput.width=i.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout()}})))},t.prototype.updateAccessibilitySupport=function(){var e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)},t.ID=\"editor.contrib.findWidget\",t}(l.Widget);t.FindWidget=V;var z=function(e){function t(t){var n=e.call(this)||this;return n._opts=t,n._domNode=document.createElement(\"div\"),n._domNode.title=n._opts.label,n._domNode.tabIndex=0,\nn._domNode.className=\"button \"+n._opts.className,n._domNode.setAttribute(\"role\",\"button\"),n._domNode.setAttribute(\"aria-label\",n._opts.label),n.onclick(n._domNode,(function(e){n._opts.onTrigger(),e.preventDefault()})),n.onkeydown(n._domNode,(function(e){if(e.equals(10)||e.equals(3))return n._opts.onTrigger(),void e.preventDefault();n._opts.onKeyDown&&n._opts.onKeyDown(e)})),n}return r(t,e),Object.defineProperty(t.prototype,\"domNode\",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),t.prototype.isEnabled=function(){return this._domNode.tabIndex>=0},t.prototype.focus=function(){this._domNode.focus()},t.prototype.setEnabled=function(e){i.toggleClass(this._domNode,\"disabled\",!e),this._domNode.setAttribute(\"aria-disabled\",String(!e)),this._domNode.tabIndex=e?0:-1},t.prototype.setExpanded=function(e){this._domNode.setAttribute(\"aria-expanded\",String(!!e))},t.prototype.toggleClass=function(e,t){i.toggleClass(this._domNode,e,t)},t}(l.Widget);t.SimpleButton=z,\nv.registerThemingParticipant((function(e,t){var n=function(e,n){n&&t.addRule(\".monaco-editor \"+e+\" { background-color: \"+n+\"; }\")};n(\".findMatch\",e.getColor(m.editorFindMatchHighlight)),n(\".currentFindMatch\",e.getColor(m.editorFindMatch)),n(\".findScope\",e.getColor(m.editorFindRangeHighlight)),n(\".find-widget\",e.getColor(m.editorWidgetBackground));var i=e.getColor(m.widgetShadow);i&&t.addRule(\".monaco-editor .find-widget { box-shadow: 0 2px 8px \"+i+\"; }\");var o=e.getColor(m.editorFindMatchHighlightBorder);o&&t.addRule(\".monaco-editor .findMatch { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+o+\"; box-sizing: border-box; }\");var r=e.getColor(m.editorFindMatchBorder);r&&t.addRule(\".monaco-editor .currentFindMatch { border: 2px solid \"+r+\"; padding: 1px; box-sizing: border-box; }\");var s=e.getColor(m.editorFindRangeHighlightBorder);s&&t.addRule(\".monaco-editor .findScope { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+s+\"; }\");var a=e.getColor(m.contrastBorder)\n;a&&t.addRule(\".monaco-editor .find-widget { border: 1px solid \"+a+\"; }\");var l=e.getColor(m.editorWidgetForeground);l&&t.addRule(\".monaco-editor .find-widget { color: \"+l+\"; }\");var u=e.getColor(m.errorForeground);u&&t.addRule(\".monaco-editor .find-widget.no-results .matchesCount { color: \"+u+\"; }\");var d=e.getColor(m.editorWidgetResizeBorder);if(d)t.addRule(\".monaco-editor .find-widget .monaco-sash { background-color: \"+d+\"; width: 3px !important; margin-left: -4px;}\");else{var c=e.getColor(m.editorWidgetBorder);c&&t.addRule(\".monaco-editor .find-widget .monaco-sash { background-color: \"+c+\"; width: 3px !important; margin-left: -4px;}\")}var h=e.getColor(m.focusBorder);h&&t.addRule(\".monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: \"+h+\"; }\")}))})),define(n[232],i([0,1,438,15,2,5,12,23,168,572,378,573,162,18,66,11,34,74,14,35]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var w=524288;function E(e){\nif(!e.hasModel())return null;var t=e.getSelection();if(t.startLineNumber===t.endLineNumber)if(t.isEmpty()){var n=e.getModel().getWordAtPosition(t.getStartPosition());if(n)return n.word}else if(e.getModel().getValueLengthInRange(t)<w)return e.getModel().getValueInRange(t);return null}t.getSelectionSearchString=E;var L=function(e){function t(t,n,o,r){var s=e.call(this)||this;return s._editor=t,s._findWidgetVisible=u.CONTEXT_FIND_WIDGET_VISIBLE.bindTo(n),s._contextKeyService=n,s._storageService=o,s._clipboardService=r,s._updateHistoryDelayer=new i.Delayer(500),s._state=s._register(new c.FindReplaceState),s.loadQueryState(),s._register(s._state.onFindReplaceStateChange((function(e){return s._onStateChanged(e)}))),s._model=null,s._register(s._editor.onDidChangeModel((function(){var e=s._editor.getModel()&&s._state.isRevealed;s.disposeModel(),s._state.change({searchScope:null,matchCase:s._storageService.getBoolean(\"editor.matchCase\",1,!1),wholeWord:s._storageService.getBoolean(\"editor.wholeWord\",1,!1),\nisRegex:s._storageService.getBoolean(\"editor.isRegex\",1,!1),preserveCase:s._storageService.getBoolean(\"editor.preserveCase\",1,!1)},!1),e&&s._start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1})}))),s}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this.disposeModel(),e.prototype.dispose.call(this)},t.prototype.disposeModel=function(){this._model&&(this._model.dispose(),this._model=null)},t.prototype._onStateChanged=function(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)},t.prototype.saveQueryState=function(e){e.isRegex&&this._storageService.store(\"editor.isRegex\",this._state.actualIsRegex,1),e.wholeWord&&this._storageService.store(\"editor.wholeWord\",this._state.actualWholeWord,1),\ne.matchCase&&this._storageService.store(\"editor.matchCase\",this._state.actualMatchCase,1),e.preserveCase&&this._storageService.store(\"editor.preserveCase\",this._state.actualPreserveCase,1)},t.prototype.loadQueryState=function(){this._state.change({matchCase:this._storageService.getBoolean(\"editor.matchCase\",1,this._state.matchCase),wholeWord:this._storageService.getBoolean(\"editor.wholeWord\",1,this._state.wholeWord),isRegex:this._storageService.getBoolean(\"editor.isRegex\",1,this._state.isRegex),preserveCase:this._storageService.getBoolean(\"editor.preserveCase\",1,this._state.preserveCase)},!1)},t.prototype.isFindInputFocused=function(){return!!u.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)},t.prototype.getState=function(){return this._state},t.prototype.closeFindWidget=function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()},t.prototype.toggleCaseSensitive=function(){this._state.change({matchCase:!this._state.matchCase},!1),\nthis._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleWholeWords=function(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleRegex=function(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()},t.prototype.toggleSearchScope=function(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){var e=this._editor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()||this._state.change({searchScope:e},!0)}},t.prototype.setSearchString=function(e){this._state.isRegex&&(e=s.escapeRegExpCharacters(e)),this._state.change({searchString:e},!1)},t.prototype.highlightFindOptions=function(){},t.prototype._start=function(e){if(this.disposeModel(),this._editor.hasModel()){var t,n={isRevealed:!0}\n;if(e.seedSearchStringFromSelection)(t=E(this._editor))&&(this._state.isRegex?n.searchString=s.escapeRegExpCharacters(t):n.searchString=t);if(!n.searchString&&e.seedSearchStringFromGlobalClipboard)(t=this.getGlobalBufferTerm())&&(n.searchString=t);if(e.forceRevealReplace?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),e.updateSearchScope){var i=this._editor.getSelection();i.isEmpty()||(n.searchScope=i)}this._state.change(n,!1),this._model||(this._model=new u.FindModelBoundToEditorModel(this._editor,this._state))}},t.prototype.start=function(e){this._start(e)},t.prototype.moveToNextMatch=function(){return!!this._model&&(this._model.moveToNextMatch(),!0)},t.prototype.moveToPrevMatch=function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)},t.prototype.replace=function(){return!!this._model&&(this._model.replace(),!0)},t.prototype.replaceAll=function(){return!!this._model&&(this._model.replaceAll(),!0)},t.prototype.selectAllMatches=function(){\nreturn!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)},t.prototype.getGlobalBufferTerm=function(){return this._editor.getOption(28).globalFindClipboard&&this._clipboardService&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():\"\"},t.prototype.setGlobalBufferTerm=function(e){this._editor.getOption(28).globalFindClipboard&&this._clipboardService&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)},t.ID=\"editor.contrib.findController\",t=h([g(1,m.IContextKeyService),g(2,C.IStorageService),g(3,f.IClipboardService)],t)}(o.Disposable);t.CommonFindController=L;var D=function(e){function t(t,n,i,o,r,s,a,l){var u=e.call(this,t,i,a,l)||this;return u._contextViewService=n,u._keybindingService=o,u._themeService=r,u._notificationService=s,u._widget=null,u._findOptionsWidget=null,u}return r(t,e),t.prototype._start=function(t){this._widget||this._createFindWidget()\n;var n=this._editor.getSelection(),i=!1;switch(this._editor.getOption(28).autoFindInSelection){case\"always\":i=!0;break;case\"never\":i=!1;break;case\"multiline\":i=!!n&&n.startLineNumber!==n.endLineNumber}t.updateSearchScope=i,e.prototype._start.call(this,t),2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput()},t.prototype.highlightFindOptions=function(){this._widget||this._createFindWidget(),this._state.isRevealed?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()},t.prototype._createFindWidget=function(){this._widget=this._register(new p.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new d.FindOptionsWidget(this._editor,this._state,this._keybindingService,this._themeService))},\nt=h([g(1,v.IContextViewService),g(2,m.IContextKeyService),g(3,y.IKeybindingService),g(4,b.IThemeService),g(5,S.INotificationService),g(6,C.IStorageService),g(7,_.optional(f.IClipboardService))],t)}(L);t.FindController=D;var N=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindAction,label:n.localize(0,null),alias:\"Find\",precondition:void 0,kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:17,group:\"3_find\",title:n.localize(1,null),order:1}})||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(28).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1})},t}(a.EditorAction);t.StartFindAction=N;var x=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindWithSelection,label:n.localize(2,null),alias:\"Find With Selection\",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083\n},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:!0,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),n.setGlobalBufferTerm(n.getState().searchString))},t}(a.EditorAction);t.StartFindWithSelectionAction=x;var I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);n&&!this._run(n)&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length&&t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),this._run(n))},t}(a.EditorAction);t.MatchFindAction=I;var M=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextMatchFindAction,label:n.localize(3,null),alias:\"Find Next\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:61,mac:{primary:2085,\nsecondary:[61]},weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(I);t.NextMatchFindAction=M;var k=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextMatchFindAction,label:n.localize(4,null),alias:\"Find Next\",precondition:void 0,kbOpts:{kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(I);t.NextMatchFindAction2=k;var T=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousMatchFindAction,label:n.localize(5,null),alias:\"Find Previous\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(I);t.PreviousMatchFindAction=T;var R=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousMatchFindAction,label:n.localize(6,null),alias:\"Find Previous\",\nprecondition:void 0,kbOpts:{kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(I);t.PreviousMatchFindAction2=R;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=L.get(t);if(n){var i=E(t);i&&n.setSearchString(i),this._run(n)||(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(28).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1}),this._run(n))}},t}(a.EditorAction);t.SelectionMatchFindAction=O;var P=function(e){function t(){return e.call(this,{id:u.FIND_IDS.NextSelectionMatchFindAction,label:n.localize(7,null),alias:\"Find Next Selection\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:2109,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t\n}(O);t.NextSelectionMatchFindAction=P;var A=function(e){function t(){return e.call(this,{id:u.FIND_IDS.PreviousSelectionMatchFindAction,label:n.localize(8,null),alias:\"Find Previous Selection\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.focus,primary:3133,weight:100}})||this}return r(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(O);t.PreviousSelectionMatchFindAction=A;var F=function(e){function t(){return e.call(this,{id:u.FIND_IDS.StartFindReplaceAction,label:n.localize(9,null),alias:\"Replace\",precondition:void 0,kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:17,group:\"3_find\",title:n.localize(10,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()&&!t.getOption(68)){var n=L.get(t),i=t.getSelection(),o=n.isFindInputFocused(),r=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getOption(28).seedSearchStringFromSelection&&!o,s=o||r?2:1;n&&n.start({forceRevealReplace:!0,seedSearchStringFromSelection:r,\nseedSearchStringFromGlobalClipboard:t.getOption(28).seedSearchStringFromSelection,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1})}},t}(a.EditorAction);t.StartFindReplaceAction=F,a.registerEditorContribution(L.ID,D),a.registerEditorAction(N),a.registerEditorAction(x),a.registerEditorAction(M),a.registerEditorAction(k),a.registerEditorAction(T),a.registerEditorAction(R),a.registerEditorAction(P),a.registerEditorAction(A),a.registerEditorAction(F);var W=a.EditorCommand.bindToContribution(L.get);a.registerEditorCommand(new W({id:u.FIND_IDS.CloseFindWidgetCommand,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:9,secondary:[1033]}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleCaseSensitiveKeybinding.primary,\nmac:u.ToggleCaseSensitiveKeybinding.mac,win:u.ToggleCaseSensitiveKeybinding.win,linux:u.ToggleCaseSensitiveKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleWholeWordKeybinding.primary,mac:u.ToggleWholeWordKeybinding.mac,win:u.ToggleWholeWordKeybinding.win,linux:u.ToggleWholeWordKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:u.ToggleRegexKeybinding.primary,mac:u.ToggleRegexKeybinding.mac,win:u.ToggleRegexKeybinding.win,linux:u.ToggleRegexKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,\nprimary:u.ToggleSearchScopeKeybinding.primary,mac:u.ToggleSearchScopeKeybinding.mac,win:u.ToggleSearchScopeKeybinding.win,linux:u.ToggleSearchScopeKeybinding.linux}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceOneAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:3094}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceOneAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceAllAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:2563}})),a.registerEditorCommand(new W({id:u.FIND_IDS.ReplaceAllAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.replaceAll()},kbOpts:{\nweight:105,kbExpr:m.ContextKeyExpr.and(l.EditorContextKeys.focus,u.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),a.registerEditorCommand(new W({id:u.FIND_IDS.SelectAllMatchesAction,precondition:u.CONTEXT_FIND_WIDGET_VISIBLE,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:l.EditorContextKeys.focus,primary:515}}))})),define(n[574],i([0,1,440,21,5,15,36,2,12,381,490,23,382,41,491,17,197,383,10,18,14,20,311]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=new S.RawContextKey(\"foldingEnabled\",!1),D=function(e){function t(t,n){var i=e.call(this)||this;i.contextKeyService=n,i.localToDispose=i._register(new l.DisposableStore),i.editor=t;var o=i.editor.getOptions();return i._isEnabled=o.get(30),i._useFoldingProviders=\"indentation\"!==o.get(31),i.foldingModel=null,i.hiddenRangeModel=null,i.rangeProvider=null,i.foldingRegionPromise=null,i.foldingStateMemento=null,i.foldingModelPromise=null,\ni.updateScheduler=null,i.cursorChangedScheduler=null,i.mouseDownInfo=null,i.foldingDecorationProvider=new c.FoldingDecorationProvider(t),i.foldingDecorationProvider.autoHideFoldingControls=\"mouseover\"===o.get(84),i.foldingDecorationProvider.showFoldingHighlights=o.get(32),i.foldingEnabled=L.bindTo(i.contextKeyService),i.foldingEnabled.set(i._isEnabled),i._register(i.editor.onDidChangeModel((function(){return i.onModelChanged()}))),i._register(i.editor.onDidChangeConfiguration((function(e){if(e.hasChanged(30)){var t=i.editor.getOptions();i._isEnabled=t.get(30),i.foldingEnabled.set(i._isEnabled),i.onModelChanged()}if(e.hasChanged(84)||e.hasChanged(32)){var n=i.editor.getOptions();i.foldingDecorationProvider.autoHideFoldingControls=\"mouseover\"===n.get(84),i.foldingDecorationProvider.showFoldingHighlights=n.get(32),i.onModelContentChanged()}if(e.hasChanged(31)){var o=i.editor.getOptions();i._useFoldingProviders=\"indentation\"!==o.get(31),i.onFoldingStrategyChanged()}}))),i.onModelChanged(),i}return r(t,e),\nt.get=function(e){return e.getContribution(t.ID)},t.prototype.saveViewState=function(){var e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){var t=this.foldingModel.isInitialized?this.foldingModel.getMemento():this.hiddenRangeModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n}}},t.prototype.restoreViewState=function(e){var t=this.editor.getModel();if(t&&this._isEnabled&&!t.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.collapsedRegions&&e.lineCount===t.getLineCount()){e.provider!==y.ID_SYNTAX_PROVIDER&&e.provider!==C.ID_INIT_PROVIDER||(this.foldingStateMemento=e);var n=e.collapsedRegions;if(this.hiddenRangeModel.applyMemento(n)){var i=this.getFoldingModel();i&&i.then((function(e){e&&e.applyMemento(n)})).then(void 0,b.onUnexpectedError)}}},t.prototype.onModelChanged=function(){var e=this;this.localToDispose.clear();var t=this.editor.getModel()\n;this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this.foldingModel=new d.FoldingModel(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new f.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((function(t){return e.onHiddenRangesChanges(t)}))),this.updateScheduler=new s.Delayer(200),this.cursorChangedScheduler=new s.RunOnceScheduler((function(){return e.revealCursor()}),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(_.FoldingRangeProviderRegistry.onDidChange((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((function(){return e.onFoldingStrategyChanged()}))),this.localToDispose.add(this.editor.onDidChangeModelContent((function(){return e.onModelContentChanged()}))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((function(){\nreturn e.onCursorPositionChanged()}))),this.localToDispose.add(this.editor.onMouseDown((function(t){return e.onEditorMouseDown(t)}))),this.localToDispose.add(this.editor.onMouseUp((function(t){return e.onEditorMouseUp(t)}))),this.localToDispose.add({dispose:function(){e.foldingRegionPromise&&(e.foldingRegionPromise.cancel(),e.foldingRegionPromise=null),e.updateScheduler&&e.updateScheduler.cancel(),e.updateScheduler=null,e.foldingModel=null,e.foldingModelPromise=null,e.hiddenRangeModel=null,e.cursorChangedScheduler=null,e.foldingStateMemento=null,e.rangeProvider&&e.rangeProvider.dispose(),e.rangeProvider=null}}),this.onModelContentChanged())},t.prototype.onFoldingStrategyChanged=function(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.onModelContentChanged()},t.prototype.getRangeProvider=function(e){var t=this;if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new v.IndentRangeProvider(e),this._useFoldingProviders&&this.foldingModel){\nvar n=_.FoldingRangeProviderRegistry.ordered(this.foldingModel.textModel);if(0===n.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions)return this.rangeProvider=new C.InitializingRangeProvider(e,this.foldingStateMemento.collapsedRegions,(function(){t.foldingStateMemento=null,t.onFoldingStrategyChanged()}),3e4);n.length>0&&(this.rangeProvider=new y.SyntaxRangeProvider(e,n))}return this.foldingStateMemento=null,this.rangeProvider},t.prototype.getFoldingModel=function(){return this.foldingModelPromise},t.prototype.onModelContentChanged=function(){var e=this;this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((function(){var t=e.foldingModel;if(!t)return null;var n=e.foldingRegionPromise=s.createCancelablePromise((function(n){return e.getRangeProvider(t.textModel).compute(n)}));return n.then((function(i){if(i&&n===e.foldingRegionPromise){\nvar o=e.editor.getSelections(),r=o?o.map((function(e){return e.startLineNumber})):[];t.update(i,r)}return t}))})).then(void 0,(function(e){return b.onUnexpectedError(e),null})))},t.prototype.onHiddenRangesChanges=function(e){if(this.hiddenRangeModel&&e.length){var t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e)},t.prototype.onCursorPositionChanged=function(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()},t.prototype.revealCursor=function(){var e=this,t=this.getFoldingModel();t&&t.then((function(t){if(t){var n=e.editor.getSelections();if(n&&n.length>0){for(var i=[],o=function(n){var o=n.selectionStartLineNumber;e.hiddenRangeModel&&e.hiddenRangeModel.isHidden(o)&&i.push.apply(i,t.getAllRegionsAtLine(o,(function(e){return e.isCollapsed&&o>e.startLineNumber})))},r=0,s=n;r<s.length;r++){o(s[r])}i.length&&(t.toggleCollapseState(i),e.reveal(n[0].getPosition()))}}\n})).then(void 0,b.onUnexpectedError)},t.prototype.onEditorMouseDown=function(e){if(this.mouseDownInfo=null,this.hiddenRangeModel&&e.target&&e.target.range&&(e.event.leftButton||e.event.middleButton)){var t=e.target.range,n=!1;switch(e.target.type){case 4:var i=e.target.detail,o=e.target.element.offsetLeft;if(i.offsetX-o<5)return;n=!0;break;case 6:if(this.hiddenRangeModel.hasRanges()){var r=this.editor.getModel();if(r&&t.startColumn===r.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}},t.prototype.onEditorMouseUp=function(e){var t=this,n=this.getFoldingModel();if(n&&this.mouseDownInfo&&e.target){var i=this.mouseDownInfo.lineNumber,o=this.mouseDownInfo.iconClicked,r=e.target.range;if(r&&r.startLineNumber===i){if(o){if(4!==e.target.type)return}else{var s=this.editor.getModel();if(!s||r.startColumn!==s.getLineMaxColumn(i))return}n.then((function(n){if(n){var r=n.getRegionAtLine(i);if(r&&r.startLineNumber===i){var s=r.isCollapsed\n;if(o||s){var a=[],l=e.event.middleButton||e.event.shiftKey;if(l)for(var u=0,d=n.getRegionsInside(r);u<d.length;u++){var c=d[u];c.isCollapsed===s&&a.push(c)}!s&&l&&0!==a.length||a.push(r),n.toggleCollapseState(a),t.reveal({lineNumber:i,column:1})}}}})).then(void 0,b.onUnexpectedError)}}},t.prototype.reveal=function(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)},t.ID=\"editor.contrib.folding\",t=h([g(1,S.IContextKeyService)],t)}(l.Disposable);t.FoldingController=D;var N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=this,o=D.get(t);if(o){var r=o.getFoldingModel();return r?(this.reportTelemetry(e,t),r.then((function(e){if(e){i.invoke(o,e,t,n);var r=t.getSelection();r&&o.reveal(r.getStartPosition())}}))):void 0}},t.prototype.getSelectedLines=function(e){var t=e.getSelections();return t?t.map((function(e){return e.startLineNumber})):[]},t.prototype.getLineNumbers=function(e,t){\nreturn e&&e.selectionLines?e.selectionLines.map((function(e){return e+1})):this.getSelectedLines(t)},t.prototype.run=function(e,t){},t}(u.EditorAction);function x(e){if(!i.isUndefined(e)){if(!i.isObject(e))return!1;var t=e;if(!i.isUndefined(t.levels)&&!i.isNumber(t.levels))return!1;if(!i.isUndefined(t.direction)&&!i.isString(t.direction))return!1;if(!(i.isUndefined(t.selectionLines)||i.isArray(t.selectionLines)&&t.selectionLines.every(i.isNumber)))return!1}return!0}var I=function(e){function t(){return e.call(this,{id:\"editor.unfold\",label:n.localize(0,null),alias:\"Unfold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:\"Unfold the content in the editor\",args:[{name:\"Unfold editor argument\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\\n\\t\\t\\t\\t\\t\\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\\n\\t\\t\\t\\t\\t\\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\\n\\t\\t\\t\\t\\t\\t\",constraint:x,schema:{type:\"object\",properties:{levels:{type:\"number\",default:1},direction:{type:\"string\",enum:[\"up\",\"down\"],default:\"down\"},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){var o=i&&i.levels||1,r=this.getLineNumbers(i,n);i&&\"up\"===i.direction?d.setCollapseStateLevelsUp(t,!1,o,r):d.setCollapseStateLevelsDown(t,!1,o,r)},t}(N),M=function(e){function t(){return e.call(this,{id:\"editor.unfoldRecursively\",label:n.localize(1,null),alias:\"Unfold Recursively\",precondition:L,kbOpts:{\nkbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2137),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){d.setCollapseStateLevelsDown(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))},t}(N),k=function(e){function t(){return e.call(this,{id:\"editor.fold\",label:n.localize(2,null),alias:\"Fold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:\"Fold the content in the editor\",args:[{name:\"Fold editor argument\",\ndescription:\"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to fold.\\n\\t\\t\\t\\t\\t\\t\\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\\n\\t\\t\\t\\t\\t\\t\\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\\n\\t\\t\\t\\t\\t\\t\\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\\n\\t\\t\\t\\t\\t\\t\",constraint:x,schema:{type:\"object\",properties:{levels:{type:\"number\"},direction:{type:\"string\",enum:[\"up\",\"down\"]},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})||this}return r(t,e),t.prototype.invoke=function(e,t,n,i){var o=this.getLineNumbers(i,n),r=i&&i.levels,s=i&&i.direction;\"number\"!=typeof r&&\"string\"!=typeof s?d.setCollapseStateUp(t,!0,o):\"up\"===s?d.setCollapseStateLevelsUp(t,!0,r||1,o):d.setCollapseStateLevelsDown(t,!0,r||1,o)},t}(N),T=function(e){\nfunction t(){return e.call(this,{id:\"editor.toggleFold\",label:n.localize(3,null),alias:\"Toggle Fold\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2090),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){var i=this.getSelectedLines(n);d.toggleCollapseState(t,1,i)},t}(N),R=function(e){function t(){return e.call(this,{id:\"editor.foldRecursively\",label:n.localize(4,null),alias:\"Fold Recursively\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2135),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){var i=this.getSelectedLines(n);d.setCollapseStateLevelsDown(t,!0,Number.MAX_VALUE,i)},t}(N),O=function(e){function t(){return e.call(this,{id:\"editor.foldAllBlockComments\",label:n.localize(5,null),alias:\"Fold All Block Comments\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2133),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){\nif(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Comment.value,!0);else{var i=n.getModel();if(!i)return;var r=m.LanguageConfigurationRegistry.getComments(i.getLanguageIdentifier().id);if(r&&r.blockCommentStartToken){var s=new RegExp(\"^\\\\s*\"+o.escapeRegExpCharacters(r.blockCommentStartToken));d.setCollapseStateForMatchingLines(t,s,!0)}}},t}(N),P=function(e){function t(){return e.call(this,{id:\"editor.foldAllMarkerRegions\",label:n.localize(6,null),alias:\"Fold All Regions\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2077),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){if(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!0);else{var i=n.getModel();if(!i)return;var o=m.LanguageConfigurationRegistry.getFoldingRules(i.getLanguageIdentifier().id);if(o&&o.markers&&o.markers.start){var r=new RegExp(o.markers.start);d.setCollapseStateForMatchingLines(t,r,!0)}}},t}(N),A=function(e){function t(){\nreturn e.call(this,{id:\"editor.unfoldAllMarkerRegions\",label:n.localize(7,null),alias:\"Unfold All Regions\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2078),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){if(t.regions.hasTypes())d.setCollapseStateForType(t,_.FoldingRangeKind.Region.value,!1);else{var i=n.getModel();if(!i)return;var o=m.LanguageConfigurationRegistry.getFoldingRules(i.getLanguageIdentifier().id);if(o&&o.markers&&o.markers.start){var r=new RegExp(o.markers.start);d.setCollapseStateForMatchingLines(t,r,!1)}}},t}(N),F=function(e){function t(){return e.call(this,{id:\"editor.foldAll\",label:n.localize(8,null),alias:\"Fold All\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2069),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){d.setCollapseStateLevelsDown(t,!0)},t}(N),W=function(e){function t(){return e.call(this,{id:\"editor.unfoldAll\",label:n.localize(9,null),\nalias:\"Unfold All\",precondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2088),weight:100}})||this}return r(t,e),t.prototype.invoke=function(e,t,n){d.setCollapseStateLevelsDown(t,!1)},t}(N),B=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.getFoldingLevel=function(){return parseInt(this.id.substr(t.ID_PREFIX.length))},t.prototype.invoke=function(e,t,n){d.setCollapseStateAtLevel(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))},t.ID_PREFIX=\"editor.foldLevel\",t.ID=function(e){return t.ID_PREFIX+e},t}(N);u.registerEditorContribution(D.ID,D),u.registerEditorAction(I),u.registerEditorAction(M),u.registerEditorAction(k),u.registerEditorAction(R),u.registerEditorAction(F),u.registerEditorAction(W),u.registerEditorAction(O),u.registerEditorAction(P),u.registerEditorAction(A),u.registerEditorAction(T);for(var V=1;V<=7;V++)u.registerInstantiatedEditorAction(new B({id:B.ID(V),label:n.localize(10,null,V),alias:\"Fold Level \"+V,\nprecondition:L,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:a.KeyChord(2089,2048|21+V),weight:100}}));t.foldBackgroundBackground=E.registerColor(\"editor.foldBackground\",{light:E.transparent(E.editorSelectionBackground,.3),dark:E.transparent(E.editorSelectionBackground,.3),hc:null},n.localize(11,null)),w.registerThemingParticipant((function(e,n){var i=e.getColor(t.foldBackgroundBackground);i&&n.addRule(\".monaco-editor .folded-background { background-color: \"+i+\"; }\")}))})),define(n[575],i([0,1,113,84,139,267,116,14,97,6,449,136,39,2,11,34,61,133]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=function(){function e(e){this._resolverService=e}return e.prototype.hasChildren=function(e){return e instanceof n.ReferencesModel||e instanceof n.FileReferences&&!e.failure},e.prototype.getChildren=function(e){if(e instanceof n.ReferencesModel)return e.groups\n;if(e instanceof n.FileReferences)return e.resolve(this._resolverService).then((function(e){return e.children}));throw new Error(\"bad tree\")},e=h([g(0,i.ITextModelService)],e)}();t.DataSource=b;var S=function(){function e(){}return e.prototype.getHeight=function(){return 23},e.prototype.getTemplateId=function(e){return e instanceof n.FileReferences?D.id:x.id},e}();t.Delegate=S;var w=function(){function e(e){this._keybindingService=e}return e.prototype.getKeyboardNavigationLabel=function(e){if(e instanceof n.OneReference){var t=e.parent.preview,i=t&&t.preview(e.range);if(i)return i.value}return f.basename(e.uri)},e=h([g(0,_.IKeybindingService)],e)}();t.StringRepresentationProvider=w;var E=function(){function e(){}return e.prototype.getId=function(e){return e instanceof n.OneReference?e.id:e.uri},e}();t.IdentityProvider=E;var L=function(e){function t(t,n,i){var r=e.call(this)||this;r._uriLabel=n;var a=document.createElement(\"div\");return d.addClass(a,\"reference-file\"),r.file=r._register(new o.IconLabel(a,{\nsupportHighlights:!0})),r.badge=new s.CountBadge(d.append(a,d.$(\".count\"))),r._register(u.attachBadgeStyler(r.badge,i)),t.appendChild(a),r}return r(t,e),t.prototype.set=function(e,t){var n=f.dirname(e.uri);this.file.setLabel(p.getBaseLabel(e.uri),this._uriLabel.getUriLabel(n,{relative:!0}),{title:this._uriLabel.getUriLabel(e.uri),matches:t});var i=e.children.length;this.badge.setCount(i),e.failure?this.badge.setTitleFormat(c.localize(0,null)):i>1?this.badge.setTitleFormat(c.localize(1,null,i)):this.badge.setTitleFormat(c.localize(2,null,i))},t=h([g(1,a.ILabelService),g(2,l.IThemeService)],t)}(m.Disposable),D=function(){function e(t){this._instantiationService=t,this.templateId=e.id}return e.prototype.renderTemplate=function(e){return this._instantiationService.createInstance(L,e)},e.prototype.renderElement=function(e,t,n){n.set(e.element,y.createMatches(e.filterData))},e.prototype.disposeTemplate=function(e){e.dispose()},e.id=\"FileReferencesRenderer\",e=h([g(0,v.IInstantiationService)],e)}()\n;t.FileReferencesRenderer=D;var N=function(){function e(e){this.label=new C.HighlightedLabel(e,!1)}return e.prototype.set=function(e,t){var n=e.parent.preview,i=n&&n.preview(e.range);if(i){var o=i.value,r=i.highlight;t&&!y.FuzzyScore.isDefault(t)?(d.toggleClass(this.label.element,\"referenceMatch\",!1),this.label.set(o,y.createMatches(t))):(d.toggleClass(this.label.element,\"referenceMatch\",!0),this.label.set(o,[r]))}else this.label.set(f.basename(e.uri)+\":\"+(e.range.startLineNumber+1)+\":\"+(e.range.startColumn+1))},e}(),x=function(){function e(){this.templateId=e.id}return e.prototype.renderTemplate=function(e){return new N(e)},e.prototype.renderElement=function(e,t,n){n.set(e.element,e.filterData)},e.prototype.disposeTemplate=function(){},e.id=\"OneReferenceRenderer\",e}();t.OneReferenceRenderer=x;var I=function(){function e(){}return e.prototype.getAriaLabel=function(e){return e.ariaMessage},e}();t.AriaProvider=I})),\ndefine(n[576],i([0,1,455,3,22,23,12,62,384,67,14,44,30,15,10]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t){this.decorationIds=[],this.editor=e,this.editorWorkerService=t}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){},e.prototype.run=function(t,n){var r=this;this.currentRequest&&this.currentRequest.cancel();var s=this.editor.getSelection(),a=this.editor.getModel();if(a&&s){var l=s;if(l.startLineNumber===l.endLineNumber){var c=new d.EditorState(this.editor,5),h=a.uri;return this.editorWorkerService.canNavigateValueSet(h)?(this.currentRequest=m.createCancelablePromise((function(e){return r.editorWorkerService.navigateValueSet(h,l,n)})),this.currentRequest.then((function(n){if(n&&n.range&&n.value&&c.validate(r.editor)){var s=i.Range.lift(n.range),a=n.range,d=n.value.length-(l.endColumn-l.startColumn);a={startLineNumber:a.startLineNumber,startColumn:a.startColumn,\nendLineNumber:a.endLineNumber,endColumn:a.startColumn+n.value.length},d>1&&(l=new o.Selection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+d-1));var h=new u.InPlaceReplaceCommand(s,l,n.value);r.editor.pushUndoStop(),r.editor.executeCommand(t,h),r.editor.pushUndoStop(),r.decorationIds=r.editor.deltaDecorations(r.decorationIds,[{range:a,options:e.DECORATION}]),r.decorationRemover&&r.decorationRemover.cancel(),r.decorationRemover=m.timeout(350),r.decorationRemover.then((function(){return r.decorationIds=r.editor.deltaDecorations(r.decorationIds,[])})).catch(v.onUnexpectedError)}})).catch(v.onUnexpectedError)):Promise.resolve(void 0)}}},e.ID=\"editor.contrib.inPlaceReplaceController\",e.DECORATION=f.ModelDecorationOptions.register({className:\"valueSetReplacement\"}),e=h([g(1,l.IEditorWorkerService)],e)}(),y=function(e){function t(){return e.call(this,{id:\"editor.action.inPlaceReplace.up\",label:n.localize(0,null),alias:\"Replace with Previous Value\",precondition:s.EditorContextKeys.writable,kbOpts:{\nkbExpr:s.EditorContextKeys.editorTextFocus,primary:3154,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=_.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)},t}(a.EditorAction),C=function(e){function t(){return e.call(this,{id:\"editor.action.inPlaceReplace.down\",label:n.localize(1,null),alias:\"Replace with Next Value\",precondition:s.EditorContextKeys.writable,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3156,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=_.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)},t}(a.EditorAction);a.registerEditorContribution(_.ID,_),a.registerEditorAction(y),a.registerEditorAction(C),c.registerThemingParticipant((function(e,t){var n=e.getColor(p.editorBracketMatchBorder);n&&t.addRule(\".monaco-editor.vs .valueSetReplacement { outline: solid 2px \"+n+\"; }\")}))})),define(n[577],i([0,1,457,15,26,10,75,2,16,12,30,17,199,495,35,51,20,14,316]),(function(e,t,n,i,o,s,a,u,p,f,m,v,_,y,C,b,S,w){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var E={general:m.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link\"}),active:m.ModelDecorationOptions.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link-active\"})},L=function(){function e(e,t){this.link=e,this.decorationId=t}return e.decoration=function(t,n){return{range:t.range,options:e._getOptions(t,n,!1)}},e._getOptions=function(e,t,i){var o=l({},i?E.active:E.general);return o.hoverMessage=function(e,t){var i=e.url&&/^command:/i.test(e.url.toString()),o=e.tooltip?e.tooltip:i?n.localize(0,null):n.localize(1,null),r=t?p.isMacintosh?n.localize(2,null):n.localize(3,null):p.isMacintosh?n.localize(4,null):n.localize(5,null);return e.url?new a.MarkdownString(\"\",!0).appendMarkdown(\"[\"+o+\"](\"+e.url.toString()+\") (\"+r+\")\"):(new a.MarkdownString).appendText(o+\" (\"+r+\")\")}(e,t),o},e.prototype.activate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!0))\n},e.prototype.deactivate=function(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!1))},e}(),D=function(){function e(e,t,n){var o=this;this.listenersToRemove=new u.DisposableStore,this.editor=e,this.openerService=t,this.notificationService=n;var r=new _.ClickLinkGesture(e);this.listenersToRemove.add(r),this.listenersToRemove.add(r.onMouseMoveOrRelevantKeyDown((function(e){var t=e[0],n=e[1];o._onEditorMouseMove(t,n)}))),this.listenersToRemove.add(r.onExecute((function(e){o.onEditorMouseUp(e)}))),this.listenersToRemove.add(r.onCancel((function(e){o.cleanUpActiveLinkDecoration()}))),this.enabled=e.getOption(52),this.listenersToRemove.add(e.onDidChangeConfiguration((function(t){var n=e.getOption(52);o.enabled!==n&&(o.enabled=n,o.updateDecorations([]),o.stop(),o.beginCompute())}))),this.listenersToRemove.add(e.onDidChangeModelContent((function(e){return o.onChange()}))),this.listenersToRemove.add(e.onDidChangeModel((function(e){return o.onModelChanged()}))),\nthis.listenersToRemove.add(e.onDidChangeModelLanguage((function(e){return o.onModelModeChanged()}))),this.listenersToRemove.add(v.LinkProviderRegistry.onDidChange((function(e){return o.onModelModeChanged()}))),this.timeout=new i.TimeoutTimer,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.onModelChanged=function(){this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.beginCompute()},e.prototype.onModelModeChanged=function(){this.stop(),this.beginCompute()},e.prototype.onChange=function(){var t=this;this.timeout.setIfNotSet((function(){return t.beginCompute()}),e.RECOMPUTE_TIME)},e.prototype.beginCompute=function(){return d(this,void 0,void 0,(function(){var e,t,n;return c(this,(function(o){switch(o.label){case 0:if(!this.editor.hasModel()||!this.enabled)return[2];if(e=this.editor.getModel(),!v.LinkProviderRegistry.has(e))return[2]\n;this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=i.createCancelablePromise((function(t){return y.getLinks(e,t)})),o.label=1;case 1:return o.trys.push([1,3,4,5]),t=this,[4,this.computePromise];case 2:return t.activeLinksList=o.sent(),this.updateDecorations(this.activeLinksList.links),[3,5];case 3:return n=o.sent(),s.onUnexpectedError(n),[3,5];case 4:return this.computePromise=null,[7];case 5:return[2]}}))}))},e.prototype.updateDecorations=function(e){for(var t=\"altKey\"===this.editor.getOption(59),n=[],i=Object.keys(this.currentOccurrences),o=0,r=i.length;o<r;o++){var s=i[o],a=this.currentOccurrences[s];n.push(a.decorationId)}var l=[];if(e)for(var u=0,d=e;u<d.length;u++){var c=d[u];l.push(L.decoration(c,t))}var h=this.editor.deltaDecorations(n,l);this.currentOccurrences={},this.activeLinkDecorationId=null;for(o=0,r=h.length;o<r;o++){a=new L(e[o],h[o]);this.currentOccurrences[a.decorationId]=a}},e.prototype._onEditorMouseMove=function(e,t){\nvar n=this,i=\"altKey\"===this.editor.getOption(59);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();var o=this.getLinkOccurrence(e.target.position);o&&this.editor.changeDecorations((function(e){o.activate(e,i),n.activeLinkDecorationId=o.decorationId}))}else this.cleanUpActiveLinkDecoration()},e.prototype.cleanUpActiveLinkDecoration=function(){var e=\"altKey\"===this.editor.getOption(59);if(this.activeLinkDecorationId){var t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((function(n){t.deactivate(n,e)})),this.activeLinkDecorationId=null}},e.prototype.onEditorMouseUp=function(e){if(this.isEnabled(e)){var t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}},e.prototype.openLinkOccurrence=function(e,t,i){var r=this;if(void 0===i&&(i=!1),this.openerService){var a=e.link;a.resolve(o.CancellationToken.None).then((function(e){return r.openerService.open(e,{openToSide:t,fromUserGesture:i})}),(function(e){\nvar t=e instanceof Error?e.message:e;\"invalid\"===t?r.notificationService.warn(n.localize(6,null,a.url.toString())):\"missing\"===t?r.notificationService.warn(n.localize(7,null)):s.onUnexpectedError(e)}))}},e.prototype.getLinkOccurrence=function(e){if(!this.editor.hasModel()||!e)return null;for(var t=0,n=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);t<n.length;t++){var i=n[t],o=this.currentOccurrences[i.id];if(o)return o}return null},e.prototype.isEnabled=function(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))},e.prototype.stop=function(){this.timeout.cancel(),this.activeLinksList&&this.activeLinksList.dispose(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)},e.prototype.dispose=function(){this.listenersToRemove.dispose(),this.stop(),this.timeout.dispose()},e.ID=\"editor.linkDetector\",e.RECOMPUTE_TIME=1e3,\ne=h([g(1,b.IOpenerService),g(2,C.INotificationService)],e)}(),N=function(e){function t(){return e.call(this,{id:\"editor.action.openLink\",label:n.localize(8,null),alias:\"Open Link\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);if(n&&t.hasModel())for(var i=0,o=t.getSelections();i<o.length;i++){var r=o[i],s=n.getLinkOccurrence(r.getEndPosition());s&&n.openLinkOccurrence(s,!1)}},t}(f.EditorAction);f.registerEditorContribution(D.ID,D),f.registerEditorAction(N),w.registerThemingParticipant((function(e,t){var n=e.getColor(S.editorActiveLinkForeground);n&&t.addRule(\".monaco-editor .detected-link-active { color: \"+n+\" !important; }\")}))})),define(n[122],i([0,1,458,15,2,50,3,12,18,14,20,317]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(n,i){var r=e.call(this)||this;return r.closeTimeout=3e3,r._messageWidget=r._register(new o.MutableDisposable),r._messageListeners=r._register(new o.DisposableStore),\nr._editor=n,r._visible=t.MESSAGE_VISIBLE.bindTo(i),r._register(r._editor.onDidAttemptReadOnlyEdit((function(){return r._onDidAttemptReadOnlyEdit()}))),r}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._visible.reset()},t.prototype.showMessage=function(e,t){var n,o=this;s.alert(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new m(this._editor,t,e),this._messageListeners.add(this._editor.onDidBlurEditorText((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidDispose((function(){return o.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeModel((function(){return o.closeMessage()}))),this._messageListeners.add(new i.TimeoutTimer((function(){return o.closeMessage()}),this.closeTimeout)),\nthis._messageListeners.add(this._editor.onMouseMove((function(e){e.target.position&&(n?n.containsPosition(e.target.position)||o.closeMessage():n=new a.Range(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))},t.prototype.closeMessage=function(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(m.fadeOut(this._messageWidget.value))},t.prototype._onDidAttemptReadOnlyEdit=function(){this._editor.hasModel()&&this.showMessage(n.localize(0,null),this._editor.getPosition())},t.ID=\"editor.contrib.messageController\",t.MESSAGE_VISIBLE=new u.RawContextKey(\"messageVisible\",!1),t=h([g(1,u.IContextKeyService)],t)}(o.Disposable);t.MessageController=p;var f=l.EditorCommand.bindToContribution(p.get);l.registerEditorCommand(new f({id:\"leaveEditorMessage\",precondition:p.MESSAGE_VISIBLE,handler:function(e){return e.closeMessage()},kbOpts:{weight:130,primary:9}}));var m=function(){function e(e,t,n){var i=t.lineNumber,o=t.column;this.allowEditorOverflow=!0,\nthis.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(i,i,0),this._position={lineNumber:i,column:o-1},this._domNode=document.createElement(\"div\"),this._domNode.classList.add(\"monaco-editor-overlaymessage\");var r=document.createElement(\"div\");r.classList.add(\"message\"),r.textContent=n,this._domNode.appendChild(r);var s=document.createElement(\"div\");s.classList.add(\"anchor\"),this._domNode.appendChild(s),this._editor.addContentWidget(this),this._domNode.classList.add(\"fadeIn\")}return e.fadeOut=function(e){var t,n=function(){e.dispose(),clearTimeout(t),e.getDomNode().removeEventListener(\"animationend\",n)};return t=setTimeout(n,110),e.getDomNode().addEventListener(\"animationend\",n),e.getDomNode().classList.add(\"fadeOut\"),{dispose:n}},e.prototype.dispose=function(){this._editor.removeContentWidget(this)},e.prototype.getId=function(){return\"messageoverlay\"},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return{position:this._position,\npreference:[1,2]}},e}();l.registerEditorContribution(p.ID,p),d.registerThemingParticipant((function(e,t){var n=e.getColor(c.inputValidationInfoBorder);if(n){var i=e.type===d.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { border: \"+i+\"px solid \"+n+\"; }\")}var o=e.getColor(c.inputValidationInfoBackground);o&&t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { background-color: \"+o+\"; }\");var r=e.getColor(c.inputValidationInfoForeground);r&&t.addRule(\".monaco-editor .monaco-editor-overlaymessage .message { color: \"+r+\"; }\")}))})),define(n[578],i([0,1,19,10,128,2,122,11,527,567]),(function(e,t,n,i,o,s,a,l,u,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(e){function t(t,n,i,r,a){var l=e.call(this)||this;return l._editor=t,l.delegate=r,l._activeCodeActions=l._register(new s.MutableDisposable),l._codeActionWidget=new o.Lazy((function(){\nreturn l._register(a.createInstance(u.CodeActionMenu,l._editor,{onSelectCodeAction:function(e){return d(l,void 0,void 0,(function(){return c(this,(function(t){return this.delegate.applyCodeAction(e,!0),[2]}))}))}}))})),l._lightBulbWidget=new o.Lazy((function(){var e=l._register(a.createInstance(p.LightBulbWidget,l._editor,n,i));return l._register(e.onClick((function(e){return l.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1})}))),e})),l}return r(t,e),t.prototype.update=function(e){var t,n,o;return d(this,void 0,void 0,(function(){var r,s,l,u,d;return c(this,(function(c){switch(c.label){case 0:if(1!==e.type)return null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide(),[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,e.actions];case 2:return r=c.sent(),[3,4];case 3:return s=c.sent(),i.onUnexpectedError(s),[2];case 4:if(this._lightBulbWidget.getValue().update(r,e.trigger,e.position),2!==e.trigger.type)return[3,11]\n;if(!(null===(n=e.trigger.filter)||void 0===n?void 0:n.include))return[3,10];if(!(l=this.tryGetValidActionToApply(e.trigger,r)))return[3,9];c.label=5;case 5:return c.trys.push([5,,7,8]),[4,this.delegate.applyCodeAction(l,!1)];case 6:return c.sent(),[3,8];case 7:return r.dispose(),[7];case 8:return[2];case 9:if(e.trigger.context&&(u=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,r))&&u.disabled)return a.MessageController.get(this._editor).showMessage(u.disabled,e.trigger.context.position),r.dispose(),[2];c.label=10;case 10:return d=!!(null===(o=e.trigger.filter)||void 0===o?void 0:o.include),!e.trigger.context||r.allActions.length&&(d||r.validActions.length)?(this._activeCodeActions.value=r,this._codeActionWidget.getValue().show(e.trigger,r,e.position,{includeDisabledActions:d}),[3,12]):(a.MessageController.get(this._editor).showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=r,r.dispose(),[2]);case 11:\nthis._codeActionWidget.getValue().isVisible?r.dispose():this._activeCodeActions.value=r,c.label=12;case 12:return[2]}}))}))},t.prototype.getInvalidActionThatWouldHaveBeenApplied=function(e,t){if(t.allActions.length)return\"first\"===e.autoApply&&0===t.validActions.length||\"ifSingle\"===e.autoApply&&1===t.allActions.length?n.find(t.allActions,(function(e){return e.disabled})):void 0},t.prototype.tryGetValidActionToApply=function(e,t){if(t.validActions.length)return\"first\"===e.autoApply&&t.validActions.length>0||\"ifSingle\"===e.autoApply&&1===t.validActions.length?t.validActions[0]:void 0},t.prototype.showCodeActionList=function(e,t,n,i){return d(this,void 0,void 0,(function(){return c(this,(function(o){return this._codeActionWidget.getValue().show(e,t,n,i),[2]}))}))},t=h([g(4,l.IInstantiationService)],t)}(s.Disposable);t.CodeActionUi=f}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0\n;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[233],i([0,1,128,2,5,12,156,23,119,578,122,432,29,18,11,72,35,73,96,528,111]),(function(e,t,n,i,o,s,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D){\"use strict\";function N(e){return y.ContextKeyExpr.regex(L.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp(\"(\\\\s|^)\"+o.escapeRegExpCharacters(e.value)+\"\\\\b\"))}Object.defineProperty(t,\"__esModule\",{value:!0});var x={type:\"object\",required:[\"kind\"],defaultSnippets:[{body:{kind:\"\"}}],properties:{kind:{type:\"string\",description:v.localize(0,null)},apply:{type:\"string\",description:v.localize(1,null),default:\"ifSingle\",enum:[\"first\",\"ifSingle\",\"never\"],enumDescriptions:[v.localize(2,null),v.localize(3,null),v.localize(4,null)]},preferred:{type:\"boolean\",default:!1,description:v.localize(5,null)}}},I=function(e){function t(t,i,o,r,s){var a=e.call(this)||this;return a._instantiationService=s,a._editor=t,a._model=a._register(new L.CodeActionModel(a._editor,i,o,r)),\na._register(a._model.onDidChangeState((function(e){return a.update(e)}))),a._ui=new n.Lazy((function(){return a._register(new f.CodeActionUi(t,T.Id,W.Id,{applyCodeAction:function(e,t){return d(a,void 0,void 0,(function(){return c(this,(function(n){switch(n.label){case 0:return n.trys.push([0,,2,3]),[4,this._applyCodeAction(e)];case 1:return n.sent(),[3,3];case 2:return t&&this._trigger({type:1,filter:{}}),[7];case 3:return[2]}}))}))}},a._instantiationService))})),a}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.update=function(e){this._ui.getValue().update(e)},t.prototype.showCodeActions=function(e,t,n){return this._ui.getValue().showCodeActionList(e,t,n,{includeDisabledActions:!1})},t.prototype.manualTriggerAtCurrentPosition=function(e,t,n){if(this._editor.hasModel()){m.MessageController.get(this._editor).closeMessage();var i=this._editor.getPosition();this._trigger({type:2,filter:t,autoApply:n,context:{notAvailableMessage:e,position:i}})}},t.prototype._trigger=function(e){\nreturn this._model.trigger(e)},t.prototype._applyCodeAction=function(e){return this._instantiationService.invokeFunction(M,e,this._editor)},t.ID=\"editor.contrib.quickFixController\",t=h([g(1,b.IMarkerService),g(2,y.IContextKeyService),g(3,w.IEditorProgressService),g(4,C.IInstantiationService)],t)}(i.Disposable);function M(e,t,n){return d(this,void 0,void 0,(function(){var i,o,r,s,u,d;return c(this,(function(c){switch(c.label){case 0:return i=e.get(l.IBulkEditService),o=e.get(_.ICommandService),r=e.get(E.ITelemetryService),s=e.get(S.INotificationService),r.publicLog2(\"codeAction.applyCodeAction\",{codeActionTitle:t.title,codeActionKind:t.kind,codeActionIsPreferred:!!t.isPreferred}),t.edit?[4,i.apply(t.edit,{editor:n})]:[3,2];case 1:c.sent(),c.label=2;case 2:if(!t.command)return[3,6];c.label=3;case 3:return c.trys.push([3,5,,6]),[4,o.executeCommand.apply(o,a([t.command.id],t.command.arguments||[]))];case 4:return c.sent(),[3,6];case 5:return u=c.sent(),\nd=\"string\"==typeof(h=u)?h:h instanceof Error&&\"string\"==typeof h.message?h.message:void 0,s.error(\"string\"==typeof d?d:v.localize(6,null)),[3,6];case 6:return[2]}var h}))}))}function k(e,t,n,i){if(e.hasModel()){var o=I.get(e);o&&o.manualTriggerAtCurrentPosition(t,n,i)}}t.QuickFixController=I,t.applyCodeAction=M;var T=function(e){function t(){return e.call(this,{id:t.Id,label:v.localize(7,null),alias:\"Quick Fix...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:2132,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(8,null),void 0,void 0)},t.Id=\"editor.action.quickFix\",t}(s.EditorAction);t.QuickFixAction=T;var R=function(e){function t(){return e.call(this,{id:p.codeActionCommandId,precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),description:{description:\"Trigger a code action\",args:[{name:\"args\",\nschema:x}]}})||this}return r(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{kind:D.CodeActionKind.Empty,apply:\"ifSingle\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(9,null,n.kind):v.localize(10,null,n.kind):i.preferred?v.localize(11,null):v.localize(12,null),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorCommand);t.CodeActionCommand=R;var O=function(e){function t(){return e.call(this,{id:p.refactorCommandId,label:v.localize(13,null),alias:\"Refactor...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:\"1_modification\",order:2,when:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.Refactor))},description:{description:\"Refactor...\",args:[{name:\"args\",schema:x}]}})||this}return r(t,e),\nt.prototype.run=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{kind:D.CodeActionKind.Refactor,apply:\"never\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(14,null,n.kind):v.localize(15,null,n.kind):i.preferred?v.localize(16,null):v.localize(17,null),{include:D.CodeActionKind.Refactor.contains(i.kind)?i.kind:D.CodeActionKind.None,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorAction);t.RefactorAction=O;var P=function(e){function t(){return e.call(this,{id:p.sourceActionCommandId,label:v.localize(18,null),alias:\"Source Action...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,u.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:\"1_modification\",order:2.1,when:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.Source))},description:{description:\"Source Action...\",args:[{name:\"args\",schema:x}]}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=D.CodeActionCommandArgs.fromUser(n,{\nkind:D.CodeActionKind.Source,apply:\"never\"});return k(t,\"string\"==typeof(null==n?void 0:n.kind)?i.preferred?v.localize(19,null,n.kind):v.localize(20,null,n.kind):i.preferred?v.localize(21,null):v.localize(22,null),{include:D.CodeActionKind.Source.contains(i.kind)?i.kind:D.CodeActionKind.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)},t}(s.EditorAction);t.SourceAction=P;var A=function(e){function t(){return e.call(this,{id:p.organizeImportsCommandId,label:v.localize(23,null),alias:\"Organize Imports\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1581,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(24,null),{include:D.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},\"ifSingle\")},t}(s.EditorAction);t.OrganizeImportsAction=A;var F=function(e){function t(){return e.call(this,{id:p.fixAllCommandId,\nlabel:v.localize(25,null),alias:\"Fix All\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.SourceFixAll))})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(26,null),{include:D.CodeActionKind.SourceFixAll,includeSourceActions:!0},\"ifSingle\")},t}(s.EditorAction);t.FixAllAction=F;var W=function(e){function t(){return e.call(this,{id:t.Id,label:v.localize(27,null),alias:\"Auto Fix...\",precondition:y.ContextKeyExpr.and(u.EditorContextKeys.writable,N(D.CodeActionKind.QuickFix)),kbOpts:{kbExpr:u.EditorContextKeys.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){return k(t,v.localize(28,null),{include:D.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},\"ifSingle\")},t.Id=\"editor.action.autoFix\",t}(s.EditorAction);t.AutoFixAction=W})),define(n[579],i([0,1,12,233]),(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),\nn.registerEditorContribution(i.QuickFixController.ID,i.QuickFixController),n.registerEditorAction(i.QuickFixAction),n.registerEditorAction(i.RefactorAction),n.registerEditorAction(i.SourceAction),n.registerEditorAction(i.OrganizeImportsAction),n.registerEditorAction(i.AutoFixAction),n.registerEditorAction(i.FixAllAction),n.registerEditorCommand(new i.CodeActionCommand)})),define(n[580],i([0,1,459,15,36,2,12,213,3,22,23,48,30,17,232,20,14,18]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var y=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorAbove\",label:n.localize(0,null),alias:\"Add Cursor Above\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(1,null),order:2}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){\nvar i=n&&!0===n.logicalLine,o=t._getCursors(),r=o.context;r.config.readOnly||(r.model.pushStackElement(),o.setStates(n.source,3,l.CursorMoveCommands.addCursorUp(r,o.getAll(),i)),o.reveal(n.source,!0,1,0))}},t}(a.EditorAction);t.InsertCursorAbove=y;var C=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorBelow\",label:n.localize(2,null),alias:\"Add Cursor Below\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(3,null),order:3}})||this}return r(t,e),t.prototype.run=function(e,t,n){if(t.hasModel()){var i=n&&!0===n.logicalLine,o=t._getCursors(),r=o.context;r.config.readOnly||(r.model.pushStackElement(),o.setStates(n.source,3,l.CursorMoveCommands.addCursorDown(r,o.getAll(),i)),o.reveal(n.source,!0,2,0))}},t}(a.EditorAction);t.InsertCursorBelow=C;var b=function(e){function t(){return e.call(this,{id:\"editor.action.insertCursorAtEndOfEachLineSelected\",\nlabel:n.localize(4,null),alias:\"Add Cursors to Line Ends\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(5,null),order:4}})||this}return r(t,e),t.prototype.getCursorsForSelection=function(e,t,n){if(!e.isEmpty()){for(var i=e.startLineNumber;i<e.endLineNumber;i++){var o=t.getLineMaxColumn(i);n.push(new d.Selection(i,o,i,o))}e.endColumn>1&&n.push(new d.Selection(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}},t.prototype.run=function(e,t){var n=this;if(t.hasModel()){var i=t.getModel(),o=t.getSelections(),r=[];o.forEach((function(e){return n.getCursorsForSelection(e,i,r)})),r.length>0&&t.setSelections(r)}},t}(a.EditorAction),S=function(e){function t(){return e.call(this,{id:\"editor.action.addCursorsToBottom\",label:n.localize(6,null),alias:\"Add Cursors To Bottom\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){\nfor(var n=t.getSelections(),i=t.getModel().getLineCount(),o=[],r=n[0].startLineNumber;r<=i;r++)o.push(new d.Selection(r,n[0].startColumn,r,n[0].endColumn));o.length>0&&t.setSelections(o)}},t}(a.EditorAction),w=function(e){function t(){return e.call(this,{id:\"editor.action.addCursorsToTop\",label:n.localize(7,null),alias:\"Add Cursors To Top\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){for(var n=t.getSelections(),i=[],o=n[0].startLineNumber;o>=1;o--)i.push(new d.Selection(o,n[0].startColumn,o,n[0].endColumn));i.length>0&&t.setSelections(i)}},t}(a.EditorAction),E=function(e,t,n){this.selections=e,this.revealRange=t,this.revealScrollType=n};t.MultiCursorSessionResult=E;var L=function(){function e(e,t,n,i,o,r,s){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=n,this.searchText=i,this.wholeWord=o,this.matchCase=r,this.currentMatch=s}return e.create=function(t,n){if(!t.hasModel())return null;var i=n.getState()\n;if(!t.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new e(t,n,!1,i.searchString,i.wholeWord,i.matchCase,null);var o,r,s=!1,a=t.getSelections();1===a.length&&a[0].isEmpty()?(s=!0,o=!0,r=!0):(o=i.wholeWord,r=i.matchCase);var l,u=t.getSelection(),c=null;if(u.isEmpty()){var h=t.getModel().getWordAtPosition(u.getStartPosition());if(!h)return null;l=h.word,c=new d.Selection(u.startLineNumber,h.startColumn,u.startLineNumber,h.endColumn)}else l=t.getModel().getValueInRange(u).replace(/\\r\\n/g,\"\\n\");return new e(t,n,s,l,o,r,c)},e.prototype.addSelectionToNextFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.concat(e),e,0)},e.prototype.moveSelectionToNextFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getNextMatch=function(){\nif(!this._editor.hasModel())return null;if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.addSelectionToPreviousFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.concat(e),e,0)},e.prototype.moveSelectionToPreviousFindMatch=function(){if(!this._editor.hasModel())return null;var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new E(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getPreviousMatch=function(){if(!this._editor.hasModel())return null;if(this.currentMatch){\nvar e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1);return i?new d.Selection(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.selectAll=function(){return this._editor.hasModel()?(this.findController.highlightFindOptions(),this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(96):null,!1,1073741824)):[]},e}();t.MultiCursorSession=L;var D=function(e){function t(t){var n=e.call(this)||this;return n._sessionDispose=n._register(new s.DisposableStore),n._editor=t,n._ignoreSelectionChange=!1,n._session=null,n}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this._endSession(),e.prototype.dispose.call(this)},\nt.prototype._beginSessionIfNeeded=function(e){var t=this;if(!this._session){var n=L.create(this._editor,e);if(!n)return;this._session=n;var i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((function(e){t._ignoreSelectionChange||t._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((function(){t._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((function(e){(e.matchCase||e.wholeWord)&&t._endSession()})))}},t.prototype._endSession=function(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1)}this._session=null},t.prototype._setSelections=function(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),\nthis._ignoreSelectionChange=!1},t.prototype._expandEmptyToWord=function(e,t){if(!t.isEmpty())return t;var n=e.getWordAtPosition(t.getStartPosition());return n?new d.Selection(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t},t.prototype._applySessionResult=function(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))},t.prototype.getSession=function(e){return this._session},t.prototype.addSelectionToNextFindMatch=function(e){if(this._editor.hasModel()){if(!this._session){var t=this._editor.getSelections();if(t.length>1){var n=e.getState().matchCase;if(!A(this._editor.getModel(),t,n)){for(var i=this._editor.getModel(),o=[],r=0,s=t.length;r<s;r++)o[r]=this._expandEmptyToWord(i,t[r]);return void this._editor.setSelections(o)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}},t.prototype.addSelectionToPreviousFindMatch=function(e){\nthis._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())},t.prototype.moveSelectionToNextFindMatch=function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())},t.prototype.moveSelectionToPreviousFindMatch=function(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())},t.prototype.selectAll=function(e){if(this._editor.hasModel()){var t=null,n=e.getState();if(n.isRevealed&&n.searchString.length>0&&n.isRegex)t=this._editor.getModel().findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(96):null,!1,1073741824);else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(n.searchScope){for(var i=n.searchScope,o=[],r=0;r<t.length;r++)t[r].range.endLineNumber<=i.endLineNumber&&t[r].range.startLineNumber>=i.startLineNumber&&o.push(t[r]);t=o}if(t.length>0){\nfor(var s=this._editor.getSelection(),a=(r=0,t.length);r<a;r++){var l=t[r];if(l.range.intersectRanges(s)){t[r]=t[0],t[0]=l;break}}this._setSelections(t.map((function(e){return new d.Selection(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})))}}},t.ID=\"editor.contrib.multiCursorController\",t}(s.Disposable);t.MultiCursorSelectionController=D;var N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);if(n){var i=f.CommonFindController.get(t);i&&this._run(n,i)}},t}(a.EditorAction);t.MultiCursorSelectionControllerAction=N;var x=function(e){function t(){return e.call(this,{id:\"editor.action.addSelectionToNextFindMatch\",label:n.localize(8,null),alias:\"Add Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(9,null),order:5}})||this}return r(t,e),t.prototype._run=function(e,t){\ne.addSelectionToNextFindMatch(t)},t}(N);t.AddSelectionToNextFindMatchAction=x;var I=function(e){function t(){return e.call(this,{id:\"editor.action.addSelectionToPreviousFindMatch\",label:n.localize(10,null),alias:\"Add Selection To Previous Find Match\",precondition:void 0,menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(11,null),order:6}})||this}return r(t,e),t.prototype._run=function(e,t){e.addSelectionToPreviousFindMatch(t)},t}(N);t.AddSelectionToPreviousFindMatchAction=I;var M=function(e){function t(){return e.call(this,{id:\"editor.action.moveSelectionToNextFindMatch\",label:n.localize(12,null),alias:\"Move Last Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:o.KeyChord(2089,2082),weight:100}})||this}return r(t,e),t.prototype._run=function(e,t){e.moveSelectionToNextFindMatch(t)},t}(N);t.MoveSelectionToNextFindMatchAction=M;var k=function(e){function t(){return e.call(this,{id:\"editor.action.moveSelectionToPreviousFindMatch\",label:n.localize(13,null),\nalias:\"Move Last Selection To Previous Find Match\",precondition:void 0})||this}return r(t,e),t.prototype._run=function(e,t){e.moveSelectionToPreviousFindMatch(t)},t}(N);t.MoveSelectionToPreviousFindMatchAction=k;var T=function(e){function t(){return e.call(this,{id:\"editor.action.selectHighlights\",label:n.localize(14,null),alias:\"Select All Occurrences of Find Match\",precondition:void 0,kbOpts:{kbExpr:c.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:25,group:\"3_multi\",title:n.localize(15,null),order:7}})||this}return r(t,e),t.prototype._run=function(e,t){e.selectAll(t)},t}(N);t.SelectHighlightsAction=T;var R=function(e){function t(){return e.call(this,{id:\"editor.action.changeAll\",label:n.localize(16,null),alias:\"Change All Occurrences\",precondition:_.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.2}})||this}return r(t,e),\nt.prototype._run=function(e,t){e.selectAll(t)},t}(N);t.CompatChangeAll=R;var O=function(){function e(e,t,n){this.searchText=e,this.matchCase=t,this.wordSeparators=n}return e.softEquals=function(e,t){return!e&&!t||!(!e||!t)&&(e.searchText===t.searchText&&e.matchCase===t.matchCase&&e.wordSeparators===t.wordSeparators)},e}(),P=function(e){function t(t){var n=e.call(this)||this;return n.editor=t,n._isEnabled=t.getOption(82),n.decorations=[],n.updateSoon=n._register(new i.RunOnceScheduler((function(){return n._update()}),300)),n.state=null,n._register(t.onDidChangeConfiguration((function(e){n._isEnabled=t.getOption(82)}))),n._register(t.onDidChangeCursorSelection((function(e){n._isEnabled&&(e.selection.isEmpty()?3===e.reason?(n.state&&n._setState(null),n.updateSoon.schedule()):n._setState(null):n._update())}))),n._register(t.onDidChangeModel((function(e){n._setState(null)}))),n._register(f.CommonFindController.get(t).getState().onFindReplaceStateChange((function(e){n._update()}))),n}return r(t,e),\nt.prototype._update=function(){this._setState(t._createState(this._isEnabled,this.editor))},t._createState=function(e,t){if(!e)return null;if(!t.hasModel())return null;var n=t.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;var i=D.get(t);if(!i)return null;var o=f.CommonFindController.get(t);if(!o)return null;var r=i.getSession(o);if(!r){var s=t.getSelections();if(s.length>1){var a=o.getState().matchCase;if(!A(t.getModel(),s,a))return null}r=L.create(t,o)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \\t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;var l=o.getState(),u=l.matchCase;if(l.isRevealed){var d=l.searchString;u||(d=d.toLowerCase());var c=r.searchText;if(u||(c=c.toLowerCase()),d===c&&r.matchCase===l.matchCase&&r.wholeWord===l.wholeWord&&!l.isRegex)return null}return new O(r.searchText,r.matchCase,r.wholeWord?t.getOption(96):null)},t.prototype._setState=function(e){if(O.softEquals(this.state,e))this.state=e;else if(this.state=e,this.state){\nif(this.editor.hasModel()){var n=this.editor.getModel();if(!n.isTooLargeForTokenization()){var i=g.DocumentHighlightProviderRegistry.has(n),o=n.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map((function(e){return e.range}));o.sort(u.Range.compareRangesUsingStarts);var r=this.editor.getSelections();r.sort(u.Range.compareRangesUsingStarts);for(var s=[],a=0,l=0,d=o.length,c=r.length;a<d;){var h=o[a];if(l>=c)s.push(h),a++;else{var p=u.Range.compareRangesUsingStarts(h,r[l]);p<0?(!r[l].isEmpty()&&u.Range.areIntersecting(h,r[l])||s.push(h),a++):p>0?l++:(a++,l++)}}var f=s.map((function(e){return{range:e,options:i?t._SELECTION_HIGHLIGHT:t._SELECTION_HIGHLIGHT_OVERVIEW}}));this.decorations=this.editor.deltaDecorations(this.decorations,f)}}}else this.decorations=this.editor.deltaDecorations(this.decorations,[])},t.prototype.dispose=function(){this._setState(null),e.prototype.dispose.call(this)},t.ID=\"editor.contrib.selectionHighlighter\",\nt._SELECTION_HIGHLIGHT_OVERVIEW=p.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\",overviewRuler:{color:v.themeColorFromId(m.overviewRulerSelectionHighlightForeground),position:h.OverviewRulerLane.Center}}),t._SELECTION_HIGHLIGHT=p.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\"}),t}(s.Disposable);function A(e,t,n){for(var i=F(e,t[0],!n),o=1,r=t.length;o<r;o++){var s=t[o];if(s.isEmpty())return!1;if(i!==F(e,s,!n))return!1}return!0}function F(e,t,n){var i=e.getValueInRange(t);return n?i.toLowerCase():i}t.SelectionHighlighter=P,a.registerEditorContribution(D.ID,D),a.registerEditorContribution(P.ID,P),a.registerEditorAction(y),a.registerEditorAction(C),a.registerEditorAction(b),a.registerEditorAction(x),a.registerEditorAction(I),a.registerEditorAction(M),a.registerEditorAction(k),a.registerEditorAction(T),a.registerEditorAction(R),a.registerEditorAction(S),a.registerEditorAction(w)})),\ndefine(n[581],i([0,1,6,52,50,53,4,2,71,117,165,461,18,51,20,14,540,5,318]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var b=n.$,S=function(e){function t(t,n,i,o){var r=e.call(this)||this;return r.editor=t,r.renderDisposeables=r._register(new l.DisposableStore),r.visible=!1,r.announcedLabel=null,r.allowEditorOverflow=!0,r.markdownRenderer=r._register(new d.MarkdownRenderer(t,o,i)),r.model=r._register(new y.ParameterHintsModel(t)),r.keyVisible=c.Context.Visible.bindTo(n),r.keyMultipleSignatures=c.Context.MultipleSignatures.bindTo(n),r._register(r.model.onChangedHints((function(e){e?(r.show(),r.render(e)):r.hide()}))),r}return r(t,e),t.prototype.createParamaterHintDOMNodes=function(){var e=this,t=b(\".editor-widget.parameter-hints-widget\"),o=n.append(t,b(\".wrapper\"));o.tabIndex=-1\n;var r=n.append(o,b(\".controls\")),l=n.append(r,b(\".button.codicon.codicon-chevron-up\")),u=n.append(r,b(\".overloads\")),d=n.append(r,b(\".button.codicon.codicon-chevron-down\")),c=i.stop(i.domEvent(l,\"click\"));this._register(c(this.previous,this));var h=i.stop(i.domEvent(d,\"click\"));this._register(h(this.next,this));var p=b(\".body\"),g=new s.DomScrollableElement(p,{});this._register(g),o.appendChild(g.getDomNode());var f=n.append(p,b(\".signature\")),m=n.append(p,b(\".docs\"));t.style.userSelect=\"text\",this.domNodes={element:t,signature:f,overloads:u,docs:m,scrollbar:g},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((function(t){e.visible&&e.editor.layoutContentWidget(e)})));var v=function(){if(e.domNodes){var t=e.editor.getOption(34);e.domNodes.element.style.fontSize=t.fontSize+\"px\"}};v(),this._register(a.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)})).on(v,null)),\nthis._register(this.editor.onDidLayoutChange((function(t){return e.updateMaxHeight()}))),this.updateMaxHeight()},t.prototype.show=function(){var e=this;this.visible||(this.domNodes||this.createParamaterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((function(){e.domNodes&&n.addClass(e.domNodes.element,\"visible\")}),100),this.editor.layoutContentWidget(this))},t.prototype.hide=function(){this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes&&n.removeClass(this.domNodes.element,\"visible\"),this.editor.layoutContentWidget(this))},t.prototype.getPosition=function(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null},t.prototype.render=function(e){if(this.domNodes){var t=e.signatures.length>1;n.toggleClass(this.domNodes.element,\"multiple\",t),this.keyMultipleSignatures.set(t),this.domNodes.signature.innerHTML=\"\",this.domNodes.docs.innerHTML=\"\";var i=e.signatures[e.activeSignature];if(i){\nvar r=n.append(this.domNodes.signature,b(\".code\")),s=i.parameters.length>0,a=this.editor.getOption(34);if(r.style.fontSize=a.fontSize+\"px\",r.style.fontFamily=a.fontFamily,s)this.renderParameters(r,i,e.activeParameter);else n.append(r,b(\"span\")).textContent=i.label;this.renderDisposeables.clear();var l=i.parameters[e.activeParameter];if(l&&l.documentation){var u=b(\"span.documentation\");if(\"string\"==typeof l.documentation)u.textContent=l.documentation;else{var d=this.markdownRenderer.render(l.documentation);n.addClass(d.element,\"markdown-docs\"),this.renderDisposeables.add(d),u.appendChild(d.element)}n.append(this.domNodes.docs,b(\"p\",{},u))}if(void 0===i.documentation);else if(\"string\"==typeof i.documentation)n.append(this.domNodes.docs,b(\"p\",{},i.documentation));else{d=this.markdownRenderer.render(i.documentation);n.addClass(d.element,\"markdown-docs\"),this.renderDisposeables.add(d),n.append(this.domNodes.docs,d.element)}var c=this.hasDocs(i,l);if(n.toggleClass(this.domNodes.signature,\"has-docs\",c),\nn.toggleClass(this.domNodes.docs,\"empty\",!c),this.domNodes.overloads.textContent=C.pad(e.activeSignature+1,e.signatures.length.toString().length)+\"/\"+e.signatures.length,l){var h=this.getParameterLabel(i,e.activeParameter);this.announcedLabel!==h&&(o.alert(p.localize(0,null,h)),this.announcedLabel=h)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}}},t.prototype.hasDocs=function(e,t){return!!(t&&\"string\"==typeof t.documentation&&t.documentation.length>0)||(!!(t&&\"object\"==typeof t.documentation&&t.documentation.value.length>0)||(\"string\"==typeof e.documentation&&e.documentation.length>0||\"object\"==typeof e.documentation&&e.documentation.value.length>0))},t.prototype.renderParameters=function(e,t,i){var o=this.getParameterLabelOffsets(t,i),r=o[0],s=o[1],a=document.createElement(\"span\");a.textContent=t.label.substring(0,r);var l=document.createElement(\"span\");l.textContent=t.label.substring(r,s),l.className=\"parameter active\";var u=document.createElement(\"span\")\n;u.textContent=t.label.substring(s),n.append(e,a,l,u)},t.prototype.getParameterLabel=function(e,t){var n=e.parameters[t];return\"string\"==typeof n.label?n.label:e.label.substring(n.label[0],n.label[1])},t.prototype.getParameterLabelOffsets=function(e,t){var n=e.parameters[t];if(n){if(Array.isArray(n.label))return n.label;var i=e.label.lastIndexOf(n.label);return i>=0?[i,i+n.label.length]:[0,0]}return[0,0]},t.prototype.next=function(){this.editor.focus(),this.model.next()},t.prototype.previous=function(){this.editor.focus(),this.model.previous()},t.prototype.cancel=function(){this.model.cancel()},t.prototype.getDomNode=function(){return this.domNodes||this.createParamaterHintDOMNodes(),this.domNodes.element},t.prototype.getId=function(){return t.ID},t.prototype.trigger=function(e){this.model.trigger(e,0)},t.prototype.updateMaxHeight=function(){if(this.domNodes){var e=Math.max(this.editor.getLayoutInfo().height/4,250)+\"px\";this.domNodes.element.style.maxHeight=e\n;var t=this.domNodes.element.getElementsByClassName(\"wrapper\");t.length&&(t[0].style.maxHeight=e)}},t.ID=\"editor.widget.parameterHintsWidget\",t=h([g(1,f.IContextKeyService),g(2,m.IOpenerService),g(3,u.IModeService)],t)}(l.Disposable);t.ParameterHintsWidget=S,_.registerThemingParticipant((function(e,t){var n=e.getColor(v.editorHoverBorder);if(n){var i=e.type===_.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .parameter-hints-widget { border: \"+i+\"px solid \"+n+\"; }\"),t.addRule(\".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid \"+n.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid \"+n.transparent(.5)+\"; }\")}var o=e.getColor(v.editorHoverBackground);o&&t.addRule(\".monaco-editor .parameter-hints-widget { background-color: \"+o+\"; }\");var r=e.getColor(v.textLinkForeground);r&&t.addRule(\".monaco-editor .parameter-hints-widget a { color: \"+r+\"; }\");var s=e.getColor(v.editorHoverForeground)\n;s&&t.addRule(\".monaco-editor .parameter-hints-widget { color: \"+s+\"; }\");var a=e.getColor(v.textCodeBlockBackground);a&&t.addRule(\".monaco-editor .parameter-hints-widget code { background-color: \"+a+\"; }\")}))})),define(n[582],i([0,1,460,2,11,23,18,12,581,165,17]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n){var i=e.call(this)||this;return i.editor=t,i.widget=i._register(n.createInstance(u.ParameterHintsWidget,i.editor)),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.cancel=function(){this.widget.cancel()},t.prototype.previous=function(){this.widget.previous()},t.prototype.next=function(){this.widget.next()},t.prototype.trigger=function(e){this.widget.trigger(e)},t.ID=\"editor.controller.parameterHints\",t=h([g(1,o.IInstantiationService)],t)}(i.Disposable),f=function(e){function t(){return e.call(this,{id:\"editor.action.triggerParameterHints\",label:n.localize(0,null),\nalias:\"Trigger Parameter Hints\",precondition:s.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=p.get(t);n&&n.trigger({triggerKind:c.SignatureHelpTriggerKind.Invoke})},t}(l.EditorAction);t.TriggerParameterHintsAction=f,l.registerEditorContribution(p.ID,p),l.registerEditorAction(f);var m=l.EditorCommand.bindToContribution(p.get);l.registerEditorCommand(new m({id:\"closeParameterHints\",precondition:d.Context.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:9,secondary:[1033]}})),l.registerEditorCommand(new m({id:\"showPrevParameterHint\",precondition:a.ContextKeyExpr.and(d.Context.Visible,d.Context.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),l.registerEditorCommand(new m({\nid:\"showNextParameterHint\",precondition:a.ContextKeyExpr.and(d.Context.Visible,d.Context.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:175,kbExpr:s.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))})),define(n[123],i([0,1,6,70,55,27,4,31,5,32,167,493,462,18,11,83,12,20,319]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C){\"use strict\";var b;Object.defineProperty(t,\"__esModule\",{value:!0}),t.IPeekViewService=v.createDecorator(\"IPeekViewService\"),_.registerSingleton(t.IPeekViewService,function(){function e(){this._widgets=new Map}return e.prototype.addExclusiveWidget=function(e,t){var n=this,i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((function(){var i=n._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),n._widgets.delete(e))}))})},e}()),function(e){e.inPeekEditor=new m.RawContextKey(\"inReferenceSearchEditor\",!0),e.notInPeekEditor=e.inPeekEditor.toNegated()\n}(b=t.PeekContext||(t.PeekContext={}));var S=function(){function e(e,t){e instanceof c.EmbeddedCodeEditorWidget&&b.inPeekEditor.bindTo(t)}return e.prototype.dispose=function(){},e.ID=\"editor.contrib.referenceController\",e=h([g(1,m.IContextKeyService)],e)}();y.registerEditorContribution(S.ID,S),t.getOuterEditor=function(e){var t=e.get(d.ICodeEditorService).getFocusedCodeEditor();return t instanceof c.EmbeddedCodeEditorWidget?t.getParentEditor():t};var w={headerBackgroundColor:s.Color.white,primaryHeadingColor:s.Color.fromHex(\"#333333\"),secondaryHeadingColor:s.Color.fromHex(\"#6c6c6cb3\")},E=function(e){function t(t,n){void 0===n&&(n={});var i=e.call(this,t,n)||this;return i._onDidClose=new a.Emitter,i.onDidClose=i._onDidClose.event,l.mixin(i.options,w,!1),i}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._onDidClose.fire(this)},t.prototype.style=function(t){var n=this.options;t.headerBackgroundColor&&(n.headerBackgroundColor=t.headerBackgroundColor),\nt.primaryHeadingColor&&(n.primaryHeadingColor=t.primaryHeadingColor),t.secondaryHeadingColor&&(n.secondaryHeadingColor=t.secondaryHeadingColor),e.prototype.style.call(this,t)},t.prototype._applyStyles=function(){e.prototype._applyStyles.call(this);var t=this.options;this._headElement&&t.headerBackgroundColor&&(this._headElement.style.backgroundColor=t.headerBackgroundColor.toString()),this._primaryHeading&&t.primaryHeadingColor&&(this._primaryHeading.style.color=t.primaryHeadingColor.toString()),this._secondaryHeading&&t.secondaryHeadingColor&&(this._secondaryHeading.style.color=t.secondaryHeadingColor.toString()),this._bodyElement&&t.frameColor&&(this._bodyElement.style.borderColor=t.frameColor.toString())},t.prototype._fillContainer=function(e){this.setCssClass(\"peekview-widget\"),this._headElement=n.$(\".head\"),this._bodyElement=n.$(\".body\"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)},t.prototype._fillHead=function(e){\nvar t=this,r=n.$(\".peekview-title\");n.append(this._headElement,r),n.addStandardDisposableListener(r,\"click\",(function(e){return t._onTitleClick(e)})),this._fillTitleIcon(r),this._primaryHeading=n.$(\"span.filename\"),this._secondaryHeading=n.$(\"span.dirname\"),this._metaHeading=n.$(\"span.meta\"),n.append(r,this._primaryHeading,this._secondaryHeading,this._metaHeading);var s=n.$(\".peekview-actions\");n.append(this._headElement,s);var a=this._getActionBarOptions();this._actionbarWidget=new i.ActionBar(s,a),this._disposables.add(this._actionbarWidget),this._actionbarWidget.push(new o.Action(\"peekview.close\",f.localize(0,null),\"codicon-close\",!0,(function(){return t.dispose(),Promise.resolve()})),{label:!1,icon:!0})},t.prototype._fillTitleIcon=function(e){},t.prototype._getActionBarOptions=function(){return{}},t.prototype._onTitleClick=function(e){},t.prototype.setTitle=function(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerHTML=u.escape(e),\nthis._primaryHeading.setAttribute(\"aria-label\",e),t?this._secondaryHeading.innerHTML=u.escape(t):n.clearNode(this._secondaryHeading))},t.prototype.setMetaTitle=function(e){this._metaHeading&&(e?(this._metaHeading.innerHTML=u.escape(e),n.show(this._metaHeading)):n.hide(this._metaHeading))},t.prototype._doLayout=function(e,t){if(!this._isShowing&&e<0)this.dispose();else{var n=Math.ceil(1.2*this.editor.getOption(49)),i=Math.round(e-(n+2));this._doLayoutHead(n,t),this._doLayoutBody(i,t)}},t.prototype._doLayoutHead=function(e,t){this._headElement&&(this._headElement.style.height=e+\"px\",this._headElement.style.lineHeight=this._headElement.style.height)},t.prototype._doLayoutBody=function(e,t){this._bodyElement&&(this._bodyElement.style.height=e+\"px\")},t}(p.ZoneWidget);t.PeekViewWidget=E,t.peekViewTitleBackground=C.registerColor(\"peekViewTitle.background\",{dark:\"#1E1E1E\",light:\"#FFFFFF\",hc:\"#0C141F\"},f.localize(1,null)),t.peekViewTitleForeground=C.registerColor(\"peekViewTitleLabel.foreground\",{dark:\"#FFFFFF\",\nlight:\"#333333\",hc:\"#FFFFFF\"},f.localize(2,null)),t.peekViewTitleInfoForeground=C.registerColor(\"peekViewTitleDescription.foreground\",{dark:\"#ccccccb3\",light:\"#616161e6\",hc:\"#FFFFFF99\"},f.localize(3,null)),t.peekViewBorder=C.registerColor(\"peekView.border\",{dark:\"#007acc\",light:\"#007acc\",hc:C.contrastBorder},f.localize(4,null)),t.peekViewResultsBackground=C.registerColor(\"peekViewResult.background\",{dark:\"#252526\",light:\"#F3F3F3\",hc:s.Color.black},f.localize(5,null)),t.peekViewResultsMatchForeground=C.registerColor(\"peekViewResult.lineForeground\",{dark:\"#bbbbbb\",light:\"#646465\",hc:s.Color.white},f.localize(6,null)),t.peekViewResultsFileForeground=C.registerColor(\"peekViewResult.fileForeground\",{dark:s.Color.white,light:\"#1E1E1E\",hc:s.Color.white},f.localize(7,null)),t.peekViewResultsSelectionBackground=C.registerColor(\"peekViewResult.selectionBackground\",{dark:\"#3399ff33\",light:\"#3399ff33\",hc:null},f.localize(8,null)),t.peekViewResultsSelectionForeground=C.registerColor(\"peekViewResult.selectionForeground\",{\ndark:s.Color.white,light:\"#6C6C6C\",hc:s.Color.white},f.localize(9,null)),t.peekViewEditorBackground=C.registerColor(\"peekViewEditor.background\",{dark:\"#001F33\",light:\"#F2F8FC\",hc:s.Color.black},f.localize(10,null)),t.peekViewEditorGutterBackground=C.registerColor(\"peekViewEditorGutter.background\",{dark:t.peekViewEditorBackground,light:t.peekViewEditorBackground,hc:t.peekViewEditorBackground},f.localize(11,null)),t.peekViewResultsMatchHighlight=C.registerColor(\"peekViewResult.matchHighlightBackground\",{dark:\"#ea5c004d\",light:\"#ea5c004d\",hc:null},f.localize(12,null)),t.peekViewEditorMatchHighlight=C.registerColor(\"peekViewEditor.matchHighlightBackground\",{dark:\"#ff8f0099\",light:\"#f5d802de\",hc:null},f.localize(13,null)),t.peekViewEditorMatchHighlightBorder=C.registerColor(\"peekViewEditor.matchHighlightBorder\",{dark:null,light:null,hc:C.activeContrastBorder},f.localize(14,null))})),define(n[583],i([0,1,2,13,3,464,18,20,14,34,6,320]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.CONTEXT_RENAME_INPUT_VISIBLE=new s.RawContextKey(\"renameInputVisible\",!1);var c=function(){function e(e,i,o,r,s){var a=this;this._editor=e,this._acceptKeybindings=i,this._themeService=o,this._keybindingService=r,this._disposables=new n.DisposableStore,this.allowEditorOverflow=!0,this._visibleContextKey=t.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(s),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(34)&&a._updateFont()}))),this._disposables.add(o.onThemeChange(this._updateStyles,this))}return e.prototype.dispose=function(){this._disposables.dispose(),this._editor.removeContentWidget(this)},e.prototype.getId=function(){return\"__renameInputWidget\"},e.prototype.getDomNode=function(){var e=this;if(!this._domNode){this._domNode=document.createElement(\"div\"),this._domNode.className=\"monaco-editor rename-box\",this._input=document.createElement(\"input\"),this._input.className=\"rename-input\",\nthis._input.type=\"text\",this._input.setAttribute(\"aria-label\",r.localize(0,null)),this._domNode.appendChild(this._input),this._label=document.createElement(\"div\"),this._label.className=\"rename-label\",this._domNode.appendChild(this._label);var t=function(){var t,n,i=e._acceptKeybindings,o=i[0],s=i[1];e._keybindingService.lookupKeybinding(o),e._label.innerText=r.localize(1,null,null===(t=e._keybindingService.lookupKeybinding(o))||void 0===t?void 0:t.getLabel(),null===(n=e._keybindingService.lookupKeybinding(s))||void 0===n?void 0:n.getLabel())};t(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(t)),this._updateFont(),this._updateStyles(this._themeService.getTheme())}return this._domNode},e.prototype._updateStyles=function(e){var t,n,i,o;if(this._input&&this._domNode){var r=e.getColor(a.widgetShadow);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(a.editorWidgetBackground))&&void 0!==t?t:\"\"),this._domNode.style.boxShadow=r?\" 0 2px 8px \"+r:\"\",\nthis._domNode.style.color=String(null!==(n=e.getColor(a.inputForeground))&&void 0!==n?n:\"\"),this._input.style.backgroundColor=String(null!==(i=e.getColor(a.inputBackground))&&void 0!==i?i:\"\");var s=e.getColor(a.inputBorder);this._input.style.borderWidth=s?\"1px\":\"0px\",this._input.style.borderStyle=s?\"solid\":\"none\",this._input.style.borderColor=null!==(o=null==s?void 0:s.toString())&&void 0!==o?o:\"none\"}},e.prototype._updateFont=function(){if(this._input&&this._label){var e=this._editor.getOption(34);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=e.fontSize+\"px\",this._label.style.fontSize=.8*e.fontSize+\"px\"}},e.prototype.getPosition=function(){return this._visible?{position:this._position,preference:[2,1]}:null},e.prototype.acceptInput=function(e){this._currentAcceptInput&&this._currentAcceptInput(e)},e.prototype.cancelInput=function(e){this._currentCancelInput&&this._currentCancelInput(e)},e.prototype.getInput=function(e,t,r,s,a){var l=this\n;d.toggleClass(this._domNode,\"preview\",a),this._position=new i.Position(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute(\"selectionStart\",r.toString()),this._input.setAttribute(\"selectionEnd\",s.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);var u=new n.DisposableStore;return new Promise((function(n){l._currentCancelInput=function(e){return l._currentAcceptInput=void 0,l._currentCancelInput=void 0,n(e),!0},l._currentAcceptInput=function(e){0!==l._input.value.trim().length&&l._input.value!==t?(l._currentAcceptInput=void 0,l._currentCancelInput=void 0,n({newName:l._input.value,wantsPreview:a&&e})):l.cancelInput(!0)};u.add(l._editor.onDidChangeCursorSelection((function(){var t=l._editor.getPosition();t&&o.Range.containsPosition(e,t)||l.cancelInput(!0)}))),u.add(l._editor.onDidBlurEditorWidget((function(){return l.cancelInput(!1)}))),l._show()})).finally((function(){u.dispose(),l._hide()}))},e.prototype._show=function(){var e=this\n;this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((function(){e._input.focus(),e._input.setSelectionRange(parseInt(e._input.getAttribute(\"selectionStart\")),parseInt(e._input.getAttribute(\"selectionEnd\")))}),100)},e.prototype._hide=function(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)},e=h([g(2,l.IThemeService),g(3,u.IKeybindingService),g(4,s.IContextKeyService)],e)}();t.RenameInputField=c})),define(n[584],i([0,1,463,10,18,73,12,23,583,17,13,50,3,122,67,35,156,25,32,26,2,15,21,95,11,42,85,114]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var R=function(){function e(e,t){this.model=e,this.position=t,this._providers=p.RenameProviderRegistry.ordered(e)}return e.prototype.hasProvider=function(){return this._providers.length>0},\ne.prototype.resolveRenameLocation=function(e){return d(this,void 0,void 0,(function(){var t,n,i,o;return c(this,(function(r){switch(r.label){case 0:return(t=this._providers[0])?t.resolveRenameLocation?(i=N.withNullAsUndefined,[4,t.resolveRenameLocation(this.model,this.position,e)]):[3,2]:[2,void 0];case 1:n=i.apply(void 0,[r.sent()]),r.label=2;case 2:return!n&&(o=this.model.getWordAtPosition(this.position))?[2,{range:new v.Range(this.position.lineNumber,o.startColumn,this.position.lineNumber,o.endColumn),text:o.word}]:[2,n]}}))}))},e.prototype.provideRenameEdits=function(e,t,i,o){return d(this,void 0,void 0,(function(){var r,s;return c(this,(function(a){switch(a.label){case 0:return(r=this._providers[t])?[4,r.provideRenameEdits(this.model,this.position,e,o)]:[2,{edits:[],rejectReason:i.join(\"\\n\")}];case 1:return(s=a.sent())?s.rejectReason?[2,this.provideRenameEdits(e,t+1,i.concat(s.rejectReason),o)]:[2,s]:[2,this.provideRenameEdits(e,t+1,i.concat(n.localize(0,null)),o)]}}))}))},e}();function O(e,t,n){\nreturn d(this,void 0,void 0,(function(){return c(this,(function(i){return[2,new R(e,t).provideRenameEdits(n,0,[],E.CancellationToken.None)]}))}))}t.rename=O;var P=function(){function e(e,t,n,i,o,r,s){var a=this;this.editor=e,this._instaService=t,this._notificationService=n,this._bulkEditService=i,this._progressService=o,this._logService=r,this._configService=s,this._dispoableStore=new L.DisposableStore,this._cts=new E.CancellationTokenSource,this._renameInputField=this._dispoableStore.add(new D.IdleValue((function(){return a._dispoableStore.add(a._instaService.createInstance(u.RenameInputField,a.editor,[\"acceptRenameInput\",\"acceptRenameInputWithPreview\"]))})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._dispoableStore.dispose(),this._cts.dispose(!0)},e.prototype.run=function(){return d(this,void 0,void 0,(function(){var e,t,i,o,r,s,a,l,u,h,p,g=this;return c(this,(function(f){switch(f.label){case 0:if(this._cts.dispose(!0),\n!this.editor.hasModel())return[2,void 0];if(e=this.editor.getPosition(),!(t=new R(this.editor.getModel(),e)).hasProvider())return[2,void 0];this._cts=new y.EditorStateCancellationTokenSource(this.editor,5),f.label=1;case 1:return f.trys.push([1,3,,4]),o=t.resolveRenameLocation(this._cts.token),this._progressService.showWhile(o,250),[4,o];case 2:return i=f.sent(),[3,4];case 3:return r=f.sent(),_.MessageController.get(this.editor).showMessage(r||n.localize(1,null),e),[2,void 0];case 4:return i?i.rejectReason?(_.MessageController.get(this.editor).showMessage(i.rejectReason,e),[2,void 0]):this._cts.token.isCancellationRequested?[2,void 0]:(s=this.editor.getSelection(),a=0,l=i.text.length,v.Range.isEmpty(s)||v.Range.spansMultipleLines(s)||!v.Range.containsRange(i.range,s)||(a=Math.max(0,s.startColumn-i.range.startColumn),l=Math.min(i.range.endColumn,s.endColumn)-i.range.startColumn),u=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,\"editor.rename.enablePreview\"),\n[4,this._renameInputField.getValue().getInput(i.range,i.text,a,l,u)]):[2,void 0];case 5:return\"boolean\"==typeof(h=f.sent())?(h&&this.editor.focus(),[2,void 0]):(this.editor.focus(),p=D.raceCancellation(t.provideRenameEdits(h.newName,0,[],this._cts.token),this._cts.token).then((function(e){return d(g,void 0,void 0,(function(){var t=this;return c(this,(function(o){return e&&this.editor.hasModel()?e.rejectReason?(this._notificationService.info(e.rejectReason),[2]):(this._bulkEditService.apply(e,{editor:this.editor,showPreview:h.wantsPreview,label:n.localize(2,null,null==i?void 0:i.text)}).then((function(e){e.ariaSummary&&m.alert(n.localize(3,null,i.text,h.newName,e.ariaSummary))})).catch((function(e){t._notificationService.error(n.localize(4,null)),t._logService.error(e)})),[2]):[2]}))}))}),(function(e){g._notificationService.error(n.localize(5,null)),g._logService.error(e)})),this._progressService.showWhile(p,250),[2,p])}}))}))},e.prototype.acceptRenameInput=function(e){\nthis._renameInputField.getValue().acceptInput(e)},e.prototype.cancelRenameInput=function(){this._renameInputField.getValue().cancelInput(!0)},e.ID=\"editor.contrib.renameController\",e=h([g(1,I.IInstantiationService),g(2,C.INotificationService),g(3,b.IBulkEditService),g(4,s.IEditorProgressService),g(5,x.ILogService),g(6,T.ITextResourceConfigurationService)],e)}(),A=function(e){function t(){return e.call(this,{id:\"editor.action.rename\",label:n.localize(6,null),alias:\"Rename Symbol\",precondition:o.ContextKeyExpr.and(l.EditorContextKeys.writable,l.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:l.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.1}})||this}return r(t,e),t.prototype.runCommand=function(t,n){var o=this,r=t.get(w.ICodeEditorService),s=Array.isArray(n)&&n||[void 0,void 0],a=s[0],l=s[1];return S.URI.isUri(a)&&f.Position.isIPosition(l)?r.openCodeEditor({resource:a},r.getActiveCodeEditor()).then((function(e){e&&(e.setPosition(l),\ne.invokeWithinContext((function(t){return o.reportTelemetry(t,e),o.run(t,e)})))}),i.onUnexpectedError):e.prototype.runCommand.call(this,t,n)},t.prototype.run=function(e,t){var n=P.get(t);return n?n.run():Promise.resolve()},t}(a.EditorAction);t.RenameAction=A,a.registerEditorContribution(P.ID,P),a.registerEditorAction(A);var F=a.EditorCommand.bindToContribution(P.get);a.registerEditorCommand(new F({id:\"acceptRenameInput\",precondition:u.CONTEXT_RENAME_INPUT_VISIBLE,handler:function(e){return e.acceptRenameInput(!1)},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:3}})),a.registerEditorCommand(new F({id:\"acceptRenameInputWithPreview\",precondition:o.ContextKeyExpr.and(u.CONTEXT_RENAME_INPUT_VISIBLE,o.ContextKeyExpr.has(\"config.editor.rename.enablePreview\")),handler:function(e){return e.acceptRenameInput(!0)},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:1027}})),a.registerEditorCommand(new F({id:\"cancelRenameInput\",precondition:u.CONTEXT_RENAME_INPUT_VISIBLE,handler:function(e){\nreturn e.cancelRenameInput()},kbOpts:{weight:199,kbExpr:l.EditorContextKeys.focus,primary:9,secondary:[1033]}})),a.registerDefaultLanguageCommand(\"_executeDocumentRenameProvider\",(function(e,t,n){var o=n.newName;if(\"string\"!=typeof o)throw i.illegalArgument(\"newName\");return O(e,t,o)})),M.Registry.as(k.Extensions.Configuration).registerConfiguration({id:\"editor\",properties:{\"editor.rename.enablePreview\":{scope:5,description:n.localize(7,null),default:!0,type:\"boolean\"}}})})),define(n[585],i([0,1,468,61,5,4,10,2,6,153,53,34,18,120,96,97,14,20,74,117,71,51,15,17,139,511,49,25,11,208,75,19,13,322,323,183,231]),(function(e,t,n,i,o,r,s,a,u,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.editorSuggestWidgetBackground=S.registerColor(\"editorSuggestWidget.background\",{dark:S.editorWidgetBackground,light:S.editorWidgetBackground,hc:S.editorWidgetBackground},n.localize(0,null)),t.editorSuggestWidgetBorder=S.registerColor(\"editorSuggestWidget.border\",{\ndark:S.editorWidgetBorder,light:S.editorWidgetBorder,hc:S.editorWidgetBorder},n.localize(1,null)),t.editorSuggestWidgetForeground=S.registerColor(\"editorSuggestWidget.foreground\",{dark:S.editorForeground,light:S.editorForeground,hc:S.editorForeground},n.localize(2,null)),t.editorSuggestWidgetSelectedBackground=S.registerColor(\"editorSuggestWidget.selectedBackground\",{dark:S.listFocusBackground,light:S.listFocusBackground,hc:S.listFocusBackground},n.localize(3,null)),t.editorSuggestWidgetHighlightForeground=S.registerColor(\"editorSuggestWidget.highlightForeground\",{dark:S.listHighlightForeground,light:S.listHighlightForeground,hc:S.listHighlightForeground},n.localize(4,null));var W=/^(#([\\da-f]{3}){1,2}|(rgb|hsl)a\\(\\s*(\\d{1,3}%?\\s*,\\s*){3}(1|0?\\.\\d+)\\)|(rgb|hsl)\\(\\s*\\d{1,3}%?(\\s*,\\s*\\d{1,3}%?){2}\\s*\\))$/i;function B(e){if(!e)return!1;var t=e.completion;return!!t.documentation||t.detail&&t.detail!==t.label}function V(e){return\"suggest-aria-id:\"+e}var z=function(){function e(e,t,n,i,o,r){this.widget=e,\nthis.editor=t,this.triggerKeybindingLabel=n,this._modelService=i,this._modeService=o,this._themeService=r}return Object.defineProperty(e.prototype,\"templateId\",{get:function(){return\"suggestion\"},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){var t=this,i=Object.create(null);i.disposables=new a.DisposableStore,i.root=e,u.addClass(i.root,\"show-file-icons\"),i.icon=u.append(e,u.$(\".icon\")),i.colorspan=u.append(i.icon,u.$(\"span.colorspan\"));var o=u.append(e,u.$(\".contents\")),s=u.append(o,u.$(\".main\"));i.left=u.append(s,u.$(\"span.left\")),i.right=u.append(s,u.$(\"span.right\")),i.iconContainer=u.append(i.left,u.$(\".icon-label.codicon\")),i.iconLabel=new I.IconLabel(i.left,{supportHighlights:!0,supportCodicons:!0}),i.disposables.add(i.iconLabel),i.signatureLabel=u.append(i.left,u.$(\"span.signature-label\")),i.qualifierLabel=u.append(i.left,u.$(\"span.qualifier-label\")),i.detailsLabel=u.append(i.right,u.$(\"span.details-label\")),i.readMore=u.append(i.right,u.$(\"span.readMore.codicon.codicon-info\")),\ni.readMore.title=n.localize(5,null,this.triggerKeybindingLabel);var l=function(){var e=t.editor.getOptions(),n=e.get(34),o=n.fontFamily,r=n.fontFeatureSettings,a=e.get(90)||n.fontSize,l=e.get(91)||n.lineHeight,u=n.fontWeight,d=a+\"px\",c=l+\"px\";i.root.style.fontSize=d,i.root.style.fontWeight=u,s.style.fontFamily=o,s.style.fontFeatureSettings=r,s.style.lineHeight=c,i.icon.style.height=c,i.icon.style.width=c,i.readMore.style.height=c,i.readMore.style.width=c};return l(),i.disposables.add(r.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)||e.hasChanged(90)||e.hasChanged(91)})).on(l,null)),i},e.prototype.renderElement=function(e,t,n){var o=this,r=n,s=e.completion,a=\"string\"==typeof s.label?s.label:s.label.name;r.root.id=V(t),r.icon.className=\"icon \"+x.completionKindToCssClass(s.kind),r.colorspan.style.backgroundColor=\"\";var l,d,c,h={labelEscapeNewLines:!0,matches:i.createMatches(e.score)},p=[];if(19===s.kind&&(d=p,\n(c=\"string\"==typeof(l=e).completion.label?l.completion.label:l.completion.label.name).match(W)?(d[0]=c,1):\"string\"==typeof l.completion.documentation&&l.completion.documentation.match(W)&&(d[0]=l.completion.documentation,1)))r.icon.className=\"icon customcolor\",r.iconContainer.className=\"icon hide\",r.colorspan.style.backgroundColor=p[0];else if(20===s.kind&&this._themeService.getIconTheme().hasFileIcons){r.icon.className=\"icon hide\",r.iconContainer.className=\"icon hide\";var g=M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:a}),O.FileKind.FILE),f=M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:s.detail}),O.FileKind.FILE);h.extraClasses=g.length>f.length?g:f}else 23===s.kind&&this._themeService.getIconTheme().hasFolderIcons?(r.icon.className=\"icon hide\",r.iconContainer.className=\"icon hide\",h.extraClasses=A.flatten([M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:a\n}),O.FileKind.FOLDER),M.getIconClasses(this._modelService,this._modeService,T.URI.from({scheme:\"fake\",path:s.detail}),O.FileKind.FOLDER)])):(r.icon.className=\"icon hide\",r.iconContainer.className=\"\",u.addClasses(r.iconContainer,\"suggest-icon codicon codicon-symbol-\"+x.completionKindToCssClass(s.kind)));s.tags&&s.tags.indexOf(1)>=0&&(h.extraClasses=(h.extraClasses||[]).concat([\"deprecated\"]),h.matches=[]),r.iconLabel.setLabel(a,void 0,h),\"string\"==typeof s.label?(r.signatureLabel.textContent=\"\",r.qualifierLabel.textContent=\"\",r.detailsLabel.textContent=(s.detail||\"\").replace(/\\n.*$/m,\"\"),u.removeClass(r.right,\"always-show-details\")):(r.signatureLabel.textContent=(s.label.signature||\"\").replace(/\\n.*$/m,\"\"),r.qualifierLabel.textContent=(s.label.qualifier||\"\").replace(/\\n.*$/m,\"\"),r.detailsLabel.textContent=(s.label.type||\"\").replace(/\\n.*$/m,\"\"),u.addClass(r.right,\"always-show-details\")),B(e)?(u.addClass(r.right,\"can-expand-details\"),u.show(r.readMore),r.readMore.onmousedown=function(e){e.stopPropagation(),\ne.preventDefault()},r.readMore.onclick=function(e){e.stopPropagation(),e.preventDefault(),o.widget.toggleDetails()}):(u.removeClass(r.right,\"can-expand-details\"),u.hide(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)},e.prototype.disposeTemplate=function(e){e.disposables.dispose()},e=h([g(3,k.IModelService),g(4,L.IModeService),g(5,b.IThemeService)],e)}(),H=function(){function e(e,t,i,o,s){var l=this;this.widget=t,this.editor=i,this.markdownRenderer=o,this.kbToggleDetails=s,this.borderWidth=1,this.disposables=new a.DisposableStore,this.el=u.append(e,u.$(\".details\")),this.disposables.add(a.toDisposable((function(){return e.removeChild(l.el)}))),this.body=u.$(\".body\"),this.scrollbar=new f.DomScrollableElement(this.body,{}),u.append(this.el,this.scrollbar.getDomNode()),this.disposables.add(this.scrollbar),this.header=u.append(this.body,u.$(\".header\")),this.close=u.append(this.header,u.$(\"span.codicon.codicon-close\")),this.close.title=n.localize(6,null,this.kbToggleDetails),\nthis.type=u.append(this.header,u.$(\"p.type\")),this.docs=u.append(this.body,u.$(\"p.docs\")),this.configureFont(),r.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((function(e){return e.hasChanged(34)})).on(this.configureFont,this,this.disposables),o.onDidRenderCodeBlock((function(){return l.scrollbar.scanDomNode()}),this,this.disposables)}return Object.defineProperty(e.prototype,\"element\",{get:function(){return this.el},enumerable:!0,configurable:!0}),e.prototype.renderLoading=function(){this.type.textContent=n.localize(7,null),this.docs.textContent=\"\"},e.prototype.renderItem=function(e,t){var n=this;this.renderDisposeable=a.dispose(this.renderDisposeable);var i=e.completion,o=i.documentation,r=i.detail;if(t){var s=\"\";s+=\"score: \"+e.score[0]+(e.word?\", compared '\"+(e.completion.filterText&&e.completion.filterText+\" (filterText)\"||e.completion.label)+\"' with '\"+e.word+\"'\":\" (no prefix)\")+\"\\n\",s+=\"distance: \"+e.distance+\", see localityBonus-setting\\n\",\ns+=\"index: \"+e.idx+\", based on \"+(e.completion.sortText&&'sortText: \"'+e.completion.sortText+'\"'||\"label\")+\"\\n\",o=(new P.MarkdownString).appendCodeblock(\"empty\",s),r=\"Provider: \"+e.provider._debugDisplayName}if(!t&&!B(e))return this.type.textContent=\"\",this.docs.textContent=\"\",void u.addClass(this.el,\"no-docs\");if(u.removeClass(this.el,\"no-docs\"),\"string\"==typeof o)u.removeClass(this.docs,\"markdown-docs\"),this.docs.textContent=o;else{u.addClass(this.docs,\"markdown-docs\"),this.docs.innerHTML=\"\";var l=this.markdownRenderer.render(o);this.renderDisposeable=l,this.docs.appendChild(l.element)}r?(this.type.innerText=r,u.show(this.type)):(this.type.innerText=\"\",u.hide(this.type)),this.el.style.height=this.header.offsetHeight+this.docs.offsetHeight+2*this.borderWidth+\"px\",this.el.style.userSelect=\"text\",this.el.tabIndex=-1,this.close.onmousedown=function(e){e.preventDefault(),e.stopPropagation()},this.close.onclick=function(e){e.preventDefault(),e.stopPropagation(),n.widget.toggleDetails()},this.body.scrollTop=0,\nthis.scrollbar.scanDomNode()},e.prototype.scrollDown=function(e){void 0===e&&(e=8),this.body.scrollTop+=e},e.prototype.scrollUp=function(e){void 0===e&&(e=8),this.body.scrollTop-=e},e.prototype.scrollTop=function(){this.body.scrollTop=0},e.prototype.scrollBottom=function(){this.body.scrollTop=this.body.scrollHeight},e.prototype.pageDown=function(){this.scrollDown(80)},e.prototype.pageUp=function(){this.scrollUp(80)},e.prototype.setBorderWidth=function(e){this.borderWidth=e},e.prototype.configureFont=function(){var e=this.editor.getOptions(),t=e.get(34),n=t.fontFamily,i=e.get(90)||t.fontSize,o=e.get(91)||t.lineHeight,r=t.fontWeight,s=i+\"px\",a=o+\"px\";this.el.style.fontSize=s,this.el.style.fontWeight=r,this.el.style.fontFeatureSettings=t.fontFeatureSettings,this.type.style.fontFamily=n,this.close.style.height=a,this.close.style.width=a},e.prototype.dispose=function(){this.disposables.dispose(),this.renderDisposeable=a.dispose(this.renderDisposeable)},e}(),K=function(){function e(e,i,s,l,d,c,h,g,f){var m,v,y=this\n;this.editor=e,this.telemetryService=i,this.keybindingService=s,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.state=null,this.isAuto=!1,this.loadingTimeout=a.Disposable.None,this.currentSuggestionDetails=null,this.ignoreFocusEvents=!1,this.completionModel=null,this.showTimeout=new N.TimeoutTimer,this.toDispose=new a.DisposableStore,this.onDidSelectEmitter=new r.Emitter,this.onDidFocusEmitter=new r.Emitter,this.onDidHideEmitter=new r.Emitter,this.onDidShowEmitter=new r.Emitter,this.onDidSelect=this.onDidSelectEmitter.event,this.onDidFocus=this.onDidFocusEmitter.event,this.onDidHide=this.onDidHideEmitter.event,this.onDidShow=this.onDidShowEmitter.event,this.maxWidgetWidth=660,this.listWidth=330,this.firstFocusInCurrentList=!1,this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,this.explainMode=!1,this._onDetailsKeydown=new r.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event\n;var b=this.toDispose.add(new E.MarkdownRenderer(e,h,g)),w=null!==(v=null===(m=s.lookupKeybinding(\"toggleSuggestionDetails\"))||void 0===m?void 0:m.getLabel())&&void 0!==v?v:\"\";this.msgDetailsLess=n.localize(10,null,w),this.msgDetailMore=n.localize(11,null,w),this.isAuto=!1,this.focusedItem=null,this.storageService=c,this.element=u.$(\".editor-widget.suggest-widget\"),this.toDispose.add(u.addDisposableListener(this.element,\"click\",(function(e){e.target===y.element&&y.hideWidget()}))),this.messageElement=u.append(this.element,u.$(\".message\")),this.listElement=u.append(this.element,u.$(\".tree\"));var L=function(){return u.toggleClass(y.element,\"with-status-bar\",!y.editor.getOption(89).hideStatusBar)};L(),this.statusBarElement=u.append(this.element,u.$(\".suggest-status-bar\")),this.statusBarLeftSpan=u.append(this.statusBarElement,u.$(\"span\")),this.statusBarRightSpan=u.append(this.statusBarElement,u.$(\"span\")),this.setStatusBarLeftText(\"\"),this.setStatusBarRightText(\"\"),\nthis.details=f.createInstance(H,this.element,this,this.editor,b,w);var D=function(){return u.toggleClass(y.element,\"no-icons\",!y.editor.getOption(89).showIcons)};D();var x=f.createInstance(z,this,this.editor,w);this.list=new p.List(\"SuggestWidget\",this.listElement,this,[x],{useShadows:!1,openController:{shouldOpen:function(){return!1}},mouseSupport:!1,accessibilityProvider:{getAriaLabel:function(e){var t=\"string\"==typeof e.completion.label?e.completion.label:e.completion.label.name;if(e.isResolved&&y.expandDocsSettingFromStorage()){var i=e.completion,r=i.documentation,s=i.detail,a=o.format(\"{0}{1}\",s||\"\",r?\"string\"==typeof r?r:r.value:\"\");return n.localize(12,null,t,a)}return t}}}),this.toDispose.add(C.attachListStyler(this.list,d,{listInactiveFocusBackground:t.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:S.activeContrastBorder})),this.toDispose.add(d.onThemeChange((function(e){return y.onThemeChange(e)}))),this.toDispose.add(e.onDidLayoutChange((function(){return y.onEditorLayoutChange()\n}))),this.toDispose.add(this.list.onMouseDown((function(e){return y.onListMouseDownOrTap(e)}))),this.toDispose.add(this.list.onTap((function(e){return y.onListMouseDownOrTap(e)}))),this.toDispose.add(this.list.onSelectionChange((function(e){return y.onListSelection(e)}))),this.toDispose.add(this.list.onFocusChange((function(e){return y.onListFocus(e)}))),this.toDispose.add(this.editor.onDidChangeCursorSelection((function(){return y.onCursorSelectionChanged()}))),this.toDispose.add(this.editor.onDidChangeConfiguration((function(e){e.hasChanged(89)&&(L(),D())}))),this.suggestWidgetVisible=_.Context.Visible.bindTo(l),this.suggestWidgetMultipleSuggestions=_.Context.MultipleSuggestions.bindTo(l),this.editor.addContentWidget(this),this.setState(0),this.onThemeChange(d.getTheme()),this.toDispose.add(u.addStandardDisposableListener(this.details.element,\"keydown\",(function(e){y._onDetailsKeydown.fire(e)}))),this.toDispose.add(this.editor.onMouseDown((function(e){return y.onEditorMouseDown(e)})))}\nreturn e.prototype.onEditorMouseDown=function(e){this.details.element.contains(e.target.element)?this.details.element.focus():this.element.contains(e.target.element)&&this.editor.focus()},e.prototype.onCursorSelectionChanged=function(){0!==this.state&&this.editor.layoutContentWidget(this)},e.prototype.onEditorLayoutChange=function(){3!==this.state&&5!==this.state||!this.expandDocsSettingFromStorage()||this.expandSideOrBelow()},e.prototype.onListMouseDownOrTap=function(e){void 0!==e.element&&void 0!==e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this.select(e.element,e.index))},e.prototype.onListSelection=function(e){e.elements.length&&this.select(e.elements[0],e.indexes[0])},e.prototype.select=function(e,t){var n=this.completionModel;n&&(this.onDidSelectEmitter.fire({item:e,index:t,model:n}),this.editor.focus())},e.prototype.onThemeChange=function(e){var n=e.getColor(t.editorSuggestWidgetBackground);n&&(this.listElement.style.backgroundColor=n.toString(),\nthis.statusBarElement.style.backgroundColor=n.toString(),this.details.element.style.backgroundColor=n.toString(),this.messageElement.style.backgroundColor=n.toString());var i=e.getColor(t.editorSuggestWidgetBorder);i&&(this.listElement.style.borderColor=i.toString(),this.statusBarElement.style.borderColor=i.toString(),this.details.element.style.borderColor=i.toString(),this.messageElement.style.borderColor=i.toString(),this.detailsBorderColor=i.toString());var o=e.getColor(S.focusBorder);o&&(this.detailsFocusBorderColor=o.toString()),this.details.setBorderWidth(\"hc\"===e.type?2:1)},e.prototype.onListFocus=function(e){var t,i,o=this;if(!this.ignoreFocusEvents){if(!e.elements.length)return this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null,this.focusedItem=null),void this.editor.setAriaOptions({activeDescendant:void 0});if(this.completionModel){var r=e.elements[0],a=e.indexes[0];if(this.firstFocusInCurrentList=!this.focusedItem,r!==this.focusedItem){\nvar l=\"insert\"===this.editor.getOption(89).insertMode,h=null===(t=this.keybindingService.lookupKeybinding(\"acceptSelectedSuggestion\"))||void 0===t?void 0:t.getLabel(),p=null===(i=this.keybindingService.lookupKeybinding(\"acceptAlternativeSelectedSuggestion\"))||void 0===i?void 0:i.getLabel();F.Position.equals(r.editInsertEnd,r.editReplaceEnd)?this.setStatusBarLeftText(n.localize(15,null,h)):l?this.setStatusBarLeftText(n.localize(13,null,h,p)):this.setStatusBarLeftText(n.localize(14,null,h,p)),this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.focusedItem=r,this.list.reveal(a),this.currentSuggestionDetails=N.createCancelablePromise((function(e){return d(o,void 0,void 0,(function(){var t,n,i=this;return c(this,(function(o){switch(o.label){case 0:return t=N.disposableTimeout((function(){return i.showDetails(!0)}),250),e.onCancellationRequested((function(){return t.dispose()})),[4,r.resolve(e)];case 1:return n=o.sent(),t.dispose(),[2,n]}}))}))})),\nthis.currentSuggestionDetails.then((function(){a>=o.list.length||r!==o.list.element(a)||(o.ignoreFocusEvents=!0,o.list.splice(a,1,[r]),o.list.setFocus([a]),o.ignoreFocusEvents=!1,o.expandDocsSettingFromStorage()?o.showDetails(!1):u.removeClass(o.element,\"docs-side\"),B(o.focusedItem)?o.expandDocsSettingFromStorage()?o.setStatusBarRightText(o.msgDetailsLess):o.setStatusBarRightText(o.msgDetailMore):o.statusBarRightSpan.innerText=\"\",o.editor.setAriaOptions({activeDescendant:V(a)}))})).catch(s.onUnexpectedError)}this.onDidFocusEmitter.fire({item:r,index:a,model:this.completionModel})}}},e.prototype.setState=function(t){if(this.element){var n=this.state!==t;switch(this.state=t,u.toggleClass(this.element,\"frozen\",4===t),t){case 0:u.hide(this.messageElement,this.details.element,this.listElement,this.statusBarElement),this.hide(),this.listHeight=0,n&&this.list.splice(0,this.list.length),this.focusedItem=null;break;case 1:this.messageElement.textContent=e.LOADING_MESSAGE,\nu.hide(this.listElement,this.details.element,this.statusBarElement),u.show(this.messageElement),u.removeClass(this.element,\"docs-side\"),this.show(),this.focusedItem=null;break;case 2:this.messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,u.hide(this.listElement,this.details.element,this.statusBarElement),u.show(this.messageElement),u.removeClass(this.element,\"docs-side\"),this.show(),this.focusedItem=null;break;case 3:u.hide(this.messageElement),u.show(this.listElement,this.statusBarElement),this.show();break;case 4:u.hide(this.messageElement),u.show(this.listElement),this.show();break;case 5:u.hide(this.messageElement),u.show(this.details.element,this.listElement,this.statusBarElement),this.show()}}},e.prototype.showTriggered=function(e,t){var n=this;0===this.state&&(this.isAuto=!!e,this.isAuto||(this.loadingTimeout=N.disposableTimeout((function(){return n.setState(1)}),t)))},e.prototype.showSuggestions=function(e,t,n,i){if(this.preferDocPositionTop=!1,this.docsPositionPreviousWidgetY=null,\nthis.loadingTimeout.dispose(),this.currentSuggestionDetails&&(this.currentSuggestionDetails.cancel(),this.currentSuggestionDetails=null),this.completionModel!==e&&(this.completionModel=e),n&&2!==this.state&&0!==this.state)this.setState(4);else{var o=this.completionModel.items.length,r=0===o;if(this.suggestWidgetMultipleSuggestions.set(o>1),r)i?this.setState(0):this.setState(2),this.completionModel=null;else{if(3!==this.state){var s=this.completionModel.stats;s.wasAutomaticallyTriggered=!!i,this.telemetryService.publicLog(\"suggestWidget\",l({},s))}this.focusedItem=null,this.list.splice(0,this.list.length,this.completionModel.items),n?this.setState(4):this.setState(3),this.list.reveal(t,0),this.list.setFocus([t]),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)}}},e.prototype.selectNextPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageDown(),!0;case 1:return!this.isAuto;default:return this.list.focusNextPage(),!0}},\ne.prototype.selectNext=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusNext(1,!0),!0}},e.prototype.selectLast=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollBottom(),!0;case 1:return!this.isAuto;default:return this.list.focusLast(),!0}},e.prototype.selectPreviousPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageUp(),!0;case 1:return!this.isAuto;default:return this.list.focusPreviousPage(),!0}},e.prototype.selectPrevious=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusPrevious(1,!0),!1}},e.prototype.selectFirst=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollTop(),!0;case 1:return!this.isAuto;default:return this.list.focusFirst(),!0}},e.prototype.getFocusedItem=function(){if(0!==this.state&&2!==this.state&&1!==this.state&&this.completionModel)return{item:this.list.getFocusedElements()[0],\nindex:this.list.getFocus()[0],model:this.completionModel}},e.prototype.toggleDetailsFocus=function(){5===this.state?(this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)):3===this.state&&this.expandDocsSettingFromStorage()&&(this.setState(5),this.detailsFocusBorderColor&&(this.details.element.style.borderColor=this.detailsFocusBorderColor)),this.telemetryService.publicLog2(\"suggestWidget:toggleDetailsFocus\")},e.prototype.toggleDetails=function(){if(B(this.list.getFocusedElements()[0]))if(this.expandDocsSettingFromStorage())this.updateExpandDocsSetting(!1),u.hide(this.details.element),u.removeClass(this.element,\"docs-side\"),u.removeClass(this.element,\"docs-below\"),this.editor.layoutContentWidget(this),this.setStatusBarRightText(this.msgDetailMore),this.telemetryService.publicLog2(\"suggestWidget:collapseDetails\");else{if(3!==this.state&&5!==this.state&&4!==this.state)return;this.updateExpandDocsSetting(!0),this.showDetails(!1),\nthis.setStatusBarRightText(this.msgDetailsLess),this.telemetryService.publicLog2(\"suggestWidget:expandDetails\")}},e.prototype.showDetails=function(e){e||this.expandSideOrBelow(),u.show(this.details.element),this.details.element.style.maxHeight=this.maxWidgetHeight+\"px\",e?this.details.renderLoading():this.details.renderItem(this.list.getFocusedElements()[0],this.explainMode),this.listElement.style.marginTop=\"0px\",this.editor.layoutContentWidget(this),this.adjustDocsPosition(),this.editor.focus()},e.prototype.toggleExplainMode=function(){this.list.getFocusedElements()[0]&&this.expandDocsSettingFromStorage()&&(this.explainMode=!this.explainMode,this.showDetails(!1))},e.prototype.show=function(){var e=this,t=this.updateListHeight();t!==this.listHeight&&(this.editor.layoutContentWidget(this),this.listHeight=t),this.suggestWidgetVisible.set(!0),this.showTimeout.cancelAndSet((function(){u.addClass(e.element,\"visible\"),e.onDidShowEmitter.fire(e)}),100)},e.prototype.hide=function(){this.suggestWidgetVisible.reset(),\nthis.suggestWidgetMultipleSuggestions.reset(),u.removeClass(this.element,\"visible\")},e.prototype.hideWidget=function(){this.loadingTimeout.dispose(),this.setState(0),this.onDidHideEmitter.fire(this)},e.prototype.getPosition=function(){if(0===this.state)return null;var e=[2,1];return this.preferDocPositionTop&&(e=[1]),{position:this.editor.getPosition(),preference:e}},e.prototype.getDomNode=function(){return this.element},e.prototype.getId=function(){return e.ID},e.prototype.isFrozen=function(){return 4===this.state},e.prototype.updateListHeight=function(){var e=0;if(2===this.state||1===this.state)e=this.unfocusedHeight;else{var t=this.list.contentHeight/this.unfocusedHeight,n=this.editor.getOption(89).maxVisibleSuggestions;e=Math.min(t,n)*this.unfocusedHeight}return this.element.style.lineHeight=this.unfocusedHeight+\"px\",this.listElement.style.height=e+\"px\",this.statusBarElement.style.top=e+\"px\",this.list.layout(e),e},e.prototype.adjustDocsPosition=function(){if(this.editor.hasModel()){\nvar e=this.editor.getOption(49),t=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),n=u.getDomNodePagePosition(this.editor.getDomNode()),i=n.left+t.left,o=n.top+t.top+t.height,r=u.getDomNodePagePosition(this.element),s=r.left,a=r.top;if(this.docsPositionPreviousWidgetY&&this.docsPositionPreviousWidgetY<a&&!this.preferDocPositionTop)return this.preferDocPositionTop=!0,void this.adjustDocsPosition();this.docsPositionPreviousWidgetY=a,s<i-this.listWidth?u.addClass(this.element,\"list-right\"):u.removeClass(this.element,\"list-right\"),u.hasClass(this.element,\"docs-side\")&&o-e>a&&this.details.element.offsetHeight>this.listElement.offsetHeight&&(this.listElement.style.marginTop=this.details.element.offsetHeight-this.listElement.offsetHeight+\"px\")}},e.prototype.expandSideOrBelow=function(){if(!B(this.focusedItem)&&this.firstFocusInCurrentList)return u.removeClass(this.element,\"docs-side\"),void u.removeClass(this.element,\"docs-below\");var e=this.element.style.maxWidth.match(/(\\d+)px/)\n;!e||Number(e[1])<this.maxWidgetWidth?(u.addClass(this.element,\"docs-below\"),u.removeClass(this.element,\"docs-side\")):B(this.focusedItem)&&(u.addClass(this.element,\"docs-side\"),u.removeClass(this.element,\"docs-below\"))},Object.defineProperty(e.prototype,\"maxWidgetHeight\",{get:function(){return this.unfocusedHeight*this.editor.getOption(89).maxVisibleSuggestions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"unfocusedHeight\",{get:function(){var e=this.editor.getOptions();return e.get(91)||e.get(34).lineHeight},enumerable:!0,configurable:!0}),e.prototype.getHeight=function(e){return this.unfocusedHeight},e.prototype.getTemplateId=function(e){return\"suggestion\"},e.prototype.expandDocsSettingFromStorage=function(){return this.storageService.getBoolean(\"expandSuggestionDocs\",0,!1)},e.prototype.updateExpandDocsSetting=function(e){this.storageService.store(\"expandSuggestionDocs\",e,0)},e.prototype.setStatusBarLeftText=function(e){this.statusBarLeftSpan.innerText=e},\ne.prototype.setStatusBarRightText=function(e){this.statusBarRightSpan.innerText=e},e.prototype.dispose=function(){this.details.dispose(),this.list.dispose(),this.toDispose.dispose(),this.loadingTimeout.dispose(),this.showTimeout.dispose()},e.ID=\"editor.widget.suggestWidget\",e.LOADING_MESSAGE=n.localize(8,null),e.NO_SUGGESTIONS_MESSAGE=n.localize(9,null),e=h([g(1,y.ITelemetryService),g(2,m.IKeybindingService),g(3,v.IContextKeyService),g(4,b.IThemeService),g(5,w.IStorageService),g(6,L.IModeService),g(7,D.IOpenerService),g(8,R.IInstantiationService)],e)}();t.SuggestWidget=K,b.registerThemingParticipant((function(e,n){var i=e.getColor(t.editorSuggestWidgetHighlightForeground);i&&n.addRule(\".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: \"+i+\"; }\");var o=e.getColor(t.editorSuggestWidgetForeground);o&&n.addRule(\".monaco-editor .suggest-widget { color: \"+o+\"; }\");var r=e.getColor(S.textLinkForeground)\n;r&&n.addRule(\".monaco-editor .suggest-widget a { color: \"+r+\"; }\");var s=e.getColor(S.textCodeBlockBackground);s&&n.addRule(\".monaco-editor .suggest-widget code { background-color: \"+s+\"; }\")}))})),define(n[586],i([0,1,471,19,15,26,10,2,12,3,23,48,30,17,18,20,14]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=_.registerColor(\"editor.wordHighlightBackground\",{dark:\"#575757B8\",light:\"#57575740\",hc:null},n.localize(0,null),!0),b=_.registerColor(\"editor.wordHighlightStrongBackground\",{dark:\"#004972B8\",light:\"#0e639c40\",hc:null},n.localize(1,null),!0),S=_.registerColor(\"editor.wordHighlightBorder\",{light:null,dark:null,hc:_.activeContrastBorder},n.localize(2,null)),w=_.registerColor(\"editor.wordHighlightStrongBorder\",{light:null,dark:null,hc:_.activeContrastBorder},n.localize(3,null)),E=_.registerColor(\"editorOverviewRuler.wordHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hc:\"#A0A0A0CC\"\n},n.localize(4,null),!0),L=_.registerColor(\"editorOverviewRuler.wordHighlightStrongForeground\",{dark:\"#C0A0C0CC\",light:\"#C0A0C0CC\",hc:\"#C0A0C0CC\"},n.localize(5,null),!0),D=new v.RawContextKey(\"hasWordHighlights\",!1);function N(e,t,n){var r=m.DocumentHighlightProviderRegistry.ordered(e);return o.first(r.map((function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,a.onUnexpectedExternalError)}})),i.isNonEmptyArray)}t.getOccurrencesAtPosition=N;var x=function(){function e(e,t,n){var i=this;this._wordRange=this._getCurrentWordRange(e,t),this.result=o.createCancelablePromise((function(o){return i._compute(e,t,n,o)}))}return e.prototype._getCurrentWordRange=function(e,t){var n=e.getWordAtPosition(t.getPosition());return n?new d.Range(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):null},e.prototype.isValid=function(e,t,n){\nfor(var i=t.startLineNumber,o=t.startColumn,r=t.endColumn,s=this._getCurrentWordRange(e,t),a=Boolean(this._wordRange&&this._wordRange.equalsRange(s)),l=0,u=n.length;!a&&l<u;l++){var d=e.getDecorationRange(n[l]);d&&d.startLineNumber===i&&d.startColumn<=o&&d.endColumn>=r&&(a=!0)}return a},e.prototype.cancel=function(){this.result.cancel()},e}(),I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._compute=function(e,t,n,i){return N(e,t.getPosition(),i).then((function(e){return e||[]}))},t}(x),M=function(e){function t(t,n,i){var o=e.call(this,t,n,i)||this;return o._selectionIsEmpty=n.isEmpty(),o}return r(t,e),t.prototype._compute=function(e,t,n,i){return o.timeout(250,i).then((function(){if(!t.isEmpty())return[];var i=e.getWordAtPosition(t.getPosition());return i?e.findMatches(i.word,!0,!1,!0,n,!1).map((function(e){return{range:e.range,kind:m.DocumentHighlightKind.Text}})):[]}))},t.prototype.isValid=function(t,n,i){var o=n.isEmpty()\n;return this._selectionIsEmpty===o&&e.prototype.isValid.call(this,t,n,i)},t}(x);u.registerModelAndPositionCommand(\"_executeDocumentHighlights\",(function(e,t){return N(e,t,s.CancellationToken.None)}));var k=function(){function e(e,t){var n=this;this.toUnhook=new l.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this._hasWordHighlights=D.bindTo(t),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(61),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition((function(e){n._ignorePositionChangeEvent||n.occurrencesHighlight&&n._onPositionChanged(e)}))),this.toUnhook.add(e.onDidChangeModelContent((function(e){n._stopAll()}))),this.toUnhook.add(e.onDidChangeConfiguration((function(e){var t=n.editor.getOption(61);n.occurrencesHighlight!==t&&(n.occurrencesHighlight=t,n._stopAll())}))),this._decorationIds=[],\nthis.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return e.prototype.hasDecorations=function(){return this._decorationIds.length>0},e.prototype.restore=function(){this.occurrencesHighlight&&this._run()},e.prototype._getSortedHighlights=function(){var e=this;return i.coalesce(this._decorationIds.map((function(t){return e.model.getDecorationRange(t)})).sort(d.Range.compareRangesUsingStarts))},e.prototype.moveNext=function(){var e=this,t=this._getSortedHighlights(),n=t[(i.firstIndex(t,(function(t){return t.containsPosition(e.editor.getPosition())}))+1)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype.moveBack=function(){var e=this,t=this._getSortedHighlights(),n=t[(i.firstIndex(t,(function(t){return t.containsPosition(e.editor.getPosition())\n}))-1+t.length)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype._removeDecorations=function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))},e.prototype._stopAll=function(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)},e.prototype._onPositionChanged=function(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()},e.prototype._run=function(){var e=this,t=this.editor.getSelection();if(t.startLineNumber===t.endLineNumber){\nvar n=t.startLineNumber,i=t.startColumn,o=t.endColumn,r=this.model.getWordAtPosition({lineNumber:n,column:i});if(!r||r.startColumn>i||r.endColumn<o)this._stopAll();else{var s,l,u,d=this.workerRequest&&this.workerRequest.isValid(this.model,t,this._decorationIds);if(this.lastCursorPositionChangeTime=(new Date).getTime(),d)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var c=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=(s=this.model,l=this.editor.getSelection(),u=this.editor.getOption(96),m.DocumentHighlightProviderRegistry.has(s)?new I(s,l,u):new M(s,l,u)),this.workerRequest.result.then((function(t){c===e.workerRequestTokenId&&(e.workerRequestCompleted=!0,e.workerRequestValue=t||[],e._beginRenderDecorations())}),a.onUnexpectedError)}}}else this._stopAll()},e.prototype._beginRenderDecorations=function(){\nvar e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((function(){e.renderDecorations()}),n-t)},e.prototype.renderDecorations=function(){this.renderDecorationsTimer=-1;for(var t=[],n=0,i=this.workerRequestValue.length;n<i;n++){var o=this.workerRequestValue[n];t.push({range:o.range,options:e._getDecorationOptions(o.kind)})}this._decorationIds=this.editor.deltaDecorations(this._decorationIds,t),this._hasWordHighlights.set(this.hasDecorations())},e._getDecorationOptions=function(e){return e===m.DocumentHighlightKind.Write?this._WRITE_OPTIONS:e===m.DocumentHighlightKind.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS},e.prototype.dispose=function(){this._stopAll(),this.toUnhook.dispose()},e._WRITE_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"wordHighlightStrong\",overviewRuler:{color:y.themeColorFromId(L),position:p.OverviewRulerLane.Center}}),\ne._TEXT_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"selectionHighlight\",overviewRuler:{color:y.themeColorFromId(_.overviewRulerSelectionHighlightForeground),position:p.OverviewRulerLane.Center}}),e._REGULAR_OPTIONS=f.ModelDecorationOptions.register({stickiness:1,className:\"wordHighlight\",overviewRuler:{color:y.themeColorFromId(E),position:p.OverviewRulerLane.Center}}),e}(),T=function(e){function t(t,n){var i=e.call(this)||this;i.wordHighligher=null;var o=function(){t.hasModel()&&(i.wordHighligher=new k(t,n))};return i._register(t.onDidChangeModel((function(e){i.wordHighligher&&(i.wordHighligher.dispose(),i.wordHighligher=null),o()}))),o(),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.saveViewState=function(){return!(!this.wordHighligher||!this.wordHighligher.hasDecorations())},t.prototype.moveNext=function(){this.wordHighligher&&this.wordHighligher.moveNext()},t.prototype.moveBack=function(){this.wordHighligher&&this.wordHighligher.moveBack()},\nt.prototype.restoreViewState=function(e){this.wordHighligher&&e&&this.wordHighligher.restore()},t.prototype.dispose=function(){this.wordHighligher&&(this.wordHighligher.dispose(),this.wordHighligher=null),e.prototype.dispose.call(this)},t.ID=\"editor.contrib.wordHighlighter\",t=h([g(1,v.IContextKeyService)],t)}(l.Disposable),R=function(e){function t(t,n){var i=e.call(this,n)||this;return i._isNext=t,i}return r(t,e),t.prototype.run=function(e,t){var n=T.get(t);n&&(this._isNext?n.moveNext():n.moveBack())},t}(u.EditorAction),O=function(e){function t(){return e.call(this,!0,{id:\"editor.action.wordHighlight.next\",label:n.localize(6,null),alias:\"Go to Next Symbol Highlight\",precondition:D,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:65,weight:100}})||this}return r(t,e),t}(R),P=function(e){function t(){return e.call(this,!1,{id:\"editor.action.wordHighlight.prev\",label:n.localize(7,null),alias:\"Go to Previous Symbol Highlight\",precondition:D,kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:1089,\nweight:100}})||this}return r(t,e),t}(R),A=function(e){function t(){return e.call(this,{id:\"editor.action.wordHighlight.trigger\",label:n.localize(8,null),alias:\"Trigger Symbol Highlight\",precondition:D.toNegated(),kbOpts:{kbExpr:c.EditorContextKeys.editorTextFocus,primary:0,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t,n){var i=T.get(t);i&&i.restoreViewState(!0)},t}(u.EditorAction);u.registerEditorContribution(T.ID,T),u.registerEditorAction(O),u.registerEditorAction(P),u.registerEditorAction(A),y.registerThemingParticipant((function(e,t){var n=e.getColor(_.editorSelectionHighlight);n&&(t.addRule(\".monaco-editor .focused .selectionHighlight { background-color: \"+n+\"; }\"),t.addRule(\".monaco-editor .selectionHighlight { background-color: \"+n.transparent(.5)+\"; }\"));var i=e.getColor(C);i&&t.addRule(\".monaco-editor .wordHighlight { background-color: \"+i+\"; }\");var o=e.getColor(b);o&&t.addRule(\".monaco-editor .wordHighlightStrong { background-color: \"+o+\"; }\")\n;var r=e.getColor(_.editorSelectionHighlightBorder);r&&t.addRule(\".monaco-editor .selectionHighlight { border: 1px \"+(\"hc\"===e.type?\"dotted\":\"solid\")+\" \"+r+\"; box-sizing: border-box; }\");var s=e.getColor(S);s&&t.addRule(\".monaco-editor .wordHighlight { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+s+\"; box-sizing: border-box; }\");var a=e.getColor(w);a&&t.addRule(\".monaco-editor .wordHighlightStrong { border: 1px \"+(\"hc\"===e.type?\"dashed\":\"solid\")+\" \"+a+\"; box-sizing: border-box; }\")}))})),define(n[587],i([0,1,24,6,28,134,50,47,2,16,5,25,12,23,225,18,11,34,51,20,14,59,325]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var L=new _.RawContextKey(\"accessibilityHelpWidgetVisible\",!1),D=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,i._widget=i._register(n.createInstance(N,i._editor)),i}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.show=function(){this._widget.show()},\nt.prototype.hide=function(){this._widget.hide()},t.ID=\"editor.contrib.accessibilityHelpController\",t=h([g(1,y.IInstantiationService)],t)}(u.Disposable);var N=function(e){function t(t,n,r,s){var l=e.call(this)||this;return l._contextKeyService=n,l._keybindingService=r,l._openerService=s,l._editor=t,l._isVisibleKey=L.bindTo(l._contextKeyService),l._domNode=o.createFastDomNode(document.createElement(\"div\")),l._domNode.setClassName(\"accessibilityHelpWidget\"),l._domNode.setDisplay(\"none\"),l._domNode.setAttribute(\"role\",\"dialog\"),l._domNode.setAttribute(\"aria-hidden\",\"true\"),l._contentDomNode=o.createFastDomNode(document.createElement(\"div\")),l._contentDomNode.setAttribute(\"role\",\"document\"),l._domNode.appendChild(l._contentDomNode),l._isVisible=!1,l._register(l._editor.onDidLayoutChange((function(){l._isVisible&&l._layout()}))),l._register(i.addStandardDisposableListener(l._contentDomNode.domNode,\"keydown\",(function(e){if(l._isVisible&&(e.equals(2083)&&(a.alert(E.AccessibilityHelpNLS.emergencyConfOn),\nl._editor.updateOptions({accessibilitySupport:\"on\"}),i.clearNode(l._contentDomNode.domNode),l._buildContent(),l._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){a.alert(E.AccessibilityHelpNLS.openingDocs);var t=l._editor.getRawOptions().accessibilityHelpUrl;void 0===t&&(t=\"https://go.microsoft.com/fwlink/?linkid=852450\"),l._openerService.open(p.URI.parse(t)),e.preventDefault(),e.stopPropagation()}}))),l.onblur(l._contentDomNode.domNode,(function(){l.hide()})),l._editor.addOverlayWidget(l),l}return r(t,e),t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.getPosition=function(){return{preference:null}},t.prototype.show=function(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay(\"block\"),this._domNode.setAttribute(\"aria-hidden\",\"false\"),\nthis._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())},t.prototype._descriptionForCommand=function(e,t,n){var i=this._keybindingService.lookupKeybinding(e);return i?c.format(t,i.getAriaLabel()):c.format(n,e)},t.prototype._buildContent=function(){var e=this._editor.getOptions(),t=this._editor.getSelections(),n=0;if(t){var i=this._editor.getModel();i&&t.forEach((function(e){n+=i.getValueLengthInRange(e)}))}var o=function(e,t){return e&&0!==e.length?1===e.length?t?c.format(E.AccessibilityHelpNLS.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):c.format(E.AccessibilityHelpNLS.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?c.format(E.AccessibilityHelpNLS.multiSelectionRange,e.length,t):e.length>0?c.format(E.AccessibilityHelpNLS.multiSelection,e.length):\"\":E.AccessibilityHelpNLS.noSelection}(t,n)\n;e.get(45)?e.get(68)?o+=E.AccessibilityHelpNLS.readonlyDiffEditor:o+=E.AccessibilityHelpNLS.editableDiffEditor:e.get(68)?o+=E.AccessibilityHelpNLS.readonlyEditor:o+=E.AccessibilityHelpNLS.editableEditor;var r=d.isMacintosh?E.AccessibilityHelpNLS.changeConfigToOnMac:E.AccessibilityHelpNLS.changeConfigToOnWinLinux;switch(e.get(2)){case 0:o+=\"\\n\\n - \"+r;break;case 2:o+=\"\\n\\n - \"+E.AccessibilityHelpNLS.auto_on;break;case 1:o+=\"\\n\\n - \"+E.AccessibilityHelpNLS.auto_off,o+=\" \"+r}e.get(106)?o+=\"\\n\\n - \"+this._descriptionForCommand(v.ToggleTabFocusModeAction.ID,E.AccessibilityHelpNLS.tabFocusModeOnMsg,E.AccessibilityHelpNLS.tabFocusModeOnMsgNoKb):o+=\"\\n\\n - \"+this._descriptionForCommand(v.ToggleTabFocusModeAction.ID,E.AccessibilityHelpNLS.tabFocusModeOffMsg,E.AccessibilityHelpNLS.tabFocusModeOffMsgNoKb),o+=\"\\n\\n - \"+(d.isMacintosh?E.AccessibilityHelpNLS.openDocMac:E.AccessibilityHelpNLS.openDocWinLinux),o+=\"\\n\\n\"+E.AccessibilityHelpNLS.outroMsg,this._contentDomNode.domNode.appendChild(s.renderFormattedText(o)),\nthis._contentDomNode.domNode.setAttribute(\"aria-label\",o)},t.prototype.hide=function(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay(\"none\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._contentDomNode.domNode.tabIndex=-1,i.clearNode(this._contentDomNode.domNode),this._editor.focus())},t.prototype._layout=function(){var e=this._editor.getLayoutInfo(),n=Math.max(5,Math.min(t.WIDTH,e.width-40)),i=Math.max(5,Math.min(t.HEIGHT,e.height-40));this._domNode.setWidth(n),this._domNode.setHeight(i);var o=Math.round((e.height-i)/2);this._domNode.setTop(o);var r=Math.round((e.width-n)/2);this._domNode.setLeft(r)},t.ID=\"editor.contrib.accessibilityHelpWidget\",t.WIDTH=500,t.HEIGHT=300,t=h([g(1,_.IContextKeyService),g(2,C.IKeybindingService),g(3,b.IOpenerService)],t)}(l.Widget),x=function(e){function t(){return e.call(this,{id:\"editor.action.showAccessibilityHelp\",label:E.AccessibilityHelpNLS.showAccessibilityHelpAction,alias:\"Show Accessibility Help\",precondition:void 0,\nkbOpts:{kbExpr:m.EditorContextKeys.focus,primary:n.isIE?2107:571,weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=D.get(t);n&&n.show()},t}(f.EditorAction);f.registerEditorContribution(D.ID,D),f.registerEditorAction(x);var I=f.EditorCommand.bindToContribution(D.get);f.registerEditorCommand(new I({id:\"closeAccessibilityHelp\",precondition:L,handler:function(e){return e.hide()},kbOpts:{weight:200,kbExpr:m.EditorContextKeys.focus,primary:9,secondary:[1033]}})),w.registerThemingParticipant((function(e,t){var n=e.getColor(S.editorWidgetBackground);n&&t.addRule(\".monaco-editor .accessibilityHelpWidget { background-color: \"+n+\"; }\");var i=e.getColor(S.editorWidgetForeground);i&&t.addRule(\".monaco-editor .accessibilityHelpWidget { color: \"+i+\"; }\");var o=e.getColor(S.widgetShadow);o&&t.addRule(\".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px \"+o+\"; }\");var r=e.getColor(S.contrastBorder);r&&t.addRule(\".monaco-editor .accessibilityHelpWidget { border: 2px solid \"+r+\"; }\")}))})),\ndefine(n[588],i([0,1,27,2,5,12,17,63,71,94,20,14,59,327]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var m=function(e){function t(t,n,i){var o=e.call(this)||this;return o._editor=t,o._modeService=i,o._widget=null,o._register(o._editor.onDidChangeModel((function(e){return o.stop()}))),o._register(o._editor.onDidChangeModelLanguage((function(e){return o.stop()}))),o._register(a.TokenizationRegistry.onDidChange((function(e){return o.stop()}))),o}return r(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this.stop(),e.prototype.dispose.call(this)},t.prototype.launch=function(){this._widget||this._editor.hasModel()&&(this._widget=new _(this._editor,this._modeService))},t.prototype.stop=function(){this._widget&&(this._widget.dispose(),this._widget=null)},t.ID=\"editor.contrib.inspectTokens\",t=h([g(1,d.IStandaloneThemeService),g(2,u.IModeService)],t)}(i.Disposable),v=function(e){function t(){return e.call(this,{\nid:\"editor.action.inspectTokens\",label:f.InspectTokensNLS.inspectTokensAction,alias:\"Developer: Inspect Tokens\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=m.get(t);n&&n.launch()},t}(s.EditorAction);var _=function(e){function t(t,n){var i,o=e.call(this)||this;return o.allowEditorOverflow=!0,o._editor=t,o._modeService=n,o._model=o._editor.getModel(),o._domNode=document.createElement(\"div\"),o._domNode.className=\"tokens-inspect-widget\",o._tokenizationSupport=(i=o._model.getLanguageIdentifier(),a.TokenizationRegistry.get(i.language)||{getInitialState:function(){return l.NULL_STATE},tokenize:function(e,t,n){return l.nullTokenize(i.language,e,t,n)},tokenize2:function(e,t,n){return l.nullTokenize2(i.id,e,t,n)}}),o._compute(o._editor.getPosition()),o._register(o._editor.onDidChangeCursorPosition((function(e){return o._compute(o._editor.getPosition())}))),o._editor.addContentWidget(o),o}return r(t,e),t.prototype.dispose=function(){this._editor.removeContentWidget(this),\ne.prototype.dispose.call(this)},t.prototype.getId=function(){return t._ID},t.prototype._compute=function(e){for(var t=this._getTokensAtLine(e.lineNumber),i=0,r=t.tokens1.length-1;r>=0;r--){var s=t.tokens1[r];if(e.column-1>=s.offset){i=r;break}}var a=0;for(r=t.tokens2.length>>>1;r>=0;r--)if(e.column-1>=t.tokens2[r<<1]){a=r;break}var l=\"\",u=this._model.getLineContent(e.lineNumber),d=\"\";if(i<t.tokens1.length){var c=t.tokens1[i].offset,h=i+1<t.tokens1.length?t.tokens1[i+1].offset:u.length;d=u.substring(c,h)}l+='<h2 class=\"tm-token\">'+function(e){for(var t=\"\",n=0,i=e.length;n<i;n++){var o=e.charCodeAt(n);switch(o){case 9:t+=\"&rarr;\";break;case 32:t+=\"&middot;\";break;case 60:t+=\"&lt;\";break;case 62:t+=\"&gt;\";break;case 38:t+=\"&amp;\";break;default:t+=String.fromCharCode(o)}}return t}(d)+'<span class=\"tm-token-length\">('+d.length+\" \"+(1===d.length?\"char\":\"chars\")+\")</span></h2>\",l+='<hr class=\"tokens-inspect-separator\" style=\"clear:both\"/>';var p=this._decodeMetadata(t.tokens2[1+(a<<1)])\n;l+='<table class=\"tm-metadata-table\"><tbody>',l+='<tr><td class=\"tm-metadata-key\">language</td><td class=\"tm-metadata-value\">'+o.escape(p.languageIdentifier.language)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">token type</td><td class=\"tm-metadata-value\">'+this._tokenTypeToString(p.tokenType)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">font style</td><td class=\"tm-metadata-value\">'+this._fontStyleToString(p.fontStyle)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">foreground</td><td class=\"tm-metadata-value\">'+n.Color.Format.CSS.formatHex(p.foreground)+\"</td>\",l+='<tr><td class=\"tm-metadata-key\">background</td><td class=\"tm-metadata-value\">'+n.Color.Format.CSS.formatHex(p.background)+\"</td>\",l+=\"</tbody></table>\",l+='<hr class=\"tokens-inspect-separator\"/>',i<t.tokens1.length&&(l+='<span class=\"tm-token-type\">'+o.escape(t.tokens1[i].type)+\"</span>\"),this._domNode.innerHTML=l,this._editor.layoutContentWidget(this)},t.prototype._decodeMetadata=function(e){\nvar t=a.TokenizationRegistry.getColorMap(),n=a.TokenMetadata.getLanguageId(e),i=a.TokenMetadata.getTokenType(e),o=a.TokenMetadata.getFontStyle(e),r=a.TokenMetadata.getForeground(e),s=a.TokenMetadata.getBackground(e);return{languageIdentifier:this._modeService.getLanguageIdentifier(n),tokenType:i,fontStyle:o,foreground:t[r],background:t[s]}},t.prototype._tokenTypeToString=function(e){switch(e){case 0:return\"Other\";case 1:return\"Comment\";case 2:return\"String\";case 4:return\"RegEx\"}return\"??\"},t.prototype._fontStyleToString=function(e){var t=\"\";return 1&e&&(t+=\"italic \"),2&e&&(t+=\"bold \"),4&e&&(t+=\"underline \"),0===t.length&&(t=\"---\"),t},t.prototype._getTokensAtLine=function(e){var t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),t,0),i=this._tokenizationSupport.tokenize2(this._model.getLineContent(e),t,0);return{startState:t,tokens1:n.tokens,tokens2:i.tokens,endState:n.endState}},t.prototype._getStateBeforeLine=function(e){\nfor(var t=this._tokenizationSupport.getInitialState(),n=1;n<e;n++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(n),t,0).endState}return t},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{position:this._editor.getPosition(),preference:[2,1]}},t._ID=\"editor.contrib.inspectTokensWidget\",t}(i.Disposable);s.registerEditorContribution(m.ID,m),s.registerEditorAction(v),p.registerThemingParticipant((function(e,t){var n=e.getColor(c.editorHoverBorder);if(n){var i=e.type===p.HIGH_CONTRAST?2:1;t.addRule(\".monaco-editor .tokens-inspect-widget { border: \"+i+\"px solid \"+n+\"; }\"),t.addRule(\".monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: \"+n+\"; }\")}var o=e.getColor(c.editorHoverBackground);o&&t.addRule(\".monaco-editor .tokens-inspect-widget { background-color: \"+o+\"; }\");var r=e.getColor(c.editorHoverForeground);r&&t.addRule(\".monaco-editor .tokens-inspect-widget { color: \"+r+\"; }\")}))})),\ndefine(n[169],i([0,1,12,30,546,14,328]),(function(e,t,n,i,o,s){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){this.themeService=t,this.widget=null,this.rangeHighlightDecorationId=null,this.lastKnownEditorSelection=null,this.editor=e}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this.widget&&(this.widget.destroy(),this.widget=null)},e.prototype.run=function(e){var t=this;this.widget&&(this.widget.destroy(),this.widget=null);var n=function(e){t.clearDecorations(),e&&t.lastKnownEditorSelection&&(t.editor.setSelection(t.lastKnownEditorSelection),t.editor.revealRangeInCenterIfOutsideViewport(t.lastKnownEditorSelection,0)),t.lastKnownEditorSelection=null,document.activeElement!==document.body&&e||t.editor.focus()};this.widget=new o.QuickOpenEditorWidget(this.editor,(function(){return n(!1)}),(function(){return n(!0)}),(function(n){t.widget.setInput(e.getModel(n),e.getAutoFocus(n))}),{inputAriaLabel:e.inputAriaLabel\n},this.themeService),this.lastKnownEditorSelection||(this.lastKnownEditorSelection=this.editor.getSelection()),this.widget.show(\"\")},e.prototype.decorateLine=function(t,n){var i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId),this.rangeHighlightDecorationId=null);var o=[{range:t,options:e._RANGE_HIGHLIGHT_DECORATION}],r=n.deltaDecorations(i,o);this.rangeHighlightDecorationId=r[0]},e.prototype.clearDecorations=function(){this.rangeHighlightDecorationId&&(this.editor.deltaDecorations([this.rangeHighlightDecorationId],[]),this.rangeHighlightDecorationId=null)},e.ID=\"editor.controller.quickOpenController\",e._RANGE_HIGHLIGHT_DECORATION=i.ModelDecorationOptions.register({className:\"rangeHighlight\",isWholeLine:!0}),e=h([g(1,s.IThemeService)],e)}();t.QuickOpenController=a;var l=function(e){function t(t,n){var i=e.call(this,n)||this;return i._inputAriaLabel=t,i}return r(t,e),t.prototype.getController=function(e){return a.get(e)},t.prototype._show=function(e,t){e.run({\ninputAriaLabel:this._inputAriaLabel,getModel:function(e){return t.getModel(e)},getAutoFocus:function(e){return t.getAutoFocus(e)}})},t}(n.EditorAction);t.BaseEditorQuickOpenAction=l,n.registerEditorContribution(a.ID,a)})),define(n[589],i([0,1,5,155,108,12,13,3,23,169,59,329]),(function(e,t,n,i,o,s,a,l,u,d,c){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var h=function(e){function t(t,n,i){var o=e.call(this)||this;return o.editor=n,o.decorator=i,o.parseResult=o.parseInput(t),o}return r(t,e),t.prototype.parseInput=function(e){var t,i,r=e.split(\",\").map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)}));if(t=0===r.length?new a.Position(-1,-1):1===r.length?new a.Position(r[0],1):new a.Position(r[0],r[1]),o.isCodeEditor(this.editor))i=this.editor.getModel();else{var s=this.editor.getModel();i=s?s.modified:null}var l=!!i&&i.validatePosition(t).equals(t);return{position:t,isValid:l,\nlabel:l?t.column&&t.column>1?n.format(c.GoToLineNLS.gotoLineLabelValidLineAndColumn,t.lineNumber,t.column):n.format(c.GoToLineNLS.gotoLineLabelValidLine,t.lineNumber):t.lineNumber<1||t.lineNumber>(i?i.getLineCount():0)?n.format(c.GoToLineNLS.gotoLineLabelEmptyWithLineLimit,i?i.getLineCount():0):n.format(c.GoToLineNLS.gotoLineLabelEmptyWithLineAndColumnLimit,i?i.getLineMaxColumn(t.lineNumber):0)}},t.prototype.getLabel=function(){return this.parseResult.label},t.prototype.getAriaLabel=function(){var e=this.editor.getPosition(),t=e?e.lineNumber:0;return n.format(c.GoToLineNLS.gotoLineAriaLabel,t,this.parseResult.label)},t.prototype.run=function(e,t){return 1===e?this.runOpen():this.runPreview()},t.prototype.runOpen=function(){if(!this.parseResult.isValid)return!1;var e=this.toSelection();return this.editor.setSelection(e),this.editor.revealRangeInCenter(e,0),this.editor.focus(),!0},t.prototype.runPreview=function(){if(!this.parseResult.isValid)return this.decorator.clearDecorations(),!1;var e=this.toSelection()\n;return this.editor.revealRangeInCenter(e,0),this.decorator.decorateLine(e,this.editor),!1},t.prototype.toSelection=function(){return new l.Range(this.parseResult.position.lineNumber,this.parseResult.position.column,this.parseResult.position.lineNumber,this.parseResult.position.column)},t}(i.QuickOpenEntry);t.GotoLineEntry=h;var p=function(e){function t(){return e.call(this,c.GoToLineNLS.gotoLineActionInput,{id:\"editor.action.gotoLine\",label:c.GoToLineNLS.gotoLineActionLabel,alias:\"Go to Line...\",precondition:void 0,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=this;this._show(this.getController(t),{getModel:function(e){return new i.QuickOpenModel([new h(e,t,n.getController(t))])},getAutoFocus:function(e){return{autoFocusFirstEntry:e.length>0}}})},t}(d.BaseEditorQuickOpenAction);t.GotoLineAction=p,s.registerEditorAction(p)})),define(n[590],i([0,1,5,24,10,61,155,12,23,169,34,59]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=function(e){function t(t,n,i,o,r){var s=e.call(this)||this;return s.key=t,s.keyAriaLabel=n,s.setHighlights(i),s.action=o,s.editor=r,s}return r(t,e),t.prototype.getLabel=function(){return this.action.label},t.prototype.getAriaLabel=function(){return this.keyAriaLabel?n.format(h.QuickCommandNLS.ariaLabelEntryWithKey,this.getLabel(),this.keyAriaLabel):n.format(h.QuickCommandNLS.ariaLabelEntry,this.getLabel())},t.prototype.getGroupLabel=function(){return this.key},t.prototype.run=function(e,t){var n=this;return 1===e&&(setTimeout((function(){n.editor.focus();try{(n.action.run()||Promise.resolve()).then(void 0,o.onUnexpectedError)}catch(e){o.onUnexpectedError(e)}}),50),!0)},t}(a.QuickOpenEntryGroup);t.EditorActionCommandEntry=p;var g=function(e){function t(){return e.call(this,h.QuickCommandNLS.quickCommandActionInput,{id:\"editor.action.quickCommand\",label:h.QuickCommandNLS.quickCommandActionLabel,alias:\"Command Palette\",precondition:void 0,\nkbOpts:{kbExpr:u.EditorContextKeys.focus,primary:i.isIE?571:59,weight:100},contextMenuOpts:{group:\"z_commands\",order:1}})||this}return r(t,e),t.prototype.run=function(e,t){var n=this,i=e.get(c.IKeybindingService);this._show(this.getController(t),{getModel:function(e){return new a.QuickOpenModel(n._editorActionsToEntries(i,t,e))},getAutoFocus:function(e){return{autoFocusFirstEntry:!0,autoFocusPrefixMatch:e}}})},t.prototype._sort=function(e,t){var n=(e.getLabel()||\"\").toLowerCase(),i=(t.getLabel()||\"\").toLowerCase();return n.localeCompare(i)},t.prototype._editorActionsToEntries=function(e,t,n){for(var i=[],o=0,r=t.getSupportedActions();o<r.length;o++){var a=r[o],l=e.lookupKeybinding(a.id);if(a.label){var u=s.matchesFuzzy(n,a.label);u&&i.push(new p(l&&l.getLabel()||\"\",l&&l.getAriaLabel()||\"\",u,a,t))}}return i=i.sort(this._sort)},t}(d.BaseEditorQuickOpenAction);t.QuickCommandAction=g,l.registerEditorAction(g)})),\ndefine(n[591],i([0,1,26,61,5,155,12,3,23,17,496,169,59,330,183,231]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var g=function(e){function t(t,n,i,o,r,s,a){var l=e.call(this)||this;return l.name=t,l.type=n,l.description=i,l.range=o,l.setHighlights(r),l.editor=s,l.decorator=a,l}return r(t,e),t.prototype.getLabel=function(){return this.name},t.prototype.getAriaLabel=function(){return o.format(p.QuickOutlineNLS.entryAriaLabel,this.name)},t.prototype.getIcon=function(){return this.type},t.prototype.getDescription=function(){return this.description},t.prototype.getType=function(){return this.type},t.prototype.getRange=function(){return this.range},t.prototype.run=function(e,t){return 1===e?this.runOpen(t):this.runPreview()},t.prototype.runOpen=function(e){var t=this.toSelection();return this.editor.setSelection(t),this.editor.revealRangeInCenter(t,0),this.editor.focus(),!0},t.prototype.runPreview=function(){var e=this.toSelection()\n;return this.editor.revealRangeInCenter(e,0),this.decorator.decorateLine(this.range,this.editor),!1},t.prototype.toSelection=function(){return new l.Range(this.range.startLineNumber,this.range.startColumn||1,this.range.startLineNumber,this.range.startColumn||1)},t}(s.QuickOpenEntryGroup);t.SymbolEntry=g;var f=function(e){function t(){return e.call(this,p.QuickOutlineNLS.quickOutlineActionInput,{id:\"editor.action.quickOutline\",label:p.QuickOutlineNLS.quickOutlineActionLabel,alias:\"Go to Symbol...\",precondition:u.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:u.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:\"navigation\",order:3}})||this}return r(t,e),t.prototype.run=function(e,t){var i=this;if(t.hasModel()){var o=t.getModel();if(d.DocumentSymbolProviderRegistry.has(o))return c.getDocumentSymbols(o,!0,n.CancellationToken.None).then((function(e){0!==e.length&&i._run(t,e)}))}},t.prototype._run=function(e,t){var n=this;this._show(this.getController(e),{getModel:function(i){\nreturn new s.QuickOpenModel(n.toQuickOpenEntries(e,t,i))},getAutoFocus:function(e){return 0===e.indexOf(\":\")&&(e=e.substr(\":\".length)),{autoFocusPrefixMatch:e,autoFocusFirstEntry:!!e}}})},t.prototype.symbolEntry=function(e,t,n,i,o,r,s){return new g(e,t,n,l.Range.lift(i),o,r,s)},t.prototype.toQuickOpenEntries=function(e,t,n){var r=this.getController(e),s=[],a=n;0===n.indexOf(\":\")&&(a=a.substr(\":\".length));for(var l=0,u=t;l<u.length;l++){var c=u[l],h=o.trim(c.name),g=i.matchesFuzzy(a,h);if(g){var f=void 0;c.containerName&&(f=c.containerName),s.push(this.symbolEntry(h,d.SymbolKinds.toCssClassName(c.kind),f,c.range,g,e,r))}}if(n&&(s=0===n.indexOf(\":\")?s.sort(this.sortScoped.bind(this,n.toLowerCase())):s.sort(this.sortNormal.bind(this,n.toLowerCase()))),s.length>0&&0===n.indexOf(\":\")){for(var m=null,v=null,_=0,y=0;y<s.length;y++){var C=s[y];m!==C.getType()?(v&&v.setGroupLabel(this.typeToLabel(m||\"\",_)),m=C.getType(),v=C,_=1,C.setShowBorder(y>0)):_++}v&&v.setGroupLabel(this.typeToLabel(m||\"\",_))\n}else s.length>0&&s[0].setGroupLabel(o.format(p.QuickOutlineNLS._symbols_,s.length));return s},t.prototype.typeToLabel=function(e,t){switch(e){case\"module\":return o.format(p.QuickOutlineNLS._modules_,t);case\"class\":return o.format(p.QuickOutlineNLS._class_,t);case\"interface\":return o.format(p.QuickOutlineNLS._interface_,t);case\"method\":return o.format(p.QuickOutlineNLS._method_,t);case\"function\":return o.format(p.QuickOutlineNLS._function_,t);case\"property\":return o.format(p.QuickOutlineNLS._property_,t);case\"variable\":return o.format(p.QuickOutlineNLS._variable_,t);case\"var\":return o.format(p.QuickOutlineNLS._variable2_,t);case\"constructor\":return o.format(p.QuickOutlineNLS._constructor_,t);case\"call\":return o.format(p.QuickOutlineNLS._call_,t)}return e},t.prototype.sortNormal=function(e,t,n){var i=t.getLabel().toLowerCase(),o=n.getLabel().toLowerCase(),r=i.localeCompare(o);if(0!==r)return r;var s=t.getRange(),a=n.getRange();return s.startLineNumber-a.startLineNumber},t.prototype.sortScoped=function(e,t,n){\ne=e.substr(\":\".length);var i=t.getType(),o=n.getType(),r=i.localeCompare(o);if(0!==r)return r;if(e){var s=t.getLabel().toLowerCase(),a=n.getLabel().toLowerCase(),l=s.localeCompare(a);if(0!==l)return l}var u=t.getRange(),d=n.getRange();return u.startLineNumber-d.startLineNumber},t}(h.BaseEditorQuickOpenAction);t.QuickOutlineAction=f,a.registerEditorAction(f)})),define(n[592],i([0,1,6,46,548]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.getActiveCodeEditor=function(){return null},t.prototype.openCodeEditor=function(e,t,n){return t?Promise.resolve(this.doOpenEditor(t,e)):Promise.resolve(null)},t.prototype.doOpenEditor=function(e,t){if(!this.findModel(e,t.resource)){if(t.resource){var o=t.resource.scheme;if(o===i.Schemas.http||o===i.Schemas.https)return n.windowOpenNoOpener(t.resource.toString()),e}return null}var r=t.options?t.options.selection:null\n;if(r)if(\"number\"==typeof r.endLineNumber&&\"number\"==typeof r.endColumn)e.setSelection(r),e.revealRangeInCenter(r,1);else{var s={lineNumber:r.startLineNumber,column:r.startColumn};e.setPosition(s),e.revealPositionInCenter(s,1)}return e},t.prototype.findModel=function(e,t){var n=e.getModel();return n&&n.uri.toString()!==t.toString()?null:n},t}(o.CodeEditorServiceImpl);t.StandaloneCodeEditorServiceImpl=s})),define(n[593],i([0,1,44,20]),(function(e,t,n,i){\"use strict\";var o,r,s;Object.defineProperty(t,\"__esModule\",{value:!0}),t.vs={base:\"vs\",inherit:!1,rules:[{token:\"\",foreground:\"000000\",background:\"fffffe\"},{token:\"invalid\",foreground:\"cd3131\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"001188\"},{token:\"variable.predefined\",foreground:\"4864AA\"},{token:\"constant\",foreground:\"dd0000\"},{token:\"comment\",foreground:\"008000\"},{token:\"number\",foreground:\"098658\"},{token:\"number.hex\",foreground:\"3030c0\"},{token:\"regexp\",foreground:\"800000\"},{\ntoken:\"annotation\",foreground:\"808080\"},{token:\"type\",foreground:\"008080\"},{token:\"delimiter\",foreground:\"000000\"},{token:\"delimiter.html\",foreground:\"383838\"},{token:\"delimiter.xml\",foreground:\"0000FF\"},{token:\"tag\",foreground:\"800000\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"800000\"},{token:\"metatag\",foreground:\"e00000\"},{token:\"metatag.content.html\",foreground:\"FF0000\"},{token:\"metatag.html\",foreground:\"808080\"},{token:\"metatag.xml\",foreground:\"808080\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"863B00\"},{token:\"string.key.json\",foreground:\"A31515\"},{token:\"string.value.json\",foreground:\"0451A5\"},{token:\"attribute.name\",foreground:\"FF0000\"},{token:\"attribute.value\",foreground:\"0451A5\"},{token:\"attribute.value.number\",foreground:\"098658\"},{token:\"attribute.value.unit\",foreground:\"098658\"},{token:\"attribute.value.html\",foreground:\"0000FF\"},{token:\"attribute.value.xml\",foreground:\"0000FF\"},{token:\"string\",\nforeground:\"A31515\"},{token:\"string.html\",foreground:\"0000FF\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"string.yaml\",foreground:\"0451A5\"},{token:\"keyword\",foreground:\"0000FF\"},{token:\"keyword.json\",foreground:\"0451A5\"},{token:\"keyword.flow\",foreground:\"AF00DB\"},{token:\"keyword.flow.scss\",foreground:\"0000FF\"},{token:\"operator.scss\",foreground:\"666666\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"666666\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(o={},o[i.editorBackground]=\"#FFFFFE\",o[i.editorForeground]=\"#000000\",o[i.editorInactiveSelection]=\"#E5EBF1\",o[n.editorIndentGuides]=\"#D3D3D3\",o[n.editorActiveIndentGuides]=\"#939393\",o[i.editorSelectionHighlight]=\"#ADD6FF4D\",o)},t.vs_dark={base:\"vs-dark\",inherit:!1,rules:[{token:\"\",foreground:\"D4D4D4\",background:\"1E1E1E\"},{token:\"invalid\",foreground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"74B0DF\"},{token:\"variable.predefined\",foreground:\"4864AA\"\n},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"B5CEA8\"},{token:\"number.hex\",foreground:\"5BB498\"},{token:\"regexp\",foreground:\"B46695\"},{token:\"annotation\",foreground:\"cc6666\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"DCDCDC\"},{token:\"delimiter.html\",foreground:\"808080\"},{token:\"delimiter.xml\",foreground:\"808080\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"A79873\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"DD6A6F\"},{token:\"metatag.content.html\",foreground:\"9CDCFE\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key.json\",foreground:\"9CDCFE\"},{token:\"string.value.json\",foreground:\"CE9178\"},{token:\"attribute.name\",\nforeground:\"9CDCFE\"},{token:\"attribute.value\",foreground:\"CE9178\"},{token:\"attribute.value.number.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.unit.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.hex.css\",foreground:\"D4D4D4\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"keyword.json\",foreground:\"CE9178\"},{token:\"keyword.flow.scss\",foreground:\"569CD6\"},{token:\"operator.scss\",foreground:\"909090\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(r={},r[i.editorBackground]=\"#1E1E1E\",r[i.editorForeground]=\"#D4D4D4\",r[i.editorInactiveSelection]=\"#3A3D41\",r[n.editorIndentGuides]=\"#404040\",r[n.editorActiveIndentGuides]=\"#707070\",r[i.editorSelectionHighlight]=\"#ADD6FF26\",r)},t.hc_black={base:\"hc-black\",inherit:!1,rules:[{token:\"\",foreground:\"FFFFFF\",background:\"000000\"},{token:\"invalid\",\nforeground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"1AEBFF\"},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"FFFFFF\"},{token:\"regexp\",foreground:\"C0C0C0\"},{token:\"annotation\",foreground:\"569CD6\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"FFFF00\"},{token:\"delimiter.html\",foreground:\"FFFF00\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta\",foreground:\"D4D4D4\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"569CD6\"},{token:\"metatag.content.html\",foreground:\"1AEBFF\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key\",foreground:\"9CDCFE\"},{token:\"string.value\",foreground:\"CE9178\"},{\ntoken:\"attribute.name\",foreground:\"569CD6\"},{token:\"attribute.value\",foreground:\"3FF23F\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:(s={},s[i.editorBackground]=\"#000000\",s[i.editorForeground]=\"#FFFFFF\",s[n.editorIndentGuides]=\"#FFFFFF\",s[n.editorActiveIndentGuides]=\"#FFFFFF\",s)}})),define(n[594],i([0,1,6,27,4,17,357,593,42,20,14,2]),(function(e,t,n,i,o,s,a,l,u,d,c,h){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var p=\"vs\",g=\"vs-dark\",f=\"hc-black\",m=u.Registry.as(d.Extensions.ColorContribution),v=u.Registry.as(c.Extensions.ThemingContribution),_=function(){function e(e,t){this.themeData=t;var n=t.base;e.length>0?(this.id=n+\" \"+e,this.themeName=e):(this.id=n,this.themeName=n),this.colors=null,this.defaultColors=Object.create(null),\nthis._tokenTheme=null}return Object.defineProperty(e.prototype,\"base\",{get:function(){return this.themeData.base},enumerable:!0,configurable:!0}),e.prototype.notifyBaseUpdated=function(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)},e.prototype.getColors=function(){if(!this.colors){var e=new Map;for(var t in this.themeData.colors)e.set(t,i.Color.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){var n=C(this.themeData.base);for(var t in n.colors)e.has(t)||e.set(t,i.Color.fromHex(n.colors[t]))}this.colors=e}return this.colors},e.prototype.getColor=function(e,t){var n=this.getColors().get(e);return n||(!1!==t?this.getDefault(e):void 0)},e.prototype.getDefault=function(e){var t=this.defaultColors[e];return t||(t=m.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)},e.prototype.defines=function(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)},Object.defineProperty(e.prototype,\"type\",{get:function(){switch(this.base){case p:return\"light\";case f:return\"hc\"\n;default:return\"dark\"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"tokenTheme\",{get:function(){if(!this._tokenTheme){var e=[],t=[];if(this.themeData.inherit){var n=C(this.themeData.base);e=n.rules,n.encodedTokensColors&&(t=n.encodedTokensColors)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=a.TokenTheme.createFromRawTokenTheme(e,t)}return this._tokenTheme},enumerable:!0,configurable:!0}),e.prototype.getTokenStyleMetadata=function(e,t){},e}();function y(e){return e===p||e===g||e===f}function C(e){switch(e){case p:return l.vs;case g:return l.vs_dark;case f:return l.hc_black}}function b(e){var t=C(e);return new _(e,t)}var S=function(e){function t(){var t=e.call(this)||this;return t._onThemeChange=t._register(new o.Emitter),t.onThemeChange=t._onThemeChange.event,t._environment=Object.create(null),t._knownThemes=new Map,t._knownThemes.set(p,b(p)),t._knownThemes.set(g,b(g)),t._knownThemes.set(f,b(f)),t._css=\"\",\nt._globalStyleElement=null,t._styleElements=[],t.setTheme(p),t}return r(t,e),t.prototype.registerEditorContainer=function(e){return n.isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()},t.prototype._registerRegularEditorContainer=function(){return this._globalStyleElement||(this._globalStyleElement=n.createStyleSheet(),this._globalStyleElement.className=\"monaco-colors\",this._globalStyleElement.innerHTML=this._css,this._styleElements.push(this._globalStyleElement)),h.Disposable.None},t.prototype._registerShadowDomContainer=function(e){var t=this,i=n.createStyleSheet(e);return i.className=\"monaco-colors\",i.innerHTML=this._css,this._styleElements.push(i),{dispose:function(){for(var e=0;e<t._styleElements.length;e++)if(t._styleElements[e]===i)return void t._styleElements.splice(e,1)}}},t.prototype.defineTheme=function(e,t){if(!/^[a-z0-9\\-]+$/i.test(e))throw new Error(\"Illegal theme name!\");if(!y(t.base)&&!y(e))throw new Error(\"Illegal theme base!\")\n;this._knownThemes.set(e,new _(e,t)),y(e)&&this._knownThemes.forEach((function(t){t.base===e&&t.notifyBaseUpdated()})),this._theme&&this._theme.themeName===e&&this.setTheme(e)},t.prototype.getTheme=function(){return this._theme},t.prototype.setTheme=function(e){var t,n=this;if(t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(p),this._theme===t)return t.id;this._theme=t;var i=[],o={},r={addRule:function(e){o[e]||(i.push(e),o[e]=!0)}};v.getThemingParticipants().forEach((function(e){return e(t,r,n._environment)}));var l=t.tokenTheme.getColorMap();return r.addRule(a.generateTokensCSSForColorMap(l)),this._css=i.join(\"\\n\"),this._styleElements.forEach((function(e){return e.innerHTML=n._css})),s.TokenizationRegistry.setColorMap(l),this._onThemeChange.fire(t),t.id},t.prototype.getIconTheme=function(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}},t}(h.Disposable);t.StandaloneThemeServiceImpl=S})),define(n[595],i([0,1,547,66,96,4,35,14,34,2]),(function(e,t,n,i,o,s,a,l,u,d){\n\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,i,o,r,a){var l=e.call(this)||this;return l._onDidContextMenu=l._register(new s.Emitter),l.contextMenuHandler=new n.ContextMenuHandler(o,t,i,r,a),l}return r(t,e),t.prototype.configure=function(e){this.contextMenuHandler.configure(e)},t.prototype.showContextMenu=function(e){this.contextMenuHandler.showContextMenu(e),this._onDidContextMenu.fire()},t=h([g(0,o.ITelemetryService),g(1,a.INotificationService),g(2,i.IContextViewService),g(3,u.IKeybindingService),g(4,l.IThemeService)],t)}(d.Disposable);t.ContextMenuService=c})),define(n[170],i([0,1,6,153,2,474,43,85,18,11,34,42,97,14,477,206,408,407,64]),(function(e,t,n,i,o,s,a,u,d,c,p,f,m,v,_,y,C,b,S){\"use strict\";var w;Object.defineProperty(t,\"__esModule\",{value:!0}),t.IListService=c.createDecorator(\"listService\");var E=function(){function e(e){this._themeService=e,this.disposables=new o.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,\nthis._hasCreatedStyleController=!1}return Object.defineProperty(e.prototype,\"lastFocusedList\",{get:function(){return this._lastFocusedWidget},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var r=this;if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;var s=new i.DefaultStyleController(n.createStyleSheet(),\"\");this.disposables.add(m.attachListStyler(s,this._themeService))}if(this.lists.some((function(t){return t.widget===e})))throw new Error(\"Cannot register the same widget multiple times\");var a={widget:e,extraContextKeys:t};return this.lists.push(a),e.getHTMLElement()===document.activeElement&&(this._lastFocusedWidget=e),o.combinedDisposable(e.onDidFocus((function(){return r._lastFocusedWidget=e})),o.toDisposable((function(){return r.lists.splice(r.lists.indexOf(a),1)})),e.onDidDispose((function(){r.lists=r.lists.filter((function(e){return e!==a})),r._lastFocusedWidget===e&&(r._lastFocusedWidget=void 0)})))},e.prototype.dispose=function(){this.disposables.dispose()},\ne=h([g(0,v.IThemeService)],e)}();t.ListService=E;var L=new d.RawContextKey(\"listFocus\",!0);t.WorkbenchListSupportsMultiSelectContextKey=new d.RawContextKey(\"listSupportsMultiselect\",!0),t.WorkbenchListFocusContextKey=d.ContextKeyExpr.and(L,d.ContextKeyExpr.not(_.InputFocusedContextKey)),t.WorkbenchListHasSelectionOrFocus=new d.RawContextKey(\"listHasSelectionOrFocus\",!1),t.WorkbenchListDoubleSelection=new d.RawContextKey(\"listDoubleSelection\",!1),t.WorkbenchListMultiSelection=new d.RawContextKey(\"listMultiSelection\",!1),t.WorkbenchListSupportsKeyboardNavigation=new d.RawContextKey(\"listSupportsKeyboardNavigation\",!0),t.WorkbenchListAutomaticKeyboardNavigationKey=\"listAutomaticKeyboardNavigation\",t.WorkbenchListAutomaticKeyboardNavigation=new d.RawContextKey(t.WorkbenchListAutomaticKeyboardNavigationKey,!0),t.didBindWorkbenchListAutomaticKeyboardNavigation=!1,t.multiSelectModifierSettingKey=\"workbench.list.multiSelectModifier\",t.openModeSettingKey=\"workbench.list.openMode\",\nt.horizontalScrollingKey=\"workbench.list.horizontalScrolling\",t.keyboardNavigationSettingKey=\"workbench.list.keyboardNavigation\",t.automaticKeyboardNavigationSettingKey=\"workbench.list.automaticKeyboardNavigation\";var D=\"workbench.tree.indent\",N=\"workbench.tree.renderIndentGuides\";function x(e){return\"alt\"===e.getValue(t.multiSelectModifierSettingKey)}function I(e){return\"doubleClick\"!==e.getValue(t.openModeSettingKey)}var M=function(e){function n(t){var n=e.call(this)||this;return n.configurationService=t,n.useAltAsMultipleSelectionModifier=x(t),n.registerListeners(),n}return r(n,e),n.prototype.registerListeners=function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(n){n.affectsConfiguration(t.multiSelectModifierSettingKey)&&(e.useAltAsMultipleSelectionModifier=x(e.configurationService))})))},n.prototype.isSelectionSingleChangeEvent=function(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:i.isSelectionSingleChangeEvent(e)},\nn.prototype.isSelectionRangeChangeEvent=function(e){return i.isSelectionRangeChangeEvent(e)},n}(o.Disposable),k=function(e){function n(t,n){var i=e.call(this)||this;return i.configurationService=t,i.existingOpenController=n,i.openOnSingleClick=I(t),i.registerListeners(),i}return r(n,e),n.prototype.registerListeners=function(){var e=this;this._register(this.configurationService.onDidChangeConfiguration((function(n){n.affectsConfiguration(t.openModeSettingKey)&&(e.openOnSingleClick=I(e.configurationService))})))},n.prototype.shouldOpen=function(e){if(e instanceof MouseEvent){var t=0===e.button,n=2===e.detail;return!(t&&!this.openOnSingleClick&&!n)&&(!(!t&&1!==e.button)&&(!this.existingOpenController||this.existingOpenController.shouldOpen(e)))}return!this.existingOpenController||this.existingOpenController.shouldOpen(e)},n}(o.Disposable);function T(e,t){var n=!1;return function(i){if(n)return n=!1,!1;var o=t.softDispatch(i,e);return o&&o.enterChord?(n=!0,!1):(n=!1,!0)}}var R=function(e){\nfunction n(t,n,i,o,r,s,a,l,u,d,c){var h=this,p=F(n,r,s,u,d,c),g=p.options,f=p.getAutomaticKeyboardNavigation,m=p.disposable;return(h=e.call(this,t,n,i,o,g)||this).disposables.add(m),h.internals=new W(h,g,f,r.overrideStyles,s,a,l,u,c),h.disposables.add(h.internals),h}return r(n,e),n=h([g(5,d.IContextKeyService),g(6,t.IListService),g(7,v.IThemeService),g(8,a.IConfigurationService),g(9,p.IKeybindingService),g(10,S.IAccessibilityService)],n)}(y.ObjectTree);t.WorkbenchObjectTree=R;var O=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h){var p=this,g=F(n,s,a,d,c,h),f=g.options,m=g.getAutomaticKeyboardNavigation,v=g.disposable;return(p=e.call(this,t,n,i,o,r,f)||this).disposables.add(v),p.internals=new W(p,f,m,s.overrideStyles,a,l,u,d,h),p.disposables.add(p.internals),p}return r(n,e),n.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles)},\nn=h([g(6,d.IContextKeyService),g(7,t.IListService),g(8,v.IThemeService),g(9,a.IConfigurationService),g(10,p.IKeybindingService),g(11,S.IAccessibilityService)],n)}(b.DataTree);t.WorkbenchDataTree=O;var P=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h){var p=this,g=F(n,s,a,d,c,h),f=g.options,m=g.getAutomaticKeyboardNavigation,v=g.disposable;return(p=e.call(this,t,n,i,o,r,f)||this).disposables.add(v),p.internals=new W(p,f,m,s.overrideStyles,a,l,u,d,h),p.disposables.add(p.internals),p}return r(n,e),n.prototype.updateOptions=function(t){void 0===t&&(t={}),e.prototype.updateOptions.call(this,t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles)},n=h([g(6,d.IContextKeyService),g(7,t.IListService),g(8,v.IThemeService),g(9,a.IConfigurationService),g(10,p.IKeybindingService),g(11,S.IAccessibilityService)],n)}(C.AsyncDataTree);t.WorkbenchAsyncDataTree=P;var A=function(e){function n(t,n,i,o,r,s,a,l,u,d,c,h,p){var g=this,f=F(n,a,l,c,h,p),m=f.options,v=f.getAutomaticKeyboardNavigation,_=f.disposable\n;return(g=e.call(this,t,n,i,o,r,s,m)||this).disposables.add(_),g.internals=new W(g,m,v,a.overrideStyles,l,u,d,c,p),g.disposables.add(g.internals),g}return r(n,e),n=h([g(7,d.IContextKeyService),g(8,t.IListService),g(9,v.IThemeService),g(10,a.IConfigurationService),g(11,p.IKeybindingService),g(12,S.IAccessibilityService)],n)}(C.CompressibleAsyncDataTree);function F(e,n,i,r,s,u){t.WorkbenchListSupportsKeyboardNavigation.bindTo(i),t.didBindWorkbenchListAutomaticKeyboardNavigation||(t.WorkbenchListAutomaticKeyboardNavigation.bindTo(i),t.didBindWorkbenchListAutomaticKeyboardNavigation=!0);var d=function(){var e=i.getContextKeyValue(t.WorkbenchListAutomaticKeyboardNavigationKey);return e&&(e=r.getValue(t.automaticKeyboardNavigationSettingKey)),e},c=u.isScreenReaderOptimized()?\"simple\":r.getValue(t.keyboardNavigationSettingKey),h=void 0!==n.horizontalScrolling?n.horizontalScrolling:function(e){return a.getMigratedSettingValue(e,t.horizontalScrollingKey,\"workbench.tree.horizontalScrolling\")\n}(r),p=I(r),g=function(e,t,n){var i=new o.DisposableStore,r=l({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){var s=new M(t);r.multipleSelectionController=s,i.add(s)}var a=new k(t,e.openController);return r.openController=a,i.add(a),r.keyboardNavigationDelegate={mightProducePrintableCharacter:function(e){return n.mightProducePrintableCharacter(e)}},[r,i]}(n,r,s),f=g[0],m=g[1],v=n.additionalScrollHeight;return{getAutomaticKeyboardNavigation:d,disposable:m,options:l(l({keyboardSupport:!1},f),{indent:r.getValue(D),renderIndentGuides:r.getValue(N),automaticKeyboardNavigation:d(),simpleKeyboardNavigation:\"simple\"===c,filterOnType:\"filter\"===c,horizontalScrolling:h,openOnSingleClick:p,keyboardNavigationEventFilter:T(e,s),additionalScrollHeight:v,hideTwistiesOfChildlessElements:n.hideTwistiesOfChildlessElements})}}t.WorkbenchCompressibleAsyncDataTree=A;var W=function(){function e(e,n,i,o,r,s,a,l,u){var d=this;this.tree=e,this.themeService=a,this.disposables=[],\nthis.contextKeyService=function(e,t){var n=e.createScoped(t.getHTMLElement());return L.bindTo(n),n}(r,e),t.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService).set(!(!1===n.multipleSelectionSupport)),this.hasSelectionOrFocus=t.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=t.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=t.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=x(l);var c=new Set;c.add(t.WorkbenchListAutomaticKeyboardNavigationKey);var h=function(){var n=u.isScreenReaderOptimized()?\"simple\":l.getValue(t.keyboardNavigationSettingKey);e.updateOptions({simpleKeyboardNavigation:\"simple\"===n,filterOnType:\"filter\"===n})};this.updateStyleOverrides(o),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection((function(){var t=e.getSelection(),n=e.getFocus();d.hasSelectionOrFocus.set(t.length>0||n.length>0),\nd.hasMultiSelection.set(t.length>1),d.hasDoubleSelection.set(2===t.length)})),e.onDidChangeFocus((function(){var t=e.getSelection(),n=e.getFocus();d.hasSelectionOrFocus.set(t.length>0||n.length>0)})),l.onDidChangeConfiguration((function(n){if(n.affectsConfiguration(t.openModeSettingKey)&&e.updateOptions({openOnSingleClick:I(l)}),n.affectsConfiguration(t.multiSelectModifierSettingKey)&&(d._useAltAsMultipleSelectionModifier=x(l)),n.affectsConfiguration(D)){var o=l.getValue(D);e.updateOptions({indent:o})}if(n.affectsConfiguration(N)){var r=l.getValue(N);e.updateOptions({renderIndentGuides:r})}n.affectsConfiguration(t.keyboardNavigationSettingKey)&&h(),n.affectsConfiguration(t.automaticKeyboardNavigationSettingKey)&&e.updateOptions({automaticKeyboardNavigation:i()})})),this.contextKeyService.onDidChangeContext((function(t){t.affectsSome(c)&&e.updateOptions({automaticKeyboardNavigation:i()})})),u.onDidChangeScreenReaderOptimized((function(){return h()})))}return e.prototype.updateStyleOverrides=function(e){\no.dispose(this.styler),this.styler=e?m.attachListStyler(this.tree,this.themeService,e):o.Disposable.None},e.prototype.dispose=function(){this.disposables=o.dispose(this.disposables),this.styler=o.dispose(this.styler)},e=h([g(4,d.IContextKeyService),g(5,t.IListService),g(6,v.IThemeService),g(7,a.IConfigurationService),g(8,S.IAccessibilityService)],e)}();f.Registry.as(u.Extensions.Configuration).registerConfiguration({id:\"workbench\",order:7,title:s.localize(0,null),type:\"object\",properties:(w={},w[t.multiSelectModifierSettingKey]={type:\"string\",enum:[\"ctrlCmd\",\"alt\"],enumDescriptions:[s.localize(1,null),s.localize(2,null)],default:\"ctrlCmd\",description:s.localize(3,null)},w[t.openModeSettingKey]={type:\"string\",enum:[\"singleClick\",\"doubleClick\"],default:\"singleClick\",description:s.localize(4,null)},w[t.horizontalScrollingKey]={type:\"boolean\",default:!1,description:s.localize(5,null)},w[\"workbench.tree.horizontalScrolling\"]={type:\"boolean\",default:!1,description:s.localize(6,null),\ndeprecationMessage:s.localize(7,null,t.horizontalScrollingKey)},w[D]={type:\"number\",default:8,minimum:0,maximum:40,description:s.localize(8,null)},w[N]={type:\"string\",enum:[\"none\",\"onHover\",\"always\"],default:\"onHover\",description:s.localize(9,null)},w[t.keyboardNavigationSettingKey]={type:\"string\",enum:[\"simple\",\"highlight\",\"filter\"],enumDescriptions:[s.localize(10,null),s.localize(11,null),s.localize(12,null)],default:\"highlight\",description:s.localize(13,null)},w[t.automaticKeyboardNavigationSettingKey]={type:\"boolean\",default:!0,markdownDescription:s.localize(14,null)},w)})})),define(n[596],i([0,1,6,27,4,2,46,39,167,3,30,84,575,450,11,116,170,20,14,123,113,279,314]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L,D){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var N=function(){function e(e,t){var n=this;this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new s.DisposableStore,this._callOnModelChange=new s.DisposableStore,\nthis._callOnDispose.add(this._editor.onDidChangeModel((function(){return n._onModelChanged()}))),this._onModelChanged()}return e.prototype.dispose=function(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()},e.prototype._onModelChanged=function(){this._callOnModelChange.clear();var e=this._editor.getModel();if(e)for(var t=0,n=this._model.groups;t<n.length;t++){var i=n[t];if(l.isEqual(i.uri,e.uri))return void this._addDecorations(i)}},e.prototype._addDecorations=function(t){var n=this;if(this._editor.hasModel()){this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((function(e){return n._onDecorationChanged()})));for(var i=[],o=[],r=0,s=t.children.length;r<s;r++){var a=t.children[r];this._decorationIgnoreSet.has(a.id)||(i.push({range:a.range,options:e.DecorationOptions}),o.push(r))}var l=this._editor.deltaDecorations([],i);for(r=0;r<l.length;r++)this._decorations.set(l[r],t.children[o[r]])}},e.prototype._onDecorationChanged=function(){\nvar e=this,t=[],n=this._editor.getModel();if(n){this._decorations.forEach((function(i,o){var r=n.getDecorationRange(o);if(r){var s=!1;if(!p.Range.equalsRange(r,i.range))p.Range.spansMultipleLines(r)?s=!0:i.range.endColumn-i.range.startColumn!==r.endColumn-r.startColumn&&(s=!0),s?(e._decorationIgnoreSet.add(i.id),t.push(o)):i.range=r}}));for(var i=0,o=t.length;i<o;i++)this._decorations.delete(t[i]);this._editor.deltaDecorations(t,[])}},e.prototype.removeDecorations=function(){var e=[];this._decorations.forEach((function(t,n){e.push(n)})),this._editor.deltaDecorations(e,[]),this._decorations.clear()},e.DecorationOptions=f.ModelDecorationOptions.register({stickiness:1,className:\"reference-decoration\"}),e}(),x=function(){function e(){this.ratio=.7,this.heightInLines=18}return e.fromJSON=function(e){var t,n;try{var i=JSON.parse(e);t=i.ratio,n=i.heightInLines}catch(e){}return{ratio:t||.7,heightInLines:n||18}},e}();t.LayoutData=x;var I=function(e){function t(t,n,i,r,a,l,u,d){var c=e.call(this,t,{showFrame:!1,\nshowArrow:!0,isResizeable:!0,isAccessible:!0})||this;return c._defaultTreeKeyboardSupport=n,c.layoutData=i,c._textModelResolverService=a,c._instantiationService=l,c._peekViewService=u,c._uriLabel=d,c._disposeOnNewModel=new s.DisposableStore,c._callOnDispose=new s.DisposableStore,c._onDidSelectReference=new o.Emitter,c.onDidSelectReference=c._onDidSelectReference.event,c._dim={height:0,width:0},c._applyTheme(r.getTheme()),c._callOnDispose.add(r.onThemeChange(c._applyTheme.bind(c))),c._peekViewService.addExclusiveWidget(t,c),c.create(),c}return r(t,e),t.prototype.dispose=function(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),s.dispose(this._preview),s.dispose(this._previewNotAvailableMessage),s.dispose(this._tree),s.dispose(this._previewModelReference),this._splitView.dispose(),e.prototype.dispose.call(this)},t.prototype._applyTheme=function(e){var t=e.getColor(E.peekViewBorder)||i.Color.transparent;this.style({arrowColor:t,frameColor:t,\nheaderBackgroundColor:e.getColor(E.peekViewTitleBackground)||i.Color.transparent,primaryHeadingColor:e.getColor(E.peekViewTitleForeground),secondaryHeadingColor:e.getColor(E.peekViewTitleInfoForeground)})},t.prototype.show=function(t){this.editor.revealRangeInCenterIfOutsideViewport(t,0),e.prototype.show.call(this,t,this.layoutData.heightInLines||18)},t.prototype.focusOnReferenceTree=function(){this._tree.domFocus()},t.prototype.focusOnPreviewEditor=function(){this._preview.focus()},t.prototype.isPreviewEditorFocused=function(){return this._preview.hasTextFocus()},t.prototype._onTitleClick=function(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?\"side\":\"open\",source:\"title\"})},t.prototype._fillBody=function(e){var t=this;this.setCssClass(\"reference-zone-widget\"),this._messageContainer=n.append(e,n.$(\"div.messages\")),n.hide(this._messageContainer),this._splitView=new D.SplitView(e,{orientation:1}),\nthis._previewContainer=n.append(e,n.$(\"div.preview.inline\"));this._preview=this._instantiationService.createInstance(u.EmbeddedCodeEditorWidget,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:\"auto\",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!1},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},this.editor),n.hide(this._previewContainer),this._previewNotAvailableMessage=f.TextModel.createFromString(_.localize(0,null)),this._treeContainer=n.append(e,n.$(\"div.ref-tree.inline\"));var i={ariaLabel:_.localize(1,null),keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new v.AriaProvider,keyboardNavigationLabelProvider:this._instantiationService.createInstance(v.StringRepresentationProvider),identityProvider:new v.IdentityProvider,overrideStyles:{listBackground:E.peekViewResultsBackground}}\n;this._tree=this._instantiationService.createInstance(b.WorkbenchAsyncDataTree,\"ReferencesWidget\",this._treeContainer,new v.Delegate,[this._instantiationService.createInstance(v.FileReferencesRenderer),this._instantiationService.createInstance(v.OneReferenceRenderer)],this._instantiationService.createInstance(v.DataSource),i),this._splitView.addView({onDidChange:o.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:function(e){t._preview.layout({height:t._dim.height,width:e})}},D.Sizing.Distribute),this._splitView.addView({onDidChange:o.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:function(e){t._treeContainer.style.height=t._dim.height+\"px\",t._treeContainer.style.width=e+\"px\",t._tree.layout(t._dim.height,e)}},D.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange((function(){t._dim.width&&(t.layoutData.ratio=t._splitView.getViewSize(0)/t._dim.width)}),void 0));var r=function(e,n){\ne instanceof L.OneReference&&(\"show\"===n&&t._revealReference(e,!1),t._onDidSelectReference.fire({element:e,kind:n,source:\"tree\"}))};this._tree.onDidChangeFocus((function(e){r(e.elements[0],\"show\")})),this._tree.onDidOpen((function(e){e.browserEvent instanceof MouseEvent&&(e.browserEvent.ctrlKey||e.browserEvent.metaKey||e.browserEvent.altKey)?r(e.elements[0],\"side\"):e.browserEvent instanceof KeyboardEvent||e.browserEvent instanceof MouseEvent&&2===e.browserEvent.detail||2===e.browserEvent.tapCount?r(e.elements[0],\"goto\"):r(e.elements[0],\"show\")})),n.hide(this._treeContainer)},t.prototype._onWidth=function(e){this._dim&&this._doLayoutBody(this._dim.height,e)},t.prototype._doLayoutBody=function(t,n){e.prototype._doLayoutBody.call(this,t,n),this._dim={height:t,width:n},this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(n),this._splitView.resizeView(0,n*this.layoutData.ratio)},t.prototype.setSelection=function(e){var t=this\n;return this._revealReference(e,!0).then((function(){t._model&&(t._tree.setSelection([e]),t._tree.setFocus([e]))}))},t.prototype.setModel=function(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()},t.prototype._onNewModel=function(){var e=this;return this._model?this._model.isEmpty?(this.setTitle(\"\"),this._messageContainer.innerHTML=_.localize(2,null),n.show(this._messageContainer),Promise.resolve(void 0)):(n.hide(this._messageContainer),this._decorationsManager=new N(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((function(t){return e._tree.rerender(t)}))),this._disposeOnNewModel.add(this._preview.onMouseDown((function(t){var n=t.event,i=t.target;if(2===n.detail){var o=e._getFocusedReference();o&&e._onDidSelectReference.fire({element:{uri:o.uri,range:i.range},kind:n.ctrlKey||n.metaKey||n.altKey?\"side\":\"open\",source:\"editor\"})}}))),\nn.addClass(this.container,\"results-loaded\"),n.show(this._treeContainer),n.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)},t.prototype._getFocusedReference=function(){var e=this._tree.getFocus()[0];return e instanceof L.OneReference?e:e instanceof L.FileReferences&&e.children.length>0?e.children[0]:void 0},t.prototype._revealReference=function(e,t){return d(this,void 0,void 0,(function(){var n,i,o,r,u;return c(this,(function(d){switch(d.label){case 0:return this._revealedReference===e?[2]:(this._revealedReference=e,e.uri.scheme!==a.Schemas.inMemory?this.setTitle(l.basenameOrAuthority(e.uri),this._uriLabel.getUriLabel(l.dirname(e.uri))):this.setTitle(_.localize(3,null)),n=this._textModelResolverService.createModelReference(e.uri),this._tree.getInput()!==e.parent?[3,1]:(this._tree.reveal(e),[3,3]));case 1:return t&&this._tree.reveal(e.parent),\n[4,this._tree.expand(e.parent)];case 2:d.sent(),this._tree.reveal(e),d.label=3;case 3:return[4,n];case 4:return i=d.sent(),this._model?(s.dispose(this._previewModelReference),(o=i.object)?(r=this._preview.getModel()===o.textEditorModel?0:1,u=p.Range.lift(e.range).collapseToStart(),this._previewModelReference=i,this._preview.setModel(o.textEditorModel),this._preview.setSelection(u),this._preview.revealRangeInCenter(u,r)):(this._preview.setModel(this._previewNotAvailableMessage),i.dispose()),[2]):(i.dispose(),[2])}}))}))},t=h([g(3,w.IThemeService),g(4,m.ITextModelService),g(5,y.IInstantiationService),g(6,E.IPeekViewService),g(7,C.ILabelService)],t)}(E.PeekViewWidget);t.ReferenceWidget=I,w.registerThemingParticipant((function(e,t){var n=e.getColor(E.peekViewResultsMatchHighlight);n&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: \"+n+\"; }\");var i=e.getColor(E.peekViewEditorMatchHighlight)\n;i&&t.addRule(\".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: \"+i+\"; }\");var o=e.getColor(E.peekViewEditorMatchHighlightBorder);o&&t.addRule(\".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid \"+o+\"; box-sizing: border-box; }\");var r=e.getColor(S.activeContrastBorder);r&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted \"+r+\"; box-sizing: border-box; }\");var s=e.getColor(E.peekViewResultsBackground);s&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree { background-color: \"+s+\"; }\");var a=e.getColor(E.peekViewResultsMatchForeground);a&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree { color: \"+a+\"; }\");var l=e.getColor(E.peekViewResultsFileForeground);l&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: \"+l+\"; }\");var u=e.getColor(E.peekViewResultsSelectionBackground)\n;u&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: \"+u+\"; }\");var d=e.getColor(E.peekViewResultsSelectionForeground);d&&t.addRule(\".monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: \"+d+\" !important; }\");var c=e.getColor(E.peekViewEditorBackground);c&&t.addRule(\".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\\tbackground-color: \"+c+\";}\");var h=e.getColor(E.peekViewEditorGutterBackground);h&&t.addRule(\".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\\tbackground-color: \"+h+\";}\")}))})),define(n[234],i([0,1,448,10,2,32,11,18,43,74,113,596,3,13,35,15,123,170,86,36,29]),(function(e,t,n,i,o,r,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ctxReferenceSearchVisible=new a.RawContextKey(\"referenceSearchVisible\",!1);var L=function(){function e(e,n,i,r,s,a,l,u){this._defaultTreeKeyboardSupport=e,this._editor=n,this._editorService=r,this._notificationService=s,this._instantiationService=a,this._storageService=l,this._configurationService=u,this._disposables=new o.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=t.ctxReferenceSearchVisible.bindTo(i)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._referenceSearchVisible.reset(),this._disposables.dispose(),o.dispose(this._widget),o.dispose(this._model),this._widget=void 0,this._model=void 0},e.prototype.toggleWidget=function(e,t,i){var o,r=this;if(this._widget&&(o=this._widget.position),this.closeWidget(),!o||!e.containsPosition(o)){this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){\nr.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((function(){r._ignoreModelChangeEvent||r.closeWidget()})));var s=f.LayoutData.fromJSON(this._storageService.get(\"peekViewLayout\",0,\"{}\"));this._widget=this._instantiationService.createInstance(f.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(n.localize(0,null)),this._widget.show(e),this._disposables.add(this._widget.onDidClose((function(){t.cancel(),r._widget&&(r._storageService.store(\"peekViewLayout\",JSON.stringify(r._widget.layoutData),0),r._widget=void 0),r.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((function(e){var t=e.element,n=e.kind;if(t)switch(n){case\"open\":\"editor\"===e.source&&r._configurationService.getValue(\"editor.stablePeek\")||r.openReference(t,!1);break;case\"side\":r.openReference(t,!0);break;case\"goto\":i?r._gotoReference(t):r.openReference(t,!1)}})));var a=++this._requestIdPool;t.then((function(t){\nif(a===r._requestIdPool&&r._widget)return r._model&&r._model.dispose(),r._model=t,r._widget.setModel(r._model).then((function(){if(r._widget&&r._model&&r._editor.hasModel()){r._model.isEmpty?r._widget.setMetaTitle(\"\"):r._widget.setMetaTitle(n.localize(1,null,r._model.title,r._model.references.length));var t=r._editor.getModel().uri,i=new v.Position(e.startLineNumber,e.startColumn),o=r._model.nearestReference(t,i);if(o)return r._widget.setSelection(o).then((function(){r._widget&&\"editor\"===r._editor.getOption(65)&&r._widget.focusOnPreviewEditor()}))}}))}),(function(e){r._notificationService.error(e)}))}},e.prototype.changeFocusBetweenPreviewAndReferences=function(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())},e.prototype.goToNextOrPreviousReference=function(e){return d(this,void 0,void 0,(function(){var t,n,i,o,r;return c(this,(function(s){switch(s.label){case 0:\nreturn this._editor.hasModel()&&this._model&&this._widget&&((t=this._widget.position)&&(n=this._model.nearestReference(this._editor.getModel().uri,t)))?(i=this._model.nextOrPreviousReference(n,e),o=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused(),[4,this._widget.setSelection(i)]):[2];case 1:return s.sent(),[4,this._gotoReference(i)];case 2:return s.sent(),o?this._editor.focus():this._widget&&r&&this._widget.focusOnPreviewEditor(),[2]}}))}))},e.prototype.closeWidget=function(e){void 0===e&&(e=!0),this._referenceSearchVisible.reset(),this._disposables.clear(),o.dispose(this._widget),o.dispose(this._model),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1},e.prototype._gotoReference=function(t){var n=this;this._widget&&this._widget.hide(),this._ignoreModelChangeEvent=!0;var o=m.Range.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:o}},this._editor).then((function(t){var i\n;if(n._ignoreModelChangeEvent=!1,t&&n._widget)if(n._editor===t)n._widget.show(o),n._widget.focusOnReferenceTree();else{var r=e.get(t),s=n._model.clone();n.closeWidget(),t.focus(),r.toggleWidget(o,y.createCancelablePromise((function(e){return Promise.resolve(s)})),null!==(i=n._peekMode)&&void 0!==i&&i)}else n.closeWidget()}),(function(e){n._ignoreModelChangeEvent=!1,i.onUnexpectedError(e)}))},e.prototype.openReference=function(e,t){t||this.closeWidget();var n=e.uri,i=e.range;this._editorService.openCodeEditor({resource:n,options:{selection:i}},this._editor,t)},e.ID=\"editor.contrib.referencesController\",e=h([g(2,a.IContextKeyService),g(3,r.ICodeEditorService),g(4,_.INotificationService),g(5,s.IInstantiationService),g(6,u.IStorageService),g(7,l.IConfigurationService)],e)}();function D(e,t){var n=C.getOuterEditor(e);if(n){var i=L.get(n);i&&t(i)}}t.ReferencesController=L,S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"togglePeekWidgetFocus\",weight:100,primary:w.KeyChord(2089,60),\nwhen:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.changeFocusBetweenPreviewAndReferences()}))}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"goToNextReference\",weight:90,primary:62,secondary:[70],when:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.goToNextOrPreviousReference(!0)}))}}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"goToPreviousReference\",weight:90,primary:1086,secondary:[1094],when:a.ContextKeyExpr.or(t.ctxReferenceSearchVisible,C.PeekContext.inPeekEditor),handler:function(e){D(e,(function(e){e.goToNextOrPreviousReference(!1)}))}}),E.CommandsRegistry.registerCommandAlias(\"goToNextReferenceFromEmbeddedEditor\",\"goToNextReference\"),E.CommandsRegistry.registerCommandAlias(\"goToPreviousReferenceFromEmbeddedEditor\",\"goToPreviousReference\"),E.CommandsRegistry.registerCommandAlias(\"closeReferenceSearchEditor\",\"closeReferenceSearch\"),\nE.CommandsRegistry.registerCommand(\"closeReferenceSearch\",(function(e){return D(e,(function(e){return e.closeWidget()}))})),S.KeybindingsRegistry.registerKeybindingRule({id:\"closeReferenceSearch\",weight:-1,primary:9,secondary:[1033],when:a.ContextKeyExpr.and(C.PeekContext.inPeekEditor,a.ContextKeyExpr.not(\"config.editor.stablePeek\"))}),S.KeybindingsRegistry.registerKeybindingRule({id:\"closeReferenceSearch\",weight:250,primary:9,secondary:[1033],when:a.ContextKeyExpr.and(t.ctxReferenceSearchVisible,a.ContextKeyExpr.not(\"config.editor.stablePeek\"))}),S.KeybindingsRegistry.registerCommandAndKeybindingRule({id:\"openReferenceToSide\",weight:100,primary:2051,mac:{primary:259},when:a.ContextKeyExpr.and(t.ctxReferenceSearchVisible,b.WorkbenchListFocusContextKey),handler:function(e){var t,n=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof p.OneReference&&D(e,(function(e){return e.openReference(n[0],!0)}))}}),\nE.CommandsRegistry.registerCommand(\"openReference\",(function(e){var t,n=null===(t=e.get(b.IListService).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof p.OneReference&&D(e,(function(e){return e.openReference(n[0],!1)}))}))})),define(n[235],i([0,1,50,15,36,16,108,12,32,13,3,23,17,122,123,234,113,446,65,18,35,73,224,29,67,537,24,25,11,21,167]),(function(e,t,n,i,o,s,a,l,u,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R){\"use strict\";var O,P,A,F,W,B,V,z;Object.defineProperty(t,\"__esModule\",{value:!0}),b.MenuRegistry.appendMenuItem(7,{submenu:8,title:C.localize(0,null),group:\"navigation\",order:100});var H=function(e){function t(t,n){var i=e.call(this,n)||this;return i._configuration=t,i}return r(t,e),t.prototype.run=function(e,t){var o=this;if(!t.hasModel())return Promise.resolve(void 0)\n;var r=e.get(w.INotificationService),s=e.get(u.ICodeEditorService),a=e.get(E.IEditorProgressService),l=e.get(x.ISymbolNavigationService),h=t.getModel(),p=t.getPosition(),g=new N.EditorStateCancellationTokenSource(t,5),f=i.raceCancellation(this._getLocationModel(h,p,g.token),g.token).then((function(e){return d(o,void 0,void 0,(function(){var i,o,r,a;return c(this,(function(u){if(!e||g.token.isCancellationRequested)return[2];if(n.alert(e.ariaMessage),e.referenceAt(h.uri,p)&&(o=this._getAlternativeCommand(t))!==this.id&&(i=t.getAction(o)),0===(r=e.references.length))this._configuration.muteMessage||(a=h.getWordAtPosition(p),m.MessageController.get(t).showMessage(this._getNoResultFoundMessage(a),p));else{if(1!==r||!i)return[2,this._onResult(s,l,t,e)];i.run()}return[2]}))}))}),(function(e){r.error(e)})).finally((function(){g.dispose()}));return a.showWhile(f,250),f},t.prototype._onResult=function(e,t,n,i){return d(this,void 0,void 0,(function(){var o,r,s,a;return c(this,(function(l){switch(l.label){case 0:\nreturn o=this._getGoToPreference(n),n instanceof R.EmbeddedCodeEditorWidget||!(this._configuration.openInPeek||\"peek\"===o&&i.references.length>1)?[3,1]:(this._openInPeek(n,i),[3,3]);case 1:return r=i.firstReference(),s=i.references.length>1&&\"gotoAndPeek\"===o,[4,this._openReference(n,e,r,this._configuration.openToSide,!s)];case 2:a=l.sent(),s&&a?this._openInPeek(a,i):i.dispose(),\"goto\"===o&&t.put(r),l.label=3;case 3:return[2]}}))}))},t.prototype._openReference=function(e,t,n,i,o){return d(this,void 0,void 0,(function(){var r,s,a,l;return c(this,(function(u){switch(u.label){case 0:return r=void 0,f.isLocationLink(n)&&(r=n.targetSelectionRange),r||(r=n.range),[4,t.openCodeEditor({resource:n.uri,options:{selection:p.Range.collapseToStart(r),revealInCenterIfOutsideViewport:!0}},e,i)];case 1:return(s=u.sent())?(o&&(a=s.getModel(),l=s.deltaDecorations([],[{range:r,options:{className:\"symbolHighlight\"}}]),setTimeout((function(){s.getModel()===a&&s.deltaDecorations(l,[])}),350)),[2,s]):[2,void 0]}}))}))},\nt.prototype._openInPeek=function(e,t){var n=_.ReferencesController.get(e);n&&e.hasModel()?n.toggleWidget(e.getSelection(),i.createCancelablePromise((function(e){return Promise.resolve(t)})),this._configuration.openInPeek):t.dispose()},t}(l.EditorAction),K=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getDefinitionsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(1,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(2,null,e.word):C.localize(3,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeDefinitionCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleDefinitions},t}(H);t.DefinitionAction=K;var U=s.isWeb&&!I.isStandalone?2118:70\n;l.registerEditorAction(((O=function(e){function t(){var n=e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(4,null),alias:\"Go to Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:U,weight:100},contextMenuOpts:{group:\"navigation\",order:1.1},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:2,title:C.localize(5,null)}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.goToDeclaration\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.revealDefinition\",O)),l.registerEditorAction(((P=function(e){function t(){var n=e.call(this,{openToSide:!0,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(6,null),alias:\"Open Definition to the Side\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,\nprimary:o.KeyChord(2089,U),weight:100}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.openDeclarationToTheSide\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.revealDefinitionAside\",P)),l.registerEditorAction(((A=function(e){function t(){var n=e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.id,label:C.localize(7,null),alias:\"Peek Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDefinitionProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:8,group:\"peek\",order:2}})||this;return D.CommandsRegistry.registerCommandAlias(\"editor.action.previewDeclaration\",t.id),n}return r(t,e),t}(K)).id=\"editor.action.peekDefinition\",A));var j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i\n;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getDeclarationsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(8,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(9,null,e.word):C.localize(10,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeDeclarationCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleDeclarations},t}(H);l.registerEditorAction(((F=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,label:C.localize(11,null),alias:\"Go to Declaration\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDeclarationProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{group:\"navigation\",order:1.3},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:3,title:C.localize(12,null)}})||this}return r(t,e),t.prototype._getNoResultFoundMessage=function(e){\nreturn e&&e.word?C.localize(13,null,e.word):C.localize(14,null)},t}(j)).id=\"editor.action.revealDeclaration\",F)),l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.peekDeclaration\",label:C.localize(15,null),alias:\"Peek Declaration\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasDeclarationProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:3}})||this}return r(t,e),t}(j));var q=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getTypeDefinitionsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(16,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){\nreturn e&&e.word?C.localize(17,null,e.word):C.localize(18,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeTypeDefinitionCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleTypeDefinitions},t}(H);l.registerEditorAction(((W=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,label:C.localize(19,null),alias:\"Go to Type Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasTypeDefinitionProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:\"navigation\",order:1.4},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:3,title:C.localize(20,null)}})||this}return r(t,e),t}(q)).ID=\"editor.action.goToTypeDefinition\",W)),l.registerEditorAction(((B=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,label:C.localize(21,null),\nalias:\"Peek Type Definition\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasTypeDefinitionProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:4}})||this}return r(t,e),t}(q)).ID=\"editor.action.peekTypeDefinition\",B));var G=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getImplementationsAtPosition(e,t,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(22,null)]))]}}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&e.word?C.localize(23,null,e.word):C.localize(24,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeImplementationCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleImplementations},t\n}(H);l.registerEditorAction(((V=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,label:C.localize(25,null),alias:\"Go to Implementations\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasImplementationProvider,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:4,title:C.localize(26,null)},contextMenuOpts:{group:\"navigation\",order:1.45}})||this}return r(t,e),t}(G)).ID=\"editor.action.goToImplementation\",V)),l.registerEditorAction(((z=function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,label:C.localize(27,null),alias:\"Peek Implementations\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasImplementationProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{\nmenuId:8,group:\"peek\",order:5}})||this}return r(t,e),t}(G)).ID=\"editor.action.peekImplementation\",z));var Y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype._getNoResultFoundMessage=function(e){return e?C.localize(28,null,e.word):C.localize(29,null)},t.prototype._getAlternativeCommand=function(e){return e.getOption(41).alternativeReferenceCommand},t.prototype._getGoToPreference=function(e){return e.getOption(41).multipleReferences},t}(H);l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:\"editor.action.goToReferences\",label:C.localize(30,null),alias:\"Go to References\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasReferenceProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),kbOpts:{kbExpr:g.EditorContextKeys.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:\"navigation\",order:1.45},menuOpts:{menuId:19,group:\"4_symbol_nav\",order:5,\ntitle:C.localize(31,null)}})||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getReferencesAtPosition(e,t,!0,n)];case 1:return[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(32,null)]))]}}))}))},t}(Y)),l.registerEditorAction(function(e){function t(){return e.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.referenceSearch.trigger\",label:C.localize(33,null),alias:\"Peek References\",precondition:S.ContextKeyExpr.and(g.EditorContextKeys.hasReferenceProvider,v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated()),contextMenuOpts:{menuId:8,group:\"peek\",order:6}})||this}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){var i;return c(this,(function(o){switch(o.label){case 0:return i=y.ReferencesModel.bind,[4,L.getReferencesAtPosition(e,t,!1,n)];case 1:\nreturn[2,new(i.apply(y.ReferencesModel,[void 0,o.sent(),C.localize(34,null)]))]}}))}))},t}(Y));var Z=function(e){function t(t,n,i){var o=e.call(this,t,{id:\"editor.action.goToLocation\",label:C.localize(35,null),alias:\"Go To Any Symbol\",precondition:S.ContextKeyExpr.and(v.PeekContext.notInPeekEditor,g.EditorContextKeys.isInEmbeddedEditor.toNegated())})||this;return o._references=n,o._gotoMultipleBehaviour=i,o}return r(t,e),t.prototype._getLocationModel=function(e,t,n){return d(this,void 0,void 0,(function(){return c(this,(function(e){return[2,new y.ReferencesModel(this._references,C.localize(36,null))]}))}))},t.prototype._getNoResultFoundMessage=function(e){return e&&C.localize(37,null,e.word)||\"\"},t.prototype._getGoToPreference=function(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(41).multipleReferences},t.prototype._getAlternativeCommand=function(){return\"\"},t}(H);D.CommandsRegistry.registerCommand({id:\"editor.action.goToLocations\",description:{\ndescription:\"Go to locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:M.URI},{name:\"position\",description:\"The position at which to start\",constraint:h.Position.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"}]},handler:function(e,t,n,i,o,r){return d(void 0,void 0,void 0,(function(){var s,l;return c(this,(function(d){switch(d.label){case 0:return T.assertType(M.URI.isUri(t)),T.assertType(h.Position.isIPosition(n)),T.assertType(Array.isArray(i)),T.assertType(void 0===o||\"string\"==typeof o),T.assertType(void 0===r||\"boolean\"==typeof r),[4,(s=e.get(u.ICodeEditorService)).openCodeEditor({resource:t},s.getFocusedCodeEditor())];case 1:return l=d.sent(),a.isCodeEditor(l)?(l.setPosition(n),l.revealPositionInCenterIfOutsideViewport(n,0),[2,l.invokeWithinContext((function(e){var t=new Z({\nmuteMessage:!0,openInPeek:Boolean(r),openToSide:!1},i,o);e.get(k.IInstantiationService).invokeFunction(t.run.bind(t),l)}))]):[2]}}))}))}}),D.CommandsRegistry.registerCommand({id:\"editor.action.peekLocations\",description:{description:\"Peek locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:M.URI},{name:\"position\",description:\"The position at which to start\",constraint:h.Position.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"}]},handler:function(e,t,n,i,o){return d(void 0,void 0,void 0,(function(){return c(this,(function(r){return e.get(D.ICommandService).executeCommand(\"editor.action.goToLocations\",t,n,i,o,!0),[2]}))}))}}),D.CommandsRegistry.registerCommand({id:\"editor.action.findReferences\",handler:function(e,t,n){T.assertType(M.URI.isUri(t)),T.assertType(h.Position.isIPosition(n))\n;var o=e.get(u.ICodeEditorService);return o.openCodeEditor({resource:t},o.getFocusedCodeEditor()).then((function(e){if(a.isCodeEditor(e)&&e.hasModel()){var t=_.ReferencesController.get(e);if(t){var o=i.createCancelablePromise((function(t){return L.getReferencesAtPosition(e.getModel(),h.Position.lift(n),!1,t).then((function(e){return new y.ReferencesModel(e,C.localize(38,null))}))})),r=new p.Range(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(t.toggleWidget(r,o,!1))}}}))}}),D.CommandsRegistry.registerCommandAlias(\"editor.action.showReferences\",\"editor.action.peekLocations\")})),define(n[236],i([0,1,447,15,10,75,71,3,17,12,224,2,84,14,20,67,235,199,13,21,313]),(function(e,t,n,i,o,r,s,a,l,u,d,c,p,f,m,v,_,y,C,b){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var S=function(){function e(e,t,n){var i=this;this.textModelResolverService=t,this.modeService=n,this.toUnhook=new c.DisposableStore,this.toUnhookForKeyboard=new c.DisposableStore,this.linkDecorations=[],\nthis.currentWordAtPosition=null,this.previousPromise=null,this.editor=e;var r=new y.ClickLinkGesture(e);this.toUnhook.add(r),this.toUnhook.add(r.onMouseMoveOrRelevantKeyDown((function(e){var t=e[0],n=e[1];i.startFindDefinitionFromMouse(t,b.withNullAsUndefined(n))}))),this.toUnhook.add(r.onExecute((function(e){i.isEnabled(e)&&i.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((function(){i.removeLinkDecorations()}),(function(e){i.removeLinkDecorations(),o.onUnexpectedError(e)}))}))),this.toUnhook.add(r.onCancel((function(){i.removeLinkDecorations(),i.currentWordAtPosition=null})))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.startFindDefinitionFromCursor=function(e){var t=this;return this.startFindDefinition(e).then((function(){t.toUnhookForKeyboard.add(t.editor.onDidChangeCursorPosition((function(){t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear()}))),t.toUnhookForKeyboard.add(t.editor.onKeyDown((function(e){\ne&&(t.currentWordAtPosition=null,t.removeLinkDecorations(),t.toUnhookForKeyboard.clear())})))}))},e.prototype.startFindDefinitionFromMouse=function(e,t){if(!(9===e.target.type&&this.linkDecorations.length>0)){if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();var n=e.target.position;this.startFindDefinition(n)}},e.prototype.startFindDefinition=function(e){var t,s=this;this.toUnhookForKeyboard.clear();var l=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!l)return this.currentWordAtPosition=null,this.removeLinkDecorations(),Promise.resolve(0);if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===l.startColumn&&this.currentWordAtPosition.endColumn===l.endColumn&&this.currentWordAtPosition.word===l.word)return Promise.resolve(0);this.currentWordAtPosition=l;var u=new v.EditorState(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),\nthis.previousPromise=i.createCancelablePromise((function(t){return s.findDefinition(e,t)})),this.previousPromise.then((function(t){if(t&&t.length&&u.validate(s.editor))if(t.length>1)s.addDecoration(new a.Range(e.lineNumber,l.startColumn,e.lineNumber,l.endColumn),(new r.MarkdownString).appendText(n.localize(0,null,t.length)));else{var i=t[0];if(!i.uri)return;s.textModelResolverService.createModelReference(i.uri).then((function(t){if(t.object&&t.object.textEditorModel){var n=t.object.textEditorModel,o=i.range.startLineNumber;if(o<1||o>n.getLineCount())t.dispose();else{var u,d=s.getPreviewValue(n,o,i);u=i.originSelectionRange?a.Range.lift(i.originSelectionRange):new a.Range(e.lineNumber,l.startColumn,e.lineNumber,l.endColumn);var c=s.modeService.getModeIdByFilepathOrFirstLine(n.uri);s.addDecoration(u,(new r.MarkdownString).appendCodeblock(c||\"\",d)),t.dispose()}}else t.dispose()}))}else s.removeLinkDecorations()})).then(void 0,o.onUnexpectedError)},e.prototype.getPreviewValue=function(t,n,i){\nvar o=i.targetSelectionRange?i.range:this.getPreviewRangeBasedOnBrackets(t,n);return o.endLineNumber-o.startLineNumber>=e.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(t,n)),this.stripIndentationFromPreviewRange(t,n,o)},e.prototype.stripIndentationFromPreviewRange=function(e,t,n){for(var i=e.getLineFirstNonWhitespaceColumn(t),o=t+1;o<n.endLineNumber;o++){var r=e.getLineFirstNonWhitespaceColumn(o);i=Math.min(i,r)}return e.getValueInRange(n).replace(new RegExp(\"^\\\\s{\"+(i-1)+\"}\",\"gm\"),\"\").trim()},e.prototype.getPreviewRangeBasedOnIndentation=function(t,n){for(var i=t.getLineFirstNonWhitespaceColumn(n),o=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),r=n+1;r<o;r++){if(i===t.getLineFirstNonWhitespaceColumn(r))break}return new a.Range(n,1,r+1,1)},e.prototype.getPreviewRangeBasedOnBrackets=function(t,n){for(var i=Math.min(t.getLineCount(),n+e.MAX_SOURCE_PREVIEW_LINES),o=[],r=!0,s=t.findNextBracket(new C.Position(n,1));null!==s;){if(0===o.length)o.push(s);else{var l=o[o.length-1]\n;if(l.open[0]===s.open[0]&&l.isOpen&&!s.isOpen?o.pop():o.push(s),0===o.length){if(!r)return new a.Range(n,1,s.range.endLineNumber+1,1);r=!1}}var u=t.getLineMaxColumn(n),d=s.range.endLineNumber,c=s.range.endColumn;if(u===s.range.endColumn&&(d++,c=1),d>i)return new a.Range(n,1,i+1,1);s=t.findNextBracket(new C.Position(d,c))}return new a.Range(n,1,i+1,1)},e.prototype.addDecoration=function(e,t){var n={range:e,options:{inlineClassName:\"goto-definition-link\",hoverMessage:t}};this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[n])},e.prototype.removeLinkDecorations=function(){this.linkDecorations.length>0&&(this.linkDecorations=this.editor.deltaDecorations(this.linkDecorations,[]))},e.prototype.isEnabled=function(e,t){return this.editor.hasModel()&&e.isNoneOrSingleMouseDown&&6===e.target.type&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&l.DefinitionProviderRegistry.has(this.editor.getModel())},e.prototype.findDefinition=function(e,t){var n=this.editor.getModel()\n;return n?d.getDefinitionsAtPosition(n,e,t):Promise.resolve(null)},e.prototype.gotoDefinition=function(e,t){var n=this;this.editor.setPosition(e);var i=new _.DefinitionAction({openToSide:t,openInPeek:!1,muteMessage:!0},{alias:\"\",label:\"\",id:\"\",precondition:void 0});return this.editor.invokeWithinContext((function(e){return i.run(e,n.editor)}))},e.prototype.dispose=function(){this.toUnhook.dispose()},e.ID=\"editor.contrib.gotodefinitionatposition\",e.MAX_SOURCE_PREVIEW_LINES=8,e=h([g(1,p.ITextModelService),g(2,s.IModeService)],e)}();t.GotoDefinitionAtPositionEditorContribution=S,u.registerEditorContribution(S.ID,S),f.registerThemingParticipant((function(e,t){var n=e.getColor(m.editorActiveLinkForeground);n&&t.addRule(\".monaco-editor .goto-definition-link { color: \"+n+\" !important; }\")}))})),define(n[597],i([0,1,12,32,234,43,18,11,35,74]),(function(e,t,n,i,o,s,a,l,u,d){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(e){function t(t,n,i,o,r,s,a){\nreturn e.call(this,!0,t,n,i,o,r,s,a)||this}return r(t,e),t=h([g(1,a.IContextKeyService),g(2,i.ICodeEditorService),g(3,u.INotificationService),g(4,l.IInstantiationService),g(5,d.IStorageService),g(6,s.IConfigurationService)],t)}(o.ReferencesController);t.StandaloneReferencesController=c,n.registerEditorContribution(o.ReferencesController.ID,c)})),define(n[598],i([0,1,112,14,20]),(function(e,t,n,i,o){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.className=function(e){switch(e){case n.default.Ignore:return\"severity-ignore codicon-info\";case n.default.Info:return\"codicon-info\";case n.default.Warning:return\"codicon-warning\";case n.default.Error:return\"codicon-error\"}return\"\"}}(t.SeverityIcon||(t.SeverityIcon={})),i.registerThemingParticipant((function(e,t){var n=e.getColor(o.problemsErrorIconForeground)\n;n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-error,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-error,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-error,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-error {\\n\\t\\t\\t\\tcolor: \"+n+\";\\n\\t\\t\\t}\\n\\t\\t\");var i=e.getColor(o.problemsWarningIconForeground);n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-warning,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-warning,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-warning,\\n\\t\\t\\t.extension-editor .codicon-warning,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-warning {\\n\\t\\t\\t\\tcolor: \"+i+\";\\n\\t\\t\\t}\\n\\t\\t\");var r=e.getColor(o.problemsInfoIconForeground);n&&t.addRule(\"\\n\\t\\t\\t.monaco-editor .zone-widget .codicon-info,\\n\\t\\t\\t.markers-panel .marker-icon.codicon-info,\\n\\t\\t\\t.extensions-viewlet > .extensions .codicon-info,\\n\\t\\t\\t.extension-editor .codicon-info,\\n\\t\\t\\t.monaco-dialog-box .dialog-message-row .codicon-info {\\n\\t\\t\\t\\tcolor: \"+r+\";\\n\\t\\t\\t}\\n\\t\\t\")}))})),\ndefine(n[599],i([0,1,445,6,2,72,3,20,14,27,53,136,19,4,123,39,598,312]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var _=function(){function e(e,t,n,r){var s=this;this._openerService=r,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new o.DisposableStore,this._editor=t;var a=document.createElement(\"div\");a.className=\"descriptioncontainer\",a.setAttribute(\"aria-live\",\"assertive\"),a.setAttribute(\"role\",\"alert\"),this._messageBlock=document.createElement(\"div\"),i.addClass(this._messageBlock,\"message\"),a.appendChild(this._messageBlock),this._relatedBlock=document.createElement(\"div\"),a.appendChild(this._relatedBlock),this._disposables.add(i.addStandardDisposableListener(this._relatedBlock,\"click\",(function(e){e.preventDefault();var t=s._relatedDiagnostics.get(e.target);t&&n(t)}))),this._scrollable=new c.ScrollableElement(a,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,\nverticalScrollbarSize:3}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((function(e){a.style.left=\"-\"+e.scrollLeft+\"px\",a.style.top=\"-\"+e.scrollTop+\"px\"}))),this._disposables.add(this._scrollable)}return e.prototype.dispose=function(){o.dispose(this._disposables)},e.prototype.update=function(e){var t=this,n=e.source,o=e.message,r=e.relatedInformation,s=e.code,a=((null==n?void 0:n.length)||0)+\"()\".length;s&&(a+=\"string\"==typeof s?s.length:s.value.length);var l=o.split(/\\r\\n|\\r|\\n/g);this._lines=l.length,this._longestLineLength=0;for(var u=0,d=l;u<d.length;u++){var c=d[u];this._longestLineLength=Math.max(c.length+a,this._longestLineLength)}i.clearNode(this._messageBlock),this._editor.applyFontInfo(this._messageBlock);for(var g=this._messageBlock,f=0,m=l;f<m.length;f++){c=m[f];(g=document.createElement(\"div\")).innerText=c,\"\"===c&&(g.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(g)}if(n||s){var v,_=document.createElement(\"span\")\n;if(i.addClass(_,\"details\"),g.appendChild(_),n){var y=document.createElement(\"span\");y.innerText=n,i.addClass(y,\"source\"),_.appendChild(y)}if(s)if(\"string\"==typeof s)(v=document.createElement(\"span\")).innerText=\"(\"+s+\")\",i.addClass(v,\"code\"),_.appendChild(v);else this._codeLink=i.$(\"a.code-link\"),this._codeLink.setAttribute(\"href\",\"\"+s.link.toString()),this._codeLink.onclick=function(e){t._openerService.open(s.link),e.preventDefault(),e.stopPropagation()},(v=i.append(this._codeLink,i.$(\"span\"))).innerText=s.value,_.appendChild(this._codeLink)}if(i.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),p.isNonEmptyArray(r)){var C=this._relatedBlock.appendChild(document.createElement(\"div\"));C.style.paddingTop=Math.floor(.66*this._editor.getOption(49))+\"px\",this._lines+=1;for(var b=0,S=r;b<S.length;b++){var w=S[b],E=document.createElement(\"div\"),L=document.createElement(\"a\");i.addClass(L,\"filename\"),L.innerHTML=h.getBaseLabel(w.resource)+\"(\"+w.startLineNumber+\", \"+w.startColumn+\"): \",\nL.title=h.getPathLabel(w.resource,void 0),this._relatedDiagnostics.set(L,w);var D=document.createElement(\"span\");D.innerText=w.message,E.appendChild(L),E.appendChild(D),this._lines+=1,C.appendChild(E)}}var N=this._editor.getOption(34),x=Math.ceil(N.typicalFullwidthCharacterWidth*this._longestLineLength*.75),I=N.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:x,scrollHeight:I})},e.prototype.layout=function(e,t){this._scrollable.getDomNode().style.height=e+\"px\",this._scrollable.getDomNode().style.width=t+\"px\",this._scrollable.setScrollDimensions({width:t,height:e})},e.prototype.getHeightInLines=function(){return Math.min(17,this._lines)},e}(),y=function(e){function l(t,n,i,r){var a=e.call(this,t,{showArrow:!0,showFrame:!0,isAccessible:!0})||this;return a.actions=n,a._themeService=i,a._openerService=r,a._callOnDispose=new o.DisposableStore,a._onDidSelectRelatedInformation=new g.Emitter,a.onDidSelectRelatedInformation=a._onDidSelectRelatedInformation.event,\na._severity=s.MarkerSeverity.Warning,a._backgroundColor=d.Color.white,a._applyTheme(i.getTheme()),a._callOnDispose.add(i.onThemeChange(a._applyTheme.bind(a))),a.create(),a}return r(l,e),l.prototype._applyTheme=function(e){this._backgroundColor=e.getColor(t.editorMarkerNavigationBackground);var n=t.editorMarkerNavigationError;this._severity===s.MarkerSeverity.Warning?n=t.editorMarkerNavigationWarning:this._severity===s.MarkerSeverity.Info&&(n=t.editorMarkerNavigationInfo);var i=e.getColor(n);this.style({arrowColor:i,frameColor:i,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(f.peekViewTitleForeground),secondaryHeadingColor:e.getColor(f.peekViewTitleInfoForeground)})},l.prototype._applyStyles=function(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():\"\"),e.prototype._applyStyles.call(this)},l.prototype.dispose=function(){this._callOnDispose.dispose(),e.prototype.dispose.call(this)},\nl.prototype._fillHead=function(t){e.prototype._fillHead.call(this,t),this._actionbarWidget.push(this.actions,{label:!1,icon:!0,index:0})},l.prototype._fillTitleIcon=function(e){this._icon=i.append(e,i.$(\"\"))},l.prototype._getActionBarOptions=function(){return{orientation:0}},l.prototype._fillBody=function(e){var t=this;this._parentContainer=e,i.addClass(e,\"marker-widget\"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute(\"role\",\"tooltip\"),this._container=document.createElement(\"div\"),e.appendChild(this._container),this._message=new _(this._container,this.editor,(function(e){return t._onDidSelectRelatedInformation.fire(e)}),this._openerService),this._disposables.add(this._message)},l.prototype.show=function(e,t){throw new Error(\"call showAtMarker\")},l.prototype.showAtMarker=function(t,i,o){this._container.classList.remove(\"stale\"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getTheme())\n;var r=a.Range.lift(t),l=this.editor.getPosition(),u=l&&r.containsPosition(l)?l:r.getStartPosition();e.prototype.show.call(this,u,this.computeRequiredHeight());var d=this.editor.getModel();if(d){var c=o>1?n.localize(0,null,i,o):n.localize(1,null,i,o);this.setTitle(m.basename(d.uri),c)}this._icon.className=\"codicon \"+v.SeverityIcon.className(s.MarkerSeverity.toSeverity(this._severity)),this.editor.revealPositionInCenter(u,0),this.editor.focus()},l.prototype.updateMarker=function(e){this._container.classList.remove(\"stale\"),this._message.update(e)},l.prototype.showStale=function(){this._container.classList.add(\"stale\"),this._relayout()},l.prototype._doLayoutBody=function(t,n){e.prototype._doLayoutBody.call(this,t,n),this._heightInPixel=t,this._message.layout(t,n),this._container.style.height=t+\"px\"},l.prototype._onWidth=function(e){this._message.layout(this._heightInPixel,e)},l.prototype._relayout=function(){e.prototype._relayout.call(this,this.computeRequiredHeight())},\nl.prototype.computeRequiredHeight=function(){return 3+this._message.getHeightInLines()},l}(f.PeekViewWidget);t.MarkerNavigationWidget=y;var C=l.oneOf(l.editorErrorForeground,l.editorErrorBorder),b=l.oneOf(l.editorWarningForeground,l.editorWarningBorder),S=l.oneOf(l.editorInfoForeground,l.editorInfoBorder);t.editorMarkerNavigationError=l.registerColor(\"editorMarkerNavigationError.background\",{dark:C,light:C,hc:C},n.localize(2,null)),t.editorMarkerNavigationWarning=l.registerColor(\"editorMarkerNavigationWarning.background\",{dark:b,light:b,hc:b},n.localize(3,null)),t.editorMarkerNavigationInfo=l.registerColor(\"editorMarkerNavigationInfo.background\",{dark:S,light:S,hc:S},n.localize(4,null)),t.editorMarkerNavigationBackground=l.registerColor(\"editorMarkerNavigation.background\",{dark:\"#2D2D30\",light:d.Color.white,hc:\"#0C141F\"},n.localize(5,null)),u.registerThemingParticipant((function(e,t){var n=e.getColor(l.textLinkForeground);n&&(t.addRule(\".monaco-editor .marker-widget a { color: \"+n+\"; }\"),\nt.addRule(\".monaco-editor .marker-widget a.code-link span:hover { color: \"+n+\"; }\"))}))})),define(n[237],i([0,1,444,4,2,18,72,3,12,14,23,599,5,19,32,10,65,55,34,39,51]),(function(e,t,n,i,o,s,a,l,u,p,f,m,v,_,y,C,b,S,w,E,L){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var D=function(){function e(e,t){var n=this;this._toUnbind=new o.DisposableStore,this._editor=e,this._markers=[],this._nextIdx=-1,this._ignoreSelectionChange=!1,this._onCurrentMarkerChanged=new i.Emitter,this._onMarkerSetChanged=new i.Emitter,this.setMarkers(t),this._toUnbind.add(this._editor.onDidDispose((function(){return n.dispose()}))),this._toUnbind.add(this._editor.onDidChangeCursorPosition((function(){n._ignoreSelectionChange||n.currentMarker&&n._editor.getPosition()&&l.Range.containsPosition(n.currentMarker,n._editor.getPosition())||(n._nextIdx=-1)})))}return Object.defineProperty(e.prototype,\"onCurrentMarkerChanged\",{get:function(){return this._onCurrentMarkerChanged.event},enumerable:!0,configurable:!0}),\nObject.defineProperty(e.prototype,\"onMarkerSetChanged\",{get:function(){return this._onMarkerSetChanged.event},enumerable:!0,configurable:!0}),e.prototype.setMarkers=function(e){var t=this._nextIdx>=0?this._markers[this._nextIdx]:void 0;this._markers=e||[],this._markers.sort(x.compareMarker),this._nextIdx=t?Math.max(-1,_.binarySearch(this._markers,t,x.compareMarker)):-1,this._onMarkerSetChanged.fire(this)},e.prototype.withoutWatchingEditorPosition=function(e){this._ignoreSelectionChange=!0;try{e()}finally{this._ignoreSelectionChange=!1}},e.prototype._initIdx=function(e){for(var t=!1,n=this._editor.getPosition(),i=0;i<this._markers.length;i++){var o=l.Range.lift(this._markers[i]);if(o.isEmpty()&&this._editor.getModel()){var r=this._editor.getModel().getWordAtPosition(o.getStartPosition());r&&(o=new l.Range(o.startLineNumber,r.startColumn,o.startLineNumber,r.endColumn))}if(n&&(o.containsPosition(n)||n.isBeforeOrEqual(o.getStartPosition()))){this._nextIdx=i,t=!0;break}}\nt||(this._nextIdx=e?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)},Object.defineProperty(e.prototype,\"currentMarker\",{get:function(){return this.canNavigate()?this._markers[this._nextIdx]:void 0},set:function(e){var t=this._nextIdx;this._nextIdx=-1,e&&(this._nextIdx=this.indexOf(e)),this._nextIdx!==t&&this._onCurrentMarkerChanged.fire(e)},enumerable:!0,configurable:!0}),e.prototype.move=function(e,t){if(!this.canNavigate())return this._onCurrentMarkerChanged.fire(void 0),!t;var n=this._nextIdx,i=!1;if(-1===this._nextIdx?this._initIdx(e):e?t||this._nextIdx+1<this._markers.length?this._nextIdx=(this._nextIdx+1)%this._markers.length:i=!0:e||(t||this._nextIdx>0?this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length:i=!0),n!==this._nextIdx){var o=this._markers[this._nextIdx];this._onCurrentMarkerChanged.fire(o)}return i},e.prototype.canNavigate=function(){return this._markers.length>0},e.prototype.findMarkerAtPosition=function(e){\nreturn _.find(this._markers,(function(t){return l.Range.containsPosition(t,e)}))},Object.defineProperty(e.prototype,\"total\",{get:function(){return this._markers.length},enumerable:!0,configurable:!0}),e.prototype.indexOf=function(e){return 1+this._markers.indexOf(e)},e.prototype.dispose=function(){this._toUnbind.dispose()},e}(),N=function(){function e(e,t,n,i,r,s,a){this._markerService=t,this._contextKeyService=n,this._themeService=i,this._editorService=r,this._keybindingService=s,this._openerService=a,this._model=null,this._widget=null,this._disposeOnClose=new o.DisposableStore,this._editor=e,this._widgetVisible=R.bindTo(this._contextKeyService)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._cleanUp(),this._disposeOnClose.dispose()},e.prototype._cleanUp=function(){this._widgetVisible.reset(),this._disposeOnClose.clear(),this._widget=null,this._model=null},e.prototype.getOrCreateModel=function(){var e=this;if(this._model)return this._model\n;var t=this._getMarkers();this._model=new D(this._editor,t),this._markerService.onMarkerChanged(this._onMarkerChanged,this,this._disposeOnClose);var n=this._keybindingService.lookupKeybinding(M.ID),i=this._keybindingService.lookupKeybinding(I.ID),o=[new S.Action(I.ID,I.LABEL+(i?\" (\"+i.getLabel()+\")\":\"\"),\"show-next-problem codicon-chevron-down\",this._model.canNavigate(),(function(){return d(e,void 0,void 0,(function(){return c(this,(function(e){return this._model&&this._model.move(!0,!0),[2]}))}))})),new S.Action(M.ID,M.LABEL+(n?\" (\"+n.getLabel()+\")\":\"\"),\"show-previous-problem codicon-chevron-up\",this._model.canNavigate(),(function(){return d(e,void 0,void 0,(function(){return c(this,(function(e){return this._model&&this._model.move(!1,!0),[2]}))}))}))];this._widget=new m.MarkerNavigationWidget(this._editor,o,this._themeService,this._openerService),this._widgetVisible.set(!0),this._widget.onDidClose((function(){return e.closeMarkersNavigation()}),this,this._disposeOnClose),\nthis._disposeOnClose.add(this._model),this._disposeOnClose.add(this._widget);for(var r=0,s=o;r<s.length;r++){var a=s[r];this._disposeOnClose.add(a)}return this._disposeOnClose.add(this._widget.onDidSelectRelatedInformation((function(t){e._editorService.openCodeEditor({resource:t.resource,options:{pinned:!0,revealIfOpened:!0,selection:l.Range.lift(t).collapseToStart()}},e._editor).then(void 0,C.onUnexpectedError),e.closeMarkersNavigation(!1)}))),this._disposeOnClose.add(this._editor.onDidChangeModel((function(){return e._cleanUp()}))),this._disposeOnClose.add(this._model.onCurrentMarkerChanged((function(t){t&&e._model?e._model.withoutWatchingEditorPosition((function(){e._widget&&e._model&&e._widget.showAtMarker(t,e._model.indexOf(t),e._model.total)})):e._cleanUp()}))),this._disposeOnClose.add(this._model.onMarkerSetChanged((function(){if(e._widget&&e._widget.position&&e._model){var t=e._model.findMarkerAtPosition(e._widget.position);t?e._widget.updateMarker(t):e._widget.showStale()}}))),this._model},\ne.prototype.closeMarkersNavigation=function(e){void 0===e&&(e=!0),this._cleanUp(),e&&this._editor.focus()},e.prototype.show=function(e){this.getOrCreateModel().currentMarker=e},e.prototype._onMarkerChanged=function(e){var t=this._editor.getModel();t&&this._model&&e.some((function(e){return E.isEqual(t.uri,e)}))&&this._model.setMarkers(this._getMarkers())},e.prototype._getMarkers=function(){var e=this._editor.getModel();return e?this._markerService.read({resource:e.uri,severities:a.MarkerSeverity.Error|a.MarkerSeverity.Warning|a.MarkerSeverity.Info}):[]},e.ID=\"editor.contrib.markerController\",e=h([g(1,a.IMarkerService),g(2,s.IContextKeyService),g(3,p.IThemeService),g(4,y.ICodeEditorService),g(5,w.IKeybindingService),g(6,L.IOpenerService)],e)}();t.MarkerController=N;var x=function(e){function t(t,n,i){var o=e.call(this,i)||this;return o._isNext=t,o._multiFile=n,o}return r(t,e),t.prototype.run=function(e,n){var i=this,o=e.get(a.IMarkerService),r=e.get(y.ICodeEditorService),s=N.get(n)\n;if(!s)return Promise.resolve(void 0);var l=s.getOrCreateModel();if(!l.move(this._isNext,!this._multiFile)||!this._multiFile)return Promise.resolve(void 0);var u=o.read({severities:a.MarkerSeverity.Error|a.MarkerSeverity.Warning|a.MarkerSeverity.Info}).sort(t.compareMarker);if(0===u.length)return Promise.resolve(void 0);var d=n.getModel();if(!d)return Promise.resolve(void 0);var c=l.currentMarker||{resource:d.uri,severity:a.MarkerSeverity.Error,startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1},h=_.binarySearch(u,c,t.compareMarker);h<0?(h=~h,h%=u.length):h=this._isNext?(h+1)%u.length:(h+u.length-1)%u.length;var p=u[h];return E.isEqual(p.resource,d.uri)?(l.move(this._isNext,!0),Promise.resolve(void 0)):(s.closeMarkersNavigation(),r.openCodeEditor({resource:p.resource,options:{pinned:!1,revealIfOpened:!0,revealInCenterIfOutsideViewport:!0,selection:p}},n).then((function(e){if(e)return e.getAction(i.id).run()})))},t.compareMarker=function(e,t){\nvar n=v.compare(e.resource.toString(),t.resource.toString());return 0===n&&(n=a.MarkerSeverity.compare(e.severity,t.severity)),0===n&&(n=l.Range.compareRangesUsingStarts(e,t)),n},t}(u.EditorAction),I=function(e){function t(){return e.call(this,!0,!1,{id:t.ID,label:t.LABEL,alias:\"Go to Next Problem (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:578,weight:100}})||this}return r(t,e),t.ID=\"editor.action.marker.next\",t.LABEL=n.localize(0,null),t}(x);t.NextMarkerAction=I;var M=function(e){function t(){return e.call(this,!1,!1,{id:t.ID,label:t.LABEL,alias:\"Go to Previous Problem (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:1602,weight:100}})||this}return r(t,e),t.ID=\"editor.action.marker.prev\",t.LABEL=n.localize(1,null),t}(x),k=function(e){function t(){return e.call(this,!0,!0,{id:\"editor.action.marker.nextInFiles\",label:n.localize(2,null),\nalias:\"Go to Next Problem in Files (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:66,weight:100}})||this}return r(t,e),t}(x),T=function(e){function t(){return e.call(this,!1,!0,{id:\"editor.action.marker.prevInFiles\",label:n.localize(3,null),alias:\"Go to Previous Problem in Files (Error, Warning, Info)\",precondition:f.EditorContextKeys.writable,kbOpts:{kbExpr:f.EditorContextKeys.focus,primary:1090,weight:100}})||this}return r(t,e),t}(x);u.registerEditorContribution(N.ID,N),u.registerEditorAction(I),u.registerEditorAction(M),u.registerEditorAction(k),u.registerEditorAction(T);var R=new s.RawContextKey(\"markersNavigationVisible\",!1),O=u.EditorCommand.bindToContribution(N.get);u.registerEditorCommand(new O({id:\"closeMarkersNavigation\",precondition:R,handler:function(e){return e.closeMarkersNavigation()},kbOpts:{weight:150,kbExpr:f.EditorContextKeys.focus,primary:9,secondary:[1033]}})),b.MenuRegistry.appendMenuItem(19,{group:\"6_problem_nav\",\ncommand:{id:\"editor.action.marker.nextInFiles\",title:n.localize(4,null)},order:1}),b.MenuRegistry.appendMenuItem(19,{group:\"6_problem_nav\",command:{id:\"editor.action.marker.prevInFiles\",title:n.localize(5,null)},order:2})}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[600],i([0,1,454,6,26,27,75,2,13,3,30,17,222,223,375,570,538,200,201,117,14,19,72,39,10,51,237,15,119,233,111,20]),(function(e,t,n,i,o,s,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var O=i.$,P=function(e,t,n){this.range=e,this.color=t,this.provider=n},A=function(e,t){this.range=e,this.marker=t},F=function(){function e(e,t){this._markerDecorationsService=t,this._editor=e,this._result=[]}return e.prototype.setRange=function(e){this._range=e,this._result=[]},e.prototype.clearResult=function(){\nthis._result=[]},e.prototype.computeAsync=function(e){if(!this._editor.hasModel()||!this._range)return Promise.resolve([]);var t=this._editor.getModel();return p.HoverProviderRegistry.has(t)?_.getHover(t,new d.Position(this._range.startLineNumber,this._range.startColumn),e):Promise.resolve([])},e.prototype.computeSync=function(){var e=this;if(!this._editor.hasModel()||!this._range)return[];var t=this._editor.getModel(),n=this._range.startLineNumber;if(n>this._editor.getModel().getLineCount())return[];var i=f.ColorDetector.get(this._editor),o=t.getLineMaxColumn(n),r=this._editor.getLineDecorations(n),s=!1,a=this._range,u=r.map((function(r){var u=r.range.startLineNumber===n?r.range.startColumn:1,d=r.range.endLineNumber===n?r.range.endColumn:o;if(u>a.startColumn||a.endColumn>d)return null;var h=new c.Range(a.startLineNumber,u,a.startLineNumber,d),p=e._markerDecorationsService.getMarker(t,r);if(p)return new A(h,p);var g=i.getColorData(r.range.getStartPosition());if(!s&&g){s=!0\n;var f=g.colorInfo,m=f.color,v=f.range;return new P(v,m,g.provider)}return l.isEmptyMarkdownString(r.options.hoverMessage)?null:{contents:r.options.hoverMessage?w.asArray(r.options.hoverMessage):[],range:h}}));return w.coalesce(u)},e.prototype.onResult=function(e,t){this._result=t?e.concat(this._result.sort((function(e,t){return e instanceof P?-1:t instanceof P?1:0}))):this._result.concat(e)},e.prototype.getResult=function(){return this._result.slice(0)},e.prototype.getResultWithLoadingMessage=function(){return this._result.slice(0).concat([this._getLoadingMessage()])},e.prototype._getLoadingMessage=function(){return{range:this._range,contents:[(new l.MarkdownString).appendText(n.localize(0,null))]}},e}(),W={type:2,filter:{include:T.CodeActionKind.QuickFix}},B=function(e){function t(n,o,r,s,a,l){void 0===l&&(l=N.NullOpenerService);var d=e.call(this,t.ID,n)||this;return d._themeService=r,d._keybindingService=s,d._modeService=a,d._openerService=l,d.renderDisposable=d._register(new u.MutableDisposable),\nd._messages=[],d._lastRange=null,d._computer=new F(d._editor,o),d._highlightDecorations=[],d._isChangingDecorations=!1,d._shouldFocus=!1,d._colorPicker=null,d._hoverOperation=new y.HoverOperation(d._computer,(function(e){return d._withResult(e,!0)}),null,(function(e){return d._withResult(e,!1)}),d._editor.getOption(44).delay),d._register(i.addStandardDisposableListener(d.getDomNode(),i.EventType.FOCUS,(function(){d._colorPicker&&i.addClass(d.getDomNode(),\"colorpicker-hover\")}))),d._register(i.addStandardDisposableListener(d.getDomNode(),i.EventType.BLUR,(function(){i.removeClass(d.getDomNode(),\"colorpicker-hover\")}))),d._register(n.onDidChangeConfiguration((function(e){d._hoverOperation.setHoverTime(d._editor.getOption(44).delay)}))),d._register(p.TokenizationRegistry.onDidChange((function(e){d.isVisible&&d._lastRange&&d._messages.length>0&&(d._domNode.textContent=\"\",d._renderMessages(d._lastRange,d._messages))}))),d}return r(t,e),t.prototype.dispose=function(){this._hoverOperation.cancel(),\ne.prototype.dispose.call(this)},t.prototype.onModelDecorationsChanged=function(){this._isChangingDecorations||this.isVisible&&(this._hoverOperation.cancel(),this._computer.clearResult(),this._colorPicker||this._hoverOperation.start(0))},t.prototype.startShowingAt=function(e,t,n){if(!this._lastRange||!this._lastRange.equalsRange(e)){if(this._hoverOperation.cancel(),this.isVisible)if(this._showAtPosition&&this._showAtPosition.lineNumber===e.startLineNumber){for(var i=[],o=0,r=this._messages.length;o<r;o++){var s=this._messages[o],a=s.range;a&&a.startColumn<=e.startColumn&&a.endColumn>=e.endColumn&&i.push(s)}if(i.length>0){if(function(e,t){if(!e&&t||e&&!t||e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var i=e[n],o=t[n];if(i instanceof A&&o instanceof A)return E.IMarkerData.makeKey(i.marker)===E.IMarkerData.makeKey(o.marker);if(i instanceof P||o instanceof P)return!1;if(i instanceof A||o instanceof A)return!1;if(!l.markedStringsEquals(i.contents,o.contents))return!1}return!0}(i,this._messages))return\n;this._renderMessages(e,i)}else this.hide()}else this.hide();this._lastRange=e,this._computer.setRange(e),this._shouldFocus=n,this._hoverOperation.start(t)}},t.prototype.hide=function(){this._lastRange=null,this._hoverOperation.cancel(),e.prototype.hide.call(this),this._isChangingDecorations=!0,this._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,[]),this._isChangingDecorations=!1,this.renderDisposable.clear(),this._colorPicker=null},t.prototype.isColorPickerVisible=function(){return!!this._colorPicker},t.prototype._withResult=function(e,t){this._messages=e,this._lastRange&&this._messages.length>0?this._renderMessages(this._lastRange,this._messages):t&&this.hide()},t.prototype._renderMessages=function(e,n){var r=this;this.renderDisposable.dispose(),this._colorPicker=null;var h=1073741824,p=n[0].range?c.Range.lift(n[0].range):null,f=document.createDocumentFragment(),_=!0,y=!1,C=new u.DisposableStore,S=[];if(n.forEach((function(e){if(e.range)if(h=Math.min(h,e.range.startColumn),\np=p?c.Range.plusRange(p,e.range):c.Range.lift(e.range),e instanceof P){y=!0;var t=e.color,n=t.red,d=t.green,w=t.blue,E=t.alpha,L=new s.RGBA(Math.round(255*n),Math.round(255*d),Math.round(255*w),E),D=new s.Color(L);if(!r._editor.hasModel())return;var N=r._editor.getModel(),x=new c.Range(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn),I={range:e.range,color:e.color},M=new m.ColorPickerModel(D,[],0),k=new v.ColorPickerWidget(f,M,r._editor.getOption(105),r._themeService);g.getColorPresentations(N,I,e.provider,o.CancellationToken.None).then((function(t){if(M.colorPresentations=t||[],r._editor.hasModel()){var n=r._editor.getModel().getValueInRange(e.range);M.guessColorPresentation(D,n);var i=function(){var e,t;M.presentation.textEdit?(e=[M.presentation.textEdit],\nt=(t=new c.Range(M.presentation.textEdit.range.startLineNumber,M.presentation.textEdit.range.startColumn,M.presentation.textEdit.range.endLineNumber,M.presentation.textEdit.range.endColumn)).setEndPosition(t.endLineNumber,t.startColumn+M.presentation.textEdit.text.length)):(e=[{identifier:null,range:x,text:M.presentation.label,forceMoveMarkers:!1}],t=x.setEndPosition(x.endLineNumber,x.startColumn+M.presentation.label.length)),r._editor.pushUndoStop(),r._editor.executeEdits(\"colorpicker\",e),M.presentation.additionalTextEdits&&(e=a(M.presentation.additionalTextEdits),r._editor.executeEdits(\"colorpicker\",e),r.hide()),r._editor.pushUndoStop(),x=t},s=function(t){return g.getColorPresentations(N,{range:x,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},e.provider,o.CancellationToken.None).then((function(e){M.colorPresentations=e||[]}))},l=M.onColorFlushed((function(e){s(e).then(i)})),d=M.onDidChangeColor(s);r._colorPicker=k,r.showAt(x.getStartPosition(),x,r._shouldFocus),\nr.updateContents(f),r._colorPicker.layout(),r.renderDisposable.value=u.combinedDisposable(l,d,k,C)}}))}else e instanceof A?(S.push(e),_=!1):e.contents.filter((function(e){return!l.isEmptyMarkdownString(e)})).forEach((function(e){var t=O(\"div.hover-row.markdown-hover\"),n=i.append(t,O(\"div.hover-contents\")),o=C.add(new b.MarkdownRenderer(r._editor,r._modeService,r._openerService));C.add(o.onDidRenderCodeBlock((function(){n.className=\"hover-contents code-hover-contents\",r.onContentsChange()})));var s=C.add(o.render(e));n.appendChild(s.element),f.appendChild(t),_=!1}))})),S.length){S.forEach((function(e){return f.appendChild(r.renderMarkerHover(e))}));var w=1===S.length?S[0]:S.sort((function(e,t){return E.MarkerSeverity.compare(e.marker.severity,t.marker.severity)}))[0];f.appendChild(this.renderMarkerStatusbar(w))}y||_||(this.showAt(new d.Position(e.startLineNumber,h),p,this._shouldFocus),this.updateContents(f)),this._isChangingDecorations=!0,\nthis._highlightDecorations=this._editor.deltaDecorations(this._highlightDecorations,p?[{range:p,options:t._DECORATION_OPTIONS}]:[]),this._isChangingDecorations=!1},t.prototype.renderMarkerHover=function(e){var t=this,n=O(\"div.hover-row\"),o=i.append(n,O(\"div.marker.hover-contents\")),r=e.marker,s=r.source,a=r.message,l=r.code,u=r.relatedInformation;this._editor.applyFontInfo(o);var d=i.append(o,O(\"span\"));if(d.style.whiteSpace=\"pre-wrap\",d.innerText=a,s||l)if(\"string\"==typeof l)(c=i.append(o,O(\"span\"))).style.opacity=\"0.6\",c.style.paddingLeft=\"6px\",c.innerText=s&&l?s+\"(\"+l+\")\":s||\"(\"+l+\")\";else if(l){var c,h=O(\"span\");if(s)i.append(h,O(\"span\")).innerText=s;this._codeLink=i.append(h,O(\"a.code-link\")),this._codeLink.setAttribute(\"href\",l.link.toString()),this._codeLink.onclick=function(e){t._openerService.open(l.link),e.preventDefault(),e.stopPropagation()},i.append(this._codeLink,O(\"span\")).innerText=l.value,(c=i.append(o,h)).style.opacity=\"0.6\",c.style.paddingLeft=\"6px\"}\nif(w.isNonEmptyArray(u))for(var p=function(e,n,r,s){var a=i.append(o,O(\"div\"));a.style.marginTop=\"8px\";var l=i.append(a,O(\"a\"));l.innerText=L.basename(n)+\"(\"+r+\", \"+s+\"): \",l.style.cursor=\"pointer\",l.onclick=function(e){e.stopPropagation(),e.preventDefault(),t._openerService&&t._openerService.open(n.with({fragment:r+\",\"+s}),{fromUserGesture:!0}).catch(D.onUnexpectedError)};var u=i.append(a,O(\"span\"));u.innerText=e,g._editor.applyFontInfo(u)},g=this,f=0,m=u;f<m.length;f++){var v=m[f];p(v.message,v.resource,v.startLineNumber,v.startColumn)}return n},t.prototype.renderMarkerStatusbar=function(e){var t=this,o=O(\"div.hover-row.status-bar\"),r=new u.DisposableStore,s=i.append(o,O(\"div.actions\"));e.marker.severity!==E.MarkerSeverity.Error&&e.marker.severity!==E.MarkerSeverity.Warning&&e.marker.severity!==E.MarkerSeverity.Info||r.add(this.renderAction(s,{label:n.localize(1,null),commandId:x.NextMarkerAction.ID,run:function(){t.hide(),x.MarkerController.get(t._editor).show(e.marker),t._editor.focus()}}))\n;var a=i.append(s,O(\"div\"));a.style.opacity=\"0\",a.style.transition=\"opacity 0.2s\",setTimeout((function(){return a.style.opacity=\"1\"}),200),a.textContent=n.localize(2,null),r.add(u.toDisposable((function(){return a.remove()})));var l=this.getCodeActions(e.marker);return r.add(u.toDisposable((function(){return l.cancel()}))),l.then((function(e){if(a.style.transition=\"\",a.style.opacity=\"1\",!e.validActions.length)return e.dispose(),void(a.textContent=n.localize(3,null));a.remove();var o=!1;r.add(u.toDisposable((function(){o||e.dispose()}))),r.add(t.renderAction(s,{label:n.localize(4,null),commandId:k.QuickFixAction.Id,run:function(n){o=!0;var r=k.QuickFixController.get(t._editor),s=i.getDomNodePagePosition(n);r.showCodeActions(W,e,{x:s.left+6,y:s.top+s.height+6})}}))})),this.renderDisposable.value=r,o},t.prototype.getCodeActions=function(e){var t=this;return I.createCancelablePromise((function(n){\nreturn M.getCodeActions(t._editor.getModel(),new c.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),W,n)}))},t.prototype.renderAction=function(e,t){var n=i.append(e,O(\"div.action-container\")),o=i.append(n,O(\"a.action\"));t.iconClass&&i.append(o,O(\"span.icon.\"+t.iconClass));var r=i.append(o,O(\"span\"));r.textContent=t.label;var s=this._keybindingService.lookupKeybinding(t.commandId);return s&&(r.title=t.label+\" (\"+s.getLabel()+\")\"),i.addDisposableListener(n,i.EventType.CLICK,(function(e){e.stopPropagation(),e.preventDefault(),t.run(n)}))},t.ID=\"editor.contrib.modesContentHoverWidget\",t._DECORATION_OPTIONS=h.ModelDecorationOptions.register({className:\"hoverHighlight\"}),t}(C.ContentHoverWidget);t.ModesContentHoverWidget=B,S.registerThemingParticipant((function(e,t){var n=e.getColor(R.textLinkForeground);n&&t.addRule(\".monaco-editor-hover .hover-contents a.code-link span:hover { color: \"+n+\"; }\")}))})),\ndefine(n[601],i([0,1,453,36,2,12,3,23,71,600,510,51,20,14,210,34,236,315]),(function(e,t,n,i,o,s,a,l,u,d,c,p,f,m,v,_,y){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var C=function(){function e(e,t,n,i,r,s){var a=this;this._editor=e,this._openerService=t,this._modeService=n,this._markerDecorationsService=i,this._keybindingService=r,this._themeService=s,this._toUnhook=new o.DisposableStore,this._contentWidget=new o.MutableDisposable,this._glyphWidget=new o.MutableDisposable,this._isMouseDown=!1,this._hoverClicked=!1,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((function(e){e.hasChanged(44)&&(a._hideWidgets(),a._unhookEvents(),a._hookEvents())}))}return Object.defineProperty(e.prototype,\"contentWidget\",{get:function(){return this._contentWidget.value||this._createHoverWidgets(),this._contentWidget.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"glyphWidget\",{get:function(){\nreturn this._glyphWidget.value||this._createHoverWidgets(),this._glyphWidget.value},enumerable:!0,configurable:!0}),e.get=function(t){return t.getContribution(e.ID)},e.prototype._hookEvents=function(){var e=this,t=function(){return e._hideWidgets()},n=this._editor.getOption(44);this._isHoverEnabled=n.enabled,this._isHoverSticky=n.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((function(t){return e._onEditorMouseDown(t)}))),this._toUnhook.add(this._editor.onMouseUp((function(t){return e._onEditorMouseUp(t)}))),this._toUnhook.add(this._editor.onMouseMove((function(t){return e._onEditorMouseMove(t)}))),this._toUnhook.add(this._editor.onKeyDown((function(t){return e._onKeyDown(t)}))),this._toUnhook.add(this._editor.onDidChangeModelDecorations((function(){return e._onModelDecorationsChanged()})))):this._toUnhook.add(this._editor.onMouseMove(t)),this._toUnhook.add(this._editor.onMouseLeave(t)),this._toUnhook.add(this._editor.onDidChangeModel(t)),\nthis._toUnhook.add(this._editor.onDidScrollChange((function(t){return e._onEditorScrollChanged(t)})))},e.prototype._unhookEvents=function(){this._toUnhook.clear()},e.prototype._onModelDecorationsChanged=function(){this.contentWidget.onModelDecorationsChanged(),this.glyphWidget.onModelDecorationsChanged()},e.prototype._onEditorScrollChanged=function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()},e.prototype._onEditorMouseDown=function(e){this._isMouseDown=!0;var t=e.target.type;9!==t||e.target.detail!==d.ModesContentHoverWidget.ID?12===t&&e.target.detail===c.ModesGlyphHoverWidget.ID||(12!==t&&e.target.detail!==c.ModesGlyphHoverWidget.ID&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0},e.prototype._onEditorMouseUp=function(e){this._isMouseDown=!1},e.prototype._onEditorMouseMove=function(e){var t=e.target.type\n;if(!(this._isMouseDown&&this._hoverClicked&&this.contentWidget.isColorPickerVisible()||this._isHoverSticky&&9===t&&e.target.detail===d.ModesContentHoverWidget.ID||this._isHoverSticky&&12===t&&e.target.detail===c.ModesGlyphHoverWidget.ID)){if(7===t){var n=this._editor.getOption(34).typicalHalfwidthCharacterWidth/2,i=e.target.detail;i&&!i.isAfterLines&&\"number\"==typeof i.horizontalDistanceToText&&i.horizontalDistanceToText<n&&(t=6)}6===t?(this.glyphWidget.hide(),this._isHoverEnabled&&e.target.range&&this.contentWidget.startShowingAt(e.target.range,0,!1)):2===t?(this.contentWidget.hide(),this._isHoverEnabled&&e.target.position&&this.glyphWidget.startShowingAt(e.target.position.lineNumber)):this._hideWidgets()}},e.prototype._onKeyDown=function(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()},e.prototype._hideWidgets=function(){\n!this._glyphWidget.value||!this._contentWidget.value||this._isMouseDown&&this._hoverClicked&&this._contentWidget.value.isColorPickerVisible()||(this._glyphWidget.value.hide(),this._contentWidget.value.hide())},e.prototype._createHoverWidgets=function(){this._contentWidget.value=new d.ModesContentHoverWidget(this._editor,this._markerDecorationsService,this._themeService,this._keybindingService,this._modeService,this._openerService),this._glyphWidget.value=new c.ModesGlyphHoverWidget(this._editor,this._modeService,this._openerService)},e.prototype.showContentHover=function(e,t,n){this.contentWidget.startShowingAt(e,t,n)},e.prototype.dispose=function(){this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),this._glyphWidget.dispose(),this._contentWidget.dispose()},e.ID=\"editor.contrib.hover\",e=h([g(1,p.IOpenerService),g(2,u.IModeService),g(3,v.IMarkerDecorationsService),g(4,_.IKeybindingService),g(5,m.IThemeService)],e)}();t.ModesHoverController=C;var b=function(e){\nfunction t(){return e.call(this,{id:\"editor.action.showHover\",label:n.localize(0,null),alias:\"Show Hover\",precondition:void 0,kbOpts:{kbExpr:l.EditorContextKeys.editorTextFocus,primary:i.KeyChord(2089,2087),weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){if(t.hasModel()){var n=C.get(t);if(n){var i=t.getPosition(),o=new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),r=2===t.getOption(2);n.showContentHover(o,1,r)}}},t}(s.EditorAction),S=function(e){function t(){return e.call(this,{id:\"editor.action.showDefinitionPreviewHover\",label:n.localize(1,null),alias:\"Show Definition Preview Hover\",precondition:void 0})||this}return r(t,e),t.prototype.run=function(e,t){var n=C.get(t);if(n){var i=t.getPosition();if(i){var o=new a.Range(i.lineNumber,i.column,i.lineNumber,i.column),r=y.GotoDefinitionAtPositionEditorContribution.get(t).startFindDefinitionFromCursor(i);r?r.then((function(){n.showContentHover(o,1,!0)})):n.showContentHover(o,1,!0)}}},t}(s.EditorAction);s.registerEditorContribution(C.ID,C),\ns.registerEditorAction(b),s.registerEditorAction(S),m.registerThemingParticipant((function(e,t){var n=e.getColor(f.editorHoverHighlight);n&&t.addRule(\".monaco-editor .hoverHighlight { background-color: \"+n+\"; }\");var i=e.getColor(f.editorHoverBackground);i&&t.addRule(\".monaco-editor .monaco-editor-hover { background-color: \"+i+\"; }\");var o=e.getColor(f.editorHoverBorder);o&&(t.addRule(\".monaco-editor .monaco-editor-hover { border: 1px solid \"+o+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid \"+o.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover hr { border-top: 1px solid \"+o.transparent(.5)+\"; }\"),t.addRule(\".monaco-editor .monaco-editor-hover hr { border-bottom: 0px solid \"+o.transparent(.5)+\"; }\"));var r=e.getColor(f.textLinkForeground);r&&t.addRule(\".monaco-editor .monaco-editor-hover a { color: \"+r+\"; }\");var s=e.getColor(f.editorHoverForeground);s&&t.addRule(\".monaco-editor .monaco-editor-hover { color: \"+s+\"; }\")\n;var a=e.getColor(f.editorHoverStatusBarBackground);a&&t.addRule(\".monaco-editor .monaco-editor-hover .hover-row .actions { background-color: \"+a+\"; }\");var l=e.getColor(f.textCodeBlockBackground);l&&t.addRule(\".monaco-editor .monaco-editor-hover code { background-color: \"+l+\"; }\")}))})),define(n[171],i([0,1,25,39,11,38]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IWorkspaceContextService=o.createDecorator(\"contextService\"),function(e){e.isIWorkspace=function(e){return e&&\"object\"==typeof e&&\"string\"==typeof e.id&&Array.isArray(e.folders)}}(t.IWorkspace||(t.IWorkspace={})),function(e){e.isIWorkspaceFolder=function(e){return e&&\"object\"==typeof e&&n.URI.isUri(e.uri)&&\"string\"==typeof e.name&&\"function\"==typeof e.toResource}}(t.IWorkspaceFolder||(t.IWorkspaceFolder={}));var s=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=null),this._id=e,this._configuration=n,this._foldersMap=r.TernarySearchTree.forPaths(),this.folders=t}\nreturn Object.defineProperty(e.prototype,\"folders\",{get:function(){return this._folders},set:function(e){this._folders=e,this.updateFoldersMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"configuration\",{get:function(){return this._configuration},set:function(e){this._configuration=e},enumerable:!0,configurable:!0}),e.prototype.getFolder=function(e){return e&&this._foldersMap.findSubstr(e.with({scheme:e.scheme,authority:e.authority,path:e.path}).toString())||null},e.prototype.updateFoldersMap=function(){this._foldersMap=r.TernarySearchTree.forPaths();for(var e=0,t=this.folders;e<t.length;e++){var n=t[e];this._foldersMap.set(n.uri.toString(),n)}},e.prototype.toJSON=function(){return{id:this.id,folders:this.folders,configuration:this.configuration}},e}();t.Workspace=s;var a=function(){function e(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}\nreturn e.prototype.toResource=function(e){return i.joinPath(this.uri,e)},e.prototype.toJSON=function(){return{uri:this.uri,name:this.name,index:this.index}},e}();t.WorkspaceFolder=a}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[172],i([0,1,5,6,56,4,36,2,16,112,25,108,163,58,13,3,17,29,43,518,502,217,86,504,505,35,171,59]),(function(e,t,n,i,o,s,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var T=function(){function e(e){this.model=e,this._onDispose=new s.Emitter}return Object.defineProperty(e.prototype,\"textEditorModel\",{get:function(){return this.model},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose.fire()},e}();t.SimpleModel=T;var R=function(){function e(e){this.modelService=e}return e.prototype.setEditor=function(e){this.editor=e},\ne.prototype.createModelReference=function(e){var t,n,i,o=this,r=null;return this.editor&&(t=this.editor,n=function(t){return o.findModel(t,e)},i=function(t){return o.findModel(t.getOriginalEditor(),e)||o.findModel(t.getModifiedEditor(),e)},r=f.isCodeEditor(t)?n(t):i(t)),r?Promise.resolve(new u.ImmortalReference(new T(r))):Promise.reject(new Error(\"Model not found\"))},e.prototype.findModel=function(e,t){var n=this.modelService?this.modelService.getModel(t):e.getModel();return n&&n.uri.toString()!==t.toString()?null:n},e}();t.SimpleEditorModelResolverService=R;var O=function(){function e(){}return e.prototype.show=function(){return e.NULL_PROGRESS_RUNNER},e.prototype.showWhile=function(e,t){return Promise.resolve(void 0)},e.NULL_PROGRESS_RUNNER={done:function(){},total:function(){},worked:function(){}},e}();t.SimpleEditorProgressService=O;var P=function(){};t.SimpleDialogService=P;var A=function(){function e(){}return e.prototype.info=function(e){return this.notify({severity:c.default.Info,message:e})},\ne.prototype.warn=function(e){return this.notify({severity:c.default.Warning,message:e})},e.prototype.error=function(e){return this.notify({severity:c.default.Error,message:e})},e.prototype.notify=function(t){switch(t.severity){case c.default.Error:console.error(t.message);break;case c.default.Warning:console.warn(t.message);break;default:console.log(t.message)}return e.NO_OP},e.prototype.status=function(e,t){return u.Disposable.None},e.NO_OP=new I.NoOpNotification,e}();t.SimpleNotificationService=A;var F=function(){function e(e){this._onWillExecuteCommand=new s.Emitter,this._onDidExecuteCommand=new s.Emitter,this._instantiationService=e,this._dynamicCommands=Object.create(null)}return e.prototype.addCommand=function(e){var t=this,n=e.id;return this._dynamicCommands[n]=e,u.toDisposable((function(){delete t._dynamicCommands[n]}))},e.prototype.executeCommand=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=b.CommandsRegistry.getCommand(e)||this._dynamicCommands[e]\n;if(!i)return Promise.reject(new Error(\"command '\"+e+\"' not found\"));try{this._onWillExecuteCommand.fire({commandId:e,args:t});var o=this._instantiationService.invokeFunction.apply(this._instantiationService,a([i.handler],t));return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(o)}catch(e){return Promise.reject(e)}},e}();t.StandaloneCommandService=F;var W=function(e){function t(t,n,r,s,a){var l=e.call(this,t,n,r,s)||this;return l._cachedResolver=null,l._dynamicKeybindings=[],l._register(i.addDisposableListener(a,i.EventType.KEY_DOWN,(function(e){var t=new o.StandardKeyboardEvent(e);l._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),l}return r(t,e),t.prototype.addDynamicKeybinding=function(e,t,n,i){var o=this,r=l.createKeybinding(t,d.OS),s=new u.DisposableStore;r&&(this._dynamicKeybindings.push({keybinding:r,command:e,when:i,weight1:1e3,weight2:0}),s.add(u.toDisposable((function(){for(var t=0;t<o._dynamicKeybindings.length;t++){\nif(o._dynamicKeybindings[t].command===e)return o._dynamicKeybindings.splice(t,1),void o.updateResolver({source:1})}}))));var a=this._commandService;if(!(a instanceof F))throw new Error(\"Unknown command service!\");return s.add(a.addCommand({id:e,handler:n})),this.updateResolver({source:1}),s},t.prototype.updateResolver=function(e){this._cachedResolver=null,this._onDidUpdateKeybindings.fire(e)},t.prototype._getResolver=function(){if(!this._cachedResolver){var e=this._toNormalizedKeybindingItems(D.KeybindingsRegistry.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new L.KeybindingResolver(e,t)}return this._cachedResolver},t.prototype._documentHasFocus=function(){return document.hasFocus()},t.prototype._toNormalizedKeybindingItems=function(e,t){for(var n=[],i=0,o=0,r=e;o<r.length;o++){var s=r[o],a=s.when||void 0,l=s.keybinding;if(l)for(var u=0,d=this.resolveKeybinding(l);u<d.length;u++){var c=d[u]\n;n[i++]=new N.ResolvedKeybindingItem(c,s.command,s.commandArgs,a,t)}else n[i++]=new N.ResolvedKeybindingItem(void 0,s.command,s.commandArgs,a,t)}return n},t.prototype.resolveKeybinding=function(e){return[new x.USLayoutResolvedKeybinding(e,d.OS)]},t.prototype.resolveKeyboardEvent=function(e){var t=new l.SimpleKeybinding(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new x.USLayoutResolvedKeybinding(t,d.OS)},t}(E.AbstractKeybindingService);function B(e){return e&&\"object\"==typeof e&&(!e.overrideIdentifier||\"string\"==typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof p.URI)}t.StandaloneKeybindingService=W;var V=function(){function e(){this._onDidChangeConfiguration=new s.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._configuration=new w.Configuration(new w.DefaultConfigurationModel,new w.ConfigurationModel)}return e.prototype.configuration=function(){return this._configuration},e.prototype.getValue=function(e,t){\nvar n=\"string\"==typeof e?e:void 0,i=B(e)?e:B(t)?t:{};return this.configuration().getValue(n,i,void 0)},e.prototype.updateValue=function(e,t,n,i){return this.configuration().updateValue(e,t),Promise.resolve()},e.prototype.inspect=function(e,t){return void 0===t&&(t={}),this.configuration().inspect(e,t,void 0)},e}();t.SimpleConfigurationService=V;var z=function(){function e(e){var t=this;this.configurationService=e,this._onDidChangeConfiguration=new s.Emitter,this.configurationService.onDidChangeConfiguration((function(e){t._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:function(t,n){return e.affectsConfiguration(n)}})}))}return e.prototype.getValue=function(e,t,n){var i=(_.Position.isIPosition(t)?t:null)?\"string\"==typeof n?n:void 0:\"string\"==typeof t?t:void 0;return void 0===i?this.configurationService.getValue():this.configurationService.getValue(i)},e}();t.SimpleResourceConfigurationService=z;var H=function(){function e(e){this.configurationService=e}\nreturn e.prototype.getEOL=function(e,t){var n=this.configurationService.getValue(\"files.eol\",{overrideIdentifier:t,resource:e});return n&&\"auto\"!==n?n:d.isLinux||d.isMacintosh?\"\\n\":\"\\r\\n\"},e=h([g(0,S.IConfigurationService)],e)}();t.SimpleResourcePropertiesService=H;var K=function(){function e(){}return e.prototype.publicLog=function(e,t){return Promise.resolve(void 0)},e.prototype.publicLog2=function(e,t){return this.publicLog(e,t)},e}();t.StandaloneTelemetryService=K;var U=function(){function e(){var t=p.URI.from({scheme:e.SCHEME,authority:\"model\",path:\"/\"});this.workspace={id:\"4064f6ec-cb38-4ad0-af64-ee6467e63c82\",folders:[new M.WorkspaceFolder({uri:t,name:\"\",index:0})]}}return e.prototype.getWorkspace=function(){return this.workspace},e.prototype.getWorkspaceFolder=function(t){return t&&t.scheme===e.SCHEME?this.workspace.folders[0]:null},e.SCHEME=\"inmemory\",e}();t.SimpleWorkspaceContextService=U,t.applyConfigurationValues=function(e,t,n){t&&e instanceof V&&Object.keys(t).forEach((function(i){\nm.isEditorConfigurationKey(i)&&e.updateValue(\"editor.\"+i,t[i]),n&&m.isDiffEditorConfigurationKey(i)&&e.updateValue(\"diffEditor.\"+i,t[i])}))};var j=function(){function e(e){this._modelService=e}return e.prototype.hasPreviewHandler=function(){return!1},e.prototype.apply=function(e,t){var i=new Map;if(e.edits)for(var o=0,r=e.edits;o<r.length;o++){var s=r[o];if(!C.WorkspaceTextEdit.is(s))return Promise.reject(new Error(\"bad edit - only text edits are supported\"));var a=this._modelService.getModel(s.resource);if(!a)return Promise.reject(new Error(\"bad edit - model not found\"));var l=i.get(a);l||(l=[],i.set(a,l)),l.push(s.edit)}var u=0,d=0;return i.forEach((function(e,t){t.pushStackElement(),t.pushEditOperations([],e.map((function(e){return v.EditOperation.replaceMove(y.Range.lift(e.range),e.text)})),(function(){return[]})),t.pushStackElement(),d+=1,u+=e.length})),Promise.resolve({selection:void 0,ariaSummary:n.format(k.SimpleServicesNLS.bulkEditServiceSummary,u,d)})},e}();t.SimpleBulkEditService=j\n;var q=function(){function e(){}return e.prototype.getUriLabel=function(e,t){return\"file\"===e.scheme?e.fsPath:e.path},e}();t.SimpleUriLabelService=q;var G=function(){function e(e){this._container=e,this.onLayout=s.Event.None}return Object.defineProperty(e.prototype,\"container\",{get:function(){return this._container},enumerable:!0,configurable:!0}),e}();t.SimpleLayoutService=G}));a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[602],i([0,1,24,50,2,32,121,230,190,62,172,94,65,29,43,18,66,11,34,35,14,64,59,162,73]),(function(e,t,n,i,o,s,l,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var I=0,M=!1;var k=function(e){function t(t,o,r,s,a,l,u,d,c,h){var g=this;return(o=o||{}).ariaLabel=o.ariaLabel||D.StandaloneCodeEditorNLS.editorViewAccessibleLabel,\no.ariaLabel=o.ariaLabel+\";\"+(n.isIE?D.StandaloneCodeEditorNLS.accessibilityHelpMessageIE:D.StandaloneCodeEditorNLS.accessibilityHelpMessage),g=e.call(this,t,o,{},r,s,a,l,d,c,h)||this,u instanceof p.StandaloneKeybindingService?g._standaloneKeybindingService=u:g._standaloneKeybindingService=null,M||(M=!0,i.setARIAContainer(document.body)),g}return r(t,e),t.prototype.addCommand=function(e,t,n){if(!this._standaloneKeybindingService)return console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\"),null;var i=\"DYNAMIC_\"+ ++I,o=y.ContextKeyExpr.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,o),i},t.prototype.createContextKey=function(e,t){return this._contextKeyService.createKey(e,t)},t.prototype.addAction=function(e){var t=this;if(\"string\"!=typeof e.id||\"string\"!=typeof e.label||\"function\"!=typeof e.run)throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\")\n;if(!this._standaloneKeybindingService)return console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"),o.Disposable.None;var n=e.id,i=e.label,r=y.ContextKeyExpr.and(y.ContextKeyExpr.equals(\"editorId\",this.getId()),y.ContextKeyExpr.deserialize(e.precondition)),s=e.keybindings,l=y.ContextKeyExpr.and(r,y.ContextKeyExpr.deserialize(e.keybindingContext)),u=e.contextMenuGroupId||null,c=e.contextMenuOrder||0,h=function(n){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];return Promise.resolve(e.run.apply(e,a([t],i)))},p=new o.DisposableStore,g=this.getId()+\":\"+n;if(p.add(v.CommandsRegistry.registerCommand(g,h)),u){var f={command:{id:g,title:i},when:r,group:u,order:c};p.add(m.MenuRegistry.appendMenuItem(7,f))}if(Array.isArray(s))for(var _=0,C=s;_<C.length;_++){var b=C[_];p.add(this._standaloneKeybindingService.addDynamicKeybinding(g,b,h,l))}var S=new d.InternalEditorAction(g,i,i,r,h,this._contextKeyService);return this._actions[n]=S,\np.add(o.toDisposable((function(){delete t._actions[n]}))),p},t=h([g(2,b.IInstantiationService),g(3,s.ICodeEditorService),g(4,v.ICommandService),g(5,y.IContextKeyService),g(6,S.IKeybindingService),g(7,E.IThemeService),g(8,w.INotificationService),g(9,L.IAccessibilityService)],t)}(l.CodeEditorWidget);t.StandaloneCodeEditor=k;var T=function(e){function t(t,n,i,o,r,s,a,l,u,d,c,h,g){var f=this;p.applyConfigurationValues(h,n,!1);var m=d.registerEditorContainer(t);\"string\"==typeof(n=n||{}).theme&&d.setTheme(n.theme);var v,_=n.model;if(delete n.model,(f=e.call(this,t,n,o,r,s,a,l,d,c,g)||this)._contextViewService=u,f._configurationService=h,f._register(i),f._register(m),void 0===_?(v=self.monaco.editor.createModel(n.value||\"\",n.language||\"text/plain\"),f._ownsModel=!0):(v=_,f._ownsModel=!1),f._attachModel(v),v){var y={oldModelUrl:null,newModelUrl:v.uri};f._onDidChangeModel.fire(y)}return f}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){\np.applyConfigurationValues(this._configurationService,t,!1),e.prototype.updateOptions.call(this,t)},t.prototype._attachModel=function(t){e.prototype._attachModel.call(this,t),this._modelData&&this._contextViewService.setContainer(this._modelData.view.domNode.domNode)},t.prototype._postDetachModelCleanup=function(t){e.prototype._postDetachModelCleanup.call(this,t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)},t=h([g(3,b.IInstantiationService),g(4,s.ICodeEditorService),g(5,v.ICommandService),g(6,y.IContextKeyService),g(7,S.IKeybindingService),g(8,C.IContextViewService),g(9,f.IStandaloneThemeService),g(10,w.INotificationService),g(11,_.IConfigurationService),g(12,L.IAccessibilityService)],t)}(k);t.StandaloneEditor=T;var R=function(e){function t(t,n,i,o,r,s,a,l,u,d,c,h,g,f,m){var v=this;p.applyConfigurationValues(h,n,!0);var _=d.registerEditorContainer(t);return\"string\"==typeof(n=n||{}).theme&&(n.theme=d.setTheme(n.theme)),(v=e.call(this,t,n,m,l,r,o,u,d,c,g,f)||this)._contextViewService=a,\nv._configurationService=h,v._register(i),v._register(_),v._contextViewService.setContainer(v._containerDomElement),v}return r(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){p.applyConfigurationValues(this._configurationService,t,!0),e.prototype.updateOptions.call(this,t)},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(k,t,n)},t.prototype.getOriginalEditor=function(){return e.prototype.getOriginalEditor.call(this)},t.prototype.getModifiedEditor=function(){return e.prototype.getModifiedEditor.call(this)},t.prototype.addCommand=function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)},t.prototype.createContextKey=function(e,t){return this.getModifiedEditor().createContextKey(e,t)},t.prototype.addAction=function(e){return this.getModifiedEditor().addAction(e)},\nt=h([g(3,b.IInstantiationService),g(4,y.IContextKeyService),g(5,S.IKeybindingService),g(6,C.IContextViewService),g(7,c.IEditorWorkerService),g(8,s.ICodeEditorService),g(9,f.IStandaloneThemeService),g(10,w.INotificationService),g(11,_.IConfigurationService),g(12,C.IContextMenuService),g(13,x.IEditorProgressService),g(14,b.optional(N.IClipboardService))],t)}(u.DiffEditorWidget);t.StandaloneDiffEditor=R})),define(n[238],i([0,1,2,156,32,62,219,71,516,49,556,114,172,592,594,94,65,29,43,519,18,595,66,506,500,11,501,115,34,116,170,95,508,72,35,73,74,96,14,171,499,210,565,64,218,83,517]),(function(e,t,n,i,o,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P,A,F,W,B,V,z,H,K,U,j,q,G){\"use strict\";var Y;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){var t=new x.ServiceCollection,n=function(){function e(e,t){this._serviceId=e,this._factory=t,this._value=null}return Object.defineProperty(e.prototype,\"id\",{get:function(){return this._serviceId},enumerable:!0,configurable:!0}),\ne.prototype.get=function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error(\"Service \"+this._serviceId+\" is missing!\");t.set(this._serviceId,this._value)}return this._value},e}();e.LazyStaticService=n;var i=[];function r(e,t){var o=new n(e,t);return i.push(o),o}e.init=function(e){for(var t=new x.ServiceCollection,n=0,o=q.getSingletonServiceDescriptors();n<o.length;n++){var r=o[n],s=r[0],a=r[1];t.set(s,a)}for(var l in e)e.hasOwnProperty(l)&&t.set(D.createDecorator(l),e[l]);i.forEach((function(n){return t.set(n.id,n.get(e))}));var u=new N.InstantiationService(t,!0);return t.set(D.IInstantiationService,u),[t,u]},e.instantiationService=r(D.IInstantiationService,(function(){return new N.InstantiationService(t,!0)}));var v=new p.SimpleConfigurationService;e.configurationService=r(y.IConfigurationService,(function(){return v})),e.resourceConfigurationService=r(h.ITextResourceConfigurationService,(function(){\nreturn new p.SimpleResourceConfigurationService(v)})),e.resourcePropertiesService=r(h.ITextResourcePropertiesService,(function(){return new p.SimpleResourcePropertiesService(v)})),e.contextService=r(V.IWorkspaceContextService,(function(){return new p.SimpleWorkspaceContextService})),e.labelService=r(M.ILabelService,(function(){return new p.SimpleUriLabelService})),e.telemetryService=r(W.ITelemetryService,(function(){return new p.StandaloneTelemetryService})),e.dialogService=r(L.IDialogService,(function(){return new p.SimpleDialogService})),e.notificationService=r(P.INotificationService,(function(){return new p.SimpleNotificationService})),e.markerService=r(O.IMarkerService,(function(){return new R.MarkerService})),e.modeService=r(l.IModeService,(function(e){return new u.ModeServiceImpl})),e.standaloneThemeService=r(m.IStandaloneThemeService,(function(){return new f.StandaloneThemeServiceImpl})),e.logService=r(T.ILogService,(function(){return new T.NullLogService})),\ne.modelService=r(d.IModelService,(function(t){return new c.ModelServiceImpl(e.configurationService.get(t),e.resourcePropertiesService.get(t),e.standaloneThemeService.get(t),e.logService.get(t))})),e.markerDecorationsService=r(H.IMarkerDecorationsService,(function(t){return new K.MarkerDecorationsService(e.modelService.get(t),e.markerService.get(t))})),e.codeEditorService=r(o.ICodeEditorService,(function(t){return new g.StandaloneCodeEditorServiceImpl(e.standaloneThemeService.get(t))})),e.editorProgressService=r(A.IEditorProgressService,(function(){return new p.SimpleEditorProgressService})),e.storageService=r(F.IStorageService,(function(){return new F.InMemoryStorageService})),e.editorWorkerService=r(s.IEditorWorkerService,(function(t){return new a.EditorWorkerServiceImpl(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t))}))}(Y=t.StaticServices||(t.StaticServices={}));var Z=function(e){function t(t,n){var o=e.call(this)||this,r=Y.init(n),s=r[0],a=r[1];o._serviceCollection=s,\no._instantiationService=a;var l=o.get(y.IConfigurationService),u=o.get(P.INotificationService),c=o.get(W.ITelemetryService),h=o.get(B.IThemeService),g=function(e,t){var i=null;return n&&(i=n[e.toString()]),i||(i=t()),o._serviceCollection.set(e,i),i},f=g(b.IContextKeyService,(function(){return o._register(new C.ContextKeyService(l))}));g(U.IAccessibilityService,(function(){return new G.AccessibilityService(f,l)})),g(k.IListService,(function(){return new k.ListService(h)}));var m=g(_.ICommandService,(function(){return new p.StandaloneCommandService(o._instantiationService)})),L=g(I.IKeybindingService,(function(){return o._register(new p.StandaloneKeybindingService(f,m,c,u,t))})),D=g(j.ILayoutService,(function(){return new p.SimpleLayoutService(t)})),N=g(w.IContextViewService,(function(){return o._register(new E.ContextViewService(D))}));return g(w.IContextMenuService,(function(){var e=new S.ContextMenuService(c,u,N,L,h);return e.configure({blockMouse:!1}),o._register(e)})),g(v.IMenuService,(function(){\nreturn new z.MenuService(m)})),g(i.IBulkEditService,(function(){return new p.SimpleBulkEditService(Y.modelService.get(d.IModelService))})),o}return r(t,e),t.prototype.get=function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error(\"Missing service \"+e);return t},t.prototype.set=function(e,t){this._serviceCollection.set(e,t)},t.prototype.has=function(e){return this._serviceCollection.has(e)},t}(n.Disposable);t.DynamicStandaloneServices=Z})),define(n[603],i([0,1,32,509,188,33,142,68,48,17,63,62,84,507,147,494,172,602,238,94,29,43,18,66,11,34,35,51,64,60,73,331]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M){\"use strict\";function k(e,t,o){var r=new _.DynamicStandaloneServices(e,t),s=null;r.has(h.ITextModelService)||(s=new m.SimpleEditorModelResolverService(_.StaticServices.modelService.get()),r.set(h.ITextModelService,s)),r.has(N.IOpenerService)||r.set(N.IOpenerService,new i.OpenerService(r.get(n.ICodeEditorService),r.get(C.ICommandService)));var a=o(r)\n;return s&&s.setEditor(a),a}function T(e,t,i){return k(e,i||{},(function(i){return new v.StandaloneEditor(e,t,i,i.get(E.IInstantiationService),i.get(n.ICodeEditorService),i.get(C.ICommandService),i.get(S.IContextKeyService),i.get(L.IKeybindingService),i.get(w.IContextViewService),i.get(y.IStandaloneThemeService),i.get(D.INotificationService),i.get(b.IConfigurationService),i.get(x.IAccessibilityService))}))}function R(e){return _.StaticServices.codeEditorService.get().onCodeEditorAdd((function(t){e(t)}))}function O(e,t,i){return k(e,i||{},(function(i){return new v.StandaloneDiffEditor(e,t,i,i.get(E.IInstantiationService),i.get(S.IContextKeyService),i.get(L.IKeybindingService),i.get(w.IContextViewService),i.get(c.IEditorWorkerService),i.get(n.ICodeEditorService),i.get(y.IStandaloneThemeService),i.get(D.INotificationService),i.get(b.IConfigurationService),i.get(w.IContextMenuService),i.get(M.IEditorProgressService),null)}))}function P(e,t){return new o.DiffNavigator(e,t)}function A(e,t,n){\nreturn _.StaticServices.modelService.get().createModel(e,t,n)}function F(e,t,n){if(e=e||\"\",!t){var i=e.indexOf(\"\\n\"),o=e;return-1!==i&&(o=e.substring(0,i)),A(e,_.StaticServices.modeService.get().createByFilepathOrFirstLine(n||null,o),n)}return A(e,_.StaticServices.modeService.get().create(t),n)}function W(e,t){_.StaticServices.modelService.get().setMode(e,_.StaticServices.modeService.get().create(t))}function B(e,t,n){e&&_.StaticServices.markerService.get().changeOne(t,e.uri,n)}function V(e){return _.StaticServices.markerService.get().read(e)}function z(e){return _.StaticServices.modelService.get().getModel(e)}function H(){return _.StaticServices.modelService.get().getModels()}function K(e){return _.StaticServices.modelService.get().onModelAdded(e)}function U(e){return _.StaticServices.modelService.get().onModelRemoved(e)}function j(e){return _.StaticServices.modelService.get().onModelModeChanged((function(t){e({model:t.model,oldLanguage:t.oldModeId})}))}function q(e){\nreturn p.createWebWorker(_.StaticServices.modelService.get(),e)}function G(e,t){return f.Colorizer.colorizeElement(_.StaticServices.standaloneThemeService.get(),_.StaticServices.modeService.get(),e,t)}function Y(e,t,n){return f.Colorizer.colorize(_.StaticServices.modeService.get(),e,t,n)}function Z(e,t,n){return void 0===n&&(n=4),f.Colorizer.colorizeModelLine(e,t,n)}function $(e,t){_.StaticServices.modeService.get().triggerMode(t);for(var n=function(e){var t=u.TokenizationRegistry.get(e);return t||{getInitialState:function(){return d.NULL_STATE},tokenize:function(t,n,i){return d.nullTokenize(e,t,n,i)}}}(t),i=e.split(/\\r\\n|\\r|\\n/),o=[],r=n.getInitialState(),s=0,a=i.length;s<a;s++){var l=i[s],c=n.tokenize(l,r,0);o[s]=c.tokens,r=c.endState}return o}function X(e,t){_.StaticServices.standaloneThemeService.get().defineTheme(e,t)}function Q(e){_.StaticServices.standaloneThemeService.get().setTheme(e)}function J(){I.clearAllFontInfos()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.create=T,t.onDidCreateEditor=R,\nt.createDiffEditor=O,t.createDiffNavigator=P,t.createModel=F,t.setModelLanguage=W,t.setModelMarkers=B,t.getModelMarkers=V,t.getModel=z,t.getModels=H,t.onDidCreateModel=K,t.onWillDisposeModel=U,t.onDidChangeModelLanguage=j,t.createWebWorker=q,t.colorizeElement=G,t.colorize=Y,t.colorizeModelLine=Z,t.tokenize=$,t.defineTheme=X,t.setTheme=Q,t.remeasureFonts=J,t.createMonacoEditorAPI=function(){return{create:T,onDidCreateEditor:R,createDiffEditor:O,createDiffNavigator:P,createModel:F,setModelLanguage:W,setModelMarkers:B,getModelMarkers:V,getModels:H,getModel:z,onDidCreateModel:K,onWillDisposeModel:U,onDidChangeModelLanguage:j,createWebWorker:q,colorizeElement:G,colorize:Y,colorizeModelLine:Z,tokenize:$,defineTheme:X,setTheme:Q,remeasureFonts:J,AccessibilitySupport:g.AccessibilitySupport,ContentWidgetPositionPreference:g.ContentWidgetPositionPreference,CursorChangeReason:g.CursorChangeReason,DefaultEndOfLine:g.DefaultEndOfLine,EditorAutoIndentStrategy:g.EditorAutoIndentStrategy,EditorOption:g.EditorOption,\nEndOfLinePreference:g.EndOfLinePreference,EndOfLineSequence:g.EndOfLineSequence,MinimapPosition:g.MinimapPosition,MouseTargetType:g.MouseTargetType,OverlayWidgetPositionPreference:g.OverlayWidgetPositionPreference,OverviewRulerLane:g.OverviewRulerLane,RenderLineNumbersType:g.RenderLineNumbersType,RenderMinimap:g.RenderMinimap,ScrollbarVisibility:g.ScrollbarVisibility,ScrollType:g.ScrollType,TextEditorCursorBlinkingStyle:g.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:g.TextEditorCursorStyle,TrackedRangeStickiness:g.TrackedRangeStickiness,WrappingIndent:g.WrappingIndent,ConfigurationChangedEvent:r.ConfigurationChangedEvent,BareFontInfo:s.BareFontInfo,FontInfo:s.FontInfo,TextModelResolvedOptions:l.TextModelResolvedOptions,FindMatch:l.FindMatch,EditorType:a.EditorType,EditorOptions:r.EditorOptions}}})),define(n[604],i([0,1,3,107,17,41,118,147,238,393,216]),(function(e,t,n,i,o,r,s,a,l,u,d){\"use strict\";function c(e){s.ModesRegistry.registerLanguage(e)}function h(){var e=[]\n;return e=e.concat(s.ModesRegistry.getLanguages())}function p(e){var t=l.StaticServices.modeService.get().getLanguageIdentifier(e);return t?t.id:0}function g(e,t){var n=l.StaticServices.modeService.get().onDidCreateMode((function(i){i.getId()===e&&(n.dispose(),t())}));return n}function f(e,t){var n=l.StaticServices.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error(\"Cannot set configuration for unknown language \"+e);return r.LanguageConfigurationRegistry.register(n,t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.register=c,t.getLanguages=h,t.getEncodedLanguageId=p,t.onLanguage=g,t.setLanguageConfiguration=f;var m=function(){function e(e){this._actual=e}return e.prototype.getInitialState=function(){return this._actual.getInitialState()},e.prototype.tokenize=function(e,t,n){throw new Error(\"Not supported!\")},e.prototype.tokenize2=function(e,t){var n=this._actual.tokenizeEncoded(e,t);return new i.TokenizationResult2(n.tokens,n.endState)},e}();t.EncodedTokenizationSupport2Adapter=m\n;var v=function(){function e(e,t,n){this._standaloneThemeService=e,this._languageIdentifier=t,this._actual=n}return e.prototype.getInitialState=function(){return this._actual.getInitialState()},e.prototype._toClassicTokens=function(e,t,n){for(var o=[],r=0,s=0,a=e.length;s<a;s++){var l=e[s],u=l.startIndex;0===s?u=0:u<r&&(u=r),o[s]=new i.Token(u+n,l.scopes,t),r=u}return o},e.prototype.tokenize=function(e,t,n){var o,r=this._actual.tokenize(e,t),s=this._toClassicTokens(r.tokens,this._languageIdentifier.language,n);return o=r.endState.equals(t)?t:r.endState,new i.TokenizationResult(s,o)},e.prototype._toBinaryTokens=function(e,t){for(var n=this._languageIdentifier.id,i=this._standaloneThemeService.getTheme().tokenTheme,o=[],r=0,s=0,a=0,l=e.length;a<l;a++){var u=e[a],d=i.match(n,u.scopes);if(!(r>0&&o[r-1]===d)){var c=u.startIndex;0===a?c=0:c<s&&(c=s),o[r++]=c+t,o[r++]=d,s=c}}var h=new Uint32Array(r);for(a=0;a<r;a++)h[a]=o[a];return h},e.prototype.tokenize2=function(e,t,n){\nvar o,r=this._actual.tokenize(e,t),s=this._toBinaryTokens(r.tokens,n);return o=r.endState.equals(t)?t:r.endState,new i.TokenizationResult2(s,o)},e}();function _(e){return e&&\"function\"==typeof e.then}function y(e,t){var n=l.StaticServices.modeService.get().getLanguageIdentifier(e);if(!n)throw new Error(\"Cannot set tokens provider for unknown language \"+e);var i=function(e){return function(e){return\"tokenizeEncoded\"in e}(e)?new m(e):new v(l.StaticServices.standaloneThemeService.get(),n,e)};return _(t)?o.TokenizationRegistry.registerPromise(e,t.then((function(e){return i(e)}))):o.TokenizationRegistry.register(e,i(t))}function C(e,t){var n=function(t){return d.createTokenizationSupport(l.StaticServices.modeService.get(),l.StaticServices.standaloneThemeService.get(),e,u.compile(e,t))};return _(t)?o.TokenizationRegistry.registerPromise(e,t.then((function(e){return n(e)}))):o.TokenizationRegistry.register(e,n(t))}function b(e,t){return o.ReferenceProviderRegistry.register(e,t)}function S(e,t){\nreturn o.RenameProviderRegistry.register(e,t)}function w(e,t){return o.SignatureHelpProviderRegistry.register(e,t)}function E(e,t){return o.HoverProviderRegistry.register(e,{provideHover:function(e,i,o){var r=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,o)).then((function(e){if(e)return!e.range&&r&&(e.range=new n.Range(i.lineNumber,r.startColumn,i.lineNumber,r.endColumn)),e.range||(e.range=new n.Range(i.lineNumber,i.column,i.lineNumber,i.column)),e}))}})}function L(e,t){return o.DocumentSymbolProviderRegistry.register(e,t)}function D(e,t){return o.DocumentHighlightProviderRegistry.register(e,t)}function N(e,t){return o.DefinitionProviderRegistry.register(e,t)}function x(e,t){return o.ImplementationProviderRegistry.register(e,t)}function I(e,t){return o.TypeDefinitionProviderRegistry.register(e,t)}function M(e,t){return o.CodeLensProviderRegistry.register(e,t)}function k(e,t){return o.CodeActionProviderRegistry.register(e,{provideCodeActions:function(e,i,o,r){\nvar s=l.StaticServices.markerService.get().read({resource:e.uri}).filter((function(e){return n.Range.areIntersectingOrTouching(e,i)}));return t.provideCodeActions(e,i,{markers:s,only:o.only},r)}})}function T(e,t){return o.DocumentFormattingEditProviderRegistry.register(e,t)}function R(e,t){return o.DocumentRangeFormattingEditProviderRegistry.register(e,t)}function O(e,t){return o.OnTypeFormattingEditProviderRegistry.register(e,t)}function P(e,t){return o.LinkProviderRegistry.register(e,t)}function A(e,t){return o.CompletionProviderRegistry.register(e,t)}function F(e,t){return o.ColorProviderRegistry.register(e,t)}function W(e,t){return o.FoldingRangeProviderRegistry.register(e,t)}function B(e,t){return o.DeclarationProviderRegistry.register(e,t)}function V(e,t){return o.SelectionRangeRegistry.register(e,t)}function z(e,t){return o.DocumentSemanticTokensProviderRegistry.register(e,t)}function H(e,t){return o.DocumentRangeSemanticTokensProviderRegistry.register(e,t)}t.TokenizationSupport2Adapter=v,\nt.setTokensProvider=y,t.setMonarchTokensProvider=C,t.registerReferenceProvider=b,t.registerRenameProvider=S,t.registerSignatureHelpProvider=w,t.registerHoverProvider=E,t.registerDocumentSymbolProvider=L,t.registerDocumentHighlightProvider=D,t.registerDefinitionProvider=N,t.registerImplementationProvider=x,t.registerTypeDefinitionProvider=I,t.registerCodeLensProvider=M,t.registerCodeActionProvider=k,t.registerDocumentFormattingEditProvider=T,t.registerDocumentRangeFormattingEditProvider=R,t.registerOnTypeFormattingEditProvider=O,t.registerLinkProvider=P,t.registerCompletionItemProvider=A,t.registerColorProvider=F,t.registerFoldingRangeProvider=W,t.registerDeclarationProvider=B,t.registerSelectionRangeProvider=V,t.registerDocumentSemanticTokensProvider=z,t.registerDocumentRangeSemanticTokensProvider=H,t.createMonacoLanguagesAPI=function(){return{register:c,getLanguages:h,onLanguage:g,getEncodedLanguageId:p,setLanguageConfiguration:f,setTokensProvider:y,setMonarchTokensProvider:C,registerReferenceProvider:b,\nregisterRenameProvider:S,registerCompletionItemProvider:A,registerSignatureHelpProvider:w,registerHoverProvider:E,registerDocumentSymbolProvider:L,registerDocumentHighlightProvider:D,registerDefinitionProvider:N,registerImplementationProvider:x,registerTypeDefinitionProvider:I,registerCodeLensProvider:M,registerCodeActionProvider:k,registerDocumentFormattingEditProvider:T,registerDocumentRangeFormattingEditProvider:R,registerOnTypeFormattingEditProvider:O,registerLinkProvider:P,registerColorProvider:F,registerFoldingRangeProvider:W,registerDeclarationProvider:B,registerSelectionRangeProvider:V,registerDocumentSemanticTokensProvider:z,registerDocumentRangeSemanticTokensProvider:H,DocumentHighlightKind:a.DocumentHighlightKind,CompletionItemKind:a.CompletionItemKind,CompletionItemTag:a.CompletionItemTag,CompletionItemInsertTextRule:a.CompletionItemInsertTextRule,SymbolKind:a.SymbolKind,SymbolTag:a.SymbolTag,IndentAction:a.IndentAction,CompletionTriggerKind:a.CompletionTriggerKind,\nSignatureHelpTriggerKind:a.SignatureHelpTriggerKind,FoldingRangeKind:o.FoldingRangeKind}}})),define(n[605],i([0,1,33,192,603,604]),(function(e,t,n,i,o,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var s=self;n.EditorOptions.wrappingIndent.defaultValue=0,n.EditorOptions.glyphMargin.defaultValue=!1,n.EditorOptions.autoIndent.defaultValue=3,n.EditorOptions.overviewRulerLanes.defaultValue=2;var a=i.createMonacoBaseAPI();a.editor=o.createMonacoEditorAPI(),a.languages=r.createMonacoLanguagesAPI(),t.CancellationTokenSource=a.CancellationTokenSource,t.Emitter=a.Emitter,t.KeyCode=a.KeyCode,t.KeyMod=a.KeyMod,t.Position=a.Position,t.Range=a.Range,t.Selection=a.Selection,t.SelectionDirection=a.SelectionDirection,t.MarkerSeverity=a.MarkerSeverity,t.MarkerTag=a.MarkerTag,t.Uri=a.Uri,t.Token=a.Token,t.editor=a.editor,t.languages=a.languages,s.monaco=a,void 0!==s.require&&\"function\"==typeof s.require.config&&s.require.config({\nignoreDuplicateModules:[\"vscode-languageserver-types\",\"vscode-languageserver-types/main\",\"vscode-nls\",\"vscode-nls/vscode-nls\",\"jsonc-parser\",\"jsonc-parser/main\",\"vscode-uri\",\"vscode-uri/index\",\"vs/basic-languages/typescript/typescript\"]})})),define(n[606],i([0,1,25]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.WORKSPACE_EXTENSION=\"code-workspace\",t.isSingleFolderWorkspaceIdentifier=function(e){return e instanceof n.URI},t.toWorkspaceIdentifier=function(e){return e.configuration?{configPath:e.configuration,id:e.id}:1===e.folders.length?e.folders[0].uri:void 0}})),define(n[607],i([0,1,466,77,39,151,41,5,606,136]),(function(e,t,n,i,o,r,s,a,l,u){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var d=function(){function e(e){this._delegates=e}return e.prototype.resolve=function(e){for(var t=0,n=this._delegates;t<n.length;t++){var i=n[t].resolve(e);if(void 0!==i)return i}},e}();t.CompositeSnippetVariableResolver=d;var c=function(){function e(e,t){this._model=e,\nthis._selection=t}return e.prototype.resolve=function(e){var t=e.name;if(\"SELECTION\"===t||\"TM_SELECTED_TEXT\"===t){var n=this._model.getValueInRange(this._selection)||void 0;if(n&&this._selection.startLineNumber!==this._selection.endLineNumber&&e.snippet){var i=this._model.getLineContent(this._selection.startLineNumber),o=a.getLeadingWhitespace(i,0,this._selection.startColumn-1),s=o;e.snippet.walk((function(t){return t!==e&&(t instanceof r.Text&&(s=a.getLeadingWhitespace(t.value.split(/\\r\\n|\\r|\\n/).pop())),!0)}));var l=a.commonPrefixLength(s,o);n=n.replace(/(\\r\\n|\\r|\\n)(.*)/g,(function(e,t,n){return\"\"+t+s.substr(l)+n}))}return n}if(\"TM_CURRENT_LINE\"===t)return this._model.getLineContent(this._selection.positionLineNumber);if(\"TM_CURRENT_WORD\"===t){var u=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return u&&u.word||void 0}\nreturn\"TM_LINE_INDEX\"===t?String(this._selection.positionLineNumber-1):\"TM_LINE_NUMBER\"===t?String(this._selection.positionLineNumber):void 0},e}();t.SelectionBasedVariableResolver=c;var h=function(){function e(e,t){this._labelService=e,this._model=t}return e.prototype.resolve=function(e){var t=e.name;if(\"TM_FILENAME\"===t)return i.basename(this._model.uri.fsPath);if(\"TM_FILENAME_BASE\"===t){var n=i.basename(this._model.uri.fsPath),r=n.lastIndexOf(\".\");return r<=0?n:n.slice(0,r)}return\"TM_DIRECTORY\"===t&&this._labelService?\".\"===i.dirname(this._model.uri.fsPath)?\"\":this._labelService.getUriLabel(o.dirname(this._model.uri)):\"TM_FILEPATH\"===t&&this._labelService?this._labelService.getUriLabel(this._model.uri):void 0},e}();t.ModelBasedVariableResolver=h;var p=function(){function e(e,t,n,i){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=n,this._spread=i}return e.prototype.resolve=function(e){if(\"CLIPBOARD\"===e.name){var t=this._readClipboardText();if(t){if(this._spread){\nvar n=t.split(/\\r\\n|\\n|\\r/).filter((function(e){return!a.isFalsyOrWhitespace(e)}));if(n.length===this._selectionCount)return n[this._selectionIdx]}return t}}},e}();t.ClipboardBasedVariableResolver=p;var g=function(){function e(e){this._model=e}return e.prototype.resolve=function(e){var t=e.name,n=this._model.getLanguageIdentifier(),i=s.LanguageConfigurationRegistry.getComments(n.id);if(i)return\"LINE_COMMENT\"===t?i.lineCommentToken||void 0:\"BLOCK_COMMENT_START\"===t?i.blockCommentStartToken||void 0:\"BLOCK_COMMENT_END\"===t&&i.blockCommentEndToken||void 0},e}();t.CommentBasedVariableResolver=g;var f=function(){function e(){}return e.prototype.resolve=function(t){var n=t.name\n;return\"CURRENT_YEAR\"===n?String((new Date).getFullYear()):\"CURRENT_YEAR_SHORT\"===n?String((new Date).getFullYear()).slice(-2):\"CURRENT_MONTH\"===n?a.pad((new Date).getMonth().valueOf()+1,2):\"CURRENT_DATE\"===n?a.pad((new Date).getDate().valueOf(),2):\"CURRENT_HOUR\"===n?a.pad((new Date).getHours().valueOf(),2):\"CURRENT_MINUTE\"===n?a.pad((new Date).getMinutes().valueOf(),2):\"CURRENT_SECOND\"===n?a.pad((new Date).getSeconds().valueOf(),2):\"CURRENT_DAY_NAME\"===n?e.dayNames[(new Date).getDay()]:\"CURRENT_DAY_NAME_SHORT\"===n?e.dayNamesShort[(new Date).getDay()]:\"CURRENT_MONTH_NAME\"===n?e.monthNames[(new Date).getMonth()]:\"CURRENT_MONTH_NAME_SHORT\"===n?e.monthNamesShort[(new Date).getMonth()]:\"CURRENT_SECONDS_UNIX\"===n?String(Math.floor(Date.now()/1e3)):void 0},e.dayNames=[n.localize(0,null),n.localize(1,null),n.localize(2,null),n.localize(3,null),n.localize(4,null),n.localize(5,null),n.localize(6,null)],\ne.dayNamesShort=[n.localize(7,null),n.localize(8,null),n.localize(9,null),n.localize(10,null),n.localize(11,null),n.localize(12,null),n.localize(13,null)],e.monthNames=[n.localize(14,null),n.localize(15,null),n.localize(16,null),n.localize(17,null),n.localize(18,null),n.localize(19,null),n.localize(20,null),n.localize(21,null),n.localize(22,null),n.localize(23,null),n.localize(24,null),n.localize(25,null)],e.monthNamesShort=[n.localize(26,null),n.localize(27,null),n.localize(28,null),n.localize(29,null),n.localize(30,null),n.localize(31,null),n.localize(32,null),n.localize(33,null),n.localize(34,null),n.localize(35,null),n.localize(36,null),n.localize(37,null)],e}();t.TimeBasedVariableResolver=f;var m=function(){function e(e){this._workspaceService=e}return e.prototype.resolve=function(e){if(this._workspaceService){var t=l.toWorkspaceIdentifier(this._workspaceService.getWorkspace())\n;if(t)return\"WORKSPACE_NAME\"===e.name?this._resolveWorkspaceName(t):\"WORKSPACE_FOLDER\"===e.name?this._resoveWorkspacePath(t):void 0}},e.prototype._resolveWorkspaceName=function(e){if(l.isSingleFolderWorkspaceIdentifier(e))return i.basename(e.path);var t=i.basename(e.configPath.path);return a.endsWith(t,l.WORKSPACE_EXTENSION)&&(t=t.substr(0,t.length-l.WORKSPACE_EXTENSION.length-1)),t},e.prototype._resoveWorkspacePath=function(e){if(l.isSingleFolderWorkspaceIdentifier(e))return u.normalizeDriveLetter(e.fsPath);var t=i.basename(e.configPath.path),n=e.configPath.fsPath;return a.endsWith(n,t)&&(n=n.substr(0,n.length-t.length-1)),n?u.normalizeDriveLetter(n):\"/\"},e}();t.WorkspaceBasedVariableResolver=m;var v=function(){function e(){}return e.prototype.resolve=function(e){var t=e.name;return\"RANDOM\"===t?Math.random().toString().slice(-6):\"RANDOM_HEX\"===t?Math.random().toString(16).slice(-6):void 0},e}();t.RandomBasedVariableResolver=v})),\ndefine(n[608],i([0,1,19,2,5,58,3,22,30,162,171,11,151,607,14,20,116,321]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g,f,m){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),g.registerThemingParticipant((function(e,t){function n(t){var n=e.getColor(t);return n?n.toString():\"transparent\"}t.addRule(\".monaco-editor .snippet-placeholder { background-color: \"+n(f.snippetTabstopHighlightBackground)+\"; outline-color: \"+n(f.snippetTabstopHighlightBorder)+\"; }\"),t.addRule(\".monaco-editor .finish-snippet-placeholder { background-color: \"+n(f.snippetFinalTabstopHighlightBackground)+\"; outline-color: \"+n(f.snippetFinalTabstopHighlightBorder)+\"; }\")}));var v=function(){function e(e,t,i){this._nestingLevel=1,this._editor=e,this._snippet=t,this._offset=i,this._placeholderGroups=n.groupBy(t.placeholders,h.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}return e.prototype.dispose=function(){if(this._placeholderDecorations){var e=[];this._placeholderDecorations.forEach((function(t){return e.push(t)})),\nthis._editor.deltaDecorations(e,[])}this._placeholderGroups.length=0},e.prototype._initDecorations=function(){var t=this;if(!this._placeholderDecorations){this._placeholderDecorations=new Map;var n=this._editor.getModel();this._editor.changeDecorations((function(i){for(var o=0,r=t._snippet.placeholders;o<r.length;o++){var a=r[o],l=t._snippet.offset(a),u=t._snippet.fullLen(a),d=s.Range.fromPositions(n.getPositionAt(t._offset+l),n.getPositionAt(t._offset+l+u)),c=a.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive,h=i.addDecoration(d,c);t._placeholderDecorations.set(a,h)}}))}},e.prototype.move=function(t){var n=this;if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){for(var i=[],o=0,s=this._placeholderGroups[this._placeholderGroupsIdx];o<s.length;o++){var l=s[o];if(l.transform){var u=this._placeholderDecorations.get(l),d=this._editor.getModel().getDecorationRange(u),c=this._editor.getModel().getValueInRange(d)\n;i.push(r.EditOperation.replaceMove(d,l.transform.resolve(c)))}}i.length>0&&this._editor.executeEdits(\"snippet.placeholderTransform\",i)}var h=!1;!0===t&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,h=!0):!1===t&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,h=!0);var p=this._editor.getModel().changeDecorations((function(t){for(var i=new Set,o=[],r=0,s=n._placeholderGroups[n._placeholderGroupsIdx];r<s.length;r++){var l=s[r],u=n._placeholderDecorations.get(l),d=n._editor.getModel().getDecorationRange(u);o.push(new a.Selection(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn)),h=h&&n._hasPlaceholderBeenCollapsed(l),t.changeDecorationOptions(u,l.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(l);for(var c=0,p=n._snippet.enclosingPlaceholders(l);c<p.length;c++){var g=p[c],f=n._placeholderDecorations.get(g);t.changeDecorationOptions(f,g.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(g)}}\nreturn n._placeholderDecorations.forEach((function(n,o){i.has(o)||t.changeDecorationOptions(n,o.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive)})),o}));return h?this.move(t):p},e.prototype._hasPlaceholderBeenCollapsed=function(e){for(var t=e;t;){if(t instanceof h.Placeholder){var n=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(n).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1},Object.defineProperty(e.prototype,\"isAtFirstPlaceholder\",{get:function(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isAtLastPlaceholder\",{get:function(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasPlaceholder\",{get:function(){return this._snippet.placeholders.length>0},enumerable:!0,configurable:!0}),e.prototype.computePossibleSelections=function(){\nfor(var e=new Map,t=0,n=this._placeholderGroups;t<n.length;t++)for(var i=void 0,o=0,r=n[t];o<r.length;o++){var s=r[o];if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));var a=this._placeholderDecorations.get(s),l=this._editor.getModel().getDecorationRange(a);if(!l){e.delete(s.index);break}i.push(l)}return e},Object.defineProperty(e.prototype,\"choice\",{get:function(){return this._placeholderGroups[this._placeholderGroupsIdx][0].choice},enumerable:!0,configurable:!0}),e.prototype.merge=function(t){var i=this,o=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((function(r){for(var a=0,l=i._placeholderGroups[i._placeholderGroupsIdx];a<l.length;a++){var u=l[a],d=t.shift();console.assert(!d._placeholderDecorations);for(var c=d._snippet.placeholderInfo.last.index,p=0,g=d._snippet.placeholderInfo.all;p<g.length;p++){var f=g[p];f.isFinalTabstop?f.index=u.index+(c+1)/i._nestingLevel:f.index=u.index+f.index/i._nestingLevel}i._snippet.replace(u,d._snippet.children)\n;var m=i._placeholderDecorations.get(u);r.removeDecoration(m),i._placeholderDecorations.delete(u);for(var v=0,_=d._snippet.placeholders;v<_.length;v++){var y=_[v],C=d._snippet.offset(y),b=d._snippet.fullLen(y),S=s.Range.fromPositions(o.getPositionAt(d._offset+C),o.getPositionAt(d._offset+C+b)),w=r.addDecoration(S,e._decor.inactive);i._placeholderDecorations.set(y,w)}}i._placeholderGroups=n.groupBy(i._snippet.placeholders,h.Placeholder.compareByIndex)}))},e._decor={active:l.ModelDecorationOptions.register({stickiness:0,className:\"snippet-placeholder\"}),inactive:l.ModelDecorationOptions.register({stickiness:1,className:\"snippet-placeholder\"}),activeFinal:l.ModelDecorationOptions.register({stickiness:1,className:\"finish-snippet-placeholder\"}),inactiveFinal:l.ModelDecorationOptions.register({stickiness:1,className:\"finish-snippet-placeholder\"})},e}();t.OneSnippet=v;var _={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0},y=function(){function e(e,t,n){void 0===n&&(n=_),\nthis._templateMerges=[],this._snippets=[],this._editor=e,this._template=t,this._options=n}return e.adjustWhitespace=function(e,t,n,i,r){var s=e.getLineContent(t.lineNumber),a=o.getLeadingWhitespace(s,0,t.column-1);n.walk((function(t){if(t instanceof h.Text&&!(t.parent instanceof h.Choice)){var n=t.value.split(/\\r\\n|\\r|\\n/);if(i)for(var s=1;s<n.length;s++){var l=o.getLeadingWhitespace(n[s]);n[s]=e.normalizeIndentation(a+l)+n[s].substr(l.length)}if(r){var u=n.join(e.getEOL());u!==t.value&&t.parent.replace(t,[new h.Text(u)])}}return!0}))},e.adjustSelection=function(e,t,n,i){if(0!==n||0!==i){var o=t.positionLineNumber,r=t.positionColumn,s=r-n,l=r+i,u=e.validateRange({startLineNumber:o,startColumn:s,endLineNumber:o,endColumn:l});t=a.Selection.createWithDirection(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn,t.getDirection())}return t},e.createEditsAndSnippets=function(t,n,i,o,a,l,g){var f=[],_=[];if(!t.hasModel())return{edits:f,snippets:_};for(var y=t.getModel(),C=t.invokeWithinContext((function(e){\nreturn e.get(d.IWorkspaceContextService,c.optional)})),b=t.invokeWithinContext((function(e){return new p.ModelBasedVariableResolver(e.get(m.ILabelService,c.optional),y)})),S=t.invokeWithinContext((function(e){return e.get(u.IClipboardService,c.optional)})),w=function(){return g||S&&S.readTextSync()},E=0,L=y.getValueInRange(e.adjustSelection(y,t.getSelection(),i,0)),D=y.getValueInRange(e.adjustSelection(y,t.getSelection(),0,o)),N=y.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),x=t.getSelections().map((function(e,t){return{selection:e,idx:t}})).sort((function(e,t){return s.Range.compareRangesUsingStarts(e.selection,t.selection)})),I=0,M=x;I<M.length;I++){var k=M[I],T=k.selection,R=k.idx,O=e.adjustSelection(y,T,i,0),P=e.adjustSelection(y,T,0,o);L!==y.getValueInRange(O)&&(O=T),D!==y.getValueInRange(P)&&(P=T);var A=T.setStartPosition(O.startLineNumber,O.startColumn).setEndPosition(P.endLineNumber,P.endColumn),F=(new h.SnippetParser).parse(n,!0,a),W=A.getStartPosition()\n;e.adjustWhitespace(y,W,F,l||R>0&&N!==y.getLineFirstNonWhitespaceColumn(T.positionLineNumber),!0),F.resolveVariables(new p.CompositeSnippetVariableResolver([b,new p.ClipboardBasedVariableResolver(w,R,x.length,\"spread\"===t.getOption(60)),new p.SelectionBasedVariableResolver(y,T),new p.CommentBasedVariableResolver(y),new p.TimeBasedVariableResolver,new p.WorkspaceBasedVariableResolver(C),new p.RandomBasedVariableResolver]));var B=y.getOffsetAt(W)+E;E+=F.toString().length-y.getValueLengthInRange(A),f[R]=r.EditOperation.replace(A,F.toString()),_[R]=new v(t,F,B)}return{edits:f,snippets:_}},e.prototype.dispose=function(){i.dispose(this._snippets)},e.prototype._logInfo=function(){return'template=\"'+this._template+'\", merged_templates=\"'+this._templateMerges.join(\" -> \")+'\"'},e.prototype.insert=function(){var t=this;if(this._editor.hasModel()){\nvar n=e.createEditsAndSnippets(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText),i=n.edits,o=n.snippets;this._snippets=o,this._editor.executeEdits(\"snippet\",i,(function(e){return t._snippets[0].hasPlaceholder?t._move(!0):e.map((function(e){return a.Selection.fromPositions(e.range.getEndPosition())}))})),this._editor.revealRange(this._editor.getSelections()[0])}},e.prototype.merge=function(t,n){var i=this;if(void 0===n&&(n=_),this._editor.hasModel()){this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);var o=e.createEditsAndSnippets(this._editor,t,n.overwriteBefore,n.overwriteAfter,!0,n.adjustWhitespace,n.clipboardText),r=o.edits,s=o.snippets;this._editor.executeEdits(\"snippet\",r,(function(e){for(var t=0,n=i._snippets;t<n.length;t++){n[t].merge(s)}return console.assert(0===s.length),i._snippets[0].hasPlaceholder?i._move(void 0):e.map((function(e){\nreturn a.Selection.fromPositions(e.range.getEndPosition())}))}))}},e.prototype.next=function(){var e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())},e.prototype.prev=function(){var e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())},e.prototype._move=function(e){for(var t=[],n=0,i=this._snippets;n<i.length;n++){var o=i[n].move(e);t.push.apply(t,o)}return t},Object.defineProperty(e.prototype,\"isAtFirstPlaceholder\",{get:function(){return this._snippets[0].isAtFirstPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isAtLastPlaceholder\",{get:function(){return this._snippets[0].isAtLastPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasPlaceholder\",{get:function(){return this._snippets[0].hasPlaceholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"choice\",{get:function(){\nreturn this._snippets[0].choice},enumerable:!0,configurable:!0}),e.prototype.isSelectionWithinPlaceholders=function(){if(!this.hasPlaceholder)return!1;var e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;for(var t=new Map,n=function(n){var i=n.computePossibleSelections();if(0===t.size&&i.forEach((function(n,i){n.sort(s.Range.compareRangesUsingStarts);for(var o=0,r=e;o<r.length;o++){var a=r[o];if(n[0].containsRange(a)){t.set(i,[]);break}}})),0===t.size)return{value:!1};t.forEach((function(e,t){e.push.apply(e,i.get(t))}))},i=0,o=this._snippets;i<o.length;i++){var r=n(o[i]);if(\"object\"==typeof r)return r.value}return e.sort(s.Range.compareRangesUsingStarts),t.forEach((function(n,i){if(n.length===e.length){n.sort(s.Range.compareRangesUsingStarts);for(var o=0;o<n.length;o++)if(!n[o].containsRange(e[o]))return void t.delete(i)}else t.delete(i)})),t.size>0},e}();t.SnippetSession=y})),define(n[173],i([0,1,2,5,12,3,22,23,120,18,95,608]),(function(e,t,n,i,o,r,s,a,u,d,c,p){\"use strict\"\n;Object.defineProperty(t,\"__esModule\",{value:!0});var f={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0},m=function(){function e(t,i,o){this._editor=t,this._logService=i,this._snippetListener=new n.DisposableStore,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(o),this._hasNextTabstop=e.HasNextTabstop.bindTo(o),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(o)}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),n.dispose(this._session),this._snippetListener.dispose()},e.prototype.insert=function(e,t){try{this._doInsert(e,void 0===t?f:l(l({},f),t))}catch(t){this.cancel(),this._logService.error(t),this._logService.error(\"snippet_error\"),this._logService.error(\"insert_template=\",e),this._logService.error(\"existing_template=\",this._session?this._session._logInfo():\"<no_session>\")}},e.prototype._doInsert=function(e,t){\nvar n=this;this._editor.hasModel()&&(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new p.SnippetSession(this._editor,e,t),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((function(e){return e.isFlush&&n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeModel((function(){return n.cancel()}))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((function(){return n._updateState()}))))},e.prototype._updateState=function(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel()\n;if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}},e.prototype._handleChoice=function(){var e=this;if(this._session&&this._editor.hasModel()){var t=this._session.choice;if(t){if(this._currentChoice!==t){this._currentChoice=t,this._editor.setSelections(this._editor.getSelections().map((function(e){return s.Selection.fromPositions(e.getStartPosition())})));var n=t.options[0];u.showSimpleSuggestions(this._editor,t.options.map((function(t,o){return{kind:13,label:t.value,insertText:t.value,sortText:i.repeat(\"a\",o+1),range:r.Range.fromPositions(e._editor.getPosition(),e._editor.getPosition().delta(0,n.value.length))}})))}}else this._currentChoice=void 0}else this._currentChoice=void 0},e.prototype.finish=function(){for(;this._inSnippet.get();)this.next()},e.prototype.cancel=function(e){\nvoid 0===e&&(e=!1),this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),n.dispose(this._session),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])},e.prototype.prev=function(){this._session&&this._session.prev(),this._updateState()},e.prototype.next=function(){this._session&&this._session.next(),this._updateState()},e.prototype.isInSnippet=function(){return Boolean(this._inSnippet.get())},e.ID=\"snippetController2\",e.InSnippetMode=new d.RawContextKey(\"inSnippetMode\",!1),e.HasNextTabstop=new d.RawContextKey(\"hasNextTabstop\",!1),e.HasPrevTabstop=new d.RawContextKey(\"hasPrevTabstop\",!1),e=h([g(1,c.ILogService),g(2,d.IContextKeyService)],e)}();t.SnippetController2=m,o.registerEditorContribution(m.ID,m);var v=o.EditorCommand.bindToContribution(m.get);o.registerEditorCommand(new v({id:\"jumpToNextSnippetPlaceholder\",precondition:d.ContextKeyExpr.and(m.InSnippetMode,m.HasNextTabstop),handler:function(e){\nreturn e.next()},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:2}})),o.registerEditorCommand(new v({id:\"jumpToPrevSnippetPlaceholder\",precondition:d.ContextKeyExpr.and(m.InSnippetMode,m.HasPrevTabstop),handler:function(e){return e.prev()},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:1026}})),o.registerEditorCommand(new v({id:\"leaveSnippet\",precondition:m.InSnippetMode,handler:function(e){return e.cancel(!0)},kbOpts:{weight:130,kbExpr:a.EditorContextKeys.editorTextFocus,primary:9,secondary:[1033]}})),o.registerEditorCommand(new v({id:\"acceptSnippet\",precondition:m.InSnippetMode,handler:function(e){return e.finish()}}))})),define(n[609],i([0,1,19,15,10,4,2,22,17,389,120,173,26,392,5]),(function(e,t,n,i,o,r,s,a,l,u,d,c,h,p,g){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var f=function(){function e(e,t,n,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),\nthis.lineNumber=t.lineNumber,this.column=t.column,this.auto=n,this.shy=i}return e.shouldAutoTrigger=function(e){if(!e.hasModel())return!1;var t=e.getModel(),n=e.getPosition();t.tokenizeIfCheap(n.lineNumber);var i=t.getWordAtPosition(n);return!!i&&(i.endColumn===n.column&&!!isNaN(Number(i.word)))},e}();t.LineContext=f;var m=function(){function e(e,t){var n=this;this._editor=e,this._editorWorker=t,this._toDispose=new s.DisposableStore,this._quickSuggestDelay=10,this._triggerCharacterListener=new s.DisposableStore,this._triggerQuickSuggest=new i.TimeoutTimer,this._state=0,this._completionDisposables=new s.DisposableStore,this._onDidCancel=new r.Emitter,this._onDidTrigger=new r.Emitter,this._onDidSuggest=new r.Emitter,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new a.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((function(){n._updateTriggerCharacters(),\nn.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((function(){n._updateTriggerCharacters(),n.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((function(){n._updateTriggerCharacters(),n._updateQuickSuggest()}))),this._toDispose.add(l.CompletionProviderRegistry.onDidChange((function(){n._updateTriggerCharacters(),n._updateActiveSuggestSession()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((function(e){n._onCursorChange(e)})));var o=!1;this._toDispose.add(this._editor.onDidCompositionStart((function(){o=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((function(){o=!1,n._refilterCompletionItems()}))),this._toDispose.add(this._editor.onDidChangeModelContent((function(){o||n._refilterCompletionItems()}))),this._updateTriggerCharacters(),this._updateQuickSuggest()}return e.prototype.dispose=function(){s.dispose(this._triggerCharacterListener),s.dispose([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),\nthis._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()},e.prototype._updateQuickSuggest=function(){this._quickSuggestDelay=this._editor.getOption(67),(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)},e.prototype._updateTriggerCharacters=function(){var e=this;if(this._triggerCharacterListener.clear(),!this._editor.getOption(68)&&this._editor.hasModel()&&this._editor.getOption(92)){for(var t=new Map,n=0,i=l.CompletionProviderRegistry.all(this._editor.getModel());n<i.length;n++)for(var o=i[n],r=0,s=o.triggerCharacters||[];r<s.length;r++){var a=s[r],u=t.get(a);u||((u=new Set).add(d.getSnippetSuggestSupport()),t.set(a,u)),u.add(o)}var c=function(n){if(!n){var i=e._editor.getPosition();n=e._editor.getModel().getLineContent(i.lineNumber).substr(0,i.column-1)}var o=\"\"\n;g.isLowSurrogate(n.charCodeAt(n.length-1))?g.isHighSurrogate(n.charCodeAt(n.length-2))&&(o=n.substr(n.length-2)):o=n.charAt(n.length-1);var r=t.get(o);if(r){var s=e._completionModel?e._completionModel.adopt(r):void 0;e.trigger({auto:!0,shy:!1,triggerCharacter:o},Boolean(e._completionModel),r,s)}};this._triggerCharacterListener.add(this._editor.onDidType(c)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(c))}},Object.defineProperty(e.prototype,\"state\",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancel=function(e){void 0===e&&(e=!1),0!==this._state&&(this._triggerQuickSuggest.cancel(),this._requestToken&&(this._requestToken.cancel(),this._requestToken=void 0),this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))},e.prototype.clear=function(){this._completionDisposables.clear()},e.prototype._updateActiveSuggestSession=function(){\n0!==this._state&&(this._editor.hasModel()&&l.CompletionProviderRegistry.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1},!0):this.cancel())},e.prototype._onCursorChange=function(e){var t=this;if(this._editor.hasModel()){var n=this._editor.getModel(),i=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason||\"keyboard\"!==e.source&&\"deleteLeft\"!==e.source)this.cancel();else if(l.CompletionProviderRegistry.has(n)&&0===this._state){if(!1===this._editor.getOption(66))return;if(!i.containsRange(this._currentSelection)&&!i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))return;if(this._editor.getOption(89).snippetsPreventQuickSuggestions&&c.SnippetController2.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet((function(){if(0===t._state&&f.shouldAutoTrigger(t._editor)&&t._editor.hasModel()){var e=t._editor.getModel(),n=t._editor.getPosition(),i=t._editor.getOption(66)\n;if(!1!==i){if(!0===i);else{e.tokenizeIfCheap(n.lineNumber);var o=e.getLineTokens(n.lineNumber),r=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(!(i.other&&0===r||i.comments&&1===r||i.strings&&2===r))return}t.trigger({auto:!0,shy:!1})}}}),this._quickSuggestDelay)}}},e.prototype._refilterCompletionItems=function(){var e=this;Promise.resolve().then((function(){if(0!==e._state&&e._editor.hasModel()){var t=e._editor.getModel(),n=e._editor.getPosition(),i=new f(t,n,2===e._state,!1);e._onNewContext(i)}}))},e.prototype.trigger=function(t,i,r,a){var l=this;if(void 0===i&&(i=!1),this._editor.hasModel()){var c,g=this._editor.getModel(),m=t.auto,v=new f(g,this._editor.getPosition(),m,t.shy);this.cancel(i),this._state=m?2:1,this._onDidTrigger.fire({auto:m,shy:t.shy,position:this._editor.getPosition()}),this._context=v,c=t.triggerCharacter?{triggerKind:1,triggerCharacter:t.triggerCharacter}:r&&r.size>0?{triggerKind:2}:{triggerKind:0},this._requestToken=new h.CancellationTokenSource\n;var _=this._editor.getOption(86),y=1;switch(_){case\"top\":y=0;break;case\"bottom\":y=2}var C=e._createItemKindFilter(this._editor),b=p.WordDistance.create(this._editorWorker,this._editor),S=d.provideSuggestionItems(g,this._editor.getPosition(),new d.CompletionOptions(y,C,r),c,this._requestToken.token);Promise.all([S,b]).then((function(e){var i=e[0],o=e[1];if(s.dispose(l._requestToken),0!==l._state&&l._editor.hasModel()){var r=l._editor.getModel();if(n.isNonEmptyArray(a)){var c=d.getSuggestionComparator(y);i=i.concat(a).sort(c)}var h=new f(r,l._editor.getPosition(),m,t.shy);l._completionModel=new u.CompletionModel(i,l._context.column,{leadingLineContent:h.leadingLineContent,characterCountDelta:h.column-l._context.column},o,l._editor.getOption(89),l._editor.getOption(86));for(var p=0,g=i;p<g.length;p++){var v=g[p];s.isDisposable(v.container)&&l._completionDisposables.add(v.container)}l._onNewContext(h)}})).catch(o.onUnexpectedError)}},e._createItemKindFilter=function(e){var t=new Set\n;\"none\"===e.getOption(86)&&t.add(25);var n=e.getOption(89);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(25),t},e.prototype._onNewContext=function(e){if(this._context)if(e.lineNumber===this._context.lineNumber){if(e.leadingWord.startColumn<this._context.leadingWord.startColumn)this.cancel();else if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.auto,shy:!1\n},!0):this.cancel();else if(this._completionModel)if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){var t=this._completionModel.incomplete,n=this._completionModel.adopt(t);this.trigger({auto:2===this._state,shy:!1},!0,t,n)}else{var i=this._completionModel.lineContext,o=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(f.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.auto,shy:!1},!0);if(this._context.auto)return void this.cancel();if(this._completionModel.lineContext=i,(o=this._completionModel.items.length>0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,isFrozen:o})}}else this.cancel()},e}();t.SuggestModel=m}))\n;a=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i};define(n[610],i([0,1,50,19,10,36,2,12,58,3,23,173,151,521,467,29,18,11,86,120,497,609,585,498,4,62,15,21,390,16,391]),(function(e,t,n,i,o,s,u,d,c,p,f,m,v,_,y,C,b,S,w,E,L,D,N,x,I,M,k,T,R,O,P){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var A=!1,F=function(){function e(e,t){if(this._model=e,this._position=t,e.getLineMaxColumn(t.lineNumber)!==t.column){var n=e.getOffsetAt(t),i=e.getPositionAt(n+1);this._marker=e.deltaDecorations([],[{range:p.Range.fromPositions(t,i),options:{stickiness:1}}])}}return e.prototype.dispose=function(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])},e.prototype.delta=function(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){\nvar t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column},e}(),W=function(){function e(e,t,n,i,o,r){var a=this;this._memoryService=n,this._commandService=i,this._contextKeyService=o,this._instantiationService=r,this._lineSuffix=new u.MutableDisposable,this._toDispose=new u.DisposableStore,this.editor=e,this.model=new D.SuggestModel(this.editor,t),this.widget=this._toDispose.add(new k.IdleValue((function(){var e=a._instantiationService.createInstance(N.SuggestWidget,a.editor);a._toDispose.add(e),a._toDispose.add(e.onDidSelect((function(e){return a._insertSuggestion(e,0)}),a));var t=new R.CommitCharacterController(a.editor,e,(function(e){return a._insertSuggestion(e,2)}));a._toDispose.add(t),a._toDispose.add(a.model.onDidSuggest((function(e){0===e.completionModel.items.length&&t.reset()})));var n=E.Context.MakesTextEdit.bindTo(a._contextKeyService)\n;return a._toDispose.add(e.onDidFocus((function(e){var t=e.item,i=a.editor.getPosition(),o=t.editStart.column,r=i.column,s=!0;\"smart\"!==a.editor.getOption(1)||2!==a.model.state||t.completion.command||t.completion.additionalTextEdits||4&t.completion.insertTextRules||r-o!==t.completion.insertText.length||(s=a.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:o,endLineNumber:i.lineNumber,endColumn:r})!==t.completion.insertText);n.set(s)}))),a._toDispose.add(u.toDisposable((function(){return n.reset()}))),a._toDispose.add(e.onDetailsKeyDown((function(e){e.toKeybinding().equals(new s.SimpleKeybinding(!0,!1,!1,!1,33))||O.isMacintosh&&e.toKeybinding().equals(new s.SimpleKeybinding(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||a.editor.focus()}))),e}))),this._alternatives=this._toDispose.add(new k.IdleValue((function(){return a._toDispose.add(new L.SuggestAlternatives(a.editor,a._contextKeyService))}))),this._toDispose.add(r.createInstance(x.WordContextKey,e)),\nthis._toDispose.add(this.model.onDidTrigger((function(e){a.widget.getValue().showTriggered(e.auto,e.shy?250:50),a._lineSuffix.value=new F(a.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((function(e){if(!e.shy){var t=a._memoryService.select(a.editor.getModel(),a.editor.getPosition(),e.completionModel.items);a.widget.getValue().showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}}))),this._toDispose.add(this.model.onDidCancel((function(e){e.retrigger||a.widget.getValue().hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((function(){A||(a.model.cancel(),a.model.clear())})));var l=E.Context.AcceptSuggestionsOnEnter.bindTo(o),d=function(){var e=a.editor.getOption(1);l.set(\"on\"===e||\"smart\"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((function(){return d()}))),d(),this._toDispose.add(new P.SuggestRangeHighlighter(this))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype.dispose=function(){this._alternatives.dispose(),\nthis._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()},e.prototype._insertSuggestion=function(e,t){var n,i=this;if(!e||!e.item)return this._alternatives.getValue().reset(),this.model.cancel(),void this.model.clear();if(this.editor.hasModel()){var r=this.editor.getModel(),s=r.getAlternativeVersionId(),l=e.item,u=l.completion;1&t||this.editor.pushUndoStop();var d=this.getOverwriteInfo(l,Boolean(8&t));this._memoryService.memorize(r,this.editor.getPosition(),l),Array.isArray(u.additionalTextEdits)&&this.editor.executeEdits(\"suggestController.additionalTextEdits\",u.additionalTextEdits.map((function(e){return c.EditOperation.replace(p.Range.lift(e.range),e.text)})));var h=u.insertText;4&u.insertTextRules||(h=v.SnippetParser.escape(h)),m.SnippetController2.get(this.editor).insert(h,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&u.insertTextRules)}),2&t||this.editor.pushUndoStop(),\nu.command?u.command.id===B.id?this.model.trigger({auto:!0,shy:!1},!0):((n=this._commandService).executeCommand.apply(n,a([u.command.id],u.command.arguments?a(u.command.arguments):[])).catch(o.onUnexpectedError).finally((function(){return i.model.clear()})),this.model.cancel()):(this.model.cancel(),this.model.clear()),4&t&&this._alternatives.getValue().set(e,(function(e){for(;r.canUndo();){s!==r.getAlternativeVersionId()&&r.undo(),i._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(e.item)}},e.prototype.getOverwriteInfo=function(e,t){T.assertType(this.editor.hasModel());var n=\"replace\"===this.editor.getOption(89).insertMode;t&&(n=!n);var i=e.position.column-e.editStart.column,o=(n?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:i+(this.editor.getPosition().column-e.position.column),overwriteAfter:o+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}},e.prototype._alertCompletionItem=function(e){\nvar t=e.completion,o=\"string\"==typeof t.label?t.label:t.label.name;if(i.isNonEmptyArray(t.additionalTextEdits)){var r=y.localize(0,null,o,t.additionalTextEdits.length);n.alert(r)}},e.prototype.triggerSuggest=function(e){this.editor.hasModel()&&(this.model.trigger({auto:!1,shy:!1},!1,e),this.editor.revealLine(this.editor.getPosition().lineNumber,0),this.editor.focus())},e.prototype.triggerSuggestAndAcceptBest=function(e){var t=this;if(this.editor.hasModel()){var n=this.editor.getPosition(),i=function(){n.equals(t.editor.getPosition())&&t._commandService.executeCommand(e.fallback)};I.Event.once(this.model.onDidTrigger)((function(e){var n=[];I.Event.any(t.model.onDidTrigger,t.model.onDidCancel)((function(){u.dispose(n),i()}),void 0,n),t.model.onDidSuggest((function(e){var o=e.completionModel;if(u.dispose(n),0!==o.items.length){var r=t._memoryService.select(t.editor.getModel(),t.editor.getPosition(),o.items),s=o.items[r];!function(e){if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0\n;var n=t.editor.getPosition(),i=e.editStart.column,o=n.column;return o-i!==e.completion.insertText.length||t.editor.getModel().getValueInRange({startLineNumber:n.lineNumber,startColumn:i,endLineNumber:n.lineNumber,endColumn:o})!==e.completion.insertText}(s)?i():(t.editor.pushUndoStop(),t._insertSuggestion({index:r,item:s,model:o},7))}else i()}),void 0,n)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealLine(n.lineNumber,0),this.editor.focus()}},e.prototype.acceptSelectedSuggestion=function(e,t){var n=this.widget.getValue().getFocusedItem(),i=0;e&&(i|=4),t&&(i|=8),this._insertSuggestion(n,i)},e.prototype.acceptNextSuggestion=function(){this._alternatives.getValue().next()},e.prototype.acceptPrevSuggestion=function(){this._alternatives.getValue().prev()},e.prototype.cancelSuggestWidget=function(){this.model.cancel(),this.model.clear(),this.widget.getValue().hideWidget()},e.prototype.selectNextSuggestion=function(){this.widget.getValue().selectNext()},e.prototype.selectNextPageSuggestion=function(){\nthis.widget.getValue().selectNextPage()},e.prototype.selectLastSuggestion=function(){this.widget.getValue().selectLast()},e.prototype.selectPrevSuggestion=function(){this.widget.getValue().selectPrevious()},e.prototype.selectPrevPageSuggestion=function(){this.widget.getValue().selectPreviousPage()},e.prototype.selectFirstSuggestion=function(){this.widget.getValue().selectFirst()},e.prototype.toggleSuggestionDetails=function(){this.widget.getValue().toggleDetails()},e.prototype.toggleExplainMode=function(){this.widget.getValue().toggleExplainMode()},e.prototype.toggleSuggestionFocus=function(){this.widget.getValue().toggleDetailsFocus()},e.ID=\"editor.contrib.suggestController\",e=h([g(1,M.IEditorWorkerService),g(2,_.ISuggestMemoryService),g(3,C.ICommandService),g(4,b.IContextKeyService),g(5,S.IInstantiationService)],e)}();t.SuggestController=W;var B=function(e){function t(){return e.call(this,{id:t.id,label:y.localize(1,null),alias:\"Trigger Suggest\",\nprecondition:b.ContextKeyExpr.and(f.EditorContextKeys.writable,f.EditorContextKeys.hasCompletionItemProvider),kbOpts:{kbExpr:f.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266,secondary:[521]},weight:100}})||this}return r(t,e),t.prototype.run=function(e,t){var n=W.get(t);n&&n.triggerSuggest()},t.id=\"editor.action.triggerSuggest\",t}(d.EditorAction);t.TriggerSuggestAction=B,d.registerEditorContribution(W.ID,W),d.registerEditorAction(B);var V=d.EditorCommand.bindToContribution(W.get);d.registerEditorCommand(new V({id:\"acceptSelectedSuggestion\",precondition:E.Context.Visible,handler:function(e){e.acceptSelectedSuggestion(!0,!1)}})),w.KeybindingsRegistry.registerKeybindingRule({id:\"acceptSelectedSuggestion\",when:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus),primary:2,weight:190}),w.KeybindingsRegistry.registerKeybindingRule({id:\"acceptSelectedSuggestion\",\nwhen:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus,E.Context.AcceptSuggestionsOnEnter,E.Context.MakesTextEdit),primary:3,weight:190}),d.registerEditorCommand(new V({id:\"acceptAlternativeSelectedSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,f.EditorContextKeys.textInputFocus),kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler:function(e){e.acceptSelectedSuggestion(!1,!0)}})),C.CommandsRegistry.registerCommandAlias(\"acceptSelectedSuggestionOnEnter\",\"acceptSelectedSuggestion\"),d.registerEditorCommand(new V({id:\"hideSuggestWidget\",precondition:E.Context.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),d.registerEditorCommand(new V({id:\"selectNextSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:190,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),d.registerEditorCommand(new V({id:\"selectNextPageSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),d.registerEditorCommand(new V({id:\"selectLastSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),d.registerEditorCommand(new V({id:\"selectPrevSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),d.registerEditorCommand(new V({id:\"selectPrevPageSuggestion\",\nprecondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),d.registerEditorCommand(new V({id:\"selectFirstSuggestion\",precondition:b.ContextKeyExpr.and(E.Context.Visible,E.Context.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),d.registerEditorCommand(new V({id:\"toggleSuggestionDetails\",precondition:E.Context.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:2058,mac:{primary:266}}})),d.registerEditorCommand(new V({id:\"toggleExplainMode\",precondition:E.Context.Visible,handler:function(e){return e.toggleExplainMode()},kbOpts:{weight:100,primary:2133}})),d.registerEditorCommand(new V({id:\"toggleSuggestionFocus\",precondition:E.Context.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:190,\nkbExpr:f.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),d.registerEditorCommand(new V({id:\"insertBestCompletion\",precondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),x.WordContextKey.AtEnd,E.Context.Visible.toNegated(),L.SuggestAlternatives.OtherSuggestions.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e,t){e.triggerSuggestAndAcceptBest(T.isObject(t)?l({fallback:\"tab\"},t):{fallback:\"tab\"})},kbOpts:{weight:190,primary:2}})),d.registerEditorCommand(new V({id:\"insertNextSuggestion\",precondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),L.SuggestAlternatives.OtherSuggestions,E.Context.Visible.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e){return e.acceptNextSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:2}})),d.registerEditorCommand(new V({id:\"insertPrevSuggestion\",\nprecondition:b.ContextKeyExpr.and(b.ContextKeyExpr.equals(\"config.editor.tabCompletion\",\"on\"),L.SuggestAlternatives.OtherSuggestions,E.Context.Visible.toNegated(),m.SnippetController2.InSnippetMode.toNegated()),handler:function(e){return e.acceptPrevSuggestion()},kbOpts:{weight:190,kbExpr:f.EditorContextKeys.textInputFocus,primary:1026}}))})),define(n[611],i([0,1,164,121,230,188,566,524,525,526,579,569,223,530,531,532,533,232,574,534,536,235,236,237,601,576,539,577,580,582,584,541,173,610,542,225,586,226,543,59]),(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})})),define(n[615],i([0,1,605,611,587,544,588,589,590,591,597,545]),(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n)}))}).call(this);\n\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/typescript/lib/typescriptServicesMetadata\",[\"require\",\"exports\"],(function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.typescriptVersion=\"3.7.5\"})),define(\"vs/language/typescript/monaco.contribution\",[\"require\",\"exports\",\"./lib/typescriptServicesMetadata\",\"vs/editor/editor.api\"],(function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i,o,r,s,a,c=monaco.Emitter,u=function(){function t(t,e){this._onDidChange=new c,this._onDidExtraLibsChange=new c,this._extraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(e),this._onDidExtraLibsChangeTimeout=-1}return Object.defineProperty(t.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"onDidExtraLibsChange\",{get:function(){return this._onDidExtraLibsChange.event},enumerable:!0,configurable:!0}),t.prototype.getExtraLibs=function(){return this._extraLibs},t.prototype.addExtraLib=function(t,e){var n,i=this;if(n=void 0===e?\"ts:extralib-\"+Math.random().toString(36).substring(2,15):e,this._extraLibs[n]&&this._extraLibs[n].content===t)return{dispose:function(){}};var o=1;return this._extraLibs[n]&&(o=this._extraLibs[n].version+1),this._extraLibs[n]={content:t,version:o},this._fireOnDidExtraLibsChangeSoon(),{dispose:function(){var t=i._extraLibs[n];t&&t.version===o&&(delete i._extraLibs[n],i._fireOnDidExtraLibsChangeSoon())}}},t.prototype.setExtraLibs=function(t){if(this._extraLibs=Object.create(null),t&&t.length>0)for(var e=0,n=t;e<n.length;e++){var i=n[e],o=i.filePath||\"ts:extralib-\"+Math.random().toString(36).substring(2,15),r=i.content;this._extraLibs[o]={content:r,version:1}}this._fireOnDidExtraLibsChangeSoon()},t.prototype._fireOnDidExtraLibsChangeSoon=function(){var t=this;-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=setTimeout((function(){t._onDidExtraLibsChangeTimeout=-1,t._onDidExtraLibsChange.fire(void 0)}),0))},t.prototype.getCompilerOptions=function(){return this._compilerOptions},t.prototype.setCompilerOptions=function(t){this._compilerOptions=t||Object.create(null),this._onDidChange.fire(void 0)},t.prototype.getDiagnosticsOptions=function(){return this._diagnosticsOptions},t.prototype.setDiagnosticsOptions=function(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(void 0)},t.prototype.setMaximumWorkerIdleTime=function(t){},t.prototype.setEagerModelSync=function(t){this._eagerModelSync=t},t.prototype.getEagerModelSync=function(){return this._eagerModelSync},t}();e.LanguageServiceDefaultsImpl=u,function(t){t[t.None=0]=\"None\",t[t.CommonJS=1]=\"CommonJS\",t[t.AMD=2]=\"AMD\",t[t.UMD=3]=\"UMD\",t[t.System=4]=\"System\",t[t.ES2015=5]=\"ES2015\",t[t.ESNext=99]=\"ESNext\"}(i||(i={})),function(t){t[t.None=0]=\"None\",t[t.Preserve=1]=\"Preserve\",t[t.React=2]=\"React\",t[t.ReactNative=3]=\"ReactNative\"}(o||(o={})),function(t){t[t.CarriageReturnLineFeed=0]=\"CarriageReturnLineFeed\",t[t.LineFeed=1]=\"LineFeed\"}(r||(r={})),function(t){t[t.ES3=0]=\"ES3\",t[t.ES5=1]=\"ES5\",t[t.ES2015=2]=\"ES2015\",t[t.ES2016=3]=\"ES2016\",t[t.ES2017=4]=\"ES2017\",t[t.ES2018=5]=\"ES2018\",t[t.ES2019=6]=\"ES2019\",t[t.ES2020=7]=\"ES2020\",t[t.ESNext=99]=\"ESNext\",t[t.JSON=100]=\"JSON\",t[t.Latest=99]=\"Latest\"}(s||(s={})),function(t){t[t.Classic=1]=\"Classic\",t[t.NodeJs=2]=\"NodeJs\"}(a||(a={}));var p=new u({allowNonTsExtensions:!0,target:s.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1}),g=new u({allowNonTsExtensions:!0,allowJs:!0,target:s.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1});function d(){return f().then((function(t){return t.getTypeScriptWorker()}))}function l(){return f().then((function(t){return t.getJavaScriptWorker()}))}function f(){return new Promise((function(e,n){t([\"./tsMode\"],e,n)}))}monaco.languages.typescript={ModuleKind:i,JsxEmit:o,NewLineKind:r,ScriptTarget:s,ModuleResolutionKind:a,typescriptVersion:n.typescriptVersion,typescriptDefaults:p,javascriptDefaults:g,getTypeScriptWorker:d,getJavaScriptWorker:l},monaco.languages.onLanguage(\"typescript\",(function(){return f().then((function(t){return t.setupTypeScript(p)}))})),monaco.languages.onLanguage(\"javascript\",(function(){return f().then((function(t){return t.setupJavaScript(g)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/css/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var o=monaco.Emitter,t=function(){function e(e,n,t){this._onDidChange=new o,this._languageId=e,this.setDiagnosticsOptions(n),this.setModeConfiguration(t)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"diagnosticsOptions\",{get:function(){return this._diagnosticsOptions},enumerable:!0,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=t;var i={validate:!0,lint:{compatibleVendorPrefixes:\"ignore\",vendorPrefix:\"warning\",duplicateProperties:\"warning\",emptyRules:\"warning\",importStatement:\"ignore\",boxModel:\"ignore\",universalSelector:\"ignore\",zeroUnits:\"ignore\",fontFaceProperties:\"warning\",hexColorLength:\"error\",argumentsInColorFunction:\"error\",unknownProperties:\"warning\",ieHack:\"ignore\",unknownVendorSpecificProperties:\"ignore\",propertyIgnoredDueToDisplay:\"warning\",important:\"ignore\",float:\"ignore\",idSelector:\"ignore\"}},r={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},s=new t(\"css\",i,r),a=new t(\"scss\",i,r),u=new t(\"less\",i,r);function g(){return new Promise((function(n,o){e([\"./cssMode\"],n,o)}))}monaco.languages.css={cssDefaults:s,lessDefaults:u,scssDefaults:a},monaco.languages.onLanguage(\"less\",(function(){g().then((function(e){return e.setupMode(u)}))})),monaco.languages.onLanguage(\"scss\",(function(){g().then((function(e){return e.setupMode(a)}))})),monaco.languages.onLanguage(\"css\",(function(){g().then((function(e){return e.setupMode(s)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/json/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=monaco.Emitter,o=function(){function e(e,n,o){this._onDidChange=new t,this._languageId=e,this.setDiagnosticsOptions(n),this.setModeConfiguration(o)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"diagnosticsOptions\",{get:function(){return this._diagnosticsOptions},enumerable:!0,configurable:!0}),e.prototype.setDiagnosticsOptions=function(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=o;var i=new o(\"json\",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});monaco.languages.json={jsonDefaults:i},monaco.languages.register({id:\"json\",extensions:[\".json\",\".bowerrc\",\".jshintrc\",\".jscsrc\",\".eslintrc\",\".babelrc\",\".har\"],aliases:[\"JSON\",\"json\"],mimetypes:[\"application/json\"]}),monaco.languages.onLanguage(\"json\",(function(){new Promise((function(n,t){e([\"./jsonMode\"],n,t)})).then((function(e){return e.setupMode(i)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/html/monaco.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var t=monaco.Emitter,o=function(){function e(e,n,o){this._onDidChange=new t,this._languageId=e,this.setOptions(n),this.setModeConfiguration(o)}return Object.defineProperty(e.prototype,\"onDidChange\",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"modeConfiguration\",{get:function(){return this._modeConfiguration},enumerable:!0,configurable:!0}),e.prototype.setOptions=function(e){this._options=e||Object.create(null),this._onDidChange.fire(this)},e.prototype.setModeConfiguration=function(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)},e}();n.LanguageServiceDefaultsImpl=o;var r={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:\"pre\",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:null,indentHandlebars:!1,endWithNewline:!1,extraLiners:\"head, body, /html\",wrapAttributes:\"auto\"},a={format:r,suggest:{html5:!0}},i={format:r,suggest:{html5:!0,razor:!0}};function u(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===s,documentFormattingEdits:e===s,documentRangeFormattingEdits:e===s}}var s=\"html\",g=new o(s,{format:r,suggest:{html5:!0,angular1:!0,ionic:!0}},u(s)),l=new o(\"handlebars\",a,u(\"handlebars\")),c=new o(\"razor\",i,u(\"razor\"));function d(){return new Promise((function(n,t){e([\"./htmlMode\"],n,t)}))}monaco.languages.html={htmlDefaults:g,razorDefaults:c,handlebarDefaults:l},monaco.languages.onLanguage(s,(function(){d().then((function(e){return e.setupMode(g)}))})),monaco.languages.onLanguage(\"handlebars\",(function(){d().then((function(e){return e.setupMode(l)}))})),monaco.languages.onLanguage(\"razor\",(function(){d().then((function(e){return e.setupMode(c)}))}))}));\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-languages version: 1.10.0(1b4729c63bdb0d1e06d4e637e5c3977ddeb714dd)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/basic-languages/_.contribution\",[\"require\",\"exports\",\"vs/editor/editor.api\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});var t=\"undefined\"==typeof monaco?self.monaco:monaco,n={},s={},r=function(){function e(e){var i=this;this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((function(e,t){i._lazyLoadPromiseResolve=e,i._lazyLoadPromiseReject=t}))}return e.getOrCreate=function(i){return s[i]||(s[i]=new e(i)),s[i]},e.prototype.whenLoaded=function(){return this._lazyLoadPromise},e.prototype.load=function(){var e=this;return this._loadingTriggered||(this._loadingTriggered=!0,n[this._languageId].loader().then((function(i){return e._lazyLoadPromiseResolve(i)}),(function(i){return e._lazyLoadPromiseReject(i)}))),this._lazyLoadPromise},e}();i.loadLanguage=function(e){return r.getOrCreate(e).load()},i.registerLanguage=function(e){var i=e.id;n[i]=e,t.languages.register(e);var s=r.getOrCreate(i);t.languages.setMonarchTokensProvider(i,s.whenLoaded().then((function(e){return e.language}))),t.languages.onLanguage(i,(function(){s.load().then((function(e){t.languages.setLanguageConfiguration(i,e.conf)}))}))}})),define(\"vs/basic-languages/abap/abap.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"abap\",extensions:[\".abap\"],aliases:[\"abap\",\"ABAP\"],loader:function(){return new Promise((function(i,t){e([\"./abap\"],i,t)}))}})})),define(\"vs/basic-languages/apex/apex.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"apex\",extensions:[\".cls\"],aliases:[\"Apex\",\"apex\"],mimetypes:[\"text/x-apex-source\",\"text/x-apex\"],loader:function(){return new Promise((function(i,t){e([\"./apex\"],i,t)}))}})})),define(\"vs/basic-languages/azcli/azcli.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"azcli\",extensions:[\".azcli\"],aliases:[\"Azure CLI\",\"azcli\"],loader:function(){return new Promise((function(i,t){e([\"./azcli\"],i,t)}))}})})),define(\"vs/basic-languages/bat/bat.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"bat\",extensions:[\".bat\",\".cmd\"],aliases:[\"Batch\",\"bat\"],loader:function(){return new Promise((function(i,t){e([\"./bat\"],i,t)}))}})})),define(\"vs/basic-languages/cameligo/cameligo.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"cameligo\",extensions:[\".mligo\"],aliases:[\"Cameligo\"],loader:function(){return new Promise((function(i,t){e([\"./cameligo\"],i,t)}))}})})),define(\"vs/basic-languages/clojure/clojure.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"clojure\",extensions:[\".clj\",\".cljs\",\".cljc\",\".edn\"],aliases:[\"clojure\",\"Clojure\"],loader:function(){return new Promise((function(i,t){e([\"./clojure\"],i,t)}))}})})),define(\"vs/basic-languages/coffee/coffee.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"coffeescript\",extensions:[\".coffee\"],aliases:[\"CoffeeScript\",\"coffeescript\",\"coffee\"],mimetypes:[\"text/x-coffeescript\",\"text/coffeescript\"],loader:function(){return new Promise((function(i,t){e([\"./coffee\"],i,t)}))}})})),define(\"vs/basic-languages/cpp/cpp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"c\",extensions:[\".c\",\".h\"],aliases:[\"C\",\"c\"],loader:function(){return new Promise((function(i,t){e([\"./cpp\"],i,t)}))}}),t.registerLanguage({id:\"cpp\",extensions:[\".cpp\",\".cc\",\".cxx\",\".hpp\",\".hh\",\".hxx\"],aliases:[\"C++\",\"Cpp\",\"cpp\"],loader:function(){return new Promise((function(i,t){e([\"./cpp\"],i,t)}))}})})),define(\"vs/basic-languages/csharp/csharp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"csharp\",extensions:[\".cs\",\".csx\",\".cake\"],aliases:[\"C#\",\"csharp\"],loader:function(){return new Promise((function(i,t){e([\"./csharp\"],i,t)}))}})})),define(\"vs/basic-languages/csp/csp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"csp\",extensions:[],aliases:[\"CSP\",\"csp\"],loader:function(){return new Promise((function(i,t){e([\"./csp\"],i,t)}))}})})),define(\"vs/basic-languages/css/css.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"css\",extensions:[\".css\"],aliases:[\"CSS\",\"css\"],mimetypes:[\"text/css\"],loader:function(){return new Promise((function(i,t){e([\"./css\"],i,t)}))}})})),define(\"vs/basic-languages/dockerfile/dockerfile.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"dockerfile\",extensions:[\".dockerfile\"],filenames:[\"Dockerfile\"],aliases:[\"Dockerfile\"],loader:function(){return new Promise((function(i,t){e([\"./dockerfile\"],i,t)}))}})})),define(\"vs/basic-languages/fsharp/fsharp.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"fsharp\",extensions:[\".fs\",\".fsi\",\".ml\",\".mli\",\".fsx\",\".fsscript\"],aliases:[\"F#\",\"FSharp\",\"fsharp\"],loader:function(){return new Promise((function(i,t){e([\"./fsharp\"],i,t)}))}})})),define(\"vs/basic-languages/go/go.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"go\",extensions:[\".go\"],aliases:[\"Go\"],loader:function(){return new Promise((function(i,t){e([\"./go\"],i,t)}))}})})),define(\"vs/basic-languages/graphql/graphql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"graphql\",extensions:[\".graphql\",\".gql\"],aliases:[\"GraphQL\",\"graphql\",\"gql\"],mimetypes:[\"application/graphql\"],loader:function(){return new Promise((function(i,t){e([\"./graphql\"],i,t)}))}})})),define(\"vs/basic-languages/handlebars/handlebars.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"handlebars\",extensions:[\".handlebars\",\".hbs\"],aliases:[\"Handlebars\",\"handlebars\"],mimetypes:[\"text/x-handlebars-template\"],loader:function(){return new Promise((function(i,t){e([\"./handlebars\"],i,t)}))}})})),define(\"vs/basic-languages/html/html.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"html\",extensions:[\".html\",\".htm\",\".shtml\",\".xhtml\",\".mdoc\",\".jsp\",\".asp\",\".aspx\",\".jshtm\"],aliases:[\"HTML\",\"htm\",\"html\",\"xhtml\"],mimetypes:[\"text/html\",\"text/x-jshtm\",\"text/template\",\"text/ng-template\"],loader:function(){return new Promise((function(i,t){e([\"./html\"],i,t)}))}})})),define(\"vs/basic-languages/ini/ini.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"ini\",extensions:[\".ini\",\".properties\",\".gitconfig\"],filenames:[\"config\",\".gitattributes\",\".gitconfig\",\".editorconfig\"],aliases:[\"Ini\",\"ini\"],loader:function(){return new Promise((function(i,t){e([\"./ini\"],i,t)}))}})})),define(\"vs/basic-languages/java/java.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"java\",extensions:[\".java\",\".jav\"],aliases:[\"Java\",\"java\"],mimetypes:[\"text/x-java-source\",\"text/x-java\"],loader:function(){return new Promise((function(i,t){e([\"./java\"],i,t)}))}})})),define(\"vs/basic-languages/javascript/javascript.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"javascript\",extensions:[\".js\",\".es6\",\".jsx\"],firstLine:\"^#!.*\\\\bnode\",filenames:[\"jakefile\"],aliases:[\"JavaScript\",\"javascript\",\"js\"],mimetypes:[\"text/javascript\"],loader:function(){return new Promise((function(i,t){e([\"./javascript\"],i,t)}))}})})),define(\"vs/basic-languages/kotlin/kotlin.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"kotlin\",extensions:[\".kt\"],aliases:[\"Kotlin\",\"kotlin\"],mimetypes:[\"text/x-kotlin-source\",\"text/x-kotlin\"],loader:function(){return new Promise((function(i,t){e([\"./kotlin\"],i,t)}))}})})),define(\"vs/basic-languages/less/less.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"less\",extensions:[\".less\"],aliases:[\"Less\",\"less\"],mimetypes:[\"text/x-less\",\"text/less\"],loader:function(){return new Promise((function(i,t){e([\"./less\"],i,t)}))}})})),define(\"vs/basic-languages/lua/lua.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"lua\",extensions:[\".lua\"],aliases:[\"Lua\",\"lua\"],loader:function(){return new Promise((function(i,t){e([\"./lua\"],i,t)}))}})})),define(\"vs/basic-languages/markdown/markdown.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"markdown\",extensions:[\".md\",\".markdown\",\".mdown\",\".mkdn\",\".mkd\",\".mdwn\",\".mdtxt\",\".mdtext\"],aliases:[\"Markdown\",\"markdown\"],loader:function(){return new Promise((function(i,t){e([\"./markdown\"],i,t)}))}})})),define(\"vs/basic-languages/mips/mips.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"mips\",extensions:[\".s\"],aliases:[\"MIPS\",\"MIPS-V\"],mimetypes:[\"text/x-mips\",\"text/mips\",\"text/plaintext\"],loader:function(){return new Promise((function(i,t){e([\"./mips\"],i,t)}))}})})),define(\"vs/basic-languages/msdax/msdax.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"msdax\",extensions:[\".dax\",\".msdax\"],aliases:[\"DAX\",\"MSDAX\"],loader:function(){return new Promise((function(i,t){e([\"./msdax\"],i,t)}))}})})),define(\"vs/basic-languages/mysql/mysql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"mysql\",extensions:[],aliases:[\"MySQL\",\"mysql\"],loader:function(){return new Promise((function(i,t){e([\"./mysql\"],i,t)}))}})})),define(\"vs/basic-languages/objective-c/objective-c.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"objective-c\",extensions:[\".m\"],aliases:[\"Objective-C\"],loader:function(){return new Promise((function(i,t){e([\"./objective-c\"],i,t)}))}})})),define(\"vs/basic-languages/pascal/pascal.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pascal\",extensions:[\".pas\",\".p\",\".pp\"],aliases:[\"Pascal\",\"pas\"],mimetypes:[\"text/x-pascal-source\",\"text/x-pascal\"],loader:function(){return new Promise((function(i,t){e([\"./pascal\"],i,t)}))}})})),define(\"vs/basic-languages/pascaligo/pascaligo.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pascaligo\",extensions:[\".ligo\"],aliases:[\"Pascaligo\",\"ligo\"],loader:function(){return new Promise((function(i,t){e([\"./pascaligo\"],i,t)}))}})})),define(\"vs/basic-languages/perl/perl.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"perl\",extensions:[\".pl\"],aliases:[\"Perl\",\"pl\"],loader:function(){return new Promise((function(i,t){e([\"./perl\"],i,t)}))}})})),define(\"vs/basic-languages/pgsql/pgsql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pgsql\",extensions:[],aliases:[\"PostgreSQL\",\"postgres\",\"pg\",\"postgre\"],loader:function(){return new Promise((function(i,t){e([\"./pgsql\"],i,t)}))}})})),define(\"vs/basic-languages/php/php.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"php\",extensions:[\".php\",\".php4\",\".php5\",\".phtml\",\".ctp\"],aliases:[\"PHP\",\"php\"],mimetypes:[\"application/x-php\"],loader:function(){return new Promise((function(i,t){e([\"./php\"],i,t)}))}})})),define(\"vs/basic-languages/postiats/postiats.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"postiats\",extensions:[\".dats\",\".sats\",\".hats\"],aliases:[\"ATS\",\"ATS/Postiats\"],loader:function(){return new Promise((function(i,t){e([\"./postiats\"],i,t)}))}})})),define(\"vs/basic-languages/powerquery/powerquery.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"powerquery\",extensions:[\".pq\",\".pqm\"],aliases:[\"PQ\",\"M\",\"Power Query\",\"Power Query M\"],loader:function(){return new Promise((function(i,t){e([\"./powerquery\"],i,t)}))}})})),define(\"vs/basic-languages/powershell/powershell.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"powershell\",extensions:[\".ps1\",\".psm1\",\".psd1\"],aliases:[\"PowerShell\",\"powershell\",\"ps\",\"ps1\"],loader:function(){return new Promise((function(i,t){e([\"./powershell\"],i,t)}))}})})),define(\"vs/basic-languages/pug/pug.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"pug\",extensions:[\".jade\",\".pug\"],aliases:[\"Pug\",\"Jade\",\"jade\"],loader:function(){return new Promise((function(i,t){e([\"./pug\"],i,t)}))}})})),define(\"vs/basic-languages/python/python.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"python\",extensions:[\".py\",\".rpy\",\".pyw\",\".cpy\",\".gyp\",\".gypi\"],aliases:[\"Python\",\"py\"],firstLine:\"^#!/.*\\\\bpython[0-9.-]*\\\\b\",loader:function(){return new Promise((function(i,t){e([\"./python\"],i,t)}))}})})),define(\"vs/basic-languages/r/r.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"r\",extensions:[\".r\",\".rhistory\",\".rprofile\",\".rt\"],aliases:[\"R\",\"r\"],loader:function(){return new Promise((function(i,t){e([\"./r\"],i,t)}))}})})),define(\"vs/basic-languages/razor/razor.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"razor\",extensions:[\".cshtml\"],aliases:[\"Razor\",\"razor\"],mimetypes:[\"text/x-cshtml\"],loader:function(){return new Promise((function(i,t){e([\"./razor\"],i,t)}))}})})),define(\"vs/basic-languages/redis/redis.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"redis\",extensions:[\".redis\"],aliases:[\"redis\"],loader:function(){return new Promise((function(i,t){e([\"./redis\"],i,t)}))}})})),define(\"vs/basic-languages/redshift/redshift.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"redshift\",extensions:[],aliases:[\"Redshift\",\"redshift\"],loader:function(){return new Promise((function(i,t){e([\"./redshift\"],i,t)}))}})})),define(\"vs/basic-languages/restructuredtext/restructuredtext.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"restructuredtext\",extensions:[\".rst\"],aliases:[\"reStructuredText\",\"restructuredtext\"],loader:function(){return new Promise((function(i,t){e([\"./restructuredtext\"],i,t)}))}})})),define(\"vs/basic-languages/ruby/ruby.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"ruby\",extensions:[\".rb\",\".rbx\",\".rjs\",\".gemspec\",\".pp\"],filenames:[\"rakefile\"],aliases:[\"Ruby\",\"rb\"],loader:function(){return new Promise((function(i,t){e([\"./ruby\"],i,t)}))}})})),define(\"vs/basic-languages/rust/rust.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"rust\",extensions:[\".rs\",\".rlib\"],aliases:[\"Rust\",\"rust\"],loader:function(){return new Promise((function(i,t){e([\"./rust\"],i,t)}))}})})),define(\"vs/basic-languages/sb/sb.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sb\",extensions:[\".sb\"],aliases:[\"Small Basic\",\"sb\"],loader:function(){return new Promise((function(i,t){e([\"./sb\"],i,t)}))}})})),define(\"vs/basic-languages/scheme/scheme.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"scheme\",extensions:[\".scm\",\".ss\",\".sch\",\".rkt\"],aliases:[\"scheme\",\"Scheme\"],loader:function(){return new Promise((function(i,t){e([\"./scheme\"],i,t)}))}})})),define(\"vs/basic-languages/scss/scss.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"scss\",extensions:[\".scss\"],aliases:[\"Sass\",\"sass\",\"scss\"],mimetypes:[\"text/x-scss\",\"text/scss\"],loader:function(){return new Promise((function(i,t){e([\"./scss\"],i,t)}))}})})),define(\"vs/basic-languages/shell/shell.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"shell\",extensions:[\".sh\",\".bash\"],aliases:[\"Shell\",\"sh\"],loader:function(){return new Promise((function(i,t){e([\"./shell\"],i,t)}))}})})),define(\"vs/basic-languages/solidity/solidity.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sol\",extensions:[\".sol\"],aliases:[\"sol\",\"solidity\",\"Solidity\"],loader:function(){return new Promise((function(i,t){e([\"./solidity\"],i,t)}))}})})),define(\"vs/basic-languages/sophia/sophia.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"aes\",extensions:[\".aes\"],aliases:[\"aes\",\"sophia\",\"Sophia\"],loader:function(){return new Promise((function(i,t){e([\"./sophia\"],i,t)}))}})})),define(\"vs/basic-languages/sql/sql.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"sql\",extensions:[\".sql\"],aliases:[\"SQL\"],loader:function(){return new Promise((function(i,t){e([\"./sql\"],i,t)}))}})})),define(\"vs/basic-languages/st/st.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"st\",extensions:[\".st\",\".iecst\",\".iecplc\",\".lc3lib\"],aliases:[\"StructuredText\",\"scl\",\"stl\"],loader:function(){return new Promise((function(i,t){e([\"./st\"],i,t)}))}})})),define(\"vs/basic-languages/swift/swift.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"swift\",aliases:[\"Swift\",\"swift\"],extensions:[\".swift\"],mimetypes:[\"text/swift\"],loader:function(){return new Promise((function(i,t){e([\"./swift\"],i,t)}))}})})),define(\"vs/basic-languages/tcl/tcl.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"tcl\",extensions:[\".tcl\"],aliases:[\"tcl\",\"Tcl\",\"tcltk\",\"TclTk\",\"tcl/tk\",\"Tcl/Tk\"],loader:function(){return new Promise((function(i,t){e([\"./tcl\"],i,t)}))}})})),define(\"vs/basic-languages/twig/twig.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"twig\",extensions:[\".twig\"],aliases:[\"Twig\",\"twig\"],mimetypes:[\"text/x-twig\"],loader:function(){return new Promise((function(i,t){e([\"./twig\"],i,t)}))}})})),define(\"vs/basic-languages/typescript/typescript.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"typescript\",extensions:[\".ts\",\".tsx\"],aliases:[\"TypeScript\",\"ts\",\"typescript\"],mimetypes:[\"text/typescript\"],loader:function(){return new Promise((function(i,t){e([\"./typescript\"],i,t)}))}})})),define(\"vs/basic-languages/vb/vb.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"vb\",extensions:[\".vb\"],aliases:[\"Visual Basic\",\"vb\"],loader:function(){return new Promise((function(i,t){e([\"./vb\"],i,t)}))}})})),define(\"vs/basic-languages/xml/xml.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"xml\",extensions:[\".xml\",\".dtd\",\".ascx\",\".csproj\",\".config\",\".wxi\",\".wxl\",\".wxs\",\".xaml\",\".svg\",\".svgz\",\".opf\",\".xsl\"],firstLine:\"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",aliases:[\"XML\",\"xml\"],mimetypes:[\"text/xml\",\"application/xml\",\"application/xaml+xml\",\"application/xml-dtd\"],loader:function(){return new Promise((function(i,t){e([\"./xml\"],i,t)}))}})})),define(\"vs/basic-languages/yaml/yaml.contribution\",[\"require\",\"exports\",\"../_.contribution\"],(function(e,i,t){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),t.registerLanguage({id:\"yaml\",extensions:[\".yaml\",\".yml\"],aliases:[\"YAML\",\"yaml\",\"YML\",\"yml\"],mimetypes:[\"application/x-yaml\"],loader:function(){return new Promise((function(i,t){e([\"./yaml\"],i,t)}))}})})),define(\"vs/basic-languages/monaco.contribution\",[\"require\",\"exports\",\"./abap/abap.contribution\",\"./apex/apex.contribution\",\"./azcli/azcli.contribution\",\"./bat/bat.contribution\",\"./cameligo/cameligo.contribution\",\"./clojure/clojure.contribution\",\"./coffee/coffee.contribution\",\"./cpp/cpp.contribution\",\"./csharp/csharp.contribution\",\"./csp/csp.contribution\",\"./css/css.contribution\",\"./dockerfile/dockerfile.contribution\",\"./fsharp/fsharp.contribution\",\"./go/go.contribution\",\"./graphql/graphql.contribution\",\"./handlebars/handlebars.contribution\",\"./html/html.contribution\",\"./ini/ini.contribution\",\"./java/java.contribution\",\"./javascript/javascript.contribution\",\"./kotlin/kotlin.contribution\",\"./less/less.contribution\",\"./lua/lua.contribution\",\"./markdown/markdown.contribution\",\"./mips/mips.contribution\",\"./msdax/msdax.contribution\",\"./mysql/mysql.contribution\",\"./objective-c/objective-c.contribution\",\"./pascal/pascal.contribution\",\"./pascaligo/pascaligo.contribution\",\"./perl/perl.contribution\",\"./pgsql/pgsql.contribution\",\"./php/php.contribution\",\"./postiats/postiats.contribution\",\"./powerquery/powerquery.contribution\",\"./powershell/powershell.contribution\",\"./pug/pug.contribution\",\"./python/python.contribution\",\"./r/r.contribution\",\"./razor/razor.contribution\",\"./redis/redis.contribution\",\"./redshift/redshift.contribution\",\"./restructuredtext/restructuredtext.contribution\",\"./ruby/ruby.contribution\",\"./rust/rust.contribution\",\"./sb/sb.contribution\",\"./scheme/scheme.contribution\",\"./scss/scss.contribution\",\"./shell/shell.contribution\",\"./solidity/solidity.contribution\",\"./sophia/sophia.contribution\",\"./sql/sql.contribution\",\"./st/st.contribution\",\"./swift/swift.contribution\",\"./tcl/tcl.contribution\",\"./twig/twig.contribution\",\"./typescript/typescript.contribution\",\"./vb/vb.contribution\",\"./xml/xml.contribution\",\"./yaml/yaml.contribution\",\"vs/editor/editor.api\"],(function(e,i){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0})}));\ndefine(\"vs/editor/editor.main\", [\"vs/editor/edcore.main\",\"vs/language/typescript/monaco.contribution\",\"vs/language/css/monaco.contribution\",\"vs/language/json/monaco.contribution\",\"vs/language/html/monaco.contribution\",\"vs/basic-languages/monaco.contribution\"], function(api) { return api; });\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.de.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.de\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (erneut aufgetreten)\",\"{0} ({1} mal aufgetretenen)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Eingabe\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Groß-/Kleinschreibung beachten\",\"Nur ganzes Wort suchen\",\"Regulären Ausdruck verwenden\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Eingabe\",\"Groß-/Kleinschreibung beibehalten\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Fehler: {0}\",\"Warnung: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Ungebunden\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Verwenden Sie die Navigationstasten, um zu navigieren.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Löschen\",\"Typfilter deaktivieren\",\"Typfilter aktivieren\",\"Keine Elemente gefunden\",\"{0} von {1} Elementen stimmen überein\"],\n\"vs/base/common/keybindingLabels\":[\"STRG\",\"UMSCHALTTASTE\",\"ALT\",\"Windows\",\"STRG\",\"UMSCHALTTASTE\",\"ALT\",\"Super\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Befehl\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Windows\",\"Steuern\",\"UMSCHALTTASTE\",\"ALT\",\"Super\"],\"vs/base/common/severity\":[\"Fehler\",\"Warnung\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, Auswahl\",\"Auswahl\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Schnellauswahl. Nehmen Sie eine Eingabe vor, um die Ergebnisse einzugrenzen.\",\"Schnellauswahl\",\"{0} Ergebnisse\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Alles auswählen\",\"&&Rückgängig\",\"&&Wiederholen\"],\"vs/editor/browser/controller/textAreaHandler\":[\"Der Editor ist zurzeit nicht verfügbar. Drücken Sie Alt+F1 für Optionen.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Die Anzahl der Cursors wurde auf {0} beschränkt.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Kann die Dateien nicht vergleichen, da eine Datei zu groß ist.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Schließen\",\"keine Zeilen\",\"1 Zeile\",\"{0} Zeilen\",\"Unterschied von {0} zu {1}: Original: {2}, {3}, geändert: {4}, {5}\",\"leer\",\"Original {0}, geändert {1}: {2}\",\"+ geändert {0}: {1}\",\"- Original {0}: {1}\",\"Zum nächsten Unterschied wechseln\",\"Zum vorherigen Unterschied wechseln\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Gelöschte Zeilen kopieren\",\"Gelöschte Zeile kopieren\",\"Gelöschte Zeile kopieren ({0})\",\"Diese Änderung rückgängig machen\",\"Gelöschte Zeile kopieren ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",'Die Anzahl der Leerzeichen, denen ein Tabstopp entspricht. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"#editor.detectIndentation#\" aktiviert ist.','Fügt beim Drücken der TAB-Taste Leerzeichen ein. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"#editor.detectIndentation#\" aktiviert ist.','Steuert, ob \"#editor.tabSize#\" und \"#editor.insertSpaces#\" automatisch erkannt werden, wenn eine Datei basierend auf dem Dateiinhalt geöffnet wird.',\"Nachfolgende automatisch eingefügte Leerzeichen entfernen\",\"Spezielle Behandlung für große Dateien zum Deaktivieren bestimmter speicherintensiver Funktionen.\",\"Steuert, ob Vervollständigungen auf Grundlage der Wörter im Dokument berechnet werden sollen.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Peek-Editoren geöffnet lassen, auch wenn auf den Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.\",\"Zeilen, die diese Länge überschreiten, werden aus Leistungsgründen nicht tokenisiert\",\"Timeout in Millisekunden, nach dem die Diff-Berechnung abgebrochen wird. Bei 0 wird kein Timeout verwendet.\",\"Steuert, ob der Diff-Editor die Unterschiede nebeneinander oder im Text anzeigt.\",\"Steuert, ob der Diff-Editor Änderungen an führenden oder nachgestellten Leerzeichen als Diffs anzeigt.\",'Steuert, ob der Diff-Editor die Indikatoren \"+\" und \"-\" für hinzugefügte/entfernte Änderungen anzeigt.'],\n\"vs/editor/common/config/editorOptions\":[\"Der Editor verwendet Plattform-APIs, um zu erkennen, wenn eine Sprachausgabe angefügt wird.\",\"Der Editor wird durchgehend für die Verwendung mit einer Sprachausgabe optimiert.\",\"Der Editor wird nie für die Verwendung mit einer Sprachausgabe optimiert.\",\"Steuert, ob der Editor in einem Modus ausgeführt werden soll, in dem er für die Sprachausgabe optimiert wird.\",\"Steuert, ob beim Kommentieren ein Leerzeichen eingefügt wird.\",\"Steuert, ob ein Kopiervorgang ohne Auswahl die aktuelle Zeile kopiert.\",'Steuert, ob für die Suchzeichenfolge im Widget \"Suche\" ein Seeding aus der Auswahl des Editors ausgeführt wird.','\"In Auswahl suchen\" niemals automatisch aktivieren (Standard)','\"In Auswahl suchen\" immer automatisch aktivieren','\"In Auswahl suchen\" automatisch aktivieren, wenn mehrere Inhaltszeilen ausgewählt sind',\"Steuert, ob der Suchvorgang für den ausgewählten Text oder die gesamte Datei im Editor ausgeführt wird.\",'Steuert, ob das Widget \"Suche\" die freigegebene Suchzwischenablage unter macOS lesen oder bearbeiten soll.','Steuert, ob das Suchwidget zusätzliche Zeilen im oberen Bereich des Editors hinzufügen soll. Wenn die Option auf \"true\" festgelegt ist, können Sie über die erste Zeile hinaus scrollen, wenn das Suchwidget angezeigt wird.',\"Aktiviert/deaktiviert Schriftartligaturen.\",\"Explizite font-feature-settings-Eigenschaft\",\"Konfiguriert Schriftartenligaturen\",\"Steuert den Schriftgrad in Pixeln.\",\"Vorschauansicht der Ergebnisse anzeigen (Standardeinstellung)\",\"Zum Hauptergebnis gehen und Vorschauansicht anzeigen\",\"Wechseln Sie zum primären Ergebnis, und aktivieren Sie die Navigation ohne Vorschau zu anderen Ergebnissen.\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie \"editor.editor.gotoLocation.multipleDefinitions\" oder \"editor.editor.gotoLocation.multipleImplementations\".','Legt das Verhalten des Befehls \"Gehe zu Definition\" fest, wenn mehrere Zielpositionen vorhanden sind','Legt das Verhalten des Befehls \"Gehe zur Typdefinition\" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls \"Gehe zu Deklaration\" fest, wenn mehrere Zielpositionen vorhanden sind.','Legt das Verhalten des Befehls \"Gehe zu Implementierungen\", wenn mehrere Zielspeicherorte vorhanden sind','Legt das Verhalten des Befehls \"Gehe zu Verweisen\" fest, wenn mehrere Zielpositionen vorhanden sind','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Definition\" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Typdefinition\" die aktuelle Position ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Deklaration\" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Implementatierung\" der aktuelle Speicherort ist.','Die alternative Befehls-ID, die ausgeführt wird, wenn das Ergebnis von \"Gehe zu Verweis\" die aktuelle Position ist.',\"Steuert, ob die Hovermarkierung angezeigt wird.\",\"Steuert die Verzögerung in Millisekunden, nach der die Hovermarkierung angezeigt wird.\",\"Steuert, ob die Hovermarkierung sichtbar bleiben soll, wenn der Mauszeiger darüber bewegt wird.\",\"Aktiviert das Glühbirnensymbol für Codeaktionen im Editor.\",\"Steuert die Zeilenhöhe. Verwenden Sie 0, um die Zeilenhöhe aus der Schriftgröße zu berechnen.\",\"Steuert, ob die Minimap angezeigt wird.\",\"Steuert die Seite, wo die Minimap gerendert wird.\",\"Steuert, wann der Schieberegler für die Minimap angezeigt wird.\",\"Maßstab für in der Minimap gezeichnete Inhalte\",\"Die tatsächlichen Zeichen in einer Zeile rendern im Gegensatz zu Farbblöcken.\",\"Begrenzen Sie die Breite der Minimap, um nur eine bestimmte Anzahl von Spalten zu rendern.\",\"Aktiviert ein Pop-up, das Dokumentation und Typ eines Parameters anzeigt während Sie tippen.\",\"Steuert, ob das Menü mit Parameterhinweisen zyklisch ist oder sich am Ende der Liste schließt.\",\"Schnellvorschläge innerhalb von Zeichenfolgen aktivieren.\",\"Schnellvorschläge innerhalb von Kommentaren aktivieren.\",\"Schnellvorschläge außerhalb von Zeichenfolgen und Kommentaren aktivieren.\",\"Steuert, ob Vorschläge automatisch während der Eingabe angezeigt werden sollen.\",\"Zeilennummern werden nicht dargestellt.\",\"Zeilennummern werden als absolute Zahl dargestellt.\",\"Zeilennummern werden als Abstand in Zeilen an Cursorposition dargestellt.\",\"Zeilennummern werden alle 10 Zeilen dargestellt.\",\"Steuert die Anzeige von Zeilennummern.\",\"Vertikale Linien nach einer bestimmten Anzahl von Monospacezeichen rendern. Verwenden Sie mehrere Werte für mehrere Linien. Wenn das Array leer ist, werden keine Linien gerendert.\",\"Vorschlag einfügen, ohne den Text auf der rechten Seite des Cursors zu überschreiben\",\"Vorschlag einfügen und Text auf der rechten Seite des Cursors überschreiben\",\"Legt fest, ob Wörter beim Akzeptieren von Vervollständigungen überschrieben werden. Beachten Sie, dass dies von Erweiterungen abhängt, die für dieses Features aktiviert sind.\",'Legt fest, ob unerwartete Textänderungen beim Akzeptieren von Vervollständigungen hervorgehoben werden sollen, z. B. wenn \"insertMode\" auf \"replace\" festgelegt ist, aber die Vervollständigung nur \"insert\" unterstützt.',\"Steuert, ob Filter- und Suchvorschläge geringfügige Tippfehler berücksichtigen.\",\"Steuert, ob bei der Suche Wörter eine höhere Trefferquote erhalten, die in der Nähe des Cursors stehen.\",'Steuert, ob gespeicherte Vorschlagauswahlen in verschiedenen Arbeitsbereichen und Fenstern gemeinsam verwendet werden (dafür ist \"#editor.suggestSelection#\" erforderlich).',\"Steuert, ob ein aktiver Ausschnitt Schnellvorschläge verhindert.\",\"Steuert, ob Symbole in Vorschlägen ein- oder ausgeblendet werden.\",\"Steuert, wie viele Vorschläge IntelliSense anzeigt, bevor eine Scrollleiste eingeblendet wird (maximal 15).\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen separate Einstellungen wie \"editor.suggest.showKeywords\" oder \"editor.suggest.showSnippets\".','Wenn aktiviert, zeigt IntelliSense \"method\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"funktions\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"constructor\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"field\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"variable\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"class\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"struct\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"interface\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"module\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"property\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"event\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"operator\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"unit\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"value\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"constant\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"enum\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"enumMember\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"keyword\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"text\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"color\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"file\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"reference\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"customcolor\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"folder\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"typeParameter\"-Vorschläge an.','Wenn aktiviert, zeigt IntelliSense \"snippet\"-Vorschläge an.',\"Steuert die Sichtbarkeit der Statusleiste unten im Vorschlagswidget.\",'Steuert, ob Vorschläge über Commitzeichen angenommen werden sollen. In JavaScript kann ein Semikolon (\";\") beispielsweise ein Commitzeichen sein, das einen Vorschlag annimmt und dieses Zeichen eingibt.',\"Einen Vorschlag nur mit der EINGABETASTE akzeptieren, wenn dieser eine Änderung am Text vornimmt.\",\"Steuert, ob Vorschläge mit der EINGABETASTE (zusätzlich zur TAB-Taste) akzeptiert werden sollen. Vermeidet Mehrdeutigkeit zwischen dem Einfügen neuer Zeilen oder dem Annehmen von Vorschlägen.\",\"Legt die Anzahl der Zeilen im Editor fest, die von der Sprachausgabe ausgelesen werden können. Warnung: Es gibt eine Leistungsimplikation für Zahlen, die größer als die Standardeinstellung sind.\",\"Editor-Inhalt\",\"Verwenden Sie Sprachkonfigurationen, um zu bestimmen, wann Klammern automatisch geschlossen werden sollen.\",\"Schließe Klammern nur automatisch, wenn der Cursor sich links von einem Leerzeichen befindet.\",\"Steuert, ob der Editor automatisch Klammern schließen soll, nachdem der Benutzer eine öffnende Klammer hinzugefügt hat.\",\"Schließende Anführungszeichen oder Klammern werden nur überschrieben, wenn sie automatisch eingefügt wurden.\",\"Steuert, ob der Editor schließende Anführungszeichen oder Klammern überschreiben soll.\",\"Verwende die Sprachkonfiguration, um zu ermitteln, wann Anführungsstriche automatisch geschlossen werden.\",\"Schließende Anführungszeichen nur dann automatisch ergänzen, wenn der Cursor sich links von einem Leerzeichen befindet.\",\"Steuert, ob der Editor Anführungszeichen automatisch schließen soll, nachdem der Benutzer ein öffnendes Anführungszeichen hinzugefügt hat.\",\"Der Editor fügt den Einzug nicht automatisch ein.\",\"Der Editor behält den Einzug der aktuellen Zeile bei.\",\"Der Editor behält den in der aktuellen Zeile definierten Einzug bei und beachtet für Sprachen definierte Klammern.\",\"Der Editor behält den Einzug der aktuellen Zeile bei, beachtet von Sprachen definierte Klammern und ruft spezielle onEnterRules-Regeln auf, die von Sprachen definiert wurden.\",\"Der Editor behält den Einzug der aktuellen Zeile bei, beachtet die von Sprachen definierten Klammern, ruft von Sprachen definierte spezielle onEnterRules-Regeln auf und beachtet von Sprachen definierte indentationRules-Regeln.\",\"Legt fest, ob der Editor den Einzug automatisch anpassen soll, wenn Benutzer Zeilen eingeben, einfügen, verschieben oder einrücken\",\"Sprachkonfigurationen verwenden, um zu bestimmen, wann eine Auswahl automatisch umschlossen werden soll.\",\"Mit Anführungszeichen, nicht mit Klammern umschließen.\",\"Mit Klammern, nicht mit Anführungszeichen umschließen.\",\"Steuert, ob der Editor eine Auswahl automatisch umschließen soll.\",\"Steuert, ob der Editor CodeLens anzeigt.\",\"Steuert, ob der Editor die Inline-Farbdecorators und die Farbauswahl rendern soll.\",\"Steuert, ob Syntax-Highlighting in die Zwischenablage kopiert wird.\",\"Steuert den Cursoranimationsstil.\",\"Steuert, ob die weiche Cursoranimation aktiviert werden soll.\",\"Steuert den Cursor-Stil.\",'Steuert die Mindestanzahl sichtbarer vorangehender und nachfolgender Zeilen, die den Cursor umgeben. Wird in anderen Editoren als \"scrollOff\" oder \"scrollOffset\" bezeichnet.','\"cursorSurroundingLines\" wird nur erzwungen, wenn die Auslösung über die Tastatur oder API erfolgt.','\"cursorSurroundingLines\" wird immer erzwungen.',\"Legt fest, wann cursorSurroundingLines erzwungen werden soll\",\"Steuert die Breite des Cursors, wenn `#editor.cursorStyle#` auf `line` festgelegt ist.\",\"Steuert, ob der Editor das Verschieben einer Auswahl per Drag and Drop zulässt.\",\"Multiplikator für Scrollgeschwindigkeit bei Drücken von ALT.\",\"Steuert, ob Codefaltung im Editor aktiviert ist.\",'Steuert die Strategie für die Berechnung von Faltungsbereichen. \"auto\" verwendet eine sprachspezifische Faltungsstrategie (falls verfügbar). \"indentation\" verwendet die einzugsbasierte Faltungsstrategie.',\"Steuert, ob der Editor eingefaltete Bereiche hervorheben soll.\",\"Steuert die Schriftfamilie.\",\"Steuert die Schriftbreite.\",\"Steuert, ob der Editor den eingefügten Inhalt automatisch formatieren soll. Es muss ein Formatierer vorhanden sein, der in der Lage ist, auch Dokumentbereiche zu formatieren.\",\"Steuert, ob der Editor die Zeile nach der Eingabe automatisch formatieren soll.\",\"Steuert, ob der Editor den vertikalen Glyphenrand rendert. Der Glyphenrand wird hauptsächlich zum Debuggen verwendet.\",\"Steuert, ob der Cursor im Übersichtslineal ausgeblendet werden soll.\",\"Steuert, ob der Editor die aktive Einzugsführungslinie hevorheben soll.\",\"Steuert den Zeichenabstand in Pixeln.\",\"Steuert, ob der Editor Links erkennen und anklickbar machen soll.\",\"Passende Klammern hervorheben\",'Ein Multiplikator, der für die Mausrad-Bildlaufereignisse \"deltaX\" und \"deltaY\" verwendet werden soll.',\"Schriftart des Editors vergrößern, wenn das Mausrad verwendet und die STRG-TASTE gedrückt wird.\",\"Mehrere Cursor zusammenführen, wenn sie sich überlappen.\",\"Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.\",\"Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.\",'Der Modifizierer, der zum Hinzufügen mehrerer Cursor mit der Maus verwendet wird. Die Mausbewegungen \"Gehe zu Definition\" und \"Link öffnen\" werden so angepasst, dass kein Konflikt mit dem Multi-Cursor-Modifizierer entsteht. [Weitere Informationen](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).',\"Jeder Cursor fügt eine Textzeile ein.\",\"Jeder Cursor fügt den vollständigen Text ein.\",\"Steuert das Einfügen, wenn die Zeilenanzahl des Einfügetexts der Cursor-Anzahl entspricht.\",\"Steuert, ob der Editor das Vorkommen semantischer Symbole hervorheben soll.\",\"Steuert, ob um das Übersichtslineal ein Rahmen gezeichnet werden soll.\",\"Struktur fokussieren, wenn Sie den Peek-Editor öffnen\",\"Editor fokussieren, wenn Sie den Peek-Editor öffnen\",\"Steuert, ob der Inline-Editor oder die Struktur im Peek-Widget fokussiert werden soll.\",\"Steuert die Verzögerung in Millisekunden nach der Schnellvorschläge angezeigt werden.\",\"Steuert, ob der Editor Steuerzeichen rendern soll.\",\"Steuert, ob der Editor Einzugsführungslinien rendern soll.\",\"Letzte Zeilennummer rendern, wenn die Datei mit einem Zeilenumbruch endet.\",\"Hebt den Bundsteg und die aktuelle Zeile hervor.\",\"Steuert, wie der Editor die aktuelle Zeilenhervorhebung rendern soll.\",\"Render whitespace characters except for single spaces between words.\",\"Hiermit werden Leerraumzeichen nur für ausgewählten Text gerendert.\",\"Steuert, wie der Editor Leerzeichen rendern soll.\",\"Steuert, ob eine Auswahl abgerundete Ecken aufweisen soll.\",\"Steuert die Anzahl der zusätzlichen Zeichen, nach denen der Editor horizontal scrollt.\",\"Steuert, ob der Editor jenseits der letzten Zeile scrollen wird.\",\"Steuert, ob die primäre Linux-Zwischenablage unterstützt werden soll.\",\"Steuert, ob der Editor Übereinstimmungen hervorheben soll, die der Auswahl ähneln.\",\"Steuert, ob die Falt-Steuerelemente an der Leiste automatisch ausgeblendet werden.\",\"Steuert das Ausblenden von nicht verwendetem Code.\",\"Zeige Snippet Vorschläge über den anderen Vorschlägen.\",\"Snippet Vorschläge unter anderen Vorschlägen anzeigen.\",\"Zeige Snippet Vorschläge mit anderen Vorschlägen.\",\"Keine Ausschnittvorschläge anzeigen.\",\"Steuert, ob Codeausschnitte mit anderen Vorschlägen angezeigt und wie diese sortiert werden.\",\"Legt fest, ob der Editor Bildläufe animiert ausführt.\",'Schriftgröße für das vorgeschlagene Widget. Bei Festlegung auf 0 wird der Wert von \"#editor.fontSize#\" verwendet.','Zeilenhöhe für das vorgeschlagene Widget. Bei Festlegung auf 0 wird der Wert von \"#editor.lineHeight#\" verwendet.',\"Steuert, ob Vorschläge automatisch angezeigt werden sollen, wenn Triggerzeichen eingegeben werden.\",\"Immer den ersten Vorschlag auswählen.\",'Wählen Sie die aktuellsten Vorschläge aus, es sei denn, es wird ein Vorschlag durch eine weitere Eingabe ausgewählt, z.B. \"console.| -> console.log\", weil \"log\" vor Kurzem abgeschlossen wurde.','Wählen Sie Vorschläge basierend auf früheren Präfixen aus, die diese Vorschläge abgeschlossen haben, z.B. \"co -> console\" und \"con ->\" const\".',\"Steuert, wie Vorschläge bei Anzeige der Vorschlagsliste vorab ausgewählt werden.\",\"Die Tab-Vervollständigung fügt den passendsten Vorschlag ein, wenn auf Tab gedrückt wird.\",\"Tab-Vervollständigungen deaktivieren.\",'Codeausschnitte per Tab vervollständigen, wenn die Präfixe übereinstimmen. Funktioniert am besten, wenn \"quickSuggestions\" deaktiviert sind.',\"Tab-Vervollständigungen aktivieren.\",\"Das Einfügen und Löschen von Leerzeichen erfolgt nach Tabstopps.\",\"Zeichen, die als Worttrennzeichen verwendet werden, wenn wortbezogene Navigationen oder Vorgänge ausgeführt werden.\",\"Zeilenumbrüche erfolgen nie.\",\"Der Zeilenumbruch erfolgt an der Breite des Anzeigebereichs.\",'Der Zeilenumbruch erfolgt bei \"#editor.wordWrapColumn#\".','Der Zeilenumbruch erfolgt beim Mindestanzeigebereich und \"#editor.wordWrapColumn\".',\"Steuert, wie der Zeilenumbruch durchgeführt werden soll.\",'Steuert die umschließende Spalte des Editors, wenn \"#editor.wordWrap#\" den Wert \"wordWrapColumn\" oder \"bounded\" aufweist.',\"Kein Einzug. Umbrochene Zeilen beginnen bei Spalte 1.\",\"Umbrochene Zeilen erhalten den gleichen Einzug wie das übergeordnete Element.\",\"Umbrochene Zeilen erhalten + 1 Einzug auf das übergeordnete Element.\",\"Umgebrochene Zeilen werden im Vergleich zum übergeordneten Element +2 eingerückt.\",\"Steuert die Einrückung der umbrochenen Zeilen.\",\"Es wird angenommen, dass alle Zeichen gleich breit sind. Dies ist ein schneller Algorithmus, der für Festbreitenschriftarten und bestimmte Alphabete (wie dem lateinischen), bei denen die Glyphen gleich breit sind, korrekt funktioniert.\",\"Delegiert die Berechnung von Umbruchpunkten an den Browser. Dies ist ein langsamer Algorithmus, der bei großen Dateien Code Freezes verursachen kann, aber in allen Fällen korrekt funktioniert.\",\"Steuert den Algorithmus, der Umbruchpunkte berechnet.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Nur-Text\"],\n\"vs/editor/common/standaloneStrings\":[\"Keine Auswahl\",\"Zeile {0}, Spalte {1} ({2} ausgewählt)\",\"Zeile {0}, Spalte {1}\",\"{0} Auswahlen ({1} Zeichen ausgewählt)\",\"{0} Auswahlen\",'Die Einstellung \"accessibilitySupport\" wird jetzt in \"on\" geändert.',\"Die Dokumentationsseite zur Barrierefreiheit des Editors wird geöffnet.\",\"in einem schreibgeschützten Bereich eines Diff-Editors.\",\"in einem Bereich eines Diff-Editors.\",\"in einem schreibgeschützten Code-Editor\",\"in einem Code-Editor\",\"Drücken Sie BEFEHLSTASTE + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.\",\"Drücken Sie STRG + E, um den Editor für eine optimierte Verwendung mit Sprachausgabe zu konfigurieren.\",\"Der Editor ist auf eine optimale Verwendung mit Sprachausgabe konfiguriert.\",\"Der Editor ist so konfiguriert, dass er nie auf die Verwendung mit Sprachausgabe hin optimiert wird. Dies ist zu diesem Zeitpunkt nicht der Fall.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird der Fokus in das nächste Element verschoben, das den Fokus erhalten kann. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Schalten Sie dieses Verhalten um, indem Sie {0} drücken.\",\"Durch Drücken der TAB-TASTE im aktuellen Editor wird das Tabstoppzeichen eingefügt. Der {0}-Befehl kann zurzeit nicht durch eine Tastenzuordnung ausgelöst werden.\",\"Drücken Sie BEFEHLSTASTE + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.\",\"Drücken Sie STRG + H, um ein Browserfenster mit weiteren Informationen zur Barrierefreiheit des Editors zu öffnen.\",\"Sie können diese QuickInfo schließen und durch Drücken von ESC oder UMSCHALT+ESC zum Editor zurückkehren.\",\"Hilfe zur Barrierefreiheit anzeigen\",\"Entwickler: Token überprüfen\",\"Zu Zeile {0} und Zeichen {1} wechseln\",\"Gehe zu Zeile {0}\",\"Zeilennummer zwischen 1 und {0} eingeben, zu der navigiert werden soll\",\"Ein Zeichen zwischen 1 und {0} eingeben, um dorthin zu navigieren\",\"Aktuelle Zeile: {0}. gehe zu Zeile {1}.\",\"Eine Zeilennummer eingeben, gefolgt von einem optionalen Doppelpunkt und einer Zeichennummer, um dorthin zu navigieren\",\"Gehe zu Zeile...\",\"{0}, {1}, Befehle\",\"{0}, Befehle\",\"Name der auszuführenden Aktion eingeben\",\"Befehlspalette\",\"{0}, Symbole\",\"Geben Sie den Namen eines Bezeichners ein, zu dem Sie navigieren möchten.\",\"Gehe zu Symbol...\",\"Symbole ({0})\",\"Module ({0})\",\"Klassen ({0})\",\"Schnittstellen ({0})\",\"Methoden ({0})\",\"Funktionen ({0})\",\"Eigenschaften ({0})\",\"Variablen ({0})\",\"Variablen ({0})\",\"Konstruktoren ({0})\",\"Aufrufe ({0})\",\"Editor-Inhalt\",\"Drücken Sie STRG + F1, um die Barrierefreiheitsoptionen aufzurufen.\",\"Drücken Sie ALT + F1, um die Barrierefreiheitsoptionen aufzurufen.\",\"Zu Design mit hohem Kontrast umschalten\",\"{0} Bearbeitungen in {1} Dateien durchgeführt\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Hintergrundfarbe zur Hervorhebung der Zeile an der Cursorposition.\",\"Hintergrundfarbe für den Rahmen um die Zeile an der Cursorposition.\",\"Hintergrundfarbe der markierten Bereiche, wie z.B. Quick Open oder die Suche. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe für den Rahmen um hervorgehobene Bereiche.\",'Hintergrundfarbe des hervorgehobenen Symbols, z. B. \"Gehe zu Definition\" oder \"Gehe zu nächster/vorheriger\". Die Farbe darf nicht undurchsichtig sein, um zugrunde liegende Dekorationen nicht zu verbergen.',\"Hintergrundfarbe des Rahmens um hervorgehobene Symbole\",\"Farbe des Cursors im Editor.\",\"Hintergrundfarbe vom Editor-Cursor. Erlaubt die Anpassung der Farbe von einem Zeichen, welches von einem Block-Cursor überdeckt wird.\",\"Farbe der Leerzeichen im Editor.\",\"Farbe der Führungslinien für Einzüge im Editor.\",\"Farbe der Führungslinien für Einzüge im aktiven Editor.\",\"Zeilennummernfarbe im Editor.\",\"Zeilennummernfarbe der aktiven Editorzeile.\",'Die ID ist veraltet. Verwenden Sie stattdessen \"editorLineNumber.activeForeground\".',\"Zeilennummernfarbe der aktiven Editorzeile.\",\"Farbe des Editor-Lineals.\",\"Vordergrundfarbe der CodeLens-Links im Editor\",\"Hintergrundfarbe für zusammengehörige Klammern\",\"Farbe für zusammengehörige Klammern\",\"Farbe des Rahmens für das Übersicht-Lineal.\",\"Hintergrundfarbe der Editorleiste. Die Leiste enthält die Glyphenränder und die Zeilennummern.\",\"Rahmenfarbe unnötigen (nicht genutzten) Quellcodes im Editor.\",'Deckkraft des unnötigen (nicht genutzten) Quellcodes im Editor. \"#000000c0\" rendert z.B. den Code mit einer Deckkraft von 75%. Verwenden Sie für Designs mit hohem Kontrast das Farbdesign \"editorUnnecessaryCode.border\", um unnötigen Code zu unterstreichen statt ihn abzublenden.',\"Übersichtslineal-Markierungsfarbe für Fehler.\",\"Übersichtslineal-Markierungsfarbe für Warnungen.\",\"Übersichtslineal-Markierungsfarbe für Informationen.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Übersichtslineal-Markierungsfarbe für zusammengehörige Klammern.\",\"Gehe zu Klammer\",\"Auswählen bis Klammer\",\"Gehe zu &&Klammer\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Caretzeichen nach links verschieben\",\"Caretzeichen nach rechts verschieben\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Buchstaben austauschen\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Ausschneiden\",\"&&Ausschneiden\",\"Kopieren\",\"&&Kopieren\",\"Einfügen\",\"&&Einfügen\",\"Mit Syntaxhervorhebung kopieren\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Art der auszuführenden Codeaktion\",\"Legt fest, wann die zurückgegebenen Aktionen angewendet werden\",\"Die erste zurückgegebene Codeaktion immer anwenden\",\"Die erste zurückgegebene Codeaktion anwenden, wenn nur eine vorhanden ist\",\"Zurückgegebene Codeaktionen nicht anwenden\",\"Legt fest, ob nur bevorzugte Codeaktionen zurückgegeben werden sollen\",\"Beim Anwenden der Code-Aktion ist ein unbekannter Fehler aufgetreten\",\"Schnelle Problembehebung …\",\"Keine Codeaktionen verfügbar\",'Keine bevorzugten Codeaktionen für \"{0}\" verfügbar','Keine Codeaktionen für \"{0}\" verfügbar',\"Keine bevorzugten Codeaktionen verfügbar\",\"Keine Codeaktionen verfügbar\",\"Refactoring durchführen...\",'Keine bevorzugten Refactorings für \"{0}\" verfügbar','Keine Refactorings für \"{0}\" verfügbar',\"Keine bevorzugten Refactorings verfügbar\",\"Keine Refactorings verfügbar\",\"Quellaktion…\",'Keine bevorzugten Quellaktionen für \"{0}\" verfügbar','Keine Quellaktionen für \"{0}\" verfügbar',\"Keine bevorzugten Quellaktionen verfügbar\",\"Keine Quellaktionen verfügbar\",\"Importe organisieren\",\"Keine Aktion zum Organisieren von Importen verfügbar\",\"Alle korrigieren\",'Aktion \"Alle korrigieren\" nicht verfügbar',\"Automatisch korrigieren...\",\"Keine automatischen Korrekturen verfügbar\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Fixes anzeigen. Bevorzugter Fix verfügbar ({0})\",\"Korrekturen anzeigen ({0})\",\"Korrekturen anzeigen\"],\"vs/editor/contrib/comment/comment\":[\"Zeilenkommentar umschalten\",\"Zeilenkommen&&tar umschalten\",\"Zeilenkommentar hinzufügen\",\"Zeilenkommentar entfernen\",\"Blockkommentar umschalten\",\"&&Blockkommentar umschalten\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Editor-Kontextmenü anzeigen\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Mit Cursor rückgängig machen\",\"Wiederholen mit Cursor\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Die Vordergrundfarbe für Arraysymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für boolesche Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Klassensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Farbsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für konstante Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Konstruktorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Enumeratorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Enumeratormembersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Ereignissymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Feldsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Dateisymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Ordnersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Funktionssymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schnittstellensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schlüsselsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Schlüsselwortsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Methodensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Modulsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Namespacesymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für NULL-Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Zahlensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Objektsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Operatorsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Paketsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Eigenschaftensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Referenzsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Codeausschnittsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Zeichenfolgensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Struktursymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Textsymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Typparametersymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für Einheitensymbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\",\"Die Vordergrundfarbe für variable Symbole. Diese Symbole werden in den Widgets für Gliederung, Breadcrumbs und Vorschläge angezeigt.\"],\n\"vs/editor/contrib/find/findController\":[\"Suchen\",\"&&Suchen\",\"Mit Auswahl suchen\",\"Weitersuchen\",\"Weitersuchen\",\"Vorheriges Element suchen\",\"Vorheriges Element suchen\",\"Nächste Auswahl suchen\",\"Vorherige Auswahl suchen\",\"Ersetzen\",\"&&Ersetzen\"],\"vs/editor/contrib/find/findWidget\":[\"Suchen\",\"Suchen\",\"Vorheriger Treffer\",\"Nächste Übereinstimmung\",\"In Auswahl suchen\",\"Schließen\",\"Ersetzen\",\"Ersetzen\",\"Ersetzen\",\"Alle ersetzen\",\"Ersetzen-Modus wechseln\",\"Nur die ersten {0} Ergebnisse wurden hervorgehoben, aber alle Suchoperationen werden auf dem gesamten Text durchgeführt.\",\"{0} von {1}\",\"Keine Ergebnisse\",\"{0} gefunden\",\"{0} gefunden für {1}\",\"{0} gefunden für {1} bei {2}\",\"{0} gefunden für {1}\",'STRG+EINGABE fügt jetzt einen Zeilenumbruch ein, statt alles zu ersetzen. Sie können die Tastenzuordnung für \"editor.action.replaceAll\" ändern, um dieses Verhalten außer Kraft zu setzen.'],\n\"vs/editor/contrib/folding/folding\":[\"Auffalten\",\"Faltung rekursiv aufheben\",\"Falten\",\"Einklappung umschalten\",\"Rekursiv falten\",\"Alle Blockkommentare falten\",\"Alle Regionen falten\",\"Alle Regionen auffalten\",\"Alle falten\",\"Alle auffalten\",\"Faltebene {0}\",\"Farbe der Editor-Auswahl.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Editorschriftart vergrößern\",\"Editorschriftart verkleinern\",\"Editor Schriftart Vergrößerung zurücksetzen\"],\"vs/editor/contrib/format/format\":[\"1 Formatierung in Zeile {0} vorgenommen\",\"{0} Formatierungen in Zeile {1} vorgenommen\",\"1 Formatierung zwischen Zeilen {0} und {1} vorgenommen\",\"{0} Formatierungen zwischen Zeilen {1} und {2} vorgenommen\"],\"vs/editor/contrib/format/formatActions\":[\"Dokument formatieren\",\"Auswahl formatieren\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Gehe zu nächstem Problem (Fehler, Warnung, Information)\",\"Gehe zu vorigem Problem (Fehler, Warnung, Information)\",\"Gehe zu dem nächsten Problem in den Dateien (Fehler, Warnung, Info)\",\"Gehe zu dem vorherigen Problem in den Dateien (Fehler, Warnung, Info)\",\"Nächstes &&Problem\",\"Vorheriges &&Problem\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} von {1} Problemen\",\"{0} von {1} Problemen\",\"Editormarkierung: Farbe bei Fehler des Navigationswidgets.\",\"Editormarkierung: Farbe bei Warnung des Navigationswidgets.\",\"Editormarkierung: Farbe bei Information des Navigationswidgets.\",\"Editormarkierung: Hintergrund des Navigationswidgets.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Vorschau\",\"Definitionen\",'Keine Definition gefunden für \"{0}\".',\"Keine Definition gefunden\",\"Gehe zu Definition\",\"Gehe &&zu Definition\",\"Definition an der Seite öffnen\",\"Peek-Definition\",\"Deklarationen\",'Keine Deklaration für \"{0}\" gefunden.',\"Keine Deklaration gefunden.\",\"Zur Deklaration wechseln\",\"Gehe zu &&Deklaration\",'Keine Deklaration für \"{0}\" gefunden.',\"Keine Deklaration gefunden.\",\"Vorschau für Deklaration anzeigen\",\"Typdefinitionen\",'Keine Typendefinition gefunden für \"{0}\"',\"Keine Typendefinition gefunden\",\"Zur Typdefinition wechseln\",\"Zur &&Typdefinition wechseln\",\"Vorschau der Typdefinition anzeigen\",\"Implementierungen\",'Keine Implementierung gefunden für \"{0}\"',\"Keine Implementierung gefunden\",\"Gehe zu Implementierungen\",\"Gehe zu &&Implementierungen\",\"Vorschau für Implementierungen anzeigen\",'Für \"{0}\" wurden keine Verweise gefunden.',\"Keine Referenzen gefunden\",\"Gehe zu Verweisen\",\"Gehe zu &&Verweisen\",\"Verweise\",\"Vorschau für Verweise anzeigen\",\"Verweise\",\"Gehe zu beliebigem Symbol\",\"Speicherorte\",'Keine Ergebnisse für \"{0}\"',\"Verweise\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Klicken Sie, um {0} Definitionen anzuzeigen.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Wird geladen...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Fehler beim Auflösen der Datei.\",\"{0} Verweise\",\"{0} Verweis\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"Keine Vorschau verfügbar.\",\"Verweise\",\"Keine Ergebnisse\",\"Verweise\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"Symbol in {0} in Zeile {1}, Spalte {2}\",\"1 Symbol in {0}, vollständiger Pfad {1}\",\"{0} Symbole in {1}, vollständiger Pfad {2}\",\"Es wurden keine Ergebnisse gefunden.\",\"1 Symbol in {0} gefunden\",\"{0} Symbole in {1} gefunden\",\"{0} Symbole in {1} Dateien gefunden\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbol {0} von {1}, {2} für nächstes\",\"Symbol {0} von {1}\"],\"vs/editor/contrib/hover/hover\":[\"Hovern anzeigen\",\"Definitionsvorschauhover anzeigen\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Wird geladen...\",\"Vorschauproblem\",\"Es wird nach Schnellkorrekturen gesucht...\",\"Keine Schnellkorrekturen verfügbar\",\"Schnelle Problembehebung …\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Durch vorherigen Wert ersetzen\",\"Durch nächsten Wert ersetzen\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Zeile nach oben kopieren\",\"Zeile nach oben &&kopieren\",\"Zeile nach unten kopieren\",\"Zeile nach unten ko&&pieren\",\"Auswahl duplizieren\",\"&&Auswahl duplizieren\",\"Zeile nach oben verschieben\",\"Zeile nach oben &&verschieben\",\"Zeile nach unten verschieben\",\"Zeile nach &&unten verschieben\",\"Zeilen aufsteigend sortieren\",\"Zeilen absteigend sortieren\",\"Nachgestelltes Leerzeichen kürzen\",\"Zeile löschen\",\"Zeileneinzug\",\"Zeile ausrücken\",\"Zeile oben einfügen\",\"Zeile unten einfügen\",\"Alle übrigen löschen\",\"Alle rechts löschen\",\"Zeilen verknüpfen\",\"Zeichen um den Cursor herum transponieren\",\"In Großbuchstaben umwandeln\",\"In Kleinbuchstaben umwandeln\",\"In große Anfangsbuchstaben umwandeln\"],\"vs/editor/contrib/links/links\":[\"Befehl ausführen\",\"Link folgen\",\"BEFEHL + Klicken\",\"STRG + Klicken\",\"OPTION + Klicken\",\"alt + klicken\",\"Fehler beim Öffnen dieses Links, weil er nicht wohlgeformt ist: {0}\",\"Fehler beim Öffnen dieses Links, weil das Ziel fehlt.\",\"Link öffnen\"],\n\"vs/editor/contrib/message/messageController\":[\"Ein Bearbeiten ist im schreibgeschützten Editor nicht möglich\"],\"vs/editor/contrib/multicursor/multicursor\":[\"Cursor oberhalb hinzufügen\",\"Cursor oberh&&alb hinzufügen\",\"Cursor unterhalb hinzufügen\",\"Cursor unterhal&&b hinzufügen\",\"Cursor an Zeilenenden hinzufügen\",\"C&&ursor an Zeilenenden hinzufügen\",\"Cursor am Ende hinzufügen\",\"Cursor am Anfang hinzufügen\",\"Auswahl zur nächsten Übereinstimmungssuche hinzufügen\",\"&&Nächstes Vorkommen hinzufügen\",\"Letzte Auswahl zu vorheriger Übereinstimmungssuche hinzufügen\",\"Vo&&rheriges Vorkommen hinzufügen\",\"Letzte Auswahl in nächste Übereinstimmungssuche verschieben\",\"Letzte Auswahl in vorherige Übereinstimmungssuche verschieben\",\"Alle Vorkommen auswählen und Übereinstimmung suchen\",\"Alle V&&orkommen auswählen\",\"Alle Vorkommen ändern\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Parameterhinweise auslösen\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, Hinweis\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Schließen\",\"Hintergrundfarbe des Titelbereichs der Peek-Ansicht.\",\"Farbe des Titels in der Peek-Ansicht.\",\"Farbe der Titelinformationen in der Peek-Ansicht.\",\"Farbe der Peek-Ansichtsränder und des Pfeils.\",\"Hintergrundfarbe der Ergebnisliste in der Peek-Ansicht.\",\"Vordergrundfarbe für Zeilenknoten in der Ergebnisliste der Peek-Ansicht.\",\"Vordergrundfarbe für Dateiknoten in der Ergebnisliste der Peek-Ansicht.\",\"Hintergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.\",\"Vordergrundfarbe des ausgewählten Eintrags in der Ergebnisliste der Peek-Ansicht.\",\"Hintergrundfarbe des Peek-Editors.\",\"Hintergrundfarbe der Leiste im Peek-Editor.\",\"Farbe für Übereinstimmungsmarkierungen in der Ergebnisliste der Peek-Ansicht.\",\"Farbe für Übereinstimmungsmarkierungen im Peek-Editor.\",\"Rahmen für Übereinstimmungsmarkierungen im Peek-Editor.\"],\n\"vs/editor/contrib/rename/rename\":[\"Kein Ergebnis.\",\"Ein unbekannter Fehler ist beim Auflösen der Umbenennung eines Ortes aufgetreten.\",'\"{0}\" wird umbenannt','\"{0}\" erfolgreich in \"{1}\" umbenannt. Zusammenfassung: {2}',\"Die rename-Funktion konnte die Änderungen nicht anwenden.\",\"Die rename-Funktion konnte die Änderungen nicht berechnen.\",\"Symbol umbenennen\",\"Möglichkeit aktivieren/deaktivieren, Änderungen vor dem Umbenennen als Vorschau anzeigen zu lassen\"],\"vs/editor/contrib/rename/renameInputField\":[\"Benennen Sie die Eingabe um. Geben Sie einen neuen Namen ein, und drücken Sie die EINGABETASTE, um den Commit auszuführen.\",\"{0} zum Umbenennen, {1} zum Anzeigen als Vorschau\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Auswahl aufklappen\",\"Auswahl &&erweitern\",\"Markierung verkleinern\",\"Au&&swahl verkleinern\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\",\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\",\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\",\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],\"vs/editor/contrib/suggest/suggestController\":['Das Akzeptieren von \"{0}\" ergab {1} zusätzliche Bearbeitungen.',\"Vorschlag auslösen\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Hintergrundfarbe des Vorschlagswidgets.\",\"Rahmenfarbe des Vorschlagswidgets.\",\"Vordergrundfarbe des Vorschlagswidgets.\",\"Hintergrundfarbe des ausgewählten Eintrags im Vorschlagswidget.\",\"Farbe der Trefferhervorhebung im Vorschlagswidget.\",\"Mehr anzeigen...{0}\",\"Weniger anzeigen...{0}\",\"Wird geladen...\",\"Wird geladen...\",\"Keine Vorschläge.\",\"{0} für weniger...\",\"{0} für mehr...\",\"Element {0}, Dok.: {1}\",\"{0} zum Einfügen, {1} zum Ersetzen\",\"{0} zum Ersetzen, {1} zum Einfügen\",\"{0} zum Akzeptieren\"],\n\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"TAB-Umschalttaste verschiebt Fokus\",\"Beim Drücken auf Tab wird der Fokus jetzt auf das nächste fokussierbare Element verschoben\",\"Beim Drücken von Tab wird jetzt das Tabulator-Zeichen eingefügt\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Entwickler: Force Retokenize\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Hintergrundfarbe eines Symbols beim Lesezugriff, z.B. beim Lesen einer Variablen. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe eines Symbols bei Schreibzugriff, z.B. beim Schreiben in eine Variable. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe eines Symbols beim Lesezugriff, wie etwa beim Lesen einer Variablen.\",\"Randfarbe eines Symbols beim Schreibzugriff, wie etwa beim Schreiben einer Variablen.\",\"Übersichtslinealmarkerfarbd für das Hervorheben von Symbolen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Übersichtslinealmarkerfarbe für Symbolhervorhebungen bei Schreibzugriff. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Gehe zur nächsten Symbolhervorhebungen\",\"Gehe zur vorherigen Symbolhervorhebungen\",\"Symbol-Hervorhebung ein-/ausschalten\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Standard-Konfiguration überschreibt\",\"Zu überschreibende Editor-Einstellungen für eine Sprache konfigurieren.\",\"Diese Einstellung unterstützt keine sprachspezifische Konfiguration.\",'\"{0}\" kann nicht registriert werden. Stimmt mit dem Eigenschaftsmuster \"\\\\\\\\[.*\\\\\\\\]$\" zum Beschreiben sprachspezifischer Editor-Einstellungen überein. Verwenden Sie den Beitrag \"configurationDefaults\".','{0}\" kann nicht registriert werden. Diese Eigenschaft ist bereits registriert.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) wurde gedrückt. Es wird auf die zweite Taste der Kombination gewartet...\",\"Die Tastenkombination ({0}, {1}) ist kein Befehl.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Ist unter Windows und Linux der STRG-Taste und unter macOS der Befehlstaste zugeordnet.\",\"Ist unter Windows und Linux der ALT-Taste und unter macOS der Wahltaste zugeordnet.\",'Der Modifizierer zum Hinzufügen eines Elements in Bäumen und Listen zu einer Mehrfachauswahl mit der Maus (zum Beispiel im Explorer, in geöffneten Editoren und in der SCM-Ansicht). Die Mausbewegung \"Seitlich öffnen\" wird – sofern unterstützt – so angepasst, dass kein Konflikt mit dem Modifizierer für Mehrfachauswahl entsteht.',\"Steuert, wie Elemente in Strukturen und Listen mithilfe der Maus geöffnet werden (sofern unterstützt). Bei übergeordneten Elementen, deren untergeordnete Elemente sich in Strukturen befinden, steuert diese Einstellung, ob ein Einfachklick oder ein Doppelklick das übergeordnete Elemente erweitert. Beachten Sie, dass einige Strukturen und Listen diese Einstellung ggf. ignorieren, wenn sie nicht zutrifft.\",\"Legt fest, ob Listen und Strukturen horizontales Scrollen in der Workbench unterstützen.\",\"Steuert, ob Bäume horizontales Scrollen in der Workbench unterstützen.\",'Diese Einstellung ist veraltet. Verwenden Sie stattdessen \"{0}\".',\"Steuert den Struktureinzug in Pixeln.\",\"Steuert, ob die Struktur Einzugsführungslinien rendern soll.\",\"Bei der einfachen Tastaturnavigation werden Elemente in den Fokus genommen, die mit der Tastatureingabe übereinstimmen. Die Übereinstimmungen gelten nur für Präfixe.\",\"Hervorheben von Tastaturnavigationshervorgebungselemente, die mit der Tastatureingabe übereinstimmen. Beim nach oben und nach unten Navigieren werden nur die hervorgehobenen Elemente durchlaufen.\",\"Durch das Filtern der Tastaturnavigation werden alle Elemente herausgefiltert und ausgeblendet, die nicht mit der Tastatureingabe übereinstimmen.\",'Steuert die Tastaturnavigation in Listen und Strukturen in der Workbench. Kann \"simple\" (einfach), \"highlight\" (hervorheben) und \"filter\" (filtern) sein.','Legt fest, ob die Tastaturnavigation in Listen und Strukturen automatisch durch Eingaben ausgelöst wird. Wenn der Wert auf \"false\" festgelegt ist, wird die Tastaturnavigation nur ausgelöst, wenn der Befehl \"list.toggleKeyboardNavigation\" ausgeführt wird. Diesem Befehl können Sie eine Tastenkombination zuweisen.'],\n\"vs/platform/markers/common/markers\":[\"Fehler\",\"Warnung\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Allgemeine Vordergrundfarbe für Fehlermeldungen. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Allgemeine Rahmenfarbe für fokussierte Elemente. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.\",\"Ein zusätzlicher Rahmen um Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.\",\"Ein zusätzlicher Rahmen um aktive Elemente, mit dem diese von anderen getrennt werden, um einen größeren Kontrast zu erreichen.\",\"Vordergrundfarbe für Links im Text.\",\"Hintergrundfarbe für Codeblöcke im Text.\",\"Schattenfarbe von Widgets wie zum Beispiel Suchen/Ersetzen innerhalb des Editors.\",\"Hintergrund für Eingabefeld.\",\"Vordergrund für Eingabefeld.\",\"Rahmen für Eingabefeld.\",\"Rahmenfarbe für aktivierte Optionen in Eingabefeldern.\",\"Hintergrundfarbe für aktivierte Optionen in Eingabefeldern.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Information.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad der Warnung.\",\"Hintergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Vordergrundfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Rahmenfarbe bei der Eingabevalidierung für den Schweregrad des Fehlers.\",\"Hintergrund für Dropdown.\",\"Vordergrund für Dropdown.\",\"Schnellauswahlfarbe für das Gruppieren von Bezeichnungen.\",\"Schnellauswahlfarbe für das Gruppieren von Rahmen.\",\"Hintergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.\",\"Vordergrundfarbe für Badge. Badges sind kurze Info-Texte, z.B. für Anzahl Suchergebnisse.\",\"Schatten der Scrollleiste, um anzuzeigen, dass die Ansicht gescrollt wird.\",\"Hintergrundfarbe vom Scrollbar-Schieber\",\"Hintergrundfarbe des Schiebereglers, wenn darauf gezeigt wird.\",\"Hintergrundfarbe des Schiebereglers, wenn darauf geklickt wird.\",\"Hintergrundfarbe des Fortschrittbalkens, der für zeitintensive Vorgänge angezeigt werden kann.\",\"Vordergrundfarbe von Fehlerunterstreichungen im Editor.\",\"Randfarbe von Fehlerfeldern im Editor.\",\"Vordergrundfarbe von Warnungsunterstreichungen im Editor.\",\"Randfarbe der Warnfelder im Editor.\",\"Vordergrundfarbe von Informationsunterstreichungen im Editor.\",\"Randfarbe der Infofelder im Editor.\",\"Vordergrundfarbe der Hinweisunterstreichungen im Editor.\",\"Randfarbe der Hinweisfelder im Editor.\",\"Hintergrundfarbe des Editors.\",\"Standardvordergrundfarbe des Editors.\",\"Hintergrundfarbe von Editor-Widgets wie zum Beispiel Suchen/Ersetzen.\",\"Vordergrundfarbe für Editorwidgets wie Suchen/Ersetzen.\",\"Rahmenfarbe von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Rahmen verwendet wird und die Farbe nicht von einem Widget überschrieben wird.\",\"Rahmenfarbe der Größenanpassungsleiste von Editorwigdets. Die Farbe wird nur verwendet, wenn für das Widget ein Größenanpassungsrahmen verwendet wird und die Farbe nicht von einem Widget außer Kraft gesetzt wird.\",\"Farbe der Editor-Auswahl.\",\"Farbe des gewählten Text für einen hohen Kontrast\",\"Die Farbe der Auswahl befindet sich in einem inaktiven Editor. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegende Dekorationen verdeckt.\",\"Farbe für Bereiche mit dem gleichen Inhalt wie die Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe für Bereiche, deren Inhalt der Auswahl entspricht.\",\"Farbe des aktuellen Suchergebnisses.\",\"Farbe der anderen Suchergebnisse. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Farbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, damit sie nicht die zugrunde liegenden Dekorationen verdeckt.\",\"Randfarbe des aktuellen Suchergebnisses.\",\"Randfarbe der anderen Suchtreffer.\",\"Rahmenfarbe des Bereichs, der die Suche eingrenzt. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hervorhebung unterhalb des Worts, für das ein Hoverelement angezeigt wird. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe des Editor-Mauszeigers.\",\"Vordergrundfarbe des Editor-Mauszeigers\",\"Rahmenfarbe des Editor-Mauszeigers.\",\"Hintergrundfarbe der Hoverstatusleiste des Editors.\",\"Farbe der aktiven Links.\",'Die für das Aktionssymbol \"Glühbirne\" verwendete Farbe.','Die für das Aktionssymbol \"Automatische Glühbirnenkorrektur\" verwendete Farbe.',\"Hintergrundfarbe für eingefügten Text. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Hintergrundfarbe für Text, der entfernt wurde. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Konturfarbe für eingefügten Text.\",\"Konturfarbe für entfernten Text.\",\"Die Rahmenfarbe zwischen zwei Text-Editoren.\",\"Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur aktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Vordergrundfarbe der Liste/Struktur für das ausgewählte Element, wenn die Liste/Baumstruktur inaktiv ist. Eine aktive Liste/Baumstruktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrundfarbe der Liste/Struktur für das fokussierte Element, wenn die Liste/Struktur inaktiv ist. Eine aktive Liste/Struktur hat Tastaturfokus, eine inaktive hingegen nicht.\",\"Hintergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.\",\"Vordergrund der Liste/Struktur, wenn mit der Maus auf Elemente gezeigt wird.\",\"Drag & Drop-Hintergrund der Liste/Struktur, wenn Elemente mithilfe der Maus verschoben werden.\",\"Vordergrundfarbe der Liste/Struktur zur Trefferhervorhebung beim Suchen innerhalb der Liste/Struktur.\",\"Hintergrundfarbe des Typfilterwidgets in Listen und Strukturen.\",\"Konturfarbe des Typfilterwidgets in Listen und Strukturen.\",\"Konturfarbe des Typfilterwidgets in Listen und Strukturen, wenn es keine Übereinstimmungen gibt.\",\"Strukturstrichfarbe für die Einzugsführungslinien.\",\"Rahmenfarbe von Menüs.\",\"Vordergrundfarbe von Menüelementen.\",\"Hintergrundfarbe von Menüelementen.\",\"Vordergrundfarbe des ausgewählten Menüelements im Menü.\",\"Hintergrundfarbe des ausgewählten Menüelements im Menü.\",\"Rahmenfarbe des ausgewählten Menüelements im Menü.\",\"Farbe eines Trenner-Menüelements in Menüs.\",\"Hervorhebungs-Hintergrundfarbe eines Codeausschnitt-Tabstopps.\",\"Hervorhebungs-Rahmenfarbe eines Codeausschnitt-Tabstopps.\",\"Hervorhebungs-Hintergrundfarbe des letzten Tabstopps eines Codeausschnitts.\",\"Hervorhebungs-Rahmenfarbe des letzten Tabstopps eines Codeausschnitts.\",\"Übersichtslinealmarkerfarbe für das Suchen von Übereinstimmungen. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Übersichtslinealmarkerfarbe für das Hervorheben der Auswahl. Die Farbe darf nicht deckend sein, weil sie sonst die zugrunde liegenden Dekorationen verdeckt.\",\"Minimap-Markerfarbe für gefundene Übereinstimmungen.\",\"Minimap-Markerfarbe für die Editorauswahl.\",\"Minimapmarkerfarbe für Fehler\",\"Minimapmarkerfarbe für Warnungen\",\"Die Farbe, die für das Problemfehlersymbol verwendet wird.\",\"Die Farbe, die für das Problemwarnsymbol verwendet wird.\",\"Die Farbe, die für das Probleminfosymbol verwendet wird.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.de.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.es.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.es\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (ocurrió de nuevo)\",\"{0} (ocurrido {1} veces)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Entrada\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Coincidir mayúsculas y minúsculas\",\"Solo palabras completas\",\"Usar expresión regular\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Entrada\",\"Conservar may/min\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Error: {0}\",\"Advertencia: {0}\",\"Información: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Sin enlazar\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Para navegar utilice las teclas de navegación.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Borrar\",\"Desactivar filtro en tipo\",\"Activar filtro en el tipo\",\"No se encontraron elementos\",\"{0} de {1} elementos coincidentes\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Mayús\",\"Alt\",\"Windows\",\"Ctrl\",\"Mayús\",\"Alt\",\"Super\",\"Control\",\"Mayús\",\"Alt\",\"Comando\",\"Control\",\"Mayús\",\"Alt\",\"Windows\",\"Control\",\"Mayús\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Error\",\"Advertencia\",\"Información\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, selector\",\"selector\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Selector rápido. Escriba para restringir los resultados.\",\"Selector rápido\",\"{0} resultados\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Seleccionar todo\",\"&&Deshacer\",\"&&Rehacer\"],\"vs/editor/browser/controller/textAreaHandler\":[\"No se puede acceder al editor en este momento. Presione Alt+F1 para ver opciones.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"El número de cursores se ha limitado a {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Los archivos no se pueden comparar porque uno de ellos es demasiado grande.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Cerrar\",\"sin líneas\",\"1 línea\",\"{0} líneas\",\"Diferencia {0} de {1}: original {2}, {3}, modificado {4}, {5}\",\"vacío\",\"original {0}, modificado {1}: {2}\",\"+ modificado {0}: {1}\",\"- original {0}: {1}\",\"Ir a la siguiente diferencia\",\"Ir a la diferencia anterior\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copiar líneas eliminadas\",\"Copiar línea eliminada\",\"Copiar la línea eliminada ({0})\",\"Revertir este cambio\",\"Copiar la línea eliminada ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",'El número de espacios a los que equivale una tabulación. Este valor se invalida en función del contenido del archivo cuando \"#editor.detectIndentation#\" está activado.','Insertar espacios al presionar \"TAB\". Este valor se invalida en función del contenido del archivo cuando \"#editor.detectIndentation#\" está activado. ','Controla si \"#editor.tabSize#\" y \"#editor.insertSpaces#\" se detectarán automáticamente al abrir un archivo en función del contenido de este.',\"Quitar el espacio en blanco final autoinsertado.\",\"Manejo especial para archivos grandes para desactivar ciertas funciones de memoria intensiva.\",\"Habilita sugerencias basadas en palabras.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",'Mantiene abiertos los editores interactivos, incluso al hacer doble clic en su contenido o presionar \"Escape\".',\"Las lineas por encima de esta longitud no se tokenizarán por razones de rendimiento.\",\"Tiempo de espera en milisegundos después del cual se cancela el cálculo de diferencias. Utilice 0 para no usar tiempo de espera.\",\"Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.\",\"Controla si el editor de diferencias muestra los cambios de espacio inicial o espacio final como diferencias.\",\"Controla si el editor de diferencias muestra los indicadores +/- para los cambios agregados o quitados.\"],\n\"vs/editor/common/config/editorOptions\":[\"El editor usará API de plataforma para detectar cuándo está conectado un lector de pantalla.\",\"El editor se optimizará de forma permanente para su uso con un editor de pantalla.\",\"El editor nunca se optimizará para su uso con un lector de pantalla.\",\"Controla si el editor se debe ejecutar en un modo optimizado para lectores de pantalla.\",\"Controla si se inserta un carácter de espacio al comentar.\",\"Controla si al copiar sin selección se copia la línea actual.\",\"Controla si la cadena de búsqueda del widget de búsqueda se inicializa desde la selección del editor.\",\"No activar nunca Buscar en la selección automáticamente (predeterminado)\",\"Activar siempre automáticamente Buscar en la selección\",\"Active Buscar en la selección automáticamente cuando se seleccionen varias líneas de contenido.\",\"Controla si la operación de búsqueda se lleva a cabo en el texto seleccionado o el archivo entero en el editor.\",\"Controla si el widget de búsqueda debe leer o modificar el Portapapeles de búsqueda compartido en macOS.\",\"Controla si Encontrar widget debe agregar más líneas en la parte superior del editor. Si es true, puede desplazarse más allá de la primera línea cuando Encontrar widget está visible.\",\"Habilita o deshabilita las ligaduras tipográficas.\",\"Configuración explícita de las características de fuente.\",\"Configura ligaduras de fuentes.\",\"Controla el tamaño de fuente en píxeles.\",\"Mostrar vista de inspección de los resultados (predeterminado)\",\"Ir al resultado principal y mostrar una vista de inspección\",\"Vaya al resultado principal y habilite la navegación sin peek para otros\",'Esta configuración está en desuso. Use configuraciones separadas como \"editor.editor.gotoLocation.multipleDefinitions\" o \"editor.editor.gotoLocation.multipleImplementations\" en su lugar.','Controla el comportamiento del comando \"Ir a definición\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a definición de tipo\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a declaración\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a implementaciones\" cuando existen varias ubicaciones de destino.','Controla el comportamiento del comando \"Ir a referencias\" cuando existen varias ubicaciones de destino.','Identificador de comando alternativo que se ejecuta cuando el resultado de \"Ir a definición\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a definición de tipo\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a declaración\" es la ubicación actual.','Id. de comando alternativo que se está ejecutando cuando el resultado de \"Ir a implementación\" es la ubicación actual.','Identificador de comando alternativo que se ejecuta cuando el resultado de \"Ir a referencia\" es la ubicación actual.',\"Controla si se muestra la información al mantener el puntero sobre un elemento.\",\"Controla el retardo en milisegundos después del cual se muestra la información al mantener el puntero sobre un elemento.\",\"Controla si la información que aparece al mantener el puntero sobre un elemento permanece visible al mover el mouse sobre este.\",\"Habilita la bombilla de acción de código en el editor.\",\"Controla la altura de línea. Usa 0 para utilizar la altura del tamaño de fuente.\",\"Controla si se muestra el minimapa.\",\"Controla en qué lado se muestra el minimapa.\",\"Controla cuándo se muestra el control deslizante del minimapa.\",\"Escala del contenido dibujado en el minimapa.\",\"Represente los caracteres reales en una línea, por oposición a los bloques de color.\",\"Limite el ancho del minimapa para representar como mucho un número de columnas determinado.\",\"Habilita un elemento emergente que muestra documentación de los parámetros e información de los tipos mientras escribe.\",\"Controla si el menú de sugerencias de parámetros se cicla o se cierra al llegar al final de la lista.\",\"Habilita sugerencias rápidas en las cadenas.\",\"Habilita sugerencias rápidas en los comentarios.\",\"Habilita sugerencias rápidas fuera de las cadenas y los comentarios.\",\"Controla si deben mostrarse sugerencias automáticamente mientras se escribe.\",\"Los números de línea no se muestran.\",\"Los números de línea se muestran como un número absoluto.\",\"Los números de línea se muestran como distancia en líneas a la posición del cursor.\",\"Los números de línea se muestran cada 10 líneas.\",\"Controla la visualización de los números de línea.\",\"Muestra reglas verticales después de un cierto número de caracteres monoespaciados. Usa múltiples valores para mostrar múltiples reglas. Si la matriz está vacía, no se muestran reglas.\",\"Inserte la sugerencia sin sobrescribir el texto a la derecha del cursor.\",\"Inserte la sugerencia y sobrescriba el texto a la derecha del cursor.\",\"Controla si las palabras se sobrescriben al aceptar la finalización. Tenga en cuenta que esto depende de las extensiones que participan en esta característica.\",'Controla si se deben destacar las modificaciones inesperadas en el texto mientras se aceptan las finalizaciones, por ejemplo, \"insertMode\" es \"replace\", pero la finalización solo es compatible con \"insert\".',\"Controla si el filtrado y la ordenación de sugerencias se tienen en cuenta para los errores ortográficos pequeños.\",\"Controla si la ordenación de palabras mejora lo que aparece cerca del cursor.\",'Controla si las selecciones de sugerencias recordadas se comparten entre múltiples áreas de trabajo y ventanas (necesita \"#editor.suggestSelection#\").',\"Controla si un fragmento de código activo impide las sugerencias rápidas.\",\"Controla si mostrar u ocultar iconos en sugerencias.\",\"Controla cuántas sugerencias mostrará IntelliSense antes de que aparezca una barra de desplazamiento (máximo 15).\",'Esta configuración está en desuso. Use configuraciones separadas como \"editor.suggest.showKeyword\" o \"editor.suggest.showSnippets\" en su lugar.','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"method\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"función\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"constructor\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"field\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"variable\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"class\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"struct\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"interface\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"module\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"property\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"event\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"operator\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"unit\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"value\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"constant\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"enum\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"enumMember\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"keyword\".','Si está habilitado, IntelliSense muestra sugerencias de tipo \"text\".','Cuando está habilitado, IntelliSense muestra sugerencias de \"color\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"file\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"reference\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"customcolor\".','Si está habilitado, IntelliSense muestra sugerencias de tipo \"folder\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"typeParameter\".','Cuando está habilitado, IntelliSense muestra sugerencias de tipo \"snippet\".',\"Controla la visibilidad de la barra de estado en la parte inferior del widget de sugerencias.\",'Controla si se deben aceptar sugerencias en los caracteres de confirmación. Por ejemplo, en Javascript, el punto y coma (\";\") puede ser un carácter de confirmación que acepta una sugerencia y escribe ese carácter.','Aceptar solo una sugerencia con \"Entrar\" cuando realiza un cambio textual.','Controla si las sugerencias deben aceptarse con \"Entrar\", además de \"TAB\". Ayuda a evitar la ambigüedad entre insertar nuevas líneas o aceptar sugerencias.',\"Controla el número de líneas en el editor que puede leer un lector de pantalla. Advertencia: Esto puede afectar al rendimiento de números superiores al predeterminado.\",\"Contenido del editor\",\"Utilizar las configuraciones del lenguaje para determinar cuándo cerrar los corchetes automáticamente.\",\"Cerrar automáticamente los corchetes cuando el cursor esté a la izquierda de un espacio en blanco.\",\"Controla si el editor debe cerrar automáticamente los corchetes después de que el usuario agregue un corchete de apertura.\",\"Escriba en las comillas o los corchetes solo si se insertaron automáticamente.\",\"Controla si el editor debe escribir entre comillas o corchetes.\",\"Utilizar las configuraciones del lenguaje para determinar cuándo cerrar las comillas automáticamente. \",\"Cerrar automáticamente las comillas cuando el cursor esté a la izquierda de un espacio en blanco. \",\"Controla si el editor debe cerrar automáticamente las comillas después de que el usuario agrega uma comilla de apertura.\",\"El editor no insertará la sangría automáticamente.\",\"El editor mantendrá la sangría de la línea actual.\",\"El editor respetará la sangría de la línea actual y los corchetes definidos por el idioma.\",\"El editor mantendrá la sangría de la línea actual, respetará los corchetes definidos por el idioma e invocará onEnterRules especiales definidos por idiomas.\",\"El editor respetará la sangría de la línea actual, los corchetes definidos por idiomas y las reglas indentationRules definidas por idiomas, además de invocar reglas onEnterRules especiales.\",\"Controla si el editor debe ajustar automáticamente la sangría mientras los usuarios escriben, pegan, mueven o sangran líneas.\",\"Use las configuraciones de idioma para determinar cuándo delimitar las selecciones automáticamente.\",\"Envolver con comillas, pero no con corchetes.\",\"Envolver con corchetes, pero no con comillas.\",\"Controla si el editor debe delimitar automáticamente las selecciones.\",\"Controla si el editor muestra CodeLens.\",\"Controla si el editor debe representar el Selector de colores y los elementos Decorator de color en línea.\",\"Controla si el resaltado de sintaxis debe ser copiado al portapapeles.\",\"Controla el estilo de animación del cursor.\",\"Controla si la animación suave del cursor debe estar habilitada.\",\"Controla el estilo del cursor.\",'Controla el número mínimo de líneas iniciales y finales visibles que rodean al cursor. Se conoce como \"scrollOff\" o \"scrollOffset\" en algunos otros editores.','Solo se aplica \"cursorSurroundingLines\" cuando se desencadena mediante el teclado o la API.','\"cursorSurroundingLines\" se aplica siempre.','Controla cuando se debe aplicar \"cursorSurroundingLines\".','Controla el ancho del cursor cuando \"#editor.cursorStyle#\" se establece en \"line\".',\"Controla si el editor debe permitir mover las selecciones mediante arrastrar y colocar.\",'Multiplicador de la velocidad de desplazamiento al presionar \"Alt\".',\"Controla si el editor tiene el plegado de código habilitado.\",'Controla la estrategia para calcular los intervalos de plegado. \"auto\" usa una estrategia de plegado específica del idioma, si está disponible. \"indentation\" usa la estrategia de plegado basada en sangría.',\"Controla si el editor debe destacar los rangos plegados.\",\"Controla la familia de fuentes.\",\"Controla el grosor de la fuente.\",\"Controla si el editor debe dar formato automáticamente al contenido pegado. Debe haber disponible un formateador capaz de aplicar formato a un rango dentro de un documento. \",\"Controla si el editor debe dar formato a la línea automáticamente después de escribirla.\",\"Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.\",\"Controla si el cursor debe ocultarse en la regla de información general.\",\"Controla si el editor debe resaltar la guía de sangría activa.\",\"Controla el espacio entre letras en pixels.\",\"Controla si el editor debe detectar vínculos y hacerlos interactivos.\",\"Resaltar paréntesis coincidentes.\",'Se usará un multiplicador en los eventos de desplazamiento de la rueda del mouse \"deltaX\" y \"deltaY\". ','Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona \"Ctrl\".',\"Combinar varios cursores cuando se solapan.\",'Se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS.','Se asigna a \"Alt\" en Windows y Linux y a \"Opción\" en macOS.',\"El modificador que se usará para agregar varios cursores con el mouse. Los gestos del mouse Ir a definición y Abrir vínculo se adaptarán de modo que no entren en conflicto con el modificador multicursor. [Más información](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Cada cursor pega una única línea del texto.\",\"Cada cursor pega el texto completo.\",\"Controla el pegado cuando el recuento de líneas del texto pegado coincide con el recuento de cursores.\",\"Controla si el editor debe resaltar las apariciones de símbolos semánticos.\",\"Controla si debe dibujarse un borde alrededor de la regla de información general.\",\"Enfocar el árbol al abrir la vista\",\"Enfocar el editor al abrir la inspección\",\"Controla si se debe enfocar el editor en línea o el árbol en el widget de vista.\",\"Controla el retraso, en milisegundos, tras el cual aparecerán sugerencias rápidas.\",\"Controla si el editor debe representar caracteres de control.\",\"Controla si el editor debe representar guías de sangría.\",\"Representar el número de la última línea cuando el archivo termina con un salto de línea.\",\"Resalta el medianil y la línea actual.\",\"Controla cómo debe representar el editor el resaltado de línea actual.\",\"Render whitespace characters except for single spaces between words.\",\"Represente los caracteres de espacio en blanco solo en el texto seleccionado.\",\"Controla la forma en que el editor debe representar los caracteres de espacio en blanco.\",\"Controla si las selecciones deberían tener las esquinas redondeadas.\",\"Controla el número de caracteres adicionales a partir del cual el editor se desplazará horizontalmente.\",\"Controla si el editor seguirá haciendo scroll después de la última línea.\",\"Controla si el portapapeles principal de Linux debe admitirse.\",\"Controla si el editor debe destacar las coincidencias similares a la selección.\",\"Controla cuándo los controles de plegado del margen son ocultados automáticamente.\",\"Controla el fundido de salida del código no usado.\",\"Mostrar sugerencias de fragmentos de código por encima de otras sugerencias.\",\"Mostrar sugerencias de fragmentos de código por debajo de otras sugerencias.\",\"Mostrar sugerencias de fragmentos de código con otras sugerencias.\",\"No mostrar sugerencias de fragmentos de código.\",\"Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.\",\"Controla si el editor se desplazará con una animación.\",\"Tamaño de la fuente para el widget de sugerencias. Cuando se establece a `0`, se utilizará el valor `#editor.fontSize#`.\",\"Altura de la línea del widget de sugerencias. Cuando se establece a `0`, se utiliza el valor `#editor.lineHeight#`.\",\"Controla si deben aparecer sugerencias de forma automática al escribir caracteres desencadenadores.\",\"Seleccionar siempre la primera sugerencia.\",'Seleccione sugerencias recientes a menos que al escribir más se seleccione una, por ejemplo, \"console.| -> console.log\" porque \"log\" se ha completado recientemente.','Seleccione sugerencias basadas en prefijos anteriores que han completado esas sugerencias, por ejemplo, \"co -> console\" y \"con -> const\".',\"Controla cómo se preseleccionan las sugerencias cuando se muestra la lista,\",\"La pestaña se completará insertando la mejor sugerencia de coincidencia encontrada al presionar la pestaña\",\"Deshabilitar los complementos para pestañas.\",\"La pestaña se completa con fragmentos de código cuando su prefijo coincide. Funciona mejor cuando las 'quickSuggestions' no están habilitadas.\",\"Habilita completar pestañas.\",\"La inserción y eliminación del espacio en blanco sigue a las tabulaciones.\",\"Caracteres que se usarán como separadores de palabras al realizar operaciones o navegaciones relacionadas con palabras.\",\"Las líneas no se ajustarán nunca.\",\"Las líneas se ajustarán en el ancho de la ventanilla.\",'Las líneas se ajustarán al valor de \"#editor.wordWrapColumn#\". ','Las líneas se ajustarán al valor que sea inferior: el tamaño de la ventanilla o el valor de \"#editor.wordWrapColumn#\".',\"Controla cómo deben ajustarse las líneas.\",'Controla la columna de ajuste del editor cuando \"#editor.wordWrap#\" es \"wordWrapColumn\" o \"bounded\".',\"No hay sangría. Las líneas ajustadas comienzan en la columna 1.\",\"A las líneas ajustadas se les aplica la misma sangría que al elemento primario.\",\"A las líneas ajustadas se les aplica una sangría de +1 respecto al elemento primario.\",\"A las líneas ajustadas se les aplica una sangría de +2 respecto al elemento primario.\",\"Controla la sangría de las líneas ajustadas.\",\"Se supone que todos los caracteres son del mismo ancho. Este es un algoritmo rápido que funciona correctamente para fuentes monoespaciales y ciertos scripts (como caracteres latinos) donde los glifos tienen el mismo ancho.\",\"Delega el cálculo de puntos de ajuste en el explorador. Es un algoritmo lento, que podría causar bloqueos para archivos grandes, pero funciona correctamente en todos los casos.\",\"Controla el algoritmo que calcula los puntos de ajuste.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Texto sin formato\"],\n\"vs/editor/common/standaloneStrings\":[\"Sin selección\",\"Línea {0}, columna {1} ({2} seleccionadas)\",\"Línea {0}, columna {1}\",\"{0} selecciones ({1} caracteres seleccionados)\",\"{0} selecciones\",'Se cambiará ahora el valor \"accessibilitySupport\" a \"activado\".',\"Se abrirá ahora la página de documentación de accesibilidad del editor.\",\"en un panel de solo lectura de un editor de diferencias.\",\"en un panel de un editor de diferencias.\",\"en un editor de código de solo lectura\",\" en un editor de código\",\"Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Comando+E.\",\"Para configurar el editor de forma que se optimice su uso con un lector de pantalla, presione ahora Control+E.\",\"El editor está configurado para optimizarse para su uso con un lector de pantalla.\",\"El editor está configurado para que no se optimice nunca su uso con un lector de pantalla, que en este momento no es el caso.\",\"Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. Presione {0} para activar o desactivar este comportamiento.\",\"Al presionar TAB en el editor actual, el foco se mueve al siguiente elemento activable. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.\",\"Al presionar TAB en el editor actual, se insertará el carácter de tabulación. Presione {0} para activar o desactivar este comportamiento.\",\"Al presionar TAB en el editor actual, se insertará el carácter de tabulación. El comando {0} no se puede desencadenar actualmente mediante un enlace de teclado.\",\"Presione ahora Comando+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.\",\"Presione ahora Control+H para abrir una ventana del explorador con más información relacionada con la accesibilidad del editor.\",\"Para descartar esta información sobre herramientas y volver al editor, presione Esc o Mayús+Escape.\",\"Mostrar ayuda de accesibilidad\",\"Desarrollador: inspeccionar tokens\",\"Ir a la línea {0} y al carácter {1}\",\"Ir a la línea {0}\",\"Escriba un número de línea comprendido entre 1 y {0} a la cual quiera navegar.\",\"Escriba un carácter entre 1 y {0} para ir a\",\"Línea actual: {0}. ir a la línea {1}.\",\"Escriba un número de línea, seguido de un signo opcional de dos puntos y un número de caracteres para desplazarse a\",\"Ir a la línea...\",\"{0}, {1}, comandos\",\"{0}, comandos\",\"Escriba el nombre de una acción que desee ejecutar\",\"Paleta de comandos\",\"{0}, símbolos\",\"Escriba el nombre de un identificador al que quiera ir\",\"Ir a símbolo...\",\"símbolos ({0})\",\"módulos ({0})\",\"clases ({0})\",\"interfaces ({0})\",\"métodos ({0})\",\"funciones ({0})\",\"propiedades ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructores ({0})\",\"llama a ({0})\",\"Contenido del editor\",\"Presione Ctrl+F1 para ver las opciones de accesibilidad.\",\"Presione Alt+F1 para ver las opciones de accesibilidad.\",\"Alternar tema de contraste alto\",\"{0} ediciones realizadas en {1} archivos\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Color de fondo para la línea resaltada en la posición del cursor.\",\"Color de fondo del borde alrededor de la línea en la posición del cursor.\",\"Color de fondo de rangos resaltados, como en abrir rápido y encontrar características. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo del borde alrededor de los intervalos resaltados.\",\"Color de fondo del símbolo destacado, como Ir a definición o Ir al siguiente/anterior símbolo. El color no debe ser opaco para no ocultar la decoración subyacente.\",\"Color de fondo del borde alrededor de los símbolos resaltados.\",\"Color del cursor del editor.\",\"Color de fondo del cursor de edición. Permite personalizar el color del caracter solapado por el bloque del cursor.\",\"Color de los caracteres de espacio en blanco del editor.\",\"Color de las guías de sangría del editor.\",\"Color de las guías de sangría activas del editor.\",\"Color de números de línea del editor.\",\"Color del número de línea activa en el editor\",\"ID es obsoleto. Usar en lugar 'editorLineNumber.activeForeground'. \",\"Color del número de línea activa en el editor\",\"Color de las reglas del editor\",\"Color principal de lentes de código en el editor\",\"Color de fondo tras corchetes coincidentes\",\"Color de bloques con corchetes coincidentes\",\"Color del borde de la regla de visión general.\",\"Color de fondo del margen del editor. Este espacio contiene los márgenes de glifos y los números de línea.\",\"Color del borde de código fuente innecesario (sin usar) en el editor.\",\"Opacidad de código fuente innecesario (sin usar) en el editor. Por ejemplo, \\\"#000000c0\\\" representará el código con un 75 % de opacidad. Para temas de alto contraste, utilice el color del tema 'editorUnnecessaryCode.border' para resaltar el código innecesario en vez de atenuarlo.\",\"Color de marcador de regla de información general para errores. \",\"Color de marcador de regla de información general para advertencias.\",\"Color de marcador de regla de información general para mensajes informativos. \"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Resumen color de marcador de regla para corchetes.\",\"Ir al corchete\",\"Seleccionar para corchete\",\"Ir al &&corchete\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Mover símbolo de inserción a la izquierda\",\"Mover símbolo de inserción a la derecha\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transponer letras\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Cortar\",\"Cor&&tar\",\"Copiar\",\"C&&opiar\",\"Pegar\",\"&&Pegar\",\"Copiar con resaltado de sintaxis\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Tipo de la acción de código que se va a ejecutar.\",\"Controla cuándo se aplican las acciones devueltas.\",\"Aplicar siempre la primera acción de código devuelto.\",\"Aplicar la primera acción de código devuelta si solo hay una.\",\"No aplique las acciones de código devuelto.\",\"Controla si solo se deben devolver las acciones de código preferidas.\",\"Se ha producido un error desconocido al aplicar la acción de código\",\"Corrección Rápida\",\"No hay acciones de código disponibles\",'No hay acciones de código preferidas para \"{0}\" disponibles','No hay ninguna acción de código para \"{0}\" disponible.',\"No hay acciones de código preferidas disponibles\",\"No hay acciones de código disponibles\",\"Refactorizar...\",'No hay refactorizaciones preferidas de \"{0}\" disponibles','No hay refactorizaciones de \"{0}\" disponibles',\"No hay ninguna refactorización favorita disponible.\",\"No hay refactorizaciones disponibles\",\"Acción de Origen...\",'No hay acciones de origen preferidas para \"{0}\" disponibles','No hay ninguna acción de origen para \"{0}\" disponible.',\"No hay ninguna acción de origen favorita disponible.\",\"No hay acciones de origen disponibles\",\"Organizar Importaciones\",\"No hay acciones de importación disponibles\",\"Corregir todo\",\"No está disponible la acción de corregir todo\",\"Corregir automáticamente...\",\"No hay autocorrecciones disponibles\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Mostrar correcciones. Solución preferida disponible ({0})\",\"Mostrar correcciones ({0})\",\"Mostrar correcciones\"],\"vs/editor/contrib/comment/comment\":[\"Alternar comentario de línea\",\"&&Alternar comentario de línea\",\"Agregar comentario de línea\",\"Quitar comentario de línea\",\"Alternar comentario de bloque\",\"Alternar &&bloque de comentario\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Mostrar menú contextual del editor\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursor Deshacer\",\"Cursor Rehacer\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Color de primer plano de los símbolos de matriz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos booleanos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de clase. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de color. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos constantes. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de constructor. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de miembro del enumerador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de evento. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de campo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de archivo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de carpeta. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de función. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de interfaz. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de claves. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de palabra clave. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de método. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de módulo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de espacio de nombres. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos nulos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos numéricos. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de objeto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos del operador. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de paquete. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de propiedad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de referencia. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de fragmento de código. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de cadena. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de estructura. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de texto. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano para los símbolos de parámetro de tipo. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos de unidad. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\",\"Color de primer plano de los símbolos variables. Estos símbolos aparecen en el contorno, la ruta de navegación y el widget de sugerencias.\"],\n\"vs/editor/contrib/find/findController\":[\"Buscar\",\"&&Buscar\",\"Buscar con selección\",\"Buscar siguiente\",\"Buscar siguiente\",\"Buscar anterior\",\"Buscar anterior\",\"Buscar selección siguiente\",\"Buscar selección anterior\",\"Reemplazar\",\"&&Reemplazar\"],\"vs/editor/contrib/find/findWidget\":[\"Buscar\",\"Buscar\",\"Coincidencia anterior\",\"Próxima coincidencia\",\"Buscar en selección\",\"Cerrar\",\"Reemplazar\",\"Reemplazar\",\"Reemplazar\",\"Reemplazar todo\",\"Alternar modo de reemplazar\",\"Sólo los primeros {0} resultados son resaltados, pero todas las operaciones de búsqueda trabajan en todo el texto.\",\"{0} de {1}\",\"No hay resultados\",\"Encontrados: {0}\",\"Encontrados: {0} para {1}\",\"Encontrados: {0} para {1} en {2}\",\"Encontrados: {0} para {1}\",\"Ctrl+Entrar ahora inserta un salto de línea en lugar de reemplazar todo. Puede modificar el enlace de claves para editor.action.replaceAll para invalidar este comportamiento.\"],\n\"vs/editor/contrib/folding/folding\":[\"Desplegar\",\"Desplegar de forma recursiva\",\"Plegar\",\"Alternar plegado\",\"Plegar de forma recursiva\",\"Cerrar todos los comentarios de bloque\",\"Plegar todas las regiones\",\"Desplegar Todas las Regiones\",\"Plegar todo\",\"Desplegar todo\",\"Nivel de plegamiento {0}\",\"Color de la selección del editor.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Acercarse a la tipografía del editor\",\"Alejarse de la tipografía del editor\",\"Restablecer alejamiento de la tipografía del editor\"],\"vs/editor/contrib/format/format\":[\"1 edición de formato en la línea {0}\",\"{0} ediciones de formato en la línea {1}\",\"1 edición de formato entre las líneas {0} y {1}\",\"{0} ediciones de formato entre las líneas {1} y {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Dar formato al documento\",\"Dar formato a la selección\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Ir al siguiente problema (Error, Advertencia, Información)\",\"Ir al problema anterior (Error, Advertencia, Información)\",\"Ir al siguiente problema en Archivos (Error, Advertencia, Información)\",\"Ir al problema anterior en Archivos (Error, Advertencia, Información)\",\"Siguiente &&problema\",\"Anterior &&problema\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} de {1} problemas\",\"{0} de {1} problema\",\"Color de los errores del widget de navegación de marcadores del editor.\",\"Color de las advertencias del widget de navegación de marcadores del editor.\",\"Color del widget informativo marcador de navegación en el editor.\",\"Fondo del widget de navegación de marcadores del editor.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Ver\",\"Definiciones\",'No se encontró ninguna definición para \"{0}\"',\"No se encontró ninguna definición\",\"Ir a definición\",\"Ir a &&definición\",\"Abrir definición en el lateral\",\"Ver la definición\",\"Declaraciones\",\"No se encontró ninguna definición para '{0}'\",\"No se encontró ninguna declaración\",\"Ir a Definición\",\"Ir a &&Declaración\",\"No se encontró ninguna definición para '{0}'\",\"No se encontró ninguna declaración\",\"Inspeccionar Definición\",\"Definiciones de tipo\",'No se encontró ninguna definición de tipo para \"{0}\"',\"No se encontró ninguna definición de tipo\",\"Ir a la definición de tipo\",\"Ir a la definición de &&tipo\",\"Inspeccionar definición de tipo\",\"Implementaciones\",'No se encontró ninguna implementación para \"{0}\"',\"No se encontró ninguna implementación\",\"Ir a Implementaciones\",\"Ir a &&Implementaciones\",\"Inspeccionar implementaciones\",'No se ha encontrado ninguna referencia para \"{0}\".',\"No se encontraron referencias\",\"Ir a Referencias\",\"Ir a &&Referencias\",\"Referencias\",\"Inspeccionar Referencias\",\"Referencias\",\"Ir a cualquier símbolo\",\"Ubicaciones\",'No hay ningún resultado para \"{0}\".',\"Referencias\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Haga clic para mostrar {0} definiciones.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Cargando...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Error al resolver el archivo.\",\"{0} referencias\",\"{0} referencia\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"vista previa no disponible\",\"Referencias\",\"No hay resultados\",\"Referencias\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"símbolo en {0} linea {1} en la columna {2}\",\"1 símbolo en {0}, ruta de acceso completa {1}\",\"{0} símbolos en {1}, ruta de acceso completa {2}\",\"No se encontraron resultados\",\"Encontró 1 símbolo en {0}\",\"Encontró {0} símbolos en {1}\",\"Encontró {0} símbolos en {1} archivos\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Símbolo {0} de {1}, {2} para el siguiente\",\"Símbolo {0} de {1}\"],\"vs/editor/contrib/hover/hover\":[\"Mostrar al mantener el puntero\",\"Mostrar vista previa de la definición que aparece al mover el puntero\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Cargando...\",\"Ver problema\",\"Buscando correcciones rápidas...\",\"No hay correcciones rápidas disponibles\",\"Corrección Rápida\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Reemplazar con el valor anterior\",\"Reemplazar con el valor siguiente\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copiar línea arriba\",\"&&Copiar línea arriba\",\"Copiar línea abajo\",\"Co&&piar línea abajo\",\"Selección duplicada\",\"&&Duplicar selección\",\"Mover línea hacia arriba\",\"Mo&&ver línea arriba\",\"Mover línea hacia abajo\",\"Mover &&línea abajo\",\"Ordenar líneas en orden ascendente\",\"Ordenar líneas en orden descendente\",\"Recortar espacio final\",\"Eliminar línea\",\"Sangría de línea\",\"Anular sangría de línea\",\"Insertar línea arriba\",\"Insertar línea debajo\",\"Eliminar todo a la izquierda\",\"Eliminar todo lo que está a la derecha\",\"Unir líneas\",\"Transponer caracteres alrededor del cursor\",\"Transformar a mayúsculas\",\"Transformar a minúsculas\",\"Transformar en Title Case\"],\n\"vs/editor/contrib/links/links\":[\"Ejecutar comando\",\"Seguir vínculo\",\"cmd + clic\",\"ctrl + clic\",\"opción + clic\",\"alt + clic\",\"No se pudo abrir este vínculo porque no tiene un formato correcto: {0}\",\"No se pudo abrir este vínculo porque falta el destino.\",\"Abrir vínculo\"],\"vs/editor/contrib/message/messageController\":[\"No se puede editar en un editor de sólo lectura\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Agregar cursor arriba\",\"&&Agregar cursor arriba\",\"Agregar cursor debajo\",\"A&&gregar cursor abajo\",\"Añadir cursores a finales de línea\",\"Agregar c&&ursores a extremos de línea\",\"Añadir cursores a la parte inferior\",\"Añadir cursores a la parte superior\",\"Agregar selección hasta la siguiente coincidencia de búsqueda\",\"Agregar &&siguiente repetición\",\"Agregar selección hasta la anterior coincidencia de búsqueda\",\"Agregar r&&epetición anterior\",\"Mover última selección hasta la siguiente coincidencia de búsqueda\",\"Mover última selección hasta la anterior coincidencia de búsqueda\",\"Seleccionar todas las repeticiones de coincidencia de búsqueda\",\"Seleccionar todas las &&repeticiones\",\"Cambiar todas las ocurrencias\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Sugerencias para parámetros Trigger\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, sugerencia\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Cerrar\",\"Color de fondo del área de título de la vista de inspección.\",\"Color del título de la vista de inpección.\",\"Color de la información del título de la vista de inspección.\",\"Color de los bordes y la flecha de la vista de inspección.\",\"Color de fondo de la lista de resultados de vista de inspección.\",\"Color de primer plano de los nodos de inspección en la lista de resultados.\",\"Color de primer plano de los archivos de inspección en la lista de resultados.\",\"Color de fondo de la entrada seleccionada en la lista de resultados de vista de inspección.\",\"Color de primer plano de la entrada seleccionada en la lista de resultados de vista de inspección.\",\"Color de fondo del editor de vista de inspección.\",\"Color de fondo del margen en el editor de vista de inspección.\",\"Buscar coincidencia con el color de resaltado de la lista de resultados de vista de inspección.\",\"Buscar coincidencia del color de resultado del editor de vista de inspección.\",\"Hacer coincidir el borde resaltado en el editor de vista previa.\"],\n\"vs/editor/contrib/rename/rename\":[\"No hay ningún resultado.\",\"Error desconocido al resolver el cambio de nombre de la ubicación\",'Cambiando el nombre de \"{0}\"',\"Nombre cambiado correctamente de '{0}' a '{1}'. Resumen: {2}\",\"No se pudo cambiar el nombre a las ediciones de aplicación\",\"No se pudo cambiar el nombre de las ediciones de cálculo\",\"Cambiar el nombre del símbolo\",\"Activar/desactivar la capacidad de previsualizar los cambios antes de cambiar el nombre\"],\"vs/editor/contrib/rename/renameInputField\":[\"Cambie el nombre de la entrada. Escriba el nuevo nombre y presione Entrar para confirmar.\",\"{0} para cambiar el nombre, {1} para obtener una vista previa\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Expandir selección\",\"&&Expandir selección\",\"Reducir la selección\",\"&&Reducir selección\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Domingo\",\"Lunes\",\"Martes\",\"Miércoles\",\"Jueves\",\"Viernes\",\"Sábado\",\"Dom\",\"Lun\",\"Mar\",\"Mié\",\"Jue\",\"Vie\",\"Sáb\",\"Enero\",\"Febrero\",\"Marzo\",\"Abril\",\"May\",\"Junio\",\"Julio\",\"Agosto\",\"Septiembre\",\"Octubre\",\"Noviembre\",\"Diciembre\",\"Ene\",\"Feb\",\"Mar\",\"Abr\",\"May\",\"Jun\",\"Jul\",\"Ago\",\"Sep\",\"Oct\",\"Nov\",\"Dic\"],\"vs/editor/contrib/suggest/suggestController\":['Aceptando \"{0}\" ediciones adicionales de {1} realizadas',\"Sugerencias para Trigger\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Color de fondo del widget sugerido.\",\"Color de borde del widget sugerido.\",\"Color de primer plano del widget sugerido.\",\"Color de fondo de la entrada seleccionada del widget sugerido.\",\"Color del resaltado coincidido en el widget sugerido.\",\"Leer más...{0}\",\"Leer menos...{0}\",\"Cargando...\",\"Cargando...\",\"No hay sugerencias.\",\"{0} por menos...\",\"{0} para más...\",\"Elemento {0}, documentos: {1}\",\"{0} para insertar, {1} para reemplazar\",\"{0} para reemplazar, {1} para insertar\",\"{0} para aceptar\"],\n\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Alternar tecla de tabulación para mover el punto de atención\",\"Presionando la pestaña ahora moverá el foco al siguiente elemento enfocable.\",\"Presionando la pestaña ahora insertará el carácter de tabulación\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Desarrollador: forzar nueva aplicación de token\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Color de fondo de un símbolo durante el acceso de lectura, como la lectura de una variable. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo de un símbolo durante el acceso de escritura, como escribir en una variable. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de fondo de un símbolo durante el acceso de lectura; por ejemplo, cuando se lee una variable.\",\"Color de fondo de un símbolo durante el acceso de escritura; por ejemplo, cuando se escribe una variable.\",\"Color del marcador de regla general para destacados de símbolos. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de marcador de regla general para destacados de símbolos de acceso de escritura. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Ir al siguiente símbolo destacado\",\"Ir al símbolo destacado anterior\",\"Desencadenar los símbolos destacados\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"La configuración predeterminada se reemplaza\",\"Establecer los valores de configuración que se reemplazarán para un lenguaje.\",\"Esta configuración no admite la configuración por idioma.\",'No se puede registrar \"{0}\". Coincide con el patrón de propiedad \\'\\\\\\\\[.*\\\\\\\\]$\\' para describir la configuración del editor específica del lenguaje. Utilice la contribución \"configurationDefaults\".','No se puede registrar \"{0}\". Esta propiedad ya está registrada.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Se presionó ({0}). Esperando la siguiente tecla...\",\"La combinación de teclas ({0}, {1}) no es ningún comando.\"],\n\"vs/platform/list/browser/listService\":[\"Área de trabajo\",'Se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS.','Se asigna a \"Alt\" en Windows y Linux y a \"Opción\" en macOS.',\"El modificador que se utilizará para agregar un elemento en los árboles y listas para una selección múltiple con el ratón (por ejemplo en el explorador, abiertos editores y vista de scm). Los gestos de ratón 'Abrir hacia' - si están soportados - se adaptarán de forma tal que no tenga conflicto con el modificador múltiple.\",\"Controla cómo abrir elementos en árboles y listas usando el ratón (si está soportado). Para elementos padres con hijos en los árboles, esta configuración controlará si de un solo click o un doble click expande al elemento padre. Tenga en cuenta que algunos árboles y listas pueden optar por ignorar esta configuración si no se aplica.\",\"Controla si las listas y los árboles admiten el desplazamiento horizontal en el área de trabajo.\",\"Controla el esplazamiento horizontal de los árboles en la mesa de trabajo.\",'Esta configuración está obsoleta, utilice \"{0}\" en su lugar.',\"Controla la sangría de árbol en píxeles.\",\"Controla si el árbol debe representar guías de sangría.\",\"La navegación simple del teclado se centra en elementos que coinciden con la entrada del teclado. El emparejamiento se hace solo en prefijos.\",\"Destacar la navegación del teclado resalta los elementos que coinciden con la entrada del teclado. Más arriba y abajo la navegación atravesará solo los elementos destacados.\",\"La navegación mediante el teclado de filtro filtrará y ocultará todos los elementos que no coincidan con la entrada del teclado.\",\"Controla el estilo de navegación del teclado para listas y árboles en el área de trabajo. Puede ser simple, resaltar y filtrar.\",'Controla si la navegación del teclado en listas y árboles se activa automáticamente simplemente escribiendo. Si se establece en \"false\", la navegación con el teclado solo se activa al ejecutar el comando \"list.toggleKeyboardNavigation\", para el cual puede asignar un método abreviado de teclado.'],\n\"vs/platform/markers/common/markers\":[\"Error\",\"Advertencia\",\"Información\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Color de primer plano general. Este color solo se usa si un componente no lo invalida.\",\"Color de primer plano general para los mensajes de erroe. Este color solo se usa si un componente no lo invalida.\",\"Color de borde de los elementos con foco. Este color solo se usa si un componente no lo invalida.\",\"Un borde adicional alrededor de los elementos para separarlos unos de otros y así mejorar el contraste.\",\"Un borde adicional alrededor de los elementos activos para separarlos unos de otros y así mejorar el contraste.\",\"Color de primer plano para los vínculos en el texto.\",\"Color de fondo para los bloques de código en el texto.\",\"Color de sombra de los widgets  dentro del editor, como buscar/reemplazar\",\"Fondo de cuadro de entrada.\",\"Primer plano de cuadro de entrada.\",\"Borde de cuadro de entrada.\",\"Color de borde de opciones activadas en campos de entrada.\",\"Color de fondo de las opciones activadas en los campos de entrada.\",\"Color de fondo de validación de entrada para gravedad de información.\",\"Color de primer plano de validación de entrada para información de gravedad.\",\"Color de borde de validación de entrada para gravedad de información.\",\"Color de fondo de validación de entrada para gravedad de advertencia.\",\"Color de primer plano de validación de entrada para información de advertencia.\",\"Color de borde de validación de entrada para gravedad de advertencia.\",\"Color de fondo de validación de entrada para gravedad de error.\",\"Color de primer plano de validación de entrada para información de error.\",\"Color de borde de valdación de entrada para gravedad de error.\",\"Fondo de lista desplegable.\",\"Primer plano de lista desplegable.\",\"Selector de color rápido para la agrupación de etiquetas.\",\"Selector de color rápido para la agrupación de bordes.\",\"Color de fondo de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.\",\"Color de primer plano de la insignia. Las insignias son pequeñas etiquetas de información, por ejemplo los resultados de un número de resultados.\",\"Sombra de la barra de desplazamiento indica que la vista se ha despazado.\",\"Color de fondo de control deslizante de barra de desplazamiento.\",\"Color de fondo de barra de desplazamiento cursor cuando se pasar sobre el control.\",\"Color de fondo de la barra de desplazamiento al hacer clic.\",\"Color de fondo para la barra de progreso que se puede mostrar para las operaciones de larga duración.\",\"Color de primer plano de squigglies de error en el editor.\",\"Color del borde de los cuadros de error en el editor.\",\"Color de primer plano de squigglies de advertencia en el editor.\",\"Color del borde de los cuadros de advertencia en el editor.\",\"Color de primer plano de los subrayados ondulados informativos en el editor.\",\"Color del borde de los cuadros de información en el editor.\",\"Color de primer plano de pista squigglies en el editor.\",\"Color del borde de los cuadros de sugerencia en el editor.\",\"Color de fondo del editor.\",\"Color de primer plano predeterminado del editor.\",\"Color de fondo del editor de widgets como buscar/reemplazar\",\"Color de primer plano de los widgets del editor, como buscar y reemplazar.\",\"Color de borde de los widgets del editor. El color solo se usa si el widget elige tener un borde y no invalida el color.\",\"Color del borde de la barra de cambio de tamaño de los widgets del editor. El color se utiliza solo si el widget elige tener un borde de cambio de tamaño y si un widget no invalida el color.\",\"Color de la selección del editor.\",\"Color del texto seleccionado para alto contraste.\",\"Color de la selección en un editor inactivo. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color en las regiones con el mismo contenido que la selección. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de borde de las regiones con el mismo contenido que la selección.\",\"Color de la coincidencia de búsqueda actual.\",\"Color de los otros resultados de la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de borde de la coincidencia de búsqueda actual.\",\"Color de borde de otra búsqueda que coincide.\",\"Color del borde de la gama que limita la búsqueda. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Destacar debajo de la palabra para la que se muestra un mensaje al mantener el mouse. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de fondo al mantener el puntero en el editor.\",\"Color de primer plano al mantener el puntero en el editor.\",\"Color del borde al mantener el puntero en el editor.\",\"Color de fondo de la barra de estado al mantener el puntero en el editor.\",\"Color de los vínculos activos.\",\"El color utilizado para el icono de bombilla de acciones.\",\"El color utilizado para el icono de la bombilla de acciones de corrección automática.\",\"Color de fondo para el texto que se insertó. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de fondo para el texto que se eliminó. El color no debe ser opaco para no ocultar decoraciones subyacentes.\",\"Color de contorno para el texto insertado.\",\"Color de contorno para el texto quitado.\",\"Color del borde entre ambos editores de texto.\",\"Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están activos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de fondo de la lista o el árbol del elemento seleccionado cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, cuando están inactivos no.\",\"Color de primer plano de la lista o el árbol del elemento con el foco cuando la lista o el árbol esta inactiva. Una lista o un árbol tiene el foco del teclado cuando está activo, cuando esta inactiva no.\",\"Color de fondo de la lista o el árbol del elemento con el foco cuando la lista o el árbol están inactivos. Una lista o un árbol tienen el foco del teclado cuando están activos, pero no cuando están inactivos.\",\"Fondo de la lista o el árbol al mantener el mouse sobre los elementos.\",\"Color de primer plano de la lista o el árbol al pasar por encima de los elementos con el ratón.\",\"Fondo de arrastrar y colocar la lista o el árbol al mover los elementos con el mouse.\",\"Color de primer plano de la lista o el árbol de las coincidencias resaltadas al buscar dentro de la lista o el ábol.\",\"Color de fondo del widget de filtro de tipo en listas y árboles.\",\"Color de contorno del widget de filtro de tipo en listas y árboles.\",\"Color de contorno del widget de filtro de tipo en listas y árboles, cuando no hay coincidencias.\",\"Color de trazo de árbol para las guías de sangría.\",\"Color del borde de los menús.\",\"Color de primer plano de los elementos de menú.\",\"Color de fondo de los elementos de menú.\",\"Color de primer plano del menu para el elemento del menú seleccionado.\",\"Color de fondo del menu para el elemento del menú seleccionado.\",\"Color del borde del elemento seleccionado en los menús.\",\"Color del separador del menu para un elemento del menú.\",\"Resaltado del color de fondo para una ficha de un fragmento de código.\",\"Resaltado del color del borde para una ficha de un fragmento de código.\",\"Resaltado del color de fondo para la última ficha de un fragmento de código.\",\"Resaltado del color del borde para la última ficha de un fragmento de código.\",\"Color del marcador de regla general para buscar actualizaciones. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color del marcador de la regla general para los destacados de la selección. El color no debe ser opaco para no ocultar las decoraciones subyacentes.\",\"Color de marcador de minimapa para coincidencias de búsqueda.\",\"Color del marcador de minimapa para la selección del editor.\",\"Color del marcador de minimapa para errores.\",\"Color del marcador de minimapa para advertencias.\",\"Color utilizado para el icono de error de problemas.\",\"Color utilizado para el icono de advertencia de problemas.\",\"Color utilizado para el icono de información de problemas.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.es.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.fr.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.fr\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (s'est reproduit)\",\"{0} (survenu {1} fois)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Entrée\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Respecter la casse\",\"Mot entier\",\"Utiliser une expression régulière\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Entrée\",\"Préserver la casse\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Erreur : {0}\",\"Avertissement : {0}\",\"Info : {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Indépendant\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Utiliser les touches de navigation pour naviguer.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Effacer\",\"Désactiver le filtre sur le type\",\"Activer le filtre sur le type\",\"Aucun élément\",\"{0} éléments sur {1} correspondants\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Maj\",\"Alt\",\"Windows\",\"Ctrl\",\"Maj\",\"Alt\",\"Super\",\"Contrôle\",\"Maj\",\"Alt\",\"Commande\",\"Contrôle\",\"Maj\",\"Alt\",\"Windows\",\"Contrôle\",\"Maj\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Erreur\",\"Avertissement\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, sélecteur\",\"sélecteur\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Sélecteur rapide. Tapez pour réduire les résultats.\",\"Sélecteur rapide\",\"{0} résultats\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Sélectionner tout\",\"Ann&&uler\",\"&&Rétablir\"],\"vs/editor/browser/controller/textAreaHandler\":[\"L'éditeur n'est pas accessible pour le moment. Appuyez sur Alt+F1 pour connaître les options.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Le nombre de curseurs a été limité à {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Impossible de comparer les fichiers car l'un d'eux est trop volumineux.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Fermer\",\"aucune ligne\",\"1 ligne\",\"{0} lignes\",\"Différence {0} sur {1} : original {2}, {3}, modifié {4}, {5}\",\"vide\",\"{0} d'origine, {1} modifiées : {2}\",\"+ {0} modifiées : {1}\",\"- {0} d'origine : {1}\",\"Accéder à la différence suivante\",\"Accéder la différence précédente\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copier les lignes supprimées\",\"Copier la ligne supprimée\",\"Copier la ligne supprimée ({0})\",\"Annuler la modification\",\"Copier la ligne supprimée ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Éditeur\",\"Le nombre d'espaces auxquels une tabulation est égale. Ce paramètre est substitué basé sur le contenu du fichier lorsque `#editor.detectIndentation#` est à 'on'.\",\"Espaces insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand '#editor.detectIndentation#' est activé.\",\"Contrôle si '#editor.tabSize#' et '#editor.insertSpaces#' sont automatiquement détectés lors de l’ouverture d’un fichier en fonction de son contenu.\",\"Supprimer l'espace blanc de fin inséré automatiquement.\",\"Traitement spécial des fichiers volumineux pour désactiver certaines fonctionnalités utilisant beaucoup de mémoire.\",\"Contrôle si la saisie semi-automatique doit être calculée en fonction des mots présents dans le document.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap. \",\"Les lignes plus longues que cette valeur ne sont pas tokenisées pour des raisons de performances\",\"Délai d'expiration en millisecondes avant annulation du calcul de diff. Utilisez 0 pour supprimer le délai d'expiration.\",\"Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline.\",\"Contrôle si l'éditeur de différences affiche les changements liés aux espaces blancs de début ou de fin comme des différences.\",\"Contrôle si l'éditeur de différences affiche les indicateurs +/- pour les changements ajoutés/supprimés .\"],\n\"vs/editor/common/config/editorOptions\":[\"L'éditeur utilise les API de la plateforme pour détecter si un lecteur d'écran est attaché.\",\"L'éditeur est optimisé en permanence pour une utilisation avec un lecteur d'écran.\",\"L'éditeur n'est jamais optimisé pour une utilisation avec un lecteur d'écran.\",\"Contrôle si l'éditeur doit s'exécuter dans un mode optimisé pour les lecteurs d'écran.\",\"Contrôle si un espace est inséré pour les commentaires.\",\"Contrôle si la copie sans sélection permet de copier la ligne actuelle.\",\"Détermine si la chaîne de recherche dans le Widget Recherche est initialisée avec la sélection de l’éditeur.\",\"Ne jamais activer Rechercher automatiquement dans la sélection (par défaut)\",\"Toujours activer Rechercher automatiquement dans la sélection\",\"Activez Rechercher automatiquement dans la sélection quand plusieurs lignes de contenu sont sélectionnées.\",\"Contrôle si l’opération de recherche est effectuée sur le texte sélectionné ou sur l’intégralité du fichier dans l’éditeur.\",\"Détermine si le Widget Recherche devrait lire ou modifier le presse-papiers de recherche partagé sur macOS.\",\"Contrôle si le widget Recherche doit ajouter des lignes supplémentaires en haut de l'éditeur. Quand la valeur est true, vous pouvez faire défiler au-delà de la première ligne si le widget Recherche est visible.\",\"Active/désactive les ligatures de police.\",\"Paramètres de fonctionnalité de police explicites.\",\"Configure les ligatures de police.\",\"Contrôle la taille de police en pixels.\",\"Montrer l'aperçu des résultats (par défaut)\",\"Accéder au résultat principal et montrer un aperçu\",\"Accéder au résultat principal et activer l'accès sans aperçu pour les autres\",\"Ce paramètre est déprécié, utilisez des paramètres distincts comme 'editor.editor.gotoLocation.multipleDefinitions' ou 'editor.editor.gotoLocation.multipleImplementations' à la place.\",\"Contrôle le comportement de la commande 'Atteindre la définition' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre la définition de type' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre la déclaration' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre les implémentations' quand plusieurs emplacements cibles existent.\",\"Contrôle le comportement de la commande 'Atteindre les références' quand plusieurs emplacements cibles existent.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la définition de type' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la déclaration' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre l'implémentation' est l'emplacement actuel.\",\"ID de commande alternatif exécuté quand le résultat de 'Atteindre la référence' est l'emplacement actuel.\",\"Contrôle si le pointage est affiché.\",\"Contrôle le délai en millisecondes, après lequel le survol est affiché.\",\"Contrôle si le pointage doit rester visible quand la souris est déplacée au-dessus.\",\"Active l’ampoule d’action de code dans l’éditeur.\",\"Contrôle la hauteur de ligne. Utilisez 0 pour calculer la hauteur de ligne de la taille de la police.\",\"Contrôle si la minimap est affichée.\",\"Contrôle le côté où afficher la minimap.\",\"Contrôle quand afficher le curseur du minimap.\",\"Échelle du contenu dessiné dans le minimap.\",\"Afficher les caractères réels sur une ligne par opposition aux blocs de couleur.\",\"Limiter la largeur de la minimap pour afficher au plus un certain nombre de colonnes.\",\"Active une fenêtre contextuelle qui affiche de la documentation sur les paramètres et des informations sur les types à mesure que vous tapez.\",\"Détermine si le menu de suggestions de paramètres se ferme ou reviens au début lorsque la fin de la liste est atteinte.\",\"Activez les suggestions rapides dans les chaînes.\",\"Activez les suggestions rapides dans les commentaires.\",\"Activez les suggestions rapides en dehors des chaînes et des commentaires.\",\"Contrôle si les suggestions doivent apparaître automatiquement pendant la saisie.\",\"Les numéros de ligne ne sont pas affichés.\",\"Les numéros de ligne sont affichés en nombre absolu.\",\"Les numéros de ligne sont affichés sous la forme de distance en lignes à la position du curseur.\",\"Les numéros de ligne sont affichés toutes les 10 lignes.\",\"Contrôle l'affichage des numéros de ligne.\",\"Rendre les règles verticales après un certain nombre de caractères à espacement fixe. Utiliser plusieurs valeurs pour plusieurs règles. Aucune règle n'est dessinée si le tableau est vide.\",\"Insérez une suggestion sans remplacer le texte à droite du curseur.\",\"Insérez une suggestion et remplacez le texte à droite du curseur.\",\"Contrôle si les mots sont remplacés en cas d'acceptation de la saisie semi-automatique. Notez que cela dépend des extensions adhérant à cette fonctionnalité.\",\"Contrôle si les modifications de texte inattendues en cas d'acceptation de la complétion doivent être mises en surbrillance, par exemple 'insertMode' est défini sur 'replace', mais la complétion prend seulement en charge 'insert'.\",\"Détermine si le filtre et le tri des suggestions doivent prendre en compte les fautes de frappes mineures.\",\"Contrôle si le tri favorise trier les mots qui apparaissent près du curseur.\",\"Contrôle si les sélections de suggestion mémorisées sont partagées entre plusieurs espaces de travail et fenêtres (nécessite '#editor.suggestSelection#').\",\"Contrôler si un extrait de code actif empêche les suggestions rapides.\",\"Contrôle s'il faut montrer ou masquer les icônes dans les suggestions.\",\"Contrôle le nombre de suggestions IntelliSense affichées avant de montrer une barre de défilement (15 maximum).\",\"Ce paramètre est déprécié, veuillez utiliser des paramètres distincts comme 'editor.suggest.showKeywords' ou 'editor.suggest.showSnippets' à la place.\",\"Si activé, IntelliSense montre des suggestions de type 'method'.\",\"Si activé, IntelliSense montre des suggestions de type 'function'.\",\"Si activé, IntelliSense montre des suggestions de type 'constructor'.\",\"Si activé, IntelliSense montre des suggestions de type 'field'.\",\"Si activé, IntelliSense montre des suggestions de type 'variable'.\",\"Si activé, IntelliSense montre des suggestions de type 'class'.\",\"Si activé, IntelliSense montre des suggestions de type 'struct'.\",\"Si activé, IntelliSense montre des suggestions de type 'interface'.\",\"Si activé, IntelliSense montre des suggestions de type 'module'.\",\"Si activé, IntelliSense montre des suggestions de type 'property'.\",\"Si activé, IntelliSense montre des suggestions de type 'event'.\",\"Si activé, IntelliSense montre des suggestions de type 'operator'.\",\"Si activé, IntelliSense montre des suggestions de type 'unit'.\",\"Si activé, IntelliSense montre des suggestions de type 'value'.\",\"Si activé, IntelliSense montre des suggestions de type 'constant'.\",\"Si activé, IntelliSense montre des suggestions de type 'enum'.\",\"Si activé, IntelliSense montre des suggestions de type 'enumMember'.\",\"Si activé, IntelliSense montre des suggestions de type 'keyword'.\",\"Si activé, IntelliSense montre des suggestions de type 'text'.\",\"Si activé, IntelliSense montre des suggestions de type 'color'.\",\"Si activé, IntelliSense montre des suggestions de type 'file'.\",\"Si activé, IntelliSense montre des suggestions de type 'reference'.\",\"Si activé, IntelliSense montre des suggestions de type 'customcolor'.\",\"Si activé, IntelliSense montre des suggestions de type 'folder'.\",\"Si activé, IntelliSense montre des suggestions de type 'typeParameter'.\",\"Si activé, IntelliSense montre des suggestions de type 'snippet'.\",\"Contrôle la visibilité de la barre d'état en bas du widget de suggestion.\",\"Contrôle si les suggestions doivent être acceptées sur les caractères de validation. Par exemple, en JavaScript, le point-virgule (`;`) peut être un caractère de validation qui accepte une suggestion et tape ce caractère.\",\"Accepter uniquement une suggestion avec 'Entrée' quand elle effectue une modification textuelle.\",\"Contrôle si les suggestions sont acceptées après appui sur 'Entrée', en plus de 'Tab'. Permet d’éviter toute ambiguïté entre l’insertion de nouvelles lignes et l'acceptation de suggestions.\",\"Contrôle le nombre de lignes dans l'éditeur qui peuvent être lues par un lecteur d'écran. Avertissement : Ce paramètre a une incidence sur les performances quand le nombre est supérieur à la valeur par défaut.\",\"Contenu d'éditeur\",\"Utilisez les configurations de langage pour déterminer quand fermer automatiquement les parenthèses.\",\"Fermer automatiquement les parenthèses uniquement lorsque le curseur est à gauche de l’espace.\",\"Contrôle si l’éditeur doit fermer automatiquement les parenthèses quand l’utilisateur ajoute une parenthèse ouvrante.\",\"Tapez avant les guillemets ou les crochets fermants uniquement s'ils sont automatiquement insérés.\",\"Contrôle si l'éditeur doit taper avant les guillemets ou crochets fermants.\",\"Utilisez les configurations de langage pour déterminer quand fermer automatiquement les guillemets.\",\"Fermer automatiquement les guillemets uniquement lorsque le curseur est à gauche de l’espace.\",\"Contrôle si l’éditeur doit fermer automatiquement les guillemets après que l’utilisateur ajoute un guillemet ouvrant.\",\"L'éditeur n'insère pas de retrait automatiquement.\",\"L'éditeur conserve le retrait de la ligne actuelle.\",\"L'éditeur conserve le retrait de la ligne actuelle et honore les crochets définis par le langage.\",\"L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage et appelle des objets onEnterRules spéciaux définis par les langages.\",\"L'éditeur conserve le retrait de la ligne actuelle, honore les crochets définis par le langage, appelle des objets onEnterRules spéciaux définis par les langages et honore les objets indentationRules définis par les langages.\",\"Contrôle si l'éditeur doit ajuster automatiquement le retrait quand les utilisateurs tapent, collent, déplacent ou mettent en retrait des lignes.\",\"Utilisez les configurations de langue pour déterminer quand entourer automatiquement les sélections.\",\"Entourez avec des guillemets et non des crochets.\",\"Entourez avec des crochets et non des guillemets.\",\"Détermine si l'éditeur doit automatiquement entourer les sélections.\",\"Contrôle si l'éditeur affiche CodeLens.\",\"Contrôle si l'éditeur doit afficher les éléments décoratifs de couleurs inline et le sélecteur de couleurs.\",\"Contrôle si la coloration syntaxique doit être copiée dans le presse-papiers.\",\"Contrôler le style d’animation du curseur.\",\"Contrôle si l'animation du point d'insertion doit être activée.\",\"Contrôle le style du curseur.\",\"Contrôle le nombre minimum de lignes visibles avant et après le curseur. Appelé 'scrollOff' ou 'scrollOffset' dans d'autres éditeurs.\",\"'cursorSurroundingLines' est appliqué seulement s'il est déclenché via le clavier ou une API.\",\"'cursorSurroundingLines' est toujours appliqué.\",\"Contrôle quand 'cursorSurroundingLines' doit être appliqué.\",\"Détermine la largeur du curseur lorsque `#editor.cursorStyle#` est à `line`.\",\"Contrôle si l’éditeur autorise le déplacement de sélections par glisser-déplacer.\",\"Multiplicateur de vitesse de défilement quand vous appuyez sur 'Alt'.\",\"Contrôle si l'éditeur a le pliage de code activé.\",\"Contrôle la stratégie pour le calcul des plages de pliage. 'auto' utilise une stratégie de pliage spécifique au langage, le cas échéant. 'indentation' utilise la stratégie de pliage en fonction de la mise en retrait.\",\"Contrôle si l'éditeur doit mettre en évidence les plages pliées.\",\"Contrôle la famille de polices.\",\"Contrôle l'épaisseur de police.\",\"Détermine si l’éditeur doit automatiquement mettre en forme le contenu collé. Un formateur doit être disponible et être capable de mettre en forme une plage dans un document.\",\"Contrôle si l’éditeur doit mettre automatiquement en forme la ligne après la saisie.\",\"Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.\",\"Contrôle si le curseur doit être masqué dans la règle de la vue d’ensemble.\",\"Contrôle si l’éditeur doit mettre en surbrillance le guide de mise en retrait actif.\",\"Contrôle l'espacement des lettres en pixels.\",\"Contrôle si l’éditeur doit détecter les liens et les rendre cliquables.\",\"Mettez en surbrillance les crochets correspondants.\",\"Un multiplicateur à utiliser sur les `deltaX` et `deltaY` des événements de défilement de roulette de souris.\",\"Faire un zoom sur la police de l'éditeur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche 'Ctrl' enfoncée.\",\"Fusionnez plusieurs curseurs quand ils se chevauchent.\",\"Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.\",\"Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.\",\"Le modificateur à utiliser pour ajouter plusieurs curseurs avec la souris. Les gestes de souris Atteindre la définition et Ouvrir le lien s'adapteront tels qu’ils n’entrent pas en conflit avec le modificateur multicursor. [Lire la suite] (https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Chaque curseur colle une seule ligne de texte.\",\"Chaque curseur colle le texte en entier.\",\"Contrôle le collage quand le nombre de lignes du texte collé correspond au nombre de curseurs.\",\"Contrôle si l'éditeur doit mettre en surbrillance les occurrences de symboles sémantiques.\",\"Contrôle si une bordure doit être dessinée autour de la règle de la vue d'ensemble.\",\"Placer le focus sur l'arborescence à l'ouverture de l'aperçu\",\"Placer le focus sur l'éditeur à l'ouverture de l'aperçu\",\"Contrôle s'il faut mettre le focus sur l'éditeur inline ou sur l'arborescence dans le widget d'aperçu.\",\"Contrôle le délai en millisecondes après lequel des suggestions rapides sont affichées.\",\"Contrôle si l’éditeur doit afficher les caractères de contrôle.\",\"Contrôle si l’éditeur doit afficher les guides de mise en retrait.\",\"Affichez le dernier numéro de ligne quand le fichier se termine par un saut de ligne.\",\"Met en surbrillance la gouttière et la ligne actuelle.\",\"Contrôle la façon dont l’éditeur doit afficher la mise en surbrillance de la ligne actuelle.\",\"Render whitespace characters except for single spaces between words.\",\"Afficher les espaces blancs uniquement sur le texte sélectionné.\",\"Contrôle la façon dont l’éditeur doit restituer les caractères espaces.\",\"Contrôle si les sélections doivent avoir des angles arrondis.\",\"Contrôle le nombre de caractères supplémentaires, au-delà duquel l’éditeur défile horizontalement.\",\"Contrôle si l’éditeur défile au-delà de la dernière ligne.\",\"Contrôle si le presse-papiers principal Linux doit être pris en charge.\",\"Contrôle si l'éditeur doit mettre en surbrillance les correspondances similaires à la sélection.\",\"Définit si les contrôles de réduction sur la bordure sont cachés automatiquement\",\"Contrôle la disparition du code inutile.\",\"Afficher des suggestions d’extraits au-dessus d’autres suggestions.\",\"Afficher des suggestions d’extraits en-dessous d’autres suggestions.\",\"Afficher des suggestions d’extraits avec d’autres suggestions.\",\"Ne pas afficher de suggestions d’extrait de code.\",\"Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.\",\"Contrôle si l'éditeur défile en utilisant une animation.\",\"Taille de la police pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.fontSize` est utilisée.\",\"Hauteur de ligne pour le widget de suggestion. Lorsque la valeur est à `0`, la valeur de `#editor.lineHeight#` est utilisée.\",\"Contrôle si les suggestions devraient automatiquement s’afficher lorsque vous tapez les caractères de déclencheur.\",\"Sélectionnez toujours la première suggestion.\",\"Sélectionnez les suggestions récentes sauf si une entrée ultérieure en a sélectionné une, par ex., 'console.| -> console.log', car 'log' a été effectué récemment.\",\"Sélectionnez des suggestions en fonction des préfixes précédents qui ont complété ces suggestions, par ex., 'co -> console' et 'con -> const'.\",\"Contrôle comment les suggestions sont pré-sélectionnés lors de l’affichage de la liste de suggestion.\",\"La complétion par tabulation insérera la meilleure suggestion lorsque vous appuyez sur tab.\",\"Désactiver les complétions par tabulation.\",\"Compléter les extraits de code par tabulation lorsque leur préfixe correspond. Fonctionne mieux quand les 'quickSuggestions' ne sont pas activées.\",\"Active les complétions par tabulation\",\"L'insertion et la suppression des espaces blancs suit les taquets de tabulation.\",\"Caractères utilisés comme séparateurs de mots durant la navigation ou les opérations basées sur les mots\",\"Le retour automatique à la ligne n'est jamais effectué.\",\"Le retour automatique à la ligne s'effectue en fonction de la largeur de la fenêtre d'affichage.\",\"Les lignes seront terminées à `#editor.wordWrapColumn#`.\",\"Les lignes seront terminées au minimum du viewport et `#editor.wordWrapColumn#`.\",\"Contrôle comment les lignes doivent être limitées.\",\"Contrôle la colonne de terminaison de l’éditeur lorsque `#editor.wordWrap#` est à `wordWrapColumn` ou `bounded`.\",\"Aucune mise en retrait. Les lignes enveloppées commencent à la colonne 1.\",\"Les lignes enveloppées obtiennent la même mise en retrait que le parent.\",\"Les lignes justifiées obtiennent une mise en retrait +1 vers le parent.\",\"Les lignes justifiées obtiennent une mise en retrait +2 vers le parent. \",\"Contrôle la mise en retrait des lignes justifiées.\",\"Suppose que tous les caractères ont la même largeur. Il s'agit d'un algorithme rapide qui fonctionne correctement pour les polices à espacement fixe et certains scripts (comme les caractères latins) où les glyphes ont la même largeur.\",\"Délègue le calcul des points de wrapping au navigateur. Il s'agit d'un algorithme lent qui peut provoquer le gel des grands fichiers, mais qui fonctionne correctement dans tous les cas.\",\"Contrôle l'algorithme qui calcule les points de wrapping.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Texte brut\"],\n\"vs/editor/common/standaloneStrings\":[\"Aucune sélection\",\"Ligne {0}, colonne {1} ({2} sélectionné)\",\"Ligne {0}, colonne {1}\",\"{0} sélections ({1} caractères sélectionnés)\",\"{0} sélections\",\"Remplacement du paramètre 'accessibilitySupport' par 'on'.\",\"Ouverture de la page de documentation sur l'accessibilité de l'éditeur.\",\"dans un volet en lecture seule d'un éditeur de différences.\",\"dans un volet d'un éditeur de différences.\",\" dans un éditeur de code en lecture seule\",\" dans un éditeur de code\",\"Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Commande+E maintenant.\",\"Pour configurer l'éditeur de manière à être optimisé en cas d'utilisation d'un lecteur d'écran, appuyez sur Contrôle+E maintenant.\",\"L'éditeur est configuré pour être optimisé en cas d'utilisation avec un lecteur d'écran.\",\"L'éditeur est configuré pour ne jamais être optimisé en cas d'utilisation avec un lecteur d'écran, ce qui n'est pas le cas pour le moment.\",\"Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. Activez ou désactivez ce comportement en appuyant sur {0}.\",\"Appuyez sur Tab dans l'éditeur pour déplacer le focus vers le prochain élément pouvant être désigné comme élément actif. La commande {0} ne peut pas être déclenchée par une combinaison de touches.\",\"Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. Activez ou désactivez ce comportement en appuyant sur {0}.\",\"Appuyez sur Tab dans l'éditeur pour insérer le caractère de tabulation. La commande {0} ne peut pas être déclenchée par une combinaison de touches.\",\"Appuyez sur Commande+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.\",\"Appuyez sur Contrôle+H maintenant pour ouvrir une fenêtre de navigateur avec plus d'informations sur l'accessibilité de l'éditeur.\",\"Vous pouvez masquer cette info-bulle et revenir à l'éditeur en appuyant sur Échap ou Maj+Échap.\",\"Afficher l'aide sur l'accessibilité\",\"Développeur : Inspecter les jetons\",\"Atteindre la ligne {0} et le caractère {1}\",\"Atteindre la ligne {0}\",\"Tapez un numéro de ligne à atteindre entre 1 et {0}\",\"Taper un caractère entre 1 et {0} auquel accéder\",\"Ligne actuelle : {0}. Accédez à la ligne {1}.\",\"Taper un numéro de ligne, suivi d'un point-virgule facultatif et d'un numéro de caractère auquel accéder\",\"Atteindre la ligne...\",\"{0}, {1}, commandes\",\"{0}, commandes\",\"Taper le nom d'une action à exécuter\",\"Palette de commandes\",\"{0}, symboles\",\"Taper le nom d'un identificateur auquel vous voulez accéder\",\"Accéder au symbole...\",\"symboles ({0})\",\"modules ({0})\",\"classes ({0})\",\"interfaces ({0})\",\"méthodes ({0})\",\"fonctions ({0})\",\"propriétés ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructeurs ({0})\",\"appels ({0})\",\"Contenu d'éditeur\",\"Appuyez sur Ctrl+F1 pour voir les options d'accessibilité.\",\"Appuyez sur Alt+F1 pour voir les options d'accessibilité.\",\"Activer/désactiver le thème à contraste élevé\",\"{0} modifications dans {1} fichiers\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Couleur d'arrière-plan de la mise en surbrillance de la ligne à la position du curseur.\",\"Couleur d'arrière-plan de la bordure autour de la ligne à la position du curseur.\",\"Couleur d'arrière-plan des plages mises en surbrillance, comme par les fonctionnalités de recherche et Quick Open. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan de la bordure autour des plages mises en surbrillance.\",\"Couleur d'arrière-plan du symbole mis en surbrillance, comme le symbole Atteindre la définition ou Suivant/Précédent. La couleur ne doit pas être opaque pour ne pas masquer les décorations sous-jacentes.\",\"Couleur d'arrière-plan de la bordure autour des symboles mis en surbrillance.\",\"Couleur du curseur de l'éditeur.\",\"La couleur de fond du curseur de l'éditeur. Permet de personnaliser la couleur d'un caractère survolé par un curseur de bloc.\",\"Couleur des espaces blancs dans l'éditeur.\",\"Couleur des repères de retrait de l'éditeur.\",\"Couleur des guides d'indentation de l'éditeur actif\",\"Couleur des numéros de ligne de l'éditeur.\",\"Couleur des numéros de lignes actives de l'éditeur\",\"L’ID est déprécié. Utilisez à la place 'editorLineNumber.activeForeground'.\",\"Couleur des numéros de lignes actives de l'éditeur\",\"Couleur des règles de l'éditeur\",\"Couleur pour les indicateurs CodeLens\",\"Couleur d'arrière-plan pour les accolades associées\",\"Couleur pour le contour des accolades associées\",\"Couleur de la bordure de la règle d'aperçu.\",\"Couleur de fond pour la bordure de l'éditeur. La bordure contient les marges pour les symboles et les numéros de ligne.\",\"Couleur de bordure du code source inutile (non utilisé) dans l'éditeur.\",\"Opacité du code source inutile (non utilisé) dans l'éditeur. Par exemple, '#000000c0' affiche le code avec une opacité de 75 %. Pour les thèmes à fort contraste, utilisez la couleur de thème 'editorUnnecessaryCode.border' pour souligner le code inutile au lieu d'utiliser la transparence.\",\"Couleur du marqueur de la règle d'aperçu pour les erreurs.\",\"Couleur du marqueur de la règle d'aperçu pour les avertissements.\",\"Couleur du marqueur de la règle d'aperçu pour les informations.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Couleur du marqueur de la règle d'aperçu pour rechercher des parenthèses.\",\"Atteindre le crochet\",\"Sélectionner jusqu'au crochet\",\"Accéder au &&crochet\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Déplacer le point d'insertion vers la gauche\",\"Déplacer le point d'insertion vers la droite\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transposer les lettres\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Couper\",\"Co&&uper\",\"Copier\",\"&&Copier\",\"Coller\",\"Co&&ller\",\"Copier avec la coloration syntaxique\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Type d'action de code à exécuter.\",\"Contrôle quand les actions retournées sont appliquées.\",\"Appliquez toujours la première action de code retournée.\",\"Appliquez la première action de code retournée si elle est la seule.\",\"N'appliquez pas les actions de code retournées.\",\"Contrôle si seules les actions de code par défaut doivent être retournées.\",\"Une erreur inconnue s'est produite à l'application de l'action du code\",\"Correction rapide...\",\"Aucune action de code disponible\",\"Aucune action de code préférée n'est disponible pour '{0}'\",\"Aucune action de code disponible pour '{0}'\",\"Aucune action de code par défaut disponible\",\"Aucune action de code disponible\",\"Remanier...\",\"Aucune refactorisation par défaut disponible pour '{0}'\",\"Aucune refactorisation disponible pour '{0}'\",\"Aucune refactorisation par défaut disponible\",\"Aucune refactorisation disponible\",\"Action de la source\",\"Aucune action source par défaut disponible pour '{0}'\",\"Aucune action source disponible pour '{0}'\",\"Aucune action source par défaut disponible\",\"Aucune action n'est disponible\",\"Organiser les importations\",\"Aucune action organiser les imports disponible\",\"Tout corriger\",\"Aucune action Tout corriger disponible\",\"Corriger automatiquement...\",\"Aucun correctif automatique disponible\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Affichez les corrections. Correction préférée disponible ({0})\",\"Afficher les correctifs ({0})\",\"Afficher les correctifs\"],\"vs/editor/contrib/comment/comment\":[\"Activer/désactiver le commentaire de ligne\",\"Afficher/masquer le commen&&taire de ligne\",\"Ajouter le commentaire de ligne\",\"Supprimer le commentaire de ligne\",\"Activer/désactiver le commentaire de bloc\",\"Afficher/masquer le commentaire de &&bloc\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Afficher le menu contextuel de l'éditeur\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Annulation du curseur\",\"Restauration du curseur\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Couleur de premier plan des symboles de tableau. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles booléens. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de classe. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de couleur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan pour les symboles de constante. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de constructeur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de membre d'énumérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'événement. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de champ. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de fichier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de dossier. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de fonction. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'interface. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de mot clé. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de méthode. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de module. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'espace de noms. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles null. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de nombre. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'objet. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'opérateur. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de package. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de propriété. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de référence. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'extrait de code. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de chaîne. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de struct. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de texte. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de paramètre de type. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles d'unité. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\",\"Couleur de premier plan des symboles de variable. Ces symboles apparaissent dans le plan, la barre de navigation et le widget de suggestion.\"],\n\"vs/editor/contrib/find/findController\":[\"Rechercher\",\"&&Rechercher\",\"Rechercher dans la sélection\",\"Rechercher suivant\",\"Rechercher suivant\",\"Rechercher précédent\",\"Rechercher précédent\",\"Sélection suivante\",\"Sélection précédente\",\"Remplacer\",\"&&Remplacer\"],\"vs/editor/contrib/find/findWidget\":[\"Rechercher\",\"Rechercher\",\"Correspondance précédente\",\"Prochaine correspondance\",\"Rechercher dans la sélection\",\"Fermer\",\"Remplacer\",\"Remplacer\",\"Remplacer\",\"Tout remplacer\",\"Changer le mode de remplacement\",\"Seuls les {0} premiers résultats sont mis en évidence, mais toutes les opérations de recherche fonctionnent sur l’ensemble du texte.\",\"{0} sur {1}\",\"Aucun résultat\",\"{0} trouvé(s)\",\"{0} trouvé(s) pour {1}\",\"{0} trouvé(s) pour {1} à {2}\",\"{0} trouvé(s) pour {1}\",\"La combinaison Ctrl+Entrée permet désormais d'ajouter un saut de ligne au lieu de tout remplacer. Vous pouvez modifier le raccourci clavier de editor.action.replaceAll pour redéfinir le comportement.\"],\n\"vs/editor/contrib/folding/folding\":[\"Déplier\",\"Déplier de manière récursive\",\"Plier\",\"Activer/désactiver le pliage\",\"Plier de manière récursive\",\"Replier tous les commentaires de bloc\",\"Replier toutes les régions\",\"Déplier toutes les régions\",\"Plier tout\",\"Déplier tout\",\"Niveau de pliage {0}\",\"Couleur de la sélection de l'éditeur.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Agrandissement de l'éditeur de polices de caractères\",\"Rétrécissement de l'éditeur de polices de caractères\",\"Remise à niveau du zoom de l'éditeur de polices de caractères\"],\"vs/editor/contrib/format/format\":[\"1 modification de format effectuée à la ligne {0}\",\"{0} modifications de format effectuées à la ligne {1}\",\"1 modification de format effectuée entre les lignes {0} et {1}\",\"{0} modifications de format effectuées entre les lignes {1} et {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Mettre le document en forme\",\"Mettre la sélection en forme\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Aller au problème suivant (Erreur, Avertissement, Info)\",\"Aller au problème précédent (Erreur, Avertissement, Info)\",\"Aller au problème suivant dans Fichiers (Erreur, Avertissement, Info)\",\"Aller au problème précédent dans Fichiers (Erreur, Avertissement, Info)\",\"&&Problème suivant\",\"&&Problème précédent\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} problèmes sur {1}\",\"{0} problème(s) sur {1}\",\"Couleur d'erreur du widget de navigation dans les marqueurs de l'éditeur.\",\"Couleur d'avertissement du widget de navigation dans les marqueurs de l'éditeur.\",\"Couleur d’information du widget de navigation du marqueur de l'éditeur.\",\"Arrière-plan du widget de navigation dans les marqueurs de l'éditeur.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Aperçu\",\"Définitions\",\"Définition introuvable pour '{0}'\",\"Définition introuvable\",\"Atteindre la définition\",\"Atteindre la &&définition\",\"Ouvrir la définition sur le côté\",\"Aperçu de définition\",\"Déclarations\",\"Aucune déclaration pour '{0}'\",\"Aucune déclaration\",\"Accéder à la déclaration\",\"Atteindre la &&déclaration\",\"Aucune déclaration pour '{0}'\",\"Aucune déclaration\",\"Aperçu de la déclaration\",\"Définitions de type\",\"Définition de type introuvable pour '{0}'\",\"Définition de type introuvable\",\"Atteindre la définition de type\",\"Accéder à la définition de &&type\",\"Aperçu de la définition du type\",\"Implémentations\",\"Implémentation introuvable pour '{0}'\",\"Implémentation introuvable\",\"Atteindre les implémentations\",\"Atteindre les &&implémentations\",\"Implémentations d'aperçu\",\"Aucune référence pour '{0}'\",\"Aucune référence\",\"Atteindre les références\",\"Atteindre les &&références\",\"Références\",\"Aperçu des références\",\"Références\",\"Atteindre un symbole\",\"Emplacements\",\"Aucun résultat pour '{0}'\",\"Références\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Cliquez pour afficher {0} définitions.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Chargement en cours...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Échec de la résolution du fichier.\",\"{0} références\",\"{0} référence\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"aperçu non disponible\",\"Références\",\"Aucun résultat\",\"Références\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"symbole dans {0} sur la ligne {1}, colonne {2}\",\"1 symbole dans {0}, chemin complet {1}\",\"{0} symboles dans {1}, chemin complet {2}\",\"Résultats introuvables\",\"1 symbole dans {0}\",\"{0} symboles dans {1}\",\"{0} symboles dans {1} fichiers\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbole {0} sur {1}, {2} pour le suivant\",\"Symbole {0} sur {1}\"],\"vs/editor/contrib/hover/hover\":[\"Afficher par pointage\",\"Afficher le pointeur de l'aperçu de définition\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Chargement en cours...\",\"Aperçu du problème\",\"Recherche de correctifs rapides...\",\"Aucune solution disponible dans l'immédiat\",\"Correction rapide...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Remplacer par la valeur précédente\",\"Remplacer par la valeur suivante\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copier la ligne en haut\",\"&&Copier la ligne en haut\",\"Copier la ligne en bas\",\"Co&&pier la ligne en bas\",\"Dupliquer la sélection\",\"&&Dupliquer la sélection\",\"Déplacer la ligne vers le haut\",\"Déplacer la ligne &&vers le haut\",\"Déplacer la ligne vers le bas\",\"Déplacer la &&ligne vers le bas\",\"Trier les lignes dans l'ordre croissant\",\"Trier les lignes dans l'ordre décroissant\",\"Découper l'espace blanc de fin\",\"Supprimer la ligne\",\"Mettre en retrait la ligne\",\"Ajouter un retrait négatif à la ligne\",\"Insérer une ligne au-dessus\",\"Insérer une ligne sous\",\"Supprimer tout ce qui est à gauche\",\"Supprimer tout ce qui est à droite\",\"Joindre les lignes\",\"Transposer les caractères autour du curseur\",\"Transformer en majuscule\",\"Transformer en minuscule\",'Appliquer la casse \"1re lettre des mots en majuscule\"'],\n\"vs/editor/contrib/links/links\":[\"Exécuter la commande\",\"suivre le lien\",\"cmd + clic\",\"ctrl + clic\",\"option + clic\",\"alt + clic\",\"Échec de l'ouverture de ce lien, car il n'est pas bien formé : {0}\",\"Échec de l'ouverture de ce lien, car sa cible est manquante.\",\"Ouvrir le lien\"],\"vs/editor/contrib/message/messageController\":[\"Impossible de modifier dans l’éditeur en lecture seule\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Ajouter un curseur au-dessus\",\"&&Ajouter un curseur au-dessus\",\"Ajouter un curseur en dessous\",\"Aj&&outer un curseur en dessous\",\"Ajouter des curseurs à la fin des lignes\",\"Ajouter des c&&urseurs à la fin des lignes\",\"Ajouter des curseurs en bas\",\"Ajouter des curseurs en haut\",\"Ajouter la sélection à la correspondance de recherche suivante\",\"Ajouter l'occurrence suiva&&nte\",\"Ajouter la sélection à la correspondance de recherche précédente\",\"Ajouter l'occurrence p&&récédente\",\"Déplacer la dernière sélection vers la correspondance de recherche suivante\",\"Déplacer la dernière sélection à la correspondance de recherche précédente\",\"Sélectionner toutes les occurrences des correspondances de la recherche\",\"Sélectionner toutes les &&occurrences\",\"Modifier toutes les occurrences\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Indicateurs des paramètres Trigger\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, conseil\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Fermer\",\"Couleur d'arrière-plan de la zone de titre de l'affichage d'aperçu.\",\"Couleur du titre de l'affichage d'aperçu.\",\"Couleur des informations sur le titre de l'affichage d'aperçu.\",\"Couleur des bordures et de la flèche de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan des noeuds de lignes dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan des noeuds de fichiers dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de premier plan de l'entrée sélectionnée dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur d'arrière-plan de l'éditeur d'affichage d'aperçu.\",\"Couleur d'arrière-plan de la bordure de l'éditeur d'affichage d'aperçu.\",\"Couleur de mise en surbrillance d'une correspondance dans la liste des résultats de l'affichage d'aperçu.\",\"Couleur de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu.\",\"Bordure de mise en surbrillance d'une correspondance dans l'éditeur de l'affichage d'aperçu.\"],\n\"vs/editor/contrib/rename/rename\":[\"Aucun résultat.\",\"Une erreur inconnue s’est produite lors de la résolution de l'emplacement de renommage : {0}\",\"Renommage de '{0}'\",\"'{0}' renommé en '{1}'. Récapitulatif : {2}\",\"Le renommage n'a pas pu appliquer les modifications\",\"Le renommage n'a pas pu calculer les modifications\",\"Renommer le symbole\",\"Activer/désactiver la possibilité d'afficher un aperçu des changements avant le renommage\"],\"vs/editor/contrib/rename/renameInputField\":[\"Renommez l'entrée. Tapez le nouveau nom et appuyez sur Entrée pour valider.\",\"{0} pour renommer, {1} pour afficher un aperçu\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Étendre la sélection\",\"Dév&&elopper la sélection\",\"Réduire la sélection\",\"&&Réduire la sélection\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Dimanche\",\"Lundi\",\"Mardi\",\"Mercredi\",\"Jeudi\",\"Vendredi\",\"Samedi\",\"Dim\",\"Lun\",\"Mar\",\"Mer\",\"Jeu\",\"Ven\",\"Sam\",\"Janvier\",\"Février\",\"Mars\",\"Avril\",\"Mai\",\"Juin\",\"Juillet\",\"Août\",\"Septembre\",\"Octobre\",\"Novembre\",\"Décembre\",\"Jan\",\"Fév\",\"Mar\",\"Avr\",\"Mai\",\"Juin\",\"Jul\",\"Aoû\",\"Sept\",\"Oct\",\"Nov\",\"Déc\"],\"vs/editor/contrib/suggest/suggestController\":[\"L'acceptation de '{0}' a entraîné {1} modifications supplémentaires\",\"Suggestions pour Trigger\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Couleur d'arrière-plan du widget de suggestion.\",\"Couleur de bordure du widget de suggestion.\",\"Couleur de premier plan du widget de suggestion.\",\"Couleur d'arrière-plan de l'entrée sélectionnée dans le widget de suggestion.\",\"Couleur de la surbrillance des correspondances dans le widget de suggestion.\",\"En savoir plus...{0}\",\"En savoir moins...{0}\",\"Chargement en cours...\",\"Chargement en cours...\",\"Pas de suggestions.\",\"{0} pour moins...\",\"{0} pour plus...\",\"Item {0}, docs: {1}\",\"{0} pour insérer, {1} pour remplacer\",\"{0} pour remplacer, {1} pour insérer\",\"{0} pour accepter\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Activer/désactiver l'utilisation de la touche Tab pour déplacer le focus\",\"Appuyer sur Tab déplacera le focus vers le prochain élément pouvant être désigné comme élément actif\",\"Appuyer sur Tab insérera le caractère de tabulation\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Développeur : forcer la retokenisation\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Couleur d'arrière-plan d'un symbole pendant l'accès en lecture, comme la lecture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan d'un symbole pendant l'accès en écriture, comme l'écriture d'une variable. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure d'un symbole durant l'accès en lecture, par exemple la lecture d'une variable.\",\"Couleur de bordure d'un symbole durant l'accès en écriture, par exemple l'écriture dans une variable.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des symboles d'accès en écriture. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Aller à la prochaine mise en évidence de symbole\",\"Aller à la mise en évidence de symbole précédente\",\"Déclencher la mise en évidence de symbole\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Substitutions de configuration par défaut\",\"Configurez les paramètres d'éditeur à remplacer pour un langage.\",\"Ce paramètre ne prend pas en charge la configuration par langue.\",\"Impossible d'inscrire '{0}'. Ceci correspond au modèle de propriété '\\\\\\\\[.*\\\\\\\\]$' permettant de décrire les paramètres d'éditeur spécifiques à un langage. Utilisez la contribution 'configurationDefaults'.\",\"Impossible d'inscrire '{0}'. Cette propriété est déjà inscrite.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Touche ({0}) utilisée. En attente de la seconde touche pour la pression simultanée...\",\"La combinaison de touches ({0}, {1}) n'est pas une commande.\"],\n\"vs/platform/list/browser/listService\":[\"Banc d'essai\",\"Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.\",\"Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.\",\"Le modificateur à utiliser pour ajouter un élément dans les arbres et listes pour une sélection multiple avec la souris (par exemple dans l’Explorateur, les éditeurs ouverts et la vue scm). Les mouvements de la souris 'Ouvrir à côté' (si pris en charge) s'adapteront tels qu’ils n'entrent pas en conflit avec le modificateur multiselect.\",\"Contrôle l’ouverture des éléments dans les arbres et listes à l’aide de la souris (si pris en charge). Pour les parents ayant des enfants dans les arbres, ce paramètre contrôlera si un simple clic déploie le parent ou un double-clic. Notez que certains arbres et listes peuvent choisir d’ignorer ce paramètre, si ce n’est pas applicable. \",\"Contrôle si les listes et les arborescences prennent en charge le défilement horizontal dans le banc d'essai.\",\"Contrôle si les arborescences prennent en charge le défilement horizontal dans le plan de travail.\",\"Ce paramètre est déprécié, utilisez '{0}' à la place.\",\"Contrôle la mise en retrait de l'arborescence, en pixels.\",\"Contrôle si l'arborescence doit afficher les repères de mise en retrait.\",\"La navigation au clavier Simple place le focus sur les éléments qui correspondent à l'entrée de clavier. La mise en correspondance est effectuée sur les préfixes uniquement.\",\"La navigation de mise en surbrillance au clavier met en surbrillance les éléments qui correspondent à l'entrée de clavier. La navigation ultérieure vers le haut ou vers le bas parcourt uniquement les éléments mis en surbrillance.\",\"La navigation au clavier Filtrer filtre et masque tous les éléments qui ne correspondent pas à l'entrée de clavier.\",\"Contrôle le style de navigation au clavier pour les listes et les arborescences dans le banc d'essai. Les options sont Simple, Mise en surbrillance et Filtrer.\",\"Contrôle si la navigation au clavier dans les listes et les arborescences est automatiquement déclenchée simplement par la frappe. Si défini sur 'false', la navigation au clavier est seulement déclenchée avec l'exécution de la commande 'list.toggleKeyboardNavigation', à laquelle vous pouvez attribuer un raccourci clavier.\"],\n\"vs/platform/markers/common/markers\":[\"Erreur\",\"Avertissement\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Couleur de premier plan globale. Cette couleur est utilisée si elle n'est pas remplacée par un composant.\",\"Couleur principale de premier plan pour les messages d'erreur. Cette couleur est utilisée uniquement si elle n'est pas redéfinie par un composant.\",\"Couleur de bordure globale des éléments ayant le focus. Cette couleur est utilisée si elle n'est pas remplacée par un composant.\",\"Bordure supplémentaire autour des éléments pour les séparer des autres et obtenir un meilleur contraste.\",\"Bordure supplémentaire autour des éléments actifs pour les séparer des autres et obtenir un meilleur contraste.\",\"Couleur des liens dans le texte.\",\"Couleur d'arrière-plan des blocs de code dans le texte.\",\"Couleur de l'ombre des widgets, comme rechercher/remplacer, au sein de l'éditeur.\",\"Arrière-plan de la zone d'entrée.\",\"Premier plan de la zone d'entrée.\",\"Bordure de la zone d'entrée.\",\"Couleur de la bordure des options activées dans les champs d'entrée.\",\"Couleur d'arrière-plan des options activées dans les champs d'entrée.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité des informations.\",\"Couleur de premier plan de validation de saisie pour la sévérité Information.\",\"Couleur de bordure de la validation d'entrée pour la gravité des informations.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'avertissement.\",\"Couleur de premier plan de la validation de la saisie pour la sévérité Avertissement.\",\"Couleur de bordure de la validation d'entrée pour la gravité de l'avertissement.\",\"Couleur d'arrière-plan de la validation d'entrée pour la gravité de l'erreur.\",\"Couleur de premier plan de la validation de saisie pour la sévérité Erreur.\",\"Couleur de bordure de la validation d'entrée pour la gravité de l'erreur. \",\"Arrière-plan de la liste déroulante.\",\"Premier plan de la liste déroulante.\",\"Couleur du sélecteur rapide pour les étiquettes de regroupement.\",\"Couleur du sélecteur rapide pour les bordures de regroupement.\",\"Couleur de fond des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.\",\"Couleur des badges. Les badges sont de courts libellés d'information, ex. le nombre de résultats de recherche.\",\"Ombre de la barre de défilement pour indiquer que la vue défile.\",\"Couleur de fond du curseur de la barre de défilement.\",\"Couleur de fond du curseur de la barre de défilement lors du survol.\",\"Couleur d’arrière-plan de la barre de défilement lorsqu'on clique dessus.\",\"Couleur de fond pour la barre de progression qui peut s'afficher lors d'opérations longues.\",\"Couleur de premier plan de la ligne ondulée marquant les erreurs dans l'éditeur.\",\"Couleur de bordure des zones d'erreur dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée marquant les avertissements dans l'éditeur.\",\"Couleur de bordure des zones d'avertissement dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée marquant les informations dans l'éditeur.\",\"Couleur de bordure des zones d'informations dans l'éditeur.\",\"Couleur de premier plan de la ligne ondulée d'indication dans l'éditeur.\",\"Couleur de bordure des zones d'indication dans l'éditeur.\",\"Couleur d'arrière-plan de l'éditeur.\",\"Couleur de premier plan par défaut de l'éditeur.\",\"Couleur d'arrière-plan des gadgets de l'éditeur tels que rechercher/remplacer.\",\"Couleur de premier plan des widgets de l'éditeur, notamment Rechercher/remplacer.\",\"Couleur de bordure des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit d'avoir une bordure et si la couleur n'est pas remplacée par un widget.\",\"Couleur de bordure de la barre de redimensionnement des widgets de l'éditeur. La couleur est utilisée uniquement si le widget choisit une bordure de redimensionnement et si la couleur n'est pas remplacée par un widget.\",\"Couleur de la sélection de l'éditeur.\",\"Couleur du texte sélectionné pour le contraste élevé.\",\"Couleur de la sélection dans un éditeur inactif. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur des régions dont le contenu est le même que celui de la sélection. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure des régions dont le contenu est identique à la sélection.\",\"Couleur du résultat de recherche actif.\",\"Couleur des autres correspondances de recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de bordure du résultat de recherche actif.\",\"Couleur de bordure des autres résultats de recherche.\",\"Couleur de bordure de la plage limitant la recherche. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Surlignage sous le mot sélectionné par pointage. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan du pointage de l'éditeur.\",\"Couleur de premier plan du pointage de l'éditeur.\",\"Couleur de bordure du pointage de l'éditeur.\",\"Couleur d'arrière-plan de la barre d'état du pointage de l'éditeur.\",\"Couleur des liens actifs.\",\"Couleur utilisée pour l'icône d'ampoule suggérant des actions.\",\"Couleur utilisée pour l'icône d'ampoule suggérant des actions de correction automatique.\",\"Couleur d'arrière-plan du texte inséré. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur d'arrière-plan du texte supprimé. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de contour du texte inséré.\",\"Couleur de contour du texte supprimé.\",\"Couleur de bordure entre les deux éditeurs de texte.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence de l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur de premier plan de la liste/l'arborescence pour l'élément sélectionné quand la liste/l'arborescence est inactive. Une liste/arborescence active peut être sélectionnée au clavier, elle ne l'est pas quand elle est inactive.\",\"Couleur d'arrière-plan de la liste/l'arborescence pour l'élément ayant le focus quand la liste/l'arborescence est active. Une liste/arborescence active peut être sélectionnée au clavier (elle ne l'est pas quand elle est inactive).\",\"Arrière-plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.\",\"Premier plan de la liste/l'arborescence pendant le pointage sur des éléments avec la souris.\",\"Arrière-plan de l'opération de glisser-déplacer dans une liste/arborescence pendant le déplacement d'éléments avec la souris.\",\"Couleur de premier plan dans la liste/l'arborescence pour la surbrillance des correspondances pendant la recherche dans une liste/arborescence.\",\"Couleur d'arrière-plan du widget de filtre de type dans les listes et les arborescences.\",\"Couleur de contour du widget de filtre de type dans les listes et les arborescences.\",\"Couleur de contour du widget de filtre de type dans les listes et les arborescences, en l'absence de correspondance.\",\"Couleur de trait de l'arborescence pour les repères de mise en retrait.\",\"Couleur de bordure des menus.\",\"Couleur de premier plan des éléments de menu.\",\"Couleur d'arrière-plan des éléments de menu.\",\"Couleur de premier plan de l'élément de menu sélectionné dans les menus.\",\"Couleur d'arrière-plan de l'élément de menu sélectionné dans les menus.\",\"Couleur de bordure de l'élément de menu sélectionné dans les menus.\",\"Couleur d'un élément de menu séparateur dans les menus.\",\"Couleur d’arrière-plan de mise en surbrillance d’un extrait tabstop.\",\"Couleur de bordure de mise en surbrillance d’un extrait tabstop.\",\"Couleur d’arrière-plan de mise en surbrillance du tabstop final d’un extrait.\",\"Couleur de la bordure de mise en surbrillance du tabstop final d’un extrait.\",\"Couleur de marqueur de la règle d'aperçu pour rechercher les correspondances. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la règle d'aperçu pour la mise en surbrillance des sélections. La couleur ne doit pas être opaque pour ne pas masquer les ornements sous-jacents.\",\"Couleur de marqueur de la minimap pour les correspondances.\",\"Couleur de marqueur du minimap pour la sélection de l'éditeur.\",\"Couleur de marqueur de minimap pour les erreurs.\",\"Couleur de marqueur de minimap pour les avertissements.\",\"Couleur utilisée pour l'icône d'erreur des problèmes.\",\"Couleur utilisée pour l'icône d'avertissement des problèmes.\",\"Couleur utilisée pour l'icône d'informations des problèmes.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.fr.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.it.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.it\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (nuova occorrenza)\",\"{0} ( accaduto {1} volte)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Input\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Maiuscole/minuscole\",\"Parola intera\",\"Usa espressione regolare\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Input\",\"Mantieni maiuscole/minuscole\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Errore: {0}\",\"Avviso: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Non associato\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Usare i tasti di navigazione per spostarsi.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Cancella\",\"Disabilita filtro sul tipo\",\"Abilita filtro sul tipo\",\"Non sono stati trovati elementi\",\"Abbinamento di {0} su {1} elementi\"],\n\"vs/base/common/keybindingLabels\":[\"CTRL\",\"MAIUSC\",\"ALT\",\"Windows\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Super\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Comando\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Windows\",\"CTRL\",\"MAIUSC\",\"ALT\",\"Super\"],\"vs/base/common/severity\":[\"Errore\",\"Avviso\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, selezione\",\"selezione\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Selezione rapida. Digitare per ridurre il numero di risultati.\",\"Selezione rapida\",\"{0} risultati\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Seleziona tutto\",\"&&Annulla\",\"&&Ripeti\"],\"vs/editor/browser/controller/textAreaHandler\":[\"L'editor non è accessibile in questo momento. Premere Alt+F1 per le opzioni.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Il numero di cursori è stato limitato a {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Non è possibile confrontare i file perché uno è troppo grande.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Chiudi\",\"nessuna linea\",\"1 linea\",\"{0} linee\",\"Differenza {0} di {1}: originale {2}, {3}, modificate {4}, {5}\",\"vuota\",\"originali {0}, modificate {1}: {2}\",\"+ modificate {0}: {1}\",\"- originali {0}: {1}\",\"Vai alla differenza successiva\",\"Vai alla differenza precedente\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copia le righe eliminate\",\"Copia la riga eliminata\",\"Copia la riga eliminata ({0})\",\"Ripristina questa modifica\",\"Copia la riga eliminata ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",\"Numero di spazi a cui equivale una tabulazione. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.\",\"Inserisce spazi quando viene premuto TAB. Quando `#editor.detectIndentation#` è attivo, questa impostazione viene sostituita in base al contenuto del file.\",\"Controlla se `#editor.tabSize#` e `#editor.insertSpaces#` verranno rilevati automaticamente quando un file viene aperto in base al contenuto del file.\",\"Rimuovi gli spazi finali inseriti automaticamente.\",\"Gestione speciale dei file di grandi dimensioni per disabilitare alcune funzionalità che fanno un uso intensivo della memoria.\",\"Controlla se calcolare i completamenti in base alle parole presenti nel documento.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme 'ESC'.\",\"Per motivi di prestazioni le righe di lunghezza superiore non verranno tokenizzate\",\"Timeout in millisecondi dopo il quale il calcolo delle differenze viene annullato. Usare 0 per indicare nessun timeout.\",\"Controlla se l'editor diff mostra le differenze affiancate o incorporate.\",\"Controlla se l'editor diff mostra come differenze le modifiche relative a spazi vuoti iniziali e finali.\",\"Controlla se l'editor diff mostra gli indicatori +/- per le modifiche aggiunte/rimosse.\"],\n\"vs/editor/common/config/editorOptions\":[\"L'editor userà le API della piattaforma per rilevare quando viene collegata un'utilità per la lettura dello schermo.\",\"L'editor verrà definitivamente ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"L'editor non verrà mai ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"Controlla se l'editor deve essere eseguito in una modalità ottimizzata per le utilità per la lettura dello schermo.\",\"Consente di controllare se viene inserito uno spazio quando si aggiungono commenti.\",\"Controlla se, quando si copia senza aver effettuato una selezione, viene copiata la riga corrente.\",\"Controlla se inizializzare la stringa di ricerca nel Widget Trova con il testo selezionato nell'editor\",\"Non attivare mai automaticamente la funzione Trova nella selezione (impostazione predefinita)\",\"Attiva sempre automaticamente la funzione Trova nella selezione\",\"Attiva automaticamente la funzione Trova nella selezione quando sono selezionate più righe di contenuto.\",\"Controlla se l'operazione di ricerca viene eseguita all'interno del testo selezionato o in tutto il file aperto nell'editor.\",\"Controlla se il widget Trova deve leggere o modificare gli appunti di ricerca condivisi in macOS.\",\"Controlla se il widget Trova deve aggiungere altre righe nella parte superiore dell'editor. Quando è true, è possibile scorrere oltre la prima riga quando il widget Trova è visibile.\",\"Abilita/Disabilita i caratteri legatura.\",\"Impostazioni esplicite delle funzionalità dei tipi di carattere.\",\"Configura i caratteri legatura.\",\"Controlla le dimensioni del carattere in pixel.\",\"Mostra la visualizzazione rapida dei risultati (impostazione predefinita)\",\"Passa al risultato principale e mostra una visualizzazione rapida\",\"Passa al risultato principale e abilita l'esplorazione senza anteprima per gli altri\",\"Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.editor.gotoLocation.multipleDefinitions' o 'editor.editor.gotoLocation.multipleImplementations'.\",\"Controlla il comportamento del comando 'Vai alla definizione' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai alla definizione di tipo' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a dichiarazione' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a implementazioni' quando esistono più posizioni di destinazione.\",\"Controlla il comportamento del comando 'Vai a riferimenti' quando esistono più posizioni di destinazione.\",\"ID comando alternativo eseguito quando il risultato di 'Vai alla definizione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai alla definizione di tipo' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a dichiarazione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a implementazione' è la posizione corrente.\",\"ID comando alternativo eseguito quando il risultato di 'Vai a riferimento' è la posizione corrente.\",\"Controlla se mostrare l'area sensibile al passaggio del mouse.\",\"Controlla il ritardo in millisecondi dopo il quale viene mostrato il passaggio del mouse.\",\"Controlla se l'area sensibile al passaggio del mouse deve rimanere visibile quando vi si passa sopra con il puntatore del mouse\",\"Abilita la lampadina delle azioni codice nell'editor.\",\"Controlla l'altezza della riga. Usare 0 per calcolare l'altezza della riga dalle dimensioni del carattere.\",\"Controlla se la minimappa è visualizzata.\",\"Definisce il lato in cui eseguire il rendering della minimappa.\",\"Controlla se il dispositivo di scorrimento della minimappa è visualizzato.\",\"Scala del contenuto disegnato nella minimappa.\",\"Esegue il rendering dei caratteri effettivi di una riga in contrapposizione ai blocchi colore.\",\"Limita la larghezza della minimappa in modo da eseguire il rendering al massimo di un certo numero di colonne.\",\"Abilita un popup che mostra documentazione sui parametri e informazioni sui tipi mentre si digita.\",\"Controlla se il menu dei suggerimenti per i parametri esegue un ciclo o si chiude quando viene raggiunta la fine dell'elenco.\",\"Abilita i suggerimenti rapidi all'interno di stringhe.\",\"Abilita i suggerimenti rapidi all'interno di commenti.\",\"Abilita i suggerimenti rapidi all'esterno di stringhe e commenti.\",\"Controlla se visualizzare automaticamente i suggerimenti durante la digitazione.\",\"I numeri di riga non vengono visualizzati.\",\"I numeri di riga vengono visualizzati come numeri assoluti.\",\"I numeri di riga vengono visualizzati come distanza in linee alla posizione del cursore.\",\"I numeri di riga vengono visualizzati ogni 10 righe.\",\"Controlla la visualizzazione dei numeri di riga.\",\"Esegue il rendering dei righelli verticali dopo un certo numero di caratteri a spaziatura fissa. Usare più valori per più righelli. Se la matrice è vuota, non viene disegnato alcun righello.\",\"Inserisce il suggerimento senza sovrascrivere il testo a destra del cursore.\",\"Inserisce il suggerimento e sovrascrive il testo a destra del cursore.\",\"Controlla se le parole vengono sovrascritte quando si accettano i completamenti. Tenere presente che questa opzione dipende dalle estensioni che accettano esplicitamente questa funzionalità.\",\"Controlla se le modifiche al testo impreviste durante l'accettazione dei completamenti devono essere evidenziate, ad esempio `insertMode` è `replace` ma il completamento supporta solo `insert`.\",\"Controlla se i suggerimenti di filtro e ordinamento valgono per piccoli errori di battitura\",\"Controlla se l'ordinamento privilegia le parole che appaiono più vicine al cursore.\",\"Controlla se condividere le selezioni dei suggerimenti memorizzati tra aree di lavoro e finestre (richiede `#editor.suggestSelection#`).\",\"Controlla se un frammento attivo previene i suggerimenti rapidi.\",\"Controlla se mostrare o nascondere le icone nei suggerimenti.\",\"Controlla il numero di suggerimenti mostrati da IntelliSense prima di visualizzare una barra di scorrimento (massimo 15).\",\"Questa impostazione è deprecata. In alternativa, usare impostazioni diverse, come 'editor.suggest.showKeywords' o 'editor.suggest.showSnippets'.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `method`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `function`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constructor`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `field`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `variable`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `class`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `struct`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `interface`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `module`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `property`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `event`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `operator`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `unit`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `value`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `constant`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enum`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `enumMember`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `keyword`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `text`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `color`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `file`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `reference`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `customcolor`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `folder`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `typeParameter`.\",\"Se è abilitata, IntelliSense mostra i suggerimenti relativi a `snippet`.\",\"Controlla la visibilità della barra di stato nella parte inferiore del widget dei suggerimenti.\",\"Controlla se accettare i suggerimenti con i caratteri di commit. Ad esempio, in JavaScript il punto e virgola (';') può essere un carattere di commit che accetta un suggerimento e digita tale carattere.\",\"Accetta un suggerimento con 'Invio' solo quando si apporta una modifica al testo.\",\"Controlla se i suggerimenti devono essere accettati con 'INVIO' in aggiunta a 'TAB'. In questo modo è possibile evitare ambiguità tra l'inserimento di nuove righe e l'accettazione di suggerimenti.\",\"Controlla il numero di righe nell'editor che possono essere lette da un utilità per la lettura dello schermo. Avviso: questa opzione può influire sulle prestazioni se il numero di righe è superiore a quello predefinito.\",\"Contenuto editor\",\"Usa le configurazioni del linguaggio per determinare la chiusura automatica delle parentesi.\",\"Chiudi automaticamente le parentesi solo quando il cursore si trova alla sinistra di uno spazio vuoto.\",\"Controlla se l'editor deve chiudere automaticamente le parentesi quadre dopo che sono state aperte.\",\"Digita sopra le virgolette o le parentesi quadre di chiusura solo se sono state inserite automaticamente.\",\"Controlla se l'editor deve digitare su virgolette o parentesi quadre.\",\"Usa le configurazioni del linguaggio per determinare la chiusura automatica delle virgolette.\",\"Chiudi automaticamente le virgolette solo quando il cursore si trova alla sinistra di uno spazio vuoto.\",\"Controlla se l'editor deve chiudere automaticamente le citazioni dopo che sono state aperte.\",\"L'editor non inserirà automaticamente il rientro.\",\"L'editor manterrà il rientro della riga corrente.\",\"L'editor manterrà il rientro della riga corrente e rispetterà le parentesi definite dalla lingua.\",\"L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua e richiamerà le regole onEnterRules speciali definite dalle lingue.\",\"L'editor manterrà il rientro della riga corrente, rispetterà le parentesi definite dalla lingua, richiamerà le regole onEnterRules speciali definite dalle lingue e rispetterà le regole indentationRules definite dalle lingue.\",\"Controlla se l'editor deve regolare automaticamente il rientro quando gli utenti digitano, incollano, spostano le righe o applicano il rientro.\",\"Usa le configurazioni del linguaggio per determinare quando racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.\",\"Racchiude la selezione tra virgolette ma non tra parentesi quadre.\",\"Racchiude la selezione tra parentesi quadre ma non tra virgolette.\",\"Controlla se l'editor deve racchiudere automaticamente le selezioni tra parentesi quadre o virgolette.\",\"Controlla se l'editor visualizza CodeLens.\",\"Controlla se l'editor deve eseguire il rendering della selezione colori e degli elementi Decorator di tipo colore inline.\",\"Controlla se l'evidenziazione della sintassi deve essere copiata negli Appunti.\",\"Controllo dello stile di animazione del cursore.\",\"Controlla se l'animazione del cursore con anti-aliasing deve essere abilitata.\",\"Controlla lo stile del cursore.\",\"Controlla il numero minimo di righe iniziali e finali visibili che circondano il cursore. Noto come `scrollOff` o `scrollOffset` in altri editor.\",\"`cursorSurroundingLines` viene applicato solo quando è attivato tramite la tastiera o l'API.\",\"`cursorSurroundingLines` viene sempre applicato.\",\"Controlla quando deve essere applicato `cursorSurroundingLines`.\",\"Controlla la larghezza del cursore quando `#editor.cursorStyle#` è impostato su `line`.\",\"Controlla se l'editor deve consentire lo spostamento di selezioni tramite trascinamento della selezione.\",\"Moltiplicatore della velocità di scorrimento quando si preme `Alt`.\",\"Controlla se per l'editor è abilitata la riduzione del codice.\",\"Controlla in che modo vengono calcolati gli intervalli di riduzione. Con `auto` viene usata la strategia di riduzione specifica della lingua. Con `indentation` viene usata forzatamente la strategia di riduzione basata sui rientri.\",\"Controlla se l'editor deve evidenziare gli intervalli con riduzione del codice.\",\"Controlla la famiglia di caratteri.\",\"Controlla lo spessore del carattere.\",\"Controlla se l'editor deve formattare automaticamente il contenuto incollato. Deve essere disponibile un formattatore che deve essere in grado di formattare un intervallo in un documento.\",\"Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione.\",\"Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.\",\"Controlla se il cursore deve essere nascosto nel righello delle annotazioni.\",\"Controlla se l'editor deve evidenziare la guida con rientro attiva\",\"Controlla la spaziatura tra le lettere in pixel.\",\"Controlla se l'editor deve individuare i collegamenti e renderli selezionabili.\",\"Evidenzia le parentesi graffe corrispondenti.\",\"Moltiplicatore da usare sui valori `deltaX` e `deltaY` degli eventi di scorrimento della rotellina del mouse.\",\"Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto 'CTRL'.\",\"Unire i cursori multipli se sovrapposti.\",\"Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.\",\"Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.\",\"Modificatore da usare per aggiungere più cursori con il mouse. I gesti del mouse Vai alla definizione e Apri il collegamento si adatteranno in modo da non entrare in conflitto con il modificatore di selezione multipla. [Altre informazioni](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Ogni cursore incolla una singola riga del testo.\",\"Ogni cursore incolla il testo completo.\",\"Controlla l'operazione Incolla quando il conteggio delle righe del testo incollato corrisponde al conteggio dei cursori.\",\"Controlla se l'editor deve evidenziare le occorrenze di simboli semantici.\",\"Controlla se deve essere disegnato un bordo intorno al righello delle annotazioni.\",\"Sposta lo stato attivo sull'albero quando si apre l'anteprima\",\"Sposta lo stato attivo sull'editor quando si apre l'anteprima\",\"Controlla se spostare lo stato attivo sull'editor inline o sull'albero nel widget di anteprima.\",\"Controlla il ritardo in millisecondi dopo il quale verranno visualizzati i suggerimenti rapidi.\",\"Controlla se l'editor deve eseguire il rendering dei caratteri di controllo.\",\"Controlla se l'editor deve eseguire il rendering delle guide con rientro.\",\"Esegue il rendering dell'ultimo numero di riga quando il file termina con un carattere di nuova riga.\",\"Mette in evidenza sia la barra di navigazione sia la riga corrente.\",\"Controlla in che modo l'editor deve eseguire il rendering dell'evidenziazione di riga corrente.\",\"Render whitespace characters except for single spaces between words.\",\"Esegui il rendering dei caratteri di spazio vuoto solo nel testo selezionato.\",\"Controlla in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto.\",\"Controlla se le selezioni devono avere gli angoli arrotondati.\",\"Controlla il numero di caratteri aggiuntivi oltre i quali l'editor scorrerà orizzontalmente.\",\"Controlla se l'editor scorrerà oltre l'ultima riga.\",\"Controlla se gli appunti primari di Linux devono essere supportati.\",\"Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione.\",\"Controlla se i controlli di riduzione sul margine della barra di scorrimento sono automaticamente nascosti.\",\"Controllo dissolvenza del codice inutilizzato.\",\"Visualizza i suggerimenti del frammento prima degli altri suggerimenti.\",\"Visualizza i suggerimenti del frammento dopo gli altri suggerimenti.\",\"Visualizza i suggerimenti del frammento insieme agli altri suggerimenti.\",\"Non mostrare i suggerimenti del frammento.\",\"Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.\",\"Controlla se per lo scorrimento dell'editor verrà usata un'animazione.\",\"Dimensioni del carattere per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore di `#editor.fontSize#`.\",\"Altezza della riga per il widget dei suggerimenti. Se impostato su `0`, viene usato il valore `editor.lineHeight#`.\",\"Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger.\",\"Consente di selezionare sempre il primo suggerimento.\",\"Consente di selezionare suggerimenti recenti a meno che continuando a digitare non ne venga selezionato uno, ad esempio `console.| -> console.log` perché `log` è stato completato di recente.\",\"Consente di selezionare i suggerimenti in base a prefissi precedenti che hanno completato tali suggerimenti, ad esempio `co -> console` e `con -> const`.\",\"Controlla la modalità di preselezione dei suggerimenti durante la visualizzazione dell'elenco dei suggerimenti.\",\"La funzionalità di completamento con tasto TAB inserirà il migliore suggerimento alla pressione del tasto TAB.\",\"Disabilita le funzionalità di completamento con tasto TAB.\",\"Completa i frammenti con il tasto TAB quando i rispettivi prefissi corrispondono. Funziona in modo ottimale quando 'quickSuggestions' non è abilitato.\",\"Abilità la funzionalità di completamento con tasto TAB.\",\"Inserimento ed eliminazione dello spazio vuoto dopo le tabulazioni.\",\"Caratteri che verranno usati come separatori di parola quando si eseguono operazioni o spostamenti correlati a parole.\",\"Il ritorno a capo automatico delle righe non viene mai applicato.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza del viewport.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza di `#editor.wordWrapColumn#`.\",\"Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza minima del viewport e di `#editor.wordWrapColumn#`.\",\"Controlla il ritorno a capo automatico delle righe.\",\"Controlla la colonna per il ritorno a capo automatico dell'editor quando il valore di `#editor.wordWrap#` è `wordWrapColumn` o `bounded`.\",\"Nessun rientro. Le righe con ritorno a capo iniziano dalla colonna 1. \",\"Le righe con ritorno a capo hanno lo stesso rientro della riga padre.\",\"Le righe con ritorno a capo hanno un rientro di +1 rispetto alla riga padre.\",\"Le righe con ritorno a capo hanno un rientro di +2 rispetto alla riga padre.\",\"Controlla il rientro delle righe con ritorno a capo.\",\"Presuppone che la larghezza sia identica per tutti caratteri. Si tratta di un algoritmo veloce che funziona correttamente per i tipi di carattere a spaziatura fissa e determinati script (come i caratteri latini) in cui i glifi hanno larghezza identica.\",\"Delega il calcolo dei punti di ritorno a capo al browser. Si tratta di un algoritmo lento che potrebbe causare blocchi con file di grandi dimensioni, ma funziona correttamente in tutti gli altri casi.\",\"Controlla l'algoritmo che calcola i punti di ritorno a capo.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Testo normale\"],\n\"vs/editor/common/standaloneStrings\":[\"Nessuna selezione\",\"Riga {0}, colonna {1} ({2} selezionate)\",\"Riga {0}, colonna {1}\",\"{0} selezioni ({1} caratteri selezionati)\",\"{0} selezioni\",\"Modifica dell'impostazione `accessibilitySupport` in `on`.\",\"Apertura della pagina di documentazione sull'accessibilità dell'editor.\",\"in un riquadro di sola lettura di un editor diff.\",\"in un riquadro di un editor diff.\",\" in un editor di codice di sola lettura\",\" in un editor di codice\",\"Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere Comando+E.\",\"Per configurare l'editor da ottimizzare per l'utilizzo con un'utilità per la lettura dello schermo, premere CTRL+E.\",\"L'editor è configurato per essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo.\",\"L'editor è configurato per non essere ottimizzato per l'utilizzo con un'utilità per la lettura dello schermo, che non viene usata in questo momento.\",\"Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Per attivare/disattivare questo comportamento, premere {0}.\",\"Premere TAB nell'editor corrente per spostare lo stato attivo sull'elemento con stato attivabile successivo. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.\",\"Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Per attivare/disattivare questo comportamento, premere {0}.\",\"Premere TAB nell'editor corrente per inserire il carattere di tabulazione. Il comando {0} non può essere attualmente attivato con un tasto di scelta rapida.\",\"Premere Comando+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.\",\"Premere CTRL+H per aprire una finestra del browser contenente maggiori informazioni correlate all'accessibilità dell'editor.\",\"Per chiudere questa descrizione comando e tornare all'editor, premere ESC o MAIUSC+ESC.\",\"Visualizza la Guida sull'accessibilità\",\"Sviluppatore: Controlla token\",\"Vai alla riga {0} e carattere {1}\",\"Vai alla riga {0}\",\"Digitare un numero di riga a cui passare compreso tra 1 e {0}\",\"Digitare un carattere compreso tra 1 e {0} a cui passare\",\"Riga corrente: {0}. Passa a riga {1}.\",\"Digitare un numero di riga, seguito da due punti facoltativi e da un numero di carattere a cui passare\",\"Vai alla riga...\",\"{0}, {1}, comandi\",\"{0}, comandi\",\"Digitare il nome di un'azione da eseguire\",\"Riquadro comandi\",\"{0}, simboli\",\"Digitare il nome di un identificatore a cui passare\",\"Vai al simbolo...\",\"simboli ({0})\",\"moduli ({0})\",\"classi ({0})\",\"interfacce ({0})\",\"metodi ({0})\",\"funzioni ({0})\",\"proprietà ({0})\",\"variabili ({0})\",\"variabili ({0})\",\"costruttori ({0})\",\"chiamate ({0})\",\"Contenuto editor\",\"Premere CTRL+F1 per le opzioni di accessibilità.\",\"Premere ALT+F1 per le opzioni di accessibilità.\",\"Attiva/disattiva tema a contrasto elevato\",\"Effettuate {0} modifiche in {1} file\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Colore di sfondo per l'evidenziazione della riga alla posizione del cursore.\",\"Colore di sfondo per il bordo intorno alla riga alla posizione del cursore.\",\"Colore di sfondo degli intervalli evidenziati, ad esempio dalle funzionalità Quick Open e Trova. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo del bordo intorno agli intervalli selezionati.\",\"Colore di sfondo del simbolo evidenziato, ad esempio per passare alla definizione o al simbolo successivo/precedente. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo del bordo intorno ai simboli selezionati.\",\"Colore del cursore dell'editor.\",\"Colore di sfondo del cursore editor. Permette di personalizzare il colore di un carattere quando sovrapposto da un blocco cursore.\",\"Colore dei caratteri di spazio vuoto nell'editor.\",\"Colore delle guide per i rientri dell'editor.\",\"Colore delle guide di indentazione dell'editor attivo\",\"Colore dei numeri di riga dell'editor.\",\"Colore del numero di riga attivo dell'editor\",\"Id è deprecato. In alternativa usare 'editorLineNumber.activeForeground'.\",\"Colore del numero di riga attivo dell'editor\",\"Colore dei righelli dell'editor.\",\"Colore primo piano delle finestre di CodeLens dell'editor\",\"Colore di sfondo delle parentesi corrispondenti\",\"Colore delle caselle di parentesi corrispondenti\",\"Colore del bordo del righello delle annotazioni.\",\"Colore di sfondo della barra di navigazione dell'editor. La barra contiene i margini di glifo e i numeri di riga.\",\"Colore del bordo del codice sorgente non necessario (non usato) nell'editor.\",\"Opacità del codice sorgente non necessario (non usato) nell'editor. Ad esempio, con \\\"#000000c0\\\" il rendering del codice verrà eseguito con il 75% di opacità. Per i temi a contrasto elevato, usare il colore del tema 'editorUnnecessaryCode.border' per sottolineare il codice non necessario invece di opacizzarlo.\",\"Colore del marcatore del righello delle annotazioni per gli errori.\",\"Colore del marcatore del righello delle annotazioni per gli avvisi.\",\"Colore del marcatore del righello delle annotazioni per i messaggi di tipo informativo.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Colore del marcatore del righello delle annotazioni per la corrispondenza delle parentesi.\",\"Vai alla parentesi quadra\",\"Seleziona fino alla parentesi\",\"Vai alla parentesi &&quadra\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Sposta il punto di inserimento a sinistra\",\"Sposta il punto di inserimento a destra\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Trasponi lettere\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Taglia\",\"&&Taglia\",\"Copia\",\"&&Copia\",\"Incolla\",\"&&Incolla\",\"Copia con evidenziazione sintassi\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Tipo dell'azione codice da eseguire.\",\"Controlla quando vengono applicate le azioni restituite.\",\"Applica sempre la prima azione codice restituita.\",\"Applica la prima azione codice restituita se è l'unica.\",\"Non applicare le azioni codice restituite.\",\"Controlla se devono essere restituite solo le azioni codice preferite.\",\"Si è verificato un errore sconosciuto durante l'applicazione dell'azione del codice\",\"Correzione rapida...\",\"Azioni codice non disponibili\",\"Non sono disponibili azioni codice preferite per '{0}'\",\"Non sono disponibili azioni codice per '{0}'\",\"Non sono disponibili azioni codice preferite\",\"Azioni codice non disponibili\",\"Effettua refactoring...\",\"Non sono disponibili refactoring preferiti per '{0}'\",\"Non sono disponibili refactoring per '{0}'\",\"Non sono disponibili refactoring preferiti\",\"Refactoring non disponibili\",\"Azione origine...\",\"Non sono disponibili azioni origine preferite per '{0}'\",\"Non sono disponibili azioni origine per '{0}'\",\"Non sono disponibili azioni origine preferite\",\"Azioni origine non disponibili\",\"Organizza import\",\"Azioni di organizzazione Imports non disponibili\",\"Correggi tutto\",\"Non è disponibile alcuna azione Correggi tutto\",\"Correzione automatica...\",\"Non sono disponibili correzioni automatiche\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Mostra correzioni. Correzione preferita disponibile ({0})\",\"Mostra correzioni ({0})\",\"Mostra correzioni\"],\"vs/editor/contrib/comment/comment\":[\"Attiva/disattiva commento per la riga\",\"Attiva/Disattiva commento per la &&riga\",\"Aggiungi commento per la riga\",\"Rimuovi commento per la riga\",\"Attiva/Disattiva commento per il blocco\",\"Attiva/Disattiva commento per il &&blocco\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Mostra il menu di scelta rapida editor\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursore - Annulla\",\"Cursore - Ripeti\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Colore primo piano per i simboli di matrice. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli booleani. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di classe. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di colore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di costante. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di costruttore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di membro di enumeratore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di evento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di campo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di file. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di cartella. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di funzione. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di interfaccia. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di parola chiave. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di metodo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di modulo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di spazio dei nomi. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli Null. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli numerici. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di oggetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di operatore. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di pacchetto. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di proprietà. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di riferimento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di frammento. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di stringa. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di struct. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di testo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di parametro di tipo. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di unità. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\",\"Colore primo piano per i simboli di variabile. Questi simboli vengono visualizzati nella struttura, nell'elemento di navigazione e nel widget dei suggerimenti.\"],\n\"vs/editor/contrib/find/findController\":[\"Trova\",\"&&Trova\",\"Trova con selezione\",\"Trova successivo\",\"Trova successivo\",\"Trova precedente\",\"Trova precedente\",\"Trova selezione successiva\",\"Trova selezione precedente\",\"Sostituisci\",\"&&Sostituisci\"],\"vs/editor/contrib/find/findWidget\":[\"Trova\",\"Trova\",\"Corrispondenza precedente\",\"Corrispondenza successiva\",\"Trova nella selezione\",\"Chiudi\",\"Sostituisci\",\"Sostituisci\",\"Sostituisci\",\"Sostituisci tutto\",\"Attiva/Disattiva modalità sostituzione\",\"Solo i primi {0} risultati vengono evidenziati, ma tutte le operazioni di ricerca funzionano su tutto il testo.\",\"{0} di {1}\",\"Nessun risultato\",\"{0} trovato\",\"{0} trovato per {1}\",\"{0} trovato per {1} a riga {2}\",\"{0} trovato per {1}\",\"Il tasto di scelta rapida CTRL+INVIO ora consente di inserire l'interruzione di linea invece di sostituire tutto. Per eseguire l'override di questo comportamento, è possibile modificare il tasto di scelta rapida per editor.action.replaceAll.\"],\n\"vs/editor/contrib/folding/folding\":[\"Espandi\",\"Espandi in modo ricorsivo\",\"Riduci\",\"Attiva/Disattiva riduzione\",\"Riduci in modo ricorsivo\",\"Riduci tutti i blocchi commento\",\"Riduci tutte le regioni\",\"Espandi tutte le regioni\",\"Riduci tutto\",\"Espandi tutto\",\"Livello riduzione {0}\",\"Colore della selezione dell'editor.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Zoom avanti tipo di carattere editor\",\"Zoom indietro tipo di carattere editor\",\"Reimpostazione zoom tipo di carattere editor\"],\"vs/editor/contrib/format/format\":[\"È stata apportata 1 modifica di formattazione a riga {0}\",\"Sono state apportate {0} modifiche di formattazione a riga {1}\",\"È stata apportata 1 modifica di formattazione tra le righe {0} e {1}\",\"Sono state apportate {0} modifiche di formattazione tra le righe {1} e {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Formatta documento\",\"Formatta selezione\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Vai al problema successivo (Errore, Avviso, Informazioni)\",\"Vai al problema precedente (Errore, Avviso, Informazioni)\",\"Vai al problema successivo nei file (Errore, Avviso, Informazioni)\",\"Vai al problema precedente nei file (Errore, Avviso, Informazioni)\",\"&&Problema successivo\",\"&&Problema precedente\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} di {1} problemi\",\"{0} di {1} problema\",\"Colore per gli errori del widget di spostamento tra marcatori dell'editor.\",\"Colore per gli avvisi del widget di spostamento tra marcatori dell'editor.\",\"Colore delle informazioni del widget di navigazione marcatori dell'editor.\",\"Sfondo del widget di spostamento tra marcatori dell'editor.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Anteprima\",\"Definizioni\",\"Non è stata trovata alcuna definizione per '{0}'\",\"Non è stata trovata alcuna definizione\",\"Vai alla definizione\",\"Vai alla &&definizione\",\"Apri definizione lateralmente\",\"Visualizza la definizione\",\"Dichiarazioni\",\"Non è stata trovata alcuna dichiarazione per '{0}'\",\"Dichiarazione non trovata\",\"Vai a dichiarazione\",\"Vai a &&dichiarazione\",\"Non è stata trovata alcuna dichiarazione per '{0}'\",\"Dichiarazione non trovata\",\"Anteprima dichiarazione\",\"Definizioni di tipo\",\"Non sono state trovate definizioni di tipi per '{0}'\",\"Non sono state trovate definizioni di tipi\",\"Vai alla definizione di tipo\",\"Vai alla &&definizione di tipo\",\"Anteprima definizione di tipo\",\"Implementazioni\",\"Non sono state trovate implementazioni per '{0}'\",\"Non sono state trovate implementazioni\",\"Vai a implementazioni\",\"Vai a &&Implementazioni\",\"Visualizza implementazioni\",\"Non sono stati trovati riferimenti per '{0}'\",\"Non sono stati trovati riferimenti\",\"Vai a Riferimenti\",\"Vai a &&riferimenti\",\"Riferimenti\",\"Anteprima riferimenti\",\"Riferimenti\",\"Vai a qualsiasi simbolo\",\"Posizioni\",\"Non sono stati trovati risultati per '{0}'\",\"Riferimenti\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Fare clic per visualizzare {0} definizioni.\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Caricamento...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Non è stato possibile risolvere il file.\",\"{0} riferimenti\",\"{0} riferimento\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"anteprima non disponibile\",\"Riferimenti\",\"Nessun risultato\",\"Riferimenti\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"simbolo in {0} alla riga {1} colonna {2}\",\"1 simbolo in {0}, percorso completo {1}\",\"{0} simboli in {1}, percorso completo {2}\",\"Non sono stati trovati risultati\",\"Trovato 1 simbolo in {0}\",\"Trovati {0} simboli in {1}\",\"Trovati {0} simboli in {1} file\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Simbolo {0} di {1}, {2} per il successivo\",\"Simbolo {0} di {1}\"],\"vs/editor/contrib/hover/hover\":[\"Visualizza passaggio del mouse\",\"Mostra anteprima definizione al passaggio del mouse\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Caricamento...\",\"Posiziona puntatore sul problema\",\"Verifica disponibilità correzioni rapide...\",\"Non sono disponibili correzioni rapide\",\"Correzione rapida...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Sostituisci con il valore precedente\",\"Sostituisci con il valore successivo\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copia la riga in alto\",\"&&Copia la riga in alto\",\"Copia la riga in basso\",\"Co&&pia la riga in basso\",\"Duplica selezione\",\"&&Duplica selezione\",\"Sposta la riga in alto\",\"Sposta la riga in &&alto\",\"Sposta la riga in basso\",\"Sposta la riga in &&basso\",\"Ordinamento righe crescente\",\"Ordinamento righe decrescente\",\"Taglia spazio vuoto finale\",\"Elimina riga\",\"Imposta un rientro per la riga\",\"Riduci il rientro per la riga\",\"Inserisci la riga sopra\",\"Inserisci la riga sotto\",\"Elimina tutto a sinistra\",\"Elimina tutto a destra\",\"Unisci righe\",\"Trasponi caratteri intorno al cursore\",\"Converti in maiuscolo\",\"Converti in minuscolo\",\"Trasforma in Tutte Iniziali Maiuscole\"],\n\"vs/editor/contrib/links/links\":[\"Esegui il comando\",\"Visita il collegamento\",\"CMD+clic\",\"CTRL+clic\",\"Opzione+clic\",\"ALT+clic\",\"Non è stato possibile aprire questo collegamento perché il formato non è valido: {0}\",\"Non è stato possibile aprire questo collegamento perché manca la destinazione.\",\"Apri il collegamento\"],\"vs/editor/contrib/message/messageController\":[\"Non è possibile modificare nell'editor di sola lettura\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Aggiungi cursore sopra\",\"&&Aggiungi cursore sopra\",\"Aggiungi cursore sotto\",\"A&&ggiungi cursore sotto\",\"Aggiungi cursori a fine riga\",\"Aggiungi c&&ursori a fine riga\",\"Aggiungi cursori alla fine\",\"Aggiungi cursori all'inizio\",\"Aggiungi selezione a risultato ricerca successivo\",\"Aggiungi &&occorrenza successiva\",\"Aggiungi selezione a risultato ricerca precedente\",\"Aggiungi occorrenza &&precedente\",\"Sposta ultima selezione a risultato ricerca successivo\",\"Sposta ultima selezione a risultato ricerca precedente\",\"Seleziona tutte le occorrenze del risultato ricerca\",\"Seleziona &&tutte le occorrenze\",\"Cambia tutte le occorrenze\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Attiva i suggerimenti per i parametri\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, suggerimento\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Chiudi\",\"Colore di sfondo dell'area del titolo della visualizzazione rapida.\",\"Colore del titolo della visualizzazione rapida.\",\"Colore delle informazioni del titolo della visualizzazione rapida.\",\"Colore dei bordi e della freccia della visualizzazione rapida.\",\"Colore di sfondo dell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano dei nodi riga nell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano dei nodi file nell'elenco risultati della visualizzazione rapida.\",\"Colore di sfondo della voce selezionata nell'elenco risultati della visualizzazione rapida.\",\"Colore primo piano della voce selezionata nell'elenco risultati della visualizzazione rapida.\",\"Colore di sfondo dell'editor di visualizzazioni rapide.\",\"Colore di sfondo della barra di navigazione nell'editor visualizzazione rapida.\",\"Colore dell'evidenziazione delle corrispondenze nell'elenco risultati della visualizzazione rapida.\",\"Colore dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.\",\"Bordo dell'evidenziazione delle corrispondenze nell'editor di visualizzazioni rapide.\"],\n\"vs/editor/contrib/rename/rename\":[\"Nessun risultato.\",\"Si è verificato un errore sconosciuto durante la risoluzione del percorso di ridenominazione\",\"Ridenominazione di '{0}'\",\"Correttamente rinominato '{0}' in '{1}'. Sommario: {2}\",\"La ridenominazione non è riuscita ad applicare le modifiche\",\"La ridenominazione non è riuscita a calcolare le modifiche\",\"Rinomina simbolo\",\"Abilita/Disabilita l'opzione per visualizzare le modifiche in anteprima prima della ridenominazione\"],\"vs/editor/contrib/rename/renameInputField\":[\"Consente di rinominare l'input. Digitare il nuovo nome e premere INVIO per eseguire il commit.\",\"{0} da rinominare, {1} da visualizzare in anteprima\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Espandi selezione\",\"Espan&&di selezione\",\"Riduci selezione\",\"&&Riduci selezione\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\",\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\",\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Mag\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\",\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],\"vs/editor/contrib/suggest/suggestController\":[\"In seguito all'accettazione di '{0}' sono state apportate altre {1} modifiche\",\"Attiva suggerimento\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Colore di sfondo del widget dei suggerimenti.\",\"Colore del bordo del widget dei suggerimenti.\",\"Colore primo piano del widget dei suggerimenti.\",\"Colore di sfondo della voce selezionata del widget dei suggerimenti.\",\"Colore delle evidenziazioni corrispondenze nel widget dei suggerimenti.\",\"Altre informazioni...{0}\",\"Meno informazioni... {0}\",\"Caricamento...\",\"Caricamento...\",\"Non ci sono suggerimenti.\",\"{0} per meno...\",\"{0} per altro...\",\"Elemento {0}, documenti: {1}\",\"{0} per inserire, {1} per sostituire\",\"{0} da sostituire, {1} da inserire\",\"{0} per accettare\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Attiva/Disattiva l'uso di TAB per spostare lo stato attivo\",\"Se si preme TAB, lo stato attivo verrà spostato sull'elemento con stato attivabile successivo.\",\"Se si preme TAB, verrà inserito il carattere di tabulazione\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Sviluppatore: Forza retokenizzazione\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Colore di sfondo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo di un simbolo durante l'accesso in lettura, ad esempio durante la lettura di una variabile.\",\"Colore del bordo di un simbolo durante l'accesso in scrittura, ad esempio durante la scrittura in una variabile.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni dei simboli di accesso in scrittura. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Vai al prossimo simbolo evidenziato\",\"Vai al precedente simbolo evidenziato\",\"Attiva/disattiva evidenziazione simbolo\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Override configurazione predefinita\",\"Consente di configurare le impostazioni dell'editor di cui eseguire l'override per un linguaggio.\",\"Questa impostazione non supporta la configurazione per lingua.\",\"Non è possibile registrare '{0}'. Corrisponde al criterio di proprietà '\\\\\\\\[.*\\\\\\\\]$' per la descrizione delle impostazioni dell'editor specifiche del linguaggio. Usare il contributo 'configurationDefaults'.\",\"Non è possibile registrare '{0}'. Questa proprietà è già registrata.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"È stato premuto ({0}). In attesa del secondo tasto...\",\"La combinazione di tasti ({0}, {1}) non è un comando.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Rappresenta il tasto 'Control' in Windows e Linux e il tasto 'Comando' in macOS.\",\"Rappresenta il tasto 'Alt' in Windows e Linux e il tasto 'Opzione' in macOS.\",\"Il modificatore da utilizzare per aggiungere un elemento di alberi e liste ad una selezione multipla con il mouse (ad esempio in Esplora Risorse, apre gli editor e le viste scm). Le gesture del mouse 'Apri a lato' - se supportate - si adatteranno in modo da non creare conflitti con il modificatore di selezione multipla.\",\"Controlla l'apertura degli elementi di alberi ed elenchi tramite il mouse (se supportato). Per i nodi con figli, questa impostazione ne controlla l'apertura tramite singolo o doppio clic. Si noti che alcuni alberi ed elenchi potrebbero scegliere di ignorare questa impostazione se non applicabile.\",\"Controlla se elenchi e alberi supportano lo scorrimento orizzontale in Workbench.\",\"Controlla se gli alberi supportano lo scorrimento orizzontale in Workbench.\",\"Questa impostazione è deprecata. In alternativa, usare '{0}'.\",\"Controlla il rientro dell'albero in pixel.\",\"Controlla se l'albero deve eseguire il rendering delle guide per i rientri.\",\"Con lo stile di spostamento da tastiera simple lo stato attivo si trova sugli elementi che corrispondono all'input da tastiera. L'abbinamento viene effettuato solo in base ai prefissi.\",\"Con lo stile di spostamento da tastiera highlight vengono evidenziati gli elementi corrispondenti all'input da tastiera. Spostandosi ulteriormente verso l'alto o verso il basso ci si sposterà solo negli elementi evidenziati.\",\"Con lo stile di spostamento da tastiera filter verranno filtrati e nascosti tutti gli elementi che non corrispondono all'input da tastiera.\",\"Controlla lo stile di spostamento da tastiera per elenchi e alberi nel workbench. Le opzioni sono: simple, highlight e filter.\",\"Controlla se gli spostamenti da tastiera per elenchi e alberi vengono attivati semplicemente premendo un tasto. Se è impostato su `false`, gli spostamenti da tastiera vengono attivati solo durante l'esecuzione del comando `list.toggleKeyboardNavigation`, al quale è possibile assegnare un tasto di scelta rapida.\"],\n\"vs/platform/markers/common/markers\":[\"Errore\",\"Avviso\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Colore primo piano generale. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Colore primo piano globale per i messaggi di errore. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Colore del bordo globale per gli elementi evidenziati. Questo colore viene usato solo se non è sostituito da quello di un componente.\",\"Un bordo supplementare attorno agli elementi per contrastarli maggiormente rispetto agli altri.\",\"Un bordo supplementare intorno agli elementi attivi per contrastarli maggiormente rispetto agli altri.\",\"Colore primo piano dei link nel testo.\",\"Colore di sfondo per i blocchi di codice nel testo.\",\"Colore ombreggiatura dei widget, ad es. Trova/Sostituisci all'interno dell'editor.\",\"Sfondo della casella di input.\",\"Primo piano della casella di input.\",\"Bordo della casella di input.\",\"Colore del bordo di opzioni attivate nei campi di input.\",\"Colore di sfondo di opzioni attivate nei campi di input.\",\"Colore di sfondo di convalida dell'input di tipo Informazione.\",\"Colore primo piano di convalida dell'input di tipo Informazione.\",\"Colore del bordo della convalida dell'input di tipo Informazione.\",\"Colore di sfondo di convalida dell'input di tipo Avviso.\",\"Colore primo piano di convalida dell'input di tipo Avviso.\",\"Colore del bordo della convalida dell'input di tipo Avviso.\",\"Colore di sfondo di convalida dell'input di tipo Errore.\",\"Colore primo piano di convalida dell'input di tipo Errore.\",\"Colore del bordo della convalida dell'input di tipo Errore.\",\"Sfondo dell'elenco a discesa.\",\"Primo piano dell'elenco a discesa.\",\"Colore di selezione rapida per il raggruppamento delle etichette.\",\"Colore di selezione rapida per il raggruppamento dei bordi.\",\"Colore di sfondo del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati della ricerca.\",\"Colore primo piano del badge. I badge sono piccole etichette informative, ad esempio per mostrare il conteggio dei risultati di una ricerca.\",\"Ombra della barra di scorrimento per indicare lo scorrimento della visualizzazione.\",\"Colore di sfondo del cursore della barra di scorrimento.\",\"Colore di sfondo del cursore della barra di scorrimento al passaggio del mouse.\",\"Colore di sfondo del cursore della barra di scorrimento quando si fa clic con il mouse.\",\"Colore di sfondo dell'indicatore di stato che può essere mostrato per operazioni a esecuzione prolungata.\",\"Colore primo piano degli indicatori di errore nell'editor.\",\"Colore del bordo delle caselle di errore nell'editor.\",\"Colore primo piano degli indicatori di avviso nell'editor.\",\"Colore del bordo delle caselle di avviso nell'editor.\",\"Colore primo piano degli indicatori di informazioni nell'editor.\",\"Colore del bordo delle caselle informative nell'editor.\",\"Colore primo piano degli indicatori di suggerimento nell'editor.\",\"Colore del bordo delle caselle dei suggerimenti nell'editor.\",\"Colore di sfondo dell'editor.\",\"Colore primo piano predefinito dell'editor.\",\"Colore di sfondo dei widget dell'editor, ad esempio Trova/Sostituisci.\",\"Colore primo piano dei widget dell'editor, ad esempio Trova/Sostituisci.\",\"Colore del bordo dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo e se il colore non è sottoposto a override da un widget.\",\"Colore del bordo della barra di ridimensionamento dei widget dell'editor. Il colore viene usato solo se il widget sceglie di avere un bordo di ridimensionamento e se il colore non è sostituito da quello di un widget.\",\"Colore della selezione dell'editor.\",\"Colore del testo selezionato per il contrasto elevato.\",\"Colore della selezione in un editor inattivo. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore delle aree con lo stesso contenuto della selezione. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo delle regioni con lo stesso contenuto della selezione.\",\"Colore della corrispondenza di ricerca corrente.\",\"Colore degli altri risultati della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore dell'intervallo di limite della ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del bordo della corrispondenza della ricerca corrente.\",\"Colore del bordo delle altre corrispondenze della ricerca.\",\"Colore del bordo dell'intervallo che limita la ricerca. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Evidenziazione sotto la parola per cui è visualizzata un'area sensibile al passaggio del mouse. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore primo piano dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore del bordo dell'area sensibile al passaggio del mouse dell'editor.\",\"Colore di sfondo della barra di stato sensibile al passaggio del mouse dell'editor.\",\"Colore dei collegamenti attivi.\",\"Colore usato per l'icona delle azioni con lampadina.\",\"Colore usato per l'icona delle azioni di correzione automatica con lampadina.\",\"Colore di sfondo per il testo che è stato inserito. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore di sfondo per il testo che è stato rimosso. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del contorno del testo che è stato inserito.\",\"Colore del contorno del testo che è stato rimosso.\",\"Colore del bordo tra due editor di testo.\",\"Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è attivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore primo piano dell'elenco/albero per l'elemento selezionato quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, a differenza di uno inattivo.\",\"Colore di sfondo dell'elenco/albero per l'elemento con lo stato attivo quando l'elenco/albero è inattivo. Un elenco/albero attivo ha lo stato attivo della tastiera, uno inattivo no.\",\"Sfondo dell'elenco/albero al passaggio del mouse sugli elementi.\",\"Primo piano dell'elenco/albero al passaggio del mouse sugli elementi.\",\"Sfondo dell'elenco/albero durante il trascinamento degli elementi selezionati.\",\"Colore primo piano Elenco/Struttura ad albero delle occorrenze trovate durante la ricerca nell'Elenco/Struttura ad albero.\",\"Colore di sfondo del widget del filtro per tipo in elenchi e alberi.\",\"Colore del contorno del widget del filtro per tipo in elenchi e alberi.\",\"Colore del contorno del widget del filtro per tipo in elenchi e alberi quando non sono presenti corrispondenze.\",\"Colore del tratto dell'albero per le guide per i rientri.\",\"Colore del bordo del menu.\",\"Colore primo piano delle voci di menu.\",\"Colore di sfondo delle voci di menu.\",\"Colore primo piano della voce di menu selezionata nei menu.\",\"Colore di sfondo della voce di menu selezionata nei menu.\",\"Colore del bordo della voce di menu selezionata nei menu.\",\"Colore di un elemento separatore delle voci di menu.\",\"Colore di sfondo dell'evidenziazione della tabulazione di un frammento.\",\"Colore del bordo dell'evidenziazione della tabulazione di un frammento.\",\"Colore di sfondo dell'evidenziazione della tabulazione finale di un frammento.\",\"Colore del bordo dell'evidenziazione della tabulazione finale di un frammento.\",\"Colore del marcatore del righello delle annotazioni per la ricerca di corrispondenze. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore del righello delle annotazioni per le evidenziazioni delle selezioni. Il colore non deve essere opaco per evitare di nascondere le decorazioni sottostanti.\",\"Colore del marcatore della minimappa per la ricerca delle corrispondenze.\",\"Colore del marcatore della minimappa per la selezione dell'editor.\",\"Colore del marcatore della minimappa per gli errori.\",\"Colore del marcatore della minimappa per gli avvisi.\",\"Colore usato per l'icona di errore dei problemi.\",\"Colore usato per l'icona di avviso dei problemi.\",\"Colore usato per l'icona informazioni dei problemi.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.it.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.ja.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ja\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再発)\",\"{0} (発生 {1} 回目)\"],\"vs/base/browser/ui/findinput/findInput\":[\"入力\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"大文字と小文字を区別する\",\"単語単位で検索する\",\"正規表現を使用する\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"入力\",\"保持する\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"エラー: {0}\",\"警告: {0}\",\"情報: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"バインドなし\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}。移動キーを使用して移動します。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"クリア\",\"型のフィルターを無効にする\",\"型のフィルターを有効にする\",\"要素が見つかりません\",\"{1} 個の要素のうち {0} 個の要素が一致しました\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"コマンド\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"エラー\",\"警告\",\"情報\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}、選択\",\"選択\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"クイック選択。入力すると結果が絞り込まれます。\",\"クイック選択\",\"{0} 件の結果\"],\"vs/editor/browser/controller/coreCommands\":[\"すべて選択(&&S)\",\"元に戻す(&&U)\",\"やり直し(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"現在エディターにアクセスすることはできません。 Alt + F1 キーを押してオプションを選択します。\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"カーソルの数は {0} 個に制限されています。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"一方のファイルが大きすぎるため、ファイルを比較できません。\"],\"vs/editor/browser/widget/diffReview\":[\"閉じる\",\"行なし\",\"1 行\",\"{0} 行\",\"{1} の差異 {0}: 変更前 {2}, {3}, 変更後 {4}, {5}\",\"空白\",\"変更前の {0}、変更後の {1}: {2}\",\"+ 変更後の {0}: {1}\",\"- 変更前の {0}: {1}\",\"次の差分に移動\",\"前の差分に移動\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"削除された行のコピー\",\"削除された行のコピー\",\"削除された行のコピー ({0})\",\"この変更を元に戻す\",\"削除された行のコピー ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"エディター\",\"1 つのタブに相当するスペースの数。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。\",\"`Tab` キーを押すとスペースが挿入されます。`#editor.detectIndentation#` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。\",\"ファイルがファイルの内容に基づいて開かれる場合、`#editor.tabSize#` と `#editor.insertSpaces#` を自動的に検出するかどうかを制御します。\",\"自動挿入された末尾の空白を削除します。\",\"大きなファイルでメモリが集中する特定の機能を無効にするための特別な処理。\",\"ドキュメント内の単語に基づいて入力候補を計算するかどうかを制御します。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"エディターのコンテンツをダブルクリックするか、`Escape` キーを押しても、ピーク エディターを開いたままにします。\",\"この長さを越える行は、パフォーマンス上の理由によりトークン化されません。\",\"差分計算が取り消された後のタイムアウト (ミリ秒単位)。タイムアウトなしには 0 を使用します。\",\"差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します。\",\"差分エディターが、先頭または末尾の空白の変更を差分として表示するかどうかを制御します。\",\"差分エディターが追加/削除された変更に +/- インジケーターを示すかどうかを制御します。\"],\n\"vs/editor/common/config/editorOptions\":[\"エディターはスクリーン リーダーがいつ接続されたかを検出するためにプラットフォーム API を使用します。\",\"エディターは永続的にスクリーン リーダー向けに最適化されます。\",\"エディターはスクリーン リーダー向けに最適化されません。\",\"エディターをスクリーン リーダーに最適化されたモードで実行するかどうかを制御します。\",\"コメント時に空白文字を挿入するかどうかを制御します。\",\"選択範囲を指定しないでコピーする場合に現在の行をコピーするかどうかを制御します。\",\"エディターの選択範囲から検索ウィジェット内の検索文字列を与えるかどうかを制御します。\",\"[選択範囲を検索] を自動的にオンにしない (既定)\",\"[選択範囲を検索] を常に自動的にオンにする\",\"複数行のコンテンツが選択されている場合は、自動的に [選択範囲を検索] をオンにします。\",\"エディターでの検索操作の実行対象を、選択したテキストとファイル全体のどちらにするかを制御します。\",\"macOS で検索ウィジェットが共有の検索クリップボードを読み取りまたは変更するかどうかを制御します。\",\"検索ウィジェットがエディターの上に行をさらに追加するかどうかを制御します。true の場合、検索ウィジェットが表示されているときに最初の行を超えてスクロールできます。\",\"フォントの合字を有効/無効にします。\",\"明示的なフォント機能設定。\",\"フォントの合字を構成します。\",\"フォント サイズ (ピクセル単位) を制御します。\",\"結果のピーク ビューを表示 (既定)\",\"主な結果に移動し、ピーク ビューを表示します\",\"プライマリ結果に移動し、他のユーザーへのピークレス ナビゲーションを有効にします\",\"この設定は非推奨です。代わりに、'editor.editor.gotoLocation.multipleDefinitions' や 'editor.editor.gotoLocation.multipleImplementations' などの個別の設定を使用してください。\",\"複数のターゲットの場所があるときの '定義へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '型定義へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '宣言へ移動' コマンドの動作を制御します。\",\"複数のターゲットの場所があるときの '実装に移動' コマンドの動作を制御します。\",\"ターゲットの場所が複数存在する場合の '参照へ移動' コマンドの動作を制御します。\",\"'定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'型定義へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'宣言へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'実装へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"'参照へ移動' の結果が現在の場所である場合に実行される代替コマンド ID。\",\"ホバーを表示するかどうかを制御します。\",\"ホバーを表示後の待ち時間 (ミリ秒) を制御します。\",\"ホバーにマウスを移動したときに、ホバーを表示し続けるかどうかを制御します。\",\"エディターでコード アクションの電球を有効にします。\",\"行の高さを制御します。フォント サイズに基づいて行の高さを計算する場合には、0 を使用します。\",\"ミニマップを表示するかどうかを制御します。\",\"ミニマップを表示する場所を制御します。\",\"ミニマップ スライダーを表示するタイミングを制御します。\",\"ミニマップに描画されるコンテンツのスケール。\",\"行にカラー ブロックではなく実際の文字を表示します。\",\"表示するミニマップの最大幅を特定の列数に制限します。\",\"入力時にパラメーター ドキュメントと型情報を表示するポップアップを有効にします。\",\"パラメーター ヒント メニューを周回するか、リストの最後で閉じるかどうかを制御します。\",\"文字列内でクイック候補を有効にします。\",\"コメント内でクイック候補を有効にします。\",\"文字列およびコメント外でクイック候補を有効にします。\",\"入力中に候補を自動的に表示するかどうかを制御します。\",\"行番号は表示されません。\",\"行番号は、絶対値として表示されます。\",\"行番号は、カーソル位置までの行数として表示されます。\",\"行番号は 10 行ごとに表示されます。\",\"行番号の表示を制御します。\",\"特定の等幅文字数の後に垂直ルーラーを表示します。複数のルーラーには複数の値を使用します。配列が空の場合はルーラーを表示しません。\",\"カーソルの右のテキストを上書きせずに候補を挿入します。\",\"候補を挿入し、カーソルの右のテキストを上書きします。\",\"入力候補を受け入れるときに単語を上書きするかどうかを制御します。これは、この機能の利用を選択する拡張機能に依存することにご注意ください。\",\"入力候補を受け入れている間の予期しないテキストの変更を強調表示するかどうかを制御します。たとえば、`insertMode` は `replace` ですが、入力候補は `insert` のみをサポートしています。\",\"候補のフィルター処理と並び替えでささいな入力ミスを考慮するかどうかを制御します。\",\"並べ替えがカーソル付近に表示される単語を優先するかどうかを制御します。\",\"保存された候補セクションを複数のワークプレースとウィンドウで共有するかどうかを制御します (`#editor.suggestSelection#` が必要)。\",\"アクティブなスニペットがクイック候補を止めるかどうかを制御します。\",\"提案のアイコンを表示するか、非表示にするかを制御します。\",\"スクロール バーを表示する前に IntelliSense が表示する候補の数を制御します (最大 15 個)。\",\"この設定は非推奨です。代わりに、'editor.suggest.showKeywords' や 'editor.suggest.showSnippets' などの個別の設定を使用してください。\",\"有効にすると、IntelliSense に `メソッド` 候補が表示されます。\",\"有効にすると、IntelliSense に `関数` 候補が表示されます。\",\"有効にすると、IntelliSense に `コンストラクター` 候補が表示されます。\",\"有効にすると、IntelliSense に `フィールド` 候補が表示されます。\",\"有効にすると、IntelliSense に `変数` 候補が表示されます。\",\"有効にすると、IntelliSense に 'クラス' 候補が表示されます。\",\"有効にすると、IntelliSense に `構造体` 候補が表示されます。\",\"有効にすると、IntelliSense に `インターフェイス` 候補が表示されます。\",\"有効にすると、IntelliSense に `モジュール` 候補が表示されます。\",\"有効にすると、IntelliSense に `プロパティ` 候補が表示されます。\",\"有効にすると、IntelliSense に `イベント` 候補が表示されます。\",\"有効にすると、IntelliSense に `演算子` 候補が表示されます。\",\"有効にすると、IntelliSense に `ユニット` 候補が表示されます。\",\"有効にすると、IntelliSense に `値` 候補が表示されます。\",\"有効にすると、IntelliSense に `定数` 候補が表示されます。\",\"有効にすると、IntelliSense に `列挙型` 候補が表示されます。\",\"有効にすると、IntelliSense に `enumMember` 候補が表示されます。\",\"有効にすると、IntelliSense に `キーワード` 候補が表示されます。\",\"有効にすると、IntelliSense に 'テキスト' -候補が表示されます。\",\"有効にすると、IntelliSense に `色` 候補が表示されます。\",\"有効にすると、IntelliSense に 'ファイル' 候補が表示されます。\",\"有効にすると、IntelliSense に `参照` 候補が表示されます。\",\"有効にすると、IntelliSense に `customcolor` 候補が表示されます。\",\"有効にすると、IntelliSense に `フォルダー` 候補が表示されます。\",\"有効にすると、IntelliSense に `typeParameter` 候補が表示されます。\",\"有効にすると、IntelliSense に `スニペット` 候補が表示されます。\",\"候補ウィジェットの下部にあるステータス バーの表示を制御します。\",\"コミット文字で候補を受け入れるかどうかを制御します。たとえば、JavaScript ではセミコロン (`;`) をコミット文字にして、候補を受け入れてその文字を入力することができます。\",\"テキストの変更を行うとき、`Enter` を使用する場合にのみ候補を受け付けます。\",\"`Tab` キーに加えて `Enter` キーで候補を受け入れるかどうかを制御します。改行の挿入や候補の反映の間であいまいさを解消するのに役立ちます。\",\"スクリーン リーダーで読み上げることができるエディターの行数を制御します。警告: 既定値を上回る数を指定すると、パフォーマンスに影響を与えます。\",\"エディターのコンテンツ\",\"言語設定を使用して、いつかっこを自動クローズするか決定します。\",\"カーソルが空白文字の左にあるときだけ、かっこを自動クローズします。\",\"エディターで左角かっこを追加した後に自動的に右角かっこを挿入するかどうかを制御します。\",\"終わり引用符または括弧が自動的に挿入された場合にのみ、それらを上書きします。\",\"エディターで終わり引用符または括弧を上書きするかどうかを制御します。\",\"言語設定を使用して、いつ引用符を自動クローズするか決定します。\",\"カーソルが空白文字の左にあるときだけ、引用符を自動クローズします。\",\"ユーザーが開始引用符を追加した後、エディター自動的に引用符を閉じるかどうかを制御します。\",\"エディターはインデントを自動的に挿入しません。\",\"エディターは、現在の行のインデントを保持します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出します。\",\"エディターは、現在の行のインデントを保持し、言語が定義されたかっこを優先し、言語で定義された特別な onEnterRules を呼び出し、言語で定義された indentationRules を優先します。\",\"ユーザーが行を入力、貼り付け、移動、またはインデントするときに、エディターでインデントを自動的に調整するかどうかを制御します。\",\"言語構成を使用して、選択範囲をいつ自動的に囲むかを判断します。\",\"角かっこではなく、引用符で囲みます。\",\"引用符ではなく、角かっこで囲みます。\",\"エディターが自動的に選択範囲を囲む必要があるかどうかを制御します。\",\"エディターで CodeLens を表示するかどうかを制御します。\",\"エディターでインライン カラー デコレーターと色の選択を表示する必要があるかどうかを制御します。\",\"構文ハイライトをクリップボードにコピーするかどうかを制御します。\",\"カーソルのアニメーション方式を制御します。\",\"滑らかなキャレットアニメーションを有効にするかどうかを制御します。\",\"カーソルのスタイルを制御します。\",\"カーソル前後の表示可能な先頭と末尾の行の最小数を制御します。他の一部のエディターでは 'scrollOff' または `scrollOffset` と呼ばれます。\",\"`cursorSurroundingLines` は、キーボードまたは API でトリガーされた場合にのみ強制されます。\",\"`cursorSurroundingLines` は常に適用されます。\",\"'カーソルの周囲の行' を適用するタイミングを制御します。\",\"`#editor.cursorStyle#` が `line` に設定されている場合、カーソルの幅を制御します。\",\"ドラッグ アンド ドロップによる選択範囲の移動をエディターが許可するかどうかを制御します。\",\"`Alt` を押すと、スクロール速度が倍増します。\",\"エディターでコードの折りたたみを有効にするかどうかを制御します。\",\"折りたたみ範囲の計算方式を制御します。`auto` は利用可能であれば言語固有の折りたたみ方式を使用します。`indentation` はインデントに基づく折りたたみ方式を使用します。\",\"エディターで折りたたまれた範囲を強調表示するかどうかをコントロールします。\",\"フォント ファミリを制御します。\",\"フォントの太さを制御します。\",\"貼り付けた内容がエディターにより自動的にフォーマットされるかどうかを制御します。フォーマッタを使用可能にする必要があります。また、フォーマッタがドキュメント内の範囲をフォーマットできなければなりません。\",\"エディターで入力後に自動的に行のフォーマットを行うかどうかを制御します。\",\"エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。\",\"概要ルーラーでカーソルを非表示にするかどうかを制御します。\",\"エディターでアクティブなインデントのガイドを強調表示するかどうかを制御します。\",\"文字間隔 (ピクセル単位) を制御します。\",\"エディターがリンクを検出してクリック可能な状態にするかどうかを制御します。\",\"対応するかっこを強調表示します。\",\"マウス ホイール スクロール イベントの `deltaX` と `deltaY` で使用される乗数。\",\"`Ctrl` キーを押しながらマウス ホイールを使用してエディターのフォントをズームします。\",\"複数のカーソルが重なっているときは、マージします。\",\"Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。\",\"Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。\",\"マウスを使用して複数のカーソルを追加するときに使用する修飾キーです。「定義に移動」や「リンクを開く」のマウス操作は、マルチカーソルの修飾キーと競合しないように適用されます。[詳細](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)\",\"カーソルごとにテキストを 1 行ずつ貼り付けます。\",\"各カーソルは全文を貼り付けます。\",\"貼り付けたテキストの行数がカーソル数と一致する場合の貼り付けを制御します。\",\"エディターでセマンティック シンボルの出現箇所を強調表示するかどうかを制御します。\",\"概要ルーラーの周囲に境界線が描画されるかどうかを制御します。\",\"ピークを開くときにツリーにフォーカスします\",\"ピークを開くときにエディターにフォーカスする\",\"ピーク ウィジェットのインライン エディターまたはツリーをフォーカスするかどうかを制御します。\",\"クイック候補が表示されるまでのミリ秒を制御します。\",\"エディターで制御文字を表示するかどうかを制御します。\",\"エディターでインデント ガイドを表示するかどうかを制御します。\",\"ファイルの末尾が改行の場合は、最後の行番号を表示します。\",\"余白と現在の行を強調表示します。\",\"エディターが現在の行をどのように強調表示するかを制御します。\",\"Render whitespace characters except for single spaces between words.\",\"選択したテキストにのみ空白文字を表示します。\",\"エディターで空白文字を表示するかどうかを制御します。\",\"選択範囲の角を丸くするかどうかを制御します。\",\"エディターが水平方向に余分にスクロールする文字数を制御します。\",\"エディターが最後の行を越えてスクロールするかどうかを制御します。\",\"Linux の PRIMARY クリップボードをサポートするかどうかを制御します。\",\"エディターが選択項目と類似の一致項目を強調表示するかどうかを制御します。\",\"余白上の折りたたみコントロールを自動的に非表示にするかどうかを制御します。\",\"使用されていないコードのフェードアウトを制御します。\",\"他の候補の上にスニペットの候補を表示します。\",\"他の候補の下にスニペットの候補を表示します。\",\"他の候補と一緒にスニペットの候補を表示します。\",\"スニペットの候補を表示しません。\",\"他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。\",\"アニメーションでエディターをスクロールするかどうかを制御します。\",\"候補ウィジェットのフォント サイズ。`0` に設定すると、`#editor.fontSize#` の値が使用されます。\",\"候補ウィジェットの行の高さ。`0` に設定すると、`#editor.lineHeight#` の値が使用されます。\",\"トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します。\",\"常に最初の候補を選択します。\",\"`console.| -> console.log` などと選択対象に関して入力しない限りは、最近の候補を選択します。`log` は最近完了したためです。\",\"これらの候補を完了した以前のプレフィックスに基づいて候補を選択します。例: `co -> console` および `con -> const`。\",\"候補リストを表示するときに候補を事前に選択する方法を制御します。\",\"タブ補完は、tab キーを押したときに最適な候補を挿入します。\",\"タブ補完を無効にします。\",\"プレフィックスが一致する場合に、タブでスニペットを補完します。'quickSuggestions' が無効な場合に最適です。\",\"タブ補完を有効にします。\",\"空白の挿入や削除はタブ位置に従って行われます。\",\"単語に関連したナビゲーションまたは操作を実行するときに、単語の区切り文字として使用される文字。\",\"行を折り返しません。\",\"行をビューポートの幅で折り返します。\",\"`#editor.wordWrapColumn#` で行を折り返します。\",\"ビューポートと `#editor.wordWrapColumn#` の最小値で行を折り返します。\",\"行の折り返し方法を制御します。\",\"`#editor.wordWrap#` が `wordWrapColumn` または `bounded` の場合に、エディターの折り返し桁を制御します。\",\"インデントしません。 折り返し行は列 1 から始まります。\",\"折り返し行は、親と同じインデントになります。\",\"折り返し行は、親 +1 のインデントになります。\",\"折り返し行は、親 +2 のインデントになります。\",\"折り返し行のインデントを制御します。\",\"すべての文字の幅が同じであると仮定します。これは、モノスペース フォントや、グリフの幅が等しい特定のスクリプト (ラテン文字など) で正しく動作する高速アルゴリズムです。\",\"折り返しポイントの計算をブラウザーにデリゲートします。これは、大きなファイルのフリーズを引き起こす可能性があるものの、すべてのケースで正しく動作する低速なアルゴリズムです。\",\"折り返しポイントを計算するアルゴリズムを制御します。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"プレーンテキスト\"],\n\"vs/editor/common/standaloneStrings\":[\"選択されていません\",\"行 {0}、列 {1} ({2} 個選択済み)\",\"行 {0}、列 {1}\",\"{0} 個の選択項目 ({1} 文字を選択)\",\"{0} 個の選択項目\",\"`accessibilitySupport` 設定を 'on' に変更しています。\",\"エディターのアクセシビリティに関連するドキュメント ページを開いています。\",\"差分エディターの読み取り専用ウィンドウ内。\",\"差分エディターのウィンドウ内。\",\"読み取り専用コード エディター内\",\"コード エディター内\",\"エディターを構成してスクリーン エディターで使用するように最適化するには、Command+E を押してください。\",\"エディターを構成してスクリーン リーダーで使用するように最適化するには、Control+E を押します。\",\"エディターは、スクリーン リーダーで使用するよう最適化されるように構成されています。\",\"エディターは、スクリーン リーダーで使用するよう最適化されないように構成されていますが、現時点でこの設定は当てはまりません。\",\"現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。{0} を押すと、この動作が切り替わります。\",\"現在のエディターで Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します。コマンド {0} は、キー バインドでは現在トリガーできません。\",\"現在のエディターで Tab キーを押すと、タブ文字が挿入されます。{0} を押すと、この動作が切り替わります。\",\"現在のエディターで Tab キーを押すと、タブ文字が挿入されます。コマンド {0} は、キー バインドでは現在トリガーできません。\",\"エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Command+H を押してください。\",\"エディターのアクセシビリティに関する詳細情報が記されたブラウザー ウィンドウを開くには、Control+H を押してください。\",\"Esc キー か Shift+Esc を押すと、ヒントを消してエディターに戻ることができます。\",\"アクセシビリティのヘルプを表示します\",\"開発者: トークンの検査\",\"行 {0} 文字 {1} へ移動\",\"行 {0} へ移動\",\"移動先の行番号を 1 ～ {0} の範囲で入力してください\",\"移動先を 1 から {0} までの文字で入力\",\"現在の行: {0}。 {1} 行目に移動。\",\"移動先の行番号と、必要な場合はその後にコロンと文字番号を入力してください\",\"指定行へ移動...\",\"{0}、{1}、コマンド\",\"{0}、コマンド\",\"実行するアクションの名前を入力\",\"コマンド パレット\",\"{0}、シンボル\",\"移動先の識別子の名前を入力します\",\"シンボルに移動...\",\"シンボル ({0})\",\"モジュール ({0})\",\"クラス ({0})\",\"インターフェイス ({0})\",\"メソッド ({0})\",\"関数 ({0})\",\"プロパティ ({0})\",\"変数 ({0})\",\"変数 ({0})\",\"コンストラクター ({0})\",\"({0}) を呼び出す\",\"エディターのコンテンツ\",\"アクセシビリティ オプションを表示するには Ctrl+F1 を押します。\",\"アクティビティ オプションを表示するには、Alt+F1 キーを押します。\",\"ハイ コントラスト テーマの切り替え\",\"{1} 個のファイルに {0} 個の編集が行われました\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"カーソル位置の行を強調表示する背景色。\",\"カーソル位置の行の境界線を強調表示する背景色。\",\"(Quick Open や検出機能などにより) 強調表示されている範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"強調表示された範囲の境界線の背景色。\",\"強調表示された記号の背景色 (定義へ移動、次または前の記号へ移動など)。基になる装飾が覆われないようにするため、色を不透明にすることはできません。\",\"強調表示された記号の周りの境界線の背景色。\",\"エディターのカーソルの色。\",\"選択された文字列の背景色です。選択された文字列の背景色をカスタマイズ出来ます。\",\"エディターのスペース文字の色。\",\"エディター インデント ガイドの色。\",\"アクティブなエディターのインデント ガイドの色。\",\"エディターの行番号の色。\",\"エディターのアクティブ行番号の色\",\"id は使用しないでください。代わりに 'EditorLineNumber.activeForeground' を使用してください。\",\"エディターのアクティブ行番号の色\",\"エディター ルーラーの色。\",\"CodeLens エディターの前景色。\",\"一致するかっこの背景色\",\"一致するかっこ内のボックスの色\",\"概要ルーラーの境界色。\",\"エディターの余白の背景色。余白にはグリフ マージンと行番号が含まれます。\",\"エディターでの不要な (未使用の) ソース コードの罫線の色。\",\"エディター内の不要な (未使用の) ソース コードの不透明度。たとえば、\\\"#000000c0\\\" は不透明度 75% でコードを表示します。ハイ コントラストのテーマの場合、'editorUnnecessaryCode.border' テーマ色を使用して、不要なコードをフェードアウトするのではなく下線を付けます。\",\"エラーを示す概要ルーラーのマーカー色。\",\"警告を示す概要ルーラーのマーカー色。\",\"情報を示す概要ルーラーのマーカー色。\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"一致するブラケットを示す概要ルーラーのマーカー色。\",\"ブラケットへ移動\",\"ブラケットに選択\",\"ブラケットに移動(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"キャレットを左に移動\",\"キャレットを右に移動\"],\"vs/editor/contrib/caretOperations/transpose\":[\"文字の入れ替え\"],\"vs/editor/contrib/clipboard/clipboard\":[\"切り取り\",\"切り取り(&&T)\",\"コピー\",\"コピー(&&C)\",\"貼り付け\",\"貼り付け(&&P)\",\"構文を強調表示してコピー\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"実行するコード アクションの種類。\",\"返されたアクションが適用されるタイミングを制御します。\",\"最初に返されたコード アクションを常に適用します。\",\"最初に返されたコード アクション以外に返されたコード アクションがない場合は、そのアクションを適用します。\",\"返されたコード アクションは適用しないでください。\",\"優先コード アクションのみを返すかどうかを制御します。\",\"コード アクションの適用中に不明なエラーが発生しました\",\"クイック フィックス...\",\"利用可能なコード アクションはありません\",\"'{0}' に対して使用できる優先コード アクションがありません\",\"{0}' に対して使用できるコード アクションがありません\",\"使用できる優先コード アクションがありません\",\"利用可能なコード アクションはありません\",\"リファクター...\",\"'{0}' に対して使用できる優先リファクタリングがありません\",\"'{0}' に対して使用できるリファクタリングがありません\",\"使用できる優先リファクタリングがありません\",\"利用可能なリファクタリングはありません\",\"ソース アクション...\",\"'{0}' に対して使用できる優先ソース アクションがありません\",\"'{0}' に対して使用できるソース アクションがありません\",\"使用できる優先ソース アクションがありません\",\"利用可能なソース アクションはありません\",\"インポートを整理\",\"利用可能なインポートの整理アクションはありません\",\"すべて修正\",\"すべてを修正するアクションは利用できません\",\"自動修正...\",\"利用可能な自動修正はありません\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"修正プログラムを表示します。推奨される利用可能な修正プログラム ({0})\",\"修正プログラム ({0}) を表示する\",\"修正プログラムを表示する\"],\n\"vs/editor/contrib/comment/comment\":[\"行コメントの切り替え\",\"行コメントの切り替え(&&T)\",\"行コメントの追加\",\"行コメントの削除\",\"ブロック コメントの切り替え\",\"ブロック コメントの切り替え(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"エディターのコンテキスト メニューの表示\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"カーソルを元に戻す\",\"カーソルのやり直し\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"配列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"ブール値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"クラス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"色記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"定数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"コンストラクター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"列挙子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"列挙子メンバー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"イベント記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"フィールド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"ファイル記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"フォルダー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"関数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"インターフェイス記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"キー記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"キーワード記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"メソッド記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"モジュール記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"名前空間記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"Null 記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"数値記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"オブジェクト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"演算子記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"パッケージ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"プロパティ記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"参照記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"スニペット記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"文字列記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"構造体記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"テキスト記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"パラメーター記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"単位記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\",\"変数記号の前景色。これらの記号は、アウトライン、階層リンク、および候補のウィジェットに表示されます。\"],\n\"vs/editor/contrib/find/findController\":[\"検索\",\"検索(&&F)\",\"選択範囲で検索\",\"次を検索\",\"次を検索\",\"前を検索\",\"前を検索\",\"次の選択項目を検索\",\"前の選択項目を検索\",\"置換\",\"置換(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"検索\",\"検索\",\"前の検索結果\",\"次の一致項目\",\"選択範囲を検索\",\"閉じる\",\"置換\",\"置換\",\"置換\",\"すべて置換\",\"置換モードの切り替え\",\"最初の {0} 件の結果だけが強調表示されますが、すべての検索操作はテキスト全体で機能します。\",\"{0} / {1} 件\",\"結果はありません。\",\"{0} が見つかりました\",\"{0} が {1} で見つかりました\",\"{0} が {2} に {1} で見つかりました\",\"{0} が {1} で見つかりました\",\"Ctrl + Enter キーを押すと、すべて置換するのではなく、改行が挿入されるようになりました。editor.action.replaceAll のキーバインドを変更して、この動作をオーバーライドできます。\"],\"vs/editor/contrib/folding/folding\":[\"展開\",\"再帰的に展開する\",\"折りたたみ\",\"折りたたみの切り替え\",\"再帰的に折りたたむ\",\"すべてのブロック コメントの折りたたみ\",\"すべての領域を折りたたむ\",\"すべての領域を展開\",\"すべて折りたたみ\",\"すべて展開\",\"レベル {0} で折りたたむ\",\"エディターの選択範囲の色。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"エディターのフォントを拡大\",\"エディターのフォントを縮小\",\"エディターのフォントのズームをリセット\"],\"vs/editor/contrib/format/format\":[\"行 {0} で 1 つの書式設定を編集\",\"行 {1} で {0} 個の書式設定を編集\",\"行 {0} と {1} の間で 1 つの書式設定を編集\",\"行 {1} と {2} の間で {0} 個の書式設定を編集\"],\"vs/editor/contrib/format/formatActions\":[\"ドキュメントのフォーマット\",\"選択範囲のフォーマット\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"次の問題 (エラー、警告、情報) へ移動\",\"前の問題 (エラー、警告、情報) へ移動\",\"ファイル内の次の問題 (エラー、警告、情報) へ移動\",\"ファイル内の前の問題 (エラー、警告、情報) へ移動\",\"次の問題箇所(&&P)\",\"前の問題箇所(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{1} 件中 {0} 件の問題\",\"問題 {0} / {1}\",\"エディターのマーカー ナビゲーション ウィジェットのエラーの色。\",\"エディターのマーカー ナビゲーション ウィジェットの警告の色。\",\"エディターのマーカー ナビゲーション ウィジェットの情報の色。\",\"エディターのマーカー ナビゲーション ウィジェットの背景。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"ピーク\",\"定義\",\"'{0}' の定義は見つかりません\",\"定義が見つかりません\",\"定義へ移動\",\"定義に移動(&&D)\",\"定義を横に開く\",\"定義をここに表示\",\"宣言\",\"'{0}' の宣言が見つかりません\",\"宣言が見つかりません\",\"宣言へ移動\",\"宣言へ移動(&&D)\",\"'{0}' の宣言が見つかりません\",\"宣言が見つかりません\",\"宣言をここに表示\",\"型定義\",\"'{0}' の型定義が見つかりません\",\"型定義が見つかりません\",\"型定義へ移動\",\"型定義に移動(&&T)\",\"型定義を表示\",\"実装\",\"'{0}' の実装が見つかりません\",\"実装が見つかりません\",\"実装へ移動\",\"実装箇所に移動\",\"実装のピーク\",\"'{0}' の参照が見つかりません\",\"参照が見つかりません\",\"参照へ移動\",\"参照へ移動(&&R)\",\"参照設定\",\"参照をここに表示\",\"参照設定\",\"任意の記号へ移動\",\"場所\",\"'{0}' の結果がありません\",\"参照設定\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"クリックして、{0} の定義を表示します。\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"読み込んでいます...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"ファイルを解決できませんでした。\",\"{0} 個の参照\",\"{0} 個の参照\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"プレビューを表示できません\",\"参照設定\",\"結果はありません。\",\"参照設定\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"列 {2} の {1} 行目に {0} つのシンボル\",\"{0} に 1 個のシンボル、完全なパス {1}\",\"{1} に {0} 個のシンボル、完全なパス {2}\",\"一致する項目はありません\",\"{0} に 1 個のシンボルが見つかりました\",\"{1} に {0} 個のシンボルが見つかりました\",\"{1} 個のファイルに {0} 個のシンボルが見つかりました\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} のシンボル {0}、次に {2}\",\"シンボル {0}/{1}\"],\"vs/editor/contrib/hover/hover\":[\"ホバーの表示\",\"定義プレビューのホバーを表示する\"],\"vs/editor/contrib/hover/modesContentHover\":[\"読み込んでいます...\",\"問題を表示\",\"クイックフィックスを確認しています...\",\"利用できるクイックフィックスはありません\",\"クイック フィックス...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"前の値に置換\",\"次の値に置換\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"行を上へコピー\",\"行を上へコピー(&&C)\",\"行を下へコピー\",\"行を下へコピー(&&P)\",\"選択範囲の複製\",\"選択範囲の複製(&&D)\",\"行を上へ移動\",\"行を上へ移動(&&V)\",\"行を下へ移動\",\"行を下へ移動(&&L)\",\"行を昇順に並べ替え\",\"行を降順に並べ替え\",\"末尾の空白のトリミング\",\"行の削除\",\"行のインデント\",\"行のインデント解除\",\"行を上に挿入\",\"行を下に挿入\",\"左側をすべて削除\",\"右側をすべて削除\",\"行をつなげる\",\"カーソルの周囲の文字を入れ替える\",\"大文字に変換\",\"小文字に変換\",\"先頭文字を大文字に変換する\"],\"vs/editor/contrib/links/links\":[\"コマンドの実行\",\"リンク先を表示\",\"cmd + クリック\",\"ctrl + クリック\",\"option + クリック\",\"alt + クリック\",\"このリンクは形式が正しくないため開くことができませんでした: {0}\",\"このリンクはターゲットが存在しないため開くことができませんでした。\",\"リンクを開く\"],\"vs/editor/contrib/message/messageController\":[\"読み取り専用のエディターは編集できません\"],\"vs/editor/contrib/multicursor/multicursor\":[\"カーソルを上に挿入\",\"カーソルを上に挿入(&&A)\",\"カーソルを下に挿入\",\"カーソルを下に挿入(&&D)\",\"カーソルを行末に挿入\",\"カーソルを行末に挿入(&&U)\",\"カーソルを下に挿入\",\"カーソルを上に挿入\",\"選択した項目を次の一致項目に追加\",\"次の出現個所を追加(&&N)\",\"選択項目を次の一致項目に追加\",\"前の出現箇所を追加(&&R)\",\"最後に選択した項目を次の一致項目に移動\",\"最後に選んだ項目を前の一致項目に移動する\",\"一致するすべての出現箇所を選択します\",\"すべての出現箇所を選択(&&O)\",\"すべての出現箇所を変更\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"パラメーター ヒントをトリガー\"],\n\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}、ヒント\"],\"vs/editor/contrib/peekView/peekView\":[\"閉じる\",\"ピーク ビューのタイトル領域の背景色。\",\"ピーク ビュー タイトルの色。\",\"ピーク ビューのタイトル情報の色。\",\"ピーク ビューの境界と矢印の色。\",\"ピーク ビュー結果リストの背景色。\",\"ピーク ビュー結果リストのライン ノードの前景色。\",\"ピーク ビュー結果リストのファイル ノードの前景色。\",\"ピーク ビュー結果リストの選択済みエントリの背景色。\",\"ピーク ビュー結果リストの選択済みエントリの前景色。\",\"ピーク ビュー エディターの背景色。\",\"ピーク ビュー エディターの余白の背景色。\",\"ピーク ビュー結果リストの一致した強調表示色。\",\"ピーク ビュー エディターの一致した強調表示色。\",\"ピーク ビュー エディターの一致した強調境界色。\"],\"vs/editor/contrib/rename/rename\":[\"結果がありません。\",\"名前変更の場所を解決しようとして不明なエラーが発生しました\",\"'{0}' の名前を変更しています\",\"'{0}' から '{1}' への名前変更が正常に完了しました。概要: {2}\",\"名前の変更で編集を適用できませんでした\",\"名前の変更によって編集の計算に失敗しました\",\"シンボルの名前変更\",\"名前を変更する前に変更をプレビューする機能を有効または無効にする\"],\"vs/editor/contrib/rename/renameInputField\":[\"名前変更入力。新しい名前を入力し、Enter キーを押してコミットしてください。\",\"名前変更用の {0}、プレビュー用の {1}\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"選択範囲を拡張\",\"選択範囲の展開(&&E)\",\"選択範囲を縮小\",\"選択範囲の縮小(&&S)\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\",\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\",\"1 月\",\"2 月\",\"3 月\",\"4 月\",\"5 月\",\"6 月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\",\"1 月\",\"2 月\",\"3 月\",\"4 月\",\"5 月\",\"6 月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\"],\"vs/editor/contrib/suggest/suggestController\":[\"{1} が追加編集した '{0}' を受け入れる\",\"候補をトリガー\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"候補のウィジェットの背景色。\",\"候補ウィジェットの境界線色。\",\"候補ウィジェットの前景色。\",\"候補ウィジェット内で選択済みエントリの背景色。\",\"候補のウィジェット内で一致したハイライトの色。\",\"詳細を表示...{0}\",\"詳細を隠す...{0}\",\"読み込んでいます...\",\"読み込んでいます...\",\"候補はありません。\",\"さらに少なくするには {0}...\",\"さらに多くするには {0}...\",\"アイテム {0}、ドキュメント: {1}\",\"挿入する {0}、置き換える {1}\",\"置換する {0}、挿入する {1}\",\"受け入れる {0}\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Tab キーを切り替えるとフォーカスが移動します\",\"Tab キーを押すと、次のフォーカス可能な要素にフォーカスを移動します\",\"Tab キーを押すと、タブ文字が挿入されます\"],\"vs/editor/contrib/tokenization/tokenization\":[\"開発者: トークン再作成の強制\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"変数の読み取りなど、読み取りアクセス中のシンボルの背景色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"変数への書き込みなど、書き込みアクセス中のシンボル背景色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"変数の読み取りなど読み取りアクセス中のシンボルの境界線の色。\",\"変数への書き込みなど書き込みアクセス中のシンボルの境界線の色。\",\"シンボルによって強調表示される概要ルーラーのマーカーの色。マーカーの色は、基になる装飾を隠さないように不透明以外にします。\",\"書き込みアクセス シンボルを強調表示する概要ルーラーのマーカー色。下にある装飾を隠さないために、色は不透過であってはなりません。\",\"次のシンボル ハイライトに移動\",\"前のシンボル ハイライトに移動\",\"シンボル ハイライトをトリガー\"],\"vs/platform/configuration/common/configurationRegistry\":[\"既定の構成オーバーライド\",\"言語に対して上書きされるエディター設定を構成します。\",\"この設定では、言語ごとの構成はサポートされていません。\",\"'{0}' を登録できません。これは、言語固有のエディター設定を記述するプロパティ パターン '\\\\\\\\[.*\\\\\\\\]$' に一致しています。'configurationDefaults' コントリビューションを使用してください。\",\"'{0}' を登録できません。このプロパティは既に登録されています。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) が押されました。2 番目のキーを待っています...\",\"キーの組み合わせ ({0}、{1}) はコマンドではありません。\"],\n\"vs/platform/list/browser/listService\":[\"ワークベンチ\",\"Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。\",\"Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。\",\"マウスを使用して項目を複数選択するときに使用する修飾キーです (たとえば、エクスプローラーでエディターと scm ビューを開くなど)。'横に並べて開く' マウス ジェスチャー (がサポートされている場合) は、複数選択の修飾キーと競合しないように調整されます。\",\"マウスを使用して、ツリー リスト内の項目を開く方法を制御します (サポートされている場合)。ツリー内の子を持つ親項目で、この設定は親項目をシングル クリックで展開するか、ダブル クリックで展開するかどうかを制御します。この設定の選択 (適応するかどうか) を無視するツリー リストがあることに注意してください。\",\"リストやツリーがワークベンチの水平スクロールをサポートするかどうかを制御します。\",\"ワークベンチでツリーが水平スクロールをサポートするかどうかを制御します。\",\"この設定は推奨されていません。代わりに '{0}' を使用してください。\",\"ツリーのインデントをピクセル単位で制御します。\",\"ツリーでインシデントのガイドを表示する必要があるかどうかを制御します。\",\"簡単なキーボード ナビゲーションは、キーボード入力に一致する要素に焦点を当てます。一致処理はプレフィックスでのみ実行されます。\",\"キーボード ナビゲーションの強調表示を使用すると、キーボード入力に一致する要素が強調表示されます。上および下への移動は、強調表示されている要素のみを移動します。\",\"キーボード ナビゲーションのフィルターでは、キーボード入力に一致しないすべての要素がフィルター処理され、非表示になります。\",\"ワークベンチのリストおよびツリーのキーボード ナビゲーション スタイルを制御します。単純、強調表示、フィルターを指定できます。\",\"リストやツリーでのキーボード ナビゲーションを、単に入力するだけで自動的にトリガーするかどうかを制御します。`false` に設定した場合、キーボード ナビゲーションは `list.toggleKeyboardNavigation` コマンドを実行したときにのみトリガーされます。これに対してキーボード ショートカットを割り当てることができます。\"],\n\"vs/platform/markers/common/markers\":[\"エラー\",\"警告\",\"情報\"],\n\"vs/platform/theme/common/colorRegistry\":[\"全体の前景色。この色は、コンポーネントによってオーバーライドされていない場合にのみ使用されます。\",\"エラー メッセージ全体の前景色。この色は、コンポーネントによって上書きされていない場合にのみ使用されます。\",\"フォーカスされた要素の境界線全体の色。この色はコンポーネントによって上書きされていない場合にのみ使用されます。\",\"コントラストを強めるために、他の要素と隔てる追加の境界線。\",\"コントラストを強めるために、アクティブな他要素と隔てる追加の境界線。\",\"テキスト内のリンクの前景色。\",\"テキスト内のコード ブロックの背景色。\",\"エディター内の検索/置換窓など、エディター ウィジェットの影の色。\",\"入力ボックスの背景。\",\"入力ボックスの前景。\",\"入力ボックスの境界線。\",\"入力フィールドのアクティブ オプションの境界線の色。\",\"入力フィールドでアクティブ化されたオプションの背景色。\",\"情報の重大度を示す入力検証の背景色。\",\"情報の重大度を示す入力検証の前景色。\",\"情報の重大度を示す入力検証の境界線色。\",\"警告の重大度を示す入力検証の背景色。\",\"警告の重大度を示す入力検証の前景色。\",\"警告の重大度を示す入力検証の境界線色。\",\"エラーの重大度を示す入力検証の背景色。\",\"エラーの重大度を示す入力検証の前景色。\",\"エラーの重大度を示す入力検証の境界線色。\",\"ドロップダウンの背景。\",\"ドロップダウンの前景。\",\"ラベルをグループ化するためのクリック選択の色。\",\"境界線をグループ化するためのクイック選択の色。\",\"バッジの背景色。バッジとは小さな情報ラベルのことです。例:検索結果の数\",\"バッジの前景色。バッジとは小さな情報ラベルのことです。例:検索結果の数\",\"ビューがスクロールされたことを示すスクロール バーの影。\",\"スクロール バーのスライダーの背景色。\",\"ホバー時のスクロール バー スライダー背景色。\",\"クリック時のスクロール バー スライダー背景色。\",\"時間のかかる操作で表示するプログレス バーの背景色。\",\"エディターでエラーを示す波線の前景色。\",\"エディター内のエラー ボックスの境界線の色です。\",\"エディターで警告を示す波線の前景色。\",\"エディターでの警告ボックスの境界線の色です。\",\"エディターで情報を示す波線の前景色。\",\"エディター内の情報ボックスの境界線の色です。\",\"エディターでヒントを示す波線の前景色。\",\"エディター内のヒント ボックスの境界線の色。\",\"エディターの背景色。\",\"エディターの既定の前景色。\",\"検索/置換窓など、エディター ウィジェットの背景色。\",\"検索/置換などを行うエディター ウィジェットの前景色。\",\"エディター ウィジェットの境界線色。ウィジェットに境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。\",\"エディター ウィジェットのサイズ変更バーの境界線色。ウィジェットにサイズ変更の境界線があり、ウィジェットによって配色を上書きされていない場合でのみこの配色は使用されます。\",\"エディターの選択範囲の色。\",\"ハイ コントラストの選択済みテキストの色。\",\"非アクティブなエディターの選択範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲の同じコンテンツの領域の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲と同じコンテンツの境界線の色。\",\"現在の検索一致項目の色。\",\"その他の検索条件に一致する項目の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"検索を制限する範囲の色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"現在の検索一致項目の境界線の色。\",\"他の検索一致項目の境界線の色。\",\"検索を制限する範囲の境界線色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"ホバーが表示されている語の下を強調表示します。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"エディター ホバーの背景色。\",\"エディター ホバーの前景色。\",\"エディター ホバーの境界線の色。\",\"エディターのホバーのステータス バーの背景色。\",\"アクティブなリンクの色。\",\"電球アクション アイコンに使用する色。\",\"自動修正の電球アクション アイコンとして使用される色。\",\"挿入されたテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"削除したテキストの背景色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"挿入されたテキストの輪郭の色。\",\"削除されたテキストの輪郭の色。\",\"2 つのテキスト エディターの間の境界線の色。\",\"ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストがアクティブのとき、フォーカスされた項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストがアクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、選択された項目のツリーリスト前景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"ツリーリストが非アクティブのとき、フォーカスされた項目のツリーリスト背景色。アクティブなツリーリストはキーボード フォーカスがあり、非アクティブではこれがありません。\",\"マウス操作で項目をホバーするときのツリーリスト背景。\",\"マウス操作で項目をホバーするときのツリーリスト前景。\",\"マウス操作で項目を移動するときのツリーリスト ドラッグ アンド ドロップの背景。\",\"ツリーリスト内を検索しているとき、一致した強調のツリーリスト前景色。\",\"リストおよびツリーの型フィルター ウェジェットの背景色。\",\"リストおよびツリーの型フィルター ウィジェットのアウトライン色。\",\"一致項目がない場合の、リストおよびツリーの型フィルター ウィジェットのアウトライン色。\",\"インデント ガイドのツリー ストロークの色。\",\"メニューの境界線色。\",\"メニュー項目の前景色。\",\"メニュー項目の背景色。\",\"メニューで選択されたメニュー項目の前景色。\",\"メニューで選択されたメニュー項目の背景色。\",\"メニューで選択されたメニュー項目の境界線色。\",\"メニュー内のメニュー項目の境界線色。\",\"スニペット tabstop の背景色を強調表示します。\",\"スニペット tabstop の境界線の色を強調表示します。\",\"スニペットの最後の tabstop の背景色を強調表示します。\",\"スニペットの最後の tabstop の境界線の色を強調表示します。\",\"検出された一致項目の概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"選択範囲を強調表示するための概要ルーラー マーカーの色。この色は、基本装飾が非表示にならないよう不透明にすることはできません。\",\"一致を検索するためのミニマップ マーカーの色。\",\"エディターの選択範囲のミニマップ マーカーの色。\",\"エラーのミニマップ マーカーの色。\",\"警告のミニマップ マーカーの色。\",\"問題のエラー アイコンに使用される色。\",\"問題の警告アイコンに使用される色。\",\"問題情報アイコンに使用される色。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ja.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (occurred again)\",\"{0} (occurred {1} times)\"],\"vs/base/browser/ui/findinput/findInput\":[\"input\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"Match Case\",\"Match Whole Word\",\"Use Regular Expression\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"input\",\"Preserve Case\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Error: {0}\",\"Warning: {0}\",\"Info: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"Unbound\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Use the navigation keys to navigate.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Clear\",\"Disable Filter on Type\",\"Enable Filter on Type\",\"No elements found\",\"Matched {0} out of {1} elements\"],\n\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"Command\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"Error\",\"Warning\",\"Info\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, picker\",\"picker\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Quick picker. Type to narrow down results.\",\"Quick Picker\",\"{0} Results\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Select All\",\"&&Undo\",\"&&Redo\"],\"vs/editor/browser/controller/textAreaHandler\":[\"The editor is not accessible at this time. Press Alt+F1 for options.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"The number of cursors has been limited to {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Cannot compare files because one file is too large.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Close\",\"no lines\",\"1 line\",\"{0} lines\",\"Difference {0} of {1}: original {2}, {3}, modified {4}, {5}\",\"blank\",\"original {0}, modified {1}: {2}\",\"+ modified {0}: {1}\",\"- original {0}: {1}\",\"Go to Next Difference\",\"Go to Previous Difference\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Copy deleted lines\",\"Copy deleted line\",\"Copy deleted line ({0})\",\"Revert this change\",\"Copy deleted line ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Editor\",\"The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\",\"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\",\"Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.\",\"Remove trailing auto inserted whitespace.\",\"Special handling for large files to disable certain memory intensive features.\",\"Controls whether completions should be computed based on words in the document.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Keep peek editors open even when double clicking their content or when hitting `Escape`.\",\"Lines above this length will not be tokenized for performance reasons\",\"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\",\"Controls whether the diff editor shows the diff side by side or inline.\",\"Controls whether the diff editor shows changes in leading or trailing whitespace as diffs.\",\"Controls whether the diff editor shows +/- indicators for added/removed changes.\"],\n\"vs/editor/common/config/editorOptions\":[\"The editor will use platform APIs to detect when a Screen Reader is attached.\",\"The editor will be permanently optimized for usage with a Screen Reader.\",\"The editor will never be optimized for usage with a Screen Reader.\",\"Controls whether the editor should run in a mode where it is optimized for screen readers.\",\"Controls whether a space character is inserted when commenting.\",\"Controls whether copying without a selection copies the current line.\",\"Controls whether the search string in the Find Widget is seeded from the editor selection.\",\"Never turn on Find in selection automatically (default)\",\"Always turn on Find in selection automatically\",\"Turn on Find in selection automatically when multiple lines of content are selected.\",\"Controls whether the find operation is carried out on selected text or the entire file in the editor.\",\"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\",\"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\",\"Enables/Disables font ligatures.\",\"Explicit font-feature-settings.\",\"Configures font ligatures.\",\"Controls the font size in pixels.\",\"Show peek view of the results (default)\",\"Go to the primary result and show a peek view\",\"Go to the primary result and enable peek-less navigation to others\",\"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\",\"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\",\"Controls the behavior the 'Go to References'-command when multiple target locations exist.\",\"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\",\"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\",\"Controls whether the hover is shown.\",\"Controls the delay in milliseconds after which the hover is shown.\",\"Controls whether the hover should remain visible when mouse is moved over it.\",\"Enables the code action lightbulb in the editor.\",\"Controls the line height. Use 0 to compute the line height from the font size.\",\"Controls whether the minimap is shown.\",\"Controls the side where to render the minimap.\",\"Controls when the minimap slider is shown.\",\"Scale of content drawn in the minimap.\",\"Render the actual characters on a line as opposed to color blocks.\",\"Limit the width of the minimap to render at most a certain number of columns.\",\"Enables a pop-up that shows parameter documentation and type information as you type.\",\"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\",\"Enable quick suggestions inside strings.\",\"Enable quick suggestions inside comments.\",\"Enable quick suggestions outside of strings and comments.\",\"Controls whether suggestions should automatically show up while typing.\",\"Line numbers are not rendered.\",\"Line numbers are rendered as absolute number.\",\"Line numbers are rendered as distance in lines to cursor position.\",\"Line numbers are rendered every 10 lines.\",\"Controls the display of line numbers.\",\"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\",\"Insert suggestion without overwriting text right of the cursor.\",\"Insert suggestion and overwrite text right of the cursor.\",\"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\",\"Controls whether unexpected text modifications while accepting completions should be highlighted, e.g `insertMode` is `replace` but the completion only supports `insert`.\",\"Controls whether filtering and sorting suggestions accounts for small typos.\",\"Controls whether sorting favours words that appear close to the cursor.\",\"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\",\"Controls whether an active snippet prevents quick suggestions.\",\"Controls whether to show or hide icons in suggestions.\",\"Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).\",\"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\",\"When enabled IntelliSense shows `method`-suggestions.\",\"When enabled IntelliSense shows `function`-suggestions.\",\"When enabled IntelliSense shows `constructor`-suggestions.\",\"When enabled IntelliSense shows `field`-suggestions.\",\"When enabled IntelliSense shows `variable`-suggestions.\",\"When enabled IntelliSense shows `class`-suggestions.\",\"When enabled IntelliSense shows `struct`-suggestions.\",\"When enabled IntelliSense shows `interface`-suggestions.\",\"When enabled IntelliSense shows `module`-suggestions.\",\"When enabled IntelliSense shows `property`-suggestions.\",\"When enabled IntelliSense shows `event`-suggestions.\",\"When enabled IntelliSense shows `operator`-suggestions.\",\"When enabled IntelliSense shows `unit`-suggestions.\",\"When enabled IntelliSense shows `value`-suggestions.\",\"When enabled IntelliSense shows `constant`-suggestions.\",\"When enabled IntelliSense shows `enum`-suggestions.\",\"When enabled IntelliSense shows `enumMember`-suggestions.\",\"When enabled IntelliSense shows `keyword`-suggestions.\",\"When enabled IntelliSense shows `text`-suggestions.\",\"When enabled IntelliSense shows `color`-suggestions.\",\"When enabled IntelliSense shows `file`-suggestions.\",\"When enabled IntelliSense shows `reference`-suggestions.\",\"When enabled IntelliSense shows `customcolor`-suggestions.\",\"When enabled IntelliSense shows `folder`-suggestions.\",\"When enabled IntelliSense shows `typeParameter`-suggestions.\",\"When enabled IntelliSense shows `snippet`-suggestions.\",\"Controls the visibility of the status bar at the bottom of the suggest widget.\",\"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\",\"Only accept a suggestion with `Enter` when it makes a textual change.\",\"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\",\"Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.\",\"Editor content\",\"Use language configurations to determine when to autoclose brackets.\",\"Autoclose brackets only when the cursor is to the left of whitespace.\",\"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\",\"Type over closing quotes or brackets only if they were automatically inserted.\",\"Controls whether the editor should type over closing quotes or brackets.\",\"Use language configurations to determine when to autoclose quotes.\",\"Autoclose quotes only when the cursor is to the left of whitespace.\",\"Controls whether the editor should automatically close quotes after the user adds an opening quote.\",\"The editor will not insert indentation automatically.\",\"The editor will keep the current line's indentation.\",\"The editor will keep the current line's indentation and honor language defined brackets.\",\"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\",\"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\",\"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\",\"Use language configurations to determine when to automatically surround selections.\",\"Surround with quotes but not brackets.\",\"Surround with brackets but not quotes.\",\"Controls whether the editor should automatically surround selections.\",\"Controls whether the editor shows CodeLens.\",\"Controls whether the editor should render the inline color decorators and color picker.\",\"Controls whether syntax highlighting should be copied into the clipboard.\",\"Control the cursor animation style.\",\"Controls whether the smooth caret animation should be enabled.\",\"Controls the cursor style.\",\"Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors.\",\"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\",\"`cursorSurroundingLines` is enforced always.\",\"Controls when `cursorSurroundingLines` should be enforced.\",\"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\",\"Controls whether the editor should allow moving selections via drag and drop.\",\"Scrolling speed multiplier when pressing `Alt`.\",\"Controls whether the editor has code folding enabled.\",\"Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.\",\"Controls whether the editor should highlight folded ranges.\",\"Controls the font family.\",\"Controls the font weight.\",\"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\",\"Controls whether the editor should automatically format the line after typing.\",\"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\",\"Controls whether the cursor should be hidden in the overview ruler.\",\"Controls whether the editor should highlight the active indent guide.\",\"Controls the letter spacing in pixels.\",\"Controls whether the editor should detect links and make them clickable.\",\"Highlight matching brackets.\",\"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\",\"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\",\"Merge multiple cursors when they are overlapping.\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\",\"The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"Each cursor pastes a single line of the text.\",\"Each cursor pastes the full text.\",\"Controls pasting when the line count of the pasted text matches the cursor count.\",\"Controls whether the editor should highlight semantic symbol occurrences.\",\"Controls whether a border should be drawn around the overview ruler.\",\"Focus the tree when opening peek\",\"Focus the editor when opening peek\",\"Controls whether to focus the inline editor or the tree in the peek widget.\",\"Controls the delay in milliseconds after which quick suggestions will show up.\",\"Controls whether the editor should render control characters.\",\"Controls whether the editor should render indent guides.\",\"Render last line number when the file ends with a newline.\",\"Highlights both the gutter and the current line.\",\"Controls how the editor should render the current line highlight.\",\"Render whitespace characters except for single spaces between words.\",\"Render whitespace characters only on selected text.\",\"Controls how the editor should render whitespace characters.\",\"Controls whether selections should have rounded corners.\",\"Controls the number of extra characters beyond which the editor will scroll horizontally.\",\"Controls whether the editor will scroll beyond the last line.\",\"Controls whether the Linux primary clipboard should be supported.\",\"Controls whether the editor should highlight matches similar to the selection.\",\"Controls whether the fold controls on the gutter are automatically hidden.\",\"Controls fading out of unused code.\",\"Show snippet suggestions on top of other suggestions.\",\"Show snippet suggestions below other suggestions.\",\"Show snippets suggestions with other suggestions.\",\"Do not show snippet suggestions.\",\"Controls whether snippets are shown with other suggestions and how they are sorted.\",\"Controls whether the editor will scroll using an animation.\",\"Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.\",\"Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.\",\"Controls whether suggestions should automatically show up when typing trigger characters.\",\"Always select the first suggestion.\",\"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\",\"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\",\"Controls how suggestions are pre-selected when showing the suggest list.\",\"Tab complete will insert the best matching suggestion when pressing tab.\",\"Disable tab completions.\",\"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\",\"Enables tab completions.\",\"Inserting and deleting whitespace follows tab stops.\",\"Characters that will be used as word separators when doing word related navigations or operations.\",\"Lines will never wrap.\",\"Lines will wrap at the viewport width.\",\"Lines will wrap at `#editor.wordWrapColumn#`.\",\"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\",\"Controls how lines should wrap.\",\"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\",\"No indentation. Wrapped lines begin at column 1.\",\"Wrapped lines get the same indentation as the parent.\",\"Wrapped lines get +1 indentation toward the parent.\",\"Wrapped lines get +2 indentation toward the parent.\",\"Controls the indentation of wrapped lines.\",\"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\",\"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\",\"Controls the algorithm that computes wrapping points.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Plain Text\"],\n\"vs/editor/common/standaloneStrings\":[\"No selection\",\"Line {0}, Column {1} ({2} selected)\",\"Line {0}, Column {1}\",\"{0} selections ({1} characters selected)\",\"{0} selections\",\"Now changing the setting `accessibilitySupport` to 'on'.\",\"Now opening the Editor Accessibility documentation page.\",\" in a read-only pane of a diff editor.\",\" in a pane of a diff editor.\",\" in a read-only code editor\",\" in a code editor\",\"To configure the editor to be optimized for usage with a Screen Reader press Command+E now.\",\"To configure the editor to be optimized for usage with a Screen Reader press Control+E now.\",\"The editor is configured to be optimized for usage with a Screen Reader.\",\"The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.\",\"Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.\",\"Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.\",\"Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.\",\"Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.\",\"Press Command+H now to open a browser window with more information related to editor accessibility.\",\"Press Control+H now to open a browser window with more information related to editor accessibility.\",\"You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.\",\"Show Accessibility Help\",\"Developer: Inspect Tokens\",\"Go to line {0} and character {1}\",\"Go to line {0}\",\"Type a line number between 1 and {0} to navigate to\",\"Type a character between 1 and {0} to navigate to\",\"Current Line: {0}. Go to line {1}.\",\"Type a line number, followed by an optional colon and a character number to navigate to\",\"Go to Line...\",\"{0}, {1}, commands\",\"{0}, commands\",\"Type the name of an action you want to execute\",\"Command Palette\",\"{0}, symbols\",\"Type the name of an identifier you wish to navigate to\",\"Go to Symbol...\",\"symbols ({0})\",\"modules ({0})\",\"classes ({0})\",\"interfaces ({0})\",\"methods ({0})\",\"functions ({0})\",\"properties ({0})\",\"variables ({0})\",\"variables ({0})\",\"constructors ({0})\",\"calls ({0})\",\"Editor content\",\"Press Ctrl+F1 for Accessibility Options.\",\"Press Alt+F1 for Accessibility Options.\",\"Toggle High Contrast Theme\",\"Made {0} edits in {1} files\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Background color for the highlight of line at the cursor position.\",\"Background color for the border around the line at the cursor position.\",\"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the border around highlighted ranges.\",\"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the border around highlighted symbols.\",\"Color of the editor cursor.\",\"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\",\"Color of whitespace characters in the editor.\",\"Color of the editor indentation guides.\",\"Color of the active editor indentation guides.\",\"Color of editor line numbers.\",\"Color of editor active line number\",\"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\",\"Color of editor active line number\",\"Color of the editor rulers.\",\"Foreground color of editor code lenses\",\"Background color behind matching brackets\",\"Color for matching brackets boxes\",\"Color of the overview ruler border.\",\"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\",\"Border color of unnecessary (unused) source code in the editor.\",\"Opacity of unnecessary (unused) source code in the editor. For example, \\\"#000000c0\\\" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.\",\"Overview ruler marker color for errors.\",\"Overview ruler marker color for warnings.\",\"Overview ruler marker color for infos.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Overview ruler marker color for matching brackets.\",\"Go to Bracket\",\"Select to Bracket\",\"Go to &&Bracket\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Move Caret Left\",\"Move Caret Right\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Transpose Letters\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Cut\",\"Cu&&t\",\"Copy\",\"&&Copy\",\"Paste\",\"&&Paste\",\"Copy With Syntax Highlighting\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Kind of the code action to run.\",\"Controls when the returned actions are applied.\",\"Always apply the first returned code action.\",\"Apply the first returned code action if it is the only one.\",\"Do not apply the returned code actions.\",\"Controls if only preferred code actions should be returned.\",\"An unknown error occurred while applying the code action\",\"Quick Fix...\",\"No code actions available\",\"No preferred code actions for '{0}' available\",\"No code actions for '{0}' available\",\"No preferred code actions available\",\"No code actions available\",\"Refactor...\",\"No preferred refactorings for '{0}' available\",\"No refactorings for '{0}' available\",\"No preferred refactorings available\",\"No refactorings available\",\"Source Action...\",\"No preferred source actions for '{0}' available\",\"No source actions for '{0}' available\",\"No preferred source actions available\",\"No source actions available\",\"Organize Imports\",\"No organize imports action available\",\"Fix All\",\"No fix all action available\",\"Auto Fix...\",\"No auto fixes available\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Show Fixes. Preferred Fix Available ({0})\",\"Show Fixes ({0})\",\"Show Fixes\"],\"vs/editor/contrib/comment/comment\":[\"Toggle Line Comment\",\"&&Toggle Line Comment\",\"Add Line Comment\",\"Remove Line Comment\",\"Toggle Block Comment\",\"Toggle &&Block Comment\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Show Editor Context Menu\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Cursor Undo\",\"Cursor Redo\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\",\"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"],\n\"vs/editor/contrib/find/findController\":[\"Find\",\"&&Find\",\"Find With Selection\",\"Find Next\",\"Find Next\",\"Find Previous\",\"Find Previous\",\"Find Next Selection\",\"Find Previous Selection\",\"Replace\",\"&&Replace\"],\"vs/editor/contrib/find/findWidget\":[\"Find\",\"Find\",\"Previous match\",\"Next match\",\"Find in selection\",\"Close\",\"Replace\",\"Replace\",\"Replace\",\"Replace All\",\"Toggle Replace mode\",\"Only the first {0} results are highlighted, but all find operations work on the entire text.\",\"{0} of {1}\",\"No Results\",\"{0} found\",\"{0} found for {1}\",\"{0} found for {1} at {2}\",\"{0} found for {1}\",\"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.\"],\"vs/editor/contrib/folding/folding\":[\"Unfold\",\"Unfold Recursively\",\"Fold\",\"Toggle Fold\",\"Fold Recursively\",\"Fold All Block Comments\",\"Fold All Regions\",\"Unfold All Regions\",\"Fold All\",\"Unfold All\",\"Fold Level {0}\",\"Color of the editor selection.\"],\n\"vs/editor/contrib/fontZoom/fontZoom\":[\"Editor Font Zoom In\",\"Editor Font Zoom Out\",\"Editor Font Zoom Reset\"],\"vs/editor/contrib/format/format\":[\"Made 1 formatting edit on line {0}\",\"Made {0} formatting edits on line {1}\",\"Made 1 formatting edit between lines {0} and {1}\",\"Made {0} formatting edits between lines {1} and {2}\"],\"vs/editor/contrib/format/formatActions\":[\"Format Document\",\"Format Selection\"],\"vs/editor/contrib/gotoError/gotoError\":[\"Go to Next Problem (Error, Warning, Info)\",\"Go to Previous Problem (Error, Warning, Info)\",\"Go to Next Problem in Files (Error, Warning, Info)\",\"Go to Previous Problem in Files (Error, Warning, Info)\",\"Next &&Problem\",\"Previous &&Problem\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} of {1} problems\",\"{0} of {1} problem\",\"Editor marker navigation widget error color.\",\"Editor marker navigation widget warning color.\",\"Editor marker navigation widget info color.\",\"Editor marker navigation widget background.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Peek\",\"Definitions\",\"No definition found for '{0}'\",\"No definition found\",\"Go to Definition\",\"Go to &&Definition\",\"Open Definition to the Side\",\"Peek Definition\",\"Declarations\",\"No declaration found for '{0}'\",\"No declaration found\",\"Go to Declaration\",\"Go to &&Declaration\",\"No declaration found for '{0}'\",\"No declaration found\",\"Peek Declaration\",\"Type Definitions\",\"No type definition found for '{0}'\",\"No type definition found\",\"Go to Type Definition\",\"Go to &&Type Definition\",\"Peek Type Definition\",\"Implementations\",\"No implementation found for '{0}'\",\"No implementation found\",\"Go to Implementations\",\"Go to &&Implementations\",\"Peek Implementations\",\"No references found for '{0}'\",\"No references found\",\"Go to References\",\"Go to &&References\",\"References\",\"Peek References\",\"References\",\"Go To Any Symbol\",\"Locations\",\"No results for '{0}'\",\"References\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Click to show {0} definitions.\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Loading...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Failed to resolve file.\",\"{0} references\",\"{0} reference\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"no preview available\",\"References\",\"No results\",\"References\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"symbol in {0} on line {1} at column {2}\",\"1 symbol in {0}, full path {1}\",\"{0} symbols in {1}, full path {2}\",\"No results found\",\"Found 1 symbol in {0}\",\"Found {0} symbols in {1}\",\"Found {0} symbols in {1} files\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Symbol {0} of {1}, {2} for next\",\"Symbol {0} of {1}\"],\"vs/editor/contrib/hover/hover\":[\"Show Hover\",\"Show Definition Preview Hover\"],\"vs/editor/contrib/hover/modesContentHover\":[\"Loading...\",\"Peek Problem\",\"Checking for quick fixes...\",\"No quick fixes available\",\"Quick Fix...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Replace with Previous Value\",\"Replace with Next Value\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"Copy Line Up\",\"&&Copy Line Up\",\"Copy Line Down\",\"Co&&py Line Down\",\"Duplicate Selection\",\"&&Duplicate Selection\",\"Move Line Up\",\"Mo&&ve Line Up\",\"Move Line Down\",\"Move &&Line Down\",\"Sort Lines Ascending\",\"Sort Lines Descending\",\"Trim Trailing Whitespace\",\"Delete Line\",\"Indent Line\",\"Outdent Line\",\"Insert Line Above\",\"Insert Line Below\",\"Delete All Left\",\"Delete All Right\",\"Join Lines\",\"Transpose characters around the cursor\",\"Transform to Uppercase\",\"Transform to Lowercase\",\"Transform to Title Case\"],\"vs/editor/contrib/links/links\":[\"Execute command\",\"Follow link\",\"cmd + click\",\"ctrl + click\",\"option + click\",\"alt + click\",\"Failed to open this link because it is not well-formed: {0}\",\"Failed to open this link because its target is missing.\",\"Open Link\"],\"vs/editor/contrib/message/messageController\":[\"Cannot edit in read-only editor\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Add Cursor Above\",\"&&Add Cursor Above\",\"Add Cursor Below\",\"A&&dd Cursor Below\",\"Add Cursors to Line Ends\",\"Add C&&ursors to Line Ends\",\"Add Cursors To Bottom\",\"Add Cursors To Top\",\"Add Selection To Next Find Match\",\"Add &&Next Occurrence\",\"Add Selection To Previous Find Match\",\"Add P&&revious Occurrence\",\"Move Last Selection To Next Find Match\",\"Move Last Selection To Previous Find Match\",\"Select All Occurrences of Find Match\",\"Select All &&Occurrences\",\"Change All Occurrences\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Trigger Parameter Hints\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, hint\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Close\",\"Background color of the peek view title area.\",\"Color of the peek view title.\",\"Color of the peek view title info.\",\"Color of the peek view borders and arrow.\",\"Background color of the peek view result list.\",\"Foreground color for line nodes in the peek view result list.\",\"Foreground color for file nodes in the peek view result list.\",\"Background color of the selected entry in the peek view result list.\",\"Foreground color of the selected entry in the peek view result list.\",\"Background color of the peek view editor.\",\"Background color of the gutter in the peek view editor.\",\"Match highlight color in the peek view result list.\",\"Match highlight color in the peek view editor.\",\"Match highlight border in the peek view editor.\"],\n\"vs/editor/contrib/rename/rename\":[\"No result.\",\"An unknown error occurred while resolving rename location\",\"Renaming '{0}'\",\"Successfully renamed '{0}' to '{1}'. Summary: {2}\",\"Rename failed to apply edits\",\"Rename failed to compute edits\",\"Rename Symbol\",\"Enable/disable the ability to preview changes before renaming\"],\"vs/editor/contrib/rename/renameInputField\":[\"Rename input. Type new name and press Enter to commit.\",\"{0} to Rename, {1} to Preview\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Expand Selection\",\"&&Expand Selection\",\"Shrink Selection\",\"&&Shrink Selection\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],\n\"vs/editor/contrib/suggest/suggestController\":[\"Accepting '{0}' made {1} additional edits\",\"Trigger Suggest\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"Background color of the suggest widget.\",\"Border color of the suggest widget.\",\"Foreground color of the suggest widget.\",\"Background color of the selected entry in the suggest widget.\",\"Color of the match highlights in the suggest widget.\",\"Read More...{0}\",\"Read less...{0}\",\"Loading...\",\"Loading...\",\"No suggestions.\",\"{0} for less...\",\"{0} for more...\",\"Item {0}, docs: {1}\",\"{0} to insert, {1} to replace\",\"{0} to replace, {1} to insert\",\"{0} to accept\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Toggle Tab Key Moves Focus\",\"Pressing Tab will now move focus to the next focusable element\",\"Pressing Tab will now insert the tab character\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Developer: Force Retokenize\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.\",\"Border color of a symbol during read-access, like reading a variable.\",\"Border color of a symbol during write-access, like writing to a variable.\",\"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Go to Next Symbol Highlight\",\"Go to Previous Symbol Highlight\",\"Trigger Symbol Highlight\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Default Configuration Overrides\",\"Configure editor settings to be overridden for a language.\",\"This setting does not support per-language configuration.\",\"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\",\"Cannot register '{0}'. This property is already registered.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0}) was pressed. Waiting for second key of chord...\",\"The key combination ({0}, {1}) is not a command.\"],\n\"vs/platform/list/browser/listService\":[\"Workbench\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\",\"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\",\"Controls how to open items in trees and lists using the mouse (if supported). For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. \",\"Controls whether lists and trees support horizontal scrolling in the workbench.\",\"Controls whether trees support horizontal scrolling in the workbench.\",\"This setting is deprecated, please use '{0}' instead.\",\"Controls tree indentation in pixels.\",\"Controls whether the tree should render indent guides.\",\"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\",\"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\",\"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\",\"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\",\"Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.\"],\n\"vs/platform/markers/common/markers\":[\"Error\",\"Warning\",\"Info\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Overall foreground color. This color is only used if not overridden by a component.\",\"Overall foreground color for error messages. This color is only used if not overridden by a component.\",\"Overall border color for focused elements. This color is only used if not overridden by a component.\",\"An extra border around elements to separate them from others for greater contrast.\",\"An extra border around active elements to separate them from others for greater contrast.\",\"Foreground color for links in text.\",\"Background color for code blocks in text.\",\"Shadow color of widgets such as find/replace inside the editor.\",\"Input box background.\",\"Input box foreground.\",\"Input box border.\",\"Border color of activated options in input fields.\",\"Background color of activated options in input fields.\",\"Input validation background color for information severity.\",\"Input validation foreground color for information severity.\",\"Input validation border color for information severity.\",\"Input validation background color for warning severity.\",\"Input validation foreground color for warning severity.\",\"Input validation border color for warning severity.\",\"Input validation background color for error severity.\",\"Input validation foreground color for error severity.\",\"Input validation border color for error severity.\",\"Dropdown background.\",\"Dropdown foreground.\",\"Quick picker color for grouping labels.\",\"Quick picker color for grouping borders.\",\"Badge background color. Badges are small information labels, e.g. for search results count.\",\"Badge foreground color. Badges are small information labels, e.g. for search results count.\",\"Scrollbar shadow to indicate that the view is scrolled.\",\"Scrollbar slider background color.\",\"Scrollbar slider background color when hovering.\",\"Scrollbar slider background color when clicked on.\",\"Background color of the progress bar that can show for long running operations.\",\"Foreground color of error squigglies in the editor.\",\"Border color of error boxes in the editor.\",\"Foreground color of warning squigglies in the editor.\",\"Border color of warning boxes in the editor.\",\"Foreground color of info squigglies in the editor.\",\"Border color of info boxes in the editor.\",\"Foreground color of hint squigglies in the editor.\",\"Border color of hint boxes in the editor.\",\"Editor background color.\",\"Editor default foreground color.\",\"Background color of editor widgets, such as find/replace.\",\"Foreground color of editor widgets, such as find/replace.\",\"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.\",\"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\",\"Color of the editor selection.\",\"Color of the selected text for high contrast.\",\"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\",\"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\",\"Border color for regions with the same content as the selection.\",\"Color of the current search match.\",\"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\",\"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\",\"Border color of the current search match.\",\"Border color of the other search matches.\",\"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\",\"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\",\"Background color of the editor hover.\",\"Foreground color of the editor hover.\",\"Border color of the editor hover.\",\"Background color of the editor hover status bar.\",\"Color of active links.\",\"The color used for the lightbulb actions icon.\",\"The color used for the lightbulb auto fix actions icon.\",\"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\",\"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\",\"Outline color for the text that got inserted.\",\"Outline color for text that got removed.\",\"Border color between the two text editors.\",\"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\",\"List/Tree background when hovering over items using the mouse.\",\"List/Tree foreground when hovering over items using the mouse.\",\"List/Tree drag and drop background when moving items around using the mouse.\",\"List/Tree foreground color of the match highlights when searching inside the list/tree.\",\"Background color of the type filter widget in lists and trees.\",\"Outline color of the type filter widget in lists and trees.\",\"Outline color of the type filter widget in lists and trees, when there are no matches.\",\"Tree stroke color for the indentation guides.\",\"Border color of menus.\",\"Foreground color of menu items.\",\"Background color of menu items.\",\"Foreground color of the selected menu item in menus.\",\"Background color of the selected menu item in menus.\",\"Border color of the selected menu item in menus.\",\"Color of a separator menu item in menus.\",\"Highlight background color of a snippet tabstop.\",\"Highlight border color of a snippet tabstop.\",\"Highlight background color of the final tabstop of a snippet.\",\"Highlight border color of the final stabstop of a snippet.\",\"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\",\"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\",\"Minimap marker color for find matches.\",\"Minimap marker color for the editor selection.\",\"Minimap marker color for errors.\",\"Minimap marker color for warnings.\",\"The color used for the problems error icon.\",\"The color used for the problems warning icon.\",\"The color used for the problems info icon.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.ko.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ko\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0}({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0}(다시 발생함)\",\"{0} ({1}번 발생하다)\"],\"vs/base/browser/ui/findinput/findInput\":[\"입력\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"대/소문자 구분\",\"단어 단위로\",\"정규식 사용\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"입력\",\"대/소문자 보존\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"오류: {0}\",\"경고: {0}\",\"정보: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"바인딩 안 됨\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. 탐색하려면 탐색 키를 사용하세요.\"],\"vs/base/browser/ui/menu/menu\":[\"{0}({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"지우기\",\"형식을 기준으로 필터링 사용 안 함\",\"형식을 기준으로 필터링 사용\",\"찾은 요소 없음\",\"{1}개 요소 중 {0}개 일치\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"<Shift>\",\"<Alt>\",\"Windows\",\"Ctrl\",\"<Shift>\",\"<Alt>\",\"슈퍼\",\"제어\",\"<Shift>\",\"<Alt>\",\"명령\",\"제어\",\"<Shift>\",\"<Alt>\",\"Windows\",\"제어\",\"<Shift>\",\"<Alt>\",\"슈퍼\"],\"vs/base/common/severity\":[\"오류\",\"경고\",\"정보\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, 선택기\",\"선택기\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"빠른 선택기입니다. 결과의 범위를 축소하려면 입력합니다.\",\"빠른 선택기\",\"{0}개 결과\"],\"vs/editor/browser/controller/coreCommands\":[\"모두 선택(&&S)\",\"실행 취소(&&U)\",\"다시 실행(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"지금은 편집기를 사용할 수 없습니다. Alt+F1을 눌러 옵션을 보세요.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"커서 수는 {0}(으)로 제한되었습니다.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"파일 1개가 너무 커서 파일을 비교할 수 없습니다.\"],\"vs/editor/browser/widget/diffReview\":[\"닫기\",\"줄 없음\",\"1줄\",\"{0}줄\",\"차이 {0}/{1}개: 원본 {2}, {3}, 수정 {4}, {5}\",\"비어 있음\",\"원본 {0}, 수정 {1}: {2}\",\"+ 수정됨 {0}: {1}\",\"- 원본 {0}: {1}\",\"다음 다른 항목으로 이동\",\"다음 다른 항목으로 이동\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"삭제된 줄 복사\",\"삭제된 줄 복사\",\"삭제된 줄 복사({0})\",\"이 변경 내용 되돌리기\",\"삭제된 줄 복사({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"편집기\",\"탭 한 개에 해당하는 공백 수입니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.\",\"'탭' 키를 누를 때 공백을 삽입합니다. `#editor.detectIndentation#`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.\",\"파일을 열 때 파일 콘텐츠를 기반으로 `#editor.tabSize#`와  `#editor.insertSpaces#`가 자동으로 검색되는지 여부를 제어합니다.\",\"끝에 자동 삽입된 공백을 제거합니다.\",\"큰 파일에 대한 특수 처리로, 메모리를 많이 사용하는 특정 기능을 사용하지 않도록 설정합니다.\",\"문서 내 단어를 기반으로 완성을 계산할지 여부를 제어합니다.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"해당 콘텐츠를 두 번 클릭하거나 'Esc' 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.\",\"이 길이를 초과하는 줄은 성능상의 이유로 토큰화되지 않습니다.\",\"diff 계산이 취소된 후 밀리초 단위로 시간을 제한합니다. 제한 시간이 없는 경우 0을 사용합니다.\",\"diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지를 제어합니다.\",\"diff 편집기에서 선행 공백 또는 후행 공백 변경을 diff로 표시할지 여부를 제어합니다.\",\"diff 편집기에서 추가/제거된 변경 내용에 대해 +/- 표시기를 표시하는지 여부를 제어합니다.\"],\n\"vs/editor/common/config/editorOptions\":[\"편집기가 스크린 리더가 연결되면 플랫폼 API를 사용하여 감지합니다.\",\"편집기가 스크린 리더 사용을 위해 영구적으로 최적화됩니다.\",\"편집기가 스크린 리더 사용을 위해 최적화되지 않습니다.\",\"편집기를 스크린 리더를 위해 최적화된 모드로 실행할지 결정합니다.\",\"주석을 달 때 공백 문자를 삽입할지 여부를 제어합니다.\",\"선택 영역 없이 현재 줄 복사 여부를 제어합니다.\",\"편집기 선택에서 Find Widget의 검색 문자열을 시딩할지 여부를 제어합니다.\",\"선택 항목에서 찾기를 자동으로 켜지 않음(기본값)\",\"선택 항목에서 자동으로 항상 찾기 켜기\",\"여러 줄의 콘텐츠를 선택하면 선택 항목에서 찾기가 자동으로 켜집니다.\",\"편집기에서 찾기 작업을 할 때 선택한 텍스트에서 할지 전체 파일에서 할지 제어합니다.\",\"macOS에서 Find Widget이 공유 클립보드 찾기를 읽을지 수정할지 제어합니다.\",\"위젯 찾기에서 편집기 맨 위에 줄을 추가해야 하는지 여부를 제어합니다. true인 경우 위젯 찾기가 표시되면 첫 번째 줄 위로 스크롤할 수 있습니다.\",\"글꼴 합자 사용하거나 사용하지 않도록 설정합니다.\",\"명시적 글꼴 기능 설정입니다.\",\"글꼴 합자를 구성합니다.\",\"픽셀 단위로 글꼴 크기를 제어합니다.\",\"결과 Peek 뷰 표시(기본)\",\"기본 결과로 이동하여 Peek 보기를 표시합니다.\",\"기본 결과로 이동하고 다른 항목에 대해 peek 없는 탐색을 사용하도록 설정\",\"이 설정은 더 이상 사용되지 않습니다. 대신 'editor.editor.gotoLocation.multipleDefinitions' 또는 'editor.editor.gotoLocation.multipleImplementations'와 같은 별도의 설정을 사용하세요.\",\"여러 대상 위치가 있는 경우 '정의로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '유형 정의로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 'Go to Declaration' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '구현으로 이동' 명령 동작을 제어합니다.\",\"여러 대상 위치가 있는 경우 '참조로 이동' 명령 동작을 제어합니다.\",\"'정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'형식 정의로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'선언으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'구현으로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"'참조로 이동'의 결과가 현재 위치일 때 실행되는 대체 명령 ID입니다.\",\"호버 표시 여부를 제어합니다.\",\"호버가 표시되기 전까지의 지연 시간(밀리초)을 제어합니다.\",\"마우스를 해당 항목 위로 이동할 때 호버를 계속 표시할지 여부를 제어합니다.\",\"편집기에서 코드 동작 전구를 사용하도록 설정합니다.\",\"줄 높이를 제어합니다. 글꼴 크기에서 줄 높이를 계산하려면 0을 사용합니다.\",\"미니맵 표시 여부를 제어합니다.\",\"미니맵을 렌더링할 측면을 제어합니다.\",\"미니맵 슬라이더가 표시되는 시기를 제어합니다.\",\"미니맵에 그려진 콘텐츠의 배율입니다.\",\"줄의 실제 문자(색 블록 아님)를 렌더링합니다.\",\"최대 특정 수의 열을 렌더링하도록 미니맵의 너비를 제한합니다.\",\"입력과 동시에 매개변수 문서와 유형 정보를 표시하는 팝업을 사용하도록 설정합니다.\",\" 매개변수 힌트 메뉴의 주기 혹은 목록의 끝에 도달하였을때 종료할 것인지 여부를 결정합니다. \",\"문자열 내에서 빠른 제안을 사용합니다.\",\"주석 내에서 빠른 제안을 사용합니다.\",\"문자열 및 주석 외부에서 빠른 제안을 사용합니다.\",\"입력하는 동안 제안을 자동으로 표시할지 여부를 제어합니다.\",\"줄 번호는 렌더링되지 않습니다.\",\"줄 번호는 절대값으로 렌더링 됩니다.\",\"줄 번호는 커서 위치에서 줄 간격 거리로 렌더링 됩니다.\",\"줄 번호는 매 10 줄마다 렌더링이 이루어집니다.\",\"줄 번호의 표시 여부를 제어합니다.\",\"특정 수의 고정 폭 문자 뒤에 세로 눈금자를 렌더링합니다. 여러 눈금자의 경우 여러 값을 사용합니다. 배열이 비어 있는 경우 눈금자가 그려지지 않습니다.\",\"커서의 텍스트 오른쪽을 덮어 쓰지않고 제안을 삽입합니다.\",\"제안을 삽입하고 커서의 오른쪽 텍스트를 덮어씁니다.\",\"완료를 수락할 때 단어를 덮어쓸지 여부를 제어합니다. 이것은 이 기능을 선택하는 확장에 따라 다릅니다.\",\"완료를 수락하는 동안 예기치 않은 텍스트 수정이 강조 표시되도록 할지 여부를 제어합니다.(예: 'insertMode'는 '바꾸기'이지만 완료는 '삽입'만 지원합니다.)\",\"제안 필터링 및 정렬에서 작은 오타를 설명하는지 여부를 제어합니다.\",\"정렬할 때 커서 근처에 표시되는 단어를 우선할지 여부를 제어합니다.\",\"저장된 제안 사항 선택 항목을 여러 작업 영역 및 창에서 공유할 것인지 여부를 제어합니다(`#editor.suggestSelection#` 필요).\",\"활성 코드 조각이 빠른 제안을 할 수 없도록 하는지 여부를 제어합니다.\",\"제안의 아이콘을 표시할지 여부를 제어합니다.\",\"스크롤바를 표시하기 전에 IntelliSense가 표시할 제안 수를 제어합니다(최대 15개).\",\"이 설정은 더 이상 사용되지 않습니다. 대신 'editor.suggest.showKeywords'또는 'editor.suggest.showSnippets'와 같은 별도의 설정을 사용하세요.\",\"사용하도록 설정되면 IntelliSense에 `메서드` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '함수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '생성자' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '필드' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '변수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '클래스' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '구조' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '인터페이스' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '모듈' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '속성' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '이벤트' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `연산자` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '단위' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '값' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '상수' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '열거형' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `enumMember` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '키워드' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '텍스트' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '색' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 `파일` 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '참조' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '사용자 지정 색' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '폴더' 제안이 표시됩니다.\",\"사용하도록 설정된 경우 IntelliSense에 'typeParameter' 제안이 표시됩니다.\",\"사용하도록 설정되면 IntelliSense에 '코드 조각' 제안이 표시됩니다.\",\"제안 위젯 하단의 상태 표시줄 가시성을 제어합니다.\",\"커밋 문자에 대한 제안을 허용할지를 제어합니다. 예를 들어 JavaScript에서는 세미콜론(';')이 제안을 허용하고 해당 문자를 입력하는 커밋 문자일 수 있습니다.\",\"텍스트를 변경할 때 `Enter` 키를 사용한 제안만 허용합니다.\",\"'Tab' 키 외에 'Enter' 키에 대한 제안도 허용할지를 제어합니다. 새 줄을 삽입하는 동작과 제안을 허용하는 동작 간의 모호함을 없앨 수 있습니다.\",\"화면 판독기가 읽을 수 있는 편집기의 줄 수를 제어합니다. 경고: 기본값보다 큰 숫자인 경우 성능에 영향을 미칩니다.\",\"편집기 콘텐츠\",\"언어 구성을 사용하여 대괄호를 자동으로 닫을 경우를 결정합니다.\",\"커서가 공백의  왼쪽에 있는 경우에만 대괄호를 자동으로 닫습니다.\",\"사용자가 여는 괄호를 추가한 후 편집기에서 괄호를 자동으로 닫을지 여부를 제어합니다.\",\"닫기 따옴표 또는 대괄호가 자동으로 삽입된 경우에만 해당 항목 위에 입력합니다.\",\"편집자가 닫는 따옴표 또는 대괄호 위에 입력할지 여부를 제어합니다.\",\"언어 구성을 사용하여 따옴표를 자동으로 닫을 경우를 결정합니다.\",\"커서가 공백의 왼쪽에 있는 경우에만 따옴표를 자동으로 닫습니다.\",\"사용자가 여는 따옴표를 추가한 후 편집기에서 따옴표를 자동으로 닫을지 여부를 제어합니다.\",\"편집기는 들여쓰기를 자동으로 삽입하지 않습니다.\",\"편집기는 현재 줄의 들여쓰기를 유지합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 사용합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고 언어 정의 대괄호를 존중하며 언어별로 정의된 특별 EnterRules를 호출합니다.\",\"편집기는 현재 줄의 들여쓰기를 유지하고, 언어 정의 대괄호를 존중하고, 언어에 의해 정의된 특별 EnterRules를 호출하고, 언어에 의해 정의된 들여쓰기 규칙을 존중합니다.\",\"사용자가 줄을 입력, 붙여넣기, 이동 또는 들여쓰기 할 때 편집기에서 들여쓰기를 자동으로 조정하도록 할지 여부를 제어합니다.\",\"언어 구성을 사용하여 선택 항목을 자동으로 둘러쌀 경우를 결정합니다.\",\"대괄호가 아닌 따옴표로 둘러쌉니다.\",\"따옴표가 아닌 대괄호로 둘러쌉니다.\",\"편집기에서 선택 항목을 자동으로 둘러쌀지 여부를 제어합니다.\",\"편집기에서 CodeLens를 표시할 것인지 여부를 제어합니다.\",\"편집기에서 인라인 색 데코레이터 및 색 선택을 렌더링할지를 제어합니다.\",\"터미널에서 선택한(블록 지정한) 텍스트가 클립보드로 자동 복사 여부를 제어합니다.\\n'true'로 설정 할 시 선택할 때마다 클립보드로 복사 됩니다.\",\"커서 애니메이션 스타일을 제어합니다.\",\"매끄러운 캐럿 애니메이션의 사용 여부를 제어합니다.\",\"커서 스타일을 제어합니다.\",\"커서 주위에 표시되는 선행 및 후행 줄의 최소 수를 제어합니다. 다른 편집기에서는 'scrollOff' 또는 'scrollOffset'이라고 합니다.\",\"'cursorSurroundingLines'는 키보드 나 API를 통해 트리거될 때만 적용됩니다.\",\"`cursorSurroundingLines`는 항상 적용됩니다.\",\"'cursorSurroundingLines'를 적용해야 하는 경우를 제어합니다.\",\"`#editor.cursorStyle#` 설정이 'line'으로 설정되어 있을 때 커서의 넓이를 제어합니다.\",\"편집기에서 끌어서 놓기로 선택 영역을 이동할 수 있는지 여부를 제어합니다.\",\"'Alt' 키를 누를 때 스크롤 속도 승수입니다.\",\"편집기에 코드 접기가 사용하도록 설정되는지 여부를 제어합니다.\",\"접기 범위를 계산하는 전략을 제어합니다. '자동'이면 사용 가능한 경우 언어 관련 접기 전략을 사용합니다. '들여쓰기'이면 들여쓰기 기반 접기 전략을 사용합니다.\",\"편집기에서 접힌 범위를 강조 표시할지 여부를 제어합니다.\",\"글꼴 패밀리를 제어합니다.\",\"글꼴 두께를 조정합니다.\",\"붙여넣은 콘텐츠의 서식을 편집기에서 자동으로 지정할지 여부를 제어합니다. 포맷터를 사용할 수 있어야 하며 포맷터가 문서에서 범위의 서식을 지정할 수 있어야 합니다.\",\"입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.\",\"편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.\",\"커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.\",\"편집기에서 활성 들여쓰기 가이드를 강조 표시할지 여부를 제어합니다.\",\"픽셀 단위로 문자 간격을 제어 합니다.\",\"편집기에서 링크를 감지하고 클릭할 수 있게 만들지 여부를 제어합니다.\",\"일치하는 대괄호를 강조 표시합니다.\",\"마우스 휠 스크롤 이벤트의 `deltaX` 및 `deltaY`에서 사용할 승수입니다.\",\"마우스 휠을 사용할 때 'Ctrl' 키를 누르고 있으면 편집기의 글꼴을 확대/축소합니다.\",\"여러 커서가 겹치는 경우 커서를 병합합니다.\",\"Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.\",\"Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.\",\"마우스로 여러 커서를 추가할 때 사용할 수정자입니다. [정의로 이동] 및 [링크 열기] 마우스 제스처가 멀티커서 수정자와 충돌하지 않도록 조정됩니다. [자세한 정보](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\",\"각 커서는 텍스트 한 줄을 붙여넣습니다.\",\"각 커서는 전체 텍스트를 붙여넣습니다.\",\"붙여넣은 텍스트의 줄 수가 커서 수와 일치하는 경우 붙여넣기를 제어합니다.\",\"편집기에서 의미 체계 기호 항목을 강조 표시할지 여부를 제어합니다.\",\"개요 눈금자 주위에 테두리를 그릴지 여부를 제어합니다.\",\"미리 보기를 열 때 트리에 포커스 두기\",\"미리 보기를 열 때 편집기에 포커스\",\"미리 보기 위젯에서 인라인 편집기에 포커스를 둘지 또는 트리에 포커스를 둘지를 제어합니다.\",\"빠른 제안을 표시하기 전까지의 지연 시간(밀리초)을 제어합니다.\",\"편집기에서 제어 문자를 렌더링할지를 제어합니다.\",\"편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.\",\"파일이 줄 바꿈으로 끝나면 마지막 줄 번호를 렌더링합니다.\",\"제본용 여백과 현재 줄을 모두 강조 표시합니다.\",\"편집기가 현재 줄 강조 표시를 렌더링하는 방식을 제어합니다. \",\"Render whitespace characters except for single spaces between words.\",\"선택한 텍스트에서만 공백 문자를 렌더링합니다.\",\"편집기에서 공백 문자를 렌더링할 방법을 제어합니다.\",\"선택 항목의 모서리를 둥글게 할지 여부를 제어합니다.\",\"편집기에서 가로로 스크롤되는 범위를 벗어나는 추가 문자의 수를 제어합니다.\",\"편집기에서 마지막 줄 이후로 스크롤할지 여부를 제어합니다.\",\"Linux 주 클립보드의 지원 여부를 제어합니다.\",\"편집기가 선택 항목과 유사한 일치 항목을 강조 표시해야하는지 여부를 제어합니다.\",\"거터의 폴드 컨트롤을 자동으로 숨길지 결정합니다.\",\"사용하지 않는 코드의 페이드 아웃을 제어합니다.\",\"다른 제안 위에 조각 제안을 표시합니다.\",\"다른 제안 아래에 조각 제안을 표시합니다.\",\"다른 제안과 함께 조각 제안을 표시합니다.\",\"코드 조각 제안을 표시하지 않습니다.\\n\",\"코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.\",\"편집기에서 애니메이션을 사용하여 스크롤할지 여부를 제어합니다.\",\"제안 위젯의 글꼴 크기입니다. '0'으로 설정하면 '#editor.fontSize#'의 값이 사용됩니다.\",\"제안 위젯의 줄 높이입니다. '0'으로 설정하면 `#editor.lineHeight#`의 값이 사용됩니다.\",\"트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.\",\"항상 첫 번째 제안을 선택합니다.\",\"`log`가 최근에 완료되었으므로 추가 입력에서 제안을 선택하지 않은 경우 최근 제안을 선택하세요(예: `console.| -> console.log`).\",\"해당 제안을 완료한 이전 접두사에 따라 제안을 선택합니다(예: `co -> console` 및 `con -> const`).\",\"제안 목록을 표시할 때 제한이 미리 선택되는 방식을 제어합니다.\",\"탭 완료는 탭을 누를 때 가장 일치하는 제안을 삽입합니다.\",\"탭 완성을 사용하지 않도록 설정합니다.\",\"접두사가 일치하는 경우 코드 조각을 탭 완료합니다. 'quickSuggestions'를 사용하지 않을 때 가장 잘 작동합니다.\",\"탭 완성을 사용하도록 설정합니다.\",\"탭 정지 뒤에 공백을 삽입 및 삭제합니다.\",\"단어 관련 탐색 또는 작업을 수행할 때 단어 구분 기호로 사용할 문자입니다.\",\"줄이 바뀌지 않습니다.\",\"뷰포트 너비에서 줄이 바뀝니다.\",\"`#editor.wordWrapColumn#`에서 줄이 바뀝니다.\",\"뷰포트의 최소값 및 `#editor.wordWrapColumn#`에서 줄이 바뀝니다.\",\"줄 바꿈 여부를 제어합니다.\",\"`#editor.wordWrap#`이 `wordWrapColumn` 또는 'bounded'인 경우 편집기의 열 줄 바꿈을 제어합니다.\",\"들여쓰기가 없습니다. 줄 바꿈 행이 열 1에서 시작됩니다.\",\"줄 바꿈 행의 들여쓰기가 부모와 동일합니다.\",\"줄 바꿈 행이 부모 쪽으로 +1만큼 들여쓰기됩니다.\",\"줄 바꿈 행이 부모 쪽으로 +2만큼 들여쓰기됩니다.\",\"줄 바꿈 행의 들여쓰기를 제어합니다.\",\"모든 문자가 동일한 너비라고 가정합니다. 이 알고리즘은 고정 폭 글꼴과 문자 모양의 너비가 같은 특정 스크립트(예: 라틴 문자)에 적절히 작동하는 빠른 알고리즘입니다.\",\"래핑 점 계산을 브라우저에 위임합니다. 이 알고리즘은 매우 느려서 대용량 파일의 경우 중단될 수 있지만 모든 경우에 적절히 작동합니다.\",\"래핑 점을 계산하는 알고리즘을 제어합니다.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"일반 텍스트\"],\n\"vs/editor/common/standaloneStrings\":[\"없음 선택\",\"줄 {0}, 열 {1}({2} 선택됨)입니다.\",\"행 {0}, 열 {1}\",\"{0} 선택 항목({1}자 선택됨)\",\"{0} 선택 항목\",\"이제 'accessibilitySupport' 설정을 'on'으로 변경합니다.\",\"지금 편집기 접근성 문서 페이지를 여세요.\",\"차이 편집기의 읽기 전용 창에서.\",\"diff 편집기 창에서.\",\" 읽기 전용 코드 편집기에서\",\" 코드 편집기에서\",\"화면 판독기 사용에 최적화되도록 편집기를 구성하려면 지금 Command+E를 누르세요.\",\"화면 판독기에 사용할 수 있도록 편집기를 최적화하려면 지금 Ctrl+E를 누르세요.\",\"에디터를 화면 판독기와 함께 사용하기에 적합하도록 구성했습니다.\",\"편집기는 화면 판독기 사용을 위해 절대로 최적화되지 않도록 구성됩니다. 현재로서는 그렇지 않습니다.\",\"현재 편집기에서 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.\",\"현재 편집기에서 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.\",\"현재 편집기에서 <Tab> 키를 누르면 탭 문자가 삽입됩니다. {0}을(를) 눌러서 이 동작을 설정/해제합니다.\",\"현재 편집기에서 <Tab> 키를 누르면 탭 문자가 삽입됩니다. {0} 명령은 현재 키 바인딩으로 트리거할 수 없습니다.\",\"Command+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 여세요.\",\"Ctrl+H를 눌러 편집기 접근성과 관련된 자세한 정보가 있는 브라우저 창을 엽니다.\",\"이 도구 설명을 해제하고 Esc 키 또는 Shift+Esc를 눌러서 편집기로 돌아갈 수 있습니다.\",\"접근성 도움말 표시\",\"개발자: 검사 토큰\",\"줄 {0} 및 문자 {1}(으)로 이동\",\"줄 {0}(으)로 이동\",\"이동할 1과 {0} 사이의 줄 번호 입력\",\"검색하려면 1-{0}자 사이의 문자를 입력하세요.\",\"현재 줄: {0}. 줄 {1}(으)로 이동합니다.\",\"행 번호를 입력하고 콜론(:)과 문자 번호를 입력하여 검색하세요.\",\"줄 이동...\",\"{0}, {1}, 명령\",\"{0}, 명령\",\"실행하려는 작업의 이름을 입력하세요.\",\"명령 팔레트\",\"{0}, 기호\",\"검색하려는 ID의 이름을 입력하세요.\",\"기호로 가서...\",\"기호({0})\",\"모듈({0})\",\"클래스({0})\",\"인터페이스({0})\",\"메서드({0})\",\"함수({0})\",\"속성({0})\",\"변수({0})\",\"변수({0})\",\"생성자({0})\",\"호출({0})\",\"편집기 콘텐츠\",\"내게 필요한 옵션을 보려면 Ctrl+F1을 누릅니다.\",\"접근성 옵션은 Alt+F1을 눌러여 합니다.\",\"고대비 테마로 전환\",\"{1} 파일에서 편집을 {0}개 했습니다.\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"커서 위치의 줄 강조 표시에 대한 배경색입니다.\",\"커서 위치의 줄 테두리에 대한 배경색입니다.\",\"빠른 열기 및 찾기 기능 등을 통해 강조 표시된 영역의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"강조 영역 주변의 테두리에 대한 배경색입니다\",\"강조 표시된 기호(예: 정의로 이동 또는 다음/이전 기호로 이동)의 배경색입니다. 이 색상은 기본 장식을 숨기지 않도록 불투명하지 않아야 합니다.\",\"강조 표시된 기호 주위의 테두리 배경색입니다.\",\"편집기 커서 색입니다.\",\"편집기 커서의 배경색입니다. 블록 커서와 겹치는 글자의 색상을 사용자 정의할 수 있습니다.\",\"편집기의 공백 문자 색입니다.\",\"편집기 들여쓰기 안내선 색입니다.\",\"활성 편집기 들여쓰기 안내선 색입니다.\",\"편집기 줄 번호 색입니다.\",\"편집기 활성 영역 줄번호 색상\",\"ID는 사용되지 않습니다. 대신 'editorLineNumber.activeForeground'를 사용하세요.\",\"편집기 활성 영역 줄번호 색상\",\"편집기 눈금의 색상입니다.\",\"편집기 코드 렌즈의 전경색입니다.\",\"일치하는 괄호 뒤의 배경색\",\"일치하는 브래킷 박스의 색상\",\"개요 눈금 경계의 색상입니다.\",\"편집기 거터의 배경색입니다. 거터에는 글리프 여백과 행 수가 있습니다.\",\"편집기의 불필요한(사용하지 않는) 소스 코드 테두리 색입니다.\",\"편집기의 불필요한(사용하지 않는) 소스 코드 불투명도입니다. 예를 들어 \\\"#000000c0\\\"은 75% 불투명도로 코드를 렌더링합니다. 고대비 테마의 경우 페이드 아웃하지 않고 'editorUnnecessaryCode.border' 테마 색을 사용하여 불필요한 코드에 밑줄을 그으세요.\",\"오류의 개요 눈금자 마커 색입니다.\",\"경고의 개요 눈금자 마커 색입니다.\",\"정보의 개요 눈금자 마커 색입니다.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"괄호에 해당하는 영역을 표시자에 채색하여 표시합니다.\",\"대괄호로 이동\",\"괄호까지 선택\",\"대괄호로 이동(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"캐럿을 왼쪽으로 이동\",\"캐럿을 오른쪽으로 이동\"],\"vs/editor/contrib/caretOperations/transpose\":[\"문자 바꾸기\"],\"vs/editor/contrib/clipboard/clipboard\":[\"잘라내기\",\"잘라내기(&&T)\",\"복사\",\"복사(&&C)\",\"붙여넣기\",\"붙여넣기(&&P)\",\"구문을 강조 표시하여 복사\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"실행할 코드 작업의 종류입니다.\",\"반환된 작업이 적용되는 경우를 제어합니다.\",\"항상 반환된 첫 번째 코드 작업을 적용합니다.\",\"첫 번째 반환된 코드 작업을 적용합니다(이 작업만 있는 경우).\",\"반환된 코드 작업을 적용하지 마세요.\",\"기본 코드 작업만 반환되도록 할지 여부를 제어합니다.\",\"코드 작업을 적용하는 중 알 수 없는 오류가 발생했습니다.\",\"빠른 수정...\",\"사용 가능한 코드 동작이 없습니다.\",\"'{0}'에 대한 기본 코드 작업을 사용할 수 없음\",\"'{0}'에 대한 코드 작업을 사용할 수 없음\",\"사용할 수 있는 기본 코드 작업 없음\",\"사용 가능한 코드 동작이 없습니다.\",\"리팩터링...\",\"'{0}'에 대한 기본 리팩터링 없음\",\"'{0}'에 대한 리팩터링 없음\",\"기본 설정 리팩터링을 사용할 수 없음\",\"사용 가능한 리펙터링이 없습니다.\",\"소스 작업...\",\"'{0}'에 대한 기본 소스 작업을 사용할 수 없음\",\"'{0}'에 대한 소스 작업을 사용할 수 없음\",\"사용할 수 있는 기본 원본 작업 없음\",\"사용 가능한 소스 작업이 없습니다.\",\"가져오기 구성\",\"사용 가능한 가져오기 구성 작업이 없습니다.\",\"모두 수정\",\"모든 작업 수정 사용 불가\",\"자동 수정...\",\"사용할 수 있는 자동 수정 없음\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"수정 사항을 표시합니다. 사용 가능한 기본 수정({0})\",\"수정 사항 표시({0})\",\"수정 사항 표시\"],\"vs/editor/contrib/comment/comment\":[\"줄 주석 설정/해제\",\"줄 주석 설정/해제(&&T)\",\"줄 주석 추가\",\"줄 주석 제거\",\"블록 주석 설정/해제\",\"블록 주석 설정/해제(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"편집기 상황에 맞는 메뉴 표시\"],\n\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"커서 실행 취소\",\"커서 다시 실행\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"배열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"부울 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"클래스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"색 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안에 표시됩니다.\",\"상수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"생성자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"열거자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"열거자 멤버 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"이벤트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"필드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"파일 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"폴더 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"함수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"인터페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"키 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"키워드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"메서드 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"모듈 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"네임스페이스 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"null 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"숫자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"개체 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"연산자 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"패키지 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"속성 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"참조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"코드 조각 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"문자열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"구조 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"텍스트 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.\",\"형식 매개변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"단위 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\",\"변수 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 표시됩니다.\"],\n\"vs/editor/contrib/find/findController\":[\"찾기\",\"찾기(&&F)\",\"선택 영역에서 찾기\",\"다음 찾기\",\"다음 찾기\",\"이전 찾기\",\"이전 찾기\",\"다음 선택 찾기\",\"이전 선택 찾기\",\"바꾸기\",\"바꾸기(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"찾기\",\"찾기\",\"이전 일치\",\"다음 일치 항목\",\"선택 항목에서 찾기\",\"닫기\",\"바꾸기\",\"바꾸기\",\"바꾸기\",\"모두 바꾸기\",\"바꾸기 모드 설정/해제\",\"처음 {0}개의 결과가 강조 표시되지만 모든 찾기 작업은 전체 텍스트에 대해 수행됩니다.\",\"{1}의 {0}\",\"결과 없음\",\"{0}개 찾음\",\"{1}에 대해 {0} 찾음\",\"{2}에서 {1}에 대해 {0} 찾음\",\"{1}에 대해 {0} 찾음\",\"Ctrl+Enter를 누르면 이제 모든 항목을 바꾸지 않고 줄 바꿈을 삽입합니다. editor.action.replaceAll의 키 바인딩을 수정하여 이 동작을 재정의할 수 있습니다.\"],\"vs/editor/contrib/folding/folding\":[\"펼치기\",\"재귀적으로 펼치기\",\"접기\",\"접기 전환\",\"재귀적으로 접기\",\"모든 블록 코멘트를 접기\",\"모든 영역 접기\",\"모든 영역 펼치기\",\"모두 접기\",\"모두 펼치기\",\"수준 {0} 접기\",\"편집기 선택 영역의 색입니다.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"편집기 글꼴 확대\",\"편집기 글꼴 축소\",\"편집기 글꼴 확대/축소 다시 설정\"],\"vs/editor/contrib/format/format\":[\"줄 {0}에서 1개 서식 편집을 수행했습니다.\",\"줄 {1}에서 {0}개 서식 편집을 수행했습니다.\",\"줄 {0}과(와) {1} 사이에서 1개 서식 편집을 수행했습니다.\",\"줄 {1}과(와) {2} 사이에서 {0}개 서식 편집을 수행했습니다.\"],\"vs/editor/contrib/format/formatActions\":[\"문서 서식\",\"선택 영역 서식\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"다음 문제로 이동 (오류, 경고, 정보)\",\"이전 문제로 이동 (오류, 경고, 정보)\",\"파일의 다음 문제로 이동 (오류, 경고, 정보)\",\"파일의 이전 문제로 이동 (오류, 경고, 정보)\",\"다음 문제(&&P)\",\"이전 문제(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"문제 {1}개 중 {0}개\",\"문제 {1}개 중 {0}개\",\"편집기 표식 탐색 위젯 오류 색입니다.\",\"편집기 표식 탐색 위젯 경고 색입니다.\",\"편집기 표식 탐색 위젯 정보 색입니다.\",\"편집기 표식 탐색 위젯 배경입니다.\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"피킹\",\"정의\",\"'{0}'에 대한 정의를 찾을 수 없습니다.\",\"정의를 찾을 수 없음\",\"정의로 이동\",\"정의로 이동(&&D)\",\"측면에서 정의 열기\",\"정의 피킹(Peeking)\",\"선언\",\"'{0}'에 대한 선언을 찾을 수 없음\",\"선언을 찾을 수 없음\",\"선언으로 이동\",\"&&선언으로 이동\",\"'{0}'에 대한 선언을 찾을 수 없음\",\"선언을 찾을 수 없음\",\"선언 미리 보기\",\"형식 정의\",\"'{0}'에 대한 형식 정의를 찾을 수 없습니다.\",\"형식 정의를 찾을 수 없습니다.\",\"형식 정의로 이동\",\"형식 정의로 이동(&&T)\",\"형식 정의 미리 보기\",\"구현\",\"'{0}'에 대한 구현을 찾을 수 없습니다.\",\"구현을 찾을 수 없습니다.\",\"구현으로 이동\",\"구현으로 이동\",\"피킹 구현\",\"'{0}'에 대한 참조가 없습니다.\",\"참조가 없습니다.\",\"참조로 이동\",\"&&참조로 이동\",\"참조\",\"참조 미리 보기\",\"참조\",\"기호로 이동\",\"위치\",\"'{0}'에 대한 결과가 없습니다.\",\"참조\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"{0}개 정의를 표시하려면 클릭하세요.\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"로드 중...\",\"{0}({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"파일을 확인하지 못했습니다.\",\"참조 {0}개\",\"참조 {0}개\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"미리 보기를 사용할 수 없음\",\"참조\",\"결과 없음\",\"참조\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"{2}열, {1}줄, {0}의 기호\",\"{0}의 기호 1개, 전체 경로 {1}\",\"{1}의 기호 {0}개, 전체 경로 {2}\",\"결과 없음\",\"{0}에서 기호 1개를 찾았습니다.\",\"{1}에서 기호 {0}개를 찾았습니다.\",\"{1}개 파일에서 기호 {0}개를 찾았습니다.\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1}의 {0} 기호, 다음의 경우 {2}\",\"{1}의 기호 {0}\"],\"vs/editor/contrib/hover/hover\":[\"가리키기 표시\",\"정의 미리 보기 가리킨 항목 표시\"],\"vs/editor/contrib/hover/modesContentHover\":[\"로드 중...\",\"문제 보기\",\"빠른 수정을 확인하는 중...\",\"빠른 수정을 사용할 수 없음\",\"빠른 수정...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"이전 값으로 바꾸기\",\"다음 값으로 바꾸기\"],\n\"vs/editor/contrib/linesOperations/linesOperations\":[\"위에 줄 복사\",\"위에 줄 복사(&&C)\",\"아래에 줄 복사\",\"아래에 줄 복사(&&P)\",\"중복된 선택 영역\",\"&&중복된 선택 영역\",\"줄 위로 이동\",\"줄 위로 이동(&&V)\",\"줄 아래로 이동\",\"줄 아래로 이동(&&L)\",\"줄을 오름차순 정렬\",\"줄을 내림차순으로 정렬\",\"후행 공백 자르기\",\"줄 삭제\",\"줄 들여쓰기\",\"줄 내어쓰기\",\"위에 줄 삽입\",\"아래에 줄 삽입\",\"왼쪽 모두 삭제\",\"우측에 있는 항목 삭제\",\"줄 연결\",\"커서 주위 문자 바꾸기\",\"대문자로 변환\",\"소문자로 변환\",\"단어의 첫 글자를 대문자로 변환\"],\"vs/editor/contrib/links/links\":[\"명령 실행\",\"링크로 이동\",\"Cmd+클릭\",\"Ctrl+클릭\",\"Option+클릭\",\"Alt+클릭\",\"{0} 형식이 올바르지 않으므로 이 링크를 열지 못했습니다\",\"대상이 없으므로 이 링크를 열지 못했습니다.\",\"링크 열기\"],\"vs/editor/contrib/message/messageController\":[\"읽기 전용 편집기에서는 편집할 수 없습니다.\"],\"vs/editor/contrib/multicursor/multicursor\":[\"위에 커서 추가\",\"위에 커서 추가(&&A)\",\"아래에 커서 추가\",\"아래에 커서 추가(&&D)\",\"줄 끝에 커서 추가\",\"줄 끝에 커서 추가(&&U)\",\"맨 아래에 커서 추가\",\"맨 위에 커서 추가\",\"다음 일치 항목 찾기에 선택 항목 추가\",\"다음 항목 추가(&&N)\",\"이전 일치 항목 찾기에 선택 항목 추가\",\"이전 항목 추가(&&R)\",\"다음 일치 항목 찾기로 마지막 선택 항목 이동\",\"마지막 선택 항목을 이전 일치 항목 찾기로 이동\",\"일치 항목 찾기의 모든 항목 선택\",\"모든 항목 선택(&&O)\",\"모든 항목 변경\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"매개 변수 힌트 트리거\"],\n\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, 힌트\"],\"vs/editor/contrib/peekView/peekView\":[\"닫기\",\"Peek 뷰 제목 영역의 배경색입니다.\",\"Peek 뷰 제목 색입니다.\",\"Peek 뷰 제목 정보 색입니다.\",\"Peek 뷰 테두리 및 화살표 색입니다.\",\"Peek 뷰 결과 목록의 배경색입니다.\",\"Peek 뷰 결과 목록에서 라인 노드의 전경색입니다.\",\"Peek 뷰 결과 목록에서 파일 노드의 전경색입니다.\",\"Peek 뷰 결과 목록에서 선택된 항목의 배경색입니다.\",\"Peek 뷰 결과 목록에서 선택된 항목의 전경색입니다.\",\"Peek 뷰 편집기의 배경색입니다.\",\"Peek 뷰 편집기의 거터 배경색입니다.\",\"Peek 뷰 결과 목록의 일치 항목 강조 표시 색입니다.\",\"Peek 뷰 편집기의 일치 항목 강조 표시 색입니다.\",\"Peek 뷰 편집기의 일치 항목 강조 표시 테두리입니다.\"],\"vs/editor/contrib/rename/rename\":[\"결과가 없습니다.\",\"위치 이름을 바꾸는 중 알 수 없는 오류가 발생했습니다.\",\"'{0}' 이름 바꾸기\",\"'{0}'을(를) '{1}'(으)로 이름을 변경했습니다. 요약: {2}\",\"이름 바꾸기를 통해 편집 내용을 적용하지 못했습니다.\",\"이름 바꾸기를 통해 편집 내용을 계산하지 못했습니다.\",\"기호 이름 바꾸기\",\"이름을 바꾸기 전에 변경 내용을 미리 볼 수 있는 기능 사용/사용 안 함\"],\"vs/editor/contrib/rename/renameInputField\":[\"입력 이름을 바꾸세요. 새 이름을 입력한 다음 [Enter] 키를 눌러 커밋하세요.\",\"이름을 바꿀 {0}, 미리 볼 {1}\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"선택 영역 확장\",\"선택 영역 확장(&&E)\",\"선택 영역 축소\",\"선택 영역 축소(&&S)\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일  \",\"토요일\",\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\",\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\",\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],\"vs/editor/contrib/suggest/suggestController\":[\"{0}의 {1}개의 수정사항을 수락하는 중\",\"제안 항목 트리거\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"제안 위젯의 배경색입니다.\",\"제안 위젯의 테두리 색입니다.\",\"제안 위젯의 전경색입니다.\",\"제한 위젯에서 선택된 항목의 배경색입니다.\",\"제안 위젯의 일치 항목 강조 표시 색입니다.\",\"자세히 알아보기...{0}\",\"간단히 보기...{0}\",\"로드 중...\",\"로드 중...\",\"제안 항목이 없습니다.\",\"간단히 표시하려면 {0}...\",\"자세히 표시하려면 {0}...\",\"항목 {0}, 문서: {1}\",\"삽입할 {0}, 바꿀 {1}\",\"바꿀 {0}, 삽입할 {1}\",\"수락할 {0}\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"<Tab> 키로 포커스 이동 설정/해제\",\"이제 <Tab> 키를 누르면 포커스가 다음 포커스 가능한 요소로 이동합니다.\",\"이제 <Tab> 키를 누르면 탭 문자가 삽입됩니다.\"],\"vs/editor/contrib/tokenization/tokenization\":[\"개발자: 강제로 다시 토큰화\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"변수 읽기와 같은 읽기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"변수에 쓰기와 같은 쓰기 액세스 중 기호의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"변수 읽기와 같은 읽기 액세스 중 기호의 테두리 색입니다.\",\"변수에 쓰기와 같은 쓰기 액세스 중 기호의 테두리 색입니다.\",\"기호 강조 표시의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"쓰기 액세스 기호에 대한 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"다음 강조 기호로 이동\",\"이전 강조 기호로 이동\",\"기호 강조 표시 트리거\"],\"vs/platform/configuration/common/configurationRegistry\":[\"기본 구성 재정의\",\"언어에 대해 재정의할 편집기 설정을 구성합니다.\",\"이 설정은 언어별 구성을 지원하지 않습니다.\",\"'{0}'을(를) 등록할 수 없습니다. 이는 언어별 편집기 설정을 설명하는 속성 패턴인 '\\\\\\\\[.*\\\\\\\\]$'과(와) 일치합니다. 'configurationDefaults' 기여를 사용하세요.\",\"'{0}'을(를) 등록할 수 없습니다. 이 속성은 이미 등록되어 있습니다.\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"({0})을(를) 눌렀습니다. 둘째 키는 잠시 기다렸다가 누르세요.\",\"키 조합({0}, {1})은 명령이 아닙니다.\"],\n\"vs/platform/list/browser/listService\":[\"워크벤치\",\"Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.\",\"Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.\",\"마우스로 트리와 목록의 항목을 다중 선택에 추가할 때 사용할 한정자입니다(예를 들어 탐색기에서 편집기와 SCM 보기를 여는 경우). '옆에서 열기' 마우스 제스처(지원되는 경우)는 다중 선택 한정자와 충돌하지 않도록 조정됩니다.\",\"트리와 목록에서 마우스를 사용하여 항목을 여는 방법을 제어합니다(지원되는 경우). 트리에서 자식 항목이 있는 부모 항목의 경우 이 설정은 부모 항목을 한 번 클릭으로 확장할지 또는 두 번 클릭으로 확장할지 여부를 제어합니다. 일부 트리와 목록에서는 이 설정을 적용할 수 없는 경우  무시하도록 선택할 수 있습니다. \",\"Workbench에서 목록 및 트리가 가로 스크롤을 지원하는지 여부를 제어합니다.\",\"워크벤치에서 수평 스크롤 지원 여부를 제어 합니다.\",\"이 설정은 사용되지 않습니다. 대신 '{0}'을(를) 사용하세요.\",\"트리 들여쓰기를 픽셀 단위로 제어합니다.\",\"트리에서 들여쓰기 가이드를 렌더링할지 여부를 제어합니다.\",\"간단한 키보드 탐색에서는 키보드 입력과 일치하는 요소에 집중합니다. 일치는 접두사에서만 수행됩니다.\",\"키보드 탐색 강조 표시에서는 키보드 입력과 일치하는 요소를 강조 표시합니다. 이후로 탐색에서 위 및 아래로 이동하는 경우 강조 표시된 요소만 트래버스합니다.\",\"키보드 탐색 필터링에서는 키보드 입력과 일치하지 않는 요소를 모두 필터링하여 숨깁니다.\",\"워크벤치의 목록 및 트리 키보드 탐색 스타일을 제어합니다. 간소화하고, 강조 표시하고, 필터링할 수 있습니다.\",\"목록 및 트리에서 키보드 탐색이 입력만으로 자동 트리거되는지 여부를 제어합니다. 'false'로 설정하면 'list.toggleKeyboardNavigation' 명령을 실행할 때만 키보드 탐색이 트리거되어 바로 가기 키를 할당할 수 있습니다.\"],\n\"vs/platform/markers/common/markers\":[\"오류\",\"경고\",\"정보\"],\n\"vs/platform/theme/common/colorRegistry\":[\"전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"오류 메시지에 대한 전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"포커스가 있는 요소의 전체 테두리 색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.\",\"더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 요소 주위의 추가 테두리입니다.\",\"더 뚜렷이 대비되도록 요소를 다른 요소와 구분하는 활성 요소 주위의 추가 테두리입니다.\",\"텍스트 내 링크의 전경색입니다.\",\"텍스트 내 코드 블록의 전경색입니다.\",\"편집기 내에서 찾기/바꾸기 같은 위젯의 그림자 색입니다.\",\"입력 상자 배경입니다.\",\"입력 상자 전경입니다.\",\"입력 상자 테두리입니다.\",\"입력 필드에서 활성화된 옵션의 테두리 색입니다.\",\"입력 필드에서 활성화된 옵션의 배경색입니다.\",\"정보 심각도의 입력 유효성 검사 배경색입니다.\",\"정보 심각도의 입력 유효성 검사 전경색입니다.\",\"정보 심각도의 입력 유효성 검사 테두리 색입니다.\",\"경고 심각도의 입력 유효성 검사 배경색입니다.\",\"경고 심각도의 입력 유효성 검사 전경색입니다.\",\"경고 심각도의 입력 유효성 검사 테두리 색입니다.\",\"오류 심각도의 입력 유효성 검사 배경색입니다.\",\"오류 심각도의 입력 유효성 검사 전경색입니다.\",\"오류 심각도의 입력 유효성 검사 테두리 색입니다.\",\"드롭다운 배경입니다.\",\"드롭다운 전경입니다.\",\"그룹화 레이블에 대한 빠른 선택기 색입니다.\",\"그룹화 테두리에 대한 빠른 선택기 색입니다.\",\"배지 배경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.\",\"배지 전경색입니다. 배지는 검색 결과 수와 같은 소량의 정보 레이블입니다.\",\"스크롤되는 보기를 나타내는 스크롤 막대 그림자입니다.\",\"스크롤 막대 슬라이버 배경색입니다.\",\"마우스로 가리킬 때 스크롤 막대 슬라이더 배경색입니다.\",\"클릭된 상태일 때 스크롤 막대 슬라이더 배경색입니다.\",\"장기 작업을 대상으로 표시될 수 있는 진행률 표시줄의 배경색입니다.\",\"편집기 내 오류 표시선의 전경색입니다.\",\"편집기에서 오류 상자의 테두리 색입니다.\",\"편집기 내 경고 표시선의 전경색입니다.\",\"편집기에서 경고 상자의 테두리 색입니다.\",\"편집기 내 정보 표시선의 전경색입니다.\",\"편집기에서 정보 상자의 테두리 색입니다.\",\"편집기에서 힌트 표시선의 전경색입니다.\",\"편집기에서 힌트 상자의 테두리 색입니다.\",\"편집기 배경색입니다.\",\"편집기 기본 전경색입니다.\",\"찾기/바꾸기 같은 편집기 위젯의 배경색입니다.\",\"찾기/바꾸기와 같은 편집기 위젯의 전경색입니다.\",\"편집기 위젯의 테두리 색입니다. 위젯에 테두리가 있고 위젯이 색상을 무시하지 않을 때만 사용됩니다.\",\"편집기 위젯 크기 조정 막대의 테두리 색입니다. 이 색은 위젯에서 크기 조정 막대를 표시하도록 선택하고 위젯에서 색을 재지정하지 않는 경우에만 사용됩니다.\",\"편집기 선택 영역의 색입니다.\",\"고대비를 위한 선택 텍스트의 색입니다.\",\"비활성 편집기의 선택 항목 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 영역과 동일한 콘텐츠가 있는 영역의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 영역과 동일한 콘텐츠가 있는 영역의 테두리 색입니다.\",\"현재 검색 일치 항목의 색입니다.\",\"기타 검색 일치 항목의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"검색을 제한하는 범위의 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"현재 검색과 일치하는 테두리 색입니다.\",\"다른 검색과 일치하는 테두리 색입니다.\",\"검색을 제한하는 범위의 테두리 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"호버가 표시된 단어 아래를 강조 표시합니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"편집기 호버의 배경색.\",\"편집기 호버의 전경색입니다.\",\"편집기 호버의 테두리 색입니다.\",\"편집기 호버 상태 표시줄의 배경색입니다.\",\"활성 링크의 색입니다.\",\"전구 작업 아이콘에 사용되는 색상입니다.\",\"전구 자동 수정 작업 아이콘에 사용되는 색상입니다.\",\"삽입된 텍스트의 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"제거된 텍스트 배경색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"삽입된 텍스트의 윤곽선 색입니다.\",\"제거된 텍스트의 윤곽선 색입니다.\",\"두 텍스트 편집기 사이의 테두리 색입니다.\",\"목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 포커스가 있는 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 선택한 항목의 목록/트리 전경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"목록/트리가 비활성 상태인 경우 포커스가 있는 항목의 목록/트리 배경색입니다. 목록/트리가 활성 상태이면 키보드 포커스를 가지며, 비활성 상태이면 포커스가 없습니다.\",\"마우스로 항목을 가리킬 때 목록/트리 배경입니다.\",\"마우스로 항목을 가리킬 때 목록/트리 전경입니다.\",\"마우스로 항목을 이동할 때 목록/트리 끌어서 놓기 배경입니다.\",\"목록/트리 내에서 검색할 때 일치 항목 강조 표시의 목록/트리 전경색입니다.\",\"목록 및 트리에서 형식 필터 위젯의 배경색입니다.\",\"목록 및 트리에서 형식 필터 위젯의 윤곽선 색입니다.\",\"일치하는 항목이 없을 때 목록 및 트리에서 표시되는 형식 필터 위젯의 윤곽선 색입니다.\",\"들여쓰기 가이드의 트리 스트로크 색입니다.\",\"메뉴 테두리 색입니다.\",\"메뉴 항목 전경색입니다.\",\"메뉴 항목 배경색입니다.\",\"메뉴의 선택된 메뉴 항목 전경색입니다.\",\"메뉴의 선택된 메뉴 항목 배경색입니다.\",\"메뉴의 선택된 메뉴 항목 테두리 색입니다.\",\"메뉴에서 구분 기호 메뉴 항목의 색입니다.\",\"코드 조각 탭 정지의 강조 표시 배경색입니다.\",\"코드 조각 탭 정지의 강조 표시 테두리 색입니다.\",\"코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.\",\"코드 조각 마지막 탭 정지의 강조 표시 배경색입니다.\",\"일치 항목 찾기의 개요 눈금자 표식 색입니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"선택 항목의 개요 눈금자 표식 색이 강조 표시됩니다. 기본 장식을 숨기지 않도록 색은 불투명하지 않아야 합니다.\",\"일치하는 항목을 찾기 위한 미니맵 표식 색입니다.\",\"편집기 선택 작업을 위한 미니맵 마커 색입니다.\",\"오류에 대한 미니맵 마커 색상입니다.\",\"경고의 미니맵 마커 색상입니다.\",\"문제 오류 아이콘에 사용되는 색입니다.\",\"문제 경고 아이콘에 사용되는 색입니다.\",\"문제 정보 아이콘에 사용되는 색입니다.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ko.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.ru.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.ru\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (произошло снова)\",\"{0} (было {1} раз)\"],\"vs/base/browser/ui/findinput/findInput\":[\"Ввод\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"С учетом регистра\",\"Слово целиком\",\"Использовать регулярное выражение\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"Ввод\",\"Сохранить регистр\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"Ошибка: {0}\",\"Предупреждение: {0}\",\"Информация: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"свободный\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. Для перехода используйте клавиши навигации.\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"Сброс\",\"Отключить фильтр по типу\",\"Включить фильтр по типу\",\"Элементы не найдены\",\"Сопоставлено элементов: {0} из {1}\"],\n\"vs/base/common/keybindingLabels\":[\"CTRL\",\"SHIFT\",\"ALT\",\"Windows\",\"CTRL\",\"SHIFT\",\"ALT\",\"Превосходно\",\"CTRL\",\"SHIFT\",\"ALT\",\"Команда\",\"CTRL\",\"SHIFT\",\"ALT\",\"Windows\",\"CTRL\",\"SHIFT\",\"ALT\",\"Превосходно\"],\"vs/base/common/severity\":[\"Ошибка\",\"Предупреждение\",\"Информация\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}, средство выбора\",\"средство выбора\"],\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"Средство быстрого выбора. Введите, чтобы сузить результаты.\",\"Средство быстрого выбора\",\"Результаты: {0}\"],\"vs/editor/browser/controller/coreCommands\":[\"&&Выделить все\",\"&&Отменить\",\"&&Повторить\"],\"vs/editor/browser/controller/textAreaHandler\":[\"Редактор сейчас недоступен. Чтобы открыть список действий, нажмите ALT+F1.\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"Количество курсоров ограничено {0}.\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"Нельзя сравнить файлы, потому что один из файлов слишком большой.\"],\n\"vs/editor/browser/widget/diffReview\":[\"Закрыть\",\"строки отсутствуют\",\"1 строка\",\"строк: {0}\",\"Различие {0} из {1}; исходная версия: {2}, {3}, измененная версия: {4}, {5}\",\"пустой\",\"Исходная версия: {0}, измененная версия: {1}: {2}\",\"+ измененная версия: {0}: {1}\",\"- исходная версия: {0}: {1}\",\"Перейти к следующему различию\",\"Перейти к предыдущему различию\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"Копировать удаленные строки\",\"Копировать удаленную строку\",\"Копировать удаленную строку ({0})\",\"Отменить это изменение\",\"Копировать удаленную строку ({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"Редактор\",'Число пробелов в табуляции. Этот параметр переопределяется на основе содержимого файла, если установлен параметр \"#editor.detectIndentation#\".','Вставлять пробелы при нажатии клавиши TAB. Этот параметр переопределяется на основе содержимого файла, если установлен параметр \"#editor.detectIndentation#\". ','Управляет тем, будут ли параметры \"#editor.tabSize#\" и \"#editor.insertSpaces#\" определяться автоматически при открытии файла на основе содержимого файла.',\"Удалить автоматически вставляемый конечный пробел.\",\"Специальная обработка для больших файлов с отключением некоторых функций, которые интенсивно используют память.\",\"Определяет, следует ли оценивать завершения на основе слов в документе.\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"Оставлять быстрый редактор открытым даже при двойном щелчке по его содержимому и при нажатии ESC.\",\"Строки, длина которых превышает указанное значение, не будут размечены из соображений производительности\",\"Время ожидания в миллисекундах, по истечении которого вычисление несовпадений отменяется. Укажите значение 0, чтобы не использовать время ожидания.\",\"Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.\",\"Определяет, должен ли редактор несовпадений трактовать несовпадения символов-разделителей как различия.\",\"Определяет, должны ли в редакторе отображаться индикаторы +/- для добавленных или удаленных изменений.\"],\n\"vs/editor/common/config/editorOptions\":[\"Редактор будет определять, подключено ли средство чтения с экрана, с помощью API-интерфейсов платформы.\",\"Редактор будет оптимизирован для использования со средством чтения с экрана в постоянном режиме.\",\"Редактор никогда не будет оптимизироваться для использования со средством чтения с экрана.\",\"Определяет, следует ли запустить редактор в режиме оптимизации для средства чтения с экрана.\",\"Определяет, вставляется ли пробел при комментировании.\",\"Управляет тем, копируется ли текущая строка при копировании без выделения.\",\"Определяет, можно ли передать строку поиска в мини-приложение поиска из текста, выделенного в редакторе.\",'Никогда не включать функцию \"Найти в выделении\" автоматически (по умолчанию)','Всегда включать функцию \"Найти в выделении\" автоматически','Автоматическое включение функции \"Найти в выделении\" при выборе нескольких строк содержимого.',\"Определяет, выполняется ли поиск для выбранного текста или для всего файла в редакторе.\",\"Определяет, должно ли мини-приложение поиска считывать или изменять общий буфер обмена поиска в macOS.\",\"Определяет, должно ли мини-приложение поиска добавлять дополнительные строки в начале окна редактора. Если задано значение true, вы можете прокрутить первую строку при отображаемом мини-приложении поиска.\",\"Включает/отключает лигатуры шрифта.\",\"Явные параметры для функций шрифтов.\",\"Настраивает лигатуры.\",\"Управляет размером шрифта в пикселях.\",\"Показать предварительные результаты (по умолчанию)\",\"Перейти к основному результату и показать быстрый редактор\",\"Перейдите к основному результату и включите быструю навигацию для остальных\",\"Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.editor.gotoLocation.multipleDefinitions' или 'editor.editor.gotoLocation.multipleImplementations'.\",'Управляет поведением команды \"Перейти к определению\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к определению типа\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к объявлению\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к реализациям\" при наличии нескольких целевых расположений.','Управляет поведением команды \"Перейти к ссылкам\" при наличии нескольких целевых расположений.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом операции \"Перейти к определению\" является текущее расположение.','Идентификатор альтернативной команды, которая выполняется в том случае, если результатом операции \"Перейти к определению типа\" является текущее расположение.','Идентификатор альтернативный команды, выполняемой в том случае, когда результатом операции \"Перейти к объявлению\" является текущее расположение.','Идентификатор альтернативный команды, выполняемой, когда результатом команды \"Перейти к реализации\" является текущее расположение.','Идентификатор альтернативной команды, выполняемой в том случае, когда результатом выполнения операции \"Перейти к ссылке\" является текущее расположение.',\"Управляет тем, отображается ли наведение.\",\"Определяет время задержки в миллисекундах перед отображением наведения.\",\"Управляет тем, должно ли наведение оставаться видимым при наведении на него курсора мыши.\",\"Включает индикатор действия кода в редакторе.\",\"Управляет высотой строк. Укажите 0 для вычисления высоты строки по размеру шрифта.\",\"Определяет, отображается ли мини-карта.\",\"Определяет, с какой стороны будет отображаться мини-карта.\",\"Определяет, когда отображается ползунок мини-карты.\",\"Масштаб содержимого, выводимого на мини-карте.\",\"Отображает фактические символы в строке вместо цветных блоков.\",\"Ограничивает ширину мини-карты, чтобы количество отображаемых столбцов не превышало определенное количество.\",\"Включает всплывающее окно с документацией по параметру и сведениями о типе, которое отображается во время набора.\",\"Определяет, меню подсказок остается открытым или закроется при достижении конца списка.\",\"Разрешение кратких предложений в строках.\",\"Разрешение кратких предложений в комментариях.\",\"Разрешение кратких предложений вне строк и комментариев.\",\"Определяет, должны ли при вводе текста автоматически отображаться предложения.\",\"Номера строк не отображаются.\",\"Отображаются абсолютные номера строк.\",\"Отображаемые номера строк вычисляются как расстояние в строках до положения курсора.\",\"Номера строк отображаются каждые 10 строк.\",\"Управляет отображением номеров строк.\",\"Отображать вертикальные линейки после определенного числа моноширинных символов. Для отображения нескольких линеек укажите несколько значений. Если не указано ни одного значения, вертикальные линейки отображаться не будут.\",\"Вставить предложение без перезаписи текста справа от курсора.\",\"Вставить предложение и перезаписать текст справа от курсора.\",\"Определяет, будут ли перезаписываться слова при принятии вариантов завершения. Обратите внимание, что это зависит от расширений, использующих эту функцию.\",'Определяет, следует ли выделять неожиданные изменения текста при принятии вариантов завершения, например, для замены необходим вариант \"insertMode\", но завершение поддерживает только вариант \"insert\".',\"Управляет тем, допускаются ли небольшие опечатки в предложениях фильтрации и сортировки.\",\"Определяет, следует ли учитывать при сортировке слова, расположенные рядом с курсором.\",'Определяет, используются ли сохраненные варианты выбора предложений совместно несколькими рабочими областями и окнами (требуется \"#editor.suggestSelection#\").',\"Управляет тем, могут ли использоваться быстрые предложения в активном фрагменте.\",\"Указывает, нужно ли отображать значки в предложениях.\",\"Определяет, сколько предложений IntelliSense будет показано до отображения полосы прокрутки (максимум 15).\",\"Этот параметр устарел. Используйте вместо него отдельные параметры, например, 'editor.suggest.showKeywords' или 'editor.suggest.showSnippets'.\",'Когда параметр включен, в IntelliSense отображаются предложения \"method\".','Когда параметр включен, в IntelliSense отображаются предложения \"function\".','Когда параметр включен, в IntelliSense отображаются предложения \"constructor\".','Когда параметр включен, в IntelliSense отображаются предложения \"field\".','Когда параметр включен, в IntelliSense отображаются предложения \"variable\".','Когда параметр включен, в IntelliSense отображаются предложения \"class\".','Когда параметр включен, в IntelliSense отображаются предложения \"struct\".','Когда параметр включен, в IntelliSense отображаются предложения \"interface\".','Когда параметр включен, в IntelliSense отображаются предложения \"module\".','Когда параметр включен, в IntelliSense отображаются предложения \"property\".','Когда параметр включен, в IntelliSense отображаются предложения \"event\".','Когда параметр включен, в IntelliSense отображаются предложения \"operator\".','Когда параметр включен, в IntelliSense отображаются предложения \"unit\".','Когда параметр включен, в IntelliSense отображаются предложения \"value\".','Когда параметр включен, в IntelliSense отображаются предложения \"constant\".','Когда параметр включен, в IntelliSense отображаются предложения \"enum\".','Когда параметр включен, в IntelliSense отображаются предложения \"enumMember\".','Когда параметр включен, в IntelliSense отображаются предложения \"keyword\".','Когда параметр включен, в IntelliSense отображаются предложения \"text\".','Когда параметр включен, в IntelliSense отображаются предложения \"color\".','Когда параметр включен, в IntelliSense отображаются предложения \"file\".','Когда параметр включен, в IntelliSense отображаются предложения \"reference\".','Когда параметр включен, в IntelliSense отображаются предложения \"customcolor\".','Когда параметр включен, в IntelliSense отображаются предложения \"folder\".','Когда параметр включен, в IntelliSense отображаются предложения \"typeParameter\".','Когда параметр включен, в IntelliSense отображаются предложения \"snippet\".',\"Определяет видимость строки состояния в нижней части виджета предложений.\",'Определяет, будут ли предложения приниматься при вводе символов фиксации. Например, в JavaScript точка с запятой (\";\") может быть символом фиксации, при вводе которого предложение принимается.',\"Принимать предложение при нажатии клавиши ВВОД только в том случае, если оно изменяет текст.\",\"Определяет, будут ли предложения приниматься клавишей ВВОД в дополнение к клавише TAB. Это помогает избежать неоднозначности между вставкой новых строк и принятием предложений.\",\"Задает количество строк в редакторе, которые могут быть прочитаны средством чтения с экрана. Предупреждение: из-за технических ограничений этот число не может превышать значение по умолчанию.\",\"Содержимое редактора\",\"Использовать конфигурации языка для автоматического закрытия скобок.\",\"Автоматически закрывать скобки только в том случае, если курсор находится слева от пробела.\",\"Определяет, должен ли редактор автоматически добавлять закрывающую скобку при вводе пользователем открывающей скобки.\",\"Заменять закрывающие кавычки и скобки при вводе только в том случае, если кавычки или скобки были вставлены автоматически.\",\"Определяет, должны ли в редакторе заменяться закрывающие кавычки или скобки при вводе.\",\"Использовать конфигурации языка для автоматического закрытия кавычек.\",\"Автоматически закрывать кавычки только в том случае, если курсор находится слева от пробела.\",\"Определяет, должен ли редактор автоматически закрывать кавычки, если пользователь добавил открывающую кавычку.\",\"Редактор не будет вставлять отступы автоматически.\",\"Редактор будет сохранять отступ текущей строки.\",\"Редактор будет сохранять отступы текущей строки и учитывать скобки в соответствии с синтаксисом языка.\",\"Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки и вызывать специальные правила onEnterRules, определяемые языками.\",\"Редактор будет сохранять отступ текущей строки, учитывать определенные языком скобки, вызывать специальные правила onEnterRules, определяемые языками и учитывать правила отступа indentationRules, определяемые языками.\",\"Определяет, должен ли редактор автоматически изменять отступы, когда пользователи вводят, вставляют или перемещают текст или изменяют отступы строк.\",\"Использовать конфигурации языка для автоматического обрамления выделений.\",\"Обрамлять с помощью кавычек, а не скобок.\",\"Обрамлять с помощью скобок, а не кавычек.\",\"Определяет, должен ли редактор автоматически обрамлять выделения.\",\"Определяет, отображается ли CodeLens в редакторе.\",\"Определяет, должны ли в редакторе отображаться внутренние декораторы цвета и средство выбора цвета.\",\"Определяет, будет ли текст скопирован в буфер обмена с подсветкой синтаксиса.\",\"Управляет стилем анимации курсора.\",\"Управляет тем, следует ли включить плавную анимацию курсора.\",\"Управляет стилем курсора.\",'Определяет минимальное число видимых начальных и конечных линий, окружающих курсор. Этот параметр имеет название \"scrollOff\" или \"scrollOffset\" в некоторых других редакторах.','\"cursorSurroundingLines\" применяется только при запуске с помощью клавиатуры или API.','\"cursorSurroundingLines\" принудительно применяется во всех случаях.','Определяет, когда необходимо применять \"cursorSurroundingLines\".',\"Управляет шириной курсора, когда для параметра \\\"#editor.cursorStyle#\\\" установлено значение 'line'\",\"Определяет, следует ли редактору разрешить перемещение выделенных элементов с помощью перетаскивания.\",\"Коэффициент увеличения скорости прокрутки при нажатии клавиши ALT.\",\"Определяет, включено ли свертывание кода в редакторе.\",\"Управляет тем, как вычисляются диапазоны сворачивания. При указании параметра 'auto' используется стратегия сворачивания на основе языка, если она доступна. При указании параметра 'indentation' принудительно используется стратегия на основе отступов.\",\"Определяет, должен ли редактор выделять сложенные диапазоны.\",\"Определяет семейство шрифтов.\",\"Управляет насыщенностью шрифта.\",\"Определяет, будет ли редактор автоматически форматировать вставленное содержимое. Модуль форматирования должен быть доступен и иметь возможность форматировать диапазон в документе.\",\"Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.\",\"Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.\",\"Управляет скрытием курсора в обзорной линейке.\",\"Управляет тем, должна ли выделяться активная направляющая отступа в редакторе.\",\"Управляет интервалом между буквами в пикселях.\",\"Определяет, должен ли редактор определять ссылки и делать их доступными для щелчка.\",\"Выделять соответствующие скобки.\",\"Множитель, используемый для параметров deltaX и deltaY событий прокрутки колесика мыши.\",\"Изменение размера шрифта в редакторе при нажатой клавише CTRL и движении колесика мыши.\",\"Объединить несколько курсоров, когда они перекрываются.\",\"Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.\",\"Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.\",'Модификатор, который будет использоваться для добавления нескольких курсоров с помощью мыши. Жесты мыши \"Перейти к определению\" и \"Открыть ссылку\" будут изменены так, чтобы они не конфликтовали с несколькими курсорами. [Дополнительные сведения](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier). ',\"Каждый курсор вставляет одну строку текста.\",\"Каждый курсор вставляет полный текст.\",\"Управляет вставкой, когда число вставляемых строк соответствует числу курсоров.\",\"Определяет, должен ли редактор выделять экземпляры семантических символов.\",\"Определяет, должна ли отображаться граница на обзорной линейке.\",\"Фокусировка на дереве при открытии обзора\",\"Фокусировка на редакторе при открытии обзора\",\"Определяет, следует ли переключить фокус на встроенный редактор или дерево в виджете обзора.\",\"Управляет длительностью задержки (в мс) перед отображением кратких предложений.\",\"Определяет, должны ли в редакторе отображаться управляющие символы.\",\"Определяет, должны ли в редакторе отображаться направляющие отступа.\",\"Отображение номера последней строки, когда файл заканчивается новой строкой.\",\"Выделяет поле и текущую строку.\",\"Определяет, должен ли редактор выделять текущую строку.\",\"Render whitespace characters except for single spaces between words.\",\"Отображать пробелы только в выделенном тексте.\",\"Определяет, должны ли в редакторе отображаться пробелы.\",\"Управляет тем, необходимо ли отображать скругленные углы для выделения.\",\"Управляет количеством дополнительных символов, на которое содержимое редактора будет прокручиваться по горизонтали.\",\"Определяет, будет ли содержимое редактора прокручиваться за последнюю строку.\",\"Контролирует, следует ли поддерживать первичный буфер обмена Linux.\",\"Определяет, должен ли редактор выделять совпадения, аналогичные выбранному фрагменту.\",\"Определяет, будут ли автоматически скрываться элементы управления свертыванием на полях.\",\"Управляет скрытием неиспользуемого кода.\",\"Отображать предложения фрагментов поверх других предложений.\",\"Отображать предложения фрагментов под другими предложениями.\",\"Отображать предложения фрагментов рядом с другими предложениями.\",\"Не отображать предложения фрагментов.\",\"Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.\",\"Определяет, будет ли использоваться анимация при прокрутке содержимого редактора\",'Размер шрифта мини-приложения с предложениями. Если установить значение \"0\", будет использовано значение \"#editor.fontSize#\".','Высота строки мини-приложения с предложениями. Если установить значение \"0\", будет использовано значение \"#editor.lineHeight#\".',\"Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.\",\"Всегда выбирать первое предложение.\",'Выбор недавних предложений, если только дальнейший ввод не приводит к использованию одного из них, например \"console.| -> console.log\", так как \"log\" недавно использовался для завершения.','Выбор предложений с учетом предыдущих префиксов, использованных для завершения этих предложений, например \"co -> console\" и \"con -> const\".',\"Управляет предварительным выбором предложений при отображении списка предложений.\",\"При использовании дополнения по TAB будет добавляться наилучшее предложение при нажатии клавиши TAB.\",\"Отключить дополнение по TAB.\",'Вставка дополнений по TAB при совпадении их префиксов. Функция работает оптимально, если параметр \"quickSuggestions\" отключен.',\"Включает дополнения по TAB.\",\"Вставка и удаление пробелов после позиции табуляции\",\"Символы, которые будут использоваться как разделители слов при выполнении навигации или других операций, связанных со словами.\",\"Строки не будут переноситься никогда.\",\"Строки будут переноситься по ширине окна просмотра.\",'Строки будут переноситься по \"#editor.wordWrapColumn#\".','Строки будут перенесены по минимальному значению из двух: ширина окна просмотра и \"#editor.wordWrapColumn#\".',\"Управляет тем, как следует переносить строки.\",'Определяет столбец переноса редактора, если значение \"#editor.wordWrap#\" — \"wordWrapColumn\" или \"bounded\".',\"Без отступа. Перенос строк начинается со столбца 1.\",\"Перенесенные строки получат тот же отступ, что и родительская строка.\",\"Перенесенные строки получат отступ, увеличенный на единицу по сравнению с родительской строкой. \",\"Перенесенные строки получат отступ, увеличенный на два по сравнению с родительской строкой.\",\"Управляет отступом строк с переносом по словам.\",\"Предполагает, что все символы имеют одинаковую ширину. Это быстрый алгоритм, который работает правильно для моноширинных шрифтов и некоторых скриптов (например, латинских символов), где глифы имеют одинаковую ширину.\",\"Делегирует вычисление точек переноса браузеру. Это медленный алгоритм, который может привести к зависаниям при обработке больших файлов, но работает правильно во всех случаях.\",\"Управляет алгоритмом, вычисляющим точки переноса.\"],\n\"vs/editor/common/modes/modesRegistry\":[\"Простой текст\"],\n\"vs/editor/common/standaloneStrings\":[\"Ничего не выбрано\",\"Строка {0}, столбец {1} (выбрано: {2})\",\"Строка {0}, столбец {1}\",\"Выделений: {0} (выделено символов: {1})\",\"Выделений: {0}\",'Теперь для параметра \"accessibilitySupport\" устанавливается значение \"вкл\".',\"Открывается страница документации о специальных возможностях редактора.\",\"в панели только для чтения редактора несовпадений.\",\"на панели редактора несовпадений.\",\" в редакторе кода только для чтения\",\" в редакторе кода\",\"Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите COMMAND+E.\",\"Чтобы оптимизировать редактор для использования со средством чтения с экрана, нажмите CTRL+E.\",\"Редактор настроен для оптимальной работы со средством чтения с экрана.\",\"Редактор настроен без оптимизации для использования средства чтения с экрана, что не подходит в данной ситуации.\",\"При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Чтобы изменить это поведение, нажмите клавишу {0}.\",\"При нажатии клавиши TAB в текущем редакторе фокус ввода переместится на следующий элемент, способный его принять. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.\",\"При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Чтобы изменить это поведение, нажмите клавишу {0}.\",\"При нажатии клавиши TAB в текущем редакторе будет вставлен символ табуляции. Команду {0} сейчас невозможно выполнить с помощью настраиваемого сочетания клавиш.\",\"Нажмите COMMAND+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.\",\"Нажмите CTRL+H, чтобы открыть окно браузера с дополнительной информацией о специальных возможностях редактора.\",\"Вы можете закрыть эту подсказку и вернуться в редактор, нажав клавиши ESCAPE или SHIFT+ESCAPE.\",\"Показать справку по специальным возможностям\",\"Разработчик: проверить токены\",\"Перейти к строке {0} и символу {1}\",\"Перейти к строке {0}\",\"Введите номер строки от 1 до {0} для перехода\",\"Введите символ между 1 и {0} для перехода к\",\"Текущая строка: {0}. Перейти к строке {1}.\",\"Введите номер строки с последующим необязательным двоеточием и номер символа, к которому нужно перейти\",\"Перейти к строке...\",\"{0}, {1}, команды\",\"{0}, команды\",\"Введите имя действия, которое нужно выполнить\",\"Палитра команд\",\"{0}, символы\",\"Введите имя идентификатора, к которому вы хотите перейти\",\"Перейти к символу...\",\"символы ({0})\",\"модули ({0})\",\"классы ({0})\",\"интерфейсы ({0})\",\"методы ({0})\",\"функции ({0})\",\"свойства ({0})\",\"переменные ({0})\",\"переменные ({0})\",\"конструкторы ({0})\",\"вызовы ({0})\",\"Содержимое редактора\",\"Нажмите клавиши CTRL+F1 для доступа к параметрам специальных возможностей.\",\"Нажмите ALT+F1 для доступа к параметрам специальных возможностей.\",\"Переключить высококонтрастную тему\",\"Внесено изменений в файлах ({1}): {0}.\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"Цвет фона для выделения строки в позиции курсора.\",\"Цвет фона границ вокруг строки в позиции курсора.\",\"Цвет фона для выделенных диапазонов, например при использовании функций Quick Open или поиска. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона обводки выделения.\",'Цвет фона выделенного символа, например, в функциях \"Перейти к определению\" или \"Перейти к следующему/предыдущему символу\". Цвет должен быть прозрачным, чтобы не скрывать оформление текста под ним.',\"Цвет фона для границы вокруг выделенных символов.\",\"Цвет курсора редактора.\",\"Цвет фона курсора редактора. Позволяет настраивать цвет символа, перекрываемого прямоугольным курсором.\",\"Цвет пробелов в редакторе.\",\"Цвет направляющих для отступов редактора.\",\"Цвет активных направляющих для отступов редактора.\",\"Цвет номеров строк редактора.\",\"Цвет номера активной строки редактора\",\"Параметр 'Id' является устаревшим. Используйте вместо него параметр 'editorLineNumber.activeForeground'.\",\"Цвет номера активной строки редактора\",\"Цвет линейки редактора.\",\"Цвет переднего плана элемента CodeLens в редакторе\",\"Цвет фона парных скобок\",\"Цвет прямоугольников парных скобок\",\"Цвет границы для линейки в окне просмотра.\",\"Цвет фона поля в редакторе. В поле размещаются отступы глифов и номера строк.\",\"Цвет границы для ненужного (неиспользуемого) исходного кода в редакторе.\",'Непрозрачность ненужного (неиспользуемого) исходного кода в редакторе. Например, \"#000000c0\" отображает код с непрозрачностью 75 %. В высококонтрастных темах для выделения ненужного кода вместо затенения используйте цвет темы \"editorUnnecessaryCode.border\".',\"Цвет метки линейки в окне просмотра для ошибок.\",\"Цвет метки линейки в окне просмотра для предупреждений.\",\"Цвет метки линейки в окне просмотра для информационных сообщений.\"],\n\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"Цвет метки линейки в окне просмотра для пар скобок.\",\"Перейти к скобке\",\"Выбрать скобку\",\"Перейти к &&скобке\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"Переместить курсор влево\",\"Переместить курсор вправо\"],\"vs/editor/contrib/caretOperations/transpose\":[\"Транспортировать буквы\"],\"vs/editor/contrib/clipboard/clipboard\":[\"Вырезать\",\"&&Вырезать\",\"Копирование\",\"&&Копировать\",\"Вставить\",\"&&Вставить\",\"Копировать с выделением синтаксиса\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"Тип запускаемого действия кода.\",\"Определяет, когда применяются возвращенные действия.\",\"Всегда применять первое возвращенное действие кода.\",\"Применить первое действие возвращенного кода, если оно является единственным.\",\"Не применять действия возвращенного кода.\",\"Определяет, следует ли возвращать только предпочтительные действия кода.\",\"При применении действия кода произошла неизвестная ошибка\",\"Быстрое исправление...\",\"Доступные действия кода отсутствуют\",'Нет доступных предпочтительных действий кода для \"{0}\".','Действия кода для \"{0}\" недоступны',\"Нет доступных предпочтительных действий кода\",\"Доступные действия кода отсутствуют\",\"Рефакторинг...\",'Нет доступных предпочтительных рефакторингов для \"{0}\"','Нет доступного рефакторинга для \"{0}\"',\"Нет доступных предпочтительных рефакторингов\",\"Доступные операции рефакторинга отсутствуют\",\"Действие с исходным кодом...\",\"Нет доступных предпочтительных действий источника для '{0}'\",'Нет доступных исходных действий для \"{0}\"',\"Предпочтительные действия источника недоступны\",\"Доступные исходные действия отсутствуют\",\"Организация импортов\",\"Действие для упорядочения импортов отсутствует\",\"Исправить все\",\"Нет доступного действия по общему исправлению\",\"Автоисправление...\",\"Нет доступных автоисправлений\"],\n\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"Отображение исправлений. Доступно предпочитаемое исправление ({0})\",\"Показать исправления ({0})\",\"Показать исправления\"],\"vs/editor/contrib/comment/comment\":[\"Закомментировать или раскомментировать строку\",\"Переключить комментарий &&строки\",\"Закомментировать строку\",\"Раскомментировать строку\",\"Закомментировать или раскомментировать блок\",\"Переключить комментарий &&блока\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"Показать контекстное меню редактора\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"Отмена действия курсора\",\"Повтор действия курсора\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"Цвет переднего плана для символов массива. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для логических символов. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов класса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов цвета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов константы. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов конструктора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов члена перечислителя. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов события. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов поля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов файла. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов папки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов функции. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов интерфейса. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ключа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ключевого слова. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов метода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов модуля. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов пространства имен. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов NULL. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов числа. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов объекта. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов оператора. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов пакета. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов свойства. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов ссылки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов фрагмента кода. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов строки. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов структуры. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов текста. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов типа параметров. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов единиц. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\",\"Цвет переднего плана для символов переменной. Эти символы отображаются в структуре, элементе навигации и мини-приложении предложений.\"],\n\"vs/editor/contrib/find/findController\":[\"Найти\",\"&&Найти\",\"Найти в выбранном\",\"Найти далее\",\"Найти далее\",\"Найти ранее\",\"Найти ранее\",\"Найти следующее выделение\",\"Найти предыдущее выделение\",\"Заменить\",\"&&Заменить\"],\"vs/editor/contrib/find/findWidget\":[\"Найти\",\"Найти\",\"Предыдущее соответствие\",\"Следующее соответствие\",\"Найти в выделении\",\"Закрыть\",\"Заменить\",\"Заменить\",\"Заменить\",\"Заменить все\",'Режим \"Переключение замены\"',\"Отображаются только первые {0} результатов, но все операции поиска выполняются со всем текстом.\",\"{0} из {1}\",\"Результаты отсутствуют\",\"{0} обнаружено\",\"{0} обнаружено для {1}\",\"{0} обнаружено для {1} в {2}\",\"{0} обнаружено для {1}\",\"Теперь при нажатии клавиш CTRL+ВВОД вставляется символ перехода на новую строку вместо замены всего текста. Вы можете изменить сочетание клавиш editor.action.replaceAll, чтобы переопределить это поведение.\"],\n\"vs/editor/contrib/folding/folding\":[\"Развернуть\",\"Развернуть рекурсивно\",\"Свернуть\",\"Переключить свертывание\",\"Свернуть рекурсивно\",\"Свернуть все блоки комментариев\",\"Свернуть все регионы\",\"Развернуть все регионы\",\"Свернуть все\",\"Развернуть все\",\"Уровень папки {0}\",\"Цвет выделения редактора.\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"Увеличить шрифт редактора\",\"Уменьшить шрифт редактора\",\"Сбросить масштаб шрифта редактора\"],\"vs/editor/contrib/format/format\":[\"Внесена одна правка форматирования в строке {0}.\",\"Внесены правки форматирования ({0}) в строке {1}.\",\"Внесена одна правка форматирования между строками {0} и {1}.\",\"Внесены правки форматирования ({0}) между строками {1} и {2}.\"],\"vs/editor/contrib/format/formatActions\":[\"Форматировать документ\",\"Форматировать выделенный фрагмент\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"Перейти к Следующей Проблеме (Ошибке, Предупреждению, Информации)\",\"Перейти к Предыдущей Проблеме (Ошибке, Предупреждению, Информации)\",\"Перейти к следующей проблеме в файлах (ошибки, предупреждения, информационные сообщения)\",\"Перейти к предыдущей проблеме в файлах (ошибки, предупреждения, информационные сообщения)\",\"Следующая &&проблема\",\"Предыдущая &&проблема\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"Проблемы: {0} из {1}\",\"Проблемы: {0} из {1}\",\"Цвет ошибки в мини-приложении навигации по меткам редактора.\",\"Цвет предупреждения в мини-приложении навигации по меткам редактора.\",\"Цвет информационного сообщения в мини-приложении навигации по меткам редактора.\",\"Фон мини-приложения навигации по меткам редактора.\"],\n\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"Обзор\",\"Определения\",'Определение для \"{0}\" не найдено.',\"Определения не найдены.\",\"Перейти к определению\",\"Перейти к &&определению\",\"Открыть определение сбоку\",\"Показать определение\",\"Объявления\",'Объявление для \"{0}\" не найдено.',\"Объявление не найдено\",\"Перейти к объявлению\",\"Перейти к &&объявлению\",'Объявление для \"{0}\" не найдено.',\"Объявление не найдено\",\"Просмотреть объявление\",\"Определения типов\",'Не найдено определение типа для \"{0}\".',\"Не найдено определение типа.\",\"Перейти к определению типа\",\"Перейти к &&определению типа\",\"Показать определение типа\",\"Реализации\",'Не найдена реализация для \"{0}\".',\"Не найдена реализация.\",\"Перейти к реализациям\",\"Перейти к &&реализациям\",\"Просмотреть реализации\",'Ссылки для \"{0}\" не найдены',\"Ссылки не найдены\",\"Перейти к ссылкам\",\"Перейти к &&ссылкам\",\"Ссылки\",\"Показать ссылки\",\"Ссылки\",\"Перейти к любому символу\",\"Расположения\",'Результаты для \"{0}\" отсутствуют',\"Ссылки\"],\n\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"Щелкните, чтобы отобразить определения ({0}).\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"Загрузка...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"Не удалось разрешить файл.\",\"Ссылок: {0}\",\"{0} ссылка\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"предварительный просмотр недоступен\",\"Ссылки\",\"Результаты отсутствуют\",\"Ссылки\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"ссылка в {0} в строке {1} и символе {2}\",\"1 символ в {0}, полный путь: {1}\",\"{0} символов в {1}, полный путь: {2} \",\"Результаты не найдены\",\"Обнаружен 1 символ в {0}\",\"Обнаружено {0} символов в {1}\",\"Обнаружено {0} символов в {1} файлах\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"Символ {0} из {1}, {2} для следующего\",\"Символ {0} из {1}\"],\"vs/editor/contrib/hover/hover\":[\"Показать при наведении\",\"Отображать предварительный просмотр определения при наведении курсора мыши\"],\n\"vs/editor/contrib/hover/modesContentHover\":[\"Загрузка...\",\"Проблема при обзоре\",\"Проверка наличия исправлений...\",\"Исправления недоступны\",\"Быстрое исправление...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"Заменить предыдущим значением\",\"Заменить следующим значением\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"Копировать строку сверху\",\"&&Копировать на строку выше\",\"Копировать строку снизу\",\"Копировать на строку &&ниже\",\"Дублировать выбранное\",\"&&Дублировать выбранное\",\"Переместить строку вверх\",\"Переместить на с&&троку выше\",\"Переместить строку вниз\",\"&&Переместить на строку ниже\",\"Сортировка строк по возрастанию\",\"Сортировка строк по убыванию\",\"Удалить конечные символы-разделители\",\"Удалить строку\",\"Увеличить отступ\",\"Уменьшить отступ\",\"Вставить строку выше\",\"Вставить строку ниже\",\"Удалить все слева\",\"Удалить все справа\",\"_Объединить строки\",\"Транспонировать символы вокруг курсора\",\"Преобразовать в верхний регистр\",\"Преобразовать в нижний регистр\",\"Преобразовать в заглавные буквы\"],\n\"vs/editor/contrib/links/links\":[\"Выполнить команду\",\"перейти по ссылке\",\"Кнопка OPTION и щелчок левой кнопкой мыши\",\"Кнопка CTRL и щелчок левой кнопкой мыши\",\"Кнопка OPTION и щелчок левой кнопкой мыши\",\"Кнопка ALT и щелчок левой кнопкой мыши\",\"Не удалось открыть ссылку, так как она имеет неправильный формат: {0}\",\"Не удалось открыть ссылку, у нее отсутствует целевой объект.\",\"Открыть ссылку\"],\"vs/editor/contrib/message/messageController\":[\"Не удается выполнить изменение в редакторе только для чтения\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"Добавить курсор выше\",\"Добавить курсор &&выше\",\"Добавить курсор ниже\",\"Добавить курсор &&ниже\",\"Добавить курсоры к окончаниям строк\",\"Добавить курсоры в &&окончания строк\",\"Добавить курсоры ниже\",\"Добавить курсоры выше\",\"Добавить выделение в следующее найденное совпадение\",\"Добавить &&следующее вхождение\",\"Добавить выделенный фрагмент в предыдущее найденное совпадение\",\"Добавить &&предыдущее вхождение\",\"Переместить последнее выделение в следующее найденное совпадение\",\"Переместить последний выделенный фрагмент в предыдущее найденное совпадение\",\"Выбрать все вхождения найденных совпадений\",\"Выбрать все &&вхождения\",\"Изменить все вхождения\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"Переключить подсказки к параметрам\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}, подсказка\"],\n\"vs/editor/contrib/peekView/peekView\":[\"Закрыть\",\"Цвет фона области заголовка быстрого редактора.\",\"Цвет заголовка быстрого редактора.\",\"Цвет сведений о заголовке быстрого редактора.\",\"Цвет границ быстрого редактора и массива.\",\"Цвет фона в списке результатов представления быстрого редактора.\",\"Цвет переднего плана узлов строки в списке результатов быстрого редактора.\",\"Цвет переднего плана узлов файла в списке результатов быстрого редактора.\",\"Цвет фона выбранной записи в списке результатов быстрого редактора.\",\"Цвет переднего плана выбранной записи в списке результатов быстрого редактора.\",\"Цвет фона быстрого редактора.\",\"Цвет фона поля в окне быстрого редактора.\",\"Цвет выделения совпадений в списке результатов быстрого редактора.\",\"Цвет выделения совпадений в быстром редакторе.\",\"Граница выделения совпадений в быстром редакторе.\"],\n\"vs/editor/contrib/rename/rename\":[\"Результаты отсутствуют.\",\"Произошла неизвестная ошибка при определении расположения после переименования\",'Идет переименование \"{0}\"',\"«{0}» успешно переименован в «{1}». Сводка: {2}\",\"Операции переименования не удалось применить правки\",\"Операции переименования не удалось вычислить правки\",\"Переименовать символ\",\"Включить/отключить возможность предварительного просмотра изменений перед переименованием\"],\"vs/editor/contrib/rename/renameInputField\":[\"Введите новое имя для входных данных и нажмите клавишу ВВОД для подтверждения.\",\"{0} для переименования, {1} для предварительного просмотра\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"Развернуть выбранный фрагмент\",\"&&Развернуть выделение\",\"Уменьшить выделенный фрагмент\",\"&&Сжать выделение\"],\n\"vs/editor/contrib/snippet/snippetVariables\":[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\",\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\",\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\",\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],\"vs/editor/contrib/suggest/suggestController\":['Принятие \"{0}\" привело к внесению дополнительных правок ({1})',\"Переключить предложение\"],\n\"vs/editor/contrib/suggest/suggestWidget\":[\"Цвет фона виджета подсказок.\",\"Цвет границ виджета подсказок.\",\"Цвет переднего плана мини-приложения предложений.\",\"Фоновый цвет выбранной записи в мини-приложении предложений.\",\"Цвет выделения соответствия в мини-приложении предложений.\",\"Подробнее...{0}\",\"Кратко...{0}\",\"Загрузка...\",\"Загрузка...\",\"Предложения отсутствуют.\",\"{0} для просмотра сокращенных сведений...\",\"{0} для получения дополнительных сведений...\",\"Элемент {0}, документы: {1}\",\"{0} для вставки, {1} для замены\",\"{0} для замены, {1} для вставки\",\"{0} для принятия\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"Переключение клавиши TAB перемещает фокус.\",\"При нажатии клавиши TAB фокус перейдет на следующий элемент, который может получить фокус\",\"Теперь при нажатии клавиши TAB будет вставлен символ табуляции\"],\"vs/editor/contrib/tokenization/tokenization\":[\"Разработчик: принудительная повторная установка токенов\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"Цвет фона символа при доступе на чтение, например, при чтении переменной. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона для символа во время доступа на запись, например при записи в переменную. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы символа при доступе на чтение, например, при считывании переменной.\",\"Цвет границы символа при доступе на запись, например, при записи переменной. \",\"Цвет маркера обзорной линейки для выделения символов. Этот цвет не должен быть непрозрачным, чтобы не скрывать расположенные ниже элементы оформления.\",\"Цвет маркера обзорной линейки для выделения символов доступа на запись. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Перейти к следующему выделению символов\",\"Перейти к предыдущему выделению символов\",\"Включить или отключить выделение символов\"],\n\"vs/platform/configuration/common/configurationRegistry\":[\"Переопределения конфигурации по умолчанию\",\"Настройка параметров редактора, переопределяемых для языка.\",\"Этот параметр не поддерживает настройку для отдельных языков.\",\"Невозможно зарегистрировать \\\"{0}\\\". Оно соответствует шаблону свойства '\\\\\\\\[.*\\\\\\\\]$' для описания параметров редактора, определяемых языком. Используйте участие configurationDefaults.\",'Невозможно зарегистрировать \"{0}\". Это свойство уже зарегистрировано.'],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"Была нажата клавиша ({0}). Ожидание нажатия второй клавиши сочетания...\",\"Сочетание клавиш ({0} и {1}) не является командой.\"],\n\"vs/platform/list/browser/listService\":[\"Рабочее место\",\"Соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS.\",\"Соответствует клавише ALT в Windows и Linux и клавише OPTION в macOS.\",'Модификатор, который будет использоваться для добавления элементов в деревьях и списках в элемент множественного выбора с помощью мыши (например, в проводнике, в открытых редакторах и в представлении scm). Жесты мыши  \"Открыть сбоку\" (если они поддерживаются) будут изменены таким образом, чтобы они не конфликтовали с модификатором элемента множественного выбора.',\"Управляет тем, как открывать элементы в деревьях и списках с помощью мыши (если поддерживается). Для родительских элементов с дочерними элементами в деревьях этот параметр управляет тем, будет ли родительский элемент разворачиваться по одинарному или по двойному щелчку мыши. Обратите внимание, что этот параметр может игнорироваться в некоторых деревьях и списках, если он не применяется к ним. \",\"Определяет, поддерживают ли списки и деревья горизонтальную прокрутку в Workbench.\",\"Определяет, поддерживают ли древа горизонтальную прокрутку в рабочей области.\",'Этот параметр объявлен нерекомендуемым, используйте вместо него \"{0}\".',\"Определяет отступ для дерева в пикселях.\",\"Определяет, нужно ли в дереве отображать направляющие отступа.\",\"Про простой навигации с клавиатуры выбираются элементы, соответствующие вводимым с клавиатуры данным. Сопоставление осуществляется только по префиксам.\",\"Функция подсветки навигации с клавиатуры выделяет элементы, соответствующие вводимым с клавиатуры данным. При дальнейшей навигации вверх и вниз выполняется обход только выделенных элементов.\",\"Фильтр навигации с клавиатуры позволяет отфильтровать и скрыть все элементы, не соответствующие вводимым с клавиатуры данным.\",\"Управляет стилем навигации с клавиатуры для списков и деревьев в Workbench. Доступен простой режим, режим выделения и режим фильтрации.\",'Указывает, активируется ли навигация с помощью клавиатуры в списках и деревьях автоматически простым вводом. Если задано значение \"false\", навигация с клавиатуры активируется только при выполнении команды \"list.toggleKeyboardNavigation\", для которой можно назначить сочетание клавиш.'],\n\"vs/platform/markers/common/markers\":[\"Ошибка\",\"Предупреждение\",\"Информация\"],\n\"vs/platform/theme/common/colorRegistry\":[\"Общий цвет переднего плана. Этот цвет используется, только если его не переопределит компонент.\",\"Общий цвет переднего плана для сообщений об ошибках. Этот цвет используется только если его не переопределяет компонент.\",\"Общий цвет границ для элементов с фокусом. Этот цвет используется только в том случае, если не переопределен в компоненте.\",\"Дополнительная граница вокруг элементов, которая отделяет их от других элементов для улучшения контраста.\",\"Дополнительная граница вокруг активных элементов, которая отделяет их от других элементов для улучшения контраста.\",\"Цвет переднего плана для ссылок в тексте.\",\"Цвет фона для программного кода в тексте.\",'Цвет тени мини-приложений редактора, таких как \"Найти/заменить\".',\"Фон поля ввода.\",\"Передний план поля ввода.\",\"Граница поля ввода.\",\"Цвет границ активированных параметров в полях ввода.\",\"Цвет фона активированных параметров в полях ввода.\",'Фоновый цвет проверки ввода для уровня серьезности \"Сведения\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Сведения\".','Цвет границы проверки ввода для уровня серьезности \"Сведения\".','Фоновый цвет проверки ввода для уровня серьезности \"Предупреждение\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Предупреждение\".','Цвет границы проверки ввода для уровня серьезности \"Предупреждение\".','Фоновый цвет проверки ввода для уровня серьезности \"Ошибка\".','Цвет переднего плана области проверки ввода для уровня серьезности \"Ошибка\".','Цвет границы проверки ввода для уровня серьезности \"Ошибка\".',\"Фон раскрывающегося списка.\",\"Передний план раскрывающегося списка.\",\"Цвет средства быстрого выбора для группировки меток.\",\"Цвет средства быстрого выбора для группировки границ.\",\"Цвет фона бэджа. Бэджи - небольшие информационные элементы,  отображающие количество, например, результатов поиска.\",\"Цвет текста бэджа. Бэджи - небольшие информационные элементы, отображающие количество, например, результатов поиска.\",\"Цвет тени полосы прокрутки, которая свидетельствует о том, что содержимое прокручивается.\",\"Цвет фона для ползунка полосы прокрутки.\",\"Цвет фона ползунка полосы прокрутки при наведении курсора.\",\"Цвет фона ползунка полосы прокрутки при щелчке по нему.\",\"Цвет фона индикатора выполнения, который может отображаться для длительных операций.\",\"Цвет волнистой линии для выделения ошибок в редакторе.\",\"Цвет границы для окон ошибок в редакторе.\",\"Цвет волнистой линии для выделения предупреждений в редакторе.\",\"Цвет границы для окон предупреждений в редакторе.\",\"Цвет волнистой линии для выделения информационных сообщений в редакторе.\",\"Цвет границы для окон сведений в редакторе.\",\"Цвет волнистой линии для выделения подсказок в редакторе.\",\"Цвет границы для окон указаний в редакторе.\",\"Цвет фона редактора.\",\"Цвет переднего плана редактора по умолчанию.\",\"Цвет фона виджетов редактора, таких как найти/заменить.\",'Цвет переднего плана мини-приложений редактора, таких как \"Поиск/замена\".',\"Цвет границы мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница и если этот цвет не переопределен мини-приложением.\",\"Цвет границы панели изменения размера мини-приложений редактора. Этот цвет используется только в том случае, если у мини-приложения есть граница для изменения размера и если этот цвет не переопределен мини-приложением.\",\"Цвет выделения редактора.\",\"Цвет выделенного текста в режиме высокого контраста.\",\"Цвет выделения в неактивном редакторе. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет для областей, содержимое которых совпадает с выбранным фрагментом. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы регионов с тем же содержимым, что и в выделении.\",\"Цвет текущего поиска совпадений.\",\"Цвет других совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет границы текущего результата поиска.\",\"Цвет границы других результатов поиска.\",\"Цвет границы для диапазона, ограничивающего поиск. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Выделение под словом, для которого отображается меню при наведении курсора. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона при наведении указателя на редактор.\",\"Цвет переднего плана для наведения указателя на редактор.\",\"Цвет границ при наведении указателя на редактор.\",\"Цвет фона строки состояния при наведении в редакторе.\",\"Цвет активных ссылок.\",\"Цвет, используемый для значка действий в меню лампочки.\",\"Цвет, используемый для значка действий автоматического исправления в меню лампочки.\",\"Цвет фона для вставленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет фона для удаленного текста. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет контура для добавленных строк.\",\"Цвет контура для удаленных строк.\",\"Цвет границы между двумя текстовыми редакторами.\",\"Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет переднего плана находящегося в фокусе элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет переднего плана выбранного элемента List/Tree, когда элемент List/Tree активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Цвет текста выбранного элемента List/Tree, когда элемент List/Tree неактивен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет находящегося в фокусе элемента List/Tree, когда элемент List/Tree не активен. На активном элементе List/Tree есть фокус клавиатуры, на неактивном — нет.\",\"Фоновый цвет элементов List/Tree при наведении курсора мыши.\",\"Цвет переднего плана элементов List/Tree при наведении курсора мыши.\",\"Фоновый цвет элементов List/Tree при перемещении с помощью мыши.\",\"Цвет переднего плана для выделения соответствия при поиске по элементу List/Tree.\",\"Цвет фона для мини-приложения фильтра типов в списках и деревьях.\",\"Цвет контура для мини-приложения фильтра типов в списках и деревьях.\",\"Цвет контура для мини-приложения фильтра типов в списках и деревьях при отсутствии совпадений.\",\"Цвет штриха дерева для направляющих отступа.\",\"Цвет границ меню.\",\"Цвет переднего плана пунктов меню.\",\"Цвет фона пунктов меню.\",\"Цвет переднего плана выбранного пункта меню в меню.\",\"Цвет фона для выбранного пункта в меню.\",\"Цвет границы для выбранного пункта в меню.\",\"Цвет разделителя меню в меню.\",\"Цвет фона выделения в позиции табуляции фрагмента.\",\"Цвет границы выделения в позиции табуляции фрагмента.\",\"Цвет фона выделения в последней позиции табуляции фрагмента.\",\"Цвет границы выделения в последней позиции табуляции фрагмента. \",\"Цвет маркера обзорной линейки для совпадений при поиске. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Маркер обзорной линейки для выделения выбранного фрагмента. Цвет не должен быть непрозрачным, чтобы не скрыть расположенные ниже элементы оформления.\",\"Цвет маркера мини-карты для поиска совпадений.\",\"Цвет маркера мини-карты для выбора редактора.\",\"Цвет маркера миникарты для ошибок.\",\"Цвет маркера миникарты для предупреждений.\",\"Цвет, используемый для значка ошибки, указывающего на наличие проблем.\",\"Цвет, используемый для предупреждающего значка, указывающего на наличие проблем.\",\"Цвет, используемый для информационного значка, указывающего на наличие проблем.\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.ru.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.zh-cn.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.zh-cn\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再次发生)\",\"{0} (发生了 {1} 次)\"],\"vs/base/browser/ui/findinput/findInput\":[\"输入\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"区分大小写\",\"全字匹配\",\"使用正则表达式\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"输入\",\"保留大小写\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"错误: {0}\",\"警告: {0}\",\"信息: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"未绑定\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}. 使用导航键进行导航。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"清除\",\"禁用输入时筛选\",\"启用输入时筛选\",\"未找到元素\",\"已匹配 {0} 个元素(共 {1} 个)\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"Super\",\"Control\",\"Shift\",\"Alt\",\"Command\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"Super\"],\"vs/base/common/severity\":[\"错误\",\"警告\",\"信息\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}，选取器\",\"选取器\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"快速选取器。键入以缩小结果范围。\",\"快速选取器\",\"{0} 个结果\"],\"vs/editor/browser/controller/coreCommands\":[\"全选(&&S)\",\"撤消(&&U)\",\"恢复(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"现在无法访问编辑器。按 Alt+F1  显示选项。\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"光标数量被限制为 {0}。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"文件过大，无法比较。\"],\"vs/editor/browser/widget/diffReview\":[\"关闭\",\"无内容\",\"1 行\",\"{0} 行\",\"差异 {0}，总共 {1}: 原始，{2}，{3}；改后，{4}，{5}\",\"空白\",\"未修改 {0}，已修改 {1}: {2}\",\"+ 已修改 {0}: {1}\",\"- 未修改 {0}: {1} \",\"转至下一个差异\",\"转至上一个差异\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"复制已删除的行\",\"复制已删除的行\",\"复制已删除的行({0})\",\"还原此更改\",\"复制已删除的行({0})\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"编辑器\",\"一个制表符等于的空格数。在 `#editor.detectIndentation#` 启用时，根据文件内容，该设置可能会被覆盖。\",\"按 `Tab` 键时插入空格。该设置在 `#editor.detectIndentation#` 启用时根据文件内容可能会被覆盖。\",\"控制是否在打开文件时，基于文件内容自动检测 `#editor.tabSize#` 和 `#editor.insertSpaces#`。\",\"删除自动插入的尾随空白符号。\",\"对大型文件进行特殊处理，禁用某些内存密集型功能。\",\"控制是否根据文档中的文字计算自动完成列表。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"在速览编辑器中，即使双击其中的内容或者按 `Esc` 键，也保持其打开状态。\",\"由于性能原因，超过这个长度的行将不会被标记\",\"超时（以毫秒为单位），之后将取消差异计算。使用0表示没有超时。\",\"控制差异编辑器的显示方式是并排还是内联。\",\"控制在差异编辑器中是否把前导空格或尾随空格的改动显示为差异。\",\"控制差异编辑器是否为添加/删除的更改显示 +/- 指示符号。\"],\n\"vs/editor/common/config/editorOptions\":[\"编辑器将使用平台 API 以检测是否附加了屏幕阅读器。\",\"编辑器将对屏幕阅读器的使用进行永久优化。\",\"编辑器将不再对屏幕阅读器的使用进行优化。\",\"控制编辑器是否应运行在对屏幕阅读器进行优化的模式。\",\"控制在注释时是否插入空格字符。\",\"控制在没有选择内容时进行复制是否复制当前行。\",\"控制是否将编辑器选中内容作为搜索词填入到查找小组件中。\",\"切勿自动打开“选择中查找”(默认)\",\"始终自动打开“在选择中查找”\",\"选择多行内容时，自动打开“在选择中查找”。\",\"在执行查找操作时，在编辑器中的选中文本中还是整个文件中进行查找。\",\"控制“查找”小组件是否读取或修改 macOS 的共享查找剪贴板。\",'控制 \"查找小部件\" 是否应在编辑器顶部添加额外的行。如果为 true, 则可以在 \"查找小工具\" 可见时滚动到第一行之外。',\"启用或禁用字体连字。\",\"显式字体功能设置。\",\"配置字体连字。\",\"以像素为单位控制字体大小。\",\"显示结果的预览视图 (默认值)\",\"转到主结果并显示预览视图\",\"转到主结果，并对其他人启用防偷窥导航\",'此设置已弃用，请改用单独的设置，如\"editor.editor.gotoLocation.multipleDefinitions\"或\"editor.editor.gotoLocation.multipleImplementations\"。','控制存在多个目标位置时\"转到定义\"命令的行为。','控制存在多个目标位置时\"转到类型定义\"命令的行为。','控制存在多个目标位置时\"转到声明\"命令的行为。','控制存在多个目标位置时\"转到实现\"命令的行为。','控制存在多个目标位置时\"转到引用\"命令的行为。','当\"转到定义\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到类型定义\"的结果是当前位置时正在执行的备用命令 ID。','当\"转到声明\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到实现\"的结果为当前位置时将要执行的替代命令的 ID。','当\"转到引用\"的结果是当前位置时正在执行的替代命令 ID。',\"控制是否显示悬停提示。\",\"控制显示悬停提示前的等待时间 (毫秒)。\",\"控制当鼠标移动到悬停提示上时，其是否保持可见。\",\"在编辑器中启用代码操作小灯泡提示。\",\"控制行高。为 0 时则通过字体大小自动计算。\",\"控制是否显示缩略图。\",\"控制在哪一侧显示缩略图。\",\"控制何时显示迷你地图滑块。\",\"在缩略图中绘制内容的比例。\",\"渲染每行的实际字符，而不是色块。\",\"限制缩略图的宽度，控制其最多显示的列数。\",\"在输入时显示含有参数文档和类型信息的小面板。\",\"控制参数提示菜单在到达列表末尾时进行循环还是关闭。\",\"在字符串内启用快速建议。\",\"在注释内启用快速建议。\",\"在字符串和注释外启用快速建议。\",\"控制是否在键入时自动显示建议。\",\"不显示行号。\",\"将行号显示为绝对行数。\",\"将行号显示为与光标相隔的行数。\",\"每 10 行显示一次行号。\",\"控制行号的显示。\",\"在一定数量的等宽字符后显示垂直标尺。输入多个值，显示多个标尺。若数组为空，则不绘制标尺。\",\"插入建议而不覆盖光标右侧的文本。\",\"插入建议并覆盖光标右侧的文本。\",\"控制接受补全时是否覆盖单词。请注意，这取决于扩展选择使用此功能。\",'控制在接受补全时是否应高亮显示意外的文本修改，例如\"插入模式\"是\"替换\"，但补全仅支持\"插入\"。',\"控制对建议的筛选和排序是否考虑小的拼写错误。\",\"控制排序时是否提高靠近光标的词语的优先级。\",\"控制是否在多个工作区和窗口间共享记忆的建议选项(需要 `#editor.suggestSelection#`)。\",\"控制在活动代码片段内是否禁用快速建议。\",\"控制是否在建议中显示或隐藏图标。\",\"控制在显示滚动条之前 IntelliSense 将显示的建议数 (最多 15个)。\",'此设置已弃用，请改用单独的设置，如\"editor.suggest.showKeywords\"或\"editor.suggest.showSnippets\"。',\"启用后，IntelliSense 将显示“方法”建议。\",\"启用后，IntelliSense 将显示“函数”建议。\",\"启用后，IntelliSense 将显示“构造函数”建议。\",\"启用后，IntelliSense 将显示“字段”建议。\",\"启用后，IntelliSense 将显示“变量”建议。\",\"启用后，IntelliSense 将显示“类”建议。\",\"启用后，IntelliSense 将显示“结构”建议。\",\"启用后，IntelliSense 将显示“接口”建议。\",\"启用后，IntelliSense 将显示“模块”建议。\",\"启用后，IntelliSense 将显示“属性”建议。\",\"启用后，IntelliSense 将显示“事件”建议。\",\"启用后，IntelliSense 将显示“操作符”建议。\",\"启用后，IntelliSense 将显示“单位”建议。\",\"启用后，IntelliSense 将显示“值”建议。\",\"启用后，IntelliSense 将显示“常量”建议。\",\"启用后，IntelliSense 将显示“枚举”建议。\",'启用后，IntelliSense 将显示 \"enumMember\" 建议。',\"启用后，IntelliSense 将显示“关键字”建议。\",\"启用后，IntelliSense 将显示“文本”建议。\",\"启用后，IntelliSense 将显示“颜色”建议。\",\"启用后，IntelliSense 将显示“文件”建议。\",\"启用后，IntelliSense 将显示“参考”建议。\",\"启用后，IntelliSense 将显示“自定义颜色”建议。\",\"启用后，IntelliSense 将显示“文件夹”建议。\",'启用后，IntelliSense 将显示 \"typeParameter\" 建议。',\"启用后，IntelliSense 将显示“片段”建议。\",\"控制建议小部件底部的状态栏的可见性。\",\"控制是否应在遇到提交字符时接受建议。例如，在 JavaScript 中，半角分号 (`;`) 可以为提交字符，能够在接受建议的同时键入该字符。\",\"仅当建议包含文本改动时才可使用 `Enter` 键进行接受。\",\"控制除了 `Tab` 键以外， `Enter` 键是否同样可以接受建议。这能减少“插入新行”和“接受建议”命令之间的歧义。\",\"控制编辑器中可由屏幕阅读器读取的行数。警告：对于大于默认值的数字，这会影响性能。\",\"编辑器内容\",\"使用语言配置确定何时自动闭合括号。\",\"仅当光标位于空白字符左侧时，才自动闭合括号。\",\"控制编辑器是否在左括号后自动插入右括号。\",\"仅在自动插入时才改写右引号或右括号。\",\"控制编辑器是否应改写右引号或右括号。\",\"使用语言配置确定何时自动闭合引号。\",\"仅当光标位于空白字符左侧时，才自动闭合引号。\",\"控制编辑器是否在左引号后自动插入右引号。\",\"编辑器不会自动插入缩进。\",\"编辑器将保留当前行的缩进。\",\"编辑器将保留当前行的缩进并遵循语言定义的括号。\",\"编辑器将保留当前行的缩进、使用语言定义的括号并调用语言定义的特定 onEnterRules。\",\"编辑器将保留当前行的缩进，使用语言定义的括号，调用由语言定义的特殊输入规则，并遵循由语言定义的缩进规则。\",\"控制编辑器是否应在用户键入、粘贴、移动或缩进行时自动调整缩进。\",\"使用语言配置确定何时自动包住所选内容。\",\"使用引号而非括号来包住所选内容。\",\"使用括号而非引号来包住所选内容。\",\"控制编辑器是否应自动包住所选内容。\",\"控制是否在编辑器中显示 CodeLens。\",\"控制编辑器是否显示内联颜色修饰器和颜色选取器。\",\"控制在复制时是否同时复制语法高亮。\",\"控制光标的动画样式。\",\"控制是否启用平滑插入动画。\",\"控制光标样式。\",\"控制光标周围可见的前置行和尾随行的最小数目。在其他一些编辑器中称为“scrollOff”或“scrollOffset”。\",'仅当通过键盘或 API 触发时，才会强制执行\"光标环绕行\"。','始终强制执行 \"cursorSurroundingLines\"','控制何时应强制执行\"光标环绕行\"。',\"当 `#editor.cursorStyle#` 设置为 `line` 时，控制光标的宽度。\",\"控制在编辑器中是否允许通过拖放来移动选中内容。\",'按下\"Alt\"时滚动速度倍增。',\"控制编辑器是否启用了代码折叠。\",\"控制计算折叠范围的策略。`auto` 将使用语言特定的折叠策略 (若可用)。`indentation` 将使用基于缩进的折叠策略。\",\"控制编辑器是否应突出显示折叠范围。\",\"控制字体系列。\",\"控制字体粗细。\",\"控制编辑器是否自动格式化粘贴的内容。格式化程序必须可用，并且能针对文档中的某一范围进行格式化。\",\"控制编辑器在键入一行后是否自动格式化该行。\",\"控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。\",\"控制是否在概览标尺中隐藏光标。\",\"控制是否突出显示编辑器中活动的缩进参考线。\",\"控制以像素为单位的字母间距。\",\"控制是否在编辑器中检测链接并使其可被点击。\",\"突出显示匹配的括号。\",\"对鼠标滚轮滚动事件的 `deltaX` 和 `deltaY` 乘上的系数。\",\"按住 `Ctrl` 键并滚动鼠标滚轮时对编辑器字体大小进行缩放。\",\"当多个光标重叠时进行合并。\",\"映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。\",\"映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。\",\"在通过鼠标添加多个光标时使用的修改键。“转到定义”和“打开链接”功能所需的鼠标动作将会相应调整，不与多光标修改键冲突。[阅读详细信息](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。\",\"每个光标粘贴一行文本。\",\"每个光标粘贴全文。\",\"控制粘贴时粘贴文本的行计数与光标计数相匹配。\",\"控制编辑器是否突出显示语义符号的匹配项。\",\"控制是否在概览标尺周围绘制边框。\",\"打开速览时将焦点放在树上\",\"打开预览时将焦点放在编辑器上\",\"控制是将焦点放在内联编辑器上还是放在预览小部件中的树上。\",\"控制显示快速建议前的等待时间 (毫秒)。\",\"控制编辑器是否显示控制字符。\",\"控制编辑器是否显示缩进参考线。\",\"当文件以换行符结束时, 呈现最后一行的行号。\",\"同时突出显示导航线和当前行。\",\"控制编辑器的当前行进行高亮显示的方式。\",\"Render whitespace characters except for single spaces between words.\",\"仅在选定文本上呈现空白字符。\",\"控制编辑器在空白字符上显示符号的方式。\",\"控制选区是否有圆角。\",\"控制编辑器水平滚动时可以超过范围的字符数。\",\"控制编辑器是否可以滚动到最后一行之后。\",\"控制是否支持 Linux 主剪贴板。\",\"控制编辑器是否应突出显示与所选内容类似的匹配项。\",\"控制是否自动隐藏导航线上的折叠控件。\",\"控制是否淡化未使用的代码。\",\"在其他建议上方显示代码片段建议。\",\"在其他建议下方显示代码片段建议。\",\"在其他建议中穿插显示代码片段建议。\",\"不显示代码片段建议。\",\"控制代码片段是否与其他建议一起显示及其排列的位置。\",\"控制编辑器是否在滚动时使用动画。\",\"建议小部件的字号。如果设置为 `0`，则使用 `#editor.fontSize#` 的值。\",\"建议小部件的行高。如果设置为 `0`，则使用 `#editor.lineHeight#` 的值。\",\"控制在键入触发字符后是否自动显示建议。\",\"始终选择第一个建议。\",\"选择最近的建议，除非进一步键入选择其他项。例如 `console. -> console.log`，因为最近补全过 `log`。\",\"根据之前补全过的建议的前缀来进行选择。例如，`co -> console`、`con -> const`。\",\"控制在建议列表中如何预先选择建议。\",\"在按下 Tab 键时进行 Tab 补全，将插入最佳匹配建议。\",\"禁用 Tab 补全。\",'在前缀匹配时进行 Tab 补全。在 \"quickSuggestions\" 未启用时体验最好。',\"启用 Tab 补全。\",\"根据制表位插入和删除空格。\",\"执行单词相关的导航或操作时作为单词分隔符的字符。\",\"永不换行。\",\"将在视区宽度处换行。\",\"在 `#editor.wordWrapColumn#` 处折行。\",\"在视区宽度和 `#editor.wordWrapColumn#` 中的较小值处折行。\",\"控制折行的方式。\",\"在 `#editor.wordWrap#` 为 `wordWrapColumn`  或 `bounded` 时，控制编辑器的折行列。\",\"没有缩进。折行从第 1 列开始。\",\"折行的缩进量与其父级相同。\",\"折行的缩进量比其父级多 1。\",\"折行的缩进量比其父级多 2。\",\"控制折行的缩进。\",\"假定所有字符的宽度相同。这是一种快速算法，适用于等宽字体和某些字形宽度相等的文字(如拉丁字符)。\",\"将包装点计算委托给浏览器。这是一个缓慢算法，可能会导致大型文件被冻结，但它在所有情况下都正常工作。\",\"控制计算包裹点的算法。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"纯文本\"],\n\"vs/editor/common/standaloneStrings\":[\"无选择\",\"行 {0}, 列 {1} (选中 {2})\",\"行 {0}, 列 {1}\",\"{0} 选择(已选择 {1} 个字符)\",\"{0} 选择\",'现在将 \"辅助功能支持\" 设置更改为 \"打开\"。',\"现在正在打开“编辑器辅助功能”文档页。\",\"在差异编辑器的只读窗格中。\",\"在一个差异编辑器的窗格中。\",\"在只读代码编辑器中\",\"在代码编辑器中\",\"若要配置编辑器，将其进行优化以最好地配合屏幕阅读器的使用，请立即按 Command+E。\",\"若要配置编辑器，将其进行优化以最高效地配合屏幕阅读器的使用，按下 Ctrl+E。\",\"配置编辑器，将其进行优化以最好地配合屏幕读取器的使用。\",\"编辑器被配置为永远不进行优化以配合屏幕读取器的使用, 而当前不是这种情况。\",\"在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。通过按 {0} 切换此行为。\",\"在当前编辑器中按 Tab 会将焦点移动到下一个可聚焦的元素。当前无法通过按键绑定触发命令 {0}。\",\"在当前编辑器中按 Tab 将插入制表符。通过按 {0} 切换此行为。\",\"在当前编辑器中按 Tab 会插入制表符。当前无法通过键绑定触发命令 {0}。\",\"现在按 Command+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的详细信息。\",\"现在按 Ctrl+H 打开一个浏览器窗口, 其中包含有关编辑器辅助功能的更多信息。\",\"你可以按 Esc 或 Shift+Esc 消除此工具提示并返回到编辑器。\",\"显示辅助功能帮助\",\"开发人员: 检查令牌\",\"转到第 {0} 行，第 {1} 列\",\"转至行 {0}\",\"键入要导航到的介于 1 和 {0} 之间的行号\",\"键入 1 和 {0} 之间的字符以导航到\",\"当前行: {0}. 转到行 {1}。\",\"键入行号, 后跟可选冒号和要导航到的字符数\",\"转到行...\",\"{0}、{1} ，命令\",\"{0}，命令\",\"键入要执行的操作的名称\",\"命令面板\",\"{0}，符号\",\"键入要导航到的标识符的名称\",\"转到符号...\",\"符号({0})\",\"模块({0})\",\"类({0})\",\"接口({0})\",\"方法({0})\",\"函数({0})\",\"属性 ({0})\",\"变量({0})\",\"变量({0})\",\"构造函数 ({0})\",\"调用 ({0})\",\"编辑器内容\",\"按 Ctrl+F1 可打开辅助功能选项。\",\"按 Alt+F1 可打开辅助功能选项。\",\"切换高对比度主题\",\"在 {1} 个文件中进行了 {0} 次编辑\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"光标所在行高亮内容的背景颜色。\",\"光标所在行四周边框的背景颜色。\",\"背景颜色的高亮范围，喜欢通过快速打开和查找功能。颜色不能不透明，以免隐藏底层装饰。\",\"高亮区域边框的背景颜色。\",\"高亮显示符号的背景颜色，例如转到定义或转到下一个/上一个符号。颜色不能是不透明的，以免隐藏底层装饰。\",\"高亮显示符号周围的边框的背景颜色。\",\"编辑器光标颜色。\",\"编辑器光标的背景色。可以自定义块型光标覆盖字符的颜色。\",\"编辑器中空白字符的颜色。\",\"编辑器缩进参考线的颜色。\",\"编辑器活动缩进参考线的颜色。\",\"编辑器行号的颜色。\",\"编辑器活动行号的颜色\",'\"Id\" 已被弃用，请改用 \"editorLineNumber.activeForeground\"。',\"编辑器活动行号的颜色\",\"编辑器标尺的颜色。\",\"编辑器 CodeLens 的前景色\",\"匹配括号的背景色\",\"匹配括号外框的颜色\",\"概览标尺边框的颜色。\",\"编辑器导航线的背景色。导航线包括边缘符号和行号。\",\"编辑器中不必要(未使用)的源代码的边框颜色。\",'非必须（未使用）代码的在编辑器中显示的不透明度。例如，\"#000000c0\" 将以 75% 的不透明度显示代码。对于高对比度主题，请使用 ”editorUnnecessaryCode.border“ 主题来为非必须代码添加下划线，以避免颜色淡化。',\"概览标尺中错误标记的颜色。\",\"概览标尺中警告标记的颜色。\",\"概览标尺中信息标记的颜色。\"],\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"概览标尺上表示匹配括号的标记颜色。\",\"转到括号\",\"选择括号所有内容\",\"转到括号(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"将插入点左移\",\"将插入点右移\"],\"vs/editor/contrib/caretOperations/transpose\":[\"转置字母\"],\"vs/editor/contrib/clipboard/clipboard\":[\"剪切\",\"剪切(&&T)\",\"复制\",\"复制(&&C)\",\"粘贴\",\"粘贴(&&P)\",\"复制并突出显示语法\"],\n\"vs/editor/contrib/codeAction/codeActionCommands\":[\"要运行的代码操作的种类。\",\"控制何时应用返回的操作。\",\"始终应用第一个返回的代码操作。\",\"如果仅返回的第一个代码操作，则应用该操作。\",\"不要应用返回的代码操作。\",\"如果只应返回首选代码操作，则应返回控件。\",\"应用代码操作时发生未知错误\",\"快速修复...\",\"没有可用的代码操作\",'没有适用于\"{0}\"的首选代码操作','没有适用于\"{0}\"的代码操作',\"没有可用的首选代码操作\",\"没有可用的代码操作\",\"重构...\",'没有适用于\"{0}\"的首选重构','没有可用的\"{0}\"重构',\"没有可用的首选重构\",\"没有可用的重构操作\",\"源代码操作...\",'没有适用于\"{0}\"的首选源操作',\"没有适用于“ {0}”的源操作\",\"没有可用的首选源操作\",\"没有可用的源代码操作\",\"整理 import 语句\",\"没有可用的整理 import 语句操作\",\"全部修复\",\"没有可用的“全部修复”操作\",\"自动修复...\",\"没有可用的自动修复程序\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"显示修复程序。首选可用修复程序 （{0}）\",\"显示修补程序({0})\",\"显示修补程序\"],\"vs/editor/contrib/comment/comment\":[\"切换行注释\",\"切换行注释(&&T)\",\"添加行注释\",\"删除行注释\",\"切换块注释\",\"切换块注释(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"显示编辑器上下文菜单\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"光标撤消\",\"光标重做\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"数组符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。\",\"布尔符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"类符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"颜色符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"常量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"构造函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"枚举符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"枚举器成员符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"事件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"字段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文件符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文件夹符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"函数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"接口符号的前景色。这些符号将显示在大纲、痕迹导航栏和建议小组件中。\",\"键符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"关键字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"方法符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"模块符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"命名空间符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。\",\"空符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"数字符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"对象符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"运算符符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"包符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"属性符号的前景色。这些符号出现在大纲、痕迹导航栏和建议小组件中。\",\"参考符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"片段符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"字符串符号的前景颜色。这些符号出现在轮廓、痕迹导航栏和建议小部件中。\",\"结构符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"文本符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"类型参数符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"单位符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\",\"变量符号的前景颜色。这些符号出现在大纲、痕迹导航栏和建议小部件中。\"],\n\"vs/editor/contrib/find/findController\":[\"查找\",\"查找(&&F)\",\"查找选定内容\",\"查找下一个\",\"查找下一个\",\"查找上一个\",\"查找上一个\",\"查找下一个选择\",\"查找上一个选择\",\"替换\",\"替换(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"查找\",\"查找\",\"上一个匹配项\",\"下一个匹配项\",\"在选定内容中查找\",\"关闭\",\"替换\",\"替换\",\"替换\",\"全部替换\",\"切换替换模式\",\"仅高亮了前 {0} 个结果，但所有查找操作均针对全文。\",\"{1} 中的 {0}\",\"无结果\",\"找到 {0}\",\"为{1}找到了{0}\",\"{0} 在 {2} 处找到 {1}\",\"为 {1} 找到了 {0}\",\"Ctrl+Enter 现在由全部替换改为插入换行。你可以修改editor.action.replaceAll 的按键绑定以覆盖此行为。\"],\"vs/editor/contrib/folding/folding\":[\"展开\",\"以递归方式展开\",\"折叠\",\"切换折叠\",\"以递归方式折叠\",\"折叠所有块注释\",\"折叠所有区域\",\"展开所有区域\",\"全部折叠\",\"全部展开\",\"折叠级别 {0}\",\"编辑器所选内容的颜色。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"放大编辑器字体\",\"缩小编辑器字体\",\"重置编辑器字体大小\"],\"vs/editor/contrib/format/format\":[\"在第 {0} 行进行了 1 次格式编辑\",\"在第 {1} 行进行了 {0} 次格式编辑\",\"第 {0} 行到第 {1} 行间进行了 1 次格式编辑\",\"第 {1} 行到第 {2} 行间进行了 {0} 次格式编辑\"],\"vs/editor/contrib/format/formatActions\":[\"格式化文档\",\"格式化选定内容\"],\"vs/editor/contrib/gotoError/gotoError\":[\"转到下一个问题 (错误、警告、信息)\",\"转到上一个问题 (错误、警告、信息)\",\"转到文件中的下一个问题 (错误、警告、信息)\",\"转到文件中的上一个问题 (错误、警告、信息)\",\"下一个问题(&&P)\",\"上一个问题(&&P)\"],\n\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} 个问题(共 {1} 个)\",\"{0} 个问题(共 {1} 个)\",\"编辑器标记导航小组件错误颜色。\",\"编辑器标记导航小组件警告颜色。\",\"编辑器标记导航小组件信息颜色。\",\"编辑器标记导航小组件背景色。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"快速查看\",\"定义\",\"未找到“{0}”的任何定义\",\"找不到定义\",\"转到定义\",\"转到定义(&&D)...\",\"打开侧边的定义\",\"查看定义\",\"声明\",\"未找到“{0}”的声明\",\"未找到声明\",\"转到声明\",'转到\"声明\"',\"未找到“{0}”的声明\",\"未找到声明\",\"查看声明\",\"类型定义\",\"未找到“{0}”的类型定义\",\"未找到类型定义\",\"转到类型定义\",\"转到类型定义(&&T)\",\"快速查看类型定义\",\"实现\",\"未找到“{0}”的实现\",\"未找到实现\",\"转到实现\",\"跳转到实现\",\"查看实现\",'未找到\"{0}\"的引用',\"未找到引用\",\"转到引用\",\"转到引用(&&R)\",\"引用\",\"查看引用\",\"引用\",\"转到任何符号\",\"位置\",'\"{0}\"无结果',\"引用\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"单击显示 {0} 个定义。\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"正在加载...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"解析文件失败。\",\"{0} 个引用\",\"{0} 个引用\"],\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"无可用预览\",\"引用\",\"无结果\",\"引用\"],\n\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"在文件 {0} 的 {1} 行 {2} 列的符号\",\"{0} 中有 1 个符号，完整路径: {1}\",\"{1} 中有 {0} 个符号，完整路径: {2}\",\"未找到结果\",\"在 {0} 中找到 1 个符号\",\"在 {1} 中找到 {0} 个符号\",\"在 {1} 个文件中找到 {0} 个符号\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} 的符号 {0}，下一个使用 {2}\",\"{1} 的符号 {0}\"],\"vs/editor/contrib/hover/hover\":[\"显示悬停\",\"显示定义预览悬停\"],\"vs/editor/contrib/hover/modesContentHover\":[\"正在加载...\",\"速览问题\",\"正在检查快速修复...\",\"没有可用的快速修复\",\"快速修复...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"替换为上一个值\",\"替换为下一个值\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"向上复制行\",\"向上复制行(&&C)\",\"向下复制行\",\"向下复制一行(&&P)\",\"重复选择\",\"重复选择(&&D)\",\"向上移动行\",\"向上移动一行(&&V)\",\"向下移动行\",\"向下移动一行(&&L)\",\"按升序排列行\",\"按降序排列行\",\"裁剪尾随空格\",\"删除行\",\"行缩进\",\"行减少缩进\",\"在上面插入行\",\"在下面插入行\",\"删除左侧所有内容\",\"删除右侧所有内容\",\"合并行\",\"转置光标处的字符\",\"转换为大写\",\"转换为小写\",\"转换为词首字母大写\"],\"vs/editor/contrib/links/links\":[\"执行命令\",\"关注链接\",\"cmd + 单击\",\"ctrl + 单击\",\"option + 单击\",\"alt + 单击\",\"此链接格式不正确，无法打开: {0}\",\"此链接目标已丢失，无法打开。\",\"打开链接\"],\"vs/editor/contrib/message/messageController\":[\"无法在只读编辑器中编辑\"],\n\"vs/editor/contrib/multicursor/multicursor\":[\"在上面添加光标\",\"在上面添加光标(&&A)\",\"在下面添加光标\",\"在下面添加光标(&&D)\",\"在行尾添加光标\",\"在行尾添加光标(&&U)\",\"在底部添加光标\",\"在顶部添加光标\",\"将下一个查找匹配项添加到选择\",\"添加下一个匹配项(&&N)\",\"将选择内容添加到上一查找匹配项\",\"添加上一个匹配项(&&R)\",\"将上次选择移动到下一个查找匹配项\",\"将上个选择内容移动到上一查找匹配项\",\"选择所有找到的查找匹配项\",\"选择所有匹配项(&&O)\",\"更改所有匹配项\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"触发参数提示\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}，提示\"],\"vs/editor/contrib/peekView/peekView\":[\"关闭\",\"速览视图标题区域背景颜色。\",\"速览视图标题颜色。\",\"速览视图标题信息颜色。\",\"速览视图边框和箭头颜色。\",\"速览视图结果列表背景色。\",\"速览视图结果列表中行节点的前景色。\",\"速览视图结果列表中文件节点的前景色。\",\"速览视图结果列表中所选条目的背景色。\",\"速览视图结果列表中所选条目的前景色。\",\"速览视图编辑器背景色。\",\"速览视图编辑器中装订线的背景色。\",\"在速览视图结果列表中匹配突出显示颜色。\",\"在速览视图编辑器中匹配突出显示颜色。\",\"在速览视图编辑器中匹配项的突出显示边框。\"],\"vs/editor/contrib/rename/rename\":[\"无结果。\",\"解析重命名位置时发生未知错误\",'重命名\"{0}\"',\"成功将“{0}”重命名为“{1}”。摘要: {2}\",\"重命名无法应用修改\",\"重命名无法计算修改\",\"重命名符号\",\"启用/禁用重命名之前预览更改的功能\"],\"vs/editor/contrib/rename/renameInputField\":['重命名输入。键入新名称并按 \"Enter\" 提交。',\"{0}重命名，{1}预览\"],\n\"vs/editor/contrib/smartSelect/smartSelect\":[\"展开选择\",\"展开选定内容(&&E)\",\"收起选择\",\"缩小选定范围(&&S)\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"星期天\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\",\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\",\"一月\",\"二月\",\"三月\",\"四月\",\"5月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\",\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11 月\",\"12月\"],\"vs/editor/contrib/suggest/suggestController\":[\"选择“{0}”后进行了其他 {1} 次编辑\",\"触发建议\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"建议小组件的背景色。\",\"建议小组件的边框颜色。\",\"建议小组件的前景色。\",\"建议小组件中所选条目的背景色。\",\"建议小组件中匹配内容的高亮颜色。\",\"阅读更多...{0}\",\"阅读简略信息...{0}\",\"正在加载...\",\"正在加载...\",\"无建议。\",\"{0} 更少…\",\"{0} 更多…\",\"项目 {0}，文档: {1}\",\"{0}进行插入，{1}进行替换\",\"{0}进行替换，{1}进行插入\",\"{0}以接受\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"切换 Tab 键移动焦点\",\"Tab 键将移动到下一可聚焦的元素\",\"Tab 键将插入制表符\"],\"vs/editor/contrib/tokenization/tokenization\":[\"开发人员: 强制重新进行标记\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"读取访问期间符号的背景色，例如读取变量时。颜色必须透明，以免隐藏下面的修饰效果。\",\"写入访问过程中符号的背景色，例如写入变量时。颜色必须透明，以免隐藏下面的修饰效果。\",\"符号在进行读取访问操作时的边框颜色，例如读取变量。\",\"符号在进行写入访问操作时的边框颜色，例如写入变量。\",\"用于突出显示符号的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于突出显示写权限符号的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"转到下一个突出显示的符号\",\"转到上一个突出显示的符号\",\"触发符号高亮\"],\"vs/platform/configuration/common/configurationRegistry\":[\"默认配置替代\",\"针对某种语言，配置替代编辑器设置。\",\"此设置不支持按语言配置。\",'无法注册“{0}”。其符合描述特定语言编辑器设置的表达式 \"\\\\\\\\[.*\\\\\\\\]$\"。请使用 \"configurationDefaults\"。',\"无法注册“{0}”。此属性已注册。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"已按下({0})。正在等待同时按下第二个键...\",\"组合键({0}, {1})不是命令。\"],\n\"vs/platform/list/browser/listService\":[\"工作台\",\"映射为 `Ctrl` (Windows 和 Linux) 或 `Command` (macOS)。\",\"映射为 `Alt` (Windows 和 Linux) 或 `Option` (macOS)。\",\"在通过鼠标多选树和列表条目时使用的修改键 (例如“资源管理器”、“打开的编辑器”和“源代码管理”视图)。“在侧边打开”功能所需的鼠标动作 (若可用) 将会相应调整，不与多选修改键冲突。\",\"控制在树和列表中怎样使用鼠标来展开子项（若支持）。对于树中的父节点，此设置将控制是使用单击还是双击来展开。注意，某些不适用于此设置的树或列表可能会忽略此项。\",\"控制列表和树是否支持在工作台中进行水平滚动。\",\"控制工作台中的树控件是否支持水平滚动。\",\"此设置已弃用，请改用“{0}”。\",\"控制树缩进(以像素为单位)。\",\"控制树是否应呈现缩进参考线。\",\"简单键盘导航聚焦与键盘输入相匹配的元素。仅对前缀进行匹配。\",\"高亮键盘导航会突出显示与键盘输入相匹配的元素。进一步向上和向下导航将仅遍历突出显示的元素。\",\"筛选器键盘导航将筛选出并隐藏与键盘输入不匹配的所有元素。\",\"控制工作台中的列表和树的键盘导航样式。它可为“简单”、“突出显示”或“筛选”。\",\"控制列表和树中的键盘导航是否仅通过键入自动触发。如果设置为 `false` ，键盘导航只在执行 `list.toggleKeyboardNavigation` 命令时触发，您可以为该命令指定键盘快捷方式。\"],\"vs/platform/markers/common/markers\":[\"错误\",\"警告\",\"信息\"],\n\"vs/platform/theme/common/colorRegistry\":[\"整体前景色。此颜色仅在不被组件覆盖时适用。\",\"错误信息的整体前景色。此颜色仅在不被组件覆盖时适用。\",\"焦点元素的整体边框颜色。此颜色仅在不被其他组件覆盖时适用。\",\"在元素周围额外的一层边框，用来提高对比度从而区别其他元素。\",\"在活动元素周围额外的一层边框，用来提高对比度从而区别其他元素。\",\"文本中链接的前景色。\",\"文本中代码块的背景颜色。\",\"编辑器内小组件（如查找/替换）的阴影颜色。\",\"输入框背景色。\",\"输入框前景色。\",\"输入框边框。\",\"输入字段中已激活选项的边框颜色。\",\"输入字段中激活选项的背景颜色。\",\"输入验证结果为信息级别时的背景色。\",\"输入验证结果为信息级别时的前景色。\",\"严重性为信息时输入验证的边框颜色。\",\"严重性为警告时输入验证的背景色。\",\"输入验证结果为警告级别时的前景色。\",\"严重性为警告时输入验证的边框颜色。\",\"输入验证结果为错误级别时的背景色。\",\"输入验证结果为错误级别时的前景色。\",\"严重性为错误时输入验证的边框颜色。\",\"下拉列表背景色。\",\"下拉列表前景色。\",\"快速选取器分组标签的颜色。\",\"快速选取器分组边框的颜色。\",\"Badge 背景色。Badge 是小型的信息标签，如表示搜索结果数量的标签。\",\"Badge 前景色。Badge 是小型的信息标签，如表示搜索结果数量的标签。\",\"表示视图被滚动的滚动条阴影。\",\"滚动条滑块背景色\",\"滚动条滑块在悬停时的背景色\",\"滚动条滑块在被点击时的背景色。\",\"表示长时间操作的进度条的背景色。\",\"编辑器中错误波浪线的前景色。\",\"编辑器中错误框的边框颜色。\",\"编辑器中警告波浪线的前景色。\",\"编辑器中警告框的边框颜色。\",\"编辑器中信息波浪线的前景色。\",\"编辑器中信息框的边框颜色。\",\"编辑器中提示波浪线的前景色。\",\"编辑器中提示框的边框颜色。\",\"编辑器背景色。\",\"编辑器默认前景色。\",\"编辑器组件(如查找/替换)背景颜色。\",\"编辑器小部件的前景色，如查找/替换。\",\"编辑器小部件的边框颜色。此颜色仅在小部件有边框且不被小部件重写时适用。\",\"编辑器小部件大小调整条的边框颜色。此颜色仅在小部件有调整边框且不被小部件颜色覆盖时使用。\",\"编辑器所选内容的颜色。\",\"用以彰显高对比度的所选文本的颜色。\",\"非活动编辑器中所选内容的颜色，颜色必须透明，以免隐藏下面的装饰效果。\",\"具有与所选项相关内容的区域的颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"与所选项内容相同的区域的边框颜色。\",\"当前搜索匹配项的颜色。\",\"其他搜索匹配项的颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"限制搜索范围的颜色。颜色不能不透明，以免隐藏底层装饰。\",\"当前搜索匹配项的边框颜色。\",\"其他搜索匹配项的边框颜色。\",\"限制搜索的范围的边框颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"在下面突出显示悬停的字词。颜色必须透明，以免隐藏下面的修饰效果。\",\"编辑器悬停提示的背景颜色。\",\"编辑器悬停的前景颜色。\",\"光标悬停时编辑器的边框颜色。\",\"编辑器悬停状态栏的背景色。\",\"活动链接颜色。\",\"用于灯泡操作图标的颜色。\",\"用于灯泡自动修复操作图标的颜色。\",\"已插入的文本的背景色。颜色必须透明，以免隐藏下面的修饰效果。\",\"已删除的文本的背景色。颜色必须透明，以免隐藏下面的修饰效果。\",\"插入的文本的轮廓颜色。\",\"被删除文本的轮廓颜色。\",\"两个文本编辑器之间的边框颜色。\",\"焦点项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"焦点项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树非活动时的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"已选项在列表或树非活动时的前景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"非活动的列表或树控件中焦点项的背景颜色。活动的列表或树具有键盘焦点，非活动的没有。\",\"使用鼠标移动项目时，列表或树的背景颜色。\",\"鼠标在项目上悬停时，列表或树的前景颜色。\",\"使用鼠标移动项目时，列表或树进行拖放的背景颜色。\",\"在列表或树中搜索时，其中匹配内容的高亮颜色。\",\"列表和树中类型筛选器小组件的背景色。\",\"列表和树中类型筛选器小组件的轮廓颜色。\",\"当没有匹配项时，列表和树中类型筛选器小组件的轮廓颜色。\",\"缩进参考线的树描边颜色。\",\"菜单的边框颜色。\",\"菜单项的前景颜色。\",\"菜单项的背景颜色。\",\"菜单中选定菜单项的前景色。\",\"菜单中所选菜单项的背景色。\",\"菜单中所选菜单项的边框颜色。\",\"菜单中分隔线的颜色。\",\"代码片段 Tab 位的高亮背景色。\",\"代码片段 Tab 位的高亮边框颜色。\",\"代码片段中最后的 Tab 位的高亮背景色。\",\"代码片段中最后的 Tab 位的高亮边框颜色。\",\"用于查找匹配项的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于突出显示所选内容的概述标尺标记颜色。颜色必须透明，以免隐藏下面的修饰效果。\",\"用于查找匹配项的迷你地图标记颜色。\",\"编辑器选区在迷你地图中对应的标记颜色。\",\"用于错误的迷你地图标记颜色。\",\"用于警告的迷你地图标记颜色。\",\"用于问题错误图标的颜色。\",\"用于问题警告图标的颜色。\",\"用于问题信息图标的颜色。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-cn.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/editor/editor.main.nls.zh-tw.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\ndefine(\"vs/editor/editor.main.nls.zh-tw\",{\"vs/base/browser/ui/actionbar/actionbar\":[\"{0} ({1})\"],\"vs/base/browser/ui/aria/aria\":[\"{0} (再次出現)\",\"{0} (出現 {1} 次)\"],\"vs/base/browser/ui/findinput/findInput\":[\"輸入\"],\"vs/base/browser/ui/findinput/findInputCheckboxes\":[\"大小寫須相符\",\"全字拼寫須相符\",\"使用規則運算式\"],\"vs/base/browser/ui/findinput/replaceInput\":[\"輸入\",\"保留案例\"],\"vs/base/browser/ui/inputbox/inputBox\":[\"錯誤: {0}\",\"警告: {0}\",\"資訊: {0}\"],\"vs/base/browser/ui/keybindingLabel/keybindingLabel\":[\"未繫結\"],\"vs/base/browser/ui/list/listWidget\":[\"{0}。請使用導覽鍵來導覽。\"],\"vs/base/browser/ui/menu/menu\":[\"{0} ({1})\"],\"vs/base/browser/ui/tree/abstractTree\":[\"清除\",\"在類型上停用篩選\",\"在類型上啟用篩選\",\"找不到任何元素\",\"{1} 項元素中有 {0} 項相符\"],\"vs/base/common/keybindingLabels\":[\"Ctrl\",\"Shift\",\"Alt\",\"Windows\",\"Ctrl\",\"Shift\",\"Alt\",\"超級鍵\",\"Control\",\"Shift\",\"Alt\",\"命令\",\"Control\",\"Shift\",\"Alt\",\"Windows\",\"Control\",\"Shift\",\"Alt\",\"超級鍵\"],\"vs/base/common/severity\":[\"錯誤\",\"警告\",\"資訊\"],\"vs/base/parts/quickopen/browser/quickOpenModel\":[\"{0}，選擇器\",\"選擇器\"],\n\"vs/base/parts/quickopen/browser/quickOpenWidget\":[\"快速選擇器。輸入以縮小結果範圍。\",\"快速選擇器\",\"{0} 個結果\"],\"vs/editor/browser/controller/coreCommands\":[\"全選(&&S)\",\"復原(&&U)\",\"取消復原(&&R)\"],\"vs/editor/browser/controller/textAreaHandler\":[\"編輯器現在無法存取。按Alt+F1尋求選項\"],\"vs/editor/browser/widget/codeEditorWidget\":[\"游標數已限制為 {0} 個。\"],\"vs/editor/browser/widget/diffEditorWidget\":[\"因其中一個檔案過大而無法比較。\"],\"vs/editor/browser/widget/diffReview\":[\"關閉\",\"沒有任何行\",\"1 個行\",\"{0} 個行\",\"{1} 的 {0} 不同: 原始為 {2}，{3}，修改後為 {4}，{5}\",\"空白\",\"原始 {0},修改後{1}: {2}\",\"+ 修改後 {0}: {1}\",\"- 原始 {0}: {1}\",\"移至下一個差異\",\"移至上一個差異\"],\"vs/editor/browser/widget/inlineDiffMargin\":[\"複製已刪除的行\",\"複製已刪除的行\",\"複製已刪除的行 （{0}）\",\"還原此變更\",\"複製已刪除的行 （{0}）\"],\n\"vs/editor/common/config/commonEditorConfig\":[\"編輯器\",\"與 Tab 相等的空格數量。當 `#editor.detectIndentation#` 已開啟時，會根據檔案內容覆寫此設定。\",\"在按 `Tab` 時插入空格。當 `#editor.detectIndentation#` 開啟時，會根據檔案內容覆寫此設定。\",\"根據檔案內容，控制當檔案開啟時，是否自動偵測  `#editor.tabSize#` 和 `#editor.insertSpaces#`。\",\"移除尾端自動插入的空白字元。\",\"針對大型檔案停用部分高記憶體需求功能的特殊處理方式。\",\"控制是否應根據文件中的單字計算自動完成。\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\",\"即使按兩下內容或按 `Escape`，仍保持瞄孔編輯器開啟。\",\"因效能的緣故，不會將超過此高度的行 Token 化\",\"取消 Diff 計算前的逾時限制 (毫秒)。若無逾時，請使用 0。\",\"控制 Diff 編輯器要並排或內嵌顯示 Diff。\",\"控制 Diff 編輯器是否將開頭或尾端空白字元的變更顯示為 Diff。\",\"控制 Diff 編輯器是否要為新增/移除的變更顯示 +/- 標記。\"],\n\"vs/editor/common/config/editorOptions\":[\"編輯器將使用平台 API 以偵測螢幕助讀程式附加。\",\"編輯器將會為螢幕助讀程式的使用方式永久地最佳化。\",\"編輯器不會為螢幕助讀程式的使用方式進行最佳化。\",\"控制編輯器是否應於已為螢幕助讀程式最佳化的模式中執行。\",\"控制是否要在註解時插入空白字元。\",\"控制複製時不選取任何項目是否會複製目前程式行。\",\"控制 [尋找小工具] 中的搜尋字串是否來自編輯器選取項目。\",\"永不自動開啟 [在選取範圍中尋找] (預設)\",\"一律自動開啟 [在選取範圍中尋找]\",\"選取多行內容時，自動開啟 [在選取範圍中尋找]。\",\"控制尋找作業要對已選取文字或編輯器內的整個檔案執行。\",\"控制尋找小工具是否在 macOS 上讀取或修改共用尋找剪貼簿。\",\"控制尋找小工具是否應在編輯器頂端額外新增行。若為 true，當您可看到尋找小工具時，您的捲動範圍會超過第一行。\",\"啟用/停用連字字型。\",\"明確 font-feature-settings。\",\"設定連字字型。\",\"控制字型大小 (以像素為單位)。\",\"顯示結果的預覽檢視 (預設)\",\"移至主要結果並顯示預覽檢視\",\"前往主要結果，並對其他人啟用無預覽瀏覽\",\"此設定已淘汰，請改用 'editor.editor.gotoLocation.multipleDefinitions' 或 'editor.editor.gotoLocation.multipleImplementations' 等單獨設定。\",\"控制 'Go to Definition' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Type Definition' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Declaration' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to Implementations' 命令在有多個目標位置存在時的行為。\",\"控制 'Go to References' 命令在有多個目標位置存在時的行為。\",\"當 'Go to Definition' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Type Definition' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Declaration' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Implementation' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"當 'Go to Reference' 的結果為目前位置時，正在執行的替代命令識別碼。\",\"控制是否顯示暫留。\",\"控制暫留顯示的延遲時間 (以毫秒為單位)。\",\"控制當滑鼠移過時，是否應保持顯示暫留。\",\"在編輯器中啟用程式碼動作燈泡。\",\"控制行高。使用 0 會從字型大小計算行高。\",\"控制是否會顯示縮圖\",\"控制要在哪端呈現縮圖。\",\"控制何時顯示迷你地圖滑桿。\",\"在迷你地圖中繪製的內容比例。\",\"顯示行中的實際字元，而不是色彩區塊。\",\"限制縮圖的寬度，最多顯示某個數目的列。\",\"啟用快顯，在您鍵入的同時顯示參數文件和類型資訊。\",\"控制提示功能表是否在清單結尾時循環或關閉。\",\"允許在字串內顯示即時建議。\",\"允許在註解中顯示即時建議。\",\"允許在字串與註解以外之處顯示即時建議。\",\"控制是否應在鍵入時自動顯示建議。\",\"不顯示行號。\",\"行號以絕對值顯示。\",\"行號以目前游標的相對值顯示。\",\"每 10 行顯示行號。\",\"控制行號的顯示。\",\"在某個數目的等寬字元之後顯示垂直尺規。如有多個尺規，就會使用多個值。若陣列空白，就不會繪製任何尺規。\",\"插入建議而不覆寫游標旁的文字。\",\"插入建議並覆寫游標旁的文字。\",\"控制是否要在接受完成時覆寫字組。請注意，這取決於加入此功能的延伸模組。\",\"控制接受完成時的非預期文字修改是否應醒目提示，例如: `insertMode` 為 `replace` 但完成只支援 `insert`。\",\"控制對於拚錯字是否進行篩選和排序其建議\",\"控制排序是否會偏好游標附近出現的字組。\",\"控制記錄的建議選取項目是否在多個工作區和視窗間共用 (需要 `#editor.suggestSelection#`)。\",\"控制程式碼片段啟用時，是否阻止啟動快速建議。\",\"控制要在建議中顯示或隱藏圖示。\",\"控制 IntelliSense 顯示捲軸前要顯示多少建議 (最多 15 個)。\",\"此設定已淘汰，請改用 'editor.suggest.showKeywords' 或 'editor.suggest.showSnippets' 等單獨設定。\",\"啟用時，IntelliSense 顯示「方法」建議。\",\"啟用時，IntelliSense 顯示「函式」建議。\",\"啟用時，IntelliSense 顯示「建構函式」建議。\",\"啟用時，IntelliSense 顯示「欄位」建議。\",\"啟用時，IntelliSense 顯示「變數」建議。\",\"啟用時，IntelliSense 顯示「類別」建議。\",\"啟用時，IntelliSense 顯示「結構」建議。\",\"啟用時，IntelliSense 顯示「介面」建議。\",\"啟用時，IntelliSense 顯示「模組」建議。\",\"啟用時，IntelliSense 顯示「屬性」建議。\",\"啟用時，IntelliSense 顯示「事件」建議。\",\"啟用時，IntelliSense 顯示「運算子」建議。\",\"啟用時，IntelliSense 顯示「單位」建議。\",\"啟用時，IntelliSense 顯示「值」建議。\",\"啟用時，IntelliSense 顯示「常數」建議。\",\"啟用時，IntelliSense 顯示「列舉」建議。\",\"啟用時，IntelliSense 顯示「enumMember」建議。\",\"啟用時，IntelliSense 顯示「關鍵字」建議。\",\"啟用時，IntelliSense 顯示「文字」建議。\",\"啟用時，IntelliSense 顯示「色彩」建議。\",\"啟用時，IntelliSense 顯示「檔案」建議。\",\"啟用時，IntelliSense 顯示「參考」建議。\",\"啟用時，IntelliSense 顯示「customcolor」建議。\",\"啟用時，IntelliSense 顯示「資料夾」建議。\",\"啟用時，IntelliSense 顯示「typeParameter」建議。\",\"啟用時，IntelliSense 顯示「程式碼片段」建議。\",\"控制建議小工具底下的狀態列可見度。\",\"控制是否透過認可字元接受建議。例如在 JavaScript 中，分號 (';') 可以是接受建議並鍵入該字元的認可字元。\",\"在建議進行文字變更時，僅透過 `Enter` 接受建議。\",\"控制除了 'Tab' 外，是否也透過 'Enter' 接受建議。這有助於避免混淆要插入新行或接受建議。\",\"控制編輯器中螢幕助讀程式可讀出的行數。警告: 大於預設的數目會對效能產生影響。\",\"編輯器內容\",\"使用語言配置確定何時自動關閉括號。\",\"僅當游標位於空白的左側時自動關閉括號。\",\"控制編輯器是否應在使用者新增左括弧後，自動加上右括弧。\",\"僅在自動插入右引號或括號時，才在其上方鍵入。\",\"控制編輯器是否應在右引號或括號上鍵入。\",\"使用語言配置確定何時自動關閉引號。\",\"僅當游標位於空白的左側時自動關閉引號。\",\"控制編輯器是否應在使用者新增開始引號後，自動加上關閉引號。\",\"編輯器不會自動插入縮排。\",\"編輯器會保留目前行的縮排。\",\"編輯器會保留目前行的縮排並接受語言定義的括號。\",\"編輯器會目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules。\",\"編輯器會保留目前行的縮排、接受語言定義的括號並叫用語言定義的特殊 onEnterRules 並接受語言定義的 indentationRules。\",\"控制編輯器是否應在使用者鍵入、貼上、移動或縮排行時自動調整縮排。\",\"使用語言組態來決定何時自動環繞選取項目。\",\"用引號括住，而非使用括弧。\",\"用括弧括住，而非使用引號。 \",\"控制編輯器是否應自動環繞選取項目。\",\"控制編輯器是否顯示 codelens。\",\"控制編輯器是否應轉譯內嵌色彩裝飾項目與色彩選擇器。\",\"控制語法醒目提示是否應複製到剪貼簿。\",\"控制資料指標動畫樣式。\",\"控制是否應啟用平滑插入點動畫。 \",\"控制資料指標樣式。\",\"控制游標上下周圍的最少可見行數。在某些編輯器中稱為 'scrollOff' 或 `scrollOffset`。\",\"只有通過鍵盤或 API 觸發時，才會施行 `cursorSurroundingLines`。\",\"一律強制執行 `cursorSurroundingLines`\",\"控制應施行 `cursorSurroundingLines` 的時機。\",\"控制游標寬度，當 `#editor.cursorStyle#` 設定為 `line` 時。\",\"控制編輯器是否允許透過拖放來移動選取項目。\",\"按下 `Alt` 時的捲動速度乘數。\",\"控制編輯器是否啟用程式碼摺疊功能。\",\"控制摺疊範圍的計算方式。[自動] 會在可行的情況下使用語言專屬的摺疊策略。[縮排] 會使用以縮排為基礎的摺疊策略。\",\"控制編輯器是否應將折疊的範圍醒目提示。\",\"控制字型家族。\",\"控制字型寬度。\",\"控制編輯器是否應自動為貼上的內容設定格式。必須有可用的格式器，而且格式器應能夠為文件中的一個範圍設定格式。\",\"控制編輯器是否應自動在鍵入後設定行的格式。\",\"控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。\",\"控制游標是否應隱藏在概觀尺規中。\",\"控制編輯器是否應醒目提示使用中的縮排輔助線。\",\"控制字元間距 (以像素為單位)\",\"控制編輯器是否應偵測連結並使其可供點選。\",\"將符合的括號醒目提示。\",\"要用於滑鼠滾輪捲動事件 `deltaX` 和 `deltaY` 的乘數。\",\"使用滑鼠滾輪並按住 `Ctrl` 時，縮放編輯器的字型\",\"在多個游標重疊時將其合併。\",\"對應Windows和Linux的'Control'與對應 macOS 的'Command'。\",\"對應Windows和Linux的'Alt'與對應macOS的'Option'。\",\"用於在滑鼠新增多個游標的乘數。「移至定義」和「開啟連結」滑鼠手勢會加以適應，以避免與多個游標的乘數相衝突。[深入了解](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)。\",\"每個游標都會貼上一行文字。\",\"每個游標都會貼上全文。\",\"當已貼上文字的行數與游標數相符時控制貼上功能。\",\"控制編輯器是否應醒目顯示出現的語意符號。\",\"控制是否應在概觀尺規周圍繪製框線。\",\"開啟預覽時聚焦樹狀\",\"開啟時聚焦編輯器\",\"控制要聚焦內嵌編輯器或預覽小工具中的樹系。\",\"控制在快速建議顯示後的延遲 (以毫秒為單位)。\",\"控制編輯器是否應顯示控制字元。\",\"控制編輯器是否應顯示縮排輔助線。\",\"在檔案結尾為新行時，呈現最後一行的號碼。\",\"醒目提示裝訂邊和目前的行。\",\"控制編輯器如何顯示目前行的醒目提示。\",\"Render whitespace characters except for single spaces between words.\",\"只轉譯所選文字的空白字元。\",\"控制編輯器應如何轉譯空白字元。\",\"控制選取範圍是否有圓角\",\"控制編輯器水平捲動的額外字元數。\",\"控制編輯器是否捲動到最後一行之外。\",\"控制是否支援 Linux 主要剪貼簿。\",\"控制編輯器是否應醒目提示與選取項目類似的相符項目。\",\"自動隱藏摺疊控制向\",\"控制未使用程式碼的淡出。\",\"將程式碼片段建議顯示於其他建議的頂端。\",\"將程式碼片段建議顯示於其他建議的下方。\",\"將程式碼片段建議與其他建議一同顯示。\",\"不顯示程式碼片段建議。\",\"控制程式碼片段是否隨其他建議顯示，以及其排序方式。\",\"控制編輯器是否會使用動畫捲動\",\"建議小工具的字型大小。當設定為 `0` 時，則使用 `#editor.fontSize#` 值.\",\"建議小工具的行高。當設定為 `0` 時，則使用 `#editor.lineHeight#` 值.\",\"控制建議是否應在鍵入觸發字元時自動顯示。\",\"一律選取第一個建議。\",\"除非進一步鍵入選取了建議，否則選取最近的建議，例如 `console.| -> console.log`，原因是最近完成了 `log`。\",\"根據先前已完成該建議的前置詞選取建議，例如 `co -> console` 和 `con -> const`。\",\"控制在顯示建議清單時如何預先選取建議。\",\"按 Tab 時，Tab 完成會插入最符合的建議。\",\"停用 tab 鍵自動完成。\",\"在程式碼片段的首碼相符時使用 Tab 完成。未啟用 'quickSuggestions' 時效果最佳。\",\"啟用 tab 鍵自動完成。\",\"插入和刪除接在定位停駐點後的空白字元。\",\"在執行文字相關導覽或作業時要用作文字分隔符號的字元\",\"一律不換行。\",\"依檢視區寬度換行。\",\"於 '#editor.wordWrapColumn#' 換行。\",\"當檢視區縮至最小並設定 '#editor.wordWrapColumn#' 時換行。\",\"控制如何換行。\",\"當 `#editor.wordWrap#` 為 `wordWrapColumn` 或 `bounded` 時，控制編輯器中的資料行換行。\",\"無縮排。換行從第 1 列開始。\",\"換行的縮排會與父行相同。\",\"換行的縮排為父行 +1。\",\"換行縮排為父行 +2。\",\"控制換行的縮排。\",\"假設所有字元的寬度均相同。這是一種快速的演算法，適用於等寬字型，以及字符寬度相同的部分指令碼 (例如拉丁文字元)。\",\"將外圍點計算委派給瀏覽器。這是緩慢的演算法，如果檔案較大可能會導致凍結，但在所有情況下都正常運作。\",\"控制計算外圍點的演算法。\"],\n\"vs/editor/common/modes/modesRegistry\":[\"純文字\"],\n\"vs/editor/common/standaloneStrings\":[\"無選取項目\",\"第 {0} 行，第 {1} 欄 (已選取 {2})\",\"第 {0} 行，第 {1} 欄\",\"{0} 個選取項目 (已選取 {1} 個字元)\",\"{0} 個選取項目\",\"立即將設定 `accessibilitySupport` 變更為 'on’。\",\"立即開啟編輯器協助工具文件頁面。\",\"在 Diff 編輯器的唯讀窗格中。\",\"在 Diff 編輯器的窗格中。\",\"在唯讀程式碼編輯器中\",\"在程式碼編輯器中\",\"若要為編輯器進行最能搭配螢幕助讀程式使用的設定，請立即按 Command+E。\",\"若要將編輯器設定為針對搭配螢幕助讀程式使用最佳化，請立即按 Control+E。\",\"編輯器已設定為針對搭配螢幕助讀程式使用最佳化。\",\"已將此編輯器設定為永遠不針對搭配螢幕助讀程式使用最佳化，但目前不是此情況。\",\"在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。按 {0} 可切換此行為。\",\"在目前的編輯器中按 Tab 鍵會將焦點移至下一個可設定焦點的元素。命令 {0} 目前無法由按鍵繫結關係觸發。\",\"在目前的編輯器中按 Tab 鍵會插入定位字元。按 {0} 可切換此行為。\",\"在目前的編輯器中按 Tab 鍵會插入定位字元。命令 {0} 目前無法由按鍵繫結關係觸發。\",\"立即按 Command+H，以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。\",\"立即按 Control+H，以開啟提供編輯器協助工具相關詳細資訊的瀏覽器視窗。\",\"您可以按 Esc 鍵或 Shift+Esc 鍵來解除此工具提示並返回編輯器。\",\"顯示協助工具說明\",\"開發人員: 檢查權杖\",\"移至行 {0} 和字元 {1}\",\"移至第 {0} 行\",\"輸入介於 1 到 {0} 之間要瀏覽的行號\",\"鍵入 1 到 {0} 之間的字元，以瀏覽至\",\"目前行號: {0}。前往第 {1} 行。\",\"依序鍵入行號、選用冒號與字元號碼以瀏覽至\",\"移至行...\",\"{0}、{1}、命令\",\"{0}，命令\",\"鍵入要執行之動作的名稱\",\"命令選擇區\",\"{0}，符號\",\"鍵入要瀏覽之目標識別碼的名稱\",\"移至符號...\",\"符號 ({0})\",\"模組 ({0})\",\"類別 ({0})\",\"介面 ({0})\",\"方法 ({0})\",\"函式 ({0})\",\"屬性 ({0})\",\"變數 ({0})\",\"變數 ({0})\",\"建構函式 ({0})\",\"呼叫 ({0})\",\"編輯器內容\",\"按 Ctrl+F1 可取得協助工具選項。\",\"按 Alt+F1 可取得協助工具選項。\",\"切換高對比佈景主題\",\"已在 {1} 檔案中進行 {0} 項編輯\"],\n\"vs/editor/common/view/editorColorRegistry\":[\"目前游標位置行的反白顯示背景色彩。\",\"目前游標位置行之周圍框線的背景色彩。\",\"醒目提示範圍的背景色彩，例如快速開啟並尋找功能。其不得為不透明色彩，以免隱藏底層裝飾。\",\"反白顯示範圍周圍邊框的背景顏色。\",\"醒目提示符號的背景色彩，相似於前往下一個定義或前往下一個/上一個符號。色彩必須透明，以免隱藏底層裝飾。\",\"醒目提示周圍的邊界背景色彩。\",\"編輯器游標的色彩。\",\"編輯器游標的背景色彩。允許自訂區塊游標重疊的字元色彩。\",\"編輯器中空白字元的色彩。\",\"編輯器縮排輔助線的色彩。\",\"使用中編輯器縮排輔助線的色彩。\",\"編輯器行號的色彩。\",\"編輯器使用中行號的色彩 \",\"Id 已取代。請改用 'editorLineNumber.activeForeground' 。\",\"編輯器使用中行號的色彩 \",\"編輯器尺規的色彩\",\"編輯器程式碼濾鏡的前景色彩\",\"成對括號背景色彩\",\"成對括號邊框色彩\",\"預覽檢視編輯器尺規的邊框色彩.\",\"編輯器邊框的背景顏色,包含行號與字形圖示的邊框.\",\"編輯器中不必要 (未使用) 原始程式碼的框線色彩。\",\"編輯器中不必要 (未使用) 原始程式碼的不透明度。例如 \\\"#000000c0” 會以 75% 的不透明度轉譯程式碼。針對高對比主題，使用 'editorUnnecessaryCode.border' 主題色彩可為不必要的程式碼加上底線，而不是將其變淡。\",\"錯誤的概觀尺規標記色彩。\",\"警示的概觀尺規標記色彩。\",\"資訊的概觀尺規標記色彩。\"],\"vs/editor/contrib/bracketMatching/bracketMatching\":[\"成對括弧的概觀尺規標記色彩。\",\"移至方括弧\",\"選取至括弧\",\"前往括弧(&&B)\"],\"vs/editor/contrib/caretOperations/caretOperations\":[\"將插入點左移\",\"將插入點右移\"],\"vs/editor/contrib/caretOperations/transpose\":[\"調換字母\"],\n\"vs/editor/contrib/clipboard/clipboard\":[\"剪下\",\"剪下(&&T)\",\"複製\",\"複製(&&C)\",\"貼上\",\"貼上(&&P)\",\"隨語法醒目提示複製\"],\"vs/editor/contrib/codeAction/codeActionCommands\":[\"要執行程式碼動作的種類。\",\"控制要套用傳回動作的時機。\",\"一律套用第一個傳回的程式碼動作。\",\"如果傳回的程式碼動作是唯一動作，則加以套用。\",\"不要套用傳回的程式碼動作。\",\"控制是否僅應傳回偏好的程式碼動作。\",\"套用程式碼動作時發生未知的錯誤\",\"快速修復...\",\"沒有可用的程式碼操作\",'沒有 \"{0}\" 的偏好程式碼動作','沒有 \"{0}\" 可用的程式碼動作',\"沒有可用的偏好程式碼動作\",\"沒有可用的程式碼操作\",\"重構...\",\"沒有適用於 '{0}' 的偏好重構。\",'沒有可用的 \"{0}\" 重構',\"沒有可用的偏好重構\",\"沒有可用的重構\",\"來源動作...\",\"沒有適用於 '{0}' 的偏好來源動作\",'沒有 \"{0}\" 可用的來源動作',\"沒有可用的偏好來源動作\",\"沒有可用的來源動作\",\"組織匯入\",\"沒有任何可用的組織匯入動作\",\"全部修正\",\"沒有全部修正動作可用\",\"自動修正...\",\"沒有可用的自動修正\"],\"vs/editor/contrib/codeAction/lightBulbWidget\":[\"顯示修正程式。偏好的修正程式可用 ({0})\",\"顯示修正 ({0})\",\"顯示修正\"],\"vs/editor/contrib/comment/comment\":[\"切換行註解\",\"切換行註解(&&T)\",\"加入行註解\",\"移除行註解\",\"切換區塊註解\",\"切換區塊註解(&&B)\"],\"vs/editor/contrib/contextmenu/contextmenu\":[\"顯示編輯器內容功能表\"],\"vs/editor/contrib/cursorUndo/cursorUndo\":[\"游標復原\",\"游標重做\"],\n\"vs/editor/contrib/documentSymbols/outlineTree\":[\"陣列符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"布林值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"類別符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"色彩符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"常數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"建構函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"列舉值符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"列舉值成員符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"事件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"欄位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"檔案符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"資料夾符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"函式符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"介面符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"索引鍵符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"關鍵字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"方法符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"模組符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"命名空間符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"Null 符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"數字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"物件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"運算子符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"套件符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"屬性符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"參考符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"程式碼片段符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"字串符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"結構符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"文字符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"型別參數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"單位符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\",\"變數符號的前景色彩。這些符號會出現在大綱、階層連結和建議小工具中。\"],\n\"vs/editor/contrib/find/findController\":[\"尋找\",\"尋找(&&F)\",\"尋找選取項目\",\"尋找下一個\",\"尋找下一個\",\"尋找上一個\",\"尋找上一個\",\"尋找下一個選取項目\",\"尋找上一個選取項目\",\"取代\",\"取代(&&R)\"],\"vs/editor/contrib/find/findWidget\":[\"尋找\",\"尋找\",\"上一個符合項目\",\"下一個符合項目\",\"在選取範圍中尋找\",\"關閉\",\"取代\",\"取代\",\"取代\",\"全部取代\",\"切換取代模式\",\"僅反白顯示前 {0} 筆結果，但所有尋找作業會在完整文字上執行。\",\"{1} 的 {0}\",\"查無結果\",\"找到 {0}\",\"已找到 {1} 的 {0}\",\"於 {2} 找到 {1} 的 {0}\",\"已找到 {1} 的 {0}\",\"Ctrl+Enter 現在會插入分行符號，而不會全部取代。您可以修改 editor.action.replaceAll 的按鍵繫結關係，以覆寫此行為。\"],\"vs/editor/contrib/folding/folding\":[\"展開\",\"以遞迴方式展開\",\"摺疊\",\"切換摺疊\",\"以遞迴方式摺疊\",\"摺疊全部區塊註解\",\"摺疊所有區域\",\"展開所有區域\",\"全部摺疊\",\"全部展開\",\"摺疊層級 {0}\",\"編輯器選取範圍的色彩。\"],\"vs/editor/contrib/fontZoom/fontZoom\":[\"編輯器字體放大\",\"編輯器字型縮小\",\"編輯器字體重設縮放\"],\"vs/editor/contrib/format/format\":[\"在行 {0} 編輯了 1 項格式\",\"在行 {1} 編輯了 {0} 項格式\",\"在行 {0} 與行 {1} 之間編輯了 1 項格式\",\"在行 {1} 與行 {2} 之間編輯了 {0} 項格式\"],\"vs/editor/contrib/format/formatActions\":[\"格式化文件\",\"格式化選取範圍\"],\n\"vs/editor/contrib/gotoError/gotoError\":[\"移至下一個問題 (錯誤, 警告, 資訊)\",\"移至上一個問題 (錯誤, 警告, 資訊)\",\"移至檔案裡面的下一個問題 (錯誤, 警告, 資訊)\",\"移至檔案裡面的上一個問題 (錯誤, 警告, 資訊)\",\"下一個問題(&&P)\",\"前一個問題(&&P)\"],\"vs/editor/contrib/gotoError/gotoErrorWidget\":[\"{0} 個問題 (共 {1} 個)\",\"{0} 個問題 (共 {1} 個)\",\"編輯器標記導覽小工具錯誤的色彩。\",\"編輯器標記導覽小工具警告的色彩。\",\"編輯器標記導覽小工具資訊的色彩\",\"編輯器標記導覽小工具的背景。\"],\"vs/editor/contrib/gotoSymbol/goToCommands\":[\"查看\",\"定義\",\"找不到 '{0}' 的定義\",\"找不到任何定義\",\"移至定義\",\"移至定義(&&D)\",\"在一側開啟定義\",\"預覽定義\",\"宣告\",\"找不到 '{0}' 的宣告 \",\"找不到任何宣告\",\"移至宣告\",\"前往宣告(&&D)\",\"找不到 '{0}' 的宣告 \",\"找不到任何宣告\",\"預覽宣告\",\"類型定義\",\"找不到 '{0}' 的任何類型定義\",\"找不到任何類型定義\",\"移至類型定義\",\"前往類型定義(&&T)\",\"預覽類型定義\",\"實作\",\"找不到 '{0}' 的任何實作\",\"找不到任何實作\",\"前往實作\",\"前往實作(&&I)\",\"查看實作\",'未找到 \"{0}\" 的參考',\"未找到參考\",\"前往參考\",\"前往參考(&&R)\",\"參考\",\"預覽參考\",\"參考\",\"移至任何符號\",\"位置\",'\"{0}\" 無結果',\"參考\"],\"vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition\":[\"按一下以顯示 {0} 項定義。\"],\"vs/editor/contrib/gotoSymbol/peek/referencesController\":[\"正在載入...\",\"{0} ({1})\"],\"vs/editor/contrib/gotoSymbol/peek/referencesTree\":[\"無法解析檔案。\",\"{0} 個參考\",\"{0} 個參考\"],\n\"vs/editor/contrib/gotoSymbol/peek/referencesWidget\":[\"無法預覽\",\"參考\",\"查無結果\",\"參考\"],\"vs/editor/contrib/gotoSymbol/referencesModel\":[\"個符號位於 {0} 中的第 {1} 行第 {2} 欄\",\"1 個符號位於 {0}, 完整路徑 {1}\",\"{0} 個符號位於 {1}, 完整路徑 {2}\",\"找不到結果\",\"在 {0} 中找到 1 個符號\",\"在 {1} 中找到 {0} 個符號\",\"在 {1} 個檔案中找到 {0} 個符號\"],\"vs/editor/contrib/gotoSymbol/symbolNavigation\":[\"{1} 的符號 {0}，{2} 為下一個\",\"{1} 的符號 {0}\"],\"vs/editor/contrib/hover/hover\":[\"動態顯示\",\"顯示定義預覽懸停\"],\"vs/editor/contrib/hover/modesContentHover\":[\"正在載入...\",\"瞄孔問題\",\"正在檢查快速修正...\",\"沒有可用的快速修正\",\"快速修復...\"],\"vs/editor/contrib/inPlaceReplace/inPlaceReplace\":[\"以上一個值取代\",\"以下一個值取代\"],\"vs/editor/contrib/linesOperations/linesOperations\":[\"將行向上複製\",\"將行向上複製(&&C)\",\"將行向下複製\",\"將行向下複製(&&P)\",\"重複選取項目\",\"重複選取項目(&D)\",\"上移一行\",\"上移一行(&&V)\",\"下移一行\",\"下移一行(&&L)\",\"遞增排序行\",\"遞減排序行\",\"修剪尾端空白\",\"刪除行\",\"縮排行\",\"凸排行\",\"在上方插入行\",\"在下方插入行\",\"左邊全部刪除\",\"刪除所有右方項目\",\"連接線\",\"轉置游標周圍的字元數\",\"轉換到大寫\",\"轉換到小寫\",\"轉換為字首大寫\"],\"vs/editor/contrib/links/links\":[\"執行命令\",\"追蹤連結\",\"cmd + 按一下\",\"ctrl + 按一下\",\"選項 + 按一下\",\"alt + 按一下\",\"因為此連結的格式不正確，所以無法開啟: {0}\",\"因為此連結目標遺失，所以無法開啟。\",\"開啟連結\"],\n\"vs/editor/contrib/message/messageController\":[\"無法在唯讀編輯器中編輯\"],\"vs/editor/contrib/multicursor/multicursor\":[\"在上方加入游標\",\"在上方新增游標(&&A)\",\"在下方加入游標\",\"在下方新增游標(&&D)\",\"在行尾新增游標\",\"在行尾新增游標(&&U)\",\"將游標新增到底部 \",\"將游標新增到頂部\",\"將選取項目加入下一個找到的相符項\",\"新增下一個項目(&&N)\",\"將選取項目加入前一個找到的相符項中\",\"新增上一個項目(&&R)\",\"將最後一個選擇項目移至下一個找到的相符項\",\"將最後一個選擇項目移至前一個找到的相符項\",\"選取所有找到的相符項目\",\"選取所有項目(&&O)\",\"變更所有發生次數\"],\"vs/editor/contrib/parameterHints/parameterHints\":[\"觸發參數提示\"],\"vs/editor/contrib/parameterHints/parameterHintsWidget\":[\"{0}，提示\"],\"vs/editor/contrib/peekView/peekView\":[\"關閉\",\"預覽檢視標題區域的背景色彩。\",\"預覽檢視標題的色彩。\",\"預覽檢視標題資訊的色彩。\",\"預覽檢視之框線與箭頭的色彩。\",\"預覽檢視中結果清單的背景色彩。\",\"預覽檢視結果列表中行節點的前景色彩\",\"預覽檢視結果列表中檔案節點的前景色彩\",\"在預覽檢視之結果清單中選取項目時的背景色彩。\",\"在預覽檢視之結果清單中選取項目時的前景色彩。\",\"預覽檢視編輯器的背景色彩。\",\"預覽檢視編輯器邊框(含行號或字形圖示)的背景色彩。\",\"在預覽檢視編輯器中比對時的反白顯示色彩。\",\"預覽檢視編輯器中比對時的反白顯示色彩。\",\"在預覽檢視編輯器中比對時的反白顯示邊界。\"],\"vs/editor/contrib/rename/rename\":[\"沒有結果。\",\"解析重新命名位置時發生未知的錯誤\",\"正在重新命名 '{0}'\",\"已成功將 '{0}' 重新命名為 '{1}'。摘要: {2}\",\"重命名無法套用編輯\",\"重新命名無法計算編輯\",\"重新命名符號\",\"啟用/停用重新命名前先預覽變更的功能\"],\n\"vs/editor/contrib/rename/renameInputField\":[\"為輸入重新命名。請鍵入新名稱，然後按 Enter 以認可。\",\"{0} 以重新命名，{1} 以預覽\"],\"vs/editor/contrib/smartSelect/smartSelect\":[\"展開選取項目\",\"展開選取範圍(&&E)\",\"縮小選取項目\",\"壓縮選取範圍(&&S)\"],\"vs/editor/contrib/snippet/snippetVariables\":[\"星期天\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\",\"週日\",\"週一\",\"週二\",\"週三\",\"週四\",\"週五\",\"週六\",\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\",\"1月\",\"2月\",\"3 月\",\"4月\",\"五月\",\"6月\",\"7 月\",\"8 月\",\"9 月\",\"10 月\",\"11 月\",\"12 月\"],\"vs/editor/contrib/suggest/suggestController\":[\"接受 ‘{0}’ 進行了其他 {1} 項編輯\",\"觸發建議\"],\"vs/editor/contrib/suggest/suggestWidget\":[\"建議小工具的背景色彩。\",\"建議小工具的邊界色彩。\",\"建議小工具的前景色彩。\",\"建議小工具中所選項目的背景色彩。\",\"建議小工具中相符醒目提示的色彩。\",\"進一步了解...{0}\",\"簡易說明...{0}\",\"正在載入...\",\"正在載入...\",\"無建議。\",\"{0} 以取得較少...\",\"{0} 以獲得更多...\",\"項目 {0}，文件: {1}\",\"{0} 以插入，{1} 以取代\",\"{0} 以取代，{1} 以插入\",\"{0} 以接受\"],\"vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode\":[\"切換 TAB 鍵移動焦點\",\"按 Tab 現在會將焦點移至下一個可設定焦點的元素。\",\"按 Tab 現在會插入定位字元。\"],\"vs/editor/contrib/tokenization/tokenization\":[\"開發人員: 強制重新置放\"],\n\"vs/editor/contrib/wordHighlighter/wordHighlighter\":[\"讀取權限期間 (如讀取變數) 符號的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"寫入權限期間 (如寫入變數) 符號的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"讀取存取期間 (例如讀取變數時) 符號的邊框顏色。\",\"寫入存取期間 (例如寫入變數時) 符號的邊框顏色。 \",\"符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"寫入權限符號醒目提示的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"移至下一個反白符號\",\"移至上一個反白符號\",\"觸發符號反白顯示\"],\"vs/platform/configuration/common/configurationRegistry\":[\"預設組態覆寫\",\"設定要針對語言覆寫的編輯器設定。\",\"這個設定不支援以語言為根據的組態。\",\"無法註冊 '{0}'。這符合用於描述語言專用編輯器設定的屬性模式 '\\\\\\\\[.*\\\\\\\\]$'。請使用 'configurationDefaults' 貢獻。\",\"無法註冊 '{0}'。此屬性已經註冊。\"],\"vs/platform/keybinding/common/abstractKeybindingService\":[\"已按下 ({0})。請等待第二個套索鍵...\",\"按鍵組合 ({0}, {1}) 不是命令。\"],\n\"vs/platform/list/browser/listService\":[\"工作台\",\"對應Windows和Linux的'Control'與對應 macOS 的'Command'。\",\"對應Windows和Linux的'Alt'與對應macOS的'Option'。\",\"透過滑鼠多選，用於在樹狀目錄與清單中新增項目的輔助按鍵 (例如在總管中開啟編輯器 及 SCM 檢視)。'在側邊開啟' 滑鼠手勢 (若支援) 將會適應以避免和多選輔助按鍵衝突。\",\"控制如何使用滑鼠在樹狀目錄與清單中開啟項目 (若有支援)。對於樹狀目錄中具子系的父系而言，此設定會控制應以滑鼠按一下或按兩下展開父系。注意，某些樹狀目錄或清單若不適用此設定則會予以忽略。\",\"控制在工作台中，清單和樹狀結構是否支援水平捲動。\",\"控制是否支援工作台中的水平滾動。\",\"已淘汰此設定，請改用 ‘{0}’。\",\"控制樹狀結構縮排 (像素)。\",\"控制樹系是否應轉譯縮排輔助線。\",\"比對按鍵輸入的簡易按鍵瀏覽焦點元素。僅比對前置詞。\",\"醒目提示鍵盤瀏覽會醒目提示符合鍵盤輸入的元素。進一步向上或向下瀏覽只會周遊醒目提示的元素。\",\"篩選鍵盤瀏覽會篩掉並隱藏不符合鍵盤輸入的所有元素。\",\"控制 Workbench 中清單和樹狀結構的鍵盤瀏覽樣式。可以是簡易的、醒目提示和篩選。\",\"控制是否只要鍵入即可自動觸發清單和樹狀結構中的鍵盤瀏覽。若設為 `false`，只有在執行 `list.toggleKeyboardNavigation` 命令時，才會觸發鍵盤瀏覽，您可為其指定鍵盤快速鍵。\"],\"vs/platform/markers/common/markers\":[\"錯誤\",\"警告\",\"資訊\"],\n\"vs/platform/theme/common/colorRegistry\":[\"整體的前景色彩。僅當未被任何元件覆疊時，才會使用此色彩。\",\"整體錯誤訊息的前景色彩。僅當未被任何元件覆蓋時，才會使用此色彩。\",\"焦點項目的整體框線色彩。只在沒有任何元件覆寫此色彩時，才會加以使用。\",\"項目周圍的額外框線，可將項目從其他項目中區隔出來以提高對比。\",\"使用中項目周圍的額外邊界，可將項目從其他項目中區隔出來以提高對比。\",\"內文連結的前景色彩\",\"文字區塊的背景顏色。\",\"小工具的陰影色彩，例如編輯器中的尋找/取代。\",\"輸入方塊的背景。\",\"輸入方塊的前景。\",\"輸入方塊的框線。\",\"輸入欄位中可使用之項目的框線色彩。\",\"在輸入欄位中所啟動選項的背景色彩。\",\"資訊嚴重性的輸入驗證背景色彩。\",\"資訊嚴重性的輸入驗證前景色彩。\",\"資訊嚴重性的輸入驗證邊界色彩。\",\"警告嚴重性的輸入驗證背景色彩。\",\"警告嚴重性的輸入驗證前景色彩。\",\"警告嚴重性的輸入驗證邊界色彩。\",\"錯誤嚴重性的輸入驗證背景色彩。\",\"錯誤嚴重性的輸入驗證前景色彩。\",\"錯誤嚴重性的輸入驗證邊界色彩。\",\"下拉式清單的背景。\",\"下拉式清單的前景。\",\"分組標籤的快速選擇器色彩。\",\"分組邊界的快速選擇器色彩。\",\"標記的背景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。\",\"標記的前景顏色。標記為小型的訊息標籤,例如搜尋結果的數量。\",\"指出在捲動該檢視的捲軸陰影。\",\"捲軸滑桿的背景顏色。\",\"動態顯示時捲軸滑桿的背景顏色。\",\"當點擊時捲軸滑桿的背景顏色。\",\"長時間運行進度條的背景色彩.\",\"編輯器內錯誤提示線的前景色彩.\",\"編輯器中錯誤方塊的框線色彩。\",\"編輯器內警告提示線的前景色彩.\",\"編輯器中的警告方塊框線色彩。\",\"編輯器內資訊提示線的前景色彩\",\"編輯器中的資訊方塊框線色彩。\",\"編輯器內提示訊息的提示線前景色彩\",\"編輯器中的提示方塊框線色彩。\",\"編輯器的背景色彩。\",\"編輯器的預設前景色彩。\",\"編輯器小工具的背景色彩，例如尋找/取代。\",\"編輯器小工具 (例如尋找/取代) 的前景色彩。\",\"編輯器小工具的邊界色彩。小工具選擇擁有邊界或色彩未被小工具覆寫時，才會使用色彩。\",\"編輯器小工具之調整大小列的邊界色彩。只在小工具選擇具有調整大小邊界且未覆寫該色彩時，才使用該色彩。\\n\",\"編輯器選取範圍的色彩。\",\"為選取的文字顏色高對比化\",\"非使用中編輯器內的選取項目色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"與選取項目內容相同之區域的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"選取時，內容相同之區域的框線色彩。\",\"符合目前搜尋的色彩。\",\"其他搜尋相符項目的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"限制搜尋之範圍的色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"符合目前搜尋的框線色彩。\",\"符合其他搜尋的框線色彩。\",\"限制搜尋之範圍的框線色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"在顯示動態顯示的文字下醒目提示。其不得為不透明色彩，以免隱藏底層裝飾。\",\"編輯器動態顯示的背景色彩。\",\"編輯器動態顯示的前景色彩。\",\"編輯器動態顯示的框線色彩。\",\"編輯器暫留狀態列的背景色彩。\",\"使用中之連結的色彩。\",\"用於燈泡動作圖示的色彩。\",\"用於燈泡自動修正動作圖示的色彩。\",\"已插入文字的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"已移除文字的背景色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"插入的文字外框色彩。\",\"移除的文字外框色彩。\",\"兩個文字編輯器之間的框線色彩。\",\"當清單/樹狀為使用中狀態時，焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，焦點項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為非使用中狀態時，所選項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"當清單/樹狀為使用中狀態時，所選項目的清單/樹狀前景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中則沒有。\",\"當清單/樹狀為非使用中狀態時，焦點項目的清單/樹狀背景色彩。使用中的清單/樹狀有鍵盤焦點，非使用中者則沒有。\",\"使用滑鼠暫留在項目時的清單/樹狀背景。\",\"滑鼠暫留在項目時的清單/樹狀前景。\",\"使用滑鼠四處移動項目時的清單/樹狀拖放背景。\",\"在清單/樹狀內搜尋時，相符醒目提示的清單/樹狀前景色彩。\",\"清單和樹狀結構中類型篩選小工具的背景色彩。\",\"清單和樹狀結構中類型篩選小工具的大綱色彩。\",\"在沒有相符項目時，清單和樹狀結構中類型篩選小工具的大綱色彩。\",\"縮排輔助線的樹狀筆觸色彩。\",\"功能表的邊框色彩。\",\"功能表項目的前景色彩。\",\"功能表項目的背景色彩。\",\"功能表中所選功能表項目的前景色彩。\",\"功能表中所選功能表項目的背景色彩。\",\"功能表中所選功能表項目的框線色彩。\",\"功能表中分隔線功能表項目的色彩。\",\"程式碼片段定位停駐點的反白顯示背景色彩。\",\"程式碼片段定位停駐點的反白顯示邊界色彩。\",\"程式碼片段最終定位停駐點的反白顯示背景色彩。\",\"程式碼片段最終定位停駐點的反白顯示邊界色彩。\",\"尋找相符項目的概觀尺規標記色彩。其不得為不透明色彩，以免隱藏底層裝飾。\",\"選取項目醒目提示的概觀尺規標記。其不得為不透明色彩，以免隱藏底層裝飾。\",\"用於尋找相符項目的縮圖標記色彩。\",\"編輯器選取範圍的迷你地圖標記色彩。\",\"錯誤的縮圖標記色彩。\",\"警告的縮圖標記色彩。\",\"用於問題錯誤圖示的色彩。\",\"用於問題警告圖示的色彩。\",\"用於問題資訊圖示的色彩。\"]\n});\n//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.nls.zh-tw.js.map"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/css/cssMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/css/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=window.setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/css/cssWorker\",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssScanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ident=0]=\"Ident\",e[e.AtKeyword=1]=\"AtKeyword\",e[e.String=2]=\"String\",e[e.BadString=3]=\"BadString\",e[e.UnquotedString=4]=\"UnquotedString\",e[e.Hash=5]=\"Hash\",e[e.Num=6]=\"Num\",e[e.Percentage=7]=\"Percentage\",e[e.Dimension=8]=\"Dimension\",e[e.UnicodeRange=9]=\"UnicodeRange\",e[e.CDO=10]=\"CDO\",e[e.CDC=11]=\"CDC\",e[e.Colon=12]=\"Colon\",e[e.SemiColon=13]=\"SemiColon\",e[e.CurlyL=14]=\"CurlyL\",e[e.CurlyR=15]=\"CurlyR\",e[e.ParenthesisL=16]=\"ParenthesisL\",e[e.ParenthesisR=17]=\"ParenthesisR\",e[e.BracketL=18]=\"BracketL\",e[e.BracketR=19]=\"BracketR\",e[e.Whitespace=20]=\"Whitespace\",e[e.Includes=21]=\"Includes\",e[e.Dashmatch=22]=\"Dashmatch\",e[e.SubstringOperator=23]=\"SubstringOperator\",e[e.PrefixOperator=24]=\"PrefixOperator\",e[e.SuffixOperator=25]=\"SuffixOperator\",e[e.Delim=26]=\"Delim\",e[e.EMS=27]=\"EMS\",e[e.EXS=28]=\"EXS\",e[e.Length=29]=\"Length\",e[e.Angle=30]=\"Angle\",e[e.Time=31]=\"Time\",e[e.Freq=32]=\"Freq\",e[e.Exclamation=33]=\"Exclamation\",e[e.Resolution=34]=\"Resolution\",e[e.Comma=35]=\"Comma\",e[e.Charset=36]=\"Charset\",e[e.EscapedJavaScript=37]=\"EscapedJavaScript\",e[e.BadEscapedJavaScript=38]=\"BadEscapedJavaScript\",e[e.Comment=39]=\"Comment\",e[e.SingleLineComment=40]=\"SingleLineComment\",e[e.EOF=41]=\"EOF\",e[e.CustomToken=42]=\"CustomToken\"}(n=t.TokenType||(t.TokenType={}));var r=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}();t.MultiLineStream=r;var i=\"a\".charCodeAt(0),o=\"f\".charCodeAt(0),s=\"z\".charCodeAt(0),a=\"A\".charCodeAt(0),l=\"F\".charCodeAt(0),c=\"Z\".charCodeAt(0),d=\"0\".charCodeAt(0),p=\"9\".charCodeAt(0),h=\"~\".charCodeAt(0),m=\"^\".charCodeAt(0),u=\"=\".charCodeAt(0),f=\"|\".charCodeAt(0),g=\"-\".charCodeAt(0),b=\"_\".charCodeAt(0),y=\"%\".charCodeAt(0),v=\"*\".charCodeAt(0),w=\"(\".charCodeAt(0),x=\")\".charCodeAt(0),S=\"<\".charCodeAt(0),k=\">\".charCodeAt(0),C=\"@\".charCodeAt(0),T=\"#\".charCodeAt(0),F=\"$\".charCodeAt(0),E=\"\\\\\".charCodeAt(0),D=\"/\".charCodeAt(0),R=\"\\n\".charCodeAt(0),z=\"\\r\".charCodeAt(0),_=\"\\f\".charCodeAt(0),I='\"'.charCodeAt(0),N=\"'\".charCodeAt(0),P=\" \".charCodeAt(0),M=\"\\t\".charCodeAt(0),A=\";\".charCodeAt(0),O=\":\".charCodeAt(0),W=\"{\".charCodeAt(0),L=\"}\".charCodeAt(0),j=\"[\".charCodeAt(0),U=\"]\".charCodeAt(0),V=\",\".charCodeAt(0),K=\".\".charCodeAt(0),q=\"!\".charCodeAt(0),B={};B[A]=n.SemiColon,B[O]=n.Colon,B[W]=n.CurlyL,B[L]=n.CurlyR,B[U]=n.BracketR,B[j]=n.BracketL,B[w]=n.ParenthesisL,B[x]=n.ParenthesisR,B[V]=n.Comma;var $={};$.em=n.EMS,$.ex=n.EXS,$.px=n.Length,$.cm=n.Length,$.mm=n.Length,$.in=n.Length,$.pt=n.Length,$.pc=n.Length,$.deg=n.Angle,$.rad=n.Angle,$.grad=n.Angle,$.ms=n.Time,$.s=n.Time,$.hz=n.Freq,$.khz=n.Freq,$[\"%\"]=n.Percentage,$.fr=n.Percentage,$.dpi=n.Resolution,$.dpcm=n.Resolution;var G=function(){function e(){this.stream=new r(\"\"),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}return e.prototype.setSource=function(e){this.stream=new r(e)},e.prototype.finishToken=function(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}},e.prototype.substring=function(e,t){return this.stream.substring(e,e+t)},e.prototype.pos=function(){return this.stream.pos()},e.prototype.goBackTo=function(e){this.stream.goBackTo(e)},e.prototype.scanUnquotedString=function(){var e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,n.UnquotedString,t.join(\"\")):null},e.prototype.scan=function(){var e=this.trivia();if(null!==e)return e;var t=this.stream.pos();return this.stream.eos()?this.finishToken(t,n.EOF):this.scanNext(t)},e.prototype.scanNext=function(e){if(this.stream.advanceIfChars([S,q,g,g]))return this.finishToken(e,n.CDO);if(this.stream.advanceIfChars([g,g,k]))return this.finishToken(e,n.CDC);var t=[];if(this.ident(t))return this.finishToken(e,n.Ident,t.join(\"\"));if(this.stream.advanceIfChar(C)){if(t=[\"@\"],this._name(t)){var r=t.join(\"\");return\"@charset\"===r?this.finishToken(e,n.Charset,r):this.finishToken(e,n.AtKeyword,r)}return this.finishToken(e,n.Delim)}if(this.stream.advanceIfChar(T))return t=[\"#\"],this._name(t)?this.finishToken(e,n.Hash,t.join(\"\")):this.finishToken(e,n.Delim);if(this.stream.advanceIfChar(q))return this.finishToken(e,n.Exclamation);if(this._number()){var i=this.stream.pos();if(t=[this.stream.substring(e,i)],this.stream.advanceIfChar(y))return this.finishToken(e,n.Percentage);if(this.ident(t)){var o=this.stream.substring(i).toLowerCase(),s=$[o];return void 0!==s?this.finishToken(e,s,t.join(\"\")):this.finishToken(e,n.Dimension,t.join(\"\"))}return this.finishToken(e,n.Num)}t=[];var a=this._string(t);return null!==a?this.finishToken(e,a,t.join(\"\")):void 0!==(a=B[this.stream.peekChar()])?(this.stream.advance(1),this.finishToken(e,a)):this.stream.peekChar(0)===h&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Includes)):this.stream.peekChar(0)===f&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Dashmatch)):this.stream.peekChar(0)===v&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SubstringOperator)):this.stream.peekChar(0)===m&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.PrefixOperator)):this.stream.peekChar(0)===F&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SuffixOperator)):(this.stream.nextChar(),this.finishToken(e,n.Delim))},e.prototype._matchWordAnyCase=function(e){var t=0;return this.stream.advanceWhileChar((function(n){var r=e[t]===n||e[t+1]===n;return r&&(t+=2),r})),t===e.length||(this.stream.goBack(t/2),!1)},e.prototype.trivia=function(){for(;;){var e=this.stream.pos();if(this._whitespace()){if(!this.ignoreWhitespace)return this.finishToken(e,n.Whitespace)}else{if(!this.comment())return null;if(!this.ignoreComment)return this.finishToken(e,n.Comment)}}},e.prototype.comment=function(){if(this.stream.advanceIfChars([D,v])){var e=!1,t=!1;return this.stream.advanceWhileChar((function(n){return t&&n===D?(e=!0,!1):(t=n===v,!0)})),e&&this.stream.advance(1),!0}return!1},e.prototype._number=function(){var e,t=0;return this.stream.peekChar()===K&&(t=1),(e=this.stream.peekChar(t))>=d&&e<=p&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=d&&e<=p||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case z:case _:case R:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===z&&this.stream.advanceIfChar(R)&&e.push(\"\\n\"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===E){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=d&&n<=p||n>=i&&n<=o||n>=a&&n<=l);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-r),16);s&&e.push(String.fromCharCode(s))}catch(e){}return n===P||n===M?this.stream.advance(1):this._newline([]),!0}if(n!==z&&n!==_&&n!==R)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==E&&n!==z&&n!==_&&n!==R&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===N||this.stream.peekChar()===I){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),n.String):n.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==E&&t!==N&&t!==I&&t!==w&&t!==x&&t!==P&&t!==M&&t!==R&&t!==_&&t!==z&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===P||e===M||e===R||e===_||e===z}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===b||t>=i&&t<=s||t>=a&&t<=c||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===g&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===b||t===g||t>=i&&t<=s||t>=a&&t<=c||t>=d&&t<=p||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();t.Scanner=G}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssNodes\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;function r(e,t){var n=null;return!e||t<e.offset||t>e.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Undefined=0]=\"Undefined\",e[e.Identifier=1]=\"Identifier\",e[e.Stylesheet=2]=\"Stylesheet\",e[e.Ruleset=3]=\"Ruleset\",e[e.Selector=4]=\"Selector\",e[e.SimpleSelector=5]=\"SimpleSelector\",e[e.SelectorInterpolation=6]=\"SelectorInterpolation\",e[e.SelectorCombinator=7]=\"SelectorCombinator\",e[e.SelectorCombinatorParent=8]=\"SelectorCombinatorParent\",e[e.SelectorCombinatorSibling=9]=\"SelectorCombinatorSibling\",e[e.SelectorCombinatorAllSiblings=10]=\"SelectorCombinatorAllSiblings\",e[e.SelectorCombinatorShadowPiercingDescendant=11]=\"SelectorCombinatorShadowPiercingDescendant\",e[e.Page=12]=\"Page\",e[e.PageBoxMarginBox=13]=\"PageBoxMarginBox\",e[e.ClassSelector=14]=\"ClassSelector\",e[e.IdentifierSelector=15]=\"IdentifierSelector\",e[e.ElementNameSelector=16]=\"ElementNameSelector\",e[e.PseudoSelector=17]=\"PseudoSelector\",e[e.AttributeSelector=18]=\"AttributeSelector\",e[e.Declaration=19]=\"Declaration\",e[e.Declarations=20]=\"Declarations\",e[e.Property=21]=\"Property\",e[e.Expression=22]=\"Expression\",e[e.BinaryExpression=23]=\"BinaryExpression\",e[e.Term=24]=\"Term\",e[e.Operator=25]=\"Operator\",e[e.Value=26]=\"Value\",e[e.StringLiteral=27]=\"StringLiteral\",e[e.URILiteral=28]=\"URILiteral\",e[e.EscapedValue=29]=\"EscapedValue\",e[e.Function=30]=\"Function\",e[e.NumericValue=31]=\"NumericValue\",e[e.HexColorValue=32]=\"HexColorValue\",e[e.MixinDeclaration=33]=\"MixinDeclaration\",e[e.MixinReference=34]=\"MixinReference\",e[e.VariableName=35]=\"VariableName\",e[e.VariableDeclaration=36]=\"VariableDeclaration\",e[e.Prio=37]=\"Prio\",e[e.Interpolation=38]=\"Interpolation\",e[e.NestedProperties=39]=\"NestedProperties\",e[e.ExtendsReference=40]=\"ExtendsReference\",e[e.SelectorPlaceholder=41]=\"SelectorPlaceholder\",e[e.Debug=42]=\"Debug\",e[e.If=43]=\"If\",e[e.Else=44]=\"Else\",e[e.For=45]=\"For\",e[e.Each=46]=\"Each\",e[e.While=47]=\"While\",e[e.MixinContent=48]=\"MixinContent\",e[e.Media=49]=\"Media\",e[e.Keyframe=50]=\"Keyframe\",e[e.FontFace=51]=\"FontFace\",e[e.Import=52]=\"Import\",e[e.Namespace=53]=\"Namespace\",e[e.Invocation=54]=\"Invocation\",e[e.FunctionDeclaration=55]=\"FunctionDeclaration\",e[e.ReturnStatement=56]=\"ReturnStatement\",e[e.MediaQuery=57]=\"MediaQuery\",e[e.FunctionParameter=58]=\"FunctionParameter\",e[e.FunctionArgument=59]=\"FunctionArgument\",e[e.KeyframeSelector=60]=\"KeyframeSelector\",e[e.ViewPort=61]=\"ViewPort\",e[e.Document=62]=\"Document\",e[e.AtApplyRule=63]=\"AtApplyRule\",e[e.CustomPropertyDeclaration=64]=\"CustomPropertyDeclaration\",e[e.CustomPropertySet=65]=\"CustomPropertySet\",e[e.ListEntry=66]=\"ListEntry\",e[e.Supports=67]=\"Supports\",e[e.SupportsCondition=68]=\"SupportsCondition\",e[e.NamespacePrefix=69]=\"NamespacePrefix\",e[e.GridLine=70]=\"GridLine\",e[e.Plugin=71]=\"Plugin\",e[e.UnknownAtRule=72]=\"UnknownAtRule\",e[e.Use=73]=\"Use\",e[e.ModuleConfiguration=74]=\"ModuleConfiguration\",e[e.Forward=75]=\"Forward\",e[e.ForwardVisibility=76]=\"ForwardVisibility\",e[e.Module=77]=\"Module\"}(n=t.NodeType||(t.NodeType={})),function(e){e[e.Mixin=0]=\"Mixin\",e[e.Rule=1]=\"Rule\",e[e.Variable=2]=\"Variable\",e[e.Function=3]=\"Function\",e[e.Keyframe=4]=\"Keyframe\",e[e.Unknown=5]=\"Unknown\",e[e.Module=6]=\"Module\",e[e.Forward=7]=\"Forward\",e[e.ForwardVisibility=8]=\"ForwardVisibility\"}(t.ReferenceType||(t.ReferenceType={})),t.getNodeAtOffset=r,t.getNodePath=function(e,t){for(var n=r(e,t),i=[];n;)i.unshift(n),n=n.parent;return i},t.getParentDeclaration=function(e){var t=e.findParent(n.Declaration),r=t&&t.getValue();return r&&r.encloses(e)?t:null};var i=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,\"end\",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"type\",{get:function(){return this.nodeType||n.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return\"unknown\"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t<n.length;t++){n[t].accept(e)}},e.prototype.acceptVisitor=function(e){this.accept(e.visitNode.bind(e))},e.prototype.adoptChild=function(e,t){if(void 0===t&&(t=-1),e.parent&&e.parent.children){var n=e.parent.children.indexOf(e);n>=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offset<this.offset||-1===this.offset)&&(this.offset=e.offset);var t=e.end;(t>this.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e<this.children.length?this.children[e]:null},e.prototype.addChildren=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.addChild(r)}},e.prototype.findFirstChildBeforeOffset=function(e){if(this.children)for(var t=null,n=this.children.length-1;n>=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof o;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this;n&&!e.some((function(e){return n.type===e}));)n=n.parent;return n},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}();t.Node=i;var o=function(e){function t(t,n){void 0===n&&(n=-1);var r=e.call(this,-1,-1)||this;return r.attachTo(t,n),r.offset=-1,r.length=-1,r}return __extends(t,e),t}(i);t.Nodelist=o;var s=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.isCustomProperty=!1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Identifier},enumerable:!0,configurable:!0}),t.prototype.containsInterpolation=function(){return this.hasChildren()},t}(i);t.Identifier=s;var a=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Stylesheet},enumerable:!0,configurable:!0}),t}(i);t.Stylesheet=a;var l=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declarations},enumerable:!0,configurable:!0}),t}(i);t.Declarations=l;var c=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getDeclarations=function(){return this.declarations},t.prototype.setDeclarations=function(e){return this.setNode(\"declarations\",e)},t}(i);t.BodyDeclaration=c;var d=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Ruleset},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(n.Declarations)},t}(c);t.RuleSet=d;var p=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Selector},enumerable:!0,configurable:!0}),t}(i);t.Selector=p;var h=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SimpleSelector},enumerable:!0,configurable:!0}),t}(i);t.SimpleSelector=h;var m=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AtApplyRule},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(i);t.AtApplyRule=m;var u=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t}(i);t.AbstractDeclaration=u;var f=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertyDeclaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setPropertySet=function(e){return this.setNode(\"propertySet\",e)},t.prototype.getPropertySet=function(){return this.propertySet},t}(u);t.CustomPropertyDeclaration=f;var g=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertySet},enumerable:!0,configurable:!0}),t}(c);t.CustomPropertySet=g;var b=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.property=null,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():\"unknown\";if(this.parent instanceof l&&this.parent.getParent()instanceof _){var n=this.parent.getParent().getParent();if(n instanceof t)return n.getFullPropertyName()+e}return e},t.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&\"-\"===e.charAt(0)){var t=e.indexOf(\"-\",1);if(-1!==t)return e.substring(t+1)}return e},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setNestedProperties=function(e){return this.setNode(\"nestedProperties\",e)},t.prototype.getNestedProperties=function(){return this.nestedProperties},t}(u);t.Declaration=b;var y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Property},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.getText()},t.prototype.isCustomProperty=function(){return!!this.identifier&&this.identifier.isCustomProperty},t}(i);t.Property=y;var v=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Invocation},enumerable:!0,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t}(i);t.Invocation=v;var w=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Function},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(v);t.Function=w;var x=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionParameter},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setDefaultValue=function(e){return this.setNode(\"defaultValue\",e,0)},t.prototype.getDefaultValue=function(){return this.defaultValue},t}(i);t.FunctionParameter=x;var S=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionArgument},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.FunctionArgument=S;var k=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.If},enumerable:!0,configurable:!0}),t.prototype.setExpression=function(e){return this.setNode(\"expression\",e,0)},t.prototype.setElseClause=function(e){return this.setNode(\"elseClause\",e)},t}(c);t.IfStatement=k;var C=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.For},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e,0)},t}(c);t.ForStatement=C;var T=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Each},enumerable:!0,configurable:!0}),t.prototype.getVariables=function(){return this.variables||(this.variables=new o(this)),this.variables},t}(c);t.EachStatement=T;var F=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.While},enumerable:!0,configurable:!0}),t}(c);t.WhileStatement=F;var E=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Else},enumerable:!0,configurable:!0}),t}(c);t.ElseStatement=E;var D=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t}(c);t.FunctionDeclaration=D;var R=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ViewPort},enumerable:!0,configurable:!0}),t}(c);t.ViewPort=R;var z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FontFace},enumerable:!0,configurable:!0}),t}(c);t.FontFace=z;var _=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NestedProperties},enumerable:!0,configurable:!0}),t}(c);t.NestedProperties=_;var I=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Keyframe},enumerable:!0,configurable:!0}),t.prototype.setKeyword=function(e){return this.setNode(\"keyword\",e,0)},t.prototype.getKeyword=function(){return this.keyword},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(c);t.Keyframe=I;var N=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.KeyframeSelector},enumerable:!0,configurable:!0}),t}(c);t.KeyframeSelector=N;var P=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Import},enumerable:!0,configurable:!0}),t.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),!0)},t}(i);t.Import=P;var M=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Use},enumerable:!0,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Use=M;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ModuleConfiguration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.ModuleConfiguration=A;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Forward},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Forward=O;var W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ForwardVisibility},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.ForwardVisibility=W;var L=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Namespace},enumerable:!0,configurable:!0}),t}(i);t.Namespace=L;var j=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Media},enumerable:!0,configurable:!0}),t}(c);t.Media=j;var U=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Supports},enumerable:!0,configurable:!0}),t}(c);t.Supports=U;var V=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Document},enumerable:!0,configurable:!0}),t}(c);t.Document=V;var K=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getMediums=function(){return this.mediums||(this.mediums=new o(this)),this.mediums},t}(i);t.Medialist=K;var q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MediaQuery},enumerable:!0,configurable:!0}),t}(i);t.MediaQuery=q;var B=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SupportsCondition},enumerable:!0,configurable:!0}),t}(i);t.SupportsCondition=B;var $=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Page},enumerable:!0,configurable:!0}),t}(c);t.Page=$;var G=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.PageBoxMarginBox},enumerable:!0,configurable:!0}),t}(c);t.PageBoxMarginBox=G;var H=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Expression},enumerable:!0,configurable:!0}),t}(i);t.Expression=H;var J=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.BinaryExpression},enumerable:!0,configurable:!0}),t.prototype.setLeft=function(e){return this.setNode(\"left\",e)},t.prototype.getLeft=function(){return this.left},t.prototype.setRight=function(e){return this.setNode(\"right\",e)},t.prototype.getRight=function(){return this.right},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t}(i);t.BinaryExpression=J;var X=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Term},enumerable:!0,configurable:!0}),t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setExpression=function(e){return this.setNode(\"expression\",e)},t.prototype.getExpression=function(){return this.expression},t}(i);t.Term=X;var Y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AttributeSelector},enumerable:!0,configurable:!0}),t.prototype.setNamespacePrefix=function(e){return this.setNode(\"namespacePrefix\",e)},t.prototype.getNamespacePrefix=function(){return this.namespacePrefix},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t}(i);t.AttributeSelector=Y;var Z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Operator},enumerable:!0,configurable:!0}),t}(i);t.Operator=Z;var Q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.HexColorValue},enumerable:!0,configurable:!0}),t}(i);t.HexColorValue=Q;var ee=\".\".charCodeAt(0),te=\"0\".charCodeAt(0),ne=\"9\".charCodeAt(0),re=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NumericValue},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=0,i=t.length;r<i&&(e=t.charCodeAt(r),te<=e&&e<=ne||e===ee);r++)n+=1;return{value:t.substring(0,n),unit:n<t.length?t.substring(n):void 0}},t}(i);t.NumericValue=re;var ie=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.variable=null,r.value=null,r.needsSemicolon=!0,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableDeclaration},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return!!e&&(e.attachTo(this),this.variable=e,!0)},t.prototype.getVariable=function(){return this.variable},t.prototype.getName=function(){return this.variable?this.variable.getName():\"\"},t.prototype.setValue=function(e){return!!e&&(e.attachTo(this),this.value=e,!0)},t.prototype.getValue=function(){return this.value},t}(u);t.VariableDeclaration=ie;var oe=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Interpolation},enumerable:!0,configurable:!0}),t}(i);t.Interpolation=oe;var se=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableName},enumerable:!0,configurable:!0}),t.prototype.getName=function(){return this.getText()},t}(i);t.Variable=se;var ae=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ExtendsReference},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t}(i);t.ExtendsReference=ae;var le=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinReference},enumerable:!0,configurable:!0}),t.prototype.getNamespaces=function(){return this.namespaces||(this.namespaces=new o(this)),this.namespaces},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t.prototype.setContent=function(e){return this.setNode(\"content\",e)},t.prototype.getContent=function(){return this.content},t}(i);t.MixinReference=le;var ce=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setGuard=function(e){return e&&(e.attachTo(this),this.guard=e),!1},t}(c);t.MixinDeclaration=ce;var de=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.UnknownAtRule},enumerable:!0,configurable:!0}),t.prototype.setAtRuleName=function(e){this.atRuleName=e},t.prototype.getAtRuleName=function(){return this.atRuleName},t}(c);t.UnknownAtRule=de;var pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ListEntry},enumerable:!0,configurable:!0}),t.prototype.setKey=function(e){return this.setNode(\"key\",e,0)},t.prototype.setValue=function(e){return this.setNode(\"value\",e,1)},t}(i);t.ListEntry=pe;var he=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.getConditions=function(){return this.conditions||(this.conditions=new o(this)),this.conditions},t}(i);t.LessGuard=he;var me=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e)},t}(i);t.GuardCondition=me;var ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Module},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Module=ue,function(e){e[e.Ignore=1]=\"Ignore\",e[e.Warning=2]=\"Warning\",e[e.Error=4]=\"Error\"}(t.Level||(t.Level={}));var fe=function(){function e(e,t,n,r,i,o){void 0===i&&(i=e.offset),void 0===o&&(o=e.length),this.node=e,this.rule=t,this.level=n,this.message=r||t.message,this.offset=i,this.length=o}return e.prototype.getRule=function(){return this.rule},e.prototype.getLevel=function(){return this.level},e.prototype.getOffset=function(){return this.offset},e.prototype.getLength=function(){return this.length},e.prototype.getNode=function(){return this.node},e.prototype.getMessage=function(){return this.message},e}();t.Marker=fe;var ge=function(){function e(){this.entries=[]}return e.entries=function(t){var n=new e;return t.acceptVisitor(n),n.entries},e.prototype.visitNode=function(e){return e.isErroneous()&&e.collectIssues(this.entries),!0},e}();t.ParseErrorCollector=ge})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return n(t,r)}function i(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=i,t.config=function(e){return i}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.CSSIssueType=r,t.ParseError={NumberExpected:new r(\"css-numberexpected\",n(\"expected.number\",\"number expected\")),ConditionExpected:new r(\"css-conditionexpected\",n(\"expected.condt\",\"condition expected\")),RuleOrSelectorExpected:new r(\"css-ruleorselectorexpected\",n(\"expected.ruleorselector\",\"at-rule or selector expected\")),DotExpected:new r(\"css-dotexpected\",n(\"expected.dot\",\"dot expected\")),ColonExpected:new r(\"css-colonexpected\",n(\"expected.colon\",\"colon expected\")),SemiColonExpected:new r(\"css-semicolonexpected\",n(\"expected.semicolon\",\"semi-colon expected\")),TermExpected:new r(\"css-termexpected\",n(\"expected.term\",\"term expected\")),ExpressionExpected:new r(\"css-expressionexpected\",n(\"expected.expression\",\"expression expected\")),OperatorExpected:new r(\"css-operatorexpected\",n(\"expected.operator\",\"operator expected\")),IdentifierExpected:new r(\"css-identifierexpected\",n(\"expected.ident\",\"identifier expected\")),PercentageExpected:new r(\"css-percentageexpected\",n(\"expected.percentage\",\"percentage expected\")),URIOrStringExpected:new r(\"css-uriorstringexpected\",n(\"expected.uriorstring\",\"uri or string expected\")),URIExpected:new r(\"css-uriexpected\",n(\"expected.uri\",\"URI expected\")),VariableNameExpected:new r(\"css-varnameexpected\",n(\"expected.varname\",\"variable name expected\")),VariableValueExpected:new r(\"css-varvalueexpected\",n(\"expected.varvalue\",\"variable value expected\")),PropertyValueExpected:new r(\"css-propertyvalueexpected\",n(\"expected.propvalue\",\"property value expected\")),LeftCurlyExpected:new r(\"css-lcurlyexpected\",n(\"expected.lcurly\",\"{ expected\")),RightCurlyExpected:new r(\"css-rcurlyexpected\",n(\"expected.rcurly\",\"} expected\")),LeftSquareBracketExpected:new r(\"css-rbracketexpected\",n(\"expected.lsquare\",\"[ expected\")),RightSquareBracketExpected:new r(\"css-lbracketexpected\",n(\"expected.rsquare\",\"] expected\")),LeftParenthesisExpected:new r(\"css-lparentexpected\",n(\"expected.lparen\",\"( expected\")),RightParenthesisExpected:new r(\"css-rparentexpected\",n(\"expected.rparent\",\") expected\")),CommaExpected:new r(\"css-commaexpected\",n(\"expected.comma\",\"comma expected\")),PageDirectiveOrDeclarationExpected:new r(\"css-pagedirordeclexpected\",n(\"expected.pagedirordecl\",\"page directive or declaraton expected\")),UnknownAtRule:new r(\"css-unknownatrule\",n(\"unknown.atrule\",\"at-rule unknown\")),UnknownKeyword:new r(\"css-unknownkeyword\",n(\"unknown.keyword\",\"unknown keyword\")),SelectorExpected:new r(\"css-selectorexpected\",n(\"expected.selector\",\"selector expected\")),StringLiteralExpected:new r(\"css-stringliteralexpected\",n(\"expected.stringliteral\",\"string literal expected\")),WhitespaceExpected:new r(\"css-whitespaceexpected\",n(\"expected.whitespace\",\"whitespace expected\")),MediaQueryExpected:new r(\"css-mediaqueryexpected\",n(\"expected.mediaquery\",\"media query expected\")),IdentifierOrWildcardExpected:new r(\"css-idorwildcardexpected\",n(\"expected.idorwildcard\",\"identifier or wildcard expected\")),WildcardExpected:new r(\"css-wildcardexpected\",n(\"expected.wildcard\",\"wildcard expected\")),IdentifierOrVariableExpected:new r(\"css-idorvarexpected\",n(\"expected.idorvar\",\"identifier or variable expected\"))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.cssData={version:1.1,properties:[{name:\"width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/width\"}],description:\"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"height\",values:[{name:\"auto\",description:\"The height depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/height\"}],description:\"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"display\",values:[{name:\"block\",description:\"The element generates a block-level box\"},{name:\"contents\",description:\"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal.\"},{name:\"flex\",description:\"The element generates a principal flex container box and establishes a flex formatting context.\"},{name:\"flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"flow-root\",description:\"The element generates a block container box, and lays out its contents using flow layout.\"},{name:\"grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"inline\",description:\"The element generates an inline-level box.\"},{name:\"inline-block\",description:\"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box.\"},{name:\"inline-flex\",description:\"Inline-level flex container.\"},{name:\"inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"inline-table\",description:\"Inline-level table wrapper box containing table box.\"},{name:\"list-item\",description:\"One or more block boxes and one marker box.\"},{name:\"-moz-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-moz-deck\"},{name:\"-moz-grid\"},{name:\"-moz-grid-group\"},{name:\"-moz-grid-line\"},{name:\"-moz-groupbox\"},{name:\"-moz-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-moz-inline-grid\"},{name:\"-moz-inline-stack\"},{name:\"-moz-marker\"},{name:\"-moz-popup\"},{name:\"-moz-stack\"},{name:\"-ms-flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-ms-grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"-ms-inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-ms-inline-grid\",description:\"Inline-level grid container.\"},{name:\"none\",description:\"The element and its descendants generates no boxes.\"},{name:\"ruby\",description:\"The element generates a principal ruby container box, and establishes a ruby formatting context.\"},{name:\"ruby-base\"},{name:\"ruby-base-container\"},{name:\"ruby-text\"},{name:\"ruby-text-container\"},{name:\"run-in\",description:\"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements.\"},{name:\"table\",description:\"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context.\"},{name:\"table-caption\"},{name:\"table-cell\"},{name:\"table-column\"},{name:\"table-column-group\"},{name:\"table-footer-group\"},{name:\"table-header-group\"},{name:\"table-row\"},{name:\"table-row-group\"},{name:\"-webkit-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-webkit-flex\",description:\"The element lays out its contents using flow layout (block-and-inline layout).\"},{name:\"-webkit-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-webkit-inline-flex\",description:\"Inline-level flex container.\"}],syntax:\"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/display\"}],description:\"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.\",restrictions:[\"enum\"]},{name:\"padding\",values:[],syntax:\"[ <length> | <percentage> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"position\",values:[{name:\"absolute\",description:\"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'.\"},{name:\"fixed\",description:\"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins.\"},{name:\"-ms-page\",description:\"The box's position is calculated according to the 'absolute' model.\"},{name:\"relative\",description:\"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position.\"},{name:\"static\",description:\"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply.\"},{name:\"sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"},{name:\"-webkit-sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"}],syntax:\"static | relative | absolute | sticky | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/position\"}],restrictions:[\"enum\"]},{name:\"border\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border\"}],description:\"Shorthand property for setting border width, style, and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"margin\",values:[{name:\"auto\"}],syntax:\"[ <length> | <percentage> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.\",restrictions:[\"length\",\"percentage\"]},{name:\"top\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/top\"}],description:\"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"left\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/left\"}],description:\"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-top\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-top\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color\"}],description:\"Color of an element's text\",restrictions:[\"color\"]},{name:\"font-size\",values:[{name:\"large\"},{name:\"larger\"},{name:\"medium\"},{name:\"small\"},{name:\"smaller\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"<absolute-size> | <relative-size> | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size\"}],description:\"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-color\"}],description:\"Sets the background color of an element.\",restrictions:[\"color\"]},{name:\"text-align\",values:[{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"end\",description:\"The inline contents are aligned to the end edge of the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"},{name:\"start\",description:\"The inline contents are aligned to the start edge of the line box.\"}],syntax:\"start | end | left | right | center | justify | match-parent\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align\"}],description:\"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.\",restrictions:[\"string\"]},{name:\"opacity\",syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/opacity\"}],description:\"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.\",restrictions:[\"number(0-1)\"]},{name:\"background\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"},{name:\"none\",description:\"A value of 'none' counts as an image layer but draws nothing.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"}],syntax:\"[ <bg-layer> , ]* <final-bg-layer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background\"}],description:\"Shorthand property for setting most background properties at the same place in the style sheet.\",restrictions:[\"enum\",\"image\",\"color\",\"position\",\"length\",\"repeat\",\"percentage\",\"box\"]},{name:\"float\",values:[{name:\"inline-end\",description:\"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts.\"},{name:\"inline-start\",description:\"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts.\"},{name:\"left\",description:\"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property).\"},{name:\"none\",description:\"The box is not floated.\"},{name:\"right\",description:\"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top.\"}],syntax:\"left | right | none | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/float\"}],description:\"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.\",restrictions:[\"enum\"]},{name:\"font-weight\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"normal\",description:\"Same as 400\"}],syntax:\"<font-weight-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-weight\"}],description:\"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.\",restrictions:[\"enum\"]},{name:\"overflow\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"-moz-hidden-unscrollable\",description:\"Same as the standardized 'clip', except doesn’t establish a block formatting context.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"[ visible | hidden | clip | scroll | auto ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow\"}],description:\"Shorthand for setting 'overflow-x' and 'overflow-y'.\",restrictions:[\"enum\"]},{name:\"line-height\",values:[{name:\"normal\",description:\"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element.\"}],syntax:\"normal | <number> | <length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height\"}],description:\"Determines the block-progression dimension of the text content area of an inline box.\",restrictions:[\"number\",\"length\",\"percentage\"]},{name:\"font-family\",values:[{name:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\"},{name:\"Arial, Helvetica, sans-serif\"},{name:\"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"},{name:\"'Courier New', Courier, monospace\"},{name:\"cursive\"},{name:\"fantasy\"},{name:\"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif\"},{name:\"Georgia, 'Times New Roman', Times, serif\"},{name:\"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif\"},{name:\"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif\"},{name:\"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif\"},{name:\"monospace\"},{name:\"sans-serif\"},{name:\"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\"},{name:\"serif\"},{name:\"'Times New Roman', Times, serif\"},{name:\"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif\"},{name:\"Verdana, Geneva, Tahoma, sans-serif\"}],syntax:\"<family-name>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-family\"}],description:\"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.\",restrictions:[\"font\"]},{name:\"text-decoration\",values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"underline\",description:\"Each line of text is underlined.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration\"}],description:\"Decorations applied to font used for an element's text.\",restrictions:[\"enum\",\"color\"]},{name:\"box-sizing\",values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],syntax:\"content-box | border-box\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-sizing\"}],description:\"Specifies the behavior of the 'width' and 'height' properties.\",restrictions:[\"enum\"]},{name:\"z-index\",values:[{name:\"auto\",description:\"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element.\"}],syntax:\"auto | <integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/z-index\"}],description:\"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.\",restrictions:[\"integer\"]},{name:\"vertical-align\",values:[{name:\"auto\",description:\"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box.\"},{name:\"baseline\",description:\"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element.\"},{name:\"bottom\",description:\"Align the after edge of the extended inline box with the after-edge of the line box.\"},{name:\"middle\",description:\"Align the 'middle' baseline of the inline element with the middle baseline of the parent.\"},{name:\"sub\",description:\"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"super\",description:\"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"text-bottom\",description:\"Align the bottom of the box with the after-edge of the parent element's font.\"},{name:\"text-top\",description:\"Align the top of the box with the before-edge of the parent element's font.\"},{name:\"top\",description:\"Align the before edge of the extended inline box with the before-edge of the line box.\"},{name:\"-webkit-baseline-middle\"}],syntax:\"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/vertical-align\"}],description:\"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-radius\",syntax:\"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-radius\"}],description:\"Defines the radii of the outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-left\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-left\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"cursor\",values:[{name:\"alias\",description:\"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.\"},{name:\"all-scroll\",description:\"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.\"},{name:\"auto\",description:\"The UA determines the cursor to display based on the current context.\"},{name:\"cell\",description:\"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.\"},{name:\"col-resize\",description:\"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.\"},{name:\"context-menu\",description:\"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.\"},{name:\"copy\",description:\"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.\"},{name:\"crosshair\",description:\"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode.\"},{name:\"default\",description:\"The platform-dependent default cursor. Often rendered as an arrow.\"},{name:\"e-resize\",description:\"Indicates that east edge is to be moved.\"},{name:\"ew-resize\",description:\"Indicates a bidirectional east-west resize cursor.\"},{name:\"grab\",description:\"Indicates that something can be grabbed.\"},{name:\"grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"help\",description:\"Help is available for the object under the cursor. Often rendered as a question mark or a balloon.\"},{name:\"move\",description:\"Indicates something is to be moved.\"},{name:\"-moz-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-moz-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-moz-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-moz-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"ne-resize\",description:\"Indicates that movement starts from north-east corner.\"},{name:\"nesw-resize\",description:\"Indicates a bidirectional north-east/south-west cursor.\"},{name:\"no-drop\",description:\"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.\"},{name:\"none\",description:\"No cursor is rendered for the element.\"},{name:\"not-allowed\",description:\"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.\"},{name:\"n-resize\",description:\"Indicates that north edge is to be moved.\"},{name:\"ns-resize\",description:\"Indicates a bidirectional north-south cursor.\"},{name:\"nw-resize\",description:\"Indicates that movement starts from north-west corner.\"},{name:\"nwse-resize\",description:\"Indicates a bidirectional north-west/south-east cursor.\"},{name:\"pointer\",description:\"The cursor is a pointer that indicates a link.\"},{name:\"progress\",description:\"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.\"},{name:\"row-resize\",description:\"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.\"},{name:\"se-resize\",description:\"Indicates that movement starts from south-east corner.\"},{name:\"s-resize\",description:\"Indicates that south edge is to be moved.\"},{name:\"sw-resize\",description:\"Indicates that movement starts from south-west corner.\"},{name:\"text\",description:\"Indicates text that may be selected. Often rendered as a vertical I-beam.\"},{name:\"vertical-text\",description:\"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.\"},{name:\"wait\",description:\"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.\"},{name:\"-webkit-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-webkit-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-webkit-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-webkit-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"w-resize\",description:\"Indicates that west edge is to be moved.\"},{name:\"zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"}],syntax:\"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/cursor\"}],description:\"Allows control over cursor appearance in an element\",restrictions:[\"url\",\"number\",\"enum\"]},{name:\"margin-bottom\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-bottom\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"right\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/right\"}],description:\"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-right\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-right\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-left\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-left\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-top\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-top\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-width\",values:[{name:\"none\",description:\"No limit on the width of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"bottom\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/bottom\"}],description:\"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-image\",values:[{name:\"none\",description:\"Counts as an image layer but draws nothing.\"}],syntax:\"<bg-image>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-image\"}],description:\"Sets the background image(s) of an element.\",restrictions:[\"image\",\"enum\"]},{name:\"content\",values:[{name:\"attr()\",description:\"The attr(n) function returns as a string the value of attribute n for the subject of the selector.\"},{name:\"counter(name)\",description:\"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties).\"},{name:\"icon\",description:\"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element.\"},{name:\"none\",description:\"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content.\"},{name:\"normal\",description:\"See http://www.w3.org/TR/css3-content/#content for computation rules.\"},{name:\"url()\"}],syntax:\"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/content\"}],description:\"Determines which page-based occurrence of a given element is applied to a counter or string value.\",restrictions:[\"string\",\"url\"]},{name:\"padding-right\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-right\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"white-space\",values:[{name:\"normal\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'normal'.\"},{name:\"nowrap\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'none'.\"},{name:\"pre\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'none'.\"},{name:\"pre-line\",description:\"Sets 'white-space-collapsing' to 'preserve-breaks' and 'text-wrap' to 'normal'.\"},{name:\"pre-wrap\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'normal'.\"}],syntax:\"normal | pre | nowrap | pre-wrap | pre-line | break-spaces\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/white-space\"}],description:\"Shorthand property for the 'white-space-collapsing' and 'text-wrap' properties.\",restrictions:[\"enum\"]},{name:\"padding-bottom\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-bottom\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-bottom\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom\"}],description:\"Shorthand property for setting border width, style and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"box-shadow\",values:[{name:\"inset\",description:\"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).\"},{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-shadow\"}],description:\"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.\",restrictions:[\"length\",\"color\",\"enum\"]},{name:\"transform\",values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],syntax:\"none | <transform-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"min-height\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"visibility\",values:[{name:\"collapse\",description:\"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.\"},{name:\"hidden\",description:\"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.\"},{name:\"visible\",description:\"The generated box is visible.\"}],syntax:\"visible | hidden | collapse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/visibility\"}],description:\"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the ‘display’ property to ‘none’ to suppress box generation altogether).\",restrictions:[\"enum\"]},{name:\"background-position\",syntax:\"<bg-position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position\"}],description:\"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"min-width\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"outline\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"},{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline\"}],description:\"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\",\"enum\"]},{name:\"transition\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"<single-transition>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"clear\",values:[{name:\"both\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"left\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"none\",description:\"No constraint on the box's position with respect to floats.\"},{name:\"right\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document.\"}],syntax:\"none | left | right | both | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clear\"}],description:\"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.\",restrictions:[\"enum\"]},{name:\"border-color\",values:[],syntax:\"<color>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-color\"}],description:\"The color of the border around all four edges of an element.\",restrictions:[\"color\"]},{name:\"background-repeat\",values:[],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-repeat\"}],description:\"Specifies how background images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"background-size\",values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-size\"}],description:\"Specifies the size of the background images.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-transform\",values:[{name:\"capitalize\",description:\"Puts the first typographic letter unit of each word in titlecase.\"},{name:\"lowercase\",description:\"Puts all letters in lowercase.\"},{name:\"none\",description:\"No effects.\"},{name:\"uppercase\",description:\"Puts all letters in uppercase.\"}],syntax:\"none | capitalize | uppercase | lowercase | full-width | full-size-kana\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-transform\"}],description:\"Controls capitalization effects of an element’s text.\",restrictions:[\"enum\"]},{name:\"max-height\",values:[{name:\"none\",description:\"No limit on the height of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"list-style\",values:[{name:\"armenian\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\"},{name:\"decimal-leading-zero\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\"},{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"lower-alpha\"},{name:\"lower-greek\"},{name:\"lower-latin\"},{name:\"lower-roman\"},{name:\"none\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\"},{name:\"upper-latin\"},{name:\"upper-roman\"},{name:\"url()\"}],syntax:\"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style\"}],description:\"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'\",restrictions:[\"image\",\"enum\",\"url\"]},{name:\"font-style\",values:[{name:\"italic\",description:\"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not\"},{name:\"normal\",description:\"Selects a face that is classified as 'normal'.\"},{name:\"oblique\",description:\"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not.\"}],syntax:\"normal | italic | oblique <angle>{0,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-style\"}],description:\"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.\",restrictions:[\"enum\"]},{name:\"font\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"caption\",description:\"The font used for captioned controls (e.g., buttons, drop-downs, etc.).\"},{name:\"icon\",description:\"The font used to label icons.\"},{name:\"italic\",description:\"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'.\"},{name:\"large\"},{name:\"larger\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"medium\"},{name:\"menu\",description:\"The font used in menus (e.g., dropdown menus and menu lists).\"},{name:\"message-box\",description:\"The font used in dialog boxes.\"},{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"oblique\",description:\"Selects a font that is labeled 'oblique'.\"},{name:\"small\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"},{name:\"small-caption\",description:\"The font used for labeling small controls.\"},{name:\"smaller\"},{name:\"status-bar\",description:\"The font used in window status bars.\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font\"}],description:\"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.\",restrictions:[\"font\"]},{name:\"text-overflow\",values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],syntax:\"[ clip | ellipsis | <string> ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-overflow\"}],description:\"Text can overflow for example when it is prevented from wrapping.\",restrictions:[\"enum\",\"string\"]},{name:\"border-left\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-right\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-width\",values:[],syntax:\"<line-width>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-width\"}],description:\"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.\",restrictions:[\"length\",\"line-width\"]},{name:\"justify-content\",values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"start\",description:\"The items are packed flush to each other toward the start edge of the alignment container in the main axis.\"},{name:\"end\",description:\"The items are packed flush to each other toward the end edge of the alignment container in the main axis.\"},{name:\"left\",description:\"The items are packed flush to each other toward the left edge of the alignment container in the main axis.\"},{name:\"right\",description:\"The items are packed flush to each other toward the right edge of the alignment container in the main axis.\"},{name:\"safe\",description:\"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.\"},{name:\"unsafe\",description:\"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored.\"},{name:\"stretch\",description:\"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container.\"},{name:\"space-evenly\",description:\"The items are evenly distributed within the alignment container along the main axis.\"},{name:\"flex-end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"flex-start\",description:\"Flex items are packed toward the start of the line.\"},{name:\"space-around\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Flex items are evenly distributed in the line.\"},{name:\"baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"first baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"last baseline\",description:\"Specifies participation in last-baseline alignment.\"}],syntax:\"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]\",description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"align-items\",values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]\",description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"overflow-y\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-y\"}],description:\"Specifies the handling of overflow in the vertical direction.\",restrictions:[\"enum\"]},{name:\"pointer-events\",values:[{name:\"all\",description:\"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element.\"},{name:\"fill\",description:\"The given element can be the target element for pointer events whenever the pointer is over the interior of the element.\"},{name:\"none\",description:\"The given element does not receive pointer events.\"},{name:\"painted\",description:'The given element can be the target element for pointer events when the pointer is over a \"painted\" area. '},{name:\"stroke\",description:\"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element.\"},{name:\"visible\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and the pointer is over either the interior or the perimete of the element.\"},{name:\"visibleFill\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the interior of the element.\"},{name:\"visiblePainted\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over a ‘painted’ area.\"},{name:\"visibleStroke\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the perimeter of the element.\"}],syntax:\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/pointer-events\"}],description:\"Specifies under what circumstances a given element can be the target element for a pointer event.\",restrictions:[\"enum\"]},{name:\"letter-spacing\",values:[{name:\"normal\",description:\"The spacing is the normal spacing for the current font. It is typically zero-length.\"}],syntax:\"normal | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/letter-spacing\"}],description:\"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.\",restrictions:[\"length\"]},{name:\"border-style\",values:[],syntax:\"<line-style>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-style\"}],description:\"The style of the border around edges of an element.\",restrictions:[\"line-style\"]},{name:\"animation\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"timing-function\",\"enum\",\"identifier\",\"number\"]},{name:\"overflow-x\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-x\"}],description:\"Specifies the handling of overflow in the horizontal direction.\",restrictions:[\"enum\"]},{name:\"word-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"border-collapse\",values:[{name:\"collapse\",description:\"Selects the collapsing borders model.\"},{name:\"separate\",description:\"Selects the separated borders border model.\"}],syntax:\"collapse | separate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-collapse\"}],description:\"Selects a table's border model.\",restrictions:[\"enum\"]},{name:\"flex-direction\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],syntax:\"row | row-reverse | column | column-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-direction\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"zoom\",browsers:[\"E12\",\"S3.1\",\"C1\",\"IE5.5\",\"O15\"],values:[{name:\"normal\"}],syntax:\"auto | <number> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/zoom\"}],description:\"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"flex\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],syntax:\"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex\"}],description:\"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"text-shadow\",values:[{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow-t>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-shadow\"}],description:\"Enables shadow effects to be applied to the text of the element.\",restrictions:[\"length\",\"color\"]},{name:\"list-style-type\",values:[{name:\"armenian\",description:\"Traditional uppercase Armenian numbering.\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\",description:\"Western decimal numbers.\"},{name:\"decimal-leading-zero\",description:\"Decimal numbers padded by initial zeros.\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\",description:\"Traditional Georgian numbering.\"},{name:\"lower-alpha\",description:\"Lowercase ASCII letters.\"},{name:\"lower-greek\",description:\"Lowercase classical Greek.\"},{name:\"lower-latin\",description:\"Lowercase ASCII letters.\"},{name:\"lower-roman\",description:\"Lowercase ASCII Roman numerals.\"},{name:\"none\",description:\"No marker\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\",description:\"Uppercase ASCII letters.\"},{name:\"upper-latin\",description:\"Uppercase ASCII letters.\"},{name:\"upper-roman\",description:\"Uppercase ASCII Roman numerals.\"}],syntax:\"<counter-style> | <string> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-type\"}],description:\"Used to construct the default contents of a list item’s marker\",restrictions:[\"enum\",\"string\"]},{name:\"border-bottom-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius\"}],description:\"Defines the radii of the bottom left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"user-select\",values:[{name:\"all\",description:\"The content of the element must be selected atomically\"},{name:\"auto\"},{name:\"contain\",description:\"UAs must not allow a selection which is started in this element to be extended outside of this element.\"},{name:\"none\",description:\"The UA must not allow selections to be started in this element.\"},{name:\"text\",description:\"The element imposes no constraint on the selection.\"}],status:\"nonstandard\",syntax:\"auto | text | none | contain | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/user-select\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"fill\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints the interior of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transform-origin\",syntax:\"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-origin\"}],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius\"}],description:\"Defines the radii of the top left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-indent\",values:[],syntax:\"<length-percentage> && hanging? && each-line?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-indent\"}],description:\"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-bottom-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius\"}],description:\"Defines the radii of the bottom right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"flex-wrap\",values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"nowrap | wrap | wrap-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-wrap\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"border-spacing\",syntax:\"<length> <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-spacing\"}],description:\"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.\",restrictions:[\"length\"]},{name:\"border-top-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius\"}],description:\"Defines the radii of the top right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"clip\",values:[{name:\"auto\",description:\"The element does not clip.\"},{name:\"rect()\",description:\"Specifies offsets from the edges of the border box.\"}],syntax:\"<shape> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip\"}],description:\"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element’s box.\",restrictions:[\"enum\"]},{name:\"border-top-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-color\"}],description:\"Sets the color of the top border.\",restrictions:[\"color\"]},{name:\"word-break\",values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],syntax:\"normal | break-all | keep-all | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-break\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"border-bottom-color\",syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color\"}],description:\"Sets the color of the bottom border.\",restrictions:[\"color\"]},{name:\"flex-grow\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-grow\"}],description:\"Sets the flex grow factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"direction\",values:[{name:\"ltr\",description:\"Left-to-right direction.\"},{name:\"rtl\",description:\"Right-to-left direction.\"}],syntax:\"ltr | rtl\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/direction\"}],description:\"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.\",restrictions:[\"enum\"]},{name:\"align-self\",values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>\",description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"flex-shrink\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-shrink\"}],description:\"Sets the flex shrink factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"text-rendering\",browsers:[\"FF1\",\"S5\",\"C4\",\"O15\"],values:[{name:\"auto\"},{name:\"geometricPrecision\",description:\"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed.\"},{name:\"optimizeLegibility\",description:\"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision.\"},{name:\"optimizeSpeed\",description:\"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision.\"}],syntax:\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-rendering\"}],description:\"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The ‘text-rendering’ property provides these hints.\",restrictions:[\"enum\"]},{name:\"touch-action\",values:[{name:\"auto\",description:\"The user agent may determine any permitted touch behaviors for touches that begin on the element.\"},{name:\"cross-slide-x\"},{name:\"cross-slide-y\"},{name:\"double-tap-zoom\"},{name:\"manipulation\",description:\"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming.\"},{name:\"none\",description:\"Touches that begin on the element must not trigger default touch behaviors.\"},{name:\"pan-x\",description:\"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element’s nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element’s nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\"}],syntax:\"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/touch-action\"}],description:\"Determines whether touch input may trigger default behavior supplied by user agent.\",restrictions:[\"enum\"]},{name:\"background-clip\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-clip\"}],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"filter\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],description:\"A filter reference to a <filter> element.\"}],syntax:\"none | <filter-function-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/filter\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"src\",values:[{name:\"url()\",description:\"Reference font by URL\"},{name:\"format()\",description:\"Optional hint describing the format of the font resource.\"},{name:\"local()\",description:\"Format-specific string that identifies a locally available copy of a given font.\"}],syntax:\"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#\",description:\"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.\",restrictions:[\"enum\",\"url\",\"identifier\"]},{name:\"animation-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function\"}],description:\"Describes how the animation will progress over one cycle of its duration.\",restrictions:[\"timing-function\"]},{name:\"border-right-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-color\"}],description:\"Sets the color of the right border.\",restrictions:[\"color\"]},{name:\"font-variant\",values:[{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant\"}],description:\"Specifies variant representations of the font\",restrictions:[\"enum\"]},{name:\"border-left-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-color\"}],description:\"Sets the color of the left border.\",restrictions:[\"color\"]},{name:\"animation-name\",values:[{name:\"none\",description:\"No animation is performed\"}],syntax:\"[ none | <keyframes-name> ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-name\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"animation-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-duration\"}],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"will-change\",browsers:[\"FF36\",\"S9.1\",\"C36\",\"O24\"],values:[{name:\"auto\",description:\"Expresses no particular intent.\"},{name:\"contents\",description:\"Indicates that the author expects to animate or change something about the element’s contents in the near future.\"},{name:\"scroll-position\",description:\"Indicates that the author expects to animate or change the scroll position of the element in the near future.\"}],syntax:\"auto | <animateable-feature>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/will-change\"}],description:\"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.\",restrictions:[\"enum\",\"identifier\"]},{name:\"stroke\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints along the outline of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transition-property\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"none | <single-transition-property>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-property\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"table-layout\",values:[{name:\"auto\",description:\"Use any automatic table layout algorithm.\"},{name:\"fixed\",description:\"Use the fixed table layout algorithm.\"}],syntax:\"auto | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/table-layout\"}],description:\"Controls the algorithm used to lay out the table cells, rows, and columns.\",restrictions:[\"enum\"]},{name:\"transition-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-delay\"}],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"flex-basis\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"}],syntax:\"content | <'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-basis\"}],description:\"Sets the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"overflow-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.\",restrictions:[\"enum\"]},{name:\"border-top-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-width\"}],description:\"Sets the thickness of the top border.\",restrictions:[\"length\",\"line-width\"]},{name:\"outline-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-width\"}],description:\"Width of the outline.\",restrictions:[\"length\",\"line-width\"]},{name:\"order\",syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/order\"}],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"border-bottom-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width\"}],description:\"Sets the thickness of the bottom border.\",restrictions:[\"length\",\"line-width\"]},{name:\"animation-fill-mode\",values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],syntax:\"<single-animation-fill-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"outline-style\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"}],syntax:\"auto | <'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-style\"}],description:\"Style of the outline.\",restrictions:[\"line-style\",\"enum\"]},{name:\"object-fit\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],syntax:\"fill | contain | cover | none | scale-down\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-fit\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"stroke-width\",description:\"Specifies the width of the stroke on the current object.\",restrictions:[\"percentage\",\"length\"]},{name:\"transition-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-duration\"}],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"animation-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-delay\"}],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"outline-offset\",browsers:[\"E15\",\"FF1.5\",\"S1.2\",\"C1\",\"O9.5\"],syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-offset\"}],description:\"Offset the outline and draw it beyond the border edge.\",restrictions:[\"length\"]},{name:\"stroke-dashoffset\",description:\"Specifies the distance into the dash pattern to start the dash.\",restrictions:[\"percentage\",\"length\"]},{name:\"backface-visibility\",values:[{name:\"hidden\",description:\"Back side is hidden.\"},{name:\"visible\",description:\"Back side is visible.\"}],syntax:\"visible | hidden\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backface-visibility\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"border-right-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-width\"}],description:\"Sets the thickness of the right border.\",restrictions:[\"length\",\"line-width\"]},{name:\"flex-flow\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"<'flex-direction'> || <'flex-wrap'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-flow\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"word-spacing\",values:[{name:\"normal\",description:\"No additional spacing is applied. Computes to zero.\"}],syntax:\"normal | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-spacing\"}],description:\"Specifies additional spacing between “words”.\",restrictions:[\"length\",\"percentage\"]},{name:\"transition-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function\"}],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"resize\",browsers:[\"FF4\",\"S3\",\"C1\",\"O12.1\"],values:[{name:\"both\",description:\"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element.\"},{name:\"horizontal\",description:\"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element.\"},{name:\"none\",description:\"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element.\"},{name:\"vertical\",description:\"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element.\"}],syntax:\"none | both | horizontal | vertical | block | inline\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/resize\"}],description:\"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.\",restrictions:[\"enum\"]},{name:\"unicode-bidi\",values:[{name:\"bidi-override\",description:\"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored.\"},{name:\"embed\",description:\"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property.\"},{name:\"isolate\",description:\"The contents of the element are considered to be inside a separate, independent paragraph.\"},{name:\"isolate-override\",description:\"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'\"},{name:\"normal\",description:\"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries.\"},{name:\"plaintext\",description:\"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'.\"}],syntax:\"normal | embed | isolate | bidi-override | isolate-override | plaintext\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi\"}],description:\"The level of embedding with respect to the bidirectional algorithm.\",restrictions:[\"enum\"]},{name:\"unicode-range\",values:[{name:\"U+26\",description:\"Ampersand.\"},{name:\"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00–FB4F\",description:\"WGL4 character set (Pan-European).\"},{name:\"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF\",description:\"The Multilingual European Subset No. 1. Latin. Covers ~44 languages.\"},{name:\"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language.\"},{name:\"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts.\"},{name:\"U+00-7F\",description:\"Basic Latin (ASCII).\"},{name:\"U+80-FF\",description:\"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs.\"},{name:\"U+100-17F\",description:\"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish.\"},{name:\"U+180-24F\",description:\"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology.\"},{name:\"U+1E00-1EFF\",description:\"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use.\"},{name:\"U+250-2AF\",description:\"International Phonetic Alphabet Extensions.\"},{name:\"U+370-3FF\",description:\"Greek and Coptic.\"},{name:\"U+1F00-1FFF\",description:\"Greek Extended. Accented characters for polytonic Greek.\"},{name:\"U+400-4FF\",description:\"Cyrillic.\"},{name:\"U+500-52F\",description:\"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok.\"},{name:\"U+00-52F, U+1E00-1FFF, U+2200–22FF\",description:\"Latin, Greek, Cyrillic, some punctuation and symbols.\"},{name:\"U+530–58F\",description:\"Armenian.\"},{name:\"U+590–5FF\",description:\"Hebrew.\"},{name:\"U+600–6FF\",description:\"Arabic.\"},{name:\"U+750–77F\",description:\"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian.\"},{name:\"U+8A0–8FF\",description:\"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs.\"},{name:\"U+700–74F\",description:\"Syriac.\"},{name:\"U+900–97F\",description:\"Devanagari.\"},{name:\"U+980–9FF\",description:\"Bengali.\"},{name:\"U+A00–A7F\",description:\"Gurmukhi.\"},{name:\"U+A80–AFF\",description:\"Gujarati.\"},{name:\"U+B00–B7F\",description:\"Oriya.\"},{name:\"U+B80–BFF\",description:\"Tamil.\"},{name:\"U+C00–C7F\",description:\"Telugu.\"},{name:\"U+C80–CFF\",description:\"Kannada.\"},{name:\"U+D00–D7F\",description:\"Malayalam.\"},{name:\"U+D80–DFF\",description:\"Sinhala.\"},{name:\"U+118A0–118FF\",description:\"Warang Citi.\"},{name:\"U+E00–E7F\",description:\"Thai.\"},{name:\"U+1A20–1AAF\",description:\"Tai Tham.\"},{name:\"U+AA80–AADF\",description:\"Tai Viet.\"},{name:\"U+E80–EFF\",description:\"Lao.\"},{name:\"U+F00–FFF\",description:\"Tibetan.\"},{name:\"U+1000–109F\",description:\"Myanmar (Burmese).\"},{name:\"U+10A0–10FF\",description:\"Georgian.\"},{name:\"U+1200–137F\",description:\"Ethiopic.\"},{name:\"U+1380–139F\",description:\"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks\"},{name:\"U+2D80–2DDF\",description:\"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit.\"},{name:\"U+AB00–AB2F\",description:\"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz.\"},{name:\"U+1780–17FF\",description:\"Khmer.\"},{name:\"U+1800–18AF\",description:\"Mongolian.\"},{name:\"U+1B80–1BBF\",description:\"Sundanese.\"},{name:\"U+1CC0–1CCF\",description:\"Sundanese Supplement. Punctuation.\"},{name:\"U+4E00–9FD5\",description:\"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese.\"},{name:\"U+3400–4DB5\",description:\"CJK Unified Ideographs Extension A. Rare ideographs.\"},{name:\"U+2F00–2FDF\",description:\"Kangxi Radicals.\"},{name:\"U+2E80–2EFF\",description:\"CJK Radicals Supplement. Alternative forms of Kangxi Radicals.\"},{name:\"U+1100–11FF\",description:\"Hangul Jamo.\"},{name:\"U+AC00–D7AF\",description:\"Hangul Syllables.\"},{name:\"U+3040–309F\",description:\"Hiragana.\"},{name:\"U+30A0–30FF\",description:\"Katakana.\"},{name:\"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F\",description:\"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol.\"},{name:\"U+A4D0–A4FF\",description:\"Lisu.\"},{name:\"U+A000–A48F\",description:\"Yi Syllables.\"},{name:\"U+A490–A4CF\",description:\"Yi Radicals.\"},{name:\"U+2000-206F\",description:\"General Punctuation.\"},{name:\"U+3000–303F\",description:\"CJK Symbols and Punctuation.\"},{name:\"U+2070–209F\",description:\"Superscripts and Subscripts.\"},{name:\"U+20A0–20CF\",description:\"Currency Symbols.\"},{name:\"U+2100–214F\",description:\"Letterlike Symbols.\"},{name:\"U+2150–218F\",description:\"Number Forms.\"},{name:\"U+2190–21FF\",description:\"Arrows.\"},{name:\"U+2200–22FF\",description:\"Mathematical Operators.\"},{name:\"U+2300–23FF\",description:\"Miscellaneous Technical.\"},{name:\"U+E000-F8FF\",description:\"Private Use Area.\"},{name:\"U+FB00–FB4F\",description:\"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew.\"},{name:\"U+FB50–FDFF\",description:\"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures.\"},{name:\"U+1F600–1F64F\",description:\"Emoji: Emoticons.\"},{name:\"U+2600–26FF\",description:\"Emoji: Miscellaneous Symbols.\"},{name:\"U+1F300–1F5FF\",description:\"Emoji: Miscellaneous Symbols and Pictographs.\"},{name:\"U+1F900–1F9FF\",description:\"Emoji: Supplemental Symbols and Pictographs.\"},{name:\"U+1F680–1F6FF\",description:\"Emoji: Transport and Map Symbols.\"}],syntax:\"<unicode-range>#\",description:\"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.\",restrictions:[\"unicode-range\"]},{name:\"stroke-dasharray\",values:[{name:\"none\",description:\"Indicates that no dashing is used.\"}],description:\"Controls the pattern of dashes and gaps used to stroke paths.\",restrictions:[\"length\",\"percentage\",\"number\",\"enum\"]},{name:\"animation-iteration-count\",values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],syntax:\"<single-animation-iteration-count>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"image-rendering\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"],values:[{name:\"auto\",description:\"The image should be scaled with an algorithm that maximizes the appearance of the image.\"},{name:\"crisp-edges\",description:\"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process.\"},{name:\"-moz-crisp-edges\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"]},{name:\"optimizeQuality\",description:\"Deprecated.\"},{name:\"optimizeSpeed\",description:\"Deprecated.\"},{name:\"pixelated\",description:\"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels.\"}],syntax:\"auto | crisp-edges | pixelated\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-rendering\"}],description:\"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.\",restrictions:[\"enum\"]},{name:\"border-left-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-width\"}],description:\"Sets the thickness of the left border.\",restrictions:[\"length\",\"line-width\"]},{name:\"align-content\",values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"flex-end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"flex-start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"space-around\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],syntax:\"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>\",description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"border-bottom-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style\"}],description:\"Sets the style of the bottom border.\",restrictions:[\"line-style\"]},{name:\"perspective\",values:[{name:\"none\",description:\"No perspective transform is applied.\"}],syntax:\"none | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\",\"enum\"]},{name:\"border-top-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-style\"}],description:\"Sets the style of the top border.\",restrictions:[\"line-style\"]},{name:\"text-size-adjust\",status:\"experimental\",syntax:\"none | auto | <percentage>\",browsers:[\"E12\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust\"}],description:\"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property.\"},{name:\"transform-style\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"},{name:\"preserve-3d\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],description:\"Flattening is not performed, so children maintain their position in 3D space.\"}],syntax:\"flat | preserve-3d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-style\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"grid-template-columns\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"enum\"]},{name:\"list-style-position\",values:[{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"}],syntax:\"inside | outside\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-position\"}],description:\"Specifies the position of the '::marker' pseudo-element's box in the list item.\",restrictions:[\"enum\"]},{name:\"animation-direction\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation-direction>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-direction\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"animation-play-state\",values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],syntax:\"<single-animation-play-state>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-play-state\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"hyphens\",values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],syntax:\"none | manual | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hyphens\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"quotes\",values:[{name:\"none\",description:\"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively.\"}],syntax:\"none | auto | [ <string> <string> ]+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/quotes\"}],description:\"Specifies quotation marks for any number of embedded quotations.\",restrictions:[\"string\"]},{name:\"background-origin\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-origin\"}],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"background-attachment\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element’s contents: if the element has a scrolling mechanism, the background scrolls with the element’s contents.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element’s border.)\"}],syntax:\"<attachment>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-attachment\"}],description:\"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').\",restrictions:[\"enum\"]},{name:\"background-position-x\",values:[{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"left\",description:\"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\"},{name:\"right\",description:\"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-x\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-position-y\",values:[{name:\"bottom\",description:\"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\"},{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"top\",description:\"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-y\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-feature-settings\",values:[{name:'\"aalt\"',description:\"Access All Alternates.\"},{name:'\"abvf\"',description:\"Above-base Forms. Required in Khmer script.\"},{name:'\"abvm\"',description:\"Above-base Mark Positioning. Required in Indic scripts.\"},{name:'\"abvs\"',description:\"Above-base Substitutions. Required in Indic scripts.\"},{name:'\"afrc\"',description:\"Alternative Fractions.\"},{name:'\"akhn\"',description:\"Akhand. Required in most Indic scripts.\"},{name:'\"blwf\"',description:\"Below-base Form. Required in a number of Indic scripts.\"},{name:'\"blwm\"',description:\"Below-base Mark Positioning. Required in Indic scripts.\"},{name:'\"blws\"',description:\"Below-base Substitutions. Required in Indic scripts.\"},{name:'\"calt\"',description:\"Contextual Alternates.\"},{name:'\"case\"',description:\"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting.\"},{name:'\"ccmp\"',description:\"Glyph Composition/Decomposition.\"},{name:'\"cfar\"',description:\"Conjunct Form After Ro. Required in Khmer scripts.\"},{name:'\"cjct\"',description:\"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"clig\"',description:\"Contextual Ligatures.\"},{name:'\"cpct\"',description:\"Centered CJK Punctuation. Used primarily in Chinese fonts.\"},{name:'\"cpsp\"',description:\"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic).\"},{name:'\"cswh\"',description:\"Contextual Swash.\"},{name:'\"curs\"',description:\"Cursive Positioning. Can be used in any cursive script.\"},{name:'\"c2pc\"',description:\"Petite Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"c2sc\"',description:\"Small Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"dist\"',description:\"Distances. Required in Indic scripts.\"},{name:'\"dlig\"',description:\"Discretionary ligatures.\"},{name:'\"dnom\"',description:\"Denominators.\"},{name:'\"dtls\"',description:\"Dotless Forms. Applied to math formula layout.\"},{name:'\"expt\"',description:\"Expert Forms. Applies only to Japanese.\"},{name:'\"falt\"',description:\"Final Glyph on Line Alternates. Can be used in any cursive script.\"},{name:'\"fin2\"',description:\"Terminal Form #2. Used only with the Syriac script.\"},{name:'\"fin3\"',description:\"Terminal Form #3. Used only with the Syriac script.\"},{name:'\"fina\"',description:\"Terminal Forms. Can be used in any alphabetic script.\"},{name:'\"flac\"',description:\"Flattened ascent forms. Applied to math formula layout.\"},{name:'\"frac\"',description:\"Fractions.\"},{name:'\"fwid\"',description:\"Full Widths. Applies to any script which can use monospaced forms.\"},{name:'\"half\"',description:\"Half Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"haln\"',description:\"Halant Forms. Required in Indic scripts.\"},{name:'\"halt\"',description:\"Alternate Half Widths. Used only in CJKV fonts.\"},{name:'\"hist\"',description:\"Historical Forms.\"},{name:'\"hkna\"',description:\"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"hlig\"',description:\"Historical Ligatures.\"},{name:'\"hngl\"',description:\"Hangul. Korean only.\"},{name:'\"hojo\"',description:\"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script.\"},{name:'\"hwid\"',description:\"Half Widths. Generally used only in CJKV fonts.\"},{name:'\"init\"',description:\"Initial Forms. Can be used in any alphabetic script.\"},{name:'\"isol\"',description:\"Isolated Forms. Can be used in any cursive script.\"},{name:'\"ital\"',description:\"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well.\"},{name:'\"jalt\"',description:\"Justification Alternates. Can be used in any cursive script.\"},{name:'\"jp78\"',description:\"JIS78 Forms. Applies only to Japanese.\"},{name:'\"jp83\"',description:\"JIS83 Forms. Applies only to Japanese.\"},{name:'\"jp90\"',description:\"JIS90 Forms. Applies only to Japanese.\"},{name:'\"jp04\"',description:\"JIS2004 Forms. Applies only to Japanese.\"},{name:'\"kern\"',description:\"Kerning.\"},{name:'\"lfbd\"',description:\"Left Bounds.\"},{name:'\"liga\"',description:\"Standard Ligatures.\"},{name:'\"ljmo\"',description:\"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"lnum\"',description:\"Lining Figures.\"},{name:'\"locl\"',description:\"Localized Forms.\"},{name:'\"ltra\"',description:\"Left-to-right glyph alternates.\"},{name:'\"ltrm\"',description:\"Left-to-right mirrored forms.\"},{name:'\"mark\"',description:\"Mark Positioning.\"},{name:'\"med2\"',description:\"Medial Form #2. Used only with the Syriac script.\"},{name:'\"medi\"',description:\"Medial Forms.\"},{name:'\"mgrk\"',description:\"Mathematical Greek.\"},{name:'\"mkmk\"',description:\"Mark to Mark Positioning.\"},{name:'\"nalt\"',description:\"Alternate Annotation Forms.\"},{name:'\"nlck\"',description:\"NLC Kanji Forms. Used only with Kanji script.\"},{name:'\"nukt\"',description:\"Nukta Forms. Required in Indic scripts..\"},{name:'\"numr\"',description:\"Numerators.\"},{name:'\"onum\"',description:\"Oldstyle Figures.\"},{name:'\"opbd\"',description:\"Optical Bounds.\"},{name:'\"ordn\"',description:\"Ordinals. Applies mostly to Latin script.\"},{name:'\"ornm\"',description:\"Ornaments.\"},{name:'\"palt\"',description:\"Proportional Alternate Widths. Used mostly in CJKV fonts.\"},{name:'\"pcap\"',description:\"Petite Capitals.\"},{name:'\"pkna\"',description:\"Proportional Kana. Generally used only in Japanese fonts.\"},{name:'\"pnum\"',description:\"Proportional Figures.\"},{name:'\"pref\"',description:\"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra.\"},{name:'\"pres\"',description:\"Pre-base Substitutions. Required in Indic scripts.\"},{name:'\"pstf\"',description:\"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer.\"},{name:'\"psts\"',description:\"Post-base Substitutions.\"},{name:'\"pwid\"',description:\"Proportional Widths.\"},{name:'\"qwid\"',description:\"Quarter Widths. Generally used only in CJKV fonts.\"},{name:'\"rand\"',description:\"Randomize.\"},{name:'\"rclt\"',description:\"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic.\"},{name:'\"rlig\"',description:\"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts.\"},{name:'\"rkrf\"',description:\"Rakar Forms. Required in Devanagari and Gujarati scripts.\"},{name:'\"rphf\"',description:\"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada.\"},{name:'\"rtbd\"',description:\"Right Bounds.\"},{name:'\"rtla\"',description:\"Right-to-left alternates.\"},{name:'\"rtlm\"',description:\"Right-to-left mirrored forms.\"},{name:'\"ruby\"',description:\"Ruby Notation Forms. Applies only to Japanese.\"},{name:'\"salt\"',description:\"Stylistic Alternates.\"},{name:'\"sinf\"',description:\"Scientific Inferiors.\"},{name:'\"size\"',description:\"Optical size.\"},{name:'\"smcp\"',description:\"Small Capitals. Applies only to bicameral scripts.\"},{name:'\"smpl\"',description:\"Simplified Forms. Applies only to Chinese and Japanese.\"},{name:'\"ssty\"',description:\"Math script style alternates.\"},{name:'\"stch\"',description:\"Stretching Glyph Decomposition.\"},{name:'\"subs\"',description:\"Subscript.\"},{name:'\"sups\"',description:\"Superscript.\"},{name:'\"swsh\"',description:\"Swash. Does not apply to ideographic scripts.\"},{name:'\"titl\"',description:\"Titling.\"},{name:'\"tjmo\"',description:\"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"tnam\"',description:\"Traditional Name Forms. Applies only to Japanese.\"},{name:'\"tnum\"',description:\"Tabular Figures.\"},{name:'\"trad\"',description:\"Traditional Forms. Applies only to Chinese and Japanese.\"},{name:'\"twid\"',description:\"Third Widths. Generally used only in CJKV fonts.\"},{name:'\"unic\"',description:\"Unicase.\"},{name:'\"valt\"',description:\"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes.\"},{name:'\"vatu\"',description:\"Vattu Variants. Used for Indic scripts. E.g. Devanagari.\"},{name:'\"vert\"',description:\"Vertical Alternates. Applies only to scripts with vertical writing modes.\"},{name:'\"vhal\"',description:\"Alternate Vertical Half Metrics. Used only in CJKV fonts.\"},{name:'\"vjmo\"',description:\"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"vkna\"',description:\"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"vkrn\"',description:\"Vertical Kerning.\"},{name:'\"vpal\"',description:\"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts.\"},{name:'\"vrt2\"',description:\"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes.\"},{name:'\"zero\"',description:\"Slashed Zero.\"},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",description:\"Disable feature.\"},{name:\"on\",description:\"Enable feature.\"}],syntax:\"normal | <feature-tag-value>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings\"}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"border-left-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-style\"}],description:\"Sets the style of the left border.\",restrictions:[\"line-style\"]},{name:\"font-stretch\",values:[{name:\"condensed\"},{name:\"expanded\"},{name:\"extra-condensed\"},{name:\"extra-expanded\"},{name:\"narrower\",description:\"Indicates a narrower value relative to the width of the parent element.\"},{name:\"normal\"},{name:\"semi-condensed\"},{name:\"semi-expanded\"},{name:\"ultra-condensed\"},{name:\"ultra-expanded\"},{name:\"wider\",description:\"Indicates a wider value relative to the width of the parent element.\"}],syntax:\"<font-stretch-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-stretch\"}],description:\"Selects a normal, condensed, or expanded face from a font family.\",restrictions:[\"enum\"]},{name:\"outline-color\",values:[{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"<color> | invert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-color\"}],description:\"The color of the outline.\",restrictions:[\"enum\",\"color\"]},{name:\"border-right-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-style\"}],description:\"Sets the style of the right border.\",restrictions:[\"line-style\"]},{name:\"clip-path\",values:[{name:\"none\",description:\"No clipping path gets created.\"},{name:\"url()\",description:\"References a <clipPath> element to create a clipping path.\"}],syntax:\"<clip-source> | [ <basic-shape> || <geometry-box> ] | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip-path\"}],description:\"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"list-style-image\",values:[{name:\"none\",description:\"The default contents of the of the list item’s marker are given by 'list-style-type' instead.\"}],syntax:\"<url> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-image\"}],description:\"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.\",restrictions:[\"image\"]},{name:\"counter-increment\",values:[{name:\"none\",description:\"This element does not alter the value of any counters.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-increment\"}],description:\"Manipulate the value of existing counters.\",restrictions:[\"identifier\",\"integer\"]},{name:\"counter-reset\",values:[{name:\"none\",description:\"The counter is not modified.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-reset\"}],description:\"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.\",restrictions:[\"identifier\",\"integer\"]},{name:\"font-display\",status:\"experimental\",syntax:\"[ auto | block | swap | fallback | optional ]\",description:\"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use.\"},{name:\"border-image\",values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\",description:\"Use the border styles.\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],syntax:\"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"column-count\",values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],syntax:\"<integer> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-count\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\",\"enum\"]},{name:\"column-gap\",values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],syntax:\"normal | <length-percentage>\",description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\",\"enum\"]},{name:\"text-decoration-color\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color\"}],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"all\",browsers:[\"FF27\",\"S9.1\",\"C37\",\"O24\"],values:[],syntax:\"initial | inherit | unset | revert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/all\"}],description:\"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.\",restrictions:[\"enum\"]},{name:\"object-position\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-position\"}],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"page-break-inside\",values:[{name:\"auto\",description:\"Neither force nor forbid a page break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page break inside the generated box.\"}],syntax:\"auto | avoid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-inside\"}],description:\"Defines rules for page breaks inside an element.\",restrictions:[\"enum\"]},{name:\"stroke-linecap\",values:[{name:\"butt\",description:\"Indicates that the stroke for each subpath does not extend beyond its two endpoints.\"},{name:\"round\",description:\"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width.\"},{name:\"square\",description:\"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width.\"}],description:\"Specifies the shape to be used at the end of open subpaths when they are stroked.\",restrictions:[\"enum\"]},{name:\"size\",browsers:[\"C\",\"O8\"],restrictions:[\"length\"]},{name:\"empty-cells\",values:[{name:\"hide\",description:\"No borders or backgrounds are drawn around/behind empty cells.\"},{name:\"-moz-show-background\"},{name:\"show\",description:\"Borders and backgrounds are drawn around/behind empty cells (like normal cells).\"}],syntax:\"show | hide\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/empty-cells\"}],description:\"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.\",restrictions:[\"enum\"]},{name:\"page-break-after\",values:[{name:\"always\",description:\"Always force a page break after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break after generated box.\"},{name:\"avoid\",description:\"Avoid a page break after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-after\"}],description:\"Defines rules for page breaks after an element.\",restrictions:[\"enum\"]},{name:\"fill-opacity\",description:\"Specifies the opacity of the painting operation used to paint the interior the current object.\",restrictions:[\"number(0-1)\"]},{name:\"grid-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<'grid-row-gap'> <'grid-column-gap'>?\",description:\"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.\",restrictions:[\"length\"]},{name:\"margin-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-end\"}],description:\"Logical 'margin-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"contain\",browsers:[\"FF69\",\"C52\",\"O40\"],values:[{name:\"none\",description:\"Indicates that the property has no effect.\"},{name:\"strict\",description:\"Turns on all forms of containment for the element.\"},{name:\"content\",description:\"All containment rules except size are applied to the element.\"},{name:\"size\",description:\"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element.\"},{name:\"layout\",description:\"Turns on layout containment for the element.\"},{name:\"style\",description:\"Turns on style containment for the element.\"},{name:\"paint\",description:\"Turns on paint containment for the element.\"}],status:\"experimental\",syntax:\"none | strict | content | [ size || layout || style || paint ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/contain\"}],description:\"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.\",restrictions:[\"enum\"]},{name:\"padding-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start\"}],description:\"Logical 'padding-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start\"}],description:\"Logical 'margin-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end\"}],description:\"Logical 'margin-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"grid-template-rows\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"padding-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end\"}],description:\"Logical 'padding-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"stroke-opacity\",description:\"Specifies the opacity of the painting operation used to stroke the current object.\",restrictions:[\"number(0-1)\"]},{name:\"orphans\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/orphans\"}],description:\"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.\",restrictions:[\"integer\"]},{name:\"shape-outside\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],values:[{name:\"margin-box\",description:\"The background is painted within (clipped to) the margin box.\"},{name:\"none\",description:\"The float area is unaffected.\"}],syntax:\"none | <shape-box> || <basic-shape> | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-outside\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"image\",\"box\",\"shape\",\"enum\"]},{name:\"caption-side\",values:[{name:\"bottom\",description:\"Positions the caption box below the table box.\"},{name:\"top\",description:\"Positions the caption box above the table box.\"}],syntax:\"top | bottom | block-start | block-end | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caption-side\"}],description:\"Specifies the position of the caption box with respect to the table box.\",restrictions:[\"enum\"]},{name:\"widows\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/widows\"}],description:\"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.\",restrictions:[\"integer\"]},{name:\"grid-column\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column\"}],description:\"Shorthand for 'grid-column-start' and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"perspective-origin\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective-origin\"}],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"column-width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<length> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-width\"}],description:\"Describes the width of columns in multicol elements.\",restrictions:[\"length\",\"enum\"]},{name:\"mix-blend-mode\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode\"}],description:\"Defines the formula that must be used to mix the colors with the backdrop.\",restrictions:[\"enum\"]},{name:\"grid-auto-rows\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows\"}],description:\"Specifies the size of implicitly created rows.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-variant-ligatures\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],values:[{name:\"additional-ligatures\",description:\"Enables display of additional ligatures.\"},{name:\"common-ligatures\",description:\"Enables display of common ligatures.\"},{name:\"contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Enables display of contextual alternates.\"},{name:\"discretionary-ligatures\",description:\"Enables display of discretionary ligatures.\"},{name:\"historical-ligatures\",description:\"Enables display of historical ligatures.\"},{name:\"no-additional-ligatures\",description:\"Disables display of additional ligatures.\"},{name:\"no-common-ligatures\",description:\"Disables display of common ligatures.\"},{name:\"no-contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables display of contextual alternates.\"},{name:\"no-discretionary-ligatures\",description:\"Disables display of discretionary ligatures.\"},{name:\"no-historical-ligatures\",description:\"Disables display of historical ligatures.\"},{name:\"none\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables all ligatures.\"},{name:\"normal\",description:\"Implies that the defaults set by the font are used.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures\"}],description:\"Specifies control over which ligatures are enabled or disabled. A value of ‘normal’ implies that the defaults set by the font are used.\",restrictions:[\"enum\"]},{name:\"scroll-behavior\",browsers:[\"FF36\",\"C61\",\"O48\"],values:[{name:\"auto\",description:\"Scrolls in an instant fashion.\"},{name:\"smooth\",description:\"Scrolls in a smooth fashion using a user-agent-defined timing function and time period.\"}],syntax:\"auto | smooth\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior\"}],description:\"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip\",status:\"experimental\",syntax:\"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]\",browsers:[\"S12.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip\"}],description:\"The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors.\"},{name:\"columns\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<'column-width'> || <'column-count'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/columns\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\",\"enum\"]},{name:\"column-rule\",syntax:\"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule\"}],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"line-break\",values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"loose\",description:\"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks text using the most common set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],syntax:\"auto | loose | normal | strict | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-break\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"text-align-last\",browsers:[\"E12\",\"FF49\",\"C47\",\"IE5.5\",\"O\"],values:[{name:\"auto\",description:\"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'.\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],syntax:\"auto | start | end | left | right | center | justify\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align-last\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"border-image-width\",values:[{name:\"auto\",description:\"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"}],syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-width\"}],description:\"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.\",restrictions:[\"length\",\"percentage\",\"number\"]},{name:\"stroke-miterlimit\",description:\"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.\",restrictions:[\"number\"]},{name:\"border-image-repeat\",values:[{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],syntax:\"[ stretch | repeat | round | space ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat\"}],description:\"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.\",restrictions:[\"enum\"]},{name:\"grid-column-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid columns. Replaced by 'column-gap' property.\",restrictions:[\"length\"]},{name:\"border-image-slice\",values:[{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"}],syntax:\"<number-percentage>{1,4} && fill?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-slice\"}],description:\"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.\",restrictions:[\"number\",\"percentage\"]},{name:\"justify-self\",browsers:[\"E16\",\"FF45\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]\",description:\"Defines the way of justifying a box inside its container along the appropriate axis.\",restrictions:[\"enum\"]},{name:\"fill-rule\",values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"border-image-outset\",syntax:\"[ <length> | <number> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-outset\"}],description:\"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.\",restrictions:[\"length\",\"number\"]},{name:\"justify-items\",values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"},{name:\"legacy\"}],syntax:\"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]\",description:\"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis\",restrictions:[\"enum\"]},{name:\"break-inside\",values:[{name:\"auto\",description:\"Impose no additional breaking constraints within the box.\"},{name:\"avoid\",description:\"Avoid breaks within the box.\"},{name:\"avoid-column\",description:\"Avoid a column break within the box.\"},{name:\"avoid-page\",description:\"Avoid a page break within the box.\"}],syntax:\"auto | avoid | avoid-page | avoid-column | avoid-region\",description:\"Describes the page/column/region break behavior inside the principal box.\",restrictions:[\"enum\"]},{name:\"scroll-snap-type\",values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],syntax:\"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type\"}],description:\"Defines how strictly snap points are enforced on the scroll container.\",restrictions:[\"enum\"]},{name:\"text-decoration-line\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],syntax:\"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"scroll-snap-align\",syntax:\"[ none | start | end | center ]{1,2}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align\"}],description:\"The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value.\"},{name:\"grid-row\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row\"}],description:\"Shorthand for 'grid-row-start' and 'grid-row-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"caret-color\",browsers:[\"FF53\",\"S11.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\"}],syntax:\"auto | <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caret-color\"}],description:\"Controls the color of the text insertion indicator.\",restrictions:[\"color\",\"enum\"]},{name:\"stroke-linejoin\",values:[{name:\"bevel\",description:\"Indicates that a bevelled corner is to be used to join path segments.\"},{name:\"miter\",description:\"Indicates that a sharp corner is to be used to join path segments.\"},{name:\"round\",description:\"Indicates that a round corner is to be used to join path segments.\"}],description:\"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.\",restrictions:[\"enum\"]},{name:\"grid-area\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]{0,3}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-area\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\"]},{name:\"column-fill\",values:[{name:\"auto\",description:\"Fills columns sequentially.\"},{name:\"balance\",description:\"Balance content equally between columns, if possible.\"}],syntax:\"auto | balance | balance-all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-fill\"}],description:\"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.\",restrictions:[\"enum\"]},{name:\"tab-size\",browsers:[\"FF4\",\"S6.1\",\"C21\",\"O15\"],syntax:\"<integer> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/tab-size\"}],description:\"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"overflow-anchor\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF66\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor\"}],description:\"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts.\"},{name:\"border-image-source\",values:[{name:\"none\",description:\"Use the border styles.\"}],syntax:\"none | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-source\"}],description:\"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.\",restrictions:[\"image\"]},{name:\"grid-template-areas\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"The grid container doesn’t define any named grid areas.\"}],syntax:\"none | <string>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas\"}],description:\"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.\",restrictions:[\"string\"]},{name:\"font-kerning\",browsers:[\"FF32\",\"S7\",\"C32\",\"O19\"],values:[{name:\"auto\",description:\"Specifies that kerning is applied at the discretion of the user agent.\"},{name:\"none\",description:\"Specifies that kerning is not applied.\"},{name:\"normal\",description:\"Specifies that kerning is applied.\"}],syntax:\"auto | normal | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-kerning\"}],description:\"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.\",restrictions:[\"enum\"]},{name:\"page-break-before\",values:[{name:\"always\",description:\"Always force a page break before the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break before the generated box.\"},{name:\"avoid\",description:\"Avoid a page break before the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-before\"}],description:\"Defines rules for page breaks before an element.\",restrictions:[\"enum\"]},{name:\"text-decoration-style\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"solid | double | dotted | dashed | wavy\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"grid-row-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid rows. Replaced by 'row-gap' property.\",restrictions:[\"length\"]},{name:\"backdrop-filter\",status:\"experimental\",syntax:\"none | <filter-function-list>\",browsers:[\"E17\",\"FF70\",\"S9\",\"C76\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter\"}],description:\"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.\"},{name:\"grid-auto-flow\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"row\",description:\"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary.\"},{name:\"column\",description:\"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary.\"},{name:\"dense\",description:\"If specified, the auto-placement algorithm uses a “dense” packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later.\"}],syntax:\"[ row | column ] || dense\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow\"}],description:\"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.\",restrictions:[\"enum\"]},{name:\"grid-column-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"column-rule-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-color\"}],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"isolation\",browsers:[\"FF36\",\"S8\",\"C41\",\"O30\"],values:[{name:\"auto\",description:\"Elements are not isolated unless an operation is applied that causes the creation of a stacking context.\"},{name:\"isolate\",description:\"In CSS will turn the element into a stacking context.\"}],syntax:\"auto | isolate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/isolation\"}],description:\"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.\",restrictions:[\"enum\"]},{name:\"column-rule-style\",syntax:\"<'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-style\"}],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"stop-color\",description:\"Indicates what color to use at that gradient stop.\",restrictions:[\"color\"]},{name:\"clip-rule\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"background-blend-mode\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode\"}],description:\"Defines the blending mode of each background layer.\",restrictions:[\"enum\"]},{name:\"font-variant-numeric\",browsers:[\"FF34\",\"S9.1\",\"C52\",\"O39\"],values:[{name:\"diagonal-fractions\",description:\"Enables display of lining diagonal fractions.\"},{name:\"lining-nums\",description:\"Enables display of lining numerals.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"oldstyle-nums\",description:\"Enables display of old-style numerals.\"},{name:\"ordinal\",description:\"Enables display of letter forms used with ordinal numbers.\"},{name:\"proportional-nums\",description:\"Enables display of proportional numerals.\"},{name:\"slashed-zero\",description:\"Enables display of slashed zeros.\"},{name:\"stacked-fractions\",description:\"Enables display of lining stacked fractions.\"},{name:\"tabular-nums\",description:\"Enables display of tabular numerals.\"}],syntax:\"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric\"}],description:\"Specifies control over numerical forms.\",restrictions:[\"enum\"]},{name:\"grid-column-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"margin-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-start\"}],description:\"Logical 'margin-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"writing-mode\",values:[{name:\"horizontal-tb\",description:\"Top-to-bottom block flow direction. The writing mode is horizontal.\"},{name:\"sideways-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"sideways-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"vertical-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical.\"},{name:\"vertical-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical.\"}],syntax:\"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/writing-mode\"}],description:\"This is a shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"shape-rendering\",values:[{name:\"auto\",description:\"Suppresses aural rendering.\"},{name:\"crispEdges\",description:\"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision.\"},{name:\"geometricPrecision\",description:\"Emphasize geometric precision over speed and crisp edges.\"},{name:\"optimizeSpeed\",description:\"Emphasize rendering speed over geometric precision and crisp edges.\"}],description:\"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.\",restrictions:[\"enum\"]},{name:\"grid-row-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"grid-auto-columns\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns\"}],description:\"Specifies the size of implicitly created columns.\",restrictions:[\"length\",\"percentage\"]},{name:\"break-after\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip-ink\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF70\",\"C64\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink\"}],description:\"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders.\"},{name:\"grid-row-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"break-before\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"font-variant-caps\",browsers:[\"FF34\",\"C52\",\"O39\"],values:[{name:\"all-petite-caps\",description:\"Enables display of petite capitals for both upper and lowercase letters.\"},{name:\"all-small-caps\",description:\"Enables display of small capitals for both upper and lowercase letters.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"petite-caps\",description:\"Enables display of petite capitals.\"},{name:\"small-caps\",description:\"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"},{name:\"titling-caps\",description:\"Enables display of titling capitals.\"},{name:\"unicase\",description:\"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters.\"}],syntax:\"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps\"}],description:\"Specifies control over capitalized forms.\",restrictions:[\"enum\"]},{name:\"stop-opacity\",description:\"Defines the opacity of a given gradient stop.\",restrictions:[\"number(0-1)\"]},{name:\"column-span\",values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],syntax:\"none | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-span\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-anchor\",values:[{name:\"end\",description:\"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position.\"},{name:\"middle\",description:\"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position.\"},{name:\"start\",description:\"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position.\"}],description:\"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.\",restrictions:[\"enum\"]},{name:\"column-rule-width\",syntax:\"<'border-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-width\"}],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"mask\",syntax:\"<mask-layer>#\",browsers:[\"E12\",\"FF2\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask\"}],description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"text-underline-position\",browsers:[\"E12\",\"C33\",\"IE6\",\"O20\"],values:[{name:\"above\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline’s position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"below\",description:\"The underline is aligned with the under edge of the element’s content box.\"}],syntax:\"auto | [ under || [ left | right ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-position\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"mask-type\",browsers:[\"FF35\",\"S6.1\",\"C24\",\"O15\"],values:[{name:\"alpha\",description:\"Indicates that the alpha values of the mask should be used.\"},{name:\"luminance\",description:\"Indicates that the luminance values of the mask should be used.\"}],syntax:\"luminance | alpha\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-type\"}],description:\"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.\",restrictions:[\"enum\"]},{name:\"font-variant-east-asian\",browsers:[\"FF34\",\"C63\",\"O50\"],values:[{name:\"full-width\",description:\"Enables rendering of full-width variants.\"},{name:\"jis04\",description:\"Enables rendering of JIS04 forms.\"},{name:\"jis78\",description:\"Enables rendering of JIS78 forms.\"},{name:\"jis83\",description:\"Enables rendering of JIS83 forms.\"},{name:\"jis90\",description:\"Enables rendering of JIS90 forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"proportional-width\",description:\"Enables rendering of proportionally-spaced variants.\"},{name:\"ruby\",description:\"Enables display of ruby variant glyphs.\"},{name:\"simplified\",description:\"Enables rendering of simplified forms.\"},{name:\"traditional\",description:\"Enables rendering of traditional forms.\"}],syntax:\"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian\"}],description:\"Allows control of glyph substitute and positioning in East Asian text.\",restrictions:[\"enum\"]},{name:\"border-inline-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width\"}],description:\"Logical 'border-right-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-inline-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width\"}],description:\"Logical 'border-left-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"text-orientation\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],values:[{name:\"sideways\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode.\"},{name:\"sideways-right\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90° clockwise.\"},{name:\"upright\",description:\"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation.\"}],syntax:\"mixed | upright | sideways\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-orientation\"}],description:\"Specifies the orientation of text within a line.\",restrictions:[\"enum\"]},{name:\"shape-margin\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-margin\"}],description:\"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.\",restrictions:[\"url\",\"length\",\"percentage\"]},{name:\"shape-image-threshold\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold\"}],description:\"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.\",restrictions:[\"number\"]},{name:\"min-inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-inline-size\"}],description:\"Logical 'min-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inline-size\"}],description:\"Logical 'height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-combine-upright\",syntax:\"none | all | [ digits <integer>? ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright\"}],description:\"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\\n\\nThis is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese.\"},{name:\"block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/block-size\"}],description:\"Logical 'width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"min-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-block-size\"}],description:\"Logical 'min-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-start\"}],description:\"Logical 'padding-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-end\"}],description:\"Logical 'padding-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-inline-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color\"}],description:\"Logical 'border-left-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color\"}],description:\"Logical 'border-right-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style\"}],description:\"Logical 'border-right-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-inline-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style\"}],description:\"Logical 'border-left-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style\"}],description:\"Logical 'border-bottom-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color\"}],description:\"Logical 'border-bottom-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style\"}],description:\"Logical 'border-top-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color\"}],description:\"Logical 'border-top-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width\"}],description:\"Logical 'border-top-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-block-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width\"}],description:\"Logical 'border-bottom-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"row-gap\",syntax:\"normal | <length-percentage>\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The row-gap CSS property specifies the gutter between grid rows.\"},{name:\"grid-template\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"Sets all three properties to their initial values.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template\"}],description:\"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"color-interpolation-filters\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"auto\",description:\"Color operations are not required to occur in a particular color space.\"},{name:\"linearRGB\",description:\"Color operations should occur in the linearized RGB color space.\"},{name:\"sRGB\",description:\"Color operations should occur in the sRGB color space.\"}],description:\"Specifies the color space for imaging operations performed via filter effects.\",restrictions:[\"enum\"]},{name:\"paint-order\",browsers:[\"E17\",\"FF60\",\"S8\",\"C35\",\"O22\"],values:[{name:\"fill\"},{name:\"markers\"},{name:\"normal\",description:\"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers.\"},{name:\"stroke\"}],status:\"experimental\",syntax:\"normal | [ fill || stroke || markers ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/paint-order\"}],description:\"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.\",restrictions:[\"enum\"]},{name:\"flood-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what color to use to flood the current filter primitive subregion.\",restrictions:[\"color\"]},{name:\"flood-opacity\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what opacity to use to flood the current filter primitive subregion.\",restrictions:[\"number(0-1)\",\"percentage\"]},{name:\"scroll-snap-stop\",syntax:\"normal | always\",browsers:[\"C75\",\"O62\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop\"}],description:'The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions.'},{name:\"lighting-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.\",restrictions:[\"color\"]},{name:\"scroll-padding-left\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left\"}],description:\"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker-end\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the last vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-start\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the first vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-mid\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at all vertices except the first and last.\",restrictions:[\"url\"]},{name:\"offset-distance\",status:\"experimental\",syntax:\"<length-percentage>\",browsers:[\"FF69\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-distance\"}],description:\"The offset-distance CSS property specifies a position along an offset-path.\"},{name:\"place-content\",syntax:\"<'align-content'> <'justify-content'>?\",browsers:[\"FF53\",\"S9\",\"C59\",\"O\"],description:\"The place-content CSS shorthand property sets both the align-content and justify-content properties.\"},{name:\"font-variation-settings\",syntax:\"normal | [ <string> <number> ]#\",browsers:[\"E17\",\"FF62\",\"S11\",\"C62\",\"O49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings\"}],description:\"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values.\"},{name:\"offset-path\",status:\"experimental\",syntax:\"none | ray( [ <angle> && <size>? && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]\",browsers:[\"FF63\",\"C55\",\"O45\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-path\"}],description:'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\\n\\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'},{name:\"offset-rotate\",status:\"experimental\",syntax:\"[ auto | reverse ] || <angle>\",browsers:[\"FF69\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-rotate\"}],description:\"The offset-rotate CSS property defines the direction of the element while positioning along the offset path.\"},{name:\"max-inline-size\",browsers:[\"FF41\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the height of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-inline-size\"}],description:\"Logical 'max-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the width of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-block-size\"}],description:\"Logical 'max-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"scroll-padding\",syntax:\"[ auto | <length-percentage> ]{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding\"}],description:\"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands.\"},{name:\"transform-box\",syntax:\"border-box | fill-box | view-box\",browsers:[\"FF55\",\"S11\",\"C64\",\"O51\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-box\"}],description:\"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate.\"},{name:\"scroll-padding-top\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top\"}],description:\"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"gap\",syntax:\"<'row-gap'> <'column-gap'>?\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns.\"},{name:\"scroll-padding-right\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right\"}],description:\"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given ‘path’ element or basic shape.\",restrictions:[\"url\"]},{name:\"scroll-padding-bottom\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom\"}],description:\"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start\"}],description:\"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start\"}],description:\"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end\"}],description:\"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end\"}],description:\"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"place-self\",syntax:\"<'align-self'> <'justify-self'>?\",browsers:[\"FF45\",\"C59\",\"O46\"],description:\"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it.\"},{name:\"grid\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],syntax:\"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid\"}],description:\"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"place-items\",syntax:\"<'align-items'> <'justify-items'>?\",browsers:[\"FF45\",\"S11\",\"C59\",\"O46\"],description:\"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it.\"},{name:\"font-optical-sizing\",syntax:\"auto | none\",browsers:[\"E17\",\"FF62\",\"S11\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing\"}],description:\"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis.\"},{name:\"border-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start\"}],description:\"Logical 'border-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end\"}],description:\"Logical 'border-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start\"}],description:\"Logical 'border-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"offset\",status:\"experimental\",syntax:\"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\",browsers:[\"FF71\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset\"}],description:\"The offset CSS property is a shorthand property for animating an element along a defined path.\"},{name:\"border-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end\"}],description:\"Logical 'border-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"scroll-padding-block\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block\"}],description:\"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension.\"},{name:\"scroll-padding-inline\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline\"}],description:\"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension.\"},{name:\"motion\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"},{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.\",restrictions:[\"url\",\"length\",\"percentage\",\"angle\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"margin-inline\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline\"}],description:\"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-block\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block\"}],description:\"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-inline\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline\"}],description:\"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"font-size-adjust\",browsers:[\"FF40\",\"C54\",\"O41\"],values:[{name:\"none\",description:\"Do not preserve the font’s x-height.\"}],syntax:\"none | <number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust\"}],description:\"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.\",restrictions:[\"number\"]},{name:\"motion-path\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"}],description:\"Specifies the motion path the element gets positioned at.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"text-justify\",browsers:[\"E12\",\"FF55\",\"C32\",\"IE11\",\"O19\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"distribute-all-lines\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"},{name:\"newspaper\"}],syntax:\"auto | inter-character | inter-word | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-justify\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"motion-offset\",browsers:[\"C46\",\"O33\"],description:\"A distance that describes the position along the specified motion path.\",restrictions:[\"length\",\"percentage\"]},{name:\"inset-block-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-start\"}],description:\"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset\",syntax:\"<'top'>{1,4}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset\"}],description:\"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start\"}],description:\"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end\"}],description:\"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"scale\",syntax:\"none | <number>{1,3}\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scale\"}],description:\"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"translate\",syntax:\"none | <length-percentage> [ <length-percentage> <length>? ]?\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/translate\"}],description:\"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"rotate\",syntax:\"none | <angle> | [ x | y | z | <number>{3} ] && <angle>\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/rotate\"}],description:\"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"offset-anchor\",status:\"experimental\",syntax:\"auto | <position>\",browsers:[\"FF70\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-anchor\"}],description:\"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path.\"},{name:\"offset-position\",status:\"experimental\",syntax:\"auto | <position>\",description:\"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored.\"},{name:\"margin-block\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block\"}],description:\"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"user-zoom\",syntax:\"zoom | fixed\",description:\"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport.\"},{name:\"min-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"inset-block-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-end\"}],description:\"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"enable-background\",values:[{name:\"accumulate\",description:\"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target.\"},{name:\"new\",description:\"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device.\"}],description:\"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.\",restrictions:[\"integer\",\"length\",\"percentage\",\"enum\"]},{name:\"glyph-orientation-horizontal\",description:\"Controls glyph orientation when the inline-progression-direction is horizontal.\",restrictions:[\"angle\",\"number\"]},{name:\"glyph-orientation-vertical\",values:[{name:\"auto\",description:\"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation.\"}],description:\"Controls glyph orientation when the inline-progression-direction is vertical.\",restrictions:[\"angle\",\"number\",\"enum\"]},{name:\"kerning\",values:[{name:\"auto\",description:\"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used.\"}],description:\"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.\",restrictions:[\"length\",\"enum\"]},{name:\"image-orientation\",browsers:[\"FF26\"],values:[{name:\"flip\",description:\"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted.\"},{name:\"from-image\",description:\"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image.\"}],syntax:\"from-image | <angle> | [ <angle>? flip ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-orientation\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"angle\"]},{name:\"image-resolution\",status:\"experimental\",syntax:\"[ from-image || <resolution> ] && snap?\",description:\"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions.\"},{name:\"max-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The max-zoom CSS descriptor sets the maximum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom in any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"orientation\",syntax:\"auto | portrait | landscape\",description:\"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media).\"},{name:\"motion-rotation\",browsers:[\"C46\",\"O33\"],values:[{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Defines the direction of the element while positioning along the motion path.\",restrictions:[\"angle\"]},{name:\"scroll-snap-points-x\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x\"}],description:\"Defines the positioning of snap points along the x axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-points-y\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y\"}],description:\"Defines the positioning of snap points along the y axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-coordinate\",browsers:[\"FF39\"],values:[{name:\"none\",description:\"Specifies that this element does not contribute a snap point.\"}],status:\"obsolete\",syntax:\"none | <position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate\"}],description:\"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container’s snap-destination for the respective axis.\",restrictions:[\"position\",\"length\",\"percentage\",\"enum\"]},{name:\"scroll-snap-destination\",browsers:[\"FF39\"],status:\"obsolete\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination\"}],description:\"Define the x and y coordinate within the scroll container’s visual viewport which element snap points will align with.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-block-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-color\"}],description:\"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-style\"}],description:\"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-width\"}],description:\"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-color\"}],description:\"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-style\"}],description:\"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-width\"}],description:\"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block\"}],description:\"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet.\"},{name:\"border-inline\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline\"}],description:\"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet.\"},{name:\"inset-block\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block\"}],description:\"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline\"}],description:\"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"additive-symbols\",browsers:[\"FF33\"],syntax:\"[ <integer> && <symbol> ]#\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.\",restrictions:[\"integer\",\"string\",\"image\",\"identifier\"]},{name:\"alt\",browsers:[\"S9\"],values:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/alt\"}],description:\"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.\",restrictions:[\"string\",\"enum\"]},{name:\"behavior\",browsers:[\"IE6\"],description:\"IE only. Used to extend behaviors of the browser.\",restrictions:[\"url\"]},{name:\"box-decoration-break\",browsers:[\"FF32\",\"S6.1\",\"C22\",\"O15\"],values:[{name:\"clone\",description:\"Each box is independently wrapped with the border and padding.\"},{name:\"slice\",description:\"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward.\"}],syntax:\"slice | clone\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break\"}],description:\"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.\",restrictions:[\"enum\"]},{name:\"fallback\",browsers:[\"FF33\"],syntax:\"<counter-style-name>\",description:\"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can’t create a representation for a given counter value.\",restrictions:[\"identifier\"]},{name:\"font-language-override\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\"}],syntax:\"normal | <string>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-language-override\"}],description:\"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\",restrictions:[\"string\"]},{name:\"font-synthesis\",browsers:[\"FF34\",\"S9\"],values:[{name:\"none\",description:\"Disallow all synthetic faces.\"},{name:\"style\",description:\"Allow synthetic italic faces.\"},{name:\"weight\",description:\"Allow synthetic bold faces.\"}],syntax:\"none | [ weight || style ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-synthesis\"}],description:\"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.\",restrictions:[\"enum\"]},{name:\"font-variant-alternates\",browsers:[\"FF34\"],values:[{name:\"annotation()\",description:\"Enables display of alternate annotation forms.\"},{name:\"character-variant()\",description:\"Enables display of specific character variants.\"},{name:\"historical-forms\",description:\"Enables display of historical forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"ornaments()\",description:\"Enables replacement of default glyphs with ornaments, if provided in the font.\"},{name:\"styleset()\",description:\"Enables display with stylistic sets.\"},{name:\"stylistic()\",description:\"Enables display of stylistic alternates.\"},{name:\"swash()\",description:\"Enables display of swash glyphs.\"}],syntax:\"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates\"}],description:\"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.\",restrictions:[\"enum\"]},{name:\"font-variant-position\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"sub\",description:\"Enables display of subscript variants (OpenType feature: subs).\"},{name:\"super\",description:\"Enables display of superscript variants (OpenType feature: sups).\"}],syntax:\"normal | sub | super\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-position\"}],description:\"Specifies the vertical position\",restrictions:[\"enum\"]},{name:\"ime-mode\",browsers:[\"E12\",\"FF3\",\"IE5\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],status:\"obsolete\",syntax:\"auto | normal | active | inactive | disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ime-mode\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"mask-image\",browsers:[\"E16\",\"FF53\",\"S4\",\"C1\",\"O15\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],syntax:\"<mask-reference>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-image\"}],description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-mode\",browsers:[\"FF53\"],values:[{name:\"alpha\",description:\"Alpha values of the mask layer image should be used as the mask values.\"},{name:\"auto\",description:\"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image.\"},{name:\"luminance\",description:\"Luminance values of the mask layer image should be used as the mask values.\"}],syntax:\"<masking-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-mode\"}],description:\"Indicates whether the mask layer image is treated as luminance mask or alpha mask.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-origin\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],syntax:\"<geometry-box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-origin\"}],description:\"Specifies the mask positioning area.\",restrictions:[\"geometry-box\",\"enum\"]},{name:\"mask-position\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-position\"}],description:\"Specifies how mask layer images are positioned.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"mask-repeat\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-repeat\"}],description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"mask-size\",browsers:[\"E18\",\"FF53\",\"S4\",\"C4\",\"O15\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-size\"}],description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-moz-animation\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-moz-animation-delay\",browsers:[\"FF9\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-moz-animation-direction\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-moz-animation-duration\",browsers:[\"FF9\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-moz-animation-iteration-count\",browsers:[\"FF9\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-moz-animation-name\",browsers:[\"FF9\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-moz-animation-play-state\",browsers:[\"FF9\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-moz-animation-timing-function\",browsers:[\"FF9\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-moz-appearance\",browsers:[\"FF1\"],values:[{name:\"button\"},{name:\"button-arrow-down\"},{name:\"button-arrow-next\"},{name:\"button-arrow-previous\"},{name:\"button-arrow-up\"},{name:\"button-bevel\"},{name:\"checkbox\"},{name:\"checkbox-container\"},{name:\"checkbox-label\"},{name:\"dialog\"},{name:\"groupbox\"},{name:\"listbox\"},{name:\"menuarrow\"},{name:\"menuimage\"},{name:\"menuitem\"},{name:\"menuitemtext\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"menupopup\"},{name:\"menuradio\"},{name:\"menuseparator\"},{name:\"-moz-mac-unified-toolbar\"},{name:\"-moz-win-borderless-glass\"},{name:\"-moz-win-browsertabbar-toolbox\"},{name:\"-moz-win-communications-toolbox\"},{name:\"-moz-win-glass\"},{name:\"-moz-win-media-toolbox\"},{name:\"none\"},{name:\"progressbar\"},{name:\"progresschunk\"},{name:\"radio\"},{name:\"radio-container\"},{name:\"radio-label\"},{name:\"radiomenuitem\"},{name:\"resizer\"},{name:\"resizerpanel\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbar-small\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"separator\"},{name:\"spinner\"},{name:\"spinner-downbutton\"},{name:\"spinner-textfield\"},{name:\"spinner-upbutton\"},{name:\"statusbar\"},{name:\"statusbarpanel\"},{name:\"tab\"},{name:\"tabpanels\"},{name:\"tab-scroll-arrow-back\"},{name:\"tab-scroll-arrow-forward\"},{name:\"textfield\"},{name:\"textfield-multiline\"},{name:\"toolbar\"},{name:\"toolbox\"},{name:\"tooltip\"},{name:\"treeheadercell\"},{name:\"treeheadersortarrow\"},{name:\"treeitem\"},{name:\"treetwistyopen\"},{name:\"treeview\"},{name:\"treewisty\"},{name:\"window\"}],status:\"nonstandard\",syntax:\"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized\",description:\"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.\",restrictions:[\"enum\"]},{name:\"-moz-backface-visibility\",browsers:[\"FF10\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-moz-background-clip\",browsers:[\"FF1-3.6\"],values:[{name:\"padding\"}],description:\"Determines the background painting area.\",restrictions:[\"box\",\"enum\"]},{name:\"-moz-background-inline-policy\",browsers:[\"FF1\"],values:[{name:\"bounding-box\"},{name:\"continuous\"},{name:\"each-box\"}],description:\"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.\",restrictions:[\"enum\"]},{name:\"-moz-background-origin\",browsers:[\"FF1\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-moz-border-bottom-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-image\",browsers:[\"FF3.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-moz-border-left-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-right-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-top-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors\"}],description:\"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-box-align\",browsers:[\"FF1\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-direction\",browsers:[\"FF1\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-moz-box-flex\",browsers:[\"FF1\"],description:\"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.\",restrictions:[\"number\"]},{name:\"-moz-box-flexgroup\",browsers:[\"FF1\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-moz-box-ordinal-group\",browsers:[\"FF1\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-moz-box-orient\",browsers:[\"FF1\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-moz-box-pack\",browsers:[\"FF1\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-sizing\",browsers:[\"FF1\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"},{name:\"padding-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the padding box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-moz-column-count\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-moz-column-gap\",browsers:[\"FF3.5\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-moz-column-rule\",browsers:[\"FF3.5\"],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-moz-column-rule-color\",browsers:[\"FF3.5\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-moz-column-rule-style\",browsers:[\"FF3.5\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-moz-column-rule-width\",browsers:[\"FF3.5\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-moz-columns\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-moz-column-width\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-moz-font-feature-settings\",browsers:[\"FF4\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",browsers:[\"FF4\"]},{name:\"on\",browsers:[\"FF4\"]}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-moz-hyphens\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-moz-perspective\",browsers:[\"FF10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-moz-perspective-origin\",browsers:[\"FF10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-moz-text-align-last\",browsers:[\"FF12\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-color\",browsers:[\"FF6\"],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"-moz-text-decoration-line\",browsers:[\"FF6\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-style\",browsers:[\"FF6\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"-moz-text-size-adjust\",browsers:[\"FF\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-moz-transform\",browsers:[\"FF3.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-moz-transform-origin\",browsers:[\"FF3.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-moz-transition\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-moz-transition-delay\",browsers:[\"FF4\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-moz-transition-duration\",browsers:[\"FF4\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-moz-transition-property\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-moz-transition-timing-function\",browsers:[\"FF4\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-moz-user-focus\",browsers:[\"FF1\"],values:[{name:\"ignore\"},{name:\"normal\"}],status:\"nonstandard\",syntax:\"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus\"}],description:\"Used to indicate whether the element can have focus.\"},{name:\"-moz-user-select\",browsers:[\"FF1.5\"],values:[{name:\"all\"},{name:\"element\"},{name:\"elements\"},{name:\"-moz-all\"},{name:\"-moz-none\"},{name:\"none\"},{name:\"text\"},{name:\"toggle\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-accelerator\",browsers:[\"E\",\"IE10\"],values:[{name:\"false\",description:\"The element does not contain an accelerator key sequence.\"},{name:\"true\",description:\"The element contains an accelerator key sequence.\"}],status:\"nonstandard\",syntax:\"false | true\",description:\"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed\",restrictions:[\"enum\"]},{name:\"-ms-behavior\",browsers:[\"IE8\"],description:\"IE only. Used to extend behaviors of the browser\",restrictions:[\"url\"]},{name:\"-ms-block-progression\",browsers:[\"IE8\"],values:[{name:\"bt\",description:\"Bottom-to-top block flow. Layout is horizontal.\"},{name:\"lr\",description:\"Left-to-right direction. The flow orientation is vertical.\"},{name:\"rl\",description:\"Right-to-left direction. The flow orientation is vertical.\"},{name:\"tb\",description:\"Top-to-bottom direction. The flow orientation is horizontal.\"}],status:\"nonstandard\",syntax:\"tb | rl | bt | lr\",description:\"Sets the block-progression value and the flow orientation\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\",description:\"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown.\"},{name:\"none\",description:\"A bounce effect is shown when the user hits a zoom limit during a manipulation.\"}],status:\"nonstandard\",syntax:\"none | chained\",description:\"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation.\"},{name:\"-ms-content-zooming\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not zoomable.\"},{name:\"zoom\",description:\"The element is zoomable.\"}],status:\"nonstandard\",syntax:\"none | zoom\",description:\"Specifies whether zooming is enabled.\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-limit\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>\",description:\"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-max\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the maximum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the minimum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-snap\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'},{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>\",description:\"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.\"},{name:\"-ms-content-zoom-snap-points\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )\",description:\"Defines where zoom snap-points are located.\"},{name:\"-ms-content-zoom-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Specifies how zooming is affected by defined snap-points.\",restrictions:[\"enum\"]},{name:\"-ms-filter\",browsers:[\"IE8-9\"],status:\"nonstandard\",syntax:\"<string>\",description:\"IE only. Used to produce visual effects.\",restrictions:[\"string\"]},{name:\"-ms-flex\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],description:\"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"-ms-flex-align\",browsers:[\"IE10\"],values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'.\"}],description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-direction\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-flow\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"-ms-flex-item-align\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"-ms-flex-line-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"distribute\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"justify\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-order\",browsers:[\"IE10\"],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"-ms-flex-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"distribute\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"justify\",description:\"Flex items are evenly distributed in the line.\"},{name:\"start\",description:\"Flex items are packed toward the start of the line.\"}],description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-wrap\",browsers:[\"IE10\"],values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"-ms-flow-from\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-flow-into\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-grid-column\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"Used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-column-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's column.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column.\"}],description:\"Aligns the columns in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-columns\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-column-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of columns to span.\",restrictions:[\"integer\"]},{name:\"-ms-grid-layer\",browsers:[\"E\",\"IE10\"],description:\"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.\",restrictions:[\"integer\"]},{name:\"-ms-grid-row\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"grid-row is used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-row-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's row.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row.\"}],description:\"Aligns the rows in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-rows\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-row-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of rows to span.\",restrictions:[\"integer\"]},{name:\"-ms-high-contrast-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Properties will be adjusted as applicable.\"},{name:\"none\",description:\"No adjustments will be applied.\"}],status:\"nonstandard\",syntax:\"auto | none\",description:\"Specifies if properties should be adjusted in high contrast mode.\",restrictions:[\"enum\"]},{name:\"-ms-hyphenate-limit-chars\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The user agent chooses a value that adapts to the current layout.\"}],status:\"nonstandard\",syntax:\"auto | <integer>{1,3}\",description:\"Specifies the minimum number of characters in a hyphenated word.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-lines\",browsers:[\"E\",\"IE10\"],values:[{name:\"no-limit\",description:\"There is no limit.\"}],status:\"nonstandard\",syntax:\"no-limit | <integer>\",description:\"Indicates the maximum number of successive hyphenated lines in an element.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-zone\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage> | <length>\",description:\"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.\",restrictions:[\"percentage\",\"length\"]},{name:\"-ms-hyphens\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-ms-ime-mode\",browsers:[\"IE10\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"-ms-interpolation-mode\",browsers:[\"IE7\"],values:[{name:\"bicubic\"},{name:\"nearest-neighbor\"}],description:\"Gets or sets the interpolation (resampling) method used to stretch images.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid\",browsers:[\"E\",\"IE10\"],values:[{name:\"char\",description:\"Any of the range of character values available to the -ms-layout-grid-char property.\"},{name:\"line\",description:\"Any of the range of line values available to the -ms-layout-grid-line property.\"},{name:\"mode\",description:\"Any of the range of mode values available to the -ms-layout-grid-mode property.\"},{name:\"type\",description:\"Any of the range of type values available to the -ms-layout-grid-type property.\"}],description:\"Sets or retrieves the composite document grid properties that specify the layout of text characters.\"},{name:\"-ms-layout-grid-char\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No character grid is set.\"}],description:\"Sets or retrieves the size of the character grid used for rendering the text content of an element.\",restrictions:[\"enum\",\"length\",\"percentage\"]},{name:\"-ms-layout-grid-line\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No grid line is set.\"}],description:\"Sets or retrieves the gridline value used for rendering the text content of an element.\",restrictions:[\"length\"]},{name:\"-ms-layout-grid-mode\",browsers:[\"E\",\"IE10\"],values:[{name:\"both\",description:\"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element.\"},{name:\"char\",description:\"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled.\"},{name:\"line\",description:\"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout.\"},{name:\"none\",description:\"No grid is used.\"}],description:\"Gets or sets whether the text layout grid uses two dimensions.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"fixed\",description:\"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default.\"},{name:\"loose\",description:\"Default. Grid used for Japanese and Korean characters.\"},{name:\"strict\",description:\"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid.\"}],description:\"Sets or retrieves the type of grid used for rendering the text content of an element.\",restrictions:[\"enum\"]},{name:\"-ms-line-break\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"keep-all\",description:\"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean.\"},{name:\"newspaper\",description:\"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks CJK scripts using a normal set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"-ms-overflow-style\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"No preference, UA should use the first scrolling method in the list that it supports.\"},{name:\"-ms-autohiding-scrollbar\",description:\"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions.\"},{name:\"none\",description:\"Indicates the element does not display scrollbars or panning indicators, even when its content overflows.\"},{name:\"scrollbar\",description:'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element.'}],status:\"nonstandard\",syntax:\"auto | none | scrollbar | -ms-autohiding-scrollbar\",description:\"Specify whether content is clipped when it overflows the element's content area.\",restrictions:[\"enum\"]},{name:\"-ms-perspective\",browsers:[\"IE10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-ms-perspective-origin\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-x\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X  position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-y\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-progress-appearance\",browsers:[\"IE10\"],values:[{name:\"bar\"},{name:\"ring\"}],description:\"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.\",restrictions:[\"enum\"]},{name:\"-ms-scrollbar-3dlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-arrow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-base-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-darkshadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-face-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-highlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-shadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-track-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scroll-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\"},{name:\"none\"}],status:\"nonstandard\",syntax:\"chained | none\",description:\"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-limit\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-rails\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"railed\"}],status:\"nonstandard\",syntax:\"none | railed\",description:\"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-snap-points-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the x-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-points-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the y-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-translation\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"vertical-to-horizontal\"}],status:\"nonstandard\",syntax:\"none | vertical-to-horizontal\",description:\"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.\",restrictions:[\"enum\"]},{name:\"-ms-text-align-last\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-ms-text-autospace\",browsers:[\"E\",\"IE8\"],values:[{name:\"ideograph-alpha\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.\"},{name:\"ideograph-numeric\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs.\"},{name:\"ideograph-parenthesis\",description:\"Creates extra spacing between normal (non wide) parenthesis and ideographs.\"},{name:\"ideograph-space\",description:\"Extends the width of the space character while surrounded by ideographs.\"},{name:\"none\",description:\"No extra space is created.\"},{name:\"punctuation\",description:\"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.\"}],status:\"nonstandard\",syntax:\"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space\",description:\"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.\",restrictions:[\"enum\"]},{name:\"-ms-text-combine-horizontal\",browsers:[\"E\",\"IE11\"],values:[{name:\"all\",description:\"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box.\"},{name:\"digits\",description:\"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030–U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box.\"},{name:\"none\",description:\"No special processing.\"}],description:\"This property specifies the combination of multiple characters into the space of a single character.\",restrictions:[\"enum\",\"integer\"]},{name:\"-ms-text-justify\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"-ms-text-kashida-space\",browsers:[\"E\",\"IE10\"],description:\"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.\",restrictions:[\"percentage\"]},{name:\"-ms-text-overflow\",browsers:[\"IE10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-ms-text-size-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-ms-text-underline-position\",browsers:[\"E\",\"IE10\"],values:[{name:\"alphabetic\",description:\"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders.\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"over\",description:\"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides.\"},{name:\"under\",description:\"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline.\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"-ms-touch-action\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"The element is a passive element, with several exceptions.\"},{name:\"double-tap-zoom\",description:\"The element will zoom on double-tap.\"},{name:\"manipulation\",description:\"The element is a manipulation-causing element.\"},{name:\"none\",description:\"The element is a manipulation-blocking element.\"},{name:\"pan-x\",description:\"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\",description:\"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content.\"}],description:\"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.\",restrictions:[\"enum\"]},{name:\"-ms-touch-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"grippers\",description:\"Grippers are always on.\"},{name:\"none\",description:\"Grippers are always off.\"}],status:\"nonstandard\",syntax:\"grippers | none\",description:\"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.\",restrictions:[\"enum\"]},{name:\"-ms-transform\",browsers:[\"IE9-9\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-ms-transform-origin\",browsers:[\"IE9-9\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-ms-transform-origin-x\",browsers:[\"IE10\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-y\",browsers:[\"IE10\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-z\",browsers:[\"IE10\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-user-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"element\"},{name:\"none\"},{name:\"text\"}],status:\"nonstandard\",syntax:\"none | element | text\",description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-word-break\",browsers:[\"IE8\"],values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"-ms-word-wrap\",browsers:[\"IE8\"],values:[{name:\"break-word\",description:\"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-flow\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"For floats an exclusion is created, for all other elements an exclusion is not created.\"},{name:\"both\",description:\"Inline flow content can flow on all sides of the exclusion.\"},{name:\"clear\",description:\"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty.\"},{name:\"end\",description:\"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty.\"},{name:\"maximum\",description:\"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty.\"},{name:\"minimum\",description:\"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content’s containing block, and must leave the other edge of the exclusion empty.\"},{name:\"start\",description:\"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty.\"}],status:\"nonstandard\",syntax:\"auto | both | start | end | maximum | clear\",description:\"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-margin\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that is used to offset the inner wrap shape from other shapes.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-wrap-through\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element.\"},{name:\"wrap\",description:\"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element.\"}],status:\"nonstandard\",syntax:\"wrap | none\",description:\"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.\",restrictions:[\"enum\"]},{name:\"-ms-writing-mode\",browsers:[\"IE8\"],values:[{name:\"bt-lr\"},{name:\"bt-rl\"},{name:\"lr-bt\"},{name:\"lr-tb\"},{name:\"rl-bt\"},{name:\"rl-tb\"},{name:\"tb-lr\"},{name:\"tb-rl\"}],description:\"Shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"-ms-zoom\",browsers:[\"IE8\"],values:[{name:\"normal\"}],description:\"Sets or retrieves the magnification scale of the object.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"-ms-zoom-animation\",browsers:[\"IE10\"],values:[{name:\"default\"},{name:\"none\"}],description:\"Gets or sets a value that indicates whether an animation is used when zooming.\",restrictions:[\"enum\"]},{name:\"nav-down\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-index\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The element's sequential navigation order is assigned automatically by the user agent.\"}],description:\"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').\",restrictions:[\"number\"]},{name:\"nav-left\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-right\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-up\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"negative\",browsers:[\"FF33\"],syntax:\"<symbol> <symbol>?\",description:\"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.\",restrictions:[\"image\",\"identifier\",\"string\"]},{name:\"-o-animation\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-o-animation-delay\",browsers:[\"O12\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-o-animation-direction\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-o-animation-duration\",browsers:[\"O12\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-o-animation-fill-mode\",browsers:[\"O12\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-o-animation-iteration-count\",browsers:[\"O12\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-o-animation-name\",browsers:[\"O12\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-o-animation-play-state\",browsers:[\"O12\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-o-animation-timing-function\",browsers:[\"O12\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-o-border-image\",browsers:[\"O11.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"image\",\"enum\"]},{name:\"-o-object-fit\",browsers:[\"O10.6\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"-o-object-position\",browsers:[\"O10.6\"],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-o-table-baseline\",browsers:[\"O9.6\"],description:\"Determines which row of a inline-table should be used as baseline of inline-table.\",restrictions:[\"integer\"]},{name:\"-o-tab-size\",browsers:[\"O10.6\"],description:\"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"-o-text-overflow\",browsers:[\"O10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-o-transform\",browsers:[\"O10.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-o-transform-origin\",browsers:[\"O10.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"positon\",\"length\",\"percentage\"]},{name:\"-o-transition\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-o-transition-delay\",browsers:[\"O11.5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-o-transition-duration\",browsers:[\"O11.5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-o-transition-property\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-o-transition-timing-function\",browsers:[\"O11.5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"offset-block-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-block-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"pad\",browsers:[\"FF33\"],syntax:\"<integer> && <symbol>\",description:\"@counter-style descriptor. Specifies a “fixed-width” counter style, where representations shorter than the pad value are padded with a particular <symbol>\",restrictions:[\"integer\",\"image\",\"string\",\"identifier\"]},{name:\"prefix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"range\",browsers:[\"FF33\"],values:[{name:\"auto\",description:\"The range depends on the counter system.\"},{name:\"infinite\",description:\"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity.\"}],syntax:\"[ [ <integer> | infinite ]{2} ]# | auto\",description:\"@counter-style descriptor. Defines the ranges over which the counter style is defined.\",restrictions:[\"integer\",\"enum\"]},{name:\"ruby-align\",browsers:[\"FF38\"],values:[{name:\"auto\",browsers:[\"FF38\"],description:\"The user agent determines how the ruby contents are aligned. This is the initial value.\"},{name:\"center\",description:\"The ruby content is centered within its box.\"},{name:\"distribute-letter\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text.\"},{name:\"distribute-space\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text.\"},{name:\"left\",description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"line-edge\",browsers:[\"FF38\"],description:\"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base.\"},{name:\"right\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the end edge of the base.\"},{name:\"start\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"space-between\",browsers:[\"FF38\"],description:\"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),\"},{name:\"space-around\",browsers:[\"FF38\"],description:\"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content.\"}],status:\"experimental\",syntax:\"start | center | space-between | space-around\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-align\"}],description:\"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.\",restrictions:[\"enum\"]},{name:\"ruby-overhang\",browsers:[\"FF10\",\"IE5\"],values:[{name:\"auto\",description:\"The ruby text can overhang text adjacent to the base on either side. This is the initial value.\"},{name:\"end\",description:\"The ruby text can overhang the text that follows it.\"},{name:\"none\",description:\"The ruby text cannot overhang any text adjacent to its base, only its own base.\"},{name:\"start\",description:\"The ruby text can overhang the text that precedes it.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"ruby-position\",browsers:[\"E12\",\"FF38\"],values:[{name:\"after\",description:\"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text.\"},{name:\"before\",description:\"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems.\"},{name:\"inline\"},{name:\"right\",description:\"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction.\"}],status:\"experimental\",syntax:\"over | under | inter-character\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-position\"}],description:\"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.\",restrictions:[\"enum\"]},{name:\"ruby-span\",browsers:[\"FF10\"],values:[{name:\"attr(x)\",description:\"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element.\"},{name:\"none\",description:\"No spanning. The computed value is '1'.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"scrollbar-3dlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-arrow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color\"}],description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"scrollbar-base-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color\"}],description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"scrollbar-darkshadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color\"}],description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-face-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color\"}],description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-highlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-shadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color\"}],description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-track-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-track-color\"}],description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"suffix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"system\",browsers:[\"FF33\"],values:[{name:\"additive\",description:\"Represents “sign-value” numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together.\"},{name:\"alphabetic\",description:'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\".'},{name:\"cyclic\",description:\"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list.\"},{name:\"extends\",description:\"Use the algorithm of another counter style, but alter other aspects.\"},{name:\"fixed\",description:\"Runs through its list of counter symbols once, then falls back.\"},{name:\"numeric\",description:\"interprets the list of counter symbols as digits to a \\\"place-value\\\" numbering system, similar to the default 'decimal' counter style.\"},{name:\"symbolic\",description:\"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list.\"}],syntax:\"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]\",description:\"@counter-style descriptor. Specifies which algorithm will be used to construct the counter’s representation based on the counter value.\",restrictions:[\"enum\",\"integer\"]},{name:\"symbols\",browsers:[\"FF33\"],syntax:\"<symbol>+\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"-webkit-animation\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-webkit-animation-delay\",browsers:[\"C\",\"S5\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-webkit-animation-direction\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-duration\",browsers:[\"C\",\"S5\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-webkit-animation-fill-mode\",browsers:[\"C\",\"S5\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-iteration-count\",browsers:[\"C\",\"S5\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-webkit-animation-name\",browsers:[\"C\",\"S5\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-webkit-animation-play-state\",browsers:[\"C\",\"S5\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-timing-function\",browsers:[\"C\",\"S5\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-webkit-appearance\",browsers:[\"C\",\"S3\"],values:[{name:\"button\"},{name:\"button-bevel\"},{name:\"caps-lock-indicator\"},{name:\"caret\"},{name:\"checkbox\"},{name:\"default-button\"},{name:\"listbox\"},{name:\"listitem\"},{name:\"media-fullscreen-button\"},{name:\"media-mute-button\"},{name:\"media-play-button\"},{name:\"media-seek-back-button\"},{name:\"media-seek-forward-button\"},{name:\"media-slider\"},{name:\"media-sliderthumb\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"none\"},{name:\"push-button\"},{name:\"radio\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbargripper-horizontal\"},{name:\"scrollbargripper-vertical\"},{name:\"scrollbarthumb-horizontal\"},{name:\"scrollbarthumb-vertical\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"searchfield\"},{name:\"searchfield-cancel-button\"},{name:\"searchfield-decoration\"},{name:\"searchfield-results-button\"},{name:\"searchfield-results-decoration\"},{name:\"slider-horizontal\"},{name:\"sliderthumb-horizontal\"},{name:\"sliderthumb-vertical\"},{name:\"slider-vertical\"},{name:\"square-button\"},{name:\"textarea\"},{name:\"textfield\"}],status:\"nonstandard\",syntax:\"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\",description:\"Changes the appearance of buttons and other controls to resemble native controls.\",restrictions:[\"enum\"]},{name:\"-webkit-backdrop-filter\",browsers:[\"S9\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Applies a filter effect where the first filter in the list takes the element's background image as the input image.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-backface-visibility\",browsers:[\"C\",\"S5\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-webkit-background-clip\",browsers:[\"C\",\"S3\"],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"-webkit-background-composite\",browsers:[\"C\",\"S3\"],values:[{name:\"border\"},{name:\"padding\"}],restrictions:[\"enum\"]},{name:\"-webkit-background-origin\",browsers:[\"C\",\"S3\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-webkit-border-image\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-webkit-box-align\",browsers:[\"C\",\"S3\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies the alignment of nested elements within an outer flexible box element.\",restrictions:[\"enum\"]},{name:\"-webkit-box-direction\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-webkit-box-flex\",browsers:[\"C\",\"S3\"],description:\"Specifies an element's flexibility.\",restrictions:[\"number\"]},{name:\"-webkit-box-flex-group\",browsers:[\"C\",\"S3\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-webkit-box-ordinal-group\",browsers:[\"C\",\"S3\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-webkit-box-orient\",browsers:[\"C\",\"S3\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-webkit-box-pack\",browsers:[\"C\",\"S3\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies alignment of child elements within the current element in the direction of orientation.\",restrictions:[\"enum\"]},{name:\"-webkit-box-reflect\",browsers:[\"S4\",\"C4\",\"O15\"],values:[{name:\"above\",description:\"The reflection appears above the border box.\"},{name:\"below\",description:\"The reflection appears below the border box.\"},{name:\"left\",description:\"The reflection appears to the left of the border box.\"},{name:\"right\",description:\"The reflection appears to the right of the border box.\"}],status:\"nonstandard\",syntax:\"[ above | below | right | left ]? <length>? <image>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect\"}],description:\"Defines a reflection of a border box.\"},{name:\"-webkit-box-sizing\",browsers:[\"C\",\"S3\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-webkit-break-after\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-before\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-inside\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-after\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-before\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-inside\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-count\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-webkit-column-gap\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-webkit-column-rule\",browsers:[\"C\",\"S3\"],description:\"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-webkit-column-rule-color\",browsers:[\"C\",\"S3\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-webkit-column-rule-style\",browsers:[\"C\",\"S3\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-webkit-column-rule-width\",browsers:[\"C\",\"S3\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-webkit-columns\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-webkit-column-span\",browsers:[\"C\",\"S3\"],values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-width\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-webkit-filter\",browsers:[\"C18\",\"O15\",\"S6\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-flow-from\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-flow-into\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-font-feature-settings\",browsers:[\"C16\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\"},{name:\"on\"}],description:\"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-webkit-hyphens\",browsers:[\"S5.1\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-webkit-line-break\",browsers:[\"C\",\"S3\"],values:[{name:\"after-white-space\"},{name:\"normal\"}],description:\"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.\"},{name:\"-webkit-margin-bottom-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-start\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"}],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-margin-top-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-mask-clip\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content | text ]#\",description:\"Determines the mask painting area, which determines the area that is affected by the mask.\",restrictions:[\"box\"]},{name:\"-webkit-mask-image\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],status:\"nonstandard\",syntax:\"<mask-reference>#\",description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"-webkit-mask-origin\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content ]#\",description:\"Specifies the mask positioning area.\",restrictions:[\"box\"]},{name:\"-webkit-mask-repeat\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"<repeat-style>#\",description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"-webkit-mask-size\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],status:\"nonstandard\",syntax:\"<bg-size>#\",description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-webkit-nbsp-mode\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\"},{name:\"space\"}],description:\"Defines the behavior of nonbreaking spaces within text.\"},{name:\"-webkit-overflow-scrolling\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\"},{name:\"touch\"}],status:\"nonstandard\",syntax:\"auto | touch\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling\"}],description:\"Specifies whether to use native-style scrolling in an overflow:scroll element.\"},{name:\"-webkit-padding-start\",browsers:[\"C\",\"S3\"],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-perspective\",browsers:[\"C\",\"S4\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-webkit-perspective-origin\",browsers:[\"C\",\"S4\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-webkit-region-fragment\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Content flows as it would in a regular content box.\"},{name:\"break\",description:\"If the content fits within the CSS Region, then this property has no effect.\"}],description:\"The 'region-fragment' property controls the behavior of the last region associated with a named flow.\",restrictions:[\"enum\"]},{name:\"-webkit-tap-highlight-color\",browsers:[\"E\",\"C\",\"S3.1\"],status:\"nonstandard\",syntax:\"<color>\",restrictions:[\"color\"]},{name:\"-webkit-text-fill-color\",browsers:[\"E12\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-size-adjust\",browsers:[\"E\",\"C\",\"S3\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"percentage\"]},{name:\"-webkit-text-stroke\",browsers:[\"E15\",\"FF49\",\"S3\",\"C4\",\"O15\"],status:\"nonstandard\",syntax:\"<length> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke\"}],restrictions:[\"length\",\"line-width\",\"color\",\"percentage\"]},{name:\"-webkit-text-stroke-color\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-stroke-width\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width\"}],restrictions:[\"length\",\"line-width\",\"percentage\"]},{name:\"-webkit-touch-callout\",browsers:[\"S3\"],values:[{name:\"none\"}],status:\"nonstandard\",syntax:\"default | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout\"}],restrictions:[\"enum\"]},{name:\"-webkit-transform\",browsers:[\"C\",\"O12\",\"S3.1\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-webkit-transform-origin\",browsers:[\"C\",\"O15\",\"S3.1\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-x\",browsers:[\"C\",\"S3.1\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-y\",browsers:[\"C\",\"S3.1\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-z\",browsers:[\"C\",\"S4\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-style\",browsers:[\"C\",\"S4\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"-webkit-transition\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-webkit-transition-delay\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-webkit-transition-duration\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-webkit-transition-property\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-webkit-transition-timing-function\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-webkit-user-drag\",browsers:[\"S3\"],values:[{name:\"auto\"},{name:\"element\"},{name:\"none\"}],restrictions:[\"enum\"]},{name:\"-webkit-user-modify\",browsers:[\"C\",\"S3\"],values:[{name:\"read-only\"},{name:\"read-write\"},{name:\"read-write-plaintext-only\"}],status:\"nonstandard\",syntax:\"read-only | read-write | read-write-plaintext-only\",description:\"Determines whether a user can edit the content of an element.\",restrictions:[\"enum\"]},{name:\"-webkit-user-select\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"},{name:\"none\"},{name:\"text\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-ime-align\",status:\"nonstandard\",syntax:\"auto | after\",description:\"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active.\"},{name:\"-moz-binding\",status:\"nonstandard\",syntax:\"<url> | none\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-binding\"}],description:\"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element.\"},{name:\"-moz-context-properties\",status:\"nonstandard\",syntax:\"none | [ fill | fill-opacity | stroke | stroke-opacity ]#\",browsers:[\"FF55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties\"}],description:\"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\\n\\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.\"},{name:\"-moz-float-edge\",status:\"nonstandard\",syntax:\"border-box | content-box | margin-box | padding-box\",description:\"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.\"},{name:\"-moz-force-broken-image-icon\",status:\"nonstandard\",syntax:\"<integer>\",description:\"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.\"},{name:\"-moz-image-region\",status:\"nonstandard\",syntax:\"<shape> | auto\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region\"}],description:\"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\"},{name:\"-moz-orient\",status:\"nonstandard\",syntax:\"inline | block | horizontal | vertical\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-orient\"}],description:\"The -moz-orient CSS property specifies the orientation of the element to which it's applied.\"},{name:\"-moz-outline-radius\",status:\"nonstandard\",syntax:\"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?\",browsers:[\"FF1.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius\"}],description:\"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners.\"},{name:\"-moz-outline-radius-bottomleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline.\"},{name:\"-moz-outline-radius-bottomright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline.\"},{name:\"-moz-outline-radius-topleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline.\"},{name:\"-moz-outline-radius-topright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline.\"},{name:\"-moz-stack-sizing\",status:\"nonstandard\",syntax:\"ignore | stretch-to-fit\",description:\"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible.\"},{name:\"-moz-text-blink\",status:\"nonstandard\",syntax:\"none | blink\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink\"}],description:\"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode.\"},{name:\"-moz-user-input\",status:\"nonstandard\",syntax:\"auto | none | enabled | disabled\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input\"}],description:\"In Mozilla applications, -moz-user-input determines if an element will accept user input.\"},{name:\"-moz-user-modify\",status:\"nonstandard\",syntax:\"read-only | read-write | write-only\",description:\"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user.\"},{name:\"-moz-window-dragging\",status:\"nonstandard\",syntax:\"drag | no-drag\",description:\"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X.\"},{name:\"-moz-window-shadow\",status:\"nonstandard\",syntax:\"default | menu | tooltip | sheet | none\",browsers:[\"FF3.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow\"}],description:\"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X.\"},{name:\"-webkit-border-before\",status:\"nonstandard\",syntax:\"<'border-width'> || <'border-style'> || <'color'>\",browsers:[\"S5.1\",\"C8\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before\"}],description:\"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.\"},{name:\"-webkit-border-before-color\",status:\"nonstandard\",syntax:\"<'color'>\",description:\"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-style\",status:\"nonstandard\",syntax:\"<'border-style'>\",description:\"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-width\",status:\"nonstandard\",syntax:\"<'border-width'>\",description:\"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-line-clamp\",syntax:\"none | <integer>\",browsers:[\"E17\",\"FF68\",\"S5\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp\"}],description:\"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines.\"},{name:\"-webkit-mask\",status:\"nonstandard\",syntax:\"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#\",description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"-webkit-mask-attachment\",status:\"nonstandard\",syntax:\"<attachment>#\",browsers:[\"S4\",\"C1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment\"}],description:\"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block.\"},{name:\"-webkit-mask-composite\",status:\"nonstandard\",syntax:\"<composite-style>#\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite\"}],description:\"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\"},{name:\"-webkit-mask-position\",status:\"nonstandard\",syntax:\"<position>#\",description:\"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image.\"},{name:\"-webkit-mask-position-x\",status:\"nonstandard\",syntax:\"[ <length-percentage> | left | center | right ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x\"}],description:\"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.\"},{name:\"-webkit-mask-position-y\",status:\"nonstandard\",syntax:\"[ <length-percentage> | top | center | bottom ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y\"}],description:\"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.\"},{name:\"-webkit-mask-repeat-x\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x\"}],description:\"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.\"},{name:\"-webkit-mask-repeat-y\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y\"}],description:\"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically.\"},{name:\"appearance\",status:\"experimental\",syntax:\"none | auto | button | textfield | <compat>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/appearance\"}],description:\"Changes the appearance of buttons and other controls to resemble native controls.\"},{name:\"aspect-ratio\",status:\"experimental\",syntax:\"auto | <ratio>\",description:\"\"},{name:\"azimuth\",status:\"obsolete\",syntax:\"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/azimuth\"}],description:\"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage.\"},{name:\"border-end-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius\"}],description:\"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-end-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius\"}],description:\"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius\"}],description:\"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius\"}],description:\"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation.\"},{name:\"box-align\",status:\"nonstandard\",syntax:\"start | center | end | baseline | stretch\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-align\"}],description:\"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\"},{name:\"box-direction\",status:\"nonstandard\",syntax:\"normal | reverse | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-direction\"}],description:\"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\"},{name:\"box-flex\",status:\"nonstandard\",syntax:\"<number>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex\"}],description:\"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.\"},{name:\"box-flex-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex-group\"}],description:\"The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\"},{name:\"box-lines\",status:\"nonstandard\",syntax:\"single | multiple\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-lines\"}],description:\"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\"},{name:\"box-ordinal-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group\"}],description:\"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\"},{name:\"box-orient\",status:\"nonstandard\",syntax:\"horizontal | vertical | inline-axis | block-axis | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-orient\"}],description:\"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.\"},{name:\"box-pack\",status:\"nonstandard\",syntax:\"start | center | end | justify\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-pack\"}],description:\"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\"},{name:\"color-adjust\",syntax:\"economy | exact\",browsers:[\"FF48\",\"S6\",\"C49\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color-adjust\"}],description:\"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images in browsers based on the WebKit engine.\"},{name:\"counter-set\",syntax:\"[ <custom-ident> <integer>? ]+ | none\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-set\"}],description:\"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element.\"},{name:\"hanging-punctuation\",syntax:\"none | [ first || [ force-end | allow-end ] || last ]\",browsers:[\"S10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation\"}],description:\"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.\"},{name:\"initial-letter\",status:\"experimental\",syntax:\"normal | [ <number> <integer>? ]\",browsers:[\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter\"}],description:\"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters.\"},{name:\"initial-letter-align\",status:\"experimental\",syntax:\"[ auto | alphabetic | hanging | ideographic ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align\"}],description:\"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph.\"},{name:\"line-clamp\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content.\"},{name:\"line-height-step\",status:\"experimental\",syntax:\"<length>\",browsers:[\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height-step\"}],description:\"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid.\"},{name:\"mask-border\",status:\"experimental\",syntax:\"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>\",description:\"The mask-border CSS property lets you create a mask along the edge of an element's border.\\n\\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.\"},{name:\"mask-border-mode\",status:\"experimental\",syntax:\"luminance | alpha\",description:\"The mask-border-mode CSS property specifies the blending mode used in a mask border.\"},{name:\"mask-border-outset\",status:\"experimental\",syntax:\"[ <length> | <number> ]{1,4}\",description:\"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box.\"},{name:\"mask-border-repeat\",status:\"experimental\",syntax:\"[ stretch | repeat | round | space ]{1,2}\",description:\"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border.\"},{name:\"mask-border-slice\",status:\"experimental\",syntax:\"<number-percentage>{1,4} fill?\",description:\"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.\"},{name:\"mask-border-source\",status:\"experimental\",syntax:\"none | <image>\",description:\"The mask-border-source CSS property specifies the source image used to create an element's mask border.\\n\\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.\"},{name:\"mask-border-width\",status:\"experimental\",syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",description:\"The mask-border-width CSS property specifies the width of an element's mask border.\"},{name:\"mask-clip\",syntax:\"[ <geometry-box> | no-clip ]#\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-clip\"}],description:\"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area.\"},{name:\"mask-composite\",syntax:\"<compositing-operator>#\",browsers:[\"E18\",\"FF53\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-composite\"}],description:\"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.\"},{name:\"max-lines\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The max-liens property forces a break after a set number of lines\"},{name:\"overflow-block\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-block\"}],description:\"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis.\"},{name:\"overflow-clip-box\",status:\"nonstandard\",syntax:\"padding-box | content-box\",browsers:[\"FF29\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Mozilla/CSS/overflow-clip-box\"}],description:\"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties.\"},{name:\"overflow-inline\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-inline\"}],description:\"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis.\"},{name:\"overscroll-behavior\",status:\"nonstandard\",syntax:\"[ contain | none | auto ]{1,2}\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior\"}],description:\"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached.\"},{name:\"overscroll-behavior-x\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x\"}],description:\"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction.\"},{name:\"overscroll-behavior-y\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y\"}],description:\"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction.\"},{name:\"ruby-merge\",status:\"experimental\",syntax:\"separate | collapse | auto\",description:\"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available.\"},{name:\"scrollbar-color\",syntax:\"auto | dark | light | <color>{2}\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color\"}],description:\"The scrollbar-color CSS property sets the color of the scrollbar track and thumb.\"},{name:\"scrollbar-width\",syntax:\"auto | thin | none\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width\"}],description:\"The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. \"},{name:\"scroll-margin\",syntax:\"<length>{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin\"}],description:\"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands.\"},{name:\"scroll-margin-block\",syntax:\"<length>{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block\"}],description:\"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension.\"},{name:\"scroll-margin-block-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start\"}],description:\"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-block-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end\"}],description:\"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-bottom\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom\"}],description:\"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline\",syntax:\"<length>{1,2}\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline\"}],description:\"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension.\"},{name:\"scroll-margin-inline-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start\"}],description:\"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end\"}],description:\"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-left\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left\"}],description:\"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-right\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right\"}],description:\"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-top\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top\"}],description:\"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-snap-type-x\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\",\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x\"}],description:\"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"scroll-snap-type-y\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y\"}],description:\"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"text-decoration-thickness\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness\"}],description:\"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline.\"},{name:\"text-emphasis\",syntax:\"<'text-emphasis-style'> || <'text-emphasis-color'>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis\"}],description:\"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces,  and control characters.\"},{name:\"text-emphasis-color\",syntax:\"<color>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color\"}],description:\"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand.\"},{name:\"text-emphasis-position\",syntax:\"[ over | under ] && [ right | left ]\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position\"}],description:\"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased.\"},{name:\"text-emphasis-style\",syntax:\"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style\"}],description:\"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand.\"},{name:\"text-underline-offset\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset\"}],description:\"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.\"},{name:\"speak-as\",syntax:\"auto | bullets | numbers | words | spell-out | <counter-style-name>\",description:\"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue.\"},{name:\"bleed\",status:\"experimental\",syntax:\"auto | <length>\",description:\"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property.\"},{name:\"marks\",status:\"experimental\",syntax:\"none | [ crop || cross ]\",description:\"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets.\"}],atDirectives:[{name:\"@charset\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@charset\"}],description:\"Defines character set of the document.\"},{name:\"@counter-style\",browsers:[\"FF33\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@counter-style\"}],description:\"Defines a custom counter style.\"},{name:\"@font-face\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-face\"}],description:\"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment.\"},{name:\"@font-feature-values\",browsers:[\"FF34\",\"S9.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values\"}],description:\"Defines named values for the indices used to select alternate glyphs for a given font family.\"},{name:\"@import\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@import\"}],description:\"Includes content of another file.\"},{name:\"@keyframes\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@keyframes\"}],description:\"Defines set of animation key frames.\"},{name:\"@media\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@media\"}],description:\"Defines a stylesheet for a particular media type.\"},{name:\"@-moz-document\",browsers:[\"FF1.8\"],description:\"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document.\"},{name:\"@-moz-keyframes\",browsers:[\"FF5\"],description:\"Defines set of animation key frames.\"},{name:\"@-ms-viewport\",browsers:[\"E\",\"IE10\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@namespace\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@namespace\"}],description:\"Declares a prefix and associates it with a namespace name.\"},{name:\"@-o-keyframes\",browsers:[\"O12\"],description:\"Defines set of animation key frames.\"},{name:\"@-o-viewport\",browsers:[\"O11\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@page\",browsers:[\"E12\",\"FF19\",\"C2\",\"IE8\",\"O6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@page\"}],description:\"Directive defines various page parameters.\"},{name:\"@supports\",browsers:[\"E12\",\"FF22\",\"S9\",\"C28\",\"O12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@supports\"}],description:\"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.\"},{name:\"@-webkit-keyframes\",browsers:[\"C\",\"S4\"],description:\"Defines set of animation key frames.\"}],pseudoClasses:[{name:\":active\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:active\"}],description:\"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.\"},{name:\":any-link\",browsers:[\"FF50\",\"S9\",\"C65\",\"O52\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:any-link\"}],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":checked\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:checked\"}],description:\"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies.\"},{name:\":corner-present\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Indicates whether or not a scrollbar corner is present.\"},{name:\":decrement\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view’s position when used.\"},{name:\":default\",browsers:[\"FF4\",\"S5\",\"C10\",\"O10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:default\"}],description:\"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus.\"},{name:\":disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:disabled\"}],description:\"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state.\"},{name:\":double-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar.\"},{name:\":empty\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:empty\"}],description:\"Represents an element that has no children at all.\"},{name:\":enabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:enabled\"}],description:\"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state.\"},{name:\":end\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb.\"},{name:\":first\",browsers:[\"E12\",\"S6\",\"C18\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":first-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-child\"}],description:\"Same as :nth-child(1). Represents an element that is the first child of some other element.\"},{name:\":first-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-of-type\"}],description:\"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element.\"},{name:\":focus\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus\"}],description:\"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input).\"},{name:\":fullscreen\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:fullscreen\"}],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":future\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely after a :current element.\"},{name:\":horizontal\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation.\"},{name:\":host\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:host\"}],description:\"When evaluated in the context of a shadow tree, matches the shadow tree’s host element.\"},{name:\":host()\",browsers:[\"C35\",\"O22\"],description:\"When evaluated in the context of a shadow tree, it matches the shadow tree’s host element if the host element, in its normal context, matches the selector argument.\"},{name:\":host-context()\",browsers:[\"C35\",\"O22\"],description:\"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector.\"},{name:\":hover\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:hover\"}],description:\"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element.\"},{name:\":increment\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view’s position when used.\"},{name:\":indeterminate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:indeterminate\"}],description:\"Applies to UI elements whose value is in an indeterminate state.\"},{name:\":in-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:in-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":invalid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:invalid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":lang()\",browsers:[\"E\",\"C\",\"FF1\",\"IE8\",\"O8\",\"S3\"],description:\"Represents an element that is in language specified.\"},{name:\":last-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-child\"}],description:\"Same as :nth-last-child(1). Represents an element that is the last child of some other element.\"},{name:\":last-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-of-type\"}],description:\"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element.\"},{name:\":left\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:left\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":link\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:link\"}],description:\"Applies to links that have not yet been visited.\"},{name:\":matches()\",browsers:[\"S9\"],description:\"Takes a selector list as its argument. It represents an element that is represented by its argument.\"},{name:\":-moz-any()\",browsers:[\"FF4\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-moz-any-link\",browsers:[\"FF1\"],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":-moz-broken\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing broken images.\"},{name:\":-moz-drag-over\",browsers:[\"FF1\"],description:\"Non-standard. Matches elements when a drag-over event applies to it.\"},{name:\":-moz-first-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the first child node of some other element.\"},{name:\":-moz-focusring\",browsers:[\"FF4\"],description:\"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser.\"},{name:\":-moz-full-screen\",browsers:[\"FF9\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":-moz-last-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the last child node of some other element.\"},{name:\":-moz-loading\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements, such as images, that haven’t started loading yet.\"},{name:\":-moz-only-whitespace\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace\"}],description:\"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank.\"},{name:\":-moz-placeholder\",browsers:[\"FF4\"],description:\"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+.\"},{name:\":-moz-submit-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid\"}],description:\"Non-standard. Represents any submit button when the contents of the associated form are not valid.\"},{name:\":-moz-suppressed\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been blocked from loading.\"},{name:\":-moz-ui-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-invalid\"}],description:\"Non-standard. Represents any validated form element whose value isn't valid \"},{name:\":-moz-ui-valid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-valid\"}],description:\"Non-standard. Represents any validated form element whose value is valid \"},{name:\":-moz-user-disabled\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been disabled due to the user’s preferences.\"},{name:\":-moz-window-inactive\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive\"}],description:\"Non-standard. Matches elements in an inactive window.\"},{name:\":-ms-fullscreen\",browsers:[\"IE11\"],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":-ms-input-placeholder\",browsers:[\"IE10\"],description:\"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder.\"},{name:\":-ms-keyboard-active\",browsers:[\"IE10\"],description:\"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar.\"},{name:\":-ms-lang()\",browsers:[\"E\",\"IE10\"],description:\"Represents an element that is in the language specified. Accepts a comma separated list of language tokens.\"},{name:\":no-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track.\"},{name:\":not()\",browsers:[\"E\",\"C\",\"FF1\",\"IE9\",\"O9.5\",\"S2\"],description:\"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.\"},{name:\":nth-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":nth-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":only-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-child\"}],description:\"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity.\"},{name:\":only-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-of-type\"}],description:\"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity.\"},{name:\":optional\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:optional\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":out-of-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:out-of-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":past\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely prior to a :current element.\"},{name:\":read-only\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-only\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":read-write\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-write\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":required\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:required\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":right\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:right\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":root\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:root\"}],description:\"Represents an element that is the root of the document. In HTML 4, this is always the HTML element.\"},{name:\":scope\",browsers:[\"FF32\",\"S7\",\"C27\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:scope\"}],description:\"Represents any element that is in the contextual reference element set.\"},{name:\":single-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar.\"},{name:\":start\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb.\"},{name:\":target\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:target\"}],description:\"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier).\"},{name:\":valid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:valid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":vertical\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a vertical orientation.\"},{name:\":visited\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:visited\"}],description:\"Applies once the link has been visited by the user.\"},{name:\":-webkit-any()\",browsers:[\"C\",\"S5\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-webkit-full-screen\",browsers:[\"C\",\"S6\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":window-inactive\",browsers:[\"C\",\"S3\"],description:\"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active.\"},{name:\":blank\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:blank\"}],description:\"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).\"},{name:\":defined\",status:\"experimental\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:defined\"}],description:\"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).\"},{name:\":dir\",browsers:[\"FF49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:dir\"}],description:\"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.\"},{name:\":focus-visible\",status:\"experimental\",browsers:[\"FF4\",\"C67\",\"O54\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-visible\"}],description:\"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.\"},{name:\":focus-within\",status:\"experimental\",browsers:[\"FF52\",\"S10.1\",\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-within\"}],description:\"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.\"},{name:\":has\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:has\"}],description:\":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element.\"},{name:\":is\",status:\"experimental\",browsers:[\"FF4\",\"S9\",\"C68\",\"O55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:is\"}],description:\"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.\"},{name:\":placeholder-shown\",status:\"experimental\",browsers:[\"FF51\",\"S9\",\"C47\",\"IE10\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown\"}],description:\"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.\"},{name:\":where\",status:\"experimental\",description:\"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.\"}],pseudoElements:[{name:\"::after\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::after\"}],description:\"Represents a styleable child pseudo-element immediately after the originating element’s actual content.\"},{name:\"::backdrop\",browsers:[\"E12\",\"FF47\",\"C37\",\"IE11\",\"O24\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::backdrop\"}],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::before\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::before\"}],description:\"Represents a styleable child pseudo-element immediately before the originating element’s actual content.\"},{name:\"::content\",browsers:[\"C35\",\"O22\"],description:\"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility.\"},{name:\"::cue\",browsers:[\"FF55\",\"S6.1\",\"C26\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::cue\"}]},{name:\"::cue()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::first-letter\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-letter\"}],description:\"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line.\"},{name:\"::first-line\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-line\"}],description:\"Describes the contents of the first formatted line of its originating element.\"},{name:\"::-moz-focus-inner\",browsers:[\"FF4\"]},{name:\"::-moz-focus-outer\",browsers:[\"FF4\"]},{name:\"::-moz-list-bullet\",browsers:[\"FF1\"],description:\"Used to style the bullet of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-list-number\",browsers:[\"FF1\"],description:\"Used to style the numbers of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-placeholder\",browsers:[\"FF19\"],description:\"Represents placeholder text in an input field\"},{name:\"::-moz-progress-bar\",browsers:[\"FF9\"],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-moz-selection\",browsers:[\"FF1\"],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::-ms-backdrop\",browsers:[\"IE11\"],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::-ms-browse\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-browse\"}],description:\"Represents the browse button of an input type=file control.\"},{name:\"::-ms-check\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-check\"}],description:\"Represents the check of a checkbox or radio button input control.\"},{name:\"::-ms-clear\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-clear\"}],description:\"Represents the clear button of a text input control\"},{name:\"::-ms-expand\",browsers:[\"E\",\"IE10\"],description:\"Represents the drop-down button of a select control.\"},{name:\"::-ms-fill\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill\"}],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-ms-fill-lower\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-lower\"}],description:\"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb.\"},{name:\"::-ms-fill-upper\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-upper\"}],description:\"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb.\"},{name:\"::-ms-reveal\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-reveal\"}],description:\"Represents the password reveal button of an input type=password control.\"},{name:\"::-ms-thumb\",browsers:[\"E\",\"IE10\"],description:\"Represents the portion of range input control (also known as a slider control) that the user drags.\"},{name:\"::-ms-ticks-after\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb.\"},{name:\"::-ms-ticks-before\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb.\"},{name:\"::-ms-tooltip\",browsers:[\"E\",\"IE10\"],description:\"Represents the tooltip of a slider (input type=range).\"},{name:\"::-ms-track\",browsers:[\"E\",\"IE10\"],description:\"Represents the track of a slider.\"},{name:\"::-ms-value\",browsers:[\"E16\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-value\"}],description:\"Represents the content of a text or password input control, or a select control.\"},{name:\"::selection\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::selection\"}],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::shadow\",browsers:[\"C35\",\"O22\"],description:\"Matches the shadow root if an element has a shadow tree.\"},{name:\"::-webkit-file-upload-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-file-upload-button\"}]},{name:\"::-webkit-inner-spin-button\",browsers:[\"S4.1\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button\"}]},{name:\"::-webkit-input-placeholder\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-keygen-select\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-meter-bar\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar\"}]},{name:\"::-webkit-meter-even-less-good-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value\"}]},{name:\"::-webkit-meter-optimum-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value\"}]},{name:\"::-webkit-meter-suboptimal-value\",browsers:[\"E13\",\"C\",\"O15\",\"S6\"]},{name:\"::-webkit-outer-spin-button\",browsers:[\"S4.1\",\"C6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-outer-spin-button\"}]},{name:\"::-webkit-progress-bar\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar\"}]},{name:\"::-webkit-progress-inner-element\",browsers:[\"S6.1\",\"C23\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element\"}]},{name:\"::-webkit-progress-value\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value\"}]},{name:\"::-webkit-resizer\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-resizer\"}]},{name:\"::-webkit-scrollbar\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"}]},{name:\"::-webkit-scrollbar-button\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-button\"}]},{name:\"::-webkit-scrollbar-corner\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-corner\"}]},{name:\"::-webkit-scrollbar-thumb\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-thumb\"}]},{name:\"::-webkit-scrollbar-track\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track\"}]},{name:\"::-webkit-scrollbar-track-piece\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track-piece\"}]},{name:\"::-webkit-search-cancel-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button\"}]},{name:\"::-webkit-search-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-search-results-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button\"}]},{name:\"::-webkit-search-results-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-slider-runnable-track\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-slider-thumb\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-textfield-decoration-container\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow-clipper\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-heading\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-message\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-text-block\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-moz-range-progress\",status:\"nonstandard\",browsers:[\"FF22\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress\"}],description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'},{name:\"::-moz-range-thumb\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb\"}],description:'The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input\\'s track to alter its numerical value.'},{name:\"::-moz-range-track\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track\"}],description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".'},{name:\"::-webkit-progress-inner-value\",status:\"nonstandard\",description:\"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\\n\\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.\"},{name:\"::grammar-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::grammar-error\"}],description:\"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\"},{name:\"::marker\",browsers:[\"FF68\",\"C80\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::marker\"}],description:\"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements.\"},{name:\"::part\",status:\"experimental\",browsers:[\"FF69\",\"C73\",\"O60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::part\"}],description:\"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\"},{name:\"::placeholder\",browsers:[\"E12\",\"FF51\",\"S10.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::placeholder\"}],description:\"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.\"},{name:\"::slotted\",browsers:[\"FF63\",\"S10\",\"C50\",\"O37\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::slotted\"}],description:\"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template.\"},{name:\"::spelling-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::spelling-error\"}],description:\"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\"}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){return Object.keys(e).map((function(t){return e[t]}))},t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataManager\",[\"require\",\"exports\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/objects\"),r=function(){function e(e){this.dataProviders=e,this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.collectData()}return e.prototype.addDataProviders=function(e){this.dataProviders=this.dataProviders.concat(e),this.collectData()},e.prototype.collectData=function(){var e=this;this.dataProviders.forEach((function(t){t.provideProperties().forEach((function(t){e._propertySet[t.name]||(e._propertySet[t.name]=t)})),t.provideAtDirectives().forEach((function(t){e._atDirectiveSet[t.name]||(e._atDirectiveSet[t.name]=t)})),t.providePseudoClasses().forEach((function(t){e._pseudoClassSet[t.name]||(e._pseudoClassSet[t.name]=t)})),t.providePseudoElements().forEach((function(t){e._pseudoElementSet[t.name]||(e._pseudoElementSet[t.name]=t)}))})),this._properties=n.values(this._propertySet),this._atDirectives=n.values(this._atDirectiveSet),this._pseudoClasses=n.values(this._pseudoClassSet),this._pseudoElements=n.values(this._pseudoElementSet)},e.prototype.getProperty=function(e){return this._propertySet[e]},e.prototype.getAtDirective=function(e){return this._atDirectiveSet[e]},e.prototype.getPseudoClass=function(e){return this._pseudoClassSet[e]},e.prototype.getPseudoElement=function(e){return this._pseudoElementSet[e]},e.prototype.getProperties=function(){return this._properties},e.prototype.getAtDirectives=function(){return this._atDirectives},e.prototype.getPseudoClasses=function(){return this._pseudoClasses},e.prototype.getPseudoElements=function(){return this._pseudoElements},e.prototype.isKnownProperty=function(e){return e.toLowerCase()in this._propertySet},e.prototype.isStandardProperty=function(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||\"standard\"===this._propertySet[e.toLowerCase()].status)},e}();t.CSSDataManager=r})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return e.prototype.provideProperties=function(){return this._properties},e.prototype.provideAtDirectives=function(){return this._atDirectives},e.prototype.providePseudoClasses=function(){return this._pseudoClasses},e.prototype.providePseudoElements=function(){return this._pseudoElements},e.prototype.addData=function(e){e.properties&&(this._properties=this._properties.concat(e.properties)),e.atDirectives&&(this._atDirectives=this._atDirectives.concat(e.atDirectives)),e.pseudoClasses&&(this._pseudoClasses=this._pseudoClasses.concat(e.pseudoClasses)),e.pseudoElements&&(this._pseudoElements=this._pseudoElements.concat(e.pseudoElements))},e}();t.CSSDataProvider=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/entry\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){switch(e){case\"experimental\":return\"⚠️ Property is experimental. Be cautious when using it.️\\n\\n\";case\"nonstandard\":return\"🚨️ Property is nonstandard. Avoid using it.\\n\\n\";case\"obsolete\":return\"🚨️️️ Property is obsolete. Avoid using it.\\n\\n\";default:return\"\"}}function r(e){if(!e.description||\"\"===e.description)return\"\";if(\"string\"!=typeof e.description)return e.description.value;var t=\"\";e.status&&(t+=n(e.status)),t+=e.description;var r=o(e.browsers);return r&&(t+=\"\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return e.name+\": \"+e.url})).join(\" | \")),t}function i(e){if(!e.description||\"\"===e.description)return\"\";var t=\"\";e.status&&(t+=n(e.status)),\"string\"==typeof e.description?t+=e.description:t=e.description.value;var r=o(e.browsers);return r&&(t+=\"\\n\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \")),t}function o(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var n=\"\",r=e.match(/([A-Z]+)(\\d+)?/),i=r[1],o=r[2];return i in t.browserNames&&(n+=t.browserNames[i]),o&&(n+=\" \"+o),n})).join(\", \")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.browserNames={E:\"Edge\",FF:\"Firefox\",S:\"Safari\",C:\"Chrome\",IE:\"IE\",O:\"Opera\"},t.getEntryDescription=function(e,t){return t?{kind:\"markdown\",value:i(e)}:{kind:\"plaintext\",value:r(e)}},t.getBrowserLabel=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/colors\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle();function i(e,t){var n=e.getText().match(/^([-+]?[0-9]*\\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function o(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}t.colorFunctions=[{func:\"rgb($red, $green, $blue)\",desc:r(\"css.builtin.rgb\",\"Creates a Color from red, green, and blue values.\")},{func:\"rgba($red, $green, $blue, $alpha)\",desc:r(\"css.builtin.rgba\",\"Creates a Color from red, green, blue, and alpha values.\")},{func:\"hsl($hue, $saturation, $lightness)\",desc:r(\"css.builtin.hsl\",\"Creates a Color from hue, saturation, and lightness values.\")},{func:\"hsla($hue, $saturation, $lightness, $alpha)\",desc:r(\"css.builtin.hsla\",\"Creates a Color from hue, saturation, lightness, and alpha values.\")}],t.colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rebeccapurple:\"#663399\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"},t.colorKeywords={currentColor:\"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.\",transparent:\"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.\"},t.isColorConstructor=o,t.isColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return!0;if(e.type===n.NodeType.Function)return o(e);if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return!1;var r=e.getText().toLowerCase();if(\"none\"===r)return!1;if(t.colors[r])return!0}return!1};function s(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}function a(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:17*s(e.charCodeAt(4))/255};case 7:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:(16*s(e.charCodeAt(7))+s(e.charCodeAt(8)))/255}}return null}function l(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,(e/=60)+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}t.hexDigit=s,t.colorFromHex=a,t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}},t.colorFromHSL=l,t.hslFromColor=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-t)/d+2;break;case r:a=(t-n)/d+4}a*=60,a=Math.round(a)}return{h:a,s:l,l:c,a:i}},t.getColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return a(e.getText());if(e.type===n.NodeType.Function){var r=e,o=r.getName(),s=r.getArguments().getChildren();if(!o||s.length<3||s.length>4)return null;try{var c=4===s.length?i(s[3],1):1;if(\"rgb\"===o||\"rgba\"===o)return{red:i(s[0],255),green:i(s[1],255),blue:i(s[2],255),alpha:c};if(\"hsl\"===o||\"hsla\"===o)return l(function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(s[0]),i(s[1],100),i(s[2],100),c)}catch(e){return null}}else if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return null;var d=e.parent;if(d&&d.parent&&d.parent.type===n.NodeType.BinaryExpression){var p=d.parent;if(p.parent&&p.parent.type===n.NodeType.ListEntry&&p.parent.key===p)return null}var h=e.getText().toLowerCase();if(\"none\"===h)return null;var m=t.colors[h];if(m)return a(m)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/builtinData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.positionKeywords={bottom:\"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\",center:\"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.\",left:\"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\",right:\"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\",top:\"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"},t.repeatStyleKeywords={\"no-repeat\":\"Placed once and not repeated in this direction.\",repeat:\"Repeated in this direction as often as needed to cover the background painting area.\",\"repeat-x\":\"Computes to ‘repeat no-repeat’.\",\"repeat-y\":\"Computes to ‘no-repeat repeat’.\",round:\"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.\",space:\"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.\"},t.lineStyleKeywords={dashed:\"A series of square-ended dashes.\",dotted:\"A series of round dots.\",double:\"Two parallel solid lines with some space between them.\",groove:\"Looks as if it were carved in the canvas.\",hidden:\"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.\",inset:\"Looks as if the content on the inside of the border is sunken into the canvas.\",none:\"No border. Color and width are ignored.\",outset:\"Looks as if the content on the inside of the border is coming out of the canvas.\",ridge:\"Looks as if it were coming out of the canvas.\",solid:\"A single line segment.\"},t.lineWidthKeywords=[\"medium\",\"thick\",\"thin\"],t.boxKeywords={\"border-box\":\"The background is painted within (clipped to) the border box.\",\"content-box\":\"The background is painted within (clipped to) the content box.\",\"padding-box\":\"The background is painted within (clipped to) the padding box.\"},t.geometryBoxKeywords={\"margin-box\":\"Uses the margin box as reference box.\",\"fill-box\":\"Uses the object bounding box as reference box.\",\"stroke-box\":\"Uses the stroke bounding box as reference box.\",\"view-box\":\"Uses the nearest SVG viewport as reference box.\"},t.cssWideKeywords={initial:\"Represents the value specified as the property’s initial value.\",inherit:\"Represents the computed value of the property on the element’s parent.\",unset:\"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.\"},t.imageFunctions={\"url()\":\"Reference an image file by URL\",\"image()\":\"Provide image fallbacks and annotations.\",\"-webkit-image-set()\":\"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.\",\"image-set()\":\"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.\",\"-moz-element()\":\"Use an element in the document as an image. Remember to use unprefixed element() in addition.\",\"element()\":\"Use an element in the document as an image.\",\"cross-fade()\":\"Indicates the two images to be combined and how far along in the transition the combination is.\",\"-webkit-gradient()\":\"Deprecated. Use modern linear-gradient() or radial-gradient() instead.\",\"-webkit-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-o-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"linear-gradient()\":\"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.\",\"-webkit-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-o-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"repeating-linear-gradient()\":\"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\",\"-webkit-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"-moz-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"radial-gradient()\":\"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.\",\"-webkit-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"repeating-radial-gradient()\":\"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\"},t.transitionTimingFunctions={ease:\"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).\",\"ease-in\":\"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).\",\"ease-in-out\":\"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).\",\"ease-out\":\"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).\",linear:\"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).\",\"step-end\":\"Equivalent to steps(1, end).\",\"step-start\":\"Equivalent to steps(1, start).\",\"steps()\":\"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.\",\"cubic-bezier()\":\"Specifies a cubic-bezier curve. The four values specify points P1 and P2  of the curve as (x1, y1, x2, y2).\",\"cubic-bezier(0.6, -0.28, 0.735, 0.045)\":\"Ease-in Back. Overshoots.\",\"cubic-bezier(0.68, -0.55, 0.265, 1.55)\":\"Ease-in-out Back. Overshoots.\",\"cubic-bezier(0.175, 0.885, 0.32, 1.275)\":\"Ease-out Back. Overshoots.\",\"cubic-bezier(0.6, 0.04, 0.98, 0.335)\":\"Ease-in Circular. Based on half circle.\",\"cubic-bezier(0.785, 0.135, 0.15, 0.86)\":\"Ease-in-out Circular. Based on half circle.\",\"cubic-bezier(0.075, 0.82, 0.165, 1)\":\"Ease-out Circular. Based on half circle.\",\"cubic-bezier(0.55, 0.055, 0.675, 0.19)\":\"Ease-in Cubic. Based on power of three.\",\"cubic-bezier(0.645, 0.045, 0.355, 1)\":\"Ease-in-out Cubic. Based on power of three.\",\"cubic-bezier(0.215, 0.610, 0.355, 1)\":\"Ease-out Cubic. Based on power of three.\",\"cubic-bezier(0.95, 0.05, 0.795, 0.035)\":\"Ease-in Exponential. Based on two to the power ten.\",\"cubic-bezier(1, 0, 0, 1)\":\"Ease-in-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.19, 1, 0.22, 1)\":\"Ease-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.47, 0, 0.745, 0.715)\":\"Ease-in Sine.\",\"cubic-bezier(0.445, 0.05, 0.55, 0.95)\":\"Ease-in-out Sine.\",\"cubic-bezier(0.39, 0.575, 0.565, 1)\":\"Ease-out Sine.\",\"cubic-bezier(0.55, 0.085, 0.68, 0.53)\":\"Ease-in Quadratic. Based on power of two.\",\"cubic-bezier(0.455, 0.03, 0.515, 0.955)\":\"Ease-in-out Quadratic. Based on power of two.\",\"cubic-bezier(0.25, 0.46, 0.45, 0.94)\":\"Ease-out Quadratic. Based on power of two.\",\"cubic-bezier(0.895, 0.03, 0.685, 0.22)\":\"Ease-in Quartic. Based on power of four.\",\"cubic-bezier(0.77, 0, 0.175, 1)\":\"Ease-in-out Quartic. Based on power of four.\",\"cubic-bezier(0.165, 0.84, 0.44, 1)\":\"Ease-out Quartic. Based on power of four.\",\"cubic-bezier(0.755, 0.05, 0.855, 0.06)\":\"Ease-in Quintic. Based on power of five.\",\"cubic-bezier(0.86, 0, 0.07, 1)\":\"Ease-in-out Quintic. Based on power of five.\",\"cubic-bezier(0.23, 1, 0.320, 1)\":\"Ease-out Quintic. Based on power of five.\"},t.basicShapeFunctions={\"circle()\":\"Defines a circle.\",\"ellipse()\":\"Defines an ellipse.\",\"inset()\":\"Defines an inset rectangle.\",\"polygon()\":\"Defines a polygon.\"},t.units={length:[\"em\",\"rem\",\"ex\",\"px\",\"cm\",\"mm\",\"in\",\"pt\",\"pc\",\"ch\",\"vw\",\"vh\",\"vmin\",\"vmax\"],angle:[\"deg\",\"rad\",\"grad\",\"turn\"],time:[\"ms\",\"s\"],frequency:[\"Hz\",\"kHz\"],resolution:[\"dpi\",\"dpcm\",\"dppx\"],percentage:[\"%\",\"fr\"]},t.html5Tags=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"const\",\"video\",\"wbr\"],t.svgElements=[\"circle\",\"clipPath\",\"cursor\",\"defs\",\"desc\",\"ellipse\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\",\"filter\",\"foreignObject\",\"g\",\"hatch\",\"hatchpath\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"mesh\",\"meshpatch\",\"meshrow\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"set\",\"solidcolor\",\"stop\",\"svg\",\"switch\",\"symbol\",\"text\",\"textPath\",\"tspan\",\"use\",\"view\"],t.pageBoxDirectives=[\"@bottom-center\",\"@bottom-left\",\"@bottom-left-corner\",\"@bottom-right\",\"@bottom-right-corner\",\"@left-bottom\",\"@left-middle\",\"@left-top\",\"@right-bottom\",\"@right-middle\",\"@right-top\",\"@top-center\",\"@top-left\",\"@top-left-corner\",\"@top-right\",\"@top-right-corner\"]})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/facts\",[\"require\",\"exports\",\"../data/webCustomData\",\"./dataManager\",\"./dataProvider\",\"./entry\",\"./colors\",\"./builtinData\",\"./dataProvider\",\"./dataManager\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var r=e(\"../data/webCustomData\"),i=e(\"./dataManager\"),o=e(\"./dataProvider\");n(e(\"./entry\")),n(e(\"./colors\")),n(e(\"./builtinData\")),n(e(\"./dataProvider\")),n(e(\"./dataManager\")),t.cssDataManager=new i.CSSDataManager([new o.CSSDataProvider(r.cssData)])}));var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssParser\",[\"require\",\"exports\",\"./cssScanner\",\"./cssNodes\",\"./cssErrors\",\"../languageFacts/facts\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=e(\"./cssNodes\"),i=e(\"./cssErrors\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/objects\"),a=function(){function e(e){void 0===e&&(e=new n.Scanner),this.keyframeRegex=/^@(\\-(webkit|ms|moz|o)\\-)?keyframes$/i,this.scanner=e,this.token={type:n.TokenType.EOF,offset:-1,len:0,text:\"\"},this.prevToken=void 0}return e.prototype.peekIdent=function(e){return n.TokenType.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekKeyword=function(e){return n.TokenType.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekDelim=function(e){return n.TokenType.Delim===this.token.type&&e===this.token.text},e.prototype.peek=function(e){return e===this.token.type},e.prototype.peekRegExp=function(e,t){return e===this.token.type&&t.test(this.token.text)},e.prototype.hasWhitespace=function(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset},e.prototype.consumeToken=function(){this.prevToken=this.token,this.token=this.scanner.scan()},e.prototype.mark=function(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}},e.prototype.restoreAtMark=function(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)},e.prototype.try=function(e){var t=this.mark(),n=e();return n||(this.restoreAtMark(t),null)},e.prototype.acceptOneKeyword=function(e){if(n.TokenType.AtKeyword===this.token.type)for(var t=0,r=e;t<r.length;t++){var i=r[t];if(i.length===this.token.text.length&&i===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1},e.prototype.accept=function(e){return e===this.token.type&&(this.consumeToken(),!0)},e.prototype.acceptIdent=function(e){return!!this.peekIdent(e)&&(this.consumeToken(),!0)},e.prototype.acceptKeyword=function(e){return!!this.peekKeyword(e)&&(this.consumeToken(),!0)},e.prototype.acceptDelim=function(e){return!!this.peekDelim(e)&&(this.consumeToken(),!0)},e.prototype.acceptRegexp=function(e){return!!e.test(this.token.text)&&(this.consumeToken(),!0)},e.prototype._parseRegexp=function(e){var t=this.createNode(r.NodeType.Identifier);do{}while(this.acceptRegexp(e));return this.finish(t)},e.prototype.acceptUnquotedString=function(){var e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);var t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)},e.prototype.resync=function(e,t){for(;;){if(e&&-1!==e.indexOf(this.token.type))return this.consumeToken(),!0;if(t&&-1!==t.indexOf(this.token.type))return!0;if(this.token.type===n.TokenType.EOF)return!1;this.token=this.scanner.scan()}},e.prototype.createNode=function(e){return new r.Node(this.token.offset,this.token.len,e)},e.prototype.create=function(e){return new e(this.token.offset,this.token.len)},e.prototype.finish=function(e,t,n,i){if(!(e instanceof r.Nodelist)&&(t&&this.markError(e,t,n,i),this.prevToken)){var o=this.prevToken.offset+this.prevToken.len;e.length=o>e.offset?o-e.offset:0}return e},e.prototype.markError=function(e,t,n,i){this.token!==this.lastErrorToken&&(e.addIssue(new r.Marker(e,t,r.Level.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||i)&&this.resync(n,i)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error(\"Underlying model has changed, AST is no longer valid\");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(r.Stylesheet);e.addChild(this._parseStylesheetStart()););var t=!1;do{var o=!1;do{o=!1;var s=this._parseStylesheetStatement();for(s&&(e.addChild(s),o=!0,t=!1,this.peek(n.TokenType.EOF)||!this._needsSemicolonAfter(s)||this.accept(n.TokenType.SemiColon)||this.markError(e,i.ParseError.SemiColonExpected));this.accept(n.TokenType.SemiColon)||this.accept(n.TokenType.CDO)||this.accept(n.TokenType.CDC);)o=!0,t=!1}while(o);if(this.peek(n.TokenType.EOF))break;t||(this.peek(n.TokenType.AtKeyword)?this.markError(e,i.ParseError.UnknownAtRule):this.markError(e,i.ParseError.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(n.TokenType.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(n.TokenType.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(n.TokenType.Comma)&&this._parseSelector(e););if(this.accept(n.TokenType.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(r.RuleSet),o=t.getSelectors();if(!o.addChild(this._parseSelector(e)))return null;for(;this.accept(n.TokenType.Comma);)if(!o.addChild(this._parseSelector(e)))return this.finish(t,i.ParseError.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclaration=function(){return this._parseAtApply()||this._tryParseCustomPropertyDeclaration()||this._parseDeclaration()||this._parseUnknownAtRule()},e.prototype._parseAtApply=function(){if(!this.peekKeyword(\"@apply\"))return null;var e=this.create(r.AtApplyRule);return this.consumeToken(),e.setIdentifier(this._parseIdent([r.ReferenceType.Variable]))?this.finish(e):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case r.NodeType.Keyframe:case r.NodeType.ViewPort:case r.NodeType.Media:case r.NodeType.Ruleset:case r.NodeType.Namespace:case r.NodeType.If:case r.NodeType.For:case r.NodeType.Each:case r.NodeType.While:case r.NodeType.MixinDeclaration:case r.NodeType.FunctionDeclaration:return!1;case r.NodeType.ExtendsReference:case r.NodeType.MixinContent:case r.NodeType.ReturnStatement:case r.NodeType.MediaQuery:case r.NodeType.Debug:case r.NodeType.Import:case r.NodeType.AtApplyRule:case r.NodeType.CustomPropertyDeclaration:return!0;case r.NodeType.VariableDeclaration:return e.needsSemicolon;case r.NodeType.MixinReference:return!e.getContent();case r.NodeType.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(r.Declarations);if(!this.accept(n.TokenType.CurlyL))return null;for(var o=e();t.addChild(o)&&!this.peek(n.TokenType.CurlyR);){if(this._needsSemicolonAfter(o)&&!this.accept(n.TokenType.SemiColon))return this.finish(t,i.ParseError.SemiColonExpected,[n.TokenType.SemiColon,n.TokenType.CurlyR]);for(o&&this.prevToken&&this.prevToken.type===n.TokenType.SemiColon&&(o.semicolonPosition=this.prevToken.offset);this.accept(n.TokenType.SemiColon););o=e()}return this.accept(n.TokenType.CurlyR)?this.finish(t):this.finish(t,i.ParseError.RightCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,i.ParseError.LeftCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(r.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this.create(r.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon)){var o=e?__spreadArrays(e,[n.TokenType.SemiColon]):[n.TokenType.SemiColon];return this.finish(t,i.ParseError.ColonExpected,[n.TokenType.Colon],o)}return this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseExpr())?(t.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):this.finish(t,i.ParseError.PropertyValueExpected)},e.prototype._tryParseCustomPropertyDeclaration=function(){if(!this.peekRegExp(n.TokenType.Ident,/^--/))return null;var e=this.create(r.CustomPropertyDeclaration);if(!e.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon))return this.finish(e,i.ParseError.ColonExpected,[n.TokenType.Colon]);this.prevToken&&(e.colonPosition=this.prevToken.offset);var t=this.mark();if(this.peek(n.TokenType.CurlyL)){var o=this.create(r.CustomPropertySet),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(o.setDeclarations(a)&&!a.isErroneous(!0)&&(o.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)))return this.finish(o),e.setPropertySet(o),e.semicolonPosition=this.token.offset,this.finish(e);this.restoreAtMark(t)}var l=this._parseExpr();return l&&!l.isErroneous(!0)&&(this._parsePrio(),this.peek(n.TokenType.SemiColon))?(e.setValue(l),e.semicolonPosition=this.token.offset,this.finish(e)):(this.restoreAtMark(t),e.addChild(this._parseCustomPropertyValue()),e.addChild(this._parsePrio()),s.isDefined(e.colonPosition)&&this.token.offset===e.colonPosition+1?this.finish(e,i.ParseError.PropertyValueExpected):this.finish(e))},e.prototype._parseCustomPropertyValue=function(){var e=this.create(r.Node),t=function(){return 0===o&&0===s&&0===a},o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:case n.TokenType.Exclamation:if(t())break e;break;case n.TokenType.CurlyL:o++;break;case n.TokenType.CurlyR:if(--o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected);break;case n.TokenType.BadString:break e;case n.TokenType.EOF:var l=i.ParseError.RightCurlyExpected;return a>0?l=i.ParseError.RightSquareBracketExpected:s>0&&(l=i.ParseError.RightParenthesisExpected),this.finish(e,l)}this.consumeToken()}return this.finish(e)},e.prototype._tryToParseDeclaration=function(){var e=this.mark();return this._parseProperty()&&this.accept(n.TokenType.Colon)?(this.restoreAtMark(e),this._parseDeclaration()):(this.restoreAtMark(e),null)},e.prototype._parseProperty=function(){var e=this.create(r.Property),t=this.mark();return(this.acceptDelim(\"*\")||this.acceptDelim(\"_\"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(n.TokenType.Charset))return null;var e=this.create(r.Node);return this.consumeToken(),this.accept(n.TokenType.String)?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(r.Import);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(n.TokenType.SemiColon)||this.peek(n.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,i.ParseError.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword(\"@namespace\"))return null;var e=this.create(r.Namespace);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.URIExpected,[n.TokenType.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword(\"@font-face\"))return null;var e=this.create(r.FontFace);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword(\"@-ms-viewport\")&&!this.peekKeyword(\"@-o-viewport\")&&!this.peekKeyword(\"@viewport\"))return null;var e=this.create(r.ViewPort);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(n.TokenType.AtKeyword,this.keyframeRegex))return null;var e=this.create(r.Keyframe),t=this.create(r.Node);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches(\"@-ms-keyframes\")&&this.markError(t,i.ParseError.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,i.ParseError.IdentifierExpected,[n.TokenType.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([r.ReferenceType.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector);if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.finish(e,i.ParseError.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.restoreAtMark(t),null;return this.peek(n.TokenType.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@supports\"))return null;var t=this.create(r.Supports);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(r.SupportsCondition);if(this.acceptIdent(\"not\"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(n.TokenType.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(r.SupportsCondition);if(this.accept(n.TokenType.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration())||this._parseSupportsCondition()?this.accept(n.TokenType.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,i.ParseError.RightParenthesisExpected,[n.TokenType.ParenthesisR],[]):this.finish(e,i.ParseError.ConditionExpected);if(this.peek(n.TokenType.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){for(var o=1;this.token.type!==n.TokenType.EOF&&0!==o;)this.token.type===n.TokenType.ParenthesisL?o++:this.token.type===n.TokenType.ParenthesisR&&o--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,i.ParseError.LeftParenthesisExpected,[],[n.TokenType.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@media\"))return null;var t=this.create(r.Media);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,i.ParseError.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(r.Medialist);if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(r.MediaQuery),o=!0,s=!1;if(!this.peek(n.TokenType.ParenthesisL)){if(this.acceptIdent(\"only\")||this.acceptIdent(\"not\"),!t.addChild(this._parseIdent()))return null;s=!0,o=this.acceptIdent(\"and\")}for(;o;)if(t.addChild(this._parseMediaContentStart()))o=this.acceptIdent(\"and\");else{if(!this.accept(n.TokenType.ParenthesisL))return s?this.finish(t,i.ParseError.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,i.ParseError.IdentifierExpected,[],e);if(this.accept(n.TokenType.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,i.ParseError.TermExpected,[],e);if(!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected,[],e);o=this.acceptIdent(\"and\")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(r.Node);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword(\"@page\"))return null;var e=this.create(r.Page);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,i.ParseError.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.PageBoxMarginBox);return this.acceptOneKeyword(o.pageBoxDirectives)||this.markError(e,i.ParseError.UnknownAtRule,[],[n.TokenType.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(n.TokenType.Ident)&&!this.peek(n.TokenType.Colon))return null;var e=this.create(r.Node);return e.addChild(this._parseIdent()),this.accept(n.TokenType.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword(\"@-moz-document\"))return null;var e=this.create(r.Document);return this.consumeToken(),this.resync([],[n.TokenType.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.UnknownAtRule);e.addChild(this._parseUnknownAtRuleName());var t=0,o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:if(0===o&&0===s&&0===a)break e;break;case n.TokenType.EOF:return o>0?this.finish(e,i.ParseError.RightCurlyExpected):a>0?this.finish(e,i.ParseError.RightSquareBracketExpected):s>0?this.finish(e,i.ParseError.RightParenthesisExpected):this.finish(e);case n.TokenType.CurlyL:t++,o++;break;case n.TokenType.CurlyR:if(o--,t>0&&0===o){if(this.consumeToken(),a>0)return this.finish(e,i.ParseError.RightSquareBracketExpected);if(s>0)return this.finish(e,i.ParseError.RightParenthesisExpected);break e}if(o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(r.Node);return this.accept(n.TokenType.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim(\"/\")||this.peekDelim(\"*\")||this.peekDelim(\"+\")||this.peekDelim(\"-\")||this.peek(n.TokenType.Dashmatch)||this.peek(n.TokenType.Includes)||this.peek(n.TokenType.SubstringOperator)||this.peek(n.TokenType.PrefixOperator)||this.peek(n.TokenType.SuffixOperator)||this.peekDelim(\"=\")){var e=this.createNode(r.NodeType.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim(\"+\")&&!this.peekDelim(\"-\"))return null;var e=this.create(r.Node);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(\">\")){var e=this.create(r.Node);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(\">\")){if(!this.hasWhitespace()&&this.acceptDelim(\">\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=r.NodeType.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim(\"+\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim(\"~\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim(\"/\")){e=this.create(r.Node);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent(\"deep\")&&!this.hasWhitespace()&&this.acceptDelim(\"/\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(r.SimpleSelector),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(n.TokenType.Hash)&&!this.peekDelim(\"#\"))return null;var e=this.createNode(r.NodeType.IdentifierSelector);if(this.acceptDelim(\"#\")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,i.ParseError.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim(\".\"))return null;var e=this.createNode(r.NodeType.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(r.NodeType.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim(\"*\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(r.NodeType.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim(\"*\"),this.acceptDelim(\"|\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.create(r.AttributeSelector);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent(\"i\")),this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(r.Node);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(n.TokenType.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(n.TokenType.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(n.TokenType.Colon))return null;var e=this.mark(),t=this.createNode(r.NodeType.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(n.TokenType.Colon)&&this.hasWhitespace()&&this.markError(t,i.ParseError.IdentifierExpected),t.addChild(this._parseIdent())||this.markError(t,i.ParseError.IdentifierExpected),t)},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(n.TokenType.Exclamation))return null;var e=this.createNode(r.NodeType.Prio);return this.accept(n.TokenType.Exclamation)&&this.acceptIdent(\"important\")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(r.Expression);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(n.TokenType.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.createNode(r.NodeType.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(r.BinaryExpression);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,i.ParseError.TermExpected);n=this.finish(n);var o=this._parseOperator();return o&&(n=this._parseBinaryExpr(n,o)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(r.Term);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseURILiteral())||e.setExpression(this._parseFunction())||e.setExpression(this._parseIdent())||e.setExpression(this._parseStringLiteral())||e.setExpression(this._parseNumeric())||e.setExpression(this._parseHexColor())||e.setExpression(this._parseOperation())||e.setExpression(this._parseNamedLine())?this.finish(e):null},e.prototype._parseOperation=function(){if(!this.peek(n.TokenType.ParenthesisL))return null;var e=this.create(r.Node);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(n.TokenType.ParenthesisR)?this.finish(e):this.finish(e,i.ParseError.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(n.TokenType.Num)||this.peek(n.TokenType.Percentage)||this.peek(n.TokenType.Resolution)||this.peek(n.TokenType.Length)||this.peek(n.TokenType.EMS)||this.peek(n.TokenType.EXS)||this.peek(n.TokenType.Angle)||this.peek(n.TokenType.Time)||this.peek(n.TokenType.Dimension)||this.peek(n.TokenType.Freq)){var e=this.create(r.NumericValue);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(n.TokenType.String)&&!this.peek(n.TokenType.BadString))return null;var e=this.createNode(r.NodeType.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(n.TokenType.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(r.NodeType.URILiteral);return this.accept(n.TokenType.Ident),this.hasWhitespace()||!this.peek(n.TokenType.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(r.Node);return this.accept(n.TokenType.String)||this.accept(n.TokenType.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(n.TokenType.Ident))return null;var t=this.create(r.Identifier);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(n.TokenType.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(r.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(n.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(n.TokenType.Comma)&&!this.peek(n.TokenType.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,i.ParseError.ExpressionExpected);return this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(n.TokenType.Ident))return null;var e=this.create(r.Identifier);if(e.referenceTypes=[r.ReferenceType.Function],this.acceptIdent(\"progid\")){if(this.accept(n.TokenType.Colon))for(;this.accept(n.TokenType.Ident)&&this.acceptDelim(\".\"););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(r.FunctionArgument);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(n.TokenType.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(r.HexColorValue);return this.consumeToken(),this.finish(e)}return null},e}();t.Parser=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e,t){return-1!==e.indexOf(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.includes=n,t.union=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=[],i=0,o=e;i<o.length;i++)for(var s=o[i],a=0,l=s;a<l.length;a++){var c=l[a];n(r,c)||r.push(c)}return r}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssSymbolScope\",[\"require\",\"exports\",\"./cssNodes\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNodes\"),r=e(\"../utils/arrays\"),i=function(){function e(e,t){this.offset=e,this.length=t,this.symbols=[],this.parent=null,this.children=[]}return e.prototype.addChild=function(e){this.children.push(e),e.setParent(this)},e.prototype.setParent=function(e){this.parent=e},e.prototype.findScope=function(e,t){return void 0===t&&(t=0),this.offset<=e&&this.offset+this.length>e+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,i=r.findFirst(this.children,(function(e){return e.offset>n}));if(0===i)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n<this.symbols.length;n++){var r=this.symbols[n];if(r.name===e&&r.type===t)return r}return null},e.prototype.getSymbols=function(){return this.symbols},e}();t.Scope=i;var o=function(e){function t(){return e.call(this,0,Number.MAX_VALUE)||this}return __extends(t,e),t}(i);t.GlobalScope=o;var s=function(e,t,n,r){this.name=e,this.value=t,this.node=n,this.type=r};t.Symbol=s;var a=function(){function e(e){this.scope=e}return e.prototype.addSymbol=function(e,t,n,r){if(-1!==e.offset){var i=this.scope.findScope(e.offset,e.length);i&&i.addSymbol(new s(t,n,e,r))}},e.prototype.addScope=function(e){if(-1!==e.offset){var t=this.scope.findScope(e.offset,e.length);if(t&&(t.offset!==e.offset||t.length!==e.length)){var n=new i(e.offset,e.length);return t.addChild(n),n}return t}return null},e.prototype.addSymbolToChildScope=function(e,t,n,r,i){if(e&&-1!==e.offset){var o=this.addScope(e);o&&o.addSymbol(new s(n,r,t,i))}},e.prototype.visitNode=function(e){switch(e.type){case n.NodeType.Keyframe:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Keyframe),!0;case n.NodeType.CustomPropertyDeclaration:return this.visitCustomPropertyDeclarationNode(e);case n.NodeType.VariableDeclaration:return this.visitVariableDeclarationNode(e);case n.NodeType.Ruleset:return this.visitRuleSet(e);case n.NodeType.MixinDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Mixin),!0;case n.NodeType.FunctionDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Function),!0;case n.NodeType.FunctionParameter:return this.visitFunctionParameterNode(e);case n.NodeType.Declarations:return this.addScope(e),!0;case n.NodeType.For:var t=e,r=t.getDeclarations();return r&&t.variable&&this.addSymbolToChildScope(r,t.variable,t.variable.getName(),void 0,n.ReferenceType.Variable),!0;case n.NodeType.Each:var i=e,o=i.getDeclarations();if(o)for(var s=0,a=i.getVariables().getChildren();s<a.length;s++){var l=a[s];this.addSymbolToChildScope(o,l,l.getName(),void 0,n.ReferenceType.Variable)}return!0}return!0},e.prototype.visitRuleSet=function(e){var t=this.scope.findScope(e.offset,e.length);if(t)for(var r=0,i=e.getSelectors().getChildren();r<i.length;r++){var o=i[r];o instanceof n.Selector&&1===o.getChildren().length&&t.addSymbol(new s(o.getChild(0).getText(),void 0,o,n.ReferenceType.Rule))}return!0},e.prototype.visitVariableDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():void 0;return this.addSymbol(e,e.getName(),t,n.ReferenceType.Variable),!0},e.prototype.visitFunctionParameterNode=function(e){var t=e.getParent().getDeclarations();if(t){var r=e.getDefaultValue(),i=r?r.getText():void 0;this.addSymbolToChildScope(t,e,e.getName(),i,n.ReferenceType.Variable)}return!0},e.prototype.visitCustomPropertyDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():\"\";return this.addCSSVariable(e.getProperty(),e.getProperty().getName(),t,n.ReferenceType.Variable),!0},e.prototype.addCSSVariable=function(e,t,n,r){-1!==e.offset&&this.scope.addSymbol(new s(t,n,e,r))},e}();t.ScopeBuilder=a;var l=function(){function e(e){this.global=new o,e.acceptVisitor(new a(this.global))}return e.prototype.findSymbolsAtOffset=function(e,t){for(var n=this.global.findScope(e,0),r=[],i={};n;){for(var o=n.getSymbols(),s=0;s<o.length;s++){var a=o[s];a.type!==t||i[a.name]||(r.push(a),i[a.name]=!0)}n=n.parent}return r},e.prototype.internalFindSymbol=function(e,t){var r=e;if(e.parent instanceof n.FunctionParameter&&e.parent.getParent()instanceof n.BodyDeclaration&&(r=e.parent.getParent().getDeclarations()),e.parent instanceof n.FunctionArgument&&e.parent.getParent()instanceof n.Function){var i=e.parent.getParent().getIdentifier();if(i){var o=this.internalFindSymbol(i,[n.ReferenceType.Function]);o&&(r=o.node.getDeclarations())}}if(!r)return null;for(var s=e.getText(),a=this.global.findScope(r.offset,r.length);a;){for(var l=0;l<t.length;l++){var c=t[l],d=a.getSymbol(s,c);if(d)return d}a=a.parent}return null},e.prototype.evaluateReferenceTypes=function(e){if(e instanceof n.Identifier){var t=e.referenceTypes;if(t)return t;if(e.isCustomProperty)return[n.ReferenceType.Variable];var r=n.getParentDeclaration(e);if(r){var i=r.getNonPrefixedPropertyName();if((\"animation\"===i||\"animation-name\"===i)&&r.getValue()&&r.getValue().offset===e.offset)return[n.ReferenceType.Keyframe]}}else if(e instanceof n.Variable)return[n.ReferenceType.Variable];return e.findAParent(n.NodeType.Selector,n.NodeType.ExtendsReference)?[n.ReferenceType.Rule]:null},e.prototype.findSymbolFromNode=function(e){if(!e)return null;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();var t=this.evaluateReferenceTypes(e);return t?this.internalFindSymbol(e,t):null},e.prototype.matchesSymbol=function(e,t){if(!e)return!1;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();if(!e.matches(t.name))return!1;var r=this.evaluateReferenceTypes(e);return!(!r||-1===r.indexOf(t.type))&&this.internalFindSymbol(e,r)===t},e.prototype.findSymbol=function(e,t,n){for(var r=this.global.findScope(n);r;){var i=r.getSymbol(e,t);if(i)return i;r=r.parent}return null},e}();t.Symbols=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.difference=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;i<t.length+1;++i)a.push(0);for(i=0;i<e.length+1;++i)s.push(a);for(i=1;i<e.length+1;++i)for(o=1;o<t.length+1;++o)e[i-1]===t[o-1]?s[i][o]=s[i-1][o-1]+1:s[i][o]=Math.max(s[i-1][o],s[i][o-1]);return s[e.length][t.length]-Math.sqrt(r)},t.getLimitedString=function(e,t){return void 0===t&&(t=!0),e?e.length<140?e:e.slice(0,140)+(t?\"…\":\"\"):\"\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,i,o,s,a,l,c,d,p,h,m,u;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.number(t.line)&&x.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,i){if(x.number(e)&&x.number(t)&&x.number(r)&&x.number(i))return{start:n.create(e,t),end:n.create(r,i)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+i+\"]\")},e.is=function(e){var t=e;return x.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.string(t.uri)||x.undefined(t.uri))}}(i=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.targetRange)&&x.string(t.targetUri)&&(r.is(t.targetSelectionRange)||x.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||x.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return x.number(t.red)&&x.number(t.green)&&x.number(t.blue)&&x.number(t.alpha)}}(o=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&o.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return x.string(t.label)&&(x.undefined(t.textEdit)||c.is(t))&&(x.undefined(t.additionalTextEdits)||x.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return x.defined(n)&&(o.startCharacter=n),x.defined(r)&&(o.endCharacter=r),x.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return x.number(t.startLine)&&x.number(t.startLine)&&(x.undefined(t.startCharacter)||x.number(t.startCharacter))&&(x.undefined(t.endCharacter)||x.number(t.endCharacter))&&(x.undefined(t.kind)||x.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return x.defined(t)&&i.is(t.location)&&x.string(t.message)}}(s=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,i,o){var s={range:e,message:t};return x.defined(n)&&(s.severity=n),x.defined(r)&&(s.code=r),x.defined(i)&&(s.source=i),x.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&x.string(t.message)&&(x.number(t.severity)||x.undefined(t.severity))&&(x.number(t.code)||x.string(t.code)||x.undefined(t.code))&&(x.string(t.source)||x.undefined(t.source))&&(x.undefined(t.relatedInformation)||x.typedArray(t.relatedInformation,s.is))}}(a=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return x.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.title)&&x.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.string(t.newText)&&r.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return x.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(p=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&x.string(t.oldUri)&&x.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(h=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||x.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||x.boolean(t.options.ignoreIfNotExists)))}}(m=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return x.string(e.kind)?p.is(e)||h.is(e)||m.is(e):d.is(e)})))}}(u=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,y,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new v(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new v(i),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new v(i),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(m.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&(null===t.version||x.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&x.string(t.languageId)&&x.number(t.version)&&x.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return x.objectLiteral(e)&&g.is(t.kind)&&x.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return x.string(t)||x.objectLiteral(t)&&x.string(t.language)&&x.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&x.objectLiteral(t)&&(b.is(t.contents)||y.is(t.contents)||x.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return x.defined(t)&&(i.documentation=t),x.defined(n)?i.parameters=n:i.parameters=[],i}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return x.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,i,o){var s={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(s.children=o),s},e.is=function(e){var t=e;return t&&x.string(t.name)&&x.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||x.string(t.detail))&&(void 0===t.deprecated||x.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return x.defined(t)&&x.typedArray(t.diagnostics,a.is)&&(void 0===t.only||x.typedArray(t.only,x.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return l.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&x.string(t.title)&&(void 0===t.diagnostics||x.typedArray(t.diagnostics,a.is))&&(void 0===t.kind||x.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||x.boolean(t.isPreferred))&&(void 0===t.edit||u.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return x.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return x.defined(t)&&x.number(t.tabSize)&&x.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.target)||x.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new S(e,t,n,r)},e.is=function(e){var t=e;return!!(x.defined(t)&&x.string(t.uri)&&(x.undefined(t.languageId)||x.string(t.languageId))&&x.number(t.lineCount)&&x.func(t.getText)&&x.func(t.positionAt)&&x.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,o=r.length-1;o>=0;o--){var s=r[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,a)+s.newText+n.substring(l,n.length),i=a}return n}}(t.TextDocument||(t.TextDocument={}));var x,S=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n=\"\\r\"===i||\"\\n\"===i,\"\\r\"===i&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(0===i)return n.create(0,e);for(;r<i;){var o=Math.floor((r+i)/2);t[o]>e?i=o:r=o+1}var s=r-1;return n.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(x||(x={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var o=0,s=t;o<s.length;o++){var a=s[o];if(e.isIncremental(a)){var l=i(a.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+a.text+this._content.substring(d,this._content.length);var p=Math.max(l.start.line,0),h=Math.max(l.end.line,0),m=this._lineOffsets,u=r(a.text,!1,c);if(h-p===u.length)for(var f=0,g=u.length;f<g;f++)m[f+p+1]=u[f];else u.length<1e4?m.splice.apply(m,[p+1,h-p].concat(u)):this._lineOffsets=m=m.slice(0,p+1).concat(u,m.slice(h+1));var b=a.text.length-(d-c);if(0!==b)for(f=p+1+u.length,g=m.length;f<g;f++)m[f]=m[f]+b}else{if(!e.isFull(a))throw new Error(\"Unknown change event received\");this._content=a.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function i(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function o(e){var t=i(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,i){return new n(e,t,r,i)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t.map(o),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,s=r.length-1;s>=0;s--){var a=r[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+a.newText+n.substring(c,n.length),i=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.File=1]=\"File\",e[e.Directory=2]=\"Directory\",e[e.SymbolicLink=64]=\"SymbolicLink\"}(t.FileType||(t.FileType={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCompletion\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\",\"../cssLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"../parser/cssNodes\"),i=e(\"../parser/cssSymbolScope\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/strings\"),a=e(\"../cssLanguageTypes\"),l=e(\"vscode-nls\"),c=e(\"../utils/objects\"),d=l.loadMessageBundle(),p=a.InsertTextFormat.Snippet;!function(e){e.Enums=\" \",e.Normal=\"d\",e.VendorPrefixed=\"x\",e.Term=\"y\",e.Variable=\"z\"}(n||(n={}));var h=function(){function e(e,t){void 0===e&&(e=null),this.variablePrefix=e,this.clientCapabilities=t,this.completionParticipants=[],this.valueTypes=[r.NodeType.Identifier,r.NodeType.Value,r.NodeType.StringLiteral,r.NodeType.URILiteral,r.NodeType.NumericValue,r.NodeType.HexColorValue,r.NodeType.VariableName,r.NodeType.Prio]}return e.prototype.configure=function(e){this.settings=e},e.prototype.getSymbolContext=function(){return this.symbolContext||(this.symbolContext=new i.Symbols(this.styleSheet)),this.symbolContext},e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n){this.offset=e.offsetAt(t),this.position=t,this.currentWord=function(e,t){var n=t-1,r=e.getText();for(;n>=0&&-1===' \\t\\n\\r\":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n;try{var i={isIncomplete:!1,items:[]};this.nodePath=r.getNodePath(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof r.Property)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof r.Expression)s.parent instanceof r.Interpolation?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof r.SimpleSelector){var l=s.findAParent(r.NodeType.ExtendsReference,r.NodeType.Ruleset);if(l)if(l.type===r.NodeType.ExtendsReference)this.getCompletionsForExtendsReference(l,s,i);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),i)}}else if(s instanceof r.FunctionArgument)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof r.Declarations)this.getCompletionsForDeclarations(s,i);else if(s instanceof r.VariableDeclaration)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof r.RuleSet)this.getCompletionsForRuleSet(s,i);else if(s instanceof r.Interpolation)this.getCompletionsForInterpolation(s,i);else if(s instanceof r.FunctionDeclaration)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof r.MixinReference)this.getCompletionsForMixinReference(s,i);else if(s instanceof r.Function)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof r.Supports)this.getCompletionsForSupports(s,i);else if(s instanceof r.SupportsCondition)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof r.ExtendsReference)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===r.NodeType.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==r.NodeType.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===r.NodeType.Import},e.prototype.finalize=function(e){return e.items.some((function(e){return!!e.sortText||\"-\"===e.label[0]}))&&e.items.forEach((function(e,t){e.sortText?\"-\"===e.label[0]?e.sortText+=n.VendorPrefixed+\"_\"+u(t):e.sortText+=n.Normal+\"_\"+u(t):\"-\"===e.label[0]?e.sortText=n.VendorPrefixed+\"_\"+u(t):e.sortText=n.Normal+\"_\"+u(t)})),e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.nodePath.length-1;n>=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,l=this.isCompletePropertyWithSemicolonEnabled;return o.cssDataManager.getProperties().forEach((function(d){var p,h,u=!1;e?(p=r.getCompletionRange(e.getProperty()),h=d.name,c.isDefined(e.colonPosition)||(h+=\": \",u=!0)):(p=r.getCompletionRange(null),h=d.name+\": \",u=!0),!e&&l&&(h+=\"$0;\"),e&&!e.semicolonPosition&&l&&r.offset>=r.textDocument.offsetAt(p.end)&&(h+=\"$0;\");var f={label:d.name,documentation:o.getEntryDescription(d,r.doesSupportMarkdown()),tags:m(d)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(p,h),insertTextFormat:a.InsertTextFormat.Snippet,kind:a.CompletionItemKind.Property};d.restrictions||(u=!1),i&&u&&(f.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),s.startsWith(d.name,\"-\")&&(f.sortText=n.VendorPrefixed),t.items.push(f)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,\"isTriggerPropertyValueCompletionEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.triggerPropertyValueCompletion||this.settings.completion.triggerPropertyValueCompletion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCompletePropertyWithSemicolonEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.completePropertyWithSemicolon||this.settings.completion.completePropertyWithSemicolon},enumerable:!0,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,i=e.getFullPropertyName(),s=o.cssDataManager.getProperty(i),l=e.getValue()||null;l&&l.hasChildren();)l=l.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:i,propertyValue:n.currentWord,range:n.getCompletionRange(l)})})),s){if(s.restrictions)for(var c=0,d=s.restrictions;c<d.length;c++){switch(d[c]){case\"color\":this.getColorProposals(s,l,t);break;case\"position\":this.getPositionProposals(s,l,t);break;case\"repeat\":this.getRepeatStyleProposals(s,l,t);break;case\"line-style\":this.getLineStyleProposals(s,l,t);break;case\"line-width\":this.getLineWidthProposals(s,l,t);break;case\"geometry-box\":this.getGeometryBoxProposals(s,l,t);break;case\"box\":this.getBoxProposals(s,l,t);break;case\"image\":this.getImageProposals(s,l,t);break;case\"timing-function\":this.getTimingFunctionProposals(s,l,t);break;case\"shape\":this.getBasicShapeProposals(s,l,t)}}this.getValueEnumProposals(s,l,t),this.getCSSWideKeywordProposals(s,l,t),this.getUnitProposals(s,l,t)}else for(var p=0,h=function(e,t){var n=t.getFullPropertyName(),i=new f;function o(e){return(e instanceof r.Identifier||e instanceof r.NumericValue||e instanceof r.HexColorValue)&&i.add(e.getText()),!0}return e.accept((function(e){if(e instanceof r.Declaration&&e!==t&&function(e){var t=e.getFullPropertyName();return n===t}(e)){var i=e.getValue();i&&i.accept(o)}return!0})),i}(this.styleSheet,e).getEntries();p<h.length;p++){var m=h[p];t.items.push({label:m,textEdit:a.TextEdit.replace(this.getCompletionRange(l),m),kind:a.CompletionItemKind.Value})}return this.getVariableProposals(l,t),this.getTermProposals(s,l,t),t},e.prototype.getValueEnumProposals=function(e,t,r){if(e.values)for(var i=0,l=e.values;i<l.length;i++){var c=l[i],d=c.name,h=void 0;if(s.endsWith(d,\")\")){var u=d.lastIndexOf(\"(\");-1!==u&&(d=d.substr(0,u)+\"($1)\",h=p)}var f={label:c.name,documentation:o.getEntryDescription(c,this.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(this.getCompletionRange(t),d),sortText:n.Enums,kind:a.CompletionItemKind.Value,insertTextFormat:h};r.items.push(f)}return r},e.prototype.getCSSWideKeywordProposals=function(e,t,n){for(var r in o.cssWideKeywords)n.items.push({label:r,documentation:o.cssWideKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getCompletionsForInterpolation=function(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable);i<o.length;i++){var l=o[i],c=s.startsWith(l.name,\"--\")?\"var(\"+l.name+\")\":l.name,p={label:l.name,documentation:l.value?s.getLimitedString(l.value):l.value,textEdit:a.TextEdit.replace(this.getCompletionRange(e),c),kind:a.CompletionItemKind.Variable,sortText:n.Variable};if(\"string\"==typeof p.documentation&&y(p.documentation)&&(p.kind=a.CompletionItemKind.Color),l.node.type===r.NodeType.FunctionParameter){var h=l.node.getParent();h.type===r.NodeType.MixinDeclaration&&(p.detail=d(\"completion.argument\",\"argument from '{0}'\",h.getName()))}t.items.push(p)}return t},e.prototype.getVariableProposalsForCSSVarFunction=function(e){for(var t=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable),n=0,i=t=t.filter((function(e){return s.startsWith(e.name,\"--\")}));n<i.length;n++){var o=i[n],l={label:o.name,documentation:o.value?s.getLimitedString(o.value):o.value,textEdit:a.TextEdit.replace(this.getCompletionRange(null),o.name),kind:a.CompletionItemKind.Variable};\"string\"==typeof l.documentation&&y(l.documentation)&&(l.kind=a.CompletionItemKind.Color),e.items.push(l)}return e},e.prototype.getUnitProposals=function(e,t,n){var i=\"0\";if(this.currentWord.length>0){var s=this.currentWord.match(/^-?\\d[\\.\\d+]*/);s&&(i=s[0],n.isIncomplete=i.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===r.NodeType.Term&&(t=t.getParent()),e.restrictions)for(var l=0,c=e.restrictions;l<c.length;l++){var d=c[l],p=o.units[d];if(p)for(var h=0,m=p;h<m.length;h++){var u=i+m[h];n.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(t),u),kind:a.CompletionItemKind.Unit})}}return n},e.prototype.getCompletionRange=function(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){var t=-1!==e.end?this.textDocument.positionAt(e.end):this.position,n=this.textDocument.positionAt(e.offset);if(n.line===t.line)return a.Range.create(n,t)}return this.defaultReplaceRange},e.prototype.getColorProposals=function(e,t,n){for(var r in o.colors)n.items.push({label:r,documentation:o.colors[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color});for(var r in o.colorKeywords)n.items.push({label:r,documentation:o.colorKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});var i=new f;this.styleSheet.acceptVisitor(new b(i,this.offset));for(var s=0,l=i.getEntries();s<l.length;s++){r=l[s];n.items.push({label:r,textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color})}for(var c=function(e){var r=1,i=e.func.replace(/\\[?\\$(\\w+)\\]?/g,(function(e,t){return\"${\"+r+++\":\"+t+\"}\"}));n.items.push({label:e.func.substr(0,e.func.indexOf(\"(\")),detail:e.func,documentation:e.desc,textEdit:a.TextEdit.replace(d.getCompletionRange(t),i),insertTextFormat:p,kind:a.CompletionItemKind.Function})},d=this,h=0,m=o.colorFunctions;h<m.length;h++){c(m[h])}return n},e.prototype.getPositionProposals=function(e,t,n){for(var r in o.positionKeywords)n.items.push({label:r,documentation:o.positionKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getRepeatStyleProposals=function(e,t,n){for(var r in o.repeatStyleKeywords)n.items.push({label:r,documentation:o.repeatStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineStyleProposals=function(e,t,n){for(var r in o.lineStyleKeywords)n.items.push({label:r,documentation:o.lineStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineWidthProposals=function(e,t,n){for(var r=0,i=o.lineWidthKeywords;r<i.length;r++){var s=i[r];n.items.push({label:s,textEdit:a.TextEdit.replace(this.getCompletionRange(t),s),kind:a.CompletionItemKind.Value})}return n},e.prototype.getGeometryBoxProposals=function(e,t,n){for(var r in o.geometryBoxKeywords)n.items.push({label:r,documentation:o.geometryBoxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getBoxProposals=function(e,t,n){for(var r in o.boxKeywords)n.items.push({label:r,documentation:o.boxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getImageProposals=function(e,t,n){for(var r in o.imageFunctions){var i=g(r);n.items.push({label:r,documentation:o.imageFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getTimingFunctionProposals=function(e,t,n){for(var r in o.transitionTimingFunctions){var i=g(r);n.items.push({label:r,documentation:o.transitionTimingFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getBasicShapeProposals=function(e,t,n){for(var r in o.basicShapeFunctions){var i=g(r);n.items.push({label:r,documentation:o.basicShapeFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getCompletionsForStylesheet=function(e){var t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof r.RuleSet?this.getCompletionsForRuleSet(t,e):t instanceof r.Supports?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)},e.prototype.getCompletionForTopLevel=function(e){var t=this;return o.cssDataManager.getAtDirectives().forEach((function(n){e.items.push({label:n.name,textEdit:a.TextEdit.replace(t.getCompletionRange(null),n.name),documentation:o.getEntryDescription(n,t.doesSupportMarkdown()),tags:m(n)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Keyword})})),this.getCompletionsForSelector(null,!1,e),e},e.prototype.getCompletionsForRuleSet=function(e,t){var n=e.getDeclarations();return n&&n.endsWith(\"}\")&&this.offset>=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,i){var l=this,c=this.findInNodePath(r.NodeType.PseudoSelector,r.NodeType.IdentifierSelector,r.NodeType.ClassSelector,r.NodeType.ElementNameSelector);if(!c&&this.offset-this.currentWord.length>0&&\":\"===this.textDocument.getText()[this.offset-this.currentWord.length-1]&&(this.currentWord=\":\"+this.currentWord,this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position)),o.cssDataManager.getPseudoClasses().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\":-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),o.cssDataManager.getPseudoElements().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\"::-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),!t){for(var d=0,h=o.html5Tags;d<h.length;d++){var u=h[d];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}for(var f=0,b=o.svgElements;f<b.length;f++){u=b[f];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}}var y={};y[this.currentWord]=!0;var v=this.textDocument.getText();if(this.styleSheet.accept((function(e){if(e.type===r.NodeType.SimpleSelector&&e.length>0){var t=v.substr(e.offset,e.length);return\".\"!==t.charAt(0)||y[t]||(y[t]=!0,i.items.push({label:t,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),kind:a.CompletionItemKind.Keyword})),!1}return!0})),e&&e.isNested()){var w=e.getSelectors().findFirstChildBeforeOffset(this.offset);w&&0===e.getSelectors().getChildren().indexOf(w)&&this.getPropertyProposals(null,i)}return i},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof r.AbstractDeclaration){var i=n;if(!c.isDefined(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(c.isDefined(i.semicolonPosition)&&i.semicolonPosition<this.offset)return this.offset===i.semicolonPosition+1?t:this.getCompletionsForDeclarationProperty(null,t);if(i instanceof r.Declaration)return this.getCompletionsForDeclarationValue(i,t)}else n instanceof r.ExtendsReference?this.getCompletionsForExtendsReference(n,null,t):this.currentWord&&\"@\"===this.currentWord[0]&&this.getCompletionsForDeclarationProperty(null,t);return t},e.prototype.getCompletionsForVariableDeclaration=function(e,t){return this.offset&&c.isDefined(e.colonPosition)&&this.offset>e.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof r.FunctionArgument)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var i=e.findParent(r.NodeType.Declaration);if(!i)return this.getTermProposals(null,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof r.NumericValue||o instanceof r.Identifier?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches(\"var\")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offset<n.end&&this.getTermProposals(null,null,t),t},e.prototype.getCompletionsForMixinReference=function(e,t){for(var n=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Mixin);n<i.length;n++){var o=i[n];o.node instanceof r.MixinDeclaration&&t.items.push(this.makeTermProposal(o,o.node.getParameters(),null))}return t},e.prototype.getTermProposals=function(e,t,n){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Function);i<o.length;i++){var s=o[i];s.node instanceof r.FunctionDeclaration&&n.items.push(this.makeTermProposal(s,s.node.getParameters(),t))}return n},e.prototype.makeTermProposal=function(e,t,i){e.node;var o=t.getChildren().map((function(e){return e instanceof r.FunctionParameter?e.getName():e.getText()})),s=e.name+\"(\"+o.map((function(e,t){return\"${\"+(t+1)+\":\"+e+\"}\"})).join(\", \")+\")\";return{label:e.name,detail:e.name+\"(\"+o.join(\", \")+\")\",textEdit:a.TextEdit.replace(this.getCompletionRange(i),s),insertTextFormat:p,kind:a.CompletionItemKind.Function,sortText:n.Term}},e.prototype.getCompletionsForSupportsCondition=function(e,t){var n=e.findFirstChildBeforeOffset(this.offset);if(n){if(n instanceof r.Declaration)return!c.isDefined(n.colonPosition)||this.offset<=n.colonPosition?this.getCompletionsForDeclarationProperty(n,t):this.getCompletionsForDeclarationValue(n,t);if(n instanceof r.SupportsCondition)return this.getCompletionsForSupportsCondition(n,t)}return c.isDefined(e.lParent)&&this.offset>e.lParent&&(!c.isDefined(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof r.SupportsCondition?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n=\"\",r=this.position;var s=this.textDocument.positionAt(e.offset+\"url(\".length);i=a.Range.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.doesSupportMarkdown=function(){if(!c.isDefined(this.supportsMarkdown)){if(!c.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(a.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return!(!e.status||\"nonstandard\"!==e.status&&\"obsolete\"!==e.status)}function u(e){var t=e.toString();switch(t.length){case 4:return t;case 3:return\"0\"+t;case 2:return\"00\"+t;case 1:return\"000\"+t;default:return\"0000\"}}t.CSSCompletion=h;var f=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function g(e){return e.replace(/\\(\\)$/,\"($1)\")}var b=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof r.HexColorValue||e instanceof r.Function&&o.isColorConstructor(e))&&(this.currentOffset<e.offset||e.end<this.currentOffset)&&this.entries.add(e.getText()),!0},e}();function y(e){return e.toLowerCase()in o.colors||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/selectorPrinting\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssScanner\",\"../languageFacts/facts\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../parser/cssScanner\"),i=e(\"../languageFacts/facts\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t<n.length;t++){var r=n[t];if(r.name===e)return r.value}return null},e.prototype.addChild=function(t){t instanceof e&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)},e.prototype.append=function(e){if(this.attributes){var t=this.attributes[this.attributes.length-1];t.value=t.value+e}},e.prototype.prepend=function(e){if(this.attributes){var t=this.attributes[0];t.value=e+t.value}},e.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof a);)e=e.parent;return e},e.prototype.removeChild=function(e){if(this.children){var t=this.children.indexOf(e);if(-1!==t)return this.children.splice(t,1),!0}return!1},e.prototype.addAttr=function(e,t){this.attributes||(this.attributes=[]);for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return void(i.value+=\" \"+t)}this.attributes.push({name:e,value:t})},e.prototype.clone=function(t){void 0===t&&(t=!0);var n=new e;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var o=i[r];n.addAttr(o.name,o.value)}}if(t&&this.children){n.children=[];for(var s=0;s<this.children.length;s++)n.addChild(this.children[s].clone())}return n},e.prototype.cloneWithParent=function(){var e=this.clone(!1);!this.parent||this.parent instanceof a||this.parent.cloneWithParent().addChild(e);return e},e}();t.Element=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t}(s);t.RootElement=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.addAttr(\"name\",t),n}return __extends(t,e),t}(s);t.LabelElement=l;var c,d=function(){function e(e){this.quote=e,this.result=[]}return e.prototype.print=function(e){return this.result=[],e instanceof a?e.children&&this.doPrint(e.children,0):this.doPrint([e],0),[{language:\"html\",value:this.result.join(\"\\n\")}]},e.prototype.doPrint=function(e,t){for(var n=0,r=e;n<r.length;n++){var i=r[n];this.doPrintElement(i,t),i.children&&this.doPrint(i.children,t+1)}},e.prototype.writeLine=function(e,t){var n=new Array(e+1).join(\"  \");this.result.push(n+t)},e.prototype.doPrintElement=function(e,t){var n=e.findAttribute(\"name\");if(e instanceof l||\"…\"===n)this.writeLine(t,n);else{var r=[\"<\"];if(n?r.push(n):r.push(\"element\"),e.attributes)for(var i=0,o=e.attributes;i<o.length;i++){var s=o[i];if(\"name\"!==s.name){r.push(\" \"),r.push(s.name);var a=s.value;a&&(r.push(\"=\"),r.push(c.ensure(a,this.quote)))}}r.push(\">\"),this.writeLine(t,r.join(\"\"))}},e}();!function(e){function t(e){var t=e.match(/^['\"](.*)[\"']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(c||(c={}));var p=function(){this.id=0,this.attr=0,this.tag=0};function h(e,t){for(var r=new s,i=0,o=e.getChildren();i<o.length;i++){var a=o[i];switch(a.type){case n.NodeType.SelectorCombinator:if(t){var l=a.getText().split(\"&\");if(1===l.length){r.addAttr(\"name\",l[0]);break}if(r=t.cloneWithParent(),l[0])r.findRoot().prepend(l[0]);for(var d=1;d<l.length;d++){if(d>1){var p=t.cloneWithParent();r.addChild(p.findRoot()),r=p}r.append(l[d])}}break;case n.NodeType.SelectorPlaceholder:if(a.matches(\"@at-root\"))return r;case n.NodeType.ElementNameSelector:var h=a.getText();r.addAttr(\"name\",\"*\"===h?\"element\":m(h));break;case n.NodeType.ClassSelector:r.addAttr(\"class\",m(a.getText().substring(1)));break;case n.NodeType.IdentifierSelector:r.addAttr(\"id\",m(a.getText().substring(1)));break;case n.NodeType.MixinDeclaration:r.addAttr(\"class\",a.getName());break;case n.NodeType.PseudoSelector:r.addAttr(m(a.getText()),\"\");break;case n.NodeType.AttributeSelector:var u=a,f=u.getIdentifier();if(f){var g=u.getValue(),b=u.getOperator(),y=void 0;if(g&&b)switch(m(b.getText())){case\"|=\":y=c.remove(m(g.getText()))+\"-…\";break;case\"^=\":y=c.remove(m(g.getText()))+\"…\";break;case\"$=\":y=\"…\"+c.remove(m(g.getText()));break;case\"~=\":y=\" … \"+c.remove(m(g.getText()))+\" … \";break;case\"*=\":y=\"…\"+c.remove(m(g.getText()))+\"…\";break;default:y=c.remove(m(g.getText()))}r.addAttr(m(f.getText()),y)}}}return r}function m(e){var t=new r.Scanner;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}function u(e){var t=new p;return function e(r){r.getChildren().forEach((function(r){switch(r.type){case n.NodeType.IdentifierSelector:t.id++;break;case n.NodeType.ClassSelector:case n.NodeType.AttributeSelector:t.attr++;break;case n.NodeType.ElementNameSelector:if(r.matches(\"*\"))break;t.tag++;break;case n.NodeType.PseudoSelector:var o=r.getText();if(function(e){var t=e.match(/^::?([\\w-]+)/);return!!t&&!!i.cssDataManager.getPseudoElement(\"::\"+t[1])}(o))t.tag++;else{if(o.match(/^:not/i))break;t.attr++}}r.getChildren().length>0&&e(r)}))}(e),o(\"specificity\",\"[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})\",t.id,t.attr,t.tag)}t.toElement=h,t.selectorToMarkedString=function(e){var t=b(e);if(t){var n=new d('\"').print(t);return n.push(u(e)),n}return[]},t.simpleSelectorToMarkedString=function(e){var t=h(e),n=new d('\"').print(t);return n.push(u(e)),n};var f=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof a)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===n.NodeType.SelectorCombinator}))){var r=this.element.findRoot();r.parent instanceof a&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i<o.length;i++){var s=o[i];if(s instanceof n.SimpleSelector){if(this.prev instanceof n.SimpleSelector){var c=new l(\"…\");this.element.addChild(c),this.element=c}else this.prev&&(this.prev.matches(\"+\")||this.prev.matches(\"~\"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches(\"~\")&&(this.element.addChild(h(s)),this.element.addChild(new l(\"⋮\")));var d=h(s,t),p=d.findRoot();this.element.addChild(p),this.element=d}(s instanceof n.SimpleSelector||s.type===n.NodeType.SelectorCombinatorParent||s.type===n.NodeType.SelectorCombinatorShadowPiercingDescendant||s.type===n.NodeType.SelectorCombinatorSibling||s.type===n.NodeType.SelectorCombinatorAllSiblings)&&(this.prev=s)}},e}();function g(e){switch(e.type){case n.NodeType.MixinDeclaration:case n.NodeType.Stylesheet:return!0}return!1}function b(e){if(e.matches(\"@at-root\"))return null;var t=new a,r=[],i=e.getParent();if(i instanceof n.RuleSet)for(var o=i.getParent();o&&!g(o);){if(o instanceof n.RuleSet){if(o.getSelectors().matches(\"@at-root\"))break;r.push(o)}o=o.getParent()}for(var s=new f(t),l=r.length-1;l>=0;l--){var c=r[l].getSelectors().getChild(0);c&&s.processSelector(c)}return s.processSelector(e),t}t.selectorToElement=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssHover\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"./selectorPrinting\",\"../utils/strings\",\"../cssLanguageTypes\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"./selectorPrinting\"),o=e(\"../utils/strings\"),s=e(\"../cssLanguageTypes\"),a=e(\"../utils/objects\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,a){function l(t){return s.Range.create(e.positionAt(t.offset),e.positionAt(t.end))}for(var c=e.offsetAt(t),d=n.getNodePath(a,c),p=null,h=0;h<d.length;h++){var m=d[h];if(m instanceof n.Selector){p={contents:i.selectorToMarkedString(m),range:l(m)};break}if(m instanceof n.SimpleSelector){o.startsWith(m.getText(),\"@\")||(p={contents:i.simpleSelectorToMarkedString(m),range:l(m)});break}if(m instanceof n.Declaration){var u=m.getFullPropertyName();(g=r.cssDataManager.getProperty(u))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.UnknownAtRule){var f=m.getText();(g=r.cssDataManager.getAtDirective(f))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.Node&&m.type===n.NodeType.PseudoSelector){var g,b=m.getText();(g=\"::\"===b.slice(0,2)?r.cssDataManager.getPseudoElement(b):r.cssDataManager.getPseudoClass(b))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else;}return p&&(p.contents=this.convertContents(p.contents)),p},e.prototype.convertContents=function(e){return this.doesSupportMarkdown()?e:\"string\"==typeof e?e:\"kind\"in e?{kind:\"plaintext\",value:e.value}:Array.isArray(e)?e.map((function(e){return\"string\"==typeof e?e:e.value})):e.value},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){if(!a.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.CSSHover=l}));var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssNavigation\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"vscode-nls\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"vscode-nls\"),i=e(\"../parser/cssNodes\"),o=e(\"../parser/cssSymbolScope\"),s=e(\"../languageFacts/facts\"),a=e(\"../utils/strings\"),l=r.loadMessageBundle(),c=function(){function e(){}return e.prototype.findDefinition=function(e,t,n){var r=new o.Symbols(n),s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a)return null;var l=r.findSymbolFromNode(a);return l?{uri:e.uri,range:p(l.node,e)}:null},e.prototype.findReferences=function(e,t,n){return this.findDocumentHighlights(e,t,n).map((function(t){return{uri:e.uri,range:t.range}}))},e.prototype.findDocumentHighlights=function(e,t,n){var r=[],s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a||a.type===i.NodeType.Stylesheet||a.type===i.NodeType.Declarations)return r;a.type===i.NodeType.Identifier&&a.parent&&a.parent.type===i.NodeType.ClassSelector&&(a=a.parent);var l=new o.Symbols(n),c=l.findSymbolFromNode(a),d=a.getText();return n.accept((function(t){if(c){if(l.matchesSymbol(t,c))return r.push({kind:h(t),range:p(t,e)}),!1}else a&&a.type===t.type&&t.matches(d)&&r.push({kind:h(t),range:p(t,e)});return!0})),r},e.prototype.isRawStringDocumentLinkNode=function(e){return e.type===i.NodeType.Import},e.prototype.findDocumentLinks=function(e,t,n){var r=this,o=[];return t.accept((function(t){if(t.type===i.NodeType.URILiteral)return(s=function(e,t,n){if(0===t.getChildren().length)return null;var r=t.getChild(0);return d(e,r,n)}(e,t,n))&&o.push(s),!1;if(t.parent&&r.isRawStringDocumentLinkNode(t.parent)){var s,l=t.getText();if(a.startsWith(l,\"'\")||a.startsWith(l,'\"'))(s=d(e,t,n))&&o.push(s);return!1}return!0})),o},e.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(r){return[2,this.findDocumentLinks(e,t,n)]}))}))},e.prototype.findDocumentSymbols=function(e,t){var r=[];return t.accept((function(t){var o={name:null,kind:n.SymbolKind.Class,location:null},s=t;if(t instanceof i.Selector)return o.name=t.getText(),(s=t.findAParent(i.NodeType.Ruleset,i.NodeType.ExtendsReference))&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!1;if(t instanceof i.VariableDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Variable;else if(t instanceof i.MixinDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Method;else if(t instanceof i.FunctionDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Function;else if(t instanceof i.Keyframe)o.name=l(\"literal.keyframes\",\"@keyframes {0}\",t.getName());else if(t instanceof i.FontFace)o.name=l(\"literal.fontface\",\"@font-face\");else if(t instanceof i.Media){var a=t.getChild(0);a instanceof i.Medialist&&(o.name=\"@media \"+a.getText(),o.kind=n.SymbolKind.Module)}return o.name&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!0})),r},e.prototype.findDocumentColors=function(e,t){var n=[];return t.accept((function(t){var r=function(e,t){var n=s.getColorValue(e);if(n){var r=p(e,t);return{color:n,range:r}}return null}(t,e);return r&&n.push(r),!0})),n},e.prototype.getColorPresentations=function(e,t,r,i){var o,a=[],l=Math.round(255*r.red),c=Math.round(255*r.green),d=Math.round(255*r.blue);o=1===r.alpha?\"rgb(\"+l+\", \"+c+\", \"+d+\")\":\"rgba(\"+l+\", \"+c+\", \"+d+\", \"+r.alpha+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),o=1===r.alpha?\"#\"+m(l)+m(c)+m(d):\"#\"+m(l)+m(c)+m(d)+m(Math.round(255*r.alpha)),a.push({label:o,textEdit:n.TextEdit.replace(i,o)});var p=s.hslFromColor(r);return o=1===p.a?\"hsl(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%)\":\"hsla(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%, \"+p.a+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),a},e.prototype.doRename=function(e,t,r,i){var o,s=this.findDocumentHighlights(e,t,i).map((function(e){return n.TextEdit.replace(e.range,r)}));return{changes:(o={},o[e.uri]=s,o)}},e}();function d(e,t,n){if(!t)return null;var r=t.getText(),i=p(t,e);return i.start.line===i.end.line&&i.start.character===i.end.character?null:((a.startsWith(r,\"'\")||a.startsWith(r,'\"'))&&(r=r.slice(1,-1)),{range:i,target:a.startsWith(r,\"http://\")||a.startsWith(r,\"https://\")?r:/^\\w+:\\/\\//g.test(r)?r:n.resolveReference(r,e.uri)})}function p(e,t){return n.Range.create(t.positionAt(e.offset),t.positionAt(e.end))}function h(e){if(e.type===i.NodeType.Selector)return n.DocumentHighlightKind.Write;if(e instanceof i.Identifier&&e.parent&&e.parent instanceof i.Property&&e.isCustomProperty)return n.DocumentHighlightKind.Write;if(e.parent)switch(e.parent.type){case i.NodeType.FunctionDeclaration:case i.NodeType.MixinDeclaration:case i.NodeType.Keyframe:case i.NodeType.VariableDeclaration:case i.NodeType.FunctionParameter:return n.DocumentHighlightKind.Write}return n.DocumentHighlightKind.Read}function m(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}t.CSSNavigation=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintRules\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle(),i=n.Level.Warning,o=n.Level.Error,s=n.Level.Ignore,a=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Rule=a;var l=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Setting=l,t.Rules={AllVendorPrefixes:new a(\"compatibleVendorPrefixes\",r(\"rule.vendorprefixes.all\",\"When using a vendor-specific prefix make sure to also include all other vendor-specific properties\"),s),IncludeStandardPropertyWhenUsingVendorPrefix:new a(\"vendorPrefix\",r(\"rule.standardvendorprefix.all\",\"When using a vendor-specific prefix also include the standard property\"),i),DuplicateDeclarations:new a(\"duplicateProperties\",r(\"rule.duplicateDeclarations\",\"Do not use duplicate style definitions\"),s),EmptyRuleSet:new a(\"emptyRules\",r(\"rule.emptyRuleSets\",\"Do not use empty rulesets\"),i),ImportStatemement:new a(\"importStatement\",r(\"rule.importDirective\",\"Import statements do not load in parallel\"),s),BewareOfBoxModelSize:new a(\"boxModel\",r(\"rule.bewareOfBoxModelSize\",\"Do not use width or height when using padding or border\"),s),UniversalSelector:new a(\"universalSelector\",r(\"rule.universalSelector\",\"The universal selector (*) is known to be slow\"),s),ZeroWithUnit:new a(\"zeroUnits\",r(\"rule.zeroWidthUnit\",\"No unit for zero needed\"),s),RequiredPropertiesForFontFace:new a(\"fontFaceProperties\",r(\"rule.fontFaceProperties\",\"@font-face rule must define 'src' and 'font-family' properties\"),i),HexColorLength:new a(\"hexColorLength\",r(\"rule.hexColor\",\"Hex colors must consist of three, four, six or eight hex numbers\"),o),ArgsInColorFunction:new a(\"argumentsInColorFunction\",r(\"rule.colorFunction\",\"Invalid number of parameters\"),o),UnknownProperty:new a(\"unknownProperties\",r(\"rule.unknownProperty\",\"Unknown property.\"),i),UnknownAtRules:new a(\"unknownAtRules\",r(\"rule.unknownAtRules\",\"Unknown at-rule.\"),i),IEStarHack:new a(\"ieHack\",r(\"rule.ieHack\",\"IE hacks are only necessary when supporting IE7 and older\"),s),UnknownVendorSpecificProperty:new a(\"unknownVendorSpecificProperties\",r(\"rule.unknownVendorSpecificProperty\",\"Unknown vendor specific property.\"),s),PropertyIgnoredDueToDisplay:new a(\"propertyIgnoredDueToDisplay\",r(\"rule.propertyIgnoredDueToDisplay\",\"Property is ignored due to the display.\"),i),AvoidImportant:new a(\"important\",r(\"rule.avoidImportant\",\"Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.\"),s),AvoidFloat:new a(\"float\",r(\"rule.avoidFloat\",\"Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.\"),s),AvoidIdSelector:new a(\"idSelector\",r(\"rule.avoidIdSelector\",\"Selectors should not contain IDs because these rules are too tightly coupled with the HTML.\"),s)},t.Settings={ValidProperties:new l(\"validProperties\",r(\"rule.validProperties\",\"A list of properties that are not validated against the `unknownProperties` rule.\"),[])};var c=function(){function e(e){void 0===e&&(e={}),this.conf=e}return e.prototype.getRule=function(e){if(this.conf.hasOwnProperty(e.id)){var t=function(e){switch(e){case\"ignore\":return n.Level.Ignore;case\"warning\":return n.Level.Warning;case\"error\":return n.Level.Error}return null}(this.conf[e.id]);if(t)return t}return e.defaultValue},e.prototype.getSetting=function(e){return this.conf[e.id]},e}();t.LintConfigurationSettings=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCodeActions\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"../utils/strings\",\"../services/lintRules\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"../utils/strings\"),o=e(\"../services/lintRules\"),s=e(\"../cssLanguageTypes\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){}return e.prototype.doCodeActions=function(e,t,n,r){return this.doCodeActions2(e,t,n,r).map((function(t){var n=t.edit&&t.edit.documentChanges&&t.edit.documentChanges[0];return s.Command.create(t.title,\"_css.applyCodeAction\",e.uri,e.version,n&&n.edits)}))},e.prototype.doCodeActions2=function(e,t,n,r){var i=[];if(n.diagnostics)for(var o=0,s=n.diagnostics;o<s.length;o++){var a=s[o];this.appendFixesForMarker(e,r,a,i)}return i},e.prototype.getFixesForUnknownProperty=function(e,t,n,o){var l=t.getName(),c=[];r.cssDataManager.getProperties().forEach((function(e){var t=i.difference(l,e.name);t>=l.length/2&&c.push({property:e.name,score:t})})),c.sort((function(e,t){return t.score-e.score}));for(var d=3,p=0,h=c;p<h.length;p++){var m=h[p].property,u=a(\"css.codeaction.rename\",\"Rename to '{0}'\",m),f=s.TextEdit.replace(n.range,m),g=s.VersionedTextDocumentIdentifier.create(e.uri,e.version),b={documentChanges:[s.TextDocumentEdit.create(g,[f])]},y=s.CodeAction.create(u,b,s.CodeActionKind.QuickFix);if(y.diagnostics=[n],o.push(y),--d<=0)return}},e.prototype.appendFixesForMarker=function(e,t,r,i){if(r.code===o.Rules.UnknownProperty.id)for(var s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=n.getNodePath(t,s),c=l.length-1;c>=0;c--){var d=l[c];if(d instanceof n.Declaration){var p=d.getProperty();if(p&&p.offset===s&&p.end===a)return void this.getFixesForUnknownProperty(e,p,r,i)}}},e}();t.CSSCodeActions=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintUtil\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\"),r=function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e};function i(e,t,r,i){var o=e[t];o.value=r,r&&(n.includes(o.properties,i)||o.properties.push(i))}function o(e,t,n,r){\"top\"===t||\"right\"===t||\"bottom\"===t||\"left\"===t?i(e,t,n,r):function(e,t,n){i(e,\"top\",t,n),i(e,\"right\",t,n),i(e,\"bottom\",t,n),i(e,\"left\",t,n)}(e,n,r)}function s(e,t,n){switch(t.length){case 1:o(e,void 0,t[0],n);break;case 2:o(e,\"top\",t[0],n),o(e,\"bottom\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n);break;case 3:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n),o(e,\"bottom\",t[2],n);break;case 4:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"bottom\",t[2],n),o(e,\"left\",t[3],n)}}function a(e,t){for(var n=0,r=t;n<r.length;n++){var i=r[n];if(e.matches(i))return!0}return!1}function l(e,t){return void 0===t&&(t=!0),(!t||!a(e,[\"initial\",\"unset\"]))&&0!==parseFloat(e.getText())}function c(e,t){return void 0===t&&(t=!0),e.map((function(e){return l(e,t)}))}function d(e,t){return void 0===t&&(t=!0),!a(e,[\"none\",\"hidden\"])&&(!t||!a(e,[\"initial\",\"unset\"]))}function p(e,t){return void 0===t&&(t=!0),e.map((function(e){return d(e,t)}))}function h(e){var t=e.getChildren();if(1===t.length)return l(i=t[0])&&d(i);for(var n=0,r=t;n<r.length;n++){var i;if(!l(i=r[n],!1)||!d(i,!1))return!1}return!0}t.Element=r,t.default=function(e){for(var t={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}},n=0,r=e;n<r.length;n++){var i=r[n],a=i.node.value;if(void 0!==a)switch(i.fullPropertyName){case\"box-sizing\":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case\"width\":t.width=i;break;case\"height\":t.height=i;break;default:var m=i.fullPropertyName.split(\"-\");switch(m[0]){case\"border\":switch(m[1]){case void 0:case\"top\":case\"right\":case\"bottom\":case\"left\":switch(m[2]){case void 0:o(t,m[1],h(a),i);break;case\"width\":o(t,m[1],l(a,!1),i);break;case\"style\":o(t,m[1],d(a,!0),i)}break;case\"width\":s(t,c(a.getChildren(),!1),i);break;case\"style\":s(t,p(a.getChildren(),!0),i)}break;case\"padding\":1===m.length?s(t,c(a.getChildren(),!0),i):o(t,m[1],l(a,!0),i)}}}return t}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lint\",[\"require\",\"exports\",\"../languageFacts/facts\",\"./lintRules\",\"../parser/cssNodes\",\"./lintUtil\",\"../utils/arrays\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../languageFacts/facts\"),r=e(\"./lintRules\"),i=e(\"../parser/cssNodes\"),o=e(\"./lintUtil\"),s=e(\"../utils/arrays\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){this.data={}}return e.prototype.add=function(e,t,n){var r=this.data[e];r||(r={nodes:[],names:[]},this.data[e]=r),r.names.push(t),n&&r.nodes.push(n)},e}(),c=function(){function e(e,t){var n=this;this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new l,this.validProperties={};var i=t.getSetting(r.Settings.ValidProperties);Array.isArray(i)&&i.forEach((function(e){if(\"string\"==typeof e){var t=e.trim().toLowerCase();t.length&&(n.validProperties[t]=!0)}}))}return e.entries=function(t,n,r,i){var o=new e(n,r);return t.acceptVisitor(o),o.completeValidations(),o.getEntries(i)},e.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},e.prototype.fetch=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];o.fullPropertyName===t&&n.push(o)}return n},e.prototype.fetchWithValue=function(e,t,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i];if(s.fullPropertyName===t){var a=s.node.getValue();a&&this.findValueInExpression(a,n)&&r.push(s)}}return r},e.prototype.findValueInExpression=function(e,t){var n=!1;return e.accept((function(e){return e.type===i.NodeType.Identifier&&e.matches(t)&&(n=!0),!n})),n},e.prototype.getEntries=function(e){return void 0===e&&(e=i.Level.Warning|i.Level.Error),this.warnings.filter((function(t){return 0!=(t.getLevel()&e)}))},e.prototype.addEntry=function(e,t,n){var r=new i.Marker(e,t,this.settings.getRule(t),n);this.warnings.push(r)},e.prototype.getMissingNames=function(e,t){for(var n=e.slice(0),r=0;r<t.length;r++){var i=n.indexOf(t[r]);-1!==i&&(n[i]=null)}var o=null;for(r=0;r<n.length;r++){var s=n[r];s&&(o=null===o?a(\"namelist.single\",\"'{0}'\",s):a(\"namelist.concatenated\",\"{0}, '{1}'\",o,s))}return o},e.prototype.visitNode=function(e){switch(e.type){case i.NodeType.UnknownAtRule:return this.visitUnknownAtRule(e);case i.NodeType.Keyframe:return this.visitKeyframe(e);case i.NodeType.FontFace:return this.visitFontFace(e);case i.NodeType.Ruleset:return this.visitRuleSet(e);case i.NodeType.SimpleSelector:return this.visitSimpleSelector(e);case i.NodeType.Function:return this.visitFunction(e);case i.NodeType.NumericValue:return this.visitNumericValue(e);case i.NodeType.Import:return this.visitImport(e);case i.NodeType.HexColorValue:return this.visitHexColorValue(e);case i.NodeType.Prio:return this.visitPrio(e)}return!0},e.prototype.completeValidations=function(){this.validateKeyframes()},e.prototype.visitUnknownAtRule=function(e){var t=e.getChild(0);return!!t&&(!n.cssDataManager.getAtDirective(t.getText())&&(this.addEntry(t,r.Rules.UnknownAtRules,\"Unknown at rule \"+t.getText()),!0))},e.prototype.visitKeyframe=function(e){var t=e.getKeyword();if(!t)return!1;var n=t.getText();return this.keyframes.add(e.getName(),n,\"@keyframes\"!==n?t:null),!0},e.prototype.validateKeyframes=function(){var e=[\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"];for(var t in this.keyframes.data){var n=this.keyframes.data[t].names,i=-1===n.indexOf(\"@keyframes\");if(i||1!==n.length){var o=this.getMissingNames(e,n);if(o||i)for(var s=0,l=this.keyframes.data[t].nodes;s<l.length;s++){var c=l[s];if(i){var d=a(\"keyframes.standardrule.missing\",\"Always define standard rule '@keyframes' when defining keyframes.\");this.addEntry(c,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,d)}if(o){d=a(\"keyframes.vendorspecific.missing\",\"Always include all vendor specific rules: Missing: {0}\",o);this.addEntry(c,r.Rules.AllVendorPrefixes,d)}}}}return!0},e.prototype.visitSimpleSelector=function(e){var t=this.documentText.charAt(e.offset);return 1===e.length&&\"*\"===t&&this.addEntry(e,r.Rules.UniversalSelector),\"#\"===t&&this.addEntry(e,r.Rules.AvoidIdSelector),!0},e.prototype.visitImport=function(e){return this.addEntry(e,r.Rules.ImportStatemement),!0},e.prototype.visitRuleSet=function(t){var c=t.getDeclarations();if(!c)return!1;c.hasChildren()||this.addEntry(t.getSelectors(),r.Rules.EmptyRuleSet);for(var d=[],p=0,h=c.getChildren();p<h.length;p++){(z=h[p])instanceof i.Declaration&&d.push(new o.Element(z))}var m=o.default(d);if(m.width){var u=[];if(m.right.value&&(u=s.union(u,m.right.properties)),m.left.value&&(u=s.union(u,m.left.properties)),0!==u.length){for(var f=0,g=u;f<g.length;f++){var b=g[f];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.width.node,r.Rules.BewareOfBoxModelSize)}}if(m.height){u=[];if(m.top.value&&(u=s.union(u,m.top.properties)),m.bottom.value&&(u=s.union(u,m.bottom.properties)),0!==u.length){for(var y=0,v=u;y<v.length;y++){b=v[y];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.height.node,r.Rules.BewareOfBoxModelSize)}}var w=this.fetchWithValue(d,\"display\",\"inline\");if(w.length>0)for(var x=0,S=[\"width\",\"height\",\"margin-top\",\"margin-bottom\",\"float\"];x<S.length;x++)for(var k=S[x],C=this.fetch(d,k),T=0;T<C.length;T++){var F=C[T].node,E=F.getValue();(\"float\"!==k||E&&!E.matches(\"none\"))&&this.addEntry(F,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInline\",\"Property is ignored due to the display. With 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect.\"))}if((w=this.fetchWithValue(d,\"display\",\"inline-block\")).length>0)for(C=this.fetch(d,\"float\"),T=0;T<C.length;T++){var D=C[T].node;(E=D.getValue())&&!E.matches(\"none\")&&this.addEntry(D,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInlineBlock\",\"inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'\"))}if((w=this.fetchWithValue(d,\"display\",\"block\")).length>0)for(C=this.fetch(d,\"vertical-align\"),T=0;T<C.length;T++)this.addEntry(C[T].node,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayBlock\",\"Property is ignored due to the display. With 'display: block', vertical-align should not be used.\"));var R=this.fetch(d,\"float\");for(T=0;T<R.length;T++){var z=R[T];this.isValidPropertyDeclaration(z)||this.addEntry(z.node,r.Rules.AvoidFloat)}for(var _=0;_<d.length;_++){if(\"background\"!==(z=d[_]).fullPropertyName&&!this.validProperties[z.fullPropertyName])if((E=z.node.getValue())&&\"-\"!==this.documentText.charAt(E.offset)){var I=this.fetch(d,z.fullPropertyName);if(I.length>1)for(var N=0;N<I.length;N++){var P=I[N].node.getValue();P&&\"-\"!==this.documentText.charAt(P.offset)&&I[N]!==z&&this.addEntry(z.node,r.Rules.DuplicateDeclarations)}}}if(!t.getSelectors().matches(\":export\")){for(var M=new l,A=!1,O=0,W=d;O<W.length;O++){var L=(z=W[O]).node;if(this.isCSSDeclaration(L)){var j=z.fullPropertyName,U=j.charAt(0);if(\"-\"===U){if(\"-\"!==j.charAt(1)){n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownVendorSpecificProperty);var V=L.getNonPrefixedPropertyName();M.add(V,j,L.getProperty())}}else{var K=j;\"*\"!==U&&\"_\"!==U||(this.addEntry(L.getProperty(),r.Rules.IEStarHack),j=j.substr(1)),n.cssDataManager.isKnownProperty(K)||n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownProperty,a(\"property.unknownproperty.detailed\",\"Unknown property: '{0}'\",j)),M.add(j,j,null)}}else A=!0}if(!A)for(var q in M.data){var B=M.data[q],$=B.names,G=n.cssDataManager.isStandardProperty(q)&&-1===$.indexOf(q);if(G||1!==$.length){for(var H=[],J=(_=0,e.prefixes.length);_<J;_++){var X=e.prefixes[_];n.cssDataManager.isStandardProperty(X+q)&&H.push(X+q)}var Y=this.getMissingNames(H,$);if(Y||G)for(var Z=0,Q=B.nodes;Z<Q.length;Z++){var ee=Q[Z];if(G){var te=a(\"property.standard.missing\",\"Also define the standard property '{0}' for compatibility\",q);this.addEntry(ee,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,te)}if(Y){te=a(\"property.vendorspecific.missing\",\"Always include all vendor specific properties: Missing: {0}\",Y);this.addEntry(ee,r.Rules.AllVendorPrefixes,te)}}}}}return!0},e.prototype.visitPrio=function(e){return this.addEntry(e,r.Rules.AvoidImportant),!0},e.prototype.visitNumericValue=function(e){var t=e.findParent(i.NodeType.Function);if(t&&\"calc\"===t.getName())return!0;var o=e.findParent(i.NodeType.Declaration);if(o&&o.getValue()){var s=e.getValue();if(!s.unit||-1===n.units.length.indexOf(s.unit.toLowerCase()))return!0;0===parseFloat(s.value)&&s.unit&&!this.validProperties[o.getFullPropertyName()]&&this.addEntry(e,r.Rules.ZeroWithUnit)}return!0},e.prototype.visitFontFace=function(e){var t=e.getDeclarations();if(!t)return!1;for(var n=!1,i=!1,o=!1,s=0,a=t.getChildren();s<a.length;s++){var l=a[s];if(this.isCSSDeclaration(l)){var c=l.getProperty().getName().toLowerCase();\"src\"===c&&(n=!0),\"font-family\"===c&&(i=!0)}else o=!0}return o||n&&i||this.addEntry(e,r.Rules.RequiredPropertiesForFontFace),!0},e.prototype.isCSSDeclaration=function(e){if(e instanceof i.Declaration){if(!e.getValue())return!1;var t=e.getProperty();if(!t)return!1;var n=t.getIdentifier();return!(!n||n.containsInterpolation())}return!1},e.prototype.visitHexColorValue=function(e){var t=e.length;return 9!==t&&7!==t&&5!==t&&4!==t&&this.addEntry(e,r.Rules.HexColorLength),!1},e.prototype.visitFunction=function(e){var t=e.getName().toLowerCase(),n=-1,o=0;switch(t){case\"rgb(\":case\"hsl(\":n=3;break;case\"rgba(\":case\"hsla(\":n=4}return-1!==n&&(e.getArguments().accept((function(e){return!(e instanceof i.BinaryExpression)||(o+=1,!1)})),o!==n&&this.addEntry(e,r.Rules.ArgsInColorFunction)),!0},e.prefixes=[\"-ms-\",\"-moz-\",\"-o-\",\"-webkit-\"],e}();t.LintVisitor=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssValidation\",[\"require\",\"exports\",\"../parser/cssNodes\",\"./lintRules\",\"./lint\",\"../cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"./lintRules\"),i=e(\"./lint\"),o=e(\"../cssLanguageTypes\"),s=function(){function e(){}return e.prototype.configure=function(e){this.settings=e},e.prototype.doValidation=function(e,t,s){if(void 0===s&&(s=this.settings),s&&!1===s.validate)return[];var a=[];a.push.apply(a,n.ParseErrorCollector.entries(t)),a.push.apply(a,i.LintVisitor.entries(t,e,new r.LintConfigurationSettings(s&&s.lint)));var l=[];for(var c in r.Rules)l.push(r.Rules[c].id);return a.filter((function(e){return e.getLevel()!==n.Level.Ignore})).map((function(t){var r=o.Range.create(e.positionAt(t.getOffset()),e.positionAt(t.getOffset()+t.getLength())),i=e.languageId;return{code:t.getRule().id,source:i,message:t.getMessage(),severity:t.getLevel()===n.Level.Warning?o.DiagnosticSeverity.Warning:o.DiagnosticSeverity.Error,range:r}}))},e}();t.CSSValidation=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"$\".charCodeAt(0),l=\"#\".charCodeAt(0),c=\"{\".charCodeAt(0),d=\"=\".charCodeAt(0),p=\"!\".charCodeAt(0),h=\"<\".charCodeAt(0),m=\">\".charCodeAt(0),u=\".\".charCodeAt(0),f=\"@\".charCodeAt(0),g=n.TokenType.CustomToken;t.VariableName=g++,t.InterpolationFunction=g++,t.Default=g++,t.EqualsOperator=g++,t.NotEqualsOperator=g++,t.GreaterEqualsOperator=g++,t.SmallerEqualsOperator=g++,t.Ellipsis=g++,t.Module=g++,t.Forward=g++,t.Use=g++;var b=function(e){function g(){return null!==e&&e.apply(this,arguments)||this}return __extends(g,e),g.prototype.scanNext=function(r){if(this.stream.advanceIfChar(a)){var i=[\"$\"];if(this.ident(i))return this.finishToken(r,t.VariableName,i.join(\"\"));this.stream.goBackTo(r)}if(this.stream.advanceIfChars([l,c]))return this.finishToken(r,t.InterpolationFunction);if(this.stream.advanceIfChars([d,d]))return this.finishToken(r,t.EqualsOperator);if(this.stream.advanceIfChars([p,d]))return this.finishToken(r,t.NotEqualsOperator);if(this.stream.advanceIfChar(h))return this.stream.advanceIfChar(d)?this.finishToken(r,t.SmallerEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChar(m))return this.stream.advanceIfChar(d)?this.finishToken(r,t.GreaterEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChars([u,u,u]))return this.finishToken(r,t.Ellipsis);if(this.stream.advanceIfChar(f)){i=[\"@\"];if(this.ident(i)){var o=i.join(\"\");if(\"@forward\"===o)return this.finishToken(r,t.Forward,o);if(\"@use\"===o)return this.finishToken(r,t.Use,o)}this.stream.goBackTo(r)}return e.prototype.scanNext.call(this,r)},g.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},g}(n.Scanner);t.SCSSScanner=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.SCSSIssueType=r,t.SCSSParseError={FromExpected:new r(\"scss-fromexpected\",n(\"expected.from\",\"'from' expected\")),ThroughOrToExpected:new r(\"scss-throughexpected\",n(\"expected.through\",\"'through' or 'to' expected\")),InExpected:new r(\"scss-fromexpected\",n(\"expected.in\",\"'in' expected\"))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssParser\",[\"require\",\"exports\",\"./scssScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./scssErrors\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scssScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./scssErrors\"),a=e(\"./cssErrors\"),l=function(e){function t(){return e.call(this,new n.SCSSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStart=function(){return this._parseForward()||this._parseUse()||e.prototype._parseStylesheetStart.call(this)},t.prototype._parseStylesheetStatement=function(){return this.peek(r.TokenType.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||e.prototype._parseStylesheetAtStatement.call(this):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(o.Import);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);for(;this.accept(r.TokenType.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);return this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(n.VariableName))return null;var t=this.create(o.VariableDeclaration);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,a.ParseError.VariableValueExpected,[],e);for(;this.accept(r.TokenType.Exclamation);){if(!this.peekRegExp(r.TokenType.Ident,/^(default|global)$/))return this.finish(t,a.ParseError.UnknownKeyword);this.consumeToken()}return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(n.VariableName))return null;var e=this.create(o.Variable);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(o.Module);return t.setIdentifier(this._parseIdent([o.ReferenceType.Module]))?this.hasWhitespace()||!this.acceptDelim(\".\")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,a.ParseError.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.TokenType.Ident)&&!this.peek(n.InterpolationFunction)&&!this.peekDelim(\"-\"))return null;var i=this.create(o.Identifier);i.referenceTypes=e,i.isCustomProperty=this.peekRegExp(r.TokenType.Ident,/^--/);for(var s,a=!1;(this.accept(r.TokenType.Ident)||i.addChild((s=void 0,s=t.mark(),t.acceptDelim(\"-\")&&(t.hasWhitespace()||t.acceptDelim(\"-\"),t.hasWhitespace())?(t.restoreAtMark(s),null):t._parseInterpolation()))||a&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)))&&(a=!0,!this.hasWhitespace()););return a?this.finish(i):null},t.prototype._parseTerm=function(){var t=this.create(o.Term);if(t.setExpression(this._parseModuleMember()))return this.finish(t);var n=e.prototype._parseTerm.call(this);return n||(t.setExpression(this._parseVariable())||t.setExpression(this._parseSelectorCombinator())||t.setExpression(this._tryParsePrio())?this.finish(t):null)},t.prototype._parseInterpolation=function(){if(this.peek(n.InterpolationFunction)){var e=this.create(o.Interpolation);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.RightCurlyExpected):this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(n.EqualsOperator)||this.peek(n.NotEqualsOperator)||this.peek(n.GreaterEqualsOperator)||this.peek(n.SmallerEqualsOperator)||this.peekDelim(\">\")||this.peekDelim(\"<\")||this.peekIdent(\"and\")||this.peekIdent(\"or\")||this.peekDelim(\"%\")){var t=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent(\"not\")){var t=this.create(o.Node);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this.create(o.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected,[r.TokenType.Colon],e);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=!1;if(t.setValue(this._parseExpr())&&(n=!0,t.addChild(this._parsePrio())),this.peek(r.TokenType.CurlyL))t.setNestedProperties(this._parseNestedProperties());else if(!n)return this.finish(t,a.ParseError.PropertyValueExpected);return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseNestedProperties=function(){var e=this.create(o.NestedProperties);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword(\"@extend\")){var e=this.create(o.ExtendsReference);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,a.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.TokenType.Exclamation)&&!this.acceptIdent(\"optional\")?this.finish(e,a.ParseError.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim(\"%\")){var e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword(\"@at-root\")){e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.TokenType.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword(\"@debug\")&&!this.peekKeyword(\"@warn\")&&!this.peekKeyword(\"@error\"))return null;var e=this.createNode(o.NodeType.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.TokenType.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword(\"@if\")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(o.IfStatement);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,a.ParseError.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword(\"@else\"))if(this.peekIdent(\"if\"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.TokenType.CurlyL)){var n=this.create(o.ElseStatement);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword(\"@for\"))return null;var t=this.create(o.ForStatement);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent(\"from\")?t.addChild(this._parseBinaryExpr())?this.acceptIdent(\"to\")||this.acceptIdent(\"through\")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.ThroughOrToExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.FromExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword(\"@each\"))return null;var t=this.create(o.EachStatement);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);for(;this.accept(r.TokenType.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);return this.finish(n),this.acceptIdent(\"in\")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.InExpected,[r.TokenType.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword(\"@while\"))return null;var t=this.create(o.WhileStatement);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword(\"@function\"))return null;var e=this.create(o.FunctionDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Function])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);return this.accept(r.TokenType.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword(\"@return\"))return null;var e=this.createNode(o.NodeType.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword(\"@mixin\"))return null;var e=this.create(o.MixinDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Mixin])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(this.accept(r.TokenType.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(o.FunctionParameter);return e.setIdentifier(this._parseVariable())?(this.accept(n.Ellipsis),this.accept(r.TokenType.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword(\"@content\"))return null;var e=this.createNode(o.NodeType.MixinContent);return this.consumeToken(),this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword(\"@include\"))return null;var e=this.create(o.MixinReference);this.consumeToken();var t=this._parseIdent([o.ReferenceType.Mixin]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(\".\")&&!this.hasWhitespace()){var n=this._parseIdent([o.ReferenceType.Mixin]);if(!n)return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);var i=this.create(o.Module);t.referenceTypes=[o.ReferenceType.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}if(this.peek(r.TokenType.CurlyL)){var s=this.create(o.BodyDeclaration);this._parseBody(s,this._parseMixinReferenceBodyStatement.bind(this)),e.setContent(s)}return this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),i=this._parseVariable();if(i)if(this.accept(r.TokenType.Colon))e.setIdentifier(i);else{if(this.accept(n.Ellipsis))return e.setValue(i),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(n.Ellipsis),e.addChild(this._parsePrio()),this.finish(e)):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.Node);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.TokenType.Comma);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,a.ParseError.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(o.ListEntry),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.TokenType.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,a.ParseError.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peek(n.Use))return null;var e=this.create(o.Use);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|with/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")&&!e.setIdentifier(this._parseIdent([o.ReferenceType.Module]))&&!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.IdentifierOrWildcardExpected);if(this.acceptIdent(\"with\")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(o.ModuleConfiguration);return e.setIdentifier(this._parseVariable())?this.accept(r.TokenType.Colon)&&e.setValue(this._parseExpr(!0))?this.finish(e):this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peek(n.Forward))return null;var e=this.create(o.Forward);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|hide|show/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")){var t=this._parseIdent([o.ReferenceType.Forward]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.WildcardExpected)}if((this.peekIdent(\"hide\")||this.peekIdent(\"show\"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,a.ParseError.IdentifierOrVariableExpected)}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(o.ForwardVisibility);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent()););return e.getChildren().length>1?e:null},t}(i.Parser);t.SCSSParser=l}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../parser/cssNodes\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../parser/cssNodes\"),i=e(\"../cssLanguageTypes\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(e){function t(n){var r=e.call(this,\"$\",n)||this;return a(t.scssModuleLoaders),a(t.scssModuleBuiltIns),r}return __extends(t,e),t.prototype.isImportPathParent=function(t){return t===r.NodeType.Forward||t===r.NodeType.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,i){var o,s=n.getParent().type;return s!==r.NodeType.Forward&&s!==r.NodeType.Use||(o=i.items).push.apply(o,t.scssModuleBuiltIns),e.prototype.getCompletionForImportPath.call(this,n,i)},t.prototype.createReplaceFunction=function(){var e=1;return function(n,r){return\"\\\\\"+r+\": ${\"+e+++\":\"+(t.variableDefaults[r]||\"\")+\"}\"}},t.prototype.createFunctionProposals=function(e,t,n,r){for(var o=0,s=e;o<s.length;o++){var a=s[o],l=a.func.replace(/\\[?(\\$\\w+)\\]?/g,this.createReplaceFunction()),c={label:a.func.substr(0,a.func.indexOf(\"(\")),detail:a.func,documentation:a.desc,textEdit:i.TextEdit.replace(this.getCompletionRange(t),l),insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Function};n&&(c.sortText=\"z\"),r.items.push(c)}return r},t.prototype.getCompletionsForSelector=function(n,r,i){return this.createFunctionProposals(t.selectorFuncs,null,!0,i),e.prototype.getCompletionsForSelector.call(this,n,r,i)},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInFuncs;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionForAtDirectives(n),this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.prototype.getCompletionsForExtendsReference=function(e,t,n){for(var o=0,s=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Rule);o<s.length;o++){var a=s[o],l={label:a.name,textEdit:i.TextEdit.replace(this.getCompletionRange(t),a.name),kind:i.CompletionItemKind.Function};n.items.push(l)}return n},t.prototype.getCompletionForAtDirectives=function(e){var n;return(n=e.items).push.apply(n,t.scssAtDirectives),e},t.prototype.getCompletionForTopLevel=function(t){return this.getCompletionForAtDirectives(t),this.getCompletionForModuleLoaders(t),e.prototype.getCompletionForTopLevel.call(this,t),t},t.prototype.getCompletionForModuleLoaders=function(e){var n;return(n=e.items).push.apply(n,t.scssModuleLoaders),e},t.variableDefaults={$red:\"1\",$green:\"2\",$blue:\"3\",$alpha:\"1.0\",$color:\"#000000\",$weight:\"0.5\",$hue:\"0\",$saturation:\"0%\",$lightness:\"0%\",$degrees:\"0\",$amount:\"0\",$string:'\"\"',$substring:'\"s\"',$number:\"0\",$limit:\"1\"},t.colorProposals=[{func:\"red($color)\",desc:o(\"scss.builtin.red\",\"Gets the red component of a color.\")},{func:\"green($color)\",desc:o(\"scss.builtin.green\",\"Gets the green component of a color.\")},{func:\"blue($color)\",desc:o(\"scss.builtin.blue\",\"Gets the blue component of a color.\")},{func:\"mix($color, $color, [$weight])\",desc:o(\"scss.builtin.mix\",\"Mixes two colors together.\")},{func:\"hue($color)\",desc:o(\"scss.builtin.hue\",\"Gets the hue component of a color.\")},{func:\"saturation($color)\",desc:o(\"scss.builtin.saturation\",\"Gets the saturation component of a color.\")},{func:\"lightness($color)\",desc:o(\"scss.builtin.lightness\",\"Gets the lightness component of a color.\")},{func:\"adjust-hue($color, $degrees)\",desc:o(\"scss.builtin.adjust-hue\",\"Changes the hue of a color.\")},{func:\"lighten($color, $amount)\",desc:o(\"scss.builtin.lighten\",\"Makes a color lighter.\")},{func:\"darken($color, $amount)\",desc:o(\"scss.builtin.darken\",\"Makes a color darker.\")},{func:\"saturate($color, $amount)\",desc:o(\"scss.builtin.saturate\",\"Makes a color more saturated.\")},{func:\"desaturate($color, $amount)\",desc:o(\"scss.builtin.desaturate\",\"Makes a color less saturated.\")},{func:\"grayscale($color)\",desc:o(\"scss.builtin.grayscale\",\"Converts a color to grayscale.\")},{func:\"complement($color)\",desc:o(\"scss.builtin.complement\",\"Returns the complement of a color.\")},{func:\"invert($color)\",desc:o(\"scss.builtin.invert\",\"Returns the inverse of a color.\")},{func:\"alpha($color)\",desc:o(\"scss.builtin.alpha\",\"Gets the opacity component of a color.\")},{func:\"opacity($color)\",desc:\"Gets the alpha component (opacity) of a color.\"},{func:\"rgba($color, $alpha)\",desc:o(\"scss.builtin.rgba\",\"Changes the alpha component for a color.\")},{func:\"opacify($color, $amount)\",desc:o(\"scss.builtin.opacify\",\"Makes a color more opaque.\")},{func:\"fade-in($color, $amount)\",desc:o(\"scss.builtin.fade-in\",\"Makes a color more opaque.\")},{func:\"transparentize($color, $amount)\",desc:o(\"scss.builtin.transparentize\",\"Makes a color more transparent.\")},{func:\"fade-out($color, $amount)\",desc:o(\"scss.builtin.fade-out\",\"Makes a color more transparent.\")},{func:\"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.adjust-color\",\"Increases or decreases one or more components of a color.\")},{func:\"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.scale-color\",\"Fluidly scales one or more properties of a color.\")},{func:\"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.change-color\",\"Changes one or more properties of a color.\")},{func:\"ie-hex-str($color)\",desc:o(\"scss.builtin.ie-hex-str\",\"Converts a color into the format understood by IE filters.\")}],t.selectorFuncs=[{func:\"selector-nest($selectors…)\",desc:o(\"scss.builtin.selector-nest\",\"Nests selector beneath one another like they would be nested in the stylesheet.\")},{func:\"selector-append($selectors…)\",desc:o(\"scss.builtin.selector-append\",\"Appends selectors to one another without spaces in between.\")},{func:\"selector-extend($selector, $extendee, $extender)\",desc:o(\"scss.builtin.selector-extend\",\"Extends $extendee with $extender within $selector.\")},{func:\"selector-replace($selector, $original, $replacement)\",desc:o(\"scss.builtin.selector-replace\",\"Replaces $original with $replacement within $selector.\")},{func:\"selector-unify($selector1, $selector2)\",desc:o(\"scss.builtin.selector-unify\",\"Unifies two selectors to produce a selector that matches elements matched by both.\")},{func:\"is-superselector($super, $sub)\",desc:o(\"scss.builtin.is-superselector\",\"Returns whether $super matches all the elements $sub does, and possibly more.\")},{func:\"simple-selectors($selector)\",desc:o(\"scss.builtin.simple-selectors\",\"Returns the simple selectors that comprise a compound selector.\")},{func:\"selector-parse($selector)\",desc:o(\"scss.builtin.selector-parse\",\"Parses a selector into the format returned by &.\")}],t.builtInFuncs=[{func:\"unquote($string)\",desc:o(\"scss.builtin.unquote\",\"Removes quotes from a string.\")},{func:\"quote($string)\",desc:o(\"scss.builtin.quote\",\"Adds quotes to a string.\")},{func:\"str-length($string)\",desc:o(\"scss.builtin.str-length\",\"Returns the number of characters in a string.\")},{func:\"str-insert($string, $insert, $index)\",desc:o(\"scss.builtin.str-insert\",\"Inserts $insert into $string at $index.\")},{func:\"str-index($string, $substring)\",desc:o(\"scss.builtin.str-index\",\"Returns the index of the first occurance of $substring in $string.\")},{func:\"str-slice($string, $start-at, [$end-at])\",desc:o(\"scss.builtin.str-slice\",\"Extracts a substring from $string.\")},{func:\"to-upper-case($string)\",desc:o(\"scss.builtin.to-upper-case\",\"Converts a string to upper case.\")},{func:\"to-lower-case($string)\",desc:o(\"scss.builtin.to-lower-case\",\"Converts a string to lower case.\")},{func:\"percentage($number)\",desc:o(\"scss.builtin.percentage\",\"Converts a unitless number to a percentage.\"),type:\"percentage\"},{func:\"round($number)\",desc:o(\"scss.builtin.round\",\"Rounds a number to the nearest whole number.\")},{func:\"ceil($number)\",desc:o(\"scss.builtin.ceil\",\"Rounds a number up to the next whole number.\")},{func:\"floor($number)\",desc:o(\"scss.builtin.floor\",\"Rounds a number down to the previous whole number.\")},{func:\"abs($number)\",desc:o(\"scss.builtin.abs\",\"Returns the absolute value of a number.\")},{func:\"min($numbers)\",desc:o(\"scss.builtin.min\",\"Finds the minimum of several numbers.\")},{func:\"max($numbers)\",desc:o(\"scss.builtin.max\",\"Finds the maximum of several numbers.\")},{func:\"random([$limit])\",desc:o(\"scss.builtin.random\",\"Returns a random number.\")},{func:\"length($list)\",desc:o(\"scss.builtin.length\",\"Returns the length of a list.\")},{func:\"nth($list, $n)\",desc:o(\"scss.builtin.nth\",\"Returns a specific item in a list.\")},{func:\"set-nth($list, $n, $value)\",desc:o(\"scss.builtin.set-nth\",\"Replaces the nth item in a list.\")},{func:\"join($list1, $list2, [$separator])\",desc:o(\"scss.builtin.join\",\"Joins together two lists into one.\")},{func:\"append($list1, $val, [$separator])\",desc:o(\"scss.builtin.append\",\"Appends a single value onto the end of a list.\")},{func:\"zip($lists)\",desc:o(\"scss.builtin.zip\",\"Combines several lists into a single multidimensional list.\")},{func:\"index($list, $value)\",desc:o(\"scss.builtin.index\",\"Returns the position of a value within a list.\")},{func:\"list-separator(#list)\",desc:o(\"scss.builtin.list-separator\",\"Returns the separator of a list.\")},{func:\"map-get($map, $key)\",desc:o(\"scss.builtin.map-get\",\"Returns the value in a map associated with a given key.\")},{func:\"map-merge($map1, $map2)\",desc:o(\"scss.builtin.map-merge\",\"Merges two maps together into a new map.\")},{func:\"map-remove($map, $keys)\",desc:o(\"scss.builtin.map-remove\",\"Returns a new map with keys removed.\")},{func:\"map-keys($map)\",desc:o(\"scss.builtin.map-keys\",\"Returns a list of all keys in a map.\")},{func:\"map-values($map)\",desc:o(\"scss.builtin.map-values\",\"Returns a list of all values in a map.\")},{func:\"map-has-key($map, $key)\",desc:o(\"scss.builtin.map-has-key\",\"Returns whether a map has a value associated with a given key.\")},{func:\"keywords($args)\",desc:o(\"scss.builtin.keywords\",\"Returns the keywords passed to a function that takes variable arguments.\")},{func:\"feature-exists($feature)\",desc:o(\"scss.builtin.feature-exists\",\"Returns whether a feature exists in the current Sass runtime.\")},{func:\"variable-exists($name)\",desc:o(\"scss.builtin.variable-exists\",\"Returns whether a variable with the given name exists in the current scope.\")},{func:\"global-variable-exists($name)\",desc:o(\"scss.builtin.global-variable-exists\",\"Returns whether a variable with the given name exists in the global scope.\")},{func:\"function-exists($name)\",desc:o(\"scss.builtin.function-exists\",\"Returns whether a function with the given name exists.\")},{func:\"mixin-exists($name)\",desc:o(\"scss.builtin.mixin-exists\",\"Returns whether a mixin with the given name exists.\")},{func:\"inspect($value)\",desc:o(\"scss.builtin.inspect\",\"Returns the string representation of a value as it would be represented in Sass.\")},{func:\"type-of($value)\",desc:o(\"scss.builtin.type-of\",\"Returns the type of a value.\")},{func:\"unit($number)\",desc:o(\"scss.builtin.unit\",\"Returns the unit(s) associated with a number.\")},{func:\"unitless($number)\",desc:o(\"scss.builtin.unitless\",\"Returns whether a number has units.\")},{func:\"comparable($number1, $number2)\",desc:o(\"scss.builtin.comparable\",\"Returns whether two numbers can be added, subtracted, or compared.\")},{func:\"call($name, $args…)\",desc:o(\"scss.builtin.call\",\"Dynamically calls a Sass function.\")}],t.scssAtDirectives=[{label:\"@extend\",documentation:o(\"scss.builtin.@extend\",\"Inherits the styles of another selector.\"),kind:i.CompletionItemKind.Keyword},{label:\"@at-root\",documentation:o(\"scss.builtin.@at-root\",\"Causes one or more rules to be emitted at the root of the document.\"),kind:i.CompletionItemKind.Keyword},{label:\"@debug\",documentation:o(\"scss.builtin.@debug\",\"Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files.\"),kind:i.CompletionItemKind.Keyword},{label:\"@warn\",documentation:o(\"scss.builtin.@warn\",\"Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option.\"),kind:i.CompletionItemKind.Keyword},{label:\"@error\",documentation:o(\"scss.builtin.@error\",\"Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions.\"),kind:i.CompletionItemKind.Keyword},{label:\"@if\",documentation:o(\"scss.builtin.@if\",\"Includes the body if the expression does not evaluate to `false` or `null`.\"),insertText:\"@if ${1:expr} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@for\",documentation:o(\"scss.builtin.@for\",\"For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause.\"),insertText:\"@for \\\\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@each\",documentation:o(\"scss.builtin.@each\",\"Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`.\"),insertText:\"@each \\\\$${1:var} in ${2:list} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@while\",documentation:o(\"scss.builtin.@while\",\"While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`.\"),insertText:\"@while ${1:condition} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@mixin\",documentation:o(\"scss.builtin.@mixin\",\"Defines styles that can be re-used throughout the stylesheet with `@include`.\"),insertText:\"@mixin ${1:name} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@include\",documentation:o(\"scss.builtin.@include\",\"Includes the styles defined by another mixin into the current rule.\"),kind:i.CompletionItemKind.Keyword},{label:\"@function\",documentation:o(\"scss.builtin.@function\",\"Defines complex operations that can be re-used throughout stylesheets.\"),kind:i.CompletionItemKind.Keyword}],t.scssModuleLoaders=[{label:\"@use\",documentation:o(\"scss.builtin.@use\",\"Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/use\"}],insertText:\"@use '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@forward\",documentation:o(\"scss.builtin.@forward\",\"Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/forward\"}],insertText:\"@forward '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword}],t.scssModuleBuiltIns=[{label:\"sass:math\",documentation:o(\"scss.builtin.sass:math\",\"Provides functions that operate on numbers.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/math\"}],kind:i.CompletionItemKind.Module},{label:\"sass:string\",documentation:o(\"scss.builtin.sass:string\",\"Makes it easy to combine, search, or split apart strings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/string\"}],kind:i.CompletionItemKind.Module},{label:\"sass:color\",documentation:o(\"scss.builtin.sass:color\",\"Generates new colors based on existing ones, making it easy to build color themes.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/color\"}],kind:i.CompletionItemKind.Module},{label:\"sass:list\",documentation:o(\"scss.builtin.sass:list\",\"Lets you access and modify values in lists.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/list\"}],kind:i.CompletionItemKind.Module},{label:\"sass:map\",documentation:o(\"scss.builtin.sass:map\",\"Makes it possible to look up the value associated with a key in a map, and much more.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/map\"}],kind:i.CompletionItemKind.Module},{label:\"sass:selector\",documentation:o(\"scss.builtin.sass:selector\",\"Provides access to Sass’s powerful selector engine.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/selector\"}],kind:i.CompletionItemKind.Module},{label:\"sass:meta\",documentation:o(\"scss.builtin.sass:meta\",\"Exposes the details of Sass’s inner workings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/meta\"}],kind:i.CompletionItemKind.Module}],t}(n.CSSCompletion);function a(e){e.forEach((function(e){if(e.documentation&&e.references&&e.references.length>0){var t=\"string\"==typeof e.documentation?{kind:\"markdown\",value:e.documentation}:{kind:\"markdown\",value:e.documentation.value};t.value+=\"\\n\\n\",t.value+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"),e.documentation=t}}))}t.SCSSCompletion=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"`\".charCodeAt(0),l=\".\".charCodeAt(0),c=n.TokenType.CustomToken;t.Ellipsis=c++;var d=function(e){function c(){return null!==e&&e.apply(this,arguments)||this}return __extends(c,e),c.prototype.scanNext=function(n){var r=this.escapedJavaScript();return null!==r?this.finishToken(n,r):this.stream.advanceIfChars([l,l,l])?this.finishToken(n,t.Ellipsis):e.prototype.scanNext.call(this,n)},c.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},c.prototype.escapedJavaScript=function(){return this.stream.peekChar()===a?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==a})),this.stream.advanceIfChar(a)?n.TokenType.EscapedJavaScript:n.TokenType.BadEscapedJavaScript):null},c}(n.Scanner);t.LESSScanner=d}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessParser\",[\"require\",\"exports\",\"./lessScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./lessScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./cssErrors\"),a=function(e){function t(){return e.call(this,new n.LESSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\")&&!this.peekKeyword(\"@import-once\"))return null;var e=this.create(o.Import);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(!this.accept(r.TokenType.Ident))return this.finish(e,s.ParseError.IdentifierExpected,[r.TokenType.SemiColon]);do{if(!this.accept(r.TokenType.Comma))break}while(this.accept(r.TokenType.Ident));if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,s.ParseError.RightParenthesisExpected,[r.TokenType.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,s.ParseError.URIOrStringExpected,[r.TokenType.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword(\"@plugin\"))return null;var e=this.createNode(o.NodeType.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.TokenType.SemiColon)?this.finish(e):this.finish(e,s.ParseError.SemiColonExpected):this.finish(e,s.ParseError.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(o.MediaQuery);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(o.VariableDeclaration),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.TokenType.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,s.ParseError.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(o.MixinDeclaration);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);if(!this.accept(r.TokenType.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.TokenType.CurlyL))return null;var n=this.create(o.BodyDeclaration);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.TokenType.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(o.Node),t=this.mark();return this.accept(r.TokenType.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.TokenType.BracketR)||this.accept(r.TokenType.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim(\"$\");if(!this.peekDelim(\"@\")&&!n&&!this.peek(r.TokenType.AtKeyword))return null;for(var i=this.create(o.Variable),s=this.mark();this.acceptDelim(\"@\")||!e&&this.acceptDelim(\"$\");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return(this.accept(r.TokenType.AtKeyword)||this.accept(r.TokenType.Ident))&&(t||!this.peek(r.TokenType.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(s),null)},t.prototype._parseTerm=function(){var t=e.prototype._parseTerm.call(this);return t||((t=this.create(o.Term)).setExpression(this._parseVariable())||t.setExpression(this._parseEscaped())||t.setExpression(this._tryParseMixinReference(!1))?this.finish(t):null)},t.prototype._parseEscaped=function(){if(this.peek(r.TokenType.EscapedJavaScript)||this.peek(r.TokenType.BadEscapedJavaScript)){var e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim(\"~\")){e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.accept(r.TokenType.String)||this.accept(r.TokenType.EscapedJavaScript)?this.finish(e):this.finish(e,s.ParseError.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(\">\")){var e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}if(this.peekDelim(\"=\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"<\"),e}if(this.peekDelim(\"<\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseUnknownAtRule():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([o.ReferenceType.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(o.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.TokenType.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(o.NodeType.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(o.Identifier);r.isCustomProperty=this.acceptDelim(\"-\")&&this.acceptDelim(\"-\");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim(\"+\"),this.hasWhitespace()||this.acceptIdent(\"_\")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.TokenType.Ident)||this.peekDelim(\"@\")||this.peekDelim(\"$\")||this.peekDelim(\"-\")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim(\"-\")&&(n.hasWhitespace()||n.acceptDelim(\"-\"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.TokenType.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim(\"@\")||this.peekDelim(\"$\")){var t=this.createNode(o.NodeType.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.TokenType.CurlyR)?this.finish(t):this.finish(t,s.ParseError.RightCurlyExpected):this.finish(t,s.ParseError.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(o.MixinDeclaration);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);return this.accept(r.TokenType.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.TokenType.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(e=this.create(o.Identifier),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.TokenType.Hash))return null;e=this.create(o.Identifier),this.consumeToken()}return e.referenceTypes=[o.ReferenceType.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.TokenType.Colon))return null;var t=this.mark(),n=this.create(o.ExtendsReference);return this.consumeToken(),this.acceptIdent(\"extend\")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim(\"&\"))return null;var e=this.mark(),t=this.create(o.ExtendsReference);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.TokenType.Colon)&&this.acceptIdent(\"extend\")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,s.ParseError.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.TokenType.AtKeyword))return null;var e=this.mark(),t=this.create(o.MixinReference);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)?this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(o.MixinReference),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(\">\");var a=this._parseMixinDeclarationIdentifier();if(!a)break;n.getNamespaces().addChild(i),i=a}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var l=!1;if(!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)){if(l=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,s.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(n,s.ParseError.RightParenthesisExpected);i.referenceTypes=[o.ReferenceType.Mixin]}else i.referenceTypes=[o.ReferenceType.Mixin,o.ReferenceType.Rule];return this.peek(r.TokenType.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),l||this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.CurlyR)||this.peek(r.TokenType.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.TokenType.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(o.FunctionParameter);if(this.peekKeyword(\"@rest\")){var t=this.create(o.Node);return this.consumeToken(),this.accept(n.Ellipsis)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,s.ParseError.DotExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR])}if(this.peek(n.Ellipsis)){var i=this.create(o.Node);return this.consumeToken(),e.setIdentifier(this.finish(i)),this.finish(e)}var a=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.TokenType.Colon),a=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||a?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent(\"when\"))return null;var e=this.create(o.LessGuard);if(this.consumeToken(),e.isNegated=this.acceptIdent(\"not\"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);for(;this.acceptIdent(\"and\")||this.accept(r.TokenType.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.GuardCondition);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(o.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,s.ParseError.ExpressionExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim(\"%\")){var t=this.create(o.Identifier);return t.referenceTypes=[o.ReferenceType.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t}(i.Parser);t.LESSParser=a}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lessCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../cssLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),o=function(e){function t(t){return e.call(this,\"@\",t)||this}return __extends(t,e),t.prototype.createFunctionProposals=function(e,t,n,i){for(var o=0,s=e;o<s.length;o++){var a=s[o],l={label:a.name,detail:a.example,documentation:a.description,textEdit:r.TextEdit.replace(this.getCompletionRange(t),a.name+\"($0)\"),insertTextFormat:r.InsertTextFormat.Snippet,kind:r.CompletionItemKind.Function};n&&(l.sortText=\"z\"),i.items.push(l)}return i},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInProposals;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.builtInProposals=[{name:\"if\",example:\"if(condition, trueValue [, falseValue]);\",description:i(\"less.builtin.if\",\"returns one of two values depending on a condition.\")},{name:\"boolean\",example:\"boolean(condition);\",description:i(\"less.builtin.boolean\",'\"store\" a boolean test for later evaluation in a guard or if().')},{name:\"length\",example:\"length(@list);\",description:i(\"less.builtin.length\",\"returns the number of elements in a value list\")},{name:\"extract\",example:\"extract(@list, index);\",description:i(\"less.builtin.extract\",\"returns a value at the specified position in the list\")},{name:\"range\",example:\"range([start, ] end [, step]);\",description:i(\"less.builtin.range\",\"generate a list spanning a range of values\")},{name:\"each\",example:\"each(@list, ruleset);\",description:i(\"less.builtin.each\",\"bind the evaluation of a ruleset to each member of a list.\")},{name:\"escape\",example:\"escape(@string);\",description:i(\"less.builtin.escape\",\"URL encodes a string\")},{name:\"e\",example:\"e(@string);\",description:i(\"less.builtin.e\",\"escape string content\")},{name:\"replace\",example:\"replace(@string, @pattern, @replacement[, @flags]);\",description:i(\"less.builtin.replace\",\"string replace\")},{name:\"unit\",example:\"unit(@dimension, [@unit: '']);\",description:i(\"less.builtin.unit\",\"remove or change the unit of a dimension\")},{name:\"color\",example:\"color(@string);\",description:i(\"less.builtin.color\",\"parses a string to a color\"),type:\"color\"},{name:\"convert\",example:\"convert(@value, unit);\",description:i(\"less.builtin.convert\",\"converts numbers from one type into another\")},{name:\"data-uri\",example:\"data-uri([mimetype,] url);\",description:i(\"less.builtin.data-uri\",\"inlines a resource and falls back to `url()`\"),type:\"url\"},{name:\"abs\",description:i(\"less.builtin.abs\",\"absolute value of a number\"),example:\"abs(number);\"},{name:\"acos\",description:i(\"less.builtin.acos\",\"arccosine - inverse of cosine function\"),example:\"acos(number);\"},{name:\"asin\",description:i(\"less.builtin.asin\",\"arcsine - inverse of sine function\"),example:\"asin(number);\"},{name:\"ceil\",example:\"ceil(@number);\",description:i(\"less.builtin.ceil\",\"rounds up to an integer\")},{name:\"cos\",description:i(\"less.builtin.cos\",\"cosine function\"),example:\"cos(number);\"},{name:\"floor\",description:i(\"less.builtin.floor\",\"rounds down to an integer\"),example:\"floor(@number);\"},{name:\"percentage\",description:i(\"less.builtin.percentage\",\"converts to a %, e.g. 0.5 > 50%\"),example:\"percentage(@number);\",type:\"percentage\"},{name:\"round\",description:i(\"less.builtin.round\",\"rounds a number to a number of places\"),example:\"round(number, [places: 0]);\"},{name:\"sqrt\",description:i(\"less.builtin.sqrt\",\"calculates square root of a number\"),example:\"sqrt(number);\"},{name:\"sin\",description:i(\"less.builtin.sin\",\"sine function\"),example:\"sin(number);\"},{name:\"tan\",description:i(\"less.builtin.tan\",\"tangent function\"),example:\"tan(number);\"},{name:\"atan\",description:i(\"less.builtin.atan\",\"arctangent - inverse of tangent function\"),example:\"atan(number);\"},{name:\"pi\",description:i(\"less.builtin.pi\",\"returns pi\"),example:\"pi();\"},{name:\"pow\",description:i(\"less.builtin.pow\",\"first argument raised to the power of the second argument\"),example:\"pow(@base, @exponent);\"},{name:\"mod\",description:i(\"less.builtin.mod\",\"first argument modulus second argument\"),example:\"mod(number, number);\"},{name:\"min\",description:i(\"less.builtin.min\",\"returns the lowest of one or more values\"),example:\"min(@x, @y);\"},{name:\"max\",description:i(\"less.builtin.max\",\"returns the lowest of one or more values\"),example:\"max(@x, @y);\"}],t.colorProposals=[{name:\"argb\",example:\"argb(@color);\",description:i(\"less.builtin.argb\",\"creates a #AARRGGBB\")},{name:\"hsl\",example:\"hsl(@hue, @saturation, @lightness);\",description:i(\"less.builtin.hsl\",\"creates a color\")},{name:\"hsla\",example:\"hsla(@hue, @saturation, @lightness, @alpha);\",description:i(\"less.builtin.hsla\",\"creates a color\")},{name:\"hsv\",example:\"hsv(@hue, @saturation, @value);\",description:i(\"less.builtin.hsv\",\"creates a color\")},{name:\"hsva\",example:\"hsva(@hue, @saturation, @value, @alpha);\",description:i(\"less.builtin.hsva\",\"creates a color\")},{name:\"hue\",example:\"hue(@color);\",description:i(\"less.builtin.hue\",\"returns the `hue` channel of `@color` in the HSL space\")},{name:\"saturation\",example:\"saturation(@color);\",description:i(\"less.builtin.saturation\",\"returns the `saturation` channel of `@color` in the HSL space\")},{name:\"lightness\",example:\"lightness(@color);\",description:i(\"less.builtin.lightness\",\"returns the `lightness` channel of `@color` in the HSL space\")},{name:\"hsvhue\",example:\"hsvhue(@color);\",description:i(\"less.builtin.hsvhue\",\"returns the `hue` channel of `@color` in the HSV space\")},{name:\"hsvsaturation\",example:\"hsvsaturation(@color);\",description:i(\"less.builtin.hsvsaturation\",\"returns the `saturation` channel of `@color` in the HSV space\")},{name:\"hsvvalue\",example:\"hsvvalue(@color);\",description:i(\"less.builtin.hsvvalue\",\"returns the `value` channel of `@color` in the HSV space\")},{name:\"red\",example:\"red(@color);\",description:i(\"less.builtin.red\",\"returns the `red` channel of `@color`\")},{name:\"green\",example:\"green(@color);\",description:i(\"less.builtin.green\",\"returns the `green` channel of `@color`\")},{name:\"blue\",example:\"blue(@color);\",description:i(\"less.builtin.blue\",\"returns the `blue` channel of `@color`\")},{name:\"alpha\",example:\"alpha(@color);\",description:i(\"less.builtin.alpha\",\"returns the `alpha` channel of `@color`\")},{name:\"luma\",example:\"luma(@color);\",description:i(\"less.builtin.luma\",\"returns the `luma` value (perceptual brightness) of `@color`\")},{name:\"saturate\",example:\"saturate(@color, 10%);\",description:i(\"less.builtin.saturate\",\"return `@color` 10% points more saturated\")},{name:\"desaturate\",example:\"desaturate(@color, 10%);\",description:i(\"less.builtin.desaturate\",\"return `@color` 10% points less saturated\")},{name:\"lighten\",example:\"lighten(@color, 10%);\",description:i(\"less.builtin.lighten\",\"return `@color` 10% points lighter\")},{name:\"darken\",example:\"darken(@color, 10%);\",description:i(\"less.builtin.darken\",\"return `@color` 10% points darker\")},{name:\"fadein\",example:\"fadein(@color, 10%);\",description:i(\"less.builtin.fadein\",\"return `@color` 10% points less transparent\")},{name:\"fadeout\",example:\"fadeout(@color, 10%);\",description:i(\"less.builtin.fadeout\",\"return `@color` 10% points more transparent\")},{name:\"fade\",example:\"fade(@color, 50%);\",description:i(\"less.builtin.fade\",\"return `@color` with 50% transparency\")},{name:\"spin\",example:\"spin(@color, 10);\",description:i(\"less.builtin.spin\",\"return `@color` with a 10 degree larger in hue\")},{name:\"mix\",example:\"mix(@color1, @color2, [@weight: 50%]);\",description:i(\"less.builtin.mix\",\"return a mix of `@color1` and `@color2`\")},{name:\"greyscale\",example:\"greyscale(@color);\",description:i(\"less.builtin.greyscale\",\"returns a grey, 100% desaturated color\")},{name:\"contrast\",example:\"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);\",description:i(\"less.builtin.contrast\",\"return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes\")},{name:\"multiply\",example:\"multiply(@color1, @color2);\"},{name:\"screen\",example:\"screen(@color1, @color2);\"},{name:\"overlay\",example:\"overlay(@color1, @color2);\"},{name:\"softlight\",example:\"softlight(@color1, @color2);\"},{name:\"hardlight\",example:\"hardlight(@color1, @color2);\"},{name:\"difference\",example:\"difference(@color1, @color2);\"},{name:\"exclusion\",example:\"exclusion(@color1, @color2);\"},{name:\"average\",example:\"average(@color1, @color2);\"},{name:\"negation\",example:\"negation(@color1, @color2);\"}],t}(n.CSSCompletion);t.LESSCompletion=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssFolding\",[\"require\",\"exports\",\"../parser/cssScanner\",\"../parser/scssScanner\",\"../parser/lessScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssScanner\"),r=e(\"../parser/scssScanner\"),i=e(\"../parser/lessScanner\");function o(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}t.getFoldingRanges=function(e,t){return function(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine<o&&o<e.endLine||(i.push(e),o=e.endLine)})),i.length<n?i:i.slice(0,n)}(function(e){function t(t){return e.positionAt(t.offset).line}function s(t){return e.positionAt(t.offset+t.len).line}var a=[],l=[],c=function(){switch(e.languageId){case\"scss\":return new r.SCSSScanner;case\"less\":return new i.LESSScanner;default:return new n.Scanner}}();c.ignoreComment=!1,c.setSource(e.getText());var d=c.scan(),p=null,h=function(){switch(d.type){case n.TokenType.CurlyL:case r.InterpolationFunction:l.push({line:t(d),type:\"brace\",isStart:!0});break;case n.TokenType.CurlyR:if(0!==l.length){if(!(u=o(l,\"brace\")))break;var i=s(d);\"brace\"===u.type&&(p&&s(p)!==i&&i--,u.line!==i&&a.push({startLine:u.line,endLine:i,kind:void 0}))}break;case n.TokenType.Comment:var h=function(e){return\"#region\"===e?{line:t(d),type:\"comment\",isStart:!0}:{line:s(d),type:\"comment\",isStart:!1}},m=function(t){var n=t.text.match(/^\\s*\\/\\*\\s*(#region|#endregion)\\b\\s*(.*?)\\s*\\*\\//);if(n)return h(n[1]);if(\"scss\"===e.languageId||\"less\"===e.languageId){var r=t.text.match(/^\\s*\\/\\/\\s*(#region|#endregion)\\b\\s*(.*?)\\s*/);if(r)return h(r[1])}return null}(d);if(m)if(m.isStart)l.push(m);else{var u;if(!(u=o(l,\"comment\")))break;\"comment\"===u.type&&u.line!==m.line&&a.push({startLine:u.line,endLine:m.line,kind:\"region\"})}else{var f=function(e,n){var r=t(e),i=s(e);return r!==i?{startLine:r,endLine:i,kind:n}:null}(d,\"comment\");f&&a.push(f)}}p=d,d=c.scan()};for(;d.type!==n.TokenType.EOF;)h();return a}(e),t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssSelectionRange\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"../parser/cssNodes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"../parser/cssNodes\");t.getSelectionRanges=function(e,t,i){return t.map((function(t){for(var o=function(t){var n=i.findChildAtOffset(e.offsetAt(t),!0);if(!n)return[];var o=[];for(;n;)n.parent&&n.offset===n.parent.offset&&n.end===n.parent.end?n=n.parent:(n.type===r.NodeType.Declarations?o.push([n.offset+1,n.end-1]):o.push([n.offset,n.end]),n=n.parent);return o}(t),s=void 0,a=o.length-1;a>=0;a--)s=n.SelectionRange.create(n.Range.create(e.positionAt(o[a][0]),e.positionAt(o[a][1])),s);return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var i=navigator.userAgent;r=i.indexOf(\"Windows\")>=0}var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,i,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=i||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===i?i=this.query:null===i&&(i=\"\"),void 0===o?o=this.fragment:null===o&&(o=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new h(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new h(\"file\",t,e,\"\",\"\")},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===p?t.fsPath:null,n}return t},e}();t.URI=d;var p=r?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=p),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),m=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function u(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=m[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:u,r=\"\",i=e.scheme,o=e.authority,s=e.path,a=e.query,c=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var d=o.indexOf(\"@\");if(-1!==d){var p=o.substr(0,d);o=o.substr(d+1),-1===(d=p.indexOf(\":\"))?r+=n(p,!1):(r+=n(p.substr(0,d),!1),r+=\":\",r+=n(p.substr(d+1),!1)),r+=\"@\"}-1===(d=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,d),!1),r+=o.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}r+=n(s,!0)}return a&&(r+=\"?\",r+=n(a,!1)),c&&(r+=\"#\",r+=t?c:u(c,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssNavigation\",[\"require\",\"exports\",\"./cssNavigation\",\"../cssLanguageTypes\",\"../parser/cssNodes\",\"vscode-uri\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNavigation\"),r=e(\"../cssLanguageTypes\"),i=e(\"../parser/cssNodes\"),o=e(\"vscode-uri\"),s=function(e){function t(t){var n=e.call(this)||this;return n.fileSystemProvider=t,n}return __extends(t,e),t.prototype.isRawStringDocumentLinkNode=function(t){return e.prototype.isRawStringDocumentLinkNode.call(this,t)||t.type===i.NodeType.Use||t.type===i.NodeType.Forward},t.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){function i(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){switch(n.label){case 0:if(!a)return[2,!1];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,a.stat(e)];case 2:return(t=n.sent()).type===r.FileType.Unknown&&-1===t.size?[2,!1]:[2,!0];case 3:return n.sent(),[2,!1];case 4:return[2]}}))}))}var s,a,l,c,d,p,h,m;return __generator(this,(function(r){switch(r.label){case 0:if(s=this.findDocumentLinks(e,t,n),a=this.fileSystemProvider,l=[],!a)return[3,9];c=0,r.label=1;case 1:if(!(c<s.length))return[3,8];if(!(d=s[c].target))return[3,7];p=null;try{p=o.URI.parse(d)}catch(e){if(e instanceof URIError)return[3,7];throw e}return(h=function(e){if(\"\"!==e.path&&!e.path.endsWith(\".scss\")&&!e.path.endsWith(\".css\")){if(e.path.endsWith(\"/\"))return[e.with({path:e.path+\"index.scss\"}).toString(),e.with({path:e.path+\"_index.scss\"}).toString()];var t=e.path.split(\"/\"),n=t[t.length-1],r=e.path.slice(0,-n.length);if(n.startsWith(\"_\"))return e.path.endsWith(\".scss\")?void 0:[e.with({path:e.path+\".scss\"}).toString()];var i=n+\".scss\",o=function(t){return e.with({path:r+t}).toString()};return[o(i),o(\"_\"+i),o(i.slice(0,-5)+\"/index.scss\"),o(i.slice(0,-5)+\"/_index.scss\"),o(i.slice(0,-5)+\".css\")]}}(p))?[3,3]:[4,i(d)];case 2:return r.sent()&&l.push(s[c]),[3,7];case 3:m=0,r.label=4;case 4:return m<h.length?[4,i(h[m])]:[3,7];case 5:if(r.sent())return l.push(__assign(__assign({},s[c]),{target:h[m]})),[3,7];r.label=6;case 6:return m++,[3,4];case 7:return c++,[3,1];case 8:return[3,10];case 9:l.push.apply(l,s),r.label=10;case 10:return[2,l]}}))}))},t}(n.CSSNavigation);t.SCSSNavigation=s})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageService\",[\"require\",\"exports\",\"./parser/cssParser\",\"./services/cssCompletion\",\"./services/cssHover\",\"./services/cssNavigation\",\"./services/cssCodeActions\",\"./services/cssValidation\",\"./parser/scssParser\",\"./services/scssCompletion\",\"./parser/lessParser\",\"./services/lessCompletion\",\"./services/cssFolding\",\"./languageFacts/facts\",\"./services/cssSelectionRange\",\"./services/scssNavigation\",\"./cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./parser/cssParser\"),r=e(\"./services/cssCompletion\"),i=e(\"./services/cssHover\"),o=e(\"./services/cssNavigation\"),s=e(\"./services/cssCodeActions\"),a=e(\"./services/cssValidation\"),l=e(\"./parser/scssParser\"),c=e(\"./services/scssCompletion\"),d=e(\"./parser/lessParser\"),p=e(\"./services/lessCompletion\"),h=e(\"./services/cssFolding\"),m=e(\"./languageFacts/facts\"),u=e(\"./services/cssSelectionRange\"),f=e(\"./services/scssNavigation\");function g(e,t,n,r,i,o){return{configure:function(e){o.configure(e),t.configure(e)},doValidation:o.doValidation.bind(o),parseStylesheet:e.parseStylesheet.bind(e),doComplete:t.doComplete.bind(t),setCompletionParticipants:t.setCompletionParticipants.bind(t),doHover:n.doHover.bind(n),findDefinition:r.findDefinition.bind(r),findReferences:r.findReferences.bind(r),findDocumentHighlights:r.findDocumentHighlights.bind(r),findDocumentLinks:r.findDocumentLinks.bind(r),findDocumentLinks2:r.findDocumentLinks2.bind(r),findDocumentSymbols:r.findDocumentSymbols.bind(r),doCodeActions:i.doCodeActions.bind(i),doCodeActions2:i.doCodeActions2.bind(i),findColorSymbols:function(e,t){return r.findDocumentColors(e,t).map((function(e){return e.range}))},findDocumentColors:r.findDocumentColors.bind(r),getColorPresentations:r.getColorPresentations.bind(r),doRename:r.doRename.bind(r),getFoldingRanges:h.getFoldingRanges,getSelectionRanges:u.getSelectionRanges}}function b(e){e&&e.customDataProviders&&m.cssDataManager.addDataProviders(e.customDataProviders)}!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./cssLanguageTypes\")),t.getCSSLanguageService=function(e){return b(e),g(new n.Parser,new r.CSSCompletion(null,e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)},t.getSCSSLanguageService=function(e){return b(e),g(new l.SCSSParser,new c.SCSSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new f.SCSSNavigation(e&&e.fileSystemProvider),new s.CSSCodeActions,new a.CSSValidation)},t.getLESSLanguageService=function(e){return b(e),g(new d.LESSParser,new p.LESSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)}})),define(\"vscode-css-languageservice\",[\"vscode-css-languageservice/cssLanguageService\"],(function(e){return e})),define(\"vs/language/css/languageFeatures\",[\"require\",\"exports\",\"vscode-css-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=monaco.Uri,i=monaco.Range,o=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var i=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){window.clearTimeout(t),t=window.setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},o=function(e){monaco.editor.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(i)),this._disposables.push(monaco.editor.onWillDisposeModel(o)),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){o(e.model),i(e.model)}))),n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===r._languageId&&(o(e),i(e))}))})),this._disposables.push({dispose:function(){for(var e in r._listener)r._listener[e].dispose()}}),monaco.editor.getModels().forEach(i)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(t){return t.doValidation(e.toString())})).then((function(n){var r=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:s(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n})),i=monaco.editor.getModel(e);i.getModeId()===t&&monaco.editor.setModelMarkers(i,t,r)})).then(void 0,(function(e){console.error(e)}))},e}();function s(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function a(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function l(e){if(e)return new monaco.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function c(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function d(e){if(e)return{range:l(e.range),text:e.newText}}t.DiagnosticsAdapter=o;var p=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\" \",\":\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,r,o){var s=e.uri;return this._worker(s).then((function(e){return e.doComplete(s.toString(),a(t))})).then((function(r){if(r){var o=e.getWordUntilPosition(t),s=new i(t.lineNumber,o.startColumn,t.lineNumber,o.endColumn),a=r.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:s,kind:c(e.kind)};return e.textEdit&&(t.range=l(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:r.isIncomplete,suggestions:a}}}))},e}();function h(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function m(e){if(e)return Array.isArray(e)?e.map(h):[h(e)]}t.CompletionAdapter=p;var u=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),a(t))})).then((function(e){if(e)return{range:l(e.range),contents:m(e.contents)}}))},e}();function f(e){switch(e){case n.DocumentHighlightKind.Read:return monaco.languages.DocumentHighlightKind.Read;case n.DocumentHighlightKind.Write:return monaco.languages.DocumentHighlightKind.Write;case n.DocumentHighlightKind.Text:return monaco.languages.DocumentHighlightKind.Text}return monaco.languages.DocumentHighlightKind.Text}t.HoverAdapter=u;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDocumentHighlights(r.toString(),a(t))})).then((function(e){if(e)return e.map((function(e){return{range:l(e.range),kind:f(e.kind)}}))}))},e}();function b(e){return{uri:r.parse(e.uri),range:l(e.range)}}t.DocumentHighlightAdapter=g;var y=function(){function e(e){this._worker=e}return e.prototype.provideDefinition=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDefinition(r.toString(),a(t))})).then((function(e){if(e)return[b(e)]}))},e}();t.DefinitionAdapter=y;var v=function(){function e(e){this._worker=e}return e.prototype.provideReferences=function(e,t,n,r){var i=e.uri;return this._worker(i).then((function(e){return e.findReferences(i.toString(),a(t))})).then((function(e){if(e)return e.map(b)}))},e}();t.ReferenceAdapter=v;var w=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,i){var o=e.uri;return this._worker(o).then((function(e){return e.doRename(o.toString(),a(t),n)})).then((function(e){return function(e){if(e&&e.changes){var t=[];for(var n in e.changes)for(var i=r.parse(n),o=0,s=e.changes[n];o<s.length;o++){var a=s[o];t.push({resource:i,edit:{range:l(a.range),text:a.newText}})}return{edits:t}}}(e)}))},e}();function x(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.RenameAdapter=w;var S=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:x(e.kind),tags:[],range:l(e.location.range),selectionRange:l(e.location.range)}}))}))},e}();t.DocumentSymbolAdapter=S;var k=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:l(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,function(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=d(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),t}))}))},e}();t.DocumentColorAdapter=k;var C=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,r){var i=e.uri;return this._worker(i).then((function(e){return e.getFoldingRanges(i.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=C;var T=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(a))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:l(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=T})),define(\"vs/language/css/cssMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,r){\"use strict\";function i(e){return{dispose:function(){return o(e)}}}function o(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode=function(e){var t=[],s=[],a=new n.WorkerManager(e);t.push(a);var l,c,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return a.getLanguageServiceWorker.apply(a,e)};return l=e.languageId,c=e.modeConfiguration,o(s),c.completionItems&&s.push(monaco.languages.registerCompletionItemProvider(l,new r.CompletionAdapter(d))),c.hovers&&s.push(monaco.languages.registerHoverProvider(l,new r.HoverAdapter(d))),c.documentHighlights&&s.push(monaco.languages.registerDocumentHighlightProvider(l,new r.DocumentHighlightAdapter(d))),c.definitions&&s.push(monaco.languages.registerDefinitionProvider(l,new r.DefinitionAdapter(d))),c.references&&s.push(monaco.languages.registerReferenceProvider(l,new r.ReferenceAdapter(d))),c.documentSymbols&&s.push(monaco.languages.registerDocumentSymbolProvider(l,new r.DocumentSymbolAdapter(d))),c.rename&&s.push(monaco.languages.registerRenameProvider(l,new r.RenameAdapter(d))),c.colors&&s.push(monaco.languages.registerColorProvider(l,new r.DocumentColorAdapter(d))),c.foldingRanges&&s.push(monaco.languages.registerFoldingRangeProvider(l,new r.FoldingRangeAdapter(d))),c.diagnostics&&s.push(new r.DiagnosticsAdapter(l,d,e)),c.selectionRanges&&s.push(monaco.languages.registerSelectionRangeProvider(l,new r.SelectionRangeAdapter(d))),t.push(i(s)),i(t)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/css/cssWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-css version: 2.7.0(cbf1d6a12b013bb7e773531de7b4f30989e6e4d7)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssScanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Ident=0]=\"Ident\",e[e.AtKeyword=1]=\"AtKeyword\",e[e.String=2]=\"String\",e[e.BadString=3]=\"BadString\",e[e.UnquotedString=4]=\"UnquotedString\",e[e.Hash=5]=\"Hash\",e[e.Num=6]=\"Num\",e[e.Percentage=7]=\"Percentage\",e[e.Dimension=8]=\"Dimension\",e[e.UnicodeRange=9]=\"UnicodeRange\",e[e.CDO=10]=\"CDO\",e[e.CDC=11]=\"CDC\",e[e.Colon=12]=\"Colon\",e[e.SemiColon=13]=\"SemiColon\",e[e.CurlyL=14]=\"CurlyL\",e[e.CurlyR=15]=\"CurlyR\",e[e.ParenthesisL=16]=\"ParenthesisL\",e[e.ParenthesisR=17]=\"ParenthesisR\",e[e.BracketL=18]=\"BracketL\",e[e.BracketR=19]=\"BracketR\",e[e.Whitespace=20]=\"Whitespace\",e[e.Includes=21]=\"Includes\",e[e.Dashmatch=22]=\"Dashmatch\",e[e.SubstringOperator=23]=\"SubstringOperator\",e[e.PrefixOperator=24]=\"PrefixOperator\",e[e.SuffixOperator=25]=\"SuffixOperator\",e[e.Delim=26]=\"Delim\",e[e.EMS=27]=\"EMS\",e[e.EXS=28]=\"EXS\",e[e.Length=29]=\"Length\",e[e.Angle=30]=\"Angle\",e[e.Time=31]=\"Time\",e[e.Freq=32]=\"Freq\",e[e.Exclamation=33]=\"Exclamation\",e[e.Resolution=34]=\"Resolution\",e[e.Comma=35]=\"Comma\",e[e.Charset=36]=\"Charset\",e[e.EscapedJavaScript=37]=\"EscapedJavaScript\",e[e.BadEscapedJavaScript=38]=\"BadEscapedJavaScript\",e[e.Comment=39]=\"Comment\",e[e.SingleLineComment=40]=\"SingleLineComment\",e[e.EOF=41]=\"EOF\",e[e.CustomToken=42]=\"CustomToken\"}(n=t.TokenType||(t.TokenType={}));var r=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}();t.MultiLineStream=r;var i=\"a\".charCodeAt(0),o=\"f\".charCodeAt(0),s=\"z\".charCodeAt(0),a=\"A\".charCodeAt(0),l=\"F\".charCodeAt(0),c=\"Z\".charCodeAt(0),d=\"0\".charCodeAt(0),p=\"9\".charCodeAt(0),h=\"~\".charCodeAt(0),m=\"^\".charCodeAt(0),u=\"=\".charCodeAt(0),f=\"|\".charCodeAt(0),g=\"-\".charCodeAt(0),b=\"_\".charCodeAt(0),y=\"%\".charCodeAt(0),v=\"*\".charCodeAt(0),w=\"(\".charCodeAt(0),x=\")\".charCodeAt(0),S=\"<\".charCodeAt(0),k=\">\".charCodeAt(0),C=\"@\".charCodeAt(0),T=\"#\".charCodeAt(0),F=\"$\".charCodeAt(0),D=\"\\\\\".charCodeAt(0),E=\"/\".charCodeAt(0),z=\"\\n\".charCodeAt(0),R=\"\\r\".charCodeAt(0),_=\"\\f\".charCodeAt(0),I='\"'.charCodeAt(0),P=\"'\".charCodeAt(0),N=\" \".charCodeAt(0),M=\"\\t\".charCodeAt(0),A=\";\".charCodeAt(0),O=\":\".charCodeAt(0),W=\"{\".charCodeAt(0),L=\"}\".charCodeAt(0),j=\"[\".charCodeAt(0),U=\"]\".charCodeAt(0),V=\",\".charCodeAt(0),K=\".\".charCodeAt(0),q=\"!\".charCodeAt(0),B={};B[A]=n.SemiColon,B[O]=n.Colon,B[W]=n.CurlyL,B[L]=n.CurlyR,B[U]=n.BracketR,B[j]=n.BracketL,B[w]=n.ParenthesisL,B[x]=n.ParenthesisR,B[V]=n.Comma;var $={};$.em=n.EMS,$.ex=n.EXS,$.px=n.Length,$.cm=n.Length,$.mm=n.Length,$.in=n.Length,$.pt=n.Length,$.pc=n.Length,$.deg=n.Angle,$.rad=n.Angle,$.grad=n.Angle,$.ms=n.Time,$.s=n.Time,$.hz=n.Freq,$.khz=n.Freq,$[\"%\"]=n.Percentage,$.fr=n.Percentage,$.dpi=n.Resolution,$.dpcm=n.Resolution;var G=function(){function e(){this.stream=new r(\"\"),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}return e.prototype.setSource=function(e){this.stream=new r(e)},e.prototype.finishToken=function(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}},e.prototype.substring=function(e,t){return this.stream.substring(e,e+t)},e.prototype.pos=function(){return this.stream.pos()},e.prototype.goBackTo=function(e){this.stream.goBackTo(e)},e.prototype.scanUnquotedString=function(){var e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,n.UnquotedString,t.join(\"\")):null},e.prototype.scan=function(){var e=this.trivia();if(null!==e)return e;var t=this.stream.pos();return this.stream.eos()?this.finishToken(t,n.EOF):this.scanNext(t)},e.prototype.scanNext=function(e){if(this.stream.advanceIfChars([S,q,g,g]))return this.finishToken(e,n.CDO);if(this.stream.advanceIfChars([g,g,k]))return this.finishToken(e,n.CDC);var t=[];if(this.ident(t))return this.finishToken(e,n.Ident,t.join(\"\"));if(this.stream.advanceIfChar(C)){if(t=[\"@\"],this._name(t)){var r=t.join(\"\");return\"@charset\"===r?this.finishToken(e,n.Charset,r):this.finishToken(e,n.AtKeyword,r)}return this.finishToken(e,n.Delim)}if(this.stream.advanceIfChar(T))return t=[\"#\"],this._name(t)?this.finishToken(e,n.Hash,t.join(\"\")):this.finishToken(e,n.Delim);if(this.stream.advanceIfChar(q))return this.finishToken(e,n.Exclamation);if(this._number()){var i=this.stream.pos();if(t=[this.stream.substring(e,i)],this.stream.advanceIfChar(y))return this.finishToken(e,n.Percentage);if(this.ident(t)){var o=this.stream.substring(i).toLowerCase(),s=$[o];return void 0!==s?this.finishToken(e,s,t.join(\"\")):this.finishToken(e,n.Dimension,t.join(\"\"))}return this.finishToken(e,n.Num)}t=[];var a=this._string(t);return null!==a?this.finishToken(e,a,t.join(\"\")):void 0!==(a=B[this.stream.peekChar()])?(this.stream.advance(1),this.finishToken(e,a)):this.stream.peekChar(0)===h&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Includes)):this.stream.peekChar(0)===f&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.Dashmatch)):this.stream.peekChar(0)===v&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SubstringOperator)):this.stream.peekChar(0)===m&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.PrefixOperator)):this.stream.peekChar(0)===F&&this.stream.peekChar(1)===u?(this.stream.advance(2),this.finishToken(e,n.SuffixOperator)):(this.stream.nextChar(),this.finishToken(e,n.Delim))},e.prototype._matchWordAnyCase=function(e){var t=0;return this.stream.advanceWhileChar((function(n){var r=e[t]===n||e[t+1]===n;return r&&(t+=2),r})),t===e.length||(this.stream.goBack(t/2),!1)},e.prototype.trivia=function(){for(;;){var e=this.stream.pos();if(this._whitespace()){if(!this.ignoreWhitespace)return this.finishToken(e,n.Whitespace)}else{if(!this.comment())return null;if(!this.ignoreComment)return this.finishToken(e,n.Comment)}}},e.prototype.comment=function(){if(this.stream.advanceIfChars([E,v])){var e=!1,t=!1;return this.stream.advanceWhileChar((function(n){return t&&n===E?(e=!0,!1):(t=n===v,!0)})),e&&this.stream.advance(1),!0}return!1},e.prototype._number=function(){var e,t=0;return this.stream.peekChar()===K&&(t=1),(e=this.stream.peekChar(t))>=d&&e<=p&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=d&&e<=p||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case R:case _:case z:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===R&&this.stream.advanceIfChar(z)&&e.push(\"\\n\"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===D){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=d&&n<=p||n>=i&&n<=o||n>=a&&n<=l);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-r),16);s&&e.push(String.fromCharCode(s))}catch(e){}return n===N||n===M?this.stream.advance(1):this._newline([]),!0}if(n!==R&&n!==_&&n!==z)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==D&&n!==R&&n!==_&&n!==z&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===P||this.stream.peekChar()===I){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),n.String):n.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==D&&t!==P&&t!==I&&t!==w&&t!==x&&t!==N&&t!==M&&t!==z&&t!==_&&t!==R&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===N||e===M||e===z||e===_||e===R}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===b||t>=i&&t<=s||t>=a&&t<=c||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===g&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===b||t===g||t>=i&&t<=s||t>=a&&t<=c||t>=d&&t<=p||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();t.Scanner=G}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssNodes\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n;function r(e,t){var n=null;return!e||t<e.offset||t>e.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e[e.Undefined=0]=\"Undefined\",e[e.Identifier=1]=\"Identifier\",e[e.Stylesheet=2]=\"Stylesheet\",e[e.Ruleset=3]=\"Ruleset\",e[e.Selector=4]=\"Selector\",e[e.SimpleSelector=5]=\"SimpleSelector\",e[e.SelectorInterpolation=6]=\"SelectorInterpolation\",e[e.SelectorCombinator=7]=\"SelectorCombinator\",e[e.SelectorCombinatorParent=8]=\"SelectorCombinatorParent\",e[e.SelectorCombinatorSibling=9]=\"SelectorCombinatorSibling\",e[e.SelectorCombinatorAllSiblings=10]=\"SelectorCombinatorAllSiblings\",e[e.SelectorCombinatorShadowPiercingDescendant=11]=\"SelectorCombinatorShadowPiercingDescendant\",e[e.Page=12]=\"Page\",e[e.PageBoxMarginBox=13]=\"PageBoxMarginBox\",e[e.ClassSelector=14]=\"ClassSelector\",e[e.IdentifierSelector=15]=\"IdentifierSelector\",e[e.ElementNameSelector=16]=\"ElementNameSelector\",e[e.PseudoSelector=17]=\"PseudoSelector\",e[e.AttributeSelector=18]=\"AttributeSelector\",e[e.Declaration=19]=\"Declaration\",e[e.Declarations=20]=\"Declarations\",e[e.Property=21]=\"Property\",e[e.Expression=22]=\"Expression\",e[e.BinaryExpression=23]=\"BinaryExpression\",e[e.Term=24]=\"Term\",e[e.Operator=25]=\"Operator\",e[e.Value=26]=\"Value\",e[e.StringLiteral=27]=\"StringLiteral\",e[e.URILiteral=28]=\"URILiteral\",e[e.EscapedValue=29]=\"EscapedValue\",e[e.Function=30]=\"Function\",e[e.NumericValue=31]=\"NumericValue\",e[e.HexColorValue=32]=\"HexColorValue\",e[e.MixinDeclaration=33]=\"MixinDeclaration\",e[e.MixinReference=34]=\"MixinReference\",e[e.VariableName=35]=\"VariableName\",e[e.VariableDeclaration=36]=\"VariableDeclaration\",e[e.Prio=37]=\"Prio\",e[e.Interpolation=38]=\"Interpolation\",e[e.NestedProperties=39]=\"NestedProperties\",e[e.ExtendsReference=40]=\"ExtendsReference\",e[e.SelectorPlaceholder=41]=\"SelectorPlaceholder\",e[e.Debug=42]=\"Debug\",e[e.If=43]=\"If\",e[e.Else=44]=\"Else\",e[e.For=45]=\"For\",e[e.Each=46]=\"Each\",e[e.While=47]=\"While\",e[e.MixinContent=48]=\"MixinContent\",e[e.Media=49]=\"Media\",e[e.Keyframe=50]=\"Keyframe\",e[e.FontFace=51]=\"FontFace\",e[e.Import=52]=\"Import\",e[e.Namespace=53]=\"Namespace\",e[e.Invocation=54]=\"Invocation\",e[e.FunctionDeclaration=55]=\"FunctionDeclaration\",e[e.ReturnStatement=56]=\"ReturnStatement\",e[e.MediaQuery=57]=\"MediaQuery\",e[e.FunctionParameter=58]=\"FunctionParameter\",e[e.FunctionArgument=59]=\"FunctionArgument\",e[e.KeyframeSelector=60]=\"KeyframeSelector\",e[e.ViewPort=61]=\"ViewPort\",e[e.Document=62]=\"Document\",e[e.AtApplyRule=63]=\"AtApplyRule\",e[e.CustomPropertyDeclaration=64]=\"CustomPropertyDeclaration\",e[e.CustomPropertySet=65]=\"CustomPropertySet\",e[e.ListEntry=66]=\"ListEntry\",e[e.Supports=67]=\"Supports\",e[e.SupportsCondition=68]=\"SupportsCondition\",e[e.NamespacePrefix=69]=\"NamespacePrefix\",e[e.GridLine=70]=\"GridLine\",e[e.Plugin=71]=\"Plugin\",e[e.UnknownAtRule=72]=\"UnknownAtRule\",e[e.Use=73]=\"Use\",e[e.ModuleConfiguration=74]=\"ModuleConfiguration\",e[e.Forward=75]=\"Forward\",e[e.ForwardVisibility=76]=\"ForwardVisibility\",e[e.Module=77]=\"Module\"}(n=t.NodeType||(t.NodeType={})),function(e){e[e.Mixin=0]=\"Mixin\",e[e.Rule=1]=\"Rule\",e[e.Variable=2]=\"Variable\",e[e.Function=3]=\"Function\",e[e.Keyframe=4]=\"Keyframe\",e[e.Unknown=5]=\"Unknown\",e[e.Module=6]=\"Module\",e[e.Forward=7]=\"Forward\",e[e.ForwardVisibility=8]=\"ForwardVisibility\"}(t.ReferenceType||(t.ReferenceType={})),t.getNodeAtOffset=r,t.getNodePath=function(e,t){for(var n=r(e,t),i=[];n;)i.unshift(n),n=n.parent;return i},t.getParentDeclaration=function(e){var t=e.findParent(n.Declaration),r=t&&t.getValue();return r&&r.encloses(e)?t:null};var i=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,\"end\",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"type\",{get:function(){return this.nodeType||n.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return\"unknown\"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t<n.length;t++){n[t].accept(e)}},e.prototype.acceptVisitor=function(e){this.accept(e.visitNode.bind(e))},e.prototype.adoptChild=function(e,t){if(void 0===t&&(t=-1),e.parent&&e.parent.children){var n=e.parent.children.indexOf(e);n>=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offset<this.offset||-1===this.offset)&&(this.offset=e.offset);var t=e.end;(t>this.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e<this.children.length?this.children[e]:null},e.prototype.addChildren=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.addChild(r)}},e.prototype.findFirstChildBeforeOffset=function(e){if(this.children)for(var t=null,n=this.children.length-1;n>=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof o;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this;n&&!e.some((function(e){return n.type===e}));)n=n.parent;return n},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}();t.Node=i;var o=function(e){function t(t,n){void 0===n&&(n=-1);var r=e.call(this,-1,-1)||this;return r.attachTo(t,n),r.offset=-1,r.length=-1,r}return __extends(t,e),t}(i);t.Nodelist=o;var s=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.isCustomProperty=!1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Identifier},enumerable:!0,configurable:!0}),t.prototype.containsInterpolation=function(){return this.hasChildren()},t}(i);t.Identifier=s;var a=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Stylesheet},enumerable:!0,configurable:!0}),t}(i);t.Stylesheet=a;var l=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declarations},enumerable:!0,configurable:!0}),t}(i);t.Declarations=l;var c=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getDeclarations=function(){return this.declarations},t.prototype.setDeclarations=function(e){return this.setNode(\"declarations\",e)},t}(i);t.BodyDeclaration=c;var d=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Ruleset},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(n.Declarations)},t}(c);t.RuleSet=d;var p=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Selector},enumerable:!0,configurable:!0}),t}(i);t.Selector=p;var h=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SimpleSelector},enumerable:!0,configurable:!0}),t}(i);t.SimpleSelector=h;var m=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AtApplyRule},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(i);t.AtApplyRule=m;var u=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t}(i);t.AbstractDeclaration=u;var f=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertyDeclaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setPropertySet=function(e){return this.setNode(\"propertySet\",e)},t.prototype.getPropertySet=function(){return this.propertySet},t}(u);t.CustomPropertyDeclaration=f;var g=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.CustomPropertySet},enumerable:!0,configurable:!0}),t}(c);t.CustomPropertySet=g;var b=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.property=null,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Declaration},enumerable:!0,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode(\"property\",e)},t.prototype.getProperty=function(){return this.property},t.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():\"unknown\";if(this.parent instanceof l&&this.parent.getParent()instanceof _){var n=this.parent.getParent().getParent();if(n instanceof t)return n.getFullPropertyName()+e}return e},t.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&\"-\"===e.charAt(0)){var t=e.indexOf(\"-\",1);if(-1!==t)return e.substring(t+1)}return e},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t.prototype.setNestedProperties=function(e){return this.setNode(\"nestedProperties\",e)},t.prototype.getNestedProperties=function(){return this.nestedProperties},t}(u);t.Declaration=b;var y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Property},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.getText()},t.prototype.isCustomProperty=function(){return!!this.identifier&&this.identifier.isCustomProperty},t}(i);t.Property=y;var v=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Invocation},enumerable:!0,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t}(i);t.Invocation=v;var w=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Function},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(v);t.Function=w;var x=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionParameter},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setDefaultValue=function(e){return this.setNode(\"defaultValue\",e,0)},t.prototype.getDefaultValue=function(){return this.defaultValue},t}(i);t.FunctionParameter=x;var S=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionArgument},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.FunctionArgument=S;var k=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.If},enumerable:!0,configurable:!0}),t.prototype.setExpression=function(e){return this.setNode(\"expression\",e,0)},t.prototype.setElseClause=function(e){return this.setNode(\"elseClause\",e)},t}(c);t.IfStatement=k;var C=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.For},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e,0)},t}(c);t.ForStatement=C;var T=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Each},enumerable:!0,configurable:!0}),t.prototype.getVariables=function(){return this.variables||(this.variables=new o(this)),this.variables},t}(c);t.EachStatement=T;var F=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.While},enumerable:!0,configurable:!0}),t}(c);t.WhileStatement=F;var D=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Else},enumerable:!0,configurable:!0}),t}(c);t.ElseStatement=D;var E=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FunctionDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t}(c);t.FunctionDeclaration=E;var z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ViewPort},enumerable:!0,configurable:!0}),t}(c);t.ViewPort=z;var R=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.FontFace},enumerable:!0,configurable:!0}),t}(c);t.FontFace=R;var _=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NestedProperties},enumerable:!0,configurable:!0}),t}(c);t.NestedProperties=_;var I=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Keyframe},enumerable:!0,configurable:!0}),t.prototype.setKeyword=function(e){return this.setNode(\"keyword\",e,0)},t.prototype.getKeyword=function(){return this.keyword},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t}(c);t.Keyframe=I;var P=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.KeyframeSelector},enumerable:!0,configurable:!0}),t}(c);t.KeyframeSelector=P;var N=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Import},enumerable:!0,configurable:!0}),t.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),!0)},t}(i);t.Import=N;var M=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Use},enumerable:!0,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Use=M;var A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ModuleConfiguration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.setValue=function(e){return this.setNode(\"value\",e,0)},t.prototype.getValue=function(){return this.value},t}(i);t.ModuleConfiguration=A;var O=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Forward},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Forward=O;var W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ForwardVisibility},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.ForwardVisibility=W;var L=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Namespace},enumerable:!0,configurable:!0}),t}(i);t.Namespace=L;var j=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Media},enumerable:!0,configurable:!0}),t}(c);t.Media=j;var U=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Supports},enumerable:!0,configurable:!0}),t}(c);t.Supports=U;var V=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Document},enumerable:!0,configurable:!0}),t}(c);t.Document=V;var K=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),t.prototype.getMediums=function(){return this.mediums||(this.mediums=new o(this)),this.mediums},t}(i);t.Medialist=K;var q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MediaQuery},enumerable:!0,configurable:!0}),t}(i);t.MediaQuery=q;var B=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.SupportsCondition},enumerable:!0,configurable:!0}),t}(i);t.SupportsCondition=B;var $=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Page},enumerable:!0,configurable:!0}),t}(c);t.Page=$;var G=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.PageBoxMarginBox},enumerable:!0,configurable:!0}),t}(c);t.PageBoxMarginBox=G;var H=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Expression},enumerable:!0,configurable:!0}),t}(i);t.Expression=H;var J=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.BinaryExpression},enumerable:!0,configurable:!0}),t.prototype.setLeft=function(e){return this.setNode(\"left\",e)},t.prototype.getLeft=function(){return this.left},t.prototype.setRight=function(e){return this.setNode(\"right\",e)},t.prototype.getRight=function(){return this.right},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t}(i);t.BinaryExpression=J;var X=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Term},enumerable:!0,configurable:!0}),t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setExpression=function(e){return this.setNode(\"expression\",e)},t.prototype.getExpression=function(){return this.expression},t}(i);t.Term=X;var Y=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.AttributeSelector},enumerable:!0,configurable:!0}),t.prototype.setNamespacePrefix=function(e){return this.setNode(\"namespacePrefix\",e)},t.prototype.getNamespacePrefix=function(){return this.namespacePrefix},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.setOperator=function(e){return this.setNode(\"operator\",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setValue=function(e){return this.setNode(\"value\",e)},t.prototype.getValue=function(){return this.value},t}(i);t.AttributeSelector=Y;var Z=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Operator},enumerable:!0,configurable:!0}),t}(i);t.Operator=Z;var Q=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.HexColorValue},enumerable:!0,configurable:!0}),t}(i);t.HexColorValue=Q;var ee=\".\".charCodeAt(0),te=\"0\".charCodeAt(0),ne=\"9\".charCodeAt(0),re=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.NumericValue},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=0,i=t.length;r<i&&(e=t.charCodeAt(r),te<=e&&e<=ne||e===ee);r++)n+=1;return{value:t.substring(0,n),unit:n<t.length?t.substring(n):void 0}},t}(i);t.NumericValue=re;var ie=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.variable=null,r.value=null,r.needsSemicolon=!0,r}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableDeclaration},enumerable:!0,configurable:!0}),t.prototype.setVariable=function(e){return!!e&&(e.attachTo(this),this.variable=e,!0)},t.prototype.getVariable=function(){return this.variable},t.prototype.getName=function(){return this.variable?this.variable.getName():\"\"},t.prototype.setValue=function(e){return!!e&&(e.attachTo(this),this.value=e,!0)},t.prototype.getValue=function(){return this.value},t}(u);t.VariableDeclaration=ie;var oe=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Interpolation},enumerable:!0,configurable:!0}),t}(i);t.Interpolation=oe;var se=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.VariableName},enumerable:!0,configurable:!0}),t.prototype.getName=function(){return this.getText()},t}(i);t.Variable=se;var ae=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ExtendsReference},enumerable:!0,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new o(this)),this.selectors},t}(i);t.ExtendsReference=ae;var le=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinReference},enumerable:!0,configurable:!0}),t.prototype.getNamespaces=function(){return this.namespaces||(this.namespaces=new o(this)),this.namespaces},t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getArguments=function(){return this.arguments||(this.arguments=new o(this)),this.arguments},t.prototype.setContent=function(e){return this.setNode(\"content\",e)},t.prototype.getContent=function(){return this.content},t}(i);t.MixinReference=le;var ce=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.MixinDeclaration},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():\"\"},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new o(this)),this.parameters},t.prototype.setGuard=function(e){return e&&(e.attachTo(this),this.guard=e),!1},t}(c);t.MixinDeclaration=ce;var de=function(e){function t(t,n){return e.call(this,t,n)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.UnknownAtRule},enumerable:!0,configurable:!0}),t.prototype.setAtRuleName=function(e){this.atRuleName=e},t.prototype.getAtRuleName=function(){return this.atRuleName},t}(c);t.UnknownAtRule=de;var pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.ListEntry},enumerable:!0,configurable:!0}),t.prototype.setKey=function(e){return this.setNode(\"key\",e,0)},t.prototype.setValue=function(e){return this.setNode(\"value\",e,1)},t}(i);t.ListEntry=pe;var he=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.getConditions=function(){return this.conditions||(this.conditions=new o(this)),this.conditions},t}(i);t.LessGuard=he;var me=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.setVariable=function(e){return this.setNode(\"variable\",e)},t}(i);t.GuardCondition=me;var ue=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"type\",{get:function(){return n.Module},enumerable:!0,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode(\"identifier\",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(i);t.Module=ue,function(e){e[e.Ignore=1]=\"Ignore\",e[e.Warning=2]=\"Warning\",e[e.Error=4]=\"Error\"}(t.Level||(t.Level={}));var fe=function(){function e(e,t,n,r,i,o){void 0===i&&(i=e.offset),void 0===o&&(o=e.length),this.node=e,this.rule=t,this.level=n,this.message=r||t.message,this.offset=i,this.length=o}return e.prototype.getRule=function(){return this.rule},e.prototype.getLevel=function(){return this.level},e.prototype.getOffset=function(){return this.offset},e.prototype.getLength=function(){return this.length},e.prototype.getNode=function(){return this.node},e.prototype.getMessage=function(){return this.message},e}();t.Marker=fe;var ge=function(){function e(){this.entries=[]}return e.entries=function(t){var n=new e;return t.acceptVisitor(n),n.entries},e.prototype.visitNode=function(e){return e.isErroneous()&&e.collectIssues(this.entries),!0},e}();t.ParseErrorCollector=ge})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return n(t,r)}function i(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=i,t.config=function(e){return i}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.CSSIssueType=r,t.ParseError={NumberExpected:new r(\"css-numberexpected\",n(\"expected.number\",\"number expected\")),ConditionExpected:new r(\"css-conditionexpected\",n(\"expected.condt\",\"condition expected\")),RuleOrSelectorExpected:new r(\"css-ruleorselectorexpected\",n(\"expected.ruleorselector\",\"at-rule or selector expected\")),DotExpected:new r(\"css-dotexpected\",n(\"expected.dot\",\"dot expected\")),ColonExpected:new r(\"css-colonexpected\",n(\"expected.colon\",\"colon expected\")),SemiColonExpected:new r(\"css-semicolonexpected\",n(\"expected.semicolon\",\"semi-colon expected\")),TermExpected:new r(\"css-termexpected\",n(\"expected.term\",\"term expected\")),ExpressionExpected:new r(\"css-expressionexpected\",n(\"expected.expression\",\"expression expected\")),OperatorExpected:new r(\"css-operatorexpected\",n(\"expected.operator\",\"operator expected\")),IdentifierExpected:new r(\"css-identifierexpected\",n(\"expected.ident\",\"identifier expected\")),PercentageExpected:new r(\"css-percentageexpected\",n(\"expected.percentage\",\"percentage expected\")),URIOrStringExpected:new r(\"css-uriorstringexpected\",n(\"expected.uriorstring\",\"uri or string expected\")),URIExpected:new r(\"css-uriexpected\",n(\"expected.uri\",\"URI expected\")),VariableNameExpected:new r(\"css-varnameexpected\",n(\"expected.varname\",\"variable name expected\")),VariableValueExpected:new r(\"css-varvalueexpected\",n(\"expected.varvalue\",\"variable value expected\")),PropertyValueExpected:new r(\"css-propertyvalueexpected\",n(\"expected.propvalue\",\"property value expected\")),LeftCurlyExpected:new r(\"css-lcurlyexpected\",n(\"expected.lcurly\",\"{ expected\")),RightCurlyExpected:new r(\"css-rcurlyexpected\",n(\"expected.rcurly\",\"} expected\")),LeftSquareBracketExpected:new r(\"css-rbracketexpected\",n(\"expected.lsquare\",\"[ expected\")),RightSquareBracketExpected:new r(\"css-lbracketexpected\",n(\"expected.rsquare\",\"] expected\")),LeftParenthesisExpected:new r(\"css-lparentexpected\",n(\"expected.lparen\",\"( expected\")),RightParenthesisExpected:new r(\"css-rparentexpected\",n(\"expected.rparent\",\") expected\")),CommaExpected:new r(\"css-commaexpected\",n(\"expected.comma\",\"comma expected\")),PageDirectiveOrDeclarationExpected:new r(\"css-pagedirordeclexpected\",n(\"expected.pagedirordecl\",\"page directive or declaraton expected\")),UnknownAtRule:new r(\"css-unknownatrule\",n(\"unknown.atrule\",\"at-rule unknown\")),UnknownKeyword:new r(\"css-unknownkeyword\",n(\"unknown.keyword\",\"unknown keyword\")),SelectorExpected:new r(\"css-selectorexpected\",n(\"expected.selector\",\"selector expected\")),StringLiteralExpected:new r(\"css-stringliteralexpected\",n(\"expected.stringliteral\",\"string literal expected\")),WhitespaceExpected:new r(\"css-whitespaceexpected\",n(\"expected.whitespace\",\"whitespace expected\")),MediaQueryExpected:new r(\"css-mediaqueryexpected\",n(\"expected.mediaquery\",\"media query expected\")),IdentifierOrWildcardExpected:new r(\"css-idorwildcardexpected\",n(\"expected.idorwildcard\",\"identifier or wildcard expected\")),WildcardExpected:new r(\"css-wildcardexpected\",n(\"expected.wildcard\",\"wildcard expected\")),IdentifierOrVariableExpected:new r(\"css-idorvarexpected\",n(\"expected.idorvar\",\"identifier or variable expected\"))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.cssData={version:1.1,properties:[{name:\"width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/width\"}],description:\"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"height\",values:[{name:\"auto\",description:\"The height depends on the values of other properties.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/height\"}],description:\"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",restrictions:[\"length\",\"percentage\"]},{name:\"display\",values:[{name:\"block\",description:\"The element generates a block-level box\"},{name:\"contents\",description:\"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal.\"},{name:\"flex\",description:\"The element generates a principal flex container box and establishes a flex formatting context.\"},{name:\"flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"flow-root\",description:\"The element generates a block container box, and lays out its contents using flow layout.\"},{name:\"grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"inline\",description:\"The element generates an inline-level box.\"},{name:\"inline-block\",description:\"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box.\"},{name:\"inline-flex\",description:\"Inline-level flex container.\"},{name:\"inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"inline-table\",description:\"Inline-level table wrapper box containing table box.\"},{name:\"list-item\",description:\"One or more block boxes and one marker box.\"},{name:\"-moz-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-moz-deck\"},{name:\"-moz-grid\"},{name:\"-moz-grid-group\"},{name:\"-moz-grid-line\"},{name:\"-moz-groupbox\"},{name:\"-moz-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-moz-inline-grid\"},{name:\"-moz-inline-stack\"},{name:\"-moz-marker\"},{name:\"-moz-popup\"},{name:\"-moz-stack\"},{name:\"-ms-flexbox\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-ms-grid\",description:\"The element generates a principal grid container box, and establishes a grid formatting context.\"},{name:\"-ms-inline-flexbox\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-ms-inline-grid\",description:\"Inline-level grid container.\"},{name:\"none\",description:\"The element and its descendants generates no boxes.\"},{name:\"ruby\",description:\"The element generates a principal ruby container box, and establishes a ruby formatting context.\"},{name:\"ruby-base\"},{name:\"ruby-base-container\"},{name:\"ruby-text\"},{name:\"ruby-text-container\"},{name:\"run-in\",description:\"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements.\"},{name:\"table\",description:\"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context.\"},{name:\"table-caption\"},{name:\"table-cell\"},{name:\"table-column\"},{name:\"table-column-group\"},{name:\"table-footer-group\"},{name:\"table-header-group\"},{name:\"table-row\"},{name:\"table-row-group\"},{name:\"-webkit-box\",description:\"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"},{name:\"-webkit-flex\",description:\"The element lays out its contents using flow layout (block-and-inline layout).\"},{name:\"-webkit-inline-box\",description:\"Inline-level flex container. Standardized as 'inline-flex'\"},{name:\"-webkit-inline-flex\",description:\"Inline-level flex container.\"}],syntax:\"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/display\"}],description:\"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.\",restrictions:[\"enum\"]},{name:\"padding\",values:[],syntax:\"[ <length> | <percentage> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"position\",values:[{name:\"absolute\",description:\"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'.\"},{name:\"fixed\",description:\"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins.\"},{name:\"-ms-page\",description:\"The box's position is calculated according to the 'absolute' model.\"},{name:\"relative\",description:\"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position.\"},{name:\"static\",description:\"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply.\"},{name:\"sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"},{name:\"-webkit-sticky\",description:\"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"}],syntax:\"static | relative | absolute | sticky | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/position\"}],restrictions:[\"enum\"]},{name:\"border\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border\"}],description:\"Shorthand property for setting border width, style, and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"margin\",values:[{name:\"auto\"}],syntax:\"[ <length> | <percentage> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.\",restrictions:[\"length\",\"percentage\"]},{name:\"top\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/top\"}],description:\"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"left\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/left\"}],description:\"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-top\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-top\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color\"}],description:\"Color of an element's text\",restrictions:[\"color\"]},{name:\"font-size\",values:[{name:\"large\"},{name:\"larger\"},{name:\"medium\"},{name:\"small\"},{name:\"smaller\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"<absolute-size> | <relative-size> | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size\"}],description:\"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-color\"}],description:\"Sets the background color of an element.\",restrictions:[\"color\"]},{name:\"text-align\",values:[{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"end\",description:\"The inline contents are aligned to the end edge of the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"},{name:\"start\",description:\"The inline contents are aligned to the start edge of the line box.\"}],syntax:\"start | end | left | right | center | justify | match-parent\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align\"}],description:\"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.\",restrictions:[\"string\"]},{name:\"opacity\",syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/opacity\"}],description:\"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.\",restrictions:[\"number(0-1)\"]},{name:\"background\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"},{name:\"none\",description:\"A value of 'none' counts as an image layer but draws nothing.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"}],syntax:\"[ <bg-layer> , ]* <final-bg-layer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background\"}],description:\"Shorthand property for setting most background properties at the same place in the style sheet.\",restrictions:[\"enum\",\"image\",\"color\",\"position\",\"length\",\"repeat\",\"percentage\",\"box\"]},{name:\"float\",values:[{name:\"inline-end\",description:\"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts.\"},{name:\"inline-start\",description:\"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts.\"},{name:\"left\",description:\"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property).\"},{name:\"none\",description:\"The box is not floated.\"},{name:\"right\",description:\"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top.\"}],syntax:\"left | right | none | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/float\"}],description:\"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.\",restrictions:[\"enum\"]},{name:\"font-weight\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"normal\",description:\"Same as 400\"}],syntax:\"<font-weight-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-weight\"}],description:\"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.\",restrictions:[\"enum\"]},{name:\"overflow\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"-moz-hidden-unscrollable\",description:\"Same as the standardized 'clip', except doesn’t establish a block formatting context.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"[ visible | hidden | clip | scroll | auto ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow\"}],description:\"Shorthand for setting 'overflow-x' and 'overflow-y'.\",restrictions:[\"enum\"]},{name:\"line-height\",values:[{name:\"normal\",description:\"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element.\"}],syntax:\"normal | <number> | <length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height\"}],description:\"Determines the block-progression dimension of the text content area of an inline box.\",restrictions:[\"number\",\"length\",\"percentage\"]},{name:\"font-family\",values:[{name:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\"},{name:\"Arial, Helvetica, sans-serif\"},{name:\"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"},{name:\"'Courier New', Courier, monospace\"},{name:\"cursive\"},{name:\"fantasy\"},{name:\"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif\"},{name:\"Georgia, 'Times New Roman', Times, serif\"},{name:\"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif\"},{name:\"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif\"},{name:\"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif\"},{name:\"monospace\"},{name:\"sans-serif\"},{name:\"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\"},{name:\"serif\"},{name:\"'Times New Roman', Times, serif\"},{name:\"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif\"},{name:\"Verdana, Geneva, Tahoma, sans-serif\"}],syntax:\"<family-name>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-family\"}],description:\"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.\",restrictions:[\"font\"]},{name:\"text-decoration\",values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"underline\",description:\"Each line of text is underlined.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration\"}],description:\"Decorations applied to font used for an element's text.\",restrictions:[\"enum\",\"color\"]},{name:\"box-sizing\",values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],syntax:\"content-box | border-box\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-sizing\"}],description:\"Specifies the behavior of the 'width' and 'height' properties.\",restrictions:[\"enum\"]},{name:\"z-index\",values:[{name:\"auto\",description:\"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element.\"}],syntax:\"auto | <integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/z-index\"}],description:\"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.\",restrictions:[\"integer\"]},{name:\"vertical-align\",values:[{name:\"auto\",description:\"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box.\"},{name:\"baseline\",description:\"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element.\"},{name:\"bottom\",description:\"Align the after edge of the extended inline box with the after-edge of the line box.\"},{name:\"middle\",description:\"Align the 'middle' baseline of the inline element with the middle baseline of the parent.\"},{name:\"sub\",description:\"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"super\",description:\"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"},{name:\"text-bottom\",description:\"Align the bottom of the box with the after-edge of the parent element's font.\"},{name:\"text-top\",description:\"Align the top of the box with the before-edge of the parent element's font.\"},{name:\"top\",description:\"Align the before edge of the extended inline box with the before-edge of the line box.\"},{name:\"-webkit-baseline-middle\"}],syntax:\"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/vertical-align\"}],description:\"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-radius\",syntax:\"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-radius\"}],description:\"Defines the radii of the outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-left\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-left\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"cursor\",values:[{name:\"alias\",description:\"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.\"},{name:\"all-scroll\",description:\"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.\"},{name:\"auto\",description:\"The UA determines the cursor to display based on the current context.\"},{name:\"cell\",description:\"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.\"},{name:\"col-resize\",description:\"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.\"},{name:\"context-menu\",description:\"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.\"},{name:\"copy\",description:\"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.\"},{name:\"crosshair\",description:\"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode.\"},{name:\"default\",description:\"The platform-dependent default cursor. Often rendered as an arrow.\"},{name:\"e-resize\",description:\"Indicates that east edge is to be moved.\"},{name:\"ew-resize\",description:\"Indicates a bidirectional east-west resize cursor.\"},{name:\"grab\",description:\"Indicates that something can be grabbed.\"},{name:\"grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"help\",description:\"Help is available for the object under the cursor. Often rendered as a question mark or a balloon.\"},{name:\"move\",description:\"Indicates something is to be moved.\"},{name:\"-moz-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-moz-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-moz-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-moz-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"ne-resize\",description:\"Indicates that movement starts from north-east corner.\"},{name:\"nesw-resize\",description:\"Indicates a bidirectional north-east/south-west cursor.\"},{name:\"no-drop\",description:\"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.\"},{name:\"none\",description:\"No cursor is rendered for the element.\"},{name:\"not-allowed\",description:\"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.\"},{name:\"n-resize\",description:\"Indicates that north edge is to be moved.\"},{name:\"ns-resize\",description:\"Indicates a bidirectional north-south cursor.\"},{name:\"nw-resize\",description:\"Indicates that movement starts from north-west corner.\"},{name:\"nwse-resize\",description:\"Indicates a bidirectional north-west/south-east cursor.\"},{name:\"pointer\",description:\"The cursor is a pointer that indicates a link.\"},{name:\"progress\",description:\"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.\"},{name:\"row-resize\",description:\"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.\"},{name:\"se-resize\",description:\"Indicates that movement starts from south-east corner.\"},{name:\"s-resize\",description:\"Indicates that south edge is to be moved.\"},{name:\"sw-resize\",description:\"Indicates that movement starts from south-west corner.\"},{name:\"text\",description:\"Indicates text that may be selected. Often rendered as a vertical I-beam.\"},{name:\"vertical-text\",description:\"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.\"},{name:\"wait\",description:\"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.\"},{name:\"-webkit-grab\",description:\"Indicates that something can be grabbed.\"},{name:\"-webkit-grabbing\",description:\"Indicates that something is being grabbed.\"},{name:\"-webkit-zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"-webkit-zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"},{name:\"w-resize\",description:\"Indicates that west edge is to be moved.\"},{name:\"zoom-in\",description:\"Indicates that something can be zoomed (magnified) in.\"},{name:\"zoom-out\",description:\"Indicates that something can be zoomed (magnified) out.\"}],syntax:\"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/cursor\"}],description:\"Allows control over cursor appearance in an element\",restrictions:[\"url\",\"number\",\"enum\"]},{name:\"margin-bottom\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-bottom\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"right\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/right\"}],description:\"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-right\",values:[{name:\"auto\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-right\"}],description:\"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-left\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-left\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-top\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-top\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-width\",values:[{name:\"none\",description:\"No limit on the width of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"bottom\",values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"}],syntax:\"<length> | <percentage> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/bottom\"}],description:\"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-image\",values:[{name:\"none\",description:\"Counts as an image layer but draws nothing.\"}],syntax:\"<bg-image>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-image\"}],description:\"Sets the background image(s) of an element.\",restrictions:[\"image\",\"enum\"]},{name:\"content\",values:[{name:\"attr()\",description:\"The attr(n) function returns as a string the value of attribute n for the subject of the selector.\"},{name:\"counter(name)\",description:\"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties).\"},{name:\"icon\",description:\"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element.\"},{name:\"none\",description:\"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content.\"},{name:\"normal\",description:\"See http://www.w3.org/TR/css3-content/#content for computation rules.\"},{name:\"url()\"}],syntax:\"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/content\"}],description:\"Determines which page-based occurrence of a given element is applied to a counter or string value.\",restrictions:[\"string\",\"url\"]},{name:\"padding-right\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-right\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"white-space\",values:[{name:\"normal\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'normal'.\"},{name:\"nowrap\",description:\"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'none'.\"},{name:\"pre\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'none'.\"},{name:\"pre-line\",description:\"Sets 'white-space-collapsing' to 'preserve-breaks' and 'text-wrap' to 'normal'.\"},{name:\"pre-wrap\",description:\"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'normal'.\"}],syntax:\"normal | pre | nowrap | pre-wrap | pre-line | break-spaces\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/white-space\"}],description:\"Shorthand property for the 'white-space-collapsing' and 'text-wrap' properties.\",restrictions:[\"enum\"]},{name:\"padding-bottom\",syntax:\"<length> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-bottom\"}],description:\"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-bottom\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom\"}],description:\"Shorthand property for setting border width, style and color.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"box-shadow\",values:[{name:\"inset\",description:\"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).\"},{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-shadow\"}],description:\"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.\",restrictions:[\"length\",\"color\",\"enum\"]},{name:\"transform\",values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],syntax:\"none | <transform-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"min-height\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"visibility\",values:[{name:\"collapse\",description:\"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.\"},{name:\"hidden\",description:\"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.\"},{name:\"visible\",description:\"The generated box is visible.\"}],syntax:\"visible | hidden | collapse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/visibility\"}],description:\"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the ‘display’ property to ‘none’ to suppress box generation altogether).\",restrictions:[\"enum\"]},{name:\"background-position\",syntax:\"<bg-position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position\"}],description:\"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"min-width\",values:[{name:\"auto\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-width\"}],description:\"Allows authors to constrain content width to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"outline\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"},{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline\"}],description:\"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\",\"enum\"]},{name:\"transition\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"<single-transition>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"clear\",values:[{name:\"both\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"left\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.\"},{name:\"none\",description:\"No constraint on the box's position with respect to floats.\"},{name:\"right\",description:\"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document.\"}],syntax:\"none | left | right | both | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clear\"}],description:\"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.\",restrictions:[\"enum\"]},{name:\"border-color\",values:[],syntax:\"<color>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-color\"}],description:\"The color of the border around all four edges of an element.\",restrictions:[\"color\"]},{name:\"background-repeat\",values:[],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-repeat\"}],description:\"Specifies how background images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"background-size\",values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-size\"}],description:\"Specifies the size of the background images.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-transform\",values:[{name:\"capitalize\",description:\"Puts the first typographic letter unit of each word in titlecase.\"},{name:\"lowercase\",description:\"Puts all letters in lowercase.\"},{name:\"none\",description:\"No effects.\"},{name:\"uppercase\",description:\"Puts all letters in uppercase.\"}],syntax:\"none | capitalize | uppercase | lowercase | full-width | full-size-kana\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-transform\"}],description:\"Controls capitalization effects of an element’s text.\",restrictions:[\"enum\"]},{name:\"max-height\",values:[{name:\"none\",description:\"No limit on the height of the box.\"},{name:\"fit-content\",description:\"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"},{name:\"max-content\",description:\"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"},{name:\"min-content\",description:\"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"}],syntax:\"<viewport-length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-height\"}],description:\"Allows authors to constrain content height to a certain range.\",restrictions:[\"length\",\"percentage\"]},{name:\"list-style\",values:[{name:\"armenian\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\"},{name:\"decimal-leading-zero\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\"},{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"lower-alpha\"},{name:\"lower-greek\"},{name:\"lower-latin\"},{name:\"lower-roman\"},{name:\"none\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\"},{name:\"upper-latin\"},{name:\"upper-roman\"},{name:\"url()\"}],syntax:\"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style\"}],description:\"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'\",restrictions:[\"image\",\"enum\",\"url\"]},{name:\"font-style\",values:[{name:\"italic\",description:\"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not\"},{name:\"normal\",description:\"Selects a face that is classified as 'normal'.\"},{name:\"oblique\",description:\"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not.\"}],syntax:\"normal | italic | oblique <angle>{0,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-style\"}],description:\"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.\",restrictions:[\"enum\"]},{name:\"font\",values:[{name:\"100\",description:\"Thin\"},{name:\"200\",description:\"Extra Light (Ultra Light)\"},{name:\"300\",description:\"Light\"},{name:\"400\",description:\"Normal\"},{name:\"500\",description:\"Medium\"},{name:\"600\",description:\"Semi Bold (Demi Bold)\"},{name:\"700\",description:\"Bold\"},{name:\"800\",description:\"Extra Bold (Ultra Bold)\"},{name:\"900\",description:\"Black (Heavy)\"},{name:\"bold\",description:\"Same as 700\"},{name:\"bolder\",description:\"Specifies the weight of the face bolder than the inherited value.\"},{name:\"caption\",description:\"The font used for captioned controls (e.g., buttons, drop-downs, etc.).\"},{name:\"icon\",description:\"The font used to label icons.\"},{name:\"italic\",description:\"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'.\"},{name:\"large\"},{name:\"larger\"},{name:\"lighter\",description:\"Specifies the weight of the face lighter than the inherited value.\"},{name:\"medium\"},{name:\"menu\",description:\"The font used in menus (e.g., dropdown menus and menu lists).\"},{name:\"message-box\",description:\"The font used in dialog boxes.\"},{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"oblique\",description:\"Selects a font that is labeled 'oblique'.\"},{name:\"small\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"},{name:\"small-caption\",description:\"The font used for labeling small controls.\"},{name:\"smaller\"},{name:\"status-bar\",description:\"The font used in window status bars.\"},{name:\"x-large\"},{name:\"x-small\"},{name:\"xx-large\"},{name:\"xx-small\"}],syntax:\"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font\"}],description:\"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.\",restrictions:[\"font\"]},{name:\"text-overflow\",values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],syntax:\"[ clip | ellipsis | <string> ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-overflow\"}],description:\"Text can overflow for example when it is prevented from wrapping.\",restrictions:[\"enum\",\"string\"]},{name:\"border-left\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-right\",syntax:\"<line-width> || <line-style> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right\"}],description:\"Shorthand property for setting border width, style and color\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-width\",values:[],syntax:\"<line-width>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-width\"}],description:\"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.\",restrictions:[\"length\",\"line-width\"]},{name:\"justify-content\",values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"start\",description:\"The items are packed flush to each other toward the start edge of the alignment container in the main axis.\"},{name:\"end\",description:\"The items are packed flush to each other toward the end edge of the alignment container in the main axis.\"},{name:\"left\",description:\"The items are packed flush to each other toward the left edge of the alignment container in the main axis.\"},{name:\"right\",description:\"The items are packed flush to each other toward the right edge of the alignment container in the main axis.\"},{name:\"safe\",description:\"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.\"},{name:\"unsafe\",description:\"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored.\"},{name:\"stretch\",description:\"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container.\"},{name:\"space-evenly\",description:\"The items are evenly distributed within the alignment container along the main axis.\"},{name:\"flex-end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"flex-start\",description:\"Flex items are packed toward the start of the line.\"},{name:\"space-around\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Flex items are evenly distributed in the line.\"},{name:\"baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"first baseline\",description:\"Specifies participation in first-baseline alignment.\"},{name:\"last baseline\",description:\"Specifies participation in last-baseline alignment.\"}],syntax:\"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]\",description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"align-items\",values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]\",description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"overflow-y\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-y\"}],description:\"Specifies the handling of overflow in the vertical direction.\",restrictions:[\"enum\"]},{name:\"pointer-events\",values:[{name:\"all\",description:\"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element.\"},{name:\"fill\",description:\"The given element can be the target element for pointer events whenever the pointer is over the interior of the element.\"},{name:\"none\",description:\"The given element does not receive pointer events.\"},{name:\"painted\",description:'The given element can be the target element for pointer events when the pointer is over a \"painted\" area. '},{name:\"stroke\",description:\"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element.\"},{name:\"visible\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and the pointer is over either the interior or the perimete of the element.\"},{name:\"visibleFill\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the interior of the element.\"},{name:\"visiblePainted\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over a ‘painted’ area.\"},{name:\"visibleStroke\",description:\"The given element can be the target element for pointer events when the ‘visibility’ property is set to visible and when the pointer is over the perimeter of the element.\"}],syntax:\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/pointer-events\"}],description:\"Specifies under what circumstances a given element can be the target element for a pointer event.\",restrictions:[\"enum\"]},{name:\"letter-spacing\",values:[{name:\"normal\",description:\"The spacing is the normal spacing for the current font. It is typically zero-length.\"}],syntax:\"normal | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/letter-spacing\"}],description:\"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.\",restrictions:[\"length\"]},{name:\"border-style\",values:[],syntax:\"<line-style>{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-style\"}],description:\"The style of the border around edges of an element.\",restrictions:[\"line-style\"]},{name:\"animation\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"timing-function\",\"enum\",\"identifier\",\"number\"]},{name:\"overflow-x\",values:[{name:\"auto\",description:\"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"},{name:\"hidden\",description:\"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"},{name:\"scroll\",description:\"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"},{name:\"visible\",description:\"Content is not clipped, i.e., it may be rendered outside the content box.\"}],syntax:\"visible | hidden | clip | scroll | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-x\"}],description:\"Specifies the handling of overflow in the horizontal direction.\",restrictions:[\"enum\"]},{name:\"word-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"border-collapse\",values:[{name:\"collapse\",description:\"Selects the collapsing borders model.\"},{name:\"separate\",description:\"Selects the separated borders border model.\"}],syntax:\"collapse | separate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-collapse\"}],description:\"Selects a table's border model.\",restrictions:[\"enum\"]},{name:\"flex-direction\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],syntax:\"row | row-reverse | column | column-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-direction\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"zoom\",browsers:[\"E12\",\"S3.1\",\"C1\",\"IE5.5\",\"O15\"],values:[{name:\"normal\"}],syntax:\"auto | <number> | <percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/zoom\"}],description:\"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"flex\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],syntax:\"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex\"}],description:\"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"text-shadow\",values:[{name:\"none\",description:\"No shadow.\"}],syntax:\"none | <shadow-t>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-shadow\"}],description:\"Enables shadow effects to be applied to the text of the element.\",restrictions:[\"length\",\"color\"]},{name:\"list-style-type\",values:[{name:\"armenian\",description:\"Traditional uppercase Armenian numbering.\"},{name:\"circle\",description:\"A hollow circle.\"},{name:\"decimal\",description:\"Western decimal numbers.\"},{name:\"decimal-leading-zero\",description:\"Decimal numbers padded by initial zeros.\"},{name:\"disc\",description:\"A filled circle.\"},{name:\"georgian\",description:\"Traditional Georgian numbering.\"},{name:\"lower-alpha\",description:\"Lowercase ASCII letters.\"},{name:\"lower-greek\",description:\"Lowercase classical Greek.\"},{name:\"lower-latin\",description:\"Lowercase ASCII letters.\"},{name:\"lower-roman\",description:\"Lowercase ASCII Roman numerals.\"},{name:\"none\",description:\"No marker\"},{name:\"square\",description:\"A filled square.\"},{name:\"symbols()\",description:\"Allows a counter style to be defined inline.\"},{name:\"upper-alpha\",description:\"Uppercase ASCII letters.\"},{name:\"upper-latin\",description:\"Uppercase ASCII letters.\"},{name:\"upper-roman\",description:\"Uppercase ASCII Roman numerals.\"}],syntax:\"<counter-style> | <string> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-type\"}],description:\"Used to construct the default contents of a list item’s marker\",restrictions:[\"enum\",\"string\"]},{name:\"border-bottom-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius\"}],description:\"Defines the radii of the bottom left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"user-select\",values:[{name:\"all\",description:\"The content of the element must be selected atomically\"},{name:\"auto\"},{name:\"contain\",description:\"UAs must not allow a selection which is started in this element to be extended outside of this element.\"},{name:\"none\",description:\"The UA must not allow selections to be started in this element.\"},{name:\"text\",description:\"The element imposes no constraint on the selection.\"}],status:\"nonstandard\",syntax:\"auto | text | none | contain | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/user-select\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"fill\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints the interior of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transform-origin\",syntax:\"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-origin\"}],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-top-left-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius\"}],description:\"Defines the radii of the top left outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-indent\",values:[],syntax:\"<length-percentage> && hanging? && each-line?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-indent\"}],description:\"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.\",restrictions:[\"percentage\",\"length\"]},{name:\"border-bottom-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius\"}],description:\"Defines the radii of the bottom right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"flex-wrap\",values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"nowrap | wrap | wrap-reverse\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-wrap\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"border-spacing\",syntax:\"<length> <length>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-spacing\"}],description:\"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.\",restrictions:[\"length\"]},{name:\"border-top-right-radius\",syntax:\"<length-percentage>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius\"}],description:\"Defines the radii of the top right outer border edge.\",restrictions:[\"length\",\"percentage\"]},{name:\"clip\",values:[{name:\"auto\",description:\"The element does not clip.\"},{name:\"rect()\",description:\"Specifies offsets from the edges of the border box.\"}],syntax:\"<shape> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip\"}],description:\"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element’s box.\",restrictions:[\"enum\"]},{name:\"border-top-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-color\"}],description:\"Sets the color of the top border.\",restrictions:[\"color\"]},{name:\"word-break\",values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],syntax:\"normal | break-all | keep-all | break-word\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-break\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"border-bottom-color\",syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color\"}],description:\"Sets the color of the bottom border.\",restrictions:[\"color\"]},{name:\"flex-grow\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-grow\"}],description:\"Sets the flex grow factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"direction\",values:[{name:\"ltr\",description:\"Left-to-right direction.\"},{name:\"rtl\",description:\"Right-to-left direction.\"}],syntax:\"ltr | rtl\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/direction\"}],description:\"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.\",restrictions:[\"enum\"]},{name:\"align-self\",values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"flex-end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"flex-start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>\",description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"flex-shrink\",syntax:\"<number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-shrink\"}],description:\"Sets the flex shrink factor. Negative numbers are invalid.\",restrictions:[\"number\"]},{name:\"text-rendering\",browsers:[\"FF1\",\"S5\",\"C4\",\"O15\"],values:[{name:\"auto\"},{name:\"geometricPrecision\",description:\"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed.\"},{name:\"optimizeLegibility\",description:\"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision.\"},{name:\"optimizeSpeed\",description:\"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision.\"}],syntax:\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-rendering\"}],description:\"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The ‘text-rendering’ property provides these hints.\",restrictions:[\"enum\"]},{name:\"touch-action\",values:[{name:\"auto\",description:\"The user agent may determine any permitted touch behaviors for touches that begin on the element.\"},{name:\"cross-slide-x\"},{name:\"cross-slide-y\"},{name:\"double-tap-zoom\"},{name:\"manipulation\",description:\"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming.\"},{name:\"none\",description:\"Touches that begin on the element must not trigger default touch behaviors.\"},{name:\"pan-x\",description:\"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element’s nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element’s nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\"}],syntax:\"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/touch-action\"}],description:\"Determines whether touch input may trigger default behavior supplied by user agent.\",restrictions:[\"enum\"]},{name:\"background-clip\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-clip\"}],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"filter\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",browsers:[\"E12\",\"FF35\",\"S9.1\",\"C53\",\"O40\"],description:\"A filter reference to a <filter> element.\"}],syntax:\"none | <filter-function-list>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/filter\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"src\",values:[{name:\"url()\",description:\"Reference font by URL\"},{name:\"format()\",description:\"Optional hint describing the format of the font resource.\"},{name:\"local()\",description:\"Format-specific string that identifies a locally available copy of a given font.\"}],syntax:\"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#\",description:\"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.\",restrictions:[\"enum\",\"url\",\"identifier\"]},{name:\"animation-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function\"}],description:\"Describes how the animation will progress over one cycle of its duration.\",restrictions:[\"timing-function\"]},{name:\"border-right-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-color\"}],description:\"Sets the color of the right border.\",restrictions:[\"color\"]},{name:\"font-variant\",values:[{name:\"normal\",description:\"Specifies a face that is not labeled as a small-caps font.\"},{name:\"small-caps\",description:\"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant\"}],description:\"Specifies variant representations of the font\",restrictions:[\"enum\"]},{name:\"border-left-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-color\"}],description:\"Sets the color of the left border.\",restrictions:[\"color\"]},{name:\"animation-name\",values:[{name:\"none\",description:\"No animation is performed\"}],syntax:\"[ none | <keyframes-name> ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-name\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"animation-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-duration\"}],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"will-change\",browsers:[\"FF36\",\"S9.1\",\"C36\",\"O24\"],values:[{name:\"auto\",description:\"Expresses no particular intent.\"},{name:\"contents\",description:\"Indicates that the author expects to animate or change something about the element’s contents in the near future.\"},{name:\"scroll-position\",description:\"Indicates that the author expects to animate or change the scroll position of the element in the near future.\"}],syntax:\"auto | <animateable-feature>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/will-change\"}],description:\"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.\",restrictions:[\"enum\",\"identifier\"]},{name:\"stroke\",values:[{name:\"url()\",description:\"A URL reference to a paint server element, which is an element that defines a paint server: ‘hatch’, ‘linearGradient’, ‘mesh’, ‘pattern’, ‘radialGradient’ and ‘solidcolor’.\"},{name:\"none\",description:\"No paint is applied in this layer.\"}],description:\"Paints along the outline of the given graphical element.\",restrictions:[\"color\",\"enum\",\"url\"]},{name:\"transition-property\",values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],syntax:\"none | <single-transition-property>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-property\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"table-layout\",values:[{name:\"auto\",description:\"Use any automatic table layout algorithm.\"},{name:\"fixed\",description:\"Use the fixed table layout algorithm.\"}],syntax:\"auto | fixed\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/table-layout\"}],description:\"Controls the algorithm used to lay out the table cells, rows, and columns.\",restrictions:[\"enum\"]},{name:\"transition-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-delay\"}],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"flex-basis\",values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"content\",description:\"Indicates automatic sizing, based on the flex item’s content.\"}],syntax:\"content | <'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-basis\"}],description:\"Sets the flex basis.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"overflow-wrap\",values:[{name:\"break-word\",description:\"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],syntax:\"normal | break-word | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.\",restrictions:[\"enum\"]},{name:\"border-top-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-width\"}],description:\"Sets the thickness of the top border.\",restrictions:[\"length\",\"line-width\"]},{name:\"outline-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-width\"}],description:\"Width of the outline.\",restrictions:[\"length\",\"line-width\"]},{name:\"order\",syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/order\"}],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"border-bottom-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width\"}],description:\"Sets the thickness of the bottom border.\",restrictions:[\"length\",\"line-width\"]},{name:\"animation-fill-mode\",values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],syntax:\"<single-animation-fill-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"outline-style\",values:[{name:\"auto\",description:\"Permits the user agent to render a custom outline style, typically the default platform style.\"}],syntax:\"auto | <'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-style\"}],description:\"Style of the outline.\",restrictions:[\"line-style\",\"enum\"]},{name:\"object-fit\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],syntax:\"fill | contain | cover | none | scale-down\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-fit\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"stroke-width\",description:\"Specifies the width of the stroke on the current object.\",restrictions:[\"percentage\",\"length\"]},{name:\"transition-duration\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-duration\"}],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"animation-delay\",syntax:\"<time>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-delay\"}],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"outline-offset\",browsers:[\"E15\",\"FF1.5\",\"S1.2\",\"C1\",\"O9.5\"],syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-offset\"}],description:\"Offset the outline and draw it beyond the border edge.\",restrictions:[\"length\"]},{name:\"stroke-dashoffset\",description:\"Specifies the distance into the dash pattern to start the dash.\",restrictions:[\"percentage\",\"length\"]},{name:\"backface-visibility\",values:[{name:\"hidden\",description:\"Back side is hidden.\"},{name:\"visible\",description:\"Back side is visible.\"}],syntax:\"visible | hidden\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backface-visibility\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"border-right-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-width\"}],description:\"Sets the thickness of the right border.\",restrictions:[\"length\",\"line-width\"]},{name:\"flex-flow\",values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],syntax:\"<'flex-direction'> || <'flex-wrap'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/flex-flow\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"word-spacing\",values:[{name:\"normal\",description:\"No additional spacing is applied. Computes to zero.\"}],syntax:\"normal | <length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/word-spacing\"}],description:\"Specifies additional spacing between “words”.\",restrictions:[\"length\",\"percentage\"]},{name:\"transition-timing-function\",syntax:\"<timing-function>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function\"}],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"resize\",browsers:[\"FF4\",\"S3\",\"C1\",\"O12.1\"],values:[{name:\"both\",description:\"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element.\"},{name:\"horizontal\",description:\"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element.\"},{name:\"none\",description:\"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element.\"},{name:\"vertical\",description:\"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element.\"}],syntax:\"none | both | horizontal | vertical | block | inline\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/resize\"}],description:\"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.\",restrictions:[\"enum\"]},{name:\"unicode-bidi\",values:[{name:\"bidi-override\",description:\"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored.\"},{name:\"embed\",description:\"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property.\"},{name:\"isolate\",description:\"The contents of the element are considered to be inside a separate, independent paragraph.\"},{name:\"isolate-override\",description:\"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'\"},{name:\"normal\",description:\"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries.\"},{name:\"plaintext\",description:\"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'.\"}],syntax:\"normal | embed | isolate | bidi-override | isolate-override | plaintext\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi\"}],description:\"The level of embedding with respect to the bidirectional algorithm.\",restrictions:[\"enum\"]},{name:\"unicode-range\",values:[{name:\"U+26\",description:\"Ampersand.\"},{name:\"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00–FB4F\",description:\"WGL4 character set (Pan-European).\"},{name:\"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF\",description:\"The Multilingual European Subset No. 1. Latin. Covers ~44 languages.\"},{name:\"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language.\"},{name:\"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD\",description:\"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts.\"},{name:\"U+00-7F\",description:\"Basic Latin (ASCII).\"},{name:\"U+80-FF\",description:\"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs.\"},{name:\"U+100-17F\",description:\"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish.\"},{name:\"U+180-24F\",description:\"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology.\"},{name:\"U+1E00-1EFF\",description:\"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use.\"},{name:\"U+250-2AF\",description:\"International Phonetic Alphabet Extensions.\"},{name:\"U+370-3FF\",description:\"Greek and Coptic.\"},{name:\"U+1F00-1FFF\",description:\"Greek Extended. Accented characters for polytonic Greek.\"},{name:\"U+400-4FF\",description:\"Cyrillic.\"},{name:\"U+500-52F\",description:\"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok.\"},{name:\"U+00-52F, U+1E00-1FFF, U+2200–22FF\",description:\"Latin, Greek, Cyrillic, some punctuation and symbols.\"},{name:\"U+530–58F\",description:\"Armenian.\"},{name:\"U+590–5FF\",description:\"Hebrew.\"},{name:\"U+600–6FF\",description:\"Arabic.\"},{name:\"U+750–77F\",description:\"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian.\"},{name:\"U+8A0–8FF\",description:\"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs.\"},{name:\"U+700–74F\",description:\"Syriac.\"},{name:\"U+900–97F\",description:\"Devanagari.\"},{name:\"U+980–9FF\",description:\"Bengali.\"},{name:\"U+A00–A7F\",description:\"Gurmukhi.\"},{name:\"U+A80–AFF\",description:\"Gujarati.\"},{name:\"U+B00–B7F\",description:\"Oriya.\"},{name:\"U+B80–BFF\",description:\"Tamil.\"},{name:\"U+C00–C7F\",description:\"Telugu.\"},{name:\"U+C80–CFF\",description:\"Kannada.\"},{name:\"U+D00–D7F\",description:\"Malayalam.\"},{name:\"U+D80–DFF\",description:\"Sinhala.\"},{name:\"U+118A0–118FF\",description:\"Warang Citi.\"},{name:\"U+E00–E7F\",description:\"Thai.\"},{name:\"U+1A20–1AAF\",description:\"Tai Tham.\"},{name:\"U+AA80–AADF\",description:\"Tai Viet.\"},{name:\"U+E80–EFF\",description:\"Lao.\"},{name:\"U+F00–FFF\",description:\"Tibetan.\"},{name:\"U+1000–109F\",description:\"Myanmar (Burmese).\"},{name:\"U+10A0–10FF\",description:\"Georgian.\"},{name:\"U+1200–137F\",description:\"Ethiopic.\"},{name:\"U+1380–139F\",description:\"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks\"},{name:\"U+2D80–2DDF\",description:\"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit.\"},{name:\"U+AB00–AB2F\",description:\"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz.\"},{name:\"U+1780–17FF\",description:\"Khmer.\"},{name:\"U+1800–18AF\",description:\"Mongolian.\"},{name:\"U+1B80–1BBF\",description:\"Sundanese.\"},{name:\"U+1CC0–1CCF\",description:\"Sundanese Supplement. Punctuation.\"},{name:\"U+4E00–9FD5\",description:\"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese.\"},{name:\"U+3400–4DB5\",description:\"CJK Unified Ideographs Extension A. Rare ideographs.\"},{name:\"U+2F00–2FDF\",description:\"Kangxi Radicals.\"},{name:\"U+2E80–2EFF\",description:\"CJK Radicals Supplement. Alternative forms of Kangxi Radicals.\"},{name:\"U+1100–11FF\",description:\"Hangul Jamo.\"},{name:\"U+AC00–D7AF\",description:\"Hangul Syllables.\"},{name:\"U+3040–309F\",description:\"Hiragana.\"},{name:\"U+30A0–30FF\",description:\"Katakana.\"},{name:\"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F\",description:\"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol.\"},{name:\"U+A4D0–A4FF\",description:\"Lisu.\"},{name:\"U+A000–A48F\",description:\"Yi Syllables.\"},{name:\"U+A490–A4CF\",description:\"Yi Radicals.\"},{name:\"U+2000-206F\",description:\"General Punctuation.\"},{name:\"U+3000–303F\",description:\"CJK Symbols and Punctuation.\"},{name:\"U+2070–209F\",description:\"Superscripts and Subscripts.\"},{name:\"U+20A0–20CF\",description:\"Currency Symbols.\"},{name:\"U+2100–214F\",description:\"Letterlike Symbols.\"},{name:\"U+2150–218F\",description:\"Number Forms.\"},{name:\"U+2190–21FF\",description:\"Arrows.\"},{name:\"U+2200–22FF\",description:\"Mathematical Operators.\"},{name:\"U+2300–23FF\",description:\"Miscellaneous Technical.\"},{name:\"U+E000-F8FF\",description:\"Private Use Area.\"},{name:\"U+FB00–FB4F\",description:\"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew.\"},{name:\"U+FB50–FDFF\",description:\"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures.\"},{name:\"U+1F600–1F64F\",description:\"Emoji: Emoticons.\"},{name:\"U+2600–26FF\",description:\"Emoji: Miscellaneous Symbols.\"},{name:\"U+1F300–1F5FF\",description:\"Emoji: Miscellaneous Symbols and Pictographs.\"},{name:\"U+1F900–1F9FF\",description:\"Emoji: Supplemental Symbols and Pictographs.\"},{name:\"U+1F680–1F6FF\",description:\"Emoji: Transport and Map Symbols.\"}],syntax:\"<unicode-range>#\",description:\"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.\",restrictions:[\"unicode-range\"]},{name:\"stroke-dasharray\",values:[{name:\"none\",description:\"Indicates that no dashing is used.\"}],description:\"Controls the pattern of dashes and gaps used to stroke paths.\",restrictions:[\"length\",\"percentage\",\"number\",\"enum\"]},{name:\"animation-iteration-count\",values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],syntax:\"<single-animation-iteration-count>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"image-rendering\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"],values:[{name:\"auto\",description:\"The image should be scaled with an algorithm that maximizes the appearance of the image.\"},{name:\"crisp-edges\",description:\"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process.\"},{name:\"-moz-crisp-edges\",browsers:[\"FF3.6\",\"S6\",\"C13\",\"O15\"]},{name:\"optimizeQuality\",description:\"Deprecated.\"},{name:\"optimizeSpeed\",description:\"Deprecated.\"},{name:\"pixelated\",description:\"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels.\"}],syntax:\"auto | crisp-edges | pixelated\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-rendering\"}],description:\"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.\",restrictions:[\"enum\"]},{name:\"border-left-width\",syntax:\"<line-width>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-width\"}],description:\"Sets the thickness of the left border.\",restrictions:[\"length\",\"line-width\"]},{name:\"align-content\",values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"flex-end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"flex-start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"space-around\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"space-between\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],syntax:\"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>\",description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"border-bottom-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style\"}],description:\"Sets the style of the bottom border.\",restrictions:[\"line-style\"]},{name:\"perspective\",values:[{name:\"none\",description:\"No perspective transform is applied.\"}],syntax:\"none | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\",\"enum\"]},{name:\"border-top-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-top-style\"}],description:\"Sets the style of the top border.\",restrictions:[\"line-style\"]},{name:\"text-size-adjust\",status:\"experimental\",syntax:\"none | auto | <percentage>\",browsers:[\"E12\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust\"}],description:\"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property.\"},{name:\"transform-style\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"},{name:\"preserve-3d\",browsers:[\"E12\",\"FF16\",\"S9\",\"C36\",\"O15\"],description:\"Flattening is not performed, so children maintain their position in 3D space.\"}],syntax:\"flat | preserve-3d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-style\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"grid-template-columns\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"enum\"]},{name:\"list-style-position\",values:[{name:\"inside\",description:\"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"},{name:\"outside\",description:\"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"}],syntax:\"inside | outside\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-position\"}],description:\"Specifies the position of the '::marker' pseudo-element's box in the list item.\",restrictions:[\"enum\"]},{name:\"animation-direction\",values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],syntax:\"<single-animation-direction>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-direction\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"animation-play-state\",values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],syntax:\"<single-animation-play-state>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/animation-play-state\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"hyphens\",values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],syntax:\"none | manual | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hyphens\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"quotes\",values:[{name:\"none\",description:\"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively.\"}],syntax:\"none | auto | [ <string> <string> ]+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/quotes\"}],description:\"Specifies quotation marks for any number of embedded quotations.\",restrictions:[\"string\"]},{name:\"background-origin\",syntax:\"<box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-origin\"}],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"background-attachment\",values:[{name:\"fixed\",description:\"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"},{name:\"local\",description:\"The background is fixed with regard to the element’s contents: if the element has a scrolling mechanism, the background scrolls with the element’s contents.\"},{name:\"scroll\",description:\"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element’s border.)\"}],syntax:\"<attachment>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-attachment\"}],description:\"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').\",restrictions:[\"enum\"]},{name:\"background-position-x\",values:[{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"left\",description:\"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\"},{name:\"right\",description:\"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-x\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"background-position-y\",values:[{name:\"bottom\",description:\"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\"},{name:\"center\",description:\"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"},{name:\"top\",description:\"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"}],status:\"experimental\",syntax:\"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-position-y\"}],description:\"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-feature-settings\",values:[{name:'\"aalt\"',description:\"Access All Alternates.\"},{name:'\"abvf\"',description:\"Above-base Forms. Required in Khmer script.\"},{name:'\"abvm\"',description:\"Above-base Mark Positioning. Required in Indic scripts.\"},{name:'\"abvs\"',description:\"Above-base Substitutions. Required in Indic scripts.\"},{name:'\"afrc\"',description:\"Alternative Fractions.\"},{name:'\"akhn\"',description:\"Akhand. Required in most Indic scripts.\"},{name:'\"blwf\"',description:\"Below-base Form. Required in a number of Indic scripts.\"},{name:'\"blwm\"',description:\"Below-base Mark Positioning. Required in Indic scripts.\"},{name:'\"blws\"',description:\"Below-base Substitutions. Required in Indic scripts.\"},{name:'\"calt\"',description:\"Contextual Alternates.\"},{name:'\"case\"',description:\"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting.\"},{name:'\"ccmp\"',description:\"Glyph Composition/Decomposition.\"},{name:'\"cfar\"',description:\"Conjunct Form After Ro. Required in Khmer scripts.\"},{name:'\"cjct\"',description:\"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"clig\"',description:\"Contextual Ligatures.\"},{name:'\"cpct\"',description:\"Centered CJK Punctuation. Used primarily in Chinese fonts.\"},{name:'\"cpsp\"',description:\"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic).\"},{name:'\"cswh\"',description:\"Contextual Swash.\"},{name:'\"curs\"',description:\"Cursive Positioning. Can be used in any cursive script.\"},{name:'\"c2pc\"',description:\"Petite Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"c2sc\"',description:\"Small Capitals From Capitals. Applies only to bicameral scripts.\"},{name:'\"dist\"',description:\"Distances. Required in Indic scripts.\"},{name:'\"dlig\"',description:\"Discretionary ligatures.\"},{name:'\"dnom\"',description:\"Denominators.\"},{name:'\"dtls\"',description:\"Dotless Forms. Applied to math formula layout.\"},{name:'\"expt\"',description:\"Expert Forms. Applies only to Japanese.\"},{name:'\"falt\"',description:\"Final Glyph on Line Alternates. Can be used in any cursive script.\"},{name:'\"fin2\"',description:\"Terminal Form #2. Used only with the Syriac script.\"},{name:'\"fin3\"',description:\"Terminal Form #3. Used only with the Syriac script.\"},{name:'\"fina\"',description:\"Terminal Forms. Can be used in any alphabetic script.\"},{name:'\"flac\"',description:\"Flattened ascent forms. Applied to math formula layout.\"},{name:'\"frac\"',description:\"Fractions.\"},{name:'\"fwid\"',description:\"Full Widths. Applies to any script which can use monospaced forms.\"},{name:'\"half\"',description:\"Half Forms. Required in Indic scripts that show similarity to Devanagari.\"},{name:'\"haln\"',description:\"Halant Forms. Required in Indic scripts.\"},{name:'\"halt\"',description:\"Alternate Half Widths. Used only in CJKV fonts.\"},{name:'\"hist\"',description:\"Historical Forms.\"},{name:'\"hkna\"',description:\"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"hlig\"',description:\"Historical Ligatures.\"},{name:'\"hngl\"',description:\"Hangul. Korean only.\"},{name:'\"hojo\"',description:\"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script.\"},{name:'\"hwid\"',description:\"Half Widths. Generally used only in CJKV fonts.\"},{name:'\"init\"',description:\"Initial Forms. Can be used in any alphabetic script.\"},{name:'\"isol\"',description:\"Isolated Forms. Can be used in any cursive script.\"},{name:'\"ital\"',description:\"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well.\"},{name:'\"jalt\"',description:\"Justification Alternates. Can be used in any cursive script.\"},{name:'\"jp78\"',description:\"JIS78 Forms. Applies only to Japanese.\"},{name:'\"jp83\"',description:\"JIS83 Forms. Applies only to Japanese.\"},{name:'\"jp90\"',description:\"JIS90 Forms. Applies only to Japanese.\"},{name:'\"jp04\"',description:\"JIS2004 Forms. Applies only to Japanese.\"},{name:'\"kern\"',description:\"Kerning.\"},{name:'\"lfbd\"',description:\"Left Bounds.\"},{name:'\"liga\"',description:\"Standard Ligatures.\"},{name:'\"ljmo\"',description:\"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"lnum\"',description:\"Lining Figures.\"},{name:'\"locl\"',description:\"Localized Forms.\"},{name:'\"ltra\"',description:\"Left-to-right glyph alternates.\"},{name:'\"ltrm\"',description:\"Left-to-right mirrored forms.\"},{name:'\"mark\"',description:\"Mark Positioning.\"},{name:'\"med2\"',description:\"Medial Form #2. Used only with the Syriac script.\"},{name:'\"medi\"',description:\"Medial Forms.\"},{name:'\"mgrk\"',description:\"Mathematical Greek.\"},{name:'\"mkmk\"',description:\"Mark to Mark Positioning.\"},{name:'\"nalt\"',description:\"Alternate Annotation Forms.\"},{name:'\"nlck\"',description:\"NLC Kanji Forms. Used only with Kanji script.\"},{name:'\"nukt\"',description:\"Nukta Forms. Required in Indic scripts..\"},{name:'\"numr\"',description:\"Numerators.\"},{name:'\"onum\"',description:\"Oldstyle Figures.\"},{name:'\"opbd\"',description:\"Optical Bounds.\"},{name:'\"ordn\"',description:\"Ordinals. Applies mostly to Latin script.\"},{name:'\"ornm\"',description:\"Ornaments.\"},{name:'\"palt\"',description:\"Proportional Alternate Widths. Used mostly in CJKV fonts.\"},{name:'\"pcap\"',description:\"Petite Capitals.\"},{name:'\"pkna\"',description:\"Proportional Kana. Generally used only in Japanese fonts.\"},{name:'\"pnum\"',description:\"Proportional Figures.\"},{name:'\"pref\"',description:\"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra.\"},{name:'\"pres\"',description:\"Pre-base Substitutions. Required in Indic scripts.\"},{name:'\"pstf\"',description:\"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer.\"},{name:'\"psts\"',description:\"Post-base Substitutions.\"},{name:'\"pwid\"',description:\"Proportional Widths.\"},{name:'\"qwid\"',description:\"Quarter Widths. Generally used only in CJKV fonts.\"},{name:'\"rand\"',description:\"Randomize.\"},{name:'\"rclt\"',description:\"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic.\"},{name:'\"rlig\"',description:\"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts.\"},{name:'\"rkrf\"',description:\"Rakar Forms. Required in Devanagari and Gujarati scripts.\"},{name:'\"rphf\"',description:\"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada.\"},{name:'\"rtbd\"',description:\"Right Bounds.\"},{name:'\"rtla\"',description:\"Right-to-left alternates.\"},{name:'\"rtlm\"',description:\"Right-to-left mirrored forms.\"},{name:'\"ruby\"',description:\"Ruby Notation Forms. Applies only to Japanese.\"},{name:'\"salt\"',description:\"Stylistic Alternates.\"},{name:'\"sinf\"',description:\"Scientific Inferiors.\"},{name:'\"size\"',description:\"Optical size.\"},{name:'\"smcp\"',description:\"Small Capitals. Applies only to bicameral scripts.\"},{name:'\"smpl\"',description:\"Simplified Forms. Applies only to Chinese and Japanese.\"},{name:'\"ssty\"',description:\"Math script style alternates.\"},{name:'\"stch\"',description:\"Stretching Glyph Decomposition.\"},{name:'\"subs\"',description:\"Subscript.\"},{name:'\"sups\"',description:\"Superscript.\"},{name:'\"swsh\"',description:\"Swash. Does not apply to ideographic scripts.\"},{name:'\"titl\"',description:\"Titling.\"},{name:'\"tjmo\"',description:\"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"tnam\"',description:\"Traditional Name Forms. Applies only to Japanese.\"},{name:'\"tnum\"',description:\"Tabular Figures.\"},{name:'\"trad\"',description:\"Traditional Forms. Applies only to Chinese and Japanese.\"},{name:'\"twid\"',description:\"Third Widths. Generally used only in CJKV fonts.\"},{name:'\"unic\"',description:\"Unicase.\"},{name:'\"valt\"',description:\"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes.\"},{name:'\"vatu\"',description:\"Vattu Variants. Used for Indic scripts. E.g. Devanagari.\"},{name:'\"vert\"',description:\"Vertical Alternates. Applies only to scripts with vertical writing modes.\"},{name:'\"vhal\"',description:\"Alternate Vertical Half Metrics. Used only in CJKV fonts.\"},{name:'\"vjmo\"',description:\"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"},{name:'\"vkna\"',description:\"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"},{name:'\"vkrn\"',description:\"Vertical Kerning.\"},{name:'\"vpal\"',description:\"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts.\"},{name:'\"vrt2\"',description:\"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes.\"},{name:'\"zero\"',description:\"Slashed Zero.\"},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",description:\"Disable feature.\"},{name:\"on\",description:\"Enable feature.\"}],syntax:\"normal | <feature-tag-value>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings\"}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"border-left-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-left-style\"}],description:\"Sets the style of the left border.\",restrictions:[\"line-style\"]},{name:\"font-stretch\",values:[{name:\"condensed\"},{name:\"expanded\"},{name:\"extra-condensed\"},{name:\"extra-expanded\"},{name:\"narrower\",description:\"Indicates a narrower value relative to the width of the parent element.\"},{name:\"normal\"},{name:\"semi-condensed\"},{name:\"semi-expanded\"},{name:\"ultra-condensed\"},{name:\"ultra-expanded\"},{name:\"wider\",description:\"Indicates a wider value relative to the width of the parent element.\"}],syntax:\"<font-stretch-absolute>{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-stretch\"}],description:\"Selects a normal, condensed, or expanded face from a font family.\",restrictions:[\"enum\"]},{name:\"outline-color\",values:[{name:\"invert\",description:\"Performs a color inversion on the pixels on the screen.\"}],syntax:\"<color> | invert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/outline-color\"}],description:\"The color of the outline.\",restrictions:[\"enum\",\"color\"]},{name:\"border-right-style\",syntax:\"<line-style>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-right-style\"}],description:\"Sets the style of the right border.\",restrictions:[\"line-style\"]},{name:\"clip-path\",values:[{name:\"none\",description:\"No clipping path gets created.\"},{name:\"url()\",description:\"References a <clipPath> element to create a clipping path.\"}],syntax:\"<clip-source> | [ <basic-shape> || <geometry-box> ] | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/clip-path\"}],description:\"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"list-style-image\",values:[{name:\"none\",description:\"The default contents of the of the list item’s marker are given by 'list-style-type' instead.\"}],syntax:\"<url> | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/list-style-image\"}],description:\"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.\",restrictions:[\"image\"]},{name:\"counter-increment\",values:[{name:\"none\",description:\"This element does not alter the value of any counters.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-increment\"}],description:\"Manipulate the value of existing counters.\",restrictions:[\"identifier\",\"integer\"]},{name:\"counter-reset\",values:[{name:\"none\",description:\"The counter is not modified.\"}],syntax:\"[ <custom-ident> <integer>? ]+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-reset\"}],description:\"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.\",restrictions:[\"identifier\",\"integer\"]},{name:\"font-display\",status:\"experimental\",syntax:\"[ auto | block | swap | fallback | optional ]\",description:\"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use.\"},{name:\"border-image\",values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\",description:\"Use the border styles.\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],syntax:\"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"column-count\",values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],syntax:\"<integer> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-count\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\",\"enum\"]},{name:\"column-gap\",values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],syntax:\"normal | <length-percentage>\",description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\",\"enum\"]},{name:\"text-decoration-color\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color\"}],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"all\",browsers:[\"FF27\",\"S9.1\",\"C37\",\"O24\"],values:[],syntax:\"initial | inherit | unset | revert\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/all\"}],description:\"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.\",restrictions:[\"enum\"]},{name:\"object-position\",browsers:[\"E16\",\"FF36\",\"S10\",\"C31\",\"O19\"],syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/object-position\"}],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"page-break-inside\",values:[{name:\"auto\",description:\"Neither force nor forbid a page break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page break inside the generated box.\"}],syntax:\"auto | avoid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-inside\"}],description:\"Defines rules for page breaks inside an element.\",restrictions:[\"enum\"]},{name:\"stroke-linecap\",values:[{name:\"butt\",description:\"Indicates that the stroke for each subpath does not extend beyond its two endpoints.\"},{name:\"round\",description:\"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width.\"},{name:\"square\",description:\"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width.\"}],description:\"Specifies the shape to be used at the end of open subpaths when they are stroked.\",restrictions:[\"enum\"]},{name:\"size\",browsers:[\"C\",\"O8\"],restrictions:[\"length\"]},{name:\"empty-cells\",values:[{name:\"hide\",description:\"No borders or backgrounds are drawn around/behind empty cells.\"},{name:\"-moz-show-background\"},{name:\"show\",description:\"Borders and backgrounds are drawn around/behind empty cells (like normal cells).\"}],syntax:\"show | hide\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/empty-cells\"}],description:\"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.\",restrictions:[\"enum\"]},{name:\"page-break-after\",values:[{name:\"always\",description:\"Always force a page break after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break after generated box.\"},{name:\"avoid\",description:\"Avoid a page break after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-after\"}],description:\"Defines rules for page breaks after an element.\",restrictions:[\"enum\"]},{name:\"fill-opacity\",description:\"Specifies the opacity of the painting operation used to paint the interior the current object.\",restrictions:[\"number(0-1)\"]},{name:\"grid-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<'grid-row-gap'> <'grid-column-gap'>?\",description:\"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.\",restrictions:[\"length\"]},{name:\"margin-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-end\"}],description:\"Logical 'margin-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"contain\",browsers:[\"FF69\",\"C52\",\"O40\"],values:[{name:\"none\",description:\"Indicates that the property has no effect.\"},{name:\"strict\",description:\"Turns on all forms of containment for the element.\"},{name:\"content\",description:\"All containment rules except size are applied to the element.\"},{name:\"size\",description:\"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element.\"},{name:\"layout\",description:\"Turns on layout containment for the element.\"},{name:\"style\",description:\"Turns on style containment for the element.\"},{name:\"paint\",description:\"Turns on paint containment for the element.\"}],status:\"experimental\",syntax:\"none | strict | content | [ size || layout || style || paint ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/contain\"}],description:\"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.\",restrictions:[\"enum\"]},{name:\"padding-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start\"}],description:\"Logical 'padding-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start\"}],description:\"Logical 'margin-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"margin-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end\"}],description:\"Logical 'margin-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"grid-template-rows\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"There is no explicit grid; any rows/columns will be implicitly generated.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Indicates that the grid will align to its parent grid in that axis.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows\"}],description:\"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"padding-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end\"}],description:\"Logical 'padding-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"stroke-opacity\",description:\"Specifies the opacity of the painting operation used to stroke the current object.\",restrictions:[\"number(0-1)\"]},{name:\"orphans\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/orphans\"}],description:\"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.\",restrictions:[\"integer\"]},{name:\"shape-outside\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],values:[{name:\"margin-box\",description:\"The background is painted within (clipped to) the margin box.\"},{name:\"none\",description:\"The float area is unaffected.\"}],syntax:\"none | <shape-box> || <basic-shape> | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-outside\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"image\",\"box\",\"shape\",\"enum\"]},{name:\"caption-side\",values:[{name:\"bottom\",description:\"Positions the caption box below the table box.\"},{name:\"top\",description:\"Positions the caption box above the table box.\"}],syntax:\"top | bottom | block-start | block-end | inline-start | inline-end\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caption-side\"}],description:\"Specifies the position of the caption box with respect to the table box.\",restrictions:[\"enum\"]},{name:\"widows\",browsers:[\"E12\",\"S1.3\",\"C25\",\"IE8\",\"O9.2\"],syntax:\"<integer>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/widows\"}],description:\"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.\",restrictions:[\"integer\"]},{name:\"grid-column\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column\"}],description:\"Shorthand for 'grid-column-start' and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"perspective-origin\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/perspective-origin\"}],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"column-width\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<length> | auto\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-width\"}],description:\"Describes the width of columns in multicol elements.\",restrictions:[\"length\",\"enum\"]},{name:\"mix-blend-mode\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF32\",\"S8\",\"C41\",\"O28\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode\"}],description:\"Defines the formula that must be used to mix the colors with the backdrop.\",restrictions:[\"enum\"]},{name:\"grid-auto-rows\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows\"}],description:\"Specifies the size of implicitly created rows.\",restrictions:[\"length\",\"percentage\"]},{name:\"font-variant-ligatures\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],values:[{name:\"additional-ligatures\",description:\"Enables display of additional ligatures.\"},{name:\"common-ligatures\",description:\"Enables display of common ligatures.\"},{name:\"contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Enables display of contextual alternates.\"},{name:\"discretionary-ligatures\",description:\"Enables display of discretionary ligatures.\"},{name:\"historical-ligatures\",description:\"Enables display of historical ligatures.\"},{name:\"no-additional-ligatures\",description:\"Disables display of additional ligatures.\"},{name:\"no-common-ligatures\",description:\"Disables display of common ligatures.\"},{name:\"no-contextual\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables display of contextual alternates.\"},{name:\"no-discretionary-ligatures\",description:\"Disables display of discretionary ligatures.\"},{name:\"no-historical-ligatures\",description:\"Disables display of historical ligatures.\"},{name:\"none\",browsers:[\"FF34\",\"S9.1\",\"C34\",\"O21\"],description:\"Disables all ligatures.\"},{name:\"normal\",description:\"Implies that the defaults set by the font are used.\"}],syntax:\"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures\"}],description:\"Specifies control over which ligatures are enabled or disabled. A value of ‘normal’ implies that the defaults set by the font are used.\",restrictions:[\"enum\"]},{name:\"scroll-behavior\",browsers:[\"FF36\",\"C61\",\"O48\"],values:[{name:\"auto\",description:\"Scrolls in an instant fashion.\"},{name:\"smooth\",description:\"Scrolls in a smooth fashion using a user-agent-defined timing function and time period.\"}],syntax:\"auto | smooth\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior\"}],description:\"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip\",status:\"experimental\",syntax:\"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]\",browsers:[\"S12.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip\"}],description:\"The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors.\"},{name:\"columns\",values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],syntax:\"<'column-width'> || <'column-count'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/columns\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\",\"enum\"]},{name:\"column-rule\",syntax:\"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule\"}],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"line-break\",values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"loose\",description:\"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks text using the most common set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],syntax:\"auto | loose | normal | strict | anywhere\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-break\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"text-align-last\",browsers:[\"E12\",\"FF49\",\"C47\",\"IE5.5\",\"O\"],values:[{name:\"auto\",description:\"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'.\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],syntax:\"auto | start | end | left | right | center | justify\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-align-last\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"border-image-width\",values:[{name:\"auto\",description:\"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"}],syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-width\"}],description:\"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.\",restrictions:[\"length\",\"percentage\",\"number\"]},{name:\"stroke-miterlimit\",description:\"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.\",restrictions:[\"number\"]},{name:\"border-image-repeat\",values:[{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],syntax:\"[ stretch | repeat | round | space ]{1,2}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat\"}],description:\"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.\",restrictions:[\"enum\"]},{name:\"grid-column-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid columns. Replaced by 'column-gap' property.\",restrictions:[\"length\"]},{name:\"border-image-slice\",values:[{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"}],syntax:\"<number-percentage>{1,4} && fill?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-slice\"}],description:\"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.\",restrictions:[\"number\",\"percentage\"]},{name:\"justify-self\",browsers:[\"E16\",\"FF45\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"}],syntax:\"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]\",description:\"Defines the way of justifying a box inside its container along the appropriate axis.\",restrictions:[\"enum\"]},{name:\"fill-rule\",values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"border-image-outset\",syntax:\"[ <length> | <number> ]{1,4}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-outset\"}],description:\"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.\",restrictions:[\"length\",\"number\"]},{name:\"justify-items\",values:[{name:\"auto\"},{name:\"normal\"},{name:\"end\"},{name:\"start\"},{name:\"flex-end\",description:'\"Flex items are packed toward the end of the line.\"'},{name:\"flex-start\",description:'\"Flex items are packed toward the start of the line.\"'},{name:\"self-end\",description:\"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"},{name:\"self-start\",description:\"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"},{name:\"center\",description:\"The items are packed flush to each other toward the center of the of the alignment container.\"},{name:\"left\"},{name:\"right\"},{name:\"baseline\"},{name:\"first baseline\"},{name:\"last baseline\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"},{name:\"save\"},{name:\"unsave\"},{name:\"legacy\"}],syntax:\"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]\",description:\"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis\",restrictions:[\"enum\"]},{name:\"break-inside\",values:[{name:\"auto\",description:\"Impose no additional breaking constraints within the box.\"},{name:\"avoid\",description:\"Avoid breaks within the box.\"},{name:\"avoid-column\",description:\"Avoid a column break within the box.\"},{name:\"avoid-page\",description:\"Avoid a page break within the box.\"}],syntax:\"auto | avoid | avoid-page | avoid-column | avoid-region\",description:\"Describes the page/column/region break behavior inside the principal box.\",restrictions:[\"enum\"]},{name:\"scroll-snap-type\",values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],syntax:\"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type\"}],description:\"Defines how strictly snap points are enforced on the scroll container.\",restrictions:[\"enum\"]},{name:\"text-decoration-line\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],syntax:\"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"scroll-snap-align\",syntax:\"[ none | start | end | center ]{1,2}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align\"}],description:\"The scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value.\"},{name:\"grid-row\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row\"}],description:\"Shorthand for 'grid-row-start' and 'grid-row-end'.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"caret-color\",browsers:[\"FF53\",\"S11.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\"}],syntax:\"auto | <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/caret-color\"}],description:\"Controls the color of the text insertion indicator.\",restrictions:[\"color\",\"enum\"]},{name:\"stroke-linejoin\",values:[{name:\"bevel\",description:\"Indicates that a bevelled corner is to be used to join path segments.\"},{name:\"miter\",description:\"Indicates that a sharp corner is to be used to join path segments.\"},{name:\"round\",description:\"Indicates that a round corner is to be used to join path segments.\"}],description:\"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.\",restrictions:[\"enum\"]},{name:\"grid-area\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line> [ / <grid-line> ]{0,3}\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-area\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.\",restrictions:[\"identifier\",\"integer\"]},{name:\"column-fill\",values:[{name:\"auto\",description:\"Fills columns sequentially.\"},{name:\"balance\",description:\"Balance content equally between columns, if possible.\"}],syntax:\"auto | balance | balance-all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-fill\"}],description:\"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.\",restrictions:[\"enum\"]},{name:\"tab-size\",browsers:[\"FF4\",\"S6.1\",\"C21\",\"O15\"],syntax:\"<integer> | <length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/tab-size\"}],description:\"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"overflow-anchor\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF66\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor\"}],description:\"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts.\"},{name:\"border-image-source\",values:[{name:\"none\",description:\"Use the border styles.\"}],syntax:\"none | <image>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-image-source\"}],description:\"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.\",restrictions:[\"image\"]},{name:\"grid-template-areas\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"The grid container doesn’t define any named grid areas.\"}],syntax:\"none | <string>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas\"}],description:\"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.\",restrictions:[\"string\"]},{name:\"font-kerning\",browsers:[\"FF32\",\"S7\",\"C32\",\"O19\"],values:[{name:\"auto\",description:\"Specifies that kerning is applied at the discretion of the user agent.\"},{name:\"none\",description:\"Specifies that kerning is not applied.\"},{name:\"normal\",description:\"Specifies that kerning is applied.\"}],syntax:\"auto | normal | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-kerning\"}],description:\"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.\",restrictions:[\"enum\"]},{name:\"page-break-before\",values:[{name:\"always\",description:\"Always force a page break before the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page break before the generated box.\"},{name:\"avoid\",description:\"Avoid a page break before the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a left page.\"},{name:\"right\",description:\"Force one or two page breaks before the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | always | avoid | left | right | recto | verso\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/page-break-before\"}],description:\"Defines rules for page breaks before an element.\",restrictions:[\"enum\"]},{name:\"text-decoration-style\",browsers:[\"FF36\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],syntax:\"solid | double | dotted | dashed | wavy\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"grid-row-gap\",browsers:[\"FF52\",\"C57\",\"S10.1\",\"O44\"],status:\"obsolete\",syntax:\"<length-percentage>\",description:\"Specifies the gutters between grid rows. Replaced by 'row-gap' property.\",restrictions:[\"length\"]},{name:\"backdrop-filter\",status:\"experimental\",syntax:\"none | <filter-function-list>\",browsers:[\"E17\",\"FF70\",\"S9\",\"C76\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter\"}],description:\"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.\"},{name:\"grid-auto-flow\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"row\",description:\"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary.\"},{name:\"column\",description:\"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary.\"},{name:\"dense\",description:\"If specified, the auto-placement algorithm uses a “dense” packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later.\"}],syntax:\"[ row | column ] || dense\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow\"}],description:\"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.\",restrictions:[\"enum\"]},{name:\"grid-column-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"column-rule-color\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-color\"}],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"isolation\",browsers:[\"FF36\",\"S8\",\"C41\",\"O30\"],values:[{name:\"auto\",description:\"Elements are not isolated unless an operation is applied that causes the creation of a stacking context.\"},{name:\"isolate\",description:\"In CSS will turn the element into a stacking context.\"}],syntax:\"auto | isolate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/isolation\"}],description:\"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.\",restrictions:[\"enum\"]},{name:\"column-rule-style\",syntax:\"<'border-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-style\"}],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"stop-color\",description:\"Indicates what color to use at that gradient stop.\",restrictions:[\"color\"]},{name:\"clip-rule\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"evenodd\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"},{name:\"nonzero\",description:\"Determines the ‘insideness’ of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"}],description:\"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.\",restrictions:[\"enum\"]},{name:\"background-blend-mode\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],values:[{name:\"normal\",description:\"Default attribute which specifies no blending\"},{name:\"multiply\",description:\"The source color is multiplied by the destination color and replaces the destination.\"},{name:\"screen\",description:\"Multiplies the complements of the backdrop and source color values, then complements the result.\"},{name:\"overlay\",description:\"Multiplies or screens the colors, depending on the backdrop color value.\"},{name:\"darken\",description:\"Selects the darker of the backdrop and source colors.\"},{name:\"lighten\",description:\"Selects the lighter of the backdrop and source colors.\"},{name:\"color-dodge\",description:\"Brightens the backdrop color to reflect the source color.\"},{name:\"color-burn\",description:\"Darkens the backdrop color to reflect the source color.\"},{name:\"hard-light\",description:\"Multiplies or screens the colors, depending on the source color value.\"},{name:\"soft-light\",description:\"Darkens or lightens the colors, depending on the source color value.\"},{name:\"difference\",description:\"Subtracts the darker of the two constituent colors from the lighter color..\"},{name:\"exclusion\",description:\"Produces an effect similar to that of the Difference mode but lower in contrast.\"},{name:\"hue\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"},{name:\"saturation\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"},{name:\"color\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"},{name:\"luminosity\",browsers:[\"FF30\",\"S8\",\"C35\",\"O22\"],description:\"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"}],syntax:\"<blend-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode\"}],description:\"Defines the blending mode of each background layer.\",restrictions:[\"enum\"]},{name:\"font-variant-numeric\",browsers:[\"FF34\",\"S9.1\",\"C52\",\"O39\"],values:[{name:\"diagonal-fractions\",description:\"Enables display of lining diagonal fractions.\"},{name:\"lining-nums\",description:\"Enables display of lining numerals.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"oldstyle-nums\",description:\"Enables display of old-style numerals.\"},{name:\"ordinal\",description:\"Enables display of letter forms used with ordinal numbers.\"},{name:\"proportional-nums\",description:\"Enables display of proportional numerals.\"},{name:\"slashed-zero\",description:\"Enables display of slashed zeros.\"},{name:\"stacked-fractions\",description:\"Enables display of lining stacked fractions.\"},{name:\"tabular-nums\",description:\"Enables display of tabular numerals.\"}],syntax:\"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric\"}],description:\"Specifies control over numerical forms.\",restrictions:[\"enum\"]},{name:\"grid-column-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-column-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"margin-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],values:[{name:\"auto\"}],syntax:\"<'margin-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block-start\"}],description:\"Logical 'margin-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"writing-mode\",values:[{name:\"horizontal-tb\",description:\"Top-to-bottom block flow direction. The writing mode is horizontal.\"},{name:\"sideways-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"sideways-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"},{name:\"vertical-lr\",description:\"Left-to-right block flow direction. The writing mode is vertical.\"},{name:\"vertical-rl\",description:\"Right-to-left block flow direction. The writing mode is vertical.\"}],syntax:\"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/writing-mode\"}],description:\"This is a shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"shape-rendering\",values:[{name:\"auto\",description:\"Suppresses aural rendering.\"},{name:\"crispEdges\",description:\"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision.\"},{name:\"geometricPrecision\",description:\"Emphasize geometric precision over speed and crisp edges.\"},{name:\"optimizeSpeed\",description:\"Emphasize rendering speed over geometric precision and crisp edges.\"}],description:\"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.\",restrictions:[\"enum\"]},{name:\"grid-row-start\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-start\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"grid-auto-columns\",values:[{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"}],syntax:\"<track-size>+\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns\"}],description:\"Specifies the size of implicitly created columns.\",restrictions:[\"length\",\"percentage\"]},{name:\"break-after\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-decoration-skip-ink\",status:\"experimental\",syntax:\"auto | none\",browsers:[\"FF70\",\"C64\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink\"}],description:\"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders.\"},{name:\"grid-row-end\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"The property contributes nothing to the grid item’s placement, indicating auto-placement, an automatic span, or a default span of one.\"},{name:\"span\",description:\"Contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is N lines from its opposite edge.\"}],syntax:\"<grid-line>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-row-end\"}],description:\"Determine a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",restrictions:[\"identifier\",\"integer\",\"enum\"]},{name:\"break-before\",values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the principal box.\"},{name:\"avoid\",description:\"Avoid a break before/after the principal box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the principal box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the principal box.\"},{name:\"column\",description:\"Always force a column break before/after the principal box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the principal box.\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],syntax:\"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",description:\"Describes the page/column/region break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"font-variant-caps\",browsers:[\"FF34\",\"C52\",\"O39\"],values:[{name:\"all-petite-caps\",description:\"Enables display of petite capitals for both upper and lowercase letters.\"},{name:\"all-small-caps\",description:\"Enables display of small capitals for both upper and lowercase letters.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"petite-caps\",description:\"Enables display of petite capitals.\"},{name:\"small-caps\",description:\"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"},{name:\"titling-caps\",description:\"Enables display of titling capitals.\"},{name:\"unicase\",description:\"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters.\"}],syntax:\"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps\"}],description:\"Specifies control over capitalized forms.\",restrictions:[\"enum\"]},{name:\"stop-opacity\",description:\"Defines the opacity of a given gradient stop.\",restrictions:[\"number(0-1)\"]},{name:\"column-span\",values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],syntax:\"none | all\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-span\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"text-anchor\",values:[{name:\"end\",description:\"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position.\"},{name:\"middle\",description:\"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position.\"},{name:\"start\",description:\"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position.\"}],description:\"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.\",restrictions:[\"enum\"]},{name:\"column-rule-width\",syntax:\"<'border-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/column-rule-width\"}],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"mask\",syntax:\"<mask-layer>#\",browsers:[\"E12\",\"FF2\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask\"}],description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"text-underline-position\",browsers:[\"E12\",\"C33\",\"IE6\",\"O20\"],values:[{name:\"above\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline’s position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"below\",description:\"The underline is aligned with the under edge of the element’s content box.\"}],syntax:\"auto | [ under || [ left | right ] ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-position\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"mask-type\",browsers:[\"FF35\",\"S6.1\",\"C24\",\"O15\"],values:[{name:\"alpha\",description:\"Indicates that the alpha values of the mask should be used.\"},{name:\"luminance\",description:\"Indicates that the luminance values of the mask should be used.\"}],syntax:\"luminance | alpha\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-type\"}],description:\"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.\",restrictions:[\"enum\"]},{name:\"font-variant-east-asian\",browsers:[\"FF34\",\"C63\",\"O50\"],values:[{name:\"full-width\",description:\"Enables rendering of full-width variants.\"},{name:\"jis04\",description:\"Enables rendering of JIS04 forms.\"},{name:\"jis78\",description:\"Enables rendering of JIS78 forms.\"},{name:\"jis83\",description:\"Enables rendering of JIS83 forms.\"},{name:\"jis90\",description:\"Enables rendering of JIS90 forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"proportional-width\",description:\"Enables rendering of proportionally-spaced variants.\"},{name:\"ruby\",description:\"Enables display of ruby variant glyphs.\"},{name:\"simplified\",description:\"Enables rendering of simplified forms.\"},{name:\"traditional\",description:\"Enables rendering of traditional forms.\"}],syntax:\"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian\"}],description:\"Allows control of glyph substitute and positioning in East Asian text.\",restrictions:[\"enum\"]},{name:\"border-inline-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width\"}],description:\"Logical 'border-right-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-inline-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width\"}],description:\"Logical 'border-left-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"text-orientation\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],values:[{name:\"sideways\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode.\"},{name:\"sideways-right\",browsers:[\"FF41\",\"S5.1\",\"C48\",\"O15\"],description:\"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90° clockwise.\"},{name:\"upright\",description:\"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation.\"}],syntax:\"mixed | upright | sideways\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-orientation\"}],description:\"Specifies the orientation of text within a line.\",restrictions:[\"enum\"]},{name:\"shape-margin\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<length-percentage>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-margin\"}],description:\"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.\",restrictions:[\"url\",\"length\",\"percentage\"]},{name:\"shape-image-threshold\",browsers:[\"FF62\",\"S10.1\",\"C37\",\"O24\"],syntax:\"<alpha-value>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold\"}],description:\"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.\",restrictions:[\"number\"]},{name:\"min-inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-inline-size\"}],description:\"Logical 'min-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"inline-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inline-size\"}],description:\"Logical 'height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"text-combine-upright\",syntax:\"none | all | [ digits <integer>? ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright\"}],description:\"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\\n\\nThis is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese.\"},{name:\"block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"auto\",description:\"Depends on the values of other properties.\"}],syntax:\"<'width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/block-size\"}],description:\"Logical 'width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"min-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],syntax:\"<'min-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/min-block-size\"}],description:\"Logical 'min-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-start\"}],description:\"Logical 'padding-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"padding-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'padding-left'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block-end\"}],description:\"Logical 'padding-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"border-inline-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color\"}],description:\"Logical 'border-left-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color\"}],description:\"Logical 'border-right-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-inline-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style\"}],description:\"Logical 'border-right-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-inline-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style\"}],description:\"Logical 'border-left-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style\"}],description:\"Logical 'border-bottom-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-end-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color\"}],description:\"Logical 'border-bottom-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-style\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-style'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style\"}],description:\"Logical 'border-top-style'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"line-style\"]},{name:\"border-block-start-color\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color\"}],description:\"Logical 'border-top-color'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"color\"]},{name:\"border-block-start-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width\"}],description:\"Logical 'border-top-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"border-block-end-width\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width\"}],description:\"Logical 'border-bottom-width'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\"]},{name:\"row-gap\",syntax:\"normal | <length-percentage>\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The row-gap CSS property specifies the gutter between grid rows.\"},{name:\"grid-template\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"Sets all three properties to their initial values.\"},{name:\"min-content\",description:\"Represents the largest min-content contribution of the grid items occupying the grid track.\"},{name:\"max-content\",description:\"Represents the largest max-content contribution of the grid items occupying the grid track.\"},{name:\"auto\",description:\"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"},{name:\"subgrid\",description:\"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value.\"},{name:\"minmax()\",description:\"Defines a size range greater than or equal to min and less than or equal to max.\"},{name:\"repeat()\",description:\"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"}],syntax:\"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid-template\"}],description:\"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"color-interpolation-filters\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],values:[{name:\"auto\",description:\"Color operations are not required to occur in a particular color space.\"},{name:\"linearRGB\",description:\"Color operations should occur in the linearized RGB color space.\"},{name:\"sRGB\",description:\"Color operations should occur in the sRGB color space.\"}],description:\"Specifies the color space for imaging operations performed via filter effects.\",restrictions:[\"enum\"]},{name:\"paint-order\",browsers:[\"E17\",\"FF60\",\"S8\",\"C35\",\"O22\"],values:[{name:\"fill\"},{name:\"markers\"},{name:\"normal\",description:\"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers.\"},{name:\"stroke\"}],status:\"experimental\",syntax:\"normal | [ fill || stroke || markers ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/paint-order\"}],description:\"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.\",restrictions:[\"enum\"]},{name:\"flood-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what color to use to flood the current filter primitive subregion.\",restrictions:[\"color\"]},{name:\"flood-opacity\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Indicates what opacity to use to flood the current filter primitive subregion.\",restrictions:[\"number(0-1)\",\"percentage\"]},{name:\"scroll-snap-stop\",syntax:\"normal | always\",browsers:[\"C75\",\"O62\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop\"}],description:'The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions.'},{name:\"lighting-color\",browsers:[\"E\",\"C5\",\"FF3\",\"IE10\",\"O9\",\"S6\"],description:\"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.\",restrictions:[\"color\"]},{name:\"scroll-padding-left\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left\"}],description:\"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker-end\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the last vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-start\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at the first vertices of the given markable element.\",restrictions:[\"url\"]},{name:\"marker-mid\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker that will be drawn at all vertices except the first and last.\",restrictions:[\"url\"]},{name:\"offset-distance\",status:\"experimental\",syntax:\"<length-percentage>\",browsers:[\"FF69\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-distance\"}],description:\"The offset-distance CSS property specifies a position along an offset-path.\"},{name:\"place-content\",syntax:\"<'align-content'> <'justify-content'>?\",browsers:[\"FF53\",\"S9\",\"C59\",\"O\"],description:\"The place-content CSS shorthand property sets both the align-content and justify-content properties.\"},{name:\"font-variation-settings\",syntax:\"normal | [ <string> <number> ]#\",browsers:[\"E17\",\"FF62\",\"S11\",\"C62\",\"O49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings\"}],description:\"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values.\"},{name:\"offset-path\",status:\"experimental\",syntax:\"none | ray( [ <angle> && <size>? && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]\",browsers:[\"FF63\",\"C55\",\"O45\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-path\"}],description:'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element’s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\\n\\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'},{name:\"offset-rotate\",status:\"experimental\",syntax:\"[ auto | reverse ] || <angle>\",browsers:[\"FF69\",\"C56\",\"O43\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-rotate\"}],description:\"The offset-rotate CSS property defines the direction of the element while positioning along the offset path.\"},{name:\"max-inline-size\",browsers:[\"FF41\",\"S10.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the height of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-inline-size\"}],description:\"Logical 'max-height'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"max-block-size\",browsers:[\"FF41\",\"S12.1\",\"C57\",\"O44\"],values:[{name:\"none\",description:\"No limit on the width of the box.\"}],status:\"experimental\",syntax:\"<'max-width'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/max-block-size\"}],description:\"Logical 'max-width'. Mapping depends on the element’s 'writing-mode'.\",restrictions:[\"length\",\"percentage\"]},{name:\"scroll-padding\",syntax:\"[ auto | <length-percentage> ]{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding\"}],description:\"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands.\"},{name:\"transform-box\",syntax:\"border-box | fill-box | view-box\",browsers:[\"FF55\",\"S11\",\"C64\",\"O51\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/transform-box\"}],description:\"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate.\"},{name:\"scroll-padding-top\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top\"}],description:\"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"gap\",syntax:\"<'row-gap'> <'column-gap'>?\",browsers:[\"E16\",\"FF63\",\"S10.1\",\"C66\",\"O53\"],description:\"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns.\"},{name:\"scroll-padding-right\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right\"}],description:\"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"marker\",values:[{name:\"none\",description:\"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"},{name:\"url()\",description:\"Indicates that the <marker> element referenced will be used.\"}],description:\"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given ‘path’ element or basic shape.\",restrictions:[\"url\"]},{name:\"scroll-padding-bottom\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom\"}],description:\"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start\"}],description:\"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-start\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start\"}],description:\"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-inline-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end\"}],description:\"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"scroll-padding-block-end\",syntax:\"auto | <length-percentage>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end\"}],description:\"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"},{name:\"place-self\",syntax:\"<'align-self'> <'justify-self'>?\",browsers:[\"FF45\",\"C59\",\"O46\"],description:\"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it.\"},{name:\"grid\",browsers:[\"E16\",\"FF52\",\"S10.1\",\"C57\",\"O44\"],syntax:\"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/grid\"}],description:\"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.\",restrictions:[\"identifier\",\"length\",\"percentage\",\"string\",\"enum\"]},{name:\"place-items\",syntax:\"<'align-items'> <'justify-items'>?\",browsers:[\"FF45\",\"S11\",\"C59\",\"O46\"],description:\"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it.\"},{name:\"font-optical-sizing\",syntax:\"auto | none\",browsers:[\"E17\",\"FF62\",\"S11\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing\"}],description:\"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis.\"},{name:\"border-block-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-start\"}],description:\"Logical 'border-top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-block-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-end\"}],description:\"Logical 'border-bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"border-inline-start\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-start\"}],description:\"Logical 'border-left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"offset\",status:\"experimental\",syntax:\"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\",browsers:[\"FF71\",\"C55\",\"O42\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset\"}],description:\"The offset CSS property is a shorthand property for animating an element along a defined path.\"},{name:\"border-inline-end\",browsers:[\"FF41\",\"S12.1\",\"C69\",\"O56\"],syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-end\"}],description:\"Logical 'border-right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"scroll-padding-block\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block\"}],description:\"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension.\"},{name:\"scroll-padding-inline\",syntax:\"[ auto | <length-percentage> ]{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline\"}],description:\"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension.\"},{name:\"motion\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"},{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.\",restrictions:[\"url\",\"length\",\"percentage\",\"angle\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"margin-inline\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-inline\"}],description:\"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-block\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-block\"}],description:\"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"padding-inline\",syntax:\"<'padding-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/padding-inline\"}],description:\"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"},{name:\"font-size-adjust\",browsers:[\"FF40\",\"C54\",\"O41\"],values:[{name:\"none\",description:\"Do not preserve the font’s x-height.\"}],syntax:\"none | <number>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust\"}],description:\"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.\",restrictions:[\"number\"]},{name:\"motion-path\",browsers:[\"C46\",\"O33\"],values:[{name:\"none\",description:\"No motion path gets created.\"},{name:\"path()\",description:\"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"}],description:\"Specifies the motion path the element gets positioned at.\",restrictions:[\"url\",\"shape\",\"geometry-box\",\"enum\"]},{name:\"text-justify\",browsers:[\"E12\",\"FF55\",\"C32\",\"IE11\",\"O19\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"distribute-all-lines\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"},{name:\"newspaper\"}],syntax:\"auto | inter-character | inter-word | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-justify\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"motion-offset\",browsers:[\"C46\",\"O33\"],description:\"A distance that describes the position along the specified motion path.\",restrictions:[\"length\",\"percentage\"]},{name:\"inset-block-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-start\"}],description:\"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset\",syntax:\"<'top'>{1,4}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset\"}],description:\"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-start\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start\"}],description:\"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end\"}],description:\"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"scale\",syntax:\"none | <number>{1,3}\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scale\"}],description:\"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"translate\",syntax:\"none | <length-percentage> [ <length-percentage> <length>? ]?\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/translate\"}],description:\"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"rotate\",syntax:\"none | <angle> | [ x | y | z | <number>{3} ] && <angle>\",browsers:[\"FF60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/rotate\"}],description:\"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"},{name:\"offset-anchor\",status:\"experimental\",syntax:\"auto | <position>\",browsers:[\"FF70\",\"C79\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/offset-anchor\"}],description:\"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path.\"},{name:\"offset-position\",status:\"experimental\",syntax:\"auto | <position>\",description:\"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored.\"},{name:\"margin-block\",syntax:\"<'margin-left'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/margin-block\"}],description:\"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"},{name:\"user-zoom\",syntax:\"zoom | fixed\",description:\"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport.\"},{name:\"min-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"inset-block-end\",syntax:\"<'top'>\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block-end\"}],description:\"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"enable-background\",values:[{name:\"accumulate\",description:\"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target.\"},{name:\"new\",description:\"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device.\"}],description:\"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.\",restrictions:[\"integer\",\"length\",\"percentage\",\"enum\"]},{name:\"glyph-orientation-horizontal\",description:\"Controls glyph orientation when the inline-progression-direction is horizontal.\",restrictions:[\"angle\",\"number\"]},{name:\"glyph-orientation-vertical\",values:[{name:\"auto\",description:\"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation.\"}],description:\"Controls glyph orientation when the inline-progression-direction is vertical.\",restrictions:[\"angle\",\"number\",\"enum\"]},{name:\"kerning\",values:[{name:\"auto\",description:\"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used.\"}],description:\"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.\",restrictions:[\"length\",\"enum\"]},{name:\"image-orientation\",browsers:[\"FF26\"],values:[{name:\"flip\",description:\"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted.\"},{name:\"from-image\",description:\"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image.\"}],syntax:\"from-image | <angle> | [ <angle>? flip ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/image-orientation\"}],description:\"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",restrictions:[\"angle\"]},{name:\"image-resolution\",status:\"experimental\",syntax:\"[ from-image || <resolution> ] && snap?\",description:\"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image’s intrinsic dimensions.\"},{name:\"max-zoom\",syntax:\"auto | <number> | <percentage>\",description:\"The max-zoom CSS descriptor sets the maximum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom in any further than this, whether automatically or at the user's request.\\n\\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.\"},{name:\"orientation\",syntax:\"auto | portrait | landscape\",description:\"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media).\"},{name:\"motion-rotation\",browsers:[\"C46\",\"O33\"],values:[{name:\"auto\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path.\"},{name:\"reverse\",description:\"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"}],description:\"Defines the direction of the element while positioning along the motion path.\",restrictions:[\"angle\"]},{name:\"scroll-snap-points-x\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x\"}],description:\"Defines the positioning of snap points along the x axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-points-y\",browsers:[\"FF39\",\"S9\"],values:[{name:\"none\",description:\"No snap points are defined by this scroll container.\"},{name:\"repeat()\",description:\"Defines an interval at which snap points are defined, starting from the container’s relevant start edge.\"}],status:\"obsolete\",syntax:\"none | repeat( <length-percentage> )\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y\"}],description:\"Defines the positioning of snap points along the y axis of the scroll container it is applied to.\",restrictions:[\"enum\"]},{name:\"scroll-snap-coordinate\",browsers:[\"FF39\"],values:[{name:\"none\",description:\"Specifies that this element does not contribute a snap point.\"}],status:\"obsolete\",syntax:\"none | <position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate\"}],description:\"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container’s snap-destination for the respective axis.\",restrictions:[\"position\",\"length\",\"percentage\",\"enum\"]},{name:\"scroll-snap-destination\",browsers:[\"FF39\"],status:\"obsolete\",syntax:\"<position>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination\"}],description:\"Define the x and y coordinate within the scroll container’s visual viewport which element snap points will align with.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"border-block-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-color\"}],description:\"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-style\"}],description:\"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block-width\"}],description:\"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-color\",syntax:\"<'border-top-color'>{1,2}\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-color\"}],description:\"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-style\",syntax:\"<'border-top-style'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-style\"}],description:\"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-inline-width\",syntax:\"<'border-top-width'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline-width\"}],description:\"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"border-block\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-block\"}],description:\"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet.\"},{name:\"border-inline\",syntax:\"<'border-top-width'> || <'border-top-style'> || <'color'>\",browsers:[\"FF66\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-inline\"}],description:\"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet.\"},{name:\"inset-block\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-block\"}],description:\"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"inset-inline\",syntax:\"<'top'>{1,2}\",browsers:[\"FF63\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/inset-inline\"}],description:\"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"},{name:\"additive-symbols\",browsers:[\"FF33\"],syntax:\"[ <integer> && <symbol> ]#\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.\",restrictions:[\"integer\",\"string\",\"image\",\"identifier\"]},{name:\"alt\",browsers:[\"S9\"],values:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/alt\"}],description:\"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.\",restrictions:[\"string\",\"enum\"]},{name:\"behavior\",browsers:[\"IE6\"],description:\"IE only. Used to extend behaviors of the browser.\",restrictions:[\"url\"]},{name:\"box-decoration-break\",browsers:[\"FF32\",\"S6.1\",\"C22\",\"O15\"],values:[{name:\"clone\",description:\"Each box is independently wrapped with the border and padding.\"},{name:\"slice\",description:\"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward.\"}],syntax:\"slice | clone\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break\"}],description:\"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.\",restrictions:[\"enum\"]},{name:\"fallback\",browsers:[\"FF33\"],syntax:\"<counter-style-name>\",description:\"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can’t create a representation for a given counter value.\",restrictions:[\"identifier\"]},{name:\"font-language-override\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\"}],syntax:\"normal | <string>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-language-override\"}],description:\"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\",restrictions:[\"string\"]},{name:\"font-synthesis\",browsers:[\"FF34\",\"S9\"],values:[{name:\"none\",description:\"Disallow all synthetic faces.\"},{name:\"style\",description:\"Allow synthetic italic faces.\"},{name:\"weight\",description:\"Allow synthetic bold faces.\"}],syntax:\"none | [ weight || style ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-synthesis\"}],description:\"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.\",restrictions:[\"enum\"]},{name:\"font-variant-alternates\",browsers:[\"FF34\"],values:[{name:\"annotation()\",description:\"Enables display of alternate annotation forms.\"},{name:\"character-variant()\",description:\"Enables display of specific character variants.\"},{name:\"historical-forms\",description:\"Enables display of historical forms.\"},{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"ornaments()\",description:\"Enables replacement of default glyphs with ornaments, if provided in the font.\"},{name:\"styleset()\",description:\"Enables display with stylistic sets.\"},{name:\"stylistic()\",description:\"Enables display of stylistic alternates.\"},{name:\"swash()\",description:\"Enables display of swash glyphs.\"}],syntax:\"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates\"}],description:\"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.\",restrictions:[\"enum\"]},{name:\"font-variant-position\",browsers:[\"FF34\"],values:[{name:\"normal\",description:\"None of the features are enabled.\"},{name:\"sub\",description:\"Enables display of subscript variants (OpenType feature: subs).\"},{name:\"super\",description:\"Enables display of superscript variants (OpenType feature: sups).\"}],syntax:\"normal | sub | super\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/font-variant-position\"}],description:\"Specifies the vertical position\",restrictions:[\"enum\"]},{name:\"ime-mode\",browsers:[\"E12\",\"FF3\",\"IE5\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],status:\"obsolete\",syntax:\"auto | normal | active | inactive | disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ime-mode\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"mask-image\",browsers:[\"E16\",\"FF53\",\"S4\",\"C1\",\"O15\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],syntax:\"<mask-reference>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-image\"}],description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-mode\",browsers:[\"FF53\"],values:[{name:\"alpha\",description:\"Alpha values of the mask layer image should be used as the mask values.\"},{name:\"auto\",description:\"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image.\"},{name:\"luminance\",description:\"Luminance values of the mask layer image should be used as the mask values.\"}],syntax:\"<masking-mode>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-mode\"}],description:\"Indicates whether the mask layer image is treated as luminance mask or alpha mask.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"mask-origin\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],syntax:\"<geometry-box>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-origin\"}],description:\"Specifies the mask positioning area.\",restrictions:[\"geometry-box\",\"enum\"]},{name:\"mask-position\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<position>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-position\"}],description:\"Specifies how mask layer images are positioned.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"mask-repeat\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],syntax:\"<repeat-style>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-repeat\"}],description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"mask-size\",browsers:[\"E18\",\"FF53\",\"S4\",\"C4\",\"O15\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],syntax:\"<bg-size>#\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-size\"}],description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-moz-animation\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-moz-animation-delay\",browsers:[\"FF9\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-moz-animation-direction\",browsers:[\"FF9\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-moz-animation-duration\",browsers:[\"FF9\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-moz-animation-iteration-count\",browsers:[\"FF9\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-moz-animation-name\",browsers:[\"FF9\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-moz-animation-play-state\",browsers:[\"FF9\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-moz-animation-timing-function\",browsers:[\"FF9\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-moz-appearance\",browsers:[\"FF1\"],values:[{name:\"button\"},{name:\"button-arrow-down\"},{name:\"button-arrow-next\"},{name:\"button-arrow-previous\"},{name:\"button-arrow-up\"},{name:\"button-bevel\"},{name:\"checkbox\"},{name:\"checkbox-container\"},{name:\"checkbox-label\"},{name:\"dialog\"},{name:\"groupbox\"},{name:\"listbox\"},{name:\"menuarrow\"},{name:\"menuimage\"},{name:\"menuitem\"},{name:\"menuitemtext\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"menupopup\"},{name:\"menuradio\"},{name:\"menuseparator\"},{name:\"-moz-mac-unified-toolbar\"},{name:\"-moz-win-borderless-glass\"},{name:\"-moz-win-browsertabbar-toolbox\"},{name:\"-moz-win-communications-toolbox\"},{name:\"-moz-win-glass\"},{name:\"-moz-win-media-toolbox\"},{name:\"none\"},{name:\"progressbar\"},{name:\"progresschunk\"},{name:\"radio\"},{name:\"radio-container\"},{name:\"radio-label\"},{name:\"radiomenuitem\"},{name:\"resizer\"},{name:\"resizerpanel\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbar-small\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"separator\"},{name:\"spinner\"},{name:\"spinner-downbutton\"},{name:\"spinner-textfield\"},{name:\"spinner-upbutton\"},{name:\"statusbar\"},{name:\"statusbarpanel\"},{name:\"tab\"},{name:\"tabpanels\"},{name:\"tab-scroll-arrow-back\"},{name:\"tab-scroll-arrow-forward\"},{name:\"textfield\"},{name:\"textfield-multiline\"},{name:\"toolbar\"},{name:\"toolbox\"},{name:\"tooltip\"},{name:\"treeheadercell\"},{name:\"treeheadersortarrow\"},{name:\"treeitem\"},{name:\"treetwistyopen\"},{name:\"treeview\"},{name:\"treewisty\"},{name:\"window\"}],status:\"nonstandard\",syntax:\"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized\",description:\"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.\",restrictions:[\"enum\"]},{name:\"-moz-backface-visibility\",browsers:[\"FF10\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-moz-background-clip\",browsers:[\"FF1-3.6\"],values:[{name:\"padding\"}],description:\"Determines the background painting area.\",restrictions:[\"box\",\"enum\"]},{name:\"-moz-background-inline-policy\",browsers:[\"FF1\"],values:[{name:\"bounding-box\"},{name:\"continuous\"},{name:\"each-box\"}],description:\"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.\",restrictions:[\"enum\"]},{name:\"-moz-background-origin\",browsers:[\"FF1\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-moz-border-bottom-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-image\",browsers:[\"FF3.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-moz-border-left-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-right-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors\"}],description:\"Sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-border-top-colors\",browsers:[\"FF1\"],status:\"nonstandard\",syntax:\"<color>+ | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors\"}],description:\"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.\",restrictions:[\"color\"]},{name:\"-moz-box-align\",browsers:[\"FF1\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-direction\",browsers:[\"FF1\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-moz-box-flex\",browsers:[\"FF1\"],description:\"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.\",restrictions:[\"number\"]},{name:\"-moz-box-flexgroup\",browsers:[\"FF1\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-moz-box-ordinal-group\",browsers:[\"FF1\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-moz-box-orient\",browsers:[\"FF1\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-moz-box-pack\",browsers:[\"FF1\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\",restrictions:[\"enum\"]},{name:\"-moz-box-sizing\",browsers:[\"FF1\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"},{name:\"padding-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the padding box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-moz-column-count\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-moz-column-gap\",browsers:[\"FF3.5\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-moz-column-rule\",browsers:[\"FF3.5\"],description:\"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-moz-column-rule-color\",browsers:[\"FF3.5\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-moz-column-rule-style\",browsers:[\"FF3.5\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-moz-column-rule-width\",browsers:[\"FF3.5\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-moz-columns\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-moz-column-width\",browsers:[\"FF3.5\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-moz-font-feature-settings\",browsers:[\"FF4\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\",browsers:[\"FF4\"]},{name:\"on\",browsers:[\"FF4\"]}],description:\"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-moz-hyphens\",browsers:[\"FF9\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-moz-perspective\",browsers:[\"FF10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-moz-perspective-origin\",browsers:[\"FF10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-moz-text-align-last\",browsers:[\"FF12\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-color\",browsers:[\"FF6\"],description:\"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",restrictions:[\"color\"]},{name:\"-moz-text-decoration-line\",browsers:[\"FF6\"],values:[{name:\"line-through\",description:\"Each line of text has a line through the middle.\"},{name:\"none\",description:\"Neither produces nor inhibits text decoration.\"},{name:\"overline\",description:\"Each line of text has a line above it.\"},{name:\"underline\",description:\"Each line of text is underlined.\"}],description:\"Specifies what line decorations, if any, are added to the element.\",restrictions:[\"enum\"]},{name:\"-moz-text-decoration-style\",browsers:[\"FF6\"],values:[{name:\"dashed\",description:\"Produces a dashed line style.\"},{name:\"dotted\",description:\"Produces a dotted line.\"},{name:\"double\",description:\"Produces a double line.\"},{name:\"none\",description:\"Produces no line.\"},{name:\"solid\",description:\"Produces a solid line.\"},{name:\"wavy\",description:\"Produces a wavy line.\"}],description:\"Specifies the line style for underline, line-through and overline text decoration.\",restrictions:[\"enum\"]},{name:\"-moz-text-size-adjust\",browsers:[\"FF\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-moz-transform\",browsers:[\"FF3.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-moz-transform-origin\",browsers:[\"FF3.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-moz-transition\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-moz-transition-delay\",browsers:[\"FF4\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-moz-transition-duration\",browsers:[\"FF4\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-moz-transition-property\",browsers:[\"FF4\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-moz-transition-timing-function\",browsers:[\"FF4\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-moz-user-focus\",browsers:[\"FF1\"],values:[{name:\"ignore\"},{name:\"normal\"}],status:\"nonstandard\",syntax:\"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus\"}],description:\"Used to indicate whether the element can have focus.\"},{name:\"-moz-user-select\",browsers:[\"FF1.5\"],values:[{name:\"all\"},{name:\"element\"},{name:\"elements\"},{name:\"-moz-all\"},{name:\"-moz-none\"},{name:\"none\"},{name:\"text\"},{name:\"toggle\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-accelerator\",browsers:[\"E\",\"IE10\"],values:[{name:\"false\",description:\"The element does not contain an accelerator key sequence.\"},{name:\"true\",description:\"The element contains an accelerator key sequence.\"}],status:\"nonstandard\",syntax:\"false | true\",description:\"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed\",restrictions:[\"enum\"]},{name:\"-ms-behavior\",browsers:[\"IE8\"],description:\"IE only. Used to extend behaviors of the browser\",restrictions:[\"url\"]},{name:\"-ms-block-progression\",browsers:[\"IE8\"],values:[{name:\"bt\",description:\"Bottom-to-top block flow. Layout is horizontal.\"},{name:\"lr\",description:\"Left-to-right direction. The flow orientation is vertical.\"},{name:\"rl\",description:\"Right-to-left direction. The flow orientation is vertical.\"},{name:\"tb\",description:\"Top-to-bottom direction. The flow orientation is horizontal.\"}],status:\"nonstandard\",syntax:\"tb | rl | bt | lr\",description:\"Sets the block-progression value and the flow orientation\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\",description:\"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown.\"},{name:\"none\",description:\"A bounce effect is shown when the user hits a zoom limit during a manipulation.\"}],status:\"nonstandard\",syntax:\"none | chained\",description:\"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation.\"},{name:\"-ms-content-zooming\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not zoomable.\"},{name:\"zoom\",description:\"The element is zoomable.\"}],status:\"nonstandard\",syntax:\"none | zoom\",description:\"Specifies whether zooming is enabled.\",restrictions:[\"enum\"]},{name:\"-ms-content-zoom-limit\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>\",description:\"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-max\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the maximum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-limit-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage>\",description:\"Specifies the minimum zoom factor.\",restrictions:[\"percentage\"]},{name:\"-ms-content-zoom-snap\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'},{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>\",description:\"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.\"},{name:\"-ms-content-zoom-snap-points\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\",description:\"Specifies where the snap-points will be placed.\"},{name:\"snapList()\",description:\"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"}],status:\"nonstandard\",syntax:\"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )\",description:\"Defines where zoom snap-points are located.\"},{name:\"-ms-content-zoom-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\",description:\"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"},{name:\"none\",description:\"Indicates that zooming is unaffected by any defined snap-points.\"},{name:\"proximity\",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Specifies how zooming is affected by defined snap-points.\",restrictions:[\"enum\"]},{name:\"-ms-filter\",browsers:[\"IE8-9\"],status:\"nonstandard\",syntax:\"<string>\",description:\"IE only. Used to produce visual effects.\",restrictions:[\"string\"]},{name:\"-ms-flex\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Retrieves the value of the main size property as the used 'flex-basis'.\"},{name:\"none\",description:\"Expands to '0 0 auto'.\"}],description:\"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.\",restrictions:[\"length\",\"number\",\"percentage\"]},{name:\"-ms-flex-align\",browsers:[\"IE10\"],values:[{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'.\"}],description:\"Aligns flex items along the cross axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-direction\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"row-reverse\",description:\"Same as 'row', except the main-start and main-end directions are swapped.\"}],description:\"Specifies how flex items are placed in the flex container, by setting the direction of the flex container’s main axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-flow\",browsers:[\"IE10\"],values:[{name:\"column\",description:\"The flex container’s main axis has the same orientation as the block axis of the current writing mode.\"},{name:\"column-reverse\",description:\"Same as 'column', except the main-start and main-end directions are swapped.\"},{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"row\",description:\"The flex container’s main axis has the same orientation as the inline axis of the current writing mode.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Specifies how flexbox items are placed in the flexbox.\",restrictions:[\"enum\"]},{name:\"-ms-flex-item-align\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"},{name:\"baseline\",description:\"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"},{name:\"center\",description:\"The flex item’s margin box is centered in the cross axis within the line.\"},{name:\"end\",description:\"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"},{name:\"start\",description:\"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"},{name:\"stretch\",description:\"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"}],description:\"Allows the default alignment along the cross axis to be overridden for individual flex items.\",restrictions:[\"enum\"]},{name:\"-ms-flex-line-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Lines are packed toward the center of the flex container.\"},{name:\"distribute\",description:\"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"},{name:\"end\",description:\"Lines are packed toward the end of the flex container.\"},{name:\"justify\",description:\"Lines are evenly distributed in the flex container.\"},{name:\"start\",description:\"Lines are packed toward the start of the flex container.\"},{name:\"stretch\",description:\"Lines stretch to take up the remaining space.\"}],description:\"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",restrictions:[\"enum\"]},{name:\"-ms-flex-order\",browsers:[\"IE10\"],description:\"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",restrictions:[\"integer\"]},{name:\"-ms-flex-pack\",browsers:[\"IE10\"],values:[{name:\"center\",description:\"Flex items are packed toward the center of the line.\"},{name:\"distribute\",description:\"Flex items are evenly distributed in the line, with half-size spaces on either end.\"},{name:\"end\",description:\"Flex items are packed toward the end of the line.\"},{name:\"justify\",description:\"Flex items are evenly distributed in the line.\"},{name:\"start\",description:\"Flex items are packed toward the start of the line.\"}],description:\"Aligns flex items along the main axis of the current line of the flex container.\",restrictions:[\"enum\"]},{name:\"-ms-flex-wrap\",browsers:[\"IE10\"],values:[{name:\"nowrap\",description:\"The flex container is single-line.\"},{name:\"wrap\",description:\"The flexbox is multi-line.\"},{name:\"wrap-reverse\",description:\"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"}],description:\"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",restrictions:[\"enum\"]},{name:\"-ms-flow-from\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-flow-into\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],status:\"nonstandard\",syntax:\"[ none | <custom-ident> ]#\",description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-ms-grid-column\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"Used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-column-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's column.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column.\"}],description:\"Aligns the columns in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-columns\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-column-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of columns to span.\",restrictions:[\"integer\"]},{name:\"-ms-grid-layer\",browsers:[\"E\",\"IE10\"],description:\"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.\",restrictions:[\"integer\"]},{name:\"-ms-grid-row\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"},{name:\"end\"},{name:\"start\"}],description:\"grid-row is used to place grid items and explicitly defined grid cells in the Grid.\",restrictions:[\"integer\",\"string\",\"enum\"]},{name:\"-ms-grid-row-align\",browsers:[\"E\",\"IE10\"],values:[{name:\"center\",description:\"Places the center of the Grid Item's margin box at the center of the Grid Item's row.\"},{name:\"end\",description:\"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row.\"},{name:\"start\",description:\"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row.\"},{name:\"stretch\",description:\"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row.\"}],description:\"Aligns the rows in a grid.\",restrictions:[\"enum\"]},{name:\"-ms-grid-rows\",browsers:[\"E\",\"IE10\"],description:\"Lays out the columns of the grid.\"},{name:\"-ms-grid-row-span\",browsers:[\"E\",\"IE10\"],description:\"Specifies the number of rows to span.\",restrictions:[\"integer\"]},{name:\"-ms-high-contrast-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Properties will be adjusted as applicable.\"},{name:\"none\",description:\"No adjustments will be applied.\"}],status:\"nonstandard\",syntax:\"auto | none\",description:\"Specifies if properties should be adjusted in high contrast mode.\",restrictions:[\"enum\"]},{name:\"-ms-hyphenate-limit-chars\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The user agent chooses a value that adapts to the current layout.\"}],status:\"nonstandard\",syntax:\"auto | <integer>{1,3}\",description:\"Specifies the minimum number of characters in a hyphenated word.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-lines\",browsers:[\"E\",\"IE10\"],values:[{name:\"no-limit\",description:\"There is no limit.\"}],status:\"nonstandard\",syntax:\"no-limit | <integer>\",description:\"Indicates the maximum number of successive hyphenated lines in an element.\",restrictions:[\"integer\"]},{name:\"-ms-hyphenate-limit-zone\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<percentage> | <length>\",description:\"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.\",restrictions:[\"percentage\",\"length\"]},{name:\"-ms-hyphens\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-ms-ime-mode\",browsers:[\"IE10\"],values:[{name:\"active\",description:\"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"},{name:\"auto\",description:\"No change is made to the current input method editor state. This is the default.\"},{name:\"disabled\",description:\"The input method editor is disabled and may not be activated by the user.\"},{name:\"inactive\",description:\"The input method editor is initially inactive, but the user may activate it if they wish.\"},{name:\"normal\",description:\"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"}],description:\"Controls the state of the input method editor for text fields.\",restrictions:[\"enum\"]},{name:\"-ms-interpolation-mode\",browsers:[\"IE7\"],values:[{name:\"bicubic\"},{name:\"nearest-neighbor\"}],description:\"Gets or sets the interpolation (resampling) method used to stretch images.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid\",browsers:[\"E\",\"IE10\"],values:[{name:\"char\",description:\"Any of the range of character values available to the -ms-layout-grid-char property.\"},{name:\"line\",description:\"Any of the range of line values available to the -ms-layout-grid-line property.\"},{name:\"mode\",description:\"Any of the range of mode values available to the -ms-layout-grid-mode property.\"},{name:\"type\",description:\"Any of the range of type values available to the -ms-layout-grid-type property.\"}],description:\"Sets or retrieves the composite document grid properties that specify the layout of text characters.\"},{name:\"-ms-layout-grid-char\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No character grid is set.\"}],description:\"Sets or retrieves the size of the character grid used for rendering the text content of an element.\",restrictions:[\"enum\",\"length\",\"percentage\"]},{name:\"-ms-layout-grid-line\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Largest character in the font of the element is used to set the character grid.\"},{name:\"none\",description:\"Default. No grid line is set.\"}],description:\"Sets or retrieves the gridline value used for rendering the text content of an element.\",restrictions:[\"length\"]},{name:\"-ms-layout-grid-mode\",browsers:[\"E\",\"IE10\"],values:[{name:\"both\",description:\"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element.\"},{name:\"char\",description:\"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled.\"},{name:\"line\",description:\"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout.\"},{name:\"none\",description:\"No grid is used.\"}],description:\"Gets or sets whether the text layout grid uses two dimensions.\",restrictions:[\"enum\"]},{name:\"-ms-layout-grid-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"fixed\",description:\"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default.\"},{name:\"loose\",description:\"Default. Grid used for Japanese and Korean characters.\"},{name:\"strict\",description:\"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid.\"}],description:\"Sets or retrieves the type of grid used for rendering the text content of an element.\",restrictions:[\"enum\"]},{name:\"-ms-line-break\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"},{name:\"keep-all\",description:\"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean.\"},{name:\"newspaper\",description:\"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"},{name:\"normal\",description:\"Breaks CJK scripts using a normal set of line-breaking rules.\"},{name:\"strict\",description:\"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"}],description:\"Specifies what set of line breaking restrictions are in effect within the element.\",restrictions:[\"enum\"]},{name:\"-ms-overflow-style\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"No preference, UA should use the first scrolling method in the list that it supports.\"},{name:\"-ms-autohiding-scrollbar\",description:\"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions.\"},{name:\"none\",description:\"Indicates the element does not display scrollbars or panning indicators, even when its content overflows.\"},{name:\"scrollbar\",description:'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element.'}],status:\"nonstandard\",syntax:\"auto | none | scrollbar | -ms-autohiding-scrollbar\",description:\"Specify whether content is clipped when it overflows the element's content area.\",restrictions:[\"enum\"]},{name:\"-ms-perspective\",browsers:[\"IE10\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-ms-perspective-origin\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-x\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the X  position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-perspective-origin-y\",browsers:[\"IE10\"],description:\"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-ms-progress-appearance\",browsers:[\"IE10\"],values:[{name:\"bar\"},{name:\"ring\"}],description:\"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.\",restrictions:[\"enum\"]},{name:\"-ms-scrollbar-3dlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-arrow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-base-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-darkshadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-face-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-highlight-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-shadow-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scrollbar-track-color\",browsers:[\"IE8\"],status:\"nonstandard\",syntax:\"<color>\",description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"-ms-scroll-chaining\",browsers:[\"E\",\"IE10\"],values:[{name:\"chained\"},{name:\"none\"}],status:\"nonstandard\",syntax:\"chained | none\",description:\"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-limit\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-x-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollLeft property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-max\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\"}],status:\"nonstandard\",syntax:\"auto | <length>\",description:\"Gets or sets a value that specifies the maximum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-limit-y-min\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that specifies the minimum value for the scrollTop property.\",restrictions:[\"length\"]},{name:\"-ms-scroll-rails\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"railed\"}],status:\"nonstandard\",syntax:\"none | railed\",description:\"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).\",restrictions:[\"enum\",\"length\"]},{name:\"-ms-scroll-snap-points-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the x-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-points-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",description:\"Gets or sets a value that defines where snap-points will be located along the y-axis.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-type\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"},{name:\"mandatory\",description:\"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"},{name:\"proximity\",description:\"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"}],status:\"nonstandard\",syntax:\"none | proximity | mandatory\",description:\"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-x\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-snap-y\",browsers:[\"E\",\"IE10\"],values:[{name:\"mandatory\"},{name:\"none\"},{name:\"proximity\"},{name:\"snapInterval(100%, 100%)\"},{name:\"snapList()\"}],status:\"nonstandard\",syntax:\"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>\",description:\"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.\",restrictions:[\"enum\"]},{name:\"-ms-scroll-translation\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\"},{name:\"vertical-to-horizontal\"}],status:\"nonstandard\",syntax:\"none | vertical-to-horizontal\",description:\"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.\",restrictions:[\"enum\"]},{name:\"-ms-text-align-last\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\"},{name:\"center\",description:\"The inline contents are centered within the line box.\"},{name:\"justify\",description:\"The text is justified according to the method specified by the 'text-justify' property.\"},{name:\"left\",description:\"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"},{name:\"right\",description:\"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"}],description:\"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",restrictions:[\"enum\"]},{name:\"-ms-text-autospace\",browsers:[\"E\",\"IE8\"],values:[{name:\"ideograph-alpha\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.\"},{name:\"ideograph-numeric\",description:\"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs.\"},{name:\"ideograph-parenthesis\",description:\"Creates extra spacing between normal (non wide) parenthesis and ideographs.\"},{name:\"ideograph-space\",description:\"Extends the width of the space character while surrounded by ideographs.\"},{name:\"none\",description:\"No extra space is created.\"},{name:\"punctuation\",description:\"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.\"}],status:\"nonstandard\",syntax:\"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space\",description:\"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.\",restrictions:[\"enum\"]},{name:\"-ms-text-combine-horizontal\",browsers:[\"E\",\"IE11\"],values:[{name:\"all\",description:\"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box.\"},{name:\"digits\",description:\"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030–U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box.\"},{name:\"none\",description:\"No special processing.\"}],description:\"This property specifies the combination of multiple characters into the space of a single character.\",restrictions:[\"enum\",\"integer\"]},{name:\"-ms-text-justify\",browsers:[\"E\",\"IE8\"],values:[{name:\"auto\",description:\"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"},{name:\"distribute\",description:\"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"},{name:\"inter-cluster\",description:\"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"},{name:\"inter-ideograph\",description:\"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"},{name:\"inter-word\",description:\"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"},{name:\"kashida\",description:\"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"}],description:\"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",restrictions:[\"enum\"]},{name:\"-ms-text-kashida-space\",browsers:[\"E\",\"IE10\"],description:\"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.\",restrictions:[\"percentage\"]},{name:\"-ms-text-overflow\",browsers:[\"IE10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-ms-text-size-adjust\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"enum\",\"percentage\"]},{name:\"-ms-text-underline-position\",browsers:[\"E\",\"IE10\"],values:[{name:\"alphabetic\",description:\"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders.\"},{name:\"auto\",description:\"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"},{name:\"over\",description:\"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides.\"},{name:\"under\",description:\"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline.\"}],description:\"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",restrictions:[\"enum\"]},{name:\"-ms-touch-action\",browsers:[\"IE10\"],values:[{name:\"auto\",description:\"The element is a passive element, with several exceptions.\"},{name:\"double-tap-zoom\",description:\"The element will zoom on double-tap.\"},{name:\"manipulation\",description:\"The element is a manipulation-causing element.\"},{name:\"none\",description:\"The element is a manipulation-blocking element.\"},{name:\"pan-x\",description:\"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.\"},{name:\"pan-y\",description:\"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.\"},{name:\"pinch-zoom\",description:\"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content.\"}],description:\"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.\",restrictions:[\"enum\"]},{name:\"-ms-touch-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"grippers\",description:\"Grippers are always on.\"},{name:\"none\",description:\"Grippers are always off.\"}],status:\"nonstandard\",syntax:\"grippers | none\",description:\"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.\",restrictions:[\"enum\"]},{name:\"-ms-transform\",browsers:[\"IE9-9\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-ms-transform-origin\",browsers:[\"IE9-9\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-ms-transform-origin-x\",browsers:[\"IE10\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-y\",browsers:[\"IE10\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-transform-origin-z\",browsers:[\"IE10\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-user-select\",browsers:[\"E\",\"IE10\"],values:[{name:\"element\"},{name:\"none\"},{name:\"text\"}],status:\"nonstandard\",syntax:\"none | element | text\",description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-word-break\",browsers:[\"IE8\"],values:[{name:\"break-all\",description:\"Lines may break between any two grapheme clusters for non-CJK scripts.\"},{name:\"keep-all\",description:\"Block characters can no longer create implied break points.\"},{name:\"normal\",description:\"Breaks non-CJK scripts according to their own rules.\"}],description:\"Specifies line break opportunities for non-CJK scripts.\",restrictions:[\"enum\"]},{name:\"-ms-word-wrap\",browsers:[\"IE8\"],values:[{name:\"break-word\",description:\"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"},{name:\"normal\",description:\"Lines may break only at allowed break points.\"}],description:\"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-flow\",browsers:[\"E\",\"IE10\"],values:[{name:\"auto\",description:\"For floats an exclusion is created, for all other elements an exclusion is not created.\"},{name:\"both\",description:\"Inline flow content can flow on all sides of the exclusion.\"},{name:\"clear\",description:\"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty.\"},{name:\"end\",description:\"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty.\"},{name:\"maximum\",description:\"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty.\"},{name:\"minimum\",description:\"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content’s containing block, and must leave the other edge of the exclusion empty.\"},{name:\"start\",description:\"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty.\"}],status:\"nonstandard\",syntax:\"auto | both | start | end | maximum | clear\",description:\"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.\",restrictions:[\"enum\"]},{name:\"-ms-wrap-margin\",browsers:[\"E\",\"IE10\"],status:\"nonstandard\",syntax:\"<length>\",description:\"Gets or sets a value that is used to offset the inner wrap shape from other shapes.\",restrictions:[\"length\",\"percentage\"]},{name:\"-ms-wrap-through\",browsers:[\"E\",\"IE10\"],values:[{name:\"none\",description:\"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element.\"},{name:\"wrap\",description:\"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element.\"}],status:\"nonstandard\",syntax:\"wrap | none\",description:\"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.\",restrictions:[\"enum\"]},{name:\"-ms-writing-mode\",browsers:[\"IE8\"],values:[{name:\"bt-lr\"},{name:\"bt-rl\"},{name:\"lr-bt\"},{name:\"lr-tb\"},{name:\"rl-bt\"},{name:\"rl-tb\"},{name:\"tb-lr\"},{name:\"tb-rl\"}],description:\"Shorthand property for both 'direction' and 'block-progression'.\",restrictions:[\"enum\"]},{name:\"-ms-zoom\",browsers:[\"IE8\"],values:[{name:\"normal\"}],description:\"Sets or retrieves the magnification scale of the object.\",restrictions:[\"enum\",\"integer\",\"number\",\"percentage\"]},{name:\"-ms-zoom-animation\",browsers:[\"IE10\"],values:[{name:\"default\"},{name:\"none\"}],description:\"Gets or sets a value that indicates whether an animation is used when zooming.\",restrictions:[\"enum\"]},{name:\"nav-down\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-index\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The element's sequential navigation order is assigned automatically by the user agent.\"}],description:\"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').\",restrictions:[\"number\"]},{name:\"nav-left\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-right\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"nav-up\",browsers:[\"O9.5\"],values:[{name:\"auto\",description:\"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"},{name:\"current\",description:\"Indicates that the user agent should target the frame that the element is in.\"},{name:\"root\",description:\"Indicates that the user agent should target the full window.\"}],description:\"Provides an way to control directional focus navigation.\",restrictions:[\"enum\",\"identifier\",\"string\"]},{name:\"negative\",browsers:[\"FF33\"],syntax:\"<symbol> <symbol>?\",description:\"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.\",restrictions:[\"image\",\"identifier\",\"string\"]},{name:\"-o-animation\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-o-animation-delay\",browsers:[\"O12\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-o-animation-direction\",browsers:[\"O12\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-o-animation-duration\",browsers:[\"O12\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-o-animation-fill-mode\",browsers:[\"O12\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-o-animation-iteration-count\",browsers:[\"O12\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-o-animation-name\",browsers:[\"O12\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-o-animation-play-state\",browsers:[\"O12\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-o-animation-timing-function\",browsers:[\"O12\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-o-border-image\",browsers:[\"O11.6\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"image\",\"enum\"]},{name:\"-o-object-fit\",browsers:[\"O10.6\"],values:[{name:\"contain\",description:\"The replaced content is sized to maintain its aspect ratio while fitting within the element’s content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"},{name:\"cover\",description:\"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element’s used width and height.\"},{name:\"fill\",description:\"The replaced content is sized to fill the element’s content box: the object's concrete object size is the element's used width and height.\"},{name:\"none\",description:\"The replaced content is not resized to fit inside the element's content box\"},{name:\"scale-down\",description:\"Size the content as if ‘none’ or ‘contain’ were specified, whichever would result in a smaller concrete object size.\"}],description:\"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",restrictions:[\"enum\"]},{name:\"-o-object-position\",browsers:[\"O10.6\"],description:\"Determines the alignment of the replaced element inside its box.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-o-table-baseline\",browsers:[\"O9.6\"],description:\"Determines which row of a inline-table should be used as baseline of inline-table.\",restrictions:[\"integer\"]},{name:\"-o-tab-size\",browsers:[\"O10.6\"],description:\"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",restrictions:[\"integer\",\"length\"]},{name:\"-o-text-overflow\",browsers:[\"O10\"],values:[{name:\"clip\",description:\"Clip inline content that overflows. Characters may be only partially rendered.\"},{name:\"ellipsis\",description:\"Render an ellipsis character (U+2026) to represent clipped inline content.\"}],description:\"Text can overflow for example when it is prevented from wrapping\",restrictions:[\"enum\"]},{name:\"-o-transform\",browsers:[\"O10.5\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-o-transform-origin\",browsers:[\"O10.5\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"positon\",\"length\",\"percentage\"]},{name:\"-o-transition\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-o-transition-delay\",browsers:[\"O11.5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-o-transition-duration\",browsers:[\"O11.5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-o-transition-property\",browsers:[\"O11.5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-o-transition-timing-function\",browsers:[\"O11.5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"offset-block-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'bottom'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-block-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'top'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-end\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'right'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"offset-inline-start\",browsers:[\"FF41\"],values:[{name:\"auto\",description:\"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"}],description:\"Logical 'left'. Mapping depends on the parent element’s 'writing-mode', 'direction', and 'text-orientation'.\",restrictions:[\"length\",\"percentage\"]},{name:\"pad\",browsers:[\"FF33\"],syntax:\"<integer> && <symbol>\",description:\"@counter-style descriptor. Specifies a “fixed-width” counter style, where representations shorter than the pad value are padded with a particular <symbol>\",restrictions:[\"integer\",\"image\",\"string\",\"identifier\"]},{name:\"prefix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"range\",browsers:[\"FF33\"],values:[{name:\"auto\",description:\"The range depends on the counter system.\"},{name:\"infinite\",description:\"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity.\"}],syntax:\"[ [ <integer> | infinite ]{2} ]# | auto\",description:\"@counter-style descriptor. Defines the ranges over which the counter style is defined.\",restrictions:[\"integer\",\"enum\"]},{name:\"ruby-align\",browsers:[\"FF38\"],values:[{name:\"auto\",browsers:[\"FF38\"],description:\"The user agent determines how the ruby contents are aligned. This is the initial value.\"},{name:\"center\",description:\"The ruby content is centered within its box.\"},{name:\"distribute-letter\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text.\"},{name:\"distribute-space\",browsers:[\"FF38\"],description:\"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text.\"},{name:\"left\",description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"line-edge\",browsers:[\"FF38\"],description:\"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base.\"},{name:\"right\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the end edge of the base.\"},{name:\"start\",browsers:[\"FF38\"],description:\"The ruby text content is aligned with the start edge of the base.\"},{name:\"space-between\",browsers:[\"FF38\"],description:\"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),\"},{name:\"space-around\",browsers:[\"FF38\"],description:\"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content.\"}],status:\"experimental\",syntax:\"start | center | space-between | space-around\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-align\"}],description:\"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.\",restrictions:[\"enum\"]},{name:\"ruby-overhang\",browsers:[\"FF10\",\"IE5\"],values:[{name:\"auto\",description:\"The ruby text can overhang text adjacent to the base on either side. This is the initial value.\"},{name:\"end\",description:\"The ruby text can overhang the text that follows it.\"},{name:\"none\",description:\"The ruby text cannot overhang any text adjacent to its base, only its own base.\"},{name:\"start\",description:\"The ruby text can overhang the text that precedes it.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"ruby-position\",browsers:[\"E12\",\"FF38\"],values:[{name:\"after\",description:\"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text.\"},{name:\"before\",description:\"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems.\"},{name:\"inline\"},{name:\"right\",description:\"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction.\"}],status:\"experimental\",syntax:\"over | under | inter-character\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/ruby-position\"}],description:\"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.\",restrictions:[\"enum\"]},{name:\"ruby-span\",browsers:[\"FF10\"],values:[{name:\"attr(x)\",description:\"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element.\"},{name:\"none\",description:\"No spanning. The computed value is '1'.\"}],description:\"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",restrictions:[\"enum\"]},{name:\"scrollbar-3dlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-arrow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color\"}],description:\"Determines the color of the arrow elements of a scroll arrow.\",restrictions:[\"color\"]},{name:\"scrollbar-base-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color\"}],description:\"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",restrictions:[\"color\"]},{name:\"scrollbar-darkshadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color\"}],description:\"Determines the color of the gutter of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-face-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color\"}],description:\"Determines the color of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-highlight-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color\"}],description:\"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-shadow-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color\"}],description:\"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",restrictions:[\"color\"]},{name:\"scrollbar-track-color\",browsers:[\"IE5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-track-color\"}],description:\"Determines the color of the track element of a scroll bar.\",restrictions:[\"color\"]},{name:\"suffix\",browsers:[\"FF33\"],syntax:\"<symbol>\",description:\"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"system\",browsers:[\"FF33\"],values:[{name:\"additive\",description:\"Represents “sign-value” numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together.\"},{name:\"alphabetic\",description:'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\".'},{name:\"cyclic\",description:\"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list.\"},{name:\"extends\",description:\"Use the algorithm of another counter style, but alter other aspects.\"},{name:\"fixed\",description:\"Runs through its list of counter symbols once, then falls back.\"},{name:\"numeric\",description:\"interprets the list of counter symbols as digits to a \\\"place-value\\\" numbering system, similar to the default 'decimal' counter style.\"},{name:\"symbolic\",description:\"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list.\"}],syntax:\"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]\",description:\"@counter-style descriptor. Specifies which algorithm will be used to construct the counter’s representation based on the counter value.\",restrictions:[\"enum\",\"integer\"]},{name:\"symbols\",browsers:[\"FF33\"],syntax:\"<symbol>+\",description:\"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.\",restrictions:[\"image\",\"string\",\"identifier\"]},{name:\"-webkit-animation\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"infinite\",description:\"Causes the animation to repeat forever.\"},{name:\"none\",description:\"No animation is performed\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Shorthand property combines six of the animation properties into a single property.\",restrictions:[\"time\",\"enum\",\"timing-function\",\"identifier\",\"number\"]},{name:\"-webkit-animation-delay\",browsers:[\"C\",\"S5\"],description:\"Defines when the animation will start.\",restrictions:[\"time\"]},{name:\"-webkit-animation-direction\",browsers:[\"C\",\"S5\"],values:[{name:\"alternate\",description:\"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"},{name:\"alternate-reverse\",description:\"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"},{name:\"normal\",description:\"Normal playback.\"},{name:\"reverse\",description:\"All iterations of the animation are played in the reverse direction from the way they were specified.\"}],description:\"Defines whether or not the animation should play in reverse on alternate cycles.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-duration\",browsers:[\"C\",\"S5\"],description:\"Defines the length of time that an animation takes to complete one cycle.\",restrictions:[\"time\"]},{name:\"-webkit-animation-fill-mode\",browsers:[\"C\",\"S5\"],values:[{name:\"backwards\",description:\"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"},{name:\"both\",description:\"Both forwards and backwards fill modes are applied.\"},{name:\"forwards\",description:\"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"},{name:\"none\",description:\"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"}],description:\"Defines what values are applied by the animation outside the time it is executing.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-iteration-count\",browsers:[\"C\",\"S5\"],values:[{name:\"infinite\",description:\"Causes the animation to repeat forever.\"}],description:\"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",restrictions:[\"number\",\"enum\"]},{name:\"-webkit-animation-name\",browsers:[\"C\",\"S5\"],values:[{name:\"none\",description:\"No animation is performed\"}],description:\"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",restrictions:[\"identifier\",\"enum\"]},{name:\"-webkit-animation-play-state\",browsers:[\"C\",\"S5\"],values:[{name:\"paused\",description:\"A running animation will be paused.\"},{name:\"running\",description:\"Resume playback of a paused animation.\"}],description:\"Defines whether the animation is running or paused.\",restrictions:[\"enum\"]},{name:\"-webkit-animation-timing-function\",browsers:[\"C\",\"S5\"],description:\"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",restrictions:[\"timing-function\"]},{name:\"-webkit-appearance\",browsers:[\"C\",\"S3\"],values:[{name:\"button\"},{name:\"button-bevel\"},{name:\"caps-lock-indicator\"},{name:\"caret\"},{name:\"checkbox\"},{name:\"default-button\"},{name:\"listbox\"},{name:\"listitem\"},{name:\"media-fullscreen-button\"},{name:\"media-mute-button\"},{name:\"media-play-button\"},{name:\"media-seek-back-button\"},{name:\"media-seek-forward-button\"},{name:\"media-slider\"},{name:\"media-sliderthumb\"},{name:\"menulist\"},{name:\"menulist-button\"},{name:\"menulist-text\"},{name:\"menulist-textfield\"},{name:\"none\"},{name:\"push-button\"},{name:\"radio\"},{name:\"scrollbarbutton-down\"},{name:\"scrollbarbutton-left\"},{name:\"scrollbarbutton-right\"},{name:\"scrollbarbutton-up\"},{name:\"scrollbargripper-horizontal\"},{name:\"scrollbargripper-vertical\"},{name:\"scrollbarthumb-horizontal\"},{name:\"scrollbarthumb-vertical\"},{name:\"scrollbartrack-horizontal\"},{name:\"scrollbartrack-vertical\"},{name:\"searchfield\"},{name:\"searchfield-cancel-button\"},{name:\"searchfield-decoration\"},{name:\"searchfield-results-button\"},{name:\"searchfield-results-decoration\"},{name:\"slider-horizontal\"},{name:\"sliderthumb-horizontal\"},{name:\"sliderthumb-vertical\"},{name:\"slider-vertical\"},{name:\"square-button\"},{name:\"textarea\"},{name:\"textfield\"}],status:\"nonstandard\",syntax:\"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\",description:\"Changes the appearance of buttons and other controls to resemble native controls.\",restrictions:[\"enum\"]},{name:\"-webkit-backdrop-filter\",browsers:[\"S9\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Applies a filter effect where the first filter in the list takes the element's background image as the input image.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-backface-visibility\",browsers:[\"C\",\"S5\"],values:[{name:\"hidden\"},{name:\"visible\"}],description:\"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",restrictions:[\"enum\"]},{name:\"-webkit-background-clip\",browsers:[\"C\",\"S3\"],description:\"Determines the background painting area.\",restrictions:[\"box\"]},{name:\"-webkit-background-composite\",browsers:[\"C\",\"S3\"],values:[{name:\"border\"},{name:\"padding\"}],restrictions:[\"enum\"]},{name:\"-webkit-background-origin\",browsers:[\"C\",\"S3\"],description:\"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",restrictions:[\"box\"]},{name:\"-webkit-border-image\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\",description:\"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"},{name:\"fill\",description:\"Causes the middle part of the border-image to be preserved.\"},{name:\"none\"},{name:\"repeat\",description:\"The image is tiled (repeated) to fill the area.\"},{name:\"round\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"},{name:\"space\",description:\"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"},{name:\"stretch\",description:\"The image is stretched to fill the area.\"},{name:\"url()\"}],description:\"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",restrictions:[\"length\",\"percentage\",\"number\",\"url\",\"enum\"]},{name:\"-webkit-box-align\",browsers:[\"C\",\"S3\"],values:[{name:\"baseline\",description:\"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"},{name:\"center\",description:\"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"},{name:\"end\",description:\"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"},{name:\"start\",description:\"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"},{name:\"stretch\",description:\"The height of each child is adjusted to that of the containing block.\"}],description:\"Specifies the alignment of nested elements within an outer flexible box element.\",restrictions:[\"enum\"]},{name:\"-webkit-box-direction\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"},{name:\"reverse\",description:\"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"}],description:\"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",restrictions:[\"enum\"]},{name:\"-webkit-box-flex\",browsers:[\"C\",\"S3\"],description:\"Specifies an element's flexibility.\",restrictions:[\"number\"]},{name:\"-webkit-box-flex-group\",browsers:[\"C\",\"S3\"],description:\"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",restrictions:[\"integer\"]},{name:\"-webkit-box-ordinal-group\",browsers:[\"C\",\"S3\"],description:\"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",restrictions:[\"integer\"]},{name:\"-webkit-box-orient\",browsers:[\"C\",\"S3\"],values:[{name:\"block-axis\",description:\"Elements are oriented along the box's axis.\"},{name:\"horizontal\",description:\"The box displays its children from left to right in a horizontal line.\"},{name:\"inline-axis\",description:\"Elements are oriented vertically.\"},{name:\"vertical\",description:\"The box displays its children from stacked from top to bottom vertically.\"}],description:\"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.\",restrictions:[\"enum\"]},{name:\"-webkit-box-pack\",browsers:[\"C\",\"S3\"],values:[{name:\"center\",description:\"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"},{name:\"end\",description:\"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"},{name:\"justify\",description:\"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"},{name:\"start\",description:\"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"}],description:\"Specifies alignment of child elements within the current element in the direction of orientation.\",restrictions:[\"enum\"]},{name:\"-webkit-box-reflect\",browsers:[\"S4\",\"C4\",\"O15\"],values:[{name:\"above\",description:\"The reflection appears above the border box.\"},{name:\"below\",description:\"The reflection appears below the border box.\"},{name:\"left\",description:\"The reflection appears to the left of the border box.\"},{name:\"right\",description:\"The reflection appears to the right of the border box.\"}],status:\"nonstandard\",syntax:\"[ above | below | right | left ]? <length>? <image>?\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect\"}],description:\"Defines a reflection of a border box.\"},{name:\"-webkit-box-sizing\",browsers:[\"C\",\"S3\"],values:[{name:\"border-box\",description:\"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"},{name:\"content-box\",description:\"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"}],description:\"Box Model addition in CSS3.\",restrictions:[\"enum\"]},{name:\"-webkit-break-after\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-before\",browsers:[\"S7\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-break-inside\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-after\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-before\",browsers:[\"C\",\"S3\"],values:[{name:\"always\",description:\"Always force a page break before/after the generated box.\"},{name:\"auto\",description:\"Neither force nor forbid a page/column break before/after the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break before/after the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break before/after the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break before/after the generated box.\"},{name:\"avoid-region\"},{name:\"column\",description:\"Always force a column break before/after the generated box.\"},{name:\"left\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"},{name:\"page\",description:\"Always force a page break before/after the generated box.\"},{name:\"region\"},{name:\"right\",description:\"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"}],description:\"Describes the page/column break behavior before the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-break-inside\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Neither force nor forbid a page/column break inside the generated box.\"},{name:\"avoid\",description:\"Avoid a page/column break inside the generated box.\"},{name:\"avoid-column\",description:\"Avoid a column break inside the generated box.\"},{name:\"avoid-page\",description:\"Avoid a page break inside the generated box.\"},{name:\"avoid-region\"}],description:\"Describes the page/column break behavior inside the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-count\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"Determines the number of columns by the 'column-width' property and the element width.\"}],description:\"Describes the optimal number of columns into which the content of the element will be flowed.\",restrictions:[\"integer\"]},{name:\"-webkit-column-gap\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\",description:\"User agent specific and typically equivalent to 1em.\"}],description:\"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",restrictions:[\"length\"]},{name:\"-webkit-column-rule\",browsers:[\"C\",\"S3\"],description:\"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",restrictions:[\"length\",\"line-width\",\"line-style\",\"color\"]},{name:\"-webkit-column-rule-color\",browsers:[\"C\",\"S3\"],description:\"Sets the color of the column rule\",restrictions:[\"color\"]},{name:\"-webkit-column-rule-style\",browsers:[\"C\",\"S3\"],description:\"Sets the style of the rule between columns of an element.\",restrictions:[\"line-style\"]},{name:\"-webkit-column-rule-width\",browsers:[\"C\",\"S3\"],description:\"Sets the width of the rule between columns. Negative values are not allowed.\",restrictions:[\"length\",\"line-width\"]},{name:\"-webkit-columns\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"A shorthand property which sets both 'column-width' and 'column-count'.\",restrictions:[\"length\",\"integer\"]},{name:\"-webkit-column-span\",browsers:[\"C\",\"S3\"],values:[{name:\"all\",description:\"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"},{name:\"none\",description:\"The element does not span multiple columns.\"}],description:\"Describes the page/column break behavior after the generated box.\",restrictions:[\"enum\"]},{name:\"-webkit-column-width\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\",description:\"The width depends on the values of other properties.\"}],description:\"This property describes the width of columns in multicol elements.\",restrictions:[\"length\"]},{name:\"-webkit-filter\",browsers:[\"C18\",\"O15\",\"S6\"],values:[{name:\"none\",description:\"No filter effects are applied.\"},{name:\"blur()\",description:\"Applies a Gaussian blur to the input image.\"},{name:\"brightness()\",description:\"Applies a linear multiplier to input image, making it appear more or less bright.\"},{name:\"contrast()\",description:\"Adjusts the contrast of the input.\"},{name:\"drop-shadow()\",description:\"Applies a drop shadow effect to the input image.\"},{name:\"grayscale()\",description:\"Converts the input image to grayscale.\"},{name:\"hue-rotate()\",description:\"Applies a hue rotation on the input image. \"},{name:\"invert()\",description:\"Inverts the samples in the input image.\"},{name:\"opacity()\",description:\"Applies transparency to the samples in the input image.\"},{name:\"saturate()\",description:\"Saturates the input image.\"},{name:\"sepia()\",description:\"Converts the input image to sepia.\"},{name:\"url()\",description:\"A filter reference to a <filter> element.\"}],description:\"Processes an element’s rendering before it is displayed in the document, by applying one or more filter effects.\",restrictions:[\"enum\",\"url\"]},{name:\"-webkit-flow-from\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The block container is not a CSS Region.\"}],description:\"Makes a block container a region and associates it with a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-flow-into\",browsers:[\"S6.1\"],values:[{name:\"none\",description:\"The element is not moved to a named flow and normal CSS processing takes place.\"}],description:\"Places an element or its contents into a named flow.\",restrictions:[\"identifier\"]},{name:\"-webkit-font-feature-settings\",browsers:[\"C16\"],values:[{name:'\"c2cs\"'},{name:'\"dlig\"'},{name:'\"kern\"'},{name:'\"liga\"'},{name:'\"lnum\"'},{name:'\"onum\"'},{name:'\"smcp\"'},{name:'\"swsh\"'},{name:'\"tnum\"'},{name:\"normal\",description:\"No change in glyph substitution or positioning occurs.\"},{name:\"off\"},{name:\"on\"}],description:\"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",restrictions:[\"string\",\"integer\"]},{name:\"-webkit-hyphens\",browsers:[\"S5.1\"],values:[{name:\"auto\",description:\"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"},{name:\"manual\",description:\"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"},{name:\"none\",description:\"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"}],description:\"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",restrictions:[\"enum\"]},{name:\"-webkit-line-break\",browsers:[\"C\",\"S3\"],values:[{name:\"after-white-space\"},{name:\"normal\"}],description:\"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.\"},{name:\"-webkit-margin-bottom-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-margin-start\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"}],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-margin-top-collapse\",browsers:[\"C\",\"S3\"],values:[{name:\"collapse\"},{name:\"discard\"},{name:\"separate\"}],restrictions:[\"enum\"]},{name:\"-webkit-mask-clip\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content | text ]#\",description:\"Determines the mask painting area, which determines the area that is affected by the mask.\",restrictions:[\"box\"]},{name:\"-webkit-mask-image\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"none\",description:\"Counts as a transparent black image layer.\"},{name:\"url()\",description:\"Reference to a <mask element or to a CSS image.\"}],status:\"nonstandard\",syntax:\"<mask-reference>#\",description:\"Sets the mask layer image of an element.\",restrictions:[\"url\",\"image\",\"enum\"]},{name:\"-webkit-mask-origin\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"[ <box> | border | padding | content ]#\",description:\"Specifies the mask positioning area.\",restrictions:[\"box\"]},{name:\"-webkit-mask-repeat\",browsers:[\"C\",\"O15\",\"S4\"],status:\"nonstandard\",syntax:\"<repeat-style>#\",description:\"Specifies how mask layer images are tiled after they have been sized and positioned.\",restrictions:[\"repeat\"]},{name:\"-webkit-mask-size\",browsers:[\"C\",\"O15\",\"S4\"],values:[{name:\"auto\",description:\"Resolved by using the image’s intrinsic ratio and the size of the other dimension, or failing that, using the image’s intrinsic size, or failing that, treating it as 100%.\"},{name:\"contain\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"},{name:\"cover\",description:\"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"}],status:\"nonstandard\",syntax:\"<bg-size>#\",description:\"Specifies the size of the mask layer images.\",restrictions:[\"length\",\"percentage\",\"enum\"]},{name:\"-webkit-nbsp-mode\",browsers:[\"C\",\"S3\"],values:[{name:\"normal\"},{name:\"space\"}],description:\"Defines the behavior of nonbreaking spaces within text.\"},{name:\"-webkit-overflow-scrolling\",browsers:[\"C\",\"S5\"],values:[{name:\"auto\"},{name:\"touch\"}],status:\"nonstandard\",syntax:\"auto | touch\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling\"}],description:\"Specifies whether to use native-style scrolling in an overflow:scroll element.\"},{name:\"-webkit-padding-start\",browsers:[\"C\",\"S3\"],restrictions:[\"percentage\",\"length\"]},{name:\"-webkit-perspective\",browsers:[\"C\",\"S4\"],values:[{name:\"none\",description:\"No perspective transform is applied.\"}],description:\"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",restrictions:[\"length\"]},{name:\"-webkit-perspective-origin\",browsers:[\"C\",\"S4\"],description:\"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",restrictions:[\"position\",\"percentage\",\"length\"]},{name:\"-webkit-region-fragment\",browsers:[\"S7\"],values:[{name:\"auto\",description:\"Content flows as it would in a regular content box.\"},{name:\"break\",description:\"If the content fits within the CSS Region, then this property has no effect.\"}],description:\"The 'region-fragment' property controls the behavior of the last region associated with a named flow.\",restrictions:[\"enum\"]},{name:\"-webkit-tap-highlight-color\",browsers:[\"E\",\"C\",\"S3.1\"],status:\"nonstandard\",syntax:\"<color>\",restrictions:[\"color\"]},{name:\"-webkit-text-fill-color\",browsers:[\"E12\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-size-adjust\",browsers:[\"E\",\"C\",\"S3\"],values:[{name:\"auto\",description:\"Renderers must use the default size adjustment when displaying on a small device.\"},{name:\"none\",description:\"Renderers must not do size adjustment when displaying on a small device.\"}],description:\"Specifies a size adjustment for displaying text content in mobile browsers.\",restrictions:[\"percentage\"]},{name:\"-webkit-text-stroke\",browsers:[\"E15\",\"FF49\",\"S3\",\"C4\",\"O15\"],status:\"nonstandard\",syntax:\"<length> || <color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke\"}],restrictions:[\"length\",\"line-width\",\"color\",\"percentage\"]},{name:\"-webkit-text-stroke-color\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<color>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color\"}],restrictions:[\"color\"]},{name:\"-webkit-text-stroke-width\",browsers:[\"E15\",\"FF49\",\"S3\",\"C1\",\"O15\"],status:\"nonstandard\",syntax:\"<length>\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width\"}],restrictions:[\"length\",\"line-width\",\"percentage\"]},{name:\"-webkit-touch-callout\",browsers:[\"S3\"],values:[{name:\"none\"}],status:\"nonstandard\",syntax:\"default | none\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout\"}],restrictions:[\"enum\"]},{name:\"-webkit-transform\",browsers:[\"C\",\"O12\",\"S3.1\"],values:[{name:\"matrix()\",description:\"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"},{name:\"matrix3d()\",description:\"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"},{name:\"none\"},{name:\"perspective()\",description:\"Specifies a perspective projection matrix.\"},{name:\"rotate()\",description:\"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"},{name:\"rotate3d()\",description:\"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"},{name:\"rotateX('angle')\",description:\"Specifies a clockwise rotation by the given angle about the X axis.\"},{name:\"rotateY('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Y axis.\"},{name:\"rotateZ('angle')\",description:\"Specifies a clockwise rotation by the given angle about the Z axis.\"},{name:\"scale()\",description:\"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"},{name:\"scale3d()\",description:\"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"},{name:\"scaleX()\",description:\"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"},{name:\"scaleY()\",description:\"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"},{name:\"scaleZ()\",description:\"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"},{name:\"skew()\",description:\"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"},{name:\"skewX()\",description:\"Specifies a skew transformation along the X axis by the given angle.\"},{name:\"skewY()\",description:\"Specifies a skew transformation along the Y axis by the given angle.\"},{name:\"translate()\",description:\"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"},{name:\"translate3d()\",description:\"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"},{name:\"translateX()\",description:\"Specifies a translation by the given amount in the X direction.\"},{name:\"translateY()\",description:\"Specifies a translation by the given amount in the Y direction.\"},{name:\"translateZ()\",description:\"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"}],description:\"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",restrictions:[\"enum\"]},{name:\"-webkit-transform-origin\",browsers:[\"C\",\"O15\",\"S3.1\"],description:\"Establishes the origin of transformation for an element.\",restrictions:[\"position\",\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-x\",browsers:[\"C\",\"S3.1\"],description:\"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-y\",browsers:[\"C\",\"S3.1\"],description:\"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-origin-z\",browsers:[\"C\",\"S4\"],description:\"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",restrictions:[\"length\",\"percentage\"]},{name:\"-webkit-transform-style\",browsers:[\"C\",\"S4\"],values:[{name:\"flat\",description:\"All children of this element are rendered flattened into the 2D plane of the element.\"}],description:\"Defines how nested elements are rendered in 3D space.\",restrictions:[\"enum\"]},{name:\"-webkit-transition\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Shorthand property combines four of the transition properties into a single property.\",restrictions:[\"time\",\"property\",\"timing-function\",\"enum\"]},{name:\"-webkit-transition-delay\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",restrictions:[\"time\"]},{name:\"-webkit-transition-duration\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Specifies how long the transition from the old value to the new value should take.\",restrictions:[\"time\"]},{name:\"-webkit-transition-property\",browsers:[\"C\",\"O12\",\"S5\"],values:[{name:\"all\",description:\"Every property that is able to undergo a transition will do so.\"},{name:\"none\",description:\"No property will transition.\"}],description:\"Specifies the name of the CSS property to which the transition is applied.\",restrictions:[\"property\"]},{name:\"-webkit-transition-timing-function\",browsers:[\"C\",\"O12\",\"S5\"],description:\"Describes how the intermediate values used during a transition will be calculated.\",restrictions:[\"timing-function\"]},{name:\"-webkit-user-drag\",browsers:[\"S3\"],values:[{name:\"auto\"},{name:\"element\"},{name:\"none\"}],restrictions:[\"enum\"]},{name:\"-webkit-user-modify\",browsers:[\"C\",\"S3\"],values:[{name:\"read-only\"},{name:\"read-write\"},{name:\"read-write-plaintext-only\"}],status:\"nonstandard\",syntax:\"read-only | read-write | read-write-plaintext-only\",description:\"Determines whether a user can edit the content of an element.\",restrictions:[\"enum\"]},{name:\"-webkit-user-select\",browsers:[\"C\",\"S3\"],values:[{name:\"auto\"},{name:\"none\"},{name:\"text\"}],description:\"Controls the appearance of selection.\",restrictions:[\"enum\"]},{name:\"-ms-ime-align\",status:\"nonstandard\",syntax:\"auto | after\",description:\"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active.\"},{name:\"-moz-binding\",status:\"nonstandard\",syntax:\"<url> | none\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-binding\"}],description:\"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element.\"},{name:\"-moz-context-properties\",status:\"nonstandard\",syntax:\"none | [ fill | fill-opacity | stroke | stroke-opacity ]#\",browsers:[\"FF55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties\"}],description:\"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\\n\\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.\"},{name:\"-moz-float-edge\",status:\"nonstandard\",syntax:\"border-box | content-box | margin-box | padding-box\",description:\"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.\"},{name:\"-moz-force-broken-image-icon\",status:\"nonstandard\",syntax:\"<integer>\",description:\"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.\"},{name:\"-moz-image-region\",status:\"nonstandard\",syntax:\"<shape> | auto\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region\"}],description:\"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\"},{name:\"-moz-orient\",status:\"nonstandard\",syntax:\"inline | block | horizontal | vertical\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-orient\"}],description:\"The -moz-orient CSS property specifies the orientation of the element to which it's applied.\"},{name:\"-moz-outline-radius\",status:\"nonstandard\",syntax:\"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?\",browsers:[\"FF1.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius\"}],description:\"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners.\"},{name:\"-moz-outline-radius-bottomleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline.\"},{name:\"-moz-outline-radius-bottomright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline.\"},{name:\"-moz-outline-radius-topleft\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline.\"},{name:\"-moz-outline-radius-topright\",status:\"nonstandard\",syntax:\"<outline-radius>\",description:\"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline.\"},{name:\"-moz-stack-sizing\",status:\"nonstandard\",syntax:\"ignore | stretch-to-fit\",description:\"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible.\"},{name:\"-moz-text-blink\",status:\"nonstandard\",syntax:\"none | blink\",browsers:[\"FF6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink\"}],description:\"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode.\"},{name:\"-moz-user-input\",status:\"nonstandard\",syntax:\"auto | none | enabled | disabled\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input\"}],description:\"In Mozilla applications, -moz-user-input determines if an element will accept user input.\"},{name:\"-moz-user-modify\",status:\"nonstandard\",syntax:\"read-only | read-write | write-only\",description:\"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user.\"},{name:\"-moz-window-dragging\",status:\"nonstandard\",syntax:\"drag | no-drag\",description:\"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X.\"},{name:\"-moz-window-shadow\",status:\"nonstandard\",syntax:\"default | menu | tooltip | sheet | none\",browsers:[\"FF3.5\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow\"}],description:\"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X.\"},{name:\"-webkit-border-before\",status:\"nonstandard\",syntax:\"<'border-width'> || <'border-style'> || <'color'>\",browsers:[\"S5.1\",\"C8\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before\"}],description:\"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.\"},{name:\"-webkit-border-before-color\",status:\"nonstandard\",syntax:\"<'color'>\",description:\"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-style\",status:\"nonstandard\",syntax:\"<'border-style'>\",description:\"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-border-before-width\",status:\"nonstandard\",syntax:\"<'border-width'>\",description:\"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet.\"},{name:\"-webkit-line-clamp\",syntax:\"none | <integer>\",browsers:[\"E17\",\"FF68\",\"S5\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp\"}],description:\"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines.\"},{name:\"-webkit-mask\",status:\"nonstandard\",syntax:\"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#\",description:\"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"},{name:\"-webkit-mask-attachment\",status:\"nonstandard\",syntax:\"<attachment>#\",browsers:[\"S4\",\"C1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment\"}],description:\"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block.\"},{name:\"-webkit-mask-composite\",status:\"nonstandard\",syntax:\"<composite-style>#\",browsers:[\"E18\",\"FF53\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite\"}],description:\"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\"},{name:\"-webkit-mask-position\",status:\"nonstandard\",syntax:\"<position>#\",description:\"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image.\"},{name:\"-webkit-mask-position-x\",status:\"nonstandard\",syntax:\"[ <length-percentage> | left | center | right ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x\"}],description:\"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.\"},{name:\"-webkit-mask-position-y\",status:\"nonstandard\",syntax:\"[ <length-percentage> | top | center | bottom ]#\",browsers:[\"E18\",\"FF49\",\"S3.2\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y\"}],description:\"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.\"},{name:\"-webkit-mask-repeat-x\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x\"}],description:\"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.\"},{name:\"-webkit-mask-repeat-y\",status:\"nonstandard\",syntax:\"repeat | no-repeat | space | round\",browsers:[\"E18\",\"S5\",\"C3\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y\"}],description:\"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically.\"},{name:\"appearance\",status:\"experimental\",syntax:\"none | auto | button | textfield | <compat>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/appearance\"}],description:\"Changes the appearance of buttons and other controls to resemble native controls.\"},{name:\"aspect-ratio\",status:\"experimental\",syntax:\"auto | <ratio>\",description:\"\"},{name:\"azimuth\",status:\"obsolete\",syntax:\"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/azimuth\"}],description:\"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage.\"},{name:\"border-end-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius\"}],description:\"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-end-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius\"}],description:\"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-end-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius\"}],description:\"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"},{name:\"border-start-start-radius\",syntax:\"<length-percentage>{1,2}\",browsers:[\"FF66\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius\"}],description:\"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation.\"},{name:\"box-align\",status:\"nonstandard\",syntax:\"start | center | end | baseline | stretch\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-align\"}],description:\"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\"},{name:\"box-direction\",status:\"nonstandard\",syntax:\"normal | reverse | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-direction\"}],description:\"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\"},{name:\"box-flex\",status:\"nonstandard\",syntax:\"<number>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex\"}],description:\"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.\"},{name:\"box-flex-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-flex-group\"}],description:\"The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\"},{name:\"box-lines\",status:\"nonstandard\",syntax:\"single | multiple\",browsers:[\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-lines\"}],description:\"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\"},{name:\"box-ordinal-group\",status:\"nonstandard\",syntax:\"<integer>\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group\"}],description:\"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\"},{name:\"box-orient\",status:\"nonstandard\",syntax:\"horizontal | vertical | inline-axis | block-axis | inherit\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-orient\"}],description:\"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.\"},{name:\"box-pack\",status:\"nonstandard\",syntax:\"start | center | end | justify\",browsers:[\"E12\",\"FF1\",\"S3\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/box-pack\"}],description:\"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\"},{name:\"color-adjust\",syntax:\"economy | exact\",browsers:[\"FF48\",\"S6\",\"C49\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/color-adjust\"}],description:\"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images in browsers based on the WebKit engine.\"},{name:\"counter-set\",syntax:\"[ <custom-ident> <integer>? ]+ | none\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/counter-set\"}],description:\"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element.\"},{name:\"hanging-punctuation\",syntax:\"none | [ first || [ force-end | allow-end ] || last ]\",browsers:[\"S10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation\"}],description:\"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.\"},{name:\"initial-letter\",status:\"experimental\",syntax:\"normal | [ <number> <integer>? ]\",browsers:[\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter\"}],description:\"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters.\"},{name:\"initial-letter-align\",status:\"experimental\",syntax:\"[ auto | alphabetic | hanging | ideographic ]\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align\"}],description:\"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph.\"},{name:\"line-clamp\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content.\"},{name:\"line-height-step\",status:\"experimental\",syntax:\"<length>\",browsers:[\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/line-height-step\"}],description:\"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid.\"},{name:\"mask-border\",status:\"experimental\",syntax:\"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>\",description:\"The mask-border CSS property lets you create a mask along the edge of an element's border.\\n\\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.\"},{name:\"mask-border-mode\",status:\"experimental\",syntax:\"luminance | alpha\",description:\"The mask-border-mode CSS property specifies the blending mode used in a mask border.\"},{name:\"mask-border-outset\",status:\"experimental\",syntax:\"[ <length> | <number> ]{1,4}\",description:\"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box.\"},{name:\"mask-border-repeat\",status:\"experimental\",syntax:\"[ stretch | repeat | round | space ]{1,2}\",description:\"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border.\"},{name:\"mask-border-slice\",status:\"experimental\",syntax:\"<number-percentage>{1,4} fill?\",description:\"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.\"},{name:\"mask-border-source\",status:\"experimental\",syntax:\"none | <image>\",description:\"The mask-border-source CSS property specifies the source image used to create an element's mask border.\\n\\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.\"},{name:\"mask-border-width\",status:\"experimental\",syntax:\"[ <length-percentage> | <number> | auto ]{1,4}\",description:\"The mask-border-width CSS property specifies the width of an element's mask border.\"},{name:\"mask-clip\",syntax:\"[ <geometry-box> | no-clip ]#\",browsers:[\"FF53\",\"S4\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-clip\"}],description:\"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area.\"},{name:\"mask-composite\",syntax:\"<compositing-operator>#\",browsers:[\"E18\",\"FF53\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/mask-composite\"}],description:\"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.\"},{name:\"max-lines\",status:\"experimental\",syntax:\"none | <integer>\",description:\"The max-liens property forces a break after a set number of lines\"},{name:\"overflow-block\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-block\"}],description:\"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis.\"},{name:\"overflow-clip-box\",status:\"nonstandard\",syntax:\"padding-box | content-box\",browsers:[\"FF29\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Mozilla/CSS/overflow-clip-box\"}],description:\"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties.\"},{name:\"overflow-inline\",status:\"experimental\",syntax:\"visible | hidden | clip | scroll | auto\",browsers:[\"FF69\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overflow-inline\"}],description:\"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis.\"},{name:\"overscroll-behavior\",status:\"nonstandard\",syntax:\"[ contain | none | auto ]{1,2}\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior\"}],description:\"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached.\"},{name:\"overscroll-behavior-x\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x\"}],description:\"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the x axis direction.\"},{name:\"overscroll-behavior-y\",status:\"nonstandard\",syntax:\"contain | none | auto\",browsers:[\"E18\",\"FF59\",\"C63\",\"O50\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y\"}],description:\"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior — what happens when the boundary of a scrolling area is reached — in the y axis direction.\"},{name:\"ruby-merge\",status:\"experimental\",syntax:\"separate | collapse | auto\",description:\"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available.\"},{name:\"scrollbar-color\",syntax:\"auto | dark | light | <color>{2}\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color\"}],description:\"The scrollbar-color CSS property sets the color of the scrollbar track and thumb.\"},{name:\"scrollbar-width\",syntax:\"auto | thin | none\",browsers:[\"FF64\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width\"}],description:\"The scrollbar-width property allows the author to set the maximum thickness of an element’s scrollbars when they are shown. \"},{name:\"scroll-margin\",syntax:\"<length>{1,4}\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin\"}],description:\"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands.\"},{name:\"scroll-margin-block\",syntax:\"<length>{1,2}\",browsers:[\"FF68\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block\"}],description:\"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension.\"},{name:\"scroll-margin-block-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start\"}],description:\"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-block-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end\"}],description:\"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-bottom\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom\"}],description:\"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline\",syntax:\"<length>{1,2}\",browsers:[\"FF68\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline\"}],description:\"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension.\"},{name:\"scroll-margin-inline-start\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start\"}],description:\"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-inline-end\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end\"}],description:\"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-left\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left\"}],description:\"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-right\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right\"}],description:\"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-margin-top\",syntax:\"<length>\",browsers:[\"FF68\",\"S11\",\"C69\",\"O56\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top\"}],description:\"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container’s coordinate space), then adding the specified outsets.\"},{name:\"scroll-snap-type-x\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\",\"S9\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x\"}],description:\"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"scroll-snap-type-y\",status:\"obsolete\",syntax:\"none | mandatory | proximity\",browsers:[\"FF39\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y\"}],description:\"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"},{name:\"text-decoration-thickness\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness\"}],description:\"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline.\"},{name:\"text-emphasis\",syntax:\"<'text-emphasis-style'> || <'text-emphasis-color'>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis\"}],description:\"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces,  and control characters.\"},{name:\"text-emphasis-color\",syntax:\"<color>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color\"}],description:\"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand.\"},{name:\"text-emphasis-position\",syntax:\"[ over | under ] && [ right | left ]\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position\"}],description:\"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased.\"},{name:\"text-emphasis-style\",syntax:\"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>\",browsers:[\"FF46\",\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style\"}],description:\"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand.\"},{name:\"text-underline-offset\",syntax:\"auto | from-font | <length>\",browsers:[\"FF70\",\"S12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset\"}],description:\"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.\"},{name:\"speak-as\",syntax:\"auto | bullets | numbers | words | spell-out | <counter-style-name>\",description:\"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue.\"},{name:\"bleed\",status:\"experimental\",syntax:\"auto | <length>\",description:\"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property.\"},{name:\"marks\",status:\"experimental\",syntax:\"none | [ crop || cross ]\",description:\"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets.\"}],atDirectives:[{name:\"@charset\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@charset\"}],description:\"Defines character set of the document.\"},{name:\"@counter-style\",browsers:[\"FF33\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@counter-style\"}],description:\"Defines a custom counter style.\"},{name:\"@font-face\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-face\"}],description:\"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment.\"},{name:\"@font-feature-values\",browsers:[\"FF34\",\"S9.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values\"}],description:\"Defines named values for the indices used to select alternate glyphs for a given font family.\"},{name:\"@import\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@import\"}],description:\"Includes content of another file.\"},{name:\"@keyframes\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@keyframes\"}],description:\"Defines set of animation key frames.\"},{name:\"@media\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@media\"}],description:\"Defines a stylesheet for a particular media type.\"},{name:\"@-moz-document\",browsers:[\"FF1.8\"],description:\"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document.\"},{name:\"@-moz-keyframes\",browsers:[\"FF5\"],description:\"Defines set of animation key frames.\"},{name:\"@-ms-viewport\",browsers:[\"E\",\"IE10\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@namespace\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@namespace\"}],description:\"Declares a prefix and associates it with a namespace name.\"},{name:\"@-o-keyframes\",browsers:[\"O12\"],description:\"Defines set of animation key frames.\"},{name:\"@-o-viewport\",browsers:[\"O11\"],description:\"Specifies the size, zoom factor, and orientation of the viewport.\"},{name:\"@page\",browsers:[\"E12\",\"FF19\",\"C2\",\"IE8\",\"O6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@page\"}],description:\"Directive defines various page parameters.\"},{name:\"@supports\",browsers:[\"E12\",\"FF22\",\"S9\",\"C28\",\"O12.1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/@supports\"}],description:\"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.\"},{name:\"@-webkit-keyframes\",browsers:[\"C\",\"S4\"],description:\"Defines set of animation key frames.\"}],pseudoClasses:[{name:\":active\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:active\"}],description:\"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.\"},{name:\":any-link\",browsers:[\"FF50\",\"S9\",\"C65\",\"O52\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:any-link\"}],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":checked\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:checked\"}],description:\"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies.\"},{name:\":corner-present\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Indicates whether or not a scrollbar corner is present.\"},{name:\":decrement\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view’s position when used.\"},{name:\":default\",browsers:[\"FF4\",\"S5\",\"C10\",\"O10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:default\"}],description:\"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus.\"},{name:\":disabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:disabled\"}],description:\"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state.\"},{name:\":double-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar.\"},{name:\":empty\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:empty\"}],description:\"Represents an element that has no children at all.\"},{name:\":enabled\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:enabled\"}],description:\"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state.\"},{name:\":end\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb.\"},{name:\":first\",browsers:[\"E12\",\"S6\",\"C18\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":first-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-child\"}],description:\"Same as :nth-child(1). Represents an element that is the first child of some other element.\"},{name:\":first-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:first-of-type\"}],description:\"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element.\"},{name:\":focus\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus\"}],description:\"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input).\"},{name:\":fullscreen\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:fullscreen\"}],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":future\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely after a :current element.\"},{name:\":horizontal\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation.\"},{name:\":host\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:host\"}],description:\"When evaluated in the context of a shadow tree, matches the shadow tree’s host element.\"},{name:\":host()\",browsers:[\"C35\",\"O22\"],description:\"When evaluated in the context of a shadow tree, it matches the shadow tree’s host element if the host element, in its normal context, matches the selector argument.\"},{name:\":host-context()\",browsers:[\"C35\",\"O22\"],description:\"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector.\"},{name:\":hover\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:hover\"}],description:\"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element.\"},{name:\":increment\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view’s position when used.\"},{name:\":indeterminate\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:indeterminate\"}],description:\"Applies to UI elements whose value is in an indeterminate state.\"},{name:\":in-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:in-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":invalid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:invalid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":lang()\",browsers:[\"E\",\"C\",\"FF1\",\"IE8\",\"O8\",\"S3\"],description:\"Represents an element that is in language specified.\"},{name:\":last-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-child\"}],description:\"Same as :nth-last-child(1). Represents an element that is the last child of some other element.\"},{name:\":last-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:last-of-type\"}],description:\"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element.\"},{name:\":left\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:left\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":link\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:link\"}],description:\"Applies to links that have not yet been visited.\"},{name:\":matches()\",browsers:[\"S9\"],description:\"Takes a selector list as its argument. It represents an element that is represented by its argument.\"},{name:\":-moz-any()\",browsers:[\"FF4\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-moz-any-link\",browsers:[\"FF1\"],description:\"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"},{name:\":-moz-broken\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing broken images.\"},{name:\":-moz-drag-over\",browsers:[\"FF1\"],description:\"Non-standard. Matches elements when a drag-over event applies to it.\"},{name:\":-moz-first-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the first child node of some other element.\"},{name:\":-moz-focusring\",browsers:[\"FF4\"],description:\"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser.\"},{name:\":-moz-full-screen\",browsers:[\"FF9\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":-moz-last-node\",browsers:[\"FF1\"],description:\"Non-standard. Represents an element that is the last child node of some other element.\"},{name:\":-moz-loading\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements, such as images, that haven’t started loading yet.\"},{name:\":-moz-only-whitespace\",browsers:[\"FF1\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace\"}],description:\"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank.\"},{name:\":-moz-placeholder\",browsers:[\"FF4\"],description:\"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+.\"},{name:\":-moz-submit-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid\"}],description:\"Non-standard. Represents any submit button when the contents of the associated form are not valid.\"},{name:\":-moz-suppressed\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been blocked from loading.\"},{name:\":-moz-ui-invalid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-invalid\"}],description:\"Non-standard. Represents any validated form element whose value isn't valid \"},{name:\":-moz-ui-valid\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-valid\"}],description:\"Non-standard. Represents any validated form element whose value is valid \"},{name:\":-moz-user-disabled\",browsers:[\"FF3\"],description:\"Non-standard. Matches elements representing images that have been disabled due to the user’s preferences.\"},{name:\":-moz-window-inactive\",browsers:[\"FF4\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive\"}],description:\"Non-standard. Matches elements in an inactive window.\"},{name:\":-ms-fullscreen\",browsers:[\"IE11\"],description:\"Matches any element that has its fullscreen flag set.\"},{name:\":-ms-input-placeholder\",browsers:[\"IE10\"],description:\"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder.\"},{name:\":-ms-keyboard-active\",browsers:[\"IE10\"],description:\"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar.\"},{name:\":-ms-lang()\",browsers:[\"E\",\"IE10\"],description:\"Represents an element that is in the language specified. Accepts a comma separated list of language tokens.\"},{name:\":no-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track.\"},{name:\":not()\",browsers:[\"E\",\"C\",\"FF1\",\"IE9\",\"O9.5\",\"S2\"],description:\"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.\"},{name:\":nth-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-child()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element.\"},{name:\":nth-last-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":nth-of-type()\",browsers:[\"E\",\"C\",\"FF3.5\",\"IE9\",\"O9.5\",\"S3.1\"],description:\"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element.\"},{name:\":only-child\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-child\"}],description:\"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity.\"},{name:\":only-of-type\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:only-of-type\"}],description:\"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity.\"},{name:\":optional\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:optional\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":out-of-range\",browsers:[\"E13\",\"FF29\",\"S5.1\",\"C10\",\"O11\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:out-of-range\"}],description:\"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"},{name:\":past\",browsers:[\"C\",\"O16\",\"S6\"],description:\"Represents any element that is defined to occur entirely prior to a :current element.\"},{name:\":read-only\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-only\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":read-write\",browsers:[\"E13\",\"FF1.5\",\"S4\",\"C1\",\"O\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:read-write\"}],description:\"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"},{name:\":required\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:required\"}],description:\"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"},{name:\":right\",browsers:[\"E12\",\"S5.1\",\"C6\",\"IE8\",\"O9.2\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:right\"}],description:\"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"},{name:\":root\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:root\"}],description:\"Represents an element that is the root of the document. In HTML 4, this is always the HTML element.\"},{name:\":scope\",browsers:[\"FF32\",\"S7\",\"C27\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:scope\"}],description:\"Represents any element that is in the contextual reference element set.\"},{name:\":single-button\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar.\"},{name:\":start\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb.\"},{name:\":target\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:target\"}],description:\"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier).\"},{name:\":valid\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:valid\"}],description:\"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"},{name:\":vertical\",browsers:[\"C\",\"S5\"],description:\"Non-standard. Applies to any scrollbar pieces that have a vertical orientation.\"},{name:\":visited\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:visited\"}],description:\"Applies once the link has been visited by the user.\"},{name:\":-webkit-any()\",browsers:[\"C\",\"S5\"],description:\"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"},{name:\":-webkit-full-screen\",browsers:[\"C\",\"S6\"],description:\"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"},{name:\":window-inactive\",browsers:[\"C\",\"S3\"],description:\"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active.\"},{name:\":blank\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:blank\"}],description:\"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).\"},{name:\":defined\",status:\"experimental\",browsers:[\"FF63\",\"S10\",\"C54\",\"O41\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:defined\"}],description:\"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).\"},{name:\":dir\",browsers:[\"FF49\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:dir\"}],description:\"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.\"},{name:\":focus-visible\",status:\"experimental\",browsers:[\"FF4\",\"C67\",\"O54\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-visible\"}],description:\"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.\"},{name:\":focus-within\",status:\"experimental\",browsers:[\"FF52\",\"S10.1\",\"C60\",\"O47\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:focus-within\"}],description:\"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.\"},{name:\":has\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:has\"}],description:\":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element.\"},{name:\":is\",status:\"experimental\",browsers:[\"FF4\",\"S9\",\"C68\",\"O55\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:is\"}],description:\"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.\"},{name:\":placeholder-shown\",status:\"experimental\",browsers:[\"FF51\",\"S9\",\"C47\",\"IE10\",\"O34\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown\"}],description:\"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.\"},{name:\":where\",status:\"experimental\",description:\"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.\"}],pseudoElements:[{name:\"::after\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::after\"}],description:\"Represents a styleable child pseudo-element immediately after the originating element’s actual content.\"},{name:\"::backdrop\",browsers:[\"E12\",\"FF47\",\"C37\",\"IE11\",\"O24\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::backdrop\"}],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::before\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::before\"}],description:\"Represents a styleable child pseudo-element immediately before the originating element’s actual content.\"},{name:\"::content\",browsers:[\"C35\",\"O22\"],description:\"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility.\"},{name:\"::cue\",browsers:[\"FF55\",\"S6.1\",\"C26\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::cue\"}]},{name:\"::cue()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::cue-region()\",browsers:[\"C\",\"O16\",\"S6\"]},{name:\"::first-letter\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-letter\"}],description:\"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line.\"},{name:\"::first-line\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::first-line\"}],description:\"Describes the contents of the first formatted line of its originating element.\"},{name:\"::-moz-focus-inner\",browsers:[\"FF4\"]},{name:\"::-moz-focus-outer\",browsers:[\"FF4\"]},{name:\"::-moz-list-bullet\",browsers:[\"FF1\"],description:\"Used to style the bullet of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-list-number\",browsers:[\"FF1\"],description:\"Used to style the numbers of a list element. Similar to the standardized ::marker.\"},{name:\"::-moz-placeholder\",browsers:[\"FF19\"],description:\"Represents placeholder text in an input field\"},{name:\"::-moz-progress-bar\",browsers:[\"FF9\"],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-moz-selection\",browsers:[\"FF1\"],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::-ms-backdrop\",browsers:[\"IE11\"],description:\"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"},{name:\"::-ms-browse\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-browse\"}],description:\"Represents the browse button of an input type=file control.\"},{name:\"::-ms-check\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-check\"}],description:\"Represents the check of a checkbox or radio button input control.\"},{name:\"::-ms-clear\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-clear\"}],description:\"Represents the clear button of a text input control\"},{name:\"::-ms-expand\",browsers:[\"E\",\"IE10\"],description:\"Represents the drop-down button of a select control.\"},{name:\"::-ms-fill\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill\"}],description:\"Represents the bar portion of a progress bar.\"},{name:\"::-ms-fill-lower\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-lower\"}],description:\"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb.\"},{name:\"::-ms-fill-upper\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-fill-upper\"}],description:\"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb.\"},{name:\"::-ms-reveal\",browsers:[\"E12\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-reveal\"}],description:\"Represents the password reveal button of an input type=password control.\"},{name:\"::-ms-thumb\",browsers:[\"E\",\"IE10\"],description:\"Represents the portion of range input control (also known as a slider control) that the user drags.\"},{name:\"::-ms-ticks-after\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb.\"},{name:\"::-ms-ticks-before\",browsers:[\"E\",\"IE10\"],description:\"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb.\"},{name:\"::-ms-tooltip\",browsers:[\"E\",\"IE10\"],description:\"Represents the tooltip of a slider (input type=range).\"},{name:\"::-ms-track\",browsers:[\"E\",\"IE10\"],description:\"Represents the track of a slider.\"},{name:\"::-ms-value\",browsers:[\"E16\",\"IE10\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-ms-value\"}],description:\"Represents the content of a text or password input control, or a select control.\"},{name:\"::selection\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::selection\"}],description:\"Represents the portion of a document that has been highlighted by the user.\"},{name:\"::shadow\",browsers:[\"C35\",\"O22\"],description:\"Matches the shadow root if an element has a shadow tree.\"},{name:\"::-webkit-file-upload-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-file-upload-button\"}]},{name:\"::-webkit-inner-spin-button\",browsers:[\"S4.1\",\"C6\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button\"}]},{name:\"::-webkit-input-placeholder\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-keygen-select\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-meter-bar\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar\"}]},{name:\"::-webkit-meter-even-less-good-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value\"}]},{name:\"::-webkit-meter-optimum-value\",browsers:[\"S5.1\",\"C12\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value\"}]},{name:\"::-webkit-meter-suboptimal-value\",browsers:[\"E13\",\"C\",\"O15\",\"S6\"]},{name:\"::-webkit-outer-spin-button\",browsers:[\"S4.1\",\"C6\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-outer-spin-button\"}]},{name:\"::-webkit-progress-bar\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar\"}]},{name:\"::-webkit-progress-inner-element\",browsers:[\"S6.1\",\"C23\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element\"}]},{name:\"::-webkit-progress-value\",browsers:[\"S6.1\",\"C25\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value\"}]},{name:\"::-webkit-resizer\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-resizer\"}]},{name:\"::-webkit-scrollbar\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"}]},{name:\"::-webkit-scrollbar-button\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-button\"}]},{name:\"::-webkit-scrollbar-corner\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-corner\"}]},{name:\"::-webkit-scrollbar-thumb\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-thumb\"}]},{name:\"::-webkit-scrollbar-track\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track\"}]},{name:\"::-webkit-scrollbar-track-piece\",browsers:[\"S4\",\"C2\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar-track-piece\"}]},{name:\"::-webkit-search-cancel-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button\"}]},{name:\"::-webkit-search-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-search-results-button\",browsers:[\"S3\",\"C1\",\"O15\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button\"}]},{name:\"::-webkit-search-results-decoration\",browsers:[\"C\",\"S4\"]},{name:\"::-webkit-slider-runnable-track\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-slider-thumb\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-textfield-decoration-container\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-arrow-clipper\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-heading\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-message\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-webkit-validation-bubble-text-block\",browsers:[\"C\",\"O\",\"S6\"]},{name:\"::-moz-range-progress\",status:\"nonstandard\",browsers:[\"FF22\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress\"}],description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'},{name:\"::-moz-range-thumb\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb\"}],description:'The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input\\'s track to alter its numerical value.'},{name:\"::-moz-range-track\",status:\"nonstandard\",browsers:[\"FF21\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track\"}],description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".'},{name:\"::-webkit-progress-inner-value\",status:\"nonstandard\",description:\"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\\n\\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.\"},{name:\"::grammar-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::grammar-error\"}],description:\"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\"},{name:\"::marker\",browsers:[\"FF68\",\"C80\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::marker\"}],description:\"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements.\"},{name:\"::part\",status:\"experimental\",browsers:[\"FF69\",\"C73\",\"O60\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::part\"}],description:\"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\"},{name:\"::placeholder\",browsers:[\"E12\",\"FF51\",\"S10.1\",\"C57\",\"O44\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::placeholder\"}],description:\"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.\"},{name:\"::slotted\",browsers:[\"FF63\",\"S10\",\"C50\",\"O37\"],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::slotted\"}],description:\"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template.\"},{name:\"::spelling-error\",status:\"experimental\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/CSS/::spelling-error\"}],description:\"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\"}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.values=function(e){return Object.keys(e).map((function(t){return e[t]}))},t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataManager\",[\"require\",\"exports\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/objects\"),r=function(){function e(e){this.dataProviders=e,this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.collectData()}return e.prototype.addDataProviders=function(e){this.dataProviders=this.dataProviders.concat(e),this.collectData()},e.prototype.collectData=function(){var e=this;this.dataProviders.forEach((function(t){t.provideProperties().forEach((function(t){e._propertySet[t.name]||(e._propertySet[t.name]=t)})),t.provideAtDirectives().forEach((function(t){e._atDirectiveSet[t.name]||(e._atDirectiveSet[t.name]=t)})),t.providePseudoClasses().forEach((function(t){e._pseudoClassSet[t.name]||(e._pseudoClassSet[t.name]=t)})),t.providePseudoElements().forEach((function(t){e._pseudoElementSet[t.name]||(e._pseudoElementSet[t.name]=t)}))})),this._properties=n.values(this._propertySet),this._atDirectives=n.values(this._atDirectiveSet),this._pseudoClasses=n.values(this._pseudoClassSet),this._pseudoElements=n.values(this._pseudoElementSet)},e.prototype.getProperty=function(e){return this._propertySet[e]},e.prototype.getAtDirective=function(e){return this._atDirectiveSet[e]},e.prototype.getPseudoClass=function(e){return this._pseudoClassSet[e]},e.prototype.getPseudoElement=function(e){return this._pseudoElementSet[e]},e.prototype.getProperties=function(){return this._properties},e.prototype.getAtDirectives=function(){return this._atDirectives},e.prototype.getPseudoClasses=function(){return this._pseudoClasses},e.prototype.getPseudoElements=function(){return this._pseudoElements},e.prototype.isKnownProperty=function(e){return e.toLowerCase()in this._propertySet},e.prototype.isStandardProperty=function(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||\"standard\"===this._propertySet[e.toLowerCase()].status)},e}();t.CSSDataManager=r})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return e.prototype.provideProperties=function(){return this._properties},e.prototype.provideAtDirectives=function(){return this._atDirectives},e.prototype.providePseudoClasses=function(){return this._pseudoClasses},e.prototype.providePseudoElements=function(){return this._pseudoElements},e.prototype.addData=function(e){e.properties&&(this._properties=this._properties.concat(e.properties)),e.atDirectives&&(this._atDirectives=this._atDirectives.concat(e.atDirectives)),e.pseudoClasses&&(this._pseudoClasses=this._pseudoClasses.concat(e.pseudoClasses)),e.pseudoElements&&(this._pseudoElements=this._pseudoElements.concat(e.pseudoElements))},e}();t.CSSDataProvider=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/entry\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){switch(e){case\"experimental\":return\"⚠️ Property is experimental. Be cautious when using it.️\\n\\n\";case\"nonstandard\":return\"🚨️ Property is nonstandard. Avoid using it.\\n\\n\";case\"obsolete\":return\"🚨️️️ Property is obsolete. Avoid using it.\\n\\n\";default:return\"\"}}function r(e){if(!e.description||\"\"===e.description)return\"\";if(\"string\"!=typeof e.description)return e.description.value;var t=\"\";e.status&&(t+=n(e.status)),t+=e.description;var r=o(e.browsers);return r&&(t+=\"\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return e.name+\": \"+e.url})).join(\" | \")),t}function i(e){if(!e.description||\"\"===e.description)return\"\";var t=\"\";e.status&&(t+=n(e.status)),\"string\"==typeof e.description?t+=e.description:t=e.description.value;var r=o(e.browsers);return r&&(t+=\"\\n\\n(\"+r+\")\"),\"syntax\"in e&&(t+=\"\\n\\nSyntax: \"+e.syntax),e.references&&e.references.length>0&&(t+=\"\\n\\n\",t+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \")),t}function o(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var n=\"\",r=e.match(/([A-Z]+)(\\d+)?/),i=r[1],o=r[2];return i in t.browserNames&&(n+=t.browserNames[i]),o&&(n+=\" \"+o),n})).join(\", \")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.browserNames={E:\"Edge\",FF:\"Firefox\",S:\"Safari\",C:\"Chrome\",IE:\"IE\",O:\"Opera\"},t.getEntryDescription=function(e,t){return t?{kind:\"markdown\",value:i(e)}:{kind:\"plaintext\",value:r(e)}},t.getBrowserLabel=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/colors\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle();function i(e,t){var n=e.getText().match(/^([-+]?[0-9]*\\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function o(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}t.colorFunctions=[{func:\"rgb($red, $green, $blue)\",desc:r(\"css.builtin.rgb\",\"Creates a Color from red, green, and blue values.\")},{func:\"rgba($red, $green, $blue, $alpha)\",desc:r(\"css.builtin.rgba\",\"Creates a Color from red, green, blue, and alpha values.\")},{func:\"hsl($hue, $saturation, $lightness)\",desc:r(\"css.builtin.hsl\",\"Creates a Color from hue, saturation, and lightness values.\")},{func:\"hsla($hue, $saturation, $lightness, $alpha)\",desc:r(\"css.builtin.hsla\",\"Creates a Color from hue, saturation, lightness, and alpha values.\")}],t.colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rebeccapurple:\"#663399\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"},t.colorKeywords={currentColor:\"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.\",transparent:\"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.\"},t.isColorConstructor=o,t.isColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return!0;if(e.type===n.NodeType.Function)return o(e);if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return!1;var r=e.getText().toLowerCase();if(\"none\"===r)return!1;if(t.colors[r])return!0}return!1};function s(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}function a(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*s(e.charCodeAt(1))/255,green:17*s(e.charCodeAt(2))/255,blue:17*s(e.charCodeAt(3))/255,alpha:17*s(e.charCodeAt(4))/255};case 7:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*s(e.charCodeAt(1))+s(e.charCodeAt(2)))/255,green:(16*s(e.charCodeAt(3))+s(e.charCodeAt(4)))/255,blue:(16*s(e.charCodeAt(5))+s(e.charCodeAt(6)))/255,alpha:(16*s(e.charCodeAt(7))+s(e.charCodeAt(8)))/255}}return null}function l(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,(e/=60)+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}t.hexDigit=s,t.colorFromHex=a,t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}},t.colorFromHSL=l,t.hslFromColor=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-t)/d+2;break;case r:a=(t-n)/d+4}a*=60,a=Math.round(a)}return{h:a,s:l,l:c,a:i}},t.getColorValue=function(e){if(e.type===n.NodeType.HexColorValue)return a(e.getText());if(e.type===n.NodeType.Function){var r=e,o=r.getName(),s=r.getArguments().getChildren();if(!o||s.length<3||s.length>4)return null;try{var c=4===s.length?i(s[3],1):1;if(\"rgb\"===o||\"rgba\"===o)return{red:i(s[0],255),green:i(s[1],255),blue:i(s[2],255),alpha:c};if(\"hsl\"===o||\"hsla\"===o)return l(function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(s[0]),i(s[1],100),i(s[2],100),c)}catch(e){return null}}else if(e.type===n.NodeType.Identifier){if(e.parent&&e.parent.type!==n.NodeType.Term)return null;var d=e.parent;if(d&&d.parent&&d.parent.type===n.NodeType.BinaryExpression){var p=d.parent;if(p.parent&&p.parent.type===n.NodeType.ListEntry&&p.parent.key===p)return null}var h=e.getText().toLowerCase();if(\"none\"===h)return null;var m=t.colors[h];if(m)return a(m)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/builtinData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.positionKeywords={bottom:\"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\",center:\"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.\",left:\"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\",right:\"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\",top:\"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"},t.repeatStyleKeywords={\"no-repeat\":\"Placed once and not repeated in this direction.\",repeat:\"Repeated in this direction as often as needed to cover the background painting area.\",\"repeat-x\":\"Computes to ‘repeat no-repeat’.\",\"repeat-y\":\"Computes to ‘no-repeat repeat’.\",round:\"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.\",space:\"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.\"},t.lineStyleKeywords={dashed:\"A series of square-ended dashes.\",dotted:\"A series of round dots.\",double:\"Two parallel solid lines with some space between them.\",groove:\"Looks as if it were carved in the canvas.\",hidden:\"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.\",inset:\"Looks as if the content on the inside of the border is sunken into the canvas.\",none:\"No border. Color and width are ignored.\",outset:\"Looks as if the content on the inside of the border is coming out of the canvas.\",ridge:\"Looks as if it were coming out of the canvas.\",solid:\"A single line segment.\"},t.lineWidthKeywords=[\"medium\",\"thick\",\"thin\"],t.boxKeywords={\"border-box\":\"The background is painted within (clipped to) the border box.\",\"content-box\":\"The background is painted within (clipped to) the content box.\",\"padding-box\":\"The background is painted within (clipped to) the padding box.\"},t.geometryBoxKeywords={\"margin-box\":\"Uses the margin box as reference box.\",\"fill-box\":\"Uses the object bounding box as reference box.\",\"stroke-box\":\"Uses the stroke bounding box as reference box.\",\"view-box\":\"Uses the nearest SVG viewport as reference box.\"},t.cssWideKeywords={initial:\"Represents the value specified as the property’s initial value.\",inherit:\"Represents the computed value of the property on the element’s parent.\",unset:\"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.\"},t.imageFunctions={\"url()\":\"Reference an image file by URL\",\"image()\":\"Provide image fallbacks and annotations.\",\"-webkit-image-set()\":\"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.\",\"image-set()\":\"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.\",\"-moz-element()\":\"Use an element in the document as an image. Remember to use unprefixed element() in addition.\",\"element()\":\"Use an element in the document as an image.\",\"cross-fade()\":\"Indicates the two images to be combined and how far along in the transition the combination is.\",\"-webkit-gradient()\":\"Deprecated. Use modern linear-gradient() or radial-gradient() instead.\",\"-webkit-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"-o-linear-gradient()\":\"Linear gradient. Remember to use unprefixed version in addition.\",\"linear-gradient()\":\"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.\",\"-webkit-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"-o-repeating-linear-gradient()\":\"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\"repeating-linear-gradient()\":\"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\",\"-webkit-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"-moz-radial-gradient()\":\"Radial gradient. Remember to use unprefixed version in addition.\",\"radial-gradient()\":\"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.\",\"-webkit-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"-moz-repeating-radial-gradient()\":\"Repeating radial gradient. Remember to use unprefixed version in addition.\",\"repeating-radial-gradient()\":\"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.\"},t.transitionTimingFunctions={ease:\"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).\",\"ease-in\":\"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).\",\"ease-in-out\":\"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).\",\"ease-out\":\"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).\",linear:\"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).\",\"step-end\":\"Equivalent to steps(1, end).\",\"step-start\":\"Equivalent to steps(1, start).\",\"steps()\":\"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.\",\"cubic-bezier()\":\"Specifies a cubic-bezier curve. The four values specify points P1 and P2  of the curve as (x1, y1, x2, y2).\",\"cubic-bezier(0.6, -0.28, 0.735, 0.045)\":\"Ease-in Back. Overshoots.\",\"cubic-bezier(0.68, -0.55, 0.265, 1.55)\":\"Ease-in-out Back. Overshoots.\",\"cubic-bezier(0.175, 0.885, 0.32, 1.275)\":\"Ease-out Back. Overshoots.\",\"cubic-bezier(0.6, 0.04, 0.98, 0.335)\":\"Ease-in Circular. Based on half circle.\",\"cubic-bezier(0.785, 0.135, 0.15, 0.86)\":\"Ease-in-out Circular. Based on half circle.\",\"cubic-bezier(0.075, 0.82, 0.165, 1)\":\"Ease-out Circular. Based on half circle.\",\"cubic-bezier(0.55, 0.055, 0.675, 0.19)\":\"Ease-in Cubic. Based on power of three.\",\"cubic-bezier(0.645, 0.045, 0.355, 1)\":\"Ease-in-out Cubic. Based on power of three.\",\"cubic-bezier(0.215, 0.610, 0.355, 1)\":\"Ease-out Cubic. Based on power of three.\",\"cubic-bezier(0.95, 0.05, 0.795, 0.035)\":\"Ease-in Exponential. Based on two to the power ten.\",\"cubic-bezier(1, 0, 0, 1)\":\"Ease-in-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.19, 1, 0.22, 1)\":\"Ease-out Exponential. Based on two to the power ten.\",\"cubic-bezier(0.47, 0, 0.745, 0.715)\":\"Ease-in Sine.\",\"cubic-bezier(0.445, 0.05, 0.55, 0.95)\":\"Ease-in-out Sine.\",\"cubic-bezier(0.39, 0.575, 0.565, 1)\":\"Ease-out Sine.\",\"cubic-bezier(0.55, 0.085, 0.68, 0.53)\":\"Ease-in Quadratic. Based on power of two.\",\"cubic-bezier(0.455, 0.03, 0.515, 0.955)\":\"Ease-in-out Quadratic. Based on power of two.\",\"cubic-bezier(0.25, 0.46, 0.45, 0.94)\":\"Ease-out Quadratic. Based on power of two.\",\"cubic-bezier(0.895, 0.03, 0.685, 0.22)\":\"Ease-in Quartic. Based on power of four.\",\"cubic-bezier(0.77, 0, 0.175, 1)\":\"Ease-in-out Quartic. Based on power of four.\",\"cubic-bezier(0.165, 0.84, 0.44, 1)\":\"Ease-out Quartic. Based on power of four.\",\"cubic-bezier(0.755, 0.05, 0.855, 0.06)\":\"Ease-in Quintic. Based on power of five.\",\"cubic-bezier(0.86, 0, 0.07, 1)\":\"Ease-in-out Quintic. Based on power of five.\",\"cubic-bezier(0.23, 1, 0.320, 1)\":\"Ease-out Quintic. Based on power of five.\"},t.basicShapeFunctions={\"circle()\":\"Defines a circle.\",\"ellipse()\":\"Defines an ellipse.\",\"inset()\":\"Defines an inset rectangle.\",\"polygon()\":\"Defines a polygon.\"},t.units={length:[\"em\",\"rem\",\"ex\",\"px\",\"cm\",\"mm\",\"in\",\"pt\",\"pc\",\"ch\",\"vw\",\"vh\",\"vmin\",\"vmax\"],angle:[\"deg\",\"rad\",\"grad\",\"turn\"],time:[\"ms\",\"s\"],frequency:[\"Hz\",\"kHz\"],resolution:[\"dpi\",\"dpcm\",\"dppx\"],percentage:[\"%\",\"fr\"]},t.html5Tags=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"const\",\"video\",\"wbr\"],t.svgElements=[\"circle\",\"clipPath\",\"cursor\",\"defs\",\"desc\",\"ellipse\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\",\"filter\",\"foreignObject\",\"g\",\"hatch\",\"hatchpath\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"mesh\",\"meshpatch\",\"meshrow\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"set\",\"solidcolor\",\"stop\",\"svg\",\"switch\",\"symbol\",\"text\",\"textPath\",\"tspan\",\"use\",\"view\"],t.pageBoxDirectives=[\"@bottom-center\",\"@bottom-left\",\"@bottom-left-corner\",\"@bottom-right\",\"@bottom-right-corner\",\"@left-bottom\",\"@left-middle\",\"@left-top\",\"@right-bottom\",\"@right-middle\",\"@right-top\",\"@top-center\",\"@top-left\",\"@top-left-corner\",\"@top-right\",\"@top-right-corner\"]})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/languageFacts/facts\",[\"require\",\"exports\",\"../data/webCustomData\",\"./dataManager\",\"./dataProvider\",\"./entry\",\"./colors\",\"./builtinData\",\"./dataProvider\",\"./dataManager\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var r=e(\"../data/webCustomData\"),i=e(\"./dataManager\"),o=e(\"./dataProvider\");n(e(\"./entry\")),n(e(\"./colors\")),n(e(\"./builtinData\")),n(e(\"./dataProvider\")),n(e(\"./dataManager\")),t.cssDataManager=new i.CSSDataManager([new o.CSSDataProvider(r.cssData)])}));var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssParser\",[\"require\",\"exports\",\"./cssScanner\",\"./cssNodes\",\"./cssErrors\",\"../languageFacts/facts\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=e(\"./cssNodes\"),i=e(\"./cssErrors\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/objects\"),a=function(){function e(e){void 0===e&&(e=new n.Scanner),this.keyframeRegex=/^@(\\-(webkit|ms|moz|o)\\-)?keyframes$/i,this.scanner=e,this.token={type:n.TokenType.EOF,offset:-1,len:0,text:\"\"},this.prevToken=void 0}return e.prototype.peekIdent=function(e){return n.TokenType.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekKeyword=function(e){return n.TokenType.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekDelim=function(e){return n.TokenType.Delim===this.token.type&&e===this.token.text},e.prototype.peek=function(e){return e===this.token.type},e.prototype.peekRegExp=function(e,t){return e===this.token.type&&t.test(this.token.text)},e.prototype.hasWhitespace=function(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset},e.prototype.consumeToken=function(){this.prevToken=this.token,this.token=this.scanner.scan()},e.prototype.mark=function(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}},e.prototype.restoreAtMark=function(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)},e.prototype.try=function(e){var t=this.mark(),n=e();return n||(this.restoreAtMark(t),null)},e.prototype.acceptOneKeyword=function(e){if(n.TokenType.AtKeyword===this.token.type)for(var t=0,r=e;t<r.length;t++){var i=r[t];if(i.length===this.token.text.length&&i===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1},e.prototype.accept=function(e){return e===this.token.type&&(this.consumeToken(),!0)},e.prototype.acceptIdent=function(e){return!!this.peekIdent(e)&&(this.consumeToken(),!0)},e.prototype.acceptKeyword=function(e){return!!this.peekKeyword(e)&&(this.consumeToken(),!0)},e.prototype.acceptDelim=function(e){return!!this.peekDelim(e)&&(this.consumeToken(),!0)},e.prototype.acceptRegexp=function(e){return!!e.test(this.token.text)&&(this.consumeToken(),!0)},e.prototype._parseRegexp=function(e){var t=this.createNode(r.NodeType.Identifier);do{}while(this.acceptRegexp(e));return this.finish(t)},e.prototype.acceptUnquotedString=function(){var e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);var t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)},e.prototype.resync=function(e,t){for(;;){if(e&&-1!==e.indexOf(this.token.type))return this.consumeToken(),!0;if(t&&-1!==t.indexOf(this.token.type))return!0;if(this.token.type===n.TokenType.EOF)return!1;this.token=this.scanner.scan()}},e.prototype.createNode=function(e){return new r.Node(this.token.offset,this.token.len,e)},e.prototype.create=function(e){return new e(this.token.offset,this.token.len)},e.prototype.finish=function(e,t,n,i){if(!(e instanceof r.Nodelist)&&(t&&this.markError(e,t,n,i),this.prevToken)){var o=this.prevToken.offset+this.prevToken.len;e.length=o>e.offset?o-e.offset:0}return e},e.prototype.markError=function(e,t,n,i){this.token!==this.lastErrorToken&&(e.addIssue(new r.Marker(e,t,r.Level.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||i)&&this.resync(n,i)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error(\"Underlying model has changed, AST is no longer valid\");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(r.Stylesheet);e.addChild(this._parseStylesheetStart()););var t=!1;do{var o=!1;do{o=!1;var s=this._parseStylesheetStatement();for(s&&(e.addChild(s),o=!0,t=!1,this.peek(n.TokenType.EOF)||!this._needsSemicolonAfter(s)||this.accept(n.TokenType.SemiColon)||this.markError(e,i.ParseError.SemiColonExpected));this.accept(n.TokenType.SemiColon)||this.accept(n.TokenType.CDO)||this.accept(n.TokenType.CDC);)o=!0,t=!1}while(o);if(this.peek(n.TokenType.EOF))break;t||(this.peek(n.TokenType.AtKeyword)?this.markError(e,i.ParseError.UnknownAtRule):this.markError(e,i.ParseError.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(n.TokenType.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(n.TokenType.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(n.TokenType.Comma)&&this._parseSelector(e););if(this.accept(n.TokenType.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(r.RuleSet),o=t.getSelectors();if(!o.addChild(this._parseSelector(e)))return null;for(;this.accept(n.TokenType.Comma);)if(!o.addChild(this._parseSelector(e)))return this.finish(t,i.ParseError.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclaration=function(){return this._parseAtApply()||this._tryParseCustomPropertyDeclaration()||this._parseDeclaration()||this._parseUnknownAtRule()},e.prototype._parseAtApply=function(){if(!this.peekKeyword(\"@apply\"))return null;var e=this.create(r.AtApplyRule);return this.consumeToken(),e.setIdentifier(this._parseIdent([r.ReferenceType.Variable]))?this.finish(e):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case r.NodeType.Keyframe:case r.NodeType.ViewPort:case r.NodeType.Media:case r.NodeType.Ruleset:case r.NodeType.Namespace:case r.NodeType.If:case r.NodeType.For:case r.NodeType.Each:case r.NodeType.While:case r.NodeType.MixinDeclaration:case r.NodeType.FunctionDeclaration:return!1;case r.NodeType.ExtendsReference:case r.NodeType.MixinContent:case r.NodeType.ReturnStatement:case r.NodeType.MediaQuery:case r.NodeType.Debug:case r.NodeType.Import:case r.NodeType.AtApplyRule:case r.NodeType.CustomPropertyDeclaration:return!0;case r.NodeType.VariableDeclaration:return e.needsSemicolon;case r.NodeType.MixinReference:return!e.getContent();case r.NodeType.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(r.Declarations);if(!this.accept(n.TokenType.CurlyL))return null;for(var o=e();t.addChild(o)&&!this.peek(n.TokenType.CurlyR);){if(this._needsSemicolonAfter(o)&&!this.accept(n.TokenType.SemiColon))return this.finish(t,i.ParseError.SemiColonExpected,[n.TokenType.SemiColon,n.TokenType.CurlyR]);for(o&&this.prevToken&&this.prevToken.type===n.TokenType.SemiColon&&(o.semicolonPosition=this.prevToken.offset);this.accept(n.TokenType.SemiColon););o=e()}return this.accept(n.TokenType.CurlyR)?this.finish(t):this.finish(t,i.ParseError.RightCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,i.ParseError.LeftCurlyExpected,[n.TokenType.CurlyR,n.TokenType.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(r.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this.create(r.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon)){var o=e?__spreadArrays(e,[n.TokenType.SemiColon]):[n.TokenType.SemiColon];return this.finish(t,i.ParseError.ColonExpected,[n.TokenType.Colon],o)}return this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseExpr())?(t.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):this.finish(t,i.ParseError.PropertyValueExpected)},e.prototype._tryParseCustomPropertyDeclaration=function(){if(!this.peekRegExp(n.TokenType.Ident,/^--/))return null;var e=this.create(r.CustomPropertyDeclaration);if(!e.setProperty(this._parseProperty()))return null;if(!this.accept(n.TokenType.Colon))return this.finish(e,i.ParseError.ColonExpected,[n.TokenType.Colon]);this.prevToken&&(e.colonPosition=this.prevToken.offset);var t=this.mark();if(this.peek(n.TokenType.CurlyL)){var o=this.create(r.CustomPropertySet),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(o.setDeclarations(a)&&!a.isErroneous(!0)&&(o.addChild(this._parsePrio()),this.peek(n.TokenType.SemiColon)))return this.finish(o),e.setPropertySet(o),e.semicolonPosition=this.token.offset,this.finish(e);this.restoreAtMark(t)}var l=this._parseExpr();return l&&!l.isErroneous(!0)&&(this._parsePrio(),this.peek(n.TokenType.SemiColon))?(e.setValue(l),e.semicolonPosition=this.token.offset,this.finish(e)):(this.restoreAtMark(t),e.addChild(this._parseCustomPropertyValue()),e.addChild(this._parsePrio()),s.isDefined(e.colonPosition)&&this.token.offset===e.colonPosition+1?this.finish(e,i.ParseError.PropertyValueExpected):this.finish(e))},e.prototype._parseCustomPropertyValue=function(){var e=this.create(r.Node),t=function(){return 0===o&&0===s&&0===a},o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:case n.TokenType.Exclamation:if(t())break e;break;case n.TokenType.CurlyL:o++;break;case n.TokenType.CurlyR:if(--o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected);break;case n.TokenType.BadString:break e;case n.TokenType.EOF:var l=i.ParseError.RightCurlyExpected;return a>0?l=i.ParseError.RightSquareBracketExpected:s>0&&(l=i.ParseError.RightParenthesisExpected),this.finish(e,l)}this.consumeToken()}return this.finish(e)},e.prototype._tryToParseDeclaration=function(){var e=this.mark();return this._parseProperty()&&this.accept(n.TokenType.Colon)?(this.restoreAtMark(e),this._parseDeclaration()):(this.restoreAtMark(e),null)},e.prototype._parseProperty=function(){var e=this.create(r.Property),t=this.mark();return(this.acceptDelim(\"*\")||this.acceptDelim(\"_\"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(n.TokenType.Charset))return null;var e=this.create(r.Node);return this.consumeToken(),this.accept(n.TokenType.String)?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(r.Import);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(n.TokenType.SemiColon)||this.peek(n.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,i.ParseError.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword(\"@namespace\"))return null;var e=this.create(r.Namespace);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(n.TokenType.SemiColon)?this.finish(e):this.finish(e,i.ParseError.SemiColonExpected):this.finish(e,i.ParseError.URIExpected,[n.TokenType.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword(\"@font-face\"))return null;var e=this.create(r.FontFace);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword(\"@-ms-viewport\")&&!this.peekKeyword(\"@-o-viewport\")&&!this.peekKeyword(\"@viewport\"))return null;var e=this.create(r.ViewPort);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(n.TokenType.AtKeyword,this.keyframeRegex))return null;var e=this.create(r.Keyframe),t=this.create(r.Node);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches(\"@-ms-keyframes\")&&this.markError(t,i.ParseError.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,i.ParseError.IdentifierExpected,[n.TokenType.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([r.ReferenceType.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector);if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.finish(e,i.ParseError.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(r.KeyframeSelector),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return null;for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(n.TokenType.Percentage))return this.restoreAtMark(t),null;return this.peek(n.TokenType.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@supports\"))return null;var t=this.create(r.Supports);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(r.SupportsCondition);if(this.acceptIdent(\"not\"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(n.TokenType.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(r.SupportsCondition);if(this.accept(n.TokenType.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration())||this._parseSupportsCondition()?this.accept(n.TokenType.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,i.ParseError.RightParenthesisExpected,[n.TokenType.ParenthesisR],[]):this.finish(e,i.ParseError.ConditionExpected);if(this.peek(n.TokenType.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){for(var o=1;this.token.type!==n.TokenType.EOF&&0!==o;)this.token.type===n.TokenType.ParenthesisL?o++:this.token.type===n.TokenType.ParenthesisR&&o--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,i.ParseError.LeftParenthesisExpected,[],[n.TokenType.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword(\"@media\"))return null;var t=this.create(r.Media);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,i.ParseError.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(r.Medialist);if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parseMediaQuery([n.TokenType.CurlyL])))return this.finish(e,i.ParseError.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(r.MediaQuery),o=!0,s=!1;if(!this.peek(n.TokenType.ParenthesisL)){if(this.acceptIdent(\"only\")||this.acceptIdent(\"not\"),!t.addChild(this._parseIdent()))return null;s=!0,o=this.acceptIdent(\"and\")}for(;o;)if(t.addChild(this._parseMediaContentStart()))o=this.acceptIdent(\"and\");else{if(!this.accept(n.TokenType.ParenthesisL))return s?this.finish(t,i.ParseError.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,i.ParseError.IdentifierExpected,[],e);if(this.accept(n.TokenType.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,i.ParseError.TermExpected,[],e);if(!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected,[],e);o=this.acceptIdent(\"and\")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(r.Node);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword(\"@page\"))return null;var e=this.create(r.Page);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(n.TokenType.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,i.ParseError.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.PageBoxMarginBox);return this.acceptOneKeyword(o.pageBoxDirectives)||this.markError(e,i.ParseError.UnknownAtRule,[],[n.TokenType.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(n.TokenType.Ident)&&!this.peek(n.TokenType.Colon))return null;var e=this.create(r.Node);return e.addChild(this._parseIdent()),this.accept(n.TokenType.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword(\"@-moz-document\"))return null;var e=this.create(r.Document);return this.consumeToken(),this.resync([],[n.TokenType.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(n.TokenType.AtKeyword))return null;var e=this.create(r.UnknownAtRule);e.addChild(this._parseUnknownAtRuleName());var t=0,o=0,s=0,a=0;e:for(;;){switch(this.token.type){case n.TokenType.SemiColon:if(0===o&&0===s&&0===a)break e;break;case n.TokenType.EOF:return o>0?this.finish(e,i.ParseError.RightCurlyExpected):a>0?this.finish(e,i.ParseError.RightSquareBracketExpected):s>0?this.finish(e,i.ParseError.RightParenthesisExpected):this.finish(e);case n.TokenType.CurlyL:t++,o++;break;case n.TokenType.CurlyR:if(o--,t>0&&0===o){if(this.consumeToken(),a>0)return this.finish(e,i.ParseError.RightSquareBracketExpected);if(s>0)return this.finish(e,i.ParseError.RightParenthesisExpected);break e}if(o<0){if(0===s&&0===a)break e;return this.finish(e,i.ParseError.LeftCurlyExpected)}break;case n.TokenType.ParenthesisL:s++;break;case n.TokenType.ParenthesisR:if(--s<0)return this.finish(e,i.ParseError.LeftParenthesisExpected);break;case n.TokenType.BracketL:a++;break;case n.TokenType.BracketR:if(--a<0)return this.finish(e,i.ParseError.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(r.Node);return this.accept(n.TokenType.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim(\"/\")||this.peekDelim(\"*\")||this.peekDelim(\"+\")||this.peekDelim(\"-\")||this.peek(n.TokenType.Dashmatch)||this.peek(n.TokenType.Includes)||this.peek(n.TokenType.SubstringOperator)||this.peek(n.TokenType.PrefixOperator)||this.peek(n.TokenType.SuffixOperator)||this.peekDelim(\"=\")){var e=this.createNode(r.NodeType.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim(\"+\")&&!this.peekDelim(\"-\"))return null;var e=this.create(r.Node);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(\">\")){var e=this.create(r.Node);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(\">\")){if(!this.hasWhitespace()&&this.acceptDelim(\">\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=r.NodeType.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim(\"+\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim(\"~\")){e=this.create(r.Node);return this.consumeToken(),e.type=r.NodeType.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim(\"/\")){e=this.create(r.Node);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent(\"deep\")&&!this.hasWhitespace()&&this.acceptDelim(\"/\"))return e.type=r.NodeType.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(r.SimpleSelector),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(n.TokenType.Hash)&&!this.peekDelim(\"#\"))return null;var e=this.createNode(r.NodeType.IdentifierSelector);if(this.acceptDelim(\"#\")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,i.ParseError.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim(\".\"))return null;var e=this.createNode(r.NodeType.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,i.ParseError.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(r.NodeType.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim(\"*\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(r.NodeType.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim(\"*\"),this.acceptDelim(\"|\")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.create(r.AttributeSelector);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent(\"i\")),this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)):this.finish(e,i.ParseError.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(n.TokenType.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(r.Node);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(n.TokenType.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(n.TokenType.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(n.TokenType.ParenthesisR))return this.finish(t,i.ParseError.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(n.TokenType.Colon))return null;var e=this.mark(),t=this.createNode(r.NodeType.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(n.TokenType.Colon)&&this.hasWhitespace()&&this.markError(t,i.ParseError.IdentifierExpected),t.addChild(this._parseIdent())||this.markError(t,i.ParseError.IdentifierExpected),t)},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(n.TokenType.Exclamation))return null;var e=this.createNode(r.NodeType.Prio);return this.accept(n.TokenType.Exclamation)&&this.acceptIdent(\"important\")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(r.Expression);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(n.TokenType.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(n.TokenType.BracketL))return null;var e=this.createNode(r.NodeType.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(n.TokenType.BracketR)?this.finish(e):this.finish(e,i.ParseError.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(r.BinaryExpression);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,i.ParseError.TermExpected);n=this.finish(n);var o=this._parseOperator();return o&&(n=this._parseBinaryExpr(n,o)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(r.Term);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseURILiteral())||e.setExpression(this._parseFunction())||e.setExpression(this._parseIdent())||e.setExpression(this._parseStringLiteral())||e.setExpression(this._parseNumeric())||e.setExpression(this._parseHexColor())||e.setExpression(this._parseOperation())||e.setExpression(this._parseNamedLine())?this.finish(e):null},e.prototype._parseOperation=function(){if(!this.peek(n.TokenType.ParenthesisL))return null;var e=this.create(r.Node);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(n.TokenType.ParenthesisR)?this.finish(e):this.finish(e,i.ParseError.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(n.TokenType.Num)||this.peek(n.TokenType.Percentage)||this.peek(n.TokenType.Resolution)||this.peek(n.TokenType.Length)||this.peek(n.TokenType.EMS)||this.peek(n.TokenType.EXS)||this.peek(n.TokenType.Angle)||this.peek(n.TokenType.Time)||this.peek(n.TokenType.Dimension)||this.peek(n.TokenType.Freq)){var e=this.create(r.NumericValue);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(n.TokenType.String)&&!this.peek(n.TokenType.BadString))return null;var e=this.createNode(r.NodeType.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(n.TokenType.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(r.NodeType.URILiteral);return this.accept(n.TokenType.Ident),this.hasWhitespace()||!this.peek(n.TokenType.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(r.Node);return this.accept(n.TokenType.String)||this.accept(n.TokenType.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(n.TokenType.Ident))return null;var t=this.create(r.Identifier);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(n.TokenType.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(r.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(n.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(n.TokenType.Comma)&&!this.peek(n.TokenType.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,i.ParseError.ExpressionExpected);return this.accept(n.TokenType.ParenthesisR)?this.finish(t):this.finish(t,i.ParseError.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(n.TokenType.Ident))return null;var e=this.create(r.Identifier);if(e.referenceTypes=[r.ReferenceType.Function],this.acceptIdent(\"progid\")){if(this.accept(n.TokenType.Colon))for(;this.accept(n.TokenType.Ident)&&this.acceptDelim(\".\"););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(r.FunctionArgument);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(n.TokenType.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(r.HexColorValue);return this.consumeToken(),this.finish(e)}return null},e}();t.Parser=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e,t){return-1!==e.indexOf(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n},t.includes=n,t.union=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=[],i=0,o=e;i<o.length;i++)for(var s=o[i],a=0,l=s;a<l.length;a++){var c=l[a];n(r,c)||r.push(c)}return r}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/cssSymbolScope\",[\"require\",\"exports\",\"./cssNodes\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNodes\"),r=e(\"../utils/arrays\"),i=function(){function e(e,t){this.offset=e,this.length=t,this.symbols=[],this.parent=null,this.children=[]}return e.prototype.addChild=function(e){this.children.push(e),e.setParent(this)},e.prototype.setParent=function(e){this.parent=e},e.prototype.findScope=function(e,t){return void 0===t&&(t=0),this.offset<=e&&this.offset+this.length>e+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,i=r.findFirst(this.children,(function(e){return e.offset>n}));if(0===i)return this;var o=this.children[i-1];return o.offset<=e&&o.offset+o.length>=e+t?o.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n<this.symbols.length;n++){var r=this.symbols[n];if(r.name===e&&r.type===t)return r}return null},e.prototype.getSymbols=function(){return this.symbols},e}();t.Scope=i;var o=function(e){function t(){return e.call(this,0,Number.MAX_VALUE)||this}return __extends(t,e),t}(i);t.GlobalScope=o;var s=function(e,t,n,r){this.name=e,this.value=t,this.node=n,this.type=r};t.Symbol=s;var a=function(){function e(e){this.scope=e}return e.prototype.addSymbol=function(e,t,n,r){if(-1!==e.offset){var i=this.scope.findScope(e.offset,e.length);i&&i.addSymbol(new s(t,n,e,r))}},e.prototype.addScope=function(e){if(-1!==e.offset){var t=this.scope.findScope(e.offset,e.length);if(t&&(t.offset!==e.offset||t.length!==e.length)){var n=new i(e.offset,e.length);return t.addChild(n),n}return t}return null},e.prototype.addSymbolToChildScope=function(e,t,n,r,i){if(e&&-1!==e.offset){var o=this.addScope(e);o&&o.addSymbol(new s(n,r,t,i))}},e.prototype.visitNode=function(e){switch(e.type){case n.NodeType.Keyframe:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Keyframe),!0;case n.NodeType.CustomPropertyDeclaration:return this.visitCustomPropertyDeclarationNode(e);case n.NodeType.VariableDeclaration:return this.visitVariableDeclarationNode(e);case n.NodeType.Ruleset:return this.visitRuleSet(e);case n.NodeType.MixinDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Mixin),!0;case n.NodeType.FunctionDeclaration:return this.addSymbol(e,e.getName(),void 0,n.ReferenceType.Function),!0;case n.NodeType.FunctionParameter:return this.visitFunctionParameterNode(e);case n.NodeType.Declarations:return this.addScope(e),!0;case n.NodeType.For:var t=e,r=t.getDeclarations();return r&&t.variable&&this.addSymbolToChildScope(r,t.variable,t.variable.getName(),void 0,n.ReferenceType.Variable),!0;case n.NodeType.Each:var i=e,o=i.getDeclarations();if(o)for(var s=0,a=i.getVariables().getChildren();s<a.length;s++){var l=a[s];this.addSymbolToChildScope(o,l,l.getName(),void 0,n.ReferenceType.Variable)}return!0}return!0},e.prototype.visitRuleSet=function(e){var t=this.scope.findScope(e.offset,e.length);if(t)for(var r=0,i=e.getSelectors().getChildren();r<i.length;r++){var o=i[r];o instanceof n.Selector&&1===o.getChildren().length&&t.addSymbol(new s(o.getChild(0).getText(),void 0,o,n.ReferenceType.Rule))}return!0},e.prototype.visitVariableDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():void 0;return this.addSymbol(e,e.getName(),t,n.ReferenceType.Variable),!0},e.prototype.visitFunctionParameterNode=function(e){var t=e.getParent().getDeclarations();if(t){var r=e.getDefaultValue(),i=r?r.getText():void 0;this.addSymbolToChildScope(t,e,e.getName(),i,n.ReferenceType.Variable)}return!0},e.prototype.visitCustomPropertyDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():\"\";return this.addCSSVariable(e.getProperty(),e.getProperty().getName(),t,n.ReferenceType.Variable),!0},e.prototype.addCSSVariable=function(e,t,n,r){-1!==e.offset&&this.scope.addSymbol(new s(t,n,e,r))},e}();t.ScopeBuilder=a;var l=function(){function e(e){this.global=new o,e.acceptVisitor(new a(this.global))}return e.prototype.findSymbolsAtOffset=function(e,t){for(var n=this.global.findScope(e,0),r=[],i={};n;){for(var o=n.getSymbols(),s=0;s<o.length;s++){var a=o[s];a.type!==t||i[a.name]||(r.push(a),i[a.name]=!0)}n=n.parent}return r},e.prototype.internalFindSymbol=function(e,t){var r=e;if(e.parent instanceof n.FunctionParameter&&e.parent.getParent()instanceof n.BodyDeclaration&&(r=e.parent.getParent().getDeclarations()),e.parent instanceof n.FunctionArgument&&e.parent.getParent()instanceof n.Function){var i=e.parent.getParent().getIdentifier();if(i){var o=this.internalFindSymbol(i,[n.ReferenceType.Function]);o&&(r=o.node.getDeclarations())}}if(!r)return null;for(var s=e.getText(),a=this.global.findScope(r.offset,r.length);a;){for(var l=0;l<t.length;l++){var c=t[l],d=a.getSymbol(s,c);if(d)return d}a=a.parent}return null},e.prototype.evaluateReferenceTypes=function(e){if(e instanceof n.Identifier){var t=e.referenceTypes;if(t)return t;if(e.isCustomProperty)return[n.ReferenceType.Variable];var r=n.getParentDeclaration(e);if(r){var i=r.getNonPrefixedPropertyName();if((\"animation\"===i||\"animation-name\"===i)&&r.getValue()&&r.getValue().offset===e.offset)return[n.ReferenceType.Keyframe]}}else if(e instanceof n.Variable)return[n.ReferenceType.Variable];return e.findAParent(n.NodeType.Selector,n.NodeType.ExtendsReference)?[n.ReferenceType.Rule]:null},e.prototype.findSymbolFromNode=function(e){if(!e)return null;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();var t=this.evaluateReferenceTypes(e);return t?this.internalFindSymbol(e,t):null},e.prototype.matchesSymbol=function(e,t){if(!e)return!1;for(;e.type===n.NodeType.Interpolation;)e=e.getParent();if(!e.matches(t.name))return!1;var r=this.evaluateReferenceTypes(e);return!(!r||-1===r.indexOf(t.type))&&this.internalFindSymbol(e,r)===t},e.prototype.findSymbol=function(e,t,n){for(var r=this.global.findScope(n);r;){var i=r.getSymbol(e,t);if(i)return i;r=r.parent}return null},e}();t.Symbols=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.difference=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;i<t.length+1;++i)a.push(0);for(i=0;i<e.length+1;++i)s.push(a);for(i=1;i<e.length+1;++i)for(o=1;o<t.length+1;++o)e[i-1]===t[o-1]?s[i][o]=s[i-1][o-1]+1:s[i][o]=Math.max(s[i-1][o],s[i][o-1]);return s[e.length][t.length]-Math.sqrt(r)},t.getLimitedString=function(e,t){return void 0===t&&(t=!0),e?e.length<140?e:e.slice(0,140)+(t?\"…\":\"\"):\"\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,i,o,s,a,l,c,d,p,h,m,u;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.number(t.line)&&x.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,i){if(x.number(e)&&x.number(t)&&x.number(r)&&x.number(i))return{start:n.create(e,t),end:n.create(r,i)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+i+\"]\")},e.is=function(e){var t=e;return x.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.string(t.uri)||x.undefined(t.uri))}}(i=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.targetRange)&&x.string(t.targetUri)&&(r.is(t.targetSelectionRange)||x.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||x.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return x.number(t.red)&&x.number(t.green)&&x.number(t.blue)&&x.number(t.alpha)}}(o=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&o.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return x.string(t.label)&&(x.undefined(t.textEdit)||c.is(t))&&(x.undefined(t.additionalTextEdits)||x.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return x.defined(n)&&(o.startCharacter=n),x.defined(r)&&(o.endCharacter=r),x.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return x.number(t.startLine)&&x.number(t.startLine)&&(x.undefined(t.startCharacter)||x.number(t.startCharacter))&&(x.undefined(t.endCharacter)||x.number(t.endCharacter))&&(x.undefined(t.kind)||x.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return x.defined(t)&&i.is(t.location)&&x.string(t.message)}}(s=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,i,o){var s={range:e,message:t};return x.defined(n)&&(s.severity=n),x.defined(r)&&(s.code=r),x.defined(i)&&(s.source=i),x.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&x.string(t.message)&&(x.number(t.severity)||x.undefined(t.severity))&&(x.number(t.code)||x.string(t.code)||x.undefined(t.code))&&(x.string(t.source)||x.undefined(t.source))&&(x.undefined(t.relatedInformation)||x.typedArray(t.relatedInformation,s.is))}}(a=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return x.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.title)&&x.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return x.objectLiteral(t)&&x.string(t.newText)&&r.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return x.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(p=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&x.string(t.oldUri)&&x.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||x.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||x.boolean(t.options.ignoreIfExists)))}}(h=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&x.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||x.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||x.boolean(t.options.ignoreIfNotExists)))}}(m=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return x.string(e.kind)?p.is(e)||h.is(e)||m.is(e):d.is(e)})))}}(u=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,y,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new v(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new v(i),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new v(i),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(m.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&(null===t.version||x.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return x.defined(t)&&x.string(t.uri)&&x.string(t.languageId)&&x.number(t.version)&&x.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return x.objectLiteral(e)&&g.is(t.kind)&&x.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return x.string(t)||x.objectLiteral(t)&&x.string(t.language)&&x.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&x.objectLiteral(t)&&(b.is(t.contents)||y.is(t.contents)||x.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return x.defined(t)&&(i.documentation=t),x.defined(n)?i.parameters=n:i.parameters=[],i}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return x.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,i,o){var s={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(s.children=o),s},e.is=function(e){var t=e;return t&&x.string(t.name)&&x.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||x.string(t.detail))&&(void 0===t.deprecated||x.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return x.defined(t)&&x.typedArray(t.diagnostics,a.is)&&(void 0===t.only||x.typedArray(t.only,x.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return l.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&x.string(t.title)&&(void 0===t.diagnostics||x.typedArray(t.diagnostics,a.is))&&(void 0===t.kind||x.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||x.boolean(t.isPreferred))&&(void 0===t.edit||u.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return x.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return x.defined(t)&&x.number(t.tabSize)&&x.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return x.defined(t)&&r.is(t.range)&&(x.undefined(t.target)||x.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new S(e,t,n,r)},e.is=function(e){var t=e;return!!(x.defined(t)&&x.string(t.uri)&&(x.undefined(t.languageId)||x.string(t.languageId))&&x.number(t.lineCount)&&x.func(t.getText)&&x.func(t.positionAt)&&x.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,o=r.length-1;o>=0;o--){var s=r[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,a)+s.newText+n.substring(l,n.length),i=a}return n}}(t.TextDocument||(t.TextDocument={}));var x,S=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n=\"\\r\"===i||\"\\n\"===i,\"\\r\"===i&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,i=t.length;if(0===i)return n.create(0,e);for(;r<i;){var o=Math.floor((r+i)/2);t[o]>e?i=o:r=o+1}var s=r-1;return n.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(x||(x={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var o=0,s=t;o<s.length;o++){var a=s[o];if(e.isIncremental(a)){var l=i(a.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+a.text+this._content.substring(d,this._content.length);var p=Math.max(l.start.line,0),h=Math.max(l.end.line,0),m=this._lineOffsets,u=r(a.text,!1,c);if(h-p===u.length)for(var f=0,g=u.length;f<g;f++)m[f+p+1]=u[f];else u.length<1e4?m.splice.apply(m,[p+1,h-p].concat(u)):this._lineOffsets=m=m.slice(0,p+1).concat(u,m.slice(h+1));var b=a.text.length-(d-c);if(0!==b)for(f=p+1+u.length,g=m.length;f<g;f++)m[f]=m[f]+b}else{if(!e.isFull(a))throw new Error(\"Unknown change event received\");this._content=a.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function i(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function o(e){var t=i(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,i){return new n(e,t,r,i)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,i=t.slice(0,r),o=t.slice(r);e(i,n),e(o,n);var s=0,a=0,l=0;for(;s<i.length&&a<o.length;){var c=n(i[s],o[a]);t[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)t[l++]=i[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t.map(o),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=n.length,s=r.length-1;s>=0;s--){var a=r[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=i))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+a.newText+n.substring(c,n.length),i=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.File=1]=\"File\",e[e.Directory=2]=\"Directory\",e[e.SymbolicLink=64]=\"SymbolicLink\"}(t.FileType||(t.FileType={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCompletion\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\",\"../cssLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"../parser/cssNodes\"),i=e(\"../parser/cssSymbolScope\"),o=e(\"../languageFacts/facts\"),s=e(\"../utils/strings\"),a=e(\"../cssLanguageTypes\"),l=e(\"vscode-nls\"),c=e(\"../utils/objects\"),d=l.loadMessageBundle(),p=a.InsertTextFormat.Snippet;!function(e){e.Enums=\" \",e.Normal=\"d\",e.VendorPrefixed=\"x\",e.Term=\"y\",e.Variable=\"z\"}(n||(n={}));var h=function(){function e(e,t){void 0===e&&(e=null),this.variablePrefix=e,this.clientCapabilities=t,this.completionParticipants=[],this.valueTypes=[r.NodeType.Identifier,r.NodeType.Value,r.NodeType.StringLiteral,r.NodeType.URILiteral,r.NodeType.NumericValue,r.NodeType.HexColorValue,r.NodeType.VariableName,r.NodeType.Prio]}return e.prototype.configure=function(e){this.settings=e},e.prototype.getSymbolContext=function(){return this.symbolContext||(this.symbolContext=new i.Symbols(this.styleSheet)),this.symbolContext},e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n){this.offset=e.offsetAt(t),this.position=t,this.currentWord=function(e,t){var n=t-1,r=e.getText();for(;n>=0&&-1===' \\t\\n\\r\":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n;try{var i={isIncomplete:!1,items:[]};this.nodePath=r.getNodePath(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof r.Property)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof r.Expression)s.parent instanceof r.Interpolation?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof r.SimpleSelector){var l=s.findAParent(r.NodeType.ExtendsReference,r.NodeType.Ruleset);if(l)if(l.type===r.NodeType.ExtendsReference)this.getCompletionsForExtendsReference(l,s,i);else{var c=l;this.getCompletionsForSelector(c,c&&c.isNested(),i)}}else if(s instanceof r.FunctionArgument)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof r.Declarations)this.getCompletionsForDeclarations(s,i);else if(s instanceof r.VariableDeclaration)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof r.RuleSet)this.getCompletionsForRuleSet(s,i);else if(s instanceof r.Interpolation)this.getCompletionsForInterpolation(s,i);else if(s instanceof r.FunctionDeclaration)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof r.MixinReference)this.getCompletionsForMixinReference(s,i);else if(s instanceof r.Function)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof r.Supports)this.getCompletionsForSupports(s,i);else if(s instanceof r.SupportsCondition)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof r.ExtendsReference)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===r.NodeType.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==r.NodeType.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===r.NodeType.Import},e.prototype.finalize=function(e){return e.items.some((function(e){return!!e.sortText||\"-\"===e.label[0]}))&&e.items.forEach((function(e,t){e.sortText?\"-\"===e.label[0]?e.sortText+=n.VendorPrefixed+\"_\"+u(t):e.sortText+=n.Normal+\"_\"+u(t):\"-\"===e.label[0]?e.sortText=n.VendorPrefixed+\"_\"+u(t):e.sortText=n.Normal+\"_\"+u(t)})),e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.nodePath.length-1;n>=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var r=this,i=this.isTriggerPropertyValueCompletionEnabled,l=this.isCompletePropertyWithSemicolonEnabled;return o.cssDataManager.getProperties().forEach((function(d){var p,h,u=!1;e?(p=r.getCompletionRange(e.getProperty()),h=d.name,c.isDefined(e.colonPosition)||(h+=\": \",u=!0)):(p=r.getCompletionRange(null),h=d.name+\": \",u=!0),!e&&l&&(h+=\"$0;\"),e&&!e.semicolonPosition&&l&&r.offset>=r.textDocument.offsetAt(p.end)&&(h+=\"$0;\");var f={label:d.name,documentation:o.getEntryDescription(d,r.doesSupportMarkdown()),tags:m(d)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(p,h),insertTextFormat:a.InsertTextFormat.Snippet,kind:a.CompletionItemKind.Property};d.restrictions||(u=!1),i&&u&&(f.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),s.startsWith(d.name,\"-\")&&(f.sortText=n.VendorPrefixed),t.items.push(f)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:r.currentWord,range:r.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,\"isTriggerPropertyValueCompletionEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.triggerPropertyValueCompletion||this.settings.completion.triggerPropertyValueCompletion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"isCompletePropertyWithSemicolonEnabled\",{get:function(){return!this.settings||!this.settings.completion||void 0===this.settings.completion.completePropertyWithSemicolon||this.settings.completion.completePropertyWithSemicolon},enumerable:!0,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,i=e.getFullPropertyName(),s=o.cssDataManager.getProperty(i),l=e.getValue()||null;l&&l.hasChildren();)l=l.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:i,propertyValue:n.currentWord,range:n.getCompletionRange(l)})})),s){if(s.restrictions)for(var c=0,d=s.restrictions;c<d.length;c++){switch(d[c]){case\"color\":this.getColorProposals(s,l,t);break;case\"position\":this.getPositionProposals(s,l,t);break;case\"repeat\":this.getRepeatStyleProposals(s,l,t);break;case\"line-style\":this.getLineStyleProposals(s,l,t);break;case\"line-width\":this.getLineWidthProposals(s,l,t);break;case\"geometry-box\":this.getGeometryBoxProposals(s,l,t);break;case\"box\":this.getBoxProposals(s,l,t);break;case\"image\":this.getImageProposals(s,l,t);break;case\"timing-function\":this.getTimingFunctionProposals(s,l,t);break;case\"shape\":this.getBasicShapeProposals(s,l,t)}}this.getValueEnumProposals(s,l,t),this.getCSSWideKeywordProposals(s,l,t),this.getUnitProposals(s,l,t)}else for(var p=0,h=function(e,t){var n=t.getFullPropertyName(),i=new f;function o(e){return(e instanceof r.Identifier||e instanceof r.NumericValue||e instanceof r.HexColorValue)&&i.add(e.getText()),!0}return e.accept((function(e){if(e instanceof r.Declaration&&e!==t&&function(e){var t=e.getFullPropertyName();return n===t}(e)){var i=e.getValue();i&&i.accept(o)}return!0})),i}(this.styleSheet,e).getEntries();p<h.length;p++){var m=h[p];t.items.push({label:m,textEdit:a.TextEdit.replace(this.getCompletionRange(l),m),kind:a.CompletionItemKind.Value})}return this.getVariableProposals(l,t),this.getTermProposals(s,l,t),t},e.prototype.getValueEnumProposals=function(e,t,r){if(e.values)for(var i=0,l=e.values;i<l.length;i++){var c=l[i],d=c.name,h=void 0;if(s.endsWith(d,\")\")){var u=d.lastIndexOf(\"(\");-1!==u&&(d=d.substr(0,u)+\"($1)\",h=p)}var f={label:c.name,documentation:o.getEntryDescription(c,this.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],textEdit:a.TextEdit.replace(this.getCompletionRange(t),d),sortText:n.Enums,kind:a.CompletionItemKind.Value,insertTextFormat:h};r.items.push(f)}return r},e.prototype.getCSSWideKeywordProposals=function(e,t,n){for(var r in o.cssWideKeywords)n.items.push({label:r,documentation:o.cssWideKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getCompletionsForInterpolation=function(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable);i<o.length;i++){var l=o[i],c=s.startsWith(l.name,\"--\")?\"var(\"+l.name+\")\":l.name,p={label:l.name,documentation:l.value?s.getLimitedString(l.value):l.value,textEdit:a.TextEdit.replace(this.getCompletionRange(e),c),kind:a.CompletionItemKind.Variable,sortText:n.Variable};if(\"string\"==typeof p.documentation&&y(p.documentation)&&(p.kind=a.CompletionItemKind.Color),l.node.type===r.NodeType.FunctionParameter){var h=l.node.getParent();h.type===r.NodeType.MixinDeclaration&&(p.detail=d(\"completion.argument\",\"argument from '{0}'\",h.getName()))}t.items.push(p)}return t},e.prototype.getVariableProposalsForCSSVarFunction=function(e){for(var t=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Variable),n=0,i=t=t.filter((function(e){return s.startsWith(e.name,\"--\")}));n<i.length;n++){var o=i[n],l={label:o.name,documentation:o.value?s.getLimitedString(o.value):o.value,textEdit:a.TextEdit.replace(this.getCompletionRange(null),o.name),kind:a.CompletionItemKind.Variable};\"string\"==typeof l.documentation&&y(l.documentation)&&(l.kind=a.CompletionItemKind.Color),e.items.push(l)}return e},e.prototype.getUnitProposals=function(e,t,n){var i=\"0\";if(this.currentWord.length>0){var s=this.currentWord.match(/^-?\\d[\\.\\d+]*/);s&&(i=s[0],n.isIncomplete=i.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===r.NodeType.Term&&(t=t.getParent()),e.restrictions)for(var l=0,c=e.restrictions;l<c.length;l++){var d=c[l],p=o.units[d];if(p)for(var h=0,m=p;h<m.length;h++){var u=i+m[h];n.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(t),u),kind:a.CompletionItemKind.Unit})}}return n},e.prototype.getCompletionRange=function(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){var t=-1!==e.end?this.textDocument.positionAt(e.end):this.position,n=this.textDocument.positionAt(e.offset);if(n.line===t.line)return a.Range.create(n,t)}return this.defaultReplaceRange},e.prototype.getColorProposals=function(e,t,n){for(var r in o.colors)n.items.push({label:r,documentation:o.colors[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color});for(var r in o.colorKeywords)n.items.push({label:r,documentation:o.colorKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});var i=new f;this.styleSheet.acceptVisitor(new b(i,this.offset));for(var s=0,l=i.getEntries();s<l.length;s++){r=l[s];n.items.push({label:r,textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Color})}for(var c=function(e){var r=1,i=e.func.replace(/\\[?\\$(\\w+)\\]?/g,(function(e,t){return\"${\"+r+++\":\"+t+\"}\"}));n.items.push({label:e.func.substr(0,e.func.indexOf(\"(\")),detail:e.func,documentation:e.desc,textEdit:a.TextEdit.replace(d.getCompletionRange(t),i),insertTextFormat:p,kind:a.CompletionItemKind.Function})},d=this,h=0,m=o.colorFunctions;h<m.length;h++){c(m[h])}return n},e.prototype.getPositionProposals=function(e,t,n){for(var r in o.positionKeywords)n.items.push({label:r,documentation:o.positionKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getRepeatStyleProposals=function(e,t,n){for(var r in o.repeatStyleKeywords)n.items.push({label:r,documentation:o.repeatStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineStyleProposals=function(e,t,n){for(var r in o.lineStyleKeywords)n.items.push({label:r,documentation:o.lineStyleKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getLineWidthProposals=function(e,t,n){for(var r=0,i=o.lineWidthKeywords;r<i.length;r++){var s=i[r];n.items.push({label:s,textEdit:a.TextEdit.replace(this.getCompletionRange(t),s),kind:a.CompletionItemKind.Value})}return n},e.prototype.getGeometryBoxProposals=function(e,t,n){for(var r in o.geometryBoxKeywords)n.items.push({label:r,documentation:o.geometryBoxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getBoxProposals=function(e,t,n){for(var r in o.boxKeywords)n.items.push({label:r,documentation:o.boxKeywords[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),r),kind:a.CompletionItemKind.Value});return n},e.prototype.getImageProposals=function(e,t,n){for(var r in o.imageFunctions){var i=g(r);n.items.push({label:r,documentation:o.imageFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getTimingFunctionProposals=function(e,t,n){for(var r in o.transitionTimingFunctions){var i=g(r);n.items.push({label:r,documentation:o.transitionTimingFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getBasicShapeProposals=function(e,t,n){for(var r in o.basicShapeFunctions){var i=g(r);n.items.push({label:r,documentation:o.basicShapeFunctions[r],textEdit:a.TextEdit.replace(this.getCompletionRange(t),i),kind:a.CompletionItemKind.Function,insertTextFormat:r!==i?p:void 0})}return n},e.prototype.getCompletionsForStylesheet=function(e){var t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof r.RuleSet?this.getCompletionsForRuleSet(t,e):t instanceof r.Supports?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)},e.prototype.getCompletionForTopLevel=function(e){var t=this;return o.cssDataManager.getAtDirectives().forEach((function(n){e.items.push({label:n.name,textEdit:a.TextEdit.replace(t.getCompletionRange(null),n.name),documentation:o.getEntryDescription(n,t.doesSupportMarkdown()),tags:m(n)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Keyword})})),this.getCompletionsForSelector(null,!1,e),e},e.prototype.getCompletionsForRuleSet=function(e,t){var n=e.getDeclarations();return n&&n.endsWith(\"}\")&&this.offset>=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,i){var l=this,c=this.findInNodePath(r.NodeType.PseudoSelector,r.NodeType.IdentifierSelector,r.NodeType.ClassSelector,r.NodeType.ElementNameSelector);if(!c&&this.offset-this.currentWord.length>0&&\":\"===this.textDocument.getText()[this.offset-this.currentWord.length-1]&&(this.currentWord=\":\"+this.currentWord,this.defaultReplaceRange=a.Range.create(a.Position.create(this.position.line,this.position.character-this.currentWord.length),this.position)),o.cssDataManager.getPseudoClasses().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\":-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),o.cssDataManager.getPseudoElements().forEach((function(e){var t=g(e.name),r={label:e.name,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),documentation:o.getEntryDescription(e,l.doesSupportMarkdown()),tags:m(e)?[a.CompletionItemTag.Deprecated]:[],kind:a.CompletionItemKind.Function,insertTextFormat:e.name!==t?p:void 0};s.startsWith(e.name,\"::-\")&&(r.sortText=n.VendorPrefixed),i.items.push(r)})),!t){for(var d=0,h=o.html5Tags;d<h.length;d++){var u=h[d];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}for(var f=0,b=o.svgElements;f<b.length;f++){u=b[f];i.items.push({label:u,textEdit:a.TextEdit.replace(this.getCompletionRange(c),u),kind:a.CompletionItemKind.Keyword})}}var y={};y[this.currentWord]=!0;var v=this.textDocument.getText();if(this.styleSheet.accept((function(e){if(e.type===r.NodeType.SimpleSelector&&e.length>0){var t=v.substr(e.offset,e.length);return\".\"!==t.charAt(0)||y[t]||(y[t]=!0,i.items.push({label:t,textEdit:a.TextEdit.replace(l.getCompletionRange(c),t),kind:a.CompletionItemKind.Keyword})),!1}return!0})),e&&e.isNested()){var w=e.getSelectors().findFirstChildBeforeOffset(this.offset);w&&0===e.getSelectors().getChildren().indexOf(w)&&this.getPropertyProposals(null,i)}return i},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof r.AbstractDeclaration){var i=n;if(!c.isDefined(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(c.isDefined(i.semicolonPosition)&&i.semicolonPosition<this.offset)return this.offset===i.semicolonPosition+1?t:this.getCompletionsForDeclarationProperty(null,t);if(i instanceof r.Declaration)return this.getCompletionsForDeclarationValue(i,t)}else n instanceof r.ExtendsReference?this.getCompletionsForExtendsReference(n,null,t):this.currentWord&&\"@\"===this.currentWord[0]&&this.getCompletionsForDeclarationProperty(null,t);return t},e.prototype.getCompletionsForVariableDeclaration=function(e,t){return this.offset&&c.isDefined(e.colonPosition)&&this.offset>e.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof r.FunctionArgument)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var i=e.findParent(r.NodeType.Declaration);if(!i)return this.getTermProposals(null,null,t),t;var o=e.findChildAtOffset(this.offset,!0);return o?o instanceof r.NumericValue||o instanceof r.Identifier?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches(\"var\")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offset<n.end&&this.getTermProposals(null,null,t),t},e.prototype.getCompletionsForMixinReference=function(e,t){for(var n=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Mixin);n<i.length;n++){var o=i[n];o.node instanceof r.MixinDeclaration&&t.items.push(this.makeTermProposal(o,o.node.getParameters(),null))}return t},e.prototype.getTermProposals=function(e,t,n){for(var i=0,o=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Function);i<o.length;i++){var s=o[i];s.node instanceof r.FunctionDeclaration&&n.items.push(this.makeTermProposal(s,s.node.getParameters(),t))}return n},e.prototype.makeTermProposal=function(e,t,i){e.node;var o=t.getChildren().map((function(e){return e instanceof r.FunctionParameter?e.getName():e.getText()})),s=e.name+\"(\"+o.map((function(e,t){return\"${\"+(t+1)+\":\"+e+\"}\"})).join(\", \")+\")\";return{label:e.name,detail:e.name+\"(\"+o.join(\", \")+\")\",textEdit:a.TextEdit.replace(this.getCompletionRange(i),s),insertTextFormat:p,kind:a.CompletionItemKind.Function,sortText:n.Term}},e.prototype.getCompletionsForSupportsCondition=function(e,t){var n=e.findFirstChildBeforeOffset(this.offset);if(n){if(n instanceof r.Declaration)return!c.isDefined(n.colonPosition)||this.offset<=n.colonPosition?this.getCompletionsForDeclarationProperty(n,t):this.getCompletionsForDeclarationValue(n,t);if(n instanceof r.SupportsCondition)return this.getCompletionsForSupportsCondition(n,t)}return c.isDefined(e.lParent)&&this.offset>e.lParent&&(!c.isDefined(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof r.SupportsCondition?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n=\"\",r=this.position;var s=this.textDocument.positionAt(e.offset+\"url(\".length);i=a.Range.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.doesSupportMarkdown=function(){if(!c.isDefined(this.supportsMarkdown)){if(!c.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(a.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return!(!e.status||\"nonstandard\"!==e.status&&\"obsolete\"!==e.status)}function u(e){var t=e.toString();switch(t.length){case 4:return t;case 3:return\"0\"+t;case 2:return\"00\"+t;case 1:return\"000\"+t;default:return\"0000\"}}t.CSSCompletion=h;var f=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function g(e){return e.replace(/\\(\\)$/,\"($1)\")}var b=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof r.HexColorValue||e instanceof r.Function&&o.isColorConstructor(e))&&(this.currentOffset<e.offset||e.end<this.currentOffset)&&this.entries.add(e.getText()),!0},e}();function y(e){return e.toLowerCase()in o.colors||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/selectorPrinting\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../parser/cssScanner\",\"../languageFacts/facts\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../parser/cssScanner\"),i=e(\"../languageFacts/facts\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t<n.length;t++){var r=n[t];if(r.name===e)return r.value}return null},e.prototype.addChild=function(t){t instanceof e&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)},e.prototype.append=function(e){if(this.attributes){var t=this.attributes[this.attributes.length-1];t.value=t.value+e}},e.prototype.prepend=function(e){if(this.attributes){var t=this.attributes[0];t.value=e+t.value}},e.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof a);)e=e.parent;return e},e.prototype.removeChild=function(e){if(this.children){var t=this.children.indexOf(e);if(-1!==t)return this.children.splice(t,1),!0}return!1},e.prototype.addAttr=function(e,t){this.attributes||(this.attributes=[]);for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return void(i.value+=\" \"+t)}this.attributes.push({name:e,value:t})},e.prototype.clone=function(t){void 0===t&&(t=!0);var n=new e;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var o=i[r];n.addAttr(o.name,o.value)}}if(t&&this.children){n.children=[];for(var s=0;s<this.children.length;s++)n.addChild(this.children[s].clone())}return n},e.prototype.cloneWithParent=function(){var e=this.clone(!1);!this.parent||this.parent instanceof a||this.parent.cloneWithParent().addChild(e);return e},e}();t.Element=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t}(s);t.RootElement=a;var l=function(e){function t(t){var n=e.call(this)||this;return n.addAttr(\"name\",t),n}return __extends(t,e),t}(s);t.LabelElement=l;var c,d=function(){function e(e){this.quote=e,this.result=[]}return e.prototype.print=function(e){return this.result=[],e instanceof a?e.children&&this.doPrint(e.children,0):this.doPrint([e],0),[{language:\"html\",value:this.result.join(\"\\n\")}]},e.prototype.doPrint=function(e,t){for(var n=0,r=e;n<r.length;n++){var i=r[n];this.doPrintElement(i,t),i.children&&this.doPrint(i.children,t+1)}},e.prototype.writeLine=function(e,t){var n=new Array(e+1).join(\"  \");this.result.push(n+t)},e.prototype.doPrintElement=function(e,t){var n=e.findAttribute(\"name\");if(e instanceof l||\"…\"===n)this.writeLine(t,n);else{var r=[\"<\"];if(n?r.push(n):r.push(\"element\"),e.attributes)for(var i=0,o=e.attributes;i<o.length;i++){var s=o[i];if(\"name\"!==s.name){r.push(\" \"),r.push(s.name);var a=s.value;a&&(r.push(\"=\"),r.push(c.ensure(a,this.quote)))}}r.push(\">\"),this.writeLine(t,r.join(\"\"))}},e}();!function(e){function t(e){var t=e.match(/^['\"](.*)[\"']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(c||(c={}));var p=function(){this.id=0,this.attr=0,this.tag=0};function h(e,t){for(var r=new s,i=0,o=e.getChildren();i<o.length;i++){var a=o[i];switch(a.type){case n.NodeType.SelectorCombinator:if(t){var l=a.getText().split(\"&\");if(1===l.length){r.addAttr(\"name\",l[0]);break}if(r=t.cloneWithParent(),l[0])r.findRoot().prepend(l[0]);for(var d=1;d<l.length;d++){if(d>1){var p=t.cloneWithParent();r.addChild(p.findRoot()),r=p}r.append(l[d])}}break;case n.NodeType.SelectorPlaceholder:if(a.matches(\"@at-root\"))return r;case n.NodeType.ElementNameSelector:var h=a.getText();r.addAttr(\"name\",\"*\"===h?\"element\":m(h));break;case n.NodeType.ClassSelector:r.addAttr(\"class\",m(a.getText().substring(1)));break;case n.NodeType.IdentifierSelector:r.addAttr(\"id\",m(a.getText().substring(1)));break;case n.NodeType.MixinDeclaration:r.addAttr(\"class\",a.getName());break;case n.NodeType.PseudoSelector:r.addAttr(m(a.getText()),\"\");break;case n.NodeType.AttributeSelector:var u=a,f=u.getIdentifier();if(f){var g=u.getValue(),b=u.getOperator(),y=void 0;if(g&&b)switch(m(b.getText())){case\"|=\":y=c.remove(m(g.getText()))+\"-…\";break;case\"^=\":y=c.remove(m(g.getText()))+\"…\";break;case\"$=\":y=\"…\"+c.remove(m(g.getText()));break;case\"~=\":y=\" … \"+c.remove(m(g.getText()))+\" … \";break;case\"*=\":y=\"…\"+c.remove(m(g.getText()))+\"…\";break;default:y=c.remove(m(g.getText()))}r.addAttr(m(f.getText()),y)}}}return r}function m(e){var t=new r.Scanner;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}function u(e){var t=new p;return function e(r){r.getChildren().forEach((function(r){switch(r.type){case n.NodeType.IdentifierSelector:t.id++;break;case n.NodeType.ClassSelector:case n.NodeType.AttributeSelector:t.attr++;break;case n.NodeType.ElementNameSelector:if(r.matches(\"*\"))break;t.tag++;break;case n.NodeType.PseudoSelector:var o=r.getText();if(function(e){var t=e.match(/^::?([\\w-]+)/);return!!t&&!!i.cssDataManager.getPseudoElement(\"::\"+t[1])}(o))t.tag++;else{if(o.match(/^:not/i))break;t.attr++}}r.getChildren().length>0&&e(r)}))}(e),o(\"specificity\",\"[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})\",t.id,t.attr,t.tag)}t.toElement=h,t.selectorToMarkedString=function(e){var t=b(e);if(t){var n=new d('\"').print(t);return n.push(u(e)),n}return[]},t.simpleSelectorToMarkedString=function(e){var t=h(e),n=new d('\"').print(t);return n.push(u(e)),n};var f=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof a)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===n.NodeType.SelectorCombinator}))){var r=this.element.findRoot();r.parent instanceof a&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(var i=0,o=e.getChildren();i<o.length;i++){var s=o[i];if(s instanceof n.SimpleSelector){if(this.prev instanceof n.SimpleSelector){var c=new l(\"…\");this.element.addChild(c),this.element=c}else this.prev&&(this.prev.matches(\"+\")||this.prev.matches(\"~\"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches(\"~\")&&(this.element.addChild(h(s)),this.element.addChild(new l(\"⋮\")));var d=h(s,t),p=d.findRoot();this.element.addChild(p),this.element=d}(s instanceof n.SimpleSelector||s.type===n.NodeType.SelectorCombinatorParent||s.type===n.NodeType.SelectorCombinatorShadowPiercingDescendant||s.type===n.NodeType.SelectorCombinatorSibling||s.type===n.NodeType.SelectorCombinatorAllSiblings)&&(this.prev=s)}},e}();function g(e){switch(e.type){case n.NodeType.MixinDeclaration:case n.NodeType.Stylesheet:return!0}return!1}function b(e){if(e.matches(\"@at-root\"))return null;var t=new a,r=[],i=e.getParent();if(i instanceof n.RuleSet)for(var o=i.getParent();o&&!g(o);){if(o instanceof n.RuleSet){if(o.getSelectors().matches(\"@at-root\"))break;r.push(o)}o=o.getParent()}for(var s=new f(t),l=r.length-1;l>=0;l--){var c=r[l].getSelectors().getChild(0);c&&s.processSelector(c)}return s.processSelector(e),t}t.selectorToElement=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssHover\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"./selectorPrinting\",\"../utils/strings\",\"../cssLanguageTypes\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"./selectorPrinting\"),o=e(\"../utils/strings\"),s=e(\"../cssLanguageTypes\"),a=e(\"../utils/objects\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,a){function l(t){return s.Range.create(e.positionAt(t.offset),e.positionAt(t.end))}for(var c=e.offsetAt(t),d=n.getNodePath(a,c),p=null,h=0;h<d.length;h++){var m=d[h];if(m instanceof n.Selector){p={contents:i.selectorToMarkedString(m),range:l(m)};break}if(m instanceof n.SimpleSelector){o.startsWith(m.getText(),\"@\")||(p={contents:i.simpleSelectorToMarkedString(m),range:l(m)});break}if(m instanceof n.Declaration){var u=m.getFullPropertyName();(g=r.cssDataManager.getProperty(u))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.UnknownAtRule){var f=m.getText();(g=r.cssDataManager.getAtDirective(f))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else if(m instanceof n.Node&&m.type===n.NodeType.PseudoSelector){var g,b=m.getText();(g=\"::\"===b.slice(0,2)?r.cssDataManager.getPseudoElement(b):r.cssDataManager.getPseudoClass(b))&&(p={contents:r.getEntryDescription(g,this.doesSupportMarkdown()),range:l(m)})}else;}return p&&(p.contents=this.convertContents(p.contents)),p},e.prototype.convertContents=function(e){return this.doesSupportMarkdown()?e:\"string\"==typeof e?e:\"kind\"in e?{kind:\"plaintext\",value:e.value}:Array.isArray(e)?e.map((function(e){return\"string\"==typeof e?e:e.value})):e.value},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){if(!a.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.CSSHover=l}));var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssNavigation\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"vscode-nls\",\"../parser/cssNodes\",\"../parser/cssSymbolScope\",\"../languageFacts/facts\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"vscode-nls\"),i=e(\"../parser/cssNodes\"),o=e(\"../parser/cssSymbolScope\"),s=e(\"../languageFacts/facts\"),a=e(\"../utils/strings\"),l=r.loadMessageBundle(),c=function(){function e(){}return e.prototype.findDefinition=function(e,t,n){var r=new o.Symbols(n),s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a)return null;var l=r.findSymbolFromNode(a);return l?{uri:e.uri,range:p(l.node,e)}:null},e.prototype.findReferences=function(e,t,n){return this.findDocumentHighlights(e,t,n).map((function(t){return{uri:e.uri,range:t.range}}))},e.prototype.findDocumentHighlights=function(e,t,n){var r=[],s=e.offsetAt(t),a=i.getNodeAtOffset(n,s);if(!a||a.type===i.NodeType.Stylesheet||a.type===i.NodeType.Declarations)return r;a.type===i.NodeType.Identifier&&a.parent&&a.parent.type===i.NodeType.ClassSelector&&(a=a.parent);var l=new o.Symbols(n),c=l.findSymbolFromNode(a),d=a.getText();return n.accept((function(t){if(c){if(l.matchesSymbol(t,c))return r.push({kind:h(t),range:p(t,e)}),!1}else a&&a.type===t.type&&t.matches(d)&&r.push({kind:h(t),range:p(t,e)});return!0})),r},e.prototype.isRawStringDocumentLinkNode=function(e){return e.type===i.NodeType.Import},e.prototype.findDocumentLinks=function(e,t,n){var r=this,o=[];return t.accept((function(t){if(t.type===i.NodeType.URILiteral)return(s=function(e,t,n){if(0===t.getChildren().length)return null;var r=t.getChild(0);return d(e,r,n)}(e,t,n))&&o.push(s),!1;if(t.parent&&r.isRawStringDocumentLinkNode(t.parent)){var s,l=t.getText();if(a.startsWith(l,\"'\")||a.startsWith(l,'\"'))(s=d(e,t,n))&&o.push(s);return!1}return!0})),o},e.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(r){return[2,this.findDocumentLinks(e,t,n)]}))}))},e.prototype.findDocumentSymbols=function(e,t){var r=[];return t.accept((function(t){var o={name:null,kind:n.SymbolKind.Class,location:null},s=t;if(t instanceof i.Selector)return o.name=t.getText(),(s=t.findAParent(i.NodeType.Ruleset,i.NodeType.ExtendsReference))&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!1;if(t instanceof i.VariableDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Variable;else if(t instanceof i.MixinDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Method;else if(t instanceof i.FunctionDeclaration)o.name=t.getName(),o.kind=n.SymbolKind.Function;else if(t instanceof i.Keyframe)o.name=l(\"literal.keyframes\",\"@keyframes {0}\",t.getName());else if(t instanceof i.FontFace)o.name=l(\"literal.fontface\",\"@font-face\");else if(t instanceof i.Media){var a=t.getChild(0);a instanceof i.Medialist&&(o.name=\"@media \"+a.getText(),o.kind=n.SymbolKind.Module)}return o.name&&(o.location=n.Location.create(e.uri,p(s,e)),r.push(o)),!0})),r},e.prototype.findDocumentColors=function(e,t){var n=[];return t.accept((function(t){var r=function(e,t){var n=s.getColorValue(e);if(n){var r=p(e,t);return{color:n,range:r}}return null}(t,e);return r&&n.push(r),!0})),n},e.prototype.getColorPresentations=function(e,t,r,i){var o,a=[],l=Math.round(255*r.red),c=Math.round(255*r.green),d=Math.round(255*r.blue);o=1===r.alpha?\"rgb(\"+l+\", \"+c+\", \"+d+\")\":\"rgba(\"+l+\", \"+c+\", \"+d+\", \"+r.alpha+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),o=1===r.alpha?\"#\"+m(l)+m(c)+m(d):\"#\"+m(l)+m(c)+m(d)+m(Math.round(255*r.alpha)),a.push({label:o,textEdit:n.TextEdit.replace(i,o)});var p=s.hslFromColor(r);return o=1===p.a?\"hsl(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%)\":\"hsla(\"+p.h+\", \"+Math.round(100*p.s)+\"%, \"+Math.round(100*p.l)+\"%, \"+p.a+\")\",a.push({label:o,textEdit:n.TextEdit.replace(i,o)}),a},e.prototype.doRename=function(e,t,r,i){var o,s=this.findDocumentHighlights(e,t,i).map((function(e){return n.TextEdit.replace(e.range,r)}));return{changes:(o={},o[e.uri]=s,o)}},e}();function d(e,t,n){if(!t)return null;var r=t.getText(),i=p(t,e);return i.start.line===i.end.line&&i.start.character===i.end.character?null:((a.startsWith(r,\"'\")||a.startsWith(r,'\"'))&&(r=r.slice(1,-1)),{range:i,target:a.startsWith(r,\"http://\")||a.startsWith(r,\"https://\")?r:/^\\w+:\\/\\//g.test(r)?r:n.resolveReference(r,e.uri)})}function p(e,t){return n.Range.create(t.positionAt(e.offset),t.positionAt(e.end))}function h(e){if(e.type===i.NodeType.Selector)return n.DocumentHighlightKind.Write;if(e instanceof i.Identifier&&e.parent&&e.parent instanceof i.Property&&e.isCustomProperty)return n.DocumentHighlightKind.Write;if(e.parent)switch(e.parent.type){case i.NodeType.FunctionDeclaration:case i.NodeType.MixinDeclaration:case i.NodeType.Keyframe:case i.NodeType.VariableDeclaration:case i.NodeType.FunctionParameter:return n.DocumentHighlightKind.Write}return n.DocumentHighlightKind.Read}function m(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}t.CSSNavigation=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintRules\",[\"require\",\"exports\",\"../parser/cssNodes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"vscode-nls\").loadMessageBundle(),i=n.Level.Warning,o=n.Level.Error,s=n.Level.Ignore,a=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Rule=a;var l=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n};t.Setting=l,t.Rules={AllVendorPrefixes:new a(\"compatibleVendorPrefixes\",r(\"rule.vendorprefixes.all\",\"When using a vendor-specific prefix make sure to also include all other vendor-specific properties\"),s),IncludeStandardPropertyWhenUsingVendorPrefix:new a(\"vendorPrefix\",r(\"rule.standardvendorprefix.all\",\"When using a vendor-specific prefix also include the standard property\"),i),DuplicateDeclarations:new a(\"duplicateProperties\",r(\"rule.duplicateDeclarations\",\"Do not use duplicate style definitions\"),s),EmptyRuleSet:new a(\"emptyRules\",r(\"rule.emptyRuleSets\",\"Do not use empty rulesets\"),i),ImportStatemement:new a(\"importStatement\",r(\"rule.importDirective\",\"Import statements do not load in parallel\"),s),BewareOfBoxModelSize:new a(\"boxModel\",r(\"rule.bewareOfBoxModelSize\",\"Do not use width or height when using padding or border\"),s),UniversalSelector:new a(\"universalSelector\",r(\"rule.universalSelector\",\"The universal selector (*) is known to be slow\"),s),ZeroWithUnit:new a(\"zeroUnits\",r(\"rule.zeroWidthUnit\",\"No unit for zero needed\"),s),RequiredPropertiesForFontFace:new a(\"fontFaceProperties\",r(\"rule.fontFaceProperties\",\"@font-face rule must define 'src' and 'font-family' properties\"),i),HexColorLength:new a(\"hexColorLength\",r(\"rule.hexColor\",\"Hex colors must consist of three, four, six or eight hex numbers\"),o),ArgsInColorFunction:new a(\"argumentsInColorFunction\",r(\"rule.colorFunction\",\"Invalid number of parameters\"),o),UnknownProperty:new a(\"unknownProperties\",r(\"rule.unknownProperty\",\"Unknown property.\"),i),UnknownAtRules:new a(\"unknownAtRules\",r(\"rule.unknownAtRules\",\"Unknown at-rule.\"),i),IEStarHack:new a(\"ieHack\",r(\"rule.ieHack\",\"IE hacks are only necessary when supporting IE7 and older\"),s),UnknownVendorSpecificProperty:new a(\"unknownVendorSpecificProperties\",r(\"rule.unknownVendorSpecificProperty\",\"Unknown vendor specific property.\"),s),PropertyIgnoredDueToDisplay:new a(\"propertyIgnoredDueToDisplay\",r(\"rule.propertyIgnoredDueToDisplay\",\"Property is ignored due to the display.\"),i),AvoidImportant:new a(\"important\",r(\"rule.avoidImportant\",\"Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.\"),s),AvoidFloat:new a(\"float\",r(\"rule.avoidFloat\",\"Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.\"),s),AvoidIdSelector:new a(\"idSelector\",r(\"rule.avoidIdSelector\",\"Selectors should not contain IDs because these rules are too tightly coupled with the HTML.\"),s)},t.Settings={ValidProperties:new l(\"validProperties\",r(\"rule.validProperties\",\"A list of properties that are not validated against the `unknownProperties` rule.\"),[])};var c=function(){function e(e){void 0===e&&(e={}),this.conf=e}return e.prototype.getRule=function(e){if(this.conf.hasOwnProperty(e.id)){var t=function(e){switch(e){case\"ignore\":return n.Level.Ignore;case\"warning\":return n.Level.Warning;case\"error\":return n.Level.Error}return null}(this.conf[e.id]);if(t)return t}return e.defaultValue},e.prototype.getSetting=function(e){return this.conf[e.id]},e}();t.LintConfigurationSettings=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssCodeActions\",[\"require\",\"exports\",\"../parser/cssNodes\",\"../languageFacts/facts\",\"../utils/strings\",\"../services/lintRules\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"../languageFacts/facts\"),i=e(\"../utils/strings\"),o=e(\"../services/lintRules\"),s=e(\"../cssLanguageTypes\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){}return e.prototype.doCodeActions=function(e,t,n,r){return this.doCodeActions2(e,t,n,r).map((function(t){var n=t.edit&&t.edit.documentChanges&&t.edit.documentChanges[0];return s.Command.create(t.title,\"_css.applyCodeAction\",e.uri,e.version,n&&n.edits)}))},e.prototype.doCodeActions2=function(e,t,n,r){var i=[];if(n.diagnostics)for(var o=0,s=n.diagnostics;o<s.length;o++){var a=s[o];this.appendFixesForMarker(e,r,a,i)}return i},e.prototype.getFixesForUnknownProperty=function(e,t,n,o){var l=t.getName(),c=[];r.cssDataManager.getProperties().forEach((function(e){var t=i.difference(l,e.name);t>=l.length/2&&c.push({property:e.name,score:t})})),c.sort((function(e,t){return t.score-e.score}));for(var d=3,p=0,h=c;p<h.length;p++){var m=h[p].property,u=a(\"css.codeaction.rename\",\"Rename to '{0}'\",m),f=s.TextEdit.replace(n.range,m),g=s.VersionedTextDocumentIdentifier.create(e.uri,e.version),b={documentChanges:[s.TextDocumentEdit.create(g,[f])]},y=s.CodeAction.create(u,b,s.CodeActionKind.QuickFix);if(y.diagnostics=[n],o.push(y),--d<=0)return}},e.prototype.appendFixesForMarker=function(e,t,r,i){if(r.code===o.Rules.UnknownProperty.id)for(var s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=n.getNodePath(t,s),c=l.length-1;c>=0;c--){var d=l[c];if(d instanceof n.Declaration){var p=d.getProperty();if(p&&p.offset===s&&p.end===a)return void this.getFixesForUnknownProperty(e,p,r,i)}}},e}();t.CSSCodeActions=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lintUtil\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\"),r=function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e};function i(e,t,r,i){var o=e[t];o.value=r,r&&(n.includes(o.properties,i)||o.properties.push(i))}function o(e,t,n,r){\"top\"===t||\"right\"===t||\"bottom\"===t||\"left\"===t?i(e,t,n,r):function(e,t,n){i(e,\"top\",t,n),i(e,\"right\",t,n),i(e,\"bottom\",t,n),i(e,\"left\",t,n)}(e,n,r)}function s(e,t,n){switch(t.length){case 1:o(e,void 0,t[0],n);break;case 2:o(e,\"top\",t[0],n),o(e,\"bottom\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n);break;case 3:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"left\",t[1],n),o(e,\"bottom\",t[2],n);break;case 4:o(e,\"top\",t[0],n),o(e,\"right\",t[1],n),o(e,\"bottom\",t[2],n),o(e,\"left\",t[3],n)}}function a(e,t){for(var n=0,r=t;n<r.length;n++){var i=r[n];if(e.matches(i))return!0}return!1}function l(e,t){return void 0===t&&(t=!0),(!t||!a(e,[\"initial\",\"unset\"]))&&0!==parseFloat(e.getText())}function c(e,t){return void 0===t&&(t=!0),e.map((function(e){return l(e,t)}))}function d(e,t){return void 0===t&&(t=!0),!a(e,[\"none\",\"hidden\"])&&(!t||!a(e,[\"initial\",\"unset\"]))}function p(e,t){return void 0===t&&(t=!0),e.map((function(e){return d(e,t)}))}function h(e){var t=e.getChildren();if(1===t.length)return l(i=t[0])&&d(i);for(var n=0,r=t;n<r.length;n++){var i;if(!l(i=r[n],!1)||!d(i,!1))return!1}return!0}t.Element=r,t.default=function(e){for(var t={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}},n=0,r=e;n<r.length;n++){var i=r[n],a=i.node.value;if(void 0!==a)switch(i.fullPropertyName){case\"box-sizing\":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case\"width\":t.width=i;break;case\"height\":t.height=i;break;default:var m=i.fullPropertyName.split(\"-\");switch(m[0]){case\"border\":switch(m[1]){case void 0:case\"top\":case\"right\":case\"bottom\":case\"left\":switch(m[2]){case void 0:o(t,m[1],h(a),i);break;case\"width\":o(t,m[1],l(a,!1),i);break;case\"style\":o(t,m[1],d(a,!0),i)}break;case\"width\":s(t,c(a.getChildren(),!1),i);break;case\"style\":s(t,p(a.getChildren(),!0),i)}break;case\"padding\":1===m.length?s(t,c(a.getChildren(),!0),i):o(t,m[1],l(a,!0),i)}}}return t}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lint\",[\"require\",\"exports\",\"../languageFacts/facts\",\"./lintRules\",\"../parser/cssNodes\",\"./lintUtil\",\"../utils/arrays\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../languageFacts/facts\"),r=e(\"./lintRules\"),i=e(\"../parser/cssNodes\"),o=e(\"./lintUtil\"),s=e(\"../utils/arrays\"),a=e(\"vscode-nls\").loadMessageBundle(),l=function(){function e(){this.data={}}return e.prototype.add=function(e,t,n){var r=this.data[e];r||(r={nodes:[],names:[]},this.data[e]=r),r.names.push(t),n&&r.nodes.push(n)},e}(),c=function(){function e(e,t){var n=this;this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new l,this.validProperties={};var i=t.getSetting(r.Settings.ValidProperties);Array.isArray(i)&&i.forEach((function(e){if(\"string\"==typeof e){var t=e.trim().toLowerCase();t.length&&(n.validProperties[t]=!0)}}))}return e.entries=function(t,n,r,i){var o=new e(n,r);return t.acceptVisitor(o),o.completeValidations(),o.getEntries(i)},e.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},e.prototype.fetch=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];o.fullPropertyName===t&&n.push(o)}return n},e.prototype.fetchWithValue=function(e,t,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i];if(s.fullPropertyName===t){var a=s.node.getValue();a&&this.findValueInExpression(a,n)&&r.push(s)}}return r},e.prototype.findValueInExpression=function(e,t){var n=!1;return e.accept((function(e){return e.type===i.NodeType.Identifier&&e.matches(t)&&(n=!0),!n})),n},e.prototype.getEntries=function(e){return void 0===e&&(e=i.Level.Warning|i.Level.Error),this.warnings.filter((function(t){return 0!=(t.getLevel()&e)}))},e.prototype.addEntry=function(e,t,n){var r=new i.Marker(e,t,this.settings.getRule(t),n);this.warnings.push(r)},e.prototype.getMissingNames=function(e,t){for(var n=e.slice(0),r=0;r<t.length;r++){var i=n.indexOf(t[r]);-1!==i&&(n[i]=null)}var o=null;for(r=0;r<n.length;r++){var s=n[r];s&&(o=null===o?a(\"namelist.single\",\"'{0}'\",s):a(\"namelist.concatenated\",\"{0}, '{1}'\",o,s))}return o},e.prototype.visitNode=function(e){switch(e.type){case i.NodeType.UnknownAtRule:return this.visitUnknownAtRule(e);case i.NodeType.Keyframe:return this.visitKeyframe(e);case i.NodeType.FontFace:return this.visitFontFace(e);case i.NodeType.Ruleset:return this.visitRuleSet(e);case i.NodeType.SimpleSelector:return this.visitSimpleSelector(e);case i.NodeType.Function:return this.visitFunction(e);case i.NodeType.NumericValue:return this.visitNumericValue(e);case i.NodeType.Import:return this.visitImport(e);case i.NodeType.HexColorValue:return this.visitHexColorValue(e);case i.NodeType.Prio:return this.visitPrio(e)}return!0},e.prototype.completeValidations=function(){this.validateKeyframes()},e.prototype.visitUnknownAtRule=function(e){var t=e.getChild(0);return!!t&&(!n.cssDataManager.getAtDirective(t.getText())&&(this.addEntry(t,r.Rules.UnknownAtRules,\"Unknown at rule \"+t.getText()),!0))},e.prototype.visitKeyframe=function(e){var t=e.getKeyword();if(!t)return!1;var n=t.getText();return this.keyframes.add(e.getName(),n,\"@keyframes\"!==n?t:null),!0},e.prototype.validateKeyframes=function(){var e=[\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"];for(var t in this.keyframes.data){var n=this.keyframes.data[t].names,i=-1===n.indexOf(\"@keyframes\");if(i||1!==n.length){var o=this.getMissingNames(e,n);if(o||i)for(var s=0,l=this.keyframes.data[t].nodes;s<l.length;s++){var c=l[s];if(i){var d=a(\"keyframes.standardrule.missing\",\"Always define standard rule '@keyframes' when defining keyframes.\");this.addEntry(c,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,d)}if(o){d=a(\"keyframes.vendorspecific.missing\",\"Always include all vendor specific rules: Missing: {0}\",o);this.addEntry(c,r.Rules.AllVendorPrefixes,d)}}}}return!0},e.prototype.visitSimpleSelector=function(e){var t=this.documentText.charAt(e.offset);return 1===e.length&&\"*\"===t&&this.addEntry(e,r.Rules.UniversalSelector),\"#\"===t&&this.addEntry(e,r.Rules.AvoidIdSelector),!0},e.prototype.visitImport=function(e){return this.addEntry(e,r.Rules.ImportStatemement),!0},e.prototype.visitRuleSet=function(t){var c=t.getDeclarations();if(!c)return!1;c.hasChildren()||this.addEntry(t.getSelectors(),r.Rules.EmptyRuleSet);for(var d=[],p=0,h=c.getChildren();p<h.length;p++){(R=h[p])instanceof i.Declaration&&d.push(new o.Element(R))}var m=o.default(d);if(m.width){var u=[];if(m.right.value&&(u=s.union(u,m.right.properties)),m.left.value&&(u=s.union(u,m.left.properties)),0!==u.length){for(var f=0,g=u;f<g.length;f++){var b=g[f];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.width.node,r.Rules.BewareOfBoxModelSize)}}if(m.height){u=[];if(m.top.value&&(u=s.union(u,m.top.properties)),m.bottom.value&&(u=s.union(u,m.bottom.properties)),0!==u.length){for(var y=0,v=u;y<v.length;y++){b=v[y];this.addEntry(b.node,r.Rules.BewareOfBoxModelSize)}this.addEntry(m.height.node,r.Rules.BewareOfBoxModelSize)}}var w=this.fetchWithValue(d,\"display\",\"inline\");if(w.length>0)for(var x=0,S=[\"width\",\"height\",\"margin-top\",\"margin-bottom\",\"float\"];x<S.length;x++)for(var k=S[x],C=this.fetch(d,k),T=0;T<C.length;T++){var F=C[T].node,D=F.getValue();(\"float\"!==k||D&&!D.matches(\"none\"))&&this.addEntry(F,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInline\",\"Property is ignored due to the display. With 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect.\"))}if((w=this.fetchWithValue(d,\"display\",\"inline-block\")).length>0)for(C=this.fetch(d,\"float\"),T=0;T<C.length;T++){var E=C[T].node;(D=E.getValue())&&!D.matches(\"none\")&&this.addEntry(E,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayInlineBlock\",\"inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'\"))}if((w=this.fetchWithValue(d,\"display\",\"block\")).length>0)for(C=this.fetch(d,\"vertical-align\"),T=0;T<C.length;T++)this.addEntry(C[T].node,r.Rules.PropertyIgnoredDueToDisplay,a(\"rule.propertyIgnoredDueToDisplayBlock\",\"Property is ignored due to the display. With 'display: block', vertical-align should not be used.\"));var z=this.fetch(d,\"float\");for(T=0;T<z.length;T++){var R=z[T];this.isValidPropertyDeclaration(R)||this.addEntry(R.node,r.Rules.AvoidFloat)}for(var _=0;_<d.length;_++){if(\"background\"!==(R=d[_]).fullPropertyName&&!this.validProperties[R.fullPropertyName])if((D=R.node.getValue())&&\"-\"!==this.documentText.charAt(D.offset)){var I=this.fetch(d,R.fullPropertyName);if(I.length>1)for(var P=0;P<I.length;P++){var N=I[P].node.getValue();N&&\"-\"!==this.documentText.charAt(N.offset)&&I[P]!==R&&this.addEntry(R.node,r.Rules.DuplicateDeclarations)}}}if(!t.getSelectors().matches(\":export\")){for(var M=new l,A=!1,O=0,W=d;O<W.length;O++){var L=(R=W[O]).node;if(this.isCSSDeclaration(L)){var j=R.fullPropertyName,U=j.charAt(0);if(\"-\"===U){if(\"-\"!==j.charAt(1)){n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownVendorSpecificProperty);var V=L.getNonPrefixedPropertyName();M.add(V,j,L.getProperty())}}else{var K=j;\"*\"!==U&&\"_\"!==U||(this.addEntry(L.getProperty(),r.Rules.IEStarHack),j=j.substr(1)),n.cssDataManager.isKnownProperty(K)||n.cssDataManager.isKnownProperty(j)||this.validProperties[j]||this.addEntry(L.getProperty(),r.Rules.UnknownProperty,a(\"property.unknownproperty.detailed\",\"Unknown property: '{0}'\",j)),M.add(j,j,null)}}else A=!0}if(!A)for(var q in M.data){var B=M.data[q],$=B.names,G=n.cssDataManager.isStandardProperty(q)&&-1===$.indexOf(q);if(G||1!==$.length){for(var H=[],J=(_=0,e.prefixes.length);_<J;_++){var X=e.prefixes[_];n.cssDataManager.isStandardProperty(X+q)&&H.push(X+q)}var Y=this.getMissingNames(H,$);if(Y||G)for(var Z=0,Q=B.nodes;Z<Q.length;Z++){var ee=Q[Z];if(G){var te=a(\"property.standard.missing\",\"Also define the standard property '{0}' for compatibility\",q);this.addEntry(ee,r.Rules.IncludeStandardPropertyWhenUsingVendorPrefix,te)}if(Y){te=a(\"property.vendorspecific.missing\",\"Always include all vendor specific properties: Missing: {0}\",Y);this.addEntry(ee,r.Rules.AllVendorPrefixes,te)}}}}}return!0},e.prototype.visitPrio=function(e){return this.addEntry(e,r.Rules.AvoidImportant),!0},e.prototype.visitNumericValue=function(e){var t=e.findParent(i.NodeType.Function);if(t&&\"calc\"===t.getName())return!0;var o=e.findParent(i.NodeType.Declaration);if(o&&o.getValue()){var s=e.getValue();if(!s.unit||-1===n.units.length.indexOf(s.unit.toLowerCase()))return!0;0===parseFloat(s.value)&&s.unit&&!this.validProperties[o.getFullPropertyName()]&&this.addEntry(e,r.Rules.ZeroWithUnit)}return!0},e.prototype.visitFontFace=function(e){var t=e.getDeclarations();if(!t)return!1;for(var n=!1,i=!1,o=!1,s=0,a=t.getChildren();s<a.length;s++){var l=a[s];if(this.isCSSDeclaration(l)){var c=l.getProperty().getName().toLowerCase();\"src\"===c&&(n=!0),\"font-family\"===c&&(i=!0)}else o=!0}return o||n&&i||this.addEntry(e,r.Rules.RequiredPropertiesForFontFace),!0},e.prototype.isCSSDeclaration=function(e){if(e instanceof i.Declaration){if(!e.getValue())return!1;var t=e.getProperty();if(!t)return!1;var n=t.getIdentifier();return!(!n||n.containsInterpolation())}return!1},e.prototype.visitHexColorValue=function(e){var t=e.length;return 9!==t&&7!==t&&5!==t&&4!==t&&this.addEntry(e,r.Rules.HexColorLength),!1},e.prototype.visitFunction=function(e){var t=e.getName().toLowerCase(),n=-1,o=0;switch(t){case\"rgb(\":case\"hsl(\":n=3;break;case\"rgba(\":case\"hsla(\":n=4}return-1!==n&&(e.getArguments().accept((function(e){return!(e instanceof i.BinaryExpression)||(o+=1,!1)})),o!==n&&this.addEntry(e,r.Rules.ArgsInColorFunction)),!0},e.prefixes=[\"-ms-\",\"-moz-\",\"-o-\",\"-webkit-\"],e}();t.LintVisitor=c})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssValidation\",[\"require\",\"exports\",\"../parser/cssNodes\",\"./lintRules\",\"./lint\",\"../cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssNodes\"),r=e(\"./lintRules\"),i=e(\"./lint\"),o=e(\"../cssLanguageTypes\"),s=function(){function e(){}return e.prototype.configure=function(e){this.settings=e},e.prototype.doValidation=function(e,t,s){if(void 0===s&&(s=this.settings),s&&!1===s.validate)return[];var a=[];a.push.apply(a,n.ParseErrorCollector.entries(t)),a.push.apply(a,i.LintVisitor.entries(t,e,new r.LintConfigurationSettings(s&&s.lint)));var l=[];for(var c in r.Rules)l.push(r.Rules[c].id);return a.filter((function(e){return e.getLevel()!==n.Level.Ignore})).map((function(t){var r=o.Range.create(e.positionAt(t.getOffset()),e.positionAt(t.getOffset()+t.getLength())),i=e.languageId;return{code:t.getRule().id,source:i,message:t.getMessage(),severity:t.getLevel()===n.Level.Warning?o.DiagnosticSeverity.Warning:o.DiagnosticSeverity.Error,range:r}}))},e}();t.CSSValidation=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"$\".charCodeAt(0),l=\"#\".charCodeAt(0),c=\"{\".charCodeAt(0),d=\"=\".charCodeAt(0),p=\"!\".charCodeAt(0),h=\"<\".charCodeAt(0),m=\">\".charCodeAt(0),u=\".\".charCodeAt(0),f=\"@\".charCodeAt(0),g=n.TokenType.CustomToken;t.VariableName=g++,t.InterpolationFunction=g++,t.Default=g++,t.EqualsOperator=g++,t.NotEqualsOperator=g++,t.GreaterEqualsOperator=g++,t.SmallerEqualsOperator=g++,t.Ellipsis=g++,t.Module=g++,t.Forward=g++,t.Use=g++;var b=function(e){function g(){return null!==e&&e.apply(this,arguments)||this}return __extends(g,e),g.prototype.scanNext=function(r){if(this.stream.advanceIfChar(a)){var i=[\"$\"];if(this.ident(i))return this.finishToken(r,t.VariableName,i.join(\"\"));this.stream.goBackTo(r)}if(this.stream.advanceIfChars([l,c]))return this.finishToken(r,t.InterpolationFunction);if(this.stream.advanceIfChars([d,d]))return this.finishToken(r,t.EqualsOperator);if(this.stream.advanceIfChars([p,d]))return this.finishToken(r,t.NotEqualsOperator);if(this.stream.advanceIfChar(h))return this.stream.advanceIfChar(d)?this.finishToken(r,t.SmallerEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChar(m))return this.stream.advanceIfChar(d)?this.finishToken(r,t.GreaterEqualsOperator):this.finishToken(r,n.TokenType.Delim);if(this.stream.advanceIfChars([u,u,u]))return this.finishToken(r,t.Ellipsis);if(this.stream.advanceIfChar(f)){i=[\"@\"];if(this.ident(i)){var o=i.join(\"\");if(\"@forward\"===o)return this.finishToken(r,t.Forward,o);if(\"@use\"===o)return this.finishToken(r,t.Use,o)}this.stream.goBackTo(r)}return e.prototype.scanNext.call(this,r)},g.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},g}(n.Scanner);t.SCSSScanner=b})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssErrors\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle(),r=function(e,t){this.id=e,this.message=t};t.SCSSIssueType=r,t.SCSSParseError={FromExpected:new r(\"scss-fromexpected\",n(\"expected.from\",\"'from' expected\")),ThroughOrToExpected:new r(\"scss-throughexpected\",n(\"expected.through\",\"'through' or 'to' expected\")),InExpected:new r(\"scss-fromexpected\",n(\"expected.in\",\"'in' expected\"))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/scssParser\",[\"require\",\"exports\",\"./scssScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./scssErrors\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scssScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./scssErrors\"),a=e(\"./cssErrors\"),l=function(e){function t(){return e.call(this,new n.SCSSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStart=function(){return this._parseForward()||this._parseUse()||e.prototype._parseStylesheetStart.call(this)},t.prototype._parseStylesheetStatement=function(){return this.peek(r.TokenType.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||e.prototype._parseStylesheetAtStatement.call(this):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\"))return null;var e=this.create(o.Import);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);for(;this.accept(r.TokenType.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.URIOrStringExpected);return this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(n.VariableName))return null;var t=this.create(o.VariableDeclaration);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,a.ParseError.VariableValueExpected,[],e);for(;this.accept(r.TokenType.Exclamation);){if(!this.peekRegExp(r.TokenType.Ident,/^(default|global)$/))return this.finish(t,a.ParseError.UnknownKeyword);this.consumeToken()}return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(n.VariableName))return null;var e=this.create(o.Variable);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(o.Module);return t.setIdentifier(this._parseIdent([o.ReferenceType.Module]))?this.hasWhitespace()||!this.acceptDelim(\".\")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,a.ParseError.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.TokenType.Ident)&&!this.peek(n.InterpolationFunction)&&!this.peekDelim(\"-\"))return null;var i=this.create(o.Identifier);i.referenceTypes=e,i.isCustomProperty=this.peekRegExp(r.TokenType.Ident,/^--/);for(var s,a=!1;(this.accept(r.TokenType.Ident)||i.addChild((s=void 0,s=t.mark(),t.acceptDelim(\"-\")&&(t.hasWhitespace()||t.acceptDelim(\"-\"),t.hasWhitespace())?(t.restoreAtMark(s),null):t._parseInterpolation()))||a&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)))&&(a=!0,!this.hasWhitespace()););return a?this.finish(i):null},t.prototype._parseTerm=function(){var t=this.create(o.Term);if(t.setExpression(this._parseModuleMember()))return this.finish(t);var n=e.prototype._parseTerm.call(this);return n||(t.setExpression(this._parseVariable())||t.setExpression(this._parseSelectorCombinator())||t.setExpression(this._tryParsePrio())?this.finish(t):null)},t.prototype._parseInterpolation=function(){if(this.peek(n.InterpolationFunction)){var e=this.create(o.Interpolation);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.RightCurlyExpected):this.accept(r.TokenType.CurlyR)?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(n.EqualsOperator)||this.peek(n.NotEqualsOperator)||this.peek(n.GreaterEqualsOperator)||this.peek(n.SmallerEqualsOperator)||this.peekDelim(\">\")||this.peekDelim(\"<\")||this.peekIdent(\"and\")||this.peekIdent(\"or\")||this.peekDelim(\"%\")){var t=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent(\"not\")){var t=this.create(o.Node);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this.create(o.Declaration);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.TokenType.Colon))return this.finish(t,a.ParseError.ColonExpected,[r.TokenType.Colon],e);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=!1;if(t.setValue(this._parseExpr())&&(n=!0,t.addChild(this._parsePrio())),this.peek(r.TokenType.CurlyL))t.setNestedProperties(this._parseNestedProperties());else if(!n)return this.finish(t,a.ParseError.PropertyValueExpected);return this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseNestedProperties=function(){var e=this.create(o.NestedProperties);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword(\"@extend\")){var e=this.create(o.ExtendsReference);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,a.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.TokenType.Exclamation)&&!this.acceptIdent(\"optional\")?this.finish(e,a.ParseError.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim(\"%\")){var e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword(\"@at-root\")){e=this.createNode(o.NodeType.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.TokenType.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword(\"@debug\")&&!this.peekKeyword(\"@warn\")&&!this.peekKeyword(\"@error\"))return null;var e=this.createNode(o.NodeType.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.TokenType.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword(\"@if\")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(o.IfStatement);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,a.ParseError.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword(\"@else\"))if(this.peekIdent(\"if\"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.TokenType.CurlyL)){var n=this.create(o.ElseStatement);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword(\"@for\"))return null;var t=this.create(o.ForStatement);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent(\"from\")?t.addChild(this._parseBinaryExpr())?this.acceptIdent(\"to\")||this.acceptIdent(\"through\")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.ThroughOrToExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.FromExpected,[r.TokenType.CurlyR]):this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword(\"@each\"))return null;var t=this.create(o.EachStatement);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);for(;this.accept(r.TokenType.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,a.ParseError.VariableNameExpected,[r.TokenType.CurlyR]);return this.finish(n),this.acceptIdent(\"in\")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR]):this.finish(t,s.SCSSParseError.InExpected,[r.TokenType.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword(\"@while\"))return null;var t=this.create(o.WhileStatement);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,a.ParseError.ExpressionExpected,[r.TokenType.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword(\"@function\"))return null;var e=this.create(o.FunctionDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Function])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);return this.accept(r.TokenType.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword(\"@return\"))return null;var e=this.createNode(o.NodeType.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,a.ParseError.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword(\"@mixin\"))return null;var e=this.create(o.MixinDeclaration);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([o.ReferenceType.Mixin])))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(this.accept(r.TokenType.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected,[r.TokenType.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(o.FunctionParameter);return e.setIdentifier(this._parseVariable())?(this.accept(n.Ellipsis),this.accept(r.TokenType.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword(\"@content\"))return null;var e=this.createNode(o.NodeType.MixinContent);return this.consumeToken(),this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword(\"@include\"))return null;var e=this.create(o.MixinReference);this.consumeToken();var t=this._parseIdent([o.ReferenceType.Mixin]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(\".\")&&!this.hasWhitespace()){var n=this._parseIdent([o.ReferenceType.Mixin]);if(!n)return this.finish(e,a.ParseError.IdentifierExpected,[r.TokenType.CurlyR]);var i=this.create(o.Module);t.referenceTypes=[o.ReferenceType.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.TokenType.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,a.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}if(this.peek(r.TokenType.CurlyL)){var s=this.create(o.BodyDeclaration);this._parseBody(s,this._parseMixinReferenceBodyStatement.bind(this)),e.setContent(s)}return this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),i=this._parseVariable();if(i)if(this.accept(r.TokenType.Colon))e.setIdentifier(i);else{if(this.accept(n.Ellipsis))return e.setValue(i),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(n.Ellipsis),e.addChild(this._parsePrio()),this.finish(e)):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.Node);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.TokenType.Comma);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,a.ParseError.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(o.ListEntry),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.TokenType.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,a.ParseError.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peek(n.Use))return null;var e=this.create(o.Use);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|with/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")&&!e.setIdentifier(this._parseIdent([o.ReferenceType.Module]))&&!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.IdentifierOrWildcardExpected);if(this.acceptIdent(\"with\")){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,a.ParseError.LeftParenthesisExpected,[r.TokenType.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);for(;this.accept(r.TokenType.Comma)&&!this.peek(r.TokenType.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,a.ParseError.VariableNameExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,a.ParseError.RightParenthesisExpected)}}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(o.ModuleConfiguration);return e.setIdentifier(this._parseVariable())?this.accept(r.TokenType.Colon)&&e.setValue(this._parseExpr(!0))?this.finish(e):this.finish(e,a.ParseError.VariableValueExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peek(n.Forward))return null;var e=this.create(o.Forward);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,a.ParseError.StringLiteralExpected);if(!this.peek(r.TokenType.SemiColon)&&!this.peek(r.TokenType.EOF)){if(!this.peekRegExp(r.TokenType.Ident,/as|hide|show/))return this.finish(e,a.ParseError.UnknownKeyword);if(this.acceptIdent(\"as\")){var t=this._parseIdent([o.ReferenceType.Forward]);if(!e.setIdentifier(t))return this.finish(e,a.ParseError.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim(\"*\"))return this.finish(e,a.ParseError.WildcardExpected)}if((this.peekIdent(\"hide\")||this.peekIdent(\"show\"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,a.ParseError.IdentifierOrVariableExpected)}return this.accept(r.TokenType.SemiColon)||this.accept(r.TokenType.EOF)?this.finish(e):this.finish(e,a.ParseError.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(o.ForwardVisibility);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent()););return e.getChildren().length>1?e:null},t}(i.Parser);t.SCSSParser=l}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../parser/cssNodes\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../parser/cssNodes\"),i=e(\"../cssLanguageTypes\"),o=e(\"vscode-nls\").loadMessageBundle(),s=function(e){function t(n){var r=e.call(this,\"$\",n)||this;return a(t.scssModuleLoaders),a(t.scssModuleBuiltIns),r}return __extends(t,e),t.prototype.isImportPathParent=function(t){return t===r.NodeType.Forward||t===r.NodeType.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,i){var o,s=n.getParent().type;return s!==r.NodeType.Forward&&s!==r.NodeType.Use||(o=i.items).push.apply(o,t.scssModuleBuiltIns),e.prototype.getCompletionForImportPath.call(this,n,i)},t.prototype.createReplaceFunction=function(){var e=1;return function(n,r){return\"\\\\\"+r+\": ${\"+e+++\":\"+(t.variableDefaults[r]||\"\")+\"}\"}},t.prototype.createFunctionProposals=function(e,t,n,r){for(var o=0,s=e;o<s.length;o++){var a=s[o],l=a.func.replace(/\\[?(\\$\\w+)\\]?/g,this.createReplaceFunction()),c={label:a.func.substr(0,a.func.indexOf(\"(\")),detail:a.func,documentation:a.desc,textEdit:i.TextEdit.replace(this.getCompletionRange(t),l),insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Function};n&&(c.sortText=\"z\"),r.items.push(c)}return r},t.prototype.getCompletionsForSelector=function(n,r,i){return this.createFunctionProposals(t.selectorFuncs,null,!0,i),e.prototype.getCompletionsForSelector.call(this,n,r,i)},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInFuncs;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionForAtDirectives(n),this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.prototype.getCompletionsForExtendsReference=function(e,t,n){for(var o=0,s=this.getSymbolContext().findSymbolsAtOffset(this.offset,r.ReferenceType.Rule);o<s.length;o++){var a=s[o],l={label:a.name,textEdit:i.TextEdit.replace(this.getCompletionRange(t),a.name),kind:i.CompletionItemKind.Function};n.items.push(l)}return n},t.prototype.getCompletionForAtDirectives=function(e){var n;return(n=e.items).push.apply(n,t.scssAtDirectives),e},t.prototype.getCompletionForTopLevel=function(t){return this.getCompletionForAtDirectives(t),this.getCompletionForModuleLoaders(t),e.prototype.getCompletionForTopLevel.call(this,t),t},t.prototype.getCompletionForModuleLoaders=function(e){var n;return(n=e.items).push.apply(n,t.scssModuleLoaders),e},t.variableDefaults={$red:\"1\",$green:\"2\",$blue:\"3\",$alpha:\"1.0\",$color:\"#000000\",$weight:\"0.5\",$hue:\"0\",$saturation:\"0%\",$lightness:\"0%\",$degrees:\"0\",$amount:\"0\",$string:'\"\"',$substring:'\"s\"',$number:\"0\",$limit:\"1\"},t.colorProposals=[{func:\"red($color)\",desc:o(\"scss.builtin.red\",\"Gets the red component of a color.\")},{func:\"green($color)\",desc:o(\"scss.builtin.green\",\"Gets the green component of a color.\")},{func:\"blue($color)\",desc:o(\"scss.builtin.blue\",\"Gets the blue component of a color.\")},{func:\"mix($color, $color, [$weight])\",desc:o(\"scss.builtin.mix\",\"Mixes two colors together.\")},{func:\"hue($color)\",desc:o(\"scss.builtin.hue\",\"Gets the hue component of a color.\")},{func:\"saturation($color)\",desc:o(\"scss.builtin.saturation\",\"Gets the saturation component of a color.\")},{func:\"lightness($color)\",desc:o(\"scss.builtin.lightness\",\"Gets the lightness component of a color.\")},{func:\"adjust-hue($color, $degrees)\",desc:o(\"scss.builtin.adjust-hue\",\"Changes the hue of a color.\")},{func:\"lighten($color, $amount)\",desc:o(\"scss.builtin.lighten\",\"Makes a color lighter.\")},{func:\"darken($color, $amount)\",desc:o(\"scss.builtin.darken\",\"Makes a color darker.\")},{func:\"saturate($color, $amount)\",desc:o(\"scss.builtin.saturate\",\"Makes a color more saturated.\")},{func:\"desaturate($color, $amount)\",desc:o(\"scss.builtin.desaturate\",\"Makes a color less saturated.\")},{func:\"grayscale($color)\",desc:o(\"scss.builtin.grayscale\",\"Converts a color to grayscale.\")},{func:\"complement($color)\",desc:o(\"scss.builtin.complement\",\"Returns the complement of a color.\")},{func:\"invert($color)\",desc:o(\"scss.builtin.invert\",\"Returns the inverse of a color.\")},{func:\"alpha($color)\",desc:o(\"scss.builtin.alpha\",\"Gets the opacity component of a color.\")},{func:\"opacity($color)\",desc:\"Gets the alpha component (opacity) of a color.\"},{func:\"rgba($color, $alpha)\",desc:o(\"scss.builtin.rgba\",\"Changes the alpha component for a color.\")},{func:\"opacify($color, $amount)\",desc:o(\"scss.builtin.opacify\",\"Makes a color more opaque.\")},{func:\"fade-in($color, $amount)\",desc:o(\"scss.builtin.fade-in\",\"Makes a color more opaque.\")},{func:\"transparentize($color, $amount)\",desc:o(\"scss.builtin.transparentize\",\"Makes a color more transparent.\")},{func:\"fade-out($color, $amount)\",desc:o(\"scss.builtin.fade-out\",\"Makes a color more transparent.\")},{func:\"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.adjust-color\",\"Increases or decreases one or more components of a color.\")},{func:\"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.scale-color\",\"Fluidly scales one or more properties of a color.\")},{func:\"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\",desc:o(\"scss.builtin.change-color\",\"Changes one or more properties of a color.\")},{func:\"ie-hex-str($color)\",desc:o(\"scss.builtin.ie-hex-str\",\"Converts a color into the format understood by IE filters.\")}],t.selectorFuncs=[{func:\"selector-nest($selectors…)\",desc:o(\"scss.builtin.selector-nest\",\"Nests selector beneath one another like they would be nested in the stylesheet.\")},{func:\"selector-append($selectors…)\",desc:o(\"scss.builtin.selector-append\",\"Appends selectors to one another without spaces in between.\")},{func:\"selector-extend($selector, $extendee, $extender)\",desc:o(\"scss.builtin.selector-extend\",\"Extends $extendee with $extender within $selector.\")},{func:\"selector-replace($selector, $original, $replacement)\",desc:o(\"scss.builtin.selector-replace\",\"Replaces $original with $replacement within $selector.\")},{func:\"selector-unify($selector1, $selector2)\",desc:o(\"scss.builtin.selector-unify\",\"Unifies two selectors to produce a selector that matches elements matched by both.\")},{func:\"is-superselector($super, $sub)\",desc:o(\"scss.builtin.is-superselector\",\"Returns whether $super matches all the elements $sub does, and possibly more.\")},{func:\"simple-selectors($selector)\",desc:o(\"scss.builtin.simple-selectors\",\"Returns the simple selectors that comprise a compound selector.\")},{func:\"selector-parse($selector)\",desc:o(\"scss.builtin.selector-parse\",\"Parses a selector into the format returned by &.\")}],t.builtInFuncs=[{func:\"unquote($string)\",desc:o(\"scss.builtin.unquote\",\"Removes quotes from a string.\")},{func:\"quote($string)\",desc:o(\"scss.builtin.quote\",\"Adds quotes to a string.\")},{func:\"str-length($string)\",desc:o(\"scss.builtin.str-length\",\"Returns the number of characters in a string.\")},{func:\"str-insert($string, $insert, $index)\",desc:o(\"scss.builtin.str-insert\",\"Inserts $insert into $string at $index.\")},{func:\"str-index($string, $substring)\",desc:o(\"scss.builtin.str-index\",\"Returns the index of the first occurance of $substring in $string.\")},{func:\"str-slice($string, $start-at, [$end-at])\",desc:o(\"scss.builtin.str-slice\",\"Extracts a substring from $string.\")},{func:\"to-upper-case($string)\",desc:o(\"scss.builtin.to-upper-case\",\"Converts a string to upper case.\")},{func:\"to-lower-case($string)\",desc:o(\"scss.builtin.to-lower-case\",\"Converts a string to lower case.\")},{func:\"percentage($number)\",desc:o(\"scss.builtin.percentage\",\"Converts a unitless number to a percentage.\"),type:\"percentage\"},{func:\"round($number)\",desc:o(\"scss.builtin.round\",\"Rounds a number to the nearest whole number.\")},{func:\"ceil($number)\",desc:o(\"scss.builtin.ceil\",\"Rounds a number up to the next whole number.\")},{func:\"floor($number)\",desc:o(\"scss.builtin.floor\",\"Rounds a number down to the previous whole number.\")},{func:\"abs($number)\",desc:o(\"scss.builtin.abs\",\"Returns the absolute value of a number.\")},{func:\"min($numbers)\",desc:o(\"scss.builtin.min\",\"Finds the minimum of several numbers.\")},{func:\"max($numbers)\",desc:o(\"scss.builtin.max\",\"Finds the maximum of several numbers.\")},{func:\"random([$limit])\",desc:o(\"scss.builtin.random\",\"Returns a random number.\")},{func:\"length($list)\",desc:o(\"scss.builtin.length\",\"Returns the length of a list.\")},{func:\"nth($list, $n)\",desc:o(\"scss.builtin.nth\",\"Returns a specific item in a list.\")},{func:\"set-nth($list, $n, $value)\",desc:o(\"scss.builtin.set-nth\",\"Replaces the nth item in a list.\")},{func:\"join($list1, $list2, [$separator])\",desc:o(\"scss.builtin.join\",\"Joins together two lists into one.\")},{func:\"append($list1, $val, [$separator])\",desc:o(\"scss.builtin.append\",\"Appends a single value onto the end of a list.\")},{func:\"zip($lists)\",desc:o(\"scss.builtin.zip\",\"Combines several lists into a single multidimensional list.\")},{func:\"index($list, $value)\",desc:o(\"scss.builtin.index\",\"Returns the position of a value within a list.\")},{func:\"list-separator(#list)\",desc:o(\"scss.builtin.list-separator\",\"Returns the separator of a list.\")},{func:\"map-get($map, $key)\",desc:o(\"scss.builtin.map-get\",\"Returns the value in a map associated with a given key.\")},{func:\"map-merge($map1, $map2)\",desc:o(\"scss.builtin.map-merge\",\"Merges two maps together into a new map.\")},{func:\"map-remove($map, $keys)\",desc:o(\"scss.builtin.map-remove\",\"Returns a new map with keys removed.\")},{func:\"map-keys($map)\",desc:o(\"scss.builtin.map-keys\",\"Returns a list of all keys in a map.\")},{func:\"map-values($map)\",desc:o(\"scss.builtin.map-values\",\"Returns a list of all values in a map.\")},{func:\"map-has-key($map, $key)\",desc:o(\"scss.builtin.map-has-key\",\"Returns whether a map has a value associated with a given key.\")},{func:\"keywords($args)\",desc:o(\"scss.builtin.keywords\",\"Returns the keywords passed to a function that takes variable arguments.\")},{func:\"feature-exists($feature)\",desc:o(\"scss.builtin.feature-exists\",\"Returns whether a feature exists in the current Sass runtime.\")},{func:\"variable-exists($name)\",desc:o(\"scss.builtin.variable-exists\",\"Returns whether a variable with the given name exists in the current scope.\")},{func:\"global-variable-exists($name)\",desc:o(\"scss.builtin.global-variable-exists\",\"Returns whether a variable with the given name exists in the global scope.\")},{func:\"function-exists($name)\",desc:o(\"scss.builtin.function-exists\",\"Returns whether a function with the given name exists.\")},{func:\"mixin-exists($name)\",desc:o(\"scss.builtin.mixin-exists\",\"Returns whether a mixin with the given name exists.\")},{func:\"inspect($value)\",desc:o(\"scss.builtin.inspect\",\"Returns the string representation of a value as it would be represented in Sass.\")},{func:\"type-of($value)\",desc:o(\"scss.builtin.type-of\",\"Returns the type of a value.\")},{func:\"unit($number)\",desc:o(\"scss.builtin.unit\",\"Returns the unit(s) associated with a number.\")},{func:\"unitless($number)\",desc:o(\"scss.builtin.unitless\",\"Returns whether a number has units.\")},{func:\"comparable($number1, $number2)\",desc:o(\"scss.builtin.comparable\",\"Returns whether two numbers can be added, subtracted, or compared.\")},{func:\"call($name, $args…)\",desc:o(\"scss.builtin.call\",\"Dynamically calls a Sass function.\")}],t.scssAtDirectives=[{label:\"@extend\",documentation:o(\"scss.builtin.@extend\",\"Inherits the styles of another selector.\"),kind:i.CompletionItemKind.Keyword},{label:\"@at-root\",documentation:o(\"scss.builtin.@at-root\",\"Causes one or more rules to be emitted at the root of the document.\"),kind:i.CompletionItemKind.Keyword},{label:\"@debug\",documentation:o(\"scss.builtin.@debug\",\"Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files.\"),kind:i.CompletionItemKind.Keyword},{label:\"@warn\",documentation:o(\"scss.builtin.@warn\",\"Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option.\"),kind:i.CompletionItemKind.Keyword},{label:\"@error\",documentation:o(\"scss.builtin.@error\",\"Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions.\"),kind:i.CompletionItemKind.Keyword},{label:\"@if\",documentation:o(\"scss.builtin.@if\",\"Includes the body if the expression does not evaluate to `false` or `null`.\"),insertText:\"@if ${1:expr} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@for\",documentation:o(\"scss.builtin.@for\",\"For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause.\"),insertText:\"@for \\\\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@each\",documentation:o(\"scss.builtin.@each\",\"Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`.\"),insertText:\"@each \\\\$${1:var} in ${2:list} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@while\",documentation:o(\"scss.builtin.@while\",\"While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`.\"),insertText:\"@while ${1:condition} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@mixin\",documentation:o(\"scss.builtin.@mixin\",\"Defines styles that can be re-used throughout the stylesheet with `@include`.\"),insertText:\"@mixin ${1:name} {\\n\\t$0\\n}\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@include\",documentation:o(\"scss.builtin.@include\",\"Includes the styles defined by another mixin into the current rule.\"),kind:i.CompletionItemKind.Keyword},{label:\"@function\",documentation:o(\"scss.builtin.@function\",\"Defines complex operations that can be re-used throughout stylesheets.\"),kind:i.CompletionItemKind.Keyword}],t.scssModuleLoaders=[{label:\"@use\",documentation:o(\"scss.builtin.@use\",\"Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/use\"}],insertText:\"@use '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword},{label:\"@forward\",documentation:o(\"scss.builtin.@forward\",\"Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/at-rules/forward\"}],insertText:\"@forward '$0';\",insertTextFormat:i.InsertTextFormat.Snippet,kind:i.CompletionItemKind.Keyword}],t.scssModuleBuiltIns=[{label:\"sass:math\",documentation:o(\"scss.builtin.sass:math\",\"Provides functions that operate on numbers.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/math\"}],kind:i.CompletionItemKind.Module},{label:\"sass:string\",documentation:o(\"scss.builtin.sass:string\",\"Makes it easy to combine, search, or split apart strings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/string\"}],kind:i.CompletionItemKind.Module},{label:\"sass:color\",documentation:o(\"scss.builtin.sass:color\",\"Generates new colors based on existing ones, making it easy to build color themes.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/color\"}],kind:i.CompletionItemKind.Module},{label:\"sass:list\",documentation:o(\"scss.builtin.sass:list\",\"Lets you access and modify values in lists.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/list\"}],kind:i.CompletionItemKind.Module},{label:\"sass:map\",documentation:o(\"scss.builtin.sass:map\",\"Makes it possible to look up the value associated with a key in a map, and much more.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/map\"}],kind:i.CompletionItemKind.Module},{label:\"sass:selector\",documentation:o(\"scss.builtin.sass:selector\",\"Provides access to Sass’s powerful selector engine.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/selector\"}],kind:i.CompletionItemKind.Module},{label:\"sass:meta\",documentation:o(\"scss.builtin.sass:meta\",\"Exposes the details of Sass’s inner workings.\"),references:[{name:\"Sass documentation\",url:\"https://sass-lang.com/documentation/modules/meta\"}],kind:i.CompletionItemKind.Module}],t}(n.CSSCompletion);function a(e){e.forEach((function(e){if(e.documentation&&e.references&&e.references.length>0){var t=\"string\"==typeof e.documentation?{kind:\"markdown\",value:e.documentation}:{kind:\"markdown\",value:e.documentation.value};t.value+=\"\\n\\n\",t.value+=e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"),e.documentation=t}}))}t.SCSSCompletion=s}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessScanner\",[\"require\",\"exports\",\"./cssScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssScanner\"),r=\"/\".charCodeAt(0),i=\"\\n\".charCodeAt(0),o=\"\\r\".charCodeAt(0),s=\"\\f\".charCodeAt(0),a=\"`\".charCodeAt(0),l=\".\".charCodeAt(0),c=n.TokenType.CustomToken;t.Ellipsis=c++;var d=function(e){function c(){return null!==e&&e.apply(this,arguments)||this}return __extends(c,e),c.prototype.scanNext=function(n){var r=this.escapedJavaScript();return null!==r?this.finishToken(n,r):this.stream.advanceIfChars([l,l,l])?this.finishToken(n,t.Ellipsis):e.prototype.scanNext.call(this,n)},c.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([r,r]))&&(this.stream.advanceWhileChar((function(e){switch(e){case i:case o:case s:return!1;default:return!0}})),!0)},c.prototype.escapedJavaScript=function(){return this.stream.peekChar()===a?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==a})),this.stream.advanceIfChar(a)?n.TokenType.EscapedJavaScript:n.TokenType.BadEscapedJavaScript):null},c}(n.Scanner);t.LESSScanner=d}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/parser/lessParser\",[\"require\",\"exports\",\"./lessScanner\",\"./cssScanner\",\"./cssParser\",\"./cssNodes\",\"./cssErrors\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./lessScanner\"),r=e(\"./cssScanner\"),i=e(\"./cssParser\"),o=e(\"./cssNodes\"),s=e(\"./cssErrors\"),a=function(e){function t(){return e.call(this,new n.LESSScanner)||this}return __extends(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.TokenType.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword(\"@import\")&&!this.peekKeyword(\"@import-once\"))return null;var e=this.create(o.Import);if(this.consumeToken(),this.accept(r.TokenType.ParenthesisL)){if(!this.accept(r.TokenType.Ident))return this.finish(e,s.ParseError.IdentifierExpected,[r.TokenType.SemiColon]);do{if(!this.accept(r.TokenType.Comma))break}while(this.accept(r.TokenType.Ident));if(!this.accept(r.TokenType.ParenthesisR))return this.finish(e,s.ParseError.RightParenthesisExpected,[r.TokenType.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,s.ParseError.URIOrStringExpected,[r.TokenType.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword(\"@plugin\"))return null;var e=this.createNode(o.NodeType.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.TokenType.SemiColon)?this.finish(e):this.finish(e,s.ParseError.SemiColonExpected):this.finish(e,s.ParseError.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(o.MediaQuery);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(o.VariableDeclaration),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.TokenType.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,s.ParseError.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.TokenType.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(o.MixinDeclaration);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);if(!this.accept(r.TokenType.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.TokenType.CurlyL))return null;var n=this.create(o.BodyDeclaration);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.TokenType.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(o.Node),t=this.mark();return this.accept(r.TokenType.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.TokenType.BracketR)||this.accept(r.TokenType.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim(\"$\");if(!this.peekDelim(\"@\")&&!n&&!this.peek(r.TokenType.AtKeyword))return null;for(var i=this.create(o.Variable),s=this.mark();this.acceptDelim(\"@\")||!e&&this.acceptDelim(\"$\");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return(this.accept(r.TokenType.AtKeyword)||this.accept(r.TokenType.Ident))&&(t||!this.peek(r.TokenType.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(s),null)},t.prototype._parseTerm=function(){var t=e.prototype._parseTerm.call(this);return t||((t=this.create(o.Term)).setExpression(this._parseVariable())||t.setExpression(this._parseEscaped())||t.setExpression(this._tryParseMixinReference(!1))?this.finish(t):null)},t.prototype._parseEscaped=function(){if(this.peek(r.TokenType.EscapedJavaScript)||this.peek(r.TokenType.BadEscapedJavaScript)){var e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim(\"~\")){e=this.createNode(o.NodeType.EscapedValue);return this.consumeToken(),this.accept(r.TokenType.String)||this.accept(r.TokenType.EscapedJavaScript)?this.finish(e):this.finish(e,s.ParseError.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(\">\")){var e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}if(this.peekDelim(\"=\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"<\"),e}if(this.peekDelim(\"<\")){e=this.createNode(o.NodeType.Operator);return this.consumeToken(),this.acceptDelim(\"=\"),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.TokenType.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseUnknownAtRule():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([o.ReferenceType.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(o.Selector),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.TokenType.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim(\"&\")){var e=this.createNode(o.NodeType.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim(\"-\")||this.accept(r.TokenType.Num)||this.accept(r.TokenType.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim(\"&\")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(o.NodeType.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(o.Identifier);r.isCustomProperty=this.acceptDelim(\"-\")&&this.acceptDelim(\"-\");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim(\"+\"),this.hasWhitespace()||this.acceptIdent(\"_\")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.TokenType.Ident)||this.peekDelim(\"@\")||this.peekDelim(\"$\")||this.peekDelim(\"-\")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim(\"-\")&&(n.hasWhitespace()||n.acceptDelim(\"-\"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.TokenType.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim(\"@\")||this.peekDelim(\"$\")){var t=this.createNode(o.NodeType.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.TokenType.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.TokenType.CurlyR)?this.finish(t):this.finish(t,s.ParseError.RightCurlyExpected):this.finish(t,s.ParseError.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(o.MixinDeclaration);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,s.ParseError.IdentifierExpected,[],[r.TokenType.ParenthesisR]);return this.accept(r.TokenType.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.TokenType.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim(\"#\")||this.peekDelim(\".\")){if(e=this.create(o.Identifier),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.TokenType.Hash))return null;e=this.create(o.Identifier),this.consumeToken()}return e.referenceTypes=[o.ReferenceType.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.TokenType.Colon))return null;var t=this.mark(),n=this.create(o.ExtendsReference);return this.consumeToken(),this.acceptIdent(\"extend\")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim(\"&\"))return null;var e=this.mark(),t=this.create(o.ExtendsReference);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.TokenType.Colon)&&this.acceptIdent(\"extend\")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.TokenType.ParenthesisL))return this.finish(e,s.ParseError.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);for(;this.accept(r.TokenType.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,s.ParseError.SelectorExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.TokenType.AtKeyword))return null;var e=this.mark(),t=this.create(o.MixinReference);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)?this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(o.MixinReference),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(\">\");var a=this._parseMixinDeclarationIdentifier();if(!a)break;n.getNamespaces().addChild(i),i=a}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var l=!1;if(!this.hasWhitespace()&&this.accept(r.TokenType.ParenthesisL)){if(l=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,s.ParseError.ExpressionExpected);if(!this.accept(r.TokenType.ParenthesisR))return this.finish(n,s.ParseError.RightParenthesisExpected);i.referenceTypes=[o.ReferenceType.Mixin]}else i.referenceTypes=[o.ReferenceType.Mixin,o.ReferenceType.Rule];return this.peek(r.TokenType.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),l||this.peek(r.TokenType.SemiColon)||this.peek(r.TokenType.CurlyR)||this.peek(r.TokenType.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(o.FunctionArgument),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.TokenType.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(o.FunctionParameter);if(this.peekKeyword(\"@rest\")){var t=this.create(o.Node);return this.consumeToken(),this.accept(n.Ellipsis)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,s.ParseError.DotExpected,[],[r.TokenType.Comma,r.TokenType.ParenthesisR])}if(this.peek(n.Ellipsis)){var i=this.create(o.Node);return this.consumeToken(),e.setIdentifier(this.finish(i)),this.finish(e)}var a=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.TokenType.Colon),a=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||a?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent(\"when\"))return null;var e=this.create(o.LessGuard);if(this.consumeToken(),e.isNegated=this.acceptIdent(\"not\"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);for(;this.acceptIdent(\"and\")||this.accept(r.TokenType.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,s.ParseError.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.TokenType.ParenthesisL))return null;var e=this.create(o.GuardCondition);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.TokenType.ParenthesisR)?this.finish(e):this.finish(e,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(o.Function);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.TokenType.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.TokenType.Comma)||this.accept(r.TokenType.SemiColon))&&!this.peek(r.TokenType.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,s.ParseError.ExpressionExpected);return this.accept(r.TokenType.ParenthesisR)?this.finish(t):this.finish(t,s.ParseError.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim(\"%\")){var t=this.create(o.Identifier);return t.referenceTypes=[o.ReferenceType.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.TokenType.ParenthesisR)){this.restoreAtMark(t);var i=this.create(o.Node);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t}(i.Parser);t.LESSParser=a}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/lessCompletion\",[\"require\",\"exports\",\"./cssCompletion\",\"../cssLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssCompletion\"),r=e(\"../cssLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),o=function(e){function t(t){return e.call(this,\"@\",t)||this}return __extends(t,e),t.prototype.createFunctionProposals=function(e,t,n,i){for(var o=0,s=e;o<s.length;o++){var a=s[o],l={label:a.name,detail:a.example,documentation:a.description,textEdit:r.TextEdit.replace(this.getCompletionRange(t),a.name+\"($0)\"),insertTextFormat:r.InsertTextFormat.Snippet,kind:r.CompletionItemKind.Function};n&&(l.sortText=\"z\"),i.items.push(l)}return i},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInProposals;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.builtInProposals=[{name:\"if\",example:\"if(condition, trueValue [, falseValue]);\",description:i(\"less.builtin.if\",\"returns one of two values depending on a condition.\")},{name:\"boolean\",example:\"boolean(condition);\",description:i(\"less.builtin.boolean\",'\"store\" a boolean test for later evaluation in a guard or if().')},{name:\"length\",example:\"length(@list);\",description:i(\"less.builtin.length\",\"returns the number of elements in a value list\")},{name:\"extract\",example:\"extract(@list, index);\",description:i(\"less.builtin.extract\",\"returns a value at the specified position in the list\")},{name:\"range\",example:\"range([start, ] end [, step]);\",description:i(\"less.builtin.range\",\"generate a list spanning a range of values\")},{name:\"each\",example:\"each(@list, ruleset);\",description:i(\"less.builtin.each\",\"bind the evaluation of a ruleset to each member of a list.\")},{name:\"escape\",example:\"escape(@string);\",description:i(\"less.builtin.escape\",\"URL encodes a string\")},{name:\"e\",example:\"e(@string);\",description:i(\"less.builtin.e\",\"escape string content\")},{name:\"replace\",example:\"replace(@string, @pattern, @replacement[, @flags]);\",description:i(\"less.builtin.replace\",\"string replace\")},{name:\"unit\",example:\"unit(@dimension, [@unit: '']);\",description:i(\"less.builtin.unit\",\"remove or change the unit of a dimension\")},{name:\"color\",example:\"color(@string);\",description:i(\"less.builtin.color\",\"parses a string to a color\"),type:\"color\"},{name:\"convert\",example:\"convert(@value, unit);\",description:i(\"less.builtin.convert\",\"converts numbers from one type into another\")},{name:\"data-uri\",example:\"data-uri([mimetype,] url);\",description:i(\"less.builtin.data-uri\",\"inlines a resource and falls back to `url()`\"),type:\"url\"},{name:\"abs\",description:i(\"less.builtin.abs\",\"absolute value of a number\"),example:\"abs(number);\"},{name:\"acos\",description:i(\"less.builtin.acos\",\"arccosine - inverse of cosine function\"),example:\"acos(number);\"},{name:\"asin\",description:i(\"less.builtin.asin\",\"arcsine - inverse of sine function\"),example:\"asin(number);\"},{name:\"ceil\",example:\"ceil(@number);\",description:i(\"less.builtin.ceil\",\"rounds up to an integer\")},{name:\"cos\",description:i(\"less.builtin.cos\",\"cosine function\"),example:\"cos(number);\"},{name:\"floor\",description:i(\"less.builtin.floor\",\"rounds down to an integer\"),example:\"floor(@number);\"},{name:\"percentage\",description:i(\"less.builtin.percentage\",\"converts to a %, e.g. 0.5 > 50%\"),example:\"percentage(@number);\",type:\"percentage\"},{name:\"round\",description:i(\"less.builtin.round\",\"rounds a number to a number of places\"),example:\"round(number, [places: 0]);\"},{name:\"sqrt\",description:i(\"less.builtin.sqrt\",\"calculates square root of a number\"),example:\"sqrt(number);\"},{name:\"sin\",description:i(\"less.builtin.sin\",\"sine function\"),example:\"sin(number);\"},{name:\"tan\",description:i(\"less.builtin.tan\",\"tangent function\"),example:\"tan(number);\"},{name:\"atan\",description:i(\"less.builtin.atan\",\"arctangent - inverse of tangent function\"),example:\"atan(number);\"},{name:\"pi\",description:i(\"less.builtin.pi\",\"returns pi\"),example:\"pi();\"},{name:\"pow\",description:i(\"less.builtin.pow\",\"first argument raised to the power of the second argument\"),example:\"pow(@base, @exponent);\"},{name:\"mod\",description:i(\"less.builtin.mod\",\"first argument modulus second argument\"),example:\"mod(number, number);\"},{name:\"min\",description:i(\"less.builtin.min\",\"returns the lowest of one or more values\"),example:\"min(@x, @y);\"},{name:\"max\",description:i(\"less.builtin.max\",\"returns the lowest of one or more values\"),example:\"max(@x, @y);\"}],t.colorProposals=[{name:\"argb\",example:\"argb(@color);\",description:i(\"less.builtin.argb\",\"creates a #AARRGGBB\")},{name:\"hsl\",example:\"hsl(@hue, @saturation, @lightness);\",description:i(\"less.builtin.hsl\",\"creates a color\")},{name:\"hsla\",example:\"hsla(@hue, @saturation, @lightness, @alpha);\",description:i(\"less.builtin.hsla\",\"creates a color\")},{name:\"hsv\",example:\"hsv(@hue, @saturation, @value);\",description:i(\"less.builtin.hsv\",\"creates a color\")},{name:\"hsva\",example:\"hsva(@hue, @saturation, @value, @alpha);\",description:i(\"less.builtin.hsva\",\"creates a color\")},{name:\"hue\",example:\"hue(@color);\",description:i(\"less.builtin.hue\",\"returns the `hue` channel of `@color` in the HSL space\")},{name:\"saturation\",example:\"saturation(@color);\",description:i(\"less.builtin.saturation\",\"returns the `saturation` channel of `@color` in the HSL space\")},{name:\"lightness\",example:\"lightness(@color);\",description:i(\"less.builtin.lightness\",\"returns the `lightness` channel of `@color` in the HSL space\")},{name:\"hsvhue\",example:\"hsvhue(@color);\",description:i(\"less.builtin.hsvhue\",\"returns the `hue` channel of `@color` in the HSV space\")},{name:\"hsvsaturation\",example:\"hsvsaturation(@color);\",description:i(\"less.builtin.hsvsaturation\",\"returns the `saturation` channel of `@color` in the HSV space\")},{name:\"hsvvalue\",example:\"hsvvalue(@color);\",description:i(\"less.builtin.hsvvalue\",\"returns the `value` channel of `@color` in the HSV space\")},{name:\"red\",example:\"red(@color);\",description:i(\"less.builtin.red\",\"returns the `red` channel of `@color`\")},{name:\"green\",example:\"green(@color);\",description:i(\"less.builtin.green\",\"returns the `green` channel of `@color`\")},{name:\"blue\",example:\"blue(@color);\",description:i(\"less.builtin.blue\",\"returns the `blue` channel of `@color`\")},{name:\"alpha\",example:\"alpha(@color);\",description:i(\"less.builtin.alpha\",\"returns the `alpha` channel of `@color`\")},{name:\"luma\",example:\"luma(@color);\",description:i(\"less.builtin.luma\",\"returns the `luma` value (perceptual brightness) of `@color`\")},{name:\"saturate\",example:\"saturate(@color, 10%);\",description:i(\"less.builtin.saturate\",\"return `@color` 10% points more saturated\")},{name:\"desaturate\",example:\"desaturate(@color, 10%);\",description:i(\"less.builtin.desaturate\",\"return `@color` 10% points less saturated\")},{name:\"lighten\",example:\"lighten(@color, 10%);\",description:i(\"less.builtin.lighten\",\"return `@color` 10% points lighter\")},{name:\"darken\",example:\"darken(@color, 10%);\",description:i(\"less.builtin.darken\",\"return `@color` 10% points darker\")},{name:\"fadein\",example:\"fadein(@color, 10%);\",description:i(\"less.builtin.fadein\",\"return `@color` 10% points less transparent\")},{name:\"fadeout\",example:\"fadeout(@color, 10%);\",description:i(\"less.builtin.fadeout\",\"return `@color` 10% points more transparent\")},{name:\"fade\",example:\"fade(@color, 50%);\",description:i(\"less.builtin.fade\",\"return `@color` with 50% transparency\")},{name:\"spin\",example:\"spin(@color, 10);\",description:i(\"less.builtin.spin\",\"return `@color` with a 10 degree larger in hue\")},{name:\"mix\",example:\"mix(@color1, @color2, [@weight: 50%]);\",description:i(\"less.builtin.mix\",\"return a mix of `@color1` and `@color2`\")},{name:\"greyscale\",example:\"greyscale(@color);\",description:i(\"less.builtin.greyscale\",\"returns a grey, 100% desaturated color\")},{name:\"contrast\",example:\"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);\",description:i(\"less.builtin.contrast\",\"return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes\")},{name:\"multiply\",example:\"multiply(@color1, @color2);\"},{name:\"screen\",example:\"screen(@color1, @color2);\"},{name:\"overlay\",example:\"overlay(@color1, @color2);\"},{name:\"softlight\",example:\"softlight(@color1, @color2);\"},{name:\"hardlight\",example:\"hardlight(@color1, @color2);\"},{name:\"difference\",example:\"difference(@color1, @color2);\"},{name:\"exclusion\",example:\"exclusion(@color1, @color2);\"},{name:\"average\",example:\"average(@color1, @color2);\"},{name:\"negation\",example:\"negation(@color1, @color2);\"}],t}(n.CSSCompletion);t.LESSCompletion=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssFolding\",[\"require\",\"exports\",\"../parser/cssScanner\",\"../parser/scssScanner\",\"../parser/lessScanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/cssScanner\"),r=e(\"../parser/scssScanner\"),i=e(\"../parser/lessScanner\");function o(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}t.getFoldingRanges=function(e,t){return function(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine<o&&o<e.endLine||(i.push(e),o=e.endLine)})),i.length<n?i:i.slice(0,n)}(function(e){function t(t){return e.positionAt(t.offset).line}function s(t){return e.positionAt(t.offset+t.len).line}var a=[],l=[],c=function(){switch(e.languageId){case\"scss\":return new r.SCSSScanner;case\"less\":return new i.LESSScanner;default:return new n.Scanner}}();c.ignoreComment=!1,c.setSource(e.getText());var d=c.scan(),p=null,h=function(){switch(d.type){case n.TokenType.CurlyL:case r.InterpolationFunction:l.push({line:t(d),type:\"brace\",isStart:!0});break;case n.TokenType.CurlyR:if(0!==l.length){if(!(u=o(l,\"brace\")))break;var i=s(d);\"brace\"===u.type&&(p&&s(p)!==i&&i--,u.line!==i&&a.push({startLine:u.line,endLine:i,kind:void 0}))}break;case n.TokenType.Comment:var h=function(e){return\"#region\"===e?{line:t(d),type:\"comment\",isStart:!0}:{line:s(d),type:\"comment\",isStart:!1}},m=function(t){var n=t.text.match(/^\\s*\\/\\*\\s*(#region|#endregion)\\b\\s*(.*?)\\s*\\*\\//);if(n)return h(n[1]);if(\"scss\"===e.languageId||\"less\"===e.languageId){var r=t.text.match(/^\\s*\\/\\/\\s*(#region|#endregion)\\b\\s*(.*?)\\s*/);if(r)return h(r[1])}return null}(d);if(m)if(m.isStart)l.push(m);else{var u;if(!(u=o(l,\"comment\")))break;\"comment\"===u.type&&u.line!==m.line&&a.push({startLine:u.line,endLine:m.line,kind:\"region\"})}else{var f=function(e,n){var r=t(e),i=s(e);return r!==i?{startLine:r,endLine:i,kind:n}:null}(d,\"comment\");f&&a.push(f)}}p=d,d=c.scan()};for(;d.type!==n.TokenType.EOF;)h();return a}(e),t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/cssSelectionRange\",[\"require\",\"exports\",\"../cssLanguageTypes\",\"../parser/cssNodes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../cssLanguageTypes\"),r=e(\"../parser/cssNodes\");t.getSelectionRanges=function(e,t,i){return t.map((function(t){for(var o=function(t){var n=i.findChildAtOffset(e.offsetAt(t),!0);if(!n)return[];var o=[];for(;n;)n.parent&&n.offset===n.parent.offset&&n.end===n.parent.end?n=n.parent:(n.type===r.NodeType.Declarations?o.push([n.offset+1,n.end-1]):o.push([n.offset,n.end]),n=n.parent);return o}(t),s=void 0,a=o.length-1;a>=0;a--)s=n.SelectionRange.create(n.Range.create(e.positionAt(o[a][0]),e.positionAt(o[a][1])),s);return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var i=navigator.userAgent;r=i.indexOf(\"Windows\")>=0}var o=/^\\w[\\w\\d+.-]*$/,s=/^\\//,a=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,i,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=i||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!o.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!s.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===i?i=this.query:null===i&&(i=\"\"),void 0===o?o=this.fragment:null===o&&(o=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new h(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new h(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new h(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new h(\"file\",t,e,\"\",\"\")},e.from=function(e){return new h(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new h(t);return n._formatted=t.external,n._fsPath=t._sep===p?t.fsPath:null,n}return t},e}();t.URI=d;var p=r?1:void 0,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=p),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),m=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function u(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);if(o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=m[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:u,r=\"\",i=e.scheme,o=e.authority,s=e.path,a=e.query,c=e.fragment;if(i&&(r+=i,r+=\":\"),(o||\"file\"===i)&&(r+=l,r+=l),o){var d=o.indexOf(\"@\");if(-1!==d){var p=o.substr(0,d);o=o.substr(d+1),-1===(d=p.indexOf(\":\"))?r+=n(p,!1):(r+=n(p.substr(0,d),!1),r+=\":\",r+=n(p.substr(d+1),!1)),r+=\"@\"}-1===(d=(o=o.toLowerCase()).indexOf(\":\"))?r+=n(o,!1):(r+=n(o.substr(0,d),!1),r+=o.substr(d))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(h=s.charCodeAt(1))>=65&&h<=90&&(s=\"/\"+String.fromCharCode(h+32)+\":\"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var h;(h=s.charCodeAt(0))>=65&&h<=90&&(s=String.fromCharCode(h+32)+\":\"+s.substr(2))}r+=n(s,!0)}return a&&(r+=\"?\",r+=n(a,!1)),c&&(r+=\"#\",r+=t?c:u(c,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/services/scssNavigation\",[\"require\",\"exports\",\"./cssNavigation\",\"../cssLanguageTypes\",\"../parser/cssNodes\",\"vscode-uri\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./cssNavigation\"),r=e(\"../cssLanguageTypes\"),i=e(\"../parser/cssNodes\"),o=e(\"vscode-uri\"),s=function(e){function t(t){var n=e.call(this)||this;return n.fileSystemProvider=t,n}return __extends(t,e),t.prototype.isRawStringDocumentLinkNode=function(t){return e.prototype.isRawStringDocumentLinkNode.call(this,t)||t.type===i.NodeType.Use||t.type===i.NodeType.Forward},t.prototype.findDocumentLinks2=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){function i(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(n){switch(n.label){case 0:if(!a)return[2,!1];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,a.stat(e)];case 2:return(t=n.sent()).type===r.FileType.Unknown&&-1===t.size?[2,!1]:[2,!0];case 3:return n.sent(),[2,!1];case 4:return[2]}}))}))}var s,a,l,c,d,p,h,m;return __generator(this,(function(r){switch(r.label){case 0:if(s=this.findDocumentLinks(e,t,n),a=this.fileSystemProvider,l=[],!a)return[3,9];c=0,r.label=1;case 1:if(!(c<s.length))return[3,8];if(!(d=s[c].target))return[3,7];p=null;try{p=o.URI.parse(d)}catch(e){if(e instanceof URIError)return[3,7];throw e}return(h=function(e){if(\"\"!==e.path&&!e.path.endsWith(\".scss\")&&!e.path.endsWith(\".css\")){if(e.path.endsWith(\"/\"))return[e.with({path:e.path+\"index.scss\"}).toString(),e.with({path:e.path+\"_index.scss\"}).toString()];var t=e.path.split(\"/\"),n=t[t.length-1],r=e.path.slice(0,-n.length);if(n.startsWith(\"_\"))return e.path.endsWith(\".scss\")?void 0:[e.with({path:e.path+\".scss\"}).toString()];var i=n+\".scss\",o=function(t){return e.with({path:r+t}).toString()};return[o(i),o(\"_\"+i),o(i.slice(0,-5)+\"/index.scss\"),o(i.slice(0,-5)+\"/_index.scss\"),o(i.slice(0,-5)+\".css\")]}}(p))?[3,3]:[4,i(d)];case 2:return r.sent()&&l.push(s[c]),[3,7];case 3:m=0,r.label=4;case 4:return m<h.length?[4,i(h[m])]:[3,7];case 5:if(r.sent())return l.push(__assign(__assign({},s[c]),{target:h[m]})),[3,7];r.label=6;case 6:return m++,[3,4];case 7:return c++,[3,1];case 8:return[3,10];case 9:l.push.apply(l,s),r.label=10;case 10:return[2,l]}}))}))},t}(n.CSSNavigation);t.SCSSNavigation=s})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-css-languageservice/cssLanguageService\",[\"require\",\"exports\",\"./parser/cssParser\",\"./services/cssCompletion\",\"./services/cssHover\",\"./services/cssNavigation\",\"./services/cssCodeActions\",\"./services/cssValidation\",\"./parser/scssParser\",\"./services/scssCompletion\",\"./parser/lessParser\",\"./services/lessCompletion\",\"./services/cssFolding\",\"./languageFacts/facts\",\"./services/cssSelectionRange\",\"./services/scssNavigation\",\"./cssLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./parser/cssParser\"),r=e(\"./services/cssCompletion\"),i=e(\"./services/cssHover\"),o=e(\"./services/cssNavigation\"),s=e(\"./services/cssCodeActions\"),a=e(\"./services/cssValidation\"),l=e(\"./parser/scssParser\"),c=e(\"./services/scssCompletion\"),d=e(\"./parser/lessParser\"),p=e(\"./services/lessCompletion\"),h=e(\"./services/cssFolding\"),m=e(\"./languageFacts/facts\"),u=e(\"./services/cssSelectionRange\"),f=e(\"./services/scssNavigation\");function g(e,t,n,r,i,o){return{configure:function(e){o.configure(e),t.configure(e)},doValidation:o.doValidation.bind(o),parseStylesheet:e.parseStylesheet.bind(e),doComplete:t.doComplete.bind(t),setCompletionParticipants:t.setCompletionParticipants.bind(t),doHover:n.doHover.bind(n),findDefinition:r.findDefinition.bind(r),findReferences:r.findReferences.bind(r),findDocumentHighlights:r.findDocumentHighlights.bind(r),findDocumentLinks:r.findDocumentLinks.bind(r),findDocumentLinks2:r.findDocumentLinks2.bind(r),findDocumentSymbols:r.findDocumentSymbols.bind(r),doCodeActions:i.doCodeActions.bind(i),doCodeActions2:i.doCodeActions2.bind(i),findColorSymbols:function(e,t){return r.findDocumentColors(e,t).map((function(e){return e.range}))},findDocumentColors:r.findDocumentColors.bind(r),getColorPresentations:r.getColorPresentations.bind(r),doRename:r.doRename.bind(r),getFoldingRanges:h.getFoldingRanges,getSelectionRanges:u.getSelectionRanges}}function b(e){e&&e.customDataProviders&&m.cssDataManager.addDataProviders(e.customDataProviders)}!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./cssLanguageTypes\")),t.getCSSLanguageService=function(e){return b(e),g(new n.Parser,new r.CSSCompletion(null,e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)},t.getSCSSLanguageService=function(e){return b(e),g(new l.SCSSParser,new c.SCSSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new f.SCSSNavigation(e&&e.fileSystemProvider),new s.CSSCodeActions,new a.CSSValidation)},t.getLESSLanguageService=function(e){return b(e),g(new d.LESSParser,new p.LESSCompletion(e&&e.clientCapabilities),new i.CSSHover(e&&e.clientCapabilities),new o.CSSNavigation,new s.CSSCodeActions,new a.CSSValidation)}})),define(\"vscode-css-languageservice\",[\"vscode-css-languageservice/cssLanguageService\"],(function(e){return e})),define(\"vs/language/css/cssWorker\",[\"require\",\"exports\",\"vscode-css-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){switch(this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageId){case\"css\":this._languageService=n.getCSSLanguageService();break;case\"less\":this._languageService=n.getLESSLanguageService();break;case\"scss\":this._languageService=n.getSCSSLanguageService();break;default:throw new Error(\"Invalid language id: \"+this._languageId)}this._languageService.configure(this._languageSettings)}return e.prototype.doValidation=function(e){var t=this._getTextDocument(e);if(t){var n=this._languageService.parseStylesheet(t),r=this._languageService.doValidation(t,n);return Promise.resolve(r)}return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.doComplete(n,t,r);return Promise.resolve(i)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.doHover(n,t,r);return Promise.resolve(i)},e.prototype.findDefinition=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findDefinition(n,t,r);return Promise.resolve(i)},e.prototype.findReferences=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findReferences(n,t,r);return Promise.resolve(i)},e.prototype.findDocumentHighlights=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.findDocumentHighlights(n,t,r);return Promise.resolve(i)},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseStylesheet(t),r=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(r)},e.prototype.doCodeActions=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.doCodeActions(r,t,n,i);return Promise.resolve(o)},e.prototype.findDocumentColors=function(e){var t=this._getTextDocument(e),n=this._languageService.parseStylesheet(t),r=this._languageService.findDocumentColors(t,n);return Promise.resolve(r)},e.prototype.getColorPresentations=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.getColorPresentations(r,i,t,n);return Promise.resolve(o)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.getFoldingRanges(n,t);return Promise.resolve(r)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseStylesheet(n),i=this._languageService.getSelectionRanges(n,t,r);return Promise.resolve(i)},e.prototype.doRename=function(e,t,n){var r=this._getTextDocument(e),i=this._languageService.parseStylesheet(r),o=this._languageService.doRename(r,t,n,i);return Promise.resolve(o)},e.prototype._getTextDocument=function(e){for(var t=0,r=this._ctx.getMirrorModels();t<r.length;t++){var i=r[t];if(i.uri.toString()===e)return n.TextDocument.create(e,this._languageId,i.version,i.getValue())}return null},e}();t.CSSWorker=r,t.create=function(e,t){return new r(e,t)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/html/htmlMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/html/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/html/htmlWorker\",createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0];return void 0!==t[i]?t[i]:e}))}function i(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];return n(t,i)}function r(e){return i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=r,t.config=function(e){return r}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i,r,a,o,s,l,c,d,h,u,p,m;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.number(t.line)&&y.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,i,r){if(y.number(e)&&y.number(t)&&y.number(i)&&y.number(r))return{start:n.create(e,t),end:n.create(i,r)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+i+\", \"+r+\"]\")},e.is=function(e){var t=e;return y.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(i=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.string(t.uri)||y.undefined(t.uri))}}(r=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,i){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:i}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.targetRange)&&y.string(t.targetUri)&&(i.is(t.targetSelectionRange)||y.undefined(t.targetSelectionRange))&&(i.is(t.originSelectionRange)||y.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return y.number(t.red)&&y.number(t.green)&&y.number(t.blue)&&y.number(t.alpha)}}(a=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return i.is(t.range)&&a.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return y.string(t.label)&&(y.undefined(t.textEdit)||c.is(t))&&(y.undefined(t.additionalTextEdits)||y.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,i,r){var a={startLine:e,endLine:t};return y.defined(n)&&(a.startCharacter=n),y.defined(i)&&(a.endCharacter=i),y.defined(r)&&(a.kind=r),a},e.is=function(e){var t=e;return y.number(t.startLine)&&y.number(t.startLine)&&(y.undefined(t.startCharacter)||y.number(t.startCharacter))&&(y.undefined(t.endCharacter)||y.number(t.endCharacter))&&(y.undefined(t.kind)||y.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return y.defined(t)&&r.is(t.location)&&y.string(t.message)}}(o=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,i,r,a){var o={range:e,message:t};return y.defined(n)&&(o.severity=n),y.defined(i)&&(o.code=i),y.defined(r)&&(o.source=r),y.defined(a)&&(o.relatedInformation=a),o},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&y.string(t.message)&&(y.number(t.severity)||y.undefined(t.severity))&&(y.number(t.code)||y.string(t.code)||y.undefined(t.code))&&(y.string(t.source)||y.undefined(t.source))&&(y.undefined(t.relatedInformation)||y.typedArray(t.relatedInformation,o.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={title:e,command:t};return y.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.title)&&y.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.string(t.newText)&&i.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return y.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(h=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var i={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),i},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&y.string(t.oldUri)&&y.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(u=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||y.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||y.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return y.string(e.kind)?h.is(e)||u.is(e)||p.is(e):d.is(e)})))}}(m=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,_,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var i=new v(e.changes[n]);t._textEditChanges[n]=i})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new v(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new v(r),this._textEditChanges[e]=i}return i},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(u.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&(null===t.version||y.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&y.string(t.languageId)&&y.number(t.version)&&y.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return y.objectLiteral(e)&&g.is(t.kind)&&y.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return y.string(t)||y.objectLiteral(t)&&y.string(t.language)&&y.string(t.value)}}(_=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&y.objectLiteral(t)&&(b.is(t.contents)||_.is(t.contents)||y.typedArray(t.contents,_.is))&&(void 0===e.range||i.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={label:e};return y.defined(t)&&(r.documentation=t),y.defined(n)?r.parameters=n:r.parameters=[],r}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return y.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,i,r){var a={name:e,kind:t,location:{uri:i,range:n}};return r&&(a.containerName=r),a}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,i,r,a){var o={name:e,detail:t,kind:n,range:i,selectionRange:r};return void 0!==a&&(o.children=a),o},e.is=function(e){var t=e;return t&&y.string(t.name)&&y.number(t.kind)&&i.is(t.range)&&i.is(t.selectionRange)&&(void 0===t.detail||y.string(t.detail))&&(void 0===t.deprecated||y.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return y.defined(t)&&y.typedArray(t.diagnostics,s.is)&&(void 0===t.only||y.typedArray(t.only,y.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var i={title:e};return l.is(t)?i.command=t:i.edit=t,void 0!==n&&(i.kind=n),i},e.is=function(e){var t=e;return t&&y.string(t.title)&&(void 0===t.diagnostics||y.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||y.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||y.boolean(t.isPreferred))&&(void 0===t.edit||m.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return y.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return y.defined(t)&&y.number(t.tabSize)&&y.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.target)||y.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&i.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,i){return new T(e,t,n,i)},e.is=function(e){var t=e;return!!(y.defined(t)&&y.string(t.uri)&&(y.undefined(t.languageId)||y.string(t.languageId))&&y.number(t.lineCount)&&y.func(t.getText)&&y.func(t.positionAt)&&y.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,a=i.length-1;a>=0;a--){var o=i[a],s=e.offsetAt(o.range.start),l=e.offsetAt(o.range.end);if(!(l<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+o.newText+n.substring(l,n.length),r=s}return n}}(t.TextDocument||(t.TextDocument={}));var y,T=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i<t.length;i++){n&&(e.push(i),n=!1);var r=t.charAt(i);n=\"\\r\"===r||\"\\n\"===r,\"\\r\"===r&&i+1<t.length&&\"\\n\"===t.charAt(i+1)&&i++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(0===r)return n.create(0,e);for(;i<r;){var a=Math.floor((i+r)/2);t[a]>e?r=a:i=a+1}var o=i-1;return n.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(y||(y={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");!function(e){e[e.StartCommentTag=0]=\"StartCommentTag\",e[e.Comment=1]=\"Comment\",e[e.EndCommentTag=2]=\"EndCommentTag\",e[e.StartTagOpen=3]=\"StartTagOpen\",e[e.StartTagClose=4]=\"StartTagClose\",e[e.StartTagSelfClose=5]=\"StartTagSelfClose\",e[e.StartTag=6]=\"StartTag\",e[e.EndTagOpen=7]=\"EndTagOpen\",e[e.EndTagClose=8]=\"EndTagClose\",e[e.EndTag=9]=\"EndTag\",e[e.DelimiterAssign=10]=\"DelimiterAssign\",e[e.AttributeName=11]=\"AttributeName\",e[e.AttributeValue=12]=\"AttributeValue\",e[e.StartDoctypeTag=13]=\"StartDoctypeTag\",e[e.Doctype=14]=\"Doctype\",e[e.EndDoctypeTag=15]=\"EndDoctypeTag\",e[e.Content=16]=\"Content\",e[e.Whitespace=17]=\"Whitespace\",e[e.Unknown=18]=\"Unknown\",e[e.Script=19]=\"Script\",e[e.Styles=20]=\"Styles\",e[e.EOS=21]=\"EOS\"}(t.TokenType||(t.TokenType={})),function(e){e[e.WithinContent=0]=\"WithinContent\",e[e.AfterOpeningStartTag=1]=\"AfterOpeningStartTag\",e[e.AfterOpeningEndTag=2]=\"AfterOpeningEndTag\",e[e.WithinDoctype=3]=\"WithinDoctype\",e[e.WithinTag=4]=\"WithinTag\",e[e.WithinEndTag=5]=\"WithinEndTag\",e[e.WithinComment=6]=\"WithinComment\",e[e.WithinScriptContent=7]=\"WithinScriptContent\",e[e.WithinStyleContent=8]=\"WithinStyleContent\",e[e.AfterAttributeName=9]=\"AfterAttributeName\",e[e.BeforeAttributeValue=10]=\"BeforeAttributeValue\"}(t.ScannerState||(t.ScannerState={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlScanner\",[\"require\",\"exports\",\"vscode-nls\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\"),i=e(\"../htmlLanguageTypes\"),r=n.loadMessageBundle(),a=function(){function e(e,t){this.source=e,this.len=e.length,this.position=t}return e.prototype.eos=function(){return this.len<=this.position},e.prototype.getSource=function(){return this.source},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.goToEnd=function(){this.position=this.source.length},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){var t;if(this.position+e.length>this.source.length)return!1;for(t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceIfRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index+t[0].length,t[0]):\"\"},e.prototype.advanceUntilRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index,t[0]):(this.goToEnd(),\"\")},e.prototype.advanceUntilChar=function(e){for(;this.position<this.source.length;){if(this.source.charCodeAt(this.position)===e)return!0;this.advance(1)}return!1},e.prototype.advanceUntilChars=function(e){for(;this.position+e.length<=this.source.length;){for(var t=0;t<e.length&&this.source.charCodeAt(this.position+t)===e[t];t++);if(t===e.length)return!0;this.advance(1)}return this.goToEnd(),!1},e.prototype.skipWhitespace=function(){return this.advanceWhileChar((function(e){return e===b||e===_||e===m||e===g||e===f}))>0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}(),o=\"!\".charCodeAt(0),s=\"-\".charCodeAt(0),l=\"<\".charCodeAt(0),c=\">\".charCodeAt(0),d=\"/\".charCodeAt(0),h=\"=\".charCodeAt(0),u='\"'.charCodeAt(0),p=\"'\".charCodeAt(0),m=\"\\n\".charCodeAt(0),f=\"\\r\".charCodeAt(0),g=\"\\f\".charCodeAt(0),b=\" \".charCodeAt(0),_=\"\\t\".charCodeAt(0),v={\"text/x-handlebars-template\":!0};t.createScanner=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=i.ScannerState.WithinContent);var m,f,g,b,_,w=new a(e,t),y=n,T=0,k=i.TokenType.Unknown;function S(){return w.advanceIfRegExp(/^[_:\\w][_:\\w-.\\d]*/).toLowerCase()}function x(e,t,n){return k=t,T=e,m=n,t}return{scan:function(){var e=w.pos(),t=y,n=function e(){var t,n=w.pos();if(w.eos())return x(n,i.TokenType.EOS);switch(y){case i.ScannerState.WithinComment:return w.advanceIfChars([s,s,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndCommentTag)):(w.advanceUntilChars([s,s,c]),x(n,i.TokenType.Comment));case i.ScannerState.WithinDoctype:return w.advanceIfChar(c)?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndDoctypeTag)):(w.advanceUntilChar(c),x(n,i.TokenType.Doctype));case i.ScannerState.WithinContent:if(w.advanceIfChar(l)){if(!w.eos()&&w.peekChar()===o){if(w.advanceIfChars([o,s,s]))return y=i.ScannerState.WithinComment,x(n,i.TokenType.StartCommentTag);if(w.advanceIfRegExp(/^!doctype/i))return y=i.ScannerState.WithinDoctype,x(n,i.TokenType.StartDoctypeTag)}return w.advanceIfChar(d)?(y=i.ScannerState.AfterOpeningEndTag,x(n,i.TokenType.EndTagOpen)):(y=i.ScannerState.AfterOpeningStartTag,x(n,i.TokenType.StartTagOpen))}return w.advanceUntilChar(l),x(n,i.TokenType.Content);case i.ScannerState.AfterOpeningEndTag:return S().length>0?(y=i.ScannerState.WithinEndTag,x(n,i.TokenType.EndTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinEndTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.endTagNameExpected\",\"End tag name expected.\")):e());case i.ScannerState.WithinEndTag:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);if(w.advanceIfChar(c))return y=i.ScannerState.WithinContent,x(n,i.TokenType.EndTagClose);t=r(\"error.tagNameExpected\",\"Closing bracket expected.\");break;case i.ScannerState.AfterOpeningStartTag:return g=S(),_=void 0,b=void 0,g.length>0?(f=!1,y=i.ScannerState.WithinTag,x(n,i.TokenType.StartTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.startTagNameExpected\",\"Start tag name expected.\")):e());case i.ScannerState.WithinTag:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):f&&(b=w.advanceIfRegExp(/^[^\\s\"'>/=\\x00-\\x0F\\x7F\\x80-\\x9F]*/).toLowerCase()).length>0?(y=i.ScannerState.AfterAttributeName,f=!1,x(n,i.TokenType.AttributeName)):w.advanceIfChars([d,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.StartTagSelfClose)):w.advanceIfChar(c)?(y=\"script\"===g?_&&v[_]?i.ScannerState.WithinContent:i.ScannerState.WithinScriptContent:\"style\"===g?i.ScannerState.WithinStyleContent:i.ScannerState.WithinContent,x(n,i.TokenType.StartTagClose)):(w.advance(1),x(n,i.TokenType.Unknown,r(\"error.unexpectedCharacterInTag\",\"Unexpected character in tag.\")));case i.ScannerState.AfterAttributeName:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):w.advanceIfChar(h)?(y=i.ScannerState.BeforeAttributeValue,x(n,i.TokenType.DelimiterAssign)):(y=i.ScannerState.WithinTag,e());case i.ScannerState.BeforeAttributeValue:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);var a=w.advanceIfRegExp(/^[^\\s\"'`=<>]+/);if(a.length>0)return w.peekChar()===c&&w.peekChar(-1)===d&&(w.goBack(1),a=a.substr(0,a.length-1)),\"type\"===b&&(_=a),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue);var m=w.peekChar();return m===p||m===u?(w.advance(1),w.advanceUntilChar(m)&&w.advance(1),\"type\"===b&&(_=w.getSource().substring(n+1,w.pos()-1)),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue)):(y=i.ScannerState.WithinTag,f=!1,e());case i.ScannerState.WithinScriptContent:for(var T=1;!w.eos();){var k=w.advanceIfRegExp(/<!--|-->|<\\/?script\\s*\\/?>?/i);if(0===k.length)return w.goToEnd(),x(n,i.TokenType.Script);if(\"\\x3c!--\"===k)1===T&&(T=2);else if(\"--\\x3e\"===k)T=1;else if(\"/\"!==k[1])2===T&&(T=3);else{if(3!==T){w.goBack(k.length);break}T=2}}return y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Script):e();case i.ScannerState.WithinStyleContent:return w.advanceUntilRegExp(/<\\/style/i),y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Styles):e()}return w.advance(1),y=i.ScannerState.WithinContent,x(n,i.TokenType.Unknown,t)}();return n!==i.TokenType.EOS&&e===w.pos()?(console.log(\"Scanner.scan has not advanced at offset \"+e+\", state before: \"+t+\" after: \"+y),w.advance(1),x(e,i.TokenType.Unknown)):n},getTokenType:function(){return k},getTokenOffset:function(){return T},getTokenLength:function(){return w.pos()-T},getTokenEnd:function(){return w.pos()},getTokenText:function(){return w.getSource().substring(T,w.pos())},getScannerState:function(){return y},getTokenError:function(){return m}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n},t.binarySearch=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var a=(i+r)/2|0,o=n(e[a],t);if(o<0)i=a+1;else{if(!(o>0))return a;r=a-1}}return-(i+1)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/fact\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\");t.VOID_ELEMENTS=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],t.isVoidElement=function(e){return!!e&&n.binarySearch(t.VOID_ELEMENTS,e.toLowerCase(),(function(e,t){return e.localeCompare(t)}))>=0}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlParser\",[\"require\",\"exports\",\"./htmlScanner\",\"../utils/arrays\",\"../htmlLanguageTypes\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./htmlScanner\"),i=e(\"../utils/arrays\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/fact\"),o=function(){function e(e,t,n,i){this.start=e,this.end=t,this.children=n,this.parent=i,this.closed=!1}return Object.defineProperty(e.prototype,\"attributeNames\",{get:function(){return this.attributes?Object.keys(this.attributes):[]},enumerable:!0,configurable:!0}),e.prototype.isSameTag=function(e){return this.tag&&e&&this.tag.length===e.length&&this.tag.toLowerCase()===e},Object.defineProperty(e.prototype,\"firstChild\",{get:function(){return this.children[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lastChild\",{get:function(){return this.children.length?this.children[this.children.length-1]:void 0},enumerable:!0,configurable:!0}),e.prototype.findNodeBefore=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start){if(e<n.end)return n.findNodeBefore(e);var r=n.lastChild;return r&&r.end===n.end?n.findNodeBefore(e):n}}return this},e.prototype.findNodeAt=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start&&e<=n.end)return n.findNodeAt(e)}return this},e}();t.Node=o,t.parse=function(e){for(var t=n.createScanner(e),i=new o(0,e.length,[],void 0),s=i,l=-1,c=null,d=null,h=t.scan();h!==r.TokenType.EOS;){switch(h){case r.TokenType.StartTagOpen:var u=new o(t.getTokenOffset(),e.length,[],s);s.children.push(u),s=u;break;case r.TokenType.StartTag:s.tag=t.getTokenText();break;case r.TokenType.StartTagClose:s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s.tag&&a.isVoidElement(s.tag)&&s.parent&&(s.closed=!0,s=s.parent);break;case r.TokenType.StartTagSelfClose:s.parent&&(s.closed=!0,s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s=s.parent);break;case r.TokenType.EndTagOpen:l=t.getTokenOffset(),c=null;break;case r.TokenType.EndTag:c=t.getTokenText().toLowerCase();break;case r.TokenType.EndTagClose:if(c){for(var p=s;!p.isSameTag(c)&&p.parent;)p=p.parent;if(p.parent){for(;s!==p;)s.end=l,s.closed=!1,s=s.parent;s.closed=!0,s.endTagStart=l,s.end=t.getTokenEnd(),s=s.parent}}break;case r.TokenType.AttributeName:d=t.getTokenText(),(m=s.attributes)||(s.attributes=m={}),m[d]=null;break;case r.TokenType.AttributeValue:var m,f=t.getTokenText();(m=s.attributes)&&d&&(m[d]=f,d=null)}h=t.scan()}for(;s.parent;)s.end=e.length,s.closed=!1,s=s.parent;return{roots:i.children,findNodeBefore:i.findNodeBefore.bind(i),findNodeAt:i.findNodeAt.bind(i)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlEntities\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.entities={\"Aacute;\":\"Á\",Aacute:\"Á\",\"aacute;\":\"á\",aacute:\"á\",\"Abreve;\":\"Ă\",\"abreve;\":\"ă\",\"ac;\":\"∾\",\"acd;\":\"∿\",\"acE;\":\"∾̳\",\"Acirc;\":\"Â\",Acirc:\"Â\",\"acirc;\":\"â\",acirc:\"â\",\"acute;\":\"´\",acute:\"´\",\"Acy;\":\"А\",\"acy;\":\"а\",\"AElig;\":\"Æ\",AElig:\"Æ\",\"aelig;\":\"æ\",aelig:\"æ\",\"af;\":\"⁡\",\"Afr;\":\"𝔄\",\"afr;\":\"𝔞\",\"Agrave;\":\"À\",Agrave:\"À\",\"agrave;\":\"à\",agrave:\"à\",\"alefsym;\":\"ℵ\",\"aleph;\":\"ℵ\",\"Alpha;\":\"Α\",\"alpha;\":\"α\",\"Amacr;\":\"Ā\",\"amacr;\":\"ā\",\"amalg;\":\"⨿\",\"AMP;\":\"&\",AMP:\"&\",\"amp;\":\"&\",amp:\"&\",\"And;\":\"⩓\",\"and;\":\"∧\",\"andand;\":\"⩕\",\"andd;\":\"⩜\",\"andslope;\":\"⩘\",\"andv;\":\"⩚\",\"ang;\":\"∠\",\"ange;\":\"⦤\",\"angle;\":\"∠\",\"angmsd;\":\"∡\",\"angmsdaa;\":\"⦨\",\"angmsdab;\":\"⦩\",\"angmsdac;\":\"⦪\",\"angmsdad;\":\"⦫\",\"angmsdae;\":\"⦬\",\"angmsdaf;\":\"⦭\",\"angmsdag;\":\"⦮\",\"angmsdah;\":\"⦯\",\"angrt;\":\"∟\",\"angrtvb;\":\"⊾\",\"angrtvbd;\":\"⦝\",\"angsph;\":\"∢\",\"angst;\":\"Å\",\"angzarr;\":\"⍼\",\"Aogon;\":\"Ą\",\"aogon;\":\"ą\",\"Aopf;\":\"𝔸\",\"aopf;\":\"𝕒\",\"ap;\":\"≈\",\"apacir;\":\"⩯\",\"apE;\":\"⩰\",\"ape;\":\"≊\",\"apid;\":\"≋\",\"apos;\":\"'\",\"ApplyFunction;\":\"⁡\",\"approx;\":\"≈\",\"approxeq;\":\"≊\",\"Aring;\":\"Å\",Aring:\"Å\",\"aring;\":\"å\",aring:\"å\",\"Ascr;\":\"𝒜\",\"ascr;\":\"𝒶\",\"Assign;\":\"≔\",\"ast;\":\"*\",\"asymp;\":\"≈\",\"asympeq;\":\"≍\",\"Atilde;\":\"Ã\",Atilde:\"Ã\",\"atilde;\":\"ã\",atilde:\"ã\",\"Auml;\":\"Ä\",Auml:\"Ä\",\"auml;\":\"ä\",auml:\"ä\",\"awconint;\":\"∳\",\"awint;\":\"⨑\",\"backcong;\":\"≌\",\"backepsilon;\":\"϶\",\"backprime;\":\"‵\",\"backsim;\":\"∽\",\"backsimeq;\":\"⋍\",\"Backslash;\":\"∖\",\"Barv;\":\"⫧\",\"barvee;\":\"⊽\",\"Barwed;\":\"⌆\",\"barwed;\":\"⌅\",\"barwedge;\":\"⌅\",\"bbrk;\":\"⎵\",\"bbrktbrk;\":\"⎶\",\"bcong;\":\"≌\",\"Bcy;\":\"Б\",\"bcy;\":\"б\",\"bdquo;\":\"„\",\"becaus;\":\"∵\",\"Because;\":\"∵\",\"because;\":\"∵\",\"bemptyv;\":\"⦰\",\"bepsi;\":\"϶\",\"bernou;\":\"ℬ\",\"Bernoullis;\":\"ℬ\",\"Beta;\":\"Β\",\"beta;\":\"β\",\"beth;\":\"ℶ\",\"between;\":\"≬\",\"Bfr;\":\"𝔅\",\"bfr;\":\"𝔟\",\"bigcap;\":\"⋂\",\"bigcirc;\":\"◯\",\"bigcup;\":\"⋃\",\"bigodot;\":\"⨀\",\"bigoplus;\":\"⨁\",\"bigotimes;\":\"⨂\",\"bigsqcup;\":\"⨆\",\"bigstar;\":\"★\",\"bigtriangledown;\":\"▽\",\"bigtriangleup;\":\"△\",\"biguplus;\":\"⨄\",\"bigvee;\":\"⋁\",\"bigwedge;\":\"⋀\",\"bkarow;\":\"⤍\",\"blacklozenge;\":\"⧫\",\"blacksquare;\":\"▪\",\"blacktriangle;\":\"▴\",\"blacktriangledown;\":\"▾\",\"blacktriangleleft;\":\"◂\",\"blacktriangleright;\":\"▸\",\"blank;\":\"␣\",\"blk12;\":\"▒\",\"blk14;\":\"░\",\"blk34;\":\"▓\",\"block;\":\"█\",\"bne;\":\"=⃥\",\"bnequiv;\":\"≡⃥\",\"bNot;\":\"⫭\",\"bnot;\":\"⌐\",\"Bopf;\":\"𝔹\",\"bopf;\":\"𝕓\",\"bot;\":\"⊥\",\"bottom;\":\"⊥\",\"bowtie;\":\"⋈\",\"boxbox;\":\"⧉\",\"boxDL;\":\"╗\",\"boxDl;\":\"╖\",\"boxdL;\":\"╕\",\"boxdl;\":\"┐\",\"boxDR;\":\"╔\",\"boxDr;\":\"╓\",\"boxdR;\":\"╒\",\"boxdr;\":\"┌\",\"boxH;\":\"═\",\"boxh;\":\"─\",\"boxHD;\":\"╦\",\"boxHd;\":\"╤\",\"boxhD;\":\"╥\",\"boxhd;\":\"┬\",\"boxHU;\":\"╩\",\"boxHu;\":\"╧\",\"boxhU;\":\"╨\",\"boxhu;\":\"┴\",\"boxminus;\":\"⊟\",\"boxplus;\":\"⊞\",\"boxtimes;\":\"⊠\",\"boxUL;\":\"╝\",\"boxUl;\":\"╜\",\"boxuL;\":\"╛\",\"boxul;\":\"┘\",\"boxUR;\":\"╚\",\"boxUr;\":\"╙\",\"boxuR;\":\"╘\",\"boxur;\":\"└\",\"boxV;\":\"║\",\"boxv;\":\"│\",\"boxVH;\":\"╬\",\"boxVh;\":\"╫\",\"boxvH;\":\"╪\",\"boxvh;\":\"┼\",\"boxVL;\":\"╣\",\"boxVl;\":\"╢\",\"boxvL;\":\"╡\",\"boxvl;\":\"┤\",\"boxVR;\":\"╠\",\"boxVr;\":\"╟\",\"boxvR;\":\"╞\",\"boxvr;\":\"├\",\"bprime;\":\"‵\",\"Breve;\":\"˘\",\"breve;\":\"˘\",\"brvbar;\":\"¦\",brvbar:\"¦\",\"Bscr;\":\"ℬ\",\"bscr;\":\"𝒷\",\"bsemi;\":\"⁏\",\"bsim;\":\"∽\",\"bsime;\":\"⋍\",\"bsol;\":\"\\\\\",\"bsolb;\":\"⧅\",\"bsolhsub;\":\"⟈\",\"bull;\":\"•\",\"bullet;\":\"•\",\"bump;\":\"≎\",\"bumpE;\":\"⪮\",\"bumpe;\":\"≏\",\"Bumpeq;\":\"≎\",\"bumpeq;\":\"≏\",\"Cacute;\":\"Ć\",\"cacute;\":\"ć\",\"Cap;\":\"⋒\",\"cap;\":\"∩\",\"capand;\":\"⩄\",\"capbrcup;\":\"⩉\",\"capcap;\":\"⩋\",\"capcup;\":\"⩇\",\"capdot;\":\"⩀\",\"CapitalDifferentialD;\":\"ⅅ\",\"caps;\":\"∩︀\",\"caret;\":\"⁁\",\"caron;\":\"ˇ\",\"Cayleys;\":\"ℭ\",\"ccaps;\":\"⩍\",\"Ccaron;\":\"Č\",\"ccaron;\":\"č\",\"Ccedil;\":\"Ç\",Ccedil:\"Ç\",\"ccedil;\":\"ç\",ccedil:\"ç\",\"Ccirc;\":\"Ĉ\",\"ccirc;\":\"ĉ\",\"Cconint;\":\"∰\",\"ccups;\":\"⩌\",\"ccupssm;\":\"⩐\",\"Cdot;\":\"Ċ\",\"cdot;\":\"ċ\",\"cedil;\":\"¸\",cedil:\"¸\",\"Cedilla;\":\"¸\",\"cemptyv;\":\"⦲\",\"cent;\":\"¢\",cent:\"¢\",\"CenterDot;\":\"·\",\"centerdot;\":\"·\",\"Cfr;\":\"ℭ\",\"cfr;\":\"𝔠\",\"CHcy;\":\"Ч\",\"chcy;\":\"ч\",\"check;\":\"✓\",\"checkmark;\":\"✓\",\"Chi;\":\"Χ\",\"chi;\":\"χ\",\"cir;\":\"○\",\"circ;\":\"ˆ\",\"circeq;\":\"≗\",\"circlearrowleft;\":\"↺\",\"circlearrowright;\":\"↻\",\"circledast;\":\"⊛\",\"circledcirc;\":\"⊚\",\"circleddash;\":\"⊝\",\"CircleDot;\":\"⊙\",\"circledR;\":\"®\",\"circledS;\":\"Ⓢ\",\"CircleMinus;\":\"⊖\",\"CirclePlus;\":\"⊕\",\"CircleTimes;\":\"⊗\",\"cirE;\":\"⧃\",\"cire;\":\"≗\",\"cirfnint;\":\"⨐\",\"cirmid;\":\"⫯\",\"cirscir;\":\"⧂\",\"ClockwiseContourIntegral;\":\"∲\",\"CloseCurlyDoubleQuote;\":\"”\",\"CloseCurlyQuote;\":\"’\",\"clubs;\":\"♣\",\"clubsuit;\":\"♣\",\"Colon;\":\"∷\",\"colon;\":\":\",\"Colone;\":\"⩴\",\"colone;\":\"≔\",\"coloneq;\":\"≔\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"∁\",\"compfn;\":\"∘\",\"complement;\":\"∁\",\"complexes;\":\"ℂ\",\"cong;\":\"≅\",\"congdot;\":\"⩭\",\"Congruent;\":\"≡\",\"Conint;\":\"∯\",\"conint;\":\"∮\",\"ContourIntegral;\":\"∮\",\"Copf;\":\"ℂ\",\"copf;\":\"𝕔\",\"coprod;\":\"∐\",\"Coproduct;\":\"∐\",\"COPY;\":\"©\",COPY:\"©\",\"copy;\":\"©\",copy:\"©\",\"copysr;\":\"℗\",\"CounterClockwiseContourIntegral;\":\"∳\",\"crarr;\":\"↵\",\"Cross;\":\"⨯\",\"cross;\":\"✗\",\"Cscr;\":\"𝒞\",\"cscr;\":\"𝒸\",\"csub;\":\"⫏\",\"csube;\":\"⫑\",\"csup;\":\"⫐\",\"csupe;\":\"⫒\",\"ctdot;\":\"⋯\",\"cudarrl;\":\"⤸\",\"cudarrr;\":\"⤵\",\"cuepr;\":\"⋞\",\"cuesc;\":\"⋟\",\"cularr;\":\"↶\",\"cularrp;\":\"⤽\",\"Cup;\":\"⋓\",\"cup;\":\"∪\",\"cupbrcap;\":\"⩈\",\"CupCap;\":\"≍\",\"cupcap;\":\"⩆\",\"cupcup;\":\"⩊\",\"cupdot;\":\"⊍\",\"cupor;\":\"⩅\",\"cups;\":\"∪︀\",\"curarr;\":\"↷\",\"curarrm;\":\"⤼\",\"curlyeqprec;\":\"⋞\",\"curlyeqsucc;\":\"⋟\",\"curlyvee;\":\"⋎\",\"curlywedge;\":\"⋏\",\"curren;\":\"¤\",curren:\"¤\",\"curvearrowleft;\":\"↶\",\"curvearrowright;\":\"↷\",\"cuvee;\":\"⋎\",\"cuwed;\":\"⋏\",\"cwconint;\":\"∲\",\"cwint;\":\"∱\",\"cylcty;\":\"⌭\",\"Dagger;\":\"‡\",\"dagger;\":\"†\",\"daleth;\":\"ℸ\",\"Darr;\":\"↡\",\"dArr;\":\"⇓\",\"darr;\":\"↓\",\"dash;\":\"‐\",\"Dashv;\":\"⫤\",\"dashv;\":\"⊣\",\"dbkarow;\":\"⤏\",\"dblac;\":\"˝\",\"Dcaron;\":\"Ď\",\"dcaron;\":\"ď\",\"Dcy;\":\"Д\",\"dcy;\":\"д\",\"DD;\":\"ⅅ\",\"dd;\":\"ⅆ\",\"ddagger;\":\"‡\",\"ddarr;\":\"⇊\",\"DDotrahd;\":\"⤑\",\"ddotseq;\":\"⩷\",\"deg;\":\"°\",deg:\"°\",\"Del;\":\"∇\",\"Delta;\":\"Δ\",\"delta;\":\"δ\",\"demptyv;\":\"⦱\",\"dfisht;\":\"⥿\",\"Dfr;\":\"𝔇\",\"dfr;\":\"𝔡\",\"dHar;\":\"⥥\",\"dharl;\":\"⇃\",\"dharr;\":\"⇂\",\"DiacriticalAcute;\":\"´\",\"DiacriticalDot;\":\"˙\",\"DiacriticalDoubleAcute;\":\"˝\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"˜\",\"diam;\":\"⋄\",\"Diamond;\":\"⋄\",\"diamond;\":\"⋄\",\"diamondsuit;\":\"♦\",\"diams;\":\"♦\",\"die;\":\"¨\",\"DifferentialD;\":\"ⅆ\",\"digamma;\":\"ϝ\",\"disin;\":\"⋲\",\"div;\":\"÷\",\"divide;\":\"÷\",divide:\"÷\",\"divideontimes;\":\"⋇\",\"divonx;\":\"⋇\",\"DJcy;\":\"Ђ\",\"djcy;\":\"ђ\",\"dlcorn;\":\"⌞\",\"dlcrop;\":\"⌍\",\"dollar;\":\"$\",\"Dopf;\":\"𝔻\",\"dopf;\":\"𝕕\",\"Dot;\":\"¨\",\"dot;\":\"˙\",\"DotDot;\":\"⃜\",\"doteq;\":\"≐\",\"doteqdot;\":\"≑\",\"DotEqual;\":\"≐\",\"dotminus;\":\"∸\",\"dotplus;\":\"∔\",\"dotsquare;\":\"⊡\",\"doublebarwedge;\":\"⌆\",\"DoubleContourIntegral;\":\"∯\",\"DoubleDot;\":\"¨\",\"DoubleDownArrow;\":\"⇓\",\"DoubleLeftArrow;\":\"⇐\",\"DoubleLeftRightArrow;\":\"⇔\",\"DoubleLeftTee;\":\"⫤\",\"DoubleLongLeftArrow;\":\"⟸\",\"DoubleLongLeftRightArrow;\":\"⟺\",\"DoubleLongRightArrow;\":\"⟹\",\"DoubleRightArrow;\":\"⇒\",\"DoubleRightTee;\":\"⊨\",\"DoubleUpArrow;\":\"⇑\",\"DoubleUpDownArrow;\":\"⇕\",\"DoubleVerticalBar;\":\"∥\",\"DownArrow;\":\"↓\",\"Downarrow;\":\"⇓\",\"downarrow;\":\"↓\",\"DownArrowBar;\":\"⤓\",\"DownArrowUpArrow;\":\"⇵\",\"DownBreve;\":\"̑\",\"downdownarrows;\":\"⇊\",\"downharpoonleft;\":\"⇃\",\"downharpoonright;\":\"⇂\",\"DownLeftRightVector;\":\"⥐\",\"DownLeftTeeVector;\":\"⥞\",\"DownLeftVector;\":\"↽\",\"DownLeftVectorBar;\":\"⥖\",\"DownRightTeeVector;\":\"⥟\",\"DownRightVector;\":\"⇁\",\"DownRightVectorBar;\":\"⥗\",\"DownTee;\":\"⊤\",\"DownTeeArrow;\":\"↧\",\"drbkarow;\":\"⤐\",\"drcorn;\":\"⌟\",\"drcrop;\":\"⌌\",\"Dscr;\":\"𝒟\",\"dscr;\":\"𝒹\",\"DScy;\":\"Ѕ\",\"dscy;\":\"ѕ\",\"dsol;\":\"⧶\",\"Dstrok;\":\"Đ\",\"dstrok;\":\"đ\",\"dtdot;\":\"⋱\",\"dtri;\":\"▿\",\"dtrif;\":\"▾\",\"duarr;\":\"⇵\",\"duhar;\":\"⥯\",\"dwangle;\":\"⦦\",\"DZcy;\":\"Џ\",\"dzcy;\":\"џ\",\"dzigrarr;\":\"⟿\",\"Eacute;\":\"É\",Eacute:\"É\",\"eacute;\":\"é\",eacute:\"é\",\"easter;\":\"⩮\",\"Ecaron;\":\"Ě\",\"ecaron;\":\"ě\",\"ecir;\":\"≖\",\"Ecirc;\":\"Ê\",Ecirc:\"Ê\",\"ecirc;\":\"ê\",ecirc:\"ê\",\"ecolon;\":\"≕\",\"Ecy;\":\"Э\",\"ecy;\":\"э\",\"eDDot;\":\"⩷\",\"Edot;\":\"Ė\",\"eDot;\":\"≑\",\"edot;\":\"ė\",\"ee;\":\"ⅇ\",\"efDot;\":\"≒\",\"Efr;\":\"𝔈\",\"efr;\":\"𝔢\",\"eg;\":\"⪚\",\"Egrave;\":\"È\",Egrave:\"È\",\"egrave;\":\"è\",egrave:\"è\",\"egs;\":\"⪖\",\"egsdot;\":\"⪘\",\"el;\":\"⪙\",\"Element;\":\"∈\",\"elinters;\":\"⏧\",\"ell;\":\"ℓ\",\"els;\":\"⪕\",\"elsdot;\":\"⪗\",\"Emacr;\":\"Ē\",\"emacr;\":\"ē\",\"empty;\":\"∅\",\"emptyset;\":\"∅\",\"EmptySmallSquare;\":\"◻\",\"emptyv;\":\"∅\",\"EmptyVerySmallSquare;\":\"▫\",\"emsp;\":\" \",\"emsp13;\":\" \",\"emsp14;\":\" \",\"ENG;\":\"Ŋ\",\"eng;\":\"ŋ\",\"ensp;\":\" \",\"Eogon;\":\"Ę\",\"eogon;\":\"ę\",\"Eopf;\":\"𝔼\",\"eopf;\":\"𝕖\",\"epar;\":\"⋕\",\"eparsl;\":\"⧣\",\"eplus;\":\"⩱\",\"epsi;\":\"ε\",\"Epsilon;\":\"Ε\",\"epsilon;\":\"ε\",\"epsiv;\":\"ϵ\",\"eqcirc;\":\"≖\",\"eqcolon;\":\"≕\",\"eqsim;\":\"≂\",\"eqslantgtr;\":\"⪖\",\"eqslantless;\":\"⪕\",\"Equal;\":\"⩵\",\"equals;\":\"=\",\"EqualTilde;\":\"≂\",\"equest;\":\"≟\",\"Equilibrium;\":\"⇌\",\"equiv;\":\"≡\",\"equivDD;\":\"⩸\",\"eqvparsl;\":\"⧥\",\"erarr;\":\"⥱\",\"erDot;\":\"≓\",\"Escr;\":\"ℰ\",\"escr;\":\"ℯ\",\"esdot;\":\"≐\",\"Esim;\":\"⩳\",\"esim;\":\"≂\",\"Eta;\":\"Η\",\"eta;\":\"η\",\"ETH;\":\"Ð\",ETH:\"Ð\",\"eth;\":\"ð\",eth:\"ð\",\"Euml;\":\"Ë\",Euml:\"Ë\",\"euml;\":\"ë\",euml:\"ë\",\"euro;\":\"€\",\"excl;\":\"!\",\"exist;\":\"∃\",\"Exists;\":\"∃\",\"expectation;\":\"ℰ\",\"ExponentialE;\":\"ⅇ\",\"exponentiale;\":\"ⅇ\",\"fallingdotseq;\":\"≒\",\"Fcy;\":\"Ф\",\"fcy;\":\"ф\",\"female;\":\"♀\",\"ffilig;\":\"ﬃ\",\"fflig;\":\"ﬀ\",\"ffllig;\":\"ﬄ\",\"Ffr;\":\"𝔉\",\"ffr;\":\"𝔣\",\"filig;\":\"ﬁ\",\"FilledSmallSquare;\":\"◼\",\"FilledVerySmallSquare;\":\"▪\",\"fjlig;\":\"fj\",\"flat;\":\"♭\",\"fllig;\":\"ﬂ\",\"fltns;\":\"▱\",\"fnof;\":\"ƒ\",\"Fopf;\":\"𝔽\",\"fopf;\":\"𝕗\",\"ForAll;\":\"∀\",\"forall;\":\"∀\",\"fork;\":\"⋔\",\"forkv;\":\"⫙\",\"Fouriertrf;\":\"ℱ\",\"fpartint;\":\"⨍\",\"frac12;\":\"½\",frac12:\"½\",\"frac13;\":\"⅓\",\"frac14;\":\"¼\",frac14:\"¼\",\"frac15;\":\"⅕\",\"frac16;\":\"⅙\",\"frac18;\":\"⅛\",\"frac23;\":\"⅔\",\"frac25;\":\"⅖\",\"frac34;\":\"¾\",frac34:\"¾\",\"frac35;\":\"⅗\",\"frac38;\":\"⅜\",\"frac45;\":\"⅘\",\"frac56;\":\"⅚\",\"frac58;\":\"⅝\",\"frac78;\":\"⅞\",\"frasl;\":\"⁄\",\"frown;\":\"⌢\",\"Fscr;\":\"ℱ\",\"fscr;\":\"𝒻\",\"gacute;\":\"ǵ\",\"Gamma;\":\"Γ\",\"gamma;\":\"γ\",\"Gammad;\":\"Ϝ\",\"gammad;\":\"ϝ\",\"gap;\":\"⪆\",\"Gbreve;\":\"Ğ\",\"gbreve;\":\"ğ\",\"Gcedil;\":\"Ģ\",\"Gcirc;\":\"Ĝ\",\"gcirc;\":\"ĝ\",\"Gcy;\":\"Г\",\"gcy;\":\"г\",\"Gdot;\":\"Ġ\",\"gdot;\":\"ġ\",\"gE;\":\"≧\",\"ge;\":\"≥\",\"gEl;\":\"⪌\",\"gel;\":\"⋛\",\"geq;\":\"≥\",\"geqq;\":\"≧\",\"geqslant;\":\"⩾\",\"ges;\":\"⩾\",\"gescc;\":\"⪩\",\"gesdot;\":\"⪀\",\"gesdoto;\":\"⪂\",\"gesdotol;\":\"⪄\",\"gesl;\":\"⋛︀\",\"gesles;\":\"⪔\",\"Gfr;\":\"𝔊\",\"gfr;\":\"𝔤\",\"Gg;\":\"⋙\",\"gg;\":\"≫\",\"ggg;\":\"⋙\",\"gimel;\":\"ℷ\",\"GJcy;\":\"Ѓ\",\"gjcy;\":\"ѓ\",\"gl;\":\"≷\",\"gla;\":\"⪥\",\"glE;\":\"⪒\",\"glj;\":\"⪤\",\"gnap;\":\"⪊\",\"gnapprox;\":\"⪊\",\"gnE;\":\"≩\",\"gne;\":\"⪈\",\"gneq;\":\"⪈\",\"gneqq;\":\"≩\",\"gnsim;\":\"⋧\",\"Gopf;\":\"𝔾\",\"gopf;\":\"𝕘\",\"grave;\":\"`\",\"GreaterEqual;\":\"≥\",\"GreaterEqualLess;\":\"⋛\",\"GreaterFullEqual;\":\"≧\",\"GreaterGreater;\":\"⪢\",\"GreaterLess;\":\"≷\",\"GreaterSlantEqual;\":\"⩾\",\"GreaterTilde;\":\"≳\",\"Gscr;\":\"𝒢\",\"gscr;\":\"ℊ\",\"gsim;\":\"≳\",\"gsime;\":\"⪎\",\"gsiml;\":\"⪐\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"≫\",\"gt;\":\">\",gt:\">\",\"gtcc;\":\"⪧\",\"gtcir;\":\"⩺\",\"gtdot;\":\"⋗\",\"gtlPar;\":\"⦕\",\"gtquest;\":\"⩼\",\"gtrapprox;\":\"⪆\",\"gtrarr;\":\"⥸\",\"gtrdot;\":\"⋗\",\"gtreqless;\":\"⋛\",\"gtreqqless;\":\"⪌\",\"gtrless;\":\"≷\",\"gtrsim;\":\"≳\",\"gvertneqq;\":\"≩︀\",\"gvnE;\":\"≩︀\",\"Hacek;\":\"ˇ\",\"hairsp;\":\" \",\"half;\":\"½\",\"hamilt;\":\"ℋ\",\"HARDcy;\":\"Ъ\",\"hardcy;\":\"ъ\",\"hArr;\":\"⇔\",\"harr;\":\"↔\",\"harrcir;\":\"⥈\",\"harrw;\":\"↭\",\"Hat;\":\"^\",\"hbar;\":\"ℏ\",\"Hcirc;\":\"Ĥ\",\"hcirc;\":\"ĥ\",\"hearts;\":\"♥\",\"heartsuit;\":\"♥\",\"hellip;\":\"…\",\"hercon;\":\"⊹\",\"Hfr;\":\"ℌ\",\"hfr;\":\"𝔥\",\"HilbertSpace;\":\"ℋ\",\"hksearow;\":\"⤥\",\"hkswarow;\":\"⤦\",\"hoarr;\":\"⇿\",\"homtht;\":\"∻\",\"hookleftarrow;\":\"↩\",\"hookrightarrow;\":\"↪\",\"Hopf;\":\"ℍ\",\"hopf;\":\"𝕙\",\"horbar;\":\"―\",\"HorizontalLine;\":\"─\",\"Hscr;\":\"ℋ\",\"hscr;\":\"𝒽\",\"hslash;\":\"ℏ\",\"Hstrok;\":\"Ħ\",\"hstrok;\":\"ħ\",\"HumpDownHump;\":\"≎\",\"HumpEqual;\":\"≏\",\"hybull;\":\"⁃\",\"hyphen;\":\"‐\",\"Iacute;\":\"Í\",Iacute:\"Í\",\"iacute;\":\"í\",iacute:\"í\",\"ic;\":\"⁣\",\"Icirc;\":\"Î\",Icirc:\"Î\",\"icirc;\":\"î\",icirc:\"î\",\"Icy;\":\"И\",\"icy;\":\"и\",\"Idot;\":\"İ\",\"IEcy;\":\"Е\",\"iecy;\":\"е\",\"iexcl;\":\"¡\",iexcl:\"¡\",\"iff;\":\"⇔\",\"Ifr;\":\"ℑ\",\"ifr;\":\"𝔦\",\"Igrave;\":\"Ì\",Igrave:\"Ì\",\"igrave;\":\"ì\",igrave:\"ì\",\"ii;\":\"ⅈ\",\"iiiint;\":\"⨌\",\"iiint;\":\"∭\",\"iinfin;\":\"⧜\",\"iiota;\":\"℩\",\"IJlig;\":\"Ĳ\",\"ijlig;\":\"ĳ\",\"Im;\":\"ℑ\",\"Imacr;\":\"Ī\",\"imacr;\":\"ī\",\"image;\":\"ℑ\",\"ImaginaryI;\":\"ⅈ\",\"imagline;\":\"ℐ\",\"imagpart;\":\"ℑ\",\"imath;\":\"ı\",\"imof;\":\"⊷\",\"imped;\":\"Ƶ\",\"Implies;\":\"⇒\",\"in;\":\"∈\",\"incare;\":\"℅\",\"infin;\":\"∞\",\"infintie;\":\"⧝\",\"inodot;\":\"ı\",\"Int;\":\"∬\",\"int;\":\"∫\",\"intcal;\":\"⊺\",\"integers;\":\"ℤ\",\"Integral;\":\"∫\",\"intercal;\":\"⊺\",\"Intersection;\":\"⋂\",\"intlarhk;\":\"⨗\",\"intprod;\":\"⨼\",\"InvisibleComma;\":\"⁣\",\"InvisibleTimes;\":\"⁢\",\"IOcy;\":\"Ё\",\"iocy;\":\"ё\",\"Iogon;\":\"Į\",\"iogon;\":\"į\",\"Iopf;\":\"𝕀\",\"iopf;\":\"𝕚\",\"Iota;\":\"Ι\",\"iota;\":\"ι\",\"iprod;\":\"⨼\",\"iquest;\":\"¿\",iquest:\"¿\",\"Iscr;\":\"ℐ\",\"iscr;\":\"𝒾\",\"isin;\":\"∈\",\"isindot;\":\"⋵\",\"isinE;\":\"⋹\",\"isins;\":\"⋴\",\"isinsv;\":\"⋳\",\"isinv;\":\"∈\",\"it;\":\"⁢\",\"Itilde;\":\"Ĩ\",\"itilde;\":\"ĩ\",\"Iukcy;\":\"І\",\"iukcy;\":\"і\",\"Iuml;\":\"Ï\",Iuml:\"Ï\",\"iuml;\":\"ï\",iuml:\"ï\",\"Jcirc;\":\"Ĵ\",\"jcirc;\":\"ĵ\",\"Jcy;\":\"Й\",\"jcy;\":\"й\",\"Jfr;\":\"𝔍\",\"jfr;\":\"𝔧\",\"jmath;\":\"ȷ\",\"Jopf;\":\"𝕁\",\"jopf;\":\"𝕛\",\"Jscr;\":\"𝒥\",\"jscr;\":\"𝒿\",\"Jsercy;\":\"Ј\",\"jsercy;\":\"ј\",\"Jukcy;\":\"Є\",\"jukcy;\":\"є\",\"Kappa;\":\"Κ\",\"kappa;\":\"κ\",\"kappav;\":\"ϰ\",\"Kcedil;\":\"Ķ\",\"kcedil;\":\"ķ\",\"Kcy;\":\"К\",\"kcy;\":\"к\",\"Kfr;\":\"𝔎\",\"kfr;\":\"𝔨\",\"kgreen;\":\"ĸ\",\"KHcy;\":\"Х\",\"khcy;\":\"х\",\"KJcy;\":\"Ќ\",\"kjcy;\":\"ќ\",\"Kopf;\":\"𝕂\",\"kopf;\":\"𝕜\",\"Kscr;\":\"𝒦\",\"kscr;\":\"𝓀\",\"lAarr;\":\"⇚\",\"Lacute;\":\"Ĺ\",\"lacute;\":\"ĺ\",\"laemptyv;\":\"⦴\",\"lagran;\":\"ℒ\",\"Lambda;\":\"Λ\",\"lambda;\":\"λ\",\"Lang;\":\"⟪\",\"lang;\":\"⟨\",\"langd;\":\"⦑\",\"langle;\":\"⟨\",\"lap;\":\"⪅\",\"Laplacetrf;\":\"ℒ\",\"laquo;\":\"«\",laquo:\"«\",\"Larr;\":\"↞\",\"lArr;\":\"⇐\",\"larr;\":\"←\",\"larrb;\":\"⇤\",\"larrbfs;\":\"⤟\",\"larrfs;\":\"⤝\",\"larrhk;\":\"↩\",\"larrlp;\":\"↫\",\"larrpl;\":\"⤹\",\"larrsim;\":\"⥳\",\"larrtl;\":\"↢\",\"lat;\":\"⪫\",\"lAtail;\":\"⤛\",\"latail;\":\"⤙\",\"late;\":\"⪭\",\"lates;\":\"⪭︀\",\"lBarr;\":\"⤎\",\"lbarr;\":\"⤌\",\"lbbrk;\":\"❲\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"⦋\",\"lbrksld;\":\"⦏\",\"lbrkslu;\":\"⦍\",\"Lcaron;\":\"Ľ\",\"lcaron;\":\"ľ\",\"Lcedil;\":\"Ļ\",\"lcedil;\":\"ļ\",\"lceil;\":\"⌈\",\"lcub;\":\"{\",\"Lcy;\":\"Л\",\"lcy;\":\"л\",\"ldca;\":\"⤶\",\"ldquo;\":\"“\",\"ldquor;\":\"„\",\"ldrdhar;\":\"⥧\",\"ldrushar;\":\"⥋\",\"ldsh;\":\"↲\",\"lE;\":\"≦\",\"le;\":\"≤\",\"LeftAngleBracket;\":\"⟨\",\"LeftArrow;\":\"←\",\"Leftarrow;\":\"⇐\",\"leftarrow;\":\"←\",\"LeftArrowBar;\":\"⇤\",\"LeftArrowRightArrow;\":\"⇆\",\"leftarrowtail;\":\"↢\",\"LeftCeiling;\":\"⌈\",\"LeftDoubleBracket;\":\"⟦\",\"LeftDownTeeVector;\":\"⥡\",\"LeftDownVector;\":\"⇃\",\"LeftDownVectorBar;\":\"⥙\",\"LeftFloor;\":\"⌊\",\"leftharpoondown;\":\"↽\",\"leftharpoonup;\":\"↼\",\"leftleftarrows;\":\"⇇\",\"LeftRightArrow;\":\"↔\",\"Leftrightarrow;\":\"⇔\",\"leftrightarrow;\":\"↔\",\"leftrightarrows;\":\"⇆\",\"leftrightharpoons;\":\"⇋\",\"leftrightsquigarrow;\":\"↭\",\"LeftRightVector;\":\"⥎\",\"LeftTee;\":\"⊣\",\"LeftTeeArrow;\":\"↤\",\"LeftTeeVector;\":\"⥚\",\"leftthreetimes;\":\"⋋\",\"LeftTriangle;\":\"⊲\",\"LeftTriangleBar;\":\"⧏\",\"LeftTriangleEqual;\":\"⊴\",\"LeftUpDownVector;\":\"⥑\",\"LeftUpTeeVector;\":\"⥠\",\"LeftUpVector;\":\"↿\",\"LeftUpVectorBar;\":\"⥘\",\"LeftVector;\":\"↼\",\"LeftVectorBar;\":\"⥒\",\"lEg;\":\"⪋\",\"leg;\":\"⋚\",\"leq;\":\"≤\",\"leqq;\":\"≦\",\"leqslant;\":\"⩽\",\"les;\":\"⩽\",\"lescc;\":\"⪨\",\"lesdot;\":\"⩿\",\"lesdoto;\":\"⪁\",\"lesdotor;\":\"⪃\",\"lesg;\":\"⋚︀\",\"lesges;\":\"⪓\",\"lessapprox;\":\"⪅\",\"lessdot;\":\"⋖\",\"lesseqgtr;\":\"⋚\",\"lesseqqgtr;\":\"⪋\",\"LessEqualGreater;\":\"⋚\",\"LessFullEqual;\":\"≦\",\"LessGreater;\":\"≶\",\"lessgtr;\":\"≶\",\"LessLess;\":\"⪡\",\"lesssim;\":\"≲\",\"LessSlantEqual;\":\"⩽\",\"LessTilde;\":\"≲\",\"lfisht;\":\"⥼\",\"lfloor;\":\"⌊\",\"Lfr;\":\"𝔏\",\"lfr;\":\"𝔩\",\"lg;\":\"≶\",\"lgE;\":\"⪑\",\"lHar;\":\"⥢\",\"lhard;\":\"↽\",\"lharu;\":\"↼\",\"lharul;\":\"⥪\",\"lhblk;\":\"▄\",\"LJcy;\":\"Љ\",\"ljcy;\":\"љ\",\"Ll;\":\"⋘\",\"ll;\":\"≪\",\"llarr;\":\"⇇\",\"llcorner;\":\"⌞\",\"Lleftarrow;\":\"⇚\",\"llhard;\":\"⥫\",\"lltri;\":\"◺\",\"Lmidot;\":\"Ŀ\",\"lmidot;\":\"ŀ\",\"lmoust;\":\"⎰\",\"lmoustache;\":\"⎰\",\"lnap;\":\"⪉\",\"lnapprox;\":\"⪉\",\"lnE;\":\"≨\",\"lne;\":\"⪇\",\"lneq;\":\"⪇\",\"lneqq;\":\"≨\",\"lnsim;\":\"⋦\",\"loang;\":\"⟬\",\"loarr;\":\"⇽\",\"lobrk;\":\"⟦\",\"LongLeftArrow;\":\"⟵\",\"Longleftarrow;\":\"⟸\",\"longleftarrow;\":\"⟵\",\"LongLeftRightArrow;\":\"⟷\",\"Longleftrightarrow;\":\"⟺\",\"longleftrightarrow;\":\"⟷\",\"longmapsto;\":\"⟼\",\"LongRightArrow;\":\"⟶\",\"Longrightarrow;\":\"⟹\",\"longrightarrow;\":\"⟶\",\"looparrowleft;\":\"↫\",\"looparrowright;\":\"↬\",\"lopar;\":\"⦅\",\"Lopf;\":\"𝕃\",\"lopf;\":\"𝕝\",\"loplus;\":\"⨭\",\"lotimes;\":\"⨴\",\"lowast;\":\"∗\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"↙\",\"LowerRightArrow;\":\"↘\",\"loz;\":\"◊\",\"lozenge;\":\"◊\",\"lozf;\":\"⧫\",\"lpar;\":\"(\",\"lparlt;\":\"⦓\",\"lrarr;\":\"⇆\",\"lrcorner;\":\"⌟\",\"lrhar;\":\"⇋\",\"lrhard;\":\"⥭\",\"lrm;\":\"‎\",\"lrtri;\":\"⊿\",\"lsaquo;\":\"‹\",\"Lscr;\":\"ℒ\",\"lscr;\":\"𝓁\",\"Lsh;\":\"↰\",\"lsh;\":\"↰\",\"lsim;\":\"≲\",\"lsime;\":\"⪍\",\"lsimg;\":\"⪏\",\"lsqb;\":\"[\",\"lsquo;\":\"‘\",\"lsquor;\":\"‚\",\"Lstrok;\":\"Ł\",\"lstrok;\":\"ł\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"≪\",\"lt;\":\"<\",lt:\"<\",\"ltcc;\":\"⪦\",\"ltcir;\":\"⩹\",\"ltdot;\":\"⋖\",\"lthree;\":\"⋋\",\"ltimes;\":\"⋉\",\"ltlarr;\":\"⥶\",\"ltquest;\":\"⩻\",\"ltri;\":\"◃\",\"ltrie;\":\"⊴\",\"ltrif;\":\"◂\",\"ltrPar;\":\"⦖\",\"lurdshar;\":\"⥊\",\"luruhar;\":\"⥦\",\"lvertneqq;\":\"≨︀\",\"lvnE;\":\"≨︀\",\"macr;\":\"¯\",macr:\"¯\",\"male;\":\"♂\",\"malt;\":\"✠\",\"maltese;\":\"✠\",\"Map;\":\"⤅\",\"map;\":\"↦\",\"mapsto;\":\"↦\",\"mapstodown;\":\"↧\",\"mapstoleft;\":\"↤\",\"mapstoup;\":\"↥\",\"marker;\":\"▮\",\"mcomma;\":\"⨩\",\"Mcy;\":\"М\",\"mcy;\":\"м\",\"mdash;\":\"—\",\"mDDot;\":\"∺\",\"measuredangle;\":\"∡\",\"MediumSpace;\":\" \",\"Mellintrf;\":\"ℳ\",\"Mfr;\":\"𝔐\",\"mfr;\":\"𝔪\",\"mho;\":\"℧\",\"micro;\":\"µ\",micro:\"µ\",\"mid;\":\"∣\",\"midast;\":\"*\",\"midcir;\":\"⫰\",\"middot;\":\"·\",middot:\"·\",\"minus;\":\"−\",\"minusb;\":\"⊟\",\"minusd;\":\"∸\",\"minusdu;\":\"⨪\",\"MinusPlus;\":\"∓\",\"mlcp;\":\"⫛\",\"mldr;\":\"…\",\"mnplus;\":\"∓\",\"models;\":\"⊧\",\"Mopf;\":\"𝕄\",\"mopf;\":\"𝕞\",\"mp;\":\"∓\",\"Mscr;\":\"ℳ\",\"mscr;\":\"𝓂\",\"mstpos;\":\"∾\",\"Mu;\":\"Μ\",\"mu;\":\"μ\",\"multimap;\":\"⊸\",\"mumap;\":\"⊸\",\"nabla;\":\"∇\",\"Nacute;\":\"Ń\",\"nacute;\":\"ń\",\"nang;\":\"∠⃒\",\"nap;\":\"≉\",\"napE;\":\"⩰̸\",\"napid;\":\"≋̸\",\"napos;\":\"ŉ\",\"napprox;\":\"≉\",\"natur;\":\"♮\",\"natural;\":\"♮\",\"naturals;\":\"ℕ\",\"nbsp;\":\" \",nbsp:\" \",\"nbump;\":\"≎̸\",\"nbumpe;\":\"≏̸\",\"ncap;\":\"⩃\",\"Ncaron;\":\"Ň\",\"ncaron;\":\"ň\",\"Ncedil;\":\"Ņ\",\"ncedil;\":\"ņ\",\"ncong;\":\"≇\",\"ncongdot;\":\"⩭̸\",\"ncup;\":\"⩂\",\"Ncy;\":\"Н\",\"ncy;\":\"н\",\"ndash;\":\"–\",\"ne;\":\"≠\",\"nearhk;\":\"⤤\",\"neArr;\":\"⇗\",\"nearr;\":\"↗\",\"nearrow;\":\"↗\",\"nedot;\":\"≐̸\",\"NegativeMediumSpace;\":\"​\",\"NegativeThickSpace;\":\"​\",\"NegativeThinSpace;\":\"​\",\"NegativeVeryThinSpace;\":\"​\",\"nequiv;\":\"≢\",\"nesear;\":\"⤨\",\"nesim;\":\"≂̸\",\"NestedGreaterGreater;\":\"≫\",\"NestedLessLess;\":\"≪\",\"NewLine;\":\"\\n\",\"nexist;\":\"∄\",\"nexists;\":\"∄\",\"Nfr;\":\"𝔑\",\"nfr;\":\"𝔫\",\"ngE;\":\"≧̸\",\"nge;\":\"≱\",\"ngeq;\":\"≱\",\"ngeqq;\":\"≧̸\",\"ngeqslant;\":\"⩾̸\",\"nges;\":\"⩾̸\",\"nGg;\":\"⋙̸\",\"ngsim;\":\"≵\",\"nGt;\":\"≫⃒\",\"ngt;\":\"≯\",\"ngtr;\":\"≯\",\"nGtv;\":\"≫̸\",\"nhArr;\":\"⇎\",\"nharr;\":\"↮\",\"nhpar;\":\"⫲\",\"ni;\":\"∋\",\"nis;\":\"⋼\",\"nisd;\":\"⋺\",\"niv;\":\"∋\",\"NJcy;\":\"Њ\",\"njcy;\":\"њ\",\"nlArr;\":\"⇍\",\"nlarr;\":\"↚\",\"nldr;\":\"‥\",\"nlE;\":\"≦̸\",\"nle;\":\"≰\",\"nLeftarrow;\":\"⇍\",\"nleftarrow;\":\"↚\",\"nLeftrightarrow;\":\"⇎\",\"nleftrightarrow;\":\"↮\",\"nleq;\":\"≰\",\"nleqq;\":\"≦̸\",\"nleqslant;\":\"⩽̸\",\"nles;\":\"⩽̸\",\"nless;\":\"≮\",\"nLl;\":\"⋘̸\",\"nlsim;\":\"≴\",\"nLt;\":\"≪⃒\",\"nlt;\":\"≮\",\"nltri;\":\"⋪\",\"nltrie;\":\"⋬\",\"nLtv;\":\"≪̸\",\"nmid;\":\"∤\",\"NoBreak;\":\"⁠\",\"NonBreakingSpace;\":\" \",\"Nopf;\":\"ℕ\",\"nopf;\":\"𝕟\",\"Not;\":\"⫬\",\"not;\":\"¬\",not:\"¬\",\"NotCongruent;\":\"≢\",\"NotCupCap;\":\"≭\",\"NotDoubleVerticalBar;\":\"∦\",\"NotElement;\":\"∉\",\"NotEqual;\":\"≠\",\"NotEqualTilde;\":\"≂̸\",\"NotExists;\":\"∄\",\"NotGreater;\":\"≯\",\"NotGreaterEqual;\":\"≱\",\"NotGreaterFullEqual;\":\"≧̸\",\"NotGreaterGreater;\":\"≫̸\",\"NotGreaterLess;\":\"≹\",\"NotGreaterSlantEqual;\":\"⩾̸\",\"NotGreaterTilde;\":\"≵\",\"NotHumpDownHump;\":\"≎̸\",\"NotHumpEqual;\":\"≏̸\",\"notin;\":\"∉\",\"notindot;\":\"⋵̸\",\"notinE;\":\"⋹̸\",\"notinva;\":\"∉\",\"notinvb;\":\"⋷\",\"notinvc;\":\"⋶\",\"NotLeftTriangle;\":\"⋪\",\"NotLeftTriangleBar;\":\"⧏̸\",\"NotLeftTriangleEqual;\":\"⋬\",\"NotLess;\":\"≮\",\"NotLessEqual;\":\"≰\",\"NotLessGreater;\":\"≸\",\"NotLessLess;\":\"≪̸\",\"NotLessSlantEqual;\":\"⩽̸\",\"NotLessTilde;\":\"≴\",\"NotNestedGreaterGreater;\":\"⪢̸\",\"NotNestedLessLess;\":\"⪡̸\",\"notni;\":\"∌\",\"notniva;\":\"∌\",\"notnivb;\":\"⋾\",\"notnivc;\":\"⋽\",\"NotPrecedes;\":\"⊀\",\"NotPrecedesEqual;\":\"⪯̸\",\"NotPrecedesSlantEqual;\":\"⋠\",\"NotReverseElement;\":\"∌\",\"NotRightTriangle;\":\"⋫\",\"NotRightTriangleBar;\":\"⧐̸\",\"NotRightTriangleEqual;\":\"⋭\",\"NotSquareSubset;\":\"⊏̸\",\"NotSquareSubsetEqual;\":\"⋢\",\"NotSquareSuperset;\":\"⊐̸\",\"NotSquareSupersetEqual;\":\"⋣\",\"NotSubset;\":\"⊂⃒\",\"NotSubsetEqual;\":\"⊈\",\"NotSucceeds;\":\"⊁\",\"NotSucceedsEqual;\":\"⪰̸\",\"NotSucceedsSlantEqual;\":\"⋡\",\"NotSucceedsTilde;\":\"≿̸\",\"NotSuperset;\":\"⊃⃒\",\"NotSupersetEqual;\":\"⊉\",\"NotTilde;\":\"≁\",\"NotTildeEqual;\":\"≄\",\"NotTildeFullEqual;\":\"≇\",\"NotTildeTilde;\":\"≉\",\"NotVerticalBar;\":\"∤\",\"npar;\":\"∦\",\"nparallel;\":\"∦\",\"nparsl;\":\"⫽⃥\",\"npart;\":\"∂̸\",\"npolint;\":\"⨔\",\"npr;\":\"⊀\",\"nprcue;\":\"⋠\",\"npre;\":\"⪯̸\",\"nprec;\":\"⊀\",\"npreceq;\":\"⪯̸\",\"nrArr;\":\"⇏\",\"nrarr;\":\"↛\",\"nrarrc;\":\"⤳̸\",\"nrarrw;\":\"↝̸\",\"nRightarrow;\":\"⇏\",\"nrightarrow;\":\"↛\",\"nrtri;\":\"⋫\",\"nrtrie;\":\"⋭\",\"nsc;\":\"⊁\",\"nsccue;\":\"⋡\",\"nsce;\":\"⪰̸\",\"Nscr;\":\"𝒩\",\"nscr;\":\"𝓃\",\"nshortmid;\":\"∤\",\"nshortparallel;\":\"∦\",\"nsim;\":\"≁\",\"nsime;\":\"≄\",\"nsimeq;\":\"≄\",\"nsmid;\":\"∤\",\"nspar;\":\"∦\",\"nsqsube;\":\"⋢\",\"nsqsupe;\":\"⋣\",\"nsub;\":\"⊄\",\"nsubE;\":\"⫅̸\",\"nsube;\":\"⊈\",\"nsubset;\":\"⊂⃒\",\"nsubseteq;\":\"⊈\",\"nsubseteqq;\":\"⫅̸\",\"nsucc;\":\"⊁\",\"nsucceq;\":\"⪰̸\",\"nsup;\":\"⊅\",\"nsupE;\":\"⫆̸\",\"nsupe;\":\"⊉\",\"nsupset;\":\"⊃⃒\",\"nsupseteq;\":\"⊉\",\"nsupseteqq;\":\"⫆̸\",\"ntgl;\":\"≹\",\"Ntilde;\":\"Ñ\",Ntilde:\"Ñ\",\"ntilde;\":\"ñ\",ntilde:\"ñ\",\"ntlg;\":\"≸\",\"ntriangleleft;\":\"⋪\",\"ntrianglelefteq;\":\"⋬\",\"ntriangleright;\":\"⋫\",\"ntrianglerighteq;\":\"⋭\",\"Nu;\":\"Ν\",\"nu;\":\"ν\",\"num;\":\"#\",\"numero;\":\"№\",\"numsp;\":\" \",\"nvap;\":\"≍⃒\",\"nVDash;\":\"⊯\",\"nVdash;\":\"⊮\",\"nvDash;\":\"⊭\",\"nvdash;\":\"⊬\",\"nvge;\":\"≥⃒\",\"nvgt;\":\">⃒\",\"nvHarr;\":\"⤄\",\"nvinfin;\":\"⧞\",\"nvlArr;\":\"⤂\",\"nvle;\":\"≤⃒\",\"nvlt;\":\"<⃒\",\"nvltrie;\":\"⊴⃒\",\"nvrArr;\":\"⤃\",\"nvrtrie;\":\"⊵⃒\",\"nvsim;\":\"∼⃒\",\"nwarhk;\":\"⤣\",\"nwArr;\":\"⇖\",\"nwarr;\":\"↖\",\"nwarrow;\":\"↖\",\"nwnear;\":\"⤧\",\"Oacute;\":\"Ó\",Oacute:\"Ó\",\"oacute;\":\"ó\",oacute:\"ó\",\"oast;\":\"⊛\",\"ocir;\":\"⊚\",\"Ocirc;\":\"Ô\",Ocirc:\"Ô\",\"ocirc;\":\"ô\",ocirc:\"ô\",\"Ocy;\":\"О\",\"ocy;\":\"о\",\"odash;\":\"⊝\",\"Odblac;\":\"Ő\",\"odblac;\":\"ő\",\"odiv;\":\"⨸\",\"odot;\":\"⊙\",\"odsold;\":\"⦼\",\"OElig;\":\"Œ\",\"oelig;\":\"œ\",\"ofcir;\":\"⦿\",\"Ofr;\":\"𝔒\",\"ofr;\":\"𝔬\",\"ogon;\":\"˛\",\"Ograve;\":\"Ò\",Ograve:\"Ò\",\"ograve;\":\"ò\",ograve:\"ò\",\"ogt;\":\"⧁\",\"ohbar;\":\"⦵\",\"ohm;\":\"Ω\",\"oint;\":\"∮\",\"olarr;\":\"↺\",\"olcir;\":\"⦾\",\"olcross;\":\"⦻\",\"oline;\":\"‾\",\"olt;\":\"⧀\",\"Omacr;\":\"Ō\",\"omacr;\":\"ō\",\"Omega;\":\"Ω\",\"omega;\":\"ω\",\"Omicron;\":\"Ο\",\"omicron;\":\"ο\",\"omid;\":\"⦶\",\"ominus;\":\"⊖\",\"Oopf;\":\"𝕆\",\"oopf;\":\"𝕠\",\"opar;\":\"⦷\",\"OpenCurlyDoubleQuote;\":\"“\",\"OpenCurlyQuote;\":\"‘\",\"operp;\":\"⦹\",\"oplus;\":\"⊕\",\"Or;\":\"⩔\",\"or;\":\"∨\",\"orarr;\":\"↻\",\"ord;\":\"⩝\",\"order;\":\"ℴ\",\"orderof;\":\"ℴ\",\"ordf;\":\"ª\",ordf:\"ª\",\"ordm;\":\"º\",ordm:\"º\",\"origof;\":\"⊶\",\"oror;\":\"⩖\",\"orslope;\":\"⩗\",\"orv;\":\"⩛\",\"oS;\":\"Ⓢ\",\"Oscr;\":\"𝒪\",\"oscr;\":\"ℴ\",\"Oslash;\":\"Ø\",Oslash:\"Ø\",\"oslash;\":\"ø\",oslash:\"ø\",\"osol;\":\"⊘\",\"Otilde;\":\"Õ\",Otilde:\"Õ\",\"otilde;\":\"õ\",otilde:\"õ\",\"Otimes;\":\"⨷\",\"otimes;\":\"⊗\",\"otimesas;\":\"⨶\",\"Ouml;\":\"Ö\",Ouml:\"Ö\",\"ouml;\":\"ö\",ouml:\"ö\",\"ovbar;\":\"⌽\",\"OverBar;\":\"‾\",\"OverBrace;\":\"⏞\",\"OverBracket;\":\"⎴\",\"OverParenthesis;\":\"⏜\",\"par;\":\"∥\",\"para;\":\"¶\",para:\"¶\",\"parallel;\":\"∥\",\"parsim;\":\"⫳\",\"parsl;\":\"⫽\",\"part;\":\"∂\",\"PartialD;\":\"∂\",\"Pcy;\":\"П\",\"pcy;\":\"п\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"‰\",\"perp;\":\"⊥\",\"pertenk;\":\"‱\",\"Pfr;\":\"𝔓\",\"pfr;\":\"𝔭\",\"Phi;\":\"Φ\",\"phi;\":\"φ\",\"phiv;\":\"ϕ\",\"phmmat;\":\"ℳ\",\"phone;\":\"☎\",\"Pi;\":\"Π\",\"pi;\":\"π\",\"pitchfork;\":\"⋔\",\"piv;\":\"ϖ\",\"planck;\":\"ℏ\",\"planckh;\":\"ℎ\",\"plankv;\":\"ℏ\",\"plus;\":\"+\",\"plusacir;\":\"⨣\",\"plusb;\":\"⊞\",\"pluscir;\":\"⨢\",\"plusdo;\":\"∔\",\"plusdu;\":\"⨥\",\"pluse;\":\"⩲\",\"PlusMinus;\":\"±\",\"plusmn;\":\"±\",plusmn:\"±\",\"plussim;\":\"⨦\",\"plustwo;\":\"⨧\",\"pm;\":\"±\",\"Poincareplane;\":\"ℌ\",\"pointint;\":\"⨕\",\"Popf;\":\"ℙ\",\"popf;\":\"𝕡\",\"pound;\":\"£\",pound:\"£\",\"Pr;\":\"⪻\",\"pr;\":\"≺\",\"prap;\":\"⪷\",\"prcue;\":\"≼\",\"prE;\":\"⪳\",\"pre;\":\"⪯\",\"prec;\":\"≺\",\"precapprox;\":\"⪷\",\"preccurlyeq;\":\"≼\",\"Precedes;\":\"≺\",\"PrecedesEqual;\":\"⪯\",\"PrecedesSlantEqual;\":\"≼\",\"PrecedesTilde;\":\"≾\",\"preceq;\":\"⪯\",\"precnapprox;\":\"⪹\",\"precneqq;\":\"⪵\",\"precnsim;\":\"⋨\",\"precsim;\":\"≾\",\"Prime;\":\"″\",\"prime;\":\"′\",\"primes;\":\"ℙ\",\"prnap;\":\"⪹\",\"prnE;\":\"⪵\",\"prnsim;\":\"⋨\",\"prod;\":\"∏\",\"Product;\":\"∏\",\"profalar;\":\"⌮\",\"profline;\":\"⌒\",\"profsurf;\":\"⌓\",\"prop;\":\"∝\",\"Proportion;\":\"∷\",\"Proportional;\":\"∝\",\"propto;\":\"∝\",\"prsim;\":\"≾\",\"prurel;\":\"⊰\",\"Pscr;\":\"𝒫\",\"pscr;\":\"𝓅\",\"Psi;\":\"Ψ\",\"psi;\":\"ψ\",\"puncsp;\":\" \",\"Qfr;\":\"𝔔\",\"qfr;\":\"𝔮\",\"qint;\":\"⨌\",\"Qopf;\":\"ℚ\",\"qopf;\":\"𝕢\",\"qprime;\":\"⁗\",\"Qscr;\":\"𝒬\",\"qscr;\":\"𝓆\",\"quaternions;\":\"ℍ\",\"quatint;\":\"⨖\",\"quest;\":\"?\",\"questeq;\":\"≟\",\"QUOT;\":'\"',QUOT:'\"',\"quot;\":'\"',quot:'\"',\"rAarr;\":\"⇛\",\"race;\":\"∽̱\",\"Racute;\":\"Ŕ\",\"racute;\":\"ŕ\",\"radic;\":\"√\",\"raemptyv;\":\"⦳\",\"Rang;\":\"⟫\",\"rang;\":\"⟩\",\"rangd;\":\"⦒\",\"range;\":\"⦥\",\"rangle;\":\"⟩\",\"raquo;\":\"»\",raquo:\"»\",\"Rarr;\":\"↠\",\"rArr;\":\"⇒\",\"rarr;\":\"→\",\"rarrap;\":\"⥵\",\"rarrb;\":\"⇥\",\"rarrbfs;\":\"⤠\",\"rarrc;\":\"⤳\",\"rarrfs;\":\"⤞\",\"rarrhk;\":\"↪\",\"rarrlp;\":\"↬\",\"rarrpl;\":\"⥅\",\"rarrsim;\":\"⥴\",\"Rarrtl;\":\"⤖\",\"rarrtl;\":\"↣\",\"rarrw;\":\"↝\",\"rAtail;\":\"⤜\",\"ratail;\":\"⤚\",\"ratio;\":\"∶\",\"rationals;\":\"ℚ\",\"RBarr;\":\"⤐\",\"rBarr;\":\"⤏\",\"rbarr;\":\"⤍\",\"rbbrk;\":\"❳\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"⦌\",\"rbrksld;\":\"⦎\",\"rbrkslu;\":\"⦐\",\"Rcaron;\":\"Ř\",\"rcaron;\":\"ř\",\"Rcedil;\":\"Ŗ\",\"rcedil;\":\"ŗ\",\"rceil;\":\"⌉\",\"rcub;\":\"}\",\"Rcy;\":\"Р\",\"rcy;\":\"р\",\"rdca;\":\"⤷\",\"rdldhar;\":\"⥩\",\"rdquo;\":\"”\",\"rdquor;\":\"”\",\"rdsh;\":\"↳\",\"Re;\":\"ℜ\",\"real;\":\"ℜ\",\"realine;\":\"ℛ\",\"realpart;\":\"ℜ\",\"reals;\":\"ℝ\",\"rect;\":\"▭\",\"REG;\":\"®\",REG:\"®\",\"reg;\":\"®\",reg:\"®\",\"ReverseElement;\":\"∋\",\"ReverseEquilibrium;\":\"⇋\",\"ReverseUpEquilibrium;\":\"⥯\",\"rfisht;\":\"⥽\",\"rfloor;\":\"⌋\",\"Rfr;\":\"ℜ\",\"rfr;\":\"𝔯\",\"rHar;\":\"⥤\",\"rhard;\":\"⇁\",\"rharu;\":\"⇀\",\"rharul;\":\"⥬\",\"Rho;\":\"Ρ\",\"rho;\":\"ρ\",\"rhov;\":\"ϱ\",\"RightAngleBracket;\":\"⟩\",\"RightArrow;\":\"→\",\"Rightarrow;\":\"⇒\",\"rightarrow;\":\"→\",\"RightArrowBar;\":\"⇥\",\"RightArrowLeftArrow;\":\"⇄\",\"rightarrowtail;\":\"↣\",\"RightCeiling;\":\"⌉\",\"RightDoubleBracket;\":\"⟧\",\"RightDownTeeVector;\":\"⥝\",\"RightDownVector;\":\"⇂\",\"RightDownVectorBar;\":\"⥕\",\"RightFloor;\":\"⌋\",\"rightharpoondown;\":\"⇁\",\"rightharpoonup;\":\"⇀\",\"rightleftarrows;\":\"⇄\",\"rightleftharpoons;\":\"⇌\",\"rightrightarrows;\":\"⇉\",\"rightsquigarrow;\":\"↝\",\"RightTee;\":\"⊢\",\"RightTeeArrow;\":\"↦\",\"RightTeeVector;\":\"⥛\",\"rightthreetimes;\":\"⋌\",\"RightTriangle;\":\"⊳\",\"RightTriangleBar;\":\"⧐\",\"RightTriangleEqual;\":\"⊵\",\"RightUpDownVector;\":\"⥏\",\"RightUpTeeVector;\":\"⥜\",\"RightUpVector;\":\"↾\",\"RightUpVectorBar;\":\"⥔\",\"RightVector;\":\"⇀\",\"RightVectorBar;\":\"⥓\",\"ring;\":\"˚\",\"risingdotseq;\":\"≓\",\"rlarr;\":\"⇄\",\"rlhar;\":\"⇌\",\"rlm;\":\"‏\",\"rmoust;\":\"⎱\",\"rmoustache;\":\"⎱\",\"rnmid;\":\"⫮\",\"roang;\":\"⟭\",\"roarr;\":\"⇾\",\"robrk;\":\"⟧\",\"ropar;\":\"⦆\",\"Ropf;\":\"ℝ\",\"ropf;\":\"𝕣\",\"roplus;\":\"⨮\",\"rotimes;\":\"⨵\",\"RoundImplies;\":\"⥰\",\"rpar;\":\")\",\"rpargt;\":\"⦔\",\"rppolint;\":\"⨒\",\"rrarr;\":\"⇉\",\"Rrightarrow;\":\"⇛\",\"rsaquo;\":\"›\",\"Rscr;\":\"ℛ\",\"rscr;\":\"𝓇\",\"Rsh;\":\"↱\",\"rsh;\":\"↱\",\"rsqb;\":\"]\",\"rsquo;\":\"’\",\"rsquor;\":\"’\",\"rthree;\":\"⋌\",\"rtimes;\":\"⋊\",\"rtri;\":\"▹\",\"rtrie;\":\"⊵\",\"rtrif;\":\"▸\",\"rtriltri;\":\"⧎\",\"RuleDelayed;\":\"⧴\",\"ruluhar;\":\"⥨\",\"rx;\":\"℞\",\"Sacute;\":\"Ś\",\"sacute;\":\"ś\",\"sbquo;\":\"‚\",\"Sc;\":\"⪼\",\"sc;\":\"≻\",\"scap;\":\"⪸\",\"Scaron;\":\"Š\",\"scaron;\":\"š\",\"sccue;\":\"≽\",\"scE;\":\"⪴\",\"sce;\":\"⪰\",\"Scedil;\":\"Ş\",\"scedil;\":\"ş\",\"Scirc;\":\"Ŝ\",\"scirc;\":\"ŝ\",\"scnap;\":\"⪺\",\"scnE;\":\"⪶\",\"scnsim;\":\"⋩\",\"scpolint;\":\"⨓\",\"scsim;\":\"≿\",\"Scy;\":\"С\",\"scy;\":\"с\",\"sdot;\":\"⋅\",\"sdotb;\":\"⊡\",\"sdote;\":\"⩦\",\"searhk;\":\"⤥\",\"seArr;\":\"⇘\",\"searr;\":\"↘\",\"searrow;\":\"↘\",\"sect;\":\"§\",sect:\"§\",\"semi;\":\";\",\"seswar;\":\"⤩\",\"setminus;\":\"∖\",\"setmn;\":\"∖\",\"sext;\":\"✶\",\"Sfr;\":\"𝔖\",\"sfr;\":\"𝔰\",\"sfrown;\":\"⌢\",\"sharp;\":\"♯\",\"SHCHcy;\":\"Щ\",\"shchcy;\":\"щ\",\"SHcy;\":\"Ш\",\"shcy;\":\"ш\",\"ShortDownArrow;\":\"↓\",\"ShortLeftArrow;\":\"←\",\"shortmid;\":\"∣\",\"shortparallel;\":\"∥\",\"ShortRightArrow;\":\"→\",\"ShortUpArrow;\":\"↑\",\"shy;\":\"­\",shy:\"­\",\"Sigma;\":\"Σ\",\"sigma;\":\"σ\",\"sigmaf;\":\"ς\",\"sigmav;\":\"ς\",\"sim;\":\"∼\",\"simdot;\":\"⩪\",\"sime;\":\"≃\",\"simeq;\":\"≃\",\"simg;\":\"⪞\",\"simgE;\":\"⪠\",\"siml;\":\"⪝\",\"simlE;\":\"⪟\",\"simne;\":\"≆\",\"simplus;\":\"⨤\",\"simrarr;\":\"⥲\",\"slarr;\":\"←\",\"SmallCircle;\":\"∘\",\"smallsetminus;\":\"∖\",\"smashp;\":\"⨳\",\"smeparsl;\":\"⧤\",\"smid;\":\"∣\",\"smile;\":\"⌣\",\"smt;\":\"⪪\",\"smte;\":\"⪬\",\"smtes;\":\"⪬︀\",\"SOFTcy;\":\"Ь\",\"softcy;\":\"ь\",\"sol;\":\"/\",\"solb;\":\"⧄\",\"solbar;\":\"⌿\",\"Sopf;\":\"𝕊\",\"sopf;\":\"𝕤\",\"spades;\":\"♠\",\"spadesuit;\":\"♠\",\"spar;\":\"∥\",\"sqcap;\":\"⊓\",\"sqcaps;\":\"⊓︀\",\"sqcup;\":\"⊔\",\"sqcups;\":\"⊔︀\",\"Sqrt;\":\"√\",\"sqsub;\":\"⊏\",\"sqsube;\":\"⊑\",\"sqsubset;\":\"⊏\",\"sqsubseteq;\":\"⊑\",\"sqsup;\":\"⊐\",\"sqsupe;\":\"⊒\",\"sqsupset;\":\"⊐\",\"sqsupseteq;\":\"⊒\",\"squ;\":\"□\",\"Square;\":\"□\",\"square;\":\"□\",\"SquareIntersection;\":\"⊓\",\"SquareSubset;\":\"⊏\",\"SquareSubsetEqual;\":\"⊑\",\"SquareSuperset;\":\"⊐\",\"SquareSupersetEqual;\":\"⊒\",\"SquareUnion;\":\"⊔\",\"squarf;\":\"▪\",\"squf;\":\"▪\",\"srarr;\":\"→\",\"Sscr;\":\"𝒮\",\"sscr;\":\"𝓈\",\"ssetmn;\":\"∖\",\"ssmile;\":\"⌣\",\"sstarf;\":\"⋆\",\"Star;\":\"⋆\",\"star;\":\"☆\",\"starf;\":\"★\",\"straightepsilon;\":\"ϵ\",\"straightphi;\":\"ϕ\",\"strns;\":\"¯\",\"Sub;\":\"⋐\",\"sub;\":\"⊂\",\"subdot;\":\"⪽\",\"subE;\":\"⫅\",\"sube;\":\"⊆\",\"subedot;\":\"⫃\",\"submult;\":\"⫁\",\"subnE;\":\"⫋\",\"subne;\":\"⊊\",\"subplus;\":\"⪿\",\"subrarr;\":\"⥹\",\"Subset;\":\"⋐\",\"subset;\":\"⊂\",\"subseteq;\":\"⊆\",\"subseteqq;\":\"⫅\",\"SubsetEqual;\":\"⊆\",\"subsetneq;\":\"⊊\",\"subsetneqq;\":\"⫋\",\"subsim;\":\"⫇\",\"subsub;\":\"⫕\",\"subsup;\":\"⫓\",\"succ;\":\"≻\",\"succapprox;\":\"⪸\",\"succcurlyeq;\":\"≽\",\"Succeeds;\":\"≻\",\"SucceedsEqual;\":\"⪰\",\"SucceedsSlantEqual;\":\"≽\",\"SucceedsTilde;\":\"≿\",\"succeq;\":\"⪰\",\"succnapprox;\":\"⪺\",\"succneqq;\":\"⪶\",\"succnsim;\":\"⋩\",\"succsim;\":\"≿\",\"SuchThat;\":\"∋\",\"Sum;\":\"∑\",\"sum;\":\"∑\",\"sung;\":\"♪\",\"Sup;\":\"⋑\",\"sup;\":\"⊃\",\"sup1;\":\"¹\",sup1:\"¹\",\"sup2;\":\"²\",sup2:\"²\",\"sup3;\":\"³\",sup3:\"³\",\"supdot;\":\"⪾\",\"supdsub;\":\"⫘\",\"supE;\":\"⫆\",\"supe;\":\"⊇\",\"supedot;\":\"⫄\",\"Superset;\":\"⊃\",\"SupersetEqual;\":\"⊇\",\"suphsol;\":\"⟉\",\"suphsub;\":\"⫗\",\"suplarr;\":\"⥻\",\"supmult;\":\"⫂\",\"supnE;\":\"⫌\",\"supne;\":\"⊋\",\"supplus;\":\"⫀\",\"Supset;\":\"⋑\",\"supset;\":\"⊃\",\"supseteq;\":\"⊇\",\"supseteqq;\":\"⫆\",\"supsetneq;\":\"⊋\",\"supsetneqq;\":\"⫌\",\"supsim;\":\"⫈\",\"supsub;\":\"⫔\",\"supsup;\":\"⫖\",\"swarhk;\":\"⤦\",\"swArr;\":\"⇙\",\"swarr;\":\"↙\",\"swarrow;\":\"↙\",\"swnwar;\":\"⤪\",\"szlig;\":\"ß\",szlig:\"ß\",\"Tab;\":\"\\t\",\"target;\":\"⌖\",\"Tau;\":\"Τ\",\"tau;\":\"τ\",\"tbrk;\":\"⎴\",\"Tcaron;\":\"Ť\",\"tcaron;\":\"ť\",\"Tcedil;\":\"Ţ\",\"tcedil;\":\"ţ\",\"Tcy;\":\"Т\",\"tcy;\":\"т\",\"tdot;\":\"⃛\",\"telrec;\":\"⌕\",\"Tfr;\":\"𝔗\",\"tfr;\":\"𝔱\",\"there4;\":\"∴\",\"Therefore;\":\"∴\",\"therefore;\":\"∴\",\"Theta;\":\"Θ\",\"theta;\":\"θ\",\"thetasym;\":\"ϑ\",\"thetav;\":\"ϑ\",\"thickapprox;\":\"≈\",\"thicksim;\":\"∼\",\"ThickSpace;\":\"  \",\"thinsp;\":\" \",\"ThinSpace;\":\" \",\"thkap;\":\"≈\",\"thksim;\":\"∼\",\"THORN;\":\"Þ\",THORN:\"Þ\",\"thorn;\":\"þ\",thorn:\"þ\",\"Tilde;\":\"∼\",\"tilde;\":\"˜\",\"TildeEqual;\":\"≃\",\"TildeFullEqual;\":\"≅\",\"TildeTilde;\":\"≈\",\"times;\":\"×\",times:\"×\",\"timesb;\":\"⊠\",\"timesbar;\":\"⨱\",\"timesd;\":\"⨰\",\"tint;\":\"∭\",\"toea;\":\"⤨\",\"top;\":\"⊤\",\"topbot;\":\"⌶\",\"topcir;\":\"⫱\",\"Topf;\":\"𝕋\",\"topf;\":\"𝕥\",\"topfork;\":\"⫚\",\"tosa;\":\"⤩\",\"tprime;\":\"‴\",\"TRADE;\":\"™\",\"trade;\":\"™\",\"triangle;\":\"▵\",\"triangledown;\":\"▿\",\"triangleleft;\":\"◃\",\"trianglelefteq;\":\"⊴\",\"triangleq;\":\"≜\",\"triangleright;\":\"▹\",\"trianglerighteq;\":\"⊵\",\"tridot;\":\"◬\",\"trie;\":\"≜\",\"triminus;\":\"⨺\",\"TripleDot;\":\"⃛\",\"triplus;\":\"⨹\",\"trisb;\":\"⧍\",\"tritime;\":\"⨻\",\"trpezium;\":\"⏢\",\"Tscr;\":\"𝒯\",\"tscr;\":\"𝓉\",\"TScy;\":\"Ц\",\"tscy;\":\"ц\",\"TSHcy;\":\"Ћ\",\"tshcy;\":\"ћ\",\"Tstrok;\":\"Ŧ\",\"tstrok;\":\"ŧ\",\"twixt;\":\"≬\",\"twoheadleftarrow;\":\"↞\",\"twoheadrightarrow;\":\"↠\",\"Uacute;\":\"Ú\",Uacute:\"Ú\",\"uacute;\":\"ú\",uacute:\"ú\",\"Uarr;\":\"↟\",\"uArr;\":\"⇑\",\"uarr;\":\"↑\",\"Uarrocir;\":\"⥉\",\"Ubrcy;\":\"Ў\",\"ubrcy;\":\"ў\",\"Ubreve;\":\"Ŭ\",\"ubreve;\":\"ŭ\",\"Ucirc;\":\"Û\",Ucirc:\"Û\",\"ucirc;\":\"û\",ucirc:\"û\",\"Ucy;\":\"У\",\"ucy;\":\"у\",\"udarr;\":\"⇅\",\"Udblac;\":\"Ű\",\"udblac;\":\"ű\",\"udhar;\":\"⥮\",\"ufisht;\":\"⥾\",\"Ufr;\":\"𝔘\",\"ufr;\":\"𝔲\",\"Ugrave;\":\"Ù\",Ugrave:\"Ù\",\"ugrave;\":\"ù\",ugrave:\"ù\",\"uHar;\":\"⥣\",\"uharl;\":\"↿\",\"uharr;\":\"↾\",\"uhblk;\":\"▀\",\"ulcorn;\":\"⌜\",\"ulcorner;\":\"⌜\",\"ulcrop;\":\"⌏\",\"ultri;\":\"◸\",\"Umacr;\":\"Ū\",\"umacr;\":\"ū\",\"uml;\":\"¨\",uml:\"¨\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"⏟\",\"UnderBracket;\":\"⎵\",\"UnderParenthesis;\":\"⏝\",\"Union;\":\"⋃\",\"UnionPlus;\":\"⊎\",\"Uogon;\":\"Ų\",\"uogon;\":\"ų\",\"Uopf;\":\"𝕌\",\"uopf;\":\"𝕦\",\"UpArrow;\":\"↑\",\"Uparrow;\":\"⇑\",\"uparrow;\":\"↑\",\"UpArrowBar;\":\"⤒\",\"UpArrowDownArrow;\":\"⇅\",\"UpDownArrow;\":\"↕\",\"Updownarrow;\":\"⇕\",\"updownarrow;\":\"↕\",\"UpEquilibrium;\":\"⥮\",\"upharpoonleft;\":\"↿\",\"upharpoonright;\":\"↾\",\"uplus;\":\"⊎\",\"UpperLeftArrow;\":\"↖\",\"UpperRightArrow;\":\"↗\",\"Upsi;\":\"ϒ\",\"upsi;\":\"υ\",\"upsih;\":\"ϒ\",\"Upsilon;\":\"Υ\",\"upsilon;\":\"υ\",\"UpTee;\":\"⊥\",\"UpTeeArrow;\":\"↥\",\"upuparrows;\":\"⇈\",\"urcorn;\":\"⌝\",\"urcorner;\":\"⌝\",\"urcrop;\":\"⌎\",\"Uring;\":\"Ů\",\"uring;\":\"ů\",\"urtri;\":\"◹\",\"Uscr;\":\"𝒰\",\"uscr;\":\"𝓊\",\"utdot;\":\"⋰\",\"Utilde;\":\"Ũ\",\"utilde;\":\"ũ\",\"utri;\":\"▵\",\"utrif;\":\"▴\",\"uuarr;\":\"⇈\",\"Uuml;\":\"Ü\",Uuml:\"Ü\",\"uuml;\":\"ü\",uuml:\"ü\",\"uwangle;\":\"⦧\",\"vangrt;\":\"⦜\",\"varepsilon;\":\"ϵ\",\"varkappa;\":\"ϰ\",\"varnothing;\":\"∅\",\"varphi;\":\"ϕ\",\"varpi;\":\"ϖ\",\"varpropto;\":\"∝\",\"vArr;\":\"⇕\",\"varr;\":\"↕\",\"varrho;\":\"ϱ\",\"varsigma;\":\"ς\",\"varsubsetneq;\":\"⊊︀\",\"varsubsetneqq;\":\"⫋︀\",\"varsupsetneq;\":\"⊋︀\",\"varsupsetneqq;\":\"⫌︀\",\"vartheta;\":\"ϑ\",\"vartriangleleft;\":\"⊲\",\"vartriangleright;\":\"⊳\",\"Vbar;\":\"⫫\",\"vBar;\":\"⫨\",\"vBarv;\":\"⫩\",\"Vcy;\":\"В\",\"vcy;\":\"в\",\"VDash;\":\"⊫\",\"Vdash;\":\"⊩\",\"vDash;\":\"⊨\",\"vdash;\":\"⊢\",\"Vdashl;\":\"⫦\",\"Vee;\":\"⋁\",\"vee;\":\"∨\",\"veebar;\":\"⊻\",\"veeeq;\":\"≚\",\"vellip;\":\"⋮\",\"Verbar;\":\"‖\",\"verbar;\":\"|\",\"Vert;\":\"‖\",\"vert;\":\"|\",\"VerticalBar;\":\"∣\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"❘\",\"VerticalTilde;\":\"≀\",\"VeryThinSpace;\":\" \",\"Vfr;\":\"𝔙\",\"vfr;\":\"𝔳\",\"vltri;\":\"⊲\",\"vnsub;\":\"⊂⃒\",\"vnsup;\":\"⊃⃒\",\"Vopf;\":\"𝕍\",\"vopf;\":\"𝕧\",\"vprop;\":\"∝\",\"vrtri;\":\"⊳\",\"Vscr;\":\"𝒱\",\"vscr;\":\"𝓋\",\"vsubnE;\":\"⫋︀\",\"vsubne;\":\"⊊︀\",\"vsupnE;\":\"⫌︀\",\"vsupne;\":\"⊋︀\",\"Vvdash;\":\"⊪\",\"vzigzag;\":\"⦚\",\"Wcirc;\":\"Ŵ\",\"wcirc;\":\"ŵ\",\"wedbar;\":\"⩟\",\"Wedge;\":\"⋀\",\"wedge;\":\"∧\",\"wedgeq;\":\"≙\",\"weierp;\":\"℘\",\"Wfr;\":\"𝔚\",\"wfr;\":\"𝔴\",\"Wopf;\":\"𝕎\",\"wopf;\":\"𝕨\",\"wp;\":\"℘\",\"wr;\":\"≀\",\"wreath;\":\"≀\",\"Wscr;\":\"𝒲\",\"wscr;\":\"𝓌\",\"xcap;\":\"⋂\",\"xcirc;\":\"◯\",\"xcup;\":\"⋃\",\"xdtri;\":\"▽\",\"Xfr;\":\"𝔛\",\"xfr;\":\"𝔵\",\"xhArr;\":\"⟺\",\"xharr;\":\"⟷\",\"Xi;\":\"Ξ\",\"xi;\":\"ξ\",\"xlArr;\":\"⟸\",\"xlarr;\":\"⟵\",\"xmap;\":\"⟼\",\"xnis;\":\"⋻\",\"xodot;\":\"⨀\",\"Xopf;\":\"𝕏\",\"xopf;\":\"𝕩\",\"xoplus;\":\"⨁\",\"xotime;\":\"⨂\",\"xrArr;\":\"⟹\",\"xrarr;\":\"⟶\",\"Xscr;\":\"𝒳\",\"xscr;\":\"𝓍\",\"xsqcup;\":\"⨆\",\"xuplus;\":\"⨄\",\"xutri;\":\"△\",\"xvee;\":\"⋁\",\"xwedge;\":\"⋀\",\"Yacute;\":\"Ý\",Yacute:\"Ý\",\"yacute;\":\"ý\",yacute:\"ý\",\"YAcy;\":\"Я\",\"yacy;\":\"я\",\"Ycirc;\":\"Ŷ\",\"ycirc;\":\"ŷ\",\"Ycy;\":\"Ы\",\"ycy;\":\"ы\",\"yen;\":\"¥\",yen:\"¥\",\"Yfr;\":\"𝔜\",\"yfr;\":\"𝔶\",\"YIcy;\":\"Ї\",\"yicy;\":\"ї\",\"Yopf;\":\"𝕐\",\"yopf;\":\"𝕪\",\"Yscr;\":\"𝒴\",\"yscr;\":\"𝓎\",\"YUcy;\":\"Ю\",\"yucy;\":\"ю\",\"Yuml;\":\"Ÿ\",\"yuml;\":\"ÿ\",yuml:\"ÿ\",\"Zacute;\":\"Ź\",\"zacute;\":\"ź\",\"Zcaron;\":\"Ž\",\"zcaron;\":\"ž\",\"Zcy;\":\"З\",\"zcy;\":\"з\",\"Zdot;\":\"Ż\",\"zdot;\":\"ż\",\"zeetrf;\":\"ℨ\",\"ZeroWidthSpace;\":\"​\",\"Zeta;\":\"Ζ\",\"zeta;\":\"ζ\",\"Zfr;\":\"ℨ\",\"zfr;\":\"𝔷\",\"ZHcy;\":\"Ж\",\"zhcy;\":\"ж\",\"zigrarr;\":\"⇝\",\"Zopf;\":\"ℤ\",\"zopf;\":\"𝕫\",\"Zscr;\":\"𝒵\",\"zscr;\":\"𝓏\",\"zwj;\":\"‍\",\"zwnj;\":\"‌\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n};var n=\"a\".charCodeAt(0),i=\"z\".charCodeAt(0),r=\"A\".charCodeAt(0),a=\"Z\".charCodeAt(0),o=\"0\".charCodeAt(0),s=\"9\".charCodeAt(0);t.isLetterOrDigit=function(e,t){var l=e.charCodeAt(t);return n<=l&&l<=i||r<=l&&l<=a||o<=l&&l<=s}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/markup\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalizeMarkupContent=function(e){if(e)return\"string\"==typeof e?{kind:\"markdown\",value:e}:{kind:\"markdown\",value:e.value}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\",\"../utils/markup\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/markup\"),i=function(){function e(e,t){var n=this;this.id=e,this._tags=[],this._tagMap={},this._attributeMap={},this._valueSetMap={},this._tags=t.tags||[],this._globalAttributes=t.globalAttributes||[],this._tags.forEach((function(e){n._tagMap[e.name]=e,e.attributes&&e.attributes.forEach((function(e){n._attributeMap[e.name]=e}))})),this._globalAttributes.forEach((function(e){n._attributeMap[e.name]=e})),t.valueSets&&t.valueSets.forEach((function(e){n._valueSetMap[e.name]=e.values}))}return e.prototype.isApplicable=function(){return!0},e.prototype.getId=function(){return this.id},e.prototype.provideTags=function(){return this._tags},e.prototype.provideAttributes=function(e){var t=[],n=function(e){t.push(e)};return this._tagMap[e]&&this._tagMap[e].attributes.forEach((function(e){n(e)})),this._globalAttributes.forEach((function(e){n(e)})),t},e.prototype.provideValues=function(e,t){var n=this,i=[],r=function(e){e.forEach((function(e){e.name===t&&(e.values&&e.values.forEach((function(e){i.push(e)})),e.valueSet&&n._valueSetMap[e.valueSet]&&n._valueSetMap[e.valueSet].forEach((function(e){i.push(e)})))}))};return this._tagMap[e]?(r(this._tagMap[e].attributes),r(this._globalAttributes),i):[]},e}();t.HTMLDataProvider=i,t.generateDocumentation=function(e,t){var i={kind:t?\"markdown\":\"plaintext\",value:\"\"};if(e.description){var r=n.normalizeMarkupContent(e.description);r&&(i.value+=r.value)}return e.references&&e.references.length>0&&(i.value+=\"\\n\\n\",i.value+=t?e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"):e.references.map((function(e){return e.name+\": \"+e.url})).join(\"\\n\")),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.htmlData={version:1.1,tags:[{name:\"html\",description:{kind:\"markdown\",value:\"The html element represents the root of an HTML document.\"},attributes:[{name:\"manifest\",description:{kind:\"markdown\",value:\"Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details.\"}},{name:\"version\",description:'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'},{name:\"xmlns\",description:'Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/html\"}]},{name:\"head\",description:{kind:\"markdown\",value:\"The head element represents a collection of metadata for the Document.\"},attributes:[{name:\"profile\",description:\"The URIs of one or more metadata profiles, separated by white space.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/head\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/title\"}]},{name:\"base\",description:{kind:\"markdown\",value:\"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed.\"}},{name:\"target\",description:{kind:\"markdown\",value:\"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the result into a new unnamed browsing context.\\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n\\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/base\"}]},{name:\"link\",description:{kind:\"markdown\",value:\"The link element allows authors to link their document to other resources.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\n`anonymous`\\n\\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\\'s credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"media\",description:{kind:\"markdown\",value:\"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\\n\\n**Notes:**\\n\\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:\"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports.'}},{name:\"sizes\",description:{kind:\"markdown\",value:\"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\\n\\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\\n\\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it.\"}},{name:\"as\",description:'This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.\") request header.'},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:'**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\\n\\n**`high`**: Indicates to the browser that the resource is of **high** priority.\\n\\n**`low`**: Indicates to the browser that the resource is of **low** priority.\\n\\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present.'},{name:\"integrity\",description:\"Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"referrerpolicy\",description:'A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\\'s path.\\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'},{name:\"title\",description:'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/link\"}]},{name:\"meta\",description:{kind:\"markdown\",value:\"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\\n\\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\\n\\n*   `application-name` which defines the name of the application running in the web page.\\n    \\n    **Note:**\\n    \\n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document\\'s title that is shown in a browser\\'s title bar or a page\\'s tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\\n    *   Simple web pages shouldn\\'t define an application-name.\\n    \\n*   `author` which defines the name of the document\\'s author.\\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\\n*   `generator` which contains the identifier of the software that generated the page.\\n*   `keywords` which contains words relevant to the page\\'s content separated by commas.\\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\\n    \\n    Values for the `content` attribute of `<meta name=\"referrer\">`\\n    \\n    `no-referrer`\\n    \\n    Do not send a HTTP `Referrer` header.\\n    \\n    `origin`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\\n    \\n    `no-referrer-when-downgrade`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\\n    \\n    `origin-when-cross-origin`\\n    \\n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\\n    \\n    `same-origin`\\n    \\n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\\n    \\n    `strict-origin`\\n    \\n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\\'t send it to a less secure destination (HTTPS->HTTP).\\n    \\n    `strict-origin-when-cross-origin`\\n    \\n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\\n    \\n    `unsafe-URL`\\n    \\n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\\n    \\n    **Notes:**\\n    \\n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\\n    *   Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\\n    \\n\\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\\n\\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\\n*   `publisher` which defines the name of the document\\'s publisher.\\n*   `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\\n    \\n    Values for the content of `<meta name=\"robots\">`\\n    \\n    Value\\n    \\n    Description\\n    \\n    Used by\\n    \\n    `index`\\n    \\n    Allows the robot to index the page (default).\\n    \\n    All\\n    \\n    `noindex`\\n    \\n    Requests the robot to not index the page.\\n    \\n    All\\n    \\n    `follow`\\n    \\n    Allows the robot to follow the links on the page (default).\\n    \\n    All\\n    \\n    `nofollow`\\n    \\n    Requests the robot to not follow the links on the page.\\n    \\n    All\\n    \\n    `none`\\n    \\n    Equivalent to `noindex, nofollow`\\n    \\n    [Google](https://support.google.com/webmasters/answer/79812)\\n    \\n    `noodp`\\n    \\n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\\n    \\n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noarchive`\\n    \\n    Requests the search engine not to cache the page content.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `nosnippet`\\n    \\n    Prevents displaying any description of the page in search engine results.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noimageindex`\\n    \\n    Requests this page not to appear as the referring page of an indexed image.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\\n    \\n    `nocache`\\n    \\n    Synonym of `noarchive`.\\n    \\n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    **Notes:**\\n    \\n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.\")_ file.\\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\\'s behaviour is undefined and may vary between them.\\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\\n    \\n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\\n    \\n    Values for the content of `<meta name=\"viewport\">`\\n    \\n    Value\\n    \\n    Possible subvalues\\n    \\n    Description\\n    \\n    `width`\\n    \\n    A positive integer number, or the text `device-width`\\n    \\n    Defines the pixel width of the viewport that you want the web site to be rendered at.\\n    \\n    `height`\\n    \\n    A positive integer, or the text `device-height`\\n    \\n    Defines the height of the viewport. Not used by any browser.\\n    \\n    `initial-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\\n    \\n    `maximum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `minimum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `user-scalable`\\n    \\n    `yes` or `no`\\n    \\n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\\n    \\n    Specification\\n    \\n    Status\\n    \\n    Comment\\n    \\n    [CSS Device Adaptation  \\n    The definition of \\'<meta name=\"viewport\">\\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\\n    \\n    Working Draft\\n    \\n    Non-normatively describes the Viewport META element\\n    \\n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\\'s primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\\n    \\n    **Notes:**\\n    \\n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\\n    *   The default values may vary between devices and browsers.\\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\").'}},{name:\"http-equiv\",description:{kind:\"markdown\",value:'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\\n\\n*   `\"content-language\"`  \\n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\\n    \\n*   `\"content-security-policy\"`  \\n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\\n*   `\"content-type\"`  \\n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \\'`text/html`\\' followed by a character set with the following syntax: \\'`; charset=_IANAcharset_`\\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\\n    \\n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can\\'t change documents\\' types in XHTML or HTML5\\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\\n    \\n*   `\"refresh\"`  \\n    This instruction specifies:\\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \\'`;url=`\\', and a valid URL.\\n*   `\"set-cookie\"`  \\n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\\n    \\n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'}},{name:\"content\",description:{kind:\"markdown\",value:\"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used.\"}},{name:\"charset\",description:{kind:\"markdown\",value:'This attribute declares the page\\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\\'t request a specific encoding, it suggests:\\n\\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\\n\\n**Note:** ASCII-incompatible encodings are those that don\\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\\n\\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\\n\\n**Notes:**\\n\\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page\\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\\n*   It is strongly recommended to define the character encoding. If a page\\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'}},{name:\"scheme\",description:\"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\\n\\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meta\"}]},{name:\"style\",description:{kind:\"markdown\",value:\"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.\"},attributes:[{name:\"media\",description:{kind:\"markdown\",value:\"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing.\"}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents.\"}},{name:\"scoped\",valueSet:\"v\"},{name:\"title\",description:\"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/style\"}]},{name:\"body\",description:{kind:\"markdown\",value:\"The body element represents the content of the document.\"},attributes:[{name:\"onafterprint\",description:{kind:\"markdown\",value:\"Function to call after the user has printed the document.\"}},{name:\"onbeforeprint\",description:{kind:\"markdown\",value:\"Function to call when the user requests printing of the document.\"}},{name:\"onbeforeunload\",description:{kind:\"markdown\",value:\"Function to call when the document is about to be unloaded.\"}},{name:\"onhashchange\",description:{kind:\"markdown\",value:\"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed.\"}},{name:\"onlanguagechange\",description:{kind:\"markdown\",value:\"Function to call when the preferred languages changed.\"}},{name:\"onmessage\",description:{kind:\"markdown\",value:\"Function to call when the document has received a message.\"}},{name:\"onoffline\",description:{kind:\"markdown\",value:\"Function to call when network communication has failed.\"}},{name:\"ononline\",description:{kind:\"markdown\",value:\"Function to call when network communication has been restored.\"}},{name:\"onpagehide\"},{name:\"onpageshow\"},{name:\"onpopstate\",description:{kind:\"markdown\",value:\"Function to call when the user has navigated session history.\"}},{name:\"onstorage\",description:{kind:\"markdown\",value:\"Function to call when the storage area has changed.\"}},{name:\"onunload\",description:{kind:\"markdown\",value:\"Function to call when the document is going away.\"}},{name:\"alink\",description:'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._'},{name:\"background\",description:'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._'},{name:\"bgcolor\",description:'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._'},{name:\"bottommargin\",description:'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"leftmargin\",description:'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"link\",description:'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._'},{name:\"onblur\",description:\"Function to call when the document loses focus.\"},{name:\"onerror\",description:\"Function to call when the document fails to load properly.\"},{name:\"onfocus\",description:\"Function to call when the document receives focus.\"},{name:\"onload\",description:\"Function to call when the document has finished loading.\"},{name:\"onredo\",description:\"Function to call when the user has moved forward in undo transaction history.\"},{name:\"onresize\",description:\"Function to call when the document has been resized.\"},{name:\"onundo\",description:\"Function to call when the user has moved backward in undo transaction history.\"},{name:\"rightmargin\",description:'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"text\",description:'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property on the element instead._'},{name:\"topmargin\",description:'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"vlink\",description:'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/body\"}]},{name:\"article\",description:{kind:\"markdown\",value:\"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/article\"}]},{name:\"section\",description:{kind:\"markdown\",value:\"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/section\"}]},{name:\"nav\",description:{kind:\"markdown\",value:\"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/nav\"}]},{name:\"aside\",description:{kind:\"markdown\",value:\"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/aside\"}]},{name:\"h1\",description:{kind:\"markdown\",value:\"The h1 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h2\",description:{kind:\"markdown\",value:\"The h2 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h3\",description:{kind:\"markdown\",value:\"The h3 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h4\",description:{kind:\"markdown\",value:\"The h4 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h5\",description:{kind:\"markdown\",value:\"The h5 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h6\",description:{kind:\"markdown\",value:\"The h6 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"header\",description:{kind:\"markdown\",value:\"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/header\"}]},{name:\"footer\",description:{kind:\"markdown\",value:\"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/footer\"}]},{name:\"address\",description:{kind:\"markdown\",value:\"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/address\"}]},{name:\"p\",description:{kind:\"markdown\",value:\"The p element represents a paragraph.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/p\"}]},{name:\"hr\",description:{kind:\"markdown\",value:\"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book.\"},attributes:[{name:\"align\",description:\"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`.\"},{name:\"color\",description:\"Sets the color of the rule through color name or hexadecimal value.\"},{name:\"noshade\",description:\"Sets the rule to have no shading.\"},{name:\"size\",description:\"Sets the height, in pixels, of the rule.\"},{name:\"width\",description:\"Sets the length of the rule on the page through a pixel or percentage value.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/hr\"}]},{name:\"pre\",description:{kind:\"markdown\",value:\"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.\"},attributes:[{name:\"cols\",description:'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"width\",description:'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"wrap\",description:'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/pre\"}]},{name:\"blockquote\",description:{kind:\"markdown\",value:\"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote\"}]},{name:\"ol\",description:{kind:\"markdown\",value:\"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.\"},attributes:[{name:\"reversed\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute specifies that the items of the list are specified in reversed order.\"}},{name:\"start\",description:{kind:\"markdown\",value:'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'}},{name:\"type\",valueSet:\"lt\",description:{kind:\"markdown\",value:\"Indicates the numbering type:\\n\\n*   `'a'` indicates lowercase letters,\\n*   `'A'` indicates uppercase letters,\\n*   `'i'` indicates lowercase Roman numerals,\\n*   `'I'` indicates uppercase Roman numerals,\\n*   and `'1'` indicates numbers (default).\\n\\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \\\"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\\\") element.\\n\\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \\\"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\\\") property should be used instead.\"}},{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ol\"}]},{name:\"ul\",description:{kind:\"markdown\",value:\"The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document.\"},attributes:[{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ul\"}]},{name:\"li\",description:{kind:\"markdown\",value:\"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed.'}},{name:\"type\",description:'This character attribute indicates the numbering type:\\n\\n*   `a`: lowercase letters\\n*   `A`: uppercase letters\\n*   `i`: lowercase Roman numerals\\n*   `I`: uppercase Roman numerals\\n*   `1`: numbers\\n\\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\\n\\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/li\"}]},{name:\"dl\",description:{kind:\"markdown\",value:\"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dl\"}]},{name:\"dt\",description:{kind:\"markdown\",value:\"The dt element represents the term, or name, part of a term-description group in a description list (dl element).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dt\"}]},{name:\"dd\",description:{kind:\"markdown\",value:\"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element).\"},attributes:[{name:\"nowrap\",description:\"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dd\"}]},{name:\"figure\",description:{kind:\"markdown\",value:\"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figure\"}]},{name:\"figcaption\",description:{kind:\"markdown\",value:\"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption\"}]},{name:\"main\",description:{kind:\"markdown\",value:\"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/main\"}]},{name:\"div\",description:{kind:\"markdown\",value:\"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/div\"}]},{name:\"a\",description:{kind:\"markdown\",value:\"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"Contains a URL or a URL fragment that the hyperlink points to.\"}},{name:\"target\",description:{kind:\"markdown\",value:'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\\n\\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\\n*   `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\\n\\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\\n\\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\\'s performance may suffer. To avoid this use `rel=\"noopener\"`.'}},{name:\"download\",description:{kind:\"markdown\",value:\"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\\n\\n**Notes:**\\n\\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute.\"}},{name:\"ping\",description:{kind:\"markdown\",value:'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\").'}},{name:\"type\",description:{kind:\"markdown\",value:'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A MIME type (now properly called \"media type\", but also sometimes \"content type\") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).\") for the linked URL. It is purely advisory, with no built-in functionality.'}},{name:\"referrerpolicy\",description:\"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\\n\\n*   `'no-referrer'` means the `Referer:` header will not be sent.\\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\\n*   `'strict-origin-when-cross-origin'`\\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/a\"}]},{name:\"em\",description:{kind:\"markdown\",value:\"The em element represents stress emphasis of its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/em\"}]},{name:\"strong\",description:{kind:\"markdown\",value:\"The strong element represents strong importance, seriousness, or urgency for its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/strong\"}]},{name:\"small\",description:{kind:\"markdown\",value:\"The small element represents side comments such as small print.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/small\"}]},{name:\"s\",description:{kind:\"markdown\",value:\"The s element represents contents that are no longer accurate or no longer relevant.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/s\"}]},{name:\"cite\",description:{kind:\"markdown\",value:\"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/cite\"}]},{name:\"q\",description:{kind:\"markdown\",value:\"The q element represents some phrasing content quoted from another source.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/q\"}]},{name:\"dfn\",description:{kind:\"markdown\",value:\"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dfn\"}]},{name:\"abbr\",description:{kind:\"markdown\",value:\"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/abbr\"}]},{name:\"ruby\",description:{kind:\"markdown\",value:\"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ruby\"}]},{name:\"rb\",description:{kind:\"markdown\",value:\"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rb\"}]},{name:\"rt\",description:{kind:\"markdown\",value:\"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rt\"}]},{name:\"rp\",description:{kind:\"markdown\",value:\"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rp\"}]},{name:\"time\",description:{kind:\"markdown\",value:\"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.\"},attributes:[{name:\"datetime\",description:{kind:\"markdown\",value:\"This attribute indicates the time and/or date of the element and must be in one of the formats described below.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/time\"}]},{name:\"code\",description:{kind:\"markdown\",value:\"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/code\"}]},{name:\"var\",description:{kind:\"markdown\",value:\"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/var\"}]},{name:\"samp\",description:{kind:\"markdown\",value:\"The samp element represents sample or quoted output from another program or computing system.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/samp\"}]},{name:\"kbd\",description:{kind:\"markdown\",value:\"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/kbd\"}]},{name:\"sub\",description:{kind:\"markdown\",value:\"The sub element represents a subscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sub\"}]},{name:\"sup\",description:{kind:\"markdown\",value:\"The sup element represents a superscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sup\"}]},{name:\"i\",description:{kind:\"markdown\",value:\"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/i\"}]},{name:\"b\",description:{kind:\"markdown\",value:\"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/b\"}]},{name:\"u\",description:{kind:\"markdown\",value:\"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/u\"}]},{name:\"mark\",description:{kind:\"markdown\",value:\"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/mark\"}]},{name:\"bdi\",description:{kind:\"markdown\",value:\"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdi\"}]},{name:\"bdo\",description:{kind:\"markdown\",value:\"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]\"},attributes:[{name:\"dir\",description:\"The direction in which text should be rendered in this element's contents. Possible values are:\\n\\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\\n*   `rtl`: Indicates that the text should go in a right-to-left direction.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdo\"}]},{name:\"span\",description:{kind:\"markdown\",value:\"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/span\"}]},{name:\"br\",description:{kind:\"markdown\",value:\"The br element represents a line break.\"},attributes:[{name:\"clear\",description:\"Indicates where to begin the next line after the break.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/br\"}]},{name:\"wbr\",description:{kind:\"markdown\",value:\"The wbr element represents a line break opportunity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/wbr\"}]},{name:\"ins\",description:{kind:\"markdown\",value:\"The ins element represents an addition to the document.\"},attributes:[{name:\"cite\",description:\"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system.\"},{name:\"datetime\",description:'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ins\"}]},{name:\"del\",description:{kind:\"markdown\",value:\"The del element represents a removal from the document.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URI for a resource that explains the change (for example, meeting minutes).\"}},{name:\"datetime\",description:{kind:\"markdown\",value:'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/del\"}]},{name:\"picture\",description:{kind:\"markdown\",value:\"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/picture\"}]},{name:\"img\",description:{kind:\"markdown\",value:\"An img element represents an image.\"},attributes:[{name:\"alt\",description:{kind:\"markdown\",value:'This attribute defines an alternative text description of the image.\\n\\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\\n\\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'}},{name:\"src\",description:{kind:\"markdown\",value:\"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors.\"}},{name:\"srcset\",description:{kind:\"markdown\",value:\"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\\n\\n1.  a URL to an image,\\n2.  optionally, whitespace followed by one of:\\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\\n\\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\\n\\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\\n\\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example.\"}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:'}},{name:\"usemap\",description:{kind:\"markdown\",value:'The partial URL (starting with \\'#\\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\\n\\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element.'}},{name:\"ismap\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\\n\\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The intrinsic width of the image in pixels.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The intrinsic height of the image in pixels.\"}},{name:\"decoding\",description:\"Provides an image decoding hint to the browser. The allowed values are:\"},{name:\"decoding\",description:\"`sync`\\n\\nDecode the image synchronously for atomic presentation with other content.\\n\\n`async`\\n\\nDecode the image asynchronously to reduce delay in presenting other content.\\n\\n`auto`\\n\\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.\"},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:\"`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\\n\\n`high`: Indicates to the browser that the image is of **high** priority.\\n\\n`low`: Indicates to the browser that the image is of **low** priority.\"},{name:\"intrinsicsize\",description:\"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)\"},{name:\"referrerpolicy\",description:\"A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \\\"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\\\") header will not be sent.\\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.\"},{name:\"sizes\",description:\"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\\n\\n1.  a media condition. This must be omitted for the last item.\\n2.  a source size value.\\n\\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/img\"}]},{name:\"iframe\",description:{kind:\"markdown\",value:\"The iframe element represents a nested browsing context.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'}},{name:\"srcdoc\",description:{kind:\"markdown\",value:\"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute.\"}},{name:\"name\",description:{kind:\"markdown\",value:'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The Window interface\\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method.'}},{name:\"sandbox\",valueSet:\"sb\",description:{kind:\"markdown\",value:'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\\n\\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\\n*   `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\\n\\n**Notes about sandboxing:**\\n\\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'}},{name:\"seamless\",valueSet:\"v\"},{name:\"allowfullscreen\",valueSet:\"v\",description:{kind:\"markdown\",value:'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the frame in CSS pixels. Default is `300`.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the frame in CSS pixels. Default is `150`.\"}},{name:\"allow\",description:\"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`.\"},{name:\"allowpaymentrequest\",description:\"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API).\"},{name:\"allowpaymentrequest\",description:'This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`.'},{name:\"csp\",description:'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details.'},{name:\"importance\",description:\"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\\n\\n`auto` (default)\\n\\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\\n\\n`high`\\n\\nThe resource should be downloaded before other lower-priority page resources.\\n\\n`low`\\n\\nThe resource should be downloaded after other higher-priority page resources.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\\'s resource:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don\\'t send it to a less secure destination (HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/iframe\"}]},{name:\"embed\",description:{kind:\"markdown\",value:\"The embed element provides an integration point for an external (typically non-HTML) application or interactive content.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"The URL of the resource being embedded.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME type to use to select the plug-in to instantiate.\"}},{name:\"width\",description:{kind:\"markdown\",value:\"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/embed\"}]},{name:\"object\",description:{kind:\"markdown\",value:\"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin.\"},attributes:[{name:\"data\",description:{kind:\"markdown\",value:\"The address of the resource as a valid URL. At least one of **data** and **type** must be defined.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined.\"}},{name:\"typemustmatch\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of valid browsing context (HTML5), or the name of the control (HTML 4).\"}},{name:\"usemap\",description:{kind:\"markdown\",value:\"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \\\"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\\\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"archive\",description:\"A space-separated list of URIs for archives of resources for the object.\"},{name:\"border\",description:\"The width of a border around the control, in pixels.\"},{name:\"classid\",description:\"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute.\"},{name:\"codebase\",description:\"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document.\"},{name:\"codetype\",description:\"The content type of the data specified by **classid**.\"},{name:\"declare\",description:\"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused.\"},{name:\"standby\",description:\"A message that the browser can show while loading the object's implementation and data.\"},{name:\"tabindex\",description:\"The position of the element in the tabbing navigation order for the current document.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/object\"}]},{name:\"param\",description:{kind:\"markdown\",value:\"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"Name of the parameter.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"Specifies the value of the parameter.\"}},{name:\"type\",description:'Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value.'},{name:\"valuetype\",description:'Specifies the type of the `value` attribute. Possible values are:\\n\\n*   data: Default value. The value is passed to the object\\'s implementation as a string.\\n*   ref: The value is a URI to a resource where run-time values are stored.\\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/param\"}]},{name:\"video\",description:{kind:\"markdown\",value:\"A video element is used for playing videos or movies, and audio files with captions.\"},attributes:[{name:\"src\"},{name:\"crossorigin\",valueSet:\"xo\"},{name:\"poster\"},{name:\"preload\",valueSet:\"pl\"},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\"},{name:\"muted\",valueSet:\"v\"},{name:\"controls\",valueSet:\"v\"},{name:\"width\"},{name:\"height\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/video\"}]},{name:\"audio\",description:{kind:\"markdown\",value:\"An audio element represents a sound or audio stream.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\nanonymous\\n\\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\\n\\nuse-credentials\\n\\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\\n\\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'}},{name:\"preload\",valueSet:\"pl\",description:{kind:\"markdown\",value:\"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\\n\\n*   `none`: Indicates that the audio should not be preloaded.\\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\\n*   _empty string_: A synonym of the `auto` value.\\n\\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\\n\\n**Usage notes:**\\n\\n*   The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint.\"}},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\\n\\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio.\"}},{name:\"muted\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`.\"}},{name:\"controls\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/audio\"}]},{name:\"source\",description:{kind:\"markdown\",value:\"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs.\"}},{name:\"sizes\",description:'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \\nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'},{name:\"srcset\",description:\"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\\n\\n1.  one URL to an image,\\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\\n\\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \\nThe browser chooses the most adequate image to display at a given point of time.  \\nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \\\"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\\\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \\\"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\\\") element.\"},{name:\"media\",description:'[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/source\"}]},{name:\"track\",description:{kind:\"markdown\",value:\"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.\"},attributes:[{name:\"default\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element.\"}},{name:\"kind\",valueSet:\"tk\",description:{kind:\"markdown\",value:\"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\\n\\n*   `subtitles`\\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\\n*   `captions`\\n    *   Closed captions provide a transcription and possibly a translation of audio.\\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\\n    *   Suitable for users who are deaf or when the sound is muted.\\n*   `descriptions`\\n    *   Textual description of the video content.\\n    *   Suitable for users who are blind or where the video cannot be seen.\\n*   `chapters`\\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\\n*   `metadata`\\n    *   Tracks used by scripts. Not visible to the user.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"A user-readable title of the text track which is used by the browser when listing available text tracks.\"}},{name:\"src\",description:{kind:\"markdown\",value:'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'}},{name:\"srclang\",description:{kind:\"markdown\",value:\"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/track\"}]},{name:\"map\",description:{kind:\"markdown\",value:\"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/map\"}]},{name:\"area\",description:{kind:\"markdown\",value:\"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.\"},attributes:[{name:\"alt\"},{name:\"coords\"},{name:\"shape\",valueSet:\"sh\"},{name:\"href\"},{name:\"target\"},{name:\"download\"},{name:\"ping\"},{name:\"rel\"},{name:\"hreflang\"},{name:\"type\"},{name:\"accesskey\",description:\"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/area\"}]},{name:\"table\",description:{kind:\"markdown\",value:\"The table element represents data with more than one dimension, in the form of a table.\"},attributes:[{name:\"border\"},{name:\"align\",description:'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\\n\\n*   left: the table is displayed on the left side of the document;\\n*   center: the table is displayed in the center of the document;\\n*   right: the table is displayed on the right side of the document.\\n\\n**Usage Note**\\n\\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/table\"}]},{name:\"caption\",description:{kind:\"markdown\",value:\"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"align\",description:'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\\n\\n`left`\\n\\nThe caption is displayed to the left of the table.\\n\\n`top`\\n\\nThe caption is displayed above the table.\\n\\n`right`\\n\\nThe caption is displayed to the right of the table.\\n\\n`bottom`\\n\\nThe caption is displayed below the table.\\n\\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table\\'s <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/caption\"}]},{name:\"colgroup\",description:{kind:\"markdown\",value:\"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup\"}]},{name:\"col\",description:{kind:\"markdown\",value:\"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/col\"}]},{name:\"tbody\",description:{kind:\"markdown\",value:\"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tbody\"}]},{name:\"thead\",description:{kind:\"markdown\",value:\"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/thead\"}]},{name:\"tfoot\",description:{kind:\"markdown\",value:\"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot\"}]},{name:\"tr\",description:{kind:\"markdown\",value:\"The tr element represents a row of cells in a table.\"},attributes:[{name:\"align\",description:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell\\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\\n\\n`left`\\n\\nAlign the content of each cell at its left edge.\\n\\n`center`\\n\\nCenter the contents of each cell between their left and right edges.\\n\\n`right`\\n\\nAlign the content of each cell at its right edge.\\n\\n`justify`\\n\\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\\n\\n`char`\\n\\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\\n\\nIf no value is expressly set for `align`, the parent node\\'s value is inherited.\\n\\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row\\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tr\"}]},{name:\"td\",description:{kind:\"markdown\",value:\"The td element represents a data cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"abbr\",description:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute.\"},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/td\"}]},{name:\"th\",description:{kind:\"markdown\",value:\"The th element represents a header cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"scope\",valueSet:\"s\"},{name:\"sorted\"},{name:\"abbr\",description:{kind:\"markdown\",value:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\"}},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/th\"}]},{name:\"form\",description:{kind:\"markdown\",value:\"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.\"},attributes:[{name:\"accept-charset\",description:{kind:\"markdown\",value:'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element.  \\nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'}},{name:\"action\",description:{kind:\"markdown\",value:'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"autocomplete\",valueSet:\"o\",description:{kind:\"markdown\",value:\"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\\n\\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\"}},{name:\"enctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\\n*   `text/plain`: (HTML5)\\n\\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"method\",valueSet:\"m\",description:{kind:\"markdown\",value:'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \\'?\\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n*   `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\\n\\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5.\"}},{name:\"novalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form.'}},{name:\"target\",description:{kind:\"markdown\",value:'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\\n\\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"accept\",description:'A comma-separated list of content types that the server accepts.\\n\\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'},{name:\"autocapitalize\",description:\"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/form\"}]},{name:\"label\",description:{kind:\"markdown\",value:\"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself.\"},attributes:[{name:\"form\",description:{kind:\"markdown\",value:'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"for\",description:{kind:\"markdown\",value:\"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\\n\\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/label\"}]},{name:\"input\",description:{kind:\"markdown\",value:\"The input element represents a typed data field, usually with a form control to allow the user to edit the data.\"},attributes:[{name:\"accept\"},{name:\"alt\"},{name:\"autocomplete\",valueSet:\"inputautocomplete\"},{name:\"autofocus\",valueSet:\"v\"},{name:\"checked\",valueSet:\"v\"},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\"},{name:\"form\"},{name:\"formaction\"},{name:\"formenctype\",valueSet:\"et\"},{name:\"formmethod\",valueSet:\"fm\"},{name:\"formnovalidate\",valueSet:\"v\"},{name:\"formtarget\"},{name:\"height\"},{name:\"inputmode\",valueSet:\"im\"},{name:\"list\"},{name:\"max\"},{name:\"maxlength\"},{name:\"min\"},{name:\"minlength\"},{name:\"multiple\",valueSet:\"v\"},{name:\"name\"},{name:\"pattern\"},{name:\"placeholder\"},{name:\"readonly\",valueSet:\"v\"},{name:\"required\",valueSet:\"v\"},{name:\"size\"},{name:\"src\"},{name:\"step\"},{name:\"type\",valueSet:\"t\"},{name:\"value\"},{name:\"width\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/input\"}]},{name:\"button\",description:{kind:\"markdown\",value:\"The button element represents a button labeled by its contents.\"},attributes:[{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\\n\\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements.'}},{name:\"formaction\",description:{kind:\"markdown\",value:\"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner.\"}},{name:\"formenctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\\n*   `text/plain`\\n\\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\\'s form owner.'}},{name:\"formmethod\",valueSet:\"fm\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: The data from the form are included in the body of the form and sent to the server.\\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n\\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner.\"}},{name:\"formnovalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.\"}},{name:\"formtarget\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed browsing context.\\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the button, which is submitted with the form data.\"}},{name:\"type\",valueSet:\"bt\",description:{kind:\"markdown\",value:\"The type of the button. Possible values are:\\n\\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\\n*   `reset`: The button resets all the controls to their initial values.\\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted.\"}},{name:\"autocomplete\",description:'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn\\'t return after refreshing the page\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/button\"}]},{name:\"select\",description:{kind:\"markdown\",value:\"The select element represents a control for selecting amongst a set of options.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent\\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent\\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute lets you specify the form element to which the select element is associated (that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"multiple\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"This attribute is used to specify the name of the control.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute indicating that an option with a non-empty string value must be selected.\"}},{name:\"size\",description:{kind:\"markdown\",value:\"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\\n\\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/select\"}]},{name:\"datalist\",description:{kind:\"markdown\",value:\"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/datalist\"}]},{name:\"optgroup\",description:{kind:\"markdown\",value:\"The optgroup element represents a group of option elements with a common label.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup\"}]},{name:\"option\",description:{kind:\"markdown\",value:\"The option element represents an option in a select element or as part of a list of suggestions in a datalist element.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element.'}},{name:\"label\",description:{kind:\"markdown\",value:\"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content.\"}},{name:\"selected\",valueSet:\"v\",description:{kind:\"markdown\",value:'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute.'}},{name:\"value\",description:{kind:\"markdown\",value:\"The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/option\"}]},{name:\"textarea\",description:{kind:\"markdown\",value:\"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\\n\\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\").'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"cols\",description:{kind:\"markdown\",value:\"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`.\"}},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'}},{name:\"inputmode\",valueSet:\"im\"},{name:\"maxlength\",description:{kind:\"markdown\",value:\"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.\"}},{name:\"minlength\",description:{kind:\"markdown\",value:\"The minimum number of characters (unicode code points) required that the user should enter.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the control.\"}},{name:\"placeholder\",description:{kind:\"markdown\",value:'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\\n\\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation.'}},{name:\"readonly\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute specifies that the user must fill in a value before submitting a form.\"}},{name:\"rows\",description:{kind:\"markdown\",value:\"The number of visible text lines for the control.\"}},{name:\"wrap\",valueSet:\"w\",description:{kind:\"markdown\",value:\"Indicates how the control wraps text. Possible values are:\\n\\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\\n\\nIf this attribute is not specified, `soft` is its default value.\"}},{name:\"autocapitalize\",description:\"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization.\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"},{name:\"spellcheck\",description:\"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\\n\\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\\n*   `false` : Indicates that the element should not be spell checked.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/textarea\"}]},{name:\"output\",description:{kind:\"markdown\",value:\"The output element represents the result of a calculation performed by the application, or the result of a user action.\"},attributes:[{name:\"for\",description:{kind:\"markdown\",value:\"A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/output\"}]},{name:\"progress\",description:{kind:\"markdown\",value:\"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/progress\"}]},{name:\"meter\",description:{kind:\"markdown\",value:\"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\\n\\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it.\"}},{name:\"min\",description:{kind:\"markdown\",value:\"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1.\"}},{name:\"low\",description:{kind:\"markdown\",value:\"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value.\"}},{name:\"high\",description:{kind:\"markdown\",value:\"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value.\"}},{name:\"optimum\",description:{kind:\"markdown\",value:\"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred.\"}},{name:\"form\",description:\"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meter\"}]},{name:\"fieldset\",description:{kind:\"markdown\",value:\"The fieldset element represents a set of form controls optionally grouped under a common name.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \\\"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\\\") element won't be disabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name associated with the group.\\n\\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset\"}]},{name:\"legend\",description:{kind:\"markdown\",value:\"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/legend\"}]},{name:\"details\",description:{kind:\"markdown\",value:\"The details element represents a disclosure widget from which the user can obtain additional information or controls.\"},attributes:[{name:\"open\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/details\"}]},{name:\"summary\",description:{kind:\"markdown\",value:\"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/summary\"}]},{name:\"dialog\",description:{kind:\"markdown\",value:\"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.\"},attributes:[{name:\"open\",description:\"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dialog\"}]},{name:\"script\",description:{kind:\"markdown\",value:\"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\\n\\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\\n\\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\\n*   **Any other value:** The embedded content is treated as a data block which won\\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\\n\\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\")).'}},{name:\"charset\"},{name:\"async\",valueSet:\"v\",description:{kind:\"markdown\",value:'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\\n\\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\\n\\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\\'t recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\\n\\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'}},{name:\"defer\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\\n\\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\\n\\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) to whitelist inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial.\"}},{name:\"integrity\",description:\"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"nomodule\",description:\"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don\\'t send it to a less secure destination (e.g. HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\\n\\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'},{name:\"text\",description:\"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/script\"}]},{name:\"noscript\",description:{kind:\"markdown\",value:\"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/noscript\"}]},{name:\"template\",description:{kind:\"markdown\",value:\"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/template\"}]},{name:\"canvas\",description:{kind:\"markdown\",value:\"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly.\"},attributes:[{name:\"width\",description:{kind:\"markdown\",value:\"The width of the coordinate space in CSS pixels. Defaults to 300.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the coordinate space in CSS pixels. Defaults to 150.\"}},{name:\"moz-opaque\",description:\"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \\\"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\\\") instead.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/canvas\"}]}],globalAttributes:[{name:\"accesskey\",description:{kind:\"markdown\",value:\"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey\"}]},{name:\"autocapitalize\",description:{kind:\"markdown\",value:\"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\\n\\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\\n*   `characters`, all letters should default to uppercase\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize\"}]},{name:\"class\",description:{kind:\"markdown\",value:'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](/en-US/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](/en-US/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\").'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class\"}]},{name:\"contenteditable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\\n\\n*   `true` or the _empty string_, which indicates that the element must be editable;\\n*   `false`, which indicates that the element must not be editable.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable\"}]},{name:\"contextmenu\",description:{kind:\"markdown\",value:'The `[**id**](#attr-id)` of a [`<menu>`](/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu\"}]},{name:\"dir\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\\n\\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element.\"},valueSet:\"d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir\"}]},{name:\"draggable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](/en-us/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `true`, which indicates that the element may be dragged\\n*   `false`, which indicates that the element may not be dragged.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable\"}]},{name:\"dropzone\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](/en-US/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\\n*   `link`, will create a link to the dragged data.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dropzone\"}]},{name:\"exportparts\",description:{kind:\"markdown\",value:\"Used to transitively export shadow parts from a nested shadow tree into a containing light tree.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts\"}]},{name:\"hidden\",description:{kind:\"markdown\",value:\"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden\"}]},{name:\"id\",description:{kind:\"markdown\",value:\"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id\"}]},{name:\"inputmode\",description:{kind:\"markdown\",value:'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode\"}]},{name:\"is\",description:{kind:\"markdown\",value:\"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](/en-US/docs/Web/Web_Components/Using_custom_elements) for more details).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is\"}]},{name:\"itemid\",description:{kind:\"markdown\",value:\"The unique, global identifier of an item.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid\"}]},{name:\"itemprop\",description:{kind:\"markdown\",value:\"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop\"}]},{name:\"itemref\",description:{kind:\"markdown\",value:\"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref\"}]},{name:\"itemscope\",description:{kind:\"markdown\",value:\"`itemscope` (usually) works along with `[itemtype](/en-US/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope\"}]},{name:\"itemtype\",description:{kind:\"markdown\",value:\"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](/en-US/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype\"}]},{name:\"lang\",description:{kind:\"markdown\",value:\"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang\"}]},{name:\"part\",description:{kind:\"markdown\",value:'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](/en-US/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part\"}]},{name:\"role\",valueSet:\"roles\"},{name:\"slot\",description:{kind:\"markdown\",value:\"Assigns a slot in a [shadow DOM](/en-US/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](/en-US/docs/Web/HTML/Element/slot \\\"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\\\") element whose `[name](/en-US/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot\"}]},{name:\"spellcheck\",description:{kind:\"markdown\",value:\"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\\n\\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\\n*   `false`, which indicates that the element should not be checked for spelling errors.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck\"}]},{name:\"style\",description:{kind:\"markdown\",value:'Contains [CSS](/en-US/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](/en-US/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style\"}]},{name:\"tabindex\",description:{kind:\"markdown\",value:\"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\\n\\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title\"}]},{name:\"translate\",description:{kind:\"markdown\",value:\"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](/en-US/docs/Web/API/Text \\\"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\\\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\\n\\n*   empty string and `yes`, which indicates that the element will be translated.\\n*   `no`, which indicates that the element will not be translated.\"},valueSet:\"y\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate\"}]},{name:\"onabort\",description:{kind:\"markdown\",value:\"The loading of a resource has been aborted.\"}},{name:\"onblur\",description:{kind:\"markdown\",value:\"An element has lost focus (does not bubble).\"}},{name:\"oncanplay\",description:{kind:\"markdown\",value:\"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\"}},{name:\"oncanplaythrough\",description:{kind:\"markdown\",value:\"The user agent can play the media up to its end without having to stop for further buffering of content.\"}},{name:\"onchange\",description:{kind:\"markdown\",value:\"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user.\"}},{name:\"onclick\",description:{kind:\"markdown\",value:\"A pointing device button has been pressed and released on an element.\"}},{name:\"oncontextmenu\",description:{kind:\"markdown\",value:\"The right button of the mouse is clicked (before the context menu is displayed).\"}},{name:\"ondblclick\",description:{kind:\"markdown\",value:\"A pointing device button is clicked twice on an element.\"}},{name:\"ondrag\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged (every 350ms).\"}},{name:\"ondragend\",description:{kind:\"markdown\",value:\"A drag operation is being ended (by releasing a mouse button or hitting the escape key).\"}},{name:\"ondragenter\",description:{kind:\"markdown\",value:\"A dragged element or text selection enters a valid drop target.\"}},{name:\"ondragleave\",description:{kind:\"markdown\",value:\"A dragged element or text selection leaves a valid drop target.\"}},{name:\"ondragover\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged over a valid drop target (every 350ms).\"}},{name:\"ondragstart\",description:{kind:\"markdown\",value:\"The user starts dragging an element or text selection.\"}},{name:\"ondrop\",description:{kind:\"markdown\",value:\"An element is dropped on a valid drop target.\"}},{name:\"ondurationchange\",description:{kind:\"markdown\",value:\"The duration attribute has been updated.\"}},{name:\"onemptied\",description:{kind:\"markdown\",value:\"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.\"}},{name:\"onended\",description:{kind:\"markdown\",value:\"Playback has stopped because the end of the media was reached.\"}},{name:\"onerror\",description:{kind:\"markdown\",value:\"A resource failed to load.\"}},{name:\"onfocus\",description:{kind:\"markdown\",value:\"An element has received focus (does not bubble).\"}},{name:\"onformchange\"},{name:\"onforminput\"},{name:\"oninput\",description:{kind:\"markdown\",value:\"The value of an element changes or the content of an element with the attribute contenteditable is modified.\"}},{name:\"oninvalid\",description:{kind:\"markdown\",value:\"A submittable element has been checked and doesn't satisfy its constraints.\"}},{name:\"onkeydown\",description:{kind:\"markdown\",value:\"A key is pressed down.\"}},{name:\"onkeypress\",description:{kind:\"markdown\",value:\"A key is pressed down and that key normally produces a character value (use input instead).\"}},{name:\"onkeyup\",description:{kind:\"markdown\",value:\"A key is released.\"}},{name:\"onload\",description:{kind:\"markdown\",value:\"A resource and its dependent resources have finished loading.\"}},{name:\"onloadeddata\",description:{kind:\"markdown\",value:\"The first frame of the media has finished loading.\"}},{name:\"onloadedmetadata\",description:{kind:\"markdown\",value:\"The metadata has been loaded.\"}},{name:\"onloadstart\",description:{kind:\"markdown\",value:\"Progress has begun.\"}},{name:\"onmousedown\",description:{kind:\"markdown\",value:\"A pointing device button (usually a mouse) is pressed on an element.\"}},{name:\"onmousemove\",description:{kind:\"markdown\",value:\"A pointing device is moved over an element.\"}},{name:\"onmouseout\",description:{kind:\"markdown\",value:\"A pointing device is moved off the element that has the listener attached or off one of its children.\"}},{name:\"onmouseover\",description:{kind:\"markdown\",value:\"A pointing device is moved onto the element that has the listener attached or onto one of its children.\"}},{name:\"onmouseup\",description:{kind:\"markdown\",value:\"A pointing device button is released over an element.\"}},{name:\"onmousewheel\"},{name:\"onpause\",description:{kind:\"markdown\",value:\"Playback has been paused.\"}},{name:\"onplay\",description:{kind:\"markdown\",value:\"Playback has begun.\"}},{name:\"onplaying\",description:{kind:\"markdown\",value:\"Playback is ready to start after having been paused or delayed due to lack of data.\"}},{name:\"onprogress\",description:{kind:\"markdown\",value:\"In progress.\"}},{name:\"onratechange\",description:{kind:\"markdown\",value:\"The playback rate has changed.\"}},{name:\"onreset\",description:{kind:\"markdown\",value:\"A form is reset.\"}},{name:\"onresize\",description:{kind:\"markdown\",value:\"The document view has been resized.\"}},{name:\"onreadystatechange\",description:{kind:\"markdown\",value:\"The readyState attribute of a document has changed.\"}},{name:\"onscroll\",description:{kind:\"markdown\",value:\"The document view or an element has been scrolled.\"}},{name:\"onseeked\",description:{kind:\"markdown\",value:\"A seek operation completed.\"}},{name:\"onseeking\",description:{kind:\"markdown\",value:\"A seek operation began.\"}},{name:\"onselect\",description:{kind:\"markdown\",value:\"Some text is being selected.\"}},{name:\"onshow\",description:{kind:\"markdown\",value:\"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute\"}},{name:\"onstalled\",description:{kind:\"markdown\",value:\"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\"}},{name:\"onsubmit\",description:{kind:\"markdown\",value:\"A form is submitted.\"}},{name:\"onsuspend\",description:{kind:\"markdown\",value:\"Media data loading has been suspended.\"}},{name:\"ontimeupdate\",description:{kind:\"markdown\",value:\"The time indicated by the currentTime attribute has been updated.\"}},{name:\"onvolumechange\",description:{kind:\"markdown\",value:\"The volume has changed.\"}},{name:\"onwaiting\",description:{kind:\"markdown\",value:\"Playback has stopped because of a temporary lack of data.\"}},{name:\"aria-activedescendant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant\"}],description:{kind:\"markdown\",value:\"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application).\"}},{name:\"aria-atomic\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic\"}],description:{kind:\"markdown\",value:\"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute.\"}},{name:\"aria-autocomplete\",valueSet:\"autocomplete\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete\"}],description:{kind:\"markdown\",value:\"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.\"}},{name:\"aria-busy\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-busy\"}],description:{kind:\"markdown\",value:\"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user.\"}},{name:\"aria-checked\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-checked\"}],description:{kind:\"markdown\",value:'Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-colcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex).\"}},{name:\"aria-colindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-colspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan\"}],description:{kind:\"markdown\",value:\"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-controls\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-controls\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns).\"}},{name:\"aria-current\",valueSet:\"current\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-current\"}],description:{kind:\"markdown\",value:\"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements.\"}},{name:\"aria-describedat\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedat\"}]},{name:\"aria-describedby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-disabled\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly).\"}},{name:\"aria-dropeffect\",valueSet:\"dropeffect\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect\"}],description:{kind:\"markdown\",value:\"\\\\[Deprecated in ARIA 1.1\\\\] Indicates what functions can be performed when a dragged object is released on the drop target.\"}},{name:\"aria-errormessage\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-expanded\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\"}],description:{kind:\"markdown\",value:\"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.\"}},{name:\"aria-flowto\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto\"}],description:{kind:\"markdown\",value:\"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.\"}},{name:\"aria-grabbed\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed\"}],description:{kind:\"markdown\",value:'\\\\[Deprecated in ARIA 1.1\\\\] Indicates an element\\'s \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'}},{name:\"aria-haspopup\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\"}],description:{kind:\"markdown\",value:\"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-hidden\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden\"}],description:{kind:\"markdown\",value:\"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-invalid\",valueSet:\"invalid\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid\"}],description:{kind:\"markdown\",value:\"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage).\"}},{name:\"aria-kbdshortcuts\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-kbdshortcuts\"}]},{name:\"aria-label\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-label\"}],description:{kind:\"markdown\",value:\"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-labelledby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-level\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-level\"}],description:{kind:\"markdown\",value:\"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure.\"}},{name:\"aria-live\",valueSet:\"live\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-live\"}],description:{kind:\"markdown\",value:\"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region).\"}},{name:\"aria-modal\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-modal\"}],description:{kind:\"markdown\",value:\"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed.\"}},{name:\"aria-multiline\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline\"}],description:{kind:\"markdown\",value:\"Indicates whether a text box accepts multiple lines of input or only a single line.\"}},{name:\"aria-multiselectable\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable\"}],description:{kind:\"markdown\",value:\"Indicates that the user may select more than one item from the current selectable descendants.\"}},{name:\"aria-orientation\",valueSet:\"orientation\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation\"}],description:{kind:\"markdown\",value:\"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\"}},{name:\"aria-owns\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-owns\"}],description:{kind:\"markdown\",value:\"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls).\"}},{name:\"aria-placeholder\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder\"}],description:{kind:\"markdown\",value:\"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.\"}},{name:\"aria-posinset\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset\"}],description:{kind:\"markdown\",value:\"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize).\"}},{name:\"aria-pressed\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\"}],description:{kind:\"markdown\",value:'Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-readonly\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-relevant\",valueSet:\"relevant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant\"}],description:{kind:\"markdown\",value:\"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic).\"}},{name:\"aria-required\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-required\"}],description:{kind:\"markdown\",value:\"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted.\"}},{name:\"aria-roledescription\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription\"}],description:{kind:\"markdown\",value:\"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-rowcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex).\"}},{name:\"aria-rowindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-rowspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan\"}],description:{kind:\"markdown\",value:\"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-selected\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-selected\"}],description:{kind:\"markdown\",value:'Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'}},{name:\"aria-setsize\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize\"}],description:{kind:\"markdown\",value:\"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset).\"}},{name:\"aria-sort\",valueSet:\"sort\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-sort\"}],description:{kind:\"markdown\",value:\"Indicates if items in a table or grid are sorted in ascending or descending order.\"}},{name:\"aria-valuemax\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax\"}],description:{kind:\"markdown\",value:\"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuemin\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin\"}],description:{kind:\"markdown\",value:\"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuenow\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow\"}],description:{kind:\"markdown\",value:\"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext).\"}},{name:\"aria-valuetext\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\"}],description:{kind:\"markdown\",value:\"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-details\",description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-keyshortcuts\",description:{kind:\"markdown\",value:\"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\"}}],valueSets:[{name:\"b\",values:[{name:\"true\"},{name:\"false\"}]},{name:\"u\",values:[{name:\"true\"},{name:\"false\"},{name:\"undefined\"}]},{name:\"o\",values:[{name:\"on\"},{name:\"off\"}]},{name:\"y\",values:[{name:\"yes\"},{name:\"no\"}]},{name:\"w\",values:[{name:\"soft\"},{name:\"hard\"}]},{name:\"d\",values:[{name:\"ltr\"},{name:\"rtl\"},{name:\"auto\"}]},{name:\"m\",values:[{name:\"GET\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\"}},{name:\"POST\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server.\"}},{name:\"dialog\",description:{kind:\"markdown\",value:\"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted.\"}}]},{name:\"fm\",values:[{name:\"GET\"},{name:\"POST\"}]},{name:\"s\",values:[{name:\"row\"},{name:\"col\"},{name:\"rowgroup\"},{name:\"colgroup\"}]},{name:\"t\",values:[{name:\"hidden\"},{name:\"text\"},{name:\"search\"},{name:\"tel\"},{name:\"url\"},{name:\"email\"},{name:\"password\"},{name:\"datetime\"},{name:\"date\"},{name:\"month\"},{name:\"week\"},{name:\"time\"},{name:\"datetime-local\"},{name:\"number\"},{name:\"range\"},{name:\"color\"},{name:\"checkbox\"},{name:\"radio\"},{name:\"file\"},{name:\"submit\"},{name:\"image\"},{name:\"reset\"},{name:\"button\"}]},{name:\"im\",values:[{name:\"verbatim\"},{name:\"latin\"},{name:\"latin-name\"},{name:\"latin-prose\"},{name:\"full-width-latin\"},{name:\"kana\"},{name:\"kana-name\"},{name:\"katakana\"},{name:\"numeric\"},{name:\"tel\"},{name:\"email\"},{name:\"url\"}]},{name:\"bt\",values:[{name:\"button\"},{name:\"submit\"},{name:\"reset\"},{name:\"menu\"}]},{name:\"lt\",values:[{name:\"1\"},{name:\"a\"},{name:\"A\"},{name:\"i\"},{name:\"I\"}]},{name:\"mt\",values:[{name:\"context\"},{name:\"toolbar\"}]},{name:\"mit\",values:[{name:\"command\"},{name:\"checkbox\"},{name:\"radio\"}]},{name:\"et\",values:[{name:\"application/x-www-form-urlencoded\"},{name:\"multipart/form-data\"},{name:\"text/plain\"}]},{name:\"tk\",values:[{name:\"subtitles\"},{name:\"captions\"},{name:\"descriptions\"},{name:\"chapters\"},{name:\"metadata\"}]},{name:\"pl\",values:[{name:\"none\"},{name:\"metadata\"},{name:\"auto\"}]},{name:\"sh\",values:[{name:\"circle\"},{name:\"default\"},{name:\"poly\"},{name:\"rect\"}]},{name:\"xo\",values:[{name:\"anonymous\"},{name:\"use-credentials\"}]},{name:\"sb\",values:[{name:\"allow-forms\"},{name:\"allow-modals\"},{name:\"allow-pointer-lock\"},{name:\"allow-popups\"},{name:\"allow-popups-to-escape-sandbox\"},{name:\"allow-same-origin\"},{name:\"allow-scripts\"},{name:\"allow-top-navigation\"}]},{name:\"tristate\",values:[{name:\"true\"},{name:\"false\"},{name:\"mixed\"},{name:\"undefined\"}]},{name:\"inputautocomplete\",values:[{name:\"additional-name\"},{name:\"address-level1\"},{name:\"address-level2\"},{name:\"address-level3\"},{name:\"address-level4\"},{name:\"address-line1\"},{name:\"address-line2\"},{name:\"address-line3\"},{name:\"bday\"},{name:\"bday-year\"},{name:\"bday-day\"},{name:\"bday-month\"},{name:\"billing\"},{name:\"cc-additional-name\"},{name:\"cc-csc\"},{name:\"cc-exp\"},{name:\"cc-exp-month\"},{name:\"cc-exp-year\"},{name:\"cc-family-name\"},{name:\"cc-given-name\"},{name:\"cc-name\"},{name:\"cc-number\"},{name:\"cc-type\"},{name:\"country\"},{name:\"country-name\"},{name:\"current-password\"},{name:\"email\"},{name:\"family-name\"},{name:\"fax\"},{name:\"given-name\"},{name:\"home\"},{name:\"honorific-prefix\"},{name:\"honorific-suffix\"},{name:\"impp\"},{name:\"language\"},{name:\"mobile\"},{name:\"name\"},{name:\"new-password\"},{name:\"nickname\"},{name:\"organization\"},{name:\"organization-title\"},{name:\"pager\"},{name:\"photo\"},{name:\"postal-code\"},{name:\"sex\"},{name:\"shipping\"},{name:\"street-address\"},{name:\"tel-area-code\"},{name:\"tel\"},{name:\"tel-country-code\"},{name:\"tel-extension\"},{name:\"tel-local\"},{name:\"tel-local-prefix\"},{name:\"tel-local-suffix\"},{name:\"tel-national\"},{name:\"transaction-amount\"},{name:\"transaction-currency\"},{name:\"url\"},{name:\"username\"},{name:\"work\"}]},{name:\"autocomplete\",values:[{name:\"inline\"},{name:\"list\"},{name:\"both\"},{name:\"none\"}]},{name:\"current\",values:[{name:\"page\"},{name:\"step\"},{name:\"location\"},{name:\"date\"},{name:\"time\"},{name:\"true\"},{name:\"false\"}]},{name:\"dropeffect\",values:[{name:\"copy\"},{name:\"move\"},{name:\"link\"},{name:\"execute\"},{name:\"popup\"},{name:\"none\"}]},{name:\"invalid\",values:[{name:\"grammar\"},{name:\"false\"},{name:\"spelling\"},{name:\"true\"}]},{name:\"live\",values:[{name:\"off\"},{name:\"polite\"},{name:\"assertive\"}]},{name:\"orientation\",values:[{name:\"vertical\"},{name:\"horizontal\"},{name:\"undefined\"}]},{name:\"relevant\",values:[{name:\"additions\"},{name:\"removals\"},{name:\"text\"},{name:\"all\"},{name:\"additions text\"}]},{name:\"sort\",values:[{name:\"ascending\"},{name:\"descending\"},{name:\"none\"},{name:\"other\"}]},{name:\"roles\",values:[{name:\"alert\"},{name:\"alertdialog\"},{name:\"button\"},{name:\"checkbox\"},{name:\"dialog\"},{name:\"gridcell\"},{name:\"link\"},{name:\"log\"},{name:\"marquee\"},{name:\"menuitem\"},{name:\"menuitemcheckbox\"},{name:\"menuitemradio\"},{name:\"option\"},{name:\"progressbar\"},{name:\"radio\"},{name:\"scrollbar\"},{name:\"searchbox\"},{name:\"slider\"},{name:\"spinbutton\"},{name:\"status\"},{name:\"switch\"},{name:\"tab\"},{name:\"tabpanel\"},{name:\"textbox\"},{name:\"timer\"},{name:\"tooltip\"},{name:\"treeitem\"},{name:\"combobox\"},{name:\"grid\"},{name:\"listbox\"},{name:\"menu\"},{name:\"menubar\"},{name:\"radiogroup\"},{name:\"tablist\"},{name:\"tree\"},{name:\"treegrid\"},{name:\"application\"},{name:\"article\"},{name:\"cell\"},{name:\"columnheader\"},{name:\"definition\"},{name:\"directory\"},{name:\"document\"},{name:\"feed\"},{name:\"figure\"},{name:\"group\"},{name:\"heading\"},{name:\"img\"},{name:\"list\"},{name:\"listitem\"},{name:\"math\"},{name:\"none\"},{name:\"note\"},{name:\"presentation\"},{name:\"region\"},{name:\"row\"},{name:\"rowgroup\"},{name:\"rowheader\"},{name:\"separator\"},{name:\"table\"},{name:\"term\"},{name:\"text\"},{name:\"toolbar\"},{name:\"banner\"},{name:\"complementary\"},{name:\"contentinfo\"},{name:\"form\"},{name:\"main\"},{name:\"navigation\"},{name:\"region\"},{name:\"search\"},{name:\"doc-abstract\"},{name:\"doc-acknowledgments\"},{name:\"doc-afterword\"},{name:\"doc-appendix\"},{name:\"doc-backlink\"},{name:\"doc-biblioentry\"},{name:\"doc-bibliography\"},{name:\"doc-biblioref\"},{name:\"doc-chapter\"},{name:\"doc-colophon\"},{name:\"doc-conclusion\"},{name:\"doc-cover\"},{name:\"doc-credit\"},{name:\"doc-credits\"},{name:\"doc-dedication\"},{name:\"doc-endnote\"},{name:\"doc-endnotes\"},{name:\"doc-epigraph\"},{name:\"doc-epilogue\"},{name:\"doc-errata\"},{name:\"doc-example\"},{name:\"doc-footnote\"},{name:\"doc-foreword\"},{name:\"doc-glossary\"},{name:\"doc-glossref\"},{name:\"doc-index\"},{name:\"doc-introduction\"},{name:\"doc-noteref\"},{name:\"doc-notice\"},{name:\"doc-pagebreak\"},{name:\"doc-pagelist\"},{name:\"doc-part\"},{name:\"doc-preface\"},{name:\"doc-prologue\"},{name:\"doc-pullquote\"},{name:\"doc-qna\"},{name:\"doc-subtitle\"},{name:\"doc-tip\"},{name:\"doc-toc\"}]},{name:\"metanames\",values:[{name:\"application-name\"},{name:\"author\"},{name:\"description\"},{name:\"format-detection\"},{name:\"generator\"},{name:\"keywords\"},{name:\"publisher\"},{name:\"referrer\"},{name:\"robots\"},{name:\"theme-color\"},{name:\"viewport\"}]}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/builtinDataProviders\",[\"require\",\"exports\",\"./dataProvider\",\"./data/webCustomData\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./dataProvider\"),i=e(\"./data/webCustomData\");t.builtinDataProviders=[new n.HTMLDataProvider(\"html5\",i.htmlData)];var r=[];t.getAllDataProviders=function(){return t.builtinDataProviders.concat(r)},t.handleCustomDataProviders=function(e){e.forEach((function(e){r.push(e)}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/object\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlCompletion\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../htmlLanguageTypes\",\"../parser/htmlEntities\",\"vscode-nls\",\"../utils/strings\",\"../languageFacts/builtinDataProviders\",\"../languageFacts/fact\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../parser/htmlEntities\"),o=e(\"vscode-nls\"),s=e(\"../utils/strings\"),l=e(\"../languageFacts/builtinDataProviders\"),c=e(\"../languageFacts/fact\"),d=e(\"../utils/object\"),h=e(\"../languageFacts/dataProvider\"),u=o.loadMessageBundle(),p=function(){function e(e){this.clientCapabilities=e,this.completionParticipants=[]}return e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n,i){var r=this._doComplete(e,t,n,i);return this.convertCompletionList(r)},e.prototype._doComplete=function(e,t,o,d){var p={isIncomplete:!1,items:[]},g=this.completionParticipants,b=l.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)&&(!d||!1!==d[t.getId()])})),_=this.doesSupportMarkdown(),v=e.getText(),w=e.offsetAt(t),y=o.findNodeBefore(w);if(!y)return p;var T,k=i.createScanner(v,y.start),S=\"\";function x(t,n){return void 0===n&&(n=w),t>w&&(t=w),{start:e.positionAt(t),end:e.positionAt(n)}}function L(e,t){var i=x(e,t);return b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(i,e.name),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p}function M(e){for(var t=e;t>0;){var n=v.charAt(t-1);if(\"\\n\\r\".indexOf(n)>=0)return v.substring(t,e);if(!m(n))return null;t--}return v.substring(0,e)}function E(e,t,i){void 0===i&&(i=w);var a=x(e,i),o=f(v,i,r.ScannerState.WithinEndTag,r.TokenType.EndTagClose)?\"\":\">\",s=y;for(t&&(s=s.parent);s;){var l=s.tag;if(l&&(!s.closed||s.endTagStart&&s.endTagStart>w)){var c={label:\"/\"+l,kind:n.CompletionItemKind.Property,filterText:\"/\"+l,textEdit:n.TextEdit.replace(a,\"/\"+l+o),insertTextFormat:n.InsertTextFormat.PlainText},d=M(s.start),u=M(e-1);if(null!==d&&null!==u&&d!==u){var m=d+\"</\"+l+o;c.textEdit=n.TextEdit.replace(x(e-1-u.length),m),c.filterText=u+\"</\"+l}return p.items.push(c),p}s=s.parent}return t?p:(b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:\"/\"+e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),filterText:\"/\"+e+o,textEdit:n.TextEdit.replace(a,\"/\"+e+o),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p)}function A(t,i){if(d&&d.hideAutoCompleteProposals)return p;if(!c.isVoidElement(i)){var r=e.positionAt(t);p.items.push({label:\"</\"+i+\">\",kind:n.CompletionItemKind.Property,filterText:\"</\"+i+\">\",textEdit:n.TextEdit.insert(r,\"$0</\"+i+\">\"),insertTextFormat:n.InsertTextFormat.Snippet})}return p}function R(e,t){return L(e,t),E(e,!0,t),p}function I(e,t){void 0===t&&(t=w);for(var i=w;i<t&&\"<\"!==v[i];)i++;var a=x(e,i),l=f(v,t,r.ScannerState.AfterAttributeName,r.TokenType.DelimiterAssign)?\"\":'=\"$1\"',c=S.toLowerCase(),d=Object.create(null);return b.forEach((function(e){e.provideAttributes(c).forEach((function(e){if(!d[e.name]){d[e.name]=!0;var t,i=e.name;\"v\"!==e.valueSet&&l.length&&(i+=l,(e.valueSet||\"style\"===e.name)&&(t={title:\"Suggest\",command:\"editor.action.triggerSuggest\"})),p.items.push({label:e.name,kind:\"handler\"===e.valueSet?n.CompletionItemKind.Function:n.CompletionItemKind.Value,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,i),insertTextFormat:n.InsertTextFormat.Snippet,command:t})}}))})),function(e,t){var i={};i[\"data-\"]='data-$1=\"$2\"',o&&o.roots.forEach((function(e){return function e(n){n.attributeNames.forEach((function(e){!s.startsWith(e,\"data-\")||i[e]||t[e]||(i[e]=e+'=\"$1\"')})),n.children.forEach((function(t){return e(t)}))}(e)}));Object.keys(i).forEach((function(t){return p.items.push({label:t,kind:n.CompletionItemKind.Value,textEdit:n.TextEdit.replace(e,i[t]),insertTextFormat:n.InsertTextFormat.Snippet})}))}(a,d),p}function C(i,r){var a,o,s,l;if(void 0===r&&(r=w),w>i&&w<=r&&(l=v[i],/^[\"']*$/.test(l))){var c=i+1,d=r;r>i&&v[r-1]===v[i]&&d--;var u=function(e,t,n){for(;t>n&&!m(e[t-1]);)t--;return t}(v,w,c),f=function(e,t,n){for(;t<n&&!m(e[t]);)t++;return t}(v,w,d);a=x(u,f),s=w>=c&&w<=d?v.substring(c,w):\"\",o=!1}else a=x(i,r),s=v.substring(i,w),o=!0;var y=S.toLowerCase(),k=T.toLowerCase();if(g.length>0)for(var L=x(i,r),M=0,E=g;M<E.length;M++){var A=E[M];A.onHtmlAttributeValue&&A.onHtmlAttributeValue({document:e,position:t,tag:y,attribute:k,value:s,range:L})}return b.forEach((function(e){e.provideValues(y,k).forEach((function(e){var t=o?'\"'+e.name+'\"':e.name;p.items.push({label:e.name,filterText:t,kind:n.CompletionItemKind.Unit,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,t),insertTextFormat:n.InsertTextFormat.PlainText})}))})),U(),p}function z(e){return w===k.getTokenEnd()&&(D=k.scan())===e&&k.getTokenOffset()===w?k.getTokenEnd():w}function H(){for(var n=0,i=g;n<i.length;n++){var r=i[n];r.onHtmlContent&&r.onHtmlContent({document:e,position:t})}return U()}function U(){for(var e=w-1,i=t.character;e>=0&&s.isLetterOrDigit(v,e);)e--,i--;if(e>=0&&\"&\"===v[e]){var r=n.Range.create(n.Position.create(t.line,i-1),t);for(var o in a.entities)if(s.endsWith(o,\";\")){var l=\"&\"+o;p.items.push({label:l,kind:n.CompletionItemKind.Keyword,documentation:u(\"entity.propose\",\"Character entity representing '\"+a.entities[o]+\"'\"),textEdit:n.TextEdit.replace(r,l),insertTextFormat:n.InsertTextFormat.PlainText})}}return p}for(var W,D=k.scan();D!==r.TokenType.EOS&&k.getTokenOffset()<=w;){switch(D){case r.TokenType.StartTagOpen:if(k.getTokenEnd()===w){var P=z(r.TokenType.StartTag);return 0===t.line&&(W=void 0,W=x(w,P),p.items.push({label:\"!DOCTYPE\",kind:n.CompletionItemKind.Property,documentation:\"A preamble for an HTML document.\",textEdit:n.TextEdit.replace(W,\"!DOCTYPE html>\"),insertTextFormat:n.InsertTextFormat.PlainText})),R(w,P)}break;case r.TokenType.StartTag:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return L(k.getTokenOffset(),k.getTokenEnd());S=k.getTokenText();break;case r.TokenType.AttributeName:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return I(k.getTokenOffset(),k.getTokenEnd());T=k.getTokenText();break;case r.TokenType.DelimiterAssign:if(k.getTokenEnd()===w){P=z(r.TokenType.AttributeValue);return C(w,P)}break;case r.TokenType.AttributeValue:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return C(k.getTokenOffset(),k.getTokenEnd());break;case r.TokenType.Whitespace:if(w<=k.getTokenEnd())switch(k.getScannerState()){case r.ScannerState.AfterOpeningStartTag:return R(k.getTokenOffset(),z(r.TokenType.StartTag));case r.ScannerState.WithinTag:case r.ScannerState.AfterAttributeName:return I(k.getTokenEnd());case r.ScannerState.BeforeAttributeValue:return C(k.getTokenEnd());case r.ScannerState.AfterOpeningEndTag:return E(k.getTokenOffset()-1,!1);case r.ScannerState.WithinContent:return H()}break;case r.TokenType.EndTagOpen:if(w<=k.getTokenEnd())return E(k.getTokenOffset()+1,!1,z(r.TokenType.EndTag));break;case r.TokenType.EndTag:if(w<=k.getTokenEnd())for(var q=k.getTokenOffset()-1;q>=0;){var O=v.charAt(q);if(\"/\"===O)return E(q,!1,k.getTokenEnd());if(!m(O))break;q--}break;case r.TokenType.StartTagClose:if(w<=k.getTokenEnd()&&S)return A(k.getTokenEnd(),S);break;case r.TokenType.Content:if(w<=k.getTokenEnd())return H();break;default:if(w<=k.getTokenEnd())return p}D=k.scan()}return p},e.prototype.doTagComplete=function(e,t,n){var a=e.offsetAt(t);if(a<=0)return null;var o=e.getText().charAt(a-1);if(\">\"===o){if((l=n.findNodeBefore(a))&&l.tag&&!c.isVoidElement(l.tag)&&l.start<a&&(!l.endTagStart||l.endTagStart>a))for(var s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.StartTagClose&&d.getTokenEnd()===a)return\"$0</\"+l.tag+\">\";s=d.scan()}}else if(\"/\"===o){for(var l=n.findNodeBefore(a);l&&l.closed;)l=l.parent;if(l&&l.tag){var d;for(s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.EndTagOpen&&d.getTokenEnd()===a)return l.tag+\">\";s=d.scan()}}}return null},e.prototype.convertCompletionList=function(e){return this.doesSupportMarkdown()||e.items.forEach((function(e){e.documentation&&\"string\"!=typeof e.documentation&&(e.documentation={kind:\"plaintext\",value:e.documentation.value})})),e},e.prototype.doesSupportMarkdown=function(){if(!d.isDefined(this.supportsMarkdown)){if(!d.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(n.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return/^\\s*$/.test(e)}function f(e,t,n,a){for(var o=i.createScanner(e,t,n),s=o.scan();s===r.TokenType.Whitespace;)s=o.scan();return s===a}t.HTMLCompletion=p})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHover\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../languageFacts/builtinDataProviders\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/builtinDataProviders\"),o=e(\"../utils/object\"),s=e(\"../languageFacts/dataProvider\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,i){var o=this.convertContents.bind(this),l=this.doesSupportMarkdown(),c=e.offsetAt(t),d=i.findNodeAt(c);if(!d||!d.tag)return null;var h=a.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)}));function u(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideTags().forEach((function(i){if(i.name.toLowerCase()===e.toLowerCase()){var a=n?\"<\"+e+\">\":\"</\"+e+\">\",o=s.generateDocumentation(i,l);o.value=\"```html\\n\"+a+\"\\n```\\n\"+o.value,r={contents:o,range:t}}})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}function p(t,i){for(var a=n.createScanner(e.getText(),i),o=a.scan();o!==r.TokenType.EOS&&(a.getTokenEnd()<c||a.getTokenEnd()===c&&o!==t);)o=a.scan();return o===t&&c<=a.getTokenEnd()?{start:e.positionAt(a.getTokenOffset()),end:e.positionAt(a.getTokenEnd())}:null}if(d.endTagStart&&c>=d.endTagStart){var m=p(r.TokenType.EndTag,d.endTagStart);return m?u(d.tag,m,!1):null}var f=p(r.TokenType.StartTag,d.start);if(f)return u(d.tag,f,!0);var g=p(r.TokenType.AttributeName,d.start);if(g)return function(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideAttributes(e).forEach((function(e){t===e.name&&e.description&&(r={contents:s.generateDocumentation(e,l),range:n})})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}(_=d.tag,e.getText(g),g);var b=p(r.TokenType.AttributeValue,d.start);if(b){var _=d.tag,v=function(e){if(e.length<=1)return e.replace(/['\"]/,\"\");\"'\"!==e[0]&&'\"'!==e[0]||(e=e.slice(1));\"'\"!==e[e.length-1]&&'\"'!==e[e.length-1]||(e=e.slice(0,-1));return e}(e.getText(b)),w=function(t,i){for(var a=n.createScanner(e.getText(),t),o=a.scan(),s=void 0;o!==r.TokenType.EOS&&a.getTokenEnd()<=i;)(o=a.scan())===r.TokenType.AttributeName&&(s=a.getTokenText());return s}(d.start,e.offsetAt(b.start));if(w)return function(e,t,n,i){e=e.toLowerCase();for(var r=function(r){var a=null;if(r.provideValues(e,t).forEach((function(e){n===e.name&&e.description&&(a={contents:s.generateDocumentation(e,l),range:i})})),a)return a.contents=o(a.contents),{value:a}},a=0,c=h;a<c.length;a++){var d=r(c[a]);if(\"object\"==typeof d)return d.value}return null}(_,w,v,b)}return null},e.prototype.convertContents=function(e){if(!this.doesSupportMarkdown()){if(\"string\"==typeof e)return e;if(\"kind\"in e)return{kind:\"plaintext\",value:e.value};if(!Array.isArray(e))return e.value;e.map((function(e){return\"string\"==typeof e?e:e.value}))}return e},e.prototype.doesSupportMarkdown=function(){if(!o.isDefined(this.supportsMarkdown)){if(!o.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(i.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.HTMLHover=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/beautify/beautify\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.js_beautify=function(e,t){return e}})),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=15)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},,,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},,,,,function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},,function(e,t,n){var i=n(16).Beautifier,r=n(17).Options;e.exports=function(e,t){return new i(e,t).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(17).Options,r=n(2).Output,a=n(8).InputScanner,o=new(0,n(13).Directives)(/\\/\\*/,/\\*\\//),s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=/\\s/,d=/(?:\\s|\\n)+/g,h=/\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g,u=/\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;function p(e,t){this._source_text=e||\"\",this._options=new i(t),this._ch=null,this._input=null,this.NESTED_AT_RULE={\"@page\":!0,\"@font-face\":!0,\"@keyframes\":!0,\"@media\":!0,\"@supports\":!0,\"@document\":!0},this.CONDITIONAL_GROUP_RULE={\"@media\":!0,\"@supports\":!0,\"@document\":!0}}p.prototype.eatString=function(e){var t=\"\";for(this._ch=this._input.next();this._ch;){if(t+=this._ch,\"\\\\\"===this._ch)t+=this._input.next();else if(-1!==e.indexOf(this._ch)||\"\\n\"===this._ch)break;this._ch=this._input.next()}return t},p.prototype.eatWhitespace=function(e){for(var t=c.test(this._input.peek()),n=!0;c.test(this._input.peek());)this._ch=this._input.next(),e&&\"\\n\"===this._ch&&(this._options.preserve_newlines||n)&&(n=!1,this._output.add_new_line(!0));return t},p.prototype.foundNestedPseudoClass=function(){for(var e=0,t=1,n=this._input.peek(t);n;){if(\"{\"===n)return!0;if(\"(\"===n)e+=1;else if(\")\"===n){if(0===e)return!1;e-=1}else if(\";\"===n||\"}\"===n)return!1;t++,n=this._input.peek(t)}return!1},p.prototype.print_string=function(e){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(e)},p.prototype.preserveSingleSpace=function(e){e&&(this._output.space_before_token=!0)},p.prototype.indent=function(){this._indentLevel++},p.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===t&&(t=\"\\n\",e&&s.test(e||\"\")&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0];this._output=new r(this._options,n),this._input=new a(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var i,p,m=0,f=!1,g=!1,b=!1,_=!1,v=!1,w=this._ch;i=\"\"!==this._input.read(d),p=w,this._ch=this._input.next(),\"\\\\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),w=this._ch,this._ch;)if(\"/\"===this._ch&&\"*\"===this._input.peek()){this._output.add_new_line(),this._input.back();var y=this._input.read(h),T=o.get_directives(y);T&&\"start\"===T.ignore&&(y+=o.readIgnored(this._input)),this.print_string(y),this.eatWhitespace(!0),this._output.add_new_line()}else if(\"/\"===this._ch&&\"/\"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if(\"@\"===this._ch)if(this.preserveSingleSpace(i),\"{\"===this._input.peek())this.print_string(this._ch+this.eatString(\"}\"));else{this.print_string(this._ch);var k=this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);k.match(/[ :]$/)&&(k=this.eatString(\": \").replace(/\\s$/,\"\"),this.print_string(k),this._output.space_before_token=!0),\"extend\"===(k=k.replace(/\\s$/,\"\"))?_=!0:\"import\"===k&&(v=!0),k in this.NESTED_AT_RULE?(this._nestedLevel+=1,k in this.CONDITIONAL_GROUP_RULE&&(b=!0)):f||0!==m||-1===k.indexOf(\":\")||(g=!0,this.indent())}else\"#\"===this._ch&&\"{\"===this._input.peek()?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(\"}\"))):\"{\"===this._ch?(g&&(g=!1,this.outdent()),this.indent(),this._output.space_before_token=!0,this.print_string(this._ch),b?(b=!1,f=this._indentLevel>this._nestedLevel):f=this._indentLevel>=this._nestedLevel,this._options.newline_between_rules&&f&&this._output.previous_line&&\"{\"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above(\"/\",\",\"),this.eatWhitespace(!0),this._output.add_new_line()):\"}\"===this._ch?(this.outdent(),this._output.add_new_line(),\"{\"===p&&this._output.trim(!0),v=!1,_=!1,g&&(this.outdent(),g=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&\"}\"!==this._input.peek()&&this._output.add_new_line(!0)):\":\"===this._ch?!f&&!b||this._input.lookBack(\"&\")||this.foundNestedPseudoClass()||this._input.lookBack(\"(\")||_||0!==m?(this._input.lookBack(\" \")&&(this._output.space_before_token=!0),\":\"===this._input.peek()?(this._ch=this._input.next(),this.print_string(\"::\")):this.print_string(\":\")):(this.print_string(\":\"),g||(g=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):'\"'===this._ch||\"'\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):\";\"===this._ch?0===m?(g&&(this.outdent(),g=!1),_=!1,v=!1,this.print_string(this._ch),this.eatWhitespace(!0),\"/\"!==this._input.peek()&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):\"(\"===this._ch?this._input.lookBack(\"url\")?(this.print_string(this._ch),this.eatWhitespace(),m++,this.indent(),this._ch=this._input.next(),\")\"===this._ch||'\"'===this._ch||\"'\"===this._ch?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(\")\")),m&&(m--,this.outdent()))):(this.preserveSingleSpace(i),this.print_string(this._ch),this.eatWhitespace(),m++,this.indent()):\")\"===this._ch?(m&&(m--,this.outdent()),this.print_string(this._ch)):\",\"===this._ch?(this.print_string(this._ch),this.eatWhitespace(!0),!this._options.selector_separator_newline||g||0!==m||v?this._output.space_before_token=!0:this._output.add_new_line()):\">\"!==this._ch&&\"+\"!==this._ch&&\"~\"!==this._ch||g||0!==m?\"]\"===this._ch?this.print_string(this._ch):\"[\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch)):\"=\"===this._ch?(this.eatWhitespace(),this.print_string(\"=\"),c.test(this._ch)&&(this._ch=\"\")):\"!\"!==this._ch||this._input.lookBack(\"\\\\\")?(this.preserveSingleSpace(i),this.print_string(this._ch)):(this.print_string(\" \"),this.print_string(this._ch)):this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&c.test(this._ch)&&(this._ch=\"\"));return this._output.get_code(t)},e.exports.Beautifier=p},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"css\"),this.selector_separator_newline=this._get_boolean(\"selector_separator_newline\",!0),this.newline_between_rules=this._get_boolean(\"newline_between_rules\",!0);var t=this._get_boolean(\"space_around_selector_separator\");this.space_around_combinator=this._get_boolean(\"space_around_combinator\")||t}r.prototype=new i,e.exports.Options=r}]);\"function\"==typeof define&&define.amd?define(\"vscode-html-languageservice/beautify/beautify-css\",[],(function(){return{css_beautify:e}})):\"undefined\"!=typeof exports?exports.css_beautify=e:\"undefined\"!=typeof window?window.css_beautify=e:\"undefined\"!=typeof global&&(global.css_beautify=e)}(),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=18)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},function(e,t,n){e.exports.Token=function(e,t,n,i){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||\"\",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}},,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},function(e,t,n){var i=n(8).InputScanner,r=n(3).Token,a=n(10).TokenStream,o=n(11).WhitespacePattern,s={START:\"TK_START\",RAW:\"TK_RAW\",EOF:\"TK_EOF\"},l=function(e,t){this._input=new i(e),this._options=t||{},this.__tokens=null,this._patterns={},this._patterns.whitespace=new o(this._input)};l.prototype.tokenize=function(){var e;this._input.restart(),this.__tokens=new a,this._reset();for(var t=new r(s.START,\"\"),n=null,i=[],o=new a;t.type!==s.EOF;){for(e=this._get_next_token(t,n);this._is_comment(e);)o.add(e),e=this._get_next_token(t,n);o.isEmpty()||(e.comments_before=o,o=new a),e.parent=n,this._is_opening(e)?(i.push(n),n=e):n&&this._is_closing(e,n)&&(e.opened=n,n.closed=e,n=i.pop(),e.parent=n),e.previous=t,t.next=e,this.__tokens.add(e),t=e}return this.__tokens},l.prototype._is_first_token=function(){return this.__tokens.isEmpty()},l.prototype._reset=function(){},l.prototype._get_next_token=function(e,t){this._readWhitespace();var n=this._input.read(/.+/g);return n?this._create_token(s.RAW,n):this._create_token(s.EOF,\"\")},l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return!1},l.prototype._is_closing=function(e,t){return!1},l.prototype._create_token=function(e,t){return new r(e,t,this._patterns.whitespace.newline_count,this._patterns.whitespace.whitespace_before_token)},l.prototype._readWhitespace=function(){return this._patterns.whitespace.read()},e.exports.Tokenizer=l,e.exports.TOKEN=s},function(e,t,n){function i(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}i.prototype.restart=function(){this.__position=0},i.prototype.isEmpty=function(){return 0===this.__tokens_length},i.prototype.hasNext=function(){return this.__position<this.__tokens_length},i.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__tokens[this.__position],this.__position+=1),e},i.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__tokens_length&&(t=this.__tokens[e]),t},i.prototype.add=function(e){this.__parent_token&&(e.parent=this.__parent_token),this.__tokens.push(e),this.__tokens_length+=1},e.exports.TokenStream=i},function(e,t,n){var i=n(12).Pattern;function r(e,t){i.call(this,e,t),t?this._line_regexp=this._input.get_regexp(t._line_regexp):this.__set_whitespace_patterns(\"\",\"\"),this.newline_count=0,this.whitespace_before_token=\"\"}r.prototype=new i,r.prototype.__set_whitespace_patterns=function(e,t){e+=\"\\\\t \",t+=\"\\\\n\\\\r\",this._match_pattern=this._input.get_regexp(\"[\"+e+t+\"]+\",!0),this._newline_regexp=this._input.get_regexp(\"\\\\r\\\\n|[\"+t+\"]\")},r.prototype.read=function(){this.newline_count=0,this.whitespace_before_token=\"\";var e=this._input.read(this._match_pattern);if(\" \"===e)this.whitespace_before_token=\" \";else if(e){var t=this.__split(this._newline_regexp,e);this.newline_count=t.length-1,this.whitespace_before_token=t[this.newline_count]}return e},r.prototype.matching=function(e,t){var n=this._create();return n.__set_whitespace_patterns(e,t),n._update(),n},r.prototype._create=function(){return new r(this._input,this)},r.prototype.__split=function(e,t){e.lastIndex=0;for(var n=0,i=[],r=e.exec(t);r;)i.push(t.substring(n,r.index)),n=r.index+r[0].length,r=e.exec(t);return n<t.length?i.push(t.substring(n,t.length)):i.push(\"\"),i},e.exports.WhitespacePattern=r},function(e,t,n){function i(e,t){this._input=e,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,t&&(this._starting_pattern=this._input.get_regexp(t._starting_pattern,!0),this._match_pattern=this._input.get_regexp(t._match_pattern,!0),this._until_pattern=this._input.get_regexp(t._until_pattern),this._until_after=t._until_after)}i.prototype.read=function(){var e=this._input.read(this._starting_pattern);return this._starting_pattern&&!e||(e+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),e},i.prototype.read_match=function(){return this._input.match(this._match_pattern)},i.prototype.until_after=function(e){var t=this._create();return t._until_after=!0,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.until=function(e){var t=this._create();return t._until_after=!1,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.starting_with=function(e){var t=this._create();return t._starting_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype.matching=function(e){var t=this._create();return t._match_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype._create=function(){return new i(this._input,this)},i.prototype._update=function(){},e.exports.Pattern=i},function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},function(e,t,n){var i=n(12).Pattern,r={django:!1,erb:!1,handlebars:!1,php:!1};function a(e,t){i.call(this,e,t),this.__template_pattern=null,this._disabled=Object.assign({},r),this._excluded=Object.assign({},r),t&&(this.__template_pattern=this._input.get_regexp(t.__template_pattern),this._excluded=Object.assign(this._excluded,t._excluded),this._disabled=Object.assign(this._disabled,t._disabled));var n=new i(e);this.__patterns={handlebars_comment:n.starting_with(/{{!--/).until_after(/--}}/),handlebars_unescaped:n.starting_with(/{{{/).until_after(/}}}/),handlebars:n.starting_with(/{{/).until_after(/}}/),php:n.starting_with(/<\\?(?:[=]|php)/).until_after(/\\?>/),erb:n.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:n.starting_with(/{%/).until_after(/%}/),django_value:n.starting_with(/{{/).until_after(/}}/),django_comment:n.starting_with(/{#/).until_after(/#}/)}}a.prototype=new i,a.prototype._create=function(){return new a(this._input,this)},a.prototype._update=function(){this.__set_templated_pattern()},a.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},a.prototype.read_options=function(e){var t=this._create();for(var n in r)t._disabled[n]=-1===e.templating.indexOf(n);return t._update(),t},a.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},a.prototype.read=function(){var e=\"\";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var t=this._read_template();t;)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},a.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp(\"(?:\"+e.join(\"|\")+\")\")},a.prototype._read_template=function(){var e=\"\",t=this._input.peek();if(\"<\"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||\"?\"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||\"%\"!==n||(e=e||this.__patterns.erb.read())}else\"{\"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=(e=(e=e||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=(e=e||this.__patterns.django_comment.read())||this.__patterns.django.read())));return e},e.exports.TemplatablePattern=a},,,,function(e,t,n){var i=n(19).Beautifier,r=n(20).Options;e.exports=function(e,t,n,r){return new i(e,t,n,r).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(20).Options,r=n(2).Output,a=n(21).Tokenizer,o=n(21).TOKEN,s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=function(e,t){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new r(e,t)};c.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},c.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},c.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},c.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},c.prototype.print_preserved_newlines=function(e){var t=0;e.type!==o.TEXT&&e.previous.type!==o.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines<this.max_preserve_newlines+1?e.newlines:this.max_preserve_newlines+1);for(var n=0;n<t;n++)this.print_newline(n>0);return 0!==t},c.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},c.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},c.prototype.print_newline=function(e){this._output.add_new_line(e)},c.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},c.prototype.indent=function(){this.indent_level++},c.prototype.get_full_indent=function(e){return(e=this.indent_level+(e||0))<1?\"\":this._output.get_indent_string(e)};var d=function(e,t){var n=null,i=null;return t.closed?(\"script\"===e?n=\"text/javascript\":\"style\"===e&&(n=\"text/css\"),(n=function(e){for(var t=null,n=e.next;n.type!==o.EOF&&e.closed!==n;){if(n.type===o.ATTRIBUTE&&\"type\"===n.text){n.next&&n.next.type===o.EQUALS&&n.next.next&&n.next.next.type===o.VALUE&&(t=n.next.next.text);break}n=n.next}return t}(t)||n).search(\"text/css\")>-1?i=\"css\":n.search(/(text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect)/)>-1?i=\"javascript\":n.search(/(text|application|dojo)\\/(x-)?(html)/)>-1?i=\"html\":n.search(/test\\/null/)>-1&&(i=\"null\"),i):null};function h(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:\"\",this.indent_level=n||0,this.parser_token=t||null}function p(e){this._printer=e,this._current_frame=null}function m(e,t,n,r){this._source_text=e||\"\",t=t||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var a=new i(t,\"html\");this._options=a,this._is_wrap_attributes_force=\"force\"===this._options.wrap_attributes.substr(0,\"force\".length),this._is_wrap_attributes_force_expand_multiline=\"force-expand-multiline\"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned=\"force-aligned\"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple=\"aligned-multiple\"===this._options.wrap_attributes,this._is_wrap_attributes_preserve=\"preserve\"===this._options.wrap_attributes.substr(0,\"preserve\".length),this._is_wrap_attributes_preserve_aligned=\"preserve-aligned\"===this._options.wrap_attributes}p.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},p.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},p.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},p.prototype._get_frame=function(e,t){for(var n=this._current_frame;n&&-1===e.indexOf(n.tag);){if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},p.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},p.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},m.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===this._options.eol&&(t=\"\\n\",e&&s.test(e)&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0],i={text:\"\",type:\"\"},r=new f,d=new c(this._options,n),h=new a(e,this._options).tokenize();this._tag_stack=new p(d);for(var u=null,m=h.next();m.type!==o.EOF;)m.type===o.TAG_OPEN||m.type===o.COMMENT?r=u=this._handle_tag_open(d,m,r,i):m.type===o.ATTRIBUTE||m.type===o.EQUALS||m.type===o.VALUE||m.type===o.TEXT&&!r.tag_complete?u=this._handle_inside_tag(d,m,r,h):m.type===o.TAG_CLOSE?u=this._handle_tag_close(d,m,r):m.type===o.TEXT?u=this._handle_text(d,m,r):d.add_raw_token(m),i=u,m=h.next();return d._output.get_code(t)},m.prototype._handle_tag_close=function(e,t,n){var i={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):(\"<\"===n.tag_start_char&&(e.set_space_before_token(\"/\"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),i},m.prototype._handle_inside_tag=function(e,t,n,i){var r=n.has_wrapped_attrs,a={text:t.text,type:t.type};if(e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted)e.add_raw_token(t);else if(\"{\"===n.tag_start_char&&t.type===o.TEXT)e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t);else{if(t.type===o.ATTRIBUTE?(e.set_space_before_token(!0),n.attr_count+=1):t.type===o.EQUALS?e.set_space_before_token(!1):t.type===o.VALUE&&t.previous.type===o.EQUALS&&e.set_space_before_token(!1),t.type===o.ATTRIBUTE&&\"<\"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),r=r||0!==t.newlines),this._is_wrap_attributes_force)){var s=n.attr_count>1;if(this._is_wrap_attributes_force_expand_multiline&&1===n.attr_count){var l,c=!0,d=0;do{if((l=i.peek(d)).type===o.ATTRIBUTE){c=!1;break}d+=1}while(d<4&&l.type!==o.EOF&&l.type!==o.TAG_CLOSE);s=!c}s&&(e.print_newline(!1),r=!0)}e.print_token(t),r=r||e.previous_token_wrapped(),n.has_wrapped_attrs=r}return a},m.prototype._handle_text=function(e,t,n){var i={text:t.text,type:\"TK_CONTENT\"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),i},m.prototype._print_custom_beatifier_text=function(e,t,n){var i=this;if(\"\"!==t.text){var r,a=t.text,o=1,s=\"\",l=\"\";\"javascript\"===n.custom_beautifier_name&&\"function\"==typeof this._js_beautify?r=this._js_beautify:\"css\"===n.custom_beautifier_name&&\"function\"==typeof this._css_beautify?r=this._css_beautify:\"html\"===n.custom_beautifier_name&&(r=function(e,t){return new m(e,t,i._js_beautify,i._css_beautify).beautify()}),\"keep\"===this._options.indent_scripts?o=0:\"separate\"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(a=a.replace(/\\n[ \\t]*$/,\"\"),\"html\"!==n.custom_beautifier_name&&\"<\"===a[0]&&a.match(/^(<!--|<!\\[CDATA\\[)/)){var d=/^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(a);if(!d)return void e.add_raw_token(t);s=c+d[1]+\"\\n\",a=d[4],d[5]&&(l=c+d[5]),a=a.replace(/\\n[ \\t]*$/,\"\"),(d[2]||-1!==d[3].indexOf(\"\\n\"))&&(d=d[3].match(/[ \\t]+$/))&&(t.whitespace_before=d[0])}if(a)if(r){var h=function(){this.eol=\"\\n\"};h.prototype=this._options.raw_options,a=r(c+a,new h)}else{var u=t.whitespace_before;u&&(a=a.replace(new RegExp(\"\\n(\"+u+\")?\",\"g\"),\"\\n\")),a=c+a.replace(/\\n/g,\"\\n\"+c)}s&&(a=a?s+a+\"\\n\"+l:s+l),e.print_newline(!1),a&&(t.text=a,t.whitespace_before=\"\",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},m.prototype._handle_tag_open=function(e,t,n,i){var r=this._get_tag_open_token(t);return(n.is_unformatted||n.is_content_unformatted)&&t.type===o.TAG_OPEN&&0===t.text.indexOf(\"</\")?e.add_raw_token(t):(e.traverse_whitespace(t),this._set_tag_position(e,t,r,n,i),r.is_inline_element||e.set_wrap_point(),e.print_token(t)),(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(r.alignment_size=t.text.length+1),r.tag_complete||r.is_unformatted||(e.alignment_size=r.alignment_size),r};var f=function(e,t){var n;(this.parent=e||null,this.text=\"\",this.type=\"TK_TAG_OPEN\",this.tag_name=\"\",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char=\"\",this.tag_check=\"\",t)?(this.tag_start_char=t.text[0],this.text=t.text,\"<\"===this.tag_start_char?(n=t.text.match(/^<([^\\s>]*)/),this.tag_check=n?n[1]:\"\"):(n=t.text.match(/^{{[#\\^]?([^\\s}]+)/),this.tag_check=n?n[1]:\"\"),this.tag_check=this.tag_check.toLowerCase(),t.type===o.COMMENT&&(this.tag_complete=!0),this.is_start_tag=\"/\"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&\"/>\"===t.closed.text,this.is_end_tag=this.is_end_tag||\"{\"===this.tag_start_char&&(this.text.length<3||/[^#\\^]/.test(this.text.charAt(2)))):this.tag_complete=!0};m.prototype._get_tag_open_token=function(e){var t=new f(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||h(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&h(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&h(t.tag_check,this._options.content_unformatted),t.is_inline_element=h(t.tag_name,this._options.inline)||\"{\"===t.tag_start_char,t},m.prototype._set_tag_position=function(e,t,n,i,r){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1))),this._tag_stack.record_tag(n),\"script\"!==n.tag_name&&\"style\"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=d(n.tag_check,t)))),h(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if(\"{\"===n.tag_start_char&&\"else\"===n.tag_check)this._tag_stack.indent_to_tag([\"if\",\"unless\",\"each\"]),n.indent_content=!0,e.current_line_has_match(/{{#if/)||e.print_newline(!1);\"!--\"===n.tag_name&&r.type===o.TAG_CLOSE&&i.is_end_tag&&-1===n.text.indexOf(\"\\n\")||n.is_inline_element||n.is_unformatted||e.print_newline(!1)}else n.is_unformatted||n.is_content_unformatted?n.is_inline_element||n.is_unformatted||e.print_newline(!1):n.is_end_tag?(n.start_tag_token&&n.start_tag_token.multiline_content||!(n.is_inline_element||i.is_inline_element||r.type===o.TAG_CLOSE&&n.start_tag_token===i||\"TK_CONTENT\"===r.type))&&e.print_newline(!1):(n.indent_content=!n.custom_beautifier_name,\"<\"===n.tag_start_char&&(\"html\"===n.tag_name?n.indent_content=this._options.indent_inner_html:\"head\"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:\"body\"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||\"TK_CONTENT\"===r.type||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1)))},m.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent)return\"body\"===e.tag_name?t=t||this._tag_stack.try_pop(\"head\"):\"li\"===e.tag_name?t=t||this._tag_stack.try_pop(\"li\",[\"ol\",\"ul\"]):\"dd\"===e.tag_name||\"dt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"dt\",[\"dl\"]))||this._tag_stack.try_pop(\"dd\",[\"dl\"]):\"rp\"===e.tag_name||\"rt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"rt\",[\"ruby\",\"rtc\"]))||this._tag_stack.try_pop(\"rp\",[\"ruby\",\"rtc\"]):\"optgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"optgroup\",[\"select\"]):\"option\"===e.tag_name?t=t||this._tag_stack.try_pop(\"option\",[\"select\",\"datalist\",\"optgroup\"]):\"colgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]):\"thead\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]):\"tbody\"===e.tag_name||\"tfoot\"===e.tag_name?t=(t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"thead\",[\"table\"]))||this._tag_stack.try_pop(\"tbody\",[\"table\"]):\"tr\"===e.tag_name?t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"tr\",[\"table\",\"thead\",\"tbody\",\"tfoot\"]):\"th\"!==e.tag_name&&\"td\"!==e.tag_name||(t=(t=t||this._tag_stack.try_pop(\"td\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"]))||this._tag_stack.try_pop(\"th\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"])),e.parent=this._tag_stack.get_parser_token(),t},e.exports.Beautifier=m},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"html\"),1===this.templating.length&&\"auto\"===this.templating[0]&&(this.templating=[\"django\",\"erb\",\"handlebars\",\"php\"]),this.indent_inner_html=this._get_boolean(\"indent_inner_html\"),this.indent_body_inner_html=this._get_boolean(\"indent_body_inner_html\",!0),this.indent_head_inner_html=this._get_boolean(\"indent_head_inner_html\",!0),this.indent_handlebars=this._get_boolean(\"indent_handlebars\",!0),this.wrap_attributes=this._get_selection(\"wrap_attributes\",[\"auto\",\"force\",\"force-aligned\",\"force-expand-multiline\",\"aligned-multiple\",\"preserve\",\"preserve-aligned\"]),this.wrap_attributes_indent_size=this._get_number(\"wrap_attributes_indent_size\",this.indent_size),this.extra_liners=this._get_array(\"extra_liners\",[\"head\",\"body\",\"/html\"]),this.inline=this._get_array(\"inline\",[\"a\",\"abbr\",\"area\",\"audio\",\"b\",\"bdi\",\"bdo\",\"br\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"map\",\"mark\",\"math\",\"meter\",\"noscript\",\"object\",\"output\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"select\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"var\",\"video\",\"wbr\",\"text\",\"acronym\",\"big\",\"strike\",\"tt\"]),this.void_elements=this._get_array(\"void_elements\",[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"!doctype\",\"?xml\",\"basefont\",\"isindex\"]),this.unformatted=this._get_array(\"unformatted\",[]),this.content_unformatted=this._get_array(\"content_unformatted\",[\"pre\",\"textarea\"]),this.unformatted_content_delimiter=this._get_characters(\"unformatted_content_delimiter\"),this.indent_scripts=this._get_selection(\"indent_scripts\",[\"normal\",\"keep\",\"separate\"])}r.prototype=new i,e.exports.Options=r},function(e,t,n){var i=n(9).Tokenizer,r=n(9).TOKEN,a=n(13).Directives,o=n(14).TemplatablePattern,s=n(12).Pattern,l={TAG_OPEN:\"TK_TAG_OPEN\",TAG_CLOSE:\"TK_TAG_CLOSE\",ATTRIBUTE:\"TK_ATTRIBUTE\",EQUALS:\"TK_EQUALS\",VALUE:\"TK_VALUE\",COMMENT:\"TK_COMMENT\",TEXT:\"TK_TEXT\",UNKNOWN:\"TK_UNKNOWN\",START:r.START,RAW:r.RAW,EOF:r.EOF},c=new a(/<\\!--/,/-->/),d=function(e,t){i.call(this,e,t),this._current_tag_name=\"\";var n=new o(this._input).read_options(this._options),r=new s(this._input);if(this.__patterns={word:n.until(/[\\n\\r\\t <]/),single_quote:n.until_after(/'/),double_quote:n.until_after(/\"/),attribute:n.until(/[\\n\\r\\t =\\/>]/),element_name:n.until(/[\\n\\r\\t >\\/]/),handlebars_comment:r.starting_with(/{{!--/).until_after(/--}}/),handlebars:r.starting_with(/{{/).until_after(/}}/),handlebars_open:r.until(/[\\n\\r\\t }]/),handlebars_raw_close:r.until(/}}/),comment:r.starting_with(/<!--/).until_after(/-->/),cdata:r.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),conditional_comment:r.starting_with(/<!\\[/).until_after(/]>/),processing:r.starting_with(/<\\?/).until_after(/\\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude(\"handlebars\")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=r.matching(a).until_after(a)}};(d.prototype=new i)._is_comment=function(e){return!1},d.prototype._is_opening=function(e){return e.type===l.TAG_OPEN},d.prototype._is_closing=function(e,t){return e.type===l.TAG_CLOSE&&t&&((\">\"===e.text||\"/>\"===e.text)&&\"<\"===t.text[0]||\"}}\"===e.text&&\"{\"===t.text[0]&&\"{\"===t.text[1])},d.prototype._reset=function(){this._current_tag_name=\"\"},d.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(l.EOF,\"\"):n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,t))||this._read_attribute(i,e,t))||this._read_raw_content(i,e,t))||this._read_close(i,t))||this._read_content_word(i))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,t))||this._create_token(l.UNKNOWN,this._input.next())},d.prototype._read_comment_or_cdata=function(e){var t=null,n=null,i=null;\"<\"===e&&(\"!\"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=c.get_directives(n))&&\"start\"===i.ignore&&(n+=c.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=i));return t},d.prototype._read_processing=function(e){var t=null,n=null;if(\"<\"===e){var i=this._input.peek(1);\"!\"!==i&&\"?\"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=null)}return t},d.prototype._read_open=function(e,t){var n=null,i=null;return t||\"<\"===e&&(n=this._input.next(),\"/\"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(l.TAG_OPEN,n)),i},d.prototype._read_open_handlebars=function(e,t){var n=null,i=null;return t||this._options.indent_handlebars&&\"{\"===e&&\"{\"===this._input.peek(1)&&(\"!\"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(l.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(l.TAG_OPEN,n))),i},d.prototype._read_close=function(e,t){var n=null,i=null;return t&&(\"<\"===t.text[0]&&(\">\"===e||\"/\"===e&&\">\"===this._input.peek(1))?(n=this._input.next(),\"/\"===e&&(n+=this._input.next()),i=this._create_token(l.TAG_CLOSE,n)):\"{\"===t.text[0]&&\"}\"===e&&\"}\"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(l.TAG_CLOSE,\"}}\"))),i},d.prototype._read_attribute=function(e,t,n){var i=null,r=\"\";if(n&&\"<\"===n.text[0])if(\"=\"===e)i=this._create_token(l.EQUALS,this._input.next());else if('\"'===e||\"'\"===e){var a=this._input.next();a+='\"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(l.VALUE,a)}else(r=this.__patterns.attribute.read())&&(i=t.type===l.EQUALS?this._create_token(l.VALUE,r):this._create_token(l.ATTRIBUTE,r));return i},d.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},d.prototype._read_raw_content=function(e,t,n){var i=\"\";if(n&&\"{\"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(t.type===l.TAG_CLOSE&&\"<\"===t.opened.text[0]){var r=t.opened.text.substr(1).toLowerCase();if(\"script\"===r||\"style\"===r){var a=this._read_comment_or_cdata(e);if(a)return a.type=l.TEXT,a;i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\")))}return i?this._create_token(l.TEXT,i):null},d.prototype._read_content_word=function(e){var t=\"\";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(l.TEXT,t)},e.exports.Tokenizer=d,e.exports.TOKEN=l}]);if(\"function\"==typeof define&&define.amd)define(\"vscode-html-languageservice/beautify/beautify-html\",[\"require\",\"./beautify\",\"./beautify-css\"],(function(t){var n=t(\"./beautify\"),i=t(\"./beautify-css\");return{html_beautify:function(t,r){return e(t,r,n.js_beautify,i.css_beautify)}}}));else if(\"undefined\"!=typeof exports){var t=require(\"./beautify.js\"),n=require(\"./beautify-css.js\");exports.html_beautify=function(i,r){return e(i,r,t.js_beautify,n.css_beautify)}}else\"undefined\"!=typeof window?window.html_beautify=function(t,n){return e(t,n,window.js_beautify,window.css_beautify)}:\"undefined\"!=typeof global&&(global.html_beautify=function(t,n){return e(t,n,global.js_beautify,global.css_beautify)})}(),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFormatter\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../beautify/beautify-html\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../beautify/beautify-html\"),r=e(\"../utils/strings\");function a(e,t,n){if(e&&e.hasOwnProperty(t)){var i=e[t];if(null!==i)return i}return n}function o(e,t,n){var i=a(e,t,null);return\"string\"==typeof i?i.length>0?i.split(\",\").map((function(e){return e.trim().toLowerCase()})):[]:n}function s(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}function l(e,t){return-1!==\" \\t\".indexOf(e.charAt(t))}t.format=function(e,t,c){var d=e.getText(),h=!0,u=0,p=c.tabSize||4;if(t){for(var m=e.offsetAt(t.start),f=m;f>0&&l(d,f-1);)f--;0===f||s(d,f-1)?m=f:f<m&&(m=f+1);for(var g=e.offsetAt(t.end),b=g;b<d.length&&l(d,b);)b++;(b===d.length||s(d,b))&&(g=b),t=n.Range.create(e.positionAt(m),e.positionAt(g));var _=d.substring(0,m);if(new RegExp(/.*[<][^>]*$/).test(_))return[{range:t,newText:d=d.substring(m,g)}];if(h=g===d.length,d=d.substring(m,g),0!==m){var v=e.offsetAt(n.Position.create(t.start.line,0));u=function(e,t,n){var i=t,r=0,a=n.tabSize||4;for(;i<e.length;){var o=e.charAt(i);if(\" \"===o)r++;else{if(\"\\t\"!==o)break;r+=a}i++}return Math.floor(r/a)}(e.getText(),v,c)}}else t=n.Range.create(n.Position.create(0,0),e.positionAt(d.length));var w={indent_size:p,indent_char:c.insertSpaces?\" \":\"\\t\",indent_empty_lines:a(c,\"indentEmptyLines\",!1),wrap_line_length:a(c,\"wrapLineLength\",120),unformatted:o(c,\"unformatted\",void 0),content_unformatted:o(c,\"contentUnformatted\",void 0),indent_inner_html:a(c,\"indentInnerHtml\",!1),preserve_newlines:a(c,\"preserveNewLines\",!0),max_preserve_newlines:a(c,\"maxPreserveNewLines\",32786),indent_handlebars:a(c,\"indentHandlebars\",!1),end_with_newline:h&&a(c,\"endWithNewline\",!1),extra_liners:o(c,\"extraLiners\",void 0),wrap_attributes:a(c,\"wrapAttributes\",\"auto\"),wrap_attributes_indent_size:a(c,\"wrapAttributesIndentSize\",void 0),eol:\"\\n\"},y=i.html_beautify(d.replace(/^\\s+/,\"\"),w);if(u>0){var T=c.insertSpaces?r.repeat(\" \",p*u):r.repeat(\"\\t\",u);y=y.split(\"\\n\").join(\"\\n\"+T),0===t.start.character&&(y=T+y)}return[{range:t,newText:y}]}}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)i=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var r=navigator.userAgent;i=r.indexOf(\"Windows\")>=0}var a=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,i,r,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=i||\"\",this.fragment=r||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!a.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,a=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===i?i=this.path:null===i&&(i=\"\"),void 0===r?r=this.query:null===r&&(r=\"\"),void 0===a?a=this.fragment:null===a&&(a=\"\"),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&a===this.fragment?this:new u(t,n,i,r,a)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new u(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new u(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(i&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new u(\"file\",t,e,\"\",\"\")},e.from=function(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new u(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=d;var h=i?1:void 0,u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function m(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var a=e.charCodeAt(r);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var o=p[a];void 0!==o?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=o):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=p[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,i&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:m,i=\"\",r=e.scheme,a=e.authority,o=e.path,s=e.query,c=e.fragment;if(r&&(i+=r,i+=\":\"),(a||\"file\"===r)&&(i+=l,i+=l),a){var d=a.indexOf(\"@\");if(-1!==d){var h=a.substr(0,d);a=a.substr(d+1),-1===(d=h.indexOf(\":\"))?i+=n(h,!1):(i+=n(h.substr(0,d),!1),i+=\":\",i+=n(h.substr(d+1),!1)),i+=\"@\"}-1===(d=(a=a.toLowerCase()).indexOf(\":\"))?i+=n(a,!1):(i+=n(a.substr(0,d),!1),i+=a.substr(d))}if(o){if(o.length>=3&&47===o.charCodeAt(0)&&58===o.charCodeAt(2))(u=o.charCodeAt(1))>=65&&u<=90&&(o=\"/\"+String.fromCharCode(u+32)+\":\"+o.substr(3));else if(o.length>=2&&58===o.charCodeAt(1)){var u;(u=o.charCodeAt(0))>=65&&u<=90&&(o=String.fromCharCode(u+32)+\":\"+o.substr(2))}i+=n(o,!0)}return s&&(i+=\"?\",i+=n(s,!1)),c&&(i+=\"#\",i+=t?c:m(c,!1)),i}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlLinks\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../utils/strings\",\"vscode-uri\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../utils/strings\"),a=e(\"vscode-uri\"),o=e(\"../htmlLanguageTypes\");function s(e){var t=e[0];return t!==e[e.length-1]||\"'\"!==t&&'\"'!==t||(e=e.substr(1,e.length-2)),e}function l(e,t,n,o,l,c){var d=s(n);if(h=d,u=e.languageId,h.length&&(\"handlebars\"!==u||!/{{.*}}/.test(h))&&/\\b(w[\\w\\d+.-]*:\\/\\/)?[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|\\/?))/.test(h)){var h,u;d.length<n.length&&(o++,l--);var p=function(e,t,n,i){if(!/^\\s*javascript\\:/i.test(t)&&!/[\\n\\r]/.test(t))return t=t.replace(/^\\s*/g,\"\"),/^https?:\\/\\//i.test(t)||/^file:\\/\\//i.test(t)?t:/^\\#/i.test(t)?e+t:/^\\/\\//i.test(t)?(r.startsWith(e,\"https://\")?\"https\":\"http\")+\":\"+t.replace(/^\\s*/g,\"\"):n?n.resolveReference(t,i||e):t}(e.uri,d,t,c);if(p&&function(e){try{return a.URI.parse(e),!0}catch(e){return!1}}(p))return{range:i.Range.create(e.positionAt(o),e.positionAt(l)),target:p}}}t.findDocumentLinks=function(e,t){for(var i=[],a=n.createScanner(e.getText(),0),c=a.scan(),d=void 0,h=!1,u=void 0,p={};c!==o.TokenType.EOS;){switch(c){case o.TokenType.StartTag:if(!u)h=\"base\"===a.getTokenText().toLowerCase();break;case o.TokenType.AttributeName:d=a.getTokenText().toLowerCase();break;case o.TokenType.AttributeValue:if(\"src\"===d||\"href\"===d){var m=a.getTokenText();if(!h)(b=l(e,t,m,a.getTokenOffset(),a.getTokenEnd(),u))&&i.push(b);h&&void 0===u&&(u=s(m))&&t&&(u=t.resolveReference(u,e.uri)),h=!1,d=void 0}else if(\"id\"===d){p[s(a.getTokenText())]=a.getTokenOffset()}}c=a.scan()}for(var f=0,g=i;f<g.length;f++){var b=g[f],_=e.uri+\"#\";if(b.target&&r.startsWith(b.target,_)){var v=p[b.target.substr(_.length)];if(void 0!==v){var w=e.positionAt(v);b.target=\"\"+_+(w.line+1)+\",\"+(w.character+1)}}}return i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHighlighting\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\");function a(e,t){return e.line<t.line||e.line===t.line&&e.character<=t.character}function o(e,t){return a(e.start,t)&&a(t,e.end)}function s(e,t,i){for(var a=n.createScanner(t.getText(),i),o=a.scan();o!==r.TokenType.EOS&&o!==e;)o=a.scan();return o!==r.TokenType.EOS?{start:t.positionAt(a.getTokenOffset()),end:t.positionAt(a.getTokenEnd())}:null}t.findDocumentHighlights=function(e,t,n){var a=e.offsetAt(t),l=n.findNodeAt(a);if(!l.tag)return[];var c=[],d=s(r.TokenType.StartTag,e,l.start),h=\"number\"==typeof l.endTagStart&&s(r.TokenType.EndTag,e,l.endTagStart);return(d&&o(d,t)||h&&o(h,t))&&(d&&c.push({kind:i.DocumentHighlightKind.Read,range:d}),h&&c.push({kind:i.DocumentHighlightKind.Read,range:h})),c}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSymbolsProvider\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");t.findDocumentSymbols=function(e,t){var i=[];return t.roots.forEach((function(t){!function e(t,i,r,a){var o=function(e){var t=e.tag;if(e.attributes){var n=e.attributes.id,i=e.attributes.class;n&&(t+=\"#\"+n.replace(/[\\\"\\']/g,\"\")),i&&(t+=i.replace(/[\\\"\\']/g,\"\").split(/\\s+/).map((function(e){return\".\"+e})).join(\"\"))}return t||\"?\"}(i),s=n.Location.create(t.uri,n.Range.create(t.positionAt(i.start),t.positionAt(i.end))),l={name:o,location:s,containerName:r,kind:n.SymbolKind.Field};a.push(l),i.children.forEach((function(n){e(t,n,o,a)}))}(e,t,\"\",i)})),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlRename\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.doRename=function(e,t,n,i){var r,a=e.offsetAt(t),o=i.findNodeAt(a);if(!o.tag)return null;if(!function(e,t,n){if(e.endTagStart&&e.endTagStart+\"</\".length<=t&&t<=e.endTagStart+\"</\".length+n.length)return!0;return e.start+\"<\".length<=t&&t<=e.start+\"<\".length+n.length}(o,a,o.tag))return null;var s=[],l={start:e.positionAt(o.start+\"<\".length),end:e.positionAt(o.start+\"<\".length+o.tag.length)};if(s.push({range:l,newText:n}),o.endTagStart){var c={start:e.positionAt(o.endTagStart+\"</\".length),end:e.positionAt(o.endTagStart+\"</\".length+o.tag.length)};s.push({range:c,newText:n})}return{changes:((r={})[e.uri.toString()]=s,r)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlMatchingTagPosition\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findMatchingTagPosition=function(e,t,n){var i=e.offsetAt(t),r=n.findNodeAt(i);if(!r.tag)return null;if(!r.endTagStart)return null;if(r.start+\"<\".length<=i&&i<=r.start+\"<\".length+r.tag.length){var a=i-\"<\".length-r.start+r.endTagStart+\"</\".length;return e.positionAt(a)}if(r.endTagStart+\"</\".length<=i&&i<=r.endTagStart+\"</\".length+r.tag.length){a=i-\"</\".length-r.endTagStart+r.start+\"<\".length;return e.positionAt(a)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFolding\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../parser/htmlScanner\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../htmlLanguageTypes\"),r=e(\"../parser/htmlScanner\"),a=e(\"../languageFacts/fact\");t.getFoldingRanges=function(e,t){var o=r.createScanner(e.getText()),s=o.scan(),l=[],c=[],d=null,h=-1;function u(e){l.push(e),h=e.startLine}for(;s!==i.TokenType.EOS;){switch(s){case i.TokenType.StartTag:var p=o.getTokenText(),m=e.positionAt(o.getTokenOffset()).line;c.push({startLine:m,tagName:p}),d=p;break;case i.TokenType.EndTag:d=o.getTokenText();break;case i.TokenType.StartTagClose:if(!d||!a.isVoidElement(d))break;case i.TokenType.EndTagClose:case i.TokenType.StartTagSelfClose:for(var f=c.length-1;f>=0&&c[f].tagName!==d;)f--;if(f>=0){var g=c[f];c.length=f,(_=e.positionAt(o.getTokenOffset()).line-1)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_})}break;case i.TokenType.Comment:m=e.positionAt(o.getTokenOffset()).line;var b=o.getTokenText().match(/^\\s*#(region\\b)|(endregion\\b)/);if(b)if(b[1])c.push({startLine:m,tagName:\"\"});else{for(f=c.length-1;f>=0&&c[f].tagName.length;)f--;if(f>=0){var _;g=c[f];c.length=f,(_=m)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Region})}}else m<(_=e.positionAt(o.getTokenOffset()+o.getTokenLength()).line)&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Comment})}s=o.scan()}var v=t&&t.rangeLimit||Number.MAX_VALUE;return l.length>v?function(e,t){e=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n}));for(var n=void 0,i=[],r=[],a=[],o=function(e,t){r[e]=t,t<30&&(a[t]=(a[t]||0)+1)},s=0;s<e.length;s++){var l=e[s];if(n){if(l.startLine>n.startLine)if(l.endLine<=n.endLine)i.push(n),n=l,o(s,i.length);else if(l.startLine>n.endLine){do{n=i.pop()}while(n&&l.startLine>n.endLine);n&&i.push(n),n=l,o(s,i.length)}}else n=l,o(s,0)}var c=0,d=0;for(s=0;s<a.length;s++){var h=a[s];if(h){if(h+c>t){d=s;break}c+=h}}var u=[];for(s=0;s<e.length;s++){var p=r[s];\"number\"==typeof p&&(p<d||p===d&&c++<t)&&u.push(e[s])}return u}(l,v):l}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSelectionRange\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../parser/htmlParser\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../parser/htmlParser\"),a=e(\"../htmlLanguageTypes\");function o(e,t,r){for(var o=n.Range.create(e.positionAt(t.start),e.positionAt(t.end)),s=e.getText(o),l=r-t.start,c=i.createScanner(s),d=c.scan(),h=t.start,u=[],p=!1,m=-1;d!==a.TokenType.EOS;){switch(d){case a.TokenType.AttributeName:if(l<c.getTokenOffset()){p=!1;break}l<=c.getTokenEnd()&&u.unshift([c.getTokenOffset(),c.getTokenEnd()]),p=!0,m=c.getTokenOffset();break;case a.TokenType.AttributeValue:if(!p)break;var f=c.getTokenText();if(l<c.getTokenOffset()){u.push([m,c.getTokenEnd()]);break}l>=c.getTokenOffset()&&l<=c.getTokenEnd()&&(u.unshift([c.getTokenOffset(),c.getTokenEnd()]),('\"'===f[0]&&'\"'===f[f.length-1]||\"'\"===f[0]&&\"'\"===f[f.length-1])&&l>=c.getTokenOffset()+1&&l<=c.getTokenEnd()-1&&u.unshift([c.getTokenOffset()+1,c.getTokenEnd()-1]),u.push([m,c.getTokenEnd()]))}d=c.scan()}return u.map((function(e){return[e[0]+h,e[1]+h]}))}t.getSelectionRanges=function(e,t){return t.map((function(t){for(var i=function(e,t){var i=r.parse(e.getText()),a=e.offsetAt(t),s=i.findNodeAt(a),l=function(e){var t=e,n=[];for(;t.parent;)t=t.parent,(i=t,i.startTagEnd&&i.endTagStart&&i.startTagEnd<i.endTagStart?[[i.startTagEnd,i.endTagStart],[i.start,i.end]]:[[i.start,i.end]]).forEach((function(e){return n.push(e)}));var i;return n}(s);if(s.startTagEnd&&!s.endTagStart){if(s.startTagEnd!==s.end)return[[s.start,s.end]];var c=n.Range.create(e.positionAt(s.startTagEnd-2),e.positionAt(s.startTagEnd));\"/>\"===e.getText(c)?l.unshift([s.start+1,s.startTagEnd-2]):l.unshift([s.start+1,s.startTagEnd-1]);var d=o(e,s,a);return l=d.concat(l)}if(!s.startTagEnd||!s.endTagStart)return l;if(l.unshift([s.start,s.end]),s.start<a&&a<s.startTagEnd){l.unshift([s.start+1,s.startTagEnd-1]);d=o(e,s,a);return l=d.concat(l)}return s.startTagEnd<=a&&a<=s.endTagStart?(l.unshift([s.startTagEnd,s.endTagStart]),l):(a>=s.endTagStart+2&&l.unshift([s.endTagStart+2,s.end-1]),l)}(e,t),a=void 0,s=void 0,l=i.length-1;l>=0;l--){var c=i[l];a&&c[0]===a[0]&&c[1]===a[1]||(s=n.SelectionRange.create(n.Range.create(e.positionAt(i[l][0]),e.positionAt(i[l][1])),s)),a=c}return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var a=0,o=t;a<o.length;a++){var s=o[a];if(e.isIncremental(s)){var l=r(s.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+s.text+this._content.substring(d,this._content.length);var h=Math.max(l.start.line,0),u=Math.max(l.end.line,0),p=this._lineOffsets,m=i(s.text,!1,c);if(u-h===m.length)for(var f=0,g=m.length;f<g;f++)p[f+h+1]=m[f];else m.length<1e4?p.splice.apply(p,[h+1,u-h].concat(m)):this._lineOffsets=p=p.slice(0,h+1).concat(m,p.slice(u+1));var b=s.text.length-(d-c);if(0!==b)for(f=h+1+m.length,g=p.length;f<g;f++)p[f]=p[f]+b}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=i(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,i=t.length;if(0===i)return{line:0,character:e};for(;n<i;){var r=Math.floor((n+i)/2);t[r]>e?i=r:n=r+1}var a=n-1;return{line:a,character:e-t[a]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function i(e,t,n){void 0===n&&(n=0);for(var i=t?[n]:[],r=0;r<e.length;r++){var a=e.charCodeAt(r);13!==a&&10!==a||(13===a&&r+1<e.length&&10===e.charCodeAt(r+1)&&r++,i.push(n+r+1))}return i}function r(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function a(e){var t=r(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,i,r){return new n(e,t,i,r)},e.update=function(e,t,i){if(e instanceof n)return e.update(t,i),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t.map(a),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,o=i.length-1;o>=0;o--){var s=i[o],l=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+s.newText+n.substring(c,n.length),r=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageService\",[\"require\",\"exports\",\"./parser/htmlScanner\",\"./parser/htmlParser\",\"./services/htmlCompletion\",\"./services/htmlHover\",\"./services/htmlFormatter\",\"./services/htmlLinks\",\"./services/htmlHighlighting\",\"./services/htmlSymbolsProvider\",\"./services/htmlRename\",\"./services/htmlMatchingTagPosition\",\"./services/htmlFolding\",\"./services/htmlSelectionRange\",\"./languageFacts/builtinDataProviders\",\"./languageFacts/dataProvider\",\"./htmlLanguageTypes\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var i=e(\"./parser/htmlScanner\"),r=e(\"./parser/htmlParser\"),a=e(\"./services/htmlCompletion\"),o=e(\"./services/htmlHover\"),s=e(\"./services/htmlFormatter\"),l=e(\"./services/htmlLinks\"),c=e(\"./services/htmlHighlighting\"),d=e(\"./services/htmlSymbolsProvider\"),h=e(\"./services/htmlRename\"),u=e(\"./services/htmlMatchingTagPosition\"),p=e(\"./services/htmlFolding\"),m=e(\"./services/htmlSelectionRange\"),f=e(\"./languageFacts/builtinDataProviders\"),g=e(\"./languageFacts/dataProvider\");n(e(\"./htmlLanguageTypes\"));var b=e(\"vscode-languageserver-textdocument\");t.TextDocument=b.TextDocument,n(e(\"vscode-languageserver-types\")),t.getLanguageService=function(e){var t=new o.HTMLHover(e&&e.clientCapabilities),n=new a.HTMLCompletion(e&&e.clientCapabilities);return e&&e.customDataProviders&&f.handleCustomDataProviders(e.customDataProviders),{createScanner:i.createScanner,parseHTMLDocument:function(e){return r.parse(e.getText())},doComplete:n.doComplete.bind(n),setCompletionParticipants:n.setCompletionParticipants.bind(n),doHover:t.doHover.bind(t),format:s.format,findDocumentHighlights:c.findDocumentHighlights,findDocumentLinks:l.findDocumentLinks,findDocumentSymbols:d.findDocumentSymbols,getFoldingRanges:p.getFoldingRanges,getSelectionRanges:m.getSelectionRanges,doTagComplete:n.doTagComplete.bind(n),doRename:h.doRename,findMatchingTagPosition:u.findMatchingTagPosition}},t.newHTMLDataProvider=function(e,t){return new g.HTMLDataProvider(e,t)}})),define(\"vscode-html-languageservice\",[\"vscode-html-languageservice/htmlLanguageService\"],(function(e){return e})),define(\"vs/language/html/languageFeatures\",[\"require\",\"exports\",\"vscode-html-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=monaco.Uri,r=monaco.Range,a=function(){function e(e,t,n){var i=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var r=function(e){var t,n=e.getModeId();n===i._languageId&&(i._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return i._doValidate(e.uri,n)}),500)})),i._doValidate(e.uri,n))},a=function(e){monaco.editor.setModelMarkers(e,i._languageId,[]);var t=e.uri.toString(),n=i._listener[t];n&&(n.dispose(),delete i._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(r)),this._disposables.push(monaco.editor.onWillDisposeModel((function(e){a(e)}))),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){a(e.model),r(e.model)}))),this._disposables.push(n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===i._languageId&&(a(e),r(e))}))}))),this._disposables.push({dispose:function(){for(var e in i._listener)i._listener[e].dispose()}}),monaco.editor.getModels().forEach(r)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var i=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:o(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n}));monaco.editor.setModelMarkers(monaco.editor.getModel(e),t,i)}))})).then(void 0,(function(e){console.error(e)}))},e}();function o(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function s(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function l(e){if(e)return new r(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function c(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function d(e){if(e)return{range:l(e.range),text:e.newText}}t.DiagnosticsAdapter=a;var h=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\".\",\":\",\"<\",'\"',\"=\",\"/\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,i,a){var o=e.uri;return this._worker(o).then((function(e){return e.doComplete(o.toString(),s(t))})).then((function(i){if(i){var a=e.getWordUntilPosition(t),o=new r(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn),s=i.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:o,kind:c(e.kind)};return e.textEdit&&(t.range=l(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(d)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:i.isIncomplete,suggestions:s}}}))},e}();function u(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function p(e){if(e)return Array.isArray(e)?e.map(u):[u(e)]}t.CompletionAdapter=h;var m=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.doHover(i.toString(),s(t))})).then((function(e){if(e)return{range:l(e.range),contents:p(e.contents)}}))},e}();function f(e){var t=monaco.languages.DocumentHighlightKind;switch(e){case n.DocumentHighlightKind.Read:return t.Read;case n.DocumentHighlightKind.Write:return t.Write;case n.DocumentHighlightKind.Text:return t.Text}return t.Text}t.HoverAdapter=m;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.findDocumentHighlights(i.toString(),s(t))})).then((function(e){if(e)return e.map((function(e){return{range:l(e.range),kind:f(e.kind)}}))}))},e}();function b(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.DocumentHighlightAdapter=g;var _=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:b(e.kind),tags:[],range:l(e.location.range),selectionRange:l(e.location.range)}}))}))},e}();t.DocumentSymbolAdapter=_;var v=function(){function e(e){this._worker=e}return e.prototype.provideLinks=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentLinks(n.toString())})).then((function(e){if(e)return{links:e.map((function(e){return{range:l(e.range),url:e.target}}))}}))},e}();function w(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}t.DocumentLinkAdapter=v;var y=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.format(i.toString(),null,w(t)).then((function(e){if(e&&0!==e.length)return e.map(d)}))}))},e}();t.DocumentFormattingEditProvider=y;var T=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,i){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),function(e){if(e)return{start:s(e.getStartPosition()),end:s(e.getEndPosition())}}(t),w(n)).then((function(e){if(e&&0!==e.length)return e.map(d)}))}))},e}();t.DocumentRangeFormattingEditProvider=T;var k=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,r){var a=e.uri;return this._worker(a).then((function(e){return e.doRename(a.toString(),s(t),n)})).then((function(e){return function(e){if(!e||!e.changes)return;var t=[];for(var n in e.changes)for(var r=i.parse(n),a=0,o=e.changes[n];a<o.length;a++){var s=o[a];t.push({resource:r,edit:{range:l(s.range),text:s.newText}})}return{edits:t}}(e)}))},e}();t.RenameAdapter=k;var S=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,i){var r=e.uri;return this._worker(r).then((function(e){return e.getFoldingRanges(r.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=S;var x=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.getSelectionRanges(i.toString(),t.map(s))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:l(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=x})),define(\"vs/language/html/htmlMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,i){\"use strict\";function r(e){return{dispose:function(){return a(e)}}}function a(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode1=function(e){var t=new n.WorkerManager(e),r=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.getLanguageServiceWorker.apply(t,e)},a=e.languageId;monaco.languages.registerCompletionItemProvider(a,new i.CompletionAdapter(r)),monaco.languages.registerHoverProvider(a,new i.HoverAdapter(r)),monaco.languages.registerDocumentHighlightProvider(a,new i.DocumentHighlightAdapter(r)),monaco.languages.registerLinkProvider(a,new i.DocumentLinkAdapter(r)),monaco.languages.registerFoldingRangeProvider(a,new i.FoldingRangeAdapter(r)),monaco.languages.registerDocumentSymbolProvider(a,new i.DocumentSymbolAdapter(r)),monaco.languages.registerSelectionRangeProvider(a,new i.SelectionRangeAdapter(r)),monaco.languages.registerRenameProvider(a,new i.RenameAdapter(r)),\"html\"===a&&(monaco.languages.registerDocumentFormattingEditProvider(a,new i.DocumentFormattingEditProvider(r)),monaco.languages.registerDocumentRangeFormattingEditProvider(a,new i.DocumentRangeFormattingEditProvider(r)),new i.DiagnosticsAdapter(a,r,e))},t.setupMode=function(e){var t=[],o=[],s=new n.WorkerManager(e);t.push(s);var l,c,d=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return s.getLanguageServiceWorker.apply(s,e)};return l=e.languageId,c=e.modeConfiguration,a(o),c.completionItems&&o.push(monaco.languages.registerCompletionItemProvider(l,new i.CompletionAdapter(d))),c.hovers&&o.push(monaco.languages.registerHoverProvider(l,new i.HoverAdapter(d))),c.documentHighlights&&o.push(monaco.languages.registerDocumentHighlightProvider(l,new i.DocumentHighlightAdapter(d))),c.links&&o.push(monaco.languages.registerLinkProvider(l,new i.DocumentLinkAdapter(d))),c.documentSymbols&&o.push(monaco.languages.registerDocumentSymbolProvider(l,new i.DocumentSymbolAdapter(d))),c.rename&&o.push(monaco.languages.registerRenameProvider(l,new i.RenameAdapter(d))),c.foldingRanges&&o.push(monaco.languages.registerFoldingRangeProvider(l,new i.FoldingRangeAdapter(d))),c.selectionRanges&&o.push(monaco.languages.registerSelectionRangeProvider(l,new i.SelectionRangeAdapter(d))),c.documentFormattingEdits&&o.push(monaco.languages.registerDocumentFormattingEditProvider(l,new i.DocumentFormattingEditProvider(d))),c.documentRangeFormattingEdits&&o.push(monaco.languages.registerDocumentRangeFormattingEditProvider(l,new i.DocumentRangeFormattingEditProvider(d))),c.diagnostics&&o.push(new i.DiagnosticsAdapter(l,d,e)),t.push(r(o)),r(t)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/html/htmlWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-html version: 2.7.0(7d0bb2e5e3dcf1252779486a5fc5be658f1fadc1)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var i=n[0];return void 0!==t[i]?t[i]:e}))}function i(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];return n(t,i)}function r(e){return i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=r,t.config=function(e){return r}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i,r,a,o,s,l,c,d,h,u,p,m;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.number(t.line)&&y.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,i,r){if(y.number(e)&&y.number(t)&&y.number(i)&&y.number(r))return{start:n.create(e,t),end:n.create(i,r)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+i+\", \"+r+\"]\")},e.is=function(e){var t=e;return y.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(i=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.string(t.uri)||y.undefined(t.uri))}}(r=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,i){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:i}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.targetRange)&&y.string(t.targetUri)&&(i.is(t.targetSelectionRange)||y.undefined(t.targetSelectionRange))&&(i.is(t.originSelectionRange)||y.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return y.number(t.red)&&y.number(t.green)&&y.number(t.blue)&&y.number(t.alpha)}}(a=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return i.is(t.range)&&a.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return y.string(t.label)&&(y.undefined(t.textEdit)||c.is(t))&&(y.undefined(t.additionalTextEdits)||y.typedArray(t.additionalTextEdits,c.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,i,r){var a={startLine:e,endLine:t};return y.defined(n)&&(a.startCharacter=n),y.defined(i)&&(a.endCharacter=i),y.defined(r)&&(a.kind=r),a},e.is=function(e){var t=e;return y.number(t.startLine)&&y.number(t.startLine)&&(y.undefined(t.startCharacter)||y.number(t.startCharacter))&&(y.undefined(t.endCharacter)||y.number(t.endCharacter))&&(y.undefined(t.kind)||y.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return y.defined(t)&&r.is(t.location)&&y.string(t.message)}}(o=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,i,r,a){var o={range:e,message:t};return y.defined(n)&&(o.severity=n),y.defined(i)&&(o.code=i),y.defined(r)&&(o.source=r),y.defined(a)&&(o.relatedInformation=a),o},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&y.string(t.message)&&(y.number(t.severity)||y.undefined(t.severity))&&(y.number(t.code)||y.string(t.code)||y.undefined(t.code))&&(y.string(t.source)||y.undefined(t.source))&&(y.undefined(t.relatedInformation)||y.typedArray(t.relatedInformation,o.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={title:e,command:t};return y.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.title)&&y.string(t.command)}}(l=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return y.objectLiteral(t)&&y.string(t.newText)&&i.is(t.range)}}(c=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return y.defined(t)&&f.is(t.textDocument)&&Array.isArray(t.edits)}}(d=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(h=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var i={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),i},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&y.string(t.oldUri)&&y.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||y.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||y.boolean(t.options.ignoreIfExists)))}}(u=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&y.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||y.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||y.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return y.string(e.kind)?h.is(e)||u.is(e)||p.is(e):d.is(e)})))}}(m=t.WorkspaceEdit||(t.WorkspaceEdit={}));var f,g,b,_,v=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(c.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(c.replace(e,t))},e.prototype.delete=function(e){this.edits.push(c.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),w=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(d.is(e)){var n=new v(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var i=new v(e.changes[n]);t._textEditChanges[n]=i})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(f.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new v(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new v(r),this._textEditChanges[e]=i}return i},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(h.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(u.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=w,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&(null===t.version||y.number(t.version))}}(f=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return y.defined(t)&&y.string(t.uri)&&y.string(t.languageId)&&y.number(t.version)&&y.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return y.objectLiteral(e)&&g.is(t.kind)&&y.string(t.value)}}(b=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return y.string(t)||y.objectLiteral(t)&&y.string(t.language)&&y.string(t.value)}}(_=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&y.objectLiteral(t)&&(b.is(t.contents)||_.is(t.contents)||y.typedArray(t.contents,_.is))&&(void 0===e.range||i.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r={label:e};return y.defined(t)&&(r.documentation=t),y.defined(n)?r.parameters=n:r.parameters=[],r}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return y.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,i,r){var a={name:e,kind:t,location:{uri:i,range:n}};return r&&(a.containerName=r),a}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,i,r,a){var o={name:e,detail:t,kind:n,range:i,selectionRange:r};return void 0!==a&&(o.children=a),o},e.is=function(e){var t=e;return t&&y.string(t.name)&&y.number(t.kind)&&i.is(t.range)&&i.is(t.selectionRange)&&(void 0===t.detail||y.string(t.detail))&&(void 0===t.deprecated||y.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return y.defined(t)&&y.typedArray(t.diagnostics,s.is)&&(void 0===t.only||y.typedArray(t.only,y.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var i={title:e};return l.is(t)?i.command=t:i.edit=t,void 0!==n&&(i.kind=n),i},e.is=function(e){var t=e;return t&&y.string(t.title)&&(void 0===t.diagnostics||y.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||y.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||l.is(t.command))&&(void 0===t.isPreferred||y.boolean(t.isPreferred))&&(void 0===t.edit||m.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return y.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.command)||l.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return y.defined(t)&&y.number(t.tabSize)&&y.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return y.defined(t)&&i.is(t.range)&&(y.undefined(t.target)||y.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&i.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,i){return new T(e,t,n,i)},e.is=function(e){var t=e;return!!(y.defined(t)&&y.string(t.uri)&&(y.undefined(t.languageId)||y.string(t.languageId))&&y.number(t.lineCount)&&y.func(t.getText)&&y.func(t.positionAt)&&y.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,a=i.length-1;a>=0;a--){var o=i[a],s=e.offsetAt(o.range.start),l=e.offsetAt(o.range.end);if(!(l<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+o.newText+n.substring(l,n.length),r=s}return n}}(t.TextDocument||(t.TextDocument={}));var y,T=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i<t.length;i++){n&&(e.push(i),n=!1);var r=t.charAt(i);n=\"\\r\"===r||\"\\n\"===r,\"\\r\"===r&&i+1<t.length&&\"\\n\"===t.charAt(i+1)&&i++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(0===r)return n.create(0,e);for(;i<r;){var a=Math.floor((i+r)/2);t[a]>e?r=a:i=a+1}var o=i-1;return n.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(y||(y={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");!function(e){e[e.StartCommentTag=0]=\"StartCommentTag\",e[e.Comment=1]=\"Comment\",e[e.EndCommentTag=2]=\"EndCommentTag\",e[e.StartTagOpen=3]=\"StartTagOpen\",e[e.StartTagClose=4]=\"StartTagClose\",e[e.StartTagSelfClose=5]=\"StartTagSelfClose\",e[e.StartTag=6]=\"StartTag\",e[e.EndTagOpen=7]=\"EndTagOpen\",e[e.EndTagClose=8]=\"EndTagClose\",e[e.EndTag=9]=\"EndTag\",e[e.DelimiterAssign=10]=\"DelimiterAssign\",e[e.AttributeName=11]=\"AttributeName\",e[e.AttributeValue=12]=\"AttributeValue\",e[e.StartDoctypeTag=13]=\"StartDoctypeTag\",e[e.Doctype=14]=\"Doctype\",e[e.EndDoctypeTag=15]=\"EndDoctypeTag\",e[e.Content=16]=\"Content\",e[e.Whitespace=17]=\"Whitespace\",e[e.Unknown=18]=\"Unknown\",e[e.Script=19]=\"Script\",e[e.Styles=20]=\"Styles\",e[e.EOS=21]=\"EOS\"}(t.TokenType||(t.TokenType={})),function(e){e[e.WithinContent=0]=\"WithinContent\",e[e.AfterOpeningStartTag=1]=\"AfterOpeningStartTag\",e[e.AfterOpeningEndTag=2]=\"AfterOpeningEndTag\",e[e.WithinDoctype=3]=\"WithinDoctype\",e[e.WithinTag=4]=\"WithinTag\",e[e.WithinEndTag=5]=\"WithinEndTag\",e[e.WithinComment=6]=\"WithinComment\",e[e.WithinScriptContent=7]=\"WithinScriptContent\",e[e.WithinStyleContent=8]=\"WithinStyleContent\",e[e.AfterAttributeName=9]=\"AfterAttributeName\",e[e.BeforeAttributeValue=10]=\"BeforeAttributeValue\"}(t.ScannerState||(t.ScannerState={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}},hover:{contentFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlScanner\",[\"require\",\"exports\",\"vscode-nls\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\"),i=e(\"../htmlLanguageTypes\"),r=n.loadMessageBundle(),a=function(){function e(e,t){this.source=e,this.len=e.length,this.position=t}return e.prototype.eos=function(){return this.len<=this.position},e.prototype.getSource=function(){return this.source},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.goToEnd=function(){this.position=this.source.length},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){var t;if(this.position+e.length>this.source.length)return!1;for(t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceIfRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index+t[0].length,t[0]):\"\"},e.prototype.advanceUntilRegExp=function(e){var t=this.source.substr(this.position).match(e);return t?(this.position=this.position+t.index,t[0]):(this.goToEnd(),\"\")},e.prototype.advanceUntilChar=function(e){for(;this.position<this.source.length;){if(this.source.charCodeAt(this.position)===e)return!0;this.advance(1)}return!1},e.prototype.advanceUntilChars=function(e){for(;this.position+e.length<=this.source.length;){for(var t=0;t<e.length&&this.source.charCodeAt(this.position+t)===e[t];t++);if(t===e.length)return!0;this.advance(1)}return this.goToEnd(),!1},e.prototype.skipWhitespace=function(){return this.advanceWhileChar((function(e){return e===b||e===_||e===m||e===g||e===f}))>0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}(),o=\"!\".charCodeAt(0),s=\"-\".charCodeAt(0),l=\"<\".charCodeAt(0),c=\">\".charCodeAt(0),d=\"/\".charCodeAt(0),h=\"=\".charCodeAt(0),u='\"'.charCodeAt(0),p=\"'\".charCodeAt(0),m=\"\\n\".charCodeAt(0),f=\"\\r\".charCodeAt(0),g=\"\\f\".charCodeAt(0),b=\" \".charCodeAt(0),_=\"\\t\".charCodeAt(0),v={\"text/x-handlebars-template\":!0};t.createScanner=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=i.ScannerState.WithinContent);var m,f,g,b,_,w=new a(e,t),y=n,T=0,k=i.TokenType.Unknown;function S(){return w.advanceIfRegExp(/^[_:\\w][_:\\w-.\\d]*/).toLowerCase()}function x(e,t,n){return k=t,T=e,m=n,t}return{scan:function(){var e=w.pos(),t=y,n=function e(){var t,n=w.pos();if(w.eos())return x(n,i.TokenType.EOS);switch(y){case i.ScannerState.WithinComment:return w.advanceIfChars([s,s,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndCommentTag)):(w.advanceUntilChars([s,s,c]),x(n,i.TokenType.Comment));case i.ScannerState.WithinDoctype:return w.advanceIfChar(c)?(y=i.ScannerState.WithinContent,x(n,i.TokenType.EndDoctypeTag)):(w.advanceUntilChar(c),x(n,i.TokenType.Doctype));case i.ScannerState.WithinContent:if(w.advanceIfChar(l)){if(!w.eos()&&w.peekChar()===o){if(w.advanceIfChars([o,s,s]))return y=i.ScannerState.WithinComment,x(n,i.TokenType.StartCommentTag);if(w.advanceIfRegExp(/^!doctype/i))return y=i.ScannerState.WithinDoctype,x(n,i.TokenType.StartDoctypeTag)}return w.advanceIfChar(d)?(y=i.ScannerState.AfterOpeningEndTag,x(n,i.TokenType.EndTagOpen)):(y=i.ScannerState.AfterOpeningStartTag,x(n,i.TokenType.StartTagOpen))}return w.advanceUntilChar(l),x(n,i.TokenType.Content);case i.ScannerState.AfterOpeningEndTag:return S().length>0?(y=i.ScannerState.WithinEndTag,x(n,i.TokenType.EndTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinEndTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.endTagNameExpected\",\"End tag name expected.\")):e());case i.ScannerState.WithinEndTag:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);if(w.advanceIfChar(c))return y=i.ScannerState.WithinContent,x(n,i.TokenType.EndTagClose);t=r(\"error.tagNameExpected\",\"Closing bracket expected.\");break;case i.ScannerState.AfterOpeningStartTag:return g=S(),_=void 0,b=void 0,g.length>0?(f=!1,y=i.ScannerState.WithinTag,x(n,i.TokenType.StartTag)):w.skipWhitespace()?x(n,i.TokenType.Whitespace,r(\"error.unexpectedWhitespace\",\"Tag name must directly follow the open bracket.\")):(y=i.ScannerState.WithinTag,w.advanceUntilChar(c),n<w.pos()?x(n,i.TokenType.Unknown,r(\"error.startTagNameExpected\",\"Start tag name expected.\")):e());case i.ScannerState.WithinTag:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):f&&(b=w.advanceIfRegExp(/^[^\\s\"'>/=\\x00-\\x0F\\x7F\\x80-\\x9F]*/).toLowerCase()).length>0?(y=i.ScannerState.AfterAttributeName,f=!1,x(n,i.TokenType.AttributeName)):w.advanceIfChars([d,c])?(y=i.ScannerState.WithinContent,x(n,i.TokenType.StartTagSelfClose)):w.advanceIfChar(c)?(y=\"script\"===g?_&&v[_]?i.ScannerState.WithinContent:i.ScannerState.WithinScriptContent:\"style\"===g?i.ScannerState.WithinStyleContent:i.ScannerState.WithinContent,x(n,i.TokenType.StartTagClose)):(w.advance(1),x(n,i.TokenType.Unknown,r(\"error.unexpectedCharacterInTag\",\"Unexpected character in tag.\")));case i.ScannerState.AfterAttributeName:return w.skipWhitespace()?(f=!0,x(n,i.TokenType.Whitespace)):w.advanceIfChar(h)?(y=i.ScannerState.BeforeAttributeValue,x(n,i.TokenType.DelimiterAssign)):(y=i.ScannerState.WithinTag,e());case i.ScannerState.BeforeAttributeValue:if(w.skipWhitespace())return x(n,i.TokenType.Whitespace);var a=w.advanceIfRegExp(/^[^\\s\"'`=<>]+/);if(a.length>0)return w.peekChar()===c&&w.peekChar(-1)===d&&(w.goBack(1),a=a.substr(0,a.length-1)),\"type\"===b&&(_=a),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue);var m=w.peekChar();return m===p||m===u?(w.advance(1),w.advanceUntilChar(m)&&w.advance(1),\"type\"===b&&(_=w.getSource().substring(n+1,w.pos()-1)),y=i.ScannerState.WithinTag,f=!1,x(n,i.TokenType.AttributeValue)):(y=i.ScannerState.WithinTag,f=!1,e());case i.ScannerState.WithinScriptContent:for(var T=1;!w.eos();){var k=w.advanceIfRegExp(/<!--|-->|<\\/?script\\s*\\/?>?/i);if(0===k.length)return w.goToEnd(),x(n,i.TokenType.Script);if(\"\\x3c!--\"===k)1===T&&(T=2);else if(\"--\\x3e\"===k)T=1;else if(\"/\"!==k[1])2===T&&(T=3);else{if(3!==T){w.goBack(k.length);break}T=2}}return y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Script):e();case i.ScannerState.WithinStyleContent:return w.advanceUntilRegExp(/<\\/style/i),y=i.ScannerState.WithinContent,n<w.pos()?x(n,i.TokenType.Styles):e()}return w.advance(1),y=i.ScannerState.WithinContent,x(n,i.TokenType.Unknown,t)}();return n!==i.TokenType.EOS&&e===w.pos()?(console.log(\"Scanner.scan has not advanced at offset \"+e+\", state before: \"+t+\" after: \"+y),w.advance(1),x(e,i.TokenType.Unknown)):n},getTokenType:function(){return k},getTokenOffset:function(){return T},getTokenLength:function(){return w.pos()-T},getTokenEnd:function(){return w.pos()},getTokenText:function(){return w.getSource().substring(T,w.pos())},getScannerState:function(){return y},getTokenError:function(){return m}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/arrays\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findFirst=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n<i;){var r=Math.floor((n+i)/2);t(e[r])?i=r:n=r+1}return n},t.binarySearch=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var a=(i+r)/2|0,o=n(e[a],t);if(o<0)i=a+1;else{if(!(o>0))return a;r=a-1}}return-(i+1)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/fact\",[\"require\",\"exports\",\"../utils/arrays\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/arrays\");t.VOID_ELEMENTS=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],t.isVoidElement=function(e){return!!e&&n.binarySearch(t.VOID_ELEMENTS,e.toLowerCase(),(function(e,t){return e.localeCompare(t)}))>=0}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlParser\",[\"require\",\"exports\",\"./htmlScanner\",\"../utils/arrays\",\"../htmlLanguageTypes\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./htmlScanner\"),i=e(\"../utils/arrays\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/fact\"),o=function(){function e(e,t,n,i){this.start=e,this.end=t,this.children=n,this.parent=i,this.closed=!1}return Object.defineProperty(e.prototype,\"attributeNames\",{get:function(){return this.attributes?Object.keys(this.attributes):[]},enumerable:!0,configurable:!0}),e.prototype.isSameTag=function(e){return this.tag&&e&&this.tag.length===e.length&&this.tag.toLowerCase()===e},Object.defineProperty(e.prototype,\"firstChild\",{get:function(){return this.children[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lastChild\",{get:function(){return this.children.length?this.children[this.children.length-1]:void 0},enumerable:!0,configurable:!0}),e.prototype.findNodeBefore=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start){if(e<n.end)return n.findNodeBefore(e);var r=n.lastChild;return r&&r.end===n.end?n.findNodeBefore(e):n}}return this},e.prototype.findNodeAt=function(e){var t=i.findFirst(this.children,(function(t){return e<=t.start}))-1;if(t>=0){var n=this.children[t];if(e>n.start&&e<=n.end)return n.findNodeAt(e)}return this},e}();t.Node=o,t.parse=function(e){for(var t=n.createScanner(e),i=new o(0,e.length,[],void 0),s=i,l=-1,c=null,d=null,h=t.scan();h!==r.TokenType.EOS;){switch(h){case r.TokenType.StartTagOpen:var u=new o(t.getTokenOffset(),e.length,[],s);s.children.push(u),s=u;break;case r.TokenType.StartTag:s.tag=t.getTokenText();break;case r.TokenType.StartTagClose:s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s.tag&&a.isVoidElement(s.tag)&&s.parent&&(s.closed=!0,s=s.parent);break;case r.TokenType.StartTagSelfClose:s.parent&&(s.closed=!0,s.end=t.getTokenEnd(),s.startTagEnd=t.getTokenEnd(),s=s.parent);break;case r.TokenType.EndTagOpen:l=t.getTokenOffset(),c=null;break;case r.TokenType.EndTag:c=t.getTokenText().toLowerCase();break;case r.TokenType.EndTagClose:if(c){for(var p=s;!p.isSameTag(c)&&p.parent;)p=p.parent;if(p.parent){for(;s!==p;)s.end=l,s.closed=!1,s=s.parent;s.closed=!0,s.endTagStart=l,s.end=t.getTokenEnd(),s=s.parent}}break;case r.TokenType.AttributeName:d=t.getTokenText(),(m=s.attributes)||(s.attributes=m={}),m[d]=null;break;case r.TokenType.AttributeValue:var m,f=t.getTokenText();(m=s.attributes)&&d&&(m[d]=f,d=null)}h=t.scan()}for(;s.parent;)s.end=e.length,s.closed=!1,s=s.parent;return{roots:i.children,findNodeBefore:i.findNodeBefore.bind(i),findNodeAt:i.findNodeAt.bind(i)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/parser/htmlEntities\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.entities={\"Aacute;\":\"Á\",Aacute:\"Á\",\"aacute;\":\"á\",aacute:\"á\",\"Abreve;\":\"Ă\",\"abreve;\":\"ă\",\"ac;\":\"∾\",\"acd;\":\"∿\",\"acE;\":\"∾̳\",\"Acirc;\":\"Â\",Acirc:\"Â\",\"acirc;\":\"â\",acirc:\"â\",\"acute;\":\"´\",acute:\"´\",\"Acy;\":\"А\",\"acy;\":\"а\",\"AElig;\":\"Æ\",AElig:\"Æ\",\"aelig;\":\"æ\",aelig:\"æ\",\"af;\":\"⁡\",\"Afr;\":\"𝔄\",\"afr;\":\"𝔞\",\"Agrave;\":\"À\",Agrave:\"À\",\"agrave;\":\"à\",agrave:\"à\",\"alefsym;\":\"ℵ\",\"aleph;\":\"ℵ\",\"Alpha;\":\"Α\",\"alpha;\":\"α\",\"Amacr;\":\"Ā\",\"amacr;\":\"ā\",\"amalg;\":\"⨿\",\"AMP;\":\"&\",AMP:\"&\",\"amp;\":\"&\",amp:\"&\",\"And;\":\"⩓\",\"and;\":\"∧\",\"andand;\":\"⩕\",\"andd;\":\"⩜\",\"andslope;\":\"⩘\",\"andv;\":\"⩚\",\"ang;\":\"∠\",\"ange;\":\"⦤\",\"angle;\":\"∠\",\"angmsd;\":\"∡\",\"angmsdaa;\":\"⦨\",\"angmsdab;\":\"⦩\",\"angmsdac;\":\"⦪\",\"angmsdad;\":\"⦫\",\"angmsdae;\":\"⦬\",\"angmsdaf;\":\"⦭\",\"angmsdag;\":\"⦮\",\"angmsdah;\":\"⦯\",\"angrt;\":\"∟\",\"angrtvb;\":\"⊾\",\"angrtvbd;\":\"⦝\",\"angsph;\":\"∢\",\"angst;\":\"Å\",\"angzarr;\":\"⍼\",\"Aogon;\":\"Ą\",\"aogon;\":\"ą\",\"Aopf;\":\"𝔸\",\"aopf;\":\"𝕒\",\"ap;\":\"≈\",\"apacir;\":\"⩯\",\"apE;\":\"⩰\",\"ape;\":\"≊\",\"apid;\":\"≋\",\"apos;\":\"'\",\"ApplyFunction;\":\"⁡\",\"approx;\":\"≈\",\"approxeq;\":\"≊\",\"Aring;\":\"Å\",Aring:\"Å\",\"aring;\":\"å\",aring:\"å\",\"Ascr;\":\"𝒜\",\"ascr;\":\"𝒶\",\"Assign;\":\"≔\",\"ast;\":\"*\",\"asymp;\":\"≈\",\"asympeq;\":\"≍\",\"Atilde;\":\"Ã\",Atilde:\"Ã\",\"atilde;\":\"ã\",atilde:\"ã\",\"Auml;\":\"Ä\",Auml:\"Ä\",\"auml;\":\"ä\",auml:\"ä\",\"awconint;\":\"∳\",\"awint;\":\"⨑\",\"backcong;\":\"≌\",\"backepsilon;\":\"϶\",\"backprime;\":\"‵\",\"backsim;\":\"∽\",\"backsimeq;\":\"⋍\",\"Backslash;\":\"∖\",\"Barv;\":\"⫧\",\"barvee;\":\"⊽\",\"Barwed;\":\"⌆\",\"barwed;\":\"⌅\",\"barwedge;\":\"⌅\",\"bbrk;\":\"⎵\",\"bbrktbrk;\":\"⎶\",\"bcong;\":\"≌\",\"Bcy;\":\"Б\",\"bcy;\":\"б\",\"bdquo;\":\"„\",\"becaus;\":\"∵\",\"Because;\":\"∵\",\"because;\":\"∵\",\"bemptyv;\":\"⦰\",\"bepsi;\":\"϶\",\"bernou;\":\"ℬ\",\"Bernoullis;\":\"ℬ\",\"Beta;\":\"Β\",\"beta;\":\"β\",\"beth;\":\"ℶ\",\"between;\":\"≬\",\"Bfr;\":\"𝔅\",\"bfr;\":\"𝔟\",\"bigcap;\":\"⋂\",\"bigcirc;\":\"◯\",\"bigcup;\":\"⋃\",\"bigodot;\":\"⨀\",\"bigoplus;\":\"⨁\",\"bigotimes;\":\"⨂\",\"bigsqcup;\":\"⨆\",\"bigstar;\":\"★\",\"bigtriangledown;\":\"▽\",\"bigtriangleup;\":\"△\",\"biguplus;\":\"⨄\",\"bigvee;\":\"⋁\",\"bigwedge;\":\"⋀\",\"bkarow;\":\"⤍\",\"blacklozenge;\":\"⧫\",\"blacksquare;\":\"▪\",\"blacktriangle;\":\"▴\",\"blacktriangledown;\":\"▾\",\"blacktriangleleft;\":\"◂\",\"blacktriangleright;\":\"▸\",\"blank;\":\"␣\",\"blk12;\":\"▒\",\"blk14;\":\"░\",\"blk34;\":\"▓\",\"block;\":\"█\",\"bne;\":\"=⃥\",\"bnequiv;\":\"≡⃥\",\"bNot;\":\"⫭\",\"bnot;\":\"⌐\",\"Bopf;\":\"𝔹\",\"bopf;\":\"𝕓\",\"bot;\":\"⊥\",\"bottom;\":\"⊥\",\"bowtie;\":\"⋈\",\"boxbox;\":\"⧉\",\"boxDL;\":\"╗\",\"boxDl;\":\"╖\",\"boxdL;\":\"╕\",\"boxdl;\":\"┐\",\"boxDR;\":\"╔\",\"boxDr;\":\"╓\",\"boxdR;\":\"╒\",\"boxdr;\":\"┌\",\"boxH;\":\"═\",\"boxh;\":\"─\",\"boxHD;\":\"╦\",\"boxHd;\":\"╤\",\"boxhD;\":\"╥\",\"boxhd;\":\"┬\",\"boxHU;\":\"╩\",\"boxHu;\":\"╧\",\"boxhU;\":\"╨\",\"boxhu;\":\"┴\",\"boxminus;\":\"⊟\",\"boxplus;\":\"⊞\",\"boxtimes;\":\"⊠\",\"boxUL;\":\"╝\",\"boxUl;\":\"╜\",\"boxuL;\":\"╛\",\"boxul;\":\"┘\",\"boxUR;\":\"╚\",\"boxUr;\":\"╙\",\"boxuR;\":\"╘\",\"boxur;\":\"└\",\"boxV;\":\"║\",\"boxv;\":\"│\",\"boxVH;\":\"╬\",\"boxVh;\":\"╫\",\"boxvH;\":\"╪\",\"boxvh;\":\"┼\",\"boxVL;\":\"╣\",\"boxVl;\":\"╢\",\"boxvL;\":\"╡\",\"boxvl;\":\"┤\",\"boxVR;\":\"╠\",\"boxVr;\":\"╟\",\"boxvR;\":\"╞\",\"boxvr;\":\"├\",\"bprime;\":\"‵\",\"Breve;\":\"˘\",\"breve;\":\"˘\",\"brvbar;\":\"¦\",brvbar:\"¦\",\"Bscr;\":\"ℬ\",\"bscr;\":\"𝒷\",\"bsemi;\":\"⁏\",\"bsim;\":\"∽\",\"bsime;\":\"⋍\",\"bsol;\":\"\\\\\",\"bsolb;\":\"⧅\",\"bsolhsub;\":\"⟈\",\"bull;\":\"•\",\"bullet;\":\"•\",\"bump;\":\"≎\",\"bumpE;\":\"⪮\",\"bumpe;\":\"≏\",\"Bumpeq;\":\"≎\",\"bumpeq;\":\"≏\",\"Cacute;\":\"Ć\",\"cacute;\":\"ć\",\"Cap;\":\"⋒\",\"cap;\":\"∩\",\"capand;\":\"⩄\",\"capbrcup;\":\"⩉\",\"capcap;\":\"⩋\",\"capcup;\":\"⩇\",\"capdot;\":\"⩀\",\"CapitalDifferentialD;\":\"ⅅ\",\"caps;\":\"∩︀\",\"caret;\":\"⁁\",\"caron;\":\"ˇ\",\"Cayleys;\":\"ℭ\",\"ccaps;\":\"⩍\",\"Ccaron;\":\"Č\",\"ccaron;\":\"č\",\"Ccedil;\":\"Ç\",Ccedil:\"Ç\",\"ccedil;\":\"ç\",ccedil:\"ç\",\"Ccirc;\":\"Ĉ\",\"ccirc;\":\"ĉ\",\"Cconint;\":\"∰\",\"ccups;\":\"⩌\",\"ccupssm;\":\"⩐\",\"Cdot;\":\"Ċ\",\"cdot;\":\"ċ\",\"cedil;\":\"¸\",cedil:\"¸\",\"Cedilla;\":\"¸\",\"cemptyv;\":\"⦲\",\"cent;\":\"¢\",cent:\"¢\",\"CenterDot;\":\"·\",\"centerdot;\":\"·\",\"Cfr;\":\"ℭ\",\"cfr;\":\"𝔠\",\"CHcy;\":\"Ч\",\"chcy;\":\"ч\",\"check;\":\"✓\",\"checkmark;\":\"✓\",\"Chi;\":\"Χ\",\"chi;\":\"χ\",\"cir;\":\"○\",\"circ;\":\"ˆ\",\"circeq;\":\"≗\",\"circlearrowleft;\":\"↺\",\"circlearrowright;\":\"↻\",\"circledast;\":\"⊛\",\"circledcirc;\":\"⊚\",\"circleddash;\":\"⊝\",\"CircleDot;\":\"⊙\",\"circledR;\":\"®\",\"circledS;\":\"Ⓢ\",\"CircleMinus;\":\"⊖\",\"CirclePlus;\":\"⊕\",\"CircleTimes;\":\"⊗\",\"cirE;\":\"⧃\",\"cire;\":\"≗\",\"cirfnint;\":\"⨐\",\"cirmid;\":\"⫯\",\"cirscir;\":\"⧂\",\"ClockwiseContourIntegral;\":\"∲\",\"CloseCurlyDoubleQuote;\":\"”\",\"CloseCurlyQuote;\":\"’\",\"clubs;\":\"♣\",\"clubsuit;\":\"♣\",\"Colon;\":\"∷\",\"colon;\":\":\",\"Colone;\":\"⩴\",\"colone;\":\"≔\",\"coloneq;\":\"≔\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"∁\",\"compfn;\":\"∘\",\"complement;\":\"∁\",\"complexes;\":\"ℂ\",\"cong;\":\"≅\",\"congdot;\":\"⩭\",\"Congruent;\":\"≡\",\"Conint;\":\"∯\",\"conint;\":\"∮\",\"ContourIntegral;\":\"∮\",\"Copf;\":\"ℂ\",\"copf;\":\"𝕔\",\"coprod;\":\"∐\",\"Coproduct;\":\"∐\",\"COPY;\":\"©\",COPY:\"©\",\"copy;\":\"©\",copy:\"©\",\"copysr;\":\"℗\",\"CounterClockwiseContourIntegral;\":\"∳\",\"crarr;\":\"↵\",\"Cross;\":\"⨯\",\"cross;\":\"✗\",\"Cscr;\":\"𝒞\",\"cscr;\":\"𝒸\",\"csub;\":\"⫏\",\"csube;\":\"⫑\",\"csup;\":\"⫐\",\"csupe;\":\"⫒\",\"ctdot;\":\"⋯\",\"cudarrl;\":\"⤸\",\"cudarrr;\":\"⤵\",\"cuepr;\":\"⋞\",\"cuesc;\":\"⋟\",\"cularr;\":\"↶\",\"cularrp;\":\"⤽\",\"Cup;\":\"⋓\",\"cup;\":\"∪\",\"cupbrcap;\":\"⩈\",\"CupCap;\":\"≍\",\"cupcap;\":\"⩆\",\"cupcup;\":\"⩊\",\"cupdot;\":\"⊍\",\"cupor;\":\"⩅\",\"cups;\":\"∪︀\",\"curarr;\":\"↷\",\"curarrm;\":\"⤼\",\"curlyeqprec;\":\"⋞\",\"curlyeqsucc;\":\"⋟\",\"curlyvee;\":\"⋎\",\"curlywedge;\":\"⋏\",\"curren;\":\"¤\",curren:\"¤\",\"curvearrowleft;\":\"↶\",\"curvearrowright;\":\"↷\",\"cuvee;\":\"⋎\",\"cuwed;\":\"⋏\",\"cwconint;\":\"∲\",\"cwint;\":\"∱\",\"cylcty;\":\"⌭\",\"Dagger;\":\"‡\",\"dagger;\":\"†\",\"daleth;\":\"ℸ\",\"Darr;\":\"↡\",\"dArr;\":\"⇓\",\"darr;\":\"↓\",\"dash;\":\"‐\",\"Dashv;\":\"⫤\",\"dashv;\":\"⊣\",\"dbkarow;\":\"⤏\",\"dblac;\":\"˝\",\"Dcaron;\":\"Ď\",\"dcaron;\":\"ď\",\"Dcy;\":\"Д\",\"dcy;\":\"д\",\"DD;\":\"ⅅ\",\"dd;\":\"ⅆ\",\"ddagger;\":\"‡\",\"ddarr;\":\"⇊\",\"DDotrahd;\":\"⤑\",\"ddotseq;\":\"⩷\",\"deg;\":\"°\",deg:\"°\",\"Del;\":\"∇\",\"Delta;\":\"Δ\",\"delta;\":\"δ\",\"demptyv;\":\"⦱\",\"dfisht;\":\"⥿\",\"Dfr;\":\"𝔇\",\"dfr;\":\"𝔡\",\"dHar;\":\"⥥\",\"dharl;\":\"⇃\",\"dharr;\":\"⇂\",\"DiacriticalAcute;\":\"´\",\"DiacriticalDot;\":\"˙\",\"DiacriticalDoubleAcute;\":\"˝\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"˜\",\"diam;\":\"⋄\",\"Diamond;\":\"⋄\",\"diamond;\":\"⋄\",\"diamondsuit;\":\"♦\",\"diams;\":\"♦\",\"die;\":\"¨\",\"DifferentialD;\":\"ⅆ\",\"digamma;\":\"ϝ\",\"disin;\":\"⋲\",\"div;\":\"÷\",\"divide;\":\"÷\",divide:\"÷\",\"divideontimes;\":\"⋇\",\"divonx;\":\"⋇\",\"DJcy;\":\"Ђ\",\"djcy;\":\"ђ\",\"dlcorn;\":\"⌞\",\"dlcrop;\":\"⌍\",\"dollar;\":\"$\",\"Dopf;\":\"𝔻\",\"dopf;\":\"𝕕\",\"Dot;\":\"¨\",\"dot;\":\"˙\",\"DotDot;\":\"⃜\",\"doteq;\":\"≐\",\"doteqdot;\":\"≑\",\"DotEqual;\":\"≐\",\"dotminus;\":\"∸\",\"dotplus;\":\"∔\",\"dotsquare;\":\"⊡\",\"doublebarwedge;\":\"⌆\",\"DoubleContourIntegral;\":\"∯\",\"DoubleDot;\":\"¨\",\"DoubleDownArrow;\":\"⇓\",\"DoubleLeftArrow;\":\"⇐\",\"DoubleLeftRightArrow;\":\"⇔\",\"DoubleLeftTee;\":\"⫤\",\"DoubleLongLeftArrow;\":\"⟸\",\"DoubleLongLeftRightArrow;\":\"⟺\",\"DoubleLongRightArrow;\":\"⟹\",\"DoubleRightArrow;\":\"⇒\",\"DoubleRightTee;\":\"⊨\",\"DoubleUpArrow;\":\"⇑\",\"DoubleUpDownArrow;\":\"⇕\",\"DoubleVerticalBar;\":\"∥\",\"DownArrow;\":\"↓\",\"Downarrow;\":\"⇓\",\"downarrow;\":\"↓\",\"DownArrowBar;\":\"⤓\",\"DownArrowUpArrow;\":\"⇵\",\"DownBreve;\":\"̑\",\"downdownarrows;\":\"⇊\",\"downharpoonleft;\":\"⇃\",\"downharpoonright;\":\"⇂\",\"DownLeftRightVector;\":\"⥐\",\"DownLeftTeeVector;\":\"⥞\",\"DownLeftVector;\":\"↽\",\"DownLeftVectorBar;\":\"⥖\",\"DownRightTeeVector;\":\"⥟\",\"DownRightVector;\":\"⇁\",\"DownRightVectorBar;\":\"⥗\",\"DownTee;\":\"⊤\",\"DownTeeArrow;\":\"↧\",\"drbkarow;\":\"⤐\",\"drcorn;\":\"⌟\",\"drcrop;\":\"⌌\",\"Dscr;\":\"𝒟\",\"dscr;\":\"𝒹\",\"DScy;\":\"Ѕ\",\"dscy;\":\"ѕ\",\"dsol;\":\"⧶\",\"Dstrok;\":\"Đ\",\"dstrok;\":\"đ\",\"dtdot;\":\"⋱\",\"dtri;\":\"▿\",\"dtrif;\":\"▾\",\"duarr;\":\"⇵\",\"duhar;\":\"⥯\",\"dwangle;\":\"⦦\",\"DZcy;\":\"Џ\",\"dzcy;\":\"џ\",\"dzigrarr;\":\"⟿\",\"Eacute;\":\"É\",Eacute:\"É\",\"eacute;\":\"é\",eacute:\"é\",\"easter;\":\"⩮\",\"Ecaron;\":\"Ě\",\"ecaron;\":\"ě\",\"ecir;\":\"≖\",\"Ecirc;\":\"Ê\",Ecirc:\"Ê\",\"ecirc;\":\"ê\",ecirc:\"ê\",\"ecolon;\":\"≕\",\"Ecy;\":\"Э\",\"ecy;\":\"э\",\"eDDot;\":\"⩷\",\"Edot;\":\"Ė\",\"eDot;\":\"≑\",\"edot;\":\"ė\",\"ee;\":\"ⅇ\",\"efDot;\":\"≒\",\"Efr;\":\"𝔈\",\"efr;\":\"𝔢\",\"eg;\":\"⪚\",\"Egrave;\":\"È\",Egrave:\"È\",\"egrave;\":\"è\",egrave:\"è\",\"egs;\":\"⪖\",\"egsdot;\":\"⪘\",\"el;\":\"⪙\",\"Element;\":\"∈\",\"elinters;\":\"⏧\",\"ell;\":\"ℓ\",\"els;\":\"⪕\",\"elsdot;\":\"⪗\",\"Emacr;\":\"Ē\",\"emacr;\":\"ē\",\"empty;\":\"∅\",\"emptyset;\":\"∅\",\"EmptySmallSquare;\":\"◻\",\"emptyv;\":\"∅\",\"EmptyVerySmallSquare;\":\"▫\",\"emsp;\":\" \",\"emsp13;\":\" \",\"emsp14;\":\" \",\"ENG;\":\"Ŋ\",\"eng;\":\"ŋ\",\"ensp;\":\" \",\"Eogon;\":\"Ę\",\"eogon;\":\"ę\",\"Eopf;\":\"𝔼\",\"eopf;\":\"𝕖\",\"epar;\":\"⋕\",\"eparsl;\":\"⧣\",\"eplus;\":\"⩱\",\"epsi;\":\"ε\",\"Epsilon;\":\"Ε\",\"epsilon;\":\"ε\",\"epsiv;\":\"ϵ\",\"eqcirc;\":\"≖\",\"eqcolon;\":\"≕\",\"eqsim;\":\"≂\",\"eqslantgtr;\":\"⪖\",\"eqslantless;\":\"⪕\",\"Equal;\":\"⩵\",\"equals;\":\"=\",\"EqualTilde;\":\"≂\",\"equest;\":\"≟\",\"Equilibrium;\":\"⇌\",\"equiv;\":\"≡\",\"equivDD;\":\"⩸\",\"eqvparsl;\":\"⧥\",\"erarr;\":\"⥱\",\"erDot;\":\"≓\",\"Escr;\":\"ℰ\",\"escr;\":\"ℯ\",\"esdot;\":\"≐\",\"Esim;\":\"⩳\",\"esim;\":\"≂\",\"Eta;\":\"Η\",\"eta;\":\"η\",\"ETH;\":\"Ð\",ETH:\"Ð\",\"eth;\":\"ð\",eth:\"ð\",\"Euml;\":\"Ë\",Euml:\"Ë\",\"euml;\":\"ë\",euml:\"ë\",\"euro;\":\"€\",\"excl;\":\"!\",\"exist;\":\"∃\",\"Exists;\":\"∃\",\"expectation;\":\"ℰ\",\"ExponentialE;\":\"ⅇ\",\"exponentiale;\":\"ⅇ\",\"fallingdotseq;\":\"≒\",\"Fcy;\":\"Ф\",\"fcy;\":\"ф\",\"female;\":\"♀\",\"ffilig;\":\"ﬃ\",\"fflig;\":\"ﬀ\",\"ffllig;\":\"ﬄ\",\"Ffr;\":\"𝔉\",\"ffr;\":\"𝔣\",\"filig;\":\"ﬁ\",\"FilledSmallSquare;\":\"◼\",\"FilledVerySmallSquare;\":\"▪\",\"fjlig;\":\"fj\",\"flat;\":\"♭\",\"fllig;\":\"ﬂ\",\"fltns;\":\"▱\",\"fnof;\":\"ƒ\",\"Fopf;\":\"𝔽\",\"fopf;\":\"𝕗\",\"ForAll;\":\"∀\",\"forall;\":\"∀\",\"fork;\":\"⋔\",\"forkv;\":\"⫙\",\"Fouriertrf;\":\"ℱ\",\"fpartint;\":\"⨍\",\"frac12;\":\"½\",frac12:\"½\",\"frac13;\":\"⅓\",\"frac14;\":\"¼\",frac14:\"¼\",\"frac15;\":\"⅕\",\"frac16;\":\"⅙\",\"frac18;\":\"⅛\",\"frac23;\":\"⅔\",\"frac25;\":\"⅖\",\"frac34;\":\"¾\",frac34:\"¾\",\"frac35;\":\"⅗\",\"frac38;\":\"⅜\",\"frac45;\":\"⅘\",\"frac56;\":\"⅚\",\"frac58;\":\"⅝\",\"frac78;\":\"⅞\",\"frasl;\":\"⁄\",\"frown;\":\"⌢\",\"Fscr;\":\"ℱ\",\"fscr;\":\"𝒻\",\"gacute;\":\"ǵ\",\"Gamma;\":\"Γ\",\"gamma;\":\"γ\",\"Gammad;\":\"Ϝ\",\"gammad;\":\"ϝ\",\"gap;\":\"⪆\",\"Gbreve;\":\"Ğ\",\"gbreve;\":\"ğ\",\"Gcedil;\":\"Ģ\",\"Gcirc;\":\"Ĝ\",\"gcirc;\":\"ĝ\",\"Gcy;\":\"Г\",\"gcy;\":\"г\",\"Gdot;\":\"Ġ\",\"gdot;\":\"ġ\",\"gE;\":\"≧\",\"ge;\":\"≥\",\"gEl;\":\"⪌\",\"gel;\":\"⋛\",\"geq;\":\"≥\",\"geqq;\":\"≧\",\"geqslant;\":\"⩾\",\"ges;\":\"⩾\",\"gescc;\":\"⪩\",\"gesdot;\":\"⪀\",\"gesdoto;\":\"⪂\",\"gesdotol;\":\"⪄\",\"gesl;\":\"⋛︀\",\"gesles;\":\"⪔\",\"Gfr;\":\"𝔊\",\"gfr;\":\"𝔤\",\"Gg;\":\"⋙\",\"gg;\":\"≫\",\"ggg;\":\"⋙\",\"gimel;\":\"ℷ\",\"GJcy;\":\"Ѓ\",\"gjcy;\":\"ѓ\",\"gl;\":\"≷\",\"gla;\":\"⪥\",\"glE;\":\"⪒\",\"glj;\":\"⪤\",\"gnap;\":\"⪊\",\"gnapprox;\":\"⪊\",\"gnE;\":\"≩\",\"gne;\":\"⪈\",\"gneq;\":\"⪈\",\"gneqq;\":\"≩\",\"gnsim;\":\"⋧\",\"Gopf;\":\"𝔾\",\"gopf;\":\"𝕘\",\"grave;\":\"`\",\"GreaterEqual;\":\"≥\",\"GreaterEqualLess;\":\"⋛\",\"GreaterFullEqual;\":\"≧\",\"GreaterGreater;\":\"⪢\",\"GreaterLess;\":\"≷\",\"GreaterSlantEqual;\":\"⩾\",\"GreaterTilde;\":\"≳\",\"Gscr;\":\"𝒢\",\"gscr;\":\"ℊ\",\"gsim;\":\"≳\",\"gsime;\":\"⪎\",\"gsiml;\":\"⪐\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"≫\",\"gt;\":\">\",gt:\">\",\"gtcc;\":\"⪧\",\"gtcir;\":\"⩺\",\"gtdot;\":\"⋗\",\"gtlPar;\":\"⦕\",\"gtquest;\":\"⩼\",\"gtrapprox;\":\"⪆\",\"gtrarr;\":\"⥸\",\"gtrdot;\":\"⋗\",\"gtreqless;\":\"⋛\",\"gtreqqless;\":\"⪌\",\"gtrless;\":\"≷\",\"gtrsim;\":\"≳\",\"gvertneqq;\":\"≩︀\",\"gvnE;\":\"≩︀\",\"Hacek;\":\"ˇ\",\"hairsp;\":\" \",\"half;\":\"½\",\"hamilt;\":\"ℋ\",\"HARDcy;\":\"Ъ\",\"hardcy;\":\"ъ\",\"hArr;\":\"⇔\",\"harr;\":\"↔\",\"harrcir;\":\"⥈\",\"harrw;\":\"↭\",\"Hat;\":\"^\",\"hbar;\":\"ℏ\",\"Hcirc;\":\"Ĥ\",\"hcirc;\":\"ĥ\",\"hearts;\":\"♥\",\"heartsuit;\":\"♥\",\"hellip;\":\"…\",\"hercon;\":\"⊹\",\"Hfr;\":\"ℌ\",\"hfr;\":\"𝔥\",\"HilbertSpace;\":\"ℋ\",\"hksearow;\":\"⤥\",\"hkswarow;\":\"⤦\",\"hoarr;\":\"⇿\",\"homtht;\":\"∻\",\"hookleftarrow;\":\"↩\",\"hookrightarrow;\":\"↪\",\"Hopf;\":\"ℍ\",\"hopf;\":\"𝕙\",\"horbar;\":\"―\",\"HorizontalLine;\":\"─\",\"Hscr;\":\"ℋ\",\"hscr;\":\"𝒽\",\"hslash;\":\"ℏ\",\"Hstrok;\":\"Ħ\",\"hstrok;\":\"ħ\",\"HumpDownHump;\":\"≎\",\"HumpEqual;\":\"≏\",\"hybull;\":\"⁃\",\"hyphen;\":\"‐\",\"Iacute;\":\"Í\",Iacute:\"Í\",\"iacute;\":\"í\",iacute:\"í\",\"ic;\":\"⁣\",\"Icirc;\":\"Î\",Icirc:\"Î\",\"icirc;\":\"î\",icirc:\"î\",\"Icy;\":\"И\",\"icy;\":\"и\",\"Idot;\":\"İ\",\"IEcy;\":\"Е\",\"iecy;\":\"е\",\"iexcl;\":\"¡\",iexcl:\"¡\",\"iff;\":\"⇔\",\"Ifr;\":\"ℑ\",\"ifr;\":\"𝔦\",\"Igrave;\":\"Ì\",Igrave:\"Ì\",\"igrave;\":\"ì\",igrave:\"ì\",\"ii;\":\"ⅈ\",\"iiiint;\":\"⨌\",\"iiint;\":\"∭\",\"iinfin;\":\"⧜\",\"iiota;\":\"℩\",\"IJlig;\":\"Ĳ\",\"ijlig;\":\"ĳ\",\"Im;\":\"ℑ\",\"Imacr;\":\"Ī\",\"imacr;\":\"ī\",\"image;\":\"ℑ\",\"ImaginaryI;\":\"ⅈ\",\"imagline;\":\"ℐ\",\"imagpart;\":\"ℑ\",\"imath;\":\"ı\",\"imof;\":\"⊷\",\"imped;\":\"Ƶ\",\"Implies;\":\"⇒\",\"in;\":\"∈\",\"incare;\":\"℅\",\"infin;\":\"∞\",\"infintie;\":\"⧝\",\"inodot;\":\"ı\",\"Int;\":\"∬\",\"int;\":\"∫\",\"intcal;\":\"⊺\",\"integers;\":\"ℤ\",\"Integral;\":\"∫\",\"intercal;\":\"⊺\",\"Intersection;\":\"⋂\",\"intlarhk;\":\"⨗\",\"intprod;\":\"⨼\",\"InvisibleComma;\":\"⁣\",\"InvisibleTimes;\":\"⁢\",\"IOcy;\":\"Ё\",\"iocy;\":\"ё\",\"Iogon;\":\"Į\",\"iogon;\":\"į\",\"Iopf;\":\"𝕀\",\"iopf;\":\"𝕚\",\"Iota;\":\"Ι\",\"iota;\":\"ι\",\"iprod;\":\"⨼\",\"iquest;\":\"¿\",iquest:\"¿\",\"Iscr;\":\"ℐ\",\"iscr;\":\"𝒾\",\"isin;\":\"∈\",\"isindot;\":\"⋵\",\"isinE;\":\"⋹\",\"isins;\":\"⋴\",\"isinsv;\":\"⋳\",\"isinv;\":\"∈\",\"it;\":\"⁢\",\"Itilde;\":\"Ĩ\",\"itilde;\":\"ĩ\",\"Iukcy;\":\"І\",\"iukcy;\":\"і\",\"Iuml;\":\"Ï\",Iuml:\"Ï\",\"iuml;\":\"ï\",iuml:\"ï\",\"Jcirc;\":\"Ĵ\",\"jcirc;\":\"ĵ\",\"Jcy;\":\"Й\",\"jcy;\":\"й\",\"Jfr;\":\"𝔍\",\"jfr;\":\"𝔧\",\"jmath;\":\"ȷ\",\"Jopf;\":\"𝕁\",\"jopf;\":\"𝕛\",\"Jscr;\":\"𝒥\",\"jscr;\":\"𝒿\",\"Jsercy;\":\"Ј\",\"jsercy;\":\"ј\",\"Jukcy;\":\"Є\",\"jukcy;\":\"є\",\"Kappa;\":\"Κ\",\"kappa;\":\"κ\",\"kappav;\":\"ϰ\",\"Kcedil;\":\"Ķ\",\"kcedil;\":\"ķ\",\"Kcy;\":\"К\",\"kcy;\":\"к\",\"Kfr;\":\"𝔎\",\"kfr;\":\"𝔨\",\"kgreen;\":\"ĸ\",\"KHcy;\":\"Х\",\"khcy;\":\"х\",\"KJcy;\":\"Ќ\",\"kjcy;\":\"ќ\",\"Kopf;\":\"𝕂\",\"kopf;\":\"𝕜\",\"Kscr;\":\"𝒦\",\"kscr;\":\"𝓀\",\"lAarr;\":\"⇚\",\"Lacute;\":\"Ĺ\",\"lacute;\":\"ĺ\",\"laemptyv;\":\"⦴\",\"lagran;\":\"ℒ\",\"Lambda;\":\"Λ\",\"lambda;\":\"λ\",\"Lang;\":\"⟪\",\"lang;\":\"⟨\",\"langd;\":\"⦑\",\"langle;\":\"⟨\",\"lap;\":\"⪅\",\"Laplacetrf;\":\"ℒ\",\"laquo;\":\"«\",laquo:\"«\",\"Larr;\":\"↞\",\"lArr;\":\"⇐\",\"larr;\":\"←\",\"larrb;\":\"⇤\",\"larrbfs;\":\"⤟\",\"larrfs;\":\"⤝\",\"larrhk;\":\"↩\",\"larrlp;\":\"↫\",\"larrpl;\":\"⤹\",\"larrsim;\":\"⥳\",\"larrtl;\":\"↢\",\"lat;\":\"⪫\",\"lAtail;\":\"⤛\",\"latail;\":\"⤙\",\"late;\":\"⪭\",\"lates;\":\"⪭︀\",\"lBarr;\":\"⤎\",\"lbarr;\":\"⤌\",\"lbbrk;\":\"❲\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"⦋\",\"lbrksld;\":\"⦏\",\"lbrkslu;\":\"⦍\",\"Lcaron;\":\"Ľ\",\"lcaron;\":\"ľ\",\"Lcedil;\":\"Ļ\",\"lcedil;\":\"ļ\",\"lceil;\":\"⌈\",\"lcub;\":\"{\",\"Lcy;\":\"Л\",\"lcy;\":\"л\",\"ldca;\":\"⤶\",\"ldquo;\":\"“\",\"ldquor;\":\"„\",\"ldrdhar;\":\"⥧\",\"ldrushar;\":\"⥋\",\"ldsh;\":\"↲\",\"lE;\":\"≦\",\"le;\":\"≤\",\"LeftAngleBracket;\":\"⟨\",\"LeftArrow;\":\"←\",\"Leftarrow;\":\"⇐\",\"leftarrow;\":\"←\",\"LeftArrowBar;\":\"⇤\",\"LeftArrowRightArrow;\":\"⇆\",\"leftarrowtail;\":\"↢\",\"LeftCeiling;\":\"⌈\",\"LeftDoubleBracket;\":\"⟦\",\"LeftDownTeeVector;\":\"⥡\",\"LeftDownVector;\":\"⇃\",\"LeftDownVectorBar;\":\"⥙\",\"LeftFloor;\":\"⌊\",\"leftharpoondown;\":\"↽\",\"leftharpoonup;\":\"↼\",\"leftleftarrows;\":\"⇇\",\"LeftRightArrow;\":\"↔\",\"Leftrightarrow;\":\"⇔\",\"leftrightarrow;\":\"↔\",\"leftrightarrows;\":\"⇆\",\"leftrightharpoons;\":\"⇋\",\"leftrightsquigarrow;\":\"↭\",\"LeftRightVector;\":\"⥎\",\"LeftTee;\":\"⊣\",\"LeftTeeArrow;\":\"↤\",\"LeftTeeVector;\":\"⥚\",\"leftthreetimes;\":\"⋋\",\"LeftTriangle;\":\"⊲\",\"LeftTriangleBar;\":\"⧏\",\"LeftTriangleEqual;\":\"⊴\",\"LeftUpDownVector;\":\"⥑\",\"LeftUpTeeVector;\":\"⥠\",\"LeftUpVector;\":\"↿\",\"LeftUpVectorBar;\":\"⥘\",\"LeftVector;\":\"↼\",\"LeftVectorBar;\":\"⥒\",\"lEg;\":\"⪋\",\"leg;\":\"⋚\",\"leq;\":\"≤\",\"leqq;\":\"≦\",\"leqslant;\":\"⩽\",\"les;\":\"⩽\",\"lescc;\":\"⪨\",\"lesdot;\":\"⩿\",\"lesdoto;\":\"⪁\",\"lesdotor;\":\"⪃\",\"lesg;\":\"⋚︀\",\"lesges;\":\"⪓\",\"lessapprox;\":\"⪅\",\"lessdot;\":\"⋖\",\"lesseqgtr;\":\"⋚\",\"lesseqqgtr;\":\"⪋\",\"LessEqualGreater;\":\"⋚\",\"LessFullEqual;\":\"≦\",\"LessGreater;\":\"≶\",\"lessgtr;\":\"≶\",\"LessLess;\":\"⪡\",\"lesssim;\":\"≲\",\"LessSlantEqual;\":\"⩽\",\"LessTilde;\":\"≲\",\"lfisht;\":\"⥼\",\"lfloor;\":\"⌊\",\"Lfr;\":\"𝔏\",\"lfr;\":\"𝔩\",\"lg;\":\"≶\",\"lgE;\":\"⪑\",\"lHar;\":\"⥢\",\"lhard;\":\"↽\",\"lharu;\":\"↼\",\"lharul;\":\"⥪\",\"lhblk;\":\"▄\",\"LJcy;\":\"Љ\",\"ljcy;\":\"љ\",\"Ll;\":\"⋘\",\"ll;\":\"≪\",\"llarr;\":\"⇇\",\"llcorner;\":\"⌞\",\"Lleftarrow;\":\"⇚\",\"llhard;\":\"⥫\",\"lltri;\":\"◺\",\"Lmidot;\":\"Ŀ\",\"lmidot;\":\"ŀ\",\"lmoust;\":\"⎰\",\"lmoustache;\":\"⎰\",\"lnap;\":\"⪉\",\"lnapprox;\":\"⪉\",\"lnE;\":\"≨\",\"lne;\":\"⪇\",\"lneq;\":\"⪇\",\"lneqq;\":\"≨\",\"lnsim;\":\"⋦\",\"loang;\":\"⟬\",\"loarr;\":\"⇽\",\"lobrk;\":\"⟦\",\"LongLeftArrow;\":\"⟵\",\"Longleftarrow;\":\"⟸\",\"longleftarrow;\":\"⟵\",\"LongLeftRightArrow;\":\"⟷\",\"Longleftrightarrow;\":\"⟺\",\"longleftrightarrow;\":\"⟷\",\"longmapsto;\":\"⟼\",\"LongRightArrow;\":\"⟶\",\"Longrightarrow;\":\"⟹\",\"longrightarrow;\":\"⟶\",\"looparrowleft;\":\"↫\",\"looparrowright;\":\"↬\",\"lopar;\":\"⦅\",\"Lopf;\":\"𝕃\",\"lopf;\":\"𝕝\",\"loplus;\":\"⨭\",\"lotimes;\":\"⨴\",\"lowast;\":\"∗\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"↙\",\"LowerRightArrow;\":\"↘\",\"loz;\":\"◊\",\"lozenge;\":\"◊\",\"lozf;\":\"⧫\",\"lpar;\":\"(\",\"lparlt;\":\"⦓\",\"lrarr;\":\"⇆\",\"lrcorner;\":\"⌟\",\"lrhar;\":\"⇋\",\"lrhard;\":\"⥭\",\"lrm;\":\"‎\",\"lrtri;\":\"⊿\",\"lsaquo;\":\"‹\",\"Lscr;\":\"ℒ\",\"lscr;\":\"𝓁\",\"Lsh;\":\"↰\",\"lsh;\":\"↰\",\"lsim;\":\"≲\",\"lsime;\":\"⪍\",\"lsimg;\":\"⪏\",\"lsqb;\":\"[\",\"lsquo;\":\"‘\",\"lsquor;\":\"‚\",\"Lstrok;\":\"Ł\",\"lstrok;\":\"ł\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"≪\",\"lt;\":\"<\",lt:\"<\",\"ltcc;\":\"⪦\",\"ltcir;\":\"⩹\",\"ltdot;\":\"⋖\",\"lthree;\":\"⋋\",\"ltimes;\":\"⋉\",\"ltlarr;\":\"⥶\",\"ltquest;\":\"⩻\",\"ltri;\":\"◃\",\"ltrie;\":\"⊴\",\"ltrif;\":\"◂\",\"ltrPar;\":\"⦖\",\"lurdshar;\":\"⥊\",\"luruhar;\":\"⥦\",\"lvertneqq;\":\"≨︀\",\"lvnE;\":\"≨︀\",\"macr;\":\"¯\",macr:\"¯\",\"male;\":\"♂\",\"malt;\":\"✠\",\"maltese;\":\"✠\",\"Map;\":\"⤅\",\"map;\":\"↦\",\"mapsto;\":\"↦\",\"mapstodown;\":\"↧\",\"mapstoleft;\":\"↤\",\"mapstoup;\":\"↥\",\"marker;\":\"▮\",\"mcomma;\":\"⨩\",\"Mcy;\":\"М\",\"mcy;\":\"м\",\"mdash;\":\"—\",\"mDDot;\":\"∺\",\"measuredangle;\":\"∡\",\"MediumSpace;\":\" \",\"Mellintrf;\":\"ℳ\",\"Mfr;\":\"𝔐\",\"mfr;\":\"𝔪\",\"mho;\":\"℧\",\"micro;\":\"µ\",micro:\"µ\",\"mid;\":\"∣\",\"midast;\":\"*\",\"midcir;\":\"⫰\",\"middot;\":\"·\",middot:\"·\",\"minus;\":\"−\",\"minusb;\":\"⊟\",\"minusd;\":\"∸\",\"minusdu;\":\"⨪\",\"MinusPlus;\":\"∓\",\"mlcp;\":\"⫛\",\"mldr;\":\"…\",\"mnplus;\":\"∓\",\"models;\":\"⊧\",\"Mopf;\":\"𝕄\",\"mopf;\":\"𝕞\",\"mp;\":\"∓\",\"Mscr;\":\"ℳ\",\"mscr;\":\"𝓂\",\"mstpos;\":\"∾\",\"Mu;\":\"Μ\",\"mu;\":\"μ\",\"multimap;\":\"⊸\",\"mumap;\":\"⊸\",\"nabla;\":\"∇\",\"Nacute;\":\"Ń\",\"nacute;\":\"ń\",\"nang;\":\"∠⃒\",\"nap;\":\"≉\",\"napE;\":\"⩰̸\",\"napid;\":\"≋̸\",\"napos;\":\"ŉ\",\"napprox;\":\"≉\",\"natur;\":\"♮\",\"natural;\":\"♮\",\"naturals;\":\"ℕ\",\"nbsp;\":\" \",nbsp:\" \",\"nbump;\":\"≎̸\",\"nbumpe;\":\"≏̸\",\"ncap;\":\"⩃\",\"Ncaron;\":\"Ň\",\"ncaron;\":\"ň\",\"Ncedil;\":\"Ņ\",\"ncedil;\":\"ņ\",\"ncong;\":\"≇\",\"ncongdot;\":\"⩭̸\",\"ncup;\":\"⩂\",\"Ncy;\":\"Н\",\"ncy;\":\"н\",\"ndash;\":\"–\",\"ne;\":\"≠\",\"nearhk;\":\"⤤\",\"neArr;\":\"⇗\",\"nearr;\":\"↗\",\"nearrow;\":\"↗\",\"nedot;\":\"≐̸\",\"NegativeMediumSpace;\":\"​\",\"NegativeThickSpace;\":\"​\",\"NegativeThinSpace;\":\"​\",\"NegativeVeryThinSpace;\":\"​\",\"nequiv;\":\"≢\",\"nesear;\":\"⤨\",\"nesim;\":\"≂̸\",\"NestedGreaterGreater;\":\"≫\",\"NestedLessLess;\":\"≪\",\"NewLine;\":\"\\n\",\"nexist;\":\"∄\",\"nexists;\":\"∄\",\"Nfr;\":\"𝔑\",\"nfr;\":\"𝔫\",\"ngE;\":\"≧̸\",\"nge;\":\"≱\",\"ngeq;\":\"≱\",\"ngeqq;\":\"≧̸\",\"ngeqslant;\":\"⩾̸\",\"nges;\":\"⩾̸\",\"nGg;\":\"⋙̸\",\"ngsim;\":\"≵\",\"nGt;\":\"≫⃒\",\"ngt;\":\"≯\",\"ngtr;\":\"≯\",\"nGtv;\":\"≫̸\",\"nhArr;\":\"⇎\",\"nharr;\":\"↮\",\"nhpar;\":\"⫲\",\"ni;\":\"∋\",\"nis;\":\"⋼\",\"nisd;\":\"⋺\",\"niv;\":\"∋\",\"NJcy;\":\"Њ\",\"njcy;\":\"њ\",\"nlArr;\":\"⇍\",\"nlarr;\":\"↚\",\"nldr;\":\"‥\",\"nlE;\":\"≦̸\",\"nle;\":\"≰\",\"nLeftarrow;\":\"⇍\",\"nleftarrow;\":\"↚\",\"nLeftrightarrow;\":\"⇎\",\"nleftrightarrow;\":\"↮\",\"nleq;\":\"≰\",\"nleqq;\":\"≦̸\",\"nleqslant;\":\"⩽̸\",\"nles;\":\"⩽̸\",\"nless;\":\"≮\",\"nLl;\":\"⋘̸\",\"nlsim;\":\"≴\",\"nLt;\":\"≪⃒\",\"nlt;\":\"≮\",\"nltri;\":\"⋪\",\"nltrie;\":\"⋬\",\"nLtv;\":\"≪̸\",\"nmid;\":\"∤\",\"NoBreak;\":\"⁠\",\"NonBreakingSpace;\":\" \",\"Nopf;\":\"ℕ\",\"nopf;\":\"𝕟\",\"Not;\":\"⫬\",\"not;\":\"¬\",not:\"¬\",\"NotCongruent;\":\"≢\",\"NotCupCap;\":\"≭\",\"NotDoubleVerticalBar;\":\"∦\",\"NotElement;\":\"∉\",\"NotEqual;\":\"≠\",\"NotEqualTilde;\":\"≂̸\",\"NotExists;\":\"∄\",\"NotGreater;\":\"≯\",\"NotGreaterEqual;\":\"≱\",\"NotGreaterFullEqual;\":\"≧̸\",\"NotGreaterGreater;\":\"≫̸\",\"NotGreaterLess;\":\"≹\",\"NotGreaterSlantEqual;\":\"⩾̸\",\"NotGreaterTilde;\":\"≵\",\"NotHumpDownHump;\":\"≎̸\",\"NotHumpEqual;\":\"≏̸\",\"notin;\":\"∉\",\"notindot;\":\"⋵̸\",\"notinE;\":\"⋹̸\",\"notinva;\":\"∉\",\"notinvb;\":\"⋷\",\"notinvc;\":\"⋶\",\"NotLeftTriangle;\":\"⋪\",\"NotLeftTriangleBar;\":\"⧏̸\",\"NotLeftTriangleEqual;\":\"⋬\",\"NotLess;\":\"≮\",\"NotLessEqual;\":\"≰\",\"NotLessGreater;\":\"≸\",\"NotLessLess;\":\"≪̸\",\"NotLessSlantEqual;\":\"⩽̸\",\"NotLessTilde;\":\"≴\",\"NotNestedGreaterGreater;\":\"⪢̸\",\"NotNestedLessLess;\":\"⪡̸\",\"notni;\":\"∌\",\"notniva;\":\"∌\",\"notnivb;\":\"⋾\",\"notnivc;\":\"⋽\",\"NotPrecedes;\":\"⊀\",\"NotPrecedesEqual;\":\"⪯̸\",\"NotPrecedesSlantEqual;\":\"⋠\",\"NotReverseElement;\":\"∌\",\"NotRightTriangle;\":\"⋫\",\"NotRightTriangleBar;\":\"⧐̸\",\"NotRightTriangleEqual;\":\"⋭\",\"NotSquareSubset;\":\"⊏̸\",\"NotSquareSubsetEqual;\":\"⋢\",\"NotSquareSuperset;\":\"⊐̸\",\"NotSquareSupersetEqual;\":\"⋣\",\"NotSubset;\":\"⊂⃒\",\"NotSubsetEqual;\":\"⊈\",\"NotSucceeds;\":\"⊁\",\"NotSucceedsEqual;\":\"⪰̸\",\"NotSucceedsSlantEqual;\":\"⋡\",\"NotSucceedsTilde;\":\"≿̸\",\"NotSuperset;\":\"⊃⃒\",\"NotSupersetEqual;\":\"⊉\",\"NotTilde;\":\"≁\",\"NotTildeEqual;\":\"≄\",\"NotTildeFullEqual;\":\"≇\",\"NotTildeTilde;\":\"≉\",\"NotVerticalBar;\":\"∤\",\"npar;\":\"∦\",\"nparallel;\":\"∦\",\"nparsl;\":\"⫽⃥\",\"npart;\":\"∂̸\",\"npolint;\":\"⨔\",\"npr;\":\"⊀\",\"nprcue;\":\"⋠\",\"npre;\":\"⪯̸\",\"nprec;\":\"⊀\",\"npreceq;\":\"⪯̸\",\"nrArr;\":\"⇏\",\"nrarr;\":\"↛\",\"nrarrc;\":\"⤳̸\",\"nrarrw;\":\"↝̸\",\"nRightarrow;\":\"⇏\",\"nrightarrow;\":\"↛\",\"nrtri;\":\"⋫\",\"nrtrie;\":\"⋭\",\"nsc;\":\"⊁\",\"nsccue;\":\"⋡\",\"nsce;\":\"⪰̸\",\"Nscr;\":\"𝒩\",\"nscr;\":\"𝓃\",\"nshortmid;\":\"∤\",\"nshortparallel;\":\"∦\",\"nsim;\":\"≁\",\"nsime;\":\"≄\",\"nsimeq;\":\"≄\",\"nsmid;\":\"∤\",\"nspar;\":\"∦\",\"nsqsube;\":\"⋢\",\"nsqsupe;\":\"⋣\",\"nsub;\":\"⊄\",\"nsubE;\":\"⫅̸\",\"nsube;\":\"⊈\",\"nsubset;\":\"⊂⃒\",\"nsubseteq;\":\"⊈\",\"nsubseteqq;\":\"⫅̸\",\"nsucc;\":\"⊁\",\"nsucceq;\":\"⪰̸\",\"nsup;\":\"⊅\",\"nsupE;\":\"⫆̸\",\"nsupe;\":\"⊉\",\"nsupset;\":\"⊃⃒\",\"nsupseteq;\":\"⊉\",\"nsupseteqq;\":\"⫆̸\",\"ntgl;\":\"≹\",\"Ntilde;\":\"Ñ\",Ntilde:\"Ñ\",\"ntilde;\":\"ñ\",ntilde:\"ñ\",\"ntlg;\":\"≸\",\"ntriangleleft;\":\"⋪\",\"ntrianglelefteq;\":\"⋬\",\"ntriangleright;\":\"⋫\",\"ntrianglerighteq;\":\"⋭\",\"Nu;\":\"Ν\",\"nu;\":\"ν\",\"num;\":\"#\",\"numero;\":\"№\",\"numsp;\":\" \",\"nvap;\":\"≍⃒\",\"nVDash;\":\"⊯\",\"nVdash;\":\"⊮\",\"nvDash;\":\"⊭\",\"nvdash;\":\"⊬\",\"nvge;\":\"≥⃒\",\"nvgt;\":\">⃒\",\"nvHarr;\":\"⤄\",\"nvinfin;\":\"⧞\",\"nvlArr;\":\"⤂\",\"nvle;\":\"≤⃒\",\"nvlt;\":\"<⃒\",\"nvltrie;\":\"⊴⃒\",\"nvrArr;\":\"⤃\",\"nvrtrie;\":\"⊵⃒\",\"nvsim;\":\"∼⃒\",\"nwarhk;\":\"⤣\",\"nwArr;\":\"⇖\",\"nwarr;\":\"↖\",\"nwarrow;\":\"↖\",\"nwnear;\":\"⤧\",\"Oacute;\":\"Ó\",Oacute:\"Ó\",\"oacute;\":\"ó\",oacute:\"ó\",\"oast;\":\"⊛\",\"ocir;\":\"⊚\",\"Ocirc;\":\"Ô\",Ocirc:\"Ô\",\"ocirc;\":\"ô\",ocirc:\"ô\",\"Ocy;\":\"О\",\"ocy;\":\"о\",\"odash;\":\"⊝\",\"Odblac;\":\"Ő\",\"odblac;\":\"ő\",\"odiv;\":\"⨸\",\"odot;\":\"⊙\",\"odsold;\":\"⦼\",\"OElig;\":\"Œ\",\"oelig;\":\"œ\",\"ofcir;\":\"⦿\",\"Ofr;\":\"𝔒\",\"ofr;\":\"𝔬\",\"ogon;\":\"˛\",\"Ograve;\":\"Ò\",Ograve:\"Ò\",\"ograve;\":\"ò\",ograve:\"ò\",\"ogt;\":\"⧁\",\"ohbar;\":\"⦵\",\"ohm;\":\"Ω\",\"oint;\":\"∮\",\"olarr;\":\"↺\",\"olcir;\":\"⦾\",\"olcross;\":\"⦻\",\"oline;\":\"‾\",\"olt;\":\"⧀\",\"Omacr;\":\"Ō\",\"omacr;\":\"ō\",\"Omega;\":\"Ω\",\"omega;\":\"ω\",\"Omicron;\":\"Ο\",\"omicron;\":\"ο\",\"omid;\":\"⦶\",\"ominus;\":\"⊖\",\"Oopf;\":\"𝕆\",\"oopf;\":\"𝕠\",\"opar;\":\"⦷\",\"OpenCurlyDoubleQuote;\":\"“\",\"OpenCurlyQuote;\":\"‘\",\"operp;\":\"⦹\",\"oplus;\":\"⊕\",\"Or;\":\"⩔\",\"or;\":\"∨\",\"orarr;\":\"↻\",\"ord;\":\"⩝\",\"order;\":\"ℴ\",\"orderof;\":\"ℴ\",\"ordf;\":\"ª\",ordf:\"ª\",\"ordm;\":\"º\",ordm:\"º\",\"origof;\":\"⊶\",\"oror;\":\"⩖\",\"orslope;\":\"⩗\",\"orv;\":\"⩛\",\"oS;\":\"Ⓢ\",\"Oscr;\":\"𝒪\",\"oscr;\":\"ℴ\",\"Oslash;\":\"Ø\",Oslash:\"Ø\",\"oslash;\":\"ø\",oslash:\"ø\",\"osol;\":\"⊘\",\"Otilde;\":\"Õ\",Otilde:\"Õ\",\"otilde;\":\"õ\",otilde:\"õ\",\"Otimes;\":\"⨷\",\"otimes;\":\"⊗\",\"otimesas;\":\"⨶\",\"Ouml;\":\"Ö\",Ouml:\"Ö\",\"ouml;\":\"ö\",ouml:\"ö\",\"ovbar;\":\"⌽\",\"OverBar;\":\"‾\",\"OverBrace;\":\"⏞\",\"OverBracket;\":\"⎴\",\"OverParenthesis;\":\"⏜\",\"par;\":\"∥\",\"para;\":\"¶\",para:\"¶\",\"parallel;\":\"∥\",\"parsim;\":\"⫳\",\"parsl;\":\"⫽\",\"part;\":\"∂\",\"PartialD;\":\"∂\",\"Pcy;\":\"П\",\"pcy;\":\"п\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"‰\",\"perp;\":\"⊥\",\"pertenk;\":\"‱\",\"Pfr;\":\"𝔓\",\"pfr;\":\"𝔭\",\"Phi;\":\"Φ\",\"phi;\":\"φ\",\"phiv;\":\"ϕ\",\"phmmat;\":\"ℳ\",\"phone;\":\"☎\",\"Pi;\":\"Π\",\"pi;\":\"π\",\"pitchfork;\":\"⋔\",\"piv;\":\"ϖ\",\"planck;\":\"ℏ\",\"planckh;\":\"ℎ\",\"plankv;\":\"ℏ\",\"plus;\":\"+\",\"plusacir;\":\"⨣\",\"plusb;\":\"⊞\",\"pluscir;\":\"⨢\",\"plusdo;\":\"∔\",\"plusdu;\":\"⨥\",\"pluse;\":\"⩲\",\"PlusMinus;\":\"±\",\"plusmn;\":\"±\",plusmn:\"±\",\"plussim;\":\"⨦\",\"plustwo;\":\"⨧\",\"pm;\":\"±\",\"Poincareplane;\":\"ℌ\",\"pointint;\":\"⨕\",\"Popf;\":\"ℙ\",\"popf;\":\"𝕡\",\"pound;\":\"£\",pound:\"£\",\"Pr;\":\"⪻\",\"pr;\":\"≺\",\"prap;\":\"⪷\",\"prcue;\":\"≼\",\"prE;\":\"⪳\",\"pre;\":\"⪯\",\"prec;\":\"≺\",\"precapprox;\":\"⪷\",\"preccurlyeq;\":\"≼\",\"Precedes;\":\"≺\",\"PrecedesEqual;\":\"⪯\",\"PrecedesSlantEqual;\":\"≼\",\"PrecedesTilde;\":\"≾\",\"preceq;\":\"⪯\",\"precnapprox;\":\"⪹\",\"precneqq;\":\"⪵\",\"precnsim;\":\"⋨\",\"precsim;\":\"≾\",\"Prime;\":\"″\",\"prime;\":\"′\",\"primes;\":\"ℙ\",\"prnap;\":\"⪹\",\"prnE;\":\"⪵\",\"prnsim;\":\"⋨\",\"prod;\":\"∏\",\"Product;\":\"∏\",\"profalar;\":\"⌮\",\"profline;\":\"⌒\",\"profsurf;\":\"⌓\",\"prop;\":\"∝\",\"Proportion;\":\"∷\",\"Proportional;\":\"∝\",\"propto;\":\"∝\",\"prsim;\":\"≾\",\"prurel;\":\"⊰\",\"Pscr;\":\"𝒫\",\"pscr;\":\"𝓅\",\"Psi;\":\"Ψ\",\"psi;\":\"ψ\",\"puncsp;\":\" \",\"Qfr;\":\"𝔔\",\"qfr;\":\"𝔮\",\"qint;\":\"⨌\",\"Qopf;\":\"ℚ\",\"qopf;\":\"𝕢\",\"qprime;\":\"⁗\",\"Qscr;\":\"𝒬\",\"qscr;\":\"𝓆\",\"quaternions;\":\"ℍ\",\"quatint;\":\"⨖\",\"quest;\":\"?\",\"questeq;\":\"≟\",\"QUOT;\":'\"',QUOT:'\"',\"quot;\":'\"',quot:'\"',\"rAarr;\":\"⇛\",\"race;\":\"∽̱\",\"Racute;\":\"Ŕ\",\"racute;\":\"ŕ\",\"radic;\":\"√\",\"raemptyv;\":\"⦳\",\"Rang;\":\"⟫\",\"rang;\":\"⟩\",\"rangd;\":\"⦒\",\"range;\":\"⦥\",\"rangle;\":\"⟩\",\"raquo;\":\"»\",raquo:\"»\",\"Rarr;\":\"↠\",\"rArr;\":\"⇒\",\"rarr;\":\"→\",\"rarrap;\":\"⥵\",\"rarrb;\":\"⇥\",\"rarrbfs;\":\"⤠\",\"rarrc;\":\"⤳\",\"rarrfs;\":\"⤞\",\"rarrhk;\":\"↪\",\"rarrlp;\":\"↬\",\"rarrpl;\":\"⥅\",\"rarrsim;\":\"⥴\",\"Rarrtl;\":\"⤖\",\"rarrtl;\":\"↣\",\"rarrw;\":\"↝\",\"rAtail;\":\"⤜\",\"ratail;\":\"⤚\",\"ratio;\":\"∶\",\"rationals;\":\"ℚ\",\"RBarr;\":\"⤐\",\"rBarr;\":\"⤏\",\"rbarr;\":\"⤍\",\"rbbrk;\":\"❳\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"⦌\",\"rbrksld;\":\"⦎\",\"rbrkslu;\":\"⦐\",\"Rcaron;\":\"Ř\",\"rcaron;\":\"ř\",\"Rcedil;\":\"Ŗ\",\"rcedil;\":\"ŗ\",\"rceil;\":\"⌉\",\"rcub;\":\"}\",\"Rcy;\":\"Р\",\"rcy;\":\"р\",\"rdca;\":\"⤷\",\"rdldhar;\":\"⥩\",\"rdquo;\":\"”\",\"rdquor;\":\"”\",\"rdsh;\":\"↳\",\"Re;\":\"ℜ\",\"real;\":\"ℜ\",\"realine;\":\"ℛ\",\"realpart;\":\"ℜ\",\"reals;\":\"ℝ\",\"rect;\":\"▭\",\"REG;\":\"®\",REG:\"®\",\"reg;\":\"®\",reg:\"®\",\"ReverseElement;\":\"∋\",\"ReverseEquilibrium;\":\"⇋\",\"ReverseUpEquilibrium;\":\"⥯\",\"rfisht;\":\"⥽\",\"rfloor;\":\"⌋\",\"Rfr;\":\"ℜ\",\"rfr;\":\"𝔯\",\"rHar;\":\"⥤\",\"rhard;\":\"⇁\",\"rharu;\":\"⇀\",\"rharul;\":\"⥬\",\"Rho;\":\"Ρ\",\"rho;\":\"ρ\",\"rhov;\":\"ϱ\",\"RightAngleBracket;\":\"⟩\",\"RightArrow;\":\"→\",\"Rightarrow;\":\"⇒\",\"rightarrow;\":\"→\",\"RightArrowBar;\":\"⇥\",\"RightArrowLeftArrow;\":\"⇄\",\"rightarrowtail;\":\"↣\",\"RightCeiling;\":\"⌉\",\"RightDoubleBracket;\":\"⟧\",\"RightDownTeeVector;\":\"⥝\",\"RightDownVector;\":\"⇂\",\"RightDownVectorBar;\":\"⥕\",\"RightFloor;\":\"⌋\",\"rightharpoondown;\":\"⇁\",\"rightharpoonup;\":\"⇀\",\"rightleftarrows;\":\"⇄\",\"rightleftharpoons;\":\"⇌\",\"rightrightarrows;\":\"⇉\",\"rightsquigarrow;\":\"↝\",\"RightTee;\":\"⊢\",\"RightTeeArrow;\":\"↦\",\"RightTeeVector;\":\"⥛\",\"rightthreetimes;\":\"⋌\",\"RightTriangle;\":\"⊳\",\"RightTriangleBar;\":\"⧐\",\"RightTriangleEqual;\":\"⊵\",\"RightUpDownVector;\":\"⥏\",\"RightUpTeeVector;\":\"⥜\",\"RightUpVector;\":\"↾\",\"RightUpVectorBar;\":\"⥔\",\"RightVector;\":\"⇀\",\"RightVectorBar;\":\"⥓\",\"ring;\":\"˚\",\"risingdotseq;\":\"≓\",\"rlarr;\":\"⇄\",\"rlhar;\":\"⇌\",\"rlm;\":\"‏\",\"rmoust;\":\"⎱\",\"rmoustache;\":\"⎱\",\"rnmid;\":\"⫮\",\"roang;\":\"⟭\",\"roarr;\":\"⇾\",\"robrk;\":\"⟧\",\"ropar;\":\"⦆\",\"Ropf;\":\"ℝ\",\"ropf;\":\"𝕣\",\"roplus;\":\"⨮\",\"rotimes;\":\"⨵\",\"RoundImplies;\":\"⥰\",\"rpar;\":\")\",\"rpargt;\":\"⦔\",\"rppolint;\":\"⨒\",\"rrarr;\":\"⇉\",\"Rrightarrow;\":\"⇛\",\"rsaquo;\":\"›\",\"Rscr;\":\"ℛ\",\"rscr;\":\"𝓇\",\"Rsh;\":\"↱\",\"rsh;\":\"↱\",\"rsqb;\":\"]\",\"rsquo;\":\"’\",\"rsquor;\":\"’\",\"rthree;\":\"⋌\",\"rtimes;\":\"⋊\",\"rtri;\":\"▹\",\"rtrie;\":\"⊵\",\"rtrif;\":\"▸\",\"rtriltri;\":\"⧎\",\"RuleDelayed;\":\"⧴\",\"ruluhar;\":\"⥨\",\"rx;\":\"℞\",\"Sacute;\":\"Ś\",\"sacute;\":\"ś\",\"sbquo;\":\"‚\",\"Sc;\":\"⪼\",\"sc;\":\"≻\",\"scap;\":\"⪸\",\"Scaron;\":\"Š\",\"scaron;\":\"š\",\"sccue;\":\"≽\",\"scE;\":\"⪴\",\"sce;\":\"⪰\",\"Scedil;\":\"Ş\",\"scedil;\":\"ş\",\"Scirc;\":\"Ŝ\",\"scirc;\":\"ŝ\",\"scnap;\":\"⪺\",\"scnE;\":\"⪶\",\"scnsim;\":\"⋩\",\"scpolint;\":\"⨓\",\"scsim;\":\"≿\",\"Scy;\":\"С\",\"scy;\":\"с\",\"sdot;\":\"⋅\",\"sdotb;\":\"⊡\",\"sdote;\":\"⩦\",\"searhk;\":\"⤥\",\"seArr;\":\"⇘\",\"searr;\":\"↘\",\"searrow;\":\"↘\",\"sect;\":\"§\",sect:\"§\",\"semi;\":\";\",\"seswar;\":\"⤩\",\"setminus;\":\"∖\",\"setmn;\":\"∖\",\"sext;\":\"✶\",\"Sfr;\":\"𝔖\",\"sfr;\":\"𝔰\",\"sfrown;\":\"⌢\",\"sharp;\":\"♯\",\"SHCHcy;\":\"Щ\",\"shchcy;\":\"щ\",\"SHcy;\":\"Ш\",\"shcy;\":\"ш\",\"ShortDownArrow;\":\"↓\",\"ShortLeftArrow;\":\"←\",\"shortmid;\":\"∣\",\"shortparallel;\":\"∥\",\"ShortRightArrow;\":\"→\",\"ShortUpArrow;\":\"↑\",\"shy;\":\"­\",shy:\"­\",\"Sigma;\":\"Σ\",\"sigma;\":\"σ\",\"sigmaf;\":\"ς\",\"sigmav;\":\"ς\",\"sim;\":\"∼\",\"simdot;\":\"⩪\",\"sime;\":\"≃\",\"simeq;\":\"≃\",\"simg;\":\"⪞\",\"simgE;\":\"⪠\",\"siml;\":\"⪝\",\"simlE;\":\"⪟\",\"simne;\":\"≆\",\"simplus;\":\"⨤\",\"simrarr;\":\"⥲\",\"slarr;\":\"←\",\"SmallCircle;\":\"∘\",\"smallsetminus;\":\"∖\",\"smashp;\":\"⨳\",\"smeparsl;\":\"⧤\",\"smid;\":\"∣\",\"smile;\":\"⌣\",\"smt;\":\"⪪\",\"smte;\":\"⪬\",\"smtes;\":\"⪬︀\",\"SOFTcy;\":\"Ь\",\"softcy;\":\"ь\",\"sol;\":\"/\",\"solb;\":\"⧄\",\"solbar;\":\"⌿\",\"Sopf;\":\"𝕊\",\"sopf;\":\"𝕤\",\"spades;\":\"♠\",\"spadesuit;\":\"♠\",\"spar;\":\"∥\",\"sqcap;\":\"⊓\",\"sqcaps;\":\"⊓︀\",\"sqcup;\":\"⊔\",\"sqcups;\":\"⊔︀\",\"Sqrt;\":\"√\",\"sqsub;\":\"⊏\",\"sqsube;\":\"⊑\",\"sqsubset;\":\"⊏\",\"sqsubseteq;\":\"⊑\",\"sqsup;\":\"⊐\",\"sqsupe;\":\"⊒\",\"sqsupset;\":\"⊐\",\"sqsupseteq;\":\"⊒\",\"squ;\":\"□\",\"Square;\":\"□\",\"square;\":\"□\",\"SquareIntersection;\":\"⊓\",\"SquareSubset;\":\"⊏\",\"SquareSubsetEqual;\":\"⊑\",\"SquareSuperset;\":\"⊐\",\"SquareSupersetEqual;\":\"⊒\",\"SquareUnion;\":\"⊔\",\"squarf;\":\"▪\",\"squf;\":\"▪\",\"srarr;\":\"→\",\"Sscr;\":\"𝒮\",\"sscr;\":\"𝓈\",\"ssetmn;\":\"∖\",\"ssmile;\":\"⌣\",\"sstarf;\":\"⋆\",\"Star;\":\"⋆\",\"star;\":\"☆\",\"starf;\":\"★\",\"straightepsilon;\":\"ϵ\",\"straightphi;\":\"ϕ\",\"strns;\":\"¯\",\"Sub;\":\"⋐\",\"sub;\":\"⊂\",\"subdot;\":\"⪽\",\"subE;\":\"⫅\",\"sube;\":\"⊆\",\"subedot;\":\"⫃\",\"submult;\":\"⫁\",\"subnE;\":\"⫋\",\"subne;\":\"⊊\",\"subplus;\":\"⪿\",\"subrarr;\":\"⥹\",\"Subset;\":\"⋐\",\"subset;\":\"⊂\",\"subseteq;\":\"⊆\",\"subseteqq;\":\"⫅\",\"SubsetEqual;\":\"⊆\",\"subsetneq;\":\"⊊\",\"subsetneqq;\":\"⫋\",\"subsim;\":\"⫇\",\"subsub;\":\"⫕\",\"subsup;\":\"⫓\",\"succ;\":\"≻\",\"succapprox;\":\"⪸\",\"succcurlyeq;\":\"≽\",\"Succeeds;\":\"≻\",\"SucceedsEqual;\":\"⪰\",\"SucceedsSlantEqual;\":\"≽\",\"SucceedsTilde;\":\"≿\",\"succeq;\":\"⪰\",\"succnapprox;\":\"⪺\",\"succneqq;\":\"⪶\",\"succnsim;\":\"⋩\",\"succsim;\":\"≿\",\"SuchThat;\":\"∋\",\"Sum;\":\"∑\",\"sum;\":\"∑\",\"sung;\":\"♪\",\"Sup;\":\"⋑\",\"sup;\":\"⊃\",\"sup1;\":\"¹\",sup1:\"¹\",\"sup2;\":\"²\",sup2:\"²\",\"sup3;\":\"³\",sup3:\"³\",\"supdot;\":\"⪾\",\"supdsub;\":\"⫘\",\"supE;\":\"⫆\",\"supe;\":\"⊇\",\"supedot;\":\"⫄\",\"Superset;\":\"⊃\",\"SupersetEqual;\":\"⊇\",\"suphsol;\":\"⟉\",\"suphsub;\":\"⫗\",\"suplarr;\":\"⥻\",\"supmult;\":\"⫂\",\"supnE;\":\"⫌\",\"supne;\":\"⊋\",\"supplus;\":\"⫀\",\"Supset;\":\"⋑\",\"supset;\":\"⊃\",\"supseteq;\":\"⊇\",\"supseteqq;\":\"⫆\",\"supsetneq;\":\"⊋\",\"supsetneqq;\":\"⫌\",\"supsim;\":\"⫈\",\"supsub;\":\"⫔\",\"supsup;\":\"⫖\",\"swarhk;\":\"⤦\",\"swArr;\":\"⇙\",\"swarr;\":\"↙\",\"swarrow;\":\"↙\",\"swnwar;\":\"⤪\",\"szlig;\":\"ß\",szlig:\"ß\",\"Tab;\":\"\\t\",\"target;\":\"⌖\",\"Tau;\":\"Τ\",\"tau;\":\"τ\",\"tbrk;\":\"⎴\",\"Tcaron;\":\"Ť\",\"tcaron;\":\"ť\",\"Tcedil;\":\"Ţ\",\"tcedil;\":\"ţ\",\"Tcy;\":\"Т\",\"tcy;\":\"т\",\"tdot;\":\"⃛\",\"telrec;\":\"⌕\",\"Tfr;\":\"𝔗\",\"tfr;\":\"𝔱\",\"there4;\":\"∴\",\"Therefore;\":\"∴\",\"therefore;\":\"∴\",\"Theta;\":\"Θ\",\"theta;\":\"θ\",\"thetasym;\":\"ϑ\",\"thetav;\":\"ϑ\",\"thickapprox;\":\"≈\",\"thicksim;\":\"∼\",\"ThickSpace;\":\"  \",\"thinsp;\":\" \",\"ThinSpace;\":\" \",\"thkap;\":\"≈\",\"thksim;\":\"∼\",\"THORN;\":\"Þ\",THORN:\"Þ\",\"thorn;\":\"þ\",thorn:\"þ\",\"Tilde;\":\"∼\",\"tilde;\":\"˜\",\"TildeEqual;\":\"≃\",\"TildeFullEqual;\":\"≅\",\"TildeTilde;\":\"≈\",\"times;\":\"×\",times:\"×\",\"timesb;\":\"⊠\",\"timesbar;\":\"⨱\",\"timesd;\":\"⨰\",\"tint;\":\"∭\",\"toea;\":\"⤨\",\"top;\":\"⊤\",\"topbot;\":\"⌶\",\"topcir;\":\"⫱\",\"Topf;\":\"𝕋\",\"topf;\":\"𝕥\",\"topfork;\":\"⫚\",\"tosa;\":\"⤩\",\"tprime;\":\"‴\",\"TRADE;\":\"™\",\"trade;\":\"™\",\"triangle;\":\"▵\",\"triangledown;\":\"▿\",\"triangleleft;\":\"◃\",\"trianglelefteq;\":\"⊴\",\"triangleq;\":\"≜\",\"triangleright;\":\"▹\",\"trianglerighteq;\":\"⊵\",\"tridot;\":\"◬\",\"trie;\":\"≜\",\"triminus;\":\"⨺\",\"TripleDot;\":\"⃛\",\"triplus;\":\"⨹\",\"trisb;\":\"⧍\",\"tritime;\":\"⨻\",\"trpezium;\":\"⏢\",\"Tscr;\":\"𝒯\",\"tscr;\":\"𝓉\",\"TScy;\":\"Ц\",\"tscy;\":\"ц\",\"TSHcy;\":\"Ћ\",\"tshcy;\":\"ћ\",\"Tstrok;\":\"Ŧ\",\"tstrok;\":\"ŧ\",\"twixt;\":\"≬\",\"twoheadleftarrow;\":\"↞\",\"twoheadrightarrow;\":\"↠\",\"Uacute;\":\"Ú\",Uacute:\"Ú\",\"uacute;\":\"ú\",uacute:\"ú\",\"Uarr;\":\"↟\",\"uArr;\":\"⇑\",\"uarr;\":\"↑\",\"Uarrocir;\":\"⥉\",\"Ubrcy;\":\"Ў\",\"ubrcy;\":\"ў\",\"Ubreve;\":\"Ŭ\",\"ubreve;\":\"ŭ\",\"Ucirc;\":\"Û\",Ucirc:\"Û\",\"ucirc;\":\"û\",ucirc:\"û\",\"Ucy;\":\"У\",\"ucy;\":\"у\",\"udarr;\":\"⇅\",\"Udblac;\":\"Ű\",\"udblac;\":\"ű\",\"udhar;\":\"⥮\",\"ufisht;\":\"⥾\",\"Ufr;\":\"𝔘\",\"ufr;\":\"𝔲\",\"Ugrave;\":\"Ù\",Ugrave:\"Ù\",\"ugrave;\":\"ù\",ugrave:\"ù\",\"uHar;\":\"⥣\",\"uharl;\":\"↿\",\"uharr;\":\"↾\",\"uhblk;\":\"▀\",\"ulcorn;\":\"⌜\",\"ulcorner;\":\"⌜\",\"ulcrop;\":\"⌏\",\"ultri;\":\"◸\",\"Umacr;\":\"Ū\",\"umacr;\":\"ū\",\"uml;\":\"¨\",uml:\"¨\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"⏟\",\"UnderBracket;\":\"⎵\",\"UnderParenthesis;\":\"⏝\",\"Union;\":\"⋃\",\"UnionPlus;\":\"⊎\",\"Uogon;\":\"Ų\",\"uogon;\":\"ų\",\"Uopf;\":\"𝕌\",\"uopf;\":\"𝕦\",\"UpArrow;\":\"↑\",\"Uparrow;\":\"⇑\",\"uparrow;\":\"↑\",\"UpArrowBar;\":\"⤒\",\"UpArrowDownArrow;\":\"⇅\",\"UpDownArrow;\":\"↕\",\"Updownarrow;\":\"⇕\",\"updownarrow;\":\"↕\",\"UpEquilibrium;\":\"⥮\",\"upharpoonleft;\":\"↿\",\"upharpoonright;\":\"↾\",\"uplus;\":\"⊎\",\"UpperLeftArrow;\":\"↖\",\"UpperRightArrow;\":\"↗\",\"Upsi;\":\"ϒ\",\"upsi;\":\"υ\",\"upsih;\":\"ϒ\",\"Upsilon;\":\"Υ\",\"upsilon;\":\"υ\",\"UpTee;\":\"⊥\",\"UpTeeArrow;\":\"↥\",\"upuparrows;\":\"⇈\",\"urcorn;\":\"⌝\",\"urcorner;\":\"⌝\",\"urcrop;\":\"⌎\",\"Uring;\":\"Ů\",\"uring;\":\"ů\",\"urtri;\":\"◹\",\"Uscr;\":\"𝒰\",\"uscr;\":\"𝓊\",\"utdot;\":\"⋰\",\"Utilde;\":\"Ũ\",\"utilde;\":\"ũ\",\"utri;\":\"▵\",\"utrif;\":\"▴\",\"uuarr;\":\"⇈\",\"Uuml;\":\"Ü\",Uuml:\"Ü\",\"uuml;\":\"ü\",uuml:\"ü\",\"uwangle;\":\"⦧\",\"vangrt;\":\"⦜\",\"varepsilon;\":\"ϵ\",\"varkappa;\":\"ϰ\",\"varnothing;\":\"∅\",\"varphi;\":\"ϕ\",\"varpi;\":\"ϖ\",\"varpropto;\":\"∝\",\"vArr;\":\"⇕\",\"varr;\":\"↕\",\"varrho;\":\"ϱ\",\"varsigma;\":\"ς\",\"varsubsetneq;\":\"⊊︀\",\"varsubsetneqq;\":\"⫋︀\",\"varsupsetneq;\":\"⊋︀\",\"varsupsetneqq;\":\"⫌︀\",\"vartheta;\":\"ϑ\",\"vartriangleleft;\":\"⊲\",\"vartriangleright;\":\"⊳\",\"Vbar;\":\"⫫\",\"vBar;\":\"⫨\",\"vBarv;\":\"⫩\",\"Vcy;\":\"В\",\"vcy;\":\"в\",\"VDash;\":\"⊫\",\"Vdash;\":\"⊩\",\"vDash;\":\"⊨\",\"vdash;\":\"⊢\",\"Vdashl;\":\"⫦\",\"Vee;\":\"⋁\",\"vee;\":\"∨\",\"veebar;\":\"⊻\",\"veeeq;\":\"≚\",\"vellip;\":\"⋮\",\"Verbar;\":\"‖\",\"verbar;\":\"|\",\"Vert;\":\"‖\",\"vert;\":\"|\",\"VerticalBar;\":\"∣\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"❘\",\"VerticalTilde;\":\"≀\",\"VeryThinSpace;\":\" \",\"Vfr;\":\"𝔙\",\"vfr;\":\"𝔳\",\"vltri;\":\"⊲\",\"vnsub;\":\"⊂⃒\",\"vnsup;\":\"⊃⃒\",\"Vopf;\":\"𝕍\",\"vopf;\":\"𝕧\",\"vprop;\":\"∝\",\"vrtri;\":\"⊳\",\"Vscr;\":\"𝒱\",\"vscr;\":\"𝓋\",\"vsubnE;\":\"⫋︀\",\"vsubne;\":\"⊊︀\",\"vsupnE;\":\"⫌︀\",\"vsupne;\":\"⊋︀\",\"Vvdash;\":\"⊪\",\"vzigzag;\":\"⦚\",\"Wcirc;\":\"Ŵ\",\"wcirc;\":\"ŵ\",\"wedbar;\":\"⩟\",\"Wedge;\":\"⋀\",\"wedge;\":\"∧\",\"wedgeq;\":\"≙\",\"weierp;\":\"℘\",\"Wfr;\":\"𝔚\",\"wfr;\":\"𝔴\",\"Wopf;\":\"𝕎\",\"wopf;\":\"𝕨\",\"wp;\":\"℘\",\"wr;\":\"≀\",\"wreath;\":\"≀\",\"Wscr;\":\"𝒲\",\"wscr;\":\"𝓌\",\"xcap;\":\"⋂\",\"xcirc;\":\"◯\",\"xcup;\":\"⋃\",\"xdtri;\":\"▽\",\"Xfr;\":\"𝔛\",\"xfr;\":\"𝔵\",\"xhArr;\":\"⟺\",\"xharr;\":\"⟷\",\"Xi;\":\"Ξ\",\"xi;\":\"ξ\",\"xlArr;\":\"⟸\",\"xlarr;\":\"⟵\",\"xmap;\":\"⟼\",\"xnis;\":\"⋻\",\"xodot;\":\"⨀\",\"Xopf;\":\"𝕏\",\"xopf;\":\"𝕩\",\"xoplus;\":\"⨁\",\"xotime;\":\"⨂\",\"xrArr;\":\"⟹\",\"xrarr;\":\"⟶\",\"Xscr;\":\"𝒳\",\"xscr;\":\"𝓍\",\"xsqcup;\":\"⨆\",\"xuplus;\":\"⨄\",\"xutri;\":\"△\",\"xvee;\":\"⋁\",\"xwedge;\":\"⋀\",\"Yacute;\":\"Ý\",Yacute:\"Ý\",\"yacute;\":\"ý\",yacute:\"ý\",\"YAcy;\":\"Я\",\"yacy;\":\"я\",\"Ycirc;\":\"Ŷ\",\"ycirc;\":\"ŷ\",\"Ycy;\":\"Ы\",\"ycy;\":\"ы\",\"yen;\":\"¥\",yen:\"¥\",\"Yfr;\":\"𝔜\",\"yfr;\":\"𝔶\",\"YIcy;\":\"Ї\",\"yicy;\":\"ї\",\"Yopf;\":\"𝕐\",\"yopf;\":\"𝕪\",\"Yscr;\":\"𝒴\",\"yscr;\":\"𝓎\",\"YUcy;\":\"Ю\",\"yucy;\":\"ю\",\"Yuml;\":\"Ÿ\",\"yuml;\":\"ÿ\",yuml:\"ÿ\",\"Zacute;\":\"Ź\",\"zacute;\":\"ź\",\"Zcaron;\":\"Ž\",\"zcaron;\":\"ž\",\"Zcy;\":\"З\",\"zcy;\":\"з\",\"Zdot;\":\"Ż\",\"zdot;\":\"ż\",\"zeetrf;\":\"ℨ\",\"ZeroWidthSpace;\":\"​\",\"Zeta;\":\"Ζ\",\"zeta;\":\"ζ\",\"Zfr;\":\"ℨ\",\"zfr;\":\"𝔷\",\"ZHcy;\":\"Ж\",\"zhcy;\":\"ж\",\"zigrarr;\":\"⇝\",\"Zopf;\":\"ℤ\",\"zopf;\":\"𝕫\",\"Zscr;\":\"𝒵\",\"zscr;\":\"𝓏\",\"zwj;\":\"‍\",\"zwnj;\":\"‌\"}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.commonPrefixLength=function(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n<i;n++)if(e.charCodeAt(n)!==t.charCodeAt(n))return n;return i},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n};var n=\"a\".charCodeAt(0),i=\"z\".charCodeAt(0),r=\"A\".charCodeAt(0),a=\"Z\".charCodeAt(0),o=\"0\".charCodeAt(0),s=\"9\".charCodeAt(0);t.isLetterOrDigit=function(e,t){var l=e.charCodeAt(t);return n<=l&&l<=i||r<=l&&l<=a||o<=l&&l<=s}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/markup\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalizeMarkupContent=function(e){if(e)return\"string\"==typeof e?{kind:\"markdown\",value:e}:{kind:\"markdown\",value:e.value}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/dataProvider\",[\"require\",\"exports\",\"../utils/markup\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../utils/markup\"),i=function(){function e(e,t){var n=this;this.id=e,this._tags=[],this._tagMap={},this._attributeMap={},this._valueSetMap={},this._tags=t.tags||[],this._globalAttributes=t.globalAttributes||[],this._tags.forEach((function(e){n._tagMap[e.name]=e,e.attributes&&e.attributes.forEach((function(e){n._attributeMap[e.name]=e}))})),this._globalAttributes.forEach((function(e){n._attributeMap[e.name]=e})),t.valueSets&&t.valueSets.forEach((function(e){n._valueSetMap[e.name]=e.values}))}return e.prototype.isApplicable=function(){return!0},e.prototype.getId=function(){return this.id},e.prototype.provideTags=function(){return this._tags},e.prototype.provideAttributes=function(e){var t=[],n=function(e){t.push(e)};return this._tagMap[e]&&this._tagMap[e].attributes.forEach((function(e){n(e)})),this._globalAttributes.forEach((function(e){n(e)})),t},e.prototype.provideValues=function(e,t){var n=this,i=[],r=function(e){e.forEach((function(e){e.name===t&&(e.values&&e.values.forEach((function(e){i.push(e)})),e.valueSet&&n._valueSetMap[e.valueSet]&&n._valueSetMap[e.valueSet].forEach((function(e){i.push(e)})))}))};return this._tagMap[e]?(r(this._tagMap[e].attributes),r(this._globalAttributes),i):[]},e}();t.HTMLDataProvider=i,t.generateDocumentation=function(e,t){var i={kind:t?\"markdown\":\"plaintext\",value:\"\"};if(e.description){var r=n.normalizeMarkupContent(e.description);r&&(i.value+=r.value)}return e.references&&e.references.length>0&&(i.value+=\"\\n\\n\",i.value+=t?e.references.map((function(e){return\"[\"+e.name+\"](\"+e.url+\")\"})).join(\" | \"):e.references.map((function(e){return e.name+\": \"+e.url})).join(\"\\n\")),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/data/webCustomData\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.htmlData={version:1.1,tags:[{name:\"html\",description:{kind:\"markdown\",value:\"The html element represents the root of an HTML document.\"},attributes:[{name:\"manifest\",description:{kind:\"markdown\",value:\"Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details.\"}},{name:\"version\",description:'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'},{name:\"xmlns\",description:'Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/html\"}]},{name:\"head\",description:{kind:\"markdown\",value:\"The head element represents a collection of metadata for the Document.\"},attributes:[{name:\"profile\",description:\"The URIs of one or more metadata profiles, separated by white space.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/head\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/title\"}]},{name:\"base\",description:{kind:\"markdown\",value:\"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed.\"}},{name:\"target\",description:{kind:\"markdown\",value:\"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the result into a new unnamed browsing context.\\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n\\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/base\"}]},{name:\"link\",description:{kind:\"markdown\",value:\"The link element allows authors to link their document to other resources.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\n`anonymous`\\n\\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\\'s credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"media\",description:{kind:\"markdown\",value:\"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\\n\\n**Notes:**\\n\\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:\"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports.'}},{name:\"sizes\",description:{kind:\"markdown\",value:\"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\\n\\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\\n\\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it.\"}},{name:\"as\",description:'This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.\") request header.'},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:'**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\\n\\n**`high`**: Indicates to the browser that the resource is of **high** priority.\\n\\n**`low`**: Indicates to the browser that the resource is of **low** priority.\\n\\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present.'},{name:\"integrity\",description:\"Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"referrerpolicy\",description:'A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\\'s path.\\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'},{name:\"title\",description:'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/link\"}]},{name:\"meta\",description:{kind:\"markdown\",value:\"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\\n\\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\\n\\n*   `application-name` which defines the name of the application running in the web page.\\n    \\n    **Note:**\\n    \\n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document\\'s title that is shown in a browser\\'s title bar or a page\\'s tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\\n    *   Simple web pages shouldn\\'t define an application-name.\\n    \\n*   `author` which defines the name of the document\\'s author.\\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\\n*   `generator` which contains the identifier of the software that generated the page.\\n*   `keywords` which contains words relevant to the page\\'s content separated by commas.\\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\\n    \\n    Values for the `content` attribute of `<meta name=\"referrer\">`\\n    \\n    `no-referrer`\\n    \\n    Do not send a HTTP `Referrer` header.\\n    \\n    `origin`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\\n    \\n    `no-referrer-when-downgrade`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\\n    \\n    `origin-when-cross-origin`\\n    \\n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\\n    \\n    `same-origin`\\n    \\n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\\n    \\n    `strict-origin`\\n    \\n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\\'t send it to a less secure destination (HTTPS->HTTP).\\n    \\n    `strict-origin-when-cross-origin`\\n    \\n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\\n    \\n    `unsafe-URL`\\n    \\n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\\n    \\n    **Notes:**\\n    \\n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\\n    *   Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\\n    \\n\\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\\n\\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\\n*   `publisher` which defines the name of the document\\'s publisher.\\n*   `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\\n    \\n    Values for the content of `<meta name=\"robots\">`\\n    \\n    Value\\n    \\n    Description\\n    \\n    Used by\\n    \\n    `index`\\n    \\n    Allows the robot to index the page (default).\\n    \\n    All\\n    \\n    `noindex`\\n    \\n    Requests the robot to not index the page.\\n    \\n    All\\n    \\n    `follow`\\n    \\n    Allows the robot to follow the links on the page (default).\\n    \\n    All\\n    \\n    `nofollow`\\n    \\n    Requests the robot to not follow the links on the page.\\n    \\n    All\\n    \\n    `none`\\n    \\n    Equivalent to `noindex, nofollow`\\n    \\n    [Google](https://support.google.com/webmasters/answer/79812)\\n    \\n    `noodp`\\n    \\n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\\n    \\n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noarchive`\\n    \\n    Requests the search engine not to cache the page content.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `nosnippet`\\n    \\n    Prevents displaying any description of the page in search engine results.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noimageindex`\\n    \\n    Requests this page not to appear as the referring page of an indexed image.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\\n    \\n    `nocache`\\n    \\n    Synonym of `noarchive`.\\n    \\n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    **Notes:**\\n    \\n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.\")_ file.\\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\\'s behaviour is undefined and may vary between them.\\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\\n    \\n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\\n    \\n    Values for the content of `<meta name=\"viewport\">`\\n    \\n    Value\\n    \\n    Possible subvalues\\n    \\n    Description\\n    \\n    `width`\\n    \\n    A positive integer number, or the text `device-width`\\n    \\n    Defines the pixel width of the viewport that you want the web site to be rendered at.\\n    \\n    `height`\\n    \\n    A positive integer, or the text `device-height`\\n    \\n    Defines the height of the viewport. Not used by any browser.\\n    \\n    `initial-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\\n    \\n    `maximum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `minimum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `user-scalable`\\n    \\n    `yes` or `no`\\n    \\n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\\n    \\n    Specification\\n    \\n    Status\\n    \\n    Comment\\n    \\n    [CSS Device Adaptation  \\n    The definition of \\'<meta name=\"viewport\">\\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\\n    \\n    Working Draft\\n    \\n    Non-normatively describes the Viewport META element\\n    \\n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\\'s primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\\n    \\n    **Notes:**\\n    \\n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\\n    *   The default values may vary between devices and browsers.\\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\").'}},{name:\"http-equiv\",description:{kind:\"markdown\",value:'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\\n\\n*   `\"content-language\"`  \\n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\\n    \\n*   `\"content-security-policy\"`  \\n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\\n*   `\"content-type\"`  \\n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \\'`text/html`\\' followed by a character set with the following syntax: \\'`; charset=_IANAcharset_`\\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\\n    \\n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can\\'t change documents\\' types in XHTML or HTML5\\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\\n    \\n*   `\"refresh\"`  \\n    This instruction specifies:\\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \\'`;url=`\\', and a valid URL.\\n*   `\"set-cookie\"`  \\n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\\n    \\n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'}},{name:\"content\",description:{kind:\"markdown\",value:\"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used.\"}},{name:\"charset\",description:{kind:\"markdown\",value:'This attribute declares the page\\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\\'t request a specific encoding, it suggests:\\n\\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\\n\\n**Note:** ASCII-incompatible encodings are those that don\\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\\n\\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\\n\\n**Notes:**\\n\\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page\\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\\n*   It is strongly recommended to define the character encoding. If a page\\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'}},{name:\"scheme\",description:\"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\\n\\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meta\"}]},{name:\"style\",description:{kind:\"markdown\",value:\"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.\"},attributes:[{name:\"media\",description:{kind:\"markdown\",value:\"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing.\"}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents.\"}},{name:\"scoped\",valueSet:\"v\"},{name:\"title\",description:\"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/style\"}]},{name:\"body\",description:{kind:\"markdown\",value:\"The body element represents the content of the document.\"},attributes:[{name:\"onafterprint\",description:{kind:\"markdown\",value:\"Function to call after the user has printed the document.\"}},{name:\"onbeforeprint\",description:{kind:\"markdown\",value:\"Function to call when the user requests printing of the document.\"}},{name:\"onbeforeunload\",description:{kind:\"markdown\",value:\"Function to call when the document is about to be unloaded.\"}},{name:\"onhashchange\",description:{kind:\"markdown\",value:\"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed.\"}},{name:\"onlanguagechange\",description:{kind:\"markdown\",value:\"Function to call when the preferred languages changed.\"}},{name:\"onmessage\",description:{kind:\"markdown\",value:\"Function to call when the document has received a message.\"}},{name:\"onoffline\",description:{kind:\"markdown\",value:\"Function to call when network communication has failed.\"}},{name:\"ononline\",description:{kind:\"markdown\",value:\"Function to call when network communication has been restored.\"}},{name:\"onpagehide\"},{name:\"onpageshow\"},{name:\"onpopstate\",description:{kind:\"markdown\",value:\"Function to call when the user has navigated session history.\"}},{name:\"onstorage\",description:{kind:\"markdown\",value:\"Function to call when the storage area has changed.\"}},{name:\"onunload\",description:{kind:\"markdown\",value:\"Function to call when the document is going away.\"}},{name:\"alink\",description:'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._'},{name:\"background\",description:'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._'},{name:\"bgcolor\",description:'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._'},{name:\"bottommargin\",description:'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"leftmargin\",description:'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"link\",description:'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._'},{name:\"onblur\",description:\"Function to call when the document loses focus.\"},{name:\"onerror\",description:\"Function to call when the document fails to load properly.\"},{name:\"onfocus\",description:\"Function to call when the document receives focus.\"},{name:\"onload\",description:\"Function to call when the document has finished loading.\"},{name:\"onredo\",description:\"Function to call when the user has moved forward in undo transaction history.\"},{name:\"onresize\",description:\"Function to call when the document has been resized.\"},{name:\"onundo\",description:\"Function to call when the user has moved backward in undo transaction history.\"},{name:\"rightmargin\",description:'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"text\",description:'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property on the element instead._'},{name:\"topmargin\",description:'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'},{name:\"vlink\",description:'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/body\"}]},{name:\"article\",description:{kind:\"markdown\",value:\"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/article\"}]},{name:\"section\",description:{kind:\"markdown\",value:\"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/section\"}]},{name:\"nav\",description:{kind:\"markdown\",value:\"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/nav\"}]},{name:\"aside\",description:{kind:\"markdown\",value:\"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/aside\"}]},{name:\"h1\",description:{kind:\"markdown\",value:\"The h1 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h2\",description:{kind:\"markdown\",value:\"The h2 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h3\",description:{kind:\"markdown\",value:\"The h3 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h4\",description:{kind:\"markdown\",value:\"The h4 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h5\",description:{kind:\"markdown\",value:\"The h5 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"h6\",description:{kind:\"markdown\",value:\"The h6 element represents a section heading.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"}]},{name:\"header\",description:{kind:\"markdown\",value:\"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/header\"}]},{name:\"footer\",description:{kind:\"markdown\",value:\"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/footer\"}]},{name:\"address\",description:{kind:\"markdown\",value:\"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/address\"}]},{name:\"p\",description:{kind:\"markdown\",value:\"The p element represents a paragraph.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/p\"}]},{name:\"hr\",description:{kind:\"markdown\",value:\"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book.\"},attributes:[{name:\"align\",description:\"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`.\"},{name:\"color\",description:\"Sets the color of the rule through color name or hexadecimal value.\"},{name:\"noshade\",description:\"Sets the rule to have no shading.\"},{name:\"size\",description:\"Sets the height, in pixels, of the rule.\"},{name:\"width\",description:\"Sets the length of the rule on the page through a pixel or percentage value.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/hr\"}]},{name:\"pre\",description:{kind:\"markdown\",value:\"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.\"},attributes:[{name:\"cols\",description:'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"width\",description:'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'},{name:\"wrap\",description:'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/pre\"}]},{name:\"blockquote\",description:{kind:\"markdown\",value:\"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote\"}]},{name:\"ol\",description:{kind:\"markdown\",value:\"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.\"},attributes:[{name:\"reversed\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute specifies that the items of the list are specified in reversed order.\"}},{name:\"start\",description:{kind:\"markdown\",value:'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'}},{name:\"type\",valueSet:\"lt\",description:{kind:\"markdown\",value:\"Indicates the numbering type:\\n\\n*   `'a'` indicates lowercase letters,\\n*   `'A'` indicates uppercase letters,\\n*   `'i'` indicates lowercase Roman numerals,\\n*   `'I'` indicates uppercase Roman numerals,\\n*   and `'1'` indicates numbers (default).\\n\\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \\\"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\\\") element.\\n\\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \\\"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\\\") property should be used instead.\"}},{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ol\"}]},{name:\"ul\",description:{kind:\"markdown\",value:\"The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document.\"},attributes:[{name:\"compact\",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ul\"}]},{name:\"li\",description:{kind:\"markdown\",value:\"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed.'}},{name:\"type\",description:'This character attribute indicates the numbering type:\\n\\n*   `a`: lowercase letters\\n*   `A`: uppercase letters\\n*   `i`: lowercase Roman numerals\\n*   `I`: uppercase Roman numerals\\n*   `1`: numbers\\n\\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\\n\\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/li\"}]},{name:\"dl\",description:{kind:\"markdown\",value:\"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dl\"}]},{name:\"dt\",description:{kind:\"markdown\",value:\"The dt element represents the term, or name, part of a term-description group in a description list (dl element).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dt\"}]},{name:\"dd\",description:{kind:\"markdown\",value:\"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element).\"},attributes:[{name:\"nowrap\",description:\"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dd\"}]},{name:\"figure\",description:{kind:\"markdown\",value:\"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figure\"}]},{name:\"figcaption\",description:{kind:\"markdown\",value:\"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption\"}]},{name:\"main\",description:{kind:\"markdown\",value:\"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/main\"}]},{name:\"div\",description:{kind:\"markdown\",value:\"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/div\"}]},{name:\"a\",description:{kind:\"markdown\",value:\"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents.\"},attributes:[{name:\"href\",description:{kind:\"markdown\",value:\"Contains a URL or a URL fragment that the hyperlink points to.\"}},{name:\"target\",description:{kind:\"markdown\",value:'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\\n\\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\\n*   `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\\n\\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\\n\\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\\'s performance may suffer. To avoid this use `rel=\"noopener\"`.'}},{name:\"download\",description:{kind:\"markdown\",value:\"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\\n\\n**Notes:**\\n\\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute.\"}},{name:\"ping\",description:{kind:\"markdown\",value:'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'}},{name:\"rel\",description:{kind:\"markdown\",value:\"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"}},{name:\"hreflang\",description:{kind:\"markdown\",value:'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\").'}},{name:\"type\",description:{kind:\"markdown\",value:'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A MIME type (now properly called \"media type\", but also sometimes \"content type\") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).\") for the linked URL. It is purely advisory, with no built-in functionality.'}},{name:\"referrerpolicy\",description:\"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\\n\\n*   `'no-referrer'` means the `Referer:` header will not be sent.\\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\\n*   `'strict-origin-when-cross-origin'`\\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/a\"}]},{name:\"em\",description:{kind:\"markdown\",value:\"The em element represents stress emphasis of its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/em\"}]},{name:\"strong\",description:{kind:\"markdown\",value:\"The strong element represents strong importance, seriousness, or urgency for its contents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/strong\"}]},{name:\"small\",description:{kind:\"markdown\",value:\"The small element represents side comments such as small print.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/small\"}]},{name:\"s\",description:{kind:\"markdown\",value:\"The s element represents contents that are no longer accurate or no longer relevant.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/s\"}]},{name:\"cite\",description:{kind:\"markdown\",value:\"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/cite\"}]},{name:\"q\",description:{kind:\"markdown\",value:\"The q element represents some phrasing content quoted from another source.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/q\"}]},{name:\"dfn\",description:{kind:\"markdown\",value:\"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dfn\"}]},{name:\"abbr\",description:{kind:\"markdown\",value:\"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/abbr\"}]},{name:\"ruby\",description:{kind:\"markdown\",value:\"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ruby\"}]},{name:\"rb\",description:{kind:\"markdown\",value:\"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rb\"}]},{name:\"rt\",description:{kind:\"markdown\",value:\"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rt\"}]},{name:\"rp\",description:{kind:\"markdown\",value:\"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/rp\"}]},{name:\"time\",description:{kind:\"markdown\",value:\"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.\"},attributes:[{name:\"datetime\",description:{kind:\"markdown\",value:\"This attribute indicates the time and/or date of the element and must be in one of the formats described below.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/time\"}]},{name:\"code\",description:{kind:\"markdown\",value:\"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/code\"}]},{name:\"var\",description:{kind:\"markdown\",value:\"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/var\"}]},{name:\"samp\",description:{kind:\"markdown\",value:\"The samp element represents sample or quoted output from another program or computing system.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/samp\"}]},{name:\"kbd\",description:{kind:\"markdown\",value:\"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/kbd\"}]},{name:\"sub\",description:{kind:\"markdown\",value:\"The sub element represents a subscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sub\"}]},{name:\"sup\",description:{kind:\"markdown\",value:\"The sup element represents a superscript.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/sup\"}]},{name:\"i\",description:{kind:\"markdown\",value:\"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/i\"}]},{name:\"b\",description:{kind:\"markdown\",value:\"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/b\"}]},{name:\"u\",description:{kind:\"markdown\",value:\"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/u\"}]},{name:\"mark\",description:{kind:\"markdown\",value:\"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/mark\"}]},{name:\"bdi\",description:{kind:\"markdown\",value:\"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdi\"}]},{name:\"bdo\",description:{kind:\"markdown\",value:\"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]\"},attributes:[{name:\"dir\",description:\"The direction in which text should be rendered in this element's contents. Possible values are:\\n\\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\\n*   `rtl`: Indicates that the text should go in a right-to-left direction.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/bdo\"}]},{name:\"span\",description:{kind:\"markdown\",value:\"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/span\"}]},{name:\"br\",description:{kind:\"markdown\",value:\"The br element represents a line break.\"},attributes:[{name:\"clear\",description:\"Indicates where to begin the next line after the break.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/br\"}]},{name:\"wbr\",description:{kind:\"markdown\",value:\"The wbr element represents a line break opportunity.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/wbr\"}]},{name:\"ins\",description:{kind:\"markdown\",value:\"The ins element represents an addition to the document.\"},attributes:[{name:\"cite\",description:\"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system.\"},{name:\"datetime\",description:'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/ins\"}]},{name:\"del\",description:{kind:\"markdown\",value:\"The del element represents a removal from the document.\"},attributes:[{name:\"cite\",description:{kind:\"markdown\",value:\"A URI for a resource that explains the change (for example, meeting minutes).\"}},{name:\"datetime\",description:{kind:\"markdown\",value:'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/del\"}]},{name:\"picture\",description:{kind:\"markdown\",value:\"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/picture\"}]},{name:\"img\",description:{kind:\"markdown\",value:\"An img element represents an image.\"},attributes:[{name:\"alt\",description:{kind:\"markdown\",value:'This attribute defines an alternative text description of the image.\\n\\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\\n\\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'}},{name:\"src\",description:{kind:\"markdown\",value:\"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors.\"}},{name:\"srcset\",description:{kind:\"markdown\",value:\"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\\n\\n1.  a URL to an image,\\n2.  optionally, whitespace followed by one of:\\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\\n\\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\\n\\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\\n\\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example.\"}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:'}},{name:\"usemap\",description:{kind:\"markdown\",value:'The partial URL (starting with \\'#\\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\\n\\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element.'}},{name:\"ismap\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\\n\\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The intrinsic width of the image in pixels.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The intrinsic height of the image in pixels.\"}},{name:\"decoding\",description:\"Provides an image decoding hint to the browser. The allowed values are:\"},{name:\"decoding\",description:\"`sync`\\n\\nDecode the image synchronously for atomic presentation with other content.\\n\\n`async`\\n\\nDecode the image asynchronously to reduce delay in presenting other content.\\n\\n`auto`\\n\\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.\"},{name:\"importance\",description:\"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"},{name:\"importance\",description:\"`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\\n\\n`high`: Indicates to the browser that the image is of **high** priority.\\n\\n`low`: Indicates to the browser that the image is of **low** priority.\"},{name:\"intrinsicsize\",description:\"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)\"},{name:\"referrerpolicy\",description:\"A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \\\"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\\\") header will not be sent.\\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.\"},{name:\"sizes\",description:\"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\\n\\n1.  a media condition. This must be omitted for the last item.\\n2.  a source size value.\\n\\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/img\"}]},{name:\"iframe\",description:{kind:\"markdown\",value:\"The iframe element represents a nested browsing context.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'}},{name:\"srcdoc\",description:{kind:\"markdown\",value:\"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute.\"}},{name:\"name\",description:{kind:\"markdown\",value:'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The Window interface\\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method.'}},{name:\"sandbox\",valueSet:\"sb\",description:{kind:\"markdown\",value:'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\\n\\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\\n*   `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\\n\\n**Notes about sandboxing:**\\n\\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'}},{name:\"seamless\",valueSet:\"v\"},{name:\"allowfullscreen\",valueSet:\"v\",description:{kind:\"markdown\",value:'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the frame in CSS pixels. Default is `300`.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the frame in CSS pixels. Default is `150`.\"}},{name:\"allow\",description:\"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`.\"},{name:\"allowpaymentrequest\",description:\"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API).\"},{name:\"allowpaymentrequest\",description:'This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`.'},{name:\"csp\",description:'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details.'},{name:\"importance\",description:\"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\\n\\n`auto` (default)\\n\\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\\n\\n`high`\\n\\nThe resource should be downloaded before other lower-priority page resources.\\n\\n`low`\\n\\nThe resource should be downloaded after other higher-priority page resources.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\\'s resource:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don\\'t send it to a less secure destination (HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/iframe\"}]},{name:\"embed\",description:{kind:\"markdown\",value:\"The embed element provides an integration point for an external (typically non-HTML) application or interactive content.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"The URL of the resource being embedded.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME type to use to select the plug-in to instantiate.\"}},{name:\"width\",description:{kind:\"markdown\",value:\"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/embed\"}]},{name:\"object\",description:{kind:\"markdown\",value:\"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin.\"},attributes:[{name:\"data\",description:{kind:\"markdown\",value:\"The address of the resource as a valid URL. At least one of **data** and **type** must be defined.\"}},{name:\"type\",description:{kind:\"markdown\",value:\"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined.\"}},{name:\"typemustmatch\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of valid browsing context (HTML5), or the name of the control (HTML 4).\"}},{name:\"usemap\",description:{kind:\"markdown\",value:\"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \\\"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\\\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document.'}},{name:\"width\",description:{kind:\"markdown\",value:\"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"}},{name:\"archive\",description:\"A space-separated list of URIs for archives of resources for the object.\"},{name:\"border\",description:\"The width of a border around the control, in pixels.\"},{name:\"classid\",description:\"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute.\"},{name:\"codebase\",description:\"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document.\"},{name:\"codetype\",description:\"The content type of the data specified by **classid**.\"},{name:\"declare\",description:\"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused.\"},{name:\"standby\",description:\"A message that the browser can show while loading the object's implementation and data.\"},{name:\"tabindex\",description:\"The position of the element in the tabbing navigation order for the current document.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/object\"}]},{name:\"param\",description:{kind:\"markdown\",value:\"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"Name of the parameter.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"Specifies the value of the parameter.\"}},{name:\"type\",description:'Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value.'},{name:\"valuetype\",description:'Specifies the type of the `value` attribute. Possible values are:\\n\\n*   data: Default value. The value is passed to the object\\'s implementation as a string.\\n*   ref: The value is a URI to a resource where run-time values are stored.\\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/param\"}]},{name:\"video\",description:{kind:\"markdown\",value:\"A video element is used for playing videos or movies, and audio files with captions.\"},attributes:[{name:\"src\"},{name:\"crossorigin\",valueSet:\"xo\"},{name:\"poster\"},{name:\"preload\",valueSet:\"pl\"},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\"},{name:\"muted\",valueSet:\"v\"},{name:\"controls\",valueSet:\"v\"},{name:\"width\"},{name:\"height\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/video\"}]},{name:\"audio\",description:{kind:\"markdown\",value:\"An audio element represents a sound or audio stream.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\nanonymous\\n\\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\\n\\nuse-credentials\\n\\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\\n\\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'}},{name:\"preload\",valueSet:\"pl\",description:{kind:\"markdown\",value:\"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\\n\\n*   `none`: Indicates that the audio should not be preloaded.\\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\\n*   _empty string_: A synonym of the `auto` value.\\n\\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\\n\\n**Usage notes:**\\n\\n*   The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint.\"}},{name:\"autoplay\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\\n\\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\"}},{name:\"mediagroup\"},{name:\"loop\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio.\"}},{name:\"muted\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`.\"}},{name:\"controls\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/audio\"}]},{name:\"source\",description:{kind:\"markdown\",value:\"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}},{name:\"type\",description:{kind:\"markdown\",value:\"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs.\"}},{name:\"sizes\",description:'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \\nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'},{name:\"srcset\",description:\"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\\n\\n1.  one URL to an image,\\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\\n\\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \\nThe browser chooses the most adequate image to display at a given point of time.  \\nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \\\"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\\\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \\\"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\\\") element.\"},{name:\"media\",description:'[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/source\"}]},{name:\"track\",description:{kind:\"markdown\",value:\"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.\"},attributes:[{name:\"default\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element.\"}},{name:\"kind\",valueSet:\"tk\",description:{kind:\"markdown\",value:\"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\\n\\n*   `subtitles`\\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\\n*   `captions`\\n    *   Closed captions provide a transcription and possibly a translation of audio.\\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\\n    *   Suitable for users who are deaf or when the sound is muted.\\n*   `descriptions`\\n    *   Textual description of the video content.\\n    *   Suitable for users who are blind or where the video cannot be seen.\\n*   `chapters`\\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\\n*   `metadata`\\n    *   Tracks used by scripts. Not visible to the user.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"A user-readable title of the text track which is used by the browser when listing available text tracks.\"}},{name:\"src\",description:{kind:\"markdown\",value:'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'}},{name:\"srclang\",description:{kind:\"markdown\",value:\"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/track\"}]},{name:\"map\",description:{kind:\"markdown\",value:\"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children.\"},attributes:[{name:\"name\",description:{kind:\"markdown\",value:\"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/map\"}]},{name:\"area\",description:{kind:\"markdown\",value:\"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.\"},attributes:[{name:\"alt\"},{name:\"coords\"},{name:\"shape\",valueSet:\"sh\"},{name:\"href\"},{name:\"target\"},{name:\"download\"},{name:\"ping\"},{name:\"rel\"},{name:\"hreflang\"},{name:\"type\"},{name:\"accesskey\",description:\"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/area\"}]},{name:\"table\",description:{kind:\"markdown\",value:\"The table element represents data with more than one dimension, in the form of a table.\"},attributes:[{name:\"border\"},{name:\"align\",description:'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\\n\\n*   left: the table is displayed on the left side of the document;\\n*   center: the table is displayed in the center of the document;\\n*   right: the table is displayed on the right side of the document.\\n\\n**Usage Note**\\n\\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/table\"}]},{name:\"caption\",description:{kind:\"markdown\",value:\"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"align\",description:'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\\n\\n`left`\\n\\nThe caption is displayed to the left of the table.\\n\\n`top`\\n\\nThe caption is displayed above the table.\\n\\n`right`\\n\\nThe caption is displayed to the right of the table.\\n\\n`bottom`\\n\\nThe caption is displayed below the table.\\n\\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table\\'s <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/caption\"}]},{name:\"colgroup\",description:{kind:\"markdown\",value:\"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup\"}]},{name:\"col\",description:{kind:\"markdown\",value:\"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup.\"},attributes:[{name:\"span\"},{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/col\"}]},{name:\"tbody\",description:{kind:\"markdown\",value:\"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tbody\"}]},{name:\"thead\",description:{kind:\"markdown\",value:\"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/thead\"}]},{name:\"tfoot\",description:{kind:\"markdown\",value:\"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table.\"},attributes:[{name:\"align\",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot\"}]},{name:\"tr\",description:{kind:\"markdown\",value:\"The tr element represents a row of cells in a table.\"},attributes:[{name:\"align\",description:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell\\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\\n\\n`left`\\n\\nAlign the content of each cell at its left edge.\\n\\n`center`\\n\\nCenter the contents of each cell between their left and right edges.\\n\\n`right`\\n\\nAlign the content of each cell at its right edge.\\n\\n`justify`\\n\\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\\n\\n`char`\\n\\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\\n\\nIf no value is expressly set for `align`, the parent node\\'s value is inherited.\\n\\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row\\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`).'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/tr\"}]},{name:\"td\",description:{kind:\"markdown\",value:\"The td element represents a data cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"abbr\",description:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute.\"},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/td\"}]},{name:\"th\",description:{kind:\"markdown\",value:\"The th element represents a header cell in a table.\"},attributes:[{name:\"colspan\"},{name:\"rowspan\"},{name:\"headers\"},{name:\"scope\",valueSet:\"s\"},{name:\"sorted\"},{name:\"abbr\",description:{kind:\"markdown\",value:\"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\"}},{name:\"align\",description:'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'},{name:\"axis\",description:\"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead.\"},{name:\"bgcolor\",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n \\n\\n`black` = \"#000000\"\\n\\n \\n\\n`green` = \"#008000\"\\n\\n \\n\\n`silver` = \"#C0C0C0\"\\n\\n \\n\\n`lime` = \"#00FF00\"\\n\\n \\n\\n`gray` = \"#808080\"\\n\\n \\n\\n`olive` = \"#808000\"\\n\\n \\n\\n`white` = \"#FFFFFF\"\\n\\n \\n\\n`yellow` = \"#FFFF00\"\\n\\n \\n\\n`maroon` = \"#800000\"\\n\\n \\n\\n`navy` = \"#000080\"\\n\\n \\n\\n`red` = \"#FF0000\"\\n\\n \\n\\n`blue` = \"#0000FF\"\\n\\n \\n\\n`purple` = \"#800080\"\\n\\n \\n\\n`teal` = \"#008080\"\\n\\n \\n\\n`fuchsia` = \"#FF00FF\"\\n\\n \\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/th\"}]},{name:\"form\",description:{kind:\"markdown\",value:\"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.\"},attributes:[{name:\"accept-charset\",description:{kind:\"markdown\",value:'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element.  \\nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'}},{name:\"action\",description:{kind:\"markdown\",value:'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"autocomplete\",valueSet:\"o\",description:{kind:\"markdown\",value:\"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\\n\\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\"}},{name:\"enctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\\n*   `text/plain`: (HTML5)\\n\\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"method\",valueSet:\"m\",description:{kind:\"markdown\",value:'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \\'?\\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n*   `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\\n\\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5.\"}},{name:\"novalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form.'}},{name:\"target\",description:{kind:\"markdown\",value:'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\\n\\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'}},{name:\"accept\",description:'A comma-separated list of content types that the server accepts.\\n\\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'},{name:\"autocapitalize\",description:\"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/form\"}]},{name:\"label\",description:{kind:\"markdown\",value:\"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself.\"},attributes:[{name:\"form\",description:{kind:\"markdown\",value:'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"for\",description:{kind:\"markdown\",value:\"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\\n\\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/label\"}]},{name:\"input\",description:{kind:\"markdown\",value:\"The input element represents a typed data field, usually with a form control to allow the user to edit the data.\"},attributes:[{name:\"accept\"},{name:\"alt\"},{name:\"autocomplete\",valueSet:\"inputautocomplete\"},{name:\"autofocus\",valueSet:\"v\"},{name:\"checked\",valueSet:\"v\"},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\"},{name:\"form\"},{name:\"formaction\"},{name:\"formenctype\",valueSet:\"et\"},{name:\"formmethod\",valueSet:\"fm\"},{name:\"formnovalidate\",valueSet:\"v\"},{name:\"formtarget\"},{name:\"height\"},{name:\"inputmode\",valueSet:\"im\"},{name:\"list\"},{name:\"max\"},{name:\"maxlength\"},{name:\"min\"},{name:\"minlength\"},{name:\"multiple\",valueSet:\"v\"},{name:\"name\"},{name:\"pattern\"},{name:\"placeholder\"},{name:\"readonly\",valueSet:\"v\"},{name:\"required\",valueSet:\"v\"},{name:\"size\"},{name:\"src\"},{name:\"step\"},{name:\"type\",valueSet:\"t\"},{name:\"value\"},{name:\"width\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/input\"}]},{name:\"button\",description:{kind:\"markdown\",value:\"The button element represents a button labeled by its contents.\"},attributes:[{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\\n\\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements.'}},{name:\"formaction\",description:{kind:\"markdown\",value:\"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner.\"}},{name:\"formenctype\",valueSet:\"et\",description:{kind:\"markdown\",value:'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\\n*   `text/plain`\\n\\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\\'s form owner.'}},{name:\"formmethod\",valueSet:\"fm\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: The data from the form are included in the body of the form and sent to the server.\\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n\\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner.\"}},{name:\"formnovalidate\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.\"}},{name:\"formtarget\",description:{kind:\"markdown\",value:\"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed browsing context.\\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the button, which is submitted with the form data.\"}},{name:\"type\",valueSet:\"bt\",description:{kind:\"markdown\",value:\"The type of the button. Possible values are:\\n\\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\\n*   `reset`: The button resets all the controls to their initial values.\\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur.\"}},{name:\"value\",description:{kind:\"markdown\",value:\"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted.\"}},{name:\"autocomplete\",description:'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn\\'t return after refreshing the page\").'}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/button\"}]},{name:\"select\",description:{kind:\"markdown\",value:\"The select element represents a control for selecting amongst a set of options.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent\\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent\\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute.\"}},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute lets you specify the form element to which the select element is associated (that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"multiple\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"This attribute is used to specify the name of the control.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"A Boolean attribute indicating that an option with a non-empty string value must be selected.\"}},{name:\"size\",description:{kind:\"markdown\",value:\"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\\n\\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/select\"}]},{name:\"datalist\",description:{kind:\"markdown\",value:\"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/datalist\"}]},{name:\"optgroup\",description:{kind:\"markdown\",value:\"The optgroup element represents a group of option elements with a common label.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones.\"}},{name:\"label\",description:{kind:\"markdown\",value:\"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup\"}]},{name:\"option\",description:{kind:\"markdown\",value:\"The option element represents an option in a select element or as part of a list of suggestions in a datalist element.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element.'}},{name:\"label\",description:{kind:\"markdown\",value:\"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content.\"}},{name:\"selected\",valueSet:\"v\",description:{kind:\"markdown\",value:'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute.'}},{name:\"value\",description:{kind:\"markdown\",value:\"The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/option\"}]},{name:\"textarea\",description:{kind:\"markdown\",value:\"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value.\"},attributes:[{name:\"autocomplete\",valueSet:\"inputautocomplete\",description:{kind:\"markdown\",value:'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\\n\\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\").'}},{name:\"autofocus\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.\"}},{name:\"cols\",description:{kind:\"markdown\",value:\"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`.\"}},{name:\"dirname\"},{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled.'}},{name:\"form\",description:{kind:\"markdown\",value:'The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'}},{name:\"inputmode\",valueSet:\"im\"},{name:\"maxlength\",description:{kind:\"markdown\",value:\"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.\"}},{name:\"minlength\",description:{kind:\"markdown\",value:\"The minimum number of characters (unicode code points) required that the user should enter.\"}},{name:\"name\",description:{kind:\"markdown\",value:\"The name of the control.\"}},{name:\"placeholder\",description:{kind:\"markdown\",value:'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\\n\\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation.'}},{name:\"readonly\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.\"}},{name:\"required\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This attribute specifies that the user must fill in a value before submitting a form.\"}},{name:\"rows\",description:{kind:\"markdown\",value:\"The number of visible text lines for the control.\"}},{name:\"wrap\",valueSet:\"w\",description:{kind:\"markdown\",value:\"Indicates how the control wraps text. Possible values are:\\n\\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\\n\\nIf this attribute is not specified, `soft` is its default value.\"}},{name:\"autocapitalize\",description:\"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization.\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"},{name:\"spellcheck\",description:\"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\\n\\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\\n*   `false` : Indicates that the element should not be spell checked.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/textarea\"}]},{name:\"output\",description:{kind:\"markdown\",value:\"The output element represents the result of a calculation performed by the application, or the result of a user action.\"},attributes:[{name:\"for\",description:{kind:\"markdown\",value:\"A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation.\"}},{name:\"form\",description:{kind:\"markdown\",value:'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/output\"}]},{name:\"progress\",description:{kind:\"markdown\",value:\"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/progress\"}]},{name:\"meter\",description:{kind:\"markdown\",value:\"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.\"},attributes:[{name:\"value\",description:{kind:\"markdown\",value:\"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\\n\\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it.\"}},{name:\"min\",description:{kind:\"markdown\",value:\"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0.\"}},{name:\"max\",description:{kind:\"markdown\",value:\"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1.\"}},{name:\"low\",description:{kind:\"markdown\",value:\"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value.\"}},{name:\"high\",description:{kind:\"markdown\",value:\"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value.\"}},{name:\"optimum\",description:{kind:\"markdown\",value:\"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred.\"}},{name:\"form\",description:\"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/meter\"}]},{name:\"fieldset\",description:{kind:\"markdown\",value:\"The fieldset element represents a set of form controls optionally grouped under a common name.\"},attributes:[{name:\"disabled\",valueSet:\"v\",description:{kind:\"markdown\",value:\"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \\\"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\\\") element won't be disabled.\"}},{name:\"form\",description:{kind:\"markdown\",value:'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form.'}},{name:\"name\",description:{kind:\"markdown\",value:'The name associated with the group.\\n\\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it.'}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset\"}]},{name:\"legend\",description:{kind:\"markdown\",value:\"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/legend\"}]},{name:\"details\",description:{kind:\"markdown\",value:\"The details element represents a disclosure widget from which the user can obtain additional information or controls.\"},attributes:[{name:\"open\",valueSet:\"v\",description:{kind:\"markdown\",value:\"This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible.\"}}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/details\"}]},{name:\"summary\",description:{kind:\"markdown\",value:\"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/summary\"}]},{name:\"dialog\",description:{kind:\"markdown\",value:\"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.\"},attributes:[{name:\"open\",description:\"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/dialog\"}]},{name:\"script\",description:{kind:\"markdown\",value:\"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user.\"},attributes:[{name:\"src\",description:{kind:\"markdown\",value:\"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\\n\\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags.\"}},{name:\"type\",description:{kind:\"markdown\",value:'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\\n\\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\\n*   **Any other value:** The embedded content is treated as a data block which won\\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\\n\\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\")).'}},{name:\"charset\"},{name:\"async\",valueSet:\"v\",description:{kind:\"markdown\",value:'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\\n\\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\\n\\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\\'t recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\\n\\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'}},{name:\"defer\",valueSet:\"v\",description:{kind:\"markdown\",value:'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\\n\\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\\n\\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'}},{name:\"crossorigin\",valueSet:\"xo\",description:{kind:\"markdown\",value:'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'}},{name:\"nonce\",description:{kind:\"markdown\",value:\"A cryptographic nonce (number used once) to whitelist inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial.\"}},{name:\"integrity\",description:\"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"},{name:\"nomodule\",description:\"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code.\"},{name:\"referrerpolicy\",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don\\'t send it to a less secure destination (e.g. HTTPS→HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\\n\\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'},{name:\"text\",description:\"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/script\"}]},{name:\"noscript\",description:{kind:\"markdown\",value:\"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/noscript\"}]},{name:\"template\",description:{kind:\"markdown\",value:\"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script.\"},attributes:[],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/template\"}]},{name:\"canvas\",description:{kind:\"markdown\",value:\"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly.\"},attributes:[{name:\"width\",description:{kind:\"markdown\",value:\"The width of the coordinate space in CSS pixels. Defaults to 300.\"}},{name:\"height\",description:{kind:\"markdown\",value:\"The height of the coordinate space in CSS pixels. Defaults to 150.\"}},{name:\"moz-opaque\",description:\"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \\\"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\\\") instead.\"}],references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Element/canvas\"}]}],globalAttributes:[{name:\"accesskey\",description:{kind:\"markdown\",value:\"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey\"}]},{name:\"autocapitalize\",description:{kind:\"markdown\",value:\"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\\n\\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\\n*   `characters`, all letters should default to uppercase\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize\"}]},{name:\"class\",description:{kind:\"markdown\",value:'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](/en-US/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](/en-US/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\").'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class\"}]},{name:\"contenteditable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\\n\\n*   `true` or the _empty string_, which indicates that the element must be editable;\\n*   `false`, which indicates that the element must not be editable.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable\"}]},{name:\"contextmenu\",description:{kind:\"markdown\",value:'The `[**id**](#attr-id)` of a [`<menu>`](/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu\"}]},{name:\"dir\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\\n\\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element.\"},valueSet:\"d\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir\"}]},{name:\"draggable\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](/en-us/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `true`, which indicates that the element may be dragged\\n*   `false`, which indicates that the element may not be dragged.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable\"}]},{name:\"dropzone\",description:{kind:\"markdown\",value:\"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](/en-US/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\\n*   `link`, will create a link to the dragged data.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dropzone\"}]},{name:\"exportparts\",description:{kind:\"markdown\",value:\"Used to transitively export shadow parts from a nested shadow tree into a containing light tree.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts\"}]},{name:\"hidden\",description:{kind:\"markdown\",value:\"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden\"}]},{name:\"id\",description:{kind:\"markdown\",value:\"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id\"}]},{name:\"inputmode\",description:{kind:\"markdown\",value:'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode\"}]},{name:\"is\",description:{kind:\"markdown\",value:\"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](/en-US/docs/Web/Web_Components/Using_custom_elements) for more details).\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is\"}]},{name:\"itemid\",description:{kind:\"markdown\",value:\"The unique, global identifier of an item.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid\"}]},{name:\"itemprop\",description:{kind:\"markdown\",value:\"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop\"}]},{name:\"itemref\",description:{kind:\"markdown\",value:\"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref\"}]},{name:\"itemscope\",description:{kind:\"markdown\",value:\"`itemscope` (usually) works along with `[itemtype](/en-US/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context.\"},valueSet:\"v\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope\"}]},{name:\"itemtype\",description:{kind:\"markdown\",value:\"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](/en-US/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype\"}]},{name:\"lang\",description:{kind:\"markdown\",value:\"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang\"}]},{name:\"part\",description:{kind:\"markdown\",value:'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](/en-US/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part\"}]},{name:\"role\",valueSet:\"roles\"},{name:\"slot\",description:{kind:\"markdown\",value:\"Assigns a slot in a [shadow DOM](/en-US/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](/en-US/docs/Web/HTML/Element/slot \\\"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\\\") element whose `[name](/en-US/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot\"}]},{name:\"spellcheck\",description:{kind:\"markdown\",value:\"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\\n\\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\\n*   `false`, which indicates that the element should not be checked for spelling errors.\"},valueSet:\"b\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck\"}]},{name:\"style\",description:{kind:\"markdown\",value:'Contains [CSS](/en-US/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](/en-US/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style\"}]},{name:\"tabindex\",description:{kind:\"markdown\",value:\"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\\n\\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex\"}]},{name:\"title\",description:{kind:\"markdown\",value:\"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.\"},references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title\"}]},{name:\"translate\",description:{kind:\"markdown\",value:\"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](/en-US/docs/Web/API/Text \\\"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\\\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\\n\\n*   empty string and `yes`, which indicates that the element will be translated.\\n*   `no`, which indicates that the element will not be translated.\"},valueSet:\"y\",references:[{name:\"MDN Reference\",url:\"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate\"}]},{name:\"onabort\",description:{kind:\"markdown\",value:\"The loading of a resource has been aborted.\"}},{name:\"onblur\",description:{kind:\"markdown\",value:\"An element has lost focus (does not bubble).\"}},{name:\"oncanplay\",description:{kind:\"markdown\",value:\"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\"}},{name:\"oncanplaythrough\",description:{kind:\"markdown\",value:\"The user agent can play the media up to its end without having to stop for further buffering of content.\"}},{name:\"onchange\",description:{kind:\"markdown\",value:\"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user.\"}},{name:\"onclick\",description:{kind:\"markdown\",value:\"A pointing device button has been pressed and released on an element.\"}},{name:\"oncontextmenu\",description:{kind:\"markdown\",value:\"The right button of the mouse is clicked (before the context menu is displayed).\"}},{name:\"ondblclick\",description:{kind:\"markdown\",value:\"A pointing device button is clicked twice on an element.\"}},{name:\"ondrag\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged (every 350ms).\"}},{name:\"ondragend\",description:{kind:\"markdown\",value:\"A drag operation is being ended (by releasing a mouse button or hitting the escape key).\"}},{name:\"ondragenter\",description:{kind:\"markdown\",value:\"A dragged element or text selection enters a valid drop target.\"}},{name:\"ondragleave\",description:{kind:\"markdown\",value:\"A dragged element or text selection leaves a valid drop target.\"}},{name:\"ondragover\",description:{kind:\"markdown\",value:\"An element or text selection is being dragged over a valid drop target (every 350ms).\"}},{name:\"ondragstart\",description:{kind:\"markdown\",value:\"The user starts dragging an element or text selection.\"}},{name:\"ondrop\",description:{kind:\"markdown\",value:\"An element is dropped on a valid drop target.\"}},{name:\"ondurationchange\",description:{kind:\"markdown\",value:\"The duration attribute has been updated.\"}},{name:\"onemptied\",description:{kind:\"markdown\",value:\"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.\"}},{name:\"onended\",description:{kind:\"markdown\",value:\"Playback has stopped because the end of the media was reached.\"}},{name:\"onerror\",description:{kind:\"markdown\",value:\"A resource failed to load.\"}},{name:\"onfocus\",description:{kind:\"markdown\",value:\"An element has received focus (does not bubble).\"}},{name:\"onformchange\"},{name:\"onforminput\"},{name:\"oninput\",description:{kind:\"markdown\",value:\"The value of an element changes or the content of an element with the attribute contenteditable is modified.\"}},{name:\"oninvalid\",description:{kind:\"markdown\",value:\"A submittable element has been checked and doesn't satisfy its constraints.\"}},{name:\"onkeydown\",description:{kind:\"markdown\",value:\"A key is pressed down.\"}},{name:\"onkeypress\",description:{kind:\"markdown\",value:\"A key is pressed down and that key normally produces a character value (use input instead).\"}},{name:\"onkeyup\",description:{kind:\"markdown\",value:\"A key is released.\"}},{name:\"onload\",description:{kind:\"markdown\",value:\"A resource and its dependent resources have finished loading.\"}},{name:\"onloadeddata\",description:{kind:\"markdown\",value:\"The first frame of the media has finished loading.\"}},{name:\"onloadedmetadata\",description:{kind:\"markdown\",value:\"The metadata has been loaded.\"}},{name:\"onloadstart\",description:{kind:\"markdown\",value:\"Progress has begun.\"}},{name:\"onmousedown\",description:{kind:\"markdown\",value:\"A pointing device button (usually a mouse) is pressed on an element.\"}},{name:\"onmousemove\",description:{kind:\"markdown\",value:\"A pointing device is moved over an element.\"}},{name:\"onmouseout\",description:{kind:\"markdown\",value:\"A pointing device is moved off the element that has the listener attached or off one of its children.\"}},{name:\"onmouseover\",description:{kind:\"markdown\",value:\"A pointing device is moved onto the element that has the listener attached or onto one of its children.\"}},{name:\"onmouseup\",description:{kind:\"markdown\",value:\"A pointing device button is released over an element.\"}},{name:\"onmousewheel\"},{name:\"onpause\",description:{kind:\"markdown\",value:\"Playback has been paused.\"}},{name:\"onplay\",description:{kind:\"markdown\",value:\"Playback has begun.\"}},{name:\"onplaying\",description:{kind:\"markdown\",value:\"Playback is ready to start after having been paused or delayed due to lack of data.\"}},{name:\"onprogress\",description:{kind:\"markdown\",value:\"In progress.\"}},{name:\"onratechange\",description:{kind:\"markdown\",value:\"The playback rate has changed.\"}},{name:\"onreset\",description:{kind:\"markdown\",value:\"A form is reset.\"}},{name:\"onresize\",description:{kind:\"markdown\",value:\"The document view has been resized.\"}},{name:\"onreadystatechange\",description:{kind:\"markdown\",value:\"The readyState attribute of a document has changed.\"}},{name:\"onscroll\",description:{kind:\"markdown\",value:\"The document view or an element has been scrolled.\"}},{name:\"onseeked\",description:{kind:\"markdown\",value:\"A seek operation completed.\"}},{name:\"onseeking\",description:{kind:\"markdown\",value:\"A seek operation began.\"}},{name:\"onselect\",description:{kind:\"markdown\",value:\"Some text is being selected.\"}},{name:\"onshow\",description:{kind:\"markdown\",value:\"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute\"}},{name:\"onstalled\",description:{kind:\"markdown\",value:\"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\"}},{name:\"onsubmit\",description:{kind:\"markdown\",value:\"A form is submitted.\"}},{name:\"onsuspend\",description:{kind:\"markdown\",value:\"Media data loading has been suspended.\"}},{name:\"ontimeupdate\",description:{kind:\"markdown\",value:\"The time indicated by the currentTime attribute has been updated.\"}},{name:\"onvolumechange\",description:{kind:\"markdown\",value:\"The volume has changed.\"}},{name:\"onwaiting\",description:{kind:\"markdown\",value:\"Playback has stopped because of a temporary lack of data.\"}},{name:\"aria-activedescendant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant\"}],description:{kind:\"markdown\",value:\"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application).\"}},{name:\"aria-atomic\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic\"}],description:{kind:\"markdown\",value:\"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute.\"}},{name:\"aria-autocomplete\",valueSet:\"autocomplete\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete\"}],description:{kind:\"markdown\",value:\"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.\"}},{name:\"aria-busy\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-busy\"}],description:{kind:\"markdown\",value:\"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user.\"}},{name:\"aria-checked\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-checked\"}],description:{kind:\"markdown\",value:'Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-colcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex).\"}},{name:\"aria-colindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-colspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan\"}],description:{kind:\"markdown\",value:\"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-controls\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-controls\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns).\"}},{name:\"aria-current\",valueSet:\"current\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-current\"}],description:{kind:\"markdown\",value:\"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements.\"}},{name:\"aria-describedat\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedat\"}]},{name:\"aria-describedby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-disabled\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly).\"}},{name:\"aria-dropeffect\",valueSet:\"dropeffect\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect\"}],description:{kind:\"markdown\",value:\"\\\\[Deprecated in ARIA 1.1\\\\] Indicates what functions can be performed when a dragged object is released on the drop target.\"}},{name:\"aria-errormessage\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-expanded\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\"}],description:{kind:\"markdown\",value:\"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.\"}},{name:\"aria-flowto\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto\"}],description:{kind:\"markdown\",value:\"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.\"}},{name:\"aria-grabbed\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed\"}],description:{kind:\"markdown\",value:'\\\\[Deprecated in ARIA 1.1\\\\] Indicates an element\\'s \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'}},{name:\"aria-haspopup\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\"}],description:{kind:\"markdown\",value:\"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-hidden\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden\"}],description:{kind:\"markdown\",value:\"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-invalid\",valueSet:\"invalid\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid\"}],description:{kind:\"markdown\",value:\"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage).\"}},{name:\"aria-kbdshortcuts\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-kbdshortcuts\"}]},{name:\"aria-label\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-label\"}],description:{kind:\"markdown\",value:\"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"}},{name:\"aria-labelledby\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby\"}],description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-level\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-level\"}],description:{kind:\"markdown\",value:\"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure.\"}},{name:\"aria-live\",valueSet:\"live\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-live\"}],description:{kind:\"markdown\",value:\"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region).\"}},{name:\"aria-modal\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-modal\"}],description:{kind:\"markdown\",value:\"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed.\"}},{name:\"aria-multiline\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline\"}],description:{kind:\"markdown\",value:\"Indicates whether a text box accepts multiple lines of input or only a single line.\"}},{name:\"aria-multiselectable\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable\"}],description:{kind:\"markdown\",value:\"Indicates that the user may select more than one item from the current selectable descendants.\"}},{name:\"aria-orientation\",valueSet:\"orientation\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation\"}],description:{kind:\"markdown\",value:\"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\"}},{name:\"aria-owns\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-owns\"}],description:{kind:\"markdown\",value:\"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls).\"}},{name:\"aria-placeholder\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder\"}],description:{kind:\"markdown\",value:\"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.\"}},{name:\"aria-posinset\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset\"}],description:{kind:\"markdown\",value:\"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize).\"}},{name:\"aria-pressed\",valueSet:\"tristate\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\"}],description:{kind:\"markdown\",value:'Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:\"aria-readonly\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\"}],description:{kind:\"markdown\",value:\"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"}},{name:\"aria-relevant\",valueSet:\"relevant\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant\"}],description:{kind:\"markdown\",value:\"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic).\"}},{name:\"aria-required\",valueSet:\"b\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-required\"}],description:{kind:\"markdown\",value:\"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted.\"}},{name:\"aria-roledescription\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription\"}],description:{kind:\"markdown\",value:\"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"}},{name:\"aria-rowcount\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount\"}],description:{kind:\"markdown\",value:\"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex).\"}},{name:\"aria-rowindex\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex\"}],description:{kind:\"markdown\",value:\"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"}},{name:\"aria-rowspan\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan\"}],description:{kind:\"markdown\",value:\"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"}},{name:\"aria-selected\",valueSet:\"u\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-selected\"}],description:{kind:\"markdown\",value:'Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'}},{name:\"aria-setsize\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize\"}],description:{kind:\"markdown\",value:\"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset).\"}},{name:\"aria-sort\",valueSet:\"sort\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-sort\"}],description:{kind:\"markdown\",value:\"Indicates if items in a table or grid are sorted in ascending or descending order.\"}},{name:\"aria-valuemax\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax\"}],description:{kind:\"markdown\",value:\"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuemin\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin\"}],description:{kind:\"markdown\",value:\"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-valuenow\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow\"}],description:{kind:\"markdown\",value:\"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext).\"}},{name:\"aria-valuetext\",references:[{name:\"WAI-ARIA Reference\",url:\"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\"}],description:{kind:\"markdown\",value:\"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"}},{name:\"aria-details\",description:{kind:\"markdown\",value:\"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"}},{name:\"aria-keyshortcuts\",description:{kind:\"markdown\",value:\"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\"}}],valueSets:[{name:\"b\",values:[{name:\"true\"},{name:\"false\"}]},{name:\"u\",values:[{name:\"true\"},{name:\"false\"},{name:\"undefined\"}]},{name:\"o\",values:[{name:\"on\"},{name:\"off\"}]},{name:\"y\",values:[{name:\"yes\"},{name:\"no\"}]},{name:\"w\",values:[{name:\"soft\"},{name:\"hard\"}]},{name:\"d\",values:[{name:\"ltr\"},{name:\"rtl\"},{name:\"auto\"}]},{name:\"m\",values:[{name:\"GET\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\"}},{name:\"POST\",description:{kind:\"markdown\",value:\"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server.\"}},{name:\"dialog\",description:{kind:\"markdown\",value:\"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted.\"}}]},{name:\"fm\",values:[{name:\"GET\"},{name:\"POST\"}]},{name:\"s\",values:[{name:\"row\"},{name:\"col\"},{name:\"rowgroup\"},{name:\"colgroup\"}]},{name:\"t\",values:[{name:\"hidden\"},{name:\"text\"},{name:\"search\"},{name:\"tel\"},{name:\"url\"},{name:\"email\"},{name:\"password\"},{name:\"datetime\"},{name:\"date\"},{name:\"month\"},{name:\"week\"},{name:\"time\"},{name:\"datetime-local\"},{name:\"number\"},{name:\"range\"},{name:\"color\"},{name:\"checkbox\"},{name:\"radio\"},{name:\"file\"},{name:\"submit\"},{name:\"image\"},{name:\"reset\"},{name:\"button\"}]},{name:\"im\",values:[{name:\"verbatim\"},{name:\"latin\"},{name:\"latin-name\"},{name:\"latin-prose\"},{name:\"full-width-latin\"},{name:\"kana\"},{name:\"kana-name\"},{name:\"katakana\"},{name:\"numeric\"},{name:\"tel\"},{name:\"email\"},{name:\"url\"}]},{name:\"bt\",values:[{name:\"button\"},{name:\"submit\"},{name:\"reset\"},{name:\"menu\"}]},{name:\"lt\",values:[{name:\"1\"},{name:\"a\"},{name:\"A\"},{name:\"i\"},{name:\"I\"}]},{name:\"mt\",values:[{name:\"context\"},{name:\"toolbar\"}]},{name:\"mit\",values:[{name:\"command\"},{name:\"checkbox\"},{name:\"radio\"}]},{name:\"et\",values:[{name:\"application/x-www-form-urlencoded\"},{name:\"multipart/form-data\"},{name:\"text/plain\"}]},{name:\"tk\",values:[{name:\"subtitles\"},{name:\"captions\"},{name:\"descriptions\"},{name:\"chapters\"},{name:\"metadata\"}]},{name:\"pl\",values:[{name:\"none\"},{name:\"metadata\"},{name:\"auto\"}]},{name:\"sh\",values:[{name:\"circle\"},{name:\"default\"},{name:\"poly\"},{name:\"rect\"}]},{name:\"xo\",values:[{name:\"anonymous\"},{name:\"use-credentials\"}]},{name:\"sb\",values:[{name:\"allow-forms\"},{name:\"allow-modals\"},{name:\"allow-pointer-lock\"},{name:\"allow-popups\"},{name:\"allow-popups-to-escape-sandbox\"},{name:\"allow-same-origin\"},{name:\"allow-scripts\"},{name:\"allow-top-navigation\"}]},{name:\"tristate\",values:[{name:\"true\"},{name:\"false\"},{name:\"mixed\"},{name:\"undefined\"}]},{name:\"inputautocomplete\",values:[{name:\"additional-name\"},{name:\"address-level1\"},{name:\"address-level2\"},{name:\"address-level3\"},{name:\"address-level4\"},{name:\"address-line1\"},{name:\"address-line2\"},{name:\"address-line3\"},{name:\"bday\"},{name:\"bday-year\"},{name:\"bday-day\"},{name:\"bday-month\"},{name:\"billing\"},{name:\"cc-additional-name\"},{name:\"cc-csc\"},{name:\"cc-exp\"},{name:\"cc-exp-month\"},{name:\"cc-exp-year\"},{name:\"cc-family-name\"},{name:\"cc-given-name\"},{name:\"cc-name\"},{name:\"cc-number\"},{name:\"cc-type\"},{name:\"country\"},{name:\"country-name\"},{name:\"current-password\"},{name:\"email\"},{name:\"family-name\"},{name:\"fax\"},{name:\"given-name\"},{name:\"home\"},{name:\"honorific-prefix\"},{name:\"honorific-suffix\"},{name:\"impp\"},{name:\"language\"},{name:\"mobile\"},{name:\"name\"},{name:\"new-password\"},{name:\"nickname\"},{name:\"organization\"},{name:\"organization-title\"},{name:\"pager\"},{name:\"photo\"},{name:\"postal-code\"},{name:\"sex\"},{name:\"shipping\"},{name:\"street-address\"},{name:\"tel-area-code\"},{name:\"tel\"},{name:\"tel-country-code\"},{name:\"tel-extension\"},{name:\"tel-local\"},{name:\"tel-local-prefix\"},{name:\"tel-local-suffix\"},{name:\"tel-national\"},{name:\"transaction-amount\"},{name:\"transaction-currency\"},{name:\"url\"},{name:\"username\"},{name:\"work\"}]},{name:\"autocomplete\",values:[{name:\"inline\"},{name:\"list\"},{name:\"both\"},{name:\"none\"}]},{name:\"current\",values:[{name:\"page\"},{name:\"step\"},{name:\"location\"},{name:\"date\"},{name:\"time\"},{name:\"true\"},{name:\"false\"}]},{name:\"dropeffect\",values:[{name:\"copy\"},{name:\"move\"},{name:\"link\"},{name:\"execute\"},{name:\"popup\"},{name:\"none\"}]},{name:\"invalid\",values:[{name:\"grammar\"},{name:\"false\"},{name:\"spelling\"},{name:\"true\"}]},{name:\"live\",values:[{name:\"off\"},{name:\"polite\"},{name:\"assertive\"}]},{name:\"orientation\",values:[{name:\"vertical\"},{name:\"horizontal\"},{name:\"undefined\"}]},{name:\"relevant\",values:[{name:\"additions\"},{name:\"removals\"},{name:\"text\"},{name:\"all\"},{name:\"additions text\"}]},{name:\"sort\",values:[{name:\"ascending\"},{name:\"descending\"},{name:\"none\"},{name:\"other\"}]},{name:\"roles\",values:[{name:\"alert\"},{name:\"alertdialog\"},{name:\"button\"},{name:\"checkbox\"},{name:\"dialog\"},{name:\"gridcell\"},{name:\"link\"},{name:\"log\"},{name:\"marquee\"},{name:\"menuitem\"},{name:\"menuitemcheckbox\"},{name:\"menuitemradio\"},{name:\"option\"},{name:\"progressbar\"},{name:\"radio\"},{name:\"scrollbar\"},{name:\"searchbox\"},{name:\"slider\"},{name:\"spinbutton\"},{name:\"status\"},{name:\"switch\"},{name:\"tab\"},{name:\"tabpanel\"},{name:\"textbox\"},{name:\"timer\"},{name:\"tooltip\"},{name:\"treeitem\"},{name:\"combobox\"},{name:\"grid\"},{name:\"listbox\"},{name:\"menu\"},{name:\"menubar\"},{name:\"radiogroup\"},{name:\"tablist\"},{name:\"tree\"},{name:\"treegrid\"},{name:\"application\"},{name:\"article\"},{name:\"cell\"},{name:\"columnheader\"},{name:\"definition\"},{name:\"directory\"},{name:\"document\"},{name:\"feed\"},{name:\"figure\"},{name:\"group\"},{name:\"heading\"},{name:\"img\"},{name:\"list\"},{name:\"listitem\"},{name:\"math\"},{name:\"none\"},{name:\"note\"},{name:\"presentation\"},{name:\"region\"},{name:\"row\"},{name:\"rowgroup\"},{name:\"rowheader\"},{name:\"separator\"},{name:\"table\"},{name:\"term\"},{name:\"text\"},{name:\"toolbar\"},{name:\"banner\"},{name:\"complementary\"},{name:\"contentinfo\"},{name:\"form\"},{name:\"main\"},{name:\"navigation\"},{name:\"region\"},{name:\"search\"},{name:\"doc-abstract\"},{name:\"doc-acknowledgments\"},{name:\"doc-afterword\"},{name:\"doc-appendix\"},{name:\"doc-backlink\"},{name:\"doc-biblioentry\"},{name:\"doc-bibliography\"},{name:\"doc-biblioref\"},{name:\"doc-chapter\"},{name:\"doc-colophon\"},{name:\"doc-conclusion\"},{name:\"doc-cover\"},{name:\"doc-credit\"},{name:\"doc-credits\"},{name:\"doc-dedication\"},{name:\"doc-endnote\"},{name:\"doc-endnotes\"},{name:\"doc-epigraph\"},{name:\"doc-epilogue\"},{name:\"doc-errata\"},{name:\"doc-example\"},{name:\"doc-footnote\"},{name:\"doc-foreword\"},{name:\"doc-glossary\"},{name:\"doc-glossref\"},{name:\"doc-index\"},{name:\"doc-introduction\"},{name:\"doc-noteref\"},{name:\"doc-notice\"},{name:\"doc-pagebreak\"},{name:\"doc-pagelist\"},{name:\"doc-part\"},{name:\"doc-preface\"},{name:\"doc-prologue\"},{name:\"doc-pullquote\"},{name:\"doc-qna\"},{name:\"doc-subtitle\"},{name:\"doc-tip\"},{name:\"doc-toc\"}]},{name:\"metanames\",values:[{name:\"application-name\"},{name:\"author\"},{name:\"description\"},{name:\"format-detection\"},{name:\"generator\"},{name:\"keywords\"},{name:\"publisher\"},{name:\"referrer\"},{name:\"robots\"},{name:\"theme-color\"},{name:\"viewport\"}]}]}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/languageFacts/builtinDataProviders\",[\"require\",\"exports\",\"./dataProvider\",\"./data/webCustomData\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./dataProvider\"),i=e(\"./data/webCustomData\");t.builtinDataProviders=[new n.HTMLDataProvider(\"html5\",i.htmlData)];var r=[];t.getAllDataProviders=function(){return t.builtinDataProviders.concat(r)},t.handleCustomDataProviders=function(e){e.forEach((function(e){r.push(e)}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/utils/object\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isDefined=function(e){return void 0!==e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlCompletion\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../htmlLanguageTypes\",\"../parser/htmlEntities\",\"vscode-nls\",\"../utils/strings\",\"../languageFacts/builtinDataProviders\",\"../languageFacts/fact\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../parser/htmlEntities\"),o=e(\"vscode-nls\"),s=e(\"../utils/strings\"),l=e(\"../languageFacts/builtinDataProviders\"),c=e(\"../languageFacts/fact\"),d=e(\"../utils/object\"),h=e(\"../languageFacts/dataProvider\"),u=o.loadMessageBundle(),p=function(){function e(e){this.clientCapabilities=e,this.completionParticipants=[]}return e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete=function(e,t,n,i){var r=this._doComplete(e,t,n,i);return this.convertCompletionList(r)},e.prototype._doComplete=function(e,t,o,d){var p={isIncomplete:!1,items:[]},g=this.completionParticipants,b=l.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)&&(!d||!1!==d[t.getId()])})),_=this.doesSupportMarkdown(),v=e.getText(),w=e.offsetAt(t),y=o.findNodeBefore(w);if(!y)return p;var T,k=i.createScanner(v,y.start),S=\"\";function x(t,n){return void 0===n&&(n=w),t>w&&(t=w),{start:e.positionAt(t),end:e.positionAt(n)}}function L(e,t){var i=x(e,t);return b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(i,e.name),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p}function M(e){for(var t=e;t>0;){var n=v.charAt(t-1);if(\"\\n\\r\".indexOf(n)>=0)return v.substring(t,e);if(!m(n))return null;t--}return v.substring(0,e)}function E(e,t,i){void 0===i&&(i=w);var a=x(e,i),o=f(v,i,r.ScannerState.WithinEndTag,r.TokenType.EndTagClose)?\"\":\">\",s=y;for(t&&(s=s.parent);s;){var l=s.tag;if(l&&(!s.closed||s.endTagStart&&s.endTagStart>w)){var c={label:\"/\"+l,kind:n.CompletionItemKind.Property,filterText:\"/\"+l,textEdit:n.TextEdit.replace(a,\"/\"+l+o),insertTextFormat:n.InsertTextFormat.PlainText},d=M(s.start),u=M(e-1);if(null!==d&&null!==u&&d!==u){var m=d+\"</\"+l+o;c.textEdit=n.TextEdit.replace(x(e-1-u.length),m),c.filterText=u+\"</\"+l}return p.items.push(c),p}s=s.parent}return t?p:(b.forEach((function(e){e.provideTags().forEach((function(e){p.items.push({label:\"/\"+e.name,kind:n.CompletionItemKind.Property,documentation:h.generateDocumentation(e,_),filterText:\"/\"+e+o,textEdit:n.TextEdit.replace(a,\"/\"+e+o),insertTextFormat:n.InsertTextFormat.PlainText})}))})),p)}function A(t,i){if(d&&d.hideAutoCompleteProposals)return p;if(!c.isVoidElement(i)){var r=e.positionAt(t);p.items.push({label:\"</\"+i+\">\",kind:n.CompletionItemKind.Property,filterText:\"</\"+i+\">\",textEdit:n.TextEdit.insert(r,\"$0</\"+i+\">\"),insertTextFormat:n.InsertTextFormat.Snippet})}return p}function R(e,t){return L(e,t),E(e,!0,t),p}function z(e,t){void 0===t&&(t=w);for(var i=w;i<t&&\"<\"!==v[i];)i++;var a=x(e,i),l=f(v,t,r.ScannerState.AfterAttributeName,r.TokenType.DelimiterAssign)?\"\":'=\"$1\"',c=S.toLowerCase(),d=Object.create(null);return b.forEach((function(e){e.provideAttributes(c).forEach((function(e){if(!d[e.name]){d[e.name]=!0;var t,i=e.name;\"v\"!==e.valueSet&&l.length&&(i+=l,(e.valueSet||\"style\"===e.name)&&(t={title:\"Suggest\",command:\"editor.action.triggerSuggest\"})),p.items.push({label:e.name,kind:\"handler\"===e.valueSet?n.CompletionItemKind.Function:n.CompletionItemKind.Value,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,i),insertTextFormat:n.InsertTextFormat.Snippet,command:t})}}))})),function(e,t){var i={};i[\"data-\"]='data-$1=\"$2\"',o&&o.roots.forEach((function(e){return function e(n){n.attributeNames.forEach((function(e){!s.startsWith(e,\"data-\")||i[e]||t[e]||(i[e]=e+'=\"$1\"')})),n.children.forEach((function(t){return e(t)}))}(e)}));Object.keys(i).forEach((function(t){return p.items.push({label:t,kind:n.CompletionItemKind.Value,textEdit:n.TextEdit.replace(e,i[t]),insertTextFormat:n.InsertTextFormat.Snippet})}))}(a,d),p}function H(i,r){var a,o,s,l;if(void 0===r&&(r=w),w>i&&w<=r&&(l=v[i],/^[\"']*$/.test(l))){var c=i+1,d=r;r>i&&v[r-1]===v[i]&&d--;var u=function(e,t,n){for(;t>n&&!m(e[t-1]);)t--;return t}(v,w,c),f=function(e,t,n){for(;t<n&&!m(e[t]);)t++;return t}(v,w,d);a=x(u,f),s=w>=c&&w<=d?v.substring(c,w):\"\",o=!1}else a=x(i,r),s=v.substring(i,w),o=!0;var y=S.toLowerCase(),k=T.toLowerCase();if(g.length>0)for(var L=x(i,r),M=0,E=g;M<E.length;M++){var A=E[M];A.onHtmlAttributeValue&&A.onHtmlAttributeValue({document:e,position:t,tag:y,attribute:k,value:s,range:L})}return b.forEach((function(e){e.provideValues(y,k).forEach((function(e){var t=o?'\"'+e.name+'\"':e.name;p.items.push({label:e.name,filterText:t,kind:n.CompletionItemKind.Unit,documentation:h.generateDocumentation(e,_),textEdit:n.TextEdit.replace(a,t),insertTextFormat:n.InsertTextFormat.PlainText})}))})),U(),p}function I(e){return w===k.getTokenEnd()&&(D=k.scan())===e&&k.getTokenOffset()===w?k.getTokenEnd():w}function C(){for(var n=0,i=g;n<i.length;n++){var r=i[n];r.onHtmlContent&&r.onHtmlContent({document:e,position:t})}return U()}function U(){for(var e=w-1,i=t.character;e>=0&&s.isLetterOrDigit(v,e);)e--,i--;if(e>=0&&\"&\"===v[e]){var r=n.Range.create(n.Position.create(t.line,i-1),t);for(var o in a.entities)if(s.endsWith(o,\";\")){var l=\"&\"+o;p.items.push({label:l,kind:n.CompletionItemKind.Keyword,documentation:u(\"entity.propose\",\"Character entity representing '\"+a.entities[o]+\"'\"),textEdit:n.TextEdit.replace(r,l),insertTextFormat:n.InsertTextFormat.PlainText})}}return p}for(var W,D=k.scan();D!==r.TokenType.EOS&&k.getTokenOffset()<=w;){switch(D){case r.TokenType.StartTagOpen:if(k.getTokenEnd()===w){var q=I(r.TokenType.StartTag);return 0===t.line&&(W=void 0,W=x(w,q),p.items.push({label:\"!DOCTYPE\",kind:n.CompletionItemKind.Property,documentation:\"A preamble for an HTML document.\",textEdit:n.TextEdit.replace(W,\"!DOCTYPE html>\"),insertTextFormat:n.InsertTextFormat.PlainText})),R(w,q)}break;case r.TokenType.StartTag:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return L(k.getTokenOffset(),k.getTokenEnd());S=k.getTokenText();break;case r.TokenType.AttributeName:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return z(k.getTokenOffset(),k.getTokenEnd());T=k.getTokenText();break;case r.TokenType.DelimiterAssign:if(k.getTokenEnd()===w){q=I(r.TokenType.AttributeValue);return H(w,q)}break;case r.TokenType.AttributeValue:if(k.getTokenOffset()<=w&&w<=k.getTokenEnd())return H(k.getTokenOffset(),k.getTokenEnd());break;case r.TokenType.Whitespace:if(w<=k.getTokenEnd())switch(k.getScannerState()){case r.ScannerState.AfterOpeningStartTag:return R(k.getTokenOffset(),I(r.TokenType.StartTag));case r.ScannerState.WithinTag:case r.ScannerState.AfterAttributeName:return z(k.getTokenEnd());case r.ScannerState.BeforeAttributeValue:return H(k.getTokenEnd());case r.ScannerState.AfterOpeningEndTag:return E(k.getTokenOffset()-1,!1);case r.ScannerState.WithinContent:return C()}break;case r.TokenType.EndTagOpen:if(w<=k.getTokenEnd())return E(k.getTokenOffset()+1,!1,I(r.TokenType.EndTag));break;case r.TokenType.EndTag:if(w<=k.getTokenEnd())for(var O=k.getTokenOffset()-1;O>=0;){var P=v.charAt(O);if(\"/\"===P)return E(O,!1,k.getTokenEnd());if(!m(P))break;O--}break;case r.TokenType.StartTagClose:if(w<=k.getTokenEnd()&&S)return A(k.getTokenEnd(),S);break;case r.TokenType.Content:if(w<=k.getTokenEnd())return C();break;default:if(w<=k.getTokenEnd())return p}D=k.scan()}return p},e.prototype.doTagComplete=function(e,t,n){var a=e.offsetAt(t);if(a<=0)return null;var o=e.getText().charAt(a-1);if(\">\"===o){if((l=n.findNodeBefore(a))&&l.tag&&!c.isVoidElement(l.tag)&&l.start<a&&(!l.endTagStart||l.endTagStart>a))for(var s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.StartTagClose&&d.getTokenEnd()===a)return\"$0</\"+l.tag+\">\";s=d.scan()}}else if(\"/\"===o){for(var l=n.findNodeBefore(a);l&&l.closed;)l=l.parent;if(l&&l.tag){var d;for(s=(d=i.createScanner(e.getText(),l.start)).scan();s!==r.TokenType.EOS&&d.getTokenEnd()<=a;){if(s===r.TokenType.EndTagOpen&&d.getTokenEnd()===a)return l.tag+\">\";s=d.scan()}}}return null},e.prototype.convertCompletionList=function(e){return this.doesSupportMarkdown()||e.items.forEach((function(e){e.documentation&&\"string\"!=typeof e.documentation&&(e.documentation={kind:\"plaintext\",value:e.documentation.value})})),e},e.prototype.doesSupportMarkdown=function(){if(!d.isDefined(this.supportsMarkdown)){if(!d.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(n.MarkupKind.Markdown)}return this.supportsMarkdown},e}();function m(e){return/^\\s*$/.test(e)}function f(e,t,n,a){for(var o=i.createScanner(e,t,n),s=o.scan();s===r.TokenType.Whitespace;)s=o.scan();return s===a}t.HTMLCompletion=p})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHover\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../languageFacts/builtinDataProviders\",\"../utils/object\",\"../languageFacts/dataProvider\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\"),a=e(\"../languageFacts/builtinDataProviders\"),o=e(\"../utils/object\"),s=e(\"../languageFacts/dataProvider\"),l=function(){function e(e){this.clientCapabilities=e}return e.prototype.doHover=function(e,t,i){var o=this.convertContents.bind(this),l=this.doesSupportMarkdown(),c=e.offsetAt(t),d=i.findNodeAt(c);if(!d||!d.tag)return null;var h=a.getAllDataProviders().filter((function(t){return t.isApplicable(e.languageId)}));function u(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideTags().forEach((function(i){if(i.name.toLowerCase()===e.toLowerCase()){var a=n?\"<\"+e+\">\":\"</\"+e+\">\",o=s.generateDocumentation(i,l);o.value=\"```html\\n\"+a+\"\\n```\\n\"+o.value,r={contents:o,range:t}}})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}function p(t,i){for(var a=n.createScanner(e.getText(),i),o=a.scan();o!==r.TokenType.EOS&&(a.getTokenEnd()<c||a.getTokenEnd()===c&&o!==t);)o=a.scan();return o===t&&c<=a.getTokenEnd()?{start:e.positionAt(a.getTokenOffset()),end:e.positionAt(a.getTokenEnd())}:null}if(d.endTagStart&&c>=d.endTagStart){var m=p(r.TokenType.EndTag,d.endTagStart);return m?u(d.tag,m,!1):null}var f=p(r.TokenType.StartTag,d.start);if(f)return u(d.tag,f,!0);var g=p(r.TokenType.AttributeName,d.start);if(g)return function(e,t,n){e=e.toLowerCase();for(var i=function(i){var r=null;if(i.provideAttributes(e).forEach((function(e){t===e.name&&e.description&&(r={contents:s.generateDocumentation(e,l),range:n})})),r)return r.contents=o(r.contents),{value:r}},r=0,a=h;r<a.length;r++){var c=i(a[r]);if(\"object\"==typeof c)return c.value}return null}(_=d.tag,e.getText(g),g);var b=p(r.TokenType.AttributeValue,d.start);if(b){var _=d.tag,v=function(e){if(e.length<=1)return e.replace(/['\"]/,\"\");\"'\"!==e[0]&&'\"'!==e[0]||(e=e.slice(1));\"'\"!==e[e.length-1]&&'\"'!==e[e.length-1]||(e=e.slice(0,-1));return e}(e.getText(b)),w=function(t,i){for(var a=n.createScanner(e.getText(),t),o=a.scan(),s=void 0;o!==r.TokenType.EOS&&a.getTokenEnd()<=i;)(o=a.scan())===r.TokenType.AttributeName&&(s=a.getTokenText());return s}(d.start,e.offsetAt(b.start));if(w)return function(e,t,n,i){e=e.toLowerCase();for(var r=function(r){var a=null;if(r.provideValues(e,t).forEach((function(e){n===e.name&&e.description&&(a={contents:s.generateDocumentation(e,l),range:i})})),a)return a.contents=o(a.contents),{value:a}},a=0,c=h;a<c.length;a++){var d=r(c[a]);if(\"object\"==typeof d)return d.value}return null}(_,w,v,b)}return null},e.prototype.convertContents=function(e){if(!this.doesSupportMarkdown()){if(\"string\"==typeof e)return e;if(\"kind\"in e)return{kind:\"plaintext\",value:e.value};if(!Array.isArray(e))return e.value;e.map((function(e){return\"string\"==typeof e?e:e.value}))}return e},e.prototype.doesSupportMarkdown=function(){if(!o.isDefined(this.supportsMarkdown)){if(!o.isDefined(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities&&this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(i.MarkupKind.Markdown)}return this.supportsMarkdown},e}();t.HTMLHover=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/beautify/beautify\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.js_beautify=function(e,t){return e}})),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=15)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},,,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},,,,,function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},,function(e,t,n){var i=n(16).Beautifier,r=n(17).Options;e.exports=function(e,t){return new i(e,t).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(17).Options,r=n(2).Output,a=n(8).InputScanner,o=new(0,n(13).Directives)(/\\/\\*/,/\\*\\//),s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=/\\s/,d=/(?:\\s|\\n)+/g,h=/\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g,u=/\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;function p(e,t){this._source_text=e||\"\",this._options=new i(t),this._ch=null,this._input=null,this.NESTED_AT_RULE={\"@page\":!0,\"@font-face\":!0,\"@keyframes\":!0,\"@media\":!0,\"@supports\":!0,\"@document\":!0},this.CONDITIONAL_GROUP_RULE={\"@media\":!0,\"@supports\":!0,\"@document\":!0}}p.prototype.eatString=function(e){var t=\"\";for(this._ch=this._input.next();this._ch;){if(t+=this._ch,\"\\\\\"===this._ch)t+=this._input.next();else if(-1!==e.indexOf(this._ch)||\"\\n\"===this._ch)break;this._ch=this._input.next()}return t},p.prototype.eatWhitespace=function(e){for(var t=c.test(this._input.peek()),n=!0;c.test(this._input.peek());)this._ch=this._input.next(),e&&\"\\n\"===this._ch&&(this._options.preserve_newlines||n)&&(n=!1,this._output.add_new_line(!0));return t},p.prototype.foundNestedPseudoClass=function(){for(var e=0,t=1,n=this._input.peek(t);n;){if(\"{\"===n)return!0;if(\"(\"===n)e+=1;else if(\")\"===n){if(0===e)return!1;e-=1}else if(\";\"===n||\"}\"===n)return!1;t++,n=this._input.peek(t)}return!1},p.prototype.print_string=function(e){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(e)},p.prototype.preserveSingleSpace=function(e){e&&(this._output.space_before_token=!0)},p.prototype.indent=function(){this._indentLevel++},p.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===t&&(t=\"\\n\",e&&s.test(e||\"\")&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0];this._output=new r(this._options,n),this._input=new a(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var i,p,m=0,f=!1,g=!1,b=!1,_=!1,v=!1,w=this._ch;i=\"\"!==this._input.read(d),p=w,this._ch=this._input.next(),\"\\\\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),w=this._ch,this._ch;)if(\"/\"===this._ch&&\"*\"===this._input.peek()){this._output.add_new_line(),this._input.back();var y=this._input.read(h),T=o.get_directives(y);T&&\"start\"===T.ignore&&(y+=o.readIgnored(this._input)),this.print_string(y),this.eatWhitespace(!0),this._output.add_new_line()}else if(\"/\"===this._ch&&\"/\"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if(\"@\"===this._ch)if(this.preserveSingleSpace(i),\"{\"===this._input.peek())this.print_string(this._ch+this.eatString(\"}\"));else{this.print_string(this._ch);var k=this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);k.match(/[ :]$/)&&(k=this.eatString(\": \").replace(/\\s$/,\"\"),this.print_string(k),this._output.space_before_token=!0),\"extend\"===(k=k.replace(/\\s$/,\"\"))?_=!0:\"import\"===k&&(v=!0),k in this.NESTED_AT_RULE?(this._nestedLevel+=1,k in this.CONDITIONAL_GROUP_RULE&&(b=!0)):f||0!==m||-1===k.indexOf(\":\")||(g=!0,this.indent())}else\"#\"===this._ch&&\"{\"===this._input.peek()?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(\"}\"))):\"{\"===this._ch?(g&&(g=!1,this.outdent()),this.indent(),this._output.space_before_token=!0,this.print_string(this._ch),b?(b=!1,f=this._indentLevel>this._nestedLevel):f=this._indentLevel>=this._nestedLevel,this._options.newline_between_rules&&f&&this._output.previous_line&&\"{\"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above(\"/\",\",\"),this.eatWhitespace(!0),this._output.add_new_line()):\"}\"===this._ch?(this.outdent(),this._output.add_new_line(),\"{\"===p&&this._output.trim(!0),v=!1,_=!1,g&&(this.outdent(),g=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&\"}\"!==this._input.peek()&&this._output.add_new_line(!0)):\":\"===this._ch?!f&&!b||this._input.lookBack(\"&\")||this.foundNestedPseudoClass()||this._input.lookBack(\"(\")||_||0!==m?(this._input.lookBack(\" \")&&(this._output.space_before_token=!0),\":\"===this._input.peek()?(this._ch=this._input.next(),this.print_string(\"::\")):this.print_string(\":\")):(this.print_string(\":\"),g||(g=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):'\"'===this._ch||\"'\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):\";\"===this._ch?0===m?(g&&(this.outdent(),g=!1),_=!1,v=!1,this.print_string(this._ch),this.eatWhitespace(!0),\"/\"!==this._input.peek()&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):\"(\"===this._ch?this._input.lookBack(\"url\")?(this.print_string(this._ch),this.eatWhitespace(),m++,this.indent(),this._ch=this._input.next(),\")\"===this._ch||'\"'===this._ch||\"'\"===this._ch?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(\")\")),m&&(m--,this.outdent()))):(this.preserveSingleSpace(i),this.print_string(this._ch),this.eatWhitespace(),m++,this.indent()):\")\"===this._ch?(m&&(m--,this.outdent()),this.print_string(this._ch)):\",\"===this._ch?(this.print_string(this._ch),this.eatWhitespace(!0),!this._options.selector_separator_newline||g||0!==m||v?this._output.space_before_token=!0:this._output.add_new_line()):\">\"!==this._ch&&\"+\"!==this._ch&&\"~\"!==this._ch||g||0!==m?\"]\"===this._ch?this.print_string(this._ch):\"[\"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch)):\"=\"===this._ch?(this.eatWhitespace(),this.print_string(\"=\"),c.test(this._ch)&&(this._ch=\"\")):\"!\"!==this._ch||this._input.lookBack(\"\\\\\")?(this.preserveSingleSpace(i),this.print_string(this._ch)):(this.print_string(\" \"),this.print_string(this._ch)):this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&c.test(this._ch)&&(this._ch=\"\"));return this._output.get_code(t)},e.exports.Beautifier=p},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"css\"),this.selector_separator_newline=this._get_boolean(\"selector_separator_newline\",!0),this.newline_between_rules=this._get_boolean(\"newline_between_rules\",!0);var t=this._get_boolean(\"space_around_selector_separator\");this.space_around_combinator=this._get_boolean(\"space_around_combinator\")||t}r.prototype=new i,e.exports.Options=r}]);\"function\"==typeof define&&define.amd?define(\"vscode-html-languageservice/beautify/beautify-css\",[],(function(){return{css_beautify:e}})):\"undefined\"!=typeof exports?exports.css_beautify=e:\"undefined\"!=typeof window?window.css_beautify=e:\"undefined\"!=typeof global&&(global.css_beautify=e)}(),function(){var e=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=18)}([,,function(e,t,n){function i(e){this.__parent=e,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function r(e,t){this.__cache=[\"\"],this.__indent_size=e.indent_size,this.__indent_string=e.indent_char,e.indent_with_tabs||(this.__indent_string=new Array(e.indent_size+1).join(e.indent_char)),t=t||\"\",e.indent_level>0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,\" \"===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf(\"\\n\");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;\" \"===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e=\"\";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join(\"\")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=\"\"),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n=\"\";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(\" \")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&(\"\\n\"===t[t.length-1]&&(t=t.replace(/\\n+$/g,\"\")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join(\"\\n\");return\"\\n\"!==e&&(n=n.replace(/[\\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t<e.newlines;t++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(e.whitespace_before),this.current_line.push(e.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(e){this.__add_space_before_token(),this.current_line.push(e),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(\" \"))},a.prototype.remove_indent=function(e){for(var t=this.__lines.length;e<t;)this.__lines[e]._remove_indent(),e++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim();e&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},function(e,t,n){e.exports.Token=function(e,t,n,i){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||\"\",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}},,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean(\"disabled\"),this.eol=this._get_characters(\"eol\",\"auto\"),this.end_with_newline=this._get_boolean(\"end_with_newline\"),this.indent_size=this._get_number(\"indent_size\",4),this.indent_char=this._get_characters(\"indent_char\",\" \"),this.indent_level=this._get_number(\"indent_level\"),this.preserve_newlines=this._get_boolean(\"preserve_newlines\",!0),this.max_preserve_newlines=this._get_number(\"max_preserve_newlines\",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean(\"indent_with_tabs\",\"\\t\"===this.indent_char),this.indent_with_tabs&&(this.indent_char=\"\\t\",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number(\"wrap_line_length\",this._get_number(\"max_char\")),this.indent_empty_lines=this._get_boolean(\"indent_empty_lines\"),this.templating=this._get_selection_list(\"templating\",[\"auto\",\"none\",\"django\",\"erb\",\"handlebars\",\"php\"],[\"auto\"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,\"_\")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return\"object\"==typeof n?null!==n&&\"function\"==typeof n.concat&&(i=n.concat()):\"string\"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\\/\\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||\"\";return\"string\"==typeof n&&(i=n.replace(/\\\\r/,\"\\r\").replace(/\\\\n/,\"\\n\").replace(/\\\\t/,\"\\t\")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error(\"Invalid Option Value: The option '\"+e+\"' can only be one of the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error(\"Selection list cannot be empty.\");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error(\"Invalid Default Value!\");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error(\"Invalid Option Value: The option '\"+e+\"' can contain only the following values:\\n\"+t+\"\\nYou passed in: '\"+this.raw_options[e]+\"'\");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty(\"sticky\");function r(e){this.__input=e||\"\",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position<this.__input_length},r.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__input.charAt(this.__position),this.__position+=1),e},r.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__input_length&&(t=this.__input.charAt(e)),t},r.prototype.__match=function(e,t){e.lastIndex=t;var n=e.exec(this.__input);return!n||i&&e.sticky||n.index!==t&&(n=null),n},r.prototype.test=function(e,t){return t=t||0,(t+=this.__position)>=0&&t<this.__input_length&&!!this.__match(e,t)},r.prototype.testChar=function(e,t){var n=this.peek(t);return e.lastIndex=0,null!==n&&e.test(n)},r.prototype.match=function(e){var t=this.__match(e,this.__position);return t?this.__position+=t[0].length:t=null,t},r.prototype.read=function(e,t,n){var i,r=\"\";return e&&(i=this.match(e))&&(r+=i[0]),!t||!i&&e||(r+=this.readUntil(t,n)),r},r.prototype.readUntil=function(e,t){var n,i=this.__position;e.lastIndex=this.__position;var r=e.exec(this.__input);return r?(i=r.index,t&&(i+=r[0].length)):i=this.__input_length,n=this.__input.substring(this.__position,i),this.__position=i,n},r.prototype.readUntilAfter=function(e){return this.readUntil(e,!0)},r.prototype.get_regexp=function(e,t){var n=null,r=\"g\";return t&&i&&(r=\"y\"),\"string\"==typeof e&&\"\"!==e?n=new RegExp(e,r):e&&(n=new RegExp(e.source,r)),n},r.prototype.get_literal_regexp=function(e){return RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"))},r.prototype.peekUntilAfter=function(e){var t=this.__position,n=this.readUntilAfter(e);return this.__position=t,n},r.prototype.lookBack=function(e){var t=this.__position-1;return t>=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},function(e,t,n){var i=n(8).InputScanner,r=n(3).Token,a=n(10).TokenStream,o=n(11).WhitespacePattern,s={START:\"TK_START\",RAW:\"TK_RAW\",EOF:\"TK_EOF\"},l=function(e,t){this._input=new i(e),this._options=t||{},this.__tokens=null,this._patterns={},this._patterns.whitespace=new o(this._input)};l.prototype.tokenize=function(){var e;this._input.restart(),this.__tokens=new a,this._reset();for(var t=new r(s.START,\"\"),n=null,i=[],o=new a;t.type!==s.EOF;){for(e=this._get_next_token(t,n);this._is_comment(e);)o.add(e),e=this._get_next_token(t,n);o.isEmpty()||(e.comments_before=o,o=new a),e.parent=n,this._is_opening(e)?(i.push(n),n=e):n&&this._is_closing(e,n)&&(e.opened=n,n.closed=e,n=i.pop(),e.parent=n),e.previous=t,t.next=e,this.__tokens.add(e),t=e}return this.__tokens},l.prototype._is_first_token=function(){return this.__tokens.isEmpty()},l.prototype._reset=function(){},l.prototype._get_next_token=function(e,t){this._readWhitespace();var n=this._input.read(/.+/g);return n?this._create_token(s.RAW,n):this._create_token(s.EOF,\"\")},l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return!1},l.prototype._is_closing=function(e,t){return!1},l.prototype._create_token=function(e,t){return new r(e,t,this._patterns.whitespace.newline_count,this._patterns.whitespace.whitespace_before_token)},l.prototype._readWhitespace=function(){return this._patterns.whitespace.read()},e.exports.Tokenizer=l,e.exports.TOKEN=s},function(e,t,n){function i(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}i.prototype.restart=function(){this.__position=0},i.prototype.isEmpty=function(){return 0===this.__tokens_length},i.prototype.hasNext=function(){return this.__position<this.__tokens_length},i.prototype.next=function(){var e=null;return this.hasNext()&&(e=this.__tokens[this.__position],this.__position+=1),e},i.prototype.peek=function(e){var t=null;return e=e||0,(e+=this.__position)>=0&&e<this.__tokens_length&&(t=this.__tokens[e]),t},i.prototype.add=function(e){this.__parent_token&&(e.parent=this.__parent_token),this.__tokens.push(e),this.__tokens_length+=1},e.exports.TokenStream=i},function(e,t,n){var i=n(12).Pattern;function r(e,t){i.call(this,e,t),t?this._line_regexp=this._input.get_regexp(t._line_regexp):this.__set_whitespace_patterns(\"\",\"\"),this.newline_count=0,this.whitespace_before_token=\"\"}r.prototype=new i,r.prototype.__set_whitespace_patterns=function(e,t){e+=\"\\\\t \",t+=\"\\\\n\\\\r\",this._match_pattern=this._input.get_regexp(\"[\"+e+t+\"]+\",!0),this._newline_regexp=this._input.get_regexp(\"\\\\r\\\\n|[\"+t+\"]\")},r.prototype.read=function(){this.newline_count=0,this.whitespace_before_token=\"\";var e=this._input.read(this._match_pattern);if(\" \"===e)this.whitespace_before_token=\" \";else if(e){var t=this.__split(this._newline_regexp,e);this.newline_count=t.length-1,this.whitespace_before_token=t[this.newline_count]}return e},r.prototype.matching=function(e,t){var n=this._create();return n.__set_whitespace_patterns(e,t),n._update(),n},r.prototype._create=function(){return new r(this._input,this)},r.prototype.__split=function(e,t){e.lastIndex=0;for(var n=0,i=[],r=e.exec(t);r;)i.push(t.substring(n,r.index)),n=r.index+r[0].length,r=e.exec(t);return n<t.length?i.push(t.substring(n,t.length)):i.push(\"\"),i},e.exports.WhitespacePattern=r},function(e,t,n){function i(e,t){this._input=e,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,t&&(this._starting_pattern=this._input.get_regexp(t._starting_pattern,!0),this._match_pattern=this._input.get_regexp(t._match_pattern,!0),this._until_pattern=this._input.get_regexp(t._until_pattern),this._until_after=t._until_after)}i.prototype.read=function(){var e=this._input.read(this._starting_pattern);return this._starting_pattern&&!e||(e+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),e},i.prototype.read_match=function(){return this._input.match(this._match_pattern)},i.prototype.until_after=function(e){var t=this._create();return t._until_after=!0,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.until=function(e){var t=this._create();return t._until_after=!1,t._until_pattern=this._input.get_regexp(e),t._update(),t},i.prototype.starting_with=function(e){var t=this._create();return t._starting_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype.matching=function(e){var t=this._create();return t._match_pattern=this._input.get_regexp(e,!0),t._update(),t},i.prototype._create=function(){return new i(this._input,this)},i.prototype._update=function(){},e.exports.Pattern=i},function(e,t,n){function i(e,t){e=\"string\"==typeof e?e:e.source,t=\"string\"==typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \\w+[:]\\w+)+ /.source+t,\"g\"),this.__directive_pattern=/ (\\w+)[:](\\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\\sbeautify\\signore:end\\s/.source+t,\"g\")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},function(e,t,n){var i=n(12).Pattern,r={django:!1,erb:!1,handlebars:!1,php:!1};function a(e,t){i.call(this,e,t),this.__template_pattern=null,this._disabled=Object.assign({},r),this._excluded=Object.assign({},r),t&&(this.__template_pattern=this._input.get_regexp(t.__template_pattern),this._excluded=Object.assign(this._excluded,t._excluded),this._disabled=Object.assign(this._disabled,t._disabled));var n=new i(e);this.__patterns={handlebars_comment:n.starting_with(/{{!--/).until_after(/--}}/),handlebars_unescaped:n.starting_with(/{{{/).until_after(/}}}/),handlebars:n.starting_with(/{{/).until_after(/}}/),php:n.starting_with(/<\\?(?:[=]|php)/).until_after(/\\?>/),erb:n.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:n.starting_with(/{%/).until_after(/%}/),django_value:n.starting_with(/{{/).until_after(/}}/),django_comment:n.starting_with(/{#/).until_after(/#}/)}}a.prototype=new i,a.prototype._create=function(){return new a(this._input,this)},a.prototype._update=function(){this.__set_templated_pattern()},a.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},a.prototype.read_options=function(e){var t=this._create();for(var n in r)t._disabled[n]=-1===e.templating.indexOf(n);return t._update(),t},a.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},a.prototype.read=function(){var e=\"\";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var t=this._read_template();t;)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},a.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp(\"(?:\"+e.join(\"|\")+\")\")},a.prototype._read_template=function(){var e=\"\",t=this._input.peek();if(\"<\"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||\"?\"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||\"%\"!==n||(e=e||this.__patterns.erb.read())}else\"{\"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=(e=(e=e||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=(e=e||this.__patterns.django_comment.read())||this.__patterns.django.read())));return e},e.exports.TemplatablePattern=a},,,,function(e,t,n){var i=n(19).Beautifier,r=n(20).Options;e.exports=function(e,t,n,r){return new i(e,t,n,r).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(20).Options,r=n(2).Output,a=n(21).Tokenizer,o=n(21).TOKEN,s=/\\r\\n|[\\r\\n]/,l=/\\r\\n|[\\r\\n]/g,c=function(e,t){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new r(e,t)};c.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},c.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},c.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},c.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},c.prototype.print_preserved_newlines=function(e){var t=0;e.type!==o.TEXT&&e.previous.type!==o.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines<this.max_preserve_newlines+1?e.newlines:this.max_preserve_newlines+1);for(var n=0;n<t;n++)this.print_newline(n>0);return 0!==t},c.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},c.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},c.prototype.print_newline=function(e){this._output.add_new_line(e)},c.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},c.prototype.indent=function(){this.indent_level++},c.prototype.get_full_indent=function(e){return(e=this.indent_level+(e||0))<1?\"\":this._output.get_indent_string(e)};var d=function(e,t){var n=null,i=null;return t.closed?(\"script\"===e?n=\"text/javascript\":\"style\"===e&&(n=\"text/css\"),(n=function(e){for(var t=null,n=e.next;n.type!==o.EOF&&e.closed!==n;){if(n.type===o.ATTRIBUTE&&\"type\"===n.text){n.next&&n.next.type===o.EQUALS&&n.next.next&&n.next.next.type===o.VALUE&&(t=n.next.next.text);break}n=n.next}return t}(t)||n).search(\"text/css\")>-1?i=\"css\":n.search(/(text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect)/)>-1?i=\"javascript\":n.search(/(text|application|dojo)\\/(x-)?(html)/)>-1?i=\"html\":n.search(/test\\/null/)>-1&&(i=\"null\"),i):null};function h(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:\"\",this.indent_level=n||0,this.parser_token=t||null}function p(e){this._printer=e,this._current_frame=null}function m(e,t,n,r){this._source_text=e||\"\",t=t||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var a=new i(t,\"html\");this._options=a,this._is_wrap_attributes_force=\"force\"===this._options.wrap_attributes.substr(0,\"force\".length),this._is_wrap_attributes_force_expand_multiline=\"force-expand-multiline\"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned=\"force-aligned\"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple=\"aligned-multiple\"===this._options.wrap_attributes,this._is_wrap_attributes_preserve=\"preserve\"===this._options.wrap_attributes.substr(0,\"preserve\".length),this._is_wrap_attributes_preserve_aligned=\"preserve-aligned\"===this._options.wrap_attributes}p.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},p.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},p.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},p.prototype._get_frame=function(e,t){for(var n=this._current_frame;n&&-1===e.indexOf(n.tag);){if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},p.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},p.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},m.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;\"auto\"===this._options.eol&&(t=\"\\n\",e&&s.test(e)&&(t=e.match(s)[0]));var n=(e=e.replace(l,\"\\n\")).match(/^[\\t ]*/)[0],i={text:\"\",type:\"\"},r=new f,d=new c(this._options,n),h=new a(e,this._options).tokenize();this._tag_stack=new p(d);for(var u=null,m=h.next();m.type!==o.EOF;)m.type===o.TAG_OPEN||m.type===o.COMMENT?r=u=this._handle_tag_open(d,m,r,i):m.type===o.ATTRIBUTE||m.type===o.EQUALS||m.type===o.VALUE||m.type===o.TEXT&&!r.tag_complete?u=this._handle_inside_tag(d,m,r,h):m.type===o.TAG_CLOSE?u=this._handle_tag_close(d,m,r):m.type===o.TEXT?u=this._handle_text(d,m,r):d.add_raw_token(m),i=u,m=h.next();return d._output.get_code(t)},m.prototype._handle_tag_close=function(e,t,n){var i={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):(\"<\"===n.tag_start_char&&(e.set_space_before_token(\"/\"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),i},m.prototype._handle_inside_tag=function(e,t,n,i){var r=n.has_wrapped_attrs,a={text:t.text,type:t.type};if(e.set_space_before_token(t.newlines||\"\"!==t.whitespace_before,!0),n.is_unformatted)e.add_raw_token(t);else if(\"{\"===n.tag_start_char&&t.type===o.TEXT)e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t);else{if(t.type===o.ATTRIBUTE?(e.set_space_before_token(!0),n.attr_count+=1):t.type===o.EQUALS?e.set_space_before_token(!1):t.type===o.VALUE&&t.previous.type===o.EQUALS&&e.set_space_before_token(!1),t.type===o.ATTRIBUTE&&\"<\"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),r=r||0!==t.newlines),this._is_wrap_attributes_force)){var s=n.attr_count>1;if(this._is_wrap_attributes_force_expand_multiline&&1===n.attr_count){var l,c=!0,d=0;do{if((l=i.peek(d)).type===o.ATTRIBUTE){c=!1;break}d+=1}while(d<4&&l.type!==o.EOF&&l.type!==o.TAG_CLOSE);s=!c}s&&(e.print_newline(!1),r=!0)}e.print_token(t),r=r||e.previous_token_wrapped(),n.has_wrapped_attrs=r}return a},m.prototype._handle_text=function(e,t,n){var i={text:t.text,type:\"TK_CONTENT\"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),i},m.prototype._print_custom_beatifier_text=function(e,t,n){var i=this;if(\"\"!==t.text){var r,a=t.text,o=1,s=\"\",l=\"\";\"javascript\"===n.custom_beautifier_name&&\"function\"==typeof this._js_beautify?r=this._js_beautify:\"css\"===n.custom_beautifier_name&&\"function\"==typeof this._css_beautify?r=this._css_beautify:\"html\"===n.custom_beautifier_name&&(r=function(e,t){return new m(e,t,i._js_beautify,i._css_beautify).beautify()}),\"keep\"===this._options.indent_scripts?o=0:\"separate\"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(a=a.replace(/\\n[ \\t]*$/,\"\"),\"html\"!==n.custom_beautifier_name&&\"<\"===a[0]&&a.match(/^(<!--|<!\\[CDATA\\[)/)){var d=/^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(a);if(!d)return void e.add_raw_token(t);s=c+d[1]+\"\\n\",a=d[4],d[5]&&(l=c+d[5]),a=a.replace(/\\n[ \\t]*$/,\"\"),(d[2]||-1!==d[3].indexOf(\"\\n\"))&&(d=d[3].match(/[ \\t]+$/))&&(t.whitespace_before=d[0])}if(a)if(r){var h=function(){this.eol=\"\\n\"};h.prototype=this._options.raw_options,a=r(c+a,new h)}else{var u=t.whitespace_before;u&&(a=a.replace(new RegExp(\"\\n(\"+u+\")?\",\"g\"),\"\\n\")),a=c+a.replace(/\\n/g,\"\\n\"+c)}s&&(a=a?s+a+\"\\n\"+l:s+l),e.print_newline(!1),a&&(t.text=a,t.whitespace_before=\"\",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},m.prototype._handle_tag_open=function(e,t,n,i){var r=this._get_tag_open_token(t);return(n.is_unformatted||n.is_content_unformatted)&&t.type===o.TAG_OPEN&&0===t.text.indexOf(\"</\")?e.add_raw_token(t):(e.traverse_whitespace(t),this._set_tag_position(e,t,r,n,i),r.is_inline_element||e.set_wrap_point(),e.print_token(t)),(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(r.alignment_size=t.text.length+1),r.tag_complete||r.is_unformatted||(e.alignment_size=r.alignment_size),r};var f=function(e,t){var n;(this.parent=e||null,this.text=\"\",this.type=\"TK_TAG_OPEN\",this.tag_name=\"\",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char=\"\",this.tag_check=\"\",t)?(this.tag_start_char=t.text[0],this.text=t.text,\"<\"===this.tag_start_char?(n=t.text.match(/^<([^\\s>]*)/),this.tag_check=n?n[1]:\"\"):(n=t.text.match(/^{{[#\\^]?([^\\s}]+)/),this.tag_check=n?n[1]:\"\"),this.tag_check=this.tag_check.toLowerCase(),t.type===o.COMMENT&&(this.tag_complete=!0),this.is_start_tag=\"/\"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&\"/>\"===t.closed.text,this.is_end_tag=this.is_end_tag||\"{\"===this.tag_start_char&&(this.text.length<3||/[^#\\^]/.test(this.text.charAt(2)))):this.tag_complete=!0};m.prototype._get_tag_open_token=function(e){var t=new f(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||h(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&h(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&h(t.tag_check,this._options.content_unformatted),t.is_inline_element=h(t.tag_name,this._options.inline)||\"{\"===t.tag_start_char,t},m.prototype._set_tag_position=function(e,t,n,i,r){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1))),this._tag_stack.record_tag(n),\"script\"!==n.tag_name&&\"style\"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=d(n.tag_check,t)))),h(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if(\"{\"===n.tag_start_char&&\"else\"===n.tag_check)this._tag_stack.indent_to_tag([\"if\",\"unless\",\"each\"]),n.indent_content=!0,e.current_line_has_match(/{{#if/)||e.print_newline(!1);\"!--\"===n.tag_name&&r.type===o.TAG_CLOSE&&i.is_end_tag&&-1===n.text.indexOf(\"\\n\")||n.is_inline_element||n.is_unformatted||e.print_newline(!1)}else n.is_unformatted||n.is_content_unformatted?n.is_inline_element||n.is_unformatted||e.print_newline(!1):n.is_end_tag?(n.start_tag_token&&n.start_tag_token.multiline_content||!(n.is_inline_element||i.is_inline_element||r.type===o.TAG_CLOSE&&n.start_tag_token===i||\"TK_CONTENT\"===r.type))&&e.print_newline(!1):(n.indent_content=!n.custom_beautifier_name,\"<\"===n.tag_start_char&&(\"html\"===n.tag_name?n.indent_content=this._options.indent_inner_html:\"head\"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:\"body\"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||\"TK_CONTENT\"===r.type||(n.parent&&(n.parent.multiline_content=!0),e.print_newline(!1)))},m.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent)return\"body\"===e.tag_name?t=t||this._tag_stack.try_pop(\"head\"):\"li\"===e.tag_name?t=t||this._tag_stack.try_pop(\"li\",[\"ol\",\"ul\"]):\"dd\"===e.tag_name||\"dt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"dt\",[\"dl\"]))||this._tag_stack.try_pop(\"dd\",[\"dl\"]):\"rp\"===e.tag_name||\"rt\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"rt\",[\"ruby\",\"rtc\"]))||this._tag_stack.try_pop(\"rp\",[\"ruby\",\"rtc\"]):\"optgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"optgroup\",[\"select\"]):\"option\"===e.tag_name?t=t||this._tag_stack.try_pop(\"option\",[\"select\",\"datalist\",\"optgroup\"]):\"colgroup\"===e.tag_name?t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]):\"thead\"===e.tag_name?t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]):\"tbody\"===e.tag_name||\"tfoot\"===e.tag_name?t=(t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"thead\",[\"table\"]))||this._tag_stack.try_pop(\"tbody\",[\"table\"]):\"tr\"===e.tag_name?t=(t=(t=t||this._tag_stack.try_pop(\"caption\",[\"table\"]))||this._tag_stack.try_pop(\"colgroup\",[\"table\"]))||this._tag_stack.try_pop(\"tr\",[\"table\",\"thead\",\"tbody\",\"tfoot\"]):\"th\"!==e.tag_name&&\"td\"!==e.tag_name||(t=(t=t||this._tag_stack.try_pop(\"td\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"]))||this._tag_stack.try_pop(\"th\",[\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\"])),e.parent=this._tag_stack.get_parser_token(),t},e.exports.Beautifier=m},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,\"html\"),1===this.templating.length&&\"auto\"===this.templating[0]&&(this.templating=[\"django\",\"erb\",\"handlebars\",\"php\"]),this.indent_inner_html=this._get_boolean(\"indent_inner_html\"),this.indent_body_inner_html=this._get_boolean(\"indent_body_inner_html\",!0),this.indent_head_inner_html=this._get_boolean(\"indent_head_inner_html\",!0),this.indent_handlebars=this._get_boolean(\"indent_handlebars\",!0),this.wrap_attributes=this._get_selection(\"wrap_attributes\",[\"auto\",\"force\",\"force-aligned\",\"force-expand-multiline\",\"aligned-multiple\",\"preserve\",\"preserve-aligned\"]),this.wrap_attributes_indent_size=this._get_number(\"wrap_attributes_indent_size\",this.indent_size),this.extra_liners=this._get_array(\"extra_liners\",[\"head\",\"body\",\"/html\"]),this.inline=this._get_array(\"inline\",[\"a\",\"abbr\",\"area\",\"audio\",\"b\",\"bdi\",\"bdo\",\"br\",\"button\",\"canvas\",\"cite\",\"code\",\"data\",\"datalist\",\"del\",\"dfn\",\"em\",\"embed\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"map\",\"mark\",\"math\",\"meter\",\"noscript\",\"object\",\"output\",\"progress\",\"q\",\"ruby\",\"s\",\"samp\",\"select\",\"small\",\"span\",\"strong\",\"sub\",\"sup\",\"svg\",\"template\",\"textarea\",\"time\",\"u\",\"var\",\"video\",\"wbr\",\"text\",\"acronym\",\"big\",\"strike\",\"tt\"]),this.void_elements=this._get_array(\"void_elements\",[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\",\"!doctype\",\"?xml\",\"basefont\",\"isindex\"]),this.unformatted=this._get_array(\"unformatted\",[]),this.content_unformatted=this._get_array(\"content_unformatted\",[\"pre\",\"textarea\"]),this.unformatted_content_delimiter=this._get_characters(\"unformatted_content_delimiter\"),this.indent_scripts=this._get_selection(\"indent_scripts\",[\"normal\",\"keep\",\"separate\"])}r.prototype=new i,e.exports.Options=r},function(e,t,n){var i=n(9).Tokenizer,r=n(9).TOKEN,a=n(13).Directives,o=n(14).TemplatablePattern,s=n(12).Pattern,l={TAG_OPEN:\"TK_TAG_OPEN\",TAG_CLOSE:\"TK_TAG_CLOSE\",ATTRIBUTE:\"TK_ATTRIBUTE\",EQUALS:\"TK_EQUALS\",VALUE:\"TK_VALUE\",COMMENT:\"TK_COMMENT\",TEXT:\"TK_TEXT\",UNKNOWN:\"TK_UNKNOWN\",START:r.START,RAW:r.RAW,EOF:r.EOF},c=new a(/<\\!--/,/-->/),d=function(e,t){i.call(this,e,t),this._current_tag_name=\"\";var n=new o(this._input).read_options(this._options),r=new s(this._input);if(this.__patterns={word:n.until(/[\\n\\r\\t <]/),single_quote:n.until_after(/'/),double_quote:n.until_after(/\"/),attribute:n.until(/[\\n\\r\\t =\\/>]/),element_name:n.until(/[\\n\\r\\t >\\/]/),handlebars_comment:r.starting_with(/{{!--/).until_after(/--}}/),handlebars:r.starting_with(/{{/).until_after(/}}/),handlebars_open:r.until(/[\\n\\r\\t }]/),handlebars_raw_close:r.until(/}}/),comment:r.starting_with(/<!--/).until_after(/-->/),cdata:r.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),conditional_comment:r.starting_with(/<!\\[/).until_after(/]>/),processing:r.starting_with(/<\\?/).until_after(/\\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude(\"handlebars\")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=r.matching(a).until_after(a)}};(d.prototype=new i)._is_comment=function(e){return!1},d.prototype._is_opening=function(e){return e.type===l.TAG_OPEN},d.prototype._is_closing=function(e,t){return e.type===l.TAG_CLOSE&&t&&((\">\"===e.text||\"/>\"===e.text)&&\"<\"===t.text[0]||\"}}\"===e.text&&\"{\"===t.text[0]&&\"{\"===t.text[1])},d.prototype._reset=function(){this._current_tag_name=\"\"},d.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(l.EOF,\"\"):n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,t))||this._read_attribute(i,e,t))||this._read_raw_content(i,e,t))||this._read_close(i,t))||this._read_content_word(i))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,t))||this._create_token(l.UNKNOWN,this._input.next())},d.prototype._read_comment_or_cdata=function(e){var t=null,n=null,i=null;\"<\"===e&&(\"!\"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=c.get_directives(n))&&\"start\"===i.ignore&&(n+=c.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=i));return t},d.prototype._read_processing=function(e){var t=null,n=null;if(\"<\"===e){var i=this._input.peek(1);\"!\"!==i&&\"?\"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=null)}return t},d.prototype._read_open=function(e,t){var n=null,i=null;return t||\"<\"===e&&(n=this._input.next(),\"/\"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(l.TAG_OPEN,n)),i},d.prototype._read_open_handlebars=function(e,t){var n=null,i=null;return t||this._options.indent_handlebars&&\"{\"===e&&\"{\"===this._input.peek(1)&&(\"!\"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(l.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(l.TAG_OPEN,n))),i},d.prototype._read_close=function(e,t){var n=null,i=null;return t&&(\"<\"===t.text[0]&&(\">\"===e||\"/\"===e&&\">\"===this._input.peek(1))?(n=this._input.next(),\"/\"===e&&(n+=this._input.next()),i=this._create_token(l.TAG_CLOSE,n)):\"{\"===t.text[0]&&\"}\"===e&&\"}\"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(l.TAG_CLOSE,\"}}\"))),i},d.prototype._read_attribute=function(e,t,n){var i=null,r=\"\";if(n&&\"<\"===n.text[0])if(\"=\"===e)i=this._create_token(l.EQUALS,this._input.next());else if('\"'===e||\"'\"===e){var a=this._input.next();a+='\"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(l.VALUE,a)}else(r=this.__patterns.attribute.read())&&(i=t.type===l.EQUALS?this._create_token(l.VALUE,r):this._create_token(l.ATTRIBUTE,r));return i},d.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},d.prototype._read_raw_content=function(e,t,n){var i=\"\";if(n&&\"{\"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(t.type===l.TAG_CLOSE&&\"<\"===t.opened.text[0]){var r=t.opened.text.substr(1).toLowerCase();if(\"script\"===r||\"style\"===r){var a=this._read_comment_or_cdata(e);if(a)return a.type=l.TEXT,a;i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp(\"</\"+r+\"[\\\\n\\\\r\\\\t ]*?>\",\"ig\")))}return i?this._create_token(l.TEXT,i):null},d.prototype._read_content_word=function(e){var t=\"\";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(l.TEXT,t)},e.exports.Tokenizer=d,e.exports.TOKEN=l}]);if(\"function\"==typeof define&&define.amd)define(\"vscode-html-languageservice/beautify/beautify-html\",[\"require\",\"./beautify\",\"./beautify-css\"],(function(t){var n=t(\"./beautify\"),i=t(\"./beautify-css\");return{html_beautify:function(t,r){return e(t,r,n.js_beautify,i.css_beautify)}}}));else if(\"undefined\"!=typeof exports){var t=require(\"./beautify.js\"),n=require(\"./beautify-css.js\");exports.html_beautify=function(i,r){return e(i,r,t.js_beautify,n.css_beautify)}}else\"undefined\"!=typeof window?window.html_beautify=function(t,n){return e(t,n,window.js_beautify,window.css_beautify)}:\"undefined\"!=typeof global&&(global.html_beautify=function(t,n){return e(t,n,global.js_beautify,global.css_beautify)})}(),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFormatter\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../beautify/beautify-html\",\"../utils/strings\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../beautify/beautify-html\"),r=e(\"../utils/strings\");function a(e,t,n){if(e&&e.hasOwnProperty(t)){var i=e[t];if(null!==i)return i}return n}function o(e,t,n){var i=a(e,t,null);return\"string\"==typeof i?i.length>0?i.split(\",\").map((function(e){return e.trim().toLowerCase()})):[]:n}function s(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}function l(e,t){return-1!==\" \\t\".indexOf(e.charAt(t))}t.format=function(e,t,c){var d=e.getText(),h=!0,u=0,p=c.tabSize||4;if(t){for(var m=e.offsetAt(t.start),f=m;f>0&&l(d,f-1);)f--;0===f||s(d,f-1)?m=f:f<m&&(m=f+1);for(var g=e.offsetAt(t.end),b=g;b<d.length&&l(d,b);)b++;(b===d.length||s(d,b))&&(g=b),t=n.Range.create(e.positionAt(m),e.positionAt(g));var _=d.substring(0,m);if(new RegExp(/.*[<][^>]*$/).test(_))return[{range:t,newText:d=d.substring(m,g)}];if(h=g===d.length,d=d.substring(m,g),0!==m){var v=e.offsetAt(n.Position.create(t.start.line,0));u=function(e,t,n){var i=t,r=0,a=n.tabSize||4;for(;i<e.length;){var o=e.charAt(i);if(\" \"===o)r++;else{if(\"\\t\"!==o)break;r+=a}i++}return Math.floor(r/a)}(e.getText(),v,c)}}else t=n.Range.create(n.Position.create(0,0),e.positionAt(d.length));var w={indent_size:p,indent_char:c.insertSpaces?\" \":\"\\t\",indent_empty_lines:a(c,\"indentEmptyLines\",!1),wrap_line_length:a(c,\"wrapLineLength\",120),unformatted:o(c,\"unformatted\",void 0),content_unformatted:o(c,\"contentUnformatted\",void 0),indent_inner_html:a(c,\"indentInnerHtml\",!1),preserve_newlines:a(c,\"preserveNewLines\",!0),max_preserve_newlines:a(c,\"maxPreserveNewLines\",32786),indent_handlebars:a(c,\"indentHandlebars\",!1),end_with_newline:h&&a(c,\"endWithNewline\",!1),extra_liners:o(c,\"extraLiners\",void 0),wrap_attributes:a(c,\"wrapAttributes\",\"auto\"),wrap_attributes_indent_size:a(c,\"wrapAttributesIndentSize\",void 0),eol:\"\\n\"},y=i.html_beautify(d.replace(/^\\s+/,\"\"),w);if(u>0){var T=c.insertSpaces?r.repeat(\" \",p*u):r.repeat(\"\\t\",u);y=y.split(\"\\n\").join(\"\\n\"+T),0===t.start.character&&(y=T+y)}return[{range:t,newText:y}]}}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,i;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)i=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var r=navigator.userAgent;i=r.indexOf(\"Windows\")>=0}var a=/^\\w[\\w\\d+.-]*$/,o=/^\\//,s=/^\\/\\//;var l=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,i,r,c){void 0===c&&(c=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,c),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==l&&(t=l+t):t=l}return t}(this.scheme,n||\"\"),this.query=i||\"\",this.fragment=r||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!a.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!o.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,c))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,a=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===i?i=this.path:null===i&&(i=\"\"),void 0===r?r=this.query:null===r&&(r=\"\"),void 0===a?a=this.fragment:null===a&&(a=\"\"),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&a===this.fragment?this:new u(t,n,i,r,a)},e.parse=function(e,t){void 0===t&&(t=!1);var n=c.exec(e);return n?new u(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new u(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(i&&(e=e.replace(/\\\\/g,l)),e[0]===l&&e[1]===l){var n=e.indexOf(l,2);-1===n?(t=e.substring(2),e=l):(t=e.substring(2,n),e=e.substring(n)||l)}return new u(\"file\",t,e,\"\",\"\")},e.from=function(e){return new u(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),b(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new u(t);return n._formatted=t.external,n._fsPath=t._sep===h?t.fsPath:null,n}return t},e}();t.URI=d;var h=i?1:void 0,u=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?b(this,!0):(this._formatted||(this._formatted=b(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=h),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(d),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function m(e,t){for(var n=void 0,i=-1,r=0;r<e.length;r++){var a=e.charCodeAt(r);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var o=p[a];void 0!==o?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=o):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){for(var t=void 0,n=0;n<e.length;n++){var i=e.charCodeAt(n);35===i||63===i?(void 0===t&&(t=e.substr(0,n)),t+=p[i]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,i&&(t=t.replace(/\\//g,\"\\\\\")),t}function b(e,t){var n=t?f:m,i=\"\",r=e.scheme,a=e.authority,o=e.path,s=e.query,c=e.fragment;if(r&&(i+=r,i+=\":\"),(a||\"file\"===r)&&(i+=l,i+=l),a){var d=a.indexOf(\"@\");if(-1!==d){var h=a.substr(0,d);a=a.substr(d+1),-1===(d=h.indexOf(\":\"))?i+=n(h,!1):(i+=n(h.substr(0,d),!1),i+=\":\",i+=n(h.substr(d+1),!1)),i+=\"@\"}-1===(d=(a=a.toLowerCase()).indexOf(\":\"))?i+=n(a,!1):(i+=n(a.substr(0,d),!1),i+=a.substr(d))}if(o){if(o.length>=3&&47===o.charCodeAt(0)&&58===o.charCodeAt(2))(u=o.charCodeAt(1))>=65&&u<=90&&(o=\"/\"+String.fromCharCode(u+32)+\":\"+o.substr(3));else if(o.length>=2&&58===o.charCodeAt(1)){var u;(u=o.charCodeAt(0))>=65&&u<=90&&(o=String.fromCharCode(u+32)+\":\"+o.substr(2))}i+=n(o,!0)}return s&&(i+=\"?\",i+=n(s,!1)),c&&(i+=\"#\",i+=t?c:m(c,!1)),i}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlLinks\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../utils/strings\",\"vscode-uri\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../utils/strings\"),a=e(\"vscode-uri\"),o=e(\"../htmlLanguageTypes\");function s(e){var t=e[0];return t!==e[e.length-1]||\"'\"!==t&&'\"'!==t||(e=e.substr(1,e.length-2)),e}function l(e,t,n,o,l,c){var d=s(n);if(h=d,u=e.languageId,h.length&&(\"handlebars\"!==u||!/{{.*}}/.test(h))&&/\\b(w[\\w\\d+.-]*:\\/\\/)?[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|\\/?))/.test(h)){var h,u;d.length<n.length&&(o++,l--);var p=function(e,t,n,i){if(!/^\\s*javascript\\:/i.test(t)&&!/[\\n\\r]/.test(t))return t=t.replace(/^\\s*/g,\"\"),/^https?:\\/\\//i.test(t)||/^file:\\/\\//i.test(t)?t:/^\\#/i.test(t)?e+t:/^\\/\\//i.test(t)?(r.startsWith(e,\"https://\")?\"https\":\"http\")+\":\"+t.replace(/^\\s*/g,\"\"):n?n.resolveReference(t,i||e):t}(e.uri,d,t,c);if(p&&function(e){try{return a.URI.parse(e),!0}catch(e){return!1}}(p))return{range:i.Range.create(e.positionAt(o),e.positionAt(l)),target:p}}}t.findDocumentLinks=function(e,t){for(var i=[],a=n.createScanner(e.getText(),0),c=a.scan(),d=void 0,h=!1,u=void 0,p={};c!==o.TokenType.EOS;){switch(c){case o.TokenType.StartTag:if(!u)h=\"base\"===a.getTokenText().toLowerCase();break;case o.TokenType.AttributeName:d=a.getTokenText().toLowerCase();break;case o.TokenType.AttributeValue:if(\"src\"===d||\"href\"===d){var m=a.getTokenText();if(!h)(b=l(e,t,m,a.getTokenOffset(),a.getTokenEnd(),u))&&i.push(b);h&&void 0===u&&(u=s(m))&&t&&(u=t.resolveReference(u,e.uri)),h=!1,d=void 0}else if(\"id\"===d){p[s(a.getTokenText())]=a.getTokenOffset()}}c=a.scan()}for(var f=0,g=i;f<g.length;f++){var b=g[f],_=e.uri+\"#\";if(b.target&&r.startsWith(b.target,_)){var v=p[b.target.substr(_.length)];if(void 0!==v){var w=e.positionAt(v);b.target=\"\"+_+(w.line+1)+\",\"+(w.character+1)}}}return i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlHighlighting\",[\"require\",\"exports\",\"../parser/htmlScanner\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/htmlScanner\"),i=e(\"vscode-languageserver-types\"),r=e(\"../htmlLanguageTypes\");function a(e,t){return e.line<t.line||e.line===t.line&&e.character<=t.character}function o(e,t){return a(e.start,t)&&a(t,e.end)}function s(e,t,i){for(var a=n.createScanner(t.getText(),i),o=a.scan();o!==r.TokenType.EOS&&o!==e;)o=a.scan();return o!==r.TokenType.EOS?{start:t.positionAt(a.getTokenOffset()),end:t.positionAt(a.getTokenEnd())}:null}t.findDocumentHighlights=function(e,t,n){var a=e.offsetAt(t),l=n.findNodeAt(a);if(!l.tag)return[];var c=[],d=s(r.TokenType.StartTag,e,l.start),h=\"number\"==typeof l.endTagStart&&s(r.TokenType.EndTag,e,l.endTagStart);return(d&&o(d,t)||h&&o(h,t))&&(d&&c.push({kind:i.DocumentHighlightKind.Read,range:d}),h&&c.push({kind:i.DocumentHighlightKind.Read,range:h})),c}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSymbolsProvider\",[\"require\",\"exports\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\");t.findDocumentSymbols=function(e,t){var i=[];return t.roots.forEach((function(t){!function e(t,i,r,a){var o=function(e){var t=e.tag;if(e.attributes){var n=e.attributes.id,i=e.attributes.class;n&&(t+=\"#\"+n.replace(/[\\\"\\']/g,\"\")),i&&(t+=i.replace(/[\\\"\\']/g,\"\").split(/\\s+/).map((function(e){return\".\"+e})).join(\"\"))}return t||\"?\"}(i),s=n.Location.create(t.uri,n.Range.create(t.positionAt(i.start),t.positionAt(i.end))),l={name:o,location:s,containerName:r,kind:n.SymbolKind.Field};a.push(l),i.children.forEach((function(n){e(t,n,o,a)}))}(e,t,\"\",i)})),i}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlRename\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.doRename=function(e,t,n,i){var r,a=e.offsetAt(t),o=i.findNodeAt(a);if(!o.tag)return null;if(!function(e,t,n){if(e.endTagStart&&e.endTagStart+\"</\".length<=t&&t<=e.endTagStart+\"</\".length+n.length)return!0;return e.start+\"<\".length<=t&&t<=e.start+\"<\".length+n.length}(o,a,o.tag))return null;var s=[],l={start:e.positionAt(o.start+\"<\".length),end:e.positionAt(o.start+\"<\".length+o.tag.length)};if(s.push({range:l,newText:n}),o.endTagStart){var c={start:e.positionAt(o.endTagStart+\"</\".length),end:e.positionAt(o.endTagStart+\"</\".length+o.tag.length)};s.push({range:c,newText:n})}return{changes:((r={})[e.uri.toString()]=s,r)}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlMatchingTagPosition\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.findMatchingTagPosition=function(e,t,n){var i=e.offsetAt(t),r=n.findNodeAt(i);if(!r.tag)return null;if(!r.endTagStart)return null;if(r.start+\"<\".length<=i&&i<=r.start+\"<\".length+r.tag.length){var a=i-\"<\".length-r.start+r.endTagStart+\"</\".length;return e.positionAt(a)}if(r.endTagStart+\"</\".length<=i&&i<=r.endTagStart+\"</\".length+r.tag.length){a=i-\"</\".length-r.endTagStart+r.start+\"<\".length;return e.positionAt(a)}return null}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlFolding\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../htmlLanguageTypes\",\"../parser/htmlScanner\",\"../languageFacts/fact\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../htmlLanguageTypes\"),r=e(\"../parser/htmlScanner\"),a=e(\"../languageFacts/fact\");t.getFoldingRanges=function(e,t){var o=r.createScanner(e.getText()),s=o.scan(),l=[],c=[],d=null,h=-1;function u(e){l.push(e),h=e.startLine}for(;s!==i.TokenType.EOS;){switch(s){case i.TokenType.StartTag:var p=o.getTokenText(),m=e.positionAt(o.getTokenOffset()).line;c.push({startLine:m,tagName:p}),d=p;break;case i.TokenType.EndTag:d=o.getTokenText();break;case i.TokenType.StartTagClose:if(!d||!a.isVoidElement(d))break;case i.TokenType.EndTagClose:case i.TokenType.StartTagSelfClose:for(var f=c.length-1;f>=0&&c[f].tagName!==d;)f--;if(f>=0){var g=c[f];c.length=f,(_=e.positionAt(o.getTokenOffset()).line-1)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_})}break;case i.TokenType.Comment:m=e.positionAt(o.getTokenOffset()).line;var b=o.getTokenText().match(/^\\s*#(region\\b)|(endregion\\b)/);if(b)if(b[1])c.push({startLine:m,tagName:\"\"});else{for(f=c.length-1;f>=0&&c[f].tagName.length;)f--;if(f>=0){var _;g=c[f];c.length=f,(_=m)>(m=g.startLine)&&h!==m&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Region})}}else m<(_=e.positionAt(o.getTokenOffset()+o.getTokenLength()).line)&&u({startLine:m,endLine:_,kind:n.FoldingRangeKind.Comment})}s=o.scan()}var v=t&&t.rangeLimit||Number.MAX_VALUE;return l.length>v?function(e,t){e=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n}));for(var n=void 0,i=[],r=[],a=[],o=function(e,t){r[e]=t,t<30&&(a[t]=(a[t]||0)+1)},s=0;s<e.length;s++){var l=e[s];if(n){if(l.startLine>n.startLine)if(l.endLine<=n.endLine)i.push(n),n=l,o(s,i.length);else if(l.startLine>n.endLine){do{n=i.pop()}while(n&&l.startLine>n.endLine);n&&i.push(n),n=l,o(s,i.length)}}else n=l,o(s,0)}var c=0,d=0;for(s=0;s<a.length;s++){var h=a[s];if(h){if(h+c>t){d=s;break}c+=h}}var u=[];for(s=0;s<e.length;s++){var p=r[s];\"number\"==typeof p&&(p<d||p===d&&c++<t)&&u.push(e[s])}return u}(l,v):l}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/services/htmlSelectionRange\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"../parser/htmlScanner\",\"../parser/htmlParser\",\"../htmlLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),i=e(\"../parser/htmlScanner\"),r=e(\"../parser/htmlParser\"),a=e(\"../htmlLanguageTypes\");function o(e,t,r){for(var o=n.Range.create(e.positionAt(t.start),e.positionAt(t.end)),s=e.getText(o),l=r-t.start,c=i.createScanner(s),d=c.scan(),h=t.start,u=[],p=!1,m=-1;d!==a.TokenType.EOS;){switch(d){case a.TokenType.AttributeName:if(l<c.getTokenOffset()){p=!1;break}l<=c.getTokenEnd()&&u.unshift([c.getTokenOffset(),c.getTokenEnd()]),p=!0,m=c.getTokenOffset();break;case a.TokenType.AttributeValue:if(!p)break;var f=c.getTokenText();if(l<c.getTokenOffset()){u.push([m,c.getTokenEnd()]);break}l>=c.getTokenOffset()&&l<=c.getTokenEnd()&&(u.unshift([c.getTokenOffset(),c.getTokenEnd()]),('\"'===f[0]&&'\"'===f[f.length-1]||\"'\"===f[0]&&\"'\"===f[f.length-1])&&l>=c.getTokenOffset()+1&&l<=c.getTokenEnd()-1&&u.unshift([c.getTokenOffset()+1,c.getTokenEnd()-1]),u.push([m,c.getTokenEnd()]))}d=c.scan()}return u.map((function(e){return[e[0]+h,e[1]+h]}))}t.getSelectionRanges=function(e,t){return t.map((function(t){for(var i=function(e,t){var i=r.parse(e.getText()),a=e.offsetAt(t),s=i.findNodeAt(a),l=function(e){var t=e,n=[];for(;t.parent;)t=t.parent,(i=t,i.startTagEnd&&i.endTagStart&&i.startTagEnd<i.endTagStart?[[i.startTagEnd,i.endTagStart],[i.start,i.end]]:[[i.start,i.end]]).forEach((function(e){return n.push(e)}));var i;return n}(s);if(s.startTagEnd&&!s.endTagStart){if(s.startTagEnd!==s.end)return[[s.start,s.end]];var c=n.Range.create(e.positionAt(s.startTagEnd-2),e.positionAt(s.startTagEnd));\"/>\"===e.getText(c)?l.unshift([s.start+1,s.startTagEnd-2]):l.unshift([s.start+1,s.startTagEnd-1]);var d=o(e,s,a);return l=d.concat(l)}if(!s.startTagEnd||!s.endTagStart)return l;if(l.unshift([s.start,s.end]),s.start<a&&a<s.startTagEnd){l.unshift([s.start+1,s.startTagEnd-1]);d=o(e,s,a);return l=d.concat(l)}return s.startTagEnd<=a&&a<=s.endTagStart?(l.unshift([s.startTagEnd,s.endTagStart]),l):(a>=s.endTagStart+2&&l.unshift([s.endTagStart+2,s.end-1]),l)}(e,t),a=void 0,s=void 0,l=i.length-1;l>=0;l--){var c=i[l];a&&c[0]===a[0]&&c[1]===a[1]||(s=n.SelectionRange.create(n.Range.create(e.positionAt(i[l][0]),e.positionAt(i[l][1])),s)),a=c}return s||(s=n.SelectionRange.create(n.Range.create(t,t))),s}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var a=0,o=t;a<o.length;a++){var s=o[a];if(e.isIncremental(s)){var l=r(s.range),c=this.offsetAt(l.start),d=this.offsetAt(l.end);this._content=this._content.substring(0,c)+s.text+this._content.substring(d,this._content.length);var h=Math.max(l.start.line,0),u=Math.max(l.end.line,0),p=this._lineOffsets,m=i(s.text,!1,c);if(u-h===m.length)for(var f=0,g=m.length;f<g;f++)p[f+h+1]=m[f];else m.length<1e4?p.splice.apply(p,[h+1,u-h].concat(m)):this._lineOffsets=p=p.slice(0,h+1).concat(m,p.slice(u+1));var b=s.text.length-(d-c);if(0!==b)for(f=h+1+m.length,g=p.length;f<g;f++)p[f]=p[f]+b}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=i(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,i=t.length;if(0===i)return{line:0,character:e};for(;n<i;){var r=Math.floor((n+i)/2);t[r]>e?i=r:n=r+1}var a=n-1;return{line:a,character:e-t[a]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function i(e,t,n){void 0===n&&(n=0);for(var i=t?[n]:[],r=0;r<e.length;r++){var a=e.charCodeAt(r);13!==a&&10!==a||(13===a&&r+1<e.length&&10===e.charCodeAt(r+1)&&r++,i.push(n+r+1))}return i}function r(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function a(e){var t=r(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,i,r){return new n(e,t,i,r)},e.update=function(e,t,i){if(e instanceof n)return e.update(t,i),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),i=function e(t,n){if(t.length<=1)return t;var i=t.length/2|0,r=t.slice(0,i),a=t.slice(i);e(r,n),e(a,n);var o=0,s=0,l=0;for(;o<r.length&&s<a.length;){var c=n(r[o],a[s]);t[l++]=c<=0?r[o++]:a[s++]}for(;o<r.length;)t[l++]=r[o++];for(;s<a.length;)t[l++]=a[s++];return t}(t.map(a),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),r=n.length,o=i.length-1;o>=0;o--){var s=i[o],l=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=r))throw new Error(\"Overlapping edit\");n=n.substring(0,l)+s.newText+n.substring(c,n.length),r=l}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-html-languageservice/htmlLanguageService\",[\"require\",\"exports\",\"./parser/htmlScanner\",\"./parser/htmlParser\",\"./services/htmlCompletion\",\"./services/htmlHover\",\"./services/htmlFormatter\",\"./services/htmlLinks\",\"./services/htmlHighlighting\",\"./services/htmlSymbolsProvider\",\"./services/htmlRename\",\"./services/htmlMatchingTagPosition\",\"./services/htmlFolding\",\"./services/htmlSelectionRange\",\"./languageFacts/builtinDataProviders\",\"./languageFacts/dataProvider\",\"./htmlLanguageTypes\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,\"__esModule\",{value:!0});var i=e(\"./parser/htmlScanner\"),r=e(\"./parser/htmlParser\"),a=e(\"./services/htmlCompletion\"),o=e(\"./services/htmlHover\"),s=e(\"./services/htmlFormatter\"),l=e(\"./services/htmlLinks\"),c=e(\"./services/htmlHighlighting\"),d=e(\"./services/htmlSymbolsProvider\"),h=e(\"./services/htmlRename\"),u=e(\"./services/htmlMatchingTagPosition\"),p=e(\"./services/htmlFolding\"),m=e(\"./services/htmlSelectionRange\"),f=e(\"./languageFacts/builtinDataProviders\"),g=e(\"./languageFacts/dataProvider\");n(e(\"./htmlLanguageTypes\"));var b=e(\"vscode-languageserver-textdocument\");t.TextDocument=b.TextDocument,n(e(\"vscode-languageserver-types\")),t.getLanguageService=function(e){var t=new o.HTMLHover(e&&e.clientCapabilities),n=new a.HTMLCompletion(e&&e.clientCapabilities);return e&&e.customDataProviders&&f.handleCustomDataProviders(e.customDataProviders),{createScanner:i.createScanner,parseHTMLDocument:function(e){return r.parse(e.getText())},doComplete:n.doComplete.bind(n),setCompletionParticipants:n.setCompletionParticipants.bind(n),doHover:t.doHover.bind(t),format:s.format,findDocumentHighlights:c.findDocumentHighlights,findDocumentLinks:l.findDocumentLinks,findDocumentSymbols:d.findDocumentSymbols,getFoldingRanges:p.getFoldingRanges,getSelectionRanges:m.getSelectionRanges,doTagComplete:n.doTagComplete.bind(n),doRename:h.doRename,findMatchingTagPosition:u.findMatchingTagPosition}},t.newHTMLDataProvider=function(e,t){return new g.HTMLDataProvider(e,t)}})),define(\"vscode-html-languageservice\",[\"vscode-html-languageservice/htmlLanguageService\"],(function(e){return e})),define(\"vs/language/html/fillers/polyfills\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.polyfill=function(){\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(e,t){if(null!==e)for(var n=1;n<arguments.length;n++){var i=arguments[n];if(i)for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},writable:!0,configurable:!0})}})),define(\"vs/language/html/htmlWorker\",[\"require\",\"exports\",\"vscode-html-languageservice\",\"./fillers/polyfills\"],(function(e,t,n,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),i.polyfill();var r=function(){function e(e,t){this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageService=n.getLanguageService()}return e.prototype.doValidation=function(e){return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n);return Promise.resolve(this._languageService.doComplete(n,t,i,this._languageSettings&&this._languageSettings.suggest))},e.prototype.format=function(e,t,n){var i=this._getTextDocument(e),r=this._languageService.format(i,t,this._languageSettings&&this._languageSettings.format);return Promise.resolve(r)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n),r=this._languageService.doHover(n,t,i);return Promise.resolve(r)},e.prototype.findDocumentHighlights=function(e,t){var n=this._getTextDocument(e),i=this._languageService.parseHTMLDocument(n),r=this._languageService.findDocumentHighlights(n,t,i);return Promise.resolve(r)},e.prototype.findDocumentLinks=function(e){var t=this._getTextDocument(e),n=this._languageService.findDocumentLinks(t,null);return Promise.resolve(n)},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseHTMLDocument(t),i=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(i)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),i=this._languageService.getFoldingRanges(n,t);return Promise.resolve(i)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),i=this._languageService.getSelectionRanges(n,t);return Promise.resolve(i)},e.prototype.doRename=function(e,t,n){var i=this._getTextDocument(e),r=this._languageService.parseHTMLDocument(i),a=this._languageService.doRename(i,t,n,r);return Promise.resolve(a)},e.prototype._getTextDocument=function(e){for(var t=0,i=this._ctx.getMirrorModels();t<i.length;t++){var r=i[t];if(r.uri.toString()===e)return n.TextDocument.create(e,this._languageId,r.version,r.getValue())}return null},e}();t.HTMLWorker=r,t.create=function(e,t){return new r(e,t)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/json/jsonMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\ndefine(\"vs/language/json/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/json/jsonWorker\",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/scanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function r(e){return 10===e||13===e||8232===e||8233===e}function o(e){return e>=48&&e<=57}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScanner=function(e,t){void 0===t&&(t=!1);var i=e.length,a=0,s=\"\",c=0,u=16,l=0,f=0,d=0,p=0,h=0;function m(t,n){for(var r=0,o=0;r<t||!n;){var i=e.charCodeAt(a);if(i>=48&&i<=57)o=16*o+i-48;else if(i>=65&&i<=70)o=16*o+i-65+10;else{if(!(i>=97&&i<=102))break;o=16*o+i-97+10}a++,r++}return r<t&&(o=-1),o}function g(){if(s=\"\",h=0,c=a,f=l,p=d,a>=i)return c=i,u=17;var t=e.charCodeAt(a);if(n(t)){do{a++,s+=String.fromCharCode(t),t=e.charCodeAt(a)}while(n(t));return u=15}if(r(t))return a++,s+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,s+=\"\\n\"),l++,d=a,u=14;switch(t){case 123:return a++,u=1;case 125:return a++,u=2;case 91:return a++,u=3;case 93:return a++,u=4;case 58:return a++,u=6;case 44:return a++,u=5;case 34:return a++,s=function(){for(var t=\"\",n=a;;){if(a>=i){t+=e.substring(n,a),h=2;break}var o=e.charCodeAt(a);if(34===o){t+=e.substring(n,a),a++;break}if(92!==o){if(o>=0&&o<=31){if(r(o)){t+=e.substring(n,a),h=2;break}h=6}a++}else{if(t+=e.substring(n,a),++a>=i){h=2;break}switch(e.charCodeAt(a++)){case 34:t+='\"';break;case 92:t+=\"\\\\\";break;case 47:t+=\"/\";break;case 98:t+=\"\\b\";break;case 102:t+=\"\\f\";break;case 110:t+=\"\\n\";break;case 114:t+=\"\\r\";break;case 116:t+=\"\\t\";break;case 117:var s=m(4,!0);s>=0?t+=String.fromCharCode(s):h=4;break;default:h=5}n=a}}return t}(),u=10;case 47:var g=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;a<i&&!r(e.charCodeAt(a));)a++;return s=e.substring(g,a),u=12}if(42===e.charCodeAt(a+1)){a+=2;for(var y=i-1,b=!1;a<y;){var x=e.charCodeAt(a);if(42===x&&47===e.charCodeAt(a+1)){a+=2,b=!0;break}a++,r(x)&&(13===x&&10===e.charCodeAt(a)&&a++,l++,d=a)}return b||(a++,h=1),s=e.substring(g,a),u=13}return s+=String.fromCharCode(t),a++,u=16;case 45:if(s+=String.fromCharCode(t),++a===i||!o(e.charCodeAt(a)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=function(){var t=a;if(48===e.charCodeAt(a))a++;else for(a++;a<e.length&&o(e.charCodeAt(a));)a++;if(a<e.length&&46===e.charCodeAt(a)){if(!(++a<e.length&&o(e.charCodeAt(a))))return h=3,e.substring(t,a);for(a++;a<e.length&&o(e.charCodeAt(a));)a++}var n=a;if(a<e.length&&(69===e.charCodeAt(a)||101===e.charCodeAt(a)))if((++a<e.length&&43===e.charCodeAt(a)||45===e.charCodeAt(a))&&a++,a<e.length&&o(e.charCodeAt(a))){for(a++;a<e.length&&o(e.charCodeAt(a));)a++;n=a}else h=3;return e.substring(t,n)}(),u=11;default:for(;a<i&&v(t);)a++,t=e.charCodeAt(a);if(c!==a){switch(s=e.substring(c,a)){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return s+=String.fromCharCode(t),a++,u=16}}function v(e){if(n(e)||r(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){a=e,s=\"\",c=0,u=16,h=0},getPosition:function(){return a},scan:t?function(){var e;do{e=g()}while(e>=12&&e<=15);return e}:g,getToken:function(){return u},getTokenValue:function(){return s},getTokenOffset:function(){return c},getTokenLength:function(){return a-c},getTokenStartLine:function(){return f},getTokenStartCharacter:function(){return c-p},getTokenError:function(){return h}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/format\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scanner\");function r(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n}function o(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}t.format=function(e,t,i){var a,s,c,u,l;if(t){for(u=t.offset,l=u+t.length,c=u;c>0&&!o(e,c-1);)c--;for(var f=l;f<e.length&&!o(e,f);)f++;s=e.substring(c,f),a=function(e,t){var n=0,r=0,o=t.tabSize||4;for(;n<e.length;){var i=e.charAt(n);if(\" \"===i)r++;else{if(\"\\t\"!==i)break;r+=o}n++}return Math.floor(r/o)}(s,i)}else s=e,a=0,c=0,u=0,l=e.length;var d,p=function(e,t){for(var n=0;n<t.length;n++){var r=t.charAt(n);if(\"\\r\"===r)return n+1<t.length&&\"\\n\"===t.charAt(n+1)?\"\\r\\n\":\"\\r\";if(\"\\n\"===r)return\"\\n\"}return e&&e.eol||\"\\n\"}(i,e),h=!1,m=0;d=i.insertSpaces?r(\" \",i.tabSize||4):\"\\t\";var g=n.createScanner(s,!1),v=!1;function y(){return p+r(d,a+m)}function b(){var e=g.scan();for(h=!1;15===e||14===e;)h=h||14===e,e=g.scan();return v=16===e||0!==g.getTokenError(),e}var x=[];function S(t,n,r){!v&&n<l&&r>u&&e.substring(n,r)!==t&&x.push({offset:n,length:r-n,content:t})}var C=b();if(17!==C){var k=g.getTokenOffset()+c;S(r(d,a),c,k)}for(;17!==C;){for(var T=g.getTokenOffset()+g.getTokenLength()+c,j=b(),E=\"\";!h&&(12===j||13===j);){S(\" \",T,g.getTokenOffset()+c),T=g.getTokenOffset()+g.getTokenLength()+c,E=12===j?y():\"\",j=b()}if(2===j)1!==C&&(m--,E=y());else if(4===j)3!==C&&(m--,E=y());else{switch(C){case 3:case 1:m++,E=y();break;case 5:case 12:E=y();break;case 13:E=h?y():\" \";break;case 6:E=\" \";break;case 10:if(6===j){E=\"\";break}case 7:case 8:case 9:case 11:case 2:case 4:12===j||13===j?E=\" \":5!==j&&17!==j&&(v=!0);break;case 16:v=!0}!h||12!==j&&13!==j||(E=y())}S(E,T,g.getTokenOffset()+c),C=j}return x},t.isEOL=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/parser\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"./scanner\");function o(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}function i(e,t,o){void 0===o&&(o=n.DEFAULT);var i=r.createScanner(e,!1);function a(e){return e?function(){return e(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}function s(e){return e?function(t){return e(t,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}var c=a(t.onObjectBegin),u=s(t.onObjectProperty),l=a(t.onObjectEnd),f=a(t.onArrayBegin),d=a(t.onArrayEnd),p=s(t.onLiteralValue),h=s(t.onSeparator),m=a(t.onComment),g=s(t.onError),v=o&&o.disallowComments,y=o&&o.allowTrailingComma;function b(){for(;;){var e=i.scan();switch(i.getTokenError()){case 4:x(14);break;case 5:x(15);break;case 3:x(13);break;case 1:v||x(11);break;case 2:x(12);break;case 6:x(16)}switch(e){case 12:case 13:v?x(10):m();break;case 16:x(1);break;case 15:case 14:break;default:return e}}}function x(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=[]),g(e),t.length+n.length>0)for(var r=i.getToken();17!==r;){if(-1!==t.indexOf(r)){b();break}if(-1!==n.indexOf(r))break;r=b()}}function S(e){var t=i.getTokenValue();return e?p(t):u(t),b(),!0}function C(){switch(i.getToken()){case 3:return function(){f(),b();for(var e=!1;4!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),4===i.getToken()&&y)break}else e&&x(6,[],[]);C()||x(4,[],[4,5]),e=!0}return d(),4!==i.getToken()?x(8,[4],[]):b(),!0}();case 1:return function(){c(),b();for(var e=!1;2!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),2===i.getToken()&&y)break}else e&&x(6,[],[]);(10!==i.getToken()?(x(3,[],[2,5]),0):(S(!1),6===i.getToken()?(h(\":\"),b(),C()||x(4,[],[2,5])):x(5,[],[2,5]),1))||x(4,[],[2,5]),e=!0}return l(),2!==i.getToken()?x(7,[2],[]):b(),!0}();case 10:return S(!0);default:return function(){switch(i.getToken()){case 11:var e=0;try{\"number\"!=typeof(e=JSON.parse(i.getTokenValue()))&&(x(2),e=0)}catch(e){x(2)}p(e);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return b(),!0}()}}return b(),17===i.getToken()?!!o.allowEmptyContent||(x(4,[],[]),!1):C()?(17!==i.getToken()&&x(9,[],[]),!0):(x(4,[],[]),!1)}function a(e){switch(typeof e){case\"boolean\":return\"boolean\";case\"number\":return\"number\";case\"string\":return\"string\";case\"object\":return e?Array.isArray(e)?\"array\":\"object\":\"null\";default:return\"null\"}}!function(e){e.DEFAULT={allowTrailingComma:!1}}(n||(n={})),t.getLocation=function(e,t){var n=[],r=new Object,o=void 0,s={value:{},offset:0,length:0,type:\"object\",parent:void 0},c=!1;function u(e,t,n,r){s.value=e,s.offset=t,s.length=n,s.type=r,s.colonOffset=void 0,o=s}try{i(e,{onObjectBegin:function(e,i){if(t<=e)throw r;o=void 0,c=t>e,n.push(\"\")},onObjectProperty:function(e,o,i){if(t<o)throw r;if(u(e,o,i,\"property\"),n[n.length-1]=e,t<=o+i)throw r},onObjectEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onArrayBegin:function(e,i){if(t<=e)throw r;o=void 0,n.push(0)},onArrayEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onLiteralValue:function(e,n,o){if(t<n)throw r;if(u(e,n,o,a(e)),t<=n+o)throw r},onSeparator:function(e,i,a){if(t<=i)throw r;if(\":\"===e&&o&&\"property\"===o.type)o.colonOffset=i,c=!1,o=void 0;else if(\",\"===e){var s=n[n.length-1];\"number\"==typeof s?n[n.length-1]=s+1:(c=!0,n[n.length-1]=\"\"),o=void 0}}})}catch(e){if(e!==r)throw e}return{path:n,previousNode:o,isAtPropertyKey:c,matches:function(e){for(var t=0,r=0;t<e.length&&r<n.length;r++)if(e[t]===n[r]||\"*\"===e[t])t++;else if(\"**\"!==e[t])return!1;return t===e.length}}},t.parse=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o=null,a=[],s=[];function c(e){Array.isArray(a)?a.push(e):null!==o&&(a[o]=e)}return i(e,{onObjectBegin:function(){var e={};c(e),s.push(a),a=e,o=null},onObjectProperty:function(e){o=e},onObjectEnd:function(){a=s.pop()},onArrayBegin:function(){var e=[];c(e),s.push(a),a=e,o=null},onArrayEnd:function(){a=s.pop()},onLiteralValue:c,onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r),a[0]},t.parseTree=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o={type:\"array\",offset:-1,length:-1,children:[],parent:void 0};function s(e){\"property\"===o.type&&(o.length=e-o.offset,o=o.parent)}function c(e){return o.children.push(e),e}i(e,{onObjectBegin:function(e){o=c({type:\"object\",offset:e,length:-1,parent:o,children:[]})},onObjectProperty:function(e,t,n){(o=c({type:\"property\",offset:t,length:-1,parent:o,children:[]})).children.push({type:\"string\",value:e,offset:t,length:n,parent:o})},onObjectEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onArrayBegin:function(e,t){o=c({type:\"array\",offset:e,length:-1,parent:o,children:[]})},onArrayEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onLiteralValue:function(e,t,n){c({type:a(e),offset:t,length:n,parent:o,value:e}),s(t+n)},onSeparator:function(e,t,n){\"property\"===o.type&&(\":\"===e?o.colonOffset=t:\",\"===e&&s(t))},onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r);var u=o.children[0];return u&&delete u.parent,u},t.findNodeAtLocation=function(e,t){if(e){for(var n=e,r=0,o=t;r<o.length;r++){var i=o[r];if(\"string\"==typeof i){if(\"object\"!==n.type||!Array.isArray(n.children))return;for(var a=!1,s=0,c=n.children;s<c.length;s++){var u=c[s];if(Array.isArray(u.children)&&u.children[0].value===i){n=u.children[1],a=!0;break}}if(!a)return}else{var l=i;if(\"array\"!==n.type||l<0||!Array.isArray(n.children)||l>=n.children.length)return;n=n.children[l]}}return n}},t.getNodePath=function e(t){if(!t.parent||!t.parent.children)return[];var n=e(t.parent);if(\"property\"===t.parent.type){var r=t.parent.children[0].value;n.push(r)}else if(\"array\"===t.parent.type){var o=t.parent.children.indexOf(t);-1!==o&&n.push(o)}return n},t.getNodeValue=function e(t){switch(t.type){case\"array\":return t.children.map(e);case\"object\":for(var n=Object.create(null),r=0,o=t.children;r<o.length;r++){var i=o[r],a=i.children[1];a&&(n[i.children[0].value]=e(a))}return n;case\"null\":case\"string\":case\"number\":case\"boolean\":return t.value;default:return}},t.contains=o,t.findNodeAtOffset=function e(t,n,r){if(void 0===r&&(r=!1),o(t,n,r)){var i=t.children;if(Array.isArray(i))for(var a=0;a<i.length&&i[a].offset<=n;a++){var s=e(i[a],n,r);if(s)return s}return t}},t.visit=i,t.stripComments=function(e,t){var n,o,i=r.createScanner(e),a=[],s=0;do{switch(o=i.getPosition(),n=i.scan()){case 12:case 13:case 17:s!==o&&a.push(e.substring(s,o)),void 0!==t&&a.push(i.getTokenValue().replace(/[^\\r\\n]/g,t)),s=i.getPosition()}}while(17!==n);return a.join(\"\")},t.getNodeType=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/edit\",[\"require\",\"exports\",\"./format\",\"./parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./format\"),r=e(\"./parser\");function o(e,t,n,o,a){for(var s,c=t.slice(),u=r.parseTree(e,[]),l=void 0,f=void 0;c.length>0&&(f=c.pop(),void 0===(l=r.findNodeAtLocation(u,c))&&void 0!==n);)\"string\"==typeof f?((s={})[f]=n,n=s):n=[n];if(l){if(\"object\"===l.type&&\"string\"==typeof f&&Array.isArray(l.children)){var d=r.findNodeAtLocation(l,[f]);if(void 0!==d){if(void 0===n){if(!d.parent)throw new Error(\"Malformed AST\");var p=l.children.indexOf(d.parent),h=void 0,m=d.parent.offset+d.parent.length;if(p>0)h=(S=l.children[p-1]).offset+S.length;else if(h=l.offset+1,l.children.length>1)m=l.children[1].offset;return i(e,{offset:h,length:m-h,content:\"\"},o)}return i(e,{offset:d.offset,length:d.length,content:JSON.stringify(n)},o)}if(void 0===n)return[];var g=JSON.stringify(f)+\": \"+JSON.stringify(n),v=a?a(l.children.map((function(e){return e.children[0].value}))):l.children.length,y=void 0;return i(e,y=v>0?{offset:(S=l.children[v-1]).offset+S.length,length:0,content:\",\"+g}:0===l.children.length?{offset:l.offset+1,length:0,content:g}:{offset:l.offset+1,length:0,content:g+\",\"},o)}if(\"array\"===l.type&&\"number\"==typeof f&&Array.isArray(l.children)){if(-1===f){g=\"\"+JSON.stringify(n),y=void 0;if(0===l.children.length)y={offset:l.offset+1,length:0,content:g};else y={offset:(S=l.children[l.children.length-1]).offset+S.length,length:0,content:\",\"+g};return i(e,y,o)}if(void 0===n&&l.children.length>=0){var b=f,x=l.children[b];y=void 0;if(1===l.children.length)y={offset:l.offset+1,length:l.length-2,content:\"\"};else if(l.children.length-1===b){var S,C=(S=l.children[b-1]).offset+S.length;y={offset:C,length:l.offset+l.length-2-C,content:\"\"}}else y={offset:x.offset,length:l.children[b+1].offset-x.offset,content:\"\"};return i(e,y,o)}throw new Error(\"Array modification not supported yet\")}throw new Error(\"Can not add \"+(\"number\"!=typeof f?\"index\":\"property\")+\" to parent of type \"+l.type)}if(void 0===n)throw new Error(\"Can not delete in empty document\");return i(e,{offset:u?u.offset:0,length:u?u.length:0,content:JSON.stringify(n)},o)}function i(e,t,r){var o=a(e,t),i=t.offset,s=t.offset+t.content.length;if(0===t.length||0===t.content.length){for(;i>0&&!n.isEOL(o,i-1);)i--;for(;s<o.length&&!n.isEOL(o,s);)s++}for(var c=n.format(o,{offset:i,length:s-i},r),u=c.length-1;u>=0;u--){var l=c[u];o=a(o,l),i=Math.min(i,l.offset),s=Math.max(s,l.offset+l.length),s+=l.content.length-l.length}return[{offset:i,length:e.length-(o.length-s)-i,content:o.substring(i,s)}]}function a(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}t.removeProperty=function(e,t,n){return o(e,t,void 0,n)},t.setProperty=o,t.applyEdit=a,t.isWS=function(e,t){return-1!==\"\\r\\n \\t\".indexOf(e.charAt(t))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/main\",[\"require\",\"exports\",\"./impl/format\",\"./impl/edit\",\"./impl/scanner\",\"./impl/parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./impl/format\"),r=e(\"./impl/edit\"),o=e(\"./impl/scanner\"),i=e(\"./impl/parser\");t.createScanner=o.createScanner,t.getLocation=i.getLocation,t.parse=i.parse,t.parseTree=i.parseTree,t.findNodeAtLocation=i.findNodeAtLocation,t.findNodeAtOffset=i.findNodeAtOffset,t.getNodePath=i.getNodePath,t.getNodeValue=i.getNodeValue,t.visit=i.visit,t.stripComments=i.stripComments,t.printParseErrorCode=function(e){switch(e){case 1:return\"InvalidSymbol\";case 2:return\"InvalidNumberFormat\";case 3:return\"PropertyNameExpected\";case 4:return\"ValueExpected\";case 5:return\"ColonExpected\";case 6:return\"CommaExpected\";case 7:return\"CloseBraceExpected\";case 8:return\"CloseBracketExpected\";case 9:return\"EndOfFileExpected\";case 10:return\"InvalidCommentToken\";case 11:return\"UnexpectedEndOfComment\";case 12:return\"UnexpectedEndOfString\";case 13:return\"UnexpectedEndOfNumber\";case 14:return\"InvalidUnicode\";case 15:return\"InvalidEscapeCharacter\";case 16:return\"InvalidCharacter\"}return\"<unknown ParseErrorCode>\"},t.format=function(e,t,r){return n.format(e,t,r)},t.modify=function(e,t,n,o){return r.setProperty(e,t,n,o.formattingOptions,o.getInsertionIndex)},t.applyEdits=function(e,t){for(var n=t.length-1;n>=0;n--)e=r.applyEdit(e,t[n]);return e}})),define(\"jsonc-parser\",[\"jsonc-parser/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var r,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1}else{var i=[];for(o in t)i.push(o);i.sort();var a=[];for(o in n)a.push(o);if(a.sort(),!e(i,a))return!1;for(r=0;r<i.length;r++)if(!e(t[i[r]],n[i[r]]))return!1}return!0},t.isNumber=function(e){return\"number\"==typeof e},t.isDefined=function(e){return void 0!==e},t.isBoolean=function(e){return\"boolean\"==typeof e},t.isString=function(e){return\"string\"==typeof e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,o,i,a,s,c,u,l,f,d,p,h;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.number(t.line)&&S.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,o){if(S.number(e)&&S.number(t)&&S.number(r)&&S.number(o))return{start:n.create(e,t),end:n.create(r,o)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+o+\"]\")},e.is=function(e){var t=e;return S.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.string(t.uri)||S.undefined(t.uri))}}(o=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.targetRange)&&S.string(t.targetUri)&&(r.is(t.targetSelectionRange)||S.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||S.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return S.number(t.red)&&S.number(t.green)&&S.number(t.blue)&&S.number(t.alpha)}}(i=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&i.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return S.string(t.label)&&(S.undefined(t.textEdit)||u.is(t))&&(S.undefined(t.additionalTextEdits)||S.typedArray(t.additionalTextEdits,u.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,o){var i={startLine:e,endLine:t};return S.defined(n)&&(i.startCharacter=n),S.defined(r)&&(i.endCharacter=r),S.defined(o)&&(i.kind=o),i},e.is=function(e){var t=e;return S.number(t.startLine)&&S.number(t.startLine)&&(S.undefined(t.startCharacter)||S.number(t.startCharacter))&&(S.undefined(t.endCharacter)||S.number(t.endCharacter))&&(S.undefined(t.kind)||S.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return S.defined(t)&&o.is(t.location)&&S.string(t.message)}}(a=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,o,i){var a={range:e,message:t};return S.defined(n)&&(a.severity=n),S.defined(r)&&(a.code=r),S.defined(o)&&(a.source=o),S.defined(i)&&(a.relatedInformation=i),a},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&S.string(t.message)&&(S.number(t.severity)||S.undefined(t.severity))&&(S.number(t.code)||S.string(t.code)||S.undefined(t.code))&&(S.string(t.source)||S.undefined(t.source))&&(S.undefined(t.relatedInformation)||S.typedArray(t.relatedInformation,a.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={title:e,command:t};return S.defined(n)&&n.length>0&&(o.arguments=n),o},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.title)&&S.string(t.command)}}(c=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.string(t.newText)&&r.is(t.range)}}(u=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return S.defined(t)&&m.is(t.textDocument)&&Array.isArray(t.edits)}}(l=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(f=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&S.string(t.oldUri)&&S.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(d=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||S.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||S.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return S.string(e.kind)?f.is(e)||d.is(e)||p.is(e):l.is(e)})))}}(h=t.WorkspaceEdit||(t.WorkspaceEdit={}));var m,g,v,y,b=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(u.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(u.replace(e,t))},e.prototype.delete=function(e){this.edits.push(u.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),x=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(l.is(e)){var n=new b(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new b(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(m.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:o=[]};this._workspaceEdit.documentChanges.push(n),r=new b(o),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var o=[];this._workspaceEdit.changes[e]=o,r=new b(o),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(f.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(d.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=x,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&(null===t.version||S.number(t.version))}}(m=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&S.string(t.languageId)&&S.number(t.version)&&S.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return S.objectLiteral(e)&&g.is(t.kind)&&S.string(t.value)}}(v=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return S.string(t)||S.objectLiteral(t)&&S.string(t.language)&&S.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&S.objectLiteral(t)&&(v.is(t.contents)||y.is(t.contents)||S.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={label:e};return S.defined(t)&&(o.documentation=t),S.defined(n)?o.parameters=n:o.parameters=[],o}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return S.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,o){var i={name:e,kind:t,location:{uri:r,range:n}};return o&&(i.containerName=o),i}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,o,i){var a={name:e,detail:t,kind:n,range:r,selectionRange:o};return void 0!==i&&(a.children=i),a},e.is=function(e){var t=e;return t&&S.string(t.name)&&S.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||S.string(t.detail))&&(void 0===t.deprecated||S.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return S.defined(t)&&S.typedArray(t.diagnostics,s.is)&&(void 0===t.only||S.typedArray(t.only,S.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return c.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&S.string(t.title)&&(void 0===t.diagnostics||S.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||S.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||c.is(t.command))&&(void 0===t.isPreferred||S.boolean(t.isPreferred))&&(void 0===t.edit||h.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return S.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.command)||c.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return S.defined(t)&&S.number(t.tabSize)&&S.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.target)||S.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new C(e,t,n,r)},e.is=function(e){var t=e;return!!(S.defined(t)&&S.string(t.uri)&&(S.undefined(t.languageId)||S.string(t.languageId))&&S.number(t.lineCount)&&S.func(t.getText)&&S.func(t.positionAt)&&S.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,i=r.length-1;i>=0;i--){var a=r[i],s=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+a.newText+n.substring(c,n.length),o=s}return n}}(t.TextDocument||(t.TextDocument={}));var S,C=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var o=t.charAt(r);n=\"\\r\"===o||\"\\n\"===o,\"\\r\"===o&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,o=t.length;if(0===o)return n.create(0,e);for(;r<o;){var i=Math.floor((r+o)/2);t[i]>e?o=i:r=i+1}var a=r-1;return n.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(S||(S={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var i=0,a=t;i<a.length;i++){var s=a[i];if(e.isIncremental(s)){var c=o(s.range),u=this.offsetAt(c.start),l=this.offsetAt(c.end);this._content=this._content.substring(0,u)+s.text+this._content.substring(l,this._content.length);var f=Math.max(c.start.line,0),d=Math.max(c.end.line,0),p=this._lineOffsets,h=r(s.text,!1,u);if(d-f===h.length)for(var m=0,g=h.length;m<g;m++)p[m+f+1]=h[m];else h.length<1e4?p.splice.apply(p,[f+1,d-f].concat(h)):this._lineOffsets=p=p.slice(0,f+1).concat(h,p.slice(d+1));var v=s.text.length-(l-u);if(0!==v)for(m=f+1+h.length,g=p.length;m<g;m++)p[m]=p[m]+v}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o+1}var i=n-1;return{line:i,character:e-t[i]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],o=0;o<e.length;o++){var i=e.charCodeAt(o);13!==i&&10!==i||(13===i&&o+1<e.length&&10===e.charCodeAt(o+1)&&o++,r.push(n+o+1))}return r}function o(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function i(e){var t=o(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,o){return new n(e,t,r,o)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t.map(i),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,a=r.length-1;a>=0;a--){var s=r[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,c)+s.newText+n.substring(u,n.length),o=c}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e[e.Undefined=0]=\"Undefined\",e[e.EnumValueMismatch=1]=\"EnumValueMismatch\",e[e.UnexpectedEndOfComment=257]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=258]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=259]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=260]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=261]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=262]=\"InvalidCharacter\",e[e.PropertyExpected=513]=\"PropertyExpected\",e[e.CommaExpected=514]=\"CommaExpected\",e[e.ColonExpected=515]=\"ColonExpected\",e[e.ValueExpected=516]=\"ValueExpected\",e[e.CommaOrCloseBacketExpected=517]=\"CommaOrCloseBacketExpected\",e[e.CommaOrCloseBraceExpected=518]=\"CommaOrCloseBraceExpected\",e[e.TrailingComma=519]=\"TrailingComma\",e[e.DuplicateKey=520]=\"DuplicateKey\",e[e.CommentNotPermitted=521]=\"CommentNotPermitted\",e[e.SchemaResolveError=768]=\"SchemaResolveError\"}(t.ErrorCode||(t.ErrorCode={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText],commitCharactersSupport:!0}}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],o=2;o<arguments.length;o++)r[o-2]=arguments[o];return n(t,r)}function o(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=o,t.config=function(e){return o}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/parser/jsonParser\",[\"require\",\"exports\",\"jsonc-parser\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../utils/objects\"),o=e(\"../jsonLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),a={\"color-hex\":{errorMessage:i(\"colorHexFormatWarning\",\"Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.\"),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},\"date-time\":{errorMessage:i(\"dateTimeFormatWarning\",\"String is not a RFC3339 date-time.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:i(\"dateFormatWarning\",\"String is not a RFC3339 date.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:i(\"timeFormatWarning\",\"String is not a RFC3339 time.\"),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:i(\"emailFormatWarning\",\"String is not an e-mail address.\"),pattern:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/}},s=function(){function e(e,t,n){this.offset=t,this.length=n,this.parent=e}return Object.defineProperty(e.prototype,\"children\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return\"type: \"+this.type+\" (\"+this.offset+\"/\"+this.length+\")\"+(this.parent?\" parent: {\"+this.parent.toString()+\"}\":\"\")},e}();t.ASTNodeImpl=s;var c=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"null\",r.value=null,r}return __extends(t,e),t}(s);t.NullASTNodeImpl=c;var u=function(e){function t(t,n,r){var o=e.call(this,t,r)||this;return o.type=\"boolean\",o.value=n,o}return __extends(t,e),t}(s);t.BooleanASTNodeImpl=u;var l=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"array\",r.items=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.items},enumerable:!0,configurable:!0}),t}(s);t.ArrayASTNodeImpl=l;var f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"number\",r.isInteger=!0,r.value=Number.NaN,r}return __extends(t,e),t}(s);t.NumberASTNodeImpl=f;var d=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.type=\"string\",o.value=\"\",o}return __extends(t,e),t}(s);t.StringASTNodeImpl=d;var p=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"property\",r.colonOffset=-1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]},enumerable:!0,configurable:!0}),t}(s);t.PropertyASTNodeImpl=p;var h=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"object\",r.properties=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.properties},enumerable:!0,configurable:!0}),t}(s);function m(e){return r.isBoolean(e)?e?{}:{not:{}}:e}t.ObjectASTNodeImpl=h,t.asSchema=m,function(e){e[e.Key=0]=\"Key\",e[e.Enum=1]=\"Enum\"}(t.EnumMatch||(t.EnumMatch={}));var g=function(){function e(e,t){void 0===e&&(e=-1),void 0===t&&(t=null),this.focusOffset=e,this.exclude=t,this.schemas=[]}return e.prototype.add=function(e){this.schemas.push(e)},e.prototype.merge=function(e){var t;(t=this.schemas).push.apply(t,e.schemas)},e.prototype.include=function(e){return(-1===this.focusOffset||x(e,this.focusOffset))&&e!==this.exclude},e.prototype.newSub=function(){return new e(-1,this.exclude)},e}(),v=function(){function e(){}return Object.defineProperty(e.prototype,\"schemas\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.add=function(e){},e.prototype.merge=function(e){},e.prototype.include=function(e){return!0},e.prototype.newSub=function(){return this},e.instance=new e,e}(),y=function(){function e(){this.problems=[],this.propertiesMatches=0,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=null}return e.prototype.hasProblems=function(){return!!this.problems.length},e.prototype.mergeAll=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.merge(r)}},e.prototype.merge=function(e){this.problems=this.problems.concat(e.problems)},e.prototype.mergeEnumValues=function(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(var t=0,n=this.problems;t<n.length;t++){var r=n[t];r.code===o.ErrorCode.EnumValueMismatch&&(r.message=i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",this.enumValues.map((function(e){return JSON.stringify(e)})).join(\", \")))}}},e.prototype.mergePropertyMatch=function(e){this.merge(e),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&1===e.enumValues.length&&this.primaryValueMatches++},e.prototype.compare=function(e){var t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches},e}();function b(e){return n.getNodeValue(e)}function x(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}t.ValidationResult=y,t.newJSONDocument=function(e,t){return void 0===t&&(t=[]),new S(e,t,[])},t.getNodeValue=b,t.getNodePath=function(e){return n.getNodePath(e)},t.contains=x;var S=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=[]),this.root=e,this.syntaxErrors=t,this.comments=n}return e.prototype.getNodeFromOffset=function(e,t){if(void 0===t&&(t=!1),this.root)return n.findNodeAtOffset(this.root,e,t)},e.prototype.visit=function(e){if(this.root){var t=function(n){var r=e(n),o=n.children;if(Array.isArray(o))for(var i=0;i<o.length&&r;i++)r=t(o[i]);return r};t(this.root)}},e.prototype.validate=function(e,t){if(this.root&&t){var n=new y;return C(this.root,t,n,v.instance),n.problems.map((function(t){var n=o.Range.create(e.positionAt(t.location.offset),e.positionAt(t.location.offset+t.location.length));return o.Diagnostic.create(n,t.message,t.severity,t.code)}))}return null},e.prototype.getMatchingSchemas=function(e,t,n){void 0===t&&(t=-1),void 0===n&&(n=null);var r=new g(t,n);return this.root&&e&&C(this.root,e,new y,r),r.schemas},e}();function C(e,t,n,s){if(e&&s.include(e)){switch(e.type){case\"object\":!function(e,t,n,a){for(var s=Object.create(null),c=[],u=0,l=e.properties;u<l.length;u++){var f=(j=l[u]).keyNode.value;s[f]=j.valueNode,c.push(f)}if(Array.isArray(t.required))for(var d=0,p=t.required;d<p.length;d++){var h=p[d];if(!s[h]){var g=e.parent&&\"property\"===e.parent.type&&e.parent.keyNode,b=g?{offset:g.offset,length:g.length}:{offset:e.offset,length:1};n.problems.push({location:b,severity:o.DiagnosticSeverity.Warning,message:i(\"MissingRequiredPropWarning\",'Missing property \"{0}\".',h)})}}var x=function(e){for(var t=c.indexOf(e);t>=0;)c.splice(t,1),t=c.indexOf(e)};if(t.properties)for(var S=0,k=Object.keys(t.properties);S<k.length;S++){h=k[S];x(h);var T=t.properties[h];if(L=s[h])if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{var j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{var E=new y;C(L,T,E,a),n.mergePropertyMatch(E)}}if(t.patternProperties)for(var O=0,A=Object.keys(t.patternProperties);O<A.length;O++)for(var I=A[O],w=new RegExp(I),_=0,P=c.slice(0);_<P.length;_++){h=P[_];if(w.test(h))if(x(h),L=s[h]){T=t.patternProperties[I];if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{E=new y;C(L,T,E,a),n.mergePropertyMatch(E)}}}if(\"object\"==typeof t.additionalProperties)for(var N=0,M=c;N<M.length;N++){h=M[N];if(L=s[h]){E=new y;C(L,t.additionalProperties,E,a),n.mergePropertyMatch(E)}}else if(!1===t.additionalProperties&&c.length>0)for(var D=0,F=c;D<F.length;D++){var L;h=F[D];if(L=s[h]){j=L.parent;n.problems.push({location:{offset:j.keyNode.offset,length:j.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}}r.isNumber(t.maxProperties)&&e.properties.length>t.maxProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MaxPropWarning\",\"Object has more properties than limit of {0}.\",t.maxProperties)});r.isNumber(t.minProperties)&&e.properties.length<t.minProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MinPropWarning\",\"Object has fewer properties than the required number of {0}\",t.minProperties)});if(t.dependencies)for(var R=0,V=Object.keys(t.dependencies);R<V.length;R++){f=V[R];if(s[f]){var K=t.dependencies[f];if(Array.isArray(K))for(var $=0,q=K;$<q.length;$++){var W=q[$];s[W]?n.propertiesValueMatches++:n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"RequiredDependentPropWarning\",\"Object is missing property {0} required by property {1}.\",W,f)})}else if(T=m(K)){E=new y;C(e,T,E,a),n.mergePropertyMatch(E)}}}var U=m(t.propertyNames);if(U)for(var B=0,J=e.properties;B<J.length;B++){var H=J[B];(f=H.keyNode)&&C(f,U,n,v.instance)}}(e,t,n,s);break;case\"array\":!function(e,t,n,a){if(Array.isArray(t.items)){for(var s=t.items,c=0;c<s.length;c++){var u=m(s[c]),l=new y;(g=e.items[c])?(C(g,u,l,a),n.mergePropertyMatch(l)):e.items.length>=s.length&&n.propertiesValueMatches++}if(e.items.length>s.length)if(\"object\"==typeof t.additionalItems)for(var f=s.length;f<e.items.length;f++){l=new y;C(e.items[f],t.additionalItems,l,a),n.mergePropertyMatch(l)}else!1===t.additionalItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"additionalItemsWarning\",\"Array has too many items according to schema. Expected {0} or fewer.\",s.length)})}else{var d=m(t.items);if(d)for(var p=0,h=e.items;p<h.length;p++){var g=h[p];l=new y;C(g,d,l,a),n.mergePropertyMatch(l)}}var x=m(t.contains);if(x){e.items.some((function(e){var t=new y;return C(e,x,t,v.instance),!t.hasProblems()}))||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"requiredItemMissingWarning\",\"Array does not contain required item.\")})}r.isNumber(t.minItems)&&e.items.length<t.minItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minItemsWarning\",\"Array has too few items. Expected {0} or more.\",t.minItems)});r.isNumber(t.maxItems)&&e.items.length>t.maxItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxItemsWarning\",\"Array has too many items. Expected {0} or fewer.\",t.maxItems)});if(!0===t.uniqueItems){var S=b(e);S.some((function(e,t){return t!==S.lastIndexOf(e)}))&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"uniqueItemsWarning\",\"Array has duplicate items.\")})}}(e,t,n,s);break;case\"string\":!function(e,t,n,s){r.isNumber(t.minLength)&&e.value.length<t.minLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minLengthWarning\",\"String is shorter than the minimum length of {0}.\",t.minLength)});r.isNumber(t.maxLength)&&e.value.length>t.maxLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxLengthWarning\",\"String is longer than the maximum length of {0}.\",t.maxLength)});if(r.isString(t.pattern)){new RegExp(t.pattern).test(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"patternWarning\",'String does not match the pattern of \"{0}\".',t.pattern)})}if(t.format)switch(t.format){case\"uri\":case\"uri-reference\":var c=void 0;if(e.value){var u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(e.value);u?u[2]||\"uri\"!==t.format||(c=i(\"uriSchemeMissing\",\"URI with a scheme is expected.\")):c=i(\"uriMissing\",\"URI is expected.\")}else c=i(\"uriEmpty\",\"URI expected.\");c&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"uriFormatWarning\",\"String is not a URI: {0}\",c)});break;case\"color-hex\":case\"date-time\":case\"date\":case\"time\":case\"email\":var l=a[t.format];e.value&&l.pattern.exec(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||l.errorMessage})}}(e,t,n);break;case\"number\":!function(e,t,n,a){var s=e.value;r.isNumber(t.multipleOf)&&s%t.multipleOf!=0&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"multipleOfWarning\",\"Value is not divisible by {0}.\",t.multipleOf)});function c(e,t){return r.isNumber(t)?t:r.isBoolean(t)&&t?e:void 0}function u(e,t){if(!r.isBoolean(t)||!t)return e}var l=c(t.minimum,t.exclusiveMinimum);r.isNumber(l)&&s<=l&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMinimumWarning\",\"Value is below the exclusive minimum of {0}.\",l)});var f=c(t.maximum,t.exclusiveMaximum);r.isNumber(f)&&s>=f&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMaximumWarning\",\"Value is above the exclusive maximum of {0}.\",f)});var d=u(t.minimum,t.exclusiveMinimum);r.isNumber(d)&&s<d&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minimumWarning\",\"Value is below the minimum of {0}.\",d)});var p=u(t.maximum,t.exclusiveMaximum);r.isNumber(p)&&s>p&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maximumWarning\",\"Value is above the maximum of {0}.\",p)})}(e,t,n);break;case\"property\":return C(e.valueNode,t,n,s)}!function(){function a(t){return e.type===t||\"integer\"===t&&\"number\"===e.type&&e.isInteger}Array.isArray(t.type)?t.type.some(a)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeArrayMismatchWarning\",\"Incorrect type. Expected one of {0}.\",t.type.join(\", \"))}):t.type&&(a(t.type)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeMismatchWarning\",'Incorrect type. Expected \"{0}\".',t.type)}));if(Array.isArray(t.allOf))for(var c=0,u=t.allOf;c<u.length;c++){var l=u[c];C(e,m(l),n,s)}var f=m(t.not);if(f){var d=new y,p=s.newSub();C(e,f,d,p),d.hasProblems()||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"notSchemaWarning\",\"Matches a schema that is not allowed.\")});for(var h=0,g=p.schemas;h<g.length;h++){var v=g[h];v.inverted=!v.inverted,s.add(v)}}var x=function(t,r){for(var a=[],c=null,u=0,l=t;u<l.length;u++){var f=m(l[u]),d=new y,p=s.newSub();if(C(e,f,d,p),d.hasProblems()||a.push(f),c)if(r||d.hasProblems()||c.validationResult.hasProblems()){var h=d.compare(c.validationResult);h>0?c={schema:f,validationResult:d,matchingSchemas:p}:0===h&&(c.matchingSchemas.merge(p),c.validationResult.mergeEnumValues(d))}else c.matchingSchemas.merge(p),c.validationResult.propertiesMatches+=d.propertiesMatches,c.validationResult.propertiesValueMatches+=d.propertiesValueMatches;else c={schema:f,validationResult:d,matchingSchemas:p}}return a.length>1&&r&&n.problems.push({location:{offset:e.offset,length:1},severity:o.DiagnosticSeverity.Warning,message:i(\"oneOfWarning\",\"Matches multiple schemas when only one must validate.\")}),null!==c&&(n.merge(c.validationResult),n.propertiesMatches+=c.validationResult.propertiesMatches,n.propertiesValueMatches+=c.validationResult.propertiesValueMatches,s.merge(c.matchingSchemas)),a.length};Array.isArray(t.anyOf)&&x(t.anyOf,!1);Array.isArray(t.oneOf)&&x(t.oneOf,!0);var S=function(t){var r=new y,o=s.newSub();C(e,m(t),r,o),n.merge(r),n.propertiesMatches+=r.propertiesMatches,n.propertiesValueMatches+=r.propertiesValueMatches,s.merge(o)},k=m(t.if);k&&function(t,n,r){var o=m(t),i=new y,a=s.newSub();C(e,o,i,a),s.merge(a),i.hasProblems()?r&&S(r):n&&S(n)}(k,m(t.then),m(t.else));if(Array.isArray(t.enum)){for(var T=b(e),j=!1,E=0,O=t.enum;E<O.length;E++){var A=O[E];if(r.equals(T,A)){j=!0;break}}n.enumValues=t.enum,n.enumValueMatch=j,j||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",t.enum.map((function(e){return JSON.stringify(e)})).join(\", \"))})}if(r.isDefined(t.const)){T=b(e);r.equals(T,t.const)?n.enumValueMatch=!0:(n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"constWarning\",\"Value must be {0}.\",JSON.stringify(t.const))}),n.enumValueMatch=!1),n.enumValues=[t.const]}t.deprecationMessage&&e.parent&&n.problems.push({location:{offset:e.parent.offset,length:e.parent.length},severity:o.DiagnosticSeverity.Warning,message:t.deprecationMessage})}(),s.add({node:e,schema:t})}}t.JSONDocument=S,t.parse=function(e,t){var a=[],s=-1,m=e.getText(),g=n.createScanner(m,!1),v=t&&t.collectComments?[]:void 0;function y(){for(;;){var t=g.scan();switch(C(),t){case 12:case 13:Array.isArray(v)&&v.push(o.Range.create(e.positionAt(g.getTokenOffset()),e.positionAt(g.getTokenOffset()+g.getTokenLength())));break;case 15:case 14:break;default:return t}}}function b(t,n,r,i,c){if(void 0===c&&(c=o.DiagnosticSeverity.Error),0===a.length||r!==s){var u=o.Range.create(e.positionAt(r),e.positionAt(i));a.push(o.Diagnostic.create(u,t,c,n,e.languageId)),s=r}}function x(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r=[]),void 0===o&&(o=[]);var i=g.getTokenOffset(),a=g.getTokenOffset()+g.getTokenLength();if(i===a&&i>0){for(i--;i>0&&/\\s/.test(m.charAt(i));)i--;a=i+1}if(b(e,t,i,a),n&&k(n,!1),r.length+o.length>0)for(var s=g.getToken();17!==s;){if(-1!==r.indexOf(s)){y();break}if(-1!==o.indexOf(s))break;s=y()}return n}function C(){switch(g.getTokenError()){case 4:return x(i(\"InvalidUnicode\",\"Invalid unicode sequence in string.\"),o.ErrorCode.InvalidUnicode),!0;case 5:return x(i(\"InvalidEscapeCharacter\",\"Invalid escape character in string.\"),o.ErrorCode.InvalidEscapeCharacter),!0;case 3:return x(i(\"UnexpectedEndOfNumber\",\"Unexpected end of number.\"),o.ErrorCode.UnexpectedEndOfNumber),!0;case 1:return x(i(\"UnexpectedEndOfComment\",\"Unexpected end of comment.\"),o.ErrorCode.UnexpectedEndOfComment),!0;case 2:return x(i(\"UnexpectedEndOfString\",\"Unexpected end of string.\"),o.ErrorCode.UnexpectedEndOfString),!0;case 6:return x(i(\"InvalidCharacter\",\"Invalid characters in string. Control characters must be escaped.\"),o.ErrorCode.InvalidCharacter),!0}return!1}function k(e,t){return e.length=g.getTokenOffset()+g.getTokenLength()-e.offset,t&&y(),e}function T(t,n){var r=new p(t,g.getTokenOffset()),a=j(r);if(!a){if(16!==g.getToken())return null;x(i(\"DoubleQuotesExpected\",\"Property keys must be doublequoted\"),o.ErrorCode.Undefined);var s=new d(r,g.getTokenOffset(),g.getTokenLength());s.value=g.getTokenValue(),a=s,y()}r.keyNode=a;var c=n[a.value];if(c?(b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,r.keyNode.offset,r.keyNode.offset+r.keyNode.length,o.DiagnosticSeverity.Warning),\"object\"==typeof c&&b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,c.keyNode.offset,c.keyNode.offset+c.keyNode.length,o.DiagnosticSeverity.Warning),n[a.value]=!0):n[a.value]=r,6===g.getToken())r.colonOffset=g.getTokenOffset(),y();else if(x(i(\"ColonExpected\",\"Colon expected\"),o.ErrorCode.ColonExpected),10===g.getToken()&&e.positionAt(a.offset+a.length).line<e.positionAt(g.getTokenOffset()).line)return r.length=a.length,r;var u=E(r,a.value);return u?(r.valueNode=u,r.length=u.offset+u.length-r.offset,r):x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,r,[],[2,5])}function j(e){if(10!==g.getToken())return null;var t=new d(e,g.getTokenOffset());return t.value=g.getTokenValue(),k(t,!0)}function E(e,t){return function(e){if(3!==g.getToken())return null;var t=new l(e,g.getTokenOffset());y();for(var n=0,r=!1;4!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected);var a=g.getTokenOffset();if(y(),4===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=E(t,n++);s?t.items.push(s):x(i(\"PropertyExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,null,[],[4,5]),r=!0}return 4!==g.getToken()?x(i(\"ExpectedCloseBracket\",\"Expected comma or closing bracket\"),o.ErrorCode.CommaOrCloseBacketExpected,t):k(t,!0)}(e)||function(e){if(1!==g.getToken())return null;var t=new h(e,g.getTokenOffset()),n=Object.create(null);y();for(var r=!1;2!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected);var a=g.getTokenOffset();if(y(),2===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=T(t,n);s?t.properties.push(s):x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected,null,[],[2,5]),r=!0}return 2!==g.getToken()?x(i(\"ExpectedCloseBrace\",\"Expected comma or closing brace\"),o.ErrorCode.CommaOrCloseBraceExpected,t):k(t,!0)}(e)||j(e)||function(e){if(11!==g.getToken())return null;var t=new f(e,g.getTokenOffset());if(0===g.getTokenError()){var n=g.getTokenValue();try{var a=JSON.parse(n);if(!r.isNumber(a))return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t);t.value=a}catch(e){return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t)}t.isInteger=-1===n.indexOf(\".\")}return k(t,!0)}(e)||function(e){switch(g.getToken()){case 7:return k(new c(e,g.getTokenOffset()),!0);case 8:return k(new u(e,!0,g.getTokenOffset()),!0);case 9:return k(new u(e,!1,g.getTokenOffset()),!0);default:return null}}(e)}var O=null;return 17!==y()&&((O=E(null))?17!==g.getToken()&&x(i(\"End of file expected\",\"End of file expected.\"),o.ErrorCode.Undefined):x(i(\"Invalid symbol\",\"Expected a JSON object, array or literal.\"),o.ErrorCode.Undefined)),new S(O,a,v)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/json\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.stringifyObject=function e(t,n,r){if(null!==t&&\"object\"==typeof t){var o=n+\"\\t\";if(Array.isArray(t)){if(0===t.length)return\"[]\";for(var i=\"[\\n\",a=0;a<t.length;a++)i+=o+e(t[a],o,r),a<t.length-1&&(i+=\",\"),i+=\"\\n\";return i+=n+\"]\"}var s=Object.keys(t);if(0===s.length)return\"{}\";for(i=\"{\\n\",a=0;a<s.length;a++){var c=s[a];i+=o+JSON.stringify(c)+\": \"+e(t[c],o,r),a<s.length-1&&(i+=\",\"),i+=\"\\n\"}return i+=n+\"}\"}return r(t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonCompletion\",[\"require\",\"exports\",\"../parser/jsonParser\",\"jsonc-parser\",\"../utils/json\",\"../utils/strings\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"jsonc-parser\"),o=e(\"../utils/json\"),i=e(\"../utils/strings\"),a=e(\"../utils/objects\"),s=e(\"../jsonLanguageTypes\"),c=e(\"vscode-nls\").loadMessageBundle(),u=function(){function e(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=Promise),void 0===r&&(r={}),this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=r,this.templateVarIdCounter=0}return e.prototype.doResolve=function(e){for(var t=this.contributions.length-1;t>=0;t--)if(this.contributions[t].resolveCompletion){var n=this.contributions[t].resolveCompletion(e);if(n)return n}return this.promiseConstructor.resolve(e)},e.prototype.doComplete=function(e,t,r){var o=this,i={items:[],isIncomplete:!1},a=e.getText(),c=e.offsetAt(t),u=r.getNodeFromOffset(c,!0);if(this.isInComment(e,u?u.offset:0,c))return Promise.resolve(i);if(u&&c===u.offset+u.length&&c>0){var l=a[c-1];(\"object\"===u.type&&\"}\"===l||\"array\"===u.type&&\"]\"===l)&&(u=u.parent)}var f=this.getCurrentWord(e,c),d=null;if(!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type){var p=c-f.length;p>0&&'\"'===a[p-1]&&p--,d=s.Range.create(e.positionAt(p),t)}else d=s.Range.create(e.positionAt(u.offset),e.positionAt(u.offset+u.length));var h={},m={add:function(e){var t=e.label,n=h[t];if(n)n.documentation||(n.documentation=e.documentation);else{if((t=t.replace(/[\\n]/g,\"↵\")).length>60){var r=t.substr(0,57).trim()+\"...\";h[r]||(t=r)}d&&(e.textEdit=s.TextEdit.replace(d,e.insertText)),e.label=t,h[t]=e,i.items.push(e)}},setAsIncomplete:function(){i.isIncomplete=!0},error:function(e){console.error(e)},log:function(e){console.log(e)},getNumberOfProposals:function(){return i.items.length}};return this.schemaService.getSchemaForResource(e.uri,r).then((function(t){var l=[],p=!0,g=\"\",v=null;if(u&&\"string\"===u.type){var y=u.parent;y&&\"property\"===y.type&&y.keyNode===u&&(p=!y.valueNode,v=y,g=a.substr(u.offset+1,u.length-2),y&&(u=y.parent))}if(u&&\"object\"===u.type){if(u.offset===c)return i;u.properties.forEach((function(e){v&&v===e||(h[e.keyNode.value]=s.CompletionItem.create(\"__\"))}));var b=\"\";p&&(b=o.evaluateSeparatorAfter(e,e.offsetAt(d.end))),t?o.getPropertyCompletions(t,r,u,p,b,m):o.getSchemaLessPropertyCompletions(r,u,g,m);var x=n.getNodePath(u);o.contributions.forEach((function(t){var n=t.collectPropertyCompletions(e.uri,x,f,p,\"\"===b,m);n&&l.push(n)})),!t&&f.length>0&&'\"'!==a.charAt(c-f.length-1)&&(m.add({kind:s.CompletionItemKind.Property,label:o.getLabelForValue(f),insertText:o.getInsertTextForProperty(f,null,!1,b),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),m.setAsIncomplete())}var S={};return t?o.getValueCompletions(t,r,u,c,e,m,S):o.getSchemaLessValueCompletions(r,u,c,e,m),o.contributions.length>0&&o.getContributedValueCompletions(r,u,c,e,m,l),o.promiseConstructor.all(l).then((function(){if(0===m.getNumberOfProposals()){var t=c;!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type||(t=u.offset+u.length);var n=o.evaluateSeparatorAfter(e,t);o.addFillerValueCompletions(S,n,m)}return i}))}))},e.prototype.getPropertyCompletions=function(e,t,n,r,o,a){var c=this;t.getMatchingSchemas(e.schema,n.offset).forEach((function(e){if(e.node===n&&!e.inverted){var t=e.schema.properties;t&&Object.keys(t).forEach((function(e){var n=t[e];if(\"object\"==typeof n&&!n.deprecationMessage&&!n.doNotSuggest){var u={kind:s.CompletionItemKind.Property,label:e,insertText:c.getInsertTextForProperty(e,n,r,o),insertTextFormat:s.InsertTextFormat.Snippet,filterText:c.getFilterTextForValue(e),documentation:c.fromMarkup(n.markdownDescription)||n.description||\"\"};i.endsWith(u.insertText,\"$1\"+o)&&(u.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),a.add(u)}}))}}))},e.prototype.getSchemaLessPropertyCompletions=function(e,t,n,r){var o=this,i=function(e){e.properties.forEach((function(e){var t=e.keyNode.value;r.add({kind:s.CompletionItemKind.Property,label:t,insertText:o.getInsertTextForValue(t,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,filterText:o.getFilterTextForValue(t),documentation:\"\"})}))};if(t.parent)if(\"property\"===t.parent.type){var a=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e!==t.parent&&e.keyNode.value===a&&e.valueNode&&\"object\"===e.valueNode.type&&i(e.valueNode),!0}))}else\"array\"===t.parent.type&&t.parent.items.forEach((function(e){\"object\"===e.type&&e!==t&&i(e)}));else\"object\"===t.type&&r.add({kind:s.CompletionItemKind.Property,label:\"$schema\",insertText:this.getInsertTextForProperty(\"$schema\",null,!0,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\",filterText:this.getFilterTextForValue(\"$schema\")})},e.prototype.getSchemaLessValueCompletions=function(e,t,r,o,i){var a=this,c=r;if(!t||\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(c=t.offset+t.length,t=t.parent),!t)return i.add({kind:this.getSuggestionKind(\"object\"),label:\"Empty object\",insertText:this.getInsertTextForValue({},\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),void i.add({kind:this.getSuggestionKind(\"array\"),label:\"Empty array\",insertText:this.getInsertTextForValue([],\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"});var u=this.evaluateSeparatorAfter(o,c),l=function(e){n.contains(e.parent,r,!0)||i.add({kind:a.getSuggestionKind(e.type),label:a.getLabelTextForMatchingNode(e,o),insertText:a.getInsertTextForMatchingNode(e,o,u),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),\"boolean\"===e.type&&a.addBooleanValueCompletion(!e.value,u,i)};if(\"property\"===t.type&&r>t.colonOffset){var f=t.valueNode;if(f&&(r>f.offset+f.length||\"object\"===f.type||\"array\"===f.type))return;var d=t.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===d&&e.valueNode&&l(e.valueNode),!0})),\"$schema\"===d&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(u,i)}if(\"array\"===t.type)if(t.parent&&\"property\"===t.parent.type){var p=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===p&&e.valueNode&&\"array\"===e.valueNode.type&&e.valueNode.items.forEach(l),!0}))}else t.items.forEach(l)},e.prototype.getValueCompletions=function(e,t,n,r,o,i,a){var s=this,c=r,u=null,l=null;if(!n||\"string\"!==n.type&&\"number\"!==n.type&&\"boolean\"!==n.type&&\"null\"!==n.type||(c=n.offset+n.length,l=n,n=n.parent),n){if(\"property\"===n.type&&r>n.colonOffset){var f=n.valueNode;if(f&&r>f.offset+f.length)return;u=n.keyNode.value,n=n.parent}if(n&&(null!==u||\"array\"===n.type)){var d=this.evaluateSeparatorAfter(o,c);t.getMatchingSchemas(e.schema,n.offset,l).forEach((function(e){if(e.node===n&&!e.inverted&&e.schema){if(\"array\"===n.type&&e.schema.items)if(Array.isArray(e.schema.items)){var t=s.findItemAtOffset(n,o,r);t<e.schema.items.length&&s.addSchemaValueCompletions(e.schema.items[t],d,i,a)}else s.addSchemaValueCompletions(e.schema.items,d,i,a);if(e.schema.properties){var c=e.schema.properties[u];c&&s.addSchemaValueCompletions(c,d,i,a)}}})),\"$schema\"!==u||n.parent||this.addDollarSchemaCompletions(d,i),a.boolean&&(this.addBooleanValueCompletion(!0,d,i),this.addBooleanValueCompletion(!1,d,i)),a.null&&this.addNullValueCompletion(d,i)}}else this.addSchemaValueCompletions(e.schema,\"\",i,a)},e.prototype.getContributedValueCompletions=function(e,t,r,o,i,a){if(t){if(\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(t=t.parent),\"property\"===t.type&&r>t.colonOffset){var s=t.keyNode.value,c=t.valueNode;if(!c||r<=c.offset+c.length){var u=n.getNodePath(t.parent);this.contributions.forEach((function(e){var t=e.collectValueCompletions(o.uri,u,s,i);t&&a.push(t)}))}}}else this.contributions.forEach((function(e){var t=e.collectDefaultCompletions(o.uri,i);t&&a.push(t)}))},e.prototype.addSchemaValueCompletions=function(e,t,n,r){var o=this;\"object\"==typeof e&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,r),Array.isArray(e.allOf)&&e.allOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.anyOf)&&e.anyOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.oneOf)&&e.oneOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})))},e.prototype.addDefaultValueCompletions=function(e,t,n,r){var o=this;void 0===r&&(r=0);var i=!1;if(a.isDefined(e.default)){for(var u=e.type,l=e.default,f=r;f>0;f--)l=[l],u=\"array\";n.add({kind:this.getSuggestionKind(u),label:this.getLabelForValue(l),insertText:this.getInsertTextForValue(l,t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"json.suggest.default\",\"Default value\")}),i=!0}Array.isArray(e.examples)&&e.examples.forEach((function(a){for(var c=e.type,u=a,l=r;l>0;l--)u=[u],c=\"array\";n.add({kind:o.getSuggestionKind(c),label:o.getLabelForValue(u),insertText:o.getInsertTextForValue(u,t),insertTextFormat:s.InsertTextFormat.Snippet}),i=!0})),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach((function(c){var u,l,f=e.type,d=c.body,p=c.label;if(a.isDefined(d)){e.type;for(var h=r;h>0;h--)d=[d],\"array\";u=o.getInsertTextForSnippetValue(d,t),l=o.getFilterTextForSnippetValue(d),p=p||o.getLabelForSnippetValue(d)}else if(\"string\"==typeof c.bodyText){var m=\"\",g=\"\",v=\"\";for(h=r;h>0;h--)m=m+v+\"[\\n\",g=g+\"\\n\"+v+\"]\",v+=\"\\t\",f=\"array\";u=m+v+c.bodyText.split(\"\\n\").join(\"\\n\"+v)+g+t,p=p||u,l=u.replace(/[\\n]/g,\"\")}n.add({kind:o.getSuggestionKind(f),label:p,documentation:o.fromMarkup(c.markdownDescription)||c.description,insertText:u,insertTextFormat:s.InsertTextFormat.Snippet,filterText:l}),i=!0})),i||\"object\"!=typeof e.items||Array.isArray(e.items)||this.addDefaultValueCompletions(e.items,t,n,r+1)},e.prototype.addEnumValueCompletions=function(e,t,n){if(a.isDefined(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(var r=0,o=e.enum.length;r<o;r++){var i=e.enum[r],c=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&r<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?c=this.fromMarkup(e.markdownEnumDescriptions[r]):e.enumDescriptions&&r<e.enumDescriptions.length&&(c=e.enumDescriptions[r]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(i),insertText:this.getInsertTextForValue(i,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:c})}},e.prototype.collectTypes=function(e,t){if(!Array.isArray(e.enum)&&!a.isDefined(e.const)){var n=e.type;Array.isArray(n)?n.forEach((function(e){return t[e]=!0})):t[n]=!0}},e.prototype.addFillerValueCompletions=function(e,t,n){e.object&&n.add({kind:this.getSuggestionKind(\"object\"),label:\"{}\",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.object\",\"New object\"),documentation:\"\"}),e.array&&n.add({kind:this.getSuggestionKind(\"array\"),label:\"[]\",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.array\",\"New array\"),documentation:\"\"})},e.prototype.addBooleanValueCompletion=function(e,t,n){n.add({kind:this.getSuggestionKind(\"boolean\"),label:e?\"true\":\"false\",insertText:this.getInsertTextForValue(e,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addNullValueCompletion=function(e,t){t.add({kind:this.getSuggestionKind(\"null\"),label:\"null\",insertText:\"null\"+e,insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addDollarSchemaCompletions=function(e,t){var n=this;this.schemaService.getRegisteredSchemaIds((function(e){return\"http\"===e||\"https\"===e})).forEach((function(r){return t.add({kind:s.CompletionItemKind.Module,label:n.getLabelForValue(r),filterText:n.getFilterTextForValue(r),insertText:n.getInsertTextForValue(r,e),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})}))},e.prototype.getLabelForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getLabelForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getInsertTextForPlainText=function(e){return e.replace(/[\\\\\\$\\}]/g,\"\\\\$&\")},e.prototype.getInsertTextForValue=function(e,t){var n=JSON.stringify(e,null,\"\\t\");return\"{}\"===n?\"{$1}\"+t:\"[]\"===n?\"[$1]\"+t:this.getInsertTextForPlainText(n+t)},e.prototype.getInsertTextForSnippetValue=function(e,t){return o.stringifyObject(e,\"\",(function(e){return\"string\"==typeof e&&\"^\"===e[0]?e.substr(1):JSON.stringify(e)}))+t},e.prototype.getInsertTextForGuessedValue=function(e,t){switch(typeof e){case\"object\":return null===e?\"${1:null}\"+t:this.getInsertTextForValue(e,t);case\"string\":var n=JSON.stringify(e);return n=n.substr(1,n.length-2),'\"${1:'+(n=this.getInsertTextForPlainText(n))+'}\"'+t;case\"number\":case\"boolean\":return\"${1:\"+JSON.stringify(e)+\"}\"+t}return this.getInsertTextForValue(e,t)},e.prototype.getSuggestionKind=function(e){if(Array.isArray(e)){var t=e;e=t.length>0?t[0]:null}if(!e)return s.CompletionItemKind.Value;switch(e){case\"string\":return s.CompletionItemKind.Value;case\"object\":return s.CompletionItemKind.Module;case\"property\":return s.CompletionItemKind.Property;default:return s.CompletionItemKind.Value}},e.prototype.getLabelTextForMatchingNode=function(e,t){switch(e.type){case\"array\":return\"[]\";case\"object\":return\"{}\";default:return t.getText().substr(e.offset,e.length)}},e.prototype.getInsertTextForMatchingNode=function(e,t,n){switch(e.type){case\"array\":return this.getInsertTextForValue([],n);case\"object\":return this.getInsertTextForValue({},n);default:var r=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(r)}},e.prototype.getInsertTextForProperty=function(e,t,n,r){var o=this.getInsertTextForValue(e,\"\");if(!n)return o;var i,s=o+\": \",c=0;if(t){if(Array.isArray(t.defaultSnippets)){if(1===t.defaultSnippets.length){var u=t.defaultSnippets[0].body;a.isDefined(u)&&(i=this.getInsertTextForSnippetValue(u,\"\"))}c+=t.defaultSnippets.length}if(t.enum&&(i||1!==t.enum.length||(i=this.getInsertTextForGuessedValue(t.enum[0],\"\")),c+=t.enum.length),a.isDefined(t.default)&&(i||(i=this.getInsertTextForGuessedValue(t.default,\"\")),c++),Array.isArray(t.examples)&&t.examples.length&&(i||(i=this.getInsertTextForGuessedValue(t.examples[0],\"\")),c+=t.examples.length),0===c){var l=Array.isArray(t.type)?t.type[0]:t.type;switch(l||(t.properties?l=\"object\":t.items&&(l=\"array\")),l){case\"boolean\":i=\"$1\";break;case\"string\":i='\"$1\"';break;case\"object\":i=\"{$1}\";break;case\"array\":i=\"[$1]\";break;case\"number\":case\"integer\":i=\"${1:0}\";break;case\"null\":i=\"${1:null}\";break;default:return o}}}return(!i||c>1)&&(i=\"$1\"),s+i+r},e.prototype.getCurrentWord=function(e,t){for(var n=t-1,r=e.getText();n>=0&&-1===' \\t\\n\\r\\v\":{[,]}'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)},e.prototype.evaluateSeparatorAfter=function(e,t){var n=r.createScanner(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return\"\";default:return\",\"}},e.prototype.findItemAtOffset=function(e,t,n){for(var o=r.createScanner(t.getText(),!0),i=e.items,a=i.length-1;a>=0;a--){var s=i[a];if(n>s.offset+s.length)return o.setPosition(s.offset+s.length),5===o.scan()&&n>=o.getTokenOffset()+o.getTokenLength()?a+1:a;if(n>=s.offset)return a}return 0},e.prototype.isInComment=function(e,t,n){var o=r.createScanner(e.getText(),!1);o.setPosition(t);for(var i=o.scan();17!==i&&o.getTokenOffset()+o.getTokenLength()<n;)i=o.scan();return(12===i||13===i)&&o.getTokenOffset()<=n},e.prototype.fromMarkup=function(e){if(e&&this.doesSupportMarkdown())return{kind:s.MarkupKind.Markdown,value:e}},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e.prototype.doesSupportsCommitCharacters=function(){if(!a.isDefined(this.supportsCommitCharacters)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsCommitCharacters=e&&e.completionItem&&!!e.completionItem.commitCharactersSupport}return this.supportsCommitCharacters},e}();t.JSONCompletion=u})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonHover\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../jsonLanguageTypes\"),o=function(){function e(e,t,n){void 0===t&&(t=[]),this.schemaService=e,this.contributions=t,this.promise=n||Promise}return e.prototype.doHover=function(e,t,o){var a=e.offsetAt(t),s=o.getNodeFromOffset(a);if(!s||(\"object\"===s.type||\"array\"===s.type)&&a>s.offset+1&&a<s.offset+s.length-1)return this.promise.resolve(null);var c=s;if(\"string\"===s.type){var u=s.parent;if(u&&\"property\"===u.type&&u.keyNode===s&&!(s=u.valueNode))return this.promise.resolve(null)}for(var l=r.Range.create(e.positionAt(c.offset),e.positionAt(c.offset+c.length)),f=function(e){return{contents:e,range:l}},d=n.getNodePath(s),p=this.contributions.length-1;p>=0;p--){var h=this.contributions[p].getInfoContribution(e.uri,d);if(h)return h.then((function(e){return f(e)}))}return this.schemaService.getSchemaForResource(e.uri,o).then((function(e){if(e){var t=o.getMatchingSchemas(e.schema,s.offset),r=null,a=null,c=null,u=null;t.every((function(e){if(e.node===s&&!e.inverted&&e.schema&&(r=r||e.schema.title,a=a||e.schema.markdownDescription||i(e.schema.description),e.schema.enum)){var t=e.schema.enum.indexOf(n.getNodeValue(s));e.schema.markdownEnumDescriptions?c=e.schema.markdownEnumDescriptions[t]:e.schema.enumDescriptions&&(c=i(e.schema.enumDescriptions[t])),c&&\"string\"!=typeof(u=e.schema.enum[t])&&(u=JSON.stringify(u))}return!0}));var l=\"\";return r&&(l=i(r)),a&&(l.length>0&&(l+=\"\\n\\n\"),l+=a),c&&(l.length>0&&(l+=\"\\n\\n\"),l+=\"`\"+function(e){if(-1!==e.indexOf(\"`\"))return\"`` \"+e+\" ``\";return e}(u)+\"`: \"+c),f([l])}return null}))},e}();function i(e){if(e)return e.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm,\"$1\\n\\n$3\").replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}t.JSONHover=o}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var o=navigator.userAgent;r=o.indexOf(\"Windows\")>=0}var i=/^\\w[\\w\\d+.-]*$/,a=/^\\//,s=/^\\/\\//;var c=\"/\",u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,l=function(){function e(e,t,n,r,o,u){void 0===u&&(u=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,u),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=o||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!a.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,u))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,o=e.query,i=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===o?o=this.query:null===o&&(o=\"\"),void 0===i?i=this.fragment:null===i&&(i=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&i===this.fragment?this:new d(t,n,r,o,i)},e.parse=function(e,t){void 0===t&&(t=!1);var n=u.exec(e);return n?new d(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new d(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,c)),e[0]===c&&e[1]===c){var n=e.indexOf(c,2);-1===n?(t=e.substring(2),e=c):(t=e.substring(2,n),e=e.substring(n)||c)}return new d(\"file\",t,e,\"\",\"\")},e.from=function(e){return new d(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),v(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new d(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}();t.URI=l;var f=r?1:void 0,d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(l),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function h(e,t){for(var n=void 0,r=-1,o=0;o<e.length;o++){var i=e.charCodeAt(o);if(i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||45===i||46===i||95===i||126===i||t&&47===i)-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var a=p[i];void 0!==a?(-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),n+=a):-1===r&&(r=o)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function v(e,t){var n=t?m:h,r=\"\",o=e.scheme,i=e.authority,a=e.path,s=e.query,u=e.fragment;if(o&&(r+=o,r+=\":\"),(i||\"file\"===o)&&(r+=c,r+=c),i){var l=i.indexOf(\"@\");if(-1!==l){var f=i.substr(0,l);i=i.substr(l+1),-1===(l=f.indexOf(\":\"))?r+=n(f,!1):(r+=n(f.substr(0,l),!1),r+=\":\",r+=n(f.substr(l+1),!1)),r+=\"@\"}-1===(l=(i=i.toLowerCase()).indexOf(\":\"))?r+=n(i,!1):(r+=n(i.substr(0,l),!1),r+=i.substr(l))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(d=a.charCodeAt(1))>=65&&d<=90&&(a=\"/\"+String.fromCharCode(d+32)+\":\"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var d;(d=a.charCodeAt(0))>=65&&d<=90&&(a=String.fromCharCode(d+32)+\":\"+a.substr(2))}r+=n(a,!0)}return s&&(r+=\"?\",r+=n(s,!1)),u&&(r+=\"#\",r+=t?u:h(u,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSchemaService\",[\"require\",\"exports\",\"jsonc-parser\",\"vscode-uri\",\"../utils/strings\",\"../parser/jsonParser\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"vscode-uri\"),o=e(\"../utils/strings\"),i=e(\"../parser/jsonParser\"),a=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(e){try{this.patternRegExp=new RegExp(o.convertSimple2RegExpPattern(e)+\"$\")}catch(e){this.patternRegExp=null}this.schemas=[]}return e.prototype.addSchema=function(e){this.schemas.push(e)},e.prototype.matchesPattern=function(e){return this.patternRegExp&&this.patternRegExp.test(e)},e.prototype.getSchemas=function(){return this.schemas},e}(),c=function(){function e(e,t,n){this.service=e,this.url=t,this.dependencies={},n&&(this.unresolvedSchema=this.service.promise.resolve(new u(n)))}return e.prototype.getUnresolvedSchema=function(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.url)),this.unresolvedSchema},e.prototype.getResolvedSchema=function(){var e=this;return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then((function(t){return e.service.resolveSchemaContent(t,e.url,e.dependencies)}))),this.resolvedSchema},e.prototype.clearSchema=function(){this.resolvedSchema=null,this.unresolvedSchema=null,this.dependencies={}},e}(),u=function(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t};t.UnresolvedSchema=u;var l=function(){function e(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t}return e.prototype.getSection=function(e){return i.asSchema(this.getSectionRecursive(e,this.schema))},e.prototype.getSectionRecursive=function(e,t){if(!t||\"boolean\"==typeof t||0===e.length)return t;var n=e.shift();if(t.properties&&(t.properties[n],1))return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(var r=0,o=Object.keys(t.patternProperties);r<o.length;r++){var i=o[r];if(new RegExp(i).test(n))return this.getSectionRecursive(e,t.patternProperties[i])}else{if(\"object\"==typeof t.additionalProperties)return this.getSectionRecursive(e,t.additionalProperties);if(n.match(\"[0-9]+\"))if(Array.isArray(t.items)){var a=parseInt(n,10);if(!isNaN(a)&&t.items[a])return this.getSectionRecursive(e,t.items[a])}else if(t.items)return this.getSectionRecursive(e,t.items)}return null},e}();t.ResolvedSchema=l;var f=function(){function e(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations={},this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={}}return e.prototype.getRegisteredSchemaIds=function(e){return Object.keys(this.registeredSchemasIds).filter((function(t){var n=r.URI.parse(t).scheme;return\"schemaservice\"!==n&&(!e||e(n))}))},Object.defineProperty(e.prototype,\"promise\",{get:function(){return this.promiseConstructor},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()},e.prototype.onResourceChange=function(e){for(var t=this,n=!1,r=[e=this.normalizeId(e)],o=Object.keys(this.schemasById).map((function(e){return t.schemasById[e]}));r.length;)for(var i=r.pop(),a=0;a<o.length;a++){var s=o[a];s&&(s.url===i||s.dependencies[i])&&(s.url!==i&&r.push(s.url),s.clearSchema(),o[a]=void 0,n=!0)}return n},e.prototype.normalizeId=function(e){try{return r.URI.parse(e).toString()}catch(t){return e}},e.prototype.setSchemaContributions=function(e){if(e.schemas){var t=e.schemas;for(var n in t){var r=this.normalizeId(n);this.contributionSchemas[r]=this.addSchemaHandle(r,t[n])}}if(e.schemaAssociations){var o=e.schemaAssociations;for(var i in o){var a=o[i];this.contributionAssociations[i]=a;for(var s=this.getOrAddFilePatternAssociation(i),c=0,u=a;c<u.length;c++){var l=u[c];n=this.normalizeId(l);s.addSchema(n)}}}},e.prototype.addSchemaHandle=function(e,t){var n=new c(this,e,t);return this.schemasById[e]=n,n},e.prototype.getOrAddSchemaHandle=function(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)},e.prototype.getOrAddFilePatternAssociation=function(e){var t=this.filePatternAssociationById[e];return t||(t=new s(e),this.filePatternAssociationById[e]=t,this.filePatternAssociations.push(t)),t},e.prototype.registerExternalSchema=function(e,t,n){void 0===t&&(t=null);var r=this.normalizeId(e);if(this.registeredSchemasIds[r]=!0,t)for(var o=0,i=t;o<i.length;o++){var a=i[o];this.getOrAddFilePatternAssociation(a).addSchema(r)}return n?this.addSchemaHandle(r,n):this.getOrAddSchemaHandle(r)},e.prototype.clearExternalSchemas=function(){for(var e in this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={},this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(var t in this.contributionAssociations)for(var n=this.getOrAddFilePatternAssociation(t),r=0,o=this.contributionAssociations[t];r<o.length;r++){var i=o[r];e=this.normalizeId(i);n.addSchema(e)}},e.prototype.getResolvedSchema=function(e){var t=this.normalizeId(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(null)},e.prototype.loadSchema=function(e){if(!this.requestService){var t=a(\"json.schema.norequestservice\",\"Unable to load schema from '{0}'. No schema request service available\",d(e));return this.promise.resolve(new u({},[t]))}return this.requestService(e).then((function(t){if(!t){var r=a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': No content.\",d(e));return new u({},[r])}var o,i=[];o=n.parse(t,i);var s=i.length?[a(\"json.schema.invalidFormat\",\"Unable to parse content from '{0}': Parse error at offset {1}.\",d(e),i[0].offset)]:[];return new u(o,s)}),(function(t){var n=t.toString(),r=t.toString().split(\"Error: \");return r.length>1&&(n=r[1]),o.endsWith(n,\".\")&&(n=n.substr(0,n.length-1)),new u({},[a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': {1}.\",d(e),n)])}))},e.prototype.resolveSchemaContent=function(e,t,n){var r=this,o=e.errors.slice(0),i=e.schema;if(i.$schema){var s=this.normalizeId(i.$schema);if(\"http://json-schema.org/draft-03/schema\"===s)return this.promise.resolve(new l({},[a(\"json.schema.draft03.notsupported\",\"Draft-03 schemas are not supported.\")]));\"https://json-schema.org/draft/2019-09/schema\"===s&&e.errors.push(a(\"json.schema.draft201909.notsupported\",\"Draft 2019-09 schemas are not yet fully supported.\"))}var c=this.contextService,u=function(e,t,n,r){var i=function(e,t){if(!t)return e;var n=e;return\"/\"===t[0]&&(t=t.substr(1)),t.split(\"/\").some((function(e){return!(n=n[e])})),n}(t,r);if(i)for(var s in i)i.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(e[s]=i[s]);else o.push(a(\"json.schema.invalidref\",\"$ref '{0}' in '{1}' can not be resolved.\",r,n))},f=function(e,t,n,i,s){c&&!/^\\w+:\\/\\/.*/.test(t)&&(t=c.resolveRelativePath(t,i)),t=r.normalizeId(t);var l=r.getOrAddSchemaHandle(t);return l.getUnresolvedSchema().then((function(r){if(s[t]=!0,r.errors.length){var i=n?t+\"#\"+n:t;o.push(a(\"json.schema.problemloadingref\",\"Problems loading reference '{0}': {1}\",i,r.errors[0]))}return u(e,r.schema,t,n),d(e,r.schema,t,l.dependencies)}))},d=function(e,t,n,o){if(!e||\"object\"!=typeof e)return Promise.resolve(null);for(var i=[e],a=[],s=[],c=function(e){for(var r=[];e.$ref;){var a=e.$ref,c=a.split(\"#\",2);if(delete e.$ref,c[0].length>0)return void s.push(f(e,c[0],c[1],n,o));-1===r.indexOf(a)&&(u(e,t,n,c[1]),r.push(a))}!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];\"object\"==typeof o&&i.push(o)}}(e.items,e.additionalProperties,e.not,e.contains,e.propertyNames,e.if,e.then,e.else),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(\"object\"==typeof o)for(var a in o){var s=o[a];\"object\"==typeof s&&i.push(s)}}}(e.definitions,e.properties,e.patternProperties,e.dependencies),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(Array.isArray(o))for(var a=0,s=o;a<s.length;a++){var c=s[a];\"object\"==typeof c&&i.push(c)}}}(e.anyOf,e.allOf,e.oneOf,e.items)};i.length;){var l=i.pop();a.indexOf(l)>=0||(a.push(l),c(l))}return r.promise.all(s)};return d(i,i,t,n).then((function(e){return new l(i,o)}))},e.prototype.getSchemaForResource=function(e,t){if(t&&t.root&&\"object\"===t.root.type){var n=t.root.properties.filter((function(e){return\"$schema\"===e.keyNode.value&&e.valueNode&&\"string\"===e.valueNode.type}));if(n.length>0){var r=i.getNodeValue(n[0].valueNode);if(r&&o.startsWith(r,\".\")&&this.contextService&&(r=this.contextService.resolveRelativePath(r,e)),r){var a=this.normalizeId(r);return this.getOrAddSchemaHandle(a).getResolvedSchema()}}}for(var s=Object.create(null),c=[],u=0,l=this.filePatternAssociations;u<l.length;u++){var f=l[u];if(f.matchesPattern(e))for(var d=0,p=f.getSchemas();d<p.length;d++){var h=p[d];s[h]||(c.push(h),s[h]=!0)}}return c.length>0?this.createCombinedSchema(e,c).getResolvedSchema():this.promise.resolve(null)},e.prototype.createCombinedSchema=function(e,t){if(1===t.length)return this.getOrAddSchemaHandle(t[0]);var n=\"schemaservice://combinedSchema/\"+encodeURIComponent(e),r={allOf:t.map((function(e){return{$ref:e}}))};return this.addSchemaHandle(n,r)},e}();function d(e){try{var t=r.URI.parse(e);if(\"file\"===t.scheme)return t.fsPath}catch(e){}return e}t.JSONSchemaService=f})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonValidation\",[\"require\",\"exports\",\"./jsonSchemaService\",\"../jsonLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./jsonSchemaService\"),r=e(\"../jsonLanguageTypes\"),o=e(\"vscode-nls\"),i=e(\"../utils/objects\"),a=o.loadMessageBundle(),s=function(){function e(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}return e.prototype.configure=function(e){e&&(this.validationEnabled=e.validate,this.commentSeverity=e.allowComments?void 0:r.DiagnosticSeverity.Error)},e.prototype.doValidation=function(e,t,o,s){var l=this;if(!this.validationEnabled)return this.promise.resolve([]);var f=[],d={},p=function(e){var t=e.range.start.line+\" \"+e.range.start.character+\" \"+e.message;d[t]||(d[t]=!0,f.push(e))},h=function(n){var s=o?u(o.trailingCommas):r.DiagnosticSeverity.Error,c=o?u(o.comments):l.commentSeverity;if(n){if(n.errors.length&&t.root){var d=t.root,h=\"object\"===d.type?d.properties[0]:null;if(h&&\"$schema\"===h.keyNode.value){var m=h.valueNode||h,g=r.Range.create(e.positionAt(m.offset),e.positionAt(m.offset+m.length));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}else{g=r.Range.create(e.positionAt(d.offset),e.positionAt(d.offset+1));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}}else{var v=t.validate(e,n.schema);v&&v.forEach(p)}(function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowComments))return t.allowComments;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return})(n.schema)&&(c=void 0),function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowTrailingCommas))return t.allowTrailingCommas;if(i.isBoolean(t.allowsTrailingCommas))return t.allowsTrailingCommas;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return}(n.schema)&&(s=void 0)}for(var y=0,b=t.syntaxErrors;y<b.length;y++){var x=b[y];if(x.code===r.ErrorCode.TrailingComma){if(\"number\"!=typeof s)continue;x.severity=s}p(x)}if(\"number\"==typeof c){var S=a(\"InvalidCommentToken\",\"Comments are not permitted in JSON.\");t.comments.forEach((function(e){p(r.Diagnostic.create(e,S,c,r.ErrorCode.CommentNotPermitted))}))}return f};if(s){var m=s.id||\"schemaservice://untitled/\"+c++;return this.jsonSchemaService.resolveSchemaContent(new n.UnresolvedSchema(s),m,{}).then((function(e){return h(e)}))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then((function(e){return h(e)}))},e}();t.JSONValidation=s;var c=0;function u(e){switch(e){case\"error\":return r.DiagnosticSeverity.Error;case\"warning\":return r.DiagnosticSeverity.Warning;case\"ignore\":return}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/colors\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});function n(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}t.hexDigit=n,t.colorFromHex=function(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:17*n(e.charCodeAt(4))/255};case 7:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:(16*n(e.charCodeAt(7))+n(e.charCodeAt(8)))/255}}return null},t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonDocumentSymbols\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../utils/strings\",\"../utils/colors\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../utils/strings\"),o=e(\"../utils/colors\"),i=e(\"../jsonLanguageTypes\"),a=function(){function e(e){this.schemaService=e}return e.prototype.findDocumentSymbols=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,l=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===l||r.endsWith(l.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var f=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=i.Location.create(e.uri,s(e,h));if(f.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,location:y}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),f}}}return f}for(var b=[{node:c,containerName:\"\"}],x=0,S=!1,C=[],k=function(t,n){\"array\"===t.type?t.items.forEach((function(e){e&&b.push({node:e,containerName:n})})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=i.Location.create(e.uri,s(e,t)),c=n?n+\".\"+t.keyNode.value:t.keyNode.value;C.push({name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),location:o,containerName:n}),b.push({node:r,containerName:c})}else S=!0}))};x<b.length;){var T=b[x++];k(T.node,T.containerName)}return S&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),C},e.prototype.findDocumentSymbols2=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,l=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===l||r.endsWith(l.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var f=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=s(e,h),b=s(e,v.keyNode);if(f.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,range:y,selectionRange:b}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),f}}}return f}for(var x=[],S=[{node:c,result:x}],C=0,k=!1,T=function(t,n){\"array\"===t.type?t.items.forEach((function(t,r){if(t)if(u>0){u--;var o=s(e,t),i=o,c={name:String(r),kind:a.getSymbolKind(t.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:t})}else k=!0})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=s(e,t),i=s(e,t.keyNode),c={name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:r})}else k=!0}))};C<S.length;){var j=S[C++];T(j.node,j.result)}return k&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(l),x},e.prototype.getSymbolKind=function(e){switch(e){case\"object\":return i.SymbolKind.Module;case\"string\":return i.SymbolKind.String;case\"number\":return i.SymbolKind.Number;case\"array\":return i.SymbolKind.Array;case\"boolean\":return i.SymbolKind.Boolean;default:return i.SymbolKind.Variable}},e.prototype.getKeyLabel=function(e){var t=e.keyNode.value;return t&&(t=t.replace(/[\\n]/g,\"↵\")),t&&t.trim()?t:'\"'+t+'\"'},e.prototype.findDocumentColors=function(e,t,r){return this.schemaService.getSchemaForResource(e.uri,t).then((function(i){var a=[];if(i)for(var c=r&&\"number\"==typeof r.resultLimit?r.resultLimit:Number.MAX_VALUE,u={},l=0,f=t.getMatchingSchemas(i.schema);l<f.length;l++){var d=f[l];if(!d.inverted&&d.schema&&(\"color\"===d.schema.format||\"color-hex\"===d.schema.format)&&d.node&&\"string\"===d.node.type){var p=String(d.node.offset);if(!u[p]){var h=o.colorFromHex(n.getNodeValue(d.node));if(h){var m=s(e,d.node);a.push({color:h,range:m})}if(u[p]=!0,--c<=0)return r&&r.onResultLimitExceeded&&r.onResultLimitExceeded(e.uri),a}}}return a}))},e.prototype.getColorPresentations=function(e,t,n,r){var o,a=[],s=Math.round(255*n.red),c=Math.round(255*n.green),u=Math.round(255*n.blue);function l(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}return o=1===n.alpha?\"#\"+l(s)+l(c)+l(u):\"#\"+l(s)+l(c)+l(u)+l(Math.round(255*n.alpha)),a.push({label:o,textEdit:i.TextEdit.replace(r,JSON.stringify(o))}),a},e}();function s(e,t){return i.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length))}t.JSONDocumentSymbols=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/configuration\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle();t.schemaContributions={schemaAssociations:{},schemas:{\"http://json-schema.org/draft-04/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),$schema:\"http://json-schema.org/draft-04/schema#\",definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},positiveInteger:{type:\"integer\",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:\"#/definitions/positiveInteger\"},{default:0}]},simpleTypes:{type:\"string\",enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},minItems:1,uniqueItems:!0}},type:\"object\",properties:{id:{type:\"string\",format:\"uri\"},$schema:{type:\"string\",format:\"uri\"},title:{type:\"string\"},description:{type:\"string\"},default:{},multipleOf:{type:\"number\",minimum:0,exclusiveMinimum:!0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"boolean\",default:!1},minimum:{type:\"number\"},exclusiveMinimum:{type:\"boolean\",default:!1},maxLength:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minLength:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},pattern:{type:\"string\",format:\"regex\"},additionalItems:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:{}},maxItems:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minItems:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},uniqueItems:{type:\"boolean\",default:!1},maxProperties:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minProperties:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},required:{allOf:[{$ref:\"#/definitions/stringArray\"}]},additionalProperties:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},enum:{type:\"array\",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:\"string\",enum:[\"date-time\",\"uri\",\"email\",\"hostname\",\"ipv4\",\"ipv6\",\"regex\"]},{type:\"string\"}]},allOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},anyOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},oneOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},not:{allOf:[{$ref:\"#\"}]}},dependencies:{exclusiveMaximum:[\"maximum\"],exclusiveMinimum:[\"minimum\"]},default:{}},\"http://json-schema.org/draft-07/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:\"#/definitions/nonNegativeInteger\"},{default:0}]},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}},type:[\"object\",\"boolean\"],properties:{$id:{type:\"string\",format:\"uri-reference\"},$schema:{type:\"string\",format:\"uri\"},$ref:{type:\"string\",format:\"uri-reference\"},$comment:{type:\"string\"},title:{type:\"string\"},description:{type:\"string\"},default:!0,readOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/definitions/nonNegativeInteger\"},minLength:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},additionalItems:{$ref:\"#\"},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:!0},maxItems:{$ref:\"#/definitions/nonNegativeInteger\"},minItems:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},contains:{$ref:\"#\"},maxProperties:{$ref:\"#/definitions/nonNegativeInteger\"},minProperties:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},required:{$ref:\"#/definitions/stringArray\"},additionalProperties:{$ref:\"#\"},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},propertyNames:{format:\"regex\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},propertyNames:{$ref:\"#\"},const:!0,enum:{type:\"array\",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{type:\"string\"},contentMediaType:{type:\"string\"},contentEncoding:{type:\"string\"},if:{$ref:\"#\"},then:{$ref:\"#\"},else:{$ref:\"#\"},allOf:{$ref:\"#/definitions/schemaArray\"},anyOf:{$ref:\"#/definitions/schemaArray\"},oneOf:{$ref:\"#/definitions/schemaArray\"},not:{$ref:\"#\"}},default:!0}}};var r={id:n(\"schema.json.id\",\"A unique identifier for the schema.\"),$schema:n(\"schema.json.$schema\",\"The schema to verify this document against.\"),title:n(\"schema.json.title\",\"A descriptive title of the element.\"),description:n(\"schema.json.description\",\"A long description of the element. Used in hover menus and suggestions.\"),default:n(\"schema.json.default\",\"A default value. Used by suggestions.\"),multipleOf:n(\"schema.json.multipleOf\",\"A number that should cleanly divide the current value (i.e. have no remainder).\"),maximum:n(\"schema.json.maximum\",\"The maximum numerical value, inclusive by default.\"),exclusiveMaximum:n(\"schema.json.exclusiveMaximum\",\"Makes the maximum property exclusive.\"),minimum:n(\"schema.json.minimum\",\"The minimum numerical value, inclusive by default.\"),exclusiveMinimum:n(\"schema.json.exclusiveMininum\",\"Makes the minimum property exclusive.\"),maxLength:n(\"schema.json.maxLength\",\"The maximum length of a string.\"),minLength:n(\"schema.json.minLength\",\"The minimum length of a string.\"),pattern:n(\"schema.json.pattern\",\"A regular expression to match the string against. It is not implicitly anchored.\"),additionalItems:n(\"schema.json.additionalItems\",\"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),items:n(\"schema.json.items\",\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),maxItems:n(\"schema.json.maxItems\",\"The maximum number of items that can be inside an array. Inclusive.\"),minItems:n(\"schema.json.minItems\",\"The minimum number of items that can be inside an array. Inclusive.\"),uniqueItems:n(\"schema.json.uniqueItems\",\"If all of the items in the array must be unique. Defaults to false.\"),maxProperties:n(\"schema.json.maxProperties\",\"The maximum number of properties an object can have. Inclusive.\"),minProperties:n(\"schema.json.minProperties\",\"The minimum number of properties an object can have. Inclusive.\"),required:n(\"schema.json.required\",\"An array of strings that lists the names of all properties required on this object.\"),additionalProperties:n(\"schema.json.additionalProperties\",\"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),definitions:n(\"schema.json.definitions\",\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),properties:n(\"schema.json.properties\",\"A map of property names to schemas for each property.\"),patternProperties:n(\"schema.json.patternProperties\",\"A map of regular expressions on property names to schemas for matching properties.\"),dependencies:n(\"schema.json.dependencies\",\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),enum:n(\"schema.json.enum\",\"The set of literal values that are valid.\"),type:n(\"schema.json.type\",\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),format:n(\"schema.json.format\",\"Describes the format expected for the value.\"),allOf:n(\"schema.json.allOf\",\"An array of schemas, all of which must match.\"),anyOf:n(\"schema.json.anyOf\",\"An array of schemas, where at least one must match.\"),oneOf:n(\"schema.json.oneOf\",\"An array of schemas, exactly one of which must match.\"),not:n(\"schema.json.not\",\"A schema which must not match.\"),$id:n(\"schema.json.$id\",\"A unique identifier for the schema.\"),$ref:n(\"schema.json.$ref\",\"Reference a definition hosted on any location.\"),$comment:n(\"schema.json.$comment\",\"Comments from schema authors to readers or maintainers of the schema.\"),readOnly:n(\"schema.json.readOnly\",\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),examples:n(\"schema.json.examples\",\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),contains:n(\"schema.json.contains\",'An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema.'),propertyNames:n(\"schema.json.propertyNames\",\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),const:n(\"schema.json.const\",\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),contentMediaType:n(\"schema.json.contentMediaType\",\"Describes the media type of a string property.\"),contentEncoding:n(\"schema.json.contentEncoding\",\"Describes the content encoding of a string property.\"),if:n(\"schema.json.if\",'The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated.'),then:n(\"schema.json.then\",'The \"if\" subschema is used for validation when the \"if\" subschema succeeds.'),else:n(\"schema.json.else\",'The \"else\" subschema is used for validation when the \"if\" subschema fails.')};for(var o in t.schemaContributions.schemas){var i=t.schemaContributions.schemas[o];for(var a in i.properties){var s=i.properties[a];!0===s&&(s=i.properties[a]={});var c=r[a];c?s.description=c:console.log(a+\": localize('schema.json.\"+a+'\\', \"\")')}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonFolding\",[\"require\",\"exports\",\"jsonc-parser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../jsonLanguageTypes\");t.getFoldingRanges=function(e,t){var o=[],i=[],a=[],s=-1,c=n.createScanner(e.getText(),!1),u=c.scan();function l(e){o.push(e),i.push(a.length)}for(;17!==u;){switch(u){case 1:case 3:var f={startLine:h=e.positionAt(c.getTokenOffset()).line,endLine:h,kind:1===u?\"object\":\"array\"};a.push(f);break;case 2:case 4:var d=2===u?\"object\":\"array\";if(a.length>0&&a[a.length-1].kind===d){f=a.pop();var p=e.positionAt(c.getTokenOffset()).line;f&&p>f.startLine+1&&s!==f.startLine&&(f.endLine=p-1,l(f),s=f.startLine)}break;case 13:var h=e.positionAt(c.getTokenOffset()).line,m=e.positionAt(c.getTokenOffset()+c.getTokenLength()).line;1===c.getTokenError()&&h+1<e.lineCount?c.setPosition(e.offsetAt(r.Position.create(h+1,0))):h<m&&(l({startLine:h,endLine:m,kind:r.FoldingRangeKind.Comment}),s=h);break;case 12:var g=e.getText().substr(c.getTokenOffset(),c.getTokenLength()).match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);if(g){p=e.positionAt(c.getTokenOffset()).line;if(g[1]){f={startLine:p,endLine:p,kind:r.FoldingRangeKind.Region};a.push(f)}else{for(var v=a.length-1;v>=0&&a[v].kind!==r.FoldingRangeKind.Region;)v--;if(v>=0){f=a[v];a.length=v,p>f.startLine&&s!==f.startLine&&(f.endLine=p,l(f),s=f.startLine)}}}}u=c.scan()}var y=t&&t.rangeLimit;if(\"number\"!=typeof y||o.length<=y)return o;t&&t.onRangeLimitExceeded&&t.onRangeLimitExceeded(e.uri);for(var b=[],x=0,S=i;x<S.length;x++){(E=S[x])<30&&(b[E]=(b[E]||0)+1)}var C=0,k=0;for(v=0;v<b.length;v++){var T=b[v];if(T){if(T+C>y){k=v;break}C+=T}}var j=[];for(v=0;v<o.length;v++){var E;\"number\"==typeof(E=i[v])&&(E<k||E===k&&C++<y)&&j.push(o[v])}return j}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSelectionRanges\",[\"require\",\"exports\",\"../jsonLanguageTypes\",\"jsonc-parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../jsonLanguageTypes\"),r=e(\"jsonc-parser\");t.getSelectionRanges=function(e,t,o){function i(t,r){return n.Range.create(e.positionAt(t),e.positionAt(r))}var a=r.createScanner(e.getText(),!0);function s(e,t){return a.setPosition(e),a.scan()===t?a.getTokenOffset()+a.getTokenLength():-1}return t.map((function(t){for(var r=e.offsetAt(t),a=o.getNodeFromOffset(r,!0),c=[];a;){switch(a.type){case\"string\":case\"object\":case\"array\":var u=a.offset+1,l=a.offset+a.length-1;u<l&&r>=u&&r<=l&&c.push(i(u,l)),c.push(i(a.offset,a.offset+a.length));break;case\"number\":case\"boolean\":case\"null\":case\"property\":c.push(i(a.offset,a.offset+a.length))}if(\"property\"===a.type||a.parent&&\"array\"===a.parent.type){var f=s(a.offset+a.length,5);-1!==f&&c.push(i(a.offset,f))}a=a.parent}for(var d=void 0,p=c.length-1;p>=0;p--)d=n.SelectionRange.create(c[p],d);return d||(d=n.SelectionRange.create(n.Range.create(t,t))),d}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageService\",[\"require\",\"exports\",\"./services/jsonCompletion\",\"./services/jsonHover\",\"./services/jsonValidation\",\"./services/jsonDocumentSymbols\",\"./parser/jsonParser\",\"./services/configuration\",\"./services/jsonSchemaService\",\"./services/jsonFolding\",\"./services/jsonSelectionRanges\",\"jsonc-parser\",\"./jsonLanguageTypes\",\"./jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./services/jsonCompletion\"),r=e(\"./services/jsonHover\"),o=e(\"./services/jsonValidation\"),i=e(\"./services/jsonDocumentSymbols\"),a=e(\"./parser/jsonParser\"),s=e(\"./services/configuration\"),c=e(\"./services/jsonSchemaService\"),u=e(\"./services/jsonFolding\"),l=e(\"./services/jsonSelectionRanges\"),f=e(\"jsonc-parser\"),d=e(\"./jsonLanguageTypes\");!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./jsonLanguageTypes\")),t.getLanguageService=function(e){var t=e.promiseConstructor||Promise,p=new c.JSONSchemaService(e.schemaRequestService,e.workspaceContext,t);p.setSchemaContributions(s.schemaContributions);var h=new n.JSONCompletion(p,e.contributions,t,e.clientCapabilities),m=new r.JSONHover(p,e.contributions,t),g=new i.JSONDocumentSymbols(p),v=new o.JSONValidation(p,t);return{configure:function(e){p.clearExternalSchemas(),e.schemas&&e.schemas.forEach((function(e){p.registerExternalSchema(e.uri,e.fileMatch,e.schema)})),v.configure(e)},resetSchema:function(e){return p.onResourceChange(e)},doValidation:v.doValidation.bind(v),parseJSONDocument:function(e){return a.parse(e,{collectComments:!0})},newJSONDocument:function(e,t){return a.newJSONDocument(e,t)},doResolve:h.doResolve.bind(h),doComplete:h.doComplete.bind(h),findDocumentSymbols:g.findDocumentSymbols.bind(g),findDocumentSymbols2:g.findDocumentSymbols2.bind(g),findColorSymbols:function(e,t){return g.findDocumentColors(e,t).then((function(e){return e.map((function(e){return e.range}))}))},findDocumentColors:g.findDocumentColors.bind(g),getColorPresentations:g.getColorPresentations.bind(g),doHover:m.doHover.bind(m),getFoldingRanges:u.getFoldingRanges,getSelectionRanges:l.getSelectionRanges,format:function(e,t,n){var r=void 0;if(t){var o=e.offsetAt(t.start);r={offset:o,length:e.offsetAt(t.end)-o}}var i={tabSize:n?n.tabSize:4,insertSpaces:!n||n.insertSpaces,eol:\"\\n\"};return f.format(e.getText(),r,i).map((function(t){return d.TextEdit.replace(d.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length)),t.content)}))}}}})),define(\"vscode-json-languageservice\",[\"vscode-json-languageservice/jsonLanguageService\"],(function(e){return e})),define(\"vs/language/json/languageFeatures\",[\"require\",\"exports\",\"vscode-json-languageservice\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});monaco.Uri;var r=monaco.Range,o=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var o=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},i=function(e){monaco.editor.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(monaco.editor.onDidCreateModel(o)),this._disposables.push(monaco.editor.onWillDisposeModel((function(e){i(e),r._resetSchema(e.uri)}))),this._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){i(e.model),o(e.model),r._resetSchema(e.model.uri)}))),this._disposables.push(n.onDidChange((function(e){monaco.editor.getModels().forEach((function(e){e.getModeId()===r._languageId&&(i(e),o(e))}))}))),this._disposables.push({dispose:function(){for(var e in monaco.editor.getModels().forEach(i),r._listener)r._listener[e].dispose()}}),monaco.editor.getModels().forEach(o)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._resetSchema=function(e){this._worker().then((function(t){t.resetSchema(e.toString())}))},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var r=n.map((function(e){return n=\"number\"==typeof(t=e).code?String(t.code):t.code,{severity:i(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source};var t,n})),o=monaco.editor.getModel(e);o&&o.getModeId()===t&&monaco.editor.setModelMarkers(o,t,r)}))})).then(void 0,(function(e){console.error(e)}))},e}();function i(e){switch(e){case n.DiagnosticSeverity.Error:return monaco.MarkerSeverity.Error;case n.DiagnosticSeverity.Warning:return monaco.MarkerSeverity.Warning;case n.DiagnosticSeverity.Information:return monaco.MarkerSeverity.Info;case n.DiagnosticSeverity.Hint:return monaco.MarkerSeverity.Hint;default:return monaco.MarkerSeverity.Info}}function a(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function s(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function c(e){if(e)return new r(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function u(e){var t=monaco.languages.CompletionItemKind;switch(e){case n.CompletionItemKind.Text:return t.Text;case n.CompletionItemKind.Method:return t.Method;case n.CompletionItemKind.Function:return t.Function;case n.CompletionItemKind.Constructor:return t.Constructor;case n.CompletionItemKind.Field:return t.Field;case n.CompletionItemKind.Variable:return t.Variable;case n.CompletionItemKind.Class:return t.Class;case n.CompletionItemKind.Interface:return t.Interface;case n.CompletionItemKind.Module:return t.Module;case n.CompletionItemKind.Property:return t.Property;case n.CompletionItemKind.Unit:return t.Unit;case n.CompletionItemKind.Value:return t.Value;case n.CompletionItemKind.Enum:return t.Enum;case n.CompletionItemKind.Keyword:return t.Keyword;case n.CompletionItemKind.Snippet:return t.Snippet;case n.CompletionItemKind.Color:return t.Color;case n.CompletionItemKind.File:return t.File;case n.CompletionItemKind.Reference:return t.Reference}return t.Property}function l(e){if(e)return{range:c(e.range),text:e.newText}}t.DiagnosticsAdapter=o;var f=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,\"triggerCharacters\",{get:function(){return[\" \",\":\"]},enumerable:!0,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,o,i){var s=e.uri;return this._worker(s).then((function(e){return e.doComplete(s.toString(),a(t))})).then((function(o){if(o){var i=e.getWordUntilPosition(t),a=new r(t.lineNumber,i.startColumn,t.lineNumber,i.endColumn),s=o.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:a,kind:u(e.kind)};return e.textEdit&&(t.range=c(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(l)),e.insertTextFormat===n.InsertTextFormat.Snippet&&(t.insertTextRules=monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:o.isIncomplete,suggestions:s}}}))},e}();function d(e){return\"string\"==typeof e?{value:e}:(t=e)&&\"object\"==typeof t&&\"string\"==typeof t.kind?\"plaintext\"===e.kind?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+\"\\n\"+e.value+\"\\n```\\n\"};var t}function p(e){if(e)return Array.isArray(e)?e.map(d):[d(e)]}t.CompletionAdapter=f;var h=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),a(t))})).then((function(e){if(e)return{range:c(e.range),contents:p(e.contents)}}))},e}();function m(e){var t=monaco.languages.SymbolKind;switch(e){case n.SymbolKind.File:return t.Array;case n.SymbolKind.Module:return t.Module;case n.SymbolKind.Namespace:return t.Namespace;case n.SymbolKind.Package:return t.Package;case n.SymbolKind.Class:return t.Class;case n.SymbolKind.Method:return t.Method;case n.SymbolKind.Property:return t.Property;case n.SymbolKind.Field:return t.Field;case n.SymbolKind.Constructor:return t.Constructor;case n.SymbolKind.Enum:return t.Enum;case n.SymbolKind.Interface:return t.Interface;case n.SymbolKind.Function:return t.Function;case n.SymbolKind.Variable:return t.Variable;case n.SymbolKind.Constant:return t.Constant;case n.SymbolKind.String:return t.String;case n.SymbolKind.Number:return t.Number;case n.SymbolKind.Boolean:return t.Boolean;case n.SymbolKind.Array:return t.Array}return t.Function}t.HoverAdapter=h;var g=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:\"\",containerName:e.containerName,kind:m(e.kind),range:c(e.location.range),selectionRange:c(e.location.range),tags:[]}}))}))},e}();function v(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}t.DocumentSymbolAdapter=g;var y=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),null,v(t)).then((function(e){if(e&&0!==e.length)return e.map(l)}))}))},e}();t.DocumentFormattingEditProvider=y;var b=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){var o=e.uri;return this._worker(o).then((function(e){return e.format(o.toString(),s(t),v(n)).then((function(e){if(e&&0!==e.length)return e.map(l)}))}))},e}();t.DocumentRangeFormattingEditProvider=b;var x=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:c(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,s(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=l(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(l)),t}))}))},e}();t.DocumentColorAdapter=x;var S=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,r){var o=e.uri;return this._worker(o).then((function(e){return e.getFoldingRanges(o.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case n.FoldingRangeKind.Comment:return monaco.languages.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return monaco.languages.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return monaco.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))},e}();t.FoldingRangeAdapter=S;var C=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(a))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:c(e.range)}),e=e.parent;return t}))}))},e}();t.SelectionRangeAdapter=C})),define(\"vs/language/json/tokenization\",[\"require\",\"exports\",\"jsonc-parser\"],(function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.createTokenizationSupport=function(e){return{getInitialState:function(){return new r(null,null,!1)},tokenize:function(o,i,a,s){return function(e,o,i,a,s){void 0===a&&(a=0);var c=0,u=!1;switch(i.scanError){case 2:o='\"'+o,c=1;break;case 1:o=\"/*\"+o,c=2}var l,f,d=n.createScanner(o),p=i.lastWasColon;f={tokens:[],endState:i.clone()};for(;;){var h=a+d.getPosition(),m=\"\";if(17===(l=d.scan()))break;if(h===a+d.getPosition())throw new Error(\"Scanner did not advance, next 3 characters are: \"+o.substr(d.getPosition(),3));switch(u&&(h-=c),u=c>0,l){case 1:case 2:m=t.TOKEN_DELIM_OBJECT,p=!1;break;case 3:case 4:m=t.TOKEN_DELIM_ARRAY,p=!1;break;case 6:m=t.TOKEN_DELIM_COLON,p=!0;break;case 5:m=t.TOKEN_DELIM_COMMA,p=!1;break;case 8:case 9:m=t.TOKEN_VALUE_BOOLEAN,p=!1;break;case 7:m=t.TOKEN_VALUE_NULL,p=!1;break;case 10:m=p?t.TOKEN_VALUE_STRING:t.TOKEN_PROPERTY_NAME,p=!1;break;case 11:m=t.TOKEN_VALUE_NUMBER,p=!1}if(e)switch(l){case 12:m=t.TOKEN_COMMENT_LINE;break;case 13:m=t.TOKEN_COMMENT_BLOCK}f.endState=new r(i.getStateData(),d.getTokenError(),p),f.tokens.push({startIndex:h,scopes:m})}return f}(e,o,i,a)}}},t.TOKEN_DELIM_OBJECT=\"delimiter.bracket.json\",t.TOKEN_DELIM_ARRAY=\"delimiter.array.json\",t.TOKEN_DELIM_COLON=\"delimiter.colon.json\",t.TOKEN_DELIM_COMMA=\"delimiter.comma.json\",t.TOKEN_VALUE_BOOLEAN=\"keyword.json\",t.TOKEN_VALUE_NULL=\"keyword.json\",t.TOKEN_VALUE_STRING=\"string.value.json\",t.TOKEN_VALUE_NUMBER=\"number.json\",t.TOKEN_PROPERTY_NAME=\"string.key.json\",t.TOKEN_COMMENT_BLOCK=\"comment.block.json\",t.TOKEN_COMMENT_LINE=\"comment.line.json\";var r=function(){function e(e,t,n){this._state=e,this.scanError=t,this.lastWasColon=n}return e.prototype.clone=function(){return new e(this._state,this.scanError,this.lastWasColon)},e.prototype.equals=function(t){return t===this||!!(t&&t instanceof e)&&(this.scanError===t.scanError&&this.lastWasColon===t.lastWasColon)},e.prototype.getStateData=function(){return this._state},e.prototype.setStateData=function(e){this._state=e},e}()})),define(\"vs/language/json/jsonMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\",\"./tokenization\"],(function(e,t,n,r,o){\"use strict\";function i(e){return{dispose:function(){return a(e)}}}function a(e){for(;e.length;)e.pop().dispose()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupMode=function(e){var t=[],c=[],u=new n.WorkerManager(e);t.push(u);var l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.getLanguageServiceWorker.apply(u,e)};function f(){var t=e.languageId,n=e.modeConfiguration;a(c),n.documentFormattingEdits&&c.push(monaco.languages.registerDocumentFormattingEditProvider(t,new r.DocumentFormattingEditProvider(l))),n.documentRangeFormattingEdits&&c.push(monaco.languages.registerDocumentRangeFormattingEditProvider(t,new r.DocumentRangeFormattingEditProvider(l))),n.completionItems&&c.push(monaco.languages.registerCompletionItemProvider(t,new r.CompletionAdapter(l))),n.hovers&&c.push(monaco.languages.registerHoverProvider(t,new r.HoverAdapter(l))),n.documentSymbols&&c.push(monaco.languages.registerDocumentSymbolProvider(t,new r.DocumentSymbolAdapter(l))),n.tokens&&c.push(monaco.languages.setTokensProvider(t,o.createTokenizationSupport(!0))),n.colors&&c.push(monaco.languages.registerColorProvider(t,new r.DocumentColorAdapter(l))),n.foldingRanges&&c.push(monaco.languages.registerFoldingRangeProvider(t,new r.FoldingRangeAdapter(l))),n.diagnostics&&c.push(new r.DiagnosticsAdapter(t,l,e)),n.selectionRanges&&c.push(monaco.languages.registerSelectionRangeProvider(t,new r.SelectionRangeAdapter(l)))}f(),t.push(monaco.languages.setLanguageConfiguration(e.languageId,s));var d=e.modeConfiguration;return e.onDidChange((function(e){e.modeConfiguration!==d&&(d=e.modeConfiguration,f())})),t.push(i(c)),i(t)};var s={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]}]}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/json/jsonWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-json version: 2.9.0(47ee25bf887cd3f9fea208f31f1092d57acad2e0)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/scanner\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";function n(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function r(e){return 10===e||13===e||8232===e||8233===e}function o(e){return e>=48&&e<=57}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createScanner=function(e,t){void 0===t&&(t=!1);var i=e.length,a=0,s=\"\",c=0,u=16,f=0,l=0,d=0,p=0,h=0;function m(t,n){for(var r=0,o=0;r<t||!n;){var i=e.charCodeAt(a);if(i>=48&&i<=57)o=16*o+i-48;else if(i>=65&&i<=70)o=16*o+i-65+10;else{if(!(i>=97&&i<=102))break;o=16*o+i-97+10}a++,r++}return r<t&&(o=-1),o}function g(){if(s=\"\",h=0,c=a,l=f,p=d,a>=i)return c=i,u=17;var t=e.charCodeAt(a);if(n(t)){do{a++,s+=String.fromCharCode(t),t=e.charCodeAt(a)}while(n(t));return u=15}if(r(t))return a++,s+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,s+=\"\\n\"),f++,d=a,u=14;switch(t){case 123:return a++,u=1;case 125:return a++,u=2;case 91:return a++,u=3;case 93:return a++,u=4;case 58:return a++,u=6;case 44:return a++,u=5;case 34:return a++,s=function(){for(var t=\"\",n=a;;){if(a>=i){t+=e.substring(n,a),h=2;break}var o=e.charCodeAt(a);if(34===o){t+=e.substring(n,a),a++;break}if(92!==o){if(o>=0&&o<=31){if(r(o)){t+=e.substring(n,a),h=2;break}h=6}a++}else{if(t+=e.substring(n,a),++a>=i){h=2;break}switch(e.charCodeAt(a++)){case 34:t+='\"';break;case 92:t+=\"\\\\\";break;case 47:t+=\"/\";break;case 98:t+=\"\\b\";break;case 102:t+=\"\\f\";break;case 110:t+=\"\\n\";break;case 114:t+=\"\\r\";break;case 116:t+=\"\\t\";break;case 117:var s=m(4,!0);s>=0?t+=String.fromCharCode(s):h=4;break;default:h=5}n=a}}return t}(),u=10;case 47:var g=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;a<i&&!r(e.charCodeAt(a));)a++;return s=e.substring(g,a),u=12}if(42===e.charCodeAt(a+1)){a+=2;for(var y=i-1,b=!1;a<y;){var x=e.charCodeAt(a);if(42===x&&47===e.charCodeAt(a+1)){a+=2,b=!0;break}a++,r(x)&&(13===x&&10===e.charCodeAt(a)&&a++,f++,d=a)}return b||(a++,h=1),s=e.substring(g,a),u=13}return s+=String.fromCharCode(t),a++,u=16;case 45:if(s+=String.fromCharCode(t),++a===i||!o(e.charCodeAt(a)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=function(){var t=a;if(48===e.charCodeAt(a))a++;else for(a++;a<e.length&&o(e.charCodeAt(a));)a++;if(a<e.length&&46===e.charCodeAt(a)){if(!(++a<e.length&&o(e.charCodeAt(a))))return h=3,e.substring(t,a);for(a++;a<e.length&&o(e.charCodeAt(a));)a++}var n=a;if(a<e.length&&(69===e.charCodeAt(a)||101===e.charCodeAt(a)))if((++a<e.length&&43===e.charCodeAt(a)||45===e.charCodeAt(a))&&a++,a<e.length&&o(e.charCodeAt(a))){for(a++;a<e.length&&o(e.charCodeAt(a));)a++;n=a}else h=3;return e.substring(t,n)}(),u=11;default:for(;a<i&&v(t);)a++,t=e.charCodeAt(a);if(c!==a){switch(s=e.substring(c,a)){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return s+=String.fromCharCode(t),a++,u=16}}function v(e){if(n(e)||r(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){a=e,s=\"\",c=0,u=16,h=0},getPosition:function(){return a},scan:t?function(){var e;do{e=g()}while(e>=12&&e<=15);return e}:g,getToken:function(){return u},getTokenValue:function(){return s},getTokenOffset:function(){return c},getTokenLength:function(){return a-c},getTokenStartLine:function(){return l},getTokenStartCharacter:function(){return c-p},getTokenError:function(){return h}}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/format\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./scanner\");function r(e,t){for(var n=\"\",r=0;r<t;r++)n+=e;return n}function o(e,t){return-1!==\"\\r\\n\".indexOf(e.charAt(t))}t.format=function(e,t,i){var a,s,c,u,f;if(t){for(u=t.offset,f=u+t.length,c=u;c>0&&!o(e,c-1);)c--;for(var l=f;l<e.length&&!o(e,l);)l++;s=e.substring(c,l),a=function(e,t){var n=0,r=0,o=t.tabSize||4;for(;n<e.length;){var i=e.charAt(n);if(\" \"===i)r++;else{if(\"\\t\"!==i)break;r+=o}n++}return Math.floor(r/o)}(s,i)}else s=e,a=0,c=0,u=0,f=e.length;var d,p=function(e,t){for(var n=0;n<t.length;n++){var r=t.charAt(n);if(\"\\r\"===r)return n+1<t.length&&\"\\n\"===t.charAt(n+1)?\"\\r\\n\":\"\\r\";if(\"\\n\"===r)return\"\\n\"}return e&&e.eol||\"\\n\"}(i,e),h=!1,m=0;d=i.insertSpaces?r(\" \",i.tabSize||4):\"\\t\";var g=n.createScanner(s,!1),v=!1;function y(){return p+r(d,a+m)}function b(){var e=g.scan();for(h=!1;15===e||14===e;)h=h||14===e,e=g.scan();return v=16===e||0!==g.getTokenError(),e}var x=[];function S(t,n,r){!v&&n<f&&r>u&&e.substring(n,r)!==t&&x.push({offset:n,length:r-n,content:t})}var C=b();if(17!==C){var j=g.getTokenOffset()+c;S(r(d,a),c,j)}for(;17!==C;){for(var T=g.getTokenOffset()+g.getTokenLength()+c,k=b(),O=\"\";!h&&(12===k||13===k);){S(\" \",T,g.getTokenOffset()+c),T=g.getTokenOffset()+g.getTokenLength()+c,O=12===k?y():\"\",k=b()}if(2===k)1!==C&&(m--,O=y());else if(4===k)3!==C&&(m--,O=y());else{switch(C){case 3:case 1:m++,O=y();break;case 5:case 12:O=y();break;case 13:O=h?y():\" \";break;case 6:O=\" \";break;case 10:if(6===k){O=\"\";break}case 7:case 8:case 9:case 11:case 2:case 4:12===k||13===k?O=\" \":5!==k&&17!==k&&(v=!0);break;case 16:v=!0}!h||12!==k&&13!==k||(O=y())}S(O,T,g.getTokenOffset()+c),C=k}return x},t.isEOL=o})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/parser\",[\"require\",\"exports\",\"./scanner\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=e(\"./scanner\");function o(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}function i(e,t,o){void 0===o&&(o=n.DEFAULT);var i=r.createScanner(e,!1);function a(e){return e?function(){return e(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}function s(e){return e?function(t){return e(t,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}var c=a(t.onObjectBegin),u=s(t.onObjectProperty),f=a(t.onObjectEnd),l=a(t.onArrayBegin),d=a(t.onArrayEnd),p=s(t.onLiteralValue),h=s(t.onSeparator),m=a(t.onComment),g=s(t.onError),v=o&&o.disallowComments,y=o&&o.allowTrailingComma;function b(){for(;;){var e=i.scan();switch(i.getTokenError()){case 4:x(14);break;case 5:x(15);break;case 3:x(13);break;case 1:v||x(11);break;case 2:x(12);break;case 6:x(16)}switch(e){case 12:case 13:v?x(10):m();break;case 16:x(1);break;case 15:case 14:break;default:return e}}}function x(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=[]),g(e),t.length+n.length>0)for(var r=i.getToken();17!==r;){if(-1!==t.indexOf(r)){b();break}if(-1!==n.indexOf(r))break;r=b()}}function S(e){var t=i.getTokenValue();return e?p(t):u(t),b(),!0}function C(){switch(i.getToken()){case 3:return function(){l(),b();for(var e=!1;4!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),4===i.getToken()&&y)break}else e&&x(6,[],[]);C()||x(4,[],[4,5]),e=!0}return d(),4!==i.getToken()?x(8,[4],[]):b(),!0}();case 1:return function(){c(),b();for(var e=!1;2!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),h(\",\"),b(),2===i.getToken()&&y)break}else e&&x(6,[],[]);(10!==i.getToken()?(x(3,[],[2,5]),0):(S(!1),6===i.getToken()?(h(\":\"),b(),C()||x(4,[],[2,5])):x(5,[],[2,5]),1))||x(4,[],[2,5]),e=!0}return f(),2!==i.getToken()?x(7,[2],[]):b(),!0}();case 10:return S(!0);default:return function(){switch(i.getToken()){case 11:var e=0;try{\"number\"!=typeof(e=JSON.parse(i.getTokenValue()))&&(x(2),e=0)}catch(e){x(2)}p(e);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return b(),!0}()}}return b(),17===i.getToken()?!!o.allowEmptyContent||(x(4,[],[]),!1):C()?(17!==i.getToken()&&x(9,[],[]),!0):(x(4,[],[]),!1)}function a(e){switch(typeof e){case\"boolean\":return\"boolean\";case\"number\":return\"number\";case\"string\":return\"string\";case\"object\":return e?Array.isArray(e)?\"array\":\"object\":\"null\";default:return\"null\"}}!function(e){e.DEFAULT={allowTrailingComma:!1}}(n||(n={})),t.getLocation=function(e,t){var n=[],r=new Object,o=void 0,s={value:{},offset:0,length:0,type:\"object\",parent:void 0},c=!1;function u(e,t,n,r){s.value=e,s.offset=t,s.length=n,s.type=r,s.colonOffset=void 0,o=s}try{i(e,{onObjectBegin:function(e,i){if(t<=e)throw r;o=void 0,c=t>e,n.push(\"\")},onObjectProperty:function(e,o,i){if(t<o)throw r;if(u(e,o,i,\"property\"),n[n.length-1]=e,t<=o+i)throw r},onObjectEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onArrayBegin:function(e,i){if(t<=e)throw r;o=void 0,n.push(0)},onArrayEnd:function(e,i){if(t<=e)throw r;o=void 0,n.pop()},onLiteralValue:function(e,n,o){if(t<n)throw r;if(u(e,n,o,a(e)),t<=n+o)throw r},onSeparator:function(e,i,a){if(t<=i)throw r;if(\":\"===e&&o&&\"property\"===o.type)o.colonOffset=i,c=!1,o=void 0;else if(\",\"===e){var s=n[n.length-1];\"number\"==typeof s?n[n.length-1]=s+1:(c=!0,n[n.length-1]=\"\"),o=void 0}}})}catch(e){if(e!==r)throw e}return{path:n,previousNode:o,isAtPropertyKey:c,matches:function(e){for(var t=0,r=0;t<e.length&&r<n.length;r++)if(e[t]===n[r]||\"*\"===e[t])t++;else if(\"**\"!==e[t])return!1;return t===e.length}}},t.parse=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o=null,a=[],s=[];function c(e){Array.isArray(a)?a.push(e):null!==o&&(a[o]=e)}return i(e,{onObjectBegin:function(){var e={};c(e),s.push(a),a=e,o=null},onObjectProperty:function(e){o=e},onObjectEnd:function(){a=s.pop()},onArrayBegin:function(){var e=[];c(e),s.push(a),a=e,o=null},onArrayEnd:function(){a=s.pop()},onLiteralValue:c,onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r),a[0]},t.parseTree=function(e,t,r){void 0===t&&(t=[]),void 0===r&&(r=n.DEFAULT);var o={type:\"array\",offset:-1,length:-1,children:[],parent:void 0};function s(e){\"property\"===o.type&&(o.length=e-o.offset,o=o.parent)}function c(e){return o.children.push(e),e}i(e,{onObjectBegin:function(e){o=c({type:\"object\",offset:e,length:-1,parent:o,children:[]})},onObjectProperty:function(e,t,n){(o=c({type:\"property\",offset:t,length:-1,parent:o,children:[]})).children.push({type:\"string\",value:e,offset:t,length:n,parent:o})},onObjectEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onArrayBegin:function(e,t){o=c({type:\"array\",offset:e,length:-1,parent:o,children:[]})},onArrayEnd:function(e,t){o.length=e+t-o.offset,o=o.parent,s(e+t)},onLiteralValue:function(e,t,n){c({type:a(e),offset:t,length:n,parent:o,value:e}),s(t+n)},onSeparator:function(e,t,n){\"property\"===o.type&&(\":\"===e?o.colonOffset=t:\",\"===e&&s(t))},onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},r);var u=o.children[0];return u&&delete u.parent,u},t.findNodeAtLocation=function(e,t){if(e){for(var n=e,r=0,o=t;r<o.length;r++){var i=o[r];if(\"string\"==typeof i){if(\"object\"!==n.type||!Array.isArray(n.children))return;for(var a=!1,s=0,c=n.children;s<c.length;s++){var u=c[s];if(Array.isArray(u.children)&&u.children[0].value===i){n=u.children[1],a=!0;break}}if(!a)return}else{var f=i;if(\"array\"!==n.type||f<0||!Array.isArray(n.children)||f>=n.children.length)return;n=n.children[f]}}return n}},t.getNodePath=function e(t){if(!t.parent||!t.parent.children)return[];var n=e(t.parent);if(\"property\"===t.parent.type){var r=t.parent.children[0].value;n.push(r)}else if(\"array\"===t.parent.type){var o=t.parent.children.indexOf(t);-1!==o&&n.push(o)}return n},t.getNodeValue=function e(t){switch(t.type){case\"array\":return t.children.map(e);case\"object\":for(var n=Object.create(null),r=0,o=t.children;r<o.length;r++){var i=o[r],a=i.children[1];a&&(n[i.children[0].value]=e(a))}return n;case\"null\":case\"string\":case\"number\":case\"boolean\":return t.value;default:return}},t.contains=o,t.findNodeAtOffset=function e(t,n,r){if(void 0===r&&(r=!1),o(t,n,r)){var i=t.children;if(Array.isArray(i))for(var a=0;a<i.length&&i[a].offset<=n;a++){var s=e(i[a],n,r);if(s)return s}return t}},t.visit=i,t.stripComments=function(e,t){var n,o,i=r.createScanner(e),a=[],s=0;do{switch(o=i.getPosition(),n=i.scan()){case 12:case 13:case 17:s!==o&&a.push(e.substring(s,o)),void 0!==t&&a.push(i.getTokenValue().replace(/[^\\r\\n]/g,t)),s=i.getPosition()}}while(17!==n);return a.join(\"\")},t.getNodeType=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/impl/edit\",[\"require\",\"exports\",\"./format\",\"./parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./format\"),r=e(\"./parser\");function o(e,t,n,o,a){for(var s,c=t.slice(),u=r.parseTree(e,[]),f=void 0,l=void 0;c.length>0&&(l=c.pop(),void 0===(f=r.findNodeAtLocation(u,c))&&void 0!==n);)\"string\"==typeof l?((s={})[l]=n,n=s):n=[n];if(f){if(\"object\"===f.type&&\"string\"==typeof l&&Array.isArray(f.children)){var d=r.findNodeAtLocation(f,[l]);if(void 0!==d){if(void 0===n){if(!d.parent)throw new Error(\"Malformed AST\");var p=f.children.indexOf(d.parent),h=void 0,m=d.parent.offset+d.parent.length;if(p>0)h=(S=f.children[p-1]).offset+S.length;else if(h=f.offset+1,f.children.length>1)m=f.children[1].offset;return i(e,{offset:h,length:m-h,content:\"\"},o)}return i(e,{offset:d.offset,length:d.length,content:JSON.stringify(n)},o)}if(void 0===n)return[];var g=JSON.stringify(l)+\": \"+JSON.stringify(n),v=a?a(f.children.map((function(e){return e.children[0].value}))):f.children.length,y=void 0;return i(e,y=v>0?{offset:(S=f.children[v-1]).offset+S.length,length:0,content:\",\"+g}:0===f.children.length?{offset:f.offset+1,length:0,content:g}:{offset:f.offset+1,length:0,content:g+\",\"},o)}if(\"array\"===f.type&&\"number\"==typeof l&&Array.isArray(f.children)){if(-1===l){g=\"\"+JSON.stringify(n),y=void 0;if(0===f.children.length)y={offset:f.offset+1,length:0,content:g};else y={offset:(S=f.children[f.children.length-1]).offset+S.length,length:0,content:\",\"+g};return i(e,y,o)}if(void 0===n&&f.children.length>=0){var b=l,x=f.children[b];y=void 0;if(1===f.children.length)y={offset:f.offset+1,length:f.length-2,content:\"\"};else if(f.children.length-1===b){var S,C=(S=f.children[b-1]).offset+S.length;y={offset:C,length:f.offset+f.length-2-C,content:\"\"}}else y={offset:x.offset,length:f.children[b+1].offset-x.offset,content:\"\"};return i(e,y,o)}throw new Error(\"Array modification not supported yet\")}throw new Error(\"Can not add \"+(\"number\"!=typeof l?\"index\":\"property\")+\" to parent of type \"+f.type)}if(void 0===n)throw new Error(\"Can not delete in empty document\");return i(e,{offset:u?u.offset:0,length:u?u.length:0,content:JSON.stringify(n)},o)}function i(e,t,r){var o=a(e,t),i=t.offset,s=t.offset+t.content.length;if(0===t.length||0===t.content.length){for(;i>0&&!n.isEOL(o,i-1);)i--;for(;s<o.length&&!n.isEOL(o,s);)s++}for(var c=n.format(o,{offset:i,length:s-i},r),u=c.length-1;u>=0;u--){var f=c[u];o=a(o,f),i=Math.min(i,f.offset),s=Math.max(s,f.offset+f.length),s+=f.content.length-f.length}return[{offset:i,length:e.length-(o.length-s)-i,content:o.substring(i,s)}]}function a(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}t.removeProperty=function(e,t,n){return o(e,t,void 0,n)},t.setProperty=o,t.applyEdit=a,t.isWS=function(e,t){return-1!==\"\\r\\n \\t\".indexOf(e.charAt(t))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"jsonc-parser/main\",[\"require\",\"exports\",\"./impl/format\",\"./impl/edit\",\"./impl/scanner\",\"./impl/parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./impl/format\"),r=e(\"./impl/edit\"),o=e(\"./impl/scanner\"),i=e(\"./impl/parser\");t.createScanner=o.createScanner,t.getLocation=i.getLocation,t.parse=i.parse,t.parseTree=i.parseTree,t.findNodeAtLocation=i.findNodeAtLocation,t.findNodeAtOffset=i.findNodeAtOffset,t.getNodePath=i.getNodePath,t.getNodeValue=i.getNodeValue,t.visit=i.visit,t.stripComments=i.stripComments,t.printParseErrorCode=function(e){switch(e){case 1:return\"InvalidSymbol\";case 2:return\"InvalidNumberFormat\";case 3:return\"PropertyNameExpected\";case 4:return\"ValueExpected\";case 5:return\"ColonExpected\";case 6:return\"CommaExpected\";case 7:return\"CloseBraceExpected\";case 8:return\"CloseBracketExpected\";case 9:return\"EndOfFileExpected\";case 10:return\"InvalidCommentToken\";case 11:return\"UnexpectedEndOfComment\";case 12:return\"UnexpectedEndOfString\";case 13:return\"UnexpectedEndOfNumber\";case 14:return\"InvalidUnicode\";case 15:return\"InvalidEscapeCharacter\";case 16:return\"InvalidCharacter\"}return\"<unknown ParseErrorCode>\"},t.format=function(e,t,r){return n.format(e,t,r)},t.modify=function(e,t,n,o){return r.setProperty(e,t,n,o.formattingOptions,o.getInsertionIndex)},t.applyEdits=function(e,t){for(var n=t.length-1;n>=0;n--)e=r.applyEdit(e,t[n]);return e}})),define(\"jsonc-parser\",[\"jsonc-parser/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/objects\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.equals=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(typeof t!=typeof n)return!1;if(\"object\"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(n))return!1;var r,o;if(Array.isArray(t)){if(t.length!==n.length)return!1;for(r=0;r<t.length;r++)if(!e(t[r],n[r]))return!1}else{var i=[];for(o in t)i.push(o);i.sort();var a=[];for(o in n)a.push(o);if(a.sort(),!e(i,a))return!1;for(r=0;r<i.length;r++)if(!e(t[i[r]],n[i[r]]))return!1}return!0},t.isNumber=function(e){return\"number\"==typeof e},t.isDefined=function(e){return void 0!==e},t.isBoolean=function(e){return\"boolean\"==typeof e},t.isString=function(e){return\"string\"==typeof e}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-types/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r,o,i,a,s,c,u,f,l,d,p,h;Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.number(t.line)&&S.number(t.character)}}(n=t.Position||(t.Position={})),function(e){e.create=function(e,t,r,o){if(S.number(e)&&S.number(t)&&S.number(r)&&S.number(o))return{start:n.create(e,t),end:n.create(r,o)};if(n.is(e)&&n.is(t))return{start:e,end:t};throw new Error(\"Range#create called with invalid arguments[\"+e+\", \"+t+\", \"+r+\", \"+o+\"]\")},e.is=function(e){var t=e;return S.objectLiteral(t)&&n.is(t.start)&&n.is(t.end)}}(r=t.Range||(t.Range={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.string(t.uri)||S.undefined(t.uri))}}(o=t.Location||(t.Location={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.targetRange)&&S.string(t.targetUri)&&(r.is(t.targetSelectionRange)||S.undefined(t.targetSelectionRange))&&(r.is(t.originSelectionRange)||S.undefined(t.originSelectionRange))}}(t.LocationLink||(t.LocationLink={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return S.number(t.red)&&S.number(t.green)&&S.number(t.blue)&&S.number(t.alpha)}}(i=t.Color||(t.Color={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&i.is(t.color)}}(t.ColorInformation||(t.ColorInformation={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return S.string(t.label)&&(S.undefined(t.textEdit)||u.is(t))&&(S.undefined(t.additionalTextEdits)||S.typedArray(t.additionalTextEdits,u.is))}}(t.ColorPresentation||(t.ColorPresentation={})),function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"}(t.FoldingRangeKind||(t.FoldingRangeKind={})),function(e){e.create=function(e,t,n,r,o){var i={startLine:e,endLine:t};return S.defined(n)&&(i.startCharacter=n),S.defined(r)&&(i.endCharacter=r),S.defined(o)&&(i.kind=o),i},e.is=function(e){var t=e;return S.number(t.startLine)&&S.number(t.startLine)&&(S.undefined(t.startCharacter)||S.number(t.startCharacter))&&(S.undefined(t.endCharacter)||S.number(t.endCharacter))&&(S.undefined(t.kind)||S.string(t.kind))}}(t.FoldingRange||(t.FoldingRange={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return S.defined(t)&&o.is(t.location)&&S.string(t.message)}}(a=t.DiagnosticRelatedInformation||(t.DiagnosticRelatedInformation={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(t.DiagnosticSeverity||(t.DiagnosticSeverity={})),function(e){e.Unnecessary=1,e.Deprecated=2}(t.DiagnosticTag||(t.DiagnosticTag={})),function(e){e.create=function(e,t,n,r,o,i){var a={range:e,message:t};return S.defined(n)&&(a.severity=n),S.defined(r)&&(a.code=r),S.defined(o)&&(a.source=o),S.defined(i)&&(a.relatedInformation=i),a},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&S.string(t.message)&&(S.number(t.severity)||S.undefined(t.severity))&&(S.number(t.code)||S.string(t.code)||S.undefined(t.code))&&(S.string(t.source)||S.undefined(t.source))&&(S.undefined(t.relatedInformation)||S.typedArray(t.relatedInformation,a.is))}}(s=t.Diagnostic||(t.Diagnostic={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={title:e,command:t};return S.defined(n)&&n.length>0&&(o.arguments=n),o},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.title)&&S.string(t.command)}}(c=t.Command||(t.Command={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:\"\"}},e.is=function(e){var t=e;return S.objectLiteral(t)&&S.string(t.newText)&&r.is(t.range)}}(u=t.TextEdit||(t.TextEdit={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return S.defined(t)&&m.is(t.textDocument)&&Array.isArray(t.edits)}}(f=t.TextDocumentEdit||(t.TextDocumentEdit={})),function(e){e.create=function(e,t){var n={kind:\"create\",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"create\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(l=t.CreateFile||(t.CreateFile={})),function(e){e.create=function(e,t,n){var r={kind:\"rename\",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(r.options=n),r},e.is=function(e){var t=e;return t&&\"rename\"===t.kind&&S.string(t.oldUri)&&S.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||S.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||S.boolean(t.options.ignoreIfExists)))}}(d=t.RenameFile||(t.RenameFile={})),function(e){e.create=function(e,t){var n={kind:\"delete\",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(n.options=t),n},e.is=function(e){var t=e;return t&&\"delete\"===t.kind&&S.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||S.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||S.boolean(t.options.ignoreIfNotExists)))}}(p=t.DeleteFile||(t.DeleteFile={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return S.string(e.kind)?l.is(e)||d.is(e)||p.is(e):f.is(e)})))}}(h=t.WorkspaceEdit||(t.WorkspaceEdit={}));var m,g,v,y,b=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(u.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(u.replace(e,t))},e.prototype.delete=function(e){this.edits.push(u.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),x=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach((function(e){if(f.is(e)){var n=new b(e.edits);t._textEditChanges[e.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new b(e.changes[n]);t._textEditChanges[n]=r})))}return Object.defineProperty(e.prototype,\"edit\",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(m.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\");var t=e;if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:o=[]};this._workspaceEdit.documentChanges.push(n),r=new b(o),this._textEditChanges[t.uri]=r}return r}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error(\"Workspace edit is not configured for normal text edit changes.\");var r;if(!(r=this._textEditChanges[e])){var o=[];this._workspaceEdit.changes[e]=o,r=new b(o),this._textEditChanges[e]=r}return r},e.prototype.createFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(l.create(e,t))},e.prototype.renameFile=function(e,t,n){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(d.create(e,t,n))},e.prototype.deleteFile=function(e,t){this.checkDocumentChanges(),this._workspaceEdit.documentChanges.push(p.create(e,t))},e.prototype.checkDocumentChanges=function(){if(!this._workspaceEdit||!this._workspaceEdit.documentChanges)throw new Error(\"Workspace edit is not configured for document changes.\")},e}();t.WorkspaceChange=x,function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)}}(t.TextDocumentIdentifier||(t.TextDocumentIdentifier={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&(null===t.version||S.number(t.version))}}(m=t.VersionedTextDocumentIdentifier||(t.VersionedTextDocumentIdentifier={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return S.defined(t)&&S.string(t.uri)&&S.string(t.languageId)&&S.number(t.version)&&S.string(t.text)}}(t.TextDocumentItem||(t.TextDocumentItem={})),function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\"}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(g=t.MarkupKind||(t.MarkupKind={})),function(e){e.is=function(e){var t=e;return S.objectLiteral(e)&&g.is(t.kind)&&S.string(t.value)}}(v=t.MarkupContent||(t.MarkupContent={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(t.CompletionItemKind||(t.CompletionItemKind={})),function(e){e.PlainText=1,e.Snippet=2}(t.InsertTextFormat||(t.InsertTextFormat={})),function(e){e.Deprecated=1}(t.CompletionItemTag||(t.CompletionItemTag={})),function(e){e.create=function(e){return{label:e}}}(t.CompletionItem||(t.CompletionItem={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(t.CompletionList||(t.CompletionList={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")},e.is=function(e){var t=e;return S.string(t)||S.objectLiteral(t)&&S.string(t.language)&&S.string(t.value)}}(y=t.MarkedString||(t.MarkedString={})),function(e){e.is=function(e){var t=e;return!!t&&S.objectLiteral(t)&&(v.is(t.contents)||y.is(t.contents)||S.typedArray(t.contents,y.is))&&(void 0===e.range||r.is(e.range))}}(t.Hover||(t.Hover={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(t.ParameterInformation||(t.ParameterInformation={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o={label:e};return S.defined(t)&&(o.documentation=t),S.defined(n)?o.parameters=n:o.parameters=[],o}}(t.SignatureInformation||(t.SignatureInformation={})),function(e){e.Text=1,e.Read=2,e.Write=3}(t.DocumentHighlightKind||(t.DocumentHighlightKind={})),function(e){e.create=function(e,t){var n={range:e};return S.number(t)&&(n.kind=t),n}}(t.DocumentHighlight||(t.DocumentHighlight={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(t.SymbolKind||(t.SymbolKind={})),function(e){e.Deprecated=1}(t.SymbolTag||(t.SymbolTag={})),function(e){e.create=function(e,t,n,r,o){var i={name:e,kind:t,location:{uri:r,range:n}};return o&&(i.containerName=o),i}}(t.SymbolInformation||(t.SymbolInformation={})),function(e){e.create=function(e,t,n,r,o,i){var a={name:e,detail:t,kind:n,range:r,selectionRange:o};return void 0!==i&&(a.children=i),a},e.is=function(e){var t=e;return t&&S.string(t.name)&&S.number(t.kind)&&r.is(t.range)&&r.is(t.selectionRange)&&(void 0===t.detail||S.string(t.detail))&&(void 0===t.deprecated||S.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))}}(t.DocumentSymbol||(t.DocumentSymbol={})),function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"}(t.CodeActionKind||(t.CodeActionKind={})),function(e){e.create=function(e,t){var n={diagnostics:e};return null!=t&&(n.only=t),n},e.is=function(e){var t=e;return S.defined(t)&&S.typedArray(t.diagnostics,s.is)&&(void 0===t.only||S.typedArray(t.only,S.string))}}(t.CodeActionContext||(t.CodeActionContext={})),function(e){e.create=function(e,t,n){var r={title:e};return c.is(t)?r.command=t:r.edit=t,void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&S.string(t.title)&&(void 0===t.diagnostics||S.typedArray(t.diagnostics,s.is))&&(void 0===t.kind||S.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||c.is(t.command))&&(void 0===t.isPreferred||S.boolean(t.isPreferred))&&(void 0===t.edit||h.is(t.edit))}}(t.CodeAction||(t.CodeAction={})),function(e){e.create=function(e,t){var n={range:e};return S.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.command)||c.is(t.command))}}(t.CodeLens||(t.CodeLens={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return S.defined(t)&&S.number(t.tabSize)&&S.boolean(t.insertSpaces)}}(t.FormattingOptions||(t.FormattingOptions={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return S.defined(t)&&r.is(t.range)&&(S.undefined(t.target)||S.string(t.target))}}(t.DocumentLink||(t.DocumentLink={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&r.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(t.SelectionRange||(t.SelectionRange={})),t.EOL=[\"\\n\",\"\\r\\n\",\"\\r\"],function(e){e.create=function(e,t,n,r){return new C(e,t,n,r)},e.is=function(e){var t=e;return!!(S.defined(t)&&S.string(t.uri)&&(S.undefined(t.languageId)||S.string(t.languageId))&&S.number(t.lineCount)&&S.func(t.getText)&&S.func(t.positionAt)&&S.func(t.offsetAt))},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,i=r.length-1;i>=0;i--){var a=r[i],s=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,s)+a.newText+n.substring(c,n.length),o=s}return n}}(t.TextDocument||(t.TextDocument={}));var S,C=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var o=t.charAt(r);n=\"\\r\"===o||\"\\n\"===o,\"\\r\"===o&&r+1<t.length&&\"\\n\"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,o=t.length;if(0===o)return n.create(0,e);for(;r<o;){var i=Math.floor((r+o)/2);t[i]>e?o=i:r=i+1}var a=r-1;return n.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return void 0!==e},e.undefined=function(e){return void 0===e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return\"[object String]\"===t.call(e)},e.number=function(e){return\"[object Number]\"===t.call(e)},e.func=function(e){return\"[object Function]\"===t.call(e)},e.objectLiteral=function(e){return null!==e&&\"object\"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(S||(S={}))})),define(\"vscode-languageserver-types\",[\"vscode-languageserver-types/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-languageserver-textdocument/main\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,\"uri\",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"languageId\",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"version\",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var i=0,a=t;i<a.length;i++){var s=a[i];if(e.isIncremental(s)){var c=o(s.range),u=this.offsetAt(c.start),f=this.offsetAt(c.end);this._content=this._content.substring(0,u)+s.text+this._content.substring(f,this._content.length);var l=Math.max(c.start.line,0),d=Math.max(c.end.line,0),p=this._lineOffsets,h=r(s.text,!1,u);if(d-l===h.length)for(var m=0,g=h.length;m<g;m++)p[m+l+1]=h[m];else h.length<1e4?p.splice.apply(p,[l+1,d-l].concat(h)):this._lineOffsets=p=p.slice(0,l+1).concat(h,p.slice(d+1));var v=s.text.length-(f-u);if(0!==v)for(m=l+1+h.length,g=p.length;m<g;m++)p[m]=p[m]+v}else{if(!e.isFull(s))throw new Error(\"Unknown change event received\");this._content=s.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=r(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var o=Math.floor((n+r)/2);t[o]>e?r=o:n=o+1}var i=n-1;return{line:i,character:e-t[i]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,\"lineCount\",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||\"number\"==typeof t.rangeLength)},e.isFull=function(e){var t=e;return null!=t&&\"string\"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function r(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],o=0;o<e.length;o++){var i=e.charCodeAt(o);13!==i&&10!==i||(13===i&&o+1<e.length&&10===e.charCodeAt(o+1)&&o++,r.push(n+o+1))}return r}function o(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function i(e){var t=o(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,r,o){return new n(e,t,r,o)},e.update=function(e,t,r){if(e instanceof n)return e.update(t,r),e;throw new Error(\"TextDocument.update: document must be created by TextDocument.create\")},e.applyEdits=function(e,t){for(var n=e.getText(),r=function e(t,n){if(t.length<=1)return t;var r=t.length/2|0,o=t.slice(0,r),i=t.slice(r);e(o,n),e(i,n);var a=0,s=0,c=0;for(;a<o.length&&s<i.length;){var u=n(o[a],i[s]);t[c++]=u<=0?o[a++]:i[s++]}for(;a<o.length;)t[c++]=o[a++];for(;s<i.length;)t[c++]=i[s++];return t}(t.map(i),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=n.length,a=r.length-1;a>=0;a--){var s=r[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error(\"Overlapping edit\");n=n.substring(0,c)+s.newText+n.substring(u,n.length),o=c}return n}}(t.TextDocument||(t.TextDocument={}))})),define(\"vscode-languageserver-textdocument\",[\"vscode-languageserver-textdocument/main\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageTypes\",[\"require\",\"exports\",\"vscode-languageserver-types\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-types\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-languageserver-types\"),r=e(\"vscode-languageserver-textdocument\");t.TextDocument=r.TextDocument,function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"vscode-languageserver-types\")),function(e){e[e.Undefined=0]=\"Undefined\",e[e.EnumValueMismatch=1]=\"EnumValueMismatch\",e[e.UnexpectedEndOfComment=257]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=258]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=259]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=260]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=261]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=262]=\"InvalidCharacter\",e[e.PropertyExpected=513]=\"PropertyExpected\",e[e.CommaExpected=514]=\"CommaExpected\",e[e.ColonExpected=515]=\"ColonExpected\",e[e.ValueExpected=516]=\"ValueExpected\",e[e.CommaOrCloseBacketExpected=517]=\"CommaOrCloseBacketExpected\",e[e.CommaOrCloseBraceExpected=518]=\"CommaOrCloseBraceExpected\",e[e.TrailingComma=519]=\"TrailingComma\",e[e.DuplicateKey=520]=\"DuplicateKey\",e[e.CommentNotPermitted=521]=\"CommentNotPermitted\",e[e.SchemaResolveError=768]=\"SchemaResolveError\"}(t.ErrorCode||(t.ErrorCode={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText],commitCharactersSupport:!0}}}}}(t.ClientCapabilities||(t.ClientCapabilities={}))})),define(\"vscode-nls/vscode-nls\",[\"require\",\"exports\"],(function(e,t){\"use strict\";function n(e,t){return 0===t.length?e:e.replace(/\\{(\\d+)\\}/g,(function(e,n){var r=n[0];return void 0!==t[r]?t[r]:e}))}function r(e,t){for(var r=[],o=2;o<arguments.length;o++)r[o-2]=arguments[o];return n(t,r)}function o(e){return r}Object.defineProperty(t,\"__esModule\",{value:!0}),t.loadMessageBundle=o,t.config=function(e){return o}})),define(\"vscode-nls\",[\"vscode-nls/vscode-nls\"],(function(e){return e}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/parser/jsonParser\",[\"require\",\"exports\",\"jsonc-parser\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../utils/objects\"),o=e(\"../jsonLanguageTypes\"),i=e(\"vscode-nls\").loadMessageBundle(),a={\"color-hex\":{errorMessage:i(\"colorHexFormatWarning\",\"Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.\"),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},\"date-time\":{errorMessage:i(\"dateTimeFormatWarning\",\"String is not a RFC3339 date-time.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:i(\"dateFormatWarning\",\"String is not a RFC3339 date.\"),pattern:/^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:i(\"timeFormatWarning\",\"String is not a RFC3339 time.\"),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:i(\"emailFormatWarning\",\"String is not an e-mail address.\"),pattern:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/}},s=function(){function e(e,t,n){this.offset=t,this.length=n,this.parent=e}return Object.defineProperty(e.prototype,\"children\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return\"type: \"+this.type+\" (\"+this.offset+\"/\"+this.length+\")\"+(this.parent?\" parent: {\"+this.parent.toString()+\"}\":\"\")},e}();t.ASTNodeImpl=s;var c=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"null\",r.value=null,r}return __extends(t,e),t}(s);t.NullASTNodeImpl=c;var u=function(e){function t(t,n,r){var o=e.call(this,t,r)||this;return o.type=\"boolean\",o.value=n,o}return __extends(t,e),t}(s);t.BooleanASTNodeImpl=u;var f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"array\",r.items=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.items},enumerable:!0,configurable:!0}),t}(s);t.ArrayASTNodeImpl=f;var l=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"number\",r.isInteger=!0,r.value=Number.NaN,r}return __extends(t,e),t}(s);t.NumberASTNodeImpl=l;var d=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.type=\"string\",o.value=\"\",o}return __extends(t,e),t}(s);t.StringASTNodeImpl=d;var p=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"property\",r.colonOffset=-1,r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]},enumerable:!0,configurable:!0}),t}(s);t.PropertyASTNodeImpl=p;var h=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type=\"object\",r.properties=[],r}return __extends(t,e),Object.defineProperty(t.prototype,\"children\",{get:function(){return this.properties},enumerable:!0,configurable:!0}),t}(s);function m(e){return r.isBoolean(e)?e?{}:{not:{}}:e}t.ObjectASTNodeImpl=h,t.asSchema=m,function(e){e[e.Key=0]=\"Key\",e[e.Enum=1]=\"Enum\"}(t.EnumMatch||(t.EnumMatch={}));var g=function(){function e(e,t){void 0===e&&(e=-1),void 0===t&&(t=null),this.focusOffset=e,this.exclude=t,this.schemas=[]}return e.prototype.add=function(e){this.schemas.push(e)},e.prototype.merge=function(e){var t;(t=this.schemas).push.apply(t,e.schemas)},e.prototype.include=function(e){return(-1===this.focusOffset||x(e,this.focusOffset))&&e!==this.exclude},e.prototype.newSub=function(){return new e(-1,this.exclude)},e}(),v=function(){function e(){}return Object.defineProperty(e.prototype,\"schemas\",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.add=function(e){},e.prototype.merge=function(e){},e.prototype.include=function(e){return!0},e.prototype.newSub=function(){return this},e.instance=new e,e}(),y=function(){function e(){this.problems=[],this.propertiesMatches=0,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=null}return e.prototype.hasProblems=function(){return!!this.problems.length},e.prototype.mergeAll=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.merge(r)}},e.prototype.merge=function(e){this.problems=this.problems.concat(e.problems)},e.prototype.mergeEnumValues=function(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(var t=0,n=this.problems;t<n.length;t++){var r=n[t];r.code===o.ErrorCode.EnumValueMismatch&&(r.message=i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",this.enumValues.map((function(e){return JSON.stringify(e)})).join(\", \")))}}},e.prototype.mergePropertyMatch=function(e){this.merge(e),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&1===e.enumValues.length&&this.primaryValueMatches++},e.prototype.compare=function(e){var t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches},e}();function b(e){return n.getNodeValue(e)}function x(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}t.ValidationResult=y,t.newJSONDocument=function(e,t){return void 0===t&&(t=[]),new S(e,t,[])},t.getNodeValue=b,t.getNodePath=function(e){return n.getNodePath(e)},t.contains=x;var S=function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=[]),this.root=e,this.syntaxErrors=t,this.comments=n}return e.prototype.getNodeFromOffset=function(e,t){if(void 0===t&&(t=!1),this.root)return n.findNodeAtOffset(this.root,e,t)},e.prototype.visit=function(e){if(this.root){var t=function(n){var r=e(n),o=n.children;if(Array.isArray(o))for(var i=0;i<o.length&&r;i++)r=t(o[i]);return r};t(this.root)}},e.prototype.validate=function(e,t){if(this.root&&t){var n=new y;return C(this.root,t,n,v.instance),n.problems.map((function(t){var n=o.Range.create(e.positionAt(t.location.offset),e.positionAt(t.location.offset+t.location.length));return o.Diagnostic.create(n,t.message,t.severity,t.code)}))}return null},e.prototype.getMatchingSchemas=function(e,t,n){void 0===t&&(t=-1),void 0===n&&(n=null);var r=new g(t,n);return this.root&&e&&C(this.root,e,new y,r),r.schemas},e}();function C(e,t,n,s){if(e&&s.include(e)){switch(e.type){case\"object\":!function(e,t,n,a){for(var s=Object.create(null),c=[],u=0,f=e.properties;u<f.length;u++){var l=(k=f[u]).keyNode.value;s[l]=k.valueNode,c.push(l)}if(Array.isArray(t.required))for(var d=0,p=t.required;d<p.length;d++){var h=p[d];if(!s[h]){var g=e.parent&&\"property\"===e.parent.type&&e.parent.keyNode,b=g?{offset:g.offset,length:g.length}:{offset:e.offset,length:1};n.problems.push({location:b,severity:o.DiagnosticSeverity.Warning,message:i(\"MissingRequiredPropWarning\",'Missing property \"{0}\".',h)})}}var x=function(e){for(var t=c.indexOf(e);t>=0;)c.splice(t,1),t=c.indexOf(e)};if(t.properties)for(var S=0,j=Object.keys(t.properties);S<j.length;S++){h=j[S];x(h);var T=t.properties[h];if(F=s[h])if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{var k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{var O=new y;C(F,T,O,a),n.mergePropertyMatch(O)}}if(t.patternProperties)for(var A=0,E=Object.keys(t.patternProperties);A<E.length;A++)for(var I=E[A],w=new RegExp(I),P=0,N=c.slice(0);P<N.length;P++){h=N[P];if(w.test(h))if(x(h),F=s[h]){T=t.patternProperties[I];if(r.isBoolean(T))if(T)n.propertiesMatches++,n.propertiesValueMatches++;else{k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}else{O=new y;C(F,T,O,a),n.mergePropertyMatch(O)}}}if(\"object\"==typeof t.additionalProperties)for(var M=0,_=c;M<_.length;M++){h=_[M];if(F=s[h]){O=new y;C(F,t.additionalProperties,O,a),n.mergePropertyMatch(O)}}else if(!1===t.additionalProperties&&c.length>0)for(var D=0,V=c;D<V.length;D++){var F;h=V[D];if(F=s[h]){k=F.parent;n.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"DisallowedExtraPropWarning\",\"Property {0} is not allowed.\",h)})}}r.isNumber(t.maxProperties)&&e.properties.length>t.maxProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MaxPropWarning\",\"Object has more properties than limit of {0}.\",t.maxProperties)});r.isNumber(t.minProperties)&&e.properties.length<t.minProperties&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"MinPropWarning\",\"Object has fewer properties than the required number of {0}\",t.minProperties)});if(t.dependencies)for(var L=0,R=Object.keys(t.dependencies);L<R.length;L++){l=R[L];if(s[l]){var $=t.dependencies[l];if(Array.isArray($))for(var q=0,W=$;q<W.length;q++){var U=W[q];s[U]?n.propertiesValueMatches++:n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"RequiredDependentPropWarning\",\"Object is missing property {0} required by property {1}.\",U,l)})}else if(T=m($)){O=new y;C(e,T,O,a),n.mergePropertyMatch(O)}}}var K=m(t.propertyNames);if(K)for(var B=0,J=e.properties;B<J.length;B++){var H=J[B];(l=H.keyNode)&&C(l,K,n,v.instance)}}(e,t,n,s);break;case\"array\":!function(e,t,n,a){if(Array.isArray(t.items)){for(var s=t.items,c=0;c<s.length;c++){var u=m(s[c]),f=new y;(g=e.items[c])?(C(g,u,f,a),n.mergePropertyMatch(f)):e.items.length>=s.length&&n.propertiesValueMatches++}if(e.items.length>s.length)if(\"object\"==typeof t.additionalItems)for(var l=s.length;l<e.items.length;l++){f=new y;C(e.items[l],t.additionalItems,f,a),n.mergePropertyMatch(f)}else!1===t.additionalItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"additionalItemsWarning\",\"Array has too many items according to schema. Expected {0} or fewer.\",s.length)})}else{var d=m(t.items);if(d)for(var p=0,h=e.items;p<h.length;p++){var g=h[p];f=new y;C(g,d,f,a),n.mergePropertyMatch(f)}}var x=m(t.contains);if(x){e.items.some((function(e){var t=new y;return C(e,x,t,v.instance),!t.hasProblems()}))||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"requiredItemMissingWarning\",\"Array does not contain required item.\")})}r.isNumber(t.minItems)&&e.items.length<t.minItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minItemsWarning\",\"Array has too few items. Expected {0} or more.\",t.minItems)});r.isNumber(t.maxItems)&&e.items.length>t.maxItems&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxItemsWarning\",\"Array has too many items. Expected {0} or fewer.\",t.maxItems)});if(!0===t.uniqueItems){var S=b(e);S.some((function(e,t){return t!==S.lastIndexOf(e)}))&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"uniqueItemsWarning\",\"Array has duplicate items.\")})}}(e,t,n,s);break;case\"string\":!function(e,t,n,s){r.isNumber(t.minLength)&&e.value.length<t.minLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minLengthWarning\",\"String is shorter than the minimum length of {0}.\",t.minLength)});r.isNumber(t.maxLength)&&e.value.length>t.maxLength&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maxLengthWarning\",\"String is longer than the maximum length of {0}.\",t.maxLength)});if(r.isString(t.pattern)){new RegExp(t.pattern).test(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"patternWarning\",'String does not match the pattern of \"{0}\".',t.pattern)})}if(t.format)switch(t.format){case\"uri\":case\"uri-reference\":var c=void 0;if(e.value){var u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(e.value);u?u[2]||\"uri\"!==t.format||(c=i(\"uriSchemeMissing\",\"URI with a scheme is expected.\")):c=i(\"uriMissing\",\"URI is expected.\")}else c=i(\"uriEmpty\",\"URI expected.\");c&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||i(\"uriFormatWarning\",\"String is not a URI: {0}\",c)});break;case\"color-hex\":case\"date-time\":case\"date\":case\"time\":case\"email\":var f=a[t.format];e.value&&f.pattern.exec(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.patternErrorMessage||t.errorMessage||f.errorMessage})}}(e,t,n);break;case\"number\":!function(e,t,n,a){var s=e.value;r.isNumber(t.multipleOf)&&s%t.multipleOf!=0&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"multipleOfWarning\",\"Value is not divisible by {0}.\",t.multipleOf)});function c(e,t){return r.isNumber(t)?t:r.isBoolean(t)&&t?e:void 0}function u(e,t){if(!r.isBoolean(t)||!t)return e}var f=c(t.minimum,t.exclusiveMinimum);r.isNumber(f)&&s<=f&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMinimumWarning\",\"Value is below the exclusive minimum of {0}.\",f)});var l=c(t.maximum,t.exclusiveMaximum);r.isNumber(l)&&s>=l&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"exclusiveMaximumWarning\",\"Value is above the exclusive maximum of {0}.\",l)});var d=u(t.minimum,t.exclusiveMinimum);r.isNumber(d)&&s<d&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"minimumWarning\",\"Value is below the minimum of {0}.\",d)});var p=u(t.maximum,t.exclusiveMaximum);r.isNumber(p)&&s>p&&n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"maximumWarning\",\"Value is above the maximum of {0}.\",p)})}(e,t,n);break;case\"property\":return C(e.valueNode,t,n,s)}!function(){function a(t){return e.type===t||\"integer\"===t&&\"number\"===e.type&&e.isInteger}Array.isArray(t.type)?t.type.some(a)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeArrayMismatchWarning\",\"Incorrect type. Expected one of {0}.\",t.type.join(\", \"))}):t.type&&(a(t.type)||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:t.errorMessage||i(\"typeMismatchWarning\",'Incorrect type. Expected \"{0}\".',t.type)}));if(Array.isArray(t.allOf))for(var c=0,u=t.allOf;c<u.length;c++){var f=u[c];C(e,m(f),n,s)}var l=m(t.not);if(l){var d=new y,p=s.newSub();C(e,l,d,p),d.hasProblems()||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,message:i(\"notSchemaWarning\",\"Matches a schema that is not allowed.\")});for(var h=0,g=p.schemas;h<g.length;h++){var v=g[h];v.inverted=!v.inverted,s.add(v)}}var x=function(t,r){for(var a=[],c=null,u=0,f=t;u<f.length;u++){var l=m(f[u]),d=new y,p=s.newSub();if(C(e,l,d,p),d.hasProblems()||a.push(l),c)if(r||d.hasProblems()||c.validationResult.hasProblems()){var h=d.compare(c.validationResult);h>0?c={schema:l,validationResult:d,matchingSchemas:p}:0===h&&(c.matchingSchemas.merge(p),c.validationResult.mergeEnumValues(d))}else c.matchingSchemas.merge(p),c.validationResult.propertiesMatches+=d.propertiesMatches,c.validationResult.propertiesValueMatches+=d.propertiesValueMatches;else c={schema:l,validationResult:d,matchingSchemas:p}}return a.length>1&&r&&n.problems.push({location:{offset:e.offset,length:1},severity:o.DiagnosticSeverity.Warning,message:i(\"oneOfWarning\",\"Matches multiple schemas when only one must validate.\")}),null!==c&&(n.merge(c.validationResult),n.propertiesMatches+=c.validationResult.propertiesMatches,n.propertiesValueMatches+=c.validationResult.propertiesValueMatches,s.merge(c.matchingSchemas)),a.length};Array.isArray(t.anyOf)&&x(t.anyOf,!1);Array.isArray(t.oneOf)&&x(t.oneOf,!0);var S=function(t){var r=new y,o=s.newSub();C(e,m(t),r,o),n.merge(r),n.propertiesMatches+=r.propertiesMatches,n.propertiesValueMatches+=r.propertiesValueMatches,s.merge(o)},j=m(t.if);j&&function(t,n,r){var o=m(t),i=new y,a=s.newSub();C(e,o,i,a),s.merge(a),i.hasProblems()?r&&S(r):n&&S(n)}(j,m(t.then),m(t.else));if(Array.isArray(t.enum)){for(var T=b(e),k=!1,O=0,A=t.enum;O<A.length;O++){var E=A[O];if(r.equals(T,E)){k=!0;break}}n.enumValues=t.enum,n.enumValueMatch=k,k||n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"enumWarning\",\"Value is not accepted. Valid values: {0}.\",t.enum.map((function(e){return JSON.stringify(e)})).join(\", \"))})}if(r.isDefined(t.const)){T=b(e);r.equals(T,t.const)?n.enumValueMatch=!0:(n.problems.push({location:{offset:e.offset,length:e.length},severity:o.DiagnosticSeverity.Warning,code:o.ErrorCode.EnumValueMismatch,message:t.errorMessage||i(\"constWarning\",\"Value must be {0}.\",JSON.stringify(t.const))}),n.enumValueMatch=!1),n.enumValues=[t.const]}t.deprecationMessage&&e.parent&&n.problems.push({location:{offset:e.parent.offset,length:e.parent.length},severity:o.DiagnosticSeverity.Warning,message:t.deprecationMessage})}(),s.add({node:e,schema:t})}}t.JSONDocument=S,t.parse=function(e,t){var a=[],s=-1,m=e.getText(),g=n.createScanner(m,!1),v=t&&t.collectComments?[]:void 0;function y(){for(;;){var t=g.scan();switch(C(),t){case 12:case 13:Array.isArray(v)&&v.push(o.Range.create(e.positionAt(g.getTokenOffset()),e.positionAt(g.getTokenOffset()+g.getTokenLength())));break;case 15:case 14:break;default:return t}}}function b(t,n,r,i,c){if(void 0===c&&(c=o.DiagnosticSeverity.Error),0===a.length||r!==s){var u=o.Range.create(e.positionAt(r),e.positionAt(i));a.push(o.Diagnostic.create(u,t,c,n,e.languageId)),s=r}}function x(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r=[]),void 0===o&&(o=[]);var i=g.getTokenOffset(),a=g.getTokenOffset()+g.getTokenLength();if(i===a&&i>0){for(i--;i>0&&/\\s/.test(m.charAt(i));)i--;a=i+1}if(b(e,t,i,a),n&&j(n,!1),r.length+o.length>0)for(var s=g.getToken();17!==s;){if(-1!==r.indexOf(s)){y();break}if(-1!==o.indexOf(s))break;s=y()}return n}function C(){switch(g.getTokenError()){case 4:return x(i(\"InvalidUnicode\",\"Invalid unicode sequence in string.\"),o.ErrorCode.InvalidUnicode),!0;case 5:return x(i(\"InvalidEscapeCharacter\",\"Invalid escape character in string.\"),o.ErrorCode.InvalidEscapeCharacter),!0;case 3:return x(i(\"UnexpectedEndOfNumber\",\"Unexpected end of number.\"),o.ErrorCode.UnexpectedEndOfNumber),!0;case 1:return x(i(\"UnexpectedEndOfComment\",\"Unexpected end of comment.\"),o.ErrorCode.UnexpectedEndOfComment),!0;case 2:return x(i(\"UnexpectedEndOfString\",\"Unexpected end of string.\"),o.ErrorCode.UnexpectedEndOfString),!0;case 6:return x(i(\"InvalidCharacter\",\"Invalid characters in string. Control characters must be escaped.\"),o.ErrorCode.InvalidCharacter),!0}return!1}function j(e,t){return e.length=g.getTokenOffset()+g.getTokenLength()-e.offset,t&&y(),e}function T(t,n){var r=new p(t,g.getTokenOffset()),a=k(r);if(!a){if(16!==g.getToken())return null;x(i(\"DoubleQuotesExpected\",\"Property keys must be doublequoted\"),o.ErrorCode.Undefined);var s=new d(r,g.getTokenOffset(),g.getTokenLength());s.value=g.getTokenValue(),a=s,y()}r.keyNode=a;var c=n[a.value];if(c?(b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,r.keyNode.offset,r.keyNode.offset+r.keyNode.length,o.DiagnosticSeverity.Warning),\"object\"==typeof c&&b(i(\"DuplicateKeyWarning\",\"Duplicate object key\"),o.ErrorCode.DuplicateKey,c.keyNode.offset,c.keyNode.offset+c.keyNode.length,o.DiagnosticSeverity.Warning),n[a.value]=!0):n[a.value]=r,6===g.getToken())r.colonOffset=g.getTokenOffset(),y();else if(x(i(\"ColonExpected\",\"Colon expected\"),o.ErrorCode.ColonExpected),10===g.getToken()&&e.positionAt(a.offset+a.length).line<e.positionAt(g.getTokenOffset()).line)return r.length=a.length,r;var u=O(r,a.value);return u?(r.valueNode=u,r.length=u.offset+u.length-r.offset,r):x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,r,[],[2,5])}function k(e){if(10!==g.getToken())return null;var t=new d(e,g.getTokenOffset());return t.value=g.getTokenValue(),j(t,!0)}function O(e,t){return function(e){if(3!==g.getToken())return null;var t=new f(e,g.getTokenOffset());y();for(var n=0,r=!1;4!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"ValueExpected\",\"Value expected\"),o.ErrorCode.ValueExpected);var a=g.getTokenOffset();if(y(),4===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=O(t,n++);s?t.items.push(s):x(i(\"PropertyExpected\",\"Value expected\"),o.ErrorCode.ValueExpected,null,[],[4,5]),r=!0}return 4!==g.getToken()?x(i(\"ExpectedCloseBracket\",\"Expected comma or closing bracket\"),o.ErrorCode.CommaOrCloseBacketExpected,t):j(t,!0)}(e)||function(e){if(1!==g.getToken())return null;var t=new h(e,g.getTokenOffset()),n=Object.create(null);y();for(var r=!1;2!==g.getToken()&&17!==g.getToken();){if(5===g.getToken()){r||x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected);var a=g.getTokenOffset();if(y(),2===g.getToken()){r&&b(i(\"TrailingComma\",\"Trailing comma\"),o.ErrorCode.TrailingComma,a,a+1);continue}}else r&&x(i(\"ExpectedComma\",\"Expected comma\"),o.ErrorCode.CommaExpected);var s=T(t,n);s?t.properties.push(s):x(i(\"PropertyExpected\",\"Property expected\"),o.ErrorCode.PropertyExpected,null,[],[2,5]),r=!0}return 2!==g.getToken()?x(i(\"ExpectedCloseBrace\",\"Expected comma or closing brace\"),o.ErrorCode.CommaOrCloseBraceExpected,t):j(t,!0)}(e)||k(e)||function(e){if(11!==g.getToken())return null;var t=new l(e,g.getTokenOffset());if(0===g.getTokenError()){var n=g.getTokenValue();try{var a=JSON.parse(n);if(!r.isNumber(a))return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t);t.value=a}catch(e){return x(i(\"InvalidNumberFormat\",\"Invalid number format.\"),o.ErrorCode.Undefined,t)}t.isInteger=-1===n.indexOf(\".\")}return j(t,!0)}(e)||function(e){switch(g.getToken()){case 7:return j(new c(e,g.getTokenOffset()),!0);case 8:return j(new u(e,!0,g.getTokenOffset()),!0);case 9:return j(new u(e,!1,g.getTokenOffset()),!0);default:return null}}(e)}var A=null;return 17!==y()&&((A=O(null))?17!==g.getToken()&&x(i(\"End of file expected\",\"End of file expected.\"),o.ErrorCode.Undefined):x(i(\"Invalid symbol\",\"Expected a JSON object, array or literal.\"),o.ErrorCode.Undefined)),new S(A,a,v)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/json\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.stringifyObject=function e(t,n,r){if(null!==t&&\"object\"==typeof t){var o=n+\"\\t\";if(Array.isArray(t)){if(0===t.length)return\"[]\";for(var i=\"[\\n\",a=0;a<t.length;a++)i+=o+e(t[a],o,r),a<t.length-1&&(i+=\",\"),i+=\"\\n\";return i+=n+\"]\"}var s=Object.keys(t);if(0===s.length)return\"{}\";for(i=\"{\\n\",a=0;a<s.length;a++){var c=s[a];i+=o+JSON.stringify(c)+\": \"+e(t[c],o,r),a<s.length-1&&(i+=\",\"),i+=\"\\n\"}return i+=n+\"}\"}return r(t)}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/strings\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.startsWith=function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0},t.endsWith=function(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t},t.convertSimple2RegExpPattern=function(e){return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")},t.repeat=function(e,t){for(var n=\"\";t>0;)1==(1&t)&&(n+=e),e+=e,t>>>=1;return n}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonCompletion\",[\"require\",\"exports\",\"../parser/jsonParser\",\"jsonc-parser\",\"../utils/json\",\"../utils/strings\",\"../utils/objects\",\"../jsonLanguageTypes\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"jsonc-parser\"),o=e(\"../utils/json\"),i=e(\"../utils/strings\"),a=e(\"../utils/objects\"),s=e(\"../jsonLanguageTypes\"),c=e(\"vscode-nls\").loadMessageBundle(),u=function(){function e(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=Promise),void 0===r&&(r={}),this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=r,this.templateVarIdCounter=0}return e.prototype.doResolve=function(e){for(var t=this.contributions.length-1;t>=0;t--)if(this.contributions[t].resolveCompletion){var n=this.contributions[t].resolveCompletion(e);if(n)return n}return this.promiseConstructor.resolve(e)},e.prototype.doComplete=function(e,t,r){var o=this,i={items:[],isIncomplete:!1},a=e.getText(),c=e.offsetAt(t),u=r.getNodeFromOffset(c,!0);if(this.isInComment(e,u?u.offset:0,c))return Promise.resolve(i);if(u&&c===u.offset+u.length&&c>0){var f=a[c-1];(\"object\"===u.type&&\"}\"===f||\"array\"===u.type&&\"]\"===f)&&(u=u.parent)}var l=this.getCurrentWord(e,c),d=null;if(!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type){var p=c-l.length;p>0&&'\"'===a[p-1]&&p--,d=s.Range.create(e.positionAt(p),t)}else d=s.Range.create(e.positionAt(u.offset),e.positionAt(u.offset+u.length));var h={},m={add:function(e){var t=e.label,n=h[t];if(n)n.documentation||(n.documentation=e.documentation);else{if((t=t.replace(/[\\n]/g,\"↵\")).length>60){var r=t.substr(0,57).trim()+\"...\";h[r]||(t=r)}d&&(e.textEdit=s.TextEdit.replace(d,e.insertText)),e.label=t,h[t]=e,i.items.push(e)}},setAsIncomplete:function(){i.isIncomplete=!0},error:function(e){console.error(e)},log:function(e){console.log(e)},getNumberOfProposals:function(){return i.items.length}};return this.schemaService.getSchemaForResource(e.uri,r).then((function(t){var f=[],p=!0,g=\"\",v=null;if(u&&\"string\"===u.type){var y=u.parent;y&&\"property\"===y.type&&y.keyNode===u&&(p=!y.valueNode,v=y,g=a.substr(u.offset+1,u.length-2),y&&(u=y.parent))}if(u&&\"object\"===u.type){if(u.offset===c)return i;u.properties.forEach((function(e){v&&v===e||(h[e.keyNode.value]=s.CompletionItem.create(\"__\"))}));var b=\"\";p&&(b=o.evaluateSeparatorAfter(e,e.offsetAt(d.end))),t?o.getPropertyCompletions(t,r,u,p,b,m):o.getSchemaLessPropertyCompletions(r,u,g,m);var x=n.getNodePath(u);o.contributions.forEach((function(t){var n=t.collectPropertyCompletions(e.uri,x,l,p,\"\"===b,m);n&&f.push(n)})),!t&&l.length>0&&'\"'!==a.charAt(c-l.length-1)&&(m.add({kind:s.CompletionItemKind.Property,label:o.getLabelForValue(l),insertText:o.getInsertTextForProperty(l,null,!1,b),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),m.setAsIncomplete())}var S={};return t?o.getValueCompletions(t,r,u,c,e,m,S):o.getSchemaLessValueCompletions(r,u,c,e,m),o.contributions.length>0&&o.getContributedValueCompletions(r,u,c,e,m,f),o.promiseConstructor.all(f).then((function(){if(0===m.getNumberOfProposals()){var t=c;!u||\"string\"!==u.type&&\"number\"!==u.type&&\"boolean\"!==u.type&&\"null\"!==u.type||(t=u.offset+u.length);var n=o.evaluateSeparatorAfter(e,t);o.addFillerValueCompletions(S,n,m)}return i}))}))},e.prototype.getPropertyCompletions=function(e,t,n,r,o,a){var c=this;t.getMatchingSchemas(e.schema,n.offset).forEach((function(e){if(e.node===n&&!e.inverted){var t=e.schema.properties;t&&Object.keys(t).forEach((function(e){var n=t[e];if(\"object\"==typeof n&&!n.deprecationMessage&&!n.doNotSuggest){var u={kind:s.CompletionItemKind.Property,label:e,insertText:c.getInsertTextForProperty(e,n,r,o),insertTextFormat:s.InsertTextFormat.Snippet,filterText:c.getFilterTextForValue(e),documentation:c.fromMarkup(n.markdownDescription)||n.description||\"\"};i.endsWith(u.insertText,\"$1\"+o)&&(u.command={title:\"Suggest\",command:\"editor.action.triggerSuggest\"}),a.add(u)}}))}}))},e.prototype.getSchemaLessPropertyCompletions=function(e,t,n,r){var o=this,i=function(e){e.properties.forEach((function(e){var t=e.keyNode.value;r.add({kind:s.CompletionItemKind.Property,label:t,insertText:o.getInsertTextForValue(t,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,filterText:o.getFilterTextForValue(t),documentation:\"\"})}))};if(t.parent)if(\"property\"===t.parent.type){var a=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e!==t.parent&&e.keyNode.value===a&&e.valueNode&&\"object\"===e.valueNode.type&&i(e.valueNode),!0}))}else\"array\"===t.parent.type&&t.parent.items.forEach((function(e){\"object\"===e.type&&e!==t&&i(e)}));else\"object\"===t.type&&r.add({kind:s.CompletionItemKind.Property,label:\"$schema\",insertText:this.getInsertTextForProperty(\"$schema\",null,!0,\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\",filterText:this.getFilterTextForValue(\"$schema\")})},e.prototype.getSchemaLessValueCompletions=function(e,t,r,o,i){var a=this,c=r;if(!t||\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(c=t.offset+t.length,t=t.parent),!t)return i.add({kind:this.getSuggestionKind(\"object\"),label:\"Empty object\",insertText:this.getInsertTextForValue({},\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),void i.add({kind:this.getSuggestionKind(\"array\"),label:\"Empty array\",insertText:this.getInsertTextForValue([],\"\"),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"});var u=this.evaluateSeparatorAfter(o,c),f=function(e){n.contains(e.parent,r,!0)||i.add({kind:a.getSuggestionKind(e.type),label:a.getLabelTextForMatchingNode(e,o),insertText:a.getInsertTextForMatchingNode(e,o,u),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"}),\"boolean\"===e.type&&a.addBooleanValueCompletion(!e.value,u,i)};if(\"property\"===t.type&&r>t.colonOffset){var l=t.valueNode;if(l&&(r>l.offset+l.length||\"object\"===l.type||\"array\"===l.type))return;var d=t.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===d&&e.valueNode&&f(e.valueNode),!0})),\"$schema\"===d&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(u,i)}if(\"array\"===t.type)if(t.parent&&\"property\"===t.parent.type){var p=t.parent.keyNode.value;e.visit((function(e){return\"property\"===e.type&&e.keyNode.value===p&&e.valueNode&&\"array\"===e.valueNode.type&&e.valueNode.items.forEach(f),!0}))}else t.items.forEach(f)},e.prototype.getValueCompletions=function(e,t,n,r,o,i,a){var s=this,c=r,u=null,f=null;if(!n||\"string\"!==n.type&&\"number\"!==n.type&&\"boolean\"!==n.type&&\"null\"!==n.type||(c=n.offset+n.length,f=n,n=n.parent),n){if(\"property\"===n.type&&r>n.colonOffset){var l=n.valueNode;if(l&&r>l.offset+l.length)return;u=n.keyNode.value,n=n.parent}if(n&&(null!==u||\"array\"===n.type)){var d=this.evaluateSeparatorAfter(o,c);t.getMatchingSchemas(e.schema,n.offset,f).forEach((function(e){if(e.node===n&&!e.inverted&&e.schema){if(\"array\"===n.type&&e.schema.items)if(Array.isArray(e.schema.items)){var t=s.findItemAtOffset(n,o,r);t<e.schema.items.length&&s.addSchemaValueCompletions(e.schema.items[t],d,i,a)}else s.addSchemaValueCompletions(e.schema.items,d,i,a);if(e.schema.properties){var c=e.schema.properties[u];c&&s.addSchemaValueCompletions(c,d,i,a)}}})),\"$schema\"!==u||n.parent||this.addDollarSchemaCompletions(d,i),a.boolean&&(this.addBooleanValueCompletion(!0,d,i),this.addBooleanValueCompletion(!1,d,i)),a.null&&this.addNullValueCompletion(d,i)}}else this.addSchemaValueCompletions(e.schema,\"\",i,a)},e.prototype.getContributedValueCompletions=function(e,t,r,o,i,a){if(t){if(\"string\"!==t.type&&\"number\"!==t.type&&\"boolean\"!==t.type&&\"null\"!==t.type||(t=t.parent),\"property\"===t.type&&r>t.colonOffset){var s=t.keyNode.value,c=t.valueNode;if(!c||r<=c.offset+c.length){var u=n.getNodePath(t.parent);this.contributions.forEach((function(e){var t=e.collectValueCompletions(o.uri,u,s,i);t&&a.push(t)}))}}}else this.contributions.forEach((function(e){var t=e.collectDefaultCompletions(o.uri,i);t&&a.push(t)}))},e.prototype.addSchemaValueCompletions=function(e,t,n,r){var o=this;\"object\"==typeof e&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,r),Array.isArray(e.allOf)&&e.allOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.anyOf)&&e.anyOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.oneOf)&&e.oneOf.forEach((function(e){return o.addSchemaValueCompletions(e,t,n,r)})))},e.prototype.addDefaultValueCompletions=function(e,t,n,r){var o=this;void 0===r&&(r=0);var i=!1;if(a.isDefined(e.default)){for(var u=e.type,f=e.default,l=r;l>0;l--)f=[f],u=\"array\";n.add({kind:this.getSuggestionKind(u),label:this.getLabelForValue(f),insertText:this.getInsertTextForValue(f,t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"json.suggest.default\",\"Default value\")}),i=!0}Array.isArray(e.examples)&&e.examples.forEach((function(a){for(var c=e.type,u=a,f=r;f>0;f--)u=[u],c=\"array\";n.add({kind:o.getSuggestionKind(c),label:o.getLabelForValue(u),insertText:o.getInsertTextForValue(u,t),insertTextFormat:s.InsertTextFormat.Snippet}),i=!0})),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach((function(c){var u,f,l=e.type,d=c.body,p=c.label;if(a.isDefined(d)){e.type;for(var h=r;h>0;h--)d=[d],\"array\";u=o.getInsertTextForSnippetValue(d,t),f=o.getFilterTextForSnippetValue(d),p=p||o.getLabelForSnippetValue(d)}else if(\"string\"==typeof c.bodyText){var m=\"\",g=\"\",v=\"\";for(h=r;h>0;h--)m=m+v+\"[\\n\",g=g+\"\\n\"+v+\"]\",v+=\"\\t\",l=\"array\";u=m+v+c.bodyText.split(\"\\n\").join(\"\\n\"+v)+g+t,p=p||u,f=u.replace(/[\\n]/g,\"\")}n.add({kind:o.getSuggestionKind(l),label:p,documentation:o.fromMarkup(c.markdownDescription)||c.description,insertText:u,insertTextFormat:s.InsertTextFormat.Snippet,filterText:f}),i=!0})),i||\"object\"!=typeof e.items||Array.isArray(e.items)||this.addDefaultValueCompletions(e.items,t,n,r+1)},e.prototype.addEnumValueCompletions=function(e,t,n){if(a.isDefined(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(var r=0,o=e.enum.length;r<o;r++){var i=e.enum[r],c=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&r<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?c=this.fromMarkup(e.markdownEnumDescriptions[r]):e.enumDescriptions&&r<e.enumDescriptions.length&&(c=e.enumDescriptions[r]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(i),insertText:this.getInsertTextForValue(i,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:c})}},e.prototype.collectTypes=function(e,t){if(!Array.isArray(e.enum)&&!a.isDefined(e.const)){var n=e.type;Array.isArray(n)?n.forEach((function(e){return t[e]=!0})):t[n]=!0}},e.prototype.addFillerValueCompletions=function(e,t,n){e.object&&n.add({kind:this.getSuggestionKind(\"object\"),label:\"{}\",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.object\",\"New object\"),documentation:\"\"}),e.array&&n.add({kind:this.getSuggestionKind(\"array\"),label:\"[]\",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:s.InsertTextFormat.Snippet,detail:c(\"defaults.array\",\"New array\"),documentation:\"\"})},e.prototype.addBooleanValueCompletion=function(e,t,n){n.add({kind:this.getSuggestionKind(\"boolean\"),label:e?\"true\":\"false\",insertText:this.getInsertTextForValue(e,t),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addNullValueCompletion=function(e,t){t.add({kind:this.getSuggestionKind(\"null\"),label:\"null\",insertText:\"null\"+e,insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})},e.prototype.addDollarSchemaCompletions=function(e,t){var n=this;this.schemaService.getRegisteredSchemaIds((function(e){return\"http\"===e||\"https\"===e})).forEach((function(r){return t.add({kind:s.CompletionItemKind.Module,label:n.getLabelForValue(r),filterText:n.getFilterTextForValue(r),insertText:n.getInsertTextForValue(r,e),insertTextFormat:s.InsertTextFormat.Snippet,documentation:\"\"})}))},e.prototype.getLabelForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getLabelForSnippetValue=function(e){return JSON.stringify(e).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g,\"$1\")},e.prototype.getInsertTextForPlainText=function(e){return e.replace(/[\\\\\\$\\}]/g,\"\\\\$&\")},e.prototype.getInsertTextForValue=function(e,t){var n=JSON.stringify(e,null,\"\\t\");return\"{}\"===n?\"{$1}\"+t:\"[]\"===n?\"[$1]\"+t:this.getInsertTextForPlainText(n+t)},e.prototype.getInsertTextForSnippetValue=function(e,t){return o.stringifyObject(e,\"\",(function(e){return\"string\"==typeof e&&\"^\"===e[0]?e.substr(1):JSON.stringify(e)}))+t},e.prototype.getInsertTextForGuessedValue=function(e,t){switch(typeof e){case\"object\":return null===e?\"${1:null}\"+t:this.getInsertTextForValue(e,t);case\"string\":var n=JSON.stringify(e);return n=n.substr(1,n.length-2),'\"${1:'+(n=this.getInsertTextForPlainText(n))+'}\"'+t;case\"number\":case\"boolean\":return\"${1:\"+JSON.stringify(e)+\"}\"+t}return this.getInsertTextForValue(e,t)},e.prototype.getSuggestionKind=function(e){if(Array.isArray(e)){var t=e;e=t.length>0?t[0]:null}if(!e)return s.CompletionItemKind.Value;switch(e){case\"string\":return s.CompletionItemKind.Value;case\"object\":return s.CompletionItemKind.Module;case\"property\":return s.CompletionItemKind.Property;default:return s.CompletionItemKind.Value}},e.prototype.getLabelTextForMatchingNode=function(e,t){switch(e.type){case\"array\":return\"[]\";case\"object\":return\"{}\";default:return t.getText().substr(e.offset,e.length)}},e.prototype.getInsertTextForMatchingNode=function(e,t,n){switch(e.type){case\"array\":return this.getInsertTextForValue([],n);case\"object\":return this.getInsertTextForValue({},n);default:var r=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(r)}},e.prototype.getInsertTextForProperty=function(e,t,n,r){var o=this.getInsertTextForValue(e,\"\");if(!n)return o;var i,s=o+\": \",c=0;if(t){if(Array.isArray(t.defaultSnippets)){if(1===t.defaultSnippets.length){var u=t.defaultSnippets[0].body;a.isDefined(u)&&(i=this.getInsertTextForSnippetValue(u,\"\"))}c+=t.defaultSnippets.length}if(t.enum&&(i||1!==t.enum.length||(i=this.getInsertTextForGuessedValue(t.enum[0],\"\")),c+=t.enum.length),a.isDefined(t.default)&&(i||(i=this.getInsertTextForGuessedValue(t.default,\"\")),c++),Array.isArray(t.examples)&&t.examples.length&&(i||(i=this.getInsertTextForGuessedValue(t.examples[0],\"\")),c+=t.examples.length),0===c){var f=Array.isArray(t.type)?t.type[0]:t.type;switch(f||(t.properties?f=\"object\":t.items&&(f=\"array\")),f){case\"boolean\":i=\"$1\";break;case\"string\":i='\"$1\"';break;case\"object\":i=\"{$1}\";break;case\"array\":i=\"[$1]\";break;case\"number\":case\"integer\":i=\"${1:0}\";break;case\"null\":i=\"${1:null}\";break;default:return o}}}return(!i||c>1)&&(i=\"$1\"),s+i+r},e.prototype.getCurrentWord=function(e,t){for(var n=t-1,r=e.getText();n>=0&&-1===' \\t\\n\\r\\v\":{[,]}'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)},e.prototype.evaluateSeparatorAfter=function(e,t){var n=r.createScanner(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return\"\";default:return\",\"}},e.prototype.findItemAtOffset=function(e,t,n){for(var o=r.createScanner(t.getText(),!0),i=e.items,a=i.length-1;a>=0;a--){var s=i[a];if(n>s.offset+s.length)return o.setPosition(s.offset+s.length),5===o.scan()&&n>=o.getTokenOffset()+o.getTokenLength()?a+1:a;if(n>=s.offset)return a}return 0},e.prototype.isInComment=function(e,t,n){var o=r.createScanner(e.getText(),!1);o.setPosition(t);for(var i=o.scan();17!==i&&o.getTokenOffset()+o.getTokenLength()<n;)i=o.scan();return(12===i||13===i)&&o.getTokenOffset()<=n},e.prototype.fromMarkup=function(e){if(e&&this.doesSupportMarkdown())return{kind:s.MarkupKind.Markdown,value:e}},e.prototype.doesSupportMarkdown=function(){if(!a.isDefined(this.supportsMarkdown)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(s.MarkupKind.Markdown)}return this.supportsMarkdown},e.prototype.doesSupportsCommitCharacters=function(){if(!a.isDefined(this.supportsCommitCharacters)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsCommitCharacters=e&&e.completionItem&&!!e.completionItem.commitCharactersSupport}return this.supportsCommitCharacters},e}();t.JSONCompletion=u})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonHover\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../jsonLanguageTypes\"),o=function(){function e(e,t,n){void 0===t&&(t=[]),this.schemaService=e,this.contributions=t,this.promise=n||Promise}return e.prototype.doHover=function(e,t,o){var a=e.offsetAt(t),s=o.getNodeFromOffset(a);if(!s||(\"object\"===s.type||\"array\"===s.type)&&a>s.offset+1&&a<s.offset+s.length-1)return this.promise.resolve(null);var c=s;if(\"string\"===s.type){var u=s.parent;if(u&&\"property\"===u.type&&u.keyNode===s&&!(s=u.valueNode))return this.promise.resolve(null)}for(var f=r.Range.create(e.positionAt(c.offset),e.positionAt(c.offset+c.length)),l=function(e){return{contents:e,range:f}},d=n.getNodePath(s),p=this.contributions.length-1;p>=0;p--){var h=this.contributions[p].getInfoContribution(e.uri,d);if(h)return h.then((function(e){return l(e)}))}return this.schemaService.getSchemaForResource(e.uri,o).then((function(e){if(e){var t=o.getMatchingSchemas(e.schema,s.offset),r=null,a=null,c=null,u=null;t.every((function(e){if(e.node===s&&!e.inverted&&e.schema&&(r=r||e.schema.title,a=a||e.schema.markdownDescription||i(e.schema.description),e.schema.enum)){var t=e.schema.enum.indexOf(n.getNodeValue(s));e.schema.markdownEnumDescriptions?c=e.schema.markdownEnumDescriptions[t]:e.schema.enumDescriptions&&(c=i(e.schema.enumDescriptions[t])),c&&\"string\"!=typeof(u=e.schema.enum[t])&&(u=JSON.stringify(u))}return!0}));var f=\"\";return r&&(f=i(r)),a&&(f.length>0&&(f+=\"\\n\\n\"),f+=a),c&&(f.length>0&&(f+=\"\\n\\n\"),f+=\"`\"+function(e){if(-1!==e.indexOf(\"`\"))return\"`` \"+e+\" ``\";return e}(u)+\"`: \"+c),l([f])}return null}))},e}();function i(e){if(e)return e.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm,\"$1\\n\\n$3\").replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}t.JSONHover=o}));__extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-uri/index\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";var n,r;if(Object.defineProperty(t,\"__esModule\",{value:!0}),\"object\"==typeof process)r=\"win32\"===process.platform;else if(\"object\"==typeof navigator){var o=navigator.userAgent;r=o.indexOf(\"Windows\")>=0}var i=/^\\w[\\w\\d+.-]*$/,a=/^\\//,s=/^\\/\\//;var c=\"/\",u=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/,f=function(){function e(e,t,n,r,o,u){void 0===u&&(u=!1),\"object\"==typeof e?(this.scheme=e.scheme||\"\",this.authority=e.authority||\"\",this.path=e.path||\"\",this.query=e.query||\"\",this.fragment=e.fragment||\"\"):(this.scheme=function(e,t){return e||t?e:\"file\"}(e,u),this.authority=t||\"\",this.path=function(e,t){switch(e){case\"https\":case\"http\":case\"file\":t?t[0]!==c&&(t=c+t):t=c}return t}(this.scheme,n||\"\"),this.query=r||\"\",this.fragment=o||\"\",function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: \"\", authority: \"'+e.authority+'\", path: \"'+e.path+'\", query: \"'+e.query+'\", fragment: \"'+e.fragment+'\"}');if(e.scheme&&!i.test(e.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(e.path)if(e.authority){if(!a.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}(this,u))}return e.isUri=function(t){return t instanceof e||!!t&&(\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"function\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString)},Object.defineProperty(e.prototype,\"fsPath\",{get:function(){return g(this)},enumerable:!0,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,o=e.query,i=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=\"\"),void 0===n?n=this.authority:null===n&&(n=\"\"),void 0===r?r=this.path:null===r&&(r=\"\"),void 0===o?o=this.query:null===o&&(o=\"\"),void 0===i?i=this.fragment:null===i&&(i=\"\"),t===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&i===this.fragment?this:new d(t,n,r,o,i)},e.parse=function(e,t){void 0===t&&(t=!1);var n=u.exec(e);return n?new d(n[2]||\"\",decodeURIComponent(n[4]||\"\"),decodeURIComponent(n[5]||\"\"),decodeURIComponent(n[7]||\"\"),decodeURIComponent(n[9]||\"\"),t):new d(\"\",\"\",\"\",\"\",\"\")},e.file=function(e){var t=\"\";if(r&&(e=e.replace(/\\\\/g,c)),e[0]===c&&e[1]===c){var n=e.indexOf(c,2);-1===n?(t=e.substring(2),e=c):(t=e.substring(2,n),e=e.substring(n)||c)}return new d(\"file\",t,e,\"\",\"\")},e.from=function(e){return new d(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),v(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new d(t);return n._formatted=t.external,n._fsPath=t._sep===l?t.fsPath:null,n}return t},e}();t.URI=f;var l=r?1:void 0,d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return __extends(t,e),Object.defineProperty(t.prototype,\"fsPath\",{get:function(){return this._fsPath||(this._fsPath=g(this)),this._fsPath},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=l),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e},t}(f),p=((n={})[58]=\"%3A\",n[47]=\"%2F\",n[63]=\"%3F\",n[35]=\"%23\",n[91]=\"%5B\",n[93]=\"%5D\",n[64]=\"%40\",n[33]=\"%21\",n[36]=\"%24\",n[38]=\"%26\",n[39]=\"%27\",n[40]=\"%28\",n[41]=\"%29\",n[42]=\"%2A\",n[43]=\"%2B\",n[44]=\"%2C\",n[59]=\"%3B\",n[61]=\"%3D\",n[32]=\"%20\",n);function h(e,t){for(var n=void 0,r=-1,o=0;o<e.length;o++){var i=e.charCodeAt(o);if(i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||45===i||46===i||95===i||126===i||t&&47===i)-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),void 0!==n&&(n+=e.charAt(o));else{void 0===n&&(n=e.substr(0,o));var a=p[i];void 0!==a?(-1!==r&&(n+=encodeURIComponent(e.substring(r,o)),r=-1),n+=a):-1===r&&(r=o)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function m(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=p[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function g(e){var t;return t=e.authority&&e.path.length>1&&\"file\"===e.scheme?\"//\"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r&&(t=t.replace(/\\//g,\"\\\\\")),t}function v(e,t){var n=t?m:h,r=\"\",o=e.scheme,i=e.authority,a=e.path,s=e.query,u=e.fragment;if(o&&(r+=o,r+=\":\"),(i||\"file\"===o)&&(r+=c,r+=c),i){var f=i.indexOf(\"@\");if(-1!==f){var l=i.substr(0,f);i=i.substr(f+1),-1===(f=l.indexOf(\":\"))?r+=n(l,!1):(r+=n(l.substr(0,f),!1),r+=\":\",r+=n(l.substr(f+1),!1)),r+=\"@\"}-1===(f=(i=i.toLowerCase()).indexOf(\":\"))?r+=n(i,!1):(r+=n(i.substr(0,f),!1),r+=i.substr(f))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(d=a.charCodeAt(1))>=65&&d<=90&&(a=\"/\"+String.fromCharCode(d+32)+\":\"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var d;(d=a.charCodeAt(0))>=65&&d<=90&&(a=String.fromCharCode(d+32)+\":\"+a.substr(2))}r+=n(a,!0)}return s&&(r+=\"?\",r+=n(s,!1)),u&&(r+=\"#\",r+=t?u:h(u,!1)),r}})),define(\"vscode-uri\",[\"vscode-uri/index\"],(function(e){return e})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSchemaService\",[\"require\",\"exports\",\"jsonc-parser\",\"vscode-uri\",\"../utils/strings\",\"../parser/jsonParser\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"vscode-uri\"),o=e(\"../utils/strings\"),i=e(\"../parser/jsonParser\"),a=e(\"vscode-nls\").loadMessageBundle(),s=function(){function e(e){try{this.patternRegExp=new RegExp(o.convertSimple2RegExpPattern(e)+\"$\")}catch(e){this.patternRegExp=null}this.schemas=[]}return e.prototype.addSchema=function(e){this.schemas.push(e)},e.prototype.matchesPattern=function(e){return this.patternRegExp&&this.patternRegExp.test(e)},e.prototype.getSchemas=function(){return this.schemas},e}(),c=function(){function e(e,t,n){this.service=e,this.url=t,this.dependencies={},n&&(this.unresolvedSchema=this.service.promise.resolve(new u(n)))}return e.prototype.getUnresolvedSchema=function(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.url)),this.unresolvedSchema},e.prototype.getResolvedSchema=function(){var e=this;return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then((function(t){return e.service.resolveSchemaContent(t,e.url,e.dependencies)}))),this.resolvedSchema},e.prototype.clearSchema=function(){this.resolvedSchema=null,this.unresolvedSchema=null,this.dependencies={}},e}(),u=function(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t};t.UnresolvedSchema=u;var f=function(){function e(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t}return e.prototype.getSection=function(e){return i.asSchema(this.getSectionRecursive(e,this.schema))},e.prototype.getSectionRecursive=function(e,t){if(!t||\"boolean\"==typeof t||0===e.length)return t;var n=e.shift();if(t.properties&&(t.properties[n],1))return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(var r=0,o=Object.keys(t.patternProperties);r<o.length;r++){var i=o[r];if(new RegExp(i).test(n))return this.getSectionRecursive(e,t.patternProperties[i])}else{if(\"object\"==typeof t.additionalProperties)return this.getSectionRecursive(e,t.additionalProperties);if(n.match(\"[0-9]+\"))if(Array.isArray(t.items)){var a=parseInt(n,10);if(!isNaN(a)&&t.items[a])return this.getSectionRecursive(e,t.items[a])}else if(t.items)return this.getSectionRecursive(e,t.items)}return null},e}();t.ResolvedSchema=f;var l=function(){function e(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations={},this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={}}return e.prototype.getRegisteredSchemaIds=function(e){return Object.keys(this.registeredSchemasIds).filter((function(t){var n=r.URI.parse(t).scheme;return\"schemaservice\"!==n&&(!e||e(n))}))},Object.defineProperty(e.prototype,\"promise\",{get:function(){return this.promiseConstructor},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()},e.prototype.onResourceChange=function(e){for(var t=this,n=!1,r=[e=this.normalizeId(e)],o=Object.keys(this.schemasById).map((function(e){return t.schemasById[e]}));r.length;)for(var i=r.pop(),a=0;a<o.length;a++){var s=o[a];s&&(s.url===i||s.dependencies[i])&&(s.url!==i&&r.push(s.url),s.clearSchema(),o[a]=void 0,n=!0)}return n},e.prototype.normalizeId=function(e){try{return r.URI.parse(e).toString()}catch(t){return e}},e.prototype.setSchemaContributions=function(e){if(e.schemas){var t=e.schemas;for(var n in t){var r=this.normalizeId(n);this.contributionSchemas[r]=this.addSchemaHandle(r,t[n])}}if(e.schemaAssociations){var o=e.schemaAssociations;for(var i in o){var a=o[i];this.contributionAssociations[i]=a;for(var s=this.getOrAddFilePatternAssociation(i),c=0,u=a;c<u.length;c++){var f=u[c];n=this.normalizeId(f);s.addSchema(n)}}}},e.prototype.addSchemaHandle=function(e,t){var n=new c(this,e,t);return this.schemasById[e]=n,n},e.prototype.getOrAddSchemaHandle=function(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)},e.prototype.getOrAddFilePatternAssociation=function(e){var t=this.filePatternAssociationById[e];return t||(t=new s(e),this.filePatternAssociationById[e]=t,this.filePatternAssociations.push(t)),t},e.prototype.registerExternalSchema=function(e,t,n){void 0===t&&(t=null);var r=this.normalizeId(e);if(this.registeredSchemasIds[r]=!0,t)for(var o=0,i=t;o<i.length;o++){var a=i[o];this.getOrAddFilePatternAssociation(a).addSchema(r)}return n?this.addSchemaHandle(r,n):this.getOrAddSchemaHandle(r)},e.prototype.clearExternalSchemas=function(){for(var e in this.schemasById={},this.filePatternAssociations=[],this.filePatternAssociationById={},this.registeredSchemasIds={},this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(var t in this.contributionAssociations)for(var n=this.getOrAddFilePatternAssociation(t),r=0,o=this.contributionAssociations[t];r<o.length;r++){var i=o[r];e=this.normalizeId(i);n.addSchema(e)}},e.prototype.getResolvedSchema=function(e){var t=this.normalizeId(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(null)},e.prototype.loadSchema=function(e){if(!this.requestService){var t=a(\"json.schema.norequestservice\",\"Unable to load schema from '{0}'. No schema request service available\",d(e));return this.promise.resolve(new u({},[t]))}return this.requestService(e).then((function(t){if(!t){var r=a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': No content.\",d(e));return new u({},[r])}var o,i=[];o=n.parse(t,i);var s=i.length?[a(\"json.schema.invalidFormat\",\"Unable to parse content from '{0}': Parse error at offset {1}.\",d(e),i[0].offset)]:[];return new u(o,s)}),(function(t){var n=t.toString(),r=t.toString().split(\"Error: \");return r.length>1&&(n=r[1]),o.endsWith(n,\".\")&&(n=n.substr(0,n.length-1)),new u({},[a(\"json.schema.nocontent\",\"Unable to load schema from '{0}': {1}.\",d(e),n)])}))},e.prototype.resolveSchemaContent=function(e,t,n){var r=this,o=e.errors.slice(0),i=e.schema;if(i.$schema){var s=this.normalizeId(i.$schema);if(\"http://json-schema.org/draft-03/schema\"===s)return this.promise.resolve(new f({},[a(\"json.schema.draft03.notsupported\",\"Draft-03 schemas are not supported.\")]));\"https://json-schema.org/draft/2019-09/schema\"===s&&e.errors.push(a(\"json.schema.draft201909.notsupported\",\"Draft 2019-09 schemas are not yet fully supported.\"))}var c=this.contextService,u=function(e,t,n,r){var i=function(e,t){if(!t)return e;var n=e;return\"/\"===t[0]&&(t=t.substr(1)),t.split(\"/\").some((function(e){return!(n=n[e])})),n}(t,r);if(i)for(var s in i)i.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(e[s]=i[s]);else o.push(a(\"json.schema.invalidref\",\"$ref '{0}' in '{1}' can not be resolved.\",r,n))},l=function(e,t,n,i,s){c&&!/^\\w+:\\/\\/.*/.test(t)&&(t=c.resolveRelativePath(t,i)),t=r.normalizeId(t);var f=r.getOrAddSchemaHandle(t);return f.getUnresolvedSchema().then((function(r){if(s[t]=!0,r.errors.length){var i=n?t+\"#\"+n:t;o.push(a(\"json.schema.problemloadingref\",\"Problems loading reference '{0}': {1}\",i,r.errors[0]))}return u(e,r.schema,t,n),d(e,r.schema,t,f.dependencies)}))},d=function(e,t,n,o){if(!e||\"object\"!=typeof e)return Promise.resolve(null);for(var i=[e],a=[],s=[],c=function(e){for(var r=[];e.$ref;){var a=e.$ref,c=a.split(\"#\",2);if(delete e.$ref,c[0].length>0)return void s.push(l(e,c[0],c[1],n,o));-1===r.indexOf(a)&&(u(e,t,n,c[1]),r.push(a))}!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];\"object\"==typeof o&&i.push(o)}}(e.items,e.additionalProperties,e.not,e.contains,e.propertyNames,e.if,e.then,e.else),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(\"object\"==typeof o)for(var a in o){var s=o[a];\"object\"==typeof s&&i.push(s)}}}(e.definitions,e.properties,e.patternProperties,e.dependencies),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var o=r[n];if(Array.isArray(o))for(var a=0,s=o;a<s.length;a++){var c=s[a];\"object\"==typeof c&&i.push(c)}}}(e.anyOf,e.allOf,e.oneOf,e.items)};i.length;){var f=i.pop();a.indexOf(f)>=0||(a.push(f),c(f))}return r.promise.all(s)};return d(i,i,t,n).then((function(e){return new f(i,o)}))},e.prototype.getSchemaForResource=function(e,t){if(t&&t.root&&\"object\"===t.root.type){var n=t.root.properties.filter((function(e){return\"$schema\"===e.keyNode.value&&e.valueNode&&\"string\"===e.valueNode.type}));if(n.length>0){var r=i.getNodeValue(n[0].valueNode);if(r&&o.startsWith(r,\".\")&&this.contextService&&(r=this.contextService.resolveRelativePath(r,e)),r){var a=this.normalizeId(r);return this.getOrAddSchemaHandle(a).getResolvedSchema()}}}for(var s=Object.create(null),c=[],u=0,f=this.filePatternAssociations;u<f.length;u++){var l=f[u];if(l.matchesPattern(e))for(var d=0,p=l.getSchemas();d<p.length;d++){var h=p[d];s[h]||(c.push(h),s[h]=!0)}}return c.length>0?this.createCombinedSchema(e,c).getResolvedSchema():this.promise.resolve(null)},e.prototype.createCombinedSchema=function(e,t){if(1===t.length)return this.getOrAddSchemaHandle(t[0]);var n=\"schemaservice://combinedSchema/\"+encodeURIComponent(e),r={allOf:t.map((function(e){return{$ref:e}}))};return this.addSchemaHandle(n,r)},e}();function d(e){try{var t=r.URI.parse(e);if(\"file\"===t.scheme)return t.fsPath}catch(e){}return e}t.JSONSchemaService=l})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonValidation\",[\"require\",\"exports\",\"./jsonSchemaService\",\"../jsonLanguageTypes\",\"vscode-nls\",\"../utils/objects\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./jsonSchemaService\"),r=e(\"../jsonLanguageTypes\"),o=e(\"vscode-nls\"),i=e(\"../utils/objects\"),a=o.loadMessageBundle(),s=function(){function e(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}return e.prototype.configure=function(e){e&&(this.validationEnabled=e.validate,this.commentSeverity=e.allowComments?void 0:r.DiagnosticSeverity.Error)},e.prototype.doValidation=function(e,t,o,s){var f=this;if(!this.validationEnabled)return this.promise.resolve([]);var l=[],d={},p=function(e){var t=e.range.start.line+\" \"+e.range.start.character+\" \"+e.message;d[t]||(d[t]=!0,l.push(e))},h=function(n){var s=o?u(o.trailingCommas):r.DiagnosticSeverity.Error,c=o?u(o.comments):f.commentSeverity;if(n){if(n.errors.length&&t.root){var d=t.root,h=\"object\"===d.type?d.properties[0]:null;if(h&&\"$schema\"===h.keyNode.value){var m=h.valueNode||h,g=r.Range.create(e.positionAt(m.offset),e.positionAt(m.offset+m.length));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}else{g=r.Range.create(e.positionAt(d.offset),e.positionAt(d.offset+1));p(r.Diagnostic.create(g,n.errors[0],r.DiagnosticSeverity.Warning,r.ErrorCode.SchemaResolveError))}}else{var v=t.validate(e,n.schema);v&&v.forEach(p)}(function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowComments))return t.allowComments;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return})(n.schema)&&(c=void 0),function e(t){if(t&&\"object\"==typeof t){if(i.isBoolean(t.allowTrailingCommas))return t.allowTrailingCommas;if(i.isBoolean(t.allowsTrailingCommas))return t.allowsTrailingCommas;if(t.allOf)for(var n=0,r=t.allOf;n<r.length;n++){var o=r[n],a=e(o);if(i.isBoolean(a))return a}}return}(n.schema)&&(s=void 0)}for(var y=0,b=t.syntaxErrors;y<b.length;y++){var x=b[y];if(x.code===r.ErrorCode.TrailingComma){if(\"number\"!=typeof s)continue;x.severity=s}p(x)}if(\"number\"==typeof c){var S=a(\"InvalidCommentToken\",\"Comments are not permitted in JSON.\");t.comments.forEach((function(e){p(r.Diagnostic.create(e,S,c,r.ErrorCode.CommentNotPermitted))}))}return l};if(s){var m=s.id||\"schemaservice://untitled/\"+c++;return this.jsonSchemaService.resolveSchemaContent(new n.UnresolvedSchema(s),m,{}).then((function(e){return h(e)}))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then((function(e){return h(e)}))},e}();t.JSONValidation=s;var c=0;function u(e){switch(e){case\"error\":return r.DiagnosticSeverity.Error;case\"warning\":return r.DiagnosticSeverity.Warning;case\"ignore\":return}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/utils/colors\",[\"require\",\"exports\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});function n(e){return e<48?0:e<=57?e-48:(e<97&&(e+=32),e>=97&&e<=102?e-97+10:0)}t.hexDigit=n,t.colorFromHex=function(e){if(\"#\"!==e[0])return null;switch(e.length){case 4:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*n(e.charCodeAt(1))/255,green:17*n(e.charCodeAt(2))/255,blue:17*n(e.charCodeAt(3))/255,alpha:17*n(e.charCodeAt(4))/255};case 7:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*n(e.charCodeAt(1))+n(e.charCodeAt(2)))/255,green:(16*n(e.charCodeAt(3))+n(e.charCodeAt(4)))/255,blue:(16*n(e.charCodeAt(5))+n(e.charCodeAt(6)))/255,alpha:(16*n(e.charCodeAt(7))+n(e.charCodeAt(8)))/255}}return null},t.colorFrom256RGB=function(e,t,n,r){return void 0===r&&(r=1),{red:e/255,green:t/255,blue:n/255,alpha:r}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonDocumentSymbols\",[\"require\",\"exports\",\"../parser/jsonParser\",\"../utils/strings\",\"../utils/colors\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../parser/jsonParser\"),r=e(\"../utils/strings\"),o=e(\"../utils/colors\"),i=e(\"../jsonLanguageTypes\"),a=function(){function e(e){this.schemaService=e}return e.prototype.findDocumentSymbols=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,f=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===f||r.endsWith(f.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var l=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=i.Location.create(e.uri,s(e,h));if(l.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,location:y}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),l}}}return l}for(var b=[{node:c,containerName:\"\"}],x=0,S=!1,C=[],j=function(t,n){\"array\"===t.type?t.items.forEach((function(e){e&&b.push({node:e,containerName:n})})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=i.Location.create(e.uri,s(e,t)),c=n?n+\".\"+t.keyNode.value:t.keyNode.value;C.push({name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),location:o,containerName:n}),b.push({node:r,containerName:c})}else S=!0}))};x<b.length;){var T=b[x++];j(T.node,T.containerName)}return S&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),C},e.prototype.findDocumentSymbols2=function(e,t,o){var a=this;void 0===o&&(o={resultLimit:Number.MAX_VALUE});var c=t.root;if(!c)return null;var u=o.resultLimit,f=e.uri;if((\"vscode://defaultsettings/keybindings.json\"===f||r.endsWith(f.toLowerCase(),\"/user/keybindings.json\"))&&\"array\"===c.type){for(var l=[],d=0,p=c.items;d<p.length;d++){var h=p[d];if(\"object\"===h.type)for(var m=0,g=h.properties;m<g.length;m++){var v=g[m];if(\"key\"===v.keyNode.value&&v.valueNode){var y=s(e,h),b=s(e,v.keyNode);if(l.push({name:n.getNodeValue(v.valueNode),kind:i.SymbolKind.Function,range:y,selectionRange:b}),--u<=0)return o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),l}}}return l}for(var x=[],S=[{node:c,result:x}],C=0,j=!1,T=function(t,n){\"array\"===t.type?t.items.forEach((function(t,r){if(t)if(u>0){u--;var o=s(e,t),i=o,c={name:String(r),kind:a.getSymbolKind(t.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:t})}else j=!0})):\"object\"===t.type&&t.properties.forEach((function(t){var r=t.valueNode;if(r)if(u>0){u--;var o=s(e,t),i=s(e,t.keyNode),c={name:a.getKeyLabel(t),kind:a.getSymbolKind(r.type),range:o,selectionRange:i,children:[]};n.push(c),S.push({result:c.children,node:r})}else j=!0}))};C<S.length;){var k=S[C++];T(k.node,k.result)}return j&&o&&o.onResultLimitExceeded&&o.onResultLimitExceeded(f),x},e.prototype.getSymbolKind=function(e){switch(e){case\"object\":return i.SymbolKind.Module;case\"string\":return i.SymbolKind.String;case\"number\":return i.SymbolKind.Number;case\"array\":return i.SymbolKind.Array;case\"boolean\":return i.SymbolKind.Boolean;default:return i.SymbolKind.Variable}},e.prototype.getKeyLabel=function(e){var t=e.keyNode.value;return t&&(t=t.replace(/[\\n]/g,\"↵\")),t&&t.trim()?t:'\"'+t+'\"'},e.prototype.findDocumentColors=function(e,t,r){return this.schemaService.getSchemaForResource(e.uri,t).then((function(i){var a=[];if(i)for(var c=r&&\"number\"==typeof r.resultLimit?r.resultLimit:Number.MAX_VALUE,u={},f=0,l=t.getMatchingSchemas(i.schema);f<l.length;f++){var d=l[f];if(!d.inverted&&d.schema&&(\"color\"===d.schema.format||\"color-hex\"===d.schema.format)&&d.node&&\"string\"===d.node.type){var p=String(d.node.offset);if(!u[p]){var h=o.colorFromHex(n.getNodeValue(d.node));if(h){var m=s(e,d.node);a.push({color:h,range:m})}if(u[p]=!0,--c<=0)return r&&r.onResultLimitExceeded&&r.onResultLimitExceeded(e.uri),a}}}return a}))},e.prototype.getColorPresentations=function(e,t,n,r){var o,a=[],s=Math.round(255*n.red),c=Math.round(255*n.green),u=Math.round(255*n.blue);function f(e){var t=e.toString(16);return 2!==t.length?\"0\"+t:t}return o=1===n.alpha?\"#\"+f(s)+f(c)+f(u):\"#\"+f(s)+f(c)+f(u)+f(Math.round(255*n.alpha)),a.push({label:o,textEdit:i.TextEdit.replace(r,JSON.stringify(o))}),a},e}();function s(e,t){return i.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length))}t.JSONDocumentSymbols=a})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/configuration\",[\"require\",\"exports\",\"vscode-nls\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"vscode-nls\").loadMessageBundle();t.schemaContributions={schemaAssociations:{},schemas:{\"http://json-schema.org/draft-04/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),$schema:\"http://json-schema.org/draft-04/schema#\",definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},positiveInteger:{type:\"integer\",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:\"#/definitions/positiveInteger\"},{default:0}]},simpleTypes:{type:\"string\",enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},minItems:1,uniqueItems:!0}},type:\"object\",properties:{id:{type:\"string\",format:\"uri\"},$schema:{type:\"string\",format:\"uri\"},title:{type:\"string\"},description:{type:\"string\"},default:{},multipleOf:{type:\"number\",minimum:0,exclusiveMinimum:!0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"boolean\",default:!1},minimum:{type:\"number\"},exclusiveMinimum:{type:\"boolean\",default:!1},maxLength:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minLength:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},pattern:{type:\"string\",format:\"regex\"},additionalItems:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:{}},maxItems:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minItems:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},uniqueItems:{type:\"boolean\",default:!1},maxProperties:{allOf:[{$ref:\"#/definitions/positiveInteger\"}]},minProperties:{allOf:[{$ref:\"#/definitions/positiveIntegerDefault0\"}]},required:{allOf:[{$ref:\"#/definitions/stringArray\"}]},additionalProperties:{anyOf:[{type:\"boolean\"},{$ref:\"#\"}],default:{}},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},enum:{type:\"array\",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:\"string\",enum:[\"date-time\",\"uri\",\"email\",\"hostname\",\"ipv4\",\"ipv6\",\"regex\"]},{type:\"string\"}]},allOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},anyOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},oneOf:{allOf:[{$ref:\"#/definitions/schemaArray\"}]},not:{allOf:[{$ref:\"#\"}]}},dependencies:{exclusiveMaximum:[\"maximum\"],exclusiveMinimum:[\"minimum\"]},default:{}},\"http://json-schema.org/draft-07/schema#\":{title:n(\"schema.json\",\"Describes a JSON file using a schema. See json-schema.org for more info.\"),definitions:{schemaArray:{type:\"array\",minItems:1,items:{$ref:\"#\"}},nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:\"#/definitions/nonNegativeInteger\"},{default:0}]},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}},type:[\"object\",\"boolean\"],properties:{$id:{type:\"string\",format:\"uri-reference\"},$schema:{type:\"string\",format:\"uri\"},$ref:{type:\"string\",format:\"uri-reference\"},$comment:{type:\"string\"},title:{type:\"string\"},description:{type:\"string\"},default:!0,readOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/definitions/nonNegativeInteger\"},minLength:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},additionalItems:{$ref:\"#\"},items:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/schemaArray\"}],default:!0},maxItems:{$ref:\"#/definitions/nonNegativeInteger\"},minItems:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},contains:{$ref:\"#\"},maxProperties:{$ref:\"#/definitions/nonNegativeInteger\"},minProperties:{$ref:\"#/definitions/nonNegativeIntegerDefault0\"},required:{$ref:\"#/definitions/stringArray\"},additionalProperties:{$ref:\"#\"},definitions:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},properties:{type:\"object\",additionalProperties:{$ref:\"#\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$ref:\"#\"},propertyNames:{format:\"regex\"},default:{}},dependencies:{type:\"object\",additionalProperties:{anyOf:[{$ref:\"#\"},{$ref:\"#/definitions/stringArray\"}]}},propertyNames:{$ref:\"#\"},const:!0,enum:{type:\"array\",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:\"#/definitions/simpleTypes\"},{type:\"array\",items:{$ref:\"#/definitions/simpleTypes\"},minItems:1,uniqueItems:!0}]},format:{type:\"string\"},contentMediaType:{type:\"string\"},contentEncoding:{type:\"string\"},if:{$ref:\"#\"},then:{$ref:\"#\"},else:{$ref:\"#\"},allOf:{$ref:\"#/definitions/schemaArray\"},anyOf:{$ref:\"#/definitions/schemaArray\"},oneOf:{$ref:\"#/definitions/schemaArray\"},not:{$ref:\"#\"}},default:!0}}};var r={id:n(\"schema.json.id\",\"A unique identifier for the schema.\"),$schema:n(\"schema.json.$schema\",\"The schema to verify this document against.\"),title:n(\"schema.json.title\",\"A descriptive title of the element.\"),description:n(\"schema.json.description\",\"A long description of the element. Used in hover menus and suggestions.\"),default:n(\"schema.json.default\",\"A default value. Used by suggestions.\"),multipleOf:n(\"schema.json.multipleOf\",\"A number that should cleanly divide the current value (i.e. have no remainder).\"),maximum:n(\"schema.json.maximum\",\"The maximum numerical value, inclusive by default.\"),exclusiveMaximum:n(\"schema.json.exclusiveMaximum\",\"Makes the maximum property exclusive.\"),minimum:n(\"schema.json.minimum\",\"The minimum numerical value, inclusive by default.\"),exclusiveMinimum:n(\"schema.json.exclusiveMininum\",\"Makes the minimum property exclusive.\"),maxLength:n(\"schema.json.maxLength\",\"The maximum length of a string.\"),minLength:n(\"schema.json.minLength\",\"The minimum length of a string.\"),pattern:n(\"schema.json.pattern\",\"A regular expression to match the string against. It is not implicitly anchored.\"),additionalItems:n(\"schema.json.additionalItems\",\"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),items:n(\"schema.json.items\",\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),maxItems:n(\"schema.json.maxItems\",\"The maximum number of items that can be inside an array. Inclusive.\"),minItems:n(\"schema.json.minItems\",\"The minimum number of items that can be inside an array. Inclusive.\"),uniqueItems:n(\"schema.json.uniqueItems\",\"If all of the items in the array must be unique. Defaults to false.\"),maxProperties:n(\"schema.json.maxProperties\",\"The maximum number of properties an object can have. Inclusive.\"),minProperties:n(\"schema.json.minProperties\",\"The minimum number of properties an object can have. Inclusive.\"),required:n(\"schema.json.required\",\"An array of strings that lists the names of all properties required on this object.\"),additionalProperties:n(\"schema.json.additionalProperties\",\"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),definitions:n(\"schema.json.definitions\",\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),properties:n(\"schema.json.properties\",\"A map of property names to schemas for each property.\"),patternProperties:n(\"schema.json.patternProperties\",\"A map of regular expressions on property names to schemas for matching properties.\"),dependencies:n(\"schema.json.dependencies\",\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),enum:n(\"schema.json.enum\",\"The set of literal values that are valid.\"),type:n(\"schema.json.type\",\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),format:n(\"schema.json.format\",\"Describes the format expected for the value.\"),allOf:n(\"schema.json.allOf\",\"An array of schemas, all of which must match.\"),anyOf:n(\"schema.json.anyOf\",\"An array of schemas, where at least one must match.\"),oneOf:n(\"schema.json.oneOf\",\"An array of schemas, exactly one of which must match.\"),not:n(\"schema.json.not\",\"A schema which must not match.\"),$id:n(\"schema.json.$id\",\"A unique identifier for the schema.\"),$ref:n(\"schema.json.$ref\",\"Reference a definition hosted on any location.\"),$comment:n(\"schema.json.$comment\",\"Comments from schema authors to readers or maintainers of the schema.\"),readOnly:n(\"schema.json.readOnly\",\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),examples:n(\"schema.json.examples\",\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),contains:n(\"schema.json.contains\",'An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema.'),propertyNames:n(\"schema.json.propertyNames\",\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),const:n(\"schema.json.const\",\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),contentMediaType:n(\"schema.json.contentMediaType\",\"Describes the media type of a string property.\"),contentEncoding:n(\"schema.json.contentEncoding\",\"Describes the content encoding of a string property.\"),if:n(\"schema.json.if\",'The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated.'),then:n(\"schema.json.then\",'The \"if\" subschema is used for validation when the \"if\" subschema succeeds.'),else:n(\"schema.json.else\",'The \"else\" subschema is used for validation when the \"if\" subschema fails.')};for(var o in t.schemaContributions.schemas){var i=t.schemaContributions.schemas[o];for(var a in i.properties){var s=i.properties[a];!0===s&&(s=i.properties[a]={});var c=r[a];c?s.description=c:console.log(a+\": localize('schema.json.\"+a+'\\', \"\")')}}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonFolding\",[\"require\",\"exports\",\"jsonc-parser\",\"../jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"jsonc-parser\"),r=e(\"../jsonLanguageTypes\");t.getFoldingRanges=function(e,t){var o=[],i=[],a=[],s=-1,c=n.createScanner(e.getText(),!1),u=c.scan();function f(e){o.push(e),i.push(a.length)}for(;17!==u;){switch(u){case 1:case 3:var l={startLine:h=e.positionAt(c.getTokenOffset()).line,endLine:h,kind:1===u?\"object\":\"array\"};a.push(l);break;case 2:case 4:var d=2===u?\"object\":\"array\";if(a.length>0&&a[a.length-1].kind===d){l=a.pop();var p=e.positionAt(c.getTokenOffset()).line;l&&p>l.startLine+1&&s!==l.startLine&&(l.endLine=p-1,f(l),s=l.startLine)}break;case 13:var h=e.positionAt(c.getTokenOffset()).line,m=e.positionAt(c.getTokenOffset()+c.getTokenLength()).line;1===c.getTokenError()&&h+1<e.lineCount?c.setPosition(e.offsetAt(r.Position.create(h+1,0))):h<m&&(f({startLine:h,endLine:m,kind:r.FoldingRangeKind.Comment}),s=h);break;case 12:var g=e.getText().substr(c.getTokenOffset(),c.getTokenLength()).match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);if(g){p=e.positionAt(c.getTokenOffset()).line;if(g[1]){l={startLine:p,endLine:p,kind:r.FoldingRangeKind.Region};a.push(l)}else{for(var v=a.length-1;v>=0&&a[v].kind!==r.FoldingRangeKind.Region;)v--;if(v>=0){l=a[v];a.length=v,p>l.startLine&&s!==l.startLine&&(l.endLine=p,f(l),s=l.startLine)}}}}u=c.scan()}var y=t&&t.rangeLimit;if(\"number\"!=typeof y||o.length<=y)return o;t&&t.onRangeLimitExceeded&&t.onRangeLimitExceeded(e.uri);for(var b=[],x=0,S=i;x<S.length;x++){(O=S[x])<30&&(b[O]=(b[O]||0)+1)}var C=0,j=0;for(v=0;v<b.length;v++){var T=b[v];if(T){if(T+C>y){j=v;break}C+=T}}var k=[];for(v=0;v<o.length;v++){var O;\"number\"==typeof(O=i[v])&&(O<j||O===j&&C++<y)&&k.push(o[v])}return k}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/services/jsonSelectionRanges\",[\"require\",\"exports\",\"../jsonLanguageTypes\",\"jsonc-parser\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"../jsonLanguageTypes\"),r=e(\"jsonc-parser\");t.getSelectionRanges=function(e,t,o){function i(t,r){return n.Range.create(e.positionAt(t),e.positionAt(r))}var a=r.createScanner(e.getText(),!0);function s(e,t){return a.setPosition(e),a.scan()===t?a.getTokenOffset()+a.getTokenLength():-1}return t.map((function(t){for(var r=e.offsetAt(t),a=o.getNodeFromOffset(r,!0),c=[];a;){switch(a.type){case\"string\":case\"object\":case\"array\":var u=a.offset+1,f=a.offset+a.length-1;u<f&&r>=u&&r<=f&&c.push(i(u,f)),c.push(i(a.offset,a.offset+a.length));break;case\"number\":case\"boolean\":case\"null\":case\"property\":c.push(i(a.offset,a.offset+a.length))}if(\"property\"===a.type||a.parent&&\"array\"===a.parent.type){var l=s(a.offset+a.length,5);-1!==l&&c.push(i(a.offset,l))}a=a.parent}for(var d=void 0,p=c.length-1;p>=0;p--)d=n.SelectionRange.create(c[p],d);return d||(d=n.SelectionRange.create(n.Range.create(t,t))),d}))}})),function(e){if(\"object\"==typeof module&&\"object\"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else\"function\"==typeof define&&define.amd&&define(\"vscode-json-languageservice/jsonLanguageService\",[\"require\",\"exports\",\"./services/jsonCompletion\",\"./services/jsonHover\",\"./services/jsonValidation\",\"./services/jsonDocumentSymbols\",\"./parser/jsonParser\",\"./services/configuration\",\"./services/jsonSchemaService\",\"./services/jsonFolding\",\"./services/jsonSelectionRanges\",\"jsonc-parser\",\"./jsonLanguageTypes\",\"./jsonLanguageTypes\"],e)}((function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=e(\"./services/jsonCompletion\"),r=e(\"./services/jsonHover\"),o=e(\"./services/jsonValidation\"),i=e(\"./services/jsonDocumentSymbols\"),a=e(\"./parser/jsonParser\"),s=e(\"./services/configuration\"),c=e(\"./services/jsonSchemaService\"),u=e(\"./services/jsonFolding\"),f=e(\"./services/jsonSelectionRanges\"),l=e(\"jsonc-parser\"),d=e(\"./jsonLanguageTypes\");!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(e(\"./jsonLanguageTypes\")),t.getLanguageService=function(e){var t=e.promiseConstructor||Promise,p=new c.JSONSchemaService(e.schemaRequestService,e.workspaceContext,t);p.setSchemaContributions(s.schemaContributions);var h=new n.JSONCompletion(p,e.contributions,t,e.clientCapabilities),m=new r.JSONHover(p,e.contributions,t),g=new i.JSONDocumentSymbols(p),v=new o.JSONValidation(p,t);return{configure:function(e){p.clearExternalSchemas(),e.schemas&&e.schemas.forEach((function(e){p.registerExternalSchema(e.uri,e.fileMatch,e.schema)})),v.configure(e)},resetSchema:function(e){return p.onResourceChange(e)},doValidation:v.doValidation.bind(v),parseJSONDocument:function(e){return a.parse(e,{collectComments:!0})},newJSONDocument:function(e,t){return a.newJSONDocument(e,t)},doResolve:h.doResolve.bind(h),doComplete:h.doComplete.bind(h),findDocumentSymbols:g.findDocumentSymbols.bind(g),findDocumentSymbols2:g.findDocumentSymbols2.bind(g),findColorSymbols:function(e,t){return g.findDocumentColors(e,t).then((function(e){return e.map((function(e){return e.range}))}))},findDocumentColors:g.findDocumentColors.bind(g),getColorPresentations:g.getColorPresentations.bind(g),doHover:m.doHover.bind(m),getFoldingRanges:u.getFoldingRanges,getSelectionRanges:f.getSelectionRanges,format:function(e,t,n){var r=void 0;if(t){var o=e.offsetAt(t.start);r={offset:o,length:e.offsetAt(t.end)-o}}var i={tabSize:n?n.tabSize:4,insertSpaces:!n||n.insertSpaces,eol:\"\\n\"};return l.format(e.getText(),r,i).map((function(t){return d.TextEdit.replace(d.Range.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length)),t.content)}))}}}})),define(\"vscode-json-languageservice\",[\"vscode-json-languageservice/jsonLanguageService\"],(function(e){return e})),define(\"vs/language/json/jsonWorker\",[\"require\",\"exports\",\"vscode-json-languageservice\"],(function(e,t,n){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0}),\"undefined\"!=typeof fetch&&(r=function(e){return fetch(e).then((function(e){return e.text()}))});var o=function(){function e(e){this.wrapped=new Promise(e)}return e.prototype.then=function(e,t){return this.wrapped.then(e,t)},e.prototype.getWrapped=function(){return this.wrapped},e.resolve=function(e){return Promise.resolve(e)},e.reject=function(e){return Promise.reject(e)},e.all=function(e){return Promise.all(e)},e}(),i=function(){function e(e,t){this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageService=n.getLanguageService({schemaRequestService:t.enableSchemaRequest&&r,promiseConstructor:o}),this._languageService.configure(this._languageSettings)}return e.prototype.doValidation=function(e){var t=this._getTextDocument(e);if(t){var n=this._languageService.parseJSONDocument(t);return this._languageService.doValidation(t,n)}return Promise.resolve([])},e.prototype.doComplete=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n);return this._languageService.doComplete(n,t,r)},e.prototype.doResolve=function(e){return this._languageService.doResolve(e)},e.prototype.doHover=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n);return this._languageService.doHover(n,t,r)},e.prototype.format=function(e,t,n){var r=this._getTextDocument(e),o=this._languageService.format(r,t,n);return Promise.resolve(o)},e.prototype.resetSchema=function(e){return Promise.resolve(this._languageService.resetSchema(e))},e.prototype.findDocumentSymbols=function(e){var t=this._getTextDocument(e),n=this._languageService.parseJSONDocument(t),r=this._languageService.findDocumentSymbols(t,n);return Promise.resolve(r)},e.prototype.findDocumentColors=function(e){var t=this._getTextDocument(e),n=this._languageService.parseJSONDocument(t),r=this._languageService.findDocumentColors(t,n);return Promise.resolve(r)},e.prototype.getColorPresentations=function(e,t,n){var r=this._getTextDocument(e),o=this._languageService.parseJSONDocument(r),i=this._languageService.getColorPresentations(r,o,t,n);return Promise.resolve(i)},e.prototype.getFoldingRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.getFoldingRanges(n,t);return Promise.resolve(r)},e.prototype.getSelectionRanges=function(e,t){var n=this._getTextDocument(e),r=this._languageService.parseJSONDocument(n),o=this._languageService.getSelectionRanges(n,t,r);return Promise.resolve(o)},e.prototype._getTextDocument=function(e){for(var t=0,r=this._ctx.getMirrorModels();t<r.length;t++){var o=r[t];if(o.uri.toString()===e)return n.TextDocument.create(e,this._languageId,o.version,o.getValue())}return null},e}();t.JSONWorker=i,t.create=function(e,t){return new i(e,t)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/typescript/tsMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\nvar __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};define(\"vs/language/typescript/workerManager\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){var n=this;this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((function(){return n._stopWorker()})),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((function(){return n._updateExtraLibs()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()},e.prototype._updateExtraLibs=function(){return __awaiter(this,void 0,void 0,(function(){var e,t;return __generator(this,(function(n){switch(n.label){case 0:return this._worker?(e=++this._updateExtraLibsToken,[4,this._worker.getProxy()]):[2];case 1:return t=n.sent(),this._updateExtraLibsToken!==e?[2]:(t.updateExtraLibs(this._defaults.getExtraLibs()),[2])}}))}))},e.prototype._getClient=function(){var e=this;if(!this._client){this._worker=monaco.editor.createWebWorker({moduleId:\"vs/language/typescript/tsWorker\",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs()}});var t=this._worker.getProxy();this._defaults.getEagerModelSync()&&(t=t.then((function(t){return e._worker?e._worker.withSyncedResources(monaco.editor.getModels().filter((function(t){return t.getModeId()===e._modeId})).map((function(e){return e.uri}))):t}))),this._client=t}return this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){if(t._worker)return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();t.WorkerManager=n}));var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};define(\"vs/language/typescript/languageFeatures\",[\"require\",\"exports\"],(function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,r=monaco.Uri,o=monaco.Range;function i(e,t,n){if(void 0===n&&(n=0),\"string\"==typeof e)return e;if(void 0===e)return\"\";var r=\"\";if(n){r+=t;for(var o=0;o<n;o++)r+=\"  \"}if(r+=e.messageText,n++,e.next)for(var a=0,s=e.next;a<s.length;a++){r+=i(s[a],t,n)}return r}function a(e){return e?e.map((function(e){return e.text})).join(\"\"):\"\"}!function(e){e[e.None=0]=\"None\",e[e.Block=1]=\"Block\",e[e.Smart=2]=\"Smart\"}(n||(n={})),t.flattenDiagnosticMessageText=i;var s,u=function(){function e(e){this._worker=e}return e.prototype._textSpanToRange=function(e,t){var n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length);return{startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:r.lineNumber,endColumn:r.column}},e}();t.Adapter=u,function(e){e[e.Warning=0]=\"Warning\",e[e.Error=1]=\"Error\",e[e.Suggestion=2]=\"Suggestion\",e[e.Message=3]=\"Message\"}(s||(s={}));var c=function(e){function t(t,n,r){var o=e.call(this,r)||this;o._defaults=t,o._selector=n,o._disposables=[],o._listener=Object.create(null);var i=function(e){if(e.getModeId()===n){var t,r=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return o._doValidate(e)}),500)}));o._listener[e.uri.toString()]={dispose:function(){r.dispose(),clearTimeout(t)}},o._doValidate(e)}},a=function(e){monaco.editor.setModelMarkers(e,o._selector,[]);var t=e.uri.toString();o._listener[t]&&(o._listener[t].dispose(),delete o._listener[t])};o._disposables.push(monaco.editor.onDidCreateModel(i)),o._disposables.push(monaco.editor.onWillDisposeModel(a)),o._disposables.push(monaco.editor.onDidChangeModelLanguage((function(e){a(e.model),i(e.model)}))),o._disposables.push({dispose:function(){for(var e=0,t=monaco.editor.getModels();e<t.length;e++){var n=t[e];a(n)}}});var s=function(){for(var e=0,t=monaco.editor.getModels();e<t.length;e++){var n=t[e];a(n),i(n)}};return o._disposables.push(o._defaults.onDidChange(s)),o._disposables.push(o._defaults.onDidExtraLibsChange(s)),monaco.editor.getModels().forEach(i),o}return __extends(t,e),t.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},t.prototype._doValidate=function(e){return __awaiter(this,void 0,void 0,(function(){var t,n,r,o,i,a,s,u,c=this;return __generator(this,(function(l){switch(l.label){case 0:return[4,this._worker(e.uri)];case 1:return t=l.sent(),e.isDisposed()?[2]:(n=[],r=this._defaults.getDiagnosticsOptions(),o=r.noSyntaxValidation,i=r.noSemanticValidation,a=r.noSuggestionDiagnostics,o||n.push(t.getSyntacticDiagnostics(e.uri.toString())),i||n.push(t.getSemanticDiagnostics(e.uri.toString())),a||n.push(t.getSuggestionDiagnostics(e.uri.toString())),[4,Promise.all(n)]);case 2:return!(s=l.sent())||e.isDisposed()?[2]:(u=s.reduce((function(e,t){return t.concat(e)}),[]).filter((function(e){return-1===(c._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)})).map((function(t){return c._convertDiagnostics(e,t)})),monaco.editor.setModelMarkers(e,this._selector,u),[2])}}))}))},t.prototype._convertDiagnostics=function(e,t){var n=t.start||0,r=t.length||1,o=e.getPositionAt(n),a=o.lineNumber,s=o.column,u=e.getPositionAt(n+r),c=u.lineNumber,l=u.column;return{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:s,endLineNumber:c,endColumn:l,message:i(t.messageText,\"\\n\"),code:t.code.toString(),tags:t.reportsUnnecessary?[monaco.MarkerTag.Unnecessary]:[],relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}},t.prototype._convertRelatedInformation=function(e,t){if(t){var n=[];return t.forEach((function(t){var r=e;if(t.file){var o=monaco.Uri.parse(t.file.fileName);r=monaco.editor.getModel(o)}if(r){var a=t.start||0,s=t.length||1,u=r.getPositionAt(a),c=u.lineNumber,l=u.column,p=r.getPositionAt(a+s),g=p.lineNumber,d=p.column;n.push({resource:r.uri,startLineNumber:c,startColumn:l,endLineNumber:g,endColumn:d,message:i(t.messageText,\"\\n\")})}})),n}},t.prototype._tsDiagnosticCategoryToMarkerSeverity=function(e){switch(e){case s.Error:return monaco.MarkerSeverity.Error;case s.Message:return monaco.MarkerSeverity.Info;case s.Warning:return monaco.MarkerSeverity.Warning;case s.Suggestion:return monaco.MarkerSeverity.Hint}return monaco.MarkerSeverity.Info},t}(u);t.DiagnosticsAdapter=c;var l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"triggerCharacters\",{get:function(){return[\".\"]},enumerable:!0,configurable:!0}),t.prototype.provideCompletionItems=function(e,n,r,i){return __awaiter(this,void 0,void 0,(function(){var r,i,a,s,u;return __generator(this,(function(c){switch(c.label){case 0:return r=e.getWordUntilPosition(n),i=new o(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn),a=e.uri,s=e.getOffsetAt(n),[4,this._worker(a)];case 1:return[4,c.sent().getCompletionsAtPosition(a.toString(),s)];case 2:return!(u=c.sent())||e.isDisposed()?[2]:[2,{suggestions:u.entries.map((function(r){var s=i;if(r.replacementSpan){var u=e.getPositionAt(r.replacementSpan.start),c=e.getPositionAt(r.replacementSpan.start+r.replacementSpan.length);s=new o(u.lineNumber,u.column,c.lineNumber,c.column)}return{uri:a,position:n,range:s,label:r.name,insertText:r.name,sortText:r.sortText,kind:t.convertKind(r.kind)}}))}]}}))}))},t.prototype.resolveCompletionItem=function(e,n,r,o){return __awaiter(this,void 0,void 0,(function(){var n,o,i,s,u;return __generator(this,(function(c){switch(c.label){case 0:return o=(n=r).uri,i=n.position,s=e.getOffsetAt(i),[4,this._worker(o)];case 1:return[4,c.sent().getCompletionEntryDetails(o.toString(),s,n.label)];case 2:return!(u=c.sent())||e.isDisposed()?[2,n]:[2,{uri:o,position:i,label:u.name,kind:t.convertKind(u.kind),detail:a(u.displayParts),documentation:{value:a(u.documentation)}}]}}))}))},t.convertKind=function(e){switch(e){case _.primitiveType:case _.keyword:return monaco.languages.CompletionItemKind.Keyword;case _.variable:case _.localVariable:return monaco.languages.CompletionItemKind.Variable;case _.memberVariable:case _.memberGetAccessor:case _.memberSetAccessor:return monaco.languages.CompletionItemKind.Field;case _.function:case _.memberFunction:case _.constructSignature:case _.callSignature:case _.indexSignature:return monaco.languages.CompletionItemKind.Function;case _.enum:return monaco.languages.CompletionItemKind.Enum;case _.module:return monaco.languages.CompletionItemKind.Module;case _.class:return monaco.languages.CompletionItemKind.Class;case _.interface:return monaco.languages.CompletionItemKind.Interface;case _.warning:return monaco.languages.CompletionItemKind.File}return monaco.languages.CompletionItemKind.Property},t}(u);t.SuggestAdapter=l;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.signatureHelpTriggerCharacters=[\"(\",\",\"],t}return __extends(t,e),t.prototype.provideSignatureHelp=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i;return __generator(this,(function(s){switch(s.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,s.sent().getSignatureHelpItems(n.toString(),r)];case 2:return!(o=s.sent())||e.isDisposed()?[2]:(i={activeSignature:o.selectedItemIndex,activeParameter:o.argumentIndex,signatures:[]},o.items.forEach((function(e){var t={label:\"\",parameters:[]};t.documentation=a(e.documentation),t.label+=a(e.prefixDisplayParts),e.parameters.forEach((function(n,r,o){var i=a(n.displayParts),s={label:i,documentation:a(n.documentation)};t.label+=i,t.parameters.push(s),r<o.length-1&&(t.label+=a(e.separatorDisplayParts))})),t.label+=a(e.suffixDisplayParts),i.signatures.push(t)})),[2,{value:i,dispose:function(){}}])}}))}))},t}(u);t.SignatureHelpAdapter=p;var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideHover=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i,s,u;return __generator(this,(function(c){switch(c.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,c.sent().getQuickInfoAtPosition(n.toString(),r)];case 2:return!(o=c.sent())||e.isDisposed()?[2]:(i=a(o.documentation),s=o.tags?o.tags.map((function(e){var t=\"*@\"+e.name+\"*\";return e.text?t+(e.text.match(/\\r\\n|\\n/g)?\" \\n\"+e.text:\" - \"+e.text):t})).join(\"  \\n\\n\"):\"\",u=a(o.displayParts),[2,{range:this._textSpanToRange(e,o.textSpan),contents:[{value:\"```js\\n\"+u+\"\\n```\\n\"},{value:i+(s?\"\\n\\n\"+s:\"\")}]}])}}))}))},t}(u);t.QuickInfoAdapter=g;var d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentHighlights=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i=this;return __generator(this,(function(a){switch(a.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,a.sent().getOccurrencesAtPosition(n.toString(),r)];case 2:return!(o=a.sent())||e.isDisposed()?[2]:[2,o.map((function(t){return{range:i._textSpanToRange(e,t.textSpan),kind:t.isWriteAccess?monaco.languages.DocumentHighlightKind.Write:monaco.languages.DocumentHighlightKind.Text}}))]}}))}))},t}(u);t.OccurrencesAdapter=d;var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDefinition=function(e,t,n){return __awaiter(this,void 0,void 0,(function(){var n,o,i,a,s,u,c,l,p;return __generator(this,(function(g){switch(g.label){case 0:return n=e.uri,o=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,g.sent().getDefinitionAtPosition(n.toString(),o)];case 2:if(!(i=g.sent())||e.isDisposed())return[2];for(a=[],s=0,u=i;s<u.length;s++)c=u[s],l=r.parse(c.fileName),(p=monaco.editor.getModel(l))&&a.push({uri:l,range:this._textSpanToRange(p,c.textSpan)});return[2,a]}}))}))},t}(u);t.DefinitionAdapter=f;var m=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideReferences=function(e,t,n,o){return __awaiter(this,void 0,void 0,(function(){var n,o,i,a,s,u,c,l,p;return __generator(this,(function(g){switch(g.label){case 0:return n=e.uri,o=e.getOffsetAt(t),[4,this._worker(n)];case 1:return[4,g.sent().getReferencesAtPosition(n.toString(),o)];case 2:if(!(i=g.sent())||e.isDisposed())return[2];for(a=[],s=0,u=i;s<u.length;s++)c=u[s],l=r.parse(c.fileName),(p=monaco.editor.getModel(l))&&a.push({uri:l,range:this._textSpanToRange(p,c.textSpan)});return[2,a]}}))}))},t}(u);t.ReferenceAdapter=m;var h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentSymbols=function(e,t){return __awaiter(this,void 0,void 0,(function(){var t,n,r,o,i=this;return __generator(this,(function(a){switch(a.label){case 0:return t=e.uri,[4,this._worker(t)];case 1:return[4,a.sent().getNavigationBarItems(t.toString())];case 2:return!(n=a.sent())||e.isDisposed()?[2]:(r=function(t,n,o){var a={name:n.text,detail:\"\",kind:v[n.kind]||monaco.languages.SymbolKind.Variable,range:i._textSpanToRange(e,n.spans[0]),selectionRange:i._textSpanToRange(e,n.spans[0]),tags:[],containerName:o};if(n.childItems&&n.childItems.length>0)for(var s=0,u=n.childItems;s<u.length;s++){var c=u[s];r(t,c,a.name)}t.push(a)},o=[],n.forEach((function(e){return r(o,e)})),[2,o])}}))}))},t}(u);t.OutlineAdapter=h;var _=function(){function e(){}return e.unknown=\"\",e.keyword=\"keyword\",e.script=\"script\",e.module=\"module\",e.class=\"class\",e.interface=\"interface\",e.type=\"type\",e.enum=\"enum\",e.variable=\"var\",e.localVariable=\"local var\",e.function=\"function\",e.localFunction=\"local function\",e.memberFunction=\"method\",e.memberGetAccessor=\"getter\",e.memberSetAccessor=\"setter\",e.memberVariable=\"property\",e.constructorImplementation=\"constructor\",e.callSignature=\"call\",e.indexSignature=\"index\",e.constructSignature=\"construct\",e.parameter=\"parameter\",e.typeParameter=\"type parameter\",e.primitiveType=\"primitive type\",e.label=\"label\",e.alias=\"alias\",e.const=\"const\",e.let=\"let\",e.warning=\"warning\",e}();t.Kind=_;var v=Object.create(null);v[_.module]=monaco.languages.SymbolKind.Module,v[_.class]=monaco.languages.SymbolKind.Class,v[_.enum]=monaco.languages.SymbolKind.Enum,v[_.interface]=monaco.languages.SymbolKind.Interface,v[_.memberFunction]=monaco.languages.SymbolKind.Method,v[_.memberVariable]=monaco.languages.SymbolKind.Property,v[_.memberGetAccessor]=monaco.languages.SymbolKind.Property,v[_.memberSetAccessor]=monaco.languages.SymbolKind.Property,v[_.variable]=monaco.languages.SymbolKind.Variable,v[_.const]=monaco.languages.SymbolKind.Variable,v[_.localVariable]=monaco.languages.SymbolKind.Variable,v[_.variable]=monaco.languages.SymbolKind.Variable,v[_.function]=monaco.languages.SymbolKind.Function,v[_.localFunction]=monaco.languages.SymbolKind.Function;var b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t._convertOptions=function(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:n.Smart,NewLineCharacter:\"\\n\",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}},t.prototype._convertTextChanges=function(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}},t}(u);t.FormatHelper=b;var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s=this;return __generator(this,(function(u){switch(u.label){case 0:return r=e.uri,o=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),i=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),[4,this._worker(r)];case 1:return[4,u.sent().getFormattingEditsForRange(r.toString(),o,i,b._convertOptions(n))];case 2:return!(a=u.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return s._convertTextChanges(e,t)}))]}}))}))},t}(b);t.FormatAdapter=y;var S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),Object.defineProperty(t.prototype,\"autoFormatTriggerCharacters\",{get:function(){return[\";\",\"}\",\"\\n\"]},enumerable:!0,configurable:!0}),t.prototype.provideOnTypeFormattingEdits=function(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function(){var o,i,a,s=this;return __generator(this,(function(u){switch(u.label){case 0:return o=e.uri,i=e.getOffsetAt(t),[4,this._worker(o)];case 1:return[4,u.sent().getFormattingEditsAfterKeystroke(o.toString(),i,n,b._convertOptions(r))];case 2:return!(a=u.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return s._convertTextChanges(e,t)}))]}}))}))},t}(b);t.FormatOnTypeAdapter=S;var w=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideCodeActions=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s,u,c=this;return __generator(this,(function(l){switch(l.label){case 0:return r=e.uri,o=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),i=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),a=b._convertOptions(e.getOptions()),s=n.markers.filter((function(e){return e.code})).map((function(e){return e.code})).map(Number),[4,this._worker(r)];case 1:return[4,l.sent().getCodeFixesAtPosition(r.toString(),o,i,s,a)];case 2:return!(u=l.sent())||e.isDisposed()?[2]:[2,{actions:u.filter((function(e){return 0===e.changes.filter((function(e){return e.isNewFile})).length})).map((function(t){return c._tsCodeFixActionToMonacoCodeAction(e,n,t)})),dispose:function(){}}]}}))}))},t.prototype._tsCodeFixActionToMonacoCodeAction=function(e,t,n){for(var r=[],o=0,i=n.changes;o<i.length;o++)for(var a=0,s=i[o].textChanges;a<s.length;a++){var u=s[a];r.push({resource:e.uri,edit:{range:this._textSpanToRange(e,u.span),text:u.newText}})}return{title:n.description,edit:{edits:r},diagnostics:t.markers,kind:\"quickfix\"}},t}(b);t.CodeActionAdaptor=w;var x=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.provideRenameEdits=function(e,t,n,r){return __awaiter(this,void 0,void 0,(function(){var r,o,i,a,s,u,c,l,p,g;return __generator(this,(function(d){switch(d.label){case 0:return r=e.uri,o=r.toString(),i=e.getOffsetAt(t),[4,this._worker(r)];case 1:return[4,(a=d.sent()).getRenameInfo(o,i,{allowRenameOfImportPath:!1})];case 2:if(!1===(s=d.sent()).canRename)return[2,{edits:[],rejectReason:s.localizedErrorMessage}];if(void 0!==s.fileToRename)throw new Error(\"Renaming files is not supported.\");return[4,a.findRenameLocations(o,i,!1,!1,!1)];case 3:if(!(u=d.sent())||e.isDisposed())return[2];for(c=[],l=0,p=u;l<p.length;l++)g=p[l],c.push({resource:monaco.Uri.parse(g.fileName),edit:{range:this._textSpanToRange(e,g.textSpan),text:n}});return[2,{edits:c}]}}))}))},t}(u);t.RenameAdapter=x})),define(\"vs/language/typescript/tsMode\",[\"require\",\"exports\",\"./workerManager\",\"./languageFeatures\"],(function(e,t,n,r){\"use strict\";var o,i;function a(e,t){var o=new n.WorkerManager(t,e),i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.getLanguageServiceWorker.apply(o,e)};return monaco.languages.registerCompletionItemProvider(t,new r.SuggestAdapter(i)),monaco.languages.registerSignatureHelpProvider(t,new r.SignatureHelpAdapter(i)),monaco.languages.registerHoverProvider(t,new r.QuickInfoAdapter(i)),monaco.languages.registerDocumentHighlightProvider(t,new r.OccurrencesAdapter(i)),monaco.languages.registerDefinitionProvider(t,new r.DefinitionAdapter(i)),monaco.languages.registerReferenceProvider(t,new r.ReferenceAdapter(i)),monaco.languages.registerDocumentSymbolProvider(t,new r.OutlineAdapter(i)),monaco.languages.registerDocumentRangeFormattingEditProvider(t,new r.FormatAdapter(i)),monaco.languages.registerOnTypeFormattingEditProvider(t,new r.FormatOnTypeAdapter(i)),monaco.languages.registerCodeActionProvider(t,new r.CodeActionAdaptor(i)),monaco.languages.registerRenameProvider(t,new r.RenameAdapter(i)),new r.DiagnosticsAdapter(e,t,i),i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.setupTypeScript=function(e){i=a(e,\"typescript\")},t.setupJavaScript=function(e){o=a(e,\"javascript\")},t.getJavaScriptWorker=function(){return new Promise((function(e,t){if(!o)return t(\"JavaScript not registered!\");e(o)}))},t.getTypeScriptWorker=function(){return new Promise((function(e,t){if(!i)return t(\"TypeScript not registered!\");e(i)}))}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/language/typescript/tsWorker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * monaco-typescript version: 3.7.0(887411e17c69d048791cdbb2763496bd6bcd133a)\n * Released under the MIT license\n * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md\n *-----------------------------------------------------------------------------*/\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,n=0,t=arguments.length;n<t;n++)e+=arguments[n].length;var r=Array(e),a=0;for(n=0;n<t;n++)for(var i=arguments[n],o=0,s=i.length;o<s;o++,a++)r[a]=i[o];return r},__assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var a in n=arguments[t])Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a]);return e}).apply(this,arguments)},__generator=this&&this.__generator||function(e,n){var t,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(t)throw new TypeError(\"Generator is already executing.\");for(;o;)try{if(t=1,r&&(a=2&i[0]?r.return:i[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,i[1])).done)return a;switch(r=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,r=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=n.call(e,o)}catch(e){i=[6,e],r=0}finally{t=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},__makeTemplateObject=this&&this.__makeTemplateObject||function(e,n){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:n}):e.raw=n,e},__extends=this&&this.__extends||function(){var e=function(n,t){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(n,t)};return function(n,t){function r(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}();!function(e){e.createMapShim=function(){function e(){var e=Object.create(null);return e.__=void 0,delete e.__,e}var n=function(){function e(e,n){this.currentEntry=e,this.selector=n}return e.prototype.next=function(){for(;this.currentEntry;){var e=!!this.currentEntry.skipNext;if(this.currentEntry=this.currentEntry.nextEntry,!e)break}return this.currentEntry?{value:this.selector(this.currentEntry.key,this.currentEntry.value),done:!1}:{value:void 0,done:!0}},e}();return(function(){function t(){this.data=e(),this.size=0,this.firstEntry={},this.lastEntry=this.firstEntry}return t.prototype.get=function(e){var n=this.data[e];return n&&n.value},t.prototype.set=function(e,n){if(this.has(e))this.data[e].value=n;else{this.size++;var t={key:e,value:n};this.data[e]=t;var r=this.lastEntry;r.nextEntry=t,t.previousEntry=r,this.lastEntry=t}return this},t.prototype.has=function(e){return e in this.data},t.prototype.delete=function(e){if(this.has(e)){this.size--;var n=this.data[e];delete this.data[e];var t=n.previousEntry;return t.nextEntry=n.nextEntry,n.nextEntry&&(n.nextEntry.previousEntry=t),this.lastEntry===n&&(this.lastEntry=t),n.previousEntry=void 0,n.nextEntry=t,n.skipNext=!0,!0}return!1},t.prototype.clear=function(){this.data=e(),this.size=0;for(var n=this.firstEntry,t=n.nextEntry;t;){var r=t.nextEntry;t.previousEntry=void 0,t.nextEntry=n,t.skipNext=!0,t=r}n.nextEntry=void 0,this.lastEntry=n},t.prototype.keys=function(){return new n(this.firstEntry,(function(e){return e}))},t.prototype.values=function(){return new n(this.firstEntry,(function(e,n){return n}))},t.prototype.entries=function(){return new n(this.firstEntry,(function(e,n){return[e,n]}))},t.prototype.forEach=function(e){for(var n=this.entries();;){var t=n.next();if(t.done)break;var r=t.value,a=r[0];e(r[1],a)}},t}())}}(ts||(ts={})),function(e){e.versionMajorMinor=\"3.7\",e.version=e.versionMajorMinor+\".5\"}(ts||(ts={})),function(e){!function(e){e[e.LessThan=-1]=\"LessThan\",e[e.EqualTo=0]=\"EqualTo\",e[e.GreaterThan=1]=\"GreaterThan\"}(e.Comparison||(e.Comparison={}))}(ts||(ts={})),function(e){e.tryGetNativeMap=function(){return\"undefined\"!=typeof Map&&\"entries\"in Map.prototype?Map:void 0}}(ts||(ts={})),function(e){function n(){return new e.Map}function t(e,n,t){if(void 0===t&&(t=L),e)for(var r=0,a=e;r<a.length;r++){if(t(a[r],n))return!0}return!1}function r(e,n){if(e){if(!n)return e.length>0;for(var t=0,r=e;t<r.length;t++){if(n(r[t]))return!0}}return!1}function a(e,n){return void 0===n?e:void 0===e?[n]:(e.push(n),e)}function i(e,n){return n<0?e.length+n:n}function o(e,n,t,r){if(void 0===n||0===n.length)return e;if(void 0===e)return n.slice(t,r);t=void 0===t?0:i(n,t),r=void 0===r?n.length:i(n,r);for(var a=t;a<r&&a<n.length;a++)void 0!==n[a]&&e.push(n[a]);return e}function s(e,n,r){return!t(e,n,r)&&(e.push(n),!0)}function c(e,n,t){n.sort((function(n,r){return t(e[n],e[r])||A(n,r)}))}function l(e,n){return 0===e.length?e:e.slice().sort(n)}function u(e){var n=0;return{next:function(){return n===e.length?{value:void 0,done:!0}:(n++,{value:e[n-1],done:!1})}}}function d(e,n,t,r,a){return p(e,t(n),t,r,a)}function p(e,n,t,a,i){if(!r(e))return-1;for(var o=i||0,s=e.length-1;o<=s;){var c=o+(s-o>>1);switch(a(t(e[c]),n)){case-1:o=c+1;break;case 0:return c;case 1:s=c-1}}return~o}function m(e,n,t,r,a){if(e&&e.length>0){var i=e.length;if(i>0){var o=void 0===r||r<0?0:r,s=void 0===a||o+a>i-1?i-1:o+a,c=void 0;for(arguments.length<=2?(c=e[o],o++):c=t;o<=s;)c=n(c,e[o],o),o++;return c}}return t}e.emptyArray=[],e.Map=e.tryGetNativeMap()||function(){if(\"function\"==typeof e.createMapShim)return e.createMapShim();throw new Error(\"TypeScript requires an environment that provides a compatible native Map implementation.\")}(),e.createMap=n,e.createMapFromEntries=function(e){for(var t=n(),r=0,a=e;r<a.length;r++){var i=a[r],o=i[0],s=i[1];t.set(o,s)}return t},e.createMapFromTemplate=function(n){var t=new e.Map;for(var r in n)f.call(n,r)&&t.set(r,n[r]);return t},e.length=function(e){return e?e.length:0},e.forEach=function(e,n){if(e)for(var t=0;t<e.length;t++){var r=n(e[t],t);if(r)return r}},e.forEachRight=function(e,n){if(e)for(var t=e.length-1;t>=0;t--){var r=n(e[t],t);if(r)return r}},e.firstDefined=function(e,n){if(void 0!==e)for(var t=0;t<e.length;t++){var r=n(e[t],t);if(void 0!==r)return r}},e.firstDefinedIterator=function(e,n){for(;;){var t=e.next();if(t.done)return;var r=n(t.value);if(void 0!==r)return r}},e.zipWith=function(n,t,r){var a=[];e.Debug.assertEqual(n.length,t.length);for(var i=0;i<n.length;i++)a.push(r(n[i],t[i],i));return a},e.zipToIterator=function(n,t){e.Debug.assertEqual(n.length,t.length);var r=0;return{next:function(){return r===n.length?{value:void 0,done:!0}:(r++,{value:[n[r-1],t[r-1]],done:!1})}}},e.zipToMap=function(t,r){e.Debug.assert(t.length===r.length);for(var a=n(),i=0;i<t.length;++i)a.set(t[i],r[i]);return a},e.every=function(e,n){if(e)for(var t=0;t<e.length;t++)if(!n(e[t],t))return!1;return!0},e.find=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(n(r,t))return r}},e.findLast=function(e,n){for(var t=e.length-1;t>=0;t--){var r=e[t];if(n(r,t))return r}},e.findIndex=function(e,n,t){for(var r=t||0;r<e.length;r++)if(n(e[r],r))return r;return-1},e.findLastIndex=function(e,n,t){for(var r=void 0===t?e.length-1:t;r>=0;r--)if(n(e[r],r))return r;return-1},e.findMap=function(n,t){for(var r=0;r<n.length;r++){var a=t(n[r],r);if(a)return a}return e.Debug.fail()},e.contains=t,e.arraysEqual=function(e,n,t){return void 0===t&&(t=L),e.length===n.length&&e.every((function(e,r){return t(e,n[r])}))},e.indexOfAnyCharCode=function(e,n,r){for(var a=r||0;a<e.length;a++)if(t(n,e.charCodeAt(a)))return a;return-1},e.countWhere=function(e,n){var t=0;if(e)for(var r=0;r<e.length;r++){n(e[r],r)&&t++}return t},e.filter=function(e,n){if(e){for(var t=e.length,r=0;r<t&&n(e[r]);)r++;if(r<t){var a=e.slice(0,r);for(r++;r<t;){var i=e[r];n(i)&&a.push(i),r++}return a}}return e},e.filterMutate=function(e,n){for(var t=0,r=0;r<e.length;r++)n(e[r],r,e)&&(e[t]=e[r],t++);e.length=t},e.clear=function(e){e.length=0},e.map=function(e,n){var t;if(e){t=[];for(var r=0;r<e.length;r++)t.push(n(e[r],r))}return t},e.mapIterator=function(e,n){return{next:function(){var t=e.next();return t.done?t:{value:n(t.value),done:!1}}}},e.sameMap=function(e,n){if(e)for(var t=0;t<e.length;t++){var r=e[t],a=n(r,t);if(r!==a){var i=e.slice(0,t);for(i.push(a),t++;t<e.length;t++)i.push(n(e[t],t));return i}}return e},e.flatten=function(e){for(var n=[],t=0,r=e;t<r.length;t++){var a=r[t];a&&(E(a)?o(n,a):n.push(a))}return n},e.flatMap=function(n,t){var r;if(n)for(var i=0;i<n.length;i++){var s=t(n[i],i);s&&(r=E(s)?o(r,s):a(r,s))}return r||e.emptyArray},e.flatMapToMutable=function(e,n){var t=[];if(e)for(var r=0;r<e.length;r++){var a=n(e[r],r);a&&(E(a)?o(t,a):t.push(a))}return t},e.flatMapIterator=function(n,t){var r=n.next();if(r.done)return e.emptyIterator;var a=i(r.value);return{next:function(){for(;;){var e=a.next();if(!e.done)return e;var t=n.next();if(t.done)return t;a=i(t.value)}}};function i(n){var r=t(n);return void 0===r?e.emptyIterator:E(r)?u(r):r}},e.sameFlatMap=function(e,n){var t;if(e)for(var r=0;r<e.length;r++){var a=e[r],i=n(a,r);(t||a!==i||E(i))&&(t||(t=e.slice(0,r)),E(i)?o(t,i):t.push(i))}return t||e},e.mapAllOrFail=function(e,n){for(var t=[],r=0;r<e.length;r++){var a=n(e[r],r);if(void 0===a)return;t.push(a)}return t},e.mapDefined=function(e,n){var t=[];if(e)for(var r=0;r<e.length;r++){var a=n(e[r],r);void 0!==a&&t.push(a)}return t},e.mapDefinedIterator=function(e,n){return{next:function(){for(;;){var t=e.next();if(t.done)return t;var r=n(t.value);if(void 0!==r)return{value:r,done:!1}}}}},e.emptyIterator={next:function(){return{value:void 0,done:!0}}},e.singleIterator=function(e){var n=!1;return{next:function(){var t=n;return n=!0,t?{value:void 0,done:!0}:{value:e,done:!1}}}},e.spanMap=function(e,n,t){var r;if(e){r=[];for(var a=e.length,i=void 0,o=void 0,s=0,c=0;s<a;){for(;c<a;){if(o=n(e[c],c),0===c)i=o;else if(o!==i)break;c++}if(s<c){var l=t(e.slice(s,c),i,s,c);l&&r.push(l),s=c}i=o,c++}}return r},e.mapEntries=function(e,t){if(e){var r=n();return e.forEach((function(e,n){var a=t(n,e),i=a[0],o=a[1];r.set(i,o)})),r}},e.some=r,e.getRangesWhere=function(e,n,t){for(var r,a=0;a<e.length;a++)n(e[a])?r=void 0===r?a:r:void 0!==r&&(t(r,a),r=void 0);void 0!==r&&t(r,e.length)},e.concatenate=function(e,n){return r(n)?r(e)?__spreadArrays(e,n):n:e},e.deduplicate=function(e,n,t){return 0===e.length?[]:1===e.length?e.slice():t?function(e,n,t){var r=e.map((function(e,n){return n}));c(e,r,t);for(var a=e[r[0]],i=[r[0]],o=1;o<r.length;o++){var s=r[o],l=e[s];n(a,l)||(i.push(s),a=l)}return i.sort(),i.map((function(n){return e[n]}))}(e,n,t):function(e,n){for(var t=[],r=0,a=e;r<a.length;r++){s(t,a[r],n)}return t}(e,n)},e.insertSorted=function(e,n,t){if(0!==e.length){var r=d(e,n,S,t);r<0&&e.splice(~r,0,n)}else e.push(n)},e.sortAndDeduplicate=function(n,t,r){return function(n,t){if(0===n.length)return e.emptyArray;for(var r=n[0],a=[r],i=1;i<n.length;i++){var o=n[i];switch(t(o,r)){case!0:case 0:continue;case-1:return e.Debug.fail(\"Array is unsorted.\")}a.push(r=o)}return a}(l(n,t),r||t||k)},e.arrayIsEqualTo=function(e,n,t){if(void 0===t&&(t=L),!e||!n)return e===n;if(e.length!==n.length)return!1;for(var r=0;r<e.length;r++)if(!t(e[r],n[r],r))return!1;return!0},e.compact=function(e){var n;if(e)for(var t=0;t<e.length;t++){var r=e[t];!n&&r||(n||(n=e.slice(0,t)),r&&n.push(r))}return n||e},e.relativeComplement=function(n,t,r){if(!t||!n||0===t.length||0===n.length)return t;var a=[];e:for(var i=0,o=0;o<t.length;o++){o>0&&e.Debug.assertGreaterThanOrEqual(r(t[o],t[o-1]),0);n:for(var s=i;i<n.length;i++)switch(i>s&&e.Debug.assertGreaterThanOrEqual(r(n[i],n[i-1]),0),r(t[o],n[i])){case-1:a.push(t[o]);continue e;case 0:continue e;case 1:continue n}}return a},e.sum=function(e,n){for(var t=0,r=0,a=e;r<a.length;r++){t+=a[r][n]}return t},e.append=a,e.addRange=o,e.pushIfUnique=s,e.appendIfUnique=function(e,n,t){return e?(s(e,n,t),e):[n]},e.sort=l,e.arrayIterator=u,e.arrayReverseIterator=function(e){var n=e.length;return{next:function(){return 0===n?{value:void 0,done:!0}:(n--,{value:e[n],done:!1})}}},e.stableSort=function(e,n){var t=e.map((function(e,n){return n}));return c(e,t,n),t.map((function(n){return e[n]}))},e.rangeEquals=function(e,n,t,r){for(;t<r;){if(e[t]!==n[t])return!1;t++}return!0},e.elementAt=function(e,n){if(e&&(n=i(e,n))<e.length)return e[n]},e.firstOrUndefined=function(e){return 0===e.length?void 0:e[0]},e.first=function(n){return e.Debug.assert(0!==n.length),n[0]},e.lastOrUndefined=function(e){return 0===e.length?void 0:e[e.length-1]},e.last=function(n){return e.Debug.assert(0!==n.length),n[n.length-1]},e.singleOrUndefined=function(e){return e&&1===e.length?e[0]:void 0},e.singleOrMany=function(e){return e&&1===e.length?e[0]:e},e.replaceElement=function(e,n,t){var r=e.slice(0);return r[n]=t,r},e.binarySearch=d,e.binarySearchKey=p,e.reduceLeft=m;var f=Object.prototype.hasOwnProperty;function _(e,n){return f.call(e,n)}function g(e,n){for(var t=[],r=e.next();!r.done;r=e.next())t.push(n?n(r.value):r.value);return t}function y(e,n,t){void 0===t&&(t=S);for(var r=v(),a=0,i=e;a<i.length;a++){var o=i[a];r.add(n(o),t(o))}return r}function v(){var e=n();return e.add=h,e.remove=b,e}function h(e,n){var t=this.get(e);return t?t.push(n):this.set(e,t=[n]),t}function b(e,n){var t=this.get(e);t&&(F(t,n),t.length||this.delete(e))}function E(e){return Array.isArray?Array.isArray(e):e instanceof Array}function T(e){}function S(e){return e}function x(e){return e.toLowerCase()}function L(e,n){return e===n}function C(e,n){return e===n?0:void 0===e?-1:void 0===n?1:e<n?-1:1}function A(e,n){return C(e,n)}function D(e,n){return e===n?0:void 0===e?-1:void 0===n?1:(e=e.toUpperCase())<(n=n.toUpperCase())?-1:e>n?1:0}function k(e,n){return C(e,n)}e.hasProperty=_,e.getProperty=function(e,n){return f.call(e,n)?e[n]:void 0},e.getOwnKeys=function(e){var n=[];for(var t in e)f.call(e,t)&&n.push(t);return n},e.getAllKeys=function(e){var n=[];do{for(var t=0,r=Object.getOwnPropertyNames(e);t<r.length;t++){s(n,r[t])}}while(e=Object.getPrototypeOf(e));return n},e.getOwnValues=function(e){var n=[];for(var t in e)f.call(e,t)&&n.push(e[t]);return n},e.arrayFrom=g,e.assign=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];for(var r=0,a=n;r<a.length;r++){var i=a[r];if(void 0!==i)for(var o in i)_(i,o)&&(e[o]=i[o])}return e},e.equalOwnProperties=function(e,n,t){if(void 0===t&&(t=L),e===n)return!0;if(!e||!n)return!1;for(var r in e)if(f.call(e,r)){if(!f.call(n,r))return!1;if(!t(e[r],n[r]))return!1}for(var r in n)if(f.call(n,r)&&!f.call(e,r))return!1;return!0},e.arrayToMap=function(e,t,r){void 0===r&&(r=S);for(var a=n(),i=0,o=e;i<o.length;i++){var s=o[i],c=t(s);void 0!==c&&a.set(c,r(s))}return a},e.arrayToNumericMap=function(e,n,t){void 0===t&&(t=S);for(var r=[],a=0,i=e;a<i.length;a++){var o=i[a];r[n(o)]=t(o)}return r},e.arrayToMultiMap=y,e.group=function(e,n){return g(y(e,n).values())},e.clone=function(e){var n={};for(var t in e)f.call(e,t)&&(n[t]=e[t]);return n},e.extend=function(e,n){var t={};for(var r in n)f.call(n,r)&&(t[r]=n[r]);for(var r in e)f.call(e,r)&&(t[r]=e[r]);return t},e.copyProperties=function(e,n){for(var t in n)f.call(n,t)&&(e[t]=n[t])},e.maybeBind=function(e,n){return n?n.bind(e):void 0},e.mapMap=function(e,t){var r=n();return e.forEach((function(e,n){return r.set.apply(r,t(e,n))})),r},e.createMultiMap=v,e.isArray=E,e.toArray=function(e){return E(e)?e:[e]},e.isString=function(e){return\"string\"==typeof e},e.isNumber=function(e){return\"number\"==typeof e},e.tryCast=function(e,n){return void 0!==e&&n(e)?e:void 0},e.cast=function(n,t){return void 0!==n&&t(n)?n:e.Debug.fail(\"Invalid cast. The supplied value \"+n+\" did not pass the test '\"+e.Debug.getFunctionName(t)+\"'.\")},e.noop=T,e.returnFalse=function(){return!1},e.returnTrue=function(){return!0},e.returnUndefined=function(){},e.identity=S,e.toLowerCase=x,e.notImplemented=function(){throw new Error(\"Not implemented\")},e.memoize=function(e){var n;return function(){return e&&(n=e(),e=void 0),n}},e.compose=function(e,n,t,r,a){if(a){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];return function(e){return m(i,(function(e,n){return n(e)}),e)}}return r?function(a){return r(t(n(e(a))))}:t?function(r){return t(n(e(r)))}:n?function(t){return n(e(t))}:e?function(n){return e(n)}:function(e){return e}},function(e){e[e.None=0]=\"None\",e[e.Normal=1]=\"Normal\",e[e.Aggressive=2]=\"Aggressive\",e[e.VeryAggressive=3]=\"VeryAggressive\"}(e.AssertionLevel||(e.AssertionLevel={})),e.equateValues=L,e.equateStringsCaseInsensitive=function(e,n){return e===n||void 0!==e&&void 0!==n&&e.toUpperCase()===n.toUpperCase()},e.equateStringsCaseSensitive=function(e,n){return L(e,n)},e.compareValues=A,e.min=function(e,n,t){return-1===t(e,n)?e:n},e.compareStringsCaseInsensitive=D,e.compareStringsCaseSensitive=k,e.getStringComparer=function(e){return e?D:k};var N,I,M=function(){var e,n,t=function(){if(\"object\"==typeof Intl&&\"function\"==typeof Intl.Collator)return a;if(\"function\"==typeof String.prototype.localeCompare&&\"function\"==typeof String.prototype.toLocaleUpperCase&&\"a\".localeCompare(\"B\")<0)return i;return o}();return function(r){return void 0===r?e||(e=t(r)):\"en-US\"===r?n||(n=t(r)):t(r)};function r(e,n,t){if(e===n)return 0;if(void 0===e)return-1;if(void 0===n)return 1;var r=t(e,n);return r<0?-1:r>0?1:0}function a(e){var n=new Intl.Collator(e,{usage:\"sort\",sensitivity:\"variant\"}).compare;return function(e,t){return r(e,t,n)}}function i(e){return void 0!==e?o():function(e,t){return r(e,t,n)};function n(e,n){return e.localeCompare(n)}}function o(){return function(n,t){return r(n,t,e)};function e(e,t){return n(e.toUpperCase(),t.toUpperCase())||n(e,t)}function n(e,n){return e<n?-1:e>n?1:0}}}();function O(e,n,t){for(var r=new Array(n.length+1),a=new Array(n.length+1),i=t+1,o=0;o<=n.length;o++)r[o]=o;for(o=1;o<=e.length;o++){var s=e.charCodeAt(o-1),c=o>t?o-t:1,l=n.length>t+o?t+o:n.length;a[0]=o;for(var u=o,d=1;d<c;d++)a[d]=i;for(d=c;d<=l;d++){var p=s===n.charCodeAt(d-1)?r[d-1]:Math.min(r[d]+1,a[d-1]+1,r[d-1]+2);a[d]=p,u=Math.min(u,p)}for(d=l+1;d<=n.length;d++)a[d]=i;if(u>t)return;var m=r;r=a,a=m}var f=r[n.length];return f>t?void 0:f}function R(e,n){var t=e.length-n.length;return t>=0&&e.indexOf(n,t)===t}function P(e,n){for(var t=n;t<e.length-1;t++)e[t]=e[t+1];e.pop()}function w(e,n){e[n]=e[e.length-1],e.pop()}function F(e,n){return function(e,n){for(var t=0;t<e.length;t++)if(n(e[t]))return w(e,t),!0;return!1}(e,(function(e){return e===n}))}function G(e,n){return 0===e.lastIndexOf(n,0)}function B(e,n){var t=e.prefix,r=e.suffix;return n.length>=t.length+r.length&&G(n,t)&&R(n,r)}e.getUILocale=function(){return I},e.setUILocale=function(e){I!==e&&(I=e,N=void 0)},e.compareStringsCaseSensitiveUI=function(e,n){return(N||(N=M(I)))(e,n)},e.compareProperties=function(e,n,t,r){return e===n?0:void 0===e?-1:void 0===n?1:r(e[t],n[t])},e.compareBooleans=function(e,n){return A(e?1:0,n?1:0)},e.getSpellingSuggestion=function(n,t,r){for(var a,i=Math.min(2,Math.floor(.34*n.length)),o=Math.floor(.4*n.length)+1,s=!1,c=n.toLowerCase(),l=0,u=t;l<u.length;l++){var d=u[l],p=r(d);if(void 0!==p&&Math.abs(p.length-c.length)<=i){var m=p.toLowerCase();if(m===c){if(p===n)continue;return d}if(s)continue;if(p.length<3)continue;var f=O(c,m,o-1);if(void 0===f)continue;f<3?(s=!0,a=d):(e.Debug.assert(f<o),o=f,a=d)}}return a},e.endsWith=R,e.removeSuffix=function(e,n){return R(e,n)?e.slice(0,e.length-n.length):e},e.tryRemoveSuffix=function(e,n){return R(e,n)?e.slice(0,e.length-n.length):void 0},e.stringContains=function(e,n){return-1!==e.indexOf(n)},e.removeMinAndVersionNumbers=function(e){var n=/[.-]((min)|(\\d+(\\.\\d+)*))$/;return e.replace(n,\"\").replace(n,\"\")},e.orderedRemoveItem=function(e,n){for(var t=0;t<e.length;t++)if(e[t]===n)return P(e,t),!0;return!1},e.orderedRemoveItemAt=P,e.unorderedRemoveItemAt=w,e.unorderedRemoveItem=F,e.createGetCanonicalFileName=function(e){return e?S:x},e.patternText=function(e){return e.prefix+\"*\"+e.suffix},e.matchedText=function(n,t){return e.Debug.assert(B(n,t)),t.substring(n.prefix.length,t.length-n.suffix.length)},e.findBestPatternMatch=function(e,n,t){for(var r,a=-1,i=0,o=e;i<o.length;i++){var s=o[i],c=n(s);B(c,t)&&c.prefix.length>a&&(a=c.prefix.length,r=s)}return r},e.startsWith=G,e.removePrefix=function(e,n){return G(e,n)?e.substr(n.length):e},e.tryRemovePrefix=function(e,n,t){return void 0===t&&(t=S),G(t(e),t(n))?e.substring(n.length):void 0},e.and=function(e,n){return function(t){return e(t)&&n(t)}},e.or=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return function(n){for(var t=0,r=e;t<r.length;t++){if((0,r[t])(n))return!0}return!1}},e.not=function(e){return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return!e.apply(void 0,n)}},e.assertType=function(e){},e.singleElementArray=function(e){return void 0===e?void 0:[e]},e.enumerateInsertsAndDeletes=function(e,n,t,r,a,i){i=i||T;for(var o=0,s=0,c=e.length,l=n.length;o<c&&s<l;){var u=e[o],d=n[s],p=t(u,d);-1===p?(r(u),o++):1===p?(a(d),s++):(i(d,u),o++,s++)}for(;o<c;)r(e[o++]);for(;s<l;)a(n[s++])},e.fill=function(e,n){for(var t=Array(e),r=0;r<e;r++)t[r]=n(r);return t},e.cartesianProduct=function(e){var n=[];return function e(n,t,r,a){for(var i=0,o=n[a];i<o.length;i++){var s=o[i],c=void 0;r?(c=r.slice()).push(s):c=[s],a===n.length-1?t.push(c):e(n,t,c,a+1)}}(e,n,void 0,0),n}}(ts||(ts={})),function(e){!function(n){function t(e){return n.currentAssertionLevel>=e}function r(e,n,t,i){e||(t&&(n+=\"\\r\\nVerbose Debug Information: \"+(\"string\"==typeof t?t:t())),a(n?\"False expression: \"+n:\"False expression.\",i||r))}function a(e,n){var t=new Error(e?\"Debug Failure. \"+e:\"Debug Failure.\");throw Error.captureStackTrace&&Error.captureStackTrace(t,n||a),t}function i(e,n){return null==e?a(n):e}function o(e){if(\"function\"!=typeof e)return\"\";if(e.hasOwnProperty(\"name\"))return e.name;var n=Function.prototype.toString.call(e),t=/^function\\s+([\\w\\$]+)\\s*\\(/.exec(n);return t?t[1]:\"\"}function s(n,t,r){void 0===n&&(n=0);var a=function(n){var t=[];for(var r in n){var a=n[r];\"number\"==typeof a&&t.push([a,r])}return e.stableSort(t,(function(n,t){return e.compareValues(n[0],t[0])}))}(t);if(0===n)return a.length>0&&0===a[0][0]?a[0][1]:\"0\";if(r){for(var i=\"\",o=n,s=a.length-1;s>=0&&0!==o;s--){var c=a[s],l=c[0],u=c[1];0!==l&&(o&l)===l&&(o&=~l,i=u+(i?\"|\":\"\")+i)}if(0===o)return i}else for(var d=0,p=a;d<p.length;d++){var m=p[d];l=m[0],u=m[1];if(l===n)return u}return n.toString()}function c(n){return s(n,e.SyntaxKind,!1)}function l(n){return s(n,e.NodeFlags,!0)}function u(n){return s(n,e.ModifierFlags,!0)}function d(n){return s(n,e.TransformFlags,!0)}function p(n){return s(n,e.EmitFlags,!0)}function m(n){return s(n,e.SymbolFlags,!0)}function f(n){return s(n,e.TypeFlags,!0)}function _(n){return s(n,e.ObjectFlags,!0)}n.currentAssertionLevel=0,n.isDebugging=!1,n.shouldAssert=t,n.assert=r,n.assertEqual=function(e,n,t,r){e!==n&&a(\"Expected \"+e+\" === \"+n+\". \"+(t?r?t+\" \"+r:t:\"\"))},n.assertLessThan=function(e,n,t){e>=n&&a(\"Expected \"+e+\" < \"+n+\". \"+(t||\"\"))},n.assertLessThanOrEqual=function(e,n){e>n&&a(\"Expected \"+e+\" <= \"+n)},n.assertGreaterThanOrEqual=function(e,n){e<n&&a(\"Expected \"+e+\" >= \"+n)},n.fail=a,n.assertDefined=i,n.assertEachDefined=function(e,n){for(var t=0,r=e;t<r.length;t++){i(r[t],n)}return e},n.assertNever=function n(t,r,i){return void 0===r&&(r=\"Illegal value:\"),a(r+\" \"+(\"object\"==typeof t&&e.hasProperty(t,\"kind\")&&e.hasProperty(t,\"pos\")&&c?\"SyntaxKind: \"+c(t.kind):JSON.stringify(t)),i||n)},n.getFunctionName=o,n.formatSymbol=function(n){return\"{ name: \"+e.unescapeLeadingUnderscores(n.escapedName)+\"; flags: \"+m(n.flags)+\"; declarations: \"+e.map(n.declarations,(function(e){return c(e.kind)}))+\" }\"},n.formatEnum=s,n.formatSyntaxKind=c,n.formatNodeFlags=l,n.formatModifierFlags=u,n.formatTransformFlags=d,n.formatEmitFlags=p,n.formatSymbolFlags=m,n.formatTypeFlags=f,n.formatObjectFlags=_,n.failBadSyntaxKind=function e(n,t){return a((t||\"Unexpected node.\")+\"\\r\\nNode \"+c(n.kind)+\" was unexpected.\",e)},n.assertEachNode=t(1)?function(t,a,i){return r(void 0===a||e.every(t,a),i||\"Unexpected node.\",(function(){return\"Node array did not pass test '\"+o(a)+\"'.\"}),n.assertEachNode)}:e.noop,n.assertNode=t(1)?function(e,t,a){return r(void 0===t||t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" did not pass test '\"+o(t)+\"'.\"}),n.assertNode)}:e.noop,n.assertNotNode=t(1)?function(e,t,a){return r(void 0===t||!t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" should not have passed test '\"+o(t)+\"'.\"}),n.assertNode)}:e.noop,n.assertOptionalNode=t(1)?function(e,t,a){return r(void 0===t||void 0===e||t(e),a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" did not pass test '\"+o(t)+\"'.\"}),n.assertOptionalNode)}:e.noop,n.assertOptionalToken=t(1)?function(e,t,a){return r(void 0===t||void 0===e||e.kind===t,a||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" was not a '\"+c(t)+\"' token.\"}),n.assertOptionalToken)}:e.noop,n.assertMissingNode=t(1)?function(e,t){return r(void 0===e,t||\"Unexpected node.\",(function(){return\"Node \"+c(e.kind)+\" was unexpected'.\"}),n.assertMissingNode)}:e.noop;var g,y=!1;function v(e){return function(){if(h(),!g)throw new Error(\"Debugging helpers could not be loaded.\");return g}().formatControlFlowGraph(e)}function h(){if(!y){Object.defineProperties(e.objectAllocator.getSymbolConstructor().prototype,{__debugFlags:{get:function(){return m(this.flags)}}}),Object.defineProperties(e.objectAllocator.getTypeConstructor().prototype,{__debugFlags:{get:function(){return f(this.flags)}},__debugObjectFlags:{get:function(){return 524288&this.flags?_(this.objectFlags):\"\"}},__debugTypeToString:{value:function(){return this.checker.typeToString(this)}}});for(var n=0,t=[e.objectAllocator.getNodeConstructor(),e.objectAllocator.getIdentifierConstructor(),e.objectAllocator.getTokenConstructor(),e.objectAllocator.getSourceFileConstructor()];n<t.length;n++){var r=t[n];r.prototype.hasOwnProperty(\"__debugKind\")||Object.defineProperties(r.prototype,{__debugKind:{get:function(){return c(this.kind)}},__debugNodeFlags:{get:function(){return l(this.flags)}},__debugModifierFlags:{get:function(){return u(e.getModifierFlagsNoCache(this))}},__debugTransformFlags:{get:function(){return d(this.transformFlags)}},__debugIsParseTreeNode:{get:function(){return e.isParseTreeNode(this)}},__debugEmitFlags:{get:function(){return p(e.getEmitFlags(this))}},__debugGetText:{value:function(n){if(e.nodeIsSynthesized(this))return\"\";var t=e.getParseTreeNode(this),r=t&&e.getSourceFileOfNode(t);return r?e.getSourceTextOfNodeFromSourceFile(r,t,n):\"\"}}})}try{if(e.sys&&e.sys.require){e.getDirectoryPath(e.resolvePath(e.sys.getExecutingFilePath()));var a=void 0;a.error||(a.module.init(e),g=a.module)}}catch(e){}y=!0}}n.printControlFlowGraph=function(e){return console.log(v(e))},n.formatControlFlowGraph=v,n.attachFlowNodeDebugInfo=function(n){y&&(\"__debugFlowFlags\"in n||Object.defineProperties(n,{__debugFlowFlags:{get:function(){return s(this.flags,e.FlowFlags,!0)}},__debugToString:{value:function(){return v(this)}}}))},n.enableDebugInfo=h}(e.Debug||(e.Debug={}))}(ts||(ts={})),function(e){e.timestamp=\"undefined\"!=typeof performance&&performance.now?function(){return performance.now()}:Date.now?Date.now:function(){return+new Date}}(ts||(ts={})),function(e){!function(n){var t,r,a,i=\"function\"==typeof onProfilerEvent&&!0===onProfilerEvent.profiler?onProfilerEvent:function(){},o=!1,s=0;function c(n,t,r){var a=0;return{enter:function(){1==++a&&l(t)},exit:function(){0==--a?(l(r),u(n,t,r)):a<0&&e.Debug.fail(\"enter/exit count does not match.\")}}}function l(n){o&&(r.set(n,e.timestamp()),t.set(n,(t.get(n)||0)+1),i(n))}function u(n,t,i){if(o){var c=i&&r.get(i)||e.timestamp(),l=t&&r.get(t)||s;a.set(n,(a.get(n)||0)+(c-l))}}n.createTimerIf=function(e,t,r,a){return e?c(t,r,a):n.nullTimer},n.createTimer=c,n.nullTimer={enter:e.noop,exit:e.noop},n.mark=l,n.measure=u,n.getCount=function(e){return t&&t.get(e)||0},n.getDuration=function(e){return a&&a.get(e)||0},n.forEachMeasure=function(e){a.forEach((function(n,t){e(t,n)}))},n.enable=function(){t=e.createMap(),r=e.createMap(),a=e.createMap(),o=!0,s=e.timestamp()},n.disable=function(){o=!1}}(e.performance||(e.performance={}))}(ts||(ts={})),function(e){var n,t={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop};try{n=void 0}catch(e){n=void 0}e.perfLogger=n&&n.logEvent?n:t}(ts||(ts={})),function(e){var n=/^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,t=/^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i,r=/^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i,a=/^(0|[1-9]\\d*)$/,i=function(){function n(n,a,i,s,c){if(void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=\"\"),void 0===c&&(c=\"\"),\"string\"==typeof n){var l=e.Debug.assertDefined(o(n),\"Invalid version\");n=l.major,a=l.minor,i=l.patch,s=l.prerelease,c=l.build}e.Debug.assert(n>=0,\"Invalid argument: major\"),e.Debug.assert(a>=0,\"Invalid argument: minor\"),e.Debug.assert(i>=0,\"Invalid argument: patch\"),e.Debug.assert(!s||t.test(s),\"Invalid argument: prerelease\"),e.Debug.assert(!c||r.test(c),\"Invalid argument: build\"),this.major=n,this.minor=a,this.patch=i,this.prerelease=s?s.split(\".\"):e.emptyArray,this.build=c?c.split(\".\"):e.emptyArray}return n.tryParse=function(e){var t=o(e);if(t)return new n(t.major,t.minor,t.patch,t.prerelease,t.build)},n.prototype.compareTo=function(n){return this===n?0:void 0===n?1:e.compareValues(this.major,n.major)||e.compareValues(this.minor,n.minor)||e.compareValues(this.patch,n.patch)||function(n,t){if(n===t)return 0;if(0===n.length)return 0===t.length?0:1;if(0===t.length)return-1;for(var r=Math.min(n.length,t.length),i=0;i<r;i++){var o=n[i],s=t[i];if(o!==s){var c=a.test(o),l=a.test(s);if(c||l){if(c!==l)return c?-1:1;if(u=e.compareValues(+o,+s))return u}else{var u;if(u=e.compareStringsCaseSensitive(o,s))return u}}}return e.compareValues(n.length,t.length)}(this.prerelease,n.prerelease)},n.prototype.increment=function(t){switch(t){case\"major\":return new n(this.major+1,0,0);case\"minor\":return new n(this.major,this.minor+1,0);case\"patch\":return new n(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(t)}},n.prototype.toString=function(){var n=this.major+\".\"+this.minor+\".\"+this.patch;return e.some(this.prerelease)&&(n+=\"-\"+this.prerelease.join(\".\")),e.some(this.build)&&(n+=\"+\"+this.build.join(\".\")),n},n.zero=new n(0,0,0),n}();function o(e){var a=n.exec(e);if(a){var i=a[1],o=a[2],s=void 0===o?\"0\":o,c=a[3],l=void 0===c?\"0\":c,u=a[4],d=void 0===u?\"\":u,p=a[5],m=void 0===p?\"\":p;if((!d||t.test(d))&&(!m||r.test(m)))return{major:parseInt(i,10),minor:parseInt(s,10),patch:parseInt(l,10),prerelease:d,build:m}}}e.Version=i;var s=function(){function n(n){this._alternatives=n?e.Debug.assertDefined(m(n),\"Invalid range spec.\"):e.emptyArray}return n.tryParse=function(e){var t=m(e);if(t){var r=new n(\"\");return r._alternatives=t,r}},n.prototype.test=function(e){return\"string\"==typeof e&&(e=new i(e)),function(e,n){if(0===n.length)return!0;for(var t=0,r=n;t<r.length;t++){var a=r[t];if(h(e,a))return!0}return!1}(e,this._alternatives)},n.prototype.toString=function(){return n=this._alternatives,e.map(n,E).join(\" || \")||\"*\";var n},n}();e.VersionRange=s;var c=/\\s*\\|\\|\\s*/g,l=/\\s+/g,u=/^([xX*0]|[1-9]\\d*)(?:\\.([xX*0]|[1-9]\\d*)(?:\\.([xX*0]|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,d=/^\\s*([a-z0-9-+.*]+)\\s+-\\s+([a-z0-9-+.*]+)\\s*$/i,p=/^\\s*(~|\\^|<|<=|>|>=|=)?\\s*([a-z0-9-+.*]+)$/i;function m(e){for(var n=[],t=0,r=e.trim().split(c);t<r.length;t++){var a=r[t];if(a){var i=[],o=d.exec(a);if(o){if(!_(o[1],o[2],i))return}else for(var s=0,u=a.split(l);s<u.length;s++){var m=u[s],f=p.exec(m);if(!f||!g(f[1],f[2],i))return}n.push(i)}}return n}function f(e){var n=u.exec(e);if(n){var t=n[1],r=n[2],a=void 0===r?\"*\":r,o=n[3],s=void 0===o?\"*\":o,c=n[4],l=n[5];return{version:new i(y(t)?0:parseInt(t,10),y(t)||y(a)?0:parseInt(a,10),y(t)||y(a)||y(s)?0:parseInt(s,10),c,l),major:t,minor:a,patch:s}}}function _(e,n,t){var r=f(e);if(!r)return!1;var a=f(n);return!!a&&(y(r.major)||t.push(v(\">=\",r.version)),y(a.major)||t.push(y(a.minor)?v(\"<\",a.version.increment(\"major\")):y(a.patch)?v(\"<\",a.version.increment(\"minor\")):v(\"<=\",a.version)),!0)}function g(e,n,t){var r=f(n);if(!r)return!1;var a=r.version,o=r.major,s=r.minor,c=r.patch;if(y(o))\"<\"!==e&&\">\"!==e||t.push(v(\"<\",i.zero));else switch(e){case\"~\":t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(y(s)?\"major\":\"minor\")));break;case\"^\":t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(a.major>0||y(s)?\"major\":a.minor>0||y(c)?\"minor\":\"patch\")));break;case\"<\":case\">=\":t.push(v(e,a));break;case\"<=\":case\">\":t.push(y(s)?v(\"<=\"===e?\"<\":\">=\",a.increment(\"major\")):y(c)?v(\"<=\"===e?\"<\":\">=\",a.increment(\"minor\")):v(e,a));break;case\"=\":case void 0:y(s)||y(c)?(t.push(v(\">=\",a)),t.push(v(\"<\",a.increment(y(s)?\"major\":\"minor\")))):t.push(v(\"=\",a));break;default:return!1}return!0}function y(e){return\"*\"===e||\"x\"===e||\"X\"===e}function v(e,n){return{operator:e,operand:n}}function h(e,n){for(var t=0,r=n;t<r.length;t++){var a=r[t];if(!b(e,a.operator,a.operand))return!1}return!0}function b(n,t,r){var a=n.compareTo(r);switch(t){case\"<\":return a<0;case\"<=\":return a<=0;case\">\":return a>0;case\">=\":return a>=0;case\"=\":return 0===a;default:return e.Debug.assertNever(t)}}function E(n){return e.map(n,T).join(\" \")}function T(e){return\"\"+e.operator+e.operand}}(ts||(ts={})),function(e){!function(e){e[e.Unknown=0]=\"Unknown\",e[e.EndOfFileToken=1]=\"EndOfFileToken\",e[e.SingleLineCommentTrivia=2]=\"SingleLineCommentTrivia\",e[e.MultiLineCommentTrivia=3]=\"MultiLineCommentTrivia\",e[e.NewLineTrivia=4]=\"NewLineTrivia\",e[e.WhitespaceTrivia=5]=\"WhitespaceTrivia\",e[e.ShebangTrivia=6]=\"ShebangTrivia\",e[e.ConflictMarkerTrivia=7]=\"ConflictMarkerTrivia\",e[e.NumericLiteral=8]=\"NumericLiteral\",e[e.BigIntLiteral=9]=\"BigIntLiteral\",e[e.StringLiteral=10]=\"StringLiteral\",e[e.JsxText=11]=\"JsxText\",e[e.JsxTextAllWhiteSpaces=12]=\"JsxTextAllWhiteSpaces\",e[e.RegularExpressionLiteral=13]=\"RegularExpressionLiteral\",e[e.NoSubstitutionTemplateLiteral=14]=\"NoSubstitutionTemplateLiteral\",e[e.TemplateHead=15]=\"TemplateHead\",e[e.TemplateMiddle=16]=\"TemplateMiddle\",e[e.TemplateTail=17]=\"TemplateTail\",e[e.OpenBraceToken=18]=\"OpenBraceToken\",e[e.CloseBraceToken=19]=\"CloseBraceToken\",e[e.OpenParenToken=20]=\"OpenParenToken\",e[e.CloseParenToken=21]=\"CloseParenToken\",e[e.OpenBracketToken=22]=\"OpenBracketToken\",e[e.CloseBracketToken=23]=\"CloseBracketToken\",e[e.DotToken=24]=\"DotToken\",e[e.DotDotDotToken=25]=\"DotDotDotToken\",e[e.SemicolonToken=26]=\"SemicolonToken\",e[e.CommaToken=27]=\"CommaToken\",e[e.QuestionDotToken=28]=\"QuestionDotToken\",e[e.LessThanToken=29]=\"LessThanToken\",e[e.LessThanSlashToken=30]=\"LessThanSlashToken\",e[e.GreaterThanToken=31]=\"GreaterThanToken\",e[e.LessThanEqualsToken=32]=\"LessThanEqualsToken\",e[e.GreaterThanEqualsToken=33]=\"GreaterThanEqualsToken\",e[e.EqualsEqualsToken=34]=\"EqualsEqualsToken\",e[e.ExclamationEqualsToken=35]=\"ExclamationEqualsToken\",e[e.EqualsEqualsEqualsToken=36]=\"EqualsEqualsEqualsToken\",e[e.ExclamationEqualsEqualsToken=37]=\"ExclamationEqualsEqualsToken\",e[e.EqualsGreaterThanToken=38]=\"EqualsGreaterThanToken\",e[e.PlusToken=39]=\"PlusToken\",e[e.MinusToken=40]=\"MinusToken\",e[e.AsteriskToken=41]=\"AsteriskToken\",e[e.AsteriskAsteriskToken=42]=\"AsteriskAsteriskToken\",e[e.SlashToken=43]=\"SlashToken\",e[e.PercentToken=44]=\"PercentToken\",e[e.PlusPlusToken=45]=\"PlusPlusToken\",e[e.MinusMinusToken=46]=\"MinusMinusToken\",e[e.LessThanLessThanToken=47]=\"LessThanLessThanToken\",e[e.GreaterThanGreaterThanToken=48]=\"GreaterThanGreaterThanToken\",e[e.GreaterThanGreaterThanGreaterThanToken=49]=\"GreaterThanGreaterThanGreaterThanToken\",e[e.AmpersandToken=50]=\"AmpersandToken\",e[e.BarToken=51]=\"BarToken\",e[e.CaretToken=52]=\"CaretToken\",e[e.ExclamationToken=53]=\"ExclamationToken\",e[e.TildeToken=54]=\"TildeToken\",e[e.AmpersandAmpersandToken=55]=\"AmpersandAmpersandToken\",e[e.BarBarToken=56]=\"BarBarToken\",e[e.QuestionToken=57]=\"QuestionToken\",e[e.ColonToken=58]=\"ColonToken\",e[e.AtToken=59]=\"AtToken\",e[e.QuestionQuestionToken=60]=\"QuestionQuestionToken\",e[e.BacktickToken=61]=\"BacktickToken\",e[e.EqualsToken=62]=\"EqualsToken\",e[e.PlusEqualsToken=63]=\"PlusEqualsToken\",e[e.MinusEqualsToken=64]=\"MinusEqualsToken\",e[e.AsteriskEqualsToken=65]=\"AsteriskEqualsToken\",e[e.AsteriskAsteriskEqualsToken=66]=\"AsteriskAsteriskEqualsToken\",e[e.SlashEqualsToken=67]=\"SlashEqualsToken\",e[e.PercentEqualsToken=68]=\"PercentEqualsToken\",e[e.LessThanLessThanEqualsToken=69]=\"LessThanLessThanEqualsToken\",e[e.GreaterThanGreaterThanEqualsToken=70]=\"GreaterThanGreaterThanEqualsToken\",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=71]=\"GreaterThanGreaterThanGreaterThanEqualsToken\",e[e.AmpersandEqualsToken=72]=\"AmpersandEqualsToken\",e[e.BarEqualsToken=73]=\"BarEqualsToken\",e[e.CaretEqualsToken=74]=\"CaretEqualsToken\",e[e.Identifier=75]=\"Identifier\",e[e.BreakKeyword=76]=\"BreakKeyword\",e[e.CaseKeyword=77]=\"CaseKeyword\",e[e.CatchKeyword=78]=\"CatchKeyword\",e[e.ClassKeyword=79]=\"ClassKeyword\",e[e.ConstKeyword=80]=\"ConstKeyword\",e[e.ContinueKeyword=81]=\"ContinueKeyword\",e[e.DebuggerKeyword=82]=\"DebuggerKeyword\",e[e.DefaultKeyword=83]=\"DefaultKeyword\",e[e.DeleteKeyword=84]=\"DeleteKeyword\",e[e.DoKeyword=85]=\"DoKeyword\",e[e.ElseKeyword=86]=\"ElseKeyword\",e[e.EnumKeyword=87]=\"EnumKeyword\",e[e.ExportKeyword=88]=\"ExportKeyword\",e[e.ExtendsKeyword=89]=\"ExtendsKeyword\",e[e.FalseKeyword=90]=\"FalseKeyword\",e[e.FinallyKeyword=91]=\"FinallyKeyword\",e[e.ForKeyword=92]=\"ForKeyword\",e[e.FunctionKeyword=93]=\"FunctionKeyword\",e[e.IfKeyword=94]=\"IfKeyword\",e[e.ImportKeyword=95]=\"ImportKeyword\",e[e.InKeyword=96]=\"InKeyword\",e[e.InstanceOfKeyword=97]=\"InstanceOfKeyword\",e[e.NewKeyword=98]=\"NewKeyword\",e[e.NullKeyword=99]=\"NullKeyword\",e[e.ReturnKeyword=100]=\"ReturnKeyword\",e[e.SuperKeyword=101]=\"SuperKeyword\",e[e.SwitchKeyword=102]=\"SwitchKeyword\",e[e.ThisKeyword=103]=\"ThisKeyword\",e[e.ThrowKeyword=104]=\"ThrowKeyword\",e[e.TrueKeyword=105]=\"TrueKeyword\",e[e.TryKeyword=106]=\"TryKeyword\",e[e.TypeOfKeyword=107]=\"TypeOfKeyword\",e[e.VarKeyword=108]=\"VarKeyword\",e[e.VoidKeyword=109]=\"VoidKeyword\",e[e.WhileKeyword=110]=\"WhileKeyword\",e[e.WithKeyword=111]=\"WithKeyword\",e[e.ImplementsKeyword=112]=\"ImplementsKeyword\",e[e.InterfaceKeyword=113]=\"InterfaceKeyword\",e[e.LetKeyword=114]=\"LetKeyword\",e[e.PackageKeyword=115]=\"PackageKeyword\",e[e.PrivateKeyword=116]=\"PrivateKeyword\",e[e.ProtectedKeyword=117]=\"ProtectedKeyword\",e[e.PublicKeyword=118]=\"PublicKeyword\",e[e.StaticKeyword=119]=\"StaticKeyword\",e[e.YieldKeyword=120]=\"YieldKeyword\",e[e.AbstractKeyword=121]=\"AbstractKeyword\",e[e.AsKeyword=122]=\"AsKeyword\",e[e.AssertsKeyword=123]=\"AssertsKeyword\",e[e.AnyKeyword=124]=\"AnyKeyword\",e[e.AsyncKeyword=125]=\"AsyncKeyword\",e[e.AwaitKeyword=126]=\"AwaitKeyword\",e[e.BooleanKeyword=127]=\"BooleanKeyword\",e[e.ConstructorKeyword=128]=\"ConstructorKeyword\",e[e.DeclareKeyword=129]=\"DeclareKeyword\",e[e.GetKeyword=130]=\"GetKeyword\",e[e.InferKeyword=131]=\"InferKeyword\",e[e.IsKeyword=132]=\"IsKeyword\",e[e.KeyOfKeyword=133]=\"KeyOfKeyword\",e[e.ModuleKeyword=134]=\"ModuleKeyword\",e[e.NamespaceKeyword=135]=\"NamespaceKeyword\",e[e.NeverKeyword=136]=\"NeverKeyword\",e[e.ReadonlyKeyword=137]=\"ReadonlyKeyword\",e[e.RequireKeyword=138]=\"RequireKeyword\",e[e.NumberKeyword=139]=\"NumberKeyword\",e[e.ObjectKeyword=140]=\"ObjectKeyword\",e[e.SetKeyword=141]=\"SetKeyword\",e[e.StringKeyword=142]=\"StringKeyword\",e[e.SymbolKeyword=143]=\"SymbolKeyword\",e[e.TypeKeyword=144]=\"TypeKeyword\",e[e.UndefinedKeyword=145]=\"UndefinedKeyword\",e[e.UniqueKeyword=146]=\"UniqueKeyword\",e[e.UnknownKeyword=147]=\"UnknownKeyword\",e[e.FromKeyword=148]=\"FromKeyword\",e[e.GlobalKeyword=149]=\"GlobalKeyword\",e[e.BigIntKeyword=150]=\"BigIntKeyword\",e[e.OfKeyword=151]=\"OfKeyword\",e[e.QualifiedName=152]=\"QualifiedName\",e[e.ComputedPropertyName=153]=\"ComputedPropertyName\",e[e.TypeParameter=154]=\"TypeParameter\",e[e.Parameter=155]=\"Parameter\",e[e.Decorator=156]=\"Decorator\",e[e.PropertySignature=157]=\"PropertySignature\",e[e.PropertyDeclaration=158]=\"PropertyDeclaration\",e[e.MethodSignature=159]=\"MethodSignature\",e[e.MethodDeclaration=160]=\"MethodDeclaration\",e[e.Constructor=161]=\"Constructor\",e[e.GetAccessor=162]=\"GetAccessor\",e[e.SetAccessor=163]=\"SetAccessor\",e[e.CallSignature=164]=\"CallSignature\",e[e.ConstructSignature=165]=\"ConstructSignature\",e[e.IndexSignature=166]=\"IndexSignature\",e[e.TypePredicate=167]=\"TypePredicate\",e[e.TypeReference=168]=\"TypeReference\",e[e.FunctionType=169]=\"FunctionType\",e[e.ConstructorType=170]=\"ConstructorType\",e[e.TypeQuery=171]=\"TypeQuery\",e[e.TypeLiteral=172]=\"TypeLiteral\",e[e.ArrayType=173]=\"ArrayType\",e[e.TupleType=174]=\"TupleType\",e[e.OptionalType=175]=\"OptionalType\",e[e.RestType=176]=\"RestType\",e[e.UnionType=177]=\"UnionType\",e[e.IntersectionType=178]=\"IntersectionType\",e[e.ConditionalType=179]=\"ConditionalType\",e[e.InferType=180]=\"InferType\",e[e.ParenthesizedType=181]=\"ParenthesizedType\",e[e.ThisType=182]=\"ThisType\",e[e.TypeOperator=183]=\"TypeOperator\",e[e.IndexedAccessType=184]=\"IndexedAccessType\",e[e.MappedType=185]=\"MappedType\",e[e.LiteralType=186]=\"LiteralType\",e[e.ImportType=187]=\"ImportType\",e[e.ObjectBindingPattern=188]=\"ObjectBindingPattern\",e[e.ArrayBindingPattern=189]=\"ArrayBindingPattern\",e[e.BindingElement=190]=\"BindingElement\",e[e.ArrayLiteralExpression=191]=\"ArrayLiteralExpression\",e[e.ObjectLiteralExpression=192]=\"ObjectLiteralExpression\",e[e.PropertyAccessExpression=193]=\"PropertyAccessExpression\",e[e.ElementAccessExpression=194]=\"ElementAccessExpression\",e[e.CallExpression=195]=\"CallExpression\",e[e.NewExpression=196]=\"NewExpression\",e[e.TaggedTemplateExpression=197]=\"TaggedTemplateExpression\",e[e.TypeAssertionExpression=198]=\"TypeAssertionExpression\",e[e.ParenthesizedExpression=199]=\"ParenthesizedExpression\",e[e.FunctionExpression=200]=\"FunctionExpression\",e[e.ArrowFunction=201]=\"ArrowFunction\",e[e.DeleteExpression=202]=\"DeleteExpression\",e[e.TypeOfExpression=203]=\"TypeOfExpression\",e[e.VoidExpression=204]=\"VoidExpression\",e[e.AwaitExpression=205]=\"AwaitExpression\",e[e.PrefixUnaryExpression=206]=\"PrefixUnaryExpression\",e[e.PostfixUnaryExpression=207]=\"PostfixUnaryExpression\",e[e.BinaryExpression=208]=\"BinaryExpression\",e[e.ConditionalExpression=209]=\"ConditionalExpression\",e[e.TemplateExpression=210]=\"TemplateExpression\",e[e.YieldExpression=211]=\"YieldExpression\",e[e.SpreadElement=212]=\"SpreadElement\",e[e.ClassExpression=213]=\"ClassExpression\",e[e.OmittedExpression=214]=\"OmittedExpression\",e[e.ExpressionWithTypeArguments=215]=\"ExpressionWithTypeArguments\",e[e.AsExpression=216]=\"AsExpression\",e[e.NonNullExpression=217]=\"NonNullExpression\",e[e.MetaProperty=218]=\"MetaProperty\",e[e.SyntheticExpression=219]=\"SyntheticExpression\",e[e.TemplateSpan=220]=\"TemplateSpan\",e[e.SemicolonClassElement=221]=\"SemicolonClassElement\",e[e.Block=222]=\"Block\",e[e.EmptyStatement=223]=\"EmptyStatement\",e[e.VariableStatement=224]=\"VariableStatement\",e[e.ExpressionStatement=225]=\"ExpressionStatement\",e[e.IfStatement=226]=\"IfStatement\",e[e.DoStatement=227]=\"DoStatement\",e[e.WhileStatement=228]=\"WhileStatement\",e[e.ForStatement=229]=\"ForStatement\",e[e.ForInStatement=230]=\"ForInStatement\",e[e.ForOfStatement=231]=\"ForOfStatement\",e[e.ContinueStatement=232]=\"ContinueStatement\",e[e.BreakStatement=233]=\"BreakStatement\",e[e.ReturnStatement=234]=\"ReturnStatement\",e[e.WithStatement=235]=\"WithStatement\",e[e.SwitchStatement=236]=\"SwitchStatement\",e[e.LabeledStatement=237]=\"LabeledStatement\",e[e.ThrowStatement=238]=\"ThrowStatement\",e[e.TryStatement=239]=\"TryStatement\",e[e.DebuggerStatement=240]=\"DebuggerStatement\",e[e.VariableDeclaration=241]=\"VariableDeclaration\",e[e.VariableDeclarationList=242]=\"VariableDeclarationList\",e[e.FunctionDeclaration=243]=\"FunctionDeclaration\",e[e.ClassDeclaration=244]=\"ClassDeclaration\",e[e.InterfaceDeclaration=245]=\"InterfaceDeclaration\",e[e.TypeAliasDeclaration=246]=\"TypeAliasDeclaration\",e[e.EnumDeclaration=247]=\"EnumDeclaration\",e[e.ModuleDeclaration=248]=\"ModuleDeclaration\",e[e.ModuleBlock=249]=\"ModuleBlock\",e[e.CaseBlock=250]=\"CaseBlock\",e[e.NamespaceExportDeclaration=251]=\"NamespaceExportDeclaration\",e[e.ImportEqualsDeclaration=252]=\"ImportEqualsDeclaration\",e[e.ImportDeclaration=253]=\"ImportDeclaration\",e[e.ImportClause=254]=\"ImportClause\",e[e.NamespaceImport=255]=\"NamespaceImport\",e[e.NamedImports=256]=\"NamedImports\",e[e.ImportSpecifier=257]=\"ImportSpecifier\",e[e.ExportAssignment=258]=\"ExportAssignment\",e[e.ExportDeclaration=259]=\"ExportDeclaration\",e[e.NamedExports=260]=\"NamedExports\",e[e.ExportSpecifier=261]=\"ExportSpecifier\",e[e.MissingDeclaration=262]=\"MissingDeclaration\",e[e.ExternalModuleReference=263]=\"ExternalModuleReference\",e[e.JsxElement=264]=\"JsxElement\",e[e.JsxSelfClosingElement=265]=\"JsxSelfClosingElement\",e[e.JsxOpeningElement=266]=\"JsxOpeningElement\",e[e.JsxClosingElement=267]=\"JsxClosingElement\",e[e.JsxFragment=268]=\"JsxFragment\",e[e.JsxOpeningFragment=269]=\"JsxOpeningFragment\",e[e.JsxClosingFragment=270]=\"JsxClosingFragment\",e[e.JsxAttribute=271]=\"JsxAttribute\",e[e.JsxAttributes=272]=\"JsxAttributes\",e[e.JsxSpreadAttribute=273]=\"JsxSpreadAttribute\",e[e.JsxExpression=274]=\"JsxExpression\",e[e.CaseClause=275]=\"CaseClause\",e[e.DefaultClause=276]=\"DefaultClause\",e[e.HeritageClause=277]=\"HeritageClause\",e[e.CatchClause=278]=\"CatchClause\",e[e.PropertyAssignment=279]=\"PropertyAssignment\",e[e.ShorthandPropertyAssignment=280]=\"ShorthandPropertyAssignment\",e[e.SpreadAssignment=281]=\"SpreadAssignment\",e[e.EnumMember=282]=\"EnumMember\",e[e.UnparsedPrologue=283]=\"UnparsedPrologue\",e[e.UnparsedPrepend=284]=\"UnparsedPrepend\",e[e.UnparsedText=285]=\"UnparsedText\",e[e.UnparsedInternalText=286]=\"UnparsedInternalText\",e[e.UnparsedSyntheticReference=287]=\"UnparsedSyntheticReference\",e[e.SourceFile=288]=\"SourceFile\",e[e.Bundle=289]=\"Bundle\",e[e.UnparsedSource=290]=\"UnparsedSource\",e[e.InputFiles=291]=\"InputFiles\",e[e.JSDocTypeExpression=292]=\"JSDocTypeExpression\",e[e.JSDocAllType=293]=\"JSDocAllType\",e[e.JSDocUnknownType=294]=\"JSDocUnknownType\",e[e.JSDocNullableType=295]=\"JSDocNullableType\",e[e.JSDocNonNullableType=296]=\"JSDocNonNullableType\",e[e.JSDocOptionalType=297]=\"JSDocOptionalType\",e[e.JSDocFunctionType=298]=\"JSDocFunctionType\",e[e.JSDocVariadicType=299]=\"JSDocVariadicType\",e[e.JSDocNamepathType=300]=\"JSDocNamepathType\",e[e.JSDocComment=301]=\"JSDocComment\",e[e.JSDocTypeLiteral=302]=\"JSDocTypeLiteral\",e[e.JSDocSignature=303]=\"JSDocSignature\",e[e.JSDocTag=304]=\"JSDocTag\",e[e.JSDocAugmentsTag=305]=\"JSDocAugmentsTag\",e[e.JSDocAuthorTag=306]=\"JSDocAuthorTag\",e[e.JSDocClassTag=307]=\"JSDocClassTag\",e[e.JSDocCallbackTag=308]=\"JSDocCallbackTag\",e[e.JSDocEnumTag=309]=\"JSDocEnumTag\",e[e.JSDocParameterTag=310]=\"JSDocParameterTag\",e[e.JSDocReturnTag=311]=\"JSDocReturnTag\",e[e.JSDocThisTag=312]=\"JSDocThisTag\",e[e.JSDocTypeTag=313]=\"JSDocTypeTag\",e[e.JSDocTemplateTag=314]=\"JSDocTemplateTag\",e[e.JSDocTypedefTag=315]=\"JSDocTypedefTag\",e[e.JSDocPropertyTag=316]=\"JSDocPropertyTag\",e[e.SyntaxList=317]=\"SyntaxList\",e[e.NotEmittedStatement=318]=\"NotEmittedStatement\",e[e.PartiallyEmittedExpression=319]=\"PartiallyEmittedExpression\",e[e.CommaListExpression=320]=\"CommaListExpression\",e[e.MergeDeclarationMarker=321]=\"MergeDeclarationMarker\",e[e.EndOfDeclarationMarker=322]=\"EndOfDeclarationMarker\",e[e.SyntheticReferenceExpression=323]=\"SyntheticReferenceExpression\",e[e.Count=324]=\"Count\",e[e.FirstAssignment=62]=\"FirstAssignment\",e[e.LastAssignment=74]=\"LastAssignment\",e[e.FirstCompoundAssignment=63]=\"FirstCompoundAssignment\",e[e.LastCompoundAssignment=74]=\"LastCompoundAssignment\",e[e.FirstReservedWord=76]=\"FirstReservedWord\",e[e.LastReservedWord=111]=\"LastReservedWord\",e[e.FirstKeyword=76]=\"FirstKeyword\",e[e.LastKeyword=151]=\"LastKeyword\",e[e.FirstFutureReservedWord=112]=\"FirstFutureReservedWord\",e[e.LastFutureReservedWord=120]=\"LastFutureReservedWord\",e[e.FirstTypeNode=167]=\"FirstTypeNode\",e[e.LastTypeNode=187]=\"LastTypeNode\",e[e.FirstPunctuation=18]=\"FirstPunctuation\",e[e.LastPunctuation=74]=\"LastPunctuation\",e[e.FirstToken=0]=\"FirstToken\",e[e.LastToken=151]=\"LastToken\",e[e.FirstTriviaToken=2]=\"FirstTriviaToken\",e[e.LastTriviaToken=7]=\"LastTriviaToken\",e[e.FirstLiteralToken=8]=\"FirstLiteralToken\",e[e.LastLiteralToken=14]=\"LastLiteralToken\",e[e.FirstTemplateToken=14]=\"FirstTemplateToken\",e[e.LastTemplateToken=17]=\"LastTemplateToken\",e[e.FirstBinaryOperator=29]=\"FirstBinaryOperator\",e[e.LastBinaryOperator=74]=\"LastBinaryOperator\",e[e.FirstStatement=224]=\"FirstStatement\",e[e.LastStatement=240]=\"LastStatement\",e[e.FirstNode=152]=\"FirstNode\",e[e.FirstJSDocNode=292]=\"FirstJSDocNode\",e[e.LastJSDocNode=316]=\"LastJSDocNode\",e[e.FirstJSDocTagNode=304]=\"FirstJSDocTagNode\",e[e.LastJSDocTagNode=316]=\"LastJSDocTagNode\",e[e.FirstContextualKeyword=121]=\"FirstContextualKeyword\",e[e.LastContextualKeyword=151]=\"LastContextualKeyword\"}(e.SyntaxKind||(e.SyntaxKind={})),function(e){e[e.None=0]=\"None\",e[e.Let=1]=\"Let\",e[e.Const=2]=\"Const\",e[e.NestedNamespace=4]=\"NestedNamespace\",e[e.Synthesized=8]=\"Synthesized\",e[e.Namespace=16]=\"Namespace\",e[e.OptionalChain=32]=\"OptionalChain\",e[e.ExportContext=64]=\"ExportContext\",e[e.ContainsThis=128]=\"ContainsThis\",e[e.HasImplicitReturn=256]=\"HasImplicitReturn\",e[e.HasExplicitReturn=512]=\"HasExplicitReturn\",e[e.GlobalAugmentation=1024]=\"GlobalAugmentation\",e[e.HasAsyncFunctions=2048]=\"HasAsyncFunctions\",e[e.DisallowInContext=4096]=\"DisallowInContext\",e[e.YieldContext=8192]=\"YieldContext\",e[e.DecoratorContext=16384]=\"DecoratorContext\",e[e.AwaitContext=32768]=\"AwaitContext\",e[e.ThisNodeHasError=65536]=\"ThisNodeHasError\",e[e.JavaScriptFile=131072]=\"JavaScriptFile\",e[e.ThisNodeOrAnySubNodesHasError=262144]=\"ThisNodeOrAnySubNodesHasError\",e[e.HasAggregatedChildData=524288]=\"HasAggregatedChildData\",e[e.PossiblyContainsDynamicImport=1048576]=\"PossiblyContainsDynamicImport\",e[e.PossiblyContainsImportMeta=2097152]=\"PossiblyContainsImportMeta\",e[e.JSDoc=4194304]=\"JSDoc\",e[e.Ambient=8388608]=\"Ambient\",e[e.InWithStatement=16777216]=\"InWithStatement\",e[e.JsonFile=33554432]=\"JsonFile\",e[e.BlockScoped=3]=\"BlockScoped\",e[e.ReachabilityCheckFlags=768]=\"ReachabilityCheckFlags\",e[e.ReachabilityAndEmitFlags=2816]=\"ReachabilityAndEmitFlags\",e[e.ContextFlags=25358336]=\"ContextFlags\",e[e.TypeExcludesFlags=40960]=\"TypeExcludesFlags\",e[e.PermanentlySetIncrementalFlags=3145728]=\"PermanentlySetIncrementalFlags\"}(e.NodeFlags||(e.NodeFlags={})),function(e){e[e.None=0]=\"None\",e[e.Export=1]=\"Export\",e[e.Ambient=2]=\"Ambient\",e[e.Public=4]=\"Public\",e[e.Private=8]=\"Private\",e[e.Protected=16]=\"Protected\",e[e.Static=32]=\"Static\",e[e.Readonly=64]=\"Readonly\",e[e.Abstract=128]=\"Abstract\",e[e.Async=256]=\"Async\",e[e.Default=512]=\"Default\",e[e.Const=2048]=\"Const\",e[e.HasComputedFlags=536870912]=\"HasComputedFlags\",e[e.AccessibilityModifier=28]=\"AccessibilityModifier\",e[e.ParameterPropertyModifier=92]=\"ParameterPropertyModifier\",e[e.NonPublicAccessibilityModifier=24]=\"NonPublicAccessibilityModifier\",e[e.TypeScriptModifier=2270]=\"TypeScriptModifier\",e[e.ExportDefault=513]=\"ExportDefault\",e[e.All=3071]=\"All\"}(e.ModifierFlags||(e.ModifierFlags={})),function(e){e[e.None=0]=\"None\",e[e.IntrinsicNamedElement=1]=\"IntrinsicNamedElement\",e[e.IntrinsicIndexedElement=2]=\"IntrinsicIndexedElement\",e[e.IntrinsicElement=3]=\"IntrinsicElement\"}(e.JsxFlags||(e.JsxFlags={})),function(e){e[e.Succeeded=1]=\"Succeeded\",e[e.Failed=2]=\"Failed\",e[e.Reported=4]=\"Reported\",e[e.ReportsUnmeasurable=8]=\"ReportsUnmeasurable\",e[e.ReportsUnreliable=16]=\"ReportsUnreliable\",e[e.ReportsMask=24]=\"ReportsMask\"}(e.RelationComparisonResult||(e.RelationComparisonResult={})),function(e){e[e.None=0]=\"None\",e[e.Auto=1]=\"Auto\",e[e.Loop=2]=\"Loop\",e[e.Unique=3]=\"Unique\",e[e.Node=4]=\"Node\",e[e.KindMask=7]=\"KindMask\",e[e.ReservedInNestedScopes=8]=\"ReservedInNestedScopes\",e[e.Optimistic=16]=\"Optimistic\",e[e.FileLevel=32]=\"FileLevel\"}(e.GeneratedIdentifierFlags||(e.GeneratedIdentifierFlags={})),function(e){e[e.None=0]=\"None\",e[e.PrecedingLineBreak=1]=\"PrecedingLineBreak\",e[e.PrecedingJSDocComment=2]=\"PrecedingJSDocComment\",e[e.Unterminated=4]=\"Unterminated\",e[e.ExtendedUnicodeEscape=8]=\"ExtendedUnicodeEscape\",e[e.Scientific=16]=\"Scientific\",e[e.Octal=32]=\"Octal\",e[e.HexSpecifier=64]=\"HexSpecifier\",e[e.BinarySpecifier=128]=\"BinarySpecifier\",e[e.OctalSpecifier=256]=\"OctalSpecifier\",e[e.ContainsSeparator=512]=\"ContainsSeparator\",e[e.UnicodeEscape=1024]=\"UnicodeEscape\",e[e.BinaryOrOctalSpecifier=384]=\"BinaryOrOctalSpecifier\",e[e.NumericLiteralFlags=1008]=\"NumericLiteralFlags\"}(e.TokenFlags||(e.TokenFlags={})),function(e){e[e.Unreachable=1]=\"Unreachable\",e[e.Start=2]=\"Start\",e[e.BranchLabel=4]=\"BranchLabel\",e[e.LoopLabel=8]=\"LoopLabel\",e[e.Assignment=16]=\"Assignment\",e[e.TrueCondition=32]=\"TrueCondition\",e[e.FalseCondition=64]=\"FalseCondition\",e[e.SwitchClause=128]=\"SwitchClause\",e[e.ArrayMutation=256]=\"ArrayMutation\",e[e.Call=512]=\"Call\",e[e.Referenced=1024]=\"Referenced\",e[e.Shared=2048]=\"Shared\",e[e.PreFinally=4096]=\"PreFinally\",e[e.AfterFinally=8192]=\"AfterFinally\",e[e.Cached=16384]=\"Cached\",e[e.Label=12]=\"Label\",e[e.Condition=96]=\"Condition\"}(e.FlowFlags||(e.FlowFlags={}));var n,t=function(){};e.OperationCanceledException=t,function(e){e[e.Import=0]=\"Import\",e[e.ReferenceFile=1]=\"ReferenceFile\",e[e.TypeReferenceDirective=2]=\"TypeReferenceDirective\"}(e.RefFileKind||(e.RefFileKind={})),function(e){e[e.Not=0]=\"Not\",e[e.SafeModules=1]=\"SafeModules\",e[e.Completely=2]=\"Completely\"}(e.StructureIsReused||(e.StructureIsReused={})),function(e){e[e.Success=0]=\"Success\",e[e.DiagnosticsPresent_OutputsSkipped=1]=\"DiagnosticsPresent_OutputsSkipped\",e[e.DiagnosticsPresent_OutputsGenerated=2]=\"DiagnosticsPresent_OutputsGenerated\",e[e.InvalidProject_OutputsSkipped=3]=\"InvalidProject_OutputsSkipped\",e[e.ProjectReferenceCycle_OutputsSkipped=4]=\"ProjectReferenceCycle_OutputsSkipped\",e[e.ProjectReferenceCycle_OutputsSkupped=4]=\"ProjectReferenceCycle_OutputsSkupped\"}(e.ExitStatus||(e.ExitStatus={})),function(e){e[e.None=0]=\"None\",e[e.Literal=1]=\"Literal\",e[e.Subtype=2]=\"Subtype\"}(e.UnionReduction||(e.UnionReduction={})),function(e){e[e.None=0]=\"None\",e[e.Signature=1]=\"Signature\",e[e.NoConstraints=2]=\"NoConstraints\",e[e.Completion=4]=\"Completion\"}(e.ContextFlags||(e.ContextFlags={})),function(e){e[e.None=0]=\"None\",e[e.NoTruncation=1]=\"NoTruncation\",e[e.WriteArrayAsGenericType=2]=\"WriteArrayAsGenericType\",e[e.GenerateNamesForShadowedTypeParams=4]=\"GenerateNamesForShadowedTypeParams\",e[e.UseStructuralFallback=8]=\"UseStructuralFallback\",e[e.ForbidIndexedAccessSymbolReferences=16]=\"ForbidIndexedAccessSymbolReferences\",e[e.WriteTypeArgumentsOfSignature=32]=\"WriteTypeArgumentsOfSignature\",e[e.UseFullyQualifiedType=64]=\"UseFullyQualifiedType\",e[e.UseOnlyExternalAliasing=128]=\"UseOnlyExternalAliasing\",e[e.SuppressAnyReturnType=256]=\"SuppressAnyReturnType\",e[e.WriteTypeParametersInQualifiedName=512]=\"WriteTypeParametersInQualifiedName\",e[e.MultilineObjectLiterals=1024]=\"MultilineObjectLiterals\",e[e.WriteClassExpressionAsTypeLiteral=2048]=\"WriteClassExpressionAsTypeLiteral\",e[e.UseTypeOfFunction=4096]=\"UseTypeOfFunction\",e[e.OmitParameterModifiers=8192]=\"OmitParameterModifiers\",e[e.UseAliasDefinedOutsideCurrentScope=16384]=\"UseAliasDefinedOutsideCurrentScope\",e[e.AllowThisInObjectLiteral=32768]=\"AllowThisInObjectLiteral\",e[e.AllowQualifedNameInPlaceOfIdentifier=65536]=\"AllowQualifedNameInPlaceOfIdentifier\",e[e.AllowAnonymousIdentifier=131072]=\"AllowAnonymousIdentifier\",e[e.AllowEmptyUnionOrIntersection=262144]=\"AllowEmptyUnionOrIntersection\",e[e.AllowEmptyTuple=524288]=\"AllowEmptyTuple\",e[e.AllowUniqueESSymbolType=1048576]=\"AllowUniqueESSymbolType\",e[e.AllowEmptyIndexInfoType=2097152]=\"AllowEmptyIndexInfoType\",e[e.AllowNodeModulesRelativePaths=67108864]=\"AllowNodeModulesRelativePaths\",e[e.DoNotIncludeSymbolChain=134217728]=\"DoNotIncludeSymbolChain\",e[e.IgnoreErrors=70221824]=\"IgnoreErrors\",e[e.InObjectTypeLiteral=4194304]=\"InObjectTypeLiteral\",e[e.InTypeAlias=8388608]=\"InTypeAlias\",e[e.InInitialEntityName=16777216]=\"InInitialEntityName\",e[e.InReverseMappedType=33554432]=\"InReverseMappedType\"}(e.NodeBuilderFlags||(e.NodeBuilderFlags={})),function(e){e[e.None=0]=\"None\",e[e.NoTruncation=1]=\"NoTruncation\",e[e.WriteArrayAsGenericType=2]=\"WriteArrayAsGenericType\",e[e.UseStructuralFallback=8]=\"UseStructuralFallback\",e[e.WriteTypeArgumentsOfSignature=32]=\"WriteTypeArgumentsOfSignature\",e[e.UseFullyQualifiedType=64]=\"UseFullyQualifiedType\",e[e.SuppressAnyReturnType=256]=\"SuppressAnyReturnType\",e[e.MultilineObjectLiterals=1024]=\"MultilineObjectLiterals\",e[e.WriteClassExpressionAsTypeLiteral=2048]=\"WriteClassExpressionAsTypeLiteral\",e[e.UseTypeOfFunction=4096]=\"UseTypeOfFunction\",e[e.OmitParameterModifiers=8192]=\"OmitParameterModifiers\",e[e.UseAliasDefinedOutsideCurrentScope=16384]=\"UseAliasDefinedOutsideCurrentScope\",e[e.AllowUniqueESSymbolType=1048576]=\"AllowUniqueESSymbolType\",e[e.AddUndefined=131072]=\"AddUndefined\",e[e.WriteArrowStyleSignature=262144]=\"WriteArrowStyleSignature\",e[e.InArrayType=524288]=\"InArrayType\",e[e.InElementType=2097152]=\"InElementType\",e[e.InFirstTypeArgument=4194304]=\"InFirstTypeArgument\",e[e.InTypeAlias=8388608]=\"InTypeAlias\",e[e.WriteOwnNameForAnyLike=0]=\"WriteOwnNameForAnyLike\",e[e.NodeBuilderFlagsMask=9469291]=\"NodeBuilderFlagsMask\"}(e.TypeFormatFlags||(e.TypeFormatFlags={})),function(e){e[e.None=0]=\"None\",e[e.WriteTypeParametersOrArguments=1]=\"WriteTypeParametersOrArguments\",e[e.UseOnlyExternalAliasing=2]=\"UseOnlyExternalAliasing\",e[e.AllowAnyNodeKind=4]=\"AllowAnyNodeKind\",e[e.UseAliasDefinedOutsideCurrentScope=8]=\"UseAliasDefinedOutsideCurrentScope\",e[e.DoNotIncludeSymbolChain=16]=\"DoNotIncludeSymbolChain\"}(e.SymbolFormatFlags||(e.SymbolFormatFlags={})),function(e){e[e.Accessible=0]=\"Accessible\",e[e.NotAccessible=1]=\"NotAccessible\",e[e.CannotBeNamed=2]=\"CannotBeNamed\"}(e.SymbolAccessibility||(e.SymbolAccessibility={})),function(e){e[e.UnionOrIntersection=0]=\"UnionOrIntersection\",e[e.Spread=1]=\"Spread\"}(e.SyntheticSymbolKind||(e.SyntheticSymbolKind={})),function(e){e[e.This=0]=\"This\",e[e.Identifier=1]=\"Identifier\",e[e.AssertsThis=2]=\"AssertsThis\",e[e.AssertsIdentifier=3]=\"AssertsIdentifier\"}(e.TypePredicateKind||(e.TypePredicateKind={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.TypeWithConstructSignatureAndValue=1]=\"TypeWithConstructSignatureAndValue\",e[e.VoidNullableOrNeverType=2]=\"VoidNullableOrNeverType\",e[e.NumberLikeType=3]=\"NumberLikeType\",e[e.BigIntLikeType=4]=\"BigIntLikeType\",e[e.StringLikeType=5]=\"StringLikeType\",e[e.BooleanType=6]=\"BooleanType\",e[e.ArrayLikeType=7]=\"ArrayLikeType\",e[e.ESSymbolType=8]=\"ESSymbolType\",e[e.Promise=9]=\"Promise\",e[e.TypeWithCallSignature=10]=\"TypeWithCallSignature\",e[e.ObjectType=11]=\"ObjectType\"}(e.TypeReferenceSerializationKind||(e.TypeReferenceSerializationKind={})),function(e){e[e.None=0]=\"None\",e[e.FunctionScopedVariable=1]=\"FunctionScopedVariable\",e[e.BlockScopedVariable=2]=\"BlockScopedVariable\",e[e.Property=4]=\"Property\",e[e.EnumMember=8]=\"EnumMember\",e[e.Function=16]=\"Function\",e[e.Class=32]=\"Class\",e[e.Interface=64]=\"Interface\",e[e.ConstEnum=128]=\"ConstEnum\",e[e.RegularEnum=256]=\"RegularEnum\",e[e.ValueModule=512]=\"ValueModule\",e[e.NamespaceModule=1024]=\"NamespaceModule\",e[e.TypeLiteral=2048]=\"TypeLiteral\",e[e.ObjectLiteral=4096]=\"ObjectLiteral\",e[e.Method=8192]=\"Method\",e[e.Constructor=16384]=\"Constructor\",e[e.GetAccessor=32768]=\"GetAccessor\",e[e.SetAccessor=65536]=\"SetAccessor\",e[e.Signature=131072]=\"Signature\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.TypeAlias=524288]=\"TypeAlias\",e[e.ExportValue=1048576]=\"ExportValue\",e[e.Alias=2097152]=\"Alias\",e[e.Prototype=4194304]=\"Prototype\",e[e.ExportStar=8388608]=\"ExportStar\",e[e.Optional=16777216]=\"Optional\",e[e.Transient=33554432]=\"Transient\",e[e.Assignment=67108864]=\"Assignment\",e[e.ModuleExports=134217728]=\"ModuleExports\",e[e.All=67108863]=\"All\",e[e.Enum=384]=\"Enum\",e[e.Variable=3]=\"Variable\",e[e.Value=111551]=\"Value\",e[e.Type=788968]=\"Type\",e[e.Namespace=1920]=\"Namespace\",e[e.Module=1536]=\"Module\",e[e.Accessor=98304]=\"Accessor\",e[e.FunctionScopedVariableExcludes=111550]=\"FunctionScopedVariableExcludes\",e[e.BlockScopedVariableExcludes=111551]=\"BlockScopedVariableExcludes\",e[e.ParameterExcludes=111551]=\"ParameterExcludes\",e[e.PropertyExcludes=0]=\"PropertyExcludes\",e[e.EnumMemberExcludes=900095]=\"EnumMemberExcludes\",e[e.FunctionExcludes=110991]=\"FunctionExcludes\",e[e.ClassExcludes=899503]=\"ClassExcludes\",e[e.InterfaceExcludes=788872]=\"InterfaceExcludes\",e[e.RegularEnumExcludes=899327]=\"RegularEnumExcludes\",e[e.ConstEnumExcludes=899967]=\"ConstEnumExcludes\",e[e.ValueModuleExcludes=110735]=\"ValueModuleExcludes\",e[e.NamespaceModuleExcludes=0]=\"NamespaceModuleExcludes\",e[e.MethodExcludes=103359]=\"MethodExcludes\",e[e.GetAccessorExcludes=46015]=\"GetAccessorExcludes\",e[e.SetAccessorExcludes=78783]=\"SetAccessorExcludes\",e[e.TypeParameterExcludes=526824]=\"TypeParameterExcludes\",e[e.TypeAliasExcludes=788968]=\"TypeAliasExcludes\",e[e.AliasExcludes=2097152]=\"AliasExcludes\",e[e.ModuleMember=2623475]=\"ModuleMember\",e[e.ExportHasLocal=944]=\"ExportHasLocal\",e[e.BlockScoped=418]=\"BlockScoped\",e[e.PropertyOrAccessor=98308]=\"PropertyOrAccessor\",e[e.ClassMember=106500]=\"ClassMember\",e[e.ExportSupportsDefaultModifier=112]=\"ExportSupportsDefaultModifier\",e[e.ExportDoesNotSupportDefaultModifier=-113]=\"ExportDoesNotSupportDefaultModifier\",e[e.Classifiable=2885600]=\"Classifiable\",e[e.LateBindingContainer=6256]=\"LateBindingContainer\"}(e.SymbolFlags||(e.SymbolFlags={})),function(e){e[e.Numeric=0]=\"Numeric\",e[e.Literal=1]=\"Literal\"}(e.EnumKind||(e.EnumKind={})),function(e){e[e.Instantiated=1]=\"Instantiated\",e[e.SyntheticProperty=2]=\"SyntheticProperty\",e[e.SyntheticMethod=4]=\"SyntheticMethod\",e[e.Readonly=8]=\"Readonly\",e[e.ReadPartial=16]=\"ReadPartial\",e[e.WritePartial=32]=\"WritePartial\",e[e.HasNonUniformType=64]=\"HasNonUniformType\",e[e.HasLiteralType=128]=\"HasLiteralType\",e[e.ContainsPublic=256]=\"ContainsPublic\",e[e.ContainsProtected=512]=\"ContainsProtected\",e[e.ContainsPrivate=1024]=\"ContainsPrivate\",e[e.ContainsStatic=2048]=\"ContainsStatic\",e[e.Late=4096]=\"Late\",e[e.ReverseMapped=8192]=\"ReverseMapped\",e[e.OptionalParameter=16384]=\"OptionalParameter\",e[e.RestParameter=32768]=\"RestParameter\",e[e.DeferredType=65536]=\"DeferredType\",e[e.Synthetic=6]=\"Synthetic\",e[e.Discriminant=192]=\"Discriminant\",e[e.Partial=48]=\"Partial\"}(e.CheckFlags||(e.CheckFlags={})),function(e){e.Call=\"__call\",e.Constructor=\"__constructor\",e.New=\"__new\",e.Index=\"__index\",e.ExportStar=\"__export\",e.Global=\"__global\",e.Missing=\"__missing\",e.Type=\"__type\",e.Object=\"__object\",e.JSXAttributes=\"__jsxAttributes\",e.Class=\"__class\",e.Function=\"__function\",e.Computed=\"__computed\",e.Resolving=\"__resolving__\",e.ExportEquals=\"export=\",e.Default=\"default\",e.This=\"this\"}(e.InternalSymbolName||(e.InternalSymbolName={})),function(e){e[e.TypeChecked=1]=\"TypeChecked\",e[e.LexicalThis=2]=\"LexicalThis\",e[e.CaptureThis=4]=\"CaptureThis\",e[e.CaptureNewTarget=8]=\"CaptureNewTarget\",e[e.SuperInstance=256]=\"SuperInstance\",e[e.SuperStatic=512]=\"SuperStatic\",e[e.ContextChecked=1024]=\"ContextChecked\",e[e.AsyncMethodWithSuper=2048]=\"AsyncMethodWithSuper\",e[e.AsyncMethodWithSuperBinding=4096]=\"AsyncMethodWithSuperBinding\",e[e.CaptureArguments=8192]=\"CaptureArguments\",e[e.EnumValuesComputed=16384]=\"EnumValuesComputed\",e[e.LexicalModuleMergesWithClass=32768]=\"LexicalModuleMergesWithClass\",e[e.LoopWithCapturedBlockScopedBinding=65536]=\"LoopWithCapturedBlockScopedBinding\",e[e.ContainsCapturedBlockScopeBinding=131072]=\"ContainsCapturedBlockScopeBinding\",e[e.CapturedBlockScopedBinding=262144]=\"CapturedBlockScopedBinding\",e[e.BlockScopedBindingInLoop=524288]=\"BlockScopedBindingInLoop\",e[e.ClassWithBodyScopedClassBinding=1048576]=\"ClassWithBodyScopedClassBinding\",e[e.BodyScopedClassBinding=2097152]=\"BodyScopedClassBinding\",e[e.NeedsLoopOutParameter=4194304]=\"NeedsLoopOutParameter\",e[e.AssignmentsMarked=8388608]=\"AssignmentsMarked\",e[e.ClassWithConstructorReference=16777216]=\"ClassWithConstructorReference\",e[e.ConstructorReferenceInClass=33554432]=\"ConstructorReferenceInClass\"}(e.NodeCheckFlags||(e.NodeCheckFlags={})),function(e){e[e.Any=1]=\"Any\",e[e.Unknown=2]=\"Unknown\",e[e.String=4]=\"String\",e[e.Number=8]=\"Number\",e[e.Boolean=16]=\"Boolean\",e[e.Enum=32]=\"Enum\",e[e.BigInt=64]=\"BigInt\",e[e.StringLiteral=128]=\"StringLiteral\",e[e.NumberLiteral=256]=\"NumberLiteral\",e[e.BooleanLiteral=512]=\"BooleanLiteral\",e[e.EnumLiteral=1024]=\"EnumLiteral\",e[e.BigIntLiteral=2048]=\"BigIntLiteral\",e[e.ESSymbol=4096]=\"ESSymbol\",e[e.UniqueESSymbol=8192]=\"UniqueESSymbol\",e[e.Void=16384]=\"Void\",e[e.Undefined=32768]=\"Undefined\",e[e.Null=65536]=\"Null\",e[e.Never=131072]=\"Never\",e[e.TypeParameter=262144]=\"TypeParameter\",e[e.Object=524288]=\"Object\",e[e.Union=1048576]=\"Union\",e[e.Intersection=2097152]=\"Intersection\",e[e.Index=4194304]=\"Index\",e[e.IndexedAccess=8388608]=\"IndexedAccess\",e[e.Conditional=16777216]=\"Conditional\",e[e.Substitution=33554432]=\"Substitution\",e[e.NonPrimitive=67108864]=\"NonPrimitive\",e[e.AnyOrUnknown=3]=\"AnyOrUnknown\",e[e.Nullable=98304]=\"Nullable\",e[e.Literal=2944]=\"Literal\",e[e.Unit=109440]=\"Unit\",e[e.StringOrNumberLiteral=384]=\"StringOrNumberLiteral\",e[e.StringOrNumberLiteralOrUnique=8576]=\"StringOrNumberLiteralOrUnique\",e[e.DefinitelyFalsy=117632]=\"DefinitelyFalsy\",e[e.PossiblyFalsy=117724]=\"PossiblyFalsy\",e[e.Intrinsic=67359327]=\"Intrinsic\",e[e.Primitive=131068]=\"Primitive\",e[e.StringLike=132]=\"StringLike\",e[e.NumberLike=296]=\"NumberLike\",e[e.BigIntLike=2112]=\"BigIntLike\",e[e.BooleanLike=528]=\"BooleanLike\",e[e.EnumLike=1056]=\"EnumLike\",e[e.ESSymbolLike=12288]=\"ESSymbolLike\",e[e.VoidLike=49152]=\"VoidLike\",e[e.DisjointDomains=67238908]=\"DisjointDomains\",e[e.UnionOrIntersection=3145728]=\"UnionOrIntersection\",e[e.StructuredType=3670016]=\"StructuredType\",e[e.TypeVariable=8650752]=\"TypeVariable\",e[e.InstantiableNonPrimitive=58982400]=\"InstantiableNonPrimitive\",e[e.InstantiablePrimitive=4194304]=\"InstantiablePrimitive\",e[e.Instantiable=63176704]=\"Instantiable\",e[e.StructuredOrInstantiable=66846720]=\"StructuredOrInstantiable\",e[e.ObjectFlagsType=3899392]=\"ObjectFlagsType\",e[e.Simplifiable=25165824]=\"Simplifiable\",e[e.Narrowable=133970943]=\"Narrowable\",e[e.NotUnionOrUnit=67637251]=\"NotUnionOrUnit\",e[e.NotPrimitiveUnion=66994211]=\"NotPrimitiveUnion\",e[e.IncludesMask=68943871]=\"IncludesMask\",e[e.IncludesStructuredOrInstantiable=262144]=\"IncludesStructuredOrInstantiable\",e[e.IncludesNonWideningType=2097152]=\"IncludesNonWideningType\",e[e.IncludesWildcard=4194304]=\"IncludesWildcard\",e[e.IncludesEmptyObject=8388608]=\"IncludesEmptyObject\",e[e.GenericMappedType=131072]=\"GenericMappedType\"}(e.TypeFlags||(e.TypeFlags={})),function(e){e[e.Class=1]=\"Class\",e[e.Interface=2]=\"Interface\",e[e.Reference=4]=\"Reference\",e[e.Tuple=8]=\"Tuple\",e[e.Anonymous=16]=\"Anonymous\",e[e.Mapped=32]=\"Mapped\",e[e.Instantiated=64]=\"Instantiated\",e[e.ObjectLiteral=128]=\"ObjectLiteral\",e[e.EvolvingArray=256]=\"EvolvingArray\",e[e.ObjectLiteralPatternWithComputedProperties=512]=\"ObjectLiteralPatternWithComputedProperties\",e[e.ContainsSpread=1024]=\"ContainsSpread\",e[e.ReverseMapped=2048]=\"ReverseMapped\",e[e.JsxAttributes=4096]=\"JsxAttributes\",e[e.MarkerType=8192]=\"MarkerType\",e[e.JSLiteral=16384]=\"JSLiteral\",e[e.FreshLiteral=32768]=\"FreshLiteral\",e[e.ArrayLiteral=65536]=\"ArrayLiteral\",e[e.PrimitiveUnion=131072]=\"PrimitiveUnion\",e[e.ContainsWideningType=262144]=\"ContainsWideningType\",e[e.ContainsObjectOrArrayLiteral=524288]=\"ContainsObjectOrArrayLiteral\",e[e.NonInferrableType=1048576]=\"NonInferrableType\",e[e.ClassOrInterface=3]=\"ClassOrInterface\",e[e.RequiresWidening=786432]=\"RequiresWidening\",e[e.PropagatingFlags=1835008]=\"PropagatingFlags\"}(e.ObjectFlags||(e.ObjectFlags={})),function(e){e[e.Invariant=0]=\"Invariant\",e[e.Covariant=1]=\"Covariant\",e[e.Contravariant=2]=\"Contravariant\",e[e.Bivariant=3]=\"Bivariant\",e[e.Independent=4]=\"Independent\",e[e.VarianceMask=7]=\"VarianceMask\",e[e.Unmeasurable=8]=\"Unmeasurable\",e[e.Unreliable=16]=\"Unreliable\",e[e.AllowsStructuralFallback=24]=\"AllowsStructuralFallback\"}(e.VarianceFlags||(e.VarianceFlags={})),function(e){e[e.Component=0]=\"Component\",e[e.Function=1]=\"Function\",e[e.Mixed=2]=\"Mixed\"}(e.JsxReferenceKind||(e.JsxReferenceKind={})),function(e){e[e.Call=0]=\"Call\",e[e.Construct=1]=\"Construct\"}(e.SignatureKind||(e.SignatureKind={})),function(e){e[e.None=0]=\"None\",e[e.HasRestParameter=1]=\"HasRestParameter\",e[e.HasLiteralTypes=2]=\"HasLiteralTypes\",e[e.IsInnerCallChain=4]=\"IsInnerCallChain\",e[e.IsOuterCallChain=8]=\"IsOuterCallChain\",e[e.PropagatingFlags=3]=\"PropagatingFlags\",e[e.CallChainFlags=12]=\"CallChainFlags\"}(e.SignatureFlags||(e.SignatureFlags={})),function(e){e[e.String=0]=\"String\",e[e.Number=1]=\"Number\"}(e.IndexKind||(e.IndexKind={})),function(e){e[e.NakedTypeVariable=1]=\"NakedTypeVariable\",e[e.HomomorphicMappedType=2]=\"HomomorphicMappedType\",e[e.PartialHomomorphicMappedType=4]=\"PartialHomomorphicMappedType\",e[e.MappedTypeConstraint=8]=\"MappedTypeConstraint\",e[e.ReturnType=16]=\"ReturnType\",e[e.LiteralKeyof=32]=\"LiteralKeyof\",e[e.NoConstraints=64]=\"NoConstraints\",e[e.AlwaysStrict=128]=\"AlwaysStrict\",e[e.MaxValue=256]=\"MaxValue\",e[e.PriorityImpliesCombination=56]=\"PriorityImpliesCombination\",e[e.Circularity=-1]=\"Circularity\"}(e.InferencePriority||(e.InferencePriority={})),function(e){e[e.None=0]=\"None\",e[e.NoDefault=1]=\"NoDefault\",e[e.AnyDefault=2]=\"AnyDefault\",e[e.SkippedGenericFunction=4]=\"SkippedGenericFunction\"}(e.InferenceFlags||(e.InferenceFlags={})),function(e){e[e.False=0]=\"False\",e[e.Maybe=1]=\"Maybe\",e[e.True=-1]=\"True\"}(e.Ternary||(e.Ternary={})),function(e){e[e.None=0]=\"None\",e[e.ExportsProperty=1]=\"ExportsProperty\",e[e.ModuleExports=2]=\"ModuleExports\",e[e.PrototypeProperty=3]=\"PrototypeProperty\",e[e.ThisProperty=4]=\"ThisProperty\",e[e.Property=5]=\"Property\",e[e.Prototype=6]=\"Prototype\",e[e.ObjectDefinePropertyValue=7]=\"ObjectDefinePropertyValue\",e[e.ObjectDefinePropertyExports=8]=\"ObjectDefinePropertyExports\",e[e.ObjectDefinePrototypeProperty=9]=\"ObjectDefinePrototypeProperty\"}(e.AssignmentDeclarationKind||(e.AssignmentDeclarationKind={})),function(e){e[e.Warning=0]=\"Warning\",e[e.Error=1]=\"Error\",e[e.Suggestion=2]=\"Suggestion\",e[e.Message=3]=\"Message\"}(n=e.DiagnosticCategory||(e.DiagnosticCategory={})),e.diagnosticCategoryName=function(e,t){void 0===t&&(t=!0);var r=n[e.category];return t?r.toLowerCase():r},function(e){e[e.Classic=1]=\"Classic\",e[e.NodeJs=2]=\"NodeJs\"}(e.ModuleResolutionKind||(e.ModuleResolutionKind={})),function(e){e[e.None=0]=\"None\",e[e.CommonJS=1]=\"CommonJS\",e[e.AMD=2]=\"AMD\",e[e.UMD=3]=\"UMD\",e[e.System=4]=\"System\",e[e.ES2015=5]=\"ES2015\",e[e.ESNext=99]=\"ESNext\"}(e.ModuleKind||(e.ModuleKind={})),function(e){e[e.None=0]=\"None\",e[e.Preserve=1]=\"Preserve\",e[e.React=2]=\"React\",e[e.ReactNative=3]=\"ReactNative\"}(e.JsxEmit||(e.JsxEmit={})),function(e){e[e.CarriageReturnLineFeed=0]=\"CarriageReturnLineFeed\",e[e.LineFeed=1]=\"LineFeed\"}(e.NewLineKind||(e.NewLineKind={})),function(e){e[e.Unknown=0]=\"Unknown\",e[e.JS=1]=\"JS\",e[e.JSX=2]=\"JSX\",e[e.TS=3]=\"TS\",e[e.TSX=4]=\"TSX\",e[e.External=5]=\"External\",e[e.JSON=6]=\"JSON\",e[e.Deferred=7]=\"Deferred\"}(e.ScriptKind||(e.ScriptKind={})),function(e){e[e.ES3=0]=\"ES3\",e[e.ES5=1]=\"ES5\",e[e.ES2015=2]=\"ES2015\",e[e.ES2016=3]=\"ES2016\",e[e.ES2017=4]=\"ES2017\",e[e.ES2018=5]=\"ES2018\",e[e.ES2019=6]=\"ES2019\",e[e.ES2020=7]=\"ES2020\",e[e.ESNext=99]=\"ESNext\",e[e.JSON=100]=\"JSON\",e[e.Latest=99]=\"Latest\"}(e.ScriptTarget||(e.ScriptTarget={})),function(e){e[e.Standard=0]=\"Standard\",e[e.JSX=1]=\"JSX\"}(e.LanguageVariant||(e.LanguageVariant={})),function(e){e[e.None=0]=\"None\",e[e.Recursive=1]=\"Recursive\"}(e.WatchDirectoryFlags||(e.WatchDirectoryFlags={})),function(e){e[e.nullCharacter=0]=\"nullCharacter\",e[e.maxAsciiCharacter=127]=\"maxAsciiCharacter\",e[e.lineFeed=10]=\"lineFeed\",e[e.carriageReturn=13]=\"carriageReturn\",e[e.lineSeparator=8232]=\"lineSeparator\",e[e.paragraphSeparator=8233]=\"paragraphSeparator\",e[e.nextLine=133]=\"nextLine\",e[e.space=32]=\"space\",e[e.nonBreakingSpace=160]=\"nonBreakingSpace\",e[e.enQuad=8192]=\"enQuad\",e[e.emQuad=8193]=\"emQuad\",e[e.enSpace=8194]=\"enSpace\",e[e.emSpace=8195]=\"emSpace\",e[e.threePerEmSpace=8196]=\"threePerEmSpace\",e[e.fourPerEmSpace=8197]=\"fourPerEmSpace\",e[e.sixPerEmSpace=8198]=\"sixPerEmSpace\",e[e.figureSpace=8199]=\"figureSpace\",e[e.punctuationSpace=8200]=\"punctuationSpace\",e[e.thinSpace=8201]=\"thinSpace\",e[e.hairSpace=8202]=\"hairSpace\",e[e.zeroWidthSpace=8203]=\"zeroWidthSpace\",e[e.narrowNoBreakSpace=8239]=\"narrowNoBreakSpace\",e[e.ideographicSpace=12288]=\"ideographicSpace\",e[e.mathematicalSpace=8287]=\"mathematicalSpace\",e[e.ogham=5760]=\"ogham\",e[e._=95]=\"_\",e[e.$=36]=\"$\",e[e._0=48]=\"_0\",e[e._1=49]=\"_1\",e[e._2=50]=\"_2\",e[e._3=51]=\"_3\",e[e._4=52]=\"_4\",e[e._5=53]=\"_5\",e[e._6=54]=\"_6\",e[e._7=55]=\"_7\",e[e._8=56]=\"_8\",e[e._9=57]=\"_9\",e[e.a=97]=\"a\",e[e.b=98]=\"b\",e[e.c=99]=\"c\",e[e.d=100]=\"d\",e[e.e=101]=\"e\",e[e.f=102]=\"f\",e[e.g=103]=\"g\",e[e.h=104]=\"h\",e[e.i=105]=\"i\",e[e.j=106]=\"j\",e[e.k=107]=\"k\",e[e.l=108]=\"l\",e[e.m=109]=\"m\",e[e.n=110]=\"n\",e[e.o=111]=\"o\",e[e.p=112]=\"p\",e[e.q=113]=\"q\",e[e.r=114]=\"r\",e[e.s=115]=\"s\",e[e.t=116]=\"t\",e[e.u=117]=\"u\",e[e.v=118]=\"v\",e[e.w=119]=\"w\",e[e.x=120]=\"x\",e[e.y=121]=\"y\",e[e.z=122]=\"z\",e[e.A=65]=\"A\",e[e.B=66]=\"B\",e[e.C=67]=\"C\",e[e.D=68]=\"D\",e[e.E=69]=\"E\",e[e.F=70]=\"F\",e[e.G=71]=\"G\",e[e.H=72]=\"H\",e[e.I=73]=\"I\",e[e.J=74]=\"J\",e[e.K=75]=\"K\",e[e.L=76]=\"L\",e[e.M=77]=\"M\",e[e.N=78]=\"N\",e[e.O=79]=\"O\",e[e.P=80]=\"P\",e[e.Q=81]=\"Q\",e[e.R=82]=\"R\",e[e.S=83]=\"S\",e[e.T=84]=\"T\",e[e.U=85]=\"U\",e[e.V=86]=\"V\",e[e.W=87]=\"W\",e[e.X=88]=\"X\",e[e.Y=89]=\"Y\",e[e.Z=90]=\"Z\",e[e.ampersand=38]=\"ampersand\",e[e.asterisk=42]=\"asterisk\",e[e.at=64]=\"at\",e[e.backslash=92]=\"backslash\",e[e.backtick=96]=\"backtick\",e[e.bar=124]=\"bar\",e[e.caret=94]=\"caret\",e[e.closeBrace=125]=\"closeBrace\",e[e.closeBracket=93]=\"closeBracket\",e[e.closeParen=41]=\"closeParen\",e[e.colon=58]=\"colon\",e[e.comma=44]=\"comma\",e[e.dot=46]=\"dot\",e[e.doubleQuote=34]=\"doubleQuote\",e[e.equals=61]=\"equals\",e[e.exclamation=33]=\"exclamation\",e[e.greaterThan=62]=\"greaterThan\",e[e.hash=35]=\"hash\",e[e.lessThan=60]=\"lessThan\",e[e.minus=45]=\"minus\",e[e.openBrace=123]=\"openBrace\",e[e.openBracket=91]=\"openBracket\",e[e.openParen=40]=\"openParen\",e[e.percent=37]=\"percent\",e[e.plus=43]=\"plus\",e[e.question=63]=\"question\",e[e.semicolon=59]=\"semicolon\",e[e.singleQuote=39]=\"singleQuote\",e[e.slash=47]=\"slash\",e[e.tilde=126]=\"tilde\",e[e.backspace=8]=\"backspace\",e[e.formFeed=12]=\"formFeed\",e[e.byteOrderMark=65279]=\"byteOrderMark\",e[e.tab=9]=\"tab\",e[e.verticalTab=11]=\"verticalTab\"}(e.CharacterCodes||(e.CharacterCodes={})),function(e){e.Ts=\".ts\",e.Tsx=\".tsx\",e.Dts=\".d.ts\",e.Js=\".js\",e.Jsx=\".jsx\",e.Json=\".json\",e.TsBuildInfo=\".tsbuildinfo\"}(e.Extension||(e.Extension={})),function(e){e[e.None=0]=\"None\",e[e.ContainsTypeScript=1]=\"ContainsTypeScript\",e[e.ContainsJsx=2]=\"ContainsJsx\",e[e.ContainsESNext=4]=\"ContainsESNext\",e[e.ContainsES2019=8]=\"ContainsES2019\",e[e.ContainsES2018=16]=\"ContainsES2018\",e[e.ContainsES2017=32]=\"ContainsES2017\",e[e.ContainsES2016=64]=\"ContainsES2016\",e[e.ContainsES2015=128]=\"ContainsES2015\",e[e.ContainsGenerator=256]=\"ContainsGenerator\",e[e.ContainsDestructuringAssignment=512]=\"ContainsDestructuringAssignment\",e[e.ContainsTypeScriptClassSyntax=1024]=\"ContainsTypeScriptClassSyntax\",e[e.ContainsLexicalThis=2048]=\"ContainsLexicalThis\",e[e.ContainsRestOrSpread=4096]=\"ContainsRestOrSpread\",e[e.ContainsObjectRestOrSpread=8192]=\"ContainsObjectRestOrSpread\",e[e.ContainsComputedPropertyName=16384]=\"ContainsComputedPropertyName\",e[e.ContainsBlockScopedBinding=32768]=\"ContainsBlockScopedBinding\",e[e.ContainsBindingPattern=65536]=\"ContainsBindingPattern\",e[e.ContainsYield=131072]=\"ContainsYield\",e[e.ContainsHoistedDeclarationOrCompletion=262144]=\"ContainsHoistedDeclarationOrCompletion\",e[e.ContainsDynamicImport=524288]=\"ContainsDynamicImport\",e[e.ContainsClassFields=1048576]=\"ContainsClassFields\",e[e.HasComputedFlags=536870912]=\"HasComputedFlags\",e[e.AssertTypeScript=1]=\"AssertTypeScript\",e[e.AssertJsx=2]=\"AssertJsx\",e[e.AssertESNext=4]=\"AssertESNext\",e[e.AssertES2019=8]=\"AssertES2019\",e[e.AssertES2018=16]=\"AssertES2018\",e[e.AssertES2017=32]=\"AssertES2017\",e[e.AssertES2016=64]=\"AssertES2016\",e[e.AssertES2015=128]=\"AssertES2015\",e[e.AssertGenerator=256]=\"AssertGenerator\",e[e.AssertDestructuringAssignment=512]=\"AssertDestructuringAssignment\",e[e.OuterExpressionExcludes=536870912]=\"OuterExpressionExcludes\",e[e.PropertyAccessExcludes=536870912]=\"PropertyAccessExcludes\",e[e.NodeExcludes=536870912]=\"NodeExcludes\",e[e.ArrowFunctionExcludes=537371648]=\"ArrowFunctionExcludes\",e[e.FunctionExcludes=537373696]=\"FunctionExcludes\",e[e.ConstructorExcludes=537372672]=\"ConstructorExcludes\",e[e.MethodOrAccessorExcludes=537372672]=\"MethodOrAccessorExcludes\",e[e.PropertyExcludes=536872960]=\"PropertyExcludes\",e[e.ClassExcludes=536888320]=\"ClassExcludes\",e[e.ModuleExcludes=537168896]=\"ModuleExcludes\",e[e.TypeExcludes=-2]=\"TypeExcludes\",e[e.ObjectLiteralExcludes=536896512]=\"ObjectLiteralExcludes\",e[e.ArrayLiteralOrCallOrNewExcludes=536875008]=\"ArrayLiteralOrCallOrNewExcludes\",e[e.VariableDeclarationListExcludes=536944640]=\"VariableDeclarationListExcludes\",e[e.ParameterExcludes=536870912]=\"ParameterExcludes\",e[e.CatchClauseExcludes=536879104]=\"CatchClauseExcludes\",e[e.BindingPatternExcludes=536875008]=\"BindingPatternExcludes\",e[e.PropertyNamePropagatingFlags=2048]=\"PropertyNamePropagatingFlags\"}(e.TransformFlags||(e.TransformFlags={})),function(e){e[e.None=0]=\"None\",e[e.SingleLine=1]=\"SingleLine\",e[e.AdviseOnEmitNode=2]=\"AdviseOnEmitNode\",e[e.NoSubstitution=4]=\"NoSubstitution\",e[e.CapturesThis=8]=\"CapturesThis\",e[e.NoLeadingSourceMap=16]=\"NoLeadingSourceMap\",e[e.NoTrailingSourceMap=32]=\"NoTrailingSourceMap\",e[e.NoSourceMap=48]=\"NoSourceMap\",e[e.NoNestedSourceMaps=64]=\"NoNestedSourceMaps\",e[e.NoTokenLeadingSourceMaps=128]=\"NoTokenLeadingSourceMaps\",e[e.NoTokenTrailingSourceMaps=256]=\"NoTokenTrailingSourceMaps\",e[e.NoTokenSourceMaps=384]=\"NoTokenSourceMaps\",e[e.NoLeadingComments=512]=\"NoLeadingComments\",e[e.NoTrailingComments=1024]=\"NoTrailingComments\",e[e.NoComments=1536]=\"NoComments\",e[e.NoNestedComments=2048]=\"NoNestedComments\",e[e.HelperName=4096]=\"HelperName\",e[e.ExportName=8192]=\"ExportName\",e[e.LocalName=16384]=\"LocalName\",e[e.InternalName=32768]=\"InternalName\",e[e.Indented=65536]=\"Indented\",e[e.NoIndentation=131072]=\"NoIndentation\",e[e.AsyncFunctionBody=262144]=\"AsyncFunctionBody\",e[e.ReuseTempVariableScope=524288]=\"ReuseTempVariableScope\",e[e.CustomPrologue=1048576]=\"CustomPrologue\",e[e.NoHoisting=2097152]=\"NoHoisting\",e[e.HasEndOfDeclarationMarker=4194304]=\"HasEndOfDeclarationMarker\",e[e.Iterator=8388608]=\"Iterator\",e[e.NoAsciiEscaping=16777216]=\"NoAsciiEscaping\",e[e.TypeScriptClassWrapper=33554432]=\"TypeScriptClassWrapper\",e[e.NeverApplyImportHelper=67108864]=\"NeverApplyImportHelper\"}(e.EmitFlags||(e.EmitFlags={})),function(e){e[e.Extends=1]=\"Extends\",e[e.Assign=2]=\"Assign\",e[e.Rest=4]=\"Rest\",e[e.Decorate=8]=\"Decorate\",e[e.Metadata=16]=\"Metadata\",e[e.Param=32]=\"Param\",e[e.Awaiter=64]=\"Awaiter\",e[e.Generator=128]=\"Generator\",e[e.Values=256]=\"Values\",e[e.Read=512]=\"Read\",e[e.Spread=1024]=\"Spread\",e[e.SpreadArrays=2048]=\"SpreadArrays\",e[e.Await=4096]=\"Await\",e[e.AsyncGenerator=8192]=\"AsyncGenerator\",e[e.AsyncDelegator=16384]=\"AsyncDelegator\",e[e.AsyncValues=32768]=\"AsyncValues\",e[e.ExportStar=65536]=\"ExportStar\",e[e.MakeTemplateObject=131072]=\"MakeTemplateObject\",e[e.FirstEmitHelper=1]=\"FirstEmitHelper\",e[e.LastEmitHelper=131072]=\"LastEmitHelper\",e[e.ForOfIncludes=256]=\"ForOfIncludes\",e[e.ForAwaitOfIncludes=32768]=\"ForAwaitOfIncludes\",e[e.AsyncGeneratorIncludes=12288]=\"AsyncGeneratorIncludes\",e[e.AsyncDelegatorIncludes=53248]=\"AsyncDelegatorIncludes\",e[e.SpreadIncludes=1536]=\"SpreadIncludes\"}(e.ExternalEmitHelpers||(e.ExternalEmitHelpers={})),function(e){e[e.SourceFile=0]=\"SourceFile\",e[e.Expression=1]=\"Expression\",e[e.IdentifierName=2]=\"IdentifierName\",e[e.MappedTypeParameter=3]=\"MappedTypeParameter\",e[e.Unspecified=4]=\"Unspecified\",e[e.EmbeddedStatement=5]=\"EmbeddedStatement\"}(e.EmitHint||(e.EmitHint={})),function(e){e.Prologue=\"prologue\",e.EmitHelpers=\"emitHelpers\",e.NoDefaultLib=\"no-default-lib\",e.Reference=\"reference\",e.Type=\"type\",e.Lib=\"lib\",e.Prepend=\"prepend\",e.Text=\"text\",e.Internal=\"internal\"}(e.BundleFileSectionKind||(e.BundleFileSectionKind={})),function(e){e[e.None=0]=\"None\",e[e.SingleLine=0]=\"SingleLine\",e[e.MultiLine=1]=\"MultiLine\",e[e.PreserveLines=2]=\"PreserveLines\",e[e.LinesMask=3]=\"LinesMask\",e[e.NotDelimited=0]=\"NotDelimited\",e[e.BarDelimited=4]=\"BarDelimited\",e[e.AmpersandDelimited=8]=\"AmpersandDelimited\",e[e.CommaDelimited=16]=\"CommaDelimited\",e[e.AsteriskDelimited=32]=\"AsteriskDelimited\",e[e.DelimitersMask=60]=\"DelimitersMask\",e[e.AllowTrailingComma=64]=\"AllowTrailingComma\",e[e.Indented=128]=\"Indented\",e[e.SpaceBetweenBraces=256]=\"SpaceBetweenBraces\",e[e.SpaceBetweenSiblings=512]=\"SpaceBetweenSiblings\",e[e.Braces=1024]=\"Braces\",e[e.Parenthesis=2048]=\"Parenthesis\",e[e.AngleBrackets=4096]=\"AngleBrackets\",e[e.SquareBrackets=8192]=\"SquareBrackets\",e[e.BracketsMask=15360]=\"BracketsMask\",e[e.OptionalIfUndefined=16384]=\"OptionalIfUndefined\",e[e.OptionalIfEmpty=32768]=\"OptionalIfEmpty\",e[e.Optional=49152]=\"Optional\",e[e.PreferNewLine=65536]=\"PreferNewLine\",e[e.NoTrailingNewLine=131072]=\"NoTrailingNewLine\",e[e.NoInterveningComments=262144]=\"NoInterveningComments\",e[e.NoSpaceIfEmpty=524288]=\"NoSpaceIfEmpty\",e[e.SingleElement=1048576]=\"SingleElement\",e[e.Modifiers=262656]=\"Modifiers\",e[e.HeritageClauses=512]=\"HeritageClauses\",e[e.SingleLineTypeLiteralMembers=768]=\"SingleLineTypeLiteralMembers\",e[e.MultiLineTypeLiteralMembers=32897]=\"MultiLineTypeLiteralMembers\",e[e.TupleTypeElements=528]=\"TupleTypeElements\",e[e.UnionTypeConstituents=516]=\"UnionTypeConstituents\",e[e.IntersectionTypeConstituents=520]=\"IntersectionTypeConstituents\",e[e.ObjectBindingPatternElements=525136]=\"ObjectBindingPatternElements\",e[e.ArrayBindingPatternElements=524880]=\"ArrayBindingPatternElements\",e[e.ObjectLiteralExpressionProperties=526226]=\"ObjectLiteralExpressionProperties\",e[e.ArrayLiteralExpressionElements=8914]=\"ArrayLiteralExpressionElements\",e[e.CommaListElements=528]=\"CommaListElements\",e[e.CallExpressionArguments=2576]=\"CallExpressionArguments\",e[e.NewExpressionArguments=18960]=\"NewExpressionArguments\",e[e.TemplateExpressionSpans=262144]=\"TemplateExpressionSpans\",e[e.SingleLineBlockStatements=768]=\"SingleLineBlockStatements\",e[e.MultiLineBlockStatements=129]=\"MultiLineBlockStatements\",e[e.VariableDeclarationList=528]=\"VariableDeclarationList\",e[e.SingleLineFunctionBodyStatements=768]=\"SingleLineFunctionBodyStatements\",e[e.MultiLineFunctionBodyStatements=1]=\"MultiLineFunctionBodyStatements\",e[e.ClassHeritageClauses=0]=\"ClassHeritageClauses\",e[e.ClassMembers=129]=\"ClassMembers\",e[e.InterfaceMembers=129]=\"InterfaceMembers\",e[e.EnumMembers=145]=\"EnumMembers\",e[e.CaseBlockClauses=129]=\"CaseBlockClauses\",e[e.NamedImportsOrExportsElements=525136]=\"NamedImportsOrExportsElements\",e[e.JsxElementOrFragmentChildren=262144]=\"JsxElementOrFragmentChildren\",e[e.JsxElementAttributes=262656]=\"JsxElementAttributes\",e[e.CaseOrDefaultClauseStatements=163969]=\"CaseOrDefaultClauseStatements\",e[e.HeritageClauseTypes=528]=\"HeritageClauseTypes\",e[e.SourceFileStatements=131073]=\"SourceFileStatements\",e[e.Decorators=49153]=\"Decorators\",e[e.TypeArguments=53776]=\"TypeArguments\",e[e.TypeParameters=53776]=\"TypeParameters\",e[e.Parameters=2576]=\"Parameters\",e[e.IndexSignatureParameters=8848]=\"IndexSignatureParameters\",e[e.JSDocComment=33]=\"JSDocComment\"}(e.ListFormat||(e.ListFormat={})),function(e){e[e.None=0]=\"None\",e[e.TripleSlashXML=1]=\"TripleSlashXML\",e[e.SingleLine=2]=\"SingleLine\",e[e.MultiLine=4]=\"MultiLine\",e[e.All=7]=\"All\",e[e.Default=7]=\"Default\"}(e.PragmaKindFlags||(e.PragmaKindFlags={})),e.commentPragmas={reference:{args:[{name:\"types\",optional:!0,captureSpan:!0},{name:\"lib\",optional:!0,captureSpan:!0},{name:\"path\",optional:!0,captureSpan:!0},{name:\"no-default-lib\",optional:!0}],kind:1},\"amd-dependency\":{args:[{name:\"path\"},{name:\"name\",optional:!0}],kind:1},\"amd-module\":{args:[{name:\"name\"}],kind:1},\"ts-check\":{kind:2},\"ts-nocheck\":{kind:2},jsx:{args:[{name:\"factory\"}],kind:4}}}(ts||(ts={})),function(e){var n,t;function r(e){var n;return(n={})[t.Low]=e.Low,n[t.Medium]=e.Medium,n[t.High]=e.High,n}e.generateDjb2Hash=function(e){for(var n=5381,t=0;t<e.length;t++)n=(n<<5)+n+e.charCodeAt(t);return n.toString()},e.setStackTraceLimit=function(){Error.stackTraceLimit<100&&(Error.stackTraceLimit=100)},function(e){e[e.Created=0]=\"Created\",e[e.Changed=1]=\"Changed\",e[e.Deleted=2]=\"Deleted\"}(n=e.FileWatcherEventKind||(e.FileWatcherEventKind={})),function(e){e[e.High=2e3]=\"High\",e[e.Medium=500]=\"Medium\",e[e.Low=250]=\"Low\"}(t=e.PollingInterval||(e.PollingInterval={})),e.missingFileModifiedTime=new Date(0);var a={Low:32,Medium:64,High:256},i=r(a);function o(n){if(n.getEnvironmentVariable){var o=function(e,n){var t=s(e);if(t)return r(\"Low\"),r(\"Medium\"),r(\"High\"),!0;return!1;function r(e){n[e]=t[e]||n[e]}}(\"TSC_WATCH_POLLINGINTERVAL\",t);i=c(\"TSC_WATCH_POLLINGCHUNKSIZE\",a)||i,e.unchangedPollThresholds=c(\"TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS\",a)||e.unchangedPollThresholds}function s(e){var t;return r(\"Low\"),r(\"Medium\"),r(\"High\"),t;function r(r){var a=function(e,t){return n.getEnvironmentVariable(e+\"_\"+t.toUpperCase())}(e,r);a&&((t||(t={}))[r]=Number(a))}}function c(e,n){var t=s(e);return(o||t)&&r(t?__assign(__assign({},n),t):n)}}function s(e,n){var t=e.mtime.getTime(),r=n.getTime();return t!==r&&(e.mtime=n,e.callback(e.fileName,c(t,r)),!0)}function c(e,t){return 0===e?n.Created:0===t?n.Deleted:n.Changed}e.unchangedPollThresholds=r(a),e.setCustomPollingValues=o,e.createDynamicPriorityPollingWatchFile=function(n){var r=[],a=[],o=u(t.Low),c=u(t.Medium),l=u(t.High);return function(n,t,a){var i={fileName:n,callback:t,unchangedPolls:0,mtime:h(n)};return r.push(i),_(i,a),{close:function(){i.isClosed=!0,e.unorderedRemoveItem(r,i)}}};function u(e){var n=[];return n.pollingInterval=e,n.pollIndex=0,n.pollScheduled=!1,n}function d(n){n.pollIndex=m(n,n.pollingInterval,n.pollIndex,i[n.pollingInterval]),n.length?v(n.pollingInterval):(e.Debug.assert(0===n.pollIndex),n.pollScheduled=!1)}function p(e){m(a,t.Low,0,a.length),d(e),!e.pollScheduled&&a.length&&v(t.Low)}function m(n,r,i,o){for(var c=n.length,l=i,u=0;u<o&&c>0;m(),c--){var d=n[i];if(d)if(d.isClosed)n[i]=void 0;else{u++;var p=s(d,h(d.fileName));d.isClosed?n[i]=void 0:p?(d.unchangedPolls=0,n!==a&&(n[i]=void 0,g(d))):d.unchangedPolls!==e.unchangedPollThresholds[r]?d.unchangedPolls++:n===a?(d.unchangedPolls=1,n[i]=void 0,_(d,t.Low)):r!==t.High&&(d.unchangedPolls++,n[i]=void 0,_(d,r===t.Low?t.Medium:t.High)),n[i]&&(l<i&&(n[l]=d,n[i]=void 0),l++)}}return i;function m(){++i===n.length&&(l<i&&(n.length=l),i=0,l=0)}}function f(e){switch(e){case t.Low:return o;case t.Medium:return c;case t.High:return l}}function _(e,n){f(n).push(e),y(n)}function g(e){a.push(e),y(t.Low)}function y(e){f(e).pollScheduled||v(e)}function v(e){f(e).pollScheduled=n.setTimeout(e===t.Low?p:d,e,f(e))}function h(t){return n.getModifiedTime(t)||e.missingFileModifiedTime}},e.createSingleFileWatcherPerName=function(n,t){var r=e.createMap(),a=e.createMultiMap(),i=e.createGetCanonicalFileName(t);return function(t,o,s){var c=i(t),l=r.get(c);return l?l.refCount++:r.set(c,{watcher:n(t,(function(n,t){return e.forEach(a.get(c),(function(e){return e(n,t)}))}),s),refCount:1}),a.add(c,o),{close:function(){var n=e.Debug.assertDefined(r.get(c));a.remove(c,o),n.refCount--,n.refCount||(r.delete(c),e.closeFileWatcherOf(n))}}}},e.onWatchedFileStat=s,e.getFileWatcherEventKind=c,e.ignoredPaths=[\"/node_modules/.\",\"/.git\",\"/.#\"],e.sysLog=e.noop,e.createRecursiveDirectoryWatcher=function(n){var t=e.createMap(),r=e.createMultiMap(),a=e.getStringComparer(!n.useCaseSensitiveFileNames),i=e.createGetCanonicalFileName(n.useCaseSensitiveFileNames);return o;function o(a,o){var l=i(a),u=t.get(l);return u?u.refCount++:(u={watcher:n.watchDirectory(a,(function(n){c(n)||(r.forEach((function(t,r){(r===l||e.startsWith(l,r)&&l[r.length]===e.directorySeparator)&&t.forEach((function(e){return e(n)}))})),s(a,l))})),refCount:1,childWatches:e.emptyArray},t.set(l,u),s(a,l)),o&&r.add(l,o),{dirName:a,close:function(){var n=e.Debug.assertDefined(t.get(l));o&&r.remove(l,o),n.refCount--,n.refCount||(t.delete(l),e.closeFileWatcherOf(n),n.childWatches.forEach(e.closeFileWatcher))}}}function s(r,i){var s=t.get(i);s&&(s.childWatches=function(t,r){var i;return e.enumerateInsertsAndDeletes(n.directoryExists(t)?e.mapDefined(n.getAccessibleSortedChildDirectories(t),(function(r){var i=e.getNormalizedAbsolutePath(r,t);return c(i)||0!==a(i,e.normalizePath(n.realpath(i)))?void 0:i})):e.emptyArray,r,(function(e,n){return a(e,n.dirName)}),(function(e){s(o(e))}),e.closeFileWatcher,s),i||e.emptyArray;function s(e){(i||(i=[])).push(e)}}(r,s.childWatches))}function c(t){return e.some(e.ignoredPaths,(function(r){return function(t,r){return!!e.stringContains(t,r)||!n.useCaseSensitiveFileNames&&e.stringContains(i(t),r)}(t,r)}))}},e.patchWriteFileEnsuringDirectory=function(n){var t=n.writeFile;n.writeFile=function(r,a,i){var o=e.getDirectoryPath(e.normalizeSlashes(r));o&&!n.directoryExists(o)&&function n(t,r){var a=e.getDirectoryPath(t),i=\"\"!==a&&t!==a&&!r.directoryExists(a);i&&n(a,r),!i&&r.directoryExists(t)||r.createDirectory(t)}(o,n),t.call(n,r,a,i)}},e.getNodeMajorVersion=function(){if(\"undefined\"!=typeof process){var e=process.version;if(e){var n=e.indexOf(\".\");if(-1!==n)return parseInt(e.substring(1,n))}}},e.sys=void 0,e.sys&&e.sys.getEnvironmentVariable&&(o(e.sys),e.Debug.currentAssertionLevel=/^development$/i.test(e.sys.getEnvironmentVariable(\"NODE_ENV\"))?1:0),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)}(ts||(ts={})),function(e){e.directorySeparator=\"/\";var n=/\\\\/g;function t(e){return 47===e||92===e}function r(e){return l(e)>0}function a(e){return 0!==l(e)}function i(e){return/^\\.\\.?($|[\\\\/])/.test(e)}function o(n,t){return n.length>t.length&&e.endsWith(n,t)}function s(e){return e.length>0&&t(e.charCodeAt(e.length-1))}function c(e){return e>=97&&e<=122||e>=65&&e<=90}function l(n){if(!n)return 0;var t=n.charCodeAt(0);if(47===t||92===t){if(n.charCodeAt(1)!==t)return 1;var r=n.indexOf(47===t?e.directorySeparator:\"\\\\\",2);return r<0?n.length:r+1}if(c(t)&&58===n.charCodeAt(1)){var a=n.charCodeAt(2);if(47===a||92===a)return 3;if(2===n.length)return 2}var i=n.indexOf(\"://\");if(-1!==i){var o=i+\"://\".length,s=n.indexOf(e.directorySeparator,o);if(-1!==s){var l=n.slice(0,i),u=n.slice(o,s);if(\"file\"===l&&(\"\"===u||\"localhost\"===u)&&c(n.charCodeAt(s+1))){var d=function(e,n){var t=e.charCodeAt(n);if(58===t)return n+1;if(37===t&&51===e.charCodeAt(n+1)){var r=e.charCodeAt(n+2);if(97===r||65===r)return n+3}return-1}(n,s+2);if(-1!==d){if(47===n.charCodeAt(d))return~(d+1);if(d===n.length)return~d}}return~(s+1)}return~n.length}return 0}function u(e){var n=l(e);return n<0?~n:n}function d(n){var t=u(n=y(n));return t===n.length?n:(n=x(n)).slice(0,Math.max(t,n.lastIndexOf(e.directorySeparator)))}function p(n,t,r){if(u(n=y(n))===n.length)return\"\";var a=(n=x(n)).slice(Math.max(u(n),n.lastIndexOf(e.directorySeparator)+1)),i=void 0!==t&&void 0!==r?f(a,t,r):void 0;return i?a.slice(0,a.length-i.length):a}function m(n,t,r){if(e.startsWith(t,\".\")||(t=\".\"+t),n.length>=t.length&&46===n.charCodeAt(n.length-t.length)){var a=n.slice(n.length-t.length);if(r(a,t))return a}}function f(n,t,r){if(t)return function(e,n,t){if(\"string\"==typeof n)return m(e,n,t)||\"\";for(var r=0,a=n;r<a.length;r++){var i=m(e,a[r],t);if(i)return i}return\"\"}(x(n),t,r?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive);var a=p(n),i=a.lastIndexOf(\".\");return i>=0?a.substring(i):\"\"}function _(n,t){return void 0===t&&(t=\"\"),function(n,t){var r=n.substring(0,t),a=n.substring(t).split(e.directorySeparator);return a.length&&!e.lastOrUndefined(a)&&a.pop(),__spreadArrays([r],a)}(n=h(t,n),u(n))}function g(n){return 0===n.length?\"\":(n[0]&&L(n[0]))+n.slice(1).join(e.directorySeparator)}function y(t){return t.replace(n,e.directorySeparator)}function v(n){if(!e.some(n))return[];for(var t=[n[0]],r=1;r<n.length;r++){var a=n[r];if(a&&\".\"!==a){if(\"..\"===a)if(t.length>1){if(\"..\"!==t[t.length-1]){t.pop();continue}}else if(t[0])continue;t.push(a)}}return t}function h(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&(e=y(e));for(var r=0,a=n;r<a.length;r++){var i=a[r];i&&(i=y(i),e=e&&0===u(i)?L(e)+i:i)}return e}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return S(e.some(t)?h.apply(void 0,__spreadArrays([n],t)):y(n))}function E(e,n){return v(_(e,n))}function T(e,n){return g(E(e,n))}function S(e){var n=g(v(_(e=y(e))));return n&&s(e)?L(n):n}function x(e){return s(e)?e.substr(0,e.length-1):e}function L(n){return s(n)?n:n+e.directorySeparator}function C(e){return a(e)||i(e)?e:\"./\"+e}e.isAnyDirectorySeparator=t,e.isUrl=function(e){return l(e)<0},e.isRootedDiskPath=r,e.isDiskPathRoot=function(e){var n=l(e);return n>0&&n===e.length},e.pathIsAbsolute=a,e.pathIsRelative=i,e.hasExtension=function(n){return e.stringContains(p(n),\".\")},e.fileExtensionIs=o,e.fileExtensionIsOneOf=function(e,n){for(var t=0,r=n;t<r.length;t++){if(o(e,r[t]))return!0}return!1},e.hasTrailingDirectorySeparator=s,e.getRootLength=u,e.getDirectoryPath=d,e.getBaseFileName=p,e.getAnyExtensionFromPath=f,e.getPathComponents=_,e.getPathFromPathComponents=g,e.normalizeSlashes=y,e.reducePathComponents=v,e.combinePaths=h,e.resolvePath=b,e.getNormalizedPathComponents=E,e.getNormalizedAbsolutePath=T,e.normalizePath=S,e.getNormalizedAbsolutePathWithoutRoot=function(n,t){return function(n){return 0===n.length?\"\":n.slice(1).join(e.directorySeparator)}(E(n,t))},e.toPath=function(e,n,t){return t(r(e)?S(e):T(e,n))},e.normalizePathAndParts=function(n){var t=v(_(n=y(n))),r=t[0],a=t.slice(1);if(a.length){var i=r+a.join(e.directorySeparator);return{path:s(n)?L(i):i,parts:a}}return{path:r,parts:a}},e.removeTrailingDirectorySeparator=x,e.ensureTrailingDirectorySeparator=L,e.ensurePathIsNonModuleName=C,e.changeAnyExtension=function(n,t,r,a){var i=void 0!==r&&void 0!==a?f(n,r,a):f(n);return i?n.slice(0,n.length-i.length)+(e.startsWith(t,\".\")?t:\".\"+t):n};var A=/(^|\\/)\\.{0,2}($|\\/)/;function D(n,t,r){if(n===t)return 0;if(void 0===n)return-1;if(void 0===t)return 1;var a=n.substring(0,u(n)),i=t.substring(0,u(t)),o=e.compareStringsCaseInsensitive(a,i);if(0!==o)return o;var s=n.substring(a.length),c=t.substring(i.length);if(!A.test(s)&&!A.test(c))return r(s,c);for(var l=v(_(n)),d=v(_(t)),p=Math.min(l.length,d.length),m=1;m<p;m++){var f=r(l[m],d[m]);if(0!==f)return f}return e.compareValues(l.length,d.length)}function k(n,t,r,a){var i,o=v(_(n)),s=v(_(t));for(i=0;i<o.length&&i<s.length;i++){var c=a(o[i]),l=a(s[i]);if(!(0===i?e.equateStringsCaseInsensitive:r)(c,l))break}if(0===i)return s;for(var u=s.slice(i),d=[];i<o.length;i++)d.push(\"..\");return __spreadArrays([\"\"],d,u)}function N(n,t,r){e.Debug.assert(u(n)>0==u(t)>0,\"Paths must either both be absolute or both be relative\");var a=\"function\"==typeof r?r:e.identity;return g(k(n,t,\"boolean\"==typeof r&&r?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,a))}function I(n,t,a,i,o){var s=k(b(a,n),b(a,t),e.equateStringsCaseSensitive,i),c=s[0];if(o&&r(c)){var l=c.charAt(0)===e.directorySeparator?\"file://\":\"file:///\";s[0]=l+c}return g(s)}e.comparePathsCaseSensitive=function(n,t){return D(n,t,e.compareStringsCaseSensitive)},e.comparePathsCaseInsensitive=function(n,t){return D(n,t,e.compareStringsCaseInsensitive)},e.comparePaths=function(n,t,r,a){return\"string\"==typeof r?(n=h(r,n),t=h(r,t)):\"boolean\"==typeof r&&(a=r),D(n,t,e.getStringComparer(a))},e.containsPath=function(n,t,r,a){if(\"string\"==typeof r?(n=h(r,n),t=h(r,t)):\"boolean\"==typeof r&&(a=r),void 0===n||void 0===t)return!1;if(n===t)return!0;var i=v(_(n)),o=v(_(t));if(o.length<i.length)return!1;for(var s=a?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,c=0;c<i.length;c++){if(!(0===c?e.equateStringsCaseInsensitive:s)(i[c],o[c]))return!1}return!0},e.startsWithDirectory=function(n,t,r){var a=r(n),i=r(t);return e.startsWith(a,i+\"/\")||e.startsWith(a,i+\"\\\\\")},e.getPathComponentsRelativeTo=k,e.getRelativePathFromDirectory=N,e.convertToRelativePath=function(e,n,t){return r(e)?I(n,e,n,t,!1):e},e.getRelativePathFromFile=function(e,n,t){return C(N(d(e),n,t))},e.getRelativePathToDirectoryOrUrl=I,e.forEachAncestorDirectory=function(e,n){for(;;){var t=n(e);if(void 0!==t)return t;var r=d(e);if(r===e)return;e=r}}}(ts||(ts={})),function(e){function n(e,n,t,r,a,i){return{code:e,category:n,key:t,message:r,reportsUnnecessary:a,elidedInCompatabilityPyramid:i}}e.Diagnostics={Unterminated_string_literal:n(1002,e.DiagnosticCategory.Error,\"Unterminated_string_literal_1002\",\"Unterminated string literal.\"),Identifier_expected:n(1003,e.DiagnosticCategory.Error,\"Identifier_expected_1003\",\"Identifier expected.\"),_0_expected:n(1005,e.DiagnosticCategory.Error,\"_0_expected_1005\",\"'{0}' expected.\"),A_file_cannot_have_a_reference_to_itself:n(1006,e.DiagnosticCategory.Error,\"A_file_cannot_have_a_reference_to_itself_1006\",\"A file cannot have a reference to itself.\"),Trailing_comma_not_allowed:n(1009,e.DiagnosticCategory.Error,\"Trailing_comma_not_allowed_1009\",\"Trailing comma not allowed.\"),Asterisk_Slash_expected:n(1010,e.DiagnosticCategory.Error,\"Asterisk_Slash_expected_1010\",\"'*/' expected.\"),An_element_access_expression_should_take_an_argument:n(1011,e.DiagnosticCategory.Error,\"An_element_access_expression_should_take_an_argument_1011\",\"An element access expression should take an argument.\"),Unexpected_token:n(1012,e.DiagnosticCategory.Error,\"Unexpected_token_1012\",\"Unexpected token.\"),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:n(1013,e.DiagnosticCategory.Error,\"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\",\"A rest parameter or binding pattern may not have a trailing comma.\"),A_rest_parameter_must_be_last_in_a_parameter_list:n(1014,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_last_in_a_parameter_list_1014\",\"A rest parameter must be last in a parameter list.\"),Parameter_cannot_have_question_mark_and_initializer:n(1015,e.DiagnosticCategory.Error,\"Parameter_cannot_have_question_mark_and_initializer_1015\",\"Parameter cannot have question mark and initializer.\"),A_required_parameter_cannot_follow_an_optional_parameter:n(1016,e.DiagnosticCategory.Error,\"A_required_parameter_cannot_follow_an_optional_parameter_1016\",\"A required parameter cannot follow an optional parameter.\"),An_index_signature_cannot_have_a_rest_parameter:n(1017,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_rest_parameter_1017\",\"An index signature cannot have a rest parameter.\"),An_index_signature_parameter_cannot_have_an_accessibility_modifier:n(1018,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\",\"An index signature parameter cannot have an accessibility modifier.\"),An_index_signature_parameter_cannot_have_a_question_mark:n(1019,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_a_question_mark_1019\",\"An index signature parameter cannot have a question mark.\"),An_index_signature_parameter_cannot_have_an_initializer:n(1020,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_initializer_1020\",\"An index signature parameter cannot have an initializer.\"),An_index_signature_must_have_a_type_annotation:n(1021,e.DiagnosticCategory.Error,\"An_index_signature_must_have_a_type_annotation_1021\",\"An index signature must have a type annotation.\"),An_index_signature_parameter_must_have_a_type_annotation:n(1022,e.DiagnosticCategory.Error,\"An_index_signature_parameter_must_have_a_type_annotation_1022\",\"An index signature parameter must have a type annotation.\"),An_index_signature_parameter_type_must_be_either_string_or_number:n(1023,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_must_be_either_string_or_number_1023\",\"An index signature parameter type must be either 'string' or 'number'.\"),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:n(1024,e.DiagnosticCategory.Error,\"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\",\"'readonly' modifier can only appear on a property declaration or index signature.\"),Accessibility_modifier_already_seen:n(1028,e.DiagnosticCategory.Error,\"Accessibility_modifier_already_seen_1028\",\"Accessibility modifier already seen.\"),_0_modifier_must_precede_1_modifier:n(1029,e.DiagnosticCategory.Error,\"_0_modifier_must_precede_1_modifier_1029\",\"'{0}' modifier must precede '{1}' modifier.\"),_0_modifier_already_seen:n(1030,e.DiagnosticCategory.Error,\"_0_modifier_already_seen_1030\",\"'{0}' modifier already seen.\"),_0_modifier_cannot_appear_on_a_class_element:n(1031,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_class_element_1031\",\"'{0}' modifier cannot appear on a class element.\"),super_must_be_followed_by_an_argument_list_or_member_access:n(1034,e.DiagnosticCategory.Error,\"super_must_be_followed_by_an_argument_list_or_member_access_1034\",\"'super' must be followed by an argument list or member access.\"),Only_ambient_modules_can_use_quoted_names:n(1035,e.DiagnosticCategory.Error,\"Only_ambient_modules_can_use_quoted_names_1035\",\"Only ambient modules can use quoted names.\"),Statements_are_not_allowed_in_ambient_contexts:n(1036,e.DiagnosticCategory.Error,\"Statements_are_not_allowed_in_ambient_contexts_1036\",\"Statements are not allowed in ambient contexts.\"),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:n(1038,e.DiagnosticCategory.Error,\"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\",\"A 'declare' modifier cannot be used in an already ambient context.\"),Initializers_are_not_allowed_in_ambient_contexts:n(1039,e.DiagnosticCategory.Error,\"Initializers_are_not_allowed_in_ambient_contexts_1039\",\"Initializers are not allowed in ambient contexts.\"),_0_modifier_cannot_be_used_in_an_ambient_context:n(1040,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_in_an_ambient_context_1040\",\"'{0}' modifier cannot be used in an ambient context.\"),_0_modifier_cannot_be_used_with_a_class_declaration:n(1041,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_a_class_declaration_1041\",\"'{0}' modifier cannot be used with a class declaration.\"),_0_modifier_cannot_be_used_here:n(1042,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_here_1042\",\"'{0}' modifier cannot be used here.\"),_0_modifier_cannot_appear_on_a_data_property:n(1043,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_data_property_1043\",\"'{0}' modifier cannot appear on a data property.\"),_0_modifier_cannot_appear_on_a_module_or_namespace_element:n(1044,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\",\"'{0}' modifier cannot appear on a module or namespace element.\"),A_0_modifier_cannot_be_used_with_an_interface_declaration:n(1045,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_interface_declaration_1045\",\"A '{0}' modifier cannot be used with an interface declaration.\"),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:n(1046,e.DiagnosticCategory.Error,\"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\",\"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),A_rest_parameter_cannot_be_optional:n(1047,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_be_optional_1047\",\"A rest parameter cannot be optional.\"),A_rest_parameter_cannot_have_an_initializer:n(1048,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_have_an_initializer_1048\",\"A rest parameter cannot have an initializer.\"),A_set_accessor_must_have_exactly_one_parameter:n(1049,e.DiagnosticCategory.Error,\"A_set_accessor_must_have_exactly_one_parameter_1049\",\"A 'set' accessor must have exactly one parameter.\"),A_set_accessor_cannot_have_an_optional_parameter:n(1051,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_an_optional_parameter_1051\",\"A 'set' accessor cannot have an optional parameter.\"),A_set_accessor_parameter_cannot_have_an_initializer:n(1052,e.DiagnosticCategory.Error,\"A_set_accessor_parameter_cannot_have_an_initializer_1052\",\"A 'set' accessor parameter cannot have an initializer.\"),A_set_accessor_cannot_have_rest_parameter:n(1053,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_rest_parameter_1053\",\"A 'set' accessor cannot have rest parameter.\"),A_get_accessor_cannot_have_parameters:n(1054,e.DiagnosticCategory.Error,\"A_get_accessor_cannot_have_parameters_1054\",\"A 'get' accessor cannot have parameters.\"),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:n(1055,e.DiagnosticCategory.Error,\"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055\",\"Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.\"),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:n(1056,e.DiagnosticCategory.Error,\"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\",\"Accessors are only available when targeting ECMAScript 5 and higher.\"),An_async_function_or_method_must_have_a_valid_awaitable_return_type:n(1057,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_have_a_valid_awaitable_return_type_1057\",\"An async function or method must have a valid awaitable return type.\"),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1058,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\",\"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),A_promise_must_have_a_then_method:n(1059,e.DiagnosticCategory.Error,\"A_promise_must_have_a_then_method_1059\",\"A promise must have a 'then' method.\"),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:n(1060,e.DiagnosticCategory.Error,\"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\",\"The first parameter of the 'then' method of a promise must be a callback.\"),Enum_member_must_have_initializer:n(1061,e.DiagnosticCategory.Error,\"Enum_member_must_have_initializer_1061\",\"Enum member must have initializer.\"),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:n(1062,e.DiagnosticCategory.Error,\"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\",\"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),An_export_assignment_cannot_be_used_in_a_namespace:n(1063,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_namespace_1063\",\"An export assignment cannot be used in a namespace.\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:n(1064,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1064\",\"The return type of an async function or method must be the global Promise<T> type.\"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:n(1066,e.DiagnosticCategory.Error,\"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\",\"In ambient enum declarations member initializer must be constant expression.\"),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:n(1068,e.DiagnosticCategory.Error,\"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\",\"Unexpected token. A constructor, method, accessor, or property was expected.\"),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:n(1069,e.DiagnosticCategory.Error,\"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\",\"Unexpected token. A type parameter name was expected without curly braces.\"),_0_modifier_cannot_appear_on_a_type_member:n(1070,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_member_1070\",\"'{0}' modifier cannot appear on a type member.\"),_0_modifier_cannot_appear_on_an_index_signature:n(1071,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_an_index_signature_1071\",\"'{0}' modifier cannot appear on an index signature.\"),A_0_modifier_cannot_be_used_with_an_import_declaration:n(1079,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\",\"A '{0}' modifier cannot be used with an import declaration.\"),Invalid_reference_directive_syntax:n(1084,e.DiagnosticCategory.Error,\"Invalid_reference_directive_syntax_1084\",\"Invalid 'reference' directive syntax.\"),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:n(1085,e.DiagnosticCategory.Error,\"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085\",\"Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'.\"),_0_modifier_cannot_appear_on_a_constructor_declaration:n(1089,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\",\"'{0}' modifier cannot appear on a constructor declaration.\"),_0_modifier_cannot_appear_on_a_parameter:n(1090,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_parameter_1090\",\"'{0}' modifier cannot appear on a parameter.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:n(1091,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\",\"Only a single variable declaration is allowed in a 'for...in' statement.\"),Type_parameters_cannot_appear_on_a_constructor_declaration:n(1092,e.DiagnosticCategory.Error,\"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\",\"Type parameters cannot appear on a constructor declaration.\"),Type_annotation_cannot_appear_on_a_constructor_declaration:n(1093,e.DiagnosticCategory.Error,\"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\",\"Type annotation cannot appear on a constructor declaration.\"),An_accessor_cannot_have_type_parameters:n(1094,e.DiagnosticCategory.Error,\"An_accessor_cannot_have_type_parameters_1094\",\"An accessor cannot have type parameters.\"),A_set_accessor_cannot_have_a_return_type_annotation:n(1095,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_a_return_type_annotation_1095\",\"A 'set' accessor cannot have a return type annotation.\"),An_index_signature_must_have_exactly_one_parameter:n(1096,e.DiagnosticCategory.Error,\"An_index_signature_must_have_exactly_one_parameter_1096\",\"An index signature must have exactly one parameter.\"),_0_list_cannot_be_empty:n(1097,e.DiagnosticCategory.Error,\"_0_list_cannot_be_empty_1097\",\"'{0}' list cannot be empty.\"),Type_parameter_list_cannot_be_empty:n(1098,e.DiagnosticCategory.Error,\"Type_parameter_list_cannot_be_empty_1098\",\"Type parameter list cannot be empty.\"),Type_argument_list_cannot_be_empty:n(1099,e.DiagnosticCategory.Error,\"Type_argument_list_cannot_be_empty_1099\",\"Type argument list cannot be empty.\"),Invalid_use_of_0_in_strict_mode:n(1100,e.DiagnosticCategory.Error,\"Invalid_use_of_0_in_strict_mode_1100\",\"Invalid use of '{0}' in strict mode.\"),with_statements_are_not_allowed_in_strict_mode:n(1101,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_strict_mode_1101\",\"'with' statements are not allowed in strict mode.\"),delete_cannot_be_called_on_an_identifier_in_strict_mode:n(1102,e.DiagnosticCategory.Error,\"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\",\"'delete' cannot be called on an identifier in strict mode.\"),A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator:n(1103,e.DiagnosticCategory.Error,\"A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator_1103\",\"A 'for-await-of' statement is only allowed within an async function or async generator.\"),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:n(1104,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\",\"A 'continue' statement can only be used within an enclosing iteration statement.\"),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:n(1105,e.DiagnosticCategory.Error,\"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\",\"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),Jump_target_cannot_cross_function_boundary:n(1107,e.DiagnosticCategory.Error,\"Jump_target_cannot_cross_function_boundary_1107\",\"Jump target cannot cross function boundary.\"),A_return_statement_can_only_be_used_within_a_function_body:n(1108,e.DiagnosticCategory.Error,\"A_return_statement_can_only_be_used_within_a_function_body_1108\",\"A 'return' statement can only be used within a function body.\"),Expression_expected:n(1109,e.DiagnosticCategory.Error,\"Expression_expected_1109\",\"Expression expected.\"),Type_expected:n(1110,e.DiagnosticCategory.Error,\"Type_expected_1110\",\"Type expected.\"),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:n(1113,e.DiagnosticCategory.Error,\"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\",\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),Duplicate_label_0:n(1114,e.DiagnosticCategory.Error,\"Duplicate_label_0_1114\",\"Duplicate label '{0}'.\"),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:n(1115,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\",\"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:n(1116,e.DiagnosticCategory.Error,\"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\",\"A 'break' statement can only jump to a label of an enclosing statement.\"),An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode:n(1117,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode_1117\",\"An object literal cannot have multiple properties with the same name in strict mode.\"),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:n(1118,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\",\"An object literal cannot have multiple get/set accessors with the same name.\"),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:n(1119,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\",\"An object literal cannot have property and accessor with the same name.\"),An_export_assignment_cannot_have_modifiers:n(1120,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_have_modifiers_1120\",\"An export assignment cannot have modifiers.\"),Octal_literals_are_not_allowed_in_strict_mode:n(1121,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_strict_mode_1121\",\"Octal literals are not allowed in strict mode.\"),Variable_declaration_list_cannot_be_empty:n(1123,e.DiagnosticCategory.Error,\"Variable_declaration_list_cannot_be_empty_1123\",\"Variable declaration list cannot be empty.\"),Digit_expected:n(1124,e.DiagnosticCategory.Error,\"Digit_expected_1124\",\"Digit expected.\"),Hexadecimal_digit_expected:n(1125,e.DiagnosticCategory.Error,\"Hexadecimal_digit_expected_1125\",\"Hexadecimal digit expected.\"),Unexpected_end_of_text:n(1126,e.DiagnosticCategory.Error,\"Unexpected_end_of_text_1126\",\"Unexpected end of text.\"),Invalid_character:n(1127,e.DiagnosticCategory.Error,\"Invalid_character_1127\",\"Invalid character.\"),Declaration_or_statement_expected:n(1128,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_1128\",\"Declaration or statement expected.\"),Statement_expected:n(1129,e.DiagnosticCategory.Error,\"Statement_expected_1129\",\"Statement expected.\"),case_or_default_expected:n(1130,e.DiagnosticCategory.Error,\"case_or_default_expected_1130\",\"'case' or 'default' expected.\"),Property_or_signature_expected:n(1131,e.DiagnosticCategory.Error,\"Property_or_signature_expected_1131\",\"Property or signature expected.\"),Enum_member_expected:n(1132,e.DiagnosticCategory.Error,\"Enum_member_expected_1132\",\"Enum member expected.\"),Variable_declaration_expected:n(1134,e.DiagnosticCategory.Error,\"Variable_declaration_expected_1134\",\"Variable declaration expected.\"),Argument_expression_expected:n(1135,e.DiagnosticCategory.Error,\"Argument_expression_expected_1135\",\"Argument expression expected.\"),Property_assignment_expected:n(1136,e.DiagnosticCategory.Error,\"Property_assignment_expected_1136\",\"Property assignment expected.\"),Expression_or_comma_expected:n(1137,e.DiagnosticCategory.Error,\"Expression_or_comma_expected_1137\",\"Expression or comma expected.\"),Parameter_declaration_expected:n(1138,e.DiagnosticCategory.Error,\"Parameter_declaration_expected_1138\",\"Parameter declaration expected.\"),Type_parameter_declaration_expected:n(1139,e.DiagnosticCategory.Error,\"Type_parameter_declaration_expected_1139\",\"Type parameter declaration expected.\"),Type_argument_expected:n(1140,e.DiagnosticCategory.Error,\"Type_argument_expected_1140\",\"Type argument expected.\"),String_literal_expected:n(1141,e.DiagnosticCategory.Error,\"String_literal_expected_1141\",\"String literal expected.\"),Line_break_not_permitted_here:n(1142,e.DiagnosticCategory.Error,\"Line_break_not_permitted_here_1142\",\"Line break not permitted here.\"),or_expected:n(1144,e.DiagnosticCategory.Error,\"or_expected_1144\",\"'{' or ';' expected.\"),Declaration_expected:n(1146,e.DiagnosticCategory.Error,\"Declaration_expected_1146\",\"Declaration expected.\"),Import_declarations_in_a_namespace_cannot_reference_a_module:n(1147,e.DiagnosticCategory.Error,\"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\",\"Import declarations in a namespace cannot reference a module.\"),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:n(1148,e.DiagnosticCategory.Error,\"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\",\"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),File_name_0_differs_from_already_included_file_name_1_only_in_casing:n(1149,e.DiagnosticCategory.Error,\"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\",\"File name '{0}' differs from already included file name '{1}' only in casing.\"),const_declarations_must_be_initialized:n(1155,e.DiagnosticCategory.Error,\"const_declarations_must_be_initialized_1155\",\"'const' declarations must be initialized.\"),const_declarations_can_only_be_declared_inside_a_block:n(1156,e.DiagnosticCategory.Error,\"const_declarations_can_only_be_declared_inside_a_block_1156\",\"'const' declarations can only be declared inside a block.\"),let_declarations_can_only_be_declared_inside_a_block:n(1157,e.DiagnosticCategory.Error,\"let_declarations_can_only_be_declared_inside_a_block_1157\",\"'let' declarations can only be declared inside a block.\"),Unterminated_template_literal:n(1160,e.DiagnosticCategory.Error,\"Unterminated_template_literal_1160\",\"Unterminated template literal.\"),Unterminated_regular_expression_literal:n(1161,e.DiagnosticCategory.Error,\"Unterminated_regular_expression_literal_1161\",\"Unterminated regular expression literal.\"),An_object_member_cannot_be_declared_optional:n(1162,e.DiagnosticCategory.Error,\"An_object_member_cannot_be_declared_optional_1162\",\"An object member cannot be declared optional.\"),A_yield_expression_is_only_allowed_in_a_generator_body:n(1163,e.DiagnosticCategory.Error,\"A_yield_expression_is_only_allowed_in_a_generator_body_1163\",\"A 'yield' expression is only allowed in a generator body.\"),Computed_property_names_are_not_allowed_in_enums:n(1164,e.DiagnosticCategory.Error,\"Computed_property_names_are_not_allowed_in_enums_1164\",\"Computed property names are not allowed in enums.\"),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1165,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\",\"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1166,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_1166\",\"A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1168,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\",\"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1169,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\",\"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:n(1170,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\",\"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_comma_expression_is_not_allowed_in_a_computed_property_name:n(1171,e.DiagnosticCategory.Error,\"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\",\"A comma expression is not allowed in a computed property name.\"),extends_clause_already_seen:n(1172,e.DiagnosticCategory.Error,\"extends_clause_already_seen_1172\",\"'extends' clause already seen.\"),extends_clause_must_precede_implements_clause:n(1173,e.DiagnosticCategory.Error,\"extends_clause_must_precede_implements_clause_1173\",\"'extends' clause must precede 'implements' clause.\"),Classes_can_only_extend_a_single_class:n(1174,e.DiagnosticCategory.Error,\"Classes_can_only_extend_a_single_class_1174\",\"Classes can only extend a single class.\"),implements_clause_already_seen:n(1175,e.DiagnosticCategory.Error,\"implements_clause_already_seen_1175\",\"'implements' clause already seen.\"),Interface_declaration_cannot_have_implements_clause:n(1176,e.DiagnosticCategory.Error,\"Interface_declaration_cannot_have_implements_clause_1176\",\"Interface declaration cannot have 'implements' clause.\"),Binary_digit_expected:n(1177,e.DiagnosticCategory.Error,\"Binary_digit_expected_1177\",\"Binary digit expected.\"),Octal_digit_expected:n(1178,e.DiagnosticCategory.Error,\"Octal_digit_expected_1178\",\"Octal digit expected.\"),Unexpected_token_expected:n(1179,e.DiagnosticCategory.Error,\"Unexpected_token_expected_1179\",\"Unexpected token. '{' expected.\"),Property_destructuring_pattern_expected:n(1180,e.DiagnosticCategory.Error,\"Property_destructuring_pattern_expected_1180\",\"Property destructuring pattern expected.\"),Array_element_destructuring_pattern_expected:n(1181,e.DiagnosticCategory.Error,\"Array_element_destructuring_pattern_expected_1181\",\"Array element destructuring pattern expected.\"),A_destructuring_declaration_must_have_an_initializer:n(1182,e.DiagnosticCategory.Error,\"A_destructuring_declaration_must_have_an_initializer_1182\",\"A destructuring declaration must have an initializer.\"),An_implementation_cannot_be_declared_in_ambient_contexts:n(1183,e.DiagnosticCategory.Error,\"An_implementation_cannot_be_declared_in_ambient_contexts_1183\",\"An implementation cannot be declared in ambient contexts.\"),Modifiers_cannot_appear_here:n(1184,e.DiagnosticCategory.Error,\"Modifiers_cannot_appear_here_1184\",\"Modifiers cannot appear here.\"),Merge_conflict_marker_encountered:n(1185,e.DiagnosticCategory.Error,\"Merge_conflict_marker_encountered_1185\",\"Merge conflict marker encountered.\"),A_rest_element_cannot_have_an_initializer:n(1186,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_an_initializer_1186\",\"A rest element cannot have an initializer.\"),A_parameter_property_may_not_be_declared_using_a_binding_pattern:n(1187,e.DiagnosticCategory.Error,\"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\",\"A parameter property may not be declared using a binding pattern.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:n(1188,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\",\"Only a single variable declaration is allowed in a 'for...of' statement.\"),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:n(1189,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\",\"The variable declaration of a 'for...in' statement cannot have an initializer.\"),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:n(1190,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\",\"The variable declaration of a 'for...of' statement cannot have an initializer.\"),An_import_declaration_cannot_have_modifiers:n(1191,e.DiagnosticCategory.Error,\"An_import_declaration_cannot_have_modifiers_1191\",\"An import declaration cannot have modifiers.\"),Module_0_has_no_default_export:n(1192,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_1192\",\"Module '{0}' has no default export.\"),An_export_declaration_cannot_have_modifiers:n(1193,e.DiagnosticCategory.Error,\"An_export_declaration_cannot_have_modifiers_1193\",\"An export declaration cannot have modifiers.\"),Export_declarations_are_not_permitted_in_a_namespace:n(1194,e.DiagnosticCategory.Error,\"Export_declarations_are_not_permitted_in_a_namespace_1194\",\"Export declarations are not permitted in a namespace.\"),Catch_clause_variable_cannot_have_a_type_annotation:n(1196,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_a_type_annotation_1196\",\"Catch clause variable cannot have a type annotation.\"),Catch_clause_variable_cannot_have_an_initializer:n(1197,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_an_initializer_1197\",\"Catch clause variable cannot have an initializer.\"),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:n(1198,e.DiagnosticCategory.Error,\"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\",\"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),Unterminated_Unicode_escape_sequence:n(1199,e.DiagnosticCategory.Error,\"Unterminated_Unicode_escape_sequence_1199\",\"Unterminated Unicode escape sequence.\"),Line_terminator_not_permitted_before_arrow:n(1200,e.DiagnosticCategory.Error,\"Line_terminator_not_permitted_before_arrow_1200\",\"Line terminator not permitted before arrow.\"),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:n(1202,e.DiagnosticCategory.Error,\"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\",\"Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \\\"mod\\\"', 'import {a} from \\\"mod\\\"', 'import d from \\\"mod\\\"', or another module format instead.\"),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:n(1203,e.DiagnosticCategory.Error,\"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\",\"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided:n(1205,e.DiagnosticCategory.Error,\"Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided_1205\",\"Cannot re-export a type when the '--isolatedModules' flag is provided.\"),Decorators_are_not_valid_here:n(1206,e.DiagnosticCategory.Error,\"Decorators_are_not_valid_here_1206\",\"Decorators are not valid here.\"),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:n(1207,e.DiagnosticCategory.Error,\"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\",\"Decorators cannot be applied to multiple get/set accessors of the same name.\"),All_files_must_be_modules_when_the_isolatedModules_flag_is_provided:n(1208,e.DiagnosticCategory.Error,\"All_files_must_be_modules_when_the_isolatedModules_flag_is_provided_1208\",\"All files must be modules when the '--isolatedModules' flag is provided.\"),Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode:n(1210,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode_1210\",\"Invalid use of '{0}'. Class definitions are automatically in strict mode.\"),A_class_declaration_without_the_default_modifier_must_have_a_name:n(1211,e.DiagnosticCategory.Error,\"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\",\"A class declaration without the 'default' modifier must have a name.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode:n(1212,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\",\"Identifier expected. '{0}' is a reserved word in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:n(1213,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\",\"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:n(1214,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\",\"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:n(1215,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\",\"Invalid use of '{0}'. Modules are automatically in strict mode.\"),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:n(1216,e.DiagnosticCategory.Error,\"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\",\"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),Export_assignment_is_not_supported_when_module_flag_is_system:n(1218,e.DiagnosticCategory.Error,\"Export_assignment_is_not_supported_when_module_flag_is_system_1218\",\"Export assignment is not supported when '--module' flag is 'system'.\"),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:n(1219,e.DiagnosticCategory.Error,\"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219\",\"Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\"),Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher:n(1220,e.DiagnosticCategory.Error,\"Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher_1220\",\"Generators are only available when targeting ECMAScript 2015 or higher.\"),Generators_are_not_allowed_in_an_ambient_context:n(1221,e.DiagnosticCategory.Error,\"Generators_are_not_allowed_in_an_ambient_context_1221\",\"Generators are not allowed in an ambient context.\"),An_overload_signature_cannot_be_declared_as_a_generator:n(1222,e.DiagnosticCategory.Error,\"An_overload_signature_cannot_be_declared_as_a_generator_1222\",\"An overload signature cannot be declared as a generator.\"),_0_tag_already_specified:n(1223,e.DiagnosticCategory.Error,\"_0_tag_already_specified_1223\",\"'{0}' tag already specified.\"),Signature_0_must_be_a_type_predicate:n(1224,e.DiagnosticCategory.Error,\"Signature_0_must_be_a_type_predicate_1224\",\"Signature '{0}' must be a type predicate.\"),Cannot_find_parameter_0:n(1225,e.DiagnosticCategory.Error,\"Cannot_find_parameter_0_1225\",\"Cannot find parameter '{0}'.\"),Type_predicate_0_is_not_assignable_to_1:n(1226,e.DiagnosticCategory.Error,\"Type_predicate_0_is_not_assignable_to_1_1226\",\"Type predicate '{0}' is not assignable to '{1}'.\"),Parameter_0_is_not_in_the_same_position_as_parameter_1:n(1227,e.DiagnosticCategory.Error,\"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\",\"Parameter '{0}' is not in the same position as parameter '{1}'.\"),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:n(1228,e.DiagnosticCategory.Error,\"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\",\"A type predicate is only allowed in return type position for functions and methods.\"),A_type_predicate_cannot_reference_a_rest_parameter:n(1229,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_a_rest_parameter_1229\",\"A type predicate cannot reference a rest parameter.\"),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:n(1230,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\",\"A type predicate cannot reference element '{0}' in a binding pattern.\"),An_export_assignment_can_only_be_used_in_a_module:n(1231,e.DiagnosticCategory.Error,\"An_export_assignment_can_only_be_used_in_a_module_1231\",\"An export assignment can only be used in a module.\"),An_import_declaration_can_only_be_used_in_a_namespace_or_module:n(1232,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_in_a_namespace_or_module_1232\",\"An import declaration can only be used in a namespace or module.\"),An_export_declaration_can_only_be_used_in_a_module:n(1233,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_in_a_module_1233\",\"An export declaration can only be used in a module.\"),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:n(1234,e.DiagnosticCategory.Error,\"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\",\"An ambient module declaration is only allowed at the top level in a file.\"),A_namespace_declaration_is_only_allowed_in_a_namespace_or_module:n(1235,e.DiagnosticCategory.Error,\"A_namespace_declaration_is_only_allowed_in_a_namespace_or_module_1235\",\"A namespace declaration is only allowed in a namespace or module.\"),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:n(1236,e.DiagnosticCategory.Error,\"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\",\"The return type of a property decorator function must be either 'void' or 'any'.\"),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:n(1237,e.DiagnosticCategory.Error,\"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\",\"The return type of a parameter decorator function must be either 'void' or 'any'.\"),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:n(1238,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\",\"Unable to resolve signature of class decorator when called as an expression.\"),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:n(1239,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\",\"Unable to resolve signature of parameter decorator when called as an expression.\"),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:n(1240,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\",\"Unable to resolve signature of property decorator when called as an expression.\"),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:n(1241,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\",\"Unable to resolve signature of method decorator when called as an expression.\"),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:n(1242,e.DiagnosticCategory.Error,\"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\",\"'abstract' modifier can only appear on a class, method, or property declaration.\"),_0_modifier_cannot_be_used_with_1_modifier:n(1243,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_1_modifier_1243\",\"'{0}' modifier cannot be used with '{1}' modifier.\"),Abstract_methods_can_only_appear_within_an_abstract_class:n(1244,e.DiagnosticCategory.Error,\"Abstract_methods_can_only_appear_within_an_abstract_class_1244\",\"Abstract methods can only appear within an abstract class.\"),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:n(1245,e.DiagnosticCategory.Error,\"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\",\"Method '{0}' cannot have an implementation because it is marked abstract.\"),An_interface_property_cannot_have_an_initializer:n(1246,e.DiagnosticCategory.Error,\"An_interface_property_cannot_have_an_initializer_1246\",\"An interface property cannot have an initializer.\"),A_type_literal_property_cannot_have_an_initializer:n(1247,e.DiagnosticCategory.Error,\"A_type_literal_property_cannot_have_an_initializer_1247\",\"A type literal property cannot have an initializer.\"),A_class_member_cannot_have_the_0_keyword:n(1248,e.DiagnosticCategory.Error,\"A_class_member_cannot_have_the_0_keyword_1248\",\"A class member cannot have the '{0}' keyword.\"),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:n(1249,e.DiagnosticCategory.Error,\"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\",\"A decorator can only decorate a method implementation, not an overload.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:n(1250,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:n(1251,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:n(1252,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode.\"),_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag:n(1253,e.DiagnosticCategory.Error,\"_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag_1253\",\"'{0}' tag cannot be used independently as a top level JSDoc tag.\"),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:n(1254,e.DiagnosticCategory.Error,\"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\",\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),A_definite_assignment_assertion_is_not_permitted_in_this_context:n(1255,e.DiagnosticCategory.Error,\"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\",\"A definite assignment assertion '!' is not permitted in this context.\"),A_rest_element_must_be_last_in_a_tuple_type:n(1256,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_tuple_type_1256\",\"A rest element must be last in a tuple type.\"),A_required_element_cannot_follow_an_optional_element:n(1257,e.DiagnosticCategory.Error,\"A_required_element_cannot_follow_an_optional_element_1257\",\"A required element cannot follow an optional element.\"),Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation:n(1258,e.DiagnosticCategory.Error,\"Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation_1258\",\"Definite assignment assertions can only be used along with a type annotation.\"),Module_0_can_only_be_default_imported_using_the_1_flag:n(1259,e.DiagnosticCategory.Error,\"Module_0_can_only_be_default_imported_using_the_1_flag_1259\",\"Module '{0}' can only be default-imported using the '{1}' flag\"),Keywords_cannot_contain_escape_characters:n(1260,e.DiagnosticCategory.Error,\"Keywords_cannot_contain_escape_characters_1260\",\"Keywords cannot contain escape characters.\"),with_statements_are_not_allowed_in_an_async_function_block:n(1300,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_an_async_function_block_1300\",\"'with' statements are not allowed in an async function block.\"),await_expression_is_only_allowed_within_an_async_function:n(1308,e.DiagnosticCategory.Error,\"await_expression_is_only_allowed_within_an_async_function_1308\",\"'await' expression is only allowed within an async function.\"),can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment:n(1312,e.DiagnosticCategory.Error,\"can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment_1312\",\"'=' can only be used in an object literal property inside a destructuring assignment.\"),The_body_of_an_if_statement_cannot_be_the_empty_statement:n(1313,e.DiagnosticCategory.Error,\"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\",\"The body of an 'if' statement cannot be the empty statement.\"),Global_module_exports_may_only_appear_in_module_files:n(1314,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_module_files_1314\",\"Global module exports may only appear in module files.\"),Global_module_exports_may_only_appear_in_declaration_files:n(1315,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_declaration_files_1315\",\"Global module exports may only appear in declaration files.\"),Global_module_exports_may_only_appear_at_top_level:n(1316,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_at_top_level_1316\",\"Global module exports may only appear at top level.\"),A_parameter_property_cannot_be_declared_using_a_rest_parameter:n(1317,e.DiagnosticCategory.Error,\"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\",\"A parameter property cannot be declared using a rest parameter.\"),An_abstract_accessor_cannot_have_an_implementation:n(1318,e.DiagnosticCategory.Error,\"An_abstract_accessor_cannot_have_an_implementation_1318\",\"An abstract accessor cannot have an implementation.\"),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:n(1319,e.DiagnosticCategory.Error,\"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\",\"A default export can only be used in an ECMAScript-style module.\"),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1320,e.DiagnosticCategory.Error,\"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\",\"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1321,e.DiagnosticCategory.Error,\"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\",\"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:n(1322,e.DiagnosticCategory.Error,\"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\",\"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd:n(1323,e.DiagnosticCategory.Error,\"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd_1323\",\"Dynamic imports are only supported when the '--module' flag is set to 'esnext', 'commonjs',  'amd', 'system', or 'umd'.\"),Dynamic_import_must_have_one_specifier_as_an_argument:n(1324,e.DiagnosticCategory.Error,\"Dynamic_import_must_have_one_specifier_as_an_argument_1324\",\"Dynamic import must have one specifier as an argument.\"),Specifier_of_dynamic_import_cannot_be_spread_element:n(1325,e.DiagnosticCategory.Error,\"Specifier_of_dynamic_import_cannot_be_spread_element_1325\",\"Specifier of dynamic import cannot be spread element.\"),Dynamic_import_cannot_have_type_arguments:n(1326,e.DiagnosticCategory.Error,\"Dynamic_import_cannot_have_type_arguments_1326\",\"Dynamic import cannot have type arguments\"),String_literal_with_double_quotes_expected:n(1327,e.DiagnosticCategory.Error,\"String_literal_with_double_quotes_expected_1327\",\"String literal with double quotes expected.\"),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:n(1328,e.DiagnosticCategory.Error,\"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\",\"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:n(1329,e.DiagnosticCategory.Error,\"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\",\"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:n(1330,e.DiagnosticCategory.Error,\"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\",\"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:n(1331,e.DiagnosticCategory.Error,\"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\",\"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:n(1332,e.DiagnosticCategory.Error,\"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\",\"A variable whose type is a 'unique symbol' type must be 'const'.\"),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:n(1333,e.DiagnosticCategory.Error,\"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\",\"'unique symbol' types may not be used on a variable declaration with a binding name.\"),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:n(1334,e.DiagnosticCategory.Error,\"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\",\"'unique symbol' types are only allowed on variables in a variable statement.\"),unique_symbol_types_are_not_allowed_here:n(1335,e.DiagnosticCategory.Error,\"unique_symbol_types_are_not_allowed_here_1335\",\"'unique symbol' types are not allowed here.\"),An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead:n(1336,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead_1336\",\"An index signature parameter type cannot be a type alias. Consider writing '[{0}: {1}]: {2}' instead.\"),An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead:n(1337,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead_1337\",\"An index signature parameter type cannot be a union type. Consider using a mapped object type instead.\"),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:n(1338,e.DiagnosticCategory.Error,\"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\",\"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:n(1339,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\",\"Module '{0}' does not refer to a value, but is used as a value here.\"),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:n(1340,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\",\"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),Type_arguments_cannot_be_used_here:n(1342,e.DiagnosticCategory.Error,\"Type_arguments_cannot_be_used_here_1342\",\"Type arguments cannot be used here.\"),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system:n(1343,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system_1343\",\"The 'import.meta' meta-property is only allowed when the '--module' option is 'esnext' or 'system'.\"),A_label_is_not_allowed_here:n(1344,e.DiagnosticCategory.Error,\"A_label_is_not_allowed_here_1344\",\"'A label is not allowed here.\"),An_expression_of_type_void_cannot_be_tested_for_truthiness:n(1345,e.DiagnosticCategory.Error,\"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\",\"An expression of type 'void' cannot be tested for truthiness\"),This_parameter_is_not_allowed_with_use_strict_directive:n(1346,e.DiagnosticCategory.Error,\"This_parameter_is_not_allowed_with_use_strict_directive_1346\",\"This parameter is not allowed with 'use strict' directive.\"),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:n(1347,e.DiagnosticCategory.Error,\"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\",\"'use strict' directive cannot be used with non-simple parameter list.\"),Non_simple_parameter_declared_here:n(1348,e.DiagnosticCategory.Error,\"Non_simple_parameter_declared_here_1348\",\"Non-simple parameter declared here.\"),use_strict_directive_used_here:n(1349,e.DiagnosticCategory.Error,\"use_strict_directive_used_here_1349\",\"'use strict' directive used here.\"),Print_the_final_configuration_instead_of_building:n(1350,e.DiagnosticCategory.Message,\"Print_the_final_configuration_instead_of_building_1350\",\"Print the final configuration instead of building.\"),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:n(1351,e.DiagnosticCategory.Error,\"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\",\"An identifier or keyword cannot immediately follow a numeric literal.\"),A_bigint_literal_cannot_use_exponential_notation:n(1352,e.DiagnosticCategory.Error,\"A_bigint_literal_cannot_use_exponential_notation_1352\",\"A bigint literal cannot use exponential notation.\"),A_bigint_literal_must_be_an_integer:n(1353,e.DiagnosticCategory.Error,\"A_bigint_literal_must_be_an_integer_1353\",\"A bigint literal must be an integer.\"),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:n(1354,e.DiagnosticCategory.Error,\"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\",\"'readonly' type modifier is only permitted on array and tuple literal types.\"),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:n(1355,e.DiagnosticCategory.Error,\"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\",\"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),Did_you_mean_to_mark_this_function_as_async:n(1356,e.DiagnosticCategory.Error,\"Did_you_mean_to_mark_this_function_as_async_1356\",\"Did you mean to mark this function as 'async'?\"),An_enum_member_name_must_be_followed_by_a_or:n(1357,e.DiagnosticCategory.Error,\"An_enum_member_name_must_be_followed_by_a_or_1357\",\"An enum member name must be followed by a ',', '=', or '}'.\"),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:n(1358,e.DiagnosticCategory.Error,\"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\",\"Tagged template expressions are not permitted in an optional chain.\"),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:n(1359,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\",\"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),The_types_of_0_are_incompatible_between_these_types:n(2200,e.DiagnosticCategory.Error,\"The_types_of_0_are_incompatible_between_these_types_2200\",\"The types of '{0}' are incompatible between these types.\"),The_types_returned_by_0_are_incompatible_between_these_types:n(2201,e.DiagnosticCategory.Error,\"The_types_returned_by_0_are_incompatible_between_these_types_2201\",\"The types returned by '{0}' are incompatible between these types.\"),Call_signature_return_types_0_and_1_are_incompatible:n(2202,e.DiagnosticCategory.Error,\"Call_signature_return_types_0_and_1_are_incompatible_2202\",\"Call signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:n(2203,e.DiagnosticCategory.Error,\"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\"Construct signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:n(2204,e.DiagnosticCategory.Error,\"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:n(2205,e.DiagnosticCategory.Error,\"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Duplicate_identifier_0:n(2300,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_2300\",\"Duplicate identifier '{0}'.\"),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:n(2301,e.DiagnosticCategory.Error,\"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\",\"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),Static_members_cannot_reference_class_type_parameters:n(2302,e.DiagnosticCategory.Error,\"Static_members_cannot_reference_class_type_parameters_2302\",\"Static members cannot reference class type parameters.\"),Circular_definition_of_import_alias_0:n(2303,e.DiagnosticCategory.Error,\"Circular_definition_of_import_alias_0_2303\",\"Circular definition of import alias '{0}'.\"),Cannot_find_name_0:n(2304,e.DiagnosticCategory.Error,\"Cannot_find_name_0_2304\",\"Cannot find name '{0}'.\"),Module_0_has_no_exported_member_1:n(2305,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_2305\",\"Module '{0}' has no exported member '{1}'.\"),File_0_is_not_a_module:n(2306,e.DiagnosticCategory.Error,\"File_0_is_not_a_module_2306\",\"File '{0}' is not a module.\"),Cannot_find_module_0:n(2307,e.DiagnosticCategory.Error,\"Cannot_find_module_0_2307\",\"Cannot find module '{0}'.\"),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:n(2308,e.DiagnosticCategory.Error,\"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\",\"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:n(2309,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\",\"An export assignment cannot be used in a module with other exported elements.\"),Type_0_recursively_references_itself_as_a_base_type:n(2310,e.DiagnosticCategory.Error,\"Type_0_recursively_references_itself_as_a_base_type_2310\",\"Type '{0}' recursively references itself as a base type.\"),A_class_may_only_extend_another_class:n(2311,e.DiagnosticCategory.Error,\"A_class_may_only_extend_another_class_2311\",\"A class may only extend another class.\"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2312,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\",\"An interface can only extend an object type or intersection of object types with statically known members.\"),Type_parameter_0_has_a_circular_constraint:n(2313,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_constraint_2313\",\"Type parameter '{0}' has a circular constraint.\"),Generic_type_0_requires_1_type_argument_s:n(2314,e.DiagnosticCategory.Error,\"Generic_type_0_requires_1_type_argument_s_2314\",\"Generic type '{0}' requires {1} type argument(s).\"),Type_0_is_not_generic:n(2315,e.DiagnosticCategory.Error,\"Type_0_is_not_generic_2315\",\"Type '{0}' is not generic.\"),Global_type_0_must_be_a_class_or_interface_type:n(2316,e.DiagnosticCategory.Error,\"Global_type_0_must_be_a_class_or_interface_type_2316\",\"Global type '{0}' must be a class or interface type.\"),Global_type_0_must_have_1_type_parameter_s:n(2317,e.DiagnosticCategory.Error,\"Global_type_0_must_have_1_type_parameter_s_2317\",\"Global type '{0}' must have {1} type parameter(s).\"),Cannot_find_global_type_0:n(2318,e.DiagnosticCategory.Error,\"Cannot_find_global_type_0_2318\",\"Cannot find global type '{0}'.\"),Named_property_0_of_types_1_and_2_are_not_identical:n(2319,e.DiagnosticCategory.Error,\"Named_property_0_of_types_1_and_2_are_not_identical_2319\",\"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),Interface_0_cannot_simultaneously_extend_types_1_and_2:n(2320,e.DiagnosticCategory.Error,\"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\",\"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),Excessive_stack_depth_comparing_types_0_and_1:n(2321,e.DiagnosticCategory.Error,\"Excessive_stack_depth_comparing_types_0_and_1_2321\",\"Excessive stack depth comparing types '{0}' and '{1}'.\"),Type_0_is_not_assignable_to_type_1:n(2322,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_2322\",\"Type '{0}' is not assignable to type '{1}'.\"),Cannot_redeclare_exported_variable_0:n(2323,e.DiagnosticCategory.Error,\"Cannot_redeclare_exported_variable_0_2323\",\"Cannot redeclare exported variable '{0}'.\"),Property_0_is_missing_in_type_1:n(2324,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_2324\",\"Property '{0}' is missing in type '{1}'.\"),Property_0_is_private_in_type_1_but_not_in_type_2:n(2325,e.DiagnosticCategory.Error,\"Property_0_is_private_in_type_1_but_not_in_type_2_2325\",\"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),Types_of_property_0_are_incompatible:n(2326,e.DiagnosticCategory.Error,\"Types_of_property_0_are_incompatible_2326\",\"Types of property '{0}' are incompatible.\"),Property_0_is_optional_in_type_1_but_required_in_type_2:n(2327,e.DiagnosticCategory.Error,\"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\",\"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),Types_of_parameters_0_and_1_are_incompatible:n(2328,e.DiagnosticCategory.Error,\"Types_of_parameters_0_and_1_are_incompatible_2328\",\"Types of parameters '{0}' and '{1}' are incompatible.\"),Index_signature_is_missing_in_type_0:n(2329,e.DiagnosticCategory.Error,\"Index_signature_is_missing_in_type_0_2329\",\"Index signature is missing in type '{0}'.\"),Index_signatures_are_incompatible:n(2330,e.DiagnosticCategory.Error,\"Index_signatures_are_incompatible_2330\",\"Index signatures are incompatible.\"),this_cannot_be_referenced_in_a_module_or_namespace_body:n(2331,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\",\"'this' cannot be referenced in a module or namespace body.\"),this_cannot_be_referenced_in_current_location:n(2332,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_current_location_2332\",\"'this' cannot be referenced in current location.\"),this_cannot_be_referenced_in_constructor_arguments:n(2333,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_constructor_arguments_2333\",\"'this' cannot be referenced in constructor arguments.\"),this_cannot_be_referenced_in_a_static_property_initializer:n(2334,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_static_property_initializer_2334\",\"'this' cannot be referenced in a static property initializer.\"),super_can_only_be_referenced_in_a_derived_class:n(2335,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_a_derived_class_2335\",\"'super' can only be referenced in a derived class.\"),super_cannot_be_referenced_in_constructor_arguments:n(2336,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_constructor_arguments_2336\",\"'super' cannot be referenced in constructor arguments.\"),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:n(2337,e.DiagnosticCategory.Error,\"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\",\"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:n(2338,e.DiagnosticCategory.Error,\"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\",\"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),Property_0_does_not_exist_on_type_1:n(2339,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_2339\",\"Property '{0}' does not exist on type '{1}'.\"),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:n(2340,e.DiagnosticCategory.Error,\"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\",\"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),Property_0_is_private_and_only_accessible_within_class_1:n(2341,e.DiagnosticCategory.Error,\"Property_0_is_private_and_only_accessible_within_class_1_2341\",\"Property '{0}' is private and only accessible within class '{1}'.\"),An_index_expression_argument_must_be_of_type_string_number_symbol_or_any:n(2342,e.DiagnosticCategory.Error,\"An_index_expression_argument_must_be_of_type_string_number_symbol_or_any_2342\",\"An index expression argument must be of type 'string', 'number', 'symbol', or 'any'.\"),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:n(2343,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\",\"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),Type_0_does_not_satisfy_the_constraint_1:n(2344,e.DiagnosticCategory.Error,\"Type_0_does_not_satisfy_the_constraint_1_2344\",\"Type '{0}' does not satisfy the constraint '{1}'.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:n(2345,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\",\"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),Call_target_does_not_contain_any_signatures:n(2346,e.DiagnosticCategory.Error,\"Call_target_does_not_contain_any_signatures_2346\",\"Call target does not contain any signatures.\"),Untyped_function_calls_may_not_accept_type_arguments:n(2347,e.DiagnosticCategory.Error,\"Untyped_function_calls_may_not_accept_type_arguments_2347\",\"Untyped function calls may not accept type arguments.\"),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:n(2348,e.DiagnosticCategory.Error,\"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\",\"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),This_expression_is_not_callable:n(2349,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_2349\",\"This expression is not callable.\"),Only_a_void_function_can_be_called_with_the_new_keyword:n(2350,e.DiagnosticCategory.Error,\"Only_a_void_function_can_be_called_with_the_new_keyword_2350\",\"Only a void function can be called with the 'new' keyword.\"),This_expression_is_not_constructable:n(2351,e.DiagnosticCategory.Error,\"This_expression_is_not_constructable_2351\",\"This expression is not constructable.\"),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:n(2352,e.DiagnosticCategory.Error,\"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\",\"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:n(2353,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\",\"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:n(2354,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\",\"This syntax requires an imported helper but module '{0}' cannot be found.\"),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:n(2355,e.DiagnosticCategory.Error,\"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355\",\"A function whose declared type is neither 'void' nor 'any' must return a value.\"),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:n(2356,e.DiagnosticCategory.Error,\"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\",\"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:n(2357,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\",\"The operand of an increment or decrement operator must be a variable or a property access.\"),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:n(2358,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\",\"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:n(2359,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359\",\"The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.\"),The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol:n(2360,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol_2360\",\"The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'.\"),The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:n(2361,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter_2361\",\"The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.\"),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:n(2362,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\",\"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:n(2363,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\",\"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:n(2364,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\",\"The left-hand side of an assignment expression must be a variable or a property access.\"),Operator_0_cannot_be_applied_to_types_1_and_2:n(2365,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_types_1_and_2_2365\",\"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:n(2366,e.DiagnosticCategory.Error,\"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\",\"Function lacks ending return statement and return type does not include 'undefined'.\"),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:n(2367,e.DiagnosticCategory.Error,\"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367\",\"This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap.\"),Type_parameter_name_cannot_be_0:n(2368,e.DiagnosticCategory.Error,\"Type_parameter_name_cannot_be_0_2368\",\"Type parameter name cannot be '{0}'.\"),A_parameter_property_is_only_allowed_in_a_constructor_implementation:n(2369,e.DiagnosticCategory.Error,\"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\",\"A parameter property is only allowed in a constructor implementation.\"),A_rest_parameter_must_be_of_an_array_type:n(2370,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_of_an_array_type_2370\",\"A rest parameter must be of an array type.\"),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:n(2371,e.DiagnosticCategory.Error,\"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\",\"A parameter initializer is only allowed in a function or constructor implementation.\"),Parameter_0_cannot_be_referenced_in_its_initializer:n(2372,e.DiagnosticCategory.Error,\"Parameter_0_cannot_be_referenced_in_its_initializer_2372\",\"Parameter '{0}' cannot be referenced in its initializer.\"),Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it:n(2373,e.DiagnosticCategory.Error,\"Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it_2373\",\"Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it.\"),Duplicate_string_index_signature:n(2374,e.DiagnosticCategory.Error,\"Duplicate_string_index_signature_2374\",\"Duplicate string index signature.\"),Duplicate_number_index_signature:n(2375,e.DiagnosticCategory.Error,\"Duplicate_number_index_signature_2375\",\"Duplicate number index signature.\"),A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties:n(2376,e.DiagnosticCategory.Error,\"A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_proper_2376\",\"A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.\"),Constructors_for_derived_classes_must_contain_a_super_call:n(2377,e.DiagnosticCategory.Error,\"Constructors_for_derived_classes_must_contain_a_super_call_2377\",\"Constructors for derived classes must contain a 'super' call.\"),A_get_accessor_must_return_a_value:n(2378,e.DiagnosticCategory.Error,\"A_get_accessor_must_return_a_value_2378\",\"A 'get' accessor must return a value.\"),Getter_and_setter_accessors_do_not_agree_in_visibility:n(2379,e.DiagnosticCategory.Error,\"Getter_and_setter_accessors_do_not_agree_in_visibility_2379\",\"Getter and setter accessors do not agree in visibility.\"),get_and_set_accessor_must_have_the_same_type:n(2380,e.DiagnosticCategory.Error,\"get_and_set_accessor_must_have_the_same_type_2380\",\"'get' and 'set' accessor must have the same type.\"),A_signature_with_an_implementation_cannot_use_a_string_literal_type:n(2381,e.DiagnosticCategory.Error,\"A_signature_with_an_implementation_cannot_use_a_string_literal_type_2381\",\"A signature with an implementation cannot use a string literal type.\"),Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature:n(2382,e.DiagnosticCategory.Error,\"Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature_2382\",\"Specialized overload signature is not assignable to any non-specialized signature.\"),Overload_signatures_must_all_be_exported_or_non_exported:n(2383,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_exported_or_non_exported_2383\",\"Overload signatures must all be exported or non-exported.\"),Overload_signatures_must_all_be_ambient_or_non_ambient:n(2384,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\",\"Overload signatures must all be ambient or non-ambient.\"),Overload_signatures_must_all_be_public_private_or_protected:n(2385,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_public_private_or_protected_2385\",\"Overload signatures must all be public, private or protected.\"),Overload_signatures_must_all_be_optional_or_required:n(2386,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_optional_or_required_2386\",\"Overload signatures must all be optional or required.\"),Function_overload_must_be_static:n(2387,e.DiagnosticCategory.Error,\"Function_overload_must_be_static_2387\",\"Function overload must be static.\"),Function_overload_must_not_be_static:n(2388,e.DiagnosticCategory.Error,\"Function_overload_must_not_be_static_2388\",\"Function overload must not be static.\"),Function_implementation_name_must_be_0:n(2389,e.DiagnosticCategory.Error,\"Function_implementation_name_must_be_0_2389\",\"Function implementation name must be '{0}'.\"),Constructor_implementation_is_missing:n(2390,e.DiagnosticCategory.Error,\"Constructor_implementation_is_missing_2390\",\"Constructor implementation is missing.\"),Function_implementation_is_missing_or_not_immediately_following_the_declaration:n(2391,e.DiagnosticCategory.Error,\"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\",\"Function implementation is missing or not immediately following the declaration.\"),Multiple_constructor_implementations_are_not_allowed:n(2392,e.DiagnosticCategory.Error,\"Multiple_constructor_implementations_are_not_allowed_2392\",\"Multiple constructor implementations are not allowed.\"),Duplicate_function_implementation:n(2393,e.DiagnosticCategory.Error,\"Duplicate_function_implementation_2393\",\"Duplicate function implementation.\"),This_overload_signature_is_not_compatible_with_its_implementation_signature:n(2394,e.DiagnosticCategory.Error,\"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\",\"This overload signature is not compatible with its implementation signature.\"),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:n(2395,e.DiagnosticCategory.Error,\"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\",\"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:n(2396,e.DiagnosticCategory.Error,\"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\",\"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),Declaration_name_conflicts_with_built_in_global_identifier_0:n(2397,e.DiagnosticCategory.Error,\"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\",\"Declaration name conflicts with built-in global identifier '{0}'.\"),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:n(2399,e.DiagnosticCategory.Error,\"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\",\"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:n(2400,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\",\"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference:n(2401,e.DiagnosticCategory.Error,\"Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference_2401\",\"Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference.\"),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:n(2402,e.DiagnosticCategory.Error,\"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\",\"Expression resolves to '_super' that compiler uses to capture base class reference.\"),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:n(2403,e.DiagnosticCategory.Error,\"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\",\"Subsequent variable declarations must have the same type.  Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:n(2404,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\",\"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:n(2405,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\",\"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:n(2406,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\",\"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:n(2407,e.DiagnosticCategory.Error,\"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\",\"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),Setters_cannot_return_a_value:n(2408,e.DiagnosticCategory.Error,\"Setters_cannot_return_a_value_2408\",\"Setters cannot return a value.\"),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:n(2409,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\",\"Return type of constructor signature must be assignable to the instance type of the class.\"),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:n(2410,e.DiagnosticCategory.Error,\"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\",\"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),Property_0_of_type_1_is_not_assignable_to_string_index_type_2:n(2411,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_string_index_type_2_2411\",\"Property '{0}' of type '{1}' is not assignable to string index type '{2}'.\"),Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2:n(2412,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2_2412\",\"Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'.\"),Numeric_index_type_0_is_not_assignable_to_string_index_type_1:n(2413,e.DiagnosticCategory.Error,\"Numeric_index_type_0_is_not_assignable_to_string_index_type_1_2413\",\"Numeric index type '{0}' is not assignable to string index type '{1}'.\"),Class_name_cannot_be_0:n(2414,e.DiagnosticCategory.Error,\"Class_name_cannot_be_0_2414\",\"Class name cannot be '{0}'.\"),Class_0_incorrectly_extends_base_class_1:n(2415,e.DiagnosticCategory.Error,\"Class_0_incorrectly_extends_base_class_1_2415\",\"Class '{0}' incorrectly extends base class '{1}'.\"),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:n(2416,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\",\"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),Class_static_side_0_incorrectly_extends_base_class_static_side_1:n(2417,e.DiagnosticCategory.Error,\"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\",\"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:n(2418,e.DiagnosticCategory.Error,\"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\",\"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),Class_0_incorrectly_implements_interface_1:n(2420,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_interface_1_2420\",\"Class '{0}' incorrectly implements interface '{1}'.\"),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2422,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\",\"A class can only implement an object type or intersection of object types with statically known members.\"),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:n(2423,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\",\"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:n(2425,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:n(2426,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),Interface_name_cannot_be_0:n(2427,e.DiagnosticCategory.Error,\"Interface_name_cannot_be_0_2427\",\"Interface name cannot be '{0}'.\"),All_declarations_of_0_must_have_identical_type_parameters:n(2428,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_type_parameters_2428\",\"All declarations of '{0}' must have identical type parameters.\"),Interface_0_incorrectly_extends_interface_1:n(2430,e.DiagnosticCategory.Error,\"Interface_0_incorrectly_extends_interface_1_2430\",\"Interface '{0}' incorrectly extends interface '{1}'.\"),Enum_name_cannot_be_0:n(2431,e.DiagnosticCategory.Error,\"Enum_name_cannot_be_0_2431\",\"Enum name cannot be '{0}'.\"),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:n(2432,e.DiagnosticCategory.Error,\"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\",\"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:n(2433,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\",\"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:n(2434,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\",\"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:n(2435,e.DiagnosticCategory.Error,\"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\",\"Ambient modules cannot be nested in other modules or namespaces.\"),Ambient_module_declaration_cannot_specify_relative_module_name:n(2436,e.DiagnosticCategory.Error,\"Ambient_module_declaration_cannot_specify_relative_module_name_2436\",\"Ambient module declaration cannot specify relative module name.\"),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:n(2437,e.DiagnosticCategory.Error,\"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\",\"Module '{0}' is hidden by a local declaration with the same name.\"),Import_name_cannot_be_0:n(2438,e.DiagnosticCategory.Error,\"Import_name_cannot_be_0_2438\",\"Import name cannot be '{0}'.\"),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:n(2439,e.DiagnosticCategory.Error,\"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\",\"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),Import_declaration_conflicts_with_local_declaration_of_0:n(2440,e.DiagnosticCategory.Error,\"Import_declaration_conflicts_with_local_declaration_of_0_2440\",\"Import declaration conflicts with local declaration of '{0}'.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:n(2441,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),Types_have_separate_declarations_of_a_private_property_0:n(2442,e.DiagnosticCategory.Error,\"Types_have_separate_declarations_of_a_private_property_0_2442\",\"Types have separate declarations of a private property '{0}'.\"),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:n(2443,e.DiagnosticCategory.Error,\"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\",\"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),Property_0_is_protected_in_type_1_but_public_in_type_2:n(2444,e.DiagnosticCategory.Error,\"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\",\"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:n(2445,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\",\"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1:n(2446,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_2446\",\"Property '{0}' is protected and only accessible through an instance of class '{1}'.\"),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:n(2447,e.DiagnosticCategory.Error,\"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\",\"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),Block_scoped_variable_0_used_before_its_declaration:n(2448,e.DiagnosticCategory.Error,\"Block_scoped_variable_0_used_before_its_declaration_2448\",\"Block-scoped variable '{0}' used before its declaration.\"),Class_0_used_before_its_declaration:n(2449,e.DiagnosticCategory.Error,\"Class_0_used_before_its_declaration_2449\",\"Class '{0}' used before its declaration.\"),Enum_0_used_before_its_declaration:n(2450,e.DiagnosticCategory.Error,\"Enum_0_used_before_its_declaration_2450\",\"Enum '{0}' used before its declaration.\"),Cannot_redeclare_block_scoped_variable_0:n(2451,e.DiagnosticCategory.Error,\"Cannot_redeclare_block_scoped_variable_0_2451\",\"Cannot redeclare block-scoped variable '{0}'.\"),An_enum_member_cannot_have_a_numeric_name:n(2452,e.DiagnosticCategory.Error,\"An_enum_member_cannot_have_a_numeric_name_2452\",\"An enum member cannot have a numeric name.\"),The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly:n(2453,e.DiagnosticCategory.Error,\"The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_typ_2453\",\"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.\"),Variable_0_is_used_before_being_assigned:n(2454,e.DiagnosticCategory.Error,\"Variable_0_is_used_before_being_assigned_2454\",\"Variable '{0}' is used before being assigned.\"),Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0:n(2455,e.DiagnosticCategory.Error,\"Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0_2455\",\"Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'.\"),Type_alias_0_circularly_references_itself:n(2456,e.DiagnosticCategory.Error,\"Type_alias_0_circularly_references_itself_2456\",\"Type alias '{0}' circularly references itself.\"),Type_alias_name_cannot_be_0:n(2457,e.DiagnosticCategory.Error,\"Type_alias_name_cannot_be_0_2457\",\"Type alias name cannot be '{0}'.\"),An_AMD_module_cannot_have_multiple_name_assignments:n(2458,e.DiagnosticCategory.Error,\"An_AMD_module_cannot_have_multiple_name_assignments_2458\",\"An AMD module cannot have multiple name assignments.\"),Type_0_is_not_an_array_type:n(2461,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_2461\",\"Type '{0}' is not an array type.\"),A_rest_element_must_be_last_in_a_destructuring_pattern:n(2462,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\",\"A rest element must be last in a destructuring pattern.\"),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:n(2463,e.DiagnosticCategory.Error,\"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\",\"A binding pattern parameter cannot be optional in an implementation signature.\"),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:n(2464,e.DiagnosticCategory.Error,\"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\",\"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),this_cannot_be_referenced_in_a_computed_property_name:n(2465,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_computed_property_name_2465\",\"'this' cannot be referenced in a computed property name.\"),super_cannot_be_referenced_in_a_computed_property_name:n(2466,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_a_computed_property_name_2466\",\"'super' cannot be referenced in a computed property name.\"),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:n(2467,e.DiagnosticCategory.Error,\"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\",\"A computed property name cannot reference a type parameter from its containing type.\"),Cannot_find_global_value_0:n(2468,e.DiagnosticCategory.Error,\"Cannot_find_global_value_0_2468\",\"Cannot find global value '{0}'.\"),The_0_operator_cannot_be_applied_to_type_symbol:n(2469,e.DiagnosticCategory.Error,\"The_0_operator_cannot_be_applied_to_type_symbol_2469\",\"The '{0}' operator cannot be applied to type 'symbol'.\"),Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object:n(2470,e.DiagnosticCategory.Error,\"Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object_2470\",\"'Symbol' reference does not refer to the global Symbol constructor object.\"),A_computed_property_name_of_the_form_0_must_be_of_type_symbol:n(2471,e.DiagnosticCategory.Error,\"A_computed_property_name_of_the_form_0_must_be_of_type_symbol_2471\",\"A computed property name of the form '{0}' must be of type 'symbol'.\"),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:n(2472,e.DiagnosticCategory.Error,\"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\",\"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),Enum_declarations_must_all_be_const_or_non_const:n(2473,e.DiagnosticCategory.Error,\"Enum_declarations_must_all_be_const_or_non_const_2473\",\"Enum declarations must all be const or non-const.\"),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:n(2474,e.DiagnosticCategory.Error,\"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474\",\"const enum member initializers can only contain literal values and other computed enum values.\"),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:n(2475,e.DiagnosticCategory.Error,\"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\",\"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),A_const_enum_member_can_only_be_accessed_using_a_string_literal:n(2476,e.DiagnosticCategory.Error,\"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\",\"A const enum member can only be accessed using a string literal.\"),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:n(2477,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\",\"'const' enum member initializer was evaluated to a non-finite value.\"),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:n(2478,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\",\"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),Property_0_does_not_exist_on_const_enum_1:n(2479,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_const_enum_1_2479\",\"Property '{0}' does not exist on 'const' enum '{1}'.\"),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:n(2480,e.DiagnosticCategory.Error,\"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\",\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:n(2481,e.DiagnosticCategory.Error,\"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\",\"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:n(2483,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\",\"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),Export_declaration_conflicts_with_exported_declaration_of_0:n(2484,e.DiagnosticCategory.Error,\"Export_declaration_conflicts_with_exported_declaration_of_0_2484\",\"Export declaration conflicts with exported declaration of '{0}'.\"),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:n(2487,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\",\"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2488,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\",\"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),An_iterator_must_have_a_next_method:n(2489,e.DiagnosticCategory.Error,\"An_iterator_must_have_a_next_method_2489\",\"An iterator must have a 'next()' method.\"),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:n(2490,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\",\"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:n(2491,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\",\"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),Cannot_redeclare_identifier_0_in_catch_clause:n(2492,e.DiagnosticCategory.Error,\"Cannot_redeclare_identifier_0_in_catch_clause_2492\",\"Cannot redeclare identifier '{0}' in catch clause.\"),Tuple_type_0_of_length_1_has_no_element_at_index_2:n(2493,e.DiagnosticCategory.Error,\"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\",\"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:n(2494,e.DiagnosticCategory.Error,\"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\",\"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),Type_0_is_not_an_array_type_or_a_string_type:n(2495,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_2495\",\"Type '{0}' is not an array type or a string type.\"),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:n(2496,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496\",\"The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.\"),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:n(2497,e.DiagnosticCategory.Error,\"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\",\"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:n(2498,e.DiagnosticCategory.Error,\"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\",\"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:n(2499,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\",\"An interface can only extend an identifier/qualified-name with optional type arguments.\"),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:n(2500,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\",\"A class can only implement an identifier/qualified-name with optional type arguments.\"),A_rest_element_cannot_contain_a_binding_pattern:n(2501,e.DiagnosticCategory.Error,\"A_rest_element_cannot_contain_a_binding_pattern_2501\",\"A rest element cannot contain a binding pattern.\"),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:n(2502,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\",\"'{0}' is referenced directly or indirectly in its own type annotation.\"),Cannot_find_namespace_0:n(2503,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_2503\",\"Cannot find namespace '{0}'.\"),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:n(2504,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\",\"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),A_generator_cannot_have_a_void_type_annotation:n(2505,e.DiagnosticCategory.Error,\"A_generator_cannot_have_a_void_type_annotation_2505\",\"A generator cannot have a 'void' type annotation.\"),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:n(2506,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\",\"'{0}' is referenced directly or indirectly in its own base expression.\"),Type_0_is_not_a_constructor_function_type:n(2507,e.DiagnosticCategory.Error,\"Type_0_is_not_a_constructor_function_type_2507\",\"Type '{0}' is not a constructor function type.\"),No_base_constructor_has_the_specified_number_of_type_arguments:n(2508,e.DiagnosticCategory.Error,\"No_base_constructor_has_the_specified_number_of_type_arguments_2508\",\"No base constructor has the specified number of type arguments.\"),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:n(2509,e.DiagnosticCategory.Error,\"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\",\"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),Base_constructors_must_all_have_the_same_return_type:n(2510,e.DiagnosticCategory.Error,\"Base_constructors_must_all_have_the_same_return_type_2510\",\"Base constructors must all have the same return type.\"),Cannot_create_an_instance_of_an_abstract_class:n(2511,e.DiagnosticCategory.Error,\"Cannot_create_an_instance_of_an_abstract_class_2511\",\"Cannot create an instance of an abstract class.\"),Overload_signatures_must_all_be_abstract_or_non_abstract:n(2512,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\",\"Overload signatures must all be abstract or non-abstract.\"),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:n(2513,e.DiagnosticCategory.Error,\"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\",\"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),Classes_containing_abstract_methods_must_be_marked_abstract:n(2514,e.DiagnosticCategory.Error,\"Classes_containing_abstract_methods_must_be_marked_abstract_2514\",\"Classes containing abstract methods must be marked abstract.\"),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:n(2515,e.DiagnosticCategory.Error,\"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\",\"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'.\"),All_declarations_of_an_abstract_method_must_be_consecutive:n(2516,e.DiagnosticCategory.Error,\"All_declarations_of_an_abstract_method_must_be_consecutive_2516\",\"All declarations of an abstract method must be consecutive.\"),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:n(2517,e.DiagnosticCategory.Error,\"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\",\"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:n(2518,e.DiagnosticCategory.Error,\"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\",\"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),An_async_iterator_must_have_a_next_method:n(2519,e.DiagnosticCategory.Error,\"An_async_iterator_must_have_a_next_method_2519\",\"An async iterator must have a 'next()' method.\"),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:n(2520,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\",\"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions:n(2521,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521\",\"Expression resolves to variable declaration '{0}' that compiler uses to support async functions.\"),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:n(2522,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522\",\"The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method.\"),yield_expressions_cannot_be_used_in_a_parameter_initializer:n(2523,e.DiagnosticCategory.Error,\"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\",\"'yield' expressions cannot be used in a parameter initializer.\"),await_expressions_cannot_be_used_in_a_parameter_initializer:n(2524,e.DiagnosticCategory.Error,\"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\",\"'await' expressions cannot be used in a parameter initializer.\"),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:n(2525,e.DiagnosticCategory.Error,\"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525\",\"Initializer provides no value for this binding element and the binding element has no default value.\"),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:n(2526,e.DiagnosticCategory.Error,\"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\",\"A 'this' type is available only in a non-static member of a class or interface.\"),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:n(2527,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\",\"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),A_module_cannot_have_multiple_default_exports:n(2528,e.DiagnosticCategory.Error,\"A_module_cannot_have_multiple_default_exports_2528\",\"A module cannot have multiple default exports.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:n(2529,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),Property_0_is_incompatible_with_index_signature:n(2530,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_index_signature_2530\",\"Property '{0}' is incompatible with index signature.\"),Object_is_possibly_null:n(2531,e.DiagnosticCategory.Error,\"Object_is_possibly_null_2531\",\"Object is possibly 'null'.\"),Object_is_possibly_undefined:n(2532,e.DiagnosticCategory.Error,\"Object_is_possibly_undefined_2532\",\"Object is possibly 'undefined'.\"),Object_is_possibly_null_or_undefined:n(2533,e.DiagnosticCategory.Error,\"Object_is_possibly_null_or_undefined_2533\",\"Object is possibly 'null' or 'undefined'.\"),A_function_returning_never_cannot_have_a_reachable_end_point:n(2534,e.DiagnosticCategory.Error,\"A_function_returning_never_cannot_have_a_reachable_end_point_2534\",\"A function returning 'never' cannot have a reachable end point.\"),Enum_type_0_has_members_with_initializers_that_are_not_literals:n(2535,e.DiagnosticCategory.Error,\"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535\",\"Enum type '{0}' has members with initializers that are not literals.\"),Type_0_cannot_be_used_to_index_type_1:n(2536,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_to_index_type_1_2536\",\"Type '{0}' cannot be used to index type '{1}'.\"),Type_0_has_no_matching_index_signature_for_type_1:n(2537,e.DiagnosticCategory.Error,\"Type_0_has_no_matching_index_signature_for_type_1_2537\",\"Type '{0}' has no matching index signature for type '{1}'.\"),Type_0_cannot_be_used_as_an_index_type:n(2538,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_as_an_index_type_2538\",\"Type '{0}' cannot be used as an index type.\"),Cannot_assign_to_0_because_it_is_not_a_variable:n(2539,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_not_a_variable_2539\",\"Cannot assign to '{0}' because it is not a variable.\"),Cannot_assign_to_0_because_it_is_a_read_only_property:n(2540,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\",\"Cannot assign to '{0}' because it is a read-only property.\"),The_target_of_an_assignment_must_be_a_variable_or_a_property_access:n(2541,e.DiagnosticCategory.Error,\"The_target_of_an_assignment_must_be_a_variable_or_a_property_access_2541\",\"The target of an assignment must be a variable or a property access.\"),Index_signature_in_type_0_only_permits_reading:n(2542,e.DiagnosticCategory.Error,\"Index_signature_in_type_0_only_permits_reading_2542\",\"Index signature in type '{0}' only permits reading.\"),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:n(2543,e.DiagnosticCategory.Error,\"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\",\"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:n(2544,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\",\"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:n(2545,e.DiagnosticCategory.Error,\"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\",\"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1:n(2546,e.DiagnosticCategory.Error,\"Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1_2546\",\"Property '{0}' has conflicting declarations and is inaccessible in type '{1}'.\"),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:n(2547,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\",\"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2548,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\",\"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:n(2549,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\",\"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_2:n(2551,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\",\"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),Cannot_find_name_0_Did_you_mean_1:n(2552,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_1_2552\",\"Cannot find name '{0}'. Did you mean '{1}'?\"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:n(2553,e.DiagnosticCategory.Error,\"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\",\"Computed values are not permitted in an enum with string valued members.\"),Expected_0_arguments_but_got_1:n(2554,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_2554\",\"Expected {0} arguments, but got {1}.\"),Expected_at_least_0_arguments_but_got_1:n(2555,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_2555\",\"Expected at least {0} arguments, but got {1}.\"),Expected_0_arguments_but_got_1_or_more:n(2556,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_or_more_2556\",\"Expected {0} arguments, but got {1} or more.\"),Expected_at_least_0_arguments_but_got_1_or_more:n(2557,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_or_more_2557\",\"Expected at least {0} arguments, but got {1} or more.\"),Expected_0_type_arguments_but_got_1:n(2558,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_but_got_1_2558\",\"Expected {0} type arguments, but got {1}.\"),Type_0_has_no_properties_in_common_with_type_1:n(2559,e.DiagnosticCategory.Error,\"Type_0_has_no_properties_in_common_with_type_1_2559\",\"Type '{0}' has no properties in common with type '{1}'.\"),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:n(2560,e.DiagnosticCategory.Error,\"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\",\"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:n(2561,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\",\"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),Base_class_expressions_cannot_reference_class_type_parameters:n(2562,e.DiagnosticCategory.Error,\"Base_class_expressions_cannot_reference_class_type_parameters_2562\",\"Base class expressions cannot reference class type parameters.\"),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:n(2563,e.DiagnosticCategory.Error,\"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\",\"The containing function or module body is too large for control flow analysis.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:n(2564,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\",\"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),Property_0_is_used_before_being_assigned:n(2565,e.DiagnosticCategory.Error,\"Property_0_is_used_before_being_assigned_2565\",\"Property '{0}' is used before being assigned.\"),A_rest_element_cannot_have_a_property_name:n(2566,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_a_property_name_2566\",\"A rest element cannot have a property name.\"),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:n(2567,e.DiagnosticCategory.Error,\"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\",\"Enum declarations can only merge with namespace or other enum declarations.\"),Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators:n(2569,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterati_2569\",\"Type '{0}' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.\"),Object_is_of_type_unknown:n(2571,e.DiagnosticCategory.Error,\"Object_is_of_type_unknown_2571\",\"Object is of type 'unknown'.\"),Rest_signatures_are_incompatible:n(2572,e.DiagnosticCategory.Error,\"Rest_signatures_are_incompatible_2572\",\"Rest signatures are incompatible.\"),Property_0_is_incompatible_with_rest_element_type:n(2573,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_rest_element_type_2573\",\"Property '{0}' is incompatible with rest element type.\"),A_rest_element_type_must_be_an_array_type:n(2574,e.DiagnosticCategory.Error,\"A_rest_element_type_must_be_an_array_type_2574\",\"A rest element type must be an array type.\"),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:n(2575,e.DiagnosticCategory.Error,\"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\",\"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),Property_0_is_a_static_member_of_type_1:n(2576,e.DiagnosticCategory.Error,\"Property_0_is_a_static_member_of_type_1_2576\",\"Property '{0}' is a static member of type '{1}'\"),Return_type_annotation_circularly_references_itself:n(2577,e.DiagnosticCategory.Error,\"Return_type_annotation_circularly_references_itself_2577\",\"Return type annotation circularly references itself.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode:n(2580,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_2580\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i @types/node`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery:n(2581,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_2581\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha:n(2582,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashje_2582\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:n(2583,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:n(2584,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:n(2585,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\",\"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.\"),Enum_type_0_circularly_references_itself:n(2586,e.DiagnosticCategory.Error,\"Enum_type_0_circularly_references_itself_2586\",\"Enum type '{0}' circularly references itself.\"),JSDoc_type_0_circularly_references_itself:n(2587,e.DiagnosticCategory.Error,\"JSDoc_type_0_circularly_references_itself_2587\",\"JSDoc type '{0}' circularly references itself.\"),Cannot_assign_to_0_because_it_is_a_constant:n(2588,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_constant_2588\",\"Cannot assign to '{0}' because it is a constant.\"),Type_instantiation_is_excessively_deep_and_possibly_infinite:n(2589,e.DiagnosticCategory.Error,\"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\",\"Type instantiation is excessively deep and possibly infinite.\"),Expression_produces_a_union_type_that_is_too_complex_to_represent:n(2590,e.DiagnosticCategory.Error,\"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\",\"Expression produces a union type that is too complex to represent.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:n(2591,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_th_2591\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i @types/node` and then add `node` to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:n(2592,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_an_2592\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery` and then add `jquery` to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:n(2593,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashje_2593\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.\"),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:n(2594,e.DiagnosticCategory.Error,\"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594\",\"This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag.\"),JSX_element_attributes_type_0_may_not_be_a_union_type:n(2600,e.DiagnosticCategory.Error,\"JSX_element_attributes_type_0_may_not_be_a_union_type_2600\",\"JSX element attributes type '{0}' may not be a union type.\"),The_return_type_of_a_JSX_element_constructor_must_return_an_object_type:n(2601,e.DiagnosticCategory.Error,\"The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601\",\"The return type of a JSX element constructor must return an object type.\"),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:n(2602,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\",\"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),Property_0_in_type_1_is_not_assignable_to_type_2:n(2603,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_type_2_2603\",\"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:n(2604,e.DiagnosticCategory.Error,\"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\",\"JSX element type '{0}' does not have any construct or call signatures.\"),JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements:n(2605,e.DiagnosticCategory.Error,\"JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements_2605\",\"JSX element type '{0}' is not a constructor function for JSX elements.\"),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:n(2606,e.DiagnosticCategory.Error,\"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\",\"Property '{0}' of JSX spread attribute is not assignable to target property.\"),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:n(2607,e.DiagnosticCategory.Error,\"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\",\"JSX element class does not support attributes because it does not have a '{0}' property.\"),The_global_type_JSX_0_may_not_have_more_than_one_property:n(2608,e.DiagnosticCategory.Error,\"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\",\"The global type 'JSX.{0}' may not have more than one property.\"),JSX_spread_child_must_be_an_array_type:n(2609,e.DiagnosticCategory.Error,\"JSX_spread_child_must_be_an_array_type_2609\",\"JSX spread child must be an array type.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_property:n(2610,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_proper_2610\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member property.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_accessor:n(2611,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_access_2611\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member accessor.\"),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:n(2612,e.DiagnosticCategory.Error,\"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\",\"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:n(2613,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\",\"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:n(2614,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\",\"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:n(2649,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\",\"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:n(2651,e.DiagnosticCategory.Error,\"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\",\"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:n(2652,e.DiagnosticCategory.Error,\"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\",\"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:n(2653,e.DiagnosticCategory.Error,\"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\",\"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition:n(2654,e.DiagnosticCategory.Error,\"Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_pack_2654\",\"Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition.\"),Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition:n(2656,e.DiagnosticCategory.Error,\"Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_2656\",\"Exported external package typings file '{0}' is not a module. Please contact the package author to update the package definition.\"),JSX_expressions_must_have_one_parent_element:n(2657,e.DiagnosticCategory.Error,\"JSX_expressions_must_have_one_parent_element_2657\",\"JSX expressions must have one parent element.\"),Type_0_provides_no_match_for_the_signature_1:n(2658,e.DiagnosticCategory.Error,\"Type_0_provides_no_match_for_the_signature_1_2658\",\"Type '{0}' provides no match for the signature '{1}'.\"),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:n(2659,e.DiagnosticCategory.Error,\"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\",\"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:n(2660,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\",\"'super' can only be referenced in members of derived classes or object literal expressions.\"),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:n(2661,e.DiagnosticCategory.Error,\"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\",\"Cannot export '{0}'. Only local declarations can be exported from a module.\"),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:n(2662,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\",\"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:n(2663,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\",\"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:n(2664,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\",\"Invalid module name in augmentation, module '{0}' cannot be found.\"),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:n(2665,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\",\"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:n(2666,e.DiagnosticCategory.Error,\"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\",\"Exports and export assignments are not permitted in module augmentations.\"),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:n(2667,e.DiagnosticCategory.Error,\"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\",\"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:n(2668,e.DiagnosticCategory.Error,\"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\",\"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:n(2669,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\",\"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:n(2670,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\",\"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:n(2671,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\",\"Cannot augment module '{0}' because it resolves to a non-module entity.\"),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:n(2672,e.DiagnosticCategory.Error,\"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\",\"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:n(2673,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\",\"Constructor of class '{0}' is private and only accessible within the class declaration.\"),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:n(2674,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\",\"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:n(2675,e.DiagnosticCategory.Error,\"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\",\"Cannot extend a class '{0}'. Class constructor is marked as private.\"),Accessors_must_both_be_abstract_or_non_abstract:n(2676,e.DiagnosticCategory.Error,\"Accessors_must_both_be_abstract_or_non_abstract_2676\",\"Accessors must both be abstract or non-abstract.\"),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:n(2677,e.DiagnosticCategory.Error,\"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\",\"A type predicate's type must be assignable to its parameter's type.\"),Type_0_is_not_comparable_to_type_1:n(2678,e.DiagnosticCategory.Error,\"Type_0_is_not_comparable_to_type_1_2678\",\"Type '{0}' is not comparable to type '{1}'.\"),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:n(2679,e.DiagnosticCategory.Error,\"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\",\"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),A_0_parameter_must_be_the_first_parameter:n(2680,e.DiagnosticCategory.Error,\"A_0_parameter_must_be_the_first_parameter_2680\",\"A '{0}' parameter must be the first parameter.\"),A_constructor_cannot_have_a_this_parameter:n(2681,e.DiagnosticCategory.Error,\"A_constructor_cannot_have_a_this_parameter_2681\",\"A constructor cannot have a 'this' parameter.\"),get_and_set_accessor_must_have_the_same_this_type:n(2682,e.DiagnosticCategory.Error,\"get_and_set_accessor_must_have_the_same_this_type_2682\",\"'get' and 'set' accessor must have the same 'this' type.\"),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:n(2683,e.DiagnosticCategory.Error,\"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\",\"'this' implicitly has type 'any' because it does not have a type annotation.\"),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:n(2684,e.DiagnosticCategory.Error,\"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\",\"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),The_this_types_of_each_signature_are_incompatible:n(2685,e.DiagnosticCategory.Error,\"The_this_types_of_each_signature_are_incompatible_2685\",\"The 'this' types of each signature are incompatible.\"),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:n(2686,e.DiagnosticCategory.Error,\"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\",\"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),All_declarations_of_0_must_have_identical_modifiers:n(2687,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_modifiers_2687\",\"All declarations of '{0}' must have identical modifiers.\"),Cannot_find_type_definition_file_for_0:n(2688,e.DiagnosticCategory.Error,\"Cannot_find_type_definition_file_for_0_2688\",\"Cannot find type definition file for '{0}'.\"),Cannot_extend_an_interface_0_Did_you_mean_implements:n(2689,e.DiagnosticCategory.Error,\"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\",\"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:n(2691,e.DiagnosticCategory.Error,\"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691\",\"An import path cannot end with a '{0}' extension. Consider importing '{1}' instead.\"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:n(2692,e.DiagnosticCategory.Error,\"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\",\"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:n(2693,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\",\"'{0}' only refers to a type, but is being used as a value here.\"),Namespace_0_has_no_exported_member_1:n(2694,e.DiagnosticCategory.Error,\"Namespace_0_has_no_exported_member_1_2694\",\"Namespace '{0}' has no exported member '{1}'.\"),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:n(2695,e.DiagnosticCategory.Error,\"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\"Left side of comma operator is unused and has no side effects.\",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:n(2696,e.DiagnosticCategory.Error,\"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\",\"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:n(2697,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\",\"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your `--lib` option.\"),Spread_types_may_only_be_created_from_object_types:n(2698,e.DiagnosticCategory.Error,\"Spread_types_may_only_be_created_from_object_types_2698\",\"Spread types may only be created from object types.\"),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:n(2699,e.DiagnosticCategory.Error,\"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\",\"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),Rest_types_may_only_be_created_from_object_types:n(2700,e.DiagnosticCategory.Error,\"Rest_types_may_only_be_created_from_object_types_2700\",\"Rest types may only be created from object types.\"),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:n(2701,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\",\"The target of an object rest assignment must be a variable or a property access.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:n(2702,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\",\"'{0}' only refers to a type, but is being used as a namespace here.\"),The_operand_of_a_delete_operator_must_be_a_property_reference:n(2703,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\",\"The operand of a delete operator must be a property reference.\"),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:n(2704,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\",\"The operand of a delete operator cannot be a read-only property.\"),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:n(2705,e.DiagnosticCategory.Error,\"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705\",\"An async function or method in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your `--lib` option.\"),Required_type_parameters_may_not_follow_optional_type_parameters:n(2706,e.DiagnosticCategory.Error,\"Required_type_parameters_may_not_follow_optional_type_parameters_2706\",\"Required type parameters may not follow optional type parameters.\"),Generic_type_0_requires_between_1_and_2_type_arguments:n(2707,e.DiagnosticCategory.Error,\"Generic_type_0_requires_between_1_and_2_type_arguments_2707\",\"Generic type '{0}' requires between {1} and {2} type arguments.\"),Cannot_use_namespace_0_as_a_value:n(2708,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_value_2708\",\"Cannot use namespace '{0}' as a value.\"),Cannot_use_namespace_0_as_a_type:n(2709,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_type_2709\",\"Cannot use namespace '{0}' as a type.\"),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:n(2710,e.DiagnosticCategory.Error,\"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\",\"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:n(2711,e.DiagnosticCategory.Error,\"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\",\"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your `--lib` option.\"),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:n(2712,e.DiagnosticCategory.Error,\"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712\",\"A dynamic import call in ES5/ES3 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your `--lib` option.\"),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:n(2713,e.DiagnosticCategory.Error,\"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\",\"Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\\\"{1}\\\"]'?\"),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:n(2714,e.DiagnosticCategory.Error,\"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\",\"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:n(2715,e.DiagnosticCategory.Error,\"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\",\"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),Type_parameter_0_has_a_circular_default:n(2716,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_default_2716\",\"Type parameter '{0}' has a circular default.\"),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:n(2717,e.DiagnosticCategory.Error,\"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\",\"Subsequent property declarations must have the same type.  Property '{0}' must be of type '{1}', but here has type '{2}'.\"),Duplicate_property_0:n(2718,e.DiagnosticCategory.Error,\"Duplicate_property_0_2718\",\"Duplicate property '{0}'.\"),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:n(2719,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\",\"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:n(2720,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\",\"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),Cannot_invoke_an_object_which_is_possibly_null:n(2721,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_2721\",\"Cannot invoke an object which is possibly 'null'.\"),Cannot_invoke_an_object_which_is_possibly_undefined:n(2722,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_undefined_2722\",\"Cannot invoke an object which is possibly 'undefined'.\"),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:n(2723,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\",\"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),Module_0_has_no_exported_member_1_Did_you_mean_2:n(2724,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_2_2724\",\"Module '{0}' has no exported member '{1}'. Did you mean '{2}'?\"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:n(2725,e.DiagnosticCategory.Error,\"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725\",\"Class name cannot be 'Object' when targeting ES5 with module {0}.\"),Cannot_find_lib_definition_for_0:n(2726,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_2726\",\"Cannot find lib definition for '{0}'.\"),Cannot_find_lib_definition_for_0_Did_you_mean_1:n(2727,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\",\"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),_0_is_declared_here:n(2728,e.DiagnosticCategory.Message,\"_0_is_declared_here_2728\",\"'{0}' is declared here.\"),Property_0_is_used_before_its_initialization:n(2729,e.DiagnosticCategory.Error,\"Property_0_is_used_before_its_initialization_2729\",\"Property '{0}' is used before its initialization.\"),An_arrow_function_cannot_have_a_this_parameter:n(2730,e.DiagnosticCategory.Error,\"An_arrow_function_cannot_have_a_this_parameter_2730\",\"An arrow function cannot have a 'this' parameter.\"),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:n(2731,e.DiagnosticCategory.Error,\"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\",\"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:n(2732,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\",\"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension\"),Property_0_was_also_declared_here:n(2733,e.DiagnosticCategory.Error,\"Property_0_was_also_declared_here_2733\",\"Property '{0}' was also declared here.\"),It_is_highly_likely_that_you_are_missing_a_semicolon:n(2734,e.DiagnosticCategory.Error,\"It_is_highly_likely_that_you_are_missing_a_semicolon_2734\",\"It is highly likely that you are missing a semicolon.\"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:n(2735,e.DiagnosticCategory.Error,\"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\",\"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),Operator_0_cannot_be_applied_to_type_1:n(2736,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_type_1_2736\",\"Operator '{0}' cannot be applied to type '{1}'.\"),BigInt_literals_are_not_available_when_targeting_lower_than_ESNext:n(2737,e.DiagnosticCategory.Error,\"BigInt_literals_are_not_available_when_targeting_lower_than_ESNext_2737\",\"BigInt literals are not available when targeting lower than ESNext.\"),An_outer_value_of_this_is_shadowed_by_this_container:n(2738,e.DiagnosticCategory.Message,\"An_outer_value_of_this_is_shadowed_by_this_container_2738\",\"An outer value of 'this' is shadowed by this container.\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:n(2739,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\",\"Type '{0}' is missing the following properties from type '{1}': {2}\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:n(2740,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\",\"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),Property_0_is_missing_in_type_1_but_required_in_type_2:n(2741,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\",\"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:n(2742,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\",\"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:n(2743,e.DiagnosticCategory.Error,\"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\",\"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:n(2744,e.DiagnosticCategory.Error,\"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\",\"Type parameter defaults can only reference previously declared type parameters.\"),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:n(2745,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\",\"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:n(2746,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\",\"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:n(2747,e.DiagnosticCategory.Error,\"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\",\"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:n(2748,e.DiagnosticCategory.Error,\"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748\",\"Cannot access ambient const enums when the '--isolatedModules' flag is provided.\"),_0_refers_to_a_value_but_is_being_used_as_a_type_here:n(2749,e.DiagnosticCategory.Error,\"_0_refers_to_a_value_but_is_being_used_as_a_type_here_2749\",\"'{0}' refers to a value, but is being used as a type here.\"),The_implementation_signature_is_declared_here:n(2750,e.DiagnosticCategory.Error,\"The_implementation_signature_is_declared_here_2750\",\"The implementation signature is declared here.\"),Circularity_originates_in_type_at_this_location:n(2751,e.DiagnosticCategory.Error,\"Circularity_originates_in_type_at_this_location_2751\",\"Circularity originates in type at this location.\"),The_first_export_default_is_here:n(2752,e.DiagnosticCategory.Error,\"The_first_export_default_is_here_2752\",\"The first export default is here.\"),Another_export_default_is_here:n(2753,e.DiagnosticCategory.Error,\"Another_export_default_is_here_2753\",\"Another export default is here.\"),super_may_not_use_type_arguments:n(2754,e.DiagnosticCategory.Error,\"super_may_not_use_type_arguments_2754\",\"'super' may not use type arguments.\"),No_constituent_of_type_0_is_callable:n(2755,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_callable_2755\",\"No constituent of type '{0}' is callable.\"),Not_all_constituents_of_type_0_are_callable:n(2756,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_callable_2756\",\"Not all constituents of type '{0}' are callable.\"),Type_0_has_no_call_signatures:n(2757,e.DiagnosticCategory.Error,\"Type_0_has_no_call_signatures_2757\",\"Type '{0}' has no call signatures.\"),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:n(2758,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\",\"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),No_constituent_of_type_0_is_constructable:n(2759,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_constructable_2759\",\"No constituent of type '{0}' is constructable.\"),Not_all_constituents_of_type_0_are_constructable:n(2760,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_constructable_2760\",\"Not all constituents of type '{0}' are constructable.\"),Type_0_has_no_construct_signatures:n(2761,e.DiagnosticCategory.Error,\"Type_0_has_no_construct_signatures_2761\",\"Type '{0}' has no construct signatures.\"),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:n(2762,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\",\"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:n(2763,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:n(2764,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:n(2765,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:n(2766,e.DiagnosticCategory.Error,\"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\",\"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),The_0_property_of_an_iterator_must_be_a_method:n(2767,e.DiagnosticCategory.Error,\"The_0_property_of_an_iterator_must_be_a_method_2767\",\"The '{0}' property of an iterator must be a method.\"),The_0_property_of_an_async_iterator_must_be_a_method:n(2768,e.DiagnosticCategory.Error,\"The_0_property_of_an_async_iterator_must_be_a_method_2768\",\"The '{0}' property of an async iterator must be a method.\"),No_overload_matches_this_call:n(2769,e.DiagnosticCategory.Error,\"No_overload_matches_this_call_2769\",\"No overload matches this call.\"),The_last_overload_gave_the_following_error:n(2770,e.DiagnosticCategory.Error,\"The_last_overload_gave_the_following_error_2770\",\"The last overload gave the following error.\"),The_last_overload_is_declared_here:n(2771,e.DiagnosticCategory.Error,\"The_last_overload_is_declared_here_2771\",\"The last overload is declared here.\"),Overload_0_of_1_2_gave_the_following_error:n(2772,e.DiagnosticCategory.Error,\"Overload_0_of_1_2_gave_the_following_error_2772\",\"Overload {0} of {1}, '{2}', gave the following error.\"),Did_you_forget_to_use_await:n(2773,e.DiagnosticCategory.Error,\"Did_you_forget_to_use_await_2773\",\"Did you forget to use 'await'?\"),This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it_instead:n(2774,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it__2774\",\"This condition will always return true since the function is always defined. Did you mean to call it instead?\"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:n(2775,e.DiagnosticCategory.Error,\"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\",\"Assertions require every name in the call target to be declared with an explicit type annotation.\"),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:n(2776,e.DiagnosticCategory.Error,\"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\",\"Assertions require the call target to be an identifier or qualified name.\"),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:n(2777,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\",\"The operand of an increment or decrement operator may not be an optional property access.\"),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:n(2778,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\",\"The target of an object rest assignment may not be an optional property access.\"),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:n(2779,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\",\"The left-hand side of an assignment expression may not be an optional property access.\"),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:n(2780,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\",\"The left-hand side of a 'for...in' statement may not be an optional property access.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:n(2781,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\",\"The left-hand side of a 'for...of' statement may not be an optional property access.\"),Import_declaration_0_is_using_private_name_1:n(4e3,e.DiagnosticCategory.Error,\"Import_declaration_0_is_using_private_name_1_4000\",\"Import declaration '{0}' is using private name '{1}'.\"),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:n(4002,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\",\"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:n(4004,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\",\"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:n(4006,e.DiagnosticCategory.Error,\"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\",\"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:n(4008,e.DiagnosticCategory.Error,\"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\",\"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:n(4010,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\",\"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:n(4012,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\",\"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:n(4014,e.DiagnosticCategory.Error,\"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\",\"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:n(4016,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\",\"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:n(4019,e.DiagnosticCategory.Error,\"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\",\"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:n(4020,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\",\"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:n(4022,e.DiagnosticCategory.Error,\"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\",\"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4023,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\",\"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:n(4024,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\",\"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),Exported_variable_0_has_or_is_using_private_name_1:n(4025,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_private_name_1_4025\",\"Exported variable '{0}' has or is using private name '{1}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4026,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\",\"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4027,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\",\"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:n(4028,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\",\"Public static property '{0}' of exported class has or is using private name '{1}'.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4029,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\",\"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4030,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\",\"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_property_0_of_exported_class_has_or_is_using_private_name_1:n(4031,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\",\"Public property '{0}' of exported class has or is using private name '{1}'.\"),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4032,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\",\"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Property_0_of_exported_interface_has_or_is_using_private_name_1:n(4033,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\",\"Property '{0}' of exported interface has or is using private name '{1}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4034,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\",\"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:n(4035,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\",\"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4036,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\",\"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:n(4037,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\",\"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4038,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4039,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:n(4040,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\",\"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4041,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4042,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:n(4043,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\",\"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4044,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\",\"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:n(4045,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\",\"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4046,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\",\"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:n(4047,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\",\"Return type of call signature from exported interface has or is using private name '{0}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4048,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\",\"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:n(4049,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\",\"Return type of index signature from exported interface has or is using private name '{0}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4050,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\",\"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:n(4051,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\",\"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:n(4052,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\",\"Return type of public static method from exported class has or is using private name '{0}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4053,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\",\"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:n(4054,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\",\"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:n(4055,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\",\"Return type of public method from exported class has or is using private name '{0}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:n(4056,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\",\"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:n(4057,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\",\"Return type of method from exported interface has or is using private name '{0}'.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:n(4058,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\",\"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:n(4059,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\",\"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),Return_type_of_exported_function_has_or_is_using_private_name_0:n(4060,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\",\"Return type of exported function has or is using private name '{0}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4061,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4062,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:n(4063,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\",\"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4064,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\",\"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:n(4065,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\",\"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4066,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\",\"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:n(4067,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\",\"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4068,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4069,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:n(4070,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\",\"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4071,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:n(4072,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:n(4073,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\",\"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4074,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\",\"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:n(4075,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\",\"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4076,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\",\"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:n(4077,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\",\"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_exported_function_has_or_is_using_private_name_1:n(4078,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\",\"Parameter '{0}' of exported function has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1:n(4081,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_4081\",\"Exported type alias '{0}' has or is using private name '{1}'.\"),Default_export_of_the_module_has_or_is_using_private_name_0:n(4082,e.DiagnosticCategory.Error,\"Default_export_of_the_module_has_or_is_using_private_name_0_4082\",\"Default export of the module has or is using private name '{0}'.\"),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:n(4083,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\",\"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:n(4090,e.DiagnosticCategory.Error,\"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090\",\"Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4091,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\",\"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:n(4092,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\",\"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),Property_0_of_exported_class_expression_may_not_be_private_or_protected:n(4094,e.DiagnosticCategory.Error,\"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094\",\"Property '{0}' of exported class expression may not be private or protected.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4095,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\",\"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4096,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\",\"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:n(4097,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\",\"Public static method '{0}' of exported class has or is using private name '{1}'.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4098,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\",\"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:n(4099,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\",\"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_method_0_of_exported_class_has_or_is_using_private_name_1:n(4100,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\",\"Public method '{0}' of exported class has or is using private name '{1}'.\"),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:n(4101,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\",\"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Method_0_of_exported_interface_has_or_is_using_private_name_1:n(4102,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\",\"Method '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:n(4103,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\",\"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:n(4104,e.DiagnosticCategory.Error,\"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\",\"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:n(4105,e.DiagnosticCategory.Error,\"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\",\"Private or protected member '{0}' cannot be accessed on a type parameter.\"),Parameter_0_of_accessor_has_or_is_using_private_name_1:n(4106,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\",\"Parameter '{0}' of accessor has or is using private name '{1}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:n(4107,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\",\"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:n(4108,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\",\"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),Type_arguments_for_0_circularly_reference_themselves:n(4109,e.DiagnosticCategory.Error,\"Type_arguments_for_0_circularly_reference_themselves_4109\",\"Type arguments for '{0}' circularly reference themselves.\"),Tuple_type_arguments_circularly_reference_themselves:n(4110,e.DiagnosticCategory.Error,\"Tuple_type_arguments_circularly_reference_themselves_4110\",\"Tuple type arguments circularly reference themselves.\"),The_current_host_does_not_support_the_0_option:n(5001,e.DiagnosticCategory.Error,\"The_current_host_does_not_support_the_0_option_5001\",\"The current host does not support the '{0}' option.\"),Cannot_find_the_common_subdirectory_path_for_the_input_files:n(5009,e.DiagnosticCategory.Error,\"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\",\"Cannot find the common subdirectory path for the input files.\"),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:n(5010,e.DiagnosticCategory.Error,\"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\",\"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),Cannot_read_file_0_Colon_1:n(5012,e.DiagnosticCategory.Error,\"Cannot_read_file_0_Colon_1_5012\",\"Cannot read file '{0}': {1}.\"),Failed_to_parse_file_0_Colon_1:n(5014,e.DiagnosticCategory.Error,\"Failed_to_parse_file_0_Colon_1_5014\",\"Failed to parse file '{0}': {1}.\"),Unknown_compiler_option_0:n(5023,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_5023\",\"Unknown compiler option '{0}'.\"),Compiler_option_0_requires_a_value_of_type_1:n(5024,e.DiagnosticCategory.Error,\"Compiler_option_0_requires_a_value_of_type_1_5024\",\"Compiler option '{0}' requires a value of type {1}.\"),Could_not_write_file_0_Colon_1:n(5033,e.DiagnosticCategory.Error,\"Could_not_write_file_0_Colon_1_5033\",\"Could not write file '{0}': {1}.\"),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:n(5042,e.DiagnosticCategory.Error,\"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\",\"Option 'project' cannot be mixed with source files on a command line.\"),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:n(5047,e.DiagnosticCategory.Error,\"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\",\"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),Option_0_cannot_be_specified_when_option_target_is_ES3:n(5048,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_target_is_ES3_5048\",\"Option '{0}' cannot be specified when option 'target' is 'ES3'.\"),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:n(5051,e.DiagnosticCategory.Error,\"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\",\"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),Option_0_cannot_be_specified_without_specifying_option_1:n(5052,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_5052\",\"Option '{0}' cannot be specified without specifying option '{1}'.\"),Option_0_cannot_be_specified_with_option_1:n(5053,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_with_option_1_5053\",\"Option '{0}' cannot be specified with option '{1}'.\"),A_tsconfig_json_file_is_already_defined_at_Colon_0:n(5054,e.DiagnosticCategory.Error,\"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\",\"A 'tsconfig.json' file is already defined at: '{0}'.\"),Cannot_write_file_0_because_it_would_overwrite_input_file:n(5055,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\",\"Cannot write file '{0}' because it would overwrite input file.\"),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:n(5056,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\",\"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:n(5057,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\",\"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),The_specified_path_does_not_exist_Colon_0:n(5058,e.DiagnosticCategory.Error,\"The_specified_path_does_not_exist_Colon_0_5058\",\"The specified path does not exist: '{0}'.\"),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:n(5059,e.DiagnosticCategory.Error,\"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\",\"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),Option_paths_cannot_be_used_without_specifying_baseUrl_option:n(5060,e.DiagnosticCategory.Error,\"Option_paths_cannot_be_used_without_specifying_baseUrl_option_5060\",\"Option 'paths' cannot be used without specifying '--baseUrl' option.\"),Pattern_0_can_have_at_most_one_Asterisk_character:n(5061,e.DiagnosticCategory.Error,\"Pattern_0_can_have_at_most_one_Asterisk_character_5061\",\"Pattern '{0}' can have at most one '*' character.\"),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:n(5062,e.DiagnosticCategory.Error,\"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\",\"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),Substitutions_for_pattern_0_should_be_an_array:n(5063,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_should_be_an_array_5063\",\"Substitutions for pattern '{0}' should be an array.\"),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:n(5064,e.DiagnosticCategory.Error,\"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\",\"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:n(5065,e.DiagnosticCategory.Error,\"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\",\"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:n(5066,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\",\"Substitutions for pattern '{0}' shouldn't be an empty array.\"),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:n(5067,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\",\"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:n(5068,e.DiagnosticCategory.Error,\"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\",\"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:n(5069,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\",\"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:n(5070,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070\",\"Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy.\"),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:n(5071,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071\",\"Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'.\"),Unknown_build_option_0:n(5072,e.DiagnosticCategory.Error,\"Unknown_build_option_0_5072\",\"Unknown build option '{0}'.\"),Build_option_0_requires_a_value_of_type_1:n(5073,e.DiagnosticCategory.Error,\"Build_option_0_requires_a_value_of_type_1_5073\",\"Build option '{0}' requires a value of type {1}.\"),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:n(5074,e.DiagnosticCategory.Error,\"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\",\"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option `--tsBuildInfoFile` is specified.\"),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:n(5075,e.DiagnosticCategory.Error,\"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\",\"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),_0_and_1_operations_cannot_be_mixed_without_parentheses:n(5076,e.DiagnosticCategory.Error,\"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\",\"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),Generates_a_sourcemap_for_each_corresponding_d_ts_file:n(6e3,e.DiagnosticCategory.Message,\"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\",\"Generates a sourcemap for each corresponding '.d.ts' file.\"),Concatenate_and_emit_output_to_single_file:n(6001,e.DiagnosticCategory.Message,\"Concatenate_and_emit_output_to_single_file_6001\",\"Concatenate and emit output to single file.\"),Generates_corresponding_d_ts_file:n(6002,e.DiagnosticCategory.Message,\"Generates_corresponding_d_ts_file_6002\",\"Generates corresponding '.d.ts' file.\"),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:n(6003,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6003\",\"Specify the location where debugger should locate map files instead of generated locations.\"),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:n(6004,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\",\"Specify the location where debugger should locate TypeScript files instead of source locations.\"),Watch_input_files:n(6005,e.DiagnosticCategory.Message,\"Watch_input_files_6005\",\"Watch input files.\"),Redirect_output_structure_to_the_directory:n(6006,e.DiagnosticCategory.Message,\"Redirect_output_structure_to_the_directory_6006\",\"Redirect output structure to the directory.\"),Do_not_erase_const_enum_declarations_in_generated_code:n(6007,e.DiagnosticCategory.Message,\"Do_not_erase_const_enum_declarations_in_generated_code_6007\",\"Do not erase const enum declarations in generated code.\"),Do_not_emit_outputs_if_any_errors_were_reported:n(6008,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_if_any_errors_were_reported_6008\",\"Do not emit outputs if any errors were reported.\"),Do_not_emit_comments_to_output:n(6009,e.DiagnosticCategory.Message,\"Do_not_emit_comments_to_output_6009\",\"Do not emit comments to output.\"),Do_not_emit_outputs:n(6010,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_6010\",\"Do not emit outputs.\"),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:n(6011,e.DiagnosticCategory.Message,\"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\",\"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),Skip_type_checking_of_declaration_files:n(6012,e.DiagnosticCategory.Message,\"Skip_type_checking_of_declaration_files_6012\",\"Skip type checking of declaration files.\"),Do_not_resolve_the_real_path_of_symlinks:n(6013,e.DiagnosticCategory.Message,\"Do_not_resolve_the_real_path_of_symlinks_6013\",\"Do not resolve the real path of symlinks.\"),Only_emit_d_ts_declaration_files:n(6014,e.DiagnosticCategory.Message,\"Only_emit_d_ts_declaration_files_6014\",\"Only emit '.d.ts' declaration files.\"),Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT:n(6015,e.DiagnosticCategory.Message,\"Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT_6015\",\"Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'.\"),Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext:n(6016,e.DiagnosticCategory.Message,\"Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext_6016\",\"Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'.\"),Print_this_message:n(6017,e.DiagnosticCategory.Message,\"Print_this_message_6017\",\"Print this message.\"),Print_the_compiler_s_version:n(6019,e.DiagnosticCategory.Message,\"Print_the_compiler_s_version_6019\",\"Print the compiler's version.\"),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:n(6020,e.DiagnosticCategory.Message,\"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\",\"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),Syntax_Colon_0:n(6023,e.DiagnosticCategory.Message,\"Syntax_Colon_0_6023\",\"Syntax: {0}\"),options:n(6024,e.DiagnosticCategory.Message,\"options_6024\",\"options\"),file:n(6025,e.DiagnosticCategory.Message,\"file_6025\",\"file\"),Examples_Colon_0:n(6026,e.DiagnosticCategory.Message,\"Examples_Colon_0_6026\",\"Examples: {0}\"),Options_Colon:n(6027,e.DiagnosticCategory.Message,\"Options_Colon_6027\",\"Options:\"),Version_0:n(6029,e.DiagnosticCategory.Message,\"Version_0_6029\",\"Version {0}\"),Insert_command_line_options_and_files_from_a_file:n(6030,e.DiagnosticCategory.Message,\"Insert_command_line_options_and_files_from_a_file_6030\",\"Insert command line options and files from a file.\"),Starting_compilation_in_watch_mode:n(6031,e.DiagnosticCategory.Message,\"Starting_compilation_in_watch_mode_6031\",\"Starting compilation in watch mode...\"),File_change_detected_Starting_incremental_compilation:n(6032,e.DiagnosticCategory.Message,\"File_change_detected_Starting_incremental_compilation_6032\",\"File change detected. Starting incremental compilation...\"),KIND:n(6034,e.DiagnosticCategory.Message,\"KIND_6034\",\"KIND\"),FILE:n(6035,e.DiagnosticCategory.Message,\"FILE_6035\",\"FILE\"),VERSION:n(6036,e.DiagnosticCategory.Message,\"VERSION_6036\",\"VERSION\"),LOCATION:n(6037,e.DiagnosticCategory.Message,\"LOCATION_6037\",\"LOCATION\"),DIRECTORY:n(6038,e.DiagnosticCategory.Message,\"DIRECTORY_6038\",\"DIRECTORY\"),STRATEGY:n(6039,e.DiagnosticCategory.Message,\"STRATEGY_6039\",\"STRATEGY\"),FILE_OR_DIRECTORY:n(6040,e.DiagnosticCategory.Message,\"FILE_OR_DIRECTORY_6040\",\"FILE OR DIRECTORY\"),Generates_corresponding_map_file:n(6043,e.DiagnosticCategory.Message,\"Generates_corresponding_map_file_6043\",\"Generates corresponding '.map' file.\"),Compiler_option_0_expects_an_argument:n(6044,e.DiagnosticCategory.Error,\"Compiler_option_0_expects_an_argument_6044\",\"Compiler option '{0}' expects an argument.\"),Unterminated_quoted_string_in_response_file_0:n(6045,e.DiagnosticCategory.Error,\"Unterminated_quoted_string_in_response_file_0_6045\",\"Unterminated quoted string in response file '{0}'.\"),Argument_for_0_option_must_be_Colon_1:n(6046,e.DiagnosticCategory.Error,\"Argument_for_0_option_must_be_Colon_1_6046\",\"Argument for '{0}' option must be: {1}.\"),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:n(6048,e.DiagnosticCategory.Error,\"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\",\"Locale must be of the form <language> or <language>-<territory>. For example '{0}' or '{1}'.\"),Unsupported_locale_0:n(6049,e.DiagnosticCategory.Error,\"Unsupported_locale_0_6049\",\"Unsupported locale '{0}'.\"),Unable_to_open_file_0:n(6050,e.DiagnosticCategory.Error,\"Unable_to_open_file_0_6050\",\"Unable to open file '{0}'.\"),Corrupted_locale_file_0:n(6051,e.DiagnosticCategory.Error,\"Corrupted_locale_file_0_6051\",\"Corrupted locale file {0}.\"),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:n(6052,e.DiagnosticCategory.Message,\"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\",\"Raise error on expressions and declarations with an implied 'any' type.\"),File_0_not_found:n(6053,e.DiagnosticCategory.Error,\"File_0_not_found_6053\",\"File '{0}' not found.\"),File_0_has_unsupported_extension_The_only_supported_extensions_are_1:n(6054,e.DiagnosticCategory.Error,\"File_0_has_unsupported_extension_The_only_supported_extensions_are_1_6054\",\"File '{0}' has unsupported extension. The only supported extensions are {1}.\"),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:n(6055,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\",\"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:n(6056,e.DiagnosticCategory.Message,\"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\",\"Do not emit declarations for code that has an '@internal' annotation.\"),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:n(6058,e.DiagnosticCategory.Message,\"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\",\"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:n(6059,e.DiagnosticCategory.Error,\"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\",\"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:n(6060,e.DiagnosticCategory.Message,\"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\",\"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),NEWLINE:n(6061,e.DiagnosticCategory.Message,\"NEWLINE_6061\",\"NEWLINE\"),Option_0_can_only_be_specified_in_tsconfig_json_file:n(6064,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_6064\",\"Option '{0}' can only be specified in 'tsconfig.json' file.\"),Enables_experimental_support_for_ES7_decorators:n(6065,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_decorators_6065\",\"Enables experimental support for ES7 decorators.\"),Enables_experimental_support_for_emitting_type_metadata_for_decorators:n(6066,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\",\"Enables experimental support for emitting type metadata for decorators.\"),Enables_experimental_support_for_ES7_async_functions:n(6068,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_async_functions_6068\",\"Enables experimental support for ES7 async functions.\"),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:n(6069,e.DiagnosticCategory.Message,\"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069\",\"Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).\"),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:n(6070,e.DiagnosticCategory.Message,\"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\",\"Initializes a TypeScript project and creates a tsconfig.json file.\"),Successfully_created_a_tsconfig_json_file:n(6071,e.DiagnosticCategory.Message,\"Successfully_created_a_tsconfig_json_file_6071\",\"Successfully created a tsconfig.json file.\"),Suppress_excess_property_checks_for_object_literals:n(6072,e.DiagnosticCategory.Message,\"Suppress_excess_property_checks_for_object_literals_6072\",\"Suppress excess property checks for object literals.\"),Stylize_errors_and_messages_using_color_and_context_experimental:n(6073,e.DiagnosticCategory.Message,\"Stylize_errors_and_messages_using_color_and_context_experimental_6073\",\"Stylize errors and messages using color and context (experimental).\"),Do_not_report_errors_on_unused_labels:n(6074,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unused_labels_6074\",\"Do not report errors on unused labels.\"),Report_error_when_not_all_code_paths_in_function_return_a_value:n(6075,e.DiagnosticCategory.Message,\"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\",\"Report error when not all code paths in function return a value.\"),Report_errors_for_fallthrough_cases_in_switch_statement:n(6076,e.DiagnosticCategory.Message,\"Report_errors_for_fallthrough_cases_in_switch_statement_6076\",\"Report errors for fallthrough cases in switch statement.\"),Do_not_report_errors_on_unreachable_code:n(6077,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unreachable_code_6077\",\"Do not report errors on unreachable code.\"),Disallow_inconsistently_cased_references_to_the_same_file:n(6078,e.DiagnosticCategory.Message,\"Disallow_inconsistently_cased_references_to_the_same_file_6078\",\"Disallow inconsistently-cased references to the same file.\"),Specify_library_files_to_be_included_in_the_compilation:n(6079,e.DiagnosticCategory.Message,\"Specify_library_files_to_be_included_in_the_compilation_6079\",\"Specify library files to be included in the compilation.\"),Specify_JSX_code_generation_Colon_preserve_react_native_or_react:n(6080,e.DiagnosticCategory.Message,\"Specify_JSX_code_generation_Colon_preserve_react_native_or_react_6080\",\"Specify JSX code generation: 'preserve', 'react-native', or 'react'.\"),File_0_has_an_unsupported_extension_so_skipping_it:n(6081,e.DiagnosticCategory.Message,\"File_0_has_an_unsupported_extension_so_skipping_it_6081\",\"File '{0}' has an unsupported extension, so skipping it.\"),Only_amd_and_system_modules_are_supported_alongside_0:n(6082,e.DiagnosticCategory.Error,\"Only_amd_and_system_modules_are_supported_alongside_0_6082\",\"Only 'amd' and 'system' modules are supported alongside --{0}.\"),Base_directory_to_resolve_non_absolute_module_names:n(6083,e.DiagnosticCategory.Message,\"Base_directory_to_resolve_non_absolute_module_names_6083\",\"Base directory to resolve non-absolute module names.\"),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:n(6084,e.DiagnosticCategory.Message,\"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\",\"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),Enable_tracing_of_the_name_resolution_process:n(6085,e.DiagnosticCategory.Message,\"Enable_tracing_of_the_name_resolution_process_6085\",\"Enable tracing of the name resolution process.\"),Resolving_module_0_from_1:n(6086,e.DiagnosticCategory.Message,\"Resolving_module_0_from_1_6086\",\"======== Resolving module '{0}' from '{1}'. ========\"),Explicitly_specified_module_resolution_kind_Colon_0:n(6087,e.DiagnosticCategory.Message,\"Explicitly_specified_module_resolution_kind_Colon_0_6087\",\"Explicitly specified module resolution kind: '{0}'.\"),Module_resolution_kind_is_not_specified_using_0:n(6088,e.DiagnosticCategory.Message,\"Module_resolution_kind_is_not_specified_using_0_6088\",\"Module resolution kind is not specified, using '{0}'.\"),Module_name_0_was_successfully_resolved_to_1:n(6089,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_6089\",\"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),Module_name_0_was_not_resolved:n(6090,e.DiagnosticCategory.Message,\"Module_name_0_was_not_resolved_6090\",\"======== Module name '{0}' was not resolved. ========\"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:n(6091,e.DiagnosticCategory.Message,\"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\",\"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),Module_name_0_matched_pattern_1:n(6092,e.DiagnosticCategory.Message,\"Module_name_0_matched_pattern_1_6092\",\"Module name '{0}', matched pattern '{1}'.\"),Trying_substitution_0_candidate_module_location_Colon_1:n(6093,e.DiagnosticCategory.Message,\"Trying_substitution_0_candidate_module_location_Colon_1_6093\",\"Trying substitution '{0}', candidate module location: '{1}'.\"),Resolving_module_name_0_relative_to_base_url_1_2:n(6094,e.DiagnosticCategory.Message,\"Resolving_module_name_0_relative_to_base_url_1_2_6094\",\"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:n(6095,e.DiagnosticCategory.Message,\"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095\",\"Loading module as file / folder, candidate module location '{0}', target file type '{1}'.\"),File_0_does_not_exist:n(6096,e.DiagnosticCategory.Message,\"File_0_does_not_exist_6096\",\"File '{0}' does not exist.\"),File_0_exist_use_it_as_a_name_resolution_result:n(6097,e.DiagnosticCategory.Message,\"File_0_exist_use_it_as_a_name_resolution_result_6097\",\"File '{0}' exist - use it as a name resolution result.\"),Loading_module_0_from_node_modules_folder_target_file_type_1:n(6098,e.DiagnosticCategory.Message,\"Loading_module_0_from_node_modules_folder_target_file_type_1_6098\",\"Loading module '{0}' from 'node_modules' folder, target file type '{1}'.\"),Found_package_json_at_0:n(6099,e.DiagnosticCategory.Message,\"Found_package_json_at_0_6099\",\"Found 'package.json' at '{0}'.\"),package_json_does_not_have_a_0_field:n(6100,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_0_field_6100\",\"'package.json' does not have a '{0}' field.\"),package_json_has_0_field_1_that_references_2:n(6101,e.DiagnosticCategory.Message,\"package_json_has_0_field_1_that_references_2_6101\",\"'package.json' has '{0}' field '{1}' that references '{2}'.\"),Allow_javascript_files_to_be_compiled:n(6102,e.DiagnosticCategory.Message,\"Allow_javascript_files_to_be_compiled_6102\",\"Allow javascript files to be compiled.\"),Option_0_should_have_array_of_strings_as_a_value:n(6103,e.DiagnosticCategory.Error,\"Option_0_should_have_array_of_strings_as_a_value_6103\",\"Option '{0}' should have array of strings as a value.\"),Checking_if_0_is_the_longest_matching_prefix_for_1_2:n(6104,e.DiagnosticCategory.Message,\"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\",\"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),Expected_type_of_0_field_in_package_json_to_be_1_got_2:n(6105,e.DiagnosticCategory.Message,\"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\",\"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:n(6106,e.DiagnosticCategory.Message,\"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\",\"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:n(6107,e.DiagnosticCategory.Message,\"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\",\"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),Longest_matching_prefix_for_0_is_1:n(6108,e.DiagnosticCategory.Message,\"Longest_matching_prefix_for_0_is_1_6108\",\"Longest matching prefix for '{0}' is '{1}'.\"),Loading_0_from_the_root_dir_1_candidate_location_2:n(6109,e.DiagnosticCategory.Message,\"Loading_0_from_the_root_dir_1_candidate_location_2_6109\",\"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),Trying_other_entries_in_rootDirs:n(6110,e.DiagnosticCategory.Message,\"Trying_other_entries_in_rootDirs_6110\",\"Trying other entries in 'rootDirs'.\"),Module_resolution_using_rootDirs_has_failed:n(6111,e.DiagnosticCategory.Message,\"Module_resolution_using_rootDirs_has_failed_6111\",\"Module resolution using 'rootDirs' has failed.\"),Do_not_emit_use_strict_directives_in_module_output:n(6112,e.DiagnosticCategory.Message,\"Do_not_emit_use_strict_directives_in_module_output_6112\",\"Do not emit 'use strict' directives in module output.\"),Enable_strict_null_checks:n(6113,e.DiagnosticCategory.Message,\"Enable_strict_null_checks_6113\",\"Enable strict null checks.\"),Unknown_option_excludes_Did_you_mean_exclude:n(6114,e.DiagnosticCategory.Error,\"Unknown_option_excludes_Did_you_mean_exclude_6114\",\"Unknown option 'excludes'. Did you mean 'exclude'?\"),Raise_error_on_this_expressions_with_an_implied_any_type:n(6115,e.DiagnosticCategory.Message,\"Raise_error_on_this_expressions_with_an_implied_any_type_6115\",\"Raise error on 'this' expressions with an implied 'any' type.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:n(6116,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),Resolving_using_primary_search_paths:n(6117,e.DiagnosticCategory.Message,\"Resolving_using_primary_search_paths_6117\",\"Resolving using primary search paths...\"),Resolving_from_node_modules_folder:n(6118,e.DiagnosticCategory.Message,\"Resolving_from_node_modules_folder_6118\",\"Resolving from node_modules folder...\"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:n(6119,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\",\"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),Type_reference_directive_0_was_not_resolved:n(6120,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_not_resolved_6120\",\"======== Type reference directive '{0}' was not resolved. ========\"),Resolving_with_primary_search_path_0:n(6121,e.DiagnosticCategory.Message,\"Resolving_with_primary_search_path_0_6121\",\"Resolving with primary search path '{0}'.\"),Root_directory_cannot_be_determined_skipping_primary_search_paths:n(6122,e.DiagnosticCategory.Message,\"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\",\"Root directory cannot be determined, skipping primary search paths.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:n(6123,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),Type_declaration_files_to_be_included_in_compilation:n(6124,e.DiagnosticCategory.Message,\"Type_declaration_files_to_be_included_in_compilation_6124\",\"Type declaration files to be included in compilation.\"),Looking_up_in_node_modules_folder_initial_location_0:n(6125,e.DiagnosticCategory.Message,\"Looking_up_in_node_modules_folder_initial_location_0_6125\",\"Looking up in 'node_modules' folder, initial location '{0}'.\"),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:n(6126,e.DiagnosticCategory.Message,\"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\",\"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:n(6127,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\",\"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:n(6128,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\",\"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),Resolving_real_path_for_0_result_1:n(6130,e.DiagnosticCategory.Message,\"Resolving_real_path_for_0_result_1_6130\",\"Resolving real path for '{0}', result '{1}'.\"),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:n(6131,e.DiagnosticCategory.Error,\"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\",\"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),File_name_0_has_a_1_extension_stripping_it:n(6132,e.DiagnosticCategory.Message,\"File_name_0_has_a_1_extension_stripping_it_6132\",\"File name '{0}' has a '{1}' extension - stripping it.\"),_0_is_declared_but_its_value_is_never_read:n(6133,e.DiagnosticCategory.Error,\"_0_is_declared_but_its_value_is_never_read_6133\",\"'{0}' is declared but its value is never read.\",!0),Report_errors_on_unused_locals:n(6134,e.DiagnosticCategory.Message,\"Report_errors_on_unused_locals_6134\",\"Report errors on unused locals.\"),Report_errors_on_unused_parameters:n(6135,e.DiagnosticCategory.Message,\"Report_errors_on_unused_parameters_6135\",\"Report errors on unused parameters.\"),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:n(6136,e.DiagnosticCategory.Message,\"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\",\"The maximum dependency depth to search under node_modules and load JavaScript files.\"),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:n(6137,e.DiagnosticCategory.Error,\"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\",\"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),Property_0_is_declared_but_its_value_is_never_read:n(6138,e.DiagnosticCategory.Error,\"Property_0_is_declared_but_its_value_is_never_read_6138\",\"Property '{0}' is declared but its value is never read.\",!0),Import_emit_helpers_from_tslib:n(6139,e.DiagnosticCategory.Message,\"Import_emit_helpers_from_tslib_6139\",\"Import emit helpers from 'tslib'.\"),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:n(6140,e.DiagnosticCategory.Error,\"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\",\"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:n(6141,e.DiagnosticCategory.Message,\"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\",'Parse in strict mode and emit \"use strict\" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:n(6142,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\",\"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:n(6144,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\",\"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:n(6145,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145\",\"Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified.\"),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:n(6146,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\",\"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),Resolution_for_module_0_was_found_in_cache_from_location_1:n(6147,e.DiagnosticCategory.Message,\"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\",\"Resolution for module '{0}' was found in cache from location '{1}'.\"),Directory_0_does_not_exist_skipping_all_lookups_in_it:n(6148,e.DiagnosticCategory.Message,\"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\",\"Directory '{0}' does not exist, skipping all lookups in it.\"),Show_diagnostic_information:n(6149,e.DiagnosticCategory.Message,\"Show_diagnostic_information_6149\",\"Show diagnostic information.\"),Show_verbose_diagnostic_information:n(6150,e.DiagnosticCategory.Message,\"Show_verbose_diagnostic_information_6150\",\"Show verbose diagnostic information.\"),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:n(6151,e.DiagnosticCategory.Message,\"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\",\"Emit a single file with source maps instead of having a separate file.\"),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:n(6152,e.DiagnosticCategory.Message,\"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\",\"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:n(6153,e.DiagnosticCategory.Message,\"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\",\"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),Print_names_of_generated_files_part_of_the_compilation:n(6154,e.DiagnosticCategory.Message,\"Print_names_of_generated_files_part_of_the_compilation_6154\",\"Print names of generated files part of the compilation.\"),Print_names_of_files_part_of_the_compilation:n(6155,e.DiagnosticCategory.Message,\"Print_names_of_files_part_of_the_compilation_6155\",\"Print names of files part of the compilation.\"),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:n(6156,e.DiagnosticCategory.Message,\"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\",\"The locale used when displaying messages to the user (e.g. 'en-us')\"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:n(6157,e.DiagnosticCategory.Message,\"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\",\"Do not generate custom helper functions like '__extends' in compiled output.\"),Do_not_include_the_default_library_file_lib_d_ts:n(6158,e.DiagnosticCategory.Message,\"Do_not_include_the_default_library_file_lib_d_ts_6158\",\"Do not include the default library file (lib.d.ts).\"),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:n(6159,e.DiagnosticCategory.Message,\"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\",\"Do not add triple-slash references or imported modules to the list of compiled files.\"),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:n(6160,e.DiagnosticCategory.Message,\"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\",\"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),List_of_folders_to_include_type_definitions_from:n(6161,e.DiagnosticCategory.Message,\"List_of_folders_to_include_type_definitions_from_6161\",\"List of folders to include type definitions from.\"),Disable_size_limitations_on_JavaScript_projects:n(6162,e.DiagnosticCategory.Message,\"Disable_size_limitations_on_JavaScript_projects_6162\",\"Disable size limitations on JavaScript projects.\"),The_character_set_of_the_input_files:n(6163,e.DiagnosticCategory.Message,\"The_character_set_of_the_input_files_6163\",\"The character set of the input files.\"),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:n(6164,e.DiagnosticCategory.Message,\"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6164\",\"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),Do_not_truncate_error_messages:n(6165,e.DiagnosticCategory.Message,\"Do_not_truncate_error_messages_6165\",\"Do not truncate error messages.\"),Output_directory_for_generated_declaration_files:n(6166,e.DiagnosticCategory.Message,\"Output_directory_for_generated_declaration_files_6166\",\"Output directory for generated declaration files.\"),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:n(6167,e.DiagnosticCategory.Message,\"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\",\"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:n(6168,e.DiagnosticCategory.Message,\"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\",\"List of root folders whose combined content represents the structure of the project at runtime.\"),Show_all_compiler_options:n(6169,e.DiagnosticCategory.Message,\"Show_all_compiler_options_6169\",\"Show all compiler options.\"),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:n(6170,e.DiagnosticCategory.Message,\"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\",\"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),Command_line_Options:n(6171,e.DiagnosticCategory.Message,\"Command_line_Options_6171\",\"Command-line Options\"),Basic_Options:n(6172,e.DiagnosticCategory.Message,\"Basic_Options_6172\",\"Basic Options\"),Strict_Type_Checking_Options:n(6173,e.DiagnosticCategory.Message,\"Strict_Type_Checking_Options_6173\",\"Strict Type-Checking Options\"),Module_Resolution_Options:n(6174,e.DiagnosticCategory.Message,\"Module_Resolution_Options_6174\",\"Module Resolution Options\"),Source_Map_Options:n(6175,e.DiagnosticCategory.Message,\"Source_Map_Options_6175\",\"Source Map Options\"),Additional_Checks:n(6176,e.DiagnosticCategory.Message,\"Additional_Checks_6176\",\"Additional Checks\"),Experimental_Options:n(6177,e.DiagnosticCategory.Message,\"Experimental_Options_6177\",\"Experimental Options\"),Advanced_Options:n(6178,e.DiagnosticCategory.Message,\"Advanced_Options_6178\",\"Advanced Options\"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:n(6179,e.DiagnosticCategory.Message,\"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179\",\"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.\"),Enable_all_strict_type_checking_options:n(6180,e.DiagnosticCategory.Message,\"Enable_all_strict_type_checking_options_6180\",\"Enable all strict type-checking options.\"),List_of_language_service_plugins:n(6181,e.DiagnosticCategory.Message,\"List_of_language_service_plugins_6181\",\"List of language service plugins.\"),Scoped_package_detected_looking_in_0:n(6182,e.DiagnosticCategory.Message,\"Scoped_package_detected_looking_in_0_6182\",\"Scoped package detected, looking in '{0}'\"),Reusing_resolution_of_module_0_to_file_1_from_old_program:n(6183,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_to_file_1_from_old_program_6183\",\"Reusing resolution of module '{0}' to file '{1}' from old program.\"),Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program:n(6184,e.DiagnosticCategory.Message,\"Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program_6184\",\"Reusing module resolutions originating in '{0}' since resolutions are unchanged from old program.\"),Disable_strict_checking_of_generic_signatures_in_function_types:n(6185,e.DiagnosticCategory.Message,\"Disable_strict_checking_of_generic_signatures_in_function_types_6185\",\"Disable strict checking of generic signatures in function types.\"),Enable_strict_checking_of_function_types:n(6186,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_function_types_6186\",\"Enable strict checking of function types.\"),Enable_strict_checking_of_property_initialization_in_classes:n(6187,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_property_initialization_in_classes_6187\",\"Enable strict checking of property initialization in classes.\"),Numeric_separators_are_not_allowed_here:n(6188,e.DiagnosticCategory.Error,\"Numeric_separators_are_not_allowed_here_6188\",\"Numeric separators are not allowed here.\"),Multiple_consecutive_numeric_separators_are_not_permitted:n(6189,e.DiagnosticCategory.Error,\"Multiple_consecutive_numeric_separators_are_not_permitted_6189\",\"Multiple consecutive numeric separators are not permitted.\"),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:n(6191,e.DiagnosticCategory.Message,\"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\",\"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),All_imports_in_import_declaration_are_unused:n(6192,e.DiagnosticCategory.Error,\"All_imports_in_import_declaration_are_unused_6192\",\"All imports in import declaration are unused.\",!0),Found_1_error_Watching_for_file_changes:n(6193,e.DiagnosticCategory.Message,\"Found_1_error_Watching_for_file_changes_6193\",\"Found 1 error. Watching for file changes.\"),Found_0_errors_Watching_for_file_changes:n(6194,e.DiagnosticCategory.Message,\"Found_0_errors_Watching_for_file_changes_6194\",\"Found {0} errors. Watching for file changes.\"),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:n(6195,e.DiagnosticCategory.Message,\"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\",\"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),_0_is_declared_but_never_used:n(6196,e.DiagnosticCategory.Error,\"_0_is_declared_but_never_used_6196\",\"'{0}' is declared but never used.\",!0),Include_modules_imported_with_json_extension:n(6197,e.DiagnosticCategory.Message,\"Include_modules_imported_with_json_extension_6197\",\"Include modules imported with '.json' extension\"),All_destructured_elements_are_unused:n(6198,e.DiagnosticCategory.Error,\"All_destructured_elements_are_unused_6198\",\"All destructured elements are unused.\",!0),All_variables_are_unused:n(6199,e.DiagnosticCategory.Error,\"All_variables_are_unused_6199\",\"All variables are unused.\",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:n(6200,e.DiagnosticCategory.Error,\"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\",\"Definitions of the following identifiers conflict with those in another file: {0}\"),Conflicts_are_in_this_file:n(6201,e.DiagnosticCategory.Message,\"Conflicts_are_in_this_file_6201\",\"Conflicts are in this file.\"),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:n(6202,e.DiagnosticCategory.Error,\"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\",\"Project references may not form a circular graph. Cycle detected: {0}\"),_0_was_also_declared_here:n(6203,e.DiagnosticCategory.Message,\"_0_was_also_declared_here_6203\",\"'{0}' was also declared here.\"),and_here:n(6204,e.DiagnosticCategory.Message,\"and_here_6204\",\"and here.\"),All_type_parameters_are_unused:n(6205,e.DiagnosticCategory.Error,\"All_type_parameters_are_unused_6205\",\"All type parameters are unused\"),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:n(6206,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\",\"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:n(6207,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\",\"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:n(6208,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\",\"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:n(6209,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\",\"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),An_argument_for_0_was_not_provided:n(6210,e.DiagnosticCategory.Message,\"An_argument_for_0_was_not_provided_6210\",\"An argument for '{0}' was not provided.\"),An_argument_matching_this_binding_pattern_was_not_provided:n(6211,e.DiagnosticCategory.Message,\"An_argument_matching_this_binding_pattern_was_not_provided_6211\",\"An argument matching this binding pattern was not provided.\"),Did_you_mean_to_call_this_expression:n(6212,e.DiagnosticCategory.Message,\"Did_you_mean_to_call_this_expression_6212\",\"Did you mean to call this expression?\"),Did_you_mean_to_use_new_with_this_expression:n(6213,e.DiagnosticCategory.Message,\"Did_you_mean_to_use_new_with_this_expression_6213\",\"Did you mean to use 'new' with this expression?\"),Enable_strict_bind_call_and_apply_methods_on_functions:n(6214,e.DiagnosticCategory.Message,\"Enable_strict_bind_call_and_apply_methods_on_functions_6214\",\"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),Using_compiler_options_of_project_reference_redirect_0:n(6215,e.DiagnosticCategory.Message,\"Using_compiler_options_of_project_reference_redirect_0_6215\",\"Using compiler options of project reference redirect '{0}'.\"),Found_1_error:n(6216,e.DiagnosticCategory.Message,\"Found_1_error_6216\",\"Found 1 error.\"),Found_0_errors:n(6217,e.DiagnosticCategory.Message,\"Found_0_errors_6217\",\"Found {0} errors.\"),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:n(6218,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\",\"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:n(6219,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\",\"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),package_json_had_a_falsy_0_field:n(6220,e.DiagnosticCategory.Message,\"package_json_had_a_falsy_0_field_6220\",\"'package.json' had a falsy '{0}' field.\"),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:n(6221,e.DiagnosticCategory.Message,\"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\",\"Disable use of source files instead of declaration files from referenced projects.\"),Emit_class_fields_with_Define_instead_of_Set:n(6222,e.DiagnosticCategory.Message,\"Emit_class_fields_with_Define_instead_of_Set_6222\",\"Emit class fields with Define instead of Set.\"),Generates_a_CPU_profile:n(6223,e.DiagnosticCategory.Message,\"Generates_a_CPU_profile_6223\",\"Generates a CPU profile.\"),Projects_to_reference:n(6300,e.DiagnosticCategory.Message,\"Projects_to_reference_6300\",\"Projects to reference\"),Enable_project_compilation:n(6302,e.DiagnosticCategory.Message,\"Enable_project_compilation_6302\",\"Enable project compilation\"),Composite_projects_may_not_disable_declaration_emit:n(6304,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_declaration_emit_6304\",\"Composite projects may not disable declaration emit.\"),Output_file_0_has_not_been_built_from_source_file_1:n(6305,e.DiagnosticCategory.Error,\"Output_file_0_has_not_been_built_from_source_file_1_6305\",\"Output file '{0}' has not been built from source file '{1}'.\"),Referenced_project_0_must_have_setting_composite_Colon_true:n(6306,e.DiagnosticCategory.Error,\"Referenced_project_0_must_have_setting_composite_Colon_true_6306\",\"Referenced project '{0}' must have setting \\\"composite\\\": true.\"),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:n(6307,e.DiagnosticCategory.Error,\"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\",\"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:n(6308,e.DiagnosticCategory.Error,\"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308\",\"Cannot prepend project '{0}' because it does not have 'outFile' set\"),Output_file_0_from_project_1_does_not_exist:n(6309,e.DiagnosticCategory.Error,\"Output_file_0_from_project_1_does_not_exist_6309\",\"Output file '{0}' from project '{1}' does not exist\"),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:n(6350,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350\",\"Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'\"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:n(6351,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351\",\"Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'\"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:n(6352,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\",\"Project '{0}' is out of date because output file '{1}' does not exist\"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:n(6353,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\",\"Project '{0}' is out of date because its dependency '{1}' is out of date\"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:n(6354,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\",\"Project '{0}' is up to date with .d.ts files from its dependencies\"),Projects_in_this_build_Colon_0:n(6355,e.DiagnosticCategory.Message,\"Projects_in_this_build_Colon_0_6355\",\"Projects in this build: {0}\"),A_non_dry_build_would_delete_the_following_files_Colon_0:n(6356,e.DiagnosticCategory.Message,\"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\",\"A non-dry build would delete the following files: {0}\"),A_non_dry_build_would_build_project_0:n(6357,e.DiagnosticCategory.Message,\"A_non_dry_build_would_build_project_0_6357\",\"A non-dry build would build project '{0}'\"),Building_project_0:n(6358,e.DiagnosticCategory.Message,\"Building_project_0_6358\",\"Building project '{0}'...\"),Updating_output_timestamps_of_project_0:n(6359,e.DiagnosticCategory.Message,\"Updating_output_timestamps_of_project_0_6359\",\"Updating output timestamps of project '{0}'...\"),delete_this_Project_0_is_up_to_date_because_it_was_previously_built:n(6360,e.DiagnosticCategory.Message,\"delete_this_Project_0_is_up_to_date_because_it_was_previously_built_6360\",\"delete this - Project '{0}' is up to date because it was previously built\"),Project_0_is_up_to_date:n(6361,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_6361\",\"Project '{0}' is up to date\"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:n(6362,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\",\"Skipping build of project '{0}' because its dependency '{1}' has errors\"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:n(6363,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\",\"Project '{0}' can't be built because its dependency '{1}' has errors\"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:n(6364,e.DiagnosticCategory.Message,\"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\",\"Build one or more projects and their dependencies, if out of date\"),Delete_the_outputs_of_all_projects:n(6365,e.DiagnosticCategory.Message,\"Delete_the_outputs_of_all_projects_6365\",\"Delete the outputs of all projects\"),Enable_verbose_logging:n(6366,e.DiagnosticCategory.Message,\"Enable_verbose_logging_6366\",\"Enable verbose logging\"),Show_what_would_be_built_or_deleted_if_specified_with_clean:n(6367,e.DiagnosticCategory.Message,\"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\",\"Show what would be built (or deleted, if specified with '--clean')\"),Build_all_projects_including_those_that_appear_to_be_up_to_date:n(6368,e.DiagnosticCategory.Message,\"Build_all_projects_including_those_that_appear_to_be_up_to_date_6368\",\"Build all projects, including those that appear to be up to date\"),Option_build_must_be_the_first_command_line_argument:n(6369,e.DiagnosticCategory.Error,\"Option_build_must_be_the_first_command_line_argument_6369\",\"Option '--build' must be the first command line argument.\"),Options_0_and_1_cannot_be_combined:n(6370,e.DiagnosticCategory.Error,\"Options_0_and_1_cannot_be_combined_6370\",\"Options '{0}' and '{1}' cannot be combined.\"),Updating_unchanged_output_timestamps_of_project_0:n(6371,e.DiagnosticCategory.Message,\"Updating_unchanged_output_timestamps_of_project_0_6371\",\"Updating unchanged output timestamps of project '{0}'...\"),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:n(6372,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372\",\"Project '{0}' is out of date because output of its dependency '{1}' has changed\"),Updating_output_of_project_0:n(6373,e.DiagnosticCategory.Message,\"Updating_output_of_project_0_6373\",\"Updating output of project '{0}'...\"),A_non_dry_build_would_update_timestamps_for_output_of_project_0:n(6374,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\",\"A non-dry build would update timestamps for output of project '{0}'\"),A_non_dry_build_would_update_output_of_project_0:n(6375,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_output_of_project_0_6375\",\"A non-dry build would update output of project '{0}'\"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:n(6376,e.DiagnosticCategory.Message,\"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376\",\"Cannot update output of project '{0}' because there was error reading file '{1}'\"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:n(6377,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\",\"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),Enable_incremental_compilation:n(6378,e.DiagnosticCategory.Message,\"Enable_incremental_compilation_6378\",\"Enable incremental compilation\"),Composite_projects_may_not_disable_incremental_compilation:n(6379,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_incremental_compilation_6379\",\"Composite projects may not disable incremental compilation.\"),Specify_file_to_store_incremental_compilation_information:n(6380,e.DiagnosticCategory.Message,\"Specify_file_to_store_incremental_compilation_information_6380\",\"Specify file to store incremental compilation information\"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:n(6381,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\",\"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:n(6382,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\",\"Skipping build of project '{0}' because its dependency '{1}' was not built\"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:n(6383,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\",\"Project '{0}' can't be built because its dependency '{1}' was not built\"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:n(6500,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\",\"The expected type comes from property '{0}' which is declared here on type '{1}'\"),The_expected_type_comes_from_this_index_signature:n(6501,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_this_index_signature_6501\",\"The expected type comes from this index signature.\"),The_expected_type_comes_from_the_return_type_of_this_signature:n(6502,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_the_return_type_of_this_signature_6502\",\"The expected type comes from the return type of this signature.\"),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:n(6503,e.DiagnosticCategory.Message,\"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\",\"Print names of files that are part of the compilation and then stop processing.\"),Variable_0_implicitly_has_an_1_type:n(7005,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_an_1_type_7005\",\"Variable '{0}' implicitly has an '{1}' type.\"),Parameter_0_implicitly_has_an_1_type:n(7006,e.DiagnosticCategory.Error,\"Parameter_0_implicitly_has_an_1_type_7006\",\"Parameter '{0}' implicitly has an '{1}' type.\"),Member_0_implicitly_has_an_1_type:n(7008,e.DiagnosticCategory.Error,\"Member_0_implicitly_has_an_1_type_7008\",\"Member '{0}' implicitly has an '{1}' type.\"),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:n(7009,e.DiagnosticCategory.Error,\"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\",\"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:n(7010,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:n(7011,e.DiagnosticCategory.Error,\"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\",\"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:n(7013,e.DiagnosticCategory.Error,\"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\",\"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:n(7014,e.DiagnosticCategory.Error,\"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\",\"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:n(7015,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\",\"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:n(7016,e.DiagnosticCategory.Error,\"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\",\"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:n(7017,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\",\"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),Object_literal_s_property_0_implicitly_has_an_1_type:n(7018,e.DiagnosticCategory.Error,\"Object_literal_s_property_0_implicitly_has_an_1_type_7018\",\"Object literal's property '{0}' implicitly has an '{1}' type.\"),Rest_parameter_0_implicitly_has_an_any_type:n(7019,e.DiagnosticCategory.Error,\"Rest_parameter_0_implicitly_has_an_any_type_7019\",\"Rest parameter '{0}' implicitly has an 'any[]' type.\"),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:n(7020,e.DiagnosticCategory.Error,\"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\",\"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:n(7022,e.DiagnosticCategory.Error,\"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\",\"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:n(7023,e.DiagnosticCategory.Error,\"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\",\"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:n(7024,e.DiagnosticCategory.Error,\"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\",\"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:n(7025,e.DiagnosticCategory.Error,\"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025\",\"Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation.\"),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:n(7026,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\",\"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),Unreachable_code_detected:n(7027,e.DiagnosticCategory.Error,\"Unreachable_code_detected_7027\",\"Unreachable code detected.\",!0),Unused_label:n(7028,e.DiagnosticCategory.Error,\"Unused_label_7028\",\"Unused label.\",!0),Fallthrough_case_in_switch:n(7029,e.DiagnosticCategory.Error,\"Fallthrough_case_in_switch_7029\",\"Fallthrough case in switch.\"),Not_all_code_paths_return_a_value:n(7030,e.DiagnosticCategory.Error,\"Not_all_code_paths_return_a_value_7030\",\"Not all code paths return a value.\"),Binding_element_0_implicitly_has_an_1_type:n(7031,e.DiagnosticCategory.Error,\"Binding_element_0_implicitly_has_an_1_type_7031\",\"Binding element '{0}' implicitly has an '{1}' type.\"),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:n(7032,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\",\"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:n(7033,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\",\"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:n(7034,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\",\"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:n(7035,e.DiagnosticCategory.Error,\"Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_mod_7035\",\"Try `npm install @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:n(7036,e.DiagnosticCategory.Error,\"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\",\"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:n(7037,e.DiagnosticCategory.Message,\"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\",\"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:n(7038,e.DiagnosticCategory.Message,\"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\",\"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),Mapped_object_type_implicitly_has_an_any_template_type:n(7039,e.DiagnosticCategory.Error,\"Mapped_object_type_implicitly_has_an_any_template_type_7039\",\"Mapped object type implicitly has an 'any' template type.\"),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:n(7040,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\",\"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}`\"),The_containing_arrow_function_captures_the_global_value_of_this:n(7041,e.DiagnosticCategory.Error,\"The_containing_arrow_function_captures_the_global_value_of_this_7041\",\"The containing arrow function captures the global value of 'this'.\"),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:n(7042,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\",\"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7043,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\",\"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7044,e.DiagnosticCategory.Suggestion,\"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\",\"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:n(7045,e.DiagnosticCategory.Suggestion,\"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\",\"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:n(7046,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\",\"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:n(7047,e.DiagnosticCategory.Suggestion,\"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\",\"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:n(7048,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\",\"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:n(7049,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\",\"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:n(7050,e.DiagnosticCategory.Suggestion,\"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\",\"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:n(7051,e.DiagnosticCategory.Error,\"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\",\"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:n(7052,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\",\"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}' ?\"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:n(7053,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\",\"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:n(7054,e.DiagnosticCategory.Error,\"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\",\"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:n(7055,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),You_cannot_rename_this_element:n(8e3,e.DiagnosticCategory.Error,\"You_cannot_rename_this_element_8000\",\"You cannot rename this element.\"),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:n(8001,e.DiagnosticCategory.Error,\"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\",\"You cannot rename elements that are defined in the standard TypeScript library.\"),import_can_only_be_used_in_a_ts_file:n(8002,e.DiagnosticCategory.Error,\"import_can_only_be_used_in_a_ts_file_8002\",\"'import ... =' can only be used in a .ts file.\"),export_can_only_be_used_in_a_ts_file:n(8003,e.DiagnosticCategory.Error,\"export_can_only_be_used_in_a_ts_file_8003\",\"'export=' can only be used in a .ts file.\"),type_parameter_declarations_can_only_be_used_in_a_ts_file:n(8004,e.DiagnosticCategory.Error,\"type_parameter_declarations_can_only_be_used_in_a_ts_file_8004\",\"'type parameter declarations' can only be used in a .ts file.\"),implements_clauses_can_only_be_used_in_a_ts_file:n(8005,e.DiagnosticCategory.Error,\"implements_clauses_can_only_be_used_in_a_ts_file_8005\",\"'implements clauses' can only be used in a .ts file.\"),interface_declarations_can_only_be_used_in_a_ts_file:n(8006,e.DiagnosticCategory.Error,\"interface_declarations_can_only_be_used_in_a_ts_file_8006\",\"'interface declarations' can only be used in a .ts file.\"),module_declarations_can_only_be_used_in_a_ts_file:n(8007,e.DiagnosticCategory.Error,\"module_declarations_can_only_be_used_in_a_ts_file_8007\",\"'module declarations' can only be used in a .ts file.\"),type_aliases_can_only_be_used_in_a_ts_file:n(8008,e.DiagnosticCategory.Error,\"type_aliases_can_only_be_used_in_a_ts_file_8008\",\"'type aliases' can only be used in a .ts file.\"),_0_can_only_be_used_in_a_ts_file:n(8009,e.DiagnosticCategory.Error,\"_0_can_only_be_used_in_a_ts_file_8009\",\"'{0}' can only be used in a .ts file.\"),types_can_only_be_used_in_a_ts_file:n(8010,e.DiagnosticCategory.Error,\"types_can_only_be_used_in_a_ts_file_8010\",\"'types' can only be used in a .ts file.\"),type_arguments_can_only_be_used_in_a_ts_file:n(8011,e.DiagnosticCategory.Error,\"type_arguments_can_only_be_used_in_a_ts_file_8011\",\"'type arguments' can only be used in a .ts file.\"),parameter_modifiers_can_only_be_used_in_a_ts_file:n(8012,e.DiagnosticCategory.Error,\"parameter_modifiers_can_only_be_used_in_a_ts_file_8012\",\"'parameter modifiers' can only be used in a .ts file.\"),non_null_assertions_can_only_be_used_in_a_ts_file:n(8013,e.DiagnosticCategory.Error,\"non_null_assertions_can_only_be_used_in_a_ts_file_8013\",\"'non-null assertions' can only be used in a .ts file.\"),enum_declarations_can_only_be_used_in_a_ts_file:n(8015,e.DiagnosticCategory.Error,\"enum_declarations_can_only_be_used_in_a_ts_file_8015\",\"'enum declarations' can only be used in a .ts file.\"),type_assertion_expressions_can_only_be_used_in_a_ts_file:n(8016,e.DiagnosticCategory.Error,\"type_assertion_expressions_can_only_be_used_in_a_ts_file_8016\",\"'type assertion expressions' can only be used in a .ts file.\"),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:n(8017,e.DiagnosticCategory.Error,\"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017\",\"Octal literal types must use ES2015 syntax. Use the syntax '{0}'.\"),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:n(8018,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018\",\"Octal literals are not allowed in enums members initializer. Use the syntax '{0}'.\"),Report_errors_in_js_files:n(8019,e.DiagnosticCategory.Message,\"Report_errors_in_js_files_8019\",\"Report errors in .js files.\"),JSDoc_types_can_only_be_used_inside_documentation_comments:n(8020,e.DiagnosticCategory.Error,\"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\",\"JSDoc types can only be used inside documentation comments.\"),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:n(8021,e.DiagnosticCategory.Error,\"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\",\"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),JSDoc_0_is_not_attached_to_a_class:n(8022,e.DiagnosticCategory.Error,\"JSDoc_0_is_not_attached_to_a_class_8022\",\"JSDoc '@{0}' is not attached to a class.\"),JSDoc_0_1_does_not_match_the_extends_2_clause:n(8023,e.DiagnosticCategory.Error,\"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\",\"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:n(8024,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:n(8025,e.DiagnosticCategory.Error,\"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\",\"Class declarations cannot have more than one `@augments` or `@extends` tag.\"),Expected_0_type_arguments_provide_these_with_an_extends_tag:n(8026,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\",\"Expected {0} type arguments; provide these with an '@extends' tag.\"),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:n(8027,e.DiagnosticCategory.Error,\"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\",\"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:n(8028,e.DiagnosticCategory.Error,\"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\",\"JSDoc '...' may only appear in the last parameter of a signature.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:n(8029,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),The_type_of_a_function_declaration_must_match_the_function_s_signature:n(8030,e.DiagnosticCategory.Error,\"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\",\"The type of a function declaration must match the function's signature.\"),You_cannot_rename_a_module_via_a_global_import:n(8031,e.DiagnosticCategory.Error,\"You_cannot_rename_a_module_via_a_global_import_8031\",\"You cannot rename a module via a global import.\"),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:n(8032,e.DiagnosticCategory.Error,\"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\",\"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clause:n(9002,e.DiagnosticCategory.Error,\"Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_clas_9002\",\"Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clause.\"),class_expressions_are_not_currently_supported:n(9003,e.DiagnosticCategory.Error,\"class_expressions_are_not_currently_supported_9003\",\"'class' expressions are not currently supported.\"),Language_service_is_disabled:n(9004,e.DiagnosticCategory.Error,\"Language_service_is_disabled_9004\",\"Language service is disabled.\"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:n(9005,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\",\"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:n(9006,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\",\"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),JSX_attributes_must_only_be_assigned_a_non_empty_expression:n(17e3,e.DiagnosticCategory.Error,\"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\",\"JSX attributes must only be assigned a non-empty 'expression'.\"),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:n(17001,e.DiagnosticCategory.Error,\"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\",\"JSX elements cannot have multiple attributes with the same name.\"),Expected_corresponding_JSX_closing_tag_for_0:n(17002,e.DiagnosticCategory.Error,\"Expected_corresponding_JSX_closing_tag_for_0_17002\",\"Expected corresponding JSX closing tag for '{0}'.\"),JSX_attribute_expected:n(17003,e.DiagnosticCategory.Error,\"JSX_attribute_expected_17003\",\"JSX attribute expected.\"),Cannot_use_JSX_unless_the_jsx_flag_is_provided:n(17004,e.DiagnosticCategory.Error,\"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\",\"Cannot use JSX unless the '--jsx' flag is provided.\"),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:n(17005,e.DiagnosticCategory.Error,\"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\",\"A constructor cannot contain a 'super' call when its class extends 'null'.\"),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:n(17006,e.DiagnosticCategory.Error,\"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\",\"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:n(17007,e.DiagnosticCategory.Error,\"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\",\"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),JSX_element_0_has_no_corresponding_closing_tag:n(17008,e.DiagnosticCategory.Error,\"JSX_element_0_has_no_corresponding_closing_tag_17008\",\"JSX element '{0}' has no corresponding closing tag.\"),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:n(17009,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\",\"'super' must be called before accessing 'this' in the constructor of a derived class.\"),Unknown_type_acquisition_option_0:n(17010,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_17010\",\"Unknown type acquisition option '{0}'.\"),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:n(17011,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\",\"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:n(17012,e.DiagnosticCategory.Error,\"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\",\"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:n(17013,e.DiagnosticCategory.Error,\"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\",\"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),JSX_fragment_has_no_corresponding_closing_tag:n(17014,e.DiagnosticCategory.Error,\"JSX_fragment_has_no_corresponding_closing_tag_17014\",\"JSX fragment has no corresponding closing tag.\"),Expected_corresponding_closing_tag_for_JSX_fragment:n(17015,e.DiagnosticCategory.Error,\"Expected_corresponding_closing_tag_for_JSX_fragment_17015\",\"Expected corresponding closing tag for JSX fragment.\"),JSX_fragment_is_not_supported_when_using_jsxFactory:n(17016,e.DiagnosticCategory.Error,\"JSX_fragment_is_not_supported_when_using_jsxFactory_17016\",\"JSX fragment is not supported when using --jsxFactory\"),JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma:n(17017,e.DiagnosticCategory.Error,\"JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma_17017\",\"JSX fragment is not supported when using an inline JSX factory pragma\"),Circularity_detected_while_resolving_configuration_Colon_0:n(18e3,e.DiagnosticCategory.Error,\"Circularity_detected_while_resolving_configuration_Colon_0_18000\",\"Circularity detected while resolving configuration: {0}\"),A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not:n(18001,e.DiagnosticCategory.Error,\"A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not_18001\",\"A path in an 'extends' option must be relative or rooted, but '{0}' is not.\"),The_files_list_in_config_file_0_is_empty:n(18002,e.DiagnosticCategory.Error,\"The_files_list_in_config_file_0_is_empty_18002\",\"The 'files' list in config file '{0}' is empty.\"),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:n(18003,e.DiagnosticCategory.Error,\"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\",\"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module:n(80001,e.DiagnosticCategory.Suggestion,\"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module_80001\",\"File is a CommonJS module; it may be converted to an ES6 module.\"),This_constructor_function_may_be_converted_to_a_class_declaration:n(80002,e.DiagnosticCategory.Suggestion,\"This_constructor_function_may_be_converted_to_a_class_declaration_80002\",\"This constructor function may be converted to a class declaration.\"),Import_may_be_converted_to_a_default_import:n(80003,e.DiagnosticCategory.Suggestion,\"Import_may_be_converted_to_a_default_import_80003\",\"Import may be converted to a default import.\"),JSDoc_types_may_be_moved_to_TypeScript_types:n(80004,e.DiagnosticCategory.Suggestion,\"JSDoc_types_may_be_moved_to_TypeScript_types_80004\",\"JSDoc types may be moved to TypeScript types.\"),require_call_may_be_converted_to_an_import:n(80005,e.DiagnosticCategory.Suggestion,\"require_call_may_be_converted_to_an_import_80005\",\"'require' call may be converted to an import.\"),This_may_be_converted_to_an_async_function:n(80006,e.DiagnosticCategory.Suggestion,\"This_may_be_converted_to_an_async_function_80006\",\"This may be converted to an async function.\"),await_has_no_effect_on_the_type_of_this_expression:n(80007,e.DiagnosticCategory.Suggestion,\"await_has_no_effect_on_the_type_of_this_expression_80007\",\"'await' has no effect on the type of this expression.\"),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:n(80008,e.DiagnosticCategory.Suggestion,\"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\",\"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),Add_missing_super_call:n(90001,e.DiagnosticCategory.Message,\"Add_missing_super_call_90001\",\"Add missing 'super()' call\"),Make_super_call_the_first_statement_in_the_constructor:n(90002,e.DiagnosticCategory.Message,\"Make_super_call_the_first_statement_in_the_constructor_90002\",\"Make 'super()' call the first statement in the constructor\"),Change_extends_to_implements:n(90003,e.DiagnosticCategory.Message,\"Change_extends_to_implements_90003\",\"Change 'extends' to 'implements'\"),Remove_declaration_for_Colon_0:n(90004,e.DiagnosticCategory.Message,\"Remove_declaration_for_Colon_0_90004\",\"Remove declaration for: '{0}'\"),Remove_import_from_0:n(90005,e.DiagnosticCategory.Message,\"Remove_import_from_0_90005\",\"Remove import from '{0}'\"),Implement_interface_0:n(90006,e.DiagnosticCategory.Message,\"Implement_interface_0_90006\",\"Implement interface '{0}'\"),Implement_inherited_abstract_class:n(90007,e.DiagnosticCategory.Message,\"Implement_inherited_abstract_class_90007\",\"Implement inherited abstract class\"),Add_0_to_unresolved_variable:n(90008,e.DiagnosticCategory.Message,\"Add_0_to_unresolved_variable_90008\",\"Add '{0}.' to unresolved variable\"),Remove_destructuring:n(90009,e.DiagnosticCategory.Message,\"Remove_destructuring_90009\",\"Remove destructuring\"),Remove_variable_statement:n(90010,e.DiagnosticCategory.Message,\"Remove_variable_statement_90010\",\"Remove variable statement\"),Remove_template_tag:n(90011,e.DiagnosticCategory.Message,\"Remove_template_tag_90011\",\"Remove template tag\"),Remove_type_parameters:n(90012,e.DiagnosticCategory.Message,\"Remove_type_parameters_90012\",\"Remove type parameters\"),Import_0_from_module_1:n(90013,e.DiagnosticCategory.Message,\"Import_0_from_module_1_90013\",\"Import '{0}' from module \\\"{1}\\\"\"),Change_0_to_1:n(90014,e.DiagnosticCategory.Message,\"Change_0_to_1_90014\",\"Change '{0}' to '{1}'\"),Add_0_to_existing_import_declaration_from_1:n(90015,e.DiagnosticCategory.Message,\"Add_0_to_existing_import_declaration_from_1_90015\",\"Add '{0}' to existing import declaration from \\\"{1}\\\"\"),Declare_property_0:n(90016,e.DiagnosticCategory.Message,\"Declare_property_0_90016\",\"Declare property '{0}'\"),Add_index_signature_for_property_0:n(90017,e.DiagnosticCategory.Message,\"Add_index_signature_for_property_0_90017\",\"Add index signature for property '{0}'\"),Disable_checking_for_this_file:n(90018,e.DiagnosticCategory.Message,\"Disable_checking_for_this_file_90018\",\"Disable checking for this file\"),Ignore_this_error_message:n(90019,e.DiagnosticCategory.Message,\"Ignore_this_error_message_90019\",\"Ignore this error message\"),Initialize_property_0_in_the_constructor:n(90020,e.DiagnosticCategory.Message,\"Initialize_property_0_in_the_constructor_90020\",\"Initialize property '{0}' in the constructor\"),Initialize_static_property_0:n(90021,e.DiagnosticCategory.Message,\"Initialize_static_property_0_90021\",\"Initialize static property '{0}'\"),Change_spelling_to_0:n(90022,e.DiagnosticCategory.Message,\"Change_spelling_to_0_90022\",\"Change spelling to '{0}'\"),Declare_method_0:n(90023,e.DiagnosticCategory.Message,\"Declare_method_0_90023\",\"Declare method '{0}'\"),Declare_static_method_0:n(90024,e.DiagnosticCategory.Message,\"Declare_static_method_0_90024\",\"Declare static method '{0}'\"),Prefix_0_with_an_underscore:n(90025,e.DiagnosticCategory.Message,\"Prefix_0_with_an_underscore_90025\",\"Prefix '{0}' with an underscore\"),Rewrite_as_the_indexed_access_type_0:n(90026,e.DiagnosticCategory.Message,\"Rewrite_as_the_indexed_access_type_0_90026\",\"Rewrite as the indexed access type '{0}'\"),Declare_static_property_0:n(90027,e.DiagnosticCategory.Message,\"Declare_static_property_0_90027\",\"Declare static property '{0}'\"),Call_decorator_expression:n(90028,e.DiagnosticCategory.Message,\"Call_decorator_expression_90028\",\"Call decorator expression\"),Add_async_modifier_to_containing_function:n(90029,e.DiagnosticCategory.Message,\"Add_async_modifier_to_containing_function_90029\",\"Add async modifier to containing function\"),Replace_infer_0_with_unknown:n(90030,e.DiagnosticCategory.Message,\"Replace_infer_0_with_unknown_90030\",\"Replace 'infer {0}' with 'unknown'\"),Replace_all_unused_infer_with_unknown:n(90031,e.DiagnosticCategory.Message,\"Replace_all_unused_infer_with_unknown_90031\",\"Replace all unused 'infer' with 'unknown'\"),Import_default_0_from_module_1:n(90032,e.DiagnosticCategory.Message,\"Import_default_0_from_module_1_90032\",\"Import default '{0}' from module \\\"{1}\\\"\"),Add_default_import_0_to_existing_import_declaration_from_1:n(90033,e.DiagnosticCategory.Message,\"Add_default_import_0_to_existing_import_declaration_from_1_90033\",\"Add default import '{0}' to existing import declaration from \\\"{1}\\\"\"),Add_parameter_name:n(90034,e.DiagnosticCategory.Message,\"Add_parameter_name_90034\",\"Add parameter name\"),Convert_function_to_an_ES2015_class:n(95001,e.DiagnosticCategory.Message,\"Convert_function_to_an_ES2015_class_95001\",\"Convert function to an ES2015 class\"),Convert_function_0_to_class:n(95002,e.DiagnosticCategory.Message,\"Convert_function_0_to_class_95002\",\"Convert function '{0}' to class\"),Extract_to_0_in_1:n(95004,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_95004\",\"Extract to {0} in {1}\"),Extract_function:n(95005,e.DiagnosticCategory.Message,\"Extract_function_95005\",\"Extract function\"),Extract_constant:n(95006,e.DiagnosticCategory.Message,\"Extract_constant_95006\",\"Extract constant\"),Extract_to_0_in_enclosing_scope:n(95007,e.DiagnosticCategory.Message,\"Extract_to_0_in_enclosing_scope_95007\",\"Extract to {0} in enclosing scope\"),Extract_to_0_in_1_scope:n(95008,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_scope_95008\",\"Extract to {0} in {1} scope\"),Annotate_with_type_from_JSDoc:n(95009,e.DiagnosticCategory.Message,\"Annotate_with_type_from_JSDoc_95009\",\"Annotate with type from JSDoc\"),Annotate_with_types_from_JSDoc:n(95010,e.DiagnosticCategory.Message,\"Annotate_with_types_from_JSDoc_95010\",\"Annotate with types from JSDoc\"),Infer_type_of_0_from_usage:n(95011,e.DiagnosticCategory.Message,\"Infer_type_of_0_from_usage_95011\",\"Infer type of '{0}' from usage\"),Infer_parameter_types_from_usage:n(95012,e.DiagnosticCategory.Message,\"Infer_parameter_types_from_usage_95012\",\"Infer parameter types from usage\"),Convert_to_default_import:n(95013,e.DiagnosticCategory.Message,\"Convert_to_default_import_95013\",\"Convert to default import\"),Install_0:n(95014,e.DiagnosticCategory.Message,\"Install_0_95014\",\"Install '{0}'\"),Replace_import_with_0:n(95015,e.DiagnosticCategory.Message,\"Replace_import_with_0_95015\",\"Replace import with '{0}'.\"),Use_synthetic_default_member:n(95016,e.DiagnosticCategory.Message,\"Use_synthetic_default_member_95016\",\"Use synthetic 'default' member.\"),Convert_to_ES6_module:n(95017,e.DiagnosticCategory.Message,\"Convert_to_ES6_module_95017\",\"Convert to ES6 module\"),Add_undefined_type_to_property_0:n(95018,e.DiagnosticCategory.Message,\"Add_undefined_type_to_property_0_95018\",\"Add 'undefined' type to property '{0}'\"),Add_initializer_to_property_0:n(95019,e.DiagnosticCategory.Message,\"Add_initializer_to_property_0_95019\",\"Add initializer to property '{0}'\"),Add_definite_assignment_assertion_to_property_0:n(95020,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertion_to_property_0_95020\",\"Add definite assignment assertion to property '{0}'\"),Add_all_missing_members:n(95022,e.DiagnosticCategory.Message,\"Add_all_missing_members_95022\",\"Add all missing members\"),Infer_all_types_from_usage:n(95023,e.DiagnosticCategory.Message,\"Infer_all_types_from_usage_95023\",\"Infer all types from usage\"),Delete_all_unused_declarations:n(95024,e.DiagnosticCategory.Message,\"Delete_all_unused_declarations_95024\",\"Delete all unused declarations\"),Prefix_all_unused_declarations_with_where_possible:n(95025,e.DiagnosticCategory.Message,\"Prefix_all_unused_declarations_with_where_possible_95025\",\"Prefix all unused declarations with '_' where possible\"),Fix_all_detected_spelling_errors:n(95026,e.DiagnosticCategory.Message,\"Fix_all_detected_spelling_errors_95026\",\"Fix all detected spelling errors\"),Add_initializers_to_all_uninitialized_properties:n(95027,e.DiagnosticCategory.Message,\"Add_initializers_to_all_uninitialized_properties_95027\",\"Add initializers to all uninitialized properties\"),Add_definite_assignment_assertions_to_all_uninitialized_properties:n(95028,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\",\"Add definite assignment assertions to all uninitialized properties\"),Add_undefined_type_to_all_uninitialized_properties:n(95029,e.DiagnosticCategory.Message,\"Add_undefined_type_to_all_uninitialized_properties_95029\",\"Add undefined type to all uninitialized properties\"),Change_all_jsdoc_style_types_to_TypeScript:n(95030,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_95030\",\"Change all jsdoc-style types to TypeScript\"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:n(95031,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\",\"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),Implement_all_unimplemented_interfaces:n(95032,e.DiagnosticCategory.Message,\"Implement_all_unimplemented_interfaces_95032\",\"Implement all unimplemented interfaces\"),Install_all_missing_types_packages:n(95033,e.DiagnosticCategory.Message,\"Install_all_missing_types_packages_95033\",\"Install all missing types packages\"),Rewrite_all_as_indexed_access_types:n(95034,e.DiagnosticCategory.Message,\"Rewrite_all_as_indexed_access_types_95034\",\"Rewrite all as indexed access types\"),Convert_all_to_default_imports:n(95035,e.DiagnosticCategory.Message,\"Convert_all_to_default_imports_95035\",\"Convert all to default imports\"),Make_all_super_calls_the_first_statement_in_their_constructor:n(95036,e.DiagnosticCategory.Message,\"Make_all_super_calls_the_first_statement_in_their_constructor_95036\",\"Make all 'super()' calls the first statement in their constructor\"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:n(95037,e.DiagnosticCategory.Message,\"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\",\"Add qualifier to all unresolved variables matching a member name\"),Change_all_extended_interfaces_to_implements:n(95038,e.DiagnosticCategory.Message,\"Change_all_extended_interfaces_to_implements_95038\",\"Change all extended interfaces to 'implements'\"),Add_all_missing_super_calls:n(95039,e.DiagnosticCategory.Message,\"Add_all_missing_super_calls_95039\",\"Add all missing super calls\"),Implement_all_inherited_abstract_classes:n(95040,e.DiagnosticCategory.Message,\"Implement_all_inherited_abstract_classes_95040\",\"Implement all inherited abstract classes\"),Add_all_missing_async_modifiers:n(95041,e.DiagnosticCategory.Message,\"Add_all_missing_async_modifiers_95041\",\"Add all missing 'async' modifiers\"),Add_ts_ignore_to_all_error_messages:n(95042,e.DiagnosticCategory.Message,\"Add_ts_ignore_to_all_error_messages_95042\",\"Add '@ts-ignore' to all error messages\"),Annotate_everything_with_types_from_JSDoc:n(95043,e.DiagnosticCategory.Message,\"Annotate_everything_with_types_from_JSDoc_95043\",\"Annotate everything with types from JSDoc\"),Add_to_all_uncalled_decorators:n(95044,e.DiagnosticCategory.Message,\"Add_to_all_uncalled_decorators_95044\",\"Add '()' to all uncalled decorators\"),Convert_all_constructor_functions_to_classes:n(95045,e.DiagnosticCategory.Message,\"Convert_all_constructor_functions_to_classes_95045\",\"Convert all constructor functions to classes\"),Generate_get_and_set_accessors:n(95046,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_95046\",\"Generate 'get' and 'set' accessors\"),Convert_require_to_import:n(95047,e.DiagnosticCategory.Message,\"Convert_require_to_import_95047\",\"Convert 'require' to 'import'\"),Convert_all_require_to_import:n(95048,e.DiagnosticCategory.Message,\"Convert_all_require_to_import_95048\",\"Convert all 'require' to 'import'\"),Move_to_a_new_file:n(95049,e.DiagnosticCategory.Message,\"Move_to_a_new_file_95049\",\"Move to a new file\"),Remove_unreachable_code:n(95050,e.DiagnosticCategory.Message,\"Remove_unreachable_code_95050\",\"Remove unreachable code\"),Remove_all_unreachable_code:n(95051,e.DiagnosticCategory.Message,\"Remove_all_unreachable_code_95051\",\"Remove all unreachable code\"),Add_missing_typeof:n(95052,e.DiagnosticCategory.Message,\"Add_missing_typeof_95052\",\"Add missing 'typeof'\"),Remove_unused_label:n(95053,e.DiagnosticCategory.Message,\"Remove_unused_label_95053\",\"Remove unused label\"),Remove_all_unused_labels:n(95054,e.DiagnosticCategory.Message,\"Remove_all_unused_labels_95054\",\"Remove all unused labels\"),Convert_0_to_mapped_object_type:n(95055,e.DiagnosticCategory.Message,\"Convert_0_to_mapped_object_type_95055\",\"Convert '{0}' to mapped object type\"),Convert_namespace_import_to_named_imports:n(95056,e.DiagnosticCategory.Message,\"Convert_namespace_import_to_named_imports_95056\",\"Convert namespace import to named imports\"),Convert_named_imports_to_namespace_import:n(95057,e.DiagnosticCategory.Message,\"Convert_named_imports_to_namespace_import_95057\",\"Convert named imports to namespace import\"),Add_or_remove_braces_in_an_arrow_function:n(95058,e.DiagnosticCategory.Message,\"Add_or_remove_braces_in_an_arrow_function_95058\",\"Add or remove braces in an arrow function\"),Add_braces_to_arrow_function:n(95059,e.DiagnosticCategory.Message,\"Add_braces_to_arrow_function_95059\",\"Add braces to arrow function\"),Remove_braces_from_arrow_function:n(95060,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_95060\",\"Remove braces from arrow function\"),Convert_default_export_to_named_export:n(95061,e.DiagnosticCategory.Message,\"Convert_default_export_to_named_export_95061\",\"Convert default export to named export\"),Convert_named_export_to_default_export:n(95062,e.DiagnosticCategory.Message,\"Convert_named_export_to_default_export_95062\",\"Convert named export to default export\"),Add_missing_enum_member_0:n(95063,e.DiagnosticCategory.Message,\"Add_missing_enum_member_0_95063\",\"Add missing enum member '{0}'\"),Add_all_missing_imports:n(95064,e.DiagnosticCategory.Message,\"Add_all_missing_imports_95064\",\"Add all missing imports\"),Convert_to_async_function:n(95065,e.DiagnosticCategory.Message,\"Convert_to_async_function_95065\",\"Convert to async function\"),Convert_all_to_async_functions:n(95066,e.DiagnosticCategory.Message,\"Convert_all_to_async_functions_95066\",\"Convert all to async functions\"),Add_unknown_conversion_for_non_overlapping_types:n(95069,e.DiagnosticCategory.Message,\"Add_unknown_conversion_for_non_overlapping_types_95069\",\"Add 'unknown' conversion for non-overlapping types\"),Add_unknown_to_all_conversions_of_non_overlapping_types:n(95070,e.DiagnosticCategory.Message,\"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\",\"Add 'unknown' to all conversions of non-overlapping types\"),Add_missing_new_operator_to_call:n(95071,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_call_95071\",\"Add missing 'new' operator to call\"),Add_missing_new_operator_to_all_calls:n(95072,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_all_calls_95072\",\"Add missing 'new' operator to all calls\"),Add_names_to_all_parameters_without_names:n(95073,e.DiagnosticCategory.Message,\"Add_names_to_all_parameters_without_names_95073\",\"Add names to all parameters without names\"),Enable_the_experimentalDecorators_option_in_your_configuration_file:n(95074,e.DiagnosticCategory.Message,\"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\",\"Enable the 'experimentalDecorators' option in your configuration file\"),Convert_parameters_to_destructured_object:n(95075,e.DiagnosticCategory.Message,\"Convert_parameters_to_destructured_object_95075\",\"Convert parameters to destructured object\"),Allow_accessing_UMD_globals_from_modules:n(95076,e.DiagnosticCategory.Message,\"Allow_accessing_UMD_globals_from_modules_95076\",\"Allow accessing UMD globals from modules.\"),Extract_type:n(95077,e.DiagnosticCategory.Message,\"Extract_type_95077\",\"Extract type\"),Extract_to_type_alias:n(95078,e.DiagnosticCategory.Message,\"Extract_to_type_alias_95078\",\"Extract to type alias\"),Extract_to_typedef:n(95079,e.DiagnosticCategory.Message,\"Extract_to_typedef_95079\",\"Extract to typedef\"),Infer_this_type_of_0_from_usage:n(95080,e.DiagnosticCategory.Message,\"Infer_this_type_of_0_from_usage_95080\",\"Infer 'this' type of '{0}' from usage\"),Add_const_to_unresolved_variable:n(95081,e.DiagnosticCategory.Message,\"Add_const_to_unresolved_variable_95081\",\"Add 'const' to unresolved variable\"),Add_const_to_all_unresolved_variables:n(95082,e.DiagnosticCategory.Message,\"Add_const_to_all_unresolved_variables_95082\",\"Add 'const' to all unresolved variables\"),Add_await:n(95083,e.DiagnosticCategory.Message,\"Add_await_95083\",\"Add 'await'\"),Add_await_to_initializer_for_0:n(95084,e.DiagnosticCategory.Message,\"Add_await_to_initializer_for_0_95084\",\"Add 'await' to initializer for '{0}'\"),Fix_all_expressions_possibly_missing_await:n(95085,e.DiagnosticCategory.Message,\"Fix_all_expressions_possibly_missing_await_95085\",\"Fix all expressions possibly missing 'await'\"),Remove_unnecessary_await:n(95086,e.DiagnosticCategory.Message,\"Remove_unnecessary_await_95086\",\"Remove unnecessary 'await'\"),Remove_all_unnecessary_uses_of_await:n(95087,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_uses_of_await_95087\",\"Remove all unnecessary uses of 'await'\"),Enable_the_jsx_flag_in_your_configuration_file:n(95088,e.DiagnosticCategory.Message,\"Enable_the_jsx_flag_in_your_configuration_file_95088\",\"Enable the '--jsx' flag in your configuration file\"),Add_await_to_initializers:n(95089,e.DiagnosticCategory.Message,\"Add_await_to_initializers_95089\",\"Add 'await' to initializers\"),Extract_to_interface:n(95090,e.DiagnosticCategory.Message,\"Extract_to_interface_95090\",\"Extract to interface\"),Convert_to_a_bigint_numeric_literal:n(95091,e.DiagnosticCategory.Message,\"Convert_to_a_bigint_numeric_literal_95091\",\"Convert to a bigint numeric literal\"),Convert_all_to_bigint_numeric_literals:n(95092,e.DiagnosticCategory.Message,\"Convert_all_to_bigint_numeric_literals_95092\",\"Convert all to bigint numeric literals\"),Convert_const_to_let:n(95093,e.DiagnosticCategory.Message,\"Convert_const_to_let_95093\",\"Convert 'const' to 'let'\"),Prefix_with_declare:n(95094,e.DiagnosticCategory.Message,\"Prefix_with_declare_95094\",\"Prefix with 'declare'\"),Prefix_all_incorrect_property_declarations_with_declare:n(95095,e.DiagnosticCategory.Message,\"Prefix_all_incorrect_property_declarations_with_declare_95095\",\"Prefix all incorrect property declarations with 'declare'\"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:n(18004,e.DiagnosticCategory.Error,\"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\",\"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),Classes_may_not_have_a_field_named_constructor:n(18006,e.DiagnosticCategory.Error,\"Classes_may_not_have_a_field_named_constructor_18006\",\"Classes may not have a field named 'constructor'.\"),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:n(18007,e.DiagnosticCategory.Error,\"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\",\"JSX expressions may not use the comma operator. Did you mean to write an array?\")}}(ts||(ts={})),function(e){var n;function t(e){return e>=75}e.tokenIsIdentifierOrKeyword=t,e.tokenIsIdentifierOrKeywordOrGreaterThan=function(e){return 31===e||t(e)};var r=((n={abstract:121,any:124,as:122,asserts:123,bigint:150,boolean:127,break:76,case:77,catch:78,class:79,continue:81,const:80}).constructor=128,n.debugger=82,n.declare=129,n.default=83,n.delete=84,n.do=85,n.else=86,n.enum=87,n.export=88,n.extends=89,n.false=90,n.finally=91,n.for=92,n.from=148,n.function=93,n.get=130,n.if=94,n.implements=112,n.import=95,n.in=96,n.infer=131,n.instanceof=97,n.interface=113,n.is=132,n.keyof=133,n.let=114,n.module=134,n.namespace=135,n.never=136,n.new=98,n.null=99,n.number=139,n.object=140,n.package=115,n.private=116,n.protected=117,n.public=118,n.readonly=137,n.require=138,n.global=149,n.return=100,n.set=141,n.static=119,n.string=142,n.super=101,n.switch=102,n.symbol=143,n.this=103,n.throw=104,n.true=105,n.try=106,n.type=144,n.typeof=107,n.undefined=145,n.unique=146,n.unknown=147,n.var=108,n.void=109,n.while=110,n.with=111,n.yield=120,n.async=125,n.await=126,n.of=151,n),a=e.createMapFromTemplate(r),i=e.createMapFromTemplate(__assign(__assign({},r),{\"{\":18,\"}\":19,\"(\":20,\")\":21,\"[\":22,\"]\":23,\".\":24,\"...\":25,\";\":26,\",\":27,\"<\":29,\">\":31,\"<=\":32,\">=\":33,\"==\":34,\"!=\":35,\"===\":36,\"!==\":37,\"=>\":38,\"+\":39,\"-\":40,\"**\":42,\"*\":41,\"/\":43,\"%\":44,\"++\":45,\"--\":46,\"<<\":47,\"</\":30,\">>\":48,\">>>\":49,\"&\":50,\"|\":51,\"^\":52,\"!\":53,\"~\":54,\"&&\":55,\"||\":56,\"?\":57,\"??\":60,\"?.\":28,\":\":58,\"=\":62,\"+=\":63,\"-=\":64,\"*=\":65,\"**=\":66,\"/=\":67,\"%=\":68,\"<<=\":69,\">>=\":70,\">>>=\":71,\"&=\":72,\"|=\":73,\"^=\":74,\"@\":59,\"`\":61})),o=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],s=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],c=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],l=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],u=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],d=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999];function p(e,n){if(e<n[0])return!1;for(var t,r=0,a=n.length;r+1<a;){if(t=r+(a-r)/2,n[t-=t%2]<=e&&e<=n[t+1])return!0;e<n[t]?a=t:r=t+2}return!1}function m(e,n){return p(e,n>=2?u:1===n?c:o)}e.isUnicodeIdentifierStart=m;var f,_=(f=[],i.forEach((function(e,n){f[e]=n})),f);function g(e){for(var n=new Array,t=0,r=0;t<e.length;){var a=e.charCodeAt(t);switch(t++,a){case 13:10===e.charCodeAt(t)&&t++;case 10:n.push(r),r=t;break;default:a>127&&T(a)&&(n.push(r),r=t)}}return n.push(r),n}function y(n,t,r,a,i){(t<0||t>=n.length)&&(i?t=t<0?0:t>=n.length?n.length-1:t:e.Debug.fail(\"Bad line number. Line: \"+t+\", lineStarts.length: \"+n.length+\" , line map is correct? \"+(void 0!==a?e.arraysEqual(n,g(a)):\"unknown\")));var o=n[t]+r;return i?o>n[t+1]?n[t+1]:\"string\"==typeof a&&o>a.length?a.length:o:(t<n.length-1?e.Debug.assert(o<n[t+1]):void 0!==a&&e.Debug.assert(o<=a.length),o)}function v(e){return e.lineMap||(e.lineMap=g(e.text))}function h(n,t){var r=e.binarySearch(n,t,e.identity,e.compareValues);return r<0&&(r=~r-1,e.Debug.assert(-1!==r,\"position cannot precede the beginning of the file\")),{line:r,character:t-n[r]}}function b(e){return E(e)||T(e)}function E(e){return 32===e||9===e||11===e||12===e||160===e||133===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function T(e){return 10===e||13===e||8232===e||8233===e}function S(e){return e>=48&&e<=57}function x(e){return e>=48&&e<=55}e.tokenToString=function(e){return _[e]},e.stringToToken=function(e){return i.get(e)},e.computeLineStarts=g,e.getPositionOfLineAndCharacter=function(e,n,t,r){return e.getPositionOfLineAndCharacter?e.getPositionOfLineAndCharacter(n,t,r):y(v(e),n,t,e.text,r)},e.computePositionOfLineAndCharacter=y,e.getLineStarts=v,e.computeLineAndCharacterOfPosition=h,e.getLineAndCharacterOfPosition=function(e,n){return h(v(e),n)},e.isWhiteSpaceLike=b,e.isWhiteSpaceSingleLine=E,e.isLineBreak=T,e.isOctalDigit=x,e.couldStartTrivia=function(e,n){var t=e.charCodeAt(n);switch(t){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return 0===n;default:return t>127}},e.skipTrivia=function(n,t,r,a){if(void 0===a&&(a=!1),e.positionIsSynthesized(t))return t;for(;;){var i=n.charCodeAt(t);switch(i){case 13:10===n.charCodeAt(t+1)&&t++;case 10:if(t++,r)return t;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(a)break;if(47===n.charCodeAt(t+1)){for(t+=2;t<n.length&&!T(n.charCodeAt(t));)t++;continue}if(42===n.charCodeAt(t+1)){for(t+=2;t<n.length;){if(42===n.charCodeAt(t)&&47===n.charCodeAt(t+1)){t+=2;break}t++}continue}break;case 60:case 124:case 61:case 62:if(C(n,t)){t=A(n,t);continue}break;case 35:if(0===t&&k(n,t)){t=N(n,t);continue}break;default:if(i>127&&b(i)){t++;continue}}return t}};var L=\"<<<<<<<\".length;function C(n,t){if(e.Debug.assert(t>=0),0===t||T(n.charCodeAt(t-1))){var r=n.charCodeAt(t);if(t+L<n.length){for(var a=0;a<L;a++)if(n.charCodeAt(t+a)!==r)return!1;return 61===r||32===n.charCodeAt(t+L)}}return!1}function A(n,t,r){r&&r(e.Diagnostics.Merge_conflict_marker_encountered,t,L);var a=n.charCodeAt(t),i=n.length;if(60===a||62===a)for(;t<i&&!T(n.charCodeAt(t));)t++;else for(e.Debug.assert(124===a||61===a);t<i;){var o=n.charCodeAt(t);if((61===o||62===o)&&o!==a&&C(n,t))break;t++}return t}var D=/^#!.*/;function k(n,t){return e.Debug.assert(0===t),D.test(n)}function N(e,n){return n+=D.exec(e)[0].length}function I(e,n,t,r,a,i,o){var s,c,l,u,d=!1,p=r,m=o;if(0===t){p=!0;var f=P(n);f&&(t=f.length)}e:for(;t>=0&&t<n.length;){var _=n.charCodeAt(t);switch(_){case 13:10===n.charCodeAt(t+1)&&t++;case 10:if(t++,r)break e;p=!0,d&&(u=!0);continue;case 9:case 11:case 12:case 32:t++;continue;case 47:var g=n.charCodeAt(t+1),y=!1;if(47===g||42===g){var v=47===g?2:3,h=t;if(t+=2,47===g)for(;t<n.length;){if(T(n.charCodeAt(t))){y=!0;break}t++}else for(;t<n.length;){if(42===n.charCodeAt(t)&&47===n.charCodeAt(t+1)){t+=2;break}t++}if(p){if(d&&(m=a(s,c,l,u,i,m),!e&&m))return m;s=h,c=t,l=v,u=y,d=!0}continue}break e;default:if(_>127&&b(_)){d&&T(_)&&(u=!0),t++;continue}break e}}return d&&(m=a(s,c,l,u,i,m)),m}function M(e,n,t,r,a){return I(!0,e,n,!1,t,r,a)}function O(e,n,t,r,a){return I(!0,e,n,!0,t,r,a)}function R(e,n,t,r,a,i){return i||(i=[]),i.push({kind:t,pos:e,end:n,hasTrailingNewLine:r}),i}function P(e){var n=D.exec(e);if(n)return n[0]}function w(e,n){return e>=65&&e<=90||e>=97&&e<=122||36===e||95===e||e>127&&m(e,n)}function F(e,n){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||36===e||95===e||e>127&&function(e,n){return p(e,n>=2?d:1===n?l:s)}(e,n)}e.isShebangTrivia=k,e.scanShebangTrivia=N,e.forEachLeadingCommentRange=function(e,n,t,r){return I(!1,e,n,!1,t,r)},e.forEachTrailingCommentRange=function(e,n,t,r){return I(!1,e,n,!0,t,r)},e.reduceEachLeadingCommentRange=M,e.reduceEachTrailingCommentRange=O,e.getLeadingCommentRanges=function(e,n){return M(e,n,R,void 0,void 0)},e.getTrailingCommentRanges=function(e,n){return O(e,n,R,void 0,void 0)},e.getShebang=P,e.isIdentifierStart=w,e.isIdentifierPart=F,e.isIdentifierText=function(e,n){var t=G(e,0);if(!w(t,n))return!1;for(var r=B(t);r<e.length;r+=B(t))if(!F(t=G(e,r),n))return!1;return!0},e.createScanner=function(n,r,i,o,s,c,l){void 0===i&&(i=0);var u,d,p,m,f,_,g,y=o,v=0;te(y,c,l);var h={getStartPos:function(){return p},getTextPos:function(){return u},getToken:function(){return f},getTokenPos:function(){return m},getTokenText:function(){return y.substring(m,u)},getTokenValue:function(){return _},hasUnicodeEscape:function(){return 0!=(1024&g)},hasExtendedUnicodeEscape:function(){return 0!=(8&g)},hasPrecedingLineBreak:function(){return 0!=(1&g)},isIdentifier:function(){return 75===f||f>111},isReservedWord:function(){return f>=76&&f<=111},isUnterminated:function(){return 0!=(4&g)},getTokenFlags:function(){return g},reScanGreaterToken:function(){if(31===f){if(62===y.charCodeAt(u))return 62===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=71):(u+=2,f=49):61===y.charCodeAt(u+1)?(u+=2,f=70):(u++,f=48);if(61===y.charCodeAt(u))return u++,f=33}return f},reScanSlashToken:function(){if(43===f||67===f){for(var t=m+1,r=!1,a=!1;;){if(t>=d){g|=4,L(e.Diagnostics.Unterminated_regular_expression_literal);break}var i=y.charCodeAt(t);if(T(i)){g|=4,L(e.Diagnostics.Unterminated_regular_expression_literal);break}if(r)r=!1;else{if(47===i&&!a){t++;break}91===i?a=!0:92===i?r=!0:93===i&&(a=!1)}t++}for(;t<d&&F(y.charCodeAt(t),n);)t++;u=t,_=y.substring(m,u),f=13}return f},reScanTemplateToken:function(){return e.Debug.assert(19===f,\"'reScanTemplateToken' should only be called on a '}'\"),u=m,f=j()},scanJsxIdentifier:function(){if(t(f))for(;u<d;){if(45!==y.charCodeAt(u)){var e=u;if(_+=X(),u===e)break}else _+=\"-\",u++}return f},scanJsxAttributeValue:function(){switch(p=u,y.charCodeAt(u)){case 34:case 39:return _=U(!0),f=10;default:return $()}},reScanJsxToken:function(){return u=m=p,f=ee()},reScanLessThanToken:function(){if(47===f)return u=m+1,f=29;return f},reScanQuestionToken:function(){return e.Debug.assert(60===f,\"'reScanQuestionToken' should only be called on a '??'\"),u=m+1,f=57},scanJsxToken:ee,scanJsDocToken:function(){if(p=m=u,g=0,u>=d)return f=1;var e=G(y,u);switch(u+=B(e),e){case 9:case 11:case 12:case 32:for(;u<d&&E(y.charCodeAt(u));)u++;return f=5;case 64:return f=59;case 10:case 13:return g|=1,f=4;case 42:return f=41;case 123:return f=18;case 125:return f=19;case 91:return f=22;case 93:return f=23;case 60:return f=29;case 62:return f=31;case 61:return f=62;case 44:return f=27;case 46:return f=24;case 96:return f=61;case 92:u--;var t=J();if(t>=0&&w(t,n))return u+=3,g|=8,_=W()+X(),f=Y();var r=q();return r>=0&&w(r,n)?(u+=6,g|=1024,_=String.fromCharCode(r)+X(),f=Y()):(u++,f=0)}if(w(e,n)){for(var a=e;u<d&&F(a=G(y,u),n)||45===y.charCodeAt(u);)u+=B(a);return _=y.substring(m,u),92===a&&(_+=X()),f=Y()}return f=0},scan:$,getText:function(){return y},setText:te,setScriptTarget:function(e){n=e},setLanguageVariant:function(e){i=e},setOnError:function(e){s=e},setTextPos:re,setInJSDocType:function(e){v+=e?1:-1},tryScan:function(e){return ne(e,!1)},lookAhead:function(e){return ne(e,!0)},scanRange:function(e,n,t){var r=d,a=u,i=p,o=m,s=f,c=_,l=g;te(y,e,n);var v=t();return d=r,u=a,p=i,m=o,f=s,_=c,g=l,v}};return e.Debug.isDebugging&&Object.defineProperty(h,\"__debugShowCurrentPositionInText\",{get:function(){var e=h.getText();return e.slice(0,h.getStartPos())+\"║\"+e.slice(h.getStartPos())}}),h;function L(e,n,t){if(void 0===n&&(n=u),s){var r=u;u=n,s(e,t||0),u=r}}function D(){for(var n=u,t=!1,r=!1,a=\"\";;){var i=y.charCodeAt(u);if(95!==i){if(!S(i))break;t=!0,r=!1,u++}else g|=512,t?(t=!1,r=!0,a+=y.substring(n,u)):L(r?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),n=++u}return 95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),a+y.substring(n,u)}function I(){var n,t,r=u,a=D();46===y.charCodeAt(u)&&(u++,n=D());var i,o=u;if(69===y.charCodeAt(u)||101===y.charCodeAt(u)){u++,g|=16,43!==y.charCodeAt(u)&&45!==y.charCodeAt(u)||u++;var s=u,c=D();c?(t=y.substring(o,s)+c,o=u):L(e.Diagnostics.Digit_expected)}if(512&g?(i=a,n&&(i+=\".\"+n),t&&(i+=t)):i=y.substring(r,o),void 0!==n||16&g)return M(r,void 0===n&&!!(16&g)),{type:8,value:\"\"+ +i};_=i;var l=Z();return M(r),{type:l,value:_}}function M(t,r){if(w(G(y,u),n)){var a=u,i=X().length;1===i&&\"n\"===y[a]?L(r?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,t,a-t+1):(L(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,a,i),u=a)}}function O(){for(var e=u;x(y.charCodeAt(u));)u++;return+y.substring(e,u)}function R(e,n){var t=V(e,!1,n);return t?parseInt(t,16):-1}function P(e,n){return V(e,!0,n)}function V(n,t,r){for(var a=[],i=!1,o=!1;a.length<n||t;){var s=y.charCodeAt(u);if(r&&95===s)g|=512,i?(i=!1,o=!0):L(o?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),u++;else{if(i=r,s>=65&&s<=70)s+=32;else if(!(s>=48&&s<=57||s>=97&&s<=102))break;a.push(s),u++,o=!1}}return a.length<n&&(a=[]),95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),String.fromCharCode.apply(String,a)}function U(n){void 0===n&&(n=!1);for(var t=y.charCodeAt(u),r=\"\",a=++u;;){if(u>=d){r+=y.substring(a,u),g|=4,L(e.Diagnostics.Unterminated_string_literal);break}var i=y.charCodeAt(u);if(i===t){r+=y.substring(a,u),u++;break}if(92!==i||n){if(T(i)&&!n){r+=y.substring(a,u),g|=4,L(e.Diagnostics.Unterminated_string_literal);break}u++}else r+=y.substring(a,u),r+=K(),a=u}return r}function j(){for(var n,t=96===y.charCodeAt(u),r=++u,a=\"\";;){if(u>=d){a+=y.substring(r,u),g|=4,L(e.Diagnostics.Unterminated_template_literal),n=t?14:17;break}var i=y.charCodeAt(u);if(96===i){a+=y.substring(r,u),u++,n=t?14:17;break}if(36===i&&u+1<d&&123===y.charCodeAt(u+1)){a+=y.substring(r,u),u+=2,n=t?15:16;break}92!==i?13!==i?u++:(a+=y.substring(r,u),++u<d&&10===y.charCodeAt(u)&&u++,a+=\"\\n\",r=u):(a+=y.substring(r,u),a+=K(),r=u)}return e.Debug.assert(void 0!==n),_=a,n}function K(){if(++u>=d)return L(e.Diagnostics.Unexpected_end_of_text),\"\";var n=y.charCodeAt(u);switch(u++,n){case 48:return\"\\0\";case 98:return\"\\b\";case 116:return\"\\t\";case 110:return\"\\n\";case 118:return\"\\v\";case 102:return\"\\f\";case 114:return\"\\r\";case 39:return\"'\";case 34:return'\"';case 117:return u<d&&123===y.charCodeAt(u)?(g|=8,u++,W()):(g|=1024,H(4));case 120:return H(2);case 13:u<d&&10===y.charCodeAt(u)&&u++;case 10:case 8232:case 8233:return\"\";default:return String.fromCharCode(n)}}function H(n){var t=R(n,!1);return t>=0?String.fromCharCode(t):(L(e.Diagnostics.Hexadecimal_digit_expected),\"\")}function W(){var n=P(1,!1),t=n?parseInt(n,16):-1,r=!1;return t<0?(L(e.Diagnostics.Hexadecimal_digit_expected),r=!0):t>1114111&&(L(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),r=!0),u>=d?(L(e.Diagnostics.Unexpected_end_of_text),r=!0):125===y.charCodeAt(u)?u++:(L(e.Diagnostics.Unterminated_Unicode_escape_sequence),r=!0),r?\"\":z(t)}function z(n){if(e.Debug.assert(0<=n&&n<=1114111),n<=65535)return String.fromCharCode(n);var t=Math.floor((n-65536)/1024)+55296,r=(n-65536)%1024+56320;return String.fromCharCode(t,r)}function q(){if(u+5<d&&117===y.charCodeAt(u+1)){var e=u;u+=2;var n=R(4,!1);return u=e,n}return-1}function J(){if(n>=2&&117===G(y,u+1)&&123===G(y,u+2)){var e=u;u+=3;var t=P(1,!1),r=t?parseInt(t,16):-1;return u=e,r}return-1}function X(){for(var e=\"\",t=u;u<d;){var r=G(y,u);if(F(r,n))u+=B(r);else{if(92!==r)break;if((r=J())>=0&&F(r,n)){u+=3,g|=8,e+=W(),t=u;continue}if(!((r=q())>=0&&F(r,n)))break;g|=1024,e+=y.substring(t,u),e+=z(r),t=u+=6}}return e+=y.substring(t,u)}function Y(){var e=_.length;if(e>=2&&e<=11){var n=_.charCodeAt(0);if(n>=97&&n<=122){var t=a.get(_);if(void 0!==t)return f=t}}return f=75}function Q(n){for(var t=\"\",r=!1,a=!1;;){var i=y.charCodeAt(u);if(95!==i){if(r=!0,!S(i)||i-48>=n)break;t+=y[u],u++,a=!1}else g|=512,r?(r=!1,a=!0):L(a?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,u,1),u++}return 95===y.charCodeAt(u-1)&&L(e.Diagnostics.Numeric_separators_are_not_allowed_here,u-1,1),t}function Z(){if(110===y.charCodeAt(u))return _+=\"n\",384&g&&(_=e.parsePseudoBigInt(_)+\"n\"),u++,9;var n=128&g?parseInt(_.slice(2),2):256&g?parseInt(_.slice(2),8):+_;return _=\"\"+n,8}function $(){var t;p=u,g=0;for(var a=!1;;){if(m=u,u>=d)return f=1;var o=G(y,u);if(35===o&&0===u&&k(y,u)){if(u=N(y,u),r)continue;return f=6}switch(o){case 10:case 13:if(g|=1,r){u++;continue}return 13===o&&u+1<d&&10===y.charCodeAt(u+1)?u+=2:u++,f=4;case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8203:case 8239:case 8287:case 12288:case 65279:if(r){u++;continue}for(;u<d&&E(y.charCodeAt(u));)u++;return f=5;case 33:return 61===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=37):(u+=2,f=35):(u++,f=53);case 34:case 39:return _=U(),f=10;case 96:return f=j();case 37:return 61===y.charCodeAt(u+1)?(u+=2,f=68):(u++,f=44);case 38:return 38===y.charCodeAt(u+1)?(u+=2,f=55):61===y.charCodeAt(u+1)?(u+=2,f=72):(u++,f=50);case 40:return u++,f=20;case 41:return u++,f=21;case 42:if(61===y.charCodeAt(u+1))return u+=2,f=65;if(42===y.charCodeAt(u+1))return 61===y.charCodeAt(u+2)?(u+=3,f=66):(u+=2,f=42);if(u++,v&&!a&&1&g){a=!0;continue}return f=41;case 43:return 43===y.charCodeAt(u+1)?(u+=2,f=45):61===y.charCodeAt(u+1)?(u+=2,f=63):(u++,f=39);case 44:return u++,f=27;case 45:return 45===y.charCodeAt(u+1)?(u+=2,f=46):61===y.charCodeAt(u+1)?(u+=2,f=64):(u++,f=40);case 46:return S(y.charCodeAt(u+1))?(_=I().value,f=8):46===y.charCodeAt(u+1)&&46===y.charCodeAt(u+2)?(u+=3,f=25):(u++,f=24);case 47:if(47===y.charCodeAt(u+1)){for(u+=2;u<d&&!T(y.charCodeAt(u));)u++;if(r)continue;return f=2}if(42===y.charCodeAt(u+1)){u+=2,42===y.charCodeAt(u)&&47!==y.charCodeAt(u+1)&&(g|=2);for(var s=!1;u<d;){var c=y.charCodeAt(u);if(42===c&&47===y.charCodeAt(u+1)){u+=2,s=!0;break}T(c)&&(g|=1),u++}if(s||L(e.Diagnostics.Asterisk_Slash_expected),r)continue;return s||(g|=4),f=3}return 61===y.charCodeAt(u+1)?(u+=2,f=67):(u++,f=43);case 48:if(u+2<d&&(88===y.charCodeAt(u+1)||120===y.charCodeAt(u+1)))return u+=2,(_=P(1,!0))||(L(e.Diagnostics.Hexadecimal_digit_expected),_=\"0\"),_=\"0x\"+_,g|=64,f=Z();if(u+2<d&&(66===y.charCodeAt(u+1)||98===y.charCodeAt(u+1)))return u+=2,(_=Q(2))||(L(e.Diagnostics.Binary_digit_expected),_=\"0\"),_=\"0b\"+_,g|=128,f=Z();if(u+2<d&&(79===y.charCodeAt(u+1)||111===y.charCodeAt(u+1)))return u+=2,(_=Q(8))||(L(e.Diagnostics.Octal_digit_expected),_=\"0\"),_=\"0o\"+_,g|=256,f=Z();if(u+1<d&&x(y.charCodeAt(u+1)))return _=\"\"+O(),g|=32,f=8;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t=I(),f=t.type,_=t.value,f;case 58:return u++,f=58;case 59:return u++,f=26;case 60:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 60===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=69):(u+=2,f=47):61===y.charCodeAt(u+1)?(u+=2,f=32):1===i&&47===y.charCodeAt(u+1)&&42!==y.charCodeAt(u+2)?(u+=2,f=30):(u++,f=29);case 61:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 61===y.charCodeAt(u+1)?61===y.charCodeAt(u+2)?(u+=3,f=36):(u+=2,f=34):62===y.charCodeAt(u+1)?(u+=2,f=38):(u++,f=62);case 62:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return u++,f=31;case 63:return u++,46!==y.charCodeAt(u)||S(y.charCodeAt(u+1))?63===y.charCodeAt(u)?(u++,f=60):f=57:(u++,f=28);case 91:return u++,f=22;case 93:return u++,f=23;case 94:return 61===y.charCodeAt(u+1)?(u+=2,f=74):(u++,f=52);case 123:return u++,f=18;case 124:if(C(y,u)){if(u=A(y,u,L),r)continue;return f=7}return 124===y.charCodeAt(u+1)?(u+=2,f=56):61===y.charCodeAt(u+1)?(u+=2,f=73):(u++,f=51);case 125:return u++,f=19;case 126:return u++,f=54;case 64:return u++,f=59;case 92:var l=J();if(l>=0&&w(l,n))return u+=3,g|=8,_=W()+X(),f=Y();var h=q();return h>=0&&w(h,n)?(u+=6,g|=1024,_=String.fromCharCode(h)+X(),f=Y()):(L(e.Diagnostics.Invalid_character),u++,f=0);default:if(w(o,n)){for(u+=B(o);u<d&&F(o=G(y,u),n);)u+=B(o);return _=y.substring(m,u),92===o&&(_+=X()),f=Y()}if(E(o)){u+=B(o);continue}if(T(o)){g|=1,u+=B(o);continue}return L(e.Diagnostics.Invalid_character),u+=B(o),f=0}}}function ee(){if(p=m=u,u>=d)return f=1;var e=y.charCodeAt(u);if(60===e)return 47===y.charCodeAt(u+1)?(u+=2,f=30):(u++,f=29);if(123===e)return u++,f=18;for(var n=0;u<d&&123!==(e=y.charCodeAt(u));){if(60===e){if(C(y,u))return u=A(y,u,L),f=7;break}T(e)&&0===n?n=-1:b(e)||(n=u),u++}return _=y.substring(p,u),-1===n?12:11}function ne(e,n){var t=u,r=p,a=m,i=f,o=_,s=g,c=e();return c&&!n||(u=t,p=r,m=a,f=i,_=o,g=s),c}function te(e,n,t){y=e||\"\",d=void 0===t?y.length:n+t,re(n||0)}function re(n){e.Debug.assert(n>=0),u=n,p=n,m=n,f=0,_=void 0,g=0}};var G=String.prototype.codePointAt?function(e,n){return e.codePointAt(n)}:function(e,n){var t=e.length;if(!(n<0||n>=t)){var r=e.charCodeAt(n);if(r>=55296&&r<=56319&&t>n+1){var a=e.charCodeAt(n+1);if(a>=56320&&a<=57343)return 1024*(r-55296)+a-56320+65536}return r}};function B(e){return e>=65536?2:1}}(ts||(ts={})),function(e){e.isExternalModuleNameRelative=function(n){return e.pathIsRelative(n)||e.isRootedDiskPath(n)},e.sortAndDeduplicateDiagnostics=function(n){return e.sortAndDeduplicate(n,e.compareDiagnostics)}}(ts||(ts={})),function(e){e.resolvingEmptyArray=[],e.emptyMap=e.createMap(),e.emptyUnderscoreEscapedMap=e.emptyMap,e.externalHelpersModuleNameText=\"tslib\",e.defaultMaximumTruncationLength=160,e.getDeclarationOfKind=function(e,n){var t=e.declarations;if(t)for(var r=0,a=t;r<a.length;r++){var i=a[r];if(i.kind===n)return i}},e.createUnderscoreEscapedMap=function(){return new e.Map},e.hasEntries=function(e){return!!e&&!!e.size},e.createSymbolTable=function(n){var t=e.createMap();if(n)for(var r=0,a=n;r<a.length;r++){var i=a[r];t.set(i.escapedName,i)}return t};var n,t,r=(n=\"\",{getText:function(){return n},write:t=function(e){return n+=e},rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:function(e,n){return t(e)},writeTrailingSemicolon:t,writeComment:t,getTextPos:function(){return n.length},getLine:function(){return 0},getColumn:function(){return 0},getIndent:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingComment:function(){return!1},hasTrailingWhitespace:function(){return!!n.length&&e.isWhiteSpaceLike(n.charCodeAt(n.length-1))},writeLine:function(){return n+=\" \"},increaseIndent:e.noop,decreaseIndent:e.noop,clear:function(){return n=\"\"},trackSymbol:e.noop,reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop});function a(n,t){return e.moduleResolutionOptionDeclarations.some((function(r){return!e.isJsonEqual(e.getCompilerOptionValue(n,r),e.getCompilerOptionValue(t,r))}))}function i(e,n){for(;e;){var t=n(e);if(\"quit\"===t)return;if(t)return e;e=e.parent}}function o(e,n){e.forEach((function(e,t){n.set(t,e)}))}function s(e){return e.end-e.pos}function c(n){return function(n){if(!(524288&n.flags)){(0!=(65536&n.flags)||e.forEachChild(n,c))&&(n.flags|=262144),n.flags|=524288}}(n),0!=(262144&n.flags)}function l(e){for(;e&&288!==e.kind;)e=e.parent;return e}function u(n,t){e.Debug.assert(n>=0);var r=e.getLineStarts(t),a=n,i=t.text;if(a+1===r.length)return i.length-1;var o=r[a],s=r[a+1]-1;for(e.Debug.assert(e.isLineBreak(i.charCodeAt(s)));o<=s&&e.isLineBreak(i.charCodeAt(s));)s--;return s}function d(e){return void 0===e||e.pos===e.end&&e.pos>=0&&1!==e.kind}function p(e){return!d(e)}function m(e,n,t){if(void 0===n||0===n.length)return e;for(var r=0;r<e.length&&t(e[r]);++r);return e.splice.apply(e,__spreadArrays([r,0],n)),e}function f(e,n,t){if(void 0===n)return e;for(var r=0;r<e.length&&t(e[r]);++r);return e.splice(r,0,n),e}function _(e){return V(e)||!!(1048576&T(e))}function g(e,n){return 42===e.charCodeAt(n+1)&&33===e.charCodeAt(n+2)}function y(n,t,r){return d(n)?n.pos:e.isJSDocNode(n)?e.skipTrivia((t||l(n)).text,n.pos,!1,!0):r&&e.hasJSDocNodes(n)?y(n.jsDoc[0]):317===n.kind&&n._children.length>0?y(n._children[0],t,r):e.skipTrivia((t||l(n)).text,n.pos)}function v(e,n,t){return void 0===t&&(t=!1),h(e.text,n,t)}function h(n,t,r){if(void 0===r&&(r=!1),d(t))return\"\";var a=n.substring(r?t.pos:e.skipTrivia(n,t.pos),t.end);return function e(n){return 292===n.kind||n.parent&&e(n.parent)}(t)&&(a=a.replace(/(^|\\r?\\n|\\r)\\s*\\*\\s*/g,\"$1\")),a}function b(e,n){return void 0===n&&(n=!1),v(l(e),e,n)}function E(e){return e.pos}function T(e){var n=e.emitNode;return n&&n.flags||0}function S(e){var n=cn(e);return 241===n.kind&&278===n.parent.kind}function x(n){return e.isModuleDeclaration(n)&&(10===n.name.kind||L(n))}function L(e){return!!(1024&e.flags)}function C(e){return x(e)&&A(e)}function A(n){switch(n.parent.kind){case 288:return e.isExternalModule(n.parent);case 249:return x(n.parent.parent)&&e.isSourceFile(n.parent.parent.parent)&&!e.isExternalModule(n.parent.parent.parent)}return!1}function D(n,t){switch(n.kind){case 288:case 250:case 278:case 248:case 229:case 230:case 231:case 161:case 160:case 162:case 163:case 243:case 200:case 201:return!0;case 222:return!e.isFunctionLike(t)}return!1}function k(n){switch(n.kind){case 164:case 165:case 159:case 166:case 169:case 170:case 298:case 244:case 213:case 245:case 246:case 314:case 243:case 160:case 161:case 162:case 163:case 200:case 201:return!0;default:return e.assertType(n),!1}}function N(e){switch(e.kind){case 253:case 252:return!0;default:return!1}}function I(e){return e&&0!==s(e)?b(e):\"(Missing)\"}function M(n){switch(n.kind){case 75:return n.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(n.text);case 153:return Qe(n.expression)?e.escapeLeadingUnderscores(n.expression.text):e.Debug.fail(\"Text of property name cannot be read from non-literal-valued ComputedPropertyNames\");default:return e.Debug.assertNever(n)}}function O(n,t,r,a,i,o,s){var c=P(n,t);return e.createFileDiagnostic(n,c.start,c.length,r,a,i,o,s)}function R(n,t){var r=e.createScanner(n.languageVersion,!0,n.languageVariant,n.text,void 0,t);r.scan();var a=r.getTokenPos();return e.createTextSpanFromBounds(a,r.getTextPos())}function P(n,t){var r=t;switch(t.kind){case 288:var a=e.skipTrivia(n.text,0,!1);return a===n.text.length?e.createTextSpan(0,0):R(n,a);case 241:case 190:case 244:case 213:case 245:case 248:case 247:case 282:case 243:case 200:case 160:case 162:case 163:case 246:case 158:case 157:r=t.name;break;case 201:return function(n,t){var r=e.skipTrivia(n.text,t.pos);if(t.body&&222===t.body.kind){var a=e.getLineAndCharacterOfPosition(n,t.body.pos).line;if(a<e.getLineAndCharacterOfPosition(n,t.body.end).line)return e.createTextSpan(r,u(a,n)-r+1)}return e.createTextSpanFromBounds(r,t.end)}(n,t);case 275:case 276:var i=e.skipTrivia(n.text,t.pos),o=t.statements.length>0?t.statements[0].pos:t.end;return e.createTextSpanFromBounds(i,o)}if(void 0===r)return R(n,t.pos);e.Debug.assert(!e.isJSDoc(r));var s=d(r),c=s||e.isJsxText(t)?r.pos:e.skipTrivia(n.text,r.pos);return s?(e.Debug.assert(c===r.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(c===r.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")):(e.Debug.assert(c>=r.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(c<=r.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")),e.createTextSpanFromBounds(c,r.end)}function w(e){return 6===e.scriptKind}function F(n){return!!(2&e.getCombinedNodeFlags(n))}function G(e){return 195===e.kind&&95===e.expression.kind}function B(n){return e.isImportTypeNode(n)&&e.isLiteralTypeNode(n.argument)&&e.isStringLiteral(n.argument.literal)}function V(e){return 225===e.kind&&10===e.expression.kind}e.changesAffectModuleResolution=function(e,n){return e.configFilePath!==n.configFilePath||a(e,n)},e.optionsHaveModuleResolutionChanges=a,e.findAncestor=i,e.forEachAncestor=function(n,t){for(;;){var r=t(n);if(\"quit\"===r)return;if(void 0!==r)return r;if(e.isSourceFile(n))return;n=n.parent}},e.forEachEntry=function(e,n){for(var t=e.entries(),r=t.next();!r.done;r=t.next()){var a=r.value,i=a[0],o=n(a[1],i);if(o)return o}},e.forEachKey=function(e,n){for(var t=e.keys(),r=t.next();!r.done;r=t.next()){var a=n(r.value);if(a)return a}},e.copyEntries=o,e.arrayToSet=function(n,t){return e.arrayToMap(n,t||function(e){return e},e.returnTrue)},e.cloneMap=function(n){var t=e.createMap();return o(n,t),t},e.usingSingleLineStringWriter=function(e){var n=r.getText();try{return e(r),r.getText()}finally{r.clear(),r.writeKeyword(n)}},e.getFullWidth=s,e.getResolvedModule=function(e,n){return e&&e.resolvedModules&&e.resolvedModules.get(n)},e.setResolvedModule=function(n,t,r){n.resolvedModules||(n.resolvedModules=e.createMap()),n.resolvedModules.set(t,r)},e.setResolvedTypeReferenceDirective=function(n,t,r){n.resolvedTypeReferenceDirectiveNames||(n.resolvedTypeReferenceDirectiveNames=e.createMap()),n.resolvedTypeReferenceDirectiveNames.set(t,r)},e.projectReferenceIsEqualTo=function(e,n){return e.path===n.path&&!e.prepend==!n.prepend&&!e.circular==!n.circular},e.moduleResolutionIsEqualTo=function(e,n){return e.isExternalLibraryImport===n.isExternalLibraryImport&&e.extension===n.extension&&e.resolvedFileName===n.resolvedFileName&&e.originalPath===n.originalPath&&(t=e.packageId,r=n.packageId,t===r||!!t&&!!r&&t.name===r.name&&t.subModuleName===r.subModuleName&&t.version===r.version);var t,r},e.packageIdToString=function(e){var n=e.name,t=e.subModuleName;return(t?n+\"/\"+t:n)+\"@\"+e.version},e.typeDirectiveIsEqualTo=function(e,n){return e.resolvedFileName===n.resolvedFileName&&e.primary===n.primary},e.hasChangesInResolutions=function(n,t,r,a){e.Debug.assert(n.length===t.length);for(var i=0;i<n.length;i++){var o=t[i],s=r&&r.get(n[i]);if(s?!o||!a(s,o):o)return!0}return!1},e.containsParseError=c,e.getSourceFileOfNode=l,e.isStatementWithLocals=function(e){switch(e.kind){case 222:case 250:case 229:case 230:case 231:return!0}return!1},e.getStartPositionOfLine=function(n,t){return e.Debug.assert(n>=0),e.getLineStarts(t)[n]},e.nodePosToString=function(n){var t=l(n),r=e.getLineAndCharacterOfPosition(t,n.pos);return t.fileName+\"(\"+(r.line+1)+\",\"+(r.character+1)+\")\"},e.getEndLinePosition=u,e.isFileLevelUniqueName=function(e,n,t){return!(t&&t(n)||e.identifiers.has(n))},e.nodeIsMissing=d,e.nodeIsPresent=p,e.insertStatementsAfterStandardPrologue=function(e,n){return m(e,n,V)},e.insertStatementsAfterCustomPrologue=function(e,n){return m(e,n,_)},e.insertStatementAfterStandardPrologue=function(e,n){return f(e,n,V)},e.insertStatementAfterCustomPrologue=function(e,n){return f(e,n,_)},e.isRecognizedTripleSlashComment=function(n,t,r){if(47===n.charCodeAt(t+1)&&t+2<r&&47===n.charCodeAt(t+2)){var a=n.substring(t,r);return!!(a.match(e.fullTripleSlashReferencePathRegEx)||a.match(e.fullTripleSlashAMDReferencePathRegEx)||a.match(U)||a.match(j))}return!1},e.isPinnedComment=g,e.getTokenPosOfNode=y,e.getNonDecoratorTokenPosOfNode=function(n,t){return d(n)||!n.decorators?y(n,t):e.skipTrivia((t||l(n)).text,n.decorators.end)},e.getSourceTextOfNodeFromSourceFile=v,e.getTextOfNodeFromSourceText=h,e.getTextOfNode=b,e.indexOfNode=function(n,t){return e.binarySearch(n,t,E,e.compareValues)},e.getEmitFlags=T,e.getLiteralText=function(n,t,r){if(!ln(n)&&n.parent&&!(e.isNumericLiteral(n)&&512&n.numericLiteralFlags||e.isBigIntLiteral(n)))return v(t,n);var a=r||16777216&T(n)?hn:Sn;switch(n.kind){case 10:return n.singleQuote?\"'\"+a(n.text,39)+\"'\":'\"'+a(n.text,34)+'\"';case 14:case 15:case 16:case 17:var i=n.rawText||function(e){return e.replace(fn,\"\\\\${\")}(a(n.text,96));switch(n.kind){case 14:return\"`\"+i+\"`\";case 15:return\"`\"+i+\"${\";case 16:return\"}\"+i+\"${\";case 17:return\"}\"+i+\"`\"}break;case 8:case 9:case 13:return n.text}return e.Debug.fail(\"Literal kind '\"+n.kind+\"' not accounted for.\")},e.getTextOfConstantValue=function(n){return e.isString(n)?'\"'+Sn(n)+'\"':\"\"+n},e.makeIdentifierFromModuleName=function(n){return e.getBaseFileName(n).replace(/^(\\d)/,\"_$1\").replace(/\\W/g,\"_\")},e.isBlockOrCatchScoped=function(n){return 0!=(3&e.getCombinedNodeFlags(n))||S(n)},e.isCatchClauseVariableDeclarationOrBindingElement=S,e.isAmbientModule=x,e.isModuleWithStringLiteralName=function(n){return e.isModuleDeclaration(n)&&10===n.name.kind},e.isNonGlobalAmbientModule=function(n){return e.isModuleDeclaration(n)&&e.isStringLiteral(n.name)},e.isEffectiveModuleDeclaration=function(n){return e.isModuleDeclaration(n)||e.isIdentifier(n)},e.isShorthandAmbientModuleSymbol=function(e){return(n=e.valueDeclaration)&&248===n.kind&&!n.body;var n},e.isBlockScopedContainerTopLevel=function(n){return 288===n.kind||248===n.kind||e.isFunctionLike(n)},e.isGlobalScopeAugmentation=L,e.isExternalModuleAugmentation=C,e.isModuleAugmentationExternal=A,e.getNonAugmentationDeclaration=function(n){return e.find(n.declarations,(function(n){return!(C(n)||e.isModuleDeclaration(n)&&L(n))}))},e.isEffectiveExternalModule=function(n,t){return e.isExternalModule(n)||t.isolatedModules||e.getEmitModuleKind(t)===e.ModuleKind.CommonJS&&!!n.commonJsModuleIndicator},e.isEffectiveStrictModeSourceFile=function(n,t){switch(n.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return!n.isDeclarationFile&&(!!e.getStrictOptionValue(t,\"alwaysStrict\")||(!!e.startsWithUseStrict(n.statements)||!(!e.isExternalModule(n)&&!t.isolatedModules)&&(e.getEmitModuleKind(t)>=e.ModuleKind.ES2015||!t.noImplicitUseStrict)))},e.isBlockScope=D,e.isDeclarationWithTypeParameters=function(n){switch(n.kind){case 308:case 315:case 303:return!0;default:return e.assertType(n),k(n)}},e.isDeclarationWithTypeParameterChildren=k,e.isAnyImportSyntax=N,e.isLateVisibilityPaintedStatement=function(e){switch(e.kind){case 253:case 252:case 224:case 244:case 243:case 248:case 246:case 245:case 247:return!0;default:return!1}},e.isAnyImportOrReExport=function(n){return N(n)||e.isExportDeclaration(n)},e.getEnclosingBlockScopeContainer=function(e){return i(e.parent,(function(e){return D(e,e.parent)}))},e.declarationNameToString=I,e.getNameFromIndexInfo=function(e){return e.declaration?I(e.declaration.parameters[0].name):void 0},e.getTextOfPropertyName=M,e.entityNameToString=function n(t){switch(t.kind){case 75:return 0===s(t)?e.idText(t):b(t);case 152:return n(t.left)+\".\"+n(t.right);case 193:return n(t.expression)+\".\"+n(t.name);default:throw e.Debug.assertNever(t)}},e.createDiagnosticForNode=function(e,n,t,r,a,i){return O(l(e),e,n,t,r,a,i)},e.createDiagnosticForNodeArray=function(n,t,r,a,i,o,s){var c=e.skipTrivia(n.text,t.pos);return e.createFileDiagnostic(n,c,t.end-c,r,a,i,o,s)},e.createDiagnosticForNodeInSourceFile=O,e.createDiagnosticForNodeFromMessageChain=function(e,n,t){var r=l(e),a=P(r,e);return{file:r,start:a.start,length:a.length,code:n.code,category:n.category,messageText:n.next?n:n.messageText,relatedInformation:t}},e.getSpanOfTokenAtPosition=R,e.getErrorSpanForNode=P,e.isExternalOrCommonJsModule=function(e){return void 0!==(e.externalModuleIndicator||e.commonJsModuleIndicator)},e.isJsonSourceFile=w,e.isEnumConst=function(n){return!!(2048&e.getCombinedModifierFlags(n))},e.isDeclarationReadonly=function(n){return!(!(64&e.getCombinedModifierFlags(n))||e.isParameterPropertyDeclaration(n,n.parent))},e.isVarConst=F,e.isLet=function(n){return!!(1&e.getCombinedNodeFlags(n))},e.isSuperCall=function(e){return 195===e.kind&&101===e.expression.kind},e.isImportCall=G,e.isImportMeta=function(n){return e.isMetaProperty(n)&&95===n.keywordToken&&\"meta\"===n.name.escapedText},e.isLiteralImportTypeNode=B,e.isPrologueDirective=V,e.getLeadingCommentRangesOfNode=function(n,t){return 11!==n.kind?e.getLeadingCommentRanges(t.text,n.pos):void 0},e.getJSDocCommentRanges=function(n,t){var r=155===n.kind||154===n.kind||200===n.kind||201===n.kind||199===n.kind?e.concatenate(e.getTrailingCommentRanges(t,n.pos),e.getLeadingCommentRanges(t,n.pos)):e.getLeadingCommentRanges(t,n.pos);return e.filter(r,(function(e){return 42===t.charCodeAt(e.pos+1)&&42===t.charCodeAt(e.pos+2)&&47!==t.charCodeAt(e.pos+3)}))},e.fullTripleSlashReferencePathRegEx=/^(\\/\\/\\/\\s*<reference\\s+path\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;var U=/^(\\/\\/\\/\\s*<reference\\s+types\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;e.fullTripleSlashAMDReferencePathRegEx=/^(\\/\\/\\/\\s*<amd-dependency\\s+path\\s*=\\s*)('|\")(.+?)\\2.*?\\/>/;var j=/^(\\/\\/\\/\\s*<reference\\s+no-default-lib\\s*=\\s*)('|\")(.+?)\\2\\s*\\/>/;function K(n){if(167<=n.kind&&n.kind<=187)return!0;switch(n.kind){case 124:case 147:case 139:case 150:case 142:case 127:case 143:case 140:case 145:case 136:return!0;case 109:return 204!==n.parent.kind;case 215:return!tt(n);case 154:return 185===n.parent.kind||180===n.parent.kind;case 75:152===n.parent.kind&&n.parent.right===n?n=n.parent:193===n.parent.kind&&n.parent.name===n&&(n=n.parent),e.Debug.assert(75===n.kind||152===n.kind||193===n.kind,\"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");case 152:case 193:case 103:var t=n.parent;if(171===t.kind)return!1;if(187===t.kind)return!t.isTypeOf;if(167<=t.kind&&t.kind<=187)return!0;switch(t.kind){case 215:return!tt(t);case 154:case 314:return n===t.constraint;case 158:case 157:case 155:case 241:return n===t.type;case 243:case 200:case 201:case 161:case 160:case 159:case 162:case 163:return n===t.type;case 164:case 165:case 166:case 198:return n===t.type;case 195:case 196:return e.contains(t.typeArguments,n);case 197:return!1}}return!1}function H(e){if(e)switch(e.kind){case 190:case 282:case 155:case 279:case 158:case 157:case 280:case 241:return!0}return!1}function W(e){return 242===e.parent.kind&&224===e.parent.parent.kind}function z(e,n,t){return e.properties.filter((function(e){if(279===e.kind){var r=M(e.name);return n===r||!!t&&t===r}return!1}))}function q(n){if(n&&n.statements.length){var t=n.statements[0].expression;return e.tryCast(t,e.isObjectLiteralExpression)}}function J(n,t){var r=q(n);return r?z(r,t):e.emptyArray}function X(n,t){for(e.Debug.assert(288!==n.kind);;){if(!(n=n.parent))return e.Debug.fail();switch(n.kind){case 153:if(e.isClassLike(n.parent.parent))return n;n=n.parent;break;case 156:155===n.parent.kind&&e.isClassElement(n.parent.parent)?n=n.parent.parent:e.isClassElement(n.parent)&&(n=n.parent);break;case 201:if(!t)continue;case 243:case 200:case 248:case 158:case 157:case 160:case 159:case 161:case 162:case 163:case 164:case 165:case 166:case 247:case 288:return n}}}function Y(e){var n=e.kind;return(193===n||194===n)&&101===e.expression.kind}function Q(e,n,t){switch(e.kind){case 244:return!0;case 158:return 244===n.kind;case 162:case 163:case 160:return void 0!==e.body&&244===n.kind;case 155:return void 0!==n.body&&(161===n.kind||160===n.kind||163===n.kind)&&244===t.kind}return!1}function Z(e,n,t){return void 0!==e.decorators&&Q(e,n,t)}function $(e,n,t){return Z(e,n,t)||ee(e,n)}function ee(n,t){switch(n.kind){case 244:return e.some(n.members,(function(e){return $(e,n,t)}));case 160:case 163:return e.some(n.parameters,(function(e){return Z(e,n,t)}));default:return!1}}function ne(e){var n=e.parent;return(266===n.kind||265===n.kind||267===n.kind)&&n.tagName===e}function te(e){switch(e.kind){case 101:case 99:case 105:case 90:case 13:case 191:case 192:case 193:case 194:case 195:case 196:case 197:case 216:case 198:case 217:case 199:case 200:case 213:case 201:case 204:case 202:case 203:case 206:case 207:case 208:case 209:case 212:case 210:case 214:case 264:case 265:case 268:case 211:case 205:case 218:return!0;case 152:for(;152===e.parent.kind;)e=e.parent;return 171===e.parent.kind||ne(e);case 75:if(171===e.parent.kind||ne(e))return!0;case 8:case 9:case 10:case 14:case 103:return re(e);default:return!1}}function re(e){var n=e.parent;switch(n.kind){case 241:case 155:case 158:case 157:case 282:case 279:case 190:return n.initializer===e;case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 275:case 238:return n.expression===e;case 229:var t=n;return t.initializer===e&&242!==t.initializer.kind||t.condition===e||t.incrementor===e;case 230:case 231:var r=n;return r.initializer===e&&242!==r.initializer.kind||r.expression===e;case 198:case 216:case 220:case 153:return e===n.expression;case 156:case 274:case 273:case 281:return!0;case 215:return n.expression===e&&tt(n);case 280:return n.objectAssignmentInitializer===e;default:return te(n)}}function ae(e){return 252===e.kind&&263===e.moduleReference.kind}function ie(e){return oe(e)}function oe(e){return!!e&&!!(131072&e.flags)}function se(n,t){if(195!==n.kind)return!1;var r=n,a=r.expression,i=r.arguments;if(75!==a.kind||\"require\"!==a.escapedText)return!1;if(1!==i.length)return!1;var o=i[0];return!t||e.isStringLiteralLike(o)}function ce(n){return oe(n)&&n.initializer&&e.isBinaryExpression(n.initializer)&&(56===n.initializer.operatorToken.kind||60===n.initializer.operatorToken.kind)&&n.name&&rt(n.name)&&ue(n.name,n.initializer.left)?n.initializer.right:n.initializer}function le(n,t){if(e.isCallExpression(n)){var r=Be(n.expression);return 200===r.kind||201===r.kind?n:void 0}return 200===n.kind||213===n.kind||201===n.kind?n:e.isObjectLiteralExpression(n)&&(0===n.properties.length||t)?n:void 0}function ue(n,t){return rn(n)&&rn(t)?an(n)==an(n):e.isIdentifier(n)&&_e(t)?(103===t.expression.kind||e.isIdentifier(t.expression)&&(\"window\"===t.expression.escapedText||\"self\"===t.expression.escapedText||\"global\"===t.expression.escapedText))&&ue(n,be(t)):!(!_e(n)||!_e(t))&&(Te(n)===Te(t)&&ue(n.expression,t.expression))}function de(n){return e.isIdentifier(n)&&\"exports\"===n.escapedText}function pe(n){return(e.isPropertyAccessExpression(n)||ge(n))&&e.isIdentifier(n.expression)&&\"module\"===n.expression.escapedText&&\"exports\"===Te(n)}function me(n){var t=function(n){if(e.isCallExpression(n)){if(!fe(n))return 0;var t=n.arguments[0];return de(t)||pe(t)?8:ye(t)&&\"prototype\"===Te(t)?9:7}if(62!==n.operatorToken.kind||!Tt(n.left))return 0;if(he(n.left.expression,!0)&&\"prototype\"===Te(n.left)&&e.isObjectLiteralExpression(xe(n)))return 6;return Se(n.left)}(n);return 5===t||oe(n)?t:0}function fe(n){return 3===e.length(n.arguments)&&e.isPropertyAccessExpression(n.expression)&&e.isIdentifier(n.expression.expression)&&\"Object\"===e.idText(n.expression.expression)&&\"defineProperty\"===e.idText(n.expression.name)&&Qe(n.arguments[1])&&he(n.arguments[0],!0)}function _e(n){return e.isPropertyAccessExpression(n)||ge(n)}function ge(n){return e.isElementAccessExpression(n)&&(Qe(n.argumentExpression)||nn(n.argumentExpression))}function ye(n,t){return e.isPropertyAccessExpression(n)&&(!t&&103===n.expression.kind||he(n.expression,!0))||ve(n,t)}function ve(e,n){return ge(e)&&(!n&&103===e.expression.kind||rt(e.expression)||ye(e.expression,!0))}function he(e,n){return rt(e)||ye(e,n)}function be(n){return e.isPropertyAccessExpression(n)?n.name:n.argumentExpression}function Ee(n){if(e.isPropertyAccessExpression(n))return n.name;var t=Be(n.argumentExpression);return e.isNumericLiteral(t)||e.isStringLiteralLike(t)?t:n}function Te(n){var t=Ee(n);if(t){if(e.isIdentifier(t))return t.escapedText;if(e.isStringLiteralLike(t)||e.isNumericLiteral(t))return e.escapeLeadingUnderscores(t.text)}if(e.isElementAccessExpression(n)&&nn(n.argumentExpression))return on(e.idText(n.argumentExpression.name))}function Se(n){if(103===n.expression.kind)return 4;if(pe(n))return 2;if(he(n.expression,!0)){if(it(n.expression))return 3;for(var t=n;!e.isIdentifier(t.expression);)t=t.expression;var r=t.expression;if((\"exports\"===r.escapedText||\"module\"===r.escapedText&&\"exports\"===Te(t))&&ye(n))return 1;if(he(n,!0)||e.isElementAccessExpression(n)&&en(n)&&103!==n.expression.kind)return 5}return 0}function xe(n){for(;e.isBinaryExpression(n.right);)n=n.right;return n.right}function Le(n){switch(n.parent.kind){case 253:case 259:return n.parent;case 263:return n.parent.parent;case 195:return G(n.parent)||se(n.parent,!1)?n.parent:void 0;case 186:return e.Debug.assert(e.isStringLiteral(n)),e.tryCast(n.parent.parent,e.isImportTypeNode);default:return}}function Ce(e){return 315===e.kind||308===e.kind||309===e.kind}function Ae(n){return e.isExpressionStatement(n)&&e.isBinaryExpression(n.expression)&&0!==me(n.expression)&&e.isBinaryExpression(n.expression.right)&&(56===n.expression.right.operatorToken.kind||60===n.expression.right.operatorToken.kind)?n.expression.right.right:void 0}function De(e){switch(e.kind){case 224:var n=ke(e);return n&&n.initializer;case 158:case 279:return e.initializer}}function ke(n){return e.isVariableStatement(n)?e.firstOrUndefined(n.declarationList.declarations):void 0}function Ne(n){return e.isModuleDeclaration(n)&&n.body&&248===n.body.kind?n.body:void 0}function Ie(n){var t=n.parent;return 279===t.kind||258===t.kind||158===t.kind||225===t.kind&&193===n.kind||Ne(t)||e.isBinaryExpression(n)&&62===n.operatorToken.kind?t:t.parent&&(ke(t.parent)===n||e.isBinaryExpression(t)&&62===t.operatorToken.kind)?t.parent:t.parent&&t.parent.parent&&(ke(t.parent.parent)||De(t.parent.parent)===n||Ae(t.parent.parent))?t.parent.parent:void 0}function Me(e){return Oe(Re(e))}function Oe(n){var t,r=Ae(n)||(t=n,e.isExpressionStatement(t)&&t.expression&&e.isBinaryExpression(t.expression)&&62===t.expression.operatorToken.kind?t.expression.right:void 0)||De(n)||ke(n)||Ne(n)||n;return r&&e.isFunctionLike(r)?r:void 0}function Re(n){return e.Debug.assertDefined(i(n.parent,e.isJSDoc)).parent}function Pe(n){var t=e.isJSDocParameterTag(n)?n.typeExpression&&n.typeExpression.type:n.type;return void 0!==n.dotDotDotToken||!!t&&299===t.kind}function we(e){for(var n=e.parent;;){switch(n.kind){case 208:var t=n.operatorToken.kind;return Zn(t)&&n.left===e?62===t?1:2:0;case 206:case 207:var r=n.operator;return 45===r||46===r?2:0;case 230:case 231:return n.initializer===e?1:0;case 199:case 191:case 212:case 217:e=n;break;case 280:if(n.name!==e)return 0;e=n.parent;break;case 279:if(n.name===e)return 0;e=n.parent;break;default:return 0}n=e.parent}}function Fe(e,n){for(;e&&e.kind===n;)e=e.parent;return e}function Ge(e){return Fe(e,199)}function Be(e){for(;199===e.kind;)e=e.expression;return e}function Ve(n){return rt(n)||e.isClassExpression(n)}function Ue(e){return Ve(je(e))}function je(n){return e.isExportAssignment(n)?n.expression:n.right}function Ke(n){var t=He(n);if(t&&oe(n)){var r=e.getJSDocAugmentsTag(n);if(r)return r.class}return t}function He(e){var n=qe(e.heritageClauses,89);return n&&n.types.length>0?n.types[0]:void 0}function We(e){var n=qe(e.heritageClauses,112);return n?n.types:void 0}function ze(e){var n=qe(e.heritageClauses,89);return n?n.types:void 0}function qe(e,n){if(e)for(var t=0,r=e;t<r.length;t++){var a=r[t];if(a.token===n)return a}}function Je(e){return 76<=e&&e<=151}function Xe(e){return 121<=e&&e<=151}function Ye(e){return Je(e)&&!Xe(e)}function Qe(n){return e.isStringLiteralLike(n)||e.isNumericLiteral(n)}function Ze(n){return e.isPrefixUnaryExpression(n)&&(39===n.operator||40===n.operator)&&e.isNumericLiteral(n.operand)}function $e(n){var t=e.getNameOfDeclaration(n);return!!t&&en(t)}function en(n){if(153!==n.kind&&194!==n.kind)return!1;var t=e.isElementAccessExpression(n)?n.argumentExpression:n.expression;return!Qe(t)&&!Ze(t)&&!nn(t)}function nn(n){return e.isPropertyAccessExpression(n)&&sn(n.expression)}function tn(n){switch(n.kind){case 75:return n.escapedText;case 10:case 8:return e.escapeLeadingUnderscores(n.text);case 153:var t=n.expression;return nn(t)?on(e.idText(t.name)):Qe(t)?e.escapeLeadingUnderscores(t.text):void 0;default:return e.Debug.assertNever(n)}}function rn(e){switch(e.kind){case 75:case 10:case 14:case 8:return!0;default:return!1}}function an(n){return 75===n.kind?e.idText(n):n.text}function on(e){return\"__@\"+e}function sn(e){return 75===e.kind&&\"Symbol\"===e.escapedText}function cn(e){for(;190===e.kind;)e=e.parent.parent;return e}function ln(n){return e.positionIsSynthesized(n.pos)||e.positionIsSynthesized(n.end)}function un(e,n,t){switch(e){case 196:return t?0:1;case 206:case 203:case 204:case 202:case 205:case 209:case 211:return 1;case 208:switch(n){case 42:case 62:case 63:case 64:case 66:case 65:case 67:case 68:case 69:case 70:case 71:case 72:case 74:case 73:return 1}}return 0}function dn(e){return 208===e.kind?e.operatorToken.kind:206===e.kind||207===e.kind?e.operator:e.kind}function pn(e,n,t){switch(e){case 320:return 0;case 212:return 1;case 211:return 2;case 209:return 4;case 208:switch(n){case 27:return 0;case 62:case 63:case 64:case 66:case 65:case 67:case 68:case 69:case 70:case 71:case 72:case 74:case 73:return 3;default:return mn(n)}case 206:case 203:case 204:case 202:case 205:return 16;case 207:return 17;case 195:return 18;case 196:return t?19:18;case 197:case 193:case 194:return 19;case 103:case 101:case 75:case 99:case 105:case 90:case 8:case 9:case 10:case 191:case 192:case 200:case 201:case 213:case 264:case 265:case 268:case 13:case 14:case 210:case 199:case 214:return 20;default:return-1}}function mn(e){switch(e){case 60:return 4;case 56:return 5;case 55:return 6;case 51:return 7;case 52:return 8;case 50:return 9;case 34:case 35:case 36:case 37:return 10;case 29:case 31:case 32:case 33:case 97:case 96:case 122:return 11;case 47:case 48:case 49:return 12;case 39:case 40:return 13;case 41:case 43:case 44:return 14;case 42:return 15}return-1}e.isPartOfTypeNode=K,e.isChildOfNodeWithKind=function(e,n){for(;e;){if(e.kind===n)return!0;e=e.parent}return!1},e.forEachReturnStatement=function(n,t){return function n(r){switch(r.kind){case 234:return t(r);case 250:case 222:case 226:case 227:case 228:case 229:case 230:case 231:case 235:case 236:case 275:case 276:case 237:case 239:case 278:return e.forEachChild(r,n)}}(n)},e.forEachYieldExpression=function(n,t){return function n(r){switch(r.kind){case 211:t(r);var a=r.expression;return void(a&&n(a));case 247:case 245:case 248:case 246:case 244:case 213:return;default:if(e.isFunctionLike(r)){if(r.name&&153===r.name.kind)return void n(r.name.expression)}else K(r)||e.forEachChild(r,n)}}(n)},e.getRestParameterElementType=function(n){return n&&173===n.kind?n.elementType:n&&168===n.kind?e.singleOrUndefined(n.typeArguments):void 0},e.getMembersOfDeclaration=function(e){switch(e.kind){case 245:case 244:case 213:case 172:return e.members;case 192:return e.properties}},e.isVariableLike=H,e.isVariableLikeOrAccessor=function(n){return H(n)||e.isAccessor(n)},e.isVariableDeclarationInVariableStatement=W,e.isValidESSymbolDeclaration=function(n){return e.isVariableDeclaration(n)?F(n)&&e.isIdentifier(n.name)&&W(n):e.isPropertyDeclaration(n)?qn(n)&&zn(n):e.isPropertySignature(n)&&qn(n)},e.introducesArgumentsExoticObject=function(e){switch(e.kind){case 160:case 159:case 161:case 162:case 163:case 243:case 200:return!0}return!1},e.unwrapInnermostStatementOfLabel=function(e,n){for(;;){if(n&&n(e),237!==e.statement.kind)return e.statement;e=e.statement}},e.isFunctionBlock=function(n){return n&&222===n.kind&&e.isFunctionLike(n.parent)},e.isObjectLiteralMethod=function(e){return e&&160===e.kind&&192===e.parent.kind},e.isObjectLiteralOrClassExpressionMethod=function(e){return 160===e.kind&&(192===e.parent.kind||213===e.parent.kind)},e.isIdentifierTypePredicate=function(e){return e&&1===e.kind},e.isThisTypePredicate=function(e){return e&&0===e.kind},e.getPropertyAssignment=z,e.getTsConfigObjectLiteralExpression=q,e.getTsConfigPropArrayElementValue=function(n,t,r){return e.firstDefined(J(n,t),(function(n){return e.isArrayLiteralExpression(n.initializer)?e.find(n.initializer.elements,(function(n){return e.isStringLiteral(n)&&n.text===r})):void 0}))},e.getTsConfigPropArray=J,e.getContainingFunction=function(n){return i(n.parent,e.isFunctionLike)},e.getContainingFunctionDeclaration=function(n){return i(n.parent,e.isFunctionLikeDeclaration)},e.getContainingClass=function(n){return i(n.parent,e.isClassLike)},e.getThisContainer=X,e.getNewTargetContainer=function(e){var n=X(e,!1);if(n)switch(n.kind){case 161:case 243:case 200:return n}},e.getSuperContainer=function(n,t){for(;;){if(!(n=n.parent))return n;switch(n.kind){case 153:n=n.parent;break;case 243:case 200:case 201:if(!t)continue;case 158:case 157:case 160:case 159:case 161:case 162:case 163:return n;case 156:155===n.parent.kind&&e.isClassElement(n.parent.parent)?n=n.parent.parent:e.isClassElement(n.parent)&&(n=n.parent)}}},e.getImmediatelyInvokedFunctionExpression=function(e){if(200===e.kind||201===e.kind){for(var n=e,t=e.parent;199===t.kind;)n=t,t=t.parent;if(195===t.kind&&t.expression===n)return t}},e.isSuperOrSuperProperty=function(e){return 101===e.kind||Y(e)},e.isSuperProperty=Y,e.isThisProperty=function(e){var n=e.kind;return(193===n||194===n)&&103===e.expression.kind},e.getEntityNameFromTypeNode=function(e){switch(e.kind){case 168:return e.typeName;case 215:return rt(e.expression)?e.expression:void 0;case 75:case 152:return e}},e.getInvokedExpression=function(e){switch(e.kind){case 197:return e.tag;case 266:case 265:return e.tagName;default:return e.expression}},e.nodeCanBeDecorated=Q,e.nodeIsDecorated=Z,e.nodeOrChildIsDecorated=$,e.childIsDecorated=ee,e.isJSXTagName=ne,e.isExpressionNode=te,e.isInExpressionContext=re,e.isExternalModuleImportEqualsDeclaration=ae,e.getExternalModuleImportEqualsDeclarationExpression=function(n){return e.Debug.assert(ae(n)),n.moduleReference.expression},e.isInternalModuleImportEqualsDeclaration=function(e){return 252===e.kind&&263!==e.moduleReference.kind},e.isSourceFileJS=ie,e.isSourceFileNotJS=function(e){return!oe(e)},e.isInJSFile=oe,e.isInJsonFile=function(e){return!!e&&!!(33554432&e.flags)},e.isSourceFileNotJson=function(e){return!w(e)},e.isInJSDoc=function(e){return!!e&&!!(4194304&e.flags)},e.isJSDocIndexSignature=function(n){return e.isTypeReferenceNode(n)&&e.isIdentifier(n.typeName)&&\"Object\"===n.typeName.escapedText&&n.typeArguments&&2===n.typeArguments.length&&(142===n.typeArguments[0].kind||139===n.typeArguments[0].kind)},e.isRequireCall=se,e.isSingleOrDoubleQuote=function(e){return 39===e||34===e},e.isStringDoubleQuoted=function(e,n){return 34===v(n,e).charCodeAt(0)},e.getDeclarationOfExpando=function(n){if(n.parent){var t,r;if(e.isVariableDeclaration(n.parent)&&n.parent.initializer===n){if(!oe(n)&&!F(n.parent))return;t=n.parent.name,r=n.parent}else if(e.isBinaryExpression(n.parent)){var a=n.parent,i=n.parent.operatorToken.kind;if(62===i&&a.right===n)r=t=a.left;else if(!(56!==i&&60!==i||(e.isVariableDeclaration(a.parent)&&a.parent.initializer===a?(t=a.parent.name,r=a.parent):e.isBinaryExpression(a.parent)&&62===a.parent.operatorToken.kind&&a.parent.right===a&&(r=t=a.parent.left),t&&he(t)&&ue(t,a.left))))return}if(t&&le(n,it(t)))return r}},e.isAssignmentDeclaration=function(n){return e.isBinaryExpression(n)||Tt(n)||e.isIdentifier(n)||e.isCallExpression(n)},e.getEffectiveInitializer=ce,e.getDeclaredExpandoInitializer=function(e){var n=ce(e);return n&&le(n,it(e.name))},e.getAssignedExpandoInitializer=function(n){if(n&&n.parent&&e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind){var t=it(n.parent.left);return le(n.parent.right,t)||function(n,t,r){var a=e.isBinaryExpression(t)&&(56===t.operatorToken.kind||60===t.operatorToken.kind)&&le(t.right,r);if(a&&ue(n,t.left))return a}(n.parent.left,n.parent.right,t)}if(n&&e.isCallExpression(n)&&fe(n)){var r=function(n,t){return e.forEach(n.properties,(function(n){return e.isPropertyAssignment(n)&&e.isIdentifier(n.name)&&\"value\"===n.name.escapedText&&n.initializer&&le(n.initializer,t)}))}(n.arguments[2],\"prototype\"===n.arguments[1].text);if(r)return r}},e.getExpandoInitializer=le,e.isDefaultedExpandoInitializer=function(n){var t=e.isVariableDeclaration(n.parent)?n.parent.name:e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind?n.parent.left:void 0;return t&&le(n.right,it(t))&&rt(t)&&ue(t,n.left)},e.getNameOfExpando=function(n){if(e.isBinaryExpression(n.parent)){var t=56!==n.parent.operatorToken.kind&&60!==n.parent.operatorToken.kind||!e.isBinaryExpression(n.parent.parent)?n.parent:n.parent.parent;if(62===t.operatorToken.kind&&e.isIdentifier(t.left))return t.left}else if(e.isVariableDeclaration(n.parent))return n.parent.name},e.getRightMostAssignedExpression=function(e){for(;nt(e,!0);)e=e.right;return e},e.isExportsIdentifier=de,e.isModuleExportsAccessExpression=pe,e.getAssignmentDeclarationKind=me,e.isBindableObjectDefinePropertyCall=fe,e.isLiteralLikeAccess=_e,e.isLiteralLikeElementAccess=ge,e.isBindableStaticAccessExpression=ye,e.isBindableStaticElementAccessExpression=ve,e.isBindableStaticNameExpression=he,e.getNameOrArgument=be,e.getElementOrPropertyAccessArgumentExpressionOrName=Ee,e.getElementOrPropertyAccessName=Te,e.getAssignmentDeclarationPropertyAccessKind=Se,e.getInitializerOfBinaryExpression=xe,e.isPrototypePropertyAssignment=function(n){return e.isBinaryExpression(n)&&3===me(n)},e.isSpecialPropertyDeclaration=function(n){return oe(n)&&n.parent&&225===n.parent.kind&&(!e.isElementAccessExpression(n)||ge(n))&&!!e.getJSDocTypeTag(n.parent)},e.isFunctionSymbol=function(n){if(!n||!n.valueDeclaration)return!1;var t=n.valueDeclaration;return 243===t.kind||e.isVariableDeclaration(t)&&t.initializer&&e.isFunctionLike(t.initializer)},e.importFromModuleSpecifier=function(n){return Le(n)||e.Debug.failBadSyntaxKind(n.parent)},e.tryGetImportFromModuleSpecifier=Le,e.getExternalModuleName=function(n){switch(n.kind){case 253:case 259:return n.moduleSpecifier;case 252:return 263===n.moduleReference.kind?n.moduleReference.expression:void 0;case 187:return B(n)?n.argument.literal:void 0;default:return e.Debug.assertNever(n)}},e.getNamespaceDeclarationNode=function(n){switch(n.kind){case 253:return n.importClause&&e.tryCast(n.importClause.namedBindings,e.isNamespaceImport);case 252:return n;case 259:return;default:return e.Debug.assertNever(n)}},e.isDefaultImport=function(e){return 253===e.kind&&!!e.importClause&&!!e.importClause.name},e.hasQuestionToken=function(e){if(e)switch(e.kind){case 155:case 160:case 159:case 280:case 279:case 158:case 157:return void 0!==e.questionToken}return!1},e.isJSDocConstructSignature=function(n){var t=e.isJSDocFunctionType(n)?e.firstOrUndefined(n.parameters):void 0,r=e.tryCast(t&&t.name,e.isIdentifier);return!!r&&\"new\"===r.escapedText},e.isJSDocTypeAlias=Ce,e.isTypeAlias=function(n){return Ce(n)||e.isTypeAliasDeclaration(n)},e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=De,e.getJSDocCommentsAndTags=function(n){var t;H(n)&&e.hasInitializer(n)&&e.hasJSDocNodes(n.initializer)&&(t=e.append(t,e.last(n.initializer.jsDoc)));for(var r=n;r&&r.parent;){if(e.hasJSDocNodes(r)&&(t=e.append(t,e.last(r.jsDoc))),155===r.kind){t=e.addRange(t,e.getJSDocParameterTags(r));break}if(154===r.kind){t=e.addRange(t,e.getJSDocTypeParameterTags(r));break}r=Ie(r)}return t||e.emptyArray},e.getParameterSymbolFromJSDoc=function(n){if(n.symbol)return n.symbol;if(e.isIdentifier(n.name)){var t=n.name.escapedText,r=Me(n);if(r){var a=e.find(r.parameters,(function(e){return 75===e.name.kind&&e.name.escapedText===t}));return a&&a.symbol}}},e.getHostSignatureFromJSDoc=Me,e.getHostSignatureFromJSDocHost=Oe,e.getJSDocHost=Re,e.getTypeParameterFromJsDoc=function(n){var t=n.name.escapedText,r=n.parent.parent.parent.typeParameters;return r&&e.find(r,(function(e){return e.name.escapedText===t}))},e.hasRestParameter=function(n){var t=e.lastOrUndefined(n.parameters);return!!t&&Pe(t)},e.isRestParameter=Pe,function(e){e[e.None=0]=\"None\",e[e.Definite=1]=\"Definite\",e[e.Compound=2]=\"Compound\"}(e.AssignmentKind||(e.AssignmentKind={})),e.getAssignmentTargetKind=we,e.isAssignmentTarget=function(e){return 0!==we(e)},e.isNodeWithPossibleHoistedDeclaration=function(e){switch(e.kind){case 222:case 224:case 235:case 226:case 236:case 250:case 275:case 276:case 237:case 229:case 230:case 231:case 227:case 228:case 239:case 278:return!0}return!1},e.isValueSignatureDeclaration=function(n){return e.isFunctionExpression(n)||e.isArrowFunction(n)||e.isMethodOrAccessor(n)||e.isFunctionDeclaration(n)||e.isConstructorDeclaration(n)},e.walkUpParenthesizedTypes=function(e){return Fe(e,181)},e.walkUpParenthesizedExpressions=Ge,e.skipParentheses=Be,e.isDeleteTarget=function(e){return(193===e.kind||194===e.kind)&&((e=Ge(e.parent))&&202===e.kind)},e.isNodeDescendantOf=function(e,n){for(;e;){if(e===n)return!0;e=e.parent}return!1},e.isDeclarationName=function(n){return!e.isSourceFile(n)&&!e.isBindingPattern(n)&&e.isDeclaration(n.parent)&&n.parent.name===n},e.getDeclarationFromName=function(n){var t=n.parent;switch(n.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(t))return t.parent;case 75:if(e.isDeclaration(t))return t.name===n?t:void 0;if(e.isQualifiedName(t)){var r=t.parent;return e.isJSDocParameterTag(r)&&r.name===t?r:void 0}var a=t.parent;return e.isBinaryExpression(a)&&0!==me(a)&&(a.left.symbol||a.symbol)&&e.getNameOfDeclaration(a)===n?a:void 0;default:return}},e.isLiteralComputedPropertyDeclarationName=function(n){return Qe(n)&&153===n.parent.kind&&e.isDeclaration(n.parent.parent)},e.isIdentifierName=function(e){var n=e.parent;switch(n.kind){case 158:case 157:case 160:case 159:case 162:case 163:case 282:case 279:case 193:return n.name===e;case 152:if(n.right===e){for(;152===n.kind;)n=n.parent;return 171===n.kind||168===n.kind}return!1;case 190:case 257:return n.propertyName===e;case 261:case 271:return!0}return!1},e.isAliasSymbolDeclaration=function(n){return 252===n.kind||251===n.kind||254===n.kind&&!!n.name||255===n.kind||257===n.kind||261===n.kind||258===n.kind&&Ue(n)||e.isBinaryExpression(n)&&2===me(n)&&Ue(n)||e.isPropertyAccessExpression(n)&&e.isBinaryExpression(n.parent)&&n.parent.left===n&&62===n.parent.operatorToken.kind&&Ve(n.parent.right)||280===n.kind||279===n.kind&&Ve(n.initializer)},e.exportAssignmentIsAlias=Ue,e.getExportAssignmentExpression=je,e.getPropertyAssignmentAliasLikeExpression=function(e){return 280===e.kind?e.name:279===e.kind?e.initializer:e.parent.right},e.getEffectiveBaseTypeNode=Ke,e.getClassExtendsHeritageElement=He,e.getClassImplementsHeritageClauseElements=We,e.getAllSuperTypeNodes=function(n){return e.isInterfaceDeclaration(n)?ze(n)||e.emptyArray:e.isClassLike(n)&&e.concatenate(e.singleElementArray(Ke(n)),We(n))||e.emptyArray},e.getInterfaceBaseTypeNodes=ze,e.getHeritageClause=qe,e.getAncestor=function(e,n){for(;e;){if(e.kind===n)return e;e=e.parent}},e.isKeyword=Je,e.isContextualKeyword=Xe,e.isNonContextualKeyword=Ye,e.isFutureReservedKeyword=function(e){return 112<=e&&e<=120},e.isStringANonContextualKeyword=function(n){var t=e.stringToToken(n);return void 0!==t&&Ye(t)},e.isStringAKeyword=function(n){var t=e.stringToToken(n);return void 0!==t&&Je(t)},e.isIdentifierANonContextualKeyword=function(e){var n=e.originalKeywordKind;return!!n&&!Xe(n)},e.isTrivia=function(e){return 2<=e&&e<=7},function(e){e[e.Normal=0]=\"Normal\",e[e.Generator=1]=\"Generator\",e[e.Async=2]=\"Async\",e[e.Invalid=4]=\"Invalid\",e[e.AsyncGenerator=3]=\"AsyncGenerator\"}(e.FunctionFlags||(e.FunctionFlags={})),e.getFunctionFlags=function(e){if(!e)return 4;var n=0;switch(e.kind){case 243:case 200:case 160:e.asteriskToken&&(n|=1);case 201:Wn(e,256)&&(n|=2)}return e.body||(n|=4),n},e.isAsyncFunction=function(e){switch(e.kind){case 243:case 200:case 201:case 160:return void 0!==e.body&&void 0===e.asteriskToken&&Wn(e,256)}return!1},e.isStringOrNumericLiteralLike=Qe,e.isSignedNumericLiteral=Ze,e.hasDynamicName=$e,e.isDynamicName=en,e.isWellKnownSymbolSyntactically=nn,e.getPropertyNameForPropertyNameNode=tn,e.isPropertyNameLiteral=rn,e.getTextOfIdentifierOrLiteral=an,e.getEscapedTextOfIdentifierOrLiteral=function(n){return 75===n.kind?n.escapedText:e.escapeLeadingUnderscores(n.text)},e.getPropertyNameForKnownSymbolName=on,e.isKnownSymbol=function(n){return e.startsWith(n.escapedName,\"__@\")},e.isESSymbolIdentifier=sn,e.isPushOrUnshiftIdentifier=function(e){return\"push\"===e.escapedText||\"unshift\"===e.escapedText},e.isParameterDeclaration=function(e){return 155===cn(e).kind},e.getRootDeclaration=cn,e.nodeStartsNewLexicalEnvironment=function(e){var n=e.kind;return 161===n||200===n||243===n||201===n||160===n||162===n||163===n||248===n||288===n},e.nodeIsSynthesized=ln,e.getOriginalSourceFile=function(n){return e.getParseTreeNode(n,e.isSourceFile)||n},function(e){e[e.Left=0]=\"Left\",e[e.Right=1]=\"Right\"}(e.Associativity||(e.Associativity={})),e.getExpressionAssociativity=function(e){var n=dn(e),t=196===e.kind&&void 0!==e.arguments;return un(e.kind,n,t)},e.getOperatorAssociativity=un,e.getExpressionPrecedence=function(e){var n=dn(e),t=196===e.kind&&void 0!==e.arguments;return pn(e.kind,n,t)},e.getOperator=dn,e.getOperatorPrecedence=pn,e.getBinaryOperatorPrecedence=mn,e.createDiagnosticCollection=function(){var n=[],t=[],r=e.createMap(),a=!1;return{add:function(i){var o;i.file?(o=r.get(i.file.fileName))||(o=[],r.set(i.file.fileName,o),e.insertSorted(t,i.file.fileName,e.compareStringsCaseSensitive)):(a&&(a=!1,n=n.slice()),o=n);e.insertSorted(o,i,e.compareDiagnostics)},lookup:function(t){var a;a=t.file?r.get(t.file.fileName):n;if(!a)return;var i=e.binarySearch(a,t,e.identity,e.compareDiagnosticsSkipRelatedInformation);if(i>=0)return a[i];return},getGlobalDiagnostics:function(){return a=!0,n},getDiagnostics:function(a){if(a)return r.get(a)||[];var i=e.flatMapToMutable(t,(function(e){return r.get(e)}));if(!n.length)return i;return i.unshift.apply(i,n),i},reattachFileDiagnostics:function(n){e.forEach(r.get(n.fileName),(function(e){return e.file=n}))}}};var fn=/\\$\\{/g;var _n=/[\\\\\\\"\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,gn=/[\\\\\\'\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,yn=/[\\\\\\`]/g,vn=e.createMapFromTemplate({\"\\t\":\"\\\\t\",\"\\v\":\"\\\\v\",\"\\f\":\"\\\\f\",\"\\b\":\"\\\\b\",\"\\r\":\"\\\\r\",\"\\n\":\"\\\\n\",\"\\\\\":\"\\\\\\\\\",'\"':'\\\\\"',\"'\":\"\\\\'\",\"`\":\"\\\\`\",\"\\u2028\":\"\\\\u2028\",\"\\u2029\":\"\\\\u2029\",\"\":\"\\\\u0085\"});function hn(e,n){var t=96===n?yn:39===n?gn:_n;return e.replace(t,bn)}function bn(e,n,t){if(0===e.charCodeAt(0)){var r=t.charCodeAt(n+e.length);return r>=48&&r<=57?\"\\\\x00\":\"\\\\0\"}return vn.get(e)||En(e.charCodeAt(0))}function En(e){return\"\\\\u\"+(\"0000\"+e.toString(16).toUpperCase()).slice(-4)}e.escapeString=hn,e.stripQuotes=function(e){var n,t=e.length;return t>=2&&e.charCodeAt(0)===e.charCodeAt(t-1)&&(39===(n=e.charCodeAt(0))||34===n||96===n)?e.substring(1,t-1):e},e.isIntrinsicJsxName=function(n){var t=n.charCodeAt(0);return t>=97&&t<=122||e.stringContains(n,\"-\")};var Tn=/[^\\u0000-\\u007F]/g;function Sn(e,n){return e=hn(e,n),Tn.test(e)?e.replace(Tn,(function(e){return En(e.charCodeAt(0))})):e}e.escapeNonAsciiString=Sn;var xn=[\"\",\"    \"];function Ln(e){return void 0===xn[e]&&(xn[e]=Ln(e-1)+xn[1]),xn[e]}function Cn(){return xn[1].length}function An(e,n,t){return n.moduleName||Dn(e,n.fileName,t&&t.fileName)}function Dn(n,t,r){var a=function(e){return n.getCanonicalFileName(e)},i=e.toPath(r?e.getDirectoryPath(r):n.getCommonSourceDirectory(),n.getCurrentDirectory(),a),o=e.getNormalizedAbsolutePath(t,n.getCurrentDirectory()),s=e.getRelativePathToDirectoryOrUrl(i,o,i,a,!1),c=e.removeFileExtension(s);return r?e.ensurePathIsNonModuleName(c):c}function kn(n,t,r,a,i){var o=t.declarationDir||t.outDir,s=o?Mn(n,o,r,a,i):n;return e.removeFileExtension(s)+\".d.ts\"}function Nn(e,n,t){return!(n.getCompilerOptions().noEmitForJsFiles&&ie(e))&&!e.isDeclarationFile&&!n.isSourceFileFromExternalLibrary(e)&&!(w(e)&&n.getResolvedProjectReferenceToRedirect(e.fileName))&&(t||!n.isSourceOfProjectReferenceRedirect(e.fileName))}function In(e,n,t){return Mn(e,t,n.getCurrentDirectory(),n.getCommonSourceDirectory(),(function(e){return n.getCanonicalFileName(e)}))}function Mn(n,t,r,a,i){var o=e.getNormalizedAbsolutePath(n,r);return o=0===i(o).indexOf(i(a))?o.substring(a.length):o,e.combinePaths(t,o)}function On(n,t){return e.getLineAndCharacterOfPosition(n,t).line}function Rn(n,t){return e.computeLineAndCharacterOfPosition(n,t).line}function Pn(e){if(e&&e.parameters.length>0){var n=2===e.parameters.length&&wn(e.parameters[0]);return e.parameters[n?1:0]}}function wn(e){return Fn(e.name)}function Fn(e){return!!e&&75===e.kind&&Gn(e)}function Gn(e){return 103===e.originalKeywordKind}function Bn(n){var t=n.type;return t||!oe(n)?t:e.isJSDocPropertyLikeTag(n)?n.typeExpression&&n.typeExpression.type:e.getJSDocType(n)}function Vn(e,n,t,r){Un(e,n,t.pos,r)}function Un(e,n,t,r){r&&r.length&&t!==r[0].pos&&Rn(e,t)!==Rn(e,r[0].pos)&&n.writeLine()}function jn(e,n,t,r,a,i,o,s){if(r&&r.length>0){a&&t.writeSpace(\" \");for(var c=!1,l=0,u=r;l<u.length;l++){var d=u[l];c&&(t.writeSpace(\" \"),c=!1),s(e,n,t,d.pos,d.end,o),d.hasTrailingNewLine?t.writeLine():c=!0}c&&i&&t.writeSpace(\" \")}}function Kn(e,n,t,r,a,i){var o=Math.min(n,i-1),s=e.substring(a,o).replace(/^\\s+|\\s+$/g,\"\");s?(t.writeComment(s),o!==n&&t.writeLine()):t.rawWrite(r)}function Hn(n,t,r){for(var a=0;t<r&&e.isWhiteSpaceSingleLine(n.charCodeAt(t));t++)9===n.charCodeAt(t)?a+=Cn()-a%Cn():a++;return a}function Wn(e,n){return!!Jn(e,n)}function zn(e){return Wn(e,32)}function qn(e){return Wn(e,64)}function Jn(e,n){return Xn(e)&n}function Xn(e){if(536870912&e.modifierFlagsCache)return-536870913&e.modifierFlagsCache;var n=Yn(e);return e.modifierFlagsCache=536870912|n,n}function Yn(e){var n=0;if(e.modifiers)for(var t=0,r=e.modifiers;t<r.length;t++){n|=Qn(r[t].kind)}return(4&e.flags||75===e.kind&&e.isInJSDocNamespace)&&(n|=1),n}function Qn(e){switch(e){case 119:return 32;case 118:return 4;case 117:return 16;case 116:return 8;case 121:return 128;case 88:return 1;case 129:return 2;case 80:return 2048;case 83:return 512;case 125:return 256;case 137:return 64}return 0}function Zn(e){return e>=62&&e<=74}function $n(e){var n=et(e);return n&&!n.isImplements?n.class:void 0}function et(n){return e.isExpressionWithTypeArguments(n)&&e.isHeritageClause(n.parent)&&e.isClassLike(n.parent.parent)?{class:n.parent.parent,isImplements:112===n.parent.token}:void 0}function nt(n,t){return e.isBinaryExpression(n)&&(t?62===n.operatorToken.kind:Zn(n.operatorToken.kind))&&e.isLeftHandSideExpression(n.left)}function tt(e){return void 0!==$n(e)}function rt(e){return 75===e.kind||at(e)}function at(n){return e.isPropertyAccessExpression(n)&&rt(n.expression)}function it(e){return ye(e)&&\"prototype\"===Te(e)}e.getIndentString=Ln,e.getIndentSize=Cn,e.createTextWriter=function(n){var t,r,a,i,o,s=!1;function c(n){var r=e.computeLineStarts(n);r.length>1?(i=i+r.length-1,o=t.length-n.length+e.last(r),a=o-t.length==0):a=!1}function l(e){e&&e.length&&(a&&(e=Ln(r)+e,a=!1),t+=e,c(e))}function u(e){e&&(s=!1),l(e)}function d(){t=\"\",r=0,a=!0,i=0,o=0,s=!1}return d(),{write:u,rawWrite:function(e){void 0!==e&&(t+=e,c(e),s=!1)},writeLiteral:function(e){e&&e.length&&u(e)},writeLine:function(){a||(i++,o=(t+=n).length,a=!0,s=!1)},increaseIndent:function(){r++},decreaseIndent:function(){r--},getIndent:function(){return r},getTextPos:function(){return t.length},getLine:function(){return i},getColumn:function(){return a?r*Cn():t.length-o},getText:function(){return t},isAtStartOfLine:function(){return a},hasTrailingComment:function(){return s},hasTrailingWhitespace:function(){return!!t.length&&e.isWhiteSpaceLike(t.charCodeAt(t.length-1))},clear:d,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:e.noop,writeKeyword:u,writeOperator:u,writeParameter:u,writeProperty:u,writePunctuation:u,writeSpace:u,writeStringLiteral:u,writeSymbol:function(e,n){return u(e)},writeTrailingSemicolon:u,writeComment:function(e){e&&(s=!0),l(e)},getTextPosWithWriteLine:function(){return a?t.length:t.length+n.length}}},e.getTrailingSemicolonDeferringWriter=function(e){var n=!1;function t(){n&&(e.writeTrailingSemicolon(\";\"),n=!1)}return __assign(__assign({},e),{writeTrailingSemicolon:function(){n=!0},writeLiteral:function(n){t(),e.writeLiteral(n)},writeStringLiteral:function(n){t(),e.writeStringLiteral(n)},writeSymbol:function(n,r){t(),e.writeSymbol(n,r)},writePunctuation:function(n){t(),e.writePunctuation(n)},writeKeyword:function(n){t(),e.writeKeyword(n)},writeOperator:function(n){t(),e.writeOperator(n)},writeParameter:function(n){t(),e.writeParameter(n)},writeSpace:function(n){t(),e.writeSpace(n)},writeProperty:function(n){t(),e.writeProperty(n)},writeComment:function(n){t(),e.writeComment(n)},writeLine:function(){t(),e.writeLine()},increaseIndent:function(){t(),e.increaseIndent()},decreaseIndent:function(){t(),e.decreaseIndent()}})},e.getResolvedExternalModuleName=An,e.getExternalModuleNameFromDeclaration=function(e,n,t){var r=n.getExternalModuleFileFromDeclaration(t);if(r&&!r.isDeclarationFile)return An(e,r)},e.getExternalModuleNameFromPath=Dn,e.getOwnEmitOutputFilePath=function(n,t,r){var a=t.getCompilerOptions();return(a.outDir?e.removeFileExtension(In(n,t,a.outDir)):e.removeFileExtension(n))+r},e.getDeclarationEmitOutputFilePath=function(e,n){return kn(e,n.getCompilerOptions(),n.getCurrentDirectory(),n.getCommonSourceDirectory(),(function(e){return n.getCanonicalFileName(e)}))},e.getDeclarationEmitOutputFilePathWorker=kn,e.getSourceFilesToEmit=function(n,t,r){var a=n.getCompilerOptions();if(a.outFile||a.out){var i=e.getEmitModuleKind(a),o=a.emitDeclarationOnly||i===e.ModuleKind.AMD||i===e.ModuleKind.System;return e.filter(n.getSourceFiles(),(function(t){return(o||!e.isExternalModule(t))&&Nn(t,n,r)}))}var s=void 0===t?n.getSourceFiles():[t];return e.filter(s,(function(e){return Nn(e,n,r)}))},e.sourceFileMayBeEmitted=Nn,e.getSourceFilePathInNewDir=In,e.getSourceFilePathInNewDirWorker=Mn,e.writeFile=function(n,t,r,a,i,o){n.writeFile(r,a,i,(function(n){t.add(e.createCompilerDiagnostic(e.Diagnostics.Could_not_write_file_0_Colon_1,r,n))}),o)},e.getLineOfLocalPosition=On,e.getLineOfLocalPositionFromLineMap=Rn,e.getFirstConstructorWithBody=function(n){return e.find(n.members,(function(n){return e.isConstructorDeclaration(n)&&p(n.body)}))},e.getSetAccessorValueParameter=Pn,e.getSetAccessorTypeAnnotationNode=function(e){var n=Pn(e);return n&&n.type},e.getThisParameter=function(n){if(n.parameters.length&&!e.isJSDocSignature(n)){var t=n.parameters[0];if(wn(t))return t}},e.parameterIsThisKeyword=wn,e.isThisIdentifier=Fn,e.identifierIsThisKeyword=Gn,e.getAllAccessorDeclarations=function(n,t){var r,a,i,o;return $e(t)?(r=t,162===t.kind?i=t:163===t.kind?o=t:e.Debug.fail(\"Accessor has wrong kind\")):e.forEach(n,(function(n){e.isAccessor(n)&&Wn(n,32)===Wn(t,32)&&(tn(n.name)===tn(t.name)&&(r?a||(a=n):r=n,162!==n.kind||i||(i=n),163!==n.kind||o||(o=n)))})),{firstAccessor:r,secondAccessor:a,getAccessor:i,setAccessor:o}},e.getEffectiveTypeAnnotationNode=Bn,e.getTypeAnnotationNode=function(e){return e.type},e.getEffectiveReturnTypeNode=function(n){return e.isJSDocSignature(n)?n.type&&n.type.typeExpression&&n.type.typeExpression.type:n.type||(oe(n)?e.getJSDocReturnType(n):void 0)},e.getJSDocTypeParameterDeclarations=function(n){return e.flatMap(e.getJSDocTags(n),(function(n){return function(n){return e.isJSDocTemplateTag(n)&&!(301===n.parent.kind&&n.parent.tags.some(Ce))}(n)?n.typeParameters:void 0}))},e.getEffectiveSetAccessorTypeAnnotationNode=function(e){var n=Pn(e);return n&&Bn(n)},e.emitNewLineBeforeLeadingComments=Vn,e.emitNewLineBeforeLeadingCommentsOfPosition=Un,e.emitNewLineBeforeLeadingCommentOfPosition=function(e,n,t,r){t!==r&&Rn(e,t)!==Rn(e,r)&&n.writeLine()},e.emitComments=jn,e.emitDetachedComments=function(n,t,r,a,i,o,s){var c,l;if(s?0===i.pos&&(c=e.filter(e.getLeadingCommentRanges(n,i.pos),(function(e){return g(n,e.pos)}))):c=e.getLeadingCommentRanges(n,i.pos),c){for(var u=[],d=void 0,p=0,m=c;p<m.length;p++){var f=m[p];if(d){var _=Rn(t,d.end);if(Rn(t,f.pos)>=_+2)break}u.push(f),d=f}if(u.length){_=Rn(t,e.last(u).end);Rn(t,e.skipTrivia(n,i.pos))>=_+2&&(Vn(t,r,i,c),jn(n,t,r,u,!1,!0,o,a),l={nodePos:i.pos,detachedCommentEndPos:e.last(u).end})}}return l},e.writeCommentRange=function(n,t,r,a,i,o){if(42===n.charCodeAt(a+1))for(var s=e.computeLineAndCharacterOfPosition(t,a),c=t.length,l=void 0,u=a,d=s.line;u<i;d++){var p=d+1===c?n.length+1:t[d+1];if(u!==a){void 0===l&&(l=Hn(n,t[s.line],a));var m=r.getIndent()*Cn()-l+Hn(n,u,p);if(m>0){var f=m%Cn(),_=Ln((m-f)/Cn());for(r.rawWrite(_);f;)r.rawWrite(\" \"),f--}else r.rawWrite(\"\")}Kn(n,i,r,o,u,p),u=p}else r.writeComment(n.substring(a,i))},e.hasModifiers=function(e){return 0!==Xn(e)},e.hasModifier=Wn,e.hasStaticModifier=zn,e.hasReadonlyModifier=qn,e.getSelectedModifierFlags=Jn,e.getModifierFlags=Xn,e.getModifierFlagsNoCache=Yn,e.modifierToFlag=Qn,e.isLogicalOperator=function(e){return 56===e||55===e||53===e},e.isAssignmentOperator=Zn,e.tryGetClassExtendingExpressionWithTypeArguments=$n,e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=et,e.isAssignmentExpression=nt,e.isDestructuringAssignment=function(e){if(nt(e,!0)){var n=e.left.kind;return 192===n||191===n}return!1},e.isExpressionWithTypeArgumentsInClassExtendsClause=tt,e.isEntityNameExpression=rt,e.getFirstIdentifier=function(e){switch(e.kind){case 75:return e;case 152:do{e=e.left}while(75!==e.kind);return e;case 193:do{e=e.expression}while(75!==e.kind);return e}},e.isDottedName=function e(n){return 75===n.kind||103===n.kind||193===n.kind&&e(n.expression)||199===n.kind&&e(n.expression)},e.isPropertyAccessEntityNameExpression=at,e.tryGetPropertyAccessOrIdentifierToString=function n(t){return e.isPropertyAccessExpression(t)?n(t.expression)+\".\"+t.name:e.isIdentifier(t)?e.unescapeLeadingUnderscores(t.escapedText):void 0},e.isPrototypeAccess=it,e.isRightSideOfQualifiedNameOrPropertyAccess=function(e){return 152===e.parent.kind&&e.parent.right===e||193===e.parent.kind&&e.parent.name===e},e.isEmptyObjectLiteral=function(e){return 192===e.kind&&0===e.properties.length},e.isEmptyArrayLiteral=function(e){return 191===e.kind&&0===e.elements.length},e.getLocalSymbolForExportDefault=function(n){return function(n){return n&&e.length(n.declarations)>0&&Wn(n.declarations[0],512)}(n)?n.declarations[0].localSymbol:void 0},e.tryExtractTSExtension=function(n){return e.find(e.supportedTSExtensionsForExtractExtension,(function(t){return e.fileExtensionIs(n,t)}))};var ot=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function st(n){for(var t,r,a,i,o=\"\",s=function(n){for(var t=[],r=n.length,a=0;a<r;a++){var i=n.charCodeAt(a);i<128?t.push(i):i<2048?(t.push(i>>6|192),t.push(63&i|128)):i<65536?(t.push(i>>12|224),t.push(i>>6&63|128),t.push(63&i|128)):i<131072?(t.push(i>>18|240),t.push(i>>12&63|128),t.push(i>>6&63|128),t.push(63&i|128)):e.Debug.assert(!1,\"Unexpected code point\")}return t}(n),c=0,l=s.length;c<l;)t=s[c]>>2,r=(3&s[c])<<4|s[c+1]>>4,a=(15&s[c+1])<<2|s[c+2]>>6,i=63&s[c+2],c+1>=l?a=i=64:c+2>=l&&(i=64),o+=ot.charAt(t)+ot.charAt(r)+ot.charAt(a)+ot.charAt(i),c+=3;return o}e.convertToBase64=st,e.base64encode=function(e,n){return e&&e.base64encode?e.base64encode(n):st(n)},e.base64decode=function(e,n){if(e&&e.base64decode)return e.base64decode(n);for(var t=n.length,r=[],a=0;a<t&&n.charCodeAt(a)!==ot.charCodeAt(64);){var i=ot.indexOf(n[a]),o=ot.indexOf(n[a+1]),s=ot.indexOf(n[a+2]),c=ot.indexOf(n[a+3]),l=(63&i)<<2|o>>4&3,u=(15&o)<<4|s>>2&15,d=(3&s)<<6|63&c;0===u&&0!==s?r.push(l):0===d&&0!==c?r.push(l,u):r.push(l,u,d),a+=4}return function(e){for(var n=\"\",t=0,r=e.length;t<r;){var a=e[t];if(a<128)n+=String.fromCharCode(a),t++;else if(192==(192&a)){for(var i=63&a,o=e[++t];128==(192&o);)i=i<<6|63&o,o=e[++t];n+=String.fromCharCode(i)}else n+=String.fromCharCode(a),t++}return n}(r)},e.readJson=function(n,t){try{var r=t.readFile(n);if(!r)return{};var a=e.parseConfigFileTextToJson(n,r);return a.error?{}:a.config}catch(e){return{}}},e.directoryProbablyExists=function(e,n){return!n.directoryExists||n.directoryExists(e)};var ct;function lt(n,t){return void 0===t&&(t=n),e.Debug.assert(t>=n||-1===t),{pos:n,end:t}}function ut(e,n){return lt(n,e.end)}function dt(e){return e.decorators&&e.decorators.length>0?ut(e,e.decorators.end):e}function pt(e,n,t){return mt(ft(e,t),n.end,t)}function mt(e,n,t){return e===n||On(t,e)===On(t,n)}function ft(n,t){return e.positionIsSynthesized(n.pos)?-1:e.skipTrivia(t.text,n.pos)}function _t(e){return void 0!==e.initializer}function gt(e){return 33554432&e.flags?e.checkFlags:0}function yt(n){var t=n.parent;if(!t)return 0;switch(t.kind){case 199:return yt(t);case 207:case 206:var r=t.operator;return 45===r||46===r?c():0;case 208:var a=t,i=a.left,o=a.operatorToken;return i===n&&Zn(o.kind)?62===o.kind?1:c():0;case 193:return t.name!==n?0:yt(t);case 279:var s=yt(t.parent);return n===t.name?function(n){switch(n){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(n)}}(s):s;case 280:return n===t.objectAssignmentInitializer?0:yt(t.parent);case 191:return yt(t);default:return 0}function c(){return t.parent&&225===function(e){for(;199===e.kind;)e=e.parent;return e}(t.parent).kind?1:2}}function vt(e,n,t){var r=t.onDeleteValue,a=t.onExistingValue;e.forEach((function(t,i){var o=n.get(i);void 0===o?(e.delete(i),r(t,i)):a&&a(t,o,i)}))}function ht(e){if(32&e.flags){var n=bt(e);return!!n&&Wn(n,128)}return!1}function bt(n){return e.find(n.declarations,e.isClassLike)}function Et(e){return 3899392&e.flags?e.objectFlags:0}function Tt(e){return 193===e.kind||194===e.kind}e.getNewLineCharacter=function(n,t){switch(n.newLine){case 0:return\"\\r\\n\";case 1:return\"\\n\"}return t?t():e.sys?e.sys.newLine:\"\\r\\n\"},e.createRange=lt,e.moveRangeEnd=function(e,n){return lt(e.pos,n)},e.moveRangePos=ut,e.moveRangePastDecorators=dt,e.moveRangePastModifiers=function(e){return e.modifiers&&e.modifiers.length>0?ut(e,e.modifiers.end):dt(e)},e.isCollapsedRange=function(e){return e.pos===e.end},e.createTokenRange=function(n,t){return lt(n,n+e.tokenToString(t).length)},e.rangeIsOnSingleLine=function(e,n){return pt(e,e,n)},e.rangeStartPositionsAreOnSameLine=function(e,n,t){return mt(ft(e,t),ft(n,t),t)},e.rangeEndPositionsAreOnSameLine=function(e,n,t){return mt(e.end,n.end,t)},e.rangeStartIsOnSameLineAsRangeEnd=pt,e.rangeEndIsOnSameLineAsRangeStart=function(e,n,t){return mt(e.end,ft(n,t),t)},e.isNodeArrayMultiLine=function(e,n){return!mt(e.pos,e.end,n)},e.positionsAreOnSameLine=mt,e.getStartPositionOfRange=ft,e.isDeclarationNameOfEnumOrNamespace=function(n){var t=e.getParseTreeNode(n);if(t)switch(t.parent.kind){case 247:case 248:return t===t.parent.name}return!1},e.getInitializedVariables=function(n){return e.filter(n.declarations,_t)},e.isWatchSet=function(e){return e.watch&&e.hasOwnProperty(\"watch\")},e.closeFileWatcher=function(e){e.close()},e.getCheckFlags=gt,e.getDeclarationModifierFlagsFromSymbol=function(n){if(n.valueDeclaration){var t=e.getCombinedModifierFlags(n.valueDeclaration);return n.parent&&32&n.parent.flags?t:-29&t}if(6&gt(n)){var r=n.checkFlags;return(1024&r?8:256&r?4:16)|(2048&r?32:0)}return 4194304&n.flags?36:0},e.skipAlias=function(e,n){return 2097152&e.flags?n.getAliasedSymbol(e):e},e.getCombinedLocalAndExportSymbolFlags=function(e){return e.exportSymbol?e.exportSymbol.flags|e.flags:e.flags},e.isWriteOnlyAccess=function(e){return 1===yt(e)},e.isWriteAccess=function(e){return 0!==yt(e)},function(e){e[e.Read=0]=\"Read\",e[e.Write=1]=\"Write\",e[e.ReadWrite=2]=\"ReadWrite\"}(ct||(ct={})),e.compareDataObjects=function e(n,t){if(!n||!t||Object.keys(n).length!==Object.keys(t).length)return!1;for(var r in n)if(\"object\"==typeof n[r]){if(!e(n[r],t[r]))return!1}else if(\"function\"!=typeof n[r]&&n[r]!==t[r])return!1;return!0},e.clearMap=function(e,n){e.forEach(n),e.clear()},e.mutateMapSkippingNewValues=vt,e.mutateMap=function(e,n,t){vt(e,n,t);var r=t.createNewValue;n.forEach((function(n,t){e.has(t)||e.set(t,r(t,n))}))},e.isAbstractConstructorType=function(e){return!!(16&Et(e))&&!!e.symbol&&ht(e.symbol)},e.isAbstractConstructorSymbol=ht,e.getClassLikeDeclarationOfSymbol=bt,e.getObjectFlags=Et,e.typeHasCallOrConstructSignatures=function(e,n){return 0!==n.getSignaturesOfType(e,0).length||0!==n.getSignaturesOfType(e,1).length},e.forSomeAncestorDirectory=function(n,t){return!!e.forEachAncestorDirectory(n,(function(e){return!!t(e)||void 0}))},e.isUMDExportSymbol=function(n){return!!n&&!!n.declarations&&!!n.declarations[0]&&e.isNamespaceExportDeclaration(n.declarations[0])},e.showModuleSpecifier=function(n){var t=n.moduleSpecifier;return e.isStringLiteral(t)?t.text:b(t)},e.getLastChild=function(n){var t;return e.forEachChild(n,(function(e){p(e)&&(t=e)}),(function(e){for(var n=e.length-1;n>=0;n--)if(p(e[n])){t=e[n];break}})),t},e.addToSeen=function(e,n,t){return void 0===t&&(t=!0),n=String(n),!e.has(n)&&(e.set(n,t),!0)},e.isObjectTypeDeclaration=function(n){return e.isClassLike(n)||e.isInterfaceDeclaration(n)||e.isTypeLiteralNode(n)},e.isTypeNodeKind=function(e){return e>=167&&e<=187||124===e||147===e||139===e||150===e||140===e||127===e||142===e||143===e||103===e||109===e||145===e||99===e||136===e||215===e||293===e||294===e||295===e||296===e||297===e||298===e||299===e},e.isAccessExpression=Tt,e.isBundleFileTextLike=function(e){switch(e.kind){case\"text\":case\"internal\":return!0;default:return!1}},e.getDotOrQuestionDotToken=function(n){return n.questionDotToken||e.createNode(24,n.expression.end,n.name.pos)}}(ts||(ts={})),function(e){function n(e){return e.start+e.length}function t(e){return 0===e.length}function r(e,n){var t=i(e,n);return t&&0===t.length?void 0:t}function a(e,n,t,r){return t<=e+n&&t+r>=e}function i(e,t){var r=Math.max(e.start,t.start),a=Math.min(n(e),n(t));return r<=a?s(r,a):void 0}function o(e,n){if(e<0)throw new Error(\"start < 0\");if(n<0)throw new Error(\"length < 0\");return{start:e,length:n}}function s(e,n){return o(e,n-e)}function c(e,n){if(n<0)throw new Error(\"newLength < 0\");return{span:e,newLength:n}}function l(n){return!!e.isBindingPattern(n)&&e.every(n.elements,u)}function u(n){return!!e.isOmittedExpression(n)||l(n.name)}function d(n){for(var t=n.parent;e.isBindingElement(t.parent);)t=t.parent.parent;return t.parent}function p(n,t){e.isBindingElement(n)&&(n=d(n));var r=t(n);return 241===n.kind&&(n=n.parent),n&&242===n.kind&&(r|=t(n),n=n.parent),n&&224===n.kind&&(r|=t(n)),r}function m(e,n){if(e)for(;void 0!==e.original;)e=e.original;return!n||n(e)?e:void 0}function f(e){return 0==(8&e.flags)}function _(e){var n=e;return n.length>=3&&95===n.charCodeAt(0)&&95===n.charCodeAt(1)&&95===n.charCodeAt(2)?n.substr(1):n}function g(e){return _(e.escapedText)}function y(n){var t=n.parent.parent;if(t){if(e.isDeclaration(t))return v(t);switch(t.kind){case 224:if(t.declarationList&&t.declarationList.declarations[0])return v(t.declarationList.declarations[0]);break;case 225:var r=t.expression;switch(208===r.kind&&62===r.operatorToken.kind&&(r=r.left),r.kind){case 193:return r.name;case 194:var a=r.argumentExpression;if(e.isIdentifier(a))return a}break;case 199:return v(t.expression);case 237:if(e.isDeclaration(t.statement)||e.isExpression(t.statement))return v(t.statement)}}}function v(n){var t=T(n);return t&&e.isIdentifier(t)?t:void 0}function h(e){return e.name||y(e)}function b(e){return!!e.name}function E(n){switch(n.kind){case 75:return n;case 316:case 310:var t=n.name;if(152===t.kind)return t.right;break;case 195:case 208:var r=n;switch(e.getAssignmentDeclarationKind(r)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}case 315:return h(n);case 309:return y(n);case 258:var a=n.expression;return e.isIdentifier(a)?a:void 0;case 194:var i=n;if(e.isBindableStaticElementAccessExpression(i))return i.argumentExpression}return n.name}function T(n){if(void 0!==n)return E(n)||(e.isFunctionExpression(n)||e.isClassExpression(n)?function(n){if(!n.parent)return;if(e.isPropertyAssignment(n.parent)||e.isBindingElement(n.parent))return n.parent.name;if(e.isBinaryExpression(n.parent)&&n===n.parent.right){if(e.isIdentifier(n.parent.left))return n.parent.left;if(e.isAccessExpression(n.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(n.parent.left)}else if(e.isVariableDeclaration(n.parent)&&e.isIdentifier(n.parent.name))return n.parent.name}(n):void 0)}function S(n){if(n.name){if(e.isIdentifier(n.name)){var t=n.name.escapedText;return A(n.parent).filter((function(n){return e.isJSDocParameterTag(n)&&e.isIdentifier(n.name)&&n.name.escapedText===t}))}var r=n.parent.parameters.indexOf(n);e.Debug.assert(r>-1,\"Parameters should always be in their parents' parameter list\");var a=A(n.parent).filter(e.isJSDocParameterTag);if(r<a.length)return[a[r]]}return e.emptyArray}function x(n){return D(n,e.isJSDocReturnTag)}function L(n){var t=D(n,e.isJSDocTypeTag);if(t&&t.typeExpression&&t.typeExpression.type)return t}function C(n){var t=D(n,e.isJSDocTypeTag);return!t&&e.isParameter(n)&&(t=e.find(S(n),(function(e){return!!e.typeExpression}))),t&&t.typeExpression&&t.typeExpression.type}function A(n){var t=n.jsDocCache;if(void 0===t){var r=e.getJSDocCommentsAndTags(n);e.Debug.assert(r.length<2||r[0]!==r[1]),n.jsDocCache=t=e.flatMap(r,(function(n){return e.isJSDoc(n)?n.tags:n}))}return t}function D(n,t){return e.find(A(n),t)}e.getDefaultLibFileName=function(e){switch(e.target){case 99:return\"lib.esnext.full.d.ts\";case 7:return\"lib.es2020.full.d.ts\";case 6:return\"lib.es2019.full.d.ts\";case 5:return\"lib.es2018.full.d.ts\";case 4:return\"lib.es2017.full.d.ts\";case 3:return\"lib.es2016.full.d.ts\";case 2:return\"lib.es6.d.ts\";default:return\"lib.d.ts\"}},e.textSpanEnd=n,e.textSpanIsEmpty=t,e.textSpanContainsPosition=function(e,t){return t>=e.start&&t<n(e)},e.textRangeContainsPositionInclusive=function(e,n){return n>=e.pos&&n<=e.end},e.textSpanContainsTextSpan=function(e,t){return t.start>=e.start&&n(t)<=n(e)},e.textSpanOverlapsWith=function(e,n){return void 0!==r(e,n)},e.textSpanOverlap=r,e.textSpanIntersectsWithTextSpan=function(e,n){return a(e.start,e.length,n.start,n.length)},e.textSpanIntersectsWith=function(e,n,t){return a(e.start,e.length,n,t)},e.decodedTextSpanIntersectsWith=a,e.textSpanIntersectsWithPosition=function(e,t){return t<=n(e)&&t>=e.start},e.textSpanIntersection=i,e.createTextSpan=o,e.createTextSpanFromBounds=s,e.textChangeRangeNewSpan=function(e){return o(e.span.start,e.newLength)},e.textChangeRangeIsUnchanged=function(e){return t(e.span)&&0===e.newLength},e.createTextChangeRange=c,e.unchangedTextChangeRange=c(o(0,0),0),e.collapseTextChangeRangesAcrossMultipleVersions=function(t){if(0===t.length)return e.unchangedTextChangeRange;if(1===t.length)return t[0];for(var r=t[0],a=r.span.start,i=n(r.span),o=a+r.newLength,l=1;l<t.length;l++){var u=t[l],d=a,p=i,m=o,f=u.span.start,_=n(u.span),g=f+u.newLength;a=Math.min(d,f),i=Math.max(p,p+(_-m)),o=Math.max(g,g+(m-_))}return c(s(a,i),o-a)},e.getTypeParameterOwner=function(n){if(n&&154===n.kind)for(var t=n;t;t=t.parent)if(e.isFunctionLike(t)||e.isClassLike(t)||245===t.kind)return t},e.isParameterPropertyDeclaration=function(n,t){return e.hasModifier(n,92)&&161===t.kind},e.isEmptyBindingPattern=l,e.isEmptyBindingElement=u,e.walkUpBindingElementsAndPatterns=d,e.getCombinedModifierFlags=function(n){return p(n,e.getModifierFlags)},e.getCombinedNodeFlags=function(e){return p(e,(function(e){return e.flags}))},e.validateLocaleAndSetLanguage=function(n,t,r){var a=/^([a-z]+)([_\\-]([a-z]+))?$/.exec(n.toLowerCase());if(a){var i=a[1];o(i,a[3],r)||o(i,void 0,r),e.setUILocale(n)}else r&&r.push(e.createCompilerDiagnostic(e.Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1,\"en\",\"ja-jp\"));function o(n,r,a){var i=e.normalizePath(t.getExecutingFilePath()),o=e.getDirectoryPath(i),s=e.combinePaths(o,n);if(r&&(s=s+\"-\"+r),s=t.resolvePath(e.combinePaths(s,\"diagnosticMessages.generated.json\")),!t.fileExists(s))return!1;var c=\"\";try{c=t.readFile(s)}catch(n){return a&&a.push(e.createCompilerDiagnostic(e.Diagnostics.Unable_to_open_file_0,s)),!1}try{e.localizedDiagnosticMessages=JSON.parse(c)}catch(n){return a&&a.push(e.createCompilerDiagnostic(e.Diagnostics.Corrupted_locale_file_0,s)),!1}return!0}},e.getOriginalNode=m,e.isParseTreeNode=f,e.getParseTreeNode=function(e,n){return void 0===e||f(e)?e:!f(e=m(e))||n&&!n(e)?void 0:e},e.escapeLeadingUnderscores=function(e){return e.length>=2&&95===e.charCodeAt(0)&&95===e.charCodeAt(1)?\"_\"+e:e},e.unescapeLeadingUnderscores=_,e.idText=g,e.symbolName=function(e){return _(e.escapedName)},e.nodeHasName=function n(t,r){return!(!b(t)||!e.isIdentifier(t.name)||g(t.name)!==g(r))||!(!e.isVariableStatement(t)||!e.some(t.declarationList.declarations,(function(e){return n(e,r)})))},e.getNameOfJSDocTypedef=h,e.isNamedDeclaration=b,e.getNonAssignedNameOfDeclaration=E,e.getNameOfDeclaration=T,e.getJSDocParameterTags=S,e.getJSDocTypeParameterTags=function(n){var t=n.name.escapedText;return A(n.parent).filter((function(n){return e.isJSDocTemplateTag(n)&&n.typeParameters.some((function(e){return e.name.escapedText===t}))}))},e.hasJSDocParameterTags=function(n){return!!D(n,e.isJSDocParameterTag)},e.getJSDocAugmentsTag=function(n){return D(n,e.isJSDocAugmentsTag)},e.getJSDocClassTag=function(n){return D(n,e.isJSDocClassTag)},e.getJSDocEnumTag=function(n){return D(n,e.isJSDocEnumTag)},e.getJSDocThisTag=function(n){return D(n,e.isJSDocThisTag)},e.getJSDocReturnTag=x,e.getJSDocTemplateTag=function(n){return D(n,e.isJSDocTemplateTag)},e.getJSDocTypeTag=L,e.getJSDocType=C,e.getJSDocReturnType=function(n){var t=x(n);if(t&&t.typeExpression)return t.typeExpression.type;var r=L(n);if(r&&r.typeExpression){var a=r.typeExpression.type;if(e.isTypeLiteralNode(a)){var i=e.find(a.members,e.isCallSignatureDeclaration);return i&&i.type}if(e.isFunctionTypeNode(a))return a.type}},e.getJSDocTags=A,e.getAllJSDocTagsOfKind=function(e,n){return A(e).filter((function(e){return e.kind===n}))},e.getEffectiveTypeParameterDeclarations=function(n){if(e.isJSDocSignature(n))return e.emptyArray;if(e.isJSDocTypeAlias(n))return e.Debug.assert(301===n.parent.kind),e.flatMap(n.parent.tags,(function(n){return e.isJSDocTemplateTag(n)?n.typeParameters:void 0}));if(n.typeParameters)return n.typeParameters;if(e.isInJSFile(n)){var t=e.getJSDocTypeParameterDeclarations(n);if(t.length)return t;var r=C(n);if(r&&e.isFunctionTypeNode(r)&&r.typeParameters)return r.typeParameters}return e.emptyArray},e.getEffectiveConstraintOfTypeParameter=function(n){return n.constraint?n.constraint:e.isJSDocTemplateTag(n.parent)&&n===n.parent.typeParameters[0]?n.parent.constraint:void 0}}(ts||(ts={})),function(e){function n(e){return 75===e.kind}function t(e){return 168===e.kind}function r(e){return 193===e.kind}function a(e){return 194===e.kind}function i(e){return 195===e.kind}function o(e){var n=e.kind;return!!(32&e.flags)&&(193===n||194===n||195===n)}function s(e){return o(e)&&!!e.questionDotToken}function c(e){switch(e.kind){case 285:case 286:return!0;default:return!1}}e.isNumericLiteral=function(e){return 8===e.kind},e.isBigIntLiteral=function(e){return 9===e.kind},e.isStringLiteral=function(e){return 10===e.kind},e.isJsxText=function(e){return 11===e.kind},e.isRegularExpressionLiteral=function(e){return 13===e.kind},e.isNoSubstitutionTemplateLiteral=function(e){return 14===e.kind},e.isTemplateHead=function(e){return 15===e.kind},e.isTemplateMiddle=function(e){return 16===e.kind},e.isTemplateTail=function(e){return 17===e.kind},e.isIdentifier=n,e.isQualifiedName=function(e){return 152===e.kind},e.isComputedPropertyName=function(e){return 153===e.kind},e.isTypeParameterDeclaration=function(e){return 154===e.kind},e.isParameter=function(e){return 155===e.kind},e.isDecorator=function(e){return 156===e.kind},e.isPropertySignature=function(e){return 157===e.kind},e.isPropertyDeclaration=function(e){return 158===e.kind},e.isMethodSignature=function(e){return 159===e.kind},e.isMethodDeclaration=function(e){return 160===e.kind},e.isConstructorDeclaration=function(e){return 161===e.kind},e.isGetAccessorDeclaration=function(e){return 162===e.kind},e.isSetAccessorDeclaration=function(e){return 163===e.kind},e.isCallSignatureDeclaration=function(e){return 164===e.kind},e.isConstructSignatureDeclaration=function(e){return 165===e.kind},e.isIndexSignatureDeclaration=function(e){return 166===e.kind},e.isGetOrSetAccessorDeclaration=function(e){return 163===e.kind||162===e.kind},e.isTypePredicateNode=function(e){return 167===e.kind},e.isTypeReferenceNode=t,e.isFunctionTypeNode=function(e){return 169===e.kind},e.isConstructorTypeNode=function(e){return 170===e.kind},e.isTypeQueryNode=function(e){return 171===e.kind},e.isTypeLiteralNode=function(e){return 172===e.kind},e.isArrayTypeNode=function(e){return 173===e.kind},e.isTupleTypeNode=function(e){return 174===e.kind},e.isUnionTypeNode=function(e){return 177===e.kind},e.isIntersectionTypeNode=function(e){return 178===e.kind},e.isConditionalTypeNode=function(e){return 179===e.kind},e.isInferTypeNode=function(e){return 180===e.kind},e.isParenthesizedTypeNode=function(e){return 181===e.kind},e.isThisTypeNode=function(e){return 182===e.kind},e.isTypeOperatorNode=function(e){return 183===e.kind},e.isIndexedAccessTypeNode=function(e){return 184===e.kind},e.isMappedTypeNode=function(e){return 185===e.kind},e.isLiteralTypeNode=function(e){return 186===e.kind},e.isImportTypeNode=function(e){return 187===e.kind},e.isObjectBindingPattern=function(e){return 188===e.kind},e.isArrayBindingPattern=function(e){return 189===e.kind},e.isBindingElement=function(e){return 190===e.kind},e.isArrayLiteralExpression=function(e){return 191===e.kind},e.isObjectLiteralExpression=function(e){return 192===e.kind},e.isPropertyAccessExpression=r,e.isPropertyAccessChain=function(e){return r(e)&&!!(32&e.flags)},e.isElementAccessExpression=a,e.isElementAccessChain=function(e){return a(e)&&!!(32&e.flags)},e.isCallExpression=i,e.isCallChain=function(e){return i(e)&&!!(32&e.flags)},e.isOptionalChain=o,e.isOptionalChainRoot=s,e.isExpressionOfOptionalChainRoot=function(e){return s(e.parent)&&e.parent.expression===e},e.isOutermostOptionalChain=function(e){return!o(e.parent)||s(e.parent)||e!==e.parent.expression},e.isNullishCoalesce=function(e){return 208===e.kind&&60===e.operatorToken.kind},e.isNewExpression=function(e){return 196===e.kind},e.isTaggedTemplateExpression=function(e){return 197===e.kind},e.isTypeAssertion=function(e){return 198===e.kind},e.isConstTypeReference=function(e){return t(e)&&n(e.typeName)&&\"const\"===e.typeName.escapedText&&!e.typeArguments},e.isParenthesizedExpression=function(e){return 199===e.kind},e.skipPartiallyEmittedExpressions=function(e){for(;319===e.kind;)e=e.expression;return e},e.isFunctionExpression=function(e){return 200===e.kind},e.isArrowFunction=function(e){return 201===e.kind},e.isDeleteExpression=function(e){return 202===e.kind},e.isTypeOfExpression=function(e){return 203===e.kind},e.isVoidExpression=function(e){return 204===e.kind},e.isAwaitExpression=function(e){return 205===e.kind},e.isPrefixUnaryExpression=function(e){return 206===e.kind},e.isPostfixUnaryExpression=function(e){return 207===e.kind},e.isBinaryExpression=function(e){return 208===e.kind},e.isConditionalExpression=function(e){return 209===e.kind},e.isTemplateExpression=function(e){return 210===e.kind},e.isYieldExpression=function(e){return 211===e.kind},e.isSpreadElement=function(e){return 212===e.kind},e.isClassExpression=function(e){return 213===e.kind},e.isOmittedExpression=function(e){return 214===e.kind},e.isExpressionWithTypeArguments=function(e){return 215===e.kind},e.isAsExpression=function(e){return 216===e.kind},e.isNonNullExpression=function(e){return 217===e.kind},e.isMetaProperty=function(e){return 218===e.kind},e.isTemplateSpan=function(e){return 220===e.kind},e.isSemicolonClassElement=function(e){return 221===e.kind},e.isBlock=function(e){return 222===e.kind},e.isVariableStatement=function(e){return 224===e.kind},e.isEmptyStatement=function(e){return 223===e.kind},e.isExpressionStatement=function(e){return 225===e.kind},e.isIfStatement=function(e){return 226===e.kind},e.isDoStatement=function(e){return 227===e.kind},e.isWhileStatement=function(e){return 228===e.kind},e.isForStatement=function(e){return 229===e.kind},e.isForInStatement=function(e){return 230===e.kind},e.isForOfStatement=function(e){return 231===e.kind},e.isContinueStatement=function(e){return 232===e.kind},e.isBreakStatement=function(e){return 233===e.kind},e.isBreakOrContinueStatement=function(e){return 233===e.kind||232===e.kind},e.isReturnStatement=function(e){return 234===e.kind},e.isWithStatement=function(e){return 235===e.kind},e.isSwitchStatement=function(e){return 236===e.kind},e.isLabeledStatement=function(e){return 237===e.kind},e.isThrowStatement=function(e){return 238===e.kind},e.isTryStatement=function(e){return 239===e.kind},e.isDebuggerStatement=function(e){return 240===e.kind},e.isVariableDeclaration=function(e){return 241===e.kind},e.isVariableDeclarationList=function(e){return 242===e.kind},e.isFunctionDeclaration=function(e){return 243===e.kind},e.isClassDeclaration=function(e){return 244===e.kind},e.isInterfaceDeclaration=function(e){return 245===e.kind},e.isTypeAliasDeclaration=function(e){return 246===e.kind},e.isEnumDeclaration=function(e){return 247===e.kind},e.isModuleDeclaration=function(e){return 248===e.kind},e.isModuleBlock=function(e){return 249===e.kind},e.isCaseBlock=function(e){return 250===e.kind},e.isNamespaceExportDeclaration=function(e){return 251===e.kind},e.isImportEqualsDeclaration=function(e){return 252===e.kind},e.isImportDeclaration=function(e){return 253===e.kind},e.isImportClause=function(e){return 254===e.kind},e.isNamespaceImport=function(e){return 255===e.kind},e.isNamedImports=function(e){return 256===e.kind},e.isImportSpecifier=function(e){return 257===e.kind},e.isExportAssignment=function(e){return 258===e.kind},e.isExportDeclaration=function(e){return 259===e.kind},e.isNamedExports=function(e){return 260===e.kind},e.isExportSpecifier=function(e){return 261===e.kind},e.isMissingDeclaration=function(e){return 262===e.kind},e.isExternalModuleReference=function(e){return 263===e.kind},e.isJsxElement=function(e){return 264===e.kind},e.isJsxSelfClosingElement=function(e){return 265===e.kind},e.isJsxOpeningElement=function(e){return 266===e.kind},e.isJsxClosingElement=function(e){return 267===e.kind},e.isJsxFragment=function(e){return 268===e.kind},e.isJsxOpeningFragment=function(e){return 269===e.kind},e.isJsxClosingFragment=function(e){return 270===e.kind},e.isJsxAttribute=function(e){return 271===e.kind},e.isJsxAttributes=function(e){return 272===e.kind},e.isJsxSpreadAttribute=function(e){return 273===e.kind},e.isJsxExpression=function(e){return 274===e.kind},e.isCaseClause=function(e){return 275===e.kind},e.isDefaultClause=function(e){return 276===e.kind},e.isHeritageClause=function(e){return 277===e.kind},e.isCatchClause=function(e){return 278===e.kind},e.isPropertyAssignment=function(e){return 279===e.kind},e.isShorthandPropertyAssignment=function(e){return 280===e.kind},e.isSpreadAssignment=function(e){return 281===e.kind},e.isEnumMember=function(e){return 282===e.kind},e.isSourceFile=function(e){return 288===e.kind},e.isBundle=function(e){return 289===e.kind},e.isUnparsedSource=function(e){return 290===e.kind},e.isUnparsedPrepend=function(e){return 284===e.kind},e.isUnparsedTextLike=c,e.isUnparsedNode=function(e){return c(e)||283===e.kind||287===e.kind},e.isJSDocTypeExpression=function(e){return 292===e.kind},e.isJSDocAllType=function(e){return 293===e.kind},e.isJSDocUnknownType=function(e){return 294===e.kind},e.isJSDocNullableType=function(e){return 295===e.kind},e.isJSDocNonNullableType=function(e){return 296===e.kind},e.isJSDocOptionalType=function(e){return 297===e.kind},e.isJSDocFunctionType=function(e){return 298===e.kind},e.isJSDocVariadicType=function(e){return 299===e.kind},e.isJSDoc=function(e){return 301===e.kind},e.isJSDocAuthorTag=function(e){return 306===e.kind},e.isJSDocAugmentsTag=function(e){return 305===e.kind},e.isJSDocClassTag=function(e){return 307===e.kind},e.isJSDocEnumTag=function(e){return 309===e.kind},e.isJSDocThisTag=function(e){return 312===e.kind},e.isJSDocParameterTag=function(e){return 310===e.kind},e.isJSDocReturnTag=function(e){return 311===e.kind},e.isJSDocTypeTag=function(e){return 313===e.kind},e.isJSDocTemplateTag=function(e){return 314===e.kind},e.isJSDocTypedefTag=function(e){return 315===e.kind},e.isJSDocPropertyTag=function(e){return 316===e.kind},e.isJSDocPropertyLikeTag=function(e){return 316===e.kind||310===e.kind},e.isJSDocTypeLiteral=function(e){return 302===e.kind},e.isJSDocCallbackTag=function(e){return 308===e.kind},e.isJSDocSignature=function(e){return 303===e.kind}}(ts||(ts={})),function(e){function n(e){return e>=152}function t(e){return 8<=e&&e<=14}function r(e){return 14<=e&&e<=17}function a(e){switch(e){case 121:case 125:case 80:case 129:case 83:case 88:case 118:case 116:case 117:case 137:case 119:return!0}return!1}function i(n){return!!(92&e.modifierToFlag(n))}function o(e){return e&&c(e.kind)}function s(e){switch(e){case 243:case 160:case 161:case 162:case 163:case 200:case 201:return!0;default:return!1}}function c(e){switch(e){case 159:case 164:case 303:case 165:case 166:case 169:case 298:case 170:return!0;default:return s(e)}}function l(e){var n=e.kind;return 161===n||158===n||160===n||162===n||163===n||166===n||221===n}function u(e){var n=e.kind;return 165===n||164===n||157===n||159===n||166===n}function d(e){var n=e.kind;return 279===n||280===n||281===n||160===n||162===n||163===n}function p(e){switch(e.kind){case 188:case 192:return!0}return!1}function m(e){switch(e.kind){case 189:case 191:return!0}return!1}function f(e){switch(e){case 193:case 194:case 196:case 195:case 264:case 265:case 268:case 197:case 191:case 199:case 192:case 213:case 200:case 75:case 13:case 8:case 9:case 10:case 14:case 210:case 90:case 99:case 103:case 105:case 101:case 217:case 218:case 95:return!0;default:return!1}}function _(e){switch(e){case 206:case 207:case 202:case 203:case 204:case 205:case 198:return!0;default:return f(e)}}function g(n){return function(e){switch(e){case 209:case 211:case 201:case 208:case 212:case 216:case 214:case 320:case 319:return!0;default:return _(e)}}(e.skipPartiallyEmittedExpressions(n).kind)}function y(e){return 319===e.kind}function v(e){return 318===e.kind}function h(n){return e.isExportAssignment(n)||e.isExportDeclaration(n)}function b(e){return 243===e||262===e||244===e||245===e||246===e||247===e||248===e||253===e||252===e||259===e||258===e||251===e}function E(e){return 233===e||232===e||240===e||227===e||225===e||223===e||230===e||231===e||229===e||226===e||237===e||234===e||236===e||238===e||239===e||224===e||228===e||235===e||318===e||322===e||321===e}function T(e){return e.kind>=304&&e.kind<=316}function S(e){return!!e.initializer}e.isSyntaxList=function(e){return 317===e.kind},e.isNode=function(e){return n(e.kind)},e.isNodeKind=n,e.isToken=function(e){return e.kind>=0&&e.kind<=151},e.isNodeArray=function(e){return e.hasOwnProperty(\"pos\")&&e.hasOwnProperty(\"end\")},e.isLiteralKind=t,e.isLiteralExpression=function(e){return t(e.kind)},e.isTemplateLiteralKind=r,e.isTemplateLiteralToken=function(e){return r(e.kind)},e.isTemplateMiddleOrTemplateTail=function(e){var n=e.kind;return 16===n||17===n},e.isImportOrExportSpecifier=function(n){return e.isImportSpecifier(n)||e.isExportSpecifier(n)},e.isStringTextContainingNode=function(e){return 10===e.kind||r(e.kind)},e.isGeneratedIdentifier=function(n){return e.isIdentifier(n)&&(7&n.autoGenerateFlags)>0},e.isModifierKind=a,e.isParameterPropertyModifier=i,e.isClassMemberModifier=function(e){return i(e)||119===e},e.isModifier=function(e){return a(e.kind)},e.isEntityName=function(e){var n=e.kind;return 152===n||75===n},e.isPropertyName=function(e){var n=e.kind;return 75===n||10===n||8===n||153===n},e.isBindingName=function(e){var n=e.kind;return 75===n||188===n||189===n},e.isFunctionLike=o,e.isFunctionLikeDeclaration=function(e){return e&&s(e.kind)},e.isFunctionLikeKind=c,e.isFunctionOrModuleBlock=function(n){return e.isSourceFile(n)||e.isModuleBlock(n)||e.isBlock(n)&&o(n.parent)},e.isClassElement=l,e.isClassLike=function(e){return e&&(244===e.kind||213===e.kind)},e.isAccessor=function(e){return e&&(162===e.kind||163===e.kind)},e.isMethodOrAccessor=function(e){switch(e.kind){case 160:case 162:case 163:return!0;default:return!1}},e.isTypeElement=u,e.isClassOrTypeElement=function(e){return u(e)||l(e)},e.isObjectLiteralElementLike=d,e.isTypeNode=function(n){return e.isTypeNodeKind(n.kind)},e.isFunctionOrConstructorTypeNode=function(e){switch(e.kind){case 169:case 170:return!0}return!1},e.isBindingPattern=function(e){if(e){var n=e.kind;return 189===n||188===n}return!1},e.isAssignmentPattern=function(e){var n=e.kind;return 191===n||192===n},e.isArrayBindingElement=function(e){var n=e.kind;return 190===n||214===n},e.isDeclarationBindingElement=function(e){switch(e.kind){case 241:case 155:case 190:return!0}return!1},e.isBindingOrAssignmentPattern=function(e){return p(e)||m(e)},e.isObjectBindingOrAssignmentPattern=p,e.isArrayBindingOrAssignmentPattern=m,e.isPropertyAccessOrQualifiedNameOrImportTypeNode=function(e){var n=e.kind;return 193===n||152===n||187===n},e.isPropertyAccessOrQualifiedName=function(e){var n=e.kind;return 193===n||152===n},e.isCallLikeExpression=function(e){switch(e.kind){case 266:case 265:case 195:case 196:case 197:case 156:return!0;default:return!1}},e.isCallOrNewExpression=function(e){return 195===e.kind||196===e.kind},e.isTemplateLiteral=function(e){var n=e.kind;return 210===n||14===n},e.isLeftHandSideExpression=function(n){return f(e.skipPartiallyEmittedExpressions(n).kind)},e.isUnaryExpression=function(n){return _(e.skipPartiallyEmittedExpressions(n).kind)},e.isUnaryExpressionWithWrite=function(e){switch(e.kind){case 207:return!0;case 206:return 45===e.operator||46===e.operator;default:return!1}},e.isExpression=g,e.isAssertionExpression=function(e){var n=e.kind;return 198===n||216===n},e.isPartiallyEmittedExpression=y,e.isNotEmittedStatement=v,e.isSyntheticReference=function(e){return 323===e.kind},e.isNotEmittedOrPartiallyEmittedNode=function(e){return v(e)||y(e)},e.isIterationStatement=function e(n,t){switch(n.kind){case 229:case 230:case 231:case 227:case 228:return!0;case 237:return t&&e(n.statement,t)}return!1},e.isScopeMarker=h,e.hasScopeMarker=function(n){return e.some(n,h)},e.needsScopeMarker=function(n){return!(e.isAnyImportOrReExport(n)||e.isExportAssignment(n)||e.hasModifier(n,1)||e.isAmbientModule(n))},e.isExternalModuleIndicator=function(n){return e.isAnyImportOrReExport(n)||e.isExportAssignment(n)||e.hasModifier(n,1)},e.isForInOrOfStatement=function(e){return 230===e.kind||231===e.kind},e.isConciseBody=function(n){return e.isBlock(n)||g(n)},e.isFunctionBody=function(n){return e.isBlock(n)},e.isForInitializer=function(n){return e.isVariableDeclarationList(n)||g(n)},e.isModuleBody=function(e){var n=e.kind;return 249===n||248===n||75===n},e.isNamespaceBody=function(e){var n=e.kind;return 249===n||248===n},e.isJSDocNamespaceBody=function(e){var n=e.kind;return 75===n||248===n},e.isNamedImportBindings=function(e){var n=e.kind;return 256===n||255===n},e.isModuleOrEnumDeclaration=function(e){return 248===e.kind||247===e.kind},e.isDeclaration=function(n){return 154===n.kind?n.parent&&314!==n.parent.kind||e.isInJSFile(n):201===(t=n.kind)||190===t||244===t||213===t||161===t||247===t||282===t||261===t||243===t||200===t||162===t||254===t||252===t||257===t||245===t||271===t||160===t||159===t||248===t||251===t||255===t||155===t||279===t||158===t||157===t||163===t||280===t||246===t||154===t||241===t||315===t||308===t||316===t;var t},e.isDeclarationStatement=function(e){return b(e.kind)},e.isStatementButNotDeclaration=function(e){return E(e.kind)},e.isStatement=function(n){var t=n.kind;return E(t)||b(t)||function(n){if(222!==n.kind)return!1;if(void 0!==n.parent&&(239===n.parent.kind||278===n.parent.kind))return!1;return!e.isFunctionBlock(n)}(n)},e.isModuleReference=function(e){var n=e.kind;return 263===n||152===n||75===n},e.isJsxTagNameExpression=function(e){var n=e.kind;return 103===n||75===n||193===n},e.isJsxChild=function(e){var n=e.kind;return 264===n||274===n||265===n||11===n||268===n},e.isJsxAttributeLike=function(e){var n=e.kind;return 271===n||273===n},e.isStringLiteralOrJsxExpression=function(e){var n=e.kind;return 10===n||274===n},e.isJsxOpeningLikeElement=function(e){var n=e.kind;return 266===n||265===n},e.isCaseOrDefaultClause=function(e){var n=e.kind;return 275===n||276===n},e.isJSDocNode=function(e){return e.kind>=292&&e.kind<=316},e.isJSDocCommentContainingNode=function(n){return 301===n.kind||T(n)||e.isJSDocTypeLiteral(n)||e.isJSDocSignature(n)},e.isJSDocTag=T,e.isSetAccessor=function(e){return 163===e.kind},e.isGetAccessor=function(e){return 162===e.kind},e.hasJSDocNodes=function(e){var n=e.jsDoc;return!!n&&n.length>0},e.hasType=function(e){return!!e.type},e.hasInitializer=S,e.hasOnlyExpressionInitializer=function(n){return S(n)&&!e.isForStatement(n)&&!e.isForInStatement(n)&&!e.isForOfStatement(n)&&!e.isJsxAttribute(n)},e.isObjectLiteralElement=function(e){return 271===e.kind||273===e.kind||d(e)},e.isTypeReferenceType=function(e){return 168===e.kind||215===e.kind};e.guessIndentation=function(n){for(var t=1073741823,r=0,a=n;r<a.length;r++){var i=a[r];if(i.length){for(var o=0;o<i.length&&o<t&&e.isWhiteSpaceLike(i.charCodeAt(o));o++);if(o<t&&(t=o),0===t)return 0}}return 1073741823===t?void 0:t},e.isStringLiteralLike=function(e){return 10===e.kind||14===e.kind}}(ts||(ts={})),function(e){function n(e,n){this.flags=e,this.escapedName=n,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function t(n,t){this.flags=t,e.Debug.isDebugging&&(this.checker=n)}function r(n,t){this.flags=t,e.Debug.isDebugging&&(this.checker=n)}function a(e,n,t){this.pos=n,this.end=t,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function i(e,n,t){this.fileName=e,this.text=n,this.skipTrivia=t||function(e){return e}}function o(n,t,r){return void 0===r&&(r=0),n.replace(/{(\\d+)}/g,(function(n,a){return\"\"+e.Debug.assertDefined(t[+a+r])}))}function s(n){return e.localizedDiagnosticMessages&&e.localizedDiagnosticMessages[n.key]||n.message}function c(e){return e.file?e.file.path:void 0}function l(n,t){return u(n,t)||function(n,t){if(!n.relatedInformation&&!t.relatedInformation)return 0;if(n.relatedInformation&&t.relatedInformation)return e.compareValues(n.relatedInformation.length,t.relatedInformation.length)||e.forEach(n.relatedInformation,(function(e,n){return l(e,t.relatedInformation[n])}))||0;return n.relatedInformation?-1:1}(n,t)||0}function u(n,t){return e.compareStringsCaseSensitive(c(n),c(t))||e.compareValues(n.start,t.start)||e.compareValues(n.length,t.length)||e.compareValues(n.code,t.code)||function n(t,r){if(\"string\"==typeof t&&\"string\"==typeof r)return e.compareStringsCaseSensitive(t,r);if(\"string\"==typeof t)return-1;if(\"string\"==typeof r)return 1;var a=e.compareStringsCaseSensitive(t.messageText,r.messageText);if(a)return a;if(!t.next&&!r.next)return 0;if(!t.next)return-1;if(!r.next)return 1;for(var i=Math.min(t.next.length,r.next.length),o=0;o<i;o++)if(a=n(t.next[o],r.next[o]))return a;if(t.next.length<r.next.length)return-1;if(t.next.length>r.next.length)return 1;return 0}(n.messageText,t.messageText)||0}function d(e){return e.target||0}function p(n){return\"number\"==typeof n.module?n.module:d(n)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}function m(e){return!(!e.declaration&&!e.composite)}function f(e,n){return void 0===e[n]?!!e.strict:!!e[n]}function _(e,n){return n.strictFlag?f(e,n.name):e[n.name]}function g(n,t,r,a){for(var i=e.getPathComponents(e.toPath(n,r,a)),o=e.getPathComponents(e.toPath(t,r,a));!y(i[i.length-2],a)&&!y(o[o.length-2],a)&&a(i[i.length-1])===a(o[o.length-1]);)i.pop(),o.pop();return[e.getPathFromPathComponents(i),e.getPathFromPathComponents(o)]}function y(n,t){return\"node_modules\"===t(n)||e.startsWith(n,\"@\")}e.isNamedImportsOrExports=function(e){return 256===e.kind||260===e.kind},e.objectAllocator={getNodeConstructor:function(){return a},getTokenConstructor:function(){return a},getIdentifierConstructor:function(){return a},getSourceFileConstructor:function(){return a},getSymbolConstructor:function(){return n},getTypeConstructor:function(){return t},getSignatureConstructor:function(){return r},getSourceMapSourceConstructor:function(){return i}},e.formatStringFromArgs=o,e.getLocaleSpecificMessage=s,e.createFileDiagnostic=function(n,t,r,a){e.Debug.assertGreaterThanOrEqual(t,0),e.Debug.assertGreaterThanOrEqual(r,0),n&&(e.Debug.assertLessThanOrEqual(t,n.text.length),e.Debug.assertLessThanOrEqual(t+r,n.text.length));var i=s(a);return arguments.length>4&&(i=o(i,arguments,4)),{file:n,start:t,length:r,messageText:i,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary}},e.formatMessage=function(e,n){var t=s(n);return arguments.length>2&&(t=o(t,arguments,2)),t},e.createCompilerDiagnostic=function(e){var n=s(e);return arguments.length>1&&(n=o(n,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:n,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary}},e.createCompilerDiagnosticFromMessageChain=function(e){return{file:void 0,start:void 0,length:void 0,code:e.code,category:e.category,messageText:e.next?e:e.messageText}},e.chainDiagnosticMessages=function(e,n){var t=s(n);return arguments.length>2&&(t=o(t,arguments,2)),{messageText:t,category:n.category,code:n.code,next:void 0===e||Array.isArray(e)?e:[e]}},e.concatenateDiagnosticMessageChains=function(e,n){for(var t=e;t.next;)t=t.next[0];t.next=[n]},e.compareDiagnostics=l,e.compareDiagnosticsSkipRelatedInformation=u,e.getEmitScriptTarget=d,e.getEmitModuleKind=p,e.getEmitModuleResolutionKind=function(n){var t=n.moduleResolution;return void 0===t&&(t=p(n)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic),t},e.hasJsonModuleEmitEnabled=function(n){switch(p(n)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ESNext:return!0;default:return!1}},e.unreachableCodeIsError=function(e){return!1===e.allowUnreachableCode},e.unusedLabelIsError=function(e){return!1===e.allowUnusedLabels},e.getAreDeclarationMapsEnabled=function(e){return!(!m(e)||!e.declarationMap)},e.getAllowSyntheticDefaultImports=function(n){var t=p(n);return void 0!==n.allowSyntheticDefaultImports?n.allowSyntheticDefaultImports:n.esModuleInterop||t===e.ModuleKind.System},e.getEmitDeclarations=m,e.isIncrementalCompilation=function(e){return!(!e.incremental&&!e.composite)},e.getStrictOptionValue=f,e.compilerOptionsAffectSemanticDiagnostics=function(n,t){return t!==n&&e.semanticDiagnosticsOptionDeclarations.some((function(r){return!e.isJsonEqual(_(t,r),_(n,r))}))},e.compilerOptionsAffectEmit=function(n,t){return t!==n&&e.affectsEmitOptionDeclarations.some((function(r){return!e.isJsonEqual(_(t,r),_(n,r))}))},e.getCompilerOptionValue=_,e.hasZeroOrOneAsteriskCharacter=function(e){for(var n=!1,t=0;t<e.length;t++)if(42===e.charCodeAt(t)){if(n)return!1;n=!0}return!0},e.discoverProbableSymlinks=function(n,t,r){for(var a=e.createMap(),i=0,o=e.flatten(e.mapDefined(n,(function(n){return n.resolvedModules&&e.compact(e.arrayFrom(e.mapIterator(n.resolvedModules.values(),(function(e){return e&&e.originalPath&&e.resolvedFileName!==e.originalPath?[e.resolvedFileName,e.originalPath]:void 0}))))})));i<o.length;i++){var s=o[i],c=g(s[0],s[1],r,t),l=c[0],u=c[1];a.set(u,l)}return a}}(ts||(ts={})),function(e){e.tryRemoveDirectoryPrefix=function(n,t,r){var a,i=e.tryRemovePrefix(n,t,r);return void 0===i?void 0:(a=i,e.isAnyDirectorySeparator(a.charCodeAt(0))?a.slice(1):void 0)};var n=/[^\\w\\s\\/]/g;function t(e){return\"\\\\\"+e}e.regExpEscape=function(e){return e.replace(n,t)};var r=[42,63];e.commonPackageFolders=[\"node_modules\",\"bower_components\",\"jspm_packages\"];var a=\"(?!(\"+e.commonPackageFolders.join(\"|\")+\")(/|$))\",i={singleAsteriskRegexFragment:\"([^./]|(\\\\.(?!min\\\\.js$))?)*\",doubleAsteriskRegexFragment:\"(/\"+a+\"[^/.][^/]*)*?\",replaceWildcardCharacter:function(e){return p(e,i.singleAsteriskRegexFragment)}},o={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/\"+a+\"[^/.][^/]*)*?\",replaceWildcardCharacter:function(e){return p(e,o.singleAsteriskRegexFragment)}},s={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/.+?)?\",replaceWildcardCharacter:function(e){return p(e,s.singleAsteriskRegexFragment)}},c={files:i,directories:o,exclude:s};function l(e,n,t){var r=u(e,n,t);if(r&&r.length)return\"^(\"+r.map((function(e){return\"(\"+e+\")\"})).join(\"|\")+\")\"+(\"exclude\"===t?\"($|/)\":\"$\")}function u(t,r,i){if(void 0!==t&&0!==t.length)return e.flatMap(t,(function(t){return t&&function(t,r,i,o){var s=o.singleAsteriskRegexFragment,c=o.doubleAsteriskRegexFragment,l=o.replaceWildcardCharacter,u=\"\",p=!1,m=e.getNormalizedPathComponents(t,r),f=e.last(m);if(\"exclude\"!==i&&\"**\"===f)return;m[0]=e.removeTrailingDirectorySeparator(m[0]),d(f)&&m.push(\"**\",\"*\");for(var _=0,g=0,y=m;g<y.length;g++){var v=y[g];if(\"**\"===v)u+=c;else if(\"directories\"===i&&(u+=\"(\",_++),p&&(u+=e.directorySeparator),\"exclude\"!==i){var h=\"\";42===v.charCodeAt(0)?(h+=\"([^./]\"+s+\")?\",v=v.substr(1)):63===v.charCodeAt(0)&&(h+=\"[^./]\",v=v.substr(1)),(h+=v.replace(n,l))!==v&&(u+=a),u+=h}else u+=v.replace(n,l);p=!0}for(;_>0;)u+=\")?\",_--;return u}(t,r,i,c[i])}))}function d(e){return!/[.*?]/.test(e)}function p(e,n){return\"*\"===e?n:\"?\"===e?\"[^/]\":\"\\\\\"+e}function m(n,t,r,a,i){n=e.normalizePath(n),i=e.normalizePath(i);var o=e.combinePaths(i,n);return{includeFilePatterns:e.map(u(r,o,\"files\"),(function(e){return\"^\"+e+\"$\"})),includeFilePattern:l(r,o,\"files\"),includeDirectoryPattern:l(r,o,\"directories\"),excludePattern:l(t,o,\"exclude\"),basePaths:_(n,r,a)}}function f(e,n){return new RegExp(e,n?\"\":\"i\")}function _(n,t,r){var a=[n];if(t){for(var i=[],o=0,s=t;o<s.length;o++){var c=s[o],l=e.isRootedDiskPath(c)?c:e.normalizePath(e.combinePaths(n,c));i.push(g(l))}i.sort(e.getStringComparer(!r));for(var u=function(t){e.every(a,(function(a){return!e.containsPath(a,t,n,!r)}))&&a.push(t)},d=0,p=i;d<p.length;d++){u(p[d])}}return a}function g(n){var t=e.indexOfAnyCharCode(n,r);return t<0?e.hasExtension(n)?e.removeTrailingDirectorySeparator(e.getDirectoryPath(n)):n:n.substring(0,n.lastIndexOf(e.directorySeparator,t))}function y(e){switch(e.substr(e.lastIndexOf(\".\")).toLowerCase()){case\".js\":return 1;case\".jsx\":return 2;case\".ts\":return 3;case\".tsx\":return 4;case\".json\":return 6;default:return 0}}e.getRegularExpressionForWildcard=l,e.getRegularExpressionsForWildcards=u,e.isImplicitGlob=d,e.getFileMatcherPatterns=m,e.getRegexFromPattern=f,e.matchFiles=function(n,t,r,a,i,o,s,c,l){n=e.normalizePath(n),o=e.normalizePath(o);for(var u=m(n,r,a,i,o),d=u.includeFilePatterns&&u.includeFilePatterns.map((function(e){return f(e,i)})),p=u.includeDirectoryPattern&&f(u.includeDirectoryPattern,i),_=u.excludePattern&&f(u.excludePattern,i),g=d?d.map((function(){return[]})):[[]],y=e.createMap(),v=e.createGetCanonicalFileName(i),h=0,b=u.basePaths;h<b.length;h++){var E=b[h];T(E,e.combinePaths(o,E),s)}return e.flatten(g);function T(n,r,a){var i=v(l(r));if(!y.has(i)){y.set(i,!0);for(var o=c(n),s=o.files,u=o.directories,m=function(a){var i=e.combinePaths(n,a),o=e.combinePaths(r,a);if(t&&!e.fileExtensionIsOneOf(i,t))return\"continue\";if(_&&_.test(o))return\"continue\";if(d){var s=e.findIndex(d,(function(e){return e.test(o)}));-1!==s&&g[s].push(i)}else g[0].push(i)},f=0,h=e.sort(s,e.compareStringsCaseSensitive);f<h.length;f++){m(S=h[f])}if(void 0===a||0!=--a)for(var b=0,E=e.sort(u,e.compareStringsCaseSensitive);b<E.length;b++){var S=E[b],x=e.combinePaths(n,S),L=e.combinePaths(r,S);p&&!p.test(L)||_&&_.test(L)||T(x,L,a)}}}},e.ensureScriptKind=function(e,n){return n||y(e)||3},e.getScriptKindFromFileName=y,e.supportedTSExtensions=[\".ts\",\".tsx\",\".d.ts\"],e.supportedTSExtensionsWithJson=[\".ts\",\".tsx\",\".d.ts\",\".json\"],e.supportedTSExtensionsForExtractExtension=[\".d.ts\",\".ts\",\".tsx\"],e.supportedJSExtensions=[\".js\",\".jsx\"],e.supportedJSAndJsonExtensions=[\".js\",\".jsx\",\".json\"];var v=__spreadArrays(e.supportedTSExtensions,e.supportedJSExtensions),h=__spreadArrays(e.supportedTSExtensions,e.supportedJSExtensions,[\".json\"]);function b(n,t){var r=n&&n.allowJs;if(!t||0===t.length)return r?v:e.supportedTSExtensions;var a=__spreadArrays(r?v:e.supportedTSExtensions,e.mapDefined(t,(function(e){return 7===e.scriptKind||r&&(1===(n=e.scriptKind)||2===n)?e.extension:void 0;var n})));return e.deduplicate(a,e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function E(n,t){return n&&n.resolveJsonModule?t===v?h:t===e.supportedTSExtensions?e.supportedTSExtensionsWithJson:__spreadArrays(t,[\".json\"]):t}function T(e,n){return e<2?0:e<n.length?2:n.length}e.getSupportedExtensions=b,e.getSuppoertedExtensionsWithJsonIfResolveJsonModule=E,e.hasJSFileExtension=function(n){return e.some(e.supportedJSExtensions,(function(t){return e.fileExtensionIs(n,t)}))},e.hasJSOrJsonFileExtension=function(n){return e.supportedJSAndJsonExtensions.some((function(t){return e.fileExtensionIs(n,t)}))},e.hasTSFileExtension=function(n){return e.some(e.supportedTSExtensions,(function(t){return e.fileExtensionIs(n,t)}))},e.isSupportedSourceFileName=function(n,t,r){if(!n)return!1;for(var a=0,i=E(t,b(t,r));a<i.length;a++){var o=i[a];if(e.fileExtensionIs(n,o))return!0}return!1},function(e){e[e.TypeScriptFiles=0]=\"TypeScriptFiles\",e[e.DeclarationAndJavaScriptFiles=2]=\"DeclarationAndJavaScriptFiles\",e[e.Highest=0]=\"Highest\",e[e.Lowest=2]=\"Lowest\"}(e.ExtensionPriority||(e.ExtensionPriority={})),e.getExtensionPriority=function(n,t){for(var r=t.length-1;r>=0;r--)if(e.fileExtensionIs(n,t[r]))return T(r,t);return 0},e.adjustExtensionPriority=T,e.getNextLowestExtensionPriority=function(e,n){return e<2?2:n.length};var S=[\".d.ts\",\".ts\",\".js\",\".tsx\",\".jsx\",\".json\"];function x(n,t){return e.fileExtensionIs(n,t)?L(n,t):void 0}function L(e,n){return e.substring(0,e.length-n.length)}function C(n){e.Debug.assert(e.hasZeroOrOneAsteriskCharacter(n));var t=n.indexOf(\"*\");return-1===t?void 0:{prefix:n.substr(0,t),suffix:n.substr(t+1)}}function A(e){return\".ts\"===e||\".tsx\"===e||\".d.ts\"===e}function D(n){return e.find(S,(function(t){return e.fileExtensionIs(n,t)}))}e.removeFileExtension=function(e){for(var n=0,t=S;n<t.length;n++){var r=x(e,t[n]);if(void 0!==r)return r}return e},e.tryRemoveExtension=x,e.removeExtension=L,e.changeExtension=function(n,t){return e.changeAnyExtension(n,t,S,!1)},e.tryParsePattern=C,e.positionIsSynthesized=function(e){return!(e>=0)},e.extensionIsTS=A,e.resolutionExtensionIsTSOrJson=function(e){return A(e)||\".json\"===e},e.extensionFromPath=function(n){var t=D(n);return void 0!==t?t:e.Debug.fail(\"File \"+n+\" has unknown extension.\")},e.isAnySupportedFileExtension=function(e){return void 0!==D(e)},e.tryGetExtensionFromPath=D,e.isCheckJsEnabledForFile=function(e,n){return e.checkJsDirective?e.checkJsDirective.enabled:n.checkJs},e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray},e.matchPatternOrExact=function(n,t){for(var r=[],a=0,i=n;a<i.length;a++){var o=i[a];if(e.hasZeroOrOneAsteriskCharacter(o)){var s=C(o);if(s)r.push(s);else if(o===t)return o}}return e.findBestPatternMatch(r,(function(e){return e}),t)},e.sliceAfter=function(n,t){var r=n.indexOf(t);return e.Debug.assert(-1!==r),n.slice(r)},e.addRelatedInfo=function(e){for(var n,t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e.relatedInformation||(e.relatedInformation=[]),(n=e.relatedInformation).push.apply(n,t),e},e.minAndMax=function(n,t){e.Debug.assert(0!==n.length);for(var r=t(n[0]),a=r,i=1;i<n.length;i++){var o=t(n[i]);o<r?r=o:o>a&&(a=o)}return{min:r,max:a}};var k=function(){function n(){this.map=e.createMap()}return n.prototype.add=function(n){this.map.set(String(e.getNodeId(n)),n)},n.prototype.tryAdd=function(e){return!this.has(e)&&(this.add(e),!0)},n.prototype.has=function(n){return this.map.has(String(e.getNodeId(n)))},n.prototype.forEach=function(e){this.map.forEach(e)},n.prototype.some=function(n){return e.forEachEntry(this.map,n)||!1},n}();e.NodeSet=k;var N=function(){function n(){this.map=e.createMap()}return n.prototype.get=function(n){var t=this.map.get(String(e.getNodeId(n)));return t&&t.value},n.prototype.getOrUpdate=function(e,n){var t=this.get(e);if(t)return t;var r=n();return this.set(e,r),r},n.prototype.set=function(n,t){this.map.set(String(e.getNodeId(n)),{node:n,value:t})},n.prototype.has=function(n){return this.map.has(String(e.getNodeId(n)))},n.prototype.forEach=function(e){this.map.forEach((function(n){var t=n.node,r=n.value;return e(r,t)}))},n}();e.NodeMap=N,e.rangeOfNode=function(n){return{pos:e.getTokenPosOfNode(n),end:n.end}},e.rangeOfTypeParameters=function(e){return{pos:e.pos-1,end:e.end+1}},e.skipTypeChecking=function(e,n,t){return n.skipLibCheck&&e.isDeclarationFile||n.skipDefaultLibCheck&&e.hasNoDefaultLib||t.isSourceOfProjectReferenceRedirect(e.fileName)},e.isJsonEqual=function n(t,r){return t===r||\"object\"==typeof t&&null!==t&&\"object\"==typeof r&&null!==r&&e.equalOwnProperties(t,r,n)},e.getOrUpdate=function(e,n,t){var r=e.get(n);if(void 0===r){var a=t();return e.set(n,a),a}return r},e.parsePseudoBigInt=function(e){var n;switch(e.charCodeAt(1)){case 98:case 66:n=1;break;case 111:case 79:n=3;break;case 120:case 88:n=4;break;default:for(var t=e.length-1,r=0;48===e.charCodeAt(r);)r++;return e.slice(r,t)||\"0\"}for(var a=e.length-1,i=(a-2)*n,o=new Uint16Array((i>>>4)+(15&i?1:0)),s=a-1,c=0;s>=2;s--,c+=n){var l=c>>>4,u=e.charCodeAt(s),d=(u<=57?u-48:10+u-(u<=70?65:97))<<(15&c);o[l]|=d;var p=d>>>16;p&&(o[l+1]|=p)}for(var m=\"\",f=o.length-1,_=!0;_;){var g=0;_=!1;for(l=f;l>=0;l--){var y=g<<16|o[l],v=y/10|0;o[l]=v,g=y-10*v,v&&!_&&(f=l,_=!0)}m=g+m}return m},e.pseudoBigIntToString=function(e){var n=e.negative,t=e.base10Value;return(n&&\"0\"!==t?\"-\":\"\")+t}}(ts||(ts={})),function(e){var n,t,r,a,i,o,s;function c(e,n){return n&&e(n)}function l(e,n,t){if(t){if(n)return n(t);for(var r=0,a=t;r<a.length;r++){var i=e(a[r]);if(i)return i}}}function u(e,n){return 42===e.charCodeAt(n+1)&&42===e.charCodeAt(n+2)&&47!==e.charCodeAt(n+3)}function d(n,t,r){if(n&&!(n.kind<=151))switch(n.kind){case 152:return c(t,n.left)||c(t,n.right);case 154:return c(t,n.name)||c(t,n.constraint)||c(t,n.default)||c(t,n.expression);case 280:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||c(t,n.equalsToken)||c(t,n.objectAssignmentInitializer);case 281:return c(t,n.expression);case 155:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.dotDotDotToken)||c(t,n.name)||c(t,n.questionToken)||c(t,n.type)||c(t,n.initializer);case 158:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||c(t,n.type)||c(t,n.initializer);case 157:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.type)||c(t,n.initializer);case 279:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.questionToken)||c(t,n.initializer);case 241:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.exclamationToken)||c(t,n.type)||c(t,n.initializer);case 190:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.dotDotDotToken)||c(t,n.propertyName)||c(t,n.name)||c(t,n.initializer);case 169:case 170:case 164:case 165:case 166:return l(t,r,n.decorators)||l(t,r,n.modifiers)||l(t,r,n.typeParameters)||l(t,r,n.parameters)||c(t,n.type);case 160:case 159:case 161:case 162:case 163:case 200:case 243:case 201:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.asteriskToken)||c(t,n.name)||c(t,n.questionToken)||c(t,n.exclamationToken)||l(t,r,n.typeParameters)||l(t,r,n.parameters)||c(t,n.type)||c(t,n.equalsGreaterThanToken)||c(t,n.body);case 168:return c(t,n.typeName)||l(t,r,n.typeArguments);case 167:return c(t,n.assertsModifier)||c(t,n.parameterName)||c(t,n.type);case 171:return c(t,n.exprName);case 172:return l(t,r,n.members);case 173:return c(t,n.elementType);case 174:return l(t,r,n.elementTypes);case 177:case 178:return l(t,r,n.types);case 179:return c(t,n.checkType)||c(t,n.extendsType)||c(t,n.trueType)||c(t,n.falseType);case 180:return c(t,n.typeParameter);case 187:return c(t,n.argument)||c(t,n.qualifier)||l(t,r,n.typeArguments);case 181:case 183:return c(t,n.type);case 184:return c(t,n.objectType)||c(t,n.indexType);case 185:return c(t,n.readonlyToken)||c(t,n.typeParameter)||c(t,n.questionToken)||c(t,n.type);case 186:return c(t,n.literal);case 188:case 189:case 191:return l(t,r,n.elements);case 192:return l(t,r,n.properties);case 193:return c(t,n.expression)||c(t,n.questionDotToken)||c(t,n.name);case 194:return c(t,n.expression)||c(t,n.questionDotToken)||c(t,n.argumentExpression);case 195:case 196:return c(t,n.expression)||c(t,n.questionDotToken)||l(t,r,n.typeArguments)||l(t,r,n.arguments);case 197:return c(t,n.tag)||c(t,n.questionDotToken)||l(t,r,n.typeArguments)||c(t,n.template);case 198:return c(t,n.type)||c(t,n.expression);case 199:case 202:case 203:case 204:return c(t,n.expression);case 206:return c(t,n.operand);case 211:return c(t,n.asteriskToken)||c(t,n.expression);case 205:return c(t,n.expression);case 207:return c(t,n.operand);case 208:return c(t,n.left)||c(t,n.operatorToken)||c(t,n.right);case 216:return c(t,n.expression)||c(t,n.type);case 217:return c(t,n.expression);case 218:return c(t,n.name);case 209:return c(t,n.condition)||c(t,n.questionToken)||c(t,n.whenTrue)||c(t,n.colonToken)||c(t,n.whenFalse);case 212:return c(t,n.expression);case 222:case 249:return l(t,r,n.statements);case 288:return l(t,r,n.statements)||c(t,n.endOfFileToken);case 224:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.declarationList);case 242:return l(t,r,n.declarations);case 225:return c(t,n.expression);case 226:return c(t,n.expression)||c(t,n.thenStatement)||c(t,n.elseStatement);case 227:return c(t,n.statement)||c(t,n.expression);case 228:return c(t,n.expression)||c(t,n.statement);case 229:return c(t,n.initializer)||c(t,n.condition)||c(t,n.incrementor)||c(t,n.statement);case 230:return c(t,n.initializer)||c(t,n.expression)||c(t,n.statement);case 231:return c(t,n.awaitModifier)||c(t,n.initializer)||c(t,n.expression)||c(t,n.statement);case 232:case 233:return c(t,n.label);case 234:return c(t,n.expression);case 235:return c(t,n.expression)||c(t,n.statement);case 236:return c(t,n.expression)||c(t,n.caseBlock);case 250:return l(t,r,n.clauses);case 275:return c(t,n.expression)||l(t,r,n.statements);case 276:return l(t,r,n.statements);case 237:return c(t,n.label)||c(t,n.statement);case 238:return c(t,n.expression);case 239:return c(t,n.tryBlock)||c(t,n.catchClause)||c(t,n.finallyBlock);case 278:return c(t,n.variableDeclaration)||c(t,n.block);case 156:return c(t,n.expression);case 244:case 213:case 245:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.typeParameters)||l(t,r,n.heritageClauses)||l(t,r,n.members);case 246:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.typeParameters)||c(t,n.type);case 247:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||l(t,r,n.members);case 282:return c(t,n.name)||c(t,n.initializer);case 248:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.body);case 252:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.name)||c(t,n.moduleReference);case 253:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.importClause)||c(t,n.moduleSpecifier);case 254:return c(t,n.name)||c(t,n.namedBindings);case 251:case 255:return c(t,n.name);case 256:case 260:return l(t,r,n.elements);case 259:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.exportClause)||c(t,n.moduleSpecifier);case 257:case 261:return c(t,n.propertyName)||c(t,n.name);case 258:return l(t,r,n.decorators)||l(t,r,n.modifiers)||c(t,n.expression);case 210:return c(t,n.head)||l(t,r,n.templateSpans);case 220:return c(t,n.expression)||c(t,n.literal);case 153:return c(t,n.expression);case 277:return l(t,r,n.types);case 215:return c(t,n.expression)||l(t,r,n.typeArguments);case 263:return c(t,n.expression);case 262:return l(t,r,n.decorators);case 320:return l(t,r,n.elements);case 264:return c(t,n.openingElement)||l(t,r,n.children)||c(t,n.closingElement);case 268:return c(t,n.openingFragment)||l(t,r,n.children)||c(t,n.closingFragment);case 265:case 266:return c(t,n.tagName)||l(t,r,n.typeArguments)||c(t,n.attributes);case 272:return l(t,r,n.properties);case 271:return c(t,n.name)||c(t,n.initializer);case 273:return c(t,n.expression);case 274:return c(t,n.dotDotDotToken)||c(t,n.expression);case 267:return c(t,n.tagName);case 175:case 176:case 292:case 296:case 295:case 297:case 299:return c(t,n.type);case 298:return l(t,r,n.parameters)||c(t,n.type);case 301:return l(t,r,n.tags);case 310:case 316:return c(t,n.tagName)||(n.isNameFirst?c(t,n.name)||c(t,n.typeExpression):c(t,n.typeExpression)||c(t,n.name));case 306:return c(t,n.tagName);case 305:return c(t,n.tagName)||c(t,n.class);case 314:return c(t,n.tagName)||c(t,n.constraint)||l(t,r,n.typeParameters);case 315:return c(t,n.tagName)||(n.typeExpression&&292===n.typeExpression.kind?c(t,n.typeExpression)||c(t,n.fullName):c(t,n.fullName)||c(t,n.typeExpression));case 308:return c(t,n.tagName)||c(t,n.fullName)||c(t,n.typeExpression);case 311:case 313:case 312:case 309:return c(t,n.tagName)||c(t,n.typeExpression);case 303:return e.forEach(n.typeParameters,t)||e.forEach(n.parameters,t)||c(t,n.type);case 302:return e.forEach(n.jsDocPropertyTags,t);case 304:case 307:return c(t,n.tagName);case 319:return c(t,n.expression)}}function p(n){return e.fileExtensionIs(n,\".d.ts\")}function m(n,t){for(var r=[],a=0,i=e.getLeadingCommentRanges(t,0)||e.emptyArray;a<i.length;a++){var o=i[a];h(r,o,t.substring(o.pos,o.end))}n.pragmas=e.createMap();for(var s=0,c=r;s<c.length;s++){var l=c[s];if(n.pragmas.has(l.name)){var u=n.pragmas.get(l.name);u instanceof Array?u.push(l.args):n.pragmas.set(l.name,[u,l.args])}else n.pragmas.set(l.name,l.args)}}function f(n,t){n.checkJsDirective=void 0,n.referencedFiles=[],n.typeReferenceDirectives=[],n.libReferenceDirectives=[],n.amdDependencies=[],n.hasNoDefaultLib=!1,n.pragmas.forEach((function(r,a){switch(a){case\"reference\":var i=n.referencedFiles,o=n.typeReferenceDirectives,s=n.libReferenceDirectives;e.forEach(e.toArray(r),(function(r){var a=r.arguments,c=a.types,l=a.lib,u=a.path;r.arguments[\"no-default-lib\"]?n.hasNoDefaultLib=!0:c?o.push({pos:c.pos,end:c.end,fileName:c.value}):l?s.push({pos:l.pos,end:l.end,fileName:l.value}):u?i.push({pos:u.pos,end:u.end,fileName:u.value}):t(r.range.pos,r.range.end-r.range.pos,e.Diagnostics.Invalid_reference_directive_syntax)}));break;case\"amd-dependency\":n.amdDependencies=e.map(e.toArray(r),(function(e){return{name:e.arguments.name,path:e.arguments.path}}));break;case\"amd-module\":if(r instanceof Array)for(var c=0,l=r;c<l.length;c++){var u=l[c];n.moduleName&&t(u.range.pos,u.range.end-u.range.pos,e.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments),n.moduleName=u.arguments.name}else n.moduleName=r.arguments.name;break;case\"ts-nocheck\":case\"ts-check\":e.forEach(e.toArray(r),(function(e){(!n.checkJsDirective||e.range.pos>n.checkJsDirective.pos)&&(n.checkJsDirective={enabled:\"ts-check\"===a,end:e.range.end,pos:e.range.pos})}));break;case\"jsx\":return;default:e.Debug.fail(\"Unhandled pragma kind\")}}))}!function(e){e[e.None=0]=\"None\",e[e.Yield=1]=\"Yield\",e[e.Await=2]=\"Await\",e[e.Type=4]=\"Type\",e[e.IgnoreMissingOpenBrace=16]=\"IgnoreMissingOpenBrace\",e[e.JSDoc=32]=\"JSDoc\"}(n||(n={})),e.createNode=function(n,o,s){return 288===n?new(i||(i=e.objectAllocator.getSourceFileConstructor()))(n,o,s):75===n?new(a||(a=e.objectAllocator.getIdentifierConstructor()))(n,o,s):e.isNodeKind(n)?new(t||(t=e.objectAllocator.getNodeConstructor()))(n,o,s):new(r||(r=e.objectAllocator.getTokenConstructor()))(n,o,s)},e.isJSDocLikeText=u,e.forEachChild=d,e.createSourceFile=function(n,t,r,a,i){var s;return void 0===a&&(a=!1),e.performance.mark(\"beforeParse\"),e.perfLogger.logStartParseSourceFile(n),s=100===r?o.parseSourceFile(n,t,r,void 0,a,6):o.parseSourceFile(n,t,r,void 0,a,i),e.perfLogger.logStopParseSourceFile(),e.performance.mark(\"afterParse\"),e.performance.measure(\"Parse\",\"beforeParse\",\"afterParse\"),s},e.parseIsolatedEntityName=function(e,n){return o.parseIsolatedEntityName(e,n)},e.parseJsonText=function(e,n){return o.parseJsonText(e,n)},e.isExternalModule=function(e){return void 0!==e.externalModuleIndicator},e.updateSourceFile=function(e,n,t,r){void 0===r&&(r=!1);var a=s.updateSourceFile(e,n,t,r);return a.flags|=3145728&e.flags,a},e.parseIsolatedJSDocComment=function(e,n,t){var r=o.JSDocParser.parseIsolatedJSDocComment(e,n,t);return r&&r.jsDoc&&o.fixupParentReferences(r.jsDoc),r},e.parseJSDocTypeExpressionForTests=function(e,n,t){return o.JSDocParser.parseJSDocTypeExpressionForTests(e,n,t)},function(n){var t,r,a,i,o,s,c,l,_,g,y,v,h,b,T,S,x,L,C=e.createScanner(99,!0),A=!1;function D(n,t,r,a,i){void 0===r&&(r=2),N(t,r,a,6),(o=P(n,2,6,!1)).flags=T,ae();var c=ne();if(1===te())o.statements=xe([],c,c),o.endOfFileToken=he();else{var l=Te(225);switch(te()){case 22:l.expression=Bt();break;case 105:case 90:case 99:l.expression=he();break;case 40:de((function(){return 8===ae()&&58!==ae()}))?l.expression=gt():l.expression=Ut();break;case 8:case 10:if(de((function(){return 58!==ae()}))){l.expression=ln();break}default:l.expression=Ut()}Le(l),o.statements=xe([l],c),o.endOfFileToken=ve(1,e.Diagnostics.Unexpected_token)}i&&R(o),o.nodeCount=g,o.identifierCount=v,o.identifiers=y,o.parseDiagnostics=s;var u=o;return I(),u}function k(e){return 4===e||2===e||1===e||6===e?1:0}function N(n,o,l,u){switch(t=e.objectAllocator.getNodeConstructor(),r=e.objectAllocator.getTokenConstructor(),a=e.objectAllocator.getIdentifierConstructor(),i=e.objectAllocator.getSourceFileConstructor(),_=n,c=l,s=[],h=0,y=e.createMap(),v=0,g=0,u){case 1:case 2:T=131072;break;case 6:T=33685504;break;default:T=0}A=!1,C.setText(_),C.setOnError(ee),C.setScriptTarget(o),C.setLanguageVariant(k(u))}function I(){C.setText(\"\"),C.setOnError(void 0),s=void 0,o=void 0,y=void 0,c=void 0,_=void 0,b=void 0}function M(n,t,r,a){var i=p(n);return i&&(T|=8388608),(o=P(n,t,a,i)).flags=T,ae(),m(o,_),f(o,(function(n,t,r){s.push(e.createFileDiagnostic(o,n,t,r))})),o.statements=Je(0,ar),e.Debug.assert(1===te()),o.endOfFileToken=O(he()),function(n){n.externalModuleIndicator=e.forEach(n.statements,qr)||function(e){return 2097152&e.flags?Jr(e):void 0}(n)}(o),o.nodeCount=g,o.identifierCount=v,o.identifiers=y,o.parseDiagnostics=s,r&&R(o),o}function O(n){e.Debug.assert(!n.jsDoc);var t=e.mapDefined(e.getJSDocCommentRanges(n,o.text),(function(e){return L.parseJSDocComment(n,e.pos,e.end-e.pos)}));return t.length&&(n.jsDoc=t),n}function R(n){var t=n;return void d(n,(function n(r){if(r.parent!==t){r.parent=t;var a=t;if(t=r,d(r,n),e.hasJSDocNodes(r))for(var i=0,o=r.jsDoc;i<o.length;i++){var s=o[i];s.parent=r,t=s,d(s,n)}t=a}}))}function P(n,t,r,a){var o=new i(288,0,_.length);return g++,o.text=_,o.bindDiagnostics=[],o.bindSuggestionDiagnostics=void 0,o.languageVersion=t,o.fileName=e.normalizePath(n),o.languageVariant=k(r),o.isDeclarationFile=a,o.scriptKind=r,o}function w(e,n){e?T|=n:T&=~n}function F(e){w(e,4096)}function G(e){w(e,8192)}function B(e){w(e,16384)}function V(e){w(e,32768)}function U(e,n){var t=e&T;if(t){w(!1,t);var r=n();return w(!0,t),r}return n()}function j(e,n){var t=e&~T;if(t){w(!0,t);var r=n();return w(!1,t),r}return n()}function K(e){return U(4096,e)}function H(e){return j(32768,e)}function W(e){return 0!=(T&e)}function z(){return W(8192)}function q(){return W(4096)}function J(){return W(16384)}function X(){return W(32768)}function Y(e,n){Z(C.getTokenPos(),C.getTextPos(),e,n)}function Q(n,t,r,a){var i=e.lastOrUndefined(s);i&&n===i.start||s.push(e.createFileDiagnostic(o,n,t,r,a)),A=!0}function Z(e,n,t,r){Q(e,n-e,t,r)}function $(e,n,t){Z(e.pos,e.end,n,t)}function ee(e,n){Q(C.getTextPos(),n,e)}function ne(){return C.getStartPos()}function te(){return l}function re(){return l=C.scan()}function ae(){return e.isKeyword(l)&&(C.hasUnicodeEscape()||C.hasExtendedUnicodeEscape())&&Z(C.getTokenPos(),C.getTextPos(),e.Diagnostics.Keywords_cannot_contain_escape_characters),re()}function ie(){return l=C.scanJsDocToken()}function oe(){return l=C.reScanGreaterToken()}function se(){return l=C.reScanLessThanToken()}function ce(){return l=C.scanJsxIdentifier()}function le(){return l=C.scanJsxToken()}function ue(n,t){var r=l,a=s.length,i=A,o=T,c=t?C.lookAhead(n):C.tryScan(n);return e.Debug.assert(o===T),c&&!t||(l=r,s.length=a,A=i),c}function de(e){return ue(e,!0)}function pe(e){return ue(e,!1)}function me(){return 75===te()||(120!==te()||!z())&&((126!==te()||!X())&&te()>111)}function fe(n,t,r){return void 0===r&&(r=!0),te()===n?(r&&ae(),!0):(t?Y(t):Y(e.Diagnostics._0_expected,e.tokenToString(n)),!1)}function _e(e){return te()===e&&(ae(),!0)}function ge(e){if(te()===e)return he()}function ye(e){if(te()===e)return n=Te(te()),ie(),Le(n);var n}function ve(n,t,r){return ge(n)||Ce(n,!1,t||e.Diagnostics._0_expected,r||e.tokenToString(n))}function he(){var e=Te(te());return ae(),Le(e)}function be(){return 26===te()||(19===te()||1===te()||C.hasPrecedingLineBreak())}function Ee(){return be()?(26===te()&&ae(),!0):fe(26)}function Te(n,i){g++;var o=i>=0?i:C.getStartPos();return e.isNodeKind(n)||0===n?new t(n,o,o):75===n?new a(n,o,o):new r(n,o,o)}function Se(e,n){var t=Te(e,n);return 2&C.getTokenFlags()&&O(t),t}function xe(e,n,t){var r=e.length,a=r>=1&&r<=4?e.slice():e;return a.pos=n,a.end=void 0===t?C.getStartPos():t,a}function Le(e,n){return e.end=void 0===n?C.getStartPos():n,T&&(e.flags|=T),A&&(A=!1,e.flags|=65536),e}function Ce(n,t,r,a){t?Q(C.getStartPos(),0,r,a):r&&Y(r,a);var i=Te(n);return 75===n?i.escapedText=\"\":(e.isLiteralKind(n)||e.isTemplateLiteralKind(n))&&(i.text=\"\"),Le(i)}function Ae(e){var n=y.get(e);return void 0===n&&y.set(e,n=e),n}function De(n,t){if(v++,n){var r=Te(75);return 75!==te()&&(r.originalKeywordKind=te()),r.escapedText=e.escapeLeadingUnderscores(Ae(C.getTokenValue())),re(),Le(r)}var a=1===te(),i=C.isReservedWord(),o=C.getTokenText(),s=i?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return Ce(75,a,t||s,o)}function ke(e){return De(me(),e)}function Ne(n){return De(e.tokenIsIdentifierOrKeyword(te()),n)}function Ie(){return e.tokenIsIdentifierOrKeyword(te())||10===te()||8===te()}function Me(e){if(10===te()||8===te()){var n=ln();return n.text=Ae(n.text),n}return e&&22===te()?function(){var e=Te(153);return fe(22),e.expression=K(tt),fe(23),Le(e)}():Ne()}function Oe(){return Me(!0)}function Re(e){return te()===e&&pe(we)}function Pe(){return ae(),!C.hasPrecedingLineBreak()&&Fe()}function we(){switch(te()){case 80:return 87===ae();case 88:return ae(),83===te()?de(Ge):41!==te()&&122!==te()&&18!==te()&&Fe();case 83:return Ge();case 119:case 130:case 141:return ae(),Fe();default:return Pe()}}function Fe(){return 22===te()||18===te()||41===te()||25===te()||Ie()}function Ge(){return ae(),79===te()||93===te()||113===te()||121===te()&&de(Qt)||125===te()&&de(Zt)}function Be(n,t){if(Ye(n))return!0;switch(n){case 0:case 1:case 3:return!(26===te()&&t)&&tr();case 2:return 77===te()||83===te();case 4:return de(An);case 5:return de(Lr)||26===te()&&!t;case 6:return 22===te()||Ie();case 12:switch(te()){case 22:case 41:case 25:case 24:return!0;default:return Ie()}case 18:return Ie();case 9:return 22===te()||25===te()||Ie();case 7:return 18===te()?de(Ve):t?me()&&!He():et()&&!He();case 8:return pr();case 10:return 27===te()||25===te()||pr();case 19:return me();case 15:switch(te()){case 27:case 24:return!0}case 11:return 25===te()||nt();case 16:return hn(!1);case 17:return hn(!0);case 20:case 21:return 27===te()||jn();case 22:return wr();case 23:return e.tokenIsIdentifierOrKeyword(te());case 13:return e.tokenIsIdentifierOrKeyword(te())||18===te();case 14:return!0}return e.Debug.fail(\"Non-exhaustive case in 'isListElement'.\")}function Ve(){if(e.Debug.assert(18===te()),19===ae()){var n=ae();return 27===n||18===n||89===n||112===n}return!0}function Ue(){return ae(),me()}function je(){return ae(),e.tokenIsIdentifierOrKeyword(te())}function Ke(){return ae(),e.tokenIsIdentifierOrKeywordOrGreaterThan(te())}function He(){return(112===te()||89===te())&&de(We)}function We(){return ae(),nt()}function ze(){return ae(),jn()}function qe(e){if(1===te())return!0;switch(e){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:return 19===te();case 3:return 19===te()||77===te()||83===te();case 7:return 18===te()||89===te()||112===te();case 8:return function(){if(be())return!0;if(pt(te()))return!0;if(38===te())return!0;return!1}();case 19:return 31===te()||20===te()||18===te()||89===te()||112===te();case 11:return 21===te()||26===te();case 15:case 21:case 10:return 23===te();case 17:case 16:case 18:return 21===te()||23===te();case 20:return 27!==te();case 22:return 18===te()||19===te();case 13:return 31===te()||43===te();case 14:return 29===te()&&de(Ur);default:return!1}}function Je(e,n){var t=h;h|=1<<e;for(var r=[],a=ne();!qe(e);)if(Be(e,!1)){var i=Xe(e,n);r.push(i)}else if(Ze(e))break;return h=t,xe(r,a)}function Xe(e,n){var t=Ye(e);return t?Qe(t):n()}function Ye(n){if(c&&function(e){switch(e){case 5:case 2:case 0:case 1:case 3:case 6:case 4:case 8:case 17:case 16:return!0}return!1}(n)&&!A){var t=c.currentNode(C.getStartPos());if(!(e.nodeIsMissing(t)||t.intersectsChange||e.containsParseError(t)))if((25358336&t.flags)===T&&function(e,n){switch(n){case 5:return function(e){if(e)switch(e.kind){case 161:case 166:case 162:case 163:case 158:case 221:return!0;case 160:var n=e;return!(75===n.name.kind&&128===n.name.originalKeywordKind)}return!1}(e);case 2:return function(e){if(e)switch(e.kind){case 275:case 276:return!0}return!1}(e);case 0:case 1:case 3:return function(e){if(e)switch(e.kind){case 243:case 224:case 222:case 226:case 225:case 238:case 234:case 236:case 233:case 232:case 230:case 231:case 229:case 228:case 235:case 223:case 239:case 237:case 227:case 240:case 253:case 252:case 259:case 258:case 248:case 244:case 245:case 247:case 246:return!0}return!1}(e);case 6:return function(e){return 282===e.kind}(e);case 4:return function(e){if(e)switch(e.kind){case 165:case 159:case 166:case 157:case 164:return!0}return!1}(e);case 8:return function(e){if(241!==e.kind)return!1;return void 0===e.initializer}(e);case 17:case 16:return function(e){if(155!==e.kind)return!1;return void 0===e.initializer}(e)}return!1}(t,n))return t.jsDocCache&&(t.jsDocCache=void 0),t}}function Qe(e){return C.setTextPos(e.end),ae(),e}function Ze(n){return Y(function(n){switch(n){case 0:case 1:return e.Diagnostics.Declaration_or_statement_expected;case 2:return e.Diagnostics.case_or_default_expected;case 3:return e.Diagnostics.Statement_expected;case 18:case 4:return e.Diagnostics.Property_or_signature_expected;case 5:return e.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected;case 6:return e.Diagnostics.Enum_member_expected;case 7:return e.Diagnostics.Expression_expected;case 8:return e.Diagnostics.Variable_declaration_expected;case 9:return e.Diagnostics.Property_destructuring_pattern_expected;case 10:return e.Diagnostics.Array_element_destructuring_pattern_expected;case 11:return e.Diagnostics.Argument_expression_expected;case 12:return e.Diagnostics.Property_assignment_expected;case 15:return e.Diagnostics.Expression_or_comma_expected;case 17:case 16:return e.Diagnostics.Parameter_declaration_expected;case 19:return e.Diagnostics.Type_parameter_declaration_expected;case 20:return e.Diagnostics.Type_argument_expected;case 21:return e.Diagnostics.Type_expected;case 22:return e.Diagnostics.Unexpected_token_expected;case 23:case 13:case 14:return e.Diagnostics.Identifier_expected;default:return}}(n)),!!function(){for(var e=0;e<24;e++)if(h&1<<e&&(Be(e,!0)||qe(e)))return!0;return!1}()||(ae(),!1)}function $e(e,n,t){var r=h;h|=1<<e;for(var a=[],i=ne(),o=-1;;)if(Be(e,!1)){var s=C.getStartPos();if(a.push(Xe(e,n)),o=C.getTokenPos(),_e(27))continue;if(o=-1,qe(e))break;fe(27,en(e)),t&&26===te()&&!C.hasPrecedingLineBreak()&&ae(),s===C.getStartPos()&&ae()}else{if(qe(e))break;if(Ze(e))break}h=r;var c=xe(a,i);return o>=0&&(c.hasTrailingComma=!0),c}function en(n){return 6===n?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function nn(){var e=xe([],ne());return e.isMissingList=!0,e}function tn(e,n,t,r){if(fe(t)){var a=$e(e,n);return fe(r),a}return nn()}function rn(e,n){for(var t=e?Ne(n):ke(n),r=C.getStartPos();_e(24);){if(29===te()){t.jsdocDotPos=r;break}r=C.getStartPos(),t=an(t,on(e))}return t}function an(e,n){var t=Te(152,e.pos);return t.left=e,t.right=n,Le(t)}function on(n){if(C.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(te())&&de(Yt))return Ce(75,!0,e.Diagnostics.Identifier_expected);return n?Ne():ke()}function sn(){var n,t=Te(210);t.head=(n=un(te()),e.Debug.assert(15===n.kind,\"Template head has wrong token kind\"),n),e.Debug.assert(15===t.head.kind,\"Template head has wrong token kind\");var r=[],a=ne();do{r.push(cn())}while(16===e.last(r).literal.kind);return t.templateSpans=xe(r,a),Le(t)}function cn(){var n,t,r=Te(220);return r.expression=K(tt),19===te()?(l=C.reScanTemplateToken(),t=un(te()),e.Debug.assert(16===t.kind||17===t.kind,\"Template fragment has wrong token kind\"),n=t):n=ve(17,e.Diagnostics._0_expected,e.tokenToString(19)),r.literal=n,Le(r)}function ln(){return un(te())}function un(e){var n=Te(e);switch(n.text=C.getTokenValue(),e){case 14:case 15:case 16:case 17:var t=14===e||17===e,r=C.getTokenText();n.rawText=r.substring(1,r.length-(C.isUnterminated()?0:t?1:2))}return C.hasExtendedUnicodeEscape()&&(n.hasExtendedUnicodeEscape=!0),C.isUnterminated()&&(n.isUnterminated=!0),8===n.kind&&(n.numericLiteralFlags=1008&C.getTokenFlags()),ae(),Le(n),n}function dn(){var n=Te(168);return n.typeName=rn(!0,e.Diagnostics.Type_expected),C.hasPrecedingLineBreak()||29!==se()||(n.typeArguments=tn(20,Qn,29,31)),Le(n)}function pn(){var e=Te(182);return ae(),Le(e)}function mn(e){var n=Te(293);return e?Hn(297,n):(ae(),Le(n))}function fn(){var e=Te(155);return 103!==te()&&98!==te()||(e.name=Ne(),fe(58)),e.type=_n(),Le(e)}function _n(){C.setInJSDocType(!0);var e=ge(134);if(e){var n=Te(300,e.pos);e:for(;;)switch(te()){case 19:case 1:case 27:case 5:break e;default:ie()}return C.setInJSDocType(!1),Le(n)}var t=ge(25),r=Xn();if(C.setInJSDocType(!1),t){var a=Te(299,t.pos);a.type=r,r=Le(a)}return 62===te()?Hn(297,r):r}function gn(){var e=Te(154);return e.name=ke(),_e(89)&&(jn()||!nt()?e.constraint=Qn():e.expression=yt()),_e(62)&&(e.default=Qn()),Le(e)}function yn(){if(29===te())return tn(19,gn,29,31)}function vn(){if(_e(58))return Qn()}function hn(n){return 25===te()||pr()||e.isModifierKind(te())||59===te()||jn(!n)}function bn(){var n=Se(155);return 103===te()?(n.name=De(!0),n.type=vn(),Le(n)):(n.decorators=Cr(),n.modifiers=Ar(),n.dotDotDotToken=ge(25),n.name=mr(),0===e.getFullWidth(n.name)&&!e.hasModifiers(n)&&e.isModifierKind(te())&&ae(),n.questionToken=ge(57),n.type=vn(),n.initializer=rt(),Le(n))}function En(n,t,r){32&t||(r.typeParameters=yn());var a=function(e,n){if(!fe(20))return e.parameters=nn(),!1;var t=z(),r=X();return G(!!(1&n)),V(!!(2&n)),e.parameters=32&n?$e(17,fn):$e(16,bn),G(t),V(r),fe(21)}(r,t);return(!function(n,t){if(38===n)return fe(n),!0;if(_e(58))return!0;if(t&&38===te())return Y(e.Diagnostics._0_expected,e.tokenToString(58)),ae(),!0;return!1}(n,!!(4&t))||(r.type=Xn(),!function n(t){switch(t.kind){case 168:return e.nodeIsMissing(t.typeName);case 169:case 170:var r=t,a=r.parameters,i=r.type;return!!a.isMissingList||n(i);case 181:return n(t.type);default:return!1}}(r.type)))&&a}function Tn(){_e(27)||Ee()}function Sn(e){var n=Se(e);return 165===e&&fe(98),En(58,4,n),Tn(),Le(n)}function xn(){return 22===te()&&de(Ln)}function Ln(){if(ae(),25===te()||23===te())return!0;if(e.isModifierKind(te())){if(ae(),me())return!0}else{if(!me())return!1;ae()}return 58===te()||27===te()||57===te()&&(ae(),58===te()||27===te()||23===te())}function Cn(e){return e.kind=166,e.parameters=tn(16,bn,22,23),e.type=$n(),Tn(),Le(e)}function An(){if(20===te()||29===te())return!0;for(var n=!1;e.isModifierKind(te());)n=!0,ae();return 22===te()||(Ie()&&(n=!0,ae()),!!n&&(20===te()||29===te()||57===te()||58===te()||27===te()||be()))}function Dn(){if(20===te()||29===te())return Sn(164);if(98===te()&&de(kn))return Sn(165);var e=Se(0);return e.modifiers=Ar(),xn()?Cn(e):function(e){return e.name=Oe(),e.questionToken=ge(57),20===te()||29===te()?(e.kind=159,En(58,4,e)):(e.kind=157,e.type=$n(),62===te()&&(e.initializer=rt())),Tn(),Le(e)}(e)}function kn(){return ae(),20===te()||29===te()}function Nn(){return 24===ae()}function In(){switch(ae()){case 20:case 29:case 24:return!0}return!1}function Mn(){var e;return fe(18)?(e=Je(4,Dn),fe(19)):e=nn(),e}function On(){return ae(),39===te()||40===te()?137===ae():(137===te()&&ae(),22===te()&&Ue()&&96===ae())}function Rn(){var e=Te(185);return fe(18),137!==te()&&39!==te()&&40!==te()||(e.readonlyToken=he(),137!==e.readonlyToken.kind&&ve(137)),fe(22),e.typeParameter=function(){var e=Te(154);return e.name=ke(),fe(96),e.constraint=Qn(),Le(e)}(),fe(23),57!==te()&&39!==te()&&40!==te()||(e.questionToken=he(),57!==e.questionToken.kind&&ve(57)),e.type=$n(),Ee(),fe(19),Le(e)}function Pn(){var e=ne();if(_e(25)){var n=Te(176,e);return n.type=Qn(),Le(n)}var t=Qn();return 4194304&T||295!==t.kind||t.pos!==t.type.pos||(t.kind=175),t}function wn(){var e=he();return 24===te()?void 0:e}function Fn(e){var n,t=Te(186);e&&((n=Te(206)).operator=40,ae());var r=105===te()||90===te()?he():un(te());return e&&(n.operand=r,Le(n),r=n),t.literal=r,Le(t)}function Gn(){return ae(),95===te()}function Bn(){o.flags|=1048576;var n=Te(187);return _e(107)&&(n.isTypeOf=!0),fe(95),fe(20),n.argument=Qn(),fe(21),_e(24)&&(n.qualifier=rn(!0,e.Diagnostics.Type_expected)),C.hasPrecedingLineBreak()||29!==se()||(n.typeArguments=tn(20,Qn,29,31)),Le(n)}function Vn(){return ae(),8===te()||9===te()}function Un(){switch(te()){case 124:case 147:case 142:case 139:case 150:case 143:case 127:case 145:case 136:case 140:return pe(wn)||dn();case 41:return mn(!1);case 65:return mn(!0);case 60:C.reScanQuestionToken();case 57:return r=C.getStartPos(),ae(),27===te()||19===te()||21===te()||31===te()||62===te()||51===te()?Le(t=Te(294,r)):((t=Te(295,r)).type=Qn(),Le(t));case 93:return function(){if(de(Vr)){var e=Se(298);return ae(),En(58,36,e),Le(e)}var n=Te(168);return n.typeName=Ne(),Le(n)}();case 53:return function(){var e=Te(296);return ae(),e.type=Un(),Le(e)}();case 14:case 10:case 8:case 9:case 105:case 90:return Fn();case 40:return de(Vn)?Fn(!0):dn();case 109:case 99:return he();case 103:var e=pn();return 132!==te()||C.hasPrecedingLineBreak()?e:function(e){ae();var n=Te(167,e.pos);return n.parameterName=e,n.type=Qn(),Le(n)}(e);case 107:return de(Gn)?Bn():(n=Te(171),fe(107),n.exprName=rn(!0),Le(n));case 18:return de(On)?Rn():function(){var e=Te(172);return e.members=Mn(),Le(e)}();case 22:return function(){var e=Te(174);return e.elementTypes=tn(21,Pn,22,23),Le(e)}();case 20:return function(){var e=Te(181);return fe(20),e.type=Qn(),fe(21),Le(e)}();case 95:return Bn();case 123:return de(Yt)?function(){var e=Te(167);return e.assertsModifier=ve(123),e.parameterName=103===te()?pn():ke(),e.type=_e(132)?Qn():void 0,Le(e)}():dn();default:return dn()}var n,t,r}function jn(e){switch(te()){case 124:case 147:case 142:case 139:case 150:case 127:case 137:case 143:case 146:case 109:case 145:case 99:case 103:case 107:case 136:case 18:case 22:case 29:case 51:case 50:case 98:case 10:case 8:case 9:case 105:case 90:case 140:case 41:case 57:case 53:case 25:case 131:case 95:case 123:return!0;case 93:return!e;case 40:return!e&&de(Vn);case 20:return!e&&de(Kn);default:return me()}}function Kn(){return ae(),21===te()||hn(!1)||jn()}function Hn(e,n){ae();var t=Te(e,n.pos);return t.type=n,Le(t)}function Wn(){var e=te();switch(e){case 133:case 146:case 137:return function(e){var n=Te(183);return fe(e),n.operator=e,n.type=Wn(),Le(n)}(e);case 131:return function(){var e=Te(180);fe(131);var n=Te(154);return n.name=ke(),e.typeParameter=Le(n),Le(e)}()}return function(){for(var e=Un();!C.hasPrecedingLineBreak();)switch(te()){case 53:e=Hn(296,e);break;case 57:if(!(4194304&T)&&de(ze))return e;e=Hn(295,e);break;case 22:var n;if(fe(22),jn())(n=Te(184,e.pos)).objectType=e,n.indexType=Qn(),fe(23),e=Le(n);else(n=Te(173,e.pos)).elementType=e,fe(23),e=Le(n);break;default:return e}return e}()}function zn(e,n,t){var r=C.getStartPos(),a=_e(t),i=n();if(te()===t||a){for(var o=[i];_e(t);)o.push(n());var s=Te(e,r);s.types=xe(o,r),i=Le(s)}return i}function qn(){return zn(178,Wn,50)}function Jn(){if(ae(),21===te()||25===te())return!0;if(function(){if(e.isModifierKind(te())&&Ar(),me()||103===te())return ae(),!0;if(22===te()||18===te()){var n=s.length;return mr(),n===s.length}return!1}()){if(58===te()||27===te()||57===te()||62===te())return!0;if(21===te()&&(ae(),38===te()))return!0}return!1}function Xn(){var e=me()&&pe(Yn),n=Qn();if(e){var t=Te(167,e.pos);return t.assertsModifier=void 0,t.parameterName=e,t.type=n,Le(t)}return n}function Yn(){var e=ke();if(132===te()&&!C.hasPrecedingLineBreak())return ae(),e}function Qn(){return U(40960,Zn)}function Zn(e){if(29===te()||20===te()&&de(Jn)||98===te())return function(){var e=ne(),n=Se(_e(98)?170:169,e);return En(38,4,n),Le(n)}();var n=zn(177,qn,51);if(!e&&!C.hasPrecedingLineBreak()&&_e(89)){var t=Te(179,n.pos);return t.checkType=n,t.extendsType=Zn(!0),fe(57),t.trueType=Zn(),fe(58),t.falseType=Zn(),Le(t)}return n}function $n(){return _e(58)?Qn():void 0}function et(){switch(te()){case 103:case 101:case 99:case 105:case 90:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 93:case 79:case 98:case 43:case 67:case 75:return!0;case 95:return de(In);default:return me()}}function nt(){if(et())return!0;switch(te()){case 39:case 40:case 54:case 53:case 84:case 107:case 109:case 45:case 46:case 29:case 126:case 120:return!0;default:return!!function(){if(q()&&96===te())return!1;return e.getBinaryOperatorPrecedence(te())>0}()||me()}}function tt(){var e=J();e&&B(!1);for(var n,t=at();n=ge(27);)t=ft(t,n,at());return e&&B(!0),t}function rt(){return _e(62)?at():void 0}function at(){if(function(){if(120===te())return!!z()||de($t);return!1}())return n=Te(211),ae(),C.hasPrecedingLineBreak()||41!==te()&&!nt()?Le(n):(n.asteriskToken=ge(41),n.expression=at(),Le(n));var n,t=function(){var n=function(){if(20===te()||29===te()||125===te())return de(ot);if(38===te())return 1;return 0}();if(0===n)return;var t=1===n?lt(!0):pe(st);if(!t)return;var r=e.hasModifier(t,256),a=te();return t.equalsGreaterThanToken=ve(38),t.body=38===a||18===a?ut(r):ke(),Le(t)}()||function(){if(125===te()&&1===de(ct)){var e=Dr();return it(dt(0),e)}return}();if(t)return t;var r=dt(0);return 75===r.kind&&38===te()?it(r):e.isLeftHandSideExpression(r)&&e.isAssignmentOperator(oe())?ft(r,he(),at()):function(n){var t=ge(57);if(!t)return n;var r=Te(209,n.pos);return r.condition=n,r.questionToken=t,r.whenTrue=U(20480,at),r.colonToken=ve(58),r.whenFalse=e.nodeIsPresent(r.colonToken)?at():Ce(75,!1,e.Diagnostics._0_expected,e.tokenToString(58)),Le(r)}(r)}function it(n,t){var r;e.Debug.assert(38===te(),\"parseSimpleArrowFunctionExpression should only have been called if we had a =>\"),t?(r=Te(201,t.pos)).modifiers=t:r=Te(201,n.pos);var a=Te(155,n.pos);return a.name=n,Le(a),r.parameters=xe([a],a.pos,a.end),r.equalsGreaterThanToken=ve(38),r.body=ut(!!t),O(Le(r))}function ot(){if(125===te()){if(ae(),C.hasPrecedingLineBreak())return 0;if(20!==te()&&29!==te())return 0}var n=te(),t=ae();if(20===n){if(21===t)switch(ae()){case 38:case 58:case 18:return 1;default:return 0}if(22===t||18===t)return 2;if(25===t)return 1;if(e.isModifierKind(t)&&125!==t&&de(Ue))return 1;if(!me()&&103!==t)return 0;switch(ae()){case 58:return 1;case 57:return ae(),58===te()||27===te()||62===te()||21===te()?1:0;case 27:case 62:case 21:return 2}return 0}return e.Debug.assert(29===n),me()?1===o.languageVariant?de((function(){var e=ae();if(89===e)switch(ae()){case 62:case 31:return!1;default:return!0}else if(27===e)return!0;return!1}))?1:0:2:0}function st(){var n=C.getTokenPos();if(!b||!b.has(n.toString())){var t=lt(!1);return t||(b||(b=e.createMap())).set(n.toString(),!0),t}}function ct(){if(125===te()){if(ae(),C.hasPrecedingLineBreak()||38===te())return 0;var e=dt(0);if(!C.hasPrecedingLineBreak()&&75===e.kind&&38===te())return 1}return 0}function lt(n){var t=Se(201);if(t.modifiers=Dr(),En(58,e.hasModifier(t,256)?2:0,t)||n){var r=t.type&&e.isJSDocFunctionType(t.type);if(n||38===te()||!r&&18===te())return t}}function ut(e){return 18===te()?Wt(e?2:0):26===te()||93===te()||79===te()||!tr()||18!==te()&&93!==te()&&79!==te()&&59!==te()&&nt()?e?H(at):U(32768,at):Wt(16|(e?2:0))}function dt(e){return mt(e,yt())}function pt(e){return 96===e||151===e}function mt(n,t){for(;;){oe();var r=e.getBinaryOperatorPrecedence(te());if(!(42===te()?r>=n:r>n))break;if(96===te()&&q())break;if(122===te()){if(C.hasPrecedingLineBreak())break;ae(),t=_t(t,Qn())}else t=ft(t,he(),dt(r))}return t}function ft(e,n,t){var r=Te(208,e.pos);return r.left=e,r.operatorToken=n,r.right=t,Le(r)}function _t(e,n){var t=Te(216,e.pos);return t.expression=e,t.type=n,Le(t)}function gt(){var e=Te(206);return e.operator=te(),ae(),e.operand=vt(),Le(e)}function yt(){if(function(){switch(te()){case 39:case 40:case 54:case 53:case 84:case 107:case 109:case 126:return!1;case 29:if(1!==o.languageVariant)return!1;default:return!0}}()){var n=ht();return 42===te()?mt(e.getBinaryOperatorPrecedence(te()),n):n}var t=te(),r=vt();if(42===te()){var a=e.skipTrivia(_,r.pos),i=r.end;198===r.kind?Z(a,i,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):Z(a,i,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(t))}return r}function vt(){switch(te()){case 39:case 40:case 54:case 53:return gt();case 84:return e=Te(202),ae(),e.expression=vt(),Le(e);case 107:return function(){var e=Te(203);return ae(),e.expression=vt(),Le(e)}();case 109:return function(){var e=Te(204);return ae(),e.expression=vt(),Le(e)}();case 29:return function(){var e=Te(198);return fe(29),e.type=Qn(),fe(31),e.expression=vt(),Le(e)}();case 126:if(126===te()&&(X()||de($t)))return function(){var e=Te(205);return ae(),e.expression=vt(),Le(e)}();default:return ht()}var e}function ht(){if(45===te()||46===te())return(n=Te(206)).operator=te(),ae(),n.operand=bt(),Le(n);if(1===o.languageVariant&&29===te()&&de(Ke))return Tt(!0);var n,t=bt();return e.Debug.assert(e.isLeftHandSideExpression(t)),45!==te()&&46!==te()||C.hasPrecedingLineBreak()?t:((n=Te(207,t.pos)).operand=t,n.operator=te(),ae(),Le(n))}function bt(){var n;if(95===te())if(de(kn))o.flags|=1048576,n=he();else if(de(Nn)){var t=C.getStartPos();ae(),ae();var r=Te(218,t);r.keywordToken=95,r.name=Ne(),n=Le(r),o.flags|=2097152}else n=Et();else n=101===te()?function(){var n=he();if(29===te()){var t=ne();void 0!==pe(Pt)&&Z(t,ne(),e.Diagnostics.super_may_not_use_type_arguments)}if(20===te()||24===te()||22===te())return n;var r=Te(193,n.pos);return r.expression=n,ve(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),r.name=on(!0),Le(r)}():Et();return function(n){for(;;){n=It(n,!0);var t=ge(28);if(29===te()||47===te()){var r=pe(Pt);if(r){if(Mt()){n=Ot(n,t,r);continue}(a=Te(195,n.pos)).expression=n,a.questionDotToken=t,a.typeArguments=r,a.arguments=Rt(),(t||32&n.flags)&&(a.flags|=32),n=Le(a);continue}}else if(20===te()){var a;(a=Te(195,n.pos)).expression=n,a.questionDotToken=t,a.arguments=Rt(),(t||32&n.flags)&&(a.flags|=32),n=Le(a);continue}if(t){var i=Te(193,n.pos);i.expression=n,i.questionDotToken=t,i.name=Ce(75,!1,e.Diagnostics.Identifier_expected),i.flags|=32,n=Le(i)}break}return n}(n)}function Et(){return It(wt(),!0)}function Tt(n){var t,r=function(e){var n=C.getStartPos();if(fe(29),31===te()){var t=Te(269,n);return le(),Le(t)}var r,a=Lt(),i=Pr(),o=(s=Te(272),s.properties=Je(13,At),Le(s));var s;31===te()?(r=Te(266,n),le()):(fe(43),e?fe(31):(fe(31,void 0,!1),le()),r=Te(265,n));return r.tagName=a,r.typeArguments=i,r.attributes=o,Le(r)}(n);if(266===r.kind)(a=Te(264,r.pos)).openingElement=r,a.children=xt(a.openingElement),a.closingElement=function(e){var n=Te(267);fe(30),n.tagName=Lt(),e?fe(31):(fe(31,void 0,!1),le());return Le(n)}(n),E(a.openingElement.tagName,a.closingElement.tagName)||$(a.closingElement,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(_,a.openingElement.tagName)),t=Le(a);else if(269===r.kind){var a;(a=Te(268,r.pos)).openingFragment=r,a.children=xt(a.openingFragment),a.closingFragment=function(n){var t=Te(270);fe(30),e.tokenIsIdentifierOrKeyword(te())&&$(Lt(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);n?fe(31):(fe(31,void 0,!1),le());return Le(t)}(n),t=Le(a)}else e.Debug.assert(265===r.kind),t=r;if(n&&29===te()){var i=pe((function(){return Tt(!0)}));if(i){Y(e.Diagnostics.JSX_expressions_must_have_one_parent_element);var o=Te(208,t.pos);return o.end=i.end,o.left=t,o.right=i,o.operatorToken=Ce(27,!1),o.operatorToken.pos=o.operatorToken.end=o.right.pos,o}}return t}function St(n,t){switch(t){case 1:return void(e.isJsxOpeningFragment(n)?$(n,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag):$(n.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(_,n.tagName)));case 30:case 7:return;case 11:case 12:return(r=Te(11)).text=C.getTokenValue(),r.containsOnlyTriviaWhiteSpaces=12===l,l=C.scanJsxToken(),Le(r);case 18:return Ct(!1);case 29:return Tt(!1);default:return e.Debug.assertNever(t)}var r}function xt(e){var n=[],t=ne(),r=h;for(h|=16384;;){var a=St(e,l=C.reScanJsxToken());if(!a)break;n.push(a)}return h=r,xe(n,t)}function Lt(){ce();for(var e=103===te()?he():Ne();_e(24);){var n=Te(193,e.pos);n.expression=e,n.name=on(!0),e=Le(n)}return e}function Ct(e){var n=Te(274);if(fe(18))return 19!==te()&&(n.dotDotDotToken=ge(25),n.expression=tt()),e?fe(19):fe(19,void 0,!1)&&le(),Le(n)}function At(){if(18===te())return function(){var e=Te(273);return fe(18),fe(25),e.expression=tt(),fe(19),Le(e)}();ce();var e=Te(271);if(e.name=Ne(),62===te())switch(l=C.scanJsxAttributeValue()){case 10:e.initializer=ln();break;default:e.initializer=Ct(!0)}return Le(e)}function Dt(){return ae(),e.tokenIsIdentifierOrKeyword(te())||22===te()||Mt()}function kt(e,n){var t=Te(193,e.pos);return t.expression=e,t.questionDotToken=n,t.name=on(!0),(n||32&e.flags)&&(t.flags|=32),Le(t)}function Nt(n,t){var r=Te(194,n.pos);if(r.expression=n,r.questionDotToken=t,23===te())r.argumentExpression=Ce(75,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var a=K(tt);e.isStringOrNumericLiteralLike(a)&&(a.text=Ae(a.text)),r.argumentExpression=a}return fe(23),(t||32&n.flags)&&(r.flags|=32),Le(r)}function It(n,t){for(;;){var r=void 0,a=!1;if(t&&28===te()&&de(Dt)?(r=ve(28),a=e.tokenIsIdentifierOrKeyword(te())):a=_e(24),a)n=kt(n,r);else if(r||53!==te()||C.hasPrecedingLineBreak())if(!r&&J()||!_e(22)){if(!Mt())return n;n=Ot(n,r,void 0)}else n=Nt(n,r);else{ae();var i=Te(217,n.pos);i.expression=n,n=Le(i)}}}function Mt(){return 14===te()||15===te()}function Ot(e,n,t){var r=Te(197,e.pos);return r.tag=e,r.questionDotToken=n,r.typeArguments=t,r.template=14===te()?ln():sn(),(n||32&e.flags)&&(r.flags|=32),Le(r)}function Rt(){fe(20);var e=$e(11,Gt);return fe(21),e}function Pt(){if(29===se()){ae();var e=$e(20,Qn);if(fe(31))return e&&function(){switch(te()){case 20:case 14:case 15:case 24:case 21:case 23:case 58:case 26:case 57:case 34:case 36:case 35:case 37:case 55:case 56:case 60:case 52:case 50:case 51:case 19:case 1:return!0;case 27:case 18:default:return!1}}()?e:void 0}}function wt(){switch(te()){case 8:case 9:case 10:case 14:return ln();case 103:case 101:case 99:case 105:case 90:return he();case 20:return n=Se(199),fe(20),n.expression=K(tt),fe(21),Le(n);case 22:return Bt();case 18:return Ut();case 125:if(!de(Zt))break;return jt();case 79:return Ir(Se(0),213);case 93:return jt();case 98:return function(){var n=C.getStartPos();if(fe(98),_e(24)){var t=Te(218,n);return t.keywordToken=98,t.name=Ne(),Le(t)}var r,a=wt();for(;;){a=It(a,!1),r=pe(Pt),Mt()&&(e.Debug.assert(!!r,\"Expected a type argument list; all plain tagged template starts should be consumed in 'parseMemberExpressionRest'\"),a=Ot(a,void 0,r),r=void 0);break}var i=Te(196,n);i.expression=a,i.typeArguments=r,(i.typeArguments||20===te())&&(i.arguments=Rt());return Le(i)}();case 43:case 67:if(13===(l=C.reScanSlashToken()))return ln();break;case 15:return sn()}var n;return ke(e.Diagnostics.Expression_expected)}function Ft(){return 25===te()?(e=Te(212),fe(25),e.expression=at(),Le(e)):27===te()?Te(214):at();var e}function Gt(){return U(20480,Ft)}function Bt(){var e=Te(191);return fe(22),C.hasPrecedingLineBreak()&&(e.multiLine=!0),e.elements=$e(15,Ft),fe(23),Le(e)}function Vt(){var e=Se(0);if(ge(25))return e.kind=281,e.expression=at(),Le(e);if(e.decorators=Cr(),e.modifiers=Ar(),Re(130))return xr(e,162);if(Re(141))return xr(e,163);var n=ge(41),t=me();if(e.name=Oe(),e.questionToken=ge(57),e.exclamationToken=ge(53),n||20===te()||29===te())return Er(e,n);if(t&&58!==te()){e.kind=280;var r=ge(62);r&&(e.equalsToken=r,e.objectAssignmentInitializer=K(at))}else e.kind=279,fe(58),e.initializer=K(at);return Le(e)}function Ut(){var e=Te(192);return fe(18),C.hasPrecedingLineBreak()&&(e.multiLine=!0),e.properties=$e(12,Vt,!0),fe(19),Le(e)}function jt(){var n=J();n&&B(!1);var t=Se(200);t.modifiers=Ar(),fe(93),t.asteriskToken=ge(41);var r=t.asteriskToken?1:0,a=e.hasModifier(t,256)?2:0;return t.name=r&&a?j(40960,Kt):r?function(e){return j(8192,e)}(Kt):a?H(Kt):Kt(),En(58,r|a,t),t.body=Wt(r|a),n&&B(!0),Le(t)}function Kt(){return me()?ke():void 0}function Ht(e,n){var t=Te(222);return fe(18,n)||e?(C.hasPrecedingLineBreak()&&(t.multiLine=!0),t.statements=Je(1,ar),fe(19)):t.statements=nn(),Le(t)}function Wt(e,n){var t=z();G(!!(1&e));var r=X();V(!!(2&e));var a=J();a&&B(!1);var i=Ht(!!(16&e),n);return a&&B(!0),G(t),V(r),i}function zt(){var e=ne();fe(92);var n,t,r=ge(126);if(fe(20),26!==te()&&(n=108===te()||114===te()||80===te()?gr(!0):j(4096,tt)),r?fe(151):_e(151)){var a=Te(231,e);a.awaitModifier=r,a.initializer=n,a.expression=K(at),fe(21),t=a}else if(_e(96)){var i=Te(230,e);i.initializer=n,i.expression=K(tt),fe(21),t=i}else{var o=Te(229,e);o.initializer=n,fe(26),26!==te()&&21!==te()&&(o.condition=K(tt)),fe(26),21!==te()&&(o.incrementor=K(tt)),fe(21),t=o}return t.statement=ar(),Le(t)}function qt(e){var n=Te(e);return fe(233===e?76:81),be()||(n.label=ke()),Ee(),Le(n)}function Jt(){return 77===te()?(e=Te(275),fe(77),e.expression=K(tt),fe(58),e.statements=Je(3,ar),Le(e)):function(){var e=Te(276);return fe(83),fe(58),e.statements=Je(3,ar),Le(e)}();var e}function Xt(){var e=Te(239);return fe(106),e.tryBlock=Ht(!1),e.catchClause=78===te()?function(){var e=Te(278);fe(78),_e(20)?(e.variableDeclaration=_r(),fe(21)):e.variableDeclaration=void 0;return e.block=Ht(!1),Le(e)}():void 0,e.catchClause&&91!==te()||(fe(91),e.finallyBlock=Ht(!1)),Le(e)}function Yt(){return ae(),e.tokenIsIdentifierOrKeyword(te())&&!C.hasPrecedingLineBreak()}function Qt(){return ae(),79===te()&&!C.hasPrecedingLineBreak()}function Zt(){return ae(),93===te()&&!C.hasPrecedingLineBreak()}function $t(){return ae(),(e.tokenIsIdentifierOrKeyword(te())||8===te()||9===te()||10===te())&&!C.hasPrecedingLineBreak()}function er(){for(;;)switch(te()){case 108:case 114:case 80:case 93:case 79:case 87:return!0;case 113:case 144:return ae(),!C.hasPrecedingLineBreak()&&me();case 134:case 135:return cr();case 121:case 125:case 129:case 116:case 117:case 118:case 137:if(ae(),C.hasPrecedingLineBreak())return!1;continue;case 149:return ae(),18===te()||75===te()||88===te();case 95:return ae(),10===te()||41===te()||18===te()||e.tokenIsIdentifierOrKeyword(te());case 88:if(ae(),62===te()||41===te()||18===te()||83===te()||122===te())return!0;continue;case 119:ae();continue;default:return!1}}function nr(){return de(er)}function tr(){switch(te()){case 59:case 26:case 18:case 108:case 114:case 93:case 79:case 87:case 94:case 85:case 110:case 92:case 81:case 76:case 100:case 111:case 102:case 104:case 106:case 82:case 78:case 91:return!0;case 95:return nr()||de(In);case 80:case 88:return nr();case 125:case 129:case 113:case 134:case 135:case 144:case 149:return!0;case 118:case 116:case 117:case 119:case 137:return nr()||!de(Yt);default:return nt()}}function rr(){return ae(),me()||18===te()||22===te()}function ar(){switch(te()){case 26:return e=Te(223),fe(26),Le(e);case 18:return Ht(!1);case 108:return vr(Se(241));case 114:if(de(rr))return vr(Se(241));break;case 93:return hr(Se(243));case 79:return Nr(Se(244));case 94:return function(){var e=Te(226);return fe(94),fe(20),e.expression=K(tt),fe(21),e.thenStatement=ar(),e.elseStatement=_e(86)?ar():void 0,Le(e)}();case 85:return function(){var e=Te(227);return fe(85),e.statement=ar(),fe(110),fe(20),e.expression=K(tt),fe(21),_e(26),Le(e)}();case 110:return function(){var e=Te(228);return fe(110),fe(20),e.expression=K(tt),fe(21),e.statement=ar(),Le(e)}();case 92:return zt();case 81:return qt(232);case 76:return qt(233);case 100:return function(){var e=Te(234);return fe(100),be()||(e.expression=K(tt)),Ee(),Le(e)}();case 111:return function(){var e=Te(235);return fe(111),fe(20),e.expression=K(tt),fe(21),e.statement=j(16777216,ar),Le(e)}();case 102:return function(){var e=Te(236);fe(102),fe(20),e.expression=K(tt),fe(21);var n=Te(250);return fe(18),n.clauses=Je(2,Jt),fe(19),e.caseBlock=Le(n),Le(e)}();case 104:return function(){var e=Te(238);return fe(104),e.expression=C.hasPrecedingLineBreak()?void 0:K(tt),Ee(),Le(e)}();case 106:case 78:case 91:return Xt();case 82:return function(){var e=Te(240);return fe(82),Ee(),Le(e)}();case 59:return or();case 125:case 113:case 144:case 134:case 135:case 129:case 80:case 87:case 88:case 95:case 116:case 117:case 118:case 121:case 119:case 137:case 149:if(nr())return or()}var e;return function(){var e=Se(0),n=K(tt);return 75===n.kind&&_e(58)?(e.kind=237,e.label=n,e.statement=ar()):(e.kind=225,e.expression=n,Ee()),Le(e)}()}function ir(e){return 129===e.kind}function or(){var n=de((function(){return Cr(),Ar()})),t=e.some(n,ir);if(t){var r=j(8388608,(function(){var e=Ye(h);if(e)return Qe(e)}));if(r)return r}var a=Se(0);if(a.decorators=Cr(),a.modifiers=Ar(),t){for(var i=0,o=a.modifiers;i<o.length;i++){o[i].flags|=8388608}return j(8388608,(function(){return sr(a)}))}return sr(a)}function sr(n){switch(te()){case 108:case 114:case 80:return vr(n);case 93:return hr(n);case 79:return Nr(n);case 113:return function(e){return e.kind=245,fe(113),e.name=ke(),e.typeParameters=yn(),e.heritageClauses=Mr(),e.members=Mn(),Le(e)}(n);case 144:return function(e){return e.kind=246,fe(144),e.name=ke(),e.typeParameters=yn(),fe(62),e.type=Qn(),Ee(),Le(e)}(n);case 87:return function(e){e.kind=247,fe(87),e.name=ke(),fe(18)?(e.members=$e(6,Fr),fe(19)):e.members=nn();return Le(e)}(n);case 149:case 134:case 135:return function(e){var n=0;if(149===te())return Br(e);if(_e(135))n|=16;else if(fe(134),10===te())return Br(e);return function e(n,t){n.kind=248;var r=16&t;return n.flags|=t,n.name=ke(),n.body=_e(24)?e(Te(0),4|r):Gr(),Le(n)}(e,n)}(n);case 95:return function(e){fe(95);var n,t=C.getStartPos();if(me()&&(n=ke(),27!==te()&&148!==te()))return function(e,n){return e.kind=252,e.name=n,fe(62),e.moduleReference=function(){return 138===te()&&de(Vr)?function(){var e=Te(263);return fe(138),fe(20),e.expression=jr(),fe(21),Le(e)}():rn(!1)}(),Ee(),Le(e)}(e,n);e.kind=253,(n||41===te()||18===te())&&(e.importClause=function(e,n){var t=Te(254,n);e&&(t.name=e);t.name&&!_e(27)||(t.namedBindings=41===te()?(r=Te(255),fe(41),fe(122),r.name=ke(),Le(r)):Kr(256));var r;return Le(t)}(n,t),fe(148));return e.moduleSpecifier=jr(),Ee(),Le(e)}(n);case 88:switch(ae(),te()){case 83:case 62:return function(e){e.kind=258,_e(62)?e.isExportEquals=!0:fe(83);return e.expression=at(),Ee(),Le(e)}(n);case 122:return function(e){return e.kind=251,fe(122),fe(135),e.name=ke(),Ee(),Le(e)}(n);default:return function(e){e.kind=259,_e(41)?(fe(148),e.moduleSpecifier=jr()):(e.exportClause=Kr(260),(148===te()||10===te()&&!C.hasPrecedingLineBreak())&&(fe(148),e.moduleSpecifier=jr()));return Ee(),Le(e)}(n)}default:if(n.decorators||n.modifiers){var t=Ce(262,!0,e.Diagnostics.Declaration_expected);return t.pos=n.pos,t.decorators=n.decorators,t.modifiers=n.modifiers,Le(t)}return}}function cr(){return ae(),!C.hasPrecedingLineBreak()&&(me()||10===te())}function lr(e,n){if(18===te()||!be())return Wt(e,n);Ee()}function ur(){if(27===te())return Te(214);var e=Te(190);return e.dotDotDotToken=ge(25),e.name=mr(),e.initializer=rt(),Le(e)}function dr(){var e=Te(190);e.dotDotDotToken=ge(25);var n=me(),t=Oe();return n&&58!==te()?e.name=t:(fe(58),e.propertyName=t,e.name=mr()),e.initializer=rt(),Le(e)}function pr(){return 18===te()||22===te()||me()}function mr(){return 22===te()?(e=Te(189),fe(22),e.elements=$e(10,ur),fe(23),Le(e)):18===te()?function(){var e=Te(188);return fe(18),e.elements=$e(9,dr),fe(19),Le(e)}():ke();var e}function fr(){return _r(!0)}function _r(e){var n=Te(241);return n.name=mr(),e&&75===n.name.kind&&53===te()&&!C.hasPrecedingLineBreak()&&(n.exclamationToken=he()),n.type=$n(),pt(te())||(n.initializer=rt()),Le(n)}function gr(n){var t=Te(242);switch(te()){case 108:break;case 114:t.flags|=1;break;case 80:t.flags|=2;break;default:e.Debug.fail()}if(ae(),151===te()&&de(yr))t.declarations=nn();else{var r=q();F(n),t.declarations=$e(8,n?_r:fr),F(r)}return Le(t)}function yr(){return Ue()&&21===ae()}function vr(e){return e.kind=224,e.declarationList=gr(!1),Ee(),Le(e)}function hr(n){n.kind=243,fe(93),n.asteriskToken=ge(41),n.name=e.hasModifier(n,512)?Kt():ke();var t=n.asteriskToken?1:0,r=e.hasModifier(n,256)?2:0;return En(58,t|r,n),n.body=lr(t|r,e.Diagnostics.or_expected),Le(n)}function br(n){return pe((function(){if(128===te()?fe(128):10===te()&&20===de(ae)?pe((function(){var e=ln();return\"constructor\"===e.text?e:void 0})):void 0)return n.kind=161,En(58,0,n),n.body=lr(0,e.Diagnostics.or_expected),Le(n)}))}function Er(n,t,r){n.kind=160,n.asteriskToken=t;var a=t?1:0,i=e.hasModifier(n,256)?2:0;return En(58,a|i,n),n.body=lr(a|i,r),Le(n)}function Tr(n){return n.kind=158,n.questionToken||53!==te()||C.hasPrecedingLineBreak()||(n.exclamationToken=he()),n.type=$n(),n.initializer=e.hasModifier(n,32)?K(rt):U(12288,rt),Ee(),Le(n)}function Sr(n){var t=ge(41);return n.name=Oe(),n.questionToken=ge(57),t||20===te()||29===te()?Er(n,t,e.Diagnostics.or_expected):Tr(n)}function xr(e,n){return e.kind=n,e.name=Oe(),En(58,0,e),e.body=lr(0),Le(e)}function Lr(){var n;if(59===te())return!0;for(;e.isModifierKind(te());){if(n=te(),e.isClassMemberModifier(n))return!0;ae()}if(41===te())return!0;if(Ie()&&(n=te(),ae()),22===te())return!0;if(void 0!==n){if(!e.isKeyword(n)||141===n||130===n)return!0;switch(te()){case 20:case 29:case 53:case 58:case 62:case 57:return!0;default:return be()}}return!1}function Cr(){for(var e,n=ne();;){var t=ne();if(!_e(59))break;var r=Te(156,t);r.expression=j(16384,bt),Le(r),(e||(e=[])).push(r)}return e&&xe(e,n)}function Ar(n){for(var t,r=ne();;){var a=C.getStartPos(),i=te();if(80===te()&&n){if(!pe(Pe))break}else if(!e.isModifierKind(te())||!pe(we))break;var o=Le(Te(i,a));(t||(t=[])).push(o)}return t&&xe(t,r)}function Dr(){var e;if(125===te()){var n=C.getStartPos(),t=te();ae(),e=xe([Le(Te(t,n))],n)}return e}function kr(){if(26===te()){var n=Te(221);return ae(),Le(n)}var t=Se(0);if(t.decorators=Cr(),t.modifiers=Ar(!0),Re(130))return xr(t,162);if(Re(141))return xr(t,163);if(128===te()||10===te()){var r=br(t);if(r)return r}if(xn())return Cn(t);if(e.tokenIsIdentifierOrKeyword(te())||10===te()||8===te()||41===te()||22===te()){if(t.modifiers&&e.some(t.modifiers,ir)){for(var a=0,i=t.modifiers;a<i.length;a++){i[a].flags|=8388608}return j(8388608,(function(){return Sr(t)}))}return Sr(t)}return t.decorators||t.modifiers?(t.name=Ce(75,!0,e.Diagnostics.Declaration_expected),Tr(t)):e.Debug.fail(\"Should not have attempted to parse class member declaration.\")}function Nr(e){return Ir(e,244)}function Ir(e,n){return e.kind=n,fe(79),e.name=!me()||112===te()&&de(je)?void 0:ke(),e.typeParameters=yn(),e.heritageClauses=Mr(),fe(18)?(e.members=Je(5,kr),fe(19)):e.members=nn(),Le(e)}function Mr(){if(wr())return Je(22,Or)}function Or(){var n=te();e.Debug.assert(89===n||112===n);var t=Te(277);return t.token=n,ae(),t.types=$e(7,Rr),Le(t)}function Rr(){var e=Te(215);return e.expression=bt(),e.typeArguments=Pr(),Le(e)}function Pr(){return 29===te()?tn(20,Qn,29,31):void 0}function wr(){return 89===te()||112===te()}function Fr(){var e=Se(282);return e.name=Oe(),e.initializer=K(rt),Le(e)}function Gr(){var e=Te(249);return fe(18)?(e.statements=Je(1,ar),fe(19)):e.statements=nn(),Le(e)}function Br(e){return e.kind=248,149===te()?(e.name=ke(),e.flags|=1024):(e.name=ln(),e.name.text=Ae(e.name.text)),18===te()?e.body=Gr():Ee(),Le(e)}function Vr(){return 20===ae()}function Ur(){return 43===ae()}function jr(){if(10===te()){var e=ln();return e.text=Ae(e.text),e}return tt()}function Kr(e){var n=Te(e);return n.elements=tn(23,256===e?Wr:Hr,18,19),Le(n)}function Hr(){return zr(261)}function Wr(){return zr(257)}function zr(n){var t=Te(n),r=e.isKeyword(te())&&!me(),a=C.getTokenPos(),i=C.getTextPos(),o=Ne();return 122===te()?(t.propertyName=o,fe(122),r=e.isKeyword(te())&&!me(),a=C.getTokenPos(),i=C.getTextPos(),t.name=Ne()):t.name=o,257===n&&r&&Z(a,i,e.Diagnostics.Identifier_expected),Le(t)}function qr(n){return e.hasModifier(n,1)||252===n.kind&&263===n.moduleReference.kind||253===n.kind||258===n.kind||259===n.kind?n:void 0}function Jr(n){return function(n){return e.isMetaProperty(n)&&95===n.keywordToken&&\"meta\"===n.name.escapedText}(n)?n:d(n,Jr)}n.parseSourceFile=function(n,t,r,a,i,o){if(void 0===i&&(i=!1),6===(o=e.ensureScriptKind(n,o))){var s=D(n,t,r,a,i);return e.convertToObjectWorker(s,s.parseDiagnostics,!1,void 0,void 0),s.referencedFiles=e.emptyArray,s.typeReferenceDirectives=e.emptyArray,s.libReferenceDirectives=e.emptyArray,s.amdDependencies=e.emptyArray,s.hasNoDefaultLib=!1,s.pragmas=e.emptyMap,s}N(t,r,a,o);var c=M(n,r,i,o);return I(),c},n.parseIsolatedEntityName=function(e,n){N(e,n,void 0,1),ae();var t=rn(!0),r=1===te()&&!s.length;return I(),r?t:void 0},n.parseJsonText=D,n.fixupParentReferences=R,function(e){e[e.SourceElements=0]=\"SourceElements\",e[e.BlockStatements=1]=\"BlockStatements\",e[e.SwitchClauses=2]=\"SwitchClauses\",e[e.SwitchClauseStatements=3]=\"SwitchClauseStatements\",e[e.TypeMembers=4]=\"TypeMembers\",e[e.ClassMembers=5]=\"ClassMembers\",e[e.EnumMembers=6]=\"EnumMembers\",e[e.HeritageClauseElement=7]=\"HeritageClauseElement\",e[e.VariableDeclarations=8]=\"VariableDeclarations\",e[e.ObjectBindingElements=9]=\"ObjectBindingElements\",e[e.ArrayBindingElements=10]=\"ArrayBindingElements\",e[e.ArgumentExpressions=11]=\"ArgumentExpressions\",e[e.ObjectLiteralMembers=12]=\"ObjectLiteralMembers\",e[e.JsxAttributes=13]=\"JsxAttributes\",e[e.JsxChildren=14]=\"JsxChildren\",e[e.ArrayLiteralMembers=15]=\"ArrayLiteralMembers\",e[e.Parameters=16]=\"Parameters\",e[e.JSDocParameters=17]=\"JSDocParameters\",e[e.RestProperties=18]=\"RestProperties\",e[e.TypeParameters=19]=\"TypeParameters\",e[e.TypeArguments=20]=\"TypeArguments\",e[e.TupleElementTypes=21]=\"TupleElementTypes\",e[e.HeritageClauses=22]=\"HeritageClauses\",e[e.ImportOrExportSpecifiers=23]=\"ImportOrExportSpecifiers\",e[e.Count=24]=\"Count\"}(S||(S={})),function(e){e[e.False=0]=\"False\",e[e.True=1]=\"True\",e[e.Unknown=2]=\"Unknown\"}(x||(x={})),function(n){function t(n){var t,r=Te(292),a=(n?_e:fe)(18);return r.type=j(4194304,_n),n&&!a||(t=19,te()===t?ie():Y(e.Diagnostics._0_expected,e.tokenToString(t))),R(r),Le(r)}var r,a;function i(n,r){void 0===n&&(n=0);var a=_,i=void 0===r?a.length:n+r;if(r=i-n,e.Debug.assert(n>=0),e.Debug.assert(n<=i),e.Debug.assert(i<=a.length),u(a,n)){var o,s,c,l=[];return C.scanRange(n+3,r-5,(function(){var e,t,r=1,u=n-Math.max(a.lastIndexOf(\"\\n\",n),0)+4;function m(n){e||(e=u),l.push(n),u+=n.length}for(ie();O(5););O(4)&&(r=0,u=0);e:for(;;){switch(te()){case 59:0===r||1===r?(p(l),b(y(u)),r=0,e=void 0):m(C.getTokenText());break;case 4:l.push(C.getTokenText()),r=0,u=0;break;case 41:var f=C.getTokenText();1===r||2===r?(r=2,m(f)):(r=1,u+=f.length);break;case 5:var _=C.getTokenText();2===r?l.push(_):void 0!==e&&u+_.length>e&&l.push(_.slice(e-u-1)),u+=_.length;break;case 1:break e;default:r=2,m(C.getTokenText())}ie()}return d(l),p(l),(t=Te(301,n)).tags=o&&xe(o,s,c),t.comment=l.length?l.join(\"\"):void 0,Le(t,i)}))}function d(e){for(;e.length&&(\"\\n\"===e[0]||\"\\r\"===e[0]);)e.shift()}function p(e){for(;e.length&&\"\"===e[e.length-1].trim();)e.pop()}function m(){for(;;){if(ie(),1===te())return!0;if(5!==te()&&4!==te())return!1}}function f(){if(5!==te()&&4!==te()||!de(m))for(;5===te()||4===te();)ie()}function g(){if((5===te()||4===te())&&de(m))return\"\";for(var e=C.hasPrecedingLineBreak(),n=!1,t=\"\";e&&41===te()||5===te()||4===te();)t+=C.getTokenText(),4===te()?(e=!0,n=!0,t=\"\"):41===te()&&(e=!1),ie();return n?t:\"\"}function y(n){e.Debug.assert(59===te());var r=C.getTokenPos();ie();var a,i=R(void 0),s=g();switch(i.escapedText){case\"author\":a=function(e,n,t){var r=Te(306,e);r.tagName=n;var a=pe((function(){return function(){var e=[],n=!1,t=!1,r=C.getToken();e:for(;;){switch(r){case 75:case 5:case 24:case 59:e.push(C.getTokenText());break;case 29:if(n||t)return;n=!0,e.push(C.getTokenText());break;case 31:if(!n||t)return;t=!0,e.push(C.getTokenText()),C.setTextPos(C.getTokenPos()+1);break e;case 4:case 1:break e}r=ie()}if(n&&t)return 0===e.length?void 0:e.join(\"\")}()}));if(!a)return Le(r);if(r.comment=a,de((function(){return 4!==ae()}))){var i=h(t);i&&(r.comment+=i)}return Le(r)}(r,i,n);break;case\"augments\":case\"extends\":a=function(e,n){var t=Te(305,e);return t.tagName=n,t.class=function(){var e=_e(18),n=Te(215);n.expression=function(){var e=R();for(;_e(24);){var n=Te(193,e.pos);n.expression=e,n.name=R(),e=Le(n)}return e}(),n.typeArguments=Pr();var t=Le(n);e&&fe(19);return t}(),Le(t)}(r,i);break;case\"class\":case\"constructor\":a=function(e,n){var t=Te(307,e);return t.tagName=n,Le(t)}(r,i);break;case\"this\":a=function(e,n){var r=Te(312,e);return r.tagName=n,r.typeExpression=t(!0),f(),Le(r)}(r,i);break;case\"enum\":a=function(e,n){var r=Te(309,e);return r.tagName=n,r.typeExpression=t(!0),f(),Le(r)}(r,i);break;case\"arg\":case\"argument\":case\"param\":return x(r,i,2,n);case\"return\":case\"returns\":a=function(n,t){e.some(o,e.isJSDocReturnTag)&&Z(t.pos,C.getTokenPos(),e.Diagnostics._0_tag_already_specified,t.escapedText);var r=Te(311,n);return r.tagName=t,r.typeExpression=E(),Le(r)}(r,i);break;case\"template\":a=function(n,r){var a;18===te()&&(a=t());var i=[],o=ne();do{f();var s=Te(154);s.name=R(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Le(s),f(),i.push(s)}while(O(27));var c=Te(314,n);return c.tagName=r,c.constraint=a,c.typeParameters=xe(i,o),Le(c),c}(r,i);break;case\"type\":a=L(r,i);break;case\"typedef\":a=function(n,t,r){var a=E();g();var i,o=Te(315,n);if(o.tagName=t,o.fullName=A(),o.name=D(o.fullName),f(),o.comment=h(r),o.typeExpression=a,!a||S(a.type)){for(var s=void 0,c=void 0,l=void 0;s=pe((function(){return N(r)}));)if(c||(c=Te(302,n)),313===s.kind){if(l)break;l=s}else c.jsDocPropertyTags=e.append(c.jsDocPropertyTags,s);c&&(a&&173===a.type.kind&&(c.isArrayType=!0),o.typeExpression=l&&l.typeExpression&&!S(l.typeExpression.type)?l.typeExpression:Le(c),i=o.typeExpression.end)}return Le(o,i||void 0!==o.comment?C.getStartPos():(o.fullName||o.typeExpression||o.tagName).end)}(r,i,n);break;case\"callback\":a=function(n,t,r){var a,i=Te(308,n);i.tagName=t,i.fullName=A(),i.name=D(i.fullName),f(),i.comment=h(r);var o=Te(303,n);o.parameters=[];for(;a=pe((function(){return I(4,r)}));)o.parameters=e.append(o.parameters,a);var s=pe((function(){if(O(59)){var e=y(r);if(e&&311===e.kind)return e}}));s&&(o.type=s);return i.typeExpression=Le(o),Le(i)}(r,i,n);break;default:a=function(e,n){var t=Te(304,e);return t.tagName=n,Le(t)}(r,i)}return a.comment||(s||(n+=a.end-a.pos),a.comment=h(n,s.slice(n))),a}function h(n,t){var r,a=[],i=0;function o(e){r||(r=n),a.push(e),n+=e.length}t&&(o(t),i=2);var s=te();e:for(;;){switch(s){case 4:i>=1&&(i=0,a.push(C.getTokenText())),n=0;break;case 59:if(3===i){a.push(C.getTokenText());break}C.setTextPos(C.getTextPos()-1);case 1:break e;case 5:if(2===i||3===i)o(C.getTokenText());else{var c=C.getTokenText();void 0!==r&&n+c.length>r&&a.push(c.slice(r-n)),n+=c.length}break;case 18:i=2,de((function(){return 59===ie()&&e.tokenIsIdentifierOrKeyword(ie())&&\"link\"===C.getTokenText()}))&&(o(C.getTokenText()),ie(),o(C.getTokenText()),ie()),o(C.getTokenText());break;case 61:i=3===i?2:3,o(C.getTokenText());break;case 41:if(0===i){i=1,n+=1;break}default:3!==i&&(i=2),o(C.getTokenText())}s=ie()}return d(a),p(a),0===a.length?void 0:a.join(\"\")}function b(e){e&&(o?o.push(e):(o=[e],s=e.pos),c=e.end)}function E(){return g(),18===te()?t():void 0}function T(){var n=O(22);n&&f();var t,r=O(61),a=function(){var e=R();_e(22)&&fe(23);for(;_e(24);){var n=R();_e(22)&&fe(23),e=an(e,n)}return e}();return r&&(ye(t=61)||Ce(t,!1,e.Diagnostics._0_expected,e.tokenToString(t))),n&&(f(),ge(62)&&tt(),fe(23)),{name:a,isBracketed:n}}function S(n){switch(n.kind){case 140:return!0;case 173:return S(n.elementType);default:return e.isTypeReferenceNode(n)&&e.isIdentifier(n.typeName)&&\"Object\"===n.typeName.escapedText}}function x(n,t,r,a){var i=E(),o=!i;g();var s=T(),c=s.name,l=s.isBracketed;f(),o&&(i=E());var u=Te(1===r?316:310,n),d=h(a+C.getStartPos()-n),p=4!==r&&function(n,t,r,a){if(n&&S(n.type)){for(var i=Te(292,C.getTokenPos()),o=void 0,s=void 0,c=C.getStartPos(),l=void 0;o=pe((function(){return I(r,a,t)}));)310!==o.kind&&316!==o.kind||(l=e.append(l,o));if(l)return(s=Te(302,c)).jsDocPropertyTags=l,173===n.type.kind&&(s.isArrayType=!0),i.type=Le(s),Le(i)}}(i,c,r,a);return p&&(i=p,o=!0),u.tagName=t,u.typeExpression=i,u.name=c,u.isNameFirst=o,u.isBracketed=l,u.comment=d,Le(u)}function L(n,r){e.some(o,e.isJSDocTypeTag)&&Z(r.pos,C.getTokenPos(),e.Diagnostics._0_tag_already_specified,r.escapedText);var a=Te(313,n);return a.tagName=r,a.typeExpression=t(!0),Le(a)}function A(n){var t=C.getTokenPos();if(e.tokenIsIdentifierOrKeyword(te())){var r=R();if(_e(24)){var a=Te(248,t);return n&&(a.flags|=4),a.name=r,a.body=A(!0),Le(a)}return n&&(r.isInJSDocNamespace=!0),r}}function D(n){if(n)for(var t=n;;){if(e.isIdentifier(t)||!t.body)return e.isIdentifier(t)?t:t.name;t=t.body}}function k(n,t){for(;!e.isIdentifier(n)||!e.isIdentifier(t);){if(e.isIdentifier(n)||e.isIdentifier(t)||n.right.escapedText!==t.right.escapedText)return!1;n=n.left,t=t.left}return n.escapedText===t.escapedText}function N(e){return I(1,e)}function I(n,t,r){for(var a=!0,i=!1;;)switch(ie()){case 59:if(a){var o=M(n,t);return!(o&&(310===o.kind||316===o.kind)&&4!==n&&r&&(e.isIdentifier(o.name)||!k(r,o.name.left)))&&o}i=!1;break;case 4:a=!0,i=!1;break;case 41:i&&(a=!1),i=!0;break;case 75:a=!1;break;case 1:return!1}}function M(n,t){e.Debug.assert(59===te());var r=C.getStartPos();ie();var a,i=R();switch(f(),i.escapedText){case\"type\":return 1===n&&L(r,i);case\"prop\":case\"property\":a=1;break;case\"arg\":case\"argument\":case\"param\":a=6;break;default:return!1}return!!(n&a)&&x(r,i,n,t)}function O(e){return te()===e&&(ie(),!0)}function R(n){if(!e.tokenIsIdentifierOrKeyword(te()))return Ce(75,!n,n||e.Diagnostics.Identifier_expected);v++;var t=C.getTokenPos(),r=C.getTextPos(),a=Te(75,t);return 75!==te()&&(a.originalKeywordKind=te()),a.escapedText=e.escapeLeadingUnderscores(Ae(C.getTokenValue())),Le(a,r),ie(),a}}n.parseJSDocTypeExpressionForTests=function(e,n,r){N(e,99,void 0,1),o=P(\"file.js\",99,1,!1),C.setText(e,n,r),l=C.scan();var a=t(),i=s;return I(),a?{jsDocTypeExpression:a,diagnostics:i}:void 0},n.parseJSDocTypeExpression=t,n.parseIsolatedJSDocComment=function(e,n,t){N(e,99,void 0,1),o={languageVariant:0,text:e};var r=j(4194304,(function(){return i(n,t)})),a=s;return I(),r?{jsDoc:r,diagnostics:a}:void 0},n.parseJSDocComment=function(e,n,t){var r,a=l,c=s.length,u=A,d=j(4194304,(function(){return i(n,t)}));return d&&(d.parent=e),131072&T&&(o.jsDocDiagnostics||(o.jsDocDiagnostics=[]),(r=o.jsDocDiagnostics).push.apply(r,s)),l=a,s.length=c,A=u,d},function(e){e[e.BeginningOfLine=0]=\"BeginningOfLine\",e[e.SawAsterisk=1]=\"SawAsterisk\",e[e.SavingComments=2]=\"SavingComments\",e[e.SavingBackticks=3]=\"SavingBackticks\"}(r||(r={})),function(e){e[e.Property=1]=\"Property\",e[e.Parameter=2]=\"Parameter\",e[e.CallbackParameter=4]=\"CallbackParameter\"}(a||(a={}))}(L=n.JSDocParser||(n.JSDocParser={}))}(o||(o={})),function(n){function t(n,t,a,o,s,c){return void(t?u(n):l(n));function l(n){var t=\"\";if(c&&r(n)&&(t=o.substring(n.pos,n.end)),n._children&&(n._children=void 0),n.pos+=a,n.end+=a,c&&r(n)&&e.Debug.assert(t===s.substring(n.pos,n.end)),d(n,l,u),e.hasJSDocNodes(n))for(var p=0,m=n.jsDoc;p<m.length;p++){l(m[p])}i(n,c)}function u(e){e._children=void 0,e.pos+=a,e.end+=a;for(var n=0,t=e;n<t.length;n++){l(t[n])}}}function r(e){switch(e.kind){case 10:case 8:case 75:return!0}return!1}function a(n,t,r,a,i){e.Debug.assert(n.end>=t,\"Adjusting an element that was entirely before the change range\"),e.Debug.assert(n.pos<=r,\"Adjusting an element that was entirely after the change range\"),e.Debug.assert(n.pos<=n.end),n.pos=Math.min(n.pos,a),n.end>=r?n.end+=i:n.end=Math.min(n.end,a),e.Debug.assert(n.pos<=n.end),n.parent&&(e.Debug.assert(n.pos>=n.parent.pos),e.Debug.assert(n.end<=n.parent.end))}function i(n,t){if(t){var r=n.pos,a=function(n){e.Debug.assert(n.pos>=r),r=n.end};if(e.hasJSDocNodes(n))for(var i=0,o=n.jsDoc;i<o.length;i++){a(o[i])}d(n,a),e.Debug.assert(r<=n.end)}}function s(n,t){var r,a=n;if(d(n,(function n(i){if(e.nodeIsMissing(i))return;if(!(i.pos<=t))return e.Debug.assert(i.pos>t),!0;if(i.pos>=a.pos&&(a=i),t<i.end)return d(i,n),!0;e.Debug.assert(i.end<=t),r=i})),r){var i=function(n){for(;;){var t=e.getLastChild(n);if(!t)return n;n=t}}(r);i.pos>a.pos&&(a=i)}return a}function c(n,t,r,a){var i=n.text;if(r&&(e.Debug.assert(i.length-r.span.length+r.newLength===t.length),a||e.Debug.shouldAssert(3))){var o=i.substr(0,r.span.start),s=t.substr(0,r.span.start);e.Debug.assert(o===s);var c=i.substring(e.textSpanEnd(r.span),i.length),l=t.substring(e.textSpanEnd(e.textChangeRangeNewSpan(r)),t.length);e.Debug.assert(c===l)}}var l;n.updateSourceFile=function(n,r,l,u){if(c(n,r,l,u=u||e.Debug.shouldAssert(2)),e.textChangeRangeIsUnchanged(l))return n;if(0===n.statements.length)return o.parseSourceFile(n.fileName,r,n.languageVersion,void 0,!0,n.scriptKind);var p=n;e.Debug.assert(!p.hasBeenIncrementallyParsed),p.hasBeenIncrementallyParsed=!0;var m=n.text,f=function(n){var t=n.statements,r=0;e.Debug.assert(r<t.length);var a=t[r],i=-1;return{currentNode:function(o){return o!==i&&(a&&a.end===o&&r<t.length-1&&(r++,a=t[r]),a&&a.pos===o||function(e){return t=void 0,r=-1,a=void 0,void d(n,i,o);function i(n){return e>=n.pos&&e<n.end&&(d(n,i,o),!0)}function o(n){if(e>=n.pos&&e<n.end)for(var s=0;s<n.length;s++){var c=n[s];if(c){if(c.pos===e)return t=n,r=s,a=c,!0;if(c.pos<e&&e<c.end)return d(c,i,o),!0}}return!1}}(o)),i=o,e.Debug.assert(!a||a.pos===o),a}}}(n),_=function(n,t){for(var r=t.span.start,a=0;r>0&&a<=1;a++){var i=s(n,r);e.Debug.assert(i.pos<=r);var o=i.pos;r=Math.max(0,o-1)}var c=e.createTextSpanFromBounds(r,e.textSpanEnd(t.span)),l=t.newLength+(t.span.start-r);return e.createTextChangeRange(c,l)}(n,l);c(n,r,_,u),e.Debug.assert(_.span.start<=l.span.start),e.Debug.assert(e.textSpanEnd(_.span)===e.textSpanEnd(l.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(_))===e.textSpanEnd(e.textChangeRangeNewSpan(l)));var g=e.textChangeRangeNewSpan(_).length-_.span.length;return function(n,r,o,s,c,l,u,p){return void m(n);function m(n){if(e.Debug.assert(n.pos<=n.end),n.pos>o)t(n,!1,c,l,u,p);else{var _=n.end;if(_>=r){if(n.intersectsChange=!0,n._children=void 0,a(n,r,o,s,c),d(n,m,f),e.hasJSDocNodes(n))for(var g=0,y=n.jsDoc;g<y.length;g++){m(y[g])}i(n,p)}else e.Debug.assert(_<r)}}function f(n){if(e.Debug.assert(n.pos<=n.end),n.pos>o)t(n,!0,c,l,u,p);else{var i=n.end;if(i>=r){n.intersectsChange=!0,n._children=void 0,a(n,r,o,s,c);for(var d=0,f=n;d<f.length;d++){m(f[d])}}else e.Debug.assert(i<r)}}}(p,_.span.start,e.textSpanEnd(_.span),e.textSpanEnd(e.textChangeRangeNewSpan(_)),g,m,r,u),o.parseSourceFile(n.fileName,r,n.languageVersion,f,!0,n.scriptKind)},function(e){e[e.Value=-1]=\"Value\"}(l||(l={}))}(s||(s={})),e.isDeclarationFileName=p,e.processCommentPragmas=m,e.processPragmasIntoFields=f;var _=e.createMap();function g(e){if(_.has(e))return _.get(e);var n=new RegExp(\"(\\\\s\"+e+\"\\\\s*=\\\\s*)('|\\\")(.+?)\\\\2\",\"im\");return _.set(e,n),n}var y=/^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/im,v=/^\\/\\/\\/?\\s*@(\\S+)\\s*(.*)\\s*$/im;function h(n,t,r){var a=2===t.kind&&y.exec(r);if(a){var i=a[1].toLowerCase(),o=e.commentPragmas[i];if(!(o&&1&o.kind))return;if(o.args){for(var s={},c=0,l=o.args;c<l.length;c++){var u=l[c],d=g(u.name).exec(r);if(!d&&!u.optional)return;if(d)if(u.captureSpan){var p=t.pos+d.index+d[1].length+d[2].length;s[u.name]={value:d[3],pos:p,end:p+d[3].length}}else s[u.name]=d[3]}n.push({name:i,args:{arguments:s,range:t}})}else n.push({name:i,args:{arguments:{},range:t}})}else{var m=2===t.kind&&v.exec(r);if(m)return b(n,t,2,m);if(3===t.kind)for(var f=/\\s*@(\\S+)\\s*(.*)\\s*$/gim,_=void 0;_=f.exec(r);)b(n,t,4,_)}}function b(n,t,r,a){if(a){var i=a[1].toLowerCase(),o=e.commentPragmas[i];if(o&&o.kind&r){var s=function(n,t){if(!t)return{};if(!n.args)return{};for(var r=t.split(/\\s+/),a={},i=0;i<n.args.length;i++){var o=n.args[i];if(!r[i]&&!o.optional)return\"fail\";if(o.captureSpan)return e.Debug.fail(\"Capture spans not yet implemented for non-xml pragmas\");a[o.name]=r[i]}return a}(o,a[2]);\"fail\"!==s&&n.push({name:i,args:{arguments:s,range:t}})}}}function E(e,n){return e.kind===n.kind&&(75===e.kind?e.escapedText===n.escapedText:103===e.kind||e.name.escapedText===n.name.escapedText&&E(e.expression,n.expression))}e.tagNamesAreEquivalent=E}(ts||(ts={})),function(e){e.compileOnSaveCommandLineOption={name:\"compileOnSave\",type:\"boolean\"};var n,t,r=[[\"es5\",\"lib.es5.d.ts\"],[\"es6\",\"lib.es2015.d.ts\"],[\"es2015\",\"lib.es2015.d.ts\"],[\"es7\",\"lib.es2016.d.ts\"],[\"es2016\",\"lib.es2016.d.ts\"],[\"es2017\",\"lib.es2017.d.ts\"],[\"es2018\",\"lib.es2018.d.ts\"],[\"es2019\",\"lib.es2019.d.ts\"],[\"es2020\",\"lib.es2020.d.ts\"],[\"esnext\",\"lib.esnext.d.ts\"],[\"dom\",\"lib.dom.d.ts\"],[\"dom.iterable\",\"lib.dom.iterable.d.ts\"],[\"webworker\",\"lib.webworker.d.ts\"],[\"webworker.importscripts\",\"lib.webworker.importscripts.d.ts\"],[\"scripthost\",\"lib.scripthost.d.ts\"],[\"es2015.core\",\"lib.es2015.core.d.ts\"],[\"es2015.collection\",\"lib.es2015.collection.d.ts\"],[\"es2015.generator\",\"lib.es2015.generator.d.ts\"],[\"es2015.iterable\",\"lib.es2015.iterable.d.ts\"],[\"es2015.promise\",\"lib.es2015.promise.d.ts\"],[\"es2015.proxy\",\"lib.es2015.proxy.d.ts\"],[\"es2015.reflect\",\"lib.es2015.reflect.d.ts\"],[\"es2015.symbol\",\"lib.es2015.symbol.d.ts\"],[\"es2015.symbol.wellknown\",\"lib.es2015.symbol.wellknown.d.ts\"],[\"es2016.array.include\",\"lib.es2016.array.include.d.ts\"],[\"es2017.object\",\"lib.es2017.object.d.ts\"],[\"es2017.sharedmemory\",\"lib.es2017.sharedmemory.d.ts\"],[\"es2017.string\",\"lib.es2017.string.d.ts\"],[\"es2017.intl\",\"lib.es2017.intl.d.ts\"],[\"es2017.typedarrays\",\"lib.es2017.typedarrays.d.ts\"],[\"es2018.asyncgenerator\",\"lib.es2018.asyncgenerator.d.ts\"],[\"es2018.asynciterable\",\"lib.es2018.asynciterable.d.ts\"],[\"es2018.intl\",\"lib.es2018.intl.d.ts\"],[\"es2018.promise\",\"lib.es2018.promise.d.ts\"],[\"es2018.regexp\",\"lib.es2018.regexp.d.ts\"],[\"es2019.array\",\"lib.es2019.array.d.ts\"],[\"es2019.object\",\"lib.es2019.object.d.ts\"],[\"es2019.string\",\"lib.es2019.string.d.ts\"],[\"es2019.symbol\",\"lib.es2019.symbol.d.ts\"],[\"es2020.string\",\"lib.es2020.string.d.ts\"],[\"es2020.symbol.wellknown\",\"lib.es2020.symbol.wellknown.d.ts\"],[\"esnext.array\",\"lib.es2019.array.d.ts\"],[\"esnext.symbol\",\"lib.es2019.symbol.d.ts\"],[\"esnext.asynciterable\",\"lib.es2018.asynciterable.d.ts\"],[\"esnext.intl\",\"lib.esnext.intl.d.ts\"],[\"esnext.bigint\",\"lib.esnext.bigint.d.ts\"]];function a(e){return e&&void 0!==e.enableAutoDiscovery&&void 0===e.enable?{enable:e.enableAutoDiscovery,include:e.include||[],exclude:e.exclude||[]}:e}function i(){return n||(n=o(e.optionDeclarations))}function o(n){var t=e.createMap(),r=e.createMap();return e.forEach(n,(function(e){t.set(e.name.toLowerCase(),e),e.shortName&&r.set(e.shortName,e.name)})),{optionNameMap:t,shortOptionNames:r}}function s(n){return c(n,e.createCompilerDiagnostic)}function c(n,t){var r=e.arrayFrom(n.type.keys()).map((function(e){return\"'\"+e+\"'\"})).join(\", \");return t(e.Diagnostics.Argument_for_0_option_must_be_Colon_1,\"--\"+n.name,r)}function l(e,n,t){return H(e,W(n||\"\"),t)}function u(n,t,r){if(void 0===t&&(t=\"\"),t=W(t),!e.startsWith(t,\"-\")){if(\"\"===t)return[];var a=t.split(\",\");switch(n.element.type){case\"number\":return e.map(a,parseInt);case\"string\":return e.map(a,(function(e){return e||\"\"}));default:return e.mapDefined(a,(function(e){return l(n.element,e,r)}))}}}function d(n,t,r,a){var i=t[0],o=t[1],s={},c=[],d=[];return p(r),{options:s,fileNames:c,errors:d};function p(t){for(var r=0;r<t.length;){var a=t[r];if(r++,64===a.charCodeAt(0))f(a.slice(1));else if(45===a.charCodeAt(0)){var p=m(n,a.slice(45===a.charCodeAt(1)?2:1),!0);if(p)if(p.isTSConfigOnly)d.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file,p.name));else switch(t[r]||\"boolean\"===p.type||d.push(e.createCompilerDiagnostic(o,p.name)),p.type){case\"number\":s[p.name]=parseInt(t[r]),r++;break;case\"boolean\":var _=t[r];s[p.name]=\"false\"!==_,\"false\"!==_&&\"true\"!==_||r++;break;case\"string\":s[p.name]=t[r]||\"\",r++;break;case\"list\":var g=u(p,t[r],d);s[p.name]=g||[],g&&r++;break;default:s[p.name]=l(p,t[r],d),r++}else d.push(e.createCompilerDiagnostic(i,a))}else c.push(a)}}function f(n){var t=a?a(n):e.sys.readFile(n);if(t){for(var r=[],i=0;;){for(;i<t.length&&t.charCodeAt(i)<=32;)i++;if(i>=t.length)break;var o=i;if(34===t.charCodeAt(o)){for(i++;i<t.length&&34!==t.charCodeAt(i);)i++;i<t.length?(r.push(t.substring(o+1,i)),i++):d.push(e.createCompilerDiagnostic(e.Diagnostics.Unterminated_quoted_string_in_response_file_0,n))}else{for(;t.charCodeAt(i)>32;)i++;r.push(t.substring(o,i))}}p(r)}else d.push(e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,n))}}function p(e,n){return m(i,e,n)}function m(e,n,t){void 0===t&&(t=!1),n=n.toLowerCase();var r=e(),a=r.optionNameMap,i=r.shortOptionNames;if(t){var o=i.get(n);void 0!==o&&(n=o)}return a.get(n)}function f(n,t){var r=e.parseJsonText(n,t);return{config:v(r,r.parseDiagnostics),error:r.parseDiagnostics.length?r.parseDiagnostics[0]:void 0}}function _(n,t){var r=g(n,t);return e.isString(r)?e.parseJsonText(n,r):{parseDiagnostics:[r]}}function g(n,t){var r;try{r=t(n)}catch(t){return e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0_Colon_1,n,t.message)}return void 0===r?e.createCompilerDiagnostic(e.Diagnostics.The_specified_path_does_not_exist_Colon_0,n):r}function y(n){return e.arrayToMap(n,(function(e){return e.name}))}function v(e,n){return h(e,n,!0,void 0,void 0)}function h(n,t,r,a,i){return n.statements.length?l(n.statements[0].expression,a):r?{}:void 0;function o(e){return a&&a.elementOptions===e}function s(a,s,c,d){for(var p=r?{}:void 0,m=0,f=a.properties;m<f.length;m++){var _=f[m];if(279===_.kind){_.questionToken&&t.push(e.createDiagnosticForNodeInSourceFile(n,_.questionToken,e.Diagnostics._0_can_only_be_used_in_a_ts_file,\"?\")),u(_.name)||t.push(e.createDiagnosticForNodeInSourceFile(n,_.name,e.Diagnostics.String_literal_with_double_quotes_expected));var g=e.getTextOfPropertyName(_.name),y=g&&e.unescapeLeadingUnderscores(g),v=y&&s?s.get(y):void 0;y&&c&&!v&&t.push(e.createDiagnosticForNodeInSourceFile(n,_.name,c,y));var h=l(_.initializer,v);if(void 0!==y&&(r&&(p[y]=h),i&&(d||o(s)))){var b=E(v,h);d?b&&i.onSetValidOptionKeyValueInParent(d,v,h):o(s)&&(b?i.onSetValidOptionKeyValueInRoot(y,_.name,h,_.initializer):v||i.onSetUnknownOptionKeyValueInRoot(y,_.name,h,_.initializer))}}else t.push(e.createDiagnosticForNodeInSourceFile(n,_,e.Diagnostics.Property_assignment_expected))}return p}function l(a,i){switch(a.kind){case 105:return g(i&&\"boolean\"!==i.type),!0;case 90:return g(i&&\"boolean\"!==i.type),!1;case 99:return g(i&&\"extends\"===i.name),null;case 10:u(a)||t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.String_literal_with_double_quotes_expected)),g(i&&e.isString(i.type)&&\"string\"!==i.type);var o=a.text;if(i&&!e.isString(i.type)){var d=i;d.type.has(o.toLowerCase())||t.push(c(d,(function(t,r,i){return e.createDiagnosticForNodeInSourceFile(n,a,t,r,i)})))}return o;case 8:return g(i&&\"number\"!==i.type),Number(a.text);case 206:if(40!==a.operator||8!==a.operand.kind)break;return g(i&&\"number\"!==i.type),-Number(a.operand.text);case 192:g(i&&\"object\"!==i.type);var p=a;if(i){var m=i;return s(p,m.elementOptions,m.extraKeyDiagnosticMessage,m.name)}return s(p,void 0,void 0,void 0);case 191:return g(i&&\"list\"!==i.type),f=a.elements,_=i&&i.element,r?e.filter(f.map((function(e){return l(e,_)})),(function(e){return void 0!==e})):f.forEach((function(e){return l(e,_)}))}var f,_;return void(i?g(!0):t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal)));function g(r){r&&t.push(e.createDiagnosticForNodeInSourceFile(n,a,e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,i.name,b(i)))}}function u(t){return e.isStringLiteral(t)&&e.isStringDoubleQuoted(t,n)}}function b(n){return\"list\"===n.type?\"Array\":e.isString(n.type)?n.type:\"string\"}function E(n,t){return!!n&&(!!D(t)||(\"list\"===n.type?e.isArray(t):typeof t===(e.isString(n.type)?n.type:\"string\")))}function T(n){if(e.length(n)){if(1!==e.length(n))return n;if(\"**/*\"!==n[0])return n}}function S(n,t){return e.forEachEntry(t,(function(e,t){if(e===n)return t}))}function x(n,t){var r=e.createMap(),a=i().optionNameMap,o=t&&e.createGetCanonicalFileName(t.useCaseSensitiveFileNames),s=function(i){if(e.hasProperty(n,i)){if(a.has(i)&&a.get(i).category===e.Diagnostics.Command_line_Options)return\"continue\";var s=n[i],c=a.get(i.toLowerCase());if(c){var l=function e(n){return\"string\"===n.type||\"number\"===n.type||\"boolean\"===n.type||\"object\"===n.type?void 0:\"list\"===n.type?e(n.element):n.type}(c);l?\"list\"===c.type?r.set(i,s.map((function(e){return S(e,l)}))):r.set(i,S(s,l)):t&&c.isFilePath?r.set(i,e.getRelativePathFromFile(t.configFilePath,e.getNormalizedAbsolutePath(s,e.getDirectoryPath(t.configFilePath)),o)):r.set(i,s)}}};for(var c in n)s(c);return r}function L(e,n,t){if(e)if(\"list\"===e.type){var r=n;if(e.element.isFilePath&&r.length)return r.map(t)}else if(e.isFilePath)return t(n);return n}function C(e,n,t,r,a,i,o,s){return N(void 0,e,n,t,r,a,i,o,s)}function A(e,n){n&&Object.defineProperty(e,\"configFile\",{enumerable:!1,writable:!1,value:n})}function D(e){return null==e}function k(n,t){return e.getDirectoryPath(e.getNormalizedAbsolutePath(n,t))}function N(n,t,r,a,i,o,s,c,l){void 0===i&&(i={}),void 0===s&&(s=[]),void 0===c&&(c=[]),e.Debug.assert(void 0===n&&void 0!==t||void 0!==n&&void 0===t);var u,d=[],p=P(n,t,r,a,o,s,d,l),m=p.raw,f=e.extend(i,p.options||{});f.configFilePath=o&&e.normalizeSlashes(o),A(f,t);var _=function(){var n,i,l;if(e.hasProperty(m,\"files\")&&!D(m.files))if(e.isArray(m.files)){n=m.files;var p=!(e.hasProperty(m,\"references\")&&!D(m.references))||0===m.references.length,_=e.hasProperty(m,\"extends\");if(0===n.length&&p&&!_)if(t){var g=o||\"tsconfig.json\",y=e.Diagnostics.The_files_list_in_config_file_0_is_empty,v=e.firstDefined(e.getTsConfigPropArray(t,\"files\"),(function(e){return e.initializer})),b=v?e.createDiagnosticForNodeInSourceFile(t,v,y,g):e.createCompilerDiagnostic(y,g);d.push(b)}else h(e.Diagnostics.The_files_list_in_config_file_0_is_empty,o||\"tsconfig.json\")}else h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"files\",\"Array\");e.hasProperty(m,\"include\")&&!D(m.include)&&(e.isArray(m.include)?i=m.include:h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"include\",\"Array\"));if(e.hasProperty(m,\"exclude\")&&!D(m.exclude))e.isArray(m.exclude)?l=m.exclude:h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"exclude\",\"Array\");else if(m.compilerOptions){var E=m.compilerOptions.outDir,T=m.compilerOptions.declarationDir;(E||T)&&(l=[E,T].filter((function(e){return!!e})))}void 0===n&&void 0===i&&(i=[\"**/*\"]);var S=function(n,t,r,a,i,o,s,c,l){var u,d;a=e.normalizePath(a),t&&(u=Q(t,s,!1,l,\"include\"));r&&(d=Q(r,s,!0,l,\"exclude\"));var p=function(n,t,r,a){var i=e.getRegularExpressionForWildcard(t,r,\"exclude\"),o=i&&new RegExp(i,a?\"\":\"i\"),s={};if(void 0!==n){for(var c=[],l=0,u=n;l<u.length;l++){var d=u[l],p=e.normalizePath(e.combinePaths(r,d));if(!o||!o.test(p)){var m=Z(p,a);if(m){var f=m.key,_=m.flags,g=s[f];(void 0===g||g<_)&&(s[f]=_,1===_&&c.push(f))}}}for(var f in s)if(e.hasProperty(s,f))for(var y=0,v=c;y<v.length;y++){var h=v[y];f!==h&&e.containsPath(h,f,r,!a)&&delete s[f]}}return s}(u,d,a,o.useCaseSensitiveFileNames);return Y({filesSpecs:n,includeSpecs:t,excludeSpecs:r,validatedIncludeSpecs:u,validatedExcludeSpecs:d,wildcardDirectories:p},a,i,o,c)}(n,i,l,o?k(o,a):a,f,r,d,c,t);M(S,O(m),s)&&d.push(I(S.spec,o));if(e.hasProperty(m,\"references\")&&!D(m.references))if(e.isArray(m.references))for(var x=0,L=m.references;x<L.length;x++){var C=L[x];\"string\"!=typeof C.path?h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"reference.path\",\"string\"):(u||(u=[])).push({path:e.getNormalizedAbsolutePath(C.path,a),originalPath:C.path,prepend:C.prepend,circular:C.circular})}else h(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"references\",\"Array\");return S}(),g=_.fileNames,y=_.wildcardDirectories,v=_.spec;return{options:f,fileNames:g,projectReferences:u,typeAcquisition:p.typeAcquisition||B(),raw:m,errors:d,wildcardDirectories:y,compileOnSave:!!m.compileOnSave,configFileSpecs:v};function h(n,r,a){t||d.push(e.createCompilerDiagnostic(n,r,a))}}function I(n,t){var r=n.includeSpecs,a=n.excludeSpecs;return e.createCompilerDiagnostic(e.Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2,t||\"tsconfig.json\",JSON.stringify(r||[]),JSON.stringify(a||[]))}function M(e,n,t){return 0===e.fileNames.length&&n&&(!t||0===t.length)}function O(n){return!e.hasProperty(n,\"files\")&&!e.hasProperty(n,\"references\")}function R(e){return!!e.options}function P(n,r,a,i,o,s,c,l){i=e.normalizeSlashes(i);var u=e.getNormalizedAbsolutePath(o||\"\",i);if(s.indexOf(u)>=0)return c.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,__spreadArrays(s,[u]).join(\" -> \"))),{raw:n||v(r,c)};var d=n?function(n,t,r,a,i){e.hasProperty(n,\"excludes\")&&i.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var o,s=G(n.compilerOptions,r,i,a),c=V(n.typeAcquisition||n.typingOptions,r,i,a);if(n.compileOnSave=function(n,t,r){if(!e.hasProperty(n,e.compileOnSaveCommandLineOption.name))return!1;var a=j(e.compileOnSaveCommandLineOption,n.compileOnSave,t,r);return\"boolean\"==typeof a&&a}(n,r,i),n.extends)if(e.isString(n.extends)){var l=a?k(a,r):r;o=w(n.extends,t,l,i,e.createCompilerDiagnostic)}else i.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"extends\",\"string\"));return{raw:n,options:s,typeAcquisition:c,extendedConfigPath:o}}(n,a,i,o,c):function(n,r,a,i,o){var s,c,l,u=F(i),d={onSetValidOptionKeyValueInParent:function(n,t,r){e.Debug.assert(\"compilerOptions\"===n||\"typeAcquisition\"===n||\"typingOptions\"===n),(\"compilerOptions\"===n?u:\"typeAcquisition\"===n?s||(s=B(i)):c||(c=B(i)))[t.name]=function n(t,r,a){if(D(a))return;if(\"list\"===t.type){var i=t;return i.element.isFilePath||!e.isString(i.element.type)?e.filter(e.map(a,(function(e){return n(i.element,r,e)})),(function(e){return!!e})):a}if(!e.isString(t.type))return t.type.get(e.isString(a)?a.toLowerCase():a);return K(t,r,a)}(t,a,r)},onSetValidOptionKeyValueInRoot:function(t,s,c,u){switch(t){case\"extends\":var d=i?k(i,a):a;return void(l=w(c,r,d,o,(function(t,r){return e.createDiagnosticForNodeInSourceFile(n,u,t,r)})))}},onSetUnknownOptionKeyValueInRoot:function(t,r,a,i){\"excludes\"===t&&o.push(e.createDiagnosticForNodeInSourceFile(n,r,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude))}},p=h(n,o,!0,(void 0===t&&(t={name:void 0,type:\"object\",elementOptions:y([{name:\"compilerOptions\",type:\"object\",elementOptions:y(e.optionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_compiler_option_0},{name:\"typingOptions\",type:\"object\",elementOptions:y(e.typeAcquisitionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_type_acquisition_option_0},{name:\"typeAcquisition\",type:\"object\",elementOptions:y(e.typeAcquisitionDeclarations),extraKeyDiagnosticMessage:e.Diagnostics.Unknown_type_acquisition_option_0},{name:\"extends\",type:\"string\"},{name:\"references\",type:\"list\",element:{name:\"references\",type:\"object\"}},{name:\"files\",type:\"list\",element:{name:\"files\",type:\"string\"}},{name:\"include\",type:\"list\",element:{name:\"include\",type:\"string\"}},{name:\"exclude\",type:\"list\",element:{name:\"exclude\",type:\"string\"}},e.compileOnSaveCommandLineOption])}),t),d);s||(s=c?void 0!==c.enableAutoDiscovery?{enable:c.enableAutoDiscovery,include:c.include,exclude:c.exclude}:c:B(i));return{raw:p,options:u,typeAcquisition:s,extendedConfigPath:l}}(r,a,i,o,c);if(d.extendedConfigPath){s=s.concat([u]);var p=function(n,t,r,a,i,o,s){var c,l,u,d,p=r.useCaseSensitiveFileNames?t:e.toLowerCase(t);if(s&&(l=s.get(p)))u=l.extendedResult,d=l.extendedConfig;else{if(!(u=_(t,(function(e){return r.readFile(e)}))).parseDiagnostics.length){var m=e.getDirectoryPath(t);if(R(d=P(void 0,u,r,m,e.getBaseFileName(t),i,o,s))){var f=e.convertToRelativePath(m,a,e.identity),g=function(n){return e.isRootedDiskPath(n)?n:e.combinePaths(f,n)},y=function(n){v[n]&&(v[n]=e.map(v[n],g))},v=d.raw;y(\"include\"),y(\"exclude\"),y(\"files\")}}s&&s.set(p,{extendedResult:u,extendedConfig:d})}n&&(n.extendedSourceFiles=[u.fileName],u.extendedSourceFiles&&(c=n.extendedSourceFiles).push.apply(c,u.extendedSourceFiles));if(u.parseDiagnostics.length)return void o.push.apply(o,u.parseDiagnostics);return d}(r,d.extendedConfigPath,a,i,s,c,l);if(p&&R(p)){var m=p.raw,f=d.raw,g=function(e){var n=f[e]||m[e];n&&(f[e]=n)};g(\"include\"),g(\"exclude\"),g(\"files\"),void 0===f.compileOnSave&&(f.compileOnSave=m.compileOnSave),d.options=e.assign({},p.options,d.options)}}return d}function w(n,t,r,a,i){if(n=e.normalizeSlashes(n),e.isRootedDiskPath(n)||e.startsWith(n,\"./\")||e.startsWith(n,\"../\")){var o=e.getNormalizedAbsolutePath(n,r);return t.fileExists(o)||e.endsWith(o,\".json\")||(o+=\".json\",t.fileExists(o))?o:void a.push(i(e.Diagnostics.File_0_not_found,n))}var s=e.nodeModuleNameResolver(n,e.combinePaths(r,\"tsconfig.json\"),{moduleResolution:e.ModuleResolutionKind.NodeJs},t,void 0,void 0,!0);if(s.resolvedModule)return s.resolvedModule.resolvedFileName;a.push(i(e.Diagnostics.File_0_not_found,n))}function F(n){return n&&\"jsconfig.json\"===e.getBaseFileName(n)?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{}}function G(n,t,r,a){var i=F(a);return U(e.optionDeclarations,n,t,i,e.Diagnostics.Unknown_compiler_option_0,r),a&&(i.configFilePath=e.normalizeSlashes(a)),i}function B(n){return{enable:!!n&&\"jsconfig.json\"===e.getBaseFileName(n),include:[],exclude:[]}}function V(n,t,r,i){var o=B(i),s=a(n);return U(e.typeAcquisitionDeclarations,s,t,o,e.Diagnostics.Unknown_type_acquisition_option_0,r),o}function U(n,t,r,a,i,o){if(t){var s=y(n);for(var c in t){var l=s.get(c);l?a[l.name]=j(l,t[c],r,o):o.push(e.createCompilerDiagnostic(i,c))}}}function j(n,t,r,a){if(E(n,t)){var i=n.type;return\"list\"===i&&e.isArray(t)?function(n,t,r,a){return e.filter(e.map(t,(function(e){return j(n.element,e,r,a)})),(function(e){return!!e}))}(n,t,r,a):e.isString(i)?K(n,r,t):H(n,t,a)}a.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,n.name,b(n)))}function K(n,t,r){return n.isFilePath&&\"\"===(r=e.getNormalizedAbsolutePath(r,t))&&(r=\".\"),r}function H(e,n,t){if(!D(n)){var r=n.toLowerCase(),a=e.type.get(r);if(void 0!==a)return a;t.push(s(e))}}function W(e){return\"function\"==typeof e.trim?e.trim():e.replace(/^[\\s]+|[\\s]+$/g,\"\")}e.libs=r.map((function(e){return e[0]})),e.libMap=e.createMapFromEntries(r),e.commonOptionsWithBuild=[{name:\"help\",shortName:\"h\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Print_this_message},{name:\"help\",shortName:\"?\",type:\"boolean\"},{name:\"watch\",shortName:\"w\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Watch_input_files},{name:\"preserveWatchOutput\",type:\"boolean\",showInSimplifiedHelpView:!1,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen},{name:\"listFiles\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Print_names_of_files_part_of_the_compilation},{name:\"listEmittedFiles\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Print_names_of_generated_files_part_of_the_compilation},{name:\"pretty\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Stylize_errors_and_messages_using_color_and_context_experimental},{name:\"traceResolution\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Enable_tracing_of_the_name_resolution_process},{name:\"diagnostics\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Show_diagnostic_information},{name:\"extendedDiagnostics\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Show_verbose_diagnostic_information},{name:\"generateCpuProfile\",type:\"string\",isFilePath:!0,paramType:e.Diagnostics.FILE_OR_DIRECTORY,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Generates_a_CPU_profile},{name:\"incremental\",shortName:\"i\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Enable_incremental_compilation,transpileOptionValue:void 0},{name:\"locale\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_locale_used_when_displaying_messages_to_the_user_e_g_en_us}],e.optionDeclarations=__spreadArrays(e.commonOptionsWithBuild,[{name:\"all\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Show_all_compiler_options},{name:\"version\",shortName:\"v\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Print_the_compiler_s_version},{name:\"init\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file},{name:\"project\",shortName:\"p\",type:\"string\",isFilePath:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,paramType:e.Diagnostics.FILE_OR_DIRECTORY,description:e.Diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json},{name:\"build\",type:\"boolean\",shortName:\"b\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date},{name:\"showConfig\",type:\"boolean\",category:e.Diagnostics.Command_line_Options,isCommandLineOnly:!0,description:e.Diagnostics.Print_the_final_configuration_instead_of_building},{name:\"listFilesOnly\",type:\"boolean\",category:e.Diagnostics.Command_line_Options,affectsSemanticDiagnostics:!0,affectsEmit:!0,isCommandLineOnly:!0,description:e.Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing},{name:\"target\",shortName:\"t\",type:e.createMapFromTemplate({es3:0,es5:1,es6:2,es2015:2,es2016:3,es2017:4,es2018:5,es2019:6,es2020:7,esnext:99}),affectsSourceFile:!0,affectsModuleResolution:!0,affectsEmit:!0,paramType:e.Diagnostics.VERSION,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_or_ESNEXT},{name:\"module\",shortName:\"m\",type:e.createMapFromTemplate({none:e.ModuleKind.None,commonjs:e.ModuleKind.CommonJS,amd:e.ModuleKind.AMD,system:e.ModuleKind.System,umd:e.ModuleKind.UMD,es6:e.ModuleKind.ES2015,es2015:e.ModuleKind.ES2015,esnext:e.ModuleKind.ESNext}),affectsModuleResolution:!0,affectsEmit:!0,paramType:e.Diagnostics.KIND,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_or_ESNext},{name:\"lib\",type:\"list\",element:{name:\"lib\",type:e.libMap},affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_library_files_to_be_included_in_the_compilation,transpileOptionValue:void 0},{name:\"allowJs\",type:\"boolean\",affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Allow_javascript_files_to_be_compiled},{name:\"checkJs\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Report_errors_in_js_files},{name:\"jsx\",type:e.createMapFromTemplate({preserve:1,\"react-native\":3,react:2}),affectsSourceFile:!0,paramType:e.Diagnostics.KIND,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_JSX_code_generation_Colon_preserve_react_native_or_react},{name:\"declaration\",shortName:\"d\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_corresponding_d_ts_file,transpileOptionValue:void 0},{name:\"declarationMap\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_a_sourcemap_for_each_corresponding_d_ts_file,transpileOptionValue:void 0},{name:\"emitDeclarationOnly\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Only_emit_d_ts_declaration_files,transpileOptionValue:void 0},{name:\"sourceMap\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Generates_corresponding_map_file},{name:\"outFile\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.FILE,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Concatenate_and_emit_output_to_single_file,transpileOptionValue:void 0},{name:\"outDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.DIRECTORY,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Redirect_output_structure_to_the_directory},{name:\"rootDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir},{name:\"composite\",type:\"boolean\",affectsEmit:!0,isTSConfigOnly:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Enable_project_compilation,transpileOptionValue:void 0},{name:\"tsBuildInfoFile\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.FILE,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Specify_file_to_store_incremental_compilation_information,transpileOptionValue:void 0},{name:\"removeComments\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Do_not_emit_comments_to_output},{name:\"noEmit\",type:\"boolean\",affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Do_not_emit_outputs,transpileOptionValue:void 0},{name:\"importHelpers\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Import_emit_helpers_from_tslib},{name:\"downlevelIteration\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3},{name:\"isolatedModules\",type:\"boolean\",category:e.Diagnostics.Basic_Options,description:e.Diagnostics.Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule,transpileOptionValue:!0},{name:\"strict\",type:\"boolean\",showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_all_strict_type_checking_options},{name:\"noImplicitAny\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Raise_error_on_expressions_and_declarations_with_an_implied_any_type},{name:\"strictNullChecks\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_null_checks},{name:\"strictFunctionTypes\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_checking_of_function_types},{name:\"strictBindCallApply\",type:\"boolean\",strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_bind_call_and_apply_methods_on_functions},{name:\"strictPropertyInitialization\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Enable_strict_checking_of_property_initialization_in_classes},{name:\"noImplicitThis\",type:\"boolean\",affectsSemanticDiagnostics:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Raise_error_on_this_expressions_with_an_implied_any_type},{name:\"alwaysStrict\",type:\"boolean\",affectsSourceFile:!0,strictFlag:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Strict_Type_Checking_Options,description:e.Diagnostics.Parse_in_strict_mode_and_emit_use_strict_for_each_source_file},{name:\"noUnusedLocals\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_on_unused_locals},{name:\"noUnusedParameters\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_on_unused_parameters},{name:\"noImplicitReturns\",type:\"boolean\",affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_error_when_not_all_code_paths_in_function_return_a_value},{name:\"noFallthroughCasesInSwitch\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Additional_Checks,description:e.Diagnostics.Report_errors_for_fallthrough_cases_in_switch_statement},{name:\"moduleResolution\",type:e.createMapFromTemplate({node:e.ModuleResolutionKind.NodeJs,classic:e.ModuleResolutionKind.Classic}),affectsModuleResolution:!0,paramType:e.Diagnostics.STRATEGY,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6},{name:\"baseUrl\",type:\"string\",affectsModuleResolution:!0,isFilePath:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Base_directory_to_resolve_non_absolute_module_names},{name:\"paths\",type:\"object\",affectsModuleResolution:!0,isTSConfigOnly:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl,transpileOptionValue:void 0},{name:\"rootDirs\",type:\"list\",isTSConfigOnly:!0,element:{name:\"rootDirs\",type:\"string\",isFilePath:!0},affectsModuleResolution:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime,transpileOptionValue:void 0},{name:\"typeRoots\",type:\"list\",element:{name:\"typeRoots\",type:\"string\",isFilePath:!0},affectsModuleResolution:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.List_of_folders_to_include_type_definitions_from},{name:\"types\",type:\"list\",element:{name:\"types\",type:\"string\"},affectsModuleResolution:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Type_declaration_files_to_be_included_in_compilation,transpileOptionValue:void 0},{name:\"allowSyntheticDefaultImports\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking},{name:\"esModuleInterop\",type:\"boolean\",affectsSemanticDiagnostics:!0,affectsEmit:!0,showInSimplifiedHelpView:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports},{name:\"preserveSymlinks\",type:\"boolean\",category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Do_not_resolve_the_real_path_of_symlinks},{name:\"allowUmdGlobalAccess\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Module_Resolution_Options,description:e.Diagnostics.Allow_accessing_UMD_globals_from_modules},{name:\"sourceRoot\",type:\"string\",affectsEmit:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations},{name:\"mapRoot\",type:\"string\",affectsEmit:!0,paramType:e.Diagnostics.LOCATION,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations},{name:\"inlineSourceMap\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file},{name:\"inlineSources\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Source_Map_Options,description:e.Diagnostics.Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set},{name:\"experimentalDecorators\",type:\"boolean\",category:e.Diagnostics.Experimental_Options,description:e.Diagnostics.Enables_experimental_support_for_ES7_decorators},{name:\"emitDecoratorMetadata\",type:\"boolean\",category:e.Diagnostics.Experimental_Options,description:e.Diagnostics.Enables_experimental_support_for_emitting_type_metadata_for_decorators},{name:\"jsxFactory\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h},{name:\"resolveJsonModule\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Include_modules_imported_with_json_extension},{name:\"out\",type:\"string\",affectsEmit:!0,isFilePath:!1,category:e.Diagnostics.Advanced_Options,paramType:e.Diagnostics.FILE,description:e.Diagnostics.Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file,transpileOptionValue:void 0},{name:\"reactNamespace\",type:\"string\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit},{name:\"skipDefaultLibCheck\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files},{name:\"charset\",type:\"string\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_character_set_of_the_input_files},{name:\"emitBOM\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files},{name:\"newLine\",type:e.createMapFromTemplate({crlf:0,lf:1}),affectsEmit:!0,paramType:e.Diagnostics.NEWLINE,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix},{name:\"noErrorTruncation\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_truncate_error_messages},{name:\"noLib\",type:\"boolean\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_include_the_default_library_file_lib_d_ts,transpileOptionValue:!0},{name:\"noResolve\",type:\"boolean\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files,transpileOptionValue:!0},{name:\"stripInternal\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation},{name:\"disableSizeLimit\",type:\"boolean\",affectsSourceFile:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_size_limitations_on_JavaScript_projects},{name:\"disableSourceOfProjectReferenceRedirect\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects},{name:\"noImplicitUseStrict\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_use_strict_directives_in_module_output},{name:\"noEmitHelpers\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_generate_custom_helper_functions_like_extends_in_compiled_output},{name:\"noEmitOnError\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_emit_outputs_if_any_errors_were_reported,transpileOptionValue:void 0},{name:\"preserveConstEnums\",type:\"boolean\",affectsEmit:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code},{name:\"declarationDir\",type:\"string\",affectsEmit:!0,isFilePath:!0,paramType:e.Diagnostics.DIRECTORY,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Output_directory_for_generated_declaration_files,transpileOptionValue:void 0},{name:\"skipLibCheck\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Skip_type_checking_of_declaration_files},{name:\"allowUnusedLabels\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_report_errors_on_unused_labels},{name:\"allowUnreachableCode\",type:\"boolean\",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Do_not_report_errors_on_unreachable_code},{name:\"suppressExcessPropertyErrors\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Suppress_excess_property_checks_for_object_literals},{name:\"suppressImplicitAnyIndexErrors\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures},{name:\"forceConsistentCasingInFileNames\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disallow_inconsistently_cased_references_to_the_same_file},{name:\"maxNodeModuleJsDepth\",type:\"number\",affectsModuleResolution:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files},{name:\"noStrictGenericChecks\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types},{name:\"useDefineForClassFields\",type:\"boolean\",affectsSemanticDiagnostics:!0,category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Emit_class_fields_with_Define_instead_of_Set},{name:\"keyofStringsOnly\",type:\"boolean\",category:e.Diagnostics.Advanced_Options,description:e.Diagnostics.Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols},{name:\"plugins\",type:\"list\",isTSConfigOnly:!0,element:{name:\"plugin\",type:\"object\"},description:e.Diagnostics.List_of_language_service_plugins}]),e.semanticDiagnosticsOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsSemanticDiagnostics})),e.affectsEmitOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsEmit})),e.moduleResolutionOptionDeclarations=e.optionDeclarations.filter((function(e){return!!e.affectsModuleResolution})),e.sourceFileAffectingCompilerOptions=e.optionDeclarations.filter((function(e){return!!e.affectsSourceFile||!!e.affectsModuleResolution||!!e.affectsBindDiagnostics})),e.transpileOptionValueCompilerOptions=e.optionDeclarations.filter((function(n){return e.hasProperty(n,\"transpileOptionValue\")})),e.buildOpts=__spreadArrays(e.commonOptionsWithBuild,[{name:\"verbose\",shortName:\"v\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Enable_verbose_logging,type:\"boolean\"},{name:\"dry\",shortName:\"d\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,type:\"boolean\"},{name:\"force\",shortName:\"f\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,type:\"boolean\"},{name:\"clean\",category:e.Diagnostics.Command_line_Options,description:e.Diagnostics.Delete_the_outputs_of_all_projects,type:\"boolean\"}]),e.typeAcquisitionDeclarations=[{name:\"enableAutoDiscovery\",type:\"boolean\"},{name:\"enable\",type:\"boolean\"},{name:\"include\",type:\"list\",element:{name:\"include\",type:\"string\"}},{name:\"exclude\",type:\"list\",element:{name:\"exclude\",type:\"string\"}}],e.defaultInitCompilerOptions={module:e.ModuleKind.CommonJS,target:1,strict:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0},e.convertEnableAutoDiscoveryToEnable=a,e.getOptionNameMap=i,e.createOptionNameMap=o,e.createCompilerDiagnosticForInvalidCustomType=s,e.parseCustomTypeOption=l,e.parseListTypeOption=u,e.parseCommandLine=function(n,t){return d(i,[e.Diagnostics.Unknown_compiler_option_0,e.Diagnostics.Compiler_option_0_expects_an_argument],n,t)},e.getOptionFromName=p,e.parseBuildCommand=function(n){var t,r=d((function(){return t||(t=o(e.buildOpts))}),[e.Diagnostics.Unknown_build_option_0,e.Diagnostics.Build_option_0_requires_a_value_of_type_1],n),a=r.options,i=r.fileNames,s=r.errors,c=a;return 0===i.length&&i.push(\".\"),c.clean&&c.force&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"force\")),c.clean&&c.verbose&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"verbose\")),c.clean&&c.watch&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"watch\")),c.watch&&c.dry&&s.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"watch\",\"dry\")),{buildOptions:c,projects:i,errors:s}},e.getDiagnosticText=function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var a=e.createCompilerDiagnostic.apply(void 0,arguments);return a.messageText},e.getParsedCommandLineOfConfigFile=function(n,t,r,a){var i;try{i=r.readFile(n)}catch(t){var o=e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0_Colon_1,n,t.message);return void r.onUnRecoverableConfigFileDiagnostic(o)}if(i){var s=e.parseJsonText(n,i),c=r.getCurrentDirectory();return s.path=e.toPath(n,c,e.createGetCanonicalFileName(r.useCaseSensitiveFileNames)),s.resolvedPath=s.path,s.originalFileName=s.fileName,C(s,r,e.getNormalizedAbsolutePath(e.getDirectoryPath(n),c),t,e.getNormalizedAbsolutePath(n,c),void 0,void 0,a)}o=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,n),r.onUnRecoverableConfigFileDiagnostic(o)},e.readConfigFile=function(n,t){var r=g(n,t);return e.isString(r)?f(n,r):{config:{},error:r}},e.parseConfigFileTextToJson=f,e.readJsonConfigFile=_,e.convertToObject=v,e.convertToObjectWorker=h,e.convertToTSConfig=function(n,t,r){var a=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames),i=e.map(e.filter(n.fileNames,n.configFileSpecs&&n.configFileSpecs.validatedIncludeSpecs?function(n,t,r,a){if(!t)return function(e){return!0};var i=e.getFileMatcherPatterns(n,r,t,a.useCaseSensitiveFileNames,a.getCurrentDirectory()),o=i.excludePattern&&e.getRegexFromPattern(i.excludePattern,a.useCaseSensitiveFileNames),s=i.includeFilePattern&&e.getRegexFromPattern(i.includeFilePattern,a.useCaseSensitiveFileNames);if(s)return o?function(e){return!(s.test(e)&&!o.test(e))}:function(e){return!s.test(e)};if(o)return function(e){return o.test(e)};return function(e){return!0}}(t,n.configFileSpecs.validatedIncludeSpecs,n.configFileSpecs.validatedExcludeSpecs,r):function(e){return!0}),(function(n){return e.getRelativePathFromFile(e.getNormalizedAbsolutePath(t,r.getCurrentDirectory()),e.getNormalizedAbsolutePath(n,r.getCurrentDirectory()),a)})),o=x(n.options,{configFilePath:e.getNormalizedAbsolutePath(t,r.getCurrentDirectory()),useCaseSensitiveFileNames:r.useCaseSensitiveFileNames});return __assign(__assign({compilerOptions:__assign(__assign({},e.arrayFrom(o.entries()).reduce((function(e,n){var t;return __assign(__assign({},e),((t={})[n[0]]=n[1],t))}),{})),{showConfig:void 0,configFile:void 0,configFilePath:void 0,help:void 0,init:void 0,listFiles:void 0,listEmittedFiles:void 0,project:void 0,build:void 0,version:void 0}),references:e.map(n.projectReferences,(function(e){return __assign(__assign({},e),{path:e.originalPath?e.originalPath:\"\",originalPath:void 0})})),files:e.length(i)?i:void 0},n.configFileSpecs?{include:T(n.configFileSpecs.validatedIncludeSpecs),exclude:n.configFileSpecs.validatedExcludeSpecs}:{}),{compileOnSave:!!n.compileOnSave||void 0})},e.generateTSConfig=function(n,t,r){var a=x(e.extend(n,e.defaultInitCompilerOptions));return function(){for(var n=e.createMultiMap(),c=0,l=e.optionDeclarations;c<l.length;c++){var u=l[c],d=u.category;s(u)&&n.add(e.getLocaleSpecificMessage(d),u)}var p=0,m=0,f=[],_=[];n.forEach((function(n,t){0!==f.length&&(f.push(\"\"),_.push(\"\")),f.push(\"/* \"+t+\" */\"),_.push(\"\");for(var r=0,o=n;r<o.length;r++){var s=o[r],c=void 0;c=a.has(s.name)?'\"'+s.name+'\": '+JSON.stringify(a.get(s.name))+((m+=1)===a.size?\"\":\",\"):'// \"'+s.name+'\": '+JSON.stringify(i(s))+\",\",f.push(c),_.push(\"/* \"+(s.description&&e.getLocaleSpecificMessage(s.description)||s.name)+\" */\"),p=Math.max(c.length,p)}}));var g=o(2),y=[];y.push(\"{\"),y.push(g+'\"compilerOptions\": {');for(var v=0;v<f.length;v++){var h=f[v],b=_[v];y.push(h&&\"\"+g+g+h+(b&&o(p-h.length+2)+b))}if(t.length){y.push(g+\"},\"),y.push(g+'\"files\": [');for(v=0;v<t.length;v++)y.push(\"\"+g+g+JSON.stringify(t[v])+(v===t.length-1?\"\":\",\"));y.push(g+\"]\")}else y.push(g+\"}\");return y.push(\"}\"),y.join(r)+r}();function i(n){switch(n.type){case\"number\":return 1;case\"boolean\":return!0;case\"string\":return n.isFilePath?\"./\":\"\";case\"list\":return[];case\"object\":return{};default:var t=n.type.keys().next();return t.done?e.Debug.fail(\"Expected 'option.type' to have entries.\"):t.value}}function o(e){return Array(e+1).join(\" \")}function s(n){var t=n.category,r=n.name;return void 0!==t&&t!==e.Diagnostics.Command_line_Options&&(t!==e.Diagnostics.Advanced_Options||a.has(r))}},e.convertToOptionsWithAbsolutePaths=function(n,t){var r={},a=i().optionNameMap;for(var o in n)e.hasProperty(n,o)&&(r[o]=L(a.get(o.toLowerCase()),n[o],t));return r.configFilePath&&(r.configFilePath=t(r.configFilePath)),r},e.parseJsonConfigFileContent=function(e,n,t,r,a,i,o,s){return N(e,void 0,n,t,r,a,i,o,s)},e.parseJsonSourceFileConfigFileContent=C,e.setConfigFileInOptions=A,e.canJsonReportNoInutFiles=O,e.updateErrorForNoInputFiles=function(n,t,r,a,i){var o=a.length;return M(n,i)?a.push(I(r,t)):e.filterMutate(a,(function(n){return!function(n){return n.code===e.Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code}(n)})),o!==a.length},e.convertCompilerOptionsFromJson=function(e,n,t){var r=[];return{options:G(e,n,r,t),errors:r}},e.convertTypeAcquisitionFromJson=function(e,n,t){var r=[];return{options:V(e,n,r,t),errors:r}};var z=/(^|\\/)\\*\\*\\/?$/,q=/(^|\\/)\\*\\*\\/(.*\\/)?\\.\\.($|\\/)/,J=/\\/[^/]*?[*?][^/]*\\//,X=/^[^*?]*(?=\\/[^/]*[*?])/;function Y(n,t,r,a,i){void 0===i&&(i=[]),t=e.normalizePath(t);var o,s=a.useCaseSensitiveFileNames?e.identity:e.toLowerCase,c=e.createMap(),l=e.createMap(),u=e.createMap(),d=n.filesSpecs,p=n.validatedIncludeSpecs,m=n.validatedExcludeSpecs,f=n.wildcardDirectories,_=e.getSupportedExtensions(r,i),g=e.getSuppoertedExtensionsWithJsonIfResolveJsonModule(r,_);if(d)for(var y=0,v=d;y<v.length;y++){var h=v[y],b=e.getNormalizedAbsolutePath(h,t);c.set(s(b),b)}if(p&&p.length>0)for(var E=function(n){if(e.fileExtensionIs(n,\".json\")){if(!o){var r=p.filter((function(n){return e.endsWith(n,\".json\")})),i=e.map(e.getRegularExpressionsForWildcards(r,t,\"files\"),(function(e){return\"^\"+e+\"$\"}));o=i?i.map((function(n){return e.getRegexFromPattern(n,a.useCaseSensitiveFileNames)})):e.emptyArray}if(-1!==e.findIndex(o,(function(e){return e.test(n)}))){var d=s(n);c.has(d)||u.has(d)||u.set(d,n)}return\"continue\"}if(function(n,t,r,a,i){for(var o=e.getExtensionPriority(n,a),s=e.adjustExtensionPriority(o,a),c=0;c<s;c++){var l=a[c],u=i(e.changeExtension(n,l));if(t.has(u)||r.has(u))return!0}return!1}(n,c,l,_,s))return\"continue\";!function(n,t,r,a){for(var i=e.getExtensionPriority(n,r),o=e.getNextLowestExtensionPriority(i,r);o<r.length;o++){var s=r[o],c=a(e.changeExtension(n,s));t.delete(c)}}(n,l,_,s);var m=s(n);c.has(m)||l.has(m)||l.set(m,n)},T=0,S=a.readDirectory(t,g,m,p,void 0);T<S.length;T++){E(b=S[T])}var x=e.arrayFrom(c.values()),L=e.arrayFrom(l.values());return{fileNames:x.concat(L,e.arrayFrom(u.values())),wildcardDirectories:f,spec:n}}function Q(n,t,r,a,i){return n.filter((function(n){var o=function(n,t){if(!t&&z.test(n))return e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0;if(q.test(n))return e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0}(n,r);return void 0!==o&&t.push(function(n,t){var r=e.getTsConfigPropArrayElementValue(a,i,t);return r?e.createDiagnosticForNodeInSourceFile(a,r,n,t):e.createCompilerDiagnostic(n,t)}(o,n)),void 0===o}))}function Z(n,t){var r=X.exec(n);return r?{key:t?r[0]:r[0].toLowerCase(),flags:J.test(n)?1:0}:e.isImplicitGlob(n)?{key:n,flags:1}:void 0}function $(n,t){switch(t.type){case\"object\":case\"string\":return\"\";case\"number\":return\"number\"==typeof n?n:\"\";case\"boolean\":return\"boolean\"==typeof n?n:\"\";case\"list\":var r=t.element;return e.isArray(n)?n.map((function(e){return $(e,r)})):\"\";default:return e.forEachEntry(t.type,(function(e,t){if(e===n)return t}))}}e.getFileNamesFromConfigSpecs=Y,e.convertCompilerOptionsForTelemetry=function(e){var n={};for(var t in e)if(e.hasOwnProperty(t)){var r=p(t);void 0!==r&&(n[t]=$(e[t],r))}return n}}(ts||(ts={})),function(e){function n(n){n.trace(e.formatMessage.apply(void 0,arguments))}function t(e,n){return!!e.traceResolution&&void 0!==n.trace}function r(n,t){var r;if(t&&n){var a=n.packageJsonContent;\"string\"==typeof a.name&&\"string\"==typeof a.version&&(r={name:a.name,subModuleName:t.path.slice(n.packageDirectory.length+e.directorySeparator.length),version:a.version})}return t&&{path:t.path,extension:t.ext,packageId:r}}function a(e){return r(void 0,e)}function i(n){if(n)return e.Debug.assert(void 0===n.packageId),{path:n.path,ext:n.extension}}var o,s;function c(n){if(n)return e.Debug.assert(e.extensionIsTS(n.extension)),{fileName:n.path,packageId:n.packageId}}function l(e,n,t){return{resolvedModule:e&&{resolvedFileName:e.path,originalPath:!0===e.originalPath?void 0:e.originalPath,extension:e.extension,isExternalLibraryImport:n,packageId:e.packageId},failedLookupLocations:t}}function u(t,r,a,i){if(e.hasProperty(t,r)){var o=t[r];if(typeof o===a&&null!==o)return o;i.traceEnabled&&n(i.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,r,a,null===o?\"null\":typeof o)}else i.traceEnabled&&n(i.host,e.Diagnostics.package_json_does_not_have_a_0_field,r)}function d(t,r,a,i){var o=u(t,r,\"string\",i);if(void 0!==o){if(o){var s=e.normalizePath(e.combinePaths(a,o));return i.traceEnabled&&n(i.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,r,o,s),s}i.traceEnabled&&n(i.host,e.Diagnostics.package_json_had_a_falsy_0_field,r)}}function p(e,n,t){return d(e,\"typings\",n,t)||d(e,\"types\",n,t)}function m(e,n,t){return d(e,\"main\",n,t)}function f(t,r){var a=function(t,r){var a=u(t,\"typesVersions\",\"object\",r);if(void 0!==a)return r.traceEnabled&&n(r.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),a}(t,r);if(void 0!==a){if(r.traceEnabled)for(var i in a)e.hasProperty(a,i)&&!e.VersionRange.tryParse(i)&&n(r.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,i);var o=_(a);if(o){var s=o.version,c=o.paths;if(\"object\"==typeof c)return o;r.traceEnabled&&n(r.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,\"typesVersions['\"+s+\"']\",\"object\",typeof c)}else r.traceEnabled&&n(r.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor)}}function _(n){for(var t in s||(s=new e.Version(e.version)),n)if(e.hasProperty(n,t)){var r=e.VersionRange.tryParse(t);if(void 0!==r&&r.test(s))return{version:t,paths:n[t]}}}function g(n,t){return n.typeRoots?n.typeRoots:(n.configFilePath?r=e.getDirectoryPath(n.configFilePath):t.getCurrentDirectory&&(r=t.getCurrentDirectory()),void 0!==r?function(n,t){if(!t.directoryExists)return[e.combinePaths(n,y)];var r;return e.forEachAncestorDirectory(e.normalizePath(n),(function(n){var a=e.combinePaths(n,y);t.directoryExists(a)&&(r||(r=[])).push(a)})),r}(r,t):void 0);var r}e.trace=n,e.isTraceEnabled=t,function(e){e[e.TypeScript=0]=\"TypeScript\",e[e.JavaScript=1]=\"JavaScript\",e[e.Json=2]=\"Json\",e[e.TSConfig=3]=\"TSConfig\",e[e.DtsOnly=4]=\"DtsOnly\"}(o||(o={})),e.getPackageJsonTypesVersionsPaths=_,e.getEffectiveTypeRoots=g;var y=e.combinePaths(\"node_modules\",\"@types\");function v(n){var t=e.createMap(),r=e.createMap();return{ownMap:t,redirectsMap:r,getOrCreateMapOfCacheRedirects:function(a){if(!a)return t;var i=a.sourceFile.path,o=r.get(i);o||(o=!n||e.optionsHaveModuleResolutionChanges(n,a.commandLine.options)?e.createMap():t,r.set(i,o));return o},clear:function(){t.clear(),r.clear()},setOwnOptions:function(e){n=e},setOwnMap:function(e){t=e}}}function h(n,t,r,a){return{getOrCreateCacheForDirectory:function(t,o){var s=e.toPath(t,r,a);return i(n,o,s,e.createMap)},getOrCreateCacheForModuleName:function(n,r){return e.Debug.assert(!e.isExternalModuleNameRelative(n)),i(t,r,n,o)},directoryToModuleNameMap:n,moduleNameToDirectoryMap:t};function i(e,n,t,r){var a=e.getOrCreateMapOfCacheRedirects(n),i=a.get(t);return i||(i=r(),a.set(t,i)),i}function o(){var n=e.createMap();return{get:function(t){return n.get(e.toPath(t,r,a))},set:function(t,i){var o=e.toPath(t,r,a);if(n.has(o))return;n.set(o,i);var s=i.resolvedModule&&(i.resolvedModule.originalPath||i.resolvedModule.resolvedFileName),c=s&&function(n,t){var i=e.toPath(e.getDirectoryPath(t),r,a),o=0,s=Math.min(n.length,i.length);for(;o<s&&n.charCodeAt(o)===i.charCodeAt(o);)o++;if(o===n.length&&(i.length===o||i[o]===e.directorySeparator))return n;var c=e.getRootLength(n);if(o<c)return;var l=n.lastIndexOf(e.directorySeparator,o-1);if(-1===l)return;return n.substr(0,Math.max(l,c))}(o,s),l=o;for(;l!==c;){var u=e.getDirectoryPath(l);if(u===l||n.has(u))break;n.set(u,i),l=u}}}}}function b(t,r,a,i,o){var s=function(t,r,a,i){var o=i.compilerOptions,s=o.baseUrl,c=o.paths;if(s&&c&&!e.pathIsRelative(r))return i.traceEnabled&&(n(i.host,e.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,s,r),n(i.host,e.Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0,r)),H(t,r,s,c,a,!1,i)}(t,r,i,o);return s?s.value:e.isExternalModuleNameRelative(r)?function(t,r,a,i,o){if(!o.compilerOptions.rootDirs)return;o.traceEnabled&&n(o.host,e.Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0,r);for(var s,c,l=e.normalizePath(e.combinePaths(a,r)),u=0,d=o.compilerOptions.rootDirs;u<d.length;u++){var p=d[u],m=e.normalizePath(p);e.endsWith(m,e.directorySeparator)||(m+=e.directorySeparator);var f=e.startsWith(l,m)&&(void 0===c||c.length<m.length);o.traceEnabled&&n(o.host,e.Diagnostics.Checking_if_0_is_the_longest_matching_prefix_for_1_2,m,l,f),f&&(c=m,s=p)}if(c){o.traceEnabled&&n(o.host,e.Diagnostics.Longest_matching_prefix_for_0_is_1,l,c);var _=l.substr(c.length);o.traceEnabled&&n(o.host,e.Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2,_,c,l);var g=i(t,l,!e.directoryProbablyExists(a,o.host),o);if(g)return g;o.traceEnabled&&n(o.host,e.Diagnostics.Trying_other_entries_in_rootDirs);for(var y=0,v=o.compilerOptions.rootDirs;y<v.length;y++){if((p=v[y])!==s){var h=e.combinePaths(e.normalizePath(p),_);o.traceEnabled&&n(o.host,e.Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2,_,p,h);var b=e.getDirectoryPath(h),E=i(t,h,!e.directoryProbablyExists(b,o.host),o);if(E)return E}}o.traceEnabled&&n(o.host,e.Diagnostics.Module_resolution_using_rootDirs_has_failed)}return}(t,r,a,i,o):function(t,r,a,i){var o=i.compilerOptions.baseUrl;if(!o)return;i.traceEnabled&&n(i.host,e.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,o,r);var s=e.normalizePath(e.combinePaths(o,r));i.traceEnabled&&n(i.host,e.Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2,r,o,s);return a(t,s,!e.directoryProbablyExists(e.getDirectoryPath(s),i.host),i)}(t,r,i,o)}e.resolveTypeReferenceDirective=function(r,a,i,s,l){var u=t(i,s);l&&(i=l.commandLine.options);var d=[],p={compilerOptions:i,host:s,traceEnabled:u,failedLookupLocations:d},m=g(i,s);u&&(void 0===a?void 0===m?n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,r):n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,r,m):void 0===m?n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,r,a):n(s,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,r,a,m),l&&n(s,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,l.sourceFile.fileName));var f,_=function(){if(m&&m.length)return u&&n(s,e.Diagnostics.Resolving_with_primary_search_path_0,m.join(\", \")),e.firstDefined(m,(function(t){var a=e.combinePaths(t,r),i=e.getDirectoryPath(a),l=e.directoryProbablyExists(i,s);return!l&&u&&n(s,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,i),c(w(o.DtsOnly,a,!l,p))}));u&&n(s,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}(),y=!0;if(_||(_=function(){var t=a&&e.getDirectoryPath(a);if(void 0!==t){u&&n(s,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,t);var i=void 0;if(e.isExternalModuleNameRelative(r)){var l=e.normalizePathAndParts(e.combinePaths(t,r)).path;i=k(o.DtsOnly,l,!1,p,!0)}else{var d=V(o.DtsOnly,r,t,p,void 0,void 0);i=d&&d.value}var m=c(i);return!m&&u&&n(s,e.Diagnostics.Type_reference_directive_0_was_not_resolved,r),m}u&&n(s,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}(),y=!1),_){var v=_.fileName,h=_.packageId,b=i.preserveSymlinks?v:D(v,s,u);u&&(h?n(s,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,r,b,e.packageIdToString(h),y):n(s,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,r,b,y)),f={primary:y,resolvedFileName:b,packageId:h,isExternalLibraryImport:N(v)}}return{resolvedTypeReferenceDirective:f,failedLookupLocations:d}},e.getAutomaticTypeDirectiveNames=function(n,t){if(n.types)return n.types;var r=[];if(t.directoryExists&&t.getDirectories){var a=g(n,t);if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];if(t.directoryExists(s))for(var c=0,l=t.getDirectories(s);c<l.length;c++){var u=l[c],d=e.normalizePath(u),p=e.combinePaths(s,d,\"package.json\");if(!(t.fileExists(p)&&null===e.readJson(p,t).typings)){var m=e.getBaseFileName(d);46!==m.charCodeAt(0)&&r.push(m)}}}}return r},e.createModuleResolutionCache=function(e,n,t){return h(v(t),v(t),e,n)},e.createCacheWithRedirects=v,e.createModuleResolutionCacheWithMaps=h,e.resolveModuleNameFromCache=function(n,t,r){var a=e.getDirectoryPath(t),i=r&&r.getOrCreateCacheForDirectory(a);return i&&i.get(n)},e.resolveModuleName=function(r,a,i,o,s,c){var l=t(i,o);c&&(i=c.commandLine.options),l&&(n(o,e.Diagnostics.Resolving_module_0_from_1,r,a),c&&n(o,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,c.sourceFile.fileName));var u=e.getDirectoryPath(a),d=s&&s.getOrCreateCacheForDirectory(u,c),p=d&&d.get(r);if(p)l&&n(o,e.Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1,r,u);else{var m=i.moduleResolution;switch(void 0===m?(m=e.getEmitModuleKind(i)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic,l&&n(o,e.Diagnostics.Module_resolution_kind_is_not_specified_using_0,e.ModuleResolutionKind[m])):l&&n(o,e.Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0,e.ModuleResolutionKind[m]),e.perfLogger.logStartResolveModule(r),m){case e.ModuleResolutionKind.NodeJs:p=C(r,a,i,o,s,c);break;case e.ModuleResolutionKind.Classic:p=J(r,a,i,o,s,c);break;default:return e.Debug.fail(\"Unexpected moduleResolution: \"+m)}p&&p.resolvedModule&&e.perfLogger.logInfoEvent('Module \"'+r+'\" resolved to \"'+p.resolvedModule.resolvedFileName+'\"'),e.perfLogger.logStopResolveModule(p&&p.resolvedModule?\"\"+p.resolvedModule.resolvedFileName:\"null\"),d&&(d.set(r,p),e.isExternalModuleNameRelative(r)||s.getOrCreateCacheForModuleName(r,c).set(u,p))}return l&&(p.resolvedModule?p.resolvedModule.packageId?n(o,e.Diagnostics.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2,r,p.resolvedModule.resolvedFileName,e.packageIdToString(p.resolvedModule.packageId)):n(o,e.Diagnostics.Module_name_0_was_successfully_resolved_to_1,r,p.resolvedModule.resolvedFileName):n(o,e.Diagnostics.Module_name_0_was_not_resolved,r)),p},e.resolveJSModule=function(e,n,t){var r=L(e,n,t),a=r.resolvedModule,i=r.failedLookupLocations;if(!a)throw new Error(\"Could not resolve JS module '\"+e+\"' starting at '\"+n+\"'. Looked in: \"+i.join(\", \"));return a.resolvedFileName},e.tryResolveJSModule=function(e,n,t){var r=L(e,n,t).resolvedModule;return r&&r.resolvedFileName};var E=[o.JavaScript],T=[o.TypeScript,o.JavaScript],S=__spreadArrays(T,[o.Json]),x=[o.TSConfig];function L(n,t,r){return A(n,t,{moduleResolution:e.ModuleResolutionKind.NodeJs,allowJs:!0},r,void 0,E,void 0)}function C(n,t,r,a,i,o,s){return A(n,e.getDirectoryPath(t),r,a,i,s?x:r.resolveJsonModule?S:T,o)}function A(r,a,i,s,c,u,d){var p=t(i,s),m=[],f={compilerOptions:i,host:s,traceEnabled:p,failedLookupLocations:m},_=e.forEach(u,(function(t){return function(t){var l=b(t,r,a,(function(e,n,t,r){return k(e,n,t,r,!0)}),f);if(l)return X({resolved:l,isExternalLibraryImport:N(l.path)});if(e.isExternalModuleNameRelative(r)){var u=e.normalizePathAndParts(e.combinePaths(a,r)),m=u.path,_=u.parts,g=k(t,m,!1,f,!0);return g&&X({resolved:g,isExternalLibraryImport:e.contains(_,\"node_modules\")})}p&&n(s,e.Diagnostics.Loading_module_0_from_node_modules_folder_target_file_type_1,r,o[t]);var y=V(t,r,a,f,c,d);if(!y)return;var v=y.value;if(!i.preserveSymlinks&&v&&!v.originalPath){var h=D(v.path,s,p),E=h===v.path?void 0:v.path;v=__assign(__assign({},v),{path:h,originalPath:E})}return{value:v&&{resolved:v,isExternalLibraryImport:!0}}}(t)}));if(_&&_.value){var g=_.value;return l(g.resolved,g.isExternalLibraryImport,m)}return{resolvedModule:void 0,failedLookupLocations:m}}function D(t,r,a){if(!r.realpath)return t;var i=e.normalizePath(r.realpath(t));return a&&n(r,e.Diagnostics.Resolving_real_path_for_0_result_1,t,i),e.Debug.assert(r.fileExists(i),t+\" linked to nonexistent file \"+i),i}function k(t,a,i,s,c){if(s.traceEnabled&&n(s.host,e.Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1,a,o[t]),!e.hasTrailingDirectorySeparator(a)){if(!i){var l=e.getDirectoryPath(a);e.directoryProbablyExists(l,s.host)||(s.traceEnabled&&n(s.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,l),i=!0)}var u=O(t,a,i,s);if(u){var d=c?function(n){var t=e.normalizePath(n.path),r=t.lastIndexOf(e.nodeModulesPathPart);if(-1===r)return;var a=r+e.nodeModulesPathPart.length,i=I(t,a);64===t.charCodeAt(a)&&(i=I(t,i));return t.slice(0,i)}(u):void 0;return r(d?F(d,!1,s):void 0,u)}}i||(e.directoryProbablyExists(a,s.host)||(s.traceEnabled&&n(s.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,a),i=!0));return w(t,a,i,s,c)}function N(n){return e.stringContains(n,e.nodeModulesPathPart)}function I(n,t){var r=n.indexOf(e.directorySeparator,t+1);return-1===r?t:r}function M(e,n,t,r){return a(O(e,n,t,r))}function O(t,r,a,i){if(t===o.Json||t===o.TSConfig){var s=e.tryRemoveExtension(r,\".json\");return void 0===s&&t===o.Json?void 0:R(s||r,t,a,i)}var c=R(r,t,a,i);if(c)return c;if(e.hasJSFileExtension(r)){var l=e.removeFileExtension(r);if(i.traceEnabled){var u=r.substring(l.length);n(i.host,e.Diagnostics.File_name_0_has_a_1_extension_stripping_it,r,u)}return R(l,t,a,i)}}function R(n,t,r,a){if(!r){var i=e.getDirectoryPath(n);i&&(r=!e.directoryProbablyExists(i,a.host))}switch(t){case o.DtsOnly:return s(\".d.ts\");case o.TypeScript:return s(\".ts\")||s(\".tsx\")||s(\".d.ts\");case o.JavaScript:return s(\".js\")||s(\".jsx\");case o.TSConfig:case o.Json:return s(\".json\")}function s(e){var t=P(n+e,r,a);return void 0===t?void 0:{path:t,ext:e}}}function P(t,r,a){if(!r){if(a.host.fileExists(t))return a.traceEnabled&&n(a.host,e.Diagnostics.File_0_exist_use_it_as_a_name_resolution_result,t),t;a.traceEnabled&&n(a.host,e.Diagnostics.File_0_does_not_exist,t)}a.failedLookupLocations.push(t)}function w(e,n,t,a,i){void 0===i&&(i=!0);var o=i?F(n,t,a):void 0;return r(o,G(e,n,t,a,o&&o.packageJsonContent,o&&o.versionPaths))}function F(t,r,a){var i=a.host,o=a.traceEnabled,s=!r&&e.directoryProbablyExists(t,i),c=e.combinePaths(t,\"package.json\");if(s&&i.fileExists(c)){var l=e.readJson(c,i);return o&&n(i,e.Diagnostics.Found_package_json_at_0,c),{packageDirectory:t,packageJsonContent:l,versionPaths:f(l,a)}}s&&o&&n(i,e.Diagnostics.File_0_does_not_exist,c),a.failedLookupLocations.push(c)}function G(t,r,s,c,l,u){var f;if(l)switch(t){case o.JavaScript:case o.Json:f=m(l,r,c);break;case o.TypeScript:f=p(l,r,c)||m(l,r,c);break;case o.DtsOnly:f=p(l,r,c);break;case o.TSConfig:f=function(e,n,t){return d(e,\"tsconfig\",n,t)}(l,r,c);break;default:return e.Debug.assertNever(t)}var _=function(t,r,i,s){var c=P(r,i,s);if(c){var l=function(n,t){var r=e.tryGetExtensionFromPath(t);return void 0!==r&&function(e,n){switch(e){case o.JavaScript:return\".js\"===n||\".jsx\"===n;case o.TSConfig:case o.Json:return\".json\"===n;case o.TypeScript:return\".ts\"===n||\".tsx\"===n||\".d.ts\"===n;case o.DtsOnly:return\".d.ts\"===n}}(n,r)?{path:t,ext:r}:void 0}(t,c);if(l)return a(l);s.traceEnabled&&n(s.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,c)}return k(t===o.DtsOnly?o.TypeScript:t,r,i,s,!1)},g=f?!e.directoryProbablyExists(e.getDirectoryPath(f),c.host):void 0,y=s||!e.directoryProbablyExists(r,c.host),v=e.combinePaths(r,t===o.TSConfig?\"tsconfig\":\"index\");if(u&&(!f||e.containsPath(r,f))){var h=e.getRelativePathFromDirectory(r,f||v,!1);c.traceEnabled&&n(c.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,u.version,e.version,h);var b=H(t,h,r,u.paths,_,g||y,c);if(b)return i(b.value)}var E=f&&i(_(t,f,g,c));return E||O(t,v,y,c)}function B(n){var t=n.indexOf(e.directorySeparator);return\"@\"===n[0]&&(t=n.indexOf(e.directorySeparator,t+1)),-1===t?{packageName:n,rest:\"\"}:{packageName:n.slice(0,t),rest:n.slice(t+1)}}function V(e,n,t,r,a,i){return U(e,n,t,r,!1,a,i)}function U(n,t,r,a,i,o,s){var c=o&&o.getOrCreateCacheForModuleName(t,s);return e.forEachAncestorDirectory(e.normalizeSlashes(r),(function(r){if(\"node_modules\"!==e.getBaseFileName(r)){var o=q(c,t,r,a);return o||X(j(n,t,r,a,i))}}))}function j(t,r,a,i,s){var c=e.combinePaths(a,\"node_modules\"),l=e.directoryProbablyExists(c,i.host);!l&&i.traceEnabled&&n(i.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,c);var u=s?void 0:K(t,r,c,l,i);if(u)return u;if(t===o.TypeScript||t===o.DtsOnly){var d=e.combinePaths(c,\"@types\"),p=l;return l&&!e.directoryProbablyExists(d,i.host)&&(i.traceEnabled&&n(i.host,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,d),p=!1),K(o.DtsOnly,function(t,r){var a=W(t);r.traceEnabled&&a!==t&&n(r.host,e.Diagnostics.Scoped_package_detected_looking_in_0,a);return a}(r,i),d,p,i)}}function K(t,i,o,s,c){var l=e.normalizePath(e.combinePaths(o,i)),u=F(l,!s,c);if(u){var d=O(t,l,!s,c);if(d)return a(d);var p=G(t,l,!s,c,u.packageJsonContent,u.versionPaths);return r(u,p)}var m=function(e,n,t,a){var i=O(e,n,t,a)||G(e,n,t,a,u&&u.packageJsonContent,u&&u.versionPaths);return r(u,i)},f=B(i),_=f.packageName,g=f.rest;if(\"\"!==g){var y=e.combinePaths(o,_);if((u=F(y,!s,c))&&u.versionPaths){c.traceEnabled&&n(c.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,u.versionPaths.version,e.version,g);var v=s&&e.directoryProbablyExists(y,c.host),h=H(t,g,y,u.versionPaths.paths,m,!v,c);if(h)return h.value}}return m(t,l,!s,c)}function H(t,r,i,o,s,c,l){var u=e.matchPatternOrExact(e.getOwnKeys(o),r);if(u){var d=e.isString(u)?void 0:e.matchedText(u,r),p=e.isString(u)?u:e.patternText(u);return l.traceEnabled&&n(l.host,e.Diagnostics.Module_name_0_matched_pattern_1,r,p),{value:e.forEach(o[p],(function(r){var o=d?r.replace(\"*\",d):r,u=e.normalizePath(e.combinePaths(i,o));l.traceEnabled&&n(l.host,e.Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1,r,o);var p=e.tryGetExtensionFromPath(u);if(void 0!==p){var m=P(u,c,l);if(void 0!==m)return a({path:m,ext:p})}return s(t,u,c||!e.directoryProbablyExists(e.getDirectoryPath(u),l.host),l)}))}}}e.nodeModuleNameResolver=C,e.nodeModulesPathPart=\"/node_modules/\",e.pathContainsNodeModules=N,e.parsePackageName=B;function W(n){if(e.startsWith(n,\"@\")){var t=n.replace(e.directorySeparator,\"__\");if(t!==n)return t.slice(1)}return n}function z(n){return e.stringContains(n,\"__\")?\"@\"+n.replace(\"__\",e.directorySeparator):n}function q(t,r,a,i){var o,s=t&&t.get(a);if(s)return i.traceEnabled&&n(i.host,e.Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1,r,a),(o=i.failedLookupLocations).push.apply(o,s.failedLookupLocations),{value:s.resolvedModule&&{path:s.resolvedModule.resolvedFileName,originalPath:s.resolvedModule.originalPath||!0,extension:s.resolvedModule.extension,packageId:s.resolvedModule.packageId}}}function J(n,r,a,i,s,c){var u=[],d={compilerOptions:a,host:i,traceEnabled:t(a,i),failedLookupLocations:u},p=e.getDirectoryPath(r),m=f(o.TypeScript)||f(o.JavaScript);return l(m&&m.value,!1,u);function f(t){var r=b(t,n,p,M,d);if(r)return{value:r};if(e.isExternalModuleNameRelative(n)){var a=e.normalizePath(e.combinePaths(p,n));return X(M(t,a,!1,d))}var i=s&&s.getOrCreateCacheForModuleName(n,c),l=e.forEachAncestorDirectory(p,(function(r){var a=q(i,n,r,d);if(a)return a;var o=e.normalizePath(e.combinePaths(r,n));return X(M(t,o,!1,d))}));return l||(t===o.TypeScript?function(e,n,t){return U(o.DtsOnly,e,n,t,!0,void 0,void 0)}(n,p,d):void 0)}}function X(e){return void 0!==e?{value:e}:void 0}e.getTypesPackageName=function(e){return\"@types/\"+W(e)},e.mangleScopedPackageName=W,e.getPackageNameFromTypesPackageName=function(n){var t=e.removePrefix(n,\"@types/\");return t!==n?z(t):n},e.unmangleScopedPackageName=z,e.classicNameResolver=J,e.loadModuleFromGlobalCache=function(r,a,i,s,c){var u=t(i,s);u&&n(s,e.Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2,a,r,c);var d=[],p={compilerOptions:i,host:s,traceEnabled:u,failedLookupLocations:d};return l(j(o.DtsOnly,r,c,p,!1),!0,d)}}(ts||(ts={})),function(e){var n;function t(e,n){return e.body&&!e.body.parent&&f(e,e.body),e.body?r(e.body,n):1}function r(n,i){void 0===i&&(i=e.createMap());var o=\"\"+e.getNodeId(n);if(i.has(o))return i.get(o)||0;i.set(o,void 0);var s=function(n,i){switch(n.kind){case 245:case 246:return 0;case 247:if(e.isEnumConst(n))return 2;break;case 253:case 252:if(!e.hasModifier(n,1))return 0;break;case 259:if(!n.moduleSpecifier&&n.exportClause){for(var o=0,s=0,c=n.exportClause.elements;s<c.length;s++){var l=a(c[s],i);if(l>o&&(o=l),1===o)return o}return o}break;case 249:var u=0;return e.forEachChild(n,(function(n){var t=r(n,i);switch(t){case 0:return;case 2:return void(u=2);case 1:return u=1,!0;default:e.Debug.assertNever(t)}})),u;case 248:return t(n,i);case 75:if(n.isInJSDocNamespace)return 0}return 1}(n,i);return i.set(o,s),s}function a(n,t){for(var a=n.propertyName||n.name,i=n.parent;i;){if(e.isBlock(i)||e.isModuleBlock(i)||e.isSourceFile(i)){for(var o=void 0,s=0,c=i.statements;s<c.length;s++){var l=c[s];if(e.nodeHasName(l,a)){l.parent||f(i,l);var u=r(l,t);if((void 0===o||u>o)&&(o=u),1===o)return o}}if(void 0!==o)return o}i=i.parent}return 1}function i(n){return e.Debug.attachFlowNodeDebugInfo(n),n}!function(e){e[e.NonInstantiated=0]=\"NonInstantiated\",e[e.Instantiated=1]=\"Instantiated\",e[e.ConstEnumOnly=2]=\"ConstEnumOnly\"}(e.ModuleInstanceState||(e.ModuleInstanceState={})),e.getModuleInstanceState=t,function(e){e[e.None=0]=\"None\",e[e.IsContainer=1]=\"IsContainer\",e[e.IsBlockScopedContainer=2]=\"IsBlockScopedContainer\",e[e.IsControlFlowContainer=4]=\"IsControlFlowContainer\",e[e.IsFunctionLike=8]=\"IsFunctionLike\",e[e.IsFunctionExpression=16]=\"IsFunctionExpression\",e[e.HasLocals=32]=\"HasLocals\",e[e.IsInterface=64]=\"IsInterface\",e[e.IsObjectLiteralOrClassExpressionMethod=128]=\"IsObjectLiteralOrClassExpressionMethod\"}(n||(n={}));var o=i,s=function(){var n,r,a,s,p,_,g,y,v,h,b,E,T,S,x,L,C,A,D,k,N,I,M,O,R=0,P={flags:1},w={flags:1},F=0;function G(t,r,a,i,o){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(t)||n,t,r,a,i,o)}return function(t,o){n=t,r=o,a=e.getEmitScriptTarget(r),N=function(n,t){return!(!e.getStrictOptionValue(t,\"alwaysStrict\")||n.isDeclarationFile)||!!n.externalModuleIndicator}(n,o),M=e.createUnderscoreEscapedMap(),R=0,O=n.isDeclarationFile,I=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(P),e.Debug.attachFlowNodeDebugInfo(w),n.locals||(Pe(n),n.symbolCount=R,n.classifiableNames=M,function(){if(!v)return;for(var t=p,r=y,a=g,o=s,c=b,l=0,u=v;l<u.length;l++){var d=u[l],m=e.getJSDocHost(d);p=e.findAncestor(m.parent,(function(e){return!!(1&Te(e))}))||n,g=e.getEnclosingBlockScopeContainer(m)||n,b=i({flags:2}),s=d,Pe(d.typeExpression);var f=e.getNameOfDeclaration(d);if((e.isJSDocEnumTag(d)||!d.fullName)&&f&&e.isPropertyAccessEntityNameExpression(f.parent)){var _=Je(f.parent);if(_){ze(n.symbol,f.parent,_,!!e.findAncestor(f,(function(n){return e.isPropertyAccessExpression(n)&&\"prototype\"===n.name.escapedText})),!1);var h=p;switch(e.getAssignmentDeclarationPropertyAccessKind(f.parent)){case 1:case 2:p=e.isExternalOrCommonJsModule(n)?n:void 0;break;case 4:p=f.parent.expression;break;case 3:p=f.parent.expression.name;break;case 5:p=e.isPropertyAccessExpression(f.parent.expression)?f.parent.expression.name:f.parent.expression;break;case 0:return e.Debug.fail(\"Shouldn't have detected typedef or enum on non-assignment declaration\")}p&&W(d,524288,788968),p=h}}else e.isJSDocEnumTag(d)||!d.fullName||75===d.fullName.kind?(s=d.parent,De(d,524288,788968)):Pe(d.fullName)}p=t,y=r,g=a,s=o,b=c}()),n=void 0,r=void 0,a=void 0,s=void 0,p=void 0,_=void 0,g=void 0,y=void 0,v=void 0,h=!1,b=void 0,E=void 0,T=void 0,S=void 0,x=void 0,L=void 0,A=void 0,D=!1,k=0,F=0};function B(e,n){return R++,new I(e,n)}function V(n,t,r){n.flags|=r,t.symbol=n,n.declarations=e.appendIfUnique(n.declarations,t),1955&r&&!n.exports&&(n.exports=e.createSymbolTable()),6240&r&&!n.members&&(n.members=e.createSymbolTable()),n.constEnumOnlyModule&&304&n.flags&&(n.constEnumOnlyModule=!1),111551&r&&U(n,t)}function U(n,t){var r=n.valueDeclaration;(!r||e.isAssignmentDeclaration(r)&&!e.isAssignmentDeclaration(t)||r.kind!==t.kind&&e.isEffectiveModuleDeclaration(r))&&(n.valueDeclaration=t)}function j(n){if(258===n.kind)return n.isExportEquals?\"export=\":\"default\";var t=e.getNameOfDeclaration(n);if(t){if(e.isAmbientModule(n)){var r=e.getTextOfIdentifierOrLiteral(t);return e.isGlobalScopeAugmentation(n)?\"__global\":'\"'+r+'\"'}if(153===t.kind){var a=t.expression;return e.isStringOrNumericLiteralLike(a)?e.escapeLeadingUnderscores(a.text):e.isSignedNumericLiteral(a)?e.tokenToString(a.operator)+a.operand.text:(e.Debug.assert(e.isWellKnownSymbolSyntactically(a)),e.getPropertyNameForKnownSymbolName(e.idText(a.name)))}return e.isWellKnownSymbolSyntactically(t)?e.getPropertyNameForKnownSymbolName(e.idText(t.name)):e.isPropertyNameLiteral(t)?e.getEscapedTextOfIdentifierOrLiteral(t):void 0}switch(n.kind){case 161:return\"__constructor\";case 169:case 164:case 303:return\"__call\";case 170:case 165:return\"__new\";case 166:return\"__index\";case 259:return\"__export\";case 288:return\"export=\";case 208:if(2===e.getAssignmentDeclarationKind(n))return\"export=\";e.Debug.fail(\"Unknown binary declaration kind\");break;case 298:return e.isJSDocConstructSignature(n)?\"__new\":\"__call\";case 155:return e.Debug.assert(298===n.parent.kind,\"Impossible parameter parent kind\",(function(){return\"parent is: \"+(e.SyntaxKind?e.SyntaxKind[n.parent.kind]:n.parent.kind)+\", expected JSDocFunctionType\"})),\"arg\"+n.parent.parameters.indexOf(n)}}function K(n){return e.isNamedDeclaration(n)?e.declarationNameToString(n.name):e.unescapeLeadingUnderscores(e.Debug.assertDefined(j(n)))}function H(t,r,a,i,o,s){e.Debug.assert(!e.hasDynamicName(a));var c,l=e.hasModifier(a,512),u=l&&r?\"default\":j(a);if(void 0===u)c=B(0,\"__missing\");else if(c=t.get(u),2885600&i&&M.set(u,!0),c){if(s&&!c.isReplaceableByMethod)return c;if(c.flags&o)if(c.isReplaceableByMethod)t.set(u,c=B(0,u));else if(!(3&i&&67108864&c.flags)){e.isNamedDeclaration(a)&&(a.name.parent=a);var d=2&c.flags?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,p=!0;(384&c.flags||384&i)&&(d=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,p=!1);var m=!1;e.length(c.declarations)&&(l?(d=e.Diagnostics.A_module_cannot_have_multiple_default_exports,p=!1,m=!0):c.declarations&&c.declarations.length&&258===a.kind&&!a.isExportEquals&&(d=e.Diagnostics.A_module_cannot_have_multiple_default_exports,p=!1,m=!0));var f=e.getNameOfDeclaration(a)||a,_=[];e.forEach(c.declarations,(function(t,r){var a=e.getNameOfDeclaration(t)||t,i=G(a,d,p?K(t):void 0);n.bindDiagnostics.push(m?e.addRelatedInfo(i,G(f,0===r?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):i),m&&_.push(G(a,e.Diagnostics.The_first_export_default_is_here))}));var g=G(f,d,p?K(a):void 0);n.bindDiagnostics.push(m?e.addRelatedInfo.apply(void 0,__spreadArrays([g],_)):g),c=B(0,u)}}else t.set(u,c=B(0,u)),s&&(c.isReplaceableByMethod=!0);return V(c,a,i),c.parent?e.Debug.assert(c.parent===r,\"Existing symbol parent should match new one\"):c.parent=r,c}function W(n,t,r){var a=1&e.getCombinedModifierFlags(n);if(2097152&t)return 261===n.kind||252===n.kind&&a?H(p.symbol.exports,p.symbol,n,t,r):H(p.locals,void 0,n,t,r);if(e.isJSDocTypeAlias(n)&&e.Debug.assert(e.isInJSFile(n)),!e.isAmbientModule(n)&&(a||64&p.flags)||e.isJSDocTypeAlias(n)){if(!p.locals||e.hasModifier(n,512)&&!j(n))return H(p.symbol.exports,p.symbol,n,t,r);var i=111551&t?1048576:0,o=H(p.locals,void 0,n,i,r);return o.exportSymbol=H(p.symbol.exports,p.symbol,n,t,r),n.localSymbol=o,o}return H(p.locals,void 0,n,t,r)}function z(e){if(O)Y(e);else if(536870912&e.transformFlags)O=!0,Y(e),O=!1,F|=e.transformFlags&~m(e.kind);else{var n=F;F=0,Y(e),F=n|d(e,F)}}function q(e){J(e,(function(e){return 243===e.kind?Pe(e):void 0})),J(e,(function(e){return 243!==e.kind?Pe(e):void 0}))}function J(n,t){if(void 0===t&&(t=Pe),void 0!==n)if(O)e.forEach(n,t);else{var r=F;F=0;for(var a=0,i=0,o=n;i<o.length;i++){var s=o[i];t(s),a|=-536870913&s.transformFlags}n.transformFlags=536870912|a,F|=r}}function X(n){e.forEachChild(n,Pe,J)}function Y(n){if(function(n){if(!(1&b.flags))return!1;if(b===P){if((e.isStatementButNotDeclaration(n)&&223!==n.kind||244===n.kind||248===n.kind&&function(e){var n=t(e);return 1===n||2===n&&!!r.preserveConstEnums}(n))&&(b=w,!r.allowUnreachableCode)){var a=e.unreachableCodeIsError(r)&&!(8388608&n.flags)&&(!e.isVariableStatement(n)||!!(3&e.getCombinedNodeFlags(n.declarationList))||n.declarationList.declarations.some((function(e){return!!e.initializer})));!function(n,t){if(e.isStatement(n)&&c(n)&&e.isBlock(n.parent)){var r=n.parent.statements,a=e.sliceAfter(r,n);e.getRangesWhere(a,c,(function(e,n){return t(a[e],a[n-1])}))}else t(n,n)}(n,(function(n,t){return Re(a,n,t,e.Diagnostics.Unreachable_code_detected)}))}}return!0}(n))return X(n),void we(n);switch(n.kind>=224&&n.kind<=240&&!r.allowUnreachableCode&&(n.flowNode=b),n.kind){case 228:!function(e){var n=te(),t=ne(),r=ne();ae(n,b),b=n,me(e.expression,t,r),b=le(t),fe(e.statement,r,n),ae(n,b),b=le(r)}(n);break;case 227:!function(n){var t=te(),r=237===n.parent.kind?e.lastOrUndefined(A):void 0,a=r?r.continueTarget:ne(),i=r?r.breakTarget:ne();ae(t,b),b=t,fe(n.statement,i,a),ae(a,b),b=le(a),me(n.expression,t,i),b=le(i)}(n);break;case 229:!function(e){var n=te(),t=ne(),r=ne();Pe(e.initializer),ae(n,b),b=n,me(e.condition,t,r),b=le(t),fe(e.statement,r,n),Pe(e.incrementor),ae(n,b),b=le(r)}(n);break;case 230:case 231:!function(e){var n=te(),t=ne();Pe(e.expression),ae(n,b),b=n,231===e.kind&&Pe(e.awaitModifier);ae(t,b),Pe(e.initializer),242!==e.initializer.kind&&ye(e.initializer);fe(e.statement,t,n),ae(n,b),b=le(t)}(n);break;case 226:!function(e){var n=ne(),t=ne(),r=ne();me(e.expression,n,t),b=le(n),Pe(e.thenStatement),ae(r,b),b=le(t),Pe(e.elseStatement),ae(r,b),b=le(r)}(n);break;case 234:case 238:!function(e){Pe(e.expression),234===e.kind&&(D=!0,S&&ae(S,b));b=P}(n);break;case 233:case 232:!function(e){if(Pe(e.label),e.label){var n=function(e){if(A)for(var n=0,t=A;n<t.length;n++){var r=t[n];if(r.name===e)return r}return}(e.label.escapedText);n&&(n.referenced=!0,_e(e,n.breakTarget,n.continueTarget))}else _e(e,E,T)}(n);break;case 239:!function(e){var n=ne(),t=b,r=[],a=o;(e.catchClause||e.finallyBlock)&&(o=function(e){return r.push(e),i(e)});Pe(e.tryBlock),o=a,ae(n,b);var s=b,c=P;if(e.catchClause){if(b=t,r.length){var l=ne();ae(l,b);for(var u=0,d=r;u<d.length;u++){var p=d[u];ae(l,p)}b=le(l)}Pe(e.catchClause),ae(n,b),c=b}if(e.finallyBlock){var m=t;if(!e.catchClause&&r.length){var f=ne();ae(f,t);for(var _=0,g=r;_<g.length;_++){p=g[_];ae(f,p)}m=le(f)}var y=i({flags:4096,antecedent:m,lock:{}});if(ae(n,y),b=le(n),Pe(e.finallyBlock),1&b.flags||1&s.flags&&1&c.flags&&(b=s===w||c===w?w:P),!(1&b.flags)){var v=o({flags:8192,antecedent:b});y.lock=v,b=v}}else b=le(n)}(n);break;case 236:!function(n){var t=ne();Pe(n.expression);var r=E,a=C;E=t,C=b,Pe(n.caseBlock),ae(t,b);var i=e.forEach(n.caseBlock.clauses,(function(e){return 276===e.kind}));n.possiblyExhaustive=!i&&!t.antecedents,i||ae(t,oe(C,n,0,0));E=r,C=a,b=le(t)}(n);break;case 250:!function(e){var n=F;F=0;for(var t=e.clauses,a=P,i=0;i<t.length;i++){for(var o=i;!t[i].statements.length&&i+1<t.length;)Pe(t[i]),i++;var s=ne();ae(s,oe(C,e.parent,o,i+1)),ae(s,a),b=le(s);var c=t[i];Pe(c),a=b,1&b.flags||i===t.length-1||!r.noFallthroughCasesInSwitch||(c.fallthroughFlowNode=b)}t.transformFlags=536870912|F,F|=n}(n);break;case 275:!function(e){var n=b;b=C,Pe(e.expression),b=n,J(e.statements)}(n);break;case 225:!function(n){if(Pe(n.expression),195===n.expression.kind){var t=n.expression;e.isDottedName(t.expression)&&(b=function(e,n){return re(e),o({flags:512,antecedent:e,node:n})}(b,t))}}(n);break;case 237:!function(n){var t=te(),a=ne();Pe(n.label),ae(t,b);var i=function(e,n,t){var r={name:e,breakTarget:n,continueTarget:t,referenced:!1};return(A||(A=[])).push(r),r}(n.label.escapedText,a,t);Pe(n.statement),A.pop(),i.referenced||r.allowUnusedLabels||function(e,n,t){Re(e,n,n,t)}(e.unusedLabelIsError(r),n.label,e.Diagnostics.Unused_label);n.statement&&227===n.statement.kind||(ae(a,b),b=le(a))}(n);break;case 206:!function(e){if(53===e.operator){var n=x;x=L,L=n,X(e),L=x,x=n}else X(e),45!==e.operator&&46!==e.operator||ye(e.operand)}(n);break;case 207:!function(e){X(e),(45===e.operator||46===e.operator)&&ye(e.operand)}(n);break;case 208:!function(n){var t=n.operatorToken.kind;if(55===t||56===t||60===t)if(de(n)){var r=ne();ve(n,r,r),b=le(r)}else ve(n,x,L);else{if(X(n),e.isAssignmentOperator(t)&&!e.isAssignmentTarget(n))if(ye(n.left),62===t&&194===n.left.kind)ee(n.left.expression)&&(b=ce(b,n))}}(n);break;case 202:!function(e){X(e),193===e.expression.kind&&ye(e.expression)}(n);break;case 209:!function(e){var n=ne(),t=ne(),r=ne();me(e.condition,n,t),b=le(n),Pe(e.questionToken),Pe(e.whenTrue),ae(r,b),b=le(t),Pe(e.colonToken),Pe(e.whenFalse),ae(r,b),b=le(r)}(n);break;case 241:!function(n){X(n),(n.initializer||e.isForInOrOfStatement(n.parent.parent))&&function n(t){var r=e.isOmittedExpression(t)?void 0:t.name;if(e.isBindingPattern(r))for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];n(o)}else b=se(b,t)}(n)}(n);break;case 193:case 194:!function(n){e.isOptionalChain(n)?Ee(n):X(n)}(n);break;case 195:!function(n){if(e.isOptionalChain(n))Ee(n);else{var t=e.skipParentheses(n.expression);200===t.kind||201===t.kind?(J(n.typeArguments),J(n.arguments),Pe(n.expression)):X(n)}if(193===n.expression.kind){var r=n.expression;ee(r.expression)&&e.isPushOrUnshiftIdentifier(r.name)&&(b=ce(b,n))}}(n);break;case 315:case 308:case 309:!function(e){e.tagName.parent=e,309!==e.kind&&e.fullName&&f(e,e.fullName)}(n);break;case 288:q(n.statements),Pe(n.endOfFileToken);break;case 222:case 249:q(n.statements);break;default:X(n)}we(n)}function Q(n){switch(n.kind){case 75:case 103:case 193:case 194:return Z(n);case 195:return function(e){if(e.arguments)for(var n=0,t=e.arguments;n<t.length;n++){if(Z(t[n]))return!0}if(193===e.expression.kind&&Z(e.expression.expression))return!0;return!1}(n);case 199:return Q(n.expression);case 208:return function(n){switch(n.operatorToken.kind){case 62:return Z(n.left);case 34:case 35:case 36:case 37:return ee(n.left)||ee(n.right)||$(n.right,n.left)||$(n.left,n.right);case 97:return ee(n.left);case 96:return t=n.left,r=n.right,e.isStringLiteralLike(t)&&Q(r);case 27:return Q(n.right)}var t,r;return!1}(n);case 206:return 53===n.operator&&Q(n.operand);case 203:return Q(n.expression)}return!1}function Z(n){return 75===n.kind||103===n.kind||101===n.kind||(e.isPropertyAccessExpression(n)||e.isNonNullExpression(n)||e.isParenthesizedExpression(n))&&Z(n.expression)||e.isElementAccessExpression(n)&&e.isStringOrNumericLiteralLike(n.argumentExpression)&&Z(n.expression)||e.isOptionalChain(n)}function $(n,t){return e.isTypeOfExpression(n)&&ee(n.expression)&&e.isStringLiteralLike(t)}function ee(e){switch(e.kind){case 199:return ee(e.expression);case 208:switch(e.operatorToken.kind){case 62:return ee(e.left);case 27:return ee(e.right)}}return Z(e)}function ne(){return i({flags:4,antecedents:void 0})}function te(){return i({flags:8,antecedents:void 0})}function re(e){e.flags|=1024&e.flags?2048:1024}function ae(n,t){1&t.flags||e.contains(n.antecedents,t)||((n.antecedents||(n.antecedents=[])).push(t),re(t))}function ie(n,t,r){return 1&t.flags?t:r?!(105===r.kind&&64&n||90===r.kind&&32&n)||e.isExpressionOfOptionalChainRoot(r)||e.isNullishCoalesce(r.parent)?Q(r)?(re(t),o({flags:n,antecedent:t,node:r})):t:P:32&n?t:P}function oe(e,n,t,r){return Q(n.expression)?(re(e),o({flags:128,antecedent:e,switchStatement:n,clauseStart:t,clauseEnd:r})):e}function se(e,n){return re(e),o({flags:16,antecedent:e,node:n})}function ce(e,n){return re(e),o({flags:256,antecedent:e,node:n})}function le(e){var n=e.antecedents;return n?1===n.length?n[0]:e:P}function ue(e){for(;;)if(199===e.kind)e=e.expression;else{if(206!==e.kind||53!==e.operator)return 208===e.kind&&(55===e.operatorToken.kind||56===e.operatorToken.kind||60===e.operatorToken.kind);e=e.operand}}function de(n){for(;e.isParenthesizedExpression(n.parent)||e.isPrefixUnaryExpression(n.parent)&&53===n.parent.operator;)n=n.parent;return!(function(e){var n=e.parent;switch(n.kind){case 226:case 228:case 227:return n.expression===e;case 229:case 209:return n.condition===e}return!1}(n)||ue(n.parent)||e.isOptionalChain(n.parent)&&n.parent.expression===n)}function pe(e,n,t,r){var a=x,i=L;x=t,L=r,e(n),x=a,L=i}function me(n,t,r){pe(Pe,n,t,r),n&&(ue(n)||e.isOptionalChain(n)&&e.isOutermostOptionalChain(n))||(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}function fe(e,n,t){var r=E,a=T;E=n,T=t,Pe(e),E=r,T=a}function _e(e,n,t){var r=233===e.kind?n:t;r&&(ae(r,b),b=P)}function ge(e){208===e.kind&&62===e.operatorToken.kind?ye(e.left):ye(e)}function ye(e){if(Z(e))b=se(b,e);else if(191===e.kind)for(var n=0,t=e.elements;n<t.length;n++){var r=t[n];212===r.kind?ye(r.expression):ge(r)}else if(192===e.kind)for(var a=0,i=e.properties;a<i.length;a++){var o=i[a];279===o.kind?ge(o.initializer):280===o.kind?ye(o.name):281===o.kind&&ye(o.expression)}}function ve(e,n,t){var r=ne();55===e.operatorToken.kind?me(e.left,r,t):me(e.left,n,r),b=le(r),Pe(e.operatorToken),me(e.right,n,t)}function he(e){switch(Pe(e.questionDotToken),e.kind){case 193:Pe(e.name);break;case 194:Pe(e.argumentExpression);break;case 195:J(e.typeArguments),J(e.arguments)}}function be(n,t,r){var a=n.questionDotToken?ne():void 0;!function(n,t,r){pe(Pe,n,t,r),e.isOptionalChain(n)&&!e.isOutermostOptionalChain(n)||(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}(n.expression,a||t,r),a&&(b=le(a)),pe(he,n,t,r),e.isOutermostOptionalChain(n)&&(ae(t,ie(32,b,n)),ae(r,ie(64,b,n)))}function Ee(e){if(de(e)){var n=ne();be(e,n,n),b=le(n)}else be(e,x,L)}function Te(n){switch(n.kind){case 213:case 244:case 247:case 192:case 172:case 302:case 272:return 1;case 245:return 65;case 248:case 246:case 185:return 33;case 288:return 37;case 160:if(e.isObjectLiteralOrClassExpressionMethod(n))return 173;case 161:case 243:case 159:case 162:case 163:case 164:case 303:case 298:case 169:case 165:case 166:case 170:return 45;case 200:case 201:return 61;case 249:return 4;case 158:return n.initializer?4:0;case 278:case 229:case 230:case 231:case 250:return 2;case 222:return e.isFunctionLike(n.parent)?0:2}return 0}function Se(e){y&&(y.nextContainer=e),y=e}function xe(t,r,a){switch(p.kind){case 248:return W(t,r,a);case 288:return function(t,r,a){return e.isExternalModule(n)?W(t,r,a):H(n.locals,void 0,t,r,a)}(t,r,a);case 213:case 244:return function(n,t,r){return e.hasModifier(n,32)?H(p.symbol.exports,p.symbol,n,t,r):H(p.symbol.members,p.symbol,n,t,r)}(t,r,a);case 247:return H(p.symbol.exports,p.symbol,t,r,a);case 172:case 302:case 192:case 245:case 272:return H(p.symbol.members,p.symbol,t,r,a);case 169:case 170:case 164:case 165:case 303:case 166:case 160:case 159:case 161:case 162:case 163:case 243:case 200:case 201:case 298:case 315:case 308:case 246:case 185:return H(p.locals,void 0,t,r,a)}}function Le(n){8388608&n.flags&&!function(n){var t=e.isSourceFile(n)?n:e.tryCast(n.body,e.isModuleBlock);return!!t&&t.statements.some((function(n){return e.isExportDeclaration(n)||e.isExportAssignment(n)}))}(n)?n.flags|=64:n.flags&=-65}function Ce(e){var n=t(e),r=0!==n;return xe(e,r?512:1024,r?110735:0),n}function Ae(e,n,t){var r=B(n,t);return 106508&n&&(r.parent=p.symbol),V(r,e,n),r}function De(n,t,r){switch(g.kind){case 248:W(n,t,r);break;case 288:if(e.isExternalOrCommonJsModule(p)){W(n,t,r);break}default:g.locals||(g.locals=e.createSymbolTable(),Se(g)),H(g.locals,void 0,n,t,r)}}function ke(t){!(N&&t.originalKeywordKind>=112&&t.originalKeywordKind<=120)||e.isIdentifierName(t)||8388608&t.flags||4194304&t.flags||n.parseDiagnostics.length||n.bindDiagnostics.push(G(t,function(t){if(e.getContainingClass(t))return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}(t),e.declarationNameToString(t)))}function Ne(t,r){if(r&&75===r.kind){var a=r;if(o=a,e.isIdentifier(o)&&(\"eval\"===o.escapedText||\"arguments\"===o.escapedText)){var i=e.getErrorSpanForNode(n,r);n.bindDiagnostics.push(e.createFileDiagnostic(n,i.start,i.length,function(t){if(e.getContainingClass(t))return e.Diagnostics.Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Invalid_use_of_0_in_strict_mode}(t),e.idText(a)))}}var o}function Ie(e){N&&Ne(e,e.name)}function Me(t){if(a<2&&288!==g.kind&&248!==g.kind&&!e.isFunctionLike(g)){var r=e.getErrorSpanForNode(n,t);n.bindDiagnostics.push(e.createFileDiagnostic(n,r.start,r.length,function(t){return e.getContainingClass(t)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:n.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}(t)))}}function Oe(t,r,a,i,o){var s=e.getSpanOfTokenAtPosition(n,t.pos);n.bindDiagnostics.push(e.createFileDiagnostic(n,s.start,s.length,r,a,i,o))}function Re(t,r,a,i){!function(t,r,a){var i=e.createFileDiagnostic(n,r.pos,r.end-r.pos,a);t?n.bindDiagnostics.push(i):n.bindSuggestionDiagnostics=e.append(n.bindSuggestionDiagnostics,__assign(__assign({},i),{category:e.DiagnosticCategory.Suggestion}))}(t,{pos:e.getTokenPosOfNode(r,n),end:a.end},i)}function Pe(t){if(t){t.parent=s;var a=N;if(function(t){switch(t.kind){case 75:if(t.isInJSDocNamespace){for(var a=t.parent;a&&!e.isJSDocTypeAlias(a);)a=a.parent;De(a,524288,788968);break}case 103:return b&&(e.isExpression(t)||280===s.kind)&&(t.flowNode=b),ke(t);case 193:case 194:var i=t;b&&Z(i)&&(i.flowNode=b),e.isSpecialPropertyDeclaration(i)&&function(n){103===n.expression.kind?Ue(n):e.isBindableStaticAccessExpression(n)&&288===n.parent.parent.kind&&(e.isPrototypeAccess(n.expression)?He(n,n.parent):We(n))}(i),e.isInJSFile(i)&&n.commonJsModuleIndicator&&e.isModuleExportsAccessExpression(i)&&!u(g,\"module\")&&H(n.locals,void 0,i.expression,134217729,111550);break;case 208:switch(e.getAssignmentDeclarationKind(t)){case 1:Ve(t);break;case 2:!function(t){if(!Be(t))return;var r=e.getRightMostAssignedExpression(t.right);if(e.isEmptyObjectLiteral(r)||p===n&&l(n,r))return;var a=e.exportAssignmentIsAlias(t)?2097152:1049092;U(H(n.symbol.exports,n.symbol,t,67108864|a,0),t)}(t);break;case 3:He(t.left,t);break;case 6:!function(e){e.left.parent=e,e.right.parent=e,Xe(e.left.expression,e.left,!1,!0)}(t);break;case 4:Ue(t);break;case 5:!function(t){var r=Ye(t.left.expression);if(!e.isInJSFile(t)&&!e.isFunctionSymbol(r))return;if(t.left.parent=t,t.right.parent=t,e.isIdentifier(t.left.expression)&&p===n&&l(n,t.left.expression))Ve(t);else if(e.hasDynamicName(t)){Ae(t,67108868,\"__computed\");var a=ze(r,t.left.expression,Je(t.left),!1,!1);Ke(t,a)}else We(e.cast(t.left,e.isBindableStaticAccessExpression))}(t);break;case 0:break;default:e.Debug.fail(\"Unknown binary expression special property assignment kind\")}return function(n){N&&e.isLeftHandSideExpression(n.left)&&e.isAssignmentOperator(n.operatorToken.kind)&&Ne(n,n.left)}(t);case 278:return function(e){N&&e.variableDeclaration&&Ne(e,e.variableDeclaration.name)}(t);case 202:return function(t){if(N&&75===t.expression.kind){var r=e.getErrorSpanForNode(n,t.expression);n.bindDiagnostics.push(e.createFileDiagnostic(n,r.start,r.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}(t);case 8:return function(t){N&&32&t.numericLiteralFlags&&n.bindDiagnostics.push(G(t,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}(t);case 207:return function(e){N&&Ne(e,e.operand)}(t);case 206:return function(e){N&&(45!==e.operator&&46!==e.operator||Ne(e,e.operand))}(t);case 235:return function(n){N&&Oe(n,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}(t);case 237:return function(n){N&&r.target>=2&&(e.isDeclarationStatement(n.statement)||e.isVariableStatement(n.statement))&&Oe(n.label,e.Diagnostics.A_label_is_not_allowed_here)}(t);case 182:return void(h=!0);case 167:break;case 154:return function(n){if(e.isJSDocTemplateTag(n.parent)){var t=e.find(n.parent.parent.tags,e.isJSDocTypeAlias)||e.getHostSignatureFromJSDoc(n.parent);t?(t.locals||(t.locals=e.createSymbolTable()),H(t.locals,void 0,n,262144,526824)):xe(n,262144,526824)}else if(180===n.parent.kind){var r=function(n){var t=e.findAncestor(n,(function(n){return n.parent&&e.isConditionalTypeNode(n.parent)&&n.parent.extendsType===n}));return t&&t.parent}(n.parent);r?(r.locals||(r.locals=e.createSymbolTable()),H(r.locals,void 0,n,262144,526824)):Ae(n,262144,j(n))}else xe(n,262144,526824)}(t);case 155:return $e(t);case 241:return Ze(t);case 190:return t.flowNode=b,Ze(t);case 158:case 157:return function(e){return en(e,4|(e.questionToken?16777216:0),0)}(t);case 279:case 280:return en(t,4,0);case 282:return en(t,8,900095);case 164:case 165:case 166:return xe(t,131072,0);case 160:case 159:return en(t,8192|(t.questionToken?16777216:0),e.isObjectLiteralMethod(t)?0:103359);case 243:return function(t){n.isDeclarationFile||8388608&t.flags||e.isAsyncFunction(t)&&(k|=2048);Ie(t),N?(Me(t),De(t,16,110991)):xe(t,16,110991)}(t);case 161:return xe(t,16384,0);case 162:return en(t,32768,46015);case 163:return en(t,65536,78783);case 169:case 298:case 303:case 170:return function(n){var t=B(131072,j(n));V(t,n,131072);var r=B(2048,\"__type\");V(r,n,2048),r.members=e.createSymbolTable(),r.members.set(t.escapedName,t)}(t);case 172:case 302:case 185:return function(e){return Ae(e,2048,\"__type\")}(t);case 307:return function(n){X(n);var t=e.getHostSignatureFromJSDoc(n);t&&160!==t.kind&&V(t.symbol,t,32)}(t);case 192:return function(t){var r;if(function(e){e[e.Property=1]=\"Property\",e[e.Accessor=2]=\"Accessor\"}(r||(r={})),N)for(var a=e.createUnderscoreEscapedMap(),i=0,o=t.properties;i<o.length;i++){var s=o[i];if(281!==s.kind&&75===s.name.kind){var c=s.name,l=279===s.kind||280===s.kind||160===s.kind?1:2,u=a.get(c.escapedText);if(u){if(1===l&&1===u){var d=e.getErrorSpanForNode(n,c);n.bindDiagnostics.push(e.createFileDiagnostic(n,d.start,d.length,e.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode))}}else a.set(c.escapedText,l)}}return Ae(t,4096,\"__object\")}(t);case 200:case 201:return function(t){n.isDeclarationFile||8388608&t.flags||e.isAsyncFunction(t)&&(k|=2048);b&&(t.flowNode=b);Ie(t);var r=t.name?t.name.escapedText:\"__function\";return Ae(t,16,r)}(t);case 195:switch(e.getAssignmentDeclarationKind(t)){case 7:return function(e){var n=Ye(e.arguments[0]),t=288===e.parent.parent.kind;n=ze(n,e.arguments[0],t,!1,!1),qe(e,n,!1)}(t);case 8:return function(e){if(!Be(e))return;var n=Qe(e.arguments[0],void 0,(function(e,n){return n&&V(n,e,67110400),n}));if(n){H(n.exports,n,e,1048580,0)}}(t);case 9:return function(e){var n=Ye(e.arguments[0].expression);n&&n.valueDeclaration&&V(n,n.valueDeclaration,32);qe(e,n,!0)}(t);case 0:break;default:return e.Debug.fail(\"Unknown call expression assignment declaration kind\")}e.isInJSFile(t)&&function(t){!n.commonJsModuleIndicator&&e.isRequireCall(t,!1)&&Be(t)}(t);break;case 213:case 244:return N=!0,function(t){if(244===t.kind)De(t,32,899503);else{var r=t.name?t.name.escapedText:\"__class\";Ae(t,32,r),t.name&&M.set(t.name.escapedText,!0)}var a=t.symbol,i=B(4194308,\"prototype\"),o=a.exports.get(i.escapedName);o&&(t.name&&(t.name.parent=t),n.bindDiagnostics.push(G(o.declarations[0],e.Diagnostics.Duplicate_identifier_0,e.symbolName(i))));a.exports.set(i.escapedName,i),i.parent=a}(t);case 245:return De(t,64,788872);case 246:return De(t,524288,788968);case 247:return function(n){return e.isEnumConst(n)?De(n,128,899967):De(n,256,899327)}(t);case 248:return function(t){if(Le(t),e.isAmbientModule(t))if(e.hasModifier(t,1)&&Oe(t,e.Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible),e.isModuleAugmentationExternal(t))Ce(t);else{var r=void 0;if(10===t.name.kind){var a=t.name.text;e.hasZeroOrOneAsteriskCharacter(a)?r=e.tryParsePattern(a):Oe(t.name,e.Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,a)}var i=xe(t,512,110735);n.patternAmbientModules=e.append(n.patternAmbientModules,r&&{pattern:r,symbol:i})}else{var o=Ce(t);if(0!==o)(i=t.symbol).constEnumOnlyModule=!(304&i.flags)&&2===o&&!1!==i.constEnumOnlyModule}}(t);case 272:return function(e){return Ae(e,4096,\"__jsxAttributes\")}(t);case 271:return function(e,n,t){return xe(e,n,t)}(t,4,0);case 252:case 255:case 257:case 261:return xe(t,2097152,2097152);case 251:return function(t){t.modifiers&&t.modifiers.length&&n.bindDiagnostics.push(G(t,e.Diagnostics.Modifiers_cannot_appear_here));var r=e.isSourceFile(t.parent)?e.isExternalModule(t.parent)?t.parent.isDeclarationFile?void 0:e.Diagnostics.Global_module_exports_may_only_appear_in_declaration_files:e.Diagnostics.Global_module_exports_may_only_appear_in_module_files:e.Diagnostics.Global_module_exports_may_only_appear_at_top_level;r?n.bindDiagnostics.push(G(t,r)):(n.symbol.globalExports=n.symbol.globalExports||e.createSymbolTable(),H(n.symbol.globalExports,n.symbol,t,2097152,2097152))}(t);case 254:return function(e){e.name&&xe(e,2097152,2097152)}(t);case 259:return function(e){p.symbol&&p.symbol.exports?e.exportClause||H(p.symbol.exports,p.symbol,e,8388608,0):Ae(e,8388608,j(e))}(t);case 258:return function(n){if(p.symbol&&p.symbol.exports){var t=e.exportAssignmentIsAlias(n)?2097152:4,r=H(p.symbol.exports,p.symbol,n,t,67108863);n.isExportEquals&&U(r,n)}else Ae(n,2097152,j(n))}(t);case 288:return Fe(t.statements),function(){if(Le(n),e.isExternalModule(n))Ge();else if(e.isJsonSourceFile(n)){Ge();var t=n.symbol;H(n.symbol.exports,n.symbol,n,4,67108863),n.symbol=t}}();case 222:if(!e.isFunctionLike(t.parent))return;case 249:return Fe(t.statements);case 310:if(303===t.parent.kind)return $e(t);if(302!==t.parent.kind)break;case 316:var o=t,c=o.isBracketed||o.typeExpression&&297===o.typeExpression.type.kind?16777220:4;return xe(o,c,0);case 315:case 308:case 309:(v||(v=[])).push(t)}}(t),t.kind>151){var c=s;s=t;var m=Te(t);0===m?z(t):function(n,t){var r=p,a=_,s=g;if(1&t?(201!==n.kind&&(_=p),p=g=n,32&t&&(p.locals=e.createSymbolTable()),Se(p)):2&t&&((g=n).locals=void 0),4&t){var c=o,l=b,u=E,d=T,m=S,f=A,y=D,v=16&t&&!e.hasModifier(n,256)&&!n.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(n);v||(b=i({flags:2}),144&t&&(b.node=n)),S=v||161===n.kind?ne():void 0,E=void 0,T=void 0,A=void 0,D=!1,o=i,z(n),n.flags&=-2817,!(1&b.flags)&&8&t&&e.nodeIsPresent(n.body)&&(n.flags|=256,D&&(n.flags|=512),n.endFlowNode=b),288===n.kind&&(n.flags|=k),S&&(ae(S,b),b=le(S),161===n.kind&&(n.returnFlowNode=b)),v||(b=l),E=u,T=d,S=m,A=f,D=y,o=c}else 64&t?(h=!1,z(n),n.flags=h?128|n.flags:-129&n.flags):z(n);p=r,_=a,g=s}(t,m),s=c}else if(!O&&0==(536870912&t.transformFlags)){F|=d(t,0);c=s;1===t.kind&&(s=t),we(t),s=c}N=a}}function we(n){if(e.hasJSDocNodes(n))if(e.isInJSFile(n))for(var t=0,r=n.jsDoc;t<r.length;t++){Pe(r[t])}else for(var a=0,i=n.jsDoc;a<i.length;a++){f(n,i[a])}}function Fe(t){if(!N)for(var r=0,a=t;r<a.length;r++){var i=a[r];if(!e.isPrologueDirective(i))return;if(o=i,s=void 0,'\"use strict\"'===(s=e.getSourceTextOfNodeFromSourceFile(n,o.expression))||\"'use strict'\"===s)return void(N=!0)}var o,s}function Ge(){Ae(n,512,'\"'+e.removeFileExtension(n.fileName)+'\"')}function Be(e){return!n.externalModuleIndicator&&(n.commonJsModuleIndicator||(n.commonJsModuleIndicator=e,Ge()),!0)}function Ve(n){if(Be(n)){var t=Qe(n.left.expression,void 0,(function(e,n){return n&&V(n,e,67110400),n}));if(t){var r=e.isClassExpression(n.right)?1048612:1048580;H(t.exports,t,n.left,r,0)}}}function Ue(n){e.Debug.assert(e.isInJSFile(n));var t=e.getThisContainer(n,!1);switch(t.kind){case 243:case 200:var r=t.symbol;if(e.isBinaryExpression(t.parent)&&62===t.parent.operatorToken.kind){var a=t.parent.left;e.isBindableStaticAccessExpression(a)&&e.isPrototypeAccess(a.expression)&&(r=Ye(a.expression.expression,_))}r&&r.valueDeclaration&&(r.members=r.members||e.createSymbolTable(),e.hasDynamicName(n)?je(n,r):H(r.members,r,n,67108868,0),V(r,r.valueDeclaration,32));break;case 161:case 158:case 160:case 162:case 163:var i=t.parent,o=e.hasModifier(t,32)?i.symbol.exports:i.symbol.members;e.hasDynamicName(n)?je(n,i.symbol):H(o,i.symbol,n,67108868,0,!0);break;case 288:if(e.hasDynamicName(n))break;t.commonJsModuleIndicator?H(t.symbol.exports,t.symbol,n,1048580,0):xe(n,1,111550);break;default:e.Debug.failBadSyntaxKind(t)}}function je(e,n){Ae(e,4,\"__computed\"),Ke(e,n)}function Ke(n,t){t&&(t.assignmentDeclarationMembers||(t.assignmentDeclarationMembers=e.createMap())).set(\"\"+e.getNodeId(n),n)}function He(e,n){var t=e.expression,r=t.expression;e.parent=n,r.parent=t,t.parent=e,Xe(r,e,!0,!0)}function We(e){e.expression.parent=e,Xe(e.expression,e,!1,!1)}function ze(t,r,a,i,o){if(a&&!i){t=Qe(r,t,(function(t,r,a){return r?(V(r,t,67110400),r):H(a?a.exports:n.jsGlobalAugmentations||(n.jsGlobalAugmentations=e.createSymbolTable()),a,t,67110400,110735)}))}return o&&t&&t.valueDeclaration&&V(t,t.valueDeclaration,32),t}function qe(n,t,r){if(t&&function(n){if(1072&n.flags)return!0;var t=n.valueDeclaration;if(t&&e.isCallExpression(t))return!!e.getAssignedExpandoInitializer(t);var r=t?e.isVariableDeclaration(t)?t.initializer:e.isBinaryExpression(t)?t.right:e.isPropertyAccessExpression(t)&&e.isBinaryExpression(t.parent)?t.parent.right:void 0:void 0;if(r=r&&e.getRightMostAssignedExpression(r)){var a=e.isPrototypeAccess(e.isVariableDeclaration(t)?t.name:e.isBinaryExpression(t)?t.left:t);return!!e.getExpandoInitializer(!e.isBinaryExpression(r)||56!==r.operatorToken.kind&&60!==r.operatorToken.kind?r:r.right,a)}return!1}(t)){var a=r?t.members||(t.members=e.createSymbolTable()):t.exports||(t.exports=e.createSymbolTable()),i=0,o=0;e.isFunctionLikeDeclaration(e.getAssignedExpandoInitializer(n))?(i=8192,o=103359):e.isCallExpression(n)&&e.isBindableObjectDefinePropertyCall(n)&&(e.some(n.arguments[2].properties,(function(n){var t=e.getNameOfDeclaration(n);return!!t&&e.isIdentifier(t)&&\"set\"===e.idText(t)}))&&(i|=65540,o|=78783),e.some(n.arguments[2].properties,(function(n){var t=e.getNameOfDeclaration(n);return!!t&&e.isIdentifier(t)&&\"get\"===e.idText(t)}))&&(i|=32772,o|=46015)),0===i&&(i=4,o=0),H(a,t,n,67108864|i,-67108865&o)}}function Je(n){return e.isBinaryExpression(n.parent)?288===function(n){for(;e.isBinaryExpression(n.parent);)n=n.parent;return n.parent}(n.parent).parent.kind:288===n.parent.parent.kind}function Xe(e,n,t,r){var a=Ye(e),i=Je(n);qe(n,a=ze(a,n.expression,i,t,r),t)}function Ye(n,t){if(void 0===t&&(t=p),e.isIdentifier(n))return u(t,n.escapedText);var r=Ye(n.expression);return r&&r.exports&&r.exports.get(e.getElementOrPropertyAccessName(n))}function Qe(t,r,a){if(l(n,t))return n.symbol;if(e.isIdentifier(t))return a(t,Ye(t),r);var i=Qe(t.expression,r,a);return a(e.getNameOrArgument(t),i&&i.exports&&i.exports.get(e.getElementOrPropertyAccessName(t)),i)}function Ze(n){N&&Ne(n,n.name),e.isBindingPattern(n.name)||(e.isBlockOrCatchScoped(n)?De(n,2,111551):e.isParameterDeclaration(n)?xe(n,1,111551):xe(n,1,111550))}function $e(n){if((310!==n.kind||303===p.kind)&&(!N||8388608&n.flags||Ne(n,n.name),e.isBindingPattern(n.name)?Ae(n,1,\"__\"+n.parent.parameters.indexOf(n)):xe(n,1,111551),e.isParameterPropertyDeclaration(n,n.parent))){var t=n.parent.parent;H(t.symbol.members,t.symbol,n,4|(n.questionToken?16777216:0),0)}}function en(t,r,a){return n.isDeclarationFile||8388608&t.flags||!e.isAsyncFunction(t)||(k|=2048),b&&e.isObjectLiteralOrClassExpressionMethod(t)&&(t.flowNode=b),e.hasDynamicName(t)?Ae(t,r,\"__computed\"):xe(t,r,a)}}();function c(n){return!(e.isFunctionDeclaration(n)||function(n){switch(n.kind){case 245:case 246:return!0;case 248:return 1!==t(n);case 247:return e.hasModifier(n,2048);default:return!1}}(n)||e.isEnumDeclaration(n)||e.isVariableStatement(n)&&!(3&e.getCombinedNodeFlags(n))&&n.declarationList.declarations.some((function(e){return!e.initializer})))}function l(n,t){for(var r=0,a=[t];a.length&&r<100;){if(r++,t=a.shift(),e.isExportsIdentifier(t)||e.isModuleExportsAccessExpression(t))return!0;if(e.isIdentifier(t)){var i=u(n,t.escapedText);if(i&&i.valueDeclaration&&e.isVariableDeclaration(i.valueDeclaration)&&i.valueDeclaration.initializer){var o=i.valueDeclaration.initializer;a.push(o),e.isAssignmentExpression(o,!0)&&(a.push(o.left),a.push(o.right))}}}return!1}function u(n,t){var r=n.locals&&n.locals.get(t);return r?r.exportSymbol||r:e.isSourceFile(n)&&n.jsGlobalAugmentations&&n.jsGlobalAugmentations.has(t)?n.jsGlobalAugmentations.get(t):n.symbol&&n.symbol.exports&&n.symbol.exports.get(t)}function d(n,t){var r=n.kind;switch(r){case 195:return function(n,t){var r=t,a=e.skipOuterExpressions(n.expression),i=n.expression;32&n.flags&&(r|=4);n.typeArguments&&(r|=1);(4096&t||e.isSuperOrSuperProperty(a))&&(r|=128,e.isSuperProperty(a)&&(r|=2048));95===i.kind&&(r|=524288);return n.transformFlags=536870912|r,-536875009&r}(n,t);case 196:return function(e,n){var t=n;e.typeArguments&&(t|=1);4096&n&&(t|=128);return e.transformFlags=536870912|t,-536875009&t}(n,t);case 248:return function(n,t){var r=1;0==(2&e.getModifierFlags(n))&&(r|=t);return n.transformFlags=536870912|r,-537168897&r}(n,t);case 199:return function(e,n){var t=n,r=e.expression.kind;216!==r&&198!==r||(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 208:return function(e,n){var t=n,r=e.operatorToken.kind,a=e.left.kind;60===r?t|=4:62===r&&192===a?t|=656:62===r&&191===a?t|=640:42!==r&&66!==r||(t|=64);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 225:return function(e,n){var t=n;return e.transformFlags=536870912|t,-536870913&t}(n,t);case 155:return function(n,t){var r=t,a=n.name,i=n.initializer,o=n.dotDotDotToken;(n.questionToken||n.type||1024&t&&e.some(n.decorators)||e.isThisIdentifier(a))&&(r|=1);e.hasModifier(n,92)&&(r|=1025);8192&t&&(r|=16);(65536&t||i||o)&&(r|=128);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 201:return function(n,t){var r=128|t;(e.hasModifier(n,2270)||n.typeParameters||n.type)&&(r|=1);e.hasModifier(n,256)&&(r|=32);8192&t&&(r|=16);return n.transformFlags=536870912|r,-537371649&r}(n,t);case 200:return function(n,t){var r=t;(e.hasModifier(n,2270)||n.typeParameters||n.type)&&(r|=1);e.hasModifier(n,256)&&(r|=n.asteriskToken?16:32);8192&t&&(r|=16);n.asteriskToken&&(r|=256);return n.transformFlags=536870912|r,-537373697&r}(n,t);case 243:return function(n,t){var r,a=e.getModifierFlags(n);!n.body||2&a?r=1:(r=262144|t,(2270&a||n.typeParameters||n.type)&&(r|=1),256&a&&(r|=n.asteriskToken?16:32),8192&t&&(r|=16),n.asteriskToken&&(r|=256));return n.transformFlags=536870912|r,-537373697&r}(n,t);case 241:return function(e,n){var t=n;t|=65664,8192&n&&(t|=16);e.type&&(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 242:return function(e,n){var t=262144|n;65536&n&&(t|=128);3&e.flags&&(t|=32896);return e.transformFlags=536870912|t,-536944641&t}(n,t);case 224:return function(n,t){var r,a=n.declarationList.transformFlags;e.hasModifier(n,2)?r=1:(r=t,65536&a&&(r|=128));return n.transformFlags=536870912|r,-536870913&r}(n,t);case 237:return function(n,t){var r=t;32768&t&&e.isIterationStatement(n,!0)&&(r|=128);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 244:return function(n,t){var r;e.hasModifier(n,2)?r=1:(r=128|t,(1024&t||n.typeParameters)&&(r|=1));return n.transformFlags=536870912|r,-536888321&r}(n,t);case 213:return function(e,n){var t=128|n;(1024&n||e.typeParameters)&&(t|=1);return e.transformFlags=536870912|t,-536888321&t}(n,t);case 277:return function(n,t){var r=t;switch(n.token){case 89:r|=128;break;case 112:r|=1;break;default:e.Debug.fail(\"Unexpected token for heritage clause\")}return n.transformFlags=536870912|r,-536870913&r}(n,t);case 278:return function(n,t){var r=t;n.variableDeclaration?e.isBindingPattern(n.variableDeclaration.name)&&(r|=128):r|=8;return n.transformFlags=536870912|r,-536879105&r}(n,t);case 215:return function(e,n){var t=128|n;e.typeArguments&&(t|=1);return e.transformFlags=536870912|t,-536870913&t}(n,t);case 161:return function(n,t){var r=t;!e.hasModifier(n,2270)&&n.body||(r|=1);8192&t&&(r|=16);return n.transformFlags=536870912|r,-537372673&r}(n,t);case 158:return function(n,t){var r=1048576|t;(e.some(n.decorators)||e.hasModifier(n,2270)||n.type||n.questionToken)&&(r|=1);(e.isComputedPropertyName(n.name)||e.hasStaticModifier(n)&&n.initializer)&&(r|=1024);return n.transformFlags=536870912|r,p(n.name,-536872961&r)}(n,t);case 160:return function(n,t){var r=128|t;(n.decorators||e.hasModifier(n,2270)||n.typeParameters||n.type||!n.body||n.questionToken)&&(r|=1);8192&t&&(r|=16);e.hasModifier(n,256)&&(r|=n.asteriskToken?16:32);n.asteriskToken&&(r|=256);return n.transformFlags=536870912|r,p(n.name,-537372673&r)}(n,t);case 162:case 163:return function(n,t){var r=t;(n.decorators||e.hasModifier(n,2270)||n.type||!n.body)&&(r|=1);8192&t&&(r|=16);return n.transformFlags=536870912|r,p(n.name,-537372673&r)}(n,t);case 252:return function(n,t){var r=t;e.isExternalModuleImportEqualsDeclaration(n)||(r|=1);return n.transformFlags=536870912|r,-536870913&r}(n,t);case 193:case 194:return function(e,n){var t=n;32&e.flags&&(t|=4);101===e.expression.kind&&(t|=48);return e.transformFlags=536870912|t,-536870913&t}(n,t);default:return function(e,n,t){var r=t,a=536870912;switch(n){case 125:case 205:r|=48;break;case 198:case 216:case 319:r|=1,a=536870912;break;case 118:case 116:case 117:case 121:case 129:case 80:case 247:case 282:case 217:case 137:r|=1;break;case 264:case 265:case 266:case 11:case 267:case 268:case 269:case 270:case 271:case 272:case 273:case 274:r|=2;break;case 14:case 15:case 16:case 17:case 210:case 197:case 280:case 119:case 218:r|=128;break;case 10:e.hasExtendedUnicodeEscape&&(r|=128);break;case 8:384&e.numericLiteralFlags&&(r|=128);break;case 9:r|=4;break;case 231:e.awaitModifier&&(r|=16),r|=128;break;case 211:r|=131216;break;case 124:case 139:case 150:case 136:case 140:case 142:case 127:case 143:case 109:case 154:case 157:case 159:case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 245:case 246:case 182:case 183:case 184:case 185:case 186:case 251:r=1,a=-2;break;case 153:r|=16384;break;case 212:r|=4224;break;case 281:r|=8208;break;case 101:r|=128,a=536870912;break;case 103:r|=2048;break;case 188:r|=65664,4096&t&&(r|=8208),a=536875008;break;case 189:r|=65664,a=536875008;break;case 190:r|=128,e.dotDotDotToken&&(r|=4096);break;case 156:r|=1025;break;case 192:a=536896512,16384&t&&(r|=128),8192&t&&(r|=16);break;case 191:a=536875008;break;case 227:case 228:case 229:case 230:32768&t&&(r|=128);break;case 288:break;case 234:r|=262160;break;case 232:case 233:r|=262144}return e.transformFlags=536870912|r,r&~a}(n,r,t)}}function p(e,n){return n|2048&e.transformFlags}function m(e){if(e>=167&&e<=187)return-2;switch(e){case 195:case 196:case 191:return 536875008;case 248:return 537168896;case 155:return 536870912;case 201:return 537371648;case 200:case 243:return 537373696;case 242:return 536944640;case 244:case 213:return 536888320;case 161:return 537372672;case 160:case 162:case 163:return 537372672;case 124:case 139:case 150:case 136:case 142:case 140:case 127:case 143:case 109:case 154:case 157:case 159:case 164:case 165:case 166:case 245:case 246:return-2;case 192:return 536896512;case 278:return 536879104;case 188:case 189:return 536875008;case 198:case 216:case 319:case 199:case 101:return 536870912;case 193:case 194:default:return 536870912}}function f(n,t){t.parent=n,e.forEachChild(t,(function(e){return f(t,e)}))}e.bindSourceFile=function(n,t){e.performance.mark(\"beforeBind\"),e.perfLogger.logStartBindFile(\"\"+n.fileName),s(n,t),e.perfLogger.logStopBindFile(),e.performance.mark(\"afterBind\"),e.performance.measure(\"Bind\",\"beforeBind\",\"afterBind\")},e.isExportsOrModuleExportsOrAlias=l,e.computeTransformFlagsForNode=d,e.getTransformFlagsSubtreeExclusions=m}(ts||(ts={})),function(e){e.createGetSymbolWalker=function(n,t,r,a,i,o,s,c,l,u,d){return function(p){void 0===p&&(p=function(){return!0});var m=[],f=[];return{walkType:function(n){try{return _(n),{visitedTypes:e.getOwnValues(m),visitedSymbols:e.getOwnValues(f)}}finally{e.clear(m),e.clear(f)}},walkSymbol:function(n){try{return v(n),{visitedTypes:e.getOwnValues(m),visitedSymbols:e.getOwnValues(f)}}finally{e.clear(m),e.clear(f)}}};function _(n){if(n&&(!m[n.id]&&(m[n.id]=n,!v(n.symbol)))){if(524288&n.flags){var t=n,r=t.objectFlags;4&r&&function(n){_(n.target),e.forEach(d(n),_)}(n),32&r&&function(e){_(e.typeParameter),_(e.constraintType),_(e.templateType),_(e.modifiersType)}(n),3&r&&(y(i=n),e.forEach(i.typeParameters,_),e.forEach(a(i),_),_(i.thisType)),24&r&&y(t)}var i;262144&n.flags&&function(e){_(l(e))}(n),3145728&n.flags&&function(n){e.forEach(n.types,_)}(n),4194304&n.flags&&function(e){_(e.type)}(n),8388608&n.flags&&function(e){_(e.objectType),_(e.indexType),_(e.constraint)}(n)}}function g(a){var i=t(a);i&&_(i.type),e.forEach(a.typeParameters,_);for(var o=0,s=a.parameters;o<s.length;o++){v(s[o])}_(n(a)),_(r(a))}function y(e){_(c(e,0)),_(c(e,1));for(var n=i(e),t=0,r=n.callSignatures;t<r.length;t++){g(r[t])}for(var a=0,o=n.constructSignatures;a<o.length;a++){g(o[a])}for(var s=0,l=n.properties;s<l.length;s++){v(l[s])}}function v(n){if(!n)return!1;var t=e.getSymbolId(n);return!f[t]&&(f[t]=n,!p(n)||(_(o(n)),n.exports&&n.exports.forEach(v),e.forEach(n.declarations,(function(e){if(e.type&&171===e.type.kind){var n=e.type;v(s(u(n.exprName)))}})),!1))}}}}(ts||(ts={})),function(e){var n,t,r,a,i=/^\".+\"$/,o=1,s=1,c=1,l=1;!function(e){e[e.AllowsSyncIterablesFlag=1]=\"AllowsSyncIterablesFlag\",e[e.AllowsAsyncIterablesFlag=2]=\"AllowsAsyncIterablesFlag\",e[e.AllowsStringInputFlag=4]=\"AllowsStringInputFlag\",e[e.ForOfFlag=8]=\"ForOfFlag\",e[e.YieldStarFlag=16]=\"YieldStarFlag\",e[e.SpreadFlag=32]=\"SpreadFlag\",e[e.DestructuringFlag=64]=\"DestructuringFlag\",e[e.Element=1]=\"Element\",e[e.Spread=33]=\"Spread\",e[e.Destructuring=65]=\"Destructuring\",e[e.ForOf=13]=\"ForOf\",e[e.ForAwaitOf=15]=\"ForAwaitOf\",e[e.YieldStar=17]=\"YieldStar\",e[e.AsyncYieldStar=19]=\"AsyncYieldStar\",e[e.GeneratorReturnType=1]=\"GeneratorReturnType\",e[e.AsyncGeneratorReturnType=2]=\"AsyncGeneratorReturnType\"}(n||(n={})),function(e){e[e.Yield=0]=\"Yield\",e[e.Return=1]=\"Return\",e[e.Next=2]=\"Next\"}(t||(t={})),function(e){e[e.Normal=0]=\"Normal\",e[e.GeneratorYield=1]=\"GeneratorYield\"}(r||(r={})),function(e){e[e.None=0]=\"None\",e[e.TypeofEQString=1]=\"TypeofEQString\",e[e.TypeofEQNumber=2]=\"TypeofEQNumber\",e[e.TypeofEQBigInt=4]=\"TypeofEQBigInt\",e[e.TypeofEQBoolean=8]=\"TypeofEQBoolean\",e[e.TypeofEQSymbol=16]=\"TypeofEQSymbol\",e[e.TypeofEQObject=32]=\"TypeofEQObject\",e[e.TypeofEQFunction=64]=\"TypeofEQFunction\",e[e.TypeofEQHostObject=128]=\"TypeofEQHostObject\",e[e.TypeofNEString=256]=\"TypeofNEString\",e[e.TypeofNENumber=512]=\"TypeofNENumber\",e[e.TypeofNEBigInt=1024]=\"TypeofNEBigInt\",e[e.TypeofNEBoolean=2048]=\"TypeofNEBoolean\",e[e.TypeofNESymbol=4096]=\"TypeofNESymbol\",e[e.TypeofNEObject=8192]=\"TypeofNEObject\",e[e.TypeofNEFunction=16384]=\"TypeofNEFunction\",e[e.TypeofNEHostObject=32768]=\"TypeofNEHostObject\",e[e.EQUndefined=65536]=\"EQUndefined\",e[e.EQNull=131072]=\"EQNull\",e[e.EQUndefinedOrNull=262144]=\"EQUndefinedOrNull\",e[e.NEUndefined=524288]=\"NEUndefined\",e[e.NENull=1048576]=\"NENull\",e[e.NEUndefinedOrNull=2097152]=\"NEUndefinedOrNull\",e[e.Truthy=4194304]=\"Truthy\",e[e.Falsy=8388608]=\"Falsy\",e[e.All=16777215]=\"All\",e[e.BaseStringStrictFacts=3735041]=\"BaseStringStrictFacts\",e[e.BaseStringFacts=12582401]=\"BaseStringFacts\",e[e.StringStrictFacts=16317953]=\"StringStrictFacts\",e[e.StringFacts=16776705]=\"StringFacts\",e[e.EmptyStringStrictFacts=12123649]=\"EmptyStringStrictFacts\",e[e.EmptyStringFacts=12582401]=\"EmptyStringFacts\",e[e.NonEmptyStringStrictFacts=7929345]=\"NonEmptyStringStrictFacts\",e[e.NonEmptyStringFacts=16776705]=\"NonEmptyStringFacts\",e[e.BaseNumberStrictFacts=3734786]=\"BaseNumberStrictFacts\",e[e.BaseNumberFacts=12582146]=\"BaseNumberFacts\",e[e.NumberStrictFacts=16317698]=\"NumberStrictFacts\",e[e.NumberFacts=16776450]=\"NumberFacts\",e[e.ZeroNumberStrictFacts=12123394]=\"ZeroNumberStrictFacts\",e[e.ZeroNumberFacts=12582146]=\"ZeroNumberFacts\",e[e.NonZeroNumberStrictFacts=7929090]=\"NonZeroNumberStrictFacts\",e[e.NonZeroNumberFacts=16776450]=\"NonZeroNumberFacts\",e[e.BaseBigIntStrictFacts=3734276]=\"BaseBigIntStrictFacts\",e[e.BaseBigIntFacts=12581636]=\"BaseBigIntFacts\",e[e.BigIntStrictFacts=16317188]=\"BigIntStrictFacts\",e[e.BigIntFacts=16775940]=\"BigIntFacts\",e[e.ZeroBigIntStrictFacts=12122884]=\"ZeroBigIntStrictFacts\",e[e.ZeroBigIntFacts=12581636]=\"ZeroBigIntFacts\",e[e.NonZeroBigIntStrictFacts=7928580]=\"NonZeroBigIntStrictFacts\",e[e.NonZeroBigIntFacts=16775940]=\"NonZeroBigIntFacts\",e[e.BaseBooleanStrictFacts=3733256]=\"BaseBooleanStrictFacts\",e[e.BaseBooleanFacts=12580616]=\"BaseBooleanFacts\",e[e.BooleanStrictFacts=16316168]=\"BooleanStrictFacts\",e[e.BooleanFacts=16774920]=\"BooleanFacts\",e[e.FalseStrictFacts=12121864]=\"FalseStrictFacts\",e[e.FalseFacts=12580616]=\"FalseFacts\",e[e.TrueStrictFacts=7927560]=\"TrueStrictFacts\",e[e.TrueFacts=16774920]=\"TrueFacts\",e[e.SymbolStrictFacts=7925520]=\"SymbolStrictFacts\",e[e.SymbolFacts=16772880]=\"SymbolFacts\",e[e.ObjectStrictFacts=7888800]=\"ObjectStrictFacts\",e[e.ObjectFacts=16736160]=\"ObjectFacts\",e[e.FunctionStrictFacts=7880640]=\"FunctionStrictFacts\",e[e.FunctionFacts=16728e3]=\"FunctionFacts\",e[e.UndefinedFacts=9830144]=\"UndefinedFacts\",e[e.NullFacts=9363232]=\"NullFacts\",e[e.EmptyObjectStrictFacts=16318463]=\"EmptyObjectStrictFacts\",e[e.EmptyObjectFacts=16777215]=\"EmptyObjectFacts\"}(a||(a={}));var u,d,p,m,f,_,g,y,v=e.createMapFromTemplate({string:1,number:2,bigint:4,boolean:8,symbol:16,undefined:65536,object:32,function:64}),h=e.createMapFromTemplate({string:256,number:512,bigint:1024,boolean:2048,symbol:4096,undefined:524288,object:8192,function:16384});!function(e){e[e.Type=0]=\"Type\",e[e.ResolvedBaseConstructorType=1]=\"ResolvedBaseConstructorType\",e[e.DeclaredType=2]=\"DeclaredType\",e[e.ResolvedReturnType=3]=\"ResolvedReturnType\",e[e.ImmediateBaseConstraint=4]=\"ImmediateBaseConstraint\",e[e.EnumTagType=5]=\"EnumTagType\",e[e.JSDocTypeReference=6]=\"JSDocTypeReference\",e[e.ResolvedTypeArguments=7]=\"ResolvedTypeArguments\"}(u||(u={})),function(e){e[e.Normal=0]=\"Normal\",e[e.Contextual=1]=\"Contextual\",e[e.Inferential=2]=\"Inferential\",e[e.SkipContextSensitive=4]=\"SkipContextSensitive\",e[e.SkipGenericFunctions=8]=\"SkipGenericFunctions\",e[e.IsForSignatureHelp=16]=\"IsForSignatureHelp\"}(d||(d={})),function(e){e[e.None=0]=\"None\",e[e.NoIndexSignatures=1]=\"NoIndexSignatures\",e[e.Writing=2]=\"Writing\",e[e.CacheSymbol=4]=\"CacheSymbol\",e[e.NoTupleBoundsCheck=8]=\"NoTupleBoundsCheck\"}(p||(p={})),function(e){e[e.None=0]=\"None\",e[e.Bivariant=1]=\"Bivariant\",e[e.Strict=2]=\"Strict\"}(m||(m={})),function(e){e[e.IncludeReadonly=1]=\"IncludeReadonly\",e[e.ExcludeReadonly=2]=\"ExcludeReadonly\",e[e.IncludeOptional=4]=\"IncludeOptional\",e[e.ExcludeOptional=8]=\"ExcludeOptional\"}(f||(f={})),function(e){e[e.None=0]=\"None\",e[e.Source=1]=\"Source\",e[e.Target=2]=\"Target\",e[e.Both=3]=\"Both\"}(_||(_={})),function(e){e.resolvedExports=\"resolvedExports\",e.resolvedMembers=\"resolvedMembers\"}(g||(g={})),function(e){e[e.Local=0]=\"Local\",e[e.Parameter=1]=\"Parameter\"}(y||(y={}));var b,E,T,S=e.and(A,(function(n){return!e.isAccessor(n)}));function x(e){return e.id||(e.id=s,s++),e.id}function L(e){return e.id||(e.id=o,o++),e.id}function C(n,t){var r=e.getModuleInstanceState(n);return 1===r||t&&2===r}function A(e){return 243!==e.kind&&160!==e.kind||!!e.body}function D(n){switch(n.parent.kind){case 257:case 261:return e.isIdentifier(n);default:return e.isDeclarationName(n)}}function k(e){switch(e.kind){case 254:case 252:case 255:case 257:return!0;case 75:return 257===e.parent.kind;default:return!1}}function N(e){switch(e){case 0:return\"yieldType\";case 1:return\"returnType\";case 2:return\"nextType\"}}function I(e){return!!(1&e.flags)}function M(e){return!!(2&e.flags)}!function(e){e[e.GetAccessor=1]=\"GetAccessor\",e[e.SetAccessor=2]=\"SetAccessor\",e[e.PropertyAssignment=4]=\"PropertyAssignment\",e[e.Method=8]=\"Method\",e[e.GetOrSetAccessor=3]=\"GetOrSetAccessor\",e[e.PropertyAssignmentOrMethod=12]=\"PropertyAssignmentOrMethod\"}(b||(b={})),function(e){e[e.None=0]=\"None\",e[e.ExportValue=1]=\"ExportValue\",e[e.ExportType=2]=\"ExportType\",e[e.ExportNamespace=4]=\"ExportNamespace\"}(E||(E={})),e.getNodeId=x,e.getSymbolId=L,e.isInstantiatedModule=C,e.createTypeChecker=function(n,t){var r,a,o,s,u=e.memoize((function(){var t=e.createMap();return n.getSourceFiles().forEach((function(n){n.resolvedModules&&e.forEachEntry(n.resolvedModules,(function(e){e&&e.packageId&&t.set(e.packageId.name,!0)}))})),t})),d=e.objectAllocator.getSymbolConstructor(),p=e.objectAllocator.getTypeConstructor(),m=e.objectAllocator.getSignatureConstructor(),f=0,_=0,g=0,y=0,b=0,E=0,O=e.createSymbolTable(),R=e.identity,P=n.getCompilerOptions(),w=e.getEmitScriptTarget(P),F=e.getEmitModuleKind(P),G=e.getAllowSyntheticDefaultImports(P),B=e.getStrictOptionValue(P,\"strictNullChecks\"),V=e.getStrictOptionValue(P,\"strictFunctionTypes\"),U=e.getStrictOptionValue(P,\"strictBindCallApply\"),j=e.getStrictOptionValue(P,\"strictPropertyInitialization\"),K=e.getStrictOptionValue(P,\"noImplicitAny\"),H=e.getStrictOptionValue(P,\"noImplicitThis\"),W=!!P.keyofStringsOnly,z=P.suppressExcessPropertyErrors?0:32768,q=function(){var t,r=n.getResolvedTypeReferenceDirectives();r&&(t=e.createMap(),r.forEach((function(r,a){r&&r.resolvedFileName&&function r(a,i){if(t.has(a.path))return;t.set(a.path,i);for(var o=0,s=a.referencedFiles;o<s.length;o++){var c=s[o].fileName,l=e.resolveTripleslashReference(c,a.originalFileName),u=n.getSourceFile(l);u&&r(u,i)}}(n.getSourceFile(r.resolvedFileName),a)})));return{getReferencedExportContainer:db,getReferencedImportDeclaration:pb,getReferencedDeclarationWithCollidingName:fb,isDeclarationWithCollidingName:_b,isValueAliasDeclaration:function(n){return!(n=e.getParseTreeNode(n))||gb(n)},hasGlobalName:Rb,isReferencedAliasDeclaration:function(n,t){return!(n=e.getParseTreeNode(n))||function n(t,r){if(e.isAliasSymbolDeclaration(t)){var a=Yr(t);if(a&&ir(a).referenced)return!0;var i=ir(a).target;if(i&&1&e.getModifierFlags(t)&&111551&i.flags&&(P.preserveConstEnums||!hb(i)))return!0}if(r)return!!e.forEachChild(t,(function(e){return n(e,r)}));return!1}(n,t)},getNodeCheckFlags:function(n){return(n=e.getParseTreeNode(n))?Lb(n):0},isTopLevelValueImportEqualsWithEntityName:yb,isDeclarationVisible:Fa,isImplementationOfOverload:bb,isRequiredInitializedParameter:Eb,isOptionalUninitializedParameterProperty:Tb,isExpandoFunctionDeclaration:Sb,getPropertiesOfContainerFunction:xb,createTypeOfDeclaration:Ib,createReturnTypeOfSignatureDeclaration:Mb,createTypeOfExpression:Ob,createLiteralConstValue:Gb,isSymbolAccessible:ha,isEntityNameVisible:xa,getConstantValue:function(n){var t=e.getParseTreeNode(n,Ab);return t?Db(t):void 0},collectLinkedAliases:Ga,getReferencedValueDeclaration:wb,getTypeReferenceSerializationKind:Nb,isOptionalParameter:Ls,moduleExportsSomeValue:ub,isArgumentsLocalBinding:lb,getExternalModuleFileFromDeclaration:Bb,getTypeReferenceDirectivesForEntityName:function(e){if(!t)return;var n=790504;(75===e.kind&&Dp(e)||193===e.kind&&!function(e){return e.parent&&215===e.parent.kind&&e.parent.parent&&277===e.parent.parent.kind}(e))&&(n=1160127);var r=Rr(e,n,!0);return r&&r!==de?a(r,n):void 0},getTypeReferenceDirectivesForSymbol:a,isLiteralConstDeclaration:Fb,isLateBound:function(n){var t=e.getParseTreeNode(n,e.isDeclaration),r=t&&Yr(t);return!!(r&&4096&e.getCheckFlags(r))},getJsxFactoryEntity:function(n){return n?(Ht(n),e.getSourceFileOfNode(n).localJsxFactory||Hn):Hn},getAllAccessorDeclarations:function(n){var t=163===(n=e.getParseTreeNode(n,e.isGetOrSetAccessorDeclaration)).kind?162:163,r=e.getDeclarationOfKind(Yr(n),t);return{firstAccessor:r&&r.pos<n.pos?r:n,secondAccessor:r&&r.pos<n.pos?n:r,setAccessor:163===n.kind?n:r,getAccessor:162===n.kind?n:r}},getSymbolOfExternalModuleSpecifier:function(e){return Fr(e,e,void 0)},isBindingCapturedByNode:function(n,t){var r=e.getParseTreeNode(n),a=e.getParseTreeNode(t);return!!r&&!!a&&(e.isVariableDeclaration(a)||e.isBindingElement(a))&&function(n,t){var r=or(n);return!!r&&e.contains(r.capturedBlockScopeBindings,Yr(t))}(r,a)},getDeclarationStatementsForSourceFile:function(n,t,r,a){var i=e.getParseTreeNode(n);e.Debug.assert(i&&288===i.kind,\"Non-sourcefile node passed into getDeclarationsForSourceFile\");var o=Yr(n);return o?o.exports?J.symbolTableToDeclarationStatements(o.exports,n,t,r,a):[]:n.locals?J.symbolTableToDeclarationStatements(n.locals,n,t,r,a):[]}};function a(n,r){if(t&&function(n){if(!n.declarations)return!1;var r=n;for(;;){var a=Qr(r);if(!a)break;r=a}if(r.valueDeclaration&&288===r.valueDeclaration.kind&&512&r.flags)return!1;for(var i=0,o=n.declarations;i<o.length;i++){var s=o[i],c=e.getSourceFileOfNode(s);if(t.has(c.path))return!0}return!1}(n)){for(var a,i=0,o=n.declarations;i<o.length;i++){var s=o[i];if(s.symbol&&s.symbol.flags&r){var c=e.getSourceFileOfNode(s),l=t.get(c.path);if(!l)return;(a||(a=[])).push(l)}}return a}}}(),J=function(){return{typeToTypeNode:function(e,n,r,a){return t(n,r,a,(function(n){return o(e,n)}))},indexInfoToIndexSignatureDeclaration:function(e,n,r,a,i){return t(r,a,i,(function(t){return u(e,n,t)}))},signatureToSignatureDeclaration:function(e,n,r,a,i){return t(r,a,i,(function(t){return d(e,n,t)}))},symbolToEntityName:function(e,n,r,a,i){return t(r,a,i,(function(t){return C(e,t,n,!1)}))},symbolToExpression:function(e,n,r,a,i){return t(r,a,i,(function(t){return A(e,t,n)}))},symbolToTypeParameterDeclarations:function(e,n,r,a){return t(n,r,a,(function(n){return v(e,n)}))},symbolToParameterDeclaration:function(e,n,r,a){return t(n,r,a,(function(n){return f(e,n)}))},typeParameterToDeclaration:function(e,n,r,a){return t(n,r,a,(function(n){return m(e,n)}))},symbolTableToDeclarationStatements:function(r,a,i,s,c){return t(a,i,s,(function(t){return function(t,r,a){var i,s=K(e.createProperty,160,!0),c=K((function(n,t,r,a,i,o){return e.createPropertySignature(t,r,a,i,o)}),159,!1),l=r.enclosingDeclaration,p=[],f=e.createMap(),_=r;r=__assign(__assign({},_),{usedSymbolNames:e.createMap(),remappedSymbolNames:e.createMap(),tracker:__assign(__assign({},_.tracker),{trackSymbol:function(e,n,t){if(0===ha(e,n,t,!1).accessibility){var a=y(e,r,t);4&e.flags||M(a[0])}else _.tracker&&_.tracker.trackSymbol&&_.tracker.trackSymbol(e,n,t)}})}),_.usedSymbolNames&&_.usedSymbolNames.forEach((function(e,n){r.usedSymbolNames.set(n,!0)}));e.forEachEntry(t,(function(n,t){Q(n,e.unescapeLeadingUnderscores(t))}));var g=!a,v=t.get(\"export=\");v&&t.size>1&&2097152&v.flags&&(t=e.createSymbolTable()).set(\"export=\",v);return N(t),T(p);function h(e){return!!e&&75===e.kind}function E(n){var t=e.find(n,e.isExportAssignment),r=e.find(n,e.isModuleDeclaration);if(r&&t&&t.isExportEquals&&e.isIdentifier(t.expression)&&e.isIdentifier(r.name)&&e.idText(r.name)===e.idText(t.expression)&&r.body&&e.isModuleBlock(r.body)){var a=e.filter(n,(function(n){return!!(1&e.getModifierFlags(n))}));e.length(a)&&(r.body.statements=e.createNodeArray(__spreadArrays(r.body.statements,[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.map(e.flatMap(a,(function(n){return t=n,e.isVariableStatement(t)?e.filter(e.map(t.declarationList.declarations,e.getNameOfDeclaration),h):e.filter([e.getNameOfDeclaration(t)],h);var t})),(function(n){return e.createExportSpecifier(void 0,n)}))),void 0)]))),e.find(n,(function(n){return n!==r&&e.nodeHasName(n,r.name)}))||(p=[],e.forEach(r.body.statements,(function(e){O(e,0)})),n=__spreadArrays(e.filter(n,(function(e){return e!==r&&e!==t})),p))}return n}function T(n){return n=function(n){var t=e.find(n,(function(n){return e.isExportDeclaration(n)&&!n.moduleSpecifier&&!!n.exportClause}));if(t){var r=e.mapDefined(t.exportClause.elements,(function(t){if(!t.propertyName){var r=e.filter(n,(function(n){return e.nodeHasName(n,t.name)}));if(e.length(r)&&e.every(r,x))return void e.forEach(r,k)}return t}));e.length(r)?t.exportClause.elements=e.createNodeArray(r):n=e.filter(n,(function(e){return e!==t}))}return n}(n=function(n){var t=e.filter(n,(function(n){return e.isExportDeclaration(n)&&!n.moduleSpecifier&&!!n.exportClause}));if(e.length(t)>1){var r=e.filter(n,(function(n){return!e.isExportDeclaration(n)||!!n.moduleSpecifier||!n.exportClause}));n=__spreadArrays(r,[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.flatMap(t,(function(e){return e.exportClause.elements}))),void 0)])}var a=e.filter(n,(function(n){return e.isExportDeclaration(n)&&!!n.moduleSpecifier&&!!n.exportClause}));if(e.length(a)>1){var i=e.group(a,(function(n){return e.isStringLiteral(n.moduleSpecifier)?\">\"+n.moduleSpecifier.text:\">\"}));if(i.length!==a.length)for(var o=function(t){t.length>1&&(n=__spreadArrays(e.filter(n,(function(e){return-1===t.indexOf(e)})),[e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.flatMap(t,(function(e){return e.exportClause.elements}))),t[0].moduleSpecifier)]))},s=0,c=i;s<c.length;s++){o(c[s])}}return n}(n=E(n))),l&&(e.isSourceFile(l)&&e.isExternalOrCommonJsModule(l)||e.isModuleDeclaration(l))&&(!e.some(n,e.isExternalModuleIndicator)||!e.hasScopeMarker(n)&&e.some(n,e.needsScopeMarker))&&n.push(e.createEmptyExports()),n}function x(n){return e.isEnumDeclaration(n)||e.isVariableStatement(n)||e.isFunctionDeclaration(n)||e.isClassDeclaration(n)||e.isModuleDeclaration(n)&&!e.isExternalModuleAugmentation(n)&&!e.isGlobalScopeAugmentation(n)||e.isInterfaceDeclaration(n)||Xh(n)}function k(n){var t=-3&(1|e.getModifierFlags(n));n.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(t)),n.modifierFlagsCache=0}function N(n,t,r){var a=i;t||(i=e.createMap()),n.forEach((function(e){I(e,!1,!!r)})),t||i.forEach((function(e){I(e,!0,!!r)})),i=a}function I(n,t,a){var i=Xr(n);if(!f.has(\"\"+L(i))&&(f.set(\"\"+L(i),!0),!t||e.length(n.declarations)&&e.some(n.declarations,(function(n){return!!e.findAncestor(n,(function(e){return e===l}))})))){var u=r;r=function(n){var t=__assign({},n);t.typeParameterNames&&(t.typeParameterNames=e.cloneMap(t.typeParameterNames));t.typeParameterNamesByText&&(t.typeParameterNamesByText=e.cloneMap(t.typeParameterNamesByText));t.typeParameterSymbolList&&(t.typeParameterSymbolList=e.cloneMap(t.typeParameterSymbolList));return t}(r);var d=function(n,t,a){var i=e.unescapeLeadingUnderscores(n.escapedName),l=\"default\"===n.escapedName;if(e.isStringANonContextualKeyword(i)&&!l)return void(r.encounteredError=!0);var u=l&&!!(-113&n.flags||16&n.flags&&e.length(Xo(Ci(n))))&&!(2097152&n.flags);u&&(t=!0);var d=(t?0:1)|(l&&!u?512:0),p=1536&n.flags&&7&n.flags&&\"export=\"!==n.escapedName,f=p&&j(Ci(n),n);(16&n.flags||f)&&F(Ci(n),n,Q(n,i),d);524288&n.flags&&function(n,t,a){var i=Ki(n),s=ir(n).typeParameters,c=e.map(s,(function(e){return m(e,r)})),l=e.find(n.declarations,e.isJSDocTypeAlias),u=l?l.comment||l.parent.comment:void 0,d=r.flags;r.flags|=8388608,O(e.setSyntheticLeadingComments(e.createTypeAliasDeclaration(void 0,void 0,Q(n,t),c,o(i,r)),u?[{kind:3,text:\"*\\n * \"+u.replace(/\\n/g,\"\\n * \")+\"\\n \",pos:-1,end:-1,hasTrailingNewLine:!0}]:[]),a),r.flags=d}(n,i,d);!(7&n.flags&&\"export=\"!==n.escapedName)||4194304&n.flags||32&n.flags||f||function(n,t,r,a,i,o){if(i)U(n);else{var s=Ci(n),c=Q(n,t);if(16&n.flags||!j(s,n)){var l=2&n.flags?Im(n)?2:1:void 0,u=!a&&4&n.flags?X(c,n):c,d=n.declarations&&e.find(n.declarations,(function(n){return e.isVariableDeclaration(n)}));d&&e.isVariableDeclarationList(d.parent)&&1===d.parent.declarations.length&&(d=d.parent.parent),O(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(u,W(s,n))],l)),d),u!==c?-2&o:o),u===c||r||O(e.createExportDeclaration(void 0,void 0,e.createNamedExports([e.createExportSpecifier(u,c)])),0)}else F(s,n,c,o)}}(n,i,t,u,a,d);384&n.flags&&function(n,t,r){O(e.createEnumDeclaration(void 0,e.createModifiersFromModifierFlags(uy(n)?2048:0),Q(n,t),e.map(e.filter(Xo(Ci(n)),(function(e){return!!(8&e.flags)})),(function(n){var t=n.declarations&&n.declarations[0]&&e.isEnumMember(n.declarations[0])&&Db(n.declarations[0]);return e.createEnumMember(e.unescapeLeadingUnderscores(n.escapedName),void 0===t?void 0:e.createLiteral(t))}))),r)}(n,i,d);32&n.flags&&(4&n.flags?B(n,Q(n,i),d):function(n,t,a){for(var i=Oi(n),c=e.map(i,(function(e){return m(e,r)})),l=ji(n),u=Vi(l),d=Ci(n),p=Bi(d),f=e.length(u)?[e.createHeritageClause(89,e.map(u,(function(n){return function(n,t,a){var i=J(n);if(i)return i;var s=X(a+\"_base\");return O(e.createVariableStatement(undefined,e.createVariableDeclarationList([e.createVariableDeclaration(s,o(t,r))],2)),0),e.createExpressionWithTypeArguments(void 0,e.createIdentifier(s))}(n,p,t)})))]:void 0,_=e.flatMap(Xo(l),(function(e){return s(e,!1,u[0])})),g=528&n.flags?[]:e.flatMap(e.filter(Xo(d),(function(e){return!(4194304&e.flags)&&\"prototype\"!==e.escapedName})),(function(e){return s(e,!0,p)})),y=z(1,d,u[0],161),v=0,h=y;v<h.length;v++){var b=h[v];b.type=void 0,b.typeParameters=void 0}var E=q(l,u[0]);O(e.setTextRange(e.createClassDeclaration(void 0,void 0,t,c,f,__spreadArrays(E,g,y,_)),n.declarations&&e.filter(n.declarations,(function(n){return e.isClassDeclaration(n)||e.isClassExpression(n)}))[0]),a)}(n,Q(n,i),d));(1536&n.flags&&(!p||function(n){return e.every(R(n),(function(e){return!(111551&Dr(e).flags)}))}(n))||f)&&function(n,t,r){var a=R(n),i=e.arrayToMultiMap(a,(function(e){return e.parent&&e.parent===n?\"real\":\"merged\"})),o=i.get(\"real\")||e.emptyArray,s=i.get(\"merged\")||e.emptyArray;if(e.length(o)){var c=Q(n,t);G(o,c,r,!!(67108880&n.flags))}if(e.length(s)){c=Q(n,t);var l=e.createModuleBlock([e.createExportDeclaration(void 0,void 0,e.createNamedExports(e.map(e.filter(s,(function(e){return\"export=\"!==e.escapedName})),(function(n){var t=e.unescapeLeadingUnderscores(n.escapedName),r=Q(n,t),a=n.declarations&&hr(n),i=a&&Cr(a,!0);M(i||n);var o=i?Q(i,e.unescapeLeadingUnderscores(i.escapedName)):r;return e.createExportSpecifier(t===o?void 0:o,t)}))))]);O(e.createModuleDeclaration(void 0,void 0,e.createIdentifier(c),l,16),0)}}(n,i,d);64&n.flags&&function(n,t,a){var i=ji(n),o=Oi(n),s=e.map(o,(function(e){return m(e,r)})),l=Vi(i),u=e.length(l)?Zc(l):void 0,d=e.flatMap(Xo(i),(function(e){return function(e,n){return c(e,!1,n)}(e,u)})),p=z(0,i,u,164),f=z(1,i,u,165),_=q(i,u),g=e.length(l)?[e.createHeritageClause(89,e.mapDefined(l,(function(e){return J(e)})))]:void 0;O(e.createInterfaceDeclaration(void 0,void 0,Q(n,t),s,g,__spreadArrays(_,f,p,d)),a)}(n,i,d);2097152&n.flags&&B(n,Q(n,i),d);4&n.flags&&\"export=\"===n.escapedName&&U(n);if(8388608&n.flags)for(var _=0,g=n.declarations;_<g.length;_++){var y=g[_],v=wr(y,y.moduleSpecifier);v&&O(e.createExportDeclaration(void 0,void 0,void 0,e.createLiteral(b(v,r))),0)}u&&O(e.createExportAssignment(void 0,void 0,!1,e.createIdentifier(Q(n,i))),0)}(n,t,a);return r=u,d}}function M(n){e.some(n.declarations,e.isParameterDeclaration)||(e.Debug.assertDefined(i),X(e.unescapeLeadingUnderscores(n.escapedName),n),i.set(\"\"+L(n),n))}function O(n,t){var r=0;1&t&&l&&function(n){return e.isSourceFile(n)&&(e.isExternalOrCommonJsModule(n)||e.isJsonSourceFile(n))||e.isAmbientModule(n)&&!e.isGlobalScopeAugmentation(n)}(l)&&x(n)&&(r|=1),!g||1&r||l&&8388608&l.flags||!(e.isEnumDeclaration(n)||e.isVariableStatement(n)||e.isFunctionDeclaration(n)||e.isClassDeclaration(n)||e.isModuleDeclaration(n))||(r|=2),512&t&&(e.isClassDeclaration(n)||e.isInterfaceDeclaration(n)||e.isFunctionDeclaration(n))&&(r|=512),r&&(n.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(r|e.getModifierFlags(n))),n.modifierFlagsCache=0),p.push(n)}function R(n){return n.exports?e.filter(e.arrayFrom(n.exports.values()),(function(e){return!(4194304&e.flags||\"prototype\"===e.escapedName)})):[]}function F(n,t,a,i){for(var o=0,s=_s(n,0);o<s.length;o++){var c=s[o],l=d(c,243,r);l.name=e.createIdentifier(a),O(e.setTextRange(l,c.declaration),i)}1536&t.flags&&t.exports&&t.exports.size||G(e.filter(Xo(n),(function(e){return!(4194304&e.flags||\"prototype\"===e.escapedName)})),a,i,!0)}function G(n,t,a,i){if(e.length(n)){var o=e.arrayToMultiMap(n,(function(n){return!e.length(n.declarations)||e.some(n.declarations,(function(n){return e.getSourceFileOfNode(n)===e.getSourceFileOfNode(r.enclosingDeclaration)}))?\"local\":\"remote\"})).get(\"local\")||e.emptyArray,s=e.createModuleDeclaration(void 0,void 0,e.createIdentifier(t),e.createModuleBlock([]),16);s.flags^=8,s.parent=l,s.locals=e.createSymbolTable(n),s.symbol=n[0].parent;var c=p;p=[];var u=g;g=!1;var d=__assign(__assign({},r),{enclosingDeclaration:s}),m=r;r=d,N(e.createSymbolTable(o),i,!0),r=m,g=u;var f=p;p=c,s.flags^=8,s.parent=void 0,s.locals=void 0,s.symbol=void 0,s.body=e.createModuleBlock(f),O(s,a)}}function B(n,t,a){var i=hr(n);if(!i)return e.Debug.fail();var o=Xr(Cr(i,!0));if(o){var s=e.unescapeLeadingUnderscores(o.escapedName);\"export=\"===s&&(P.esModuleInterop||P.allowSyntheticDefaultImports)&&(s=\"default\");var c=Q(o,s);switch(M(o),i.kind){case 252:var l=!(512&o.flags);O(e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(t),l?C(o,r,67108863,!1):e.createExternalModuleReference(e.createLiteral(b(n,r)))),l?a:0);break;case 251:O(e.createNamespaceExportDeclaration(e.idText(i.name)),0);break;case 254:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(e.createIdentifier(t),void 0),e.createLiteral(b(o.parent||o,r))),0);break;case 255:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(e.createIdentifier(t))),e.createLiteral(b(o,r))),0);break;case 257:O(e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamedImports([e.createImportSpecifier(t!==s?e.createIdentifier(s):void 0,e.createIdentifier(t))])),e.createLiteral(b(o.parent||o,r))),0);break;case 261:var u=i.parent.parent.moduleSpecifier;V(e.unescapeLeadingUnderscores(n.escapedName),u?s:c,u&&e.isStringLiteralLike(u)?e.createLiteral(u.text):void 0);break;case 258:U(n);break;case 208:case 193:\"default\"===n.escapedName||\"export=\"===n.escapedName?U(n):V(t,c);break;default:return e.Debug.failBadSyntaxKind(i,\"Unhandled alias declaration kind in symbol serializer!\")}}}function V(n,t,r){O(e.createExportDeclaration(void 0,void 0,e.createNamedExports([e.createExportSpecifier(n!==t?t:void 0,n)]),r),0)}function U(n){if(!(4194304&n.flags)){var t=e.unescapeLeadingUnderscores(n.escapedName),a=\"export=\"===t,i=a||\"default\"===t,o=n.declarations&&hr(n),s=o&&Cr(o,!0);if(s&&e.length(s.declarations)&&e.some(s.declarations,(function(n){return e.getSourceFileOfNode(n)===e.getSourceFileOfNode(l)}))){var c=i?e.getExportAssignmentExpression(o):e.getPropertyAssignmentAliasLikeExpression(o),u=e.isEntityNameExpression(c)?function(n){switch(n.kind){case 75:return n;case 152:do{n=n.left}while(75!==n.kind);return n;case 193:do{if(e.isModuleExportsAccessExpression(n.expression))return n.name;n=n.expression}while(75!==n.kind);return n}}(c):void 0,d=u&&Rr(u,67108863,!0,!0,l);(d||s)&&M(d||s);var m=r.tracker.trackSymbol;if(r.tracker.trackSymbol=e.noop,i)p.push(e.createExportAssignment(void 0,void 0,a,A(s,r,67108863)));else if(u===c)V(t,e.idText(u));else if(e.isClassExpression(c))V(t,Q(s,e.symbolName(s)));else{var f=X(t,n);O(e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(f),C(s,r,67108863,!1)),0),V(t,f)}r.tracker.trackSymbol=m}else{f=X(t,n);var _=Xd(Ci(n));if(j(_,n))F(_,n,f,i?0:1);else O(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(f,W(_,n))],2)),t===f?1:0);i?p.push(e.createExportAssignment(void 0,void 0,a,e.createIdentifier(f))):t!==f&&V(t,f)}}}function j(n,t){var a=e.getSourceFileOfNode(r.enclosingDeclaration);return 48&e.getObjectFlags(n)&&!vs(n,0)&&!vs(n,1)&&!(!e.length(Xo(n))&&!e.length(_s(n,0)))&&!e.length(_s(n,1))&&!H(t)&&!(n.symbol&&e.some(n.symbol.declarations,(function(n){return e.getSourceFileOfNode(n)!==a})))&&!e.some(Xo(n),(function(e){return so(e.escapedName)}))&&!e.some(Xo(n),(function(n){return e.some(n.declarations,(function(n){return e.getSourceFileOfNode(n)!==a}))}))&&e.every(Xo(n),(function(n){return e.isIdentifierText(e.symbolName(n),w)&&!e.isStringAKeyword(e.symbolName(n))}))}function K(n,t,a){return function(i,o,s){if(o&&2887656&i.flags)return[];if(4194304&i.flags||s&&ms(s,i.escapedName)&&ny(ms(s,i.escapedName))===ny(i)&&(16777216&i.flags)==(16777216&ms(s,i.escapedName).flags)&&hu(Ci(i),Ha(s,i.escapedName)))return[];var c=o?32:0,l=function(n,t){var r=function(n,t){var r=n.nameType;if(r){if(384&r.flags){var a=\"\"+r.value;return e.isIdentifierText(a,P.target)||Df(a)?Df(a)&&e.startsWith(a,\"-\")?e.createComputedPropertyName(e.createLiteral(+a)):D(a):e.createLiteral(a)}if(8192&r.flags)return e.createComputedPropertyName(A(r.symbol,t,111551))}}(n,t);if(r)return r;return D(e.unescapeLeadingUnderscores(n.escapedName))}(i,r),u=e.find(i.declarations,e.or(e.isPropertyDeclaration,e.isAccessor,e.isVariableDeclaration,e.isPropertySignature,e.isBinaryExpression,e.isPropertyAccessExpression));if(98304&i.flags&&a){var p=[];return 65536&i.flags&&p.push(e.setTextRange(e.createSetAccessor(void 0,e.createModifiersFromModifierFlags(c),l,[e.createParameter(void 0,void 0,void 0,\"arg\",void 0,W(Ci(i),i))],void 0),e.find(i.declarations,e.isSetAccessor)||u)),32768&i.flags&&p.push(e.setTextRange(e.createGetAccessor(void 0,e.createModifiersFromModifierFlags(c),l,[],W(Ci(i),i),void 0),e.find(i.declarations,e.isGetAccessor)||u)),p}if(7&i.flags)return e.setTextRange(n(void 0,e.createModifiersFromModifierFlags((ny(i)?64:0)|c),l,16777216&i.flags?e.createToken(57):void 0,W(Ci(i),i),void 0),e.find(i.declarations,e.or(e.isPropertyDeclaration,e.isVariableDeclaration))||u);if(8208&i.flags){for(var m=[],f=0,_=_s(Ci(i),0);f<_.length;f++){var g=_[f],y=d(g,t,r);y.name=l,c&&(y.modifiers=e.createNodeArray(e.createModifiersFromModifierFlags(c))),16777216&i.flags&&(y.questionToken=e.createToken(57)),m.push(e.setTextRange(y,g.declaration))}return m}return e.Debug.fail(\"Unhandled class member kind! \"+(i.__debugFlags||i.flags))}}function H(n){return e.find(n.declarations,(function(n){return!!e.getEffectiveTypeAnnotationNode(n)&&!!e.findAncestor(n,(function(e){return e===l}))}))}function W(t,i){var s=H(i);if(s&&!e.isFunctionLikeDeclaration(s)){var c=e.getEffectiveTypeAnnotationNode(s),l=e.visitNode(c,(function t(i){if(e.isJSDocAllType(i))return e.createKeywordTypeNode(124);if(e.isJSDocUnknownType(i))return e.createKeywordTypeNode(147);if(e.isJSDocNullableType(i))return e.createUnionTypeNode([e.visitNode(i.type,t),e.createKeywordTypeNode(99)]);if(e.isJSDocOptionalType(i))return e.createUnionTypeNode([e.visitNode(i.type,t),e.createKeywordTypeNode(145)]);if(e.isJSDocNonNullableType(i))return e.visitNode(i.type,t);if((e.isExpressionWithTypeArguments(i)||e.isTypeReferenceNode(i))&&e.isJSDocIndexSignature(i))return e.createTypeLiteralNode([e.createIndexSignature(void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"x\",void 0,e.visitNode(i.typeArguments[0],t))],e.visitNode(i.typeArguments[1],t))]);if(e.isJSDocFunctionType(i)){var o;return e.isJSDocConstructSignature(i)?e.createConstructorTypeNode(e.visitNodes(i.typeParameters,t),e.mapDefined(i.parameters,(function(n,r){return n.name&&e.isIdentifier(n.name)&&\"new\"===n.name.escapedText?void(o=n.type):e.createParameter(void 0,void 0,n.dotDotDotToken,n.name||n.dotDotDotToken?\"args\":\"arg\"+r,n.questionToken,e.visitNode(n.type,t),void 0)})),e.visitNode(o||i.type,t)):e.createFunctionTypeNode(e.visitNodes(i.typeParameters,t),e.map(i.parameters,(function(n,r){return e.createParameter(void 0,void 0,n.dotDotDotToken,n.name||n.dotDotDotToken?\"args\":\"arg\"+r,n.questionToken,e.visitNode(n.type,t),void 0)})),e.visitNode(i.type,t))}if(e.isLiteralImportTypeNode(i))return e.updateImportTypeNode(i,e.updateLiteralTypeNode(i.argument,function(t,i){if(a){if(r.tracker&&r.tracker.moduleResolverHost){var o=Bb(t);if(o){var s={getCanonicalFileName:e.createGetCanonicalFileName(!!n.useCaseSensitiveFileNames),getCurrentDirectory:r.tracker.moduleResolverHost.getCurrentDirectory?function(){return r.tracker.moduleResolverHost.getCurrentDirectory()}:function(){return\"\"},getCommonSourceDirectory:function(){return r.tracker.moduleResolverHost.getCommonSourceDirectory()}},c=e.getResolvedExternalModuleName(s,o);return e.createLiteral(c)}}}else if(r.tracker&&r.tracker.trackExternalModuleSymbolOfImportTypeNode){var l=Fr(i,i,void 0);l&&r.tracker.trackExternalModuleSymbolOfImportTypeNode(l)}return i}(i,i.argument.literal)),i.qualifier,e.visitNodes(i.typeArguments,t,e.isTypeNode),i.isTypeOf);if(e.isEntityName(i)||e.isEntityNameExpression(i)){var s=Rr(e.getFirstIdentifier(i),67108863,!0,!0);if(s&&(M(s),e.isIdentifier(i)&&262144&s.flags)){var c=S(Yi(s),r);return e.idText(c)!==e.idText(i)?c:i}}return e.visitEachChild(i,t,e.nullTransformationContext)}));return l===c?e.getMutableClone(c):l}var u=r.flags;8192&t.flags&&t.symbol===i&&(r.flags|=1048576);var d=o(t,r);return r.flags=u,d}function z(n,t,a,i){var o=_s(t,n);if(1===n){if(!a&&e.every(o,(function(n){return 0===e.length(n.parameters)})))return[];if(a){var s=_s(a,1);if(!e.length(s)&&e.every(o,(function(n){return 0===e.length(n.parameters)})))return[];if(s.length===o.length){for(var c=!1,l=0;l<s.length;l++)if(!ld(o[l],s[l],!1,!1,!0,bu)){c=!0;break}if(!c)return[]}}}for(var u=[],p=0,m=o;p<m.length;p++){var f=m[p],_=d(f,i,r);u.push(e.setTextRange(_,f.declaration))}return u}function q(e,n){for(var t=[],a=0,i=[0,1];a<i.length;a++){var o=i[a],s=vs(e,o);if(s){if(n){var c=vs(n,o);if(c&&hu(s.type,c.type))continue}t.push(u(s,o,r))}}return t}function J(n){var t,a;if(n.target&&_a(n.target.symbol,l,111551,!1)?(t=e.map(ic(n),(function(e){return o(e,r)})),a=A(n.target.symbol,r,788968)):n.symbol&&_a(n.symbol,l,111551,!1)&&(a=A(n.symbol,r,788968)),a)return e.createExpressionWithTypeArguments(t,a)}function X(e,n){if(n&&r.remappedSymbolNames.has(\"\"+L(n)))return r.remappedSymbolNames.get(\"\"+L(n));n&&(e=Y(n,e));for(var t=0,a=e;r.usedSymbolNames.has(e);)e=a+\"_\"+ ++t;return r.usedSymbolNames.set(e,!0),n&&r.remappedSymbolNames.set(\"\"+L(n),e),e}function Y(n,t){if(\"default\"===t||\"__class\"===t||\"__function\"===t){var a=r.flags;r.flags|=16777216;var i=wa(n,r);r.flags=a,t=i.length>0&&e.isSingleOrDoubleQuote(i.charCodeAt(0))?e.stripQuotes(i):i}return\"default\"===t?t=\"_default\":\"export=\"===t&&(t=\"_exports\"),t=e.isIdentifierText(t,w)&&!e.isStringANonContextualKeyword(t)?t:\"_\"+t.replace(/[^a-zA-Z0-9]/g,\"_\")}function Q(e,n){return r.remappedSymbolNames.has(\"\"+L(e))?r.remappedSymbolNames.get(\"\"+L(e)):(n=Y(e,n),r.remappedSymbolNames.set(\"\"+L(e),n),n)}}(r,t,c)}))}};function t(t,r,a,i){e.Debug.assert(void 0===t||0==(8&t.flags));var o={enclosingDeclaration:t,flags:r||0,tracker:a&&a.trackSymbol?a:{trackSymbol:e.noop,moduleResolverHost:134217728&r?{getCommonSourceDirectory:n.getCommonSourceDirectory?function(){return n.getCommonSourceDirectory()}:function(){return\"\"},getSourceFiles:function(){return n.getSourceFiles()},getCurrentDirectory:e.maybeBind(n,n.getCurrentDirectory),getProbableSymlinks:e.maybeBind(n,n.getProbableSymlinks)}:void 0},encounteredError:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0},s=i(o);return o.encounteredError?void 0:s}function a(n){return n.truncating?n.truncating:n.truncating=!(1&n.flags)&&n.approximateLength>e.defaultMaximumTruncationLength}function o(n,t){r&&r.throwIfCancellationRequested&&r.throwIfCancellationRequested();var i=8388608&t.flags;if(t.flags&=-8388609,n){if(1&n.flags)return t.approximateLength+=3,e.createKeywordTypeNode(124);if(2&n.flags)return e.createKeywordTypeNode(147);if(4&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(142);if(8&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(139);if(64&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(150);if(16&n.flags)return t.approximateLength+=7,e.createKeywordTypeNode(127);if(1024&n.flags&&!(1048576&n.flags)){var m=Qr(n.symbol),f=E(m,t,788968);return Yi(m)===n?f:F(f,e.createTypeReferenceNode(e.symbolName(n.symbol),void 0))}if(1056&n.flags)return E(n.symbol,t,788968);if(128&n.flags)return t.approximateLength+=n.value.length+2,e.createLiteralTypeNode(e.setEmitFlags(e.createLiteral(n.value),16777216));if(256&n.flags){var _=n.value;return t.approximateLength+=(\"\"+_).length,e.createLiteralTypeNode(_<0?e.createPrefix(40,e.createLiteral(-_)):e.createLiteral(_))}if(2048&n.flags)return t.approximateLength+=e.pseudoBigIntToString(n.value).length+1,e.createLiteralTypeNode(e.createLiteral(n.value));if(512&n.flags)return t.approximateLength+=n.intrinsicName.length,\"true\"===n.intrinsicName?e.createTrue():e.createFalse();if(8192&n.flags){if(!(1048576&t.flags)){if(va(n.symbol,t.enclosingDeclaration))return t.approximateLength+=6,E(n.symbol,t,111551);t.tracker.reportInaccessibleUniqueSymbolError&&t.tracker.reportInaccessibleUniqueSymbolError()}return t.approximateLength+=13,e.createTypeOperatorNode(146,e.createKeywordTypeNode(143))}if(16384&n.flags)return t.approximateLength+=4,e.createKeywordTypeNode(109);if(32768&n.flags)return t.approximateLength+=9,e.createKeywordTypeNode(145);if(65536&n.flags)return t.approximateLength+=4,e.createKeywordTypeNode(99);if(131072&n.flags)return t.approximateLength+=5,e.createKeywordTypeNode(136);if(4096&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(143);if(67108864&n.flags)return t.approximateLength+=6,e.createKeywordTypeNode(140);if(pl(n))return 4194304&t.flags&&(t.encounteredError||32768&t.flags||(t.encounteredError=!0),t.tracker.reportInaccessibleThisError&&t.tracker.reportInaccessibleThisError()),t.approximateLength+=4,e.createThis();if(!i&&n.aliasSymbol&&(16384&t.flags||ya(n.aliasSymbol,t.enclosingDeclaration))){var g=l(n.aliasTypeArguments,t);return!la(n.aliasSymbol.escapedName)||32&n.aliasSymbol.flags?E(n.aliasSymbol,t,788968,g):e.createTypeReferenceNode(e.createIdentifier(\"\"),g)}var y=e.getObjectFlags(n);if(4&y)return e.Debug.assert(!!(524288&n.flags)),n.node?R(n,w):w(n);if(262144&n.flags||3&y){if(262144&n.flags&&e.contains(t.inferTypeParameters,n))return t.approximateLength+=e.symbolName(n.symbol).length+6,e.createInferTypeNode(p(n,t,void 0));if(4&t.flags&&262144&n.flags&&!ya(n.symbol,t.enclosingDeclaration)){var v=S(n,t);return t.approximateLength+=e.idText(v).length,e.createTypeReferenceNode(e.createIdentifier(e.idText(v)),void 0)}return n.symbol?E(n.symbol,t,788968):e.createTypeReferenceNode(e.createIdentifier(\"?\"),void 0)}if(3145728&n.flags){var h=1048576&n.flags?function(e){for(var n=[],t=0,r=0;r<e.length;r++){var a=e[r];if(t|=a.flags,!(98304&a.flags)){if(1536&a.flags){var i=512&a.flags?Ne:zi(a);if(1048576&i.flags){var o=i.types.length;if(r+o<=e.length&&Gl(e[r+o-1])===Gl(i.types[o-1])){n.push(i),r+=o-1;continue}}}n.push(a)}}65536&t&&n.push(Ee);32768&t&&n.push(ve);return n||e}(n.types):n.types;if(1===e.length(h))return o(h[0],t);var b=l(h,t,!0);return b&&b.length>0?e.createUnionOrIntersectionTypeNode(1048576&n.flags?177:178,b):void(t.encounteredError||262144&t.flags||(t.encounteredError=!0))}if(48&y)return e.Debug.assert(!!(524288&n.flags)),O(n);if(4194304&n.flags){var T=n.type;t.approximateLength+=6;var C=o(T,t);return e.createTypeOperatorNode(C)}if(8388608&n.flags){var A=o(n.objectType,t);C=o(n.indexType,t);return t.approximateLength+=2,e.createIndexedAccessTypeNode(A,C)}if(16777216&n.flags){var D=o(n.checkType,t),k=t.inferTypeParameters;t.inferTypeParameters=n.root.inferTypeParameters;var N=o(n.extendsType,t);t.inferTypeParameters=k;var I=o(Sl(n),t),M=o(xl(n),t);return t.approximateLength+=15,e.createConditionalTypeNode(D,N,I,M)}return 33554432&n.flags?o(n.typeVariable,t):e.Debug.fail(\"Should be unreachable.\")}function O(n){var r=\"\"+n.id,a=n.symbol;if(a){if(_g(a.valueDeclaration)){var i=n===ji(a)?788968:111551;return E(a,t,i)}if(32&a.flags&&!Ti(a)&&!(213===a.valueDeclaration.kind&&2048&t.flags)||896&a.flags||function(){var n=!!(8192&a.flags)&&e.some(a.declarations,(function(n){return e.hasModifier(n,32)})),i=!!(16&a.flags)&&(a.parent||e.forEach(a.declarations,(function(e){return 288===e.parent.kind||249===e.parent.kind})));if(n||i)return(!!(4096&t.flags)||t.visitedTypes&&t.visitedTypes.has(r))&&(!(8&t.flags)||va(a,t.enclosingDeclaration))}())return E(a,t,111551);if(t.visitedTypes&&t.visitedTypes.has(r)){var o=function(n){if(n.symbol&&2048&n.symbol.flags){var t=e.findAncestor(n.symbol.declarations[0].parent,(function(e){return 181!==e.kind}));if(246===t.kind)return Yr(t)}return}(n);return o?E(o,t,788968):s(t)}return R(n,P)}return P(n)}function R(n,r){var a,i=\"\"+n.id,o=16&e.getObjectFlags(n)&&n.symbol&&32&n.symbol.flags,c=4&e.getObjectFlags(n)&&n.node?\"N\"+x(n.node):n.symbol?(o?\"+\":\"\")+L(n.symbol):void 0;if(t.visitedTypes||(t.visitedTypes=e.createMap()),c&&!t.symbolDepth&&(t.symbolDepth=e.createMap()),c){if((a=t.symbolDepth.get(c)||0)>10)return s(t);t.symbolDepth.set(c,a+1)}t.visitedTypes.set(i,!0);var l=r(n);return t.visitedTypes.delete(i),c&&t.symbolDepth.set(c,a),l}function P(n){if(Ho(n))return function(n){e.Debug.assert(!!(524288&n.flags));var r,a=n.declaration.readonlyToken?e.createToken(n.declaration.readonlyToken.kind):void 0,i=n.declaration.questionToken?e.createToken(n.declaration.questionToken.kind):void 0;r=Bo(n)?e.createTypeOperatorNode(o(Vo(n),t)):o(wo(n),t);var s=p(Po(n),t,r),c=o(Fo(n),t),l=e.createMappedTypeNode(a,s,i,c);return t.approximateLength+=10,e.setEmitFlags(l,1)}(n);var r=Wo(n);if(!r.properties.length&&!r.stringIndexInfo&&!r.numberIndexInfo){if(!r.callSignatures.length&&!r.constructSignatures.length)return t.approximateLength+=2,e.setEmitFlags(e.createTypeLiteralNode(void 0),1);if(1===r.callSignatures.length&&!r.constructSignatures.length)return d(r.callSignatures[0],169,t);if(1===r.constructSignatures.length&&!r.callSignatures.length)return d(r.constructSignatures[0],170,t)}var i=t.flags;t.flags|=4194304;var l=function(n){if(a(t))return[e.createPropertySignature(void 0,\"...\",void 0,void 0,void 0)];for(var r=[],i=0,o=n.callSignatures;i<o.length;i++){var l=o[i];r.push(d(l,164,t))}for(var p=0,m=n.constructSignatures;p<m.length;p++){l=m[p];r.push(d(l,165,t))}if(n.stringIndexInfo){var f=void 0;2048&n.objectFlags?(f=u(Xs(me,n.stringIndexInfo.isReadonly,n.stringIndexInfo.declaration),0,t)).type=s(t):f=u(n.stringIndexInfo,0,t),r.push(f)}n.numberIndexInfo&&r.push(u(n.numberIndexInfo,1,t));var _=n.properties;if(!_)return r;for(var g=0,y=0,v=_;y<v.length;y++){var h=v[y];if(g++,2048&t.flags){if(4194304&h.flags)continue;24&e.getDeclarationModifierFlagsFromSymbol(h)&&t.tracker.reportPrivateInBaseOfClassExpression&&t.tracker.reportPrivateInBaseOfClassExpression(e.unescapeLeadingUnderscores(h.escapedName))}if(a(t)&&g+2<_.length-1){r.push(e.createPropertySignature(void 0,\"... \"+(_.length-g)+\" more ...\",void 0,void 0,void 0)),c(_[_.length-1],t,r);break}c(h,t,r)}return r.length?r:void 0}(r);t.flags=i;var m=e.createTypeLiteralNode(l);return t.approximateLength+=2,e.setEmitFlags(m,1024&t.flags?0:1)}function w(n){var r=ic(n);if(n.target===cn||n.target===ln){if(2&t.flags){var a=o(r[0],t);return e.createTypeReferenceNode(n.target===cn?\"Array\":\"ReadonlyArray\",[a])}var i=o(r[0],t),s=e.createArrayTypeNode(i);return n.target===cn?s:e.createTypeOperatorNode(137,s)}if(!(8&n.target.objectFlags)){if(2048&t.flags&&n.symbol.valueDeclaration&&e.isClassLike(n.symbol.valueDeclaration)&&!va(n.symbol,t.enclosingDeclaration))return O(n);var c=n.target.outerTypeParameters,u=(L=0,void 0);if(c)for(var d=c.length;L<d;){var p=L,m=$s(c[L]);do{L++}while(L<d&&$s(c[L])===m);if(!e.rangeEquals(c,r,p,L)){var f=l(r.slice(p,L),t),_=t.flags;t.flags|=16;var g=E(m,t,788968,f);t.flags=_,u=u?F(u,g):g}}var y=void 0;if(r.length>0){var v=(n.target.typeParameters||e.emptyArray).length;y=l(r.slice(L,v),t)}var h=t.flags;t.flags|=16;var b=E(n.symbol,t,788968,y);return t.flags=h,u?F(u,b):b}if(r.length>0){var T=oc(n),S=l(r.slice(0,T),t),x=n.target.hasRestElement;if(S){for(var L=n.target.minLength;L<Math.min(T,S.length);L++)S[L]=x&&L===T-1?e.createRestTypeNode(e.createArrayTypeNode(S[L])):e.createOptionalTypeNode(S[L]);var C=e.createTupleTypeNode(S);return n.target.readonly?e.createTypeOperatorNode(137,C):C}}if(t.encounteredError||524288&t.flags){C=e.createTupleTypeNode([]);return n.target.readonly?e.createTypeOperatorNode(137,C):C}t.encounteredError=!0}function F(n,t){if(e.isImportTypeNode(n)){var r=n.typeArguments;n.qualifier&&((e.isIdentifier(n.qualifier)?n.qualifier:n.qualifier.right).typeArguments=r),n.typeArguments=t.typeArguments;for(var a=0,i=G(t);a<i.length;a++){var o=i[a];n.qualifier=n.qualifier?e.createQualifiedName(n.qualifier,o):o}return n}r=n.typeArguments;(e.isIdentifier(n.typeName)?n.typeName:n.typeName.right).typeArguments=r,n.typeArguments=t.typeArguments;for(var s=0,c=G(t);s<c.length;s++){o=c[s];n.typeName=e.createQualifiedName(n.typeName,o)}return n}function G(n){for(var t=n.typeName,r=[];!e.isIdentifier(t);)r.unshift(t.right),t=t.left;return r.unshift(t),r}t.encounteredError=!0}function s(n){return n.approximateLength+=3,1&n.flags?e.createKeywordTypeNode(124):e.createTypeReferenceNode(e.createIdentifier(\"...\"),void 0)}function c(n,t,r){var a=!!(8192&e.getCheckFlags(n)),i=a&&33554432&t.flags?me:Ci(n),c=t.enclosingDeclaration;if(t.enclosingDeclaration=void 0,t.tracker.trackSymbol&&4096&e.getCheckFlags(n)){var l=e.first(n.declarations);if(co(l))if(e.isBinaryExpression(l)){var u=e.getNameOfDeclaration(l);u&&e.isElementAccessExpression(u)&&e.isPropertyAccessEntityNameExpression(u.argumentExpression)&&_(u.argumentExpression,c,t)}else _(l.name.expression,c,t)}var p=C(n,t,111551,!0);t.approximateLength+=e.symbolName(n).length+1,t.enclosingDeclaration=c;var m=16777216&n.flags?e.createToken(57):void 0;if(8208&n.flags&&!zo(i).length&&!ny(n))for(var f=0,g=_s(am(i,(function(e){return!(32768&e.flags)})),0);f<g.length;f++){var y=d(g[f],159,t);y.name=p,y.questionToken=m,r.push(T(y))}else{var v=t.flags;t.flags|=a?33554432:0;var h=void 0;h=a&&33554432&v?s(t):i?o(i,t):e.createKeywordTypeNode(124),t.flags=v;var b=ny(n)?[e.createToken(137)]:void 0;b&&(t.approximateLength+=9);var E=e.createPropertySignature(b,p,m,h,void 0);r.push(T(E))}function T(t){if(e.some(n.declarations,(function(e){return 316===e.kind}))){var r=e.find(n.declarations,(function(e){return 316===e.kind})).comment;r&&e.setSyntheticLeadingComments(t,[{kind:3,text:\"*\\n * \"+r.replace(/\\n/g,\"\\n * \")+\"\\n \",pos:-1,end:-1,hasTrailingNewLine:!0}])}else n.valueDeclaration&&e.setCommentRange(t,n.valueDeclaration);return t}}function l(n,t,r){if(e.some(n)){if(a(t)){if(!r)return[e.createTypeReferenceNode(\"...\",void 0)];if(n.length>2)return[o(n[0],t),e.createTypeReferenceNode(\"... \"+(n.length-2)+\" more ...\",void 0),o(n[n.length-1],t)]}for(var i=[],s=0,c=0,l=n;c<l.length;c++){var u=l[c];if(s++,a(t)&&s+2<n.length-1){i.push(e.createTypeReferenceNode(\"... \"+(n.length-s)+\" more ...\",void 0));var d=o(n[n.length-1],t);d&&i.push(d);break}t.approximateLength+=2;var p=o(u,t);p&&i.push(p)}return i}}function u(n,t,r){var a=e.getNameFromIndexInfo(n)||\"x\",i=e.createKeywordTypeNode(0===t?142:139),s=e.createParameter(void 0,void 0,void 0,a,void 0,i,void 0),c=o(n.type||me,r);return n.type||2097152&r.flags||(r.encounteredError=!0),r.approximateLength+=a.length+4,e.createIndexSignature(void 0,n.isReadonly?[e.createToken(137)]:void 0,[s],c)}function d(n,t,r){var a,i;32&r.flags&&n.target&&n.mapper&&n.target.typeParameters?i=n.target.typeParameters.map((function(e){return o(uu(e,n.mapper),r)})):a=n.typeParameters&&n.typeParameters.map((function(e){return m(e,r)}));var s,c=To(n).map((function(e){return f(e,r,161===t)}));if(n.thisParameter){var l=f(n.thisParameter,r);c.unshift(l)}var u=Ps(n);if(u){var d=2===u.kind||3===u.kind?e.createToken(123):void 0,p=1===u.kind||3===u.kind?e.setEmitFlags(e.createIdentifier(u.parameterName),16777216):e.createThisTypeNode(),_=u.type&&o(u.type,r);s=e.createTypePredicateNodeWithModifier(d,p,_)}else{var g=ws(n);s=g&&o(g,r)}return 256&r.flags?s&&124===s.kind&&(s=void 0):s||(s=e.createKeywordTypeNode(124)),r.approximateLength+=3,e.createSignatureDeclaration(t,a,c,s,i)}function p(n,t,r){var a=t.flags;t.flags&=-513;var i=S(n,t),s=ss(n),c=s&&o(s,t);return t.flags=a,e.createTypeParameterDeclaration(i,r,c)}function m(e,n,t){return void 0===t&&(t=Qo(e)),p(e,n,t&&o(t,n))}function f(n,t,r){var a=e.getDeclarationOfKind(n,155);a||Yt(n)||(a=e.getDeclarationOfKind(n,310));var i=Ci(n);a&&Eb(a)&&(i=Pd(i));var s=o(i,t),c=!(8192&t.flags)&&r&&a&&a.modifiers?a.modifiers.map(e.getSynthesizedClone):void 0,l=a&&e.isRestParameter(a)||32768&e.getCheckFlags(n)?e.createToken(25):void 0,u=a&&a.name?75===a.name.kind?e.setEmitFlags(e.getSynthesizedClone(a.name),16777216):152===a.name.kind?e.setEmitFlags(e.getSynthesizedClone(a.name.right),16777216):function n(r){t.tracker.trackSymbol&&e.isComputedPropertyName(r)&&oo(r)&&_(r.expression,t.enclosingDeclaration,t);var a=e.visitEachChild(r,n,e.nullTransformationContext,void 0,n),i=e.nodeIsSynthesized(a)?a:e.getSynthesizedClone(a);return 190===i.kind&&(i.initializer=void 0),e.setEmitFlags(i,16777217)}(a.name):e.symbolName(n),d=a&&Ls(a)||16384&e.getCheckFlags(n)?e.createToken(57):void 0,p=e.createParameter(void 0,c,l,u,d,s,void 0);return t.approximateLength+=e.symbolName(n).length+3,p}function _(n,t,r){if(r.tracker.trackSymbol){var a=e.getFirstIdentifier(n),i=ur(a,a.escapedText,1160127,void 0,void 0,!0);i&&r.tracker.trackSymbol(i,t,111551)}}function g(e,n,t,r){return n.tracker.trackSymbol(e,n.enclosingDeclaration,t),y(e,n,t,r)}function y(n,t,r,a){var i;return 262144&n.flags||!(t.enclosingDeclaration||64&t.flags)||134217728&t.flags?i=[n]:(i=e.Debug.assertDefined(function n(r,i,o){var s,c=_a(r,t.enclosingDeclaration,i,!!(128&t.flags));if(!c||ga(c[0],t.enclosingDeclaration,1===c.length?i:fa(i))){var l=Zr(c?c[0]:r,t.enclosingDeclaration);if(e.length(l)){s=l.map((function(n){return e.some(n.declarations,Ta)?b(n,t):void 0}));var u=l.map((function(e,n){return n}));u.sort((function(n,t){var r=s[n],a=s[t];if(r&&a){var i=e.pathIsRelative(a);return e.pathIsRelative(r)===i?e.moduleSpecifiers.countPathComponents(r)-e.moduleSpecifiers.countPathComponents(a):i?-1:1}return 0}));for(var d=u.map((function(e){return l[e]})),p=0,m=d;p<m.length;p++){var f=m[p],_=n(f,fa(i),!1);if(_){if(f.exports&&f.exports.get(\"export=\")&&ea(f.exports.get(\"export=\"),r)){c=_;break}c=_.concat(c||[$r(f,r)||r]);break}}}}if(c)return c;if(o||!(6144&r.flags)){if(!o&&!a&&e.forEach(r.declarations,Ta))return;return[r]}}(n,r,!0)),e.Debug.assert(i&&i.length>0)),i}function v(n,t){var r;return 524384&Ch(n).flags&&(r=e.createNodeArray(e.map(Oi(n),(function(e){return m(e,t)})))),r}function h(n,t,r){e.Debug.assert(n&&0<=t&&t<n.length);var a=n[t],i=\"\"+L(a);if(!r.typeParameterSymbolList||!r.typeParameterSymbolList.get(i)){var o;if((r.typeParameterSymbolList||(r.typeParameterSymbolList=e.createMap())).set(i,!0),512&r.flags&&t<n.length-1){var s=a,c=n[t+1];if(1&e.getCheckFlags(c)){var u=function(n){return e.concatenate(Mi(n),Oi(n))}(2097152&s.flags?kr(s):s);o=l(e.map(u,c.mapper),r)}else o=v(a,r)}return o}}function b(t,r){var a=e.getDeclarationOfKind(t,288);if(a&&void 0!==a.moduleName)return a.moduleName;if(!a){if(r.tracker.trackReferencedAmbientModule){var o=e.filter(t.declarations,e.isAmbientModule);if(e.length(o))for(var s=0,c=o;s<c.length;s++){var l=c[s];r.tracker.trackReferencedAmbientModule(l,t)}}if(i.test(t.escapedName))return t.escapedName.substring(1,t.escapedName.length-1)}if(!r.enclosingDeclaration||!r.tracker.moduleResolverHost)return i.test(t.escapedName)?t.escapedName.substring(1,t.escapedName.length-1):e.getSourceFileOfNode(e.getNonAugmentationDeclaration(t)).fileName;var u=e.getSourceFileOfNode(e.getOriginalNode(r.enclosingDeclaration)),d=ir(t),p=d.specifierCache&&d.specifierCache.get(u.path);if(!p){var m=P.out||P.outFile,f=r.tracker.moduleResolverHost,_=m?__assign(__assign({},P),{baseUrl:f.getCommonSourceDirectory()}):P;p=e.first(e.moduleSpecifiers.getModuleSpecifiers(t,_,u,f,n.getSourceFiles(),{importModuleSpecifierPreference:m?\"non-relative\":\"relative\"},n.redirectTargetsMap)),d.specifierCache=d.specifierCache||e.createMap(),d.specifierCache.set(u.path,p)}return p}function E(n,t,r,a){var i=g(n,t,r,!(16384&t.flags)),o=111551===r;if(e.some(i[0].declarations,Ta)){var s=i.length>1?y(i,i.length-1,1):void 0,c=a||h(i,0,t),l=b(i[0],t);!(67108864&t.flags)&&e.getEmitModuleResolutionKind(P)===e.ModuleResolutionKind.NodeJs&&l.indexOf(\"/node_modules/\")>=0&&(t.encounteredError=!0,t.tracker.reportLikelyUnsafeImportRequiredError&&t.tracker.reportLikelyUnsafeImportRequiredError(l));var u=e.createLiteralTypeNode(e.createLiteral(l));if(t.tracker.trackExternalModuleSymbolOfImportTypeNode&&t.tracker.trackExternalModuleSymbolOfImportTypeNode(i[0]),t.approximateLength+=l.length+10,!s||e.isEntityName(s)){if(s)(f=e.isIdentifier(s)?s:s.right).typeArguments=void 0;return e.createImportTypeNode(u,s,c,o)}var d=function n(t){return e.isIndexedAccessTypeNode(t.objectType)?n(t.objectType):t}(s),p=d.objectType.typeName;return e.createIndexedAccessTypeNode(e.createImportTypeNode(u,p,c,o),d.indexType)}var m=y(i,i.length-1,0);if(e.isIndexedAccessTypeNode(m))return m;if(o)return e.createTypeQueryNode(m);var f,_=(f=e.isIdentifier(m)?m:m.right).typeArguments;return f.typeArguments=void 0,e.createTypeReferenceNode(m,_);function y(n,r,i){var o,s=r===n.length-1?a:h(n,r,t),c=n[r],l=n[r-1];if(0===r)t.flags|=16777216,o=wa(c,t),t.approximateLength+=(o?o.length:0)+1,t.flags^=16777216;else if(l&&Wr(l)){var u=Wr(l);e.forEachEntry(u,(function(n,t){if(ea(n,c)&&!so(t)&&\"export=\"!==t)return o=e.unescapeLeadingUnderscores(t),!0}))}if(o||(o=wa(c,t)),t.approximateLength+=o.length+1,!(16&t.flags)&&l&&fo(l)&&fo(l).get(c.escapedName)&&ea(fo(l).get(c.escapedName),c)){var d=y(n,r-1,i);return e.isIndexedAccessTypeNode(d)?e.createIndexedAccessTypeNode(d,e.createLiteralTypeNode(e.createLiteral(o))):e.createIndexedAccessTypeNode(e.createTypeReferenceNode(d,s),e.createLiteralTypeNode(e.createLiteral(o)))}var p=e.setEmitFlags(e.createIdentifier(o,s),16777216);if(p.symbol=c,r>i){d=y(n,r-1,i);return e.isEntityName(d)?e.createQualifiedName(d,p):e.Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\")}return p}}function T(e,n){return!!ur(n.enclosingDeclaration,e,788968,void 0,e,!1)}function S(n,t){if(4&t.flags&&t.typeParameterNames){var r=t.typeParameterNames.get(\"\"+Bc(n));if(r)return r}var a=C(n.symbol,t,788968,!0);if(!(75&a.kind))return e.createIdentifier(\"(Missing type parameter)\");if(4&t.flags){for(var i=a.escapedText,o=0,s=i;t.typeParameterNamesByText&&t.typeParameterNamesByText.get(s)||T(s,t);)s=i+\"_\"+ ++o;s!==i&&(a=e.createIdentifier(s,a.typeArguments)),(t.typeParameterNames||(t.typeParameterNames=e.createMap())).set(\"\"+Bc(n),a),(t.typeParameterNamesByText||(t.typeParameterNamesByText=e.createMap())).set(a.escapedText,!0)}return a}function C(n,t,r,a){var i=g(n,t,r);return!a||1===i.length||t.encounteredError||65536&t.flags||(t.encounteredError=!0),function n(r,a){var i=h(r,a,t),o=r[a];0===a&&(t.flags|=16777216);var s=wa(o,t);0===a&&(t.flags^=16777216);var c=e.setEmitFlags(e.createIdentifier(s,i),16777216);return c.symbol=o,a>0?e.createQualifiedName(n(r,a-1),c):c}(i,i.length-1)}function A(n,t,r){var a=g(n,t,r);return function n(r,a){var i=h(r,a,t),o=r[a];0===a&&(t.flags|=16777216);var s=wa(o,t);0===a&&(t.flags^=16777216);var c=s.charCodeAt(0);if(e.isSingleOrDoubleQuote(c)&&e.some(o.declarations,Ta))return e.createLiteral(b(o,t));var l=e.isIdentifierStart(c,w);if(0===a||l){var u=e.setEmitFlags(e.createIdentifier(s,i),16777216);return u.symbol=o,a>0?e.createPropertyAccess(n(r,a-1),u):u}91===c&&(s=s.substring(1,s.length-1),c=s.charCodeAt(0));var d=void 0;return e.isSingleOrDoubleQuote(c)?(d=e.createLiteral(s.substring(1,s.length-1).replace(/\\\\./g,(function(e){return e.substring(1)})))).singleQuote=39===c:\"\"+ +s===s&&(d=e.createLiteral(+s)),d||((d=e.setEmitFlags(e.createIdentifier(s,i),16777216)).symbol=o),e.createElementAccess(n(r,a-1),d)}(a,a.length-1)}function D(n){return e.isIdentifierText(n,P.target)?e.createIdentifier(n):e.createLiteral(Df(n)?+n:n)}}(),X=e.createSymbolTable(),Y=Xt(4,\"undefined\");Y.declarations=[];var Q=Xt(1536,\"globalThis\",8);Q.exports=X,X.set(Q.escapedName,Q);var Z,$=Xt(4,\"arguments\"),ee=Xt(4,\"require\"),ne={getNodeCount:function(){return e.sum(n.getSourceFiles(),\"nodeCount\")},getIdentifierCount:function(){return e.sum(n.getSourceFiles(),\"identifierCount\")},getSymbolCount:function(){return e.sum(n.getSourceFiles(),\"symbolCount\")+_},getTypeCount:function(){return f},getRelationCacheSizes:function(){return{assignable:Bt.size,identity:Ut.size,subtype:Gt.size}},isUndefinedSymbol:function(e){return e===Y},isArgumentsSymbol:function(e){return e===$},isUnknownSymbol:function(e){return e===de},getMergedSymbol:Xr,getDiagnostics:qh,getGlobalDiagnostics:function(){return Jh(),Rt.getGlobalDiagnostics()},getTypeOfSymbolAtLocation:function(n,t){return(t=e.getParseTreeNode(t))?function(n,t){if(n=n.exportSymbol||n,75===t.kind&&(e.isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent),e.isExpressionNode(t)&&!e.isAssignmentTarget(t))){var r=Oy(t);if(na(or(t).resolvedSymbol)===n)return r}return Ci(n)}(n,t):ge},getSymbolsOfParameterPropertyDeclaration:function(n,t){var r=e.getParseTreeNode(n,e.isParameter);return void 0===r?e.Debug.fail(\"Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.\"):function(n,t){var r=n.parent,a=n.parent.parent,i=cr(r.locals,t,111551),o=cr(fo(a.symbol),t,111551);if(i&&o)return[i,o];return e.Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\")}(r,e.escapeLeadingUnderscores(t))},getDeclaredTypeOfSymbol:Yi,getPropertiesOfType:Xo,getPropertyOfType:function(n,t){return ms(n,e.escapeLeadingUnderscores(t))},getTypeOfPropertyOfType:function(n,t){return Ha(n,e.escapeLeadingUnderscores(t))},getIndexInfoOfType:vs,getSignaturesOfType:_s,getIndexTypeOfType:hs,getBaseTypes:Vi,getBaseTypeOfLiteralType:Ed,getWidenedType:Xd,getTypeFromTypeNode:function(n){var t=e.getParseTreeNode(n,e.isTypeNode);return t?Kl(t):ge},getParameterType:Ag,getPromisedTypeOfPromise:rv,getReturnTypeOfSignature:ws,isNullableType:a_,getNullableType:Rd,getNonNullableType:wd,getNonOptionalType:Bd,getTypeArguments:ic,typeToTypeNode:J.typeToTypeNode,indexInfoToIndexSignatureDeclaration:J.indexInfoToIndexSignatureDeclaration,signatureToSignatureDeclaration:J.signatureToSignatureDeclaration,symbolToEntityName:J.symbolToEntityName,symbolToExpression:J.symbolToExpression,symbolToTypeParameterDeclarations:J.symbolToTypeParameterDeclarations,symbolToParameterDeclaration:J.symbolToParameterDeclaration,typeParameterToDeclaration:J.typeParameterToDeclaration,getSymbolsInScope:function(n,t){return(n=e.getParseTreeNode(n))?function(n,t){if(16777216&n.flags)return[];var r=e.createSymbolTable(),a=!1;return i(),r.delete(\"this\"),Ts(r);function i(){for(;n;){switch(n.locals&&!sr(n)&&s(n.locals,t),n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;case 248:s(Yr(n).exports,2623475&t);break;case 247:s(Yr(n).exports,8&t);break;case 213:n.name&&o(n.symbol,t);case 244:case 245:a||s(fo(Yr(n)),788968&t);break;case 200:n.name&&o(n.symbol,t)}e.introducesArgumentsExoticObject(n)&&o($,t),a=e.hasModifier(n,32),n=n.parent}s(X,t)}function o(n,t){if(e.getCombinedLocalAndExportSymbolFlags(n)&t){var a=n.escapedName;r.has(a)||r.set(a,n)}}function s(e,n){n&&e.forEach((function(e){o(e,n)}))}}(n,t):[]},getSymbolAtLocation:function(n){return(n=e.getParseTreeNode(n))?nb(n):void 0},getShorthandAssignmentValueSymbol:function(n){return(n=e.getParseTreeNode(n))?function(e){if(e&&280===e.kind)return Rr(e.name,2208703);return}(n):void 0},getExportSpecifierLocalTargetSymbol:function(n){var t=e.getParseTreeNode(n,e.isExportSpecifier);return t?function(e){return e.parent.parent.moduleSpecifier?Sr(e.parent.parent,e):Rr(e.propertyName||e.name,2998271)}(t):void 0},getExportSymbolOfSymbol:function(e){return Xr(e.exportSymbol||e)},getTypeAtLocation:function(n){return(n=e.getParseTreeNode(n))?tb(n):ge},getTypeOfAssignmentPattern:function(n){var t=e.getParseTreeNode(n,e.isAssignmentPattern);return t&&rb(t)||ge},getPropertySymbolOfDestructuringAssignment:function(n){var t=e.getParseTreeNode(n,e.isIdentifier);return t?function(n){var t=rb(e.cast(n.parent.parent,e.isAssignmentPattern));return t&&ms(t,n.escapedText)}(t):void 0},signatureToString:function(n,t,r,a){return Ca(n,e.getParseTreeNode(t),r,a)},typeToString:function(n,t,r){return Aa(n,e.getParseTreeNode(t),r)},symbolToString:function(n,t,r,a){return La(n,e.getParseTreeNode(t),r,a)},typePredicateToString:function(n,t,r){return Ia(n,e.getParseTreeNode(t),r)},writeSignature:function(n,t,r,a,i){return Ca(n,e.getParseTreeNode(t),r,a,i)},writeType:function(n,t,r,a){return Aa(n,e.getParseTreeNode(t),r,a)},writeSymbol:function(n,t,r,a,i){return La(n,e.getParseTreeNode(t),r,a,i)},writeTypePredicate:function(n,t,r,a){return Ia(n,e.getParseTreeNode(t),r,a)},getAugmentedPropertiesOfType:sb,getRootSymbols:function n(t){var r=function(n){if(6&e.getCheckFlags(n))return e.mapDefined(ir(n).containingType.types,(function(e){return ms(e,n.escapedName)}));if(33554432&n.flags){var t=n,r=t.leftSpread,a=t.rightSpread,i=t.syntheticOrigin;return r?[r,a]:i?[i]:e.singleElementArray(function(e){var n,t=e;for(;t=ir(t).target;)n=t;return n}(n))}return}(t);return r?e.flatMap(r,n):[t]},getContextualType:function(n,t){var r=e.getParseTreeNode(n,e.isExpression);return r?ff(r,t):void 0},getContextualTypeForObjectLiteralElement:function(n){var t=e.getParseTreeNode(n,e.isObjectLiteralElementLike);return t?of(t):void 0},getContextualTypeForArgumentAtIndex:function(n,t){var r=e.getParseTreeNode(n,e.isCallLikeExpression);return r&&nf(r,t)},getContextualTypeForJsxAttribute:function(n){var t=e.getParseTreeNode(n,e.isJsxAttributeLike);return t&&lf(t)},isContextSensitive:fu,getFullyQualifiedName:Or,getResolvedSignature:function(e,n,t){return te(e,n,t,0)},getResolvedSignatureForSignatureHelp:function(e,n,t){return te(e,n,t,16)},getExpandedParameters:To,hasEffectiveRestParameter:Mg,getConstantValue:function(n){var t=e.getParseTreeNode(n,Ab);return t?Db(t):void 0},isValidPropertyAccess:function(n,t){var r=e.getParseTreeNode(n,e.isPropertyAccessOrQualifiedNameOrImportTypeNode);return!!r&&function(e,n){switch(e.kind){case 193:return x_(e,101===e.expression.kind,n,Xd(Py(e.expression)));case 152:return x_(e,!1,n,Xd(Py(e.left)));case 187:return x_(e,!1,n,Kl(e))}}(r,e.escapeLeadingUnderscores(t))},isValidPropertyAccessForCompletions:function(n,t,r){var a=e.getParseTreeNode(n,e.isPropertyAccessExpression);return!!a&&function(e,n,t){return x_(e,193===e.kind&&101===e.expression.kind,t.escapedName,n)}(a,t,r)},getSignatureFromDeclaration:function(n){var t=e.getParseTreeNode(n,e.isFunctionLike);return t?Ns(t):void 0},isImplementationOfOverload:function(n){var t=e.getParseTreeNode(n,e.isFunctionLike);return t?bb(t):void 0},getImmediateAliasedSymbol:If,getAliasedSymbol:kr,getEmitResolver:function(e,n){return qh(e,n),q},getExportsOfModule:Kr,getExportsAndPropertiesOfModule:function(n){var t=Kr(n),r=Vr(n);r!==n&&e.addRange(t,Xo(Ci(r)));return t},getSymbolWalker:e.createGetSymbolWalker((function(e){return Bs(e)||me}),Ps,ws,Vi,Wo,Ci,Ap,ys,Qo,e.getFirstIdentifier,ic),getAmbientModules:function(){en||(en=[],X.forEach((function(e,n){i.test(n)&&en.push(e)})));return en},getJsxIntrinsicTagNamesAt:function(n){var t=Bf(T.IntrinsicElements,n);return t?Xo(t):e.emptyArray},isOptionalParameter:function(n){var t=e.getParseTreeNode(n,e.isParameter);return!!t&&Ls(t)},tryGetMemberInModuleExports:function(n,t){return Hr(e.escapeLeadingUnderscores(n),t)},tryGetMemberInModuleExportsAndProperties:function(n,t){return function(e,n){var t=Hr(e,n);if(t)return t;var r=Vr(n);if(r===n)return;var a=Ci(r);return 131068&a.flags?void 0:ms(a,e)}(e.escapeLeadingUnderscores(n),t)},tryFindAmbientModuleWithoutAugmentations:function(e){return xs(e,!1)},getApparentType:ls,getUnionType:Wc,isTypeAssignableTo:function(e,n){return xu(e,n)},createAnonymousType:pa,createSignature:vo,createSymbol:Xt,createIndexInfo:Xs,getAnyType:function(){return me},getStringType:function(){return Se},getNumberType:function(){return xe},createPromiseType:Bg,createArrayType:Oc,getElementTypeOfArrayType:md,getBooleanType:function(){return Ne},getFalseType:function(e){return e?Ce:Ae},getTrueType:function(e){return e?De:ke},getVoidType:function(){return Me},getUndefinedType:function(){return ve},getNullType:function(){return Ee},getESSymbolType:function(){return Ie},getNeverType:function(){return Oe},getOptionalType:function(){return be},isSymbolAccessible:ha,getObjectFlags:e.getObjectFlags,isArrayType:dd,isTupleType:Cd,isArrayLikeType:fd,isTypeInvalidDueToUnionDiscriminant:function(e,n){return n.properties.some((function(n){var t=n.name&&el(n.name),r=t&&io(t)?uo(t):void 0,a=void 0===r?void 0:Ha(e,r);return!!a&&bd(a)&&!xu(tb(n),a)}))},getAllPossiblePropertiesOfTypes:function(n){var t=Wc(n);if(!(1048576&t.flags))return sb(t);for(var r=e.createSymbolTable(),a=0,i=n;a<i.length;a++)for(var o=i[a],s=0,c=sb(o);s<c.length;s++){var l=c[s].escapedName;if(!r.has(l)){var u=us(t,l);u&&r.set(l,u)}}return e.arrayFrom(r.values())},getSuggestionForNonexistentProperty:function(e,n){return h_(e,n)},getSuggestionForNonexistentSymbol:function(n,t,r){return function(n,t,r){var a=b_(n,t,r);return a&&e.symbolName(a)}(n,e.escapeLeadingUnderscores(t),r)},getSuggestionForNonexistentExport:function(n,t){return(r=E_(n,t))&&e.symbolName(r);var r},getBaseConstraintOfType:ts,getDefaultFromTypeParameter:function(e){return e&&262144&e.flags?ss(e):void 0},resolveName:function(n,t,r,a){return ur(t,e.escapeLeadingUnderscores(n),r,void 0,void 0,!1,a)},getJsxNamespace:function(n){return e.unescapeLeadingUnderscores(Ht(n))},getAccessibleSymbolChain:_a,getTypePredicateOfSignature:Ps,resolveExternalModuleSymbol:Vr,tryGetThisTypeAt:function(n,t){return(n=e.getParseTreeNode(n))&&Km(n,t)},getTypeArgumentConstraint:function(n){var t=e.getParseTreeNode(n,e.isTypeNode);return t&&function(n){var t=e.tryCast(n.parent,e.isTypeReferenceType);if(!t)return;var r=Jy(t),a=Qo(r[t.typeArguments.indexOf(n)]);return a&&uu(a,Jl(r,zy(t,r)))}(t)},getSuggestionDiagnostics:function(t,a){if(e.skipTypeChecking(t,P,n))return e.emptyArray;var i;try{return r=a,Hh(t),e.Debug.assert(!!(1&or(t).flags)),i=e.addRange(i,Pt.getDiagnostics(t.fileName)),t.isDeclarationFile||Wh(0)&&Wh(1)||gv(zh(t),(function(n,t,r){e.containsParseError(n)||Wh(t)||(i||(i=[])).push(__assign(__assign({},r),{category:e.DiagnosticCategory.Suggestion}))})),i||e.emptyArray}finally{r=void 0}},runWithCancellationToken:function(e,n){try{return r=e,n(ne)}finally{r=void 0}},getLocalTypeParametersOfClassOrInterfaceOrTypeAlias:Oi};function te(n,t,r,a){var i=e.getParseTreeNode(n,e.isCallLikeExpression);Z=r;var o=i?fg(i,t,a):void 0;return Z=void 0,o}var re=e.createMap(),ae=e.createMap(),ie=e.createMap(),oe=e.createMap(),se=e.createMap(),ce=e.createMap(),le=[],ue=e.createMap(),de=Xt(4,\"unknown\"),pe=Xt(0,\"__resolving__\"),me=ia(1,\"any\"),fe=ia(1,\"any\"),_e=ia(1,\"any\"),ge=ia(1,\"error\"),ye=ia(2,\"unknown\"),ve=ia(32768,\"undefined\"),he=B?ve:ia(32768,\"undefined\",262144),be=ia(32768,\"undefined\"),Ee=ia(65536,\"null\"),Te=B?Ee:ia(65536,\"null\",262144),Se=ia(4,\"string\"),xe=ia(8,\"number\"),Le=ia(64,\"bigint\"),Ce=ia(512,\"false\"),Ae=ia(512,\"false\"),De=ia(512,\"true\"),ke=ia(512,\"true\");De.regularType=ke,De.freshType=De,ke.regularType=ke,ke.freshType=De,Ce.regularType=Ae,Ce.freshType=Ce,Ae.regularType=Ae,Ae.freshType=Ce;var Ne=oa([Ae,ke]);oa([Ae,De]),oa([Ce,ke]),oa([Ce,De]);var Ie=ia(4096,\"symbol\"),Me=ia(16384,\"void\"),Oe=ia(131072,\"never\"),Re=ia(131072,\"never\"),Pe=ia(131072,\"never\",1048576),we=ia(131072,\"never\"),Fe=ia(131072,\"never\"),Ge=ia(67108864,\"object\"),Be=Wc([Se,xe,Ie]),Ve=W?Se:Be,Ue=Wc([xe,Le]),je=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Ke=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);Ke.objectFlags|=4096;var He=Xt(2048,\"__type\");He.members=e.createSymbolTable();var We=pa(He,O,e.emptyArray,e.emptyArray,void 0,void 0),ze=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);ze.instantiations=e.createMap();var qe=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0);qe.objectFlags|=1048576;var Je=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Xe=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Ye=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0),Qe=ca(),Ze=ca();Ze.constraint=Qe;var $e,en,nn,tn,rn,an,on,sn,cn,ln,un,dn,pn,mn,fn,_n,gn,yn,vn,hn,bn,En,Tn,Sn,xn,Ln,Cn,An,Dn,kn,Nn,In,Mn,On,Rn,Pn,wn,Fn,Gn,Bn,Vn,Un,jn,Kn,Hn,Wn,zn=ca(),qn=As(1,\"<<unresolved>>\",0,me),Jn=vo(void 0,void 0,void 0,e.emptyArray,me,void 0,0,0),Xn=vo(void 0,void 0,void 0,e.emptyArray,ge,void 0,0,0),Yn=vo(void 0,void 0,void 0,e.emptyArray,me,void 0,0,0),Qn=vo(void 0,void 0,void 0,e.emptyArray,Re,void 0,0,0),Zn=Xs(Se,!0),$n=e.createMap(),et={get yieldType(){throw new Error(\"Not supported\")},get returnType(){throw new Error(\"Not supported\")},get nextType(){throw new Error(\"Not supported\")}},nt=Xv(me,me,me),tt=Xv(me,me,ye),rt=Xv(Oe,me,ve),at={iterableCacheKey:\"iterationTypesOfAsyncIterable\",iteratorCacheKey:\"iterationTypesOfAsyncIterator\",iteratorSymbolName:\"asyncIterator\",getGlobalIteratorType:function(e){return On||(On=xc(\"AsyncIterator\",3,e))||ze},getGlobalIterableType:function(e){return Mn||(Mn=xc(\"AsyncIterable\",1,e))||ze},getGlobalIterableIteratorType:function(e){return Rn||(Rn=xc(\"AsyncIterableIterator\",1,e))||ze},getGlobalGeneratorType:function(e){return Pn||(Pn=xc(\"AsyncGenerator\",3,e))||ze},resolveIterationType:iv,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},it={iterableCacheKey:\"iterationTypesOfIterable\",iteratorCacheKey:\"iterationTypesOfIterator\",iteratorSymbolName:\"iterator\",getGlobalIteratorType:function(e){return An||(An=xc(\"Iterator\",3,e))||ze},getGlobalIterableType:kc,getGlobalIterableIteratorType:function(e){return Dn||(Dn=xc(\"IterableIterator\",1,e))||ze},getGlobalGeneratorType:function(e){return kn||(kn=xc(\"Generator\",3,e))||ze},resolveIterationType:function(e,n){return e},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},ot=e.createMap(),st=e.createMap(),ct=0,lt=0,ut=0,dt=!1,pt=0,mt=Vl(\"\"),ft=Vl(0),_t=Vl({negative:!1,base10Value:\"0\"}),gt=[],yt=[],vt=[],ht=0,bt=[],Et=[],Tt=[],St=[],xt=[],Lt=[],Ct=[],At=[],Dt=[],kt=[],Nt=[],It=[],Mt=[],Ot=[],Rt=e.createDiagnosticCollection(),Pt=e.createDiagnosticCollection(),wt=e.createMapFromTemplate({string:Se,number:xe,bigint:Le,boolean:Ne,symbol:Ie,undefined:ve}),Ft=Wc(e.arrayFrom(v.keys(),Vl)),Gt=e.createMap(),Bt=e.createMap(),Vt=e.createMap(),Ut=e.createMap(),jt=e.createMap(),Kt=e.createSymbolTable();return Kt.set(Y.escapedName,Y),function(){for(var t=0,r=n.getSourceFiles();t<r.length;t++){var a=r[t];e.bindSourceFile(a,P)}var i;$e=e.createMap();for(var o=0,s=n.getSourceFiles();o<s.length;o++){if(!(a=s[o]).redirectInfo){if(!e.isExternalOrCommonJsModule(a)){var c=a.locals.get(\"globalThis\");if(c)for(var l=0,u=c.declarations;l<u.length;l++){var d=u[l];Rt.add(e.createDiagnosticForNode(d,e.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0,\"globalThis\"))}rr(X,a.locals)}if(a.jsGlobalAugmentations&&rr(X,a.jsGlobalAugmentations),a.patternAmbientModules&&a.patternAmbientModules.length&&(nn=e.concatenate(nn,a.patternAmbientModules)),a.moduleAugmentations.length&&(i||(i=[])).push(a.moduleAugmentations),a.symbol&&a.symbol.globalExports)a.symbol.globalExports.forEach((function(e,n){X.has(n)||X.set(n,e)}))}}if(i)for(var p=0,m=i;p<m.length;p++)for(var f=m[p],_=0,g=f;_<g.length;_++){var y=g[_];e.isGlobalScopeAugmentation(y.parent)&&ar(y)}(function(n,t,r){t.forEach((function(t,a){var i=n.get(a);i?e.forEach(i.declarations,function(n,t){return function(r){return Rt.add(e.createDiagnosticForNode(r,t,n))}}(e.unescapeLeadingUnderscores(a),r)):n.set(a,t)}))})(X,Kt,e.Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0),ir(Y).type=he,ir($).type=xc(\"IArguments\",0,!0),ir(de).type=ge,ir(Q).type=sa(16,Q),cn=xc(\"Array\",1,!0),rn=xc(\"Object\",0,!0),an=xc(\"Function\",0,!0),on=U&&xc(\"CallableFunction\",0,!0)||an,sn=U&&xc(\"NewableFunction\",0,!0)||an,un=xc(\"String\",0,!0),dn=xc(\"Number\",0,!0),pn=xc(\"Boolean\",0,!0),mn=xc(\"RegExp\",0,!0),_n=Oc(me),(gn=Oc(fe))===je&&(gn=pa(void 0,O,e.emptyArray,e.emptyArray,void 0,void 0));if(ln=Nc(\"ReadonlyArray\",1)||cn,yn=ln?Ic(ln,[me]):_n,fn=Nc(\"ThisType\",1),i)for(var v=0,h=i;v<h.length;v++){f=h[v];for(var b=0,E=f;b<E.length;b++){y=E[b];e.isGlobalScopeAugmentation(y.parent)||ar(y)}}$e.forEach((function(n){var t=n.firstFile,r=n.secondFile,a=n.conflictingSymbols;if(a.size<8)a.forEach((function(n,t){for(var r=n.isBlockScoped,a=n.firstFileLocations,i=n.secondFileLocations,o=r?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,s=0,c=a;s<c.length;s++){tr(c[s],o,t,i)}for(var l=0,u=i;l<u.length;l++){tr(u[l],o,t,a)}}));else{var i=e.arrayFrom(a.keys()).join(\", \");Rt.add(e.addRelatedInfo(e.createDiagnosticForNode(t,e.Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,i),e.createDiagnosticForNode(r,e.Diagnostics.Conflicts_are_in_this_file))),Rt.add(e.addRelatedInfo(e.createDiagnosticForNode(r,e.Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,i),e.createDiagnosticForNode(t,e.Diagnostics.Conflicts_are_in_this_file)))}})),$e=void 0}(),ne;function Ht(n){if(n){var t=e.getSourceFileOfNode(n);if(t){if(t.localJsxNamespace)return t.localJsxNamespace;var r=t.pragmas.get(\"jsx\");if(r){var a=e.isArray(r)?r[0]:r;if(t.localJsxFactory=e.parseIsolatedEntityName(a.arguments.factory,w),t.localJsxFactory)return t.localJsxNamespace=e.getFirstIdentifier(t.localJsxFactory).escapedText}}}return Kn||(Kn=\"React\",P.jsxFactory?(Hn=e.parseIsolatedEntityName(P.jsxFactory,w))&&(Kn=e.getFirstIdentifier(Hn).escapedText):P.reactNamespace&&(Kn=e.escapeLeadingUnderscores(P.reactNamespace))),Kn}function Wt(n,t,r,a,i,o){var s=n?e.createDiagnosticForNode(n,t,r,a,i,o):e.createCompilerDiagnostic(t,r,a,i,o);return Rt.add(s),s}function zt(n,t){n?Rt.add(t):Pt.add(__assign(__assign({},t),{category:e.DiagnosticCategory.Suggestion}))}function qt(n,t,r,a,i,o,s){zt(n,\"message\"in r?e.createDiagnosticForNode(t,r,a,i,o,s):e.createDiagnosticForNodeFromMessageChain(t,r))}function Jt(n,t,r,a,i,o,s){var c=Wt(n,r,a,i,o,s);if(t){var l=e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(c,l)}return c}function Xt(e,n,t){_++;var r=new d(33554432|e,n);return r.checkFlags=t||0,r}function Yt(e){return 0!=(33554432&e.flags)}function Qt(e){var n=0;return 2&e&&(n|=111551),1&e&&(n|=111550),4&e&&(n|=0),8&e&&(n|=900095),16&e&&(n|=110991),32&e&&(n|=899503),64&e&&(n|=788872),256&e&&(n|=899327),128&e&&(n|=899967),512&e&&(n|=110735),8192&e&&(n|=103359),32768&e&&(n|=46015),65536&e&&(n|=78783),262144&e&&(n|=526824),524288&e&&(n|=788968),2097152&e&&(n|=2097152),n}function Zt(e,n){n.mergeId||(n.mergeId=c,c++),bt[n.mergeId]=e}function $t(n){var t=Xt(n.flags,n.escapedName);return t.declarations=n.declarations?n.declarations.slice():[],t.parent=n.parent,n.valueDeclaration&&(t.valueDeclaration=n.valueDeclaration),n.constEnumOnlyModule&&(t.constEnumOnlyModule=!0),n.members&&(t.members=e.cloneMap(n.members)),n.exports&&(t.exports=e.cloneMap(n.exports)),Zt(t,n),t}function er(n,t,r){if(void 0===r&&(r=!1),!(n.flags&Qt(t.flags))||67108864&(t.flags|n.flags)){if(t===n)return n;if(!(33554432&n.flags)){var a=Dr(n);if(a===de)return t;n=$t(a)}512&t.flags&&512&n.flags&&n.constEnumOnlyModule&&!t.constEnumOnlyModule&&(n.constEnumOnlyModule=!1),n.flags|=t.flags,t.valueDeclaration&&(!n.valueDeclaration||e.isAssignmentDeclaration(n.valueDeclaration)&&!e.isAssignmentDeclaration(t.valueDeclaration)||e.isEffectiveModuleDeclaration(n.valueDeclaration)&&!e.isEffectiveModuleDeclaration(t.valueDeclaration))&&(n.valueDeclaration=t.valueDeclaration),e.addRange(n.declarations,t.declarations),t.members&&(n.members||(n.members=e.createSymbolTable()),rr(n.members,t.members,r)),t.exports&&(n.exports||(n.exports=e.createSymbolTable()),rr(n.exports,t.exports,r)),r||Zt(n,t)}else if(1024&n.flags)n!==Q&&Wt(e.getNameOfDeclaration(t.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,La(n));else{var i=!!(384&n.flags||384&t.flags),o=!!(2&n.flags||2&t.flags),s=i?e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:o?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,c=t.declarations&&e.getSourceFileOfNode(t.declarations[0]),l=n.declarations&&e.getSourceFileOfNode(n.declarations[0]),u=La(t);if(c&&l&&$e&&!i&&c!==l){var d=-1===e.comparePaths(c.path,l.path)?c:l,p=d===c?l:c,m=e.getOrUpdate($e,d.path+\"|\"+p.path,(function(){return{firstFile:d,secondFile:p,conflictingSymbols:e.createMap()}})),f=e.getOrUpdate(m.conflictingSymbols,u,(function(){return{isBlockScoped:o,firstFileLocations:[],secondFileLocations:[]}}));_(f.firstFileLocations,t),_(f.secondFileLocations,n)}else nr(t,s,u,n),nr(n,s,u,t)}return n;function _(n,t){for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];e.pushIfUnique(n,(e.getExpandoInitializer(i,!1)?e.getNameOfExpando(i):e.getNameOfDeclaration(i))||i)}}}function nr(n,t,r,a){e.forEach(n.declarations,(function(n){tr((e.getExpandoInitializer(n,!1)?e.getNameOfExpando(n):e.getNameOfDeclaration(n))||n,t,r,a.declarations)}))}function tr(n,t,r,a){for(var i=function(n,t,r,a,i,o){var s=n?e.createDiagnosticForNode(n,t,r,a,i,o):e.createCompilerDiagnostic(t,r,a,i,o),c=Rt.lookup(s);return c||(Rt.add(s),s)}(n,t,r),o=0,s=a||e.emptyArray;o<s.length;o++){var c=s[o];i.relatedInformation=i.relatedInformation||[],e.length(i.relatedInformation)>=5||e.addRelatedInfo(i,e.length(i.relatedInformation)?e.createDiagnosticForNode(c,e.Diagnostics.and_here):e.createDiagnosticForNode(c,e.Diagnostics._0_was_also_declared_here,r))}}function rr(e,n,t){void 0===t&&(t=!1),n.forEach((function(n,r){var a=e.get(r);e.set(r,a?er(a,n,t):n)}))}function ar(n){var t=n.parent;if(t.symbol.declarations[0]===t)if(e.isGlobalScopeAugmentation(t))rr(X,t.symbol.exports);else{var r=Fr(n,n,8388608&n.parent.parent.flags?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,!0);if(!r)return;if(1920&(r=Vr(r)).flags)if(e.some(nn,(function(e){return r===e.symbol}))){var a=er(t.symbol,r,!0);tn||(tn=e.createMap()),tn.set(n.text,a)}else er(r,t.symbol);else Wt(n,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,n.text)}else e.Debug.assert(t.symbol.declarations.length>1)}function ir(e){if(33554432&e.flags)return e;var n=L(e);return Et[n]||(Et[n]={})}function or(e){var n=x(e);return Tt[n]||(Tt[n]={flags:0})}function sr(n){return 288===n.kind&&!e.isExternalOrCommonJsModule(n)}function cr(n,t,r){if(r){var a=n.get(t);if(a){if(e.Debug.assert(0==(1&e.getCheckFlags(a)),\"Should never get an instantiated symbol here.\"),a.flags&r)return a;if(2097152&a.flags){var i=kr(a);if(i===de||i.flags&r)return a}}}}function lr(t,r){var a=e.getSourceFileOfNode(t),i=e.getSourceFileOfNode(r);if(a!==i){if(F&&(a.externalModuleIndicator||i.externalModuleIndicator)||!P.outFile&&!P.out||Dp(r)||8388608&t.flags)return!0;if(l(r,t))return!0;var o=n.getSourceFiles();return o.indexOf(a)<=o.indexOf(i)}if(t.pos<=r.pos){if(190===t.kind){var s=e.getAncestor(r,190);return s?e.findAncestor(s,e.isBindingElement)!==e.findAncestor(t,e.isBindingElement)||t.pos<s.pos:lr(e.getAncestor(t,241),r)}return 241===t.kind?!function(n,t){var r=e.getEnclosingBlockScopeContainer(n);switch(n.parent.parent.kind){case 224:case 229:case 231:if(yr(t,n,r))return!0}var a=n.parent.parent;return e.isForInOrOfStatement(a)&&yr(t,a.expression,r)}(t,r):e.isClassDeclaration(t)?!e.findAncestor(r,(function(n){return e.isComputedPropertyName(n)&&n.parent.parent===t})):!e.isPropertyDeclaration(t)||!function(n,t){if(t.end>n.end)return!1;return void 0===e.findAncestor(t,(function(e){if(e===n)return\"quit\";switch(e.kind){case 201:case 158:return!0;case 222:switch(e.parent.kind){case 162:case 160:case 163:return!0;default:return!1}default:return!1}}))}(t,r)}if(261===r.parent.kind||258===r.parent.kind&&r.parent.isExportEquals)return!0;if(258===r.kind&&r.isExportEquals)return!0;var c=e.getEnclosingBlockScopeContainer(t);return!!(4194304&r.flags)||Dp(r)||l(r,t,c);function l(n,t,r){return!!e.findAncestor(n,(function(a){if(a===r)return\"quit\";if(e.isFunctionLike(a))return!0;if(a.parent&&158===a.parent.kind&&a.parent.initializer===a)if(e.hasModifier(a.parent,32)){if(160===t.kind)return!0}else if(!(158===t.kind&&!e.hasModifier(t,32))||e.getContainingClass(n)!==e.getContainingClass(t))return!0;return!1}))}}function ur(e,n,t,r,a,i,o,s){return void 0===o&&(o=!1),dr(e,n,t,r,a,i,o,cr,s)}function dr(n,t,r,a,i,o,s,c,l){var u,d,p,m,f,_,g=n,y=!1,v=n,h=!1;e:for(;n;){if(n.locals&&!sr(n)&&(u=c(n.locals,t,r))){var b=!0;if(e.isFunctionLike(n)&&d&&d!==n.body){if(r&u.flags&788968&&301!==d.kind&&(b=!!(262144&u.flags)&&(d===n.type||155===d.kind||154===d.kind)),r&u.flags&3){var E=n;P.target&&P.target>=2&&e.isParameter(d)&&E.body&&u.valueDeclaration.pos>=E.body.pos&&u.valueDeclaration.end<=E.body.end?b=!1:1&u.flags&&(b=155===d.kind||d===n.type&&!!e.findAncestor(u.valueDeclaration,e.isParameter))}}else 179===n.kind&&(b=d===n.trueType);if(b)break e;u=void 0}switch(y=y||pr(n,d),n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;h=!0;case 248:var T=Yr(n).exports||O;if(288===n.kind||e.isModuleDeclaration(n)&&8388608&n.flags&&!e.isGlobalScopeAugmentation(n)){if(u=T.get(\"default\")){var S=e.getLocalSymbolForExportDefault(u);if(S&&u.flags&r&&S.escapedName===t)break e;u=void 0}var x=T.get(t);if(x&&2097152===x.flags&&e.getDeclarationOfKind(x,261))break}if(\"default\"!==t&&(u=c(T,t,2623475&r))){if(!e.isSourceFile(n)||!n.commonJsModuleIndicator||u.declarations.some(e.isJSDocTypeAlias))break e;u=void 0}break;case 247:if(u=c(Yr(n).exports,t,8&r))break e;break;case 158:if(!e.hasModifier(n,32)){var L=ra(n.parent);L&&L.locals&&c(L.locals,t,111551&r)&&(m=n)}break;case 244:case 213:case 245:if(u=c(Yr(n).members||O,t,788968&r)){if(!_r(u,n)){u=void 0;break}if(d&&e.hasModifier(d,32))return void Wt(v,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);break e}if(213===n.kind&&32&r){var C=n.name;if(C&&t===C.escapedText){u=n.symbol;break e}}break;case 215:if(d===n.expression&&89===n.parent.token){var A=n.parent.parent;if(e.isClassLike(A)&&(u=c(Yr(A).members,t,788968&r)))return void(a&&Wt(v,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters))}break;case 153:if(_=n.parent.parent,(e.isClassLike(_)||245===_.kind)&&(u=c(Yr(_).members,t,788968&r)))return void Wt(v,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);break;case 201:if(P.target>=2)break;case 160:case 161:case 162:case 163:case 243:if(3&r&&\"arguments\"===t){u=$;break e}break;case 200:if(3&r&&\"arguments\"===t){u=$;break e}if(16&r){var D=n.name;if(D&&t===D.escapedText){u=n.symbol;break e}}break;case 156:n.parent&&155===n.parent.kind&&(n=n.parent),n.parent&&(e.isClassElement(n.parent)||244===n.parent.kind)&&(n=n.parent);break;case 315:case 308:case 309:n=e.getJSDocHost(n);break;case 155:d&&d===n.initializer&&(f=n);break;case 190:if(d&&d===n.initializer)155===(R=e.getRootDeclaration(n)).kind&&(f=n)}mr(n)&&(p=n),d=n,n=n.parent}if(!o||!u||p&&u===p.symbol||(u.isReferenced|=r),!u){if(d&&(e.Debug.assert(288===d.kind),d.commonJsModuleIndicator&&\"exports\"===t&&r&d.symbol.flags))return d.symbol;s||(u=c(X,t,r))}if(!u&&g&&e.isInJSFile(g)&&g.parent&&e.isRequireCall(g.parent,!1))return ee;if(u){if(a){if(m){var k=m.name;return void Wt(v,e.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,e.declarationNameToString(k),fr(i))}if(v&&(2&r||(32&r||384&r)&&111551==(111551&r))){var N=na(u);(2&N.flags||32&N.flags||384&N.flags)&&function(n,t){if(e.Debug.assert(!!(2&n.flags||32&n.flags||384&n.flags)),67108881&n.flags&&32&n.flags)return;var r=e.find(n.declarations,(function(n){return e.isBlockOrCatchScoped(n)||e.isClassLike(n)||247===n.kind}));if(void 0===r)return e.Debug.fail(\"checkResolvedBlockScopedVariable could not find block-scoped declaration\");if(!(8388608&r.flags||lr(r,t))){var a=void 0,i=e.declarationNameToString(e.getNameOfDeclaration(r));2&n.flags?a=Wt(t,e.Diagnostics.Block_scoped_variable_0_used_before_its_declaration,i):32&n.flags?a=Wt(t,e.Diagnostics.Class_0_used_before_its_declaration,i):256&n.flags?a=Wt(t,e.Diagnostics.Enum_0_used_before_its_declaration,i):(e.Debug.assert(!!(128&n.flags)),P.preserveConstEnums&&(a=Wt(t,e.Diagnostics.Class_0_used_before_its_declaration,i))),a&&e.addRelatedInfo(a,e.createDiagnosticForNode(r,e.Diagnostics._0_is_declared_here,i))}}(N,v)}if(u&&h&&111551==(111551&r)&&!(4194304&g.flags)){var I=Xr(u);e.length(I.declarations)&&e.every(I.declarations,(function(n){return e.isNamespaceExportDeclaration(n)||e.isSourceFile(n)&&!!n.symbol.globalExports}))&&qt(!P.allowUmdGlobalAccess,v,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead,e.unescapeLeadingUnderscores(t))}if(u&&f&&!y&&111551==(111551&r)){var M=Xr(_o(u)),R=e.getRootDeclaration(f);M===Yr(f)?Wt(v,e.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer,e.declarationNameToString(f.name)):M.valueDeclaration&&M.valueDeclaration.pos>f.pos&&R.parent.locals&&c(R.parent.locals,M.escapedName,r)===M&&Wt(v,e.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(f.name),e.declarationNameToString(v))}}return u}if(a&&!(v&&(function(n,t,r){if(!e.isIdentifier(n)||n.escapedText!==t||Yh(n)||Dp(n))return!1;var a=e.getThisContainer(n,!1),i=a;for(;i;){if(e.isClassLike(i.parent)){var o=Yr(i.parent);if(!o)break;if(ms(Ci(o),t))return Wt(n,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0,fr(r),La(o)),!0;if(i===a&&!e.hasModifier(i,32))if(ms(Yi(o).thisType,t))return Wt(n,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0,fr(r)),!0}i=i.parent}return!1}(v,t,i)||gr(v)||function(n,t,r){var a=1920|(e.isInJSFile(n)?111551:0);if(r===a){var i=Dr(ur(n,t,788968&~a,void 0,void 0,!1)),o=n.parent;if(i){if(e.isQualifiedName(o)){e.Debug.assert(o.left===n,\"Should only be resolving left side of qualified name as a namespace\");var s=o.right.escapedText;if(ms(Yi(i),s))return Wt(o,e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,e.unescapeLeadingUnderscores(t),e.unescapeLeadingUnderscores(s)),!0}return Wt(n,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here,e.unescapeLeadingUnderscores(t)),!0}}return!1}(v,t,r)||function(n,t,r){if(111551&r){if(\"any\"===t||\"string\"===t||\"number\"===t||\"boolean\"===t||\"never\"===t)return Wt(n,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,e.unescapeLeadingUnderscores(t)),!0;var a=Dr(ur(n,t,788544,void 0,void 0,!1));if(a&&!(1024&a.flags)){var i=function(e){switch(e){case\"Promise\":case\"Symbol\":case\"Map\":case\"WeakMap\":case\"Set\":case\"WeakSet\":return!0}return!1}(t)?e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here;return Wt(n,i,e.unescapeLeadingUnderscores(t)),!0}}return!1}(v,t,r)||function(n,t,r){if(111127&r){if(Dr(ur(n,t,1024,void 0,void 0,!1)))return Wt(n,e.Diagnostics.Cannot_use_namespace_0_as_a_value,e.unescapeLeadingUnderscores(t)),!0}else if(788544&r){if(Dr(ur(n,t,1536,void 0,void 0,!1)))return Wt(n,e.Diagnostics.Cannot_use_namespace_0_as_a_type,e.unescapeLeadingUnderscores(t)),!0}return!1}(v,t,r)||function(n,t,r){if(788584&r){var a=Dr(ur(n,t,111127,void 0,void 0,!1));if(a&&!(1920&a.flags))return Wt(n,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here,e.unescapeLeadingUnderscores(t)),!0}return!1}(v,t,r)))){var w=void 0;if(l&&ht<10&&(w=b_(g,t,r))){var F=La(w),G=Wt(v,l,fr(i),F);w.valueDeclaration&&e.addRelatedInfo(G,e.createDiagnosticForNode(w.valueDeclaration,e.Diagnostics._0_is_declared_here,F))}w||Wt(v,a,fr(i)),ht++}}function pr(n,t){return 201!==n.kind&&200!==n.kind?e.isTypeQueryNode(n)||(e.isFunctionLikeDeclaration(n)||158===n.kind&&!e.hasModifier(n,32))&&(!t||t!==n.name):(!t||t!==n.name)&&(!(!n.asteriskToken&&!e.hasModifier(n,256))||!e.getImmediatelyInvokedFunctionExpression(n))}function mr(e){switch(e.kind){case 243:case 244:case 245:case 247:case 246:case 248:return!0;default:return!1}}function fr(n){return e.isString(n)?e.unescapeLeadingUnderscores(n):e.declarationNameToString(n)}function _r(n,t){for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(154===i.kind)if((e.isJSDocTemplateTag(i.parent)?e.getJSDocHost(i.parent):i.parent)===t)return!(e.isJSDocTemplateTag(i.parent)&&e.find(i.parent.parent.tags,e.isJSDocTypeAlias))}return!1}function gr(n){var t=function n(t){switch(t.kind){case 75:case 193:return t.parent?n(t.parent):void 0;case 215:if(e.isEntityNameExpression(t.expression))return t.expression;default:return}}(n);return!(!t||!Rr(t,64,!0))&&(Wt(n,e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements,e.getTextOfNode(t)),!0)}function yr(n,t,r){return!!t&&!!e.findAncestor(n,(function(n){return n===r||e.isFunctionLike(n)?\"quit\":n===t}))}function vr(e){switch(e.kind){case 252:return e;case 254:return e.parent;case 255:return e.parent.parent;case 257:return e.parent.parent.parent;default:return}}function hr(n){return e.find(n.declarations,e.isAliasSymbolDeclaration)}function br(e,n,t){var r=e.exports.get(\"export=\");return r?ms(Ci(r),n):Dr(e.exports.get(n),t)}function Er(n){return e.isExportAssignment(n)&&!n.isExportEquals||e.hasModifier(n,512)||e.isExportSpecifier(n)}function Tr(n,t,r){if(!G)return!1;if(!n||n.isDeclarationFile){var a=br(t,\"default\",!0);return(!a||!e.some(a.declarations,Er))&&!br(t,e.escapeLeadingUnderscores(\"__esModule\"),r)}return e.isSourceFileJS(n)?!n.externalModuleIndicator&&!br(t,e.escapeLeadingUnderscores(\"__esModule\"),r):jr(t)}function Sr(n,t,r){void 0===r&&(r=!1);var a=wr(n,n.moduleSpecifier),i=t.propertyName||t.name,o=\"default\"===i.escapedText&&!(!P.allowSyntheticDefaultImports&&!P.esModuleInterop),s=Ur(a,n.moduleSpecifier,r,o);if(s&&i.escapedText){if(e.isShorthandAmbientModuleSymbol(a))return a;var c=void 0;c=a&&a.exports&&a.exports.get(\"export=\")?ms(Ci(s),i.escapedText):function(e,n){if(3&e.flags){var t=e.valueDeclaration.type;if(t)return Dr(ms(Kl(t),n))}}(s,i.escapedText),c=Dr(c,r);var l=function(e,n,t){if(1536&e.flags)return Dr(Wr(e).get(n),t)}(s,i.escapedText,r);!l&&G&&\"default\"===i.escapedText&&(l=Vr(a,r)||Dr(a,r));var u=l&&c&&l!==c?function(n,t){if(n===de&&t===de)return de;if(790504&n.flags)return n;var r=Xt(n.flags|t.flags,n.escapedName);return r.declarations=e.deduplicate(e.concatenate(n.declarations,t.declarations),e.equateValues),r.parent=n.parent||t.parent,n.valueDeclaration&&(r.valueDeclaration=n.valueDeclaration),t.members&&(r.members=t.members),n.exports&&(r.exports=n.exports),r}(c,l):l||c;if(!u){var d=Or(a,n),p=e.declarationNameToString(i),m=E_(i,s);if(void 0!==m){var f=La(m),_=Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_2,d,p,f);m.valueDeclaration&&e.addRelatedInfo(_,e.createDiagnosticForNode(m.valueDeclaration,e.Diagnostics._0_is_declared_here,f))}else a.exports&&a.exports.has(\"default\")?Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,d,p):Wt(i,e.Diagnostics.Module_0_has_no_exported_member_1,d,p)}return u}}function xr(e,n,t){return e.parent.parent.moduleSpecifier?Sr(e.parent.parent,e,t):Rr(e.propertyName||e.name,n,!1,t)}function Lr(n,t){if(e.isClassExpression(n))return hy(n).symbol;if(e.isEntityName(n)||e.isEntityNameExpression(n)){var r=Rr(n,901119,!0,t);return r||(hy(n),or(n).resolvedSymbol)}}function Cr(n,t){switch(void 0===t&&(t=!1),n.kind){case 252:return function(n,t){return 263===n.moduleReference.kind?Vr(wr(n,e.getExternalModuleImportEqualsDeclarationExpression(n))):Mr(n.moduleReference,t)}(n,t);case 254:return function(n,t){var r=wr(n,n.parent.moduleSpecifier);if(r){var a=void 0;a=e.isShorthandAmbientModuleSymbol(r)?r:br(r,\"default\",t);var i=Tr(e.find(r.declarations,e.isSourceFile),r,t);if(a||i){if(i)return Vr(r,t)||Dr(r,t)}else if(jr(r)){var o=F>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\",s=r.exports.get(\"export=\").valueDeclaration,c=Wt(n.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,La(r),o);e.addRelatedInfo(c,e.createDiagnosticForNode(s,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,o))}else r.exports&&r.exports.has(n.symbol.escapedName)?Wt(n.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,La(r),La(n.symbol)):Wt(n.name,e.Diagnostics.Module_0_has_no_default_export,La(r));return a}}(n,t);case 255:return function(e,n){var t=e.parent.parent.moduleSpecifier;return Ur(wr(e,t),t,n,!1)}(n,t);case 257:return function(e,n){return Sr(e.parent.parent.parent,e,n)}(n,t);case 261:return xr(n,901119,t);case 258:case 208:return function(n,t){return Lr(e.isExportAssignment(n)?n.expression:n.right,t)}(n,t);case 251:return function(e,n){return Vr(e.parent.symbol,n)}(n,t);case 280:return Rr(n.name,901119,!0,t);case 279:return function(e,n){return Lr(e.initializer,n)}(n,t);case 193:return function(n,t){if(e.isBinaryExpression(n.parent)&&n.parent.left===n&&62===n.parent.operatorToken.kind)return Lr(n.parent.right,t)}(n,t);default:return e.Debug.fail()}}function Ar(e,n){return void 0===n&&(n=901119),!!e&&(2097152==(e.flags&(2097152|n))||!!(2097152&e.flags&&67108864&e.flags))}function Dr(e,n){return!n&&Ar(e)?kr(e):e}function kr(n){e.Debug.assert(0!=(2097152&n.flags),\"Should only get Alias here.\");var t=ir(n);if(t.target)t.target===pe&&(t.target=de);else{t.target=pe;var r=hr(n);if(!r)return e.Debug.fail();var a=Cr(r);t.target===pe?t.target=a||de:Wt(r,e.Diagnostics.Circular_definition_of_import_alias_0,La(n))}return t.target}function Nr(e){var n=Yr(e),t=kr(n);t&&((t===de||111551&t.flags&&!hb(t))&&Ir(n))}function Ir(n){var t=ir(n);if(!t.referenced){t.referenced=!0;var r=hr(n);if(!r)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(r)){var a=Dr(n);(a===de||111551&a.flags)&&hy(r.moduleReference)}}}function Mr(n,t){return 75===n.kind&&e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),75===n.kind||152===n.parent.kind?Rr(n,1920,!1,t):(e.Debug.assert(252===n.parent.kind),Rr(n,901119,!1,t))}function Or(e,n){return e.parent?Or(e.parent,n)+\".\"+La(e):La(e,n,void 0,20)}function Rr(n,t,r,a,i){if(!e.nodeIsMissing(n)){var o,s=1920|(e.isInJSFile(n)?111551&t:0);if(75===n.kind){var c=t===s?e.Diagnostics.Cannot_find_namespace_0:Cp(e.getFirstIdentifier(n)),l=e.isInJSFile(n)?function(n,t){if(gc(n.parent)){var r=function(n){if(e.findAncestor(n,(function(n){return e.isJSDocNode(n)||4194304&n.flags?e.isJSDocTypeAlias(n):\"quit\"})))return;var t=e.getJSDocHost(n);if(e.isExpressionStatement(t)&&e.isBinaryExpression(t.expression)&&3===e.getAssignmentDeclarationKind(t.expression)){if(a=Yr(t.expression.left))return Pr(a)}if((e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&6===e.getAssignmentDeclarationKind(t.parent.parent)){if(a=Yr(t.parent.parent.left))return Pr(a)}var r=e.getHostSignatureFromJSDocHost(t);if(r){var a;return(a=Yr(r))&&a.valueDeclaration}}(n.parent);if(r)return ur(r,n.escapedText,t,void 0,n,!0)}}(n,t):void 0;if(!(o=ur(i||n,n.escapedText,t,r||l?void 0:c,n,!0)))return l}else{if(152!==n.kind&&193!==n.kind)throw e.Debug.assertNever(n,\"Unknown entity name kind.\");var u=152===n.kind?n.left:n.expression,d=152===n.kind?n.right:n.name,p=Rr(u,s,r,!1,i);if(!p||e.nodeIsMissing(d))return;if(p===de)return p;if(e.isInJSFile(n)&&p.valueDeclaration&&e.isVariableDeclaration(p.valueDeclaration)&&p.valueDeclaration.initializer&&Eg(p.valueDeclaration.initializer)){var m=p.valueDeclaration.initializer.arguments[0],f=wr(m,m);if(f){var _=Vr(f);_&&(p=_)}}if(!(o=cr(Wr(p),d.escapedText,t)))return void(r||Wt(d,e.Diagnostics.Namespace_0_has_no_exported_member_1,Or(p),e.declarationNameToString(d)))}return e.Debug.assert(0==(1&e.getCheckFlags(o)),\"Should never get an instantiated symbol here.\"),o.flags&t||a?o:kr(o)}}function Pr(n){var t=n.parent.valueDeclaration;if(t)return(e.isAssignmentDeclaration(t)?e.getAssignedExpandoInitializer(t):e.hasOnlyExpressionInitializer(t)?e.getDeclaredExpandoInitializer(t):void 0)||t}function wr(n,t,r){return Fr(n,t,r?void 0:e.Diagnostics.Cannot_find_module_0)}function Fr(n,t,r,a){return void 0===a&&(a=!1),e.isStringLiteralLike(t)?Gr(n,t.text,r,t,a):void 0}function Gr(t,r,a,i,o){(void 0===o&&(o=!1),e.startsWith(r,\"@types/\"))&&Wt(i,e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,e.removePrefix(r,\"@types/\"),r);var s=xs(r,!0);if(s)return s;var c=e.getSourceFileOfNode(t),l=e.getResolvedModule(c,r),u=l&&e.getResolutionDiagnostic(P,l),d=l&&!u&&n.getSourceFile(l.resolvedFileName);if(d)return d.symbol?(l.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(l.extension)&&Br(!1,i,l,r),Xr(d.symbol)):void(a&&Wt(i,e.Diagnostics.File_0_is_not_a_module,d.fileName));if(nn){var p=e.findBestPatternMatch(nn,(function(e){return e.pattern}),r);if(p){var m=tn&&tn.get(r);return Xr(m?m:p.symbol)}}if(l&&!e.resolutionExtensionIsTSOrJson(l.extension)&&void 0===u||u===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type)o?Wt(i,e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented,r,l.resolvedFileName):Br(K&&!!a,i,l,r);else if(a){if(l){var f=n.getProjectReferenceRedirect(l.resolvedFileName);if(f)return void Wt(i,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,f,l.resolvedFileName)}if(u)Wt(i,u,r,l.resolvedFileName);else{var _=e.tryExtractTSExtension(r);if(_)Wt(i,e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,_,e.removeExtension(r,_));else!P.resolveJsonModule&&e.fileExtensionIs(r,\".json\")&&e.getEmitModuleResolutionKind(P)===e.ModuleResolutionKind.NodeJs&&e.hasJsonModuleEmitEnabled(P)?Wt(i,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,r):Wt(i,a,r)}}}function Br(n,t,r,a){var i,o=r.packageId,s=r.resolvedFileName,c=!e.isExternalModuleNameRelative(a)&&o?(i=o.name,u().has(e.getTypesPackageName(i))?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,o.name,e.mangleScopedPackageName(o.name)):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_install_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,a,e.mangleScopedPackageName(o.name))):void 0;qt(n,t,e.chainDiagnosticMessages(c,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,a,s))}function Vr(n,t){if(n){var r=function(n,t){if(!n||n===de||n===t||1===t.exports.size||2097152&n.flags)return n;var r=ir(n);if(r.cjsExportMerged)return r.cjsExportMerged;var a=33554432&n.flags?n:$t(n);a.flags=512|a.flags,void 0===a.exports&&(a.exports=e.createSymbolTable());return t.exports.forEach((function(e,n){\"export=\"!==n&&a.exports.set(n,a.exports.has(n)?er(a.exports.get(n),e):e)})),ir(a).cjsExportMerged=a,r.cjsExportMerged=a}(Xr(Dr(n.exports.get(\"export=\"),t)),Xr(n));return Xr(r)||n}}function Ur(n,t,r,a){var i=Vr(n,r);if(!r&&i){if(!(a||1539&i.flags||e.getDeclarationOfKind(i,288))){var o=F>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\";return Wt(t,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,o),i}if(P.esModuleInterop){var s=t.parent;if(e.isImportDeclaration(s)&&e.getNamespaceDeclarationNode(s)||e.isImportCall(s)){var c=Ci(i),l=fs(c,0);if(l&&l.length||(l=fs(c,1)),l&&l.length){var u=bg(c,i,n),d=Xt(i.flags,i.escapedName);d.declarations=i.declarations?i.declarations.slice():[],d.parent=i.parent,d.target=i,d.originatingImport=s,i.valueDeclaration&&(d.valueDeclaration=i.valueDeclaration),i.constEnumOnlyModule&&(d.constEnumOnlyModule=!0),i.members&&(d.members=e.cloneMap(i.members)),i.exports&&(d.exports=e.cloneMap(i.exports));var p=Wo(u);return d.type=pa(d,p.members,e.emptyArray,e.emptyArray,p.stringIndexInfo,p.numberIndexInfo),d}}}}return i}function jr(e){return void 0!==e.exports.get(\"export=\")}function Kr(e){return Ts(zr(e))}function Hr(e,n){var t=zr(n);if(t)return t.get(e)}function Wr(e){return 6256&e.flags?mo(e,\"resolvedExports\"):1536&e.flags?zr(e):e.exports||O}function zr(e){var n=ir(e);return n.resolvedExports||(n.resolvedExports=Jr(e))}function qr(n,t,r,a){t&&t.forEach((function(t,i){if(\"default\"!==i){var o=n.get(i);if(o){if(r&&a&&o&&Dr(o)!==Dr(t)){var s=r.get(i);s.exportsWithDuplicate?s.exportsWithDuplicate.push(a):s.exportsWithDuplicate=[a]}}else n.set(i,t),r&&a&&r.set(i,{specifierText:e.getTextOfNode(a.moduleSpecifier)})}}))}function Jr(n){var t=[];return function n(r){if(!(r&&r.exports&&e.pushIfUnique(t,r)))return;var a=e.cloneMap(r.exports),i=r.exports.get(\"__export\");if(i){for(var o=e.createSymbolTable(),s=e.createMap(),c=0,l=i.declarations;c<l.length;c++){var u=l[c],d=wr(u,u.moduleSpecifier),p=n(d);qr(o,p,s,u)}s.forEach((function(n,t){var r=n.exportsWithDuplicate;if(\"export=\"!==t&&r&&r.length&&!a.has(t))for(var i=0,o=r;i<o.length;i++){var c=o[i];Rt.add(e.createDiagnosticForNode(c,e.Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity,s.get(t).specifierText,e.unescapeLeadingUnderscores(t)))}})),qr(a,o)}return a}(n=Vr(n))||O}function Xr(e){var n;return e&&e.mergeId&&(n=bt[e.mergeId])?n:e}function Yr(e){return Xr(e.symbol&&_o(e.symbol))}function Qr(e){return Xr(e.parent&&_o(e.parent))}function Zr(t,r){var a=Qr(t);if(a&&!(262144&t.flags)){var i=e.mapDefined(a.declarations,(function(e){var n=ba(e),t=n&&n.exports&&n.exports.get(\"export=\");return t&&a&&ea(t,a)?n:void 0})),o=r&&function(t,r){var a,i=e.getSourceFileOfNode(r),o=\"\"+x(i),s=ir(t);if(s.extendedContainersByFile&&(a=s.extendedContainersByFile.get(o)))return a;if(i&&i.imports){for(var c=0,l=i.imports;c<l.length;c++){var u=l[c];if(!e.nodeIsSynthesized(u)){var d=wr(r,u,!0);if(d)$r(d,t)&&(a=e.append(a,d))}}if(e.length(a))return(s.extendedContainersByFile||(s.extendedContainersByFile=e.createMap())).set(o,a),a}if(s.extendedContainers)return s.extendedContainers;for(var p=0,m=n.getSourceFiles();p<m.length;p++){var f=m[p];if(e.isExternalModule(f)){var _=Yr(f);$r(_,t)&&(a=e.append(a,_))}}return s.extendedContainers=a||e.emptyArray}(t,r);if(r&&_a(a,r,1920,!1))return e.concatenate(e.concatenate([a],i),o);var s=e.append(i,a);return e.concatenate(s,o)}var c=e.mapDefined(t.declarations,(function(n){return!e.isAmbientModule(n)&&n.parent&&Ta(n.parent)?Yr(n.parent):e.isClassExpression(n)&&e.isBinaryExpression(n.parent)&&62===n.parent.operatorToken.kind&&e.isAccessExpression(n.parent.left)&&e.isEntityNameExpression(n.parent.left.expression)?e.isModuleExportsAccessExpression(n.parent.left)||e.isExportsIdentifier(n.parent.left.expression)?Yr(e.getSourceFileOfNode(n)):(hy(n.parent.left.expression),or(n.parent.left.expression).resolvedSymbol):void 0}));if(e.length(c))return e.mapDefined(c,(function(e){return $r(e,t)?e:void 0}))}function $r(n,t){if(n===Qr(t))return t;var r=n.exports&&n.exports.get(\"export=\");if(r&&ea(r,t))return n;var a=Wr(n),i=a.get(t.escapedName);return i&&ea(i,t)?i:e.forEachEntry(a,(function(e){if(ea(e,t))return e}))}function ea(e,n){if(Xr(Dr(Xr(e)))===Xr(Dr(Xr(n))))return e}function na(e){return Xr(e&&0!=(1048576&e.flags)?e.exportSymbol:e)}function ta(e){return!!(111551&e.flags||2097152&e.flags&&111551&kr(e).flags)}function ra(n){for(var t=0,r=n.members;t<r.length;t++){var a=r[t];if(161===a.kind&&e.nodeIsPresent(a.body))return a}}function aa(e){var n=new p(ne,e);return f++,n.id=f,n}function ia(e,n,t){void 0===t&&(t=0);var r=aa(e);return r.intrinsicName=n,r.objectFlags=t,r}function oa(e){var n=Wc(e);return n.flags|=16,n.intrinsicName=\"boolean\",n}function sa(e,n){var t=aa(524288);return t.objectFlags=e,t.symbol=n,t.members=void 0,t.properties=void 0,t.callSignatures=void 0,t.constructSignatures=void 0,t.stringIndexInfo=void 0,t.numberIndexInfo=void 0,t}function ca(e){var n=aa(262144);return e&&(n.symbol=e),n}function la(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&95!==e.charCodeAt(2)&&64!==e.charCodeAt(2)}function ua(n){var t;return n.forEach((function(e,n){!la(n)&&ta(e)&&(t||(t=[])).push(e)})),t||e.emptyArray}function da(n,t,r,a,i,o){return n.members=t,n.properties=t===O?e.emptyArray:ua(t),n.callSignatures=r,n.constructSignatures=a,n.stringIndexInfo=i,n.numberIndexInfo=o,n}function pa(e,n,t,r,a,i){return da(sa(16,e),n,t,r,a,i)}function ma(n,t){for(var r,a=function(n){if(n.locals&&!sr(n)&&(r=t(n.locals)))return{value:r};switch(n.kind){case 288:if(!e.isExternalOrCommonJsModule(n))break;case 248:var a=Yr(n);if(r=t(a.exports||O))return{value:r};break;case 244:case 213:case 245:var i;if((Yr(n).members||O).forEach((function(n,t){788968&n.flags&&(i||(i=e.createSymbolTable())).set(t,n)})),i&&(r=t(i)))return{value:r}}},i=n;i;i=i.parent){var o=a(i);if(\"object\"==typeof o)return o.value}return t(X)}function fa(e){return 111551===e?111551:1920}function _a(n,t,r,a,i){if(void 0===i&&(i=e.createMap()),n&&!function(e){if(e.declarations&&e.declarations.length){for(var n=0,t=e.declarations;n<t.length;n++){switch(t[n].kind){case 158:case 160:case 162:case 163:continue;default:return!1}}return!0}return!1}(n)){var o=\"\"+L(n),s=i.get(o);return s||i.set(o,s=[]),ma(t,c)}function c(i,o){if(e.pushIfUnique(s,i)){var d=function(i,o){if(u(i.get(n.escapedName),void 0,o))return[n];return e.forEachEntry(i,(function(i){if(2097152&i.flags&&\"export=\"!==i.escapedName&&\"default\"!==i.escapedName&&!(e.isUMDExportSymbol(i)&&t&&e.isExternalModule(e.getSourceFileOfNode(t)))&&(!a||e.some(i.declarations,e.isExternalModuleImportEqualsDeclaration))&&(o||!e.getDeclarationOfKind(i,261))){var s=kr(i);if(u(i,s,o))return[i];var d=Wr(s),p=d&&c(d,!0);if(p&&l(i,fa(r)))return[i].concat(p)}if(i.escapedName===n.escapedName&&i.exportSymbol&&u(Xr(i.exportSymbol),void 0,o))return[n]}))}(i,o);return s.pop(),d}}function l(e,n){return!ga(e,t,n)||!!_a(e.parent,t,fa(n),a,i)}function u(t,a,i){return(n===(a||t)||Xr(n)===Xr(a||t))&&!e.some(t.declarations,Ta)&&(i||l(Xr(t),r))}}function ga(n,t,r){var a=!1;return ma(t,(function(t){var i=Xr(t.get(n.escapedName));return!!i&&(i===n||!!((i=2097152&i.flags&&!e.getDeclarationOfKind(i,261)?kr(i):i).flags&r)&&(a=!0,!0))})),a}function ya(e,n){return 0===ha(e,n,788968,!1).accessibility}function va(e,n){return 0===ha(e,n,111551,!1).accessibility}function ha(n,t,r,a){if(n&&t){var i=function n(t,r,a,i,o){if(e.length(t)){for(var s,c=0,l=t;c<l.length;c++){var u=l[c],d=_a(u,r,i,!1);if(d){s=u;var p=Sa(d[0],o);if(p)return p}else if(e.some(u.declarations,Ta))return{accessibility:0};var m=Zr(u,r),f=e.first(u.declarations);!e.length(m)&&111551&i&&f&&e.isObjectLiteralExpression(f)&&f.parent&&e.isVariableDeclaration(f.parent)&&f===f.parent.initializer&&(m=[Yr(f.parent)]);var _=n(m,r,a,a===u?fa(i):i,o);if(_)return _}return s?{accessibility:1,errorSymbolName:La(a,r,i),errorModuleName:s!==a?La(s,r,1920):void 0}:void 0}}([n],t,n,r,a);if(i)return i;var o=e.forEach(n.declarations,ba);if(o)if(o!==ba(t))return{accessibility:2,errorSymbolName:La(n,t,r),errorModuleName:La(o)};return{accessibility:1,errorSymbolName:La(n,t,r)}}return{accessibility:0}}function ba(n){var t=e.findAncestor(n,Ea);return t&&Yr(t)}function Ea(n){return e.isAmbientModule(n)||288===n.kind&&e.isExternalOrCommonJsModule(n)}function Ta(n){return e.isModuleWithStringLiteralName(n)||288===n.kind&&e.isExternalOrCommonJsModule(n)}function Sa(n,t){var r;if(e.every(e.filter(n.declarations,(function(e){return 75!==e.kind})),(function(n){if(!Fa(n)){var t=vr(n);return t&&!e.hasModifier(t,1)&&Fa(t.parent)?a(n,t):e.isVariableDeclaration(n)&&e.isVariableStatement(n.parent.parent)&&!e.hasModifier(n.parent.parent,1)&&Fa(n.parent.parent.parent)?a(n,n.parent.parent):!(!e.isLateVisibilityPaintedStatement(n)||e.hasModifier(n,1)||!Fa(n.parent))&&a(n,n)}return!0})))return{accessibility:0,aliasesToMakeVisible:r};function a(n,a){return t&&(or(n).isVisible=!0,r=e.appendIfUnique(r,a)),!0}}function xa(n,t){var r;r=171===n.parent.kind||e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)||153===n.parent.kind?1160127:152===n.kind||193===n.kind||252===n.parent.kind?1920:788968;var a=e.getFirstIdentifier(n),i=ur(t,a.escapedText,r,void 0,void 0,!1);return i&&Sa(i,!0)||{accessibility:1,errorSymbolName:e.getTextOfNode(a),errorNode:a}}function La(n,t,r,a,i){void 0===a&&(a=4);var o=70221824;2&a&&(o|=128),1&a&&(o|=512),8&a&&(o|=16384),16&a&&(o|=134217728);var s=4&a?J.symbolToExpression:J.symbolToEntityName;return i?c(i).getText():e.usingSingleLineStringWriter(c);function c(a){var i=s(n,r,t,o),c=e.createPrinter({removeComments:!0}),l=t&&e.getSourceFileOfNode(t);return c.writeNode(4,i,l,a),a}}function Ca(n,t,r,a,i){return void 0===r&&(r=0),i?o(i).getText():e.usingSingleLineStringWriter(o);function o(i){var o;o=262144&r?1===a?170:169:1===a?165:164;var s=J.signatureToSignatureDeclaration(n,o,t,70222336|Na(r)),c=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0}),l=t&&e.getSourceFileOfNode(t);return c.writeNode(4,s,l,e.getTrailingSemicolonDeferringWriter(i)),i}}function Aa(n,t,r,a){void 0===r&&(r=1064960),void 0===a&&(a=e.createTextWriter(\"\"));var i=P.noErrorTruncation||1&r,o=J.typeToTypeNode(n,t,70221824|Na(r)|(i?1:0),a);if(void 0===o)return e.Debug.fail(\"should always get typenode\");var s=e.createPrinter({removeComments:!0}),c=t&&e.getSourceFileOfNode(t);s.writeNode(4,o,c,a);var l=a.getText(),u=i?void 0:2*e.defaultMaximumTruncationLength;return u&&l&&l.length>=u?l.substr(0,u-\"...\".length)+\"...\":l}function Da(e,n){var t=ka(e.symbol)?Aa(e,e.symbol.valueDeclaration):Aa(e),r=ka(n.symbol)?Aa(n,n.symbol.valueDeclaration):Aa(n);return t===r&&(t=Aa(e,void 0,64),r=Aa(n,void 0,64)),[t,r]}function ka(n){return n&&n.valueDeclaration&&e.isExpression(n.valueDeclaration)&&!fu(n.valueDeclaration)}function Na(e){return void 0===e&&(e=0),9469291&e}function Ia(n,t,r,a){return void 0===r&&(r=16384),a?i(a).getText():e.usingSingleLineStringWriter(i);function i(a){var i=e.createTypePredicateNodeWithModifier(2===n.kind||3===n.kind?e.createToken(123):void 0,1===n.kind||3===n.kind?e.createIdentifier(n.parameterName):e.createThisTypeNode(),n.type&&J.typeToTypeNode(n.type,t,70222336|Na(r))),o=e.createPrinter({removeComments:!0}),s=t&&e.getSourceFileOfNode(t);return o.writeNode(4,i,s,a),a}}function Ma(e){return 8===e?\"private\":16===e?\"protected\":\"public\"}function Oa(n){return n&&n.parent&&249===n.parent.kind&&e.isExternalModuleAugmentation(n.parent.parent)}function Ra(n){return 288===n.kind||e.isAmbientModule(n)}function Pa(n,t){var r=n.nameType;if(r){if(384&r.flags){var a=\"\"+r.value;return e.isIdentifierText(a,P.target)||Df(a)?Df(a)&&e.startsWith(a,\"-\")?\"[\"+a+\"]\":a:'\"'+e.escapeString(a,34)+'\"'}if(8192&r.flags)return\"[\"+wa(r.symbol,t)+\"]\"}}function wa(n,t){if(t&&\"default\"===n.escapedName&&!(16384&t.flags)&&(!(16777216&t.flags)||!n.declarations||t.enclosingDeclaration&&e.findAncestor(n.declarations[0],Ra)!==e.findAncestor(t.enclosingDeclaration,Ra)))return\"default\";if(n.declarations&&n.declarations.length){var r=e.firstDefined(n.declarations,(function(n){return e.getNameOfDeclaration(n)?n:void 0})),a=r&&e.getNameOfDeclaration(r);if(r&&a){if(e.isCallExpression(r)&&e.isBindableObjectDefinePropertyCall(r))return e.symbolName(n);if(e.isComputedPropertyName(a)&&!(4096&e.getCheckFlags(n))&&n.nameType&&384&n.nameType.flags){var i=Pa(n,t);if(void 0!==i)return i}return e.declarationNameToString(a)}if(r||(r=n.declarations[0]),r.parent&&241===r.parent.kind)return e.declarationNameToString(r.parent.name);switch(r.kind){case 213:case 200:case 201:return!t||t.encounteredError||131072&t.flags||(t.encounteredError=!0),213===r.kind?\"(Anonymous class)\":\"(Anonymous function)\"}}var o=Pa(n,t);return void 0!==o?o:e.symbolName(n)}function Fa(n){if(n){var t=or(n);return void 0===t.isVisible&&(t.isVisible=!!function(){switch(n.kind){case 308:case 315:case 309:return!!(n.parent&&n.parent.parent&&n.parent.parent.parent&&e.isSourceFile(n.parent.parent.parent));case 190:return Fa(n.parent.parent);case 241:if(e.isBindingPattern(n.name)&&!n.name.elements.length)return!1;case 248:case 244:case 245:case 246:case 243:case 247:case 252:if(e.isExternalModuleAugmentation(n))return!0;var t=Ka(n);return 1&e.getCombinedModifierFlags(n)||252!==n.kind&&288!==t.kind&&8388608&t.flags?Fa(t):sr(t);case 158:case 157:case 162:case 163:case 160:case 159:if(e.hasModifier(n,24))return!1;case 161:case 165:case 164:case 166:case 155:case 249:case 169:case 170:case 172:case 168:case 173:case 174:case 177:case 178:case 181:return Fa(n.parent);case 254:case 255:case 257:return!1;case 154:case 288:case 251:return!0;case 258:default:return!1}}()),t.isVisible}return!1}function Ga(n,t){var r,a,i;return n.parent&&258===n.parent.kind?r=ur(n,n.escapedText,2998271,void 0,n,!1):261===n.parent.kind&&(r=xr(n.parent,2998271)),r&&((i=e.createMap()).set(\"\"+L(r),!0),function n(r){e.forEach(r,(function(r){var o=vr(r)||r;if(t?or(r).isVisible=!0:(a=a||[],e.pushIfUnique(a,o)),e.isInternalModuleImportEqualsDeclaration(r)){var s=r.moduleReference,c=ur(r,e.getFirstIdentifier(s).escapedText,901119,void 0,void 0,!1),l=c&&\"\"+L(c);c&&!i.has(l)&&(i.set(l,!0),n(c.declarations))}}))}(r.declarations)),a}function Ba(e,n){var t=Va(e,n);if(t>=0){for(var r=gt.length,a=t;a<r;a++)yt[a]=!1;return!1}return gt.push(e),yt.push(!0),vt.push(n),!0}function Va(e,n){for(var t=gt.length-1;t>=0;t--){if(Ua(gt[t],vt[t]))return-1;if(gt[t]===e&&vt[t]===n)return t}return-1}function Ua(n,t){switch(t){case 0:return!!ir(n).type;case 5:return!!or(n).resolvedEnumType;case 2:return!!ir(n).declaredType;case 1:return!!n.resolvedBaseConstructorType;case 3:return!!n.resolvedReturnType;case 4:return!!n.immediateBaseConstraint;case 6:return!!ir(n).resolvedJSDocType;case 7:return!!n.resolvedTypeArguments}return e.Debug.assertNever(t)}function ja(){return gt.pop(),vt.pop(),yt.pop()}function Ka(n){return e.findAncestor(e.getRootDeclaration(n),(function(e){switch(e.kind){case 241:case 242:case 257:case 256:case 255:case 254:return!1;default:return!0}})).parent}function Ha(e,n){var t=ms(e,n);return t?Ci(t):void 0}function Wa(e){return e&&0!=(1&e.flags)}function za(e){var n=Yr(e);return n&&ir(n).type||ri(e,!1)}function qa(n){return 153===n.kind&&!e.isStringOrNumericLiteralLike(n.expression)}function Ja(n,t,r){if(131072&(n=am(n,(function(e){return!(98304&e.flags)}))).flags)return je;if(1048576&n.flags)return om(n,(function(e){return Ja(e,t,r)}));var a=Wc(e.map(t,el));if(ul(n)||dl(a)){if(131072&a.flags)return n;var i=Bn||(Bn=Sc(\"Omit\",524288,e.Diagnostics.Cannot_find_global_type_0));return i?cc(i,[n,a]):ge}for(var o=e.createSymbolTable(),s=0,c=Xo(n);s<c.length;s++){var l=c[s];xu(nl(l,8576),a)||24&e.getDeclarationModifierFlagsFromSymbol(l)||!Ol(l)||o.set(l.escapedName,Rl(l,!1))}var u=vs(n,0),d=vs(n,1);return pa(r,o,e.emptyArray,e.emptyArray,u,d)}function Xa(e,n){var t=Ya(e);return t?Am(t,n):n}function Ya(n){var t=function(e){var n=e.parent.parent;switch(n.kind){case 190:case 279:return Ya(n);case 191:return Ya(e.parent);case 241:return n.initializer;case 208:return n.right}}(n);if(t&&t.flowNode){var r=function(e){var n=e.parent;if(190===e.kind&&188===n.kind)return Qa(e.propertyName||e.name);if(279===e.kind||280===e.kind)return Qa(e.name);return\"\"+n.elements.indexOf(e)}(n);if(r){var a=e.createNode(194,n.pos,n.end);a.parent=n,a.expression=t;var i=e.createNode(10,n.pos,n.end);return i.parent=a,i.text=r,a.argumentExpression=i,a.flowNode=t.flowNode,a}}}function Qa(e){var n=el(e);return 384&n.flags?\"\"+n.value:void 0}function Za(n){var t,r=n.parent,a=za(r.parent);if(!a||Wa(a))return a;if(B&&8388608&n.flags&&e.isParameterDeclaration(n)&&(a=wd(a)),188===r.kind)if(n.dotDotDotToken){if(2&a.flags||!Of(a))return Wt(n,e.Diagnostics.Rest_types_may_only_be_created_from_object_types),ge;for(var i=[],o=0,s=r.elements;o<s.length;o++){var c=s[o];c.dotDotDotToken||i.push(c.propertyName||c.name)}t=Ja(a,i,n.symbol)}else{var l=n.propertyName||n.name;t=Xa(n,Rm(yl(a,p=el(l),l),n.name))}else{var u=zv(65,a,ve,r),d=r.elements.indexOf(n);if(n.dotDotDotToken)t=rm(a,Cd)?om(a,(function(e){return Gc(e,d)})):Oc(u);else if(fd(a)){var p=Vl(d),m=Tf(n)?8:0;t=Xa(n,Rm(vl(a,p,n.name,m)||ge,n.name))}else t=u}return n.initializer?e.getEffectiveTypeAnnotationNode(e.walkUpBindingElementsAndPatterns(n))?!B||32768&Id(Ey(n))?t:Up(t,524288):Wc([Up(t,524288),Ey(n)],2):t}function $a(n){var t=e.getJSDocType(n);if(t)return Kl(t)}function ei(n){var t=e.skipParentheses(n);return 191===t.kind&&0===t.elements.length}function ni(e,n){return void 0===n&&(n=!0),B&&n?Pd(e):e}function ti(e){return 155===e.kind&&(200===e.parent.kind||201===e.parent.kind)&&!!ff(e.parent)}function ri(n,t){if(e.isVariableDeclaration(n)&&230===n.parent.parent.kind){var r=al(i_(Py(n.parent.parent.expression)));return 4456448&r.flags?il(r):Se}if(e.isVariableDeclaration(n)&&231===n.parent.parent.kind){var a=n.parent.parent;return Wv(a.expression,a.awaitModifier)||me}if(e.isBindingPattern(n.parent))return Za(n);var i,o,s=t&&(e.isParameter(n)&&Ss(n)||!e.isBindingElement(n)&&!e.isVariableDeclaration(n)&&!!n.questionToken),c=_i(n);if(c)return ni(c,s);if((K||e.isInJSFile(n))&&241===n.kind&&!e.isBindingPattern(n.name)&&!(1&e.getCombinedModifierFlags(n))&&!(8388608&n.flags)){if(!(2&e.getCombinedNodeFlags(n)||n.initializer&&(i=n.initializer,o=e.skipParentheses(i),99!==o.kind&&(75!==o.kind||Ap(o)!==Y))))return fe;if(n.initializer&&ei(n.initializer))return gn}if(155===n.kind){var l,u=n.parent;if(163===u.kind&&!lo(u)){var d=e.getDeclarationOfKind(Yr(n.parent),162);if(d){var p=Ns(d),m=rE(u);return m&&n===m?(e.Debug.assert(!m.type),Ci(p.thisParameter)):ws(p)}}if(e.isInJSFile(n)){var f=e.getJSDocType(u);if(f&&e.isFunctionTypeNode(f))return Ag(Ns(f),u.parameters.indexOf(n))}if(l=\"this\"===n.symbol.escapedName?Jm(u):Xm(n,!0))return ni(l,s)}else if(e.isInJSFile(n)){var _=ii(n,Yr(n),e.getDeclaredExpandoInitializer(n));if(_)return _}return n.initializer&&!ti(n)?ni(l=Ey(n),s):e.isJsxAttribute(n)?De:e.isBindingPattern(n.name)&&!ti(n)?di(n.name,!1,!0):void 0}function ai(n,t){var r=e.getAssignedExpandoInitializer(n.valueDeclaration);if(r){var a=e.getJSDocTypeTag(r);return a&&a.typeExpression?Kl(a.typeExpression):ii(n.valueDeclaration,n,r)||Td(hy(r))}for(var i,o,s=!1,c=!1,l=0,u=n.declarations;l<u.length;l++){var d=u[l],p=e.isBinaryExpression(d)||e.isCallExpression(d)?d:e.isAccessExpression(d)?e.isBinaryExpression(d.parent)?d.parent:d:void 0;if(p){var m=e.isAccessExpression(p)?e.getAssignmentDeclarationPropertyAccessKind(p):e.getAssignmentDeclarationKind(p);4===m&&(ci(p)?s=!0:c=!0),e.isCallExpression(p)||(i=oi(i,p,n,d)),i||(o||(o=[])).push(e.isBinaryExpression(p)||e.isCallExpression(p)?si(n,t,p,m):Oe)}}var f=i;if(!f){if(!e.length(o))return ge;var _=s?function(n,t){return e.Debug.assert(n.length===t.length),n.filter((function(n,r){var a=t[r],i=e.isBinaryExpression(a)?a:e.isBinaryExpression(a.parent)?a.parent:void 0;return i&&ci(i)}))}(o,n.declarations):void 0;if(c){var g=function(n){var t=e.forEach(n.declarations,(function(n){var t=e.getThisContainer(n,!1).parent;return e.isClassLike(t)&&t}));if(t){var r=Yi(Yr(t)),a=r&&Vi(r)[0];if(a)return Ha(a,n.escapedName)}}(n);g&&((_||(_=[])).push(g),s=!0)}f=Wc(e.some(_,(function(e){return!!(-98305&e.flags)}))?_:o,2)}var y=Xd(ni(f,c&&!s));return am(y,(function(e){return!!(-98305&e.flags)}))===Oe?(Qd(n.valueDeclaration,me),me):y}function ii(n,t,r){if(e.isInJSFile(n)&&r&&e.isObjectLiteralExpression(r)&&!r.properties.length){for(var a=e.createSymbolTable();e.isBinaryExpression(n)||e.isPropertyAccessExpression(n);){var i=Yr(n);i&&e.hasEntries(i.exports)&&rr(a,i.exports),n=e.isBinaryExpression(n)?n.parent:n.parent.parent}var o=Yr(n);o&&e.hasEntries(o.exports)&&rr(a,o.exports);var s=pa(t,a,e.emptyArray,e.emptyArray,void 0,void 0);return s.objectFlags|=16384,s}}function oi(n,t,r,a){var i=e.getEffectiveTypeAnnotationNode(t.parent);if(i){var o=Xd(Kl(i));if(!n)return o;n===ge||o===ge||hu(n,o)||wv(void 0,n,a,o)}if(r.parent){var s=e.getEffectiveTypeAnnotationNode(r.parent.valueDeclaration);if(s)return Ha(Kl(s),r.escapedName)}return n}function si(n,t,r,a){if(e.isCallExpression(r)){if(t)return Ci(t);var i=hy(r.arguments[2]),o=Ha(i,\"value\");if(o)return o;var s=Ha(i,\"get\");if(s){var c=F_(s);if(c)return ws(c)}var l=Ha(i,\"set\");if(l){var u=F_(l);if(u)return Pg(u)}return me}var d=t?Ci(t):Td(hy(r.right));if(524288&d.flags&&2===a&&\"export=\"===n.escapedName){var p=Wo(d),m=e.createSymbolTable();e.copyEntries(p.members,m),t&&!t.exports&&(t.exports=e.createSymbolTable()),(t||n).exports.forEach((function(e,n){if(m.has(n)){var t=p.members.get(n),r=Xt(e.flags|t.flags,n);r.type=Wc([Ci(e),Ci(t)]),m.set(n,r)}else m.set(n,e)}));var f=pa(p.symbol,m,p.callSignatures,p.constructSignatures,p.stringIndexInfo,p.numberIndexInfo);return f.objectFlags|=16384&e.getObjectFlags(d),f}return _d(d)?(Qd(r,_n),_n):d}function ci(n){var t=e.getThisContainer(n,!1);return 161===t.kind||243===t.kind||200===t.kind&&!e.isPrototypePropertyAssignment(t.parent)}function li(n,t,r){return n.initializer?ni(Ey(n)):e.isBindingPattern(n.name)?di(n.name,t,r):(r&&!fi(n)&&Qd(n,me),me)}function ui(n,t,r){var a,i=n.elements,o=e.lastOrUndefined(i),s=!(!o||190!==o.kind||!o.dotDotDotToken);if(0===i.length||1===i.length&&s)return w>=2?(a=me,Ic(kc(!0),[a])):_n;var c=Fc(e.map(i,(function(n){return e.isOmittedExpression(n)?me:li(n,t,r)})),e.findLastIndex(i,(function(n){return!e.isOmittedExpression(n)&&!Tf(n)}),i.length-(s?2:1))+1,s);return t&&((c=rc(c)).pattern=n),c}function di(n,t,r){return void 0===t&&(t=!1),void 0===r&&(r=!1),188===n.kind?function(n,t,r){var a,i=e.createSymbolTable(),o=524416;e.forEach(n.elements,(function(e){var n=e.propertyName||e.name;if(e.dotDotDotToken)a=Xs(me,!1);else{var s=el(n);if(io(s)){var c=uo(s),l=Xt(4|(e.initializer?16777216:0),c);l.type=li(e,t,r),l.bindingElement=e,i.set(l.escapedName,l)}else o|=512}}));var s=pa(void 0,i,e.emptyArray,e.emptyArray,a,void 0);return s.objectFlags|=o,t&&(s.pattern=n),s}(n,t,r):ui(n,t,r)}function pi(e,n){return mi(ri(e,!0),e,n)}function mi(n,t,r){return n?(r&&Zd(t,n),8192&n.flags&&(e.isBindingElement(t)||!t.type)&&n.symbol!==Yr(t)&&(n=Ie),Xd(n)):(n=e.isParameter(t)&&t.dotDotDotToken?_n:me,r&&(fi(t)||Qd(t,n)),n)}function fi(n){var t=e.getRootDeclaration(n);return Zy(155===t.kind?t.parent:t)}function _i(n){var t=e.getEffectiveTypeAnnotationNode(n);if(t)return Kl(t)}function gi(n){var t=ir(n);if(!t.type){var r=function(n){if(4194304&n.flags)return(t=Yi(Qr(n))).typeParameters?tc(t,e.map(t.typeParameters,(function(e){return me}))):t;var t;if(n===ee)return me;if(134217728&n.flags){var r=Yr(e.getSourceFileOfNode(n.valueDeclaration)),a=e.createSymbolTable();return a.set(\"exports\",r),pa(n,a,e.emptyArray,e.emptyArray,void 0,void 0)}var i,o=n.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(o))return me;if(e.isSourceFile(o)&&e.isJsonSourceFile(o)){if(!o.statements.length)return je;var s=Td(Py(o.statements[0].expression));return 524288&s.flags?Hd(s):s}if(!Ba(n,0))return 512&n.flags&&!(67108864&n.flags)?Si(n):Li(n);if(258===o.kind)i=mi(hy(o.expression),o);else if(e.isBinaryExpression(o)||e.isInJSFile(o)&&(e.isCallExpression(o)||(e.isPropertyAccessExpression(o)||e.isBindableStaticElementAccessExpression(o))&&e.isBinaryExpression(o.parent)))i=ai(n);else if(e.isJSDocPropertyLikeTag(o)||e.isPropertyAccessExpression(o)||e.isElementAccessExpression(o)||e.isIdentifier(o)||e.isStringLiteralLike(o)||e.isNumericLiteral(o)||e.isClassDeclaration(o)||e.isFunctionDeclaration(o)||e.isMethodDeclaration(o)&&!e.isObjectLiteralMethod(o)||e.isMethodSignature(o)||e.isSourceFile(o)){if(9136&n.flags)return Si(n);i=e.isBinaryExpression(o.parent)?ai(n):_i(o)||me}else if(e.isPropertyAssignment(o))i=_i(o)||Ly(o);else if(e.isJsxAttribute(o))i=_i(o)||wf(o);else if(e.isShorthandPropertyAssignment(o))i=_i(o)||xy(o.name,0);else if(e.isObjectLiteralMethod(o))i=_i(o)||Cy(o,0);else if(e.isParameter(o)||e.isPropertyDeclaration(o)||e.isPropertySignature(o)||e.isVariableDeclaration(o)||e.isBindingElement(o))i=pi(o,!0);else if(e.isEnumDeclaration(o))i=Si(n);else if(e.isEnumMember(o))i=xi(n);else{if(!e.isAccessor(o))return e.Debug.fail(\"Unhandled declaration kind! \"+e.Debug.formatSyntaxKind(o.kind)+\" for \"+e.Debug.formatSymbol(n));i=Ei(n)}if(!ja())return 512&n.flags&&!(67108864&n.flags)?Si(n):Li(n);return i}(n);t.type||(t.type=r)}return t.type}function yi(n){if(n)return 162===n.kind?e.getEffectiveReturnTypeNode(n):e.getEffectiveSetAccessorTypeAnnotationNode(n)}function vi(e){var n=yi(e);return n&&Kl(n)}function hi(e){return Rs(Ns(e))}function bi(n){var t=ir(n);return t.type||(t.type=function(n){if(!Ba(n,0))return ge;var t=Ei(n);if(!ja()){if(t=me,K)Wt(e.getDeclarationOfKind(n,162),e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,La(n))}return t}(n))}function Ei(n){var t=e.getDeclarationOfKind(n,162),r=e.getDeclarationOfKind(n,163);if(t&&e.isInJSFile(t)){var a=$a(t);if(a)return a}var i=vi(t);if(i)return i;var o=vi(r);return o||(t&&t.body?jg(t):(r?Zy(r)||qt(K,r,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,La(n)):(e.Debug.assert(!!t,\"there must exist a getter as we are current checking either setter or getter in this function\"),Zy(t)||qt(K,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,La(n))),me))}function Ti(n){var t=Bi(ji(n));return 8650752&t.flags?t:2097152&t.flags?e.find(t.types,(function(e){return!!(8650752&e.flags)})):void 0}function Si(n){var t=ir(n),r=t;if(!t.type){var a=e.getDeclarationOfExpando(n.valueDeclaration);if(a){var i=gg(n,Yr(a));i&&(n=t=i)}r.type=t.type=function(n){var t=n.valueDeclaration;if(1536&n.flags&&e.isShorthandAmbientModuleSymbol(n))return me;if(208===t.kind||(193===t.kind||194===t.kind)&&208===t.parent.kind)return ai(n);if(512&n.flags&&t&&e.isSourceFile(t)&&t.commonJsModuleIndicator){var r=Vr(n);if(r!==n){if(!Ba(n,0))return ge;var a=Xr(n.exports.get(\"export=\")),i=ai(a,a===r?void 0:r);return ja()?i:Li(n)}}var o=sa(16,n);if(32&n.flags){var s=Ti(n);return s?Zc([o,s]):o}return B&&16777216&n.flags?Pd(o):o}(n)}return t.type}function xi(e){var n=ir(e);return n.type||(n.type=Ji(e))}function Li(n){var t=n.valueDeclaration;return e.getEffectiveTypeAnnotationNode(t)?(Wt(n.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,La(n)),ge):(K&&(155!==t.kind||t.initializer)&&Wt(n.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,La(n)),me)}function Ci(n){return 65536&e.getCheckFlags(n)?function(n){var t=ir(n);return t.type||(e.Debug.assertDefined(t.deferralParent),e.Debug.assertDefined(t.deferralConstituents),t.type=1048576&t.deferralParent.flags?Wc(t.deferralConstituents):Zc(t.deferralConstituents)),t.type}(n):1&e.getCheckFlags(n)?function(e){var n=ir(e);if(!n.type){if(!Ba(e,0))return n.type=ge;var t=uu(Ci(n.target),n.mapper);ja()||(t=Li(e)),n.type=t}return n.type}(n):8192&e.getCheckFlags(n)?function(e){return dp(e.propertyType,e.mappedType,e.constraintType)}(n):7&n.flags?gi(n):9136&n.flags?Si(n):8&n.flags?xi(n):98304&n.flags?bi(n):2097152&n.flags?function(e){var n=ir(e);if(!n.type){var t=kr(e);n.type=111551&t.flags?Ci(t):ge}return n.type}(n):ge}function Ai(n,t){return void 0!==n&&void 0!==t&&0!=(4&e.getObjectFlags(n))&&n.target===t}function Di(n){return 4&e.getObjectFlags(n)?n.target:n}function ki(n,t){return function n(r){if(7&e.getObjectFlags(r)){var a=Di(r);return a===t||e.some(Vi(a),n)}if(2097152&r.flags)return e.some(r.types,n);return!1}(n)}function Ni(n,t){for(var r=0,a=t;r<a.length;r++){var i=a[r];n=e.appendIfUnique(n,Xi(Yr(i)))}return n}function Ii(n,t){for(;;){if((n=n.parent)&&e.isBinaryExpression(n)){var r=e.getAssignmentDeclarationKind(n);if(6===r||3===r){var a=Yr(n.left);a&&a.parent&&!e.findAncestor(a.parent.valueDeclaration,(function(e){return n===e}))&&(n=a.parent.valueDeclaration)}}if(!n)return;switch(n.kind){case 244:case 213:case 245:case 164:case 165:case 159:case 169:case 170:case 298:case 243:case 160:case 200:case 201:case 246:case 314:case 315:case 309:case 308:case 185:case 179:var i=Ii(n,t);if(185===n.kind)return e.append(i,Xi(Yr(n.typeParameter)));if(179===n.kind)return e.concatenate(i,Ll(n));var o=Ni(i,e.getEffectiveTypeParameterDeclarations(n)),s=t&&(244===n.kind||213===n.kind||245===n.kind||_g(n))&&ji(Yr(n)).thisType;return s?e.append(o,s):o}}}function Mi(n){var t=32&n.flags?n.valueDeclaration:e.getDeclarationOfKind(n,245);return e.Debug.assert(!!t,\"Class was missing valueDeclaration -OR- non-class had no interface declarations\"),Ii(t)}function Oi(n){for(var t,r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(245===i.kind||244===i.kind||213===i.kind||_g(i)||e.isTypeAlias(i)){var o=i;t=Ni(t,e.getEffectiveTypeParameterDeclarations(o))}}return t}function Ri(e){var n=_s(e,1);if(1===n.length){var t=n[0];return!t.typeParameters&&1===t.parameters.length&&I(t)&&md(Lg(t.parameters[0]))===me}return!1}function Pi(e){if(_s(e,1).length>0)return!0;if(8650752&e.flags){var n=ts(e);return!!n&&Ri(n)}return!1}function wi(n){return e.getEffectiveBaseTypeNode(n.symbol.valueDeclaration)}function Fi(n,t,r){var a=e.length(t),i=e.isInJSFile(r);return e.filter(_s(n,1),(function(n){return(i||a>=Ds(n.typeParameters))&&a<=e.length(n.typeParameters)}))}function Gi(n,t,r){var a=Fi(n,t,r),i=e.map(t,Kl);return e.sameMap(a,(function(n){return e.some(n.typeParameters)?Vs(n,i,e.isInJSFile(r)):n}))}function Bi(n){if(!n.resolvedBaseConstructorType){var t=n.symbol.valueDeclaration,r=e.getEffectiveBaseTypeNode(t),a=wi(n);if(!a)return n.resolvedBaseConstructorType=ve;if(!Ba(n,1))return ge;var i=Py(a.expression);if(r&&a!==r&&(e.Debug.assert(!r.typeArguments),Py(r.expression)),2621440&i.flags&&Wo(i),!ja())return Wt(n.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,La(n.symbol)),n.resolvedBaseConstructorType=ge;if(!(1&i.flags||i===Te||Pi(i))){var o=Wt(a.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Aa(i));if(262144&i.flags){var s=Zs(i),c=ye;if(s){var l=_s(s,1);l[0]&&(c=ws(l[0]))}e.addRelatedInfo(o,e.createDiagnosticForNode(i.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,La(i.symbol),Aa(c)))}return n.resolvedBaseConstructorType=ge}n.resolvedBaseConstructorType=i}return n.resolvedBaseConstructorType}function Vi(n){return n.resolvedBaseTypes||(8&n.objectFlags?n.resolvedBaseTypes=[Oc(Wc(n.typeParameters||e.emptyArray),n.readonly)]:96&n.symbol.flags?(32&n.symbol.flags&&function(n){n.resolvedBaseTypes=e.resolvingEmptyArray;var t=ls(Bi(n));if(!(2621441&t.flags))return n.resolvedBaseTypes=e.emptyArray;var r,a=wi(n),i=t.symbol?Yi(t.symbol):void 0;if(t.symbol&&32&t.symbol.flags&&function(e){var n=e.outerTypeParameters;if(n){var t=n.length-1,r=ic(e);return n[t].symbol!==r[t].symbol}return!0}(i))r=sc(a,t.symbol);else if(1&t.flags)r=t;else{var o=Gi(t,a.typeArguments,a);if(!o.length)return Wt(a.expression,e.Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments),n.resolvedBaseTypes=e.emptyArray;r=ws(o[0])}if(r===ge)return n.resolvedBaseTypes=e.emptyArray;if(!Ui(r))return Wt(a.expression,e.Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members,Aa(r)),n.resolvedBaseTypes=e.emptyArray;if(n===r||ki(r,n))return Wt(n.symbol.valueDeclaration,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,Aa(n,void 0,2)),n.resolvedBaseTypes=e.emptyArray;n.resolvedBaseTypes===e.resolvingEmptyArray&&(n.members=void 0);n.resolvedBaseTypes=[r]}(n),64&n.symbol.flags&&function(n){n.resolvedBaseTypes=n.resolvedBaseTypes||e.emptyArray;for(var t=0,r=n.symbol.declarations;t<r.length;t++){var a=r[t];if(245===a.kind&&e.getInterfaceBaseTypeNodes(a))for(var i=0,o=e.getInterfaceBaseTypeNodes(a);i<o.length;i++){var s=o[i],c=Kl(s);c!==ge&&(Ui(c)?n===c||ki(c,n)?Wt(a,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,Aa(n,void 0,2)):n.resolvedBaseTypes===e.emptyArray?n.resolvedBaseTypes=[c]:n.resolvedBaseTypes.push(c):Wt(s,e.Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members))}}}(n)):e.Debug.fail(\"type must be class or interface\")),n.resolvedBaseTypes}function Ui(n){if(262144&n.flags){var t=ts(n);if(t)return Ui(t)}return!!(67633153&n.flags)&&!Ho(n)||!!(2097152&n.flags)&&e.every(n.types,Ui)}function ji(n){var t,r,a,i,o=ir(n),s=o;if(!o.declaredType){var c=32&n.flags?1:2,l=gg(n,(t=n.valueDeclaration,r=t&&t.parent&&(e.isFunctionDeclaration(t)&&Yr(t)||e.isBinaryExpression(t.parent)&&Yr(t.parent.left)||e.isVariableDeclaration(t.parent)&&Yr(t.parent)),a=r&&r.exports&&r.exports.get(\"prototype\"),(i=a&&a.valueDeclaration&&function(n){if(!n.parent)return!1;for(var t=n.parent;t&&193===t.kind;)t=t.parent;if(t&&e.isBinaryExpression(t)&&e.isPrototypeAccess(t.left)&&62===t.operatorToken.kind){var r=e.getInitializerOfBinaryExpression(t);return e.isObjectLiteralExpression(r)&&r}}(a.valueDeclaration))?Yr(i):void 0));l&&(n=o=l);var u=s.declaredType=o.declaredType=sa(c,n),d=Mi(n),p=Oi(n);(d||p||1===c||!function(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t];if(245===a.kind){if(128&a.flags)return!1;var i=e.getInterfaceBaseTypeNodes(a);if(i)for(var o=0,s=i;o<s.length;o++){var c=s[o];if(e.isEntityNameExpression(c.expression)){var l=Rr(c.expression,788968,!0);if(!l||!(64&l.flags)||ji(l).thisType)return!1}}}}return!0}(n))&&(u.objectFlags|=4,u.typeParameters=e.concatenate(d,p),u.outerTypeParameters=d,u.localTypeParameters=p,u.instantiations=e.createMap(),u.instantiations.set(ec(u.typeParameters),u),u.target=u,u.resolvedTypeArguments=u.typeParameters,u.thisType=ca(n),u.thisType.isThisType=!0,u.thisType.constraint=u)}return o.declaredType}function Ki(n){var t=ir(n);if(!t.declaredType){if(!Ba(n,2))return ge;var r=e.find(n.declarations,e.isTypeAlias);if(!r)return e.Debug.fail(\"Type alias symbol with no valid declaration found\");var a=e.isJSDocTypeAlias(r)?r.typeExpression:r.type,i=a?Kl(a):ge;if(ja()){var o=Oi(n);o&&(t.typeParameters=o,t.instantiations=e.createMap(),t.instantiations.set(ec(o),i))}else i=ge,Wt(e.isJSDocEnumTag(r)?r:r.name||r,e.Diagnostics.Type_alias_0_circularly_references_itself,La(n));t.declaredType=i}return t.declaredType}function Hi(n){var t=n.initializer;if(!t)return!(8388608&n.flags);switch(t.kind){case 10:case 8:case 14:return!0;case 206:return 40===t.operator&&8===t.operand.kind;case 75:return e.nodeIsMissing(t)||!!Yr(n.parent).exports.get(t.escapedText);case 208:return function n(t){return!!e.isStringLiteralLike(t)||208===t.kind&&(n(t.left)&&n(t.right))}(t);default:return!1}}function Wi(n){var t=ir(n);if(void 0!==t.enumKind)return t.enumKind;for(var r=!1,a=0,i=n.declarations;a<i.length;a++){var o=i[a];if(247===o.kind)for(var s=0,c=o.members;s<c.length;s++){var l=c[s];if(l.initializer&&e.isStringLiteralLike(l.initializer))return t.enumKind=1;Hi(l)||(r=!0)}}return t.enumKind=r?0:1}function zi(e){return 1024&e.flags&&!(1048576&e.flags)?Yi(Qr(e.symbol)):e}function qi(e){var n=ir(e);if(n.declaredType)return n.declaredType;if(1===Wi(e)){g++;for(var t=[],r=0,a=e.declarations;r<a.length;r++){var i=a[r];if(247===i.kind)for(var o=0,s=i.members;o<s.length;o++){var c=s[o],l=Cb(c),u=Fl(Vl(void 0!==l?l:0,g,Yr(c)));ir(Yr(c)).declaredType=u,t.push(Gl(u))}}if(t.length){var d=Wc(t,1,e,void 0);return 1048576&d.flags&&(d.flags|=1024,d.symbol=e),n.declaredType=d}}var p=aa(32);return p.symbol=e,n.declaredType=p}function Ji(e){var n=ir(e);if(!n.declaredType){var t=qi(Qr(e));n.declaredType||(n.declaredType=t)}return n.declaredType}function Xi(e){var n=ir(e);return n.declaredType||(n.declaredType=ca(e))}function Yi(e){return Qi(e)||ge}function Qi(e){return 96&e.flags?ji(e):524288&e.flags?Ki(e):262144&e.flags?Xi(e):384&e.flags?qi(e):8&e.flags?Ji(e):2097152&e.flags?function(e){var n=ir(e);return n.declaredType||(n.declaredType=Yi(kr(e)))}(e):void 0}function Zi(e){switch(e.kind){case 124:case 147:case 142:case 139:case 150:case 127:case 143:case 140:case 109:case 145:case 99:case 136:case 186:return!0;case 173:return Zi(e.elementType);case 168:return!e.typeArguments||e.typeArguments.every(Zi)}return!1}function $i(n){var t=e.getEffectiveConstraintOfTypeParameter(n);return!t||Zi(t)}function eo(n){var t=e.getEffectiveTypeAnnotationNode(n);return t?Zi(t):!e.hasInitializer(n)}function no(n){if(n.declarations&&1===n.declarations.length){var t=n.declarations[0];if(t)switch(t.kind){case 158:case 157:return eo(t);case 160:case 159:case 161:case 162:case 163:return r=t,a=e.getEffectiveReturnTypeNode(r),i=e.getEffectiveTypeParameterDeclarations(r),(161===r.kind||!!a&&Zi(a))&&r.parameters.every(eo)&&i.every($i)}}var r,a,i;return!1}function to(n,t,r){for(var a=e.createSymbolTable(),i=0,o=n;i<o.length;i++){var s=o[i];a.set(s.escapedName,r&&no(s)?s:tu(s,t))}return a}function ro(e,n){for(var t=0,r=n;t<r.length;t++){var a=r[t];e.has(a.escapedName)||e.set(a.escapedName,a)}}function ao(n){if(!n.declaredProperties){var t=n.symbol,r=fo(t);n.declaredProperties=ua(r),n.declaredCallSignatures=e.emptyArray,n.declaredConstructSignatures=e.emptyArray,n.declaredCallSignatures=Os(r.get(\"__call\")),n.declaredConstructSignatures=Os(r.get(\"__new\")),n.declaredStringIndexInfo=Ys(t,0),n.declaredNumberIndexInfo=Ys(t,1)}return n}function io(e){return!!(8576&e.flags)}function oo(n){if(!e.isComputedPropertyName(n)&&!e.isElementAccessExpression(n))return!1;var t=e.isComputedPropertyName(n)?n.expression:n.argumentExpression;return e.isEntityNameExpression(t)&&io(e.isComputedPropertyName(n)?kf(n):hy(t))}function so(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&64===e.charCodeAt(2)}function co(n){var t=e.getNameOfDeclaration(n);return!!t&&oo(t)}function lo(n){return e.hasDynamicName(n)&&!co(n)}function uo(n){return 8192&n.flags?n.escapedName:384&n.flags?e.escapeLeadingUnderscores(\"\"+n.value):e.Debug.fail()}function po(n,t,r,a){e.Debug.assert(!!a.symbol,\"The member is expected to have a symbol.\");var i=or(a);if(!i.resolvedSymbol){i.resolvedSymbol=a.symbol;var o=e.isBinaryExpression(a)?a.left:a.name,s=e.isElementAccessExpression(o)?hy(o.argumentExpression):kf(o);if(io(s)){var c=uo(s),l=a.symbol.flags,u=r.get(c);u||r.set(c,u=Xt(0,c,4096));var d=t&&t.get(c);if(u.flags&Qt(l)||d){var p=d?e.concatenate(d.declarations,u.declarations):u.declarations,m=!(8192&s.flags)&&e.unescapeLeadingUnderscores(c)||e.declarationNameToString(o);e.forEach(p,(function(n){return Wt(e.getNameOfDeclaration(n)||n,e.Diagnostics.Property_0_was_also_declared_here,m)})),Wt(o||a,e.Diagnostics.Duplicate_property_0,m),u=Xt(0,c,4096)}return u.nameType=s,function(n,t,r){e.Debug.assert(!!(4096&e.getCheckFlags(n)),\"Expected a late-bound symbol.\"),n.flags|=r,ir(t.symbol).lateSymbol=n,n.declarations?n.declarations.push(t):n.declarations=[t],111551&r&&(n.valueDeclaration&&n.valueDeclaration.kind===t.kind||(n.valueDeclaration=t))}(u,a,l),u.parent?e.Debug.assert(u.parent===n,\"Existing symbol parent should match new one\"):u.parent=n,i.resolvedSymbol=u}}return i.resolvedSymbol}function mo(n,t){var r=ir(n);if(!r[t]){var a=\"resolvedExports\"===t,i=a?1536&n.flags?Jr(n):n.exports:n.members;r[t]=i||O;for(var o=e.createSymbolTable(),s=0,c=n.declarations;s<c.length;s++){var l=c[s],u=e.getMembersOfDeclaration(l);if(u)for(var d=0,p=u;d<p.length;d++){var m=p[d];a===e.hasStaticModifier(m)&&co(m)&&po(n,i,o,m)}}var f=n.assignmentDeclarationMembers;if(f)for(var _=0,g=e.arrayFrom(f.values());_<g.length;_++){m=g[_];var y=e.getAssignmentDeclarationKind(m);a===!(3===y||4===y||9===y||6===y)&&co(m)&&po(n,i,o,m)}r[t]=function(n,t){if(!e.hasEntries(n))return t;if(!e.hasEntries(t))return n;var r=e.createSymbolTable();return rr(r,n),rr(r,t),r}(i,o)||O}return r[t]}function fo(e){return 6256&e.flags?mo(e,\"resolvedMembers\"):e.members||O}function _o(n){if(106500&n.flags&&\"__computed\"===n.escapedName){var t=ir(n);if(!t.lateSymbol&&e.some(n.declarations,co)){var r=Xr(n.parent);e.some(n.declarations,e.hasStaticModifier)?Wr(r):fo(r)}return t.lateSymbol||(t.lateSymbol=n)}return n}function go(n,t,r){if(4&e.getObjectFlags(n)){var a=n.target,i=ic(n);if(e.length(a.typeParameters)===e.length(i)){var o=tc(a,e.concatenate(i,[t||a.thisType]));return r?ls(o):o}}else if(2097152&n.flags)return Zc(e.map(n.types,(function(e){return go(e,t,r)})));return r?ls(n):n}function yo(n,t,r,a){var i,o,s,c,l,u;e.rangeEquals(r,a,0,r.length)?(i=R,o=t.symbol?fo(t.symbol):e.createSymbolTable(t.declaredProperties),s=t.declaredCallSignatures,c=t.declaredConstructSignatures,l=t.declaredStringIndexInfo,u=t.declaredNumberIndexInfo):(i=Jl(r,a),o=to(t.declaredProperties,i,1===r.length),s=zl(t.declaredCallSignatures,i),c=zl(t.declaredConstructSignatures,i),l=mu(t.declaredStringIndexInfo,i),u=mu(t.declaredNumberIndexInfo,i));var d=Vi(t);if(d.length){t.symbol&&o===fo(t.symbol)&&(o=e.createSymbolTable(t.declaredProperties)),da(n,o,s,c,l,u);for(var p=e.lastOrUndefined(a),m=0,f=d;m<f.length;m++){var _=f[m],g=p?go(uu(_,i),p):_;ro(o,Xo(g)),s=e.concatenate(s,_s(g,0)),c=e.concatenate(c,_s(g,1)),l||(l=g===me?Xs(me,!1):vs(g,0)),u=u||vs(g,1)}}da(n,o,s,c,l,u)}function vo(e,n,t,r,a,i,o,s){var c=new m(ne,s);return c.declaration=e,c.typeParameters=n,c.parameters=r,c.thisParameter=t,c.resolvedReturnType=a,c.resolvedTypePredicate=i,c.minArgumentCount=o,c.target=void 0,c.mapper=void 0,c}function ho(e){var n=vo(e.declaration,e.typeParameters,e.thisParameter,e.parameters,void 0,void 0,e.minArgumentCount,3&e.flags);return n.target=e.target,n.mapper=e.mapper,n}function bo(e,n){var t=ho(e);return t.unionSignatures=n,t.target=void 0,t.mapper=void 0,t}function Eo(n,t){if((12&n.flags)===t)return n;n.optionalCallSignatureCache||(n.optionalCallSignatureCache={});var r=4===t?\"inner\":\"outer\";return n.optionalCallSignatureCache[r]||(n.optionalCallSignatureCache[r]=function(n,t){e.Debug.assert(4===t||8===t,\"An optional call signature can either be for an inner call chain or an outer call chain, but not both.\");var r=ho(n);return r.flags|=t,r}(n,t))}function To(n){if(I(n)){var t=n.parameters.length-1,r=Ci(n.parameters[t]);if(Cd(r)){var a=ic(r),i=r.target.minLength,o=r.target.hasRestElement?a.length-1:-1,s=e.map(a,(function(e,r){var a=Xt(1,Cg(n,t+r),r===o?32768:r>=i?16384:0);return a.type=r===o?Oc(e):e,a}));return e.concatenate(n.parameters.slice(0,t),s)}}return n.parameters}function So(e,n,t,r,a){for(var i=0,o=e;i<o.length;i++){var s=o[i];if(ld(s,n,t,r,a,t?Tu:bu))return s}}function xo(n,t,r){if(t.typeParameters){if(r>0)return;for(var a=1;a<n.length;a++)if(!So(n[a],t,!1,!1,!1))return;return[t]}var i;for(a=0;a<n.length;a++){var o=a===r?t:So(n[a],t,!0,!1,!0);if(!o)return;i=e.appendIfUnique(i,o)}return i}function Lo(n){for(var t,r,a=0;a<n.length;a++){if(0===n[a].length)return e.emptyArray;n[a].length>1&&(r=void 0===r?a:-1);for(var i=0,o=n[a];i<o.length;i++){var s=o[i];if(!t||!So(t,s,!1,!1,!0)){var c=xo(n,s,a);if(c){var l=s;if(c.length>1){var u=s.thisParameter,d=e.forEach(c,(function(e){return e.thisParameter}));if(d)u=Kd(d,Zc(e.mapDefined(c,(function(e){return e.thisParameter&&Ci(e.thisParameter)}))));(l=bo(s,c)).thisParameter=u}(t||(t=[])).push(l)}}}}if(!e.length(t)&&-1!==r){for(var p=n[void 0!==r?r:0],m=p.slice(),f=function(n){if(n!==p){var t=n[0];if(e.Debug.assert(!!t,\"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\"),!(m=t.typeParameters&&e.some(m,(function(e){return!!e.typeParameters}))?void 0:e.map(m,(function(n){return function(n,t){var r=n.declaration,a=function(e,n){for(var t=Ng(e),r=Ng(n),a=t>=r?e:n,i=a===e?n:e,o=a===e?t:r,s=Mg(e)||Mg(n),c=s&&!Mg(a),l=new Array(o+(c?1:0)),u=0;u<o;u++){var d=Dg(a,u),p=Dg(i,u)||ye,m=Zc([d,p]),f=s&&!c&&u===o-1,_=u>=Ig(a)&&u>=Ig(i),g=u>=t?void 0:Cg(e,u),y=u>=r?void 0:Cg(n,u),v=Xt(1|(_&&!f?16777216:0),(g===y?g:g?y?void 0:g:y)||\"arg\"+u);v.type=f?Oc(m):m,l[u]=v}if(c){var h=Xt(1,\"args\");h.type=Oc(Ag(i,o)),l[o]=h}return l}(n,t),i=function(e,n){if(!e||!n)return e||n;var t=Zc([Ci(e),Ci(n)]);return Kd(e,t)}(n.thisParameter,t.thisParameter),o=Math.max(n.minArgumentCount,t.minArgumentCount),s=vo(r,n.typeParameters||t.typeParameters,i,a,void 0,void 0,o,3&(n.flags|t.flags));return s.unionSignatures=e.concatenate(n.unionSignatures||[n],[t]),s}(n,t)}))))return\"break\"}},_=0,g=n;_<g.length;_++){if(\"break\"===f(g[_]))break}t=m}return t||e.emptyArray}function Co(e,n){for(var t=[],r=!1,a=0,i=e;a<i.length;a++){var o=vs(i[a],n);if(!o)return;t.push(o.type),r=r||o.isReadonly}return Xs(Wc(t,2),r)}function Ao(e,n){return e?n?Zc([e,n]):e:n}function Do(e,n){return e?n?Xs(Zc([e.type,n.type]),e.isReadonly&&n.isReadonly):e:n}function ko(e,n){return e&&n&&Xs(Wc([e.type,n.type]),e.isReadonly||n.isReadonly)}function No(n){var t=e.countWhere(n,(function(e){return _s(e,1).length>0})),r=e.map(n,Ri);if(t>0&&t===e.countWhere(r,(function(e){return e}))){var a=r.indexOf(!0);r[a]=!1}return r}function Io(n){for(var t,r,a,i,o=n.types,s=No(o),c=e.countWhere(s,(function(e){return e})),l=function(l){var u=n.types[l];if(!s[l]){var d=_s(u,1);d.length&&c>0&&(d=e.map(d,(function(e){var n=ho(e);return n.resolvedReturnType=function(e,n,t,r){for(var a=[],i=0;i<n.length;i++)i===r?a.push(e):t[i]&&a.push(ws(_s(n[i],1)[0]));return Zc(a)}(ws(e),o,s,l),n}))),r=Mo(r,d)}t=Mo(t,_s(u,0)),a=Do(a,vs(u,0)),i=Do(i,vs(u,1))},u=0;u<o.length;u++)l(u);da(n,O,t||e.emptyArray,r||e.emptyArray,a,i)}function Mo(n,t){for(var r=function(t){n&&!e.every(n,(function(e){return!ld(e,t,!1,!1,!1,bu)}))||(n=e.append(n,t))},a=0,i=t;a<i.length;a++){r(i[a])}return n}function Oo(n){var t=Xr(n.symbol);if(n.target)da(n,O,e.emptyArray,e.emptyArray,void 0,void 0),da(n,i=to(zo(n.target),n.mapper,!1),r=zl(_s(n.target,0),n.mapper),a=zl(_s(n.target,1),n.mapper),o=mu(vs(n.target,0),n.mapper),l=mu(vs(n.target,1),n.mapper));else if(2048&t.flags){da(n,O,e.emptyArray,e.emptyArray,void 0,void 0);var r=Os((i=fo(t)).get(\"__call\")),a=Os(i.get(\"__new\"));da(n,i,r,a,o=Ys(t,0),l=Ys(t,1))}else{var i=O,o=void 0;if(t.exports&&(i=Wr(t),t===Q)){var s=e.createMap();i.forEach((function(e){418&e.flags||s.set(e.escapedName,e)})),i=s}if(da(n,i,e.emptyArray,e.emptyArray,void 0,void 0),32&t.flags){var c=Bi(ji(t));11272192&c.flags?ro(i=e.createSymbolTable(ua(i)),Xo(c)):c===me&&(o=Xs(me,!1))}var l=384&t.flags&&(32&Yi(t).flags||e.some(n.properties,(function(e){return!!(296&Ci(e).flags)})))?Zn:void 0;if(da(n,i,e.emptyArray,e.emptyArray,o,l),8208&t.flags&&(n.callSignatures=Os(t)),32&t.flags){var u=ji(t);a=t.members?Os(t.members.get(\"__constructor\")):e.emptyArray;16&t.flags&&(a=e.addRange(a.slice(),e.mapDefined(n.callSignatures,(function(e){return _g(e.declaration)?vo(e.declaration,e.typeParameters,e.thisParameter,e.parameters,u,void 0,e.minArgumentCount,3&e.flags):void 0})))),a.length||(a=function(n){var t=_s(Bi(n),1);if(0===t.length)return[vo(void 0,n.localTypeParameters,void 0,e.emptyArray,n,void 0,0,0)];for(var r=wi(n),a=e.isInJSFile(r),i=hc(r),o=e.length(i),s=[],c=0,l=t;c<l.length;c++){var u=l[c],d=Ds(u.typeParameters),p=e.length(u.typeParameters);if(a||o>=d&&o<=p){var m=p?js(u,ks(i,u.typeParameters,d,a)):ho(u);m.typeParameters=n.localTypeParameters,m.resolvedReturnType=n,s.push(m)}}return s}(u)),n.constructSignatures=a}}}function Ro(n){if(131069&n.flags)return n;if(4194304&n.flags)return al(ls(n.type));if(16777216&n.flags){if(n.root.isDistributive){var t=n.checkType,r=Ro(t);if(r!==t)return lu(n,Yl(ql(n.root.checkType,r),n.mapper))}return n}return 1048576&n.flags?Wc(e.sameMap(n.types,Ro)):2097152&n.flags?Zc(e.sameMap(n.types,Ro)):Oe}function Po(e){return e.typeParameter||(e.typeParameter=Xi(Yr(e.declaration.typeParameter)))}function wo(e){return e.constraintType||(e.constraintType=Qo(Po(e))||ge)}function Fo(e){return e.templateType||(e.templateType=e.declaration.type?uu(ni(Kl(e.declaration.type),!!(4&Uo(e))),e.mapper||R):ge)}function Go(n){return e.getEffectiveConstraintOfTypeParameter(n.declaration.typeParameter)}function Bo(e){var n=Go(e);return 183===n.kind&&133===n.operator}function Vo(e){if(!e.modifiersType)if(Bo(e))e.modifiersType=uu(Kl(Go(e).type),e.mapper||R);else{var n=wo(bl(e.declaration)),t=n&&262144&n.flags?Qo(n):n;e.modifiersType=t&&4194304&t.flags?uu(t.type,e.mapper||R):ye}return e.modifiersType}function Uo(e){var n=e.declaration;return(n.readonlyToken?40===n.readonlyToken.kind?2:1:0)|(n.questionToken?40===n.questionToken.kind?8:4:0)}function jo(e){var n=Uo(e);return 8&n?-1:4&n?1:0}function Ko(e){var n=jo(e),t=Vo(e);return n||(Ho(t)?jo(t):0)}function Ho(n){return!!(32&e.getObjectFlags(n))&&dl(wo(n))}function Wo(n){return n.members||(524288&n.flags?4&n.objectFlags?function(n){var t=ao(n.target),r=e.concatenate(t.typeParameters,[t.thisType]),a=ic(n);yo(n,t,r,a.length===r.length?a:e.concatenate(a,[n]))}(n):3&n.objectFlags?function(n){yo(n,ao(n),e.emptyArray,e.emptyArray)}(n):2048&n.objectFlags?function(n){for(var t=vs(n.source,0),r=Uo(n.mappedType),a=!(1&r),i=4&r?0:16777216,o=t&&Xs(dp(t.type,n.mappedType,n.constraintType),a&&t.isReadonly),s=e.createSymbolTable(),c=0,l=Xo(n.source);c<l.length;c++){var u=l[c],d=8192|(a&&ny(u)?8:0),p=Xt(4|u.flags&i,u.escapedName,d);p.declarations=u.declarations,p.nameType=u.nameType,p.propertyType=Ci(u),p.mappedType=n.mappedType,p.constraintType=n.constraintType,s.set(u.escapedName,p)}da(n,s,e.emptyArray,e.emptyArray,o,void 0)}(n):16&n.objectFlags?Oo(n):32&n.objectFlags&&function(n){var t,r,a=e.createSymbolTable();da(n,O,e.emptyArray,e.emptyArray,void 0,void 0);var i=Po(n),o=wo(n),s=Fo(n.target||n),c=ls(Vo(n)),l=Uo(n),u=W?128:8576;if(Bo(n)){for(var d=0,p=Xo(c);d<p.length;d++){m(nl(p[d],u))}(1&c.flags||vs(c,0))&&m(Se),!W&&vs(c,1)&&m(xe)}else tm(Ro(o),m);function m(e){var o=Yl(n.mapper,Jl([i],[e])),u=uu(s,o);if(io(e)){var d=uo(e),p=ms(c,d),m=!!(4&l||!(8&l)&&p&&16777216&p.flags),f=Xt(4|(m?16777216:0),d,!!(1&l||!(2&l)&&p&&ny(p))?8:0);f.type=B&&m&&!xu(ve,u)?Pd(u):B&&!m&&p&&16777216&p.flags?Up(u,524288):u,p&&(f.syntheticOrigin=p,f.declarations=p.declarations),f.nameType=e,a.set(d,f)}else 5&e.flags?t=Xs(u,!!(1&l)):40&e.flags&&(r=Xs(r?Wc([r.type,u]):u,!!(1&l)))}da(n,a,e.emptyArray,e.emptyArray,t,r)}(n):1048576&n.flags?function(n){var t=Lo(e.map(n.types,(function(e){return e===an?[Xn]:_s(e,0)}))),r=Lo(e.map(n.types,(function(e){return _s(e,1)}))),a=Co(n.types,0),i=Co(n.types,1);da(n,O,t,r,a,i)}(n):2097152&n.flags&&Io(n)),n}function zo(n){return 524288&n.flags?Wo(n).properties:e.emptyArray}function qo(e,n){if(524288&e.flags){var t=Wo(e).members.get(n);if(t&&ta(t))return t}}function Jo(n){if(n.possiblePropertyCache)return n.possiblePropertyCache.size?e.arrayFrom(n.possiblePropertyCache.values()):e.emptyArray;n.possiblePropertyCache=e.createSymbolTable();for(var t=0,r=n.types;t<r.length;t++)for(var a=0,i=Xo(r[t]);a<i.length;a++){var o=i[a];if(!n.possiblePropertyCache.has(o.escapedName)){var s=ds(n,o.escapedName);s&&n.possiblePropertyCache.set(o.escapedName,s)}}return n.possiblePropertyCache.size?e.arrayFrom(n.possiblePropertyCache.values()):e.emptyArray}function Xo(n){return 3145728&(n=ls(n)).flags?function(n){if(!n.resolvedProperties){for(var t=e.createSymbolTable(),r=0,a=n.types;r<a.length;r++){for(var i=0,o=Xo(a[r]);i<o.length;i++){var s=o[i];if(!t.has(s.escapedName)){var c=ps(n,s.escapedName);c&&t.set(s.escapedName,c)}}if(1048576&n.flags)break}n.resolvedProperties=ua(t)}return n.resolvedProperties}(n):zo(n)}function Yo(e){return 262144&e.flags?Qo(e):8388608&e.flags?function(e){return as(e)?function(e){var n=Zo(e.indexType);if(n&&n!==e.indexType){var t=vl(e.objectType,n);if(t)return t}var r=Zo(e.objectType);if(r&&r!==e.objectType)return vl(r,e.indexType);return}(e):void 0}(e):16777216&e.flags?function(e){return as(e)?ns(e):void 0}(e):ts(e)}function Qo(e){return as(e)?Zs(e):void 0}function Zo(e){var n=ml(e,!1);return n!==e?n:Yo(e)}function $o(e){if(!e.resolvedDefaultConstraint){var n=function(e){return e.resolvedInferredTrueType||(e.resolvedInferredTrueType=e.combinedMapper?uu(e.root.trueType,e.combinedMapper):Sl(e))}(e),t=xl(e);e.resolvedDefaultConstraint=Wa(n)?t:Wa(t)?n:Wc([n,t])}return e.resolvedDefaultConstraint}function es(e){if(e.root.isDistributive&&e.restrictiveInstantiation!==e){var n=ml(e.checkType,!1),t=n===e.checkType?Yo(n):n;if(t&&t!==e.checkType){var r=lu(e,Yl(ql(e.root.checkType,t),e.mapper));if(!(131072&r.flags))return r}}}function ns(e){return es(e)||$o(e)}function ts(e){if(62128128&e.flags){var n=is(e);return n!==Je&&n!==Xe?n:void 0}return 4194304&e.flags?Ve:void 0}function rs(e){return ts(e)||e}function as(e){return is(e)!==Xe}function is(n){var t=!1;return n.resolvedBaseConstraint||(n.resolvedBaseConstraint=go(r(n),n));function r(n){if(!n.immediateBaseConstraint){if(!Ba(n,4))return Xe;if(E>=50)return Wt(s,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),t=!0,n.immediateBaseConstraint=Je;E++;var r=function(e){if(262144&e.flags){var n=Zs(e);return e.isThisType||!n?n:a(n)}if(3145728&e.flags){for(var t=e.types,r=[],i=0,o=t;i<o.length;i++){var s=a(o[i]);s&&r.push(s)}return 1048576&e.flags&&r.length===t.length?Wc(r):2097152&e.flags&&r.length?Zc(r):void 0}if(4194304&e.flags)return Ve;if(8388608&e.flags){var c=a(e.objectType),l=a(e.indexType),u=c&&l&&vl(c,l);return u&&a(u)}if(16777216&e.flags){n=ns(e);E++;var d=n&&a(n);return E--,d}if(33554432&e.flags)return a(e.substitute);return e}(ml(n,!1));if(E--,!ja()){if(262144&n.flags){var i=Qs(n);if(i){var o=Wt(i,e.Diagnostics.Type_parameter_0_has_a_circular_constraint,Aa(n));!s||e.isNodeDescendantOf(i,s)||e.isNodeDescendantOf(s,i)||e.addRelatedInfo(o,e.createDiagnosticForNode(s,e.Diagnostics.Circularity_originates_in_type_at_this_location))}}r=Xe}t&&(r=Xe),n.immediateBaseConstraint=r||Je}return n.immediateBaseConstraint}function a(e){var n=r(e);return n!==Je&&n!==Xe?n:void 0}}function os(n){if(n.default)n.default===Ye&&(n.default=Xe);else if(n.target){var t=os(n.target);n.default=t?uu(t,n.mapper):Je}else{n.default=Ye;var r=n.symbol&&e.forEach(n.symbol.declarations,(function(n){return e.isTypeParameterDeclaration(n)&&n.default})),a=r?Kl(r):Je;n.default===Ye&&(n.default=a)}return n.default}function ss(e){var n=os(e);return n!==Je&&n!==Xe?n:void 0}function cs(e){return e.resolvedApparentType||(e.resolvedApparentType=function(e){var n=iu(e);if(n){var t=Qo(n);if(t&&(dd(t)||Cd(t))){var r=ql(n,t);return uu(e,Yl(r,e.mapper))}}return e}(e))}function ls(n){var t,r=63176704&n.flags?ts(n)||ye:n;return 32&e.getObjectFlags(r)?cs(r):2097152&r.flags?function(e){return e.resolvedApparentType||(e.resolvedApparentType=go(e,e,!0))}(r):132&r.flags?un:296&r.flags?dn:2112&r.flags?(t=w>=99,Vn||(Vn=xc(\"BigInt\",0,t))||je):528&r.flags?pn:12288&r.flags?Cc(w>=2):67108864&r.flags?je:4194304&r.flags?Ve:2&r.flags&&!B?je:r}function us(n,t){for(var r,a=e.createMap(),i=1048576&n.flags,o=i?24:0,s=i?0:16777216,c=4,l=0,u=0,d=n.types;u<d.length;u++){if((C=ls(d[u]))!==ge){var p=(x=ms(C,t))?e.getDeclarationModifierFlagsFromSymbol(x):0;if(!x||p&o){if(i){var m=!so(t)&&(Df(t)&&vs(C,1)||vs(C,0));m?(l|=32|(m.isReadonly?8:0),r=e.append(r,Cd(C)?Ad(C)||ve:m.type)):hp(C)?(l|=32,r=e.append(r,ve)):l|=16}}else{i?s|=16777216&x.flags:s&=x.flags;var f=\"\"+L(x);a.has(f)||a.set(f,x),l|=(ny(x)?8:0)|(24&p?0:256)|(16&p?512:0)|(8&p?1024:0)|(32&p?2048:0),e_(x)||(c=2)}}}if(a.size){var _,g,y,v=e.arrayFrom(a.values());if(!(1!==v.length||16&l||r))return v[0];for(var h,b=[],E=!1,T=0,S=v;T<S.length;T++){var x=S[T];h?x.valueDeclaration!==h&&(E=!0):h=x.valueDeclaration,_=e.addRange(_,x.declarations);var C=Ci(x);g?C!==g&&(l|=64):(g=C,y=x.nameType),bd(C)&&(l|=128),b.push(C)}e.addRange(b,r);var A=Xt(4|s,t,c|l);return A.containingType=n,!E&&h&&(A.valueDeclaration=h,h.symbol.parent&&(A.parent=h.symbol.parent)),A.declarations=_,A.nameType=y,b.length>2?(A.checkFlags|=65536,A.deferralParent=n,A.deferralConstituents=b):A.type=i?Wc(b):Zc(b),A}}function ds(n,t){var r=n.propertyCache||(n.propertyCache=e.createSymbolTable()),a=r.get(t);return a||(a=us(n,t))&&r.set(t,a),a}function ps(n,t){var r=ds(n,t);return!r||16&e.getCheckFlags(r)?void 0:r}function ms(e,n){if(524288&(e=ls(e)).flags){var t=Wo(e),r=t.members.get(n);if(r&&ta(r))return r;var a=t===qe?an:t.callSignatures.length?on:t.constructSignatures.length?sn:void 0;if(a){var i=qo(a,n);if(i)return i}return qo(rn,n)}if(3145728&e.flags)return ps(e,n)}function fs(n,t){if(3670016&n.flags){var r=Wo(n);return 0===t?r.callSignatures:r.constructSignatures}return e.emptyArray}function _s(e,n){return fs(ls(e),n)}function gs(e,n){if(3670016&e.flags){var t=Wo(e);return 0===n?t.stringIndexInfo:t.numberIndexInfo}}function ys(e,n){var t=gs(e,n);return t&&t.type}function vs(e,n){return gs(ls(e),n)}function hs(e,n){return ys(ls(e),n)}function bs(n,t){if(jd(n)){for(var r=[],a=0,i=Xo(n);a<i.length;a++){var o=i[a];(0===t||Df(o.escapedName))&&r.push(Ci(o))}if(0===t&&e.append(r,hs(n,1)),r.length)return Wc(r,2)}}function Es(n){for(var t,r=0,a=e.getEffectiveTypeParameterDeclarations(n);r<a.length;r++){var i=a[r];t=e.appendIfUnique(t,Xi(i.symbol))}return t}function Ts(e){var n=[];return e.forEach((function(e,t){la(t)||n.push(e)})),n}function Ss(n){return e.isInJSFile(n)&&(n.type&&297===n.type.kind||e.getJSDocParameterTags(n).some((function(e){var n=e.isBracketed,t=e.typeExpression;return n||!!t&&297===t.type.kind})))}function xs(n,t){if(!e.isExternalModuleNameRelative(n)){var r=cr(X,'\"'+n+'\"',512);return r&&t?Xr(r):r}}function Ls(n){if(e.hasQuestionToken(n)||Cs(n)||Ss(n))return!0;if(n.initializer){var t=Ns(n.parent),r=n.parent.parameters.indexOf(n);return e.Debug.assert(r>=0),r>=Ig(t)}var a=e.getImmediatelyInvokedFunctionExpression(n.parent);return!!a&&(!n.type&&!n.dotDotDotToken&&n.parent.parameters.indexOf(n)>=a.arguments.length)}function Cs(n){if(!e.isJSDocParameterTag(n))return!1;var t=n.isBracketed,r=n.typeExpression;return t||!!r&&297===r.type.kind}function As(e,n,t,r){return{kind:e,parameterName:n,parameterIndex:t,type:r}}function Ds(n){var t,r=0;if(n)for(var a=0;a<n.length;a++)(t=n[a]).symbol&&e.forEach(t.symbol.declarations,(function(n){return e.isTypeParameterDeclaration(n)&&n.default}))||(r=a+1);return r}function ks(n,t,r,a){var i=e.length(t);if(!i)return[];var o=e.length(n);if(a||o>=r&&o<=i){for(var s=n?n.slice():[],c=o;c<i;c++)s[c]=ge;var l=xp(a);for(c=o;c<i;c++){var u=ss(t[c]);a&&u&&(hu(u,ye)||hu(u,je))&&(u=me),s[c]=u?uu(u,Jl(t,s)):l}return s.length=t.length,s}return n&&n.slice()}function Ns(n){var t,r=or(n);if(!r.resolvedSignature){for(var a=[],i=0,o=0,s=void 0,c=!1,l=e.getImmediatelyInvokedFunctionExpression(n),u=e.isJSDocConstructSignature(n),d=!l&&e.isInJSFile(n)&&e.isValueSignatureDeclaration(n)&&!e.hasJSDocParameterTags(n)&&!e.getJSDocType(n),p=u?1:0;p<n.parameters.length;p++){var m=n.parameters[p],f=m.symbol,_=e.isJSDocParameterTag(m)?m.typeExpression&&m.typeExpression.type:m.type;if(f&&4&f.flags&&!e.isBindingPattern(m.name))f=ur(m,f.escapedName,111551,void 0,void 0,!1);0===p&&\"this\"===f.escapedName?(c=!0,s=m.symbol):a.push(f),_&&186===_.kind&&(i|=2),Cs(m)||m.initializer||m.questionToken||m.dotDotDotToken||l&&a.length>l.arguments.length&&!_||d||Ss(m)||(o=a.length)}if(!(162!==n.kind&&163!==n.kind||lo(n)||c&&s)){var g=162===n.kind?163:162,y=e.getDeclarationOfKind(Yr(n),g);y&&(s=(t=rE(y))&&t.symbol)}var v=161===n.kind?ji(Xr(n.parent.symbol)):void 0,h=v?v.localTypeParameters:Es(n);(e.hasRestParameter(n)||e.isInJSFile(n)&&function(n,t){if(e.isJSDocSignature(n)||!Ms(n))return!1;var r=e.lastOrUndefined(n.parameters),a=r?e.getJSDocParameterTags(r):e.getJSDocTags(n).filter(e.isJSDocParameterTag),i=e.firstDefined(a,(function(n){return n.typeExpression&&e.isJSDocVariadicType(n.typeExpression.type)?n.typeExpression.type:void 0})),o=Xt(3,\"args\",32768);o.type=i?Oc(Kl(i.type)):_n,i&&t.pop();return t.push(o),!0}(n,a))&&(i|=1),r.resolvedSignature=vo(n,h,s,a,void 0,void 0,o,i)}return r.resolvedSignature}function Is(n){var t=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0,r=t&&t.typeExpression&&F_(Kl(t.typeExpression));return r&&Ks(r)}function Ms(n){var t=or(n);return void 0===t.containsArgumentsReference&&(8192&t.flags?t.containsArgumentsReference=!0:t.containsArgumentsReference=function n(t){if(!t)return!1;switch(t.kind){case 75:return\"arguments\"===t.escapedText&&e.isExpressionNode(t);case 158:case 160:case 162:case 163:return 153===t.name.kind&&n(t.name);default:return!e.nodeStartsNewLexicalEnvironment(t)&&!e.isPartOfTypeNode(t)&&!!e.forEachChild(t,n)}}(n.body)),t.containsArgumentsReference}function Os(n){if(!n)return e.emptyArray;for(var t=[],r=0;r<n.declarations.length;r++){var a=n.declarations[r];if(e.isFunctionLike(a)){if(r>0&&a.body){var i=n.declarations[r-1];if(a.parent===i.parent&&a.kind===i.kind&&a.pos===i.end)continue}t.push(Ns(a))}}return t}function Rs(e){if(e.thisParameter)return Ci(e.thisParameter)}function Ps(n){if(!n.resolvedTypePredicate){if(n.target){var t=Ps(n.target);n.resolvedTypePredicate=t?(o=t,s=n.mapper,As(o.kind,o.parameterName,o.parameterIndex,uu(o.type,s))):qn}else if(n.unionSignatures)n.resolvedTypePredicate=function(e){for(var n,t=[],r=0,a=e;r<a.length;r++){var i=Ps(a[r]);if(i&&2!==i.kind&&3!==i.kind){if(n){if(!zc(n,i))return}else n=i;t.push(i.type)}}if(!n)return;var o=Wc(t);return As(n.kind,n.parameterName,n.parameterIndex,o)}(n.unionSignatures)||qn;else{var r=n.declaration&&e.getEffectiveReturnTypeNode(n.declaration),a=void 0;if(!r&&e.isInJSFile(n.declaration)){var i=Is(n.declaration);i&&n!==i&&(a=Ps(i))}n.resolvedTypePredicate=r&&e.isTypePredicateNode(r)?function(n,t){var r=n.parameterName,a=n.type&&Kl(n.type);return 182===r.kind?As(n.assertsModifier?2:0,void 0,void 0,a):As(n.assertsModifier?3:1,r.escapedText,e.findIndex(t.parameters,(function(e){return e.escapedName===r.escapedText})),a)}(r,n):a||qn}e.Debug.assert(!!n.resolvedTypePredicate)}var o,s;return n.resolvedTypePredicate===qn?void 0:n.resolvedTypePredicate}function ws(n){if(!n.resolvedReturnType){if(!Ba(n,3))return ge;var t=n.target?uu(ws(n.target),n.mapper):n.unionSignatures?Wc(e.map(n.unionSignatures,ws),2):Fs(n.declaration)||(e.nodeIsMissing(n.declaration.body)?me:jg(n.declaration));if(4&n.flags?t=Fd(t):8&n.flags&&(t=Pd(t)),!ja()){if(n.declaration){var r=e.getEffectiveReturnTypeNode(n.declaration);if(r)Wt(r,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(K){var a=n.declaration,i=e.getNameOfDeclaration(a);i?Wt(i,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,e.declarationNameToString(i)):Wt(a,e.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}t=me}n.resolvedReturnType=t}return n.resolvedReturnType}function Fs(n){if(161===n.kind)return ji(Xr(n.parent.symbol));if(e.isJSDocConstructSignature(n))return Kl(n.parameters[0].type);var t,r=e.getEffectiveReturnTypeNode(n);if(r)return Kl(r);if(162===n.kind&&!lo(n)){var a=e.isInJSFile(n)&&$a(n);if(a)return a;var i=vi(e.getDeclarationOfKind(Yr(n),163));if(i)return i}return(t=Is(n))&&ws(t)}function Gs(e){return!e.resolvedReturnType&&Va(e,3)>=0}function Bs(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]),t=Cd(n)?Ad(n):n;return t&&hs(t,1)}}function Vs(e,n,t,r){var a=Us(e,ks(n,e.typeParameters,Ds(e.typeParameters),t));if(r){var i=G_(ws(a));if(i){var o=ho(i);o.typeParameters=r;var s=ho(a);return s.resolvedReturnType=zs(o),s}}return a}function Us(n,t){var r=n.instantiations||(n.instantiations=e.createMap()),a=ec(t),i=r.get(a);return i||r.set(a,i=js(n,t)),i}function js(e,n){return nu(e,function(e,n){return Jl(e.typeParameters,n)}(e,n),!0)}function Ks(e){return e.typeParameters?e.erasedSignatureCache||(e.erasedSignatureCache=function(e){return nu(e,Xl(e.typeParameters),!0)}(e)):e}function Hs(n){return n.typeParameters?n.canonicalSignatureCache||(n.canonicalSignatureCache=function(n){return Vs(n,e.map(n.typeParameters,(function(e){return e.target&&!Qo(e.target)?e.target:e})),e.isInJSFile(n.declaration))}(n)):n}function Ws(n){var t=n.typeParameters;if(t){var r=Xl(t);return nu(n,Jl(t,e.map(t,(function(e){return uu(ts(e),r)||ye}))),!0)}return n}function zs(n){if(!n.isolatedSignatureType){var t=n.declaration?n.declaration.kind:0,r=161===t||165===t||170===t,a=sa(16);a.members=O,a.properties=e.emptyArray,a.callSignatures=r?e.emptyArray:[n],a.constructSignatures=r?[n]:e.emptyArray,n.isolatedSignatureType=a}return n.isolatedSignatureType}function qs(e){return e.members.get(\"__index\")}function Js(n,t){var r=1===t?139:142,a=qs(n);if(a)for(var i=0,o=a.declarations;i<o.length;i++){var s=o[i],c=e.cast(s,e.isIndexSignatureDeclaration);if(1===c.parameters.length){var l=c.parameters[0];if(l.type&&l.type.kind===r)return c}}}function Xs(e,n,t){return{type:e,isReadonly:n,declaration:t}}function Ys(n,t){var r=Js(n,t);if(r)return Xs(r.type?Kl(r.type):me,e.hasModifier(r,64),r)}function Qs(n){return e.mapDefined(e.filter(n.symbol&&n.symbol.declarations,e.isTypeParameterDeclaration),e.getEffectiveConstraintOfTypeParameter)[0]}function Zs(n){if(!n.constraint)if(n.target){var t=Qo(n.target);n.constraint=t?uu(t,n.mapper):Je}else{var r=Qs(n);n.constraint=r?Kl(r):function(n){var t;if(n.symbol)for(var r=0,a=n.symbol.declarations;r<a.length;r++){var i=a[r];if(180===i.parent.kind){var o=i.parent.parent;if(168===o.kind){var s=o,c=Jy(s);if(c){var l=s.typeArguments.indexOf(i.parent);if(l<c.length){var u=Qo(c[l]);if(u){var d=uu(u,Jl(c,zy(s,c)));d!==n&&(t=e.append(t,d))}}}}else 155===o.kind&&o.dotDotDotToken&&(t=e.append(t,Oc(ye)))}}return t&&Zc(t)}(n)||Je}return n.constraint===Je?void 0:n.constraint}function $s(n){var t=e.getDeclarationOfKind(n.symbol,154),r=e.isJSDocTemplateTag(t.parent)?e.getHostSignatureFromJSDoc(t.parent):t.parent;return r&&Yr(r)}function ec(e){var n=\"\";if(e)for(var t=e.length,r=0;r<t;){for(var a=e[r].id,i=1;r+i<t&&e[r+i].id===a+i;)i++;n.length&&(n+=\",\"),n+=a,i>1&&(n+=\":\"+i),r+=i}return n}function nc(n,t){for(var r=0,a=0,i=n;a<i.length;a++){var o=i[a];o.flags&t||(r|=e.getObjectFlags(o))}return 1835008&r}function tc(e,n){var t=ec(n),r=e.instantiations.get(t);return r||(r=sa(4,e.symbol),e.instantiations.set(t,r),r.objectFlags|=n?nc(n,0):0,r.target=e,r.resolvedTypeArguments=n),r}function rc(e){var n=aa(e.flags);return n.symbol=e.symbol,n.objectFlags=e.objectFlags,n.target=e.target,n.resolvedTypeArguments=e.resolvedTypeArguments,n}function ac(e,n,t){var r=kl(n),a=Nl(r),i=sa(4,e.symbol);return i.target=e,i.node=n,i.mapper=t,i.aliasSymbol=r,i.aliasTypeArguments=t?Wl(a,t):a,i}function ic(n){var t,r;if(!n.resolvedTypeArguments){if(!Ba(n,7))return(null===(t=n.target.localTypeParameters)||void 0===t?void 0:t.map((function(){return ge})))||e.emptyArray;var a=n.node,i=a?168===a.kind?e.concatenate(n.target.outerTypeParameters,zy(a,n.target.localTypeParameters)):173===a.kind?[Kl(a.elementType)]:e.map(a.elementTypes,Kl):e.emptyArray;ja()?n.resolvedTypeArguments=n.mapper?Wl(i,n.mapper):i:(n.resolvedTypeArguments=(null===(r=n.target.localTypeParameters)||void 0===r?void 0:r.map((function(){return ge})))||e.emptyArray,Wt(n.node||s,n.target.symbol?e.Diagnostics.Type_arguments_for_0_circularly_reference_themselves:e.Diagnostics.Tuple_type_arguments_circularly_reference_themselves,n.target.symbol&&La(n.target.symbol)))}return n.resolvedTypeArguments}function oc(n){return e.length(n.target.typeParameters)}function sc(n,t){var r=Yi(Xr(t)),a=r.localTypeParameters;if(a){var i=e.length(n.typeArguments),o=Ds(a),s=e.isInJSFile(n);if(!(!K&&s)&&(i<o||i>a.length)){var c=s&&e.isExpressionWithTypeArguments(n)&&!e.isJSDocAugmentsTag(n.parent);if(Wt(n,o===a.length?c?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:c?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,Aa(r,void 0,2),o,a.length),!s)return ge}return 168===n.kind&&Pc(n)?ac(r,n,void 0):tc(r,e.concatenate(r.outerTypeParameters,ks(hc(n),a,o,s)))}return yc(n,t)?r:ge}function cc(n,t){var r=Yi(n),a=ir(n),i=a.typeParameters,o=ec(t),s=a.instantiations.get(o);return s||a.instantiations.set(o,s=uu(r,Jl(i,ks(t,i,Ds(i),e.isInJSFile(n.valueDeclaration))))),s}function lc(n){switch(n.kind){case 168:return n.typeName;case 215:var t=n.expression;if(e.isEntityNameExpression(t))return t}}function uc(e,n,t){return e&&Rr(e,n,t)||de}function dc(n,t){if(t===de)return ge;if(96&(t=function(n){var t=n.valueDeclaration;if(t&&e.isInJSFile(t)&&!(524288&n.flags)){var r=e.isVariableDeclaration(t)?e.getDeclaredExpandoInitializer(t):e.getAssignedExpandoInitializer(t);return r&&Yr(r)||void 0}}(t)||t).flags)return sc(n,t);if(524288&t.flags)return function(n,t){var r=Yi(t),a=ir(t).typeParameters;if(a){var i=e.length(n.typeArguments),o=Ds(a);return i<o||i>a.length?(Wt(n,o===a.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,La(t),o,a.length),ge):cc(t,hc(n))}return yc(n,t)?r:ge}(n,t);var r=Qi(t);if(r)return yc(n,t)?262144&r.flags?_c(r,n):Gl(r):ge;if(111551&t.flags&&gc(n)){var a=function(n,t){var r=Ci(t),a=r;if(t.valueDeclaration){var i=e.getRootDeclaration(t.valueDeclaration),o=!1;if(e.isVariableDeclaration(i)&&i.initializer){for(var s=i.initializer;e.isPropertyAccessExpression(s);)s=s.expression;o=e.isCallExpression(s)&&e.isRequireCall(s,!0)&&!!r.symbol}var c=t!==r.symbol&&Xr(t)===r.symbol,l=187===n.kind&&n.qualifier;r.symbol&&(o||l||c)&&(a=dc(n,r.symbol))}return ir(t).resolvedJSDocType=a}(n,t);return a||(uc(lc(n),788968),Ci(t))}return ge}function pc(e,n){if(3&n.flags||n===e)return e;var t=Bc(e)+\">\"+Bc(n),r=ce.get(t);if(r)return r;var a=aa(33554432);return a.typeVariable=e,a.substitute=n,ce.set(t,a),a}function mc(e){return 174===e.kind&&1===e.elementTypes.length}function fc(e,n,t){return mc(n)&&mc(t)?fc(e,n.elementTypes[0],t.elementTypes[0]):El(Kl(n))===e?Kl(t):void 0}function _c(n,t){for(var r;t&&!e.isStatement(t)&&301!==t.kind;){var a=t.parent;if(179===a.kind&&t===a.trueType){var i=fc(n,a.checkType,a.extendsType);i&&(r=e.append(r,i))}t=a}return r?pc(n,Zc(e.append(r,n))):n}function gc(e){return!!(4194304&e.flags)&&(168===e.kind||187===e.kind)}function yc(n,t){return!n.typeArguments||(Wt(n,e.Diagnostics.Type_0_is_not_generic,t?La(t):n.typeName?e.declarationNameToString(n.typeName):\"(anonymous)\"),!1)}function vc(n){var t=or(n);if(!t.resolvedType){var r=void 0,a=void 0;gc(n)&&((a=function(n){if(e.isIdentifier(n.typeName)){var t=n.typeArguments;switch(n.typeName.escapedText){case\"String\":return yc(n),Se;case\"Number\":return yc(n),xe;case\"Boolean\":return yc(n),Ne;case\"Void\":return yc(n),Me;case\"Undefined\":return yc(n),ve;case\"Null\":return yc(n),Ee;case\"Function\":case\"function\":return yc(n),an;case\"Array\":case\"array\":return t&&t.length||K?void 0:_n;case\"Promise\":case\"promise\":return t&&t.length||K?void 0:Bg(me);case\"Object\":if(t&&2===t.length){if(e.isJSDocIndexSignature(n)){var r=Kl(t[0]),a=Xs(Kl(t[1]),!1);return pa(void 0,O,e.emptyArray,e.emptyArray,r===Se?a:void 0,r===xe?a:void 0)}return me}return yc(n),K?void 0:me}}}(n))||((r=uc(lc(n),788968,!0))===de?r=uc(lc(n),900095):uc(lc(n),788968),a=dc(n,r))),a||(a=dc(n,r=uc(lc(n),788968))),t.resolvedSymbol=r,t.resolvedType=a}return t.resolvedType}function hc(n){return e.map(n.typeArguments,Kl)}function bc(e){var n=or(e);return n.resolvedType||(n.resolvedType=Gl(Xd(Py(e.exprName)))),n.resolvedType}function Ec(n,t){function r(e){for(var n=0,t=e.declarations;n<t.length;n++){var r=t[n];switch(r.kind){case 244:case 245:case 247:return r}}}if(!n)return t?ze:je;var a=Yi(n);return 524288&a.flags?e.length(a.typeParameters)!==t?(Wt(r(n),e.Diagnostics.Global_type_0_must_have_1_type_parameter_s,e.symbolName(n),t),t?ze:je):a:(Wt(r(n),e.Diagnostics.Global_type_0_must_be_a_class_or_interface_type,e.symbolName(n)),t?ze:je)}function Tc(n,t){return Sc(n,111551,t?e.Diagnostics.Cannot_find_global_value_0:void 0)}function Sc(e,n,t){return ur(void 0,e,n,t,e,!1)}function xc(n,t,r){var a=function(n,t){return Sc(n,788968,t?e.Diagnostics.Cannot_find_global_type_0:void 0)}(n,r);return a||r?Ec(a,t):void 0}function Lc(e){return hn||(hn=Tc(\"Symbol\",e))}function Cc(e){return bn||(bn=xc(\"Symbol\",0,e))||je}function Ac(e){return Tn||(Tn=xc(\"Promise\",1,e))||ze}function Dc(e){return xn||(xn=Tc(\"Promise\",e))}function kc(e){return Cn||(Cn=xc(\"Iterable\",1,e))||ze}function Nc(e,n){void 0===n&&(n=0);var t=Sc(e,788968,void 0);return t&&Ec(t,n)}function Ic(e,n){return e!==ze?tc(e,n):je}function Mc(e){return Ic(En||(En=xc(\"TypedPropertyDescriptor\",1,!0))||ze,[e])}function Oc(e,n){return Ic(n?ln:cn,[e])}function Rc(n){var t=function(n){return e.isTypeOperatorNode(n)&&137===n.operator}(n.parent);if(173===n.kind||1===n.elementTypes.length&&176===n.elementTypes[0].kind)return t?ln:cn;var r=e.lastOrUndefined(n.elementTypes),a=r&&176===r.kind?r:void 0,i=e.findLastIndex(n.elementTypes,(function(e){return 175!==e.kind&&e!==a}))+1;return wc(n.elementTypes.length,i,!!a,t,void 0)}function Pc(e){var n=e.parent;switch(n.kind){case 181:case 168:case 177:case 178:case 184:case 179:case 183:return Pc(n);case 246:return!0}return!1}function wc(n,t,r,a,i){var o=n+(r?\"+\":\",\")+t+(a?\"R\":\"\")+(i&&i.length?\",\"+i.join(\",\"):\"\"),s=re.get(o);return s||re.set(o,s=function(n,t,r,a,i){var o,s=[],c=r?n-1:n;if(n){o=new Array(n);for(var l=0;l<n;l++){var u=o[l]=ca();if(l<c){var d=Xt(4|(l>=t?16777216:0),\"\"+l,a?8:0);d.type=u,s.push(d)}}}var p=[];for(l=t;l<=c;l++)p.push(Vl(l));var m=Xt(4,\"length\");m.type=r?xe:Wc(p),s.push(m);var f=sa(12);return f.typeParameters=o,f.outerTypeParameters=void 0,f.localTypeParameters=o,f.instantiations=e.createMap(),f.instantiations.set(ec(f.typeParameters),f),f.target=f,f.resolvedTypeArguments=f.typeParameters,f.thisType=ca(),f.thisType.isThisType=!0,f.thisType.constraint=f,f.declaredProperties=s,f.declaredCallSignatures=e.emptyArray,f.declaredConstructSignatures=e.emptyArray,f.declaredStringIndexInfo=void 0,f.declaredNumberIndexInfo=void 0,f.minLength=t,f.hasRestElement=r,f.readonly=a,f.associatedNames=i,f}(n,t,r,a,i)),s}function Fc(e,n,t,r,a){void 0===n&&(n=e.length),void 0===t&&(t=!1),void 0===r&&(r=!1);var i=e.length;if(1===i&&t)return Oc(e[0],r);var o=wc(i,n,i>0&&t,r,a);return e.length?tc(o,e):o}function Gc(e,n){var t=e.target;return t.hasRestElement&&(n=Math.min(n,oc(e)-1)),Fc(ic(e).slice(n),Math.max(0,t.minLength-n),t.hasRestElement,t.readonly,t.associatedNames&&t.associatedNames.slice(n))}function Bc(e){return e.id}function Vc(n,t){return e.binarySearch(n,t,Bc,e.compareValues)>=0}function Uc(n,t){var r=e.binarySearch(n,t,Bc,e.compareValues);return r<0&&(n.splice(~r,0,t),!0)}function jc(n,t,r){var a=r.flags;if(1048576&a)return Kc(n,t,r.types);if(!(131072&a))if(t|=68943871&a,66846720&a&&(t|=262144),r===_e&&(t|=4194304),!B&&98304&a)262144&e.getObjectFlags(r)||(t|=2097152);else{var i=n.length,o=i&&r.id>n[i-1].id?~i:e.binarySearch(n,r,Bc,e.compareValues);o<0&&n.splice(~o,0,r)}return t}function Kc(e,n,t){for(var r=0,a=t;r<a.length;r++){n=jc(e,n,a[r])}return n}function Hc(n,t){var r=n.length;if(0===r||function(e){var n=e[0];if(1024&n.flags){for(var t=Qr(n.symbol),r=1;r<e.length;r++){var a=e[r];if(!(1024&a.flags)||t!==Qr(a.symbol))return!1}return!0}return!1}(n))return!0;for(var a=r,i=0;a>0;)for(var o=n[--a],c=0,l=n;c<l.length;c++){var u=l[c];if(o!==u){if(1e5===i)if(i/(r-a)*r>(t?25e6:1e6))return Wt(s,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1;if(i++,Su(o,u)&&(!(1&e.getObjectFlags(Di(o)))||!(1&e.getObjectFlags(Di(u)))||Lu(o,u))){e.orderedRemoveItemAt(n,a);break}}}return!0}function Wc(n,t,r,a){if(void 0===t&&(t=1),0===n.length)return Oe;if(1===n.length)return n[0];var i=[],o=Kc(i,0,n);if(0!==t){if(3&o)return 1&o?4194304&o?_e:me:ye;switch(t){case 1:11136&o&&function(n,t){for(var r=n.length;r>0;){var a=n[--r];(128&a.flags&&4&t||256&a.flags&&8&t||2048&a.flags&&64&t||8192&a.flags&&4096&t||Bl(a)&&Vc(n,a.regularType))&&e.orderedRemoveItemAt(n,r)}}(i,o);break;case 2:if(!Hc(i,!(262144&o)))return ge}if(0===i.length)return 65536&o?2097152&o?Ee:Te:32768&o?2097152&o?ve:he:Oe}return qc(i,66994211&o?0:131072,r,a)}function zc(e,n){return e.kind===n.kind&&e.parameterIndex===n.parameterIndex}function qc(e,n,t,r){if(0===e.length)return Oe;if(1===e.length)return e[0];var a=ec(e),i=ae.get(a);return i||(i=aa(1048576),ae.set(a,i),i.objectFlags=n|nc(e,98304),i.types=e,i.aliasSymbol=t,i.aliasTypeArguments=r),i}function Jc(e,n,t){var r=t.flags;return 2097152&r?Xc(e,n,t.types):(Uu(t)?8388608&n||(n|=8388608,e.set(t.id.toString(),t)):(3&r?t===_e&&(n|=4194304):!B&&98304&r||e.has(t.id.toString())||(109440&t.flags&&109440&n&&(n|=67108864),e.set(t.id.toString(),t)),n|=68943871&r),n)}function Xc(e,n,t){for(var r=0,a=t;r<a.length;r++){n=Jc(e,n,Gl(a[r]))}return n}function Yc(e,n){for(var t=0,r=e;t<r.length;t++){var a=r[t];if(!Vc(a.types,n)){var i=128&n.flags?Se:256&n.flags?xe:2048&n.flags?Le:8192&n.flags?Ie:void 0;if(!i||!Vc(a.types,i))return!1}}return!0}function Qc(n,t){if(e.every(n,(function(n){return!!(1048576&n.flags)&&e.some(n.types,(function(e){return!!(e.flags&t)}))}))){for(var r=0;r<n.length;r++)n[r]=am(n[r],(function(e){return!(e.flags&t)}));return!0}return!1}function Zc(n,t,r){var a=e.createMap(),i=Xc(a,0,n),o=e.arrayFrom(a.values());if(131072&i||B&&98304&i&&76021760&i||67108864&i&&130044&i||132&i&&67238776&i||296&i&&67238612&i||2112&i&&67236796&i||12288&i&&67226620&i||49152&i&&67189756&i)return Oe;if(1&i)return 4194304&i?_e:me;if(!B&&98304&i)return 32768&i?ve:Ee;if((4&i&&128&i||8&i&&256&i||64&i&&2048&i||4096&i&&8192&i)&&function(n,t){for(var r=n.length;r>0;){var a=n[--r];(4&a.flags&&128&t||8&a.flags&&256&t||64&a.flags&&2048&t||4096&a.flags&&8192&t)&&e.orderedRemoveItemAt(n,r)}}(o,i),8388608&i&&524288&i&&e.orderedRemoveItemAt(o,e.findIndex(o,Uu)),0===o.length)return ye;if(1===o.length)return o[0];var c=ec(o),l=ie.get(c);if(!l){if(1048576&i)if(function(n){var t,r=e.findIndex(n,(function(n){return!!(131072&e.getObjectFlags(n))}));if(r<0)return!1;for(var a=r+1;a<n.length;){var i=n[a];131072&e.getObjectFlags(i)?((t||(t=[n[r]])).push(i),e.orderedRemoveItemAt(n,a)):a++}if(!t)return!1;for(var o=[],s=[],c=0,l=t;c<l.length;c++)for(var u=0,d=l[c].types;u<d.length;u++){Uc(o,i=d[u])&&Yc(t,i)&&Uc(s,i)}return n[r]=qc(s,131072),!0}(o))l=Zc(o,t,r);else if(Qc(o,32768))l=Wc([Zc(o),ve],1,t,r);else if(Qc(o,65536))l=Wc([Zc(o),Ee],1,t,r);else{if(e.reduceLeft(o,(function(e,n){return e*(1048576&n.flags?n.types.length:1)}),1)>=1e5)return Wt(s,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),ge;var u=e.findIndex(o,(function(e){return 0!=(1048576&e.flags)})),d=o[u];l=Wc(e.map(d.types,(function(n){return Zc(e.replaceElement(o,u,n))})),1,t,r)}else l=function(e,n,t){var r=aa(2097152);return r.objectFlags=nc(e,98304),r.types=e,r.aliasSymbol=n,r.aliasTypeArguments=t,r}(o,t,r);ie.set(c,l)}return l}function $c(e,n){var t=aa(4194304);return t.type=e,t.stringsOnly=n,t}function el(n){return e.isIdentifier(n)?Vl(e.unescapeLeadingUnderscores(n.escapedText)):Gl(e.isComputedPropertyName(n)?kf(n):Py(n))}function nl(n,t){if(!(24&e.getDeclarationModifierFlagsFromSymbol(n))){var r=_o(n).nameType;if(!r&&!e.isKnownSymbol(n))if(\"default\"===n.escapedName)r=Vl(\"default\");else{var a=n.valueDeclaration&&e.getNameOfDeclaration(n.valueDeclaration);r=a&&el(a)||Vl(e.symbolName(n))}if(r&&r.flags&t)return r}return Oe}function tl(n,t){return Wc(e.map(Xo(n),(function(e){return nl(e,t)})))}function rl(e){var n=vs(e,1);return n!==Zn?n:void 0}function al(n,t,r){return void 0===t&&(t=W),1048576&n.flags?Zc(e.map(n.types,(function(e){return al(e,t,r)}))):2097152&n.flags?Wc(e.map(n.types,(function(e){return al(e,t,r)}))):oy(n,58982400)?function(e,n){return n?e.resolvedStringIndexType||(e.resolvedStringIndexType=$c(e,!0)):e.resolvedIndexType||(e.resolvedIndexType=$c(e,!1))}(n,t):32&e.getObjectFlags(n)?am(wo(n),(function(e){return!(r&&5&e.flags)})):n===_e?_e:2&n.flags?Oe:131073&n.flags?Ve:t?!r&&vs(n,0)?Se:tl(n,128):!r&&vs(n,0)?Wc([Se,xe,tl(n,8192)]):rl(n)?Wc([xe,tl(n,8320)]):tl(n,8576)}function il(n){if(W)return n;var t=Gn||(Gn=Sc(\"Extract\",524288,e.Diagnostics.Cannot_find_global_type_0));return t?cc(t,[n,Se]):Se}function ol(n){return!K&&(!!(16384&e.getObjectFlags(n))||(1048576&n.flags?e.every(n.types,ol):2097152&n.flags?e.some(n.types,ol):!!(63176704&n.flags)&&ol(is(n))))}function sl(n,t){var r=t&&194===t.kind?t:void 0;return io(n)?uo(n):r&&D_(r.argumentExpression,n,!1)?e.getPropertyNameForKnownSymbolName(e.idText(r.argumentExpression.name)):t&&e.isPropertyName(t)?e.getPropertyNameForPropertyNameNode(t):void 0}function cl(n,t,r,a,i,o,s){var c=o&&194===o.kind?o:void 0,l=sl(r,o);if(void 0!==l){var u=ms(t,l);if(u){if(c){if(S_(u,c,103===c.expression.kind),e.isAssignmentTarget(c)&&(ty(c,u)||ry(c)))return void Wt(c.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,La(u));4&s&&(or(o).resolvedSymbol=u)}var d=Ci(u);return c&&1!==e.getAssignmentTargetKind(c)?Am(c,d):d}if(rm(t,Cd)&&Df(l)&&+l>=0){if(o&&rm(t,(function(e){return!e.target.hasRestElement}))&&!(8&s)){var p=ll(o);Cd(t)?Wt(p,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Aa(t),oc(t),e.unescapeLeadingUnderscores(l)):Wt(p,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(l),Aa(t))}return h(vs(t,1)),om(t,(function(e){return Ad(e)||ve}))}}if(!(98304&r.flags)&&sy(r,12716)){if(131073&t.flags)return t;var m=vs(t,0),f=sy(r,296)&&vs(t,1)||m;if(f)return 1&s&&f===m?void(c&&Wt(c,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Aa(r),Aa(n))):o&&!sy(r,12)?(Wt(p=ll(o),e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Aa(r)),f.type):(h(f),f.type);if(131072&r.flags)return Oe;if(ol(t))return me;if(c&&!ly(t)){if(t.symbol===Q&&void 0!==l&&Q.exports.has(l)&&418&Q.exports.get(l).flags)Wt(c,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(l),Aa(t));else if(K&&!P.suppressImplicitAnyIndexErrors&&!i)if(void 0!==l&&y_(l,t))Wt(c,e.Diagnostics.Property_0_is_a_static_member_of_type_1,l,Aa(t));else if(hs(t,1))Wt(c.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var _=void 0;if(void 0!==l&&(_=h_(l,t)))void 0!==_&&Wt(c.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,l,Aa(t),_);else{var g=function(n,t){var r=e.isAssignmentTarget(t)?\"set\":\"get\";if(!function(e,t){void 0===t&&(t=1);var r=qo(n,e);if(r){var a=F_(Ci(r));if(a&&Ig(a)===t&&\"string\"===Aa(Ag(a,0)))return!0}return!1}(r))return;var a=e.tryGetPropertyAccessOrIdentifierToString(t);void 0===a?a=r:a+=\".\"+r;return a}(t,c);if(void 0!==g)Wt(c,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Aa(t),g);else{var y=void 0;if(1024&r.flags)y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Aa(r)+\"]\",Aa(t));else if(8192&r.flags){var v=Or(r.symbol,c);y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+v+\"]\",Aa(t))}else 128&r.flags?y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,Aa(t)):256&r.flags?y=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,Aa(t)):12&r.flags&&(y=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Aa(r),Aa(t)));y=e.chainDiagnosticMessages(y,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Aa(a),Aa(t)),Rt.add(e.createDiagnosticForNodeFromMessageChain(c,y))}}}return}}if(ol(t))return me;if(o){p=ll(o);384&r.flags?Wt(p,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"\"+r.value,Aa(t)):12&r.flags?Wt(p,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Aa(t),Aa(r)):Wt(p,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Aa(r))}return Wa(r)?r:void 0;function h(n){n&&n.isReadonly&&c&&(e.isAssignmentTarget(c)||e.isDeleteTarget(c))&&Wt(c,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(t))}}function ll(e){return 194===e.kind?e.argumentExpression:184===e.kind?e.indexType:153===e.kind?e.expression:e}function ul(e){return oy(e,59113472)}function dl(e){return oy(e,63176704)}function pl(e){return!!(262144&e.flags&&e.isThisType)}function ml(n,t){return 8388608&n.flags?function(n,t){var r=t?\"simplifiedForWriting\":\"simplifiedForReading\";if(n[r])return n[r]===Xe?n:n[r];n[r]=Xe;var a=ml(n.objectType,t),i=ml(n.indexType,t),o=function(n,t,r){if(1048576&t.flags){var a=e.map(t.types,(function(e){return ml(yl(n,e),r)}));return r?Zc(a):Wc(a)}}(a,i,t);if(o)return n[r]=o;if(!(63176704&i.flags)){var s=fl(a,i,t);if(s)return n[r]=s}if(Ho(a))return n[r]=om(gl(a,n.indexType),(function(e){return ml(e,t)}));return n[r]=n}(n,t):16777216&n.flags?function(e,n){var t=e.checkType,r=e.extendsType,a=Sl(e),i=xl(e);if(131072&i.flags&&El(a)===El(t)){if(1&t.flags||xu(pu(t),pu(r)))return ml(a,n);if(_l(t,r))return Oe}else if(131072&a.flags&&El(i)===El(t)){if(!(1&t.flags)&&xu(pu(t),pu(r)))return Oe;if(1&t.flags||_l(t,r))return ml(i,n)}return e}(n,t):n}function fl(n,t,r){if(3145728&n.flags){var a=e.map(n.types,(function(e){return ml(yl(e,t),r)}));return 2097152&n.flags||r?Zc(a):Wc(a)}}function _l(e,n){return!!(131072&Wc([Ao(e,n),Oe]).flags)}function gl(e,n){var t=Jl([Po(e)],[n]),r=Yl(e.mapper,t);return uu(Fo(e),r)}function yl(e,n,t){return vl(e,n,t,0)||(t?ge:ye)}function vl(e,n,t,r){if(void 0===r&&(r=0),e===_e||n===_e)return _e;if(!ju(e)||98304&n.flags||!sy(n,12)||(n=Se),dl(n)||(!t||184===t.kind)&&ul(e)){if(3&e.flags)return e;var a=e.id+\",\"+n.id,i=se.get(a);return i||se.set(a,i=function(e,n){var t=aa(8388608);return t.objectType=e,t.indexType=n,t}(e,n)),i}var o=ls(e);if(1048576&n.flags&&!(16&n.flags)){for(var s=[],c=!1,l=0,u=n.types;l<u.length;l++){var d=cl(e,o,u[l],n,c,t,r);if(d)s.push(d);else{if(!t)return;c=!0}}if(c)return;return 2&r?Zc(s):Wc(s)}return cl(e,o,n,n,!1,t,4|r)}function hl(e){var n=or(e);if(!n.resolvedType){var t=Kl(e.objectType),r=Kl(e.indexType),a=yl(t,r,e);n.resolvedType=8388608&a.flags&&a.objectType===t&&a.indexType===r?_c(a,e):a}return n.resolvedType}function bl(e){var n=or(e);if(!n.resolvedType){var t=sa(32,e.symbol);t.declaration=e,t.aliasSymbol=kl(e),t.aliasTypeArguments=Nl(t.aliasSymbol),n.resolvedType=t,wo(t)}return n.resolvedType}function El(e){return 33554432&e.flags?e.typeVariable:8388608&e.flags&&(33554432&e.objectType.flags||33554432&e.indexType.flags)?yl(El(e.objectType),El(e.indexType)):e}function Tl(e,n){var t=uu(e.checkType,n),r=uu(e.extendsType,n);if(t===_e||r===_e)return _e;var a,i=oy(t,63307776);if(e.inferTypeParameters){var o=np(e.inferTypeParameters,void 0,0);i||gp(o.inferences,t,r,192),a=Yl(n,o.mapper)}var s=a?uu(e.extendsType,a):r;if(!i&&!oy(s,63307776)){if(3&s.flags)return uu(e.trueType,a||n);if(1&t.flags)return Wc([uu(e.trueType,a||n),uu(e.falseType,n)]);if(!xu(du(t),du(s)))return uu(e.falseType,n);if(xu(pu(t),pu(s)))return uu(e.trueType,a||n)}var c=El(t),l=aa(16777216);return l.root=e,l.checkType=c,l.extendsType=r,l.mapper=n,l.combinedMapper=a,l.aliasSymbol=e.aliasSymbol,l.aliasTypeArguments=Wl(e.aliasTypeArguments,n),l}function Sl(e){return e.resolvedTrueType||(e.resolvedTrueType=uu(e.root.trueType,e.mapper))}function xl(e){return e.resolvedFalseType||(e.resolvedFalseType=uu(e.root.falseType,e.mapper))}function Ll(n){var t;return n.locals&&n.locals.forEach((function(n){262144&n.flags&&(t=e.append(t,Yi(n)))})),t}function Cl(n){var t=or(n);if(!t.resolvedType){if(n.isTypeOf&&n.typeArguments)return Wt(n,e.Diagnostics.Type_arguments_cannot_be_used_here),t.resolvedSymbol=de,t.resolvedType=ge;if(!e.isLiteralImportTypeNode(n))return Wt(n.argument,e.Diagnostics.String_literal_expected),t.resolvedSymbol=de,t.resolvedType=ge;var r=n.isTypeOf?111551:4194304&n.flags?900095:788968,a=wr(n,n.argument.literal);if(!a)return t.resolvedSymbol=de,t.resolvedType=ge;var i=Vr(a,!1);if(e.nodeIsMissing(n.qualifier)){if(i.flags&r)t.resolvedType=Al(n,t,i,r);else Wt(n,111551===r?e.Diagnostics.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0,n.argument.literal.text),t.resolvedSymbol=de,t.resolvedType=ge}else{for(var o=function n(t){return e.isIdentifier(t)?[t]:e.append(n(t.left),t.right)}(n.qualifier),s=i,c=void 0;c=o.shift();){var l=o.length?1920:r,u=cr(Wr(Xr(Dr(s))),c.escapedText,l);if(!u)return Wt(c,e.Diagnostics.Namespace_0_has_no_exported_member_1,Or(s),e.declarationNameToString(c)),t.resolvedType=ge;or(c).resolvedSymbol=u,or(c.parent).resolvedSymbol=u,s=u}t.resolvedType=Al(n,t,s,r)}}return t.resolvedType}function Al(e,n,t,r){var a=Dr(t);return n.resolvedSymbol=a,111551===r?Ci(t):dc(e,a)}function Dl(n){var t=or(n);if(!t.resolvedType){var r=kl(n);if(0!==fo(n.symbol).size||r){var a=sa(16,n.symbol);a.aliasSymbol=r,a.aliasTypeArguments=Nl(r),e.isJSDocTypeLiteral(n)&&n.isArrayType&&(a=Oc(a)),t.resolvedType=a}else t.resolvedType=We}return t.resolvedType}function kl(n){for(var t=n.parent;e.isParenthesizedTypeNode(t)||e.isTypeOperatorNode(t)&&137===t.operator;)t=t.parent;return e.isTypeAlias(t)?Yr(t):void 0}function Nl(e){return e?Oi(e):void 0}function Il(e){return!!(524288&e.flags)&&!Ho(e)}function Ml(n,t,r,a,i){if(1&n.flags||1&t.flags)return me;if(2&n.flags||2&t.flags)return ye;if(131072&n.flags)return t;if(131072&t.flags)return n;if(1048576&n.flags)return om(n,(function(e){return Ml(e,t,r,a,i)}));if(1048576&t.flags)return om(t,(function(e){return Ml(n,e,r,a,i)}));if(71307260&t.flags)return n;if(ul(n)||ul(t)){if(Vu(n))return t;if(2097152&n.flags){var o=n.types,s=o[o.length-1];if(Il(s)&&Il(t))return Zc(e.concatenate(o.slice(0,o.length-1),[Ml(s,t,r,a,i)]))}return Zc([n,t])}var c,l,u=e.createSymbolTable(),d=e.createUnderscoreEscapedMap();n===je?(c=vs(t,0),l=vs(t,1)):(c=ko(vs(n,0),vs(t,0)),l=ko(vs(n,1),vs(t,1)));for(var p=0,m=Xo(t);p<m.length;p++){var f=m[p];24&e.getDeclarationModifierFlagsFromSymbol(f)?d.set(f.escapedName,!0):Ol(f)&&u.set(f.escapedName,Rl(f,i))}for(var _=0,g=Xo(n);_<g.length;_++){var y=g[_];if(!d.has(y.escapedName)&&Ol(y))if(u.has(y.escapedName)){var v=Ci(f=u.get(y.escapedName));if(16777216&f.flags){var h=e.concatenate(y.declarations,f.declarations),b=Xt(4|16777216&y.flags,y.escapedName);b.type=Wc([Ci(y),Up(v,524288)]),b.leftSpread=y,b.rightSpread=f,b.declarations=h,b.nameType=y.nameType,u.set(y.escapedName,b)}}else u.set(y.escapedName,Rl(y,i))}var E=pa(r,u,e.emptyArray,e.emptyArray,Pl(c,i),Pl(l,i));return E.objectFlags|=525440|a,E}function Ol(n){return!(106496&n.flags&&n.declarations.some((function(n){return e.isClassLike(n.parent)})))}function Rl(e,n){var t=65536&e.flags&&!(32768&e.flags);if(!t&&n===ny(e))return e;var r=Xt(4|16777216&e.flags,e.escapedName,n?8:0);return r.type=t?ve:Ci(e),r.declarations=e.declarations,r.nameType=e.nameType,r.syntheticOrigin=e,r}function Pl(e,n){return e&&e.isReadonly!==n?Xs(e.type,n,e.declaration):e}function wl(e,n,t){var r=aa(e);return r.symbol=t,r.value=n,r}function Fl(e){if(2944&e.flags){if(!e.freshType){var n=wl(e.flags,e.value,e.symbol);n.regularType=e,n.freshType=n,e.freshType=n}return e.freshType}return e}function Gl(n){return 2944&n.flags?n.regularType:1048576&n.flags?Wc(e.sameMap(n.types,Gl)):n}function Bl(e){return!!(2944&e.flags)&&e.freshType===e}function Vl(n,t,r){var a=(t||\"\")+(\"number\"==typeof n?\"#\":\"string\"==typeof n?\"@\":\"n\")+(\"object\"==typeof n?e.pseudoBigIntToString(n):n),i=oe.get(a);if(!i){var o=(\"number\"==typeof n?256:\"string\"==typeof n?128:2048)|(t?1024:0);oe.set(a,i=wl(o,n,r)),i.regularType=i}return i}function Ul(n){if(e.isValidESSymbolDeclaration(n)){var t=Yr(n),r=ir(t);return r.uniqueESSymbolType||(r.uniqueESSymbolType=function(e){var n=aa(8192);return n.symbol=e,n.escapedName=\"__@\"+n.symbol.escapedName+\"@\"+L(n.symbol),n}(t))}return Ie}function jl(n){var t=or(n);return t.resolvedType||(t.resolvedType=function(n){var t=e.getThisContainer(n,!1),r=t&&t.parent;if(r&&(e.isClassLike(r)||245===r.kind)&&!e.hasModifier(t,32)&&(!e.isConstructorDeclaration(t)||e.isNodeDescendantOf(n,t.body)))return ji(Yr(r)).thisType;if(r&&e.isObjectLiteralExpression(r)&&e.isBinaryExpression(r.parent)&&6===e.getAssignmentDeclarationKind(r.parent))return ji(Yr(r.parent.left).parent).thisType;var a=4194304&n.flags?e.getHostSignatureFromJSDoc(n):void 0;return a&&e.isFunctionExpression(a)&&e.isBinaryExpression(a.parent)&&3===e.getAssignmentDeclarationKind(a.parent)?ji(Yr(a.parent.left).parent).thisType:_g(t)&&e.isNodeDescendantOf(n,t.body)?ji(Yr(t)).thisType:(Wt(n,e.Diagnostics.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface),ge)}(n)),t.resolvedType}function Kl(n){switch(n.kind){case 124:case 293:case 294:return me;case 147:return ye;case 142:return Se;case 139:return xe;case 150:return Le;case 127:return Ne;case 143:return Ie;case 109:return Me;case 145:return ve;case 99:return Ee;case 136:return Oe;case 140:return 131072&n.flags?me:Ge;case 182:case 103:return jl(n);case 186:return function(e){var n=or(e);return n.resolvedType||(n.resolvedType=Gl(Py(e.literal))),n.resolvedType}(n);case 168:return vc(n);case 167:return n.assertsModifier?Me:Ne;case 215:return vc(n);case 171:return bc(n);case 173:case 174:return function(n){var t=or(n);if(!t.resolvedType){var r=Rc(n);if(r===ze)t.resolvedType=je;else if(Pc(n))t.resolvedType=174===n.kind&&0===n.elementTypes.length?r:ac(r,n,void 0);else{var a=173===n.kind?[Kl(n.elementType)]:e.map(n.elementTypes,Kl);t.resolvedType=tc(r,a)}}return t.resolvedType}(n);case 175:return function(e){var n=Kl(e.type);return B?Pd(n):n}(n);case 177:return function(n){var t=or(n);if(!t.resolvedType){var r=kl(n);t.resolvedType=Wc(e.map(n.types,Kl),1,r,Nl(r))}return t.resolvedType}(n);case 178:return function(n){var t=or(n);if(!t.resolvedType){var r=kl(n);t.resolvedType=Zc(e.map(n.types,Kl),r,Nl(r))}return t.resolvedType}(n);case 295:return function(e){var n=Kl(e.type);return B?Rd(n,65536):n}(n);case 297:return ni(Kl(n.type));case 181:case 296:case 292:return Kl(n.type);case 176:return md(Kl(n.type))||ge;case 299:return function(n){var t=Kl(n.type),r=n.parent,a=n.parent.parent;if(e.isJSDocTypeExpression(n.parent)&&e.isJSDocParameterTag(a)){var i=e.getHostSignatureFromJSDoc(a);if(i){var o=e.lastOrUndefined(i.parameters),s=e.getParameterSymbolFromJSDoc(a);if(!o||s&&o.symbol===s&&e.isRestParameter(o))return Oc(t)}}if(e.isParameter(r)&&e.isJSDocFunctionType(r.parent))return Oc(t);return ni(t)}(n);case 169:case 170:case 172:case 302:case 298:case 303:return Dl(n);case 183:return function(n){var t=or(n);if(!t.resolvedType)switch(n.operator){case 133:t.resolvedType=al(Kl(n.type));break;case 146:t.resolvedType=143===n.type.kind?Ul(e.walkUpParenthesizedTypes(n.parent)):ge;break;case 137:t.resolvedType=Kl(n.type);break;default:throw e.Debug.assertNever(n.operator)}return t.resolvedType}(n);case 184:return hl(n);case 185:return bl(n);case 179:return function(n){var t=or(n);if(!t.resolvedType){var r=Kl(n.checkType),a=kl(n),i=Nl(a),o=Ii(n,!0),s=i?o:e.filter(o,(function(e){return au(e,n)})),c={node:n,checkType:r,extendsType:Kl(n.extendsType),trueType:Kl(n.trueType),falseType:Kl(n.falseType),isDistributive:!!(262144&r.flags),inferTypeParameters:Ll(n),outerTypeParameters:s,instantiations:void 0,aliasSymbol:a,aliasTypeArguments:i};t.resolvedType=Tl(c,void 0),s&&(c.instantiations=e.createMap(),c.instantiations.set(ec(s),t.resolvedType))}return t.resolvedType}(n);case 180:return function(e){var n=or(e);return n.resolvedType||(n.resolvedType=Xi(Yr(e.typeParameter))),n.resolvedType}(n);case 187:return Cl(n);case 75:case 152:var t=nb(n);return t?Yi(t):ge;default:return ge}}function Hl(e,n,t){if(e&&e.length)for(var r=0;r<e.length;r++){var a=e[r],i=t(a,n);if(a!==i){var o=0===r?[]:e.slice(0,r);for(o.push(i),r++;r<e.length;r++)o.push(t(e[r],n));return o}}return e}function Wl(e,n){return Hl(e,n,uu)}function zl(e,n){return Hl(e,n,nu)}function ql(e,n){return function(t){return t===e?n:t}}function Jl(n,t){return e.Debug.assert(void 0===t||n.length===t.length),1===n.length?ql(n[0],t?t[0]:me):2===n.length?(r=n[0],a=t?t[0]:me,i=n[1],o=t?t[1]:me,function(e){return e===r?a:e===i?o:e}):function(e,n){return function(t){for(var r=0;r<e.length;r++)if(t===e[r])return n?n[r]:me;return t}}(n,t);var r,a,i,o}function Xl(e){return Jl(e,void 0)}function Yl(e,n){return e?n?function(t){return uu(e(t),n)}:e:n}function Ql(e,n,t){return function(r){return r===e?n:t(r)}}function Zl(e){return 262144&e.flags?_e:e}function $l(e){return 262144&e.flags?(n=e).constraint===ye?n:n.restrictiveInstantiation||(n.restrictiveInstantiation=ca(n.symbol),n.restrictiveInstantiation.constraint=ye,n.restrictiveInstantiation):e;var n}function eu(e){var n=ca(e.symbol);return n.target=e,n}function nu(n,t,r){var a;if(n.typeParameters&&!r){a=e.map(n.typeParameters,eu),t=Yl(Jl(n.typeParameters,a),t);for(var i=0,o=a;i<o.length;i++){o[i].mapper=t}}var s=vo(n.declaration,a,n.thisParameter&&tu(n.thisParameter,t),Hl(n.parameters,t,tu),void 0,void 0,n.minArgumentCount,3&n.flags);return s.target=n,s.mapper=t,s}function tu(n,t){var r=ir(n);if(r.type&&!oy(r.type,63700992))return n;1&e.getCheckFlags(n)&&(n=r.target,t=Yl(r.mapper,t));var a=Xt(n.flags,n.escapedName,1|53256&e.getCheckFlags(n));return a.declarations=n.declarations,a.parent=n.parent,a.target=n,a.mapper=t,n.valueDeclaration&&(a.valueDeclaration=n.valueDeclaration),n.nameType&&(a.nameType=n.nameType),a}function ru(n,t){var r=64&n.objectFlags?n.target:n,a=4&n.objectFlags?n.node:n.symbol.declarations[0],i=or(a),o=i.outerTypeParameters;if(!o){var s=a;if(e.isInJSFile(s)){var c=e.findAncestor(s,e.isJSDocParameterTag);if(c){var l=e.getParameterSymbolFromJSDoc(c);l&&(s=l.valueDeclaration)}}var u=Ii(s,!0);if(_g(s)){var d=Es(s);u=e.addRange(u,d)}o=u||e.emptyArray,o=(4&r.objectFlags||2048&r.symbol.flags)&&!r.aliasTypeArguments?e.filter(o,(function(e){return au(e,s)})):o,i.outerTypeParameters=o,o.length&&(i.instantiations=e.createMap(),i.instantiations.set(ec(o),r))}if(o.length){var p=e.map(o,Yl(n.mapper,t)),m=ec(p),f=i.instantiations.get(m);if(!f){var _=Jl(o,p);f=4&r.objectFlags?ac(n.target,n.node,_):32&r.objectFlags?function(n,t){var r=iu(n);if(r){var a=uu(r,t);if(r!==a)return om(a,(function(a){if(61603843&a.flags&&a!==_e&&a!==ge){var i=Ql(r,a,t);return dd(a)?function(e,n,t){var r=su(n,xe,!0,t);return r===ge?ge:Oc(r,ou(pd(e),Uo(n)))}(a,n,i):Cd(a)?function(n,t,r){var a=n.target.minLength,i=e.map(ic(n),(function(e,n){return su(t,Vl(\"\"+n),n>=a,r)})),o=Uo(t),s=4&o?0:8&o?oc(n)-(n.target.hasRestElement?1:0):a,c=ou(n.target.readonly,o);return e.contains(i,ge)?ge:Fc(i,s,n.target.hasRestElement,c,n.target.associatedNames)}(a,n,i):cu(n,i)}return a}))}return cu(n,t)}(r,_):cu(r,_),i.instantiations.set(m,f)}return f}return n}function au(n,t){if(n.symbol&&n.symbol.declarations&&1===n.symbol.declarations.length){for(var r=n.symbol.declarations[0].parent,a=t;a!==r;a=a.parent)if(!a||222===a.kind||179===a.kind&&e.forEachChild(a.extendsType,i))return!0;return!!e.forEachChild(t,i)}return!0;function i(t){switch(t.kind){case 182:return!!n.isThisType;case 75:return!n.isThisType&&e.isPartOfTypeNode(t)&&function(e){return!(152===e.kind||168===e.parent.kind&&e.parent.typeArguments&&e===e.parent.typeName||187===e.parent.kind&&e.parent.typeArguments&&e===e.parent.qualifier)}(t)&&Kl(t)===n;case 171:return!0}return!!e.forEachChild(t,i)}}function iu(e){var n=wo(e);if(4194304&n.flags){var t=El(n.type);if(262144&t.flags)return t}}function ou(e,n){return!!(1&n)||!(2&n)&&e}function su(e,n,t,r){var a=Yl(r,Jl([Po(e)],[n])),i=uu(Fo(e.target||e),a),o=Uo(e);return B&&4&o&&!xu(ve,i)?Pd(i):B&&8&o&&t?Up(i,524288):i}function cu(e,n){var t=sa(64|e.objectFlags,e.symbol);if(32&e.objectFlags){t.declaration=e.declaration;var r=Po(e),a=eu(r);t.typeParameter=a,n=Yl(ql(r,a),n),a.mapper=n}return t.target=e,t.mapper=n,t.aliasSymbol=e.aliasSymbol,t.aliasTypeArguments=Wl(e.aliasTypeArguments,n),t}function lu(n,t){var r=n.root;if(r.outerTypeParameters){var a=e.map(r.outerTypeParameters,t),i=ec(a),o=r.instantiations.get(i);if(!o)o=function(e,n){if(e.isDistributive){var t=e.checkType,r=n(t);if(t!==r&&1179648&r.flags)return om(r,(function(r){return Tl(e,Ql(t,r,n))}))}return Tl(e,n)}(r,Jl(r.outerTypeParameters,a)),r.instantiations.set(i,o);return o}return n}function uu(n,t){if(!n||!t||t===R)return n;if(50===b||y>=5e6)return Wt(s,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),ge;y++,b++;var r=function(e,n){var t=e.flags;if(262144&t)return n(e);if(524288&t){var r=e.objectFlags;if(16&r)return cp(e)?ru(e,n):e;if(32&r)return ru(e,n);if(4&r){if(e.node)return ru(e,n);var a=e.resolvedTypeArguments,i=Wl(a,n);return i!==a?tc(e.target,i):e}return e}if(1048576&t&&!(131068&t)){var o=e.types;return(s=Wl(o,n))!==o?Wc(s,1,e.aliasSymbol,Wl(e.aliasTypeArguments,n)):e}if(2097152&t){var s;o=e.types;return(s=Wl(o,n))!==o?Zc(s,e.aliasSymbol,Wl(e.aliasTypeArguments,n)):e}if(4194304&t)return al(uu(e.type,n));if(8388608&t)return yl(uu(e.objectType,n),uu(e.indexType,n));if(16777216&t)return lu(e,Yl(e.mapper,n));if(33554432&t){var c=uu(e.typeVariable,n);if(8650752&c.flags)return pc(c,uu(e.substitute,n));var l=uu(e.substitute,n);return 3&l.flags||xu(pu(c),pu(l))?c:l}return e}(n,t);return b--,r}function du(e){return 262143&e.flags?e:e.permissiveInstantiation||(e.permissiveInstantiation=uu(e,Zl))}function pu(e){return 262143&e.flags?e:e.restrictiveInstantiation?e.restrictiveInstantiation:(e.restrictiveInstantiation=uu(e,$l),e.restrictiveInstantiation.restrictiveInstantiation=e.restrictiveInstantiation,e.restrictiveInstantiation)}function mu(e,n){return e&&Xs(uu(e.type,n),e.isReadonly,e.declaration)}function fu(n){switch(e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n)),n.kind){case 200:case 201:case 160:case 243:return _u(n);case 192:return e.some(n.properties,fu);case 191:return e.some(n.elements,fu);case 209:return fu(n.whenTrue)||fu(n.whenFalse);case 208:return(56===n.operatorToken.kind||60===n.operatorToken.kind)&&(fu(n.left)||fu(n.right));case 279:return fu(n.initializer);case 199:return fu(n.expression);case 272:return e.some(n.properties,fu)||e.isJsxOpeningElement(n.parent)&&e.some(n.parent.parent.children,fu);case 271:var t=n.initializer;return!!t&&fu(t);case 274:var r=n.expression;return!!r&&fu(r)}return!1}function _u(n){if(e.isFunctionDeclaration(n)&&(!e.isInJSFile(n)||!$a(n)))return!1;if(n.typeParameters)return!1;if(e.some(n.parameters,(function(n){return!e.getEffectiveTypeAnnotationNode(n)})))return!0;if(201!==n.kind){var t=e.firstOrUndefined(n.parameters);if(!t||!e.parameterIsThisKeyword(t))return!0}return gu(n)}function gu(e){return!!e.body&&222!==e.body.kind&&fu(e.body)}function yu(n){return(e.isInJSFile(n)&&e.isFunctionDeclaration(n)||hf(n)||e.isObjectLiteralMethod(n))&&_u(n)}function vu(n){if(524288&n.flags){var t=Wo(n);if(t.constructSignatures.length||t.callSignatures.length){var r=sa(16,n.symbol);return r.members=t.members,r.properties=t.properties,r.callSignatures=e.emptyArray,r.constructSignatures=e.emptyArray,r}}else if(2097152&n.flags)return Zc(e.map(n.types,vu));return n}function hu(e,n){return Wu(e,n,Ut)}function bu(e,n){return Wu(e,n,Ut)?-1:0}function Eu(e,n){return Wu(e,n,Bt)?-1:0}function Tu(e,n){return Wu(e,n,Gt)?-1:0}function Su(e,n){return Wu(e,n,Gt)}function xu(e,n){return Wu(e,n,Bt)}function Lu(n,t){return 1048576&n.flags?e.every(n.types,(function(e){return Lu(e,t)})):1048576&t.flags?e.some(t.types,(function(e){return Lu(n,e)})):58982400&n.flags?Lu(ts(n)||ye,t):t===rn?!!(67633152&n.flags):t===an?!!(524288&n.flags)&&Bp(n):ki(n,Di(t))}function Cu(e,n){return Wu(e,n,Vt)}function Au(e,n){return Cu(e,n)||Cu(n,e)}function Du(e,n,t,r,a,i){return qu(e,n,Bt,t,r,a,i)}function ku(e,n,t,r,a,i){return Nu(e,n,Bt,t,r,a,i,void 0)}function Nu(e,n,t,r,a,i,o,s){return!!Wu(e,n,t)||(!r||!Mu(a,e,n,t,i,o,s))&&qu(e,n,t,r,i,o,s)}function Iu(n){return!!(16777216&n.flags||2097152&n.flags&&e.some(n.types,Iu))}function Mu(n,t,r,a,i,o,s){if(!n||Iu(r))return!1;if(!qu(t,r,a,void 0)&&function(n,t,r,a,i,o,s){for(var c=_s(t,0),l=_s(t,1),u=0,d=[l,c];u<d.length;u++){var p=d[u];if(e.some(p,(function(e){var n=ws(e);return!(131073&n.flags)&&qu(n,r,a,void 0)}))){var m=s||{};Du(t,r,n,i,o,m);var f=m.errors[m.errors.length-1];return e.addRelatedInfo(f,e.createDiagnosticForNode(n,p===l?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}(n,t,r,a,i,o,s))return!0;switch(n.kind){case 274:case 199:return Mu(n.expression,t,r,a,i,o,s);case 208:switch(n.operatorToken.kind){case 62:case 27:return Mu(n.right,t,r,a,i,o,s)}break;case 192:return function(n,t,r,a,i,o){return!(131068&r.flags)&&Ou(function(n){var t,r,a,i;return __generator(this,(function(o){switch(o.label){case 0:if(!e.length(n.properties))return[2];t=0,r=n.properties,o.label=1;case 1:if(!(t<r.length))return[3,8];if(a=r[t],e.isSpreadAssignment(a))return[3,7];if(!(i=nl(Yr(a),8576))||131072&i.flags)return[3,7];switch(a.kind){case 163:case 162:case 160:case 280:return[3,2];case 279:return[3,4]}return[3,6];case 2:return[4,{errorNode:a.name,innerExpression:void 0,nameType:i}];case 3:return o.sent(),[3,7];case 4:return[4,{errorNode:a.name,innerExpression:a.initializer,nameType:i,errorMessage:qa(a.name)?e.Diagnostics.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:void 0}];case 5:return o.sent(),[3,7];case 6:e.Debug.assertNever(a),o.label=7;case 7:return t++,[3,1];case 8:return[2]}}))}(n),t,r,a,i,o)}(n,t,r,a,o,s);case 191:return function(e,n,t,r,a,i){if(131068&t.flags)return!1;if(gd(n))return Ou(wu(e,t),n,t,r,a,i);var o=Sf(e,1,!0);if(gd(o))return Ou(wu(e,t),o,t,r,a,i);return!1}(n,t,r,a,o,s);case 272:return function(n,t,r,a,i,o){var s,c=Ou(function(n){var t,r,a;return __generator(this,(function(i){switch(i.label){case 0:if(!e.length(n.properties))return[2];t=0,r=n.properties,i.label=1;case 1:return t<r.length?(a=r[t],e.isJsxSpreadAttribute(a)?[3,3]:[4,{errorNode:a.name,innerExpression:a.initializer,nameType:Vl(e.idText(a.name))}]):[3,4];case 2:i.sent(),i.label=3;case 3:return t++,[3,1];case 4:return[2]}}))}(n),t,r,a,i,o);if(e.isJsxOpeningElement(n.parent)&&e.isJsxElement(n.parent.parent)){var l=n.parent.parent,u=Kf(Uf(n)),d=void 0===u?\"children\":e.unescapeLeadingUnderscores(u),p=Vl(d),m=yl(r,p),f=Pu(l.children);if(!e.length(f))return c;var _=e.length(f)>1,g=am(m,yd),y=am(m,(function(e){return!yd(e)}));if(_){if(g!==Oe){var v=Fc(Ff(l,0)),h=function(n,t){var r,a,i,o,s;return __generator(this,(function(c){switch(c.label){case 0:if(!e.length(n.children))return[2];r=0,a=0,c.label=1;case 1:return a<n.children.length?(i=n.children[a],o=Vl(a-r),(s=Ru(i,o,t))?[4,s]:[3,3]):[3,5];case 2:return c.sent(),[3,4];case 3:r++,c.label=4;case 4:return a++,[3,1];case 5:return[2]}}))}(l,T);c=Ou(h,v,g,a,i,o)||c}else if(!Wu(yl(t,p),m,a)){c=!0;var b=Wt(l.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,d,Aa(m));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(b)}}else if(y!==Oe){var E=Ru(f[0],p,T);E&&(c=Ou(function(){return __generator(this,(function(e){switch(e.label){case 0:return[4,E];case 1:return e.sent(),[2]}}))}(),t,r,a,i,o)||c)}else if(!Wu(yl(t,p),m,a)){c=!0;b=Wt(l.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,d,Aa(m));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(b)}}return c;function T(){if(!s){var t=e.getTextOfNode(n.parent.tagName),a=Kf(Uf(n)),i=void 0===a?\"children\":e.unescapeLeadingUnderscores(a),o=yl(r,Vl(i)),c=e.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;s=__assign(__assign({},c),{key:\"!!ALREADY FORMATTED!!\",message:e.formatMessage(void 0,c,t,i,Aa(o))})}return s}}(n,t,r,a,o,s);case 201:return function(n,t,r,a,i,o){if(e.isBlock(n.body))return!1;if(e.some(n.parameters,e.hasType))return!1;var s=F_(t);if(!s)return!1;var c=_s(r,0);if(!e.length(c))return!1;var l=n.body,u=ws(s),d=Wc(e.map(c,ws));if(!qu(u,d,a,void 0)){var p=l&&Mu(l,u,d,a,void 0,i,o);if(p)return p;var m=o||{};if(qu(u,d,a,l,void 0,i,m),m.errors)return r.symbol&&e.length(r.symbol.declarations)&&e.addRelatedInfo(m.errors[m.errors.length-1],e.createDiagnosticForNode(r.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),!0}return!1}(n,t,r,a,o,s)}return!1}function Ou(n,t,r,a,i,o){for(var s=!1,c=n.next();!c.done;c=n.next()){var l=c.value,u=l.errorNode,d=l.innerExpression,p=l.nameType,m=l.errorMessage,f=vl(r,p);if(f&&!(8388608&f.flags)){var _=vl(t,p);if(_&&!qu(_,f,a,void 0))if(d&&Mu(d,_,f,a,void 0,i,o))s=!0;else{var g=o||{},y=d?xy(d,0,_):_;if(qu(y,f,a,u,m,i,g)&&y!==_&&qu(_,f,a,u,m,i,g),g.errors){var v=g.errors[g.errors.length-1],h=io(p)?uo(p):void 0,b=void 0!==h?ms(r,h):void 0,E=!1;if(!b){var T=sy(p,296)&&vs(r,1)||vs(r,0)||void 0;T&&T.declaration&&!e.getSourceFileOfNode(T.declaration).hasNoDefaultLib&&(E=!0,e.addRelatedInfo(v,e.createDiagnosticForNode(T.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!E&&(b&&e.length(b.declarations)||r.symbol&&e.length(r.symbol.declarations))){var S=b&&e.length(b.declarations)?b.declarations[0]:r.symbol.declarations[0];e.getSourceFileOfNode(S).hasNoDefaultLib||e.addRelatedInfo(v,e.createDiagnosticForNode(S,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,!h||8192&p.flags?Aa(p):e.unescapeLeadingUnderscores(h),Aa(r)))}}s=!0}}}return s}function Ru(n,t,r){switch(n.kind){case 274:return{errorNode:n,innerExpression:n.expression,nameType:t};case 11:if(n.containsOnlyTriviaWhiteSpaces)break;return{errorNode:n,innerExpression:void 0,nameType:t,errorMessage:r()};case 264:case 265:case 268:return{errorNode:n,innerExpression:n,nameType:t};default:return e.Debug.assertNever(n,\"Found invalid jsx child\")}}function Pu(n){return e.filter(n,(function(n){return!e.isJsxText(n)||!n.containsOnlyTriviaWhiteSpaces}))}function wu(n,t){var r,a,i,o;return __generator(this,(function(s){switch(s.label){case 0:if(!(r=e.length(n.elements)))return[2];a=0,s.label=1;case 1:return a<r?gd(t)&&!ms(t,\"\"+a)?[3,3]:(i=n.elements[a],e.isOmittedExpression(i)?[3,3]:(o=Vl(a),[4,{errorNode:i,innerExpression:i,nameType:o}])):[3,4];case 2:s.sent(),s.label=3;case 3:return a++,[3,1];case 4:return[2]}}))}function Fu(e,n,t,r,a){return qu(e,n,Vt,t,r,a)}function Gu(n,t,r,a,i,o,s,c){if(n===t)return-1;if(!(l=t).typeParameters&&(!l.thisParameter||Wa(Lg(l.thisParameter)))&&1===l.parameters.length&&I(l)&&(Lg(l.parameters[0])===_n||Wa(Lg(l.parameters[0])))&&Wa(ws(l)))return-1;var l,u=Ng(t);if(!Mg(t)&&Ig(n)>u)return 0;n.typeParameters&&n.typeParameters!==t.typeParameters&&(n=V_(n,t=Hs(t),void 0,c));var d=Ng(n),p=Rg(n),m=Rg(t);if(p&&m&&d!==u)return 0;var f=t.declaration?t.declaration.kind:0,_=!r&&V&&160!==f&&159!==f&&161!==f,g=-1,y=Rs(n);if(y&&y!==Me){var v=Rs(t);if(v){if(!(T=!_&&c(y,v,!1)||c(v,y,i)))return i&&o(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;g&=T}}for(var h=p||m?Math.min(d,u):Math.max(d,u),b=p||m?h-1:-1,E=0;E<h;E++){var T,S=E===b?kg(n,E):Ag(n,E),x=E===b?kg(t,E):Ag(t,E),L=r?void 0:F_(wd(S)),C=r?void 0:F_(wd(x));if(!(T=L&&C&&!Ps(L)&&!Ps(C)&&(98304&Id(S))==(98304&Id(x))?Gu(C,L,_?2:1,!1,i,o,s,c):!r&&!_&&c(S,x,!1)||c(x,S,i)))return i&&o(e.Diagnostics.Types_of_parameters_0_and_1_are_incompatible,e.unescapeLeadingUnderscores(Cg(n,E)),e.unescapeLeadingUnderscores(Cg(t,E))),0;g&=T}if(!a){var A=Gs(t)?me:t.declaration&&_g(t.declaration)?ji(Xr(t.declaration.symbol)):ws(t);if(A===Me)return g;var D=Gs(n)?me:n.declaration&&_g(n.declaration)?ji(Xr(n.declaration.symbol)):ws(n),k=Ps(t);if(k){var N=Ps(n);if(N)g&=function(n,t,r,a,i){if(n.kind!==t.kind)return r&&(a(e.Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard),a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t))),0;if((1===n.kind||3===n.kind)&&n.parameterIndex!==t.parameterIndex)return r&&(a(e.Diagnostics.Parameter_0_is_not_in_the_same_position_as_parameter_1,n.parameterName,t.parameterName),a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t))),0;var o=n.type===t.type?-1:n.type&&t.type?i(n.type,t.type,r):0;0===o&&r&&a(e.Diagnostics.Type_predicate_0_is_not_assignable_to_1,Ia(n),Ia(t));return o}(N,k,i,o,c);else if(e.isIdentifierTypePredicate(k))return i&&o(e.Diagnostics.Signature_0_must_be_a_type_predicate,Ca(n)),0}else!(g&=1===r&&c(A,D,!1)||c(D,A,i))&&i&&s&&s(D,A)}return g}function Bu(e,n){var t=Ks(e),r=Ks(n),a=ws(t),i=ws(r);return!(i!==Me&&!Wu(i,a,Bt)&&!Wu(a,i,Bt))&&0!==Gu(t,r,0,!0,!1,void 0,void 0,Eu)}function Vu(n){return 524288&n.flags?!Ho(n)&&(0===(t=Wo(n)).properties.length&&0===t.callSignatures.length&&0===t.constructSignatures.length&&!t.stringIndexInfo&&!t.numberIndexInfo):!!(67108864&n.flags)||(1048576&n.flags?e.some(n.types,Vu):!!(2097152&n.flags)&&e.every(n.types,Vu));var t}function Uu(n){return!!(16&e.getObjectFlags(n))&&Vu(n)}function ju(n){return 524288&n.flags&&!Ho(n)&&0===Xo(n).length&&vs(n,0)&&!vs(n,1)||3145728&n.flags&&e.every(n.types,ju)||!1}function Ku(n,t,r){if(n===t)return!0;var a=L(n)+\",\"+L(t),i=jt.get(a);if(void 0!==i&&(4&i||!(2&i)||!r))return!!(1&i);if(!(n.escapedName===t.escapedName&&256&n.flags&&256&t.flags))return jt.set(a,6),!1;for(var o=Ci(t),s=0,c=Xo(Ci(n));s<c.length;s++){var l=c[s];if(8&l.flags){var u=ms(o,l.escapedName);if(!(u&&8&u.flags))return r?(r(e.Diagnostics.Property_0_is_missing_in_type_1,e.symbolName(l),Aa(Yi(t),void 0,64)),jt.set(a,6)):jt.set(a,2),!1}}return jt.set(a,1),!0}function Hu(e,n,t,r){var a=e.flags,i=n.flags;if(3&i||131072&a||e===_e)return!0;if(131072&i)return!1;if(132&a&&4&i)return!0;if(128&a&&1024&a&&128&i&&!(1024&i)&&e.value===n.value)return!0;if(296&a&&8&i)return!0;if(256&a&&1024&a&&256&i&&!(1024&i)&&e.value===n.value)return!0;if(2112&a&&64&i)return!0;if(528&a&&16&i)return!0;if(12288&a&&4096&i)return!0;if(32&a&&32&i&&Ku(e.symbol,n.symbol,r))return!0;if(1024&a&&1024&i){if(1048576&a&&1048576&i&&Ku(e.symbol,n.symbol,r))return!0;if(2944&a&&2944&i&&e.value===n.value&&Ku(Qr(e.symbol),Qr(n.symbol),r))return!0}if(32768&a&&(!B||49152&i))return!0;if(65536&a&&(!B||65536&i))return!0;if(524288&a&&67108864&i)return!0;if(t===Bt||t===Vt){if(1&a)return!0;if(264&a&&!(1024&a)&&(32&i||256&i&&1024&i))return!0}return!1}function Wu(e,n,t){if(Bl(e)&&(e=e.regularType),Bl(n)&&(n=n.regularType),e===n||t===Vt&&!(131072&n.flags)&&Hu(n,e,t)||t!==Ut&&Hu(e,n,t))return!0;if(524288&e.flags&&524288&n.flags){var r=t.get(rd(e,n,!1,t));if(void 0!==r)return!!(1&r)}return!!(66846720&e.flags||66846720&n.flags)&&qu(e,n,t,void 0)}function zu(n,t){return 4096&e.getObjectFlags(n)&&!Rf(t.escapedName)}function qu(n,t,r,a,i,o,s){var c,l,u,d,p,m,f=0,_=0,g=0,y=!1,v=0,h=[];e.Debug.assert(r!==Ut||!a,\"no error reporting in identity checking\");var b=R(n,t,!!a,i);if(h.length&&N(),y){var E=Wt(a,e.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1,Aa(n),Aa(t));s&&(s.errors||(s.errors=[])).push(E)}else if(c){if(o){var S=o();S&&(e.concatenateDiagnosticMessageChains(S,c),c=S)}var x=void 0;if(i&&a&&!b&&n.symbol){var L=ir(n.symbol);if(L.originatingImport&&!e.isImportCall(L.originatingImport))if(qu(Ci(L.target),t,r,void 0)){var C=e.createDiagnosticForNode(L.originatingImport,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead);x=e.append(x,C)}}E=e.createDiagnosticForNodeFromMessageChain(a,c,x);l&&e.addRelatedInfo.apply(void 0,__spreadArrays([E],l)),s&&(s.errors||(s.errors=[])).push(E),s&&s.skipLogging||Rt.add(E)}return a&&s&&s.skipLogging&&0===b&&e.Debug.assert(!!s.errors,\"missed opportunity to interact with error.\"),0!==b;function A(e){c=e.errorInfo,m=e.lastSkippedInfo,h=e.incompatibleStack,v=e.overrideNextErrorInfo,l=e.relatedInfo}function D(){return{errorInfo:c,lastSkippedInfo:m,incompatibleStack:h.slice(),overrideNextErrorInfo:v,relatedInfo:l?l.slice():void 0}}function k(e,n,t,r,a){v++,m=void 0,h.push([e,n,t,r,a])}function N(){var n=h;h=[];var t=m;if(m=void 0,1===n.length)return I.apply(void 0,n[0]),void(t&&M.apply(void 0,__spreadArrays([void 0],t)));for(var r=\"\",a=[];n.length;){var i=n.pop(),o=i[0],s=i.slice(1);switch(o.code){case e.Diagnostics.Types_of_property_0_are_incompatible.code:0===r.indexOf(\"new \")&&(r=\"(\"+r+\")\");var c=\"\"+s[0];r=0===r.length?\"\"+c:e.isIdentifierText(c,P.target)?r+\".\"+c:\"[\"===c[0]&&\"]\"===c[c.length-1]?\"\"+r+c:r+\"[\"+c+\"]\";break;case e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible.code:case e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code:case e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:case e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:if(0===r.length){var l=o;o.code===e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?l=e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible:o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code&&(l=e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible),a.unshift([l,s[0],s[1]])}else{r=\"\"+(o.code===e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code||o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?\"new \":\"\")+r+\"(\"+(o.code===e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code||o.code===e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?\"\":\"...\")+\")\"}break;default:return e.Debug.fail(\"Unhandled Diagnostic: \"+o.code)}}r?I(\")\"===r[r.length-1]?e.Diagnostics.The_types_returned_by_0_are_incompatible_between_these_types:e.Diagnostics.The_types_of_0_are_incompatible_between_these_types,r):a.shift();for(var u=0,d=a;u<d.length;u++){var p=d[u],f=(o=p[0],s=p.slice(1),o.elidedInCompatabilityPyramid);o.elidedInCompatabilityPyramid=!1,I.apply(void 0,__spreadArrays([o],s)),o.elidedInCompatabilityPyramid=f}t&&M.apply(void 0,__spreadArrays([void 0],t))}function I(n,t,r,i,o){e.Debug.assert(!!a),h.length&&N(),n.elidedInCompatabilityPyramid||(c=e.chainDiagnosticMessages(c,n,t,r,i,o))}function M(n,t,a){h.length&&N();var i=Da(t,a),o=i[0],s=i[1];262144&a.flags&&void 0!==a.immediateBaseConstraint&&xu(t,a.immediateBaseConstraint)&&I(e.Diagnostics._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2,o,s,Aa(a.immediateBaseConstraint)),n||(n=r===Vt?e.Diagnostics.Type_0_is_not_comparable_to_type_1:o===s?e.Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:e.Diagnostics.Type_0_is_not_assignable_to_type_1),I(n,o,s)}function O(n,t,r){if(gd(n)){var a=n.target;return a&&a.readonly&&yd(t)&&(!pd(t)||Cd(t)&&!t.target.readonly)?(r&&I(e.Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,Aa(n),Aa(t)),!1):fd(t)}return gd(t)?fd(n):!(pd(n)&&dd(t)&&!pd(t))||(r&&I(e.Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,Aa(n),Aa(t)),!1)}function R(n,t,i,o,s){if(void 0===i&&(i=!1),Bl(n)&&(n=n.regularType),Bl(t)&&(t=t.regularType),33554432&n.flags&&(n=n.substitute),33554432&t.flags&&(t=t.typeVariable),25165824&n.flags&&(n=ml(n,!1)),25165824&t.flags&&(t=ml(t,!0)),1048576&t.flags&&524288&n.flags&&t.types.length<=3&&oy(t,98304)){var l=sm(t,-98305);1179648&l.flags||(t=l)}if(n===t)return-1;if(r===Ut)return function(e,n){var t,r=e.flags&n.flags;if(524288&r||8388608&r||16777216&r||4194304&r||33554432&r)return U(e,n,!1,!1);if(3145728&r&&(t=w(e,n))&&(t&=w(n,e)))return t;return 0}(n,t);if(r===Vt&&!(131072&t.flags)&&Hu(t,n,r)||Hu(n,t,r,i?I:void 0))return-1;var u=!!(4096&e.getObjectFlags(n)),d=!s&&hp(n)&&32768&e.getObjectFlags(n);if(d){var p=1048576&t.flags?G(n,t):void 0;if(function n(t,i,o,s){if(!K&&16384&e.getObjectFlags(i))return!1;if(Qf(i)){var c=!!(4096&e.getObjectFlags(t));if((r===Bt||r===Vt)&&(nm(rn,i)||!c&&Vu(i)))return!1;if(o)return n(t,o,void 0,s);for(var l=function(n){if(function(e,n){return e.valueDeclaration&&n.valueDeclaration&&e.valueDeclaration.parent===n.valueDeclaration}(n,t.symbol)&&!Yf(i,n.escapedName,c)){if(s){var r=am(i,Qf);if(!a)return{value:e.Debug.fail()};if(e.isJsxAttributes(a)||e.isJsxOpeningLikeElement(a)||e.isJsxOpeningLikeElement(a.parent))n.valueDeclaration&&e.isJsxAttribute(n.valueDeclaration)&&(a=n.valueDeclaration.name),I(e.Diagnostics.Property_0_does_not_exist_on_type_1,La(n),Aa(r));else{var o=t.symbol&&e.firstOrUndefined(t.symbol.declarations),l=void 0;if(n.valueDeclaration&&e.findAncestor(n.valueDeclaration,(function(e){return e===o}))){var u=n.valueDeclaration;e.Debug.assertNode(u,e.isObjectLiteralElementLike),a=u;var d=u.name;e.isIdentifier(d)&&(l=h_(d,r))}void 0!==l?I(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,La(n),Aa(r),l):I(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,La(n),Aa(r))}}return{value:!0}}},u=0,d=Xo(t);u<d.length;u++){var p=d[u],m=l(p);if(\"object\"==typeof m)return m.value}}return!1}(n,t,p,i))return i&&M(o,n,t),0}var f=r!==Vt&&!s&&2752508&n.flags&&n!==rn&&2621440&t.flags&&Xu(t)&&(Xo(n).length>0||cb(n));if(f&&!function(e,n,t){for(var r=0,a=Xo(e);r<a.length;r++){var i=a[r];if(Yf(n,i.escapedName,t))return!0}return!1}(n,t,u)){if(i){var _=_s(n,0),g=_s(n,1);_.length>0&&R(ws(_[0]),t,!1)||g.length>0&&R(ws(g[0]),t,!1)?I(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,Aa(n),Aa(t)):I(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,Aa(n),Aa(t))}return 0}var y=0,h=D(),b=!!s;if(1048576&n.flags)y=r===Vt?V(n,t,i&&!(131068&n.flags)):function(e,n,t){for(var r=-1,a=e.types,i=0,o=a;i<o.length;i++){var s=R(o[i],n,t);if(!s)return 0;r&=s}return r}(n,t,i&&!(131068&n.flags));else{if(1048576&t.flags){if((y=F(Hd(n),t,i&&!(131068&n.flags)&&!(131068&t.flags)))&&(d||f)){p=G(n,t)||function(e){if(oy(e,67108864)){var n=am(e,(function(e){return!(131068&e.flags)}));if(!(131072&n.flags))return n}return e}(t);if(!q(n,p,i,void 0,b))return 0}}else if(2097152&t.flags){if(b=!0,(y=function(e,n,t){for(var r=-1,a=n.types,i=0,o=a;i<o.length;i++){var s=o[i],c=R(e,s,t,void 0,!0);if(!c)return 0;r&=c}return r}(Hd(n),t,i))&&(d||f)&&!q(n,t,i,void 0,!1))return 0}else 2097152&n.flags&&(y=V(n,t,!1));!y&&(66846720&n.flags||66846720&t.flags)&&(y=U(n,t,i,b))&&A(h)}if(!y&&2359296&n.flags){var E=function(n,t){for(var r,a=!1,i=0,o=n;i<o.length;i++){if(63176704&(u=o[i]).flags){for(var s=Yo(u);s&&21233664&s.flags;)s=Yo(s);s&&(r=e.append(r,s),t&&(r=e.append(r,u)))}else 67238908&u.flags&&(a=!0)}if(r&&(t||a)){if(a)for(var c=0,l=n;c<l.length;c++){var u;67238908&(u=l[c]).flags&&(r=e.append(r,u))}return Zc(r)}}(2097152&n.flags?n.types:[n],!!(1048576&t.flags));E&&(2097152&n.flags||1048576&t.flags)&&rm(E,(function(e){return e!==n}))&&(y=R(E,t,!1,void 0,b))&&A(h)}if(!y&&i){var S=v>0;if(S&&v--,524288&n.flags&&524288&t.flags){var x=c;O(n,t,i),c!==x&&(S=!!c)}if(524288&n.flags&&131068&t.flags)!function(n,t){var r=ka(n.symbol)?Aa(n,n.symbol.valueDeclaration):Aa(n),a=ka(t.symbol)?Aa(t,t.symbol.valueDeclaration):Aa(t);(un===n&&Se===t||dn===n&&xe===t||pn===n&&Ne===t||Cc(!1)===n&&Ie===t)&&I(e.Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible,a,r)}(n,t);else if(n.symbol&&524288&n.flags&&rn===n)I(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(u&&2097152&t.flags){var L=t.types,C=Bf(T.IntrinsicAttributes,a),k=Bf(T.IntrinsicClassAttributes,a);if(C!==ge&&k!==ge&&(e.contains(L,C)||e.contains(L,k)))return y}if(!o&&S)return m=[n,t],y;M(o,n,t)}return y}function w(e,n){for(var t=-1,r=0,a=e.types;r<a.length;r++){var i=F(a[r],n,!1);if(!i)return 0;t&=i}return t}function F(n,t,r){var a=t.types;if(1048576&t.flags&&Vc(a,n))return-1;for(var i=0,o=a;i<o.length;i++){var s=R(n,o[i],!1);if(s)return s}r&&R(n,G(n,t)||function(n,t){var r=e.getObjectFlags(n);if(20&r&&1048576&t.flags)return e.find(t.types,(function(t){if(524288&t.flags){var a=r&e.getObjectFlags(t);if(4&a)return n.target===t.target;if(16&a)return!!n.aliasSymbol&&n.aliasSymbol===t.aliasSymbol}return!1}))}(n,t)||function(n,t){if(128&e.getObjectFlags(n)&&tm(t,fd))return e.find(t.types,(function(e){return!fd(e)}))}(n,t)||function(n,t){var r=0;if(_s(n,r).length>0||_s(n,r=1).length>0)return e.find(t.types,(function(e){return _s(e,r).length>0}))}(n,t)||function(n,t){for(var r,a=0,i=0,o=t.types;i<o.length;i++){var s=o[i],c=Zc([al(n),al(s)]);if(4194304&c.flags)r=s,a=1/0;else if(1048576&c.flags){var l=e.length(e.filter(c.types,hd));l>=a&&(r=s,a=l)}else hd(c)&&1>=a&&(r=s,a=1)}return r}(n,t)||a[a.length-1],!0);return 0}function G(n,t){if(1048576&t.flags&&2621440&n.flags){var r=Xo(n);if(r){var a=Pp(r,t);if(a)return Ju(t,e.map(a,(function(e){return[function(){return Ci(e)},e.escapedName]})),R)}}}function V(e,n,t){var r=e.types;if(1048576&e.flags&&Vc(r,n))return-1;for(var a=r.length,i=0;i<a;i++){var o=R(r[i],n,t&&i===a-1);if(o)return o}return 0}function U(n,t,a,i){if(y)return 0;var o=rd(n,t,i,r),s=r.get(o);if(void 0!==s&&(!(a&&2&s)||4&s)){if(Wn){var l=24&s;8&l&&uu(n,j),16&l&&uu(n,H)}return 1&s?-1:0}if(u){for(var m=0;m<f;m++)if(o===u[m])return 1;if(100===_)return y=!0,0}else u=[],d=[],p=[];var v=f;u[f]=o,f++,d[_]=n,p[_]=t,_++;var h,b=g;1&g||!od(n,d,_)||(g|=1),2&g||!od(t,p,_)||(g|=2);var E=0;Wn&&(h=Wn,Wn=function(e){return E|=e?16:8,h(e)});var T=3!==g?function(n,t,a,i){var o,s,l=n.flags&t.flags;if(r===Ut&&!(524288&l)){if(4194304&l)return R(n.type,t.type,!1);var u=0;return 8388608&l&&(u=R(n.objectType,t.objectType,!1))&&(u&=R(n.indexType,t.indexType,!1))?u:16777216&l&&n.root.isDistributive===t.root.isDistributive&&(u=R(n.checkType,t.checkType,!1))&&(u&=R(n.extendsType,t.extendsType,!1))&&(u&=R(Sl(n),Sl(t),!1))&&(u&=R(xl(n),xl(t),!1))?u:33554432&l?R(n.substitute,t.substitute,!1):0}var d=!1,p=D();if(17301504&n.flags&&n.aliasSymbol&&n.aliasTypeArguments&&n.aliasSymbol===t.aliasSymbol&&!n.aliasTypeArgumentsContainsMarker&&!t.aliasTypeArgumentsContainsMarker){var m=Qu(n.aliasSymbol);if(void 0!==(B=X(n.aliasTypeArguments,t.aliasTypeArguments,m,i)))return B}if(262144&t.flags){if(32&e.getObjectFlags(n)&&R(al(t),wo(n))&&!(4&Uo(n))){var f=Fo(n),_=yl(t,Po(n));if(o=R(f,_,a))return o}}else if(4194304&t.flags){if(4194304&n.flags&&(o=R(t.type,n.type,!1)))return o;if((N=Zo(t.type))&&-1===R(n,al(N,t.stringsOnly),a))return-1}else if(8388608&t.flags){if(r!==Ut){var g=t.objectType,y=t.indexType,v=ts(g)||g,h=ts(y)||y;if(!ul(v)&&!dl(h))if((N=vl(v,h,void 0,2|(v!==g?1:0)))&&(o=R(n,N,a)))return o}}else if(Ho(t)){var b=Fo(t),E=Uo(t);if(!(8&E)){if(8388608&b.flags&&b.objectType===n&&b.indexType===Po(t))return-1;if(!Ho(n)){var T=wo(t),S=al(n,void 0,!0),x=4&E,L=x?Ao(T,S):void 0;if(x?!(131072&L.flags):R(T,S)){var C=Po(t),k=L?Zc([L,C]):C;_=yl(n,k),f=Fo(t);if(o=R(_,f,a))return o}s=c,A(p)}}}if(8650752&n.flags){var N;if(8388608&n.flags&&8388608&t.flags){if((o=R(n.objectType,t.objectType,a))&&(o&=R(n.indexType,t.indexType,a)),o)return A(p),o}else if(!(N=Yo(n))||262144&n.flags&&1&N.flags){if(o=R(je,sm(t,-67108865)))return A(p),o}else{if(o=R(N,t,!1,void 0,i))return A(p),o;if(o=R(go(N,n),t,a,void 0,i))return A(p),o}}else if(4194304&n.flags){if(o=R(Ve,t,a))return A(p),o}else if(16777216&n.flags)if(16777216&t.flags){var I=n.root.inferTypeParameters,M=n.extendsType,O=void 0;if(I){var P=np(I,void 0,0,R);gp(P.inferences,t.extendsType,M,192),M=uu(M,P.mapper),O=P.mapper}if(hu(M,t.extendsType)&&(R(n.checkType,t.checkType)||R(t.checkType,n.checkType))&&((o=R(uu(Sl(n),O),Sl(t),a))&&(o&=R(xl(n),xl(t),a)),o))return A(p),o}else{var w=es(n);if(w&&(o=R(w,t,a)))return A(p),o;var F=$o(n);if(F&&(o=R(F,t,a)))return A(p),o}else{if(r!==Gt&&(W=t,32&e.getObjectFlags(W)&&4&Uo(W))&&Vu(n))return-1;if(Ho(t))return Ho(n)&&(o=function(e,n,t){if(r===Vt||(r===Ut?Uo(e)===Uo(n):Ko(e)<=Ko(n))){var a,i=wo(n),o=uu(wo(e),Ko(e)<0?j:H);if(a=R(i,o,t)){var s=Jl([Po(e)],[Po(n)]);return a&R(uu(Fo(e),s),Fo(n),t)}}return 0}(n,t,a))?(A(p),o):0;var G=!!(131068&n.flags);if(r!==Ut)n=ls(n);else if(Ho(n))return 0;if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)&&n.target===t.target&&!(8192&e.getObjectFlags(n)||8192&e.getObjectFlags(t))){var B;m=$u(n.target);if(void 0!==(B=X(ic(n),ic(t),m,i)))return B}else{if(pd(t)?dd(n)||Cd(n):dd(t)&&Cd(n)&&!n.target.readonly)return r!==Ut?R(hs(n,1)||me,hs(t,1)||me,a):0;if(r===Gt&&Vu(t)&&32768&e.getObjectFlags(t)&&!Vu(n))return 0}if(2621440&n.flags&&524288&t.flags){var V=a&&c===p.errorInfo&&!G;if((o=q(n,t,V,void 0,i))&&(o&=J(n,t,0,V))&&(o&=J(n,t,1,V))&&(o&=$(n,t,0,G,V))&&(o&=$(n,t,1,G,V)),d&&o)c=s||c||p.errorInfo;else if(o)return o}if(2621440&n.flags&&1048576&t.flags){var U=sm(t,524288);if(1048576&U.flags){var K=function(n,t){var r=Pp(zo(n),t);if(!r)return 0;for(var a=1,i=0,o=r;i<o.length;i++){var s=o[i];if((a*=im(Ci(s)))>25)return 0}for(var c=new Array(r.length),l=e.createUnderscoreEscapedMap(),u=0;u<r.length;u++){var d=Ci(s=r[u]);c[u]=1048576&d.flags?d.types:[d],l.set(s.escapedName,!0)}for(var p=e.cartesianProduct(c),m=[],f=function(a){var i=!1;e:for(var o=0,s=t.types;o<s.length;o++){for(var c=s[o],l=function(e){var i=r[e],o=qo(c,i.escapedName);return o?i===o?\"continue\":z(n,t,i,o,(function(n){return a[e]}),!1,!1)?void 0:\"continue-outer\":\"continue-outer\"},u=0;u<r.length;u++){switch(l(u)){case\"continue-outer\":continue e}}e.pushIfUnique(m,c,e.equateValues),i=!0}if(!i)return{value:0}},_=0,g=p;_<g.length;_++){var y=g[_],v=f(y);if(\"object\"==typeof v)return v.value}for(var h=-1,b=0,E=m;b<E.length;b++){var T=E[b];if((h&=q(n,T,!1,l,!1))&&(h&=J(n,T,0,!1))&&(h&=J(n,T,1,!1))&&(h&=$(n,T,0,!1,!1))&&(h&=$(n,T,1,!1,!1)),!h)return h}return h}(n,U);if(K)return K}}}var W;return 0;function X(n,t,i,l){if(o=function(n,t,a,i,o){if(void 0===n&&(n=e.emptyArray),void 0===t&&(t=e.emptyArray),void 0===a&&(a=e.emptyArray),n.length!==t.length&&r===Ut)return 0;for(var s=n.length<=t.length?n.length:t.length,c=-1,l=0;l<s;l++){var u=l<a.length?a[l]:1,d=7&u;if(4!==d){var p=n[l],m=t[l],f=-1;if(8&u?f=r===Ut?R(p,m,!1):bu(p,m):1===d?f=R(p,m,i,void 0,o):2===d?f=R(m,p,i,void 0,o):3===d?(f=R(m,p,!1))||(f=R(p,m,i,void 0,o)):(f=R(p,m,i,void 0,o))&&(f&=R(m,p,i,void 0,o)),!f)return 0;c&=f}}return c}(n,t,i,a,l))return o;if(e.some(i,(function(e){return!!(24&e)})))return s=void 0,void A(p);var u=t&&function(e,n){for(var t=0;t<n.length;t++)if(1==(7&n[t])&&16384&e[t].flags)return!0;return!1}(t,i);if(d=!u,i!==e.emptyArray&&!u){if(d&&(!a||!e.some(i,(function(e){return 0==(7&e)}))))return 0;s=c,A(p)}}}(n,t,a,i):1;if(Wn&&(Wn=h),g=b,_--,T){if(-1===T||0===_){for(m=v;m<f;m++)r.set(u[m],1|E);f=v}}else r.set(o,2|(a?4:0)|E),f=v;return T}function j(e){return!Wn||e!==Qe&&e!==Ze&&e!==zn||Wn(!1),e}function H(e){return!Wn||e!==Qe&&e!==Ze&&e!==zn||Wn(!0),e}function W(e,n){if(!n||0===e.length)return e;for(var t,r=0;r<e.length;r++)n.has(e[r].escapedName)?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t||e}function z(n,t,a,i,o,s,c){var l=e.getDeclarationModifierFlagsFromSymbol(a),u=e.getDeclarationModifierFlagsFromSymbol(i);if(8&l||8&u){var d=a.valueDeclaration!==i.valueDeclaration;if(1024&e.getCheckFlags(a)&&d)return s&&I(e.Diagnostics.Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1,La(a),Aa(n)),0;if(d)return s&&(8&l&&8&u?I(e.Diagnostics.Types_have_separate_declarations_of_a_private_property_0,La(i)):I(e.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2,La(i),Aa(8&l?n:t),Aa(8&l?t:n))),0}else if(16&u){if(!function(n,t){return!ad(t,(function(t){return!!(16&e.getDeclarationModifierFlagsFromSymbol(t))&&(r=n,a=id(t),!ad(r,(function(e){var n=id(e);return!!n&&ki(n,a)})));var r,a}))}(a,i))return s&&I(e.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2,La(i),Aa(id(a)||n),Aa(id(i)||t)),0}else if(16&l)return s&&I(e.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2,La(i),Aa(n),Aa(t)),0;var p=function(n,t,r,a,i){var o=B&&!!(48&e.getCheckFlags(t)),s=r(n);if(65536&e.getCheckFlags(t)&&!ir(t).type){var c=ir(t);e.Debug.assertDefined(c.deferralParent),e.Debug.assertDefined(c.deferralConstituents);for(var l=!!(1048576&c.deferralParent.flags),u=l?0:-1,d=0,p=c.deferralConstituents;d<p.length;d++){var m=R(s,p[d],!1,void 0,!l);if(l){if(m)return m}else{if(!m)return R(s,ni(Ci(t),o),a);u&=m}}return l&&!u&&o&&(u=R(s,ve)),l&&!u&&a?R(s,ni(Ci(t),o),a):u}return R(s,ni(Ci(t),o),a,void 0,i)}(a,i,o,s,c);return p?r!==Vt&&16777216&a.flags&&!(16777216&i.flags)?(s&&I(e.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2,La(i),Aa(n),Aa(t)),0):p:(s&&k(e.Diagnostics.Types_of_property_0_are_incompatible,La(i)),0)}function q(n,t,a,o,s){if(r===Ut)return function(e,n,t){if(!(524288&e.flags&&524288&n.flags))return 0;var r=W(zo(e),t),a=W(zo(n),t);if(r.length!==a.length)return 0;for(var i=-1,o=0,s=r;o<s.length;o++){var c=s[o],l=qo(n,c.escapedName);if(!l)return 0;var u=cd(c,l,R);if(!u)return 0;i&=u}return i}(n,t,o);var u,d=r===Gt&&!hp(n)&&!_d(n)&&!Cd(n),p=mp(n,t,d,!1);if(p){if(a){var m=e.arrayFrom(pp(n,t,d,!1)),f=!1;if((!i||i.code!==e.Diagnostics.Class_0_incorrectly_implements_interface_1.code&&i.code!==e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code)&&(f=!0),1===m.length){var _=La(p);I.apply(void 0,__spreadArrays([e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2,_],Da(n,t))),e.length(p.declarations)&&(u=e.createDiagnosticForNode(p.declarations[0],e.Diagnostics._0_is_declared_here,_),e.Debug.assert(!!c),l?l.push(u):l=[u]),f&&c&&v++}else O(n,t,!1)&&(m.length>5?I(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Aa(n),Aa(t),e.map(m.slice(0,4),(function(e){return La(e)})).join(\", \"),m.length-4):I(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Aa(n),Aa(t),e.map(m,(function(e){return La(e)})).join(\", \")),f&&c&&v++)}return 0}if(hp(t))for(var g=0,y=W(Xo(n),o);g<y.length;g++){if(!qo(t,(M=y[g]).escapedName)){var h=Ci(M);if(h!==ve&&h!==he&&h!==be)return a&&I(e.Diagnostics.Property_0_does_not_exist_on_type_1,La(M),Aa(t)),0}}var b=-1;if(Cd(t)){var E=Ad(t);if(E){if(!Cd(n))return 0;var T=Ad(n);if(T&&!R(T,E,a))return a&&I(e.Diagnostics.Rest_signatures_are_incompatible),0;for(var S=oc(t)-1,x=oc(n)-(T?1:0),L=ic(n),C=S;C<x;C++){if(!(F=R(L[C],E,a)))return a&&I(e.Diagnostics.Property_0_is_incompatible_with_rest_element_type,\"\"+C),0;b&=F}}}for(var A=1048576&t.flags?Jo(t):Xo(t),D=Cd(n)&&Cd(t),k=0,N=W(A,o);k<N.length;k++){var M,P=N[k],w=P.escapedName;if(!(4194304&P.flags)&&(!D||Df(w)||\"length\"===w))if((M=ms(n,w))&&M!==P){var F;if(!(F=z(n,t,M,P,Ci,a,s)))return 0;b&=F}}return b}function J(n,t,a,i){if(r===Ut)return function(e,n,t){var r=_s(e,t),a=_s(n,t);if(r.length!==a.length)return 0;for(var i=-1,o=0;o<r.length;o++){var s=ld(r[o],a[o],!1,!1,!1,R);if(!s)return 0;i&=s}return i}(n,t,a);if(t===qe||n===qe)return-1;var o=n.symbol&&_g(n.symbol.valueDeclaration),s=t.symbol&&_g(t.symbol.valueDeclaration),c=_s(n,o&&1===a?0:a),l=_s(t,s&&1===a?0:a);if(1===a&&c.length&&l.length){if(e.isAbstractConstructorType(n)&&!e.isAbstractConstructorType(t))return i&&I(e.Diagnostics.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type),0;if(!function(n,t,r){if(!n.declaration||!t.declaration)return!0;var a=e.getSelectedModifierFlags(n.declaration,24),i=e.getSelectedModifierFlags(t.declaration,24);if(8===i)return!0;if(16===i&&8!==a)return!0;if(16!==i&&!a)return!0;r&&I(e.Diagnostics.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type,Ma(a),Ma(i));return!1}(c[0],l[0],i))return 0}var u=-1,d=D(),p=1===a?Y:X;if(64&e.getObjectFlags(n)&&64&e.getObjectFlags(t)&&n.symbol===t.symbol)for(var m=0;m<l.length;m++){if(!(E=Q(c[m],l[m],!0,i,p(c[m],l[m]))))return 0;u&=E}else if(1===c.length&&1===l.length){var f=r===Vt||!!P.noStrictGenericChecks;u=Q(c[0],l[0],f,i,p(c[0],l[0]))}else e:for(var _=0,g=l;_<g.length;_++){for(var y=g[_],v=i,h=0,b=c;h<b.length;h++){var E,T=b[h];if(E=Q(T,y,!0,v,p(T,y))){u&=E,A(d);continue e}v=!1}return v&&I(e.Diagnostics.Type_0_provides_no_match_for_the_signature_1,Aa(n),Ca(y,void 0,void 0,a)),0}return u}function X(n,t){return 0===n.parameters.length&&0===t.parameters.length?function(n,t){return k(e.Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,Aa(n),Aa(t))}:function(n,t){return k(e.Diagnostics.Call_signature_return_types_0_and_1_are_incompatible,Aa(n),Aa(t))}}function Y(n,t){return 0===n.parameters.length&&0===t.parameters.length?function(n,t){return k(e.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,Aa(n),Aa(t))}:function(n,t){return k(e.Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible,Aa(n),Aa(t))}}function Q(e,n,t,r,a){return Gu(t?Ks(e):e,t?Ks(n):n,0,!1,r,I,a,R)}function Z(n,t,r){var a=R(n.type,t.type,r);return!a&&r&&I(e.Diagnostics.Index_signatures_are_incompatible),a}function $(n,t,a,i,o){if(r===Ut)return function(e,n,t){var r=vs(n,t),a=vs(e,t);if(!a&&!r)return-1;if(a&&r&&a.isReadonly===r.isReadonly)return R(a.type,r.type);return 0}(n,t,a);var s=vs(t,a);if(!s||1&s.type.flags&&!i)return-1;var c=vs(n,a)||1===a&&vs(n,0);if(c)return Z(c,s,o);if(Ho(n))return 0===a?R(Fo(n),s.type,o):0;if(jd(n)){var l=-1;if(0===a){var u=vs(n,1);u&&(l=Z(u,s,o))}return l&&(l&=function(n,t,r,a){for(var i=-1,o=0,s=zo(n);o<s.length;o++){var c=s[o];if(!zu(n,c)&&(!(c.nameType&&8192&c.nameType.flags)&&(0===r||Df(c.escapedName)))){var l=R(Ci(c),t,a);if(!l)return a&&I(e.Diagnostics.Property_0_is_incompatible_with_index_signature,La(c)),0;i&=l}}return i}(n,s.type,a,o)),l}return o&&I(e.Diagnostics.Index_signature_is_missing_in_type_0,Aa(n)),0}}function Ju(e,n,t,r){for(var a=e.types.map((function(e){})),i=0,o=n;i<o.length;i++)for(var s=o[i],c=s[0],l=s[1],u=0,d=0,p=e.types;d<p.length;d++){var m=Ha(p[d],l);m&&t(c(),m)?a[u]=void 0===a[u]||a[u]:a[u]=!1,u++}var f=a.indexOf(!0);return-1===f||-1!==a.indexOf(!0,f+1)?r:e.types[f]}function Xu(n){if(524288&n.flags){var t=Wo(n);return 0===t.callSignatures.length&&0===t.constructSignatures.length&&!t.stringIndexInfo&&!t.numberIndexInfo&&t.properties.length>0&&e.every(t.properties,(function(e){return!!(16777216&e.flags)}))}return!!(2097152&n.flags)&&e.every(n.types,Xu)}function Yu(n,t,r){var a=tc(n,e.map(n.typeParameters,(function(e){return e===t?r:e})));return a.objectFlags|=8192,a}function Qu(e){var n=ir(e);return Zu(n.typeParameters,n,(function(t,r,a){var i=cc(e,Wl(n.typeParameters,ql(r,a)));return i.aliasTypeArgumentsContainsMarker=!0,i}))}function Zu(n,t,r){void 0===n&&(n=e.emptyArray);var a=t.variances;if(!a){t.variances=e.emptyArray,a=[];for(var i=function(e){var n=!1,i=!1,o=Wn;Wn=function(e){return e?i=!0:n=!0};var s=r(t,e,Qe),c=r(t,e,Ze),l=(xu(c,s)?1:0)|(xu(s,c)?2:0);3===l&&xu(r(t,e,zn),s)&&(l=4),Wn=o,(n||i)&&(n&&(l|=8),i&&(l|=16)),a.push(l)},o=0,s=n;o<s.length;o++){i(s[o])}t.variances=a}return a}function $u(n){return n===cn||n===ln||8&n.objectFlags?e.emptyArray:Zu(n.typeParameters,n,Yu)}function ed(e){return 262144&e.flags&&!Qo(e)}function nd(n){return function(n){return!!(4&e.getObjectFlags(n))&&!n.node}(n)&&e.some(ic(n),(function(e){return ed(e)||nd(e)}))}function td(e,n,t){void 0===t&&(t=0);for(var r=\"\"+e.target.id,a=0,i=ic(e);a<i.length;a++){var o=i[a];if(ed(o)){var s=n.indexOf(o);s<0&&(s=n.length,n.push(o)),r+=\"=\"+s}else t<4&&nd(o)?r+=\"<\"+td(o,n,t+1)+\">\":r+=\"-\"+o.id}return r}function rd(e,n,t,r){if(r===Ut&&e.id>n.id){var a=e;e=n,n=a}var i=t?\"&\":\"\";if(nd(e)&&nd(n)){var o=[];return td(e,o)+\",\"+td(n,o)+i}return e.id+\",\"+n.id+i}function ad(n,t){if(!(6&e.getCheckFlags(n)))return t(n);for(var r=0,a=n.containingType.types;r<a.length;r++){var i=ms(a[r],n.escapedName),o=i&&ad(i,t);if(o)return o}}function id(e){return e.parent&&32&e.parent.flags?Yi(Qr(e)):void 0}function od(e,n,t){if(t>=5&&524288&e.flags){var r=e.symbol;if(r)for(var a=0,i=0;i<t;i++){if(524288&(s=n[i]).flags&&s.symbol===r&&++a>=5)return!0}}if(t>=5&&8388608&e.flags){var o=sd(e);for(a=0,i=0;i<t;i++){var s;if(sd(s=n[i])===o&&++a>=5)return!0}}return!1}function sd(e){for(var n=e;8388608&n.flags;)n=n.objectType;return n}function cd(n,t,r){if(n===t)return-1;var a=24&e.getDeclarationModifierFlagsFromSymbol(n);if(a!==(24&e.getDeclarationModifierFlagsFromSymbol(t)))return 0;if(a){if(Ch(n)!==Ch(t))return 0}else if((16777216&n.flags)!=(16777216&t.flags))return 0;return ny(n)!==ny(t)?0:r(Ci(n),Ci(t))}function ld(n,t,r,a,i,o){if(n===t)return-1;if(!function(e,n,t){var r=Ng(e),a=Ng(n),i=Ig(e),o=Ig(n),s=Mg(e),c=Mg(n);return r===a&&i===o&&s===c||!!(t&&i<=o)}(n,t,r))return 0;if(e.length(n.typeParameters)!==e.length(t.typeParameters))return 0;if(t.typeParameters){for(var s=Jl(n.typeParameters,t.typeParameters),c=0;c<t.typeParameters.length;c++){if(!((_=n.typeParameters[c])===(m=t.typeParameters[c])||o(uu(Zs(_),s)||ye,Zs(m)||ye)&&o(uu(ss(_),s)||ye,ss(m)||ye)))return 0}n=nu(n,s,!0)}var l=-1;if(!a){var u=Rs(n);if(u){var d=Rs(t);if(d){if(!(f=o(u,d)))return 0;l&=f}}}var p=Ng(t);for(c=0;c<p;c++){var m,f,_=Ag(n,c);if(!(f=o(m=Ag(t,c),_)))return 0;l&=f}if(!i){var g=Ps(n),y=Ps(t);l&=g||y?function(e,n,t){return e&&n&&zc(e,n)?e.type===n.type?-1:e.type&&n.type?t(e.type,n.type):0:0}(g,y,o):o(ws(n),ws(t))}return l}function ud(n){return function(e){for(var n,t=0,r=e;t<r.length;t++){var a=r[t],i=Ed(a);if(n||(n=i),i===a||i!==n)return!1}return!0}(n)?Wc(n):e.reduceLeft(n,(function(e,n){return Su(e,n)?n:e}))}function dd(n){return!!(4&e.getObjectFlags(n))&&(n.target===cn||n.target===ln)}function pd(n){return!!(4&e.getObjectFlags(n))&&n.target===ln}function md(e){return dd(e)?ic(e)[0]:void 0}function fd(e){return dd(e)||!(98304&e.flags)&&xu(e,yn)}function _d(e){var n=dd(e)?ic(e)[0]:void 0;return n===he||n===we}function gd(e){return Cd(e)||!!ms(e,\"0\")}function yd(e){return fd(e)||gd(e)}function vd(e){return!(240512&e.flags)}function hd(e){return!!(109440&e.flags)}function bd(n){return!!(16&n.flags)||(1048576&n.flags?!!(1024&n.flags)||e.every(n.types,hd):hd(n))}function Ed(n){return 1024&n.flags?zi(n):128&n.flags?Se:256&n.flags?xe:2048&n.flags?Le:512&n.flags?Ne:1048576&n.flags?Wc(e.sameMap(n.types,Ed)):n}function Td(n){return 1024&n.flags&&Bl(n)?zi(n):128&n.flags&&Bl(n)?Se:256&n.flags&&Bl(n)?xe:2048&n.flags&&Bl(n)?Le:512&n.flags&&Bl(n)?Ne:1048576&n.flags?Wc(e.sameMap(n.types,Td)):n}function Sd(n){return 8192&n.flags?Ie:1048576&n.flags?Wc(e.sameMap(n.types,Sd)):n}function xd(e,n){return Ty(e,n)||(e=Sd(Td(e))),e}function Ld(e,n,t,r){e&&hd(e)&&(e=xd(e,n?mh(t,n,r):void 0));return e}function Cd(n){return!!(4&e.getObjectFlags(n)&&8&n.target.objectFlags)}function Ad(e){return e.target.hasRestElement?ic(e)[e.target.typeParameters.length-1]:void 0}function Dd(e){return oc(e)-(e.target.hasRestElement?1:0)}function kd(e){return\"0\"===e.value.base10Value}function Nd(e){for(var n=0,t=0,r=e;t<r.length;t++){n|=Id(r[t])}return n}function Id(e){return 1048576&e.flags?Nd(e.types):128&e.flags?\"\"===e.value?128:0:256&e.flags?0===e.value?256:0:2048&e.flags?kd(e)?2048:0:512&e.flags?e===Ce||e===Ae?512:0:117724&e.flags}function Md(e){return 117632&Id(e)?am(e,(function(e){return!(117632&Id(e))})):e}function Od(e){return 4&e.flags?mt:8&e.flags?ft:64&e.flags?_t:e===Ae||e===Ce||114688&e.flags||128&e.flags&&\"\"===e.value||256&e.flags&&0===e.value||2048&e.flags&&kd(e)?e:Oe}function Rd(e,n){var t=n&~e.flags&98304;return 0===t?e:Wc(32768===t?[e,ve]:65536===t?[e,Ee]:[e,ve,Ee])}function Pd(n){return e.Debug.assert(B),32768&n.flags?n:Wc([n,ve])}function wd(e){return B?function(e){return vn||(vn=Sc(\"NonNullable\",524288,void 0)||de),vn!==de?cc(vn,[e]):Up(e,2097152)}(e):e}function Fd(e){return B?Wc([e,be]):e}function Gd(e){return e!==be}function Bd(e){return B?am(e,Gd):e}function Vd(n,t,r){return r?e.isOutermostOptionalChain(t)?Pd(n):Fd(n):n}function Ud(n,t){return e.isExpressionOfOptionalChainRoot(t)?wd(n):e.isOptionalChain(t)?Bd(n):n}function jd(n){return!(!n.symbol||0==(7040&n.symbol.flags)||cb(n))||!!(2048&e.getObjectFlags(n)&&jd(n.source))}function Kd(n,t){var r=Xt(n.flags,n.escapedName,8&e.getCheckFlags(n));return r.declarations=n.declarations,r.parent=n.parent,r.type=t,r.target=n,n.valueDeclaration&&(r.valueDeclaration=n.valueDeclaration),n.nameType&&(r.nameType=n.nameType),r}function Hd(n){if(!(hp(n)&&32768&e.getObjectFlags(n)))return n;var t=n.regularType;if(t)return t;var r=n,a=function(n,t){for(var r=e.createSymbolTable(),a=0,i=zo(n);a<i.length;a++){var o=i[a],s=Ci(o),c=t(s);r.set(o.escapedName,c===s?o:Kd(o,c))}return r}(n,Hd),i=pa(r.symbol,a,r.callSignatures,r.constructSignatures,r.stringIndexInfo,r.numberIndexInfo);return i.flags=r.flags,i.objectFlags|=-32769&r.objectFlags,n.regularType=i,i}function Wd(e,n,t){return{parent:e,propertyName:n,siblings:t,resolvedProperties:void 0}}function zd(n){if(!n.resolvedProperties){for(var t=e.createMap(),r=0,a=function e(n){if(!n.siblings){for(var t=[],r=0,a=e(n.parent);r<a.length;r++){var i=a[r];if(hp(i)){var o=qo(i,n.propertyName);o&&tm(Ci(o),(function(e){t.push(e)}))}}n.siblings=t}return n.siblings}(n);r<a.length;r++){var i=a[r];if(hp(i)&&!(1024&e.getObjectFlags(i)))for(var o=0,s=Xo(i);o<s.length;o++){var c=s[o];t.set(c.escapedName,c)}}n.resolvedProperties=e.arrayFrom(t.values())}return n.resolvedProperties}function qd(e,n){if(!(4&e.flags))return e;var t=Ci(e),r=Yd(t,n&&Wd(n,e.escapedName,void 0));return r===t?e:Kd(e,r)}function Jd(e){var n=ue.get(e.escapedName);if(n)return n;var t=Kd(e,ve);return t.flags|=16777216,ue.set(e.escapedName,t),t}function Xd(e){return Yd(e,void 0)}function Yd(n,t){if(786432&e.getObjectFlags(n)){if(void 0===t&&n.widened)return n.widened;var r=void 0;if(98304&n.flags)r=me;else if(hp(n))r=function(n,t){for(var r=e.createSymbolTable(),a=0,i=zo(n);a<i.length;a++){var o=i[a];r.set(o.escapedName,qd(o,t))}if(t)for(var s=0,c=zd(t);s<c.length;s++){o=c[s];r.has(o.escapedName)||r.set(o.escapedName,Jd(o))}var l=vs(n,0),u=vs(n,1),d=pa(n.symbol,r,e.emptyArray,e.emptyArray,l&&Xs(Xd(l.type),l.isReadonly),u&&Xs(Xd(u.type),u.isReadonly));return d.objectFlags|=1064960&e.getObjectFlags(n),d}(n,t);else if(1048576&n.flags){var a=t||Wd(void 0,void 0,n.types),i=e.sameMap(n.types,(function(e){return 98304&e.flags?e:Yd(e,a)}));r=Wc(i,e.some(i,Vu)?2:1)}else 2097152&n.flags?r=Zc(e.sameMap(n.types,Xd)):(dd(n)||Cd(n))&&(r=tc(n.target,e.sameMap(ic(n),Xd)));return r&&void 0===t&&(n.widened=r),r||n}return n}function Qd(n,t,r){var a=Aa(Xd(t));if(!e.isInJSFile(n)||e.isCheckJsEnabledForFile(e.getSourceFileOfNode(n),P)){var i;switch(n.kind){case 208:case 158:case 157:i=K?e.Diagnostics.Member_0_implicitly_has_an_1_type:e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 155:var o=n;if(e.isIdentifier(o.name)&&(e.isCallSignatureDeclaration(o.parent)||e.isMethodSignature(o.parent)||e.isFunctionTypeNode(o.parent))&&o.parent.parameters.indexOf(o)>-1&&(ur(o,o.name.escapedText,788968,void 0,o.name.escapedText,!0)||o.name.originalKeywordKind&&e.isTypeNodeKind(o.name.originalKeywordKind))){var s=\"arg\"+o.parent.parameters.indexOf(o);return void qt(K,n,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,s,e.declarationNameToString(o.name))}i=n.dotDotDotToken?K?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:K?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 190:if(i=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!K)return;break;case 298:return void Wt(n,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,a);case 243:case 160:case 159:case 162:case 163:case 200:case 201:if(K&&!n.name)return void Wt(n,1===r?e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,a);i=K?1===r?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 185:return void(K&&Wt(n,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type));default:i=K?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}qt(K,n,i,e.declarationNameToString(e.getNameOfDeclaration(n)),a)}}function Zd(n,r,a){t&&K&&262144&e.getObjectFlags(r)&&(function n(t){var r=!1;if(262144&e.getObjectFlags(t)){if(1048576&t.flags)if(e.some(t.types,Vu))r=!0;else for(var a=0,i=t.types;a<i.length;a++){n(d=i[a])&&(r=!0)}if(dd(t)||Cd(t))for(var o=0,s=ic(t);o<s.length;o++){n(d=s[o])&&(r=!0)}if(hp(t))for(var c=0,l=zo(t);c<l.length;c++){var u=l[c],d=Ci(u);262144&e.getObjectFlags(d)&&(n(d)||Wt(u.valueDeclaration,e.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type,La(u),Aa(Xd(d))),r=!0)}}return r}(r)||Qd(n,r,a))}function $d(e,n,t){var r=Ng(e),a=Ng(n),i=Og(e),o=Og(n),s=o?a-1:a,c=i?s:Math.min(r,s),l=Rs(e);if(l){var u=Rs(n);u&&t(l,u)}for(var d=0;d<c;d++)t(Ag(e,d),Ag(n,d));o&&t(kg(e,c),o)}function ep(e,n,t){var r=Ps(e),a=Ps(n);r&&a&&zc(r,a)&&r.type&&a.type?t(r.type,a.type):t(ws(e),ws(n))}function np(e,n,t,r){return tp(e.map(ip),n,t,r||Eu)}function tp(e,n,t,r){var a={inferences:e,signature:n,flags:t,compareTypes:r,mapper:function(e){return rp(a,e,!0)},nonFixingMapper:function(e){return rp(a,e,!1)}};return a}function rp(e,n,t){for(var r=e.inferences,a=0;a<r.length;a++){var i=r[a];if(n===i.typeParameter)return t&&!i.isFixed&&(ap(r),i.isFixed=!0),Sp(e,a)}return n}function ap(e){for(var n=0,t=e;n<t.length;n++){var r=t[n];r.isFixed||(r.inferredType=void 0)}}function ip(e){return{typeParameter:e,candidates:void 0,contraCandidates:void 0,inferredType:void 0,priority:void 0,topLevel:!0,isFixed:!1}}function op(e){return{typeParameter:e.typeParameter,candidates:e.candidates&&e.candidates.slice(),contraCandidates:e.contraCandidates&&e.contraCandidates.slice(),inferredType:e.inferredType,priority:e.priority,topLevel:e.topLevel,isFixed:e.isFixed}}function sp(e){return e&&e.mapper}function cp(n){var t=e.getObjectFlags(n);return!!(63176704&n.flags||4&t&&(n.node||e.forEach(ic(n),cp))||16&t&&n.symbol&&14384&n.symbol.flags&&n.symbol.declarations||32&t||3145728&n.flags&&!(1024&n.flags)&&function(n){void 0===n.couldContainTypeVariables&&(n.couldContainTypeVariables=e.some(n.types,cp));return n.couldContainTypeVariables}(n))}function lp(n,t){return!!(n===t||3145728&n.flags&&e.some(n.types,(function(e){return lp(e,t)}))||16777216&n.flags&&(lp(Sl(n),t)||lp(xl(n),t)))}function up(n,t,r){var a=n.id+\",\"+t.id+\",\"+r.id;if(ot.has(a))return ot.get(a);ot.set(a,void 0);var i=function(n,t,r){if(!(vs(n,0)||0!==Xo(n).length&&function n(t){return!(1048576&e.getObjectFlags(t))||hp(t)&&e.some(Xo(t),(function(e){return n(Ci(e))}))}(n)))return;if(dd(n))return Oc(dp(ic(n)[0],t,r),pd(n));if(Cd(n)){var a=e.map(ic(n),(function(e){return dp(e,t,r)})),i=4&Uo(t)?oc(n)-(n.target.hasRestElement?1:0):n.target.minLength;return Fc(a,i,n.target.hasRestElement,n.target.readonly,n.target.associatedNames)}var o=sa(2064,void 0);return o.source=n,o.mappedType=t,o.constraintType=r,o}(n,t,r);return ot.set(a,i),i}function dp(e,n,t){var r=yl(t.type,Po(n)),a=Fo(n),i=ip(r);return gp([i],e,a),_p(i)||ye}function pp(n,t,r,a){var i,o,s,c,l,u,d;return __generator(this,(function(p){switch(p.label){case 0:i=1048576&t.flags?Jo(t):Xo(t),o=0,s=i,p.label=1;case 1:return o<s.length?(c=s[o],!r&&(16777216&c.flags||48&e.getCheckFlags(c))?[3,5]:(l=ms(n,c.escapedName))?[3,3]:[4,c]):[3,6];case 2:return p.sent(),[3,5];case 3:return a&&109440&(u=Ci(c)).flags?1&(d=Ci(l)).flags||Gl(d)===Gl(u)?[3,5]:[4,c]:[3,5];case 4:p.sent(),p.label=5;case 5:return o++,[3,1];case 6:return[2]}}))}function mp(e,n,t,r){var a=pp(e,n,t,r).next();if(!a.done)return a.value}function fp(e,n){return Cd(e)&&Cd(n)&&function(e,n){return n.target.minLength>e.target.minLength||!Ad(n)&&(!!Ad(e)||Dd(n)<Dd(e))}(e,n)||!!mp(e,n,!1,!0)&&!!mp(n,e,!1,!0)}function _p(e){return e.candidates?Wc(e.candidates,2):e.contraCandidates?Zc(e.contraCandidates):void 0}function gp(n,t,r,a,i){var o,s;void 0===a&&(a=0),void 0===i&&(i=!1);var c,l=!1,u=256,d=!0;function p(t,o){if(cp(o)){if(t===_e){var s=c;return c=t,p(o,o),void(c=s)}if(t.aliasSymbol&&t.aliasTypeArguments&&t.aliasSymbol===o.aliasSymbol)g(t.aliasTypeArguments,o.aliasTypeArguments,Qu(t.aliasSymbol));else if(t===o&&3145728&t.flags)for(var y=0,E=t.types;y<E.length;y++){var T=E[y];p(T,T)}else{if(1048576&o.flags){var S=_(1048576&t.flags?t.types:[t],o.types,yp),x=_(S[0],S[1],vp),L=x[0];if(0===(A=x[1]).length)return;if(o=Wc(A),0===L.length)return void m(t,o,1);t=Wc(L)}else if(2097152&o.flags&&e.some(o.types,(function(e){return!!v(e)||Ho(e)&&!!v(iu(e)||Oe)}))){if(!(1048576&t.flags)){var C=_(2097152&t.flags?t.types:[t],o.types,hu),A=(L=C[0],C[1]);if(0===L.length||0===A.length)return;t=Zc(L),o=Zc(A)}}else 41943040&o.flags&&(o=El(o));if(8650752&o.flags){if(1048576&e.getObjectFlags(t)||t===Re||16&a&&(t===fe||t===gn))return;var D=v(o);if(D){if(!D.isFixed){if((void 0===D.priority||a<D.priority)&&(D.candidates=void 0,D.contraCandidates=void 0,D.topLevel=!0,D.priority=a),a===D.priority){var k=c||t;i&&!l?e.contains(D.contraCandidates,k)||(D.contraCandidates=e.append(D.contraCandidates,k),ap(n)):e.contains(D.candidates,k)||(D.candidates=e.append(D.candidates,k),ap(n))}!(16&a)&&262144&o.flags&&D.topLevel&&!lp(r,o)&&(D.topLevel=!1,ap(n))}return void(u=Math.min(u,a))}var N=ml(o,!1);if(N!==o)f(t,N,p);else if(8388608&o.flags){var I=ml(o.indexType,!1);if(63176704&I.flags){var M=fl(ml(o.objectType,!1),I,!1);M&&M!==o&&f(t,M,p)}}}if(!(4&e.getObjectFlags(t)&&4&e.getObjectFlags(o)&&(t.target===o.target||dd(t)&&dd(o)))||t.node&&o.node)if(4194304&t.flags&&4194304&o.flags)i=!i,p(t.type,o.type),i=!i;else if((bd(t)||4&t.flags)&&4194304&o.flags){var O=function(n){var t=e.createSymbolTable();tm(n,(function(n){if(128&n.flags){var r=e.escapeLeadingUnderscores(n.value),a=Xt(4,r);a.type=me,n.symbol&&(a.declarations=n.symbol.declarations,a.valueDeclaration=n.symbol.valueDeclaration),t.set(r,a)}}));var r=4&n.flags?Xs(je,!1):void 0;return pa(void 0,t,e.emptyArray,e.emptyArray,r,void 0)}(t);i=!i,m(O,o.type,32),i=!i}else if(8388608&t.flags&&8388608&o.flags)p(t.objectType,o.objectType),p(t.indexType,o.indexType);else if(16777216&t.flags&&16777216&o.flags)p(t.checkType,o.checkType),p(t.extendsType,o.extendsType),p(Sl(t),Sl(o)),p(xl(t),xl(o));else if(16777216&o.flags&&!i){h(t,[Sl(o),xl(o)],o.flags)}else if(3145728&o.flags)h(t,o.types,o.flags);else if(1048576&t.flags)for(var R=0,P=t.types;R<P.length;R++){p(P[R],o)}else{if(!(64&a&&65273856&t.flags)){var w=ls(t);if(w!==t&&d&&!(2621440&w.flags))return d=!1,p(w,o);t=w}2621440&t.flags&&f(t,o,b)}else g(ic(t),ic(o),$u(t.target))}}}function m(e,n,t){var r=a;a|=t,p(e,n),a=r}function f(n,t,r){var a=n.id+\",\"+t.id,i=s&&s.get(a);if(void 0===i){(s||(s=e.createMap())).set(a,-1);var o=u;u=256,r(n,t),s.set(a,u),u=Math.min(u,o)}else u=Math.min(u,i)}function _(n,t,r){for(var a,i,o=0,s=t;o<s.length;o++)for(var c=s[o],l=0,u=n;l<u.length;l++){var d=u[l];r(d,c)&&(p(d,c),a=e.appendIfUnique(a,d),i=e.appendIfUnique(i,c))}return[a?e.filter(n,(function(n){return!e.contains(a,n)})):n,i?e.filter(t,(function(n){return!e.contains(i,n)})):t]}function g(e,n,t){for(var r=e.length<n.length?e.length:n.length,a=0;a<r;a++)a<t.length&&2==(7&t[a])?y(e[a],n[a]):p(e[a],n[a])}function y(e,n){V||128&a?(i=!i,p(e,n),i=!i):p(e,n)}function v(e){if(8650752&e.flags)for(var t=0,r=n;t<r.length;t++){var a=r[t];if(e===a.typeParameter)return a}}function h(n,t,r){var i=0;if(1048576&r){for(var o=void 0,s=1048576&n.flags?n.types:[n],c=new Array(s.length),l=!1,d=0,f=t;d<f.length;d++){if(v(x=f[d]))o=x,i++;else for(var _=0;_<s.length;_++){var g=u;u=256,p(s[_],x),u===a&&(c[_]=!0),l=l||-1===u,u=Math.min(u,g)}}if(0===i){var y=function(n){for(var t,r=0,a=n;r<a.length;r++){var i=a[r],o=2097152&i.flags&&e.find(i.types,(function(e){return!!v(e)}));if(!o||t&&o!==t)return;t=o}return t}(t);return void(y&&m(n,y,1))}if(1===i&&!l){var h=e.flatMap(s,(function(e,n){return c[n]?void 0:e}));if(h.length)return void p(Wc(h),o)}}else for(var b=0,E=t;b<E.length;b++){v(x=E[b])?i++:p(n,x)}if(2097152&r?1===i:i>0)for(var T=0,S=t;T<S.length;T++){var x;v(x=S[T])&&m(n,x,1)}}function b(n,t){var r=524288&t.flags&&!(16&e.getObjectFlags(t)&&t.symbol&&32&t.symbol.flags)?t.symbol:void 0;if(r){if(e.contains(o,r))return void(u=-1);(o||(o=[])).push(r),E(n,t),o.pop()}else E(n,t)}function E(n,t){if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)&&(n.target===t.target||dd(n)&&dd(t)))g(ic(n),ic(t),$u(n.target));else{if(Ho(n)&&Ho(t)&&(p(wo(n),wo(t)),p(Fo(n),Fo(t))),32&e.getObjectFlags(t))if(function n(t,r,a){if(1048576&a.flags){for(var i=!1,o=0,s=a.types;o<s.length;o++){i=n(t,r,s[o])||i}return i}if(4194304&a.flags){var c=v(a.type);if(c&&!c.isFixed){var l=up(t,r,a);l&&m(l,c.typeParameter,1048576&e.getObjectFlags(t)?4:2)}return!0}if(262144&a.flags){m(al(t),a,8);var u=Yo(a);if(u&&n(t,r,u))return!0;var d=e.map(Xo(t),Ci),f=hs(t,0),_=rl(t),g=_&&_.type;return p(Wc(e.append(e.append(d,f),g)),Fo(r)),!0}return!1}(n,t,wo(t)))return;fp(n,t)||(!function(e,n){if(dd(e)||Cd(e)){if(Cd(n)){for(var t=Cd(e)?Dd(e):0,r=Dd(n),a=Cd(e)?Ad(e):md(e),i=Ad(n),o=r<t||a?r:t,s=0;s<o;s++)p(s<t?ic(e)[s]:a,ic(n)[s]);if(i){var c=o<t?ic(e).slice(o,t):[];a&&c.push(a),c.length&&p(Wc(c),i)}return}if(dd(n))return void x(e,n)}for(var l=zo(n),u=0,d=l;u<d.length;u++){var m=d[u],f=ms(e,m.escapedName);f&&p(Ci(f),Ci(m))}}(n,t),T(n,t,0),T(n,t,1),x(n,t))}}function T(n,t,r){for(var a=_s(n,r),i=_s(t,r),o=a.length,s=i.length,c=o<s?o:s,l=!!(1048576&e.getObjectFlags(n)),u=0;u<c;u++)S(Ws(a[o-c+u]),Ws(i[s-c+u]),l)}function S(e,n,t){if(!t){var r=l,a=n.declaration?n.declaration.kind:0;l=l||160===a||159===a||161===a,$d(e,n,y),l=r}ep(e,n,p)}function x(e,n){var t=hs(n,0);t&&((r=hs(e,0)||bs(e,0))&&p(r,t));var r,a=hs(n,1);a&&((r=hs(e,1)||hs(e,0)||bs(e,1))&&p(r,a))}p(t,r)}function yp(e,n){return hu(e,n)||!!(384&e.flags)&&hu(Ed(e),n)}function vp(e,n){return!!(524288&e.flags&&524288&n.flags&&e.symbol&&e.symbol===n.symbol||e.aliasSymbol&&e.aliasTypeArguments&&e.aliasSymbol===n.aliasSymbol)}function hp(n){return!!(128&e.getObjectFlags(n))}function bp(n){return!!(65664&e.getObjectFlags(n))}function Ep(n){return 56&n.priority?Zc(n.contraCandidates):(t=n.contraCandidates,e.reduceLeft(t,(function(e,n){return Su(n,e)?n:e})));var t}function Tp(n,t){var r,a,i=function(n){if(n.length>1){var t=e.filter(n,bp);if(t.length){var r=Wc(t,2);return e.concatenate(e.filter(n,(function(e){return!bp(e)})),[r])}}return n}(n.candidates),o=(r=n.typeParameter,!!(a=Qo(r))&&oy(16777216&a.flags?$o(a):a,4325372)),s=!o&&n.topLevel&&(n.isFixed||!lp(ws(t),n.typeParameter)),c=o?e.sameMap(i,Gl):s?e.sameMap(i,Td):i;return Xd(56&n.priority?Wc(c,2):function(n){if(!B)return ud(n);var t=e.filter(n,(function(e){return!(98304&e.flags)}));return t.length?Rd(ud(t),98304&Nd(n)):Wc(n,2)}(c))}function Sp(n,t){var r=n.inferences[t];if(!r.inferredType){var a=void 0,i=n.signature;if(i){var o=r.candidates?Tp(r,i):void 0;if(r.contraCandidates){var s=Ep(r);a=!o||131072&o.flags||!Su(o,s)?s:o}else if(o)a=o;else if(1&n.flags)a=Re;else{var c=ss(r.typeParameter);c&&(a=uu(c,Yl(function(n,t){return function(r){return e.findIndex(n.inferences,(function(e){return e.typeParameter===r}))>=t?ye:r}}(n,t),n.nonFixingMapper)))}}else a=_p(r);r.inferredType=a||xp(!!(2&n.flags));var l=Qo(r.typeParameter);if(l){var u=uu(l,n.nonFixingMapper);a&&n.compareTypes(a,go(u,a))||(r.inferredType=a=u)}}return r.inferredType}function xp(e){return e?me:ye}function Lp(e){for(var n=[],t=0;t<e.inferences.length;t++)n.push(Sp(e,t));return n}function Cp(n){switch(n.escapedText){case\"document\":case\"console\":return e.Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;case\"$\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_types_Slashjquery;case\"describe\":case\"suite\":case\"it\":case\"test\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_types_Slashjest_or_npm_i_types_Slashmocha;case\"process\":case\"require\":case\"Buffer\":case\"module\":return P.types?e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:e.Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_types_Slashnode;case\"Map\":case\"Set\":case\"Promise\":case\"Symbol\":case\"WeakMap\":case\"WeakSet\":case\"Iterator\":case\"AsyncIterator\":return e.Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later;default:return 280===n.parent.kind?e.Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:e.Diagnostics.Cannot_find_name_0}}function Ap(n){var t=or(n);return t.resolvedSymbol||(t.resolvedSymbol=!e.nodeIsMissing(n)&&ur(n,n.escapedText,1160127,Cp(n),n,!e.isWriteOnlyAccess(n),!1,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1)||de),t.resolvedSymbol}function Dp(n){return!!e.findAncestor(n,(function(e){return 171===e.kind||75!==e.kind&&152!==e.kind&&\"quit\"}))}function kp(n,t){switch(t.kind){case 199:case 217:return kp(n,t.expression)}switch(n.kind){case 75:return 75===t.kind&&Ap(n)===Ap(t)||(241===t.kind||190===t.kind)&&na(Ap(n))===Yr(t);case 103:return 103===t.kind;case 101:return 101===t.kind;case 217:case 199:return kp(n.expression,t);case 193:case 194:return e.isAccessExpression(t)&&Np(n)===Np(t)&&kp(n.expression,t.expression)}return!1}function Np(n){return 193===n.kind?n.name.escapedText:e.isStringOrNumericLiteralLike(n.argumentExpression)?e.escapeLeadingUnderscores(n.argumentExpression.text):void 0}function Ip(n,t){for(;e.isAccessExpression(n);)if(kp(n=n.expression,t))return!0;return!1}function Mp(n,t){for(;e.isOptionalChain(n);)if(kp(n=n.expression,t))return!0;return!1}function Op(n,t){var r;return e.isAccessExpression(t)&&Ip(n,t.expression)&&void 0!==(r=Np(t))&&Rp(function n(t){if(75===t.kind)return Ci(Ap(t));if(e.isAccessExpression(t)){var r=n(t.expression);if(r){var a=Np(t);return void 0!==a?Ha(r,a):void 0}}return}(t.expression),r)}function Rp(n,t){if(n&&1048576&n.flags){var r=ds(n,t);if(r&&2&e.getCheckFlags(r))return void 0===r.isDiscriminantProperty&&(r.isDiscriminantProperty=192==(192&r.checkFlags)&&function(e){return!!(1048576&e.flags&&(1040&e.flags||!dl(e)))}(Ci(r))),!!r.isDiscriminantProperty}return!1}function Pp(e,n){for(var t,r=0,a=e;r<a.length;r++){var i=a[r];if(Rp(n,i.escapedName)){if(t){t.push(i);continue}t=[i]}}return t}function wp(e,n){return kp(e,n)||Ip(e,n)}function Fp(e){return(!e.id||e.id<0)&&(e.id=l,l++),e.id}function Gp(e,n){if(e!==n){if(131072&n.flags)return n;var t=am(e,(function(e){return function(e,n){if(!(1048576&e.flags))return xu(e,n);for(var t=0,r=e.types;t<r.length;t++){if(xu(r[t],n))return!0}return!1}(n,e)}));if(512&n.flags&&Bl(n)&&(t=om(t,Fl)),xu(n,t))return t}return e}function Bp(e){var n=Wo(e);return!!(n.callSignatures.length||n.constructSignatures.length||n.members.get(\"bind\")&&Su(e,an))}function Vp(n){var t=n.flags;if(4&t)return B?16317953:16776705;if(128&t){var r=\"\"===n.value;return B?r?12123649:7929345:r?12582401:16776705}if(40&t)return B?16317698:16776450;if(256&t){var a=0===n.value;return B?a?12123394:7929090:a?12582146:16776450}if(64&t)return B?16317188:16775940;if(2048&t){a=kd(n);return B?a?12122884:7928580:a?12581636:16775940}return 16&t?B?16316168:16774920:528&t?B?n===Ce||n===Ae?12121864:7927560:n===Ce||n===Ae?12580616:16774920:524288&t?16&e.getObjectFlags(n)&&Vu(n)?B?16318463:16777215:Bp(n)?B?7880640:16728e3:B?7888800:16736160:49152&t?9830144:65536&t?9363232:12288&t?B?7925520:16772880:67108864&t?B?7888800:16736160:63176704&t?Vp(ts(n)||ye):3145728&t?function(e){for(var n=0,t=0,r=e;t<r.length;t++){n|=Vp(r[t])}return n}(n.types):16777215}function Up(e,n){return am(e,(function(e){return 0!=(Vp(e)&n)}))}function jp(e,n){if(n){var t=Oy(n);return Wc([Up(e,524288),t])}return e}function Kp(e,n){var t=el(n);if(!io(t))return ge;var r=uo(t);return Rm(Ha(e,r),n)||Df(r)&&hs(e,1)||hs(e,0)||ge}function Hp(e,n){return rm(e,gd)&&function(e,n){var t=Ha(e,\"\"+n);return t||(rm(e,Cd)?om(e,(function(e){return Ad(e)||ve})):void 0)}(e,n)||zv(65,e,ve,void 0)||ge}function Wp(e){return Oc(zv(65,e,ve,void 0)||ge)}function zp(e){return 208===e.parent.kind&&e.parent.left===e||231===e.parent.kind&&e.parent.initializer===e}function qp(e){return Kp(Jp(e.parent),e.name)}function Jp(e){var n=e.parent;switch(n.kind){case 230:return Se;case 231:return Wv(n.expression,n.awaitModifier)||ge;case 208:return function(e){return 191===e.parent.kind&&zp(e.parent)||279===e.parent.kind&&zp(e.parent.parent)?jp(Jp(e),e.right):Oy(e.right)}(n);case 202:return ve;case 191:return function(e,n){return Hp(Jp(e),e.elements.indexOf(n))}(n,e);case 212:return function(e){return Wp(Jp(e.parent))}(n);case 279:return qp(n);case 280:return function(e){return jp(qp(e),e.objectAssignmentInitializer)}(n)}return ge}function Xp(e){return e.initializer?function(e){return or(e).resolvedType||Oy(e)}(e.initializer):230===e.parent.parent.kind?Se:231===e.parent.parent.kind&&Wv(e.parent.parent.expression,e.parent.parent.awaitModifier)||ge}function Yp(e){return 241===e.kind?Xp(e):function(e){var n=e.parent,t=Yp(n.parent);return jp(188===n.kind?Kp(t,e.propertyName||e.name):e.dotDotDotToken?Wp(t):Hp(t,n.elements.indexOf(e)),e.initializer)}(e)}function Qp(e){switch(e.kind){case 199:return Qp(e.expression);case 208:switch(e.operatorToken.kind){case 62:return Qp(e.left);case 27:return Qp(e.right)}}return e}function Zp(e){return 275===e.kind?Gl(Oy(e.expression)):Oe}function $p(e){var n=or(e);if(!n.switchTypes){n.switchTypes=[];for(var t=0,r=e.caseBlock.clauses;t<r.length;t++){var a=r[t];n.switchTypes.push(Zp(a))}}return n.switchTypes}function em(n){for(var t=[],r=0,a=n.caseBlock.clauses;r<a.length;r++){var i=a[r];if(275===i.kind){if(e.isStringLiteralLike(i.expression)){t.push(i.expression.text);continue}return e.emptyArray}t.push(void 0)}return t}function nm(e,n){return e===n||1048576&n.flags&&function(e,n){if(1048576&e.flags){for(var t=0,r=e.types;t<r.length;t++){var a=r[t];if(!Vc(n.types,a))return!1}return!0}if(1024&e.flags&&zi(e)===n)return!0;return Vc(n.types,e)}(e,n)}function tm(n,t){return 1048576&n.flags?e.forEach(n.types,t):t(n)}function rm(n,t){return 1048576&n.flags?e.every(n.types,t):t(n)}function am(n,t){if(1048576&n.flags){var r=n.types,a=e.filter(r,t);return a===r?n:qc(a,n.objectFlags)}return t(n)?n:Oe}function im(e){return 1048576&e.flags?e.types.length:1}function om(e,n,t){if(131072&e.flags)return e;if(!(1048576&e.flags))return n(e);for(var r,a=0,i=e.types;a<i.length;a++){var o=n(i[a]);o&&(r?r.push(o):r=[o])}return r&&Wc(r,t?0:1)}function sm(e,n){return am(e,(function(e){return 0!=(e.flags&n)}))}function cm(e,n){return nm(Se,e)&&oy(n,128)||nm(xe,e)&&oy(n,256)||nm(Le,e)&&oy(n,2048)?om(e,(function(e){return 4&e.flags?sm(n,132):8&e.flags?sm(n,264):64&e.flags?sm(n,2112):e})):e}function lm(e){return 0===e.flags}function um(e){return 0===e.flags?e.type:e}function dm(e,n){return n?{flags:0,type:e}:e}function pm(e){return le[e.id]||(le[e.id]=function(e){var n=sa(256);return n.elementType=e,n}(e))}function mm(e,n){var t=Ed(Ry(n));return nm(t,e.elementType)?e:pm(Wc([e.elementType,t]))}function fm(e){return e.finalArrayType||(e.finalArrayType=131072&(n=e.elementType).flags?gn:Oc(1048576&n.flags?Wc(n.types,2):n));var n}function _m(n){return 256&e.getObjectFlags(n)?fm(n):n}function gm(n){return 256&e.getObjectFlags(n)?n.elementType:Oe}function ym(n,t){return function(n){for(var t=!1,r=0,a=n;r<a.length;r++){var i=a[r];if(!(131072&i.flags)){if(!(256&e.getObjectFlags(i)))return!1;t=!0}}return t}(n)?pm(Wc(e.map(n,gm))):Wc(e.sameMap(n,_m),t)}function vm(n){var t=function e(n){var t=n.parent;return 199===t.kind||208===t.kind&&62===t.operatorToken.kind&&t.left===n||208===t.kind&&27===t.operatorToken.kind&&t.right===n?e(t):n}(n),r=t.parent,a=193===r.kind&&(\"length\"===r.name.escapedText||195===r.parent.kind&&e.isPushOrUnshiftIdentifier(r.name)),i=194===r.kind&&r.expression===t&&208===r.parent.kind&&62===r.parent.operatorToken.kind&&r.parent.left===r&&!e.isAssignmentTarget(r.parent)&&sy(Oy(r.argumentExpression),296);return a||i}function hm(n,t){if(8752&n.flags)return Ci(n);if(7&n.flags){if((r=n.valueDeclaration)&&(241===r.kind||155===r.kind||158===r.kind||157===r.kind)&&e.getEffectiveTypeAnnotationNode(r))return Ci(n);t&&n.valueDeclaration&&e.addRelatedInfo(t,e.createDiagnosticForNode(n.valueDeclaration,e.Diagnostics._0_is_declared_here,La(n)))}var r}function bm(n,t){if(!(16777216&n.flags))switch(n.kind){case 75:var r=na(Ap(n));return hm(2097152&r.flags?kr(r):r,t);case 103:return function(n){var t=e.getThisContainer(n,!1);if(e.isFunctionLike(t)){var r=Ns(t);if(r.thisParameter)return hm(r.thisParameter)}if(e.isClassLike(t.parent)){var a=Yr(t.parent);return e.hasModifier(t,32)?Ci(a):Yi(a).thisType}}(n);case 193:var a=bm(n.expression,t),i=a&&ms(a,n.name.escapedText);return i&&hm(i,t);case 199:return bm(n.expression,t)}}function Em(n){var t=or(n),r=t.effectsSignature;if(void 0===r){var a=void 0;225===n.parent.kind?a=bm(n.expression,void 0):101!==n.expression.kind&&(a=e.isOptionalChain(n)?l_(Ud(Py(n.expression),n.expression),n.expression):r_(n.expression));var i=_s(a&&ls(a)||ye,0),o=1!==i.length||i[0].typeParameters?e.some(i,Tm)?fg(n):void 0:i[0];r=t.effectsSignature=o&&Tm(o)?o:Xn}return r===Xn?void 0:r}function Tm(e){return!!(Ps(e)||e.declaration&&131072&(Fs(e.declaration)||ye).flags)}function Sm(e){var n=Cm(e,!1);return Un=e,jn=n,n}function xm(e){return!(4096&e.flags&&e.lock.locked)&&Cm(e,!1)}function Lm(n){var t=e.skipParentheses(n);return 90===t.kind||208===t.kind&&(55===t.operatorToken.kind&&(Lm(t.left)||Lm(t.right))||56===t.operatorToken.kind&&Lm(t.left)&&Lm(t.right))}function Cm(n,t){for(;;){if(n===Un)return jn;var r=n.flags;if(2048&r){if(!t){var a=Fp(n),i=Nt[a];return void 0!==i?i:Nt[a]=Cm(n,!0)}t=!1}if(4464&r)n=n.antecedent;else if(512&r){var o=Em(n.node);if(o){var s=Ps(o);if(s&&3===s.kind){var c=n.node.arguments[s.parameterIndex];if(c&&Lm(c))return!1}if(131072&ws(o).flags)return!1}n=n.antecedent}else{if(4&r)return e.some(n.antecedents,xm);if(8&r)n=n.antecedents[0];else{if(!(128&r)){if(8192&r){Un=void 0,n.locked=!0;var l=Cm(n.antecedent,!1);return n.locked=!1,l}return!(1&r)}if(n.clauseStart===n.clauseEnd&&zg(n.switchStatement))return!1;n=n.antecedent}}}}function Am(n,t,r,a,i){var o;void 0===r&&(r=t);var s=!1,c=0;if(dt)return ge;if(!n.flowNode||!i&&!(133970943&t.flags))return t;pt++;var l=ut,u=um(m(n.flowNode));ut=l;var d=256&e.getObjectFlags(u)&&vm(n)?gn:_m(u);return d===Fe||n.parent&&217===n.parent.kind&&131072&Up(d,2097152).flags?t:d;function p(){return s?o:(s=!0,o=function e(n,t,r,a){switch(n.kind){case 75:var i=Ap(n);return i!==de?(a?x(a):\"-1\")+\"|\"+Bc(t)+\"|\"+Bc(r)+\"|\"+(Mm(n)?\"@\":\"\")+L(i):void 0;case 103:return\"0\";case 217:case 199:return e(n.expression,t,r,a);case 193:case 194:var o=Np(n);if(void 0!==o){var s=e(n.expression,t,r,a);return s&&s+\".\"+o}}}(n,t,r,a))}function m(i){if(2e3===c)return dt=!0,o=n,s=e.findAncestor(o,e.isFunctionOrModuleBlock),u=e.getSourceFileOfNode(o),d=e.getSpanOfTokenAtPosition(u,s.statements.pos),Rt.add(e.createFileDiagnostic(u,d.start,d.length,e.Diagnostics.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis)),ge;var o,s,u,d;for(c++;;){var p=i.flags;if(2048&p)for(var f=l;f<ut;f++)if(Dt[f]===i)return c--,kt[f];var v=void 0;if(8192&p)i.locked=!0,v=m(i.antecedent),i.locked=!1;else{if(4096&p){i=i.antecedent;continue}if(16&p){if(!(v=_(i))){i=i.antecedent;continue}}else if(512&p){if(!(v=g(i))){i=i.antecedent;continue}}else if(96&p)v=b(i);else if(128&p)v=E(i);else if(12&p){if(1===i.antecedents.length){i=i.antecedents[0];continue}v=4&p?T(i):S(i)}else if(256&p){if(!(v=y(i))){i=i.antecedent;continue}}else if(2&p){var h=i.node;if(h&&h!==a&&193!==n.kind&&194!==n.kind&&103!==n.kind){i=h.flowNode;continue}v=r}else v=Rv(t)}return 2048&p&&(Dt[ut]=i,kt[ut]=v,ut++),c--,v}}function f(e){var t=e.node;if(16384&e.flags){var r=xt[x(t)];if(r)return r}var a=pt,i=Rm(241===t.kind||190===t.kind?Yp(t):Jp(t),n);return pt!==a&&lt===ct&&(e.flags|=16384,xt[x(t)]=i),i}function _(r){var a=r.node;if(kp(n,a)){if(!Sm(r))return Fe;if(2===e.getAssignmentTargetKind(a)){var i=m(r.antecedent);return dm(Ed(um(i)),lm(i))}if(t===fe||t===gn){if(function(e){return 241===e.kind&&e.initializer&&ei(e.initializer)||190!==e.kind&&208===e.parent.kind&&ei(e.parent.right)}(a))return pm(Oe);var o=Ed(f(r));return xu(o,t)?o:_n}return 1048576&t.flags?Gp(t,f(r)):t}if(Ip(n,a)){if(!Sm(r))return Fe;if(e.isVariableDeclaration(a)&&(e.isInJSFile(a)||e.isVarConst(a))){var s=e.getDeclaredExpandoInitializer(a);if(s&&(200===s.kind||201===s.kind))return m(r.antecedent)}return t}if(e.isVariableDeclaration(a)&&230===a.parent.parent.kind&&kp(n,a.parent.parent.expression))return i_(um(m(r.antecedent)))}function g(n){var t=Em(n.node);if(t){var r=Ps(t);if(r&&(2===r.kind||3===r.kind)){var a=m(n.antecedent),i=um(a),o=r.type?G(i,r,n.node,!0):3===r.kind&&r.parameterIndex>=0&&r.parameterIndex<n.node.arguments.length?function n(t,r){var a=e.skipParentheses(r);if(90===a.kind)return Fe;if(208===a.kind){if(55===a.operatorToken.kind)return n(n(t,a.left),a.right);if(56===a.operatorToken.kind)return Wc([n(t,a.left),n(t,a.right)])}return V(t,a,!0)}(i,n.node.arguments[r.parameterIndex]):i;return o===i?a:dm(o,lm(a))}if(131072&ws(t).flags)return Fe}}function y(r){if(t===fe||t===gn){var a=r.node,i=195===a.kind?a.expression.expression:a.left.expression;if(kp(n,Qp(i))){var o=m(r.antecedent),s=um(o);if(256&e.getObjectFlags(s)){var c=s;if(195===a.kind)for(var l=0,u=a.arguments;l<u.length;l++){c=mm(c,u[l])}else sy(Ry(a.left.argumentExpression),296)&&(c=mm(c,a.right));return c===s?o:dm(c,lm(o))}return o}}}function b(e){var n=m(e.antecedent),t=um(n);if(131072&t.flags)return n;var r=0!=(32&e.flags),a=_m(t),i=V(a,e.node,r);if(i===a)return n;var o=lm(n);return dm(o&&131072&i.flags?Re:i,o)}function E(r){var a=r.switchStatement.expression,i=m(r.antecedent),o=um(i);if(kp(n,a))o=P(o,r.switchStatement,r.clauseStart,r.clauseEnd);else if(203===a.kind&&kp(n,a.expression))o=function(n,t,r,a){var i=em(t);if(!i.length)return n;var o,s,c=e.findIndex(i,(function(e){return void 0===e})),l=r===a||c>=r&&c<a;if(c>-1){var u=i.filter((function(e){return void 0!==e})),d=c<r?r-1:r,p=c<a?a-1:a;o=u.slice(d,p),s=Wg(d,p,u,l)}else o=i.slice(r,a),s=Wg(r,a,i,l);if(l)return am(n,(function(e){return(Vp(e)&s)===s}));var m=Up(Wc(o.map((function(e){return function(e,n){switch(n){case\"function\":return 1&e.flags?e:an;case\"object\":return 2&e.flags?Wc([Ge,Ee]):e;default:return wt.get(n)||e}}(n,e)}))),s);1048576&m.flags&&(m=Gp(m,rs(n)));return Up(om(n,(f=m,function(e){if(Su(f,e))return f;if(63176704&e.flags){var n=ts(e)||me;if(Su(f,n))return Zc([e,f])}return e})),s);var f}(o,r.switchStatement,r.clauseStart,r.clauseEnd);else if(B&&(Mp(a,n)?o=R(o,r.switchStatement,r.clauseStart,r.clauseEnd,(function(e){return!(163840&e.flags)})):203===a.kind&&Mp(a.expression,n)&&(o=R(o,r.switchStatement,r.clauseStart,r.clauseEnd,(function(e){return!(131072&e.flags||128&e.flags&&\"undefined\"===e.value)})))),C(a,o))o=A(o,a,(function(e){return P(e,r.switchStatement,r.clauseStart,r.clauseEnd)}));else if(Op(n,a))o=t;else if(r.clauseStart===r.clauseEnd&&zg(r.switchStatement))return Fe;return dm(o,lm(i))}function T(n){for(var a=[],i=!1,o=!1,s=0,c=n.antecedents;s<c.length;s++){var l=c[s];if(!(4096&l.flags&&l.lock.locked)){var u=m(l),d=um(u);if(d===t&&t===r)return d;e.pushIfUnique(a,d),nm(d,t)||(i=!0),lm(u)&&(o=!0)}}return dm(ym(a,i?2:1),o)}function S(n){var r=Fp(n),a=St[r]||(St[r]=e.createMap()),i=p();if(!i)return t;var o=a.get(i);if(o)return o;for(var s=ct;s<lt;s++)if(Lt[s]===n&&Ct[s]===i&&At[s].length)return dm(ym(At[s],1),!0);for(var c,l=[],u=!1,d=0,f=n.antecedents;d<f.length;d++){var _=f[d],g=void 0;if(c){Lt[lt]=n,Ct[lt]=i,At[lt]=l,lt++,g=m(_),lt--;var y=a.get(i);if(y)return y}else g=c=m(_);var v=um(g);if(e.pushIfUnique(l,v),nm(v,t)||(u=!0),v===t)break}var h=ym(l,u?2:1);return lm(c)?dm(h,!0):(a.set(i,h),h)}function C(t,r){if(!(1048576&r.flags&&e.isAccessExpression(t)))return!1;var a=Np(t);return void 0!==a&&(kp(n,t.expression)&&Rp(r,a))}function A(e,n,t){var r=Np(n);if(void 0===r)return e;var a=Ha(e,r),i=a&&t(a);return a===i?e:am(e,(function(e){return Cu(function(e,n){return Ha(e,n)||Df(n)&&hs(e,1)||hs(e,0)||ye}(e,r),i)}))}function D(e,r,a){return kp(n,r)?Up(e,a?4194304:8388608):(B&&a&&Mp(r,n)&&(e=Up(e,2097152)),C(r,t)?A(e,r,(function(e){return Up(e,a?4194304:8388608)})):Op(n,r)?t:e)}function k(n,t,r){if(1572864&n.flags||pl(n)){var a=e.escapeLeadingUnderscores(t.text);return am(n,(function(e){return function(e,n,t){if(vs(e,0))return!0;var r=ms(e,n);return r?!!(16777216&r.flags)||t:!t}(e,a,r)}))}return n}function N(r,a,i){switch(a.operatorToken.kind){case 62:return D(V(r,a.right,i),a.left,i);case 34:case 35:case 36:case 37:var o=a.operatorToken.kind,s=Qp(a.left),c=Qp(a.right);if(203===s.kind&&e.isStringLiteralLike(c))return O(r,s,o,c,i);if(203===c.kind&&e.isStringLiteralLike(s))return O(r,c,o,s,i);if(kp(n,s))return M(r,o,c,i);if(kp(n,c))return M(r,o,s,i);if(B&&(Mp(s,n)?r=I(r,o,c,i):Mp(c,n)&&(r=I(r,o,s,i))),C(s,t))return A(r,s,(function(e){return M(e,o,c,i)}));if(C(c,t))return A(r,c,(function(e){return M(e,o,s,i)}));if(Op(n,s)||Op(n,c))return t;break;case 97:return function(r,a,i){var o=Qp(a.left);if(!kp(n,o))return i&&B&&Mp(o,n)?Up(r,2097152):Ip(n,o)&&!function(n){return e.isAccessExpression(n)&&103===n.expression.kind&&!!(8&n.expression.flags)}(n)?t:r;var s,c=Oy(a.right);if(!Lu(c,an))return r;var l=ms(c,\"prototype\");if(l){var u=Ci(l);Wa(u)||(s=u)}if(Wa(r)&&(s===rn||s===an))return r;if(!s){var d=_s(c,1);s=d.length?Wc(e.map(d,(function(e){return ws(Ks(e))}))):je}return w(r,s,i,Lu)}(r,a,i);case 96:var l=Qp(a.right);if(e.isStringLiteralLike(a.left)&&kp(n,l))return k(r,a.left,i);break;case 27:return V(r,a.right,i)}return r}function I(e,n,t,r){var a=34===n||35===n;return(34===n||36===n?r:!r)===!(Vp(Oy(t))&(a?262144:65536))?Up(e,2097152):e}function M(e,n,t,r){if(1&e.flags)return e;35!==n&&37!==n||(r=!r);var a=Oy(t);if(2&e.flags&&r&&(36===n||37===n))return 67239932&a.flags?a:524288&a.flags?Ge:e;if(98304&a.flags)return B?Up(e,34===n||35===n?r?262144:2097152:65536&a.flags?r?131072:1048576:r?65536:524288):e;if(67637251&e.flags)return e;if(r){var i=am(e,34===n?function(e){return Au(e,a)||(n=a,0!=(524&e.flags)&&0!=(28&n.flags));var n}:function(e){return Au(e,a)});return 131072&i.flags?e:cm(i,a)}if(hd(a)){var o=Gl(a);return am(e,(function(e){return Gl(e)!==o}))}return e}function O(e,r,a,i,o){35!==a&&37!==a||(o=!o);var s=Qp(r.expression);if(!kp(n,s))return B&&Mp(s,n)&&o===(\"undefined\"!==i.text)?Up(e,2097152):Ip(n,s)?t:e;if(1&e.flags&&\"function\"===i.text)return e;var c=o?v.get(i.text)||128:h.get(i.text)||32768;return Up(o?om(e,(function(e){if(2&e.flags&&\"object\"===i.text)return Wc([Ge,Ee]);var n=\"function\"===i.text?an:wt.get(i.text);if(n){if(Su(e,n))return e;if(Su(n,e))return n;if(63176704&e.flags){var t=ts(e)||me;if(Su(n,t))return Zc([e,n])}}return e})):e,c)}function R(n,t,r,a,i){return r!==a&&e.every($p(t).slice(r,a),i)?Up(n,2097152):n}function P(n,t,r,a){var i=$p(t);if(!i.length)return n;var o=i.slice(r,a),s=r===a||e.contains(o,Oe);if(2&n.flags&&!s){for(var c=void 0,l=0;l<o.length;l+=1){var u=o[l];if(67239932&u.flags)void 0!==c&&c.push(u);else{if(!(524288&u.flags))return n;void 0===c&&(c=o.slice(0,l)),c.push(Ge)}}return Wc(void 0===c?o:c)}var d=Wc(o),p=131072&d.flags?Oe:cm(am(n,(function(e){return Au(d,e)})),d);if(!s)return p;var m=am(n,(function(n){return!(hd(n)&&e.contains(i,Gl(n)))}));return 131072&p.flags?m:Wc([p,m])}function w(e,n,t,r){if(!t)return am(e,(function(e){return!r(e,n)}));if(1048576&e.flags){var a=am(e,(function(e){return r(e,n)}));if(!(131072&a.flags))return a}return Su(n,e)?n:xu(e,n)?e:xu(n,e)?n:Zc([e,n])}function F(t,r,a){if(function(e,n){if(e.arguments)for(var t=0,r=e.arguments;t<r.length;t++){if(wp(n,r[t]))return!0}return!(193!==e.expression.kind||!wp(n,e.expression.expression))}(r,n)){var i=a||!e.isCallChain(r)?Em(r):void 0,o=i&&Ps(i);if(o&&(0===o.kind||1===o.kind))return G(t,o,r,a)}return t}function G(r,a,i,o){if(a.type&&(!Wa(r)||a.type!==rn&&a.type!==an)){var s=function(n,t){if(1===n.kind||3===n.kind)return t.arguments[n.parameterIndex];var r=e.skipParentheses(t.expression);return e.isAccessExpression(r)?e.skipParentheses(r.expression):void 0}(a,i);if(s){if(kp(n,s))return w(r,a.type,o,Su);if(B&&o&&Mp(s,n)&&!(65536&Vp(a.type)))return Up(r,2097152);if(Ip(n,s))return t}}return r}function V(r,a,i){if(e.isExpressionOfOptionalChainRoot(a)||e.isBinaryExpression(a.parent)&&60===a.parent.operatorToken.kind&&a.parent.left===a)return function(e,r,a){if(kp(n,r))return Up(e,a?2097152:262144);if(C(r,t))return A(e,r,(function(e){return Up(e,a?2097152:262144)}));if(Op(n,r))return t;return e}(r,a,i);switch(a.kind){case 75:case 103:case 101:case 193:case 194:return D(r,a,i);case 195:return F(r,a,i);case 199:return V(r,a.expression,i);case 208:return N(r,a,i);case 206:if(53===a.operator)return V(r,a.operand,!i)}return r}}function Dm(n){return e.findAncestor(n.parent,(function(n){return e.isFunctionLike(n)&&!e.getImmediatelyInvokedFunctionExpression(n)||249===n.kind||288===n.kind||158===n.kind}))}function km(n){var t,r=e.getRootDeclaration(n.valueDeclaration).parent,a=or(r);return 8388608&a.flags||(a.flags|=8388608,t=r,e.findAncestor(t.parent,(function(n){return e.isFunctionLike(n)&&!!(8388608&or(n).flags)}))||Nm(r)),n.isAssigned||!1}function Nm(n){if(75===n.kind){if(e.isAssignmentTarget(n)){var t=Ap(n);t.valueDeclaration&&155===e.getRootDeclaration(t.valueDeclaration).kind&&(t.isAssigned=!0)}}else e.forEachChild(n,Nm)}function Im(e){return 3&e.flags&&0!=(2&$f(e))&&Ci(e)!==gn}function Mm(e){var n=e.parent;return 193===n.kind||195===n.kind&&n.expression===e||194===n.kind&&n.expression===e||190===n.kind&&n.name===e&&!!n.initializer}function Om(e){return 58982400&e.flags&&oy(ts(e)||ye,98304)}function Rm(e,n){return e&&Mm(n)&&tm(e,Om)?om(Xd(e),rs):e}function Pm(n,t){Ar(n,111551)&&!Dp(t)&&(P.preserveConstEnums&&function(n){return!!e.findAncestor(n,(function(n){return n.parent&&e.isExportAssignment(n.parent)&&n.parent.expression===n&&e.isEntityNameExpression(n)}))}(t)||!hb(kr(n)))&&Ir(n)}function wm(n){var t=Ap(n);if(t===de)return ge;if(t===$){var r=e.getContainingFunction(n);return w<2&&(201===r.kind?Wt(n,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasModifier(r,256)&&Wt(n,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),or(r).flags|=8192,Ci(t)}n.parent&&e.isPropertyAccessExpression(n.parent)&&n.parent.expression===n||Pm(t,n);var a=na(t),i=a.valueDeclaration;if(32&a.flags)if(244===i.kind&&e.nodeIsDecorated(i))for(r=e.getContainingClass(n);void 0!==r;){if(r===i&&r.name!==n){or(i).flags|=16777216,or(n).flags|=33554432;break}r=e.getContainingClass(r)}else if(213===i.kind)for(r=e.getThisContainer(n,!1);288!==r.kind;){if(r.parent===i){158===r.kind&&e.hasModifier(r,32)&&(or(i).flags|=16777216,or(n).flags|=33554432);break}r=e.getThisContainer(r,!1)}!function(n,t){if(w>=2||0==(34&t.flags)||e.isSourceFile(t.valueDeclaration)||278===t.valueDeclaration.parent.kind)return;var r=e.getEnclosingBlockScopeContainer(t.valueDeclaration),a=function(n,t){return!!e.findAncestor(n,(function(n){return n===t?\"quit\":e.isFunctionLike(n)}))}(n.parent,r),i=r,o=!1;for(;i&&!e.nodeStartsNewLexicalEnvironment(i);){if(e.isIterationStatement(i,!1)){o=!0;break}i=i.parent}if(o){if(a){var s=!0;if(e.isForStatement(r)&&e.getAncestor(t.valueDeclaration,242).parent===r){var c=function(n,t){return e.findAncestor(n,(function(e){return e===t?\"quit\":e===t.initializer||e===t.condition||e===t.incrementor||e===t.statement}))}(n.parent,r);if(c){var l=or(c);l.flags|=131072;var u=l.capturedBlockScopeBindings||(l.capturedBlockScopeBindings=[]);e.pushIfUnique(u,t),c===r.initializer&&(s=!1)}}s&&(or(i).flags|=65536)}229===r.kind&&e.getAncestor(t.valueDeclaration,242).parent===r&&function(n,t){var r=n;for(;199===r.parent.kind;)r=r.parent;var a=!1;if(e.isAssignmentTarget(r))a=!0;else if(206===r.parent.kind||207===r.parent.kind){var i=r.parent;a=45===i.operator||46===i.operator}if(!a)return!1;return!!e.findAncestor(r,(function(e){return e===t?\"quit\":e===t.statement}))}(n,r)&&(or(t.valueDeclaration).flags|=4194304),or(t.valueDeclaration).flags|=524288}a&&(or(t.valueDeclaration).flags|=262144)}(n,t);var o=Rm(Ci(a),n),s=e.getAssignmentTargetKind(n);if(s){if(!(3&a.flags||e.isInJSFile(n)&&512&a.flags))return Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable,La(t)),ge;if(ny(a))return 3&a.flags?Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,La(t)):Wt(n,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,La(t)),ge}var c=2097152&a.flags;if(3&a.flags){if(1===s)return o}else{if(!c)return o;i=e.find(t.declarations,k)}if(!i)return o;for(var l=155===e.getRootDeclaration(i).kind,u=Dm(i),d=Dm(n),p=d!==u,m=n.parent&&n.parent.parent&&e.isSpreadAssignment(n.parent)&&zp(n.parent.parent),f=134217728&t.flags;d!==u&&(200===d.kind||201===d.kind||e.isObjectLiteralOrClassExpressionMethod(d))&&(Im(a)||l&&!km(a));)d=Dm(d);var _=l||c||p||m||f||e.isBindingElement(i)||o!==fe&&o!==gn&&(!B||0!=(16387&o.flags)||Dp(n)||261===n.parent.kind)||217===n.parent.kind||241===i.kind&&i.exclamationToken||8388608&i.flags,g=Am(n,o,_?l?function(e,n){return B&&155===n.kind&&n.initializer&&32768&Id(e)&&!(32768&Id(Py(n.initializer)))?Up(e,524288):e}(o,i):o:o===fe||o===gn?ve:Pd(o),d,!_);if(vm(n)||o!==fe&&o!==gn){if(!_&&!(32768&Id(o))&&32768&Id(g))return Wt(n,e.Diagnostics.Variable_0_is_used_before_being_assigned,La(t)),o}else if(g===fe||g===gn)return K&&(Wt(e.getNameOfDeclaration(i),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,La(t),Aa(g)),Wt(n,e.Diagnostics.Variable_0_implicitly_has_an_1_type,La(t),Aa(g))),Rv(g);return s?Ed(g):g}function Fm(e,n){(or(e).flags|=2,158===n.kind||161===n.kind)?or(n.parent).flags|=4:or(n).flags|=4}function Gm(n){return e.isSuperCall(n)?n:e.isFunctionLike(n)?void 0:e.forEachChild(n,Gm)}function Bm(e){var n=or(e);return void 0===n.hasSuperCall&&(n.superCall=Gm(e.body),n.hasSuperCall=!!n.superCall),n.superCall}function Vm(e){return Bi(Yi(Yr(e)))===Te}function Um(n,t,r){var a=t.parent;if(e.getClassExtendsHeritageElement(a)&&!Vm(a)){var i=Bm(t);(!i||i.end>n.pos)&&Wt(n,r)}}function jm(n){var t=e.getThisContainer(n,!0),r=!1;switch(161===t.kind&&Um(n,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),201===t.kind&&(t=e.getThisContainer(t,!1),r=!0),t.kind){case 248:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 247:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 161:Hm(n,t)&&Wt(n,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 158:case 157:e.hasModifier(t,32)&&Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);break;case 153:Wt(n,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name)}r&&w<2&&Fm(n,t);var a=Km(n,!0,t);if(H){var i=Ci(Q);if(a===i&&r)Wt(n,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!a){var o=Wt(n,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var s=Km(t);s&&s!==i&&e.addRelatedInfo(o,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return a||me}function Km(n,t,r){void 0===t&&(t=!0),void 0===r&&(r=e.getThisContainer(n,!1));var a=e.isInJSFile(n);if(e.isFunctionLike(r)&&(!Qm(n)||e.getThisParameter(r))){var i=function(n){if(200===n.kind&&e.isBinaryExpression(n.parent)&&3===e.getAssignmentDeclarationKind(n.parent))return n.parent.left.expression.expression;if(160===n.kind&&192===n.parent.kind&&e.isBinaryExpression(n.parent.parent)&&6===e.getAssignmentDeclarationKind(n.parent.parent))return n.parent.parent.left.expression;if(200===n.kind&&279===n.parent.kind&&192===n.parent.parent.kind&&e.isBinaryExpression(n.parent.parent.parent)&&6===e.getAssignmentDeclarationKind(n.parent.parent.parent))return n.parent.parent.parent.left.expression;if(200===n.kind&&e.isPropertyAssignment(n.parent)&&e.isIdentifier(n.parent.name)&&(\"value\"===n.parent.name.escapedText||\"get\"===n.parent.name.escapedText||\"set\"===n.parent.name.escapedText)&&e.isObjectLiteralExpression(n.parent.parent)&&e.isCallExpression(n.parent.parent.parent)&&n.parent.parent.parent.arguments[2]===n.parent.parent&&9===e.getAssignmentDeclarationKind(n.parent.parent.parent))return n.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(n)&&e.isIdentifier(n.name)&&(\"value\"===n.name.escapedText||\"get\"===n.name.escapedText||\"set\"===n.name.escapedText)&&e.isObjectLiteralExpression(n.parent)&&e.isCallExpression(n.parent.parent)&&n.parent.parent.arguments[2]===n.parent&&9===e.getAssignmentDeclarationKind(n.parent.parent))return n.parent.parent.arguments[0].expression}(r);if(a&&i){var o=Py(i).symbol;if(o&&o.members&&16&o.flags)return Am(n,Yi(o).thisType)}else if(a&&(200===r.kind||243===r.kind)&&e.getJSDocClassTag(r)){return Am(n,Yi(Xr(r.symbol)).thisType)}var s=hi(r)||Jm(r);if(s)return Am(n,s)}if(e.isClassLike(r.parent)){var c,l=Yr(r.parent);return Am(n,c=e.hasModifier(r,32)?Ci(l):Yi(l).thisType)}if(a&&((c=function(n){var t=e.getJSDocType(n);if(t&&298===t.kind){var r=t;if(r.parameters.length>0&&r.parameters[0].name&&\"this\"===r.parameters[0].name.escapedText)return Kl(r.parameters[0].type)}var a=e.getJSDocThisTag(n);if(a&&a.typeExpression)return Kl(a.typeExpression)}(r))&&c!==ge))return Am(n,c);if(e.isSourceFile(r)){if(r.commonJsModuleIndicator){var u=Yr(r);return u&&Ci(u)}if(t)return Ci(Q)}}function Hm(n,t){return!!e.findAncestor(n,(function(n){return e.isFunctionLikeDeclaration(n)?\"quit\":155===n.kind&&n.parent===t}))}function Wm(n){var t=195===n.parent.kind&&n.parent.expression===n,r=e.getSuperContainer(n,!0),a=!1;if(!t)for(;r&&201===r.kind;)r=e.getSuperContainer(r,!0),a=w<2;var i=0;if(!function(n){if(!n)return!1;if(t)return 161===n.kind;if(e.isClassLike(n.parent)||192===n.parent.kind)return e.hasModifier(n,32)?160===n.kind||159===n.kind||162===n.kind||163===n.kind:160===n.kind||159===n.kind||162===n.kind||163===n.kind||158===n.kind||157===n.kind||161===n.kind;return!1}(r)){var o=e.findAncestor(n,(function(e){return e===r?\"quit\":153===e.kind}));return o&&153===o.kind?Wt(n,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):t?Wt(n,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):r&&r.parent&&(e.isClassLike(r.parent)||192===r.parent.kind)?Wt(n,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class):Wt(n,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions),ge}if(t||161!==r.kind||Um(n,r,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),i=e.hasModifier(r,32)||t?512:256,or(n).flags|=i,160===r.kind&&e.hasModifier(r,256)&&(e.isSuperProperty(n.parent)&&e.isAssignmentTarget(n.parent)?or(r).flags|=4096:or(r).flags|=2048),a&&Fm(n.parent,r),192===r.parent.kind)return w<2?(Wt(n,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),ge):me;var s=r.parent;if(!e.getClassExtendsHeritageElement(s))return Wt(n,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),ge;var c=Yi(Yr(s)),l=c&&Vi(c)[0];return l?161===r.kind&&Hm(n,r)?(Wt(n,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),ge):512===i?Bi(c):go(l,c.thisType):ge}function zm(n){return 4&e.getObjectFlags(n)&&n.target===fn?ic(n)[0]:void 0}function qm(n){return om(n,(function(n){return 2097152&n.flags?e.forEach(n.types,zm):zm(n)}))}function Jm(n){if(201!==n.kind){if(yu(n)){var t=Ef(n);if(t){var r=t.thisParameter;if(r)return Ci(r)}}var a=e.isInJSFile(n);if(H||a){var i=function(e){return 160!==e.kind&&162!==e.kind&&163!==e.kind||192!==e.parent.kind?200===e.kind&&279===e.parent.kind?e.parent.parent:void 0:e.parent}(n);if(i){for(var o=df(i),s=i,c=o;c;){var l=qm(c);if(l)return uu(l,sp(_f(i)));if(279!==s.parent.kind)break;c=df(s=s.parent.parent)}return Xd(o?wd(o):hy(i))}var u=n.parent;if(208===u.kind&&62===u.operatorToken.kind){var d=u.left;if(193===d.kind||194===d.kind){var p=d.expression;if(a&&e.isIdentifier(p)){var m=e.getSourceFileOfNode(u);if(m.commonJsModuleIndicator&&Ap(p)===m.symbol)return}return Xd(hy(p))}}}}}function Xm(n,t){var r=n.parent;if(yu(r)){var a=e.getImmediatelyInvokedFunctionExpression(r);if(a&&a.arguments){var i=J_(a),o=r.parameters.indexOf(n);if(n.dotDotDotToken)return j_(i,o,i.length,me,void 0);var s=or(a),c=s.resolvedSignature;s.resolvedSignature=Jn;var l=o<i.length?Td(Py(i[o])):n.initializer?void 0:he;return s.resolvedSignature=c,l}var u=Ef(r);if(u){if(t){if(Qg(r),Wa(l=Ci(Xr(r.symbol))))return l;u=_s(l,0)[0]}var d=r.parameters.indexOf(n)-(e.getThisParameter(r)?1:0);return n.dotDotDotToken&&e.lastOrUndefined(r.parameters)===n?kg(u,d):Dg(u,d)}}}function Ym(n){var t=e.getEffectiveTypeAnnotationNode(n);if(t)return Kl(t);switch(n.kind){case 155:return Xm(n,!1);case 190:return function(n){var t=n.parent.parent,r=n.propertyName||n.name,a=Ym(t);if(a&&!e.isBindingPattern(r)&&!qa(r)){var i=el(r);if(io(i)){var o=uo(i);return Ha(a,o)}}}(n)}}function Qm(n){for(var t=!1;n.parent&&!e.isFunctionLike(n.parent);){if(e.isParameter(n.parent)&&(t||n.parent.initializer===n))return!0;e.isBindingElement(n.parent)&&n.parent.initializer===n&&(t=!0),n=n.parent}return!1}function Zm(n,t){var r=!!(2&e.getFunctionFlags(t)),a=$m(t);if(a)return mh(n,a,r)||void 0}function $m(e){var n=Fs(e);if(n)return n;var t=bf(e);return t&&!Gs(t)?ws(t):void 0}function ef(e,n,t){var r=J_(e).indexOf(n);return-1===r?void 0:nf(e,r,t)}function nf(n,t,r){var a=or(n).resolvedSignature===Yn?Yn:fg(n);if(e.isJsxOpeningLikeElement(n)&&0===t)return gf(a,n);if(r&&4&r&&a.target){var i=Ws(a.target);return Ao(Ag(a,t),Ag(i,t))}return Ag(a,t)}function tf(n,t){var r=n.parent,a=r.left,i=r.operatorToken,o=r.right;switch(i.kind){case 62:if(n!==o)return;var s=function(n){var t=e.getAssignmentDeclarationKind(n);switch(t){case 0:return!0;case 5:case 1:case 6:case 3:if(n.left.symbol){var r=n.left.symbol.valueDeclaration;if(!r)return!1;var a=e.cast(n.left,e.isAccessExpression),i=e.getEffectiveTypeAnnotationNode(r);if(i)return Kl(i);if(e.isIdentifier(a.expression)){var o=a.expression,s=ur(o,o.escapedText,111551,void 0,o.escapedText,!0);if(s){if(l=e.getEffectiveTypeAnnotationNode(s.valueDeclaration)){var c=e.getElementOrPropertyAccessName(a);if(void 0!==c)return(u=rf(Kl(l),c))||!1}return!1}}return!e.isInJSFile(r)}return!0;case 2:case 4:if(!n.symbol)return!0;var l,u;if(n.symbol.valueDeclaration)if(l=e.getEffectiveTypeAnnotationNode(n.symbol.valueDeclaration))if(u=Kl(l))return u;if(2===t)return!1;var d=e.cast(n.left,e.isAccessExpression);if(!e.isObjectLiteralMethod(e.getThisContainer(d.expression,!1)))return!1;var p=jm(d.expression),m=e.getElementOrPropertyAccessName(d);return void 0!==m&&p&&rf(p,m)||!1;case 7:case 8:case 9:return e.Debug.fail(\"Does not apply\");default:return e.Debug.assertNever(t)}}(r);if(!s)return;return!0===s?Oy(a):s;case 56:case 60:var c=ff(r,t);return n===o&&(c&&c.pattern||!c&&!e.isDefaultedExpandoInitializer(r))?Oy(a):c;case 55:case 27:return n===o?ff(r,t):void 0;default:return}}function rf(n,t){return om(n,(function(n){if(Ho(n)){var r=wo(n),a=ts(r)||r,i=Vl(e.unescapeLeadingUnderscores(t));if(xu(i,a))return gl(n,i)}else if(3670016&n.flags){var o=ms(n,t);if(o)return Ci(o);if(Cd(n)){var s=Ad(n);if(s&&Df(t)&&+t>=0)return s}return Df(t)&&af(n,1)||af(n,0)}}),!0)}function af(e,n){return om(e,(function(e){return ys(e,n)}),!0)}function of(e,n){var t=df(e.parent,n);if(t){if(!lo(e)){var r=rf(t,Yr(e).escapedName);if(r)return r}return Cf(e.name)&&af(t,1)||af(t,0)}}function sf(e,n){return e&&(rf(e,\"\"+n)||qv(1,e,ve,void 0,!1))}function cf(n){var t=n.parent;return e.isJsxAttributeLike(t)?ff(n):e.isJsxElement(t)?function(e,n){var t=df(e.openingElement.tagName),r=Kf(Uf(e));if(t&&!Wa(t)&&r&&\"\"!==r){var a=Pu(e.children),i=a.indexOf(n),o=rf(t,r);return o&&(1===a.length?o:om(o,(function(e){return fd(e)?yl(e,Vl(i)):e}),!0))}}(t,n):void 0}function lf(n){if(e.isJsxAttribute(n)){var t=df(n.parent);if(!t||Wa(t))return;return rf(t,n.name.escapedText)}return ff(n.parent)}function uf(e){switch(e.kind){case 10:case 8:case 9:case 14:case 105:case 90:case 99:case 75:case 145:return!0;case 193:case 199:return uf(e.expression);case 274:return!e.expression||uf(e.expression)}return!1}function df(n,t){var r=pf(e.isObjectLiteralMethod(n)?function(n,t){if(e.Debug.assert(e.isObjectLiteralMethod(n)),!(16777216&n.flags))return of(n,t)}(n,t):ff(n,t),n,t);if(r&&!(t&&2&t&&8650752&r.flags)){var a=om(r,ls,!0);if(1048576&a.flags){if(e.isObjectLiteralExpression(n))return function(n,t){return Ju(t,e.map(e.filter(n.properties,(function(e){return!!e.symbol&&279===e.kind&&uf(e.initializer)&&Rp(t,e.symbol.escapedName)})),(function(e){return[function(){return Py(e.initializer)},e.symbol.escapedName]})),xu,t)}(n,a);if(e.isJsxAttributes(n))return function(n,t){return Ju(t,e.map(e.filter(n.properties,(function(e){return!!e.symbol&&271===e.kind&&Rp(t,e.symbol.escapedName)&&(!e.initializer||uf(e.initializer))})),(function(e){return[e.initializer?function(){return Py(e.initializer)}:function(){return De},e.symbol.escapedName]})),xu,t)}(n,a)}return a}}function pf(n,t,r){if(n&&oy(n,63176704)){var a=_f(t);if(a&&e.some(a.inferences,ky)){if(r&&1&r)return mf(n,a.nonFixingMapper);if(a.returnMapper)return mf(n,a.returnMapper)}}return n}function mf(n,t){return 63176704&n.flags?uu(n,t):1048576&n.flags?Wc(e.map(n.types,(function(e){return mf(e,t)})),0):2097152&n.flags?Zc(e.map(n.types,(function(e){return mf(e,t)}))):n}function ff(n,t){if(!(16777216&n.flags)){if(n.contextualType)return n.contextualType;var r=n.parent;switch(r.kind){case 241:case 155:case 158:case 157:case 190:return function(n){var t=n.parent;if(e.hasInitializer(t)&&n===t.initializer){var r=Ym(t);if(r)return r;if(e.isBindingPattern(t.name))return di(t.name,!0,!1)}}(n);case 201:case 234:return function(n){var t=e.getContainingFunction(n);if(t){var r=e.getFunctionFlags(t);if(1&r)return;var a=$m(t);if(a){if(2&r){var i=tv(a);return i&&Wc([i,Vg(i)])}return a}}}(n);case 211:return function(n){var t=e.getContainingFunction(n);if(t){var r=e.getFunctionFlags(t),a=$m(t);if(a)return n.asteriskToken?a:mh(0,a,0!=(2&r))}}(r);case 205:return function(e){var n=ff(e);if(n){var t=iv(n);return t&&Wc([t,Vg(t)])}}(r);case 195:if(95===r.expression.kind)return Se;case 196:return ef(r,n,t);case 198:case 216:return e.isConstTypeReference(r.type)?void 0:Kl(r.type);case 208:return tf(n,t);case 279:case 280:return of(r,t);case 281:return df(r.parent,t);case 191:var a=r;return sf(df(a,t),e.indexOfNode(a.elements,n));case 209:return function(e,n){var t=e.parent;return e===t.whenTrue||e===t.whenFalse?ff(t,n):void 0}(n,t);case 220:return e.Debug.assert(210===r.parent.kind),function(e,n){if(197===e.parent.kind)return ef(e.parent,n)}(r.parent,n);case 199:var i=e.isInJSFile(r)?e.getJSDocTypeTag(r):void 0;return i?Kl(i.typeExpression.type):ff(r,t);case 274:return cf(r);case 271:case 273:return lf(r);case 266:case 265:return function(n){if(e.isJsxOpeningElement(n)&&n.parent.contextualType)return n.parent.contextualType;return nf(n,0)}(r)}}}function _f(n){var t=e.findAncestor(n,(function(e){return!!e.inferenceContext}));return t&&t.inferenceContext}function gf(n,t){return 0!==H_(t)?function(e,n){var t=wg(e,ye);t=yf(n,Uf(n),t);var r=Bf(T.IntrinsicAttributes,n);r!==ge&&(t=Ao(r,t));return t}(n,t):function(n,t){var r=Uf(t),a=(o=r,jf(T.ElementAttributesPropertyNameContainer,o)),i=void 0===a?wg(n,ye):\"\"===a?ws(n):function(e,n){if(e.unionSignatures){for(var t=[],r=0,a=e.unionSignatures;r<a.length;r++){var i=ws(a[r]);if(Wa(i))return i;var o=Ha(i,n);if(!o)return;t.push(o)}return Zc(t)}var s=ws(e);return Wa(s)?s:Ha(s,n)}(n,a);var o;if(!i)return a&&e.length(t.attributes.properties)&&Wt(t,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(a)),ye;if(Wa(i=yf(t,r,i)))return i;var s=i,c=Bf(T.IntrinsicClassAttributes,t);if(c!==ge){var l=Oi(c.symbol),u=ws(n);s=Ao(l?tc(c,ks([u],l,Ds(l),e.isInJSFile(t))):c,s)}var d=Bf(T.IntrinsicAttributes,t);return d!==ge&&(s=Ao(d,s)),s}(n,t)}function yf(n,t,r){var a,i=(a=t)&&cr(a.exports,T.LibraryManagedAttributes,788968);if(i){var o=Yi(i),s=function(e){if(Pf(e.tagName))return zs(dg(e,n=Wf(e)));var n,t=hy(e.tagName);return 128&t.flags?(n=Hf(t,e))?zs(dg(e,n)):ge:t}(n);if(e.length(o.typeParameters)>=2)return tc(o,c=ks([s,r],o.typeParameters,2,e.isInJSFile(n)));if(e.length(o.aliasTypeArguments)>=2){var c=ks([s,r],o.aliasTypeArguments,2,e.isInJSFile(n));return cc(o.aliasSymbol,c)}}return r}function vf(n,t){var r=_s(n,0);if(1===r.length){var a=r[0];if(!function(n,t){for(var r=0;r<t.parameters.length;r++){var a=t.parameters[r];if(a.initializer||a.questionToken||a.dotDotDotToken||Ss(a))break}t.parameters.length&&e.parameterIsThisKeyword(t.parameters[0])&&r--;return!Mg(n)&&Ng(n)<r}(a,t))return a}}function hf(e){return 200===e.kind||201===e.kind}function bf(n){return hf(n)||e.isObjectLiteralMethod(n)?Ef(n):void 0}function Ef(n){e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n));var t=Is(n);if(t)return t;var r=df(n,1);if(r){if(!(1048576&r.flags))return vf(r,n);for(var a,i=0,o=r.types;i<o.length;i++){var s=vf(o[i],n);if(s)if(a){if(!ld(a[0],s,!1,!0,!0,bu))return;a.push(s)}else a=[s]}return a?1===a.length?a[0]:bo(a[0],a):void 0}}function Tf(e){return 190===e.kind&&!!e.initializer||208===e.kind&&62===e.operatorToken.kind}function Sf(n,t,r){for(var a=n.elements,i=a.length,o=!1,s=[],c=e.isAssignmentTarget(n),l=df(n),u=Sy(n),d=0;d<i;d++){var p=a[d];if(c&&212===p.kind){var m=Py(p.expression,t,r),f=hs(m,1)||qv(65,m,ve,void 0,!1);f&&s.push(f)}else{var _=xy(p,t,sf(l,d),r);s.push(_)}d<i-1&&212===p.kind&&(o=!0)}if(!o){var g=i>0&&212===a[i-1].kind,y=i-(g?1:0),v=void 0;if(c&&y>0)return(_=rc(Fc(s,y,g))).pattern=n,_;if(v=Lf(s,l,g,i,u))return xf(v);if(r)return xf(Fc(s,y,g))}return xf(Oc(s.length?Wc(s,2):B?we:he,u))}function xf(n){if(!(4&e.getObjectFlags(n)))return n;var t=n.literalType;return t||((t=n.literalType=rc(n)).objectFlags|=589824),t}function Lf(e,n,t,r,a){if(void 0===r&&(r=e.length),void 0===a&&(a=!1),a||n&&tm(n,gd))return Fc(e,r-(t?1:0),t,a)}function Cf(e){switch(e.kind){case 153:return function(e){return sy(kf(e),296)}(e);case 75:return Df(e.escapedText);case 8:case 10:return Df(e.text);default:return!1}}function Af(e){return\"Infinity\"===e||\"-Infinity\"===e||\"NaN\"===e}function Df(e){return(+e).toString()===e}function kf(n){var t=or(n.expression);return t.resolvedType||(t.resolvedType=Py(n.expression),98304&t.resolvedType.flags||!sy(t.resolvedType,12716)&&!xu(t.resolvedType,Be)?Wt(n,e.Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any):D_(n.expression,t.resolvedType,!0)),t.resolvedType}function Nf(e,n,t,r){for(var a=[],i=0;i<t.length;i++)(0===r||Cf(e.properties[i+n].name))&&a.push(Ci(t[i]));return Xs(a.length?Wc(a,2):ve,Sy(e))}function If(n){e.Debug.assert(0!=(2097152&n.flags),\"Should only get Alias here.\");var t=ir(n);if(!t.immediateTarget){var r=hr(n);if(!r)return e.Debug.fail();t.immediateTarget=Cr(r,!0)}return t.immediateTarget}function Mf(n,t){var r,a=e.isAssignmentTarget(n);!function(n,t){for(var r=e.createUnderscoreEscapedMap(),a=0,i=n.properties;a<i.length;a++){var o=i[a];if(281!==o.kind){var s=o.name;if(153===s.kind&&Zb(s),280===o.kind&&!t&&o.objectAssignmentInitializer)return pE(o.equalsToken,e.Diagnostics.can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment);if(o.modifiers)for(var c=0,l=o.modifiers;c<l.length;c++){var u=l[c];125===u.kind&&160===o.kind||pE(u,e.Diagnostics._0_modifier_cannot_be_used_here,e.getTextOfNode(u))}var d=void 0;switch(o.kind){case 280:nE(o.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context);case 279:eE(o.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional),8===s.kind&&_E(s),d=4;break;case 160:d=8;break;case 162:d=1;break;case 163:d=2;break;default:throw e.Debug.assertNever(o,\"Unexpected syntax kind:\"+o.kind)}var p=e.getPropertyNameForPropertyNameNode(s);if(void 0!==p){var m=r.get(p);if(m)if(12&d&&12&m)pE(s,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(s));else{if(!(3&d&&3&m))return pE(s,e.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);if(3===m||d===m)return pE(s,e.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);r.set(p,d|m)}else r.set(p,d)}}else if(t){var f=e.skipParentheses(o.expression);if(e.isArrayLiteralExpression(f)||e.isObjectLiteralExpression(f))return pE(o.expression,e.Diagnostics.A_rest_element_cannot_contain_a_binding_pattern)}}}(n,a);var i=[],o=je,s=df(n),c=s&&s.pattern&&(188===s.pattern.kind||192===s.pattern.kind),l=Sy(n),u=l?8:0,d=e.isInJSFile(n)&&!e.isInJsonFile(n),p=e.getJSDocEnumTag(n),m=!s&&d&&!p,f=z,_=!1,g=!1,y=!1;r=e.createSymbolTable();for(var v=0,h=0;h<n.properties.length;h++){var b=n.properties[h],E=Yr(b),T=b.name&&153===b.name.kind&&!e.isWellKnownSymbolSyntactically(b.name.expression)?kf(b.name):void 0;if(279===b.kind||280===b.kind||e.isObjectLiteralMethod(b)){var S=279===b.kind?Ly(b,t):280===b.kind?xy(b.name,t):Cy(b,t);if(d){var x=$a(b);x?(Du(S,x,b),S=x):p&&p.typeExpression&&Du(S,Kl(p.typeExpression),b)}f|=1835008&e.getObjectFlags(S);var L=T&&io(T)?T:void 0,C=L?Xt(4|E.flags,uo(L),4096|u):Xt(4|E.flags,E.escapedName,u);if(L&&(C.nameType=L),a)(279===b.kind&&Tf(b.initializer)||280===b.kind&&b.objectAssignmentInitializer)&&(C.flags|=16777216);else if(c&&!(512&e.getObjectFlags(s))){var A=ms(s,E.escapedName);A?C.flags|=16777216&A.flags:P.suppressExcessPropertyErrors||vs(s,0)||Wt(b.name,e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,La(E),Aa(s))}C.declarations=E.declarations,C.parent=E.parent,E.valueDeclaration&&(C.valueDeclaration=E.valueDeclaration),C.type=S,C.target=E,E=C}else{if(281===b.kind){if(w<2&&Vb(b,2),i.length>0&&(o=Ml(o,N(),n.symbol,f,l),i=[],r=e.createSymbolTable(),g=!1,y=!1),!Of(S=Py(b.expression)))return Wt(b,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),ge;o=Ml(o,S,n.symbol,f,l),v=h+1;continue}e.Debug.assert(162===b.kind||163===b.kind),jh(b)}!T||8576&T.flags?r.set(E.escapedName,E):xu(T,Be)&&(xu(T,xe)?y=!0:g=!0,a&&(_=!0)),i.push(E)}if(c)for(var D=0,k=Xo(s);D<k.length;D++){C=k[D];r.get(C.escapedName)||o&&ms(o,C.escapedName)||(16777216&C.flags||Wt(C.valueDeclaration||C.bindingElement,e.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value),r.set(C.escapedName,C),i.push(C))}return o!==je?(i.length>0&&(o=Ml(o,N(),n.symbol,f,l)),o):N();function N(){var t=g?Nf(n,v,i,0):void 0,o=y?Nf(n,v,i,1):void 0,s=pa(n.symbol,r,e.emptyArray,e.emptyArray,t,o);return s.objectFlags|=524416|f,m&&(s.objectFlags|=16384),_&&(s.objectFlags|=512),a&&(s.pattern=n),s}}function Of(n){if(63176704&n.flags){var t=ts(n);if(void 0!==t)return Of(t)}return!!(126615553&n.flags||117632&Id(n)&&Of(Md(n))||3145728&n.flags&&e.every(n.types,Of))}function Rf(n){return!e.stringContains(n,\"-\")}function Pf(n){return 75===n.kind&&e.isIntrinsicJsxName(n.escapedText)}function wf(e,n){return e.initializer?xy(e.initializer,n):De}function Ff(e,n){for(var t=[],r=0,a=e.children;r<a.length;r++){var i=a[r];11===i.kind?i.containsOnlyTriviaWhiteSpaces||t.push(Se):t.push(xy(i,n))}return t}function Gf(n,t){return function(n,t){for(var r,a=n.attributes,i=e.createSymbolTable(),o=Ke,s=!1,c=!1,l=4096,u=Kf(Uf(n)),d=0,p=a.properties;d<p.length;d++){var m=p[d],f=m.symbol;if(e.isJsxAttribute(m)){var _=wf(m,t);l|=1835008&e.getObjectFlags(_);var g=Xt(33554436|f.flags,f.escapedName);g.declarations=f.declarations,g.parent=f.parent,f.valueDeclaration&&(g.valueDeclaration=f.valueDeclaration),g.type=_,g.target=f,i.set(g.escapedName,g),m.name.escapedText===u&&(c=!0)}else{e.Debug.assert(273===m.kind),i.size>0&&(o=Ml(o,S(),a.symbol,l,!1),i=e.createSymbolTable()),Wa(_=hy(m.expression,t))&&(s=!0),Of(_)?o=Ml(o,_,a.symbol,l,!1):r=r?Zc([r,_]):_}}s||i.size>0&&(o=Ml(o,S(),a.symbol,l,!1));var y=264===n.parent.kind?n.parent:void 0;if(y&&y.openingElement===n&&y.children.length>0){var v=Ff(y,t);if(!s&&u&&\"\"!==u){c&&Wt(a,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores(u));var h=df(n.attributes),b=h&&rf(h,u),E=Xt(33554436,u);E.type=1===v.length?v[0]:Lf(v,b,!1)||Oc(Wc(v)),E.valueDeclaration=e.createPropertySignature(void 0,e.unescapeLeadingUnderscores(u),void 0,void 0,void 0),E.valueDeclaration.parent=a,E.valueDeclaration.symbol=E;var T=e.createSymbolTable();T.set(u,E),o=Ml(o,pa(a.symbol,T,e.emptyArray,e.emptyArray,void 0,void 0),a.symbol,l,!1)}}return s?me:r&&o!==Ke?Zc([r,o]):r||(o===Ke?S():o);function S(){l|=z;var n=pa(a.symbol,i,e.emptyArray,e.emptyArray,void 0,void 0);return n.objectFlags|=524416|l,n}}(n.parent,t)}function Bf(e,n){var t=Uf(n),r=t&&Wr(t),a=r&&cr(r,e,788968);return a?Yi(a):ge}function Vf(n){var t=or(n);if(!t.resolvedSymbol){var r=Bf(T.IntrinsicElements,n);if(r!==ge){if(!e.isIdentifier(n.tagName))return e.Debug.fail();var a=ms(r,n.tagName.escapedText);return a?(t.jsxFlags|=1,t.resolvedSymbol=a):hs(r,0)?(t.jsxFlags|=2,t.resolvedSymbol=r.symbol):(Wt(n,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.idText(n.tagName),\"JSX.\"+T.IntrinsicElements),t.resolvedSymbol=de)}return K&&Wt(n,e.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists,e.unescapeLeadingUnderscores(T.IntrinsicElements)),t.resolvedSymbol=de}return t.resolvedSymbol}function Uf(e){var n=e&&or(e);if(n&&n.jsxNamespace)return n.jsxNamespace;if(!n||!1!==n.jsxNamespace){var t=Ht(e),r=ur(e,t,1920,void 0,t,!1);if(r){var a=Dr(cr(Wr(Dr(r)),T.JSX,1920));if(a)return n&&(n.jsxNamespace=a),a;n&&(n.jsxNamespace=!1)}}return Sc(T.JSX,1920,void 0)}function jf(n,t){var r=t&&cr(t.exports,n,788968),a=r&&Yi(r),i=a&&Xo(a);if(i){if(0===i.length)return\"\";if(1===i.length)return i[0].escapedName;i.length>1&&Wt(r.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(n))}}function Kf(e){return jf(T.ElementChildrenAttributeNameContainer,e)}function Hf(n,t){var r=Bf(T.IntrinsicElements,t);if(r!==ge){var a=n.value,i=ms(r,e.escapeLeadingUnderscores(a));if(i)return Ci(i);var o=hs(r,0);return o||void 0}return me}function Wf(n){e.Debug.assert(Pf(n.tagName));var t=or(n);if(!t.resolvedJsxElementAttributesType){var r=Vf(n);return 1&t.jsxFlags?t.resolvedJsxElementAttributesType=Ci(r):2&t.jsxFlags?t.resolvedJsxElementAttributesType=Ys(r,0).type:t.resolvedJsxElementAttributesType=ge}return t.resolvedJsxElementAttributesType}function zf(e){var n=Bf(T.ElementClass,e);if(n!==ge)return n}function qf(e){return Bf(T.Element,e)}function Jf(e){var n=qf(e);if(n)return Wc([n,Ee])}function Xf(n){var t,r=e.isJsxOpeningLikeElement(n);r&&function(n){Jb(n,n.typeArguments);for(var t=e.createUnderscoreEscapedMap(),r=0,a=n.attributes.properties;r<a.length;r++){var i=a[r];if(273!==i.kind){var o=i.name,s=i.initializer;if(t.get(o.escapedText))return pE(o,e.Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);if(t.set(o.escapedText,!0),s&&274===s.kind&&!s.expression)return pE(s,e.Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression)}}}(n),t=n,0===(P.jsx||0)&&Wt(t,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),void 0===qf(t)&&K&&Wt(t,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);var a=Rt&&2===P.jsx?e.Diagnostics.Cannot_find_name_0:void 0,i=Ht(n),o=ur(r?n.tagName:n,i,111551,a,i,!0);if(o&&(o.isReferenced=67108863,2097152&o.flags&&Ir(o)),r){var s=fg(n);!function(n,t,r){if(1===n)(a=Jf(r))&&qu(t,a,Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements);else if(0===n){(i=zf(r))&&qu(t,i,Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements)}else{var a=Jf(r),i=zf(r);if(!a||!i)return;qu(t,Wc([a,i]),Bt,r,e.Diagnostics.JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements)}}(H_(n),ws(s),n)}}function Yf(e,n,t){if(524288&e.flags){var r=Wo(e);if(r.stringIndexInfo||r.numberIndexInfo&&Df(n)||qo(e,n)||t&&!Rf(n))return!0}else if(3145728&e.flags&&Qf(e))for(var a=0,i=e.types;a<i.length;a++){if(Yf(i[a],n,t))return!0}return!1}function Qf(n){return!!(524288&n.flags&&!(512&e.getObjectFlags(n))||67108864&n.flags||1048576&n.flags&&e.some(n.types,Qf)||2097152&n.flags&&e.every(n.types,Qf))}function Zf(n,t){if(function(n){if(n.expression&&e.isCommaSequence(n.expression))pE(n.expression,e.Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array)}(n),n.expression){var r=Py(n.expression,t);return n.dotDotDotToken&&r!==me&&!dd(r)&&Wt(n,e.Diagnostics.JSX_spread_child_must_be_an_array_type),r}return ge}function $f(n){return n.valueDeclaration?e.getCombinedNodeFlags(n.valueDeclaration):0}function e_(n){if(8192&n.flags||4&e.getCheckFlags(n))return!0;if(e.isInJSFile(n.valueDeclaration)){var t=n.valueDeclaration.parent;return t&&e.isBinaryExpression(t)&&3===e.getAssignmentDeclarationKind(t)}}function n_(n,t,r,a){var i,o=e.getDeclarationModifierFlagsFromSymbol(a),s=152===n.kind?n.right:187===n.kind?n:n.name;if(1024&e.getCheckFlags(a))return Wt(s,e.Diagnostics.Property_0_has_conflicting_declarations_and_is_inaccessible_in_type_1,La(a),Aa(r)),!1;if(t){if(w<2&&t_(a))return Wt(s,e.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword),!1;if(128&o)return Wt(s,e.Diagnostics.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression,La(a),Aa(id(a))),!1}if(128&o&&e.isThisProperty(n)&&t_(a)&&((i=e.getClassLikeDeclarationOfSymbol(Qr(a)))&&function(n){return!!e.findAncestor(n,(function(n){return!!(e.isConstructorDeclaration(n)&&e.nodeIsPresent(n.body)||e.isPropertyDeclaration(n))||!(!e.isClassLike(n)&&!e.isFunctionLikeDeclaration(n))&&\"quit\"}))}(n)))return Wt(s,e.Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor,La(a),e.getTextOfIdentifierOrLiteral(i.name)),!1;if(!(24&o))return!0;if(8&o)return!!Zh(n,i=e.getClassLikeDeclarationOfSymbol(Qr(a)))||(Wt(s,e.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1,La(a),Aa(id(a))),!1);if(t)return!0;var c=Qh(n,(function(n){var t=Yi(Yr(n));return function(n,t){return ad(t,(function(t){return!!(16&e.getDeclarationModifierFlagsFromSymbol(t))&&!ki(n,id(t))}))?void 0:n}(t,a)?t:void 0}));if(!c){var l=void 0;if(32&o||!(l=function(n){var t=e.getThisContainer(n,!1);return t&&e.isFunctionLike(t)?e.getThisParameter(t):void 0}(n))||!l.type)return Wt(s,e.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses,La(a),Aa(id(a)||r)),!1;var u=Kl(l.type);c=262144&u.flags?Qo(u):u}return!!(32&o)||(262144&r.flags&&(r=r.isThisType?Qo(r):ts(r)),!(!r||!ki(r,c))||(Wt(s,e.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1,La(a),Aa(c)),!1))}function t_(e){return!!ad(e,(function(e){return!(8192&e.flags)}))}function r_(e){return l_(Py(e),e)}function a_(e){return!!(98304&(B?Id(e):e.flags))}function i_(e){return a_(e)?wd(e):e}function o_(n,t){Wt(n,32768&t?65536&t?e.Diagnostics.Object_is_possibly_null_or_undefined:e.Diagnostics.Object_is_possibly_undefined:e.Diagnostics.Object_is_possibly_null)}function s_(n,t){Wt(n,32768&t?65536&t?e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined:e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined:e.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null)}function c_(n,t,r){if(B&&2&n.flags)return Wt(t,e.Diagnostics.Object_is_of_type_unknown),ge;var a=98304&(B?Id(n):n.flags);if(a){r(t,a);var i=wd(n);return 229376&i.flags?ge:i}return n}function l_(e,n){return c_(e,n,o_)}function u_(n,t){var r=l_(n,t);return r!==ge&&16384&r.flags&&Wt(t,e.Diagnostics.Object_is_possibly_undefined),r}function d_(e){return 32&e.flags?function(e){var n=Py(e.expression),t=Ud(n,e.expression);return Vd(f_(e,e.expression,l_(t,e.expression),e.name),e,t!==n)}(e):f_(e,e.expression,r_(e.expression),e.name)}function p_(e){return f_(e,e.left,r_(e.left),e.right)}function m_(n){for(;199===n.parent.kind;)n=n.parent;return e.isCallOrNewExpression(n.parent)&&n.parent.expression===n}function f_(n,t,r,a){var i=or(t).resolvedSymbol,o=e.getAssignmentTargetKind(n),s=ls(0!==o||m_(n)?Xd(r):r);if(Wa(s)||s===Re)return e.isIdentifier(t)&&i&&Pm(i,n),s;var c,l=ms(s,a.escapedText);if(!e.isIdentifier(t)||!i||l&&hb(l)||Pm(i,n),l){if(function(n,t,r){var a,i=n.valueDeclaration;if(!i||e.getSourceFileOfNode(t).isDeclarationFile)return;var o=e.idText(r);!function(n){return!!e.findAncestor(n,(function(n){switch(n.kind){case 158:return!0;case 279:case 160:case 162:case 163:case 281:case 153:case 220:case 274:case 271:case 272:case 273:case 266:case 215:case 277:return!1;default:return!e.isExpressionNode(n)&&\"quit\"}}))}(t)||lr(i,r)||function(e){if(!(32&e.parent.flags))return!1;var n=Ci(e.parent);for(;;){if(!(n=n.symbol&&g_(n)))return!1;var t=ms(n,e.escapedName);if(t&&t.valueDeclaration)return!0}}(n)?244!==i.kind||168===t.parent.kind||8388608&i.flags||lr(i,r)||(a=Wt(r,e.Diagnostics.Class_0_used_before_its_declaration,o)):a=Wt(r,e.Diagnostics.Property_0_is_used_before_its_initialization,o);a&&e.addRelatedInfo(a,e.createDiagnosticForNode(i,e.Diagnostics._0_is_declared_here,o))}(l,n,a),S_(l,n,103===t.kind),or(n).resolvedSymbol=l,n_(n,101===t.kind,s,l),o&&(ty(n,l)||ry(n)))return Wt(a,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,e.idText(a)),ge;c=Rm(Ci(l),n)}else{var u=0===o||!ul(r)||pl(r)?vs(s,0):void 0;if(!u||!u.type)return ol(r)?me:r.symbol===Q?(Q.exports.has(a.escapedText)&&418&Q.exports.get(a.escapedText).flags?Wt(a,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(a.escapedText),Aa(r)):K&&Wt(a,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature,Aa(r)),me):(a.escapedText&&!gr(n)&&function(n,t){var r,a;if(1048576&t.flags&&!(131068&t.flags))for(var i=0,o=t.types;i<o.length;i++){var s=o[i];if(!ms(s,n.escapedText)&&!vs(s,0)){r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(s));break}}if(y_(n.escapedText,t))r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_is_a_static_member_of_type_1,e.declarationNameToString(n),Aa(t));else{var c=rv(t);if(c&&ms(c,n.escapedText))r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(t)),a=e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await);else{var l=v_(n,t);if(void 0!==l){var u=e.symbolName(l);r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,e.declarationNameToString(n),Aa(t),u),a=l.valueDeclaration&&e.createDiagnosticForNode(l.valueDeclaration,e.Diagnostics._0_is_declared_here,u)}else r=e.chainDiagnosticMessages(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.declarationNameToString(n),Aa(t))}}var d=e.createDiagnosticForNodeFromMessageChain(n,r);a&&e.addRelatedInfo(d,a);Rt.add(d)}(a,pl(r)?s:r),ge);u.isReadonly&&(e.isAssignmentTarget(n)||e.isDeleteTarget(n))&&Wt(n,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(s)),c=u.type}return __(n,l,c,a)}function __(n,t,r,a){var i=e.getAssignmentTargetKind(n);if(194!==n.kind&&193!==n.kind||1===i||t&&!(98311&t.flags)&&!(8192&t.flags&&1048576&r.flags))return r;var o=!1;if(B&&j&&103===n.expression.kind){var s=t&&t.valueDeclaration;if(s&&Ah(s)){var c=Dm(n);161===c.kind&&c.parent===s.parent&&(o=!0)}}else B&&t&&t.valueDeclaration&&e.isPropertyAccessExpression(t.valueDeclaration)&&e.getAssignmentDeclarationPropertyAccessKind(t.valueDeclaration)&&Dm(n)===Dm(t.valueDeclaration)&&(o=!0);var l=Am(n,r,o?Pd(r):r);return o&&!(32768&Id(r))&&32768&Id(l)?(Wt(a,e.Diagnostics.Property_0_is_used_before_being_assigned,La(t)),r):i?Ed(l):l}function g_(e){var n=Vi(e);if(0!==n.length)return Zc(n)}function y_(n,t){var r=t.symbol&&ms(Ci(t.symbol),n);return void 0!==r&&r.valueDeclaration&&e.hasModifier(r.valueDeclaration,32)}function v_(n,t){return T_(e.isString(n)?n:e.idText(n),Xo(t),111551)}function h_(n,t){var r=v_(n,t);return r&&e.symbolName(r)}function b_(n,t,r){return e.Debug.assert(void 0!==t,\"outername should always be defined\"),dr(n,t,r,void 0,t,!1,!1,(function(n,r,a){return e.Debug.assertEqual(t,r,\"name should equal outerName\"),cr(n,r,a)||T_(e.unescapeLeadingUnderscores(r),e.arrayFrom(n.values()),a)}))}function E_(n,t){return t.exports&&T_(e.idText(n),Kr(t),2623475)}function T_(n,t,r){return e.getSpellingSuggestion(n,t,(function(n){var t=e.symbolName(n);return!e.startsWith(t,'\"')&&n.flags&r?t:void 0}))}function S_(n,t,r){if(n&&106500&n.flags&&n.valueDeclaration&&e.hasModifier(n.valueDeclaration,8)&&(!t||!e.isWriteOnlyAccess(t)||65536&n.flags&&!(32768&n.flags))){if(r){var a=e.findAncestor(t,e.isFunctionLikeDeclaration);if(a&&a.symbol===n)return}(1&e.getCheckFlags(n)?ir(n).target:n).isReferenced=67108863}}function x_(n,t,r,a){if(a===ge||Wa(a))return!0;var i=ms(a,r);return i?n_(n,t,a,i):e.isInJSFile(n)&&0!=(1048576&a.flags)&&a.types.some((function(e){return x_(n,t,r,e)}))}function L_(n){var t=n.initializer;if(242===t.kind){var r=t.declarations[0];if(r&&!e.isBindingPattern(r.name))return Yr(r)}else if(75===t.kind)return Ap(t)}function C_(e){return 32&e.flags?function(e){var n=Py(e.expression),t=Ud(n,e.expression);return Vd(A_(e,l_(t,e.expression)),e,t!==n)}(e):A_(e,r_(e.expression))}function A_(n,t){var r=0!==e.getAssignmentTargetKind(n)||m_(n)?Xd(t):t,a=n.argumentExpression,i=Py(a);if(r===ge||r===Re)return r;if(ly(r)&&!e.isStringLiteralLike(a))return Wt(a,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),ge;var o=vl(r,function(n){var t,r=e.skipParentheses(n);if(75===r.kind){var a=Ap(r);if(3&a.flags)for(var i=n,o=n.parent;o;){if(230===o.kind&&i===o.statement&&L_(o)===a&&(hs(t=Oy(o.expression),1)&&!hs(t,0)))return!0;i=o,o=o.parent}}return!1}(a)?xe:i,n,e.isAssignmentTarget(n)?2|(ul(r)&&!pl(r)?1:0):0)||ge;return Yy(__(n,o.symbol,o,a),n)}function D_(n,t,r){if(t===ge)return!1;if(!e.isWellKnownSymbolSyntactically(n))return!1;if(0==(12288&t.flags))return r&&Wt(n,e.Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol,e.getTextOfNode(n)),!1;var a=n.expression,i=Ap(a);if(!i)return!1;var o=Lc(!0);return!!o&&(i===o||(r&&Wt(a,e.Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object),!1))}function k_(n){return e.isCallOrNewExpression(n)||e.isTaggedTemplateExpression(n)||e.isJsxOpeningLikeElement(n)}function N_(n){return k_(n)&&e.forEach(n.typeArguments,Vh),197===n.kind?Py(n.template):e.isJsxOpeningLikeElement(n)?Py(n.attributes):156!==n.kind&&e.forEach(n.arguments,(function(e){Py(e)})),Jn}function I_(e){return N_(e),Xn}function M_(e){return!!e&&(212===e.kind||219===e.kind&&e.isSpread)}function O_(n){return e.findIndex(n,M_)}function R_(e){return!!(16384&e.flags)}function P_(n,t,r,a){var i;void 0===a&&(a=!1);var o=!1,s=Ng(r),c=Ig(r);if(197===n.kind)if(i=t.length,210===n.template.kind){var l=e.last(n.template.templateSpans);o=e.nodeIsMissing(l.literal)||!!l.literal.isUnterminated}else{var u=n.template;e.Debug.assert(14===u.kind),o=!!u.isUnterminated}else if(156===n.kind)i=X_(n,r);else if(e.isJsxOpeningLikeElement(n)){if(o=n.attributes.end===n.end)return!0;i=0===c?t.length:1,s=0===t.length?s:1,c=Math.min(c,1)}else{if(!n.arguments)return e.Debug.assert(196===n.kind),0===Ig(r);i=a?t.length+1:t.length,o=n.arguments.end===n.end;var d=O_(t);if(d>=0)return d>=Ig(r)&&(Mg(r)||d<Ng(r))}if(!Mg(r)&&i>s)return!1;if(o||i>=c)return!0;for(var p=i;p<c;p++){if(131072&am(Ag(r,p),R_).flags)return!1}return!0}function w_(n,t){var r=e.length(n.typeParameters),a=Ds(n.typeParameters);return!t||t.length>=a&&t.length<=r}function F_(e){return B_(e,0,!1)}function G_(e){return B_(e,0,!1)||B_(e,1,!1)}function B_(e,n,t){if(524288&e.flags){var r=Wo(e);if(t||0===r.properties.length&&!r.stringIndexInfo&&!r.numberIndexInfo){if(0===n&&1===r.callSignatures.length&&0===r.constructSignatures.length)return r.callSignatures[0];if(1===n&&1===r.constructSignatures.length&&0===r.callSignatures.length)return r.constructSignatures[0]}}}function V_(n,t,r,a){var i=np(n.typeParameters,n,0,a),o=Og(t),s=r&&(o&&262144&o.flags?r.nonFixingMapper:r.mapper);return $d(s?nu(t,s):t,n,(function(e,n){gp(i.inferences,e,n)})),r||ep(t,n,(function(e,n){gp(i.inferences,e,n,16)})),Vs(n,Lp(i),e.isInJSFile(t.declaration))}function U_(n,t,r,a,i){if(e.isJsxOpeningLikeElement(n))return function(e,n,t,r){var a=gf(n,e),i=vy(e.attributes,a,r,t);return gp(r.inferences,i,a),Lp(r)}(n,t,a,i);if(156!==n.kind){var o=ff(n);if(o){var s=_f(n),c=uu(o,sp(function(n,t){return void 0===t&&(t=0),n&&tp(e.map(n.inferences,op),n.signature,n.flags|t,n.compareTypes)}(s,1))),l=F_(c),u=l&&l.typeParameters?zs(Us(l,l.typeParameters)):c,d=ws(t);gp(i.inferences,u,d,16);var p=np(t.typeParameters,t,i.flags),m=uu(o,s&&s.returnMapper);gp(p.inferences,m,d),i.returnMapper=e.some(p.inferences,ky)?sp(function(n){var t=e.filter(n.inferences,ky);return t.length?tp(e.map(t,op),n.signature,n.flags,n.compareTypes):void 0}(p)):void 0}}var f=Rs(t);if(f){var _=z_(n),g=_?Py(_):Me;gp(i.inferences,g,f)}for(var y=Rg(t),v=y?Math.min(Ng(t)-1,r.length):r.length,h=0;h<v;h++){var b=r[h];if(214!==b.kind){var E=Ag(t,h),T=vy(b,E,i,a);gp(i.inferences,T,E)}}if(y){var S=j_(r,v,r.length,y,i);gp(i.inferences,S,y)}return Lp(i)}function j_(n,t,r,a,i){if(t>=r-1){var o=n[r-1];if(M_(o))return 219===o.kind?Oc(o.type):tm(s=vy(o.expression,a,i,0),(function(e){return!(63176705&e.flags||dd(e)||Cd(e))}))?Oc(yl(s,xe)):s}for(var s,c=[],l=-1,u=t;u<r;u++){var d=yl(a,Vl(u-t)),p=vy(n[u],d,i,0);l<0&&M_(n[u])&&(l=u-t);var m=oy(d,4325372);c.push(m?Gl(p):Td(p))}return l<0?Fc(c):Fc(e.append(c.slice(0,l),Wc(c.slice(l))),l,!0)}function K_(n,t,r,a){for(var i,o=e.isInJSFile(n.declaration),s=n.typeParameters,c=ks(e.map(t,Kl),s,Ds(s),o),l=0;l<t.length;l++){e.Debug.assert(void 0!==s[l],\"Should not call checkTypeArguments with too many type arguments\");var u=Qo(s[l]);if(u){var d=r&&a?function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1)}:void 0,p=a||e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1;i||(i=Jl(s,c));var m=c[l];if(!Du(m,go(uu(u,i),m),r?t[l]:void 0,p,d))return}}return c}function H_(n){if(Pf(n.tagName))return 2;var t=ls(Py(n.tagName));return e.length(_s(t,1))?0:e.length(_s(t,0))?1:2}function W_(n,t,r,a,i,o,s){var c={errors:void 0,skipLogging:!0};if(e.isJsxOpeningLikeElement(n))return function(e,n,t,r,a,i,o){var s=gf(n,e);return Nu(vy(e.attributes,s,void 0,r),s,t,a?e.tagName:void 0,e.attributes,void 0,i,o)}(n,r,a,i,o,s,c)?void 0:(e.Debug.assert(!o||!!c.errors,\"jsx should have errors when reporting errors\"),c.errors||e.emptyArray);var l=Rs(r);if(l&&l!==Me&&196!==n.kind){var u=z_(n),d=void 0;u?(d=Py(u),e.isOptionalChainRoot(u.parent)?d=wd(d):e.isOptionalChain(u.parent)&&(d=Bd(d))):d=Me;var p=o?u||n:void 0,m=e.Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;if(!qu(d,l,a,p,m,s,c))return e.Debug.assert(!o||!!c.errors,\"this parameter should have errors when reporting errors\"),c.errors||e.emptyArray}for(var f=e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1,_=Rg(r),g=_?Math.min(Ng(r)-1,t.length):t.length,y=0;y<g;y++){var v=t[y];if(214!==v.kind){var h=Ag(r,y),b=vy(v,h,void 0,i),E=4&i?Hd(b):b;if(!Nu(E,h,a,o?v:void 0,v,f,s,c))return e.Debug.assert(!o||!!c.errors,\"parameter should have errors when reporting errors\"),S(v,E,h),c.errors||e.emptyArray}}if(_){var T=j_(t,g,t.length,_,void 0);p=o?g<t.length?t[g]:n:void 0;if(!qu(T,_,a,p,f,void 0,c))return e.Debug.assert(!o||!!c.errors,\"rest parameter should have errors when reporting errors\"),S(p,T,_),c.errors||e.emptyArray}return;function S(n,t,r){if(n&&o&&c.errors&&c.errors.length){if(tv(r))return;var i=tv(t);i&&Wu(i,r,a)&&e.addRelatedInfo(c.errors[0],e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await))}}}function z_(n){if(195===n.kind){var t=e.skipOuterExpressions(n.expression);if(193===t.kind||194===t.kind)return t.expression}}function q_(n,t,r){var a=e.createNode(219,n.pos,n.end);return a.parent=n,a.type=t,a.isSpread=r||!1,a}function J_(n){if(197===n.kind){var t=n.template,r=[q_(t,wn||(wn=xc(\"TemplateStringsArray\",0,!0))||je)];return 210===t.kind&&e.forEach(t.templateSpans,(function(e){r.push(e.expression)})),r}if(156===n.kind)return function(n){var t=n.parent,r=n.expression;switch(t.kind){case 244:case 213:return[q_(r,Ci(Yr(t)))];case 155:var a=t.parent;return[q_(r,161===t.parent.kind?Ci(Yr(a)):ge),q_(r,me),q_(r,xe)];case 158:case 160:case 162:case 163:var i=158!==t.kind&&0!==w;return[q_(r,ib(t)),q_(r,ob(t)),q_(r,i?Mc(tb(t)):me)]}return e.Debug.fail()}(n);if(e.isJsxOpeningLikeElement(n))return n.attributes.properties.length>0||e.isJsxOpeningElement(n)&&n.parent.children.length>0?[n.attributes]:e.emptyArray;var a=n.arguments||e.emptyArray,i=a.length;if(i&&M_(a[i-1])&&O_(a)===i-1){var o=a[i-1],s=lt?Py(o.expression):hy(o.expression);if(Cd(s)){var c=ic(s),l=s.target.hasRestElement?c.length-1:-1,u=e.map(c,(function(e,n){return q_(o,e,n===l)}));return e.concatenate(a.slice(0,i-1),u)}}return a}function X_(n,t){switch(n.parent.kind){case 244:case 213:return 1;case 158:return 2;case 160:case 162:case 163:return 0===w||t.parameters.length<=2?2:3;case 155:return 3;default:return e.Debug.fail()}}function Y_(n,t){var r,a,i=e.getSourceFileOfNode(n);if(e.isPropertyAccessExpression(n.expression)){var o=e.getErrorSpanForNode(i,n.expression.name);r=o.start,a=t?o.length:n.end-r}else{var s=e.getErrorSpanForNode(i,n.expression);r=s.start,a=t?s.length:n.end-r}return{start:r,length:a,sourceFile:i}}function Q_(n,t,r,a,i,o){if(e.isCallExpression(n)){var s=Y_(n),c=s.sourceFile,l=s.start,u=s.length;return e.createFileDiagnostic(c,l,u,t,r,a,i,o)}return e.createDiagnosticForNode(n,t,r,a,i,o)}function Z_(n,t,r){for(var a,i=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY,l=r.length,u=0,d=t;u<d.length;u++){var p=d[u],m=Ig(p),f=Ng(p);m<l&&m>s&&(s=m),l<f&&f<c&&(c=f),m<i&&(i=m,a=p),o=Math.max(o,f)}var _,g,y=e.some(t,Mg),v=y?i:i<o?i+\"-\"+o:i,h=O_(r)>-1;l<=o&&h&&l--;var b=y||h?y&&h?e.Diagnostics.Expected_at_least_0_arguments_but_got_1_or_more:y?e.Diagnostics.Expected_at_least_0_arguments_but_got_1:e.Diagnostics.Expected_0_arguments_but_got_1_or_more:e.Diagnostics.Expected_0_arguments_but_got_1;if(a&&Ig(a)>l&&a.declaration){var E=a.declaration.parameters[a.thisParameter?l+1:l];E&&(g=e.createDiagnosticForNode(E,e.isBindingPattern(E.name)?e.Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided:e.Diagnostics.An_argument_for_0_was_not_provided,E.name?e.isBindingPattern(E.name)?void 0:e.idText(e.getFirstIdentifier(E.name)):l))}if(i<l&&l<o)return Q_(n,e.Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments,l,s,c);if(!h&&l<i){var T=Q_(n,b,v,l);return g?e.addRelatedInfo(T,g):T}if(y||h){if(_=e.createNodeArray(r),h&&l){var S=e.elementAt(r,O_(r)+1)||void 0;_=e.createNodeArray(r.slice(o>l&&S?r.indexOf(S):Math.min(o,r.length-1)))}}else _=e.createNodeArray(r.slice(o));_.pos=e.first(_).pos,_.end=e.last(_).end,_.end===_.pos&&_.end++;var x=e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),_,b,v,l);return g?e.addRelatedInfo(x,g):x}function $_(n,r,a,i,o,s){var c,l=197===n.kind,u=156===n.kind,d=e.isJsxOpeningLikeElement(n),p=!a;u||(c=n.typeArguments,(l||d||101!==n.expression.kind)&&e.forEach(c,Vh));var m=a||[];if(function(n,t,r){var a,i,o,s,c=0,l=-1;e.Debug.assert(!t.length);for(var u=0,d=n;u<d.length;u++){var p=d[u],m=p.declaration&&Yr(p.declaration),f=p.declaration&&p.declaration.parent;i&&m!==i?(o=c=t.length,a=f):a&&f===a?o+=1:(a=f,o=c),i=m,M(p)?(s=++l,c++):s=o,t.splice(s,0,r?Eo(p,r):p)}}(r,m,o),!m.length)return p&&Rt.add(Q_(n,e.Diagnostics.Call_target_does_not_contain_any_signatures)),I_(n);var f,_,g,y,v=J_(n),h=1===m.length&&!m[0].typeParameters,b=u||h||!e.some(v,fu)?0:4,E=!!(16&i)&&195===n.kind&&n.arguments.hasTrailingComma;if(m.length>1&&(y=z(m,Gt,E)),y||(y=z(m,Bt,E)),y)return y;if(p)if(f)if(1===f.length||f.length>3){var T,S=f[f.length-1];f.length>3&&(T=e.chainDiagnosticMessages(T,e.Diagnostics.The_last_overload_gave_the_following_error),T=e.chainDiagnosticMessages(T,e.Diagnostics.No_overload_matches_this_call));var x=W_(n,v,S,Bt,0,!0,(function(){return T}));if(x)for(var L=0,C=x;L<C.length;L++){var A=C[L];S.declaration&&f.length>3&&e.addRelatedInfo(A,e.createDiagnosticForNode(S.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Rt.add(A)}else e.Debug.fail(\"No error for last overload signature\")}else{for(var D=[],k=0,N=Number.MAX_VALUE,O=0,R=0,P=function(t){var r=W_(n,v,t,Bt,0,!0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,R+1,m.length,Ca(t))}));r?(r.length<=N&&(N=r.length,O=R),k=Math.max(k,r.length),D.push(r)):e.Debug.fail(\"No error for 3 or fewer overload signatures\"),R++},w=0,F=f;w<F.length;w++){P(F[w])}var G=k>1?D[O]:e.flatten(D);e.Debug.assert(G.length>0,\"No errors reported for 3 or fewer overload signatures\");var B=e.chainDiagnosticMessages(e.map(G,(function(e){return\"string\"==typeof e.messageText?e:e.messageText})),e.Diagnostics.No_overload_matches_this_call),V=e.flatMap(G,(function(e){return e.relatedInformation}));if(e.every(G,(function(e){return e.start===G[0].start&&e.length===G[0].length&&e.file===G[0].file}))){var U=G[0],j=U.file,K=U.start,H=U.length;Rt.add({file:j,start:K,length:H,code:B.code,category:B.category,messageText:B,relatedInformation:V})}else Rt.add(e.createDiagnosticForNodeFromMessageChain(n,B,V))}else if(_)Rt.add(Z_(n,[_],v));else if(g)K_(g,n.typeArguments,!0,s);else{var W=e.filter(r,(function(e){return w_(e,c)}));0===W.length?Rt.add(function(n,t,r){var a=r.length;if(1===t.length){var i=Ds((d=t[0]).typeParameters),o=e.length(d.typeParameters);return e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.Expected_0_type_arguments_but_got_1,i<o?i+\"-\"+o:i,a)}for(var s=-1/0,c=1/0,l=0,u=t;l<u.length;l++){var d,p=Ds((d=u[l]).typeParameters);o=e.length(d.typeParameters);p>a?c=Math.min(c,p):o<a&&(s=Math.max(s,o))}return s!==-1/0&&c!==1/0?e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments,a,s,c):e.createDiagnosticForNodeArray(e.getSourceFileOfNode(n),r,e.Diagnostics.Expected_0_type_arguments_but_got_1,s===-1/0?c:s,a)}(n,r,c)):u?s&&Rt.add(Q_(n,s)):Rt.add(Z_(n,W,v))}return t||!v?I_(n):function(n,t,r,a){return e.Debug.assert(t.length>0),a||1===t.length||t.some((function(e){return!!e.typeParameters}))?function(n,t,r){var a=function(e,n){for(var t=-1,r=-1,a=0;a<e.length;a++){var i=e[a],o=Ng(i);if(Mg(i)||o>=n)return a;o>r&&(r=o,t=a)}return t}(t,void 0===Z?r.length:Z),i=t[a],o=i.typeParameters;if(!o)return i;var s=k_(n)?n.typeArguments:void 0,c=s?js(i,function(e,n,t){var r=e.map(tb);for(;r.length>n.length;)r.pop();for(;r.length<n.length;)r.push(Qo(n[r.length])||xp(t));return r}(s,o,e.isInJSFile(n))):function(n,t,r,a){var i=np(t,r,e.isInJSFile(n)?2:0),o=U_(n,r,a,12,i);return js(r,o)}(n,o,i,r);return t[a]=c,c}(n,t,r):function(n){var t,r=e.mapDefined(n,(function(e){return e.thisParameter}));r.length&&(t=ng(r,r.map(Lg)));for(var a=e.minAndMax(n,eg),i=a.min,o=a.max,s=[],c=function(t){var r=e.mapDefined(n,(function(n){return I(n)?t<n.parameters.length-1?n.parameters[t]:e.last(n.parameters):t<n.parameters.length?n.parameters[t]:void 0}));e.Debug.assert(0!==r.length),s.push(ng(r,e.mapDefined(n,(function(e){return Dg(e,t)}))))},l=0;l<o;l++)c(l);var u=e.mapDefined(n,(function(n){return I(n)?e.last(n.parameters):void 0})),d=0;if(0!==u.length){var p=Oc(Wc(e.mapDefined(n,Bs),2));s.push(tg(u,p)),d|=1}n.some(M)&&(d|=2);return vo(n[0].declaration,void 0,t,s,Zc(n.map(ws)),void 0,i,d)}(t)}(n,m,v,!!a);function z(t,r,a){if(void 0===a&&(a=!1),f=void 0,_=void 0,g=void 0,h){var i=t[0];if(c||!P_(n,v,i,a))return;return W_(n,v,i,r,0,!1,void 0)?void(f=[i]):i}for(var o=0;o<t.length;o++){if(w_(i=t[o],c)&&P_(n,v,i,a)){var s=void 0,l=void 0;if(i.typeParameters){var u=void 0;if(c){if(!(u=K_(i,c,!1))){g=i;continue}}else l=np(i.typeParameters,i,e.isInJSFile(n)?2:0),u=U_(n,i,v,8|b,l),b|=4&l.flags?8:0;if(s=Vs(i,u,e.isInJSFile(i.declaration),l&&l.inferredTypeParameters),Rg(i)&&!P_(n,v,s,a)){_=s;continue}}else s=i;if(!W_(n,v,s,r,b,!1,void 0)){if(b){if(b=0,l)if(s=Vs(i,u=U_(n,i,v,b,l),e.isInJSFile(i.declaration),l&&l.inferredTypeParameters),Rg(i)&&!P_(n,v,s,a)){_=s;continue}if(W_(n,v,s,r,b,!1,void 0)){(f||(f=[])).push(s);continue}}return t[o]=s,s}(f||(f=[])).push(s)}}}}function eg(e){var n=e.parameters.length;return I(e)?n-1:n}function ng(e,n){return tg(e,Wc(n,2))}function tg(n,t){return Kd(e.first(n),t)}function rg(e){return!(!e.typeParameters||!kb(ws(e)))}function ag(e,n,t,r){return Wa(e)||Wa(n)&&!!(262144&e.flags)||!t&&!r&&!(1179648&n.flags)&&xu(e,an)}function ig(n,t,r){if(n.arguments&&w<1){var a=O_(n.arguments);a>=0&&Wt(n.arguments[a],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var i=r_(n.expression);if(i===Re)return Qn;if((i=ls(i))===ge)return I_(n);if(Wa(i))return n.typeArguments&&Wt(n,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),N_(n);var o=_s(i,1);if(o.length){if(!function(n,t){if(!t||!t.declaration)return!0;var r=t.declaration,a=e.getSelectedModifierFlags(r,24);if(!a)return!0;var i=e.getClassLikeDeclarationOfSymbol(r.parent.symbol),o=Yi(r.parent.symbol);if(!Zh(n,i)){var s=e.getContainingClass(n);if(s&&16&a){var c=tb(s);if(function n(t,r){var a=Vi(r);if(!e.length(a))return!1;var i=a[0];if(2097152&i.flags){for(var o=No(i.types),s=0,c=0,l=i.types;c<l.length;c++){var u=l[c];if(!o[s]&&3&e.getObjectFlags(u)){if(u.symbol===t)return!0;if(n(t,u))return!0}s++}return!1}if(i.symbol===t)return!0;return n(t,i)}(r.parent.symbol,c))return!0}return 8&a&&Wt(n,e.Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration,Aa(o)),16&a&&Wt(n,e.Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration,Aa(o)),!1}return!0}(n,o[0]))return I_(n);var s=i.symbol&&e.getClassLikeDeclarationOfSymbol(i.symbol);return s&&e.hasModifier(s,128)?(Wt(n,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),I_(n)):$_(n,o,t,r,0)}var c=_s(i,0);if(c.length){var l=$_(n,c,t,r,0);return K||(l.declaration&&!_g(l.declaration)&&ws(l)!==Me&&Wt(n,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),Rs(l)===Me&&Wt(n,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),l}return sg(n.expression,i,1),I_(n)}function og(n,t){var r,a=0===t,i=iv(n),o=i&&_s(i,t).length>0;if(1048576&n.flags){for(var s=!1,c=0,l=n.types;c<l.length;c++){var u=l[c];if(0!==_s(u,t).length){if(s=!0,r)break}else if(r||(r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Aa(u)),r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Aa(n))),s)break}s||(r=e.chainDiagnosticMessages(void 0,a?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Aa(n))),r||(r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Aa(n)))}else r=e.chainDiagnosticMessages(r,a?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Aa(n));return{messageChain:e.chainDiagnosticMessages(r,a?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable),relatedMessage:o?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function sg(n,t,r,a){var i=og(t,r),o=i.messageChain,s=i.relatedMessage,c=e.createDiagnosticForNodeFromMessageChain(n,o);if(s&&e.addRelatedInfo(c,e.createDiagnosticForNode(n,s)),e.isCallExpression(n.parent)){var l=Y_(n.parent,!0),u=l.start,d=l.length;c.start=u,c.length=d}Rt.add(c),cg(t,r,a?e.addRelatedInfo(c,a):c)}function cg(n,t,r){if(n.symbol){var a=ir(n.symbol).originatingImport;if(a&&!e.isImportCall(a)){var i=_s(Ci(ir(n.symbol).target),t);if(!i||!i.length)return;e.addRelatedInfo(r,e.createDiagnosticForNode(a,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}}function lg(n){switch(n.parent.kind){case 244:case 213:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 155:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 158:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 160:case 162:case 163:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function ug(n,t,r){var a=Py(n.expression),i=ls(a);if(i===ge)return I_(n);var o,s,c=_s(i,0),l=_s(i,1).length;if(ag(a,i,c.length,l))return N_(n);if(o=n,(s=c).length&&e.every(s,(function(e){return 0===e.minArgumentCount&&!I(e)&&e.parameters.length<X_(o,e)}))){var u=e.getTextOfNode(n.expression,!1);return Wt(n,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,u),I_(n)}var d=lg(n);if(!c.length){var p=og(i,0),m=e.chainDiagnosticMessages(p.messageChain,d),f=e.createDiagnosticForNodeFromMessageChain(n.expression,m);return p.relatedMessage&&e.addRelatedInfo(f,e.createDiagnosticForNode(n.expression,p.relatedMessage)),Rt.add(f),cg(i,0,f),I_(n)}return $_(n,c,t,r,0,d)}function dg(n,t){var r=Uf(n),a=r&&Wr(r),i=a&&cr(a,T.Element,788968),o=i&&J.symbolToEntityName(i,788968,n),s=e.createFunctionTypeNode(void 0,[e.createParameter(void 0,void 0,void 0,\"props\",void 0,J.typeToTypeNode(t,n))],o?e.createTypeReferenceNode(o,void 0):e.createKeywordTypeNode(124)),c=Xt(1,\"props\");return c.type=t,vo(s,void 0,void 0,[c],i?Yi(i):ge,void 0,1,0)}function pg(n,t,r){if(Pf(n.tagName)){var a=Wf(n),i=dg(n,a);return ku(vy(n.attributes,gf(i,n),void 0,0),a,n.tagName,n.attributes),i}var o=Py(n.tagName),s=ls(o);if(s===ge)return I_(n);var c=function n(t,r){if(4&t.flags)return[Jn];if(128&t.flags){var a=Hf(t,r);return a?[dg(r,a)]:(Wt(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,\"JSX.\"+T.IntrinsicElements),e.emptyArray)}var i=ls(t),o=_s(i,1);return 0===o.length&&(o=_s(i,0)),0===o.length&&1048576&i.flags&&(o=Lo(e.map(i.types,(function(e){return n(e,r)})))),o}(o,n);return ag(o,s,c.length,0)?N_(n):0===c.length?(Wt(n.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(n.tagName)),I_(n)):$_(n,c,t,r,0)}function mg(n,t,r){switch(n.kind){case 195:return function(n,t,r){if(101===n.expression.kind){var a=Wm(n.expression);if(Wa(a)){for(var i=0,o=n.arguments;i<o.length;i++){Py(o[i])}return Jn}if(a!==ge){var s=e.getEffectiveBaseTypeNode(e.getContainingClass(n));if(s)return $_(n,Gi(a,s.typeArguments,s),t,r,0)}return N_(n)}var c,l=Py(n.expression);if(e.isCallChain(n)){var u=Ud(l,n.expression);c=u===l?0:e.isOutermostOptionalChain(n)?8:4,l=u}else c=0;if((l=c_(l,n.expression,s_))===Re)return Qn;var d=ls(l);if(d===ge)return I_(n);var p=_s(d,0),m=_s(d,1).length;if(ag(l,d,p.length,m))return l!==ge&&n.typeArguments&&Wt(n,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),N_(n);if(!p.length){if(m)Wt(n,e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new,Aa(l));else{var f=void 0;if(1===n.arguments.length){var _=e.getSourceFileOfNode(n).text;e.isLineBreak(_.charCodeAt(e.skipTrivia(_,n.expression.end,!0)-1))&&(f=e.createDiagnosticForNode(n.expression,e.Diagnostics.It_is_highly_likely_that_you_are_missing_a_semicolon))}sg(n.expression,d,0,f)}return I_(n)}return 8&r&&!n.typeArguments&&p.some(rg)?(Dy(n,r),Yn):p.some((function(n){return e.isInJSFile(n.declaration)&&!!e.getJSDocClassTag(n.declaration)}))?(Wt(n,e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new,Aa(l)),I_(n)):$_(n,p,t,r,c)}(n,t,r);case 196:return ig(n,t,r);case 197:return function(e,n,t){var r=Py(e.tag),a=ls(r);if(a===ge)return I_(e);var i=_s(a,0),o=_s(a,1).length;return ag(r,a,i.length,o)?N_(e):i.length?$_(e,i,n,t,0):(sg(e.tag,a,0),I_(e))}(n,t,r);case 156:return ug(n,t,r);case 266:case 265:return pg(n,t,r)}throw e.Debug.assertNever(n,\"Branch in 'resolveSignature' should be unreachable.\")}function fg(e,n,t){var r=or(e),a=r.resolvedSignature;if(a&&a!==Yn&&!n)return a;r.resolvedSignature=Yn;var i=mg(e,n,t||0);return i!==Yn&&(r.resolvedSignature=ct===lt?i:a),i}function _g(n){if(!n||!e.isInJSFile(n))return!1;var t=e.isFunctionDeclaration(n)||e.isFunctionExpression(n)?n:e.isVariableDeclaration(n)&&n.initializer&&e.isFunctionExpression(n.initializer)?n.initializer:void 0;if(t){if(e.getJSDocClassTag(n))return!0;var r=Yr(t);return!!r&&e.hasEntries(r.members)}return!1}function gg(n,t){if(t&&(e.hasEntries(t.exports)||e.hasEntries(t.members))){var r=ir(t);if(!r.inferredClassSymbol||!r.inferredClassSymbol.has(\"\"+L(n))){var a=Yt(n)?n:$t(n);return a.exports=a.exports||e.createSymbolTable(),a.members=a.members||e.createSymbolTable(),a.flags|=32&t.flags,e.hasEntries(t.exports)&&rr(a.exports,t.exports),e.hasEntries(t.members)&&rr(a.members,t.members),(r.inferredClassSymbol||(r.inferredClassSymbol=e.createMap())).set(\"\"+L(a),a),a}return r.inferredClassSymbol.get(\"\"+L(n))}}function yg(n,t){Jb(n,n.typeArguments)||Xb(n.arguments);var r=fg(n,void 0,t);if(r===Yn)return Pe;if(101===n.expression.kind)return Me;if(196===n.kind){var a=r.declaration;if(a&&161!==a.kind&&165!==a.kind&&170!==a.kind&&!e.isJSDocConstructSignature(a)&&!_g(a))return K&&Wt(n,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),me}if(e.isInJSFile(n)&&Eg(n))return function(e){var n=wr(e,e);if(n){var t=Vr(n);if(t)return Ci(t)}return me}(n.arguments[0]);var i=ws(r);if(12288&i.flags&&vg(n))return Ul(e.walkUpParenthesizedExpressions(n.parent));if(195===n.kind&&225===n.parent.kind&&16384&i.flags&&Ps(r))if(e.isDottedName(n.expression)){if(!Em(n)){var o=Wt(n.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);bm(n.expression,o)}}else Wt(n.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);if(e.isInJSFile(n)){var s=e.getDeclarationOfExpando(n);if(s){var c=Yr(s);if(c&&e.hasEntries(c.exports)){var l=pa(c,c.exports,e.emptyArray,e.emptyArray,void 0,void 0);return l.objectFlags|=16384,Zc([i,l])}}}return i}function vg(n){if(!e.isCallExpression(n))return!1;var t=n.expression;if(e.isPropertyAccessExpression(t)&&\"for\"===t.name.escapedText&&(t=t.expression),!e.isIdentifier(t)||\"Symbol\"!==t.escapedText)return!1;var r=Lc(!1);return!!r&&r===ur(t,\"Symbol\",111551,void 0,void 0,!1)}function hg(n){if(Xb(n.arguments)||function(n){if(F===e.ModuleKind.ES2015)return pE(n,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_commonjs_amd_system_or_umd);if(n.typeArguments)return pE(n,e.Diagnostics.Dynamic_import_cannot_have_type_arguments);var t=n.arguments;if(1!==t.length)return pE(n,e.Diagnostics.Dynamic_import_must_have_one_specifier_as_an_argument);if(Hb(t),e.isSpreadElement(t[0]))return pE(t[0],e.Diagnostics.Specifier_of_dynamic_import_cannot_be_spread_element)}(n),0===n.arguments.length)return Ug(n,me);for(var t=n.arguments[0],r=hy(t),a=1;a<n.arguments.length;++a)hy(n.arguments[a]);(32768&r.flags||65536&r.flags||!xu(r,Se))&&Wt(t,e.Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0,Aa(r));var i=wr(n,t);if(i){var o=Ur(i,t,!0,!1);if(o)return Ug(n,bg(Ci(o),o,i))}return Ug(n,me)}function bg(n,t,r){if(G&&n&&n!==ge){var a=n;if(!a.syntheticType)if(Tr(e.find(r.declarations,e.isSourceFile),r,!1)){var i=e.createSymbolTable(),o=Xt(2097152,\"default\");o.nameType=Vl(\"default\"),o.target=Dr(t),i.set(\"default\",o);var s=Xt(2048,\"__type\"),c=pa(s,i,e.emptyArray,e.emptyArray,void 0,void 0);s.type=c,a.syntheticType=Of(n)?Ml(n,c,s,0,!1):c}else a.syntheticType=n;return a.syntheticType}return n}function Eg(n){if(!e.isRequireCall(n,!0))return!1;if(!e.isIdentifier(n.expression))return e.Debug.fail();var t=ur(n.expression,n.expression.escapedText,111551,void 0,void 0,!0);if(t===ee)return!0;if(2097152&t.flags)return!1;var r=16&t.flags?243:3&t.flags?241:0;if(0!==r){var a=e.getDeclarationOfKind(t,r);return!!a&&!!(8388608&a.flags)}return!1}function Tg(n){return function(n){if(n.questionDotToken||32&n.flags)return pE(n.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain);return!1}(n)||Jb(n,n.typeArguments),w<2&&Vb(n,131072),ws(fg(n))}function Sg(n,r,a,i){var o=Py(a,i);if(e.isConstTypeReference(r))return function n(t){switch(t.kind){case 10:case 14:case 8:case 9:case 105:case 90:case 191:case 192:return!0;case 199:return n(t.expression);case 206:var r=t.operator,a=t.operand;return 40===r&&(8===a.kind||9===a.kind)||39===r&&8===a.kind;case 193:case 194:var i=t.expression;if(e.isIdentifier(i)){var o=nb(i);return o&&2097152&o.flags&&(o=kr(o)),!!(o&&384&o.flags&&1===Wi(o))}}return!1}(a)||Wt(a,e.Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals),Gl(o);Vh(r),o=Hd(Ed(o));var s=Kl(r);t&&s!==ge&&(Cu(s,Xd(o))||Fu(o,s,n,e.Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first));return s}function xg(n){return function(n){var t=n.name.escapedText;switch(n.keywordToken){case 98:if(\"target\"!==t)return pE(n.name,e.Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,n.name.escapedText,e.tokenToString(n.keywordToken),\"target\");break;case 95:if(\"meta\"!==t)pE(n.name,e.Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,n.name.escapedText,e.tokenToString(n.keywordToken),\"meta\")}}(n),98===n.keywordToken?function(n){var t=e.getNewTargetContainer(n);return t?161===t.kind?Ci(Yr(t.parent)):Ci(Yr(t)):(Wt(n,e.Diagnostics.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor,\"new.target\"),ge)}(n):95===n.keywordToken?function(n){F!==e.ModuleKind.ESNext&&F!==e.ModuleKind.System&&Wt(n,e.Diagnostics.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_esnext_or_system);var t=e.getSourceFileOfNode(n);return e.Debug.assert(!!(2097152&t.flags),\"Containing file is missing import meta node flag.\"),e.Debug.assert(!!t.externalModuleIndicator,\"Containing file should be a module.\"),\"meta\"===n.name.escapedText?function(){return Fn||(Fn=xc(\"ImportMeta\",0,!0))||je}():ge}(n):e.Debug.assertNever(n.keywordToken)}function Lg(n){var t=Ci(n);if(B){var r=n.valueDeclaration;if(r&&e.hasInitializer(r))return Pd(t)}return t}function Cg(e,n){var t=e.parameters.length-(I(e)?1:0);if(n<t)return e.parameters[n].escapedName;var r=e.parameters[t]||de,a=Ci(r);if(Cd(a)){var i=a.target.associatedNames,o=n-t;return i&&i[o]||r.escapedName+\"_\"+o}return r.escapedName}function Ag(e,n){return Dg(e,n)||me}function Dg(e,n){var t=e.parameters.length-(I(e)?1:0);if(n<t)return Lg(e.parameters[n]);if(I(e)){var r=Ci(e.parameters[t]),a=n-t;if(!Cd(r)||r.target.hasRestElement||a<ic(r).length)return yl(r,Vl(a))}}function kg(e,n){var t=Ng(e),r=Og(e),a=t-(r?1:0);if(r&&n===a)return r;for(var i=[],o=[],s=n;s<a;s++)i.push(Ag(e,s)),o.push(Cg(e,s));r&&(i.push(yl(r,xe)),o.push(Cg(e,a)));var c=Ig(e);return Fc(i,c<n?0:c-n,!!r,!1,o)}function Ng(e){var n=e.parameters.length;if(I(e)){var t=Ci(e.parameters[n-1]);if(Cd(t))return n+ic(t).length-1}return n}function Ig(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);if(Cd(n)){var t=n.target.minLength;if(t>0)return e.parameters.length-1+t}}return e.minArgumentCount}function Mg(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);return!Cd(n)||n.target.hasRestElement}return!1}function Og(e){if(I(e)){var n=Ci(e.parameters[e.parameters.length-1]);return Cd(n)?function(e){var n=Ad(e);return n&&Oc(n)}(n):n}}function Rg(e){var n=Og(e);return!n||dd(n)||Wa(n)?void 0:n}function Pg(e){return wg(e,Oe)}function wg(e,n){return e.parameters.length>0?Ag(e,0):n}function Fg(n,t){(n.typeParameters=t.typeParameters,t.thisParameter)&&((!(i=n.thisParameter)||i.valueDeclaration&&!i.valueDeclaration.type)&&(i||(n.thisParameter=Kd(t.thisParameter,void 0)),Gg(n.thisParameter,Ci(t.thisParameter))));for(var r=n.parameters.length-(I(n)?1:0),a=0;a<r;a++){var i=n.parameters[a];if(!e.getEffectiveTypeAnnotationNode(i.valueDeclaration))Gg(i,Ag(t,a))}I(n)&&(!Yt(i=e.last(n.parameters))&&e.getEffectiveTypeAnnotationNode(i.valueDeclaration)||Gg(i,kg(t,r)))}function Gg(n,t){var r=ir(n);if(!r.type){r.type=t;var a=n.valueDeclaration;75!==a.name.kind&&(r.type===ye&&(r.type=di(a.name)),function n(t){for(var r=0,a=t.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||(75===i.name.kind?ir(Yr(i)).type=Za(i):n(i.name))}}(a.name))}}function Bg(e){var n=Ac(!0);return n!==ze?tc(n,[e=iv(e)||ye]):ye}function Vg(e){var n,t=(n=!0,Sn||(Sn=xc(\"PromiseLike\",1,n))||ze);return t!==ze?tc(t,[e=iv(e)||ye]):ye}function Ug(n,t){var r=Bg(t);return r===ye?(Wt(n,e.isImportCall(n)?e.Diagnostics.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:e.Diagnostics.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option),ge):(Dc(!0)||Wt(n,e.isImportCall(n)?e.Diagnostics.A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option),r)}function jg(n,t){if(!n.body)return ge;var r,a,i,o=e.getFunctionFlags(n),s=0!=(2&o),c=0!=(1&o),l=Me;if(222!==n.body.kind)r=hy(n.body,t&&-9&t),s&&(r=av(r,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member));else if(c){var u=Jg(n,t);u?u.length>0&&(r=Wc(u,2)):l=Oe;var d=function(n,t){var r=[],a=[],i=0!=(2&e.getFunctionFlags(n));return e.forEachYieldExpression(n.body,(function(n){var o,s=n.expression?Py(n.expression,t):he;if(e.pushIfUnique(r,Hg(n,s,me,i)),n.asteriskToken){var c=Qv(s,i?19:17,n.expression);o=c&&c.nextType}else o=ff(n);o&&e.pushIfUnique(a,o)})),{yieldTypes:r,nextTypes:a}}(n,t),p=d.yieldTypes,m=d.nextTypes;a=e.some(p)?Wc(p,2):void 0,i=e.some(m)?Zc(m):void 0}else{var f=Jg(n,t);if(!f)return 2&o?Ug(n,Oe):Oe;if(0===f.length)return 2&o?Ug(n,Me):Me;r=Wc(f,2)}if(r||a||i){var _=bf(n);if(_||(a&&Zd(n,a,1),r&&Zd(n,r),i&&Zd(n,i)),r&&hd(r)||a&&hd(a)||i&&hd(i)){var g=_?_===Ns(n)?c?void 0:r:pf(ws(_),n):void 0;c?(a=Ld(a,g,0,s),r=Ld(r,g,1,s),i=Ld(i,g,2,s)):r=function(e,n,t){return e&&hd(e)&&(e=xd(e,n?t?rv(n):n:void 0)),e}(r,g,s)}a&&(a=Xd(a)),r&&(r=Xd(r)),i&&(i=Xd(i))}return c?Kg(a||Oe,r||l,i||Zm(2,n)||ye,s):s?Bg(r||l):r||l}function Kg(e,n,t,r){var a=r?at:it,i=a.getGlobalGeneratorType(!1);if(e=a.resolveIterationType(e,void 0)||ye,n=a.resolveIterationType(n,void 0)||ye,t=a.resolveIterationType(t,void 0)||ye,i===ze){var o=a.getGlobalIterableIteratorType(!1),s=o!==ze?nh(o,a):void 0,c=s?s.returnType:me,l=s?s.nextType:ve;return xu(n,c)&&xu(l,t)?o!==ze?Ic(o,[e]):(a.getGlobalIterableIteratorType(!0),je):(a.getGlobalGeneratorType(!0),je)}return Ic(i,[e,n,t])}function Hg(n,t,r,a){var i=n.expression||n,o=n.asteriskToken?zv(a?19:17,t,r,i):t;return a?iv(o,i,n.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):o}function Wg(e,n,t,r){var a=0;if(r){for(var i=n;i<t.length;i++)a|=h.get(t[i])||32768;for(i=e;i<n;i++)a&=~(h.get(t[i])||0);for(i=0;i<e;i++)a|=h.get(t[i])||32768}else{for(i=e;i<n;i++)a|=v.get(t[i])||128;for(i=0;i<e;i++)a&=~(v.get(t[i])||0)}return a}function zg(n){var t=or(n);return void 0!==t.isExhaustive?t.isExhaustive:t.isExhaustive=function(n){if(203===n.expression.kind){var t=Oy(n.expression.expression),r=Wg(0,0,em(n),!0);return!!(131072&am(ts(t)||t,(function(e){return(Vp(e)&r)===r})).flags)}var a=Oy(n.expression);if(!bd(a))return!1;var i=$p(n);if(!i.length||e.some(i,vd))return!1;return o=om(a,Gl),s=i,1048576&o.flags?!e.forEach(o.types,(function(n){return!e.contains(s,n)})):e.contains(s,o);var o,s}(n)}function qg(e){return e.endFlowNode&&Sm(e.endFlowNode)}function Jg(n,t){var r=e.getFunctionFlags(n),a=[],i=qg(n),o=!1;if(e.forEachReturnStatement(n.body,(function(s){var c=s.expression;if(c){var l=hy(c,t&&-9&t);2&r&&(l=av(l,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)),131072&l.flags&&(o=!0),e.pushIfUnique(a,l)}else i=!0})),0!==a.length||i||!o&&!function(e){switch(e.kind){case 200:case 201:return!0;case 160:return 192===e.parent.kind;default:return!1}}(n))return!(B&&a.length&&i)||_g(n)&&a.some((function(e){return e.symbol===n.symbol}))||e.pushIfUnique(a,ve),a}function Xg(n,r){if(t){var a=e.getFunctionFlags(n),i=r&&Zg(r,a);if((!i||!oy(i,16385))&&159!==n.kind&&!e.nodeIsMissing(n.body)&&222===n.body.kind&&qg(n)){var o=512&n.flags;if(i&&131072&i.flags)Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point);else if(i&&!o)Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value);else if(i&&B&&!xu(ve,i))Wt(e.getEffectiveReturnTypeNode(n),e.Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);else if(P.noImplicitReturns){if(!i){if(!o)return;if(yh(n,ws(Ns(n))))return}Wt(e.getEffectiveReturnTypeNode(n)||n,e.Diagnostics.Not_all_code_paths_return_a_value)}}}}function Yg(n,t){if(e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n)),jh(n),t&&4&t&&fu(n)){if(!e.getEffectiveReturnTypeNode(n)&&gu(n)){var r=or(n);if(r.contextFreeType)return r.contextFreeType;var a=jg(n,t),i=vo(void 0,void 0,void 0,e.emptyArray,a,void 0,0,0),o=pa(n.symbol,O,[i],e.emptyArray,void 0,void 0);return o.objectFlags|=1048576,r.contextFreeType=o}return qe}qb(n)||200!==n.kind||$b(n);var s=Ci(Xr(n.symbol));return Wa(s)?s:(Qg(n,t),s)}function Qg(n,t){var r=or(n);if(!(1024&r.flags)){var a=Ef(n);if(!(1024&r.flags)){if(r.flags|=1024,a){var i=Ci(Xr(n.symbol));if(Wa(i))return;var o=_s(i,0)[0];if(fu(n)){var s=_f(n);t&&2&t&&function(n,t,r){for(var a=n.parameters.length-(I(n)?1:0),i=0;i<a;i++){var o=n.parameters[i].valueDeclaration;if(o.type){var s=e.getEffectiveTypeAnnotationNode(o);s&&gp(r.inferences,Kl(s),Ag(t,i))}}var c=Og(t);if(c&&262144&c.flags){Fg(n,nu(t,r.nonFixingMapper));var l=Ng(t)-1;gp(r.inferences,kg(n,l),c)}}(o,a,s),Fg(o,s?nu(a,s.mapper):a)}if(!Fs(n)&&!o.resolvedReturnType){var c=jg(n,t);o.resolvedReturnType||(o.resolvedReturnType=c)}}By(n)}}}function Zg(e,n){var t=!!(2&n);return e&&!!(1&n)?mh(1,e,t)||ge:e&&t?iv(e)||ge:e}function $g(e,n,t,r){if(void 0===r&&(r=!1),!xu(n,Ue)){var a=r&&tv(n);return Jt(e,!!a&&xu(a,Ue),t),!1}return!0}function ey(n){if(!e.isCallExpression(n))return!1;if(!e.isBindableObjectDefinePropertyCall(n))return!1;var t=hy(n.arguments[2]);if(Ha(t,\"value\")){var r=ms(t,\"writable\"),a=r&&Ci(r);if(!a||a===Ce||a===Ae)return!0;if(r&&r.valueDeclaration&&e.isPropertyAssignment(r.valueDeclaration)){var i=Py(r.valueDeclaration.initializer);if(i===Ce||i===Ae)return!0}return!1}return!ms(t,\"set\")}function ny(n){return!!(8&e.getCheckFlags(n)||4&n.flags&&64&e.getDeclarationModifierFlagsFromSymbol(n)||3&n.flags&&2&$f(n)||98304&n.flags&&!(65536&n.flags)||8&n.flags||e.some(n.declarations,ey))}function ty(n,t){if(ny(t)){if(4&t.flags&&(193===n.kind||194===n.kind)&&103===n.expression.kind){var r=e.getContainingFunction(n);return!r||161!==r.kind||(!t.valueDeclaration||!(r.parent===t.valueDeclaration.parent||r===t.valueDeclaration.parent))}return!0}return!1}function ry(n){if(193===n.kind||194===n.kind){var t=e.skipParentheses(n.expression);if(75===t.kind){var r=or(t).resolvedSymbol;if(2097152&r.flags){var a=hr(r);return!!a&&255===a.kind}}}return!1}function ay(n,t,r){var a=e.skipOuterExpressions(n,3);return 75!==a.kind&&193!==a.kind&&194!==a.kind?(Wt(n,t),!1):!(32&a.flags)||(Wt(n,r),!1)}function iy(e){return oy(e,2112)?sy(e,3)||oy(e,296)?Ue:Le:xe}function oy(e,n){if(e.flags&n&-131073||131072&n&&Ho(e))return!0;if(3145728&e.flags)for(var t=0,r=e.types;t<r.length;t++){if(oy(r[t],n))return!0}return!1}function sy(e,n,t){return!!(e.flags&n)||!(t&&114691&e.flags)&&(!!(296&n)&&xu(e,xe)||!!(2112&n)&&xu(e,Le)||!!(132&n)&&xu(e,Se)||!!(528&n)&&xu(e,Ne)||!!(16384&n)&&xu(e,Me)||!!(131072&n)&&xu(e,Oe)||!!(65536&n)&&xu(e,Ee)||!!(32768&n)&&xu(e,ve)||!!(4096&n)&&xu(e,Ie)||!!(67108864&n)&&xu(e,Ge))}function cy(n,t,r){return 1048576&n.flags?e.every(n.types,(function(e){return cy(e,t,r)})):sy(n,t,r)}function ly(n){return!!(16&e.getObjectFlags(n))&&!!n.symbol&&uy(n.symbol)}function uy(e){return 0!=(128&e.flags)}function dy(n,t,r,a,i){void 0===i&&(i=!1);var o=n.properties,s=o[r];if(279===s.kind||280===s.kind){var c=s.name,l=el(c);if(io(l)){var u=ms(t,uo(l));u&&(S_(u,s,i),n_(s,!1,t,u))}var d=Xa(s,yl(t,l,c));return my(280===s.kind?s:s.initializer,d)}if(281===s.kind){if(!(r<o.length-1)){w<99&&Vb(s,4);var p=[];if(a)for(var m=0,f=a;m<f.length;m++){var _=f[m];e.isSpreadAssignment(_)||p.push(_.name)}d=Ja(t,p,t.symbol);return Hb(a,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),my(s.expression,d)}Wt(s,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern)}else Wt(s,e.Diagnostics.Property_assignment_expected)}function py(n,t,r,a,i){var o=n.elements,s=o[r];if(214!==s.kind){if(212!==s.kind){var c=Vl(r);if(fd(t)){var l=Tf(s)?8:0,u=vl(t,c,q_(s,c),l)||ge;return my(s,Xa(s,Tf(s)?Up(u,524288):u),i)}return my(s,a,i)}if(r<o.length-1)Wt(s,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);else{var d=s.expression;if(208!==d.kind||62!==d.operatorToken.kind)return Hb(n.elements,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),my(d,rm(t,Cd)?om(t,(function(e){return Gc(e,r)})):Oc(a),i);Wt(d.operatorToken,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}}}function my(n,t,r,a){var i;if(280===n.kind){var o=n;o.objectAssignmentInitializer&&(!B||32768&Id(Py(o.objectAssignmentInitializer))||(t=Up(t,524288)),gy(o.name,o.equalsToken,o.objectAssignmentInitializer,r)),i=n.name}else i=n;return 208===i.kind&&62===i.operatorToken.kind&&(_y(i,r),i=i.left),192===i.kind?function(e,n,t){var r=e.properties;if(B&&0===r.length)return l_(n,e);for(var a=0;a<r.length;a++)dy(e,n,a,r,t);return n}(i,t,a):191===i.kind?function(e,n,t){var r=e.elements;w<2&&P.downlevelIteration&&Vb(e,512);for(var a=zv(65,n,ve,e)||ge,i=0;i<r.length;i++)py(e,n,i,a,t);return n}(i,t,r):function(n,t,r){var a=Py(n,r),i=281===n.parent.kind?e.Diagnostics.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:e.Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,o=281===n.parent.kind?e.Diagnostics.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:e.Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access;ay(n,i,o)&&ku(t,a,n,n);return t}(i,t,r)}function fy(e,n){return 0!=(98304&n.flags)||Cu(e,n)}function _y(n,t){return e.isInJSFile(n)&&e.getAssignedExpandoInitializer(n)?Py(n.right,t):(function(n){var t=n.left,r=n.operatorToken,a=n.right;60===r.kind&&(!e.isBinaryExpression(t)||56!==t.operatorToken.kind&&55!==t.operatorToken.kind||pE(t,e.Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses,e.tokenToString(t.operatorToken.kind),e.tokenToString(r.kind)),!e.isBinaryExpression(a)||56!==a.operatorToken.kind&&55!==a.operatorToken.kind||pE(a,e.Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses,e.tokenToString(a.operatorToken.kind),e.tokenToString(r.kind)))}(n),gy(n.left,n.operatorToken,n.right,t,n))}function gy(n,r,a,i,o){var s,c=r.kind;if(62===c&&(192===n.kind||191===n.kind))return my(n,Py(a,i),i,103===a.kind);s=55===c||56===c||60===c?jv(n,i):Py(n,i);var l,u,d=Py(a,i);switch(c){case 41:case 42:case 65:case 66:case 43:case 67:case 44:case 68:case 40:case 64:case 47:case 69:case 48:case 70:case 49:case 71:case 51:case 73:case 52:case 74:case 50:case 72:if(s===Re||d===Re)return Re;s=l_(s,n),d=l_(d,a);var p=void 0;if(528&s.flags&&528&d.flags&&void 0!==(p=function(e){switch(e){case 51:case 73:return 56;case 52:case 74:return 37;case 50:case 72:return 55;default:return}}(r.kind)))return Wt(o||r,e.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead,e.tokenToString(r.kind),e.tokenToString(p)),xe;var m,f=$g(n,s,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,!0),_=$g(a,d,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,!0);if(sy(s,3)&&sy(d,3)||!oy(s,2112)&&!oy(d,2112))m=xe;else if(v(s,d)){switch(c){case 49:case 71:T()}m=Le}else T(v),m=ge;return f&&_&&b(m),m;case 39:case 63:if(s===Re||d===Re)return Re;sy(s,132)||sy(d,132)||(s=l_(s,n),d=l_(d,a));var g=void 0;if(sy(s,296,!0)&&sy(d,296,!0)?g=xe:sy(s,2112,!0)&&sy(d,2112,!0)?g=Le:sy(s,132,!0)||sy(d,132,!0)?g=Se:(Wa(s)||Wa(d))&&(g=s===ge||d===ge?ge:me),g&&!h(c))return g;if(!g){return T((function(e,n){return sy(e,2543)&&sy(n,2543)})),me}return 63===c&&b(g),g;case 29:case 31:case 32:case 33:return h(c)&&(s=Ed(l_(s,n)),d=Ed(l_(d,a)),E((function(e,n){return Cu(e,n)||Cu(n,e)||xu(e,Ue)&&xu(n,Ue)}))),Ne;case 34:case 35:case 36:case 37:return E((function(e,n){return fy(e,n)||fy(n,e)})),Ne;case 97:return function(n,t,r,a){return r===Re||a===Re?Re:(!Wa(r)&&cy(r,131068)&&Wt(n,e.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter),Wa(a)||cb(a)||Su(a,an)||Wt(t,e.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type),Ne)}(n,a,s,d);case 96:return function(n,t,r,a){return r===Re||a===Re?Re:(r=l_(r,n),a=l_(a,t),Cu(r,Se)||sy(r,12584)||Wt(n,e.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol),cy(a,126091264)||Wt(t,e.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter),Ne)}(n,a,s,d);case 55:return 4194304&Vp(s)?Wc([(u=B?s:Ed(d),om(u,Od)),d]):s;case 56:return 8388608&Vp(s)?Wc([Md(s),d],2):s;case 60:return 262144&Vp(s)?Wc([wd(s),d],2):s;case 62:var y=e.isBinaryExpression(n.parent)?e.getAssignmentDeclarationKind(n.parent):0;return function(n,t){if(2===n)for(var r=0,a=zo(t);r<a.length;r++){var i=a[r],o=Ci(i);if(o.symbol&&32&o.symbol.flags){var s=i.escapedName,c=ur(i.valueDeclaration,s,788968,void 0,s,!1);if(c&&c.declarations.some(e.isJSDocTypedefTag))return pE(c.declarations[0],e.Diagnostics.Duplicate_identifier_0,e.unescapeLeadingUnderscores(s)),pE(i.valueDeclaration,e.Diagnostics.Duplicate_identifier_0,e.unescapeLeadingUnderscores(s))}}}(y,d),function(t){switch(t){case 2:return!0;case 1:case 5:case 6:case 3:case 4:var r=Yr(n),i=e.getAssignedExpandoInitializer(a);return i&&e.isObjectLiteralExpression(i)&&r&&e.hasEntries(r.exports);default:return!1}}(y)?(524288&d.flags&&(2===y||6===y||Vu(d)||Bp(d)||1&e.getObjectFlags(d))||b(d),s):(b(d),Hd(d));case 27:return!P.allowUnreachableCode&&function n(t){switch((t=e.skipParentheses(t)).kind){case 75:case 10:case 13:case 197:case 210:case 14:case 8:case 9:case 105:case 90:case 99:case 145:case 200:case 213:case 201:case 191:case 192:case 203:case 217:case 265:case 264:return!0;case 209:return n(t.whenTrue)&&n(t.whenFalse);case 208:return!e.isAssignmentOperator(t.operatorToken.kind)&&(n(t.left)&&n(t.right));case 206:case 207:switch(t.operator){case 53:case 39:case 40:case 54:return!0}return!1;case 204:case 198:case 216:default:return!1}}(n)&&(75!==(l=a).kind||\"eval\"!==l.escapedText)&&Wt(n,e.Diagnostics.Left_side_of_comma_operator_is_unused_and_has_no_side_effects),d;default:return e.Debug.fail()}function v(e,n){return sy(e,2112)&&sy(n,2112)}function h(t){var r=oy(s,12288)?n:oy(d,12288)?a:void 0;return!r||(Wt(r,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(t)),!1)}function b(r){t&&e.isAssignmentOperator(c)&&(!ay(n,e.Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)||e.isIdentifier(n)&&\"exports\"===e.unescapeLeadingUnderscores(n.escapedText)||ku(r,s,n,a))}function E(e){return!e(s,d)&&(T(e),!0)}function T(n){var t,a=!1,i=o||r;if(n){var c=iv(s),l=iv(d);a=!(c===s&&l===d)&&!(!c||!l)&&n(c,l)}var u=s,p=d;!a&&n&&(t=function(e,n,t){var r=e,a=n,i=Ed(e),o=Ed(n);t(i,o)||(r=i,a=o);return[r,a]}(s,d,n),u=t[0],p=t[1]);var m=Da(u,p),f=m[0],_=m[1];(function(n,t,a,i){var o;switch(r.kind){case 36:case 34:o=\"false\";break;case 37:case 35:o=\"true\"}if(o)return Jt(n,t,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap,o,a,i);return})(i,a,f,_)||Jt(i,a,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2,e.tokenToString(r.kind),f,_)}}function yy(n){t&&(8192&n.flags&&!function(n){for(var t=n,r=n.parent;r;){if(e.isFunctionLike(r)&&t===r.body)return!1;if(e.isClassLike(t))return!0;t=r,r=r.parent}return!1}(n)||uE(n,e.Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body),Qm(n)&&Wt(n,e.Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer));var r=e.getContainingFunction(n);if(!r)return me;var a=e.getFunctionFlags(r);if(!(1&a))return me;var i=0!=(2&a);n.asteriskToken&&(i&&w<99&&Vb(n,53248),!i&&w<2&&P.downlevelIteration&&Vb(n,256));var o=Fs(r),s=o&&fh(o,i),c=s&&s.yieldType||me,l=s&&s.nextType||me,u=i?iv(l)||me:l,d=n.expression?Py(n.expression):he,p=Hg(n,d,u,i);return o&&p&&ku(p,c,n.expression||n,n.expression),n.asteriskToken?Jv(i?19:17,1,d,n.expression)||me:o?mh(2,o,i)||me:Zm(2,r)||me}function vy(n,t,r,a){var i=function(n){return 272!==n.kind||e.isJsxSelfClosingElement(n.parent)?n:n.parent.parent}(n),o=i.contextualType,s=i.inferenceContext;i.contextualType=t,i.inferenceContext=r;var c=Py(n,1|a|(r?2:0)),l=oy(c,2944)&&Ty(c,pf(t,n))?Gl(c):c;return i.contextualType=o,i.inferenceContext=s,l}function hy(e,n){var t=or(e);if(!t.resolvedType){if(n&&0!==n)return Py(e,n);var r=ct;ct=lt,t.resolvedType=Py(e,n),ct=r}return t.resolvedType}function by(n){return 198===(n=e.skipParentheses(n)).kind||216===n.kind}function Ey(n){var t=e.getEffectiveInitializer(n),r=Oy(t,!0),a=e.isParameter(n)&&189===n.name.kind&&Cd(r)&&!r.target.hasRestElement&&oc(r)<n.name.elements.length?function(n,t){for(var r=t.elements,a=oc(n),i=a?ic(n).slice():[],o=a;o<r.length;o++){var s=r[o];(o<r.length-1||190!==s.kind||!s.dotDotDotToken)&&(i.push(!e.isOmittedExpression(s)&&Tf(s)?li(s,!1,!1):me),e.isOmittedExpression(s)||Tf(s)||Qd(s,me))}return Fc(i,n.target.minLength,!1,n.target.readonly)}(r,n.name):r,i=2&e.getCombinedNodeFlags(n)||e.isDeclarationReadonly(n)||by(t)||Ty(a,ff(t))?a:Td(a);if(e.isInJSFile(n)){if(98304&i.flags)return Qd(n,me),me;if(_d(i))return Qd(n,_n),_n}return i}function Ty(n,t){if(t){if(3145728&t.flags){var r=t.types;return e.some(r,(function(e){return Ty(n,e)}))}if(58982400&t.flags){var a=ts(t)||ye;return oy(a,4)&&oy(n,128)||oy(a,8)&&oy(n,256)||oy(a,64)&&oy(n,2048)||oy(a,4096)&&oy(n,8192)||Ty(n,a)}return!!(4194432&t.flags&&oy(n,128)||256&t.flags&&oy(n,256)||2048&t.flags&&oy(n,2048)||512&t.flags&&oy(n,512)||8192&t.flags&&oy(n,8192))}return!1}function Sy(n){var t=n.parent;return e.isAssertionExpression(t)&&e.isConstTypeReference(t.type)||(e.isParenthesizedExpression(t)||e.isArrayLiteralExpression(t)||e.isSpreadElement(t))&&Sy(t)||(e.isPropertyAssignment(t)||e.isShorthandPropertyAssignment(t))&&Sy(t.parent)}function xy(e,n,t,r){var a=Py(e,n,r);return Sy(e)?Gl(a):by(e)?a:xd(a,pf(2===arguments.length?ff(e):t,e))}function Ly(e,n){return 153===e.name.kind&&kf(e.name),xy(e.initializer,n)}function Cy(e,n){return iE(e),153===e.name.kind&&kf(e.name),Ay(e,Yg(e,n),n)}function Ay(n,t,r){if(r&&10&r){var a=B_(t,0,!0),i=B_(t,1,!0),o=a||i;if(o&&o.typeParameters){var s=df(n,2);if(s){var c=B_(wd(s),a?0:1,!1);if(c&&!c.typeParameters){if(8&r)return Dy(n,r),qe;var l=_f(n),u=l.signature&&ws(l.signature),d=u&&G_(u);if(d&&!d.typeParameters&&!e.every(l.inferences,ky)){var p=function(n,t){for(var r,a,i=[],o=0,s=t;o<s.length;o++){var c=(m=s[o]).symbol.escapedName;if(Ny(n.inferredTypeParameters,c)||Ny(i,c)){var l=ca(Xt(262144,Iy(e.concatenate(n.inferredTypeParameters,i),c)));l.target=m,r=e.append(r,m),a=e.append(a,l),i.push(l)}else i.push(m)}if(a)for(var u=Jl(r,a),d=0,p=a;d<p.length;d++){var m;(m=p[d]).mapper=u}return i}(l,o.typeParameters),m=Us(o,p),f=e.map(l.inferences,(function(e){return ip(e.typeParameter)}));if($d(m,c,(function(e,n){gp(f,e,n,0,!0)})),e.some(f,ky)&&(ep(m,c,(function(e,n){gp(f,e,n)})),!function(e,n){for(var t=0;t<e.length;t++)if(ky(e[t])&&ky(n[t]))return!0;return!1}(l.inferences,f)))return function(e,n){for(var t=0;t<e.length;t++)!ky(e[t])&&ky(n[t])&&(e[t]=n[t])}(l.inferences,f),l.inferredTypeParameters=e.concatenate(l.inferredTypeParameters,p),zs(m)}return zs(V_(o,c,l))}}}}return t}function Dy(e,n){2&n&&(_f(e).flags|=4)}function ky(e){return!(!e.candidates&&!e.contraCandidates)}function Ny(n,t){return e.some(n,(function(e){return e.symbol.escapedName===t}))}function Iy(e,n){for(var t=n.length;t>1&&n.charCodeAt(t-1)>=48&&n.charCodeAt(t-1)<=57;)t--;for(var r=n.slice(0,t),a=1;;a++){var i=r+a;if(!Ny(e,i))return i}}function My(e){var n=F_(e);if(n&&!n.typeParameters)return ws(n)}function Oy(n,t){var r=e.skipParentheses(n);if(!e.isCallExpression(r)||101===r.expression.kind||e.isRequireCall(r,!0)||vg(r)){if(e.isAssertionExpression(r)&&!e.isConstTypeReference(r.type))return Kl(r.type)}else{var a=e.isCallChain(r)?function(e){var n=Py(e.expression),t=Ud(n,e.expression),r=My(n);return r&&Vd(r,e,t!==n)}(r):My(r_(r.expression));if(a)return a}return t?hy(n):Py(n)}function Ry(e){var n=or(e);if(n.contextFreeType)return n.contextFreeType;var t=e.contextualType;e.contextualType=me;var r=n.contextFreeType=Py(e,4);return e.contextualType=t,r}function Py(n,a,i){var o=s;s=n,y=0;var c=Ay(n,function(n,a,i){var o=n.kind;if(r)switch(o){case 213:case 200:case 201:r.throwIfCancellationRequested()}switch(o){case 75:return wm(n);case 103:return jm(n);case 101:return Wm(n);case 99:return Te;case 14:case 10:return Fl(Vl(n.text));case 8:return _E(n),Fl(Vl(+n.text));case 9:return function(n){if(!(e.isLiteralTypeNode(n.parent)||e.isPrefixUnaryExpression(n.parent)&&e.isLiteralTypeNode(n.parent.parent))&&w<99&&pE(n,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ESNext))return!0}(n),Fl(function(n){return Vl({negative:!1,base10Value:e.parsePseudoBigInt(n.text)})}(n));case 105:return De;case 90:return Ce;case 210:return function(n){return e.forEach(n.templateSpans,(function(n){oy(Py(n.expression),12288)&&Wt(n.expression,e.Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String)})),Se}(n);case 13:return mn;case 191:return Sf(n,a,i);case 192:return Mf(n,a);case 193:return d_(n);case 152:return p_(n);case 194:return C_(n);case 195:if(95===n.expression.kind)return hg(n);case 196:return yg(n,a);case 197:return Tg(n);case 199:return function(n,t){var r=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0;if(r)return Sg(r,r.typeExpression.type,n.expression,t);return Py(n.expression,t)}(n,a);case 213:return function(e){return xh(e),jh(e),Ci(Yr(e))}(n);case 200:case 201:return Yg(n,a);case 203:return function(e){return Py(e.expression),Ft}(n);case 198:case 216:return function(e){return Sg(e,e.type,e.expression)}(n);case 217:return function(e){return wd(Py(e.expression))}(n);case 218:return xg(n);case 202:return function(n){Py(n.expression);var t=e.skipParentheses(n.expression);if(193!==t.kind&&194!==t.kind)return Wt(t,e.Diagnostics.The_operand_of_a_delete_operator_must_be_a_property_reference),Ne;var r=na(or(t).resolvedSymbol);return r&&ny(r)&&Wt(t,e.Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property),Ne}(n);case 204:return function(e){return Py(e.expression),he}(n);case 205:return function(n){if(t){if(!(32768&n.flags)){var r=e.getSourceFileOfNode(n);if(!lE(r)){var a=e.getSpanOfTokenAtPosition(r,n.pos),i=e.createFileDiagnostic(r,a.start,a.length,e.Diagnostics.await_expression_is_only_allowed_within_an_async_function),o=e.getContainingFunction(n);if(o&&161!==o.kind){e.Debug.assert(0==(2&e.getFunctionFlags(o)),\"Enclosing function should never be an async function.\");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(i,s)}Rt.add(i)}}Qm(n)&&Wt(n,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}var c=Py(n.expression),l=av(c,n,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return l!==c||l===ge||3&c.flags||zt(!1,e.createDiagnosticForNode(n,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),l}(n);case 206:return function(n){var t=Py(n.operand);if(t===Re)return Re;switch(n.operand.kind){case 8:switch(n.operator){case 40:return Fl(Vl(-n.operand.text));case 39:return Fl(Vl(+n.operand.text))}break;case 9:if(40===n.operator)return Fl(Vl({negative:!0,base10Value:e.parsePseudoBigInt(n.operand.text)}))}switch(n.operator){case 39:case 40:case 54:return l_(t,n.operand),oy(t,12288)&&Wt(n.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(n.operator)),39===n.operator?(oy(t,2112)&&Wt(n.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(n.operator),Aa(Ed(t))),xe):iy(t);case 53:jv(n.operand);var r=12582912&Vp(t);return 4194304===r?Ce:8388608===r?De:Ne;case 45:case 46:return $g(n.operand,l_(t,n.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&ay(n.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),iy(t)}return ge}(n);case 207:return function(n){var t=Py(n.operand);return t===Re?Re:($g(n.operand,l_(t,n.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&ay(n.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),iy(t))}(n);case 208:return _y(n,a);case 209:return function(e,n){return jv(e.condition),Wc([Py(e.whenTrue,n),Py(e.whenFalse,n)],2)}(n,a);case 212:return function(e,n){return w<2&&Vb(e,P.downlevelIteration?1536:2048),zv(33,Py(e.expression,n),ve,e.expression)}(n,a);case 214:return he;case 211:return yy(n);case 219:return n.type;case 274:return Zf(n,a);case 264:case 265:return function(e,n){return jh(e),qf(e)||me}(n);case 268:return function(n){return Xf(n.openingFragment),2===P.jsx&&(P.jsxFactory||e.getSourceFileOfNode(n).pragmas.has(\"jsx\"))&&Wt(n,P.jsxFactory?e.Diagnostics.JSX_fragment_is_not_supported_when_using_jsxFactory:e.Diagnostics.JSX_fragment_is_not_supported_when_using_an_inline_JSX_factory_pragma),Ff(n),qf(n)||me}(n);case 272:return Gf(n,a);case 266:e.Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\")}return ge}(n,a,i),a);return ly(c)&&function(n,t){193===n.parent.kind&&n.parent.expression===n||194===n.parent.kind&&n.parent.expression===n||(75===n.kind||152===n.kind)&&$h(n)||171===n.parent.kind&&n.parent.exprName===n||261===n.parent.kind||Wt(n,e.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query);if(P.isolatedModules){e.Debug.assert(!!(128&t.symbol.flags)),8388608&t.symbol.valueDeclaration.flags&&Wt(n,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}(n,c),s=o,c}function wy(n){n.expression&&uE(n.expression,e.Diagnostics.Type_expected),Vh(n.constraint),Vh(n.default);var r=Xi(Yr(n));ts(r),function(e){return os(e)!==Xe}(r)||Wt(n.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Aa(r));var a=Qo(r),i=ss(r);a&&i&&Du(i,go(uu(a,ql(r,i)),i),n.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),t&&bh(n.name,e.Diagnostics.Type_parameter_name_cannot_be_0)}function Fy(n){jb(n),Pv(n);var t=e.getContainingFunction(n);e.hasModifier(n,92)&&(161===t.kind&&e.nodeIsPresent(t.body)||Wt(n,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation)),n.questionToken&&e.isBindingPattern(n.name)&&t.body&&Wt(n,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),n.name&&e.isIdentifier(n.name)&&(\"this\"===n.name.escapedText||\"new\"===n.name.escapedText)&&(0!==t.parameters.indexOf(n)&&Wt(n,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,n.name.escapedText),161!==t.kind&&165!==t.kind&&170!==t.kind||Wt(n,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),201===t.kind&&Wt(n,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter)),!n.dotDotDotToken||e.isBindingPattern(n.name)||xu(Ci(n.symbol),yn)||Wt(n,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function Gy(n,t,r){for(var a=0,i=n.elements;a<i.length;a++){var o=i[a];if(!e.isOmittedExpression(o)){var s=o.name;if(75===s.kind&&s.escapedText===r)return Wt(t,e.Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern,r),!0;if((189===s.kind||188===s.kind)&&Gy(s,t,r))return!0}}}function By(n){166===n.kind?function(n){jb(n)||function(n){var t=n.parameters[0];if(1!==n.parameters.length)return pE(t?t.name:n,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(t.dotDotDotToken)return pE(t.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasModifiers(t))return pE(t.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(t.questionToken)return pE(t.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(t.initializer)return pE(t.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!t.type)return pE(t.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);if(142!==t.type.kind&&139!==t.type.kind){var r=Kl(t.type);return 4&r.flags||8&r.flags?pE(t.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead,e.getTextOfNode(t.name),Aa(r),Aa(n.type?Kl(n.type):me)):1048576&r.flags&&cy(r,384,!0)?pE(t.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead):pE(t.name,e.Diagnostics.An_index_signature_parameter_type_must_be_either_string_or_number)}if(!n.type)return pE(n,e.Diagnostics.An_index_signature_must_have_a_type_annotation)}(n)}(n):169!==n.kind&&243!==n.kind&&170!==n.kind&&164!==n.kind&&161!==n.kind&&165!==n.kind||qb(n);var r=e.getFunctionFlags(n);if(4&r||(3==(3&r)&&w<99&&Vb(n,12288),2==(3&r)&&w<4&&Vb(n,64),0!=(3&r)&&w<2&&Vb(n,128)),Eh(n.typeParameters),e.forEach(n.parameters,Fy),n.type&&Vh(n.type),t){!function(n){if(w>=2||P.noEmit||!e.hasRestParameter(n)||8388608&n.flags||e.nodeIsMissing(n.body))return;e.forEach(n.parameters,(function(n){n.name&&!e.isBindingPattern(n.name)&&n.name.escapedText===$.escapedName&&Wt(n,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)}))}(n);var a=e.getEffectiveReturnTypeNode(n);if(K&&!a)switch(n.kind){case 165:Wt(n,e.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);break;case 164:Wt(n,e.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type)}if(a){var i=e.getFunctionFlags(n);if(1==(5&i)){var o=Kl(a);if(o===Me)Wt(a,e.Diagnostics.A_generator_cannot_have_a_void_type_annotation);else{var s=mh(0,o,0!=(2&i))||me;Du(Kg(s,mh(1,o,0!=(2&i))||s,mh(2,o,0!=(2&i))||ye,!!(2&i)),o,a)}}else 2==(3&i)&&function(n,t){var r=Kl(t);if(w>=2){if(r===ge)return;var a=Ac(!0);if(a!==ze&&!Ai(r,a))return void Wt(t,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type)}else{if(function(n){sv(n&&e.getEntityNameFromTypeNode(n))}(t),r===ge)return;var i=e.getEntityNameFromTypeNode(t);if(void 0===i)return void Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,Aa(r));var o=Rr(i,111551,!0),s=o?Ci(o):ge;if(s===ge)return void(75===i.kind&&\"Promise\"===i.escapedText&&Di(r)===Ac(!1)?Wt(t,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(i)));var c=(d=!0,Ln||(Ln=xc(\"PromiseConstructorLike\",0,d))||je);if(c===je)return void Wt(t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(i));if(!Du(s,c,t,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var l=i&&e.getFirstIdentifier(i),u=cr(n.locals,l.escapedText,111551);if(u)return void Wt(u.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(l),e.entityNameToString(i))}var d;av(r,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}(n,a)}166!==n.kind&&298!==n.kind&&_v(n)}}function Vy(n){for(var t=e.createMap(),r=0,a=n.members;r<a.length;r++){var i=a[r];if(157===i.kind){var o=void 0,s=i.name;switch(s.kind){case 10:case 8:o=s.text;break;case 75:o=e.idText(s);break;default:continue}t.get(o)?(Wt(e.getNameOfDeclaration(i.symbol.valueDeclaration),e.Diagnostics.Duplicate_identifier_0,o),Wt(i.name,e.Diagnostics.Duplicate_identifier_0,o)):t.set(o,!0)}}}function Uy(n){if(245===n.kind){var t=Yr(n);if(t.declarations.length>0&&t.declarations[0]!==n)return}var r=qs(Yr(n));if(r)for(var a=!1,i=!1,o=0,s=r.declarations;o<s.length;o++){var c=s[o];if(1===c.parameters.length&&c.parameters[0].type)switch(c.parameters[0].type.kind){case 142:i?Wt(c,e.Diagnostics.Duplicate_string_index_signature):i=!0;break;case 139:a?Wt(c,e.Diagnostics.Duplicate_number_index_signature):a=!0}}}function jy(n){jb(n)||function(n){if(e.isClassLike(n.parent)){if(e.isStringLiteral(n.name)&&\"constructor\"===n.name.text)return pE(n.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(aE(n.name,e.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0}else if(245===n.parent.kind){if(aE(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return pE(n.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(172===n.parent.kind){if(aE(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return pE(n.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}8388608&n.flags&&sE(n);if(e.isPropertyDeclaration(n)&&n.exclamationToken&&(!e.isClassLike(n.parent)||!n.type||n.initializer||8388608&n.flags||e.hasModifier(n,160)))return pE(n.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context)}(n)||Zb(n.name),Pv(n)}function Ky(n){By(n),function(n){var t=e.isInJSFile(n)?e.getJSDocTypeParameterDeclarations(n):void 0,r=n.typeParameters||t&&e.firstOrUndefined(t);if(r){var a=r.pos===r.end?r.pos:e.skipTrivia(e.getSourceFileOfNode(n).text,r.pos);return dE(n,a,r.end-a,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}(n)||function(n){var t=e.getEffectiveReturnTypeNode(n);if(t)pE(t,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}(n),Vh(n.body);var r=Yr(n);if(n===e.getDeclarationOfKind(r,n.kind)&&ev(r),!e.nodeIsMissing(n.body)&&t){var a=n.parent;if(e.getClassExtendsHeritageElement(a)){Fm(n.parent,a);var i=Vm(a),o=Bm(n);if(o){if(i&&Wt(o,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null),e.some(n.parent.members,(function(n){return 158===n.kind&&!e.hasModifier(n,32)&&!!n.initializer}))||e.some(n.parameters,(function(n){return e.hasModifier(n,92)}))){for(var s=void 0,c=0,l=n.body.statements;c<l.length;c++){var u=l[c];if(225===u.kind&&e.isSuperCall(u.expression)){s=u;break}if(!e.isPrologueDirective(u))break}s||Wt(n,e.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties)}}else i||Wt(n,e.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call)}}}function Hy(n){if(t){if(qb(n)||function(n){if(!(8388608&n.flags)){if(w<1)return pE(n.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(void 0===n.body&&!e.hasModifier(n,128))return dE(n,n.end-1,\";\".length,e.Diagnostics._0_expected,\"{\")}if(n.body&&e.hasModifier(n,128))return pE(n,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(n.typeParameters)return pE(n.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!function(e){return rE(e)||e.parameters.length===(162===e.kind?0:1)}(n))return pE(n.name,162===n.kind?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(163===n.kind){if(n.type)return pE(n.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var t=e.Debug.assertDefined(e.getSetAccessorValueParameter(n),\"Return value does not match parameter count assertion.\");if(t.dotDotDotToken)return pE(t.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(t.questionToken)return pE(t.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(t.initializer)return pE(n.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}(n)||Zb(n.name),pv(n),By(n),162===n.kind&&!(8388608&n.flags)&&e.nodeIsPresent(n.body)&&256&n.flags&&(512&n.flags||Wt(n.name,e.Diagnostics.A_get_accessor_must_return_a_value)),153===n.name.kind&&kf(n.name),!lo(n)){var r=162===n.kind?163:162,a=e.getDeclarationOfKind(Yr(n),r);if(a){var i=e.getModifierFlags(n),o=e.getModifierFlags(a);(28&i)!=(28&o)&&Wt(n.name,e.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility),(128&i)!=(128&o)&&Wt(n.name,e.Diagnostics.Accessors_must_both_be_abstract_or_non_abstract),Wy(n,a,vi,e.Diagnostics.get_and_set_accessor_must_have_the_same_type),Wy(n,a,hi,e.Diagnostics.get_and_set_accessor_must_have_the_same_this_type)}}var s=bi(Yr(n));162===n.kind&&Xg(n,s)}Vh(n.body)}function Wy(e,n,t,r){var a=t(e),i=t(n);a&&i&&!hu(a,i)&&Wt(e,r)}function zy(n,t){return ks(e.map(n.typeArguments,Kl),t,Ds(t),e.isInJSFile(n))}function qy(n,t){for(var r,a,i=!0,o=0;o<t.length;o++){var s=Qo(t[o]);s&&(r||(a=Jl(t,r=zy(n,t))),i=i&&Du(r[o],uu(s,a),n.typeArguments[o],e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1))}return i}function Jy(n){var t=vc(n);if(t!==ge){var r=or(n).resolvedSymbol;if(r)return 524288&r.flags&&ir(r).typeParameters||(4&e.getObjectFlags(t)?t.target.localTypeParameters:void 0)}}function Xy(n){Jb(n,n.typeArguments),168!==n.kind||void 0===n.typeName.jsdocDotPos||e.isInJSFile(n)||e.isInJSDoc(n)||dE(n,n.typeName.jsdocDotPos,1,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments),e.forEach(n.typeArguments,Vh);var r=vc(n);if(r!==ge){if(n.typeArguments&&t){var a=Jy(n);a&&qy(n,a)}32&r.flags&&8&or(n).resolvedSymbol.flags&&Wt(n,e.Diagnostics.Enum_type_0_has_members_with_initializers_that_are_not_literals,Aa(r))}}function Yy(n,t){if(!(8388608&n.flags))return n;var r=n.objectType,a=n.indexType;if(xu(a,al(r,!1)))return 194===t.kind&&e.isAssignmentTarget(t)&&32&e.getObjectFlags(r)&&1&Uo(r)&&Wt(t,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Aa(r)),n;var i=ls(r);if(vs(i,1)&&sy(a,296))return n;if(ul(r)){var o=sl(a,t);if(o){var s=tm(i,(function(e){return ms(e,o)}));if(s&&24&e.getDeclarationModifierFlagsFromSymbol(s))return Wt(t,e.Diagnostics.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter,e.unescapeLeadingUnderscores(o)),ge}}return Wt(t,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Aa(a),Aa(r)),ge}function Qy(n){!function(n){if(146===n.operator){if(143!==n.type.kind)return pE(n.type,e.Diagnostics._0_expected,e.tokenToString(143));var t=e.walkUpParenthesizedTypes(n.parent);switch(t.kind){case 241:var r=t;if(75!==r.name.kind)return pE(n,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(r))return pE(n,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(2&r.parent.flags))return pE(t.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 158:if(!e.hasModifier(t,32)||!e.hasModifier(t,64))return pE(t.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 157:if(!e.hasModifier(t,64))return pE(t.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:pE(n,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(137===n.operator&&173!==n.type.kind&&174!==n.type.kind)uE(n,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(143))}(n),Vh(n.type)}function Zy(n){return e.hasModifier(n,8)&&!!(8388608&n.flags)}function $y(n,t){var r=e.getCombinedModifierFlags(n);return 245!==n.parent.kind&&244!==n.parent.kind&&213!==n.parent.kind&&8388608&n.flags&&(2&r||e.isModuleBlock(n.parent)&&e.isModuleDeclaration(n.parent.parent)&&e.isGlobalScopeAugmentation(n.parent.parent)||(r|=1),r|=2),r&t}function ev(n){if(t){for(var r,a,i,o=0,s=155,c=!1,l=!0,u=!1,d=n.declarations,p=0!=(16384&n.flags),m=!1,f=!1,_=!1,g=0,y=d;g<y.length;g++){var v=y[g],h=8388608&v.flags,b=245===v.parent.kind||172===v.parent.kind||h;if(b&&(i=void 0),244!==v.kind&&213!==v.kind||h||(_=!0),243===v.kind||160===v.kind||159===v.kind||161===v.kind){var E=$y(v,155);o|=E,s&=E,c=c||e.hasQuestionToken(v),l=l&&e.hasQuestionToken(v),e.nodeIsPresent(v.body)&&r?p?f=!0:m=!0:i&&i.parent===v.parent&&i.end!==v.pos&&D(i),e.nodeIsPresent(v.body)?r||(r=v):u=!0,i=v,b||(a=v)}}if(f&&e.forEach(d,(function(n){Wt(n,e.Diagnostics.Multiple_constructor_implementations_are_not_allowed)})),m&&e.forEach(d,(function(n){Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_function_implementation)})),_&&!p&&16&n.flags&&e.forEach(d,(function(t){tr(e.getNameOfDeclaration(t)||t,e.Diagnostics.Duplicate_identifier_0,e.symbolName(n),e.filter(d,(function(e){return e!==t})))})),!a||a.body||e.hasModifier(a,128)||a.questionToken||D(a),u&&(function(n,t,r,a,i){if(0!==(a^i)){var o=$y(A(n,t),r);e.forEach(n,(function(n){var t=$y(n,r)^o;1&t?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported):2&t?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient):24&t?Wt(e.getNameOfDeclaration(n)||n,e.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected):128&t&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract)}))}}(d,r,155,o,s),function(n,t,r,a){if(r!==a){var i=e.hasQuestionToken(A(n,t));e.forEach(n,(function(n){e.hasQuestionToken(n)!==i&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Overload_signatures_must_all_be_optional_or_required)}))}}(d,r,c,l),r))for(var T=Os(n),S=Ns(r),x=0,L=T;x<L.length;x++){var C=L[x];if(!Bu(S,C)){e.addRelatedInfo(Wt(C.declaration,e.Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),e.createDiagnosticForNode(r,e.Diagnostics.The_implementation_signature_is_declared_here));break}}}function A(e,n){return void 0!==n&&n.parent===e[0].parent?n:e[0]}function D(n){if(!n.name||!e.nodeIsMissing(n.name)){var t=!1,r=e.forEachChild(n.parent,(function(e){if(t)return e;t=e===n}));if(r&&r.pos===n.end&&r.kind===n.kind){var a=r.name||r,i=r.name;if(n.name&&i&&(e.isComputedPropertyName(n.name)&&e.isComputedPropertyName(i)||!e.isComputedPropertyName(n.name)&&!e.isComputedPropertyName(i)&&e.getEscapedTextOfIdentifierOrLiteral(n.name)===e.getEscapedTextOfIdentifierOrLiteral(i))){if((160===n.kind||159===n.kind)&&e.hasModifier(n,32)!==e.hasModifier(r,32))Wt(a,e.hasModifier(n,32)?e.Diagnostics.Function_overload_must_be_static:e.Diagnostics.Function_overload_must_not_be_static);return}if(e.nodeIsPresent(r.body))return void Wt(a,e.Diagnostics.Function_implementation_name_must_be_0,e.declarationNameToString(n.name))}var o=n.name||n;p?Wt(o,e.Diagnostics.Constructor_implementation_is_missing):e.hasModifier(n,128)?Wt(o,e.Diagnostics.All_declarations_of_an_abstract_method_must_be_consecutive):Wt(o,e.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration)}}}function nv(n){if(t){var r=n.localSymbol;if((r||(r=Yr(n)).exportSymbol)&&e.getDeclarationOfKind(r,n.kind)===n){for(var a=0,i=0,o=0,s=0,c=r.declarations;s<c.length;s++){var l=y(_=c[s]),u=$y(_,513);1&u?512&u?o|=l:a|=l:i|=l}var d=a&i,p=o&(a|i);if(d||p)for(var m=0,f=r.declarations;m<f.length;m++){l=y(_=f[m]);var _,g=e.getNameOfDeclaration(_);l&p?Wt(g,e.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead,e.declarationNameToString(g)):l&d&&Wt(g,e.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local,e.declarationNameToString(g))}}}function y(n){var t=n;switch(t.kind){case 245:case 246:case 315:case 308:case 309:return 2;case 248:return e.isAmbientModule(t)||0!==e.getModuleInstanceState(t)?5:4;case 244:case 247:return 3;case 288:return 7;case 258:if(!e.isEntityNameExpression(t.expression))return 1;t=t.expression;case 252:case 255:case 254:var r=0,a=kr(Yr(t));return e.forEach(a.declarations,(function(e){r|=y(e)})),r;case 241:case 190:case 243:case 257:return 1;default:return e.Debug.failBadSyntaxKind(t)}}}function tv(e,n,t,r){var a=rv(e,n);return a&&iv(a,n,t,r)}function rv(n,t){if(!Wa(n)){var r=n;if(r.promisedTypeOfPromise)return r.promisedTypeOfPromise;if(Ai(n,Ac(!1)))return r.promisedTypeOfPromise=ic(n)[0];var a=Ha(n,\"then\");if(!Wa(a)){var i=a?_s(a,0):e.emptyArray;if(0!==i.length){var o=Up(Wc(e.map(i,Pg)),2097152);if(!Wa(o)){var s=_s(o,0);if(0!==s.length)return r.promisedTypeOfPromise=Wc(e.map(s,Pg),2);t&&Wt(t,e.Diagnostics.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback)}}else t&&Wt(t,e.Diagnostics.A_promise_must_have_a_then_method)}}}function av(e,n,t,r){return iv(e,n,t,r)||ge}function iv(n,t,r,a){var i=n;if(i.awaitedTypeOfType)return i.awaitedTypeOfType;if(Wa(n))return i.awaitedTypeOfType=n;if(1048576&n.flags){for(var o=void 0,s=0,c=n.types;s<c.length;s++){var l=c[s];o=e.append(o,iv(l,t,r,a))}if(!o)return;return i.awaitedTypeOfType=Wc(o)}var u=rv(n);if(u){if(n.id===u.id||Ot.indexOf(u.id)>=0)return void(t&&Wt(t,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method));Ot.push(n.id);var d=iv(u,t,r,a);if(Ot.pop(),!d)return;return i.awaitedTypeOfType=d}var p=Ha(n,\"then\");if(!(p&&_s(p,0).length>0))return i.awaitedTypeOfType=n;if(t){if(!r)return e.Debug.fail();Wt(t,r,a)}}function ov(n){var t=ws(fg(n));if(!(1&t.flags)){var r,a,i=lg(n);switch(n.parent.kind){case 244:r=Wc([Ci(Yr(n.parent)),Me]);break;case 155:r=Me,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);break;case 158:r=Me,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);break;case 160:case 162:case 163:r=Wc([Mc(tb(n.parent)),Me]);break;default:return e.Debug.fail()}Du(t,r,n,i,(function(){return a}))}}function sv(n){if(n){var t=e.getFirstIdentifier(n),r=2097152|(75===n.kind?788968:1920),a=ur(t,t.escapedText,r,void 0,void 0,!0);a&&2097152&a.flags&&ta(a)&&!hb(kr(a))&&Ir(a)}}function cv(n){var t=lv(n);t&&e.isEntityName(t)&&sv(t)}function lv(e){if(e)switch(e.kind){case 178:case 177:return uv(e.types);case 179:return uv([e.trueType,e.falseType]);case 181:return lv(e.type);case 168:return e.typeName}}function uv(n){for(var t,r=0,a=n;r<a.length;r++){for(var i=a[r];181===i.kind;)i=i.type;if(136!==i.kind&&(B||99!==i.kind&&145!==i.kind)){var o=lv(i);if(!o)return;if(t){if(!e.isIdentifier(t)||!e.isIdentifier(o)||t.escapedText!==o.escapedText)return}else t=o}}return t}function dv(n){var t=e.getEffectiveTypeAnnotationNode(n);return e.isRestParameter(n)?e.getRestParameterElementType(t):t}function pv(n){if(n.decorators&&e.nodeCanBeDecorated(n,n.parent,n.parent.parent)){P.experimentalDecorators||Wt(n,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning);var t=n.decorators[0];if(Vb(t,8),155===n.kind&&Vb(t,32),P.emitDecoratorMetadata)switch(Vb(t,16),n.kind){case 244:var r=e.getFirstConstructorWithBody(n);if(r)for(var a=0,i=r.parameters;a<i.length;a++){cv(dv(i[a]))}break;case 162:case 163:var o=162===n.kind?163:162,s=e.getDeclarationOfKind(Yr(n),o);cv(yi(n)||s&&yi(s));break;case 160:for(var c=0,l=n.parameters;c<l.length;c++){cv(dv(l[c]))}cv(e.getEffectiveReturnTypeNode(n));break;case 158:cv(e.getEffectiveTypeAnnotationNode(n));break;case 155:cv(dv(n));for(var u=0,d=n.parent.parameters;u<d.length;u++){cv(dv(d[u]))}}e.forEach(n.decorators,ov)}}function mv(e){switch(e.kind){case 75:return e;case 193:return e.name;default:return}}function fv(n){pv(n),By(n);var r=e.getFunctionFlags(n);if(n.name&&153===n.name.kind&&kf(n.name),!lo(n)){var a=Yr(n),i=n.localSymbol||a,o=e.find(i.declarations,(function(e){return e.kind===n.kind&&!(131072&e.flags)}));n===o&&ev(i),a.parent&&e.getDeclarationOfKind(a,n.kind)===n&&ev(a)}var s=159===n.kind?void 0:n.body;if(Vh(s),Xg(n,Fs(n)),t&&!e.getEffectiveReturnTypeNode(n)&&(e.nodeIsMissing(s)&&!Zy(n)&&Qd(n,me),1&r&&e.nodeIsPresent(s)&&ws(Ns(n))),e.isInJSFile(n)){var c=e.getJSDocTypeTag(n);c&&c.typeExpression&&!vf(Kl(c.typeExpression),n)&&Wt(c,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}}function _v(n){if(t&&!(8388608&n.flags)){var r=e.getSourceFileOfNode(n),a=st.get(r.path);a||(a=[],st.set(r.path,a)),a.push(n)}}function gv(n,t){for(var r=0,a=n;r<a.length;r++){var i=a[r];switch(i.kind){case 244:case 213:hv(i,t),Ev(i,t);break;case 288:case 248:case 222:case 250:case 229:case 230:case 231:Lv(i,t);break;case 161:case 200:case 243:case 201:case 160:case 162:case 163:i.body&&Lv(i,t),Ev(i,t);break;case 159:case 164:case 165:case 169:case 170:case 246:case 245:Ev(i,t);break;case 180:bv(i,t);break;default:e.Debug.assertNever(i,\"Node should not have been registered for unused identifiers check\")}}}function yv(n,t,r){var a=e.getNameOfDeclaration(n)||n,i=Xh(n)?e.Diagnostics._0_is_declared_but_never_used:e.Diagnostics._0_is_declared_but_its_value_is_never_read;r(n,0,e.createDiagnosticForNode(a,i,t))}function vv(n){return e.isIdentifier(n)&&95===e.idText(n).charCodeAt(0)}function hv(n,t){for(var r=0,a=n.members;r<a.length;r++){var i=a[r];switch(i.kind){case 160:case 158:case 162:case 163:if(163===i.kind&&32768&i.symbol.flags)break;var o=Yr(i);!o.isReferenced&&e.hasModifier(i,8)&&t(i,0,e.createDiagnosticForNode(i.name,e.Diagnostics._0_is_declared_but_its_value_is_never_read,La(o)));break;case 161:for(var s=0,c=i.parameters;s<c.length;s++){var l=c[s];!l.symbol.isReferenced&&e.hasModifier(l,8)&&t(l,0,e.createDiagnosticForNode(l.name,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read,e.symbolName(l.symbol)))}break;case 166:case 221:break;default:e.Debug.fail()}}}function bv(n,t){var r=n.typeParameter;Tv(r)&&t(n,1,e.createDiagnosticForNode(n,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.idText(r.name)))}function Ev(n,t){if(e.last(Yr(n).declarations)===n)for(var r=e.getEffectiveTypeParameterDeclarations(n),a=new e.NodeSet,i=0,o=r;i<o.length;i++){var s=o[i];if(Tv(s)){var c=e.idText(s.name),l=s.parent;if(180!==l.kind&&l.typeParameters.every(Tv)){if(a.tryAdd(l)){var u=e.isJSDocTemplateTag(l)?e.rangeOfNode(l):e.rangeOfTypeParameters(l.typeParameters),d=1===r.length,p=d?e.Diagnostics._0_is_declared_but_its_value_is_never_read:e.Diagnostics.All_type_parameters_are_unused,m=d?c:void 0;t(s,1,e.createFileDiagnostic(e.getSourceFileOfNode(l),u.pos,u.end-u.pos,p,m))}}else t(s,1,e.createDiagnosticForNode(s,e.Diagnostics._0_is_declared_but_its_value_is_never_read,c))}}}function Tv(e){return!(262144&Xr(e.symbol).isReferenced||vv(e.name))}function Sv(e,n,t,r){var a=String(r(n)),i=e.get(a);i?i[1].push(t):e.set(a,[n,[t]])}function xv(n){return e.tryCast(e.getRootDeclaration(n),e.isParameter)}function Lv(n,t){if(!(8388608&n.flags)){var r=e.createMap(),a=e.createMap(),i=e.createMap();n.locals.forEach((function(n){var o;if(262144&n.flags?3&n.flags&&!(3&n.isReferenced):!n.isReferenced&&!n.exportSymbol)for(var s=0,c=n.declarations;s<c.length;s++){var l=c[s];if(!(e.isAmbientModule(l)||(e.isVariableDeclaration(l)&&e.isForInOrOfStatement(l.parent.parent)||Av(l))&&vv(l.name)))if(Av(l))Sv(r,254===(o=l).kind?o:255===o.kind?o.parent:o.parent.parent,l,x);else if(e.isBindingElement(l)&&e.isObjectBindingPattern(l.parent)){l!==e.last(l.parent.elements)&&e.last(l.parent.elements).dotDotDotToken||Sv(a,l.parent,l,x)}else if(e.isVariableDeclaration(l))Sv(i,l.parent,l,x);else{var u=n.valueDeclaration&&xv(n.valueDeclaration),d=n.valueDeclaration&&e.getNameOfDeclaration(n.valueDeclaration);u&&d?e.isParameterPropertyDeclaration(u,u.parent)||e.parameterIsThisKeyword(u)||vv(d)||t(u,1,e.createDiagnosticForNode(d,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.symbolName(n))):yv(l,e.symbolName(n),t)}}})),r.forEach((function(n){var r=n[0],a=n[1],i=r.parent;if((r.name?1:0)+(r.namedBindings?255===r.namedBindings.kind?1:r.namedBindings.elements.length:0)===a.length)t(i,0,1===a.length?e.createDiagnosticForNode(i,e.Diagnostics._0_is_declared_but_its_value_is_never_read,e.idText(e.first(a).name)):e.createDiagnosticForNode(i,e.Diagnostics.All_imports_in_import_declaration_are_unused));else for(var o=0,s=a;o<s.length;o++){var c=s[o];yv(c,e.idText(c.name),t)}})),a.forEach((function(n){var r=n[0],a=n[1],o=xv(r.parent)?1:0;if(r.elements.length===a.length)1===a.length&&241===r.parent.kind&&242===r.parent.parent.kind?Sv(i,r.parent.parent,r.parent,x):t(r,o,1===a.length?e.createDiagnosticForNode(r,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(e.first(a).name)):e.createDiagnosticForNode(r,e.Diagnostics.All_destructured_elements_are_unused));else for(var s=0,c=a;s<c.length;s++){var l=c[s];t(l,o,e.createDiagnosticForNode(l,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(l.name)))}})),i.forEach((function(n){var r=n[0],a=n[1];if(r.declarations.length===a.length)t(r,0,1===a.length?e.createDiagnosticForNode(e.first(a).name,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(e.first(a).name)):e.createDiagnosticForNode(224===r.parent.kind?r.parent:r,e.Diagnostics.All_variables_are_unused));else for(var i=0,o=a;i<o.length;i++){var s=o[i];t(s,0,e.createDiagnosticForNode(s,e.Diagnostics._0_is_declared_but_its_value_is_never_read,Cv(s.name)))}}))}}function Cv(n){switch(n.kind){case 75:return e.idText(n);case 189:case 188:return Cv(e.cast(e.first(n.elements),e.isBindingElement).name);default:return e.Debug.assertNever(n)}}function Av(e){return 254===e.kind||257===e.kind||255===e.kind}function Dv(n){if(222===n.kind&&fE(n),e.isFunctionOrModuleBlock(n)){var t=dt;e.forEach(n.statements,Vh),dt=t}else e.forEach(n.statements,Vh);n.locals&&_v(n)}function kv(n,t,r){if(!t||t.escapedText!==r)return!1;if(158===n.kind||157===n.kind||160===n.kind||159===n.kind||162===n.kind||163===n.kind)return!1;if(8388608&n.flags)return!1;var a=e.getRootDeclaration(n);return 155!==a.kind||!e.nodeIsMissing(a.parent.body)}function Nv(n){e.findAncestor(n,(function(t){return!!(4&Lb(t))&&(75!==n.kind?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Wt(n,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0)}))}function Iv(n){e.findAncestor(n,(function(t){return!!(8&Lb(t))&&(75!==n.kind?Wt(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Wt(n,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0)}))}function Mv(n,t){if(!(F>=e.ModuleKind.ES2015||P.noEmit)&&(kv(n,t,\"require\")||kv(n,t,\"exports\"))&&(!e.isModuleDeclaration(n)||1===e.getModuleInstanceState(n))){var r=Ka(n);288===r.kind&&e.isExternalOrCommonJsModule(r)&&Wt(t,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(t),e.declarationNameToString(t))}}function Ov(n,t){if(!(w>=4||P.noEmit)&&kv(n,t,\"Promise\")&&(!e.isModuleDeclaration(n)||1===e.getModuleInstanceState(n))){var r=Ka(n);288===r.kind&&e.isExternalOrCommonJsModule(r)&&2048&r.flags&&Wt(t,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(t),e.declarationNameToString(t))}}function Rv(e){return e===fe?me:e===gn?_n:e}function Pv(n){if(pv(n),e.isBindingElement(n)||Vh(n.type),n.name){if(153===n.name.kind&&(kf(n.name),n.initializer&&hy(n.initializer)),190===n.kind){188===n.parent.kind&&w<99&&Vb(n,4),n.propertyName&&153===n.propertyName.kind&&kf(n.propertyName);var t=n.parent.parent,r=za(t),a=n.propertyName||n.name;if(r&&!e.isBindingPattern(a)){var i=el(a);if(io(i)){var o=ms(r,uo(i));o&&(S_(o,void 0,!1),n_(t,!!t.initializer&&101===t.initializer.kind,r,o))}}}if(e.isBindingPattern(n.name)&&(189===n.name.kind&&w<2&&P.downlevelIteration&&Vb(n,512),e.forEach(n.name.elements,Vh)),n.initializer&&155===e.getRootDeclaration(n).kind&&e.nodeIsMissing(e.getContainingFunction(n).body))Wt(n,e.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);else if(e.isBindingPattern(n.name)){var s=n.initializer&&230!==n.parent.parent.kind,c=0===n.name.elements.length;if(s||c){var l=pi(n);if(s){var u=hy(n.initializer);B&&c?u_(u,n):ku(u,pi(n),n,n.initializer)}c&&(e.isArrayBindingPattern(n.name)?zv(65,l,ve,n):B&&u_(l,n))}}else{var d=Yr(n),p=Rv(Ci(d));if(n===d.valueDeclaration){var m=e.getEffectiveInitializer(n);if(m)e.isInJSFile(n)&&e.isObjectLiteralExpression(m)&&(0===m.properties.length||e.isPrototypeAccess(n.name))&&e.hasEntries(d.exports)||230===n.parent.parent.kind||ku(hy(m),p,n,m,void 0);d.declarations.length>1&&e.some(d.declarations,(function(t){return t!==n&&e.isVariableLike(t)&&!Fv(t,n)}))&&Wt(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}else{var f=Rv(pi(n));p===ge||f===ge||hu(p,f)||67108864&d.flags||wv(d.valueDeclaration,p,n,f),n.initializer&&ku(hy(n.initializer),f,n,n.initializer,void 0),Fv(n,d.valueDeclaration)||Wt(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}158!==n.kind&&157!==n.kind&&(nv(n),241!==n.kind&&190!==n.kind||function(n){if(0==(3&e.getCombinedNodeFlags(n))&&!e.isParameterDeclaration(n)&&(241!==n.kind||n.initializer)){var t=Yr(n);if(1&t.flags){if(!e.isIdentifier(n.name))return e.Debug.fail();var r=ur(n,n.name.escapedText,3,void 0,void 0,!1);if(r&&r!==t&&2&r.flags&&3&$f(r)){var a=e.getAncestor(r.valueDeclaration,242),i=224===a.parent.kind&&a.parent.parent?a.parent.parent:void 0;if(!(i&&(222===i.kind&&e.isFunctionLike(i.parent)||249===i.kind||248===i.kind||288===i.kind))){var o=La(r);Wt(n,e.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1,o,o)}}}}}(n),Mv(n,n.name),Ov(n,n.name))}}}function wv(n,t,r,a){var i=e.getNameOfDeclaration(r),o=158===r.kind||157===r.kind?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,s=e.declarationNameToString(i),c=Wt(i,o,s,Aa(t),Aa(a));n&&e.addRelatedInfo(c,e.createDiagnosticForNode(n,e.Diagnostics._0_was_also_declared_here,s))}function Fv(n,t){if(155===n.kind&&241===t.kind||241===n.kind&&155===t.kind)return!0;if(e.hasQuestionToken(n)!==e.hasQuestionToken(t))return!1;return e.getSelectedModifierFlags(n,504)===e.getSelectedModifierFlags(t,504)}function Gv(n){return function(n){if(230!==n.parent.parent.kind&&231!==n.parent.parent.kind)if(8388608&n.flags)sE(n);else if(!n.initializer){if(e.isBindingPattern(n.name)&&!e.isBindingPattern(n.parent))return pE(n,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(n))return pE(n,e.Diagnostics.const_declarations_must_be_initialized)}if(n.exclamationToken&&(224!==n.parent.parent.kind||!n.type||n.initializer||8388608&n.flags))return pE(n.exclamationToken,e.Diagnostics.Definite_assignment_assertions_can_only_be_used_along_with_a_type_annotation);P.module===e.ModuleKind.ES2015||P.module===e.ModuleKind.ESNext||P.module===e.ModuleKind.System||P.noEmit||8388608&n.parent.parent.flags||!e.hasModifier(n.parent.parent,1)||function n(t){if(75===t.kind){if(\"__esModule\"===e.idText(t))return pE(t,e.Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules)}else for(var r=t.elements,a=0,i=r;a<i.length;a++){var o=i[a];if(!e.isOmittedExpression(o))return n(o.name)}return!1}(n.name);(e.isLet(n)||e.isVarConst(n))&&function n(t){if(75===t.kind){if(114===t.originalKeywordKind)return pE(t,e.Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations)}else for(var r=t.elements,a=0,i=r;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||n(o.name)}return!1}(n.name)}(n),Pv(n)}function Bv(n){return function(n){if(n.dotDotDotToken){var t=n.parent.elements;if(n!==e.last(t))return pE(n,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(Hb(t,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),n.propertyName)return pE(n.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name);if(n.initializer)dE(n,n.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}}(n),Pv(n)}function Vv(n){jb(n)||cE(n.declarationList)||function(n){if(!function e(n){switch(n.kind){case 226:case 227:case 228:case 235:case 229:case 230:case 231:return!1;case 237:return e(n.parent)}return!0}(n.parent)){if(e.isLet(n.declarationList))return pE(n,e.Diagnostics.let_declarations_can_only_be_declared_inside_a_block);if(e.isVarConst(n.declarationList))pE(n,e.Diagnostics.const_declarations_can_only_be_declared_inside_a_block)}}(n),e.forEach(n.declarationList.declarations,Vh)}function Uv(n){fE(n),function(n,t){if(!B)return;var r=e.isIdentifier(n.expression)?n.expression:e.isPropertyAccessExpression(n.expression)?n.expression.name:void 0;if(!r)return;if(Id(t))return;if(0===_s(t,0).length)return;var a=nb(r);if(!a)return;e.forEachChild(n.thenStatement,(function n(t){if(e.isIdentifier(t)){var r=nb(t);if(r&&r.id===a.id)return!0}return e.forEachChild(t,n)}))||Wt(n.expression,e.Diagnostics.This_condition_will_always_return_true_since_the_function_is_always_defined_Did_you_mean_to_call_it_instead)}(n,jv(n.expression)),Vh(n.thenStatement),223===n.thenStatement.kind&&Wt(n.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),Vh(n.elseStatement)}function jv(n,t){var r=Py(n,t);return 16384&r.flags&&Wt(n,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Kv(n){tE(n);var t,r=i_(Py(n.expression));if(242===n.initializer.kind){var a=n.initializer.declarations[0];a&&e.isBindingPattern(a.name)&&Wt(a.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),Hv(n)}else{var i=n.initializer,o=Py(i);191===i.kind||192===i.kind?Wt(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):xu(131072&(t=il(al(r))).flags?Se:t,o)?ay(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access):Wt(i,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}r!==Oe&&sy(r,126091264)||Wt(n.expression,e.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0,Aa(r)),Vh(n.statement),n.locals&&_v(n)}function Hv(e){var n=e.initializer;n.declarations.length>=1&&Gv(n.declarations[0])}function Wv(e,n){return zv(n?15:13,r_(e),ve,e)}function zv(e,n,t,r){return Wa(n)?n:qv(e,n,t,r,!0)||me}function qv(n,t,r,a,i){var o=0!=(2&n);if(t!==Oe){var s=w>=2,c=!s&&P.downlevelIteration;if(s||c||o){var l=Qv(t,n,s?a:void 0);if(i&&l){var u=8&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:32&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:64&n?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:16&n?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;u&&Du(r,l.nextType,a,u)}if(l||s)return l&&l.yieldType}var d=t,p=!1,m=!1;if(4&n){if(1048576&d.flags){var f=t.types,_=e.filter(f,(function(e){return!(132&e.flags)}));_!==f&&(d=Wc(_,2))}else 132&d.flags&&(d=Oe);if((m=d!==t)&&(w<1&&a&&(Wt(a,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),p=!0),131072&d.flags))return Se}if(!fd(d)){if(a&&!p){var g=Jv(n,0,t,void 0),y=4&n&&!m?c?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:g?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1]:[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:c?[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:g?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1]:[e.Diagnostics.Type_0_is_not_an_array_type,!0],v=y[0];Jt(a,y[1]&&!!tv(d),v,Aa(d))}return m?Se:void 0}var h=hs(d,1);return m&&h?132&h.flags?Se:Wc([h,Se],2):h}ah(a,t,o)}function Jv(e,n,t,r){if(!Wa(t)){var a=Qv(t,e,r);return a&&a[N(n)]}}function Xv(e,n,t){if(void 0===e&&(e=Oe),void 0===n&&(n=Oe),void 0===t&&(t=ye),67359327&e.flags&&180227&n.flags&&180227&t.flags){var r=ec([e,n,t]),a=$n.get(r);return a||(a={yieldType:e,returnType:n,nextType:t},$n.set(r,a)),a}return{yieldType:e,returnType:n,nextType:t}}function Yv(n){for(var t,r,a,i=0,o=n;i<o.length;i++){var s=o[i];if(void 0!==s&&s!==et){if(s===nt)return nt;t=e.append(t,s.yieldType),r=e.append(r,s.returnType),a=e.append(a,s.nextType)}}return t||r||a?Xv(t&&Wc(t),r&&Wc(r),a&&Zc(a)):et}function Qv(n,t,r){if(Wa(n))return nt;if(!(1048576&n.flags)){var a=$v(n,t,r);return a===et?void(r&&ah(r,n,!!(2&t))):a}var i,o=2&t?\"iterationTypesOfAsyncIterable\":\"iterationTypesOfIterable\",s=n[o];if(s)return s===et?void 0:s;for(var c=0,l=n.types;c<l.length;c++){var u=$v(l[c],t,r);u===et?r&&(ah(r,n,!!(2&t)),r=void 0):i=e.append(i,u)}var d=i?Yv(i):et;return n[o]=d,d===et?void 0:d}function Zv(e,n){if(e===et)return et;if(e===nt)return nt;var t=e.yieldType,r=e.returnType,a=e.nextType;return Xv(iv(t,n)||me,iv(r,n)||me,a)}function $v(e,n,t){if(Wa(e))return nt;var r;if(2&n&&(r=eh(e,at)||th(e,at)))return r;if(1&n&&(r=eh(e,it)||th(e,it))){if(!(2&n))return r;if(r!==et)return e.iterationTypesOfAsyncIterable=Zv(r,t)}if(2&n&&(r=rh(e,at,t))!==et)return r;if(1&n&&(r=rh(e,it,t))!==et)return 2&n?e.iterationTypesOfAsyncIterable=r?Zv(r,t):et:r;return et}function eh(e,n){return e[n.iterableCacheKey]}function nh(e,n){var t=eh(e,n)||rh(e,n,void 0);return t===et?rt:t}function th(e,n){var t;if(Ai(e,t=n.getGlobalIterableType(!1))||Ai(e,t=n.getGlobalIterableIteratorType(!1))){var r=ic(e)[0],a=nh(t,n),i=a.returnType,o=a.nextType;return e[n.iterableCacheKey]=Xv(r,i,o)}if(Ai(e,n.getGlobalGeneratorType(!1))){var s=ic(e);r=s[0],i=s[1],o=s[2];return e[n.iterableCacheKey]=Xv(r,i,o)}}function rh(n,t,r){var a=ms(n,e.getPropertyNameForKnownSymbolName(t.iteratorSymbolName)),i=!a||16777216&a.flags?void 0:Ci(a);if(Wa(i))return n[t.iterableCacheKey]=nt;var o=i?_s(i,0):void 0;if(!e.some(o))return n[t.iterableCacheKey]=et;var s=ih(Wc(e.map(o,ws),2),t,r)||et;return n[t.iterableCacheKey]=s}function ah(n,t,r){var a=r?e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator;Jt(n,!!tv(t),a,Aa(t))}function ih(e,n,t){if(Wa(e))return nt;var r=oh(e,n)||function(e,n){var t=n.getGlobalIterableIteratorType(!1);if(Ai(e,t)){var r=ic(e)[0],a=oh(t,n)||ph(t,n,void 0),i=a===et?rt:a,o=i.returnType,s=i.nextType;return e[n.iteratorCacheKey]=Xv(r,o,s)}if(Ai(e,n.getGlobalIteratorType(!1))||Ai(e,n.getGlobalGeneratorType(!1))){var c=ic(e);r=c[0],o=c[1],s=c[2];return e[n.iteratorCacheKey]=Xv(r,o,s)}}(e,n)||ph(e,n,t);return r===et?void 0:r}function oh(e,n){return e[n.iteratorCacheKey]}function sh(e,n){var t=Ha(e,\"done\")||Ce;return xu(0===n?Ce:De,t)}function ch(e){return sh(e,0)}function lh(e){return sh(e,1)}function uh(e){if(Wa(e))return nt;var n,t=e.iterationTypesOfIteratorResult;if(t)return t;if(Ai(e,(n=!1,Nn||(Nn=xc(\"IteratorYieldResult\",1,n))||ze))){var r=ic(e)[0];return e.iterationTypesOfIteratorResult=Xv(r,void 0,void 0)}if(Ai(e,function(e){return In||(In=xc(\"IteratorReturnResult\",1,e))||ze}(!1))){var a=ic(e)[0];return e.iterationTypesOfIteratorResult=Xv(void 0,a,void 0)}var i=am(e,ch),o=i!==Oe?Ha(i,\"value\"):void 0,s=am(e,lh),c=s!==Oe?Ha(s,\"value\"):void 0;return e.iterationTypesOfIteratorResult=o||c?Xv(o,c||Me,void 0):et}function dh(n,t,r,a){var i=ms(n,r);if(i||\"next\"===r){var o=!i||\"next\"===r&&16777216&i.flags?void 0:\"next\"===r?Ci(i):Up(Ci(i),2097152);if(Wa(o))return\"next\"===r?nt:tt;var s,c,l,u,d,p=o?_s(o,0):e.emptyArray;if(0===p.length){if(a)Wt(a,\"next\"===r?t.mustHaveANextMethodDiagnostic:t.mustBeAMethodDiagnostic,r);return\"next\"===r?nt:void 0}for(var m=0,f=p;m<f.length;m++){var _=f[m];\"throw\"!==r&&e.some(_.parameters)&&(s=e.append(s,Ag(_,0))),c=e.append(c,ws(_))}if(\"throw\"!==r){var g=s?Wc(s):ye;if(\"next\"===r)u=g;else if(\"return\"===r){var y=t.resolveIterationType(g,a)||me;l=e.append(l,y)}}var v=c?Wc(c,2):Oe,h=uh(t.resolveIterationType(v,a)||me);return h===et?(a&&Wt(a,t.mustHaveAValueDiagnostic,r),d=me,l=e.append(l,me)):(d=h.yieldType,l=e.append(l,h.returnType)),Xv(d,Wc(l),u)}}function ph(e,n,t){var r=Yv([dh(e,n,\"next\",t),dh(e,n,\"return\",t),dh(e,n,\"throw\",t)]);return e[n.iteratorCacheKey]=r}function mh(e,n,t){if(!Wa(n)){var r=fh(n,t);return r&&r[N(e)]}}function fh(e,n){if(Wa(e))return nt;var t=n?at:it;return Qv(e,n?2:1,void 0)||ih(e,t,void 0)}function _h(n){fE(n)||function(n){var t=n;for(;t;){if(e.isFunctionLike(t))return pE(n,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(t.kind){case 237:if(n.label&&t.label.escapedText===n.label.escapedText)return!!(232===n.kind&&!e.isIterationStatement(t.statement,!0))&&pE(n,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);break;case 236:if(233===n.kind&&!n.label)return!1;break;default:if(e.isIterationStatement(t,!1)&&!n.label)return!1}t=t.parent}if(n.label){var r=233===n.kind?e.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;return pE(n,r)}r=233===n.kind?e.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:e.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;pE(n,r)}(n)}function gh(e,n){var t=!!(2&n);return!!(1&n)?mh(1,e,t)||ge:t?rv(e)||ge:e}function yh(n,t){var r=gh(t,e.getFunctionFlags(n));return!!r&&oy(r,16387)}function vh(n){fE(n)||void 0===n.expression&&function(n,t,r,a,i){var o=e.getSourceFileOfNode(n);if(!lE(o)){var s=e.getSpanOfTokenAtPosition(o,n.pos);return Rt.add(e.createFileDiagnostic(o,e.textSpanEnd(s),0,t,r,a,i)),!0}}(n,e.Diagnostics.Line_break_not_permitted_here),n.expression&&Py(n.expression)}function hh(n){var t,r=Js(n.symbol,1),a=Js(n.symbol,0),i=hs(n,0),o=hs(n,1);if(i||o){e.forEach(zo(n),(function(e){var t=Ci(e);m(e,t,n,a,i,0),m(e,t,n,r,o,1)}));var s=n.symbol.valueDeclaration;if(1&e.getObjectFlags(n)&&e.isClassLike(s))for(var c=0,l=s.members;c<l.length;c++){var u=l[c];if(!e.hasModifier(u,32)&&lo(u)){var d=Yr(u),p=Ci(d);m(d,p,n,a,i,0),m(d,p,n,r,o,1)}}}i&&o&&(!(t=r||a)&&2&e.getObjectFlags(n)&&(t=e.forEach(Vi(n),(function(e){return hs(e,0)&&hs(e,1)}))?void 0:n.symbol.declarations[0]));function m(n,t,r,a,i,o){if(i&&!e.isKnownSymbol(n)){var s=n.valueDeclaration,c=s&&e.getNameOfDeclaration(s);if(1!==o||(c?Cf(c):Df(n.escapedName))){var l;if(s&&c&&(208===s.kind||153===c.kind||n.parent===r.symbol))l=s;else if(a)l=a;else if(2&e.getObjectFlags(r)){l=e.forEach(Vi(r),(function(e){return qo(e,n.escapedName)&&hs(e,o)}))?void 0:r.symbol.declarations[0]}if(l&&!xu(t,i))Wt(l,0===o?e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2:e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2,La(n),Aa(t),Aa(i))}}}t&&!xu(o,i)&&Wt(t,e.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1,Aa(o),Aa(i))}function bh(e,n){switch(e.escapedText){case\"any\":case\"unknown\":case\"number\":case\"bigint\":case\"boolean\":case\"string\":case\"symbol\":case\"void\":case\"object\":Wt(e,n,e.escapedText)}}function Eh(n){if(n)for(var r=!1,a=0;a<n.length;a++){var i=n[a];if(wy(i),t){i.default?(r=!0,Th(i.default,n,a)):r&&Wt(i,e.Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters);for(var o=0;o<a;o++)n[o].symbol===i.symbol&&Wt(i.name,e.Diagnostics.Duplicate_identifier_0,e.declarationNameToString(i.name))}}}function Th(n,t,r){!function n(a){if(168===a.kind){var i=vc(a);if(262144&i.flags)for(var o=r;o<t.length;o++)i.symbol===Yr(t[o])&&Wt(a,e.Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters)}e.forEachChild(a,n)}(n)}function Sh(n){if(1!==n.declarations.length){var t=ir(n);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var r=function(n){return e.filter(n.declarations,(function(e){return 244===e.kind||245===e.kind}))}(n);if(r.length<=1)return;if(!function(n,t){for(var r=e.length(t),a=Ds(t),i=0,o=n;i<o.length;i++){var s=o[i],c=e.getEffectiveTypeParameterDeclarations(s),l=c.length;if(l<a||l>r)return!1;for(var u=0;u<l;u++){var d=c[u],p=t[u];if(d.name.escapedText!==p.symbol.escapedName)return!1;var m=e.getEffectiveConstraintOfTypeParameter(d),f=m&&Kl(m),_=Qo(p);if(f&&_&&!hu(f,_))return!1;var g=d.default&&Kl(d.default),y=ss(p);if(g&&y&&!hu(g,y))return!1}}return!0}(r,Yi(n).localTypeParameters))for(var a=La(n),i=0,o=r;i<o.length;i++){Wt(o[i].name,e.Diagnostics.All_declarations_of_0_must_have_identical_type_parameters,a)}}}}function xh(n){var r;!function(n){var t=e.getSourceFileOfNode(n);(function(n){var t=!1,r=!1;if(!jb(n)&&n.heritageClauses)for(var a=0,i=n.heritageClauses;a<i.length;a++){var o=i[a];if(89===o.token){if(t)return uE(o,e.Diagnostics.extends_clause_already_seen);if(r)return uE(o,e.Diagnostics.extends_clause_must_precede_implements_clause);if(o.types.length>1)return uE(o.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);t=!0}else{if(e.Debug.assert(112===o.token),r)return uE(o,e.Diagnostics.implements_clause_already_seen);r=!0}Yb(o)}})(n)||Wb(n.typeParameters,t)}(n),pv(n),n.name&&(bh(n.name,e.Diagnostics.Class_name_cannot_be_0),Mv(n,n.name),Ov(n,n.name),8388608&n.flags||(r=n.name,1===w&&\"Object\"===r.escapedText&&F!==e.ModuleKind.ES2015&&F!==e.ModuleKind.ESNext&&Wt(r,e.Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0,e.ModuleKind[F]))),Eh(e.getEffectiveTypeParameterDeclarations(n)),nv(n);var a=Yr(n),i=Yi(a),o=go(i),s=Ci(a);Sh(a),function(n){for(var t=e.createUnderscoreEscapedMap(),r=e.createUnderscoreEscapedMap(),a=0,i=n.members;a<i.length;a++){var o=i[a];if(161===o.kind)for(var s=0,c=o.parameters;s<c.length;s++){var l=c[s];e.isParameterPropertyDeclaration(l,o)&&!e.isBindingPattern(l.name)&&m(t,l.name,l.name.escapedText,3)}else{var u=e.hasModifier(o,32)?r:t,d=o.name,p=d&&e.getPropertyNameForPropertyNameNode(d);if(d&&p)switch(o.kind){case 162:m(u,d,p,1);break;case 163:m(u,d,p,2);break;case 158:m(u,d,p,3);break;case 160:m(u,d,p,8)}}}function m(n,t,r,a){var i=n.get(r);i?8&i?8!==a&&Wt(t,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(t)):i&a?Wt(t,e.Diagnostics.Duplicate_identifier_0,e.getTextOfNode(t)):n.set(r,i|a):n.set(r,a)}}(n),8388608&n.flags||function(n){for(var t=0,r=n.members;t<r.length;t++){var a=r[t],i=a.name;if(e.hasModifier(a,32)&&i){var o=e.getPropertyNameForPropertyNameNode(i);switch(o){case\"name\":case\"length\":case\"caller\":case\"arguments\":case\"prototype\":Wt(i,e.Diagnostics.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1,o,wa(Yr(n)))}}}}(n);var c=e.getEffectiveBaseTypeNode(n);if(c){e.forEach(c.typeArguments,Vh),w<2&&Vb(c.parent,1);var l=e.getClassExtendsHeritageElement(n);l&&l!==c&&Py(l.expression);var u=Vi(i);if(u.length&&t){var d=u[0],p=Bi(i),m=ls(p);if(function(n,t){var r=_s(n,1);if(r.length){var a=r[0].declaration;if(a&&e.hasModifier(a,8)){var i=e.getClassLikeDeclarationOfSymbol(n.symbol);Zh(t,i)||Wt(t,e.Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private,Or(n.symbol))}}}(m,c),Vh(c.expression),e.some(c.typeArguments)){e.forEach(c.typeArguments,Vh);for(var f=0,_=Fi(m,c.typeArguments,c);f<_.length;f++){if(!qy(c,_[f].typeParameters))break}}if(Du(o,T=go(d,i.thisType),void 0)?Du(s,vu(m),n.name||n,e.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1):Lh(n,o,T,e.Diagnostics.Class_0_incorrectly_extends_base_class_1),8650752&p.flags&&!Ri(s)&&Wt(n.name||n,e.Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any),!(m.symbol&&32&m.symbol.flags||8650752&p.flags)){var g=Gi(m,c.typeArguments,c);e.forEach(g,(function(e){return!_g(e.declaration)&&!hu(ws(e),d)}))&&Wt(c.expression,e.Diagnostics.Base_constructors_must_all_have_the_same_return_type)}!function(n,t){var r=Xo(t);e:for(var a=0,i=r;a<i.length;a++){var o=i[a],s=Ch(o);if(!(4194304&s.flags)){var c=Ch(qo(n,s.escapedName)),l=e.getDeclarationModifierFlagsFromSymbol(s);if(e.Debug.assert(!!c,\"derived should point to something, even if it is the base class' declaration.\"),c===s){var u=e.getClassLikeDeclarationOfSymbol(n.symbol);if(128&l&&(!u||!e.hasModifier(u,128))){for(var d=0,p=Vi(n);d<p.length;d++){var m=p[d];if(m!==t){var f=qo(m,s.escapedName),_=f&&Ch(f);if(_&&_!==s)continue e}}213===u.kind?Wt(u,e.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1,La(o),Aa(t)):Wt(u,e.Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2,Aa(n),La(o),Aa(t))}}else{var g=e.getDeclarationModifierFlagsFromSymbol(c);if(8&l||8&g)continue;var y=void 0,v=98308&s.flags,h=98308&c.flags;if(v&&h){if(!P.useDefineForClassFields||128&l&&!(s.valueDeclaration&&e.isPropertyDeclaration(s.valueDeclaration)&&s.valueDeclaration.initializer)||s.valueDeclaration&&245===s.valueDeclaration.parent.kind||c.valueDeclaration&&e.isBinaryExpression(c.valueDeclaration))continue;if(4!==v&&4===h)y=e.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_property;else{if(4!==v||4===h){var b=e.find(c.declarations,(function(e){return 158===e.kind&&!e.initializer}));if(b&&!(33554432&c.flags)&&!(128&l)&&!(128&g)&&!c.declarations.some((function(e){return 8388608&e.flags}))){var E=ra(e.getClassLikeDeclarationOfSymbol(n.symbol)),T=b.name;if(b.exclamationToken||!E||!e.isIdentifier(T)||!B||!Dh(T,n,E)){var S=e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;Wt(e.getNameOfDeclaration(c.valueDeclaration)||c.valueDeclaration,S,La(s),Aa(t))}}continue}y=e.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_accessor}}else if(e_(s)){if(e_(c)||4&c.flags)continue;e.Debug.assert(!!(98304&c.flags)),y=e.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor}else y=98304&s.flags?e.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:e.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;Wt(e.getNameOfDeclaration(c.valueDeclaration)||c.valueDeclaration,y,Aa(t),La(s),Aa(n))}}}}(i,d)}}var y=e.getClassImplementsHeritageClauseElements(n);if(y)for(var v=0,h=y;v<h.length;v++){var b=h[v];if(e.isEntityNameExpression(b.expression)||Wt(b.expression,e.Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments),Xy(b),t){var E=Kl(b);if(E!==ge)if(Ui(E)){var T,S=E.symbol&&32&E.symbol.flags?e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:e.Diagnostics.Class_0_incorrectly_implements_interface_1;Du(o,T=go(E,i.thisType),void 0)||Lh(n,o,T,S)}else Wt(b,e.Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members)}}t&&(hh(i),Uy(n),function(n){if(!B||!j||8388608&n.flags)return;for(var t=ra(n),r=0,a=n.members;r<a.length;r++){var i=a[r];if(!(2&e.getModifierFlags(i))&&Ah(i)){var o=i.name;if(e.isIdentifier(o)){var s=Ci(Yr(i));3&s.flags||32768&Id(s)||t&&Dh(o,s,t)||Wt(i.name,e.Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor,e.declarationNameToString(o))}}}}(n))}function Lh(n,t,r,a){for(var i=!1,o=function(n){if(e.hasStaticModifier(n))return\"continue\";var a=n.name&&nb(n.name)||nb(n);if(a){var o=ms(t,a.escapedName),s=ms(r,a.escapedName);if(o&&s){Du(Ci(o),Ci(s),n.name||n,void 0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2,La(a),Aa(t),Aa(r))}))||(i=!0)}}},s=0,c=n.members;s<c.length;s++){o(c[s])}i||Du(t,r,n.name||n,a)}function Ch(n){return 1&e.getCheckFlags(n)?n.target:n}function Ah(n){return 158===n.kind&&!e.hasModifier(n,160)&&!n.exclamationToken&&!n.initializer}function Dh(n,t,r){var a=e.createPropertyAccess(e.createThis(),n);return a.expression.parent=a,a.parent=r,a.flowNode=r.returnFlowNode,!(32768&Id(Am(a,t,Pd(t))))}function kh(n){if(jb(n)||function(n){var t=!1;if(n.heritageClauses)for(var r=0,a=n.heritageClauses;r<a.length;r++){var i=a[r];if(89!==i.token)return e.Debug.assert(112===i.token),uE(i,e.Diagnostics.Interface_declaration_cannot_have_implements_clause);if(t)return uE(i,e.Diagnostics.extends_clause_already_seen);t=!0,Yb(i)}}(n),Eh(n.typeParameters),t){bh(n.name,e.Diagnostics.Interface_name_cannot_be_0),nv(n);var r=Yr(n);if(Sh(r),n===e.getDeclarationOfKind(r,245)){var a=Yi(r),i=go(a);if(function(n,t){var r=Vi(n);if(r.length<2)return!0;var a=e.createUnderscoreEscapedMap();e.forEach(ao(n).declaredProperties,(function(e){a.set(e.escapedName,{prop:e,containingType:n})}));for(var i=!0,o=0,s=r;o<s.length;o++)for(var c=s[o],l=0,u=Xo(go(c,n.thisType));l<u.length;l++){var d=u[l],p=a.get(d.escapedName);if(p){if(p.containingType!==n&&0===cd(p.prop,d,bu)){i=!1;var m=Aa(p.containingType),f=Aa(c),_=e.chainDiagnosticMessages(void 0,e.Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical,La(d),m,f);_=e.chainDiagnosticMessages(_,e.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2,Aa(n),m,f),Rt.add(e.createDiagnosticForNodeFromMessageChain(t,_))}}else a.set(d.escapedName,{prop:d,containingType:c})}return i}(a,n.name)){for(var o=0,s=Vi(a);o<s.length;o++){Du(i,go(s[o],a.thisType),n.name,e.Diagnostics.Interface_0_incorrectly_extends_interface_1)}hh(a)}}Vy(n)}e.forEach(e.getInterfaceBaseTypeNodes(n),(function(n){e.isEntityNameExpression(n.expression)||Wt(n.expression,e.Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments),Xy(n)})),e.forEach(n.members,Vh),t&&(Uy(n),_v(n))}function Nh(e){var n=or(e);if(!(16384&n.flags)){n.flags|=16384;for(var t=0,r=0,a=e.members;r<a.length;r++){var i=a[r],o=Ih(i,t);or(i).enumMemberValue=o,t=\"number\"==typeof o?o+1:void 0}}}function Ih(n,t){if(qa(n.name))Wt(n.name,e.Diagnostics.Computed_property_names_are_not_allowed_in_enums);else{var r=e.getTextOfPropertyName(n.name);Df(r)&&!Af(r)&&Wt(n.name,e.Diagnostics.An_enum_member_cannot_have_a_numeric_name)}return n.initializer?function(n){var t=Wi(Yr(n.parent)),r=e.isEnumConst(n.parent),a=n.initializer,i=1!==t||Hi(n)?function t(r){switch(r.kind){case 206:var a=t(r.operand);if(\"number\"==typeof a)switch(r.operator){case 39:return a;case 40:return-a;case 54:return~a}break;case 208:var i=t(r.left),s=t(r.right);if(\"number\"==typeof i&&\"number\"==typeof s)switch(r.operatorToken.kind){case 51:return i|s;case 50:return i&s;case 48:return i>>s;case 49:return i>>>s;case 47:return i<<s;case 52:return i^s;case 41:return i*s;case 43:return i/s;case 39:return i+s;case 40:return i-s;case 44:return i%s;case 42:return Math.pow(i,s)}else if(\"string\"==typeof i&&\"string\"==typeof s&&39===r.operatorToken.kind)return i+s;break;case 10:case 14:return r.text;case 8:return _E(r),+r.text;case 199:return t(r.expression);case 75:var c=r;return Af(c.escapedText)?+c.escapedText:e.nodeIsMissing(r)?0:o(r,Yr(n.parent),c.escapedText);case 194:case 193:var l=r;if(function n(t){return 75===t.kind||193===t.kind&&n(t.expression)||194===t.kind&&n(t.expression)&&e.isStringLiteralLike(t.argumentExpression)}(l)){var u=Oy(l.expression);if(u.symbol&&384&u.symbol.flags){var d=void 0;return d=193===l.kind?l.name.escapedText:e.escapeLeadingUnderscores(e.cast(l.argumentExpression,e.isLiteralExpression).text),o(r,u.symbol,d)}}}return}(a):void 0;if(void 0!==i)r&&\"number\"==typeof i&&!isFinite(i)&&Wt(a,isNaN(i)?e.Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:e.Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value);else{if(1===t)return Wt(a,e.Diagnostics.Computed_values_are_not_permitted_in_an_enum_with_string_valued_members),0;r?Wt(a,e.Diagnostics.const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values):8388608&n.parent.flags?Wt(a,e.Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression):Du(Py(a),Yi(Yr(n.parent)),a,void 0)}return i;function o(t,r,a){var i=r.exports.get(a);if(i){var o=i.valueDeclaration;if(o!==n)return lr(o,n)?Cb(o):(Wt(t,e.Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums),0)}}}(n):8388608&n.parent.flags&&!e.isEnumConst(n.parent)&&0===Wi(Yr(n.parent))?void 0:void 0!==t?t:void Wt(n.name,e.Diagnostics.Enum_member_must_have_initializer)}function Mh(n){if(t){var r=e.isGlobalScopeAugmentation(n),a=8388608&n.flags;r&&!a&&Wt(n.name,e.Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);var i=e.isAmbientModule(n);if(Fh(n,i?e.Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:e.Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module))return;jb(n)||a||10!==n.name.kind||pE(n.name,e.Diagnostics.Only_ambient_modules_can_use_quoted_names),e.isIdentifier(n.name)&&(Mv(n,n.name),Ov(n,n.name)),nv(n);var o=Yr(n);if(512&o.flags&&!a&&o.declarations.length>1&&C(n,!!P.preserveConstEnums||!!P.isolatedModules)){var s=function(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t];if((244===a.kind||243===a.kind&&e.nodeIsPresent(a.body))&&!(8388608&a.flags))return a}}(o);s&&(e.getSourceFileOfNode(n)!==e.getSourceFileOfNode(s)?Wt(n.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):n.pos<s.pos&&Wt(n.name,e.Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged));var c=e.getDeclarationOfKind(o,244);c&&(d=n,p=c,m=e.getEnclosingBlockScopeContainer(d),f=e.getEnclosingBlockScopeContainer(p),sr(m)?sr(f):!sr(f)&&m===f)&&(or(n).flags|=32768)}if(i)if(e.isExternalModuleAugmentation(n)){if((r||33554432&Yr(n).flags)&&n.body)for(var l=0,u=n.body.statements;l<u.length;l++){Oh(u[l],r)}}else sr(n.parent)?r?Wt(n.name,e.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations):e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(n.name))&&Wt(n.name,e.Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name):Wt(n.name,r?e.Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:e.Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces)}var d,p,m,f;n.body&&(Vh(n.body),e.isGlobalScopeAugmentation(n)||_v(n))}function Oh(n,t){switch(n.kind){case 224:for(var r=0,a=n.declarationList.declarations;r<a.length;r++){Oh(a[r],t)}break;case 258:case 259:uE(n,e.Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);break;case 252:case 253:uE(n,e.Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);break;case 190:case 241:var i=n.name;if(e.isBindingPattern(i)){for(var o=0,s=i.elements;o<s.length;o++){Oh(s[o],t)}break}case 244:case 247:case 243:case 245:case 248:case 246:if(t)return;var c=Yr(n);if(c){var l=!(33554432&c.flags);l||(l=!!c.parent&&e.isExternalModuleAugmentation(c.parent.declarations[0]))}}}function Rh(n){var t=e.getExternalModuleName(n);if(!t||e.nodeIsMissing(t))return!1;if(!e.isStringLiteral(t))return Wt(t,e.Diagnostics.String_literal_expected),!1;var r=249===n.parent.kind&&e.isAmbientModule(n.parent.parent);return 288===n.parent.kind||r?!(r&&e.isExternalModuleNameRelative(t.text)&&!Oa(n))||(Wt(n,e.Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name),!1):(Wt(t,259===n.kind?e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace:e.Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module),!1)}function Ph(n){var t=Yr(n),r=kr(t);if(!(67108864&t.flags)&&r!==de){var a=(1160127&(t=Xr(t.exportSymbol||t)).flags?111551:0)|(788968&t.flags?788968:0)|(1920&t.flags?1920:0);if(r.flags&a)Wt(n,261===n.kind?e.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0:e.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0,La(t));!P.isolatedModules||261!==n.kind||111551&r.flags||8388608&n.flags||Wt(n,e.Diagnostics.Cannot_re_export_a_type_when_the_isolatedModules_flag_is_provided)}}function wh(e){Mv(e,e.name),Ov(e,e.name),Ph(e)}function Fh(e,n){var t=288===e.parent.kind||249===e.parent.kind||248===e.parent.kind;return t||uE(e,n),!t}function Gh(n){if(Ph(n),e.getEmitDeclarations(P)&&Ga(n.propertyName||n.name,!0),!n.parent.parent.moduleSpecifier){var t=n.propertyName||n.name,r=ur(t,t.escapedText,2998271,void 0,void 0,!0);if(r&&(r===Y||r===Q||sr(Ka(r.declarations[0]))))Wt(t,e.Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module,e.idText(t));else{Nr(n);var a=r&&(2097152&r.flags?kr(r):r);(!a||a===de||111551&a.flags)&&hy(n.propertyName||n.name)}}}function Bh(n){var t=Yr(n),r=ir(t);if(!r.exportsChecked){var a=t.exports.get(\"export=\");if(a&&function(n){return e.forEachEntry(n.exports,(function(e,n){return\"export=\"!==n}))}(t)){var i=hr(a)||a.valueDeclaration;Oa(i)||e.isInJSFile(i)||Wt(i,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var o=zr(t);o&&o.forEach((function(n,t){var r=n.declarations,a=n.flags;if(\"__export\"!==t&&!(1984&a)){var i=e.countWhere(r,S);if(!(524288&a&&i<=2)&&i>1)for(var o=0,s=r;o<s.length;o++){var c=s[o];A(c)&&Rt.add(e.createDiagnosticForNode(c,e.Diagnostics.Cannot_redeclare_exported_variable_0,e.unescapeLeadingUnderscores(t)))}}})),r.exportsChecked=!0}}function Vh(n){if(n){var a=s;s=n,y=0,function(n){e.isInJSFile(n)&&e.forEach(n.jsDoc,(function(n){var t=n.tags;return e.forEach(t,Vh)}));var a=n.kind;if(r)switch(a){case 248:case 244:case 245:case 243:r.throwIfCancellationRequested()}a>=224&&a<=240&&n.flowNode&&!Sm(n.flowNode)&&qt(!1===P.allowUnreachableCode,n,e.Diagnostics.Unreachable_code_detected);switch(a){case 154:return wy(n);case 155:return Fy(n);case 158:case 157:return jy(n);case 169:case 170:case 164:case 165:case 166:return By(n);case 160:case 159:return function(n){iE(n)||Zb(n.name),fv(n),e.hasModifier(n,128)&&160===n.kind&&n.body&&Wt(n,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(n.name))}(n);case 161:return Ky(n);case 162:case 163:return Hy(n);case 168:return Xy(n);case 167:return function(n){var t=function(e){switch(e.parent.kind){case 201:case 164:case 243:case 200:case 169:case 160:case 159:var n=e.parent;if(e===n.type)return n}}(n);if(t){var r=Ns(t),a=Ps(r);if(a){Vh(n.type);var i=n.parameterName;if(0===a.kind||2===a.kind)jl(i);else if(a.parameterIndex>=0){if(I(r)&&a.parameterIndex===r.parameters.length-1)Wt(i,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);else if(a.type){Du(a.type,Ci(r.parameters[a.parameterIndex]),n.type,void 0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)}))}}else if(i){for(var o=!1,s=0,c=t.parameters;s<c.length;s++){var l=c[s].name;if(e.isBindingPattern(l)&&Gy(l,i,a.parameterName)){o=!0;break}}o||Wt(n.parameterName,e.Diagnostics.Cannot_find_parameter_0,a.parameterName)}}}else Wt(n,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods)}(n);case 171:return function(e){bc(e)}(n);case 172:return function(n){e.forEach(n.members,Vh),t&&(hh(Dl(n)),Uy(n),Vy(n))}(n);case 173:return function(e){Vh(e.elementType)}(n);case 174:return function(n){for(var t=n.elementTypes,r=!1,a=0;a<t.length;a++){var i=t[a];if(176===i.kind){if(a!==t.length-1){pE(i,e.Diagnostics.A_rest_element_must_be_last_in_a_tuple_type);break}dd(Kl(i.type))||Wt(i,e.Diagnostics.A_rest_element_type_must_be_an_array_type)}else if(175===i.kind)r=!0;else if(r){pE(i,e.Diagnostics.A_required_element_cannot_follow_an_optional_element);break}}e.forEach(n.elementTypes,Vh)}(n);case 177:case 178:return function(n){e.forEach(n.types,Vh)}(n);case 181:case 175:case 176:return Vh(n.type);case 182:return function(e){jl(e)}(n);case 183:return Qy(n);case 179:return function(n){e.forEachChild(n,Vh)}(n);case 180:return function(n){e.findAncestor(n,(function(e){return e.parent&&179===e.parent.kind&&e.parent.extendsType===e}))||pE(n,e.Diagnostics.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type),Vh(n.typeParameter),_v(n)}(n);case 187:return function(e){Vh(e.argument),Kl(e)}(n);case 305:return function(n){var t=e.getJSDocHost(n);if(e.isClassDeclaration(t)||e.isClassExpression(t)){var r=e.getJSDocTags(t).filter(e.isJSDocAugmentsTag);e.Debug.assert(r.length>0),r.length>1&&Wt(r[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var a=mv(n.class.expression),i=e.getClassExtendsHeritageElement(t);if(i){var o=mv(i.expression);o&&a.escapedText!==o.escapedText&&Wt(a,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(n.tagName),e.idText(a),e.idText(o))}}else Wt(t,e.Diagnostics.JSDoc_0_is_not_attached_to_a_class,e.idText(n.tagName))}(n);case 315:case 308:case 309:return function(n){n.typeExpression||Wt(n.name,e.Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags),n.name&&bh(n.name,e.Diagnostics.Type_alias_name_cannot_be_0),Vh(n.typeExpression)}(n);case 314:return function(e){Vh(e.constraint);for(var n=0,t=e.typeParameters;n<t.length;n++){Vh(t[n])}}(n);case 313:return function(e){Vh(e.typeExpression)}(n);case 310:return function(n){if(Vh(n.typeExpression),!e.getParameterSymbolFromJSDoc(n)){var t=e.getHostSignatureFromJSDoc(n);if(t){var r=e.getJSDocTags(t).filter(e.isJSDocParameterTag).indexOf(n);if(r>-1&&r<t.parameters.length&&e.isBindingPattern(t.parameters[r].name))return;Ms(t)?e.findLast(e.getJSDocTags(t),e.isJSDocParameterTag)===n&&n.typeExpression&&n.typeExpression.type&&!dd(Kl(n.typeExpression.type))&&Wt(n.name,e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type,e.idText(152===n.name.kind?n.name.right:n.name)):e.isQualifiedName(n.name)?Wt(n.name,e.Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1,e.entityNameToString(n.name),e.entityNameToString(n.name.left)):Wt(n.name,e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name,e.idText(n.name))}}}(n);case 298:!function(n){!t||n.type||e.isJSDocConstructSignature(n)||Qd(n,me),By(n)}(n);case 296:case 295:case 293:case 294:case 302:return Uh(n),void e.forEachChild(n,Vh);case 299:return void function(n){Uh(n),Vh(n.type);var t=n.parent;if(e.isParameter(t)&&e.isJSDocFunctionType(t.parent))return void(e.last(t.parent.parameters)!==t&&Wt(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list));e.isJSDocTypeExpression(t)||Wt(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var r=n.parent.parent;if(!e.isJSDocParameterTag(r))return void Wt(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var a=e.getParameterSymbolFromJSDoc(r);if(!a)return;var i=e.getHostSignatureFromJSDoc(r);i&&e.last(i.parameters).symbol===a||Wt(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}(n);case 292:return Vh(n.type);case 184:return function(e){Vh(e.objectType),Vh(e.indexType),Yy(hl(e),e)}(n);case 185:return function(n){Vh(n.typeParameter),Vh(n.type),n.type||Qd(n,me),Du(wo(bl(n)),Ve,e.getEffectiveConstraintOfTypeParameter(n.typeParameter))}(n);case 243:return function(e){t&&(fv(e),$b(e),Mv(e,e.name),Ov(e,e.name))}(n);case 222:case 249:return Dv(n);case 224:return Vv(n);case 225:return function(e){fE(e),Py(e.expression)}(n);case 226:return Uv(n);case 227:return function(e){fE(e),Vh(e.statement),jv(e.expression)}(n);case 228:return function(e){fE(e),jv(e.expression),Vh(e.statement)}(n);case 229:return function(n){fE(n)||n.initializer&&242===n.initializer.kind&&cE(n.initializer),n.initializer&&(242===n.initializer.kind?e.forEach(n.initializer.declarations,Gv):Py(n.initializer)),n.condition&&jv(n.condition),n.incrementor&&Py(n.incrementor),Vh(n.statement),n.locals&&_v(n)}(n);case 230:return Kv(n);case 231:return function(n){if(tE(n),n.awaitModifier?2==(6&e.getFunctionFlags(e.getContainingFunction(n)))&&w<99&&Vb(n,32768):P.downlevelIteration&&w<2&&Vb(n,256),242===n.initializer.kind)Hv(n);else{var t=n.initializer,r=Wv(n.expression,n.awaitModifier);if(191===t.kind||192===t.kind)my(t,r||ge);else{var a=Py(t);ay(t,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access),r&&ku(r,a,t,n.expression)}}Vh(n.statement),n.locals&&_v(n)}(n);case 232:case 233:return _h(n);case 234:return function(n){if(!fE(n)){var t=e.getContainingFunction(n);if(t){var r=ws(Ns(t)),a=e.getFunctionFlags(t);if(B||n.expression||131072&r.flags){var i=n.expression?hy(n.expression):ve;if(163===t.kind)n.expression&&Wt(n,e.Diagnostics.Setters_cannot_return_a_value);else if(161===t.kind)n.expression&&!ku(i,r,n,n.expression)&&Wt(n,e.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);else if(Fs(t)){var o=gh(r,a),s=2&a?av(i,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):i;o&&ku(s,o,n,n.expression)}}else 161!==t.kind&&P.noImplicitReturns&&!yh(t,r)&&Wt(n,e.Diagnostics.Not_all_code_paths_return_a_value)}else uE(n,e.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body)}}(n);case 235:return function(n){fE(n)||32768&n.flags&&uE(n,e.Diagnostics.with_statements_are_not_allowed_in_an_async_function_block),Py(n.expression);var t=e.getSourceFileOfNode(n);if(!lE(t)){var r=e.getSpanOfTokenAtPosition(t,n.pos).start;dE(t,r,n.statement.pos-r,e.Diagnostics.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any)}}(n);case 236:return function(n){var r;fE(n);var a=!1,i=Py(n.expression),o=bd(i);e.forEach(n.caseBlock.clauses,(function(n){if(276!==n.kind||a||(void 0===r?r=n:(pE(n,e.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement),a=!0)),t&&275===n.kind){var s=Py(n.expression),c=bd(s),l=i;c&&o||(s=c?Ed(s):s,l=Ed(i)),fy(l,s)||Fu(s,l,n.expression,void 0)}e.forEach(n.statements,Vh),P.noFallthroughCasesInSwitch&&n.fallthroughFlowNode&&Sm(n.fallthroughFlowNode)&&Wt(n,e.Diagnostics.Fallthrough_case_in_switch)})),n.caseBlock.locals&&_v(n.caseBlock)}(n);case 237:return function(n){fE(n)||e.findAncestor(n.parent,(function(t){return e.isFunctionLike(t)?\"quit\":237===t.kind&&t.label.escapedText===n.label.escapedText&&(pE(n.label,e.Diagnostics.Duplicate_label_0,e.getTextOfNode(n.label)),!0)})),Vh(n.statement)}(n);case 238:return vh(n);case 239:return function(n){fE(n),Dv(n.tryBlock);var t=n.catchClause;if(t){if(t.variableDeclaration)if(t.variableDeclaration.type)uE(t.variableDeclaration.type,e.Diagnostics.Catch_clause_variable_cannot_have_a_type_annotation);else if(t.variableDeclaration.initializer)uE(t.variableDeclaration.initializer,e.Diagnostics.Catch_clause_variable_cannot_have_an_initializer);else{var r=t.block.locals;r&&e.forEachKey(t.locals,(function(n){var t=r.get(n);t&&0!=(2&t.flags)&&pE(t.valueDeclaration,e.Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause,n)}))}Dv(t.block)}n.finallyBlock&&Dv(n.finallyBlock)}(n);case 241:return Gv(n);case 190:return Bv(n);case 244:return function(n){n.name||e.hasModifier(n,512)||uE(n,e.Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name),xh(n),e.forEach(n.members,Vh),_v(n)}(n);case 245:return kh(n);case 246:return function(n){jb(n),bh(n.name,e.Diagnostics.Type_alias_name_cannot_be_0),Eh(n.typeParameters),Vh(n.type),_v(n)}(n);case 247:return function(n){if(t){jb(n),bh(n.name,e.Diagnostics.Enum_name_cannot_be_0),Mv(n,n.name),Ov(n,n.name),nv(n),Nh(n);var r=Yr(n);if(n===e.getDeclarationOfKind(r,n.kind)){if(r.declarations.length>1){var a=e.isEnumConst(n);e.forEach(r.declarations,(function(n){e.isEnumDeclaration(n)&&e.isEnumConst(n)!==a&&Wt(e.getNameOfDeclaration(n),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)}))}var i=!1;e.forEach(r.declarations,(function(n){if(247!==n.kind)return!1;var t=n;if(!t.members.length)return!1;var r=t.members[0];r.initializer||(i?Wt(r.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):i=!0)}))}}}(n);case 248:return Mh(n);case 253:return function(n){if(!Fh(n,e.Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)&&(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_import_declaration_cannot_have_modifiers),Rh(n))){var t=n.importClause;if(t)if(t.name&&wh(t),t.namedBindings)if(255===t.namedBindings.kind)wh(t.namedBindings);else wr(n,n.moduleSpecifier)&&e.forEach(t.namedBindings.elements,wh)}}(n);case 252:return function(n){if(!Fh(n,e.Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)&&(jb(n),e.isInternalModuleImportEqualsDeclaration(n)||Rh(n)))if(wh(n),e.hasModifier(n,1)&&Nr(n),263!==n.moduleReference.kind){var t=kr(Yr(n));if(t!==de){if(111551&t.flags){var r=e.getFirstIdentifier(n.moduleReference);1920&Rr(r,112575).flags||Wt(r,e.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name,e.declarationNameToString(r))}788968&t.flags&&bh(n.name,e.Diagnostics.Import_name_cannot_be_0)}}else F>=e.ModuleKind.ES2015&&!(8388608&n.flags)&&pE(n,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}(n);case 259:return function(n){if(!Fh(n,e.Diagnostics.An_export_declaration_can_only_be_used_in_a_module)&&(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_export_declaration_cannot_have_modifiers),!n.moduleSpecifier||Rh(n)))if(n.exportClause){e.forEach(n.exportClause.elements,Gh);var t=249===n.parent.kind&&e.isAmbientModule(n.parent.parent),r=!t&&249===n.parent.kind&&!n.moduleSpecifier&&8388608&n.flags;288===n.parent.kind||t||r||Wt(n,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var a=wr(n,n.moduleSpecifier);a&&jr(a)&&Wt(n.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,La(a)),F!==e.ModuleKind.System&&F!==e.ModuleKind.ES2015&&F!==e.ModuleKind.ESNext&&Vb(n,65536)}}(n);case 258:return function(n){if(!Fh(n,e.Diagnostics.An_export_assignment_can_only_be_used_in_a_module)){var t=288===n.parent.kind?n.parent:n.parent.parent;if(248!==t.kind||e.isAmbientModule(t)){if(!jb(n)&&e.hasModifiers(n)&&uE(n,e.Diagnostics.An_export_assignment_cannot_have_modifiers),75===n.expression.kind){var r=n.expression,a=Rr(r,67108863,!0,!0,n);if(a){Pm(a,r);var i=2097152&a.flags?kr(a):a;(i===de||111551&i.flags)&&hy(n.expression)}e.getEmitDeclarations(P)&&Ga(n.expression,!0)}else hy(n.expression);Bh(t),8388608&n.flags&&!e.isEntityNameExpression(n.expression)&&pE(n.expression,e.Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context),!n.isExportEquals||8388608&n.flags||(F>=e.ModuleKind.ES2015?pE(n,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):F===e.ModuleKind.System&&pE(n,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}else n.isExportEquals?Wt(n,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace):Wt(n,e.Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module)}}(n);case 223:case 240:return void fE(n);case 262:(function(e){pv(e)})(n)}}(n),s=a}}function Uh(n){e.isInJSFile(n)||pE(n,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function jh(n){var t=or(e.getSourceFileOfNode(n));if(!(1&t.flags)){t.deferredNodes=t.deferredNodes||e.createMap();var r=\"\"+x(n);t.deferredNodes.set(r,n)}}function Kh(n){var t=s;switch(s=n,y=0,n.kind){case 200:case 201:case 160:case 159:!function(n){e.Debug.assert(160!==n.kind||e.isObjectLiteralMethod(n));var t=e.getFunctionFlags(n),r=Fs(n);if(Xg(n,r),n.body)if(e.getEffectiveReturnTypeNode(n)||ws(Ns(n)),222===n.body.kind)Vh(n.body);else{var a=Py(n.body),i=Zg(r,t);if(i)if(2==(3&t))ku(av(a,n.body,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member),i,n.body,n.body);else ku(a,i,n.body,n.body)}}(n);break;case 162:case 163:Hy(n);break;case 213:!function(n){e.forEach(n.members,Vh),_v(n)}(n);break;case 265:!function(e){Xf(e)}(n);break;case 264:!function(e){Xf(e.openingElement),Pf(e.closingElement.tagName)?Vf(e.closingElement):Py(e.closingElement.tagName),Ff(e)}(n)}s=t}function Hh(t){e.performance.mark(\"beforeCheck\"),function(t){var r=or(t);if(!(1&r.flags)){if(e.skipTypeChecking(t,P,n))return;!function(n){!!(8388608&n.flags)&&function(n){for(var t=0,r=n.statements;t<r.length;t++){var a=r[t];if((e.isDeclaration(a)||224===a.kind)&&mE(a))return!0}}(n)}(t),e.clear(It),e.clear(Mt),e.forEach(t.statements,Vh),Vh(t.endOfFileToken),function(e){var n=or(e);n.deferredNodes&&n.deferredNodes.forEach(Kh)}(t),e.isExternalOrCommonJsModule(t)&&_v(t),t.isDeclarationFile||!P.noUnusedLocals&&!P.noUnusedParameters||gv(zh(t),(function(n,t,r){!e.containsParseError(n)&&Wh(t)&&Rt.add(r)})),e.isExternalOrCommonJsModule(t)&&Bh(t),It.length&&(e.forEach(It,Nv),e.clear(It)),Mt.length&&(e.forEach(Mt,Iv),e.clear(Mt)),r.flags|=1}}(t),e.performance.mark(\"afterCheck\"),e.performance.measure(\"Check\",\"beforeCheck\",\"afterCheck\")}function Wh(n){switch(n){case 0:return!!P.noUnusedLocals;case 1:return!!P.noUnusedParameters;default:return e.Debug.assertNever(n)}}function zh(n){return st.get(n.path)||e.emptyArray}function qh(t,a){try{return r=a,function(t){if(Jh(),t){var r=Rt.getGlobalDiagnostics(),a=r.length;Hh(t);var i=Rt.getDiagnostics(t.fileName),o=Rt.getGlobalDiagnostics();if(o!==r){var s=e.relativeComplement(r,o,e.compareDiagnostics);return e.concatenate(s,i)}return 0===a&&o.length>0?e.concatenate(o,i):i}return e.forEach(n.getSourceFiles(),Hh),Rt.getDiagnostics()}(t)}finally{r=void 0}}function Jh(){if(!t)throw new Error(\"Trying to get diagnostics from a type checker that does not produce them.\")}function Xh(e){switch(e.kind){case 154:case 244:case 245:case 246:case 247:return!0;default:return!1}}function Yh(e){for(;152===e.parent.kind;)e=e.parent;return 168===e.parent.kind}function Qh(n,t){for(var r;(n=e.getContainingClass(n))&&!(r=t(n)););return r}function Zh(e,n){return!!Qh(e,(function(e){return e===n}))}function $h(e){return void 0!==function(e){for(;152===e.parent.kind;)e=e.parent;return 252===e.parent.kind?e.parent.moduleReference===e?e.parent:void 0:258===e.parent.kind&&e.parent.expression===e?e.parent:void 0}(e)}function eb(n){if(e.isDeclarationName(n))return Yr(n.parent);if(e.isInJSFile(n)&&193===n.parent.kind&&n.parent===n.parent.parent.left){var t=function(n){switch(e.getAssignmentDeclarationKind(n.parent.parent)){case 1:case 3:return Yr(n.parent);case 4:case 2:case 5:return Yr(n.parent.parent)}}(n);if(t)return t}if(258===n.parent.kind&&e.isEntityNameExpression(n)){var r=Rr(n,2998271,!0);if(r&&r!==de)return r}else if(!e.isPropertyAccessExpression(n)&&$h(n)){var a=e.getAncestor(n,252);return e.Debug.assert(void 0!==a),Mr(n,!0)}if(!e.isPropertyAccessExpression(n)){var i=function(n){for(var t=n.parent;e.isQualifiedName(t);)n=t,t=t.parent;if(t&&187===t.kind&&t.qualifier===n)return t}(n);if(i){Kl(i);var o=or(n).resolvedSymbol;return o===de?void 0:o}}for(;e.isRightSideOfQualifiedNameOrPropertyAccess(n);)n=n.parent;if(function(e){for(;193===e.parent.kind;)e=e.parent;return 215===e.parent.kind}(n)){var s=0;215===n.parent.kind?(s=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)&&(s|=111551)):s=1920,s|=2097152;var c=e.isEntityNameExpression(n)?Rr(n,s):void 0;if(c)return c}if(310===n.parent.kind)return e.getParameterSymbolFromJSDoc(n.parent);if(154===n.parent.kind&&314===n.parent.parent.kind){e.Debug.assert(!e.isInJSFile(n));var l=e.getTypeParameterFromJsDoc(n.parent);return l&&l.symbol}if(e.isExpressionNode(n)){if(e.nodeIsMissing(n))return;if(75===n.kind){if(e.isJSXTagName(n)&&Pf(n)){var u=Vf(n.parent);return u===de?void 0:u}return Rr(n,111551,!1,!0)}if(193===n.kind||152===n.kind){var d=or(n);return d.resolvedSymbol?d.resolvedSymbol:(193===n.kind?d_(n):p_(n),d.resolvedSymbol)}}else if(Yh(n)){return Rr(n,s=168===n.parent.kind?788968:1920,!1,!0)}return 167===n.parent.kind?Rr(n,1):void 0}function nb(n){if(288===n.kind)return e.isExternalModule(n)?Xr(n.symbol):void 0;var t=n.parent,r=t.parent;if(!(16777216&n.flags)){if(D(n)){var a=Yr(t);return e.isImportOrExportSpecifier(n.parent)&&n.parent.propertyName===n?If(a):a}if(e.isLiteralComputedPropertyDeclarationName(n))return Yr(t.parent);if(75===n.kind){if($h(n))return eb(n);if(190===t.kind&&188===r.kind&&n===t.propertyName){var i=ms(tb(r),n.escapedText);if(i)return i}}switch(n.kind){case 75:case 193:case 152:return eb(n);case 103:var o=e.getThisContainer(n,!1);if(e.isFunctionLike(o)){var s=Ns(o);if(s.thisParameter)return s.thisParameter}if(e.isInExpressionContext(n))return Py(n).symbol;case 182:return jl(n).symbol;case 101:return Py(n).symbol;case 128:var c=n.parent;return c&&161===c.kind?c.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(n.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(n.parent.parent)===n||(253===n.parent.kind||259===n.parent.kind)&&n.parent.moduleSpecifier===n||e.isInJSFile(n)&&e.isRequireCall(n.parent,!1)||e.isImportCall(n.parent)||e.isLiteralTypeNode(n.parent)&&e.isLiteralImportTypeNode(n.parent.parent)&&n.parent.parent.argument===n.parent)return wr(n,n);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===n)return Yr(t);case 8:var l=e.isElementAccessExpression(t)?t.argumentExpression===n?Oy(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(r)?Kl(r.objectType):void 0;return l&&ms(l,e.escapeLeadingUnderscores(n.text));case 83:case 93:case 38:case 79:return Yr(n.parent);case 187:return e.isLiteralImportTypeNode(n)?nb(n.argument.literal):void 0;case 88:return e.isExportAssignment(n.parent)?e.Debug.assertDefined(n.parent.symbol):void 0;default:return}}}function tb(n){if(16777216&n.flags)return ge;var t,r,a=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(n),i=a&&ji(Yr(a.class));if(e.isPartOfTypeNode(n)){var o=Kl(n);return i?go(o,i.thisType):o}if(e.isExpressionNode(n))return ab(n);if(i&&!a.isImplements){var s=e.firstOrUndefined(Vi(i));return s?go(s,i.thisType):ge}if(Xh(n))return Yi(r=Yr(n));if(75===(t=n).kind&&Xh(t.parent)&&t.parent.name===t)return(r=nb(n))?Yi(r):ge;if(e.isDeclaration(n))return Ci(r=Yr(n));if(D(n))return(r=nb(n))?Ci(r):ge;if(e.isBindingPattern(n))return ri(n.parent,!0)||ge;if($h(n)&&(r=nb(n))){var c=Yi(r);return c!==ge?c:Ci(r)}return ge}function rb(n){if(e.Debug.assert(192===n.kind||191===n.kind),231===n.parent.kind)return my(n,Wv(n.parent.expression,n.parent.awaitModifier)||ge);if(208===n.parent.kind)return my(n,Oy(n.parent.right)||ge);if(279===n.parent.kind){var t=e.cast(n.parent.parent,e.isObjectLiteralExpression);return dy(t,rb(t)||ge,e.indexOfNode(t.properties,n.parent))}var r=e.cast(n.parent,e.isArrayLiteralExpression),a=rb(r)||ge,i=zv(65,a,ve,n.parent)||ge;return py(r,a,r.elements.indexOf(n),i)}function ab(n){return e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),Gl(Oy(n))}function ib(n){var t=Yr(n.parent);return e.hasModifier(n,32)?Ci(t):Yi(t)}function ob(n){var t=n.name;switch(t.kind){case 75:return Vl(e.idText(t));case 8:case 10:return Vl(t.text);case 153:var r=kf(t);return sy(r,12288)?r:Se;default:return e.Debug.fail(\"Unsupported property name.\")}}function sb(n){n=ls(n);var t=e.createSymbolTable(Xo(n)),r=_s(n,0).length?on:_s(n,1).length?sn:void 0;return r&&e.forEach(Xo(r),(function(e){t.has(e.escapedName)||t.set(e.escapedName,e)})),ua(t)}function cb(n){return e.typeHasCallOrConstructSignatures(n,ne)}function lb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t)return!(193===t.parent.kind&&t.parent.name===t)&&Pb(t)===$}return!1}function ub(n){var t=wr(n.parent,n);if(!t||e.isShorthandAmbientModuleSymbol(t))return!0;var r=jr(t),a=ir(t=Vr(t));return void 0===a.exportsSomeValue&&(a.exportsSomeValue=r?!!(111551&t.flags):e.forEachEntry(zr(t),(function(e){return(e=Dr(e))&&!!(111551&e.flags)}))),a.exportsSomeValue}function db(n,t){var r=e.getParseTreeNode(n,e.isIdentifier);if(r){var a=Pb(r,function(n){return e.isModuleOrEnumDeclaration(n.parent)&&n===n.parent.name}(r));if(a){if(1048576&a.flags){var i=Xr(a.exportSymbol);if(!t&&944&i.flags&&!(3&i.flags))return;a=i}var o=Qr(a);if(o){if(512&o.flags&&288===o.valueDeclaration.kind){var s=o.valueDeclaration;return s!==e.getSourceFileOfNode(r)?void 0:s}return e.findAncestor(r.parent,(function(n){return e.isModuleOrEnumDeclaration(n)&&Yr(n)===o}))}}}}function pb(n){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(Ar(r,111551))return hr(r)}}function mb(n){if(418&n.flags&&!e.isSourceFile(n.valueDeclaration)){var t=ir(n);if(void 0===t.isDeclarationWithCollidingName){var r=e.getEnclosingBlockScopeContainer(n.valueDeclaration);if(e.isStatementWithLocals(r)||function(n){return e.isBindingElement(n.valueDeclaration)&&278===e.walkUpBindingElementsAndPatterns(n.valueDeclaration).parent.kind}(n)){var a=or(n.valueDeclaration);if(ur(r.parent,n.escapedName,111551,void 0,void 0,!1))t.isDeclarationWithCollidingName=!0;else if(262144&a.flags){var i=524288&a.flags,o=e.isIterationStatement(r,!1),s=222===r.kind&&e.isIterationStatement(r.parent,!1);t.isDeclarationWithCollidingName=!(e.isBlockScopedContainerTopLevel(r)||i&&(o||s))}else t.isDeclarationWithCollidingName=!1}}return t.isDeclarationWithCollidingName}return!1}function fb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(r&&mb(r))return r.valueDeclaration}}}function _b(n){var t=e.getParseTreeNode(n,e.isDeclaration);if(t){var r=Yr(t);if(r)return mb(r)}return!1}function gb(n){switch(n.kind){case 252:case 254:case 255:case 257:case 261:return vb(Yr(n)||de);case 259:var t=n.exportClause;return!!t&&e.some(t.elements,gb);case 258:return!n.expression||75!==n.expression.kind||vb(Yr(n)||de)}return!1}function yb(n){var t=e.getParseTreeNode(n,e.isImportEqualsDeclaration);return!(void 0===t||288!==t.parent.kind||!e.isInternalModuleImportEqualsDeclaration(t))&&(vb(Yr(t))&&t.moduleReference&&!e.nodeIsMissing(t.moduleReference))}function vb(e){var n=kr(e);return n===de||!!(111551&n.flags)&&(P.preserveConstEnums||!hb(n))}function hb(e){return uy(e)||!!e.constEnumOnlyModule}function bb(n){if(e.nodeIsPresent(n.body)){if(e.isGetAccessor(n)||e.isSetAccessor(n))return!1;var t=Os(Yr(n));return t.length>1||1===t.length&&t[0].declaration!==n}return!1}function Eb(n){return!(!B||Ls(n)||e.isJSDocParameterTag(n)||!n.initializer||e.hasModifier(n,92))}function Tb(n){return B&&Ls(n)&&!n.initializer&&e.hasModifier(n,92)}function Sb(n){var t=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!t)return!1;var r=Yr(t);return!!(r&&16&r.flags)&&!!e.forEachEntry(Wr(r),(function(n){return 111551&n.flags&&n.valueDeclaration&&e.isPropertyAccessExpression(n.valueDeclaration)}))}function xb(n){var t=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!t)return e.emptyArray;var r=Yr(t);return r&&Xo(Ci(r))||e.emptyArray}function Lb(e){return or(e).flags||0}function Cb(e){return Nh(e.parent),or(e).enumMemberValue}function Ab(e){switch(e.kind){case 282:case 193:case 194:return!0}return!1}function Db(n){if(282===n.kind)return Cb(n);var t=or(n).resolvedSymbol;if(t&&8&t.flags){var r=t.valueDeclaration;if(e.isEnumConst(r.parent))return Cb(r)}}function kb(e){return!!(524288&e.flags)&&_s(e,0).length>0}function Nb(n,t){var r=e.getParseTreeNode(n,e.isEntityName);if(!r)return e.TypeReferenceSerializationKind.Unknown;if(t&&!(t=e.getParseTreeNode(t)))return e.TypeReferenceSerializationKind.Unknown;var a=Rr(r,111551,!0,!1,t),i=Rr(r,788968,!0,!1,t);if(a&&a===i){var o=Dc(!1);if(o&&a===o)return e.TypeReferenceSerializationKind.Promise;var s=Ci(a);if(s&&Pi(s))return e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!i)return e.TypeReferenceSerializationKind.Unknown;var c=Yi(i);return c===ge?e.TypeReferenceSerializationKind.Unknown:3&c.flags?e.TypeReferenceSerializationKind.ObjectType:sy(c,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:sy(c,528)?e.TypeReferenceSerializationKind.BooleanType:sy(c,296)?e.TypeReferenceSerializationKind.NumberLikeType:sy(c,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:sy(c,132)?e.TypeReferenceSerializationKind.StringLikeType:Cd(c)?e.TypeReferenceSerializationKind.ArrayLikeType:sy(c,12288)?e.TypeReferenceSerializationKind.ESSymbolType:kb(c)?e.TypeReferenceSerializationKind.TypeWithCallSignature:dd(c)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function Ib(n,t,r,a,i){var o=e.getParseTreeNode(n,e.isVariableLikeOrAccessor);if(!o)return e.createToken(124);var s=Yr(o),c=!s||133120&s.flags?ge:Td(Ci(s));return 8192&c.flags&&c.symbol===s&&(r|=1048576),i&&(c=Pd(c)),J.typeToTypeNode(c,t,1024|r,a)}function Mb(n,t,r,a){var i=e.getParseTreeNode(n,e.isFunctionLike);if(!i)return e.createToken(124);var o=Ns(i);return J.typeToTypeNode(ws(o),t,1024|r,a)}function Ob(n,t,r,a){var i=e.getParseTreeNode(n,e.isExpression);if(!i)return e.createToken(124);var o=Xd(ab(i));return J.typeToTypeNode(o,t,1024|r,a)}function Rb(n){return X.has(e.escapeLeadingUnderscores(n))}function Pb(n,t){var r=or(n).resolvedSymbol;if(r)return r;var a=n;if(t){var i=n.parent;e.isDeclaration(i)&&n===i.name&&(a=Ka(i))}return ur(a,n.escapedText,3257279,void 0,void 0,!0)}function wb(n){if(!e.isGeneratedIdentifier(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t){var r=Pb(t);if(r)return na(r).valueDeclaration}}}function Fb(n){return!!(e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n))&&Bl(Ci(Yr(n)))}function Gb(n,t){return function(n,t,r){return(1024&n.flags?J.symbolToExpression(n.symbol,111551,t,void 0,r):n===De?e.createTrue():n===Ce&&e.createFalse())||e.createLiteral(n.value)}(Ci(Yr(n)),n,t)}function Bb(n){var t=248===n.kind?e.tryCast(n.name,e.isStringLiteral):e.getExternalModuleName(n),r=Fr(t,t,void 0);if(r)return e.getDeclarationOfKind(r,288)}function Vb(n,t){if((a&t)!==t&&P.importHelpers){var r=e.getSourceFileOfNode(n);if(e.isEffectiveExternalModule(r,P)&&!(8388608&n.flags)){var i=function(n,t){o||(o=Gr(n,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,t)||de);return o}(r,n);if(i!==de)for(var s=t&~a,c=1;c<=131072;c<<=1)if(s&c){var l=Ub(c);cr(i.exports,e.escapeLeadingUnderscores(l),111551)||Wt(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,l)}a|=t}}}function Ub(n){switch(n){case 1:return\"__extends\";case 2:return\"__assign\";case 4:return\"__rest\";case 8:return\"__decorate\";case 16:return\"__metadata\";case 32:return\"__param\";case 64:return\"__awaiter\";case 128:return\"__generator\";case 256:return\"__values\";case 512:return\"__read\";case 1024:return\"__spread\";case 2048:return\"__spreadArrays\";case 4096:return\"__await\";case 8192:return\"__asyncGenerator\";case 16384:return\"__asyncDelegator\";case 32768:return\"__asyncValues\";case 65536:return\"__exportStar\";case 131072:return\"__makeTemplateObject\";default:return e.Debug.fail(\"Unrecognized helper\")}}function jb(n){return function(n){if(!n.decorators)return!1;if(!e.nodeCanBeDecorated(n,n.parent,n.parent.parent))return 160!==n.kind||e.nodeIsPresent(n.body)?uE(n,e.Diagnostics.Decorators_are_not_valid_here):uE(n,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);if(162===n.kind||163===n.kind){var t=e.getAllAccessorDeclarations(n.parent.members,n);if(t.firstAccessor.decorators&&n===t.secondAccessor)return uE(n,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}return!1}(n)||function(n){var t,r,a,i,o=function(n){return!!n.modifiers&&(function(n){switch(n.kind){case 162:case 163:case 161:case 158:case 157:case 160:case 159:case 166:case 248:case 253:case 252:case 259:case 258:case 200:case 201:case 155:return!1;default:if(249===n.parent.kind||288===n.parent.kind)return!1;switch(n.kind){case 243:return Kb(n,125);case 244:return Kb(n,121);case 245:case 224:case 246:return!0;case 247:return Kb(n,80);default:return e.Debug.fail(),!1}}}(n)?uE(n,e.Diagnostics.Modifiers_cannot_appear_here):void 0)}(n);if(void 0!==o)return o;for(var s=0,c=0,l=n.modifiers;c<l.length;c++){var u=l[c];if(137!==u.kind){if(157===n.kind||159===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_type_member,e.tokenToString(u.kind));if(166===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_an_index_signature,e.tokenToString(u.kind))}switch(u.kind){case 80:if(247!==n.kind)return pE(n,e.Diagnostics.A_class_member_cannot_have_the_0_keyword,e.tokenToString(80));break;case 118:case 117:case 116:var d=Ma(e.modifierToFlag(u.kind));if(28&s)return pE(u,e.Diagnostics.Accessibility_modifier_already_seen);if(32&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"static\");if(64&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"readonly\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"async\");if(249===n.parent.kind||288===n.parent.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element,d);if(128&s)return 116===u.kind?pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,d,\"abstract\"):pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,d,\"abstract\");s|=e.modifierToFlag(u.kind);break;case 119:if(32&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"static\");if(64&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"static\",\"readonly\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"static\",\"async\");if(249===n.parent.kind||288===n.parent.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element,\"static\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"static\");if(128&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"static\",\"abstract\");s|=32,t=u;break;case 137:if(64&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"readonly\");if(158!==n.kind&&157!==n.kind&&166!==n.kind&&155!==n.kind)return pE(u,e.Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);s|=64,i=u;break;case 88:if(1&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"export\");if(2&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"declare\");if(128&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"abstract\");if(256&s)return pE(u,e.Diagnostics._0_modifier_must_precede_1_modifier,\"export\",\"async\");if(e.isClassLike(n.parent))return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_class_element,\"export\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"export\");s|=1;break;case 83:var p=288===n.parent.kind?n.parent:n.parent.parent;if(248===p.kind&&!e.isAmbientModule(p))return pE(u,e.Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);s|=512;break;case 129:if(2&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"declare\");if(256&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context,\"async\");if(e.isClassLike(n.parent)&&!e.isPropertyDeclaration(n))return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_class_element,\"declare\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"declare\");if(8388608&n.parent.flags&&249===n.parent.kind)return pE(u,e.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);s|=2,r=u;break;case 121:if(128&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"abstract\");if(244!==n.kind){if(160!==n.kind&&158!==n.kind&&162!==n.kind&&163!==n.kind)return pE(u,e.Diagnostics.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);if(244!==n.parent.kind||!e.hasModifier(n.parent,128))return pE(u,e.Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class);if(32&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"static\",\"abstract\");if(8&s)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_with_1_modifier,\"private\",\"abstract\")}s|=128;break;case 125:if(256&s)return pE(u,e.Diagnostics._0_modifier_already_seen,\"async\");if(2&s||8388608&n.parent.flags)return pE(u,e.Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context,\"async\");if(155===n.kind)return pE(u,e.Diagnostics._0_modifier_cannot_appear_on_a_parameter,\"async\");s|=256,a=u}}if(161===n.kind)return 32&s?pE(t,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"static\"):128&s?pE(t,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"abstract\"):256&s?pE(a,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"async\"):!!(64&s)&&pE(i,e.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration,\"readonly\");if((253===n.kind||252===n.kind)&&2&s)return pE(r,e.Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration,\"declare\");if(155===n.kind&&92&s&&e.isBindingPattern(n.name))return pE(n,e.Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern);if(155===n.kind&&92&s&&n.dotDotDotToken)return pE(n,e.Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter);if(256&s)return function(n,t){switch(n.kind){case 160:case 243:case 200:case 201:return!1}return pE(t,e.Diagnostics._0_modifier_cannot_be_used_here,\"async\")}(n,a);return!1}(n)}function Kb(e,n){return e.modifiers.length>1||e.modifiers[0].kind!==n}function Hb(n,t){return void 0===t&&(t=e.Diagnostics.Trailing_comma_not_allowed),!(!n||!n.hasTrailingComma)&&dE(n[0],n.end-\",\".length,\",\".length,t)}function Wb(n,t){if(n&&0===n.length){var r=n.pos-\"<\".length;return dE(t,r,e.skipTrivia(t.text,n.end)+\">\".length-r,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function zb(n){if(w>=3){var t=n.body&&e.isBlock(n.body)&&e.findUseStrictPrologue(n.body.statements);if(t){var r=(i=n.parameters,e.filter(i,(function(n){return!!n.initializer||e.isBindingPattern(n.name)||e.isRestParameter(n)})));if(e.length(r)){e.forEach(r,(function(n){e.addRelatedInfo(Wt(n,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(t,e.Diagnostics.use_strict_directive_used_here))}));var a=r.map((function(n,t){return 0===t?e.createDiagnosticForNode(n,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(n,e.Diagnostics.and_here)}));return e.addRelatedInfo.apply(void 0,__spreadArrays([Wt(t,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],a)),!0}}}var i;return!1}function qb(n){var t=e.getSourceFileOfNode(n);return jb(n)||Wb(n.typeParameters,t)||function(n){for(var t=!1,r=n.length,a=0;a<r;a++){var i=n[a];if(i.dotDotDotToken){if(a!==r-1)return pE(i.dotDotDotToken,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);if(8388608&i.flags||Hb(n,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),i.questionToken)return pE(i.questionToken,e.Diagnostics.A_rest_parameter_cannot_be_optional);if(i.initializer)return pE(i.name,e.Diagnostics.A_rest_parameter_cannot_have_an_initializer)}else if(i.questionToken){if(t=!0,i.initializer)return pE(i.name,e.Diagnostics.Parameter_cannot_have_question_mark_and_initializer)}else if(t&&!i.initializer)return pE(i.name,e.Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter)}}(n.parameters)||function(n,t){if(!e.isArrowFunction(n))return!1;var r=n.equalsGreaterThanToken,a=e.getLineAndCharacterOfPosition(t,r.pos).line,i=e.getLineAndCharacterOfPosition(t,r.end).line;return a!==i&&pE(r,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}(n,t)||e.isFunctionLikeDeclaration(n)&&zb(n)}function Jb(n,t){return Hb(t)||function(n,t){if(t&&0===t.length){var r=e.getSourceFileOfNode(n),a=t.pos-\"<\".length;return dE(r,a,e.skipTrivia(r.text,t.end)+\">\".length-a,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}(n,t)}function Xb(n){return function(n){if(n)for(var t=0,r=n;t<r.length;t++){var a=r[t];if(214===a.kind)return dE(a,a.pos,0,e.Diagnostics.Argument_expression_expected)}return!1}(n)}function Yb(n){var t=n.types;if(Hb(t))return!0;if(t&&0===t.length){var r=e.tokenToString(n.token);return dE(n,t.pos,0,e.Diagnostics._0_list_cannot_be_empty,r)}return e.some(t,Qb)}function Qb(e){return Jb(e,e.typeArguments)}function Zb(n){if(153!==n.kind)return!1;var t=n;return 208===t.expression.kind&&27===t.expression.operatorToken.kind&&pE(t.expression,e.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name)}function $b(n){if(n.asteriskToken){if(e.Debug.assert(243===n.kind||200===n.kind||160===n.kind),8388608&n.flags)return pE(n.asteriskToken,e.Diagnostics.Generators_are_not_allowed_in_an_ambient_context);if(!n.body)return pE(n.asteriskToken,e.Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator)}}function eE(e,n){return!!e&&pE(e,n)}function nE(e,n){return!!e&&pE(e,n)}function tE(n){if(fE(n))return!0;if(231===n.kind&&n.awaitModifier&&0==(32768&n.flags)){if(!lE(e.getSourceFileOfNode(n))){var t=e.createDiagnosticForNode(n.awaitModifier,e.Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator),r=e.getContainingFunction(n);if(r&&161!==r.kind){e.Debug.assert(0==(2&e.getFunctionFlags(r)),\"Enclosing function should never be an async function.\");var a=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,a)}return Rt.add(t),!0}return!1}if(242===n.initializer.kind){var i=n.initializer;if(!cE(i)){var o=i.declarations;if(!o.length)return!1;if(o.length>1){t=230===n.kind?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return uE(i.declarations[1],t)}var s=o[0];if(s.initializer){var t=230===n.kind?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return pE(s.name,t)}if(s.type)return pE(s,t=230===n.kind?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation)}}return!1}function rE(n){if(n.parameters.length===(162===n.kind?1:2))return e.getThisParameter(n)}function aE(n,t){if(function(n){return e.isDynamicName(n)&&!oo(n)}(n))return pE(n,t)}function iE(n){if(qb(n))return!0;if(160===n.kind){if(192===n.parent.kind){if(n.modifiers&&(1!==n.modifiers.length||125!==e.first(n.modifiers).kind))return uE(n,e.Diagnostics.Modifiers_cannot_appear_here);if(eE(n.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(nE(n.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(void 0===n.body)return dE(n,n.end-1,\";\".length,e.Diagnostics._0_expected,\"{\")}if($b(n))return!0}if(e.isClassLike(n.parent)){if(8388608&n.flags)return aE(n.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(160===n.kind&&!n.body)return aE(n.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(245===n.parent.kind)return aE(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(172===n.parent.kind)return aE(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function oE(n){return e.isStringOrNumericLiteralLike(n)||206===n.kind&&40===n.operator&&8===n.operand.kind}function sE(n){var t,r=n.initializer;if(r){var a=!(oE(r)||function(n){if((e.isPropertyAccessExpression(n)||e.isElementAccessExpression(n)&&oE(n.argumentExpression))&&e.isEntityNameExpression(n.expression))return!!(1024&hy(n).flags)}(r)||105===r.kind||90===r.kind||(t=r,9===t.kind||206===t.kind&&40===t.operator&&9===t.operand.kind)),i=e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n);if(!i||n.type)return pE(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(a)return pE(r,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);if(!i||a)return pE(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function cE(n){var t=n.declarations;return!!Hb(n.declarations)||!n.declarations.length&&dE(n,t.pos,t.end-t.pos,e.Diagnostics.Variable_declaration_list_cannot_be_empty)}function lE(e){return e.parseDiagnostics.length>0}function uE(n,t,r,a,i){var o=e.getSourceFileOfNode(n);if(!lE(o)){var s=e.getSpanOfTokenAtPosition(o,n.pos);return Rt.add(e.createFileDiagnostic(o,s.start,s.length,t,r,a,i)),!0}return!1}function dE(n,t,r,a,i,o,s){var c=e.getSourceFileOfNode(n);return!lE(c)&&(Rt.add(e.createFileDiagnostic(c,t,r,a,i,o,s)),!0)}function pE(n,t,r,a,i){return!lE(e.getSourceFileOfNode(n))&&(Rt.add(e.createDiagnosticForNode(n,t,r,a,i)),!0)}function mE(n){return 245!==n.kind&&246!==n.kind&&253!==n.kind&&252!==n.kind&&259!==n.kind&&258!==n.kind&&251!==n.kind&&!e.hasModifier(n,515)&&uE(n,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function fE(n){if(8388608&n.flags){if(!or(n).hasReportedStatementInAmbientContext&&(e.isFunctionLike(n.parent)||e.isAccessor(n.parent)))return or(n).hasReportedStatementInAmbientContext=uE(n,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);if(222===n.parent.kind||249===n.parent.kind||288===n.parent.kind){var t=or(n.parent);if(!t.hasReportedStatementInAmbientContext)return t.hasReportedStatementInAmbientContext=uE(n,e.Diagnostics.Statements_are_not_allowed_in_ambient_contexts)}}return!1}function _E(n){if(32&n.numericLiteralFlags){var t=void 0;if(w>=1?t=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(n,186)?t=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(n,282)&&(t=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),t){var r=e.isPrefixUnaryExpression(n.parent)&&40===n.parent.operator,a=(r?\"-\":\"\")+\"0o\"+n.text;return pE(r?n.parent:n,t,a)}}return function(n){if(16&n.numericLiteralFlags||n.text.length<=15||-1!==n.text.indexOf(\".\"))return;var t=+e.getTextOfNode(n);if(t<=Math.pow(2,53)-1&&t+1>t)return;zt(!1,e.createDiagnosticForNode(n,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}(n),!1}},function(e){e.JSX=\"JSX\",e.IntrinsicElements=\"IntrinsicElements\",e.ElementClass=\"ElementClass\",e.ElementAttributesPropertyNameContainer=\"ElementAttributesProperty\",e.ElementChildrenAttributeNameContainer=\"ElementChildrenAttribute\",e.Element=\"Element\",e.IntrinsicAttributes=\"IntrinsicAttributes\",e.IntrinsicClassAttributes=\"IntrinsicClassAttributes\",e.LibraryManagedAttributes=\"LibraryManagedAttributes\"}(T||(T={})),e.signatureHasRestParameter=I,e.signatureHasLiteralTypes=M}(ts||(ts={})),function(e){function n(n){var t=e.createNode(n,-1,-1);return t.flags|=8,t}function t(n,t){return n!==t&&(pt(n,t),ot(n,t),e.aggregateTransformFlags(n)),n}function r(n,t){if(n&&n!==e.emptyArray){if(e.isNodeArray(n))return n}else n=[];var r=n;return r.pos=-1,r.end=-1,r.hasTrailingComma=t,r}function a(e){if(void 0===e)return e;var t=n(e.kind);for(var r in t.flags|=e.flags,pt(t,e),e)!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function i(n,t){if(\"number\"==typeof n)return o(n+\"\");if(\"object\"==typeof n&&\"base10Value\"in n)return s(e.pseudoBigIntToString(n)+\"n\");if(\"boolean\"==typeof n)return n?f():_();if(e.isString(n)){var r=c(n);return t&&(r.singleQuote=!0),r}return a=n,(i=c(e.getTextOfIdentifierOrLiteral(a))).textSourceNode=a,i;var a,i}function o(e,t){void 0===t&&(t=0);var r=n(8);return r.text=e,r.numericLiteralFlags=t,r}function s(e){var t=n(9);return t.text=e,t}function c(e){var t=n(10);return t.text=e,t}function l(t,a){var i=n(75);return i.escapedText=e.escapeLeadingUnderscores(t),i.originalKeywordKind=t?e.stringToToken(t):0,i.autoGenerateFlags=0,i.autoGenerateId=0,a&&(i.typeArguments=r(a)),i}e.updateNode=t,e.createNodeArray=r,e.getSynthesizedClone=a,e.createLiteral=i,e.createNumericLiteral=o,e.createBigIntLiteral=s,e.createStringLiteral=c,e.createRegularExpressionLiteral=function(e){var t=n(13);return t.text=e,t},e.createIdentifier=l,e.updateIdentifier=function(n,r){return n.typeArguments!==r?t(l(e.idText(n),r),n):n};var u,d=0;function p(e){var n=l(e);return n.autoGenerateFlags=19,n.autoGenerateId=d,d++,n}function m(e){return n(e)}function f(){return n(105)}function _(){return n(90)}function g(e){return m(e)}function y(e,t){var r=n(152);return r.left=e,r.right=nt(t),r}function v(t){var r=n(153);return r.expression=function(n){return e.isCommaSequence(n)?ge(n):n}(t),r}function h(e,t,r){var a=n(154);return a.name=nt(e),a.constraint=t,a.default=r,a}function b(t,r,a,i,o,s,c){var l=n(155);return l.decorators=rt(t),l.modifiers=rt(r),l.dotDotDotToken=a,l.name=nt(i),l.questionToken=o,l.type=s,l.initializer=c?e.parenthesizeExpressionForList(c):void 0,l}function E(t){var r=n(156);return r.expression=e.parenthesizeForAccess(t),r}function T(e,t,r,a,i){var o=n(157);return o.modifiers=rt(e),o.name=nt(t),o.questionToken=r,o.type=a,o.initializer=i,o}function S(e,t,r,a,i,o){var s=n(158);return s.decorators=rt(e),s.modifiers=rt(t),s.name=nt(r),s.questionToken=void 0!==a&&57===a.kind?a:void 0,s.exclamationToken=void 0!==a&&53===a.kind?a:void 0,s.type=i,s.initializer=o,s}function x(e,n,t,r,a){var i=M(159,e,n,t);return i.name=nt(r),i.questionToken=a,i}function L(e,t,a,i,o,s,c,l,u){var d=n(160);return d.decorators=rt(e),d.modifiers=rt(t),d.asteriskToken=a,d.name=nt(i),d.questionToken=o,d.typeParameters=rt(s),d.parameters=r(c),d.type=l,d.body=u,d}function C(e,n,t){return function(e,n,t){return ue(ae(e,nt(n)),void 0,t)}(l(e),n,t)}function A(e,n,t){return!!t&&(e.push(Kn(n,t)),!0)}function D(e,t,a,i){var o=n(161);return o.decorators=rt(e),o.modifiers=rt(t),o.typeParameters=void 0,o.parameters=r(a),o.type=void 0,o.body=i,o}function k(e,t,a,i,o,s){var c=n(162);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=void 0,c.parameters=r(i),c.type=o,c.body=s,c}function N(e,t,a,i,o){var s=n(163);return s.decorators=rt(e),s.modifiers=rt(t),s.name=nt(a),s.typeParameters=void 0,s.parameters=r(i),s.body=o,s}function I(e,t,a,i){var o=n(166);return o.decorators=rt(e),o.modifiers=rt(t),o.parameters=r(a),o.type=i,o}function M(e,t,r,a,i){var o=n(e);return o.typeParameters=rt(t),o.parameters=rt(r),o.type=a,o.typeArguments=rt(i),o}function O(e,n,r,a){return e.typeParameters!==n||e.parameters!==r||e.type!==a?t(M(e.kind,n,r,a),e):e}function R(e,t,r){var a=n(167);return a.assertsModifier=e,a.parameterName=nt(t),a.type=r,a}function P(e,n,r,a){return e.assertsModifier!==n||e.parameterName!==r||e.type!==a?t(R(n,r,a),e):e}function w(t,r){var a=n(168);return a.typeName=nt(t),a.typeArguments=r&&e.parenthesizeTypeParameters(r),a}function F(e){var t=n(171);return t.exprName=e,t}function G(e){var t=n(172);return t.members=r(e),t}function B(t){var r=n(173);return r.elementType=e.parenthesizeArrayTypeMember(t),r}function V(e){var t=n(174);return t.elementTypes=r(e),t}function U(t){var r=n(175);return r.type=e.parenthesizeArrayTypeMember(t),r}function j(e){var t=n(176);return t.type=e,t}function K(t,r){var a=n(t);return a.types=e.parenthesizeElementTypeMembers(r),a}function H(e,n){return e.types!==n?t(K(e.kind,n),e):e}function W(t,r,a,i){var o=n(179);return o.checkType=e.parenthesizeConditionalTypeMember(t),o.extendsType=e.parenthesizeConditionalTypeMember(r),o.trueType=a,o.falseType=i,o}function z(e){var t=n(180);return t.typeParameter=e,t}function q(t,r,a,i){var o=n(187);return o.argument=t,o.qualifier=r,o.typeArguments=e.parenthesizeTypeParameters(a),o.isTypeOf=i,o}function J(e){var t=n(181);return t.type=e,t}function X(t,r){var a=n(183);return a.operator=\"number\"==typeof t?t:133,a.type=e.parenthesizeElementTypeMember(\"number\"==typeof t?r:t),a}function Y(t,r){var a=n(184);return a.objectType=e.parenthesizeElementTypeMember(t),a.indexType=r,a}function Q(e,t,r,a){var i=n(185);return i.readonlyToken=e,i.typeParameter=t,i.questionToken=r,i.type=a,i}function Z(e){var t=n(186);return t.literal=e,t}function $(e){var t=n(188);return t.elements=r(e),t}function ee(e){var t=n(189);return t.elements=r(e),t}function ne(e,t,r,a){var i=n(190);return i.dotDotDotToken=e,i.propertyName=nt(t),i.name=nt(r),i.initializer=a,i}function te(t,a){var i=n(191);return i.elements=e.parenthesizeListElements(r(t)),a&&(i.multiLine=!0),i}function re(e,t){var a=n(192);return a.properties=r(e),t&&(a.multiLine=!0),a}function ae(t,r){var a=n(193);return a.expression=e.parenthesizeForAccess(t),a.name=nt(r),st(a,131072),a}function ie(t,r,a){var i=n(193);return i.flags|=32,i.expression=e.parenthesizeForAccess(t),i.questionDotToken=r,i.name=nt(a),st(i,131072),i}function oe(n,r,a,i){return e.Debug.assert(!!(32&n.flags),\"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead.\"),n.expression!==r||n.questionDotToken!==a||n.name!==i?t(st(ie(r,a,i),e.getEmitFlags(n)),n):n}function se(t,r){var a=n(194);return a.expression=e.parenthesizeForAccess(t),a.argumentExpression=tt(r),a}function ce(t,r,a){var i=n(194);return i.flags|=32,i.expression=e.parenthesizeForAccess(t),i.questionDotToken=r,i.argumentExpression=tt(a),i}function le(n,r,a,i){return e.Debug.assert(!!(32&n.flags),\"Cannot update an ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead.\"),n.expression!==r||n.questionDotToken!==a||n.argumentExpression!==i?t(ce(r,a,i),n):n}function ue(t,a,i){var o=n(195);return o.expression=e.parenthesizeForAccess(t),o.typeArguments=rt(a),o.arguments=e.parenthesizeListElements(r(i)),o}function de(t,a,i,o){var s=n(195);return s.flags|=32,s.expression=e.parenthesizeForAccess(t),s.questionDotToken=a,s.typeArguments=rt(i),s.arguments=e.parenthesizeListElements(r(o)),s}function pe(n,r,a,i,o){return e.Debug.assert(!!(32&n.flags),\"Cannot update a CallExpression using updateCallChain. Use updateCall instead.\"),n.expression!==r||n.questionDotToken!==a||n.typeArguments!==i||n.arguments!==o?t(de(r,a,i,o),n):n}function me(t,a,i){var o=n(196);return o.expression=e.parenthesizeForNew(t),o.typeArguments=rt(a),o.arguments=i?e.parenthesizeListElements(r(i)):void 0,o}function fe(t,r,a){var i=n(197);return i.tag=e.parenthesizeForAccess(t),a?(i.typeArguments=rt(r),i.template=a):(i.typeArguments=void 0,i.template=r),i}function _e(t,r){var a=n(198);return a.type=t,a.expression=e.parenthesizePrefixOperand(r),a}function ge(e){var t=n(199);return t.expression=e,t}function ye(e,t,a,i,o,s,c){var l=n(200);return l.modifiers=rt(e),l.asteriskToken=t,l.name=nt(a),l.typeParameters=rt(i),l.parameters=r(o),l.type=s,l.body=c,l}function ve(t,a,i,o,s,c){var l=n(201);return l.modifiers=rt(t),l.typeParameters=rt(a),l.parameters=r(i),l.type=o,l.equalsGreaterThanToken=s||m(38),l.body=e.parenthesizeConciseBody(c),l}function he(t){var r=n(202);return r.expression=e.parenthesizePrefixOperand(t),r}function be(t){var r=n(203);return r.expression=e.parenthesizePrefixOperand(t),r}function Ee(t){var r=n(204);return r.expression=e.parenthesizePrefixOperand(t),r}function Te(t){var r=n(205);return r.expression=e.parenthesizePrefixOperand(t),r}function Se(t,r){var a=n(206);return a.operator=t,a.operand=e.parenthesizePrefixOperand(r),a}function xe(t,r){var a=n(207);return a.operand=e.parenthesizePostfixOperand(t),a.operator=r,a}function Le(t,r,a){var i,o=n(208),s=\"number\"==typeof(i=r)?m(i):i,c=s.kind;return o.left=e.parenthesizeBinaryOperand(c,t,!0,void 0),o.operatorToken=s,o.right=e.parenthesizeBinaryOperand(c,a,!1,o.left),o}function Ce(t,r,a,i,o){var s=n(209);return s.condition=e.parenthesizeForConditionalHead(t),s.questionToken=o?r:m(57),s.whenTrue=e.parenthesizeSubexpressionOfConditionalExpression(o?a:r),s.colonToken=o?i:m(58),s.whenFalse=e.parenthesizeSubexpressionOfConditionalExpression(o||a),s}function Ae(e,t){var a=n(210);return a.head=e,a.templateSpans=r(t),a}e.createTempVariable=function(e,n){var t=l(\"\");return t.autoGenerateFlags=1,t.autoGenerateId=d,d++,e&&e(t),n&&(t.autoGenerateFlags|=8),t},e.createLoopVariable=function(){var e=l(\"\");return e.autoGenerateFlags=2,e.autoGenerateId=d,d++,e},e.createUniqueName=function(e){var n=l(e);return n.autoGenerateFlags=3,n.autoGenerateId=d,d++,n},e.createOptimisticUniqueName=p,e.createFileLevelUniqueName=function(e){var n=p(e);return n.autoGenerateFlags|=32,n},e.getGeneratedNameForNode=function(n,t){var r=l(n&&e.isIdentifier(n)?e.idText(n):\"\");return r.autoGenerateFlags=4|t,r.autoGenerateId=d,r.original=n,d++,r},e.createToken=m,e.createSuper=function(){return n(101)},e.createThis=function(){return n(103)},e.createNull=function(){return n(99)},e.createTrue=f,e.createFalse=_,e.createModifier=g,e.createModifiersFromModifierFlags=function(e){var n=[];return 1&e&&n.push(g(88)),2&e&&n.push(g(129)),512&e&&n.push(g(83)),2048&e&&n.push(g(80)),4&e&&n.push(g(118)),8&e&&n.push(g(116)),16&e&&n.push(g(117)),128&e&&n.push(g(121)),32&e&&n.push(g(119)),64&e&&n.push(g(137)),256&e&&n.push(g(125)),n},e.createQualifiedName=y,e.updateQualifiedName=function(e,n,r){return e.left!==n||e.right!==r?t(y(n,r),e):e},e.createComputedPropertyName=v,e.updateComputedPropertyName=function(e,n){return e.expression!==n?t(v(n),e):e},e.createTypeParameterDeclaration=h,e.updateTypeParameterDeclaration=function(e,n,r,a){return e.name!==n||e.constraint!==r||e.default!==a?t(h(n,r,a),e):e},e.createParameter=b,e.updateParameter=function(e,n,r,a,i,o,s,c){return e.decorators!==n||e.modifiers!==r||e.dotDotDotToken!==a||e.name!==i||e.questionToken!==o||e.type!==s||e.initializer!==c?t(b(n,r,a,i,o,s,c),e):e},e.createDecorator=E,e.updateDecorator=function(e,n){return e.expression!==n?t(E(n),e):e},e.createPropertySignature=T,e.updatePropertySignature=function(e,n,r,a,i,o){return e.modifiers!==n||e.name!==r||e.questionToken!==a||e.type!==i||e.initializer!==o?t(T(n,r,a,i,o),e):e},e.createProperty=S,e.updateProperty=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.questionToken!==(void 0!==i&&57===i.kind?i:void 0)||e.exclamationToken!==(void 0!==i&&53===i.kind?i:void 0)||e.type!==o||e.initializer!==s?t(S(n,r,a,i,o,s),e):e},e.createMethodSignature=x,e.updateMethodSignature=function(e,n,r,a,i,o){return e.typeParameters!==n||e.parameters!==r||e.type!==a||e.name!==i||e.questionToken!==o?t(x(n,r,a,i,o),e):e},e.createMethod=L,e.createObjectDefinePropertyCall=function(e,n,t){return C(\"Object\",\"defineProperty\",[e,tt(n),t])},e.createPropertyDescriptor=function(n,t){var r=[];A(r,\"enumerable\",tt(n.enumerable)),A(r,\"configurable\",tt(n.configurable));var a=A(r,\"writable\",tt(n.writable));a=A(r,\"value\",n.value)||a;var i=A(r,\"get\",n.get);return i=A(r,\"set\",n.set)||i,e.Debug.assert(!(a&&i),\"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor.\"),re(r,!t)},e.updateMethod=function(e,n,r,a,i,o,s,c,l,u){return e.decorators!==n||e.modifiers!==r||e.asteriskToken!==a||e.name!==i||e.questionToken!==o||e.typeParameters!==s||e.parameters!==c||e.type!==l||e.body!==u?t(L(n,r,a,i,o,s,c,l,u),e):e},e.createConstructor=D,e.updateConstructor=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.parameters!==a||e.body!==i?t(D(n,r,a,i),e):e},e.createGetAccessor=k,e.updateGetAccessor=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.parameters!==i||e.type!==o||e.body!==s?t(k(n,r,a,i,o,s),e):e},e.createSetAccessor=N,e.updateSetAccessor=function(e,n,r,a,i,o){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.parameters!==i||e.body!==o?t(N(n,r,a,i,o),e):e},e.createCallSignature=function(e,n,t){return M(164,e,n,t)},e.updateCallSignature=function(e,n,t,r){return O(e,n,t,r)},e.createConstructSignature=function(e,n,t){return M(165,e,n,t)},e.updateConstructSignature=function(e,n,t,r){return O(e,n,t,r)},e.createIndexSignature=I,e.updateIndexSignature=function(e,n,r,a,i){return e.parameters!==a||e.type!==i||e.decorators!==n||e.modifiers!==r?t(I(n,r,a,i),e):e},e.createSignatureDeclaration=M,e.createKeywordTypeNode=function(e){return n(e)},e.createTypePredicateNode=function(e,n){return R(void 0,e,n)},e.createTypePredicateNodeWithModifier=R,e.updateTypePredicateNode=function(e,n,t){return P(e,e.assertsModifier,n,t)},e.updateTypePredicateNodeWithModifier=P,e.createTypeReferenceNode=w,e.updateTypeReferenceNode=function(e,n,r){return e.typeName!==n||e.typeArguments!==r?t(w(n,r),e):e},e.createFunctionTypeNode=function(e,n,t){return M(169,e,n,t)},e.updateFunctionTypeNode=function(e,n,t,r){return O(e,n,t,r)},e.createConstructorTypeNode=function(e,n,t){return M(170,e,n,t)},e.updateConstructorTypeNode=function(e,n,t,r){return O(e,n,t,r)},e.createTypeQueryNode=F,e.updateTypeQueryNode=function(e,n){return e.exprName!==n?t(F(n),e):e},e.createTypeLiteralNode=G,e.updateTypeLiteralNode=function(e,n){return e.members!==n?t(G(n),e):e},e.createArrayTypeNode=B,e.updateArrayTypeNode=function(e,n){return e.elementType!==n?t(B(n),e):e},e.createTupleTypeNode=V,e.updateTupleTypeNode=function(e,n){return e.elementTypes!==n?t(V(n),e):e},e.createOptionalTypeNode=U,e.updateOptionalTypeNode=function(e,n){return e.type!==n?t(U(n),e):e},e.createRestTypeNode=j,e.updateRestTypeNode=function(e,n){return e.type!==n?t(j(n),e):e},e.createUnionTypeNode=function(e){return K(177,e)},e.updateUnionTypeNode=function(e,n){return H(e,n)},e.createIntersectionTypeNode=function(e){return K(178,e)},e.updateIntersectionTypeNode=function(e,n){return H(e,n)},e.createUnionOrIntersectionTypeNode=K,e.createConditionalTypeNode=W,e.updateConditionalTypeNode=function(e,n,r,a,i){return e.checkType!==n||e.extendsType!==r||e.trueType!==a||e.falseType!==i?t(W(n,r,a,i),e):e},e.createInferTypeNode=z,e.updateInferTypeNode=function(e,n){return e.typeParameter!==n?t(z(n),e):e},e.createImportTypeNode=q,e.updateImportTypeNode=function(e,n,r,a,i){return e.argument!==n||e.qualifier!==r||e.typeArguments!==a||e.isTypeOf!==i?t(q(n,r,a,i),e):e},e.createParenthesizedType=J,e.updateParenthesizedType=function(e,n){return e.type!==n?t(J(n),e):e},e.createThisTypeNode=function(){return n(182)},e.createTypeOperatorNode=X,e.updateTypeOperatorNode=function(e,n){return e.type!==n?t(X(e.operator,n),e):e},e.createIndexedAccessTypeNode=Y,e.updateIndexedAccessTypeNode=function(e,n,r){return e.objectType!==n||e.indexType!==r?t(Y(n,r),e):e},e.createMappedTypeNode=Q,e.updateMappedTypeNode=function(e,n,r,a,i){return e.readonlyToken!==n||e.typeParameter!==r||e.questionToken!==a||e.type!==i?t(Q(n,r,a,i),e):e},e.createLiteralTypeNode=Z,e.updateLiteralTypeNode=function(e,n){return e.literal!==n?t(Z(n),e):e},e.createObjectBindingPattern=$,e.updateObjectBindingPattern=function(e,n){return e.elements!==n?t($(n),e):e},e.createArrayBindingPattern=ee,e.updateArrayBindingPattern=function(e,n){return e.elements!==n?t(ee(n),e):e},e.createBindingElement=ne,e.updateBindingElement=function(e,n,r,a,i){return e.propertyName!==r||e.dotDotDotToken!==n||e.name!==a||e.initializer!==i?t(ne(n,r,a,i),e):e},e.createArrayLiteral=te,e.updateArrayLiteral=function(e,n){return e.elements!==n?t(te(n,e.multiLine),e):e},e.createObjectLiteral=re,e.updateObjectLiteral=function(e,n){return e.properties!==n?t(re(n,e.multiLine),e):e},e.createPropertyAccess=ae,e.updatePropertyAccess=function(n,r,a){return e.isOptionalChain(n)?oe(n,r,n.questionDotToken,a):n.expression!==r||n.name!==a?t(st(ae(r,a),e.getEmitFlags(n)),n):n},e.createPropertyAccessChain=ie,e.updatePropertyAccessChain=oe,e.createElementAccess=se,e.updateElementAccess=function(n,r,a){return e.isOptionalChain(n)?le(n,r,n.questionDotToken,a):n.expression!==r||n.argumentExpression!==a?t(se(r,a),n):n},e.createElementAccessChain=ce,e.updateElementAccessChain=le,e.createCall=ue,e.updateCall=function(n,r,a,i){return e.isOptionalChain(n)?pe(n,r,n.questionDotToken,a,i):n.expression!==r||n.typeArguments!==a||n.arguments!==i?t(ue(r,a,i),n):n},e.createCallChain=de,e.updateCallChain=pe,e.createNew=me,e.updateNew=function(e,n,r,a){return e.expression!==n||e.typeArguments!==r||e.arguments!==a?t(me(n,r,a),e):e},e.createTaggedTemplate=fe,e.updateTaggedTemplate=function(e,n,r,a){return e.tag!==n||(a?e.typeArguments!==r||e.template!==a:void 0!==e.typeArguments||e.template!==r)?t(fe(n,r,a),e):e},e.createTypeAssertion=_e,e.updateTypeAssertion=function(e,n,r){return e.type!==n||e.expression!==r?t(_e(n,r),e):e},e.createParen=ge,e.updateParen=function(e,n){return e.expression!==n?t(ge(n),e):e},e.createFunctionExpression=ye,e.updateFunctionExpression=function(e,n,r,a,i,o,s,c){return e.name!==a||e.modifiers!==n||e.asteriskToken!==r||e.typeParameters!==i||e.parameters!==o||e.type!==s||e.body!==c?t(ye(n,r,a,i,o,s,c),e):e},e.createArrowFunction=ve,e.updateArrowFunction=function(e,n,r,a,i,o,s){return e.modifiers!==n||e.typeParameters!==r||e.parameters!==a||e.type!==i||e.equalsGreaterThanToken!==o||e.body!==s?t(ve(n,r,a,i,o,s),e):e},e.createDelete=he,e.updateDelete=function(e,n){return e.expression!==n?t(he(n),e):e},e.createTypeOf=be,e.updateTypeOf=function(e,n){return e.expression!==n?t(be(n),e):e},e.createVoid=Ee,e.updateVoid=function(e,n){return e.expression!==n?t(Ee(n),e):e},e.createAwait=Te,e.updateAwait=function(e,n){return e.expression!==n?t(Te(n),e):e},e.createPrefix=Se,e.updatePrefix=function(e,n){return e.operand!==n?t(Se(e.operator,n),e):e},e.createPostfix=xe,e.updatePostfix=function(e,n){return e.operand!==n?t(xe(n,e.operator),e):e},e.createBinary=Le,e.updateBinary=function(e,n,r,a){return e.left!==n||e.right!==r?t(Le(n,a||e.operatorToken,r),e):e},e.createConditional=Ce,e.updateConditional=function(e,n,r,a,i,o){return e.condition!==n||e.questionToken!==r||e.whenTrue!==a||e.colonToken!==i||e.whenFalse!==o?t(Ce(n,r,a,i,o),e):e},e.createTemplateExpression=Ae,e.updateTemplateExpression=function(e,n,r){return e.head!==n||e.templateSpans!==r?t(Ae(n,r),e):e};var De,ke,Ne={};function Ie(t,r,a){var i=n(t);if(i.text=r,void 0===a||r===a)i.rawText=a;else{var o=function(n,t){switch(u||(u=e.createScanner(99,!1,0)),n){case 14:u.setText(\"`\"+t+\"`\");break;case 15:u.setText(\"`\"+t+\"${\");break;case 16:u.setText(\"}\"+t+\"${\");break;case 17:u.setText(\"}\"+t+\"`\")}var r,a=u.scan();if(23===a&&(a=u.reScanTemplateToken()),u.isUnterminated())return u.setText(void 0),Ne;switch(a){case 14:case 15:case 16:case 17:r=u.getTokenValue()}return 1!==u.scan()?(u.setText(void 0),Ne):(u.setText(void 0),r)}(t,a);if(\"object\"==typeof o)return e.Debug.fail(\"Invalid raw text\");e.Debug.assert(r===o,\"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.\"),i.rawText=a}return i}function Me(e,t){var r=n(211);return r.asteriskToken=e&&41===e.kind?e:void 0,r.expression=e&&41!==e.kind?e:t,r}function Oe(t){var r=n(212);return r.expression=e.parenthesizeExpressionForList(t),r}function Re(e,t,a,i,o){var s=n(213);return s.decorators=void 0,s.modifiers=rt(e),s.name=nt(t),s.typeParameters=rt(a),s.heritageClauses=rt(i),s.members=r(o),s}function Pe(t,r){var a=n(215);return a.expression=e.parenthesizeForAccess(r),a.typeArguments=rt(t),a}function we(e,t){var r=n(216);return r.expression=e,r.type=t,r}function Fe(t){var r=n(217);return r.expression=e.parenthesizeForAccess(t),r}function Ge(e,t){var r=n(218);return r.keywordToken=e,r.name=t,r}function Be(e,t){var r=n(220);return r.expression=e,r.literal=t,r}function Ve(e,t){var a=n(222);return a.statements=r(e),t&&(a.multiLine=t),a}function Ue(t,r){var a=n(224);return a.decorators=void 0,a.modifiers=rt(t),a.declarationList=e.isArray(r)?sn(r):r,a}function je(){return n(223)}function Ke(t){var r=n(225);return r.expression=e.parenthesizeExpressionForExpressionStatement(t),r}function He(e,n){return e.expression!==n?t(Ke(n),e):e}function We(e,t,r){var a=n(226);return a.expression=e,a.thenStatement=at(t),a.elseStatement=at(r),a}function ze(e,t){var r=n(227);return r.statement=at(e),r.expression=t,r}function qe(e,t){var r=n(228);return r.expression=e,r.statement=at(t),r}function Je(e,t,r,a){var i=n(229);return i.initializer=e,i.condition=t,i.incrementor=r,i.statement=at(a),i}function Xe(e,t,r){var a=n(230);return a.initializer=e,a.expression=t,a.statement=at(r),a}function Ye(t,r,a,i){var o=n(231);return o.awaitModifier=t,o.initializer=r,o.expression=e.isCommaSequence(a)?ge(a):a,o.statement=at(i),o}function Qe(e){var t=n(232);return t.label=nt(e),t}function Ze(e){var t=n(233);return t.label=nt(e),t}function $e(e){var t=n(234);return t.expression=e,t}function en(e,t){var r=n(235);return r.expression=e,r.statement=at(t),r}function nn(t,r){var a=n(236);return a.expression=e.parenthesizeExpressionForList(t),a.caseBlock=r,a}function tn(e,t){var r=n(237);return r.label=nt(e),r.statement=at(t),r}function rn(e){var t=n(238);return t.expression=e,t}function an(e,t,r){var a=n(239);return a.tryBlock=e,a.catchClause=t,a.finallyBlock=r,a}function on(t,r,a){var i=n(241);return i.name=nt(t),i.type=r,i.initializer=void 0!==a?e.parenthesizeExpressionForList(a):void 0,i}function sn(e,t){void 0===t&&(t=0);var a=n(242);return a.flags|=3&t,a.declarations=r(e),a}function cn(e,t,a,i,o,s,c,l){var u=n(243);return u.decorators=rt(e),u.modifiers=rt(t),u.asteriskToken=a,u.name=nt(i),u.typeParameters=rt(o),u.parameters=r(s),u.type=c,u.body=l,u}function ln(e,t,a,i,o,s){var c=n(244);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=rt(i),c.heritageClauses=rt(o),c.members=r(s),c}function un(e,t,a,i,o,s){var c=n(245);return c.decorators=rt(e),c.modifiers=rt(t),c.name=nt(a),c.typeParameters=rt(i),c.heritageClauses=rt(o),c.members=r(s),c}function dn(e,t,r,a,i){var o=n(246);return o.decorators=rt(e),o.modifiers=rt(t),o.name=nt(r),o.typeParameters=rt(a),o.type=i,o}function pn(e,t,a,i){var o=n(247);return o.decorators=rt(e),o.modifiers=rt(t),o.name=nt(a),o.members=r(i),o}function mn(e,t,r,a,i){void 0===i&&(i=0);var o=n(248);return o.flags|=1044&i,o.decorators=rt(e),o.modifiers=rt(t),o.name=r,o.body=a,o}function fn(e){var t=n(249);return t.statements=r(e),t}function _n(e){var t=n(250);return t.clauses=r(e),t}function gn(e){var t=n(251);return t.name=nt(e),t}function yn(e,t,r,a){var i=n(252);return i.decorators=rt(e),i.modifiers=rt(t),i.name=nt(r),i.moduleReference=a,i}function vn(e,t,r,a){var i=n(253);return i.decorators=rt(e),i.modifiers=rt(t),i.importClause=r,i.moduleSpecifier=a,i}function hn(e,t){var r=n(254);return r.name=e,r.namedBindings=t,r}function bn(e){var t=n(255);return t.name=e,t}function En(e){var t=n(256);return t.elements=r(e),t}function Tn(e,t){var r=n(257);return r.propertyName=e,r.name=t,r}function Sn(t,r,a,i){var o=n(258);return o.decorators=rt(t),o.modifiers=rt(r),o.isExportEquals=a,o.expression=a?e.parenthesizeBinaryOperand(62,i,!1,void 0):e.parenthesizeDefaultExpression(i),o}function xn(e,t,r,a){var i=n(259);return i.decorators=rt(e),i.modifiers=rt(t),i.exportClause=r,i.moduleSpecifier=a,i}function Ln(e){var t=n(260);return t.elements=r(e),t}function Cn(e,t){var r=n(261);return r.propertyName=nt(e),r.name=nt(t),r}function An(e){var t=n(263);return t.expression=e,t}function Dn(e,t){var r=n(e);return r.tagName=l(t),r}function kn(e,t,a){var i=n(264);return i.openingElement=e,i.children=r(t),i.closingElement=a,i}function Nn(e,t,r){var a=n(265);return a.tagName=e,a.typeArguments=rt(t),a.attributes=r,a}function In(e,t,r){var a=n(266);return a.tagName=e,a.typeArguments=rt(t),a.attributes=r,a}function Mn(e){var t=n(267);return t.tagName=e,t}function On(e,t,a){var i=n(268);return i.openingFragment=e,i.children=r(t),i.closingFragment=a,i}function Rn(e,t){var r=n(11);return r.text=e,r.containsOnlyTriviaWhiteSpaces=!!t,r}function Pn(e,t){var r=n(271);return r.name=e,r.initializer=t,r}function wn(e){var t=n(272);return t.properties=r(e),t}function Fn(e){var t=n(273);return t.expression=e,t}function Gn(e,t){var r=n(274);return r.dotDotDotToken=e,r.expression=t,r}function Bn(t,a){var i=n(275);return i.expression=e.parenthesizeExpressionForList(t),i.statements=r(a),i}function Vn(e){var t=n(276);return t.statements=r(e),t}function Un(e,t){var a=n(277);return a.token=e,a.types=r(t),a}function jn(t,r){var a=n(278);return a.variableDeclaration=e.isString(t)?on(t):t,a.block=r,a}function Kn(t,r){var a=n(279);return a.name=nt(t),a.questionToken=void 0,a.initializer=e.parenthesizeExpressionForList(r),a}function Hn(t,r){var a=n(280);return a.name=nt(t),a.objectAssignmentInitializer=void 0!==r?e.parenthesizeExpressionForList(r):void 0,a}function Wn(t){var r=n(281);return r.expression=e.parenthesizeExpressionForList(t),r}function zn(t,r){var a=n(282);return a.name=nt(t),a.initializer=r&&e.parenthesizeExpressionForList(r),a}function qn(e,t){var r=n(319);return r.expression=e,r.original=t,ot(r,t),r}function Jn(n){if(e.nodeIsSynthesized(n)&&!e.isParseTreeNode(n)&&!n.original&&!n.emitNode&&!n.id){if(320===n.kind)return n.elements;if(e.isBinaryExpression(n)&&27===n.operatorToken.kind)return[n.left,n.right]}return n}function Xn(t){var a=n(320);return a.elements=r(e.sameFlatMap(t,Jn)),a}function Yn(e,t){var r=n(323);return r.expression=e,r.thisArg=t,r}function Qn(n,t){void 0===t&&(t=e.emptyArray);var r=e.createNode(289);return r.prepends=t,r.sourceFiles=n,r}function Zn(){return De||(De=e.arrayToMap([e.valuesHelper,e.readHelper,e.spreadHelper,e.spreadArraysHelper,e.restHelper,e.decorateHelper,e.metadataHelper,e.paramHelper,e.awaiterHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.extendsHelper,e.templateObjectHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper],(function(e){return e.name})))}function $n(n,t){var r=e.createNode(function(n){switch(n){case\"prologue\":return 283;case\"prepend\":return 284;case\"internal\":return 286;case\"text\":return 285;case\"emitHelpers\":case\"no-default-lib\":case\"reference\":case\"type\":case\"lib\":return e.Debug.fail(\"BundleFileSectionKind: \"+n+\" not yet mapped to SyntaxKind\");default:return e.Debug.assertNever(n)}}(n.kind),n.pos,n.end);return r.parent=t,r.data=n.data,r}function et(n,t){var r=e.createNode(287,n.pos,n.end);return r.parent=t,r.data=n.data,r.section=n,r}function nt(n){return e.isString(n)?l(n):n}function tt(e){return\"string\"==typeof e?c(e):\"number\"==typeof e?o(\"\"+e):\"boolean\"==typeof e?e?f():_():e}function rt(e){return e?r(e):void 0}function at(n){return n&&e.isNotEmittedStatement(n)?ot(pt(je(),n),n):n}function it(n){if(!n.emitNode){if(e.isParseTreeNode(n)){if(288===n.kind)return n.emitNode={annotatedNodes:[n]};it(e.getSourceFileOfNode(e.getParseTreeNode(e.getSourceFileOfNode(n)))).annotatedNodes.push(n)}n.emitNode={}}return n.emitNode}function ot(e,n){return n&&(e.pos=n.pos,e.end=n.end),e}function st(e,n){return it(e).flags=n,e}function ct(e){var n=e.emitNode;return n&&n.leadingComments}function lt(e,n){return it(e).leadingComments=n,e}function ut(e){var n=e.emitNode;return n&&n.trailingComments}function dt(e,n){return it(e).trailingComments=n,e}function pt(n,t){if(n.original=t,t){var r=t.emitNode;r&&(n.emitNode=function(n,t){var r=n.flags,a=n.leadingComments,i=n.trailingComments,o=n.commentRange,s=n.sourceMapRange,c=n.tokenSourceMapRanges,l=n.constantValue,u=n.helpers,d=n.startsOnNewLine;t||(t={});a&&(t.leadingComments=e.addRange(a.slice(),t.leadingComments));i&&(t.trailingComments=e.addRange(i.slice(),t.trailingComments));r&&(t.flags=r);o&&(t.commentRange=o);s&&(t.sourceMapRange=s);c&&(t.tokenSourceMapRanges=function(e,n){n||(n=[]);for(var t in e)n[t]=e[t];return n}(c,t.tokenSourceMapRanges));void 0!==l&&(t.constantValue=l);u&&(t.helpers=e.addRange(t.helpers,u));void 0!==d&&(t.startsOnNewLine=d);return t}(r,n.emitNode))}return n}e.createTemplateHead=function(e,n){var t=Ie(15,e,n);return t.text=e,t},e.createTemplateMiddle=function(e,n){var t=Ie(16,e,n);return t.text=e,t},e.createTemplateTail=function(e,n){var t=Ie(17,e,n);return t.text=e,t},e.createNoSubstitutionTemplateLiteral=function(e,n){return Ie(14,e,n)},e.createYield=Me,e.updateYield=function(e,n,r){return e.expression!==r||e.asteriskToken!==n?t(Me(n,r),e):e},e.createSpread=Oe,e.updateSpread=function(e,n){return e.expression!==n?t(Oe(n),e):e},e.createClassExpression=Re,e.updateClassExpression=function(e,n,r,a,i,o){return e.modifiers!==n||e.name!==r||e.typeParameters!==a||e.heritageClauses!==i||e.members!==o?t(Re(n,r,a,i,o),e):e},e.createOmittedExpression=function(){return n(214)},e.createExpressionWithTypeArguments=Pe,e.updateExpressionWithTypeArguments=function(e,n,r){return e.typeArguments!==n||e.expression!==r?t(Pe(n,r),e):e},e.createAsExpression=we,e.updateAsExpression=function(e,n,r){return e.expression!==n||e.type!==r?t(we(n,r),e):e},e.createNonNullExpression=Fe,e.updateNonNullExpression=function(e,n){return e.expression!==n?t(Fe(n),e):e},e.createMetaProperty=Ge,e.updateMetaProperty=function(e,n){return e.name!==n?t(Ge(e.keywordToken,n),e):e},e.createTemplateSpan=Be,e.updateTemplateSpan=function(e,n,r){return e.expression!==n||e.literal!==r?t(Be(n,r),e):e},e.createSemicolonClassElement=function(){return n(221)},e.createBlock=Ve,e.updateBlock=function(e,n){return e.statements!==n?t(Ve(n,e.multiLine),e):e},e.createVariableStatement=Ue,e.updateVariableStatement=function(e,n,r){return e.modifiers!==n||e.declarationList!==r?t(Ue(n,r),e):e},e.createEmptyStatement=je,e.createExpressionStatement=Ke,e.updateExpressionStatement=He,e.createStatement=Ke,e.updateStatement=He,e.createIf=We,e.updateIf=function(e,n,r,a){return e.expression!==n||e.thenStatement!==r||e.elseStatement!==a?t(We(n,r,a),e):e},e.createDo=ze,e.updateDo=function(e,n,r){return e.statement!==n||e.expression!==r?t(ze(n,r),e):e},e.createWhile=qe,e.updateWhile=function(e,n,r){return e.expression!==n||e.statement!==r?t(qe(n,r),e):e},e.createFor=Je,e.updateFor=function(e,n,r,a,i){return e.initializer!==n||e.condition!==r||e.incrementor!==a||e.statement!==i?t(Je(n,r,a,i),e):e},e.createForIn=Xe,e.updateForIn=function(e,n,r,a){return e.initializer!==n||e.expression!==r||e.statement!==a?t(Xe(n,r,a),e):e},e.createForOf=Ye,e.updateForOf=function(e,n,r,a,i){return e.awaitModifier!==n||e.initializer!==r||e.expression!==a||e.statement!==i?t(Ye(n,r,a,i),e):e},e.createContinue=Qe,e.updateContinue=function(e,n){return e.label!==n?t(Qe(n),e):e},e.createBreak=Ze,e.updateBreak=function(e,n){return e.label!==n?t(Ze(n),e):e},e.createReturn=$e,e.updateReturn=function(e,n){return e.expression!==n?t($e(n),e):e},e.createWith=en,e.updateWith=function(e,n,r){return e.expression!==n||e.statement!==r?t(en(n,r),e):e},e.createSwitch=nn,e.updateSwitch=function(e,n,r){return e.expression!==n||e.caseBlock!==r?t(nn(n,r),e):e},e.createLabel=tn,e.updateLabel=function(e,n,r){return e.label!==n||e.statement!==r?t(tn(n,r),e):e},e.createThrow=rn,e.updateThrow=function(e,n){return e.expression!==n?t(rn(n),e):e},e.createTry=an,e.updateTry=function(e,n,r,a){return e.tryBlock!==n||e.catchClause!==r||e.finallyBlock!==a?t(an(n,r,a),e):e},e.createDebuggerStatement=function(){return n(240)},e.createVariableDeclaration=on,e.updateVariableDeclaration=function(e,n,r,a){return e.name!==n||e.type!==r||e.initializer!==a?t(on(n,r,a),e):e},e.createVariableDeclarationList=sn,e.updateVariableDeclarationList=function(e,n){return e.declarations!==n?t(sn(n,e.flags),e):e},e.createFunctionDeclaration=cn,e.updateFunctionDeclaration=function(e,n,r,a,i,o,s,c,l){return e.decorators!==n||e.modifiers!==r||e.asteriskToken!==a||e.name!==i||e.typeParameters!==o||e.parameters!==s||e.type!==c||e.body!==l?t(cn(n,r,a,i,o,s,c,l),e):e},e.createClassDeclaration=ln,e.updateClassDeclaration=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.heritageClauses!==o||e.members!==s?t(ln(n,r,a,i,o,s),e):e},e.createInterfaceDeclaration=un,e.updateInterfaceDeclaration=function(e,n,r,a,i,o,s){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.heritageClauses!==o||e.members!==s?t(un(n,r,a,i,o,s),e):e},e.createTypeAliasDeclaration=dn,e.updateTypeAliasDeclaration=function(e,n,r,a,i,o){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.typeParameters!==i||e.type!==o?t(dn(n,r,a,i,o),e):e},e.createEnumDeclaration=pn,e.updateEnumDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.members!==i?t(pn(n,r,a,i),e):e},e.createModuleDeclaration=mn,e.updateModuleDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.body!==i?t(mn(n,r,a,i,e.flags),e):e},e.createModuleBlock=fn,e.updateModuleBlock=function(e,n){return e.statements!==n?t(fn(n),e):e},e.createCaseBlock=_n,e.updateCaseBlock=function(e,n){return e.clauses!==n?t(_n(n),e):e},e.createNamespaceExportDeclaration=gn,e.updateNamespaceExportDeclaration=function(e,n){return e.name!==n?t(gn(n),e):e},e.createImportEqualsDeclaration=yn,e.updateImportEqualsDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.name!==a||e.moduleReference!==i?t(yn(n,r,a,i),e):e},e.createImportDeclaration=vn,e.updateImportDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.importClause!==a||e.moduleSpecifier!==i?t(vn(n,r,a,i),e):e},e.createImportClause=hn,e.updateImportClause=function(e,n,r){return e.name!==n||e.namedBindings!==r?t(hn(n,r),e):e},e.createNamespaceImport=bn,e.updateNamespaceImport=function(e,n){return e.name!==n?t(bn(n),e):e},e.createNamedImports=En,e.updateNamedImports=function(e,n){return e.elements!==n?t(En(n),e):e},e.createImportSpecifier=Tn,e.updateImportSpecifier=function(e,n,r){return e.propertyName!==n||e.name!==r?t(Tn(n,r),e):e},e.createExportAssignment=Sn,e.updateExportAssignment=function(e,n,r,a){return e.decorators!==n||e.modifiers!==r||e.expression!==a?t(Sn(n,r,e.isExportEquals,a),e):e},e.createExportDeclaration=xn,e.updateExportDeclaration=function(e,n,r,a,i){return e.decorators!==n||e.modifiers!==r||e.exportClause!==a||e.moduleSpecifier!==i?t(xn(n,r,a,i),e):e},e.createEmptyExports=function(){return xn(void 0,void 0,Ln([]),void 0)},e.createNamedExports=Ln,e.updateNamedExports=function(e,n){return e.elements!==n?t(Ln(n),e):e},e.createExportSpecifier=Cn,e.updateExportSpecifier=function(e,n,r){return e.propertyName!==n||e.name!==r?t(Cn(n,r),e):e},e.createExternalModuleReference=An,e.updateExternalModuleReference=function(e,n){return e.expression!==n?t(An(n),e):e},e.createJSDocTypeExpression=function(e){var t=n(292);return t.type=e,t},e.createJSDocTypeTag=function(e,n){var t=Dn(313,\"type\");return t.typeExpression=e,t.comment=n,t},e.createJSDocReturnTag=function(e,n){var t=Dn(311,\"returns\");return t.typeExpression=e,t.comment=n,t},e.createJSDocThisTag=function(e){var n=Dn(312,\"this\");return n.typeExpression=e,n},e.createJSDocParamTag=function(e,n,t,r){var a=Dn(310,\"param\");return a.typeExpression=t,a.name=e,a.isBracketed=n,a.comment=r,a},e.createJSDocComment=function(e,t){var r=n(301);return r.comment=e,r.tags=t,r},e.createJsxElement=kn,e.updateJsxElement=function(e,n,r,a){return e.openingElement!==n||e.children!==r||e.closingElement!==a?t(kn(n,r,a),e):e},e.createJsxSelfClosingElement=Nn,e.updateJsxSelfClosingElement=function(e,n,r,a){return e.tagName!==n||e.typeArguments!==r||e.attributes!==a?t(Nn(n,r,a),e):e},e.createJsxOpeningElement=In,e.updateJsxOpeningElement=function(e,n,r,a){return e.tagName!==n||e.typeArguments!==r||e.attributes!==a?t(In(n,r,a),e):e},e.createJsxClosingElement=Mn,e.updateJsxClosingElement=function(e,n){return e.tagName!==n?t(Mn(n),e):e},e.createJsxFragment=On,e.createJsxText=Rn,e.updateJsxText=function(e,n,r){return e.text!==n||e.containsOnlyTriviaWhiteSpaces!==r?t(Rn(n,r),e):e},e.createJsxOpeningFragment=function(){return n(269)},e.createJsxJsxClosingFragment=function(){return n(270)},e.updateJsxFragment=function(e,n,r,a){return e.openingFragment!==n||e.children!==r||e.closingFragment!==a?t(On(n,r,a),e):e},e.createJsxAttribute=Pn,e.updateJsxAttribute=function(e,n,r){return e.name!==n||e.initializer!==r?t(Pn(n,r),e):e},e.createJsxAttributes=wn,e.updateJsxAttributes=function(e,n){return e.properties!==n?t(wn(n),e):e},e.createJsxSpreadAttribute=Fn,e.updateJsxSpreadAttribute=function(e,n){return e.expression!==n?t(Fn(n),e):e},e.createJsxExpression=Gn,e.updateJsxExpression=function(e,n){return e.expression!==n?t(Gn(e.dotDotDotToken,n),e):e},e.createCaseClause=Bn,e.updateCaseClause=function(e,n,r){return e.expression!==n||e.statements!==r?t(Bn(n,r),e):e},e.createDefaultClause=Vn,e.updateDefaultClause=function(e,n){return e.statements!==n?t(Vn(n),e):e},e.createHeritageClause=Un,e.updateHeritageClause=function(e,n){return e.types!==n?t(Un(e.token,n),e):e},e.createCatchClause=jn,e.updateCatchClause=function(e,n,r){return e.variableDeclaration!==n||e.block!==r?t(jn(n,r),e):e},e.createPropertyAssignment=Kn,e.updatePropertyAssignment=function(e,n,r){return e.name!==n||e.initializer!==r?t(Kn(n,r),e):e},e.createShorthandPropertyAssignment=Hn,e.updateShorthandPropertyAssignment=function(e,n,r){return e.name!==n||e.objectAssignmentInitializer!==r?t(Hn(n,r),e):e},e.createSpreadAssignment=Wn,e.updateSpreadAssignment=function(e,n){return e.expression!==n?t(Wn(n),e):e},e.createEnumMember=zn,e.updateEnumMember=function(e,n,r){return e.name!==n||e.initializer!==r?t(zn(n,r),e):e},e.updateSourceFileNode=function(e,a,i,o,s,c,l){if(e.statements!==a||void 0!==i&&e.isDeclarationFile!==i||void 0!==o&&e.referencedFiles!==o||void 0!==s&&e.typeReferenceDirectives!==s||void 0!==l&&e.libReferenceDirectives!==l||void 0!==c&&e.hasNoDefaultLib!==c){var u=n(288);return u.flags|=e.flags,u.statements=r(a),u.endOfFileToken=e.endOfFileToken,u.fileName=e.fileName,u.path=e.path,u.text=e.text,u.isDeclarationFile=void 0===i?e.isDeclarationFile:i,u.referencedFiles=void 0===o?e.referencedFiles:o,u.typeReferenceDirectives=void 0===s?e.typeReferenceDirectives:s,u.hasNoDefaultLib=void 0===c?e.hasNoDefaultLib:c,u.libReferenceDirectives=void 0===l?e.libReferenceDirectives:l,void 0!==e.amdDependencies&&(u.amdDependencies=e.amdDependencies),void 0!==e.moduleName&&(u.moduleName=e.moduleName),void 0!==e.languageVariant&&(u.languageVariant=e.languageVariant),void 0!==e.renamedDependencies&&(u.renamedDependencies=e.renamedDependencies),void 0!==e.languageVersion&&(u.languageVersion=e.languageVersion),void 0!==e.scriptKind&&(u.scriptKind=e.scriptKind),void 0!==e.externalModuleIndicator&&(u.externalModuleIndicator=e.externalModuleIndicator),void 0!==e.commonJsModuleIndicator&&(u.commonJsModuleIndicator=e.commonJsModuleIndicator),void 0!==e.identifiers&&(u.identifiers=e.identifiers),void 0!==e.nodeCount&&(u.nodeCount=e.nodeCount),void 0!==e.identifierCount&&(u.identifierCount=e.identifierCount),void 0!==e.symbolCount&&(u.symbolCount=e.symbolCount),void 0!==e.parseDiagnostics&&(u.parseDiagnostics=e.parseDiagnostics),void 0!==e.bindDiagnostics&&(u.bindDiagnostics=e.bindDiagnostics),void 0!==e.bindSuggestionDiagnostics&&(u.bindSuggestionDiagnostics=e.bindSuggestionDiagnostics),void 0!==e.lineMap&&(u.lineMap=e.lineMap),void 0!==e.classifiableNames&&(u.classifiableNames=e.classifiableNames),void 0!==e.resolvedModules&&(u.resolvedModules=e.resolvedModules),void 0!==e.resolvedTypeReferenceDirectiveNames&&(u.resolvedTypeReferenceDirectiveNames=e.resolvedTypeReferenceDirectiveNames),void 0!==e.imports&&(u.imports=e.imports),void 0!==e.moduleAugmentations&&(u.moduleAugmentations=e.moduleAugmentations),void 0!==e.pragmas&&(u.pragmas=e.pragmas),void 0!==e.localJsxFactory&&(u.localJsxFactory=e.localJsxFactory),void 0!==e.localJsxNamespace&&(u.localJsxNamespace=e.localJsxNamespace),t(u,e)}return e},e.getMutableClone=function(e){var n=a(e);return n.pos=e.pos,n.end=e.end,n.parent=e.parent,n},e.createNotEmittedStatement=function(e){var t=n(318);return t.original=e,ot(t,e),t},e.createEndOfDeclarationMarker=function(e){var t=n(322);return t.emitNode={},t.original=e,t},e.createMergeDeclarationMarker=function(e){var t=n(321);return t.emitNode={},t.original=e,t},e.createPartiallyEmittedExpression=qn,e.updatePartiallyEmittedExpression=function(e,n){return e.expression!==n?t(qn(n,e.original),e):e},e.createCommaList=Xn,e.updateCommaList=function(e,n){return e.elements!==n?t(Xn(n),e):e},e.createSyntheticReferenceExpression=Yn,e.updateSyntheticReferenceExpression=function(e,n,r){return e.expression!==n||e.thisArg!==r?t(Yn(n,r),e):e},e.createBundle=Qn,e.createUnparsedSourceFile=function(n,t,r){var a,i,o=function(){var n=e.createNode(290);return n.prologues=e.emptyArray,n.referencedFiles=e.emptyArray,n.libReferenceDirectives=e.emptyArray,n.getLineAndCharacterOfPosition=function(t){return e.getLineAndCharacterOfPosition(n,t)},n}();if(e.isString(n))o.fileName=\"\",o.text=n,o.sourceMapPath=t,o.sourceMapText=r;else if(e.Debug.assert(\"js\"===t||\"dts\"===t),o.fileName=(\"js\"===t?n.javascriptPath:n.declarationPath)||\"\",o.sourceMapPath=\"js\"===t?n.javascriptMapPath:n.declarationMapPath,Object.defineProperties(o,{text:{get:function(){return\"js\"===t?n.javascriptText:n.declarationText}},sourceMapText:{get:function(){return\"js\"===t?n.javascriptMapText:n.declarationMapText}}}),n.buildInfo&&n.buildInfo.bundle&&(o.oldFileOfCurrentEmit=n.oldFileOfCurrentEmit,e.Debug.assert(void 0===r||\"boolean\"==typeof r),a=r,i=\"js\"===t?n.buildInfo.bundle.js:n.buildInfo.bundle.dts,o.oldFileOfCurrentEmit))return function(n,t){var r,a;e.Debug.assert(!!n.oldFileOfCurrentEmit);for(var i=0,o=t.sections;i<o.length;i++){var s=o[i];switch(s.kind){case\"internal\":case\"text\":(r||(r=[])).push($n(s,n));break;case\"no-default-lib\":case\"reference\":case\"type\":case\"lib\":(a||(a=[])).push(et(s,n));break;case\"prologue\":case\"emitHelpers\":case\"prepend\":break;default:e.Debug.assertNever(s)}}n.texts=r||e.emptyArray,n.helpers=e.map(t.sources&&t.sources.helpers,(function(e){return Zn().get(e)})),n.syntheticReferences=a}(o,e.Debug.assertDefined(i)),o;return e.Debug.assert(!o.oldFileOfCurrentEmit),function(n,t,r){for(var a,i,o,s,c,l,u=0,d=t?t.sections:e.emptyArray;u<d.length;u++){var p=d[u];switch(p.kind){case\"prologue\":(a||(a=[])).push($n(p,n));break;case\"emitHelpers\":(i||(i=[])).push(Zn().get(p.data));break;case\"no-default-lib\":n.hasNoDefaultLib=!0;break;case\"reference\":(o||(o=[])).push({pos:-1,end:-1,fileName:p.data});break;case\"type\":(s||(s=[])).push(p.data);break;case\"lib\":(c||(c=[])).push({pos:-1,end:-1,fileName:p.data});break;case\"prepend\":for(var m=$n(p,n),f=void 0,_=0,g=p.texts;_<g.length;_++){var y=g[_];r&&\"internal\"===y.kind||(f||(f=[])).push($n(y,n))}m.texts=f||e.emptyArray,(l||(l=[])).push(m);break;case\"internal\":if(r){l||(l=[]);break}case\"text\":(l||(l=[])).push($n(p,n));break;default:e.Debug.assertNever(p)}}n.prologues=a||e.emptyArray,n.helpers=i,n.referencedFiles=o||e.emptyArray,n.typeReferenceDirectives=s,n.libReferenceDirectives=c||e.emptyArray,n.texts=l||[$n({kind:\"text\",pos:0,end:n.text.length},n)]}(o,i,a),o},e.createInputFiles=function(n,t,r,a,i,o,s,c,l,u,d){var p=e.createNode(291);if(e.isString(n))p.javascriptText=n,p.javascriptMapPath=r,p.javascriptMapText=a,p.declarationText=t,p.declarationMapPath=i,p.declarationMapText=o,p.javascriptPath=s,p.declarationPath=c,p.buildInfoPath=l,p.buildInfo=u,p.oldFileOfCurrentEmit=d;else{var m,f=e.createMap(),_=function(e){if(void 0!==e){var t=f.get(e);return void 0===t&&(t=n(e),f.set(e,void 0!==t&&t)),!1!==t?t:void 0}},g=function(e){var n=_(e);return void 0!==n?n:\"/* Input file \"+e+\" was missing */\\r\\n\"};p.javascriptPath=t,p.javascriptMapPath=r,p.declarationPath=e.Debug.assertDefined(a),p.declarationMapPath=i,p.buildInfoPath=o,Object.defineProperties(p,{javascriptText:{get:function(){return g(t)}},javascriptMapText:{get:function(){return _(r)}},declarationText:{get:function(){return g(e.Debug.assertDefined(a))}},declarationMapText:{get:function(){return _(i)}},buildInfo:{get:function(){return function(n){if(void 0===m){var t=n();m=void 0!==t&&e.getBuildInfo(t)}return m||void 0}((function(){return _(o)}))}}})}return p},e.updateBundle=function(n,t,r){return void 0===r&&(r=e.emptyArray),n.sourceFiles!==t||n.prepends!==r?Qn(t,r):n},e.createImmediatelyInvokedFunctionExpression=function(e,n,t){return ue(ye(void 0,void 0,void 0,void 0,n?[n]:[],void 0,Ve(e,!0)),void 0,t?[t]:[])},e.createImmediatelyInvokedArrowFunction=function(e,n,t){return ue(ve(void 0,void 0,n?[n]:[],void 0,void 0,Ve(e,!0)),void 0,t?[t]:[])},e.createComma=function(e,n){return Le(e,27,n)},e.createLessThan=function(e,n){return Le(e,29,n)},e.createAssignment=function(e,n){return Le(e,62,n)},e.createStrictEquality=function(e,n){return Le(e,36,n)},e.createStrictInequality=function(e,n){return Le(e,37,n)},e.createAdd=function(e,n){return Le(e,39,n)},e.createSubtract=function(e,n){return Le(e,40,n)},e.createPostfixIncrement=function(e){return xe(e,45)},e.createLogicalAnd=function(e,n){return Le(e,55,n)},e.createLogicalOr=function(e,n){return Le(e,56,n)},e.createNullishCoalesce=function(e,n){return Le(e,60,n)},e.createLogicalNot=function(e){return Se(53,e)},e.createVoidZero=function(){return Ee(i(0))},e.createExportDefault=function(e){return Sn(void 0,void 0,!1,e)},e.createExternalModuleExport=function(e){return xn(void 0,void 0,Ln([Cn(void 0,e)]))},e.disposeEmitNodes=function(n){var t=(n=e.getSourceFileOfNode(e.getParseTreeNode(n)))&&n.emitNode,r=t&&t.annotatedNodes;if(r)for(var a=0,i=r;a<i.length;a++){i[a].emitNode=void 0}},e.getOrCreateEmitNode=it,e.removeAllComments=function(e){var n=it(e);return n.flags|=1536,n.leadingComments=void 0,n.trailingComments=void 0,e},e.setTextRange=ot,e.setEmitFlags=st,e.addEmitFlags=function(e,n){var t=it(e);return t.flags=t.flags|n,e},e.getSourceMapRange=function(e){var n=e.emitNode;return n&&n.sourceMapRange||e},e.setSourceMapRange=function(e,n){return it(e).sourceMapRange=n,e},e.createSourceMapSource=function(n,t,r){return new(ke||(ke=e.objectAllocator.getSourceMapSourceConstructor()))(n,t,r)},e.getTokenSourceMapRange=function(e,n){var t=e.emitNode,r=t&&t.tokenSourceMapRanges;return r&&r[n]},e.setTokenSourceMapRange=function(e,n,t){var r=it(e);return(r.tokenSourceMapRanges||(r.tokenSourceMapRanges=[]))[n]=t,e},e.getStartsOnNewLine=function(e){var n=e.emitNode;return n&&n.startsOnNewLine},e.setStartsOnNewLine=function(e,n){return it(e).startsOnNewLine=n,e},e.getCommentRange=function(e){var n=e.emitNode;return n&&n.commentRange||e},e.setCommentRange=function(e,n){return it(e).commentRange=n,e},e.getSyntheticLeadingComments=ct,e.setSyntheticLeadingComments=lt,e.addSyntheticLeadingComment=function(n,t,r,a){return lt(n,e.append(ct(n),{kind:t,pos:-1,end:-1,hasTrailingNewLine:a,text:r}))},e.getSyntheticTrailingComments=ut,e.setSyntheticTrailingComments=dt,e.addSyntheticTrailingComment=function(n,t,r,a){return dt(n,e.append(ut(n),{kind:t,pos:-1,end:-1,hasTrailingNewLine:a,text:r}))},e.moveSyntheticComments=function(e,n){lt(e,ct(n)),dt(e,ut(n));var t=it(n);return t.leadingComments=void 0,t.trailingComments=void 0,e},e.getConstantValue=function(e){var n=e.emitNode;return n&&n.constantValue},e.setConstantValue=function(e,n){return it(e).constantValue=n,e},e.addEmitHelper=function(n,t){var r=it(n);return r.helpers=e.append(r.helpers,t),n},e.addEmitHelpers=function(n,t){if(e.some(t))for(var r=it(n),a=0,i=t;a<i.length;a++){var o=i[a];r.helpers=e.appendIfUnique(r.helpers,o)}return n},e.removeEmitHelper=function(n,t){var r=n.emitNode;if(r){var a=r.helpers;if(a)return e.orderedRemoveItem(a,t)}return!1},e.getEmitHelpers=function(e){var n=e.emitNode;return n&&n.helpers},e.moveEmitHelpers=function(n,t,r){var a=n.emitNode,i=a&&a.helpers;if(e.some(i)){for(var o=it(t),s=0,c=0;c<i.length;c++){var l=i[c];r(l)?(s++,o.helpers=e.appendIfUnique(o.helpers,l)):s>0&&(i[c-s]=l)}s>0&&(i.length-=s)}},e.compareEmitHelpers=function(n,t){return n===t?0:n.priority===t.priority?0:void 0===n.priority?1:void 0===t.priority?-1:e.compareValues(n.priority,t.priority)},e.setOriginalNode=pt}(ts||(ts={})),function(e){function n(n,t,r){if(e.isComputedPropertyName(t))return e.setTextRange(e.createElementAccess(n,t.expression),r);var a=e.setTextRange(e.isIdentifier(t)?e.createPropertyAccess(n,t):e.createElementAccess(n,t),t);return e.getOrCreateEmitNode(a).flags|=64,a}function t(n,t){var r=e.createIdentifier(n||\"React\");return r.flags&=-9,r.parent=e.getParseTreeNode(t),r}function r(n,r,a){return n?function n(r,a){if(e.isQualifiedName(r)){var i=n(r.left,a),o=e.createIdentifier(e.idText(r.right));return o.escapedText=r.right.escapedText,e.createPropertyAccess(i,o)}return t(e.idText(r),a)}(n,a):e.createPropertyAccess(t(r,a),\"createElement\")}function a(n){return e.setEmitFlags(e.createIdentifier(n),4098)}function i(n,t){var r=e.skipParentheses(n);switch(r.kind){case 75:return t;case 103:case 8:case 9:case 10:return!1;case 191:return 0!==r.elements.length;case 192:return r.properties.length>0;default:return!0}}function o(n){return e.isIdentifier(n)?e.createLiteral(n):e.isComputedPropertyName(n)?e.getMutableClone(n.expression):e.getMutableClone(n)}function s(e,n,t){return c(e,n,t,8192)}function c(n,t,r,a){void 0===a&&(a=0);var i=e.getNameOfDeclaration(n);if(i&&e.isIdentifier(i)&&!e.isGeneratedIdentifier(i)){var o=e.getMutableClone(i);return a|=e.getEmitFlags(i),r||(a|=48),t||(a|=1536),a&&e.setEmitFlags(o,a),o}return e.getGeneratedNameForNode(n)}function l(n,t,r,a){var i=e.createPropertyAccess(n,e.nodeIsSynthesized(t)?t:e.getSynthesizedClone(t));e.setTextRange(i,t);var o=0;return a||(o|=48),r||(o|=1536),o&&e.setEmitFlags(i,o),i}function u(n){return e.isStringLiteral(n.expression)&&\"use strict\"===n.expression.text}function d(n,t,r){e.Debug.assert(0===n.length,\"Prologue directives should be at the first statement in the target statements array\");for(var a=!1,i=0,o=t.length;i<o;){var s=t[i];if(!e.isPrologueDirective(s))break;u(s)&&(a=!0),n.push(s),i++}return r&&!a&&n.push(L(e.createStatement(e.createLiteral(\"use strict\")))),i}function p(n,t,r,a){for(var i=t.length;void 0!==r&&r<i;){var o=t[r];if(!(1048576&e.getEmitFlags(o)))break;e.append(n,a?e.visitNode(o,a,e.isStatement):o),r++}return r}function m(n){for(var t=0,r=n;t<r.length;t++){var a=r[t];if(!e.isPrologueDirective(a))break;if(u(a))return a}}function f(n){if(n=e.skipPartiallyEmittedExpressions(n),e.isLiteralKind(n.kind))return n.kind;if(208===n.kind&&39===n.operatorToken.kind){if(void 0!==n.cachedLiteralKind)return n.cachedLiteralKind;var t=f(n.left),r=e.isLiteralKind(t)&&t===f(n.right)?t:0;return n.cachedLiteralKind=r,r}return 0}function _(n){var t=e.skipPartiallyEmittedExpressions(n);return e.isLeftHandSideExpression(t)&&(196!==t.kind||t.arguments)?n:e.setTextRange(e.createParen(n),n)}function g(n){var t=e.skipPartiallyEmittedExpressions(n);return e.getExpressionPrecedence(t)>e.getOperatorPrecedence(208,27)?n:e.setTextRange(e.createParen(n),n)}function y(n){return 179===n.kind?e.createParenthesizedType(n):n}function v(n){switch(n.kind){case 177:case 178:case 169:case 170:return e.createParenthesizedType(n)}return y(n)}function h(e,n){for(;;){switch(e.kind){case 207:e=e.operand;continue;case 208:e=e.left;continue;case 209:e=e.condition;continue;case 197:e=e.tag;continue;case 195:if(n)return e;case 216:case 194:case 193:case 217:case 319:e=e.expression;continue}return e}}function b(e){return 208===e.kind&&27===e.operatorToken.kind||320===e.kind}function E(e,n){switch(void 0===n&&(n=7),e.kind){case 199:return 0!=(1&n);case 198:case 216:case 217:return 0!=(2&n);case 319:return 0!=(4&n)}return!1}function T(n,t){var r;void 0===t&&(t=7);do{r=n,1&t&&(n=e.skipParentheses(n)),2&t&&(n=S(n)),4&t&&(n=e.skipPartiallyEmittedExpressions(n))}while(r!==n);return n}function S(n){for(;e.isAssertionExpression(n)||217===n.kind;)n=n.expression;return n}function x(n,t,r){return void 0===r&&(r=7),n&&E(n,r)&&(!(199===(a=n).kind&&e.nodeIsSynthesized(a)&&e.nodeIsSynthesized(e.getSourceMapRange(a))&&e.nodeIsSynthesized(e.getCommentRange(a)))||e.some(e.getSyntheticLeadingComments(a))||e.some(e.getSyntheticTrailingComments(a)))?function(n,t){switch(n.kind){case 199:return e.updateParen(n,t);case 198:return e.updateTypeAssertion(n,n.type,t);case 216:return e.updateAsExpression(n,t,n.type);case 217:return e.updateNonNullExpression(n,t);case 319:return e.updatePartiallyEmittedExpression(n,t)}}(n,x(n.expression,t)):t;var a}function L(n){return e.setStartsOnNewLine(n,!0)}function C(n){var t=e.getOriginalNode(n,e.isSourceFile),r=t&&t.emitNode;return r&&r.externalHelpersModuleName}function A(n,t,r,a){if(t.importHelpers&&e.isEffectiveExternalModule(n,t)){var i=C(n);if(i)return i;var o=e.getEmitModuleKind(t),s=(r||t.esModuleInterop&&a)&&o!==e.ModuleKind.System&&o!==e.ModuleKind.ES2015&&o!==e.ModuleKind.ESNext;if(!s){var c=e.getEmitHelpers(n);if(c)for(var l=0,u=c;l<u.length;l++){if(!u[l].scoped){s=!0;break}}}if(s){var d=e.getOriginalNode(n,e.isSourceFile),p=e.getOrCreateEmitNode(d);return p.externalHelpersModuleName||(p.externalHelpersModuleName=e.createUniqueName(e.externalHelpersModuleNameText))}}}function D(n,t,r){if(n)return n.moduleName?e.createLiteral(n.moduleName):n.isDeclarationFile||!r.out&&!r.outFile?void 0:e.createLiteral(e.getExternalModuleNameFromPath(t,n.fileName))}function k(n){if(e.isDeclarationBindingElement(n))return n.name;if(!e.isObjectLiteralElementLike(n))return e.isAssignmentExpression(n,!0)?k(n.left):e.isSpreadElement(n)?k(n.expression):n;switch(n.kind){case 279:return k(n.initializer);case 280:return n.name;case 281:return k(n.expression)}}function N(e){var n=e.kind;return 10===n||8===n}function I(n){if(e.isBindingElement(n)){if(n.dotDotDotToken)return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createSpread(n.name),n),n);var t=w(n.name);return n.initializer?e.setOriginalNode(e.setTextRange(e.createAssignment(t,n.initializer),n),n):t}return e.Debug.assertNode(n,e.isExpression),n}function M(n){if(e.isBindingElement(n)){if(n.dotDotDotToken)return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createSpreadAssignment(n.name),n),n);if(n.propertyName){var t=w(n.name);return e.setOriginalNode(e.setTextRange(e.createPropertyAssignment(n.propertyName,n.initializer?e.createAssignment(t,n.initializer):t),n),n)}return e.Debug.assertNode(n.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(e.createShorthandPropertyAssignment(n.name,n.initializer),n),n)}return e.Debug.assertNode(n,e.isObjectLiteralElementLike),n}function O(e){switch(e.kind){case 189:case 191:return P(e);case 188:case 192:return R(e)}}function R(n){return e.isObjectBindingPattern(n)?e.setOriginalNode(e.setTextRange(e.createObjectLiteral(e.map(n.elements,M)),n),n):(e.Debug.assertNode(n,e.isObjectLiteralExpression),n)}function P(n){return e.isArrayBindingPattern(n)?e.setOriginalNode(e.setTextRange(e.createArrayLiteral(e.map(n.elements,I)),n),n):(e.Debug.assertNode(n,e.isArrayLiteralExpression),n)}function w(n){return e.isBindingPattern(n)?O(n):(e.Debug.assertNode(n,e.isExpression),n)}e.nullTransformationContext={enableEmitNotification:e.noop,enableSubstitution:e.noop,endLexicalEnvironment:e.returnUndefined,getCompilerOptions:e.notImplemented,getEmitHost:e.notImplemented,getEmitResolver:e.notImplemented,hoistFunctionDeclaration:e.noop,hoistVariableDeclaration:e.noop,isEmitNotificationEnabled:e.notImplemented,isSubstitutionEnabled:e.notImplemented,onEmitNode:e.noop,onSubstituteNode:e.notImplemented,readEmitHelpers:e.notImplemented,requestEmitHelper:e.noop,resumeLexicalEnvironment:e.noop,startLexicalEnvironment:e.noop,suspendLexicalEnvironment:e.noop,addDiagnostic:e.noop},e.createTypeCheck=function(n,t){return\"undefined\"===t?e.createStrictEquality(n,e.createVoidZero()):e.createStrictEquality(e.createTypeOf(n),e.createLiteral(t))},e.createMemberAccessForPropertyName=n,e.createFunctionCall=function(n,t,r,a){return e.setTextRange(e.createCall(e.createPropertyAccess(n,\"call\"),void 0,__spreadArrays([t],r)),a)},e.createFunctionApply=function(n,t,r,a){return e.setTextRange(e.createCall(e.createPropertyAccess(n,\"apply\"),void 0,[t,r]),a)},e.createArraySlice=function(n,t){var r=[];return void 0!==t&&r.push(\"number\"==typeof t?e.createLiteral(t):t),e.createCall(e.createPropertyAccess(n,\"slice\"),void 0,r)},e.createArrayConcat=function(n,t){return e.createCall(e.createPropertyAccess(n,\"concat\"),void 0,t)},e.createMathPow=function(n,t,r){return e.setTextRange(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Math\"),\"pow\"),void 0,[n,t]),r)},e.createExpressionForJsxElement=function(n,t,a,i,o,s,c){var l=[a];if(i&&l.push(i),o&&o.length>0)if(i||l.push(e.createNull()),o.length>1)for(var u=0,d=o;u<d.length;u++){var p=d[u];L(p),l.push(p)}else l.push(o[0]);return e.setTextRange(e.createCall(r(n,t,s),void 0,l),c)},e.createExpressionForJsxFragment=function(n,a,i,o,s){var c=[e.createPropertyAccess(t(a,o),\"Fragment\")];if(c.push(e.createNull()),i&&i.length>0)if(i.length>1)for(var l=0,u=i;l<u.length;l++){var d=u[l];L(d),c.push(d)}else c.push(i[0]);return e.setTextRange(e.createCall(r(n,a,o),void 0,c),s)},e.getUnscopedHelperName=a,e.valuesHelper={name:\"typescript:values\",importName:\"__values\",scoped:!1,text:'\\n            var __values = (this && this.__values) || function(o) {\\n                var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\\n                if (m) return m.call(o);\\n                if (o && typeof o.length === \"number\") return {\\n                    next: function () {\\n                        if (o && i >= o.length) o = void 0;\\n                        return { value: o && o[i++], done: !o };\\n                    }\\n                };\\n                throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\\n            };'},e.createValuesHelper=function(n,t,r){return n.requestEmitHelper(e.valuesHelper),e.setTextRange(e.createCall(a(\"__values\"),void 0,[t]),r)},e.readHelper={name:\"typescript:read\",importName:\"__read\",scoped:!1,text:'\\n            var __read = (this && this.__read) || function (o, n) {\\n                var m = typeof Symbol === \"function\" && o[Symbol.iterator];\\n                if (!m) return o;\\n                var i = m.call(o), r, ar = [], e;\\n                try {\\n                    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\n                }\\n                catch (error) { e = { error: error }; }\\n                finally {\\n                    try {\\n                        if (r && !r.done && (m = i[\"return\"])) m.call(i);\\n                    }\\n                    finally { if (e) throw e.error; }\\n                }\\n                return ar;\\n            };'},e.createReadHelper=function(n,t,r,i){return n.requestEmitHelper(e.readHelper),e.setTextRange(e.createCall(a(\"__read\"),void 0,void 0!==r?[t,e.createLiteral(r)]:[t]),i)},e.spreadHelper={name:\"typescript:spread\",importName:\"__spread\",scoped:!1,text:\"\\n            var __spread = (this && this.__spread) || function () {\\n                for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\\n                return ar;\\n            };\"},e.createSpreadHelper=function(n,t,r){return n.requestEmitHelper(e.readHelper),n.requestEmitHelper(e.spreadHelper),e.setTextRange(e.createCall(a(\"__spread\"),void 0,t),r)},e.spreadArraysHelper={name:\"typescript:spreadArrays\",importName:\"__spreadArrays\",scoped:!1,text:\"\\n            var __spreadArrays = (this && this.__spreadArrays) || function () {\\n                for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\n                for (var r = Array(s), k = 0, i = 0; i < il; i++)\\n                    for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\n                        r[k] = a[j];\\n                return r;\\n            };\"},e.createSpreadArraysHelper=function(n,t,r){return n.requestEmitHelper(e.spreadArraysHelper),e.setTextRange(e.createCall(a(\"__spreadArrays\"),void 0,t),r)},e.createForOfBindingStatement=function(n,t){if(e.isVariableDeclarationList(n)){var r=e.first(n.declarations),a=e.updateVariableDeclaration(r,r.name,void 0,t);return e.setTextRange(e.createVariableStatement(void 0,e.updateVariableDeclarationList(n,[a])),n)}var i=e.setTextRange(e.createAssignment(n,t),n);return e.setTextRange(e.createStatement(i),n)},e.insertLeadingStatement=function(n,t){return e.isBlock(n)?e.updateBlock(n,e.setTextRange(e.createNodeArray(__spreadArrays([t],n.statements)),n.statements)):e.createBlock(e.createNodeArray([n,t]),!0)},e.restoreEnclosingLabel=function n(t,r,a){if(!r)return t;var i=e.updateLabel(r,r.label,237===r.statement.kind?n(t,r.statement):t);return a&&a(r),i},e.createCallBinding=function(n,t,r,a){void 0===a&&(a=!1);var o,s,c=T(n,7);if(e.isSuperProperty(c))o=e.createThis(),s=c;else if(101===c.kind)o=e.createThis(),s=r<2?e.setTextRange(e.createIdentifier(\"_super\"),c):c;else if(4096&e.getEmitFlags(c))o=e.createVoidZero(),s=_(c);else switch(c.kind){case 193:i(c.expression,a)?(o=e.createTempVariable(t),s=e.createPropertyAccess(e.setTextRange(e.createAssignment(o,c.expression),c.expression),c.name),e.setTextRange(s,c)):(o=c.expression,s=c);break;case 194:i(c.expression,a)?(o=e.createTempVariable(t),s=e.createElementAccess(e.setTextRange(e.createAssignment(o,c.expression),c.expression),c.argumentExpression),e.setTextRange(s,c)):(o=c.expression,s=c);break;default:o=e.createVoidZero(),s=_(n)}return{target:s,thisArg:o}},e.inlineExpressions=function(n){return n.length>10?e.createCommaList(n):e.reduceLeft(n,e.createComma)},e.createExpressionFromEntityName=function n(t){if(e.isQualifiedName(t)){var r=n(t.left),a=e.getMutableClone(t.right);return e.setTextRange(e.createPropertyAccess(r,a),t)}return e.getMutableClone(t)},e.createExpressionForPropertyName=o,e.createExpressionForObjectLiteralElementLike=function(t,r,a){switch(r.kind){case 162:case 163:return function(n,t,r,a){var i=e.getAllAccessorDeclarations(n,t),s=i.firstAccessor,c=i.getAccessor,l=i.setAccessor;if(t===s){var u=[];if(c){var d=e.createFunctionExpression(c.modifiers,void 0,void 0,void 0,c.parameters,void 0,c.body);e.setTextRange(d,c),e.setOriginalNode(d,c);var p=e.createPropertyAssignment(\"get\",d);u.push(p)}if(l){var m=e.createFunctionExpression(l.modifiers,void 0,void 0,void 0,l.parameters,void 0,l.body);e.setTextRange(m,l),e.setOriginalNode(m,l);var f=e.createPropertyAssignment(\"set\",m);u.push(f)}u.push(e.createPropertyAssignment(\"enumerable\",e.createTrue())),u.push(e.createPropertyAssignment(\"configurable\",e.createTrue()));var _=e.setTextRange(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[r,o(t.name),e.createObjectLiteral(u,a)]),s);return e.aggregateTransformFlags(_)}return}(t.properties,r,a,!!t.multiLine);case 279:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),t.initializer),t),t))}(r,a);case 280:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),e.getSynthesizedClone(t.name)),t),t))}(r,a);case 160:return function(t,r){return e.aggregateTransformFlags(e.setOriginalNode(e.setTextRange(e.createAssignment(n(r,t.name,t.name),e.setOriginalNode(e.setTextRange(e.createFunctionExpression(t.modifiers,t.asteriskToken,void 0,void 0,t.parameters,void 0,t.body),t),t)),t),t))}(r,a)}},e.getInternalName=function(e,n,t){return c(e,n,t,49152)},e.isInternalName=function(n){return 0!=(32768&e.getEmitFlags(n))},e.getLocalName=function(e,n,t){return c(e,n,t,16384)},e.isLocalName=function(n){return 0!=(16384&e.getEmitFlags(n))},e.getExportName=s,e.isExportName=function(n){return 0!=(8192&e.getEmitFlags(n))},e.getDeclarationName=function(e,n,t){return c(e,n,t)},e.getExternalModuleOrNamespaceExportName=function(n,t,r,a){return n&&e.hasModifier(t,1)?l(n,c(t),r,a):s(t,r,a)},e.getNamespaceMemberName=l,e.convertToFunctionBody=function(n,t){return e.isBlock(n)?n:e.setTextRange(e.createBlock([e.setTextRange(e.createReturn(n),n)],t),n)},e.convertFunctionDeclarationToExpression=function(n){if(!n.body)return e.Debug.fail();var t=e.createFunctionExpression(n.modifiers,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body);return e.setOriginalNode(t,n),e.setTextRange(t,n),e.getStartsOnNewLine(n)&&e.setStartsOnNewLine(t,!0),e.aggregateTransformFlags(t),t},e.addPrologue=function(e,n,t,r){return p(e,n,d(e,n,t),r)},e.addStandardPrologue=d,e.addCustomPrologue=p,e.findUseStrictPrologue=m,e.startsWithUseStrict=function(n){var t=e.firstOrUndefined(n);return void 0!==t&&e.isPrologueDirective(t)&&u(t)},e.ensureUseStrict=function(n){return m(n)?n:e.setTextRange(e.createNodeArray(__spreadArrays([L(e.createStatement(e.createLiteral(\"use strict\")))],n)),n)},e.parenthesizeBinaryOperand=function(n,t,r,a){return 199===e.skipPartiallyEmittedExpressions(t).kind?t:function(n,t,r,a){var i=e.getOperatorPrecedence(208,n),o=e.getOperatorAssociativity(208,n),s=e.skipPartiallyEmittedExpressions(t);if(!r&&201===t.kind&&i>3)return!0;var c=e.getExpressionPrecedence(s);switch(e.compareValues(c,i)){case-1:return!(!r&&1===o&&211===t.kind);case 1:return!1;case 0:if(r)return 1===o;if(e.isBinaryExpression(s)&&s.operatorToken.kind===n){if(function(e){return 41===e||51===e||50===e||52===e}(n))return!1;if(39===n){var l=a?f(a):0;if(e.isLiteralKind(l)&&l===f(s))return!1}}return 0===e.getExpressionAssociativity(s)}}(n,t,r,a)?e.createParen(t):t},e.parenthesizeForConditionalHead=function(n){var t=e.getOperatorPrecedence(209,57),r=e.skipPartiallyEmittedExpressions(n),a=e.getExpressionPrecedence(r);return 1!==e.compareValues(a,t)?e.createParen(n):n},e.parenthesizeSubexpressionOfConditionalExpression=function(n){return b(e.skipPartiallyEmittedExpressions(n))?e.createParen(n):n},e.parenthesizeDefaultExpression=function(n){var t=e.skipPartiallyEmittedExpressions(n),r=b(t);if(!r)switch(h(t,!1).kind){case 213:case 200:r=!0}return r?e.createParen(n):n},e.parenthesizeForNew=function(n){var t=h(n,!0);switch(t.kind){case 195:return e.createParen(n);case 196:return t.arguments?n:e.createParen(n)}return _(n)},e.parenthesizeForAccess=_,e.parenthesizePostfixOperand=function(n){return e.isLeftHandSideExpression(n)?n:e.setTextRange(e.createParen(n),n)},e.parenthesizePrefixOperand=function(n){return e.isUnaryExpression(n)?n:e.setTextRange(e.createParen(n),n)},e.parenthesizeListElements=function(n){for(var t,r=0;r<n.length;r++){var a=g(n[r]);void 0===t&&a===n[r]||(void 0===t&&(t=n.slice(0,r)),t.push(a))}return void 0!==t?e.setTextRange(e.createNodeArray(t,n.hasTrailingComma),n):n},e.parenthesizeExpressionForList=g,e.parenthesizeExpressionForExpressionStatement=function(n){var t=e.skipPartiallyEmittedExpressions(n);if(e.isCallExpression(t)){var r=t.expression,a=e.skipPartiallyEmittedExpressions(r).kind;if(200===a||201===a){var i=e.getMutableClone(t);return i.expression=e.setTextRange(e.createParen(r),r),x(n,i,4)}}var o=h(t,!1).kind;return 192===o||200===o?e.setTextRange(e.createParen(n),n):n},e.parenthesizeConditionalTypeMember=y,e.parenthesizeElementTypeMember=v,e.parenthesizeArrayTypeMember=function(n){switch(n.kind){case 171:case 183:case 180:return e.createParenthesizedType(n)}return v(n)},e.parenthesizeElementTypeMembers=function(n){return e.createNodeArray(e.sameMap(n,v))},e.parenthesizeTypeParameters=function(n){if(e.some(n)){for(var t=[],r=0;r<n.length;++r){var a=n[r];t.push(0===r&&e.isFunctionOrConstructorTypeNode(a)&&a.typeParameters?e.createParenthesizedType(a):a)}return e.createNodeArray(t)}},e.getLeftmostExpression=h,e.parenthesizeConciseBody=function(n){return e.isBlock(n)||!b(n)&&192!==h(n,!1).kind?n:e.setTextRange(e.createParen(n),n)},e.isCommaSequence=b,function(e){e[e.Parentheses=1]=\"Parentheses\",e[e.Assertions=2]=\"Assertions\",e[e.PartiallyEmittedExpressions=4]=\"PartiallyEmittedExpressions\",e[e.All=7]=\"All\"}(e.OuterExpressionKinds||(e.OuterExpressionKinds={})),e.isOuterExpression=E,e.skipOuterExpressions=T,e.skipAssertions=S,e.recreateOuterExpressions=x,e.startOnNewLine=L,e.getExternalHelpersModuleName=C,e.hasRecordedExternalHelpers=function(n){var t=e.getOriginalNode(n,e.isSourceFile),r=t&&t.emitNode;return!(!r||!r.externalHelpersModuleName&&!r.externalHelpers)},e.createExternalHelpersImportDeclarationIfNeeded=function(n,t,r,i,o){if(t.importHelpers&&e.isEffectiveExternalModule(n,t)){var s=void 0,c=e.getEmitModuleKind(t);if(c>=e.ModuleKind.ES2015&&c<=e.ModuleKind.ESNext){var l=e.getEmitHelpers(n);if(l){for(var u=[],d=0,p=l;d<p.length;d++){var m=p[d];if(!m.scoped){var f=m.importName;f&&e.pushIfUnique(u,f)}}if(e.some(u)){u.sort(e.compareStringsCaseSensitive),s=e.createNamedImports(e.map(u,(function(t){return e.isFileLevelUniqueName(n,t)?e.createImportSpecifier(void 0,e.createIdentifier(t)):e.createImportSpecifier(e.createIdentifier(t),a(t))})));var _=e.getOriginalNode(n,e.isSourceFile);e.getOrCreateEmitNode(_).externalHelpers=!0}}}else{var g=A(n,t,r,i||o);g&&(s=e.createNamespaceImport(g))}if(s){var y=e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,s),e.createLiteral(e.externalHelpersModuleNameText));return e.addEmitFlags(y,67108864),y}}},e.getOrCreateExternalHelpersModuleNameIfNeeded=A,e.getLocalNameForExternalImport=function(n,t){var r=e.getNamespaceDeclarationNode(n);if(r&&!e.isDefaultImport(n)){var a=r.name;return e.isGeneratedIdentifier(a)?a:e.createIdentifier(e.getSourceTextOfNodeFromSourceFile(t,a)||e.idText(a))}return 253===n.kind&&n.importClause?e.getGeneratedNameForNode(n):259===n.kind&&n.moduleSpecifier?e.getGeneratedNameForNode(n):void 0},e.getExternalModuleNameLiteral=function(n,t,r,a,i){var o=e.getExternalModuleName(n);if(10===o.kind)return function(e,n,t,r){return D(t.getExternalModuleFileFromDeclaration(e),n,r)}(n,r,a,i)||function(n,t){var r=t.renamedDependencies&&t.renamedDependencies.get(n.text);return r&&e.createLiteral(r)}(o,t)||e.getSynthesizedClone(o)},e.tryGetModuleNameFromFile=D,e.getInitializerOfBindingOrAssignmentElement=function n(t){if(e.isDeclarationBindingElement(t))return t.initializer;if(e.isPropertyAssignment(t)){var r=t.initializer;return e.isAssignmentExpression(r,!0)?r.right:void 0}return e.isShorthandPropertyAssignment(t)?t.objectAssignmentInitializer:e.isAssignmentExpression(t,!0)?t.right:e.isSpreadElement(t)?n(t.expression):void 0},e.getTargetOfBindingOrAssignmentElement=k,e.getRestIndicatorOfBindingOrAssignmentElement=function(e){switch(e.kind){case 155:case 190:return e.dotDotDotToken;case 212:case 281:return e}},e.getPropertyNameOfBindingOrAssignmentElement=function(n){switch(n.kind){case 190:if(n.propertyName){var t=n.propertyName;return e.isComputedPropertyName(t)&&N(t.expression)?t.expression:t}break;case 279:if(n.name){t=n.name;return e.isComputedPropertyName(t)&&N(t.expression)?t.expression:t}break;case 281:return n.name}var r=k(n);if(r&&e.isPropertyName(r))return e.isComputedPropertyName(r)&&N(r.expression)?r.expression:r;e.Debug.fail(\"Invalid property name for binding element.\")},e.getElementsOfBindingOrAssignmentPattern=function(e){switch(e.kind){case 188:case 189:case 191:return e.elements;case 192:return e.properties}},e.convertToArrayAssignmentElement=I,e.convertToObjectAssignmentElement=M,e.convertToAssignmentPattern=O,e.convertToObjectAssignmentPattern=R,e.convertToArrayAssignmentPattern=P,e.convertToAssignmentElementTarget=w}(ts||(ts={})),function(e){var n=e.or(e.isTypeNode,e.isTypeParameterDeclaration);function t(n,t,r,a){if(void 0===n||void 0===t)return n;e.aggregateTransformFlags(n);var i,o=t(n);return o===n?n:void 0!==o?(i=e.isArray(o)?(a||s)(o):o,e.Debug.assertNode(i,r),e.aggregateTransformFlags(i),i):void 0}function r(n,t,r,a,i){if(void 0===n||void 0===t)return n;var o,s=n.length;(void 0===a||a<0)&&(a=0),(void 0===i||i>s-a)&&(i=s-a),(a>0||i<s)&&(o=e.createNodeArray([],n.hasTrailingComma&&a+i===s));for(var c=0;c<i;c++){var l=n[c+a];e.aggregateTransformFlags(l);var u=void 0!==l?t(l):void 0;if((void 0!==o||void 0===u||u!==l)&&(void 0===o&&(o=e.createNodeArray(n.slice(0,c),n.hasTrailingComma),e.setTextRange(o,n)),u))if(e.isArray(u))for(var d=0,p=u;d<p.length;d++){var m=p[d];e.Debug.assertNode(m,r),e.aggregateTransformFlags(m),o.push(m)}else e.Debug.assertNode(u,r),e.aggregateTransformFlags(u),o.push(u)}return o||n}function a(n,t,a,i,o){return a.startLexicalEnvironment(),n=r(n,t,e.isStatement,i),o&&(n=e.ensureUseStrict(n)),e.mergeLexicalEnvironment(n,a.endLexicalEnvironment())}function i(n,t,a,i){void 0===i&&(i=r),a.startLexicalEnvironment();var o=i(n,t,e.isParameterDeclaration);return a.suspendLexicalEnvironment(),o}function o(n,r,a){a.resumeLexicalEnvironment();var i=t(n,r,e.isConciseBody),o=a.endLexicalEnvironment();if(e.some(o)){var s=e.convertToFunctionBody(i),c=e.mergeLexicalEnvironment(s.statements,o);return e.updateBlock(s,c)}return i}function s(n){return e.Debug.assert(n.length<=1,\"Too many nodes written to output.\"),e.singleOrUndefined(n)}e.visitNode=t,e.visitNodes=r,e.visitLexicalEnvironment=a,e.visitParameterList=i,e.visitFunctionBody=o,e.visitEachChild=function(s,c,l,u,d){if(void 0===u&&(u=r),void 0!==s){var p=s.kind;if(p>0&&p<=151||182===p)return s;switch(p){case 75:return e.updateIdentifier(s,u(s.typeArguments,c,n));case 152:return e.updateQualifiedName(s,t(s.left,c,e.isEntityName),t(s.right,c,e.isIdentifier));case 153:return e.updateComputedPropertyName(s,t(s.expression,c,e.isExpression));case 154:return e.updateTypeParameterDeclaration(s,t(s.name,c,e.isIdentifier),t(s.constraint,c,e.isTypeNode),t(s.default,c,e.isTypeNode));case 155:return e.updateParameter(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.dotDotDotToken,d,e.isToken),t(s.name,c,e.isBindingName),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 156:return e.updateDecorator(s,t(s.expression,c,e.isExpression));case 157:return e.updatePropertySignature(s,u(s.modifiers,c,e.isToken),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 158:return e.updateProperty(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),t(s.questionToken||s.exclamationToken,d,e.isToken),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 159:return e.updateMethodSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken));case 160:return e.updateMethod(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isPropertyName),t(s.questionToken,d,e.isToken),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 161:return e.updateConstructor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),i(s.parameters,c,l,u),o(s.body,c,l));case 162:return e.updateGetAccessor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 163:return e.updateSetAccessor(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isPropertyName),i(s.parameters,c,l,u),o(s.body,c,l));case 164:return e.updateCallSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 165:return e.updateConstructSignature(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 166:return e.updateIndexSignature(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 167:return e.updateTypePredicateNodeWithModifier(s,t(s.assertsModifier,c),t(s.parameterName,c),t(s.type,c,e.isTypeNode));case 168:return e.updateTypeReferenceNode(s,t(s.typeName,c,e.isEntityName),u(s.typeArguments,c,e.isTypeNode));case 169:return e.updateFunctionTypeNode(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 170:return e.updateConstructorTypeNode(s,u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.parameters,c,e.isParameterDeclaration),t(s.type,c,e.isTypeNode));case 171:return e.updateTypeQueryNode(s,t(s.exprName,c,e.isEntityName));case 172:return e.updateTypeLiteralNode(s,u(s.members,c,e.isTypeElement));case 173:return e.updateArrayTypeNode(s,t(s.elementType,c,e.isTypeNode));case 174:return e.updateTupleTypeNode(s,u(s.elementTypes,c,e.isTypeNode));case 175:return e.updateOptionalTypeNode(s,t(s.type,c,e.isTypeNode));case 176:return e.updateRestTypeNode(s,t(s.type,c,e.isTypeNode));case 177:return e.updateUnionTypeNode(s,u(s.types,c,e.isTypeNode));case 178:return e.updateIntersectionTypeNode(s,u(s.types,c,e.isTypeNode));case 179:return e.updateConditionalTypeNode(s,t(s.checkType,c,e.isTypeNode),t(s.extendsType,c,e.isTypeNode),t(s.trueType,c,e.isTypeNode),t(s.falseType,c,e.isTypeNode));case 180:return e.updateInferTypeNode(s,t(s.typeParameter,c,e.isTypeParameterDeclaration));case 187:return e.updateImportTypeNode(s,t(s.argument,c,e.isTypeNode),t(s.qualifier,c,e.isEntityName),r(s.typeArguments,c,e.isTypeNode),s.isTypeOf);case 181:return e.updateParenthesizedType(s,t(s.type,c,e.isTypeNode));case 183:return e.updateTypeOperatorNode(s,t(s.type,c,e.isTypeNode));case 184:return e.updateIndexedAccessTypeNode(s,t(s.objectType,c,e.isTypeNode),t(s.indexType,c,e.isTypeNode));case 185:return e.updateMappedTypeNode(s,t(s.readonlyToken,d,e.isToken),t(s.typeParameter,c,e.isTypeParameterDeclaration),t(s.questionToken,d,e.isToken),t(s.type,c,e.isTypeNode));case 186:return e.updateLiteralTypeNode(s,t(s.literal,c,e.isExpression));case 188:return e.updateObjectBindingPattern(s,u(s.elements,c,e.isBindingElement));case 189:return e.updateArrayBindingPattern(s,u(s.elements,c,e.isArrayBindingElement));case 190:return e.updateBindingElement(s,t(s.dotDotDotToken,d,e.isToken),t(s.propertyName,c,e.isPropertyName),t(s.name,c,e.isBindingName),t(s.initializer,c,e.isExpression));case 191:return e.updateArrayLiteral(s,u(s.elements,c,e.isExpression));case 192:return e.updateObjectLiteral(s,u(s.properties,c,e.isObjectLiteralElementLike));case 193:return 32&s.flags?e.updatePropertyAccessChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),t(s.name,c,e.isIdentifier)):e.updatePropertyAccess(s,t(s.expression,c,e.isExpression),t(s.name,c,e.isIdentifier));case 194:return 32&s.flags?e.updateElementAccessChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),t(s.argumentExpression,c,e.isExpression)):e.updateElementAccess(s,t(s.expression,c,e.isExpression),t(s.argumentExpression,c,e.isExpression));case 195:return 32&s.flags?e.updateCallChain(s,t(s.expression,c,e.isExpression),t(s.questionDotToken,c,e.isToken),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression)):e.updateCall(s,t(s.expression,c,e.isExpression),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression));case 196:return e.updateNew(s,t(s.expression,c,e.isExpression),u(s.typeArguments,c,e.isTypeNode),u(s.arguments,c,e.isExpression));case 197:return e.updateTaggedTemplate(s,t(s.tag,c,e.isExpression),r(s.typeArguments,c,e.isExpression),t(s.template,c,e.isTemplateLiteral));case 198:return e.updateTypeAssertion(s,t(s.type,c,e.isTypeNode),t(s.expression,c,e.isExpression));case 199:return e.updateParen(s,t(s.expression,c,e.isExpression));case 200:return e.updateFunctionExpression(s,u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 201:return e.updateArrowFunction(s,u(s.modifiers,c,e.isModifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),t(s.equalsGreaterThanToken,c,e.isToken),o(s.body,c,l));case 202:return e.updateDelete(s,t(s.expression,c,e.isExpression));case 203:return e.updateTypeOf(s,t(s.expression,c,e.isExpression));case 204:return e.updateVoid(s,t(s.expression,c,e.isExpression));case 205:return e.updateAwait(s,t(s.expression,c,e.isExpression));case 206:return e.updatePrefix(s,t(s.operand,c,e.isExpression));case 207:return e.updatePostfix(s,t(s.operand,c,e.isExpression));case 208:return e.updateBinary(s,t(s.left,c,e.isExpression),t(s.right,c,e.isExpression),t(s.operatorToken,c,e.isToken));case 209:return e.updateConditional(s,t(s.condition,c,e.isExpression),t(s.questionToken,c,e.isToken),t(s.whenTrue,c,e.isExpression),t(s.colonToken,c,e.isToken),t(s.whenFalse,c,e.isExpression));case 210:return e.updateTemplateExpression(s,t(s.head,c,e.isTemplateHead),u(s.templateSpans,c,e.isTemplateSpan));case 211:return e.updateYield(s,t(s.asteriskToken,d,e.isToken),t(s.expression,c,e.isExpression));case 212:return e.updateSpread(s,t(s.expression,c,e.isExpression));case 213:return e.updateClassExpression(s,u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isClassElement));case 215:return e.updateExpressionWithTypeArguments(s,u(s.typeArguments,c,e.isTypeNode),t(s.expression,c,e.isExpression));case 216:return e.updateAsExpression(s,t(s.expression,c,e.isExpression),t(s.type,c,e.isTypeNode));case 217:return e.updateNonNullExpression(s,t(s.expression,c,e.isExpression));case 218:return e.updateMetaProperty(s,t(s.name,c,e.isIdentifier));case 220:return e.updateTemplateSpan(s,t(s.expression,c,e.isExpression),t(s.literal,c,e.isTemplateMiddleOrTemplateTail));case 222:return e.updateBlock(s,u(s.statements,c,e.isStatement));case 224:return e.updateVariableStatement(s,u(s.modifiers,c,e.isModifier),t(s.declarationList,c,e.isVariableDeclarationList));case 225:return e.updateExpressionStatement(s,t(s.expression,c,e.isExpression));case 226:return e.updateIf(s,t(s.expression,c,e.isExpression),t(s.thenStatement,c,e.isStatement,e.liftToBlock),t(s.elseStatement,c,e.isStatement,e.liftToBlock));case 227:return e.updateDo(s,t(s.statement,c,e.isStatement,e.liftToBlock),t(s.expression,c,e.isExpression));case 228:return e.updateWhile(s,t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 229:return e.updateFor(s,t(s.initializer,c,e.isForInitializer),t(s.condition,c,e.isExpression),t(s.incrementor,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 230:return e.updateForIn(s,t(s.initializer,c,e.isForInitializer),t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 231:return e.updateForOf(s,t(s.awaitModifier,c,e.isToken),t(s.initializer,c,e.isForInitializer),t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 232:return e.updateContinue(s,t(s.label,c,e.isIdentifier));case 233:return e.updateBreak(s,t(s.label,c,e.isIdentifier));case 234:return e.updateReturn(s,t(s.expression,c,e.isExpression));case 235:return e.updateWith(s,t(s.expression,c,e.isExpression),t(s.statement,c,e.isStatement,e.liftToBlock));case 236:return e.updateSwitch(s,t(s.expression,c,e.isExpression),t(s.caseBlock,c,e.isCaseBlock));case 237:return e.updateLabel(s,t(s.label,c,e.isIdentifier),t(s.statement,c,e.isStatement,e.liftToBlock));case 238:return e.updateThrow(s,t(s.expression,c,e.isExpression));case 239:return e.updateTry(s,t(s.tryBlock,c,e.isBlock),t(s.catchClause,c,e.isCatchClause),t(s.finallyBlock,c,e.isBlock));case 241:return e.updateVariableDeclaration(s,t(s.name,c,e.isBindingName),t(s.type,c,e.isTypeNode),t(s.initializer,c,e.isExpression));case 242:return e.updateVariableDeclarationList(s,u(s.declarations,c,e.isVariableDeclaration));case 243:return e.updateFunctionDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.asteriskToken,d,e.isToken),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),i(s.parameters,c,l,u),t(s.type,c,e.isTypeNode),o(s.body,c,l));case 244:return e.updateClassDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isClassElement));case 245:return e.updateInterfaceDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),u(s.heritageClauses,c,e.isHeritageClause),u(s.members,c,e.isTypeElement));case 246:return e.updateTypeAliasDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.typeParameters,c,e.isTypeParameterDeclaration),t(s.type,c,e.isTypeNode));case 247:return e.updateEnumDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),u(s.members,c,e.isEnumMember));case 248:return e.updateModuleDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),t(s.body,c,e.isModuleBody));case 249:return e.updateModuleBlock(s,u(s.statements,c,e.isStatement));case 250:return e.updateCaseBlock(s,u(s.clauses,c,e.isCaseOrDefaultClause));case 251:return e.updateNamespaceExportDeclaration(s,t(s.name,c,e.isIdentifier));case 252:return e.updateImportEqualsDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.name,c,e.isIdentifier),t(s.moduleReference,c,e.isModuleReference));case 253:return e.updateImportDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.importClause,c,e.isImportClause),t(s.moduleSpecifier,c,e.isExpression));case 254:return e.updateImportClause(s,t(s.name,c,e.isIdentifier),t(s.namedBindings,c,e.isNamedImportBindings));case 255:return e.updateNamespaceImport(s,t(s.name,c,e.isIdentifier));case 256:return e.updateNamedImports(s,u(s.elements,c,e.isImportSpecifier));case 257:return e.updateImportSpecifier(s,t(s.propertyName,c,e.isIdentifier),t(s.name,c,e.isIdentifier));case 258:return e.updateExportAssignment(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.expression,c,e.isExpression));case 259:return e.updateExportDeclaration(s,u(s.decorators,c,e.isDecorator),u(s.modifiers,c,e.isModifier),t(s.exportClause,c,e.isNamedExports),t(s.moduleSpecifier,c,e.isExpression));case 260:return e.updateNamedExports(s,u(s.elements,c,e.isExportSpecifier));case 261:return e.updateExportSpecifier(s,t(s.propertyName,c,e.isIdentifier),t(s.name,c,e.isIdentifier));case 263:return e.updateExternalModuleReference(s,t(s.expression,c,e.isExpression));case 264:return e.updateJsxElement(s,t(s.openingElement,c,e.isJsxOpeningElement),u(s.children,c,e.isJsxChild),t(s.closingElement,c,e.isJsxClosingElement));case 265:return e.updateJsxSelfClosingElement(s,t(s.tagName,c,e.isJsxTagNameExpression),u(s.typeArguments,c,e.isTypeNode),t(s.attributes,c,e.isJsxAttributes));case 266:return e.updateJsxOpeningElement(s,t(s.tagName,c,e.isJsxTagNameExpression),u(s.typeArguments,c,e.isTypeNode),t(s.attributes,c,e.isJsxAttributes));case 267:return e.updateJsxClosingElement(s,t(s.tagName,c,e.isJsxTagNameExpression));case 268:return e.updateJsxFragment(s,t(s.openingFragment,c,e.isJsxOpeningFragment),u(s.children,c,e.isJsxChild),t(s.closingFragment,c,e.isJsxClosingFragment));case 271:return e.updateJsxAttribute(s,t(s.name,c,e.isIdentifier),t(s.initializer,c,e.isStringLiteralOrJsxExpression));case 272:return e.updateJsxAttributes(s,u(s.properties,c,e.isJsxAttributeLike));case 273:return e.updateJsxSpreadAttribute(s,t(s.expression,c,e.isExpression));case 274:return e.updateJsxExpression(s,t(s.expression,c,e.isExpression));case 275:return e.updateCaseClause(s,t(s.expression,c,e.isExpression),u(s.statements,c,e.isStatement));case 276:return e.updateDefaultClause(s,u(s.statements,c,e.isStatement));case 277:return e.updateHeritageClause(s,u(s.types,c,e.isExpressionWithTypeArguments));case 278:return e.updateCatchClause(s,t(s.variableDeclaration,c,e.isVariableDeclaration),t(s.block,c,e.isBlock));case 279:return e.updatePropertyAssignment(s,t(s.name,c,e.isPropertyName),t(s.initializer,c,e.isExpression));case 280:return e.updateShorthandPropertyAssignment(s,t(s.name,c,e.isIdentifier),t(s.objectAssignmentInitializer,c,e.isExpression));case 281:return e.updateSpreadAssignment(s,t(s.expression,c,e.isExpression));case 282:return e.updateEnumMember(s,t(s.name,c,e.isPropertyName),t(s.initializer,c,e.isExpression));case 288:return e.updateSourceFileNode(s,a(s.statements,c,l));case 319:return e.updatePartiallyEmittedExpression(s,t(s.expression,c,e.isExpression));case 320:return e.updateCommaList(s,u(s.elements,c,e.isExpression));default:return s}}}}(ts||(ts={})),function(e){function n(e,n,t){return e?n(t,e):t}function t(e,n,t){return e?n(t,e):t}function r(r,a,i,o){if(void 0===r)return a;var s=o?t:e.reduceLeft,c=o||i,l=r.kind;if(l>0&&l<=151)return a;if(l>=167&&l<=186)return a;var u=a;switch(r.kind){case 221:case 223:case 214:case 240:case 318:break;case 152:u=n(r.left,i,u),u=n(r.right,i,u);break;case 153:u=n(r.expression,i,u);break;case 155:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 156:u=n(r.expression,i,u);break;case 157:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.questionToken,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 158:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 160:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 161:u=s(r.modifiers,c,u),u=s(r.parameters,c,u),u=n(r.body,i,u);break;case 162:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 163:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.parameters,c,u),u=n(r.body,i,u);break;case 188:case 189:u=s(r.elements,c,u);break;case 190:u=n(r.propertyName,i,u),u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 191:u=s(r.elements,c,u);break;case 192:u=s(r.properties,c,u);break;case 193:u=n(r.expression,i,u),u=n(r.name,i,u);break;case 194:u=n(r.expression,i,u),u=n(r.argumentExpression,i,u);break;case 195:case 196:u=n(r.expression,i,u),u=s(r.typeArguments,c,u),u=s(r.arguments,c,u);break;case 197:u=n(r.tag,i,u),u=s(r.typeArguments,c,u),u=n(r.template,i,u);break;case 198:u=n(r.type,i,u),u=n(r.expression,i,u);break;case 200:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 201:u=s(r.modifiers,c,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 199:case 202:case 203:case 204:case 205:case 211:case 212:case 217:u=n(r.expression,i,u);break;case 206:case 207:u=n(r.operand,i,u);break;case 208:u=n(r.left,i,u),u=n(r.right,i,u);break;case 209:u=n(r.condition,i,u),u=n(r.whenTrue,i,u),u=n(r.whenFalse,i,u);break;case 210:u=n(r.head,i,u),u=s(r.templateSpans,c,u);break;case 213:u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.heritageClauses,c,u),u=s(r.members,c,u);break;case 215:u=n(r.expression,i,u),u=s(r.typeArguments,c,u);break;case 216:u=n(r.expression,i,u),u=n(r.type,i,u);break;case 220:u=n(r.expression,i,u),u=n(r.literal,i,u);break;case 222:u=s(r.statements,c,u);break;case 224:u=s(r.modifiers,c,u),u=n(r.declarationList,i,u);break;case 225:u=n(r.expression,i,u);break;case 226:u=n(r.expression,i,u),u=n(r.thenStatement,i,u),u=n(r.elseStatement,i,u);break;case 227:u=n(r.statement,i,u),u=n(r.expression,i,u);break;case 228:case 235:u=n(r.expression,i,u),u=n(r.statement,i,u);break;case 229:u=n(r.initializer,i,u),u=n(r.condition,i,u),u=n(r.incrementor,i,u),u=n(r.statement,i,u);break;case 230:case 231:u=n(r.initializer,i,u),u=n(r.expression,i,u),u=n(r.statement,i,u);break;case 234:case 238:u=n(r.expression,i,u);break;case 236:u=n(r.expression,i,u),u=n(r.caseBlock,i,u);break;case 237:u=n(r.label,i,u),u=n(r.statement,i,u);break;case 239:u=n(r.tryBlock,i,u),u=n(r.catchClause,i,u),u=n(r.finallyBlock,i,u);break;case 241:u=n(r.name,i,u),u=n(r.type,i,u),u=n(r.initializer,i,u);break;case 242:u=s(r.declarations,c,u);break;case 243:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.parameters,c,u),u=n(r.type,i,u),u=n(r.body,i,u);break;case 244:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.typeParameters,c,u),u=s(r.heritageClauses,c,u),u=s(r.members,c,u);break;case 247:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=s(r.members,c,u);break;case 248:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.body,i,u);break;case 249:u=s(r.statements,c,u);break;case 250:u=s(r.clauses,c,u);break;case 252:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.name,i,u),u=n(r.moduleReference,i,u);break;case 253:u=s(r.decorators,c,u),u=s(r.modifiers,c,u),u=n(r.importClause,i,u),u=n(r.moduleSpecifier,i,u);break;case 254:u=n(r.name,i,u),u=n(r.namedBindings,i,u);break;case 255:u=n(r.name,i,u);break;case 256:case 260:u=s(r.elements,c,u);break;case 257:case 261:u=n(r.propertyName,i,u),u=n(r.name,i,u);break;case 258:u=e.reduceLeft(r.decorators,i,u),u=e.reduceLeft(r.modifiers,i,u),u=n(r.expression,i,u);break;case 259:u=e.reduceLeft(r.decorators,i,u),u=e.reduceLeft(r.modifiers,i,u),u=n(r.exportClause,i,u),u=n(r.moduleSpecifier,i,u);break;case 263:u=n(r.expression,i,u);break;case 264:u=n(r.openingElement,i,u),u=e.reduceLeft(r.children,i,u),u=n(r.closingElement,i,u);break;case 268:u=n(r.openingFragment,i,u),u=e.reduceLeft(r.children,i,u),u=n(r.closingFragment,i,u);break;case 265:case 266:u=n(r.tagName,i,u),u=s(r.typeArguments,i,u),u=n(r.attributes,i,u);break;case 272:u=s(r.properties,c,u);break;case 267:u=n(r.tagName,i,u);break;case 271:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 273:case 274:u=n(r.expression,i,u);break;case 275:u=n(r.expression,i,u);case 276:u=s(r.statements,c,u);break;case 277:u=s(r.types,c,u);break;case 278:u=n(r.variableDeclaration,i,u),u=n(r.block,i,u);break;case 279:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 280:u=n(r.name,i,u),u=n(r.objectAssignmentInitializer,i,u);break;case 281:u=n(r.expression,i,u);break;case 282:u=n(r.name,i,u),u=n(r.initializer,i,u);break;case 288:u=s(r.statements,c,u);break;case 319:u=n(r.expression,i,u);break;case 320:u=s(r.elements,c,u)}return u}function a(n){if(void 0===n)return 0;if(536870912&n.transformFlags)return n.transformFlags&~e.getTransformFlagsSubtreeExclusions(n.kind);var t=function(n){if(e.hasModifier(n,2)||e.isTypeNode(n)&&215!==n.kind)return 0;return r(n,0,i,o)}(n);return e.computeTransformFlagsForNode(n,t)}function i(e,n){return e|a(n)}function o(e,n){return e|function(e){if(void 0===e)return 0;for(var n=0,t=0,r=0,i=e;r<i.length;r++){var o=i[r];n|=a(o),t|=-536870913&o.transformFlags}return e.transformFlags=536870912|t,n}(n)}e.reduceEachChild=r,e.mergeLexicalEnvironment=function(n,t){return e.some(t)?e.isNodeArray(n)?e.setTextRange(e.createNodeArray(e.insertStatementsAfterStandardPrologue(n.slice(),t)),n):e.insertStatementsAfterStandardPrologue(n,t):n},e.liftToBlock=function(n){return e.Debug.assert(e.every(n,e.isStatement),\"Cannot lift nodes to a Block.\"),e.singleOrUndefined(n)||e.createBlock(n)},e.aggregateTransformFlags=function(e){return a(e),e}}(ts||(ts={})),function(e){e.createSourceMapGenerator=function(n,t,r,a,o){var c,l,u=o.extendedDiagnostics?e.performance.createTimer(\"Source Map\",\"beforeSourcemap\",\"afterSourcemap\"):e.performance.nullTimer,d=u.enter,p=u.exit,m=[],f=[],_=e.createMap(),g=[],y=\"\",v=0,h=0,b=0,E=0,T=0,S=0,x=!1,L=0,C=0,A=0,D=0,k=0,N=0,I=!1,M=!1,O=!1;return{getSources:function(){return m},addSource:R,setSourceContent:P,addName:w,addMapping:F,appendSourceMap:function(n,t,r,a,o,s){e.Debug.assert(n>=L,\"generatedLine cannot backtrack\"),e.Debug.assert(t>=0,\"generatedCharacter cannot be negative\"),d();for(var c,l=[],u=i(r.mappings),m=u.next();!m.done;m=u.next()){var f=m.value;if(s&&(f.generatedLine>s.line||f.generatedLine===s.line&&f.generatedCharacter>s.character))break;if(!o||!(f.generatedLine<o.line||o.line===f.generatedLine&&f.generatedCharacter<o.character)){var _=void 0,g=void 0,y=void 0,v=void 0;if(void 0!==f.sourceIndex){if(void 0===(_=l[f.sourceIndex])){var h=r.sources[f.sourceIndex],b=r.sourceRoot?e.combinePaths(r.sourceRoot,h):h,E=e.combinePaths(e.getDirectoryPath(a),b);l[f.sourceIndex]=_=R(E),r.sourcesContent&&\"string\"==typeof r.sourcesContent[f.sourceIndex]&&P(_,r.sourcesContent[f.sourceIndex])}g=f.sourceLine,y=f.sourceCharacter,r.names&&void 0!==f.nameIndex&&(c||(c=[]),void 0===(v=c[f.nameIndex])&&(c[f.nameIndex]=v=w(r.names[f.nameIndex])))}var T=f.generatedLine-(o?o.line:0),S=T+n,x=o&&o.line===f.generatedLine?f.generatedCharacter-o.character:f.generatedCharacter;F(S,0===T?x+t:x,_,g,y,v)}}p()},toJSON:B,toString:function(){return JSON.stringify(B())}};function R(t){d();var r=e.getRelativePathToDirectoryOrUrl(a,t,n.getCurrentDirectory(),n.getCanonicalFileName,!0),i=_.get(r);return void 0===i&&(i=f.length,f.push(r),m.push(t),_.set(r,i)),p(),i}function P(e,n){if(d(),null!==n){for(c||(c=[]);c.length<e;)c.push(null);c[e]=n}p()}function w(n){d(),l||(l=e.createMap());var t=l.get(n);return void 0===t&&(t=g.length,g.push(n),l.set(n,t)),p(),t}function F(n,t,r,a,i,o){e.Debug.assert(n>=L,\"generatedLine cannot backtrack\"),e.Debug.assert(t>=0,\"generatedCharacter cannot be negative\"),e.Debug.assert(void 0===r||r>=0,\"sourceIndex cannot be negative\"),e.Debug.assert(void 0===a||a>=0,\"sourceLine cannot be negative\"),e.Debug.assert(void 0===i||i>=0,\"sourceCharacter cannot be negative\"),d(),(function(e,n){return!I||L!==e||C!==n}(n,t)||function(e,n,t){return void 0!==e&&void 0!==n&&void 0!==t&&A===e&&(D>n||D===n&&k>t)}(r,a,i))&&(G(),L=n,C=t,M=!1,O=!1,I=!0),void 0!==r&&void 0!==a&&void 0!==i&&(A=r,D=a,k=i,M=!0,void 0!==o&&(N=o,O=!0)),p()}function G(){if(I&&(!x||v!==L||h!==C||b!==A||E!==D||T!==k||S!==N)){if(d(),v<L)do{y+=\";\",v++,h=0}while(v<L);else e.Debug.assertEqual(v,L,\"generatedLine cannot backtrack\"),x&&(y+=\",\");y+=s(C-h),h=C,M&&(y+=s(A-b),b=A,y+=s(D-E),E=D,y+=s(k-T),T=k,O&&(y+=s(N-S),S=N)),x=!0,p()}}function B(){return G(),{version:3,file:t,sourceRoot:r,sources:f,names:g,mappings:y,sourcesContent:c}}};var n=/^\\/\\/[@#] source[M]appingURL=(.+)\\s*$/,t=/^\\s*(\\/\\/[@#] .*)?$/;function r(e){return\"string\"==typeof e||null===e}function a(n){return null!==n&&\"object\"==typeof n&&3===n.version&&\"string\"==typeof n.file&&\"string\"==typeof n.mappings&&e.isArray(n.sources)&&e.every(n.sources,e.isString)&&(void 0===n.sourceRoot||null===n.sourceRoot||\"string\"==typeof n.sourceRoot)&&(void 0===n.sourcesContent||null===n.sourcesContent||e.isArray(n.sourcesContent)&&e.every(n.sourcesContent,r))&&(void 0===n.names||null===n.names||e.isArray(n.names)&&e.every(n.names,e.isString))}function i(e){var n,t=!1,r=0,a=0,i=0,o=0,s=0,c=0,l=0;return{get pos(){return r},get error(){return n},get state(){return u(!0,!0)},next:function(){for(;!t&&r<e.length;){var n=e.charCodeAt(r);if(59!==n){if(44!==n){var p=!1,y=!1;if(i+=g(),f())return d();if(i<0)return m(\"Invalid generatedCharacter found\");if(!_()){if(p=!0,o+=g(),f())return d();if(o<0)return m(\"Invalid sourceIndex found\");if(_())return m(\"Unsupported Format: No entries after sourceIndex\");if(s+=g(),f())return d();if(s<0)return m(\"Invalid sourceLine found\");if(_())return m(\"Unsupported Format: No entries after sourceLine\");if(c+=g(),f())return d();if(c<0)return m(\"Invalid sourceCharacter found\");if(!_()){if(y=!0,l+=g(),f())return d();if(l<0)return m(\"Invalid nameIndex found\");if(!_())return m(\"Unsupported Error Format: Entries after nameIndex\")}}return{value:u(p,y),done:t}}r++}else a++,i=0,r++}return d()}};function u(e,n){return{generatedLine:a,generatedCharacter:i,sourceIndex:e?o:void 0,sourceLine:e?s:void 0,sourceCharacter:e?c:void 0,nameIndex:n?l:void 0}}function d(){return t=!0,{value:void 0,done:!0}}function p(e){void 0===n&&(n=e)}function m(e){return p(e),d()}function f(){return void 0!==n}function _(){return r===e.length||44===e.charCodeAt(r)||59===e.charCodeAt(r)}function g(){for(var n,t=!0,a=0,i=0;t;r++){if(r>=e.length)return p(\"Error in decoding base64VLQFormatDecode, past the mapping string\"),-1;var o=(n=e.charCodeAt(r))>=65&&n<=90?n-65:n>=97&&n<=122?n-97+26:n>=48&&n<=57?n-48+52:43===n?62:47===n?63:-1;if(-1===o)return p(\"Invalid character in VLQ\"),-1;t=0!=(32&o),i|=(31&o)<<a,a+=5}return 0==(1&i)?i>>=1:i=-(i>>=1),i}}function o(e){return void 0!==e.sourceIndex&&void 0!==e.sourceLine&&void 0!==e.sourceCharacter}function s(n){n<0?n=1+(-n<<1):n<<=1;var t,r=\"\";do{var a=31&n;(n>>=5)>0&&(a|=32),r+=String.fromCharCode((t=a)>=0&&t<26?65+t:t>=26&&t<52?97+t-26:t>=52&&t<62?48+t-52:62===t?43:63===t?47:e.Debug.fail(t+\": not a base64 value\"))}while(n>0);return r}function c(e){return void 0!==e.sourceIndex&&void 0!==e.sourcePosition}function l(e,n){return e.generatedPosition===n.generatedPosition&&e.sourceIndex===n.sourceIndex&&e.sourcePosition===n.sourcePosition}function u(n,t){return e.Debug.assert(n.sourceIndex===t.sourceIndex),e.compareValues(n.sourcePosition,t.sourcePosition)}function d(n,t){return e.compareValues(n.generatedPosition,t.generatedPosition)}function p(e){return e.sourcePosition}function m(e){return e.generatedPosition}e.getLineInfo=function(e,n){return{getLineCount:function(){return n.length},getLineText:function(t){return e.substring(n[t],n[t+1])}}},e.tryGetSourceMappingURL=function(e){for(var r=e.getLineCount()-1;r>=0;r--){var a=e.getLineText(r),i=n.exec(a);if(i)return i[1];if(!a.match(t))break}},e.isRawSourceMap=a,e.tryParseRawSourceMap=function(e){try{var n=JSON.parse(e);if(a(n))return n}catch(e){}},e.decodeMappings=i,e.sameMapping=function(e,n){return e===n||e.generatedLine===n.generatedLine&&e.generatedCharacter===n.generatedCharacter&&e.sourceIndex===n.sourceIndex&&e.sourceLine===n.sourceLine&&e.sourceCharacter===n.sourceCharacter&&e.nameIndex===n.nameIndex},e.isSourceMapping=o,e.createDocumentPositionMapper=function(n,t,r){var a,s,f,_=e.getDirectoryPath(r),g=t.sourceRoot?e.getNormalizedAbsolutePath(t.sourceRoot,_):_,y=e.getNormalizedAbsolutePath(t.file,_),v=n.getSourceFileLike(y),h=t.sources.map((function(n){return e.getNormalizedAbsolutePath(n,g)})),b=e.createMapFromEntries(h.map((function(e,t){return[n.getCanonicalFileName(e),t]})));return{getSourcePosition:function(n){var t=x();if(!e.some(t))return n;var r=e.binarySearchKey(t,n.pos,m,e.compareValues);r<0&&(r=~r);var a=t[r];if(void 0===a||!c(a))return n;return{fileName:h[a.sourceIndex],pos:a.sourcePosition}},getGeneratedPosition:function(t){var r=b.get(n.getCanonicalFileName(t.fileName));if(void 0===r)return t;var a=S(r);if(!e.some(a))return t;var i=e.binarySearchKey(a,t.pos,p,e.compareValues);i<0&&(i=~i);var o=a[i];if(void 0===o||o.sourceIndex!==r)return t;return{fileName:y,pos:o.generatedPosition}}};function E(r){var a,i,s=void 0!==v?e.getPositionOfLineAndCharacter(v,r.generatedLine,r.generatedCharacter,!0):-1;if(o(r)){var c=n.getSourceFileLike(h[r.sourceIndex]);a=t.sources[r.sourceIndex],i=void 0!==c?e.getPositionOfLineAndCharacter(c,r.sourceLine,r.sourceCharacter,!0):-1}return{generatedPosition:s,source:a,sourceIndex:r.sourceIndex,sourcePosition:i,nameIndex:r.nameIndex}}function T(){if(void 0===a){var r=i(t.mappings),o=e.arrayFrom(r,E);void 0!==r.error?(n.log&&n.log(\"Encountered error while decoding sourcemap: \"+r.error),a=e.emptyArray):a=o}return a}function S(n){if(void 0===f){for(var t=[],r=0,a=T();r<a.length;r++){var i=a[r];if(c(i)){var o=t[i.sourceIndex];o||(t[i.sourceIndex]=o=[]),o.push(i)}}f=t.map((function(n){return e.sortAndDeduplicate(n,u,l)}))}return f[n]}function x(){if(void 0===s){for(var n=[],t=0,r=T();t<r.length;t++){var a=r[t];n.push(a)}s=e.sortAndDeduplicate(n,d,l)}return s}},e.identitySourceMapConsumer={getSourcePosition:e.identity,getGeneratedPosition:e.identity}}(ts||(ts={})),function(e){function n(n){return(n=e.getOriginalNode(n))?e.getNodeId(n):0}function t(e){return void 0!==e.propertyName&&\"default\"===e.propertyName.escapedText}function r(n){if(e.getNamespaceDeclarationNode(n))return!0;var r=n.importClause&&n.importClause.namedBindings;if(!r)return!1;if(!e.isNamedImports(r))return!1;for(var a=0,i=0,o=r.elements;i<o.length;i++){t(o[i])&&a++}return a>0&&a!==r.elements.length||!!(r.elements.length-a)&&e.isDefaultImport(n)}function a(n){return!r(n)&&(e.isDefaultImport(n)||!!n.importClause&&e.isNamedImports(n.importClause.namedBindings)&&function(n){return!!n&&(!!e.isNamedImports(n)&&e.some(n.elements,t))}(n.importClause.namedBindings))}function i(n,t,r){if(e.isBindingPattern(n.name))for(var a=0,o=n.name.elements;a<o.length;a++){var s=o[a];e.isOmittedExpression(s)||(r=i(s,t,r))}else if(!e.isGeneratedIdentifier(n.name)){var c=e.idText(n.name);t.get(c)||(t.set(c,!0),r=e.append(r,n.name))}return r}function o(e,n,t){var r=e[n];return r?r.push(t):e[n]=r=[t],r}function s(n){return e.isStringLiteralLike(n)||8===n.kind||e.isKeyword(n.kind)||e.isIdentifier(n)}e.getOriginalNodeId=n,e.chainBundle=function(n){return function(t){return 288===t.kind?n(t):function(t){return e.createBundle(e.map(t.sourceFiles,n),t.prepends)}(t)}},e.getImportNeedsImportStarHelper=r,e.getImportNeedsImportDefaultHelper=a,e.collectExternalModuleInfo=function(t,s,c){for(var l,u,d=[],p=e.createMultiMap(),m=[],f=e.createMap(),_=!1,g=!1,y=!1,v=!1,h=0,b=t.statements;h<b.length;h++){var E=b[h];switch(E.kind){case 253:d.push(E),!y&&r(E)&&(y=!0),!v&&a(E)&&(v=!0);break;case 252:263===E.moduleReference.kind&&d.push(E);break;case 259:if(E.moduleSpecifier)E.exportClause?d.push(E):(d.push(E),g=!0);else for(var T=0,S=E.exportClause.elements;T<S.length;T++){var x=S[T];if(!f.get(e.idText(x.name))){var L=x.propertyName||x.name;p.add(e.idText(L),x),(D=s.getReferencedImportDeclaration(L)||s.getReferencedValueDeclaration(L))&&o(m,n(D),x.name),f.set(e.idText(x.name),!0),l=e.append(l,x.name)}}break;case 258:E.isExportEquals&&!u&&(u=E);break;case 224:if(e.hasModifier(E,1))for(var C=0,A=E.declarationList.declarations;C<A.length;C++){var D;l=i(D=A[C],f,l)}break;case 243:if(e.hasModifier(E,1))if(e.hasModifier(E,512))_||(o(m,n(E),e.getDeclarationName(E)),_=!0);else{L=E.name;f.get(e.idText(L))||(o(m,n(E),L),f.set(e.idText(L),!0),l=e.append(l,L))}break;case 244:if(e.hasModifier(E,1))if(e.hasModifier(E,512))_||(o(m,n(E),e.getDeclarationName(E)),_=!0);else(L=E.name)&&!f.get(e.idText(L))&&(o(m,n(E),L),f.set(e.idText(L),!0),l=e.append(l,L))}}var k=e.createExternalHelpersImportDeclarationIfNeeded(t,c,g,y,v);return k&&d.unshift(k),{externalImports:d,exportSpecifiers:p,exportEquals:u,hasExportStarsToExportValues:g,exportedBindings:m,exportedNames:l,externalHelpersImportDeclaration:k}},e.isSimpleCopiableExpression=s,e.isSimpleInlineableExpression=function(n){return!e.isIdentifier(n)&&s(n)||e.isWellKnownSymbolSyntactically(n)},e.addPrologueDirectivesAndInitialSuperCall=function(n,t,r){if(n.body){var a=n.body.statements,i=e.addPrologue(t,a,!1,r);if(i===a.length)return i;var o=a[i];return 225===o.kind&&e.isSuperCall(o.expression)?(t.push(e.visitNode(o,r,e.isStatement)),i+1):i}return 0},e.helperString=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return function(t){for(var r=\"\",a=0;a<n.length;a++)r+=e[a],r+=t(n[a]);return r+=e[e.length-1]}},e.getProperties=function(n,t,r){return e.filter(n.members,(function(n){return function(n,t,r){return e.isPropertyDeclaration(n)&&(!!n.initializer||!t)&&e.hasStaticModifier(n)===r}(n,t,r)}))},e.isInitializedProperty=function(n,t){return e.isPropertyDeclaration(n)&&(!!n.initializer||!t)}}(ts||(ts={})),function(e){function n(t,r){var a=e.getTargetOfBindingOrAssignmentElement(t);return e.isBindingOrAssignmentPattern(a)?function(t,r){for(var a=e.getElementsOfBindingOrAssignmentPattern(t),i=0,o=a;i<o.length;i++){if(n(o[i],r))return!0}return!1}(a,r):!!e.isIdentifier(a)&&a.escapedText===r}function t(n,i,o,s,c){if(!c){var l=e.visitNode(e.getInitializerOfBindingOrAssignmentElement(i),n.visitor,e.isExpression);l?o=o?function(n,t,r,i){return t=a(n,t,!0,i),e.createConditional(e.createTypeCheck(t,\"undefined\"),r,t)}(n,o,l,s):l:o||(o=e.createVoidZero())}var u=e.getTargetOfBindingOrAssignmentElement(i);e.isObjectBindingOrAssignmentPattern(u)?function(n,i,o,s,c){var l,u,p=e.getElementsOfBindingOrAssignmentPattern(o),m=p.length;if(1!==m){var f=!e.isDeclarationBindingElement(i)||0!==m;s=a(n,s,f,c)}for(var _=0;_<m;_++){var g=p[_];if(e.getRestIndicatorOfBindingOrAssignmentElement(g)){if(_===m-1){l&&(n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o),l=void 0);v=d(n.context,s,p,u,o);t(n,g,v,g)}}else{var y=e.getPropertyNameOfBindingOrAssignmentElement(g);if(!(n.level>=1)||12288&g.transformFlags||12288&e.getTargetOfBindingOrAssignmentElement(g).transformFlags||e.isComputedPropertyName(y)){l&&(n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o),l=void 0);var v=r(n,s,y);e.isComputedPropertyName(y)&&(u=e.append(u,v.argumentExpression)),t(n,g,v,g)}else l=e.append(l,g)}}l&&n.emitBindingOrAssignment(n.createObjectBindingOrAssignmentPattern(l),s,c,o)}(n,i,u,o,s):e.isArrayBindingOrAssignmentPattern(u)?function(n,r,i,o,s){var c,l,u=e.getElementsOfBindingOrAssignmentPattern(i),d=u.length;if(n.level<1&&n.downlevelIteration)o=a(n,e.createReadHelper(n.context,o,d>0&&e.getRestIndicatorOfBindingOrAssignmentElement(u[d-1])?void 0:d,s),!1,s);else if(1!==d&&(n.level<1||0===d)||e.every(u,e.isOmittedExpression)){var p=!e.isDeclarationBindingElement(r)||0!==d;o=a(n,o,p,s)}for(var m=0;m<d;m++){var f=u[m];if(n.level>=1)if(8192&f.transformFlags){var _=e.createTempVariable(void 0);n.hoistTempVariables&&n.context.hoistVariableDeclaration(_),l=e.append(l,[_,f]),c=e.append(c,n.createArrayBindingOrAssignmentElement(_))}else c=e.append(c,f);else{if(e.isOmittedExpression(f))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(f)){if(m===d-1){g=e.createArraySlice(o,m);t(n,f,g,f)}}else{var g=e.createElementAccess(o,m);t(n,f,g,f)}}}c&&n.emitBindingOrAssignment(n.createArrayBindingOrAssignmentPattern(c),o,s,i);if(l)for(var y=0,v=l;y<v.length;y++){var h=v[y],b=h[0];f=h[1];t(n,f,b,f)}}(n,i,u,o,s):n.emitBindingOrAssignment(u,o,s,i)}function r(n,t,r){if(e.isComputedPropertyName(r)){var i=a(n,e.visitNode(r.expression,n.visitor),!1,r);return e.createElementAccess(t,i)}if(e.isStringOrNumericLiteralLike(r))return(i=e.getSynthesizedClone(r)).text=i.text,e.createElementAccess(t,i);var o=e.createIdentifier(e.idText(r));return e.createPropertyAccess(t,o)}function a(n,t,r,a){if(e.isIdentifier(t)&&r)return t;var i=e.createTempVariable(void 0);return n.hoistTempVariables?(n.context.hoistVariableDeclaration(i),n.emitExpression(e.setTextRange(e.createAssignment(i,t),a))):n.emitBindingOrAssignment(i,t,a,void 0),i}function i(n){return e.Debug.assertEachNode(n,e.isArrayBindingElement),e.createArrayBindingPattern(n)}function o(n){return e.createArrayLiteral(e.map(n,e.convertToArrayAssignmentElement))}function s(n){return e.Debug.assertEachNode(n,e.isBindingElement),e.createObjectBindingPattern(n)}function c(n){return e.createObjectLiteral(e.map(n,e.convertToObjectAssignmentElement))}function l(n){return e.createBindingElement(void 0,void 0,n)}function u(e){return e}function d(n,t,r,a,i){n.requestEmitHelper(e.restHelper);for(var o=[],s=0,c=0;c<r.length-1;c++){var l=e.getPropertyNameOfBindingOrAssignmentElement(r[c]);if(l)if(e.isComputedPropertyName(l)){var u=a[s];s++,o.push(e.createConditional(e.createTypeCheck(u,\"symbol\"),u,e.createAdd(u,e.createLiteral(\"\"))))}else o.push(e.createLiteral(l))}return e.createCall(e.getUnscopedHelperName(\"__rest\"),void 0,[t,e.setTextRange(e.createArrayLiteral(o),i)])}!function(e){e[e.All=0]=\"All\",e[e.ObjectRest=1]=\"ObjectRest\"}(e.FlattenLevel||(e.FlattenLevel={})),e.flattenDestructuringAssignment=function(r,i,s,l,d,p){var m,f,_=r;if(e.isDestructuringAssignment(r))for(m=r.right;e.isEmptyArrayLiteral(r.left)||e.isEmptyObjectLiteral(r.left);){if(!e.isDestructuringAssignment(m))return e.visitNode(m,i,e.isExpression);_=r=m,m=r.right}var g={context:s,level:l,downlevelIteration:!!s.getCompilerOptions().downlevelIteration,hoistTempVariables:!0,emitExpression:y,emitBindingOrAssignment:function(n,t,r,a){e.Debug.assertNode(n,p?e.isIdentifier:e.isExpression);var o=p?p(n,t,r):e.setTextRange(e.createAssignment(e.visitNode(n,i,e.isExpression),t),r);o.original=a,y(o)},createArrayBindingOrAssignmentPattern:o,createObjectBindingOrAssignmentPattern:c,createArrayBindingOrAssignmentElement:u,visitor:i};if(m&&(m=e.visitNode(m,i,e.isExpression),e.isIdentifier(m)&&n(r,m.escapedText)?m=a(g,m,!1,_):d?m=a(g,m,!0,_):e.nodeIsSynthesized(r)&&(_=m)),t(g,r,m,_,e.isDestructuringAssignment(r)),m&&d){if(!e.some(f))return m;f.push(m)}return e.aggregateTransformFlags(e.inlineExpressions(f))||e.createOmittedExpression();function y(n){e.setEmitFlags(n,64),e.aggregateTransformFlags(n),f=e.append(f,n)}},e.flattenDestructuringBinding=function(r,o,c,u,d,p,m){var f;void 0===p&&(p=!1);var _=[],g=[],y={context:c,level:u,downlevelIteration:!!c.getCompilerOptions().downlevelIteration,hoistTempVariables:p,emitExpression:function(n){f=e.append(f,n)},emitBindingOrAssignment:N,createArrayBindingOrAssignmentPattern:i,createObjectBindingOrAssignmentPattern:s,createArrayBindingOrAssignmentElement:l,visitor:o};if(e.isVariableDeclaration(r)){var v=e.getInitializerOfBindingOrAssignmentElement(r);v&&e.isIdentifier(v)&&n(r,v.escapedText)&&(v=a(y,v,!1,v),r=e.updateVariableDeclaration(r,r.name,r.type,v))}if(t(y,r,d,r,m),f){var h=e.createTempVariable(void 0);if(p){var b=e.inlineExpressions(f);f=void 0,N(h,b,void 0,void 0)}else{c.hoistVariableDeclaration(h);var E=e.last(_);E.pendingExpressions=e.append(E.pendingExpressions,e.createAssignment(h,E.value)),e.addRange(E.pendingExpressions,f),E.value=h}}for(var T=0,S=_;T<S.length;T++){var x=S[T],L=x.pendingExpressions,C=x.name,A=(b=x.value,x.location),D=x.original,k=e.createVariableDeclaration(C,void 0,L?e.inlineExpressions(e.append(L,b)):b);k.original=D,e.setTextRange(k,A),e.isIdentifier(C)&&e.setEmitFlags(k,64),e.aggregateTransformFlags(k),g.push(k)}return g;function N(n,t,r,a){e.Debug.assertNode(n,e.isBindingName),f&&(t=e.inlineExpressions(e.append(f,t)),f=void 0),_.push({pendingExpressions:f,name:n,value:t,location:r,original:a})}},e.restHelper={name:\"typescript:rest\",importName:\"__rest\",scoped:!1,text:'\\n            var __rest = (this && this.__rest) || function (s, e) {\\n                var t = {};\\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\n                    t[p] = s[p];\\n                if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\\n                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\n                        if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\n                            t[p[i]] = s[p[i]];\\n                    }\\n                return t;\\n            };'}}(ts||(ts={})),function(e){var n,t;function r(n,t,r,a,i,o){var s=[];return s.push(e.createArrayLiteral(t,!0)),s.push(r),a&&(s.push(a),i&&s.push(i)),n.requestEmitHelper(e.decorateHelper),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__decorate\"),void 0,s),o)}function a(n,t,r){return n.requestEmitHelper(e.metadataHelper),e.createCall(e.getUnscopedHelperName(\"__metadata\"),void 0,[e.createLiteral(t),r])}function i(n,t,r,a){return n.requestEmitHelper(e.paramHelper),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__param\"),void 0,[e.createLiteral(r),t]),a)}!function(e){e[e.ClassAliases=1]=\"ClassAliases\",e[e.NamespaceExports=2]=\"NamespaceExports\",e[e.NonQualifiedEnumMembers=8]=\"NonQualifiedEnumMembers\"}(n||(n={})),function(e){e[e.None=0]=\"None\",e[e.HasStaticInitializedProperties=1]=\"HasStaticInitializedProperties\",e[e.HasConstructorDecorators=2]=\"HasConstructorDecorators\",e[e.HasMemberDecorators=4]=\"HasMemberDecorators\",e[e.IsExportOfNamespace=8]=\"IsExportOfNamespace\",e[e.IsNamedExternalExport=16]=\"IsNamedExternalExport\",e[e.IsDefaultExternalExport=32]=\"IsDefaultExternalExport\",e[e.IsDerivedClass=64]=\"IsDerivedClass\",e[e.UseImmediatelyInvokedFunctionExpression=128]=\"UseImmediatelyInvokedFunctionExpression\",e[e.HasAnyDecorators=6]=\"HasAnyDecorators\",e[e.NeedsName=5]=\"NeedsName\",e[e.MayNeedImmediatelyInvokedFunctionExpression=7]=\"MayNeedImmediatelyInvokedFunctionExpression\",e[e.IsExported=56]=\"IsExported\"}(t||(t={})),e.transformTypeScript=function(n){var t,o,s,c,l,u,d,p,m,f,_=n.startLexicalEnvironment,g=n.resumeLexicalEnvironment,y=n.endLexicalEnvironment,v=n.hoistVariableDeclaration,h=n.getEmitResolver(),b=n.getCompilerOptions(),E=e.getStrictOptionValue(b,\"strictNullChecks\"),T=e.getEmitScriptTarget(b),S=e.getEmitModuleKind(b),x=n.onEmitNode,L=n.onSubstituteNode;return n.onEmitNode=function(n,r,a){var i=f,o=t;e.isSourceFile(r)&&(t=r);2&p&&function(n){return 248===e.getOriginalNode(n).kind}(r)&&(f|=2);8&p&&function(n){return 247===e.getOriginalNode(n).kind}(r)&&(f|=8);x(n,r,a),f=i,t=o},n.onSubstituteNode=function(n,t){if(t=L(n,t),1===n)return function(n){switch(n.kind){case 75:return function(n){return function(n){if(1&p&&33554432&h.getNodeCheckFlags(n)){var t=h.getReferencedValueDeclaration(n);if(t){var r=m[t.id];if(r){var a=e.getSynthesizedClone(r);return e.setSourceMapRange(a,n),e.setCommentRange(a,n),a}}}return}(n)||Be(n)||n}(n);case 193:case 194:return function(e){return Ve(e)}(n)}return n}(t);if(e.isShorthandPropertyAssignment(t))return function(n){if(2&p){var t=n.name,r=Be(t);if(r){if(n.objectAssignmentInitializer){var a=e.createAssignment(r,n.objectAssignmentInitializer);return e.setTextRange(e.createPropertyAssignment(t,a),n)}return e.setTextRange(e.createPropertyAssignment(t,r),n)}}return n}(t);return t},n.enableSubstitution(193),n.enableSubstitution(194),function(n){if(289===n.kind)return function(n){return e.createBundle(n.sourceFiles.map(C),e.mapDefined(n.prepends,(function(n){return 291===n.kind?e.createUnparsedSourceFile(n,\"js\"):n})))}(n);return C(n)};function C(r){if(r.isDeclarationFile)return r;t=r;var a=A(r,G);return e.addEmitHelpers(a,n.readEmitHelpers()),t=void 0,a}function A(n,t){var r=c,a=l,i=u,o=d;!function(n){switch(n.kind){case 288:case 250:case 249:case 222:c=n,l=void 0,u=void 0;break;case 244:case 243:if(e.hasModifier(n,2))break;n.name?be(n):e.Debug.assert(244===n.kind||e.hasModifier(n,512)),e.isClassDeclaration(n)&&(l=n)}}(n);var s=t(n);return c!==r&&(u=i),c=r,l=a,d=o,s}function D(e){return A(e,k)}function k(e){return 1&e.transformFlags?F(e):e}function N(e){return A(e,I)}function I(t){switch(t.kind){case 253:case 252:case 258:case 259:return function(t){if(e.getParseTreeNode(t)!==t)return 1&t.transformFlags?e.visitEachChild(t,D,n):t;switch(t.kind){case 253:return function(n){if(!n.importClause)return n;var t=e.visitNode(n.importClause,xe,e.isImportClause);return t?e.updateImportDeclaration(n,void 0,void 0,t,n.moduleSpecifier):void 0}(t);case 252:return ke(t);case 258:return function(t){return h.isValueAliasDeclaration(t)?e.visitEachChild(t,D,n):void 0}(t);case 259:return function(n){if(!n.exportClause)return b.isolatedModules||h.moduleExportsSomeValue(n.moduleSpecifier)?n:void 0;if(!h.isValueAliasDeclaration(n))return;var t=e.visitNode(n.exportClause,Ae,e.isNamedExports);return t?e.updateExportDeclaration(n,void 0,void 0,t,n.moduleSpecifier):void 0}(t);default:e.Debug.fail(\"Unhandled ellided statement\")}}(t);default:return k(t)}}function M(e){return A(e,O)}function O(n){if(259!==n.kind&&253!==n.kind&&254!==n.kind&&(252!==n.kind||263!==n.moduleReference.kind))return 1&n.transformFlags||e.hasModifier(n,1)?F(n):n}function R(e){return A(e,P)}function P(n){switch(n.kind){case 161:return fe(n);case 158:return me(n);case 166:case 162:case 163:case 160:return k(n);case 221:return n;default:return e.Debug.failBadSyntaxKind(n)}}function w(n){if(!(2270&e.modifierToFlag(n.kind)||o&&88===n.kind))return n}function F(a){if(e.isStatement(a)&&e.hasModifier(a,2))return e.createNotEmittedStatement(a);switch(a.kind){case 88:case 83:return o?void 0:a;case 118:case 116:case 117:case 121:case 80:case 129:case 137:case 173:case 174:case 175:case 176:case 172:case 167:case 154:case 124:case 147:case 127:case 142:case 139:case 136:case 109:case 143:case 170:case 169:case 171:case 168:case 177:case 178:case 179:case 181:case 182:case 183:case 184:case 185:case 186:case 166:case 156:case 246:return;case 158:return me(a);case 251:return;case 161:return fe(a);case 245:return e.createNotEmittedStatement(a);case 244:return function(a){if(!(U(a)||o&&e.hasModifier(a,1)))return e.visitEachChild(a,D,n);var i=e.getProperties(a,!0,!0),s=function(n,t){var r=0;e.some(t)&&(r|=1);var a=e.getEffectiveBaseTypeNode(n);a&&99!==e.skipOuterExpressions(a.expression).kind&&(r|=64);(function(n){if(n.decorators&&n.decorators.length>0)return!0;var t=e.getFirstConstructorWithBody(n);if(t)return e.forEach(t.parameters,B);return!1})(n)&&(r|=2);e.childIsDecorated(n)&&(r|=4);Ne(n)?r|=8:!function(n){return Ie(n)&&e.hasModifier(n,512)}(n)?Me(n)&&(r|=16):r|=32;T<=1&&7&r&&(r|=128);return r}(a,i);128&s&&n.startLexicalEnvironment();var c=a.name||(5&s?e.getGeneratedNameForNode(a):void 0),l=2&s?function(t,r){var a=e.moveRangePastDecorators(t),i=function(t){if(16777216&h.getNodeCheckFlags(t)){0==(1&p)&&(p|=1,n.enableSubstitution(75),m=[]);var r=e.createUniqueName(t.name&&!e.isGeneratedIdentifier(t.name)?e.idText(t.name):\"default\");return m[e.getOriginalNodeId(t)]=r,v(r),r}}(t),o=e.getLocalName(t,!1,!0),s=e.visitNodes(t.heritageClauses,D,e.isHeritageClause),c=j(t),l=e.createClassExpression(void 0,r,void 0,s,c);e.aggregateTransformFlags(l),e.setOriginalNode(l,t),e.setTextRange(l,a);var u=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(o,void 0,i?e.createAssignment(i,l):l)],1));return e.setOriginalNode(u,t),e.setTextRange(u,a),e.setCommentRange(u,t),u}(a,c):function(n,t,r){var a=128&r?void 0:e.visitNodes(n.modifiers,w,e.isModifier),i=e.createClassDeclaration(void 0,a,t,void 0,e.visitNodes(n.heritageClauses,D,e.isHeritageClause),j(n)),o=e.getEmitFlags(n);1&r&&(o|=32);return e.aggregateTransformFlags(i),e.setTextRange(i,n),e.setOriginalNode(i,n),e.setEmitFlags(i,o),i}(a,c,s),u=[l];if(J(u,a,!1),J(u,a,!0),function(t,a){var i=function(t){var a=function(n){var t=n.decorators,r=W(e.getFirstConstructorWithBody(n));if(!t&&!r)return;return{decorators:t,parameters:r}}(t),i=q(t,t,a);if(!i)return;var o=m&&m[e.getOriginalNodeId(t)],s=e.getLocalName(t,!1,!0),c=r(n,i,s),l=e.createAssignment(s,o?e.createAssignment(o,c):c);return e.setEmitFlags(l,1536),e.setSourceMapRange(l,e.moveRangePastDecorators(t)),l}(a);i&&t.push(e.setOriginalNode(e.createExpressionStatement(i),a))}(u,a),128&s){var d=e.createTokenRange(e.skipTrivia(t.text,a.members.end),19),f=e.getInternalName(a),_=e.createPartiallyEmittedExpression(f);_.end=d.end,e.setEmitFlags(_,1536);var g=e.createReturn(_);g.pos=d.pos,e.setEmitFlags(g,1920),u.push(g),e.insertStatementsAfterStandardPrologue(u,n.endLexicalEnvironment());var y=e.createImmediatelyInvokedArrowFunction(u);e.setEmitFlags(y,33554432);var b=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getLocalName(a,!1,!1),void 0,y)]));e.setOriginalNode(b,a),e.setCommentRange(b,a),e.setSourceMapRange(b,e.moveRangePastDecorators(a)),e.startOnNewLine(b),u=[b]}8&s?Re(u,a):(128&s||2&s)&&(32&s?u.push(e.createExportDefault(e.getLocalName(a,!1,!0))):16&s&&u.push(e.createExternalModuleExport(e.getLocalName(a,!1,!0))));u.length>1&&(u.push(e.createEndOfDeclarationMarker(a)),e.setEmitFlags(l,4194304|e.getEmitFlags(l)));return e.singleOrMany(u)}(a);case 213:return function(t){if(!U(t))return e.visitEachChild(t,D,n);var r=e.createClassExpression(void 0,t.name,void 0,e.visitNodes(t.heritageClauses,D,e.isHeritageClause),j(t));return e.aggregateTransformFlags(r),e.setOriginalNode(r,t),e.setTextRange(r,t),r}(a);case 277:return function(t){if(112===t.token)return;return e.visitEachChild(t,D,n)}(a);case 215:return function(n){return e.updateExpressionWithTypeArguments(n,void 0,e.visitNode(n.expression,D,e.isLeftHandSideExpression))}(a);case 160:return function(t){if(!pe(t))return;var r=e.updateMethod(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,de(t),void 0,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 162:return function(t){if(!ge(t))return;var r=e.updateGetAccessor(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),de(t),e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 163:return function(t){if(!ge(t))return;var r=e.updateSetAccessor(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),de(t),e.visitParameterList(t.parameters,D,n),e.visitFunctionBody(t.body,D,n)||e.createBlock([]));r!==t&&(e.setCommentRange(r,t),e.setSourceMapRange(r,e.moveRangePastDecorators(t)));return r}(a);case 243:return function(t){if(!pe(t))return e.createNotEmittedStatement(t);var r=e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]));if(Ne(t)){var a=[r];return Re(a,t),a}return r}(a);case 200:return function(t){if(!pe(t))return e.createOmittedExpression();return e.updateFunctionExpression(t,e.visitNodes(t.modifiers,w,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,D,n),void 0,e.visitFunctionBody(t.body,D,n)||e.createBlock([]))}(a);case 201:return function(t){return e.updateArrowFunction(t,e.visitNodes(t.modifiers,w,e.isModifier),void 0,e.visitParameterList(t.parameters,D,n),void 0,t.equalsGreaterThanToken,e.visitFunctionBody(t.body,D,n))}(a);case 155:return function(n){if(e.parameterIsThisKeyword(n))return;var t=e.updateParameter(n,void 0,void 0,n.dotDotDotToken,e.visitNode(n.name,D,e.isBindingName),void 0,void 0,e.visitNode(n.initializer,D,e.isExpression));t!==n&&(e.setCommentRange(t,n),e.setTextRange(t,e.moveRangePastModifiers(n)),e.setSourceMapRange(t,e.moveRangePastModifiers(n)),e.setEmitFlags(t.name,32));return t}(a);case 199:return function(r){var a=e.skipOuterExpressions(r.expression,-3);if(e.isAssertionExpression(a)){var i=e.visitNode(r.expression,D,e.isExpression);return e.length(e.getLeadingCommentRangesOfNode(i,t))?e.updateParen(r,i):e.createPartiallyEmittedExpression(i,r)}return e.visitEachChild(r,D,n)}(a);case 198:case 216:return function(n){var t=e.visitNode(n.expression,D,e.isExpression);return e.createPartiallyEmittedExpression(t,n)}(a);case 195:return function(n){return e.updateCall(n,e.visitNode(n.expression,D,e.isExpression),void 0,e.visitNodes(n.arguments,D,e.isExpression))}(a);case 196:return function(n){return e.updateNew(n,e.visitNode(n.expression,D,e.isExpression),void 0,e.visitNodes(n.arguments,D,e.isExpression))}(a);case 197:return function(n){return e.updateTaggedTemplate(n,e.visitNode(n.tag,D,e.isExpression),void 0,e.visitNode(n.template,D,e.isExpression))}(a);case 217:return function(n){var t=e.visitNode(n.expression,D,e.isLeftHandSideExpression);return e.createPartiallyEmittedExpression(t,n)}(a);case 247:return function(n){if(!function(n){return!e.isEnumConst(n)||b.preserveConstEnums||b.isolatedModules}(n))return e.createNotEmittedStatement(n);var r=[],a=2,i=Te(r,n);i&&(S===e.ModuleKind.System&&c===t||(a|=512));var o=Fe(n),l=Ge(n),u=e.hasModifier(n,1)?e.getExternalModuleOrNamespaceExportName(s,n,!1,!0):e.getLocalName(n,!1,!0),d=e.createLogicalOr(u,e.createAssignment(u,e.createObjectLiteral()));if(he(n)){var p=e.getLocalName(n,!1,!0);d=e.createAssignment(p,d)}var m=e.createExpressionStatement(e.createCall(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,o)],void 0,function(n,t){var r=s;s=t;var a=[];_();var i=e.map(n.members,ve);return e.insertStatementsAfterStandardPrologue(a,y()),e.addRange(a,i),s=r,e.createBlock(e.setTextRange(e.createNodeArray(a),n.members),!0)}(n,l)),void 0,[d]));e.setOriginalNode(m,n),i&&(e.setSyntheticLeadingComments(m,void 0),e.setSyntheticTrailingComments(m,void 0));return e.setTextRange(m,n),e.addEmitFlags(m,a),r.push(m),r.push(e.createEndOfDeclarationMarker(n)),r}(a);case 224:return function(t){if(Ne(t)){var r=e.getInitializedVariables(t.declarationList);if(0===r.length)return;return e.setTextRange(e.createExpressionStatement(e.inlineExpressions(e.map(r,ye))),t)}return e.visitEachChild(t,D,n)}(a);case 241:return function(n){return e.updateVariableDeclaration(n,e.visitNode(n.name,D,e.isBindingName),void 0,e.visitNode(n.initializer,D,e.isExpression))}(a);case 248:return Se(a);case 252:return ke(a);default:return e.visitEachChild(a,D,n)}}function G(t){var r=e.getStrictOptionValue(b,\"alwaysStrict\")&&!(e.isExternalModule(t)&&S>=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(t);return e.updateSourceFileNode(t,e.visitLexicalEnvironment(t.statements,N,n,0,r))}function B(e){return void 0!==e.decorators&&e.decorators.length>0}function V(e){return!!(1024&e.transformFlags)}function U(n){return e.some(n.decorators)||e.some(n.typeParameters)||e.some(n.heritageClauses,V)||e.some(n.members,V)}function j(n){var t=[],r=e.getFirstConstructorWithBody(n),a=r&&e.filter(r.parameters,(function(n){return e.isParameterPropertyDeclaration(n,r)}));if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];e.isIdentifier(s.name)&&t.push(e.setOriginalNode(e.aggregateTransformFlags(e.createProperty(void 0,void 0,s.name,void 0,void 0,void 0)),s))}return e.addRange(t,e.visitNodes(n.members,R,e.isClassElement)),e.setTextRange(e.createNodeArray(t),n.members)}function K(n,t){return e.filter(n.members,t?function(e){return H(e,!0,n)}:function(e){return H(e,!1,n)})}function H(n,t,r){return e.nodeOrChildIsDecorated(n,r)&&t===e.hasModifier(n,32)}function W(n){var t;if(n)for(var r=n.parameters,a=r.length>0&&e.parameterIsThisKeyword(r[0]),i=a?1:0,o=a?r.length-1:r.length,s=0;s<o;s++){var c=r[s+i];(t||c.decorators)&&(t||(t=new Array(o)),t[s]=c.decorators)}return t}function z(n,t){switch(t.kind){case 162:case 163:return function(n,t){if(!t.body)return;var r=e.getAllAccessorDeclarations(n.members,t),a=r.firstAccessor,i=r.secondAccessor,o=r.setAccessor,s=a.decorators?a:i&&i.decorators?i:void 0;if(!s||t!==s)return;var c=s.decorators,l=W(o);if(!c&&!l)return;return{decorators:c,parameters:l}}(n,t);case 160:return function(e){if(!e.body)return;var n=e.decorators,t=W(e);if(!n&&!t)return;return{decorators:n,parameters:t}}(t);case 158:return function(e){var n=e.decorators;if(!n)return;return{decorators:n}}(t);default:return}}function q(t,r,i){if(i){var o=[];return e.addRange(o,e.map(i.decorators,Y)),e.addRange(o,e.flatMap(i.parameters,Q)),function(e,t,r){(function(e,t,r){b.emitDecoratorMetadata&&(Z(e)&&r.push(a(n,\"design:type\",ne(e))),ee(e)&&r.push(a(n,\"design:paramtypes\",te(e,t))),$(e)&&r.push(a(n,\"design:returntype\",re(e))))})(e,t,r)}(t,r,o),o}}function J(n,t,r){e.addRange(n,e.map(function(e,n){for(var t,r=K(e,n),a=0,i=r;a<i.length;a++){var o=i[a],s=X(e,o);s&&(t?t.push(s):t=[s])}return t}(t,r),Oe))}function X(t,a){var i=q(a,t,z(t,a));if(i){var o=function(n,t){return e.hasModifier(t,32)?e.getDeclarationName(n):function(n){return e.createPropertyAccess(e.getDeclarationName(n),\"prototype\")}(n)}(t,a),s=ue(a,!0),c=T>0?158===a.kind?e.createVoidZero():e.createNull():void 0,l=r(n,i,o,s,c,e.moveRangePastDecorators(a));return e.setEmitFlags(l,1536),l}}function Y(n){return e.visitNode(n.expression,D,e.isExpression)}function Q(t,r){var a;if(t){a=[];for(var o=0,s=t;o<s.length;o++){var c=s[o],l=i(n,Y(c),r,c.expression);e.setEmitFlags(l,1536),a.push(l)}}return a}function Z(e){var n=e.kind;return 160===n||162===n||163===n||158===n}function $(e){return 160===e.kind}function ee(n){switch(n.kind){case 244:case 213:return void 0!==e.getFirstConstructorWithBody(n);case 160:case 162:case 163:return!0}return!1}function ne(n){switch(n.kind){case 158:case 155:return ae(n.type);case 163:case 162:return ae(function(n){var t=h.getAllAccessorDeclarations(n);return t.setAccessor&&e.getSetAccessorTypeAnnotationNode(t.setAccessor)||t.getAccessor&&e.getEffectiveReturnTypeNode(t.getAccessor)}(n));case 244:case 213:case 160:return e.createIdentifier(\"Function\");default:return e.createVoidZero()}}function te(n,t){var r=e.isClassLike(n)?e.getFirstConstructorWithBody(n):e.isFunctionLike(n)&&e.nodeIsPresent(n.body)?n:void 0,a=[];if(r)for(var i=function(n,t){if(t&&162===n.kind){var r=e.getAllAccessorDeclarations(t.members,n).setAccessor;if(r)return r.parameters}return n.parameters}(r,t),o=i.length,s=0;s<o;s++){var c=i[s];0===s&&e.isIdentifier(c.name)&&\"this\"===c.name.escapedText||(c.dotDotDotToken?a.push(ae(e.getRestParameterElementType(c.type))):a.push(ne(c)))}return e.createArrayLiteral(a)}function re(n){return e.isFunctionLike(n)&&n.type?ae(n.type):e.isAsyncFunction(n)?e.createIdentifier(\"Promise\"):e.createVoidZero()}function ae(n){if(void 0===n)return e.createIdentifier(\"Object\");switch(n.kind){case 109:case 145:case 99:case 136:return e.createVoidZero();case 181:return ae(n.type);case 169:case 170:return e.createIdentifier(\"Function\");case 173:case 174:return e.createIdentifier(\"Array\");case 167:case 127:return e.createIdentifier(\"Boolean\");case 142:return e.createIdentifier(\"String\");case 140:return e.createIdentifier(\"Object\");case 186:switch(n.literal.kind){case 10:return e.createIdentifier(\"String\");case 206:case 8:return e.createIdentifier(\"Number\");case 9:return le();case 105:case 90:return e.createIdentifier(\"Boolean\");default:return e.Debug.failBadSyntaxKind(n.literal)}case 139:return e.createIdentifier(\"Number\");case 150:return le();case 143:return T<2?ce():e.createIdentifier(\"Symbol\");case 168:return function(n){var t=h.getTypeReferenceSerializationKind(n.typeName,l||c);switch(t){case e.TypeReferenceSerializationKind.Unknown:if(e.findAncestor(n,(function(n){return n.parent&&e.isConditionalTypeNode(n.parent)&&(n.parent.trueType===n||n.parent.falseType===n)})))return e.createIdentifier(\"Object\");var r=function n(t){if(75===t.kind){var r=se(t);return oe(r,r)}if(75===t.left.kind)return oe(se(t.left),se(t));var a=n(t.left),i=e.createTempVariable(v);return e.createLogicalAnd(e.createLogicalAnd(a.left,e.createStrictInequality(e.createAssignment(i,a.right),e.createVoidZero())),e.createPropertyAccess(i,t.right))}(n.typeName),a=e.createTempVariable(v);return e.createConditional(e.createTypeCheck(e.createAssignment(a,r),\"function\"),a,e.createIdentifier(\"Object\"));case e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue:return se(n.typeName);case e.TypeReferenceSerializationKind.VoidNullableOrNeverType:return e.createVoidZero();case e.TypeReferenceSerializationKind.BigIntLikeType:return le();case e.TypeReferenceSerializationKind.BooleanType:return e.createIdentifier(\"Boolean\");case e.TypeReferenceSerializationKind.NumberLikeType:return e.createIdentifier(\"Number\");case e.TypeReferenceSerializationKind.StringLikeType:return e.createIdentifier(\"String\");case e.TypeReferenceSerializationKind.ArrayLikeType:return e.createIdentifier(\"Array\");case e.TypeReferenceSerializationKind.ESSymbolType:return T<2?ce():e.createIdentifier(\"Symbol\");case e.TypeReferenceSerializationKind.TypeWithCallSignature:return e.createIdentifier(\"Function\");case e.TypeReferenceSerializationKind.Promise:return e.createIdentifier(\"Promise\");case e.TypeReferenceSerializationKind.ObjectType:return e.createIdentifier(\"Object\");default:return e.Debug.assertNever(t)}}(n);case 178:case 177:return ie(n.types);case 179:return ie([n.trueType,n.falseType]);case 183:if(137===n.operator)return ae(n.type);break;case 171:case 184:case 185:case 172:case 124:case 147:case 182:case 187:break;default:return e.Debug.failBadSyntaxKind(n)}return e.createIdentifier(\"Object\")}function ie(n){for(var t,r=0,a=n;r<a.length;r++){for(var i=a[r];181===i.kind;)i=i.type;if(136!==i.kind&&(E||99!==i.kind&&145!==i.kind)){var o=ae(i);if(e.isIdentifier(o)&&\"Object\"===o.escapedText)return o;if(t){if(!e.isIdentifier(t)||!e.isIdentifier(o)||t.escapedText!==o.escapedText)return e.createIdentifier(\"Object\")}else t=o}}return t||e.createVoidZero()}function oe(n,t){return e.createLogicalAnd(e.createStrictInequality(e.createTypeOf(n),e.createLiteral(\"undefined\")),t)}function se(n){switch(n.kind){case 75:var t=e.getMutableClone(n);return t.flags&=-9,t.original=void 0,t.parent=e.getParseTreeNode(c),t;case 152:return function(n){return e.createPropertyAccess(se(n.left),n.right)}(n)}}function ce(){return e.createConditional(e.createTypeCheck(e.createIdentifier(\"Symbol\"),\"function\"),e.createIdentifier(\"Symbol\"),e.createIdentifier(\"Object\"))}function le(){return T<99?e.createConditional(e.createTypeCheck(e.createIdentifier(\"BigInt\"),\"function\"),e.createIdentifier(\"BigInt\"),e.createIdentifier(\"Object\")):e.createIdentifier(\"BigInt\")}function ue(n,t){var r=n.name;return e.isComputedPropertyName(r)?t&&!e.isSimpleInlineableExpression(r.expression)?e.getGeneratedNameForNode(r):r.expression:e.isIdentifier(r)?e.createLiteral(e.idText(r)):e.getSynthesizedClone(r)}function de(n){var t=n.name;if(e.isComputedPropertyName(t)&&(!e.hasStaticModifier(n)&&d||e.some(n.decorators))){var r=e.visitNode(t.expression,D,e.isExpression),a=e.skipPartiallyEmittedExpressions(r);if(!e.isSimpleInlineableExpression(a)){var i=e.getGeneratedNameForNode(t);return v(i),e.updateComputedPropertyName(t,e.createAssignment(i,r))}}return e.visitNode(t,D,e.isPropertyName)}function pe(n){return!e.nodeIsMissing(n.body)}function me(n){if(!(8388608&n.flags)){var t=e.updateProperty(n,void 0,e.visitNodes(n.modifiers,D,e.isModifier),de(n),void 0,void 0,e.visitNode(n.initializer,D));return t!==n&&(e.setCommentRange(t,n),e.setSourceMapRange(t,e.moveRangePastDecorators(n))),t}}function fe(t){if(pe(t))return e.updateConstructor(t,void 0,void 0,e.visitParameterList(t.parameters,D,n),function(t,r){var a=r&&e.filter(r.parameters,(function(n){return e.isParameterPropertyDeclaration(n,r)}));if(!e.some(a))return e.visitFunctionBody(t,D,n);var i,o=[];g(),i=e.addPrologueDirectivesAndInitialSuperCall(r,o,D),e.addRange(o,e.map(a,_e)),e.addRange(o,e.visitNodes(t.statements,D,e.isStatement,i)),o=e.mergeLexicalEnvironment(o,y());var s=e.createBlock(e.setTextRange(e.createNodeArray(o),t.statements),!0);return e.setTextRange(s,t),e.setOriginalNode(s,t),s}(t.body,t))}function _e(n){var t=n.name;if(e.isIdentifier(t)){var r=e.getMutableClone(t);e.setEmitFlags(r,1584);var a=e.getMutableClone(t);return e.setEmitFlags(a,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(e.createExpressionStatement(e.createAssignment(e.setTextRange(e.createPropertyAccess(e.createThis(),r),n.name),a)),n),e.moveRangePos(n,-1))))}}function ge(n){return!(e.nodeIsMissing(n.body)&&e.hasModifier(n,128))}function ye(t){var r=t.name;return e.isBindingPattern(r)?e.flattenDestructuringAssignment(t,D,n,0,!1,Pe):e.setTextRange(e.createAssignment(we(r),e.visitNode(t.initializer,D,e.isExpression)),t)}function ve(t){var r=ue(t,!1),a=function(t){var r=h.getConstantValue(t);return void 0!==r?e.createLiteral(r):(0==(8&p)&&(p|=8,n.enableSubstitution(75)),t.initializer?e.visitNode(t.initializer,D,e.isExpression):e.createVoidZero())}(t),i=e.createAssignment(e.createElementAccess(s,r),a),o=10===a.kind?i:e.createAssignment(e.createElementAccess(s,i),r);return e.setTextRange(e.createExpressionStatement(e.setTextRange(o,t)),t)}function he(n){return Ne(n)||Ie(n)&&S!==e.ModuleKind.ES2015&&S!==e.ModuleKind.ESNext&&S!==e.ModuleKind.System}function be(n){u||(u=e.createUnderscoreEscapedMap());var t=Ee(n);u.has(t)||u.set(t,n)}function Ee(n){return e.Debug.assertNode(n.name,e.isIdentifier),n.name.escapedText}function Te(n,t){var r=e.createVariableStatement(e.visitNodes(t.modifiers,w,e.isModifier),e.createVariableDeclarationList([e.createVariableDeclaration(e.getLocalName(t,!1,!0))],288===c.kind?0:1));if(e.setOriginalNode(r,t),be(t),function(e){if(u){var n=Ee(e);return u.get(n)===e}return!0}(t))return 247===t.kind?e.setSourceMapRange(r.declarationList,t):e.setSourceMapRange(r,t),e.setCommentRange(r,t),e.addEmitFlags(r,4195328),n.push(r),!0;var a=e.createMergeDeclarationMarker(r);return e.setEmitFlags(a,4195840),n.push(a),!1}function Se(r){if(!function(n){var t=e.getParseTreeNode(n,e.isModuleDeclaration);return!t||e.isInstantiatedModule(t,!!b.preserveConstEnums||!!b.isolatedModules)}(r))return e.createNotEmittedStatement(r);e.Debug.assertNode(r.name,e.isIdentifier,\"A TypeScript namespace should have an Identifier name.\"),0==(2&p)&&(p|=2,n.enableSubstitution(75),n.enableSubstitution(280),n.enableEmitNotification(248));var a=[],i=2,l=Te(a,r);l&&(S===e.ModuleKind.System&&c===t||(i|=512));var d=Fe(r),m=Ge(r),f=e.hasModifier(r,1)?e.getExternalModuleOrNamespaceExportName(s,r,!1,!0):e.getLocalName(r,!1,!0),g=e.createLogicalOr(f,e.createAssignment(f,e.createObjectLiteral()));if(he(r)){var v=e.getLocalName(r,!1,!0);g=e.createAssignment(v,g)}var h=e.createExpressionStatement(e.createCall(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,d)],void 0,function(n,t){var r=s,a=o,i=u;s=t,o=n,u=void 0;var c,l,d=[];_();var p=n.body;if(249===p.kind)A(p,(function(n){return e.addRange(d,e.visitNodes(n.statements,M,e.isStatement))})),c=p.statements,l=p;else{var m=Se(p);m&&(e.isArray(m)?e.addRange(d,m):d.push(m));var f=function e(n){if(248===n.body.kind){return e(n.body)||n.body}}(n).body;c=e.moveRangePos(f.statements,-1)}e.insertStatementsAfterStandardPrologue(d,y()),s=r,o=a,u=i;var g=e.createBlock(e.setTextRange(e.createNodeArray(d),c),!0);e.setTextRange(g,l),249!==p.kind&&e.setEmitFlags(g,1536|e.getEmitFlags(g));return g}(r,m)),void 0,[g]));return e.setOriginalNode(h,r),l&&(e.setSyntheticLeadingComments(h,void 0),e.setSyntheticTrailingComments(h,void 0)),e.setTextRange(h,r),e.addEmitFlags(h,i),a.push(h),a.push(e.createEndOfDeclarationMarker(r)),a}function xe(n){var t=h.isReferencedAliasDeclaration(n)?n.name:void 0,r=e.visitNode(n.namedBindings,Le,e.isNamedImportBindings);return t||r?e.updateImportClause(n,t,r):void 0}function Le(n){if(255===n.kind)return h.isReferencedAliasDeclaration(n)?n:void 0;var t=e.visitNodes(n.elements,Ce,e.isImportSpecifier);return e.some(t)?e.updateNamedImports(n,t):void 0}function Ce(e){return h.isReferencedAliasDeclaration(e)?e:void 0}function Ae(n){var t=e.visitNodes(n.elements,De,e.isExportSpecifier);return e.some(t)?e.updateNamedExports(n,t):void 0}function De(e){return h.isValueAliasDeclaration(e)?e:void 0}function ke(r){if(e.isExternalModuleImportEqualsDeclaration(r))return h.isReferencedAliasDeclaration(r)?e.visitEachChild(r,D,n):void 0;if(function(n){return h.isReferencedAliasDeclaration(n)||!e.isExternalModule(t)&&h.isTopLevelValueImportEqualsWithEntityName(n)}(r)){var a,i,o,c=e.createExpressionFromEntityName(r.moduleReference);return e.setEmitFlags(c,3584),Me(r)||!Ne(r)?e.setOriginalNode(e.setTextRange(e.createVariableStatement(e.visitNodes(r.modifiers,w,e.isModifier),e.createVariableDeclarationList([e.setOriginalNode(e.createVariableDeclaration(r.name,void 0,c),r)])),r),r):e.setOriginalNode((a=r.name,i=c,o=r,e.setTextRange(e.createExpressionStatement(e.createAssignment(e.getNamespaceMemberName(s,a,!1,!0),i)),o)),r)}}function Ne(n){return void 0!==o&&e.hasModifier(n,1)}function Ie(n){return void 0===o&&e.hasModifier(n,1)}function Me(n){return Ie(n)&&!e.hasModifier(n,512)}function Oe(n){return e.createExpressionStatement(n)}function Re(n,t){var r=e.createAssignment(e.getExternalModuleOrNamespaceExportName(s,t,!1,!0),e.getLocalName(t));e.setSourceMapRange(r,e.createRange(t.name?t.name.pos:t.pos,t.end));var a=e.createExpressionStatement(r);e.setSourceMapRange(a,e.createRange(-1,t.end)),n.push(a)}function Pe(n,t,r){return e.setTextRange(e.createAssignment(we(n),t),r)}function we(n){return e.getNamespaceMemberName(s,n,!1,!0)}function Fe(n){var t=e.getGeneratedNameForNode(n);return e.setSourceMapRange(t,n.name),t}function Ge(n){return e.getGeneratedNameForNode(n)}function Be(n){if(p&f&&!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var t=h.getReferencedExportContainer(n,!1);if(t&&288!==t.kind)if(2&f&&248===t.kind||8&f&&247===t.kind)return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(t),n),n)}}function Ve(n){var t=function(n){if(b.isolatedModules)return;return e.isPropertyAccessExpression(n)||e.isElementAccessExpression(n)?h.getConstantValue(n):void 0}(n);if(void 0!==t){e.setConstantValue(n,t);var r=e.createLiteral(t);if(!b.removeComments){var a=e.getOriginalNode(n,e.isAccessExpression),i=e.isPropertyAccessExpression(a)?e.declarationNameToString(a.name):e.getTextOfNode(a.argumentExpression);e.addSyntheticTrailingComment(r,3,\" \"+i+\" \")}return r}return n}},e.decorateHelper={name:\"typescript:decorate\",importName:\"__decorate\",scoped:!1,priority:2,text:'\\n            var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\\n                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\n                if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\\n                else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\n                return c > 3 && r && Object.defineProperty(target, key, r), r;\\n            };'},e.metadataHelper={name:\"typescript:metadata\",importName:\"__metadata\",scoped:!1,priority:3,text:'\\n            var __metadata = (this && this.__metadata) || function (k, v) {\\n                if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\\n            };'},e.paramHelper={name:\"typescript:param\",importName:\"__param\",scoped:!1,priority:4,text:\"\\n            var __param = (this && this.__param) || function (paramIndex, decorator) {\\n                return function (target, key) { decorator(target, key, paramIndex); }\\n            };\"}}(ts||(ts={})),function(e){var n;!function(e){e[e.ClassAliases=1]=\"ClassAliases\"}(n||(n={})),e.transformClassFields=function(n){var t,r,a,i,o=n.hoistVariableDeclaration,s=n.endLexicalEnvironment,c=n.resumeLexicalEnvironment,l=n.getEmitResolver(),u=n.onSubstituteNode;return n.onSubstituteNode=function(n,a){if(a=u(n,a),1===n)return function(n){switch(n.kind){case 75:return function(n){return function(n){if(1&t&&33554432&l.getNodeCheckFlags(n)){var a=l.getReferencedValueDeclaration(n);if(a){var i=r[a.id];if(i){var o=e.getSynthesizedClone(i);return e.setSourceMapRange(o,n),e.setCommentRange(o,n),o}}}return}(n)||n}(n)}return n}(a);return a},e.chainBundle((function(t){var r=n.getCompilerOptions();if(t.isDeclarationFile||r.useDefineForClassFields&&99===r.target)return t;var a=e.visitEachChild(t,d,n);return e.addEmitHelpers(a,n.readEmitHelpers()),a}));function d(s){if(!(1048576&s.transformFlags))return s;switch(s.kind){case 213:return function(s){if(!e.forEach(s.members,e.isPropertyDeclaration))return e.visitEachChild(s,d,n);var c=a;a=void 0;var u=e.isClassDeclaration(e.getOriginalNode(s)),p=e.getProperties(s,!0,!0),g=e.getEffectiveBaseTypeNode(s),y=!(!g||99===e.skipOuterExpressions(g.expression).kind),v=e.updateClassExpression(s,s.modifiers,s.name,void 0,e.visitNodes(s.heritageClauses,d,e.isHeritageClause),m(s,y));if(e.some(p)||e.some(a)){if(u)return e.Debug.assertDefined(i,\"Decorated classes transformed by TypeScript are expected to be within a variable declaration.\"),i&&a&&e.some(a)&&i.push(e.createExpressionStatement(e.inlineExpressions(a))),a=c,i&&e.some(p)&&f(i,p,e.getInternalName(s)),v;var h=[],b=16777216&l.getNodeCheckFlags(s),E=e.createTempVariable(o,!!b);if(b){0==(1&t)&&(t|=1,n.enableSubstitution(75),r=[]);var T=e.getSynthesizedClone(E);T.autoGenerateFlags&=-9,r[e.getOriginalNodeId(s)]=T}return e.setEmitFlags(v,65536|e.getEmitFlags(v)),h.push(e.startOnNewLine(e.createAssignment(E,v))),e.addRange(h,e.map(a,e.startOnNewLine)),e.addRange(h,function(n,t){for(var r=[],a=0,i=n;a<i.length;a++){var o=i[a],s=_(o,t);e.startOnNewLine(s),e.setSourceMapRange(s,e.moveRangePastModifiers(o)),e.setCommentRange(s,o),e.setOriginalNode(s,o),r.push(s)}return r}(p,E)),h.push(e.startOnNewLine(E)),a=c,e.inlineExpressions(h)}return a=c,v}(s);case 244:return function(t){if(!e.forEach(t.members,e.isPropertyDeclaration))return e.visitEachChild(t,d,n);var r=a;a=void 0;var i=e.getEffectiveBaseTypeNode(t),o=!(!i||99===e.skipOuterExpressions(i.expression).kind),s=[e.updateClassDeclaration(t,void 0,t.modifiers,t.name,void 0,e.visitNodes(t.heritageClauses,d,e.isHeritageClause),m(t,o))];e.some(a)&&s.push(e.createExpressionStatement(e.inlineExpressions(a)));a=r;var c=e.getProperties(t,!0,!0);e.some(c)&&f(s,c,e.getInternalName(t));return s}(s);case 224:return function(t){var r=i;i=[];var a=e.visitEachChild(t,d,n),o=e.some(i)?__spreadArrays([a],i):a;return i=r,o}(s)}return e.visitEachChild(s,d,n)}function p(t){switch(t.kind){case 161:return;case 162:case 163:case 160:return e.visitEachChild(t,p,n);case 158:return function(t){e.Debug.assert(!e.some(t.decorators));var r=function(n,t){if(e.isComputedPropertyName(n)){var r=e.visitNode(n.expression,d,e.isExpression),a=e.skipPartiallyEmittedExpressions(r),i=e.isSimpleInlineableExpression(a);if(!(e.isAssignmentExpression(a)&&e.isGeneratedIdentifier(a.left))&&!i&&t){var s=e.getGeneratedNameForNode(n);return o(s),e.createAssignment(s,r)}return i||e.isIdentifier(a)?void 0:r}}(t.name,!!t.initializer||!!n.getCompilerOptions().useDefineForClassFields);r&&!e.isSimpleInlineableExpression(r)&&(a||(a=[])).push(r);return}(t);case 153:return function(t){var r=e.visitEachChild(t,d,n);if(e.some(a)){var i=a;i.push(t.expression),a=[],r=e.updateComputedPropertyName(r,e.inlineExpressions(i))}return r}(t);case 221:return t;default:return d(t)}}function m(t,r){var a=[],i=function(t,r){var a=e.visitNode(e.getFirstConstructorWithBody(t),d,e.isConstructorDeclaration);if(!e.forEach(t.members,(function(t){return e.isInitializedProperty(t,!n.getCompilerOptions().useDefineForClassFields)})))return a;var i=e.visitParameterList(a?a.parameters:void 0,d,n),o=function(t,r,a){var i,o=n.getCompilerOptions().useDefineForClassFields,l=e.getProperties(t,!o,!1);if(!r&&!e.some(l))return e.visitFunctionBody(void 0,d,n);c();var u=0,p=[];!r&&a&&p.push(e.createExpressionStatement(e.createCall(e.createSuper(),void 0,[e.createSpread(e.createIdentifier(\"arguments\"))])));r&&(u=e.addPrologueDirectivesAndInitialSuperCall(r,p,d));if(null===(i=r)||void 0===i?void 0:i.body){var m=e.findIndex(r.body.statements,(function(n){return!e.isParameterPropertyDeclaration(e.getOriginalNode(n),r)}),u);-1===m&&(m=r.body.statements.length),m>u&&(o||e.addRange(p,e.visitNodes(r.body.statements,d,e.isStatement,u,m-u)),u=m)}f(p,l,e.createThis()),r&&e.addRange(p,e.visitNodes(r.body.statements,d,e.isStatement,u));return p=e.mergeLexicalEnvironment(p,s()),e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(p),r?r.body.statements:t.members),!0),r?r.body:void 0)}(t,a,r);if(!o)return;return e.startOnNewLine(e.setOriginalNode(e.setTextRange(e.createConstructor(void 0,void 0,i,o),a||t),a))}(t,r);return i&&a.push(i),e.addRange(a,e.visitNodes(t.members,p,e.isClassElement)),e.setTextRange(e.createNodeArray(a),t.members)}function f(n,t,r){for(var a=0,i=t;a<i.length;a++){var o=i[a],s=e.createExpressionStatement(_(o,r));e.setSourceMapRange(s,e.moveRangePastModifiers(o)),e.setCommentRange(s,o),e.setOriginalNode(s,o),n.push(s)}}function _(t,r){var a=!n.getCompilerOptions().useDefineForClassFields,i=e.isComputedPropertyName(t.name)&&!e.isSimpleInlineableExpression(t.name.expression)?e.updateComputedPropertyName(t.name,e.getGeneratedNameForNode(t.name)):t.name,o=t.initializer||a?e.visitNode(t.initializer,d,e.isExpression):e.hasModifier(e.getOriginalNode(t),92)&&e.isIdentifier(i)?i:e.createVoidZero();if(a){var s=e.createMemberAccessForPropertyName(r,i,i);return e.createAssignment(s,o)}var c=e.isComputedPropertyName(i)?i.expression:e.isIdentifier(i)?e.createStringLiteral(e.unescapeLeadingUnderscores(i.escapedText)):i,l=e.createPropertyDescriptor({value:o,configurable:!0,writable:!0,enumerable:!0});return e.createObjectDefinePropertyCall(r,c,l)}}}(ts||(ts={})),function(e){var n;function t(n,t,r){var a=0!=(4096&n.getNodeCheckFlags(t)),i=[];return r.forEach((function(n,t){var r=e.unescapeLeadingUnderscores(t),o=[];o.push(e.createPropertyAssignment(\"get\",e.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(e.createPropertyAccess(e.setEmitFlags(e.createSuper(),4),r),4)))),a&&o.push(e.createPropertyAssignment(\"set\",e.createArrowFunction(void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"v\",void 0,void 0,void 0)],void 0,void 0,e.createAssignment(e.setEmitFlags(e.createPropertyAccess(e.setEmitFlags(e.createSuper(),4),r),4),e.createIdentifier(\"v\"))))),i.push(e.createPropertyAssignment(r,e.createObjectLiteral(o)))})),e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_super\"),void 0,e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"create\"),void 0,[e.createNull(),e.createObjectLiteral(i,!0)]))],2))}function r(n,t,r,a,i){n.requestEmitHelper(e.awaiterHelper);var o=e.createFunctionExpression(void 0,e.createToken(41),void 0,void 0,[],void 0,i);return(o.emitNode||(o.emitNode={})).flags|=786432,e.createCall(e.getUnscopedHelperName(\"__awaiter\"),void 0,[t?e.createThis():e.createVoidZero(),r?e.createIdentifier(\"arguments\"):e.createVoidZero(),a?e.createExpressionFromEntityName(a):e.createVoidZero(),o])}!function(e){e[e.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"}(n||(n={})),e.transformES2017=function(n){var a,i,o,s,c,l=n.resumeLexicalEnvironment,u=n.endLexicalEnvironment,d=n.hoistVariableDeclaration,p=n.getEmitResolver(),m=n.getCompilerOptions(),f=e.getEmitScriptTarget(m),_=0,g=[],y=n.onEmitNode,v=n.onSubstituteNode;return n.onEmitNode=function(n,t,r){if(1&a&&function(e){var n=e.kind;return 244===n||161===n||160===n||162===n||163===n}(t)){var i=6144&p.getNodeCheckFlags(t);if(i!==_){var o=_;return _=i,y(n,t,r),void(_=o)}}else if(a&&g[e.getNodeId(t)]){o=_;return _=0,y(n,t,r),void(_=o)}y(n,t,r)},n.onSubstituteNode=function(n,t){if(t=v(n,t),1===n&&_)return function(n){switch(n.kind){case 193:return R(n);case 194:return P(n);case 195:return function(n){var t=n.expression;if(e.isSuperProperty(t)){var r=e.isPropertyAccessExpression(t)?R(t):P(t);return e.createCall(e.createPropertyAccess(r,\"call\"),void 0,__spreadArrays([e.createThis()],n.arguments))}return n}(n)}return n}(t);return t},e.chainBundle((function(t){if(t.isDeclarationFile)return t;c=e.isEffectiveStrictModeSourceFile(t,m);var r=e.visitEachChild(t,E,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function h(e,n){if(c){c=!1;var t=e(n);return c=!0,t}return e(n)}function b(t){return e.visitEachChild(t,E,n)}function E(t){if(0==(32&t.transformFlags))return t;switch(t.kind){case 125:return;case 205:return function(n){return e.setOriginalNode(e.setTextRange(e.createYield(void 0,e.visitNode(n.expression,E,e.isExpression)),n),n)}(t);case 160:return h(S,t);case 243:return h(x,t);case 200:return h(L,t);case 201:return function(t){return e.updateArrowFunction(t,e.visitNodes(t.modifiers,E,e.isModifier),void 0,e.visitParameterList(t.parameters,E,n),void 0,t.equalsGreaterThanToken,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}(t);case 193:return o&&e.isPropertyAccessExpression(t)&&101===t.expression.kind&&o.set(t.name.escapedText,!0),e.visitEachChild(t,E,n);case 194:return o&&101===t.expression.kind&&(s=!0),e.visitEachChild(t,E,n);case 162:case 163:case 161:case 244:case 213:return h(b,t);default:return e.visitEachChild(t,E,n)}}function T(t){if(e.isNodeWithPossibleHoistedDeclaration(t))switch(t.kind){case 224:return function(t){if(A(t.declarationList)){var r=D(t.declarationList,!1);return r?e.createExpressionStatement(r):void 0}return e.visitEachChild(t,E,n)}(t);case 229:return function(n){var t=n.initializer;return e.updateFor(n,A(t)?D(t,!1):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.condition,E,e.isExpression),e.visitNode(n.incrementor,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 230:return function(n){return e.updateForIn(n,A(n.initializer)?D(n.initializer,!0):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.expression,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 231:return function(n){return e.updateForOf(n,e.visitNode(n.awaitModifier,E,e.isToken),A(n.initializer)?D(n.initializer,!0):e.visitNode(n.initializer,E,e.isForInitializer),e.visitNode(n.expression,E,e.isExpression),e.visitNode(n.statement,T,e.isStatement,e.liftToBlock))}(t);case 278:return function(t){var r,a=e.createUnderscoreEscapedMap();if(C(t.variableDeclaration,a),a.forEach((function(n,t){i.has(t)&&(r||(r=e.cloneMap(i)),r.delete(t))})),r){var o=i;i=r;var s=e.visitEachChild(t,T,n);return i=o,s}return e.visitEachChild(t,T,n)}(t);case 222:case 236:case 250:case 275:case 276:case 239:case 227:case 228:case 226:case 235:case 237:return e.visitEachChild(t,T,n);default:return e.Debug.assertNever(t,\"Unhandled node.\")}return E(t)}function S(t){return e.updateMethod(t,void 0,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function x(t){return e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function L(t){return e.updateFunctionExpression(t,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&e.getFunctionFlags(t)?M(t):e.visitFunctionBody(t.body,E,n))}function C(n,t){var r=n.name;if(e.isIdentifier(r))t.set(r.escapedText,!0);else for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||C(o,t)}}function A(n){return!!n&&e.isVariableDeclarationList(n)&&!(3&n.flags)&&n.declarations.some(I)}function D(n,t){!function(n){e.forEach(n.declarations,k)}(n);var r=e.getInitializedVariables(n);return 0===r.length?t?e.visitNode(e.convertToAssignmentElementTarget(n.declarations[0].name),E,e.isExpression):void 0:e.inlineExpressions(e.map(r,N))}function k(n){var t=n.name;if(e.isIdentifier(t))d(t);else for(var r=0,a=t.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||k(i)}}function N(n){var t=e.setSourceMapRange(e.createAssignment(e.convertToAssignmentElementTarget(n.name),n.initializer),n);return e.visitNode(t,E,e.isExpression)}function I(n){var t=n.name;if(e.isIdentifier(t))return i.has(t.escapedText);for(var r=0,a=t.elements;r<a.length;r++){var o=a[r];if(!e.isOmittedExpression(o)&&I(o))return!0}return!1}function M(d){l();var m=e.getOriginalNode(d,e.isFunctionLike).type,_=f<2?function(n){var t=n&&e.getEntityNameFromTypeNode(n);if(t&&e.isEntityName(t)){var r=p.getTypeReferenceSerializationKind(t);if(r===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||r===e.TypeReferenceSerializationKind.Unknown)return t}return}(m):void 0,y=201===d.kind,v=0!=(8192&p.getNodeCheckFlags(d)),h=i;i=e.createUnderscoreEscapedMap();for(var b=0,T=d.parameters;b<T.length;b++){C(T[b],i)}var S,x=o,L=s;if(y||(o=e.createUnderscoreEscapedMap(),s=!1),y){var A=r(n,!c,v,_,O(d.body)),D=u();if(e.some(D)){R=e.convertToFunctionBody(A);S=e.updateBlock(R,e.setTextRange(e.createNodeArray(e.concatenate(D,R.statements)),R.statements))}else S=A}else{var k=[],N=e.addPrologue(k,d.body.statements,!1,E);k.push(e.createReturn(r(n,!c,v,_,O(d.body,N)))),e.insertStatementsAfterStandardPrologue(k,u());var I=f>=2&&6144&p.getNodeCheckFlags(d);if(I&&(0==(1&a)&&(a|=1,n.enableSubstitution(195),n.enableSubstitution(193),n.enableSubstitution(194),n.enableEmitNotification(244),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(161),n.enableEmitNotification(224)),e.hasEntries(o))){var M=t(p,d,o);g[e.getNodeId(M)]=!0,e.insertStatementsAfterStandardPrologue(k,[M])}var R=e.createBlock(k,!0);e.setTextRange(R,d.body),I&&s&&(4096&p.getNodeCheckFlags(d)?e.addEmitHelper(R,e.advancedAsyncSuperHelper):2048&p.getNodeCheckFlags(d)&&e.addEmitHelper(R,e.asyncSuperHelper)),S=R}return i=h,y||(o=x,s=L),S}function O(n,t){return e.isBlock(n)?e.updateBlock(n,e.visitNodes(n.statements,T,e.isStatement,t)):e.convertToFunctionBody(e.visitNode(n,T,e.isConciseBody))}function R(n){return 101===n.expression.kind?e.setTextRange(e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),n.name),n):n}function P(n){return 101===n.expression.kind?(t=n.argumentExpression,r=n,4096&_?e.setTextRange(e.createPropertyAccess(e.createCall(e.createFileLevelUniqueName(\"_superIndex\"),void 0,[t]),\"value\"),r):e.setTextRange(e.createCall(e.createFileLevelUniqueName(\"_superIndex\"),void 0,[t]),r)):n;var t,r}},e.createSuperAccessVariableStatement=t,e.awaiterHelper={name:\"typescript:awaiter\",importName:\"__awaiter\",scoped:!1,priority:5,text:'\\n            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\\n                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\n                return new (P || (P = Promise))(function (resolve, reject) {\\n                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\n                    function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\\n                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\n                    step((generator = generator.apply(thisArg, _arguments || [])).next());\\n                });\\n            };'},e.asyncSuperHelper={name:\"typescript:async-super\",scoped:!0,text:e.helperString(__makeTemplateObject([\"\\n            const \",\" = name => super[name];\"],[\"\\n            const \",\" = name => super[name];\"]),\"_superIndex\")},e.advancedAsyncSuperHelper={name:\"typescript:advanced-async-super\",scoped:!0,text:e.helperString(__makeTemplateObject([\"\\n            const \",\" = (function (geti, seti) {\\n                const cache = Object.create(null);\\n                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\\n            })(name => super[name], (name, value) => super[name] = value);\"],[\"\\n            const \",\" = (function (geti, seti) {\\n                const cache = Object.create(null);\\n                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\\n            })(name => super[name], (name, value) => super[name] = value);\"]),\"_superIndex\")}}(ts||(ts={})),function(e){var n;function t(n,t){return n.getCompilerOptions().target>=2?e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"assign\"),void 0,t):(n.requestEmitHelper(e.assignHelper),e.createCall(e.getUnscopedHelperName(\"__assign\"),void 0,t))}function r(n,t){return n.requestEmitHelper(e.awaitHelper),e.createCall(e.getUnscopedHelperName(\"__await\"),void 0,[t])}function a(n,t,r){return n.requestEmitHelper(e.asyncValues),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__asyncValues\"),void 0,[t]),r)}!function(e){e[e.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"}(n||(n={})),e.transformES2018=function(n){var i=n.resumeLexicalEnvironment,o=n.endLexicalEnvironment,s=n.hoistVariableDeclaration,c=n.getEmitResolver(),l=n.getCompilerOptions(),u=e.getEmitScriptTarget(l),d=n.onEmitNode;n.onEmitNode=function(n,t,r){if(1&m&&function(e){var n=e.kind;return 244===n||161===n||160===n||162===n||163===n}(t)){var a=6144&c.getNodeCheckFlags(t);if(a!==h){var i=h;return h=a,d(n,t,r),void(h=i)}}else if(m&&b[e.getNodeId(t)]){i=h;return h=0,d(n,t,r),void(h=i)}d(n,t,r)};var p=n.onSubstituteNode;n.onSubstituteNode=function(n,t){if(t=p(n,t),1===n&&h)return function(n){switch(n.kind){case 193:return B(n);case 194:return V(n);case 195:return function(n){var t=n.expression;if(e.isSuperProperty(t)){var r=e.isPropertyAccessExpression(t)?B(t):V(t);return e.createCall(e.createPropertyAccess(r,\"call\"),void 0,__spreadArrays([e.createThis()],n.arguments))}return n}(n)}return n}(t);return t};var m,f,_,g,y,v=!1,h=0,b=[];return e.chainBundle((function(t){if(t.isDeclarationFile)return t;v=!1,_=e.isEffectiveStrictModeSourceFile(t,l);var r=e.visitEachChild(t,E,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function E(e){return C(e,!1)}function T(e){return C(e,!0)}function S(e){if(125!==e.kind)return e}function x(e,n){if(_){_=!1;var t=e(n);return _=!0,t}return e(n)}function L(t){return e.visitEachChild(t,E,n)}function C(i,o){if(0==(16&i.transformFlags))return i;switch(i.kind){case 205:return function(t){if(2&f&&1&f)return e.setOriginalNode(e.setTextRange(e.createYield(r(n,e.visitNode(t.expression,E,e.isExpression))),t),t);return e.visitEachChild(t,E,n)}(i);case 211:return function(t){if(2&f&&1&f){if(t.asteriskToken){var i=e.visitNode(t.expression,E,e.isExpression);return e.setOriginalNode(e.setTextRange(e.createYield(r(n,e.updateYield(t,t.asteriskToken,function(n,t,r){return n.requestEmitHelper(e.awaitHelper),n.requestEmitHelper(e.asyncDelegator),e.setTextRange(e.createCall(e.getUnscopedHelperName(\"__asyncDelegator\"),void 0,[t]),r)}(n,a(n,i,i),i)))),t),t)}return e.setOriginalNode(e.setTextRange(e.createYield(k(t.expression?e.visitNode(t.expression,E,e.isExpression):e.createVoidZero())),t),t)}return e.visitEachChild(t,E,n)}(i);case 234:return function(t){if(2&f&&1&f)return e.updateReturn(t,k(t.expression?e.visitNode(t.expression,E,e.isExpression):e.createVoidZero()));return e.visitEachChild(t,E,n)}(i);case 237:return function(t){if(2&f){var r=e.unwrapInnermostStatementOfLabel(t);return 231===r.kind&&r.awaitModifier?D(r,t):e.restoreEnclosingLabel(e.visitEachChild(r,E,n),t)}return e.visitEachChild(t,E,n)}(i);case 192:return function(r){if(8192&r.transformFlags){var a=function(n){for(var t,r=[],a=0,i=n;a<i.length;a++){var o=i[a];if(281===o.kind){t&&(r.push(e.createObjectLiteral(t)),t=void 0);var s=o.expression;r.push(e.visitNode(s,E,e.isExpression))}else t=e.append(t,279===o.kind?e.createPropertyAssignment(o.name,e.visitNode(o.initializer,E,e.isExpression)):e.visitNode(o,E,e.isObjectLiteralElementLike))}t&&r.push(e.createObjectLiteral(t));return r}(r.properties);a.length&&192!==a[0].kind&&a.unshift(e.createObjectLiteral());var i=a[0];if(a.length>1){for(var o=1;o<a.length;o++)i=t(n,[i,a[o]]);return i}return t(n,a)}return e.visitEachChild(r,E,n)}(i);case 208:return function(t,r){if(e.isDestructuringAssignment(t)&&8192&t.left.transformFlags)return e.flattenDestructuringAssignment(t,E,n,1,!r);if(27===t.operatorToken.kind)return e.updateBinary(t,e.visitNode(t.left,T,e.isExpression),e.visitNode(t.right,r?T:E,e.isExpression));return e.visitEachChild(t,E,n)}(i,o);case 278:return function(t){if(t.variableDeclaration&&e.isBindingPattern(t.variableDeclaration.name)&&8192&t.variableDeclaration.name.transformFlags){var r=e.getGeneratedNameForNode(t.variableDeclaration.name),a=e.updateVariableDeclaration(t.variableDeclaration,t.variableDeclaration.name,void 0,r),i=e.flattenDestructuringBinding(a,E,n,1),o=e.visitNode(t.block,E,e.isBlock);return e.some(i)&&(o=e.updateBlock(o,__spreadArrays([e.createVariableStatement(void 0,i)],o.statements))),e.updateCatchClause(t,e.updateVariableDeclaration(t.variableDeclaration,r,void 0,void 0),o)}return e.visitEachChild(t,E,n)}(i);case 224:return function(t){if(e.hasModifier(t,1)){var r=v;v=!0;var a=e.visitEachChild(t,E,n);return v=r,a}return e.visitEachChild(t,E,n)}(i);case 241:return function(e){if(v){var n=v;v=!1;var t=A(e,!0);return v=n,t}return A(e,!1)}(i);case 231:return D(i,void 0);case 229:return function(n){return e.updateFor(n,e.visitNode(n.initializer,T,e.isForInitializer),e.visitNode(n.condition,E,e.isExpression),e.visitNode(n.incrementor,E,e.isExpression),e.visitNode(n.statement,E,e.isStatement))}(i);case 204:return function(t){return e.visitEachChild(t,T,n)}(i);case 161:return x(N,i);case 160:return x(O,i);case 162:return x(I,i);case 163:return x(M,i);case 243:return x(R,i);case 200:return x(P,i);case 201:return function(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateArrowFunction(t,t.modifiers,void 0,e.visitParameterList(t.parameters,E,n),void 0,t.equalsGreaterThanToken,F(t));return f=r,a}(i);case 155:return function(t){if(8192&t.transformFlags)return e.updateParameter(t,void 0,void 0,t.dotDotDotToken,e.getGeneratedNameForNode(t),void 0,void 0,e.visitNode(t.initializer,E,e.isExpression));return e.visitEachChild(t,E,n)}(i);case 225:return function(t){return e.visitEachChild(t,T,n)}(i);case 199:return function(t,r){return e.visitEachChild(t,r?T:E,n)}(i,o);case 193:return g&&e.isPropertyAccessExpression(i)&&101===i.expression.kind&&g.set(i.name.escapedText,!0),e.visitEachChild(i,E,n);case 194:return g&&101===i.expression.kind&&(y=!0),e.visitEachChild(i,E,n);case 244:case 213:return x(L,i);default:return e.visitEachChild(i,E,n)}}function A(t,r){return e.isBindingPattern(t.name)&&8192&t.name.transformFlags?e.flattenDestructuringBinding(t,E,n,1,void 0,r):e.visitEachChild(t,E,n)}function D(t,r){return 8192&t.initializer.transformFlags&&(t=function(n){var t=e.skipParentheses(n.initializer);if(e.isVariableDeclarationList(t)||e.isAssignmentPattern(t)){var r=void 0,a=void 0,i=e.createTempVariable(void 0),o=[e.createForOfBindingStatement(t,i)];return e.isBlock(n.statement)?(e.addRange(o,n.statement.statements),r=n.statement,a=n.statement.statements):n.statement&&(e.append(o,n.statement),r=n.statement,a=n.statement),e.updateForOf(n,n.awaitModifier,e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(i),n.initializer)],1),n.initializer),n.expression,e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(o),a),!0),r))}return n}(t)),t.awaitModifier?function(t,r){var i=e.visitNode(t.expression,E,e.isExpression),o=e.isIdentifier(i)?e.getGeneratedNameForNode(i):e.createTempVariable(void 0),c=e.isIdentifier(i)?e.getGeneratedNameForNode(o):e.createTempVariable(void 0),l=e.createUniqueName(\"e\"),u=e.getGeneratedNameForNode(l),d=e.createTempVariable(void 0),p=a(n,i,t.expression),m=e.createCall(e.createPropertyAccess(o,\"next\"),void 0,[]),f=e.createPropertyAccess(c,\"done\"),_=e.createPropertyAccess(c,\"value\"),g=e.createFunctionCall(d,o,[]);s(l),s(d);var y=e.setEmitFlags(e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(o,void 0,p),t.expression),e.createVariableDeclaration(c)]),t.expression),2097152),e.createComma(e.createAssignment(c,k(m)),e.createLogicalNot(f)),void 0,function(n,t){var r,a,i=e.createForOfBindingStatement(n.initializer,t),o=[e.visitNode(i,E,e.isStatement)],s=e.visitNode(n.statement,E,e.isStatement);e.isBlock(s)?(e.addRange(o,s.statements),r=s,a=s.statements):o.push(s);return e.setEmitFlags(e.setTextRange(e.createBlock(e.setTextRange(e.createNodeArray(o),a),!0),r),432)}(t,_)),t),256);return e.createTry(e.createBlock([e.restoreEnclosingLabel(y,r)]),e.createCatchClause(e.createVariableDeclaration(u),e.setEmitFlags(e.createBlock([e.createExpressionStatement(e.createAssignment(l,e.createObjectLiteral([e.createPropertyAssignment(\"error\",u)])))]),1)),e.createBlock([e.createTry(e.createBlock([e.setEmitFlags(e.createIf(e.createLogicalAnd(e.createLogicalAnd(c,e.createLogicalNot(f)),e.createAssignment(d,e.createPropertyAccess(o,\"return\"))),e.createExpressionStatement(k(g))),1)]),void 0,e.setEmitFlags(e.createBlock([e.setEmitFlags(e.createIf(l,e.createThrow(e.createPropertyAccess(l,\"error\"))),1)]),1))]))}(t,r):e.restoreEnclosingLabel(e.visitEachChild(t,E,n),r)}function k(t){return 1&f?e.createYield(void 0,r(n,t)):e.createAwait(t)}function N(t){var r=f;f=0;var a=e.updateConstructor(t,void 0,t.modifiers,e.visitParameterList(t.parameters,E,n),F(t));return f=r,a}function I(t){var r=f;f=0;var a=e.updateGetAccessor(t,void 0,t.modifiers,e.visitNode(t.name,E,e.isPropertyName),e.visitParameterList(t.parameters,E,n),void 0,F(t));return f=r,a}function M(t){var r=f;f=0;var a=e.updateSetAccessor(t,void 0,t.modifiers,e.visitNode(t.name,E,e.isPropertyName),e.visitParameterList(t.parameters,E,n),F(t));return f=r,a}function O(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateMethod(t,void 0,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,e.visitNode(t.name,E,e.isPropertyName),e.visitNode(void 0,E,e.isToken),void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function R(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateFunctionDeclaration(t,void 0,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function P(t){var r=f;f=e.getFunctionFlags(t);var a=e.updateFunctionExpression(t,1&f?e.visitNodes(t.modifiers,S,e.isModifier):t.modifiers,2&f?void 0:t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,E,n),void 0,2&f&&1&f?w(t):F(t));return f=r,a}function w(t){i();var r=[],a=e.addPrologue(r,t.body.statements,!1,E);G(r,t);var s=g,l=y;g=e.createUnderscoreEscapedMap(),y=!1;var d=e.createReturn(function(n,t,r){return n.requestEmitHelper(e.awaitHelper),n.requestEmitHelper(e.asyncGeneratorHelper),(t.emitNode||(t.emitNode={})).flags|=262144,e.createCall(e.getUnscopedHelperName(\"__asyncGenerator\"),void 0,[r?e.createThis():e.createVoidZero(),e.createIdentifier(\"arguments\"),t])}(n,e.createFunctionExpression(void 0,e.createToken(41),t.name&&e.getGeneratedNameForNode(t.name),void 0,[],void 0,e.updateBlock(t.body,e.visitLexicalEnvironment(t.body.statements,E,n,a))),!_)),p=u>=2&&6144&c.getNodeCheckFlags(t);if(p){0==(1&m)&&(m|=1,n.enableSubstitution(195),n.enableSubstitution(193),n.enableSubstitution(194),n.enableEmitNotification(244),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(161),n.enableEmitNotification(224));var f=e.createSuperAccessVariableStatement(c,t,g);b[e.getNodeId(f)]=!0,e.insertStatementsAfterStandardPrologue(r,[f])}r.push(d),e.insertStatementsAfterStandardPrologue(r,o());var v=e.updateBlock(t.body,r);return p&&y&&(4096&c.getNodeCheckFlags(t)?e.addEmitHelper(v,e.advancedAsyncSuperHelper):2048&c.getNodeCheckFlags(t)&&e.addEmitHelper(v,e.asyncSuperHelper)),g=s,y=l,v}function F(n){i();var t=0,r=[],a=e.visitNode(n.body,E,e.isConciseBody);e.isBlock(a)&&(t=e.addPrologue(r,a.statements,!1,E)),e.addRange(r,G(void 0,n));var s=o();if(t>0||e.some(r)||e.some(s)){var c=e.convertToFunctionBody(a,!0);return e.insertStatementsAfterStandardPrologue(r,s),e.addRange(r,c.statements.slice(t)),e.updateBlock(c,e.setTextRange(e.createNodeArray(r),c.statements))}return a}function G(t,r){for(var a=0,i=r.parameters;a<i.length;a++){var o=i[a];if(8192&o.transformFlags){var s=e.getGeneratedNameForNode(o),c=e.flattenDestructuringBinding(o,E,n,1,s,!1,!0);if(e.some(c)){var l=e.createVariableStatement(void 0,e.createVariableDeclarationList(c));e.setEmitFlags(l,1048576),t=e.append(t,l)}}}return t}function B(n){return 101===n.expression.kind?e.setTextRange(e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),n.name),n):n}function V(n){return 101===n.expression.kind?(t=n.argumentExpression,r=n,4096&h?e.setTextRange(e.createPropertyAccess(e.createCall(e.createIdentifier(\"_superIndex\"),void 0,[t]),\"value\"),r):e.setTextRange(e.createCall(e.createIdentifier(\"_superIndex\"),void 0,[t]),r)):n;var t,r}},e.assignHelper={name:\"typescript:assign\",importName:\"__assign\",scoped:!1,priority:1,text:\"\\n            var __assign = (this && this.__assign) || function () {\\n                __assign = Object.assign || function(t) {\\n                    for (var s, i = 1, n = arguments.length; i < n; i++) {\\n                        s = arguments[i];\\n                        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\\n                            t[p] = s[p];\\n                    }\\n                    return t;\\n                };\\n                return __assign.apply(this, arguments);\\n            };\"},e.createAssignHelper=t,e.awaitHelper={name:\"typescript:await\",importName:\"__await\",scoped:!1,text:\"\\n            var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\"},e.asyncGeneratorHelper={name:\"typescript:asyncGenerator\",importName:\"__asyncGenerator\",scoped:!1,text:'\\n            var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\\n                var g = generator.apply(thisArg, _arguments || []), i, q = [];\\n                return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\n                function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\n                function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\n                function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\n                function fulfill(value) { resume(\"next\", value); }\\n                function reject(value) { resume(\"throw\", value); }\\n                function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\n            };'},e.asyncDelegator={name:\"typescript:asyncDelegator\",importName:\"__asyncDelegator\",scoped:!1,text:'\\n            var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\\n                var i, p;\\n                return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\\n                function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\\n            };'},e.asyncValues={name:\"typescript:asyncValues\",importName:\"__asyncValues\",scoped:!1,text:'\\n            var __asyncValues = (this && this.__asyncValues) || function (o) {\\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\\n                var m = o[Symbol.asyncIterator], i;\\n                return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\n                function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\n                function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\n            };'}}(ts||(ts={})),function(e){e.transformES2019=function(n){return e.chainBundle((function(r){if(r.isDeclarationFile)return r;return e.visitEachChild(r,t,n)}));function t(r){if(0==(8&r.transformFlags))return r;switch(r.kind){case 278:return function(r){if(!r.variableDeclaration)return e.updateCatchClause(r,e.createVariableDeclaration(e.createTempVariable(void 0)),e.visitNode(r.block,t,e.isBlock));return e.visitEachChild(r,t,n)}(r);default:return e.visitEachChild(r,t,n)}}}}(ts||(ts={})),function(e){e.transformESNext=function(n){var t=n.hoistVariableDeclaration;return e.chainBundle((function(t){if(t.isDeclarationFile)return t;return e.visitEachChild(t,r,n)}));function r(a){if(0==(4&a.transformFlags))return a;switch(a.kind){case 193:case 194:case 195:if(32&a.flags){var o=i(a,!1);return e.Debug.assertNotNode(o,e.isSyntheticReference),o}return e.visitEachChild(a,r,n);case 208:return 60===a.operatorToken.kind?function(n){var a=[],i=e.visitNode(n.left,r,e.isExpression);if(!e.isIdentifier(i)){var o=e.createTempVariable(t);a.push(e.createAssignment(o,i)),i=o}return a.push(e.createParen(e.createConditional(function(n){return e.createBinary(e.createBinary(n,e.createToken(37),e.createNull()),e.createToken(55),e.createBinary(n,e.createToken(37),e.createVoidZero()))}(i),i,e.visitNode(n.right,r,e.isExpression)))),e.inlineExpressions(a)}(a):e.visitEachChild(a,r,n);default:return e.visitEachChild(a,r,n)}}function a(o,s){switch(o.kind){case 199:return function(n,t){var r=a(n.expression,t);return e.isSyntheticReference(r)?e.createSyntheticReferenceExpression(e.updateParen(n,r.expression),r.thisArg):e.updateParen(n,r)}(o,s);case 193:return function(n,a){if(e.isOptionalChain(n))return i(n,a);var o,s=e.visitNode(n.expression,r,e.isExpression);return e.Debug.assertNotNode(s,e.isSyntheticReference),a&&(o=e.createTempVariable(t),s=e.createParen(e.createAssignment(o,s))),s=e.updatePropertyAccess(n,s,e.visitNode(n.name,r,e.isIdentifier)),o?e.createSyntheticReferenceExpression(s,o):s}(o,s);case 194:return function(n,a){if(e.isOptionalChain(n))return i(n,a);var o,s=e.visitNode(n.expression,r,e.isExpression);return e.Debug.assertNotNode(s,e.isSyntheticReference),a&&(o=e.createTempVariable(t),s=e.createParen(e.createAssignment(o,s))),s=e.updateElementAccess(n,s,e.visitNode(n.argumentExpression,r,e.isExpression)),o?e.createSyntheticReferenceExpression(s,o):s}(o,s);case 195:return function(t,a){return e.isOptionalChain(t)?i(t,a):e.visitEachChild(t,r,n)}(o,s);default:return e.visitNode(o,r,e.isExpression)}}function i(n,i){for(var o,s=function(n){for(var t=[n];!n.questionDotToken&&!e.isTaggedTemplateExpression(n);)n=e.cast(n.expression,e.isOptionalChain),t.unshift(n);return{expression:n.expression,chain:t}}(n),c=s.expression,l=s.chain,u=a(c,e.isCallChain(l[0])),d=e.createTempVariable(t),p=e.isSyntheticReference(u)?u.thisArg:void 0,m=e.isSyntheticReference(u)?u.expression:u,f=d,_=0;_<l.length;_++){var g=l[_];switch(g.kind){case 193:_===l.length-1&&i&&(o=e.createTempVariable(t),f=e.createParen(e.createAssignment(o,f))),f=e.createPropertyAccess(f,e.visitNode(g.name,r,e.isIdentifier));break;case 194:_===l.length-1&&i&&(o=e.createTempVariable(t),f=e.createParen(e.createAssignment(o,f))),f=e.createElementAccess(f,e.visitNode(g.argumentExpression,r,e.isExpression));break;case 195:f=0===_&&p?e.createFunctionCall(f,p,e.visitNodes(g.arguments,r,e.isExpression)):e.createCall(f,void 0,e.visitNodes(g.arguments,r,e.isExpression))}e.setOriginalNode(f,g)}var y=e.createConditional(e.createLogicalOr(e.createStrictEquality(e.createAssignment(d,m),e.createNull()),e.createStrictEquality(d,e.createVoidZero())),e.createVoidZero(),f);return o?e.createSyntheticReferenceExpression(y,o):y}}}(ts||(ts={})),function(e){e.transformJsx=function(t){var r,a=t.getCompilerOptions();return e.chainBundle((function(n){if(n.isDeclarationFile)return n;r=n;var a=e.visitEachChild(n,i,t);return e.addEmitHelpers(a,t.readEmitHelpers()),a}));function i(n){return 2&n.transformFlags?function(n){switch(n.kind){case 264:return s(n,!1);case 265:return c(n,!1);case 268:return l(n,!1);case 274:return _(n);default:return e.visitEachChild(n,i,t)}}(n):n}function o(n){switch(n.kind){case 11:return function(n){var t=function(n){for(var t,r=0,a=-1,i=0;i<n.length;i++){var o=n.charCodeAt(i);e.isLineBreak(o)?(-1!==r&&-1!==a&&(t=m(t,n.substr(r,a-r+1))),r=-1):e.isWhiteSpaceSingleLine(o)||(a=i,-1===r&&(r=i))}return-1!==r?m(t,n.substr(r)):t}(n.text);return void 0===t?void 0:e.createLiteral(t)}(n);case 274:return _(n);case 264:return s(n,!0);case 265:return c(n,!0);case 268:return l(n,!0);default:return e.Debug.failBadSyntaxKind(n)}}function s(e,n){return u(e.openingElement,e.children,n,e)}function c(e,n){return u(e,void 0,n,e)}function l(n,i){return function(n,i,s,c){var l=e.createExpressionForJsxFragment(t.getEmitResolver().getJsxFactoryEntity(r),a.reactNamespace,e.mapDefined(i,o),n,c);s&&e.startOnNewLine(l);return l}(n.openingFragment,n.children,i,n)}function u(n,i,s,c){var l,u=function n(t){if(264===t.kind)return n(t.openingElement);var r=t.tagName;return e.isIdentifier(r)&&e.isIntrinsicJsxName(r.escapedText)?e.createLiteral(e.idText(r)):e.createExpressionFromEntityName(r)}(n),m=n.attributes.properties;if(0===m.length)l=e.createNull();else{var f=e.flatten(e.spanMap(m,e.isJsxSpreadAttribute,(function(n,t){return t?e.map(n,d):e.createObjectLiteral(e.map(n,p))})));e.isJsxSpreadAttribute(m[0])&&f.unshift(e.createObjectLiteral()),(l=e.singleOrUndefined(f))||(l=e.createAssignHelper(t,f))}var _=e.createExpressionForJsxElement(t.getEmitResolver().getJsxFactoryEntity(r),a.reactNamespace,u,l,e.mapDefined(i,o),n,c);return s&&e.startOnNewLine(_),_}function d(n){return e.visitNode(n.expression,i,e.isExpression)}function p(n){var t=function(n){var t=n.name,r=e.idText(t);return/^[A-Za-z_]\\w*$/.test(r)?t:e.createLiteral(r)}(n),a=function(n){if(void 0===n)return e.createTrue();if(10===n.kind){var t=e.createLiteral((a=n.text,((i=f(a))===a?void 0:i)||n.text));return t.singleQuote=void 0!==n.singleQuote?n.singleQuote:!e.isStringDoubleQuoted(n,r),e.setTextRange(t,n)}return 274===n.kind?void 0===n.expression?e.createTrue():_(n):e.Debug.failBadSyntaxKind(n);var a,i}(n.initializer);return e.createPropertyAssignment(t,a)}function m(e,n){var t=f(n);return void 0===e?t:e+\" \"+t}function f(e){return e.replace(/&((#((\\d+)|x([\\da-fA-F]+)))|(\\w+));/g,(function(e,t,r,a,i,o,s){if(i)return String.fromCharCode(parseInt(i,10));if(o)return String.fromCharCode(parseInt(o,16));var c=n.get(s);return c?String.fromCharCode(c):e}))}function _(n){return e.visitNode(n.expression,i,e.isExpression)}};var n=e.createMapFromTemplate({quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830})}(ts||(ts={})),function(e){e.transformES2016=function(n){var t=n.hoistVariableDeclaration;return e.chainBundle((function(t){if(t.isDeclarationFile)return t;return e.visitEachChild(t,r,n)}));function r(a){if(0==(64&a.transformFlags))return a;switch(a.kind){case 208:return function(a){switch(a.operatorToken.kind){case 66:return function(n){var a,i,o=e.visitNode(n.left,r,e.isExpression),s=e.visitNode(n.right,r,e.isExpression);if(e.isElementAccessExpression(o)){var c=e.createTempVariable(t),l=e.createTempVariable(t);a=e.setTextRange(e.createElementAccess(e.setTextRange(e.createAssignment(c,o.expression),o.expression),e.setTextRange(e.createAssignment(l,o.argumentExpression),o.argumentExpression)),o),i=e.setTextRange(e.createElementAccess(c,l),o)}else if(e.isPropertyAccessExpression(o)){c=e.createTempVariable(t);a=e.setTextRange(e.createPropertyAccess(e.setTextRange(e.createAssignment(c,o.expression),o.expression),o.name),o),i=e.setTextRange(e.createPropertyAccess(c,o.name),o)}else a=o,i=o;return e.setTextRange(e.createAssignment(a,e.createMathPow(i,s,n)),n)}(a);case 42:return function(n){var t=e.visitNode(n.left,r,e.isExpression),a=e.visitNode(n.right,r,e.isExpression);return e.createMathPow(t,a,n)}(a);default:return e.visitEachChild(a,r,n)}}(a);default:return e.visitEachChild(a,r,n)}}}}(ts||(ts={})),function(e){var n,t,r,a,i;!function(e){e[e.CapturedThis=1]=\"CapturedThis\",e[e.BlockScopedBindings=2]=\"BlockScopedBindings\"}(n||(n={})),function(e){e[e.Body=1]=\"Body\",e[e.Initializer=2]=\"Initializer\"}(t||(t={})),function(e){e[e.ToOriginal=0]=\"ToOriginal\",e[e.ToOutParameter=1]=\"ToOutParameter\"}(r||(r={})),function(e){e[e.Break=2]=\"Break\",e[e.Continue=4]=\"Continue\",e[e.Return=8]=\"Return\"}(a||(a={})),function(e){e[e.None=0]=\"None\",e[e.Function=1]=\"Function\",e[e.ArrowFunction=2]=\"ArrowFunction\",e[e.AsyncFunctionBody=4]=\"AsyncFunctionBody\",e[e.NonStaticClassElement=8]=\"NonStaticClassElement\",e[e.CapturesThis=16]=\"CapturesThis\",e[e.ExportedVariableStatement=32]=\"ExportedVariableStatement\",e[e.TopLevel=64]=\"TopLevel\",e[e.Block=128]=\"Block\",e[e.IterationStatement=256]=\"IterationStatement\",e[e.IterationStatementBlock=512]=\"IterationStatementBlock\",e[e.IterationContainer=1024]=\"IterationContainer\",e[e.ForStatement=2048]=\"ForStatement\",e[e.ForInOrForOfStatement=4096]=\"ForInOrForOfStatement\",e[e.ConstructorWithCapturedSuper=8192]=\"ConstructorWithCapturedSuper\",e[e.AncestorFactsMask=16383]=\"AncestorFactsMask\",e[e.BlockScopeIncludes=0]=\"BlockScopeIncludes\",e[e.BlockScopeExcludes=7104]=\"BlockScopeExcludes\",e[e.SourceFileIncludes=64]=\"SourceFileIncludes\",e[e.SourceFileExcludes=8064]=\"SourceFileExcludes\",e[e.FunctionIncludes=65]=\"FunctionIncludes\",e[e.FunctionExcludes=16286]=\"FunctionExcludes\",e[e.AsyncFunctionBodyIncludes=69]=\"AsyncFunctionBodyIncludes\",e[e.AsyncFunctionBodyExcludes=16278]=\"AsyncFunctionBodyExcludes\",e[e.ArrowFunctionIncludes=66]=\"ArrowFunctionIncludes\",e[e.ArrowFunctionExcludes=15232]=\"ArrowFunctionExcludes\",e[e.ConstructorIncludes=73]=\"ConstructorIncludes\",e[e.ConstructorExcludes=16278]=\"ConstructorExcludes\",e[e.DoOrWhileStatementIncludes=1280]=\"DoOrWhileStatementIncludes\",e[e.DoOrWhileStatementExcludes=0]=\"DoOrWhileStatementExcludes\",e[e.ForStatementIncludes=3328]=\"ForStatementIncludes\",e[e.ForStatementExcludes=5056]=\"ForStatementExcludes\",e[e.ForInOrForOfStatementIncludes=5376]=\"ForInOrForOfStatementIncludes\",e[e.ForInOrForOfStatementExcludes=3008]=\"ForInOrForOfStatementExcludes\",e[e.BlockIncludes=128]=\"BlockIncludes\",e[e.BlockExcludes=6976]=\"BlockExcludes\",e[e.IterationStatementBlockIncludes=512]=\"IterationStatementBlockIncludes\",e[e.IterationStatementBlockExcludes=7104]=\"IterationStatementBlockExcludes\",e[e.NewTarget=16384]=\"NewTarget\",e[e.CapturedLexicalThis=32768]=\"CapturedLexicalThis\",e[e.SubtreeFactsMask=-16384]=\"SubtreeFactsMask\",e[e.ArrowFunctionSubtreeExcludes=0]=\"ArrowFunctionSubtreeExcludes\",e[e.FunctionSubtreeExcludes=49152]=\"FunctionSubtreeExcludes\"}(i||(i={})),e.transformES2015=function(n){var t,r,a,i,o,s,c=n.startLexicalEnvironment,l=n.resumeLexicalEnvironment,u=n.endLexicalEnvironment,d=n.hoistVariableDeclaration,p=n.getCompilerOptions(),m=n.getEmitResolver(),f=n.onSubstituteNode,_=n.onEmitNode;return n.onEmitNode=function(n,t,r){if(1&s&&e.isFunctionLike(t)){var a=g(16286,8&e.getEmitFlags(t)?81:65);return _(n,t,r),void y(a,0,0)}_(n,t,r)},n.onSubstituteNode=function(n,t){if(t=f(n,t),1===n)return function(n){switch(n.kind){case 75:return function(n){if(2&s&&!e.isInternalName(n)){var t=m.getReferencedDeclarationWithCollidingName(n);if(t&&(!e.isClassLike(t)||!function(n,t){var r=e.getParseTreeNode(t);if(!r||r===n||r.end<=n.pos||r.pos>=n.end)return!1;var a=e.getEnclosingBlockScopeContainer(n);for(;r;){if(r===a||r===n)return!1;if(e.isClassElement(r)&&r.parent===n)return!0;r=r.parent}return!1}(t,n)))return e.setTextRange(e.getGeneratedNameForNode(e.getNameOfDeclaration(t)),n)}return n}(n);case 103:return function(n){if(1&s&&16&a)return e.setTextRange(e.createFileLevelUniqueName(\"_this\"),n);return n}(n)}return n}(t);if(e.isIdentifier(t))return function(n){if(2&s&&!e.isInternalName(n)){var t=e.getParseTreeNode(n,e.isIdentifier);if(t&&function(e){switch(e.parent.kind){case 190:case 244:case 247:case 241:return e.parent.name===e&&m.isDeclarationWithCollidingName(e.parent)}return!1}(t))return e.setTextRange(e.getGeneratedNameForNode(t),n)}return n}(t);return t},e.chainBundle((function(o){if(o.isDeclarationFile)return o;t=o,r=o.text;var s=function(n){var t=g(8064,64),r=[],a=[];c();var o=e.addStandardPrologue(r,n.statements,!1);o=e.addCustomPrologue(r,n.statements,o,h),e.addRange(a,e.visitNodes(n.statements,h,e.isStatement,o)),i&&a.push(e.createVariableStatement(void 0,e.createVariableDeclarationList(i)));return e.mergeLexicalEnvironment(r,u()),N(r,n),y(t,0,0),e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray(e.concatenate(r,a)),n.statements))}(o);return e.addEmitHelpers(s,n.readEmitHelpers()),t=void 0,r=void 0,i=void 0,a=0,s}));function g(e,n){var t=a;return a=16383&(a&~e|n),t}function y(e,n,t){a=-16384&(a&~n|t)|e}function v(e){return 0!=(8192&a)&&234===e.kind&&!e.expression}function h(r){return function(n){return 0!=(128&n.transformFlags)||void 0!==o||8192&a&&(e.isStatement(n)||222===n.kind)||e.isIterationStatement(n,!1)&&re(n)||0!=(33554432&e.getEmitFlags(n))}(r)?function(r){switch(r.kind){case 119:return;case 244:return function(n){var t=e.createVariableDeclaration(e.getLocalName(n,!0),void 0,T(n));e.setOriginalNode(t,n);var r=[],a=e.createVariableStatement(void 0,e.createVariableDeclarationList([t]));if(e.setOriginalNode(a,n),e.setTextRange(a,n),e.startOnNewLine(a),r.push(a),e.hasModifier(n,1)){var i=e.hasModifier(n,512)?e.createExportDefault(e.getLocalName(n)):e.createExternalModuleExport(e.getLocalName(n));e.setOriginalNode(i,a),r.push(i)}var o=e.getEmitFlags(n);0==(4194304&o)&&(r.push(e.createEndOfDeclarationMarker(n)),e.setEmitFlags(a,4194304|o));return e.singleOrMany(r)}(r);case 213:return function(e){return T(e)}(r);case 155:return function(n){return n.dotDotDotToken?void 0:e.isBindingPattern(n.name)?e.setOriginalNode(e.setTextRange(e.createParameter(void 0,void 0,void 0,e.getGeneratedNameForNode(n),void 0,void 0,void 0),n),n):n.initializer?e.setOriginalNode(e.setTextRange(e.createParameter(void 0,void 0,void 0,n.name,void 0,void 0,void 0),n),n):n}(r);case 243:return function(t){var r=o;o=void 0;var i=g(16286,65),s=e.visitParameterList(t.parameters,h,n),c=G(t),l=16384&a?e.getLocalName(t):t.name;return y(i,49152,0),o=r,e.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,h,e.isModifier),t.asteriskToken,l,void 0,s,void 0,c)}(r);case 201:return function(t){2048&t.transformFlags&&(a|=32768);var r=o;o=void 0;var i=g(15232,66),s=e.createFunctionExpression(void 0,void 0,void 0,void 0,e.visitParameterList(t.parameters,h,n),void 0,G(t));e.setTextRange(s,t),e.setOriginalNode(s,t),e.setEmitFlags(s,8),32768&a&&Ae();return y(i,0,0),o=r,s}(r);case 200:return function(t){var r=262144&e.getEmitFlags(t)?g(16278,69):g(16286,65),i=o;o=void 0;var s=e.visitParameterList(t.parameters,h,n),c=G(t),l=16384&a?e.getLocalName(t):t.name;return y(r,49152,0),o=i,e.updateFunctionExpression(t,void 0,t.asteriskToken,l,void 0,s,void 0,c)}(r);case 241:return j(r);case 75:return function(n){if(!o)return n;if(e.isGeneratedIdentifier(n))return n;if(\"arguments\"!==n.escapedText||!m.isArgumentsLocalBinding(n))return n;return o.argumentsName||(o.argumentsName=e.createUniqueName(\"arguments\"))}(r);case 242:return function(t){if(3&t.flags||65536&t.transformFlags){3&t.flags&&Ce();var r=e.flatMap(t.declarations,1&t.flags?U:j),a=e.createVariableDeclarationList(r);return e.setOriginalNode(a,t),e.setTextRange(a,t),e.setCommentRange(a,t),65536&t.transformFlags&&(e.isBindingPattern(t.declarations[0].name)||e.isBindingPattern(e.last(t.declarations).name))&&e.setSourceMapRange(a,function(n){for(var t=-1,r=-1,a=0,i=n;a<i.length;a++){var o=i[a];t=-1===t?o.pos:-1===o.pos?t:Math.min(t,o.pos),r=Math.max(r,o.end)}return e.createRange(t,r)}(r)),a}return e.visitEachChild(t,h,n)}(r);case 236:return function(t){if(void 0!==o){var r=o.allowedNonLabeledJumps;o.allowedNonLabeledJumps|=2;var a=e.visitEachChild(t,h,n);return o.allowedNonLabeledJumps=r,a}return e.visitEachChild(t,h,n)}(r);case 250:return function(t){var r=g(7104,0),a=e.visitEachChild(t,h,n);return y(r,0,0),a}(r);case 222:return function(t,r){if(r)return e.visitEachChild(t,h,n);var i=256&a?g(7104,512):g(6976,128),o=e.visitEachChild(t,h,n);return y(i,0,0),o}(r,!1);case 233:case 232:return function(t){if(o){var r=233===t.kind?2:4;if(!(t.label&&o.labels&&o.labels.get(e.idText(t.label))||!t.label&&o.allowedNonLabeledJumps&r)){var a=void 0,i=t.label;i?233===t.kind?(a=\"break-\"+i.escapedText,ue(o,!0,e.idText(i),a)):(a=\"continue-\"+i.escapedText,ue(o,!1,e.idText(i),a)):233===t.kind?(o.nonLocalJumps|=2,a=\"break\"):(o.nonLocalJumps|=4,a=\"continue\");var s=e.createLiteral(a);if(o.loopOutParameters.length){for(var c=o.loopOutParameters,l=void 0,u=0;u<c.length;u++){var d=ce(c[u],1);l=0===u?d:e.createBinary(l,27,d)}s=e.createBinary(l,27,s)}return e.createReturn(s)}}return e.visitEachChild(t,h,n)}(r);case 237:return function(n){o&&!o.labels&&(o.labels=e.createMap());var t=e.unwrapInnermostStatementOfLabel(n,o&&K);return e.isIterationStatement(t,!1)?function(e,n){switch(e.kind){case 227:case 228:return z(e,n);case 229:return q(e,n);case 230:return J(e,n);case 231:return X(e,n)}}(t,n):e.restoreEnclosingLabel(e.visitNode(t,h,e.isStatement,e.liftToBlock),n,o&&H)}(r);case 227:case 228:return z(r,void 0);case 229:return q(r,void 0);case 230:return J(r,void 0);case 231:return X(r,void 0);case 225:return function(t){switch(t.expression.kind){case 199:return e.updateExpressionStatement(t,B(t.expression,!1));case 208:return e.updateExpressionStatement(t,V(t.expression,!1))}return e.visitEachChild(t,h,n)}(r);case 192:return function(t){for(var r=t.properties,i=r.length,o=i,s=i,c=0;c<i;c++){var l=r[c];if(131072&l.transformFlags&&4&a&&c<s&&(s=c),153===l.name.kind){o=c;break}}if(o!==i){s<o&&(o=s);var u=e.createTempVariable(d),p=[],m=e.createAssignment(u,e.setEmitFlags(e.createObjectLiteral(e.visitNodes(r,h,e.isObjectLiteralElementLike,0,o),t.multiLine),65536));return t.multiLine&&e.startOnNewLine(m),p.push(m),function(n,t,r,a){for(var i=t.properties,o=i.length,s=a;s<o;s++){var c=i[s];switch(c.kind){case 162:case 163:var l=e.getAllAccessorDeclarations(t.properties,c);c===l.firstAccessor&&n.push(w(r,l,t,!!t.multiLine));break;case 160:n.push(_e(c,r,t,t.multiLine));break;case 279:n.push(me(c,r,t.multiLine));break;case 280:n.push(fe(c,r,t.multiLine));break;default:e.Debug.failBadSyntaxKind(t)}}}(p,t,u,o),p.push(t.multiLine?e.startOnNewLine(e.getMutableClone(u)):u),e.inlineExpressions(p)}return e.visitEachChild(t,h,n)}(r);case 278:return function(t){var r,a=g(7104,0);if(e.Debug.assert(!!t.variableDeclaration,\"Catch clause variable should always be present when downleveling ES2015.\"),e.isBindingPattern(t.variableDeclaration.name)){var i=e.createTempVariable(void 0),o=e.createVariableDeclaration(i);e.setTextRange(o,t.variableDeclaration);var s=e.flattenDestructuringBinding(t.variableDeclaration,h,n,0,i),c=e.createVariableDeclarationList(s);e.setTextRange(c,t.variableDeclaration);var l=e.createVariableStatement(void 0,c);r=e.updateCatchClause(t,o,(u=t.block,d=l,p=e.visitNodes(u.statements,h,e.isStatement),e.updateBlock(u,__spreadArrays([d],p))))}else r=e.visitEachChild(t,h,n);var u,d,p;return y(a,0,0),r}(r);case 280:return function(n){return e.setTextRange(e.createPropertyAssignment(n.name,e.getSynthesizedClone(n.name)),n)}(r);case 153:return function(t){return e.visitEachChild(t,h,n)}(r);case 191:return function(t){if(e.some(t.elements,e.isSpreadElement))return ye(t.elements,!0,!!t.multiLine,!!t.elements.hasTrailingComma);return e.visitEachChild(t,h,n)}(r);case 195:return function(n){if(33554432&e.getEmitFlags(n))return function(n){var t=e.cast(e.cast(e.skipOuterExpressions(n.expression),e.isArrowFunction).body,e.isBlock),r=function(n){return e.isVariableStatement(n)&&!!e.first(n.declarationList.declarations).initializer},a=e.visitNodes(t.statements,h,e.isStatement),i=e.filter(a,r),o=e.filter(a,(function(e){return!r(e)})),s=e.cast(e.first(i),e.isVariableStatement).declarationList.declarations[0],c=e.skipOuterExpressions(s.initializer),l=e.tryCast(c,e.isAssignmentExpression),u=e.cast(l?e.skipOuterExpressions(l.right):c,e.isCallExpression),d=e.cast(e.skipOuterExpressions(u.expression),e.isFunctionExpression),p=d.body.statements,m=0,f=-1,_=[];if(l){var g=e.tryCast(p[m],e.isExpressionStatement);g&&(_.push(g),m++),_.push(p[m]),m++,_.push(e.createExpressionStatement(e.createAssignment(l.left,e.cast(s.name,e.isIdentifier))))}for(;!e.isReturnStatement(e.elementAt(p,f));)f--;e.addRange(_,p,m,f),f<-1&&e.addRange(_,p,f+1);return e.addRange(_,o),e.addRange(_,i,1),e.recreateOuterExpressions(n.expression,e.recreateOuterExpressions(s.initializer,e.recreateOuterExpressions(l&&l.right,e.updateCall(u,e.recreateOuterExpressions(u.expression,e.updateFunctionExpression(d,void 0,void 0,void 0,void 0,d.parameters,void 0,e.updateBlock(d.body,_))),void 0,u.arguments))))}(n);var t=e.skipOuterExpressions(n.expression);if(101===t.kind||e.isSuperProperty(t)||e.some(n.arguments,e.isSpreadElement))return ge(n,!0);return e.updateCall(n,e.visitNode(n.expression,b,e.isExpression),void 0,e.visitNodes(n.arguments,h,e.isExpression))}(r);case 196:return function(t){if(e.some(t.arguments,e.isSpreadElement)){var r=e.createCallBinding(e.createPropertyAccess(t.expression,\"bind\"),d),a=r.target,i=r.thisArg;return e.createNew(e.createFunctionApply(e.visitNode(a,h,e.isExpression),i,ye(e.createNodeArray(__spreadArrays([e.createVoidZero()],t.arguments)),!1,!1,!1)),void 0,[])}return e.visitEachChild(t,h,n)}(r);case 199:return B(r,!0);case 208:return V(r,!0);case 14:case 15:case 16:case 17:return function(n){return e.setTextRange(e.createLiteral(n.text),n)}(r);case 10:return function(n){if(n.hasExtendedUnicodeEscape)return e.setTextRange(e.createLiteral(n.text),n);return n}(r);case 8:return function(n){if(384&n.numericLiteralFlags)return e.setTextRange(e.createNumericLiteral(n.text),n);return n}(r);case 197:return function(r){var a=e.visitNode(r.tag,h,e.isExpression),o=[void 0],s=[],c=[],l=r.template;if(e.isNoSubstitutionTemplateLiteral(l))s.push(e.createLiteral(l.text)),c.push(xe(l));else{s.push(e.createLiteral(l.head.text)),c.push(xe(l.head));for(var u=0,d=l.templateSpans;u<d.length;u++){var p=d[u];s.push(e.createLiteral(p.literal.text)),c.push(xe(p.literal)),o.push(e.visitNode(p.expression,h,e.isExpression))}}var m=function(n,t,r){return n.requestEmitHelper(e.templateObjectHelper),e.createCall(e.getUnscopedHelperName(\"__makeTemplateObject\"),void 0,[t,r])}(n,e.createArrayLiteral(s),e.createArrayLiteral(c));if(e.isExternalModule(t)){var f=e.createUniqueName(\"templateObject\");_=f,i=e.append(i,e.createVariableDeclaration(_)),o[0]=e.createLogicalOr(f,e.createAssignment(f,m))}else o[0]=m;var _;return e.createCall(a,void 0,o)}(r);case 210:return function(n){var t=[];(function(n,t){if(!function(n){return e.Debug.assert(0!==n.templateSpans.length),0!==n.head.text.length||0===n.templateSpans[0].literal.text.length}(t))return;n.push(e.createLiteral(t.head.text))})(t,n),function(n,t){for(var r=0,a=t.templateSpans;r<a.length;r++){var i=a[r];n.push(e.visitNode(i.expression,h,e.isExpression)),0!==i.literal.text.length&&n.push(e.createLiteral(i.literal.text))}}(t,n);var r=e.reduceLeft(t,e.createAdd);e.nodeIsSynthesized(r)&&(r.pos=n.pos,r.end=n.end);return r}(r);case 211:return function(t){return e.visitEachChild(t,h,n)}(r);case 212:return function(n){return e.visitNode(n.expression,h,e.isExpression)}(r);case 101:return Le(!1);case 103:return function(n){2&a&&(a|=32768);if(o)return 2&a?(o.containsLexicalThis=!0,n):o.thisName||(o.thisName=e.createUniqueName(\"this\"));return n}(r);case 218:return function(n){if(98===n.keywordToken&&\"target\"===n.name.escapedText)return a|=16384,e.createFileLevelUniqueName(\"_newTarget\");return n}(r);case 160:return function(n){e.Debug.assert(!e.isComputedPropertyName(n.name));var t=F(n,e.moveRangePos(n,-1),void 0,void 0);return e.setEmitFlags(t,512|e.getEmitFlags(t)),e.setTextRange(e.createPropertyAssignment(n.name,t),n)}(r);case 162:case 163:return function(t){e.Debug.assert(!e.isComputedPropertyName(t.name));var r=o;o=void 0;var a,i=g(16286,65),s=e.visitParameterList(t.parameters,h,n),c=G(t);a=162===t.kind?e.updateGetAccessor(t,t.decorators,t.modifiers,t.name,s,t.type,c):e.updateSetAccessor(t,t.decorators,t.modifiers,t.name,s,c);return y(i,49152,0),o=r,a}(r);case 224:return function(t){var r,a=g(0,e.hasModifier(t,1)?32:0);if(o&&0==(3&t.declarationList.flags)){for(var i=void 0,s=0,c=t.declarationList.declarations;s<c.length;s++){var l=c[s];if(ie(o,l),l.initializer){var u=void 0;e.isBindingPattern(l.name)?u=e.flattenDestructuringAssignment(l,h,n,0):(u=e.createBinary(l.name,62,e.visitNode(l.initializer,h,e.isExpression)),e.setTextRange(u,l)),i=e.append(i,u)}}r=i?e.setTextRange(e.createExpressionStatement(e.inlineExpressions(i)),t):void 0}else r=e.visitEachChild(t,h,n);return y(a,0,0),r}(r);case 234:return function(t){if(o)return o.nonLocalJumps|=8,v(t)&&(t=E(t)),e.createReturn(e.createObjectLiteral([e.createPropertyAssignment(e.createIdentifier(\"value\"),t.expression?e.visitNode(t.expression,h,e.isExpression):e.createVoidZero())]));if(v(t))return E(t);return e.visitEachChild(t,h,n)}(r);default:return e.visitEachChild(r,h,n)}}(r):r}function b(e){return 101===e.kind?Le(!0):h(e)}function E(n){return e.setOriginalNode(e.createReturn(e.createFileLevelUniqueName(\"_this\")),n)}function T(i){i.name&&Ce();var s=e.getClassExtendsHeritageElement(i),d=e.createFunctionExpression(void 0,void 0,void 0,void 0,s?[e.createParameter(void 0,void 0,void 0,e.createFileLevelUniqueName(\"_super\"))]:[],void 0,function(i,s){var d=[];c(),function(t,r,a){a&&t.push(e.setTextRange(e.createExpressionStatement(function(n,t){return n.requestEmitHelper(e.extendsHelper),e.createCall(e.getUnscopedHelperName(\"__extends\"),void 0,[t,e.createFileLevelUniqueName(\"_super\")])}(n,e.getInternalName(r))),a))}(d,i,s),function(t,r,i){var s=o;o=void 0;var c=g(16278,73),d=e.getFirstConstructorWithBody(r),p=function(n,t){if(!n||!t)return!1;if(e.some(n.parameters))return!1;var r=e.firstOrUndefined(n.body.statements);if(!r||!e.nodeIsSynthesized(r)||225!==r.kind)return!1;var a=r.expression;if(!e.nodeIsSynthesized(a)||195!==a.kind)return!1;var i=a.expression;if(!e.nodeIsSynthesized(i)||101!==i.kind)return!1;var o=e.singleOrUndefined(a.arguments);if(!o||!e.nodeIsSynthesized(o)||212!==o.kind)return!1;var s=o.expression;return e.isIdentifier(s)&&\"arguments\"===s.escapedText}(d,void 0!==i),m=e.createFunctionDeclaration(void 0,void 0,void 0,e.getInternalName(r),void 0,function(t,r){return e.visitParameterList(t&&!r?t.parameters:void 0,h,n)||[]}(d,p),void 0,function(n,t,r,i){var o=!!r&&99!==e.skipOuterExpressions(r.expression).kind;if(!n)return function(n,t){var r=[];l(),e.mergeLexicalEnvironment(r,u()),t&&r.push(e.createReturn(x()));var a=e.createNodeArray(r);e.setTextRange(a,n.members);var i=e.createBlock(a,!0);return e.setTextRange(i,n),e.setEmitFlags(i,1536),i}(t,o);var s=[],c=[];l();var d,p=0;i||(p=e.addStandardPrologue(s,n.body.statements,!1));C(c,n),k(c,n,i),i||(p=e.addCustomPrologue(c,n.body.statements,p,h));if(i)d=x();else if(o&&p<n.body.statements.length){var m=n.body.statements[p];e.isExpressionStatement(m)&&e.isSuperCall(m.expression)&&(d=function(e){return ge(e,!1)}(m.expression))}d&&(a|=8192,p++);if(e.addRange(c,e.visitNodes(n.body.statements,h,e.isStatement,p)),e.mergeLexicalEnvironment(s,u()),M(s,n,!1),o)if(!d||p!==n.body.statements.length||2048&n.body.transformFlags)I(c,n,d||S()),function n(t){if(234===t.kind)return!0;if(226===t.kind){var r=t;if(r.elseStatement)return n(r.thenStatement)&&n(r.elseStatement)}else if(222===t.kind){var a=e.lastOrUndefined(t.statements);if(a&&n(a))return!0}return!1}(n.body)||c.push(e.createReturn(e.createFileLevelUniqueName(\"_this\")));else{var f=e.cast(e.cast(d,e.isBinaryExpression).left,e.isCallExpression),_=e.createReturn(d);e.setCommentRange(_,e.getCommentRange(f)),e.setEmitFlags(f,1536),c.push(_)}else N(s,n);var g=e.createBlock(e.setTextRange(e.createNodeArray(e.concatenate(s,c)),n.body.statements),!0);return e.setTextRange(g,n.body),g}(d,r,i,p));e.setTextRange(m,d||r),i&&e.setEmitFlags(m,8);t.push(m),y(c,49152,0),o=s}(d,i,s),function(n,r){for(var a=0,i=r.members;a<i.length;a++){var o=i[a];switch(o.kind){case 221:n.push(O(o));break;case 160:n.push(R(De(r,o),o,r));break;case 162:case 163:var s=e.getAllAccessorDeclarations(r.members,o);o===s.firstAccessor&&n.push(P(De(r,o),s,r));break;case 161:break;default:e.Debug.failBadSyntaxKind(o,t&&t.fileName)}}}(d,i);var p=e.createTokenRange(e.skipTrivia(r,i.members.end),19),m=e.getInternalName(i),f=e.createPartiallyEmittedExpression(m);f.end=p.end,e.setEmitFlags(f,1536);var _=e.createReturn(f);_.pos=p.pos,e.setEmitFlags(_,1920),d.push(_),e.insertStatementsAfterStandardPrologue(d,u());var v=e.createBlock(e.setTextRange(e.createNodeArray(d),i.members),!0);return e.setEmitFlags(v,1536),v}(i,s));e.setEmitFlags(d,65536&e.getEmitFlags(i)|524288);var p=e.createPartiallyEmittedExpression(d);p.end=i.end,e.setEmitFlags(p,1536);var m=e.createPartiallyEmittedExpression(p);m.end=e.skipTrivia(r,i.pos),e.setEmitFlags(m,1536);var f=e.createParen(e.createCall(m,void 0,s?[e.visitNode(s.expression,h,e.isExpression)]:[]));return e.addSyntheticLeadingComment(f,3,\"* @class \"),f}function S(){return e.setEmitFlags(e.createThis(),4)}function x(){return e.createLogicalOr(e.createLogicalAnd(e.createStrictInequality(e.createFileLevelUniqueName(\"_super\"),e.createNull()),e.createFunctionApply(e.createFileLevelUniqueName(\"_super\"),S(),e.createIdentifier(\"arguments\"))),S())}function L(n){return void 0!==n.initializer||e.isBindingPattern(n.name)}function C(n,t){if(!e.some(t.parameters,L))return!1;for(var r=!1,a=0,i=t.parameters;a<i.length;a++){var o=i[a],s=o.name,c=o.initializer;o.dotDotDotToken||(e.isBindingPattern(s)?r=A(n,o,s,c)||r:c&&(D(n,o,s,c),r=!0))}return r}function A(t,r,a,i){return a.elements.length>0?(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(e.createVariableStatement(void 0,e.createVariableDeclarationList(e.flattenDestructuringBinding(r,h,n,0,e.getGeneratedNameForNode(r)))),1048576)),!0):!!i&&(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(e.createExpressionStatement(e.createAssignment(e.getGeneratedNameForNode(r),e.visitNode(i,h,e.isExpression))),1048576)),!0)}function D(n,t,r,a){a=e.visitNode(a,h,e.isExpression);var i=e.createIf(e.createTypeCheck(e.getSynthesizedClone(r),\"undefined\"),e.setEmitFlags(e.setTextRange(e.createBlock([e.createExpressionStatement(e.setEmitFlags(e.setTextRange(e.createAssignment(e.setEmitFlags(e.getMutableClone(r),48),e.setEmitFlags(a,1584|e.getEmitFlags(a))),t),1536))]),t),1953));e.startOnNewLine(i),e.setTextRange(i,t),e.setEmitFlags(i,1050528),e.insertStatementAfterCustomPrologue(n,i)}function k(t,r,a){var i=[],o=e.lastOrUndefined(r.parameters);if(!function(e,n){return!(!e||!e.dotDotDotToken||n)}(o,a))return!1;var s=75===o.name.kind?e.getMutableClone(o.name):e.createTempVariable(void 0);e.setEmitFlags(s,48);var c=75===o.name.kind?e.getSynthesizedClone(o.name):s,l=r.parameters.length-1,u=e.createLoopVariable();i.push(e.setEmitFlags(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(s,void 0,e.createArrayLiteral([]))])),o),1048576));var d=e.createFor(e.setTextRange(e.createVariableDeclarationList([e.createVariableDeclaration(u,void 0,e.createLiteral(l))]),o),e.setTextRange(e.createLessThan(u,e.createPropertyAccess(e.createIdentifier(\"arguments\"),\"length\")),o),e.setTextRange(e.createPostfixIncrement(u),o),e.createBlock([e.startOnNewLine(e.setTextRange(e.createExpressionStatement(e.createAssignment(e.createElementAccess(c,0===l?u:e.createSubtract(u,e.createLiteral(l))),e.createElementAccess(e.createIdentifier(\"arguments\"),u))),o))]));return e.setEmitFlags(d,1048576),e.startOnNewLine(d),i.push(d),75!==o.name.kind&&i.push(e.setEmitFlags(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList(e.flattenDestructuringBinding(o,h,n,0,c))),o),1048576)),e.insertStatementsAfterCustomPrologue(t,i),!0}function N(n,t){return!!(32768&a&&201!==t.kind)&&(I(n,t,e.createThis()),!0)}function I(n,t,r){Ae();var a=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_this\"),void 0,r)]));e.setEmitFlags(a,1050112),e.setSourceMapRange(a,t),e.insertStatementAfterCustomPrologue(n,a)}function M(n,t,r){if(16384&a){var i=void 0;switch(t.kind){case 201:return n;case 160:case 162:case 163:i=e.createVoidZero();break;case 161:i=e.createPropertyAccess(e.setEmitFlags(e.createThis(),4),\"constructor\");break;case 243:case 200:i=e.createConditional(e.createLogicalAnd(e.setEmitFlags(e.createThis(),4),e.createBinary(e.setEmitFlags(e.createThis(),4),97,e.getLocalName(t))),e.createPropertyAccess(e.setEmitFlags(e.createThis(),4),\"constructor\"),e.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(t)}var o=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createFileLevelUniqueName(\"_newTarget\"),void 0,i)]));e.setEmitFlags(o,1050112),r&&(n=n.slice()),e.insertStatementAfterCustomPrologue(n,o)}return n}function O(n){return e.setTextRange(e.createEmptyStatement(),n)}function R(t,r,a){var i,o=e.getCommentRange(r),s=e.getSourceMapRange(r),c=F(r,r,void 0,a);if(n.getCompilerOptions().useDefineForClassFields){var l=e.visitNode(r.name,h,e.isPropertyName),u=e.isComputedPropertyName(l)?l.expression:e.isIdentifier(l)?e.createStringLiteral(e.unescapeLeadingUnderscores(l.escapedText)):l;i=e.createObjectDefinePropertyCall(t,u,e.createPropertyDescriptor({value:c,enumerable:!1,writable:!0,configurable:!0}))}else{var d=e.createMemberAccessForPropertyName(t,e.visitNode(r.name,h,e.isPropertyName),r.name);i=e.createAssignment(d,c)}e.setEmitFlags(c,1536),e.setSourceMapRange(c,s);var p=e.setTextRange(e.createExpressionStatement(i),r);return e.setOriginalNode(p,r),e.setCommentRange(p,o),e.setEmitFlags(p,48),p}function P(n,t,r){var a=e.createExpressionStatement(w(n,t,r,!1));return e.setEmitFlags(a,1536),e.setSourceMapRange(a,e.getSourceMapRange(t.firstAccessor)),a}function w(n,t,r,a){var i=t.firstAccessor,o=t.getAccessor,s=t.setAccessor,c=e.getMutableClone(n);e.setEmitFlags(c,1568),e.setSourceMapRange(c,i.name);var l=e.createExpressionForPropertyName(e.visitNode(i.name,h,e.isPropertyName));e.setEmitFlags(l,1552),e.setSourceMapRange(l,i.name);var u=[];if(o){var d=F(o,void 0,void 0,r);e.setSourceMapRange(d,e.getSourceMapRange(o)),e.setEmitFlags(d,512);var p=e.createPropertyAssignment(\"get\",d);e.setCommentRange(p,e.getCommentRange(o)),u.push(p)}if(s){var m=F(s,void 0,void 0,r);e.setSourceMapRange(m,e.getSourceMapRange(s)),e.setEmitFlags(m,512);var f=e.createPropertyAssignment(\"set\",m);e.setCommentRange(f,e.getCommentRange(s)),u.push(f)}u.push(e.createPropertyAssignment(\"enumerable\",e.createTrue()),e.createPropertyAssignment(\"configurable\",e.createTrue()));var _=e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[c,l,e.createObjectLiteral(u,!0)]);return a&&e.startOnNewLine(_),_}function F(t,r,i,s){var c=o;o=void 0;var l=s&&e.isClassLike(s)&&!e.hasModifier(t,32)?g(16286,73):g(16286,65),u=e.visitParameterList(t.parameters,h,n),d=G(t);return 16384&a&&!i&&(243===t.kind||200===t.kind)&&(i=e.getGeneratedNameForNode(t)),y(l,49152,0),o=c,e.setOriginalNode(e.setTextRange(e.createFunctionExpression(void 0,t.asteriskToken,i,void 0,u,void 0,d),r),t)}function G(n){var r,a,i,o=!1,s=!1,c=[],d=[],p=n.body;if(l(),e.isBlock(p)&&(i=e.addStandardPrologue(c,p.statements,!1)),o=C(d,n)||o,o=k(d,n,!1)||o,e.isBlock(p))i=e.addCustomPrologue(d,p.statements,i,h),r=p.statements,e.addRange(d,e.visitNodes(p.statements,h,e.isStatement,i)),!o&&p.multiLine&&(o=!0);else{e.Debug.assert(201===n.kind),r=e.moveRangeEnd(p,-1);var m=n.equalsGreaterThanToken;e.nodeIsSynthesized(m)||e.nodeIsSynthesized(p)||(e.rangeEndIsOnSameLineAsRangeStart(m,p,t)?s=!0:o=!0);var f=e.visitNode(p,h,e.isExpression),_=e.createReturn(f);e.setTextRange(_,p),e.moveSyntheticComments(_,p),e.setEmitFlags(_,1440),d.push(_),a=p}if(e.mergeLexicalEnvironment(c,u()),M(c,n,!1),N(c,n),e.some(c)&&(o=!0),d.unshift.apply(d,c),e.isBlock(p)&&e.arrayIsEqualTo(d,p.statements))return p;var g=e.createBlock(e.setTextRange(e.createNodeArray(d),r),o);return e.setTextRange(g,n.body),!o&&s&&e.setEmitFlags(g,1),a&&e.setTokenSourceMapRange(g,19,a),e.setOriginalNode(g,n.body),g}function B(t,r){if(!r)switch(t.expression.kind){case 199:return e.updateParen(t,B(t.expression,!1));case 208:return e.updateParen(t,V(t.expression,!1))}return e.visitEachChild(t,h,n)}function V(t,r){return e.isDestructuringAssignment(t)?e.flattenDestructuringAssignment(t,h,n,0,r):e.visitEachChild(t,h,n)}function U(t){var r=t.name;if(e.isBindingPattern(r))return j(t);if(!t.initializer&&function(e){var n=m.getNodeCheckFlags(e),t=262144&n,r=524288&n;return!(0!=(64&a)||t&&r&&0!=(512&a))&&0==(4096&a)&&(!m.isDeclarationWithCollidingName(e)||r&&!t&&0==(6144&a))}(t)){var i=e.getMutableClone(t);return i.initializer=e.createVoidZero(),i}return e.visitEachChild(t,h,n)}function j(t){var r,a=g(32,0);return r=e.isBindingPattern(t.name)?e.flattenDestructuringBinding(t,h,n,0,void 0,0!=(32&a)):e.visitEachChild(t,h,n),y(a,0,0),r}function K(n){o.labels.set(e.idText(n.label),!0)}function H(n){o.labels.set(e.idText(n.label),!1)}function W(t,r,i,s,l){var d=g(t,r),p=function(t,r,i,s){if(!re(t)){var l=void 0;o&&(l=o.allowedNonLabeledJumps,o.allowedNonLabeledJumps=6);var d=s?s(t,r,void 0,i):e.restoreEnclosingLabel(e.visitEachChild(t,h,n),r,o&&H);return o&&(o.allowedNonLabeledJumps=l),d}var p=function(n){var t;switch(n.kind){case 229:case 230:case 231:var r=n.initializer;r&&242===r.kind&&(t=r)}var a=[],i=[];if(t&&3&e.getCombinedNodeFlags(t))for(var s=ne(n),c=0,l=t.declarations;c<l.length;c++){var u=l[c];pe(n,u,a,i,s)}var d={loopParameters:a,loopOutParameters:i};o&&(o.argumentsName&&(d.argumentsName=o.argumentsName),o.thisName&&(d.thisName=o.thisName),o.hoistedLocalVariables&&(d.hoistedLocalVariables=o.hoistedLocalVariables));return d}(t),m=[],f=o;o=p;var _,g=ne(t)?function(n,t){var r=e.createUniqueName(\"_loop_init\"),i=0!=(131072&n.initializer.transformFlags),o=0;t.containsLexicalThis&&(o|=8);i&&4&a&&(o|=262144);var s=[];s.push(e.createVariableStatement(void 0,n.initializer)),le(t.loopOutParameters,2,1,s);var c=e.createVariableStatement(void 0,e.setEmitFlags(e.createVariableDeclarationList([e.createVariableDeclaration(r,void 0,e.setEmitFlags(e.createFunctionExpression(void 0,i?e.createToken(41):void 0,void 0,void 0,void 0,void 0,e.visitNode(e.createBlock(s,!0),h,e.isBlock)),o))]),2097152)),l=e.createVariableDeclarationList(e.map(t.loopOutParameters,se));return{functionName:r,containsYield:i,functionDeclaration:c,part:l}}(t,p):void 0,y=ae(t)?function(n,t,r){var i=e.createUniqueName(\"_loop\");c();var o=e.visitNode(n.statement,h,e.isStatement,e.liftToBlock),s=u(),l=[];(te(n)||function(n){return e.isForStatement(n)&&!!n.incrementor&&ee(n.incrementor)}(n))&&(t.conditionVariable=e.createUniqueName(\"inc\"),l.push(e.createIf(t.conditionVariable,e.createStatement(e.visitNode(n.incrementor,h,e.isExpression)),e.createStatement(e.createAssignment(t.conditionVariable,e.createTrue())))),te(n)&&l.push(e.createIf(e.createPrefix(53,e.visitNode(n.condition,h,e.isExpression)),e.visitNode(e.createBreak(),h,e.isStatement))));e.isBlock(o)?e.addRange(l,o.statements):l.push(o);le(t.loopOutParameters,1,1,l),e.insertStatementsAfterStandardPrologue(l,s);var d=e.createBlock(l,!0);e.isBlock(o)&&e.setOriginalNode(d,o);var p=0!=(131072&n.statement.transformFlags),m=0;t.containsLexicalThis&&(m|=8);p&&0!=(4&a)&&(m|=262144);var f=e.createVariableStatement(void 0,e.setEmitFlags(e.createVariableDeclarationList([e.createVariableDeclaration(i,void 0,e.setEmitFlags(e.createFunctionExpression(void 0,p?e.createToken(41):void 0,void 0,void 0,t.loopParameters,void 0,d),m))]),2097152)),_=function(n,t,r,a){var i=[],o=!(-5&t.nonLocalJumps||t.labeledNonLocalBreaks||t.labeledNonLocalContinues),s=e.createCall(n,void 0,e.map(t.loopParameters,(function(e){return e.name}))),c=a?e.createYield(e.createToken(41),e.setEmitFlags(s,8388608)):s;if(o)i.push(e.createExpressionStatement(c)),le(t.loopOutParameters,1,0,i);else{var l=e.createUniqueName(\"state\"),u=e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(l,void 0,c)]));if(i.push(u),le(t.loopOutParameters,1,0,i),8&t.nonLocalJumps){var d=void 0;r?(r.nonLocalJumps|=8,d=e.createReturn(l)):d=e.createReturn(e.createPropertyAccess(l,\"value\")),i.push(e.createIf(e.createBinary(e.createTypeOf(l),36,e.createLiteral(\"object\")),d))}if(2&t.nonLocalJumps&&i.push(e.createIf(e.createBinary(l,36,e.createLiteral(\"break\")),e.createBreak())),t.labeledNonLocalBreaks||t.labeledNonLocalContinues){var p=[];de(t.labeledNonLocalBreaks,!0,l,r,p),de(t.labeledNonLocalContinues,!1,l,r,p),i.push(e.createSwitch(l,e.createCaseBlock(p)))}}return i}(i,t,r,p);return{functionName:i,containsYield:p,functionDeclaration:f,part:_}}(t,p,f):void 0;o=f,g&&m.push(g.functionDeclaration);y&&m.push(y.functionDeclaration);(function(n,t,r){var a;t.argumentsName&&(r?r.argumentsName=t.argumentsName:(a||(a=[])).push(e.createVariableDeclaration(t.argumentsName,void 0,e.createIdentifier(\"arguments\"))));t.thisName&&(r?r.thisName=t.thisName:(a||(a=[])).push(e.createVariableDeclaration(t.thisName,void 0,e.createIdentifier(\"this\"))));if(t.hoistedLocalVariables)if(r)r.hoistedLocalVariables=t.hoistedLocalVariables;else{a||(a=[]);for(var i=0,o=t.hoistedLocalVariables;i<o.length;i++){var s=o[i];a.push(e.createVariableDeclaration(s))}}if(t.loopOutParameters.length){a||(a=[]);for(var c=0,l=t.loopOutParameters;c<l.length;c++){var u=l[c];a.push(e.createVariableDeclaration(u.outParamName))}}t.conditionVariable&&(a||(a=[]),a.push(e.createVariableDeclaration(t.conditionVariable,void 0,e.createFalse())));a&&n.push(e.createVariableStatement(void 0,e.createVariableDeclarationList(a)))})(m,p,f),g&&m.push((v=g.functionName,b=g.containsYield,E=e.createCall(v,void 0,[]),T=b?e.createYield(e.createToken(41),e.setEmitFlags(E,8388608)):E,e.createStatement(T)));var v,b,E,T;if(y)if(s)_=s(t,r,y.part,i);else{var S=oe(t,g,e.createBlock(y.part,!0));e.aggregateTransformFlags(S),_=e.restoreEnclosingLabel(S,r,o&&H)}else{var x=oe(t,g,e.visitNode(t.statement,h,e.isStatement,e.liftToBlock));e.aggregateTransformFlags(x),_=e.restoreEnclosingLabel(x,r,o&&H)}return m.push(_),m}(i,s,d,l);return y(d,0,0),p}function z(e,n){return W(0,1280,e,n)}function q(e,n){return W(5056,3328,e,n)}function J(e,n){return W(3008,5376,e,n)}function X(e,n){return W(3008,5376,e,n,p.downlevelIteration?$:Z)}function Y(t,r,a){var i=[],o=t.initializer;if(e.isVariableDeclarationList(o)){3&t.initializer.flags&&Ce();var s=e.firstOrUndefined(o.declarations);if(s&&e.isBindingPattern(s.name)){var c=e.flattenDestructuringBinding(s,h,n,0,r),l=e.setTextRange(e.createVariableDeclarationList(c),t.initializer);e.setOriginalNode(l,t.initializer),e.setSourceMapRange(l,e.createRange(c[0].pos,e.last(c).end)),i.push(e.createVariableStatement(void 0,l))}else i.push(e.setTextRange(e.createVariableStatement(void 0,e.setOriginalNode(e.setTextRange(e.createVariableDeclarationList([e.createVariableDeclaration(s?s.name:e.createTempVariable(void 0),void 0,r)]),e.moveRangePos(o,-1)),o)),e.moveRangeEnd(o,-1)))}else{var u=e.createAssignment(o,r);e.isDestructuringAssignment(u)?(e.aggregateTransformFlags(u),i.push(e.createExpressionStatement(V(u,!1)))):(u.end=o.end,i.push(e.setTextRange(e.createExpressionStatement(e.visitNode(u,h,e.isExpression)),e.moveRangeEnd(o,-1))))}if(a)return Q(e.addRange(i,a));var d=e.visitNode(t.statement,h,e.isStatement,e.liftToBlock);return e.isBlock(d)?e.updateBlock(d,e.setTextRange(e.createNodeArray(e.concatenate(i,d.statements)),d.statements)):(i.push(d),Q(i))}function Q(n){return e.setEmitFlags(e.createBlock(e.createNodeArray(n),!0),432)}function Z(n,t,r){var a=e.visitNode(n.expression,h,e.isExpression),i=e.createLoopVariable(),s=e.isIdentifier(a)?e.getGeneratedNameForNode(a):e.createTempVariable(void 0);e.setEmitFlags(a,48|e.getEmitFlags(a));var c=e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(i,void 0,e.createLiteral(0)),e.moveRangePos(n.expression,-1)),e.setTextRange(e.createVariableDeclaration(s,void 0,a),n.expression)]),n.expression),2097152),e.setTextRange(e.createLessThan(i,e.createPropertyAccess(s,\"length\")),n.expression),e.setTextRange(e.createPostfixIncrement(i),n.expression),Y(n,e.createElementAccess(s,i),r)),n);return e.setEmitFlags(c,256),e.setTextRange(c,n),e.restoreEnclosingLabel(c,t,o&&H)}function $(t,r,a,i){var s=e.visitNode(t.expression,h,e.isExpression),c=e.isIdentifier(s)?e.getGeneratedNameForNode(s):e.createTempVariable(void 0),l=e.isIdentifier(s)?e.getGeneratedNameForNode(c):e.createTempVariable(void 0),u=e.createUniqueName(\"e\"),p=e.getGeneratedNameForNode(u),m=e.createTempVariable(void 0),f=e.createValuesHelper(n,s,t.expression),_=e.createCall(e.createPropertyAccess(c,\"next\"),void 0,[]);d(u),d(m);var g=1024&i?e.inlineExpressions([e.createAssignment(u,e.createVoidZero()),f]):f,y=e.setEmitFlags(e.setTextRange(e.createFor(e.setEmitFlags(e.setTextRange(e.createVariableDeclarationList([e.setTextRange(e.createVariableDeclaration(c,void 0,g),t.expression),e.createVariableDeclaration(l,void 0,_)]),t.expression),2097152),e.createLogicalNot(e.createPropertyAccess(l,\"done\")),e.createAssignment(l,_),Y(t,e.createPropertyAccess(l,\"value\"),a)),t),256);return e.createTry(e.createBlock([e.restoreEnclosingLabel(y,r,o&&H)]),e.createCatchClause(e.createVariableDeclaration(p),e.setEmitFlags(e.createBlock([e.createExpressionStatement(e.createAssignment(u,e.createObjectLiteral([e.createPropertyAssignment(\"error\",p)])))]),1)),e.createBlock([e.createTry(e.createBlock([e.setEmitFlags(e.createIf(e.createLogicalAnd(e.createLogicalAnd(l,e.createLogicalNot(e.createPropertyAccess(l,\"done\"))),e.createAssignment(m,e.createPropertyAccess(c,\"return\"))),e.createExpressionStatement(e.createFunctionCall(m,c,[]))),1)]),void 0,e.setEmitFlags(e.createBlock([e.setEmitFlags(e.createIf(u,e.createThrow(e.createPropertyAccess(u,\"error\"))),1)]),1))]))}function ee(e){return 0!=(131072&m.getNodeCheckFlags(e))}function ne(n){return e.isForStatement(n)&&!!n.initializer&&ee(n.initializer)}function te(n){return e.isForStatement(n)&&!!n.condition&&ee(n.condition)}function re(e){return ae(e)||ne(e)}function ae(e){return 0!=(65536&m.getNodeCheckFlags(e))}function ie(n,t){n.hoistedLocalVariables||(n.hoistedLocalVariables=[]),function t(r){if(75===r.kind)n.hoistedLocalVariables.push(r);else for(var a=0,i=r.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||t(o.name)}}(t.name)}function oe(n,t,r){switch(n.kind){case 229:return function(n,t,r){var a=n.condition&&ee(n.condition),i=a||n.incrementor&&ee(n.incrementor);return e.updateFor(n,e.visitNode(t?t.part:n.initializer,h,e.isForInitializer),e.visitNode(a?void 0:n.condition,h,e.isExpression),e.visitNode(i?void 0:n.incrementor,h,e.isExpression),r)}(n,t,r);case 230:return function(n,t){return e.updateForIn(n,e.visitNode(n.initializer,h,e.isForInitializer),e.visitNode(n.expression,h,e.isExpression),t)}(n,r);case 231:return function(n,t){return e.updateForOf(n,void 0,e.visitNode(n.initializer,h,e.isForInitializer),e.visitNode(n.expression,h,e.isExpression),t)}(n,r);case 227:return function(n,t){return e.updateDo(n,t,e.visitNode(n.expression,h,e.isExpression))}(n,r);case 228:return function(n,t){return e.updateWhile(n,e.visitNode(n.expression,h,e.isExpression),t)}(n,r);default:return e.Debug.failBadSyntaxKind(n,\"IterationStatement expected\")}}function se(n){return e.createVariableDeclaration(n.originalName,void 0,n.outParamName)}function ce(n,t){var r=0===t?n.outParamName:n.originalName,a=0===t?n.originalName:n.outParamName;return e.createBinary(a,62,r)}function le(n,t,r,a){for(var i=0,o=n;i<o.length;i++){var s=o[i];s.flags&t&&a.push(e.createExpressionStatement(ce(s,r)))}}function ue(n,t,r,a){t?(n.labeledNonLocalBreaks||(n.labeledNonLocalBreaks=e.createMap()),n.labeledNonLocalBreaks.set(r,a)):(n.labeledNonLocalContinues||(n.labeledNonLocalContinues=e.createMap()),n.labeledNonLocalContinues.set(r,a))}function de(n,t,r,a,i){n&&n.forEach((function(n,o){var s=[];if(!a||a.labels&&a.labels.get(o)){var c=e.createIdentifier(o);s.push(t?e.createBreak(c):e.createContinue(c))}else ue(a,t,o,n),s.push(e.createReturn(r));i.push(e.createCaseClause(e.createLiteral(n),s))}))}function pe(n,t,r,a,i){var o=t.name;if(e.isBindingPattern(o))for(var s=0,c=o.elements;s<c.length;s++){var l=c[s];e.isOmittedExpression(l)||pe(n,l,r,a,i)}else{r.push(e.createParameter(void 0,void 0,void 0,o));var u=m.getNodeCheckFlags(t);if(4194304&u||i){var d=e.createUniqueName(\"out_\"+e.idText(o)),p=0;4194304&u&&(p|=1),e.isForStatement(n)&&n.initializer&&m.isBindingCapturedByNode(n.initializer,t)&&(p|=2),a.push({flags:p,originalName:o,outParamName:d})}}}function me(n,t,r){var a=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),e.visitNode(n.initializer,h,e.isExpression));return e.setTextRange(a,n),r&&e.startOnNewLine(a),a}function fe(n,t,r){var a=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),e.getSynthesizedClone(n.name));return e.setTextRange(a,n),r&&e.startOnNewLine(a),a}function _e(n,t,r,a){var i=e.createAssignment(e.createMemberAccessForPropertyName(t,e.visitNode(n.name,h,e.isPropertyName)),F(n,n,void 0,r));return e.setTextRange(i,n),a&&e.startOnNewLine(i),i}function ge(t,r){if(4096&t.transformFlags||101===t.expression.kind||e.isSuperProperty(e.skipOuterExpressions(t.expression))){var a=e.createCallBinding(t.expression,d),i=a.target,o=a.thisArg;101===t.expression.kind&&e.setEmitFlags(o,4);var s=void 0;if(s=4096&t.transformFlags?e.createFunctionApply(e.visitNode(i,b,e.isExpression),101===t.expression.kind?o:e.visitNode(o,h,e.isExpression),ye(t.arguments,!1,!1,!1)):e.createFunctionCall(e.visitNode(i,b,e.isExpression),101===t.expression.kind?o:e.visitNode(o,h,e.isExpression),e.visitNodes(t.arguments,h,e.isExpression),t),101===t.expression.kind){var c=e.createLogicalOr(s,S());s=r?e.createAssignment(e.createFileLevelUniqueName(\"_this\"),c):c}return e.setOriginalNode(s,t)}return e.visitEachChild(t,h,n)}function ye(t,r,a,i){var o,s=t.length,c=e.flatten(e.spanMap(t,be,(function(e,n,t,r){return n(e,a,i&&r===s)})));if(p.downlevelIteration){if(1===c.length)if(he(l=c[0],\"___spread\"))return c[0];return e.createSpreadHelper(n,c)}if(1===c.length){var l=c[0];if(!r||(o=l,e.isArrayLiteralExpression(o)&&e.every(o.elements,ve))||he(l,\"___spreadArrays\"))return c[0]}return e.createSpreadArraysHelper(n,c)}function ve(n){return!e.isOmittedExpression(n)}function he(n,t){return e.isCallExpression(n)&&e.isIdentifier(n.expression)&&4096&e.getEmitFlags(n.expression)&&n.expression.escapedText===t}function be(n){return e.isSpreadElement(n)?Ee:Te}function Ee(n){return e.map(n,Se)}function Te(n,t,r){return e.createArrayLiteral(e.visitNodes(e.createNodeArray(n,r),h,e.isExpression),t)}function Se(n){return e.visitNode(n.expression,h,e.isExpression)}function xe(n){var r=n.rawText;if(void 0===r){r=e.getSourceTextOfNodeFromSourceFile(t,n);var a=14===n.kind||17===n.kind;r=r.substring(1,r.length-(a?1:2))}return r=r.replace(/\\r\\n?/g,\"\\n\"),e.setTextRange(e.createLiteral(r),n)}function Le(n){return 8&a&&!n?e.createPropertyAccess(e.createFileLevelUniqueName(\"_super\"),\"prototype\"):e.createFileLevelUniqueName(\"_super\")}function Ce(){0==(2&s)&&(s|=2,n.enableSubstitution(75))}function Ae(){0==(1&s)&&(s|=1,n.enableSubstitution(103),n.enableEmitNotification(161),n.enableEmitNotification(160),n.enableEmitNotification(162),n.enableEmitNotification(163),n.enableEmitNotification(201),n.enableEmitNotification(200),n.enableEmitNotification(243))}function De(n,t){return e.hasModifier(t,32)?e.getInternalName(n):e.createPropertyAccess(e.getInternalName(n),\"prototype\")}},e.extendsHelper={name:\"typescript:extends\",importName:\"__extends\",scoped:!1,priority:0,text:\"\\n            var __extends = (this && this.__extends) || (function () {\\n                var extendStatics = function (d, b) {\\n                    extendStatics = Object.setPrototypeOf ||\\n                        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\n                        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\n                    return extendStatics(d, b);\\n                };\\n\\n                return function (d, b) {\\n                    extendStatics(d, b);\\n                    function __() { this.constructor = d; }\\n                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\n                };\\n            })();\"},e.templateObjectHelper={name:\"typescript:makeTemplateObject\",importName:\"__makeTemplateObject\",scoped:!1,priority:0,text:'\\n            var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\\n                if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\\n                return cooked;\\n            };'}}(ts||(ts={})),function(e){e.transformES5=function(n){var t,r,a=n.getCompilerOptions();1!==a.jsx&&3!==a.jsx||(t=n.onEmitNode,n.onEmitNode=function(n,a,i){switch(a.kind){case 266:case 267:case 265:var o=a.tagName;r[e.getOriginalNodeId(o)]=!0}t(n,a,i)},n.enableEmitNotification(266),n.enableEmitNotification(267),n.enableEmitNotification(265),r=[]);var i=n.onSubstituteNode;return n.onSubstituteNode=function(n,t){if(t.id&&r&&r[t.id])return i(n,t);if(t=i(n,t),e.isPropertyAccessExpression(t))return function(n){var t=o(n.name);if(t)return e.setTextRange(e.createElementAccess(n.expression,t),n);return n}(t);if(e.isPropertyAssignment(t))return function(n){var t=e.isIdentifier(n.name)&&o(n.name);if(t)return e.updatePropertyAssignment(n,t,n.initializer);return n}(t);return t},n.enableSubstitution(193),n.enableSubstitution(279),e.chainBundle((function(e){return e}));function o(n){var t=n.originalKeywordKind||(e.nodeIsSynthesized(n)?e.stringToToken(e.idText(n)):void 0);if(void 0!==t&&t>=76&&t<=111)return e.setTextRange(e.createLiteral(n),n)}}}(ts||(ts={})),function(e){var n,t,r,a,i;!function(e){e[e.Nop=0]=\"Nop\",e[e.Statement=1]=\"Statement\",e[e.Assign=2]=\"Assign\",e[e.Break=3]=\"Break\",e[e.BreakWhenTrue=4]=\"BreakWhenTrue\",e[e.BreakWhenFalse=5]=\"BreakWhenFalse\",e[e.Yield=6]=\"Yield\",e[e.YieldStar=7]=\"YieldStar\",e[e.Return=8]=\"Return\",e[e.Throw=9]=\"Throw\",e[e.Endfinally=10]=\"Endfinally\"}(n||(n={})),function(e){e[e.Open=0]=\"Open\",e[e.Close=1]=\"Close\"}(t||(t={})),function(e){e[e.Exception=0]=\"Exception\",e[e.With=1]=\"With\",e[e.Switch=2]=\"Switch\",e[e.Loop=3]=\"Loop\",e[e.Labeled=4]=\"Labeled\"}(r||(r={})),function(e){e[e.Try=0]=\"Try\",e[e.Catch=1]=\"Catch\",e[e.Finally=2]=\"Finally\",e[e.Done=3]=\"Done\"}(a||(a={})),function(e){e[e.Next=0]=\"Next\",e[e.Throw=1]=\"Throw\",e[e.Return=2]=\"Return\",e[e.Break=3]=\"Break\",e[e.Yield=4]=\"Yield\",e[e.YieldStar=5]=\"YieldStar\",e[e.Catch=6]=\"Catch\",e[e.Endfinally=7]=\"Endfinally\"}(i||(i={})),e.transformGenerators=function(n){var t,r,a,i,o,s,c,l,u,d,p=n.resumeLexicalEnvironment,m=n.endLexicalEnvironment,f=n.hoistFunctionDeclaration,_=n.hoistVariableDeclaration,g=n.getCompilerOptions(),y=e.getEmitScriptTarget(g),v=n.getEmitResolver(),h=n.onSubstituteNode;n.onSubstituteNode=function(n,a){if(a=h(n,a),1===n)return function(n){if(e.isIdentifier(n))return function(n){if(!e.isGeneratedIdentifier(n)&&t&&t.has(e.idText(n))){var a=e.getOriginalNode(n);if(e.isIdentifier(a)&&a.parent){var i=v.getReferencedValueDeclaration(a);if(i){var o=r[e.getOriginalNodeId(i)];if(o){var s=e.getMutableClone(o);return e.setSourceMapRange(s,n),e.setCommentRange(s,n),s}}}}return n}(n);return n}(a);return a};var b,E,T,S,x,L,C,A,D,k,N,I,M=1,O=0,R=0;return e.chainBundle((function(t){if(t.isDeclarationFile||0==(256&t.transformFlags))return t;var r=e.visitEachChild(t,P,n);return e.addEmitHelpers(r,n.readEmitHelpers()),r}));function P(t){var r=t.transformFlags;return i?function(t){switch(t.kind){case 227:case 228:return function(t){return i?(te(),t=e.visitEachChild(t,P,n),ae(),t):e.visitEachChild(t,P,n)}(t);case 236:return function(t){i&&Z({kind:2,isScript:!0,breakLabel:-1});t=e.visitEachChild(t,P,n),i&&ie();return t}(t);case 237:return function(t){i&&Z({kind:4,isScript:!0,labelText:e.idText(t.label),breakLabel:-1});t=e.visitEachChild(t,P,n),i&&oe();return t}(t);default:return w(t)}}(t):a?w(t):e.isFunctionLikeDeclaration(t)&&t.asteriskToken?function(n){switch(n.kind){case 243:return F(n);case 200:return G(n);default:return e.Debug.failBadSyntaxKind(n)}}(t):256&r?e.visitEachChild(t,P,n):t}function w(t){switch(t.kind){case 243:return F(t);case 200:return G(t);case 162:case 163:return function(t){var r=a,o=i;return a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o,t}(t);case 224:return function(n){if(131072&n.transformFlags)return void H(n.declarationList);if(1048576&e.getEmitFlags(n))return n;for(var t=0,r=n.declarationList.declarations;t<r.length;t++){var a=r[t];_(a.name)}var i=e.getInitializedVariables(n.declarationList);if(0===i.length)return;return e.setSourceMapRange(e.createExpressionStatement(e.inlineExpressions(e.map(i,W))),n)}(t);case 229:return function(t){i&&te();var r=t.initializer;if(r&&e.isVariableDeclarationList(r)){for(var a=0,o=r.declarations;a<o.length;a++){var s=o[a];_(s.name)}var c=e.getInitializedVariables(r);t=e.updateFor(t,c.length>0?e.inlineExpressions(e.map(c,W)):void 0,e.visitNode(t.condition,P,e.isExpression),e.visitNode(t.incrementor,P,e.isExpression),e.visitNode(t.statement,P,e.isStatement,e.liftToBlock))}else t=e.visitEachChild(t,P,n);i&&ae();return t}(t);case 230:return function(t){i&&te();var r=t.initializer;if(e.isVariableDeclarationList(r)){for(var a=0,o=r.declarations;a<o.length;a++){var s=o[a];_(s.name)}t=e.updateForIn(t,r.declarations[0].name,e.visitNode(t.expression,P,e.isExpression),e.visitNode(t.statement,P,e.isStatement,e.liftToBlock))}else t=e.visitEachChild(t,P,n);i&&ae();return t}(t);case 233:return function(t){if(i){var r=de(t.label&&e.idText(t.label));if(r>0)return _e(r,t)}return e.visitEachChild(t,P,n)}(t);case 232:return function(t){if(i){var r=pe(t.label&&e.idText(t.label));if(r>0)return _e(r,t)}return e.visitEachChild(t,P,n)}(t);case 234:return function(n){return t=e.visitNode(n.expression,P,e.isExpression),r=n,e.setTextRange(e.createReturn(e.createArrayLiteral(t?[fe(2),t]:[fe(2)])),r);var t,r}(t);default:return 131072&t.transformFlags?function(t){switch(t.kind){case 208:return function(t){var r=e.getExpressionAssociativity(t);switch(r){case 0:return function(t){if(z(t.right)){if(e.isLogicalOperator(t.operatorToken.kind))return function(n){var t=Y(),r=X();ve(r,e.visitNode(n.left,P,e.isExpression),n.left),55===n.operatorToken.kind?Ee(t,r,n.left):be(t,r,n.left);return ve(r,e.visitNode(n.right,P,e.isExpression),n.right),Q(t),r}(t);if(27===t.operatorToken.kind)return function(n){var t=[];return r(n.left),r(n.right),e.inlineExpressions(t);function r(n){e.isBinaryExpression(n)&&27===n.operatorToken.kind?(r(n.left),r(n.right)):(z(n)&&t.length>0&&(Te(1,[e.createExpressionStatement(e.inlineExpressions(t))]),t=[]),t.push(e.visitNode(n,P,e.isExpression)))}}(t);var r=e.getMutableClone(t);return r.left=J(e.visitNode(t.left,P,e.isExpression)),r.right=e.visitNode(t.right,P,e.isExpression),r}return e.visitEachChild(t,P,n)}(t);case 1:return function(t){var r=t.left,a=t.right;if(z(a)){var i=void 0;switch(r.kind){case 193:i=e.updatePropertyAccess(r,J(e.visitNode(r.expression,P,e.isLeftHandSideExpression)),r.name);break;case 194:i=e.updateElementAccess(r,J(e.visitNode(r.expression,P,e.isLeftHandSideExpression)),J(e.visitNode(r.argumentExpression,P,e.isExpression)));break;default:i=e.visitNode(r,P,e.isExpression)}var o=t.operatorToken.kind;return(s=o)>=63&&s<=74?e.setTextRange(e.createAssignment(i,e.setTextRange(e.createBinary(J(i),function(e){switch(e){case 63:return 39;case 64:return 40;case 65:return 41;case 66:return 42;case 67:return 43;case 68:return 44;case 69:return 47;case 70:return 48;case 71:return 49;case 72:return 50;case 73:return 51;case 74:return 52}}(o),e.visitNode(a,P,e.isExpression)),t)),t):e.updateBinary(t,i,e.visitNode(a,P,e.isExpression))}var s;return e.visitEachChild(t,P,n)}(t);default:return e.Debug.assertNever(r)}}(t);case 209:return function(t){if(z(t.whenTrue)||z(t.whenFalse)){var r=Y(),a=Y(),i=X();return Ee(r,e.visitNode(t.condition,P,e.isExpression),t.condition),ve(i,e.visitNode(t.whenTrue,P,e.isExpression),t.whenTrue),he(a),Q(r),ve(i,e.visitNode(t.whenFalse,P,e.isExpression),t.whenFalse),Q(a),i}return e.visitEachChild(t,P,n)}(t);case 211:return function(t){var r=Y(),a=e.visitNode(t.expression,P,e.isExpression);if(t.asteriskToken){!function(e,n){Te(7,[e],n)}(0==(8388608&e.getEmitFlags(t.expression))?e.createValuesHelper(n,a,t):a,t)}else!function(e,n){Te(6,[e],n)}(a,t);return Q(r),function(n){return e.setTextRange(e.createCall(e.createPropertyAccess(S,\"sent\"),void 0,[]),n)}(t)}(t);case 191:return function(e){return V(e.elements,void 0,void 0,e.multiLine)}(t);case 192:return function(n){var t=n.properties,r=n.multiLine,a=q(t),i=X();ve(i,e.createObjectLiteral(e.visitNodes(t,P,e.isObjectLiteralElementLike,0,a),r));var o=e.reduceLeft(t,(function(t,a){z(a)&&t.length>0&&(ye(e.createExpressionStatement(e.inlineExpressions(t))),t=[]);var o=e.createExpressionForObjectLiteralElementLike(n,a,i),s=e.visitNode(o,P,e.isExpression);s&&(r&&e.startOnNewLine(s),t.push(s));return t}),[],a);return o.push(r?e.startOnNewLine(e.getMutableClone(i)):i),e.inlineExpressions(o)}(t);case 194:return function(t){if(z(t.argumentExpression)){var r=e.getMutableClone(t);return r.expression=J(e.visitNode(t.expression,P,e.isLeftHandSideExpression)),r.argumentExpression=e.visitNode(t.argumentExpression,P,e.isExpression),r}return e.visitEachChild(t,P,n)}(t);case 195:return function(t){if(!e.isImportCall(t)&&e.forEach(t.arguments,z)){var r=e.createCallBinding(t.expression,_,y,!0),a=r.target,i=r.thisArg;return e.setOriginalNode(e.createFunctionApply(J(e.visitNode(a,P,e.isLeftHandSideExpression)),i,V(t.arguments),t),t)}return e.visitEachChild(t,P,n)}(t);case 196:return function(t){if(e.forEach(t.arguments,z)){var r=e.createCallBinding(e.createPropertyAccess(t.expression,\"bind\"),_),a=r.target,i=r.thisArg;return e.setOriginalNode(e.setTextRange(e.createNew(e.createFunctionApply(J(e.visitNode(a,P,e.isExpression)),i,V(t.arguments,e.createVoidZero())),void 0,[]),t),t)}return e.visitEachChild(t,P,n)}(t);default:return e.visitEachChild(t,P,n)}}(t):262400&t.transformFlags?e.visitEachChild(t,P,n):t}}function F(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(e.createFunctionDeclaration(void 0,t.modifiers,void 0,t.name,void 0,e.visitParameterList(t.parameters,P,n),void 0,B(t.body)),t),t);else{var r=a,o=i;a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o}return a?void f(t):t}function G(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(e.createFunctionExpression(void 0,void 0,t.name,void 0,e.visitParameterList(t.parameters,P,n),void 0,B(t.body)),t),t);else{var r=a,o=i;a=!1,i=!1,t=e.visitEachChild(t,P,n),a=r,i=o}return t}function B(n){var t=[],r=a,f=i,_=o,g=s,y=c,v=l,h=u,x=d,L=M,C=b,A=E,D=T,k=S;a=!0,i=!1,o=void 0,s=void 0,c=void 0,l=void 0,u=void 0,d=void 0,M=1,b=void 0,E=void 0,T=void 0,S=e.createTempVariable(void 0),p();var N=e.addPrologue(t,n.statements,!1,P);U(n.statements,N);var I=Se();return e.insertStatementsAfterStandardPrologue(t,m()),t.push(e.createReturn(I)),a=r,i=f,o=_,s=g,c=y,l=v,u=h,d=x,M=L,b=C,E=A,T=D,S=k,e.setTextRange(e.createBlock(t,n.multiLine),n)}function V(n,t,r,a){var i,o=q(n);if(o>0){i=X();var s=e.visitNodes(n,P,e.isExpression,0,o);ve(i,e.createArrayLiteral(t?__spreadArrays([t],s):s)),t=void 0}var c=e.reduceLeft(n,(function(n,r){if(z(r)&&n.length>0){var o=void 0!==i;i||(i=X()),ve(i,o?e.createArrayConcat(i,[e.createArrayLiteral(n,a)]):e.createArrayLiteral(t?__spreadArrays([t],n):n,a)),t=void 0,n=[]}return n.push(e.visitNode(r,P,e.isExpression)),n}),[],o);return i?e.createArrayConcat(i,[e.createArrayLiteral(c,a)]):e.setTextRange(e.createArrayLiteral(t?__spreadArrays([t],c):c,a),r)}function U(e,n){void 0===n&&(n=0);for(var t=e.length,r=n;r<t;r++)K(e[r])}function j(n){e.isBlock(n)?U(n.statements):K(n)}function K(a){var o=i;i||(i=z(a)),function(a){switch(a.kind){case 222:return function(n){z(n)?U(n.statements):ye(e.visitNode(n,P,e.isStatement))}(a);case 225:return function(n){ye(e.visitNode(n,P,e.isStatement))}(a);case 226:return function(n){if(z(n))if(z(n.thenStatement)||z(n.elseStatement)){var t=Y(),r=n.elseStatement?Y():void 0;Ee(n.elseStatement?r:t,e.visitNode(n.expression,P,e.isExpression),n.expression),j(n.thenStatement),n.elseStatement&&(he(t),Q(r),j(n.elseStatement)),Q(t)}else ye(e.visitNode(n,P,e.isStatement));else ye(e.visitNode(n,P,e.isStatement))}(a);case 227:return function(n){if(z(n)){var t=Y(),r=Y();re(t),Q(r),j(n.statement),Q(t),be(r,e.visitNode(n.expression,P,e.isExpression)),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 228:return function(n){if(z(n)){var t=Y(),r=re(t);Q(t),Ee(r,e.visitNode(n.expression,P,e.isExpression)),j(n.statement),he(t),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 229:return function(n){if(z(n)){var t=Y(),r=Y(),a=re(r);if(n.initializer){var i=n.initializer;e.isVariableDeclarationList(i)?H(i):ye(e.setTextRange(e.createExpressionStatement(e.visitNode(i,P,e.isExpression)),i))}Q(t),n.condition&&Ee(a,e.visitNode(n.condition,P,e.isExpression)),j(n.statement),Q(r),n.incrementor&&ye(e.setTextRange(e.createExpressionStatement(e.visitNode(n.incrementor,P,e.isExpression)),n.incrementor)),he(t),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 230:return function(n){if(z(n)){var t=X(),r=X(),a=e.createLoopVariable(),i=n.initializer;_(a),ve(t,e.createArrayLiteral()),ye(e.createForIn(r,e.visitNode(n.expression,P,e.isExpression),e.createExpressionStatement(e.createCall(e.createPropertyAccess(t,\"push\"),void 0,[r])))),ve(a,e.createLiteral(0));var o=Y(),s=Y(),c=re(s);Q(o),Ee(c,e.createLessThan(a,e.createPropertyAccess(t,\"length\")));var l=void 0;if(e.isVariableDeclarationList(i)){for(var u=0,d=i.declarations;u<d.length;u++){var p=d[u];_(p.name)}l=e.getSynthesizedClone(i.declarations[0].name)}else l=e.visitNode(i,P,e.isExpression),e.Debug.assert(e.isLeftHandSideExpression(l));ve(l,e.createElementAccess(t,a)),j(n.statement),Q(s),ye(e.createExpressionStatement(e.createPostfixIncrement(a))),he(o),ae()}else ye(e.visitNode(n,P,e.isStatement))}(a);case 232:return function(n){var t=pe(n.label?e.idText(n.label):void 0);t>0?he(t,n):ye(n)}(a);case 233:return function(n){var t=de(n.label?e.idText(n.label):void 0);t>0?he(t,n):ye(n)}(a);case 234:return function(n){t=e.visitNode(n.expression,P,e.isExpression),r=n,Te(8,[t],r);var t,r}(a);case 235:return function(n){z(n)?(t=J(e.visitNode(n.expression,P,e.isExpression)),r=Y(),a=Y(),Q(r),Z({kind:1,expression:t,startLabel:r,endLabel:a}),j(n.statement),e.Debug.assert(1===ne()),Q($().endLabel)):ye(e.visitNode(n,P,e.isStatement));var t,r,a}(a);case 236:return function(n){if(z(n.caseBlock)){for(var t=n.caseBlock,r=t.clauses.length,a=(Z({kind:2,isScript:!1,breakLabel:m=Y()}),m),i=J(e.visitNode(n.expression,P,e.isExpression)),o=[],s=-1,c=0;c<r;c++){var l=t.clauses[c];o.push(Y()),276===l.kind&&-1===s&&(s=c)}for(var u=0,d=[];u<r;){var p=0;for(c=u;c<r;c++){if(275===(l=t.clauses[c]).kind){if(z(l.expression)&&d.length>0)break;d.push(e.createCaseClause(e.visitNode(l.expression,P,e.isExpression),[_e(o[c],l.expression)]))}else p++}d.length&&(ye(e.createSwitch(i,e.createCaseBlock(d))),u+=d.length,d=[]),p>0&&(u+=p,p=0)}he(s>=0?o[s]:a);for(c=0;c<r;c++)Q(o[c]),U(t.clauses[c].statements);ie()}else ye(e.visitNode(n,P,e.isStatement));var m}(a);case 237:return function(n){z(n)?(t=e.idText(n.label),r=Y(),Z({kind:4,isScript:!1,labelText:t,breakLabel:r}),j(n.statement),oe()):ye(e.visitNode(n,P,e.isStatement));var t,r}(a);case 238:return function(n){t=e.visitNode(n.expression,P,e.isExpression),r=n,Te(9,[t],r);var t,r}(a);case 239:return function(a){z(a)?(i=Y(),o=Y(),Q(i),Z({kind:0,state:0,startLabel:i,endLabel:o}),ge(),j(a.tryBlock),a.catchClause&&(!function(a){var i;if(e.Debug.assert(0===ne()),e.isGeneratedIdentifier(a.name))i=a.name,_(a.name);else{var o=e.idText(a.name);i=X(o),t||(t=e.createMap(),r=[],n.enableSubstitution(75)),t.set(o,!0),r[e.getOriginalNodeId(a)]=i}var s=ee();e.Debug.assert(s.state<1),he(s.endLabel);var c=Y();Q(c),s.state=1,s.catchVariable=i,s.catchLabel=c,ve(i,e.createCall(e.createPropertyAccess(S,\"sent\"),void 0,[])),ge()}(a.catchClause.variableDeclaration),j(a.catchClause.block)),a.finallyBlock&&(!function(){e.Debug.assert(0===ne());var n=ee();e.Debug.assert(n.state<2),he(n.endLabel);var t=Y();Q(t),n.state=2,n.finallyLabel=t}(),j(a.finallyBlock)),function(){e.Debug.assert(0===ne());var n=$();n.state<2?he(n.endLabel):Te(10);Q(n.endLabel),ge(),n.state=3}()):ye(e.visitEachChild(a,P,n));var i,o}(a);default:ye(e.visitNode(a,P,e.isStatement))}}(a),i=o}function H(n){for(var t=0,r=n.declarations;t<r.length;t++){var a=r[t],i=e.getSynthesizedClone(a.name);e.setCommentRange(i,a.name),_(i)}for(var o=e.getInitializedVariables(n),s=o.length,c=0,l=[];c<s;){for(var u=c;u<s;u++){if(z((a=o[u]).initializer)&&l.length>0)break;l.push(W(a))}l.length&&(ye(e.createExpressionStatement(e.inlineExpressions(l))),c+=l.length,l=[])}}function W(n){return e.setSourceMapRange(e.createAssignment(e.setSourceMapRange(e.getSynthesizedClone(n.name),n.name),e.visitNode(n.initializer,P,e.isExpression)),n)}function z(e){return!!e&&0!=(131072&e.transformFlags)}function q(e){for(var n=e.length,t=0;t<n;t++)if(z(e[t]))return t;return-1}function J(n){if(e.isGeneratedIdentifier(n)||4096&e.getEmitFlags(n))return n;var t=e.createTempVariable(_);return ve(t,n,n),t}function X(n){var t=n?e.createUniqueName(n):e.createTempVariable(void 0);return _(t),t}function Y(){u||(u=[]);var e=M;return M++,u[e]=-1,e}function Q(n){e.Debug.assert(void 0!==u,\"No labels were defined.\"),u[n]=b?b.length:0}function Z(e){o||(o=[],c=[],s=[],l=[]);var n=c.length;return c[n]=0,s[n]=b?b.length:0,o[n]=e,l.push(e),n}function $(){var n=ee();if(void 0===n)return e.Debug.fail(\"beginBlock was never called.\");var t=c.length;return c[t]=1,s[t]=b?b.length:0,o[t]=n,l.pop(),n}function ee(){return e.lastOrUndefined(l)}function ne(){var e=ee();return e&&e.kind}function te(){Z({kind:3,isScript:!0,breakLabel:-1,continueLabel:-1})}function re(e){var n=Y();return Z({kind:3,isScript:!1,breakLabel:n,continueLabel:e}),n}function ae(){e.Debug.assert(3===ne());var n=$(),t=n.breakLabel;n.isScript||Q(t)}function ie(){e.Debug.assert(2===ne());var n=$(),t=n.breakLabel;n.isScript||Q(t)}function oe(){e.Debug.assert(4===ne());var n=$();n.isScript||Q(n.breakLabel)}function se(e){return 2===e.kind||3===e.kind}function ce(e){return 4===e.kind}function le(e){return 3===e.kind}function ue(e,n){for(var t=n;t>=0;t--){var r=l[t];if(!ce(r))break;if(r.labelText===e)return!0}return!1}function de(e){if(l)if(e)for(var n=l.length-1;n>=0;n--){if(ce(t=l[n])&&t.labelText===e)return t.breakLabel;if(se(t)&&ue(e,n-1))return t.breakLabel}else for(n=l.length-1;n>=0;n--){var t;if(se(t=l[n]))return t.breakLabel}return 0}function pe(e){if(l)if(e)for(var n=l.length-1;n>=0;n--){if(le(t=l[n])&&ue(e,n-1))return t.continueLabel}else for(n=l.length-1;n>=0;n--){var t;if(le(t=l[n]))return t.continueLabel}return 0}function me(n){if(void 0!==n&&n>0){void 0===d&&(d=[]);var t=e.createLiteral(-1);return void 0===d[n]?d[n]=[t]:d[n].push(t),t}return e.createOmittedExpression()}function fe(n){var t=e.createLiteral(n);return e.addSyntheticTrailingComment(t,3,function(e){switch(e){case 2:return\"return\";case 3:return\"break\";case 4:return\"yield\";case 5:return\"yield*\";case 7:return\"endfinally\";default:return}}(n)),t}function _e(n,t){return e.Debug.assertLessThan(0,n,\"Invalid label\"),e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),t)}function ge(){Te(0)}function ye(e){e?Te(1,[e]):ge()}function ve(e,n,t){Te(2,[e,n],t)}function he(e,n){Te(3,[e],n)}function be(e,n,t){Te(4,[e,n],t)}function Ee(e,n,t){Te(5,[e,n],t)}function Te(e,n,t){void 0===b&&(b=[],E=[],T=[]),void 0===u&&Q(Y());var r=b.length;b[r]=e,E[r]=n,T[r]=t}function Se(){O=0,R=0,x=void 0,L=!1,C=!1,A=void 0,D=void 0,k=void 0,N=void 0,I=void 0;var t=function(){if(b){for(var n=0;n<b.length;n++)Ae(n);xe(b.length)}else xe(0);if(A){var t=e.createPropertyAccess(S,\"label\"),r=e.createSwitch(t,e.createCaseBlock(A));return[e.startOnNewLine(r)]}if(D)return D;return[]}();return function(n,t){return n.requestEmitHelper(e.generatorHelper),e.createCall(e.getUnscopedHelperName(\"__generator\"),void 0,[e.createThis(),t])}(n,e.setEmitFlags(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,S)],void 0,e.createBlock(t,t.length>0)),524288))}function xe(e){(function(e){if(!C)return!0;if(!u||!d)return!1;for(var n=0;n<u.length;n++)if(u[n]===e&&d[n])return!0;return!1})(e)&&(Ce(e),I=void 0,ke(void 0,void 0)),D&&A&&Le(!1),function(){if(void 0!==d&&void 0!==x)for(var e=0;e<x.length;e++){var n=x[e];if(void 0!==n)for(var t=0,r=n;t<r.length;t++){var a=r[t],i=d[a];if(void 0!==i)for(var o=0,s=i;o<s.length;o++){s[o].text=String(e)}}}}()}function Le(n){if(A||(A=[]),D){if(I)for(var t=I.length-1;t>=0;t--){var r=I[t];D=[e.createWith(r.expression,e.createBlock(D))]}if(N){var a=N.startLabel,i=N.catchLabel,o=N.finallyLabel,s=N.endLabel;D.unshift(e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createPropertyAccess(S,\"trys\"),\"push\"),void 0,[e.createArrayLiteral([me(a),me(i),me(o),me(s)])]))),N=void 0}n&&D.push(e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(S,\"label\"),e.createLiteral(R+1))))}A.push(e.createCaseClause(e.createLiteral(R),D||[])),D=void 0}function Ce(e){if(u)for(var n=0;n<u.length;n++)u[n]===e&&(D&&(Le(!L),L=!1,C=!1,R++),void 0===x&&(x=[]),void 0===x[R]?x[R]=[n]:x[R].push(n))}function Ae(n){if(Ce(n),function(e){if(o)for(;O<c.length&&s[O]<=e;O++){var n=o[O],t=c[O];switch(n.kind){case 0:0===t?(k||(k=[]),D||(D=[]),k.push(N),N=n):1===t&&(N=k.pop());break;case 1:0===t?(I||(I=[]),I.push(n)):1===t&&I.pop()}}}(n),!L){L=!1,C=!1;var t=b[n];if(0!==t){if(10===t)return L=!0,void De(e.createReturn(e.createArrayLiteral([fe(7)])));var r=E[n];if(1===t)return De(r[0]);var a,i,l,u=T[n];switch(t){case 2:return a=r[0],i=r[1],l=u,void De(e.setTextRange(e.createExpressionStatement(e.createAssignment(a,i)),l));case 3:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),t),384))}(r[0],u);case 4:return function(n,t,r){De(e.setEmitFlags(e.createIf(t,e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),r),384)),1))}(r[0],r[1],u);case 5:return function(n,t,r){De(e.setEmitFlags(e.createIf(e.createLogicalNot(t),e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(3),me(n)])),r),384)),1))}(r[0],r[1],u);case 6:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral(n?[fe(4),n]:[fe(4)])),t),384))}(r[0],u);case 7:return function(n,t){L=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral([fe(5),n])),t),384))}(r[0],u);case 8:return ke(r[0],u);case 9:return function(n,t){L=!0,C=!0,De(e.setTextRange(e.createThrow(n),t))}(r[0],u)}}}}function De(e){e&&(D?D.push(e):D=[e])}function ke(n,t){L=!0,C=!0,De(e.setEmitFlags(e.setTextRange(e.createReturn(e.createArrayLiteral(n?[fe(2),n]:[fe(2)])),t),384))}},e.generatorHelper={name:\"typescript:generator\",importName:\"__generator\",scoped:!1,priority:6,text:'\\n            var __generator = (this && this.__generator) || function (thisArg, body) {\\n                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\n                return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\\n                function verb(n) { return function (v) { return step([n, v]); }; }\\n                function step(op) {\\n                    if (f) throw new TypeError(\"Generator is already executing.\");\\n                    while (_) try {\\n                        if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\n                        if (y = 0, t) op = [op[0] & 2, t.value];\\n                        switch (op[0]) {\\n                            case 0: case 1: t = op; break;\\n                            case 4: _.label++; return { value: op[1], done: false };\\n                            case 5: _.label++; y = op[1]; op = [0]; continue;\\n                            case 7: op = _.ops.pop(); _.trys.pop(); continue;\\n                            default:\\n                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\n                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\n                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\n                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\n                                if (t[2]) _.ops.pop();\\n                                _.trys.pop(); continue;\\n                        }\\n                        op = body.call(thisArg, _);\\n                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\n                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\n                }\\n            };'}}(ts||(ts={})),function(e){e.transformModule=function(r){var a=r.startLexicalEnvironment,i=r.endLexicalEnvironment,o=r.hoistVariableDeclaration,s=r.getCompilerOptions(),c=r.getEmitResolver(),l=r.getEmitHost(),u=e.getEmitScriptTarget(s),d=e.getEmitModuleKind(s),p=r.onSubstituteNode,m=r.onEmitNode;r.onSubstituteNode=function(n,t){if((t=p(n,t)).id&&g[t.id])return t;if(1===n)return function(n){switch(n.kind){case 75:return q(n);case 208:return function(n){if(e.isAssignmentOperator(n.operatorToken.kind)&&e.isIdentifier(n.left)&&!e.isGeneratedIdentifier(n.left)&&!e.isLocalName(n.left)&&!e.isDeclarationNameOfEnumOrNamespace(n.left)){var t=J(n.left);if(t){for(var r=n,a=0,i=t;a<i.length;a++){var o=i[a];g[e.getNodeId(r)]=!0,r=W(o,r,n)}return r}}return n}(n);case 207:case 206:return function(n){if((45===n.operator||46===n.operator)&&e.isIdentifier(n.operand)&&!e.isGeneratedIdentifier(n.operand)&&!e.isLocalName(n.operand)&&!e.isDeclarationNameOfEnumOrNamespace(n.operand)){var t=J(n.operand);if(t){for(var r=207===n.kind?e.setTextRange(e.createBinary(n.operand,e.createToken(45===n.operator?63:64),e.createLiteral(1)),n):n,a=0,i=t;a<i.length;a++){var o=i[a];g[e.getNodeId(r)]=!0,r=W(o,r)}return r}}return n}(n)}return n}(t);if(e.isShorthandPropertyAssignment(t))return function(n){var t=n.name,r=q(t);if(r!==t){if(n.objectAssignmentInitializer){var a=e.createAssignment(r,n.objectAssignmentInitializer);return e.setTextRange(e.createPropertyAssignment(t,a),n)}return e.setTextRange(e.createPropertyAssignment(t,r),n)}return n}(t);return t},r.onEmitNode=function(n,t,r){288===t.kind?(f=t,_=v[e.getOriginalNodeId(f)],g=[],m(n,t,r),f=void 0,_=void 0,g=void 0):m(n,t,r)},r.enableSubstitution(75),r.enableSubstitution(208),r.enableSubstitution(206),r.enableSubstitution(207),r.enableSubstitution(280),r.enableEmitNotification(288);var f,_,g,y,v=[],h=[];return e.chainBundle((function(n){if(n.isDeclarationFile||!(e.isEffectiveExternalModule(n,s)||524288&n.transformFlags||e.isJsonSourceFile(n)&&e.hasJsonModuleEmitEnabled(s)&&(s.out||s.outFile)))return n;f=n,_=e.collectExternalModuleInfo(n,c,s),v[e.getOriginalNodeId(n)]=_;var t=function(n){switch(n){case e.ModuleKind.AMD:return T;case e.ModuleKind.UMD:return S;default:return E}}(d)(n);return f=void 0,_=void 0,y=!1,e.aggregateTransformFlags(t)}));function b(){return!(_.exportEquals||!e.isExternalModule(f))}function E(t){a();var o=[],c=e.getStrictOptionValue(s,\"alwaysStrict\")||!s.noImplicitUseStrict&&e.isExternalModule(f),l=e.addPrologue(o,t.statements,c,D);b()&&e.append(o,H()),e.append(o,e.visitNode(_.externalHelpersImportDeclaration,D,e.isStatement)),e.addRange(o,e.visitNodes(t.statements,D,e.isStatement,l)),A(o,!1),e.insertStatementsAfterStandardPrologue(o,i());var u=e.updateSourceFileNode(t,e.setTextRange(e.createNodeArray(o),t.statements));return _.hasExportStarsToExportValues&&!s.importHelpers&&e.addEmitHelper(u,n),e.addEmitHelpers(u,r.readEmitHelpers()),u}function T(n){var t=e.createIdentifier(\"define\"),a=e.tryGetModuleNameFromFile(n,l,s),i=e.isJsonSourceFile(n)&&n,o=x(n,!0),c=o.aliasedModuleNames,u=o.unaliasedModuleNames,d=o.importAliasNames,p=e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(t,void 0,__spreadArrays(a?[a]:[],[e.createArrayLiteral(i?e.emptyArray:__spreadArrays([e.createLiteral(\"require\"),e.createLiteral(\"exports\")],c,u)),i?i.statements.length?i.statements[0].expression:e.createObjectLiteral():e.createFunctionExpression(void 0,void 0,void 0,void 0,__spreadArrays([e.createParameter(void 0,void 0,void 0,\"require\"),e.createParameter(void 0,void 0,void 0,\"exports\")],d),void 0,C(n))])))]),n.statements));return e.addEmitHelpers(p,r.readEmitHelpers()),p}function S(n){var t=x(n,!1),a=t.aliasedModuleNames,i=t.unaliasedModuleNames,o=t.importAliasNames,c=e.tryGetModuleNameFromFile(n,l,s),u=e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,\"factory\")],void 0,e.setTextRange(e.createBlock([e.createIf(e.createLogicalAnd(e.createTypeCheck(e.createIdentifier(\"module\"),\"object\"),e.createTypeCheck(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),\"object\")),e.createBlock([e.createVariableStatement(void 0,[e.createVariableDeclaration(\"v\",void 0,e.createCall(e.createIdentifier(\"factory\"),void 0,[e.createIdentifier(\"require\"),e.createIdentifier(\"exports\")]))]),e.setEmitFlags(e.createIf(e.createStrictInequality(e.createIdentifier(\"v\"),e.createIdentifier(\"undefined\")),e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),e.createIdentifier(\"v\")))),1)]),e.createIf(e.createLogicalAnd(e.createTypeCheck(e.createIdentifier(\"define\"),\"function\"),e.createPropertyAccess(e.createIdentifier(\"define\"),\"amd\")),e.createBlock([e.createExpressionStatement(e.createCall(e.createIdentifier(\"define\"),void 0,__spreadArrays(c?[c]:[],[e.createArrayLiteral(__spreadArrays([e.createLiteral(\"require\"),e.createLiteral(\"exports\")],a,i)),e.createIdentifier(\"factory\")])))])))],!0),void 0)),d=e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(u,void 0,[e.createFunctionExpression(void 0,void 0,void 0,void 0,__spreadArrays([e.createParameter(void 0,void 0,void 0,\"require\"),e.createParameter(void 0,void 0,void 0,\"exports\")],o),void 0,C(n))]))]),n.statements));return e.addEmitHelpers(d,r.readEmitHelpers()),d}function x(n,t){for(var r=[],a=[],i=[],o=0,u=n.amdDependencies;o<u.length;o++){var d=u[o];d.name?(r.push(e.createLiteral(d.path)),i.push(e.createParameter(void 0,void 0,void 0,d.name))):a.push(e.createLiteral(d.path))}for(var p=0,m=_.externalImports;p<m.length;p++){var g=m[p],y=e.getExternalModuleNameLiteral(g,f,l,c,s),v=e.getLocalNameForExternalImport(g,f);y&&(t&&v?(e.setEmitFlags(v,4),r.push(y),i.push(e.createParameter(void 0,void 0,void 0,v))):a.push(y))}return{aliasedModuleNames:r,unaliasedModuleNames:a,importAliasNames:i}}function L(n){if(!e.isImportEqualsDeclaration(n)&&!e.isExportDeclaration(n)&&e.getExternalModuleNameLiteral(n,f,l,c,s)){var t=e.getLocalNameForExternalImport(n,f),r=M(n,t);if(r!==t)return e.createExpressionStatement(e.createAssignment(t,r))}}function C(r){a();var o=[],c=e.addPrologue(o,r.statements,!s.noImplicitUseStrict,D);b()&&e.append(o,H()),e.append(o,e.visitNode(_.externalHelpersImportDeclaration,D,e.isStatement)),d===e.ModuleKind.AMD&&e.addRange(o,e.mapDefined(_.externalImports,L)),e.addRange(o,e.visitNodes(r.statements,D,e.isStatement,c)),A(o,!0),e.insertStatementsAfterStandardPrologue(o,i());var l=e.createBlock(o,!0);return _.hasExportStarsToExportValues&&!s.importHelpers&&e.addEmitHelper(l,n),y&&e.addEmitHelper(l,t),l}function A(n,t){if(_.exportEquals){var r=e.visitNode(_.exportEquals.expression,k);if(r)if(t){var a=e.createReturn(r);e.setTextRange(a,_.exportEquals),e.setEmitFlags(a,1920),n.push(a)}else{a=e.createExpressionStatement(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"module\"),\"exports\"),r));e.setTextRange(a,_.exportEquals),e.setEmitFlags(a,1536),n.push(a)}}}function D(n){switch(n.kind){case 253:return function(n){var t,r=e.getNamespaceDeclarationNode(n);if(d!==e.ModuleKind.AMD){if(!n.importClause)return e.setOriginalNode(e.setTextRange(e.createExpressionStatement(O(n)),n),n);var a=[];r&&!e.isDefaultImport(n)?a.push(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,M(n,O(n)))):(a.push(e.createVariableDeclaration(e.getGeneratedNameForNode(n),void 0,M(n,O(n)))),r&&e.isDefaultImport(n)&&a.push(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,e.getGeneratedNameForNode(n)))),t=e.append(t,e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList(a,u>=2?2:0)),n),n))}else r&&e.isDefaultImport(n)&&(t=e.append(t,e.createVariableStatement(void 0,e.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(e.createVariableDeclaration(e.getSynthesizedClone(r.name),void 0,e.getGeneratedNameForNode(n)),n),n)],u>=2?2:0))));if(w(n)){var i=e.getOriginalNodeId(n);h[i]=F(h[i],n)}else t=F(t,n);return e.singleOrMany(t)}(n);case 252:return function(n){var t;e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(n),\"import= for internal module references should be handled in an earlier transformer.\"),d!==e.ModuleKind.AMD?t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(n.name,O(n))),n),n)):e.append(t,e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedClone(n.name),void 0,O(n))],u>=2?2:0)),n),n)):e.hasModifier(n,1)&&(t=e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(e.getExportName(n),e.getLocalName(n))),n),n)));if(w(n)){var r=e.getOriginalNodeId(n);h[r]=G(h[r],n)}else t=G(t,n);return e.singleOrMany(t)}(n);case 259:return function(n){if(!n.moduleSpecifier)return;var t=e.getGeneratedNameForNode(n);if(n.exportClause){var a=[];d!==e.ModuleKind.AMD&&a.push(e.setOriginalNode(e.setTextRange(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(t,void 0,O(n))])),n),n));for(var i=0,o=n.exportClause.elements;i<o.length;i++){var s=o[i],c=e.createPropertyAccess(t,s.propertyName||s.name);a.push(e.setOriginalNode(e.setTextRange(e.createExpressionStatement(W(e.getExportName(s),c)),s),s))}return e.singleOrMany(a)}return e.setOriginalNode(e.setTextRange(e.createExpressionStatement(function(n,t){return n.getCompilerOptions().importHelpers?e.createCall(e.getUnscopedHelperName(\"__exportStar\"),void 0,[t,e.createIdentifier(\"exports\")]):e.createCall(e.createIdentifier(\"__export\"),void 0,[t])}(r,d!==e.ModuleKind.AMD?O(n):t)),n),n)}(n);case 258:return function(n){if(n.isExportEquals)return;var t,r=n.original;if(r&&w(r)){var a=e.getOriginalNodeId(n);h[a]=K(h[a],e.createIdentifier(\"default\"),e.visitNode(n.expression,k),n,!0)}else t=K(t,e.createIdentifier(\"default\"),e.visitNode(n.expression,k),n,!0);return e.singleOrMany(t)}(n);case 224:return function(n){var t,a,i;if(e.hasModifier(n,1)){for(var o=void 0,s=0,c=n.declarationList.declarations;s<c.length;s++){var l=c[s];e.isIdentifier(l.name)&&e.isLocalName(l.name)?(o||(o=e.visitNodes(n.modifiers,z,e.isModifier)),a=e.append(a,l)):l.initializer&&(i=e.append(i,P(l)))}a&&(t=e.append(t,e.updateVariableStatement(n,o,e.updateVariableDeclarationList(n.declarationList,a)))),i&&(t=e.append(t,e.setOriginalNode(e.setTextRange(e.createExpressionStatement(e.inlineExpressions(i)),n),n)))}else t=e.append(t,e.visitEachChild(n,k,r));if(w(n)){var u=e.getOriginalNodeId(n);h[u]=B(h[u],n)}else t=B(t,n);return e.singleOrMany(t)}(n);case 243:return function(n){var t;t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createFunctionDeclaration(void 0,e.visitNodes(n.modifiers,z,e.isModifier),n.asteriskToken,e.getDeclarationName(n,!0,!0),void 0,e.visitNodes(n.parameters,k),void 0,e.visitEachChild(n.body,k,r)),n),n)):e.append(t,e.visitEachChild(n,k,r));if(w(n)){var a=e.getOriginalNodeId(n);h[a]=U(h[a],n)}else t=U(t,n);return e.singleOrMany(t)}(n);case 244:return function(n){var t;t=e.hasModifier(n,1)?e.append(t,e.setOriginalNode(e.setTextRange(e.createClassDeclaration(void 0,e.visitNodes(n.modifiers,z,e.isModifier),e.getDeclarationName(n,!0,!0),void 0,e.visitNodes(n.heritageClauses,k),e.visitNodes(n.members,k)),n),n)):e.append(t,e.visitEachChild(n,k,r));if(w(n)){var a=e.getOriginalNodeId(n);h[a]=U(h[a],n)}else t=U(t,n);return e.singleOrMany(t)}(n);case 321:return function(n){if(w(n)&&224===n.original.kind){var t=e.getOriginalNodeId(n);h[t]=B(h[t],n.original)}return n}(n);case 322:return function(n){var t=e.getOriginalNodeId(n),r=h[t];if(r)return delete h[t],e.append(r,n);return n}(n);default:return e.visitEachChild(n,k,r)}}function k(n){return 524288&n.transformFlags||512&n.transformFlags?e.isImportCall(n)?function(n){var t=e.visitNode(e.firstOrUndefined(n.arguments),k),r=!!(2048&n.transformFlags);switch(s.module){case e.ModuleKind.AMD:return N(t,r);case e.ModuleKind.UMD:return function(n,t){if(y=!0,e.isSimpleCopiableExpression(n)){var r=e.isGeneratedIdentifier(n)?n:e.isStringLiteral(n)?e.createLiteral(n):e.setEmitFlags(e.setTextRange(e.getSynthesizedClone(n),n),1536);return e.createConditional(e.createIdentifier(\"__syncRequire\"),I(n,t),N(r,t))}var a=e.createTempVariable(o);return e.createComma(e.createAssignment(a,n),e.createConditional(e.createIdentifier(\"__syncRequire\"),I(a,t),N(a,t)))}(t,r);case e.ModuleKind.CommonJS:default:return I(t,r)}}(n):e.isDestructuringAssignment(n)?function(n){if(function n(t){if(e.isObjectLiteralExpression(t))for(var r=0,a=t.properties;r<a.length;r++){switch((s=a[r]).kind){case 279:if(n(s.initializer))return!0;break;case 280:if(n(s.name))return!0;break;case 281:if(n(s.expression))return!0;break;case 160:case 162:case 163:return!1;default:e.Debug.assertNever(s,\"Unhandled object member kind\")}}else if(e.isArrayLiteralExpression(t))for(var i=0,o=t.elements;i<o.length;i++){var s=o[i];if(e.isSpreadElement(s)){if(n(s.expression))return!0}else if(n(s))return!0}else if(e.isIdentifier(t))return e.length(J(t))>(e.isExportName(t)?1:0);return!1}(n.left))return e.flattenDestructuringAssignment(n,k,r,0,!1,R);return e.visitEachChild(n,k,r)}(n):e.visitEachChild(n,k,r):n}function N(n,t){var a,i=e.createUniqueName(\"resolve\"),o=e.createUniqueName(\"reject\"),c=[e.createParameter(void 0,void 0,void 0,i),e.createParameter(void 0,void 0,void 0,o)],l=e.createBlock([e.createExpressionStatement(e.createCall(e.createIdentifier(\"require\"),void 0,[e.createArrayLiteral([n||e.createOmittedExpression()]),i,o]))]);u>=2?a=e.createArrowFunction(void 0,void 0,c,void 0,void 0,l):(a=e.createFunctionExpression(void 0,void 0,void 0,void 0,c,void 0,l),t&&e.setEmitFlags(a,8));var d=e.createNew(e.createIdentifier(\"Promise\"),void 0,[a]);return s.esModuleInterop?(r.requestEmitHelper(e.importStarHelper),e.createCall(e.createPropertyAccess(d,e.createIdentifier(\"then\")),void 0,[e.getUnscopedHelperName(\"__importStar\")])):d}function I(n,t){var a,i=e.createCall(e.createPropertyAccess(e.createIdentifier(\"Promise\"),\"resolve\"),void 0,[]),o=e.createCall(e.createIdentifier(\"require\"),void 0,n?[n]:[]);return s.esModuleInterop&&(r.requestEmitHelper(e.importStarHelper),o=e.createCall(e.getUnscopedHelperName(\"__importStar\"),void 0,[o])),u>=2?a=e.createArrowFunction(void 0,void 0,[],void 0,void 0,o):(a=e.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,e.createBlock([e.createReturn(o)])),t&&e.setEmitFlags(a,8)),e.createCall(e.createPropertyAccess(i,\"then\"),void 0,[a])}function M(n,t){return!s.esModuleInterop||67108864&e.getEmitFlags(n)?t:e.getImportNeedsImportStarHelper(n)?(r.requestEmitHelper(e.importStarHelper),e.createCall(e.getUnscopedHelperName(\"__importStar\"),void 0,[t])):e.getImportNeedsImportDefaultHelper(n)?(r.requestEmitHelper(e.importDefaultHelper),e.createCall(e.getUnscopedHelperName(\"__importDefault\"),void 0,[t])):t}function O(n){var t=e.getExternalModuleNameLiteral(n,f,l,c,s),r=[];return t&&r.push(t),e.createCall(e.createIdentifier(\"require\"),void 0,r)}function R(n,t,r){var a=J(n);if(a){for(var i=e.isExportName(n)?t:e.createAssignment(n,t),o=0,s=a;o<s.length;o++){var c=s[o];e.setEmitFlags(i,4),i=W(c,i,r)}return i}return e.createAssignment(n,t)}function P(n){return e.isBindingPattern(n.name)?e.flattenDestructuringAssignment(e.visitNode(n,k),void 0,r,0,!1,R):e.createAssignment(e.setTextRange(e.createPropertyAccess(e.createIdentifier(\"exports\"),n.name),n.name),e.visitNode(n.initializer,k))}function w(n){return 0!=(4194304&e.getEmitFlags(n))}function F(e,n){if(_.exportEquals)return e;var t=n.importClause;if(!t)return e;t.name&&(e=j(e,t));var r=t.namedBindings;if(r)switch(r.kind){case 255:e=j(e,r);break;case 256:for(var a=0,i=r.elements;a<i.length;a++){e=j(e,i[a])}}return e}function G(e,n){return _.exportEquals?e:j(e,n)}function B(e,n){if(_.exportEquals)return e;for(var t=0,r=n.declarationList.declarations;t<r.length;t++){e=V(e,r[t])}return e}function V(n,t){if(_.exportEquals)return n;if(e.isBindingPattern(t.name))for(var r=0,a=t.name.elements;r<a.length;r++){var i=a[r];e.isOmittedExpression(i)||(n=V(n,i))}else e.isGeneratedIdentifier(t.name)||(n=j(n,t));return n}function U(n,t){if(_.exportEquals)return n;e.hasModifier(t,1)&&(n=K(n,e.hasModifier(t,512)?e.createIdentifier(\"default\"):e.getDeclarationName(t),e.getLocalName(t),t));return t.name&&(n=j(n,t)),n}function j(n,t){var r=e.getDeclarationName(t),a=_.exportSpecifiers.get(e.idText(r));if(a)for(var i=0,o=a;i<o.length;i++){var s=o[i];n=K(n,s.name,r,s.name)}return n}function K(n,t,r,a,i){return n=e.append(n,function(n,t,r,a){var i=e.setTextRange(e.createExpressionStatement(W(n,t)),r);e.startOnNewLine(i),a||e.setEmitFlags(i,1536);return i}(t,r,a,i))}function H(){var n;return n=0===u?e.createExpressionStatement(W(e.createIdentifier(\"__esModule\"),e.createLiteral(!0))):e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createIdentifier(\"Object\"),\"defineProperty\"),void 0,[e.createIdentifier(\"exports\"),e.createLiteral(\"__esModule\"),e.createObjectLiteral([e.createPropertyAssignment(\"value\",e.createLiteral(!0))])])),e.setEmitFlags(n,1048576),n}function W(n,t,r){return e.setTextRange(e.createAssignment(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.getSynthesizedClone(n)),t),r)}function z(e){switch(e.kind){case 88:case 83:return}return e}function q(n){if(4096&e.getEmitFlags(n)){var t=e.getExternalHelpersModuleName(f);return t?e.createPropertyAccess(t,n):n}if(!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var r=c.getReferencedExportContainer(n,e.isExportName(n));if(r&&288===r.kind)return e.setTextRange(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.getSynthesizedClone(n)),n);var a=c.getReferencedImportDeclaration(n);if(a){if(e.isImportClause(a))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(a.parent),e.createIdentifier(\"default\")),n);if(e.isImportSpecifier(a)){var i=a.propertyName||a.name;return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(a.parent.parent.parent),e.getSynthesizedClone(i)),n)}}}return n}function J(n){if(!e.isGeneratedIdentifier(n)){var t=c.getReferencedImportDeclaration(n)||c.getReferencedValueDeclaration(n);if(t)return _&&_.exportedBindings[e.getOriginalNodeId(t)]}}};var n={name:\"typescript:export-star\",scoped:!0,text:\"\\n            function __export(m) {\\n                for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\\n            }\"};var t={name:\"typescript:dynamicimport-sync-require\",scoped:!0,text:'\\n            var __syncRequire = typeof module === \"object\" && typeof module.exports === \"object\";'};e.importStarHelper={name:\"typescript:commonjsimportstar\",importName:\"__importStar\",scoped:!1,text:'\\nvar __importStar = (this && this.__importStar) || function (mod) {\\n    if (mod && mod.__esModule) return mod;\\n    var result = {};\\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\\n    result[\"default\"] = mod;\\n    return result;\\n};'},e.importDefaultHelper={name:\"typescript:commonjsimportdefault\",importName:\"__importDefault\",scoped:!1,text:'\\nvar __importDefault = (this && this.__importDefault) || function (mod) {\\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\\n};'}}(ts||(ts={})),function(e){e.transformSystemModule=function(n){var t=n.startLexicalEnvironment,r=n.endLexicalEnvironment,a=n.hoistVariableDeclaration,i=n.getCompilerOptions(),o=n.getEmitResolver(),s=n.getEmitHost(),c=n.onSubstituteNode,l=n.onEmitNode;n.onSubstituteNode=function(n,t){if(function(e){return g&&e.id&&g[e.id]}(t=c(n,t)))return t;if(1===n)return function(n){switch(n.kind){case 75:return function(n){if(4096&e.getEmitFlags(n)){var t=e.getExternalHelpersModuleName(u);return t?e.createPropertyAccess(t,n):n}if(!e.isGeneratedIdentifier(n)&&!e.isLocalName(n)){var r=o.getReferencedImportDeclaration(n);if(r){if(e.isImportClause(r))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(r.parent),e.createIdentifier(\"default\")),n);if(e.isImportSpecifier(r))return e.setTextRange(e.createPropertyAccess(e.getGeneratedNameForNode(r.parent.parent.parent),e.getSynthesizedClone(r.propertyName||r.name)),n)}}return n}(n);case 208:return function(n){if(e.isAssignmentOperator(n.operatorToken.kind)&&e.isIdentifier(n.left)&&!e.isGeneratedIdentifier(n.left)&&!e.isLocalName(n.left)&&!e.isDeclarationNameOfEnumOrNamespace(n.left)){var t=z(n.left);if(t){for(var r=n,a=0,i=t;a<i.length;a++){var o=i[a];r=V(o,q(r))}return r}}return n}(n);case 206:case 207:return function(n){if((45===n.operator||46===n.operator)&&e.isIdentifier(n.operand)&&!e.isGeneratedIdentifier(n.operand)&&!e.isLocalName(n.operand)&&!e.isDeclarationNameOfEnumOrNamespace(n.operand)){var t=z(n.operand);if(t){for(var r=207===n.kind?e.setTextRange(e.createPrefix(n.operator,n.operand),n):n,a=0,i=t;a<i.length;a++){var o=i[a];r=V(o,q(r))}return 207===n.kind&&(r=45===n.operator?e.createSubtract(q(r),e.createLiteral(1)):e.createAdd(q(r),e.createLiteral(1))),r}}return n}(n);case 218:return function(n){if(e.isImportMeta(n))return e.createPropertyAccess(m,e.createIdentifier(\"meta\"));return n}(n)}return n}(t);if(4===n)return function(n){switch(n.kind){case 280:return function(n){var t=n.name;if(!e.isGeneratedIdentifier(t)&&!e.isLocalName(t)){var r=o.getReferencedImportDeclaration(t);if(r){if(e.isImportClause(r))return e.setTextRange(e.createPropertyAssignment(e.getSynthesizedClone(t),e.createPropertyAccess(e.getGeneratedNameForNode(r.parent),e.createIdentifier(\"default\"))),n);if(e.isImportSpecifier(r))return e.setTextRange(e.createPropertyAssignment(e.getSynthesizedClone(t),e.createPropertyAccess(e.getGeneratedNameForNode(r.parent.parent.parent),e.getSynthesizedClone(r.propertyName||r.name))),n)}}return n}(n)}return n}(t);return t},n.onEmitNode=function(n,t,r){if(288===t.kind){var a=e.getOriginalNodeId(t);u=t,d=y[a],p=h[a],g=b[a],m=E[a],g&&delete b[a],l(n,t,r),u=void 0,d=void 0,p=void 0,m=void 0,g=void 0}else l(n,t,r)},n.enableSubstitution(75),n.enableSubstitution(280),n.enableSubstitution(208),n.enableSubstitution(206),n.enableSubstitution(207),n.enableSubstitution(218),n.enableEmitNotification(288);var u,d,p,m,f,_,g,y=[],v=[],h=[],b=[],E=[];return e.chainBundle((function(n){if(n.isDeclarationFile||!(e.isEffectiveExternalModule(n,i)||524288&n.transformFlags))return n;var a=e.getOriginalNodeId(n);u=n,_=n,d=y[a]=e.collectExternalModuleInfo(n,o,i),p=e.createUniqueName(\"exports\"),h[a]=p,m=E[a]=e.createUniqueName(\"context\");var c=function(n){for(var t=e.createMap(),r=[],a=0,c=n;a<c.length;a++){var l=c[a],d=e.getExternalModuleNameLiteral(l,u,s,o,i);if(d){var p=d.text,m=t.get(p);void 0!==m?r[m].externalImports.push(l):(t.set(p,r.length),r.push({name:d,externalImports:[l]}))}}return r}(d.externalImports),l=function(n,a){var o=[];t();var s=e.getStrictOptionValue(i,\"alwaysStrict\")||!i.noImplicitUseStrict&&e.isExternalModule(u),c=e.addPrologue(o,n.statements,s,x);o.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(\"__moduleName\",void 0,e.createLogicalAnd(m,e.createPropertyAccess(m,\"id\")))]))),e.visitNode(d.externalHelpersImportDeclaration,x,e.isStatement);var l=e.visitNodes(n.statements,x,e.isStatement,c);e.addRange(o,f),e.insertStatementsAfterStandardPrologue(o,r());var p=function(n){if(!d.hasExportStarsToExportValues)return;if(!d.exportedNames&&0===d.exportSpecifiers.size){for(var t=!1,r=0,a=d.externalImports;r<a.length;r++){if(259===(m=a[r]).kind&&m.exportClause){t=!0;break}}if(!t){var i=T(void 0);return n.push(i),i.name}}var o=[];if(d.exportedNames)for(var s=0,c=d.exportedNames;s<c.length;s++){var l=c[s];\"default\"!==l.escapedText&&o.push(e.createPropertyAssignment(e.createLiteral(l),e.createTrue()))}for(var u=0,p=d.externalImports;u<p.length;u++){var m;if(259===(m=p[u]).kind&&m.exportClause)for(var f=0,_=m.exportClause.elements;f<_.length;f++){var g=_[f];o.push(e.createPropertyAssignment(e.createLiteral(e.idText(g.name||g.propertyName)),e.createTrue()))}}var y=e.createUniqueName(\"exportedNames\");n.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(y,void 0,e.createObjectLiteral(o,!0))])));var v=T(y);return n.push(v),v.name}(o),_=e.createObjectLiteral([e.createPropertyAssignment(\"setters\",S(p,a)),e.createPropertyAssignment(\"execute\",e.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,e.createBlock(l,!0)))]);return _.multiLine=!0,o.push(e.createReturn(_)),e.createBlock(o,!0)}(n,c),v=e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,p),e.createParameter(void 0,void 0,void 0,m)],void 0,l),L=e.tryGetModuleNameFromFile(n,s,i),C=e.createArrayLiteral(e.map(c,(function(e){return e.name}))),A=e.setEmitFlags(e.updateSourceFileNode(n,e.setTextRange(e.createNodeArray([e.createExpressionStatement(e.createCall(e.createPropertyAccess(e.createIdentifier(\"System\"),\"register\"),void 0,L?[L,C,v]:[C,v]))]),n.statements)),1024);i.outFile||i.out||e.moveEmitHelpers(A,l,(function(e){return!e.scoped}));g&&(b[a]=g,g=void 0);return u=void 0,d=void 0,p=void 0,m=void 0,f=void 0,_=void 0,e.aggregateTransformFlags(A)}));function T(n){var t=e.createUniqueName(\"exportStar\"),r=e.createIdentifier(\"m\"),a=e.createIdentifier(\"n\"),i=e.createIdentifier(\"exports\"),o=e.createStrictInequality(a,e.createLiteral(\"default\"));return n&&(o=e.createLogicalAnd(o,e.createLogicalNot(e.createCall(e.createPropertyAccess(n,\"hasOwnProperty\"),void 0,[a])))),e.createFunctionDeclaration(void 0,void 0,void 0,t,void 0,[e.createParameter(void 0,void 0,void 0,r)],void 0,e.createBlock([e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(i,void 0,e.createObjectLiteral([]))])),e.createForIn(e.createVariableDeclarationList([e.createVariableDeclaration(a,void 0)]),r,e.createBlock([e.setEmitFlags(e.createIf(o,e.createExpressionStatement(e.createAssignment(e.createElementAccess(i,a),e.createElementAccess(r,a)))),1)])),e.createExpressionStatement(e.createCall(p,void 0,[i]))],!0))}function S(n,t){for(var r=[],a=0,i=t;a<i.length;a++){for(var o=i[a],s=e.forEach(o.externalImports,(function(n){return e.getLocalNameForExternalImport(n,u)})),c=s?e.getGeneratedNameForNode(s):e.createUniqueName(\"\"),l=[],d=0,m=o.externalImports;d<m.length;d++){var f=m[d],_=e.getLocalNameForExternalImport(f,u);switch(f.kind){case 253:if(!f.importClause)break;case 252:e.Debug.assert(void 0!==_),l.push(e.createExpressionStatement(e.createAssignment(_,c)));break;case 259:if(e.Debug.assert(void 0!==_),f.exportClause){for(var g=[],y=0,v=f.exportClause.elements;y<v.length;y++){var h=v[y];g.push(e.createPropertyAssignment(e.createLiteral(e.idText(h.name)),e.createElementAccess(c,e.createLiteral(e.idText(h.propertyName||h.name)))))}l.push(e.createExpressionStatement(e.createCall(p,void 0,[e.createObjectLiteral(g,!0)])))}else l.push(e.createExpressionStatement(e.createCall(n,void 0,[c])))}}r.push(e.createFunctionExpression(void 0,void 0,void 0,void 0,[e.createParameter(void 0,void 0,void 0,c)],void 0,e.createBlock(l,!0)))}return e.createArrayLiteral(r,!0)}function x(n){switch(n.kind){case 253:return function(n){var t;n.importClause&&a(e.getLocalNameForExternalImport(n,u));if(I(n)){var r=e.getOriginalNodeId(n);v[r]=M(v[r],n)}else t=M(t,n);return e.singleOrMany(t)}(n);case 252:return function(n){var t;if(e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(n),\"import= for internal module references should be handled in an earlier transformer.\"),a(e.getLocalNameForExternalImport(n,u)),I(n)){var r=e.getOriginalNodeId(n);v[r]=O(v[r],n)}else t=O(t,n);return e.singleOrMany(t)}(n);case 259:return;case 258:return function(n){if(n.isExportEquals)return;var t=e.visitNode(n.expression,K,e.isExpression),r=n.original;if(!r||!I(r))return B(e.createIdentifier(\"default\"),t,!0);var a=e.getOriginalNodeId(n);v[a]=G(v[a],e.createIdentifier(\"default\"),t,!0)}(n);default:return U(n)}}function L(n){if(e.isBindingPattern(n.name))for(var t=0,r=n.name.elements;t<r.length;t++){var i=r[t];e.isOmittedExpression(i)||L(i)}else a(e.getSynthesizedClone(n.name))}function C(n){return 0==(2097152&e.getEmitFlags(n))&&(288===_.kind||0==(3&e.getOriginalNode(n).flags))}function A(t,r){var a=r?D:k;return e.isBindingPattern(t.name)?e.flattenDestructuringAssignment(t,K,n,0,!1,a):t.initializer?a(t.name,e.visitNode(t.initializer,K,e.isExpression)):t.name}function D(e,n,t){return N(e,n,t,!0)}function k(e,n,t){return N(e,n,t,!1)}function N(n,t,r,i){return a(e.getSynthesizedClone(n)),i?V(n,q(e.setTextRange(e.createAssignment(n,t),r))):q(e.setTextRange(e.createAssignment(n,t),r))}function I(n){return 0!=(4194304&e.getEmitFlags(n))}function M(e,n){if(d.exportEquals)return e;var t=n.importClause;if(!t)return e;t.name&&(e=F(e,t));var r=t.namedBindings;if(r)switch(r.kind){case 255:e=F(e,r);break;case 256:for(var a=0,i=r.elements;a<i.length;a++){e=F(e,i[a])}}return e}function O(e,n){return d.exportEquals?e:F(e,n)}function R(e,n,t){if(d.exportEquals)return e;for(var r=0,a=n.declarationList.declarations;r<a.length;r++){var i=a[r];(i.initializer||t)&&(e=P(e,i,t))}return e}function P(n,t,r){if(d.exportEquals)return n;if(e.isBindingPattern(t.name))for(var a=0,i=t.name.elements;a<i.length;a++){var o=i[a];e.isOmittedExpression(o)||(n=P(n,o,r))}else if(!e.isGeneratedIdentifier(t.name)){var s=void 0;r&&(n=G(n,t.name,e.getLocalName(t)),s=e.idText(t.name)),n=F(n,t,s)}return n}function w(n,t){if(d.exportEquals)return n;var r;if(e.hasModifier(t,1)){var a=e.hasModifier(t,512)?e.createLiteral(\"default\"):t.name;n=G(n,a,e.getLocalName(t)),r=e.getTextOfIdentifierOrLiteral(a)}return t.name&&(n=F(n,t,r)),n}function F(n,t,r){if(d.exportEquals)return n;var a=e.getDeclarationName(t),i=d.exportSpecifiers.get(e.idText(a));if(i)for(var o=0,s=i;o<s.length;o++){var c=s[o];c.name.escapedText!==r&&(n=G(n,c.name,a))}return n}function G(n,t,r,a){return n=e.append(n,B(t,r,a))}function B(n,t,r){var a=e.createExpressionStatement(V(n,t));return e.startOnNewLine(a),r||e.setEmitFlags(a,1536),a}function V(n,t){var r=e.isIdentifier(n)?e.createLiteral(n):n;return e.setEmitFlags(t,1536|e.getEmitFlags(t)),e.setCommentRange(e.createCall(p,void 0,[r,t]),t)}function U(t){switch(t.kind){case 224:return function(n){if(!C(n.declarationList))return e.visitNode(n,K,e.isStatement);for(var t,r,a=e.hasModifier(n,1),i=I(n),o=0,s=n.declarationList.declarations;o<s.length;o++){var c=s[o];c.initializer?t=e.append(t,A(c,a&&!i)):L(c)}if(t&&(r=e.append(r,e.setTextRange(e.createExpressionStatement(e.inlineExpressions(t)),n))),i){var l=e.getOriginalNodeId(n);v[l]=R(v[l],n,a)}else r=R(r,n,!1);return e.singleOrMany(r)}(t);case 243:return function(t){if(f=e.hasModifier(t,1)?e.append(f,e.updateFunctionDeclaration(t,t.decorators,e.visitNodes(t.modifiers,W,e.isModifier),t.asteriskToken,e.getDeclarationName(t,!0,!0),void 0,e.visitNodes(t.parameters,K,e.isParameterDeclaration),void 0,e.visitNode(t.body,K,e.isBlock))):e.append(f,e.visitEachChild(t,K,n)),I(t)){var r=e.getOriginalNodeId(t);v[r]=w(v[r],t)}else f=w(f,t)}(t);case 244:return function(n){var t,r=e.getLocalName(n);if(a(r),t=e.append(t,e.setTextRange(e.createExpressionStatement(e.createAssignment(r,e.setTextRange(e.createClassExpression(void 0,n.name,void 0,e.visitNodes(n.heritageClauses,K,e.isHeritageClause),e.visitNodes(n.members,K,e.isClassElement)),n))),n)),I(n)){var i=e.getOriginalNodeId(n);v[i]=w(v[i],n)}else t=w(t,n);return e.singleOrMany(t)}(t);case 229:return function(n){var t=_;return _=n,n=e.updateFor(n,n.initializer&&j(n.initializer),e.visitNode(n.condition,K,e.isExpression),e.visitNode(n.incrementor,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement)),_=t,n}(t);case 230:return function(n){var t=_;return _=n,n=e.updateForIn(n,j(n.initializer),e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock)),_=t,n}(t);case 231:return function(n){var t=_;return _=n,n=e.updateForOf(n,n.awaitModifier,j(n.initializer),e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock)),_=t,n}(t);case 227:return function(n){return e.updateDo(n,e.visitNode(n.statement,U,e.isStatement,e.liftToBlock),e.visitNode(n.expression,K,e.isExpression))}(t);case 228:return function(n){return e.updateWhile(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 237:return function(n){return e.updateLabel(n,n.label,e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 235:return function(n){return e.updateWith(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.statement,U,e.isStatement,e.liftToBlock))}(t);case 236:return function(n){return e.updateSwitch(n,e.visitNode(n.expression,K,e.isExpression),e.visitNode(n.caseBlock,U,e.isCaseBlock))}(t);case 250:return function(n){var t=_;return _=n,n=e.updateCaseBlock(n,e.visitNodes(n.clauses,U,e.isCaseOrDefaultClause)),_=t,n}(t);case 275:return function(n){return e.updateCaseClause(n,e.visitNode(n.expression,K,e.isExpression),e.visitNodes(n.statements,U,e.isStatement))}(t);case 276:case 239:return function(t){return e.visitEachChild(t,U,n)}(t);case 278:return function(n){var t=_;return _=n,n=e.updateCatchClause(n,n.variableDeclaration,e.visitNode(n.block,U,e.isBlock)),_=t,n}(t);case 222:return function(t){var r=_;return _=t,t=e.visitEachChild(t,U,n),_=r,t}(t);case 321:return function(n){if(I(n)&&224===n.original.kind){var t=e.getOriginalNodeId(n),r=e.hasModifier(n.original,1);v[t]=R(v[t],n.original,r)}return n}(t);case 322:return function(n){var t=e.getOriginalNodeId(n),r=v[t];if(r)return delete v[t],e.append(r,n);var a=e.getOriginalNode(n);return e.isModuleOrEnumDeclaration(a)?e.append(F(r,a),n):n}(t);default:return K(t)}}function j(t){if(function(n){return e.isVariableDeclarationList(n)&&C(n)}(t)){for(var r=void 0,a=0,i=t.declarations;a<i.length;a++){var o=i[a];r=e.append(r,A(o,!1)),o.initializer||L(o)}return r?e.inlineExpressions(r):e.createOmittedExpression()}return e.visitEachChild(t,U,n)}function K(t){return e.isDestructuringAssignment(t)?function(t){if(H(t.left))return e.flattenDestructuringAssignment(t,K,n,0,!0);return e.visitEachChild(t,K,n)}(t):e.isImportCall(t)?function(n){return e.createCall(e.createPropertyAccess(m,e.createIdentifier(\"import\")),void 0,e.some(n.arguments)?[e.visitNode(n.arguments[0],K)]:[])}(t):512&t.transformFlags||524288&t.transformFlags?e.visitEachChild(t,K,n):t}function H(n){if(e.isAssignmentExpression(n,!0))return H(n.left);if(e.isSpreadElement(n))return H(n.expression);if(e.isObjectLiteralExpression(n))return e.some(n.properties,H);if(e.isArrayLiteralExpression(n))return e.some(n.elements,H);if(e.isShorthandPropertyAssignment(n))return H(n.name);if(e.isPropertyAssignment(n))return H(n.initializer);if(e.isIdentifier(n)){var t=o.getReferencedExportContainer(n);return void 0!==t&&288===t.kind}return!1}function W(e){switch(e.kind){case 88:case 83:return}return e}function z(n){var t;if(!e.isGeneratedIdentifier(n)){var r=o.getReferencedImportDeclaration(n)||o.getReferencedValueDeclaration(n);if(r){var a=o.getReferencedExportContainer(n,!1);a&&288===a.kind&&(t=e.append(t,e.getDeclarationName(r))),t=e.addRange(t,d&&d.exportedBindings[e.getOriginalNodeId(r)])}}return t}function q(n){return void 0===g&&(g=[]),g[e.getNodeId(n)]=!0,n}}}(ts||(ts={})),function(e){e.transformES2015Module=function(n){var t,r=n.getCompilerOptions(),a=n.onEmitNode,i=n.onSubstituteNode;return n.onEmitNode=function(n,r,i){e.isSourceFile(r)?(t=e.createMap(),a(n,r,i),t=void 0):a(n,r,i)},n.onSubstituteNode=function(n,r){if(r=i(n,r),t&&e.isIdentifier(r)&&4096&e.getEmitFlags(r))return function(n){var r=e.idText(n),a=t.get(r);a||t.set(r,a=e.createFileLevelUniqueName(r));return a}(r);return r},n.enableEmitNotification(288),n.enableSubstitution(75),e.chainBundle((function(t){if(t.isDeclarationFile)return t;if(e.isExternalModule(t)||r.isolatedModules){var a=e.createExternalHelpersImportDeclarationIfNeeded(t,r);if(a){var i=[],s=e.addPrologue(i,t.statements);return e.append(i,a),e.addRange(i,e.visitNodes(t.statements,o,e.isStatement,s)),e.updateSourceFileNode(t,e.setTextRange(e.createNodeArray(i),t.statements))}return e.visitEachChild(t,o,n)}return t}));function o(e){switch(e.kind){case 252:return;case 258:return function(e){return e.isExportEquals?void 0:e}(e)}return e}}}(ts||(ts={})),function(e){function n(n){return e.isVariableDeclaration(n)||e.isPropertyDeclaration(n)||e.isPropertySignature(n)||e.isPropertyAccessExpression(n)||e.isBindingElement(n)||e.isConstructorDeclaration(n)?t:e.isSetAccessor(n)||e.isGetAccessor(n)?function(t){var r;r=163===n.kind?e.hasModifier(n,32)?t.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;return{diagnosticMessage:r,errorNode:n.name,typeName:n.name}}:e.isConstructSignatureDeclaration(n)||e.isCallSignatureDeclaration(n)||e.isMethodDeclaration(n)||e.isMethodSignature(n)||e.isFunctionDeclaration(n)||e.isIndexSignatureDeclaration(n)?function(t){var r;switch(n.kind){case 165:r=t.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 164:r=t.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 166:r=t.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 160:case 159:r=e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:244===n.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:t.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 243:r=t.errorModuleName?2===t.accessibility?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail(\"This is unknown kind for signature: \"+n.kind)}return{diagnosticMessage:r,errorNode:n.name||n}}:e.isParameter(n)?e.isParameterPropertyDeclaration(n,n.parent)&&e.hasModifier(n.parent,8)?t:function(t){var r=function(t){switch(n.parent.kind){case 161:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 165:case 170:return t.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 164:return t.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 166:return t.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 160:case 159:return e.hasModifier(n.parent,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:244===n.parent.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 243:case 169:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 163:case 162:return t.errorModuleName?2===t.accessibility?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail(\"Unknown parent for parameter: \"+e.SyntaxKind[n.parent.kind])}}(t);return void 0!==r?{diagnosticMessage:r,errorNode:n,typeName:n.name}:void 0}:e.isTypeParameterDeclaration(n)?function(){var t;switch(n.parent.kind){case 244:t=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 245:t=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 185:t=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 170:case 165:t=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 164:t=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 160:case 159:t=e.hasModifier(n.parent,32)?e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:244===n.parent.parent.kind?e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 243:t=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 246:t=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail(\"This is unknown parent for type parameter: \"+n.parent.kind)}return{diagnosticMessage:t,errorNode:n,typeName:n.name}}:e.isExpressionWithTypeArguments(n)?function(){var t;t=244===n.parent.parent.kind?e.isHeritageClause(n.parent)&&112===n.parent.token?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;return{diagnosticMessage:t,errorNode:n,typeName:e.getNameOfDeclaration(n.parent.parent)}}:e.isImportEqualsDeclaration(n)?function(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:n,typeName:n.name}}:e.isTypeAliasDeclaration(n)?function(){return{diagnosticMessage:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:n.type,typeName:n.name}}:e.Debug.assertNever(n,\"Attempted to set a declaration diagnostic context for unhandled node kind: \"+e.SyntaxKind[n.kind]);function t(t){var r=function(t){return 241===n.kind||190===n.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1:158===n.kind||193===n.kind||157===n.kind||155===n.kind&&e.hasModifier(n.parent,8)?e.hasModifier(n,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:244===n.parent.kind||155===n.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1:void 0}(t);return void 0!==r?{diagnosticMessage:r,errorNode:n,typeName:n.name}:void 0}}e.canProduceDiagnostics=function(n){return e.isVariableDeclaration(n)||e.isPropertyDeclaration(n)||e.isPropertySignature(n)||e.isBindingElement(n)||e.isSetAccessor(n)||e.isGetAccessor(n)||e.isConstructSignatureDeclaration(n)||e.isCallSignatureDeclaration(n)||e.isMethodDeclaration(n)||e.isMethodSignature(n)||e.isFunctionDeclaration(n)||e.isParameter(n)||e.isTypeParameterDeclaration(n)||e.isExpressionWithTypeArguments(n)||e.isImportEqualsDeclaration(n)||e.isTypeAliasDeclaration(n)||e.isConstructorDeclaration(n)||e.isIndexSignatureDeclaration(n)||e.isPropertyAccessExpression(n)},e.createGetSymbolAccessibilityDiagnosticForNodeName=function(t){return e.isSetAccessor(t)||e.isGetAccessor(t)?function(n){var r=function(n){return e.hasModifier(t,32)?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:244===t.parent.kind?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:n.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}(n);return void 0!==r?{diagnosticMessage:r,errorNode:t,typeName:t.name}:void 0}:e.isMethodSignature(t)||e.isMethodDeclaration(t)?function(n){var r=function(n){return e.hasModifier(t,32)?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:244===t.parent.kind?n.errorModuleName?2===n.accessibility?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:n.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}(n);return void 0!==r?{diagnosticMessage:r,errorNode:t,typeName:t.name}:void 0}:n(t)},e.createGetSymbolAccessibilityDiagnosticForNode=n}(ts||(ts={})),function(e){function n(n,t){var r=t.text.substring(n.pos,n.end);return e.stringContains(r,\"@internal\")}function t(t,r){var a=e.getParseTreeNode(t);if(a&&155===a.kind){var i=a.parent.parameters.indexOf(a),o=i>0?a.parent.parameters[i-1]:void 0,s=r.text,c=o?e.concatenate(e.getTrailingCommentRanges(s,e.skipTrivia(s,o.end+1,!1,!0)),e.getLeadingCommentRanges(s,t.pos)):e.getTrailingCommentRanges(s,e.skipTrivia(s,t.pos,!1,!0));return c&&c.length&&n(e.last(c),r)}var l=a&&e.getLeadingCommentRangesOfNode(a,r);return!!e.forEach(l,(function(e){return n(e,r)}))}e.getDeclarationDiagnostics=function(n,t,a){if(a&&e.isJsonSourceFile(a))return[];var i=n.getCompilerOptions();return e.transformNodes(t,n,i,a?[a]:e.filter(n.getSourceFiles(),e.isSourceFileNotJson),[r],!1).diagnostics},e.isInternalDeclaration=t;function r(n){var r,o,s,c,l,u,d,p,m,f,_,g=function(){return e.Debug.fail(\"Diagnostic emitted without context\")},y=g,v=!0,h=!1,b=!1,E=!1,T=!1,S=n.getEmitHost(),x={trackSymbol:function(e,n,t){if(262144&e.flags)return;N(L.isSymbolAccessible(e,n,t,!0)),k(L.getTypeReferenceDirectivesForSymbol(e,t))},reportInaccessibleThisError:function(){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(d),\"this\"))},reportInaccessibleUniqueSymbolError:function(){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(d),\"unique symbol\"))},reportPrivateInBaseOfClassExpression:function(t){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.Property_0_of_exported_class_expression_may_not_be_private_or_protected,t))},reportLikelyUnsafeImportRequiredError:function(t){d&&n.addDiagnostic(e.createDiagnosticForNode(d,e.Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary,e.declarationNameToString(d),t))},moduleResolverHost:S,trackReferencedAmbientModule:function(n,t){var r=L.getTypeReferenceDirectivesForSymbol(t,67108863);if(e.length(r))return k(r);var a=e.getSourceFileOfNode(n);m.set(\"\"+e.getOriginalNodeId(a),a)},trackExternalModuleSymbolOfImportTypeNode:function(e){h||(u||(u=[])).push(e)}},L=n.getEmitResolver(),C=n.getCompilerOptions(),A=C.noResolve,D=C.stripInternal;return function(t){if(288===t.kind&&t.isDeclarationFile)return t;if(289===t.kind){h=!0,m=e.createMap(),f=e.createMap();var a=!1,i=e.createBundle(e.map(t.sourceFiles,(function(t){if(!t.isDeclarationFile){if(a=a||t.hasNoDefaultLib,p=t,r=t,s=void 0,l=!1,c=e.createMap(),y=g,E=!1,T=!1,M(t,m),O(t,f),e.isExternalOrCommonJsModule(t)||e.isJsonSourceFile(t)){b=!1,v=!1;var i=e.isSourceFileJS(t)?e.createNodeArray(I(t,!0)):e.visitNodes(t.statements,X);return e.updateSourceFileNode(t,[e.createModuleDeclaration([],[e.createModifier(129)],e.createLiteral(e.getResolvedExternalModuleName(n.getEmitHost(),t)),e.createModuleBlock(e.setTextRange(e.createNodeArray(q(i)),t.statements)))],!0,[],[],!1,[])}v=!0;var o=e.isSourceFileJS(t)?e.createNodeArray(I(t)):e.visitNodes(t.statements,X);return e.updateSourceFileNode(t,q(o),!0,[],[],!1,[])}})),e.mapDefined(t.prepends,(function(n){if(291===n.kind){var t=e.createUnparsedSourceFile(n,\"dts\",D);return a=a||!!t.hasNoDefaultLib,M(t,m),k(t.typeReferenceDirectives),O(t,f),t}return n})));i.syntheticFileReferences=[],i.syntheticTypeReferences=G(),i.syntheticLibReferences=F(),i.hasNoDefaultLib=a;var d=e.getDirectoryPath(e.normalizeSlashes(e.getOutputPathsFor(t,S,!0).declarationFilePath)),x=V(i.syntheticFileReferences,d);return m.forEach(x),i}v=!0,E=!1,T=!1,r=t,p=t,y=g,h=!1,b=!1,l=!1,s=void 0,c=e.createMap(),o=void 0,m=M(p,e.createMap()),f=O(p,e.createMap());var L,A=[],N=e.getDirectoryPath(e.normalizeSlashes(e.getOutputPathsFor(t,S,!0).declarationFilePath)),R=V(A,N);if(e.isSourceFileJS(p))L=e.createNodeArray(I(t)),m.forEach(R),_=e.filter(L,e.isAnyImportSyntax);else{var P=e.visitNodes(t.statements,X);L=e.setTextRange(e.createNodeArray(q(P)),t.statements),m.forEach(R),_=e.filter(L,e.isAnyImportSyntax),e.isExternalModule(t)&&(!b||E&&!T)&&(L=e.setTextRange(e.createNodeArray(__spreadArrays(L,[e.createEmptyExports()])),L))}var w=e.updateSourceFileNode(t,L,!0,A,G(),t.hasNoDefaultLib,F());return w.exportedModulesFromDeclarationEmit=u,w;function F(){return e.map(e.arrayFrom(f.keys()),(function(e){return{fileName:e,pos:-1,end:-1}}))}function G(){return o?e.mapDefined(e.arrayFrom(o.keys()),B):[]}function B(n){if(_)for(var t=0,r=_;t<r.length;t++){var a=r[t];if(e.isImportEqualsDeclaration(a)&&e.isExternalModuleReference(a.moduleReference)){var i=a.moduleReference.expression;if(e.isStringLiteralLike(i)&&i.text===n)return}else if(e.isImportDeclaration(a)&&e.isStringLiteral(a.moduleSpecifier)&&a.moduleSpecifier.text===n)return}return{fileName:n,pos:-1,end:-1}}function V(n,r){return function(a){var i;if(a.isDeclarationFile)i=a.fileName;else{if(h&&e.contains(t.sourceFiles,a))return;var o=e.getOutputPathsFor(a,S,!0);i=o.declarationFilePath||o.jsFilePath||a.fileName}if(i){var s=e.moduleSpecifiers.getModuleSpecifier(__assign(__assign({},C),{baseUrl:C.baseUrl&&e.toPath(C.baseUrl,S.getCurrentDirectory(),S.getCanonicalFileName)}),p,e.toPath(r,S.getCurrentDirectory(),S.getCanonicalFileName),e.toPath(i,S.getCurrentDirectory(),S.getCanonicalFileName),S,S.getSourceFiles(),void 0,S.redirectTargetsMap);if(!e.pathIsRelative(s))return void k([s]);var c=e.getRelativePathToDirectoryOrUrl(r,i,S.getCurrentDirectory(),S.getCanonicalFileName,!1);if(e.startsWith(c,\"./\")&&e.hasExtension(c)&&(c=c.substring(2)),e.startsWith(c,\"node_modules/\")||-1!==c.indexOf(\"/node_modules/\"))return;n.push({pos:-1,end:-1,fileName:c})}}}};function k(n){if(n){o=o||e.createMap();for(var t=0,r=n;t<r.length;t++){var a=r[t];o.set(a,!0)}}}function N(t){if(0===t.accessibility){if(t&&t.aliasesToMakeVisible)if(s)for(var r=0,a=t.aliasesToMakeVisible;r<a.length;r++){var i=a[r];e.pushIfUnique(s,i)}else s=t.aliasesToMakeVisible}else{var o=y(t);o&&(o.typeName?n.addDiagnostic(e.createDiagnosticForNode(t.errorNode||o.errorNode,o.diagnosticMessage,e.getTextOfNode(o.typeName),t.errorSymbolName,t.errorModuleName)):n.addDiagnostic(e.createDiagnosticForNode(t.errorNode||o.errorNode,o.diagnosticMessage,t.errorSymbolName,t.errorModuleName)))}}function I(n,t){var r=y;y=function(t){return{diagnosticMessage:t.errorModuleName?e.Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:e.Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,errorNode:t.errorNode||n}};var a=L.getDeclarationStatementsForSourceFile(n,531469,x,t);return y=r,a}function M(n,t){return A||!e.isUnparsedSource(n)&&e.isSourceFileJS(n)?t:(e.forEach(n.referencedFiles,(function(r){var a=S.getSourceFileFromReference(n,r);a&&t.set(\"\"+e.getOriginalNodeId(a),a)})),t)}function O(n,t){return e.forEach(n.libReferenceDirectives,(function(e){S.getLibFileFromReference(e)&&t.set(e.fileName.toLocaleLowerCase(),!0)})),t}function R(n,t,r){var i;l||(i=y,y=e.createGetSymbolAccessibilityDiagnosticForNode(n));var o=e.updateParameter(n,void 0,function(n,t,r){return e.createModifiersFromModifierFlags(a(n,t,r))}(n,t),n.dotDotDotToken,function n(t){return 75===t.kind?t:189===t.kind?e.updateArrayBindingPattern(t,e.visitNodes(t.elements,r)):e.updateObjectBindingPattern(t,e.visitNodes(t.elements,r));function r(t){return 214===t.kind?t:e.updateBindingElement(t,t.dotDotDotToken,t.propertyName,n(t.name),P(t)?t.initializer:void 0)}}(n.name),L.isOptionalParameter(n)?n.questionToken||e.createToken(57):void 0,F(n,r||n.type,!0),w(n));return l||(y=i),o}function P(n){return function(n){switch(n.kind){case 158:case 157:return!e.hasModifier(n,8);case 155:case 241:return!0}return!1}(n)&&L.isLiteralConstDeclaration(e.getParseTreeNode(n))}function w(n){if(P(n))return L.createLiteralConstValue(e.getParseTreeNode(n),x)}function F(n,t,a){if((a||!e.hasModifier(n,8))&&!P(n)){var i,o=155===n.kind&&(L.isRequiredInitializedParameter(n)||L.isOptionalUninitializedParameterProperty(n));return t&&!o?e.visitNode(t,J):e.getParseTreeNode(n)?163===n.kind?e.createKeywordTypeNode(124):(d=n.name,l||(i=y,y=e.createGetSymbolAccessibilityDiagnosticForNode(n)),241===n.kind||190===n.kind?s(L.createTypeOfDeclaration(n,r,531469,x)):155===n.kind||158===n.kind||157===n.kind?n.initializer?s(L.createTypeOfDeclaration(n,r,531469,x,o)||L.createTypeOfExpression(n.initializer,r,531469,x)):s(L.createTypeOfDeclaration(n,r,531469,x,o)):s(L.createReturnTypeOfSignatureDeclaration(n,r,531469,x))):t?e.visitNode(t,J):e.createKeywordTypeNode(124)}function s(n){return d=void 0,l||(y=i),n||e.createKeywordTypeNode(124)}}function G(n){switch((n=e.getParseTreeNode(n)).kind){case 243:case 248:case 245:case 244:case 246:case 247:return!L.isDeclarationVisible(n);case 241:return!B(n);case 252:case 253:case 259:case 258:return!1}return!1}function B(n){return!e.isOmittedExpression(n)&&(e.isBindingPattern(n.name)?e.some(n.name.elements,B):L.isDeclarationVisible(n))}function V(n,t,r){if(!e.hasModifier(n,8)){var a=e.map(t,(function(e){return R(e,r)}));if(a)return e.createNodeArray(a,t.hasTrailingComma)}}function U(n,t){var r;if(!t){var a=e.getThisParameter(n);a&&(r=[R(a)])}if(e.isSetAccessorDeclaration(n)){var i=void 0;if(!t){var o=e.getSetAccessorValueParameter(n);if(o)i=R(o,void 0,te(n,L.getAllAccessorDeclarations(n)))}i||(i=e.createParameter(void 0,void 0,void 0,\"value\")),r=e.append(r,i)}return e.createNodeArray(r||e.emptyArray)}function j(n,t){return e.hasModifier(n,8)?void 0:e.visitNodes(t,J)}function K(n){return e.isSourceFile(n)||e.isTypeAliasDeclaration(n)||e.isModuleDeclaration(n)||e.isClassDeclaration(n)||e.isInterfaceDeclaration(n)||e.isFunctionLike(n)||e.isIndexSignatureDeclaration(n)||e.isMappedTypeNode(n)}function H(e,n){N(L.isEntityNameVisible(e,n)),k(L.getTypeReferenceDirectivesForEntityName(e))}function W(n,t){return e.hasJSDocNodes(n)&&e.hasJSDocNodes(t)&&(n.jsDoc=t.jsDoc),e.setCommentRange(n,e.getCommentRange(t))}function z(t,r){if(r){if(b=b||248!==t.kind&&187!==t.kind,e.isStringLiteralLike(r))if(h){var a=e.getExternalModuleNameFromDeclaration(n.getEmitHost(),L,t);if(a)return e.createLiteral(a)}else{var i=L.getSymbolOfExternalModuleSpecifier(r);i&&(u||(u=[])).push(i)}return r}}function q(n){for(;e.length(s);){var t=s.shift();if(!e.isLateVisibilityPaintedStatement(t))return e.Debug.fail(\"Late replaced statement was found which is not handled by the declaration transformer!: \"+(e.SyntaxKind?e.SyntaxKind[t.kind]:t.kind));var r=v;v=t.parent&&e.isSourceFile(t.parent)&&!(e.isExternalModule(t.parent)&&h);var a=Q(t);v=r,c.set(\"\"+e.getOriginalNodeId(t),a)}return e.visitNodes(n,(function(n){if(e.isLateVisibilityPaintedStatement(n)){var t=\"\"+e.getOriginalNodeId(n);if(c.has(t)){var r=c.get(t);return c.delete(t),r&&((e.isArray(r)?e.some(r,e.needsScopeMarker):e.needsScopeMarker(r))&&(E=!0),e.isSourceFile(n.parent)&&(e.isArray(r)?e.some(r,e.isExternalModuleIndicator):e.isExternalModuleIndicator(r))&&(b=!0)),r}}return n}))}function J(t){if(!$(t)){if(e.isDeclaration(t)){if(G(t))return;if(e.hasDynamicName(t)&&!L.isLateBound(e.getParseTreeNode(t)))return}if(!(e.isFunctionLike(t)&&L.isImplementationOfOverload(t)||e.isSemicolonClassElement(t))){var a;K(t)&&(a=r,r=t);var i=y,o=e.canProduceDiagnostics(t),s=l,c=(172===t.kind||185===t.kind)&&246!==t.parent.kind;if((e.isMethodDeclaration(t)||e.isMethodSignature(t))&&e.hasModifier(t,8)){if(t.symbol&&t.symbol.declarations&&t.symbol.declarations[0]!==t)return;return T(e.createProperty(void 0,ne(t),t.name,void 0,void 0,void 0))}if(o&&!l&&(y=e.createGetSymbolAccessibilityDiagnosticForNode(t)),e.isTypeQueryNode(t)&&H(t.exprName,r),c&&(l=!0),function(e){switch(e.kind){case 165:case 161:case 160:case 162:case 163:case 158:case 157:case 159:case 164:case 166:case 241:case 154:case 215:case 168:case 179:case 169:case 170:case 187:return!0}return!1}(t))switch(t.kind){case 215:(e.isEntityName(t.expression)||e.isEntityNameExpression(t.expression))&&H(t.expression,r);var u=e.visitEachChild(t,J,n);return T(e.updateExpressionWithTypeArguments(u,e.parenthesizeTypeParameters(u.typeArguments),u.expression));case 168:H(t.typeName,r);u=e.visitEachChild(t,J,n);return T(e.updateTypeReferenceNode(u,u.typeName,e.parenthesizeTypeParameters(u.typeArguments)));case 165:return T(e.updateConstructSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type)));case 161:var p=e.hasModifier(t,8),m=e.createSignatureDeclaration(161,p?void 0:j(t,t.typeParameters),p?void 0:V(t,t.parameters,0),void 0);return m.modifiers=e.createNodeArray(ne(t)),T(m);case 160:var f=e.createSignatureDeclaration(159,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type));return f.name=t.name,f.modifiers=e.createNodeArray(ne(t)),f.questionToken=t.questionToken,T(f);case 162:p=e.hasModifier(t,8);var _=te(t,L.getAllAccessorDeclarations(t));return T(e.updateGetAccessor(t,void 0,ne(t),t.name,U(t,p),p?void 0:F(t,_),void 0));case 163:return T(e.updateSetAccessor(t,void 0,ne(t),t.name,U(t,e.hasModifier(t,8)),void 0));case 158:return T(e.updateProperty(t,void 0,ne(t),t.name,t.questionToken,e.hasModifier(t,8)?void 0:F(t,t.type),w(t)));case 157:return T(e.updatePropertySignature(t,ne(t),t.name,t.questionToken,e.hasModifier(t,8)?void 0:F(t,t.type),w(t)));case 159:return T(e.updateMethodSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type),t.name,t.questionToken));case 164:return T(e.updateCallSignature(t,j(t,t.typeParameters),V(t,t.parameters),F(t,t.type)));case 166:return T(e.updateIndexSignature(t,void 0,ne(t),V(t,t.parameters),e.visitNode(t.type,J)||e.createKeywordTypeNode(124)));case 241:return e.isBindingPattern(t.name)?Z(t.name):(c=!0,l=!0,T(e.updateVariableDeclaration(t,t.name,F(t,t.type),w(t))));case 154:return function(n){return 160===n.parent.kind&&e.hasModifier(n.parent,8)}(t)&&(t.default||t.constraint)?T(e.updateTypeParameterDeclaration(t,t.name,void 0,void 0)):T(e.visitEachChild(t,J,n));case 179:var g=e.visitNode(t.checkType,J),v=e.visitNode(t.extendsType,J),h=r;r=t.trueType;var b=e.visitNode(t.trueType,J);r=h;var E=e.visitNode(t.falseType,J);return T(e.updateConditionalTypeNode(t,g,v,b,E));case 169:return T(e.updateFunctionTypeNode(t,e.visitNodes(t.typeParameters,J),V(t,t.parameters),e.visitNode(t.type,J)));case 170:return T(e.updateConstructorTypeNode(t,e.visitNodes(t.typeParameters,J),V(t,t.parameters),e.visitNode(t.type,J)));case 187:return e.isLiteralImportTypeNode(t)?T(e.updateImportTypeNode(t,e.updateLiteralTypeNode(t.argument,z(t,t.argument.literal)),t.qualifier,e.visitNodes(t.typeArguments,J,e.isTypeNode),t.isTypeOf)):T(t);default:e.Debug.assertNever(t,\"Attempted to process unhandled node kind: \"+e.SyntaxKind[t.kind])}return T(e.visitEachChild(t,J,n))}}function T(n){return n&&o&&e.hasDynamicName(t)&&function(n){var t;l||(t=y,y=e.createGetSymbolAccessibilityDiagnosticForNodeName(n));d=n.name,e.Debug.assert(L.isLateBound(e.getParseTreeNode(n))),H(n.name.expression,r),l||(y=t);d=void 0}(t),K(t)&&(r=a),o&&!l&&(y=i),c&&(l=s),n===t?n:n&&e.setOriginalNode(W(n,t),t)}}function X(n){if(function(e){switch(e.kind){case 243:case 248:case 252:case 245:case 244:case 246:case 247:case 224:case 253:case 259:case 258:return!0}return!1}(n)&&!$(n)){switch(n.kind){case 259:return e.isSourceFile(n.parent)&&(b=!0),T=!0,e.updateExportDeclaration(n,void 0,n.modifiers,n.exportClause,z(n,n.moduleSpecifier));case 258:if(e.isSourceFile(n.parent)&&(b=!0),T=!0,75===n.expression.kind)return n;var t=e.createOptimisticUniqueName(\"_default\");y=function(){return{diagnosticMessage:e.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,errorNode:n}};var r=e.createVariableDeclaration(t,L.createTypeOfExpression(n.expression,n,531469,x),void 0);return[e.createVariableStatement(v?[e.createModifier(129)]:[],e.createVariableDeclarationList([r],2)),e.updateExportAssignment(n,n.decorators,n.modifiers,t)]}var a=Q(n);return c.set(\"\"+e.getOriginalNodeId(n),a),n}}function Y(n){if(e.isImportEqualsDeclaration(n)||e.hasModifier(n,512))return n;var t=e.getMutableClone(n),r=e.createModifiersFromModifierFlags(3070&e.getModifierFlags(n));return t.modifiers=r.length?e.createNodeArray(r):void 0,t}function Q(n){if(!$(n)){switch(n.kind){case 252:return function(n){if(L.isDeclarationVisible(n)){if(263===n.moduleReference.kind){var t=e.getExternalModuleImportEqualsDeclarationExpression(n);return e.updateImportEqualsDeclaration(n,void 0,n.modifiers,n.name,e.updateExternalModuleReference(n.moduleReference,z(n,t)))}var a=y;return y=e.createGetSymbolAccessibilityDiagnosticForNode(n),H(n.moduleReference,r),y=a,n}}(n);case 253:return function(n){if(!n.importClause)return e.updateImportDeclaration(n,void 0,n.modifiers,n.importClause,z(n,n.moduleSpecifier));var t=n.importClause&&n.importClause.name&&L.isDeclarationVisible(n.importClause)?n.importClause.name:void 0;if(!n.importClause.namedBindings)return t&&e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,void 0),z(n,n.moduleSpecifier));if(255===n.importClause.namedBindings.kind){var r=L.isDeclarationVisible(n.importClause.namedBindings)?n.importClause.namedBindings:void 0;return t||r?e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,r),z(n,n.moduleSpecifier)):void 0}var a=e.mapDefined(n.importClause.namedBindings.elements,(function(e){return L.isDeclarationVisible(e)?e:void 0}));return a&&a.length||t?e.updateImportDeclaration(n,void 0,n.modifiers,e.updateImportClause(n.importClause,t,a&&a.length?e.updateNamedImports(n.importClause.namedBindings,a):void 0),z(n,n.moduleSpecifier)):void 0}(n)}if(!(e.isDeclaration(n)&&G(n)||e.isFunctionLike(n)&&L.isImplementationOfOverload(n))){var t;K(n)&&(t=r,r=n);var a=e.canProduceDiagnostics(n),i=y;a&&(y=e.createGetSymbolAccessibilityDiagnosticForNode(n));var o=v;switch(n.kind){case 246:return oe(e.updateTypeAliasDeclaration(n,void 0,ne(n),n.name,e.visitNodes(n.typeParameters,J,e.isTypeParameterDeclaration),e.visitNode(n.type,J,e.isTypeNode)));case 245:return oe(e.updateInterfaceDeclaration(n,void 0,ne(n),n.name,j(n,n.typeParameters),re(n.heritageClauses),e.visitNodes(n.members,J)));case 243:var s=oe(e.updateFunctionDeclaration(n,void 0,ne(n),void 0,n.name,j(n,n.typeParameters),V(n,n.parameters),F(n,n.type),void 0));if(s&&L.isExpandoFunctionDeclaration(n)){var l=L.getPropertiesOfContainerFunction(n),u=e.createModuleDeclaration(void 0,void 0,s.name||e.createIdentifier(\"_default\"),e.createModuleBlock([]),16);u.flags^=8,u.parent=r,u.locals=e.createSymbolTable(l),u.symbol=l[0].parent;var d=e.mapDefined(l,(function(n){if(e.isPropertyAccessExpression(n.valueDeclaration)){y=e.createGetSymbolAccessibilityDiagnosticForNode(n.valueDeclaration);var t=L.createTypeOfDeclaration(n.valueDeclaration,u,531469,x);y=i;var r=e.createVariableDeclaration(e.unescapeLeadingUnderscores(n.escapedName),t,void 0);return e.createVariableStatement(void 0,e.createVariableDeclarationList([r]))}})),p=e.createModuleDeclaration(void 0,ne(n),n.name,e.createModuleBlock(d),16);if(!e.hasModifier(s,512))return[s,p];var m=e.createModifiersFromModifierFlags(-514&e.getModifierFlags(s)|2),f=e.updateFunctionDeclaration(s,void 0,m,void 0,s.name,s.typeParameters,s.parameters,s.type,void 0),_=e.updateModuleDeclaration(p,void 0,m,p.name,p.body),g=e.createExportAssignment(void 0,void 0,!1,p.name);return e.isSourceFile(n.parent)&&(b=!0),T=!0,[f,_,g]}return s;case 248:v=!1;var h=n.body;if(h&&249===h.kind){var S=E,C=T;T=!1,E=!1;var A=q(e.visitNodes(h.statements,X));8388608&n.flags&&(E=!1),e.isGlobalScopeAugmentation(n)||function(n){return e.some(n,ee)}(A)||T||(A=E?e.createNodeArray(__spreadArrays(A,[e.createEmptyExports()])):e.visitNodes(A,Y));var D=e.updateModuleBlock(h,A);v=o,E=S,T=C;var k=ne(n);return oe(e.updateModuleDeclaration(n,void 0,k,e.isExternalModuleAugmentation(n)?z(n,n.name):n.name,D))}v=o;k=ne(n);v=!1,e.visitNode(h,X);var N=\"\"+e.getOriginalNodeId(h);D=c.get(N);return c.delete(N),oe(e.updateModuleDeclaration(n,void 0,k,n.name,D));case 244:m=e.createNodeArray(ne(n));var I=j(n,n.typeParameters),M=e.getFirstConstructorWithBody(n),O=void 0;if(M){var R=y;O=e.compact(e.flatMap(M.parameters,(function(n){if(e.hasModifier(n,92)&&!$(n))return y=e.createGetSymbolAccessibilityDiagnosticForNode(n),75===n.name.kind?W(e.createProperty(void 0,ne(n),n.name,n.questionToken,F(n,n.type),w(n)),n):function t(r){for(var a,i=0,o=r.elements;i<o.length;i++){var s=o[i];e.isOmittedExpression(s)||(e.isBindingPattern(s.name)&&(a=e.concatenate(a,t(s.name))),(a=a||[]).push(e.createProperty(void 0,ne(n),s.name,void 0,F(s,void 0),void 0)))}return a}(n.name)}))),y=R}var P=e.createNodeArray(e.concatenate(O,e.visitNodes(n.members,J))),U=e.getEffectiveBaseTypeNode(n);if(U&&!e.isEntityNameExpression(U.expression)&&99!==U.expression.kind){var Q=n.name?e.unescapeLeadingUnderscores(n.name.escapedText):\"default\",Z=e.createOptimisticUniqueName(Q+\"_base\");y=function(){return{diagnosticMessage:e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,errorNode:U,typeName:n.name}};var te=e.createVariableDeclaration(Z,L.createTypeOfExpression(U.expression,n,531469,x),void 0),ae=e.createVariableStatement(v?[e.createModifier(129)]:[],e.createVariableDeclarationList([te],2)),ie=e.createNodeArray(e.map(n.heritageClauses,(function(n){if(89===n.token){var t=y;y=e.createGetSymbolAccessibilityDiagnosticForNode(n.types[0]);var r=e.updateHeritageClause(n,e.map(n.types,(function(n){return e.updateExpressionWithTypeArguments(n,e.visitNodes(n.typeArguments,J),Z)})));return y=t,r}return e.updateHeritageClause(n,e.visitNodes(e.createNodeArray(e.filter(n.types,(function(n){return e.isEntityNameExpression(n.expression)||99===n.expression.kind}))),J))})));return[ae,oe(e.updateClassDeclaration(n,void 0,m,n.name,I,ie,P))]}ie=re(n.heritageClauses);return oe(e.updateClassDeclaration(n,void 0,m,n.name,I,ie,P));case 224:return oe(function(n){if(!e.forEach(n.declarationList.declarations,B))return;var t=e.visitNodes(n.declarationList.declarations,J);if(!e.length(t))return;return e.updateVariableStatement(n,e.createNodeArray(ne(n)),e.updateVariableDeclarationList(n.declarationList,t))}(n));case 247:return oe(e.updateEnumDeclaration(n,void 0,e.createNodeArray(ne(n)),n.name,e.createNodeArray(e.mapDefined(n.members,(function(n){if(!$(n)){var t=L.getConstantValue(n);return W(e.updateEnumMember(n,n.name,void 0!==t?e.createLiteral(t):void 0),n)}})))))}return e.Debug.assertNever(n,\"Unhandled top-level node in declaration emit: \"+e.SyntaxKind[n.kind])}}function oe(s){return K(n)&&(r=t),a&&(y=i),248===n.kind&&(v=o),s===n?s:s&&e.setOriginalNode(W(s,n),n)}}function Z(n){return e.flatten(e.mapDefined(n.elements,(function(n){return function(n){if(214===n.kind)return;if(n.name){if(!B(n))return;return e.isBindingPattern(n.name)?Z(n.name):e.createVariableDeclaration(n.name,F(n,void 0),void 0)}}(n)})))}function $(e){return!!D&&!!e&&t(e,p)}function ee(n){return e.isExportAssignment(n)||e.isExportDeclaration(n)}function ne(n){var t=e.getModifierFlags(n),r=function(n){var t=2811,r=v&&!function(e){if(245===e.kind)return!0;return!1}(n)?2:0,i=288===n.parent.kind;(!i||h&&i&&e.isExternalModule(n.parent))&&(t^=2,r=0);return a(n,t,r)}(n);return t===r?n.modifiers:e.createModifiersFromModifierFlags(r)}function te(n,t){var r=i(n);return r||n===t.firstAccessor||(r=i(t.firstAccessor),y=e.createGetSymbolAccessibilityDiagnosticForNode(t.firstAccessor)),!r&&t.secondAccessor&&n!==t.secondAccessor&&(r=i(t.secondAccessor),y=e.createGetSymbolAccessibilityDiagnosticForNode(t.secondAccessor)),r}function re(n){return e.createNodeArray(e.filter(e.map(n,(function(n){return e.updateHeritageClause(n,e.visitNodes(e.createNodeArray(e.filter(n.types,(function(t){return e.isEntityNameExpression(t.expression)||89===n.token&&99===t.expression.kind}))),J))})),(function(e){return e.types&&!!e.types.length})))}}function a(n,t,r){void 0===t&&(t=3067),void 0===r&&(r=0);var a=e.getModifierFlags(n)&t|r;return 512&a&&!(1&a)&&(a^=1),512&a&&2&a&&(a^=2),a}function i(e){if(e)return 162===e.kind?e.type:e.parameters.length>0?e.parameters[0].type:void 0}e.transformDeclarations=r}(ts||(ts={})),function(e){var n,t;function r(n,t,r){if(r)return e.emptyArray;var a=n.jsx,i=e.getEmitScriptTarget(n),s=e.getEmitModuleKind(n),c=[];return e.addRange(c,t&&e.map(t.before,o)),c.push(e.transformTypeScript),c.push(e.transformClassFields),2===a&&c.push(e.transformJsx),i<99&&c.push(e.transformESNext),i<6&&c.push(e.transformES2019),i<5&&c.push(e.transformES2018),i<4&&c.push(e.transformES2017),i<3&&c.push(e.transformES2016),i<2&&(c.push(e.transformES2015),c.push(e.transformGenerators)),c.push(function(n){switch(n){case e.ModuleKind.ESNext:case e.ModuleKind.ES2015:return e.transformES2015Module;case e.ModuleKind.System:return e.transformSystemModule;default:return e.transformModule}}(s)),i<1&&c.push(e.transformES5),e.addRange(c,t&&e.map(t.after,o)),c}function a(n){var t=[];return t.push(e.transformDeclarations),e.addRange(t,n&&e.map(n.afterDeclarations,s)),t}function i(n,t){return function(r){var a=n(r);return\"function\"==typeof a?t(a):function(n){return function(t){return e.isBundle(t)?n.transformBundle(t):n.transformSourceFile(t)}}(a)}}function o(n){return i(n,e.chainBundle)}function s(n){return i(n,e.identity)}function c(e,n){return n}function l(e,n,t){t(e,n)}!function(e){e[e.Uninitialized=0]=\"Uninitialized\",e[e.Initialized=1]=\"Initialized\",e[e.Completed=2]=\"Completed\",e[e.Disposed=3]=\"Disposed\"}(n||(n={})),function(e){e[e.Substitution=1]=\"Substitution\",e[e.EmitNotifications=2]=\"EmitNotifications\"}(t||(t={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray},e.getTransformers=function(e,n,t){return{scriptTransformers:r(e,n,t),declarationTransformers:a(n)}},e.noEmitSubstitution=c,e.noEmitNotification=l,e.transformNodes=function(n,t,r,a,i,o){for(var s,u,d,p=new Array(324),m=[],f=[],_=0,g=!1,y=c,v=l,h=0,b=[],E={getCompilerOptions:function(){return r},getEmitResolver:function(){return n},getEmitHost:function(){return t},startLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is suspended.\"),m[_]=s,f[_]=u,_++,s=void 0,u=void 0},suspendLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is already suspended.\"),g=!0},resumeLexicalEnvironment:function(){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(g,\"Lexical environment is not suspended.\"),g=!1},endLexicalEnvironment:function(){var n;if(e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!g,\"Lexical environment is suspended.\"),(s||u)&&(u&&(n=__spreadArrays(u)),s)){var t=e.createVariableStatement(void 0,e.createVariableDeclarationList(s));e.setEmitFlags(t,1048576),n?n.push(t):n=[t]}_--,s=m[_],u=f[_],0===_&&(m=[],f=[]);return n},hoistVariableDeclaration:function(n){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\");var t=e.setEmitFlags(e.createVariableDeclaration(n),64);s?s.push(t):s=[t]},hoistFunctionDeclaration:function(n){e.Debug.assert(h>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the lexical environment after transformation has completed.\"),u?u.push(n):u=[n]},requestEmitHelper:function(n){e.Debug.assert(h>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),e.Debug.assert(!n.scoped,\"Cannot request a scoped emit helper.\"),d=e.append(d,n)},readEmitHelpers:function(){e.Debug.assert(h>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\");var n=d;return d=void 0,n},enableSubstitution:function(n){e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),p[n]|=1},enableEmitNotification:function(n){e.Debug.assert(h<2,\"Cannot modify the transformation context after transformation has completed.\"),p[n]|=2},isSubstitutionEnabled:D,isEmitNotificationEnabled:k,get onSubstituteNode(){return y},set onSubstituteNode(n){e.Debug.assert(h<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(void 0!==n,\"Value must not be 'undefined'\"),y=n},get onEmitNode(){return v},set onEmitNode(n){e.Debug.assert(h<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(void 0!==n,\"Value must not be 'undefined'\"),v=n},addDiagnostic:function(e){b.push(e)}},T=0,S=a;T<S.length;T++){var x=S[T];e.disposeEmitNodes(e.getSourceFileOfNode(e.getParseTreeNode(x)))}e.performance.mark(\"beforeTransform\");var L=i.map((function(e){return e(E)})),C=function(e){for(var n=0,t=L;n<t.length;n++){e=(0,t[n])(e)}return e};h=1;var A=e.map(a,o?C:function(n){return!n||e.isSourceFile(n)&&n.isDeclarationFile?n:C(n)});return h=2,e.performance.mark(\"afterTransform\"),e.performance.measure(\"transformTime\",\"beforeTransform\",\"afterTransform\"),{transformed:A,substituteNode:function(n,t){return e.Debug.assert(h<3,\"Cannot substitute a node after the result is disposed.\"),t&&D(t)&&y(n,t)||t},emitNodeWithNotification:function(n,t,r){e.Debug.assert(h<3,\"Cannot invoke TransformationResult callbacks after the result is disposed.\"),t&&(k(t)?v(n,t,r):r(n,t))},dispose:function(){if(h<3){for(var n=0,t=a;n<t.length;n++){var r=t[n];e.disposeEmitNodes(e.getSourceFileOfNode(e.getParseTreeNode(r)))}s=void 0,m=void 0,u=void 0,f=void 0,y=void 0,v=void 0,d=void 0,h=3}},diagnostics:b};function D(n){return 0!=(1&p[n.kind])&&0==(4&e.getEmitFlags(n))}function k(n){return 0!=(2&p[n.kind])||0!=(2&e.getEmitFlags(n))}}}(ts||(ts={})),function(e){var n,t,r=function(){var e=[];return e[1024]=[\"{\",\"}\"],e[2048]=[\"(\",\")\"],e[4096]=[\"<\",\">\"],e[8192]=[\"[\",\"]\"],e}(),a={pos:-1,end:-1};function i(n,t,r,a,i,s){void 0===a&&(a=!1);var l=e.isArray(r)?r:e.getSourceFilesToEmit(n,r,a),u=n.getCompilerOptions();if(u.outFile||u.out){var d=n.getPrependNodes();if(l.length||d.length){var p=e.createBundle(l,d);if(_=t(c(p,n,a),p))return _}}else{if(!i)for(var m=0,f=l;m<f.length;m++){var _,g=f[m];if(_=t(c(g,n,a),g))return _}if(s){var y=o(n.getCompilerOptions());if(y)return t({buildInfoPath:y},void 0)}}}function o(n){var t=n.configFilePath;if(e.isIncrementalCompilation(n)){if(n.tsBuildInfoFile)return n.tsBuildInfoFile;var r,a=n.outFile||n.out;if(a)r=e.removeFileExtension(a);else{if(!t)return;var i=e.removeFileExtension(t);r=n.outDir?n.rootDir?e.resolvePath(n.outDir,e.getRelativePathFromDirectory(n.rootDir,i,!0)):e.combinePaths(n.outDir,e.getBaseFileName(i)):i}return r+\".tsbuildinfo\"}}function s(n,t){var r=n.outFile||n.out,a=n.emitDeclarationOnly?void 0:r,i=a&&l(a,n),s=t||e.getEmitDeclarations(n)?e.removeFileExtension(r)+\".d.ts\":void 0;return{jsFilePath:a,sourceMapFilePath:i,declarationFilePath:s,declarationMapPath:s&&e.getAreDeclarationMapsEnabled(n)?s+\".map\":void 0,buildInfoPath:o(n)}}function c(n,t,r){var a=t.getCompilerOptions();if(289===n.kind)return s(a,r);var i=e.getOwnEmitOutputFilePath(n.fileName,t,u(n,a)),o=e.isJsonSourceFile(n),c=o&&0===e.comparePaths(n.fileName,i,t.getCurrentDirectory(),!t.useCaseSensitiveFileNames()),d=a.emitDeclarationOnly||c?void 0:i,p=!d||e.isJsonSourceFile(n)?void 0:l(d,a),m=r||e.getEmitDeclarations(a)&&!o?e.getDeclarationEmitOutputFilePath(n.fileName,t):void 0;return{jsFilePath:d,sourceMapFilePath:p,declarationFilePath:m,declarationMapPath:m&&e.getAreDeclarationMapsEnabled(a)?m+\".map\":void 0,buildInfoPath:void 0}}function l(e,n){return n.sourceMap&&!n.inlineSourceMap?e+\".map\":void 0}function u(n,t){if(e.isJsonSourceFile(n))return\".json\";if(1===t.jsx)if(e.isSourceFileJS(n)){if(e.fileExtensionIs(n.fileName,\".jsx\"))return\".jsx\"}else if(1===n.languageVariant)return\".jsx\";return\".js\"}function d(n,t,r,a){return a?e.resolvePath(a,e.getRelativePathFromDirectory(function(n){return n.options.rootDir||e.getDirectoryPath(e.Debug.assertDefined(n.options.configFilePath))}(t),n,r)):n}function p(n,t,r){return e.Debug.assert(!e.fileExtensionIs(n,\".d.ts\")&&!e.fileExtensionIs(n,\".json\")),e.changeExtension(d(n,t,r,t.options.declarationDir||t.options.outDir),\".d.ts\")}function m(n,t,r){if(!t.options.emitDeclarationOnly){var a=e.fileExtensionIs(n,\".json\"),i=e.changeExtension(d(n,t,r,t.options.outDir),a?\".json\":e.fileExtensionIs(n,\".tsx\")&&1===t.options.jsx?\".jsx\":\".js\");return a&&0===e.comparePaths(n,i,e.Debug.assertDefined(t.options.configFilePath),r)?void 0:i}}function f(){var n;return{addOutput:function(e){e&&(n||(n=[])).push(e)},getOutputs:function(){return n||e.emptyArray}}}function _(e,n){var t=s(e.options,!1),r=t.jsFilePath,a=t.sourceMapFilePath,i=t.declarationFilePath,o=t.declarationMapPath,c=t.buildInfoPath;n(r),n(a),n(i),n(o),n(c)}function g(n,t,r,a){if(!e.fileExtensionIs(t,\".d.ts\")){var i=m(t,n,r);if(a(i),!e.fileExtensionIs(t,\".json\")&&(i&&n.options.sourceMap&&a(i+\".map\"),e.getEmitDeclarations(n.options))){var o=p(t,n,r);a(o),n.options.declarationMap&&a(o+\".map\")}}}function y(n,t,r,a,o,s,c){var l,u,d=a.scriptTransformers,p=a.declarationTransformers,m=t.getCompilerOptions(),f=m.sourceMap||m.inlineSourceMap||e.getAreDeclarationMapsEnabled(m)?[]:void 0,_=m.listEmittedFiles?[]:void 0,g=e.createDiagnosticCollection(),y=e.getNewLineCharacter(m,(function(){return t.getNewLine()})),h=e.createTextWriter(y),E=e.performance.createTimer(\"printTime\",\"beforePrint\",\"afterPrint\"),T=E.enter,S=E.exit,x=!1;return T(),i(t,(function(a,i){var s,f=a.jsFilePath,y=a.sourceMapFilePath,h=a.declarationFilePath,E=a.declarationMapPath,T=a.buildInfoPath;T&&i&&e.isBundle(i)&&(s=e.getDirectoryPath(e.getNormalizedAbsolutePath(T,t.getCurrentDirectory())),l={commonSourceDirectory:S(t.getCommonSourceDirectory()),sourceFiles:i.sourceFiles.map((function(n){return S(e.getNormalizedAbsolutePath(n.fileName,t.getCurrentDirectory()))}))});(function(r,a,i,s){if(!r||o||!a)return;if(a&&t.isEmitBlocked(a)||m.noEmit)return void(x=!0);var c=e.transformNodes(n,t,m,[r],d,!1),u=b({removeComments:m.removeComments,newLine:m.newLine,noEmitHelpers:m.noEmitHelpers,module:m.module,target:m.target,sourceMap:m.sourceMap,inlineSourceMap:m.inlineSourceMap,inlineSources:m.inlineSources,extendedDiagnostics:m.extendedDiagnostics,writeBundleFileInfo:!!l,relativeToBuildInfo:s},{hasGlobalName:n.hasGlobalName,onEmitNode:c.emitNodeWithNotification,substituteNode:c.substituteNode});e.Debug.assert(1===c.transformed.length,\"Should only see one output from the transform\"),C(a,i,c.transformed[0],u,m),c.dispose(),l&&(l.js=u.bundleFileInfo)})(i,f,y,S),function(r,a,i,s){if(!r)return;if(!a)return void((o||m.emitDeclarationOnly)&&(x=!0));var d=e.isSourceFile(r)?[r]:r.sourceFiles,f=c?d:e.filter(d,e.isSourceFileNotJson),_=m.outFile||m.out?[e.createBundle(f,e.isSourceFile(r)?void 0:r.prepends)]:f;o&&!e.getEmitDeclarations(m)&&f.forEach(L);var y=e.transformNodes(n,t,m,_,p,!1);if(e.length(y.diagnostics))for(var v=0,h=y.diagnostics;v<h.length;v++){var E=h[v];g.add(E)}var T=b({removeComments:m.removeComments,newLine:m.newLine,noEmitHelpers:!0,module:m.module,target:m.target,sourceMap:m.sourceMap,inlineSourceMap:m.inlineSourceMap,extendedDiagnostics:m.extendedDiagnostics,onlyPrintJsDocStyle:!0,writeBundleFileInfo:!!l,recordInternalSection:!!l,relativeToBuildInfo:s},{hasGlobalName:n.hasGlobalName,onEmitNode:y.emitNodeWithNotification,substituteNode:y.substituteNode}),S=!!y.diagnostics&&!!y.diagnostics.length||!!t.isEmitBlocked(a)||!!m.noEmit;if(x=x||S,(!S||c)&&(e.Debug.assert(1===y.transformed.length,\"Should only see one output from the decl transform\"),C(a,i,y.transformed[0],T,{sourceMap:m.declarationMap,sourceRoot:m.sourceRoot,mapRoot:m.mapRoot,extendedDiagnostics:m.extendedDiagnostics}),c&&288===y.transformed[0].kind)){var A=y.transformed[0];u=A.exportedModulesFromDeclarationEmit}y.dispose(),l&&(l.dts=T.bundleFileInfo)}(i,h,E,S),function(n,a){if(!a||r||x)return;var i=t.getProgramBuildInfo();if(t.isEmitBlocked(a)||m.noEmit)return void(x=!0);e.writeFile(t,g,a,v({bundle:n,program:i,version:e.version}),!1)}(l,T),!x&&_&&(o||(f&&_.push(f),y&&_.push(y),T&&_.push(T)),h&&_.push(h),E&&_.push(E));function S(n){return e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(s,n,t.getCanonicalFileName))}}),e.getSourceFilesToEmit(t,r,c),c,s,!r),S(),{emitSkipped:x,diagnostics:g.getDiagnostics(),emittedFiles:_,sourceMaps:f,exportedModulesFromDeclarationEmit:u};function L(t){e.isExportAssignment(t)?75===t.expression.kind&&n.collectLinkedAliases(t.expression,!0):e.isExportSpecifier(t)?n.collectLinkedAliases(t.propertyName||t.name,!0):e.forEachChild(t,L)}function C(n,r,a,i,o){var s,c=289===a.kind?a:void 0,l=288===a.kind?a:void 0,u=c?c.sourceFiles:[l];if(function(n,t){return(n.sourceMap||n.inlineSourceMap)&&(288!==t.kind||!e.fileExtensionIs(t.fileName,\".json\"))}(o,a)&&(s=e.createSourceMapGenerator(t,e.getBaseFileName(e.normalizeSlashes(n)),function(n){var t=e.normalizeSlashes(n.sourceRoot||\"\");return t?e.ensureTrailingDirectorySeparator(t):t}(o),function(n,r,a){if(n.sourceRoot)return t.getCommonSourceDirectory();if(n.mapRoot){var i=e.normalizeSlashes(n.mapRoot);return a&&(i=e.getDirectoryPath(e.getSourceFilePathInNewDir(a.fileName,t,i))),0===e.getRootLength(i)&&(i=e.combinePaths(t.getCommonSourceDirectory(),i)),i}return e.getDirectoryPath(e.normalizePath(r))}(o,n,l),o)),c?i.writeBundle(c,h,s):i.writeFile(l,h,s),s){f&&f.push({inputSourceFileNames:s.getSources(),sourceMap:s.toJSON()});var d=function(n,r,a,i,o){if(n.inlineSourceMap){var s=r.toString();return\"data:application/json;base64,\"+e.base64encode(e.sys,s)}var c=e.getBaseFileName(e.normalizeSlashes(e.Debug.assertDefined(i)));if(n.mapRoot){var l=e.normalizeSlashes(n.mapRoot);return o&&(l=e.getDirectoryPath(e.getSourceFilePathInNewDir(o.fileName,t,l))),0===e.getRootLength(l)?(l=e.combinePaths(t.getCommonSourceDirectory(),l),e.getRelativePathToDirectoryOrUrl(e.getDirectoryPath(e.normalizePath(a)),e.combinePaths(l,c),t.getCurrentDirectory(),t.getCanonicalFileName,!0)):e.combinePaths(l,c)}return c}(o,s,n,r,l);if(d&&(h.isAtStartOfLine()||h.rawWrite(y),h.writeComment(\"//# sourceMappingURL=\"+d)),r){var p=s.toString();e.writeFile(t,g,r,p,!1,u)}}else h.writeLine();e.writeFile(t,g,n,h.getText(),!!m.emitBOM,u),h.clear()}}function v(e){return JSON.stringify(e,void 0,2)}function h(e){return JSON.parse(e)}function b(n,t){void 0===n&&(n={}),void 0===t&&(t={});var i,o,s,c,l,u,d,p,m,f,_,g,y,v,h,b,E,T=t.hasGlobalName,S=t.onEmitNode,x=void 0===S?e.noEmitNotification:S,L=t.substituteNode,C=void 0===L?e.noEmitSubstitution:L,A=t.onBeforeEmitNodeArray,D=t.onAfterEmitNodeArray,k=t.onBeforeEmitToken,N=t.onAfterEmitToken,I=!!n.extendedDiagnostics,M=e.getNewLineCharacter(n),O=e.getEmitModuleKind(n),R=e.createMap(),P=function(e){m.write(e)},w=n.writeBundleFileInfo?{sections:[]}:void 0,F=w?e.Debug.assertDefined(n.relativeToBuildInfo):void 0,G=n.recordInternalSection,B=0,V=\"text\",U=!0,j=-1,K=-1,H=-1,W=-1,z=!1,q=!!n.removeComments,J=e.performance.createTimerIf(I,\"commentTime\",\"beforeComment\",\"afterComment\"),X=J.enter,Y=J.exit;return me(),{printNode:function(n,t,r){switch(n){case 0:e.Debug.assert(e.isSourceFile(t),\"Expected a SourceFile node.\");break;case 2:e.Debug.assert(e.isIdentifier(t),\"Expected an Identifier node.\");break;case 1:e.Debug.assert(e.isExpression(t),\"Expected an Expression node.\")}switch(t.kind){case 288:return Z(t);case 289:return Q(t);case 290:return function(e,n){var t=m;pe(n,void 0),ue(4,e,void 0),me(),m=t}(t,ce()),le()}return $(n,t,r,ce()),le()},printList:function(e,n,t){return ee(e,n,t,ce()),le()},printFile:Z,printBundle:Q,writeNode:$,writeList:ee,writeFile:se,writeBundle:oe,bundleFileInfo:w};function Q(e){return oe(e,ce(),void 0),le()}function Z(e){return se(e,ce(),void 0),le()}function $(e,n,t,r){var a=m;pe(r,void 0),ue(e,n,t),me(),m=a}function ee(e,n,t,r){var i=m;pe(r,void 0),t&&de(t),yn(a,n,e),me(),m=i}function ne(){return m.getTextPosWithWriteLine?m.getTextPosWithWriteLine():m.getTextPos()}function te(n,t,r){var a=e.lastOrUndefined(w.sections);a&&a.kind===r?a.end=t:w.sections.push({pos:n,end:t,kind:r})}function re(n){if(G&&w&&i&&(e.isDeclaration(n)||e.isVariableStatement(n))&&e.isInternalDeclaration(n,i)&&\"internal\"!==V){var t=V;return ie(m.getTextPos()),B=ne(),V=\"internal\",t}}function ae(e){e&&(ie(m.getTextPos()),B=ne(),V=e)}function ie(e){return B<e&&(te(B,e,V),!0)}function oe(t,r,a){var i;_=!1;var o=m;pe(r,a),rn(t),tn(t),xe(t),function(n){Ze(!!n.hasNoDefaultLib,n.syntheticFileReferences||[],n.syntheticTypeReferences||[],n.syntheticLibReferences||[]);for(var t=0,r=n.prepends;t<r.length;t++){var a=r[t];if(e.isUnparsedSource(a)&&a.syntheticReferences)for(var i=0,o=a.syntheticReferences;i<o.length;i++){_e(o[i]),Nn()}}}(t);for(var s=0,c=t.prepends;s<c.length;s++){var l=c[s];Nn();var u=m.getTextPos(),d=w&&w.sections;if(d&&(w.sections=[]),ue(4,l,void 0),w){var p=w.sections;w.sections=d,l.oldFileOfCurrentEmit?(i=w.sections).push.apply(i,p):(p.forEach((function(n){return e.Debug.assert(e.isBundleFileTextLike(n))})),w.sections.push({pos:u,end:m.getTextPos(),kind:\"prepend\",data:F(l.fileName),texts:p}))}}B=ne();for(var f=0,g=t.sourceFiles;f<g.length;f++){var y=g[f];ue(0,y,y)}if(w&&t.sourceFiles.length&&ie(m.getTextPos())){var v=function(n){for(var t,r=e.createMap(),a=0;a<n.sourceFiles.length;a++){for(var i=n.sourceFiles[a],o=void 0,s=0,c=0,l=i.statements;c<l.length;c++){var u=l[c];if(!e.isPrologueDirective(u))break;r.has(u.expression.text)||(r.set(u.expression.text,!0),(o||(o=[])).push({pos:u.pos,end:u.end,expression:{pos:u.expression.pos,end:u.expression.end,text:u.expression.text}}),s=s<u.end?u.end:s)}o&&(t||(t=[])).push({file:a,text:i.text.substring(0,s),directives:o})}return t}(t);v&&(w.sources||(w.sources={}),w.sources.prologues=v);var h=function(t){var r;if(O===e.ModuleKind.None||n.noEmitHelpers)return;for(var a=e.createMap(),i=0,o=t.sourceFiles;i<o.length;i++){var s=o[i],c=void 0!==e.getExternalHelpersModuleName(s),l=Le(s);if(l)for(var u=0,d=l;u<d.length;u++){var p=d[u];p.scoped||c||a.get(p.name)||(a.set(p.name,!0),(r||(r=[])).push(p.name))}}return r}(t);h&&(w.sources||(w.sources={}),w.sources.helpers=h)}me(),m=o}function se(e,n,t){_=!0;var r=m;pe(n,t),rn(e),tn(e),ue(0,e,e),me(),m=r}function ce(){return f||(f=e.createTextWriter(M))}function le(){var e=f.getText();return f.clear(),e}function ue(e,n,t){t&&de(t),ve(e,n)}function de(e){i=e,v=void 0,h=void 0,e&&Dt(e)}function pe(t,r){t&&n.omitTrailingSemicolon&&(t=e.getTrailingSemicolonDeferringWriter(t)),g=r,U=!(m=t)||!g}function me(){o=[],s=[],c=e.createMap(),l=[],u=0,d=[],i=void 0,v=void 0,h=void 0,b=void 0,E=void 0,pe(void 0,void 0)}function fe(){return v||(v=e.getLineStarts(i))}function _e(e){if(void 0!==e){var n=re(e),t=ve(4,e);return ae(n),t}}function ge(e){if(void 0!==e)return ve(2,e)}function ye(e){if(void 0!==e)return ve(1,e)}function ve(n,t){var r=b,a=E;b=t,E=void 0,he(0,t)(n,t),e.Debug.assert(b===t);var i=E;return b=r,E=a,i||t}function he(n,t){switch(n){case 0:if(x!==e.noEmitNotification)return Ee;case 1:if(C!==e.noEmitSubstitution)return Se;case 2:if(!q&&288!==t.kind)return ct;case 3:if(!U&&288!==t.kind&&!e.isInJsonFile(t))return xt;case 4:return Te;default:return e.Debug.assertNever(n)}}function be(e,n){return he(e+1,n)}function Ee(n,t){e.Debug.assert(b===t);var r=be(0,t);x(n,t,r),e.Debug.assert(b===t)}function Te(n,t){if(e.Debug.assert(b===t||E===t),0===n)return function(n){Nn();var t=n.statements;if(pt){if(0===t.length||!e.isPrologueDirective(t[0])||e.nodeIsSynthesized(t[0]))return void pt(n,t,$e)}$e(n)}(e.cast(t,e.isSourceFile));if(2===n)return De(e.cast(t,e.isIdentifier));if(3===n)return function(e){_e(e.name),Dn(),xn(\"in\"),Dn(),_e(e.constraint)}(e.cast(t,e.isTypeParameterDeclaration));if(5===n)return e.Debug.assertNode(t,e.isEmptyStatement),Ie(!0);if(4===n){if(e.isKeyword(t.kind))return Rn(t,xn);switch(t.kind){case 15:case 16:case 17:return Ce(t);case 290:case 284:return function(e){for(var n=0,t=e.texts;n<t.length;n++){var r=t[n];Nn(),_e(r)}}(t);case 283:return Ae(t);case 285:case 286:return o=t,s=ne(),Ae(o),void(w&&te(s,m.getTextPos(),285===o.kind?\"text\":\"internal\"));case 287:return function(n){var t=ne();if(Ae(n),w){var r=e.clone(n.section);r.pos=t,r.end=m.getTextPos(),w.sections.push(r)}}(t);case 75:return De(t);case 152:return function(e){(function(e){75===e.kind?ye(e):_e(e)})(e.left),Tn(\".\"),_e(e.right)}(t);case 153:return function(e){Tn(\"[\"),ye(e.expression),Tn(\"]\")}(t);case 154:return function(e){_e(e.name),e.constraint&&(Dn(),xn(\"extends\"),Dn(),_e(e.constraint));e.default&&(Dn(),Ln(\"=\"),Dn(),_e(e.default))}(t);case 155:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.dotDotDotToken),an(e.name,Cn),_e(e.questionToken),e.parent&&298===e.parent.kind&&!e.name?_e(e.type):sn(e.type);cn(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name?e.name.end:e.modifiers?e.modifiers.end:e.decorators?e.decorators.end:e.pos,e)}(t);case 156:return a=t,Tn(\"@\"),void ye(a.expression);case 157:return function(e){pn(e,e.decorators),on(e,e.modifiers),an(e.name,kn),_e(e.questionToken),sn(e.type),Sn()}(t);case 158:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.name),_e(e.questionToken),_e(e.exclamationToken),sn(e.type),cn(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name.end,e),Sn()}(t);case 159:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),_e(e.name),_e(e.questionToken),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 160:return function(e){pn(e,e.decorators),on(e,e.modifiers),_e(e.asteriskToken),_e(e.name),_e(e.questionToken),Fe(e,Ge)}(t);case 161:return function(e){on(e,e.modifiers),xn(\"constructor\"),Fe(e,Ge)}(t);case 162:case 163:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(162===e.kind?\"get\":\"set\"),Dn(),_e(e.name),Fe(e,Ge)}(t);case 164:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 165:return function(e){Xn(e),pn(e,e.decorators),on(e,e.modifiers),xn(\"new\"),Dn(),fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type),Sn(),Yn(e)}(t);case 166:return function(e){pn(e,e.decorators),on(e,e.modifiers),n=e,t=e.parameters,yn(n,t,8848),sn(e.type),Sn();var n,t}(t);case 167:return function(e){e.assertsModifier&&(_e(e.assertsModifier),Dn());_e(e.parameterName),e.type&&(Dn(),xn(\"is\"),Dn(),_e(e.type))}(t);case 168:return function(e){_e(e.typeName),mn(e,e.typeArguments)}(t);case 169:return function(e){Xn(e),fn(e,e.typeParameters),gn(e,e.parameters),Dn(),Tn(\"=>\"),Dn(),_e(e.type),Yn(e)}(t);case 298:return function(e){xn(\"function\"),_n(e,e.parameters),Tn(\":\"),_e(e.type)}(t);case 170:return function(e){Xn(e),xn(\"new\"),Dn(),fn(e,e.typeParameters),_n(e,e.parameters),Dn(),Tn(\"=>\"),Dn(),_e(e.type),Yn(e)}(t);case 171:return function(e){xn(\"typeof\"),Dn(),_e(e.exprName)}(t);case 172:return function(n){Tn(\"{\");var t=1&e.getEmitFlags(n)?768:32897;yn(n,n.members,524288|t),Tn(\"}\")}(t);case 173:return function(e){_e(e.elementType),Tn(\"[\"),Tn(\"]\")}(t);case 174:return function(e){Tn(\"[\"),yn(e,e.elementTypes,528),Tn(\"]\")}(t);case 175:return function(e){_e(e.type),Tn(\"?\")}(t);case 177:return function(e){yn(e,e.types,516)}(t);case 178:return function(e){yn(e,e.types,520)}(t);case 179:return function(e){_e(e.checkType),Dn(),xn(\"extends\"),Dn(),_e(e.extendsType),Dn(),Tn(\"?\"),Dn(),_e(e.trueType),Dn(),Tn(\":\"),Dn(),_e(e.falseType)}(t);case 180:return function(e){xn(\"infer\"),Dn(),_e(e.typeParameter)}(t);case 181:return function(e){Tn(\"(\"),_e(e.type),Tn(\")\")}(t);case 215:return function(e){ye(e.expression),mn(e,e.typeArguments)}(t);case 182:return void xn(\"this\");case 183:return function(e){Pn(e.operator,xn),Dn(),_e(e.type)}(t);case 184:return function(e){_e(e.objectType),Tn(\"[\"),_e(e.indexType),Tn(\"]\")}(t);case 185:return function(n){var t=e.getEmitFlags(n);Tn(\"{\"),1&t?Dn():(Nn(),In());n.readonlyToken&&(_e(n.readonlyToken),137!==n.readonlyToken.kind&&xn(\"readonly\"),Dn());Tn(\"[\"),ve(3,n.typeParameter),Tn(\"]\"),n.questionToken&&(_e(n.questionToken),57!==n.questionToken.kind&&Tn(\"?\"));Tn(\":\"),Dn(),_e(n.type),Sn(),1&t?Dn():(Nn(),Mn());Tn(\"}\")}(t);case 186:return function(e){ye(e.literal)}(t);case 187:return function(e){e.isTypeOf&&(xn(\"typeof\"),Dn());xn(\"import\"),Tn(\"(\"),_e(e.argument),Tn(\")\"),e.qualifier&&(Tn(\".\"),_e(e.qualifier));mn(e,e.typeArguments)}(t);case 293:return void Tn(\"*\");case 294:return void Tn(\"?\");case 295:return function(e){Tn(\"?\"),_e(e.type)}(t);case 296:return function(e){Tn(\"!\"),_e(e.type)}(t);case 297:return function(e){_e(e.type),Tn(\"=\")}(t);case 176:case 299:return function(e){Tn(\"...\"),_e(e.type)}(t);case 188:return function(e){Tn(\"{\"),yn(e,e.elements,525136),Tn(\"}\")}(t);case 189:return function(e){Tn(\"[\"),yn(e,e.elements,524880),Tn(\"]\")}(t);case 190:return function(e){_e(e.dotDotDotToken),e.propertyName&&(_e(e.propertyName),Tn(\":\"),Dn());_e(e.name),cn(e.initializer,e.name.end,e)}(t);case 220:return function(e){ye(e.expression),_e(e.literal)}(t);case 221:return void Sn();case 222:return function(e){Ne(e,!e.multiLine&&Wn(e))}(t);case 224:return function(e){on(e,e.modifiers),_e(e.declarationList),Sn()}(t);case 223:return Ie(!1);case 225:return function(n){ye(n.expression),(!e.isJsonSourceFile(i)||e.nodeIsSynthesized(n.expression))&&Sn()}(t);case 226:return function(e){var n=Re(94,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.thenStatement),e.elseStatement&&(wn(e),Re(86,e.thenStatement.end,xn,e),226===e.elseStatement.kind?(Dn(),_e(e.elseStatement)):dn(e,e.elseStatement))}(t);case 227:return function(n){Re(85,n.pos,xn,n),dn(n,n.statement),e.isBlock(n.statement)?Dn():wn(n);Me(n,n.statement.end),Sn()}(t);case 228:return function(e){Me(e,e.pos),dn(e,e.statement)}(t);case 229:return function(e){var n=Re(92,e.pos,xn,e);Dn();var t=Re(20,n,Tn,e);Oe(e.initializer),t=Re(26,e.initializer?e.initializer.end:t,Tn,e),un(e.condition),t=Re(26,e.condition?e.condition.end:t,Tn,e),un(e.incrementor),Re(21,e.incrementor?e.incrementor.end:t,Tn,e),dn(e,e.statement)}(t);case 230:return function(e){var n=Re(92,e.pos,xn,e);Dn(),Re(20,n,Tn,e),Oe(e.initializer),Dn(),Re(96,e.initializer.end,xn,e),Dn(),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 231:return function(e){var n=Re(92,e.pos,xn,e);Dn(),function(e){e&&(_e(e),Dn())}(e.awaitModifier),Re(20,n,Tn,e),Oe(e.initializer),Dn(),Re(151,e.initializer.end,xn,e),Dn(),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 232:return function(e){Re(81,e.pos,xn,e),ln(e.label),Sn()}(t);case 233:return function(e){Re(76,e.pos,xn,e),ln(e.label),Sn()}(t);case 234:return function(e){Re(100,e.pos,xn,e),un(e.expression),Sn()}(t);case 235:return function(e){var n=Re(111,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),dn(e,e.statement)}(t);case 236:return function(e){var n=Re(102,e.pos,xn,e);Dn(),Re(20,n,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e),Dn(),_e(e.caseBlock)}(t);case 237:return function(e){_e(e.label),Re(58,e.label.end,Tn,e),Dn(),_e(e.statement)}(t);case 238:return function(e){Re(104,e.pos,xn,e),un(e.expression),Sn()}(t);case 239:return function(e){Re(106,e.pos,xn,e),Dn(),_e(e.tryBlock),e.catchClause&&(wn(e),_e(e.catchClause));e.finallyBlock&&(wn(e),Re(91,(e.catchClause||e.tryBlock).end,xn,e),Dn(),_e(e.finallyBlock))}(t);case 240:return function(e){On(82,e.pos,xn),Sn()}(t);case 241:return function(e){_e(e.name),sn(e.type),cn(e.initializer,e.type?e.type.end:e.name.end,e)}(t);case 242:return function(n){xn(e.isLet(n)?\"let\":e.isVarConst(n)?\"const\":\"var\"),Dn(),yn(n,n.declarations,528)}(t);case 243:return function(e){Pe(e)}(t);case 244:return function(e){je(e)}(t);case 245:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"interface\"),Dn(),_e(e.name),fn(e,e.typeParameters),yn(e,e.heritageClauses,512),Dn(),Tn(\"{\"),yn(e,e.members,129),Tn(\"}\")}(t);case 246:return function(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"type\"),Dn(),_e(e.name),fn(e,e.typeParameters),Dn(),Tn(\"=\"),Dn(),_e(e.type),Sn()}(t);case 247:return function(e){on(e,e.modifiers),xn(\"enum\"),Dn(),_e(e.name),Dn(),Tn(\"{\"),yn(e,e.members,145),Tn(\"}\")}(t);case 248:return function(e){on(e,e.modifiers),1024&~e.flags&&(xn(16&e.flags?\"namespace\":\"module\"),Dn());_e(e.name);var n=e.body;if(!n)return Sn();for(;248===n.kind;)Tn(\".\"),_e(n.name),n=n.body;Dn(),_e(n)}(t);case 249:return function(n){Xn(n),e.forEach(n.statements,Zn),Ne(n,Wn(n)),Yn(n)}(t);case 250:return function(e){Re(18,e.pos,Tn,e),yn(e,e.clauses,129),Re(19,e.clauses.end,Tn,e,!0)}(t);case 251:return function(e){var n=Re(88,e.pos,xn,e);Dn(),n=Re(122,n,xn,e),Dn(),n=Re(135,n,xn,e),Dn(),_e(e.name),Sn()}(t);case 252:return function(e){on(e,e.modifiers),Re(95,e.modifiers?e.modifiers.end:e.pos,xn,e),Dn(),_e(e.name),Dn(),Re(62,e.name.end,Tn,e),Dn(),function(e){75===e.kind?ye(e):_e(e)}(e.moduleReference),Sn()}(t);case 253:return function(e){on(e,e.modifiers),Re(95,e.modifiers?e.modifiers.end:e.pos,xn,e),Dn(),e.importClause&&(_e(e.importClause),Dn(),Re(148,e.importClause.end,xn,e),Dn());ye(e.moduleSpecifier),Sn()}(t);case 254:return function(e){_e(e.name),e.name&&e.namedBindings&&(Re(27,e.name.end,Tn,e),Dn());_e(e.namedBindings)}(t);case 255:return function(e){var n=Re(41,e.pos,Tn,e);Dn(),Re(122,n,xn,e),Dn(),_e(e.name)}(t);case 256:return function(e){Ke(e)}(t);case 257:return function(e){He(e)}(t);case 258:return function(e){var n=Re(88,e.pos,xn,e);Dn(),e.isExportEquals?Re(62,n,Ln,e):Re(83,n,xn,e);Dn(),ye(e.expression),Sn()}(t);case 259:return function(e){var n=Re(88,e.pos,xn,e);Dn(),e.exportClause?_e(e.exportClause):n=Re(41,n,Tn,e);if(e.moduleSpecifier){Dn(),Re(148,e.exportClause?e.exportClause.end:n,xn,e),Dn(),ye(e.moduleSpecifier)}Sn()}(t);case 260:return function(e){Ke(e)}(t);case 261:return function(e){He(e)}(t);case 262:return;case 263:return function(e){xn(\"require\"),Tn(\"(\"),ye(e.expression),Tn(\")\")}(t);case 11:return function(e){m.writeLiteral(e.text)}(t);case 266:case 269:return function(n){Tn(\"<\"),e.isJsxOpeningElement(n)&&(We(n.tagName),mn(n,n.typeArguments),n.attributes.properties&&n.attributes.properties.length>0&&Dn(),_e(n.attributes));Tn(\">\")}(t);case 267:case 270:return function(n){Tn(\"</\"),e.isJsxClosingElement(n)&&We(n.tagName);Tn(\">\")}(t);case 271:return function(e){_e(e.name),function(e,n,t,r){t&&(n(e),r(t))}(\"=\",Tn,e.initializer,_e)}(t);case 272:return function(e){yn(e,e.properties,262656)}(t);case 273:return function(e){Tn(\"{...\"),ye(e.expression),Tn(\"}\")}(t);case 274:return function(e){e.expression&&(Tn(\"{\"),_e(e.dotDotDotToken),ye(e.expression),Tn(\"}\"))}(t);case 275:return function(e){Re(77,e.pos,xn,e),Dn(),ye(e.expression),ze(e,e.statements,e.expression.end)}(t);case 276:return function(e){var n=Re(83,e.pos,xn,e);ze(e,e.statements,n)}(t);case 277:return function(e){Dn(),Pn(e.token,xn),Dn(),yn(e,e.types,528)}(t);case 278:return function(e){var n=Re(78,e.pos,xn,e);Dn(),e.variableDeclaration&&(Re(20,n,Tn,e),_e(e.variableDeclaration),Re(21,e.variableDeclaration.end,Tn,e),Dn());_e(e.block)}(t);case 279:return function(n){_e(n.name),Tn(\":\"),Dn();var t=n.initializer;if(ht&&0==(512&e.getEmitFlags(t))){ht(e.getCommentRange(t).pos)}ye(t)}(t);case 280:return function(e){_e(e.name),e.objectAssignmentInitializer&&(Dn(),Tn(\"=\"),Dn(),ye(e.objectAssignmentInitializer))}(t);case 281:return function(e){e.expression&&(Re(25,e.pos,Tn,e),ye(e.expression))}(t);case 282:return function(e){_e(e.name),cn(e.initializer,e.name.end,e)}(t);case 310:case 316:return function(e){Xe(e.tagName),Qe(e.typeExpression),Dn(),e.isBracketed&&Tn(\"[\");_e(e.name),e.isBracketed&&Tn(\"]\");Ye(e.comment)}(t);case 311:case 313:case 312:case 309:return Xe((r=t).tagName),Qe(r.typeExpression),void Ye(r.comment);case 305:return function(e){Xe(e.tagName),Dn(),Tn(\"{\"),_e(e.class),Tn(\"}\"),Ye(e.comment)}(t);case 314:return function(e){Xe(e.tagName),Qe(e.constraint),Dn(),yn(e,e.typeParameters,528),Ye(e.comment)}(t);case 315:return function(e){Xe(e.tagName),e.typeExpression&&(292===e.typeExpression.kind?Qe(e.typeExpression):(Dn(),Tn(\"{\"),P(\"Object\"),e.typeExpression.isArrayType&&(Tn(\"[\"),Tn(\"]\")),Tn(\"}\")));e.fullName&&(Dn(),_e(e.fullName));Ye(e.comment),e.typeExpression&&302===e.typeExpression.kind&&qe(e.typeExpression)}(t);case 308:return function(e){Xe(e.tagName),e.name&&(Dn(),_e(e.name));Ye(e.comment),Je(e.typeExpression)}(t);case 303:return Je(t);case 302:return qe(t);case 307:case 304:return function(e){Xe(e.tagName),Ye(e.comment)}(t);case 301:return function(e){if(P(\"/**\"),e.comment)for(var n=e.comment.split(/\\r\\n?|\\n/g),t=0,r=n;t<r.length;t++){var a=r[t];Nn(),Dn(),Tn(\"*\"),Dn(),P(a)}e.tags&&(1!==e.tags.length||313!==e.tags[0].kind||e.comment?yn(e,e.tags,33):(Dn(),_e(e.tags[0])));Dn(),P(\"*/\")}(t)}if(e.isExpression(t))n=1,C!==e.noEmitSubstitution&&(E=t=C(n,t));else if(e.isToken(t))return Rn(t,Tn)}var r,a,o,s;if(1===n)switch(t.kind){case 8:case 9:return function(e){Ce(e)}(t);case 10:case 13:case 14:return Ce(t);case 75:return De(t);case 90:case 99:case 101:case 105:case 103:case 95:return void Rn(t,xn);case 191:return function(e){var n=e.elements,t=e.multiLine?65536:0;vn(e,n,8914|t)}(t);case 192:return function(n){e.forEach(n.properties,$n);var t=65536&e.getEmitFlags(n);t&&In();var r=n.multiLine?65536:0,a=i.languageVersion>=1&&!e.isJsonSourceFile(i)?64:0;yn(n,n.properties,526226|a|r),t&&Mn()}(t);case 193:return function(n){var t=e.cast(ye(n.expression),e.isExpression),r=e.getDotOrQuestionDotToken(n),a=Hn(n,n.expression,r),i=Hn(n,r,n.name);Gn(a,!1),28===r.kind||!function(n){if(n=e.skipPartiallyEmittedExpressions(n),e.isNumericLiteral(n)){var t=Jn(n,!0);return!n.numericLiteralFlags&&!e.stringContains(t,e.tokenToString(24))}if(e.isAccessExpression(n)){var r=e.getConstantValue(n);return\"number\"==typeof r&&isFinite(r)&&Math.floor(r)===r}}(t)||m.hasTrailingComment()||m.hasTrailingWhitespace()||Tn(\".\");Re(r.kind,n.expression.end,Tn,n),Gn(i,!1),_e(n.name),Bn(a,i)}(t);case 194:return function(e){ye(e.expression),_e(e.questionDotToken),Re(22,e.expression.end,Tn,e),ye(e.argumentExpression),Re(23,e.argumentExpression.end,Tn,e)}(t);case 195:return function(e){ye(e.expression),_e(e.questionDotToken),mn(e,e.typeArguments),vn(e,e.arguments,2576)}(t);case 196:return function(e){Re(98,e.pos,xn,e),Dn(),ye(e.expression),mn(e,e.typeArguments),vn(e,e.arguments,18960)}(t);case 197:return function(e){ye(e.tag),mn(e,e.typeArguments),Dn(),ye(e.template)}(t);case 198:return function(e){Tn(\"<\"),_e(e.type),Tn(\">\"),ye(e.expression)}(t);case 199:return function(e){var n=Re(20,e.pos,Tn,e);ye(e.expression),Re(21,e.expression?e.expression.end:n,Tn,e)}(t);case 200:return function(e){et(e.name),Pe(e)}(t);case 201:return function(e){pn(e,e.decorators),on(e,e.modifiers),Fe(e,ke)}(t);case 202:return function(e){Re(84,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 203:return function(e){Re(107,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 204:return function(e){Re(109,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 205:return function(e){Re(126,e.pos,xn,e),Dn(),ye(e.expression)}(t);case 206:return function(e){Pn(e.operator,Ln),function(e){var n=e.operand;return 206===n.kind&&(39===e.operator&&(39===n.operator||45===n.operator)||40===e.operator&&(40===n.operator||46===n.operator))}(e)&&Dn();ye(e.operand)}(t);case 207:return function(e){ye(e.operand),Pn(e.operator,Ln)}(t);case 208:return function(e){var n=27!==e.operatorToken.kind,t=Hn(e,e.left,e.operatorToken),r=Hn(e,e.operatorToken,e.right);ye(e.left),Gn(t,n),yt(e.operatorToken.pos),Rn(e.operatorToken,96===e.operatorToken.kind?xn:Ln),ht(e.operatorToken.end,!0),Gn(r,!0),ye(e.right),Bn(t,r)}(t);case 209:return function(e){var n=Hn(e,e.condition,e.questionToken),t=Hn(e,e.questionToken,e.whenTrue),r=Hn(e,e.whenTrue,e.colonToken),a=Hn(e,e.colonToken,e.whenFalse);ye(e.condition),Gn(n,!0),_e(e.questionToken),Gn(t,!0),ye(e.whenTrue),Bn(n,t),Gn(r,!0),_e(e.colonToken),Gn(a,!0),ye(e.whenFalse),Bn(r,a)}(t);case 210:return function(e){_e(e.head),yn(e,e.templateSpans,262144)}(t);case 211:return function(e){Re(120,e.pos,xn,e),_e(e.asteriskToken),un(e.expression)}(t);case 212:return function(e){Re(25,e.pos,Tn,e),ye(e.expression)}(t);case 213:return function(e){et(e.name),je(e)}(t);case 214:return;case 216:return function(e){ye(e.expression),e.type&&(Dn(),xn(\"as\"),Dn(),_e(e.type))}(t);case 217:return function(e){ye(e.expression),Ln(\"!\")}(t);case 218:return function(e){On(e.keywordToken,e.pos,Tn),Tn(\".\"),_e(e.name)}(t);case 264:return function(e){_e(e.openingElement),yn(e,e.children,262144),_e(e.closingElement)}(t);case 265:return function(e){Tn(\"<\"),We(e.tagName),mn(e,e.typeArguments),Dn(),_e(e.attributes),Tn(\"/>\")}(t);case 268:return function(e){_e(e.openingFragment),yn(e,e.children,262144),_e(e.closingFragment)}(t);case 319:return function(e){ye(e.expression)}(t);case 320:return function(e){vn(e,e.elements,528)}(t)}}function Se(n,t){e.Debug.assert(b===t||E===t),be(1,t)(n,E=C(n,t)),e.Debug.assert(b===t||E===t)}function xe(t){var r=!1,a=289===t.kind?t:void 0;if(!a||O!==e.ModuleKind.None){for(var o=a?a.prepends.length:0,s=a?a.sourceFiles.length+o:1,c=0;c<s;c++){var l=a?c<o?a.prepends[c]:a.sourceFiles[c-o]:t,u=e.isSourceFile(l)?l:e.isUnparsedSource(l)?void 0:i,d=n.noEmitHelpers||!!u&&e.hasRecordedExternalHelpers(u),p=(e.isSourceFile(l)||e.isUnparsedSource(l))&&!_,f=e.isUnparsedSource(l)?l.helpers:Le(l);if(f)for(var g=0,y=f;g<y.length;g++){var v=y[g];if(v.scoped){if(a)continue}else{if(d)continue;if(p){if(R.get(v.name))continue;R.set(v.name,!0)}}var h=ne();\"string\"==typeof v.text?Fn(v.text):Fn(v.text(st)),w&&w.sections.push({pos:h,end:m.getTextPos(),kind:\"emitHelpers\",data:v.name}),r=!0}}return r}}function Le(n){var t=e.getEmitHelpers(n);return t&&e.stableSort(t,e.compareEmitHelpers)}function Ce(t){var r,a=Jn(t,n.neverAsciiEscape);!n.sourceMap&&!n.inlineSourceMap||10!==t.kind&&!e.isTemplateLiteralKind(t.kind)?function(e){m.writeStringLiteral(e)}(a):(r=a,m.writeLiteral(r))}function Ae(e){m.rawWrite(e.parent.text.substring(e.pos,e.end))}function De(e){(e.symbol?En:P)(qn(e,!1),e.symbol),yn(e,e.typeArguments,53776)}function ke(e){fn(e,e.typeParameters),gn(e,e.parameters),sn(e.type),Dn(),_e(e.equalsGreaterThanToken)}function Ne(n,t){Re(18,n.pos,Tn,n);var r=t||1&e.getEmitFlags(n)?768:129;yn(n,n.statements,r),Re(19,n.statements.end,Tn,n,!!(1&r))}function Ie(e){e?Tn(\";\"):Sn()}function Me(e,n){var t=Re(110,n,xn,e);Dn(),Re(20,t,Tn,e),ye(e.expression),Re(21,e.expression.end,Tn,e)}function Oe(e){void 0!==e&&(242===e.kind?_e(e):ye(e))}function Re(n,t,r,a,o){var s=e.getParseTreeNode(a),c=s&&s.kind===a.kind,l=t;if(c&&(t=e.skipTrivia(i.text,t)),yt&&c&&a.pos!==l){var u=o&&!e.positionsAreOnSameLine(l,t,i);u&&In(),yt(l),u&&Mn()}return t=Pn(n,r,t),ht&&c&&a.end!==t&&ht(t,!0),t}function Pe(e){pn(e,e.decorators),on(e,e.modifiers),xn(\"function\"),_e(e.asteriskToken),Dn(),ge(e.name),Fe(e,Ge)}function we(e,n){Be(n)}function Fe(n,t){var r=n.body;if(r)if(e.isBlock(r)){var a=65536&e.getEmitFlags(n);a&&In(),Xn(n),e.forEach(n.parameters,Zn),Zn(n.body),t(n),x?x(4,r,we):Be(r),Yn(n),a&&Mn()}else t(n),Dn(),ye(r);else t(n),Sn()}function Ge(e){fn(e,e.typeParameters),_n(e,e.parameters),sn(e.type)}function Be(n){Dn(),Tn(\"{\"),In();var t=function(n){if(1&e.getEmitFlags(n))return!0;if(n.multiLine)return!1;if(!e.nodeIsSynthesized(n)&&!e.rangeIsOnSingleLine(n,i))return!1;if(Vn(n,n.statements,2)||jn(n,n.statements,2))return!1;for(var t,r=0,a=n.statements;r<a.length;r++){var o=a[r];if(Un(t,o,2))return!1;t=o}return!0}(n)?Ve:Ue;pt?pt(n,n.statements,t):t(n),Mn(),On(19,n.statements.end,Tn,n)}function Ve(e){Ue(e,!0)}function Ue(e,n){var t=en(e.statements),r=m.getTextPos();xe(e),0===t&&r===m.getTextPos()&&n?(Mn(),yn(e,e.statements,768),In()):yn(e,e.statements,1,t)}function je(n){e.forEach(n.members,$n),pn(n,n.decorators),on(n,n.modifiers),xn(\"class\"),n.name&&(Dn(),ge(n.name));var t=65536&e.getEmitFlags(n);t&&In(),fn(n,n.typeParameters),yn(n,n.heritageClauses,0),Dn(),Tn(\"{\"),yn(n,n.members,129),Tn(\"}\"),t&&Mn()}function Ke(e){Tn(\"{\"),yn(e,e.elements,525136),Tn(\"}\")}function He(e){e.propertyName&&(_e(e.propertyName),Dn(),Re(122,e.propertyName.end,xn,e),Dn()),_e(e.name)}function We(e){75===e.kind?ye(e):_e(e)}function ze(n,t,r){var a=163969;1===t.length&&(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t[0])||e.rangeStartPositionsAreOnSameLine(n,t[0],i))?(On(58,r,Tn,n),Dn(),a&=-130):Re(58,r,Tn,n),yn(n,t,a)}function qe(n){yn(n,e.createNodeArray(n.jsDocPropertyTags),33)}function Je(n){n.typeParameters&&yn(n,e.createNodeArray(n.typeParameters),33),n.parameters&&yn(n,e.createNodeArray(n.parameters),33),n.type&&(Nn(),Dn(),Tn(\"*\"),Dn(),_e(n.type))}function Xe(e){Tn(\"@\"),_e(e)}function Ye(e){e&&(Dn(),P(e))}function Qe(e){e&&(Dn(),Tn(\"{\"),_e(e.type),Tn(\"}\"))}function Ze(e,n,t,r){if(e){var a=m.getTextPos();An('/// <reference no-default-lib=\"true\"/>'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"no-default-lib\"}),Nn()}if(i&&i.moduleName&&(An('/// <amd-module name=\"'+i.moduleName+'\" />'),Nn()),i&&i.amdDependencies)for(var o=0,s=i.amdDependencies;o<s.length;o++){var c=s[o];c.name?An('/// <amd-dependency name=\"'+c.name+'\" path=\"'+c.path+'\" />'):An('/// <amd-dependency path=\"'+c.path+'\" />'),Nn()}for(var l=0,u=n;l<u.length;l++){var d=u[l];a=m.getTextPos();An('/// <reference path=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"reference\",data:d.fileName}),Nn()}for(var p=0,f=t;p<f.length;p++){d=f[p],a=m.getTextPos();An('/// <reference types=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"type\",data:d.fileName}),Nn()}for(var _=0,g=r;_<g.length;_++){d=g[_],a=m.getTextPos();An('/// <reference lib=\"'+d.fileName+'\" />'),w&&w.sections.push({pos:a,end:m.getTextPos(),kind:\"lib\",data:d.fileName}),Nn()}}function $e(n){var t=n.statements;Xn(n),e.forEach(n.statements,Zn),xe(n);var r=e.findIndex(t,(function(n){return!e.isPrologueDirective(n)}));!function(e){e.isDeclarationFile&&Ze(e.hasNoDefaultLib,e.referencedFiles,e.typeReferenceDirectives,e.libReferenceDirectives)}(n),yn(n,t,1,-1===r?t.length:r),Yn(n)}function en(n,t,r,a){for(var i=!!t,o=0;o<n.length;o++){var s=n[o];if(!e.isPrologueDirective(s))return o;if(!r||!r.has(s.expression.text)){i&&(i=!1,de(t)),Nn();var c=m.getTextPos();_e(s),a&&w&&w.sections.push({pos:c,end:m.getTextPos(),kind:\"prologue\",data:s.expression.text}),r&&r.set(s.expression.text,!0)}}return n.length}function nn(e,n){for(var t=0,r=e;t<r.length;t++){var a=r[t];if(!n.has(a.data)){Nn();var i=m.getTextPos();_e(a),w&&w.sections.push({pos:i,end:m.getTextPos(),kind:\"prologue\",data:a.data}),n&&n.set(a.data,!0)}}}function tn(n){if(e.isSourceFile(n))en(n.statements,n);else{for(var t=e.createMap(),r=0,a=n.prepends;r<a.length;r++){nn(a[r].prologues,t)}for(var i=0,o=n.sourceFiles;i<o.length;i++){var s=o[i];en(s.statements,s,t,!0)}de(void 0)}}function rn(n){if(e.isSourceFile(n)||e.isUnparsedSource(n)){var t=e.getShebang(n.text);if(t)return An(t),Nn(),!0}else{for(var r=0,a=n.prepends;r<a.length;r++){var i=a[r];if(e.Debug.assertNode(i,e.isUnparsedSource),rn(i))return!0}for(var o=0,s=n.sourceFiles;o<s.length;o++){if(rn(s[o]))return!0}}}function an(e,n){if(e){var t=P;P=n,_e(e),P=t}}function on(e,n){n&&n.length&&(yn(e,n,262656),Dn())}function sn(e){e&&(Tn(\":\"),Dn(),_e(e))}function cn(e,n,t){e&&(Dn(),Re(62,n,Ln,t),Dn(),ye(e))}function ln(e){e&&(Dn(),_e(e))}function un(e){e&&(Dn(),ye(e))}function dn(n,t){e.isBlock(t)||1&e.getEmitFlags(n)?(Dn(),_e(t)):(Nn(),In(),e.isEmptyStatement(t)?ve(5,t):_e(t),Mn())}function pn(e,n){yn(e,n,49153)}function mn(e,n){yn(e,n,53776)}function fn(n,t){if(e.isFunctionLike(n)&&n.typeArguments)return mn(n,n.typeArguments);yn(n,t,53776)}function _n(e,n){yn(e,n,2576)}function gn(n,t){!function(n,t){var r=e.singleOrUndefined(t);return r&&r.pos===n.pos&&e.isArrowFunction(n)&&!n.type&&!e.some(n.decorators)&&!e.some(n.modifiers)&&!e.some(n.typeParameters)&&!e.some(r.decorators)&&!e.some(r.modifiers)&&!r.dotDotDotToken&&!r.questionToken&&!r.type&&!r.initializer&&e.isIdentifier(r.name)}(n,t)?_n(n,t):yn(n,t,528)}function yn(e,n,t,r,a){bn(_e,e,n,t,r,a)}function vn(e,n,t,r,a){bn(ye,e,n,t,r,a)}function hn(e){switch(60&e){case 0:break;case 16:Tn(\",\");break;case 4:Dn(),Tn(\"|\");break;case 32:Dn(),Tn(\"*\"),Dn();break;case 8:Dn(),Tn(\"&\")}}function bn(n,t,a,i,o,s){void 0===o&&(o=0),void 0===s&&(s=a?a.length-o:0);var c=void 0===a;if(!(c&&16384&i)){var l=void 0===a||o>=a.length||0===s;if(l&&32768&i)return A&&A(a),void(D&&D(a));if(15360&i&&(Tn(function(e){return r[15360&e][0]}(i)),l&&!c&&ht(a.pos,!0)),A&&A(a),l)1&i?Nn():256&i&&!(524288&i)&&Dn();else{var u=0==(262144&i),d=u;Vn(t,a,i)?(Nn(),d=!1):256&i&&Dn(),128&i&&In();for(var p=void 0,m=void 0,f=!1,_=0;_<s;_++){var g=a[o+_];if(32&i?(Nn(),hn(i)):p&&(60&i&&p.end!==t.end&&yt(p.end),hn(i),ae(m),Un(p,g,i)?(0==(131&i)&&(In(),f=!0),Nn(),d=!1):p&&512&i&&Dn()),m=re(g),d){if(ht)ht(e.getCommentRange(g).pos)}else d=u;n(g),f&&(Mn(),f=!1),p=g}var y=64&i&&a.hasTrailingComma;16&i&&y&&Tn(\",\"),p&&60&i&&p.end!==t.end&&!(1024&e.getEmitFlags(p))&&yt(p.end),128&i&&Mn(),ae(m),jn(t,a,i)?Nn():256&i&&Dn()}D&&D(a),15360&i&&(l&&!c&&yt(a.end),Tn(function(e){return r[15360&e][1]}(i)))}}function En(e,n){m.writeSymbol(e,n)}function Tn(e){m.writePunctuation(e)}function Sn(){m.writeTrailingSemicolon(\";\")}function xn(e){m.writeKeyword(e)}function Ln(e){m.writeOperator(e)}function Cn(e){m.writeParameter(e)}function An(e){m.writeComment(e)}function Dn(){m.writeSpace(\" \")}function kn(e){m.writeProperty(e)}function Nn(){m.writeLine()}function In(){m.increaseIndent()}function Mn(){m.decreaseIndent()}function On(n,t,r,a){return U?Pn(n,r,t):function(n,t,r,a,i){if(U||n&&e.isInJsonFile(n))return i(t,r,a);var o=n&&n.emitNode,s=o&&o.flags||0,c=o&&o.tokenSourceMapRanges&&o.tokenSourceMapRanges[t],l=c&&c.source||y;a=Lt(l,c?c.pos:a),0==(128&s)&&a>=0&&At(l,a);a=i(t,r,a),c&&(a=c.end);0==(256&s)&&a>=0&&At(l,a);return a}(a,n,r,t,Pn)}function Rn(n,t){k&&k(n),t(e.tokenToString(n.kind)),N&&N(n)}function Pn(n,t,r){var a=e.tokenToString(n);return t(a),r<0?r:r+a.length}function wn(n){1&e.getEmitFlags(n)?Dn():Nn()}function Fn(n){for(var t=n.split(/\\r\\n?|\\n/g),r=e.guessIndentation(t),a=0,i=t;a<i.length;a++){var o=i[a],s=r?o.slice(r):o;s.length&&(Nn(),P(s))}}function Gn(e,n){e?(In(),Nn()):n&&Dn()}function Bn(e,n){e&&Mn(),n&&Mn()}function Vn(n,t,r){if(1&r)return!0;if(2&r){if(65536&r)return!0;var a=t[0];return void 0===a?!e.rangeIsOnSingleLine(n,i):e.positionIsSynthesized(n.pos)||e.nodeIsSynthesized(a)?Kn(a,r):!e.rangeStartPositionsAreOnSameLine(n,a,i)}return!1}function Un(n,t,r){return!!(1&r)||(2&r?void 0!==n&&void 0!==t&&(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t)?Kn(n,r)||Kn(t,r):!e.rangeEndIsOnSameLineAsRangeStart(n,t,i)):e.getStartsOnNewLine(t))}function jn(n,t,r){if(1&r)return 0==(131072&r);if(2&r){if(65536&r)return!0;var a=e.lastOrUndefined(t);return void 0===a?!e.rangeIsOnSingleLine(n,i):e.positionIsSynthesized(n.pos)||e.nodeIsSynthesized(a)?Kn(a,r):!e.rangeEndPositionsAreOnSameLine(n,a,i)}return!1}function Kn(n,t){if(e.nodeIsSynthesized(n)){var r=e.getStartsOnNewLine(n);return void 0===r?0!=(65536&t):r}return 0!=(65536&t)}function Hn(n,t,r){return!(131072&e.getEmitFlags(n))&&(n=zn(n),t=zn(t),r=zn(r),!!e.getStartsOnNewLine(r)||!(e.nodeIsSynthesized(n)||e.nodeIsSynthesized(t)||e.nodeIsSynthesized(r)||e.rangeEndIsOnSameLineAsRangeStart(t,r,i)))}function Wn(n){return 0===n.statements.length&&e.rangeEndIsOnSameLineAsRangeStart(n,n,i)}function zn(n){for(;199===n.kind&&e.nodeIsSynthesized(n);)n=n.expression;return n}function qn(n,t){return e.isGeneratedIdentifier(n)?nt(n):e.isIdentifier(n)&&(e.nodeIsSynthesized(n)||!n.parent||!i||n.parent&&i&&e.getSourceFileOfNode(n)!==e.getOriginalNode(i))?e.idText(n):10===n.kind&&n.textSourceNode?qn(n.textSourceNode,t):!e.isLiteralExpression(n)||!e.nodeIsSynthesized(n)&&n.parent?e.getSourceTextOfNodeFromSourceFile(i,n,t):n.text}function Jn(n,t){if(10===n.kind&&n.textSourceNode){var r=n.textSourceNode;return e.isIdentifier(r)?t||16777216&e.getEmitFlags(n)?'\"'+e.escapeString(qn(r))+'\"':'\"'+e.escapeNonAsciiString(qn(r))+'\"':Jn(r,t)}return e.getLiteralText(n,i,t)}function Xn(n){n&&524288&e.getEmitFlags(n)||(l.push(u),u=0,d.push(p))}function Yn(n){n&&524288&e.getEmitFlags(n)||(u=l.pop(),p=d.pop())}function Qn(n){p&&p!==e.lastOrUndefined(d)||(p=e.createMap()),p.set(n,!0)}function Zn(n){if(n)switch(n.kind){case 222:e.forEach(n.statements,Zn);break;case 237:case 235:case 227:case 228:Zn(n.statement);break;case 226:Zn(n.thenStatement),Zn(n.elseStatement);break;case 229:case 231:case 230:Zn(n.initializer),Zn(n.statement);break;case 236:Zn(n.caseBlock);break;case 250:e.forEach(n.clauses,Zn);break;case 275:case 276:e.forEach(n.statements,Zn);break;case 239:Zn(n.tryBlock),Zn(n.catchClause),Zn(n.finallyBlock);break;case 278:Zn(n.variableDeclaration),Zn(n.block);break;case 224:Zn(n.declarationList);break;case 242:e.forEach(n.declarations,Zn);break;case 241:case 155:case 190:case 244:et(n.name);break;case 243:et(n.name),524288&e.getEmitFlags(n)&&(e.forEach(n.parameters,Zn),Zn(n.body));break;case 188:case 189:e.forEach(n.elements,Zn);break;case 253:Zn(n.importClause);break;case 254:et(n.name),Zn(n.namedBindings);break;case 255:et(n.name);break;case 256:e.forEach(n.elements,Zn);break;case 257:et(n.propertyName||n.name)}}function $n(e){if(e)switch(e.kind){case 279:case 280:case 158:case 160:case 162:case 163:et(e.name)}}function et(n){n&&(e.isGeneratedIdentifier(n)?nt(n):e.isBindingPattern(n)&&Zn(n))}function nt(n){if(4==(7&n.autoGenerateFlags))return tt(function(n){var t=n.autoGenerateId,r=n,a=r.original;for(;a&&(r=a,!(e.isIdentifier(r)&&4&r.autoGenerateFlags&&r.autoGenerateId!==t));)a=r.original;return r}(n),n.autoGenerateFlags);var t=n.autoGenerateId;return s[t]||(s[t]=function(n){switch(7&n.autoGenerateFlags){case 1:return it(0,!!(8&n.autoGenerateFlags));case 2:return it(268435456,!!(8&n.autoGenerateFlags));case 3:return ot(e.idText(n),32&n.autoGenerateFlags?at:rt,!!(16&n.autoGenerateFlags),!!(8&n.autoGenerateFlags))}return e.Debug.fail(\"Unsupported GeneratedIdentifierKind.\")}(n))}function tt(n,t){var r=e.getNodeId(n);return o[r]||(o[r]=function(n,t){switch(n.kind){case 75:return ot(qn(n),rt,!!(16&t),!!(8&t));case 248:case 247:return function(n){var t=qn(n.name);return function(n,t){for(var r=t;e.isNodeDescendantOf(r,t);r=r.nextContainer)if(r.locals){var a=r.locals.get(e.escapeLeadingUnderscores(n));if(a&&3257279&a.flags)return!1}return!0}(t,n)?t:ot(t)}(n);case 253:case 259:return function(n){var t=e.getExternalModuleName(n);return ot(e.isStringLiteral(t)?e.makeIdentifierFromModuleName(t.text):\"module\")}(n);case 243:case 244:case 258:return ot(\"default\");case 213:return ot(\"class\");case 160:case 162:case 163:return function(n){if(e.isIdentifier(n.name))return tt(n.name);return it(0)}(n);case 153:return it(0,!0);default:return it(0)}}(n,t))}function rt(e){return at(e)&&!c.has(e)&&!(p&&p.has(e))}function at(n){return!i||e.isFileLevelUniqueName(i,n,T)}function it(e,n){if(e&&!(u&e)&&rt(t=268435456===e?\"_i\":\"_n\"))return u|=e,n&&Qn(t),t;for(;;){var t,r=268435455&u;if(u++,8!==r&&13!==r)if(rt(t=r<26?\"_\"+String.fromCharCode(97+r):\"_\"+(r-26)))return n&&Qn(t),t}}function ot(e,n,t,r){if(void 0===n&&(n=rt),t&&n(e))return r?Qn(e):c.set(e,!0),e;95!==e.charCodeAt(e.length-1)&&(e+=\"_\");for(var a=1;;){var i=e+a;if(n(i))return r?Qn(i):c.set(i,!0),i;a++}}function st(e){return ot(e,at,!0)}function ct(n,t){e.Debug.assert(b===t||E===t),X(),z=!1;var r=e.getEmitFlags(t),a=e.getCommentRange(t),i=a.pos,o=a.end,s=318!==t.kind,c=i<0||0!=(512&r)||11===t.kind,l=o<0||0!=(1024&r)||11===t.kind,u=K,d=H,p=W;(i>0||o>0)&&i!==o&&(c||mt(i,s),(!c||i>=0&&0!=(512&r))&&(K=i),(!l||o>=0&&0!=(1024&r))&&(H=o,242===t.kind&&(W=o))),e.forEach(e.getSyntheticLeadingComments(t),lt),Y();var m=be(2,t);2048&r?(q=!0,m(n,t),q=!1):m(n,t),X(),e.forEach(e.getSyntheticTrailingComments(t),ut),(i>0||o>0)&&i!==o&&(K=u,H=d,W=p,!l&&s&&function(e){Tt(e,vt)}(o)),Y(),e.Debug.assert(b===t||E===t)}function lt(e){2===e.kind&&m.writeLine(),dt(e),e.hasTrailingNewLine||2===e.kind?m.writeLine():m.writeSpace(\" \")}function ut(e){m.isAtStartOfLine()||m.writeSpace(\" \"),dt(e),e.hasTrailingNewLine&&m.writeLine()}function dt(n){var t=function(e){return 3===e.kind?\"/*\"+e.text+\"*/\":\"//\"+e.text}(n),r=3===n.kind?e.computeLineStarts(t):void 0;e.writeCommentRange(t,r,m,0,t.length,M)}function pt(n,t,r){X();var a,o,s=t.pos,c=t.end,l=e.getEmitFlags(n),u=q||c<0||0!=(1024&l);s<0||0!=(512&l)||(a=t,(o=e.emitDetachedComments(i.text,fe(),m,St,a,M,q))&&(h?h.push(o):h=[o])),Y(),2048&l&&!q?(q=!0,r(n),q=!1):r(n),X(),u||(mt(t.end,!0),z&&!m.isAtStartOfLine()&&m.writeLine()),Y()}function mt(e,n){z=!1,n?Et(e,gt):0===e&&Et(e,ft)}function ft(n,t,r,a,o){(function(n,t){return e.isRecognizedTripleSlashComment(i.text,n,t)})(n,t)&&gt(n,t,r,a,o)}function _t(t,r){return!n.onlyPrintJsDocStyle||(e.isJSDocLikeText(t,r)||e.isPinnedComment(t,r))}function gt(n,t,r,a,o){_t(i.text,n)&&(z||(e.emitNewLineBeforeLeadingCommentOfPosition(fe(),m,o,n),z=!0),Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a?m.writeLine():3===r&&m.writeSpace(\" \"))}function yt(e){q||-1===e||mt(e,!0)}function vt(n,t,r,a){_t(i.text,n)&&(m.isAtStartOfLine()||m.writeSpace(\" \"),Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a&&m.writeLine())}function ht(e,n){q||(X(),Tt(e,n?vt:bt),Y())}function bt(n,t,r,a){Ct(n),e.writeCommentRange(i.text,fe(),m,n,t,M),Ct(t),a?m.writeLine():m.writeSpace(\" \")}function Et(n,t){!i||-1!==K&&n===K||(function(n){return void 0!==h&&e.last(h).nodePos===n}(n)?function(n){var t=e.last(h).detachedCommentEndPos;h.length-1?h.pop():h=void 0;e.forEachLeadingCommentRange(i.text,t,n,t)}(t):e.forEachLeadingCommentRange(i.text,n,t,n))}function Tt(n,t){i&&(-1===H||n!==H&&n!==W)&&e.forEachTrailingCommentRange(i.text,n,t)}function St(n,t,r,a,o,s){_t(i.text,a)&&(Ct(a),e.writeCommentRange(n,t,r,a,o,s),Ct(o))}function xt(n,t){e.Debug.assert(b===t||E===t);var r=be(3,t);if(e.isUnparsedSource(t)||e.isUnparsedPrepend(t))r(n,t);else if(e.isUnparsedNode(t)){var a=function(n){return void 0===n.parsedSourceMap&&void 0!==n.sourceMapText&&(n.parsedSourceMap=e.tryParseRawSourceMap(n.sourceMapText)||!1),n.parsedSourceMap||void 0}(t.parent);a&&g&&g.appendSourceMap(m.getLine(),m.getColumn(),a,t.parent.sourceMapPath,t.parent.getLineAndCharacterOfPosition(t.pos),t.parent.getLineAndCharacterOfPosition(t.end)),r(n,t)}else{var i=e.getSourceMapRange(t),o=i.pos,s=i.end,c=i.source,l=void 0===c?y:c,u=e.getEmitFlags(t);318!==t.kind&&0==(16&u)&&o>=0&&At(l,Lt(l,o)),64&u?(U=!0,r(n,t),U=!1):r(n,t),318!==t.kind&&0==(32&u)&&s>=0&&At(l,s)}e.Debug.assert(b===t||E===t)}function Lt(n,t){return n.skipTrivia?n.skipTrivia(t):e.skipTrivia(n.text,t)}function Ct(n){if(!(U||e.positionIsSynthesized(n)||kt(y))){var t=e.getLineAndCharacterOfPosition(y,n),r=t.line,a=t.character;g.addMapping(m.getLine(),m.getColumn(),j,r,a,void 0)}}function At(e,n){if(e!==y){var t=y;Dt(e),Ct(n),Dt(t)}else Ct(n)}function Dt(e){U||(y=e,kt(e)||(j=g.addSource(e.fileName),n.inlineSources&&g.setSourceContent(j,e.text)))}function kt(n){return e.fileExtensionIs(n.fileName,\".json\")}}e.isBuildInfoFile=function(n){return e.fileExtensionIs(n,\".tsbuildinfo\")},e.forEachEmittedFile=i,e.getTsBuildInfoEmitOutputFilePath=o,e.getOutputPathsForBundle=s,e.getOutputPathsFor=c,e.getOutputExtension=u,e.getOutputDeclarationFileName=p,e.getAllProjectOutputs=function(e,n){var t=f(),r=t.addOutput,a=t.getOutputs;if(e.options.outFile||e.options.out)_(e,r);else{for(var i=0,s=e.fileNames;i<s.length;i++){g(e,s[i],n,r)}r(o(e.options))}return a()},e.getOutputFileNames=function(n,t,r){t=e.normalizePath(t),e.Debug.assert(e.contains(n.fileNames,t),\"Expected fileName to be present in command line\");var a=f(),i=a.addOutput,o=a.getOutputs;return n.options.outFile||n.options.out?_(n,i):g(n,t,r,i),o()},e.getFirstProjectOutput=function(n,t){if(n.options.outFile||n.options.out){var r=s(n.options,!1).jsFilePath;return e.Debug.assertDefined(r,\"project \"+n.options.configFilePath+\" expected to have at least one output\")}for(var a=0,i=n.fileNames;a<i.length;a++){var c=i[a];if(!e.fileExtensionIs(c,\".d.ts\")){if(r=m(c,n,t))return r;if(!e.fileExtensionIs(c,\".json\")&&e.getEmitDeclarations(n.options))return p(c,n,t)}}var l=o(n.options);return l||e.Debug.fail(\"project \"+n.options.configFilePath+\" expected to have at least one output\")},e.emitFiles=y,e.getBuildInfoText=v,e.getBuildInfo=h,e.notImplementedResolver={hasGlobalName:e.notImplemented,getReferencedExportContainer:e.notImplemented,getReferencedImportDeclaration:e.notImplemented,getReferencedDeclarationWithCollidingName:e.notImplemented,isDeclarationWithCollidingName:e.notImplemented,isValueAliasDeclaration:e.notImplemented,isReferencedAliasDeclaration:e.notImplemented,isTopLevelValueImportEqualsWithEntityName:e.notImplemented,getNodeCheckFlags:e.notImplemented,isDeclarationVisible:e.notImplemented,isLateBound:function(e){return!1},collectLinkedAliases:e.notImplemented,isImplementationOfOverload:e.notImplemented,isRequiredInitializedParameter:e.notImplemented,isOptionalUninitializedParameterProperty:e.notImplemented,isExpandoFunctionDeclaration:e.notImplemented,getPropertiesOfContainerFunction:e.notImplemented,createTypeOfDeclaration:e.notImplemented,createReturnTypeOfSignatureDeclaration:e.notImplemented,createTypeOfExpression:e.notImplemented,createLiteralConstValue:e.notImplemented,isSymbolAccessible:e.notImplemented,isEntityNameVisible:e.notImplemented,getConstantValue:e.notImplemented,getReferencedValueDeclaration:e.notImplemented,getTypeReferenceSerializationKind:e.notImplemented,isOptionalParameter:e.notImplemented,moduleExportsSomeValue:e.notImplemented,isArgumentsLocalBinding:e.notImplemented,getExternalModuleFileFromDeclaration:e.notImplemented,getTypeReferenceDirectivesForEntityName:e.notImplemented,getTypeReferenceDirectivesForSymbol:e.notImplemented,isLiteralConstDeclaration:e.notImplemented,getJsxFactoryEntity:e.notImplemented,getAllAccessorDeclarations:e.notImplemented,getSymbolOfExternalModuleSpecifier:e.notImplemented,isBindingCapturedByNode:e.notImplemented,getDeclarationStatementsForSourceFile:e.notImplemented},e.emitUsingBuildInfo=function(n,t,r,a){var i=s(n.options,!1),o=i.buildInfoPath,c=i.jsFilePath,l=i.sourceMapFilePath,u=i.declarationFilePath,d=i.declarationMapPath,p=t.readFile(e.Debug.assertDefined(o));if(!p)return o;var m=t.readFile(e.Debug.assertDefined(c));if(!m)return c;var f=l&&t.readFile(l);if(l&&!f||n.options.inlineSourceMap)return l||\"inline sourcemap decoding\";var _=u&&t.readFile(u);if(u&&!_)return u;var g=d&&t.readFile(d);if(d&&!g||n.options.inlineSourceMap)return d||\"inline sourcemap decoding\";var b=h(p);if(!b.bundle||!b.bundle.js||_&&!b.bundle.dts)return o;var E=e.getDirectoryPath(e.getNormalizedAbsolutePath(o,t.getCurrentDirectory())),T=e.createInputFiles(m,_,l,f,d,g,c,u,o,b,!0),S=[],x=e.createPrependNodes(n.projectReferences,r,(function(e){return t.readFile(e)})),L=function(n,t,r){var a=n.sourceFiles.map((function(n){var a=e.createNode(288,0,0);return a.fileName=e.getRelativePathFromDirectory(r.getCurrentDirectory(),e.getNormalizedAbsolutePath(n,t),!r.useCaseSensitiveFileNames()),a.text=\"\",a.statements=e.createNodeArray(),a})),i=e.Debug.assertDefined(n.js);return e.forEach(i.sources&&i.sources.prologues,(function(n){var t=a[n.file];t.text=n.text,t.end=n.text.length,t.statements=e.createNodeArray(n.directives.map((function(n){var t=e.createNode(225,n.pos,n.end);return t.expression=e.createNode(10,n.expression.pos,n.expression.end),t.expression.text=n.expression.text,t})))})),a}(b.bundle,E,t),C={getPrependNodes:e.memoize((function(){return __spreadArrays(x,[T])})),getCanonicalFileName:t.getCanonicalFileName,getCommonSourceDirectory:function(){return e.getNormalizedAbsolutePath(b.bundle.commonSourceDirectory,E)},getCompilerOptions:function(){return n.options},getCurrentDirectory:function(){return t.getCurrentDirectory()},getNewLine:function(){return t.getNewLine()},getSourceFile:e.returnUndefined,getSourceFileByPath:e.returnUndefined,getSourceFiles:function(){return L},getLibFileFromReference:e.notImplemented,isSourceFileFromExternalLibrary:e.returnFalse,getResolvedProjectReferenceToRedirect:e.returnUndefined,isSourceOfProjectReferenceRedirect:e.returnFalse,writeFile:function(n,t,r){switch(n){case c:if(m===t)return;break;case l:if(f===t)return;break;case o:var a=h(t);a.program=b.program;var i=b.bundle,s=i.js,p=i.dts,y=i.sourceFiles;return a.bundle.js.sources=s.sources,p&&(a.bundle.dts.sources=p.sources),a.bundle.sourceFiles=y,void S.push({name:n,text:v(a),writeByteOrderMark:r});case u:if(_===t)return;break;case d:if(g===t)return;break;default:e.Debug.fail(\"Unexpected path: \"+n)}S.push({name:n,text:t,writeByteOrderMark:r})},isEmitBlocked:e.returnFalse,readFile:function(e){return t.readFile(e)},fileExists:function(e){return t.fileExists(e)},directoryExists:t.directoryExists&&function(e){return t.directoryExists(e)},useCaseSensitiveFileNames:function(){return t.useCaseSensitiveFileNames()},getProgramBuildInfo:e.returnUndefined,getSourceFileFromReference:e.returnUndefined,redirectTargetsMap:e.createMultiMap()};return y(e.notImplementedResolver,C,void 0,e.getTransformers(n.options,a)),S},function(e){e[e.Notification=0]=\"Notification\",e[e.Substitution=1]=\"Substitution\",e[e.Comments=2]=\"Comments\",e[e.SourceMaps=3]=\"SourceMaps\",e[e.Emit=4]=\"Emit\"}(n||(n={})),e.createPrinter=b,function(e){e[e.Auto=0]=\"Auto\",e[e.CountMask=268435455]=\"CountMask\",e[e._i=268435456]=\"_i\"}(t||(t={}))}(ts||(ts={})),function(e){var n;function t(e,n,t,r){return e.watchFile(n,t,r)}function r(e,n,t,r){return e.watchDirectory(n,t,0!=(1&r))}function a(e,t){switch(e){case n.None:return t;case n.TriggerOnly:return s;case n.Verbose:return t===r?o:i}}function i(e,n,t,r,a,i,o,l,u,d,p){u(d+\":: Added:: \"+c(n,r,i,o,p));var m=s(e,n,t,r,a,i,o,l,u,d,p);return{close:function(){u(d+\":: Close:: \"+c(n,r,i,o,p)),m.close()}}}function o(n,t,r,a,i,o,l,u,d,p,m){var f=p+\":: Added:: \"+c(t,a,o,l,m);d(f);var _=e.timestamp(),g=s(n,t,r,a,i,o,l,u,d,p,m),y=e.timestamp()-_;return d(\"Elapsed:: \"+y+\"ms \"+f),{close:function(){var n=p+\":: Close:: \"+c(t,a,o,l,m);d(n);var r=e.timestamp();g.close();var i=e.timestamp()-r;d(\"Elapsed:: \"+i+\"ms \"+n)}}}function s(n,t,r,a,i,o,s,l,u,d,p){return l(n,t,(function(n,l){var m=d+\":: Triggered with \"+n+\" \"+(void 0!==l?l:\"\")+\":: \"+c(t,a,o,s,p);u(m);var f=e.timestamp();r(n,l,i);var _=e.timestamp()-f;u(\"Elapsed:: \"+_+\"ms \"+m)}),a)}function c(e,n,t,r,a){return\"WatchInfo: \"+e+\" \"+n+\" \"+(a?a(t,r):void 0===r?t:t+\" \"+r)}function l(e){e.watcher.close()}e.createCachedDirectoryStructureHost=function(n,t,r){if(n.getDirectories&&n.readDirectory){var a=e.createMap(),i=e.createGetCanonicalFileName(r);return{useCaseSensitiveFileNames:r,fileExists:function(e){var t=c(o(e));return t&&p(t.files,l(e))||n.fileExists(e)},readFile:function(e,t){return n.readFile(e,t)},directoryExists:n.directoryExists&&function(t){var r=o(t);return a.has(e.ensureTrailingDirectorySeparator(r))||n.directoryExists(t)},getDirectories:function(e){var t=o(e),r=u(e,t);if(r)return r.directories.slice();return n.getDirectories(e)},readDirectory:function(a,i,s,c,l){var d=o(a),p=u(a,d);if(p)return e.matchFiles(a,i,s,c,r,t,l,(function(n){var t=o(n);if(t===d)return p;return u(n,t)||e.emptyFileSystemEntries}),f);return n.readDirectory(a,i,s,c,l)},createDirectory:n.createDirectory&&function(e){var t=c(o(e)),r=l(e);t&&m(t.directories,r,!0);n.createDirectory(e)},writeFile:n.writeFile&&function(e,t,r){var a=c(o(e));a&&_(a,l(e),!0);return n.writeFile(e,t,r)},addOrDeleteFileOrDirectory:function(e,t){if(s(t))return void g();var r=c(t);if(!r)return;if(!n.directoryExists)return void g();var a=l(e),i={fileExists:n.fileExists(t),directoryExists:n.directoryExists(t)};i.directoryExists||p(r.directories,a)?g():_(r,a,i.fileExists);return i},addOrDeleteFile:function(n,t,r){if(r===e.FileWatcherEventKind.Changed)return;var a=c(t);a&&_(a,l(n),r===e.FileWatcherEventKind.Created)},clearCache:g,realpath:n.realpath&&f}}function o(n){return e.toPath(n,t,i)}function s(n){return a.get(e.ensureTrailingDirectorySeparator(n))}function c(n){return s(e.getDirectoryPath(n))}function l(n){return e.getBaseFileName(e.normalizePath(n))}function u(t,r){var i=s(r=e.ensureTrailingDirectorySeparator(r));if(i)return i;try{return function(t,r){var i={files:e.map(n.readDirectory(t,void 0,void 0,[\"*.*\"]),l)||[],directories:n.getDirectories(t)||[]};return a.set(e.ensureTrailingDirectorySeparator(r),i),i}(t,r)}catch(n){return void e.Debug.assert(!a.has(e.ensureTrailingDirectorySeparator(r)))}}function d(e,n){return i(e)===i(n)}function p(n,t){return e.some(n,(function(e){return d(e,t)}))}function m(n,t,r){if(p(n,t)){if(!r)return e.filterMutate(n,(function(e){return!d(e,t)}))}else if(r)return n.push(t)}function f(e){return n.realpath?n.realpath(e):e}function _(e,n,t){m(e.files,n,t)}function g(){a.clear()}},function(e){e[e.None=0]=\"None\",e[e.Partial=1]=\"Partial\",e[e.Full=2]=\"Full\"}(e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={})),e.updateMissingFilePathsWatch=function(n,t,r){var a=n.getMissingFilePaths(),i=e.arrayToSet(a);e.mutateMap(t,i,{createNewValue:r,onDeleteValue:e.closeFileWatcher})},e.updateWatchingWildcardDirectories=function(n,t,r){function a(e,n){return{watcher:r(e,n),flags:n}}e.mutateMap(n,t,{createNewValue:a,onDeleteValue:l,onExistingValue:function(e,t,r){if(e.flags===t)return;e.watcher.close(),n.set(r,a(r,t))}})},e.isEmittedFileOfProgram=function(e,n){return!!e&&e.isEmittedFile(n)},function(e){e[e.None=0]=\"None\",e[e.TriggerOnly=1]=\"TriggerOnly\",e[e.Verbose=2]=\"Verbose\"}(n=e.WatchLogLevel||(e.WatchLogLevel={})),e.getWatchFactory=function(i,o,s){return function(t,r,i,o,s){var c=a(t,o),l=t===n.None?function(e,n,t,r,a){return o(e,n,(function(e,n){return t(e,n,a)}),r)}:c,u=a(t,s);t===n.Verbose&&e.sysLog===e.noop&&(e.sysLog=function(e){return r(e)});return{watchFile:function(e,n,t,a,s,l){return c(e,n,t,a,void 0,s,l,o,r,\"FileWatcher\",i)},watchFilePath:function(e,n,t,a,s,c,u){return l(e,n,t,a,s,c,u,o,r,\"FileWatcher\",i)},watchDirectory:function(e,n,t,a,o,c){return u(e,n,t,a,void 0,o,c,s,r,\"DirectoryWatcher\",i)}}}(i,o,s,t,r)},e.closeFileWatcherOf=l}(ts||(ts={})),function(e){var n,t=/(^\\s*$)|(^\\s*\\/\\/\\/?\\s*(@ts-ignore)?)/;function r(n,t){var r=e.getDirectoryPath(t),a=e.isRootedDiskPath(n)?n:e.combinePaths(r,n);return e.normalizePath(a)}function a(n,t,r){var a;return e.forEach(n,(function(n){var i=e.getNormalizedPathComponents(n,t);if(i.pop(),a){for(var o=Math.min(a.length,i.length),s=0;s<o;s++)if(r(a[s])!==r(i[s])){if(0===s)return!0;a.length=s;break}i.length<a.length&&(a.length=i.length)}else a=i}))?\"\":a?e.getPathFromPathComponents(a):t}function i(e,n){return o(e,n)}function o(n,t,r){void 0===r&&(r=e.sys);var a,i=e.createMap(),o=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames);function s(n){n.length>e.getRootLength(n)&&!function(e){return!!i.has(e)||!!r.directoryExists(e)&&(i.set(e,!0),!0)}(n)&&(s(e.getDirectoryPath(n)),d.createDirectory?d.createDirectory(n):r.createDirectory(n))}function c(){return e.getDirectoryPath(e.normalizePath(r.getExecutingFilePath()))}var l=e.getNewLineCharacter(n,(function(){return r.newLine})),u=r.realpath&&function(e){return r.realpath(e)},d={getSourceFile:function(n,r,a){var i;try{e.performance.mark(\"beforeIORead\"),i=d.readFile(n),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(e){a&&a(e.message),i=\"\"}return void 0!==i?e.createSourceFile(n,i,r,t):void 0},getDefaultLibLocation:c,getDefaultLibFileName:function(n){return e.combinePaths(c(),e.getDefaultLibFileName(n))},writeFile:function(t,i,o,c){try{e.performance.mark(\"beforeIOWrite\"),s(e.getDirectoryPath(e.normalizePath(t))),e.isWatchSet(n)&&r.createHash&&r.getModifiedTime?function(n,t,i){a||(a=e.createMap());var o=r.createHash(t),s=r.getModifiedTime(n);if(s){var c=a.get(n);if(c&&c.byteOrderMark===i&&c.hash===o&&c.mtime.getTime()===s.getTime())return}r.writeFile(n,t,i);var l=r.getModifiedTime(n)||e.missingFileModifiedTime;a.set(n,{hash:o,byteOrderMark:i,mtime:l})}(t,i,o):r.writeFile(t,i,o),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(e){c&&c(e.message)}},getCurrentDirectory:e.memoize((function(){return r.getCurrentDirectory()})),useCaseSensitiveFileNames:function(){return r.useCaseSensitiveFileNames},getCanonicalFileName:o,getNewLine:function(){return l},fileExists:function(e){return r.fileExists(e)},readFile:function(e){return r.readFile(e)},trace:function(e){return r.write(e+l)},directoryExists:function(e){return r.directoryExists(e)},getEnvironmentVariable:function(e){return r.getEnvironmentVariable?r.getEnvironmentVariable(e):\"\"},getDirectories:function(e){return r.getDirectories(e)},realpath:u,readDirectory:function(e,n,t,a,i){return r.readDirectory(e,n,t,a,i)},createDirectory:function(e){return r.createDirectory(e)},createHash:e.maybeBind(r,r.createHash)};return d}function s(n,t){var r=e.diagnosticCategoryName(n)+\" TS\"+n.code+\": \"+m(n.messageText,t.getNewLine())+t.getNewLine();if(n.file){var a=e.getLineAndCharacterOfPosition(n.file,n.start),i=a.line,o=a.character,s=n.file.fileName;return e.convertToRelativePath(s,t.getCurrentDirectory(),(function(e){return t.getCanonicalFileName(e)}))+\"(\"+(i+1)+\",\"+(o+1)+\"): \"+r}return r}e.findConfigFile=function(n,t,r){return void 0===r&&(r=\"tsconfig.json\"),e.forEachAncestorDirectory(n,(function(n){var a=e.combinePaths(n,r);return t(a)?a:void 0}))},e.resolveTripleslashReference=r,e.computeCommonSourceDirectoryOfFilenames=a,e.createCompilerHost=i,e.createCompilerHostWorker=o,e.changeCompilerHostLikeToUseCache=function(n,t,r){var a=n.readFile,i=n.fileExists,o=n.directoryExists,s=n.createDirectory,c=n.writeFile,l=e.createMap(),u=e.createMap(),d=e.createMap(),p=e.createMap(),m=function(e,t){var r=a.call(n,t);return l.set(e,void 0!==r&&r),r};n.readFile=function(r){var i=t(r),o=l.get(i);return void 0!==o?!1!==o?o:void 0:e.fileExtensionIs(r,\".json\")||e.isBuildInfoFile(r)?m(i,r):a.call(n,r)};var f=r?function(n,a,i,o){var s=t(n),c=p.get(s);if(c)return c;var l=r(n,a,i,o);return l&&(e.isDeclarationFileName(n)||e.fileExtensionIs(n,\".json\"))&&p.set(s,l),l}:void 0;return n.fileExists=function(e){var r=t(e),a=u.get(r);if(void 0!==a)return a;var o=i.call(n,e);return u.set(r,!!o),o},c&&(n.writeFile=function(e,r,a,i,o){var s=t(e);u.delete(s);var d=l.get(s);if(void 0!==d&&d!==r)l.delete(s),p.delete(s);else if(f){var m=p.get(s);m&&m.text!==r&&p.delete(s)}c.call(n,e,r,a,i,o)}),o&&s&&(n.directoryExists=function(e){var r=t(e),a=d.get(r);if(void 0!==a)return a;var i=o.call(n,e);return d.set(r,!!i),i},n.createDirectory=function(e){var r=t(e);d.delete(r),s.call(n,e)}),{originalReadFile:a,originalFileExists:i,originalDirectoryExists:o,originalCreateDirectory:s,originalWriteFile:c,getSourceFileWithCache:f,readFileWithCache:function(e){var n=t(e),r=l.get(n);return void 0!==r?!1!==r?r:void 0:m(n,e)}}},e.getPreEmitDiagnostics=function(n,t,r){var a=__spreadArrays(n.getConfigFileParsingDiagnostics(),n.getOptionsDiagnostics(r),n.getSyntacticDiagnostics(t,r),n.getGlobalDiagnostics(r),n.getSemanticDiagnostics(t,r));return e.getEmitDeclarations(n.getCompilerOptions())&&e.addRange(a,n.getDeclarationDiagnostics(t,r)),e.sortAndDeduplicateDiagnostics(a)},e.formatDiagnostics=function(e,n){for(var t=\"\",r=0,a=e;r<a.length;r++){t+=s(a[r],n)}return t},e.formatDiagnostic=s,function(e){e.Grey=\"\u001b[90m\",e.Red=\"\u001b[91m\",e.Yellow=\"\u001b[93m\",e.Blue=\"\u001b[94m\",e.Cyan=\"\u001b[96m\"}(n=e.ForegroundColorEscapeSequences||(e.ForegroundColorEscapeSequences={}));function c(t){switch(t){case e.DiagnosticCategory.Error:return n.Red;case e.DiagnosticCategory.Warning:return n.Yellow;case e.DiagnosticCategory.Suggestion:return e.Debug.fail(\"Should never get an Info diagnostic on the command line.\");case e.DiagnosticCategory.Message:return n.Blue}}function l(e,n){return n+e+\"\u001b[0m\"}function u(e,n){for(;e.length<n;)e=\" \"+e;return e}function d(n,t,r,a,i,o){var s=e.getLineAndCharacterOfPosition(n,t),c=s.line,d=s.character,p=e.getLineAndCharacterOfPosition(n,t+r),m=p.line,f=p.character,_=e.getLineAndCharacterOfPosition(n,n.text.length).line,g=m-c>=4,y=(m+1+\"\").length;g&&(y=Math.max(\"...\".length,y));for(var v=\"\",h=c;h<=m;h++){v+=o.getNewLine(),g&&c+1<h&&h<m-1&&(v+=a+l(u(\"...\",y),\"\u001b[7m\")+\" \"+o.getNewLine(),h=m-1);var b=e.getPositionOfLineAndCharacter(n,h,0),E=h<_?e.getPositionOfLineAndCharacter(n,h+1,0):n.text.length,T=n.text.slice(b,E);if(T=(T=T.replace(/\\s+$/g,\"\")).replace(\"\\t\",\" \"),v+=a+l(u(h+1+\"\",y),\"\u001b[7m\")+\" \",v+=T+o.getNewLine(),v+=a+l(u(\"\",y),\"\u001b[7m\")+\" \",v+=i,h===c){var S=h===m?f:void 0;v+=T.slice(0,d).replace(/\\S/g,\" \"),v+=T.slice(d,S).replace(/./g,\"~\")}else v+=h===m?T.slice(0,f).replace(/./g,\"~\"):T.replace(/./g,\"~\");v+=\"\u001b[0m\"}return v}function p(t,r,a,i){void 0===i&&(i=l);var o=e.getLineAndCharacterOfPosition(t,r),s=o.line,c=o.character,u=\"\";return u+=i(a?e.convertToRelativePath(t.fileName,a.getCurrentDirectory(),(function(e){return a.getCanonicalFileName(e)})):t.fileName,n.Cyan),u+=\":\",u+=i(\"\"+(s+1),n.Yellow),u+=\":\",u+=i(\"\"+(c+1),n.Yellow)}function m(n,t,r){if(void 0===r&&(r=0),e.isString(n))return n;if(void 0===n)return\"\";var a=\"\";if(r){a+=t;for(var i=0;i<r;i++)a+=\"  \"}if(a+=n.messageText,r++,n.next)for(var o=0,s=n.next;o<s.length;o++){a+=m(s[o],t,r)}return a}function f(n,t,r,a){if(0===n.length)return[];for(var i=[],o=e.createMap(),s=0,c=n;s<c.length;s++){var l=c[s],u=void 0;o.has(l)?u=o.get(l):o.set(l,u=a(l,t,r)),i.push(u)}return i}function _(n,t){return void 0===t&&(t=n),{fileExists:function(e){return t.fileExists(e)},readDirectory:function(n,r,a,i,o){return e.Debug.assertDefined(t.readDirectory,\"'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),t.readDirectory(n,r,a,i,o)},readFile:function(e){return t.readFile(e)},useCaseSensitiveFileNames:n.useCaseSensitiveFileNames(),getCurrentDirectory:function(){return n.getCurrentDirectory()},onUnRecoverableConfigFileDiagnostic:n.onUnRecoverableConfigFileDiagnostic||e.returnUndefined,trace:n.trace?function(e){return n.trace(e)}:void 0}}function g(n,t,r){if(!n)return e.emptyArray;for(var a,i=0;i<n.length;i++){var o=n[i],s=t(o,i);if(o.prepend&&s&&s.options){if(!(s.options.outFile||s.options.out))continue;var c=e.getOutputPathsForBundle(s.options,!0),l=c.jsFilePath,u=c.sourceMapFilePath,d=c.declarationFilePath,p=c.declarationMapPath,m=c.buildInfoPath,f=e.createInputFiles(r,l,u,d,p,m);(a||(a=[])).push(f)}}return a||e.emptyArray}function y(n,t){var r=t||n;return e.resolveConfigFileProjectName(r.path)}function v(n,t){switch(t.extension){case\".ts\":case\".d.ts\":return;case\".tsx\":return r();case\".jsx\":return r()||a();case\".js\":return a();case\".json\":return n.resolveJsonModule?void 0:e.Diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used}function r(){return n.jsx?void 0:e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set}function a(){return n.allowJs||!e.getStrictOptionValue(n,\"noImplicitAny\")?void 0:e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type}}function h(e){for(var n=e.imports,t=e.moduleAugmentations,r=n.map((function(e){return e.text})),a=0,i=t;a<i.length;a++){var o=i[a];10===o.kind&&r.push(o.text)}return r}e.formatColorAndReset=l,e.formatLocation=p,e.formatDiagnosticsWithColorAndContext=function(t,r){for(var a=\"\",i=0,o=t;i<o.length;i++){var s=o[i];if(s.file)a+=p(g=s.file,y=s.start,r),a+=\" - \";if(a+=l(e.diagnosticCategoryName(s),c(s.category)),a+=l(\" TS\"+s.code+\": \",n.Grey),a+=m(s.messageText,r.getNewLine()),s.file&&(a+=r.getNewLine(),a+=d(s.file,s.start,s.length,\"\",c(s.category),r),s.relatedInformation)){a+=r.getNewLine();for(var u=0,f=s.relatedInformation;u<f.length;u++){var _=f[u],g=_.file,y=_.start,v=_.length,h=_.messageText;g&&(a+=r.getNewLine(),a+=\"  \"+p(g,y,r),a+=d(g,y,v,\"    \",n.Cyan,r)),a+=r.getNewLine(),a+=\"    \"+m(h,r.getNewLine())}}a+=r.getNewLine()}return a},e.flattenDiagnosticMessageText=m,e.loadWithLocalCache=f,e.inferredTypesContainingFile=\"__inferred type names__.ts\",e.isProgramUptoDate=function(n,t,r,a,i,o,s,c){if(!n||s)return!1;if(n.getRootFileNames().length!==t.length)return!1;var l;if(!e.arrayIsEqualTo(n.getProjectReferences(),c,(function(t,r,a){if(!e.projectReferenceIsEqualTo(t,r))return!1;return function n(t,r){if(t)return!!e.contains(l,t)||!!d(t.sourceFile)&&((l||(l=[])).push(t),!e.forEach(t.references,(function(e,r){return!n(e,t.commandLine.projectReferences[r])})));return!i(y(r))}(n.getResolvedProjectReferences()[a],t)})))return!1;if(n.getSourceFiles().some((function(e){return!d(e)||o(e.path)})))return!1;if(n.getMissingFilePaths().some(i))return!1;var u=n.getCompilerOptions();return!!e.compareDataObjects(u,r)&&(!u.configFile||!r.configFile||u.configFile.text===r.configFile.text);function d(e){return e.version===a(e.resolvedPath)}},e.getConfigFileParsingDiagnostics=function(e){return e.options.configFile?__spreadArrays(e.options.configFile.parseDiagnostics,e.errors):e.errors},e.createProgram=function(n,o,s,c,l){var u,d,p,m,b,E,T,S,x,L=e.isArray(n)?function(e,n,t,r,a){return{rootNames:e,options:n,host:t,oldProgram:r,configFileParsingDiagnostics:a}}(n,o,s,c,l):n,C=L.rootNames,A=L.options,D=L.configFileParsingDiagnostics,k=L.projectReferences,N=L.oldProgram,I=e.createMap(),M={},O={},R=e.createMap(),P=e.createDiagnosticCollection(),w=\"number\"==typeof A.maxNodeModuleJsDepth?A.maxNodeModuleJsDepth:0,F=0,G=e.createMap(),B=e.createMap();e.performance.mark(\"beforeProgram\");var V,U,j,K,H=L.host||i(A),W=_(H),z=A.noLib,q=e.memoize((function(){return H.getDefaultLibFileName(A)})),J=H.getDefaultLibLocation?H.getDefaultLibLocation():e.getDirectoryPath(q()),X=e.createDiagnosticCollection(),Y=H.getCurrentDirectory(),Q=e.getSupportedExtensions(A),Z=e.getSuppoertedExtensionsWithJsonIfResolveJsonModule(A,Q),$=e.createMap(),ee=H.hasInvalidatedResolution||e.returnFalse;if(H.resolveModuleNames)j=function(n,t,r,a){return H.resolveModuleNames(e.Debug.assertEachDefined(n),t,r,a,A).map((function(n){if(!n||void 0!==n.extension)return n;var t=e.clone(n);return t.extension=e.extensionFromPath(n.resolvedFileName),t}))};else{U=e.createModuleResolutionCache(Y,(function(e){return H.getCanonicalFileName(e)}),A);var ne=function(n,t,r){return e.resolveModuleName(n,t,A,H,U,r).resolvedModule};j=function(n,t,r,a){return f(e.Debug.assertEachDefined(n),t,a,ne)}}if(H.resolveTypeReferenceDirectives)K=function(n,t,r){return H.resolveTypeReferenceDirectives(e.Debug.assertEachDefined(n),t,r,A)};else{var te=function(n,t,r){return e.resolveTypeReferenceDirective(n,t,A,H,r).resolvedTypeReferenceDirective};K=function(n,t,r){return f(e.Debug.assertEachDefined(n),t,r,te)}}var re,ae,ie,oe,se,ce,le=e.createMap(),ue=e.createMap(),de=e.createMultiMap(),pe=e.createMap(),me=H.useCaseSensitiveFileNames()?e.createMap():void 0,fe=!!H.useSourceOfProjectReferenceRedirect&&H.useSourceOfProjectReferenceRedirect(),_e=function(n,t){if(!n)return!1;var r=n.getCompilerOptions();return!!e.sourceFileAffectingCompilerOptions.some((function(n){return!e.isJsonEqual(e.getCompilerOptionValue(r,n),e.getCompilerOptionValue(t,n))}))}(N,A);if(2!==(ce=function(){if(!N)return 0;var n=N.getCompilerOptions();if(e.changesAffectModuleResolution(n,A))return N.structureIsReused=0;e.Debug.assert(!(3&N.structureIsReused));var t=N.getRootFileNames();if(!e.arrayIsEqualTo(t,C))return N.structureIsReused=0;if(!e.arrayIsEqualTo(A.types,n.types))return N.structureIsReused=0;if(Tn(N.getProjectReferences(),N.getResolvedProjectReferences(),(function(e,n,t){var r=Mn((t?t.commandLine.projectReferences:k)[n]);return e?!r||r.sourceFile!==e.sourceFile:void 0!==r}),(function(n,t){var r=t?Sn(t.sourceFile.path).commandLine.projectReferences:k;return!e.arrayIsEqualTo(n,r,e.projectReferenceIsEqualTo)})))return N.structureIsReused=0;k&&(ae=k.map(Mn),H.setResolvedProjectReferenceCallbacks&&H.setResolvedProjectReferenceCallbacks({getSourceOfProjectReferenceRedirect:bn,forEachResolvedProjectReference:hn}));var r=[],a=[];if(N.structureIsReused=2,N.getMissingFilePaths().some((function(e){return H.fileExists(e)})))return N.structureIsReused=0;var i,o=N.getSourceFiles();!function(e){e[e.Exists=0]=\"Exists\",e[e.Modified=1]=\"Modified\"}(i||(i={}));for(var s=e.createMap(),c=0,l=o;c<l.length;c++){var u=l[c];if(!(O=H.getSourceFileByPath?H.getSourceFileByPath(u.fileName,u.resolvedPath,A.target,void 0,_e):H.getSourceFile(u.fileName,A.target,void 0,_e)))return N.structureIsReused=0;e.Debug.assert(!O.redirectInfo,\"Host should not return a redirect source file from `getSourceFile`\");var d=void 0;if(u.redirectInfo){if(O!==u.redirectInfo.unredirected)return N.structureIsReused=0;d=!1,O=u}else if(N.redirectTargetsMap.has(u.path)){if(O!==u)return N.structureIsReused=0;d=!1}else d=O!==u;O.path=u.path,O.originalFileName=u.originalFileName,O.resolvedPath=u.resolvedPath,O.fileName=u.fileName;var m=N.sourceFileToPackageName.get(u.path);if(void 0!==m){var f=s.get(m),_=d?1:0;if(void 0!==f&&1===_||1===f)return N.structureIsReused=0;s.set(m,_)}if(d){if(!e.arrayIsEqualTo(u.libReferenceDirectives,O.libReferenceDirectives,on))return N.structureIsReused=0;u.hasNoDefaultLib!==O.hasNoDefaultLib&&(N.structureIsReused=1),e.arrayIsEqualTo(u.referencedFiles,O.referencedFiles,on)||(N.structureIsReused=1),cn(O),e.arrayIsEqualTo(u.imports,O.imports,sn)||(N.structureIsReused=1),e.arrayIsEqualTo(u.moduleAugmentations,O.moduleAugmentations,sn)||(N.structureIsReused=1),(3145728&u.flags)!=(3145728&O.flags)&&(N.structureIsReused=1),e.arrayIsEqualTo(u.typeReferenceDirectives,O.typeReferenceDirectives,on)||(N.structureIsReused=1),a.push({oldFile:u,newFile:O})}else ee(u.path)&&(N.structureIsReused=1,a.push({oldFile:u,newFile:O}));r.push(O)}if(2!==N.structureIsReused)return N.structureIsReused;for(var g=a.map((function(e){return e.oldFile})),y=0,v=o;y<v.length;y++){var b=v[y];if(!e.contains(g,b))for(var E=0,T=b.ambientModuleNames;E<T.length;E++){var S=T[E];I.set(S,b.fileName)}}for(var L=0,D=a;L<D.length;L++){var M=D[L],O=(u=M.oldFile,M.newFile),w=e.getNormalizedAbsolutePath(O.originalFileName,Y),F=h(O),G=Be(F,w,O);if(e.hasChangesInResolutions(F,G,u.resolvedModules,e.moduleResolutionIsEqualTo)?(N.structureIsReused=1,O.resolvedModules=e.zipToMap(F,G)):O.resolvedModules=u.resolvedModules,K){var V=e.map(O.typeReferenceDirectives,(function(e){return e.fileName.toLocaleLowerCase()})),U=K(V,w,vn(O.originalFileName));e.hasChangesInResolutions(V,U,u.resolvedTypeReferenceDirectiveNames,e.typeDirectiveIsEqualTo)?(N.structureIsReused=1,O.resolvedTypeReferenceDirectiveNames=e.zipToMap(V,U)):O.resolvedTypeReferenceDirectiveNames=u.resolvedTypeReferenceDirectiveNames}}if(2!==N.structureIsReused)return N.structureIsReused;if(H.hasChangedAutomaticTypeDirectiveNames)return N.structureIsReused=1;re=N.getMissingFilePaths(),x=N.getRefFileMap();for(var j=0,W=r;j<W.length;j++){var z=(O=W[j]).path;if(fn(O,z,O.resolvedPath),fe){var q=gn(O.fileName);if(q&&!q.commandLine.options.outFile&&!q.commandLine.options.out){var J=yn(q,O.fileName);fn(O,Fe(J),void 0)}}N.isSourceFileFromExternalLibrary(N.getSourceFileByPath(O.resolvedPath))&&B.set(z,!0)}p=r,P=N.getFileProcessingDiagnostics();for(var X=0,Q=a;X<Q.length;X++){var Z=Q[X];P.reattachFileDiagnostics(Z.newFile)}return R=N.getResolvedTypeReferenceDirectives(),ue=N.sourceFileToPackageName,de=N.redirectTargetsMap,N.structureIsReused=2}())){if(u=[],d=[],k&&(ae||(ae=k.map(Mn)),H.setResolvedProjectReferenceCallbacks&&H.setResolvedProjectReferenceCallbacks({getSourceOfProjectReferenceRedirect:bn,forEachResolvedProjectReference:hn}),C.length))for(var ge=0,ye=ae;ge<ye.length;ge++){var ve=ye[ge];if(ve){var he=ve.commandLine.options.outFile||ve.commandLine.options.out;if(fe){if(he||e.getEmitModuleKind(ve.commandLine.options)===e.ModuleKind.None)for(var be=0,Ee=ve.commandLine.fileNames;be<Ee.length;be++){un(xe=Ee[be],!1,!1,void 0)}}else if(he)un(e.changeExtension(he,\".d.ts\"),!1,!1,void 0);else if(e.getEmitModuleKind(ve.commandLine.options)===e.ModuleKind.None)for(var Te=0,Se=ve.commandLine.fileNames;Te<Se.length;Te++){var xe=Se[Te];e.fileExtensionIs(xe,\".d.ts\")||e.fileExtensionIs(xe,\".json\")||un(e.getOutputDeclarationFileName(xe,ve.commandLine,!H.useCaseSensitiveFileNames()),!1,!1,void 0)}}}e.forEach(C,(function(e){return an(e,!1,!1)}));var Le=C.length?e.getAutomaticTypeDirectiveNames(A,H):e.emptyArray;if(Le.length)for(var Ce=A.configFilePath?e.getDirectoryPath(A.configFilePath):H.getCurrentDirectory(),Ae=e.combinePaths(Ce,e.inferredTypesContainingFile),De=K(Le,Ae),ke=0;ke<Le.length;ke++)Cn(Le[ke],De[ke]);if(C.length&&!z){var Ne=q();!A.lib&&Ne?an(Ne,!0,!1):e.forEach(A.lib,(function(n){an(e.combinePaths(J,n),!0,!1)}))}re=e.arrayFrom(e.mapDefinedIterator(pe.entries(),(function(e){var n=e[0];return void 0===e[1]?n:void 0}))),p=e.stableSort(u,(function(n,t){return e.compareValues(we(n),we(t))})).concat(d),u=void 0,d=void 0}if(e.Debug.assert(!!re),N&&H.onReleaseOldSourceFile){for(var Ie=0,Me=N.getSourceFiles();Ie<Me.length;Ie++){var Oe=Me[Ie],Re=qe(Oe.resolvedPath);(_e||!Re||Oe.resolvedPath===Oe.path&&Re.resolvedPath!==Oe.path)&&H.onReleaseOldSourceFile(Oe,N.getCompilerOptions(),!!qe(Oe.path))}N.forEachResolvedProjectReference((function(e,n){e&&!Sn(n)&&H.onReleaseOldSourceFile(e.sourceFile,N.getCompilerOptions(),!1)}))}N=void 0;var Pe={getRootFileNames:function(){return C},getSourceFile:ze,getSourceFileByPath:qe,getSourceFiles:function(){return p},getMissingFilePaths:function(){return re},getRefFileMap:function(){return x},getCompilerOptions:function(){return A},getSyntacticDiagnostics:function(e,n){return Je(e,Xe,n)},getOptionsDiagnostics:function(){return e.sortAndDeduplicateDiagnostics(e.concatenate(P.getGlobalDiagnostics(),e.concatenate(X.getGlobalDiagnostics(),function(){if(!A.configFile)return e.emptyArray;var n=X.getDiagnostics(A.configFile.fileName);return hn((function(t){t&&(n=e.concatenate(n,X.getDiagnostics(t.sourceFile.fileName)))})),n}())))},getGlobalDiagnostics:function(){return C.length?e.sortAndDeduplicateDiagnostics(Ke().getGlobalDiagnostics().slice()):e.emptyArray},getSemanticDiagnostics:function(e,n){return Je(e,Qe,n)},getSuggestionDiagnostics:function(e,n){return Ye((function(){return Ke().getSuggestionDiagnostics(e,n)}))},getDeclarationDiagnostics:function(e,n){var t=Pe.getCompilerOptions();return!e||t.out||t.outFile?en(e,n):Je(e,rn,n)},getTypeChecker:He,getClassifiableNames:function(){if(!S){He(),S=e.createUnderscoreEscapedMap();for(var n=0,t=p;n<t.length;n++){var r=t[n];e.copyEntries(r.classifiableNames,S)}}return S},getDiagnosticsProducingTypeChecker:Ke,getCommonSourceDirectory:Ge,emit:function(n,t,r,a,i,o){return Ye((function(){return function(n,t,r,a,i,o,s){var c=[];if(!s){if(A.noEmit)return{diagnostics:c,sourceMaps:void 0,emittedFiles:void 0,emitSkipped:!0};if(A.noEmitOnError){var l=__spreadArrays(n.getOptionsDiagnostics(a),n.getSyntacticDiagnostics(t,a),n.getGlobalDiagnostics(a),n.getSemanticDiagnostics(t,a));if(0===l.length&&e.getEmitDeclarations(n.getCompilerOptions())&&(c=n.getDeclarationDiagnostics(void 0,a)),l.length>0||c.length>0)return{diagnostics:e.concatenate(l,c),sourceMaps:void 0,emittedFiles:void 0,emitSkipped:!0}}}var u=Ke().getEmitResolver(A.outFile||A.out?void 0:t,a);e.performance.mark(\"beforeEmit\");var d=e.emitFiles(u,Ve(r),t,e.getTransformers(A,o,i),i,!1,s);return e.performance.mark(\"afterEmit\"),e.performance.measure(\"Emit\",\"beforeEmit\",\"afterEmit\"),d}(Pe,n,t,r,a,i,o)}))},getCurrentDirectory:function(){return Y},getNodeCount:function(){return Ke().getNodeCount()},getIdentifierCount:function(){return Ke().getIdentifierCount()},getSymbolCount:function(){return Ke().getSymbolCount()},getTypeCount:function(){return Ke().getTypeCount()},getRelationCacheSizes:function(){return Ke().getRelationCacheSizes()},getFileProcessingDiagnostics:function(){return P},getResolvedTypeReferenceDirectives:function(){return R},isSourceFileFromExternalLibrary:je,isSourceFileDefaultLibrary:function(n){if(n.hasNoDefaultLib)return!0;if(!A.noLib)return!1;var t=H.useCaseSensitiveFileNames()?e.equateStringsCaseSensitive:e.equateStringsCaseInsensitive;return A.lib?e.some(A.lib,(function(r){return t(n.fileName,e.combinePaths(J,r))})):t(n.fileName,q())},dropDiagnosticsProducingTypeChecker:function(){E=void 0},getSourceFileFromReference:function(e,n){return ln(r(n.fileName,e.fileName),(function(e){return pe.get(Fe(e))||void 0}))},getLibFileFromReference:function(n){var t=n.fileName.toLocaleLowerCase(),r=e.libMap.get(t);if(r)return ze(e.combinePaths(J,r))},sourceFileToPackageName:ue,redirectTargetsMap:de,isEmittedFile:function(n){if(A.noEmit)return!1;var t=Fe(n);if(qe(t))return!1;var r=A.outFile||A.out;if(r)return Hn(t,r)||Hn(t,e.removeFileExtension(r)+\".d.ts\");if(A.declarationDir&&e.containsPath(A.declarationDir,t,Y,!H.useCaseSensitiveFileNames()))return!0;if(A.outDir)return e.containsPath(A.outDir,t,Y,!H.useCaseSensitiveFileNames());if(e.fileExtensionIsOneOf(t,e.supportedJSExtensions)||e.fileExtensionIs(t,\".d.ts\")){var a=e.removeFileExtension(t);return!!qe(a+\".ts\")||!!qe(a+\".tsx\")}return!1},getConfigFileParsingDiagnostics:function(){return D||e.emptyArray},getResolvedModuleWithFailedLookupLocationsFromCache:function(n,t){return U&&e.resolveModuleNameFromCache(n,t,U)},getProjectReferences:function(){return k},getResolvedProjectReferences:function(){return ae},getProjectReferenceRedirect:_n,getResolvedProjectReferenceToRedirect:vn,getResolvedProjectReferenceByPath:Sn,forEachResolvedProjectReference:hn,isSourceOfProjectReferenceRedirect:En,emitBuildInfo:function(n){e.Debug.assert(!A.out&&!A.outFile),e.performance.mark(\"beforeEmit\");var t=e.emitFiles(e.notImplementedResolver,Ve(n),void 0,e.noTransformers,!1,!0);return e.performance.mark(\"afterEmit\"),e.performance.measure(\"Emit\",\"beforeEmit\",\"afterEmit\"),t},getProbableSymlinks:Wn};return function(){A.strictPropertyInitialization&&!e.getStrictOptionValue(A,\"strictNullChecks\")&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"strictPropertyInitialization\",\"strictNullChecks\");A.isolatedModules&&(A.out&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"out\",\"isolatedModules\"),A.outFile&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"outFile\",\"isolatedModules\"));A.inlineSourceMap&&(A.sourceMap&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"sourceMap\",\"inlineSourceMap\"),A.mapRoot&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"mapRoot\",\"inlineSourceMap\"));A.paths&&void 0===A.baseUrl&&Fn(e.Diagnostics.Option_paths_cannot_be_used_without_specifying_baseUrl_option,\"paths\");A.composite&&(!1===A.declaration&&Fn(e.Diagnostics.Composite_projects_may_not_disable_declaration_emit,\"declaration\"),!1===A.incremental&&Fn(e.Diagnostics.Composite_projects_may_not_disable_incremental_compilation,\"declaration\"));A.tsBuildInfoFile?e.isIncrementalCompilation(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"tsBuildInfoFile\",\"incremental\",\"composite\"):!A.incremental||A.outFile||A.out||A.configFilePath||X.add(e.createCompilerDiagnostic(e.Diagnostics.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified));if(function(){var n=A.noEmit||A.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(A);Tn(k,ae,(function(t,r,a){var i=(a?a.commandLine.projectReferences:k)[r],o=a&&a.sourceFile;if(t){var s=t.commandLine.options;if(!s.composite)(a?a.commandLine.fileNames:C).length&&Bn(o,r,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,i.path);if(i.prepend){var c=s.outFile||s.out;c?H.fileExists(c)||Bn(o,r,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,c,i.path):Bn(o,r,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,i.path)}!a&&n&&n===e.getTsBuildInfoEmitOutputFilePath(s)&&(Bn(o,r,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,n,i.path),$.set(Fe(n),!0))}else Bn(o,r,e.Diagnostics.File_0_not_found,i.path)}))}(),A.composite)for(var n=e.arrayToSet(C,Fe),t=0,r=p;t<r.length;t++){var a=r[t];e.sourceFileMayBeEmitted(a,Pe)&&!n.has(a.path)&&On(a,n,e.Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern,a.fileName,A.configFilePath||\"\")}if(A.paths)for(var i in A.paths)if(e.hasProperty(A.paths,i))if(e.hasZeroOrOneAsteriskCharacter(i)||Pn(!0,i,e.Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,i),e.isArray(A.paths[i])){var o=A.paths[i].length;0===o&&Pn(!1,i,e.Diagnostics.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array,i);for(var s=0;s<o;s++){var c=A.paths[i][s],l=typeof c;\"string\"===l?e.hasZeroOrOneAsteriskCharacter(c)||Rn(i,s,e.Diagnostics.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character,c,i):Rn(i,s,e.Diagnostics.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2,c,i,l)}}else Pn(!1,i,e.Diagnostics.Substitutions_for_pattern_0_should_be_an_array,i);A.sourceMap||A.inlineSourceMap||(A.inlineSources&&Fn(e.Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided,\"inlineSources\"),A.sourceRoot&&Fn(e.Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided,\"sourceRoot\"));A.out&&A.outFile&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"out\",\"outFile\");!A.mapRoot||A.sourceMap||A.declarationMap||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"mapRoot\",\"sourceMap\",\"declarationMap\");A.declarationDir&&(e.getEmitDeclarations(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"declarationDir\",\"declaration\",\"composite\"),(A.out||A.outFile)&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"declarationDir\",A.out?\"out\":\"outFile\"));A.declarationMap&&!e.getEmitDeclarations(A)&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"declarationMap\",\"declaration\",\"composite\");A.lib&&A.noLib&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"lib\",\"noLib\");A.noImplicitUseStrict&&e.getStrictOptionValue(A,\"alwaysStrict\")&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"noImplicitUseStrict\",\"alwaysStrict\");var u=A.target||0,d=A.outFile||A.out,m=e.find(p,(function(n){return e.isExternalModule(n)&&!n.isDeclarationFile}));if(A.isolatedModules){A.module===e.ModuleKind.None&&u<2&&Fn(e.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher,\"isolatedModules\",\"target\");var f=e.find(p,(function(n){return!e.isExternalModule(n)&&!e.isSourceFileJS(n)&&!n.isDeclarationFile&&6!==n.scriptKind}));if(f){var _=e.getErrorSpanForNode(f,f);X.add(e.createFileDiagnostic(f,_.start,_.length,e.Diagnostics.All_files_must_be_modules_when_the_isolatedModules_flag_is_provided))}}else if(m&&u<2&&A.module===e.ModuleKind.None){_=e.getErrorSpanForNode(m,m.externalModuleIndicator);X.add(e.createFileDiagnostic(m,_.start,_.length,e.Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none))}if(d&&!A.emitDeclarationOnly)if(A.module&&A.module!==e.ModuleKind.AMD&&A.module!==e.ModuleKind.System)Fn(e.Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0,A.out?\"out\":\"outFile\",\"module\");else if(void 0===A.module&&m){_=e.getErrorSpanForNode(m,m.externalModuleIndicator);X.add(e.createFileDiagnostic(m,_.start,_.length,e.Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system,A.out?\"out\":\"outFile\"))}A.resolveJsonModule&&(e.getEmitModuleResolutionKind(A)!==e.ModuleResolutionKind.NodeJs?Fn(e.Diagnostics.Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy,\"resolveJsonModule\"):e.hasJsonModuleEmitEnabled(A)||Fn(e.Diagnostics.Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext,\"resolveJsonModule\",\"module\"));if(A.outDir||A.sourceRoot||A.mapRoot){var g=Ge();A.outDir&&\"\"===g&&p.some((function(n){return e.getRootLength(n.fileName)>1}))&&Fn(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,\"outDir\")}A.useDefineForClassFields&&0===u&&Fn(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,\"useDefineForClassFields\");A.checkJs&&!A.allowJs&&X.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"checkJs\",\"allowJs\"));A.emitDeclarationOnly&&(e.getEmitDeclarations(A)||Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"emitDeclarationOnly\",\"declaration\",\"composite\"),A.noEmit&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"emitDeclarationOnly\",\"noEmit\"));A.emitDecoratorMetadata&&!A.experimentalDecorators&&Fn(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"emitDecoratorMetadata\",\"experimentalDecorators\");A.jsxFactory?(A.reactNamespace&&Fn(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"reactNamespace\",\"jsxFactory\"),e.parseIsolatedEntityName(A.jsxFactory,u)||Gn(\"jsxFactory\",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,A.jsxFactory)):A.reactNamespace&&!e.isIdentifierText(A.reactNamespace,u)&&Gn(\"reactNamespace\",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,A.reactNamespace);if(!A.noEmit&&!A.suppressOutputPathCheck){var y=Ve(),v=e.createMap();e.forEachEmittedFile(y,(function(e){A.emitDeclarationOnly||h(e.jsFilePath,v),h(e.declarationFilePath,v)}))}function h(n,t){if(n){var r=Fe(n);if(pe.has(r)){var a=void 0;A.configFilePath||(a=e.chainDiagnosticMessages(void 0,e.Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)),a=e.chainDiagnosticMessages(a,e.Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file,n),Kn(n,e.createCompilerDiagnosticFromMessageChain(a))}var i=H.useCaseSensitiveFileNames()?r:r.toLocaleLowerCase();t.has(i)?Kn(n,e.createCompilerDiagnostic(e.Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files,n)):t.set(i,!0)}}}(),e.performance.mark(\"afterProgram\"),e.performance.measure(\"Program\",\"beforeProgram\",\"afterProgram\"),Pe;function we(n){if(e.containsPath(J,n.fileName,!1)){var t=e.getBaseFileName(n.fileName);if(\"lib.d.ts\"===t||\"lib.es6.d.ts\"===t)return 0;var r=e.removeSuffix(e.removePrefix(t,\"lib.\"),\".d.ts\"),a=e.libs.indexOf(r);if(-1!==a)return a+1}return e.libs.length+2}function Fe(n){return e.toPath(n,Y,kn)}function Ge(){if(void 0===b){var n=e.filter(p,(function(n){return e.sourceFileMayBeEmitted(n,Pe)}));A.rootDir&&In(n,A.rootDir)?b=e.getNormalizedAbsolutePath(A.rootDir,Y):A.composite&&A.configFilePath?In(n,b=e.getDirectoryPath(e.normalizeSlashes(A.configFilePath))):(t=n,b=a(e.mapDefined(t,(function(e){return e.isDeclarationFile?void 0:e.fileName})),Y,kn)),b&&b[b.length-1]!==e.directorySeparator&&(b+=e.directorySeparator)}var t;return b}function Be(n,t,r){if(0===ce&&!r.ambientModuleNames.length)return j(n,t,void 0,vn(r.originalFileName));var a,i,o,s=N&&N.getSourceFile(t);if(s!==r&&r.resolvedModules){for(var c=[],l=0,u=n;l<u.length;l++){var d=u[l],p=r.resolvedModules.get(d);c.push(p)}return c}for(var m={},f=0;f<n.length;f++){d=n[f];if(r===s&&!ee(s.path)){var _=s&&s.resolvedModules.get(d);if(_){e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Reusing_resolution_of_module_0_to_file_1_from_old_program,d,t),(i||(i=new Array(n.length)))[f]=_,(o||(o=[])).push(d);continue}}var g=!1;e.contains(r.ambientModuleNames,d)?(g=!0,e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1,d,t)):g=h(d),g?(i||(i=new Array(n.length)))[f]=m:(a||(a=[])).push(d)}var y=a&&a.length?j(a,t,o,vn(r.originalFileName)):e.emptyArray;if(!i)return e.Debug.assert(y.length===n.length),y;var v=0;for(f=0;f<i.length;f++)i[f]?i[f]===m&&(i[f]=void 0):(i[f]=y[v],v++);return e.Debug.assert(v===y.length),i;function h(n){var t=e.getResolvedModule(s,n),r=t&&N.getSourceFile(t.resolvedFileName);if(t&&r)return!1;var a=I.get(n);return!!a&&(e.isTraceEnabled(A,H)&&e.trace(H,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,n,a),!0)}}function Ve(n){return __assign(__assign({getPrependNodes:Ue,getCanonicalFileName:kn,getCommonSourceDirectory:Pe.getCommonSourceDirectory,getCompilerOptions:Pe.getCompilerOptions,getCurrentDirectory:function(){return Y},getNewLine:function(){return H.getNewLine()},getSourceFile:Pe.getSourceFile,getSourceFileByPath:Pe.getSourceFileByPath,getSourceFiles:Pe.getSourceFiles,getLibFileFromReference:Pe.getLibFileFromReference,isSourceFileFromExternalLibrary:je,getResolvedProjectReferenceToRedirect:vn,isSourceOfProjectReferenceRedirect:En,getProbableSymlinks:Wn,writeFile:n||function(e,n,t,r,a){return H.writeFile(e,n,t,r,a)},isEmitBlocked:We,readFile:function(e){return H.readFile(e)},fileExists:function(n){var t=Fe(n);return!!qe(t)||!e.contains(re,t)&&H.fileExists(n)}},H.directoryExists?{directoryExists:function(e){return H.directoryExists(e)}}:{}),{useCaseSensitiveFileNames:function(){return H.useCaseSensitiveFileNames()},getProgramBuildInfo:function(){return Pe.getProgramBuildInfo&&Pe.getProgramBuildInfo()},getSourceFileFromReference:function(e,n){return Pe.getSourceFileFromReference(e,n)},redirectTargetsMap:de})}function Ue(){return g(k,(function(e,n){return ae[n].commandLine}),(function(e){var n=Fe(e),t=qe(n);return t?t.text:pe.has(n)?void 0:H.readFile(n)}))}function je(e){return!!B.get(e.path)}function Ke(){return E||(E=e.createTypeChecker(Pe,!0))}function He(){return T||(T=e.createTypeChecker(Pe,!1))}function We(e){return $.has(Fe(e))}function ze(e){return qe(Fe(e))}function qe(e){return pe.get(e)||void 0}function Je(n,t,r){return n?t(n,r):e.sortAndDeduplicateDiagnostics(e.flatMap(Pe.getSourceFiles(),(function(e){return r&&r.throwIfCancellationRequested(),t(e,r)})))}function Xe(n){return e.isSourceFileJS(n)?(n.additionalSyntacticDiagnostics||(n.additionalSyntacticDiagnostics=function(n){return Ye((function(){var t=[],r=n;return a(n),t;function a(n){switch(r.kind){case 155:case 158:case 160:if(r.questionToken===n)return void t.push(s(n,e.Diagnostics._0_can_only_be_used_in_a_ts_file,\"?\"));case 159:case 161:case 162:case 163:case 200:case 243:case 201:case 241:if(r.type===n)return void t.push(s(n,e.Diagnostics.types_can_only_be_used_in_a_ts_file))}switch(n.kind){case 252:return void t.push(s(n,e.Diagnostics.import_can_only_be_used_in_a_ts_file));case 258:if(n.isExportEquals)return void t.push(s(n,e.Diagnostics.export_can_only_be_used_in_a_ts_file));break;case 277:if(112===n.token)return void t.push(s(n,e.Diagnostics.implements_clauses_can_only_be_used_in_a_ts_file));break;case 245:return void t.push(s(n,e.Diagnostics.interface_declarations_can_only_be_used_in_a_ts_file));case 248:return void t.push(s(n,e.Diagnostics.module_declarations_can_only_be_used_in_a_ts_file));case 246:return void t.push(s(n,e.Diagnostics.type_aliases_can_only_be_used_in_a_ts_file));case 247:return void t.push(s(n,e.Diagnostics.enum_declarations_can_only_be_used_in_a_ts_file));case 217:return void t.push(s(n,e.Diagnostics.non_null_assertions_can_only_be_used_in_a_ts_file));case 216:return void t.push(s(n.type,e.Diagnostics.type_assertion_expressions_can_only_be_used_in_a_ts_file));case 198:e.Debug.fail()}var o=r;r=n,e.forEachChild(n,a,i),r=o}function i(n){switch(r.decorators!==n||A.experimentalDecorators||t.push(s(r,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning)),r.kind){case 244:case 213:case 160:case 161:case 162:case 163:case 200:case 243:case 201:if(n===r.typeParameters)return void t.push(o(n,e.Diagnostics.type_parameter_declarations_can_only_be_used_in_a_ts_file));case 224:if(n===r.modifiers)return function(n,r){for(var a=0,i=n;a<i.length;a++){var o=i[a];switch(o.kind){case 80:if(r)continue;case 118:case 116:case 117:case 137:case 129:case 121:t.push(s(o,e.Diagnostics._0_can_only_be_used_in_a_ts_file,e.tokenToString(o.kind)))}}}(r.modifiers,224===r.kind);break;case 158:if(n===r.modifiers){for(var i=0,c=n;i<c.length;i++){var l=c[i];119!==l.kind&&t.push(s(l,e.Diagnostics._0_can_only_be_used_in_a_ts_file,e.tokenToString(l.kind)))}return}break;case 155:if(n===r.modifiers)return void t.push(o(n,e.Diagnostics.parameter_modifiers_can_only_be_used_in_a_ts_file));break;case 195:case 196:case 215:case 265:case 266:case 197:if(n===r.typeArguments)return void t.push(o(n,e.Diagnostics.type_arguments_can_only_be_used_in_a_ts_file))}for(var u=0,d=n;u<d.length;u++){a(d[u])}}function o(t,r,a,i,o){var s=t.pos;return e.createFileDiagnostic(n,s,t.end-s,r,a,i,o)}function s(t,r,a,i,o){return e.createDiagnosticForNodeInSourceFile(n,t,r,a,i,o)}}))}(n)),e.concatenate(n.additionalSyntacticDiagnostics,n.parseDiagnostics)):n.parseDiagnostics}function Ye(n){try{return n()}catch(n){throw n instanceof e.OperationCanceledException&&(T=void 0,E=void 0),n}}function Qe(e,n){return tn(e,n,M,Ze)}function Ze(n,t){return Ye((function(){if(e.skipTypeChecking(n,A,Pe))return e.emptyArray;var r=Ke();e.Debug.assert(!!n.bindDiagnostics);for(var a,i=e.isCheckJsEnabledForFile(n,A),o=!(!!n.checkJsDirective&&!1===n.checkJsDirective.enabled)&&(3===n.scriptKind||4===n.scriptKind||5===n.scriptKind||i||7===n.scriptKind),s=0,c=[o?n.bindDiagnostics:e.emptyArray,o?r.getDiagnostics(n,t):e.emptyArray,P.getDiagnostics(n.fileName),X.getDiagnostics(n.fileName),i?n.jsDocDiagnostics:void 0];s<c.length;s++){var l=c[s];if(l)for(var u=0,d=l;u<d.length;u++){var p=d[u];$e(p)&&(a=e.append(a,p))}}return a}))}function $e(n){var r=n.file,a=n.start;if(r)for(var i=e.getLineStarts(r),o=e.computeLineAndCharacterOfPosition(i,a).line;o>0;){var s=r.text.slice(i[o-1],i[o]),c=t.exec(s);if(!c)return!0;if(c[3])return!1;o--}return!0}function en(e,n){return tn(e,n,O,nn)}function nn(n,t){return Ye((function(){var r=Ke().getEmitResolver(n,t);return e.getDeclarationDiagnostics(Ve(e.noop),r,n)}))}function tn(n,t,r,a){var i=n?r.perFile&&r.perFile.get(n.path):r.allDiagnostics;if(i)return i;var o=a(n,t)||e.emptyArray;return n?(r.perFile||(r.perFile=e.createMap()),r.perFile.set(n.path,o)):r.allDiagnostics=o,o}function rn(e,n){return e.isDeclarationFile?[]:en(e,n)}function an(n,t,r){un(e.normalizePath(n),t,r,void 0)}function on(e,n){return e.fileName===n.fileName}function sn(e,n){return 75===e.kind?75===n.kind&&e.escapedText===n.escapedText:10===n.kind&&e.text===n.text}function cn(n){if(!n.imports){var t,r,a,i=e.isSourceFileJS(n),o=e.isExternalModule(n);if(A.importHelpers&&(A.isolatedModules||o)&&!n.isDeclarationFile){var s=e.createLiteral(e.externalHelpersModuleNameText),c=e.createImportDeclaration(void 0,void 0,void 0,s);e.addEmitFlags(c,67108864),s.parent=c,c.parent=n,t=[s]}for(var l=0,u=n.statements;l<u.length;l++){d(u[l],!1)}return(1048576&n.flags||i)&&function(n){var r=/import|require/g;for(;null!==r.exec(n.text);){var a=p(n,r.lastIndex);e.isRequireCall(a,!0)?t=e.append(t,a.arguments[0]):e.isImportCall(a)&&1===a.arguments.length&&e.isStringLiteralLike(a.arguments[0])?t=e.append(t,a.arguments[0]):e.isLiteralImportTypeNode(a)&&(t=e.append(t,a.argument.literal))}}(n),n.imports=t||e.emptyArray,n.moduleAugmentations=r||e.emptyArray,void(n.ambientModuleNames=a||e.emptyArray)}function d(i,s){if(e.isAnyImportOrReExport(i)){var c=e.getExternalModuleName(i);!(c&&e.isStringLiteral(c)&&c.text)||s&&e.isExternalModuleNameRelative(c.text)||(t=e.append(t,c))}else if(e.isModuleDeclaration(i)&&e.isAmbientModule(i)&&(s||e.hasModifier(i,2)||n.isDeclarationFile)){var l=e.getTextOfIdentifierOrLiteral(i.name);if(o||s&&!e.isExternalModuleNameRelative(l))(r||(r=[])).push(i.name);else if(!s){n.isDeclarationFile&&(a||(a=[])).push(l);var u=i.body;if(u)for(var p=0,m=u.statements;p<m.length;p++){d(m[p],!0)}}}}function p(n,t){for(var r=n,a=function(e){if(e.pos<=t&&(t<e.end||t===e.end&&1===e.kind))return e};;){var o=i&&e.hasJSDocNodes(r)&&e.forEach(r.jsDoc,a)||e.forEachChild(r,a);if(!o)return r;r=o}}}function ln(n,t,r,a){if(e.hasExtension(n)){if(!A.allowNonTsExtensions&&!e.forEach(Z,(function(t){return e.fileExtensionIs(H.getCanonicalFileName(n),t)})))return void(r&&r(e.Diagnostics.File_0_has_unsupported_extension_The_only_supported_extensions_are_1,n,\"'\"+Q.join(\"', '\")+\"'\"));var i=t(n);if(r)if(i)a&&H.getCanonicalFileName(n)===H.getCanonicalFileName(a.fileName)&&r(e.Diagnostics.A_file_cannot_have_a_reference_to_itself);else{var o=_n(n);o?r(e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,o,n):r(e.Diagnostics.File_0_not_found,n)}return i}var s=A.allowNonTsExtensions&&t(n);if(s)return s;if(!r||!A.allowNonTsExtensions){var c=e.forEach(Q,(function(e){return t(n+e)}));return r&&!c&&r(e.Diagnostics.File_0_not_found,n+\".ts\"),c}r(e.Diagnostics.File_0_not_found,n)}function un(e,n,t,r,a){ln(e,(function(e){return pn(e,Fe(e),n,t,a,r)}),(function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return P.add(Dn.apply(void 0,__spreadArrays([a,e],n)))}),a&&a.file)}function dn(n,t,r){P.add(Dn(r,e.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing,n,t))}function pn(n,t,r,a,i,o){if(fe){var s=bn(n);if(!s&&H.realpath&&A.preserveSymlinks&&e.isDeclarationFileName(n)&&e.stringContains(n,e.nodeModulesPathPart)){var c=H.realpath(n);c!==n&&(s=bn(c))}if(s){var l=e.isString(s)?pn(s,Fe(s),r,a,i,o):void 0;return l&&fn(l,t,void 0),l}}var p,m=n;if(pe.has(t)){var f=pe.get(t);if(f&&A.forceConsistentCasingInFileNames){var _=n,g=f.fileName;Fe(g)!==Fe(_)&&(_=_n(n)||n),e.getNormalizedAbsolutePathWithoutRoot(g,Y)!==e.getNormalizedAbsolutePathWithoutRoot(_,Y)&&dn(_,g,i)}return f&&B.get(f.path)&&0===F?(B.set(f.path,!1),A.noResolve||(xn(f,r),Ln(f)),A.noLib||An(f),G.set(f.path,!1),Nn(f)):f&&G.get(f.path)&&F<w&&(G.set(f.path,!1),Nn(f)),mn(f||void 0,i),f||void 0}if(i&&!fe){var y=gn(n);if(y){if(y.commandLine.options.outFile||y.commandLine.options.out)return;var v=yn(y,n);n=v,p=Fe(v)}}var h=H.getSourceFile(n,A.target,(function(t){return P.add(Dn(i,e.Diagnostics.Cannot_read_file_0_Colon_1,n,t))}),_e);if(o){var b=e.packageIdToString(o),E=le.get(b);if(E){var T=function(e,n,t,r,a,i){var o=Object.create(e);return o.fileName=t,o.path=r,o.resolvedPath=a,o.originalFileName=i,o.redirectInfo={redirectTarget:e,unredirected:n},B.set(r,F>0),Object.defineProperties(o,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(e){this.redirectInfo.redirectTarget.id=e}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(e){this.redirectInfo.redirectTarget.symbol=e}}}),o}(E,h,n,t,Fe(n),m);return de.add(E.path,n),fn(T,t,p),ue.set(t,o.name),d.push(T),T}h&&(le.set(b,h),ue.set(t,o.name))}if(fn(h,t,p),h){if(B.set(t,F>0),h.path=t,h.resolvedPath=Fe(n),h.originalFileName=m,H.useCaseSensitiveFileNames()){var S=t.toLowerCase(),x=me.get(S);x?dn(n,x.fileName,i):me.set(S,h)}z=z||h.hasNoDefaultLib&&!a,A.noResolve||(xn(h,r),Ln(h)),A.noLib||An(h),Nn(h),r?u.push(h):d.push(h)}return mn(h,i),h}function mn(n,t){t&&n&&(x||(x=e.createMultiMap())).add(n.path,{kind:t.kind,index:t.index,file:t.file.path})}function fn(e,n,t){t?(pe.set(t,e),pe.set(n,e||!1)):pe.set(n,e)}function _n(e){var n=gn(e);return n&&yn(n,e)}function gn(n){if(ae&&ae.length&&!e.fileExtensionIs(n,\".d.ts\")&&!e.fileExtensionIs(n,\".json\"))return vn(n)}function yn(n,t){var r=n.commandLine.options.outFile||n.commandLine.options.out;return r?e.changeExtension(r,\".d.ts\"):e.getOutputDeclarationFileName(t,n.commandLine,!H.useCaseSensitiveFileNames())}function vn(n){void 0===oe&&(oe=e.createMap(),hn((function(e,n){e&&Fe(A.configFilePath)!==n&&e.commandLine.fileNames.forEach((function(e){return oe.set(Fe(e),n)}))})));var t=oe.get(Fe(n));return t&&Sn(t)}function hn(e){return Tn(k,ae,(function(n,t,r){var a=Fe(y((r?r.commandLine.projectReferences:k)[t]));return e(n,a)}))}function bn(n){if(e.isDeclarationFileName(n))return void 0===se&&(se=e.createMap(),hn((function(n){if(n){var t=n.commandLine.options.outFile||n.commandLine.options.out;if(t){var r=e.changeExtension(t,\".d.ts\");se.set(Fe(r),!0)}else e.forEach(n.commandLine.fileNames,(function(t){if(!e.fileExtensionIs(t,\".d.ts\")&&!e.fileExtensionIs(t,\".json\")){var r=e.getOutputDeclarationFileName(t,n.commandLine,H.useCaseSensitiveFileNames());se.set(Fe(r),t)}}))}}))),se.get(Fe(n))}function En(e){return fe&&!!vn(e)}function Tn(n,t,r,a){var i;return function n(t,r,a,o,s){if(s){var c=s(t,a);if(c)return c}return e.forEach(r,(function(t,r){if(!e.contains(i,t)){var c=o(t,r,a);if(c)return c;if(t)return(i||(i=[])).push(t),n(t.commandLine.projectReferences,t.references,t,o,s)}}))}(n,t,void 0,r,a)}function Sn(e){if(ie)return ie.get(e)||void 0}function xn(n,t){e.forEach(n.referencedFiles,(function(a,i){un(r(a.fileName,n.originalFileName),t,!1,void 0,{kind:e.RefFileKind.ReferenceFile,index:i,file:n,pos:a.pos,end:a.end})}))}function Ln(n){var t=e.map(n.typeReferenceDirectives,(function(e){return e.fileName.toLocaleLowerCase()}));if(t)for(var r=K(t,n.originalFileName,vn(n.originalFileName)),a=0;a<t.length;a++){var i=n.typeReferenceDirectives[a],o=r[a],s=i.fileName.toLocaleLowerCase();e.setResolvedTypeReferenceDirective(n,s,o),Cn(s,o,{kind:e.RefFileKind.TypeReferenceDirective,index:a,file:n,pos:i.pos,end:i.end})}}function Cn(n,t,r){var a=R.get(n);if(!a||!a.primary){var i=!0;if(t){if(t.isExternalLibraryImport&&F++,t.primary)un(t.resolvedFileName,!1,!1,t.packageId,r);else if(a){if(t.resolvedFileName!==a.resolvedFileName)H.readFile(t.resolvedFileName)!==ze(a.resolvedFileName).text&&P.add(Dn(r,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,n,t.resolvedFileName,a.resolvedFileName));i=!1}else un(t.resolvedFileName,!1,!1,t.packageId,r);t.isExternalLibraryImport&&F--}else P.add(Dn(r,e.Diagnostics.Cannot_find_type_definition_file_for_0,n));i&&R.set(n,t)}}function An(n){e.forEach(n.libReferenceDirectives,(function(t){var r=t.fileName.toLocaleLowerCase(),a=e.libMap.get(r);if(a)an(e.combinePaths(J,a),!0,!0);else{var i=e.removeSuffix(e.removePrefix(r,\"lib.\"),\".d.ts\"),o=e.getSpellingSuggestion(i,e.libs,e.identity),s=o?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;P.add(e.createFileDiagnostic(n,t.pos,t.end-t.pos,s,r,o))}}))}function Dn(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];return n?e.createFileDiagnostic.apply(void 0,__spreadArrays([n.file,n.pos,n.end-n.pos,t],r)):e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r))}function kn(e){return H.getCanonicalFileName(e)}function Nn(n){if(cn(n),n.imports.length||n.moduleAugmentations.length){var t=h(n),r=Be(t,e.getNormalizedAbsolutePath(n.originalFileName,Y),n);e.Debug.assert(r.length===t.length);for(var a=0;a<t.length;a++){var i=r[a];if(e.setResolvedModule(n,t[a],i),i){var o=i.isExternalLibraryImport,s=!e.resolutionExtensionIsTSOrJson(i.extension),c=o&&s,l=i.resolvedFileName;o&&F++;var u=c&&F>w,d=l&&!v(A,i)&&!A.noResolve&&a<n.imports.length&&!u&&!(s&&!A.allowJs)&&(e.isInJSFile(n.imports[a])||!(4194304&n.imports[a].flags));if(u)G.set(n.path,!0);else if(d){var p=Fe(l),m=e.skipTrivia(n.text,n.imports[a].pos);pn(l,p,!1,!1,{kind:e.RefFileKind.Import,index:a,file:n,pos:m,end:n.imports[a].end},i.packageId)}o&&F--}}}else n.resolvedModules=void 0}function In(n,t){for(var r,a=!0,i=H.getCanonicalFileName(e.getNormalizedAbsolutePath(t,Y)),o=0,s=n;o<s.length;o++){var c=s[o];if(!c.isDeclarationFile)0!==H.getCanonicalFileName(e.getNormalizedAbsolutePath(c.fileName,Y)).indexOf(i)&&(r||(r=e.arrayToSet(C,Fe)),On(c,r,e.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files,c.fileName,t),a=!1)}return a}function Mn(n){ie||(ie=e.createMap());var t,r,a=y(n),i=Fe(a),o=ie.get(i);if(void 0!==o)return o||void 0;if(H.getParsedCommandLine){if(!(t=H.getParsedCommandLine(a)))return fn(void 0,i,void 0),void ie.set(i,!1);r=e.Debug.assertDefined(t.options.configFile),e.Debug.assert(!r.path||r.path===i),fn(r,i,void 0)}else{var s=e.getNormalizedAbsolutePath(e.getDirectoryPath(a),H.getCurrentDirectory());if(fn(r=H.getSourceFile(a,100),i,void 0),void 0===r)return void ie.set(i,!1);t=e.parseJsonSourceFileConfigFileContent(r,W,s,void 0,a)}r.path=i,r.resolvedPath=i,r.originalFileName=a;var c={commandLine:t,sourceFile:r};return ie.set(i,c),t.projectReferences&&(c.references=t.projectReferences.map(Mn)),c}function On(n,t,r){for(var a,i,o=[],s=3;s<arguments.length;s++)o[s-3]=arguments[s];var c=x&&x.get(n.path),l=e.forEach(c,(function(e){return t.has(e.file)?e:void 0}))||e.elementAt(c,0);if(l){var u=e.Debug.assertDefined(qe(l.file)),d=l.kind,p=l.index,m=void 0,f=void 0;switch(d){case e.RefFileKind.Import:m=e.skipTrivia(u.text,u.imports[p].pos),f=u.imports[p].end;break;case e.RefFileKind.ReferenceFile:m=(a=u.referencedFiles[p]).pos,f=a.end;break;case e.RefFileKind.TypeReferenceDirective:m=(i=u.typeReferenceDirectives[p]).pos,f=i.end;break;default:return e.Debug.assertNever(d)}X.add(e.createFileDiagnostic.apply(void 0,__spreadArrays([u,m,f-m,r],o)))}else X.add(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([r],o)))}function Rn(n,t,r,a,i,o){for(var s=!0,c=0,l=wn();c<l.length;c++){var u=l[c];if(e.isObjectLiteralExpression(u.initializer))for(var d=0,p=e.getPropertyAssignment(u.initializer,n);d<p.length;d++){var m=p[d].initializer;e.isArrayLiteralExpression(m)&&m.elements.length>t&&(X.add(e.createDiagnosticForNodeInSourceFile(A.configFile,m.elements[t],r,a,i,o)),s=!1)}}s&&X.add(e.createCompilerDiagnostic(r,a,i,o))}function Pn(n,t,r,a){for(var i=!0,o=0,s=wn();o<s.length;o++){var c=s[o];e.isObjectLiteralExpression(c.initializer)&&jn(c.initializer,n,t,void 0,r,a)&&(i=!1)}i&&X.add(e.createCompilerDiagnostic(r,a))}function wn(){return function(n){var t=Un();if(t)return e.getPropertyAssignment(t,n)}(\"paths\")||e.emptyArray}function Fn(e,n,t,r){Vn(!0,n,t,e,n,t,r)}function Gn(e,n,t){Vn(!1,e,void 0,n,t)}function Bn(n,t,r,a,i){var o=e.firstDefined(e.getTsConfigPropArray(n||A.configFile,\"references\"),(function(n){return e.isArrayLiteralExpression(n.initializer)?n.initializer:void 0}));o&&o.elements.length>t?X.add(e.createDiagnosticForNodeInSourceFile(n||A.configFile,o.elements[t],r,a,i)):X.add(e.createCompilerDiagnostic(r,a,i))}function Vn(n,t,r,a,i,o,s){var c=Un();(!c||!jn(c,n,t,r,a,i,o,s))&&X.add(e.createCompilerDiagnostic(a,i,o,s))}function Un(){if(void 0===V){V=null;var n=e.getTsConfigObjectLiteralExpression(A.configFile);if(n)for(var t=0,r=e.getPropertyAssignment(n,\"compilerOptions\");t<r.length;t++){var a=r[t];if(e.isObjectLiteralExpression(a.initializer)){V=a.initializer;break}}}return V}function jn(n,t,r,a,i,o,s,c){for(var l=e.getPropertyAssignment(n,r,a),u=0,d=l;u<d.length;u++){var p=d[u];X.add(e.createDiagnosticForNodeInSourceFile(A.configFile,t?p.name:p.initializer,i,o,s,c))}return!!l.length}function Kn(e,n){$.set(Fe(e),!0),X.add(n)}function Hn(n,t){return 0===e.comparePaths(n,t,Y,!H.useCaseSensitiveFileNames())}function Wn(){return H.getSymlinks?H.getSymlinks():m||(m=e.discoverProbableSymlinks(p,kn,H.getCurrentDirectory()))}},e.parseConfigHostFromCompilerHostLike=_,e.createPrependNodes=g,e.resolveProjectReferencePath=y,e.getResolutionDiagnostic=v}(ts||(ts={})),function(e){e.getFileEmitOutput=function(e,n,t,r,a,i){var o=[],s=e.emit(n,(function(e,n,t){o.push({name:e,writeByteOrderMark:t,text:n})}),r,t,a,i);return{outputFiles:o,emitSkipped:s.emitSkipped,exportedModulesFromDeclarationEmit:s.exportedModulesFromDeclarationEmit}},e.cloneMapOrUndefined=function(n){return n?e.cloneMap(n):void 0}}(ts||(ts={})),function(e){!function(n){function t(n){if(n.declarations&&n.declarations[0]){var t=e.getSourceFileOfNode(n.declarations[0]);return t&&t.resolvedPath}}function r(e,n){var r=e.getSymbolAtLocation(n);return r&&t(r)}function a(n,t,r,a){return e.toPath(n.getProjectReferenceRedirect(t)||t,r,a)}function i(n,t,i){var o;if(t.imports&&t.imports.length>0)for(var s=n.getTypeChecker(),c=0,l=t.imports;c<l.length;c++){var u=r(s,l[c]);u&&S(u)}var d=e.getDirectoryPath(t.path);if(t.referencedFiles&&t.referencedFiles.length>0)for(var p=0,m=t.referencedFiles;p<m.length;p++){var f=m[p];S(a(n,f.fileName,d,i))}if(t.resolvedTypeReferenceDirectiveNames&&t.resolvedTypeReferenceDirectiveNames.forEach((function(e){if(e){var t=e.resolvedFileName;S(a(n,t,d,i))}})),t.moduleAugmentations.length){s=n.getTypeChecker();for(var _=0,g=t.moduleAugmentations;_<g.length;_++){var y=g[_];if(e.isStringLiteral(y)){var v=s.getSymbolAtLocation(y);v&&T(v)}}}for(var h=0,b=n.getTypeChecker().getAmbientModules();h<b.length;h++){var E=b[h];E.declarations.length>1&&T(E)}return o;function T(n){for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r],o=e.getSourceFileOfNode(i);o&&o!==t&&S(o.resolvedPath)}}function S(n){o||(o=e.createMap()),o.set(n,!0)}}function o(e,n){return n&&!n.referencedMap==!e}function s(e,n){n.forEach((function(n,t){e.fileInfos.get(t).signature=n,e.hasCalledUpdateShapeSignature.set(t,!0)}))}function c(n,r,a,i,o,s,c){if(e.Debug.assert(!!a),e.Debug.assert(!c||!!n.exportedModulesMap,\"Compute visible to outside map only if visibleToOutsideReferencedMap present in the state\"),n.hasCalledUpdateShapeSignature.has(a.path)||i.has(a.path))return!1;var l=n.fileInfos.get(a.path);if(!l)return e.Debug.fail();var u,d=l.signature;if(a.isDeclarationFile){if(u=a.version,c&&u!==d){var p=n.referencedMap?n.referencedMap.get(a.path):void 0;c.set(a.path,p||!1)}}else{var m=e.getFileEmitOutput(r,a,!0,o,void 0,!0),f=m.outputFiles&&r.getCompilerOptions().declarationMap?m.outputFiles.length>1?m.outputFiles[1]:void 0:m.outputFiles.length>0?m.outputFiles[0]:void 0;f?(e.Debug.assert(e.fileExtensionIs(f.name,\".d.ts\"),\"File extension for signature expected to be dts\",(function(){return\"Found: \"+e.getAnyExtensionFromPath(f.name)+\" for \"+f.name+\":: All output files: \"+JSON.stringify(m.outputFiles.map((function(e){return e.name})))})),u=s(f.text),c&&u!==d&&function(n,r,a){if(!r)return void a.set(n.path,!1);var i;r.forEach((function(n){var r;(r=t(n))&&(i||(i=e.createMap()),i.set(r,!0))})),a.set(n.path,i||!1)}(a,m.exportedModulesFromDeclarationEmit,c)):u=d}return i.set(a.path,u),!d||u!==d}function l(n,t){if(!n.allFileNames){var r=t.getSourceFiles();n.allFileNames=r===e.emptyArray?e.emptyArray:r.map((function(e){return e.fileName}))}return n.allFileNames}function u(n,t){return e.arrayFrom(e.mapDefinedIterator(n.referencedMap.entries(),(function(e){var n=e[0];return e[1].has(t)?n:void 0})))}function d(n){return function(n){return e.some(n.moduleAugmentations,(function(n){return e.isGlobalScopeAugmentation(n.parent)}))}(n)||!e.isExternalModule(n)&&!function(n){for(var t=0,r=n.statements;t<r.length;t++){var a=r[t];if(!e.isModuleWithStringLiteralName(a))return!1}return!0}(n)}function p(n,t,r){if(n.allFilesExcludingDefaultLibraryFile)return n.allFilesExcludingDefaultLibraryFile;var a;c(r);for(var i=0,o=t.getSourceFiles();i<o.length;i++){var s=o[i];s!==r&&c(s)}return n.allFilesExcludingDefaultLibraryFile=a||e.emptyArray,n.allFilesExcludingDefaultLibraryFile;function c(e){t.isSourceFileDefaultLibrary(e)||(a||(a=[])).push(e)}}function m(e,n,t){var r=n.getCompilerOptions();return r&&(r.out||r.outFile)?[t]:p(e,n,t)}function f(n,t,r,a,i,o,s){if(d(r))return p(n,t,r);var l=t.getCompilerOptions();if(l&&(l.isolatedModules||l.out||l.outFile))return[r];var m=e.createMap();m.set(r.path,r);for(var f=u(n,r.resolvedPath);f.length>0;){var _=f.pop();if(!m.has(_)){var g=t.getSourceFileByPath(_);m.set(_,g),g&&c(n,t,g,a,i,o,s)&&f.push.apply(f,u(n,g.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(m.values(),(function(e){return e})))}n.canReuseOldState=o,n.create=function(n,t,r){for(var a=e.createMap(),s=n.getCompilerOptions().module!==e.ModuleKind.None?e.createMap():void 0,c=s?e.createMap():void 0,l=e.createMap(),u=o(s,r),d=0,p=n.getSourceFiles();d<p.length;d++){var m=p[d],f=e.Debug.assertDefined(m.version,\"Program intended to be used with Builder should have source files with versions set\"),_=u?r.fileInfos.get(m.path):void 0;if(s){var g=i(n,m,t);if(g&&s.set(m.path,g),u){var y=r.exportedModulesMap.get(m.path);y&&c.set(m.path,y)}}a.set(m.path,{version:f,signature:_&&_.signature})}return{fileInfos:a,referencedMap:s,exportedModulesMap:c,hasCalledUpdateShapeSignature:l}},n.releaseCache=function(e){e.allFilesExcludingDefaultLibraryFile=void 0,e.allFileNames=void 0},n.clone=function(n){var t=e.createMap();return n.fileInfos.forEach((function(e,n){t.set(n,__assign({},e))})),{fileInfos:t,referencedMap:e.cloneMapOrUndefined(n.referencedMap),exportedModulesMap:e.cloneMapOrUndefined(n.exportedModulesMap),hasCalledUpdateShapeSignature:e.cloneMap(n.hasCalledUpdateShapeSignature)}},n.getFilesAffectedBy=function(n,t,r,a,i,o,l){var u=o||e.createMap(),d=t.getSourceFileByPath(r);if(!d)return e.emptyArray;if(!c(n,t,d,u,a,i,l))return[d];var p=(n.referencedMap?f:m)(n,t,d,u,a,i,l);return o||s(n,u),p},n.updateSignaturesFromCache=s,n.updateShapeSignature=c,n.updateExportedFilesMapFromCache=function(n,t){t&&(e.Debug.assert(!!n.exportedModulesMap),t.forEach((function(e,t){e?n.exportedModulesMap.set(t,e):n.exportedModulesMap.delete(t)})))},n.getAllDependencies=function(n,t,r){var a=t.getCompilerOptions();if(a.outFile||a.out)return l(n,t);if(!n.referencedMap||d(r))return l(n,t);for(var i=e.createMap(),o=[r.path];o.length;){var s=o.pop();if(!i.has(s)){i.set(s,!0);var c=n.referencedMap.get(s);if(c)for(var u=c.keys(),p=u.next();!p.done;p=u.next())o.push(p.value)}}return e.arrayFrom(e.mapDefinedIterator(i.keys(),(function(e){var n=t.getSourceFileByPath(e);return n?n.fileName:e})))},n.getReferencedByPaths=u}(e.BuilderState||(e.BuilderState={}))}(ts||(ts={})),function(e){var n;function t(n,t,a){var i=e.BuilderState.create(n,t,a);i.program=n;var o=n.getCompilerOptions();i.compilerOptions=o,o.outFile||o.out||(i.semanticDiagnosticsPerFile=e.createMap()),i.changedFilesSet=e.createMap();var s=e.BuilderState.canReuseOldState(i.referencedMap,a),c=s?a.compilerOptions:void 0,l=s&&a.semanticDiagnosticsPerFile&&!!i.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(o,c);if(s){if(!a.currentChangedFilePath){var u=a.currentAffectedFilesSignatures;e.Debug.assert(!(a.affectedFiles||u&&u.size),\"Cannot reuse if only few affected files of currentChangedFile were iterated\")}var d=a.changedFilesSet;l&&e.Debug.assert(!d||!e.forEachKey(d,(function(e){return a.semanticDiagnosticsPerFile.has(e)})),\"Semantic diagnostics shouldnt be available for changed files\"),d&&e.copyEntries(d,i.changedFilesSet),o.outFile||o.out||!a.affectedFilesPendingEmit||(i.affectedFilesPendingEmit=a.affectedFilesPendingEmit.slice(),i.affectedFilesPendingEmitKind=e.cloneMapOrUndefined(a.affectedFilesPendingEmitKind),i.affectedFilesPendingEmitIndex=a.affectedFilesPendingEmitIndex)}var p=i.referencedMap,m=s?a.referencedMap:void 0,f=l&&!o.skipLibCheck==!c.skipLibCheck,_=f&&!o.skipDefaultLibCheck==!c.skipDefaultLibCheck;return i.fileInfos.forEach((function(o,c){var u,d,g,y;if(!s||!(u=a.fileInfos.get(c))||u.version!==o.version||(g=d=p&&p.get(c),y=m&&m.get(c),g!==y&&(void 0===g||void 0===y||g.size!==y.size||e.forEachKey(g,(function(e){return!y.has(e)}))))||d&&e.forEachKey(d,(function(e){return!i.fileInfos.has(e)&&a.fileInfos.has(e)})))i.changedFilesSet.set(c,!0);else if(l){var v=n.getSourceFileByPath(c);if(v.isDeclarationFile&&!f)return;if(v.hasNoDefaultLib&&!_)return;var h=a.semanticDiagnosticsPerFile.get(c);h&&(i.semanticDiagnosticsPerFile.set(c,a.hasReusableDiagnostic?function(n,t,a){if(!n.length)return e.emptyArray;var i=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(t.getCompilerOptions()),t.getCurrentDirectory()));return n.map((function(n){var a=r(n,t,o);a.reportsUnnecessary=n.reportsUnnecessary,a.source=n.source;var i=n.relatedInformation;return a.relatedInformation=i?i.length?i.map((function(e){return r(e,t,o)})):e.emptyArray:void 0,a}));function o(n){return e.toPath(n,i,a)}}(h,n,t):h),i.semanticDiagnosticsFromOldState||(i.semanticDiagnosticsFromOldState=e.createMap()),i.semanticDiagnosticsFromOldState.set(c,!0))}})),c&&e.compilerOptionsAffectEmit(o,c)&&(n.getSourceFiles().forEach((function(e){return v(i,e.path,1)})),e.Debug.assert(void 0===i.seenAffectedFiles),i.seenAffectedFiles=e.createMap()),i.emittedBuildInfo=!i.changedFilesSet.size&&!i.affectedFilesPendingEmit,i}function r(e,n,t){var r=e.file;return __assign(__assign({},e),{file:r?n.getSourceFileByPath(t(r)):void 0})}function a(n,t){e.Debug.assert(!t||!n.affectedFiles||n.affectedFiles[n.affectedFilesIndex-1]!==t||!n.semanticDiagnosticsPerFile.has(t.path))}function i(n,t,r){for(;;){var a=n.affectedFiles;if(a){for(var i=n.seenAffectedFiles,s=n.affectedFilesIndex;s<a.length;){var c=a[s];if(!i.has(c.path))return n.affectedFilesIndex=s,o(n,c,t,r),c;s++}n.changedFilesSet.delete(n.currentChangedFilePath),n.currentChangedFilePath=void 0,e.BuilderState.updateSignaturesFromCache(n,n.currentAffectedFilesSignatures),n.currentAffectedFilesSignatures.clear(),e.BuilderState.updateExportedFilesMapFromCache(n,n.currentAffectedFilesExportedModulesMap),n.affectedFiles=void 0}var l=n.changedFilesSet.keys().next();if(l.done)return;var u=e.Debug.assertDefined(n.program),d=u.getCompilerOptions();if(d.outFile||d.out)return e.Debug.assert(!n.semanticDiagnosticsPerFile),u;n.currentAffectedFilesSignatures=n.currentAffectedFilesSignatures||e.createMap(),n.exportedModulesMap&&(n.currentAffectedFilesExportedModulesMap=n.currentAffectedFilesExportedModulesMap||e.createMap()),n.affectedFiles=e.BuilderState.getFilesAffectedBy(n,u,l.value,t,r,n.currentAffectedFilesSignatures,n.currentAffectedFilesExportedModulesMap),n.currentChangedFilePath=l.value,n.affectedFilesIndex=0,n.seenAffectedFiles=n.seenAffectedFiles||e.createMap()}}function o(n,t,r,a){if(s(n,t.path),n.allFilesExcludingDefaultLibraryFile!==n.affectedFiles)!function(n,t,r){if(!n.exportedModulesMap||!n.changedFilesSet.has(t.path))return;if(!c(n,t.path))return;if(n.compilerOptions.isolatedModules){var a=e.createMap();a.set(t.path,!0);for(var i=e.BuilderState.getReferencedByPaths(n,t.resolvedPath);i.length>0;){var o=i.pop();if(!a.has(o))if(a.set(o,!0),r(n,o)&&c(n,o)){var s=e.Debug.assertDefined(n.program).getSourceFileByPath(o);i.push.apply(i,e.BuilderState.getReferencedByPaths(n,s.resolvedPath))}}}e.Debug.assert(!!n.currentAffectedFilesExportedModulesMap);var u=e.createMap();if(e.forEachEntry(n.currentAffectedFilesExportedModulesMap,(function(e,a){return e&&e.has(t.path)&&l(n,a,u,r)})))return;e.forEachEntry(n.exportedModulesMap,(function(e,a){return!n.currentAffectedFilesExportedModulesMap.has(a)&&e.has(t.path)&&l(n,a,u,r)}))}(n,t,(function(n,t){return function(n,t,r,a){if(s(n,t),!n.changedFilesSet.has(t)){var i=e.Debug.assertDefined(n.program),o=i.getSourceFileByPath(t);o&&(e.BuilderState.updateShapeSignature(n,i,o,e.Debug.assertDefined(n.currentAffectedFilesSignatures),r,a,n.currentAffectedFilesExportedModulesMap),e.getEmitDeclarations(n.compilerOptions)&&v(n,t,0))}return!1}(n,t,r,a)}));else if(!n.cleanedDiagnosticsOfLibFiles){n.cleanedDiagnosticsOfLibFiles=!0;var i=e.Debug.assertDefined(n.program),o=i.getCompilerOptions();e.forEach(i.getSourceFiles(),(function(t){return i.isSourceFileDefaultLibrary(t)&&!e.skipTypeChecking(t,o,i)&&s(n,t.path)}))}}function s(e,n){return!e.semanticDiagnosticsFromOldState||(e.semanticDiagnosticsFromOldState.delete(n),e.semanticDiagnosticsPerFile.delete(n),!e.semanticDiagnosticsFromOldState.size)}function c(n,t){return e.Debug.assertDefined(n.currentAffectedFilesSignatures).get(t)!==e.Debug.assertDefined(n.fileInfos.get(t)).signature}function l(n,t,r,a){return e.forEachEntry(n.referencedMap,(function(i,o){return i.has(t)&&function n(t,r,a,i){if(!e.addToSeen(a,r))return!1;if(i(t,r))return!0;if(e.Debug.assert(!!t.currentAffectedFilesExportedModulesMap),e.forEachEntry(t.currentAffectedFilesExportedModulesMap,(function(e,o){return e&&e.has(r)&&n(t,o,a,i)})))return!0;if(e.forEachEntry(t.exportedModulesMap,(function(e,o){return!t.currentAffectedFilesExportedModulesMap.has(o)&&e.has(r)&&n(t,o,a,i)})))return!0;return!!e.forEachEntry(t.referencedMap,(function(e,n){return e.has(r)&&!a.has(n)&&i(t,n)}))}(n,o,r,a)}))}function u(n,t,r,a,i){i?n.emittedBuildInfo=!0:t===n.program?(n.changedFilesSet.clear(),n.programEmitComplete=!0):(n.seenAffectedFiles.set(t.path,!0),void 0!==r&&(n.seenEmittedFiles||(n.seenEmittedFiles=e.createMap())).set(t.path,r),a?n.affectedFilesPendingEmitIndex++:n.affectedFilesIndex++)}function d(e,n,t){return u(e,t),{result:n,affected:t}}function p(e,n,t,r,a,i){return u(e,t,r,a,i),{result:n,affected:t}}function m(n,t,r){var a=t.path;if(n.semanticDiagnosticsPerFile){var i=n.semanticDiagnosticsPerFile.get(a);if(i)return i}var o=e.Debug.assertDefined(n.program).getSemanticDiagnostics(t,r);return n.semanticDiagnosticsPerFile&&n.semanticDiagnosticsPerFile.set(a,o),o}function f(n,t){var r={},a=e.getOptionNameMap().optionNameMap;for(var i in n)e.hasProperty(n,i)&&(r[i]=_(a.get(i.toLowerCase()),n[i],t));return r.configFilePath&&(r.configFilePath=t(r.configFilePath)),r}function _(e,n,t){if(e)if(\"list\"===e.type){var r=n;if(e.element.isFilePath&&r.length)return r.map(t)}else if(e.isFilePath)return t(n);return n}function g(n,t){return e.Debug.assert(!!n.length),n.map((function(n){var r=y(n,t);r.reportsUnnecessary=n.reportsUnnecessary,r.source=n.source;var a=n.relatedInformation;return r.relatedInformation=a?a.length?a.map((function(e){return y(e,t)})):e.emptyArray:void 0,r}))}function y(e,n){var t=e.file;return __assign(__assign({},e),{file:t?n(t.path):void 0})}function v(n,t,r){n.affectedFilesPendingEmit||(n.affectedFilesPendingEmit=[]),n.affectedFilesPendingEmitKind||(n.affectedFilesPendingEmitKind=e.createMap());var a=n.affectedFilesPendingEmitKind.get(t);n.affectedFilesPendingEmit.push(t),n.affectedFilesPendingEmitKind.set(t,a||r),void 0===n.affectedFilesPendingEmitIndex&&(n.affectedFilesPendingEmitIndex=0)}function h(n,t){if(n){var r=e.createMap();for(var a in n)e.hasProperty(n,a)&&r.set(t(a),e.arrayToSet(n[a],t));return r}}function b(n,t){return{getState:e.notImplemented,backupState:e.noop,restoreState:e.noop,getProgram:r,getProgramOrUndefined:function(){return n.program},releaseProgram:function(){return n.program=void 0},getCompilerOptions:function(){return n.compilerOptions},getSourceFile:function(e){return r().getSourceFile(e)},getSourceFiles:function(){return r().getSourceFiles()},getOptionsDiagnostics:function(e){return r().getOptionsDiagnostics(e)},getGlobalDiagnostics:function(e){return r().getGlobalDiagnostics(e)},getConfigFileParsingDiagnostics:function(){return t},getSyntacticDiagnostics:function(e,n){return r().getSyntacticDiagnostics(e,n)},getDeclarationDiagnostics:function(e,n){return r().getDeclarationDiagnostics(e,n)},getSemanticDiagnostics:function(e,n){return r().getSemanticDiagnostics(e,n)},emit:function(e,n,t,a,i){return r().emit(e,n,t,a,i)},getAllDependencies:e.notImplemented,getCurrentDirectory:function(){return r().getCurrentDirectory()}};function r(){return e.Debug.assertDefined(n.program)}}!function(e){e[e.DtsOnly=0]=\"DtsOnly\",e[e.Full=1]=\"Full\"}(e.BuilderFileEmit||(e.BuilderFileEmit={})),function(e){e[e.SemanticDiagnosticsBuilderProgram=0]=\"SemanticDiagnosticsBuilderProgram\",e[e.EmitAndSemanticDiagnosticsBuilderProgram=1]=\"EmitAndSemanticDiagnosticsBuilderProgram\"}(n=e.BuilderProgramKind||(e.BuilderProgramKind={})),e.getBuilderCreationParameters=function(n,t,r,a,i,o){var s,c,l;return void 0===n?(e.Debug.assert(void 0===t),s=r,l=a,e.Debug.assert(!!l),c=l.getProgram()):e.isArray(n)?(l=a,c=e.createProgram({rootNames:n,options:t,host:r,oldProgram:l&&l.getProgramOrUndefined(),configFileParsingDiagnostics:i,projectReferences:o}),s=r):(c=n,s=t,l=r,i=a),{host:s,newProgram:c,oldProgram:l,configFileParsingDiagnostics:i||e.emptyArray}},e.createBuilderProgram=function(r,o){var s=o.newProgram,c=o.host,l=o.oldProgram,_=o.configFileParsingDiagnostics,y=l&&l.getState();if(y&&s===y.program&&_===s.getConfigFileParsingDiagnostics())return s=void 0,y=void 0,l;var h,E=e.createGetCanonicalFileName(c.useCaseSensitiveFileNames()),T=c.createHash||e.generateDjb2Hash,S=t(s,E,y);s.getProgramBuildInfo=function(){return function(n,t){if(!n.compilerOptions.outFile&&!n.compilerOptions.out){var r=e.Debug.assertDefined(n.program).getCurrentDirectory(),a=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(n.compilerOptions),r)),i={};n.fileInfos.forEach((function(e,t){var r=n.currentAffectedFilesSignatures&&n.currentAffectedFilesSignatures.get(t);i[u(t)]=void 0===r?e:{version:e.version,signature:r}}));var o={fileInfos:i,options:f(n.compilerOptions,(function(n){return u(e.getNormalizedAbsolutePath(n,r))}))};if(n.referencedMap){var s={};n.referencedMap.forEach((function(n,t){s[u(t)]=e.arrayFrom(n.keys(),u)})),o.referencedMap=s}if(n.exportedModulesMap){var c={};n.exportedModulesMap.forEach((function(t,r){var a=n.currentAffectedFilesExportedModulesMap&&n.currentAffectedFilesExportedModulesMap.get(r);void 0===a?c[u(r)]=e.arrayFrom(t.keys(),u):a&&(c[u(r)]=e.arrayFrom(a.keys(),u))})),o.exportedModulesMap=c}if(n.semanticDiagnosticsPerFile){var l=[];n.semanticDiagnosticsPerFile.forEach((function(e,t){return l.push(e.length?[u(t),n.hasReusableDiagnostic?e:g(e,u)]:u(t))})),o.semanticDiagnosticsPerFile=l}return o}function u(n){return e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(a,n,t))}}(S,E)},s=void 0,l=void 0,y=void 0;var x=b(S,_);return x.getState=function(){return S},x.backupState=function(){e.Debug.assert(void 0===h),h=function(n){var t=e.BuilderState.clone(n);return t.semanticDiagnosticsPerFile=e.cloneMapOrUndefined(n.semanticDiagnosticsPerFile),t.changedFilesSet=e.cloneMap(n.changedFilesSet),t.affectedFiles=n.affectedFiles,t.affectedFilesIndex=n.affectedFilesIndex,t.currentChangedFilePath=n.currentChangedFilePath,t.currentAffectedFilesSignatures=e.cloneMapOrUndefined(n.currentAffectedFilesSignatures),t.currentAffectedFilesExportedModulesMap=e.cloneMapOrUndefined(n.currentAffectedFilesExportedModulesMap),t.seenAffectedFiles=e.cloneMapOrUndefined(n.seenAffectedFiles),t.cleanedDiagnosticsOfLibFiles=n.cleanedDiagnosticsOfLibFiles,t.semanticDiagnosticsFromOldState=e.cloneMapOrUndefined(n.semanticDiagnosticsFromOldState),t.program=n.program,t.compilerOptions=n.compilerOptions,t.affectedFilesPendingEmit=n.affectedFilesPendingEmit&&n.affectedFilesPendingEmit.slice(),t.affectedFilesPendingEmitKind=e.cloneMapOrUndefined(n.affectedFilesPendingEmitKind),t.affectedFilesPendingEmitIndex=n.affectedFilesPendingEmitIndex,t.seenEmittedFiles=e.cloneMapOrUndefined(n.seenEmittedFiles),t.programEmitComplete=n.programEmitComplete,t}(S)},x.restoreState=function(){S=e.Debug.assertDefined(h),h=void 0},x.getAllDependencies=function(n){return e.BuilderState.getAllDependencies(S,e.Debug.assertDefined(S.program),n)},x.getSemanticDiagnostics=function(n,t){a(S,n);var r,i=e.Debug.assertDefined(S.program).getCompilerOptions();if(i.outFile||i.out)return e.Debug.assert(!S.semanticDiagnosticsPerFile),e.Debug.assertDefined(S.program).getSemanticDiagnostics(n,t);if(n)return m(S,n,t);for(;C(t););for(var o=0,s=e.Debug.assertDefined(S.program).getSourceFiles();o<s.length;o++){var c=s[o];r=e.addRange(r,m(S,c,t))}return r||e.emptyArray},x.emit=function(t,i,o,s,l){if(r===n.EmitAndSemanticDiagnosticsBuilderProgram&&(a(S,t),!t)){for(var u=[],d=!1,p=void 0,m=[],f=void 0;f=L(i,o,s,l);)d=d||f.result.emitSkipped,p=e.addRange(p,f.result.diagnostics),m=e.addRange(m,f.result.emittedFiles),u=e.addRange(u,f.result.sourceMaps);return{emitSkipped:d,diagnostics:p||e.emptyArray,emittedFiles:m,sourceMaps:u}}return e.Debug.assertDefined(S.program).emit(t,i||e.maybeBind(c,c.writeFile),o,s,l)},x.releaseProgram=function(){!function(n){e.BuilderState.releaseCache(n),n.program=void 0}(S),h=void 0},r===n.SemanticDiagnosticsBuilderProgram?x.getSemanticDiagnosticsOfNextAffectedFile=C:r===n.EmitAndSemanticDiagnosticsBuilderProgram?(x.getSemanticDiagnosticsOfNextAffectedFile=C,x.emitNextAffectedFile=L):e.notImplemented(),x;function L(n,t,r,a){var o=i(S,t,T),s=1,l=!1;if(!o)if(S.compilerOptions.out||S.compilerOptions.outFile){var u=e.Debug.assertDefined(S.program);if(S.programEmitComplete||!e.some(u.getProjectReferences(),(function(e){return!!e.prepend})))return void(S.programEmitComplete=!0);o=u}else{var d=function(n){var t=n.affectedFilesPendingEmit;if(t){for(var r=n.seenEmittedFiles||(n.seenEmittedFiles=e.createMap()),a=n.affectedFilesPendingEmitIndex;a<t.length;a++){var i=e.Debug.assertDefined(n.program).getSourceFileByPath(t[a]);if(i){var o=r.get(i.path),s=e.Debug.assertDefined(e.Debug.assertDefined(n.affectedFilesPendingEmitKind).get(i.path));if(void 0===o||o<s)return n.affectedFilesPendingEmitIndex=a,{affectedFile:i,emitKind:s}}}n.affectedFilesPendingEmit=void 0,n.affectedFilesPendingEmitKind=void 0,n.affectedFilesPendingEmitIndex=void 0}}(S);if(!d){if(S.emittedBuildInfo)return;var m=e.Debug.assertDefined(S.program);return p(S,m.emitBuildInfo(n||e.maybeBind(c,c.writeFile),t),m,1,!1,!0)}o=d.affectedFile,s=d.emitKind,l=!0}return p(S,e.Debug.assertDefined(S.program).emit(o===S.program?void 0:o,n||e.maybeBind(c,c.writeFile),t,r||0===s,a),o,s,l)}function C(e,t){for(;;){var a=i(S,e,T);if(!a)return;if(a===S.program)return d(S,S.program.getSemanticDiagnostics(void 0,e),a);if(r===n.EmitAndSemanticDiagnosticsBuilderProgram&&v(S,a.path,1),!t||!t(a))return d(S,m(S,a,e),a);u(S,a)}}},e.createBuildProgramUsingProgramBuildInfo=function(n,t,r){var a=e.getDirectoryPath(e.getNormalizedAbsolutePath(t,r.getCurrentDirectory())),i=e.createGetCanonicalFileName(r.useCaseSensitiveFileNames()),o=e.createMap();for(var s in n.fileInfos)e.hasProperty(n.fileInfos,s)&&o.set(l(s),n.fileInfos[s]);var c={fileInfos:o,compilerOptions:e.convertToOptionsWithAbsolutePaths(n.options,(function(n){return e.getNormalizedAbsolutePath(n,a)})),referencedMap:h(n.referencedMap,l),exportedModulesMap:h(n.exportedModulesMap,l),semanticDiagnosticsPerFile:n.semanticDiagnosticsPerFile&&e.arrayToMap(n.semanticDiagnosticsPerFile,(function(n){return l(e.isString(n)?n:n[0])}),(function(n){return e.isString(n)?e.emptyArray:n[1]})),hasReusableDiagnostic:!0};return{getState:function(){return c},backupState:e.noop,restoreState:e.noop,getProgram:e.notImplemented,getProgramOrUndefined:e.returnUndefined,releaseProgram:e.noop,getCompilerOptions:function(){return c.compilerOptions},getSourceFile:e.notImplemented,getSourceFiles:e.notImplemented,getOptionsDiagnostics:e.notImplemented,getGlobalDiagnostics:e.notImplemented,getConfigFileParsingDiagnostics:e.notImplemented,getSyntacticDiagnostics:e.notImplemented,getDeclarationDiagnostics:e.notImplemented,getSemanticDiagnostics:e.notImplemented,emit:e.notImplemented,getAllDependencies:e.notImplemented,getCurrentDirectory:e.notImplemented,emitNextAffectedFile:e.notImplemented,getSemanticDiagnosticsOfNextAffectedFile:e.notImplemented};function l(n){return e.toPath(n,a,i)}},e.createRedirectedBuilderProgram=b}(ts||(ts={})),function(e){e.createSemanticDiagnosticsBuilderProgram=function(n,t,r,a,i,o){return e.createBuilderProgram(e.BuilderProgramKind.SemanticDiagnosticsBuilderProgram,e.getBuilderCreationParameters(n,t,r,a,i,o))},e.createEmitAndSemanticDiagnosticsBuilderProgram=function(n,t,r,a,i,o){return e.createBuilderProgram(e.BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram,e.getBuilderCreationParameters(n,t,r,a,i,o))},e.createAbstractBuilder=function(n,t,r,a,i,o){var s=e.getBuilderCreationParameters(n,t,r,a,i,o),c=s.newProgram,l=s.configFileParsingDiagnostics;return e.createRedirectedBuilderProgram({program:c,compilerOptions:c.getCompilerOptions()},l)}}(ts||(ts={})),function(e){function n(n){return e.some(e.ignoredPaths,(function(t){return e.stringContains(n,t)}))}function t(n){var t=e.getRootLength(n);if(n.length===t)return!1;var r=n.indexOf(e.directorySeparator,t);if(-1===r)return!1;var a=n.substring(t,r+1),i=t>1||47!==n.charCodeAt(0);if(i&&0!==n.search(/[a-zA-Z]:/)&&0===a.search(/[a-zA-z]\\$\\//)){if(-1===(r=n.indexOf(e.directorySeparator,r+1)))return!1;a=n.substring(t+a.length,r+1)}if(i&&0!==a.search(/users\\//i))return!0;for(var o=r+1,s=2;s>0;s--)if(0===(o=n.indexOf(e.directorySeparator,o)+1))return!1;return!0}e.isPathIgnored=n,e.canWatchDirectory=t,e.maxNumberOfFilesToIterateForInvalidation=256,e.createResolutionCache=function(r,a,i){var o,s,c,l=!1,u=e.createMultiMap(),d=e.memoize((function(){return r.getCurrentDirectory()})),p=r.getCachedDirectoryStructureHost(),m=e.createMap(),f=e.createCacheWithRedirects(),_=e.createCacheWithRedirects(),g=e.createModuleResolutionCacheWithMaps(f,_,d(),r.getCanonicalFileName),y=e.createMap(),v=e.createCacheWithRedirects(),h=[\".ts\",\".tsx\",\".js\",\".jsx\",\".json\"],b=e.createMap(),E=e.createMap(),T=a&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(a,d())),S=T&&r.toPath(T),x=e.createMap();return{startRecordingFilesWithChangedResolutions:function(){o=[]},finishRecordingFilesWithChangedResolutions:function(){var e=o;return o=void 0,e},startCachingPerDirectoryResolution:k,finishCachingPerDirectoryResolution:function(){l=!1,c=void 0,k(),E.forEach((function(e,n){0===e.refCount&&(E.delete(n),e.watcher.close())}))},resolveModuleNames:function(n,t,r,a){return I(n,t,a,m,f,N,L,(function(n){return!n.resolvedModule||!e.resolutionExtensionIsTSOrJson(n.resolvedModule.extension)}),r,i)},getResolvedModuleWithFailedLookupLocationsFromCache:function(e,n){var t=m.get(r.toPath(n));return t&&t.get(e)},resolveTypeReferenceDirectives:function(n,t,r){return I(n,t,r,y,v,e.resolveTypeReferenceDirective,C,(function(e){return void 0===e.resolvedTypeReferenceDirective}),void 0,!1)},removeResolutionsFromProjectReferenceRedirects:function(n){if(!e.fileExtensionIs(n,\".json\"))return;var t=r.getCurrentProgram();if(!t)return;var a=t.getResolvedProjectReferenceByPath(n);if(!a)return;a.commandLine.fileNames.forEach((function(e){return z(r.toPath(e))}))},removeResolutionsOfFile:z,invalidateResolutionOfFile:function(e){z(e),J((function(n,t){var a=t(n);return!!a&&r.toPath(a.resolvedFileName)===e}))},setFilesWithInvalidatedNonRelativeUnresolvedImports:function(n){e.Debug.assert(c===n||void 0===c),c=n},createHasInvalidatedResolution:function(n){if(l||n)return s=void 0,e.returnTrue;var t=s;return s=void 0,function(e){return!!t&&t.has(e)||D(e)}},updateTypeRootsWatch:function(){var n=r.getCompilationSettings();if(n.types)return void Y();var t=e.getEffectiveTypeRoots(n,{directoryExists:Z,getCurrentDirectory:d});t?e.mutateMap(x,e.arrayToMap(t,(function(e){return r.toPath(e)})),{createNewValue:Q,onDeleteValue:e.closeFileWatcher}):Y()},closeTypeRootsWatch:Y,clear:function(){e.clearMap(E,e.closeFileWatcherOf),b.clear(),u.clear(),Y(),m.clear(),y.clear(),l=!1,k()}};function L(e){return e.resolvedModule}function C(e){return e.resolvedTypeReferenceDirective}function A(n,t){return!(void 0===n||t.length<=n.length)&&(e.startsWith(t,n)&&t[n.length]===e.directorySeparator)}function D(e){if(!c)return!1;var n=c.get(e);return!!n&&!!n.length}function k(){f.clear(),_.clear(),v.clear(),u.forEach(V),u.clear()}function N(n,t,a,i,o){var s=e.resolveModuleName(n,t,a,i,g,o);if(!r.getGlobalCache)return s;var c=r.getGlobalCache();if(!(void 0===c||e.isExternalModuleNameRelative(n)||s.resolvedModule&&e.extensionIsTS(s.resolvedModule.extension))){var l=e.loadModuleFromGlobalCache(e.Debug.assertDefined(r.globalCacheResolutionModuleName)(n),r.projectName,a,i,c),u=l.resolvedModule,d=l.failedLookupLocations;if(u)return{resolvedModule:u,failedLookupLocations:e.addRange(s.failedLookupLocations,d)}}return s}function I(n,t,a,i,s,c,u,d,p,m){var f=r.toPath(t),_=i.get(f)||i.set(f,e.createMap()).get(f),g=e.getDirectoryPath(f),y=s.getOrCreateMapOfCacheRedirects(a),v=y.get(g);v||(v=e.createMap(),y.set(g,v));for(var h=[],b=r.getCompilationSettings(),E=m&&D(f),T=r.getCurrentProgram(),S=T&&T.getResolvedProjectReferenceToRedirect(t),x=S?!a||a.sourceFile.path!==S.sourceFile.path:!!a,L=e.createMap(),C=0,A=n;C<A.length;C++){var k=A[C],N=_.get(k);if(!L.has(k)&&l||x||!N||N.isInvalidated||E&&!e.isExternalModuleNameRelative(k)&&d(N)){var I=N,M=v.get(k);M?N=M:(N=c(k,t,b,r,a),v.set(k,N)),_.set(k,N),F(k,N),I&&j(I),m&&o&&!O(I,N)&&(o.push(f),m=!1)}e.Debug.assert(void 0!==N&&!N.isInvalidated),L.set(k,!0),h.push(u(N))}return _.forEach((function(n,t){L.has(t)||e.contains(p,t)||(j(n),_.delete(t))})),h;function O(e,n){if(e===n)return!0;if(!e||!n)return!1;var t=u(e),r=u(n);return t===r||!(!t||!r)&&t.resolvedFileName===r.resolvedFileName}}function M(n){return e.endsWith(n,\"/node_modules\")}function O(n){return e.endsWith(n,\"/node_modules/@types\")}function R(n,t){if(A(S,t)){n=e.isRootedDiskPath(n)?e.normalizePath(n):e.getNormalizedAbsolutePath(n,d()),e.Debug.assert(n.length===t.length,\"FailedLookup: \"+n+\" failedLookupLocationPath: \"+t);var r=t.indexOf(e.directorySeparator,S.length+1);return-1!==r?{dir:n.substr(0,r),dirPath:t.substr(0,r)}:{dir:T,dirPath:S,nonRecursive:!1}}return P(e.getDirectoryPath(e.getNormalizedAbsolutePath(n,d())),e.getDirectoryPath(t))}function P(n,r){for(;e.pathContainsNodeModules(r);)n=e.getDirectoryPath(n),r=e.getDirectoryPath(r);if(M(r))return t(e.getDirectoryPath(r))?{dir:n,dirPath:r}:void 0;var a,i,o=!0;if(void 0!==S)for(;!A(r,S);){var s=e.getDirectoryPath(r);if(s===r)break;o=!1,a=r,i=n,r=s,n=e.getDirectoryPath(n)}return t(r)?{dir:i||n,dirPath:a||r,nonRecursive:o}:void 0}function w(n){return e.fileExtensionIsOneOf(n,h)}function F(n,t){t.failedLookupLocations&&t.failedLookupLocations.length&&(t.refCount?t.refCount++:(t.refCount=1,e.isExternalModuleNameRelative(n)?G(t):u.add(n,t)))}function G(n){e.Debug.assert(!!n.refCount);for(var t=!1,a=0,i=n.failedLookupLocations;a<i.length;a++){var o=i[a],s=r.toPath(o),c=R(o,s);if(c){var l=c.dir,u=c.dirPath,d=c.nonRecursive;if(!w(s)){var p=b.get(s)||0;b.set(s,p+1)}u===S?(e.Debug.assert(!d),t=!0):U(l,u,d)}}t&&U(T,S,!0)}function B(e){e.refCount=void 0}function V(e,n){var t=r.getCurrentProgram(),a=t&&t.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(n)?B:G;e.forEach(a)}function U(n,t,r){var a=E.get(t);a?(e.Debug.assert(!!r==!!a.nonRecursive),a.refCount++):E.set(t,{watcher:H(n,t,r),refCount:1,nonRecursive:r})}function j(n){if(n.refCount&&(n.refCount--,!n.refCount)){for(var t=!1,a=0,i=n.failedLookupLocations;a<i.length;a++){var o=i[a],s=r.toPath(o),c=R(o,s);if(c){var l=c.dirPath,u=b.get(s);u&&(1===u?b.delete(s):(e.Debug.assert(u>1),b.set(s,u-1))),l===S?t=!0:K(l)}}t&&K(S)}}function K(e){E.get(e).refCount--}function H(e,n,t){return r.watchDirectoryOfFailedLookupLocation(e,(function(e){var t=r.toPath(e);p&&p.addOrDeleteFileOrDirectory(e,t),!l&&X(t,n===t)&&r.onInvalidatedResolution()}),t?0:1)}function W(e,n){var t=e.get(n);t&&(t.forEach(j),e.delete(n))}function z(e){W(m,e),W(y,e)}function q(n,t,a){var i=e.createMap();n.forEach((function(n,o){var c=e.getDirectoryPath(o),l=i.get(c);l||(l=e.createMap(),i.set(c,l)),n.forEach((function(n,i){l.has(i)||(l.set(i,!0),!n.isInvalidated&&t(n,a)&&(n.isInvalidated=!0,(s||(s=e.createMap())).set(o,!0),o.endsWith(e.inferredTypesContainingFile)&&r.onChangedAutomaticTypeDirectiveNames()))}))}))}function J(n){var t;(t=r.maxNumberOfFilesToIterateForInvalidation||e.maxNumberOfFilesToIterateForInvalidation,m.size>t||y.size>t)?l=!0:(q(m,n,L),q(y,n,C))}function X(t,a){var i;if(a)i=function(e){return A(t,r.toPath(e))};else{if(n(t))return!1;if(r.fileIsOpen(t))return!1;var o=e.getDirectoryPath(t);if(O(t)||M(t)||O(o)||M(o))i=function(n){return r.toPath(n)===t||e.startsWith(r.toPath(n),t)};else{if(!w(t)&&!b.has(t))return!1;if(e.isEmittedFileOfProgram(r.getCurrentProgram(),t))return!1;i=function(e){return r.toPath(e)===t}}}var c=s&&s.size;return J((function(n){return e.some(n.failedLookupLocations,i)})),l||s&&s.size!==c}function Y(){e.clearMap(x,e.closeFileWatcher)}function Q(e,n){return r.watchTypeRootsDirectory(n,(function(t){var a=r.toPath(t);p&&p.addOrDeleteFileOrDirectory(t,a),r.onChangedAutomaticTypeDirectiveNames();var i=function(e,n){if(!l){if(A(S,n))return S;var t=P(e,n);return t&&E.has(t.dirPath)?t.dirPath:void 0}}(n,e);i&&X(a,i===a)&&r.onInvalidatedResolution()}),1)}function Z(n){var a=e.getDirectoryPath(e.getDirectoryPath(n)),i=r.toPath(a);return i===S||t(i)}}}(ts||(ts={})),function(e){!function(n){var t,r;function a(n,t,r){var a=n.importModuleSpecifierPreference,i=n.importModuleSpecifierEnding;return{relativePreference:\"relative\"===a?0:\"non-relative\"===a?1:2,ending:function(){switch(i){case\"minimal\":return 0;case\"index\":return 1;case\"js\":return 2;default:return function(n){var t=n.imports;return e.firstDefined(t,(function(n){var t=n.text;return e.pathIsRelative(t)?e.hasJSOrJsonFileExtension(t):void 0}))||!1}(r)?2:e.getEmitModuleResolutionKind(t)!==e.ModuleResolutionKind.NodeJs?1:0}}()}}function i(n,t,r,a,i,c,l){var u=o(t,a),p=d(i,t,r,u.getCanonicalFileName,a,c);return e.firstDefined(p,(function(e){return m(e,u,a,n)}))||s(r,u,n,l)}function o(n,t){return{getCanonicalFileName:e.createGetCanonicalFileName(!t.useCaseSensitiveFileNames||t.useCaseSensitiveFileNames()),sourceDirectory:e.getDirectoryPath(n)}}function s(n,t,r,a){var i=t.getCanonicalFileName,o=t.sourceDirectory,s=a.ending,l=a.relativePreference,u=r.baseUrl,d=r.paths,m=r.rootDirs,v=m&&function(n,t,r,a,i,o){var s=f(t,n,a);if(void 0===s)return;var c=f(r,n,a),l=void 0!==c?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(c,s,a)):s;return e.getEmitModuleResolutionKind(o)===e.ModuleResolutionKind.NodeJs?_(l,i,o):e.removeFileExtension(l)}(m,n,o,i,s,r)||_(e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(o,n,i)),s,r);if(!u||0===l)return v;var h=g(n,u,i);if(!h)return v;var b=_(h,s,r),E=d&&p(e.removeFileExtension(h),b,d),T=void 0===E?b:E;return 1===l?T:(2!==l&&e.Debug.assertNever(l),y(T)||c(v)<c(T)?v:T)}function c(n){for(var t=0,r=e.startsWith(n,\"./\")?2:0;r<n.length;r++)47===n.charCodeAt(r)&&t++;return t}function l(e){var n=e.match(/\\//g);return n?n.length:0}function u(n,t){return e.compareValues(l(n),l(t))}function d(n,t,r,a,i,o){var s=o.get(r),c=s?__spreadArrays(s,[r]):[r],l=i.getCurrentDirectory?i.getCurrentDirectory():\"\",d=c.map((function(n){return e.getNormalizedAbsolutePath(n,l)})),p=i.getProbableSymlinks?i.getProbableSymlinks(n):e.discoverProbableSymlinks(n,a,l),m=[],f=!i.useCaseSensitiveFileNames||i.useCaseSensitiveFileNames()?e.compareStringsCaseSensitive:e.compareStringsCaseInsensitive;if(p.forEach((function(n,r){if(!e.startsWithDirectory(t,n,a)){var o=e.find(d,(function(e){return 0===f(e.slice(0,n.length+1),n+\"/\")}));if(void 0!==o){var s=e.getRelativePathFromDirectory(n,o,a),c=e.resolvePath(r,s);i.fileExists&&!i.fileExists(c)||m.push(c)}}})),m.push.apply(m,d),m.length<2)return m;for(var _,g=e.arrayToMap(m,e.identity,a),y=[],v=function(n){var t,r=e.ensureTrailingDirectorySeparator(n);g.forEach((function(n,a){e.startsWith(n,r)&&((t||(t=[])).push(a),g.delete(a))})),t&&(t.length>1&&t.sort(u),y.push.apply(y,t));var a=e.getDirectoryPath(n);if(a===n)return _=n,\"break\";_=n=a},h=e.getDirectoryPath(e.toPath(t,l,a));0!==g.size;){var b=v(h);if(h=_,\"break\"===b)break}if(g.size){var E=e.arrayFrom(g.values());E.length>1&&E.sort(u),y.push.apply(y,E)}return y}function p(n,t,r){for(var a in r)for(var i=0,o=r[a];i<o.length;i++){var s=o[i],c=e.removeFileExtension(e.normalizePath(s)),l=c.indexOf(\"*\");if(-1!==l){var u=c.substr(0,l),d=c.substr(l+1);if(t.length>=u.length+d.length&&e.startsWith(t,u)&&e.endsWith(t,d)||!d&&t===e.removeTrailingDirectorySeparator(u)){var p=t.substr(u.length,t.length-d.length);return a.replace(\"*\",p)}}else if(c===t||c===n)return a}}function m(n,t,r,a,i){var o=t.getCanonicalFileName,s=t.sourceDirectory;if(r.fileExists&&r.readFile){var c=function(n){var t,r,a=0,i=0,o=0;!function(e){e[e.BeforeNodeModules=0]=\"BeforeNodeModules\",e[e.NodeModules=1]=\"NodeModules\",e[e.Scope=2]=\"Scope\",e[e.PackageContent=3]=\"PackageContent\"}(r||(r={}));var s=0,c=0,l=0;for(;c>=0;)switch(s=c,c=n.indexOf(\"/\",s+1),l){case 0:n.indexOf(e.nodeModulesPathPart,s)===s&&(a=s,i=c,l=1);break;case 1:case 2:1===l&&\"@\"===n.charAt(s+1)?l=2:(o=c,l=3);break;case 3:l=n.indexOf(e.nodeModulesPathPart,s)===s?1:3}return t=s,l>1?{topLevelNodeModulesIndex:a,topLevelPackageNameIndex:i,packageRootIndex:o,fileNameIndex:t}:void 0}(n);if(c){var l,u=n.substring(0,c.packageRootIndex);if(!i){var d=e.combinePaths(u,\"package.json\"),m=(l=r.fileExists(d)?JSON.parse(r.readFile(d)):void 0)&&l.typesVersions?e.getPackageJsonTypesVersionsPaths(l.typesVersions):void 0;if(m){var f=n.slice(c.packageRootIndex+1),g=p(e.removeFileExtension(f),_(f,0,a),m.paths);void 0!==g&&(n=e.combinePaths(n.slice(0,c.packageRootIndex),g))}}var y=i?n:function(n){if(l){var t=l.typings||l.types||l.main;if(t){var a=e.toPath(t,u,o);if(e.removeFileExtension(a)===e.removeFileExtension(o(n)))return u}}var i=e.removeFileExtension(n);if(\"/index\"===o(i.substring(c.fileNameIndex))&&!function(n,t){if(!n.fileExists)return;for(var r=e.getSupportedExtensions({allowJs:!0},[{extension:\"node\",isMixedContent:!1},{extension:\"json\",isMixedContent:!1,scriptKind:6}]),a=0,i=r;a<i.length;a++){var o=i[a],s=t+o;if(n.fileExists(s))return s}}(r,i.substring(0,c.fileNameIndex)))return i.substring(0,c.fileNameIndex);return i}(n),v=r.getGlobalTypingsCacheLocation&&r.getGlobalTypingsCacheLocation(),h=o(y.substring(0,c.topLevelNodeModulesIndex));if(e.startsWith(s,h)||v&&e.startsWith(o(v),h)){var b=y.substring(c.topLevelPackageNameIndex+1),E=e.getPackageNameFromTypesPackageName(b);return e.getEmitModuleResolutionKind(a)!==e.ModuleResolutionKind.NodeJs&&E===b?void 0:E}}}}function f(n,t,r){return e.firstDefined(t,(function(e){var t=g(n,e,r);return y(t)?void 0:t}))}function _(n,t,r){if(e.fileExtensionIs(n,\".json\"))return n;var a=e.removeFileExtension(n);switch(t){case 0:return e.removeSuffix(a,\"/index\");case 1:return a;case 2:return a+function(n,t){var r=e.extensionFromPath(n);switch(r){case\".ts\":case\".d.ts\":return\".js\";case\".tsx\":return 1===t.jsx?\".jsx\":\".js\";case\".js\":case\".jsx\":case\".json\":return r;case\".tsbuildinfo\":return e.Debug.fail(\"Extension .tsbuildinfo is unsupported:: FileName:: \"+n);default:return e.Debug.assertNever(r)}}(n,r);default:return e.Debug.assertNever(t)}}function g(n,t,r){var a=e.getRelativePathToDirectoryOrUrl(t,n,t,r,!1);return e.isRootedDiskPath(a)?void 0:a}function y(n){return e.startsWith(n,\"..\")}!function(e){e[e.Relative=0]=\"Relative\",e[e.NonRelative=1]=\"NonRelative\",e[e.Auto=2]=\"Auto\"}(t||(t={})),function(e){e[e.Minimal=0]=\"Minimal\",e[e.Index=1]=\"Index\",e[e.JsExtension=2]=\"JsExtension\"}(r||(r={})),n.updateModuleSpecifier=function(n,t,r,a,o,s,c){var l=i(n,t,r,a,o,s,function(n,t){return{relativePreference:e.isExternalModuleNameRelative(t)?0:1,ending:e.hasJSOrJsonFileExtension(t)?2:e.getEmitModuleResolutionKind(n)!==e.ModuleResolutionKind.NodeJs||e.endsWith(t,\"index\")?1:0}}(n,c));if(l!==c)return l},n.getModuleSpecifier=function(e,n,t,r,o,s,c,l){return void 0===c&&(c={}),i(e,t,r,o,s,l,a(c,e,n))},n.getNodeModulesPackageName=function(n,t,r,a,i,s){var c=o(t,a),l=d(i,t,r,c.getCanonicalFileName,a,s);return e.firstDefined(l,(function(e){return m(e,c,a,n,!0)}))},n.getModuleSpecifiers=function(n,t,r,i,c,l,u){var p=function(n){var t=e.find(n.declarations,(function(n){return e.isNonGlobalAmbientModule(n)&&(!e.isExternalModuleAugmentation(n)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(n.name)))}));if(t)return t.name.text}(n);if(p)return[p];var f=o(r.path,i),_=e.getSourceFileOfNode(n.valueDeclaration||e.getNonAugmentationDeclaration(n)),g=d(c,r.path,_.originalFileName,f.getCanonicalFileName,i,u),y=a(l,t,r),v=e.mapDefined(g,(function(e){return m(e,f,i,t)}));return v.length?v:g.map((function(e){return s(e,f,t,y)}))},n.countPathComponents=c}(e.moduleSpecifiers||(e.moduleSpecifiers={}))}(ts||(ts={})),function(e){var n=e.sys?{getCurrentDirectory:function(){return e.sys.getCurrentDirectory()},getNewLine:function(){return e.sys.newLine},getCanonicalFileName:e.createGetCanonicalFileName(e.sys.useCaseSensitiveFileNames)}:void 0;function t(t,r){var a=t===e.sys?n:{getCurrentDirectory:function(){return t.getCurrentDirectory()},getNewLine:function(){return t.newLine},getCanonicalFileName:e.createGetCanonicalFileName(t.useCaseSensitiveFileNames)};if(!r)return function(n){return t.write(e.formatDiagnostic(n,a))};var i=new Array(1);return function(n){i[0]=n,t.write(e.formatDiagnosticsWithColorAndContext(i,a)+a.getNewLine()),i[0]=void 0}}function r(n,t,r){return!(!n.clearScreen||r.preserveWatchOutput||r.extendedDiagnostics||r.diagnostics||!e.contains(e.screenStartingMessageCodes,t.code))&&(n.clearScreen(),!0)}function a(e){return e.now?e.now().toLocaleTimeString(\"en-US\",{timeZone:\"UTC\"}):(new Date).toLocaleTimeString()}function i(n,t){return t?function(t,i,o){r(n,t,o);var s=\"[\"+e.formatColorAndReset(a(n),e.ForegroundColorEscapeSequences.Grey)+\"] \";s+=\"\"+e.flattenDiagnosticMessageText(t.messageText,n.newLine)+(i+i),n.write(s)}:function(t,i,o){var s=\"\";r(n,t,o)||(s+=i),s+=a(n)+\" - \",s+=\"\"+e.flattenDiagnosticMessageText(t.messageText,n.newLine)+function(n,t){return e.contains(e.screenStartingMessageCodes,n.code)?t+t:t}(t,i),n.write(s)}}function o(n){return e.countWhere(n,(function(n){return n.category===e.DiagnosticCategory.Error}))}function s(n){return 1===n?e.Diagnostics.Found_1_error_Watching_for_file_changes:e.Diagnostics.Found_0_errors_Watching_for_file_changes}function c(n,t){if(0===n)return\"\";var r=e.createCompilerDiagnostic(1===n?e.Diagnostics.Found_1_error:e.Diagnostics.Found_0_errors,n);return\"\"+t+e.flattenDiagnosticMessageText(r.messageText,t)+t+t}function l(n,t){(n.getCompilerOptions().listFiles||n.getCompilerOptions().listFilesOnly)&&e.forEach(n.getSourceFiles(),(function(e){t(e.fileName)}))}function u(n,t,r,a,i,s,c,u){var d=!!n.getCompilerOptions().listFilesOnly,p=n.getConfigFileParsingDiagnostics().slice(),m=p.length;e.addRange(p,n.getSyntacticDiagnostics(void 0,s)),p.length===m&&(e.addRange(p,n.getOptionsDiagnostics(s)),d||(e.addRange(p,n.getGlobalDiagnostics(s)),p.length===m&&e.addRange(p,n.getSemanticDiagnostics(void 0,s))));var f=d?{emitSkipped:!0,diagnostics:e.emptyArray}:n.emit(void 0,i,s,c,u),_=f.emittedFiles,g=f.diagnostics;if(e.addRange(p,g),e.sortAndDeduplicateDiagnostics(p).forEach(t),r){var y=n.getCurrentDirectory();e.forEach(_,(function(n){var t=e.getNormalizedAbsolutePath(n,y);r(\"TSFILE: \"+t)})),l(n,r)}return a&&a(o(p)),{emitResult:f,diagnostics:p}}function d(n,t,r,a,i,o,s,c){var l=u(n,t,r,a,i,o,s,c),d=l.emitResult,p=l.diagnostics;return d.emitSkipped&&p.length>0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:p.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}function p(n,t){return void 0===n&&(n=e.sys),{onWatchStatusChange:t||i(n),watchFile:e.maybeBind(n,n.watchFile)||function(){return e.noopFileWatcher},watchDirectory:e.maybeBind(n,n.watchDirectory)||function(){return e.noopFileWatcher},setTimeout:e.maybeBind(n,n.setTimeout)||e.noop,clearTimeout:e.maybeBind(n,n.clearTimeout)||e.noop}}function m(n,t){var r=e.memoize((function(){return e.getDirectoryPath(e.normalizePath(n.getExecutingFilePath()))}));return{useCaseSensitiveFileNames:function(){return n.useCaseSensitiveFileNames},getNewLine:function(){return n.newLine},getCurrentDirectory:e.memoize((function(){return n.getCurrentDirectory()})),getDefaultLibLocation:r,getDefaultLibFileName:function(n){return e.combinePaths(r(),e.getDefaultLibFileName(n))},fileExists:function(e){return n.fileExists(e)},readFile:function(e,t){return n.readFile(e,t)},directoryExists:function(e){return n.directoryExists(e)},getDirectories:function(e){return n.getDirectories(e)},readDirectory:function(e,t,r,a,i){return n.readDirectory(e,t,r,a,i)},realpath:e.maybeBind(n,n.realpath),getEnvironmentVariable:e.maybeBind(n,n.getEnvironmentVariable),trace:function(e){return n.write(e+n.newLine)},createDirectory:function(e){return n.createDirectory(e)},writeFile:function(e,t,r){return n.writeFile(e,t,r)},onCachedDirectoryStructureHostCreate:function(e){return e||n},createHash:e.maybeBind(n,n.createHash),createProgram:t||e.createEmitAndSemanticDiagnosticsBuilderProgram}}function f(n,t,r,a){void 0===n&&(n=e.sys);var i=function(e){return n.write(e+n.newLine)},o=m(n,t);return e.copyProperties(o,p(n,a)),o.afterProgramCreate=function(t){var a=t.getCompilerOptions(),c=e.getNewLineCharacter(a,(function(){return n.newLine}));u(t,r,i,(function(n){return o.onWatchStatusChange(e.createCompilerDiagnostic(s(n),n),c,a,n)}))},o}function _(n,t,r){t(r),n.exit(e.ExitStatus.DiagnosticsPresent_OutputsSkipped)}e.createDiagnosticReporter=t,e.screenStartingMessageCodes=[e.Diagnostics.Starting_compilation_in_watch_mode.code,e.Diagnostics.File_change_detected_Starting_incremental_compilation.code],e.getLocaleTimeString=a,e.createWatchStatusReporter=i,e.parseConfigFileWithSystem=function(n,t,r,a){var i=r;i.onUnRecoverableConfigFileDiagnostic=function(e){return _(r,a,e)};var o=e.getParsedCommandLineOfConfigFile(n,t,i);return i.onUnRecoverableConfigFileDiagnostic=void 0,o},e.getErrorCountForSummary=o,e.getWatchErrorSummaryDiagnosticMessage=s,e.getErrorSummaryText=c,e.listFiles=l,e.emitFilesAndReportErrors=u,e.emitFilesAndReportErrorsAndGetExitStatus=d,e.noopFileWatcher={close:e.noop},e.createWatchHost=p,function(e){e.ConfigFile=\"Config file\",e.SourceFile=\"Source file\",e.MissingFile=\"Missing file\",e.WildcardDirectory=\"Wild card directory\",e.FailedLookupLocations=\"Failed Lookup Locations\",e.TypeRoots=\"Type roots\"}(e.WatchType||(e.WatchType={})),e.createWatchFactory=function(n,t){var r=n.trace?t.extendedDiagnostics?e.WatchLogLevel.Verbose:t.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,a=r!==e.WatchLogLevel.None?function(e){return n.trace(e)}:e.noop,i=e.getWatchFactory(r,a);return i.writeLog=a,i},e.createCompilerHostFromProgramHost=function(n,t,r){void 0===r&&(r=n);var a=n.useCaseSensitiveFileNames(),i=e.memoize((function(){return n.getNewLine()}));return{getSourceFile:function(r,a,i){var o;try{e.performance.mark(\"beforeIORead\"),o=n.readFile(r,t().charset),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(e){i&&i(e.message),o=\"\"}return void 0!==o?e.createSourceFile(r,o,a):void 0},getDefaultLibLocation:e.maybeBind(n,n.getDefaultLibLocation),getDefaultLibFileName:function(e){return n.getDefaultLibFileName(e)},writeFile:function(t,r,a,i){try{e.performance.mark(\"beforeIOWrite\"),function t(r){if(r.length>e.getRootLength(r)&&!n.directoryExists(r)){var a=e.getDirectoryPath(r);t(a),n.createDirectory&&n.createDirectory(r)}}(e.getDirectoryPath(e.normalizePath(t))),n.writeFile(t,r,a),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(e){i&&i(e.message)}},getCurrentDirectory:e.memoize((function(){return n.getCurrentDirectory()})),useCaseSensitiveFileNames:function(){return a},getCanonicalFileName:e.createGetCanonicalFileName(a),getNewLine:function(){return e.getNewLineCharacter(t(),i)},fileExists:function(e){return n.fileExists(e)},readFile:function(e){return n.readFile(e)},trace:e.maybeBind(n,n.trace),directoryExists:e.maybeBind(r,r.directoryExists),getDirectories:e.maybeBind(r,r.getDirectories),realpath:e.maybeBind(n,n.realpath),getEnvironmentVariable:e.maybeBind(n,n.getEnvironmentVariable)||function(){return\"\"},createHash:e.maybeBind(n,n.createHash),readDirectory:e.maybeBind(n,n.readDirectory)}},e.setGetSourceFileAsHashVersioned=function(n,t){var r=n.getSourceFile,a=t.createHash||e.generateDjb2Hash;n.getSourceFile=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var o=r.call.apply(r,__spreadArrays([n],e));return o&&(o.version=a.call(t,o.text)),o}},e.createProgramHost=m,e.createWatchCompilerHostOfConfigFile=function(e,n,r,a,i,o){var s=i||t(r),c=f(r,a,s,o);return c.onUnRecoverableConfigFileDiagnostic=function(e){return _(r,s,e)},c.configFileName=e,c.optionsToExtend=n,c},e.createWatchCompilerHostOfFilesAndCompilerOptions=function(e,n,r,a,i,o,s){var c=f(r,a,i||t(r),o);return c.rootFiles=e,c.options=n,c.projectReferences=s,c},e.performIncrementalCompilation=function(n){var r=n.system||e.sys,a=n.host||(n.host=e.createIncrementalCompilerHost(n.options,r)),i=e.createIncrementalProgram(n),o=d(i,n.reportDiagnostic||t(r),(function(e){return a.trace&&a.trace(e)}),n.reportErrorSummary||n.options.pretty?function(e){return r.write(c(e,r.newLine))}:void 0);return n.afterProgramEmitAndDiagnostics&&n.afterProgramEmitAndDiagnostics(i),o}}(ts||(ts={})),function(e){function n(n,t){if(!n.out&&!n.outFile){var r=e.getTsBuildInfoEmitOutputFilePath(n);if(r){var a=t.readFile(r);if(a){var i=e.getBuildInfo(a);if(i.version===e.version&&i.program)return e.createBuildProgramUsingProgramBuildInfo(i.program,r,t)}}}}function t(n,t){void 0===t&&(t=e.sys);var r=e.createCompilerHostWorker(n,void 0,t);return r.createHash=e.maybeBind(t,t.createHash),e.setGetSourceFileAsHashVersioned(r,t),e.changeCompilerHostLikeToUseCache(r,(function(n){return e.toPath(n,r.getCurrentDirectory(),r.getCanonicalFileName)})),r}e.readBuilderProgram=n,e.createIncrementalCompilerHost=t,e.createIncrementalProgram=function(r){var a=r.rootNames,i=r.options,o=r.configFileParsingDiagnostics,s=r.projectReferences,c=r.host,l=r.createProgram;return c=c||t(i),(l=l||e.createEmitAndSemanticDiagnosticsBuilderProgram)(a,i,c,n(i,c),o,s)},e.createWatchCompilerHost=function(n,t,r,a,i,o,s){return e.isArray(n)?e.createWatchCompilerHostOfFilesAndCompilerOptions(n,t,r,a,i,o,s):e.createWatchCompilerHostOfConfigFile(n,t,r,a,i,o)},e.createWatchProgram=function(t){var r,a,i,o,s,c,l,u,d=e.createMap(),p=!1,m=!1,f=t.useCaseSensitiveFileNames(),_=t.getCurrentDirectory(),g=t.configFileName,y=t.optionsToExtend,v=void 0===y?{}:y,h=t.createProgram,b=t.rootFiles,E=t.options,T=t.projectReferences,S=!1,x=!1,L=void 0===g?void 0:e.createCachedDirectoryStructureHost(t,_,f);L&&t.onCachedDirectoryStructureHostCreate&&t.onCachedDirectoryStructureHostCreate(L);var C=L||t,A=e.parseConfigHostFromCompilerHostLike(t,C),D=H();g&&t.configFileParsingResult&&(ne(t.configFileParsingResult),D=H()),Q(e.Diagnostics.Starting_compilation_in_watch_mode),g&&!t.configFileParsingResult&&(D=e.getNewLineCharacter(v,(function(){return t.getNewLine()})),e.Debug.assert(!b),ee(),D=H());var k,N=e.createWatchFactory(t,E),I=N.watchFile,M=N.watchFilePath,O=N.watchDirectory,R=N.writeLog,P=e.createGetCanonicalFileName(f);R(\"Current directory: \"+_+\" CaseSensitiveFileNames: \"+f),g&&(k=I(t,g,(function(){e.Debug.assert(!!g),a=e.ConfigFileProgramReloadLevel.Full,Z()}),e.PollingInterval.High,\"Config file\"));var w=e.createCompilerHostFromProgramHost(t,(function(){return E}),C);e.setGetSourceFileAsHashVersioned(w,t);var F=w.getSourceFile;w.getSourceFile=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];return J.apply(void 0,__spreadArrays([e,W(e)],n))},w.getSourceFileByPath=J,w.getNewLine=function(){return D},w.fileExists=q,w.onReleaseOldSourceFile=function(e,n,t){var r=d.get(e.resolvedPath);void 0!==r&&(z(r)?(c||(c=[])).push(e.path):r.sourceFile===e&&(r.fileWatcher&&r.fileWatcher.close(),d.delete(e.resolvedPath),t||G.removeResolutionsOfFile(e.path)))},w.toPath=W,w.getCompilationSettings=function(){return E},w.watchDirectoryOfFailedLookupLocation=function(e,n,r){return O(t,e,n,r,\"Failed Lookup Locations\")},w.watchTypeRootsDirectory=function(e,n,r){return O(t,e,n,r,\"Type roots\")},w.getCachedDirectoryStructureHost=function(){return L},w.onInvalidatedResolution=Z,w.onChangedAutomaticTypeDirectiveNames=function(){m=!0,Z()},w.fileIsOpen=e.returnFalse,w.maxNumberOfFilesToIterateForInvalidation=t.maxNumberOfFilesToIterateForInvalidation,w.getCurrentProgram=j,w.writeLog=R;var G=e.createResolutionCache(w,g?e.getDirectoryPath(e.getNormalizedAbsolutePath(g,_)):_,!1);w.resolveModuleNames=t.resolveModuleNames?function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.resolveModuleNames.apply(t,e)}:function(e,n,t,r){return G.resolveModuleNames(e,n,t,r)},w.resolveTypeReferenceDirectives=t.resolveTypeReferenceDirectives?function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.resolveTypeReferenceDirectives.apply(t,e)}:function(e,n,t){return G.resolveTypeReferenceDirectives(e,n,t)};var B=!!t.resolveModuleNames||!!t.resolveTypeReferenceDirectives;return r=n(E,w),K(),oe(),g?{getCurrentProgram:U,getProgram:K,close:V}:{getCurrentProgram:U,getProgram:K,updateRootFileNames:function(n){e.Debug.assert(!g,\"Cannot update root file names with config file watch mode\"),b=n,Z()},close:V};function V(){G.clear(),e.clearMap(d,(function(e){e&&e.fileWatcher&&(e.fileWatcher.close(),e.fileWatcher=void 0)})),k&&(k.close(),k=void 0),o&&(e.clearMap(o,e.closeFileWatcherOf),o=void 0),i&&(e.clearMap(i,e.closeFileWatcher),i=void 0)}function U(){return r}function j(){return r&&r.getProgramOrUndefined()}function K(){R(\"Synchronizing program\");var n=U();p&&(D=H(),n&&e.changesAffectModuleResolution(n.getCompilerOptions(),E)&&G.clear());var a=G.createHasInvalidatedResolution(B);return e.isProgramUptoDate(j(),b,E,Y,q,a,m,T)?x&&(r=h(void 0,void 0,w,r,u,T),x=!1):function(n){R(\"CreatingProgramWith::\"),R(\"  roots: \"+JSON.stringify(b)),R(\"  options: \"+JSON.stringify(E));var t=p||!j();p=!1,x=!1,G.startCachingPerDirectoryResolution(),w.hasInvalidatedResolution=n,w.hasChangedAutomaticTypeDirectiveNames=m,r=h(b,E,w,r,u,T),G.finishCachingPerDirectoryResolution(),e.updateMissingFilePathsWatch(r.getProgram(),i||(i=e.createMap()),ae),t&&G.updateTypeRootsWatch();if(c){for(var a=0,o=c;a<o.length;a++){var s=o[a];i.has(s)||d.delete(s)}c=void 0}}(a),t.afterProgramCreate&&t.afterProgramCreate(r),r}function H(){return e.getNewLineCharacter(E||v,(function(){return t.getNewLine()}))}function W(n){return e.toPath(n,_,P)}function z(e){return\"boolean\"==typeof e}function q(e){var n=W(e);return!!z(d.get(n))||C.fileExists(e)}function J(n,r,a,i,o){var s=d.get(r);if(!z(s)){if(void 0===s||o||function(e){return\"boolean\"==typeof e.version}(s)){var c=F(n,a,i);if(s)c?(s.sourceFile=c,s.version=c.version,s.fileWatcher||(s.fileWatcher=M(t,n,te,e.PollingInterval.Low,r,\"Source file\"))):(s.fileWatcher&&s.fileWatcher.close(),d.set(r,!1));else if(c){var l=M(t,n,te,e.PollingInterval.Low,r,\"Source file\");d.set(r,{sourceFile:c,version:c.version,fileWatcher:l})}else d.set(r,!1);return c}return s.sourceFile}}function X(e){var n=d.get(e);void 0!==n&&(z(n)?d.set(e,{version:!1}):n.version=!1)}function Y(e){var n=d.get(e);return n&&n.version?n.version:void 0}function Q(n){t.onWatchStatusChange&&t.onWatchStatusChange(e.createCompilerDiagnostic(n),D,E||v)}function Z(){t.setTimeout&&t.clearTimeout&&(s&&t.clearTimeout(s),R(\"Scheduling update\"),s=t.setTimeout($,250))}function $(){switch(s=void 0,Q(e.Diagnostics.File_change_detected_Starting_incremental_compilation),a){case e.ConfigFileProgramReloadLevel.Partial:e.perfLogger.logStartUpdateProgram(\"PartialConfigReload\"),function(){R(\"Reloading new file names and options\");var n=e.getFileNamesFromConfigSpecs(l,e.getDirectoryPath(g),E,A);e.updateErrorForNoInputFiles(n,g,l,u,S)&&(x=!0);b=n.fileNames,K()}();break;case e.ConfigFileProgramReloadLevel.Full:e.perfLogger.logStartUpdateProgram(\"FullConfigReload\"),function(){R(\"Reloading config file: \"+g),a=e.ConfigFileProgramReloadLevel.None,L&&L.clearCache();ee(),p=!0,K(),oe()}();break;default:e.perfLogger.logStartUpdateProgram(\"SynchronizeProgram\"),K()}e.perfLogger.logStopUpdateProgram(\"Done\")}function ee(){ne(e.getParsedCommandLineOfConfigFile(g,v,A))}function ne(n){b=n.fileNames,E=n.options,l=n.configFileSpecs,T=n.projectReferences,u=e.getConfigFileParsingDiagnostics(n).slice(),S=e.canJsonReportNoInutFiles(n.raw),x=!0}function te(n,t,r){re(n,r,t),t===e.FileWatcherEventKind.Deleted&&d.has(r)&&G.invalidateResolutionOfFile(r),G.removeResolutionsFromProjectReferenceRedirects(r),X(r),Z()}function re(e,n,t){L&&L.addOrDeleteFile(e,n,t)}function ae(n){return M(t,n,ie,e.PollingInterval.Medium,n,\"Missing file\")}function ie(n,t,r){re(n,r,t),t===e.FileWatcherEventKind.Created&&i.has(r)&&(i.get(r).close(),i.delete(r),X(r),Z())}function oe(){l?e.updateWatchingWildcardDirectories(o||(o=e.createMap()),e.createMapFromTemplate(l.wildcardDirectories),se):o&&e.clearMap(o,e.closeFileWatcherOf)}function se(n,r){return O(t,n,(function(t){e.Debug.assert(!!g);var r=W(t);L&&L.addOrDeleteFileOrDirectory(t,r),X(r),e.isPathIgnored(r)||(r===n||!e.hasExtension(r)||e.isSupportedSourceFileName(t,E)?a!==e.ConfigFileProgramReloadLevel.Full&&(a=e.ConfigFileProgramReloadLevel.Partial,Z()):R(\"Project: \"+g+\" Detected file add/remove of non supported extension: \"+t))}),r,\"Wild card directory\")}}}(ts||(ts={})),function(e){!function(e){e[e.Unbuildable=0]=\"Unbuildable\",e[e.UpToDate=1]=\"UpToDate\",e[e.UpToDateWithUpstreamTypes=2]=\"UpToDateWithUpstreamTypes\",e[e.OutOfDateWithPrepend=3]=\"OutOfDateWithPrepend\",e[e.OutputMissing=4]=\"OutputMissing\",e[e.OutOfDateWithSelf=5]=\"OutOfDateWithSelf\",e[e.OutOfDateWithUpstream=6]=\"OutOfDateWithUpstream\",e[e.UpstreamOutOfDate=7]=\"UpstreamOutOfDate\",e[e.UpstreamBlocked=8]=\"UpstreamBlocked\",e[e.ComputingUpstream=9]=\"ComputingUpstream\",e[e.TsVersionOutputOfDate=10]=\"TsVersionOutputOfDate\",e[e.ContainerOnly=11]=\"ContainerOnly\"}(e.UpToDateStatusType||(e.UpToDateStatusType={})),e.resolveConfigFileProjectName=function(n){return e.fileExtensionIs(n,\".json\")?n:e.combinePaths(n,\"tsconfig.json\")}}(ts||(ts={})),function(e){var n,t,r=new Date(-864e13),a=new Date(864e13);function i(){return e.createMap()}function o(n,t){return function(e,n,t){var r,a=e.get(n);return a||(r=t(),e.set(n,r)),a||r}(n,t,e.createMap)}function s(e,n){return n>e?n:e}function c(n){return e.fileExtensionIs(n,\".d.ts\")}function l(e){return!!e&&!!e.buildOrder}function u(e){return l(e)?e.buildOrder:e}function d(n,t){return function(r){var a=t?\"[\"+e.formatColorAndReset(e.getLocaleTimeString(n),e.ForegroundColorEscapeSequences.Grey)+\"] \":e.getLocaleTimeString(n)+\" - \";a+=\"\"+e.flattenDiagnosticMessageText(r.messageText,n.newLine)+(n.newLine+n.newLine),n.write(a)}}function p(n,t,r,a){var i=e.createProgramHost(n,t);return i.getModifiedTime=n.getModifiedTime?function(e){return n.getModifiedTime(e)}:e.returnUndefined,i.setModifiedTime=n.setModifiedTime?function(e,t){return n.setModifiedTime(e,t)}:e.noop,i.deleteFile=n.deleteFile?function(e){return n.deleteFile(e)}:e.noop,i.reportDiagnostic=r||e.createDiagnosticReporter(n),i.reportSolutionBuilderStatus=a||d(n),i}function m(n,t,r,a){var o,s,c=t,l=t,u=c.getCurrentDirectory(),d=e.createGetCanonicalFileName(c.useCaseSensitiveFileNames()),p=(o=a,s={},e.commonOptionsWithBuild.forEach((function(n){e.hasProperty(o,n.name)&&(s[n.name]=o[n.name])})),s),m=e.createCompilerHostFromProgramHost(c,(function(){return S.projectCompilerOptions}));e.setGetSourceFileAsHashVersioned(m,c),m.getParsedCommandLine=function(e){return y(S,e,_(S,e))},m.resolveModuleNames=e.maybeBind(c,c.resolveModuleNames),m.resolveTypeReferenceDirectives=e.maybeBind(c,c.resolveTypeReferenceDirectives);var f=m.resolveModuleNames?void 0:e.createModuleResolutionCache(u,d);if(!m.resolveModuleNames){var g=function(n,t,r){return e.resolveModuleName(n,t,S.projectCompilerOptions,m,f,r).resolvedModule};m.resolveModuleNames=function(n,t,r,a){return e.loadWithLocalCache(e.Debug.assertEachDefined(n),t,a,g)}}var v=e.createWatchFactory(l,a),h=v.watchFile,b=v.watchFilePath,E=v.watchDirectory,T=v.writeLog,S={host:c,hostWithWatch:l,currentDirectory:u,getCanonicalFileName:d,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(c),writeFileName:c.trace?function(e){return c.trace(e)}:void 0,options:a,baseCompilerOptions:p,rootNames:r,resolvedConfigFilePaths:e.createMap(),configFileCache:i(),projectStatus:i(),buildInfoChecked:i(),extendedConfigCache:e.createMap(),builderPrograms:i(),diagnostics:i(),projectPendingBuild:i(),projectErrorsReported:i(),compilerHost:m,moduleResolutionCache:f,buildOrder:void 0,readFileWithCache:function(e){return c.readFile(e)},projectCompilerOptions:p,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:n,currentInvalidatedProject:void 0,watch:n,allWatchedWildcardDirectories:i(),allWatchedInputFiles:i(),allWatchedConfigFiles:i(),timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:h,watchFilePath:b,watchDirectory:E,writeLog:T};return S}function f(n,t){return e.toPath(t,n.currentDirectory,n.getCanonicalFileName)}function _(e,n){var t=e.resolvedConfigFilePaths,r=t.get(n);if(void 0!==r)return r;var a=f(e,n);return t.set(n,a),a}function g(e){return!!e.options}function y(n,t,r){var a,i=n.configFileCache,o=i.get(r);if(o)return g(o)?o:void 0;var s,c=n.parseConfigFileHost,l=n.baseCompilerOptions,u=n.extendedConfigCache,d=n.host;return d.getParsedCommandLine?(s=d.getParsedCommandLine(t))||(a=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,t)):(c.onUnRecoverableConfigFileDiagnostic=function(e){return a=e},s=e.getParsedCommandLineOfConfigFile(t,l,c,u),c.onUnRecoverableConfigFileDiagnostic=e.noop),i.set(r,s||a),s}function v(n,t){return e.resolveConfigFileProjectName(e.resolvePath(n.currentDirectory,t))}function h(n,t){for(var r,a,i=e.createMap(),o=e.createMap(),s=[],c=0,l=t;c<l.length;c++){u(l[c])}return a?{buildOrder:r||e.emptyArray,circularDiagnostics:a}:r||e.emptyArray;function u(t,c){var l=_(n,t);if(!o.has(l))if(i.has(l))c||(a||(a=[])).push(e.createCompilerDiagnostic(e.Diagnostics.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0,s.join(\"\\r\\n\")));else{i.set(l,!0),s.push(t);var d=y(n,t,l);if(d&&d.projectReferences)for(var p=0,m=d.projectReferences;p<m.length;p++){var f=m[p];u(v(n,f.path),c||f.circular)}s.pop(),o.set(l,!0),(r||(r=[])).push(t)}}}function b(n){return n.buildOrder||function(n){var t=h(n,n.rootNames.map((function(e){return v(n,e)})));n.resolvedConfigFilePaths.clear();var r=e.arrayToSet(u(t),(function(e){return _(n,e)})),a={onDeleteValue:e.noop};e.mutateMapSkippingNewValues(n.configFileCache,r,a),e.mutateMapSkippingNewValues(n.projectStatus,r,a),e.mutateMapSkippingNewValues(n.buildInfoChecked,r,a),e.mutateMapSkippingNewValues(n.builderPrograms,r,a),e.mutateMapSkippingNewValues(n.diagnostics,r,a),e.mutateMapSkippingNewValues(n.projectPendingBuild,r,a),e.mutateMapSkippingNewValues(n.projectErrorsReported,r,a),n.watch&&(e.mutateMapSkippingNewValues(n.allWatchedConfigFiles,r,{onDeleteValue:e.closeFileWatcher}),e.mutateMapSkippingNewValues(n.allWatchedWildcardDirectories,r,{onDeleteValue:function(n){return n.forEach(e.closeFileWatcherOf)}}),e.mutateMapSkippingNewValues(n.allWatchedInputFiles,r,{onDeleteValue:function(n){return n.forEach(e.closeFileWatcher)}}));return n.buildOrder=t}(n)}function E(n,t,r){var a=t&&v(n,t),i=b(n);if(l(i))return i;if(a){var o=_(n,a);if(-1===e.findIndex(i,(function(e){return _(n,e)===o})))return}var s=a?h(n,[a]):i;return e.Debug.assert(!l(s)),e.Debug.assert(!r||void 0!==a),e.Debug.assert(!r||s[s.length-1]===a),r?s.slice(0,s.length-1):s}function T(n){n.cache&&S(n);var t=n.compilerHost,r=n.host,a=n.readFileWithCache,i=t.getSourceFile,o=e.changeCompilerHostLikeToUseCache(r,(function(e){return f(n,e)}),(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i.call.apply(i,__spreadArrays([t],e))})),s=o.originalReadFile,c=o.originalFileExists,l=o.originalDirectoryExists,u=o.originalCreateDirectory,d=o.originalWriteFile,p=o.getSourceFileWithCache,m=o.readFileWithCache;n.readFileWithCache=m,t.getSourceFile=p,n.cache={originalReadFile:s,originalFileExists:c,originalDirectoryExists:l,originalCreateDirectory:u,originalWriteFile:d,originalReadFileWithCache:a,originalGetSourceFile:i}}function S(e){if(e.cache){var n=e.cache,t=e.host,r=e.compilerHost,a=e.extendedConfigCache,i=e.moduleResolutionCache;t.readFile=n.originalReadFile,t.fileExists=n.originalFileExists,t.directoryExists=n.originalDirectoryExists,t.createDirectory=n.originalCreateDirectory,t.writeFile=n.originalWriteFile,r.getSourceFile=n.originalGetSourceFile,e.readFileWithCache=n.originalReadFileWithCache,a.clear(),i&&(i.directoryToModuleNameMap.clear(),i.moduleNameToDirectoryMap.clear()),e.cache=void 0}}function x(e,n){e.projectStatus.delete(n),e.diagnostics.delete(n)}function L(e,n,t){var r=e.projectPendingBuild,a=r.get(n);void 0===a?r.set(n,t):a<t&&r.set(n,t)}function C(n,t){n.allProjectBuildPending&&(n.allProjectBuildPending=!1,n.options.watch&&$(n,e.Diagnostics.Starting_compilation_in_watch_mode),T(n),u(b(n)).forEach((function(t){return n.projectPendingBuild.set(_(n,t),e.ConfigFileProgramReloadLevel.None)})),t&&t.throwIfCancellationRequested())}function A(n,t){return n.projectPendingBuild.delete(t),n.currentInvalidatedProject=void 0,n.diagnostics.has(t)?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:e.ExitStatus.Success}function D(e,n,r,a,i){var o=!0;return{kind:t.UpdateOutputFileStamps,project:n,projectPath:r,buildOrder:i,getCompilerOptions:function(){return a.options},getCurrentDirectory:function(){return e.currentDirectory},updateOutputFileStatmps:function(){G(e,a,r),o=!1},done:function(){return o&&G(e,a,r),A(e,r)}}}function k(i,o,l,u,d,p,m){var g;!function(e){e[e.CreateProgram=0]=\"CreateProgram\",e[e.SyntaxDiagnostics=1]=\"SyntaxDiagnostics\",e[e.SemanticDiagnostics=2]=\"SemanticDiagnostics\",e[e.Emit=3]=\"Emit\",e[e.EmitBundle=4]=\"EmitBundle\",e[e.BuildInvalidatedProjectOfBundle=5]=\"BuildInvalidatedProjectOfBundle\",e[e.QueueReferencingProjects=6]=\"QueueReferencingProjects\",e[e.Done=7]=\"Done\"}(g||(g={}));var h,b,E,T=i===t.Build?g.CreateProgram:g.EmitBundle;return i===t.Build?{kind:i,project:l,projectPath:u,buildOrder:m,getCompilerOptions:function(){return p.options},getCurrentDirectory:function(){return o.currentDirectory},getBuilderProgram:function(){return x(e.identity)},getProgram:function(){return x((function(e){return e.getProgramOrUndefined()}))},getSourceFile:function(e){return x((function(n){return n.getSourceFile(e)}))},getSourceFiles:function(){return L((function(e){return e.getSourceFiles()}))},getOptionsDiagnostics:function(e){return L((function(n){return n.getOptionsDiagnostics(e)}))},getGlobalDiagnostics:function(e){return L((function(n){return n.getGlobalDiagnostics(e)}))},getConfigFileParsingDiagnostics:function(){return L((function(e){return e.getConfigFileParsingDiagnostics()}))},getSyntacticDiagnostics:function(e,n){return L((function(t){return t.getSyntacticDiagnostics(e,n)}))},getAllDependencies:function(e){return L((function(n){return n.getAllDependencies(e)}))},getSemanticDiagnostics:function(e,n){return L((function(t){return t.getSemanticDiagnostics(e,n)}))},getSemanticDiagnosticsOfNextAffectedFile:function(e,n){return x((function(t){return t.getSemanticDiagnosticsOfNextAffectedFile&&t.getSemanticDiagnosticsOfNextAffectedFile(e,n)}))},emit:function(e,n,t,r,a){return e||r?x((function(i){return i.emit(e,n,t,r,a)})):(V(g.SemanticDiagnostics,t),T===g.Emit?P(n,t,a):void 0)},done:S}:{kind:i,project:l,projectPath:u,buildOrder:m,getCompilerOptions:function(){return p.options},getCurrentDirectory:function(){return o.currentDirectory},emit:function(e,n){return T!==g.EmitBundle?E:G(e,n)},done:S};function S(e,n,t){return V(g.Done,e,n,t),A(o,u)}function x(e){return V(g.CreateProgram),h&&e(h)}function L(n){return x(n)||e.emptyArray}function C(){if(e.Debug.assert(void 0===h),o.options.dry)return Z(o,e.Diagnostics.A_non_dry_build_would_build_project_0,l),b=n.Success,void(T=g.QueueReferencingProjects);if(o.options.verbose&&Z(o,e.Diagnostics.Building_project_0,l),0===p.fileNames.length)return ne(o,u,p.errors),b=n.None,void(T=g.QueueReferencingProjects);var t=o.host,r=o.compilerHost;o.projectCompilerOptions=p.options,function(n,t,r){if(!n.moduleResolutionCache)return;var a=n.moduleResolutionCache,i=f(n,t);if(0===a.directoryToModuleNameMap.redirectsMap.size)e.Debug.assert(0===a.moduleNameToDirectoryMap.redirectsMap.size),a.directoryToModuleNameMap.redirectsMap.set(i,a.directoryToModuleNameMap.ownMap),a.moduleNameToDirectoryMap.redirectsMap.set(i,a.moduleNameToDirectoryMap.ownMap);else{e.Debug.assert(a.moduleNameToDirectoryMap.redirectsMap.size>0);var o={sourceFile:r.options.configFile,commandLine:r};a.directoryToModuleNameMap.setOwnMap(a.directoryToModuleNameMap.getOrCreateMapOfCacheRedirects(o)),a.moduleNameToDirectoryMap.setOwnMap(a.moduleNameToDirectoryMap.getOrCreateMapOfCacheRedirects(o))}a.directoryToModuleNameMap.setOwnOptions(r.options),a.moduleNameToDirectoryMap.setOwnOptions(r.options)}(o,l,p),h=t.createProgram(p.fileNames,p.options,r,function(n,t,r){var a=n.options,i=n.builderPrograms,o=n.compilerHost;if(a.force)return;var s=i.get(t);return s||e.readBuilderProgram(r.options,o)}(o,u,p),p.errors,p.projectReferences),T++}function D(e,n,t){e.length?(b=R(o,u,h,e,n,t),T=g.QueueReferencingProjects):T++}function N(t){e.Debug.assertDefined(h),D(__spreadArrays(h.getConfigFileParsingDiagnostics(),h.getOptionsDiagnostics(t),h.getGlobalDiagnostics(t),h.getSyntacticDiagnostics(void 0,t)),n.SyntaxErrors,\"Syntactic\")}function I(t){D(e.Debug.assertDefined(h).getSemanticDiagnostics(void 0,t),n.TypeErrors,\"Semantic\")}function P(t,a,i){var l;e.Debug.assertDefined(h),e.Debug.assert(T===g.Emit),h.backupState();var d=[],m=e.emitFilesAndReportErrors(h,(function(e){return(l||(l=[])).push(e)}),void 0,void 0,(function(e,n,t){return d.push({name:e,text:n,writeByteOrderMark:t})}),a,!1,i).emitResult;if(l)return h.restoreState(),b=R(o,u,h,l,n.DeclarationEmitErrors,\"Declaration file\"),T=g.QueueReferencingProjects,{emitSkipped:!0,diagnostics:m.diagnostics};var _=o.host,y=o.compilerHost,v=n.DeclarationOutputUnchanged,E=r,S=!1,x=e.createDiagnosticCollection(),L=e.createMap();return d.forEach((function(r){var a,i=r.name,l=r.text,u=r.writeByteOrderMark;!S&&c(i)&&(_.fileExists(i)&&o.readFileWithCache(i)===l?a=_.getModifiedTime(i):(v&=~n.DeclarationOutputUnchanged,S=!0)),L.set(f(o,i),i),e.writeFile(t?{writeFile:t}:y,x,i,l,u),void 0!==a&&(E=s(a,E))})),w(x,L,E,S,d.length?d[0].name:e.getFirstProjectOutput(p,!_.useCaseSensitiveFileNames()),v),m}function w(t,r,i,s,c,l){var d=t.getDiagnostics();if(d.length)return b=R(o,u,h,d,n.EmitErrors,\"Emit\"),T=g.QueueReferencingProjects,d;o.writeFileName&&(r.forEach((function(e){return M(o,p,e)})),h&&e.listFiles(h,o.writeFileName));var m=F(o,p,i,e.Diagnostics.Updating_unchanged_output_timestamps_of_project_0,r);return o.diagnostics.delete(u),o.projectStatus.set(u,{type:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:s?a:m,oldestOutputFileName:c}),h&&O(o,u,h),o.projectCompilerOptions=o.baseCompilerOptions,T=g.QueueReferencingProjects,b=l,d}function G(a,s){if(e.Debug.assert(i===t.UpdateBundle),o.options.dry)return Z(o,e.Diagnostics.A_non_dry_build_would_update_output_of_project_0,l),b=n.Success,void(T=g.QueueReferencingProjects);o.options.verbose&&Z(o,e.Diagnostics.Updating_output_of_project_0,l);var c=o.compilerHost;o.projectCompilerOptions=p.options;var h=e.emitUsingBuildInfo(p,c,(function(e){var n=v(o,e.path);return y(o,n,_(o,n))}),s);if(e.isString(h))return Z(o,e.Diagnostics.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1,l,Q(o,h)),T=g.BuildInvalidatedProjectOfBundle,E=k(t.Build,o,l,u,d,p,m);e.Debug.assert(!!h.length);var S=e.createDiagnosticCollection(),x=e.createMap();return h.forEach((function(n){var t=n.name,r=n.text,i=n.writeByteOrderMark;x.set(f(o,t),t),e.writeFile(a?{writeFile:a}:c,S,t,r,i)})),{emitSkipped:!1,diagnostics:w(S,x,r,!1,h[0].name,n.DeclarationOutputUnchanged)}}function V(n,t,r,a){for(;T<=n&&T<g.Done;){var i=T;switch(T){case g.CreateProgram:C();break;case g.SyntaxDiagnostics:N(t);break;case g.SemanticDiagnostics:I(t);break;case g.Emit:P(r,t,a);break;case g.EmitBundle:G(r,a);break;case g.BuildInvalidatedProjectOfBundle:e.Debug.assertDefined(E).done(t),T=g.Done;break;case g.QueueReferencingProjects:B(o,l,u,d,p,m,e.Debug.assertDefined(b)),T++;break;case g.Done:default:e.assertType(T)}e.Debug.assert(T>i)}}}function N(n,t,r){var a=n.options;return!(t.type===e.UpToDateStatusType.OutOfDateWithPrepend&&!a.force)||(0===r.fileNames.length||!!r.errors.length||!e.isIncrementalCompilation(r.options))}function I(n,r,a){if(n.projectPendingBuild.size&&!l(r)){if(n.currentInvalidatedProject)return e.arrayIsEqualTo(n.currentInvalidatedProject.buildOrder,r)?n.currentInvalidatedProject:void 0;for(var i=n.options,o=n.projectPendingBuild,s=0;s<r.length;s++){var c=r[s],u=_(n,c),d=n.projectPendingBuild.get(u);if(void 0!==d){a&&(a=!1,ae(n,r));var p=y(n,c,u);if(p){if(d===e.ConfigFileProgramReloadLevel.Full)z(n,c,u),J(n,c,u,p),X(n,c,u,p);else if(d===e.ConfigFileProgramReloadLevel.Partial){var m=e.getFileNamesFromConfigSpecs(p.configFileSpecs,e.getDirectoryPath(c),p.options,n.parseConfigFileHost);e.updateErrorForNoInputFiles(m,c,p.configFileSpecs,p.errors,e.canJsonReportNoInutFiles(p.raw)),p.fileNames=m.fileNames,X(n,c,u,p)}var f=w(n,p,u);if(ie(n,c,f),!i.force){if(f.type===e.UpToDateStatusType.UpToDate){ne(n,u,p.errors),o.delete(u),i.dry&&Z(n,e.Diagnostics.Project_0_is_up_to_date,c);continue}if(f.type===e.UpToDateStatusType.UpToDateWithUpstreamTypes)return ne(n,u,p.errors),D(n,c,u,p,r)}if(f.type!==e.UpToDateStatusType.UpstreamBlocked){if(f.type!==e.UpToDateStatusType.ContainerOnly)return k(N(n,f,p)?t.Build:t.UpdateBundle,n,c,u,s,p,r);ne(n,u,p.errors),o.delete(u)}else ne(n,u,p.errors),o.delete(u),i.verbose&&Z(n,f.upstreamProjectBlocked?e.Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_was_not_built:e.Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors,c,f.upstreamProjectName)}else te(n,u),o.delete(u)}}}}function M(e,n,t){var r=e.writeFileName;r&&n.options.listEmittedFiles&&r(\"TSFILE: \"+t)}function O(e,n,t){var r=e.host,a=e.watch,i=e.builderPrograms;r.afterProgramEmitAndDiagnostics&&r.afterProgramEmitAndDiagnostics(t),a&&(t.releaseProgram(),i.set(n,t))}function R(n,t,r,a,i,o){return ne(n,t,a),r&&n.writeFileName&&e.listFiles(r,n.writeFileName),n.projectStatus.set(t,{type:e.UpToDateStatusType.Unbuildable,reason:o+\" errors\"}),r&&O(n,t,r),n.projectCompilerOptions=n.baseCompilerOptions,i}function P(n,t,r,a){if(r<(n.host.getModifiedTime(t)||e.missingFileModifiedTime))return{type:e.UpToDateStatusType.OutOfDateWithSelf,outOfDateOutputFileName:a,newerInputFileName:t}}function w(n,t,i){if(void 0===t)return{type:e.UpToDateStatusType.Unbuildable,reason:\"File deleted mid-build\"};var o=n.projectStatus.get(i);if(void 0!==o)return o;var l=function(n,t,i){for(var o=void 0,l=r,u=n.host,d=0,p=t.fileNames;d<p.length;d++){var m=p[d];if(!u.fileExists(m))return{type:e.UpToDateStatusType.Unbuildable,reason:m+\" does not exist\"};var f=u.getModifiedTime(m)||e.missingFileModifiedTime;f>l&&(o=m,l=f)}if(!t.fileNames.length&&!e.canJsonReportNoInutFiles(t.raw))return{type:e.UpToDateStatusType.ContainerOnly};for(var g,v=e.getAllProjectOutputs(t,!u.useCaseSensitiveFileNames()),h=\"(none)\",b=a,E=\"(none)\",T=r,S=r,x=!1,L=0,C=v;L<C.length;L++){var A=C[L];if(!u.fileExists(A)){g=A;break}var D=u.getModifiedTime(A)||e.missingFileModifiedTime;if(D<b&&(b=D,h=A),D<l){x=!0;break}if(D>T&&(T=D,E=A),c(A))S=s(S,u.getModifiedTime(A)||e.missingFileModifiedTime)}var k,N=!1,I=!1;if(t.projectReferences){n.projectStatus.set(i,{type:e.UpToDateStatusType.ComputingUpstream});for(var M=0,O=t.projectReferences;M<O.length;M++){var R=O[M];I=I||!!R.prepend;var F=e.resolveProjectReferencePath(R),G=_(n,F),B=w(n,y(n,F,G),G);if(B.type!==e.UpToDateStatusType.ComputingUpstream&&B.type!==e.UpToDateStatusType.ContainerOnly){if(B.type===e.UpToDateStatusType.Unbuildable||B.type===e.UpToDateStatusType.UpstreamBlocked)return{type:e.UpToDateStatusType.UpstreamBlocked,upstreamProjectName:R.path,upstreamProjectBlocked:B.type===e.UpToDateStatusType.UpstreamBlocked};if(B.type!==e.UpToDateStatusType.UpToDate)return{type:e.UpToDateStatusType.UpstreamOutOfDate,upstreamProjectName:R.path};if(!g){if(B.newestInputFileTime&&B.newestInputFileTime<=b)continue;if(B.newestDeclarationFileContentChangedTime&&B.newestDeclarationFileContentChangedTime<=b){N=!0,k=R.path;continue}return e.Debug.assert(void 0!==h,\"Should have an oldest output filename here\"),{type:e.UpToDateStatusType.OutOfDateWithUpstream,outOfDateOutputFileName:h,newerProjectName:R.path}}}}}if(void 0!==g)return{type:e.UpToDateStatusType.OutputMissing,missingOutputFileName:g};if(x)return{type:e.UpToDateStatusType.OutOfDateWithSelf,outOfDateOutputFileName:h,newerInputFileName:o};var V=P(n,t.options.configFilePath,b,h);if(V)return V;var U=e.forEach(t.options.configFile.extendedSourceFiles||e.emptyArray,(function(e){return P(n,e,b,h)}));if(U)return U;if(!n.buildInfoChecked.has(i)){n.buildInfoChecked.set(i,!0);var j=e.getTsBuildInfoEmitOutputFilePath(t.options);if(j){var K=n.readFileWithCache(j),H=K&&e.getBuildInfo(K);if(H&&(H.bundle||H.program)&&H.version!==e.version)return{type:e.UpToDateStatusType.TsVersionOutputOfDate,version:H.version}}}return I&&N?{type:e.UpToDateStatusType.OutOfDateWithPrepend,outOfDateOutputFileName:h,newerProjectName:k}:{type:N?e.UpToDateStatusType.UpToDateWithUpstreamTypes:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:S,newestInputFileTime:l,newestOutputFileTime:T,newestInputFileName:o,newestOutputFileName:E,oldestOutputFileName:h}}(n,t,i);return n.projectStatus.set(i,l),l}function F(n,t,r,a,i){var o=n.host,l=e.getAllProjectOutputs(t,!o.useCaseSensitiveFileNames());if(!i||l.length!==i.size)for(var u=!!n.options.verbose,d=o.now?o.now():new Date,p=0,m=l;p<m.length;p++){var _=m[p];i&&i.has(f(n,_))||(u&&(u=!1,Z(n,a,t.options.configFilePath)),c(_)&&(r=s(r,o.getModifiedTime(_)||e.missingFileModifiedTime)),o.setModifiedTime(_,d),M(n,t,_))}return r}function G(n,t,a){if(n.options.dry)return Z(n,e.Diagnostics.A_non_dry_build_would_update_timestamps_for_output_of_project_0,t.options.configFilePath);var i=F(n,t,r,e.Diagnostics.Updating_output_timestamps_of_project_0);n.projectStatus.set(a,{type:e.UpToDateStatusType.UpToDate,newestDeclarationFileContentChangedTime:i,oldestOutputFileName:e.getFirstProjectOutput(t,!n.host.useCaseSensitiveFileNames())})}function B(t,r,a,i,o,s,c){if(!(c&n.AnyErrors)&&o.options.composite)for(var l=i+1;l<s.length;l++){var u=s[l],d=_(t,u);if(!t.projectPendingBuild.has(d)){var p=y(t,u,d);if(p&&p.projectReferences)for(var m=0,f=p.projectReferences;m<f.length;m++){var g=f[m];if(_(t,v(t,g.path))===a){var h=t.projectStatus.get(d);if(h)switch(h.type){case e.UpToDateStatusType.UpToDate:if(c&n.DeclarationOutputUnchanged){g.prepend?t.projectStatus.set(d,{type:e.UpToDateStatusType.OutOfDateWithPrepend,outOfDateOutputFileName:h.oldestOutputFileName,newerProjectName:r}):h.type=e.UpToDateStatusType.UpToDateWithUpstreamTypes;break}case e.UpToDateStatusType.UpToDateWithUpstreamTypes:case e.UpToDateStatusType.OutOfDateWithPrepend:c&n.DeclarationOutputUnchanged||t.projectStatus.set(d,{type:e.UpToDateStatusType.OutOfDateWithUpstream,outOfDateOutputFileName:h.type===e.UpToDateStatusType.OutOfDateWithPrepend?h.outOfDateOutputFileName:h.oldestOutputFileName,newerProjectName:r});break;case e.UpToDateStatusType.UpstreamBlocked:_(t,v(t,h.upstreamProjectName))===a&&x(t,d)}L(t,d,e.ConfigFileProgramReloadLevel.None);break}}}}}function V(n,t,r,a){var i=E(n,t,a);if(!i)return e.ExitStatus.InvalidProject_OutputsSkipped;C(n,r);for(var o=!0,s=0;;){var c=I(n,i,o);if(!c)break;o=!1,c.done(r),n.diagnostics.has(c.projectPath)||s++}return S(n),re(n,i),function(e,n){if(!e.watchAllProjectsPending)return;e.watchAllProjectsPending=!1;for(var t=0,r=u(n);t<r.length;t++){var a=r[t],i=_(e,a);z(e,a,i);var o=y(e,a,i);o&&(J(e,a,i,o),X(e,a,i,o))}}(n,i),l(i)?e.ExitStatus.ProjectReferenceCycle_OutputsSkipped:i.some((function(e){return n.diagnostics.has(_(n,e))}))?s?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.DiagnosticsPresent_OutputsSkipped:e.ExitStatus.Success}function U(n,t,r){var a=E(n,t,r);if(!a)return e.ExitStatus.InvalidProject_OutputsSkipped;if(l(a))return ee(n,a.circularDiagnostics),e.ExitStatus.ProjectReferenceCycle_OutputsSkipped;for(var i=n.options,o=n.host,s=i.dry?[]:void 0,c=0,u=a;c<u.length;c++){var d=u[c],p=_(n,d),m=y(n,d,p);if(void 0!==m)for(var f=0,g=e.getAllProjectOutputs(m,!o.useCaseSensitiveFileNames());f<g.length;f++){var v=g[f];o.fileExists(v)&&(s?s.push(v):(o.deleteFile(v),j(n,p,e.ConfigFileProgramReloadLevel.None)))}else te(n,p)}return s&&Z(n,e.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0,s.map((function(e){return\"\\r\\n * \"+e})).join(\"\")),e.ExitStatus.Success}function j(n,t,r){n.host.getParsedCommandLine&&r===e.ConfigFileProgramReloadLevel.Partial&&(r=e.ConfigFileProgramReloadLevel.Full),r===e.ConfigFileProgramReloadLevel.Full&&(n.configFileCache.delete(t),n.buildOrder=void 0),n.needsSummary=!0,x(n,t),L(n,t,r),T(n)}function K(e,n,t){e.reportFileChangeDetected=!0,j(e,n,t),H(e)}function H(e){var n=e.hostWithWatch;n.setTimeout&&n.clearTimeout&&(e.timerToBuildInvalidatedProject&&n.clearTimeout(e.timerToBuildInvalidatedProject),e.timerToBuildInvalidatedProject=n.setTimeout(W,250,e))}function W(n){n.timerToBuildInvalidatedProject=void 0,n.reportFileChangeDetected&&(n.reportFileChangeDetected=!1,n.projectErrorsReported.clear(),$(n,e.Diagnostics.File_change_detected_Starting_incremental_compilation));var t=b(n),r=I(n,t,!1);r&&(r.done(),n.projectPendingBuild.size)?n.watch&&!n.timerToBuildInvalidatedProject&&H(n):(S(n),re(n,t))}function z(n,t,r){n.watch&&!n.allWatchedConfigFiles.has(r)&&n.allWatchedConfigFiles.set(r,n.watchFile(n.hostWithWatch,t,(function(){K(n,r,e.ConfigFileProgramReloadLevel.Full)}),e.PollingInterval.High,\"Config file\",t))}function q(n,t,r){return 0===e.comparePaths(t,r,n.currentDirectory,!n.host.useCaseSensitiveFileNames())}function J(n,t,r,a){n.watch&&e.updateWatchingWildcardDirectories(o(n.allWatchedWildcardDirectories,r),e.createMapFromTemplate(a.configFileSpecs.wildcardDirectories),(function(i,o){return n.watchDirectory(n.hostWithWatch,i,(function(o){var s=f(n,o);s===f(n,i)||!e.hasExtension(s)||e.isSupportedSourceFileName(o,a.options)?!function(n,t,r){if(r.options.noEmit)return!1;if(!e.fileExtensionIs(t,\".d.ts\")&&(e.fileExtensionIs(t,\".ts\")||e.fileExtensionIs(t,\".tsx\")))return!1;var a=r.options.outFile||r.options.out;return!(!a||!q(n,t,a)&&!q(n,t,e.removeFileExtension(a)+\".d.ts\"))||(!(!r.options.declarationDir||!e.containsPath(r.options.declarationDir,t,n.currentDirectory,!n.host.useCaseSensitiveFileNames()))||(!(!r.options.outDir||!e.containsPath(r.options.outDir,t,n.currentDirectory,!n.host.useCaseSensitiveFileNames()))||!e.forEach(r.fileNames,(function(e){return q(n,t,e)}))))}(n,o,a)?K(n,r,e.ConfigFileProgramReloadLevel.Partial):n.writeLog(o+\" is output file\"):n.writeLog(\"Project: \"+t+\" Detected file add/remove of non supported extension: \"+o)}),o,\"Wild card directory\",t)}))}function X(n,t,r,a){n.watch&&e.mutateMap(o(n.allWatchedInputFiles,r),e.arrayToMap(a.fileNames,(function(e){return f(n,e)})),{createNewValue:function(a,i){return n.watchFilePath(n.hostWithWatch,i,(function(){return K(n,r,e.ConfigFileProgramReloadLevel.None)}),e.PollingInterval.Low,a,\"Source file\",t)},onDeleteValue:e.closeFileWatcher})}function Y(n,t,r,a){var i=m(n,t,r,a);return{build:function(e,n){return V(i,e,n)},clean:function(e){return U(i,e)},buildReferences:function(e,n){return V(i,e,n,!0)},cleanReferences:function(e){return U(i,e,!0)},getNextInvalidatedProject:function(e){return C(i,e),I(i,b(i),!1)},getBuildOrder:function(){return b(i)},getUpToDateStatusOfProject:function(e){var n=v(i,e),t=_(i,n);return w(i,y(i,n,t),t)},invalidateProject:function(n,t){return j(i,n,t||e.ConfigFileProgramReloadLevel.None)},buildNextInvalidatedProject:function(){return W(i)},getAllParsedConfigs:function(){return e.arrayFrom(e.mapDefinedIterator(i.configFileCache.values(),(function(e){return g(e)?e:void 0})))}}}function Q(n,t){return e.convertToRelativePath(t,n.currentDirectory,(function(e){return n.getCanonicalFileName(e)}))}function Z(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];n.host.reportSolutionBuilderStatus(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r)))}function $(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];n.hostWithWatch.onWatchStatusChange&&n.hostWithWatch.onWatchStatusChange(e.createCompilerDiagnostic.apply(void 0,__spreadArrays([t],r)),n.host.getNewLine(),n.baseCompilerOptions)}function ee(e,n){var t=e.host;n.forEach((function(e){return t.reportDiagnostic(e)}))}function ne(e,n,t){ee(e,t),e.projectErrorsReported.set(n,!0),t.length&&e.diagnostics.set(n,t)}function te(e,n){ne(e,n,[e.configFileCache.get(n)])}function re(n,t){if(n.needsSummary){n.needsSummary=!1;var r=n.watch||!!n.host.reportErrorSummary,a=n.diagnostics,i=0;l(t)?(ae(n,t.buildOrder),ee(n,t.circularDiagnostics),r&&(i+=e.getErrorCountForSummary(t.circularDiagnostics))):(t.forEach((function(t){var r=_(n,t);n.projectErrorsReported.has(r)||ee(n,a.get(r)||e.emptyArray)})),r&&a.forEach((function(n){return i+=e.getErrorCountForSummary(n)}))),n.watch?$(n,e.getWatchErrorSummaryDiagnosticMessage(i),i):n.host.reportErrorSummary&&n.host.reportErrorSummary(i)}}function ae(n,t){n.options.verbose&&Z(n,e.Diagnostics.Projects_in_this_build_Colon_0,t.map((function(e){return\"\\r\\n    * \"+Q(n,e)})).join(\"\"))}function ie(n,t,r){n.options.verbose&&function(n,t,r){switch(r.type){case e.UpToDateStatusType.OutOfDateWithSelf:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2,Q(n,t),Q(n,r.outOfDateOutputFileName),Q(n,r.newerInputFileName));case e.UpToDateStatusType.OutOfDateWithUpstream:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2,Q(n,t),Q(n,r.outOfDateOutputFileName),Q(n,r.newerProjectName));case e.UpToDateStatusType.OutputMissing:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist,Q(n,t),Q(n,r.missingOutputFileName));case e.UpToDateStatusType.UpToDate:if(void 0!==r.newestInputFileTime)return Z(n,e.Diagnostics.Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2,Q(n,t),Q(n,r.newestInputFileName||\"\"),Q(n,r.oldestOutputFileName||\"\"));break;case e.UpToDateStatusType.OutOfDateWithPrepend:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed,Q(n,t),Q(n,r.newerProjectName));case e.UpToDateStatusType.UpToDateWithUpstreamTypes:return Z(n,e.Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,Q(n,t));case e.UpToDateStatusType.UpstreamOutOfDate:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,Q(n,t),Q(n,r.upstreamProjectName));case e.UpToDateStatusType.UpstreamBlocked:return Z(n,r.upstreamProjectBlocked?e.Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_was_not_built:e.Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_has_errors,Q(n,t),Q(n,r.upstreamProjectName));case e.UpToDateStatusType.Unbuildable:return Z(n,e.Diagnostics.Failed_to_parse_file_0_Colon_1,Q(n,t),r.reason);case e.UpToDateStatusType.TsVersionOutputOfDate:return Z(n,e.Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,Q(n,t),r.version,e.version);case e.UpToDateStatusType.ContainerOnly:case e.UpToDateStatusType.ComputingUpstream:break;default:e.assertType(r)}}(n,t,r)}!function(e){e[e.None=0]=\"None\",e[e.Success=1]=\"Success\",e[e.DeclarationOutputUnchanged=2]=\"DeclarationOutputUnchanged\",e[e.ConfigFileErrors=4]=\"ConfigFileErrors\",e[e.SyntaxErrors=8]=\"SyntaxErrors\",e[e.TypeErrors=16]=\"TypeErrors\",e[e.DeclarationEmitErrors=32]=\"DeclarationEmitErrors\",e[e.EmitErrors=64]=\"EmitErrors\",e[e.AnyErrors=124]=\"AnyErrors\"}(n||(n={})),e.isCircularBuildOrder=l,e.getBuildOrderFromAnyBuildOrder=u,e.createBuilderStatusReporter=d,e.createSolutionBuilderHost=function(n,t,r,a,i){void 0===n&&(n=e.sys);var o=p(n,t,r,a);return o.reportErrorSummary=i,o},e.createSolutionBuilderWithWatchHost=function(n,t,r,a,i){void 0===n&&(n=e.sys);var o=p(n,t,r,a),s=e.createWatchHost(n,i);return e.copyProperties(o,s),o},e.createSolutionBuilder=function(e,n,t){return Y(!1,e,n,t)},e.createSolutionBuilderWithWatch=function(e,n,t){return Y(!0,e,n,t)},function(e){e[e.Build=0]=\"Build\",e[e.UpdateBundle=1]=\"UpdateBundle\",e[e.UpdateOutputFileStamps=2]=\"UpdateOutputFileStamps\"}(t=e.InvalidatedProjectKind||(e.InvalidatedProjectKind={}))}(ts||(ts={})),function(e){!function(n){n.ActionSet=\"action::set\",n.ActionInvalidate=\"action::invalidate\",n.ActionPackageInstalled=\"action::packageInstalled\",n.EventTypesRegistry=\"event::typesRegistry\",n.EventBeginInstallTypes=\"event::beginInstallTypes\",n.EventEndInstallTypes=\"event::endInstallTypes\",n.EventInitializationFailed=\"event::initializationFailed\",function(e){e.GlobalCacheLocation=\"--globalTypingsCacheLocation\",e.LogFile=\"--logFile\",e.EnableTelemetry=\"--enableTelemetry\",e.TypingSafeListLocation=\"--typingSafeListLocation\",e.TypesMapLocation=\"--typesMapLocation\",e.NpmLocation=\"--npmLocation\",e.ValidateDefaultNpmLocation=\"--validateDefaultNpmLocation\"}(n.Arguments||(n.Arguments={})),n.hasArgument=function(n){return e.sys.args.indexOf(n)>=0},n.findArgument=function(n){var t=e.sys.args.indexOf(n);return t>=0&&t<e.sys.args.length-1?e.sys.args[t+1]:void 0},n.nowString=function(){var e=new Date;return e.getHours()+\":\"+e.getMinutes()+\":\"+e.getSeconds()+\".\"+e.getMilliseconds()}}(e.server||(e.server={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){return new e.Version(e.getProperty(t,\"ts\"+e.versionMajorMinor)||e.getProperty(t,\"latest\")).compareTo(n.version)<=0}function r(e){return n.nodeCoreModules.has(e)?\"node\":e}n.isTypingUpToDate=t,n.nodeCoreModuleList=[\"assert\",\"async_hooks\",\"buffer\",\"child_process\",\"cluster\",\"console\",\"constants\",\"crypto\",\"dgram\",\"dns\",\"domain\",\"events\",\"fs\",\"http\",\"https\",\"http2\",\"inspector\",\"net\",\"os\",\"path\",\"perf_hooks\",\"process\",\"punycode\",\"querystring\",\"readline\",\"repl\",\"stream\",\"string_decoder\",\"timers\",\"tls\",\"tty\",\"url\",\"util\",\"v8\",\"vm\",\"zlib\"],n.nodeCoreModules=e.arrayToSet(n.nodeCoreModuleList),n.nonRelativeModuleNameForTypingCache=r,n.loadSafeList=function(n,t){var r=e.readConfigFile(t,(function(e){return n.readFile(e)}));return e.createMapFromTemplate(r.config)},n.loadTypesMap=function(n,t){var r=e.readConfigFile(t,(function(e){return n.readFile(e)}));if(r.config)return e.createMapFromTemplate(r.config.simpleMap)},n.discoverTypings=function(n,a,i,o,s,c,l,u,d){if(!l||!l.enable)return{cachedTypingPaths:[],newTypingNames:[],filesToWatch:[]};var p=e.createMap();i=e.mapDefined(i,(function(n){var t=e.normalizePath(n);if(e.hasJSFileExtension(t))return t}));var m=[];l.include&&S(l.include,\"Explicitly included types\");var f=l.exclude||[],_=e.arrayToSet(i,e.getDirectoryPath);_.set(o,!0),_.forEach((function(n,t){x(e.combinePaths(t,\"package.json\"),m),x(e.combinePaths(t,\"bower.json\"),m),L(e.combinePaths(t,\"bower_components\"),m),L(e.combinePaths(t,\"node_modules\"),m)})),function(n){var t=e.mapDefined(n,(function(n){if(e.hasJSFileExtension(n)){var t=e.removeFileExtension(e.getBaseFileName(n.toLowerCase())),r=e.removeMinAndVersionNumbers(t);return s.get(r)}}));t.length&&S(t,\"Inferred typings from file names\");e.some(n,(function(n){return e.fileExtensionIs(n,\".jsx\")}))&&(a&&a(\"Inferred 'react' typings due to presence of '.jsx' extension\"),T(\"react\"))}(i),u&&S(e.deduplicate(u.map(r),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive),\"Inferred typings from unresolved imports\"),c.forEach((function(e,n){var r=d.get(n);p.has(n)&&void 0===p.get(n)&&void 0!==r&&t(e,r)&&p.set(n,e.typingLocation)}));for(var g=0,y=f;g<y.length;g++){var v=y[g];p.delete(v)&&a&&a(\"Typing for \"+v+\" is in exclude list, will be ignored.\")}var h=[],b=[];p.forEach((function(e,n){void 0!==e?b.push(e):h.push(n)}));var E={cachedTypingPaths:b,newTypingNames:h,filesToWatch:m};return a&&a(\"Result: \"+JSON.stringify(E)),E;function T(e){p.has(e)||p.set(e,void 0)}function S(n,t){a&&a(t+\": \"+JSON.stringify(n)),e.forEach(n,T)}function x(t,r){if(n.fileExists(t)){r.push(t);var a=e.readConfigFile(t,(function(e){return n.readFile(e)})).config;S(e.flatMap([a.dependencies,a.devDependencies,a.optionalDependencies,a.peerDependencies],e.getOwnKeys),\"Typing names in '\"+t+\"' dependencies\")}}function L(t,r){if(r.push(t),n.directoryExists(t)){var i=n.readDirectory(t,[\".json\"],void 0,void 0,2);a&&a(\"Searching for typing names in \"+t+\"; all files: \"+JSON.stringify(i));for(var o=[],s=0,c=i;s<c.length;s++){var l=c[s],u=e.normalizePath(l),d=e.getBaseFileName(u);if(\"package.json\"===d||\"bower.json\"===d){var m=e.readConfigFile(u,(function(e){return n.readFile(e)})).config;if((\"package.json\"!==d||!m._requiredBy||0!==e.filter(m._requiredBy,(function(e){return\"#\"===e[0]||\"/\"===e})).length)&&m.name){var f=m.types||m.typings;if(f){var _=e.getNormalizedAbsolutePath(f,e.getDirectoryPath(u));a&&a(\"    Package '\"+m.name+\"' provides its own types.\"),p.set(m.name,_)}else o.push(m.name)}}}S(o,\"    Found package names\")}}},function(e){e[e.Ok=0]=\"Ok\",e[e.EmptyName=1]=\"EmptyName\",e[e.NameTooLong=2]=\"NameTooLong\",e[e.NameStartsWithDot=3]=\"NameStartsWithDot\",e[e.NameStartsWithUnderscore=4]=\"NameStartsWithUnderscore\",e[e.NameContainsNonURISafeCharacters=5]=\"NameContainsNonURISafeCharacters\"}(n.NameValidationResult||(n.NameValidationResult={}));function a(n,t,r,a){var i=a?\"Scope\":\"Package\";switch(t){case 1:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot be empty\";case 2:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' should be less than 214 characters\";case 3:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot start with '.'\";case 4:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' cannot start with '_'\";case 5:return\"'\"+n+\"':: \"+i+\" name '\"+r+\"' contains non URI safe characters\";case 0:return e.Debug.fail();default:throw e.Debug.assertNever(t)}}n.validatePackageName=function(e){return function e(n,t){if(!n)return 1;if(n.length>214)return 2;if(46===n.charCodeAt(0))return 3;if(95===n.charCodeAt(0))return 4;if(t){var r=/^@([^/]+)\\/([^/]+)$/.exec(n);if(r){var a=e(r[1],!1);if(0!==a)return{name:r[1],isScopeName:!0,result:a};var i=e(r[2],!1);return 0!==i?{name:r[2],isScopeName:!1,result:i}:0}}if(encodeURIComponent(n)!==n)return 5;return 0}(e,!0)},n.renderPackageNameValidationFailure=function(e,n){return\"object\"==typeof e?a(n,e.result,e.name,e.isScopeName):a(n,e,n,!1)}}(e.JsTyping||(e.JsTyping={}))}(ts||(ts={})),function(e){var n,t;function r(e){return{indentSize:4,tabSize:4,newLineCharacter:e||\"\\n\",convertTabsToSpaces:!0,indentStyle:n.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:t.Ignore}}!function(e){var n=function(){function e(e){this.text=e}return e.prototype.getText=function(e,n){return 0===e&&n===this.text.length?this.text:this.text.substring(e,n)},e.prototype.getLength=function(){return this.text.length},e.prototype.getChangeRange=function(){},e}();e.fromString=function(e){return new n(e)}}(e.ScriptSnapshot||(e.ScriptSnapshot={})),function(e){e[e.Dependencies=1]=\"Dependencies\",e[e.DevDependencies=2]=\"DevDependencies\",e[e.PeerDependencies=4]=\"PeerDependencies\",e[e.OptionalDependencies=8]=\"OptionalDependencies\",e[e.All=15]=\"All\"}(e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={})),e.emptyOptions={},function(e){e.none=\"none\",e.definition=\"definition\",e.reference=\"reference\",e.writtenReference=\"writtenReference\"}(e.HighlightSpanKind||(e.HighlightSpanKind={})),function(e){e[e.None=0]=\"None\",e[e.Block=1]=\"Block\",e[e.Smart=2]=\"Smart\"}(n=e.IndentStyle||(e.IndentStyle={})),function(e){e.Ignore=\"ignore\",e.Insert=\"insert\",e.Remove=\"remove\"}(t=e.SemicolonPreference||(e.SemicolonPreference={})),e.getDefaultFormatCodeSettings=r,e.testFormatSettings=r(\"\\n\"),function(e){e[e.aliasName=0]=\"aliasName\",e[e.className=1]=\"className\",e[e.enumName=2]=\"enumName\",e[e.fieldName=3]=\"fieldName\",e[e.interfaceName=4]=\"interfaceName\",e[e.keyword=5]=\"keyword\",e[e.lineBreak=6]=\"lineBreak\",e[e.numericLiteral=7]=\"numericLiteral\",e[e.stringLiteral=8]=\"stringLiteral\",e[e.localName=9]=\"localName\",e[e.methodName=10]=\"methodName\",e[e.moduleName=11]=\"moduleName\",e[e.operator=12]=\"operator\",e[e.parameterName=13]=\"parameterName\",e[e.propertyName=14]=\"propertyName\",e[e.punctuation=15]=\"punctuation\",e[e.space=16]=\"space\",e[e.text=17]=\"text\",e[e.typeParameterName=18]=\"typeParameterName\",e[e.enumMemberName=19]=\"enumMemberName\",e[e.functionName=20]=\"functionName\",e[e.regularExpressionLiteral=21]=\"regularExpressionLiteral\"}(e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={})),function(e){e.Comment=\"comment\",e.Region=\"region\",e.Code=\"code\",e.Imports=\"imports\"}(e.OutliningSpanKind||(e.OutliningSpanKind={})),function(e){e[e.JavaScript=0]=\"JavaScript\",e[e.SourceMap=1]=\"SourceMap\",e[e.Declaration=2]=\"Declaration\"}(e.OutputFileType||(e.OutputFileType={})),function(e){e[e.None=0]=\"None\",e[e.InMultiLineCommentTrivia=1]=\"InMultiLineCommentTrivia\",e[e.InSingleQuoteStringLiteral=2]=\"InSingleQuoteStringLiteral\",e[e.InDoubleQuoteStringLiteral=3]=\"InDoubleQuoteStringLiteral\",e[e.InTemplateHeadOrNoSubstitutionTemplate=4]=\"InTemplateHeadOrNoSubstitutionTemplate\",e[e.InTemplateMiddleOrTail=5]=\"InTemplateMiddleOrTail\",e[e.InTemplateSubstitutionPosition=6]=\"InTemplateSubstitutionPosition\"}(e.EndOfLineState||(e.EndOfLineState={})),function(e){e[e.Punctuation=0]=\"Punctuation\",e[e.Keyword=1]=\"Keyword\",e[e.Operator=2]=\"Operator\",e[e.Comment=3]=\"Comment\",e[e.Whitespace=4]=\"Whitespace\",e[e.Identifier=5]=\"Identifier\",e[e.NumberLiteral=6]=\"NumberLiteral\",e[e.BigIntLiteral=7]=\"BigIntLiteral\",e[e.StringLiteral=8]=\"StringLiteral\",e[e.RegExpLiteral=9]=\"RegExpLiteral\"}(e.TokenClass||(e.TokenClass={})),function(e){e.unknown=\"\",e.warning=\"warning\",e.keyword=\"keyword\",e.scriptElement=\"script\",e.moduleElement=\"module\",e.classElement=\"class\",e.localClassElement=\"local class\",e.interfaceElement=\"interface\",e.typeElement=\"type\",e.enumElement=\"enum\",e.enumMemberElement=\"enum member\",e.variableElement=\"var\",e.localVariableElement=\"local var\",e.functionElement=\"function\",e.localFunctionElement=\"local function\",e.memberFunctionElement=\"method\",e.memberGetAccessorElement=\"getter\",e.memberSetAccessorElement=\"setter\",e.memberVariableElement=\"property\",e.constructorImplementationElement=\"constructor\",e.callSignatureElement=\"call\",e.indexSignatureElement=\"index\",e.constructSignatureElement=\"construct\",e.parameterElement=\"parameter\",e.typeParameterElement=\"type parameter\",e.primitiveType=\"primitive type\",e.label=\"label\",e.alias=\"alias\",e.constElement=\"const\",e.letElement=\"let\",e.directory=\"directory\",e.externalModuleName=\"external module name\",e.jsxAttribute=\"JSX attribute\",e.string=\"string\"}(e.ScriptElementKind||(e.ScriptElementKind={})),function(e){e.none=\"\",e.publicMemberModifier=\"public\",e.privateMemberModifier=\"private\",e.protectedMemberModifier=\"protected\",e.exportedModifier=\"export\",e.ambientModifier=\"declare\",e.staticModifier=\"static\",e.abstractModifier=\"abstract\",e.optionalModifier=\"optional\",e.dtsModifier=\".d.ts\",e.tsModifier=\".ts\",e.tsxModifier=\".tsx\",e.jsModifier=\".js\",e.jsxModifier=\".jsx\",e.jsonModifier=\".json\"}(e.ScriptElementKindModifier||(e.ScriptElementKindModifier={})),function(e){e.comment=\"comment\",e.identifier=\"identifier\",e.keyword=\"keyword\",e.numericLiteral=\"number\",e.bigintLiteral=\"bigint\",e.operator=\"operator\",e.stringLiteral=\"string\",e.whiteSpace=\"whitespace\",e.text=\"text\",e.punctuation=\"punctuation\",e.className=\"class name\",e.enumName=\"enum name\",e.interfaceName=\"interface name\",e.moduleName=\"module name\",e.typeParameterName=\"type parameter name\",e.typeAliasName=\"type alias name\",e.parameterName=\"parameter name\",e.docCommentTagName=\"doc comment tag name\",e.jsxOpenTagName=\"jsx open tag name\",e.jsxCloseTagName=\"jsx close tag name\",e.jsxSelfClosingTagName=\"jsx self closing tag name\",e.jsxAttribute=\"jsx attribute\",e.jsxText=\"jsx text\",e.jsxAttributeStringLiteralValue=\"jsx attribute string literal value\"}(e.ClassificationTypeNames||(e.ClassificationTypeNames={})),function(e){e[e.comment=1]=\"comment\",e[e.identifier=2]=\"identifier\",e[e.keyword=3]=\"keyword\",e[e.numericLiteral=4]=\"numericLiteral\",e[e.operator=5]=\"operator\",e[e.stringLiteral=6]=\"stringLiteral\",e[e.regularExpressionLiteral=7]=\"regularExpressionLiteral\",e[e.whiteSpace=8]=\"whiteSpace\",e[e.text=9]=\"text\",e[e.punctuation=10]=\"punctuation\",e[e.className=11]=\"className\",e[e.enumName=12]=\"enumName\",e[e.interfaceName=13]=\"interfaceName\",e[e.moduleName=14]=\"moduleName\",e[e.typeParameterName=15]=\"typeParameterName\",e[e.typeAliasName=16]=\"typeAliasName\",e[e.parameterName=17]=\"parameterName\",e[e.docCommentTagName=18]=\"docCommentTagName\",e[e.jsxOpenTagName=19]=\"jsxOpenTagName\",e[e.jsxCloseTagName=20]=\"jsxCloseTagName\",e[e.jsxSelfClosingTagName=21]=\"jsxSelfClosingTagName\",e[e.jsxAttribute=22]=\"jsxAttribute\",e[e.jsxText=23]=\"jsxText\",e[e.jsxAttributeStringLiteralValue=24]=\"jsxAttributeStringLiteralValue\",e[e.bigintLiteral=25]=\"bigintLiteral\"}(e.ClassificationType||(e.ClassificationType={}))}(ts||(ts={})),function(e){function n(n){switch(n.kind){case 241:return e.isInJSFile(n)&&e.getJSDocEnumTag(n)?7:1;case 155:case 190:case 158:case 157:case 279:case 280:case 160:case 159:case 161:case 162:case 163:case 243:case 200:case 201:case 278:case 271:return 1;case 154:case 245:case 246:case 172:return 2;case 315:return void 0===n.name?3:2;case 282:case 244:return 3;case 248:return e.isAmbientModule(n)?5:1===e.getModuleInstanceState(n)?5:4;case 247:case 256:case 257:case 252:case 253:case 258:case 259:return 7;case 288:return 5}return 7}function t(n){for(;152===n.parent.kind;)n=n.parent;return e.isInternalModuleImportEqualsDeclaration(n.parent)&&n.parent.moduleReference===n}function r(e,n){var t=a(e);return!!t&&!!t.parent&&n(t.parent)&&t.parent.expression===t}function a(e){return s(e)?e.parent:e}function i(n){return 75===n.kind&&e.isBreakOrContinueStatement(n.parent)&&n.parent.label===n}function o(n){return 75===n.kind&&e.isLabeledStatement(n.parent)&&n.parent.label===n}function s(e){return e&&e.parent&&193===e.parent.kind&&e.parent.name===e}e.scanner=e.createScanner(99,!0),function(e){e[e.None=0]=\"None\",e[e.Value=1]=\"Value\",e[e.Type=2]=\"Type\",e[e.Namespace=4]=\"Namespace\",e[e.All=7]=\"All\"}(e.SemanticMeaning||(e.SemanticMeaning={})),e.getMeaningFromDeclaration=n,e.getMeaningFromLocation=function(r){return 288===r.kind?1:258===r.parent.kind||263===r.parent.kind?7:t(r)?function(n){var t=152===n.kind?n:e.isQualifiedName(n.parent)&&n.parent.right===n?n.parent:void 0;return t&&252===t.parent.kind?7:4}(r):e.isDeclarationName(r)?n(r.parent):function(n){e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent);switch(n.kind){case 103:return!e.isExpressionNode(n);case 182:return!0}switch(n.parent.kind){case 168:return!0;case 187:return!n.parent.isTypeOf;case 215:return!e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)}return!1}(r)?2:function(e){return function(e){var n=e,t=!0;if(152===n.parent.kind){for(;n.parent&&152===n.parent.kind;)n=n.parent;t=n.right===e}return 168===n.parent.kind&&!t}(e)||function(e){var n=e,t=!0;if(193===n.parent.kind){for(;n.parent&&193===n.parent.kind;)n=n.parent;t=n.name===e}if(!t&&215===n.parent.kind&&277===n.parent.parent.kind){var r=n.parent.parent.parent;return 244===r.kind&&112===n.parent.parent.token||245===r.kind&&89===n.parent.parent.token}return!1}(e)}(r)?4:e.isTypeParameterDeclaration(r.parent)?(e.Debug.assert(e.isJSDocTemplateTag(r.parent.parent)),2):e.isLiteralTypeNode(r.parent)?3:1},e.isInRightSideOfInternalImportEqualsDeclaration=t,e.isCallExpressionTarget=function(n){return r(n,e.isCallExpression)},e.isNewExpressionTarget=function(n){return r(n,e.isNewExpression)},e.isCallOrNewExpressionTarget=function(n){return r(n,e.isCallOrNewExpression)},e.climbPastPropertyAccess=a,e.getTargetLabel=function(e,n){for(;e;){if(237===e.kind&&e.label.escapedText===n)return e.label;e=e.parent}},e.hasPropertyAccessExpressionWithName=function(n,t){return!!e.isPropertyAccessExpression(n.expression)&&n.expression.name.text===t},e.isJumpStatementTarget=i,e.isLabelOfLabeledStatement=o,e.isLabelName=function(e){return o(e)||i(e)},e.isTagName=function(n){return e.isJSDocTag(n.parent)&&n.parent.tagName===n},e.isRightSideOfQualifiedName=function(e){return 152===e.parent.kind&&e.parent.right===e},e.isRightSideOfPropertyAccess=s,e.isNameOfModuleDeclaration=function(e){return 248===e.parent.kind&&e.parent.name===e},e.isNameOfFunctionDeclaration=function(n){return 75===n.kind&&e.isFunctionLike(n.parent)&&n.parent.name===n},e.isLiteralNameOfPropertyDeclarationOrIndexAccess=function(n){switch(n.parent.kind){case 158:case 157:case 279:case 282:case 160:case 159:case 162:case 163:case 248:return e.getNameOfDeclaration(n.parent)===n;case 194:return n.parent.argumentExpression===n;case 153:return!0;case 186:return 184===n.parent.parent.kind;default:return!1}},e.isExpressionOfExternalModuleImportEqualsDeclaration=function(n){return e.isExternalModuleImportEqualsDeclaration(n.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(n.parent.parent)===n},e.getContainerNode=function(n){for(e.isJSDocTypeAlias(n)&&(n=n.parent.parent);;){if(!(n=n.parent))return;switch(n.kind){case 288:case 160:case 159:case 243:case 200:case 162:case 163:case 244:case 245:case 247:case 248:return n}}},e.getNodeKind=function n(t){switch(t.kind){case 288:return e.isExternalModule(t)?\"module\":\"script\";case 248:return\"module\";case 244:case 213:return\"class\";case 245:return\"interface\";case 246:case 308:case 315:return\"type\";case 247:return\"enum\";case 241:return s(t);case 190:return s(e.getRootDeclaration(t));case 201:case 243:case 200:return\"function\";case 162:return\"getter\";case 163:return\"setter\";case 160:case 159:return\"method\";case 279:var r=t.initializer;return e.isFunctionLike(r)?\"method\":\"property\";case 158:case 157:case 280:case 281:return\"property\";case 166:return\"index\";case 165:return\"construct\";case 164:return\"call\";case 161:return\"constructor\";case 154:return\"type parameter\";case 282:return\"enum member\";case 155:return e.hasModifier(t,92)?\"property\":\"parameter\";case 252:case 257:case 261:case 255:return\"alias\";case 208:var a=e.getAssignmentDeclarationKind(t),i=t.right;switch(a){case 7:case 8:case 9:case 0:return\"\";case 1:case 2:var o=n(i);return\"\"===o?\"const\":o;case 3:return e.isFunctionExpression(i)?\"method\":\"property\";case 4:return\"property\";case 5:return e.isFunctionExpression(i)?\"method\":\"property\";case 6:return\"local class\";default:return e.assertType(a),\"\"}case 75:return e.isImportClause(t.parent)?\"alias\":\"\";default:return\"\"}function s(n){return e.isVarConst(n)?\"const\":e.isLet(n)?\"let\":\"var\"}},e.isThis=function(n){switch(n.kind){case 103:return!0;case 75:return e.identifierIsThisKeyword(n)&&155===n.parent.kind;default:return!1}};var c=/^\\/\\/\\/\\s*</;function l(e,n){return d(e.pos,e.end,n)}function u(e,n){return e.pos<n&&n<e.end}function d(e,n,t){return e<=t.pos&&n>=t.end}function p(e,n,t,r){return Math.max(e,t)<Math.min(n,r)}function m(n,t,r){var a=n.getChildren(r);if(a.length){var i=e.last(a);if(i.kind===t)return!0;if(26===i.kind&&1!==a.length)return a[a.length-2].kind===t}return!1}function f(e,n,t){return!!_(e,n,t)}function _(n,t,r){return e.find(n.getChildren(r),(function(e){return e.kind===t}))}function g(n){var t=e.find(n.parent.getChildren(),(function(t){return e.isSyntaxList(t)&&l(t,n)}));return e.Debug.assert(!t||e.contains(t.getChildren(),n)),t}function y(e,n,t){return h(e,n,!1,t,!1)}function v(e,n){return h(e,n,!0,void 0,!1)}function h(e,n,t,r,a){var i=e;e:for(;;){for(var o=0,s=i.getChildren(e);o<s.length;o++){var c=s[o];if((t?c.getFullStart():c.getStart(e,!0))>n)break;var l=c.getEnd();if(n<l||n===l&&(1===c.kind||a)){i=c;continue e}if(r&&l===n){var u=b(n,e,c);if(u&&r(u))return u}}return i}}function b(n,t,r,a){var i=function i(o){if(E(o)&&1!==o.kind)return o;for(var s=o.getChildren(t),c=0;c<s.length;c++){var l=s[c];if(n<l.end){if(l.getStart(t,!a)>=n||!N(l,t)||x(l)){var u=S(s,c,t);return u&&T(u,t)}return i(l)}}e.Debug.assert(void 0!==r||288===o.kind||1===o.kind||e.isJSDocCommentContainingNode(o));var d=S(s,s.length,t);return d&&T(d,t)}(r||t);return e.Debug.assert(!(i&&x(i))),i}function E(n){return e.isToken(n)&&!x(n)}function T(e,n){if(E(e))return e;var t=e.getChildren(n),r=S(t,t.length,n);return r&&T(r,n)}function S(n,t,r){for(var a=t-1;a>=0;a--){if(x(n[a]))e.Debug.assert(a>0,\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");else if(N(n[a],r))return n[a]}}function x(n){return e.isJsxText(n)&&n.containsOnlyTriviaWhiteSpaces}function L(e,n,t){for(var r=e.kind,a=0;;){var i=b(e.getFullStart(),t);if(!i)return;if((e=i).kind===n){if(0===a)return e;a--}else e.kind===r&&a++}}function C(e,n,t){return n?e.getNonNullableType():t?e.getNonOptionalType():e}function A(n,t,r){var a=r.getTypeAtLocation(n);return e.isOptionalChain(n.parent)&&(a=C(a,!!n.parent.questionDotToken,!0)),(e.isNewExpression(n.parent)?a.getConstructSignatures():a.getCallSignatures()).filter((function(e){return!!e.typeParameters&&e.typeParameters.length>=t}))}function D(n,t){for(var r=n,a=0,i=0;r;){switch(r.kind){case 29:if((r=b(r.getFullStart(),t))&&28===r.kind&&(r=b(r.getFullStart(),t)),!r||!e.isIdentifier(r))return;if(!a)return e.isDeclarationName(r)?void 0:{called:r,nTypeArguments:i};a--;break;case 49:a=3;break;case 48:a=2;break;case 31:a++;break;case 19:if(!(r=L(r,18,t)))return;break;case 21:if(!(r=L(r,20,t)))return;break;case 23:if(!(r=L(r,22,t)))return;break;case 27:i++;break;case 38:case 75:case 10:case 8:case 9:case 105:case 90:case 107:case 89:case 133:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(r))break;return}r=b(r.getFullStart(),t)}}function k(n,t,r){return e.formatting.getRangeOfEnclosingComment(n,t,void 0,r)}function N(e,n){return 1===e.kind?!!e.jsDoc:0!==e.getWidth(n)}function I(e,n,t){var r=k(e,n,void 0);return!!r&&t===c.test(e.text.substring(r.pos,r.end))}function M(e,n){return{span:e,newText:n}}function O(e){return!!e.useCaseSensitiveFileNames&&e.useCaseSensitiveFileNames()}function R(n,t,r,a){return e.createImportDeclaration(void 0,void 0,n||t?e.createImportClause(n,t&&t.length?e.createNamedImports(t):void 0):void 0,\"string\"==typeof r?P(r,a):r)}function P(n,t){return e.createLiteral(n,0===t)}function w(n,t){return e.isStringDoubleQuoted(n,t)?1:0}function F(n){return\"default\"!==n.escapedName?n.escapedName:e.firstDefined(n.declarations,(function(n){var t=e.getNameOfDeclaration(n);return t&&75===t.kind?t.escapedText:void 0}))}function G(n,t,r,a){var i=e.createMap();return function n(o){if(!(96&o.flags&&e.addToSeen(i,e.getSymbolId(o))))return;return e.firstDefined(o.declarations,(function(i){return e.firstDefined(e.getAllSuperTypeNodes(i),(function(i){var o=r.getTypeAtLocation(i),s=o&&o.symbol&&r.getPropertyOfType(o,t);return o&&s&&(e.firstDefined(r.getRootSymbols(s),a)||n(o.symbol))}))}))}(n)}function B(n,t,r){return e.textSpanContainsPosition(n,t.getStart(r))&&t.getEnd()<=e.textSpanEnd(n)}function V(e,n){return!!e&&!!n&&e.start===n.start&&e.length===n.length}e.getLineStartPositionForPosition=function(n,t){return e.getLineStarts(t)[t.getLineAndCharacterOfPosition(n).line]},e.rangeContainsRange=l,e.rangeContainsRangeExclusive=function(e,n){return u(e,n.pos)&&u(e,n.end)},e.rangeContainsPosition=function(e,n){return e.pos<=n&&n<=e.end},e.rangeContainsPositionExclusive=u,e.startEndContainsRange=d,e.rangeContainsStartEnd=function(e,n,t){return e.pos<=n&&e.end>=t},e.rangeOverlapsWithStartEnd=function(e,n,t){return p(e.pos,e.end,n,t)},e.nodeOverlapsWithStartEnd=function(e,n,t,r){return p(e.getStart(n),e.end,t,r)},e.startEndOverlapsWithStartEnd=p,e.positionBelongsToNode=function(n,t,r){return e.Debug.assert(n.pos<=t),t<n.end||!function n(t,r){if(void 0===t||e.nodeIsMissing(t))return!1;switch(t.kind){case 244:case 245:case 247:case 192:case 188:case 172:case 222:case 249:case 250:case 256:case 260:return m(t,19,r);case 278:return n(t.block,r);case 196:if(!t.arguments)return!0;case 195:case 199:case 181:return m(t,21,r);case 169:case 170:return n(t.type,r);case 161:case 162:case 163:case 243:case 200:case 160:case 159:case 165:case 164:case 201:return t.body?n(t.body,r):t.type?n(t.type,r):f(t,21,r);case 248:return!!t.body&&n(t.body,r);case 226:return t.elseStatement?n(t.elseStatement,r):n(t.thenStatement,r);case 225:return n(t.expression,r)||f(t,26,r);case 191:case 189:case 194:case 153:case 174:return m(t,23,r);case 166:return t.type?n(t.type,r):f(t,23,r);case 275:case 276:return!1;case 229:case 230:case 231:case 228:return n(t.statement,r);case 227:return f(t,110,r)?m(t,21,r):n(t.statement,r);case 171:return n(t.exprName,r);case 203:case 202:case 204:case 211:case 212:return n(t.expression,r);case 197:return n(t.template,r);case 210:var a=e.lastOrUndefined(t.templateSpans);return n(a,r);case 220:return e.nodeIsPresent(t.literal);case 259:case 253:return e.nodeIsPresent(t.moduleSpecifier);case 206:return n(t.operand,r);case 208:return n(t.right,r);case 209:return n(t.whenFalse,r);default:return!0}}(n,r)},e.findListItemInfo=function(n){var t=g(n);if(t){var r=t.getChildren();return{listItemIndex:e.indexOfNode(r,n),list:t}}},e.hasChildOfKind=f,e.findChildOfKind=_,e.findContainingList=g,e.getTouchingPropertyName=function(n,t){return y(n,t,(function(n){return e.isPropertyNameLiteral(n)||e.isKeyword(n.kind)}))},e.getTouchingToken=y,e.getTokenAtPosition=v,e.findTokenOnLeftOfPosition=function(n,t){var r=v(n,t);return e.isToken(r)&&t>r.getStart(n)&&t<r.getEnd()?r:b(t,n)},e.findNextToken=function(n,t,r){return function t(a){if(e.isToken(a)&&a.pos===n.end)return a;return e.firstDefined(a.getChildren(r),(function(e){return(e.pos<=n.pos&&e.end>n.end||e.pos===n.end)&&N(e,r)?t(e):void 0}))}(t)},e.findPrecedingToken=b,e.isInString=function(n,t,r){if(void 0===r&&(r=b(t,n)),r&&e.isStringTextContainingNode(r)){var a=r.getStart(n),i=r.getEnd();if(a<t&&t<i)return!0;if(t===i)return!!r.isUnterminated}return!1},e.isInsideJsxElementOrAttribute=function(e,n){var t=v(e,n);return!!t&&(11===t.kind||(29===t.kind&&11===t.parent.kind||(29===t.kind&&274===t.parent.kind||(!(!t||19!==t.kind||274!==t.parent.kind)||29===t.kind&&267===t.parent.kind))))},e.isInTemplateString=function(n,t){var r=v(n,t);return e.isTemplateLiteralKind(r.kind)&&t>r.getStart(n)},e.isInJSXText=function(n,t){var r=v(n,t);return!!e.isJsxText(r)||(!(18!==r.kind||!e.isJsxExpression(r.parent)||!e.isJsxElement(r.parent.parent))||!(29!==r.kind||!e.isJsxOpeningLikeElement(r.parent)||!e.isJsxElement(r.parent.parent)))},e.findPrecedingMatchingToken=L,e.removeOptionality=C,e.isPossiblyTypeArgumentPosition=function n(t,r,a){var i=D(t,r);return void 0!==i&&(e.isPartOfTypeNode(i.called)||0!==A(i.called,i.nTypeArguments,a).length||n(i.called,r,a))},e.getPossibleGenericSignatures=A,e.getPossibleTypeArgumentsInfo=D,e.isInComment=k,e.hasDocComment=function(n,t){var r=v(n,t);return!!e.findAncestor(r,e.isJSDoc)},e.getNodeModifiers=function(n){var t=e.isDeclaration(n)?e.getCombinedModifierFlags(n):0,r=[];return 8&t&&r.push(\"private\"),16&t&&r.push(\"protected\"),4&t&&r.push(\"public\"),32&t&&r.push(\"static\"),128&t&&r.push(\"abstract\"),1&t&&r.push(\"export\"),8388608&n.flags&&r.push(\"declare\"),r.length>0?r.join(\",\"):\"\"},e.getTypeArgumentOrTypeParameterList=function(n){return 168===n.kind||195===n.kind?n.typeArguments:e.isFunctionLike(n)||244===n.kind||245===n.kind?n.typeParameters:void 0},e.isComment=function(e){return 2===e||3===e},e.isStringOrRegularExpressionOrTemplateLiteral=function(n){return!(10!==n&&13!==n&&!e.isTemplateLiteralKind(n))},e.isPunctuation=function(e){return 18<=e&&e<=74},e.isInsideTemplateLiteral=function(n,t,r){return e.isTemplateLiteralKind(n.kind)&&n.getStart(r)<t&&t<n.end||!!n.isUnterminated&&t===n.end},e.isAccessibilityModifier=function(e){switch(e){case 118:case 116:case 117:return!0}return!1},e.cloneCompilerOptions=function(n){var t=e.clone(n);return e.setConfigFileInOptions(t,n&&n.configFile),t},e.isArrayLiteralOrObjectLiteralDestructuringPattern=function e(n){if(191===n.kind||192===n.kind){if(208===n.parent.kind&&n.parent.left===n&&62===n.parent.operatorToken.kind)return!0;if(231===n.parent.kind&&n.parent.initializer===n)return!0;if(e(279===n.parent.kind?n.parent.parent:n.parent))return!0}return!1},e.isInReferenceComment=function(e,n){return I(e,n,!0)},e.isInNonReferenceComment=function(e,n){return I(e,n,!1)},e.createTextSpanFromNode=function(n,t,r){return e.createTextSpanFromBounds(n.getStart(t),(r||n).getEnd())},e.createTextRangeFromNode=function(n,t){return e.createRange(n.getStart(t),n.end)},e.createTextSpanFromRange=function(n){return e.createTextSpanFromBounds(n.pos,n.end)},e.createTextRangeFromSpan=function(n){return e.createRange(n.start,n.start+n.length)},e.createTextChangeFromStartLength=function(n,t,r){return M(e.createTextSpan(n,t),r)},e.createTextChange=M,e.typeKeywords=[124,150,127,90,133,136,99,139,140,137,142,143,105,109,145,146,147],e.isTypeKeyword=function(n){return e.contains(e.typeKeywords,n)},e.isExternalModuleSymbol=function(e){return!!(1536&e.flags)&&34===e.name.charCodeAt(0)},e.nodeSeenTracker=function(){var n=[];return function(t){var r=e.getNodeId(t);return!n[r]&&(n[r]=!0)}},e.getSnapshotText=function(e){return e.getText(0,e.getLength())},e.repeatString=function(e,n){for(var t=\"\",r=0;r<n;r++)t+=e;return t},e.skipConstraint=function(e){return e.isTypeParameter()&&e.getConstraint()||e},e.getNameFromPropertyName=function(n){return 153===n.kind?e.isStringOrNumericLiteralLike(n.expression)?n.expression.text:void 0:e.getTextOfIdentifierOrLiteral(n)},e.programContainsEs6Modules=function(e){return e.getSourceFiles().some((function(n){return!n.isDeclarationFile&&!e.isSourceFileFromExternalLibrary(n)&&!!n.externalModuleIndicator}))},e.compilerOptionsIndicateEs6Modules=function(e){return!!e.module||e.target>=2||!!e.noEmit},e.hostUsesCaseSensitiveFileNames=O,e.hostGetCanonicalFileName=function(n){return e.createGetCanonicalFileName(O(n))},e.makeImportIfNecessary=function(e,n,t,r){return e||n&&n.length?R(e,n,t,r):void 0},e.makeImport=R,e.makeStringLiteral=P,function(e){e[e.Single=0]=\"Single\",e[e.Double=1]=\"Double\"}(e.QuotePreference||(e.QuotePreference={})),e.quotePreferenceFromString=w,e.getQuotePreference=function(n,t){if(t.quotePreference&&\"auto\"!==t.quotePreference)return\"single\"===t.quotePreference?0:1;var r=n.imports&&e.find(n.imports,e.isStringLiteral);return r?w(r,n):1},e.getQuoteFromPreference=function(n){switch(n){case 0:return\"'\";case 1:return'\"';default:return e.Debug.assertNever(n)}},e.symbolNameNoDefault=function(n){var t=F(n);return void 0===t?void 0:e.unescapeLeadingUnderscores(t)},e.symbolEscapedNameNoDefault=F,e.isObjectBindingElementWithoutPropertyName=function(n){return e.isBindingElement(n)&&e.isObjectBindingPattern(n.parent)&&e.isIdentifier(n.name)&&!n.propertyName},e.getPropertySymbolFromBindingElement=function(e,n){var t=e.getTypeAtLocation(n.parent);return t&&e.getPropertyOfType(t,n.name.text)},e.getPropertySymbolsFromBaseTypes=G,e.isMemberSymbolInBaseType=function(e,n){return G(e.parent,e.name,n,(function(e){return!0}))||!1},e.getParentNodeInSpan=function(n,t,r){if(n)for(;n.parent;){if(e.isSourceFile(n.parent)||!B(r,n.parent,t))return n;n=n.parent}},e.findModifier=function(n,t){return n.modifiers&&e.find(n.modifiers,(function(e){return e.kind===t}))},e.insertImport=function(n,t,r){var a=e.findLast(t.statements,e.isAnyImportSyntax);a?n.insertNodeAfter(t,a,r):n.insertNodeAtTopOfFile(t,r,!0)},e.textSpansEqual=V,e.documentSpansEqual=function(e,n){return e.fileName===n.fileName&&V(e.textSpan,n.textSpan)},e.forEachUnique=function(e,n){if(e)for(var t=0;t<e.length;t++)if(e.indexOf(e[t])===t){var r=n(e[t],t);if(r)return r}}}(ts||(ts={})),function(e){function n(e){return e.declarations&&e.declarations.length>0&&155===e.declarations[0].kind}e.isFirstDeclarationOfSymbolParameter=n;var t=function(){var n,t,i,o,c=10*e.defaultMaximumTruncationLength;p();var l=function(n){return d(n,e.SymbolDisplayPartKind.text)};return{displayParts:function(){var t=n.length&&n[n.length-1].text;return o>c&&t&&\"...\"!==t&&(e.isWhiteSpaceLike(t.charCodeAt(t.length-1))||n.push(a(\" \",e.SymbolDisplayPartKind.space)),n.push(a(\"...\",e.SymbolDisplayPartKind.punctuation))),n},writeKeyword:function(n){return d(n,e.SymbolDisplayPartKind.keyword)},writeOperator:function(n){return d(n,e.SymbolDisplayPartKind.operator)},writePunctuation:function(n){return d(n,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(n){return d(n,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(n){return d(n,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(n){return d(n,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(n){return d(n,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(n){return d(n,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(n){return d(n,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:function(e,t){if(o>c)return;u(),o+=e.length,n.push(r(e,t))},writeLine:function(){if(o>c)return;o+=1,n.push(s()),t=!0},write:l,writeComment:l,getText:function(){return\"\"},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return i},increaseIndent:function(){i++},decreaseIndent:function(){i--},clear:p,trackSymbol:e.noop,reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function u(){if(!(o>c)&&t){var r=e.getIndentString(i);r&&(o+=r.length,n.push(a(r,e.SymbolDisplayPartKind.space))),t=!1}}function d(e,t){o>c||(u(),o+=e.length,n.push(a(e,t)))}function p(){n=[],t=!0,i=0,o=0}}();function r(t,r){return a(t,function(t){var r=t.flags;if(3&r)return n(t)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName;if(4&r)return e.SymbolDisplayPartKind.propertyName;if(32768&r)return e.SymbolDisplayPartKind.propertyName;if(65536&r)return e.SymbolDisplayPartKind.propertyName;if(8&r)return e.SymbolDisplayPartKind.enumMemberName;if(16&r)return e.SymbolDisplayPartKind.functionName;if(32&r)return e.SymbolDisplayPartKind.className;if(64&r)return e.SymbolDisplayPartKind.interfaceName;if(384&r)return e.SymbolDisplayPartKind.enumName;if(1536&r)return e.SymbolDisplayPartKind.moduleName;if(8192&r)return e.SymbolDisplayPartKind.methodName;if(262144&r)return e.SymbolDisplayPartKind.typeParameterName;if(524288&r)return e.SymbolDisplayPartKind.aliasName;if(2097152&r)return e.SymbolDisplayPartKind.aliasName;return e.SymbolDisplayPartKind.text}(r))}function a(n,t){return{text:n,kind:e.SymbolDisplayPartKind[t]}}function i(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.keyword)}function o(n){return a(n,e.SymbolDisplayPartKind.text)}e.symbolPart=r,e.displayPart=a,e.spacePart=function(){return a(\" \",e.SymbolDisplayPartKind.space)},e.keywordPart=i,e.punctuationPart=function(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.punctuation)},e.operatorPart=function(n){return a(e.tokenToString(n),e.SymbolDisplayPartKind.operator)},e.textOrKeywordPart=function(n){var t=e.stringToToken(n);return void 0===t?o(n):i(t)},e.textPart=o;function s(){return a(\"\\n\",e.SymbolDisplayPartKind.lineBreak)}function c(e){try{return e(t),t.displayParts()}finally{t.clear()}}function l(n,t){return e.ensureScriptKind(n,t&&t.getScriptKind&&t.getScriptKind(n))}function u(e){return 0!=(33554432&e.flags)}function d(e){return 0!=(2097152&e.flags)}function p(e,n){void 0===n&&(n=!0);var t=e&&f(e);return t&&!n&&_(t),t}function m(n,t,r,a,i){var o;if(void 0===t&&(t=!0),r&&a&&e.isBindingElement(n)&&e.isIdentifier(n.name)&&e.isObjectBindingPattern(n.parent))(c=(s=a.getSymbolAtLocation(n.name))&&r.get(String(e.getSymbolId(s))))&&c.text!==(n.name||n.propertyName).getText()&&(o=e.createBindingElement(n.dotDotDotToken,n.propertyName||n.name,c,n.initializer));else if(r&&a&&e.isIdentifier(n)){var s,c;(c=(s=a.getSymbolAtLocation(n))&&r.get(String(e.getSymbolId(s))))&&(o=e.createIdentifier(c.text))}return o||(o=f(n,r,a,i)),o&&!t&&_(o),i&&o&&i(n,o),o}function f(n,t,r,a){var i=t||r||a?e.visitEachChild(n,(function(e){return m(e,!0,t,r,a)}),e.nullTransformationContext):e.visitEachChild(n,p,e.nullTransformationContext);if(i===n){var o=e.getSynthesizedClone(n);return e.isStringLiteral(o)?o.textSourceNode=n:e.isNumericLiteral(o)&&(o.numericLiteralFlags=n.numericLiteralFlags),e.setTextRange(o,n)}return i.parent=void 0,i}function _(e){g(e),y(e)}function g(e){v(e,512,h)}function y(n){v(n,1024,e.getLastChild)}function v(n,t,r){e.addEmitFlags(n,t);var a=r(n);a&&v(a,t,r)}function h(e){return e.forEachChild((function(e){return e}))}function b(e,n,t,r,a){return function(i,o,s,c){3===s?(i+=2,o-=2):i+=2,a(e,t||s,n.text.slice(i,o),void 0!==r?r:c)}}function E(n,t){if(e.startsWith(n,t))return 0;var r=n.indexOf(\" \"+t);return-1===r&&(r=n.indexOf(\".\"+t)),-1===r&&(r=n.indexOf('\"'+t)),-1===r?-1:r+1}function T(e){switch(e){case 36:case 34:case 37:case 35:return!0;default:return!1}}function S(e,n){return n.getTypeAtLocation(e.parent.parent.expression)}function x(e){return 164===e||165===e||166===e||157===e||159===e}function L(e){return 243===e||161===e||160===e||162===e||163===e}function C(e){return 248===e}function A(e){return 224===e||225===e||227===e||232===e||233===e||234===e||238===e||240===e||158===e||246===e||253===e||252===e||259===e||251===e||258===e}function D(e,n){return N(e,e.fileExists,n)}function k(e){try{return e()}catch(e){return}}function N(e,n){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];return k((function(){return n&&n.apply(e,t)}))}function I(n,t){if(t.readFile){var r=t.readFile(n);if(r){var a=function(e){try{return JSON.parse(e)}catch(e){return}}(r);if(!a)return!1;for(var i={},o=0,s=[\"dependencies\",\"devDependencies\",\"optionalDependencies\",\"peerDependencies\"];o<s.length;o++){var c=s[o],l=a[c];if(l){var u=e.createMap();for(var d in l)u.set(d,l[d]);i[c]=u}}var p=[[1,i.dependencies],[2,i.devDependencies],[8,i.optionalDependencies],[4,i.peerDependencies]];return __assign(__assign({},i),{fileName:n,get:m,has:function(e,n){return!!m(e,n)}})}}function m(e,n){void 0===n&&(n=15);for(var t=0,r=p;t<r.length;t++){var a=r[t],i=a[0],o=a[1];if(o&&n&i){var s=o.get(e);if(void 0!==s)return s}}}}e.getNewLineOrDefaultFromHost=function(e,n){return n&&n.newLineCharacter||e.getNewLine&&e.getNewLine()||\"\\r\\n\"},e.lineBreakPart=s,e.mapToDisplayParts=c,e.typeToDisplayParts=function(e,n,t,r){return void 0===r&&(r=0),c((function(a){e.writeType(n,t,17408|r,a)}))},e.symbolToDisplayParts=function(e,n,t,r,a){return void 0===a&&(a=0),c((function(i){e.writeSymbol(n,t,r,8|a,i)}))},e.signatureToDisplayParts=function(e,n,t,r){return void 0===r&&(r=0),r|=25632,c((function(a){e.writeSignature(n,t,r,void 0,a)}))},e.isImportOrExportSpecifierName=function(n){return!!n.parent&&e.isImportOrExportSpecifier(n.parent)&&n.parent.propertyName===n},e.scriptKindIs=function(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];var i=l(n,t);return e.some(r,(function(e){return e===i}))},e.getScriptKind=l,e.getSymbolTarget=function(n,t){for(var r=n;d(r)||u(r)&&r.target;)r=u(r)&&r.target?r.target:e.skipAlias(r,t);return r},e.getUniqueSymbolId=function(n,t){return e.getSymbolId(e.skipAlias(n,t))},e.getFirstNonSpaceCharacterPosition=function(n,t){for(;e.isWhiteSpaceLike(n.charCodeAt(t));)t+=1;return t},e.getPrecedingNonSpaceCharacterPosition=function(n,t){for(;t>-1&&e.isWhiteSpaceSingleLine(n.charCodeAt(t));)t-=1;return t+1},e.getSynthesizedDeepClone=p,e.getSynthesizedDeepCloneWithRenames=m,e.getSynthesizedDeepClones=function(n,t){return void 0===t&&(t=!0),n&&e.createNodeArray(n.map((function(e){return p(e,t)})),n.hasTrailingComma)},e.suppressLeadingAndTrailingTrivia=_,e.suppressLeadingTrivia=g,e.suppressTrailingTrivia=y,e.getUniqueName=function(n,t){for(var r=n,a=1;!e.isFileLevelUniqueName(t,r);a++)r=n+\"_\"+a;return r},e.getRenameLocation=function(n,t,r,a){for(var i=0,o=-1,s=0,c=n;s<c.length;s++){var l=c[s],u=l.fileName,d=l.textChanges;e.Debug.assert(u===t);for(var p=0,m=d;p<m.length;p++){var f=m[p],_=f.span,g=f.newText,y=E(g,r);if(-1!==y&&(o=_.start+i+y,!a))return o;i+=g.length-_.length}}return e.Debug.assert(a),e.Debug.assert(o>=0),o},e.copyLeadingComments=function(n,t,r,a,i){e.forEachLeadingCommentRange(r.text,n.pos,b(t,r,a,i,e.addSyntheticLeadingComment))},e.copyTrailingComments=function(n,t,r,a,i){e.forEachTrailingCommentRange(r.text,n.end,b(t,r,a,i,e.addSyntheticTrailingComment))},e.copyTrailingAsLeadingComments=function(n,t,r,a,i){e.forEachTrailingCommentRange(r.text,n.pos,b(t,r,a,i,e.addSyntheticLeadingComment))},e.getContextualTypeFromParent=function(e,n){var t=e.parent;switch(t.kind){case 196:return n.getContextualType(t);case 208:var r=t,a=r.left,i=r.operatorToken,o=r.right;return T(i.kind)?n.getTypeAtLocation(e===o?a:o):n.getContextualType(e);case 275:return t.expression===e?S(t,n):void 0;default:return n.getContextualType(e)}},e.quote=function(n,t){if(/^\\d+$/.test(n))return n;var r=t.quotePreference||\"auto\",a=JSON.stringify(n);switch(r){case\"auto\":case\"double\":return a;case\"single\":return\"'\"+e.stripQuotes(a).replace(\"'\",\"\\\\'\").replace('\\\\\"','\"')+\"'\";default:return e.Debug.assertNever(r)}},e.isEqualityOperatorKind=T,e.isStringLiteralOrTemplate=function(e){switch(e.kind){case 10:case 14:case 210:case 197:return!0;default:return!1}},e.hasIndexSignature=function(e){return!!e.getStringIndexType()||!!e.getNumberIndexType()},e.getSwitchedType=S,e.getTypeNodeIfAccessible=function(e,n,t,r){var a=t.getTypeChecker(),i=!0,o=function(){i=!1},s=a.typeToTypeNode(e,n,void 0,{trackSymbol:function(e,n,t){i=i&&0===a.isSymbolAccessible(e,n,t,!1).accessibility},reportInaccessibleThisError:o,reportPrivateInBaseOfClassExpression:o,reportInaccessibleUniqueSymbolError:o,moduleResolverHost:{readFile:r.readFile,fileExists:r.fileExists,directoryExists:r.directoryExists,getSourceFiles:t.getSourceFiles,getCurrentDirectory:t.getCurrentDirectory,getCommonSourceDirectory:t.getCommonSourceDirectory}});return i?s:void 0},e.syntaxRequiresTrailingCommaOrSemicolonOrASI=x,e.syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI=L,e.syntaxRequiresTrailingModuleBlockOrSemicolonOrASI=C,e.syntaxRequiresTrailingSemicolonOrASI=A,e.syntaxMayBeASICandidate=e.or(x,L,C,A),e.isASICandidate=function(n,t){var r=n.getLastToken(t);if(r&&26===r.kind)return!1;if(x(n.kind)){if(r&&27===r.kind)return!1}else if(C(n.kind)){if((a=e.last(n.getChildren(t)))&&e.isModuleBlock(a))return!1}else if(L(n.kind)){var a;if((a=e.last(n.getChildren(t)))&&e.isFunctionBlock(a))return!1}else if(!A(n.kind))return!1;if(227===n.kind)return!0;var i=e.findAncestor(n,(function(e){return!e.parent})),o=e.findNextToken(n,i,t);return!o||19===o.kind||t.getLineAndCharacterOfPosition(n.getEnd()).line!==t.getLineAndCharacterOfPosition(o.getStart(t)).line},e.probablyUsesSemicolons=function(n){var t=0,r=0;return e.forEachChild(n,(function a(i){if(A(i.kind)){var o=i.getLastToken(n);o&&26===o.kind?t++:r++}return t+r>=5||e.forEachChild(i,a)})),0===t&&r<=1||t/r>.2},e.tryGetDirectories=function(e,n){return N(e,e.getDirectories,n)||[]},e.tryReadDirectory=function(n,t,r,a,i){return N(n,n.readDirectory,t,r,a,i)||e.emptyArray},e.tryFileExists=D,e.tryDirectoryExists=function(n,t){return k((function(){return e.directoryProbablyExists(t,n)}))||!1},e.tryAndIgnoreErrors=k,e.tryIOAndConsumeErrors=N,e.findPackageJsons=function(n,t,r){var a=[];return e.forEachAncestorDirectory(n,(function(n){if(n===r)return!0;var i=e.combinePaths(n,\"package.json\");D(t,i)&&a.push(i)})),a},e.findPackageJson=function(n,t){var r;return e.forEachAncestorDirectory(n,(function(n){return\"node_modules\"===n||(!!(r=e.findConfigFile(n,(function(e){return D(t,e)}),\"package.json\"))||void 0)})),r},e.getPackageJsonsVisibleToFile=function(n,t){if(!t.fileExists)return[];var r=[];return e.forEachAncestorDirectory(e.getDirectoryPath(n),(function(n){var a=e.combinePaths(n,\"package.json\");if(t.fileExists(a)){var i=I(a,t);i&&r.push(i)}})),r},e.createPackageJsonInfo=I,e.consumesNodeCoreModules=function(n){return e.some(n.imports,(function(n){var t=n.text;return e.JsTyping.nodeCoreModules.has(t)}))},e.isInsideNodeModules=function(n){return e.contains(e.getPathComponents(n),\"node_modules\")}}(ts||(ts={})),function(e){e.createClassifier=function(){var o=e.createScanner(99,!1);function s(a,s,c){var l=0,u=0,d=[],p=function(n){switch(n){case 3:return{prefix:'\"\\\\\\n'};case 2:return{prefix:\"'\\\\\\n\"};case 1:return{prefix:\"/*\\n\"};case 4:return{prefix:\"`\\n\"};case 5:return{prefix:\"}\\n\",pushTemplate:!0};case 6:return{prefix:\"\",pushTemplate:!0};case 0:return{prefix:\"\"};default:return e.Debug.assertNever(n)}}(s),m=p.prefix,f=p.pushTemplate;a=m+a;var _=m.length;f&&d.push(15),o.setText(a);var g=0,y=[],v=0;do{l=o.scan(),e.isTrivia(l)||(E(),u=l);var h=o.getTextPos();if(r(o.getTokenPos(),h,_,i(l),y),h>=a.length){var b=t(o,l,e.lastOrUndefined(d));void 0!==b&&(g=b)}}while(1!==l);function E(){switch(l){case 43:case 67:n[u]||13!==o.reScanSlashToken()||(l=13);break;case 29:75===u&&v++;break;case 31:v>0&&v--;break;case 124:case 142:case 139:case 127:case 143:v>0&&!c&&(l=75);break;case 15:d.push(l);break;case 18:d.length>0&&d.push(l);break;case 19:if(d.length>0){var t=e.lastOrUndefined(d);15===t?17===(l=o.reScanTemplateToken())?d.pop():e.Debug.assertEqual(l,16,\"Should have been a template middle.\"):(e.Debug.assertEqual(t,18,\"Should have been an open brace\"),d.pop())}break;default:if(!e.isKeyword(l))break;24===u?l=75:e.isKeyword(u)&&e.isKeyword(l)&&!function(n,t){if(!e.isAccessibilityModifier(n))return!0;switch(t){case 130:case 141:case 128:case 119:return!0;default:return!1}}(u,l)&&(l=75)}}return{endOfLineState:g,spans:y}}return{getClassificationsForLine:function(n,t,r){return function(n,t){for(var r=[],i=n.spans,o=0,s=0;s<i.length;s+=3){var c=i[s],l=i[s+1],u=i[s+2];if(o>=0){var d=c-o;d>0&&r.push({length:d,classification:e.TokenClass.Whitespace})}r.push({length:l,classification:a(u)}),o=c+l}var p=t.length-o;p>0&&r.push({length:p,classification:e.TokenClass.Whitespace});return{entries:r,finalLexState:n.endOfLineState}}(s(n,t,r),n)},getEncodedLexicalClassifications:s}};var n=e.arrayToNumericMap([75,10,8,9,13,103,45,46,21,23,19,105,90],(function(e){return e}),(function(){return!0}));function t(n,t,r){switch(t){case 10:if(!n.isUnterminated())return;for(var a=n.getTokenText(),i=a.length-1,o=0;92===a.charCodeAt(i-o);)o++;if(0==(1&o))return;return 34===a.charCodeAt(0)?3:2;case 3:return n.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(t)){if(!n.isUnterminated())return;switch(t){case 17:return 5;case 14:return 4;default:return e.Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\"+t)}}return 15===r?6:void 0}}function r(e,n,t,r,a){if(8!==r){0===e&&t>0&&(e+=t);var i=n-e;i>0&&a.push(e-t,i,r)}}function a(n){switch(n){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function i(n){if(e.isKeyword(n))return 3;if(function(e){switch(e){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 97:case 96:case 122:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 73:case 72:case 74:case 69:case 70:case 71:case 63:case 64:case 65:case 67:case 68:case 62:case 27:case 60:return!0;default:return!1}}(n)||function(e){switch(e){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}(n))return 5;if(n>=18&&n<=74)return 10;switch(n){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 75:default:return e.isTemplateLiteralKind(n)?6:2}}function o(e,n){switch(n){case 248:case 244:case 245:case 243:e.throwIfCancellationRequested()}}function s(n,t,r,a,i){var s=[];return r.forEachChild((function c(l){if(l&&e.textSpanIntersectsWith(i,l.pos,l.getFullWidth())){if(o(t,l.kind),e.isIdentifier(l)&&!e.nodeIsMissing(l)&&a.has(l.escapedText)){var u=n.getSymbolAtLocation(l),d=u&&function n(t,r,a){var i=t.getFlags();return 0==(2885600&i)?void 0:32&i?11:384&i?12:524288&i?16:1536&i?4&r||1&r&&function(n){return e.some(n.declarations,(function(n){return e.isModuleDeclaration(n)&&1===e.getModuleInstanceState(n)}))}(t)?14:void 0:2097152&i?n(a.getAliasedSymbol(t),r,a):2&r?64&i?13:262144&i?15:void 0:void 0}(u,e.getMeaningFromLocation(l),n);d&&function(n,t,r){var a=t-n;e.Debug.assert(a>0,\"Classification had non-positive length of \"+a),s.push(n),s.push(a),s.push(r)}(l.getStart(r),l.getEnd(),d)}l.forEachChild(c)}})),{spans:s,endOfLineState:0}}function c(e){switch(e){case 1:return\"comment\";case 2:return\"identifier\";case 3:return\"keyword\";case 4:return\"number\";case 25:return\"bigint\";case 5:return\"operator\";case 6:return\"string\";case 8:return\"whitespace\";case 9:return\"text\";case 10:return\"punctuation\";case 11:return\"class name\";case 12:return\"enum name\";case 13:return\"interface name\";case 14:return\"module name\";case 15:return\"type parameter name\";case 16:return\"type alias name\";case 17:return\"parameter name\";case 18:return\"doc comment tag name\";case 19:return\"jsx open tag name\";case 20:return\"jsx close tag name\";case 21:return\"jsx self closing tag name\";case 22:return\"jsx attribute\";case 23:return\"jsx text\";case 24:return\"jsx attribute string literal value\";default:return}}function l(n){e.Debug.assert(n.spans.length%3==0);for(var t=n.spans,r=[],a=0;a<t.length;a+=3)r.push({textSpan:e.createTextSpan(t[a],t[a+1]),classificationType:c(t[a+2])});return r}function u(n,t,r){var a=r.start,i=r.length,s=e.createScanner(99,!1,t.languageVariant,t.text),c=e.createScanner(99,!1,t.languageVariant,t.text),l=[];return v(t),{spans:l,endOfLineState:0};function u(e,n,t){l.push(e),l.push(n),l.push(t)}function d(n,r,a,i){if(3===r){var o=e.parseIsolatedJSDocComment(t.text,a,i);if(o&&o.jsDoc)return o.jsDoc.parent=n,void function(e){var n=e.pos;if(e.tags)for(var t=0,r=e.tags;t<r.length;t++){var a=r[t];switch(a.pos!==n&&p(n,a.pos-n),u(a.pos,1,10),u(a.tagName.pos,a.tagName.end-a.tagName.pos,18),n=a.tagName.end,a.kind){case 310:i(a);break;case 314:m(a),n=a.end;break;case 313:case 311:v(a.typeExpression),n=a.end}}n!==e.end&&p(n,e.end-n);return;function i(e){e.isNameFirst&&(p(n,e.name.pos-n),u(e.name.pos,e.name.end-e.name.pos,17),n=e.name.end),e.typeExpression&&(p(n,e.typeExpression.pos-n),v(e.typeExpression),n=e.typeExpression.end),e.isNameFirst||(p(n,e.name.pos-n),u(e.name.pos,e.name.end-e.name.pos,17),n=e.name.end)}}(o.jsDoc)}else if(2===r&&function(n,r){var a=/(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/gim,i=t.text.substr(n,r),o=/^(\\/\\/\\/\\s*)(<)(?:(\\S+)((?:[^/]|\\/[^>])*)(\\/>)?)?/im.exec(i);if(!o)return!1;if(!(o[3]&&o[3]in e.commentPragmas))return!1;var s=n;p(s,o[1].length),u(s+=o[1].length,o[2].length,10),u(s+=o[2].length,o[3].length,21),s+=o[3].length;var c=o[4],l=s;for(;;){var d=a.exec(c);if(!d)break;var m=s+d.index;m>l&&(p(l,m-l),l=m),u(l,d[1].length,22),l+=d[1].length,d[2].length&&(p(l,d[2].length),l+=d[2].length),u(l,d[3].length,5),l+=d[3].length,d[4].length&&(p(l,d[4].length),l+=d[4].length),u(l,d[5].length,24),l+=d[5].length}(s+=o[4].length)>l&&p(l,s-l);o[5]&&(u(s,o[5].length,10),s+=o[5].length);var f=n+r;s<f&&p(s,f-s);return!0}(a,i))return;p(a,i)}function p(e,n){u(e,n,1)}function m(e){for(var n=0,t=e.getChildren();n<t.length;n++){v(t[n])}}function f(n,t,r){var a;for(a=t;a<r&&!e.isLineBreak(n.charCodeAt(a));a++);for(u(t,a-t,1),c.setTextPos(a);c.getTextPos()<r;)_()}function _(){var e=c.getTextPos(),n=c.scan(),t=c.getTextPos(),r=y(n);r&&u(e,t-e,r)}function g(n){if(e.isJSDoc(n))return!0;if(e.nodeIsMissing(n))return!0;var r=function(e){switch(e.parent&&e.parent.kind){case 266:if(e.parent.tagName===e)return 19;break;case 267:if(e.parent.tagName===e)return 20;break;case 265:if(e.parent.tagName===e)return 21;break;case 271:if(e.parent.name===e)return 22}return}(n);if(!e.isToken(n)&&11!==n.kind&&void 0===r)return!1;var a=11===n.kind?n.pos:function(n){for(s.setTextPos(n.pos);;){var r=s.getTextPos();if(!e.couldStartTrivia(t.text,r))return r;var a=s.scan(),i=s.getTextPos(),o=i-r;if(!e.isTrivia(a))return r;switch(a){case 4:case 5:continue;case 2:case 3:d(n,a,r,o),s.setTextPos(i);continue;case 7:var c=t.text,l=c.charCodeAt(r);if(60===l||62===l){u(r,o,1);continue}e.Debug.assert(124===l||61===l),f(c,r,i);break;case 6:break;default:e.Debug.assertNever(a)}}}(n),i=n.end-a;if(e.Debug.assert(i>=0),i>0){var o=r||y(n.kind,n);o&&u(a,i,o)}return!0}function y(n,t){if(e.isKeyword(n))return 3;if((29===n||31===n)&&t&&e.getTypeArgumentOrTypeParameterList(t.parent))return 10;if(e.isPunctuation(n)){if(t){var r=t.parent;if(62===n&&(241===r.kind||158===r.kind||155===r.kind||271===r.kind))return 5;if(208===r.kind||206===r.kind||207===r.kind||209===r.kind)return 5}return 10}if(8===n)return 4;if(9===n)return 25;if(10===n)return t&&271===t.parent.kind?24:6;if(13===n)return 6;if(e.isTemplateLiteralKind(n))return 6;if(11===n)return 23;if(75===n){if(t)switch(t.parent.kind){case 244:return t.parent.name===t?11:void 0;case 154:return t.parent.name===t?15:void 0;case 245:return t.parent.name===t?13:void 0;case 247:return t.parent.name===t?12:void 0;case 248:return t.parent.name===t?14:void 0;case 155:return t.parent.name===t?e.isThisIdentifier(t)?3:17:void 0}return 2}}function v(r){if(r&&e.decodedTextSpanIntersectsWith(a,i,r.pos,r.getFullWidth())){o(n,r.kind);for(var s=0,c=r.getChildren(t);s<c.length;s++){var l=c[s];g(l)||v(l)}}}}e.getSemanticClassifications=function(e,n,t,r,a){return l(s(e,n,t,r,a))},e.getEncodedSemanticClassifications=s,e.getSyntacticClassifications=function(e,n,t){return l(u(e,n,t))},e.getEncodedSyntacticClassifications=u}(ts||(ts={})),function(e){!function(n){!function(t){function r(e){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!0,entries:e.map((function(e){var t=e.name,r=e.kind,i=e.span;return{name:t,kind:r,kindModifiers:a(e.extension),sortText:n.SortText.LocationPriority,replacementSpan:i}}))}}function a(n){switch(n){case\".d.ts\":return\".d.ts\";case\".js\":return\".js\";case\".json\":return\".json\";case\".jsx\":return\".jsx\";case\".ts\":return\".ts\";case\".tsx\":return\".tsx\";case\".tsbuildinfo\":return e.Debug.fail(\"Extension .tsbuildinfo is unsupported.\");case void 0:return\"\";default:return e.Debug.assertNever(n)}}var i;function o(n,t,r,a,i,o){var l,u,d=t.parent;switch(d.kind){case 186:switch(d.parent.kind){case 168:return{kind:2,types:c(a.getTypeArgumentConstraint(d)),isNewIdentifier:!1};case 184:return s(a.getTypeFromTypeNode(d.parent.objectType));case 187:return{kind:0,paths:p(n,t,i,o,a)};case 177:if(!e.isTypeReferenceNode(d.parent.parent))return;var m=(l=d.parent,u=d,e.mapDefined(l.types,(function(n){return n!==u&&e.isLiteralTypeNode(n)&&e.isStringLiteral(n.literal)?n.literal.text:void 0})));return{kind:2,types:c(a.getTypeArgumentConstraint(d.parent)).filter((function(n){return!e.contains(m,n.value)})),isNewIdentifier:!1};default:return}case 279:return e.isObjectLiteralExpression(d.parent)&&d.name===t?s(a.getContextualType(d.parent)):v();case 194:var f=d,_=f.expression,g=f.argumentExpression;return t===g?s(a.getTypeAtLocation(_)):void 0;case 195:case 196:if(!e.isRequireCall(d,!1)&&!e.isImportCall(d)){var y=e.SignatureHelp.getArgumentInfoForCompletions(t,r,n);return y?function(n,t){var r=!1,a=e.createMap(),i=[];return t.getResolvedSignature(n.invocation,i,n.argumentCount),{kind:2,types:e.flatMap(i,(function(i){if(e.signatureHasRestParameter(i)||!(n.argumentCount>i.parameters.length)){var o=t.getParameterType(i,n.argumentIndex);return r=r||!!(4&o.flags),c(o,a)}})),isNewIdentifier:r}}(y,a):v()}case 253:case 259:case 263:return{kind:0,paths:p(n,t,i,o,a)};default:return v()}function v(){return{kind:2,types:c(e.getContextualTypeFromParent(t,a)),isNewIdentifier:!1}}}function s(n){return n&&{kind:1,symbols:n.getApparentProperties(),hasIndexSignature:e.hasIndexSignature(n)}}function c(n,t){return void 0===t&&(t=e.createMap()),n?(n=e.skipConstraint(n)).isUnion()?e.flatMap(n.types,(function(e){return c(e,t)})):!n.isStringLiteral()||1024&n.flags||!e.addToSeen(t,n.value)?e.emptyArray:[n]:e.emptyArray}function l(e,n,t){return{name:e,kind:n,extension:t}}function u(e){return l(e,\"directory\",void 0)}function d(n,t,r){var a=function(n,t){var r=Math.max(n.lastIndexOf(e.directorySeparator),n.lastIndexOf(\"\\\\\")),a=-1!==r?r+1:0,i=n.length-a;return 0===i||e.isIdentifierText(n.substr(a,i),99)?void 0:e.createTextSpan(t+a,i)}(n,t);return r.map((function(e){return{name:e.name,kind:e.kind,extension:e.extension,span:a}}))}function p(n,t,r,a,i){return d(t.text,t.getStart(n)+1,function(n,t,r,a,i){var o=e.normalizeSlashes(t.text),s=n.path,c=e.getDirectoryPath(s);return function(e){if(e&&e.length>=2&&46===e.charCodeAt(0)){var n=e.length>=3&&46===e.charCodeAt(1)?2:1,t=e.charCodeAt(n);return 47===t||92===t}return!1}(o)||!r.baseUrl&&(e.isRootedDiskPath(o)||e.isUrl(o))?function(n,t,r,a,i){var o=m(r);return r.rootDirs?function(n,t,r,a,i,o,s){var c=i.project||o.getCurrentDirectory(),l=!(o.useCaseSensitiveFileNames&&o.useCaseSensitiveFileNames()),u=function(n,t,r,a){n=n.map((function(n){return e.normalizePath(e.isRootedDiskPath(n)?n:e.combinePaths(t,n))}));var i=e.firstDefined(n,(function(n){return e.containsPath(n,r,t,a)?r.substr(n.length):void 0}));return e.deduplicate(__spreadArrays(n.map((function(n){return e.combinePaths(n,i)})),[r]),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}(n,c,r,l);return e.flatMap(u,(function(e){return _(t,e,a,o,s)}))}(r.rootDirs,n,t,o,r,a,i):_(n,t,o,a,i)}(o,c,r,a,s):function(n,t,r,a,i){var o=r.baseUrl,s=r.paths,c=[],u=m(r);if(o){var d=r.project||a.getCurrentDirectory(),p=e.normalizePath(e.combinePaths(d,o));_(n,p,u,a,void 0,c),s&&g(c,n,p,u.extensions,s,a)}for(var f=y(n),v=0,b=function(n,t,r){var a=r.getAmbientModules().map((function(n){return e.stripQuotes(n.name)})).filter((function(t){return e.startsWith(t,n)}));if(void 0!==t){var i=e.ensureTrailingDirectorySeparator(t);return a.map((function(n){return e.removePrefix(n,i)}))}return a}(n,f,i);v<b.length;v++){var T=b[v];c.push(l(T,\"external module name\",void 0))}if(h(a,r,t,f,u,c),e.getEmitModuleResolutionKind(r)===e.ModuleResolutionKind.NodeJs){var S=!1;if(void 0===f)for(var x=function(e){c.some((function(n){return n.name===e}))||(S=!0,c.push(l(e,\"external module name\",void 0)))},L=0,C=function(n,t){if(!n.readFile||!n.fileExists)return e.emptyArray;for(var r=[],a=0,i=e.findPackageJsons(t,n);a<i.length;a++)for(var o=i[a],s=e.readJson(o,n),c=0,l=E;c<l.length;c++){var u=l[c],d=s[u];if(d)for(var p in d)d.hasOwnProperty(p)&&!e.startsWith(p,\"@types/\")&&r.push(p)}return r}(a,t);L<C.length;L++){var A=C[L];x(A)}S||e.forEachAncestorDirectory(t,(function(t){var r=e.combinePaths(t,\"node_modules\");e.tryDirectoryExists(a,r)&&_(n,r,u,a,void 0,c)}))}return c}(o,c,r,a,i)}(n,t,r,a,i))}function m(e,n){return void 0===n&&(n=!1),{extensions:f(e),includeExtensions:n}}function f(n){var t=e.getSupportedExtensions(n);return n.resolveJsonModule&&e.getEmitModuleResolutionKind(n)===e.ModuleResolutionKind.NodeJs?t.concat(\".json\"):t}function _(n,t,r,a,i,o){var s=r.extensions,c=r.includeExtensions;void 0===o&&(o=[]),void 0===n&&(n=\"\"),n=e.normalizeSlashes(n),e.hasTrailingDirectorySeparator(n)||(n=e.getDirectoryPath(n)),\"\"===n&&(n=\".\"+e.directorySeparator),n=e.ensureTrailingDirectorySeparator(n);var d=e.resolvePath(t,n),p=e.hasTrailingDirectorySeparator(d)?d:e.getDirectoryPath(d),m=!(a.useCaseSensitiveFileNames&&a.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(a,p))return o;var f=e.tryReadDirectory(a,p,s,void 0,[\"./*\"]);if(f){for(var _=e.createMap(),y=0,v=f;y<v.length;y++){var h=v[y];if(h=e.normalizePath(h),!i||0!==e.comparePaths(h,i,t,m)){var b=c||e.fileExtensionIs(h,\".json\")?e.getBaseFileName(h):e.removeFileExtension(e.getBaseFileName(h));_.set(b,e.tryGetExtensionFromPath(h))}}_.forEach((function(e,n){o.push(l(n,\"script\",e))}))}var E=e.tryGetDirectories(a,p);if(E)for(var T=0,S=E;T<S.length;T++){var x=S[T],L=e.getBaseFileName(e.normalizePath(x));\"@types\"!==L&&o.push(u(L))}var C=e.findPackageJson(p,a);if(C){var A=e.readJson(C,a).typesVersions;if(\"object\"==typeof A){var D=e.getPackageJsonTypesVersionsPaths(A),k=D&&D.paths,N=d.slice(e.ensureTrailingDirectorySeparator(p).length);k&&g(o,N,p,s,k,a)}}return o}function g(n,t,r,a,i,o){for(var s in i)if(e.hasProperty(i,s)){var c=i[s];if(c)for(var u=function(e,t,r){n.some((function(n){return n.name===e}))||n.push(l(e,t,r))},d=0,p=v(s,c,t,r,a,o);d<p.length;d++){var m=p[d];u(m.name,m.kind,m.extension)}}}function y(n){return T(n)?e.hasTrailingDirectorySeparator(n)?n:e.getDirectoryPath(n):void 0}function v(n,t,r,a,i,o){if(!e.endsWith(n,\"*\"))return e.stringContains(n,\"*\")?e.emptyArray:d(n);var s=n.slice(0,n.length-1),c=e.tryRemovePrefix(r,s);return void 0===c?d(s):e.flatMap(t,(function(n){return function(n,t,r,a,i){if(!i.readDirectory)return;var o=e.hasZeroOrOneAsteriskCharacter(r)?e.tryParsePattern(r):void 0;if(!o)return;var s=e.resolvePath(o.prefix),c=e.hasTrailingDirectorySeparator(o.prefix)?s:e.getDirectoryPath(s),d=e.hasTrailingDirectorySeparator(o.prefix)?\"\":e.getBaseFileName(s),p=T(n),m=p?e.hasTrailingDirectorySeparator(n)?n:e.getDirectoryPath(n):void 0,f=p?e.combinePaths(c,d+m):c,_=e.normalizePath(o.suffix),g=e.normalizePath(e.combinePaths(t,f)),y=p?g:e.ensureTrailingDirectorySeparator(g)+d,v=_?\"**/*\":\"./*\",h=e.mapDefined(e.tryReadDirectory(i,g,a,void 0,[v]),(function(n){var t=e.tryGetExtensionFromPath(n),r=E(n);return void 0===r?void 0:l(e.removeFileExtension(r),\"script\",t)})),b=e.mapDefined(e.tryGetDirectories(i,g).map((function(n){return e.combinePaths(g,n)})),(function(e){var n=E(e);return void 0===n?void 0:u(n)}));return __spreadArrays(h,b);function E(n){var t,r,a,i=(t=e.normalizePath(n),r=y,a=_,e.startsWith(t,r)&&e.endsWith(t,a)?t.slice(r.length,t.length-a.length):void 0);return void 0===i?void 0:function(n){return n[0]===e.directorySeparator?n.slice(1):n}(i)}}(c,a,n,i,o)}));function d(n){return e.startsWith(n,r)?[u(n)]:e.emptyArray}}function h(n,t,r,a,i,o){void 0===o&&(o=[]);for(var s=e.createMap(),c=0,u=e.tryAndIgnoreErrors((function(){return e.getEffectiveTypeRoots(t,n)}))||e.emptyArray;c<u.length;c++){f(u[c])}for(var d=0,p=e.findPackageJsons(r,n);d<p.length;d++){var m=p[d];f(e.combinePaths(e.getDirectoryPath(m),\"node_modules/@types\"))}return o;function f(r){if(e.tryDirectoryExists(n,r))for(var c=0,u=e.tryGetDirectories(n,r);c<u.length;c++){var d=u[c],p=e.unmangleScopedPackageName(d);if(!t.types||e.contains(t.types,p))if(void 0===a)s.has(p)||(o.push(l(p,\"external module name\",void 0)),s.set(p,!0));else{var m=e.combinePaths(r,d),f=e.tryRemoveDirectoryPrefix(a,p,e.hostGetCanonicalFileName(n));void 0!==f&&_(f,m,i,n,void 0,o)}}}}t.getStringLiteralCompletions=function(t,a,i,s,c,l,u,p){if(e.isInReferenceComment(t,a)){var f=function(n,t,r,a){var i=e.getTokenAtPosition(n,t),o=e.getLeadingCommentRanges(n.text,i.pos),s=o&&e.find(o,(function(e){return t>=e.pos&&t<=e.end}));if(!s)return;var c=n.text.slice(s.pos,t),l=b.exec(c);if(!l)return;var u=l[1],p=l[2],f=l[3],g=e.getDirectoryPath(n.path),v=\"path\"===p?_(f,g,m(r,!0),a,n.path):\"types\"===p?h(a,r,g,y(f),m(r)):e.Debug.fail();return d(f,s.pos+u.length,v)}(t,a,c,l);return f&&r(f)}if(e.isInString(t,a,i))return i&&e.isStringLiteralLike(i)?function(t,a,i,o,s){if(void 0===t)return;switch(t.kind){case 0:return r(t.paths);case 1:var c=[];return n.getCompletionEntriesFromSymbols(t.symbols,c,a,a,i,99,o,4,s),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:t.hasIndexSignature,entries:c};case 2:c=t.types.map((function(e){return{name:e.value,kindModifiers:\"\",kind:\"string\",sortText:\"0\"}}));return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:t.isNewIdentifier,entries:c};default:return e.Debug.assertNever(t)}}(o(t,i,a,s,c,l),t,s,u,p):void 0},t.getStringLiteralCompletionDetails=function(t,r,i,s,c,l,u,d){if(s&&e.isStringLiteralLike(s)){var p=o(r,s,i,c,l,u);return p&&function(t,r,i,o,s,c){switch(i.kind){case 0:return(l=e.find(i.paths,(function(e){return e.name===t})))&&n.createCompletionDetails(t,a(l.extension),l.kind,[e.textPart(t)]);case 1:var l;return(l=e.find(i.symbols,(function(e){return e.name===t})))&&n.createCompletionDetailsForSymbol(l,s,o,r,c);case 2:return e.find(i.types,(function(e){return e.value===t}))?n.createCompletionDetails(t,\"\",\"type\",[e.textPart(t)]):void 0;default:return e.Debug.assertNever(i)}}(t,s,p,r,c,d)}},function(e){e[e.Paths=0]=\"Paths\",e[e.Properties=1]=\"Properties\",e[e.Types=2]=\"Types\"}(i||(i={}));var b=/^(\\/\\/\\/\\s*<reference\\s+(path|types)\\s*=\\s*(?:'|\"))([^\\3\"]*)$/,E=[\"dependencies\",\"devDependencies\",\"peerDependencies\",\"optionalDependencies\"];function T(n){return e.stringContains(n,e.directorySeparator)}}(n.StringCompletions||(n.StringCompletions={}))}(e.Completions||(e.Completions={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i;function o(e){return!!(4&e.kind)}function s(e){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:e}}function c(n,t){return e.isSourceFileJS(n)&&!e.isCheckJsEnabledForFile(n,t)}function l(e){switch(e){case 0:case 3:case 2:return!0;default:return!1}}!function(e){e.LocationPriority=\"0\",e.OptionalMember=\"1\",e.MemberDeclaredBySpreadAssignment=\"2\",e.SuggestedClassMembers=\"3\",e.GlobalsOrKeywords=\"4\",e.AutoImportSuggestions=\"5\",e.JavascriptIdentifiers=\"6\"}(t=n.SortText||(n.SortText={})),function(e){e[e.ThisType=1]=\"ThisType\",e[e.SymbolMember=2]=\"SymbolMember\",e[e.Export=4]=\"Export\",e[e.Promise=8]=\"Promise\",e[e.Nullable=16]=\"Nullable\",e[e.SymbolMemberNoExport=2]=\"SymbolMemberNoExport\",e[e.SymbolMemberExport=6]=\"SymbolMemberExport\"}(r||(r={})),function(e){e[e.None=0]=\"None\",e[e.All=1]=\"All\",e[e.ClassElementKeywords=2]=\"ClassElementKeywords\",e[e.InterfaceElementKeywords=3]=\"InterfaceElementKeywords\",e[e.ConstructorParameterKeywords=4]=\"ConstructorParameterKeywords\",e[e.FunctionLikeBodyKeywords=5]=\"FunctionLikeBodyKeywords\",e[e.TypeAssertionKeywords=6]=\"TypeAssertionKeywords\",e[e.TypeKeywords=7]=\"TypeKeywords\",e[e.Last=7]=\"Last\"}(a||(a={})),function(e){e[e.Continue=0]=\"Continue\",e[e.Success=1]=\"Success\",e[e.Fail=2]=\"Fail\"}(i||(i={})),n.createImportSuggestionsForFileCache=function(){var n,t,r;return{isEmpty:function(){return!n},clear:function(){n=void 0,r=void 0,t=void 0},set:function(e,a,i){n=a,r=e,i&&(t=i)},get:function(a,i,o){if(a===r)return o?t===o?n:void 0:(e.forEach(n,(function(e){e.symbol.declarations&&(e.symbol=i.getMergedSymbol(e.origin.isDefaultExport&&e.symbol.declarations[0].localSymbol||e.symbol.declarations[0].symbol)),e.origin.moduleSymbol.declarations&&(e.origin.moduleSymbol=i.getMergedSymbol(e.origin.moduleSymbol.declarations[0].symbol))})),n)}}},n.getCompletionsAtPosition=function(r,a,i,o,u,d,m){var f=a.getTypeChecker(),_=a.getCompilerOptions(),g=e.findPrecedingToken(u,o);if(!m||e.isInString(o,u,g)||function(n,t,r,a){switch(t){case\".\":case\"@\":return!0;case'\"':case\"'\":case\"`\":return!!r&&e.isStringLiteralOrTemplate(r)&&a===r.getStart(n)+1;case\"<\":return!!r&&29===r.kind&&(!e.isBinaryExpression(r.parent)||w(r.parent));case\"/\":return!!r&&(e.isStringLiteralLike(r)?!!e.tryGetImportFromModuleSpecifier(r):43===r.kind&&e.isJsxClosingElement(r.parent));default:return e.Debug.assertNever(t)}}(o,m,g,u)){var v=n.StringCompletions.getStringLiteralCompletions(o,u,g,f,_,r,i,d);if(v)return v;if(g&&e.isBreakOrContinueStatement(g.parent)&&(76===g.kind||81===g.kind||75===g.kind))return function(n){var r=function(n){var r=[],a=e.createMap(),i=n;for(;i&&!e.isFunctionLike(i);){if(e.isLabeledStatement(i)){var o=i.label.text;a.has(o)||(a.set(o,!0),r.push({name:o,kindModifiers:\"\",kind:\"label\",sortText:t.LocationPriority}))}i=i.parent}return r}(n);if(r.length)return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:r}}(g.parent);var h=x(a,i,o,c(o,_),u,d,void 0,r);if(h)switch(h.kind){case 0:return function(n,r,a,i,o,s){var u=o.symbols,d=o.completionKind,m=o.isInSnippetScope,f=o.isNewIdentifierLocation,_=o.location,g=o.propertyAccessToConvert,v=o.keywordFilters,h=o.literals,b=o.symbolToOriginInfoMap,E=o.recommendedCompletion,T=o.isJsxInitializer,S=o.insideJsDocTagTypeExpression,x=o.symbolToSortTextMap;if(_&&_.parent&&e.isJsxClosingElement(_.parent)){var L=_.parent.parent.openingElement.tagName,A=!!e.findChildOfKind(_.parent,31,n);return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,entries:[{name:L.getFullText(n)+(A?\"\":\">\"),kind:\"class\",kindModifiers:void 0,sortText:t.LocationPriority}]}}var k=[];if(c(n,a)){var N=y(u,k,_,n,r,a.target,i,d,s,g,T,E,b,x);!function(n,r,a,i,o){e.getNameTable(n).forEach((function(n,s){if(n!==r){var c=e.unescapeLeadingUnderscores(s);e.addToSeen(a,c)&&e.isIdentifierText(c,i)&&o.push({name:c,kind:\"warning\",kindModifiers:\"\",sortText:t.JavascriptIdentifiers})}}))}(n,_.pos,N,a.target,k)}else{if(!(f||u&&0!==u.length||0!==v))return;y(u,k,_,n,r,a.target,i,d,s,g,T,E,b,x)}if(0!==v)for(var I=e.arrayToSet(k,(function(e){return e.name})),M=0,O=function(n,t){if(!t)return D(n);var r=n+7+1;return C[r]||(C[r]=D(n).filter((function(n){return!function(e){switch(e){case 121:case 124:case 150:case 127:case 129:case 87:case 149:case 112:case 131:case 113:case 132:case 133:case 134:case 135:case 136:case 139:case 140:case 116:case 117:case 118:case 137:case 142:case 143:case 144:case 146:case 147:return!0;default:return!1}}(e.stringToToken(n.name))})))}(v,!S&&e.isSourceFileJS(n));M<O.length;M++){var R=O[M];I.has(R.name)||k.push(R)}for(var P=0,w=h;P<w.length;P++){var F=w[P];k.push(p(F))}return{isGlobalCompletion:m,isMemberCompletion:l(d),isNewIdentifierLocation:f,entries:k}}(o,f,_,i,h,d);case 1:return s(e.JsDoc.getJSDocTagNameCompletions());case 2:return s(e.JsDoc.getJSDocTagCompletions());case 3:return s(e.JsDoc.getJSDocParameterNameCompletions(h.tag));default:return e.Debug.assertNever(h)}}};var u,d=function(n){return\"object\"==typeof n?e.pseudoBigIntToString(n)+\"n\":JSON.stringify(n)};function p(e){return{name:d(e),kind:\"string\",kindModifiers:\"\",sortText:t.LocationPriority}}function m(n,t,r,a,i,s,c,l,u,d,p,m){var y,v,h=l&&function(e){return!!(16&e.kind)}(l),b=l&&function(e){return!!(2&e.kind)}(l)||c;if(l&&function(e){return!!(1&e.kind)}(l))y=c?\"this\"+(h?\"?.\":\"\")+\"[\"+e.quote(s,m)+\"]\":\"this\"+(h?\"?.\":\".\")+s;else if((b||h)&&d){y=b?c?\"[\"+e.quote(s,m)+\"]\":\"[\"+s+\"]\":s,(h||d.questionDotToken)&&(y=\"?.\"+y);var E=e.findChildOfKind(d,24,a)||e.findChildOfKind(d,28,a);if(!E)return;var T=e.startsWith(s,d.name.text)?d.name.end:E.end;v=e.createTextSpanFromBounds(E.getStart(a),T)}if(p&&(void 0===y&&(y=s),y=\"{\"+y+\"}\",\"boolean\"!=typeof p&&(v=e.createTextSpanFromNode(p,a))),l&&function(e){return!!(8&e.kind)}(l)&&d){void 0===y&&(y=s);var S=\"(await \"+d.expression.getText()+\")\";y=c?\"\"+S+y:S+(h?\"?.\":\".\")+y,v=e.createTextSpanFromBounds(d.getStart(a),d.end)}if(void 0===y||m.includeCompletionsWithInsertText)return{name:s,kind:e.SymbolDisplay.getSymbolKind(i,n,r),kindModifiers:e.SymbolDisplay.getSymbolModifiers(n),sortText:t,source:g(l),hasAction:_(!!l&&o(l)),isRecommended:_(f(n,u,i)),insertText:y,replacementSpan:v}}function f(e,n,t){return e===n||!!(1048576&e.flags)&&t.getExportSymbolOfSymbol(e)===n}function _(e){return!!e||void 0}function g(n){return n&&o(n)?e.stripQuotes(n.moduleSymbol.name):void 0}function y(n,r,a,i,o,s,c,l,u,d,p,f,_,g){for(var y=e.timestamp(),v=e.createMap(),h=0,b=n;h<b.length;h++){var E=b[h],T=_?_[e.getSymbolId(E)]:void 0,S=L(E,s,T,l);if(S){var x=S.name,C=S.needsConvertPropertyAccess;if(!v.has(x)){var A=m(E,g&&g[e.getSymbolId(E)]||t.LocationPriority,a,i,o,x,C,T,f,d,p,u);A&&(T||void 0===E.parent&&!e.some(E.declarations,(function(e){return e.getSourceFile()===a.getSourceFile()}))||v.set(x,!0),r.push(A))}}}return c(\"getCompletionsAtPosition: getCompletionEntriesFromSymbols: \"+(e.timestamp()-y)),v}function v(n,t,r,a,i,o){var s=n.getCompilerOptions(),l=x(n,t,r,c(r,s),a,{includeCompletionsForModuleExports:!0,includeCompletionsWithInsertText:!0},i,o);if(!l)return{type:\"none\"};if(0!==l.kind)return{type:\"request\",request:l};var u=l.symbols,p=l.literals,m=l.location,f=l.completionKind,_=l.symbolToOriginInfoMap,y=l.previousToken,v=l.isJsxInitializer,h=e.find(p,(function(e){return d(e)===i.name}));return void 0!==h?{type:\"literal\",literal:h}:e.firstDefined(u,(function(n){var t=_[e.getSymbolId(n)],r=L(n,s.target,t,f);return r&&r.name===i.name&&g(t)===i.source?{type:\"symbol\",symbol:n,location:m,symbolToOriginInfoMap:_,previousToken:y,isJsxInitializer:v}:void 0}))||{type:\"none\"}}function h(n,t,r){return t&&o(t)&&(t.isDefaultExport&&\"default\"===n.escapedName||\"export=\"===n.escapedName)?e.firstDefined(n.declarations,(function(n){return e.isExportAssignment(n)&&e.isIdentifier(n.expression)?n.expression.text:void 0}))||e.codefix.moduleSymbolToValidIdentifier(t.moduleSymbol,r):n.name}function b(n,t,r){return T(n,\"\",t,[e.displayPart(n,r)])}function E(n,t,r,a,i,o,s){var c=t.runWithCancellationToken(i,(function(t){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(t,n,r,a,a,7)})),l=c.displayParts,u=c.documentation,d=c.symbolKind,p=c.tags;return T(n.name,e.SymbolDisplay.getSymbolModifiers(n),d,l,u,p,o,s)}function T(e,n,t,r,a,i,o,s){return{name:e,kindModifiers:n,kind:t,displayParts:r,documentation:a,tags:i,codeActions:o,source:s}}function S(n,t,r){var a=r.getAccessibleSymbolChain(n,t,67108863,!1);return a?e.first(a):n.parent&&(function(e){return e.declarations.some((function(e){return 288===e.kind}))}(n.parent)?n:S(n.parent,t,r))}function x(n,r,a,i,o,s,c,l){var u=n.getTypeChecker(),d=e.timestamp(),p=e.getTokenAtPosition(a,o);r(\"getCompletionData: Get current token: \"+(e.timestamp()-d)),d=e.timestamp();var m=e.isInComment(a,o,p);r(\"getCompletionData: Is inside comment: \"+(e.timestamp()-d));var f=!1,_=!1;if(m){if(e.hasDocComment(a,o)){if(64===a.text.charCodeAt(o-1))return{kind:1};var g=e.getLineStartPositionForPosition(o,a);if(!a.text.substring(g,o).match(/[^\\*|\\s|(/\\*\\*)]/))return{kind:2}}var y=function(n,t){var r=e.findAncestor(n,e.isJSDoc);return r&&r.tags&&(e.rangeContainsPosition(r,t)?e.findLast(r.tags,(function(e){return e.pos<t})):void 0)}(p,o);if(y){if(y.tagName.pos<=o&&o<=y.tagName.end)return{kind:1};if(function(e){switch(e.kind){case 310:case 316:case 311:case 313:case 315:return!0;default:return!1}}(y)&&y.typeExpression&&292===y.typeExpression.kind&&((p=e.getTokenAtPosition(a,o))&&(e.isDeclarationName(p)||316===p.parent.kind&&p.parent.name===p)||(f=le(y.typeExpression))),e.isJSDocParameterTag(y)&&(e.nodeIsMissing(y.name)||y.name.pos<=o&&o<=y.name.end))return{kind:3,tag:y}}if(!f)return void r(\"Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.\")}d=e.timestamp();var v=e.findPrecedingToken(o,a,void 0);r(\"getCompletionData: Get previous token 1: \"+(e.timestamp()-d));var b=v;if(b&&o<=b.end&&(e.isIdentifier(b)||e.isKeyword(b.kind))){var E=e.timestamp();b=e.findPrecedingToken(b.getFullStart(),a,void 0),r(\"getCompletionData: Get previous token 2: \"+(e.timestamp()-E))}var T,x=p,L=!1,C=!1,A=!1,D=!1,I=!1,F=e.getTouchingPropertyName(a,o);if(b){if(function(n){var t=e.timestamp(),a=function(n){return(e.isRegularExpressionLiteral(n)||e.isStringTextContainingNode(n))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(n)),o)||o===n.end&&(!!n.isUnterminated||e.isRegularExpressionLiteral(n)))}(n)||function(n){var t=n.parent,r=t.kind;switch(n.kind){case 27:return 241===r||242===r||224===r||247===r||ie(r)||245===r||189===r||246===r||e.isClassLike(t)&&!!t.typeParameters&&t.typeParameters.end>=n.pos;case 24:return 189===r;case 58:return 190===r;case 22:return 189===r;case 20:return 278===r||ie(r);case 18:return 247===r;case 29:return 244===r||213===r||245===r||246===r||e.isFunctionLikeKind(r);case 119:return 158===r&&!e.isClassLike(t.parent);case 25:return 155===r||!!t.parent&&189===t.parent.kind;case 118:case 116:case 117:return 155===r&&!e.isConstructorDeclaration(t.parent);case 122:return 257===r||261===r||255===r;case 130:case 141:return!P(n);case 79:case 87:case 113:case 93:case 108:case 95:case 114:case 80:case 120:case 144:return!0;case 41:return e.isFunctionLike(n.parent)&&!e.isMethodDeclaration(n.parent)}if(N(M(n))&&P(n))return!1;if(ae(n)&&(!e.isIdentifier(n)||e.isParameterPropertyModifier(M(n))||le(n)))return!1;switch(M(n)){case 121:case 79:case 80:case 129:case 87:case 93:case 113:case 114:case 116:case 117:case 118:case 119:case 108:case 120:return!0;case 125:return e.isPropertyDeclaration(n.parent)}return e.isDeclarationName(n)&&!e.isJsxAttribute(n.parent)&&!(e.isClassLike(n.parent)&&(n!==v||o>v.end))}(n)||function(e){if(8===e.kind){var n=e.getFullText();return\".\"===n.charAt(n.length-1)}return!1}(n)||function(e){if(11===e.kind)return!0;if(31===e.kind&&e.parent){if(266===e.parent.kind)return!0;if(267===e.parent.kind||265===e.parent.kind)return!!e.parent.parent&&264===e.parent.parent.kind}return!1}(n);return r(\"getCompletionsAtPosition: isCompletionListBlocker: \"+(e.timestamp()-t)),a}(b))return void r(\"Returning an empty list because completion was requested in an invalid position.\");var G=b.parent;if(24===b.kind||28===b.kind)switch(L=24===b.kind,C=28===b.kind,G.kind){case 193:if((x=(T=G).expression).end===b.pos&&e.isCallExpression(x)&&x.getChildCount(a)&&21!==e.last(x.getChildren(a)).kind)return;break;case 152:x=G.left;break;case 248:x=G.name;break;case 187:case 218:x=G;break;default:return}else if(1===a.languageVariant){if(G&&193===G.kind&&(b=G,G=G.parent),p.parent===F)switch(p.kind){case 31:264!==p.parent.kind&&266!==p.parent.kind||(F=p);break;case 43:265===p.parent.kind&&(F=p)}switch(G.kind){case 267:43===b.kind&&(D=!0,F=b);break;case 208:if(!w(G))break;case 265:case 264:case 266:29===b.kind&&(A=!0,F=b);break;case 271:switch(v.kind){case 62:I=!0;break;case 75:G!==v.parent&&!G.initializer&&e.findChildOfKind(G,62,a)&&(I=v)}}}}var B=e.timestamp(),V=5,U=!1,j=0,K=[],H=[],W=[],z=l.getImportSuggestionsCache&&l.getImportSuggestionsCache();if(L||C)!function(){V=2;var n=e.isLiteralImportTypeNode(x),t=f||n&&!x.isTypeOf||e.isPartOfTypeNode(x.parent)||e.isPossiblyTypeArgumentPosition(b,a,u),r=e.isInRightSideOfInternalImportEqualsDeclaration(x);if(e.isEntityName(x)||n){var i=e.isModuleDeclaration(x.parent);i&&(U=!0);var o=u.getSymbolAtLocation(x);if(o&&1920&(o=e.skipAlias(o,u)).flags){for(var c=e.Debug.assertEachDefined(u.getExportsOfModule(o),\"getExportsOfModule() should all be defined\"),l=function(e){return u.isValidPropertyAccess(n?x:x.parent,e.name)},d=function(e){return re(e)},p=i?function(e){return!!(1920&e.flags)&&!e.declarations.every((function(e){return e.parent===x.parent}))}:r?function(e){return d(e)||l(e)}:t?d:l,m=0,_=c;m<_.length;m++){var g=_[m];p(g)&&K.push(g)}if(!t&&o.declarations&&o.declarations.some((function(e){return 288!==e.kind&&248!==e.kind&&247!==e.kind}))){var y=u.getTypeOfSymbolAtLocation(o,x).getNonOptionalType(),v=!1;if(y.isNullableType())((E=L&&!C&&!1!==s.includeAutomaticOptionalChainCompletions)||C)&&(y=y.getNonNullableType(),E&&(v=!0));$(y,!!(32768&x.flags),v)}return}}if(e.isMetaProperty(x)&&(98===x.keywordToken||95===x.keywordToken)){var h=98===x.keywordToken?\"target\":\"meta\";return void K.push(u.createSymbol(4,e.escapeLeadingUnderscores(h)))}if(!t){var E;y=u.getTypeAtLocation(x).getNonOptionalType(),v=!1;if(y.isNullableType())((E=L&&!C&&!1!==s.includeAutomaticOptionalChainCompletions)||C)&&(y=y.getNonNullableType(),E&&(v=!0));$(y,!!(32768&x.flags),v)}}();else if(A){var q=e.Debug.assertEachDefined(u.getJsxIntrinsicTagNamesAt(F),\"getJsxIntrinsicTagNames() should all be defined\");ne(),K=q.concat(K),V=3,j=0}else if(D){var J=b.parent.parent.openingElement.tagName,X=u.getSymbolAtLocation(J);X&&(K=[X]),V=3,j=0}else if(!ne())return;r(\"getCompletionData: Semantic work: \"+(e.timestamp()-B));var Y=v&&function(n,t,r,a){var i=n.parent;switch(n.kind){case 75:return e.getContextualTypeFromParent(n,a);case 62:switch(i.kind){case 241:return a.getContextualType(i.initializer);case 208:return a.getTypeAtLocation(i.left);case 271:return a.getContextualTypeForJsxAttribute(i);default:return}case 98:return a.getContextualType(i);case 77:return e.getSwitchedType(e.cast(i,e.isCaseClause),a);case 18:return e.isJsxExpression(i)&&264!==i.parent.kind?a.getContextualTypeForJsxAttribute(i.parent):void 0;default:var o=e.SignatureHelp.getArgumentInfoForCompletions(n,t,r);return o?a.getContextualTypeForArgumentAtIndex(o.invocation,o.argumentIndex+(27===n.kind?1:0)):e.isEqualityOperatorKind(n.kind)&&e.isBinaryExpression(i)&&e.isEqualityOperatorKind(i.operatorToken.kind)?a.getTypeAtLocation(i.left):a.getContextualType(n)}}(v,o,a,u),Q=e.mapDefined(Y&&(Y.isUnion()?Y.types:[Y]),(function(e){return e.isLiteral()?e.value:void 0})),Z=v&&Y&&function(n,t,r){return e.firstDefined(t&&(t.isUnion()?t.types:[t]),(function(t){var a=t&&t.symbol;return a&&424&a.flags&&!e.isAbstractConstructorSymbol(a)?S(a,n,r):void 0}))}(v,Y,u);return{kind:0,symbols:K,completionKind:V,isInSnippetScope:_,propertyAccessToConvert:T,isNewIdentifierLocation:U,location:F,keywordFilters:j,literals:Q,symbolToOriginInfoMap:H,recommendedCompletion:Z,previousToken:v,isJsxInitializer:I,insideJsDocTagTypeExpression:f,symbolToSortTextMap:W};function $(n,t,r){U=!!n.getStringIndexType(),C&&e.some(n.getCallSignatures())&&(U=!0);var a=187===x.kind?x:x.parent;if(i)K.push.apply(K,R(n,u));else for(var o=0,c=n.getApparentProperties();o<c.length;o++){var l=c[o];u.isValidPropertyAccessForCompletions(a,n,l)&&ee(l,!1,r)}if(t&&s.includeCompletionsWithInsertText){var d=u.getPromisedTypeOfPromise(n);if(d)for(var p=0,m=d.getApparentProperties();p<m.length;p++){l=m[p];u.isValidPropertyAccessForCompletions(a,d,l)&&ee(l,!0,r)}}}function ee(n,t,r){var a=e.firstDefined(n.declarations,(function(n){return e.tryCast(e.getNameOfDeclaration(n),e.isComputedPropertyName)}));if(a){var i=function n(t){return e.isIdentifier(t)?t:e.isPropertyAccessExpression(t)?n(t.expression):void 0}(a.expression),o=i&&u.getSymbolAtLocation(i),c=o&&S(o,b,u);if(c&&!H[e.getSymbolId(c)]){K.push(c);var l=c.parent;H[e.getSymbolId(c)]=l&&e.isExternalModuleSymbol(l)?{kind:p(6),moduleSymbol:l,isDefaultExport:!1}:{kind:p(2)}}else s.includeCompletionsWithInsertText&&(d(n),K.push(n))}else d(n),K.push(n);function d(n){s.includeCompletionsWithInsertText&&(t&&!H[e.getSymbolId(n)]?H[e.getSymbolId(n)]={kind:p(8)}:r&&(H[e.getSymbolId(n)]={kind:16}))}function p(e){return r?16|e:e}}function ne(){var i,d;return 1===(function(){var n,t,r=function(n){if(n){var t=n.parent;switch(n.kind){case 18:case 27:if(e.isObjectLiteralExpression(t)||e.isObjectBindingPattern(t))return t;break;case 41:return e.isMethodDeclaration(t)?e.tryCast(t.parent,e.isObjectLiteralExpression):void 0;case 75:return\"async\"===n.text&&e.isShorthandPropertyAssignment(n.parent)?n.parent.parent:void 0}}return}(b);if(!r)return 0;if(V=0,192===r.kind){if(!(o=u.getContextualType(r,4)))return 2;U=e.hasIndexSignature(o),n=O(o,r,u),t=r.properties}else{e.Debug.assert(188===r.kind),U=!1;var a=e.getRootDeclaration(r.parent);if(!e.isVariableLike(a))return e.Debug.fail(\"Root declaration is not variable-like.\");var i=e.hasInitializer(a)||e.hasType(a)||231===a.parent.parent.kind;if(i||155!==a.kind||(e.isExpression(a.parent)?i=!!u.getContextualType(a.parent):160!==a.parent.kind&&163!==a.parent.kind||(i=e.isExpression(a.parent.parent)&&!!u.getContextualType(a.parent.parent))),i){var o;if(!(o=u.getTypeAtLocation(r)))return 2;n=u.getPropertiesOfType(o).filter((function(n){return!(24&e.getDeclarationModifierFlagsFromSymbol(n))})),t=r.elements}}n&&n.length>0&&(K=function(n,t){if(0===t.length)return n;for(var r=e.createMap(),a=e.createUnderscoreEscapedMap(),i=0,o=t;i<o.length;i++){var s=o[i];if((279===s.kind||280===s.kind||190===s.kind||160===s.kind||162===s.kind||163===s.kind||281===s.kind)&&!le(s)){var c=void 0;if(e.isSpreadAssignment(s))oe(s,r);else if(e.isBindingElement(s)&&s.propertyName)75===s.propertyName.kind&&(c=s.propertyName.escapedText);else{var l=e.getNameOfDeclaration(s);c=l&&e.isPropertyNameLiteral(l)?e.getEscapedTextOfIdentifierOrLiteral(l):void 0}a.set(c,!0)}}var u=n.filter((function(e){return!a.get(e.escapedName)}));return ce(r,u),u}(n,e.Debug.assertDefined(t)));return se(),1}()||function(){var n=!b||18!==b.kind&&27!==b.kind?void 0:e.tryCast(b.parent,e.isNamedImportsOrExports);if(!n)return 0;var t=(256===n.kind?n.parent.parent:n.parent).moduleSpecifier,r=u.getSymbolAtLocation(t);if(!r)return 2;V=3,U=!1;var a=u.getExportsAndPropertiesOfModule(r),i=e.arrayToSet(n.elements,(function(e){return le(e)?void 0:(e.propertyName||e.name).escapedText}));return K=a.filter((function(e){return\"default\"!==e.escapedName&&!i.get(e.escapedName)})),1}()||(function(n){if(n){var t=n.parent;switch(n.kind){case 20:case 27:return e.isConstructorDeclaration(n.parent)?n.parent:void 0;default:if(ae(n))return t.parent}}}(b)?(V=5,U=!0,j=4,1):0)||function(){var n=function(n,t,r,a){switch(r.kind){case 317:return e.tryCast(r.parent,e.isObjectTypeDeclaration);case 1:var i=e.tryCast(e.lastOrUndefined(e.cast(r.parent,e.isSourceFile).statements),e.isObjectTypeDeclaration);if(i&&!e.findChildOfKind(i,19,n))return i;break;case 75:if(P(r))return e.findAncestor(r,e.isObjectTypeDeclaration)}if(!t)return;switch(t.kind){case 26:case 19:return P(r)&&r.parent.name===r?r.parent.parent:e.tryCast(r,e.isObjectTypeDeclaration);case 18:case 27:return e.tryCast(t.parent,e.isObjectTypeDeclaration);default:if(!P(t))return e.getLineAndCharacterOfPosition(n,t.getEnd()).line!==e.getLineAndCharacterOfPosition(n,a).line&&e.isObjectTypeDeclaration(r)?r:void 0;var o=e.isClassLike(t.parent.parent)?N:k;return o(t.kind)||41===t.kind||e.isIdentifier(t)&&o(e.stringToToken(t.text))?t.parent.parent:void 0}}(a,b,F,o);if(!n)return 0;if(V=3,U=!0,j=41===b.kind?0:e.isClassLike(n)?2:3,!e.isClassLike(n))return 1;var t=26===b.kind?b.parent.parent:b.parent,r=e.isClassElement(t)?e.getModifierFlags(t):0;if(75===b.kind&&!le(b))switch(b.getText()){case\"private\":r|=8;break;case\"static\":r|=32}if(!(8&r)){var i=e.flatMap(e.getAllSuperTypeNodes(n),(function(e){var t=u.getTypeAtLocation(e);return t&&u.getPropertiesOfType(32&r?u.getTypeOfSymbolAtLocation(t.symbol,n):t)}));K=function(n,t,r){for(var a=e.createUnderscoreEscapedMap(),i=0,o=t;i<o.length;i++){var s=o[i];if((158===s.kind||160===s.kind||162===s.kind||163===s.kind)&&(!le(s)&&!e.hasModifier(s,8)&&e.hasModifier(s,32)===!!(32&r))){var c=e.getPropertyNameForPropertyNameNode(s.name);c&&a.set(c,!0)}}return n.filter((function(n){return!(a.has(n.escapedName)||!n.declarations||8&e.getDeclarationModifierFlagsFromSymbol(n))}))}(i,n.members,r)}return 1}()||(i=function(n){if(n){var t=n.parent;switch(n.kind){case 31:case 30:case 43:case 75:case 193:case 272:case 271:case 273:if(t&&(265===t.kind||266===t.kind)){if(31===n.kind){var r=e.findPrecedingToken(n.pos,a,void 0);if(!t.typeArguments||r&&43===r.kind)break}return t}if(271===t.kind)return t.parent.parent;break;case 10:if(t&&(271===t.kind||273===t.kind))return t.parent.parent;break;case 19:if(t&&274===t.kind&&t.parent&&271===t.parent.kind)return t.parent.parent.parent;if(t&&273===t.kind)return t.parent.parent}}}(b),(d=i&&u.getContextualType(i.attributes))?(K=function(n,t){for(var r=e.createUnderscoreEscapedMap(),a=e.createMap(),i=0,o=t;i<o.length;i++){var s=o[i];le(s)||(271===s.kind?r.set(s.name.escapedText,!0):e.isJsxSpreadAttribute(s)&&oe(s,a))}var c=n.filter((function(e){return!r.get(e.escapedName)}));return ce(a,c),c}(O(d,i.attributes,u),i.attributes.properties),se(),V=3,U=!1,1):0)||(function(){j=function(n){if(n){var t,r=e.findAncestor(n.parent,(function(n){return e.isClassLike(n)?\"quit\":!(!e.isFunctionLikeDeclaration(n)||t!==n.body)||(t=n,!1)}));return r&&r}}(b)?5:1,V=1,U=function(e){if(e){var n=e.parent.kind;switch(M(e)){case 27:return 195===n||161===n||196===n||191===n||208===n||169===n;case 20:return 195===n||161===n||196===n||199===n||181===n;case 22:return 191===n||166===n||153===n;case 134:case 135:return!0;case 24:return 248===n;case 18:return 244===n;case 62:return 241===n||208===n;case 15:return 210===n;case 16:return 220===n;case 118:case 116:case 117:return 158===n}}return!1}(b),v!==b&&e.Debug.assert(!!v,\"Expected 'contextToken' to be defined when different from 'previousToken'.\");var i=v!==b?v.getStart():o,d=function(n,t,r){var a=n;for(;a&&!e.positionBelongsToNode(a,t,r);)a=a.parent;return a}(b,i,a)||a;_=function(n){switch(n.kind){case 288:case 210:case 274:case 222:return!0;default:return e.isStatement(n)}}(d);var p=2887656|(te()?0:111551);K=e.Debug.assertEachDefined(u.getSymbolsInScope(d,p),\"getSymbolsInScope() should all be defined\");for(var m=0,f=K;m<f.length;m++){var g=f[m];u.isArgumentsSymbol(g)||e.some(g.declarations,(function(e){return e.getSourceFile()===a}))||(W[e.getSymbolId(g)]=t.GlobalsOrKeywords)}if(s.includeCompletionsWithInsertText&&288!==d.kind){var y=u.tryGetThisTypeAt(d,!1);if(y)for(var E=0,T=R(y,u);E<T.length;E++){g=T[E];H[e.getSymbolId(g)]={kind:1},K.push(g),W[e.getSymbolId(g)]=t.SuggestedClassMembers}}if(s.includeCompletionsForModuleExports&&(a.externalModuleIndicator||!a.commonJsModuleIndicator&&(e.compilerOptionsIndicateEs6Modules(n.getCompilerOptions())||e.programContainsEs6Modules(n)))){var S=v&&e.isIdentifier(v)?v.text.toLowerCase():\"\",x=function(t,i){var o=z&&z.get(a.fileName,u,c&&i.getProjectVersion?i.getProjectVersion():void 0);if(o)return r(\"getSymbolsFromOtherSourceFileExports: Using cached list\"),o;var s=e.timestamp();r(\"getSymbolsFromOtherSourceFileExports: Recomputing list\"+(c?\" for details entry\":\"\"));var l=e.createMap(),d=e.createMap(),p=e.createMap(),m=[],f=e.createMap();return e.codefix.forEachExternalModuleToImportFrom(n,i,a,!c,(function(n){if(!c||!c.source||e.stripQuotes(n.name)===c.source){var t=u.resolveExternalModuleSymbol(n);if(e.addToSeen(l,e.getSymbolId(t))){t!==n&&e.every(t.declarations,(function(n){return!!n.getSourceFile().externalModuleIndicator&&!e.findAncestor(n,e.isGlobalScopeAugmentation)}))&&_(t,n,!0);for(var r=0,a=u.getExportsOfModule(n);r<a.length;r++){var i=a[r];if(!e.some(i.declarations,(function(n){return e.isExportSpecifier(n)&&!!n.propertyName&&e.isIdentifierANonContextualKeyword(n.name)}))){var o=e.getSymbolId(i).toString(),s=u.getMergedSymbol(i.parent)!==t;if(s||e.some(i.declarations,(function(n){return e.isExportSpecifier(n)&&!n.propertyName&&!!n.parent.parent.moduleSpecifier}))){var m=s?i:function(e,n,t){var r=n;for(;2097152&r.flags&&(r=e.getImmediateAliasedSymbol(r));)if(t(r))return r}(u,i,(function(n){return e.some(n.declarations,(function(n){return e.isExportSpecifier(n)||!!n.localSymbol}))}));if(!m)continue;var g=e.getSymbolId(m).toString();f.has(g)||d.has(g)?e.addToSeen(d,o):(p.set(g,{alias:i,moduleSymbol:n}),d.set(o,!0))}else p.delete(o),_(i,n)}}}}})),p.forEach((function(e){return _(e.alias,e.moduleSymbol)})),r(\"getSymbolsFromOtherSourceFileExports: \"+(e.timestamp()-s)),m;function _(n,r,a){void 0===a&&(a=!1);var i=\"default\"===n.escapedName;i&&(n=e.getLocalSymbolForExportDefault(n)||n),e.addToSeen(f,e.getSymbolId(n));var o={kind:4,moduleSymbol:r,isDefaultExport:i};m.push({symbol:n,symbolName:h(n,o,t),origin:o,skipFilter:a})}}(n.getCompilerOptions().target,l);!c&&z&&z.set(a.fileName,x,l.getProjectVersion&&l.getProjectVersion()),x.forEach((function(n){var r=n.symbol,a=n.symbolName,i=n.skipFilter,o=n.origin;if(c){if(c.source&&e.stripQuotes(o.moduleSymbol.name)!==c.source)return}else if(!i&&!function(e,n){if(0===n.length)return!0;for(var t=0,r=0;r<e.length;r++)if(e.charCodeAt(r)===n.charCodeAt(t)&&++t===n.length)return!0;return!1}(a.toLowerCase(),S))return;var s=e.getSymbolId(r);K.push(r),H[s]=o,W[s]=t.AutoImportSuggestions}))}!function(n){var t=te();t&&(j=e.isAssertionExpression(b.parent)?6:7);e.filterMutate(n,(function(n){if(!e.isSourceFile(F)){if(e.isExportAssignment(F.parent))return!0;if(n=e.skipAlias(n,u),e.isInRightSideOfInternalImportEqualsDeclaration(F))return!!(1920&n.flags);if(t)return re(n)}return!!(111551&e.getCombinedLocalAndExportSymbolFlags(n))}))}(K)}(),1))}function te(){return f||!function(n){return n&&107===n.kind&&(171===n.parent.kind||e.isTypeOfExpression(n.parent))}(b)&&(e.isPossiblyTypeArgumentPosition(b,a,u)||e.isPartOfTypeNode(F)||function(n){if(n){var t=n.parent.kind;switch(n.kind){case 58:return 158===t||157===t||155===t||241===t||e.isFunctionLikeKind(t);case 62:return 246===t;case 122:return 216===t;case 29:return 168===t||198===t;case 89:return 154===t}}return!1}(b))}function re(n,t){void 0===t&&(t=e.createMap());var r=e.skipAlias(n.exportSymbol||n,u);return!!(788968&r.flags)||!!(1536&r.flags)&&e.addToSeen(t,e.getSymbolId(r))&&u.getExportsOfModule(r).some((function(e){return re(e,t)}))}function ae(n){return!!n.parent&&e.isParameter(n.parent)&&e.isConstructorDeclaration(n.parent.parent)&&(e.isParameterPropertyModifier(n.kind)||e.isDeclarationName(n))}function ie(n){return e.isFunctionLikeKind(n)&&161!==n}function oe(e,n){var t=e.expression,r=u.getSymbolAtLocation(t),a=r&&u.getTypeOfSymbolAtLocation(r,t),i=a&&a.properties;i&&i.forEach((function(e){n.set(e.name,!0)}))}function se(){K.forEach((function(n){16777216&n.flags&&(W[e.getSymbolId(n)]=W[e.getSymbolId(n)]||t.OptionalMember)}))}function ce(n,r){if(0!==n.size)for(var a=0,i=r;a<i.length;a++){var o=i[a];n.has(o.name)&&(W[e.getSymbolId(o)]=t.MemberDeclaredBySpreadAssignment)}}function le(e){return e.getStart(a)<=o&&o<=e.getEnd()}}function L(n,t,r,a){var i=h(n,r,t);if(!(void 0===i||1536&n.flags&&e.isSingleOrDoubleQuote(i.charCodeAt(0))||e.isKnownSymbol(n))){var o={name:i,needsConvertPropertyAccess:!1};if(e.isIdentifierText(i,t))return o;switch(a){case 3:return;case 0:return{name:JSON.stringify(i),needsConvertPropertyAccess:!1};case 2:case 1:return 32===i.charCodeAt(0)?void 0:{name:i,needsConvertPropertyAccess:!0};case 5:case 4:return o;default:e.Debug.assertNever(a)}}}n.getCompletionEntriesFromSymbols=y,n.getCompletionEntryDetails=function(t,r,a,i,s,c,l,u,p){var m=t.getTypeChecker(),f=t.getCompilerOptions(),_=s.name,g=e.findPrecedingToken(i,a);if(e.isInString(a,i,g))return n.StringCompletions.getStringLiteralCompletionDetails(_,a,i,g,m,f,c,p);var y=v(t,r,a,i,s,c);switch(y.type){case\"request\":var T=y.request;switch(T.kind){case 1:return e.JsDoc.getJSDocTagNameCompletionDetails(_);case 2:return e.JsDoc.getJSDocTagCompletionDetails(_);case 3:return e.JsDoc.getJSDocParameterNameCompletionDetails(_);default:return e.Debug.assertNever(T)}case\"symbol\":var S=y.symbol,x=y.location,L=function(n,t,r,a,i,s,c,l,u,d,p){var m=n[e.getSymbolId(t)];if(!m||!o(m))return{codeActions:void 0,sourceDisplay:void 0};var f=m.moduleSymbol,_=a.getMergedSymbol(e.skipAlias(t.exportSymbol||t,a)),g=e.codefix.getImportCompletionAction(_,f,c,h(t,m,s.target),i,r,d,u&&e.isIdentifier(u)?u.getStart(c):l,p),y=g.moduleSpecifier,v=g.codeAction;return{sourceDisplay:[e.textPart(y)],codeActions:[v]}}(y.symbolToOriginInfoMap,S,t,m,c,f,a,i,y.previousToken,l,u);return E(S,m,a,x,p,L.codeActions,L.sourceDisplay);case\"literal\":var C=y.literal;return b(d(C),\"string\",\"string\"==typeof C?e.SymbolDisplayPartKind.stringLiteral:e.SymbolDisplayPartKind.numericLiteral);case\"none\":return A().some((function(e){return e.name===_}))?b(_,\"keyword\",e.SymbolDisplayPartKind.keyword):void 0;default:e.Debug.assertNever(y)}},n.createCompletionDetailsForSymbol=E,n.createCompletionDetails=T,n.getCompletionEntrySymbol=function(e,n,t,r,a,i){var o=v(e,n,t,r,a,i);return\"symbol\"===o.type?o.symbol:void 0},function(e){e[e.Data=0]=\"Data\",e[e.JsDocTagName=1]=\"JsDocTagName\",e[e.JsDocTag=2]=\"JsDocTag\",e[e.JsDocParameterName=3]=\"JsDocParameterName\"}(u||(u={})),function(e){e[e.ObjectPropertyDeclaration=0]=\"ObjectPropertyDeclaration\",e[e.Global=1]=\"Global\",e[e.PropertyAccess=2]=\"PropertyAccess\",e[e.MemberLike=3]=\"MemberLike\",e[e.String=4]=\"String\",e[e.None=5]=\"None\"}(n.CompletionKind||(n.CompletionKind={}));var C=[],A=e.memoize((function(){for(var n=[],r=76;r<=151;r++)n.push({name:e.tokenToString(r),kind:\"keyword\",kindModifiers:\"\",sortText:t.GlobalsOrKeywords});return n}));function D(n){return C[n]||(C[n]=A().filter((function(t){var r=e.stringToToken(t.name);switch(n){case 0:return!1;case 1:return I(r)||129===r||134===r||144===r||135===r||e.isTypeKeyword(r)&&145!==r;case 5:return I(r);case 2:return N(r);case 3:return k(r);case 4:return e.isParameterPropertyModifier(r);case 6:return e.isTypeKeyword(r)||80===r;case 7:return e.isTypeKeyword(r);default:return e.Debug.assertNever(n)}})))}function k(e){return 137===e}function N(n){switch(n){case 121:case 128:case 130:case 141:case 125:return!0;default:return e.isClassMemberModifier(n)}}function I(n){return 125===n||126===n||!e.isContextualKeyword(n)&&!N(n)}function M(n){return e.isIdentifier(n)?n.originalKeywordKind||0:n.kind}function O(n,t,r){return n.isUnion()?r.getAllPossiblePropertiesOfTypes(n.types.filter((function(n){return!(131068&n.flags||r.isArrayLikeType(n)||e.typeHasCallOrConstructSignatures(n,r)||r.isTypeInvalidDueToUnionDiscriminant(n,t))}))):n.getApparentProperties()}function R(n,t){return n.isUnion()?e.Debug.assertEachDefined(t.getAllPossiblePropertiesOfTypes(n.types),\"getAllPossiblePropertiesOfTypes() should all be defined\"):e.Debug.assertEachDefined(n.getApparentProperties(),\"getApparentProperties() should all be defined\")}function P(n){return n.parent&&e.isClassOrTypeElement(n.parent)&&e.isObjectTypeDeclaration(n.parent.parent)}function w(n){var t=n.left;return e.nodeIsMissing(t)}}(e.Completions||(e.Completions={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){return{fileName:t.fileName,textSpan:e.createTextSpanFromNode(n,t),kind:\"none\"}}function r(n){return e.isThrowStatement(n)?[n]:e.isTryStatement(n)?e.concatenate(n.catchClause?r(n.catchClause):n.tryBlock&&r(n.tryBlock),n.finallyBlock&&r(n.finallyBlock)):e.isFunctionLike(n)?void 0:i(n,r)}function a(n){return e.isBreakOrContinueStatement(n)?[n]:e.isFunctionLike(n)?void 0:i(n,a)}function i(n,t){var r=[];return n.forEachChild((function(n){var a=t(n);void 0!==a&&r.push.apply(r,e.toArray(a))})),r}function o(e,n){var t=s(n);return!!t&&t===e}function s(n){return e.findAncestor(n,(function(t){switch(t.kind){case 236:if(232===n.kind)return!1;case 229:case 230:case 231:case 228:case 227:return!n.label||function(n,t){return!!e.findAncestor(n.parent,(function(n){return e.isLabeledStatement(n)?n.label.escapedText===t:\"quit\"}))}(t,n.label.escapedText);default:return e.isFunctionLike(t)&&\"quit\"}}))}function c(n,t){for(var r=[],a=2;a<arguments.length;a++)r[a-2]=arguments[a];return!(!t||!e.contains(r,t.kind))&&(n.push(t),!0)}function l(n){var t=[];if(c(t,n.getFirstToken(),92,110,85)&&227===n.kind)for(var r=n.getChildren(),i=r.length-1;i>=0&&!c(t,r[i],110);i--);return e.forEach(a(n.statement),(function(e){o(n,e)&&c(t,e.getFirstToken(),76,81)})),t}function u(e){var n=s(e);if(n)switch(n.kind){case 229:case 230:case 231:case 227:case 228:return l(n);case 236:return d(n)}}function d(n){var t=[];return c(t,n.getFirstToken(),102),e.forEach(n.caseBlock.clauses,(function(r){c(t,r.getFirstToken(),77,83),e.forEach(a(r),(function(e){o(n,e)&&c(t,e.getFirstToken(),76)}))})),t}function p(n,t){var r=[];(c(r,n.getFirstToken(),106),n.catchClause&&c(r,n.catchClause.getFirstToken(),78),n.finallyBlock)&&c(r,e.findChildOfKind(n,91,t),91);return r}function m(n,t){var a=function(n){for(var t=n;t.parent;){var r=t.parent;if(e.isFunctionBlock(r)||288===r.kind)return r;if(e.isTryStatement(r)&&r.tryBlock===t&&r.catchClause)return t;t=r}}(n);if(a){var i=[];return e.forEach(r(a),(function(n){i.push(e.findChildOfKind(n,104,t))})),e.isFunctionBlock(a)&&e.forEachReturnStatement(a,(function(n){i.push(e.findChildOfKind(n,100,t))})),i}}function f(n,t){var a=e.getContainingFunction(n);if(a){var i=[];return e.forEachReturnStatement(e.cast(a.body,e.isBlock),(function(n){i.push(e.findChildOfKind(n,100,t))})),e.forEach(r(a.body),(function(n){i.push(e.findChildOfKind(n,104,t))})),i}}function _(n){var t=e.getContainingFunction(n);if(t){var r=[];return t.modifiers&&t.modifiers.forEach((function(e){c(r,e,125)})),e.forEachChild(t,(function(n){g(n,(function(n){e.isAwaitExpression(n)&&c(r,n.getFirstToken(),126)}))})),r}}function g(n,t){t(n),e.isFunctionLike(n)||e.isClassLike(n)||e.isInterfaceDeclaration(n)||e.isModuleDeclaration(n)||e.isTypeAliasDeclaration(n)||e.isTypeNode(n)||e.forEachChild(n,(function(e){return g(e,t)}))}n.getDocumentHighlights=function(n,r,a,i,o){var s=e.getTouchingPropertyName(a,i);if(s.parent&&(e.isJsxOpeningElement(s.parent)&&s.parent.tagName===s||e.isJsxClosingElement(s.parent))){var y=s.parent.parent,v=[y.openingElement,y.closingElement].map((function(e){return t(e.tagName,a)}));return[{fileName:a.fileName,highlightSpans:v}]}return function(n,t,r,a,i){var o=e.arrayToSet(i,(function(e){return e.fileName})),s=e.FindAllReferences.getReferenceEntriesForNode(n,t,r,i,a,void 0,o);if(!s)return;var c=e.arrayToMultiMap(s.map(e.FindAllReferences.toHighlightSpan),(function(e){return e.fileName}),(function(e){return e.span}));return e.arrayFrom(c.entries(),(function(n){var t=n[0],a=n[1];if(!o.has(t)){e.Debug.assert(r.redirectTargetsMap.has(t));var s=r.getSourceFile(t);t=e.find(i,(function(e){return!!e.redirectInfo&&e.redirectInfo.redirectTarget===s})).fileName,e.Debug.assert(o.has(t))}return{fileName:t,highlightSpans:a}}))}(i,s,n,r,o)||function(n,r){var a=function(n,r){switch(n.kind){case 94:case 86:return e.isIfStatement(n.parent)?function(n,r){for(var a=function(n,t){var r=[];for(;e.isIfStatement(n.parent)&&n.parent.elseStatement===n;)n=n.parent;for(;;){var a=n.getChildren(t);c(r,a[0],94);for(var i=a.length-1;i>=0&&!c(r,a[i],86);i--);if(!n.elseStatement||!e.isIfStatement(n.elseStatement))break;n=n.elseStatement}return r}(n,r),i=[],o=0;o<a.length;o++){if(86===a[o].kind&&o<a.length-1){for(var s=a[o],l=a[o+1],u=!0,d=l.getStart(r)-1;d>=s.end;d--)if(!e.isWhiteSpaceSingleLine(r.text.charCodeAt(d))){u=!1;break}if(u){i.push({fileName:r.fileName,textSpan:e.createTextSpanFromBounds(s.getStart(),l.end),kind:\"reference\"}),o++;continue}}i.push(t(a[o],r))}return i}(n.parent,r):void 0;case 100:return s(n.parent,e.isReturnStatement,f);case 104:return s(n.parent,e.isThrowStatement,m);case 106:case 78:case 91:return s(78===n.kind?n.parent.parent:n.parent,e.isTryStatement,p);case 102:return s(n.parent,e.isSwitchStatement,d);case 77:case 83:return s(n.parent.parent.parent,e.isSwitchStatement,d);case 76:case 81:return s(n.parent,e.isBreakOrContinueStatement,u);case 92:case 110:case 85:return s(n.parent,(function(n){return e.isIterationStatement(n,!0)}),l);case 128:return o(e.isConstructorDeclaration,[128]);case 130:case 141:return o(e.isAccessor,[130,141]);case 126:return s(n.parent,e.isAwaitExpression,_);case 125:return y(_(n));case 120:return y(function(n){var t=e.getContainingFunction(n);if(!t)return;var r=[];return e.forEachChild(t,(function(n){g(n,(function(n){e.isYieldExpression(n)&&c(r,n.getFirstToken(),120)}))})),r}(n));default:return e.isModifierKind(n.kind)&&(e.isDeclaration(n.parent)||e.isVariableStatement(n.parent))?y((a=n.kind,i=n.parent,e.mapDefined(function(n,t){var r=n.parent;switch(r.kind){case 249:case 288:case 222:case 275:case 276:return 128&t&&e.isClassDeclaration(n)?__spreadArrays(n.members,[n]):r.statements;case 161:case 160:case 243:return __spreadArrays(r.parameters,e.isClassLike(r.parent)?r.parent.members:[]);case 244:case 213:case 245:case 172:var a=r.members;if(92&t){var i=e.find(r.members,e.isConstructorDeclaration);if(i)return __spreadArrays(a,i.parameters)}else if(128&t)return __spreadArrays(a,[r]);return a;default:e.Debug.assertNever(r,\"Invalid container kind.\")}}(i,e.modifierToFlag(a)),(function(n){return e.findModifier(n,a)})))):void 0}var a,i;function o(t,a){return s(n.parent,t,(function(n){return e.mapDefined(n.symbol.declarations,(function(n){return t(n)?e.find(n.getChildren(r),(function(n){return e.contains(a,n.kind)})):void 0}))}))}function s(e,n,t){return n(e)?y(t(e,r)):void 0}function y(e){return e&&e.map((function(e){return t(e,r)}))}}(n,r);return a&&[{fileName:r.fileName,highlightSpans:a}]}(s,a)}}(e.DocumentHighlights||(e.DocumentHighlights={}))}(ts||(ts={})),function(e){function n(n,r,a){void 0===r&&(r=\"\");var i=e.createMap(),o=e.createGetCanonicalFileName(!!n);function s(e,n,t,r,a,i,o){return l(e,n,t,r,a,i,!0,o)}function c(e,n,t,r,a,i,o){return l(e,n,t,r,a,i,!1,o)}function l(n,t,r,o,s,c,l,u){var d=e.getOrUpdate(i,o,e.createMap),p=d.get(t),m=6===u?100:r.target||1;!p&&a&&((f=a.getDocument(o,t))&&(e.Debug.assert(l),p={sourceFile:f,languageServiceRefCount:0},d.set(t,p)));if(p)p.sourceFile.version!==c&&(p.sourceFile=e.updateLanguageServiceSourceFile(p.sourceFile,s,c,s.getChangeRange(p.sourceFile.scriptSnapshot)),a&&a.setDocument(o,t,p.sourceFile)),l&&p.languageServiceRefCount++;else{var f=e.createLanguageServiceSourceFile(n,s,m,c,!1,u);a&&a.setDocument(o,t,f),p={sourceFile:f,languageServiceRefCount:1},d.set(t,p)}return e.Debug.assert(0!==p.languageServiceRefCount),p.sourceFile}function u(n,t){var r=e.Debug.assertDefined(i.get(t)),a=r.get(n);a.languageServiceRefCount--,e.Debug.assert(a.languageServiceRefCount>=0),0===a.languageServiceRefCount&&r.delete(n)}return{acquireDocument:function(n,a,i,c,l){return s(n,e.toPath(n,r,o),a,t(a),i,c,l)},acquireDocumentWithKey:s,updateDocument:function(n,a,i,s,l){return c(n,e.toPath(n,r,o),a,t(a),i,s,l)},updateDocumentWithKey:c,releaseDocument:function(n,a){return u(e.toPath(n,r,o),t(a))},releaseDocumentWithKey:u,getLanguageServiceRefCounts:function(n){return e.arrayFrom(i.entries(),(function(e){var t=e[0],r=e[1].get(n);return[t,r&&r.languageServiceRefCount]}))},reportStats:function(){var n=e.arrayFrom(i.keys()).filter((function(e){return e&&\"_\"===e.charAt(0)})).map((function(e){var n=i.get(e),t=[];return n.forEach((function(e,n){t.push({name:n,refCount:e.languageServiceRefCount})})),t.sort((function(e,n){return n.refCount-e.refCount})),{bucket:e,sourceFiles:t}}));return JSON.stringify(n,void 0,2)},getKeyForCompilationSettings:t}}function t(n){return e.sourceFileAffectingCompilerOptions.map((function(t){return e.getCompilerOptionValue(n,t)})).join(\"|\")}e.createDocumentRegistry=function(e,t){return n(e,t)},e.createDocumentRegistryInternal=n}(ts||(ts={})),function(e){!function(n){function t(n,t){return e.forEach(288===n.kind?n.statements:n.body.statements,(function(n){return t(n)||s(n)&&e.forEach(n.body&&n.body.statements,t)}))}function r(n,r){if(n.externalModuleIndicator||void 0!==n.imports)for(var a=0,i=n.imports;a<i.length;a++){var o=i[a];r(e.importFromModuleSpecifier(o),o)}else t(n,(function(n){switch(n.kind){case 259:case 253:(t=n).moduleSpecifier&&e.isStringLiteral(t.moduleSpecifier)&&r(t,t.moduleSpecifier);break;case 252:var t;c(t=n)&&r(t,t.moduleReference.expression)}}))}function a(n,t,r){var a=n.parent;if(a){var i=r.getMergedSymbol(a);return e.isExternalModuleSymbol(i)?{exportingModuleSymbol:i,exportKind:t}:void 0}}function i(e,n){return n.getMergedSymbol(o(e).symbol)}function o(n){if(195===n.kind)return n.getSourceFile();var t=n.parent;return 288===t.kind?t:(e.Debug.assert(249===t.kind),e.cast(t.parent,s))}function s(e){return 248===e.kind&&10===e.name.kind}function c(e){return 263===e.moduleReference.kind&&10===e.moduleReference.expression.kind}n.createImportTracker=function(n,a,s,l){var u=function(n,t,a){for(var i=e.createMap(),o=0,s=n;o<s.length;o++){var c=s[o];a&&a.throwIfCancellationRequested(),r(c,(function(n,r){var a=t.getSymbolAtLocation(r);if(a){var o=e.getSymbolId(a).toString(),s=i.get(o);s||i.set(o,s=[]),s.push(n)}}))}return i}(n,s,l);return function(r,d,p){var m=function(n,r,a,s,c,l){var u=s.exportingModuleSymbol,d=s.exportKind,p=e.nodeSeenTracker(),m=e.nodeSeenTracker(),f=[],_=!!u.globalExports,g=_?void 0:[];return v(u),{directImports:f,indirectUsers:y()};function y(){if(_)return n;for(var t=0,a=u.declarations;t<a.length;t++){var i=a[t];e.isExternalModuleAugmentation(i)&&r.has(i.getSourceFile().fileName)&&b(i)}return g.map(e.getSourceFileOfNode)}function v(n){var t=E(n);if(t)for(var r=0,a=t;r<a.length;r++){var s=a[r];if(p(s))switch(l&&l.throwIfCancellationRequested(),s.kind){case 195:if(!_){var u=s.parent;if(2===d&&241===u.kind){var m=u.name;if(75===m.kind){f.push(m);break}}b(s.getSourceFile())}break;case 75:break;case 252:h(s,s.name,e.hasModifier(s,1),!1);break;case 253:f.push(s);var g=s.importClause&&s.importClause.namedBindings;g&&255===g.kind?h(s,g.name,!1,!0):!_&&e.isDefaultImport(s)&&b(o(s));break;case 259:s.exportClause?f.push(s):v(i(s,c));break;case 187:f.push(s);break;default:e.Debug.failBadSyntaxKind(s,\"Unexpected import kind.\")}}}function h(n,r,a,i){if(2===d)i||f.push(n);else if(!_){var s=o(n);e.Debug.assert(288===s.kind||248===s.kind),a||function(n,r,a){var i=a.getSymbolAtLocation(r);return!!t(n,(function(n){if(e.isExportDeclaration(n)){var t=n.exportClause;return!n.moduleSpecifier&&t&&t.elements.some((function(e){return a.getExportSpecifierLocalTargetSymbol(e)===i}))}}))}(s,r,c)?function n(t){if(!b(t))return;var r=c.getMergedSymbol(t.symbol);e.Debug.assert(!!(1536&r.flags));var a=E(r);if(a)for(var i=0,s=a;i<s.length;i++){var l=s[i];n(o(l))}}(s):b(s)}}function b(n){e.Debug.assert(!_);var t=m(n);return t&&g.push(n),t}function E(n){return a.get(e.getSymbolId(n).toString())}}(n,a,u,d,s,l),f=m.directImports,_=m.indirectUsers;return __assign({indirectUsers:_},function(n,t,r,a,i){var o=[],s=[];function l(e,n){o.push([e,n])}if(n)for(var u=0,d=n;u<d.length;u++){p(d[u])}return{importSearches:o,singleReferences:s};function p(n){if(252!==n.kind)if(75!==n.kind)if(187!==n.kind){if(10===n.moduleSpecifier.kind)if(259!==n.kind){var o=n.importClause||{name:void 0,namedBindings:void 0},u=o.name,d=o.namedBindings;if(d)switch(d.kind){case 255:m(d.name);break;case 256:0!==r&&1!==r||f(d);break;default:e.Debug.assertNever(d)}if(u&&(1===r||2===r)&&(!i||u.escapedText===e.symbolEscapedNameNoDefault(t)))l(u,a.getSymbolAtLocation(u))}else f(n.exportClause)}else n.qualifier?e.isIdentifier(n.qualifier)&&n.qualifier.escapedText===e.symbolName(t)&&s.push(n.qualifier):2===r&&s.push(n.argument.literal);else m(n);else c(n)&&m(n.name)}function m(e){2!==r||i&&!_(e.escapedText)||l(e,a.getSymbolAtLocation(e))}function f(e){if(e)for(var n=0,r=e.elements;n<r.length;n++){var o=r[n],c=o.name,u=o.propertyName;if(_((u||c).escapedText))if(u)s.push(u),i&&c.escapedText!==t.escapedName||l(c,a.getSymbolAtLocation(c));else l(c,261===o.kind&&o.propertyName?a.getExportSpecifierLocalTargetSymbol(o):a.getSymbolAtLocation(c))}}function _(e){return e===t.escapedName||0!==r&&\"default\"===e}}(f,r,d.exportKind,s,p))}},function(e){e[e.Named=0]=\"Named\",e[e.Default=1]=\"Default\",e[e.ExportEquals=2]=\"ExportEquals\"}(n.ExportKind||(n.ExportKind={})),function(e){e[e.Import=0]=\"Import\",e[e.Export=1]=\"Export\"}(n.ImportExport||(n.ImportExport={})),n.findModuleReferences=function(e,n,t){for(var a=[],i=e.getTypeChecker(),o=0,s=n;o<s.length;o++){var c=s[o],l=t.valueDeclaration;if(288===l.kind){for(var u=0,d=c.referencedFiles;u<d.length;u++){var p=d[u];e.getSourceFileFromReference(c,p)===l&&a.push({kind:\"reference\",referencingFile:c,ref:p})}for(var m=0,f=c.typeReferenceDirectives;m<f.length;m++){p=f[m];var _=e.getResolvedTypeReferenceDirectives().get(p.fileName);void 0!==_&&_.resolvedFileName===l.fileName&&a.push({kind:\"reference\",referencingFile:c,ref:p})}}r(c,(function(e,n){i.getSymbolAtLocation(n)===t&&a.push({kind:\"import\",literal:n})}))}return a},n.getImportOrExportSymbol=function(n,t,r,i){return i?o():o()||function(){if(!function(n){var t=n.parent;switch(t.kind){case 252:return t.name===n&&c(t);case 257:return!t.propertyName;case 254:case 255:return e.Debug.assert(t.name===n),!0;default:return!1}}(n))return;var a=r.getImmediateAliasedSymbol(t);if(!a)return;\"export=\"===(a=function(n,t){if(n.declarations)for(var r=0,a=n.declarations;r<a.length;r++){var i=a[r];if(e.isExportSpecifier(i)&&!i.propertyName&&!i.parent.parent.moduleSpecifier)return t.getExportSpecifierLocalTargetSymbol(i)}return n}(a,r)).escapedName&&(a=function(n,t){if(2097152&n.flags)return e.Debug.assertDefined(t.getImmediateAliasedSymbol(n));var r=n.valueDeclaration;if(e.isExportAssignment(r))return e.Debug.assertDefined(r.expression.symbol);if(e.isBinaryExpression(r))return e.Debug.assertDefined(r.right.symbol);if(e.isSourceFile(r))return e.Debug.assertDefined(r.symbol);return e.Debug.fail()}(a,r));var i=e.symbolEscapedNameNoDefault(a);if(void 0===i||\"default\"===i||i===t.escapedName)return{kind:0,symbol:a}}();function o(){var a=n.parent,o=a.parent;if(t.exportSymbol)return 193===a.kind?t.declarations.some((function(e){return e===a}))&&e.isBinaryExpression(o)?d(o,!1):void 0:s(t.exportSymbol,l(a));var c=function(n,t){var r=e.isVariableDeclaration(n)?n:e.isBindingElement(n)?e.walkUpBindingElementsAndPatterns(n):void 0;return r?n.name!==t?void 0:e.isCatchClause(r.parent)?void 0:e.isVariableStatement(r.parent.parent)?r.parent.parent:void 0:n}(a,n);if(c&&e.hasModifier(c,1)){if(e.isImportEqualsDeclaration(c)&&c.moduleReference===n){if(i)return;return{kind:0,symbol:r.getSymbolAtLocation(c.name)}}return s(t,l(c))}if(e.isExportAssignment(a))return u(a);if(e.isExportAssignment(o))return u(o);if(e.isBinaryExpression(a))return d(a,!0);if(e.isBinaryExpression(o))return d(o,!0);if(e.isJSDocTypedefTag(a))return s(t,0);function u(n){var r=e.Debug.assertDefined(n.symbol.parent,\"Expected export symbol to have a parent\"),a=n.isExportEquals?2:1;return{kind:1,symbol:t,exportInfo:{exportingModuleSymbol:r,exportKind:a}}}function d(n,a){var i;switch(e.getAssignmentDeclarationKind(n)){case 1:i=0;break;case 2:i=2;break;default:return}var o=a?r.getSymbolAtLocation(e.cast(n.left,e.isPropertyAccessExpression).name):t;return!o||1536&r.getMergedSymbol(o.parent).flags||e.Debug.fail(\"Special property assignment kind does not have a module as its parent. Assignment is \"+e.Debug.formatSymbol(o)+\", parent is \"+e.Debug.formatSymbol(o.parent)),o&&s(o,i)}}function s(e,n){var t=a(e,n,r);return t&&{kind:1,symbol:e,exportInfo:t}}function l(n){return e.hasModifier(n,512)?1:0}},n.getExportInfo=a}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){!function(n){function t(e,n){return void 0===n&&(n=1),{kind:n,node:e.name||e,context:a(e)}}function r(e){return e&&void 0===e.kind}function a(n){if(e.isDeclaration(n))return i(n);if(n.parent){if(!e.isDeclaration(n.parent)&&!e.isExportAssignment(n.parent)){if(e.isInJSFile(n)){var t=e.isBinaryExpression(n.parent)?n.parent:e.isAccessExpression(n.parent)&&e.isBinaryExpression(n.parent.parent)&&n.parent.parent.left===n.parent?n.parent.parent:void 0;if(t&&0!==e.getAssignmentDeclarationKind(t))return i(t)}if(e.isJsxOpeningElement(n.parent)||e.isJsxClosingElement(n.parent))return n.parent.parent;if(e.isJsxSelfClosingElement(n.parent)||e.isLabeledStatement(n.parent)||e.isBreakOrContinueStatement(n.parent))return n.parent;if(e.isStringLiteralLike(n)){var r=e.tryGetImportFromModuleSpecifier(n);if(r){var a=e.findAncestor(r,(function(n){return e.isDeclaration(n)||e.isStatement(n)||e.isJSDocTag(n)}));return e.isDeclaration(a)?i(a):a}}var o=e.findAncestor(n,e.isComputedPropertyName);return o?i(o.parent):void 0}return n.parent.name===n||e.isConstructorDeclaration(n.parent)||e.isExportAssignment(n.parent)||(e.isImportOrExportSpecifier(n.parent)||e.isBindingElement(n.parent))&&n.parent.propertyName===n||83===n.kind&&e.hasModifier(n.parent,513)?i(n.parent):void 0}}function i(n){if(n)switch(n.kind){case 241:return e.isVariableDeclarationList(n.parent)&&1===n.parent.declarations.length?e.isVariableStatement(n.parent.parent)?n.parent.parent:e.isForInOrOfStatement(n.parent.parent)?i(n.parent.parent):n.parent:n;case 190:return i(n.parent.parent);case 257:return n.parent.parent.parent;case 261:case 255:return n.parent.parent;case 254:return n.parent;case 208:return e.isExpressionStatement(n.parent)?n.parent:n;case 231:case 230:return{start:n.initializer,end:n.expression};case 279:case 280:return e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)?i(e.findAncestor(n.parent,(function(n){return e.isBinaryExpression(n)||e.isForInOrOfStatement(n)}))):n;default:return n}}function o(e,n,t){if(t){var a=r(t)?p(t.start,n,t.end):p(t,n);return a.start!==e.start||a.length!==e.length?{contextSpan:a}:void 0}}function s(t,r,a,i,o,s,l){return void 0===s&&(s={}),void 0===l&&(l=e.arrayToSet(i,(function(e){return e.fileName}))),c(n.Core.getReferencedSymbolsForNode(t,r,a,i,o,s,l))}function c(n){return n&&e.flatMap(n,(function(e){return e.references}))}function l(t,r,a){var i=n.Core.getIntersectingMeaningFromDeclarations(a,t),o=t.declarations&&e.firstOrUndefined(t.declarations)||a,s=e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(r,t,o.getSourceFile(),o,o,i);return{displayParts:s.displayParts,kind:s.symbolKind}}function u(n){var t=d(n);if(0===n.kind)return __assign(__assign({},t),{isWriteAccess:!1,isDefinition:!1});var r=n.kind,a=n.node;return __assign(__assign({},t),{isWriteAccess:m(a),isDefinition:83===a.kind||!!e.getDeclarationFromName(a)||e.isLiteralComputedPropertyDeclarationName(a),isInString:2===r||void 0})}function d(e){if(0===e.kind)return{textSpan:e.textSpan,fileName:e.fileName};var n=e.node.getSourceFile(),t=p(e.node,n);return __assign({textSpan:t,fileName:n.fileName},o(t,n,e.context))}function p(n,t,r){var a=n.getStart(t),i=(r||n).getEnd();return e.isStringLiteralLike(n)&&(e.Debug.assert(void 0===r),a+=1,i-=1),e.createTextSpanFromBounds(a,i)}function m(n){var t=e.getDeclarationFromName(n);return!!t&&function(n){if(8388608&n.flags)return!0;switch(n.kind){case 208:case 190:case 244:case 213:case 83:case 247:case 282:case 261:case 254:case 252:case 257:case 245:case 308:case 315:case 271:case 248:case 251:case 255:case 155:case 280:case 246:case 154:return!0;case 279:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent);case 243:case 200:case 161:case 160:case 162:case 163:return!!n.body;case 241:case 158:return!!n.initializer||e.isCatchClause(n.parent);case 159:case 157:case 316:case 310:return!1;default:return e.Debug.failBadSyntaxKind(n)}}(t)||83===n.kind||e.isWriteAccess(n)}!function(e){e[e.Symbol=0]=\"Symbol\",e[e.Label=1]=\"Label\",e[e.Keyword=2]=\"Keyword\",e[e.This=3]=\"This\",e[e.String=4]=\"String\"}(n.DefinitionKind||(n.DefinitionKind={})),function(e){e[e.Span=0]=\"Span\",e[e.Node=1]=\"Node\",e[e.StringLiteral=2]=\"StringLiteral\",e[e.SearchedLocalFoundProperty=3]=\"SearchedLocalFoundProperty\",e[e.SearchedPropertyFoundLocal=4]=\"SearchedPropertyFoundLocal\"}(n.EntryKind||(n.EntryKind={})),n.nodeEntry=t,n.isContextWithStartAndEndNode=r,n.getContextNode=i,n.toContextSpan=o,n.findReferencedSymbols=function(t,r,a,s,c){var d=e.getTouchingPropertyName(s,c),m=n.Core.getReferencedSymbolsForNode(c,d,t,a,r),f=t.getTypeChecker();return m&&m.length?e.mapDefined(m,(function(n){var t=n.definition,a=n.references;return t&&{definition:f.runWithCancellationToken(r,(function(n){return function(n,t,r){var a=function(){switch(n.type){case 0:var a=l(f=n.symbol,t,r),o=a.displayParts,s=a.kind,c=o.map((function(e){return e.text})).join(\"\"),u=f.declarations?e.first(f.declarations):void 0;return{node:u?e.getNameOfDeclaration(u)||u:r,name:c,kind:s,displayParts:o,context:i(u)};case 1:var d=n.node;return{node:d,name:d.text,kind:\"label\",displayParts:[e.displayPart(d.text,e.SymbolDisplayPartKind.text)]};case 2:var p=n.node,m=e.tokenToString(p.kind);return{node:p,name:m,kind:\"keyword\",displayParts:[{text:m,kind:\"keyword\"}]};case 3:var f,_=n.node,g=(f=t.getSymbolAtLocation(_))&&e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(t,f,_.getSourceFile(),e.getContainerNode(_),_).displayParts||[e.textPart(\"this\")];return{node:_,name:\"this\",kind:\"var\",displayParts:g};case 4:var y=n.node;return{node:y,name:y.text,kind:\"var\",displayParts:[e.displayPart(e.getTextOfNode(y),e.SymbolDisplayPartKind.stringLiteral)]};default:return e.Debug.assertNever(n)}}(),s=a.node,c=a.name,u=a.kind,d=a.displayParts,m=a.context,f=s.getSourceFile(),_=p(e.isComputedPropertyName(s)?s.expression:s,f);return __assign({containerKind:\"\",containerName:\"\",fileName:f.fileName,kind:u,name:c,textSpan:_,displayParts:d},o(_,f,m))}(t,n,d)})),references:a.map(u)}})):void 0},n.getImplementationsAtPosition=function(r,a,i,o,c){var u=function(r,a,i,o,c){if(288===o.kind)return;var l=r.getTypeChecker();if(280===o.parent.kind){var u=[];return n.Core.getReferenceEntriesForShorthandPropertyAssignment(o,l,(function(e){return u.push(t(e))})),u}if(101===o.kind||e.isSuperProperty(o.parent)){var d=l.getSymbolAtLocation(o);return d.valueDeclaration&&[t(d.valueDeclaration)]}return s(c,o,r,i,a,{implementations:!0})}(r,a,i,e.getTouchingPropertyName(o,c),c),p=r.getTypeChecker();return e.map(u,(function(n){return function(n,t){var r=d(n);if(0!==n.kind){var a=n.node;return __assign(__assign({},r),function(n,t){var r=t.getSymbolAtLocation(e.isDeclaration(n)&&n.name?n.name:n);return r?l(r,t,n):192===n.kind?{kind:\"interface\",displayParts:[e.punctuationPart(20),e.textPart(\"object literal\"),e.punctuationPart(21)]}:213===n.kind?{kind:\"local class\",displayParts:[e.punctuationPart(20),e.textPart(\"anonymous local class\"),e.punctuationPart(21)]}:{kind:e.getNodeKind(n),displayParts:[]}}(a,t))}return __assign(__assign({},r),{kind:\"\",displayParts:[]})}(n,p)}))},n.findReferenceOrRenameEntries=function(t,r,a,i,o,s,l){return e.map(c(n.Core.getReferencedSymbolsForNode(o,i,t,a,r,s)),(function(e){return l(e,i,t.getTypeChecker())}))},n.getReferenceEntriesForNode=s,n.toRenameLocation=function(n,t,r,a){return __assign(__assign({},d(n)),a&&function(n,t,r){if(0!==n.kind&&e.isIdentifier(t)){var a=n.node,i=n.kind,o=t.text,s=e.isShorthandPropertyAssignment(a.parent);if(s||e.isObjectBindingElementWithoutPropertyName(a.parent)){var c={prefixText:o+\": \"},l={suffixText:\": \"+o};return 3===i?c:4===i?l:s?l:c}if(e.isImportSpecifier(n.node.parent)&&!n.node.parent.propertyName){var u=e.isExportSpecifier(t.parent)?r.getExportSpecifierLocalTargetSymbol(t.parent):r.getSymbolAtLocation(t);return e.contains(u.declarations,n.node.parent)?{prefixText:o+\" as \"}:e.emptyOptions}if(e.isExportSpecifier(n.node.parent)&&!n.node.parent.propertyName)return t===n.node?{prefixText:o+\" as \"}:{suffixText:\" as \"+o}}return e.emptyOptions}(n,t,r))},n.toReferenceEntry=u,n.toHighlightSpan=function(e){var n=d(e);if(0===e.kind)return{fileName:n.fileName,span:{textSpan:n.textSpan,kind:\"reference\"}};var t=m(e.node),r=__assign({textSpan:n.textSpan,kind:t?\"writtenReference\":\"reference\",isInString:2===e.kind||void 0},n.contextSpan&&{contextSpan:n.contextSpan});return{fileName:n.fileName,span:r}},n.getTextSpanOfEntry=function(e){return 0===e.kind?e.textSpan:p(e.node,e.node.getSourceFile())}}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){!function(n){!function(t){function r(n,t,r){if(n.parent&&e.isNamespaceExportDeclaration(n.parent)){var a=r.getAliasedSymbol(t),i=r.getMergedSymbol(a);if(a!==i)return i}}function a(n,t,r,a,o,c){var u=1536&n.flags?e.find(n.declarations,e.isSourceFile):void 0;if(u){var d=n.exports.get(\"export=\"),p=s(t,n,!!d,r,c);if(!d||!c.has(u.fileName))return p;var m=t.getTypeChecker();return i(t,p,l(n=e.skipAlias(d,m),void 0,r,c,m,a,o))}}function i(t){for(var r,a=[],i=1;i<arguments.length;i++)a[i-1]=arguments[i];for(var s=0,c=a;s<c.length;s++){var l=c[s];if(l&&l.length)if(r)for(var u=function(a){if(!a.definition||0!==a.definition.type)return r.push(a),\"continue\";var i=a.definition.symbol,s=e.findIndex(r,(function(e){return!!e.definition&&0===e.definition.type&&e.definition.symbol===i}));if(-1===s)return r.push(a),\"continue\";var c=r[s];r[s]={definition:c.definition,references:c.references.concat(a.references).sort((function(r,a){var i=o(t,r),s=o(t,a);if(i!==s)return e.compareValues(i,s);var c=n.getTextSpanOfEntry(r),l=n.getTextSpanOfEntry(a);return c.start!==l.start?e.compareValues(c.start,l.start):e.compareValues(c.length,l.length)}))}},d=0,p=l;d<p.length;d++){var m=p[d];u(m)}else r=l}return r}function o(e,n){var t=0===n.kind?e.getSourceFile(n.fileName):n.node.getSourceFile();return e.getSourceFiles().indexOf(t)}function s(t,r,a,i,o){e.Debug.assert(!!r.valueDeclaration);for(var s=e.mapDefined(n.findModuleReferences(t,i,r),(function(t){if(\"import\"===t.kind){var r=t.literal.parent;if(e.isLiteralTypeNode(r)){var i=e.cast(r.parent,e.isImportTypeNode);if(a&&!i.qualifier)return}return n.nodeEntry(t.literal)}return{kind:0,fileName:t.referencingFile.fileName,textSpan:e.createTextSpanFromRange(t.ref)}})),c=0,l=r.declarations;c<l.length;c++){switch((m=l[c]).kind){case 288:break;case 248:o.has(m.getSourceFile().fileName)&&s.push(n.nodeEntry(m.name));break;default:e.Debug.assert(!!(33554432&r.flags),\"Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.\")}}var u=r.exports.get(\"export=\");if(u)for(var d=0,p=u.declarations;d<p.length;d++){var m,f=(m=p[d]).getSourceFile();if(o.has(f.fileName)){var _=e.isBinaryExpression(m)&&e.isPropertyAccessExpression(m.left)?m.left.expression:e.isExportAssignment(m)?e.Debug.assertDefined(e.findChildOfKind(m,88,f)):e.getNameOfDeclaration(m)||m;s.push(n.nodeEntry(_))}}return s.length?[{definition:{type:0,symbol:r},references:s}]:e.emptyArray}function c(n){return 137===n.kind&&e.isTypeOperatorNode(n.parent)&&137===n.parent.operator}function l(n,t,r,a,i,o,s){var c=t&&function(n,t,r,a){var i=t.parent;if(e.isExportSpecifier(i)&&a)return C(t,n,i,r);return e.firstDefined(n.declarations,(function(a){if(!a.parent){if(33554432&n.flags)return;e.Debug.fail(\"Unexpected symbol at \"+e.Debug.formatSyntaxKind(t.kind)+\": \"+e.Debug.formatSymbol(n))}return e.isTypeLiteralNode(a.parent)&&e.isUnionTypeNode(a.parent.parent)?r.getPropertyOfType(r.getTypeFromTypeNode(a.parent.parent),n.name):void 0}))}(n,t,i,!P(s))||n,l=t?M(t,c):7,d=[],f=new p(r,a,t?function(n){switch(n.kind){case 128:return 1;case 75:if(e.isClassLike(n.parent))return e.Debug.assert(n.parent.name===n),2;default:return 0}}(t):0,i,o,l,s,d),_=P(s)?e.find(c.declarations,e.isExportSpecifier):void 0;if(_)L(_.name,c,_,f.createSearch(t,n,void 0),f,!0,!0);else if(t&&83===t.kind)A(t,c,f),m(t,c,{exportingModuleSymbol:e.Debug.assertDefined(c.parent,\"Expected export symbol to have a parent\"),exportKind:1},f);else{var g=f.createSearch(t,c,void 0,{allSearchSymbols:t?N(c,t,i,!!s.isForRename,!!s.providePrefixAndSuffixTextForRename,!!s.implementations):[c]});u(c,f,g)}return d}function u(n,t,r){var a=function(n){var t=n.declarations,r=n.flags,a=n.parent,i=n.valueDeclaration;if(i&&(200===i.kind||213===i.kind))return i;if(!t)return;if(8196&r){var o=e.find(t,(function(n){return e.hasModifier(n,8)}));return o?e.getAncestor(o,244):void 0}if(t.some(e.isObjectBindingElementWithoutPropertyName))return;var s,c=a&&!(262144&n.flags);if(c&&(!e.isExternalModuleSymbol(a)||a.globalExports))return;for(var l=0,u=t;l<u.length;l++){var d=u[l],p=e.getContainerNode(d);if(s&&s!==p)return;if(!p||288===p.kind&&!e.isExternalOrCommonJsModule(p))return;s=p}return c?s.getSourceFile():s}(n);if(a)T(a,a.getSourceFile(),r,t,!(e.isSourceFile(a)&&!e.contains(t.sourceFiles,a)));else for(var i=0,o=t.sourceFiles;i<o.length;i++){var s=o[i];t.cancellationToken.throwIfCancellationRequested(),g(s,r,t)}}var d;t.getReferencedSymbolsForNode=function(t,o,u,d,p,m,f){if(void 0===m&&(m={}),void 0===f&&(f=e.arrayToSet(d,(function(e){return e.fileName}))),e.isSourceFile(o)){var _=e.GoToDefinition.getReferenceAtPosition(o,t,u),g=_&&u.getTypeChecker().getMergedSymbol(_.file.symbol);return g&&s(u,g,!1,d,f)}if(!m.implementations){var y=function(t,r,a){if(e.isTypeKeyword(t.kind)){if(137===t.kind&&!c(t))return;return function(t,r,a,i){var o=e.flatMap(t,(function(t){return a.throwIfCancellationRequested(),e.mapDefined(v(t,e.tokenToString(r),t),(function(e){if(e.kind===r&&(!i||i(e)))return n.nodeEntry(e)}))}));return o.length?[{definition:{type:2,node:o[0].node},references:o}]:void 0}(r,t.kind,a,137===t.kind?c:void 0)}if(e.isJumpStatementTarget(t)){var i=e.getTargetLabel(t.parent,t.text);return i&&b(i.parent,i)}if(e.isLabelOfLabeledStatement(t))return b(t.parent,t);if(e.isThis(t))return function(t,r,a){var i=e.getThisContainer(t,!1),o=32;switch(i.kind){case 160:case 159:if(e.isObjectLiteralMethod(i))break;case 158:case 157:case 161:case 162:case 163:o&=e.getModifierFlags(i),i=i.parent;break;case 288:if(e.isExternalModule(i)||k(t))return;case 243:case 200:break;default:return}var s=e.flatMap(288===i.kind?r:[i.getSourceFile()],(function(n){return a.throwIfCancellationRequested(),v(n,\"this\",e.isSourceFile(i)?n:i).filter((function(n){if(!e.isThis(n))return!1;var t=e.getThisContainer(n,!1);switch(i.kind){case 200:case 243:return i.symbol===t.symbol;case 160:case 159:return e.isObjectLiteralMethod(i)&&i.symbol===t.symbol;case 213:case 244:return t.parent&&i.symbol===t.parent.symbol&&(32&e.getModifierFlags(t))===o;case 288:return 288===t.kind&&!e.isExternalModule(t)&&!k(n)}}))})).map((function(e){return n.nodeEntry(e)}));return[{definition:{type:3,node:e.firstDefined(s,(function(n){return e.isParameter(n.node.parent)?n.node:void 0}))||t},references:s}]}(t,r,a);if(101===t.kind)return function(t){var r=e.getSuperContainer(t,!1);if(!r)return;var a=32;switch(r.kind){case 158:case 157:case 160:case 159:case 161:case 162:case 163:a&=e.getModifierFlags(r),r=r.parent;break;default:return}var i=r.getSourceFile(),o=e.mapDefined(v(i,\"super\",r),(function(t){if(101===t.kind){var i=e.getSuperContainer(t,!1);return i&&(32&e.getModifierFlags(i))===a&&i.parent.symbol===r.symbol?n.nodeEntry(t):void 0}}));return[{definition:{type:0,symbol:r.symbol},references:o}]}(t);return}(o,d,p);if(y)return y}var h=u.getTypeChecker(),E=h.getSymbolAtLocation(o);if(!E)return!m.implementations&&e.isStringLiteral(o)?function(t,r,a){var i=e.flatMap(r,(function(r){return a.throwIfCancellationRequested(),e.mapDefined(v(r,t.text),(function(r){return e.isStringLiteral(r)&&r.text===t.text?n.nodeEntry(r,2):void 0}))}));return[{definition:{type:4,node:t},references:i}]}(o,d,p):void 0;if(\"export=\"===E.escapedName)return s(u,E.parent,!1,d,f);var T=a(E,u,d,p,m,f);if(T&&!(33554432&E.flags))return T;var S=r(o,E,h),x=S&&a(S,u,d,p,m,f);return i(u,T,l(E,o,d,f,h,p,m),x)},function(e){e[e.None=0]=\"None\",e[e.Constructor=1]=\"Constructor\",e[e.Class=2]=\"Class\"}(d||(d={}));var p=function(){function t(n,t,r,a,i,o,s,c){this.sourceFiles=n,this.sourceFilesSet=t,this.specialSearchKind=r,this.checker=a,this.cancellationToken=i,this.searchMeaning=o,this.options=s,this.result=c,this.inheritsFromCache=e.createMap(),this.markSeenContainingTypeReference=e.nodeSeenTracker(),this.markSeenReExportRHS=e.nodeSeenTracker(),this.symbolIdToReferences=[],this.sourceFileToSeenSymbols=[]}return t.prototype.includesSourceFile=function(e){return this.sourceFilesSet.has(e.fileName)},t.prototype.getImportSearches=function(e,t){return this.importTracker||(this.importTracker=n.createImportTracker(this.sourceFiles,this.sourceFilesSet,this.checker,this.cancellationToken)),this.importTracker(e,t,!!this.options.isForRename)},t.prototype.createSearch=function(n,t,r,a){void 0===a&&(a={});var i=a.text,o=void 0===i?e.stripQuotes(e.unescapeLeadingUnderscores((e.getLocalSymbolForExportDefault(t)||function(n){if(33555968&n.flags){var t=n.declarations&&e.find(n.declarations,(function(n){return!e.isSourceFile(n)&&!e.isModuleDeclaration(n)}));return t&&t.symbol}}(t)||t).escapedName)):i,s=a.allSearchSymbols,c=void 0===s?[t]:s;return{symbol:t,comingFrom:r,text:o,escapedText:e.escapeLeadingUnderscores(o),parents:this.options.implementations&&n?function(n,t,r){var a=e.isRightSideOfPropertyAccess(n)?n.parent:void 0,i=a&&r.getTypeAtLocation(a.expression),o=e.mapDefined(i&&(i.isUnionOrIntersection()?i.types:i.symbol===t.parent?void 0:[i]),(function(e){return e.symbol&&96&e.symbol.flags?e.symbol:void 0}));return 0===o.length?void 0:o}(n,t,this.checker):void 0,allSearchSymbols:c,includes:function(n){return e.contains(c,n)}}},t.prototype.referenceAdder=function(t){var r=e.getSymbolId(t),a=this.symbolIdToReferences[r];return a||(a=this.symbolIdToReferences[r]=[],this.result.push({definition:{type:0,symbol:t},references:a})),function(e,t){return a.push(n.nodeEntry(e,t))}},t.prototype.addStringOrCommentReference=function(e,n){this.result.push({definition:void 0,references:[{kind:0,fileName:e,textSpan:n}]})},t.prototype.markSearchedSymbols=function(n,t){for(var r=e.getNodeId(n),a=this.sourceFileToSeenSymbols[r]||(this.sourceFileToSeenSymbols[r]=e.createMap()),i=!1,o=0,s=t;o<s.length;o++){var c=s[o];i=e.addToSeen(a,e.getSymbolId(c))||i}return i},t}();function m(e,n,t,r){var a=r.getImportSearches(n,t),i=a.importSearches,o=a.singleReferences,s=a.indirectUsers;if(o.length)for(var c=r.referenceAdder(n),l=0,u=o;l<u.length;l++){var d=u[l];f(d,r)&&c(d)}for(var p=0,m=i;p<m.length;p++){var _=m[p],y=_[0],v=_[1];E(y.getSourceFile(),r.createSearch(y,v,1),r)}if(s.length){var h=void 0;switch(t.exportKind){case 0:h=r.createSearch(e,n,1);break;case 1:h=r.options.isForRename?void 0:r.createSearch(e,n,1,{text:\"default\"})}if(h)for(var b=0,T=s;b<T.length;b++){g(T[b],h,r)}}}function f(n,t){return!!S(n,t)&&(!t.options.isForRename||!!e.isIdentifier(n)&&!(e.isImportOrExportSpecifier(n.parent)&&\"default\"===n.escapedText))}function _(e,n){for(var t=0,r=e.declarations;t<r.length;t++){var a=r[t],i=a.getSourceFile();E(i,n.createSearch(a,e,0),n,n.includesSourceFile(i))}}function g(n,t,r){void 0!==e.getNameTable(n).get(t.escapedText)&&E(n,t,r)}function y(n,t,r,a){var i=e.isParameterPropertyDeclaration(n.parent,n.parent.parent)?e.first(t.getSymbolsOfParameterPropertyDeclaration(n.parent,n.text)):t.getSymbolAtLocation(n);if(i)for(var o=0,s=v(r,i.name);o<s.length;o++){var c=s[o];if(e.isIdentifier(c)&&c!==n&&c.escapedText===n.escapedText){var l=t.getSymbolAtLocation(c);if(l===i||t.getShorthandAssignmentValueSymbol(c.parent)===i||e.isExportSpecifier(c.parent)&&C(c,l,c.parent,t)===i){var u=a(c);if(u)return u}}}}function v(n,t,r){return void 0===r&&(r=n),h(n,t,r).map((function(t){return e.getTouchingPropertyName(n,t)}))}function h(n,t,r){void 0===r&&(r=n);var a=[];if(!t||!t.length)return a;for(var i=n.text,o=i.length,s=t.length,c=i.indexOf(t,r.pos);c>=0&&!(c>r.end);){var l=c+s;0!==c&&e.isIdentifierPart(i.charCodeAt(c-1),99)||l!==o&&e.isIdentifierPart(i.charCodeAt(l),99)||a.push(c),c=i.indexOf(t,c+s+1)}return a}function b(t,r){var a=t.getSourceFile(),i=r.text,o=e.mapDefined(v(a,i,t),(function(t){return t===r||e.isJumpStatementTarget(t)&&e.getTargetLabel(t,i)===r?n.nodeEntry(t):void 0}));return[{definition:{type:1,node:r},references:o}]}function E(e,n,t,r){return void 0===r&&(r=!0),t.cancellationToken.throwIfCancellationRequested(),T(e,e,n,t,r)}function T(e,n,t,r,a){if(r.markSearchedSymbols(n,t.allSearchSymbols))for(var i=0,o=h(n,t.text,e);i<o.length;i++){x(n,o[i],t,r,a)}}function S(n,t){return!!(e.getMeaningFromLocation(n)&t.searchMeaning)}function x(t,r,a,i,o){var s=e.getTouchingPropertyName(t,r);if(function(n,t){switch(n.kind){case 75:return n.text.length===t.length;case 14:case 10:var r=n;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(r)||e.isNameOfModuleDeclaration(n)||e.isExpressionOfExternalModuleImportEqualsDeclaration(n)||e.isCallExpression(n.parent)&&e.isBindableObjectDefinePropertyCall(n.parent)&&n.parent.arguments[1]===n)&&r.text.length===t.length;case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(n)&&n.text.length===t.length;case 83:return\"default\".length===t.length;default:return!1}}(s,a.text)){if(S(s,i)){var c=i.checker.getSymbolAtLocation(s);if(c){var l=s.parent;if(!e.isImportSpecifier(l)||l.propertyName!==s){if(e.isExportSpecifier(l))return e.Debug.assert(75===s.kind),void L(s,c,l,a,i,o);var d=function(n,t,r,a){var i=a.checker;return I(t,r,i,!1,!a.options.isForRename||!!a.options.providePrefixAndSuffixTextForRename,(function(t,r,a,i){return n.includes(a||r||t)?{symbol:!r||6&e.getCheckFlags(t)?t:r,kind:i}:void 0}),(function(t){return!(n.parents&&!n.parents.some((function(n){return function n(t,r,a,i){if(t===r)return!0;var o=e.getSymbolId(t)+\",\"+e.getSymbolId(r),s=a.get(o);if(void 0!==s)return s;a.set(o,!1);var c=t.declarations.some((function(t){return e.getAllSuperTypeNodes(t).some((function(e){var t=i.getTypeAtLocation(e);return!!t&&!!t.symbol&&n(t.symbol,r,a,i)}))}));return a.set(o,c),c}(t.parent,n,a.inheritsFromCache,i)})))}))}(a,c,s,i);if(d){switch(i.specialSearchKind){case 0:o&&A(s,d,i);break;case 1:!function(n,t,r,a){e.isNewExpressionTarget(n)&&A(n,r.symbol,a);var i=function(){return a.referenceAdder(r.symbol)};if(e.isClassLike(n.parent))e.Debug.assert(83===n.kind||n.parent.name===n),function(n,t,r){var a=D(n);if(a)for(var i=0,o=a.declarations;i<o.length;i++){var s=o[i],c=e.findChildOfKind(s,128,t);e.Debug.assert(161===s.kind&&!!c),r(c)}n.exports&&n.exports.forEach((function(n){var t=n.valueDeclaration;if(t&&160===t.kind){var a=t.body;a&&R(a,103,(function(n){e.isNewExpressionTarget(n)&&r(n)}))}}))}(r.symbol,t,i());else{var o=(s=n,e.tryGetClassExtendingExpressionWithTypeArguments(e.climbPastPropertyAccess(s).parent));o&&(function(n,t){var r=D(n.symbol);if(!r)return;for(var a=0,i=r.declarations;a<i.length;a++){var o=i[a];e.Debug.assert(161===o.kind);var s=o.body;s&&R(s,101,(function(n){e.isCallExpressionTarget(n)&&t(n)}))}}(o,i()),function(e,n){if(function(e){return!!D(e.symbol)}(e))return;var t=e.symbol,r=n.createSearch(void 0,t,void 0);u(t,n,r)}(o,a))}var s}(s,t,a,i);break;case 2:!function(n,t,r){A(n,t.symbol,r);var a=n.parent;if(r.options.isForRename||!e.isClassLike(a))return;e.Debug.assert(a.name===n);for(var i=r.referenceAdder(t.symbol),o=0,s=a.members;o<s.length;o++){var c=s[o];e.isMethodOrAccessor(c)&&e.hasModifier(c,32)&&(c.body&&c.body.forEachChild((function n(t){103===t.kind?i(t):e.isFunctionLike(t)||e.isClassLike(t)||t.forEachChild(n)})))}}(s,a,i);break;default:e.Debug.assertNever(i.specialSearchKind)}!function(e,t,r,a){var i=n.getImportOrExportSymbol(e,t,a.checker,1===r.comingFrom);if(!i)return;var o=i.symbol;0===i.kind?P(a.options)||_(o,a):m(e,o,i.exportInfo,a)}(s,c,a,i)}else!function(n,t,r){var a=n.flags,i=n.valueDeclaration,o=r.checker.getShorthandAssignmentValueSymbol(i),s=i&&e.getNameOfDeclaration(i);33554432&a||!s||!t.includes(o)||A(s,o,r)}(c,a,i)}}}}else!i.options.implementations&&(i.options.findInStrings&&e.isInString(t,r)||i.options.findInComments&&e.isInNonReferenceComment(t,r))&&i.addStringOrCommentReference(t.fileName,e.createTextSpan(r,a.text.length))}function L(t,r,a,i,o,s,c){e.Debug.assert(!c||!!o.options.providePrefixAndSuffixTextForRename,\"If alwaysGetReferences is true, then prefix/suffix text must be enabled\");var l=a.parent,u=a.propertyName,d=a.name,p=l.parent,f=C(t,r,a,o.checker);if(c||i.includes(f)){if(u?t===u?(p.moduleSpecifier||b(),s&&!o.options.isForRename&&o.markSeenReExportRHS(d)&&A(d,e.Debug.assertDefined(a.symbol),o)):o.markSeenReExportRHS(t)&&b():o.options.isForRename&&\"default\"===d.escapedText||b(),!P(o.options)||c){var g=83===t.originalKeywordKind||83===a.name.originalKeywordKind?1:0,y=e.Debug.assertDefined(a.symbol),v=n.getExportInfo(y,g,o.checker);v&&m(t,y,v,o)}if(1!==i.comingFrom&&p.moduleSpecifier&&!u&&!P(o.options)){var h=o.checker.getExportSpecifierLocalTargetSymbol(a);h&&_(h,o)}}function b(){s&&A(t,f,o)}}function C(n,t,r,a){return function(n,t){var r=t.parent,a=t.propertyName,i=t.name;return e.Debug.assert(a===n||i===n),a?a===n:!r.parent.moduleSpecifier}(n,r)&&a.getExportSpecifierLocalTargetSymbol(r)||t}function A(n,t,r){var a=\"kind\"in t?t:{kind:void 0,symbol:t},i=a.kind,o=a.symbol,s=r.referenceAdder(o);r.options.implementations?function(n,t,r){if(e.isDeclarationName(n)&&(a=n.parent,8388608&a.flags?!e.isInterfaceDeclaration(a)&&!e.isTypeAliasDeclaration(a):e.isVariableLike(a)?e.hasInitializer(a):e.isFunctionLikeDeclaration(a)?a.body:e.isClassLike(a)||e.isModuleOrEnumDeclaration(a)))return void t(n);var a;if(75!==n.kind)return;280===n.parent.kind&&O(n,r.checker,t);var i=function n(t){return e.isIdentifier(t)||e.isPropertyAccessExpression(t)?n(t.parent):e.isExpressionWithTypeArguments(t)?e.tryCast(t.parent.parent,e.isClassLike):void 0}(n);if(i)return void t(i);var o=e.findAncestor(n,(function(n){return!e.isQualifiedName(n.parent)&&!e.isTypeNode(n.parent)&&!e.isTypeElement(n.parent)})),s=o.parent;if(e.hasType(s)&&s.type===o&&r.markSeenContainingTypeReference(s))if(e.hasInitializer(s))l(s.initializer);else if(e.isFunctionLike(s)&&s.body){var c=s.body;222===c.kind?e.forEachReturnStatement(c,(function(e){e.expression&&l(e.expression)})):l(c)}else e.isAssertionExpression(s)&&l(s.expression);function l(e){(function e(n){switch(n.kind){case 199:return e(n.expression);case 201:case 200:case 192:case 213:case 191:return!0;default:return!1}})(e)&&t(e)}}(n,s,r):s(n,i)}function D(e){return e.members&&e.members.get(\"__constructor\")}function k(e){return 75===e.kind&&155===e.parent.kind&&e.parent.name===e}function N(e,n,t,r,a,i){var o=[];return I(e,n,t,r,!(r&&a),(function(e,n,t){o.push(t||n||e)}),(function(){return!i})),o}function I(n,t,a,i,o,s,c){var l=e.getContainingObjectLiteralElement(t);if(l){var u=a.getShorthandAssignmentValueSymbol(t.parent);if(u&&i)return s(u,void 0,void 0,3);var d=a.getContextualType(l.parent),p=d&&e.firstDefined(e.getPropertySymbolsFromContextualType(l,a,d,!0),(function(e){return E(e,4)}));if(p)return p;var m=function(n,t){return e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent.parent)?t.getPropertySymbolOfDestructuringAssignment(n):void 0}(t,a),f=m&&s(m,void 0,void 0,4);if(f)return f;var _=u&&s(u,void 0,void 0,3);if(_)return _}var g=r(t,n,a);if(g){var y=s(g,void 0,void 0,1);if(y)return y}var v=E(n);if(v)return v;if(n.valueDeclaration&&e.isParameterPropertyDeclaration(n.valueDeclaration,n.valueDeclaration.parent)){var h=a.getSymbolsOfParameterPropertyDeclaration(e.cast(n.valueDeclaration,e.isParameter),n.name);return e.Debug.assert(2===h.length&&!!(1&h[0].flags)&&!!(4&h[1].flags)),E(1&n.flags?h[1]:h[0])}if(!i){var b=void 0;return(b=o?e.isObjectBindingElementWithoutPropertyName(t.parent)?e.getPropertySymbolFromBindingElement(a,t.parent):void 0:T(n,a))&&E(b,4)}if(e.Debug.assert(i),o)return(b=T(n,a))&&E(b,4);function E(n,t){return e.firstDefined(a.getRootSymbols(n),(function(r){return s(n,r,void 0,t)||(r.parent&&96&r.parent.flags&&c(r)?e.getPropertySymbolsFromBaseTypes(r.parent,r.name,a,(function(e){return s(n,r,e,t)})):void 0)}))}function T(n,t){var r=e.getDeclarationOfKind(n,190);if(r&&e.isObjectBindingElementWithoutPropertyName(r))return e.getPropertySymbolFromBindingElement(t,r)}}function M(n,t){var r=e.getMeaningFromLocation(n),a=t.declarations;if(a){var i=void 0;do{i=r;for(var o=0,s=a;o<s.length;o++){var c=s[o],l=e.getMeaningFromDeclaration(c);l&r&&(r|=l)}}while(r!==i)}return r}function O(n,t,r){var a=t.getSymbolAtLocation(n),i=t.getShorthandAssignmentValueSymbol(a.valueDeclaration);if(i)for(var o=0,s=i.getDeclarations();o<s.length;o++){var c=s[o];1&e.getMeaningFromDeclaration(c)&&r(c)}}function R(n,t,r){e.forEachChild(n,(function(e){e.kind===t&&r(e),R(e,t,r)}))}function P(e){return e.isForRename&&e.providePrefixAndSuffixTextForRename}t.eachExportReference=function(t,r,a,i,o,s,c,l){for(var u=n.createImportTracker(t,e.arrayToSet(t,(function(e){return e.fileName})),r,a)(i,{exportKind:c?1:0,exportingModuleSymbol:o},!1),d=u.importSearches,p=u.indirectUsers,m=0,f=d;m<f.length;m++){l(f[m][0])}for(var _=0,g=p;_<g.length;_++)for(var y=0,h=v(g[_],c?\"default\":s);y<h.length;y++){var b=h[y];e.isIdentifier(b)&&!e.isImportOrExportSpecifier(b.parent)&&r.getSymbolAtLocation(b)===i&&l(b)}},t.isSymbolReferencedInFile=function(e,n,t){return y(e,n,t,(function(){return!0}))||!1},t.eachSymbolReferenceInFile=y,t.eachSignatureCall=function(n,t,r,a){if(n.name&&e.isIdentifier(n.name))for(var i=e.Debug.assertDefined(r.getSymbolAtLocation(n.name)),o=0,s=t;o<s.length;o++)for(var c=0,l=v(s[o],i.name);c<l.length;c++){var u=l[c];if(e.isIdentifier(u)&&u!==n.name&&u.escapedText===n.name.escapedText){var d=e.climbPastPropertyAccess(u),p=d.parent;if(e.isCallExpression(p)&&p.expression===d){var m=r.getSymbolAtLocation(u);m&&r.getRootSymbols(m).some((function(e){return e===i}))&&a(p)}}}},t.getIntersectingMeaningFromDeclarations=M,t.getReferenceEntriesForShorthandPropertyAssignment=O}(n.Core||(n.Core={}))}(e.FindAllReferences||(e.FindAllReferences={}))}(ts||(ts={})),function(e){function n(n,r,a,i){var o=a(n);return function(n){var s=i&&i.tryGetSourcePosition({fileName:n,pos:0}),c=function(n){if(a(n)===o)return r;var t=e.tryRemoveDirectoryPrefix(n,o,a);return void 0===t?void 0:r+\"/\"+t}(s?s.fileName:n);return s?void 0===c?void 0:function(n,r,a,i){var o=e.getRelativePathFromFile(n,r,i);return t(e.getDirectoryPath(a),o)}(s.fileName,c,n,a):c}}function t(n,t){return e.ensurePathIsNonModuleName(function(n,t){return e.normalizePath(e.combinePaths(n,t))}(n,t))}function r(n,t){if(n){if(n.resolvedModule){var r=i(n.resolvedModule.resolvedFileName);if(r)return r}var a=e.forEach(n.failedLookupLocations,(function(n){return e.endsWith(n,\"/package.json\")?void 0:i(n)}));return a||n.resolvedModule&&{newFileName:n.resolvedModule.resolvedFileName,updated:!1}}function i(e){var n=t(e);return n&&{newFileName:n,updated:!0}}}function a(n,t){return e.createRange(n.getStart(t)+1,n.end-1)}function i(n,t){if(e.isObjectLiteralExpression(n))for(var r=0,a=n.properties;r<a.length;r++){var i=a[r];e.isPropertyAssignment(i)&&e.isStringLiteral(i.name)&&t(i,i.name.text)}}e.getEditsForFileRename=function(o,s,c,l,u,d,p){var m=e.hostUsesCaseSensitiveFileNames(l),f=e.createGetCanonicalFileName(m),_=n(s,c,f,p),g=n(c,s,f,p);return e.textChanges.ChangeTracker.with({host:l,formatContext:u,preferences:d},(function(n){!function(n,r,o,s,c,l,u){var d=n.getCompilerOptions().configFile;if(!d)return;var p=e.getDirectoryPath(d.fileName),m=e.getTsConfigObjectLiteralExpression(d);if(!m)return;function f(n){for(var t=!1,r=0,a=e.isArrayLiteralExpression(n.initializer)?n.initializer.elements:[n.initializer];r<a.length;r++){t=_(a[r])||t}return t}function _(n){if(!e.isStringLiteral(n))return!1;var i=t(p,n.text),s=o(i);return void 0!==s&&(r.replaceRangeWithText(d,a(n,d),g(s)),!0)}function g(n){return e.getRelativePathFromDirectory(p,n,!u)}i(m,(function(n,t){switch(t){case\"files\":case\"include\":case\"exclude\":if(!f(n)&&\"include\"===t&&e.isArrayLiteralExpression(n.initializer)){var a=e.mapDefined(n.initializer.elements,(function(n){return e.isStringLiteral(n)?n.text:void 0})),o=e.getFileMatcherPatterns(p,[],a,u,l);e.getRegexFromPattern(e.Debug.assertDefined(o.includeFilePattern),u).test(s)&&!e.getRegexFromPattern(e.Debug.assertDefined(o.includeFilePattern),u).test(c)&&r.insertNodeAfter(d,e.last(n.initializer.elements),e.createStringLiteral(g(c)))}break;case\"compilerOptions\":i(n.initializer,(function(n,t){var r=e.getOptionFromName(t);r&&(r.isFilePath||\"list\"===r.type&&r.element.isFilePath)?f(n):\"paths\"===t&&i(n.initializer,(function(n){if(e.isArrayLiteralExpression(n.initializer))for(var t=0,r=n.initializer.elements;t<r.length;t++){_(r[t])}}))}))}}))}(o,n,_,s,c,l.getCurrentDirectory(),m),function(n,i,o,s,c,l){for(var u=n.getSourceFiles(),d=function(d){var p=o(d.path),m=void 0!==p?p:d.path,f=e.getDirectoryPath(m),_=s(d.fileName),g=_||d.fileName,y=e.getDirectoryPath(g),v=void 0!==p||void 0!==_;!function(n,t,r,i){for(var o=0,s=n.referencedFiles||e.emptyArray;o<s.length;o++){var c=s[o];void 0!==(d=r(c.fileName))&&d!==n.text.slice(c.pos,c.end)&&t.replaceRangeWithText(n,c,d)}for(var l=0,u=n.imports;l<u.length;l++){var d,p=u[l];void 0!==(d=i(p))&&d!==p.text&&t.replaceRangeWithText(n,a(p,n),d)}}(d,i,(function(n){if(e.pathIsRelative(n)){var r=t(y,n),a=o(r);return void 0===a?void 0:e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(f,a,l))}}),(function(t){var a=n.getTypeChecker().getSymbolAtLocation(t);if(!a||!a.declarations.some((function(n){return e.isAmbientModule(n)}))){var i=void 0!==_?r(e.resolveModuleName(t.text,g,n.getCompilerOptions(),c),o):function(n,t,a,i,o,s){if(n){var c=e.find(n.declarations,e.isSourceFile).fileName,l=s(c);return void 0===l?{newFileName:c,updated:!1}:{newFileName:l,updated:!0}}return r(o.resolveModuleNames?o.getResolvedModuleWithFailedLookupLocationsFromCache&&o.getResolvedModuleWithFailedLookupLocationsFromCache(t.text,a.fileName):i.getResolvedModuleWithFailedLookupLocationsFromCache(t.text,a.fileName),s)}(a,t,d,n,c,o);return void 0!==i&&(i.updated||v&&e.pathIsRelative(t.text))?e.moduleSpecifiers.updateModuleSpecifier(n.getCompilerOptions(),m,i.newFileName,c,u,n.redirectTargetsMap,t.text):void 0}}))},p=0,m=u;p<m.length;p++){var f=m[p];d(f)}}(o,n,_,g,l,f)}))},e.getPathUpdater=n}(ts||(ts={})),function(e){!function(n){function t(n,t,a){var l,u,d=r(t,a,n);if(d)return[(l=d.fileName,u=d.file.fileName,{fileName:u,textSpan:e.createTextSpanFromBounds(0,0),kind:\"script\",name:l,containerName:void 0,containerKind:void 0})];var p=e.getTouchingPropertyName(t,a);if(p!==t){var m=p.parent;if(e.isJumpStatementTarget(p)){var f=e.getTargetLabel(p.parent,p.text);return f?[s(f,\"label\",p.text,void 0)]:void 0}var _=n.getTypeChecker(),g=function(e,n){var t=n.getSymbolAtLocation(e);if(t&&2097152&t.flags&&function(e,n){if(75!==e.kind)return!1;if(e.parent===n)return!0;switch(n.kind){case 254:case 252:return!0;case 257:return 256===n.parent.kind;default:return!1}}(e,t.declarations[0])){var r=n.getAliasedSymbol(t);if(r.declarations)return r}return t}(p,_);if(!g)return function(n,t){if(!e.isPropertyAccessExpression(n.parent)||n.parent.name!==n)return;var r=t.getTypeAtLocation(n.parent.expression);return e.mapDefined(r.isUnionOrIntersection()?r.types:[r],(function(e){var n=t.getIndexInfoOfType(e,0);return n&&n.declaration&&c(t,n.declaration)}))}(p,_);var y=function(n,t){var r=function(n){var t=function n(t){return e.isRightSideOfPropertyAccess(t)?n(t.parent):t}(n),r=t.parent;return r&&e.isCallLikeExpression(r)&&e.getInvokedExpression(r)===t?r:void 0}(t),a=r&&n.getResolvedSignature(r);return e.tryCast(a&&a.declaration,(function(n){return e.isFunctionLike(n)&&!e.isFunctionTypeNode(n)}))}(_,p);if(y&&(!e.isJsxOpeningLikeElement(p.parent)||!function(e){switch(e.kind){case 161:case 170:case 165:return!0;default:return!1}}(y))){var v=c(_,y);if(_.getRootSymbols(g).some((function(n){return function(n,t){return n===t.symbol||n===t.symbol.parent||!e.isCallLikeExpression(t.parent)&&n===t.parent.symbol}(n,y)}))||g.declarations&&g.declarations.some((function(n){return e.isVariableDeclaration(n)&&!!n.initializer&&e.isRequireCall(n.initializer,!1)})))return[v];var h=i(_,g,p,y)||e.emptyArray;return 101===p.kind?__spreadArrays([v],h):__spreadArrays(h,[v])}if(280===p.parent.kind){var b=_.getShorthandAssignmentValueSymbol(g.valueDeclaration);return b?b.declarations.map((function(e){return o(e,_,b,p)})):[]}if(e.isPropertyName(p)&&e.isBindingElement(m)&&e.isObjectBindingPattern(m.parent)&&p===(m.propertyName||m.name)){var E=e.getNameFromPropertyName(p),T=_.getTypeAtLocation(m.parent);return void 0===E?e.emptyArray:e.flatMap(T.isUnion()?T.types:[T],(function(e){var n=e.getProperty(E);return n&&i(_,n,p)}))}var S=e.getContainingObjectLiteralElement(p);if(S){var x=S&&_.getContextualType(S.parent);if(x)return e.flatMap(e.getPropertySymbolsFromContextualType(S,_,x,!1),(function(e){return i(_,e,p)}))}return i(_,g,p)}}function r(e,n,t){var r=l(e.referencedFiles,n);if(r)return(o=t.getSourceFileFromReference(e,r))&&{fileName:r.fileName,file:o};var a=l(e.typeReferenceDirectives,n);if(a){var i=t.getResolvedTypeReferenceDirectives().get(a.fileName);return(o=i&&t.getSourceFile(i.resolvedFileName))&&{fileName:a.fileName,file:o}}var o,s=l(e.libReferenceDirectives,n);return s?(o=t.getLibFileFromReference(s))&&{fileName:s.fileName,file:o}:void 0}function a(n,t,r){return e.flatMap(!n.isUnion()||32&n.flags?[n]:n.types,(function(e){return e.symbol&&i(t,e.symbol,r)}))}function i(n,t,r,a){var i=e.filter(t.declarations,(function(n){return n!==a&&(!e.isAssignmentDeclaration(n)||n===t.valueDeclaration)}))||void 0;return function(){if(32&t.flags&&!(16&t.flags)&&(e.isNewExpressionTarget(r)||128===r.kind)){return s((e.find(i,e.isClassLike)||e.Debug.fail(\"Expected declaration to have at least one class-like declaration\")).members,!0)}}()||(e.isCallOrNewExpressionTarget(r)||e.isNameOfFunctionDeclaration(r)?s(i,!1):void 0)||e.map(i,(function(e){return o(e,n,t,r)}));function s(a,i){if(a){var s=a.filter(i?e.isConstructorDeclaration:e.isFunctionLike),c=s.filter((function(e){return!!e.body}));return s.length?0!==c.length?c.map((function(e){return o(e,n,t,r)})):[o(e.last(s),n,t,r)]:void 0}}}function o(n,t,r,a){var i=t.symbolToString(r);return s(n,e.SymbolDisplay.getSymbolKind(t,r,a),i,r.parent?t.symbolToString(r.parent,a):\"\")}function s(n,t,r,a){var i=e.getNameOfDeclaration(n)||n,o=i.getSourceFile(),s=e.createTextSpanFromNode(i,o);return __assign({fileName:o.fileName,textSpan:s,kind:t,name:r,containerKind:void 0,containerName:a},e.FindAllReferences.toContextSpan(s,o,e.FindAllReferences.getContextNode(n)))}function c(e,n){return o(n,e,n.symbol,n)}function l(n,t){return e.find(n,(function(n){return e.textRangeContainsPositionInclusive(n,t)}))}n.getDefinitionAtPosition=t,n.getReferenceAtPosition=r,n.getTypeDefinitionAtPosition=function(n,t,r){var i=e.getTouchingPropertyName(t,r);if(i!==t){var o=n.getSymbolAtLocation(i);if(o){var s=n.getTypeOfSymbolAtLocation(o,i),c=function(n,t,r){if(t.symbol===n||n.valueDeclaration&&t.symbol&&e.isVariableDeclaration(n.valueDeclaration)&&n.valueDeclaration.initializer===t.symbol.valueDeclaration){var a=t.getCallSignatures();if(1===a.length)return r.getReturnTypeOfSignature(e.first(a))}return}(o,s,n),l=c&&a(c,n,i);return l&&0!==l.length?l:a(s,n,i)}}},n.getDefinitionAndBoundSpan=function(n,r,a){var i=t(n,r,a);if(i&&0!==i.length){var o=l(r.referencedFiles,a)||l(r.typeReferenceDirectives,a)||l(r.libReferenceDirectives,a);if(o)return{definitions:i,textSpan:e.createTextSpanFromRange(o)};var s=e.getTouchingPropertyName(r,a);return{definitions:i,textSpan:e.createTextSpan(s.getStart(),s.getWidth())}}},n.findReferenceInPosition=l}(e.GoToDefinition||(e.GoToDefinition={}))}(ts||(ts={})),function(e){!function(n){var t,r,a=[\"abstract\",\"access\",\"alias\",\"argument\",\"async\",\"augments\",\"author\",\"borrows\",\"callback\",\"class\",\"classdesc\",\"constant\",\"constructor\",\"constructs\",\"copyright\",\"default\",\"deprecated\",\"description\",\"emits\",\"enum\",\"event\",\"example\",\"exports\",\"extends\",\"external\",\"field\",\"file\",\"fileoverview\",\"fires\",\"function\",\"generator\",\"global\",\"hideconstructor\",\"host\",\"ignore\",\"implements\",\"inheritdoc\",\"inner\",\"instance\",\"interface\",\"kind\",\"lends\",\"license\",\"listens\",\"member\",\"memberof\",\"method\",\"mixes\",\"module\",\"name\",\"namespace\",\"override\",\"package\",\"param\",\"private\",\"property\",\"protected\",\"public\",\"readonly\",\"requires\",\"returns\",\"see\",\"since\",\"static\",\"summary\",\"template\",\"this\",\"throws\",\"todo\",\"tutorial\",\"type\",\"typedef\",\"var\",\"variation\",\"version\",\"virtual\",\"yields\"];function i(e){var n=e.comment;switch(e.kind){case 305:return r(e.class);case 314:return a(e.typeParameters.map((function(e){return e.getText()})).join(\", \"));case 313:return r(e.typeExpression);case 315:case 308:case 316:case 310:var t=e.name;return t?r(t):n;default:return n}function r(e){return a(e.getText())}function a(e){return void 0===n?e:e+\" \"+n}}function o(n){return{name:n,kind:\"\",kindModifiers:\"\",displayParts:[e.textPart(n)],documentation:e.emptyArray,tags:void 0,codeActions:void 0}}function s(n){switch(n.kind){case 243:case 200:case 160:case 161:case 159:return{commentOwner:n,parameters:n.parameters};case 279:return s(n.initializer);case 244:case 245:case 157:case 247:case 282:case 246:return{commentOwner:n};case 224:var t=n.declarationList.declarations;return{commentOwner:n,parameters:1===t.length&&t[0].initializer?function(n){for(;199===n.kind;)n=n.expression;switch(n.kind){case 200:case 201:return n.parameters;case 213:var t=e.find(n.members,e.isConstructorDeclaration);return t?t.parameters:e.emptyArray}return e.emptyArray}(t[0].initializer):void 0};case 288:return\"quit\";case 248:return 248===n.parent.kind?void 0:{commentOwner:n};case 208:var r=n;return 0===e.getAssignmentDeclarationKind(r)?\"quit\":{commentOwner:n,parameters:e.isFunctionLike(r.right)?r.right.parameters:e.emptyArray}}}n.getJsDocCommentsFromDeclarations=function(n){var t=[];return e.forEachUnique(n,(function(n){for(var r=0,a=function(n){switch(n.kind){case 310:case 316:return[n];case 308:case 315:return[n,n.parent];default:return e.getJSDocCommentsAndTags(n)}}(n);r<a.length;r++){var i=a[r].comment;void 0!==i&&(t.length&&t.push(e.lineBreakPart()),t.push(e.textPart(i)))}})),t},n.getJsDocTagsFromDeclarations=function(n){var t=[];return e.forEachUnique(n,(function(n){for(var r=0,a=e.getJSDocTags(n);r<a.length;r++){var o=a[r];t.push({name:o.tagName.text,text:i(o)})}})),t},n.getJSDocTagNameCompletions=function(){return t||(t=e.map(a,(function(e){return{name:e,kind:\"keyword\",kindModifiers:\"\",sortText:\"0\"}})))},n.getJSDocTagNameCompletionDetails=o,n.getJSDocTagCompletions=function(){return r||(r=e.map(a,(function(e){return{name:\"@\"+e,kind:\"keyword\",kindModifiers:\"\",sortText:\"0\"}})))},n.getJSDocTagCompletionDetails=o,n.getJSDocParameterNameCompletions=function(n){if(!e.isIdentifier(n.name))return e.emptyArray;var t=n.name.text,r=n.parent,a=r.parent;return e.isFunctionLike(a)?e.mapDefined(a.parameters,(function(a){if(e.isIdentifier(a.name)){var i=a.name.text;if(!r.tags.some((function(t){return t!==n&&e.isJSDocParameterTag(t)&&e.isIdentifier(t.name)&&t.name.escapedText===i}))&&(void 0===t||e.startsWith(i,t)))return{name:i,kind:\"parameter\",kindModifiers:\"\",sortText:\"0\"}}})):[]},n.getJSDocParameterNameCompletionDetails=function(n){return{name:n,kind:\"parameter\",kindModifiers:\"\",displayParts:[e.textPart(n)],documentation:e.emptyArray,tags:void 0,codeActions:void 0}},n.getDocCommentTemplateAtPosition=function(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.findAncestor(a,e.isJSDoc);if(!i||void 0===i.comment&&!e.length(i.tags)){var o=a.getStart(t);if(i||!(o<r)){var c=function(n){return e.forEachAncestor(n,s)}(a);if(c){var l=c.commentOwner,u=c.parameters;if(!(l.getStart(t)<r)){if(!u||0===u.length){return{newText:\"/** */\",caretOffset:3}}var d=function(n,t){for(var r=n.text,a=e.getLineStartPositionForPosition(t,n),i=a;i<=t&&e.isWhiteSpaceSingleLine(r.charCodeAt(i));i++);return r.slice(a,i)}(t,r),p=\"/**\"+n+d+\" * \";return{newText:p+n+function(e,n,t,r){return e.map((function(e,a){var i=e.name,o=e.dotDotDotToken,s=75===i.kind?i.text:\"param\"+a;return t+\" * @param \"+(n?o?\"{...any} \":\"{any} \":\"\")+s+r})).join(\"\")}(u,e.hasJSFileExtension(t.fileName),d,n)+d+\" */\"+(o===r?n+d:\"\"),caretOffset:p.length}}}}}}}(e.JsDoc||(e.JsDoc={}))}(ts||(ts={})),function(e){!function(n){function t(e,n){switch(e.kind){case 254:case 257:case 252:var t=n.getSymbolAtLocation(e.name),r=n.getAliasedSymbol(t);return t.escapedName!==r.escapedName;default:return!0}}function r(n,t){var r=e.getNameOfDeclaration(n);return!!r&&(i(r,t)||153===r.kind&&a(r.expression,t))}function a(n,t){return i(n,t)||e.isPropertyAccessExpression(n)&&(t.push(n.name.text),!0)&&a(n.expression,t)}function i(n,t){return e.isPropertyNameLiteral(n)&&(t.push(e.getTextOfIdentifierOrLiteral(n)),!0)}function o(n){var t=[],i=e.getNameOfDeclaration(n);if(i&&153===i.kind&&!a(i.expression,t))return e.emptyArray;t.shift();for(var o=e.getContainerNode(n);o;){if(!r(o,t))return e.emptyArray;o=e.getContainerNode(o)}return t.reverse()}function s(n,t){return e.compareValues(n.matchKind,t.matchKind)||e.compareStringsCaseSensitiveUI(n.name,t.name)}function c(n){var t=n.declaration,r=e.getContainerNode(t),a=r&&e.getNameOfDeclaration(r);return{name:n.name,kind:e.getNodeKind(t),kindModifiers:e.getNodeModifiers(t),matchKind:e.PatternMatchKind[n.matchKind],isCaseSensitive:n.isCaseSensitive,fileName:n.fileName,textSpan:e.createTextSpanFromNode(t),containerName:a?a.text:\"\",containerKind:a?e.getNodeKind(r):\"\"}}n.getNavigateToItems=function(n,r,a,i,l,u){var d=e.createPatternMatcher(i);if(!d)return e.emptyArray;for(var p=[],m=function(e){if(a.throwIfCancellationRequested(),u&&e.isDeclarationFile)return\"continue\";e.getNamedDeclarations().forEach((function(n,a){!function(e,n,r,a,i,s){var c=e.getMatchForLastSegmentOfPattern(n);if(!c)return;for(var l=0,u=r;l<u.length;l++){var d=u[l];if(t(d,a))if(e.patternContainsDots){var p=e.getFullMatch(o(d),n);p&&s.push({name:n,fileName:i,matchKind:p.kind,isCaseSensitive:p.isCaseSensitive,declaration:d})}else s.push({name:n,fileName:i,matchKind:c.kind,isCaseSensitive:c.isCaseSensitive,declaration:d})}}(d,a,n,r,e.fileName,p)}))},f=0,_=n;f<_.length;f++){m(_[f])}return p.sort(s),(void 0===l?p:p.slice(0,l)).map(c)}}(e.NavigateTo||(e.NavigateTo={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i,o,s=/\\s+/g,c=[],l=[],u=[];function d(){a=void 0,r=void 0,c=[],i=void 0,u=[]}function p(e){return U(e.getText(a))}function m(e){return e.node.kind}function f(e,n){e.children?e.children.push(n):e.children=[n]}function _(n){e.Debug.assert(!c.length);var t={node:n,name:void 0,additionalNodes:void 0,parent:void 0,children:void 0,indent:0};i=t;for(var r=0,a=n.statements;r<a.length;r++){x(a[r])}return T(),e.Debug.assert(!i&&!c.length),t}function g(e,n){f(i,y(e,n))}function y(n,t){return{node:n,name:t||(e.isDeclaration(n)||e.isExpression(n)?e.getNameOfDeclaration(n):void 0),additionalNodes:void 0,parent:i,children:void 0,indent:i.indent+1}}function v(n){o||(o=e.createMap()),o.set(n,!0)}function h(e){for(var n=0;n<e;n++)T()}function b(n,t){for(var r=[];!e.isPropertyNameLiteral(t);){var a=e.getNameOrArgument(t),i=e.getElementOrPropertyAccessName(t);t=t.expression,\"prototype\"!==i&&r.push(a)}r.push(t);for(var o=r.length-1;o>0;o--){E(n,a=r[o])}return[r.length-1,r[0]]}function E(e,n){var t=y(e,n);f(i,t),c.push(i),l.push(o),i=t}function T(){i.children&&(L(i.children,i),k(i.children)),i=c.pop(),o=l.pop()}function S(e,n,t){E(e,t),x(n),T()}function x(n){var t;if(r.throwIfCancellationRequested(),n&&!e.isToken(n))switch(n.kind){case 161:var a=n;S(a,a.body);for(var i=0,s=a.parameters;i<s.length;i++){var c=s[i];e.isParameterPropertyDeclaration(c,a)&&g(c)}break;case 160:case 162:case 163:case 159:e.hasDynamicName(n)||S(n,n.body);break;case 158:case 157:e.hasDynamicName(n)||g(n);break;case 254:var l=n;l.name&&g(l.name);var u=l.namedBindings;if(u)if(255===u.kind)g(u);else for(var d=0,p=u.elements;d<p.length;d++){g(p[d])}break;case 280:S(n,n.name);break;case 281:var m=n.expression;e.isIdentifier(m)?g(n,m):g(n);break;case 190:case 279:case 241:var f=n,_=f.name,y=f.initializer;e.isBindingPattern(_)?x(_):y&&function(e){switch(e.kind){case 201:case 200:case 213:return!0;default:return!1}}(y)?(E(n),e.forEachChild(y,x),T()):S(n,y);break;case 243:var L=n.name;L&&e.isIdentifier(L)&&v(L.text),S(n,n.body);break;case 201:case 200:S(n,n.body);break;case 247:E(n);for(var C=0,A=n.members;C<A.length;C++){F(N=A[C])||g(N)}T();break;case 244:case 213:case 245:E(n);for(var D=0,k=n.members;D<k.length;D++){var N;x(N=k[D])}T();break;case 248:S(n,function n(t){return t.body&&e.isModuleDeclaration(t.body)?n(t.body):t}(n).body);break;case 261:case 252:case 166:case 164:case 165:case 246:g(n);break;case 195:case 208:var I=e.getAssignmentDeclarationKind(n);switch(I){case 1:case 2:return void S(n,n.right);case 6:case 3:var M=(V=n).left,O=3===I?M.expression:M,R=0,P=void 0;return e.isIdentifier(O.expression)?(v(O.expression.text),P=O.expression):(R=(t=b(V,O.expression))[0],P=t[1]),6===I?e.isObjectLiteralExpression(V.right)&&V.right.properties.length>0&&(E(V,P),e.forEachChild(V.right,x),T()):e.isFunctionExpression(V.right)||e.isArrowFunction(V.right)?S(n,V.right,P):(E(V,P),S(n,V.right,M.name),T()),void h(R);case 7:case 9:var w=n,G=(P=7===I?w.arguments[0]:w.arguments[0].expression,w.arguments[1]),B=b(n,P);R=B[0];return E(n,B[1]),E(n,e.setTextRange(e.createIdentifier(G.text),G)),x(n.arguments[2]),T(),T(),void h(R);case 5:var V,U=(M=(V=n).left).expression;if(e.isIdentifier(U)&&\"prototype\"!==e.getElementOrPropertyAccessName(M)&&o&&o.has(U.text))return void(e.isFunctionExpression(V.right)||e.isArrowFunction(V.right)?S(n,V.right,U):e.isBindableStaticAccessExpression(M)&&(E(V,U),S(V.left,V.right,e.getNameOrArgument(M)),T()));break;case 4:case 0:case 8:break;default:e.Debug.assertNever(I)}default:e.hasJSDocNodes(n)&&e.forEach(n.jsDoc,(function(n){e.forEach(n.tags,(function(n){e.isJSDocTypeAlias(n)&&g(n)}))})),e.forEachChild(n,x)}}function L(n,t){var r=e.createMap();e.filterMutate(n,(function(n,a){var i=n.name||e.getNameOfDeclaration(n.node),o=i&&p(i);if(!o)return!0;var s=r.get(o);if(!s)return r.set(o,n),!0;if(s instanceof Array){for(var c=0,l=s;c<l.length;c++){var u;if(A(u=l[c],n,a,t))return!1}return s.push(n),!0}return!A(u=s,n,a,t)&&(r.set(o,[u,n]),!0)}))}n.getNavigationBarItems=function(n,t){r=t,a=n;try{return e.map(function(e){var n=[];function t(e){if(function(e){if(e.children)return!0;switch(m(e)){case 244:case 213:case 247:case 245:case 248:case 288:case 246:case 315:case 308:return!0;case 201:case 243:case 200:return function(e){if(!e.node.body)return!1;switch(m(e.parent)){case 249:case 288:case 160:case 161:return!0;default:return!1}}(e);default:return!1}}(e)&&(n.push(e),e.children))for(var r=0,a=e.children;r<a.length;r++){t(a[r])}}return t(e),n}(_(n)),R)}finally{d()}},n.getNavigationTree=function(e,n){r=n,a=e;try{return O(_(e))}finally{d()}};var C=((t={})[5]=!0,t[3]=!0,t[7]=!0,t[9]=!0,t[0]=!1,t[1]=!1,t[2]=!1,t[8]=!1,t[6]=!0,t[4]=!1,t);function A(n,t,r,a){return!!function(n,t,r,a){function i(n){return e.isFunctionExpression(n)||e.isFunctionDeclaration(n)||e.isVariableDeclaration(n)}var o=e.isBinaryExpression(t.node)||e.isCallExpression(t.node)?e.getAssignmentDeclarationKind(t.node):0,s=e.isBinaryExpression(n.node)||e.isCallExpression(n.node)?e.getAssignmentDeclarationKind(n.node):0;if(C[o]&&C[s]||i(n.node)&&C[o]||i(t.node)&&C[s]||e.isClassDeclaration(n.node)&&C[o]||e.isClassDeclaration(t.node)&&C[s]||e.isClassDeclaration(n.node)&&i(t.node)||e.isClassDeclaration(t.node)&&i(n.node)){var c=n.additionalNodes&&e.lastOrUndefined(n.additionalNodes)||n.node;if(!e.isClassDeclaration(n.node)&&!e.isClassDeclaration(t.node)||i(n.node)||i(t.node)){var l=i(n.node)?n.node:i(t.node)?t.node:void 0;if(void 0!==l){var u=y(e.setTextRange(e.createConstructor(void 0,void 0,[],void 0),l));u.indent=n.indent+1,u.children=n.node===l?n.children:t.children,n.children=n.node===l?e.concatenate([u],t.children||[t]):e.concatenate(n.children||[n],[u])}else(n.children||t.children)&&(n.children=e.concatenate(n.children||[n],t.children||[t]),n.children&&(L(n.children,n),k(n.children)));c=n.node=e.setTextRange(e.createClassDeclaration(void 0,void 0,n.name||e.createIdentifier(\"__class__\"),void 0,void 0,[]),n.node)}else n.children=e.concatenate(n.children,t.children),n.children&&L(n.children,n);var d=t.node;return a.children[r-1].node.end===c.end?e.setTextRange(c,{pos:c.pos,end:d.end}):(n.additionalNodes||(n.additionalNodes=[]),n.additionalNodes.push(e.setTextRange(e.createClassDeclaration(void 0,void 0,n.name||e.createIdentifier(\"__class__\"),void 0,void 0,[]),t.node))),!0}return 0!==o}(n,t,r,a)||!!function(n,t,r){if(n.kind!==t.kind||n.parent!==t.parent&&(!D(n,r)||!D(t,r)))return!1;switch(n.kind){case 158:case 160:case 162:case 163:return e.hasModifier(n,32)===e.hasModifier(t,32);case 248:return function e(n,t){return n.body.kind===t.body.kind&&(248!==n.body.kind||e(n.body,t.body))}(n,t);default:return!0}}(n.node,t.node,a)&&(function(n,t){var r;n.additionalNodes=n.additionalNodes||[],n.additionalNodes.push(t.node),t.additionalNodes&&(r=n.additionalNodes).push.apply(r,t.additionalNodes);n.children=e.concatenate(n.children,t.children),n.children&&(L(n.children,n),k(n.children))}(n,t),!0)}function D(n,t){var r=e.isModuleBlock(n.parent)?n.parent.parent:n.parent;return r===t.node||e.contains(t.additionalNodes,r)}function k(e){e.sort(N)}function N(n,t){return e.compareStringsCaseSensitiveUI(I(n.node),I(t.node))||e.compareValues(m(n),m(t))}function I(n){if(248===n.kind)return w(n);var t=e.getNameOfDeclaration(n);if(t&&e.isPropertyName(t)){var r=e.getPropertyNameForPropertyNameNode(t);return r&&e.unescapeLeadingUnderscores(r)}switch(n.kind){case 200:case 201:case 213:return V(n);default:return}}function M(n,t){if(248===n.kind)return U(w(n));if(t){var r=e.isIdentifier(t)?t.text:e.isElementAccessExpression(t)?\"[\"+p(t.argumentExpression)+\"]\":p(t);if(r.length>0)return U(r)}switch(n.kind){case 288:var a=n;return e.isExternalModule(a)?'\"'+e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(a.fileName))))+'\"':\"<global>\";case 201:case 243:case 200:case 244:case 213:return 512&e.getModifierFlags(n)?\"default\":V(n);case 161:return\"constructor\";case 165:return\"new()\";case 164:return\"()\";case 166:return\"[]\";default:return\"<unknown>\"}}function O(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:B(n.node),spans:P(n),nameSpan:n.name&&G(n.name),childItems:e.map(n.children,O)}}function R(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:B(n.node),spans:P(n),childItems:e.map(n.children,(function(n){return{text:M(n.node,n.name),kind:e.getNodeKind(n.node),kindModifiers:e.getNodeModifiers(n.node),spans:P(n),childItems:u,indent:0,bolded:!1,grayed:!1}}))||u,indent:n.indent,bolded:!1,grayed:!1}}function P(e){var n=[G(e.node)];if(e.additionalNodes)for(var t=0,r=e.additionalNodes;t<r.length;t++){var a=r[t];n.push(G(a))}return n}function w(n){if(e.isAmbientModule(n))return e.getTextOfNode(n.name);var t=[];for(t.push(e.getTextOfIdentifierOrLiteral(n.name));n.body&&248===n.body.kind;)n=n.body,t.push(e.getTextOfIdentifierOrLiteral(n.name));return t.join(\".\")}function F(e){return!e.name||153===e.name.kind}function G(n){return 288===n.kind?e.createTextSpanFromRange(n):e.createTextSpanFromNode(n,a)}function B(n){return n.parent&&241===n.parent.kind&&(n=n.parent),e.getNodeModifiers(n)}function V(n){var t=n.parent;if(n.name&&e.getFullWidth(n.name)>0)return U(e.declarationNameToString(n.name));if(e.isVariableDeclaration(t))return U(e.declarationNameToString(t.name));if(e.isBinaryExpression(t)&&62===t.operatorToken.kind)return p(t.left).replace(s,\"\");if(e.isPropertyAssignment(t))return p(t.name);if(512&e.getModifierFlags(n))return\"default\";if(e.isClassLike(n))return\"<class>\";if(e.isCallExpression(t)){var r=function n(t){if(e.isIdentifier(t))return t.text;if(e.isPropertyAccessExpression(t)){var r=n(t.expression),a=t.name.text;return void 0===r?a:r+\".\"+a}return}(t.expression);if(void 0!==r)return(r=U(r)).length>150?r+\" callback\":r+\"(\"+U(e.mapDefined(t.arguments,(function(n){return e.isStringLiteralLike(n)?n.getText(a):void 0})).join(\", \"))+\") callback\"}return\"<function>\"}function U(e){return(e=e.length>150?e.substring(0,150)+\"...\":e).replace(/\\\\?(\\r?\\n|\\r|\\u2028|\\u2029)/g,\"\")}}(e.NavigationBar||(e.NavigationBar={}))}(ts||(ts={})),function(e){!function(n){function t(n,t){var r=e.isStringLiteral(t)&&t.text;return e.isString(r)&&e.some(n.moduleAugmentations,(function(n){return e.isStringLiteral(n)&&n.text===r}))}function r(n){return void 0!==n&&e.isStringLiteralLike(n)?n.text:void 0}function a(n){if(0===n.length)return n;var t=function(n){for(var t,r=[],a=[],i=[],o=0,s=n;o<s.length;o++){var c=s[o];if(void 0!==c.importClause){var l=c.importClause,u=l.name,d=l.namedBindings;u&&r.push(c),d&&(e.isNamespaceImport(d)?a.push(c):i.push(c))}else t=t||c}return{importWithoutClause:t,defaultImports:r,namespaceImports:a,namedImports:i}}(n),r=t.importWithoutClause,a=t.defaultImports,i=t.namespaceImports,c=t.namedImports,u=[];if(r&&u.push(r),1===a.length&&1===i.length&&0===c.length){var d=a[0];return u.push(o(d,d.importClause.name,i[0].importClause.namedBindings)),u}for(var p,m=0,f=e.stableSort(i,(function(e,n){return l(e.importClause.namedBindings.name,n.importClause.namedBindings.name)}));m<f.length;m++){var _=f[m];u.push(o(_,void 0,_.importClause.namedBindings))}if(0===a.length&&0===c.length)return u;var g=[];if(1===a.length)p=a[0].importClause.name;else for(var y=0,v=a;y<v.length;y++){d=v[y];g.push(e.createImportSpecifier(e.createIdentifier(\"default\"),d.importClause.name))}g.push.apply(g,e.flatMap(c,(function(e){return e.importClause.namedBindings.elements})));var h=s(g),b=a.length>0?a[0]:c[0],E=0===h.length?p?void 0:e.createNamedImports(e.emptyArray):0===c.length?e.createNamedImports(h):e.updateNamedImports(c[0].importClause.namedBindings,h);return u.push(o(b,p,E)),u}function i(n){if(0===n.length)return n;var t=function(e){for(var n,t=[],r=0,a=e;r<a.length;r++){var i=a[r];void 0===i.exportClause?n=n||i:t.push(i)}return{exportWithoutClause:n,namedExports:t}}(n),r=t.exportWithoutClause,a=t.namedExports,i=[];if(r&&i.push(r),0===a.length)return i;var o=[];o.push.apply(o,e.flatMap(a,(function(e){return e.exportClause.elements})));var c=s(o),l=a[0];return i.push(e.updateExportDeclaration(l,l.decorators,l.modifiers,e.updateNamedExports(l.exportClause,c),l.moduleSpecifier)),i}function o(n,t,r){return e.updateImportDeclaration(n,n.decorators,n.modifiers,e.updateImportClause(n.importClause,t,r),n.moduleSpecifier)}function s(n){return e.stableSort(n,(function(e,n){return l(e.propertyName||e.name,n.propertyName||n.name)||l(e.name,n.name)}))}function c(n,t){var a=r(n),i=r(t);return e.compareBooleans(void 0===a,void 0===i)||e.compareBooleans(e.isExternalModuleNameRelative(a),e.isExternalModuleNameRelative(i))||e.compareStringsCaseInsensitive(a,i)}function l(n,t){return e.compareStringsCaseInsensitive(n.text,t.text)}n.organizeImports=function(n,s,l,u,d){var p=e.textChanges.ChangeTracker.fromContext({host:l,formatContext:s,preferences:d}),m=function(r){return a(function(n,r,a){for(var i=a.getTypeChecker(),s=i.getJsxNamespace(r),c=!!(2&r.transformFlags),l=[],u=0,d=n;u<d.length;u++){var p=d[u],m=p.importClause,f=p.moduleSpecifier;if(m){var _=m.name,g=m.namedBindings;if(_&&!v(_)&&(_=void 0),g)if(e.isNamespaceImport(g))v(g.name)||(g=void 0);else{var y=g.elements.filter((function(e){return v(e.name)}));y.length<g.elements.length&&(g=y.length?e.updateNamedImports(g,y):void 0)}_||g?l.push(o(p,_,g)):t(r,f)&&(r.isDeclarationFile?l.push(e.createImportDeclaration(p.decorators,p.modifiers,void 0,f)):l.push(p))}else l.push(p)}return l;function v(n){return c&&n.text===s||e.FindAllReferences.Core.isSymbolReferencedInFile(n,i,r)}}(r,n,u))};y(n.statements.filter(e.isImportDeclaration),m),y(n.statements.filter(e.isExportDeclaration),i);for(var f=0,_=n.statements.filter(e.isAmbientModule);f<_.length;f++){var g=_[f];if(g.body)y(g.body.statements.filter(e.isImportDeclaration),m),y(g.body.statements.filter(e.isExportDeclaration),i)}return p.getChanges();function y(t,a){if(0!==e.length(t)){e.suppressLeadingTrivia(t[0]);var i=e.group(t,(function(e){return r(e.moduleSpecifier)})),o=e.stableSort(i,(function(e,n){return c(e[0].moduleSpecifier,n[0].moduleSpecifier)})),u=e.flatMap(o,(function(e){return r(e[0].moduleSpecifier)?a(e):e}));0===u.length?p.delete(n,t[0]):p.replaceNodeWithNodes(n,t[0],u,{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include,suffix:e.getNewLineOrDefaultFromHost(l,s.options)});for(var d=1;d<t.length;d++)p.delete(n,t[d])}}},n.coalesceImports=a,n.coalesceExports=i,n.compareModuleSpecifiers=c}(e.OrganizeImports||(e.OrganizeImports={}))}(ts||(ts={})),function(e){!function(n){n.collectElements=function(n,t){var c=[];return function(n,t,r){var c=40,l=0,u=n.statements,d=u.length;for(;l<d;){for(;l<d&&!e.isAnyImportSyntax(u[l]);)f(u[l]),l++;if(l===d)break;for(var p=l;l<d&&e.isAnyImportSyntax(u[l]);)a(u[l],n,t,r),l++;var m=l-1;m!==p&&r.push(i(e.findChildOfKind(u[p],95,n).getStart(n),u[m].getEnd(),\"imports\"))}function f(l){if(0!==c){t.throwIfCancellationRequested(),e.isDeclaration(l)&&a(l,n,t,r),function(n){if(!e.isFunctionExpression(n)&&!e.isArrowFunction(n))return!1;var t=e.findAncestor(n,e.isVariableStatement);return!!t&&e.getSingleInitializerOfVariableStatementOrPropertyDeclaration(t)===n}(l)&&a(l.parent.parent.parent,n,t,r);var u=function(n,t){switch(n.kind){case 222:if(e.isFunctionLike(n.parent))return function(n,t,r){var a=e.isNodeArrayMultiLine(n.parameters,r)?e.findChildOfKind(n,20,r):e.findChildOfKind(t,18,r),i=e.findChildOfKind(t,19,r);return a&&i&&o(a,i,n,r,201!==n.kind)}(n.parent,n,t);switch(n.parent.kind){case 227:case 230:case 231:case 229:case 226:case 228:case 235:case 278:return d(n.parent);case 239:var r=n.parent;if(r.tryBlock===n)return d(n.parent);if(r.finallyBlock===n)return d(e.findChildOfKind(r,91,t));default:return s(e.createTextSpanFromNode(n,t),\"code\")}case 249:return d(n.parent);case 244:case 213:case 245:case 247:case 250:return d(n);case 192:return u(n);case 191:return u(n,22);case 264:return a=n,c=e.createTextSpanFromBounds(a.openingElement.getStart(t),a.closingElement.getEnd()),l=a.openingElement.tagName.getText(t),s(c,\"code\",c,!1,\"<\"+l+\">...</\"+l+\">\");case 268:return function(n){var r=e.createTextSpanFromBounds(n.openingFragment.getStart(t),n.closingFragment.getEnd());return s(r,\"code\",r,!1,\"<>...</>\")}(n);case 265:case 266:return function(e){if(0===e.properties.length)return;return i(e.getStart(t),e.getEnd(),\"code\")}(n.attributes)}var a,c,l;function u(n,t){return void 0===t&&(t=18),d(n,!1,!e.isArrayLiteralExpression(n.parent)&&!e.isCallExpression(n.parent),t)}function d(r,a,i,s,c){void 0===a&&(a=!1),void 0===i&&(i=!0),void 0===s&&(s=18),void 0===c&&(c=18===s?19:23);var l=e.findChildOfKind(n,s,t),u=e.findChildOfKind(n,c,t);return l&&u&&o(l,u,r,t,a,i)}}(l,n);u&&r.push(u),c--,e.isIfStatement(l)&&l.elseStatement&&e.isIfStatement(l.elseStatement)?(f(l.expression),f(l.thenStatement),c++,f(l.elseStatement),c--):l.forEachChild(f),c++}}}(n,t,c),function(n,t){for(var a=[],i=n.getLineStarts(),o=0,c=i;o<c.length;o++){var l=c[o],u=n.getLineEndOfPosition(l),d=r(n.text.substring(l,u));if(d&&!e.isInComment(n,l))if(d[1]){var p=a.pop();p&&(p.textSpan.length=u-p.textSpan.start,p.hintSpan.length=u-p.textSpan.start,t.push(p))}else{var m=e.createTextSpanFromBounds(n.text.indexOf(\"//\",l),u);a.push(s(m,\"region\",m,!1,d[2]||\"#region\"))}}}(n,c),c.sort((function(e,n){return e.textSpan.start-n.textSpan.start}))};var t=/^\\s*\\/\\/\\s*#(end)?region(?:\\s+(.*))?(?:\\r)?$/;function r(e){return t.exec(e)}function a(n,t,a,o){var s=e.getLeadingCommentRangesOfNode(n,t);if(s){for(var c=-1,l=-1,u=0,d=t.getFullText(),p=0,m=s;p<m.length;p++){var f=m[p],_=f.kind,g=f.pos,y=f.end;switch(a.throwIfCancellationRequested(),_){case 2:if(r(d.slice(g,y))){v(),u=0;break}0===u&&(c=g),l=y,u++;break;case 3:v(),o.push(i(g,y,\"comment\")),u=0;break;default:e.Debug.assertNever(_)}}v()}function v(){u>1&&o.push(i(c,l,\"comment\"))}}function i(n,t,r){return s(e.createTextSpanFromBounds(n,t),r)}function o(n,t,r,a,i,o){return void 0===i&&(i=!1),void 0===o&&(o=!0),s(e.createTextSpanFromBounds(o?n.getFullStart():n.getStart(a),t.getEnd()),\"code\",e.createTextSpanFromNode(r,a),i)}function s(e,n,t,r,a){return void 0===t&&(t=e),void 0===r&&(r=!1),void 0===a&&(a=\"...\"),{textSpan:e,kind:n,hintSpan:t,bannerText:a,autoCollapse:r}}}(e.OutliningElementsCollector||(e.OutliningElementsCollector={}))}(ts||(ts={})),function(e){var n;function t(e,n){return{kind:e,isCaseSensitive:n}}function r(e,n){var t=n.get(e);return t||n.set(e,t=v(e)),t}function a(a,i,o){var s=function(e,n){for(var t=e.length-n.length,r=function(t){if(L(n,(function(n,r){return p(e.charCodeAt(r+t))===n})))return{value:t}},a=0;a<=t;a++){var i=r(a);if(\"object\"==typeof i)return i.value}return-1}(a,i.textLowerCase);if(0===s)return t(i.text.length===a.length?n.exact:n.prefix,e.startsWith(a,i.text));if(i.isLowerCase){if(-1===s)return;for(var d=0,m=r(a,o);d<m.length;d++){var f=m[d];if(c(a,f,i.text,!0))return t(n.substring,c(a,f,i.text,!1))}if(i.text.length<a.length&&u(a.charCodeAt(s)))return t(n.substring,!1)}else{if(a.indexOf(i.text)>0)return t(n.substring,!0);if(i.characterSpans.length>0){var _=r(a,o),g=!!l(a,_,i,!1)||!l(a,_,i,!0)&&void 0;if(void 0!==g)return t(n.camelCase,g)}}}function i(e,n,t){if(L(n.totalTextChunk.text,(function(e){return 32!==e&&42!==e}))){var r=a(e,n.totalTextChunk,t);if(r)return r}for(var i,s=0,c=n.subWordTextChunks;s<c.length;s++){i=o(i,a(e,c[s],t))}return i}function o(n,t){return e.min(n,t,s)}function s(n,t){return void 0===n?1:void 0===t?-1:e.compareValues(n.kind,t.kind)||e.compareBooleans(!n.isCaseSensitive,!t.isCaseSensitive)}function c(e,n,t,r,a){return void 0===a&&(a={start:0,length:t.length}),a.length<=n.length&&x(0,a.length,(function(i){return function(e,n,t){return t?p(e)===p(n):e===n}(t.charCodeAt(a.start+i),e.charCodeAt(n.start+i),r)}))}function l(n,t,r,a){for(var i,o,s=r.characterSpans,l=0,d=0;;){if(d===s.length)return!0;if(l===t.length)return!1;for(var p=t[l],m=!1;d<s.length;d++){var f=s[d];if(m&&(!u(r.text.charCodeAt(s[d-1].start))||!u(r.text.charCodeAt(s[d].start))))break;if(!c(n,p,r.text,a,f))break;m=!0,i=void 0===i?l:i,o=void 0===o||o,p=e.createTextSpan(p.start+f.length,p.length-f.length)}m||void 0===o||(o=!1),l++}}function u(n){if(n>=65&&n<=90)return!0;if(n<127||!e.isUnicodeIdentifierStart(n,99))return!1;var t=String.fromCharCode(n);return t===t.toUpperCase()}function d(n){if(n>=97&&n<=122)return!0;if(n<127||!e.isUnicodeIdentifierStart(n,99))return!1;var t=String.fromCharCode(n);return t===t.toLowerCase()}function p(e){return e>=65&&e<=90?e-65+97:e<127?e:String.fromCharCode(e).toLowerCase().charCodeAt(0)}function m(e){return e>=48&&e<=57}function f(e){return u(e)||d(e)||m(e)||95===e||36===e}function _(e){for(var n=[],t=0,r=0,a=0;a<e.length;a++){f(e.charCodeAt(a))?(0===r&&(t=a),r++):r>0&&(n.push(g(e.substr(t,r))),r=0)}return r>0&&n.push(g(e.substr(t,r))),n}function g(e){var n=e.toLowerCase();return{text:e,textLowerCase:n,isLowerCase:e===n,characterSpans:y(e)}}function y(e){return h(e,!1)}function v(e){return h(e,!0)}function h(n,t){for(var r=[],a=0,i=1;i<n.length;i++){var o=m(n.charCodeAt(i-1)),s=m(n.charCodeAt(i)),c=S(n,t,i),l=t&&T(n,i,a);(b(n.charCodeAt(i-1))||b(n.charCodeAt(i))||o!==s||c||l)&&(E(n,a,i)||r.push(e.createTextSpan(a,i-a)),a=i)}return E(n,a,n.length)||r.push(e.createTextSpan(a,n.length-a)),r}function b(e){switch(e){case 33:case 34:case 35:case 37:case 38:case 39:case 40:case 41:case 42:case 44:case 45:case 46:case 47:case 58:case 59:case 63:case 64:case 91:case 92:case 93:case 95:case 123:case 125:return!0}return!1}function E(e,n,t){return L(e,(function(e){return b(e)&&95!==e}),n,t)}function T(e,n,t){return n!==t&&n+1<e.length&&u(e.charCodeAt(n))&&d(e.charCodeAt(n+1))&&L(e,u,t,n)}function S(e,n,t){var r=u(e.charCodeAt(t-1));return u(e.charCodeAt(t))&&(!n||!r)}function x(e,n,t){for(var r=e;r<n;r++)if(!t(r))return!1;return!0}function L(e,n,t,r){return void 0===t&&(t=0),void 0===r&&(r=e.length),x(t,r,(function(t){return n(e.charCodeAt(t),t)}))}!function(e){e[e.exact=0]=\"exact\",e[e.prefix=1]=\"prefix\",e[e.substring=2]=\"substring\",e[e.camelCase=3]=\"camelCase\"}(n=e.PatternMatchKind||(e.PatternMatchKind={})),e.createPatternMatcher=function(n){var t=e.createMap(),r=n.trim().split(\".\").map((function(e){return{totalTextChunk:g(n=e.trim()),subWordTextChunks:_(n)};var n}));if(!r.some((function(e){return!e.subWordTextChunks.length})))return{getFullMatch:function(n,a){return function(n,t,r,a){var s;if(!i(t,e.last(r),a))return;if(r.length-1>n.length)return;for(var c=r.length-2,l=n.length-1;c>=0;c-=1,l-=1)s=o(s,i(n[l],r[c],a));return s}(n,a,r,t)},getMatchForLastSegmentOfPattern:function(n){return i(n,e.last(r),t)},patternContainsDots:r.length>1}},e.breakIntoCharacterSpans=y,e.breakIntoWordSpans=v}(ts||(ts={})),function(e){e.preProcessFile=function(n,t,r){void 0===t&&(t=!0),void 0===r&&(r=!1);var a,i,o,s={languageVersion:1,pragmas:void 0,checkJsDirective:void 0,referencedFiles:[],typeReferenceDirectives:[],libReferenceDirectives:[],amdDependencies:[],hasNoDefaultLib:void 0,moduleName:void 0},c=[],l=0,u=!1;function d(){return i=o,18===(o=e.scanner.scan())?l++:19===o&&l--,o}function p(){var n=e.scanner.getTokenValue(),t=e.scanner.getTokenPos();return{fileName:n,pos:t,end:t+n.length}}function m(){c.push(p()),f()}function f(){0===l&&(u=!0)}function _(){var n=e.scanner.getToken();return 129===n&&(134===(n=d())&&10===(n=d())&&(a||(a=[]),a.push({ref:p(),depth:l})),!0)}function g(){if(24===i)return!1;var n=e.scanner.getToken();if(95===n){if(20===(n=d())){if(10===(n=d()))return m(),!0}else{if(10===n)return m(),!0;if(75===n||e.isKeyword(n))if(148===(n=d())){if(10===(n=d()))return m(),!0}else if(62===n){if(v(!0))return!0}else{if(27!==n)return!0;n=d()}if(18===n){for(n=d();19!==n&&1!==n;)n=d();19===n&&148===(n=d())&&10===(n=d())&&m()}else 41===n&&122===(n=d())&&(75===(n=d())||e.isKeyword(n))&&148===(n=d())&&10===(n=d())&&m()}return!0}return!1}function y(){var n=e.scanner.getToken();if(88===n){if(f(),18===(n=d())){for(n=d();19!==n&&1!==n;)n=d();19===n&&148===(n=d())&&10===(n=d())&&m()}else if(41===n)148===(n=d())&&10===(n=d())&&m();else if(95===n&&(75===(n=d())||e.isKeyword(n))&&62===(n=d())&&v(!0))return!0;return!0}return!1}function v(n){var t=n?d():e.scanner.getToken();return 138===t&&(20===(t=d())&&10===(t=d())&&m(),!0)}function h(){var n=e.scanner.getToken();if(75===n&&\"define\"===e.scanner.getTokenValue()){if(20!==(n=d()))return!0;if(10===(n=d())){if(27!==(n=d()))return!0;n=d()}if(22!==n)return!0;for(n=d();23!==n&&1!==n;)10===n&&m(),n=d();return!0}return!1}if(t&&function(){for(e.scanner.setText(n),d();1!==e.scanner.getToken();)_()||g()||y()||r&&(v(!1)||h())||d();e.scanner.setText(void 0)}(),e.processCommentPragmas(s,n),e.processPragmasIntoFields(s,e.noop),u){if(a)for(var b=0,E=a;b<E.length;b++){var T=E[b];c.push(T.ref)}return{referencedFiles:s.referencedFiles,typeReferenceDirectives:s.typeReferenceDirectives,libReferenceDirectives:s.libReferenceDirectives,importedFiles:c,isLibFile:!!s.hasNoDefaultLib,ambientExternalModules:void 0}}var S=void 0;if(a)for(var x=0,L=a;x<L.length;x++){0===(T=L[x]).depth?(S||(S=[]),S.push(T.ref.fileName)):c.push(T.ref)}return{referencedFiles:s.referencedFiles,typeReferenceDirectives:s.typeReferenceDirectives,libReferenceDirectives:s.libReferenceDirectives,importedFiles:c,isLibFile:!!s.hasNoDefaultLib,ambientExternalModules:S}}}(ts||(ts={})),function(e){!function(n){function t(n){return{canRename:!1,localizedErrorMessage:e.getLocaleSpecificMessage(n)}}function r(n,t){var r=n.getStart(t),a=n.getWidth(t);return e.isStringLiteralLike(n)&&(r+=1,a-=2),e.createTextSpan(r,a)}n.getRenameInfo=function(n,a,i,o){var s=e.getTouchingPropertyName(a,i);return(s&&function(n){switch(n.kind){case 75:case 10:case 14:case 103:return!0;case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(n);default:return!1}}(s)?function(n,a,i,o,s){var c=a.getSymbolAtLocation(n);if(!c)return;var l=c.declarations;if(!l||0===l.length)return;if(l.some(o))return t(e.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);if(e.isIdentifier(n)&&83===n.originalKeywordKind&&1536&c.parent.flags)return;if(e.isStringLiteralLike(n)&&e.tryGetImportFromModuleSpecifier(n))return s&&s.allowRenameOfImportPath?function(n,r,a){if(!e.isExternalModuleNameRelative(n.text))return t(e.Diagnostics.You_cannot_rename_a_module_via_a_global_import);var i=e.find(a.declarations,e.isSourceFile);if(!i)return;var o=e.endsWith(n.text,\"/index\")||e.endsWith(n.text,\"/index.js\")?void 0:e.tryRemoveSuffix(e.removeFileExtension(i.fileName),\"/index\"),s=void 0===o?i.fileName:o,c=void 0===o?\"module\":\"directory\",l=n.text.lastIndexOf(\"/\")+1,u=e.createTextSpan(n.getStart(r)+1+l,n.text.length-l);return{canRename:!0,fileToRename:s,kind:c,displayName:s,fullDisplayName:s,kindModifiers:\"\",triggerSpan:u}}(n,i,c):void 0;var u=e.SymbolDisplay.getSymbolKind(a,c,n),d=e.isImportOrExportSpecifierName(n)||e.isStringOrNumericLiteralLike(n)&&153===n.parent.kind?e.stripQuotes(e.getTextOfIdentifierOrLiteral(n)):void 0,p=d||a.symbolToString(c),m=d||a.getFullyQualifiedName(c);return function(e,n,t,a,i,o){return{canRename:!0,fileToRename:void 0,kind:t,displayName:e,fullDisplayName:n,kindModifiers:a,triggerSpan:r(i,o)}}(p,m,u,e.SymbolDisplay.getSymbolModifiers(c),n,i)}(s,n.getTypeChecker(),a,(function(e){return n.isSourceFileDefaultLibrary(e.getSourceFile())}),o):void 0)||t(e.Diagnostics.You_cannot_rename_this_element)}}(e.Rename||(e.Rename={}))}(ts||(ts={})),function(e){!function(n){function t(n,t,r){return e.Debug.assert(r.pos<=t),t<r.end||r.getEnd()===t&&e.getTouchingPropertyName(n,t).pos<r.end}n.getSmartSelectionRange=function(n,r){var i,o,s={textSpan:e.createTextSpanFromBounds(r.getFullStart(),r.getEnd())},l=r;e:for(;;){var u=a(l);if(!u.length)break;for(var d=0;d<u.length;d++){var p=u[d-1],m=u[d],f=u[d+1];if(m.getStart(r)>n)break e;if(t(r,n,m)){if(e.isBlock(m)||e.isTemplateSpan(m)||e.isTemplateHead(m)||e.isTemplateTail(m)||p&&e.isTemplateHead(p)||e.isVariableDeclarationList(m)&&e.isVariableStatement(l)||e.isSyntaxList(m)&&e.isVariableDeclarationList(l)||e.isVariableDeclaration(m)&&e.isSyntaxList(l)&&1===u.length){l=m;break}if(e.isTemplateSpan(l)&&f&&e.isTemplateMiddleOrTemplateTail(f))h(m.getFullStart()-\"${\".length,f.getStart()+\"}\".length);var _=e.isSyntaxList(m)&&(o=void 0,18===(o=(i=p)&&i.kind)||22===o||20===o||266===o)&&c(f)&&!e.positionsAreOnSameLine(p.getStart(),f.getStart(),r),g=e.hasJSDocNodes(m)&&m.jsDoc[0].getStart(),y=_?p.getEnd():m.getStart(),v=_?f.getStart():m.getEnd();e.isNumber(g)&&h(g,v),h(y,v),(e.isStringLiteral(m)||e.isTemplateLiteral(m))&&h(y+1,v-1),l=m;break}if(d===u.length-1)break e}}return s;function h(t,r){if(t!==r){var a=e.createTextSpanFromBounds(t,r);(!s||!e.textSpansEqual(a,s.textSpan)&&e.textSpanIntersectsWithPosition(a,n))&&(s=__assign({textSpan:a},s&&{parent:s}))}}};var r=e.or(e.isImportDeclaration,e.isImportEqualsDeclaration);function a(n){if(e.isSourceFile(n))return i(n.getChildAt(0).getChildren(),r);if(e.isMappedTypeNode(n)){var t=n.getChildren(),a=t[0],c=t.slice(1),l=e.Debug.assertDefined(c.pop());e.Debug.assertEqual(a.kind,18),e.Debug.assertEqual(l.kind,19);var u=i(c,(function(e){return e===n.readonlyToken||137===e.kind||e===n.questionToken||57===e.kind}));return[a,s(o(i(u,(function(e){var n=e.kind;return 22===n||154===n||23===n})),(function(e){return 58===e.kind}))),l]}if(e.isPropertySignature(n))return o(c=i(n.getChildren(),(function(t){return t===n.name||e.contains(n.modifiers,t)})),(function(e){return 58===e.kind}));if(e.isParameter(n)){var d=i(n.getChildren(),(function(e){return e===n.dotDotDotToken||e===n.name}));return o(i(d,(function(e){return e===d[0]||e===n.questionToken})),(function(e){return 62===e.kind}))}return e.isBindingElement(n)?o(n.getChildren(),(function(e){return 62===e.kind})):n.getChildren()}function i(e,n){for(var t,r=[],a=0,i=e;a<i.length;a++){var o=i[a];n(o)?(t=t||[]).push(o):(t&&(r.push(s(t)),t=void 0),r.push(o))}return t&&r.push(s(t)),r}function o(n,t,r){if(void 0===r&&(r=!0),n.length<2)return n;var a=e.findIndex(n,t);if(-1===a)return n;var i=n.slice(0,a),o=n[a],c=e.last(n),l=r&&26===c.kind,u=n.slice(a+1,l?n.length-1:void 0),d=e.compact([i.length?s(i):void 0,o,u.length?s(u):void 0]);return l?d.concat(c):d}function s(n){e.Debug.assertGreaterThanOrEqual(n.length,1);var t=e.createNode(317,n[0].pos,e.last(n).end);return t._children=n,t}function c(e){var n=e&&e.kind;return 19===n||23===n||21===n||267===n}}(e.SmartSelectionRange||(e.SmartSelectionRange={}))}(ts||(ts={})),function(e){!function(n){var t,r;function a(n,t,r){for(var a=n.getFullStart(),i=n.parent;i;){var o=e.findPrecedingToken(a,t,i,!0);if(o)return e.rangeContainsRange(r,o);i=i.parent}return e.Debug.fail(\"Could not find preceding token\")}function i(n,t){var r=function(n,t){if(29===n.kind||20===n.kind)return{list:p(n.parent,n,t),argumentIndex:0};var r=e.findContainingList(n);return r&&{list:r,argumentIndex:l(r,n)}}(n,t);if(r){var a=r.list,i=r.argumentIndex,o=function(n){var t=n.getChildren(),r=e.countWhere(t,(function(e){return 27!==e.kind}));t.length>0&&27===e.last(t).kind&&r++;return r}(a);return 0!==i&&e.Debug.assertLessThan(i,o),{list:a,argumentIndex:i,argumentCount:o,argumentsSpan:function(n,t){var r=n.getFullStart(),a=e.skipTrivia(t.text,n.getEnd(),!1);return e.createTextSpan(r,a-r)}(a,t)}}}function o(n,t,r){var a=n.parent;if(e.isCallOrNewExpression(a)){var o=a,s=i(n,r);if(!s)return;var c=s.list,l=s.argumentIndex,d=s.argumentCount,p=s.argumentsSpan;return{isTypeParameterList:!!a.typeArguments&&a.typeArguments.pos===c.pos,invocation:{kind:0,node:o},argumentsSpan:p,argumentIndex:l,argumentCount:d}}if(e.isNoSubstitutionTemplateLiteral(n)&&e.isTaggedTemplateExpression(a))return e.isInsideTemplateLiteral(n,t,r)?u(a,0,r):void 0;if(e.isTemplateHead(n)&&197===a.parent.kind){var m=a,f=m.parent;return e.Debug.assert(210===m.kind),u(f,l=e.isInsideTemplateLiteral(n,t,r)?0:1,r)}if(e.isTemplateSpan(a)&&e.isTaggedTemplateExpression(a.parent.parent)){var _=a;f=a.parent.parent;if(e.isTemplateTail(n)&&!e.isInsideTemplateLiteral(n,t,r))return;return u(f,l=function(n,t,r,a){if(e.Debug.assert(r>=t.getStart(),\"Assumed 'position' could not occur before node.\"),e.isTemplateLiteralToken(t))return e.isInsideTemplateLiteral(t,r,a)?0:n+2;return n+1}(_.parent.templateSpans.indexOf(_),n,t,r),r)}if(e.isJsxOpeningLikeElement(a)){var g=a.attributes.pos,y=e.skipTrivia(r.text,a.attributes.end,!1);return{isTypeParameterList:!1,invocation:{kind:0,node:a},argumentsSpan:e.createTextSpan(g,y-g),argumentIndex:0,argumentCount:1}}var v=e.getPossibleTypeArgumentsInfo(n,r);if(v){var h=v.called,b=v.nTypeArguments;return{isTypeParameterList:!0,invocation:o={kind:1,called:h},argumentsSpan:p=e.createTextSpanFromBounds(h.getStart(r),n.end),argumentIndex:b,argumentCount:b+1}}}function s(n){return e.isBinaryExpression(n.left)?s(n.left)+1:2}function c(n){return\"__type\"===n.name&&e.firstDefined(n.declarations,(function(n){return e.isFunctionTypeNode(n)?n.parent.symbol:void 0}))||n}function l(e,n){for(var t=0,r=0,a=e.getChildren();r<a.length;r++){var i=a[r];if(i===n)break;27!==i.kind&&t++}return t}function u(n,t,r){var a=e.isNoSubstitutionTemplateLiteral(n.template)?1:n.template.templateSpans.length+1;return 0!==t&&e.Debug.assertLessThan(t,a),{isTypeParameterList:!1,invocation:{kind:0,node:n},argumentsSpan:d(n,r),argumentIndex:t,argumentCount:a}}function d(n,t){var r=n.template,a=r.getStart(),i=r.getEnd();210===r.kind&&(0===e.last(r.templateSpans).literal.getFullWidth()&&(i=e.skipTrivia(t.text,i,!1)));return e.createTextSpan(a,i-a)}function p(n,t,r){var a=n.getChildren(r),i=a.indexOf(t);return e.Debug.assert(i>=0&&a.length>i+1),a[i+1]}function m(n){return 0===n.kind?e.getInvokedExpression(n.node):n.called}function f(e){return 0===e.kind?e.node:1===e.kind?e.called:e.node}!function(e){e[e.Call=0]=\"Call\",e[e.TypeArgs=1]=\"TypeArgs\",e[e.Contextual=2]=\"Contextual\"}(t||(t={})),n.getSignatureHelpItems=function(n,t,r,l,u){var d=n.getTypeChecker(),p=e.findTokenOnLeftOfPosition(t,r);if(p){var y=!!l&&\"characterTyped\"===l.kind;if(!y||!e.isInString(t,r,p)&&!e.isInComment(t,r)){var v=!!l&&\"invoked\"===l.kind,h=function(n,t,r,a,l){for(var u=function(n){e.Debug.assert(e.rangeContainsRange(n.parent,n),\"Not a subspan\",(function(){return\"Child: \"+e.Debug.formatSyntaxKind(n.kind)+\", parent: \"+e.Debug.formatSyntaxKind(n.parent.kind)}));var l=function(n,t,r,a){return function(n,t,r,a){var o=function(n,t,r){if(20!==n.kind&&27!==n.kind)return;var a=n.parent;switch(a.kind){case 199:case 160:case 200:case 201:var o=i(n,t);if(!o)return;var c=o.argumentIndex,l=o.argumentCount,u=o.argumentsSpan,d=e.isMethodDeclaration(a)?r.getContextualTypeForObjectLiteralElement(a):r.getContextualType(a);return d&&{contextualType:d,argumentIndex:c,argumentCount:l,argumentsSpan:u};case 208:var p=function n(t){return e.isBinaryExpression(t.parent)?n(t.parent):t}(a),m=r.getContextualType(p),f=20===n.kind?0:s(a)-1,_=s(p);return m&&{contextualType:m,argumentIndex:f,argumentCount:_,argumentsSpan:e.createTextSpanFromNode(a)};default:return}}(n,r,a);if(!o)return;var l=o.contextualType,u=o.argumentIndex,d=o.argumentCount,p=o.argumentsSpan,m=l.getCallSignatures();return 1!==m.length?void 0:{isTypeParameterList:!1,invocation:{kind:2,signature:e.first(m),node:n,symbol:c(l.symbol)},argumentsSpan:p,argumentIndex:u,argumentCount:d}}(n,0,r,a)||o(n,t,r)}(n,t,r,a);if(l)return{value:l}},d=n;!e.isSourceFile(d)&&(l||!e.isBlock(d));d=d.parent){var p=u(d);if(\"object\"==typeof p)return p.value}return}(p,r,t,d,v);if(h){u.throwIfCancellationRequested();var b=function(n,t,r,i,o){var s=n.invocation,c=n.argumentCount;switch(s.kind){case 0:if(o&&!function(n,t,r){if(!e.isCallOrNewExpression(t))return!1;var i=t.getChildren(r);switch(n.kind){case 20:return e.contains(i,n);case 27:var o=e.findContainingList(n);return!!o&&e.contains(i,o);case 29:return a(n,r,t.expression);default:return!1}}(i,s.node,r))return;var l=[],u=t.getResolvedSignatureForSignatureHelp(s.node,l,c);return 0===l.length?void 0:{kind:0,candidates:l,resolvedSignature:u};case 1:var d=s.called;if(o&&!a(i,r,e.isIdentifier(d)?d.parent:d))return;if(0!==(l=e.getPossibleGenericSignatures(d,c,t)).length)return{kind:0,candidates:l,resolvedSignature:e.first(l)};var p=t.getSymbolAtLocation(d);return p&&{kind:1,symbol:p};case 2:return{kind:0,candidates:[s.signature],resolvedSignature:s.signature};default:return e.Debug.assertNever(s)}}(h,d,t,p,y);return u.throwIfCancellationRequested(),b?d.runWithCancellationToken(u,(function(e){return 0===b.kind?_(b.candidates,b.resolvedSignature,h,t,e):function(e,n,t,r){var a=n.argumentCount,i=n.argumentsSpan,o=n.invocation,s=n.argumentIndex,c=r.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);return c?{items:[g(e,c,r,f(o),t)],applicableSpan:i,selectedItemIndex:0,argumentIndex:s,argumentCount:a}:void 0}(b.symbol,h,t,e)})):e.isSourceFileJS(t)?function(n,t,r){if(2===n.invocation.kind)return;var a=m(n.invocation),i=e.isIdentifier(a)?a.text:e.isPropertyAccessExpression(a)?a.name.text:void 0,o=t.getTypeChecker();return void 0===i?void 0:e.firstDefined(t.getSourceFiles(),(function(t){return e.firstDefined(t.getNamedDeclarations().get(i),(function(e){var a=e.symbol&&o.getTypeOfSymbolAtLocation(e.symbol,e),i=a&&a.getCallSignatures();if(i&&i.length)return o.runWithCancellationToken(r,(function(e){return _(i,i[0],n,t,e)}))}))}))}(h,n,u):void 0}}}},function(e){e[e.Candidate=0]=\"Candidate\",e[e.Type=1]=\"Type\"}(r||(r={})),n.getArgumentInfoForCompletions=function(e,n,t){var r=o(e,n,t);return!r||r.isTypeParameterList||0!==r.invocation.kind?void 0:{invocation:r.invocation.node,argumentCount:r.argumentCount,argumentIndex:r.argumentIndex}};function _(n,t,r,a,i){var o=r.isTypeParameterList,s=r.argumentCount,c=r.argumentsSpan,l=r.invocation,u=r.argumentIndex,d=f(l),p=2===l.kind?l.symbol:i.getSymbolAtLocation(m(l)),_=p?e.symbolToDisplayParts(i,p,void 0,void 0):e.emptyArray,g=n.map((function(n){return function(n,t,r,a,i,o){var s=(r?v:h)(n,a,i,o),c=s.isVariadic,l=s.parameters,u=s.prefix,d=s.suffix,p=__spreadArrays(t,u),m=__spreadArrays(d,function(n,t,r){return e.mapToDisplayParts((function(e){e.writePunctuation(\":\"),e.writeSpace(\" \");var a=r.getTypePredicateOfSignature(n);a?r.writeTypePredicate(a,t,void 0,e):r.writeType(r.getReturnTypeOfSignature(n),t,void 0,e)}))}(n,i,a)),f=n.getDocumentationComment(a),_=n.getJsDocTags();return{isVariadic:c,prefixDisplayParts:p,suffixDisplayParts:m,separatorDisplayParts:y,parameters:l,documentation:f,tags:_}}(n,_,o,i,d,a)}));0!==u&&e.Debug.assertLessThan(u,s);var b=n.indexOf(t);return e.Debug.assert(-1!==b),{items:g,applicableSpan:c,selectedItemIndex:b,argumentIndex:u,argumentCount:s}}function g(n,t,r,a,i){var o=e.symbolToDisplayParts(r,n),s=e.createPrinter({removeComments:!0}),c=t.map((function(e){return b(e,r,a,i,s)})),l=n.getDocumentationComment(r),u=n.getJsDocTags();return{isVariadic:!1,prefixDisplayParts:__spreadArrays(o,[e.punctuationPart(29)]),suffixDisplayParts:[e.punctuationPart(31)],separatorDisplayParts:y,parameters:c,documentation:l,tags:u}}var y=[e.punctuationPart(27),e.spacePart()];function v(n,t,r,a){var i=(n.target||n).typeParameters,o=e.createPrinter({removeComments:!0}),s=(i||e.emptyArray).map((function(e){return b(e,t,r,a,o)})),c=e.mapToDisplayParts((function(i){var s=n.thisParameter?[t.symbolToParameterDeclaration(n.thisParameter,r,70246400)]:[],c=e.createNodeArray(__spreadArrays(s,t.getExpandedParameters(n).map((function(e){return t.symbolToParameterDeclaration(e,r,70246400)}))));o.writeList(2576,c,a,i)}));return{isVariadic:!1,parameters:s,prefix:[e.punctuationPart(29)],suffix:__spreadArrays([e.punctuationPart(31)],c)}}function h(n,t,r,a){var i=t.hasEffectiveRestParameter(n),o=e.createPrinter({removeComments:!0}),s=e.mapToDisplayParts((function(i){if(n.typeParameters&&n.typeParameters.length){var s=e.createNodeArray(n.typeParameters.map((function(e){return t.typeParameterToDeclaration(e,r)})));o.writeList(53776,s,a,i)}}));return{isVariadic:i,parameters:t.getExpandedParameters(n).map((function(n){return function(n,t,r,a,i){var o=e.mapToDisplayParts((function(e){var o=t.symbolToParameterDeclaration(n,r,70246400);i.writeNode(4,o,a,e)})),s=t.isOptionalParameter(n.valueDeclaration);return{name:n.name,documentation:n.getDocumentationComment(t),displayParts:o,isOptional:s}}(n,t,r,a,o)})),prefix:__spreadArrays(s,[e.punctuationPart(20)]),suffix:[e.punctuationPart(21)]}}function b(n,t,r,a,i){var o=e.mapToDisplayParts((function(e){var o=t.typeParameterToDeclaration(n,r);i.writeNode(4,o,a,e)}));return{name:n.symbol.name,documentation:n.symbol.getDocumentationComment(t),displayParts:o,isOptional:!1}}}(e.SignatureHelp||(e.SignatureHelp={}))}(ts||(ts={})),function(e){var n=/^data:(?:application\\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\\/=]+)$)?/;function t(n,t,r){var a=e.tryParseRawSourceMap(t);if(a&&a.sources&&a.file&&a.mappings)return e.createDocumentPositionMapper(n,a,r)}e.getSourceMapper=function(n){var t=e.createGetCanonicalFileName(n.useCaseSensitiveFileNames()),r=n.getCurrentDirectory(),a=e.createMap(),i=e.createMap();return{tryGetSourcePosition:function n(t){if(!e.isDeclarationFileName(t.fileName))return;if(!c(t.fileName))return;var r=s(t.fileName).getSourcePosition(t);return r&&r!==t?n(r)||r:void 0},tryGetGeneratedPosition:function(a){if(e.isDeclarationFileName(a.fileName))return;var i=c(a.fileName);if(!i)return;var o=n.getProgram();if(o.isSourceOfProjectReferenceRedirect(i.fileName))return;var l=o.getCompilerOptions(),u=l.outFile||l.out,d=u?e.removeFileExtension(u)+\".d.ts\":e.getDeclarationEmitOutputFilePathWorker(a.fileName,o.getCompilerOptions(),r,o.getCommonSourceDirectory(),t);if(void 0===d)return;var p=s(d,a.fileName).getGeneratedPosition(a);return p===a?void 0:p},toLineColumnOffset:function(e,n){return u(e).getLineAndCharacterOfPosition(n)},clearCache:function(){a.clear(),i.clear()}};function o(n){return e.toPath(n,r,t)}function s(r,a){var s,c=o(r),l=i.get(c);if(l)return l;if(n.getDocumentPositionMapper)s=n.getDocumentPositionMapper(r,a);else if(n.readFile){var d=u(r);s=d&&e.getDocumentPositionMapper({getSourceFileLike:u,getCanonicalFileName:t,log:function(e){return n.log(e)}},r,e.getLineInfo(d.text,e.getLineStarts(d)),(function(e){return!n.fileExists||n.fileExists(e)?n.readFile(e):void 0}))}return i.set(c,s||e.identitySourceMapConsumer),s||e.identitySourceMapConsumer}function c(e){var t=n.getProgram();if(t){var r=o(e),a=t.getSourceFileByPath(r);return a&&a.resolvedPath===r?a:void 0}}function l(t){var r=o(t),i=a.get(r);if(void 0!==i)return i||void 0;if(n.readFile&&(!n.fileExists||n.fileExists(r))){var s=n.readFile(r),c=!!s&&function(n,t){return{text:n,lineMap:t,getLineAndCharacterOfPosition:function(n){return e.computeLineAndCharacterOfPosition(e.getLineStarts(this),n)}}}(s);return a.set(r,c),c||void 0}a.set(r,!1)}function u(e){return n.getSourceFileLike?n.getSourceFileLike(e):c(e)||l(e)}},e.getDocumentPositionMapper=function(r,a,i,o){var s=e.tryGetSourceMappingURL(i);if(s){var c=n.exec(s);if(c){if(c[1]){var l=c[1];return t(r,e.base64decode(e.sys,l),a)}s=void 0}}var u=[];s&&u.push(s),u.push(a+\".map\");for(var d=s&&e.getNormalizedAbsolutePath(s,e.getDirectoryPath(a)),p=0,m=u;p<m.length;p++){var f=m[p],_=e.getNormalizedAbsolutePath(f,e.getDirectoryPath(a)),g=o(_,d);if(e.isString(g))return t(r,g,_);if(void 0!==g)return g||void 0}}}(ts||(ts={})),function(e){var n=e.createMap();function t(n){switch(n.kind){case 253:var t=n.importClause,r=n.moduleSpecifier;return t&&!t.name&&t.namedBindings&&255===t.namedBindings.kind&&e.isStringLiteral(r)?t.namedBindings.name:void 0;case 252:return n.name;default:return}}function r(n){return e.isReturnStatement(n)&&!!n.expression&&a(n.expression)}function a(n){if(!i(n)||!n.arguments.every(o))return!1;for(var t=n.expression;i(t)||e.isPropertyAccessExpression(t);){if(e.isCallExpression(t)&&!t.arguments.every(o))return!1;t=t.expression}return!0}function i(n){return e.isCallExpression(n)&&(e.hasPropertyAccessExpressionWithName(n,\"then\")||e.hasPropertyAccessExpressionWithName(n,\"catch\"))}function o(e){switch(e.kind){case 243:case 200:case 201:n.set(s(e),!0);case 99:case 75:return!0;default:return!1}}function s(e){return e.pos.toString()+\":\"+e.end.toString()}e.computeSuggestionDiagnostics=function(a,i,o){i.getSemanticDiagnostics(a,o);var c,l=[],u=i.getTypeChecker();a.commonJsModuleIndicator&&(e.programContainsEs6Modules(i)||e.compilerOptionsIndicateEs6Modules(i.getCompilerOptions()))&&function(n){return n.statements.some((function(n){switch(n.kind){case 224:return n.declarationList.declarations.some((function(n){return!!n.initializer&&e.isRequireCall(function n(t){return e.isPropertyAccessExpression(t)?n(t.expression):t}(n.initializer),!0)}));case 225:var t=n.expression;if(!e.isBinaryExpression(t))return e.isRequireCall(t,!0);var r=e.getAssignmentDeclarationKind(t);return 1===r||2===r;default:return!1}}))}(a)&&l.push(e.createDiagnosticForNode((c=a.commonJsModuleIndicator,e.isBinaryExpression(c)?c.left:c),e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module));var d=e.isSourceFileJS(a);if(n.clear(),function t(i){if(d)switch(i.kind){case 200:var o=e.getDeclarationOfExpando(i);if(o){var c=o.symbol;if(c&&(c.exports&&c.exports.size||c.members&&c.members.size)){l.push(e.createDiagnosticForNode(e.isVariableDeclaration(i.parent)?i.parent.name:i,e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration));break}}case 243:var p=i.symbol;p.members&&p.members.size>0&&l.push(e.createDiagnosticForNode(e.isVariableDeclaration(i.parent)?i.parent.name:i,e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration))}else{if(e.isVariableStatement(i)&&i.parent===a&&2&i.declarationList.flags&&1===i.declarationList.declarations.length){var m=i.declarationList.declarations[0].initializer;m&&e.isRequireCall(m,!0)&&l.push(e.createDiagnosticForNode(m,e.Diagnostics.require_call_may_be_converted_to_an_import))}e.codefix.parameterShouldGetTypeFromJSDoc(i)&&l.push(e.createDiagnosticForNode(i.name||i,e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types))}e.isFunctionLikeDeclaration(i)&&function(t,a,i){(function(n,t){return!e.isAsyncFunction(n)&&n.body&&e.isBlock(n.body)&&(a=n.body,!!e.forEachReturnStatement(a,r))&&function(e,n){var t=n.getTypeAtLocation(e),r=n.getSignaturesOfType(t,0),a=r.length?n.getReturnTypeOfSignature(r[0]):void 0;return!!a&&!!n.getPromisedTypeOfPromise(a)}(n,t);var a})(t,a)&&!n.has(s(t))&&i.push(e.createDiagnosticForNode(!t.name&&e.isVariableDeclaration(t.parent)&&e.isIdentifier(t.parent.name)?t.parent.name:t,e.Diagnostics.This_may_be_converted_to_an_async_function))}(i,u,l);i.forEachChild(t)}(a),e.getAllowSyntheticDefaultImports(i.getCompilerOptions()))for(var p=0,m=a.imports;p<m.length;p++){var f=m[p],_=t(e.importFromModuleSpecifier(f));if(_){var g=e.getResolvedModule(a,f.text),y=g&&i.getSourceFile(g.resolvedFileName);y&&y.externalModuleIndicator&&e.isExportAssignment(y.externalModuleIndicator)&&y.externalModuleIndicator.isExportEquals&&l.push(e.createDiagnosticForNode(_,e.Diagnostics.Import_may_be_converted_to_a_default_import))}}return e.addRange(l,a.bindSuggestionDiagnostics),e.addRange(l,i.getSuggestionDiagnostics(a,o)),l.sort((function(e,n){return e.start-n.start}))},e.isReturnStatementWithFixablePromiseHandler=r,e.isFixablePromiseHandler=a}(ts||(ts={})),function(e){!function(n){function t(n,t,a){var i=r(n,t,a);if(\"\"!==i)return i;var o=e.getCombinedLocalAndExportSymbolFlags(t);return 32&o?e.getDeclarationOfKind(t,213)?\"local class\":\"class\":384&o?\"enum\":524288&o?\"type\":64&o?\"interface\":262144&o?\"type parameter\":262144&o?\"type parameter\":8&o?\"enum member\":2097152&o?\"alias\":1536&o?\"module\":i}function r(n,t,r){var i=n.getRootSymbols(t);if(1===i.length&&8192&e.first(i).flags&&0!==n.getTypeOfSymbolAtLocation(t,r).getNonNullableType().getCallSignatures().length)return\"method\";if(n.isUndefinedSymbol(t))return\"var\";if(n.isArgumentsSymbol(t))return\"local var\";if(103===r.kind&&e.isExpression(r))return\"parameter\";var o=e.getCombinedLocalAndExportSymbolFlags(t);if(3&o)return e.isFirstDeclarationOfSymbolParameter(t)?\"parameter\":t.valueDeclaration&&e.isVarConst(t.valueDeclaration)?\"const\":e.forEach(t.declarations,e.isLet)?\"let\":a(t)?\"local var\":\"var\";if(16&o)return a(t)?\"local function\":\"function\";if(32768&o)return\"getter\";if(65536&o)return\"setter\";if(8192&o)return\"method\";if(16384&o)return\"constructor\";if(4&o){if(33554432&o&&6&t.checkFlags){var s=e.forEach(n.getRootSymbols(t),(function(n){var t=n.getFlags();if(98311&t)return\"property\";e.Debug.assert(!!(8208&t))}));return s||(n.getTypeOfSymbolAtLocation(t,r).getCallSignatures().length?\"method\":\"property\")}switch(r.parent&&r.parent.kind){case 266:case 264:case 265:return 75===r.kind?\"property\":\"JSX attribute\";case 271:return\"JSX attribute\";default:return\"property\"}}return\"\"}function a(n){return!n.parent&&e.forEach(n.declarations,(function(n){if(200===n.kind)return!0;if(241!==n.kind&&243!==n.kind)return!1;for(var t=n.parent;!e.isFunctionBlock(t);t=t.parent)if(288===t.kind||249===t.kind)return!1;return!0}))}n.getSymbolKind=t,n.getSymbolModifiers=function(n){var t=n&&n.declarations&&n.declarations.length>0?e.getNodeModifiers(n.declarations[0]):\"\",r=n&&16777216&n.flags?\"optional\":\"\";return t&&r?t+\",\"+r:t||r},n.getSymbolDisplayPartsDocumentationAndSymbolKind=function n(a,i,o,s,c,l,u){void 0===l&&(l=e.getMeaningFromLocation(c));var d,p,m,f,_,g,y=[],v=e.getCombinedLocalAndExportSymbolFlags(i),h=1&l?r(a,i,c):\"\",b=!1,E=103===c.kind&&e.isInExpressionContext(c);if(103===c.kind&&!E)return{displayParts:[e.keywordPart(103)],documentation:[],symbolKind:\"primitive type\",tags:void 0};if(\"\"!==h||32&v||2097152&v){\"getter\"!==h&&\"setter\"!==h||(h=\"property\");var T=void 0;if(m=E?a.getTypeAtLocation(c):a.getTypeOfSymbolAtLocation(i.exportSymbol||i,c),c.parent&&193===c.parent.kind){var S=c.parent.name;(S===c||S&&0===S.getFullWidth())&&(c=c.parent)}var x=void 0;if(e.isCallOrNewExpression(c)?x=c:e.isCallExpressionTarget(c)||e.isNewExpressionTarget(c)?x=c.parent:c.parent&&e.isJsxOpeningLikeElement(c.parent)&&e.isFunctionLike(i.valueDeclaration)&&(x=c.parent),x){T=a.getResolvedSignature(x);var L=196===x.kind||e.isCallExpression(x)&&101===x.expression.kind,C=L?m.getConstructSignatures():m.getCallSignatures();if(e.contains(C,T.target)||e.contains(C,T)||(T=C.length?C[0]:void 0),T){switch(L&&32&v?(h=\"constructor\",q(m.symbol,h)):2097152&v?(J(h=\"alias\"),y.push(e.spacePart()),L&&(y.push(e.keywordPart(98)),y.push(e.spacePart())),z(i)):q(i,h),h){case\"JSX attribute\":case\"property\":case\"var\":case\"const\":case\"let\":case\"parameter\":case\"local var\":y.push(e.punctuationPart(58)),y.push(e.spacePart()),16&e.getObjectFlags(m)||!m.symbol||(e.addRange(y,e.symbolToDisplayParts(a,m.symbol,s,void 0,5)),y.push(e.lineBreakPart())),L&&(y.push(e.keywordPart(98)),y.push(e.spacePart())),X(T,C,262144);break;default:X(T,C)}b=!0}}else if(e.isNameOfFunctionDeclaration(c)&&!(98304&v)||128===c.kind&&161===c.parent.kind){var A=c.parent;if(i.declarations&&e.find(i.declarations,(function(e){return e===(128===c.kind?A.parent:A)}))){C=161===A.kind?m.getNonNullableType().getConstructSignatures():m.getNonNullableType().getCallSignatures();T=a.isImplementationOfOverload(A)?C[0]:a.getSignatureFromDeclaration(A),161===A.kind?(h=\"constructor\",q(m.symbol,h)):q(164!==A.kind||2048&m.symbol.flags||4096&m.symbol.flags?i:m.symbol,h),X(T,C),b=!0}}}if(32&v&&!b&&!E&&(H(),e.getDeclarationOfKind(i,213)?J(\"local class\"):y.push(e.keywordPart(79)),y.push(e.spacePart()),z(i),Y(i,o)),64&v&&2&l&&(K(),y.push(e.keywordPart(113)),y.push(e.spacePart()),z(i),Y(i,o)),524288&v&&2&l&&(K(),y.push(e.keywordPart(144)),y.push(e.spacePart()),z(i),Y(i,o),y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),e.addRange(y,e.typeToDisplayParts(a,a.getDeclaredTypeOfSymbol(i),s,8388608))),384&v&&(K(),e.some(i.declarations,(function(n){return e.isEnumDeclaration(n)&&e.isEnumConst(n)}))&&(y.push(e.keywordPart(80)),y.push(e.spacePart())),y.push(e.keywordPart(87)),y.push(e.spacePart()),z(i)),1536&v&&!E){K();var D=(V=e.getDeclarationOfKind(i,248))&&V.name&&75===V.name.kind;y.push(e.keywordPart(D?135:134)),y.push(e.spacePart()),z(i)}if(262144&v&&2&l)if(K(),y.push(e.punctuationPart(20)),y.push(e.textPart(\"type parameter\")),y.push(e.punctuationPart(21)),y.push(e.spacePart()),z(i),i.parent)W(),z(i.parent,s),Y(i.parent,s);else{var k=e.getDeclarationOfKind(i,154);if(void 0===k)return e.Debug.fail();if(V=k.parent)if(e.isFunctionLikeKind(V.kind)){W();T=a.getSignatureFromDeclaration(V);165===V.kind?(y.push(e.keywordPart(98)),y.push(e.spacePart())):164!==V.kind&&V.name&&z(V.symbol),e.addRange(y,e.signatureToDisplayParts(a,T,o,32))}else 246===V.kind&&(W(),y.push(e.keywordPart(144)),y.push(e.spacePart()),z(V.symbol),Y(V.symbol,o))}if(8&v&&(h=\"enum member\",q(i,\"enum member\"),282===(V=i.declarations[0]).kind)){var N=a.getConstantValue(V);void 0!==N&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.displayPart(e.getTextOfConstantValue(N),\"number\"==typeof N?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}if(2097152&v){if(K(),!b){var I=a.getAliasedSymbol(i);if(I!==i&&I.declarations&&I.declarations.length>0){var M=I.declarations[0],O=e.getNameOfDeclaration(M);if(O){var R=e.isModuleWithStringLiteralName(M)&&e.hasModifier(M,2),P=\"default\"!==i.name&&!R,w=n(a,I,e.getSourceFileOfNode(M),M,O,l,P?i:I);y.push.apply(y,w.displayParts),y.push(e.lineBreakPart()),_=w.documentation,g=w.tags}}}switch(i.declarations[0].kind){case 251:y.push(e.keywordPart(88)),y.push(e.spacePart()),y.push(e.keywordPart(135));break;case 258:y.push(e.keywordPart(88)),y.push(e.spacePart()),y.push(e.keywordPart(i.declarations[0].isExportEquals?62:83));break;case 261:y.push(e.keywordPart(88));break;default:y.push(e.keywordPart(95))}y.push(e.spacePart()),z(i),e.forEach(i.declarations,(function(n){if(252===n.kind){var t=n;if(e.isExternalModuleImportEqualsDeclaration(t))y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.keywordPart(138)),y.push(e.punctuationPart(20)),y.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(t)),e.SymbolDisplayPartKind.stringLiteral)),y.push(e.punctuationPart(21));else{var r=a.getSymbolAtLocation(t.moduleReference);r&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),z(r,s))}return!0}}))}if(!b)if(\"\"!==h){if(m)if(E?(K(),y.push(e.keywordPart(103))):q(i,h),\"property\"===h||\"JSX attribute\"===h||3&v||\"local var\"===h||E)if(y.push(e.punctuationPart(58)),y.push(e.spacePart()),m.symbol&&262144&m.symbol.flags){var F=e.mapToDisplayParts((function(n){var t=a.typeParameterToDeclaration(m,s);j().writeNode(4,t,e.getSourceFileOfNode(e.getParseTreeNode(s)),n)}));e.addRange(y,F)}else e.addRange(y,e.typeToDisplayParts(a,m,s));else if(16&v||8192&v||16384&v||131072&v||98304&v||\"method\"===h){(C=m.getNonNullableType().getCallSignatures()).length&&X(C[0],C)}}else h=t(a,i,c);if(!d&&(d=i.getDocumentationComment(a),p=i.getJsDocTags(),0===d.length&&4&v&&i.parent&&e.forEach(i.parent.declarations,(function(e){return 288===e.kind}))))for(var G=0,B=i.declarations;G<B.length;G++){var V;if((V=B[G]).parent&&208===V.parent.kind){var U=a.getSymbolAtLocation(V.parent.right);if(U&&(d=U.getDocumentationComment(a),p=U.getJsDocTags(),d.length>0))break}}return 0===d.length&&_&&(d=_),0===p.length&&g&&(p=g),{displayParts:y,documentation:d,symbolKind:h,tags:0===p.length?void 0:p};function j(){return f||(f=e.createPrinter({removeComments:!0})),f}function K(){y.length&&y.push(e.lineBreakPart()),H()}function H(){u&&(J(\"alias\"),y.push(e.spacePart()))}function W(){y.push(e.spacePart()),y.push(e.keywordPart(96)),y.push(e.spacePart())}function z(n,t){u&&n===i&&(n=u);var r=e.symbolToDisplayParts(a,n,t||o,void 0,7);e.addRange(y,r),16777216&i.flags&&y.push(e.punctuationPart(57))}function q(n,t){K(),t&&(J(t),n&&!e.some(n.declarations,(function(n){return e.isArrowFunction(n)||(e.isFunctionExpression(n)||e.isClassExpression(n))&&!n.name}))&&(y.push(e.spacePart()),z(n)))}function J(n){switch(n){case\"var\":case\"function\":case\"let\":case\"const\":case\"constructor\":return void y.push(e.textOrKeywordPart(n));default:return y.push(e.punctuationPart(20)),y.push(e.textOrKeywordPart(n)),void y.push(e.punctuationPart(21))}}function X(n,t,r){void 0===r&&(r=0),e.addRange(y,e.signatureToDisplayParts(a,n,s,32|r)),t.length>1&&(y.push(e.spacePart()),y.push(e.punctuationPart(20)),y.push(e.operatorPart(39)),y.push(e.displayPart((t.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),y.push(e.spacePart()),y.push(e.textPart(2===t.length?\"overload\":\"overloads\")),y.push(e.punctuationPart(21)));var i=n.getDocumentationComment(a);d=0===i.length?void 0:i,p=n.getJsDocTags()}function Y(n,t){var r=e.mapToDisplayParts((function(r){var i=a.symbolToTypeParameterDeclarations(n,t);j().writeList(53776,i,e.getSourceFileOfNode(e.getParseTreeNode(t)),r)}));e.addRange(y,r)}}}(e.SymbolDisplay||(e.SymbolDisplay={}))}(ts||(ts={})),function(e){function n(n,t){var a=[],i=t.compilerOptions?r(t.compilerOptions,a):{},o=e.getDefaultCompilerOptions();for(var s in o)e.hasProperty(o,s)&&void 0===i[s]&&(i[s]=o[s]);for(var c=0,l=e.transpileOptionValueCompilerOptions;c<l.length;c++){var u=l[c];i[u.name]=u.transpileOptionValue}i.suppressOutputPathCheck=!0,i.allowNonTsExtensions=!0;var d=t.fileName||(t.compilerOptions&&t.compilerOptions.jsx?\"module.tsx\":\"module.ts\"),p=e.createSourceFile(d,n,i.target);t.moduleName&&(p.moduleName=t.moduleName),t.renamedDependencies&&(p.renamedDependencies=e.createMapFromTemplate(t.renamedDependencies));var m,f,_=e.getNewLineCharacter(i),g={getSourceFile:function(n){return n===e.normalizePath(d)?p:void 0},writeFile:function(n,t){e.fileExtensionIs(n,\".map\")?(e.Debug.assertEqual(f,void 0,\"Unexpected multiple source map outputs, file:\",n),f=t):(e.Debug.assertEqual(m,void 0,\"Unexpected multiple outputs, file:\",n),m=t)},getDefaultLibFileName:function(){return\"lib.d.ts\"},useCaseSensitiveFileNames:function(){return!1},getCanonicalFileName:function(e){return e},getCurrentDirectory:function(){return\"\"},getNewLine:function(){return _},fileExists:function(e){return e===d},readFile:function(){return\"\"},directoryExists:function(){return!0},getDirectories:function(){return[]}},y=e.createProgram([d],i,g);return t.reportDiagnostics&&(e.addRange(a,y.getSyntacticDiagnostics(p)),e.addRange(a,y.getOptionsDiagnostics())),y.emit(void 0,void 0,void 0,void 0,t.transformers),void 0===m?e.Debug.fail(\"Output generation failed\"):{outputText:m,diagnostics:a,sourceMapText:f}}var t;function r(n,r){t=t||e.filter(e.optionDeclarations,(function(n){return\"object\"==typeof n.type&&!e.forEachEntry(n.type,(function(e){return\"number\"!=typeof e}))})),n=e.cloneCompilerOptions(n);for(var a=function(t){if(!e.hasProperty(n,t.name))return\"continue\";var a=n[t.name];e.isString(a)?n[t.name]=e.parseCustomTypeOption(t,a,r):e.forEachEntry(t.type,(function(e){return e===a}))||r.push(e.createCompilerDiagnosticForInvalidCustomType(t))},i=0,o=t;i<o.length;i++){a(o[i])}return n}e.transpileModule=n,e.transpile=function(t,r,a,i,o){var s=n(t,{compilerOptions:r,fileName:a,reportDiagnostics:!!i,moduleName:o});return e.addRange(i,s.diagnostics),s.outputText},e.fixupCompilerOptions=r}(ts||(ts={})),function(e){!function(n){!function(e){e[e.FormatDocument=0]=\"FormatDocument\",e[e.FormatSelection=1]=\"FormatSelection\",e[e.FormatOnEnter=2]=\"FormatOnEnter\",e[e.FormatOnSemicolon=3]=\"FormatOnSemicolon\",e[e.FormatOnOpeningCurlyBrace=4]=\"FormatOnOpeningCurlyBrace\",e[e.FormatOnClosingCurlyBrace=5]=\"FormatOnClosingCurlyBrace\"}(n.FormattingRequestKind||(n.FormattingRequestKind={}));var t=function(){function n(e,n,t){this.sourceFile=e,this.formattingRequestKind=n,this.options=t}return n.prototype.updateContext=function(n,t,r,a,i){this.currentTokenSpan=e.Debug.assertDefined(n),this.currentTokenParent=e.Debug.assertDefined(t),this.nextTokenSpan=e.Debug.assertDefined(r),this.nextTokenParent=e.Debug.assertDefined(a),this.contextNode=e.Debug.assertDefined(i),this.contextNodeAllOnSameLine=void 0,this.nextNodeAllOnSameLine=void 0,this.tokensAreOnSameLine=void 0,this.contextNodeBlockIsOnOneLine=void 0,this.nextNodeBlockIsOnOneLine=void 0},n.prototype.ContextNodeAllOnSameLine=function(){return void 0===this.contextNodeAllOnSameLine&&(this.contextNodeAllOnSameLine=this.NodeIsOnOneLine(this.contextNode)),this.contextNodeAllOnSameLine},n.prototype.NextNodeAllOnSameLine=function(){return void 0===this.nextNodeAllOnSameLine&&(this.nextNodeAllOnSameLine=this.NodeIsOnOneLine(this.nextTokenParent)),this.nextNodeAllOnSameLine},n.prototype.TokensAreOnSameLine=function(){if(void 0===this.tokensAreOnSameLine){var e=this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line,n=this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;this.tokensAreOnSameLine=e===n}return this.tokensAreOnSameLine},n.prototype.ContextNodeBlockIsOnOneLine=function(){return void 0===this.contextNodeBlockIsOnOneLine&&(this.contextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.contextNode)),this.contextNodeBlockIsOnOneLine},n.prototype.NextNodeBlockIsOnOneLine=function(){return void 0===this.nextNodeBlockIsOnOneLine&&(this.nextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.nextTokenParent)),this.nextNodeBlockIsOnOneLine},n.prototype.NodeIsOnOneLine=function(e){return this.sourceFile.getLineAndCharacterOfPosition(e.getStart(this.sourceFile)).line===this.sourceFile.getLineAndCharacterOfPosition(e.getEnd()).line},n.prototype.BlockIsOnOneLine=function(n){var t=e.findChildOfKind(n,18,this.sourceFile),r=e.findChildOfKind(n,19,this.sourceFile);return!(!t||!r)&&this.sourceFile.getLineAndCharacterOfPosition(t.getEnd()).line===this.sourceFile.getLineAndCharacterOfPosition(r.getStart(this.sourceFile)).line},n}();n.FormattingContext=t}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t,r=e.createScanner(99,!1,0),a=e.createScanner(99,!1,1);!function(e){e[e.Scan=0]=\"Scan\",e[e.RescanGreaterThanToken=1]=\"RescanGreaterThanToken\",e[e.RescanSlashToken=2]=\"RescanSlashToken\",e[e.RescanTemplateToken=3]=\"RescanTemplateToken\",e[e.RescanJsxIdentifier=4]=\"RescanJsxIdentifier\",e[e.RescanJsxText=5]=\"RescanJsxText\"}(t||(t={})),n.getFormattingScanner=function(t,i,o,s,c){var l=1===i?a:r;l.setText(t),l.setTextPos(o);var u,d,p,m,f,_=!0,g=c({advance:function(){f=void 0,l.getStartPos()!==o?_=!!d&&4===e.last(d).kind:l.scan();u=void 0,d=void 0;var n=l.getStartPos();for(;n<s;){var t=l.getToken();if(!e.isTrivia(t))break;l.scan();var r={pos:n,end:l.getStartPos(),kind:t};n=l.getStartPos(),u=e.append(u,r)}p=l.getStartPos()},readTokenInfo:function(t){e.Debug.assert(y());var r=function(e){switch(e.kind){case 33:case 70:case 71:case 49:case 48:return!0}return!1}(t)?1:(i=t,13===i.kind?2:function(e){return 16===e.kind||17===e.kind}(t)?3:function(n){if(n.parent)switch(n.parent.kind){case 271:case 266:case 267:case 265:return e.isKeyword(n.kind)||75===n.kind}return!1}(t)?4:(a=t,11===a.kind?5:0));var a;var i;if(f&&r===m)return h(f,t);l.getStartPos()!==p&&(e.Debug.assert(void 0!==f),l.setTextPos(p),l.scan());var o=function(n,t){var r=l.getToken();switch(m=0,t){case 1:if(31===r){m=1;var a=l.reScanGreaterToken();return e.Debug.assert(n.kind===a),a}break;case 2:if(43===(i=r)||67===i){m=2;a=l.reScanSlashToken();return e.Debug.assert(n.kind===a),a}break;case 3:if(19===r)return m=3,l.reScanTemplateToken();break;case 4:return m=4,l.scanJsxIdentifier();case 5:return m=5,l.reScanJsxToken();case 0:break;default:e.Debug.assertNever(t)}var i;return r}(t,r),c=n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),o);d&&(d=void 0);for(;l.getStartPos()<s&&(o=l.scan(),e.isTrivia(o));){var _=n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),o);if(d||(d=[]),d.push(_),4===o){l.scan();break}}return h(f={leadingTrivia:u,trailingTrivia:d,token:c},t)},readEOFTokenRange:function(){return e.Debug.assert(v()),n.createTextRangeWithKind(l.getStartPos(),l.getTextPos(),1)},isOnToken:y,isOnEOF:v,getCurrentLeadingTrivia:function(){return u},lastTrailingTriviaWasNewLine:function(){return _},skipToEndOf:function(e){l.setTextPos(e.end),p=l.getStartPos(),m=void 0,f=void 0,_=!1,u=void 0,d=void 0}});return f=void 0,l.setText(void 0),g;function y(){var n=f?f.token.kind:l.getToken();return(f?f.token.pos:l.getStartPos())<s&&1!==n&&!e.isTrivia(n)}function v(){return 1===(f?f.token.kind:l.getToken())}function h(n,t){return e.isToken(t)&&n.token.kind!==t.kind&&(n.token.kind=t.kind),n}}}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){n.anyContext=e.emptyArray,function(e){e[e.StopProcessingSpaceActions=1]=\"StopProcessingSpaceActions\",e[e.StopProcessingTokenActions=2]=\"StopProcessingTokenActions\",e[e.InsertSpace=4]=\"InsertSpace\",e[e.InsertNewLine=8]=\"InsertNewLine\",e[e.DeleteSpace=16]=\"DeleteSpace\",e[e.DeleteToken=32]=\"DeleteToken\",e[e.InsertTrailingSemicolon=64]=\"InsertTrailingSemicolon\",e[e.StopAction=3]=\"StopAction\",e[e.ModifySpaceAction=28]=\"ModifySpaceAction\",e[e.ModifyTokenAction=96]=\"ModifyTokenAction\"}(n.RuleAction||(n.RuleAction={})),function(e){e[e.None=0]=\"None\",e[e.CanDeleteNewLines=1]=\"CanDeleteNewLines\"}(n.RuleFlags||(n.RuleFlags={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){function t(e,n,t,r,i,o){return void 0===o&&(o=0),{leftTokenRange:a(n),rightTokenRange:a(t),rule:{debugName:e,context:r,action:i,flags:o}}}function r(e){return{tokens:e,isSpecific:!0}}function a(n){return\"number\"==typeof n?r([n]):e.isArray(n)?r(n):n}function i(n,t,a){void 0===a&&(a=[]);for(var i=[],o=n;o<=t;o++)e.contains(a,o)||i.push(o);return r(i)}function o(e,n){return function(t){return t.options&&t.options[e]===n}}function s(e){return function(n){return n.options&&n.options.hasOwnProperty(e)&&!!n.options[e]}}function c(e){return function(n){return n.options&&n.options.hasOwnProperty(e)&&!n.options[e]}}function l(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!n.options[e]}}function u(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!n.options[e]||n.TokensAreOnSameLine()}}function d(e){return function(n){return!n.options||!n.options.hasOwnProperty(e)||!!n.options[e]}}function p(e){return 229===e.contextNode.kind}function m(e){return!p(e)}function f(e){switch(e.contextNode.kind){case 208:case 209:case 179:case 216:case 261:case 257:case 167:case 177:case 178:return!0;case 190:case 246:case 252:case 241:case 155:case 282:case 158:case 157:return 62===e.currentTokenSpan.kind||62===e.nextTokenSpan.kind;case 230:case 154:return 96===e.currentTokenSpan.kind||96===e.nextTokenSpan.kind||62===e.currentTokenSpan.kind||62===e.nextTokenSpan.kind;case 231:return 151===e.currentTokenSpan.kind||151===e.nextTokenSpan.kind}return!1}function _(e){return!f(e)}function g(e){return!y(e)}function y(n){var t=n.contextNode.kind;return 158===t||157===t||155===t||241===t||e.isFunctionLikeKind(t)}function v(e){return 209===e.contextNode.kind||179===e.contextNode.kind}function h(e){return e.TokensAreOnSameLine()||x(e)}function b(e){return 188===e.contextNode.kind||185===e.contextNode.kind||function(e){return S(e)&&(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}(e)}function E(e){return x(e)&&!(e.NextNodeAllOnSameLine()||e.NextNodeBlockIsOnOneLine())}function T(e){return S(e)&&!(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}function S(e){return L(e.contextNode)}function x(e){return L(e.nextTokenParent)}function L(e){if(N(e))return!0;switch(e.kind){case 222:case 250:case 192:case 249:return!0}return!1}function C(e){switch(e.contextNode.kind){case 243:case 160:case 159:case 162:case 163:case 164:case 200:case 161:case 201:case 245:return!0}return!1}function A(e){return!C(e)}function D(e){return 243===e.contextNode.kind||200===e.contextNode.kind}function k(e){return N(e.contextNode)}function N(e){switch(e.kind){case 244:case 213:case 245:case 247:case 172:case 248:case 259:case 260:case 253:case 256:return!0}return!1}function I(e){switch(e.currentTokenParent.kind){case 244:case 248:case 247:case 278:case 249:case 236:return!0;case 222:var n=e.currentTokenParent.parent;if(!n||201!==n.kind&&200!==n.kind)return!0}return!1}function M(e){switch(e.contextNode.kind){case 226:case 236:case 229:case 230:case 231:case 228:case 239:case 227:case 235:case 278:return!0;default:return!1}}function O(e){return 192===e.contextNode.kind}function R(e){return function(e){return 195===e.contextNode.kind}(e)||function(e){return 196===e.contextNode.kind}(e)}function P(e){return 27!==e.currentTokenSpan.kind}function w(e){return 23!==e.nextTokenSpan.kind}function F(e){return 201===e.contextNode.kind}function G(e){return 187===e.contextNode.kind}function B(e){return e.TokensAreOnSameLine()&&11!==e.contextNode.kind}function V(e){return 264!==e.contextNode.kind&&268!==e.contextNode.kind}function U(e){return 274===e.contextNode.kind||273===e.contextNode.kind}function j(e){return 271===e.nextTokenParent.kind}function K(e){return 271===e.contextNode.kind}function H(e){return 265===e.contextNode.kind}function W(e){return!C(e)&&!x(e)}function z(e){return e.TokensAreOnSameLine()&&!!e.contextNode.decorators&&q(e.currentTokenParent)&&!q(e.nextTokenParent)}function q(n){for(;e.isExpressionNode(n);)n=n.parent;return 156===n.kind}function J(e){return 242===e.currentTokenParent.kind&&e.currentTokenParent.getStart(e.sourceFile)===e.currentTokenSpan.pos}function X(e){return 2!==e.formattingRequestKind}function Y(e){return 248===e.contextNode.kind}function Q(e){return 172===e.contextNode.kind}function Z(e){return 165===e.contextNode.kind}function $(e,n){if(29!==e.kind&&31!==e.kind)return!1;switch(n.kind){case 168:case 198:case 246:case 244:case 213:case 245:case 243:case 200:case 201:case 160:case 159:case 164:case 165:case 195:case 196:case 215:return!0;default:return!1}}function ee(e){return $(e.currentTokenSpan,e.currentTokenParent)||$(e.nextTokenSpan,e.nextTokenParent)}function ne(e){return 198===e.contextNode.kind}function te(e){return 109===e.currentTokenSpan.kind&&204===e.currentTokenParent.kind}function re(e){return 211===e.contextNode.kind&&void 0!==e.contextNode.expression}function ae(e){return 217===e.contextNode.kind}function ie(n){var t=n.nextTokenSpan.kind,r=n.nextTokenSpan.pos;if(e.isTrivia(t)){var a=n.nextTokenParent===n.currentTokenParent?e.findNextToken(n.currentTokenParent,e.findAncestor(n.currentTokenParent,(function(e){return!e.parent})),n.sourceFile):n.nextTokenParent.getFirstToken(n.sourceFile);if(!a)return!0;t=a.kind,r=a.getStart(n.sourceFile)}return n.sourceFile.getLineAndCharacterOfPosition(n.currentTokenSpan.pos).line===n.sourceFile.getLineAndCharacterOfPosition(r).line?19===t||1===t:221!==t&&26!==t&&(245===n.contextNode.kind||246===n.contextNode.kind?!e.isPropertySignature(n.currentTokenParent)||!!n.currentTokenParent.type||20!==t:e.isPropertyDeclaration(n.currentTokenParent)?!n.currentTokenParent.initializer:229!==n.currentTokenParent.kind&&223!==n.currentTokenParent.kind&&221!==n.currentTokenParent.kind&&22!==t&&20!==t&&39!==t&&40!==t&&43!==t&&13!==t&&27!==t&&210!==t&&15!==t&&14!==t&&24!==t)}function oe(n){var t=e.findAncestor(n.currentTokenParent,(function(t){return t.end!==n.currentTokenSpan.end?\"quit\":e.syntaxMayBeASICandidate(t.kind)}));return!!t&&e.isASICandidate(t,n.sourceFile)}n.getAllRules=function(){for(var a=[],S=0;S<=151;S++)1!==S&&a.push(S);function L(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return{tokens:a.filter((function(n){return!e.some((function(e){return e===n}))})),isSpecific:!1}}var N={tokens:a,isSpecific:!1},q=r(__spreadArrays(a,[3])),$=r(__spreadArrays(a,[1])),se=i(76,151),ce=i(29,74),le=[96,97,151,122,132],ue=__spreadArrays([75],e.typeKeywords),de=q,pe=r([75,3,79,88,95]),me=r([21,3,85,106,91,86]),fe=[t(\"IgnoreBeforeComment\",N,[2,3],n.anyContext,1),t(\"IgnoreAfterLineComment\",2,N,n.anyContext,1),t(\"NotSpaceBeforeColon\",N,58,[B,_,g],16),t(\"SpaceAfterColon\",58,N,[B,_],4),t(\"NoSpaceBeforeQuestionMark\",N,57,[B,_],16),t(\"SpaceAfterQuestionMarkInConditionalOperator\",57,N,[B,v],4),t(\"NoSpaceAfterQuestionMark\",57,N,[B],16),t(\"NoSpaceBeforeDot\",N,[24,28],[B],16),t(\"NoSpaceAfterDot\",[24,28],N,[B],16),t(\"NoSpaceBetweenImportParenInImportType\",95,20,[B,G],16),t(\"NoSpaceAfterUnaryPrefixOperator\",[45,46,54,53],[8,9,75,20,22,18,103,98],[B,_],16),t(\"NoSpaceAfterUnaryPreincrementOperator\",45,[75,20,103,98],[B],16),t(\"NoSpaceAfterUnaryPredecrementOperator\",46,[75,20,103,98],[B],16),t(\"NoSpaceBeforeUnaryPostincrementOperator\",[75,21,23,98],45,[B],16),t(\"NoSpaceBeforeUnaryPostdecrementOperator\",[75,21,23,98],46,[B],16),t(\"SpaceAfterPostincrementWhenFollowedByAdd\",45,39,[B,f],4),t(\"SpaceAfterAddWhenFollowedByUnaryPlus\",39,39,[B,f],4),t(\"SpaceAfterAddWhenFollowedByPreincrement\",39,45,[B,f],4),t(\"SpaceAfterPostdecrementWhenFollowedBySubtract\",46,40,[B,f],4),t(\"SpaceAfterSubtractWhenFollowedByUnaryMinus\",40,40,[B,f],4),t(\"SpaceAfterSubtractWhenFollowedByPredecrement\",40,46,[B,f],4),t(\"NoSpaceAfterCloseBrace\",19,[27,26],[B],16),t(\"NewLineBeforeCloseBraceInBlockContext\",q,19,[T],8),t(\"SpaceAfterCloseBrace\",19,L(21),[B,I],4),t(\"SpaceBetweenCloseBraceAndElse\",19,86,[B],4),t(\"SpaceBetweenCloseBraceAndWhile\",19,110,[B],4),t(\"NoSpaceBetweenEmptyBraceBrackets\",18,19,[B,O],16),t(\"SpaceAfterConditionalClosingParen\",21,22,[M],4),t(\"NoSpaceBetweenFunctionKeywordAndStar\",93,41,[D],16),t(\"SpaceAfterStarInGeneratorDeclaration\",41,75,[D],4),t(\"SpaceAfterFunctionInFuncDecl\",93,N,[C],4),t(\"NewLineAfterOpenBraceInBlockContext\",18,N,[T],8),t(\"SpaceAfterGetSetInMember\",[130,141],75,[C],4),t(\"NoSpaceBetweenYieldKeywordAndStar\",120,41,[B,re],16),t(\"SpaceBetweenYieldOrYieldStarAndOperand\",[120,41],N,[B,re],4),t(\"NoSpaceBetweenReturnAndSemicolon\",100,26,[B],16),t(\"SpaceAfterCertainKeywords\",[108,104,98,84,100,107,126],N,[B],4),t(\"SpaceAfterLetConstInVariableDeclaration\",[114,80],N,[B,J],4),t(\"NoSpaceBeforeOpenParenInFuncCall\",N,20,[B,R,P],16),t(\"SpaceBeforeBinaryKeywordOperator\",N,le,[B,f],4),t(\"SpaceAfterBinaryKeywordOperator\",le,N,[B,f],4),t(\"SpaceAfterVoidOperator\",109,N,[B,te],4),t(\"SpaceBetweenAsyncAndOpenParen\",125,20,[F,B],4),t(\"SpaceBetweenAsyncAndFunctionKeyword\",125,93,[B],4),t(\"NoSpaceBetweenTagAndTemplateString\",[75,21],[14,15],[B],16),t(\"SpaceBeforeJsxAttribute\",N,75,[j,B],4),t(\"SpaceBeforeSlashInJsxOpeningElement\",N,43,[H,B],4),t(\"NoSpaceBeforeGreaterThanTokenInJsxOpeningElement\",43,31,[H,B],16),t(\"NoSpaceBeforeEqualInJsxAttribute\",N,62,[K,B],16),t(\"NoSpaceAfterEqualInJsxAttribute\",62,N,[K,B],16),t(\"NoSpaceAfterModuleImport\",[134,138],20,[B],16),t(\"SpaceAfterCertainTypeScriptKeywords\",[121,79,129,83,87,88,89,130,112,95,113,134,135,116,118,117,137,141,119,144,148,133,131],N,[B],4),t(\"SpaceBeforeCertainTypeScriptKeywords\",N,[89,112,148],[B],4),t(\"SpaceAfterModuleName\",10,18,[Y],4),t(\"SpaceBeforeArrow\",N,38,[B],4),t(\"SpaceAfterArrow\",38,N,[B],4),t(\"NoSpaceAfterEllipsis\",25,75,[B],16),t(\"NoSpaceAfterOptionalParameters\",57,[21,27],[B,_],16),t(\"NoSpaceBetweenEmptyInterfaceBraceBrackets\",18,19,[B,Q],16),t(\"NoSpaceBeforeOpenAngularBracket\",ue,29,[B,ee],16),t(\"NoSpaceBetweenCloseParenAndAngularBracket\",21,29,[B,ee],16),t(\"NoSpaceAfterOpenAngularBracket\",29,N,[B,ee],16),t(\"NoSpaceBeforeCloseAngularBracket\",N,31,[B,ee],16),t(\"NoSpaceAfterCloseAngularBracket\",31,[20,22,31,27],[B,ee,A],16),t(\"SpaceBeforeAt\",[21,75],59,[B],4),t(\"NoSpaceAfterAt\",59,N,[B],16),t(\"SpaceAfterDecorator\",N,[121,75,88,83,79,119,118,116,117,130,141,22,41],[z],4),t(\"NoSpaceBeforeNonNullAssertionOperator\",N,53,[B,ae],16),t(\"NoSpaceAfterNewKeywordOnConstructorSignature\",98,20,[B,Z],16),t(\"SpaceLessThanAndNonJSXTypeAnnotation\",29,29,[B],4)],_e=[t(\"SpaceAfterConstructor\",128,20,[s(\"insertSpaceAfterConstructor\"),B],4),t(\"NoSpaceAfterConstructor\",128,20,[l(\"insertSpaceAfterConstructor\"),B],16),t(\"SpaceAfterComma\",27,N,[s(\"insertSpaceAfterCommaDelimiter\"),B,V,w],4),t(\"NoSpaceAfterComma\",27,N,[l(\"insertSpaceAfterCommaDelimiter\"),B,V],16),t(\"SpaceAfterAnonymousFunctionKeyword\",[93,41],20,[s(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"),C],4),t(\"NoSpaceAfterAnonymousFunctionKeyword\",[93,41],20,[l(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"),C],16),t(\"SpaceAfterKeywordInControl\",se,20,[s(\"insertSpaceAfterKeywordsInControlFlowStatements\"),M],4),t(\"NoSpaceAfterKeywordInControl\",se,20,[l(\"insertSpaceAfterKeywordsInControlFlowStatements\"),M],16),t(\"SpaceAfterOpenParen\",20,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"SpaceBeforeCloseParen\",N,21,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"SpaceBetweenOpenParens\",20,20,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],4),t(\"NoSpaceBetweenParens\",20,21,[B],16),t(\"NoSpaceAfterOpenParen\",20,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],16),t(\"NoSpaceBeforeCloseParen\",N,21,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"),B],16),t(\"SpaceAfterOpenBracket\",22,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],4),t(\"SpaceBeforeCloseBracket\",N,23,[s(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],4),t(\"NoSpaceBetweenBrackets\",22,23,[B],16),t(\"NoSpaceAfterOpenBracket\",22,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],16),t(\"NoSpaceBeforeCloseBracket\",N,23,[l(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"),B],16),t(\"SpaceAfterOpenBrace\",18,N,[d(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),b],4),t(\"SpaceBeforeCloseBrace\",N,19,[d(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),b],4),t(\"NoSpaceBetweenEmptyBraceBrackets\",18,19,[B,O],16),t(\"NoSpaceAfterOpenBrace\",18,N,[c(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),B],16),t(\"NoSpaceBeforeCloseBrace\",N,19,[c(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"),B],16),t(\"SpaceAfterTemplateHeadAndMiddle\",[15,16],N,[s(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],4),t(\"SpaceBeforeTemplateMiddleAndTail\",N,[16,17],[s(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],4),t(\"NoSpaceAfterTemplateHeadAndMiddle\",[15,16],N,[l(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],16),t(\"NoSpaceBeforeTemplateMiddleAndTail\",N,[16,17],[l(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"),B],16),t(\"SpaceAfterOpenBraceInJsxExpression\",18,N,[s(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],4),t(\"SpaceBeforeCloseBraceInJsxExpression\",N,19,[s(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],4),t(\"NoSpaceAfterOpenBraceInJsxExpression\",18,N,[l(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],16),t(\"NoSpaceBeforeCloseBraceInJsxExpression\",N,19,[l(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"),B,U],16),t(\"SpaceAfterSemicolonInFor\",26,N,[s(\"insertSpaceAfterSemicolonInForStatements\"),B,p],4),t(\"NoSpaceAfterSemicolonInFor\",26,N,[l(\"insertSpaceAfterSemicolonInForStatements\"),B,p],16),t(\"SpaceBeforeBinaryOperator\",N,ce,[s(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],4),t(\"SpaceAfterBinaryOperator\",ce,N,[s(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],4),t(\"NoSpaceBeforeBinaryOperator\",N,ce,[l(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],16),t(\"NoSpaceAfterBinaryOperator\",ce,N,[l(\"insertSpaceBeforeAndAfterBinaryOperators\"),B,f],16),t(\"SpaceBeforeOpenParenInFuncDecl\",N,20,[s(\"insertSpaceBeforeFunctionParenthesis\"),B,C],4),t(\"NoSpaceBeforeOpenParenInFuncDecl\",N,20,[l(\"insertSpaceBeforeFunctionParenthesis\"),B,C],16),t(\"NewLineBeforeOpenBraceInControl\",me,18,[s(\"placeOpenBraceOnNewLineForControlBlocks\"),M,E],8,1),t(\"NewLineBeforeOpenBraceInFunction\",de,18,[s(\"placeOpenBraceOnNewLineForFunctions\"),C,E],8,1),t(\"NewLineBeforeOpenBraceInTypeScriptDeclWithBlock\",pe,18,[s(\"placeOpenBraceOnNewLineForFunctions\"),k,E],8,1),t(\"SpaceAfterTypeAssertion\",31,N,[s(\"insertSpaceAfterTypeAssertion\"),B,ne],4),t(\"NoSpaceAfterTypeAssertion\",31,N,[l(\"insertSpaceAfterTypeAssertion\"),B,ne],16),t(\"SpaceBeforeTypeAnnotation\",N,58,[s(\"insertSpaceBeforeTypeAnnotation\"),B,y],4),t(\"NoSpaceBeforeTypeAnnotation\",N,58,[l(\"insertSpaceBeforeTypeAnnotation\"),B,y],16),t(\"NoOptionalSemicolon\",26,$,[o(\"semicolons\",e.SemicolonPreference.Remove),ie],32),t(\"OptionalSemicolon\",N,$,[o(\"semicolons\",e.SemicolonPreference.Insert),oe],64)],ge=[t(\"NoSpaceBeforeSemicolon\",N,26,[B],16),t(\"SpaceBeforeOpenBraceInControl\",me,18,[u(\"placeOpenBraceOnNewLineForControlBlocks\"),M,X,h],4,1),t(\"SpaceBeforeOpenBraceInFunction\",de,18,[u(\"placeOpenBraceOnNewLineForFunctions\"),C,x,X,h],4,1),t(\"SpaceBeforeOpenBraceInTypeScriptDeclWithBlock\",pe,18,[u(\"placeOpenBraceOnNewLineForFunctions\"),k,X,h],4,1),t(\"NoSpaceBeforeComma\",N,27,[B],16),t(\"NoSpaceBeforeOpenBracket\",L(125,77),22,[B],16),t(\"NoSpaceAfterCloseBracket\",23,N,[B,W],16),t(\"SpaceAfterSemicolon\",26,N,[B],4),t(\"SpaceBetweenForAndAwaitKeyword\",92,126,[B],4),t(\"SpaceBetweenStatements\",[21,85,86,77],N,[B,V,m],4),t(\"SpaceAfterTryFinally\",[106,91],18,[B],4)];return __spreadArrays(fe,_e,ge)}}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t;function r(){var r,o;return void 0===t&&(r=n.getAllRules(),o=function(e){for(var n=new Array(s*s),t=new Array(n.length),r=0,a=e;r<a.length;r++)for(var o=a[r],l=o.leftTokenRange.isSpecific&&o.rightTokenRange.isSpecific,u=0,d=o.leftTokenRange.tokens;u<d.length;u++)for(var p=d[u],m=0,f=o.rightTokenRange.tokens;m<f.length;m++){var _=f[m],g=i(p,_),y=n[g];void 0===y&&(y=n[g]=[]),c(y,o.rule,l,t,g)}return n}(r),t=function(n){var t=o[i(n.currentTokenSpan.kind,n.nextTokenSpan.kind)];if(t){for(var r=[],s=0,c=0,l=t;c<l.length;c++){var u=l[c],d=~a(s);u.action&d&&e.every(u.context,(function(e){return e(n)}))&&(r.push(u),s|=u.action)}if(r.length)return r}}),t}function a(e){var n=0;return 1&e&&(n|=28),2&e&&(n|=96),28&e&&(n|=28),96&e&&(n|=96),n}function i(n,t){return e.Debug.assert(n<=151&&t<=151,\"Must compute formatting context from tokens\"),n*s+t}n.getFormatContext=function(e){return{options:e,getRules:r()}};var o,s=152;function c(t,r,a,i,s){var c,l,u,d=3&r.action?a?o.StopRulesSpecific:o.StopRulesAny:r.context!==n.anyContext?a?o.ContextRulesSpecific:o.ContextRulesAny:a?o.NoContextRulesSpecific:o.NoContextRulesAny,p=i[s]||0;t.splice(function(e,n){for(var t=0,r=0;r<=n;r+=5)t+=31&e,e>>=5;return t}(p,d),0,r),i[s]=(u=1+((c=p)>>(l=d)&31),e.Debug.assert((31&u)===u,\"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\"),c&~(31<<l)|u<<l)}!function(e){e[e.StopRulesSpecific=0]=\"StopRulesSpecific\",e[e.StopRulesAny=5]=\"StopRulesAny\",e[e.ContextRulesSpecific=10]=\"ContextRulesSpecific\",e[e.ContextRulesAny=15]=\"ContextRulesAny\",e[e.NoContextRulesSpecific=20]=\"NoContextRulesSpecific\",e[e.NoContextRulesAny=25]=\"NoContextRulesAny\"}(o||(o={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){var t,r,a,i,o;function s(n,t,r){var a=e.findPrecedingToken(n,r);return a&&a.kind===t&&n===a.getEnd()?a:void 0}function c(e){for(var n=e;n&&n.parent&&n.parent.end===e.end&&!l(n.parent,n);)n=n.parent;return n}function l(n,t){switch(n.kind){case 244:case 245:return e.rangeContainsRange(n.members,t);case 248:var r=n.body;return!!r&&249===r.kind&&e.rangeContainsRange(r.statements,t);case 288:case 222:case 249:return e.rangeContainsRange(n.statements,t);case 278:return e.rangeContainsRange(n.block.statements,t)}return!1}function u(n,t,r,a){return n?d({pos:e.getLineStartPositionForPosition(n.getStart(t),t),end:n.end},t,r,a):[]}function d(t,r,a,i){var o=function(n,t){return function r(a){var i=e.forEachChild(a,(function(r){return e.startEndContainsRange(r.getStart(t),r.end,n)&&r}));if(i){var o=r(i);if(o)return o}return a}(t)}(t,r);return n.getFormattingScanner(r.text,r.languageVariant,function(n,t,r){var a=n.getStart(r);if(a===t.pos&&n.end===t.end)return a;var i=e.findPrecedingToken(t.pos,r);return i?i.end>=t.pos?n.pos:i.end:n.pos}(o,t,r),t.end,(function(s){return p(t,o,n.SmartIndenter.getIndentationForNode(o,t,r,a.options),function(e,t,r){for(var a,i=-1;e;){var o=r.getLineAndCharacterOfPosition(e.getStart(r)).line;if(-1!==i&&o!==i)break;if(n.SmartIndenter.shouldIndentChildNode(t,e,a,r))return t.indentSize;i=o,a=e,e=e.parent}return 0}(o,a.options,r),s,a,i,function(n,t){if(!n.length)return i;var r=n.filter((function(n){return e.rangeOverlapsWithStartEnd(t,n.start,n.start+n.length)})).sort((function(e,n){return e.start-n.start}));if(!r.length)return i;var a=0;return function(n){for(;;){if(a>=r.length)return!1;var t=r[a];if(n.end<=t.start)return!1;if(e.startEndOverlapsWithStartEnd(n.pos,n.end,t.start,t.start+t.length))return!0;a++}};function i(){return!1}}(r.parseDiagnostics,t),r)}))}function p(t,r,a,i,o,s,c,l,u){var d,p,f,_,g=s.options,y=s.getRules,v=new n.FormattingContext(u,c,g),h=-1,b=[];if(o.advance(),o.isOnToken()){var E=u.getLineAndCharacterOfPosition(r.getStart(u)).line,T=E;r.decorators&&(T=u.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(r,u)).line),function r(a,i,s,c,m,y){if(!e.rangeOverlapsWithStartEnd(t,a.getStart(u),a.getEnd()))return;var v=x(a,s,m,y),b=i;e.forEachChild(a,(function(e){S(e,-1,a,v,s,c,!1)}),(function(t){!function(t,r,i,s){e.Debug.assert(e.isNodeArray(t));var c=function(e,n){switch(e.kind){case 161:case 243:case 200:case 160:case 159:case 201:if(e.typeParameters===n)return 29;if(e.parameters===n)return 20;break;case 195:case 196:if(e.typeArguments===n)return 29;if(e.arguments===n)return 20;break;case 168:if(e.typeArguments===n)return 29;break;case 172:return 18}return 0}(r,t),l=s,d=i;if(0!==c)for(;o.isOnToken();){if((b=o.readTokenInfo(r)).token.end>t.pos)break;if(b.token.kind===c){d=u.getLineAndCharacterOfPosition(b.token.pos).line,I(b,r,s,r);var p=void 0;if(-1!==h)p=h;else{var m=e.getLineStartPositionForPosition(b.token.pos,u);p=n.SmartIndenter.findFirstNonWhitespaceColumn(m,b.token.pos,u,g)}l=x(r,i,p,g.indentSize)}else I(b,r,s,r)}for(var f=-1,_=0;_<t.length;_++){var y=t[_];f=S(y,f,a,l,d,d,!0,0===_)}var v=function(e){switch(e){case 20:return 21;case 29:return 31;case 18:return 19}return 0}(c);if(0!==v&&o.isOnToken()){var b;27===(b=o.readTokenInfo(r)).token.kind&&e.isCallLikeExpression(r)&&(o.advance(),b=o.isOnToken()?o.readTokenInfo(r):void 0),b&&b.token.kind===v&&e.rangeContainsRange(r,b.token)&&I(b,r,l,r,!0)}}(t,a,s,v)}));for(;o.isOnToken();){var E=o.readTokenInfo(a);if(E.token.end>a.end)break;I(E,a,v,a)}if(!a.parent&&o.isOnEOF()){var T=o.readEOFTokenRange();T.end<=a.end&&d&&D(T,u.getLineAndCharacterOfPosition(T.pos).line,a,d,f,p,i,v)}function S(i,s,c,l,d,p,m,f){var y=i.getStart(u),v=u.getLineAndCharacterOfPosition(y).line,E=v;i.decorators&&(E=u.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(i,u)).line);var T=-1;if(m&&e.rangeContainsRange(t,c)&&-1!==(T=function(t,r,a,i,o){if(e.rangeOverlapsWithStartEnd(i,t,r)||e.rangeContainsStartEnd(i,t,r)){if(-1!==o)return o}else{var s=u.getLineAndCharacterOfPosition(t).line,c=e.getLineStartPositionForPosition(t,u),l=n.SmartIndenter.findFirstNonWhitespaceColumn(c,t,u,g);if(s!==a||t===l){var d=n.SmartIndenter.getBaseIndentation(g);return d>l?d:l}}return-1}(y,i.end,d,t,s))&&(s=T),!e.rangeOverlapsWithStartEnd(t,i.pos,i.end))return i.end<t.pos&&o.skipToEndOf(i),s;if(0===i.getFullWidth())return s;for(;o.isOnToken();){if((S=o.readTokenInfo(a)).token.end>y)break;I(S,a,l,a)}if(!o.isOnToken())return s;if(e.isToken(i)&&11!==i.kind){var S=o.readTokenInfo(i);return e.Debug.assert(S.token.end===i.end,\"Token end is child end\"),I(S,a,l,i),s}var x=156===i.kind?v:p,L=function(e,t,r,a,i,o){var s=n.SmartIndenter.shouldIndentChildNode(g,e)?g.indentSize:0;return o===t?{indentation:t===_?h:i.getIndentation(),delta:Math.min(g.indentSize,i.getDelta(e)+s)}:-1===r?20===e.kind&&t===_?{indentation:h,delta:i.getDelta(e)}:n.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(a,e,t,u)?{indentation:i.getIndentation(),delta:s}:n.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(a,e,t,u)?{indentation:i.getIndentation(),delta:s}:{indentation:i.getIndentation()+i.getDelta(e),delta:s}:{indentation:r,delta:s}}(i,v,T,a,l,x);(r(i,b,v,E,L.indentation,L.delta),11===i.kind)&&N({pos:i.getStart(),end:i.getEnd()},L.indentation,!0,!1);return b=a,f&&191===c.kind&&-1===s&&(s=L.indentation),s}function I(n,r,a,i,s){e.Debug.assert(e.rangeContainsRange(r,n.token));var c=o.lastTrailingTriviaWasNewLine(),p=!1;n.leadingTrivia&&C(n.leadingTrivia,r,b,a);var m=0,f=e.rangeContainsRange(t,n.token),g=u.getLineAndCharacterOfPosition(n.token.pos);if(f){var y=l(n.token),v=d;if(m=A(n.token,g,r,b,a),!y)if(0===m){var E=v&&u.getLineAndCharacterOfPosition(v.end).line;p=c&&g.line!==E}else p=1===m}if(n.trailingTrivia&&C(n.trailingTrivia,r,b,a),p){var T=f&&!l(n.token)?a.getIndentationForToken(g.line,n.token.kind,i,!!s):-1,S=!0;if(n.leadingTrivia){var x=a.getIndentationForComment(n.token.kind,T,i);S=L(n.leadingTrivia,x,S,(function(e){return k(e.pos,x,!1)}))}-1!==T&&S&&(k(n.token.pos,T,1===m),_=g.line,h=T)}o.advance(),b=r}}(r,r,E,T,a,i)}if(!o.isOnToken()){var S=o.getCurrentLeadingTrivia();S&&(L(S,a,!1,(function(e){return A(e,u.getLineAndCharacterOfPosition(e.pos),r,r,void 0)})),function(){var e=d?d.end:t.pos,n=u.getLineAndCharacterOfPosition(e).line,r=u.getLineAndCharacterOfPosition(t.end).line;I(n,r+1,d)}())}return b;function x(t,r,a,i){return{getIndentationForComment:function(e,n,t){switch(e){case 19:case 23:case 21:return a+o(t)}return-1!==n?n:a},getIndentationForToken:function(n,i,s,c){return!c&&function(n,a,i){switch(a){case 18:case 19:case 21:case 86:case 110:case 59:return!1;case 43:case 31:switch(i.kind){case 266:case 267:case 265:return!1}break;case 22:case 23:if(185!==i.kind)return!1}return r!==n&&!(t.decorators&&a===function(n){if(n.modifiers&&n.modifiers.length)return n.modifiers[0].kind;switch(n.kind){case 244:return 79;case 245:return 113;case 243:return 93;case 247:return 247;case 162:return 130;case 163:return 141;case 160:if(n.asteriskToken)return 41;case 158:case 155:var t=e.getNameOfDeclaration(n);if(t)return t.kind}}(t))}(n,i,s)?a+o(s):a},getIndentation:function(){return a},getDelta:o,recomputeIndentation:function(e){t.parent&&n.SmartIndenter.shouldIndentChildNode(g,t.parent,t,u)&&(a+=e?g.indentSize:-g.indentSize,i=n.SmartIndenter.shouldIndentChildNode(g,t)?g.indentSize:0)}};function o(e){return n.SmartIndenter.nodeWillIndentChild(g,t,e,u,!0)?i:0}}function L(n,r,a,i){for(var o=0,s=n;o<s.length;o++){var c=s[o],l=e.rangeContainsRange(t,c);switch(c.kind){case 3:l&&N(c,r,!a),a=!1;break;case 2:a&&l&&i(c),a=!1;break;case 4:a=!0}}return a}function C(n,r,a,i){for(var o=0,s=n;o<s.length;o++){var c=s[o];if(e.isComment(c.kind)&&e.rangeContainsRange(t,c))A(c,u.getLineAndCharacterOfPosition(c.pos),r,a,i)}}function A(e,n,r,a,i){var o=0;l(e)||(d?o=D(e,n.line,r,d,f,p,a,i):I(u.getLineAndCharacterOfPosition(t.pos).line,n.line));return d=e,p=r,f=n.line,o}function D(n,t,r,a,i,o,s,c){v.updateContext(a,o,n,r,s);var l=y(v),d=!1,p=0;return l?e.forEachRight(l,(function(o){switch(p=function(n,t,r,a,i){var o=i!==r;switch(n.action){case 1:return 0;case 16:if(t.end!==a.pos)return O(t.end,a.pos-t.end),o?2:0;break;case 32:O(t.pos,t.end-t.pos);break;case 8:if(1!==n.flags&&r!==i)return 0;if(1!==i-r)return R(t.end,a.pos-t.end,g.newLineCharacter),o?0:1;break;case 4:if(1!==n.flags&&r!==i)return 0;if(1!==a.pos-t.end||32!==u.text.charCodeAt(t.end))return R(t.end,a.pos-t.end,\" \"),o?2:0;break;case 64:s=t.end,(c=\";\")&&b.push(e.createTextChangeFromStartLength(s,0,c))}var s,c;return 0}(o,a,i,n,t)){case 2:r.getStart(u)===n.pos&&c.recomputeIndentation(!1);break;case 1:r.getStart(u)===n.pos&&c.recomputeIndentation(!0);break;default:e.Debug.assert(0===p)}d=!(16&o.action)&&1!==o.flags})):d=1!==n.kind,t!==i&&d&&I(i,t,a),p}function k(n,t,r){var a=m(t,g);if(r)R(n,0,a);else{var i=u.getLineAndCharacterOfPosition(n),o=e.getStartPositionOfLine(i.line,u);(t!==function(e,n){for(var t=0,r=0;r<n;r++)9===u.text.charCodeAt(e+r)?t+=g.tabSize-t%g.tabSize:t++;return t}(o,i.character)||function(e,n){return e!==u.text.substr(n,e.length)}(a,o))&&R(o,i.character,a)}}function N(t,r,a,i){void 0===i&&(i=!0);var o=u.getLineAndCharacterOfPosition(t.pos).line,s=u.getLineAndCharacterOfPosition(t.end).line;if(o!==s){for(var c=[],l=t.pos,d=o;d<s;d++){var p=e.getEndLinePosition(d,u);c.push({pos:l,end:p}),l=e.getStartPositionOfLine(d+1,u)}if(i&&c.push({pos:l,end:t.end}),0!==c.length){var f=e.getStartPositionOfLine(o,u),_=n.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(f,c[0].pos,u,g);if(r!==_.column){var y=0;a&&(y=1,o++);for(var v=r-_.column,h=y;h<c.length;h++,o++){var b=e.getStartPositionOfLine(o,u),E=0===h?_:n.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(c[h].pos,c[h].end,u,g),T=E.column+v;if(T>0){var S=m(T,g);R(b,E.character,S)}else O(b,E.character)}}}}else a||k(t.pos,r,!1)}function I(n,t,r){for(var a=n;a<t;a++){var i=e.getStartPositionOfLine(a,u),o=e.getEndLinePosition(a,u);if(!(r&&(e.isComment(r.kind)||e.isStringOrRegularExpressionOrTemplateLiteral(r.kind))&&r.pos<=o&&r.end>o)){var s=M(i,o);-1!==s&&(e.Debug.assert(s===i||!e.isWhiteSpaceSingleLine(u.text.charCodeAt(s-1))),O(s,o+1-s))}}}function M(n,t){for(var r=t;r>=n&&e.isWhiteSpaceSingleLine(u.text.charCodeAt(r));)r--;return r!==t?r+1:-1}function O(n,t){t&&b.push(e.createTextChangeFromStartLength(n,t,\"\"))}function R(n,t,r){(t||r)&&b.push(e.createTextChangeFromStartLength(n,t,r))}}function m(n,t){if((!a||a.tabSize!==t.tabSize||a.indentSize!==t.indentSize)&&(a={tabSize:t.tabSize,indentSize:t.indentSize},i=o=void 0),t.convertTabsToSpaces){var r=void 0,s=Math.floor(n/t.indentSize),c=n%t.indentSize;return o||(o=[]),void 0===o[s]?(r=e.repeatString(\" \",t.indentSize*s),o[s]=r):r=o[s],c?r+e.repeatString(\" \",c):r}var l=Math.floor(n/t.tabSize),u=n-l*t.tabSize,d=void 0;return i||(i=[]),void 0===i[l]?i[l]=d=e.repeatString(\"\\t\",l):d=i[l],u?d+e.repeatString(\" \",u):d}n.createTextRangeWithKind=function(n,t,r){var a={pos:n,end:t,kind:r};return e.Debug.isDebugging&&Object.defineProperty(a,\"__debugKind\",{get:function(){return e.Debug.formatSyntaxKind(r)}}),a},function(e){e[e.Unknown=-1]=\"Unknown\"}(t||(t={})),n.formatOnEnter=function(n,t,r){var a=t.getLineAndCharacterOfPosition(n).line;if(0===a)return[];for(var i=e.getEndLinePosition(a,t);e.isWhiteSpaceSingleLine(t.text.charCodeAt(i));)i--;return e.isLineBreak(t.text.charCodeAt(i))&&i--,d({pos:e.getStartPositionOfLine(a-1,t),end:i+1},t,r,2)},n.formatOnSemicolon=function(e,n,t){return u(c(s(e,26,n)),n,t,3)},n.formatOnOpeningCurly=function(n,t,r){var a=s(n,18,t);if(!a)return[];var i=c(a.parent);return d({pos:e.getLineStartPositionForPosition(i.getStart(t),t),end:n},t,r,4)},n.formatOnClosingCurly=function(e,n,t){return u(c(s(e,19,n)),n,t,5)},n.formatDocument=function(e,n){return d({pos:0,end:e.text.length},e,n,0)},n.formatSelection=function(n,t,r,a){return d({pos:e.getLineStartPositionForPosition(n,r),end:t},r,a,1)},n.formatNodeGivenIndentation=function(e,t,r,a,i,o){var s={pos:0,end:t.text.length};return n.getFormattingScanner(t.text,r,s.pos,s.end,(function(n){return p(s,e,a,i,n,o,1,(function(e){return!1}),t)}))},function(e){e[e.None=0]=\"None\",e[e.LineAdded=1]=\"LineAdded\",e[e.LineRemoved=2]=\"LineRemoved\"}(r||(r={})),n.getRangeOfEnclosingComment=function(n,t,r,a){void 0===a&&(a=e.getTokenAtPosition(n,t));var i=e.findAncestor(a,e.isJSDoc);if(i&&(a=i.parent),!(a.getStart(n)<=t&&t<a.getEnd())){var o=(r=null===r?void 0:void 0===r?e.findPrecedingToken(t,n):r)&&e.getTrailingCommentRanges(n.text,r.end),s=e.getLeadingCommentRangesOfNode(a,n),c=e.concatenate(o,s);return c&&e.find(c,(function(r){return e.rangeContainsPositionExclusive(r,t)||t===r.end&&(2===r.kind||t===n.getFullWidth())}))}},n.getIndentationString=m}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r,a;function i(e){return e.baseIndentSize||0}function o(e,n,t,r,a,o,l){for(var u=e.parent;u;){var m=!0;if(t){var f=e.getStart(a);m=f<t.pos||f>t.end}var _=s(u,e,a),y=_.line===n.line||p(u,e,n.line,a);if(m){var v=g(e,a,l,!y);if(-1!==v)return v+r;if(-1!==(v=c(e,u,n,y,a,l)))return v+r}T(l,u,e,a,o)&&!y&&(r+=l.indentSize);var h=d(u,e,n.line,a);u=(e=u).parent,n=h?a.getLineAndCharacterOfPosition(e.getStart(a)):_}return r+i(l)}function s(e,n,t){var r=m(n,t),a=r?r.pos:e.getStart(t);return t.getLineAndCharacterOfPosition(a)}function c(n,t,r,a,i,o){return(e.isDeclaration(n)||e.isStatementButNotDeclaration(n))&&(288===t.kind||!a)?v(r,i,o):-1}function l(n,t,r,a){var i=e.findNextToken(n,t,a);return i?18===i.kind?1:19===i.kind&&r===u(i,a).line?2:0:0}function u(e,n){return n.getLineAndCharacterOfPosition(e.getStart(n))}function d(n,t,r,a){if(!e.isCallExpression(n)||!e.contains(n.arguments,t))return!1;var i=n.expression.getEnd();return e.getLineAndCharacterOfPosition(a,i).line===r}function p(n,t,r,a){if(226===n.kind&&n.elseStatement===t){var i=e.findChildOfKind(n,86,a);return e.Debug.assert(void 0!==i),u(i,a).line===r}return!1}function m(e,n){return e.parent&&f(e.getStart(n),e.getEnd(),e.parent,n)}function f(n,t,r,a){switch(r.kind){case 168:return i(r.typeArguments);case 192:return i(r.properties);case 191:return i(r.elements);case 172:return i(r.members);case 243:case 200:case 201:case 160:case 159:case 164:case 161:case 170:case 165:return i(r.typeParameters)||i(r.parameters);case 244:case 213:case 245:case 246:case 314:return i(r.typeParameters);case 196:case 195:return i(r.typeArguments)||i(r.arguments);case 242:return i(r.declarations);case 256:case 260:return i(r.elements);case 188:case 189:return i(r.elements)}function i(i){return i&&e.rangeContainsStartEnd(function(e,n,t){for(var r=e.getChildren(t),a=1;a<r.length-1;a++)if(r[a].pos===n.pos&&r[a].end===n.end)return{pos:r[a-1].end,end:r[a+1].getStart(t)};return n}(r,i,a),n,t)?i:void 0}}function _(e,n,t){return e?v(n.getLineAndCharacterOfPosition(e.pos),n,t):-1}function g(e,n,t,r){if(e.parent&&242===e.parent.kind)return-1;var a=m(e,n);if(a){var i=a.indexOf(e);if(-1!==i){var o=y(a,i,n,t);if(-1!==o)return o}return _(a,n,t)+(r?t.indentSize:0)}return-1}function y(n,t,r,a){e.Debug.assert(t>=0&&t<n.length);for(var i=u(n[t],r),o=t-1;o>=0;o--)if(27!==n[o].kind){if(r.getLineAndCharacterOfPosition(n[o].end).line!==i.line)return v(i,r,a);i=u(n[o],r)}return-1}function v(e,n,t){var r=n.getPositionOfLineAndCharacter(e.line,0);return b(r,r+e.character,n,t)}function h(n,t,r,a){for(var i=0,o=0,s=n;s<t;s++){var c=r.text.charCodeAt(s);if(!e.isWhiteSpaceSingleLine(c))break;9===c?o+=a.tabSize+o%a.tabSize:o++,i++}return{column:o,character:i}}function b(e,n,t,r){return h(e,n,t,r).column}function E(n,t,r,a,i){var o=r?r.kind:0;switch(t.kind){case 225:case 244:case 213:case 245:case 247:case 246:case 191:case 222:case 249:case 192:case 172:case 185:case 174:case 250:case 276:case 275:case 199:case 193:case 195:case 196:case 224:case 258:case 234:case 209:case 189:case 188:case 266:case 269:case 265:case 274:case 159:case 164:case 165:case 155:case 169:case 170:case 181:case 197:case 205:case 260:case 256:case 261:case 257:case 158:return!0;case 241:case 279:case 208:if(!n.indentMultiLineObjectLiteralBeginningOnBlankLine&&a&&192===o)return function(n,t){var r=e.skipTrivia(n.text,t.pos),a=n.getLineAndCharacterOfPosition(r).line,i=n.getLineAndCharacterOfPosition(t.end).line;return a===i}(a,r);if(208!==t.kind)return!0;break;case 227:case 228:case 230:case 231:case 229:case 226:case 243:case 200:case 160:case 201:case 161:case 162:case 163:return 222!==o;case 259:return 260!==o;case 253:return 254!==o||!!r.namedBindings&&256!==r.namedBindings.kind;case 264:return 267!==o;case 268:return 270!==o;case 178:case 177:if(172===o)return!1}return i}function T(e,n,t,r,a){return void 0===a&&(a=!1),E(e,n,t,r,!1)&&!(a&&t&&function(e,n){switch(e){case 234:case 238:case 232:case 233:return 222!==n.kind;default:return!1}}(t.kind,n))}!function(e){e[e.Unknown=-1]=\"Unknown\"}(r||(r={})),t.getIndentation=function(t,r,a,s){if(void 0===s&&(s=!1),t>r.text.length)return i(a);if(a.indentStyle===e.IndentStyle.None)return 0;var c=e.findPrecedingToken(t,r,void 0,!0),d=n.getRangeOfEnclosingComment(r,t,c||null);if(d&&3===d.kind)return function(n,t,r,a){var i=e.getLineAndCharacterOfPosition(n,t).line-1,o=e.getLineAndCharacterOfPosition(n,a.pos).line;if(e.Debug.assert(o>=0),i<=o)return b(e.getStartPositionOfLine(o,n),t,n,r);var s=e.getStartPositionOfLine(i,n),c=h(s,t,n,r),l=c.column,u=c.character;if(0===l)return l;return 42===n.text.charCodeAt(s+u)?l-1:l}(r,t,a,d);if(!c)return i(a);if(e.isStringOrRegularExpressionOrTemplateLiteral(c.kind)&&c.getStart(r)<=t&&t<c.end)return 0;var p=r.getLineAndCharacterOfPosition(t).line;if(a.indentStyle===e.IndentStyle.Block)return function(n,t,r){var a=t;for(;a>0;){var i=n.text.charCodeAt(a);if(!e.isWhiteSpaceLike(i))break;a--}return b(e.getLineStartPositionForPosition(a,n),a,n,r)}(r,t,a);if(27===c.kind&&208!==c.parent.kind){var m=function(n,t,r){var a=e.findListItemInfo(n);return a&&a.listItemIndex>0?y(a.list.getChildren(),a.listItemIndex-1,t,r):-1}(c,r,a);if(-1!==m)return m}var v=function(e,n,t){return n&&f(e,e,n,t)}(t,c.parent,r);return v&&!e.rangeContainsRange(v,c)?_(v,r,a)+a.indentSize:function(n,t,r,a,s,c){var d,p=r;for(;p;){if(e.positionBelongsToNode(p,t,n)&&T(c,p,d,n,!0)){var m=u(p,n),f=l(r,p,a,n),_=0!==f?s&&2===f?c.indentSize:0:a!==m.line?c.indentSize:0;return o(p,m,void 0,_,n,!0,c)}var y=g(p,n,c,!0);if(-1!==y)return y;d=p,p=p.parent}return i(c)}(r,t,c,p,s,a)},t.getIndentationForNode=function(e,n,t,r){var a=t.getLineAndCharacterOfPosition(e.getStart(t));return o(e,a,n,0,t,!1,r)},t.getBaseIndentation=i,function(e){e[e.Unknown=0]=\"Unknown\",e[e.OpenBrace=1]=\"OpenBrace\",e[e.CloseBrace=2]=\"CloseBrace\"}(a||(a={})),t.isArgumentAndStartLineOverlapsExpressionBeingCalled=d,t.childStartsOnTheSameLineWithElseInIfStatement=p,t.argumentStartsOnSameLineAsPreviousArgument=function(n,t,r,a){if(e.isCallOrNewExpression(n)){if(!n.arguments)return!1;var i=e.find(n.arguments,(function(e){return e.pos===t.pos}));if(!i)return!1;var o=n.arguments.indexOf(i);if(0===o)return!1;var s=n.arguments[o-1];if(r===e.getLineAndCharacterOfPosition(a,s.getEnd()).line)return!0}return!1},t.getContainingList=m,t.findFirstNonWhitespaceCharacterAndColumn=h,t.findFirstNonWhitespaceColumn=b,t.nodeWillIndentChild=E,t.shouldIndentChildNode=T}(n.SmartIndenter||(n.SmartIndenter={}))}(e.formatting||(e.formatting={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.__pos;return e.Debug.assert(\"number\"==typeof t),t}function r(n,t){e.Debug.assert(\"number\"==typeof t),n.__pos=t}function a(n){var t=n.__end;return e.Debug.assert(\"number\"==typeof t),t}function i(n,t){e.Debug.assert(\"number\"==typeof t),n.__end=t}var o,s;function c(n,t){return e.skipTrivia(n,t,!1,!0)}!function(e){e[e.Exclude=0]=\"Exclude\",e[e.IncludeAll=1]=\"IncludeAll\"}(o=n.LeadingTriviaOption||(n.LeadingTriviaOption={})),function(e){e[e.Exclude=0]=\"Exclude\",e[e.Include=1]=\"Include\"}(s=n.TrailingTriviaOption||(n.TrailingTriviaOption={}));var l,u={leadingTriviaOption:o.Exclude,trailingTriviaOption:s.Exclude};function d(e,n,t,r){return{pos:p(e,n,r),end:m(e,t,r)}}function p(n,t,r){var a=r.leadingTriviaOption;if(a===o.Exclude)return t.getStart(n);var i=t.getFullStart(),s=t.getStart(n);if(i===s)return s;var l=e.getLineStartPositionForPosition(i,n);if(e.getLineStartPositionForPosition(s,n)===l)return a===o.IncludeAll?i:s;var u=i>0?1:0,d=e.getStartPositionOfLine(e.getLineOfLocalPosition(n,l)+u,n);return d=c(n.text,d),e.getStartPositionOfLine(e.getLineOfLocalPosition(n,d),n)}function m(n,t,r){var a=t.end,i=r.trailingTriviaOption;if(i===s.Exclude||e.isExpression(t)&&i!==s.Include)return a;var o=e.skipTrivia(n.text,a,!0);return o===a||i!==s.Include&&!e.isLineBreak(n.text.charCodeAt(o-1))?a:o}function f(e,n){return!!n&&!!e.parent&&(27===n.kind||26===n.kind&&192===e.parent.kind)}!function(e){e[e.Remove=0]=\"Remove\",e[e.ReplaceWithSingleNode=1]=\"ReplaceWithSingleNode\",e[e.ReplaceWithMultipleNodes=2]=\"ReplaceWithMultipleNodes\",e[e.Text=3]=\"Text\"}(l||(l={})),n.isThisTypeAnnotatable=function(n){return e.isFunctionExpression(n)||e.isFunctionDeclaration(n)};var _,g,y=function(){function n(n,t){this.newLineCharacter=n,this.formatContext=t,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=e.createMap(),this.deletedNodes=[]}return n.fromContext=function(t){return new n(e.getNewLineOrDefaultFromHost(t.host,t.formatContext.options),t.formatContext)},n.with=function(e,t){var r=n.fromContext(e);return t(r),r.getChanges()},n.prototype.pushRaw=function(n,t){e.Debug.assertEqual(n.fileName,t.fileName);for(var r=0,a=t.textChanges;r<a.length;r++){var i=a[r];this.changes.push({kind:l.Text,sourceFile:n,text:i.newText,range:e.createTextRangeFromSpan(i.span)})}},n.prototype.deleteRange=function(e,n){this.changes.push({kind:l.Remove,sourceFile:e,range:n})},n.prototype.delete=function(e,n){this.deletedNodes.push({sourceFile:e,node:n})},n.prototype.deleteModifier=function(n,t){this.deleteRange(n,{pos:t.getStart(n),end:e.skipTrivia(n.text,t.end,!0)})},n.prototype.deleteNodeRange=function(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(e,n,r),i=m(e,t,r);this.deleteRange(e,{pos:a,end:i})},n.prototype.deleteNodeRangeExcludingEnd=function(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(e,n,r),i=void 0===t?e.text.length:p(e,t,r);this.deleteRange(e,{pos:a,end:i})},n.prototype.replaceRange=function(e,n,t,r){void 0===r&&(r={}),this.changes.push({kind:l.ReplaceWithSingleNode,sourceFile:e,range:n,options:r,node:t})},n.prototype.replaceNode=function(e,n,t,r){void 0===r&&(r=u),this.replaceRange(e,d(e,n,n,r),t,r)},n.prototype.replaceNodeRange=function(e,n,t,r,a){void 0===a&&(a=u),this.replaceRange(e,d(e,n,t,a),r,a)},n.prototype.replaceRangeWithNodes=function(e,n,t,r){void 0===r&&(r={}),this.changes.push({kind:l.ReplaceWithMultipleNodes,sourceFile:e,range:n,options:r,nodes:t})},n.prototype.replaceNodeWithNodes=function(e,n,t,r){void 0===r&&(r=u),this.replaceRangeWithNodes(e,d(e,n,n,r),t,r)},n.prototype.replaceNodeWithText=function(e,n,t){this.replaceRangeWithText(e,d(e,n,n,u),t)},n.prototype.replaceNodeRangeWithNodes=function(e,n,t,r,a){void 0===a&&(a=u),this.replaceRangeWithNodes(e,d(e,n,t,a),r,a)},n.prototype.nextCommaToken=function(n,t){var r=e.findNextToken(t,t.parent,n);return r&&27===r.kind?r:void 0},n.prototype.replacePropertyAssignment=function(e,n,t){var r=this.nextCommaToken(e,n)?\"\":\",\"+this.newLineCharacter;this.replaceNode(e,n,t,{suffix:r})},n.prototype.insertNodeAt=function(n,t,r,a){void 0===a&&(a={}),this.replaceRange(n,e.createRange(t),r,a)},n.prototype.insertNodesAt=function(n,t,r,a){void 0===a&&(a={}),this.replaceRangeWithNodes(n,e.createRange(t),r,a)},n.prototype.insertNodeAtTopOfFile=function(n,t,r){var a=function(n){for(var t,r=0,a=n.statements;r<a.length;r++){var i=a[r];if(!e.isPrologueDirective(i))break;t=i}var o=0,s=n.text;if(t)return o=t.end,m(),o;var c=e.getShebang(s);void 0!==c&&(o=c.length,m());var l=e.getLeadingCommentRanges(s,o);if(!l)return o;l.length&&3===l[0].kind&&e.isPinnedComment(s,l[0].pos)&&(o=l[0].end,m(),l=l.slice(1));for(var u=0,d=l;u<d.length;u++){var p=d[u];if(2!==p.kind||!e.isRecognizedTripleSlashComment(s,p.pos,p.end))break;o=p.end,m()}return o;function m(){if(o<s.length){var n=s.charCodeAt(o);e.isLineBreak(n)&&++o<s.length&&13===n&&10===s.charCodeAt(o)&&o++}}}(n);this.insertNodeAt(n,a,t,{prefix:0===a?void 0:this.newLineCharacter,suffix:(e.isLineBreak(n.text.charCodeAt(a))?\"\":this.newLineCharacter)+(r?this.newLineCharacter:\"\")})},n.prototype.insertNodeBefore=function(e,n,t,r){void 0===r&&(r=!1),this.insertNodeAt(e,p(e,n,{}),t,this.getOptionsForInsertNodeBefore(n,r))},n.prototype.insertModifierBefore=function(n,t,r){var a=r.getStart(n);this.insertNodeAt(n,a,e.createToken(t),{suffix:\" \"})},n.prototype.insertLastModifierBefore=function(n,t,r){if(r.modifiers){var a=r.modifiers.end;this.insertNodeAt(n,a,e.createToken(t),{prefix:\" \"})}else this.insertModifierBefore(n,t,r)},n.prototype.insertCommentBeforeLine=function(n,t,r,a){var i=e.getStartPositionOfLine(t,n),o=e.getFirstNonSpaceCharacterPosition(n.text,i),s=x(n,o),c=e.getTouchingToken(n,s?o:r),l=n.text.slice(i,o),u=(s?\"\":this.newLineCharacter)+\"//\"+a+this.newLineCharacter+l;this.insertText(n,c.getStart(n),u)},n.prototype.insertJsdocCommentBefore=function(n,t,r){var a=t.getStart(n);if(t.jsDoc)for(var i=0,o=t.jsDoc;i<o.length;i++){var s=o[i];this.deleteRange(n,{pos:e.getLineStartPositionForPosition(s.getStart(n),n),end:m(n,s,{})})}var c=e.getPrecedingNonSpaceCharacterPosition(n.text,a-1),l=n.text.slice(c,a);this.insertNodeAt(n,a,r,{preserveLeadingWhitespace:!1,suffix:this.newLineCharacter+l})},n.prototype.replaceRangeWithText=function(e,n,t){this.changes.push({kind:l.Text,sourceFile:e,range:n,text:t})},n.prototype.insertText=function(n,t,r){this.replaceRangeWithText(n,e.createRange(t),r)},n.prototype.tryInsertTypeAnnotation=function(n,t,r){var a;if(e.isFunctionLike(t)){if(!(a=e.findChildOfKind(t,21,n))){if(!e.isArrowFunction(t))return!1;a=e.first(t.parameters)}}else a=241!==t.kind&&t.questionToken?t.questionToken:t.name;return this.insertNodeAt(n,a.end,r,{prefix:\": \"}),!0},n.prototype.tryInsertThisTypeAnnotation=function(n,t,r){var a=e.findChildOfKind(t,20,n).getStart(n)+1,i=t.parameters.length?\", \":\"\";this.insertNodeAt(n,a,r,{prefix:\"this: \",suffix:i})},n.prototype.insertTypeParameters=function(n,t,r){var a=(e.findChildOfKind(t,20,n)||e.first(t.parameters)).getStart(n);this.insertNodesAt(n,a,r,{prefix:\"<\",suffix:\">\"})},n.prototype.getOptionsForInsertNodeBefore=function(n,t){return e.isStatement(n)||e.isClassElement(n)?{suffix:t?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(n)?{suffix:\", \"}:e.isParameter(n)?{}:e.isStringLiteral(n)&&e.isImportDeclaration(n.parent)||e.isNamedImports(n)?{suffix:\", \"}:e.Debug.failBadSyntaxKind(n)},n.prototype.insertNodeAtConstructorStart=function(n,t,r){var a=e.firstOrUndefined(t.body.statements);a&&t.body.multiLine?this.insertNodeBefore(n,a,r):this.replaceConstructorBody(n,t,__spreadArrays([r],t.body.statements))},n.prototype.insertNodeAtConstructorEnd=function(n,t,r){var a=e.lastOrUndefined(t.body.statements);a&&t.body.multiLine?this.insertNodeAfter(n,a,r):this.replaceConstructorBody(n,t,__spreadArrays(t.body.statements,[r]))},n.prototype.replaceConstructorBody=function(n,t,r){this.replaceNode(n,t.body,e.createBlock(r,!0))},n.prototype.insertNodeAtEndOfScope=function(n,t,r){var a=p(n,t.getLastToken(),{});this.insertNodeAt(n,a,r,{prefix:e.isLineBreak(n.text.charCodeAt(t.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},n.prototype.insertNodeAtClassStart=function(e,n,t){this.insertNodeAtStartWorker(e,n,t)},n.prototype.insertNodeAtObjectStart=function(e,n,t){this.insertNodeAtStartWorker(e,n,t)},n.prototype.insertNodeAtStartWorker=function(n,t,r){var a=t.getStart(n),i=e.formatting.SmartIndenter.findFirstNonWhitespaceColumn(e.getLineStartPositionForPosition(a,n),a,n,this.formatContext.options)+this.formatContext.options.indentSize;this.insertNodeAt(n,b(t).pos,r,__assign({indentation:i},this.getInsertNodeAtStartPrefixSuffix(n,t)))},n.prototype.getInsertNodeAtStartPrefixSuffix=function(n,t){var r=e.isObjectLiteralExpression(t)?\",\":\"\";if(0===b(t).length){if(e.addToSeen(this.classesWithNodesInsertedAtStart,e.getNodeId(t),{node:t,sourceFile:n})){var a=e.positionsAreOnSameLine.apply(void 0,__spreadArrays(h(t,n),[n]));return{prefix:this.newLineCharacter,suffix:r+(a?this.newLineCharacter:\"\")}}return{prefix:\"\",suffix:r+this.newLineCharacter}}return{prefix:this.newLineCharacter,suffix:r}},n.prototype.insertNodeAfterComma=function(e,n,t){var r=this.insertNodeAfterWorker(e,this.nextCommaToken(e,n)||n,t);this.insertNodeAt(e,r,t,this.getInsertNodeAfterOptions(e,n))},n.prototype.insertNodeAfter=function(e,n,t){var r=this.insertNodeAfterWorker(e,n,t);this.insertNodeAt(e,r,t,this.getInsertNodeAfterOptions(e,n))},n.prototype.insertNodeAtEndOfList=function(e,n,t){this.insertNodeAt(e,n.end,t,{prefix:\", \"})},n.prototype.insertNodesAfter=function(n,t,r){var a=this.insertNodeAfterWorker(n,t,e.first(r));this.insertNodesAt(n,a,r,this.getInsertNodeAfterOptions(n,t))},n.prototype.insertNodeAfterWorker=function(n,t,r){var a,i;return a=t,i=r,((e.isPropertySignature(a)||e.isPropertyDeclaration(a))&&e.isClassOrTypeElement(i)&&153===i.name.kind||e.isStatementButNotDeclaration(a)&&e.isStatementButNotDeclaration(i))&&59!==n.text.charCodeAt(t.end-1)&&this.replaceRange(n,e.createRange(t.end),e.createToken(26)),m(n,t,{})},n.prototype.getInsertNodeAfterOptions=function(n,t){var r=this.getInsertNodeAfterOptionsWorker(t);return __assign(__assign({},r),{prefix:t.end===n.end&&e.isStatement(t)?r.prefix?\"\\n\"+r.prefix:\"\\n\":r.prefix})},n.prototype.getInsertNodeAfterOptionsWorker=function(n){switch(n.kind){case 244:case 248:return{prefix:this.newLineCharacter,suffix:this.newLineCharacter};case 241:case 10:case 75:return{prefix:\", \"};case 279:return{suffix:\",\"+this.newLineCharacter};case 88:return{prefix:\" \"};case 155:return{};default:return e.Debug.assert(e.isStatement(n)||e.isClassOrTypeElement(n)),{suffix:this.newLineCharacter}}},n.prototype.insertName=function(n,t,r){if(e.Debug.assert(!t.name),201===t.kind){var a=e.findChildOfKind(t,38,n),i=e.findChildOfKind(t,20,n);i?(this.insertNodesAt(n,i.getStart(n),[e.createToken(93),e.createIdentifier(r)],{joiner:\" \"}),L(this,n,a)):(this.insertText(n,e.first(t.parameters).getStart(n),\"function \"+r+\"(\"),this.replaceRange(n,a,e.createToken(21))),222!==t.body.kind&&(this.insertNodesAt(n,t.body.getStart(n),[e.createToken(18),e.createToken(100)],{joiner:\" \",suffix:\" \"}),this.insertNodesAt(n,t.body.end,[e.createToken(26),e.createToken(19)],{joiner:\" \"}))}else{var o=e.findChildOfKind(t,200===t.kind?93:79,n).end;this.insertNodeAt(n,o,e.createIdentifier(r),{prefix:\" \"})}},n.prototype.insertExportModifier=function(e,n){this.insertText(e,n.getStart(e),\"export \")},n.prototype.insertNodeInListAfter=function(n,t,r,a){if(void 0===a&&(a=e.formatting.SmartIndenter.getContainingList(t,n)),a){var i=e.indexOfNode(a,t);if(!(i<0)){var o=t.getEnd();if(i!==a.length-1){var s=e.getTokenAtPosition(n,t.end);if(s&&f(t,s)){var l=e.getLineAndCharacterOfPosition(n,c(n.text,a[i+1].getFullStart())),u=e.getLineAndCharacterOfPosition(n,s.end),d=void 0,p=void 0;u.line===l.line?(p=s.end,d=function(e){for(var n=\"\",t=0;t<e;t++)n+=\" \";return n}(l.character-u.character)):p=e.getStartPositionOfLine(l.line,n);var m=\"\"+e.tokenToString(s.kind)+n.text.substring(s.end,a[i+1].getStart(n));this.replaceRange(n,e.createRange(p,a[i+1].getStart(n)),r,{prefix:d,suffix:m})}}else{var _=t.getStart(n),g=e.getLineStartPositionForPosition(_,n),y=void 0,v=!1;if(1===a.length)y=27;else{var h=e.findPrecedingToken(t.pos,n);y=f(t,h)?h.kind:27,v=e.getLineStartPositionForPosition(a[i-1].getStart(n),n)!==g}if(function(n,t){for(var r=t;r<n.length;){var a=n.charCodeAt(r);if(!e.isWhiteSpaceSingleLine(a))return 47===a;r++}return!1}(n.text,t.end)&&(v=!0),v){this.replaceRange(n,e.createRange(o),e.createToken(y));var b=e.formatting.SmartIndenter.findFirstNonWhitespaceColumn(g,_,n,this.formatContext.options),E=e.skipTrivia(n.text,o,!0,!1);E!==o&&e.isLineBreak(n.text.charCodeAt(E-1))&&E--,this.replaceRange(n,e.createRange(E),r,{indentation:b,prefix:this.newLineCharacter})}else this.replaceRange(n,e.createRange(o),r,{prefix:e.tokenToString(y)+\" \"})}}}else e.Debug.fail(\"node is not a list element\")},n.prototype.parenthesizeExpression=function(n,t){this.replaceRange(n,e.rangeOfNode(t),e.createParen(t))},n.prototype.finishClassesWithNodesInsertedAtStart=function(){var n=this;this.classesWithNodesInsertedAtStart.forEach((function(t){var r=t.node,a=t.sourceFile,i=h(r,a),o=i[0],s=i[1];e.positionsAreOnSameLine(o,s,a)&&o!==s-1&&n.deleteRange(a,e.createRange(o,s-1))}))},n.prototype.finishDeleteDeclarations=function(){for(var n=this,t=new e.NodeSet,r=function(n,r){a.deletedNodes.some((function(t){return t.sourceFile===n&&e.rangeContainsRangeExclusive(t.node,r)}))||(e.isArray(r)?a.deleteRange(n,e.rangeOfTypeParameters(r)):g.deleteDeclaration(a,t,n,r))},a=this,i=0,o=this.deletedNodes;i<o.length;i++){var s=o[i];r(s.sourceFile,s.node)}t.forEach((function(r){var a=r.getSourceFile(),i=e.formatting.SmartIndenter.getContainingList(r,a);if(r===e.last(i)){var o=e.findLastIndex(i,(function(e){return!t.has(e)}),i.length-2);-1!==o&&n.deleteRange(a,{pos:i[o].end,end:v(a,i[o+1])})}}))},n.prototype.getChanges=function(e){this.finishDeleteDeclarations(),this.finishClassesWithNodesInsertedAtStart();for(var n=_.getTextChangesFromChanges(this.changes,this.newLineCharacter,this.formatContext,e),t=0,r=this.newFiles;t<r.length;t++){var a=r[t],i=a.oldFile,o=a.fileName,s=a.statements;n.push(_.newFileChanges(i,o,s,this.newLineCharacter,this.formatContext))}return n},n.prototype.createNewFile=function(e,n,t){this.newFiles.push({oldFile:e,fileName:n,statements:t})},n}();function v(n,t){return e.skipTrivia(n.text,p(n,t,{leadingTriviaOption:o.IncludeAll}),!1,!0)}function h(n,t){return[e.findChildOfKind(n,18,t).end,e.findChildOfKind(n,19,t).end]}function b(n){return e.isObjectLiteralExpression(n)?n.properties:n.members}function E(n,t){for(var r=t.length-1;r>=0;r--){var a=t[r],i=a.span,o=a.newText;n=\"\"+n.substring(0,i.start)+o+n.substring(e.textSpanEnd(i))}return n}function T(n){var r=e.visitEachChild(n,T,e.nullTransformationContext,S,T),i=e.nodeIsSynthesized(r)?r:Object.create(r);return i.pos=t(n),i.end=a(n),i}function S(n,r,i,o,s){var c=e.visitNodes(n,r,i,o,s);if(!c)return c;var l=c===n?e.createNodeArray(c.slice(0)):c;return l.pos=t(n),l.end=a(n),l}function x(n,t){return!(e.isInComment(n,t)||e.isInString(n,t)||e.isInTemplateString(n,t)||e.isInJSXText(n,t))}function L(e,n,t,r){void 0===r&&(r={leadingTriviaOption:o.IncludeAll});var a=p(n,t,r),i=m(n,t,r);e.deleteRange(n,{pos:a,end:i})}function C(n,t,r,a){var i=e.Debug.assertDefined(e.formatting.SmartIndenter.getContainingList(a,r)),o=e.indexOfNode(i,a);e.Debug.assert(-1!==o),1!==i.length?(e.Debug.assert(!t.has(a),\"Deleting a node twice\"),t.add(a),n.deleteRange(r,{pos:v(r,a),end:o===i.length-1?m(r,a,{}):v(r,i[o+1])})):L(n,r,a)}n.ChangeTracker=y,n.getNewFileText=function(e,n,t,r){return _.newFileChangesWorker(void 0,n,e,t,r)},function(n){function t(n,t,r,i,o){var s=r.map((function(e){return a(e,n,i).text})).join(i),c=e.createSourceFile(\"any file name\",s,99,!0,t);return E(s,e.formatting.formatDocument(c,o))+i}function a(n,t,a){var o=function(n){var t=0,a=e.createTextWriter(n);function o(n,r){if(r||!function(n){return e.skipTrivia(n,0)===n.length}(n)){t=a.getTextPos();for(var i=0;e.isWhiteSpaceLike(n.charCodeAt(n.length-i-1));)i++;t-=i}}return{onEmitNode:function(e,n,a){n&&r(n,t),a(e,n),n&&i(n,t)},onBeforeEmitNodeArray:function(e){e&&r(e,t)},onAfterEmitNodeArray:function(e){e&&i(e,t)},onBeforeEmitToken:function(e){e&&r(e,t)},onAfterEmitToken:function(e){e&&i(e,t)},write:function(e){a.write(e),o(e,!1)},writeComment:function(e){a.writeComment(e)},writeKeyword:function(e){a.writeKeyword(e),o(e,!1)},writeOperator:function(e){a.writeOperator(e),o(e,!1)},writePunctuation:function(e){a.writePunctuation(e),o(e,!1)},writeTrailingSemicolon:function(e){a.writeTrailingSemicolon(e),o(e,!1)},writeParameter:function(e){a.writeParameter(e),o(e,!1)},writeProperty:function(e){a.writeProperty(e),o(e,!1)},writeSpace:function(e){a.writeSpace(e),o(e,!1)},writeStringLiteral:function(e){a.writeStringLiteral(e),o(e,!1)},writeSymbol:function(e,n){a.writeSymbol(e,n),o(e,!1)},writeLine:function(){a.writeLine()},increaseIndent:function(){a.increaseIndent()},decreaseIndent:function(){a.decreaseIndent()},getText:function(){return a.getText()},rawWrite:function(e){a.rawWrite(e),o(e,!1)},writeLiteral:function(e){a.writeLiteral(e),o(e,!0)},getTextPos:function(){return a.getTextPos()},getLine:function(){return a.getLine()},getColumn:function(){return a.getColumn()},getIndent:function(){return a.getIndent()},isAtStartOfLine:function(){return a.isAtStartOfLine()},hasTrailingComment:function(){return a.hasTrailingComment()},hasTrailingWhitespace:function(){return a.hasTrailingWhitespace()},clear:function(){a.clear(),t=0}}}(a),s=\"\\n\"===a?1:0;return e.createPrinter({newLine:s,neverAsciiEscape:!0},o).writeNode(4,n,t,o),{text:o.getText(),node:T(n)}}n.getTextChangesFromChanges=function(n,t,r,i){return e.group(n,(function(e){return e.sourceFile.path})).map((function(n){for(var o=n[0].sourceFile,s=e.stableSort(n,(function(e,n){return e.range.pos-n.range.pos||e.range.end-n.range.end})),c=function(n){e.Debug.assert(s[n].range.end<=s[n+1].range.pos,\"Changes overlap\",(function(){return JSON.stringify(s[n].range)+\" and \"+JSON.stringify(s[n+1].range)}))},u=0;u<s.length-1;u++)c(u);var d=s.map((function(n){return e.createTextChange(e.createTextSpanFromRange(n.range),function(n,t,r,i,o){if(n.kind===l.Remove)return\"\";if(n.kind===l.Text)return n.text;var s=n.options,c=void 0===s?{}:s,u=n.range.pos,d=function(n){return function(n,t,r,i,o,s,c){var l=i.indentation,u=i.prefix,d=i.delta,p=a(n,t,o),m=p.node,f=p.text;c&&c(m,f);var _=function(n,t){var r=n.options,a=!r.semicolons||r.semicolons===e.SemicolonPreference.Ignore,i=r.semicolons===e.SemicolonPreference.Remove||a&&!e.probablyUsesSemicolons(t);return __assign(__assign({},r),{semicolons:i?e.SemicolonPreference.Remove:e.SemicolonPreference.Ignore})}(s,t),g=void 0!==l?l:e.formatting.SmartIndenter.getIndentation(r,t,_,u===o||e.getLineStartPositionForPosition(r,t)===r);void 0===d&&(d=e.formatting.SmartIndenter.shouldIndentChildNode(_,n)&&_.indentSize||0);var y={text:f,getLineAndCharacterOfPosition:function(n){return e.getLineAndCharacterOfPosition(this,n)}},v=e.formatting.formatNodeGivenIndentation(m,y,t.languageVariant,g,d,__assign(__assign({},s),{options:_}));return E(f,v)}(n,t,u,c,r,i,o)},p=n.kind===l.ReplaceWithMultipleNodes?n.nodes.map((function(n){return e.removeSuffix(d(n),r)})).join(n.options.joiner||r):d(n.node),m=c.preserveLeadingWhitespace||void 0!==c.indentation||e.getLineStartPositionForPosition(u,t)===u?p:p.replace(/^\\s+/,\"\");return(c.prefix||\"\")+m+(c.suffix||\"\")}(n,o,t,r,i))}));return{fileName:o.fileName,textChanges:d}}))},n.newFileChanges=function(n,r,a,i,o){var s=t(n,e.getScriptKindFromFileName(r),a,i,o);return{fileName:r,textChanges:[e.createTextChange(e.createTextSpan(0,0),s)],isNewFile:!0}},n.newFileChangesWorker=t,n.getNonformattedText=a}(_||(_={})),n.applyChanges=E,n.isValidLocationToAddComment=x,function(n){function t(n,t,r){if(r.parent.name){var a=e.Debug.assertDefined(e.getTokenAtPosition(t,r.pos-1));n.deleteRange(t,{pos:a.getStart(t),end:r.end})}else{L(n,t,e.getAncestor(r,253))}}n.deleteDeclaration=function(n,r,a,i){switch(i.kind){case 155:var c=i.parent;e.isArrowFunction(c)&&1===c.parameters.length&&!e.findChildOfKind(c,20,a)?n.replaceNodeWithText(a,i,\"()\"):C(n,r,a,i);break;case 253:L(n,a,i,i===a.imports[0].parent?{leadingTriviaOption:o.Exclude}:void 0);break;case 190:var l=i.parent;189===l.kind&&i!==e.last(l.elements)?L(n,a,i):C(n,r,a,i);break;case 241:!function(n,t,r,a){var i=a.parent;if(278===i.kind)return void n.deleteNodeRange(r,e.findChildOfKind(i,20,r),e.findChildOfKind(i,21,r));if(1!==i.declarations.length)return void C(n,t,r,a);var o=i.parent;switch(o.kind){case 231:case 230:n.replaceNode(r,a,e.createObjectLiteral());break;case 229:L(n,r,i);break;case 224:L(n,r,o);break;default:e.Debug.assertNever(o)}}(n,r,a,i);break;case 154:C(n,r,a,i);break;case 257:var u=i.parent;1===u.elements.length?t(n,a,u):C(n,r,a,i);break;case 255:t(n,a,i);break;default:e.isImportClause(i.parent)&&i.parent.name===i?function(n,t,r){if(r.namedBindings){var a=r.name.getStart(t),i=e.getTokenAtPosition(t,r.name.end);if(i&&27===i.kind){var o=e.skipTrivia(t.text,i.end,!1,!0);n.deleteRange(t,{pos:a,end:o})}else L(n,t,r.name)}else L(n,t,r.parent)}(n,a,i.parent):e.isCallLikeExpression(i.parent)?C(n,r,a,i):L(n,a,i,26===i.kind?{trailingTriviaOption:s.Exclude}:void 0)}}}(g||(g={})),n.deleteNode=L}(e.textChanges||(e.textChanges={}))}(ts||(ts={})),function(e){!function(n){var t=e.createMultiMap(),r=e.createMap();function a(n){return e.isArray(n)?e.formatStringFromArgs(e.getLocaleSpecificMessage(n[0]),n.slice(1)):e.getLocaleSpecificMessage(n)}function i(e,n,t,r,a,i){return{fixName:e,description:n,changes:t,fixId:r,fixAllDescription:a,commands:i?[i]:void 0}}function o(e,n){return{changes:e,commands:n}}function s(n,t,r){for(var a=n.program,i=n.sourceFile,o=n.cancellationToken,s=0,c=a.getSemanticDiagnostics(i,o).concat(e.computeSuggestionDiagnostics(i,a,o));s<c.length;s++){var l=c[s];e.contains(t,l.code)&&r(l)}}n.createCodeFixActionNoFixId=function(e,n,t){return i(e,a(t),n,void 0,void 0)},n.createCodeFixAction=function(e,n,t,r,o,s){return i(e,a(t),n,r,a(o),s)},n.registerCodeFix=function(n){for(var a=0,i=n.errorCodes;a<i.length;a++){var o=i[a];t.add(String(o),n)}if(n.fixIds)for(var s=0,c=n.fixIds;s<c.length;s++){var l=c[s];e.Debug.assert(!r.has(l)),r.set(l,n)}},n.getSupportedErrorCodes=function(){return e.arrayFrom(t.keys())},n.getFixes=function(n){return e.flatMap(t.get(String(n.errorCode))||e.emptyArray,(function(e){return e.getCodeActions(n)}))},n.getAllFixes=function(n){return r.get(e.cast(n.fixId,e.isString)).getAllCodeActions(n)},n.createCombinedCodeActions=o,n.createFileTextChanges=function(e,n){return{fileName:e,textChanges:n}},n.codeFixAll=function(n,t,r){var a=[];return o(e.textChanges.ChangeTracker.with(n,(function(e){return s(n,t,(function(n){return r(e,n,a)}))})),0===a.length?void 0:a)},n.eachDiagnostic=s}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){var n,t;n=e.refactor||(e.refactor={}),t=e.createMap(),n.registerRefactor=function(e,n){t.set(e,n)},n.getApplicableRefactors=function(n){return e.arrayFrom(e.flatMapIterator(t.values(),(function(e){return n.cancellationToken&&n.cancellationToken.isCancellationRequested()?void 0:e.getAvailableActions(n)})))},n.getEditsForRefactor=function(e,n,r){var a=t.get(n);return a&&a.getEditsForAction(e,r)},e.getRefactorContextSpan=function(n){var t=n.startPosition,r=n.endPosition;return e.createTextSpanFromBounds(t,void 0===r?t:r)}}(ts||(ts={})),function(e){!function(n){var t=\"addConvertToUnknownForNonOverlappingTypes\",r=[e.Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.Debug.assertDefined(e.findAncestor(a,(function(n){return e.isAsExpression(n)||e.isTypeAssertion(n)})),\"Expected to find an assertion expression\"),o=e.isAsExpression(i)?e.createAsExpression(i.expression,e.createKeywordTypeNode(147)):e.createTypeAssertion(e.createKeywordTypeNode(147),i.expression);n.replaceNode(t,i.expression,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Add_unknown_conversion_for_non_overlapping_types,t,e.Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingAwait\",r=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,a=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],i=__spreadArrays([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,r],a);function o(t,r,a,o,s,c){var d=t.sourceFile,p=t.program,m=t.cancellationToken,f=function(n,t,r,a,o){var s=function(n,t){if(e.isPropertyAccessExpression(n.parent)&&e.isIdentifier(n.parent.expression))return{identifiers:[n.parent.expression],isCompleteFix:!0};if(e.isIdentifier(n))return{identifiers:[n],isCompleteFix:!0};if(e.isBinaryExpression(n)){for(var r=void 0,a=!0,i=0,o=[n.left,n.right];i<o.length;i++){var s=o[i],c=t.getTypeAtLocation(s);if(t.getPromisedTypeOfPromise(c)){if(!e.isIdentifier(s)){a=!1;continue}(r||(r=[])).push(s)}}return r&&{identifiers:r,isCompleteFix:a}}}(n,o);if(!s)return;for(var c,u=s.isCompleteFix,d=function(n){var s=o.getSymbolAtLocation(n);if(!s)return\"continue\";var d=e.tryCast(s.valueDeclaration,e.isVariableDeclaration),p=d&&e.tryCast(d.name,e.isIdentifier),m=e.getAncestor(d,224);if(!d||!m||d.type||!d.initializer||m.getSourceFile()!==t||e.hasModifier(m,1)||!p||!l(d.initializer))return u=!1,\"continue\";var f=a.getSemanticDiagnostics(t,r);if(e.FindAllReferences.Core.eachSymbolReferenceInFile(p,o,t,(function(r){return n!==r&&!function(n,t,r,a){var o=e.isPropertyAccessExpression(n.parent)?n.parent.name:e.isBinaryExpression(n.parent)?n.parent:n,s=e.find(t,(function(e){return e.start===o.getStart(r)&&e.start+e.length===o.getEnd()}));return s&&e.contains(i,s.code)||1&a.getTypeAtLocation(o).flags}(r,f,t,o)})))return u=!1,\"continue\";(c||(c=[])).push({expression:d.initializer,declarationSymbol:s})},p=0,m=s.identifiers;p<m.length;p++){var f=m[p];d(f)}return c&&{initializers:c,needsSecondPassForFixAll:!u}}(r,d,m,p,o);if(f){var _=s((function(n){e.forEach(f.initializers,(function(e){var t=e.expression;return u(n,a,d,o,t,c)})),c&&f.needsSecondPassForFixAll&&u(n,a,d,o,r,c)}));return n.createCodeFixActionNoFixId(\"addMissingAwaitToInitializer\",_,1===f.initializers.length?[e.Diagnostics.Add_await_to_initializer_for_0,f.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function s(r,a,i,o,s,c){var l=s((function(e){return u(e,i,r.sourceFile,o,a,c)}));return n.createCodeFixAction(t,l,e.Diagnostics.Add_await,t,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function c(n,t,r,a,i){var o=e.getTokenAtPosition(n,r.start),s=e.findAncestor(o,(function(t){return t.getStart(n)<r.start||t.getEnd()>e.textSpanEnd(r)?\"quit\":e.isExpression(t)&&e.textSpansEqual(r,e.createTextSpanFromNode(t,n))}));return s&&function(n,t,r,a,i){var o=i.getDiagnosticsProducingTypeChecker().getDiagnostics(n,a);return e.some(o,(function(n){var a=n.start,i=n.length,o=n.relatedInformation,s=n.code;return e.isNumber(a)&&e.isNumber(i)&&e.textSpansEqual({start:a,length:i},r)&&s===t&&!!o&&e.some(o,(function(n){return n.code===e.Diagnostics.Did_you_forget_to_use_await.code}))}))}(n,t,r,a,i)&&l(s)?s:void 0}function l(n){return 32768&n.kind||!!e.findAncestor(n,(function(n){return n.parent&&e.isArrowFunction(n.parent)&&n.parent.body===n||e.isBlock(n)&&(243===n.parent.kind||200===n.parent.kind||201===n.parent.kind||160===n.parent.kind)}))}function u(n,t,i,o,s,c){if(e.isBinaryExpression(s))for(var l=0,u=[s.left,s.right];l<u.length;l++){var d=u[l];if(c&&e.isIdentifier(d))if((f=o.getSymbolAtLocation(d))&&c.has(e.getSymbolId(f).toString()))continue;var p=o.getTypeAtLocation(d),m=o.getPromisedTypeOfPromise(p)?e.createAwait(d):d;n.replaceNode(i,d,m)}else if(t===r&&e.isPropertyAccessExpression(s.parent)){if(c&&e.isIdentifier(s.parent.expression))if((f=o.getSymbolAtLocation(s.parent.expression))&&c.has(e.getSymbolId(f).toString()))return;n.replaceNode(i,s.parent.expression,e.createParen(e.createAwait(s.parent.expression)))}else if(e.contains(a,t)&&e.isCallOrNewExpression(s.parent)){if(c&&e.isIdentifier(s))if((f=o.getSymbolAtLocation(s))&&c.has(e.getSymbolId(f).toString()))return;n.replaceNode(i,s,e.createParen(e.createAwait(s)))}else{var f;if(c&&e.isVariableDeclaration(s.parent)&&e.isIdentifier(s.parent.name))if((f=o.getSymbolAtLocation(s.parent.name))&&!e.addToSeen(c,e.getSymbolId(f)))return;n.replaceNode(i,s,e.createAwait(s))}}n.registerCodeFix({fixIds:[t],errorCodes:i,getCodeActions:function(n){var t=n.sourceFile,r=n.errorCode,a=c(t,r,n.span,n.cancellationToken,n.program);if(a){var i=n.program.getTypeChecker(),l=function(t){return e.textChanges.ChangeTracker.with(n,t)};return e.compact([o(n,a,r,i,l),s(n,a,r,i,l)])}},getAllCodeActions:function(t){var r=t.sourceFile,a=t.program,l=t.cancellationToken,u=t.program.getTypeChecker(),d=e.createMap();return n.codeFixAll(t,i,(function(e,n){var i=c(r,n.code,n,l,a);if(i){var p=function(n){return n(e),[]};return o(t,i,n.code,u,p,d)||s(t,i,n.code,u,p,d)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingConst\",r=[e.Diagnostics.Cannot_find_name_0.code,e.Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code];function a(n,t,r,a,o){var s=e.getTokenAtPosition(t,r),c=e.findAncestor(s,(function(n){return e.isForInOrOfStatement(n.parent)?n.parent.initializer===n:!function(e){switch(e.kind){case 75:case 191:case 192:case 279:case 280:return!0;default:return!1}}(n)&&\"quit\"}));if(c)return i(n,c,t,o);var l=s.parent;if(e.isBinaryExpression(l)&&e.isExpressionStatement(l.parent))return i(n,s,t,o);if(e.isArrayLiteralExpression(l)){var u=a.getTypeChecker();if(!e.every(l.elements,(function(n){return function(n,t){var r=e.isIdentifier(n)?n:e.isAssignmentExpression(n,!0)&&e.isIdentifier(n.left)?n.left:void 0;return!!r&&!t.getSymbolAtLocation(r)}(n,u)})))return;return i(n,l,t,o)}var d=e.findAncestor(s,(function(n){return!!e.isExpressionStatement(n.parent)||!function(e){switch(e.kind){case 75:case 208:case 27:return!0;default:return!1}}(n)&&\"quit\"}));if(d){if(!function n(t,r){if(!e.isBinaryExpression(t))return!1;if(27===t.operatorToken.kind)return e.every([t.left,t.right],(function(e){return n(e,r)}));return e.isIdentifier(t.left)&&!r.getSymbolAtLocation(t.left)}(d,a.getTypeChecker()))return;return i(n,d,t,o)}}function i(e,n,t,r){r&&!r.tryAdd(n)||e.insertModifierBefore(t,80,n)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Add_const_to_unresolved_variable,t,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[t],getAllCodeActions:function(t){var i=new e.NodeSet;return n.codeFixAll(t,r,(function(e,n){return a(e,n.file,n.start,t.program,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingDeclareProperty\",r=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];function a(n,t,r,a){var i=e.getTokenAtPosition(t,r);if(e.isIdentifier(i)){var o=i.parent;158!==o.kind||a&&!a.tryAdd(o)||n.insertModifierBefore(t,129,o)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Prefix_with_declare,t,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[t],getAllCodeActions:function(t){var i=new e.NodeSet;return n.codeFixAll(t,r,(function(e,n){return a(e,n.file,n.start,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingInvocationForDecorator\",r=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.findAncestor(a,e.isDecorator);e.Debug.assert(!!i,\"Expected position to be owned by a decorator.\");var o=e.createCall(i.expression,void 0,void 0);n.replaceNode(t,i.expression,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Call_decorator_expression,t,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addNameToNamelessParameter\",r=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r);if(!e.isIdentifier(a))return e.Debug.fail(\"add-name-to-nameless-parameter operates on identifiers, but got a \"+e.Debug.formatSyntaxKind(a.kind));var i=a.parent;if(!e.isParameter(i))return e.Debug.fail(\"Tried to add a parameter name to a non-parameter: \"+e.Debug.formatSyntaxKind(a.kind));var o=i.parent.parameters.indexOf(i);e.Debug.assert(!i.type,\"Tried to add a parameter name to a parameter that already had one.\"),e.Debug.assert(o>-1,\"Parameter not found in parent parameter list.\");var s=e.createParameter(void 0,i.modifiers,i.dotDotDotToken,\"arg\"+o,i.questionToken,e.createTypeReferenceNode(a,void 0),i.initializer);n.replaceNode(t,a,s)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Add_parameter_name,t,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"annotateWithTypeFromJSDoc\",r=[e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.tryCast(e.isParameter(r.parent)?r.parent.parent:r.parent,i)}function i(n){return function(n){return e.isFunctionLikeDeclaration(n)||241===n.kind||157===n.kind||158===n.kind}(n)&&o(n)}function o(n){return e.isFunctionLikeDeclaration(n)?n.parameters.some(o)||!n.type&&!!e.getJSDocReturnType(n):!n.type&&!!e.getJSDocType(n)}function s(n,t,r){if(e.isFunctionLikeDeclaration(r)&&(e.getJSDocReturnType(r)||r.parameters.some((function(n){return!!e.getJSDocType(n)})))){if(!r.typeParameters){var a=e.getJSDocTypeParameterDeclarations(r);a.length&&n.insertTypeParameters(t,r,a)}var i=e.isArrowFunction(r)&&!e.findChildOfKind(r,20,t);i&&n.insertNodeBefore(t,e.first(r.parameters),e.createToken(20));for(var o=0,s=r.parameters;o<s.length;o++){var l=s[o];if(!l.type){var u=e.getJSDocType(l);u&&n.tryInsertTypeAnnotation(t,l,c(u))}}if(i&&n.insertNodeAfter(t,e.last(r.parameters),e.createToken(21)),!r.type){var d=e.getJSDocReturnType(r);d&&n.tryInsertTypeAnnotation(t,r,c(d))}}else{var p=e.Debug.assertDefined(e.getJSDocType(r),\"A JSDocType for this declaration should exist\");e.Debug.assert(!r.type,\"The JSDocType decl should have a type\"),n.tryInsertTypeAnnotation(t,r,c(p))}}function c(n){switch(n.kind){case 293:case 294:return e.createTypeReferenceNode(\"any\",e.emptyArray);case 297:return function(n){return e.createUnionTypeNode([e.visitNode(n.type,c),e.createTypeReferenceNode(\"undefined\",e.emptyArray)])}(n);case 296:return c(n.type);case 295:return function(n){return e.createUnionTypeNode([e.visitNode(n.type,c),e.createTypeReferenceNode(\"null\",e.emptyArray)])}(n);case 299:return function(n){return e.createArrayTypeNode(e.visitNode(n.type,c))}(n);case 298:return function(n){return e.createFunctionTypeNode(e.emptyArray,n.parameters.map(l),n.type)}(n);case 168:return function(n){var t=n.typeName,r=n.typeArguments;if(e.isIdentifier(n.typeName)){if(e.isJSDocIndexSignature(n))return function(n){var t=e.createParameter(void 0,void 0,void 0,139===n.typeArguments[0].kind?\"n\":\"s\",void 0,e.createTypeReferenceNode(139===n.typeArguments[0].kind?\"number\":\"string\",[]),void 0),r=e.createTypeLiteralNode([e.createIndexSignature(void 0,void 0,[t],n.typeArguments[1])]);return e.setEmitFlags(r,1),r}(n);var a=n.typeName.text;switch(n.typeName.text){case\"String\":case\"Boolean\":case\"Object\":case\"Number\":a=a.toLowerCase();break;case\"array\":case\"date\":case\"promise\":a=a[0].toUpperCase()+a.slice(1)}t=e.createIdentifier(a),r=\"Array\"!==a&&\"Promise\"!==a||n.typeArguments?e.visitNodes(n.typeArguments,c):e.createNodeArray([e.createTypeReferenceNode(\"any\",e.emptyArray)])}return e.createTypeReferenceNode(t,r)}(n);default:var t=e.visitEachChild(n,c,void 0);return e.setEmitFlags(t,1),t}}function l(n){var t=n.parent.parameters.indexOf(n),r=299===n.type.kind&&t===n.parent.parameters.length-1,a=n.name||(r?\"rest\":\"arg\"+t),i=r?e.createToken(25):n.dotDotDotToken;return e.createParameter(n.decorators,n.modifiers,i,a,n.questionToken,e.visitNode(n.type,c),n.initializer)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=a(r.sourceFile,r.span.start);if(i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return s(e,r.sourceFile,i)}));return[n.createCodeFixAction(t,o,e.Diagnostics.Annotate_with_type_from_JSDoc,t,e.Diagnostics.Annotate_everything_with_types_from_JSDoc)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&s(e,n.file,t)}))}}),n.parameterShouldGetTypeFromJSDoc=i}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"inferFromUsage\",r=[e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,e.Diagnostics.Variable_0_implicitly_has_an_1_type.code,e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code,e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,e.Diagnostics.Member_0_implicitly_has_an_1_type.code,e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];function a(n,t){switch(n){case e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code:case e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.isSetAccessorDeclaration(e.getContainingFunction(t))?e.Diagnostics.Infer_type_of_0_from_usage:e.Diagnostics.Infer_parameter_types_from_usage;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Infer_parameter_types_from_usage;case e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:return e.Diagnostics.Infer_this_type_of_0_from_usage;default:return e.Diagnostics.Infer_type_of_0_from_usage}}function i(n,t,r,a,i,d,_,g,y,v){if(e.isParameterPropertyModifier(r.kind)||75===r.kind||25===r.kind||103===r.kind){var h=r.parent;switch(a=function(n){switch(n){case e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;case e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Variable_0_implicitly_has_an_1_type.code;case e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code;case e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:return e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;case e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;case e.Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:return e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;case e.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return e.Diagnostics.Member_0_implicitly_has_an_1_type.code}return n}(a)){case e.Diagnostics.Member_0_implicitly_has_an_1_type.code:case e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:if(e.isVariableDeclaration(h)&&_(h)||e.isPropertyDeclaration(h)||e.isPropertySignature(h))return o(n,t,h,i,g,d,y,v),h;if(e.isPropertyAccessExpression(h)){var b=p(h.name,i,d),E=e.getTypeNodeIfAccessible(b,h,i,g);if(E){var T=e.createJSDocTypeTag(e.createJSDocTypeExpression(E),\"\");u(n,t,e.cast(h.parent.parent,e.isExpressionStatement),[T])}return h}return;case e.Diagnostics.Variable_0_implicitly_has_an_1_type.code:var S=i.getTypeChecker().getSymbolAtLocation(r);return S&&S.valueDeclaration&&e.isVariableDeclaration(S.valueDeclaration)&&_(S.valueDeclaration)?(o(n,t,S.valueDeclaration,i,g,d,y,v),S.valueDeclaration):void 0}var x=e.getContainingFunction(r);if(void 0!==x)switch(a){case e.Diagnostics.Parameter_0_implicitly_has_an_1_type.code:if(e.isSetAccessorDeclaration(x))return s(n,t,x,i,g,d,y,v),x;case e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:if(_(x)){var L=e.cast(h,e.isParameter);return function(n,t,r,a,i,o,s,u,d){if(!e.isIdentifier(r.name))return;var _=function(n,t,r,a){var i=m(n,t,r,a);return i&&f(r,i,a).parameters(n)||n.parameters.map((function(n){return{declaration:n,type:e.isIdentifier(n.name)?p(n.name,r,a):r.getTypeChecker().getAnyType()}}))}(a,t,i,s);if(e.Debug.assert(a.parameters.length===_.length,\"Parameter count and inference count should match\"),e.isInJSFile(a))l(n,t,_,i,o);else{var g=e.isArrowFunction(a)&&!e.findChildOfKind(a,20,t);g&&n.insertNodeBefore(t,e.first(a.parameters),e.createToken(20));for(var y=0,v=_;y<v.length;y++){var h=v[y],b=h.declaration,E=h.type;!b||b.type||b.initializer||c(n,t,b,E,i,o,u,d)}g&&n.insertNodeAfter(t,e.last(a.parameters),e.createToken(21))}}(n,t,L,x,i,g,d,y,v),L}return;case e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:case e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:return e.isGetAccessorDeclaration(x)&&e.isIdentifier(x.name)?(c(n,t,x,p(x.name,i,d),i,g,y,v),x):void 0;case e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:return e.isSetAccessorDeclaration(x)?(s(n,t,x,i,g,d,y,v),x):void 0;case e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:return e.textChanges.isThisTypeAnnotatable(x)&&_(x)?(function(n,t,r,a,i,o){var s=m(r,t,a,o);if(!s||!s.length)return;var c=f(a,s,o).thisParameter(),l=e.getTypeNodeIfAccessible(c,r,a,i);if(!l)return;e.isInJSFile(r)?function(n,t,r,a){u(n,t,r,[e.createJSDocThisTag(e.createJSDocTypeExpression(a))])}(n,t,r,l):n.tryInsertThisTypeAnnotation(t,r,l)}(n,t,x,i,g,d),x):void 0;default:return e.Debug.fail(String(a))}}}function o(n,t,r,a,i,o,s,l){e.isIdentifier(r.name)&&c(n,t,r,p(r.name,a,o),a,i,s,l)}function s(n,t,r,a,i,o,s,u){var d=e.firstOrUndefined(r.parameters);if(d&&e.isIdentifier(r.name)&&e.isIdentifier(d.name)){var m=p(r.name,a,o);m===a.getTypeChecker().getAnyType()&&(m=p(d.name,a,o)),e.isInJSFile(r)?l(n,t,[{declaration:d,type:m}],a,i):c(n,t,d,m,a,i,s,u)}}function c(t,r,a,i,o,s,c,l){var d=e.getTypeNodeIfAccessible(i,a,o,s);if(d)if(e.isInJSFile(r)&&157!==a.kind){var p=e.isVariableDeclaration(a)?e.tryCast(a.parent.parent,e.isVariableStatement):a;if(!p)return;var m=e.createJSDocTypeExpression(d);u(t,r,p,[e.isGetAccessorDeclaration(a)?e.createJSDocReturnTag(m,\"\"):e.createJSDocTypeTag(m,\"\")])}else(function(t,r,a,i,o,s,c,l,u){var d;if(e.isLiteralImportTypeNode(t)&&t.qualifier&&o.symbol){var p=null===(d=e.find(o.symbol.declarations,(function(e){return!!e.getSourceFile().externalModuleIndicator})))||void 0===d?void 0:d.getSourceFile().symbol;if(p){var m=e.getFirstIdentifier(t.qualifier).symbol,f=n.getImportCompletionAction(m,p,a,m.name,c,s,l,i.pos,u);if(f.codeAction.changes.length&&r.tryInsertTypeAnnotation(a,i,e.createTypeReferenceNode(t.qualifier,t.typeArguments))){for(var _=0,g=f.codeAction.changes;_<g.length;_++){var y=g[_],v=a.fileName===y.fileName?a:e.Debug.assertDefined(s.getSourceFile(y.fileName));r.pushRaw(v,y)}return!0}}}return!1})(d,t,r,a,i,o,s,c,l)||t.tryInsertTypeAnnotation(r,a,d)}function l(n,t,r,a,i){var o=r.length&&r[0].declaration.parent;o&&u(n,t,o,e.mapDefined(r,(function(n){var t=n.declaration;if(!t.initializer&&!e.getJSDocType(t)&&e.isIdentifier(t.name)){var r=n.type&&e.getTypeNodeIfAccessible(n.type,t,a,i),o=e.getSynthesizedClone(t.name);return e.setEmitFlags(o,3584),r&&e.createJSDocParamTag(o,!!n.isOptional,e.createJSDocTypeExpression(r),\"\")}})))}function u(n,t,r,a){var i=e.mapDefined(r.jsDoc,(function(e){return e.comment})),o=e.flatMapToMutable(r.jsDoc,(function(e){return e.tags})),s=a.filter((function(n){return!o||!o.some((function(t,r){var a=function(n,t){if(n.kind!==t.kind)return;switch(n.kind){case 310:var r=n,a=t;return e.isIdentifier(r.name)&&e.isIdentifier(a.name)&&r.name.escapedText===a.name.escapedText?e.createJSDocParamTag(a.name,a.isBracketed,a.typeExpression,r.comment):void 0;case 311:return e.createJSDocReturnTag(t.typeExpression,n.comment)}}(t,n);return a&&(o[r]=a),!!a}))})),c=e.createJSDocComment(i.join(\"\\n\"),e.createNodeArray(__spreadArrays(o||e.emptyArray,s))),l=201===r.kind?function(e){if(158===e.parent.kind)return e.parent;return e.parent.parent}(r):r;l.jsDoc=r.jsDoc,l.jsDocCache=r.jsDocCache,n.insertJsdocCommentBefore(t,l,c)}function d(n,t,r){return e.mapDefined(e.FindAllReferences.getReferenceEntriesForNode(-1,n,t,t.getSourceFiles(),r),(function(n){return 0!==n.kind?e.tryCast(n.node,e.isIdentifier):void 0}))}function p(e,n,t){return f(n,d(e,n,t),t).single()}function m(n,t,r,a){var i;switch(n.kind){case 161:i=e.findChildOfKind(n,128,t);break;case 201:case 200:var o=n.parent;i=e.isVariableDeclaration(o)&&e.isIdentifier(o.name)?o.name:n.name;break;case 243:case 160:i=n.name}if(i)return d(i,r,a)}function f(n,t,r){var a=n.getTypeChecker(),i={string:function(){return a.getStringType()},number:function(){return a.getNumberType()},Array:function(e){return a.createArrayType(e)},Promise:function(e){return a.createPromiseType(e)}},o=[a.getStringType(),a.getNumberType(),a.createArrayType(a.getAnyType()),a.createPromiseType(a.getAnyType())];return{single:function(){return m(c(t))},parameters:function(i){if(0===t.length||!i.parameters)return;for(var o=s(),u=0,p=t;u<p.length;u++){var f=p[u];r.throwIfCancellationRequested(),l(f,o)}var _=__spreadArrays(o.constructs||[],o.calls||[]);return i.parameters.map((function(t,o){for(var s=[],l=e.isRestParameter(t),u=!1,p=0,f=_;p<f.length;p++){var g=f[p];if(g.argumentTypes.length<=o)u=e.isInJSFile(i),s.push(a.getUndefinedType());else if(l)for(var y=o;y<g.argumentTypes.length;y++)s.push(a.getBaseTypeOfLiteralType(g.argumentTypes[y]));else s.push(a.getBaseTypeOfLiteralType(g.argumentTypes[o]))}if(e.isIdentifier(t.name)){var v=c(d(t.name,n,r));s.push.apply(s,l?e.mapDefined(v,a.getElementTypeOfArrayType):v)}var h=m(s);return{type:l?a.createArrayType(h):h,isOptional:u&&!l,declaration:t}}))},thisParameter:function(){for(var n=s(),a=0,i=t;a<i.length;a++){var o=i[a];r.throwIfCancellationRequested(),l(o,n)}return m(n.candidateThisTypes||e.emptyArray)}};function s(){return{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0}}function c(e){for(var n={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0},t=0,a=e;t<a.length;t++){var i=a[t];r.throwIfCancellationRequested(),l(i,n)}return f(n)}function l(n,t){for(;e.isRightSideOfQualifiedNameOrPropertyAccess(n);)n=n.parent;switch(n.parent.kind){case 225:y(t,a.getVoidType());break;case 207:t.isNumber=!0;break;case 206:!function(e,n){switch(e.operator){case 45:case 46:case 40:case 54:n.isNumber=!0;break;case 39:n.isNumberOrString=!0}}(n.parent,t);break;case 208:!function(n,t,r){switch(t.operatorToken.kind){case 42:case 41:case 43:case 44:case 47:case 48:case 49:case 50:case 51:case 52:case 64:case 66:case 65:case 67:case 68:case 72:case 73:case 74:case 69:case 71:case 70:case 40:case 29:case 32:case 31:case 33:var i=a.getTypeAtLocation(t.left===n?t.right:t.left);1056&i.flags?y(r,i):r.isNumber=!0;break;case 63:case 39:var o=a.getTypeAtLocation(t.left===n?t.right:t.left);1056&o.flags?y(r,o):296&o.flags?r.isNumber=!0:132&o.flags?r.isString=!0:1&o.flags||(r.isNumberOrString=!0);break;case 62:case 34:case 36:case 37:case 35:y(r,a.getTypeAtLocation(t.left===n?t.right:t.left));break;case 96:n===t.left&&(r.isString=!0);break;case 56:case 60:n!==t.left||241!==n.parent.parent.kind&&!e.isAssignmentExpression(n.parent.parent,!0)||y(r,a.getTypeAtLocation(t.right))}}(n,n.parent,t);break;case 275:case 276:!function(e,n){y(n,a.getTypeAtLocation(e.parent.parent.expression))}(n.parent,t);break;case 195:case 196:n.parent.expression===n?function(e,n){var t={argumentTypes:[],return_:{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0}};if(e.arguments)for(var r=0,i=e.arguments;r<i.length;r++){var o=i[r];t.argumentTypes.push(a.getTypeAtLocation(o))}l(e,t.return_),195===e.kind?(n.calls||(n.calls=[])).push(t):(n.constructs||(n.constructs=[])).push(t)}(n.parent,t):u(n,t);break;case 193:!function(n,t){var r=e.escapeLeadingUnderscores(n.name.text);t.properties||(t.properties=e.createUnderscoreEscapedMap());var a=t.properties.get(r)||{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};l(n,a),t.properties.set(r,a)}(n.parent,t);break;case 194:!function(e,n,t){if(n===e.argumentExpression)return void(t.isNumberOrString=!0);var r=a.getTypeAtLocation(e.argumentExpression),i={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};l(e,i),296&r.flags?t.numberIndex=i:t.stringIndex=i}(n.parent,n,t);break;case 279:case 280:!function(n,t){var r=e.isVariableDeclaration(n.parent.parent)?n.parent.parent:n.parent;v(t,a.getTypeAtLocation(r))}(n.parent,t);break;case 158:!function(e,n){v(n,a.getTypeAtLocation(e.parent))}(n.parent,t);break;case 241:var r=n.parent,i=r.name,o=r.initializer;if(n===i){o&&y(t,a.getTypeAtLocation(o));break}default:return u(n,t)}}function u(n,t){e.isExpressionNode(n)&&y(t,a.getContextualType(n))}function p(e){return m(f(e))}function m(n){if(!n.length)return a.getAnyType();var t=a.getUnionType([a.getStringType(),a.getNumberType()]),r=function(n,t){for(var r=[],a=0,i=n;a<i.length;a++)for(var o=i[a],s=0,c=t;s<c.length;s++){var l=c[s],u=l.high,d=l.low;u(o)&&(e.Debug.assert(!d(o),\"Priority can't have both low and high\"),r.push(d))}return n.filter((function(e){return r.every((function(n){return!n(e)}))}))}(n,[{high:function(e){return e===a.getStringType()||e===a.getNumberType()},low:function(e){return e===t}},{high:function(e){return!(16385&e.flags)},low:function(e){return!!(16385&e.flags)}},{high:function(e){return!(114689&e.flags||16&a.getObjectFlags(e))},low:function(e){return!!(16&a.getObjectFlags(e))}}]),i=r.filter((function(e){return 16&a.getObjectFlags(e)}));return i.length&&(r=r.filter((function(e){return!(16&a.getObjectFlags(e))}))).push(function(n){if(1===n.length)return n[0];for(var t=[],r=[],i=[],o=[],s=!1,c=!1,l=e.createMultiMap(),u=0,d=n;u<d.length;u++){for(var p=d[u],m=0,f=a.getPropertiesOfType(p);m<f.length;m++){var _=f[m];l.add(_.name,a.getTypeOfSymbolAtLocation(_,_.valueDeclaration))}t.push.apply(t,a.getSignaturesOfType(p,0)),r.push.apply(r,a.getSignaturesOfType(p,1)),p.stringIndexInfo&&(i.push(p.stringIndexInfo.type),s=s||p.stringIndexInfo.isReadonly),p.numberIndexInfo&&(o.push(p.numberIndexInfo.type),c=c||p.numberIndexInfo.isReadonly)}var g=e.mapEntries(l,(function(e,t){var r=t.length<n.length?16777216:0,i=a.createSymbol(4|r,e);return i.type=a.getUnionType(t),[e,i]}));return a.createAnonymousType(n[0].symbol,g,t,r,i.length?a.createIndexInfo(a.getUnionType(i),s):void 0,o.length?a.createIndexInfo(a.getUnionType(o),c):void 0)}(i)),a.getWidenedType(a.getUnionType(r.map(a.getBaseTypeOfLiteralType),2))}function f(n){var t=[];return n.isNumber&&t.push(a.getNumberType()),n.isString&&t.push(a.getStringType()),n.isNumberOrString&&t.push(a.getUnionType([a.getStringType(),a.getNumberType()])),n.numberIndex&&t.push(a.createArrayType(p(n.numberIndex))),(n.properties&&n.properties.size||n.calls&&n.calls.length||n.constructs&&n.constructs.length||n.stringIndex)&&t.push(function(n){var t=e.createUnderscoreEscapedMap();n.properties&&n.properties.forEach((function(e,n){var r=a.createSymbol(4,n);r.type=p(e),t.set(n,r)}));var r=n.calls?[g(n.calls)]:[],i=n.constructs?[g(n.constructs)]:[],o=n.stringIndex&&a.createIndexInfo(p(n.stringIndex),!1);return a.createAnonymousType(void 0,t,r,i,o,void 0)}(n)),t.push.apply(t,(n.candidateTypes||[]).map((function(e){return a.getBaseTypeOfLiteralType(e)}))),t.push.apply(t,function(n){if(!n.properties||!n.properties.size)return[];var t=o.filter((function(t){return function(n,t){return!!t.properties&&!e.forEachEntry(t.properties,(function(t,r){var i,o=a.getTypeOfPropertyOfType(n,r);return!o||(t.calls?!a.getSignaturesOfType(o,0).length||!a.isTypeAssignableTo(o,(i=t.calls,a.createAnonymousType(void 0,e.createSymbolTable(),[g(i)],e.emptyArray,void 0,void 0))):!a.isTypeAssignableTo(o,p(t)))}))}(t,n)}));if(0<t.length&&t.length<3)return t.map((function(t){return function(n,t){if(!(4&e.getObjectFlags(n)&&t.properties))return n;var r=n.target,o=e.singleOrUndefined(r.typeParameters);if(!o)return n;var s=[];return t.properties.forEach((function(n,t){var i=a.getTypeOfPropertyOfType(r,t);e.Debug.assert(!!i,\"generic should have all the properties of its reference.\"),s.push.apply(s,_(i,p(n),o))})),i[n.symbol.escapedName](m(s))}(t,n)}));return[]}(n)),t}function _(n,t,r){if(n===r)return[t];if(3145728&n.flags)return e.flatMap(n.types,(function(e){return _(e,t,r)}));if(4&e.getObjectFlags(n)&&4&e.getObjectFlags(t)){var i=a.getTypeArguments(n),o=a.getTypeArguments(t),s=[];if(i&&o)for(var c=0;c<i.length;c++)o[c]&&s.push.apply(s,_(i[c],o[c],r));return s}var l=a.getSignaturesOfType(n,0),u=a.getSignaturesOfType(t,0);return 1===l.length&&1===u.length?function(n,t,r){for(var i=[],o=0;o<n.parameters.length;o++){var s=n.parameters[o],c=t.parameters[o],l=n.declaration&&e.isRestParameter(n.declaration.parameters[o]);if(!c)break;var u=a.getTypeOfSymbolAtLocation(s,s.valueDeclaration),d=l&&a.getElementTypeOfArrayType(u);d&&(u=d);var p=c.type||a.getTypeOfSymbolAtLocation(c,c.valueDeclaration);i.push.apply(i,_(u,p,r))}var m=a.getReturnTypeOfSignature(n),f=a.getReturnTypeOfSignature(t);return i.push.apply(i,_(m,f,r)),i}(l[0],u[0],r):[]}function g(n){for(var t=[],r=Math.max.apply(Math,n.map((function(e){return e.argumentTypes.length}))),i=function(r){var i=a.createSymbol(1,e.escapeLeadingUnderscores(\"arg\"+r));i.type=m(n.map((function(e){return e.argumentTypes[r]||a.getUndefinedType()}))),n.some((function(e){return void 0===e.argumentTypes[r]}))&&(i.flags|=16777216),t.push(i)},o=0;o<r;o++)i(o);var s=p(function n(t){for(var r=e.createUnderscoreEscapedMap(),a=0,i=t;a<i.length;a++){var o=i[a];o.properties&&o.properties.forEach((function(e,n){r.has(n)||r.set(n,[]),r.get(n).push(e)}))}var s=e.createUnderscoreEscapedMap();return r.forEach((function(e,t){s.set(t,n(e))})),{isNumber:t.some((function(e){return e.isNumber})),isString:t.some((function(e){return e.isString})),isNumberOrString:t.some((function(e){return e.isNumberOrString})),candidateTypes:e.flatMap(t,(function(e){return e.candidateTypes})),properties:s,calls:e.flatMap(t,(function(e){return e.calls})),constructs:e.flatMap(t,(function(e){return e.constructs})),numberIndex:e.forEach(t,(function(e){return e.numberIndex})),stringIndex:e.forEach(t,(function(e){return e.stringIndex})),candidateThisTypes:e.flatMap(t,(function(e){return e.candidateThisTypes})),inferredTypes:void 0}}(n.map((function(e){return e.return_}))));return a.createSignature(void 0,void 0,void 0,t,s,void 0,r,0)}function y(e,n){!n||1&n.flags||131072&n.flags||(e.candidateTypes||(e.candidateTypes=[])).push(n)}function v(e,n){!n||1&n.flags||131072&n.flags||(e.candidateThisTypes||(e.candidateThisTypes=[])).push(n)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o,s=r.sourceFile,c=r.program,l=r.span.start,u=r.errorCode,d=r.cancellationToken,p=r.host,m=r.formatContext,f=r.preferences,_=e.getTokenAtPosition(s,l),g=e.textChanges.ChangeTracker.with(r,(function(n){o=i(n,s,_,u,c,d,e.returnTrue,p,m,f)})),y=o&&e.getNameOfDeclaration(o);return y&&0!==g.length?[n.createCodeFixAction(t,g,[a(u,_),y.getText(s)],t,e.Diagnostics.Infer_all_types_from_usage)]:void 0},fixIds:[t],getAllCodeActions:function(t){var a=t.sourceFile,o=t.program,s=t.cancellationToken,c=t.host,l=t.formatContext,u=t.preferences,d=e.nodeSeenTracker();return n.codeFixAll(t,r,(function(n,t){i(n,a,e.getTokenAtPosition(t.file,t.start),t.code,o,s,d,c,l,u)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"convertFunctionToEs6Class\",r=[e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration.code];function a(n,t,r,a){var o=a.getSymbolAtLocation(e.getTokenAtPosition(t,r));if(o&&19&o.flags){var s,c,l=o.valueDeclaration;switch(l.kind){case 243:s=l,n.delete(t,l),c=function(n){var t=u(o);n.body&&t.unshift(e.createConstructor(void 0,void 0,n.parameters,n.body));var r=i(n,88);return e.createClassDeclaration(void 0,r,n.name,void 0,void 0,t)}(l);break;case 241:s=l.parent.parent,c=function(n){var t=n.initializer;if(!t||200!==t.kind)return;if(75!==n.name.kind)return;var r=u(n.symbol);t.body&&r.unshift(e.createConstructor(void 0,void 0,t.parameters,t.body));var a=i(s,88);return e.createClassDeclaration(void 0,a,n.name,void 0,void 0,r)}(l),1===l.parent.declarations.length?(e.copyLeadingComments(s,c,t),n.delete(t,s)):n.delete(t,l)}c&&(e.copyLeadingComments(l,c,t),n.insertNodeAfter(t,s,c))}function u(r){var a=[];return r.members&&r.members.forEach((function(e){var n=o(e,void 0);n&&a.push(n)})),r.exports&&r.exports.forEach((function(n){var t=o(n,[e.createToken(119)]);t&&a.push(t)})),a;function o(r,a){if(8192&r.flags){var o=r.valueDeclaration,s=o.parent;if(c=s.right,e.isFunctionLike(c)){var c,l=s.parent&&225===s.parent.kind?s.parent:s;if(n.delete(t,l),!s.right)return e.createProperty([],a,r.name,void 0,void 0,void 0);switch(s.right.kind){case 200:var u=s.right,d=e.concatenate(a,i(u,125)),p=e.createMethod(void 0,d,void 0,o.name,void 0,void 0,u.parameters,void 0,u.body);return e.copyLeadingComments(s,p,t),p;case 201:var m=s.right,f=m.body,_=void 0;_=222===f.kind?f:e.createBlock([e.createReturn(f)]);d=e.concatenate(a,i(m,125)),p=e.createMethod(void 0,d,void 0,o.name,void 0,void 0,m.parameters,void 0,_);return e.copyLeadingComments(s,p,t),p;default:if(e.isSourceFileJS(t))return;var g=e.createProperty(void 0,a,o.name,void 0,void 0,s.right);return e.copyLeadingComments(s.parent,g,t),g}}}}}}function i(n,t){return e.filter(n.modifiers,(function(e){return e.kind===t}))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program.getTypeChecker())}));return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_function_to_an_ES2015_class,t,e.Diagnostics.Convert_all_constructor_functions_to_classes)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,t.file,t.start,e.program.getTypeChecker())}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t,r=\"convertToAsyncFunction\",a=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],i=!0;function o(n,t,r,a,i){var o,d=e.getTokenAtPosition(t,r);if(o=e.isIdentifier(d)&&e.isVariableDeclaration(d.parent)&&d.parent.initializer&&e.isFunctionLikeDeclaration(d.parent.initializer)?d.parent.initializer:e.tryCast(e.getContainingFunction(e.getTokenAtPosition(t,r)),e.isFunctionLikeDeclaration)){var p,m,f=e.createMap(),g=e.createMap(),y=[],v=e.isInJSFile(o),h=function(n,t){if(!n.body)return e.createMap();var r=e.createMap();return e.forEachChild(n.body,(function n(a){s(a,t,\"then\")?(r.set(e.getNodeId(a).toString(),!0),e.forEach(a.arguments,n)):s(a,t,\"catch\")?(r.set(e.getNodeId(a).toString(),!0),e.forEachChild(a,n)):s(a,t)?r.set(e.getNodeId(a).toString(),!0):e.forEachChild(a,n)})),r}(o,a),E=function(n,t,r,a,i,o,s){var u=e.createMap(),d=e.createMap();return e.forEachChild(n,(function n(o){if(e.isIdentifier(o)){var p=t.getSymbolAtLocation(o),m=p&&function(e,n){return e.valueDeclaration&&e.valueDeclaration.getSourceFile()===n}(p,a.sourceFile);if(p&&m){var f=_(t.getTypeAtLocation(o),t),g=e.getSymbolId(p).toString();if(!f||e.isFunctionLikeDeclaration(o.parent)||r.has(g)){if(o.parent&&(e.isParameter(o.parent)||e.isVariableDeclaration(o.parent)||e.isBindingElement(o.parent))){var y=o.text,v=d.get(y);if(v&&v.some((function(e){return e!==p}))){var h=l(o,d);u.set(g,h.identifier),r.set(g,h),s.push({identifier:h.identifier,symbol:p}),c(d,y,p)}else{var E=e.getSynthesizedDeepClone(o);u.set(g,E),r.set(g,b(E,[],s.filter((function(e){return e.identifier.text===o.text})).length)),(e.isParameter(o.parent)&&function(n){var r=n.parent;if(e.isCallExpression(r)||e.isIdentifier(r)&&!i.get(e.getNodeId(r).toString())){var a=t.getTypeAtLocation(r);return!!(a&&t.getPromisedTypeOfPromise(a))}return!1}(o.parent.parent)||e.isVariableDeclaration(o.parent))&&(s.push({identifier:E,symbol:p}),c(d,y,p))}}}else{var T=e.firstOrUndefined(f.parameters),S=T&&e.isParameter(T.valueDeclaration)&&e.tryCast(T.valueDeclaration.name,e.isIdentifier)||e.createOptimisticUniqueName(\"result\"),x=l(S,d);r.set(g,x),s.push({identifier:x.identifier,symbol:p}),c(d,S.text,p)}}}else e.forEachChild(o,n)})),e.getSynthesizedDeepCloneWithRenames(n,!0,u,t,p);function p(n,a){if(e.isIdentifier(n)){var s=t.getSymbolAtLocation(n),c=s&&e.getSymbolId(s).toString();if(s&&r.get(c)){var l=t.getTypeAtLocation(n);o.set(e.getNodeId(a).toString(),l)}}var u=i.get(e.getNodeId(n).toString());void 0!==u&&(i.delete(e.getNodeId(n).toString()),i.set(e.getNodeId(a).toString(),u))}}(o,a,f,i,h,g,y),T=function(e){var n=[];return e.forEach((function(e){0===e.numberOfAssignmentsOriginal&&n.push(e.identifier)})),n}(f),S=E.body&&e.isBlock(E.body)?(p=E.body,m=[],e.forEachReturnStatement(p,(function(n){e.isReturnStatementWithFixablePromiseHandler(n)&&m.push(n)})),m):e.emptyArray,x={checker:a,synthNamesMap:f,allVarNames:y,setOfExpressionsToReturn:h,constIdentifiers:T,originalTypeMap:g,isInJSFile:v};if(S.length){n.insertLastModifierBefore(t,125,o);for(var L=function(r){e.forEachChild(r,(function a(i){e.isCallExpression(i)?function(e,r){var a=u(e,x,e);n.replaceNodeWithNodes(t,r,a)}(i,r):e.isFunctionLike(i)||e.forEachChild(i,a)}))},C=0,A=S;C<A.length;C++){L(A[C])}}}}function s(n,t,r){var a=(r?e.isCallExpression(n):e.isExpression(n))&&(!r||e.hasPropertyAccessExpressionWithName(n,r))&&t.getTypeAtLocation(n);return!(!a||!t.getPromisedTypeOfPromise(a))}function c(e,n,t){e.has(n)?e.get(n).push(t):e.set(n,[t])}function l(n,t){var r=(t.get(n.text)||e.emptyArray).length;return b(0===r?n:e.createIdentifier(n.text+\"_\"+r),[],0)}function u(n,t,r,a){if(!n)return e.emptyArray;var o=e.isIdentifier(n)&&t.originalTypeMap.get(e.getNodeId(n).toString())||t.checker.getTypeAtLocation(n);return e.isCallExpression(n)&&e.hasPropertyAccessExpressionWithName(n,\"then\")&&o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r,a){var i=n.arguments,o=i[0],s=i[1];if(!o)return u(n.expression,t,r);var c=y(o,t),l=f(o,a,c,n,t);if(s){var d=y(s,t),p=e.createBlock(u(n.expression,t,n,c).concat(l)),m=f(s,a,d,n,t),_=d?E(d)?d.identifier.text:d.bindingPattern:\"e\",g=e.createVariableDeclaration(_),v=e.createCatchClause(g,e.createBlock(m));return[e.createTry(p,v,void 0)]}return u(n.expression,t,n,c).concat(l)}(n,t,r,a):e.isCallExpression(n)&&e.hasPropertyAccessExpressionWithName(n,\"catch\")&&o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r){var a,i=n.arguments[0],o=y(i,t),s=t.setOfExpressionsToReturn.get(e.getNodeId(n).toString());r&&!s&&(E(r)?(a=r,t.synthNamesMap.forEach((function(e,n){if(e.identifier.text===r.identifier.text){var a=d(r);t.synthNamesMap.set(n,a)}}))):a=b(e.createOptimisticUniqueName(\"result\"),r.types),a.numberOfAssignmentsOriginal=2,t.constIdentifiers.some((function(e){return e.text===a.identifier.text}))&&t.constIdentifiers.push(d(a).identifier));var c,l,p=e.createBlock(u(n.expression,t,n,a)),m=f(i,a,o,n,t),_=o?E(o)?o.identifier.text:o.bindingPattern:\"e\",g=e.createVariableDeclaration(_),v=e.createCatchClause(g,e.createBlock(m));if(a&&!s){l=e.getSynthesizedDeepClone(a.identifier);var h=a.types,T=t.checker.getUnionType(h,2),S=t.isInJSFile?void 0:t.checker.typeToTypeNode(T),x=[e.createVariableDeclaration(l,S)];c=e.createVariableStatement(void 0,e.createVariableDeclarationList(x,1))}var L=e.createTry(p,v,void 0),C=r&&l&&(A=r,1===A.kind)&&e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepCloneWithRenames(r.bindingPattern),void 0,l)],2));var A;return e.compact([c,L,C])}(n,t,a):e.isPropertyAccessExpression(n)?u(n.expression,t,r,a):o&&t.checker.getPromisedTypeOfPromise(o)?function(n,t,r){var a=t.setOfExpressionsToReturn.get(e.getNodeId(n).toString()),i=n.original?n.original.parent:n.parent;if(r&&!a&&(!i||e.isPropertyAccessExpression(i)))return m(r,e.createAwait(n),t);if(!r&&!a&&(!i||e.isPropertyAccessExpression(i)))return[e.createStatement(e.createAwait(n))];return[e.createReturn(e.getSynthesizedDeepClone(n))]}(n,t,a):(i=!1,e.emptyArray)}function d(n){return b(e.createOptimisticUniqueName(n.identifier.text))}function p(n,t){var r=function n(t){return e.isIdentifier(t)?[t.text]:e.flatMap(t.elements,(function(t){return e.isOmittedExpression(t)?[]:n(t.name)}))}(h(n));return t.some((function(n){return e.contains(r,n.text)}))?2:1}function m(n,t,r){return!n||v(n)?[e.createStatement(t)]:E(n)&&n.types.length<n.numberOfAssignmentsOriginal?[e.createStatement(e.createAssignment(e.getSynthesizedDeepClone(n.identifier),t))]:[e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepClone(h(n)),void 0,t)],p(n,r.constIdentifiers)))]}function f(n,t,r,a,o){var c=o.setOfExpressionsToReturn.get(e.getNodeId(a).toString());switch(n.kind){case 99:break;case 75:if(!r)break;var l=e.createCall(e.getSynthesizedDeepClone(n),void 0,E(r)?[r.identifier]:[]);if(c)return[e.createReturn(l)];var u=o.originalTypeMap.get(e.getNodeId(n).toString())||o.checker.getTypeAtLocation(n),d=o.checker.getSignaturesOfType(u,0);if(!d.length){i=!1;break}var f=d[0].getReturnType(),y=m(t,e.createAwait(l),o);return t&&t.types.push(f),y;case 200:case 201:var v=n.body;if(e.isBlock(v)){for(var b=[],T=!1,S=0,x=v.statements;S<x.length;S++){var L=x[S];e.isReturnStatement(L)&&(T=!0),e.isReturnStatementWithFixablePromiseHandler(L)?b=b.concat(g(o,[L],t)):b.push(L)}return c?b.map((function(n){return e.getSynthesizedDeepClone(n)})):function(n,t,r,a){for(var i=[],o=0,c=n;o<c.length;o++){var l=c[o];if(e.isReturnStatement(l)){if(l.expression){var u=s(l.expression,r.checker)?e.createAwait(l.expression):l.expression;void 0===t?i.push(e.createExpressionStatement(u)):i.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(h(t),void 0,u)],p(t,r.constIdentifiers))))}}else i.push(e.getSynthesizedDeepClone(l))}a||void 0===t||i.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(h(t),void 0,e.createIdentifier(\"undefined\"))],p(t,r.constIdentifiers))));return i}(b,t,o,T)}var C=g(o,e.isFixablePromiseHandler(v)?[e.createReturn(v)]:e.emptyArray,t);if(C.length>0)return C;var A=_(o.checker.getTypeAtLocation(n),o.checker).getReturnType(),D=e.getSynthesizedDeepClone(v),k=o.checker.getPromisedTypeOfPromise(A)?e.createAwait(D):D;if(c)return[e.createReturn(k)];var N=m(t,k,o);return t&&t.types.push(A),N;default:i=!1}return e.emptyArray}function _(n,t){var r=t.getSignaturesOfType(n,0);return e.lastOrUndefined(r)}function g(n,t,r){for(var a=[],i=0,o=t;i<o.length;i++){var s=o[i];e.forEachChild(s,(function t(i){if(e.isCallExpression(i)){var o=u(i,n,i,r);if((a=a.concat(o)).length>0)return}else e.isFunctionLike(i)||e.forEachChild(i,t)}))}return a}function y(n,t){var r,a=[];e.isFunctionLikeDeclaration(n)?n.parameters.length>0&&(r=function n(t){if(e.isIdentifier(t))return i(t);var r=e.flatMap(t.elements,(function(t){return e.isOmittedExpression(t)?[]:[n(t.name)]}));return function(n,t,r){void 0===t&&(t=e.emptyArray);void 0===r&&(r=[]);return{kind:1,bindingPattern:n,elements:t,types:r}}(t,r)}(n.parameters[0].name)):e.isIdentifier(n)&&(r=i(n));if(r&&!(\"identifier\"in r&&\"undefined\"===r.identifier.text))return r;function i(n){var r,i=function(e){return e.symbol?e.symbol:t.checker.getSymbolAtLocation(e)}((r=n).original?r.original:r);return i&&t.synthNamesMap.get(e.getSymbolId(i).toString())||b(n,a,0)}}function v(n){return!n||(E(n)?!n.identifier.text:e.every(n.elements,v))}function h(e){return E(e)?e.identifier:e.bindingPattern}function b(e,n,t){return void 0===n&&(n=[]),void 0===t&&(t=0),{kind:0,identifier:e,types:n,numberOfAssignmentsOriginal:t}}function E(e){return 0===e.kind}n.registerCodeFix({errorCodes:a,getCodeActions:function(t){i=!0;var a=e.textChanges.ChangeTracker.with(t,(function(e){return o(e,t.sourceFile,t.span.start,t.program.getTypeChecker(),t)}));return i?[n.createCodeFixAction(r,a,e.Diagnostics.Convert_to_async_function,r,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[r],getAllCodeActions:function(e){return n.codeFixAll(e,a,(function(n,t){return o(n,t.file,t.start,e.program.getTypeChecker(),e)}))}}),function(e){e[e.Identifier=0]=\"Identifier\",e[e.BindingPattern=1]=\"BindingPattern\"}(t||(t={}))}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(n,t,r,a){for(var i=0,o=n.imports;i<o.length;i++){var s=o[i],c=e.getResolvedModule(n,s.text);if(c&&c.resolvedFileName===t.fileName){var l=e.importFromModuleSpecifier(s);switch(l.kind){case 252:r.replaceNode(n,l,e.makeImport(l.name,void 0,s,a));break;case 195:e.isRequireCall(l,!1)&&r.replaceNode(n,l,e.createPropertyAccess(e.getSynthesizedDeepClone(l),\"default\"))}}}}function r(n,t){n.forEachChild((function r(a){if(e.isPropertyAccessExpression(a)&&e.isExportsOrModuleExportsOrAlias(n,a.expression)){var i=a.parent;t(a,e.isBinaryExpression(i)&&i.left===a&&62===i.operatorToken.kind)}a.forEachChild(r)}))}function a(t,r,a,c,f,_,g,y){switch(r.kind){case 224:return function(t,r,a,i,o,c,l){var m=r.declarationList,f=!1,_=e.flatMap(m.declarations,(function(r){var _=r.name,g=r.initializer;if(g){if(e.isExportsOrModuleExportsOrAlias(t,g))return f=!0,[];if(e.isRequireCall(g,!0))return f=!0,function(t,r,a,i,o,c,l,u){switch(r.kind){case 188:var m=e.mapAllOrFail(r.elements,(function(n){return n.dotDotDotToken||n.initializer||n.propertyName&&!e.isIdentifier(n.propertyName)||!e.isIdentifier(n.name)?void 0:d(n.propertyName&&n.propertyName.text,n.name.text)}));if(m)return[e.makeImport(void 0,m,a,u)];case 189:var f=s(n.moduleSpecifierToValidIdentifier(a.text,l),c);return[e.makeImport(e.createIdentifier(f),void 0,a,u),p(void 0,e.getSynthesizedDeepClone(r),e.createIdentifier(f))];case 75:return function(n,t,r,a,i,o,c){for(var l=i.getSymbolAtLocation(t),u=e.createMap(),d=!1,p=0,m=o.original.get(t.text);p<m.length;p++){var f=m[p];if(i.getSymbolAtLocation(f)===l&&f!==t){var _=f.parent;if(e.isPropertyAccessExpression(_)){var g=_.expression,y=_.name.text;e.Debug.assert(g===f,\"Didn't expect expression === use\");var v=u.get(y);void 0===v&&(v=s(y,o),u.set(y,v)),a.replaceNode(n,_,e.createIdentifier(v))}else d=!0}}var h=0===u.size?void 0:e.arrayFrom(e.mapIterator(u.entries(),(function(n){var t=n[0],r=n[1];return e.createImportSpecifier(t===r?void 0:e.createIdentifier(t),e.createIdentifier(r))})));h||(d=!0);return[e.makeImport(d?e.getSynthesizedDeepClone(t):void 0,h,r,c)]}(t,r,a,i,o,c,u);default:return e.Debug.assertNever(r,\"Convert to ES6 module got invalid name kind \"+r.kind)}}(t,_,g.arguments[0],a,i,o,c,l);if(e.isPropertyAccessExpression(g)&&e.isRequireCall(g.expression,!0))return f=!0,function(n,t,r,a,i){switch(n.kind){case 188:case 189:var o=s(t,a);return[u(o,t,r,i),p(void 0,n,e.createIdentifier(o))];case 75:return[u(n.text,t,r,i)];default:return e.Debug.assertNever(n,\"Convert to ES6 module got invalid syntax form \"+n.kind)}}(_,g.name.text,g.expression.arguments[0],o,l)}return e.createVariableStatement(void 0,e.createVariableDeclarationList([r],m.flags))}));f&&a.replaceNodeWithNodes(t,r,_)}(t,r,c,a,f,_,y),!1;case 225:var v=r.expression;switch(v.kind){case 195:return e.isRequireCall(v,!0)&&c.replaceNode(t,r,e.makeImport(void 0,void 0,v.arguments[0],y)),!1;case 208:return 62===v.operatorToken.kind&&function(n,t,r,a,s){var c=r.left,u=r.right;if(!e.isPropertyAccessExpression(c))return!1;if(e.isExportsOrModuleExportsOrAlias(n,c)){if(!e.isExportsOrModuleExportsOrAlias(n,u)){var d=e.isObjectLiteralExpression(u)?(f=u,(_=e.mapAllOrFail(f.properties,(function(n){switch(n.kind){case 162:case 163:case 280:case 281:return;case 279:return e.isIdentifier(n.name)?function(n,t){var r=[e.createToken(88)];switch(t.kind){case 200:var a=t.name;if(a&&a.text!==n)return i();case 201:return l(n,r,t);case 213:return function(n,t,r){return e.createClassDeclaration(e.getSynthesizedDeepClones(r.decorators),e.concatenate(t,e.getSynthesizedDeepClones(r.modifiers)),n,e.getSynthesizedDeepClones(r.typeParameters),e.getSynthesizedDeepClones(r.heritageClauses),e.getSynthesizedDeepClones(r.members))}(n,r,t);default:return i()}function i(){return p(r,e.createIdentifier(n),t)}}(n.name.text,n.initializer):void 0;case 160:return e.isIdentifier(n.name)?l(n.name.text,[e.createToken(88)],n):void 0;default:e.Debug.assertNever(n,\"Convert to ES6 got invalid prop kind \"+n.kind)}})))&&[_,!1]):e.isRequireCall(u,!0)?function(n,t){var r=n.text,a=t.getSymbolAtLocation(n),s=a?a.exports:e.emptyUnderscoreEscapedMap;return s.has(\"export=\")?[[o(r)],!0]:s.has(\"default\")?s.size>1?[[i(r),o(r)],!0]:[[o(r)],!0]:[[i(r)],!1]}(u.arguments[0],t):void 0;return d?(a.replaceNodeWithNodes(n,r.parent,d[0]),d[1]):(a.replaceRangeWithText(n,e.createRange(c.getStart(n),u.pos),\"export default\"),!0)}a.delete(n,r.parent)}else e.isExportsOrModuleExportsOrAlias(n,c.expression)&&function(n,t,r,a){var i=t.left.name.text,o=a.get(i);if(void 0!==o){var s=[p(void 0,o,t.right),m([e.createExportSpecifier(o,i)])];r.replaceNodeWithNodes(n,t.parent,s)}else!function(n,t,r){var a=n.left,i=n.right,o=n.parent,s=a.name.text;if(!(e.isFunctionExpression(i)||e.isArrowFunction(i)||e.isClassExpression(i))||i.name&&i.name.text!==s)r.replaceNodeRangeWithNodes(t,a.expression,e.findChildOfKind(a,24,t),[e.createToken(88),e.createToken(80)],{joiner:\" \",suffix:\" \"});else{r.replaceRange(t,{pos:a.getStart(t),end:i.getStart(t)},e.createToken(88),{suffix:\" \"}),i.name||r.insertName(t,i,s);var c=e.findChildOfKind(o,26,t);c&&r.delete(t,c)}}(t,n,r)}(n,r,a,s);var f,_;return!1}(t,a,v,c,g)}default:return!1}}function i(e){return m(void 0,e)}function o(n){return m([e.createExportSpecifier(void 0,\"default\")],n)}function s(e,n){for(;n.original.has(e)||n.additional.has(e);)e=\"_\"+e;return n.additional.set(e,!0),e}function c(n){var t=e.createMultiMap();return function n(t,r){e.isIdentifier(t)&&function(e){var n=e.parent;switch(n.kind){case 193:return n.name!==e;case 190:case 257:return n.propertyName!==e;default:return!0}}(t)&&r(t);t.forEachChild((function(e){return n(e,r)}))}(n,(function(e){return t.add(e.text,e)})),t}function l(n,t,r){return e.createFunctionDeclaration(e.getSynthesizedDeepClones(r.decorators),e.concatenate(t,e.getSynthesizedDeepClones(r.modifiers)),e.getSynthesizedDeepClone(r.asteriskToken),n,e.getSynthesizedDeepClones(r.typeParameters),e.getSynthesizedDeepClones(r.parameters),e.getSynthesizedDeepClone(r.type),e.convertToFunctionBody(e.getSynthesizedDeepClone(r.body)))}function u(n,t,r,a){return\"default\"===t?e.makeImport(e.createIdentifier(n),void 0,r,a):e.makeImport(void 0,[d(t,n)],r,a)}function d(n,t){return e.createImportSpecifier(void 0!==n&&n!==t?e.createIdentifier(n):void 0,e.createIdentifier(t))}function p(n,t,r){return e.createVariableStatement(n,e.createVariableDeclarationList([e.createVariableDeclaration(t,void 0,r)],2))}function m(n,t){return e.createExportDeclaration(void 0,void 0,n&&e.createNamedExports(n),void 0===t?void 0:e.createLiteral(t))}n.registerCodeFix({errorCodes:[e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module.code],getCodeActions:function(i){var o=i.sourceFile,l=i.program,u=i.preferences,d=e.textChanges.ChangeTracker.with(i,(function(n){if(function(n,t,i,o,l){var u={original:c(n),additional:e.createMap()},d=function(n,t,a){var i=e.createMap();return r(n,(function(n){var r=n.name,o=r.text,c=r.originalKeywordKind;!i.has(o)&&(void 0!==c&&e.isNonContextualKeyword(c)||t.resolveName(n.name.text,n,111551,!0))&&i.set(o,s(\"_\"+o,a))})),i}(n,t,u);!function(n,t,a){r(n,(function(r,i){if(!i){var o=r.name.text;a.replaceNode(n,r,e.createIdentifier(t.get(o)||o))}}))}(n,d,i);for(var p=!1,m=0,f=n.statements;m<f.length;m++){var _=f[m],g=a(n,_,t,i,u,o,d,l);p=p||g}return p}(o,l.getTypeChecker(),n,l.getCompilerOptions().target,e.getQuotePreference(o,u)))for(var i=0,d=l.getSourceFiles();i<d.length;i++){var p=d[i];t(p,o,n,e.getQuotePreference(p,u))}}));return[n.createCodeFixActionNoFixId(\"convertToEs6Module\",d,e.Diagnostics.Convert_to_ES6_module)]}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"correctQualifiedNameToIndexedAccessType\",r=[e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code];function a(n,t){var r=e.findAncestor(e.getTokenAtPosition(n,t),e.isQualifiedName);return e.Debug.assert(!!r,\"Expected position to be owned by a qualified name.\"),e.isIdentifier(r.left)?r:void 0}function i(n,t,r){var a=r.right.text,i=e.createIndexedAccessTypeNode(e.createTypeReferenceNode(r.left,void 0),e.createLiteralTypeNode(e.createLiteral(a)));n.replaceNode(t,r,i)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=a(r.sourceFile,r.span.start);if(o){var s=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,r.sourceFile,o)})),c=o.left.text+'[\"'+o.right.text+'\"]';return[n.createCodeFixAction(t,s,[e.Diagnostics.Rewrite_as_the_indexed_access_type_0,c],t,e.Diagnostics.Rewrite_all_as_indexed_access_types)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Class_0_incorrectly_implements_interface_1.code,e.Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code],r=\"fixClassIncorrectlyImplementsInterface\";function a(n,t){return e.Debug.assertDefined(e.getContainingClass(e.getTokenAtPosition(n,t)),\"There should be a containing class\")}function i(n){return!(8&e.getModifierFlags(n.valueDeclaration))}function o(t,r,a,o,s,c){var l=t.program.getTypeChecker(),u=function(n,t){var r=e.getEffectiveBaseTypeNode(n);if(!r)return e.createSymbolTable();var a=t.getTypeAtLocation(r),o=t.getPropertiesOfType(a);return e.createSymbolTable(o.filter(i))}(o,l),d=l.getTypeAtLocation(r),p=l.getPropertiesOfType(d).filter(e.and(i,(function(e){return!u.has(e.escapedName)}))),m=l.getTypeAtLocation(o);function f(e,r){var i=l.getIndexInfoOfType(e,r);i&&s.insertNodeAtClassStart(a,o,l.indexInfoToIndexSignatureDeclaration(i,r,o,void 0,n.getNoopSymbolTrackerWithResolver(t)))}m.getNumberIndexType()||f(d,1),m.getStringIndexType()||f(d,0),n.createMissingMemberNodes(o,p,t,c,(function(e){return s.insertNodeAtClassStart(a,o,e)}))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,s=t.span,c=a(i,s.start);return e.mapDefined(e.getClassImplementsHeritageClauseElements(c),(function(a){var s=e.textChanges.ChangeTracker.with(t,(function(e){return o(t,a,i,c,e,t.preferences)}));return 0===s.length?void 0:n.createCodeFixAction(r,s,[e.Diagnostics.Implement_interface_0,a.getText(i)],r,e.Diagnostics.Implement_all_unimplemented_interfaces)}))},fixIds:[r],getAllCodeActions:function(r){var i=e.createMap();return n.codeFixAll(r,t,(function(n,t){var s=a(t.file,t.start);if(e.addToSeen(i,e.getNodeId(s)))for(var c=0,l=e.getClassImplementsHeritageClauseElements(s);c<l.length;c++){var u=l[c];o(r,u,t.file,s,n,r.preferences)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){n.importFixId=\"fixMissingImport\";var t,r,a=[e.Diagnostics.Cannot_find_name_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics.Cannot_find_namespace_0.code,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code];function i(n,t){return!(111551&e.skipAlias(n,t).flags)}function o(n,t,r,a,i,o,l){var u=a.getTypeChecker(),d=e.flatMap(n,(function(n){return function(n,t,r){var a=n.moduleSymbol,i=n.importKind;return n.exportedSymbolIsTypeOnly&&e.isSourceFileJS(r)?e.emptyArray:e.mapDefined(r.imports,(function(n){var r=e.importFromModuleSpecifier(n);return 253!==r.kind&&252!==r.kind||t.getSymbolAtLocation(n)!==a?void 0:{declaration:r,importKind:i}}))}(n,u,i)})),p=void 0===r?void 0:function(n,t,r,a){return e.firstDefined(n,(function(n){var i=function(n){if(253===n.kind){var t=n.importClause&&e.isImportClause(n.importClause)&&n.importClause.namedBindings;return t&&255===t.kind?t.name:void 0}return n.name}(n.declaration);if(i){var o=a.getAliasedSymbol(a.getSymbolAtLocation(i));if(o&&o.exports.has(e.escapeLeadingUnderscores(t)))return{kind:0,namespacePrefix:i.text,position:r}}}))}(d,t,r,u),m=function(n){return e.firstDefined(n,(function(e){var n=e.declaration,t=e.importKind;if(253===n.kind){var r=n.importClause;if(r){var a=r.name,i=r.namedBindings;return 1===t&&!a||0===t&&(!i||256===i.kind)?{kind:2,importClause:r,importKind:t}:void 0}}}))}(d),f=m?[m]:function(n,t,r,a,i,o,l){var u=e.firstDefined(t,c);return u?[u]:s(r,a,i,n,o,l)}(n,d,a,i,r,o,l);return __spreadArrays(p?[p]:e.emptyArray,f)}function s(n,t,r,a,i,o){var s=e.isSourceFileJS(t),c=x(t,n,i).allowsImportingSpecifier,l=e.flatMap(a,(function(a){var c=a.moduleSymbol,l=a.importKind,u=a.exportedSymbolIsTypeOnly;return e.moduleSpecifiers.getModuleSpecifiers(c,n.getCompilerOptions(),t,i,n.getSourceFiles(),o,n.redirectTargetsMap).map((function(n){return u&&s?{kind:1,moduleSpecifier:n,position:e.Debug.assertDefined(r,\"position should be defined\")}:{kind:3,moduleSpecifier:n,importKind:l}}))}));return e.sort(l,(function(e,n){var t=c(e.moduleSpecifier),r=c(n.moduleSpecifier);return t&&!r?-1:r&&!t?1:e.moduleSpecifier.length-n.moduleSpecifier.length}))}function c(n){var t=n.declaration,r=n.importKind,a=253===t.kind?t.moduleSpecifier:263===t.moduleReference.kind?t.moduleReference.expression:void 0;return a&&e.isStringLiteral(a)?{kind:3,moduleSpecifier:a.text,importKind:r}:void 0}function l(n,t,r){var a=e.getTokenAtPosition(n.sourceFile,r),s=t===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code?function(n,t){var r=n.sourceFile,a=n.program,i=n.host,s=n.preferences,c=a.getTypeChecker(),l=function(n,t){var r=e.isIdentifier(n)?t.getSymbolAtLocation(n):void 0;if(e.isUMDExportSymbol(r))return r;var a=n.parent;return e.isJsxOpeningLikeElement(a)&&a.tagName===n||e.isJsxOpeningFragment(a)?e.tryCast(t.resolveName(t.getJsxNamespace(a),e.isJsxOpeningLikeElement(a)?n:a,111551,!1),e.isUMDExportSymbol):void 0}(t,c);if(!l)return;var d=c.getAliasedSymbol(l),p=l.name;return{fixes:o([{moduleSymbol:d,importKind:u(r,a.getCompilerOptions()),exportedSymbolIsTypeOnly:!1}],p,e.isIdentifier(t)?t.getStart(r):void 0,a,r,i,s),symbolName:p}}(n,a):e.isIdentifier(a)?function(n,t){var r=n.sourceFile,a=n.program,s=n.cancellationToken,c=n.host,l=n.preferences,u=a.getTypeChecker(),p=e.isJsxOpeningLikeElement(t.parent)&&t.parent.tagName===t&&(e.isIntrinsicJsxName(t.text)||u.resolveName(t.text,t,67108863,!1))?u.getJsxNamespace(r):t.text;e.Debug.assert(\"default\"!==p,\"'default' isn't a legal identifier and couldn't occur here\");var m=function(n,t,r,a,o,s,c){var l=e.createMultiMap();function u(n,t,r){l.add(e.getUniqueSymbolId(t,o).toString(),{moduleSymbol:n,importKind:r,exportedSymbolIsTypeOnly:i(t,o)})}return b(s,c,a,!0,(function(e){r.throwIfCancellationRequested();var i=d(a,e,o,s.getCompilerOptions());i&&i.name===n&&h(i.symbolForMeaning,t)&&u(e,i.symbol,i.kind);var c=o.tryGetMemberInModuleExportsAndProperties(n,e);c&&h(c,t)&&u(e,c,0)})),l}(p,e.getMeaningFromLocation(t),s,r,u,a,c);return{fixes:e.arrayFrom(e.flatMapIterator(m.entries(),(function(e){e[0];return o(e[1],p,t.getStart(r),a,r,c,l)}))),symbolName:p}}(n,a):void 0;return s&&__assign(__assign({},s),{fixes:e.sort(s.fixes,(function(e,n){return e.kind-n.kind}))})}function u(n,t){if(e.getAllowSyntheticDefaultImports(t))return 1;var r=e.getEmitModuleKind(t);switch(r){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(n)?e.isExternalModule(n)?2:4:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;default:return e.Debug.assertNever(r,\"Unexpected moduleKind \"+r)}}function d(n,t,r,a){var i=function(e,n,t,r){var a=t.tryGetMemberInModuleExports(\"default\",n);if(a)return{symbol:a,kind:1};var i=t.resolveExternalModuleSymbol(n);return i===n?void 0:{symbol:i,kind:p(e,r,t)}}(n,t,r,a);if(i){var o=i.symbol,s=i.kind,c=function n(t,r,a,i){var o=e.getLocalSymbolForExportDefault(t);if(o)return{symbolForMeaning:o,name:o.name};var s=function(n){return n.declarations&&e.firstDefined(n.declarations,(function(n){if(e.isExportAssignment(n)){if(e.isIdentifier(n.expression))return n.expression.text}else if(e.isExportSpecifier(n))return e.Debug.assert(\"default\"===n.name.text,\"Expected the specifier to be a default export\"),n.propertyName&&n.propertyName.text}))}(t);if(void 0!==s)return{symbolForMeaning:t,name:s};if(2097152&t.flags){var c=a.getImmediateAliasedSymbol(t);return c&&n(c,e.Debug.assertDefined(c.parent,\"Alias targets of default exports must have a parent\"),a,i)}if(\"default\"!==t.escapedName&&\"export=\"!==t.escapedName)return{symbolForMeaning:t,name:t.getName()};return{symbolForMeaning:t,name:T(r,i.target)}}(o,t,r,a);return c&&__assign({symbol:o,kind:s},c)}}function p(n,t,r){if(e.getAllowSyntheticDefaultImports(t)&&e.getEmitModuleKind(t)>=e.ModuleKind.ES2015)return 1;if(e.isInJSFile(n))return e.isExternalModule(n)?1:4;for(var a=0,i=n.statements;a<i.length;a++){var o=i[a];if(e.isImportEqualsDeclaration(o))return 3;if(e.isImportDeclaration(o)&&o.importClause&&o.importClause.name){var s=r.getImmediateAliasedSymbol(o.importClause.symbol);if(s&&\"default\"!==s.name)return 1}}return 3}function m(t,r,a,i,o){var s,c=e.textChanges.ChangeTracker.with(t,(function(n){s=function(n,t,r,a,i){switch(a.kind){case 0:return _(n,t,a),[e.Diagnostics.Change_0_to_1,r,a.namespacePrefix+\".\"+r];case 1:return g(n,t,a,i),[e.Diagnostics.Change_0_to_1,r,y(a.moduleSpecifier,i)+r];case 2:var o=a.importClause,s=a.importKind;f(n,t,o,1===s?r:void 0,0===s?[r]:e.emptyArray);var c=e.stripQuotes(o.parent.moduleSpecifier.getText());return[1===s?e.Diagnostics.Add_default_import_0_to_existing_import_declaration_from_1:e.Diagnostics.Add_0_to_existing_import_declaration_from_1,r,c];case 3:s=a.importKind;var l=a.moduleSpecifier;return v(n,t,l,i,1===s?{defaultImport:r,namedImports:e.emptyArray,namespaceLikeImport:void 0}:0===s?{defaultImport:void 0,namedImports:[r],namespaceLikeImport:void 0}:{defaultImport:void 0,namedImports:e.emptyArray,namespaceLikeImport:{importKind:s,name:r}}),[1===s?e.Diagnostics.Import_default_0_from_module_1:e.Diagnostics.Import_0_from_module_1,r,l];default:return e.Debug.assertNever(a,\"Unexpected fix kind \"+a.kind)}}(n,r,a,i,o)}));return n.createCodeFixAction(\"import\",c,s,n.importFixId,e.Diagnostics.Add_all_missing_imports)}function f(n,t,r,a,i){if(a&&(e.Debug.assert(!r.name,\"Default imports can't have names\"),n.insertNodeAt(t,r.getStart(t),e.createIdentifier(a),{suffix:\", \"})),i.length){var o=i.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))}));if(r.namedBindings&&e.cast(r.namedBindings,e.isNamedImports).elements.length)for(var s=0,c=o;s<c.length;s++){var l=c[s];n.insertNodeInListAfter(t,e.last(e.cast(r.namedBindings,e.isNamedImports).elements),l)}else if(o.length){var u=e.createNamedImports(o);r.namedBindings?n.replaceNode(t,r.namedBindings,u):n.insertNodeAfter(t,e.Debug.assertDefined(r.name,\"Named import specifiers must have names\"),u)}}}function _(e,n,t){var r=t.namespacePrefix,a=t.position;e.insertText(n,a,r+\".\")}function g(e,n,t,r){var a=t.moduleSpecifier,i=t.position;e.insertText(n,i,y(a,r))}function y(n,t){var r=e.getQuoteFromPreference(t);return\"import(\"+r+n+r+\").\"}function v(n,t,r,a,i){var o=i.defaultImport,s=i.namedImports,c=i.namespaceLikeImport,l=e.makeStringLiteral(r,a);(void 0!==o||s.length)&&e.insertImport(n,t,e.makeImport(void 0===o?void 0:e.createIdentifier(o),s.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))})),r,a)),c&&e.insertImport(n,t,3===c.importKind?e.createImportEqualsDeclaration(void 0,void 0,e.createIdentifier(c.name),e.createExternalModuleReference(l)):4===c.importKind?function(n,t){return e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createIdentifier(n),void 0,e.createCall(e.createIdentifier(\"require\"),void 0,[t]))],2))}(c.name,l):e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(e.createIdentifier(c.name))),l))}function h(n,t){var r=n.declarations;return e.some(r,(function(n){return!!(e.getMeaningFromDeclaration(n)&t)}))}function b(n,t,r,a,i){var o=0,s=a&&x(r,n,t),c=n.getSourceFiles(),l=t.getGlobalTypingsCacheLocation&&t.getGlobalTypingsCacheLocation();E(n.getTypeChecker(),c,(function(n,a){var u,d,p,m,f,_;void 0===a?!s||s.allowsImportingAmbientModule(n,c)?i(n):s&&o++:a&&a!==r&&(u=r.fileName,d=a.fileName,p=e.hostGetCanonicalFileName(t),m=l,f=e.forEachAncestorDirectory(d,(function(n){return\"node_modules\"===e.getBaseFileName(n)?n:void 0})),void 0===(_=f&&e.getDirectoryPath(p(f)))||e.startsWith(p(u),_)||m&&e.startsWith(p(m),_))&&(!s||s.allowsImportingSourceFile(a,c)?i(n):s&&o++)})),t.log&&t.log(\"forEachExternalModuleToImportFrom: filtered out \"+o+\" modules by package.json contents\")}function E(n,t,r){for(var a=0,i=n.getAmbientModules();a<i.length;a++){r(i[a],void 0)}for(var o=0,s=t;o<s.length;o++){var c=s[o];e.isExternalOrCommonJsModule(c)&&r(n.getMergedSymbol(c.symbol),c)}}function T(n,t){return S(e.removeFileExtension(e.stripQuotes(n.name)),t)}function S(n,t){var r=e.getBaseFileName(e.removeSuffix(n,\"/index\")),a=\"\",i=!0,o=r.charCodeAt(0);e.isIdentifierStart(o,t)?a+=String.fromCharCode(o):i=!1;for(var s=1;s<r.length;s++){var c=r.charCodeAt(s),l=e.isIdentifierPart(c,t);if(l){var u=String.fromCharCode(c);i||(u=u.toUpperCase()),a+=u}i=l}return e.isStringANonContextualKeyword(a)?\"_\"+a:a||\"_\"}function x(n,t,r){var a,i=r.getPackageJsonsVisibleToFile&&r.getPackageJsonsVisibleToFile(n.fileName)||e.getPackageJsonsVisibleToFile(n.fileName,r),o={directoryExists:e.maybeBind(r,r.directoryExists),fileExists:e.maybeBind(r,r.fileExists),getCurrentDirectory:e.maybeBind(r,r.getCurrentDirectory),readFile:e.maybeBind(r,r.readFile),useCaseSensitiveFileNames:e.maybeBind(r,r.useCaseSensitiveFileNames),getProbableSymlinks:e.maybeBind(r,r.getProbableSymlinks)||t.getProbableSymlinks,getGlobalTypingsCacheLocation:e.maybeBind(r,r.getGlobalTypingsCacheLocation)};return{allowsImportingAmbientModule:function(n,t){if(!i.length)return!0;var r=l(n.valueDeclaration.getSourceFile().fileName,t);if(void 0===r)return!0;var a=e.stripQuotes(n.getName());if(c(a))return!0;return s(r)||s(a)},allowsImportingSourceFile:function(e,n){if(!i.length)return!0;var t=l(e.fileName,n);if(!t)return!0;return s(t)},allowsImportingSpecifier:function(n){if(!i.length||c(n))return!0;if(e.pathIsRelative(n)||e.isRootedDiskPath(n))return!0;return s(n)}};function s(n){for(var t=u(n),r=0,a=i;r<a.length;r++){var o=a[r];if(o.has(t,11)||o.has(e.getTypesPackageName(t),11))return!0}return!1}function c(t){return!!(e.isSourceFileJS(n)&&e.JsTyping.nodeCoreModules.has(t)&&(void 0===a&&(a=e.consumesNodeCoreModules(n)),a))}function l(a,i){if(e.stringContains(a,\"node_modules\")){var s=e.moduleSpecifiers.getNodeModulesPackageName(r.getCompilationSettings(),n.path,a,o,i,t.redirectTargetsMap);if(s)return e.pathIsRelative(s)||e.isRootedDiskPath(s)?void 0:u(s)}}function u(n){var t=e.getPathComponents(e.getPackageNameFromTypesPackageName(n)).slice(1);return e.startsWith(t[0],\"@\")?t[0]+\"/\"+t[1]:t[0]}}n.registerCodeFix({errorCodes:a,getCodeActions:function(n){var t=n.errorCode,r=n.preferences,a=n.sourceFile,i=n.span,o=l(n,t,i.start);if(o){var s=o.fixes,c=o.symbolName,u=e.getQuotePreference(a,r);return s.map((function(e){return m(n,a,c,e,u)}))}},fixIds:[n.importFixId],getAllCodeActions:function(t){var r=t.sourceFile,i=t.preferences,o=[],s=[],c=e.createMap(),u=e.createMap();return n.eachDiagnostic(t,a,(function(n){var r=l(t,n.code,n.start);if(r&&r.fixes.length){var a=r.fixes,i=r.symbolName,d=e.first(a);switch(d.kind){case 0:o.push(d);break;case 1:s.push(d);break;case 2:var p=d.importClause,m=d.importKind,f=String(e.getNodeId(p));(_=c.get(f))||c.set(f,_={importClause:p,defaultImport:void 0,namedImports:[]}),0===m?e.pushIfUnique(_.namedImports,i):(e.Debug.assert(void 0===_.defaultImport||_.defaultImport===i,\"(Add to Existing) Default import should be missing or match symbolName\"),_.defaultImport=i);break;case 3:var _,g=d.moduleSpecifier;m=d.importKind;switch((_=u.get(g))||u.set(g,_={defaultImport:void 0,namedImports:[],namespaceLikeImport:void 0}),m){case 1:e.Debug.assert(void 0===_.defaultImport||_.defaultImport===i,\"(Add new) Default import should be missing or match symbolName\"),_.defaultImport=i;break;case 0:e.pushIfUnique(_.namedImports,i);break;case 3:case 2:e.Debug.assert(void 0===_.namespaceLikeImport||_.namespaceLikeImport.name===i,\"Namespacelike import shoudl be missing or match symbolName\"),_.namespaceLikeImport={importKind:m,name:i}}break;default:e.Debug.assertNever(d,\"fix wasn't never - got kind \"+d.kind)}}})),n.createCombinedCodeActions(e.textChanges.ChangeTracker.with(t,(function(n){for(var t=e.getQuotePreference(r,i),a=0,l=o;a<l.length;a++){var d=l[a];_(n,r,d)}for(var p=0,m=s;p<m.length;p++){d=m[p];g(n,r,d,t)}c.forEach((function(e){var t=e.importClause,a=e.defaultImport,i=e.namedImports;f(n,r,t,a,i)})),u.forEach((function(e,a){v(n,r,a,t,e)}))})))}}),function(e){e[e.UseNamespace=0]=\"UseNamespace\",e[e.ImportType=1]=\"ImportType\",e[e.AddToExisting=2]=\"AddToExisting\",e[e.AddNew=3]=\"AddNew\"}(t||(t={})),function(e){e[e.Named=0]=\"Named\",e[e.Default=1]=\"Default\",e[e.Namespace=2]=\"Namespace\",e[e.Equals=3]=\"Equals\",e[e.ConstEquals=4]=\"ConstEquals\"}(r||(r={})),n.getImportCompletionAction=function(n,t,r,a,c,l,u,p,f){var _=function(n,t,r,a,o,s,c,l){var u=[];return E(c,l,(function(l,p){if(!p||l===r||!e.startsWith(o.fileName,e.getDirectoryPath(p.fileName))){var m=d(n,l,c,s);m&&m.name===a&&e.skipAlias(m.symbol,c)===t&&u.push({moduleSymbol:l,importKind:m.kind,exportedSymbolIsTypeOnly:i(m.symbol,c)});for(var f=0,_=c.getExportsOfModule(l);f<_.length;f++){var g=_[f];g.name===a&&e.skipAlias(g,c)===t&&u.push({moduleSymbol:l,importKind:0,exportedSymbolIsTypeOnly:i(g,c)})}}})),u}(r,n,t,a,r,l.getCompilerOptions(),l.getTypeChecker(),l.getSourceFiles());e.Debug.assert(_.some((function(e){return e.moduleSymbol===t})),\"Some exportInfo should match the specified moduleSymbol\");var g,y,v,h,b=e.first(s(l,r,p,_,c,f)).moduleSpecifier,T=e.first(o(_,a,p,l,r,c,f));return{moduleSpecifier:b,codeAction:(g=m({host:c,formatContext:u,preferences:f},r,a,T,e.getQuotePreference(r,f)),y=g.description,v=g.changes,h=g.commands,{description:y,changes:v,commands:h})}},n.forEachExternalModuleToImportFrom=b,n.moduleSymbolToValidIdentifier=T,n.moduleSpecifierToValidIdentifier=S}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_2.code];function r(n,t,r){var a,i=e.getTokenAtPosition(n,t),o=r.program.getTypeChecker();if(e.isPropertyAccessExpression(i.parent)&&i.parent.name===i){e.Debug.assert(75===i.kind,\"Expected an identifier for spelling (property access)\");var s=o.getTypeAtLocation(i.parent.expression);a=o.getSuggestionForNonexistentProperty(i,s)}else if(e.isImportSpecifier(i.parent)&&i.parent.name===i){e.Debug.assert(75===i.kind,\"Expected an identifier for spelling (import)\");var c=function(n,t,r){if(!r||!e.isStringLiteralLike(r.moduleSpecifier))return;var a=e.getResolvedModule(n,r.moduleSpecifier.text);return a?t.program.getSourceFile(a.resolvedFileName):void 0}(n,r,e.findAncestor(i,e.isImportDeclaration));c&&c.symbol&&(a=o.getSuggestionForNonexistentExport(i,c.symbol))}else{var l=e.getMeaningFromLocation(i),u=e.getTextOfNode(i);e.Debug.assert(void 0!==u,\"name should be defined\"),a=o.getSuggestionForNonexistentSymbol(i,u,function(e){var n=0;4&e&&(n|=1920);2&e&&(n|=788968);1&e&&(n|=111551);return n}(l))}return void 0===a?void 0:{node:i,suggestion:a}}function a(n,t,r,a,i){!e.isIdentifierText(a,i)&&e.isPropertyAccessExpression(r.parent)?n.replaceNode(t,r.parent,e.createElementAccess(r.parent.expression,e.createLiteral(a))):n.replaceNode(t,r,e.createIdentifier(a))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,o=r(i,t.span.start,t);if(o){var s=o.node,c=o.suggestion,l=t.host.getCompilationSettings().target,u=e.textChanges.ChangeTracker.with(t,(function(e){return a(e,i,s,c,l)}));return[n.createCodeFixAction(\"spelling\",u,[e.Diagnostics.Change_spelling_to_0,c],\"fixSpelling\",e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[\"fixSpelling\"],getAllCodeActions:function(e){return n.codeFixAll(e,t,(function(n,t){var i=r(t.file,t.start,e),o=e.host.getCompilationSettings().target;i&&a(n,e.sourceFile,i.node,i.suggestion,o)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t,r=\"addMissingMember\",a=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code],i=\"addMissingMember\";function o(n,t,r,a){var i=e.getTokenAtPosition(n,t);if(e.isIdentifier(i)){var o=i.parent;if(e.isPropertyAccessExpression(o)){var s=e.skipConstraint(r.getTypeAtLocation(o.expression)),c=s.symbol;if(c&&c.declarations){var l=e.find(c.declarations,e.isClassLike)||e.find(c.declarations,e.isInterfaceDeclaration);if(l&&!a.isSourceFileFromExternalLibrary(l.getSourceFile())){var u=(s.target||s)!==r.getDeclaredTypeOfSymbol(c),d=l.getSourceFile();return{kind:1,token:i,parentDeclaration:l,makeStatic:u,declSourceFile:d,inJs:e.isSourceFileJS(d),call:e.tryCast(o.parent,e.isCallExpression)}}var p=e.find(c.declarations,e.isEnumDeclaration);return p&&!a.isSourceFileFromExternalLibrary(p.getSourceFile())?{kind:0,token:i,parentDeclaration:p}:void 0}}}}function s(n,t,r,a,i){if(i){if(213===r.kind)return;var o=r.name.getText(),s=c(e.createIdentifier(o),a);n.insertNodeAfter(t,r,s)}else{var l=e.getFirstConstructorWithBody(r);if(!l)return;var u=c(e.createThis(),a);n.insertNodeAtConstructorEnd(t,l,u)}}function c(n,t){return e.createStatement(e.createAssignment(e.createPropertyAccess(n,t),e.createIdentifier(\"undefined\")))}function l(n,t,r){var a;if(208===r.parent.parent.kind){var i=r.parent.parent,o=r.parent===i.left?i.right:i.left,s=n.getWidenedType(n.getBaseTypeOfLiteralType(n.getTypeAtLocation(o)));a=n.typeToTypeNode(s,t)}else{var c=n.getContextualType(r.parent);a=c?n.typeToTypeNode(c):void 0}return a||e.createKeywordTypeNode(124)}function u(n,t,r,a,i,o){var s=e.createProperty(void 0,o?[e.createToken(119)]:void 0,a,void 0,i,void 0),c=function(n){for(var t,r=0,a=n.members;r<a.length;r++){var i=a[r];if(!e.isPropertyDeclaration(i))break;t=i}return t}(r);c?n.insertNodeAfter(t,c,s):n.insertNodeAtClassStart(t,r,s)}function d(t,a,i,o,s){var c=e.createKeywordTypeNode(142),l=e.createParameter(void 0,void 0,void 0,\"x\",void 0,c,void 0),u=e.createIndexSignature(void 0,void 0,[l],s),d=e.textChanges.ChangeTracker.with(t,(function(e){return e.insertNodeAtClassStart(a,i,u)}));return n.createCodeFixActionNoFixId(r,d,[e.Diagnostics.Add_index_signature_for_property_0,o])}function p(t,r,a,i,o,s,c,l,u){var d=n.createMethodFromCallExpression(t,s,o.text,l,c,u,i),p=e.getAncestor(s,160);p&&p.parent===i?r.insertNodeAfter(a,p,d):r.insertNodeAtClassStart(a,i,d)}function m(n,t,r,a){var i=e.some(a.members,(function(e){var n=t.getTypeAtLocation(e);return!!(n&&132&n.flags)})),o=e.createEnumMember(r,i?e.createStringLiteral(r.text):void 0);n.replaceNode(a.getSourceFile(),a,e.updateEnumDeclaration(a,a.decorators,a.modifiers,a.name,e.concatenate(a.members,e.singleElementArray(o))))}n.registerCodeFix({errorCodes:a,getCodeActions:function(t){var a=o(t.sourceFile,t.span.start,t.program.getTypeChecker(),t.program);if(a){if(0===a.kind){var c=a.token,f=a.parentDeclaration,_=e.textChanges.ChangeTracker.with(t,(function(e){return m(e,t.program.getTypeChecker(),c,f)}));return[n.createCodeFixAction(r,_,[e.Diagnostics.Add_missing_enum_member_0,c.text],i,e.Diagnostics.Add_all_missing_members)]}var g=a.parentDeclaration,y=a.declSourceFile,v=a.inJs,h=a.makeStatic,b=a.token,E=a.call,T=E&&function(t,a,o,s,c,l,u,d){var m=e.textChanges.ChangeTracker.with(t,(function(e){return p(t,e,a,o,s,c,l,u,d)}));return n.createCodeFixAction(r,m,[l?e.Diagnostics.Declare_static_method_0:e.Diagnostics.Declare_method_0,s.text],i,e.Diagnostics.Add_all_missing_members)}(t,y,g,b,E,h,v,t.preferences),S=v&&!e.isInterfaceDeclaration(g)?e.singleElementArray(function(t,a,o,c,l){var u=e.textChanges.ChangeTracker.with(t,(function(e){return s(e,a,o,c,l)}));return 0===u.length?void 0:n.createCodeFixAction(r,u,[l?e.Diagnostics.Initialize_static_property_0:e.Diagnostics.Initialize_property_0_in_the_constructor,c],i,e.Diagnostics.Add_all_missing_members)}(t,y,g,b.text,h)):function(t,a,o,s,c){var p=l(t.program.getTypeChecker(),o,s),m=function(t,a,o,s,c,l){var d=e.textChanges.ChangeTracker.with(t,(function(e){return u(e,a,o,c,l,s)}));return n.createCodeFixAction(r,d,[s?e.Diagnostics.Declare_static_property_0:e.Diagnostics.Declare_property_0,c],i,e.Diagnostics.Add_all_missing_members)}(t,a,o,c,s.text,p);return c?[m]:[m,d(t,a,o,s.text,p)]}(t,y,g,b,h);return e.concatenate(e.singleElementArray(T),S)}},fixIds:[i],getAllCodeActions:function(t){var r=t.program,i=t.preferences,c=r.getTypeChecker(),d=e.createMap(),f=new e.NodeMap;return n.createCombinedCodeActions(e.textChanges.ChangeTracker.with(t,(function(_){n.eachDiagnostic(t,a,(function(n){var r=o(n.file,n.start,c,t.program);if(r&&e.addToSeen(d,e.getNodeId(r.parentDeclaration)+\"#\"+r.token.text))if(0===r.kind){var a=r.token,i=r.parentDeclaration;m(_,c,a,i)}else{i=r.parentDeclaration;var s=r.token,l=f.getOrUpdate(i,(function(){return[]}));l.some((function(e){return e.token.text===s.text}))||l.push(r)}})),f.forEach((function(n,a){for(var o=function(n,t){var r=[];for(;n;){var a=e.getClassExtendsHeritageElement(n),i=a&&t.getSymbolAtLocation(a.expression),o=i&&e.find(i.declarations,e.isClassLike);o&&r.push(o),n=o}return r}(a,c),d=function(n){if(o.some((function(e){var t=f.get(e);return!!t&&t.some((function(e){return e.token.text===n.token.text}))})))return\"continue\";var a=n.parentDeclaration,c=n.declSourceFile,d=n.inJs,m=n.makeStatic,g=n.token,y=n.call;if(y)p(t,_,c,a,g,y,m,d,i);else if(d&&!e.isInterfaceDeclaration(a))s(_,c,a,g.text,m);else{var v=l(r.getTypeChecker(),a,g);u(_,c,a,g.text,v,m)}},m=0,g=n;m<g.length;m++){d(g[m])}}))})))}}),function(e){e[e.Enum=0]=\"Enum\",e[e.ClassOrInterface=1]=\"ClassOrInterface\"}(t||(t={}))}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"addMissingNewOperator\",r=[e.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code];function a(n,t,r){var a=e.cast(function(n,t){var r=e.getTokenAtPosition(n,t.start),a=e.textSpanEnd(t);for(;r.end<a;)r=r.parent;return r}(t,r),e.isCallExpression),i=e.createNew(a.expression,a.typeArguments,a.arguments);n.replaceNode(t,a,i)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.sourceFile,o=r.span,s=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i,o)}));return[n.createCodeFixAction(t,s,e.Diagnostics.Add_missing_new_operator_to_call,t,e.Diagnostics.Add_missing_new_operator_to_all_calls)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,e.sourceFile,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=e.Diagnostics.Cannot_find_module_0.code,r=[t,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code];function a(e,n){return{type:\"install package\",file:e,packageName:n}}function i(n,t){var r=e.cast(e.getTokenAtPosition(n,t),e.isStringLiteral).text,a=e.parsePackageName(r).packageName;return e.isExternalModuleNameRelative(a)?void 0:a}function o(n,r,a){return a===t?e.JsTyping.nodeCoreModules.has(n)?\"@types/node\":void 0:r.isKnownTypesPackageName(n)?e.getTypesPackageName(n):void 0}n.registerCodeFix({errorCodes:r,getCodeActions:function(t){var r=t.host,s=t.sourceFile,c=i(s,t.span.start);if(void 0!==c){var l=o(c,r,t.errorCode);return void 0===l?[]:[n.createCodeFixAction(\"fixCannotFindModule\",[],[e.Diagnostics.Install_0,l],\"installTypesPackage\",e.Diagnostics.Install_all_missing_types_packages,a(s.fileName,l))]}},fixIds:[\"installTypesPackage\"],getAllCodeActions:function(t){return n.codeFixAll(t,r,(function(n,r,s){var c=i(r.file,r.start);if(void 0!==c)switch(t.fixId){case\"installTypesPackage\":var l=o(c,t.host,r.code);l&&s.push(a(r.file.fileName,l));break;default:e.Debug.fail(\"Bad fixId: \"+t.fixId)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,e.Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code],r=\"fixClassDoesntImplementInheritedAbstractMember\";function a(n,t){var r=e.getTokenAtPosition(n,t);return e.cast(r.parent,e.isClassLike)}function i(t,r,a,i,s){var c=e.getEffectiveBaseTypeNode(t),l=a.program.getTypeChecker(),u=l.getTypeAtLocation(c),d=l.getPropertiesOfType(u).filter(o);n.createMissingMemberNodes(t,d,a,s,(function(e){return i.insertNodeAtClassStart(r,t,e)}))}function o(n){var t=e.getModifierFlags(e.first(n.getDeclarations()));return!(8&t||!(128&t))}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var o=t.sourceFile,s=t.span,c=e.textChanges.ChangeTracker.with(t,(function(e){return i(a(o,s.start),o,t,e,t.preferences)}));return 0===c.length?void 0:[n.createCodeFixAction(r,c,e.Diagnostics.Implement_inherited_abstract_class,r,e.Diagnostics.Implement_all_inherited_abstract_classes)]},fixIds:[r],getAllCodeActions:function(r){var o=e.createMap();return n.codeFixAll(r,t,(function(n,t){var s=a(t.file,t.start);e.addToSeen(o,e.getNodeId(s))&&i(s,r.sourceFile,r,n,r.preferences)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"classSuperMustPrecedeThisAccess\",r=[e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code];function a(e,n,t,r){e.insertNodeAtConstructorStart(n,t,r),e.delete(n,r)}function i(n,t){var r=e.getTokenAtPosition(n,t);if(103===r.kind){var a=e.getContainingFunction(r),i=o(a.body);return i&&!i.expression.arguments.some((function(n){return e.isPropertyAccessExpression(n)&&n.expression===r}))?{constructor:a,superCall:i}:void 0}}function o(n){return e.isExpressionStatement(n)&&e.isSuperCall(n.expression)?n:e.isFunctionLike(n)?void 0:e.forEachChild(n,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=i(o,s.start);if(c){var l=c.constructor,u=c.superCall,d=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,o,l,u)}));return[n.createCodeFixAction(t,d,e.Diagnostics.Make_super_call_the_first_statement_in_the_constructor,t,e.Diagnostics.Make_all_super_calls_the_first_statement_in_their_constructor)]}},fixIds:[t],getAllCodeActions:function(t){var o=t.sourceFile,s=e.createMap();return n.codeFixAll(t,r,(function(n,t){var r=i(t.file,t.start);if(r){var c=r.constructor,l=r.superCall;e.addToSeen(s,e.getNodeId(c.parent))&&a(n,o,c,l)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"constructorForDerivedNeedSuperCall\",r=[e.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.Debug.assert(128===r.kind,\"token should be at the constructor keyword\"),r.parent}function i(n,t,r){var a=e.createStatement(e.createCall(e.createSuper(),void 0,e.emptyArray));n.insertNodeAtConstructorStart(t,r,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start),l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_missing_super_call,t,e.Diagnostics.Add_all_missing_super_calls)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return i(n,e.sourceFile,a(t.file,t.start))}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"enableExperimentalDecorators\",r=[e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning.code];function a(t,r){n.setJsonCompilerOptionValue(t,r,\"experimentalDecorators\",e.createTrue())}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.program.getCompilerOptions().configFile;if(void 0!==i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i)}));return[n.createCodeFixActionNoFixId(t,o,e.Diagnostics.Enable_the_experimentalDecorators_option_in_your_configuration_file)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n){var t=e.program.getCompilerOptions().configFile;void 0!==t&&a(n,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixEnableJsxFlag\",r=[e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code];function a(t,r){n.setJsonCompilerOptionValue(t,r,\"jsx\",e.createStringLiteral(\"react\"))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.program.getCompilerOptions().configFile;if(void 0!==i){var o=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i)}));return[n.createCodeFixActionNoFixId(t,o,e.Diagnostics.Enable_the_jsx_flag_in_your_configuration_file)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n){var t=e.program.getCompilerOptions().configFile;void 0!==t&&a(n,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"extendsInterfaceBecomesImplements\",r=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingClass(r).heritageClauses,i=a[0].getFirstToken();return 89===i.kind?{extendsToken:i,heritageClauses:a}:void 0}function i(n,t,r,a){if(n.replaceNode(t,r,e.createToken(112)),2===a.length&&89===a[0].token&&112===a[1].token){var i=a[1].getFirstToken(),o=i.getFullStart();n.replaceRange(t,{pos:o,end:o},e.createToken(27));for(var s=t.text,c=i.end;c<s.length&&e.isWhiteSpaceSingleLine(s.charCodeAt(c));)c++;n.deleteRange(t,{pos:i.getStart(),end:c})}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=a(o,r.span.start);if(s){var c=s.extendsToken,l=s.heritageClauses,u=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c,l)}));return[n.createCodeFixAction(t,u,e.Diagnostics.Change_extends_to_implements,t,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t.extendsToken,t.heritageClauses)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"forgottenThisPropertyAccess\",r=e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,a=[e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,r];function i(n,t,a){var i=e.getTokenAtPosition(n,t);if(e.isIdentifier(i))return{node:i,className:a===r?e.getContainingClass(i).name.text:void 0}}function o(n,t,r){var a=r.node,i=r.className;e.suppressLeadingAndTrailingTrivia(a),n.replaceNode(t,a,e.createPropertyAccess(i?e.createIdentifier(i):e.createThis(),a))}n.registerCodeFix({errorCodes:a,getCodeActions:function(r){var a=r.sourceFile,s=i(a,r.span.start,r.errorCode);if(s){var c=e.textChanges.ChangeTracker.with(r,(function(e){return o(e,a,s)}));return[n.createCodeFixAction(t,c,[e.Diagnostics.Add_0_to_unresolved_variable,s.className||\"this\"],t,e.Diagnostics.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,a,(function(n,t){var r=i(t.file,t.start,t.code);r&&o(n,e.sourceFile,r)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"unusedIdentifier\",r=\"unusedIdentifier_prefix\",a=\"unusedIdentifier_delete\",i=\"unusedIdentifier_infer\",o=[e.Diagnostics._0_is_declared_but_its_value_is_never_read.code,e.Diagnostics._0_is_declared_but_never_used.code,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,e.Diagnostics.All_imports_in_import_declaration_are_unused.code,e.Diagnostics.All_destructured_elements_are_unused.code,e.Diagnostics.All_variables_are_unused.code,e.Diagnostics.All_type_parameters_are_unused.code];function s(n,t,r){n.replaceNode(t,r.parent,e.createKeywordTypeNode(147))}function c(r,i){return n.createCodeFixAction(t,r,i,a,e.Diagnostics.Delete_all_unused_declarations)}function l(n,t,r){n.delete(t,e.Debug.assertDefined(e.cast(r.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,\"The type parameter to delete should exist\"))}function u(n){return 95===n.kind?e.tryCast(n.parent,e.isImportDeclaration):void 0}function d(n,t,r,a,i,o){if(18!==n.kind||!e.isObjectBindingPattern(n.parent))return!1;var s=n.parent.parent;return 155===s.kind?_(t,r,s,a,i,o):t.delete(r,s),!0}function p(n,t,r){var a=e.tryCast(t.parent,e.isVariableDeclarationList);return!(!a||a.getChildren(n)[0]!==t)&&(r.delete(n,224===a.parent.kind?a.parent:a),!0)}function m(n,t,r,a){t!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(131===a.kind&&(a=e.cast(a.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(a)&&function(e){switch(e.parent.kind){case 155:case 154:return!0;case 241:switch(e.parent.parent.parent.kind){case 231:case 230:return!0}}return!1}(a)&&n.replaceNode(r,a,e.createIdentifier(\"_\"+a.text)))}function f(n,t,r,a,i,o){!function(n,t,r,a,i,o){var s=n.parent;e.isParameter(s)?_(t,r,s,a,i,o):t.delete(r,e.isImportClause(s)?n:e.isComputedPropertyName(s)?s.parent:s)}(t,r,n,a,i,o),e.isIdentifier(t)&&function(n,t,r,a){e.FindAllReferences.Core.eachSymbolReferenceInFile(r,a,t,(function(r){e.isPropertyAccessExpression(r.parent)&&r.parent.name===r&&(r=r.parent),e.isBinaryExpression(r.parent)&&e.isExpressionStatement(r.parent.parent)&&r.parent.left===r&&n.delete(t,r.parent.parent)}))}(r,n,t,a)}function _(n,t,r,a,i,o){(function(n,t,r){var a=n.parent;switch(a.kind){case 160:var i=t.getSymbolAtLocation(a.name);if(e.isMemberSymbolInBaseType(i,t))return!1;case 161:case 243:return!0;case 200:case 201:var o=a.parameters,s=o.indexOf(n);return e.Debug.assert(-1!==s,\"The parameter should already be in the list\"),r?o.slice(s+1).every((function(e){return 75===e.name.kind&&!e.symbol.isReferenced})):s===o.length-1;case 163:return!1;default:return e.Debug.failBadSyntaxKind(a)}})(r,a,o)&&(r.modifiers&&r.modifiers.length>0&&(!e.isIdentifier(r.name)||e.FindAllReferences.Core.isSymbolReferencedInFile(r.name,a,t))?r.modifiers.forEach((function(e){n.deleteModifier(t,e)})):(n.delete(t,r),function(n,t,r,a,i){e.FindAllReferences.Core.eachSignatureCall(r.parent,a,i,(function(e){var a=r.parent.parameters.indexOf(r);e.arguments.length>a&&n.delete(t,e.arguments[a])}))}(n,t,r,i,a)))}n.registerCodeFix({errorCodes:o,getCodeActions:function(a){var o=a.errorCode,_=a.sourceFile,g=a.program,y=g.getTypeChecker(),v=g.getSourceFiles(),h=e.getTokenAtPosition(_,a.span.start);if(e.isJSDocTemplateTag(h))return[c(e.textChanges.ChangeTracker.with(a,(function(e){return e.delete(_,h)})),e.Diagnostics.Remove_template_tag)];if(29===h.kind)return[c(x=e.textChanges.ChangeTracker.with(a,(function(e){return l(e,_,h)})),e.Diagnostics.Remove_type_parameters)];var b=u(h);if(b)return[c(x=e.textChanges.ChangeTracker.with(a,(function(e){return e.delete(_,b)})),[e.Diagnostics.Remove_import_from_0,e.showModuleSpecifier(b)])];var E=e.textChanges.ChangeTracker.with(a,(function(e){return d(h,e,_,y,v,!1)}));if(E.length)return[c(E,e.Diagnostics.Remove_destructuring)];var T=e.textChanges.ChangeTracker.with(a,(function(e){return p(_,h,e)}));if(T.length)return[c(T,e.Diagnostics.Remove_variable_statement)];var S=[];if(131===h.kind){var x=e.textChanges.ChangeTracker.with(a,(function(e){return s(e,_,h)})),L=e.cast(h.parent,e.isInferTypeNode).typeParameter.name.text;S.push(n.createCodeFixAction(t,x,[e.Diagnostics.Replace_infer_0_with_unknown,L],i,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var C=e.textChanges.ChangeTracker.with(a,(function(e){return f(_,h,e,y,v,!1)}));if(C.length){L=e.isComputedPropertyName(h.parent)?h.parent:h;S.push(c(C,[e.Diagnostics.Remove_declaration_for_Colon_0,L.getText(_)]))}}var A=e.textChanges.ChangeTracker.with(a,(function(e){return m(e,o,_,h)}));return A.length&&S.push(n.createCodeFixAction(t,A,[e.Diagnostics.Prefix_0_with_an_underscore,h.getText(_)],r,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),S},fixIds:[r,a,i],getAllCodeActions:function(t){var c=t.sourceFile,_=t.program,g=_.getTypeChecker(),y=_.getSourceFiles();return n.codeFixAll(t,o,(function(n,o){var _=e.getTokenAtPosition(c,o.start);switch(t.fixId){case r:m(n,o.code,c,_);break;case a:if(131===_.kind)break;var v=u(_);v?n.delete(c,v):e.isJSDocTemplateTag(_)?n.delete(c,_):29===_.kind?l(n,c,_):d(_,n,c,g,y,!0)||p(c,_,n)||f(c,_,n,g,y,!0);break;case i:131===_.kind&&s(n,c,_);break;default:e.Debug.fail(JSON.stringify(t.fixId))}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixUnreachableCode\",r=[e.Diagnostics.Unreachable_code_detected.code];function a(n,t,r,a){var i=e.getTokenAtPosition(t,r),o=e.findAncestor(i,e.isStatement);e.Debug.assert(o.getStart(t)===i.getStart(t),\"token and statement should start at the same point\");var s=(e.isBlock(o.parent)?o.parent:o).parent;if(!e.isBlock(o.parent)||o===e.first(o.parent.statements))switch(s.kind){case 226:if(s.elseStatement){if(e.isBlock(o.parent))break;return void n.replaceNode(t,o,e.createBlock(e.emptyArray))}case 228:case 229:return void n.delete(t,s)}if(e.isBlock(o.parent)){var c=r+a,l=e.Debug.assertDefined(function(e,n){for(var t,r=0,a=e;r<a.length;r++){var i=a[r];if(!n(i))break;t=i}return t}(e.sliceAfter(o.parent.statements,o),(function(e){return e.pos<c})),\"Some statement should be last\");n.deleteNodeRange(t,o,l)}else n.delete(t,o)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.span.length)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unreachable_code,t,e.Diagnostics.Remove_all_unreachable_code)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start,n.length)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixUnusedLabel\",r=[e.Diagnostics.Unused_label.code];function a(n,t,r){var a=e.getTokenAtPosition(t,r),i=e.cast(a.parent,e.isLabeledStatement),o=a.getStart(t),s=i.statement.getStart(t),c=e.positionsAreOnSameLine(o,s,t)?s:e.skipTrivia(t.text,e.findChildOfKind(i,58,t).end,!0);n.deleteRange(t,{pos:o,end:c})}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unused_label,t,e.Diagnostics.Remove_all_unused_labels)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n.start)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=[e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments.code];function r(e,n,t,r,a){e.replaceNode(n,t,a.typeToTypeNode(r,t))}function a(n,t,r){var a=e.findAncestor(e.getTokenAtPosition(n,t),i),o=a&&a.type;return o&&{typeNode:o,type:r.getTypeFromTypeNode(o)}}function i(e){switch(e.kind){case 216:case 164:case 165:case 243:case 162:case 166:case 185:case 160:case 159:case 155:case 158:case 157:case 163:case 246:case 198:case 241:return!0;default:return!1}}n.registerCodeFix({errorCodes:t,getCodeActions:function(t){var i=t.sourceFile,o=t.program.getTypeChecker(),s=a(i,t.span.start,o);if(s){var c=s.typeNode,l=s.type,u=c.getText(i),d=[p(l,\"fixJSDocTypes_plain\",e.Diagnostics.Change_all_jsdoc_style_types_to_TypeScript)];return 295===c.kind&&d.push(p(o.getNullableType(l,32768),\"fixJSDocTypes_nullable\",e.Diagnostics.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)),d}function p(a,s,l){var d=e.textChanges.ChangeTracker.with(t,(function(e){return r(e,i,c,a,o)}));return n.createCodeFixAction(\"jdocTypes\",d,[e.Diagnostics.Change_0_to_1,u,o.typeToString(a)],s,l)}},fixIds:[\"fixJSDocTypes_plain\",\"fixJSDocTypes_nullable\"],getAllCodeActions:function(e){var i=e.fixId,o=e.program,s=e.sourceFile,c=o.getTypeChecker();return n.codeFixAll(e,t,(function(e,n){var t=a(n.file,n.start,c);if(t){var o=t.typeNode,l=t.type,u=295===o.kind&&\"fixJSDocTypes_nullable\"===i?c.getNullableType(l,32768):l;r(e,s,o,u,c)}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixAwaitInSyncFunction\",r=[e.Diagnostics.await_expression_is_only_allowed_within_an_async_function.code,e.Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingFunction(r);if(a){var i,o;switch(a.kind){case 160:i=a.name;break;case 243:case 200:i=e.findChildOfKind(a,93,n);break;case 201:i=e.findChildOfKind(a,20,n)||e.first(a.parameters);break;default:return}return i&&{insertBefore:i,returnType:(o=a,o.type?o.type:e.isVariableDeclaration(o.parent)&&o.parent.type&&e.isFunctionTypeNode(o.parent.type)?o.parent.type.type:void 0)}}}function i(n,t,r){var a=r.insertBefore,i=r.returnType;if(i){var o=e.getEntityNameFromTypeNode(i);o&&75===o.kind&&\"Promise\"===o.text||n.replaceNode(t,i,e.createTypeReferenceNode(\"Promise\",e.createNodeArray([i])))}n.insertModifierBefore(t,125,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_async_modifier_to_containing_function,t,e.Diagnostics.Add_all_missing_async_modifiers)]}},fixIds:[t],getAllCodeActions:function(t){var o=e.createMap();return n.codeFixAll(t,r,(function(n,r){var s=a(r.file,r.start);s&&e.addToSeen(o,e.getNodeId(s.insertBefore))&&i(n,t.sourceFile,s)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"disableJsDiagnostics\",r=e.mapDefined(Object.keys(e.Diagnostics),(function(n){var t=e.Diagnostics[n];return t.category===e.DiagnosticCategory.Error?t.code:void 0}));function a(n,t,r,a){var i=e.getLineAndCharacterOfPosition(t,r).line;a&&!e.addToSeen(a,i)||n.insertCommentBeforeLine(t,i,r,\" @ts-ignore\")}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=r.sourceFile,o=r.program,s=r.span,c=r.host,l=r.formatContext;if(e.isInJSFile(i)&&e.isCheckJsEnabledForFile(i,o.getCompilerOptions())){var u=[n.createCodeFixActionNoFixId(\"disableJsDiagnostics\",[n.createFileTextChanges(i.fileName,[e.createTextChange(i.checkJsDirective?e.createTextSpanFromBounds(i.checkJsDirective.pos,i.checkJsDirective.end):e.createTextSpan(0,0),\"// @ts-nocheck\"+e.getNewLineOrDefaultFromHost(c,l.options))])],e.Diagnostics.Disable_checking_for_this_file)];return e.textChanges.isValidLocationToAddComment(i,s.start)&&u.unshift(n.createCodeFixAction(\"disableJsDiagnostics\",e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i,s.start)})),e.Diagnostics.Ignore_this_error_message,t,e.Diagnostics.Add_ts_ignore_to_all_error_messages)),u}},fixIds:[t],getAllCodeActions:function(t){var i=e.createMap();return n.codeFixAll(t,r,(function(n,t){e.textChanges.isValidLocationToAddComment(t.file,t.start)&&a(n,t.file,t.start,i)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(e){return{directoryExists:e.host.directoryExists?function(n){return e.host.directoryExists(n)}:void 0,fileExists:e.host.fileExists?function(n){return e.host.fileExists(n)}:void 0,getCurrentDirectory:e.host.getCurrentDirectory?function(){return e.host.getCurrentDirectory()}:void 0,readFile:e.host.readFile?function(n){return e.host.readFile(n)}:void 0,useCaseSensitiveFileNames:e.host.useCaseSensitiveFileNames?function(){return e.host.useCaseSensitiveFileNames()}:void 0,getSourceFiles:function(){return e.program.getSourceFiles()},getCommonSourceDirectory:function(){return e.program.getCommonSourceDirectory()}}}function r(n){return{trackSymbol:e.noop,moduleResolverHost:t(n)}}function a(n,t,a,s,c){var l=n.getDeclarations();if(l&&l.length){var u=a.program.getTypeChecker(),d=l[0],p=e.getSynthesizedDeepClone(e.getNameOfDeclaration(d),!1),m=function(n){if(4&n)return e.createToken(118);if(16&n)return e.createToken(117);return}(e.getModifierFlags(d)),f=m?e.createNodeArray([m]):void 0,_=u.getWidenedType(u.getTypeOfSymbolAtLocation(n,t)),g=!!(16777216&n.flags),y=!!(8388608&t.flags);switch(d.kind){case 157:case 158:var v=u.typeToTypeNode(_,t,void 0,r(a));c(e.createProperty(void 0,f,p,g?e.createToken(57):void 0,v,void 0));break;case 162:case 163:for(var h=e.getAllAccessorDeclarations(l,d),b=u.typeToTypeNode(_,t,void 0,r(a)),E=0,T=h.secondAccessor?[h.firstAccessor,h.secondAccessor]:[h.firstAccessor];E<T.length;E++){var S=T[E];if(e.isGetAccessorDeclaration(S))c(e.createGetAccessor(void 0,f,p,e.emptyArray,b,y?void 0:o(s)));else{e.Debug.assertNode(S,e.isSetAccessorDeclaration,\"The counterpart to a getter should be a setter\");var x=e.getSetAccessorValueParameter(S),L=x&&e.isIdentifier(x.name)?e.idText(x.name):void 0;c(e.createSetAccessor(void 0,f,p,i(1,[L],[b],1,!1),y?void 0:o(s)))}}break;case 159:case 160:var C=u.getSignaturesOfType(_,0);if(!e.some(C))break;if(1===l.length){e.Debug.assert(1===C.length,\"One declaration implies one signature\"),k(C[0],f,p,y?void 0:o(s));break}for(var A=0,D=C;A<D.length;A++){k(D[A],e.getSynthesizedDeepClones(f,!1),e.getSynthesizedDeepClone(p,!1))}if(!y)if(l.length>C.length)k(u.getSignatureFromDeclaration(l[l.length-1]),f,p,o(s));else e.Debug.assert(l.length===C.length,\"Declarations and signatures should match count\"),c(function(n,t,r,a,s){for(var c=n[0],l=n[0].minArgumentCount,u=!1,d=0,p=n;d<p.length;d++){var m=p[d];l=Math.min(m.minArgumentCount,l),e.signatureHasRestParameter(m)&&(u=!0),m.parameters.length>=c.parameters.length&&(!e.signatureHasRestParameter(m)||e.signatureHasRestParameter(c))&&(c=m)}var f=c.parameters.length-(e.signatureHasRestParameter(c)?1:0),_=c.parameters.map((function(e){return e.name})),g=i(f,_,void 0,l,!1);if(u){var y=e.createArrayTypeNode(e.createKeywordTypeNode(124)),v=e.createParameter(void 0,void 0,e.createToken(25),_[f]||\"rest\",f>=l?e.createToken(57):void 0,y,void 0);g.push(v)}return function(n,t,r,a,i,s,c){return e.createMethod(void 0,n,void 0,t,r?e.createToken(57):void 0,a,i,s,o(c))}(a,t,r,void 0,g,void 0,s)}(C,p,g,f,s))}}function k(n,i,o,s){var l=function(n,t,a,i,o,s,c){var l=n.program.getTypeChecker().signatureToSignatureDeclaration(t,160,a,257,r(n));if(!l)return;return l.decorators=void 0,l.modifiers=i,l.name=o,l.questionToken=s?e.createToken(57):void 0,l.body=c,l}(a,n,t,i,o,g,s);l&&c(l)}}function i(n,t,r,a,i){for(var o=[],s=0;s<n;s++){var c=e.createParameter(void 0,void 0,void 0,t&&t[s]||\"arg\"+s,void 0!==a&&s>=a?e.createToken(57):void 0,i?void 0:r&&r[s]||e.createKeywordTypeNode(124),void 0);o.push(c)}return o}function o(n){return e.createBlock([e.createThrow(e.createNew(e.createIdentifier(\"Error\"),void 0,[e.createLiteral(\"Method not implemented.\",\"single\"===n.quotePreference)]))],!0)}function s(n,t){return e.createPropertyAssignment(e.createStringLiteral(n),t)}function c(n,t){return e.find(n.properties,(function(n){return e.isPropertyAssignment(n)&&!!n.name&&e.isStringLiteral(n.name)&&n.name.text===t}))}n.createMissingMemberNodes=function(e,n,t,r,i){for(var o=e.symbol.members,s=0,c=n;s<c.length;s++){var l=c[s];o.has(l.escapedName)||a(l,e,t,r,i)}},n.getNoopSymbolTrackerWithResolver=r,n.createMethodFromCallExpression=function(n,t,a,s,c,l,u){var d=!e.isInterfaceDeclaration(u),p=t.typeArguments,m=t.arguments,f=t.parent,_=n.program.getTypeChecker(),g=r(n),y=e.map(m,(function(e){return _.typeToTypeNode(_.getBaseTypeOfLiteralType(_.getTypeAtLocation(e)),u,void 0,g)})),v=e.map(m,(function(n){return e.isIdentifier(n)?n.text:e.isPropertyAccessExpression(n)?n.name.text:void 0})),h=_.getContextualType(t),b=s||!h?void 0:_.typeToTypeNode(h,u,void 0,g);return e.createMethod(void 0,c?[e.createToken(119)]:void 0,e.isYieldExpression(f)?e.createToken(41):void 0,a,void 0,s?void 0:e.map(p,(function(n,t){return e.createTypeParameterDeclaration(84+p.length-1<=90?String.fromCharCode(84+t):\"T\"+t)})),i(m.length,v,y,void 0,s),b,d?o(l):void 0)},n.setJsonCompilerOptionValue=function(n,t,r,a){var i=e.getTsConfigObjectLiteralExpression(t);if(i){var o=c(i,\"compilerOptions\");if(void 0!==o){var l=o.initializer;if(e.isObjectLiteralExpression(l)){var u=c(l,r);void 0===u?n.insertNodeAtObjectStart(t,l,s(r,a)):n.replaceNode(t,u.initializer,a)}}else n.insertNodeAtObjectStart(t,i,s(\"compilerOptions\",e.createObjectLiteral([s(r,a)])))}},n.createJsonPropertyAssignment=s,n.findJsonProperty=c}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(t,r,a,i){var o=e.textChanges.ChangeTracker.with(t,(function(e){return e.replaceNode(r,a,i)}));return n.createCodeFixActionNoFixId(\"invalidImportSyntax\",o,[e.Diagnostics.Replace_import_with_0,o[0].textChanges[0].newText])}function r(r,a){var i=r.program.getTypeChecker().getTypeAtLocation(a);if(!i.symbol||!i.symbol.originatingImport)return[];var o=[],s=i.symbol.originatingImport;if(e.isImportCall(s)||e.addRange(o,function(n,r){var a=e.getSourceFileOfNode(r),i=e.getNamespaceDeclarationNode(r),o=n.program.getCompilerOptions(),s=[];return s.push(t(n,a,r,e.makeImport(i.name,void 0,r.moduleSpecifier,e.getQuotePreference(a,n.preferences)))),e.getEmitModuleKind(o)===e.ModuleKind.CommonJS&&s.push(t(n,a,r,e.createImportEqualsDeclaration(void 0,void 0,i.name,e.createExternalModuleReference(r.moduleSpecifier)))),s}(r,s)),e.isExpression(a)&&(!e.isNamedDeclaration(a.parent)||a.parent.name!==a)){var c=r.sourceFile,l=e.textChanges.ChangeTracker.with(r,(function(n){return n.replaceNode(c,a,e.createPropertyAccess(a,\"default\"),{})}));o.push(n.createCodeFixActionNoFixId(\"invalidImportSyntax\",l,e.Diagnostics.Use_synthetic_default_member))}return o}n.registerCodeFix({errorCodes:[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],getCodeActions:function(n){var t=n.sourceFile,a=e.Diagnostics.This_expression_is_not_callable.code===n.errorCode?195:196,i=e.findAncestor(e.getTokenAtPosition(t,n.span.start),(function(e){return e.kind===a}));if(!i)return[];var o=i.expression;return r(n,o)}}),n.registerCodeFix({errorCodes:[e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,e.Diagnostics.Type_predicate_0_is_not_assignable_to_1.code,e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2.code,e.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2.code,e.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1.code,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,e.Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,e.Diagnostics.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,e.Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code],getCodeActions:function(n){var t=n.sourceFile,a=e.findAncestor(e.getTokenAtPosition(t,n.span.start),(function(e){return e.getStart()===n.span.start&&e.getEnd()===n.span.start+n.span.length}));if(!a)return[];return r(n,a)}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"strictClassInitialization\",r=[e.Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.isIdentifier(r)?e.cast(r.parent,e.isPropertyDeclaration):void 0}function i(r,a){var i=e.textChanges.ChangeTracker.with(r,(function(e){return o(e,r.sourceFile,a)}));return n.createCodeFixAction(t,i,[e.Diagnostics.Add_definite_assignment_assertion_to_property_0,a.getText()],\"addMissingPropertyDefiniteAssignmentAssertions\",e.Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties)}function o(n,t,r){var a=e.updateProperty(r,r.decorators,r.modifiers,r.name,e.createToken(53),r.type,r.initializer);n.replaceNode(t,r,a)}function s(r,a){var i=e.textChanges.ChangeTracker.with(r,(function(e){return c(e,r.sourceFile,a)}));return n.createCodeFixAction(t,i,[e.Diagnostics.Add_undefined_type_to_property_0,a.name.getText()],\"addMissingPropertyUndefinedType\",e.Diagnostics.Add_undefined_type_to_all_uninitialized_properties)}function c(n,t,r){var a=e.createKeywordTypeNode(145),i=r.type,o=e.isUnionTypeNode(i)?i.types.concat(a):[i,a];n.replaceNode(t,i,e.createUnionTypeNode(o))}function l(n,t,r,a){var i=e.updateProperty(r,r.decorators,r.modifiers,r.name,r.questionToken,r.type,a);n.replaceNode(t,r,i)}function u(n,t){return function n(t,r){if(512&r.flags)return r===t.getFalseType()||r===t.getFalseType(!0)?e.createFalse():e.createTrue();if(r.isLiteral())return e.createLiteral(r.value);if(r.isUnion())return e.firstDefined(r.types,(function(e){return n(t,e)}));if(r.isClass()){var a=e.getClassLikeDeclarationOfSymbol(r.symbol);if(!a||e.hasModifier(a,128))return;var i=e.getFirstConstructorWithBody(a);if(i&&i.parameters.length)return;return e.createNew(e.createIdentifier(r.symbol.name),void 0,void 0)}if(t.isArrayLikeType(r))return e.createArrayLiteral();return}(n,n.getTypeFromTypeNode(t.type))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=a(r.sourceFile,r.span.start);if(o){var c=[s(r,o),i(r,o)];return e.append(c,function(r,a){var i=u(r.program.getTypeChecker(),a);if(!i)return;var o=e.textChanges.ChangeTracker.with(r,(function(e){return l(e,r.sourceFile,a,i)}));return n.createCodeFixAction(t,o,[e.Diagnostics.Add_initializer_to_property_0,a.name.getText()],\"addMissingPropertyInitializer\",e.Diagnostics.Add_initializers_to_all_uninitialized_properties)}(r,o)),c}},fixIds:[\"addMissingPropertyDefiniteAssignmentAssertions\",\"addMissingPropertyUndefinedType\",\"addMissingPropertyInitializer\"],getAllCodeActions:function(t){return n.codeFixAll(t,r,(function(n,r){var i=a(r.file,r.start);if(i)switch(t.fixId){case\"addMissingPropertyDefiniteAssignmentAssertions\":o(n,r.file,i);break;case\"addMissingPropertyUndefinedType\":c(n,r.file,i);break;case\"addMissingPropertyInitializer\":var s=u(t.program.getTypeChecker(),i);if(!s)return;l(n,r.file,i,s);break;default:e.Debug.fail(JSON.stringify(t.fixId))}}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"requireInTs\",r=[e.Diagnostics.require_call_may_be_converted_to_an_import.code];function a(n,t,r,a){var i=function(n,t){var r=e.getTokenAtPosition(n,t).parent;if(!e.isRequireCall(r,!0))throw e.Debug.failBadSyntaxKind(r);var a=e.cast(r.parent,e.isVariableDeclaration);return{statement:e.cast(a.parent.parent,e.isVariableStatement),name:e.cast(a.name,e.isIdentifier),required:r.arguments[0]}}(t,r),o=i.statement,s=i.name,c=i.required;n.replaceNode(t,o,e.getAllowSyntheticDefaultImports(a.getCompilerOptions())?e.createImportDeclaration(void 0,void 0,e.createImportClause(s,void 0),c):e.createImportEqualsDeclaration(void 0,void 0,s,e.createExternalModuleReference(c)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span.start,r.program)}));return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_require_to_import,t,e.Diagnostics.Convert_all_require_to_import)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return a(n,t.file,t.start,e.program)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"useDefaultImport\",r=[e.Diagnostics.Import_may_be_converted_to_a_default_import.code];function a(n,t){var r=e.getTokenAtPosition(n,t);if(e.isIdentifier(r)){var a=r.parent;if(e.isImportEqualsDeclaration(a)&&e.isExternalModuleReference(a.moduleReference))return{importNode:a,name:r,moduleSpecifier:a.moduleReference.expression};if(e.isNamespaceImport(a)){var i=a.parent.parent;return{importNode:i,name:r,moduleSpecifier:i.moduleSpecifier}}}}function i(n,t,r,a){n.replaceNode(t,r.importNode,e.makeImport(r.name,void 0,r.moduleSpecifier,e.getQuotePreference(t,a)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span.start,c=a(o,s);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c,r.preferences)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Convert_to_default_import,t,e.Diagnostics.Convert_all_to_default_imports)]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){var r=a(t.file,t.start);r&&i(n,t.file,r,e.preferences)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"useBigintLiteral\",r=[e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code];function a(n,t,r){var a=e.tryCast(e.getTokenAtPosition(t,r.start),e.isNumericLiteral);if(a){var i=a.getText(t)+\"n\";n.replaceNode(t,a,e.createBigIntLiteral(i))}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Convert_to_a_bigint_numeric_literal,t,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixAddModuleReferTypeMissingTypeof\",r=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];function a(n,t){var r=e.getTokenAtPosition(n,t);return e.Debug.assert(95===r.kind,\"This token should be an ImportKeyword\"),e.Debug.assert(187===r.parent.kind,\"Token parent should be an ImportType\"),r.parent}function i(n,t,r){var a=e.updateImportTypeNode(r,r.argument,r.qualifier,r.typeArguments,!0);n.replaceNode(t,r,a)}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start),l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)}));return[n.createCodeFixAction(t,l,e.Diagnostics.Add_missing_typeof,t,e.Diagnostics.Add_missing_typeof)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(n,t){return i(n,e.sourceFile,a(t.file,t.start))}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixConvertToMappedObjectType\",r=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead.code];function a(n,t){var r=e.getTokenAtPosition(n,t),a=e.cast(r.parent.parent,e.isIndexSignatureDeclaration);if(!e.isClassDeclaration(a.parent))return{indexSignature:a,container:e.isInterfaceDeclaration(a.parent)?a.parent:e.cast(a.parent.parent,e.isTypeAliasDeclaration)}}function i(n,t,r){var a,i,o=r.indexSignature,s=r.container,c=(e.isInterfaceDeclaration(s)?s.members:s.type.members).filter((function(n){return!e.isIndexSignatureDeclaration(n)})),l=e.first(o.parameters),u=e.createTypeParameterDeclaration(e.cast(l.name,e.isIdentifier),l.type),d=e.createMappedTypeNode(e.hasReadonlyModifier(o)?e.createModifier(137):void 0,u,o.questionToken,o.type),p=e.createIntersectionTypeNode(__spreadArrays(e.getAllSuperTypeNodes(s),[d],c.length?[e.createTypeLiteralNode(c)]:e.emptyArray));n.replaceNode(t,s,(a=s,i=p,e.createTypeAliasDeclaration(a.decorators,a.modifiers,a.name,a.typeParameters,i)))}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var o=r.sourceFile,s=r.span,c=a(o,s.start);if(c){var l=e.textChanges.ChangeTracker.with(r,(function(e){return i(e,o,c)})),u=e.idText(c.container.name);return[n.createCodeFixAction(t,l,[e.Diagnostics.Convert_0_to_mapped_object_type,u],t,[e.Diagnostics.Convert_0_to_mapped_object_type,u])]}},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){var t=a(n.file,n.start);t&&i(e,n.file,t)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"removeUnnecessaryAwait\",r=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];function a(n,t,r){var a=e.tryCast(e.getTokenAtPosition(t,r.start),(function(e){return 126===e.kind})),i=a&&e.tryCast(a.parent,e.isAwaitExpression);if(i){var o=i;if(e.isParenthesizedExpression(i.parent)){var s=e.getLeftmostExpression(i.expression,!1);if(e.isIdentifier(s)){var c=e.findPrecedingToken(i.parent.pos,t);c&&98!==c.kind&&(o=i.parent)}}n.replaceNode(t,o,i.expression)}}n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var i=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,r.sourceFile,r.span)}));if(i.length>0)return[n.createCodeFixAction(t,i,e.Diagnostics.Remove_unnecessary_await,t,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[t],getAllCodeActions:function(e){return n.codeFixAll(e,r,(function(e,n){return a(e,n.file,n)}))}})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){var t=\"fixConvertConstToLet\",r=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];n.registerCodeFix({errorCodes:r,getCodeActions:function(r){var a=r.sourceFile,i=r.span,o=r.program,s=function(n,t,r){var a=e.getTokenAtPosition(n,t),i=r.getTypeChecker().getSymbolAtLocation(a);if(i)return i.valueDeclaration.parent.parent}(a,i.start,o),c=e.textChanges.ChangeTracker.with(r,(function(e){return function(e,n,t){if(!t)return;var r=t.getStart();e.replaceRangeWithText(n,{pos:r,end:r+5},\"let\")}(e,a,s)}));return[n.createCodeFixAction(t,c,e.Diagnostics.Convert_const_to_let,t,e.Diagnostics.Convert_const_to_let)]},fixIds:[t]})}(e.codefix||(e.codefix={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,r=e.getRefactorContextSpan(n),a=e.getTokenAtPosition(t,r.start),i=e.getParentNodeInSpan(a,t,r);if(i&&(e.isSourceFile(i.parent)||e.isModuleBlock(i.parent)&&e.isAmbientModule(i.parent.parent))){var o=e.isSourceFile(i.parent)?i.parent.symbol:i.parent.parent.symbol,s=e.getModifierFlags(i),c=!!(512&s);if(1&s&&(c||!o.exports.has(\"default\")))switch(i.kind){case 243:case 244:case 245:case 247:case 246:case 248:var l=i;return l.name&&e.isIdentifier(l.name)?{exportNode:l,exportName:l.name,wasDefault:c,exportingModuleSymbol:o}:void 0;case 224:var u=i;if(!(2&u.declarationList.flags)||1!==u.declarationList.declarations.length)return;var d=e.first(u.declarationList.declarations);if(!d.initializer)return;return e.Debug.assert(!c,\"Can't have a default flag here\"),e.isIdentifier(d.name)?{exportNode:u,exportName:d.name,wasDefault:c,exportingModuleSymbol:o}:void 0;default:return}}}function r(n,t){return e.createImportSpecifier(n===t?void 0:e.createIdentifier(n),e.createIdentifier(t))}n.registerRefactor(\"Convert export\",{getAvailableActions:function(n){var r=t(n);if(!r)return e.emptyArray;var a=r.wasDefault?e.Diagnostics.Convert_default_export_to_named_export.message:e.Diagnostics.Convert_named_export_to_default_export.message;return[{name:\"Convert export\",description:a,actions:[{name:r.wasDefault?\"Convert default export to named export\":\"Convert named export to default export\",description:a}]}]},getEditsForAction:function(n,a){return e.Debug.assert(\"Convert default export to named export\"===a||\"Convert named export to default export\"===a,\"Unexpected action name\"),{edits:e.textChanges.ChangeTracker.with(n,(function(a){return i=n.file,o=n.program,s=e.Debug.assertDefined(t(n),\"context must have info\"),c=a,l=n.cancellationToken,function(n,t,r,a){var i=t.wasDefault,o=t.exportNode,s=t.exportName;if(i)r.delete(n,e.Debug.assertDefined(e.findModifier(o,83),\"Should find a default keyword in modifier list\"));else{var c=e.Debug.assertDefined(e.findModifier(o,88),\"Should find an export keyword in modifier list\");switch(o.kind){case 243:case 244:case 245:r.insertNodeAfter(n,c,e.createToken(83));break;case 224:if(!e.FindAllReferences.Core.isSymbolReferencedInFile(s,a,n)){r.replaceNode(n,o,e.createExportDefault(e.Debug.assertDefined(e.first(o.declarationList.declarations).initializer,\"Initializer was previously known to be present\")));break}case 247:case 246:case 248:r.deleteModifier(n,c),r.insertNodeAfter(n,o,e.createExportDefault(e.createIdentifier(s.text)));break;default:e.Debug.assertNever(o,\"Unexpected exportNode kind \"+o.kind)}}}(i,s,c,o.getTypeChecker()),void function(n,t,a,i){var o=t.wasDefault,s=t.exportName,c=t.exportingModuleSymbol,l=n.getTypeChecker(),u=e.Debug.assertDefined(l.getSymbolAtLocation(s),\"Export name should resolve to a symbol\");e.FindAllReferences.Core.eachExportReference(n.getSourceFiles(),l,i,u,c,s.text,o,(function(n){var t=n.getSourceFile();o?function(n,t,a,i){var o=t.parent;switch(o.kind){case 193:a.replaceNode(n,t,e.createIdentifier(i));break;case 257:case 261:var s=o;a.replaceNode(n,s,r(i,s.name.text));break;case 254:var c=o;e.Debug.assert(c.name===t,\"Import clause name should match provided ref\"),s=r(i,t.text);var l=c.namedBindings;if(l)if(255===l.kind){a.deleteRange(n,{pos:t.getStart(n),end:l.getStart(n)});var u=e.isStringLiteral(c.parent.moduleSpecifier)?e.quotePreferenceFromString(c.parent.moduleSpecifier,n):1,d=e.makeImport(void 0,[r(i,t.text)],c.parent.moduleSpecifier,u);a.insertNodeAfter(n,c.parent,d)}else a.delete(n,t),a.insertNodeAtEndOfList(n,l.elements,s);else a.replaceNode(n,t,e.createNamedImports([s]));break;default:e.Debug.failBadSyntaxKind(o)}}(t,n,a,s.text):function(n,t,r){var a,i,o=t.parent;switch(o.kind){case 193:r.replaceNode(n,t,e.createIdentifier(\"default\"));break;case 257:var s=e.createIdentifier(o.name.text);1===o.parent.elements.length?r.replaceNode(n,o.parent,s):(r.delete(n,o),r.insertNodeBefore(n,o.parent,s));break;case 261:r.replaceNode(n,o,(a=\"default\",i=o.name.text,e.createExportSpecifier(a===i?void 0:e.createIdentifier(a),e.createIdentifier(i))));break;default:e.Debug.assertNever(o,\"Unexpected parent kind \"+o.kind)}}(t,n,a)}))}(o,s,c,l);var i,o,s,c,l})),renameFilename:void 0,renameLocation:void 0}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,r=e.getRefactorContextSpan(n),a=e.getTokenAtPosition(t,r.start),i=e.getParentNodeInSpan(a,t,r);if(i&&e.isImportDeclaration(i)){var o=i.importClause;return o&&o.namedBindings}}function r(n,t,r){return e.createImportDeclaration(void 0,void 0,e.createImportClause(t,r&&r.length?e.createNamedImports(r):void 0),n.moduleSpecifier)}n.registerRefactor(\"Convert import\",{getAvailableActions:function(n){var r=t(n);if(!r)return e.emptyArray;var a=255===r.kind?e.Diagnostics.Convert_namespace_import_to_named_imports.message:e.Diagnostics.Convert_named_imports_to_namespace_import.message;return[{name:\"Convert import\",description:a,actions:[{name:255===r.kind?\"Convert namespace import to named imports\":\"Convert named imports to namespace import\",description:a}]}]},getEditsForAction:function(n,a){return e.Debug.assert(\"Convert namespace import to named imports\"===a||\"Convert named imports to namespace import\"===a,\"Unexpected action name\"),{edits:e.textChanges.ChangeTracker.with(n,(function(a){return i=n.file,o=n.program,s=a,c=e.Debug.assertDefined(t(n),\"Context must provide an import to convert\"),l=o.getTypeChecker(),void(255===c.kind?function(n,t,a,i,o){var s=!1,c=[],l=e.createMap();e.FindAllReferences.Core.eachSymbolReferenceInFile(i.name,t,n,(function(n){if(e.isPropertyAccessExpression(n.parent)){var r=e.cast(n.parent,e.isPropertyAccessExpression),a=r.name.text;t.resolveName(a,n,67108863,!0)&&l.set(a,!0),e.Debug.assert(r.expression===n,\"Parent expression should match id\"),c.push(r)}else s=!0}));for(var u=e.createMap(),d=0,p=c;d<p.length;d++){var m=p[d],f=m.name.text,_=u.get(f);void 0===_&&u.set(f,_=l.has(f)?e.getUniqueName(f,n):f),a.replaceNode(n,m,e.createIdentifier(_))}var g=[];u.forEach((function(n,t){g.push(e.createImportSpecifier(n===t?void 0:e.createIdentifier(t),e.createIdentifier(n)))}));var y=i.parent.parent;s&&!o?a.insertNodeAfter(n,y,r(y,void 0,g)):a.replaceNode(n,y,r(y,s?e.createIdentifier(i.name.text):void 0,g))}(i,l,s,c,e.getAllowSyntheticDefaultImports(o.getCompilerOptions())):function(n,t,a,i){for(var o=i.parent.parent,s=o.moduleSpecifier,c=s&&e.isStringLiteral(s)?e.codefix.moduleSpecifierToValidIdentifier(s.text,99):\"module\",l=i.elements.some((function(r){return e.FindAllReferences.Core.eachSymbolReferenceInFile(r.name,t,n,(function(e){return!!t.resolveName(c,e,67108863,!0)}))||!1}))?e.getUniqueName(c,n):c,u=[],d=function(r){var i=(r.propertyName||r.name).text;e.FindAllReferences.Core.eachSymbolReferenceInFile(r.name,t,n,(function(t){var o=e.createPropertyAccess(e.createIdentifier(l),i);e.isShorthandPropertyAssignment(t.parent)?a.replaceNode(n,t.parent,e.createPropertyAssignment(t.text,o)):e.isExportSpecifier(t.parent)&&!t.parent.propertyName?u.some((function(e){return e.name===r.name}))||u.push(e.createImportSpecifier(r.propertyName&&e.createIdentifier(r.propertyName.text),e.createIdentifier(r.name.text))):a.replaceNode(n,t,o)}))},p=0,m=i.elements;p<m.length;p++){var f=m[p];d(f)}a.replaceNode(n,i,e.createNamespaceImport(e.createIdentifier(l))),u.length&&a.insertNodeAfter(n,i.parent.parent,r(o,void 0,u))}(i,l,s,c));var i,o,s,c,l})),renameFilename:void 0,renameLocation:void 0}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r,a,i,o;function s(n){var t=l(n.file,e.getRefactorContextSpan(n)).targetRange;if(void 0===t)return e.emptyArray;var r=function(n,t){var r=p(n,t),a=r.scopes,i=r.readsAndWrites,o=i.functionErrorsPerScope,s=i.constantErrorsPerScope;return a.map((function(n,t){var r,a,i=function(n){return e.isFunctionLikeDeclaration(n)?\"inner function\":e.isClassLike(n)?\"method\":\"function\"}(n),c=function(n){return e.isClassLike(n)?\"readonly field\":\"constant\"}(n),l=e.isFunctionLikeDeclaration(n)?function(n){switch(n.kind){case 161:return\"constructor\";case 200:case 243:return n.name?\"function '\"+n.name.text+\"'\":\"anonymous function\";case 201:return\"arrow function\";case 160:return\"method '\"+n.name.getText()+\"'\";case 162:return\"'get \"+n.name.getText()+\"'\";case 163:return\"'set \"+n.name.getText()+\"'\";default:throw e.Debug.assertNever(n,\"Unexpected scope kind \"+n.kind)}}(n):e.isClassLike(n)?function(e){return 244===e.kind?e.name?\"class '\"+e.name.text+\"'\":\"anonymous class declaration\":e.name?\"class expression '\"+e.name.text+\"'\":\"anonymous class expression\"}(n):function(e){return 249===e.kind?\"namespace '\"+e.parent.name.getText()+\"'\":e.externalModuleIndicator?0:1}(n);return 1===l?(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[i,\"global\"]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,\"global\"])):0===l?(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[i,\"module\"]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,\"module\"])):(r=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[i,l]),a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[c,l])),0!==t||e.isClassLike(n)||(a=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[c])),{functionExtraction:{description:r,errors:o[t]},constantExtraction:{description:a,errors:s[t]}}}))}(t,n);if(void 0===r)return e.emptyArray;for(var a=[],i=e.createMap(),o=[],s=e.createMap(),c=0,u=0,d=r;u<d.length;u++){var m=d[u],f=m.functionExtraction,_=m.constantExtraction;if(0===f.errors.length){var g=f.description;i.has(g)||(i.set(g,!0),a.push({description:g,name:\"function_scope_\"+c}))}if(0===_.errors.length){g=_.description;s.has(g)||(s.set(g,!0),o.push({description:g,name:\"constant_scope_\"+c}))}c++}var y=[];return a.length&&y.push({name:\"Extract Symbol\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),actions:a}),o.length&&y.push({name:\"Extract Symbol\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),actions:o}),y.length?y:e.emptyArray}function c(n,t){var r=l(n.file,e.getRefactorContextSpan(n)).targetRange,i=/^function_scope_(\\d+)$/.exec(t);if(i){var o=+i[1];return e.Debug.assert(isFinite(o),\"Expected to parse a finite number from the function scope index\"),function(n,t,r){var i=p(n,t),o=i.scopes,s=i.readsAndWrites,c=s.target,l=s.usagesPerScope,u=s.functionErrorsPerScope,d=s.exposedVariableDeclarations;return e.Debug.assert(!u[r].length,\"The extraction went missing? How?\"),t.cancellationToken.throwIfCancellationRequested(),function(n,t,r,i,o,s){var c,l,u=r.usages,d=r.typeParameterUsages,p=r.substitutions,y=s.program.getTypeChecker(),v=t.getSourceFile(),h=e.getUniqueName(e.isClassLike(t)?\"newMethod\":\"newFunction\",v),b=e.isInJSFile(t),E=e.createIdentifier(h),T=[],S=[];u.forEach((function(n,r){var a;if(!b){var i=y.getTypeOfSymbolAtLocation(n.symbol,n.node);i=y.getBaseTypeOfLiteralType(i),a=y.typeToTypeNode(i,t,1)}var o=e.createParameter(void 0,void 0,void 0,r,void 0,a);T.push(o),2===n.usage&&(l||(l=[])).push(n),S.push(e.createIdentifier(r))}));var x=e.arrayFrom(d.values()).map((function(e){return{type:e,declaration:m(e)}})).sort(f),L=0===x.length?void 0:x.map((function(e){return e.declaration})),C=void 0!==L?L.map((function(n){return e.createTypeReferenceNode(n.name,void 0)})):void 0;if(e.isExpression(n)&&!b){var A=y.getContextualType(n);c=y.typeToTypeNode(A,t,1)}var D,k=function(n,t,r,a,i){var o,s=void 0!==r||t.length>0;if(e.isBlock(n)&&!s&&0===a.size)return{body:e.createBlock(n.statements,!0),returnValueProperty:void 0};var c=!1,l=e.createNodeArray(e.isBlock(n)?n.statements.slice(0):[e.isStatement(n)?n:e.createReturn(n)]);if(s||a.size){var u=e.visitNodes(l,(function n(i){if(!c&&234===i.kind&&s){var l=_(t,r);return i.expression&&(o||(o=\"__return\"),l.unshift(e.createPropertyAssignment(o,e.visitNode(i.expression,n)))),1===l.length?e.createReturn(l[0].name):e.createReturn(e.createObjectLiteral(l))}var u=c;c=c||e.isFunctionLikeDeclaration(i)||e.isClassLike(i);var d=a.get(e.getNodeId(i).toString()),p=d?e.getSynthesizedDeepClone(d):e.visitEachChild(i,n,e.nullTransformationContext);return c=u,p})).slice();if(s&&!i&&e.isStatement(n)){var d=_(t,r);1===d.length?u.push(e.createReturn(d[0].name)):u.push(e.createReturn(e.createObjectLiteral(d)))}return{body:e.createBlock(u,!0),returnValueProperty:o}}return{body:e.createBlock(l,!0),returnValueProperty:void 0}}(n,i,l,p,!!(o.facts&a.HasReturn)),N=k.body,I=k.returnValueProperty;if(e.suppressLeadingAndTrailingTrivia(N),e.isClassLike(t)){var M=b?[]:[e.createToken(116)];o.facts&a.InStaticRegion&&M.push(e.createToken(119)),o.facts&a.IsAsyncFunction&&M.push(e.createToken(125)),D=e.createMethod(void 0,M.length?M:void 0,o.facts&a.IsGenerator?e.createToken(41):void 0,E,void 0,L,T,c,N)}else D=e.createFunctionDeclaration(void 0,o.facts&a.IsAsyncFunction?[e.createToken(125)]:void 0,o.facts&a.IsGenerator?e.createToken(41):void 0,E,L,T,c,N);var O=e.textChanges.ChangeTracker.fromContext(s),R=function(n,t){return e.find(function(n){if(e.isFunctionLikeDeclaration(n)){var t=n.body;if(e.isBlock(t))return t.statements}else{if(e.isModuleBlock(n)||e.isSourceFile(n))return n.statements;if(e.isClassLike(n))return n.members;e.assertType(n)}return e.emptyArray}(t),(function(t){return t.pos>=n&&e.isFunctionLikeDeclaration(t)&&!e.isConstructorDeclaration(t)}))}((g(o.range)?e.last(o.range):o.range).end,t);R?O.insertNodeBefore(s.file,R,D,!0):O.insertNodeAtEndOfScope(s.file,t,D);var P=[],w=function(n,t,r){var i=e.createIdentifier(r);if(e.isClassLike(n)){var o=t.facts&a.InStaticRegion?e.createIdentifier(n.name.text):e.createThis();return e.createPropertyAccess(o,i)}return i}(t,o,h),F=e.createCall(w,C,S);o.facts&a.IsGenerator&&(F=e.createYield(e.createToken(41),F));o.facts&a.IsAsyncFunction&&(F=e.createAwait(F));if(i.length&&!l)if(e.Debug.assert(!I,\"Expected no returnValueProperty\"),e.Debug.assert(!(o.facts&a.HasReturn),\"Expected RangeFacts.HasReturn flag to be unset\"),1===i.length){var G=i[0];P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.getSynthesizedDeepClone(G.name),e.getSynthesizedDeepClone(G.type),F)],G.parent.flags)))}else{for(var B=[],V=[],U=i[0].parent.flags,j=!1,K=0,H=i;K<H.length;K++){G=H[K];B.push(e.createBindingElement(void 0,void 0,e.getSynthesizedDeepClone(G.name)));var W=y.typeToTypeNode(y.getBaseTypeOfLiteralType(y.getTypeAtLocation(G)),t,1);V.push(e.createPropertySignature(void 0,G.symbol.name,void 0,W,void 0)),j=j||void 0!==G.type,U&=G.parent.flags}var z=j?e.createTypeLiteralNode(V):void 0;z&&e.setEmitFlags(z,1),P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createObjectBindingPattern(B),z,F)],U)))}else if(i.length||l){if(i.length)for(var q=0,J=i;q<J.length;q++){var X=(G=J[q]).parent.flags;2&X&&(X=-3&X|1),P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(G.symbol.name,ee(G.type))],X)))}I&&P.push(e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(I,ee(c))],1)));var Y=_(i,l);I&&Y.unshift(e.createShorthandPropertyAssignment(I)),1===Y.length?(e.Debug.assert(!I,\"Shouldn't have returnValueProperty here\"),P.push(e.createStatement(e.createAssignment(Y[0].name,F))),o.facts&a.HasReturn&&P.push(e.createReturn())):(P.push(e.createStatement(e.createAssignment(e.createObjectLiteral(Y),F))),I&&P.push(e.createReturn(e.createIdentifier(I))))}else o.facts&a.HasReturn?P.push(e.createReturn(F)):g(o.range)?P.push(e.createStatement(F)):P.push(F);g(o.range)?O.replaceNodeRangeWithNodes(s.file,e.first(o.range),e.last(o.range),P):O.replaceNodeWithNodes(s.file,o.range,P);var Q=O.getChanges(),Z=(g(o.range)?e.first(o.range):o.range).getSourceFile().fileName,$=e.getRenameLocation(Q,Z,h,!1);return{renameFilename:Z,renameLocation:$,edits:Q};function ee(n){if(void 0!==n){for(var t=e.getSynthesizedDeepClone(n),r=t;e.isParenthesizedTypeNode(r);)r=r.type;return e.isUnionTypeNode(r)&&e.find(r.types,(function(e){return 145===e.kind}))?t:e.createUnionTypeNode([t,e.createKeywordTypeNode(145)])}}}(c,o[r],l[r],d,n,t)}(r,n,o)}var s=/^constant_scope_(\\d+)$/.exec(t);if(s){o=+s[1];return e.Debug.assert(isFinite(o),\"Expected to parse a finite number from the constant scope index\"),function(n,t,r){var i=p(n,t),o=i.scopes,s=i.readsAndWrites,c=s.target,l=s.usagesPerScope,u=s.constantErrorsPerScope,m=s.exposedVariableDeclarations;return e.Debug.assert(!u[r].length,\"The extraction went missing? How?\"),e.Debug.assert(0===m.length,\"Extract constant accepted a range containing a variable declaration?\"),t.cancellationToken.throwIfCancellationRequested(),function(n,t,r,i,o){var s,c=r.substitutions,l=o.program.getTypeChecker(),u=t.getSourceFile(),p=e.getUniqueName(e.isClassLike(t)?\"newProperty\":\"newLocal\",u),m=e.isInJSFile(t),f=m||!l.isContextSensitive(n)?void 0:l.typeToTypeNode(l.getContextualType(n),t,1),_=function(n,t){return t.size?function n(r){var a=t.get(e.getNodeId(r).toString());return a?e.getSynthesizedDeepClone(a):e.visitEachChild(r,n,e.nullTransformationContext)}(n):n}(n,c);s=function(r,a){if(void 0===r)return{variableType:r,initializer:a};if(!e.isFunctionExpression(a)&&!e.isArrowFunction(a)||a.typeParameters)return{variableType:r,initializer:a};var i=l.getTypeAtLocation(n),o=e.singleOrUndefined(l.getSignaturesOfType(i,0));if(!o)return{variableType:r,initializer:a};if(o.getTypeParameters())return{variableType:r,initializer:a};for(var s=[],c=!1,u=0,d=a.parameters;u<d.length;u++){var p=d[u];if(p.type)s.push(p);else{var m=l.getTypeAtLocation(p);m===l.getAnyType()&&(c=!0),s.push(e.updateParameter(p,p.decorators,p.modifiers,p.dotDotDotToken,p.name,p.questionToken,p.type||l.typeToTypeNode(m,t,1),p.initializer))}}if(c)return{variableType:r,initializer:a};if(r=void 0,e.isArrowFunction(a))a=e.updateArrowFunction(a,n.modifiers,a.typeParameters,s,a.type||l.typeToTypeNode(o.getReturnType(),t,1),a.equalsGreaterThanToken,a.body);else{if(o&&o.thisParameter){var f=e.firstOrUndefined(s);if(!f||e.isIdentifier(f.name)&&\"this\"!==f.name.escapedText){var _=l.getTypeOfSymbolAtLocation(o.thisParameter,n);s.splice(0,0,e.createParameter(void 0,void 0,void 0,\"this\",void 0,l.typeToTypeNode(_,t,1)))}}a=e.updateFunctionExpression(a,n.modifiers,a.asteriskToken,a.name,a.typeParameters,s,a.type||l.typeToTypeNode(o.getReturnType(),t,1),a.body)}return{variableType:r,initializer:a}}(f,_),f=s.variableType,_=s.initializer,e.suppressLeadingAndTrailingTrivia(_);var g=e.textChanges.ChangeTracker.fromContext(o);if(e.isClassLike(t)){e.Debug.assert(!m,\"Cannot extract to a JS class\");var v=[];v.push(e.createToken(116)),i&a.InStaticRegion&&v.push(e.createToken(119)),v.push(e.createToken(137));var h=e.createProperty(void 0,v,p,void 0,f,_),b=e.createPropertyAccess(i&a.InStaticRegion?e.createIdentifier(t.name.getText()):e.createThis(),e.createIdentifier(p)),E=function(n,t){var r,a=t.members;e.Debug.assert(a.length>0,\"Found no members\");for(var i=!0,o=0,s=a;o<s.length;o++){var c=s[o];if(c.pos>n)return r||a[0];if(i&&!e.isPropertyDeclaration(c)){if(void 0!==r)return c;i=!1}r=c}return void 0===r?e.Debug.fail():r}(n.pos,t);g.insertNodeBefore(o.file,E,h,!0),g.replaceNode(o.file,n,b)}else{var T=e.createVariableDeclaration(p,f,_),S=function(n,t){var r;for(;void 0!==n&&n!==t;){if(e.isVariableDeclaration(n)&&n.initializer===r&&e.isVariableDeclarationList(n.parent)&&n.parent.declarations.length>1)return n;r=n,n=n.parent}}(n,t);if(S){g.insertNodeBefore(o.file,S,T);b=e.createIdentifier(p);g.replaceNode(o.file,n,b)}else if(225===n.parent.kind&&t===e.findAncestor(n,d)){var x=e.createVariableStatement(void 0,e.createVariableDeclarationList([T],2));g.replaceNode(o.file,n.parent,x)}else{x=e.createVariableStatement(void 0,e.createVariableDeclarationList([T],2));if(0===(E=function(n,t){var r;e.Debug.assert(!e.isClassLike(t));for(var a=n;a!==t;a=a.parent)d(a)&&(r=a);for(a=(r||n).parent;;a=a.parent){if(y(a)){for(var i=void 0,o=0,s=a.statements;o<s.length;o++){var c=s[o];if(c.pos>n.pos)break;i=c}return!i&&e.isCaseClause(a)?(e.Debug.assert(e.isSwitchStatement(a.parent.parent),\"Grandparent isn't a switch statement\"),a.parent.parent):e.Debug.assertDefined(i,\"prevStatement failed to get set\")}e.Debug.assert(a!==t,\"Didn't encounter a block-like before encountering scope\")}}(n,t)).pos?g.insertNodeAtTopOfFile(o.file,x,!1):g.insertNodeBefore(o.file,E,x,!1),225===n.parent.kind)g.delete(o.file,n.parent);else{b=e.createIdentifier(p);g.replaceNode(o.file,n,b)}}}var L=g.getChanges(),C=n.getSourceFile().fileName,A=e.getRenameLocation(L,C,p,!0);return{renameFilename:C,renameLocation:A,edits:L}}(e.isExpression(c)?c:c.statements[0].expression,o[r],l[r],n.facts,t)}(r,n,o)}e.Debug.fail(\"Unrecognized action name\")}function l(n,t){var i=t.length;if(0===i)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractEmpty)]};var o=e.getParentNodeInSpan(e.getTokenAtPosition(n,t.start),n,t),s=e.getParentNodeInSpan(e.findTokenOnLeftOfPosition(n,e.textSpanEnd(t)),n,t),c=[],l=a.None;if(!o||!s)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};if(o.parent!==s.parent)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};if(o!==s){if(!y(o.parent))return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};for(var d=[],p=0,m=o.parent.statements;p<m.length;p++){var f=m[p];if(f===o||d.length){var _=h(f);if(_)return{errors:_};d.push(f)}if(f===s)break}return d.length?{targetRange:{range:d,facts:l,declarations:c}}:{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]}}if(e.isJSDoc(o))return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractJSDoc)]};if(e.isReturnStatement(o)&&!o.expression)return{errors:[e.createFileDiagnostic(n,t.start,i,r.cannotExtractRange)]};var g=function(n){if(e.isReturnStatement(n)){if(n.expression)return n.expression}else if(e.isVariableStatement(n)){for(var t=0,r=void 0,a=0,i=n.declarationList.declarations;a<i.length;a++){var o=i[a];o.initializer&&(t++,r=o.initializer)}if(1===t)return r}else if(e.isVariableDeclaration(n)&&n.initializer)return n.initializer;return n}(o),v=function(n){if(e.isIdentifier(e.isExpressionStatement(n)?n.expression:n))return[e.createDiagnosticForNode(n,r.cannotExtractIdentifier)];return}(g)||h(g);return v?{errors:v}:{targetRange:{range:u(g),facts:l,declarations:c}};function h(n){var i;if(function(e){e[e.None=0]=\"None\",e[e.Break=1]=\"Break\",e[e.Continue=2]=\"Continue\",e[e.Return=4]=\"Return\"}(i||(i={})),e.Debug.assert(n.pos<=n.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)\"),e.Debug.assert(!e.positionIsSynthesized(n.pos),\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)\"),!(e.isStatement(n)||e.isExpressionNode(n)&&function(e){var n=e.parent;switch(n.kind){case 282:return!1}switch(e.kind){case 10:return 253!==n.kind&&257!==n.kind;case 212:case 188:case 190:return!1;case 75:return 190!==n.kind&&257!==n.kind&&261!==n.kind}return!0}(n)))return[e.createDiagnosticForNode(n,r.statementOrExpressionExpected)];if(8388608&n.flags)return[e.createDiagnosticForNode(n,r.cannotExtractAmbientBlock)];var o,s=e.getContainingClass(n);s&&function(n,t){for(var r=n;r!==t;){if(158===r.kind){e.hasModifier(r,32)&&(l|=a.InStaticRegion);break}if(155===r.kind){161===e.getContainingFunction(r).kind&&(l|=a.InStaticRegion);break}160===r.kind&&e.hasModifier(r,32)&&(l|=a.InStaticRegion),r=r.parent}}(n,s);var u,d=4;return function n(i){if(o)return!0;if(e.isDeclaration(i)){var s=241===i.kind?i.parent.parent:i;if(e.hasModifier(s,1))return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractExportedEntity)),!0;c.push(i.symbol)}switch(i.kind){case 253:return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractImport)),!0;case 101:if(195===i.parent.kind){var p=e.getContainingClass(i);if(p.pos<t.start||p.end>=t.start+t.length)return(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractSuper)),!0}else l|=a.UsesThis}if(e.isFunctionLikeDeclaration(i)||e.isClassLike(i)){switch(i.kind){case 243:case 244:e.isSourceFile(i.parent)&&void 0===i.parent.externalModuleIndicator&&(o||(o=[])).push(e.createDiagnosticForNode(i,r.functionWillNotBeVisibleInTheNewScope))}return!1}var m=d;switch(i.kind){case 226:case 239:d=0;break;case 222:i.parent&&239===i.parent.kind&&i.parent.finallyBlock===i&&(d=4);break;case 275:d|=1;break;default:e.isIterationStatement(i,!1)&&(d|=3)}switch(i.kind){case 182:case 103:l|=a.UsesThis;break;case 237:var f=i.label;(u||(u=[])).push(f.escapedText),e.forEachChild(i,n),u.pop();break;case 233:case 232:(f=i.label)?e.contains(u,f.escapedText)||(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):d&(233===i.kind?1:2)||(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break;case 205:l|=a.IsAsyncFunction;break;case 211:l|=a.IsGenerator;break;case 234:4&d?l|=a.HasReturn:(o||(o=[])).push(e.createDiagnosticForNode(i,r.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(i,n)}d=m}(n),o}}function u(n){return e.isStatement(n)?[n]:e.isExpressionNode(n)?e.isExpressionStatement(n.parent)?[n.parent]:n:void 0}function d(n){return e.isFunctionLikeDeclaration(n)||e.isSourceFile(n)||e.isModuleBlock(n)||e.isClassLike(n)}function p(n,t){var i=t.file,o=function(n){var t=g(n.range)?e.first(n.range):n.range;if(n.facts&a.UsesThis){var r=e.getContainingClass(t);if(r){var i=e.findAncestor(t,e.isFunctionLikeDeclaration);return i?[i,r]:[r]}}for(var o=[];;)if(155===(t=t.parent).kind&&(t=e.findAncestor(t,(function(n){return e.isFunctionLikeDeclaration(n)})).parent),d(t)&&(o.push(t),288===t.kind))return o}(n);return{scopes:o,readsAndWrites:function(n,t,i,o,s,c){var l,u,d=e.createMap(),p=[],m=[],f=[],_=[],y=[],v=e.createMap(),h=[],b=g(n.range)?1===n.range.length&&e.isExpressionStatement(n.range[0])?n.range[0].expression:void 0:n.range;if(void 0===b){var E=n.range,T=e.first(E).getStart(),S=e.last(E).end;u=e.createFileDiagnostic(o,T,S-T,r.expressionExpected)}else 147456&s.getTypeAtLocation(b).flags&&(u=e.createDiagnosticForNode(b,r.uselessConstantType));for(var x=0,L=t;x<L.length;x++){var C=L[x];p.push({usages:e.createMap(),typeParameterUsages:e.createMap(),substitutions:e.createMap()}),m.push(e.createMap()),f.push(e.isFunctionLikeDeclaration(C)&&243!==C.kind?[e.createDiagnosticForNode(C,r.cannotExtractToOtherFunctionLike)]:[]);var A=[];u&&A.push(u),e.isClassLike(C)&&e.isInJSFile(C)&&A.push(e.createDiagnosticForNode(C,r.cannotExtractToJSClass)),e.isArrowFunction(C)&&!e.isBlock(C.body)&&A.push(e.createDiagnosticForNode(C,r.cannotExtractToExpressionArrowFunction)),_.push(A)}var D=e.createMap(),k=g(n.range)?e.createBlock(n.range):n.range,N=g(n.range)?e.first(n.range):n.range,I=(M=N,!!e.findAncestor(M,(function(n){return e.isDeclarationWithTypeParameters(n)&&0!==e.getEffectiveTypeParameterDeclarations(n).length})));var M;if(function c(l,u){void 0===u&&(u=1);if(I){K(s.getTypeAtLocation(l))}e.isDeclaration(l)&&l.symbol&&y.push(l);if(e.isAssignmentExpression(l))c(l.left,2),c(l.right);else if(e.isUnaryExpressionWithWrite(l))c(l.operand,2);else if(e.isPropertyAccessExpression(l)||e.isElementAccessExpression(l))e.forEachChild(l,c);else if(e.isIdentifier(l)){if(!l.parent)return;if(e.isQualifiedName(l.parent)&&l!==l.parent.left)return;if(e.isPropertyAccessExpression(l.parent)&&l!==l.parent.expression)return;!function(c,l,u){var d=function(c,l,u){var d=H(c);if(!d)return;var g=e.getSymbolId(d).toString(),y=D.get(g);if(y&&y>=l)return g;if(D.set(g,l),y){for(var v=0,h=p;v<h.length;v++){var b=h[v];b.usages.get(c.text)&&b.usages.set(c.text,{usage:l,symbol:d,node:c})}return g}var E=d.getDeclarations(),T=E&&e.find(E,(function(e){return e.getSourceFile()===o}));if(!T)return;if(e.rangeContainsStartEnd(i,T.getStart(),T.end))return;if(n.facts&a.IsGenerator&&2===l){for(var S=e.createDiagnosticForNode(c,r.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators),x=0,L=f;x<L.length;x++){L[x].push(S)}for(var C=0,A=_;C<A.length;C++){A[C].push(S)}}for(var k=0;k<t.length;k++){var N=t[k];if(s.resolveName(d.name,N,d.flags,!1)!==d&&!m[k].has(g)){var I=W(d.exportSymbol||d,N,u);if(I)m[k].set(g,I);else if(u){if(!(262144&d.flags)){S=e.createDiagnosticForNode(c,r.typeWillNotBeVisibleInTheNewScope);f[k].push(S),_[k].push(S)}}else p[k].usages.set(c.text,{usage:l,symbol:d,node:c})}}return g}(c,l,u);if(d)for(var g=0;g<t.length;g++){var y=m[g].get(d);y&&p[g].substitutions.set(e.getNodeId(c).toString(),y)}}(l,u,e.isPartOfTypeNode(l))}else e.forEachChild(l,c)}(k),I&&!g(n.range)){K(s.getContextualType(n.range))}if(d.size>0){for(var O=e.createMap(),R=0,P=N;void 0!==P&&R<t.length;P=P.parent)if(P===t[R]&&(O.forEach((function(e,n){p[R].typeParameterUsages.set(n,e)})),R++),e.isDeclarationWithTypeParameters(P))for(var w=0,F=e.getEffectiveTypeParameterDeclarations(P);w<F.length;w++){var G=F[w],B=s.getTypeAtLocation(G);d.has(B.id.toString())&&O.set(B.id.toString(),B)}e.Debug.assert(R===t.length,\"Should have iterated all scopes\")}if(y.length){var V=e.isBlockScope(t[0],t[0].parent)?t[0]:e.getEnclosingBlockScopeContainer(t[0]);e.forEachChild(V,(function t(r){if(r===n.range||g(n.range)&&n.range.indexOf(r)>=0)return;var a=e.isIdentifier(r)?H(r):s.getSymbolAtLocation(r);if(a){var i=e.find(y,(function(e){return e.symbol===a}));if(i)if(e.isVariableDeclaration(i)){var o=i.symbol.id.toString();v.has(o)||(h.push(i),v.set(o,!0))}else l=l||i}e.forEachChild(r,t)}))}for(var U=function(t){var a=p[t];if(t>0&&(a.usages.size>0||a.typeParameterUsages.size>0)){var i=g(n.range)?n.range[0]:n.range;_[t].push(e.createDiagnosticForNode(i,r.cannotAccessVariablesFromNestedScopes))}var o,s=!1;if(p[t].usages.forEach((function(n){2===n.usage&&(s=!0,106500&n.symbol.flags&&n.symbol.valueDeclaration&&e.hasModifier(n.symbol.valueDeclaration,64)&&(o=n.symbol.valueDeclaration))})),e.Debug.assert(g(n.range)||0===h.length,\"No variable declarations expected if something was extracted\"),s&&!g(n.range)){var c=e.createDiagnosticForNode(n.range,r.cannotWriteInExpression);f[t].push(c),_[t].push(c)}else if(o&&t>0){c=e.createDiagnosticForNode(o,r.cannotExtractReadonlyPropertyInitializerOutsideConstructor);f[t].push(c),_[t].push(c)}else if(l){c=e.createDiagnosticForNode(l,r.cannotExtractExportedEntity);f[t].push(c),_[t].push(c)}},j=0;j<t.length;j++)U(j);return{target:k,usagesPerScope:p,functionErrorsPerScope:f,constantErrorsPerScope:_,exposedVariableDeclarations:h};function K(e){for(var n=0,t=s.getSymbolWalker((function(){return c.throwIfCancellationRequested(),!0})).walkType(e).visitedTypes;n<t.length;n++){var r=t[n];r.isTypeParameter()&&d.set(r.id.toString(),r)}}function H(n){return n.parent&&e.isShorthandPropertyAssignment(n.parent)&&n.parent.name===n?s.getShorthandAssignmentValueSymbol(n.parent):s.getSymbolAtLocation(n)}function W(n,t,r){if(n){var a=n.getDeclarations();if(a&&a.some((function(e){return e.parent===t})))return e.createIdentifier(n.name);var i=W(n.parent,t,r);if(void 0!==i)return r?e.createQualifiedName(i,e.createIdentifier(n.name)):e.createPropertyAccess(i,n.name)}}}(n,o,function(n,t){return g(n.range)?{pos:e.first(n.range).getStart(t),end:e.last(n.range).getEnd()}:n.range}(n,i),i,t.program.getTypeChecker(),t.cancellationToken)}}function m(e){var n,t=e.symbol;if(t&&t.declarations)for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];(void 0===n||i.pos<n.pos)&&(n=i)}return n}function f(n,t){var r=n.type,a=n.declaration,i=t.type,o=t.declaration;return e.compareProperties(a,o,\"pos\",e.compareValues)||e.compareStringsCaseSensitive(r.symbol?r.symbol.getName():\"\",i.symbol?i.symbol.getName():\"\")||e.compareValues(r.id,i.id)}function _(n,t){var r=e.map(n,(function(n){return e.createShorthandPropertyAssignment(n.symbol.name)})),a=e.map(t,(function(n){return e.createShorthandPropertyAssignment(n.symbol.name)}));return void 0===r?a:void 0===a?r:r.concat(a)}function g(n){return e.isArray(n)}function y(e){switch(e.kind){case 222:case 288:case 249:case 275:return!0;default:return!1}}n.registerRefactor(\"Extract Symbol\",{getAvailableActions:s,getEditsForAction:c}),t.getAvailableActions=s,t.getEditsForAction=c,function(n){function t(n){return{message:n,code:0,category:e.DiagnosticCategory.Message,key:n}}n.cannotExtractRange=t(\"Cannot extract range.\"),n.cannotExtractImport=t(\"Cannot extract import statement.\"),n.cannotExtractSuper=t(\"Cannot extract super call.\"),n.cannotExtractJSDoc=t(\"Cannot extract JSDoc.\"),n.cannotExtractEmpty=t(\"Cannot extract empty range.\"),n.expressionExpected=t(\"expression expected.\"),n.uselessConstantType=t(\"No reason to extract constant of type.\"),n.statementOrExpressionExpected=t(\"Statement or expression expected.\"),n.cannotExtractRangeContainingConditionalBreakOrContinueStatements=t(\"Cannot extract range containing conditional break or continue statements.\"),n.cannotExtractRangeContainingConditionalReturnStatement=t(\"Cannot extract range containing conditional return statement.\"),n.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange=t(\"Cannot extract range containing labeled break or continue with target outside of the range.\"),n.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators=t(\"Cannot extract range containing writes to references located outside of the target range in generators.\"),n.typeWillNotBeVisibleInTheNewScope=t(\"Type will not visible in the new scope.\"),n.functionWillNotBeVisibleInTheNewScope=t(\"Function will not visible in the new scope.\"),n.cannotExtractIdentifier=t(\"Select more than a single identifier.\"),n.cannotExtractExportedEntity=t(\"Cannot extract exported declaration\"),n.cannotWriteInExpression=t(\"Cannot write back side-effects when extracting an expression\"),n.cannotExtractReadonlyPropertyInitializerOutsideConstructor=t(\"Cannot move initialization of read-only class property outside of the constructor\"),n.cannotExtractAmbientBlock=t(\"Cannot extract code from ambient contexts\"),n.cannotAccessVariablesFromNestedScopes=t(\"Cannot access variables from nested scopes\"),n.cannotExtractToOtherFunctionLike=t(\"Cannot extract method to a function-like scope that is not a function\"),n.cannotExtractToJSClass=t(\"Cannot extract constant to a class scope in JS\"),n.cannotExtractToExpressionArrowFunction=t(\"Cannot extract constant to an arrow function without a block\")}(r=t.Messages||(t.Messages={})),function(e){e[e.None=0]=\"None\",e[e.HasReturn=1]=\"HasReturn\",e[e.IsGenerator=2]=\"IsGenerator\",e[e.IsAsyncFunction=4]=\"IsAsyncFunction\",e[e.UsesThis=8]=\"UsesThis\",e[e.InStaticRegion=16]=\"InStaticRegion\"}(a||(a={})),t.getRangeToExtract=l,function(e){e[e.Module=0]=\"Module\",e[e.Global=1]=\"Global\"}(i||(i={})),function(e){e[e.Read=1]=\"Read\",e[e.Write=2]=\"Write\"}(o||(o={}))}(n.extractSymbol||(n.extractSymbol={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=n.file,a=n.startPosition,i=e.isSourceFileJS(t),o=e.getTokenAtPosition(t,a),s=e.createTextRangeFromSpan(e.getRefactorContextSpan(n)),c=e.findAncestor(o,(function(e){return e.parent&&r(s,e,t)&&!r(s,e.parent,t)}));if(c&&e.isTypeNode(c)){var l=n.program.getTypeChecker(),u=e.Debug.assertDefined(e.findAncestor(c,e.isStatement),\"Should find a statement\"),d=function(n,t,a,i){var o=[];return function s(c){if(e.isTypeReferenceNode(c)){if(e.isIdentifier(c.typeName))if(p=n.resolveName(c.typeName.text,c.typeName,262144,!0)){var l=e.cast(e.first(p.declarations),e.isTypeParameterDeclaration);r(a,l,i)&&!r(t,l,i)&&o.push(l)}}else if(e.isInferTypeNode(c)){var u=e.findAncestor(c,(function(n){return e.isConditionalTypeNode(n)&&r(n.extendsType,c,i)}));if(!u||!r(t,u,i))return!0}else if(e.isTypePredicateNode(c)||e.isThisTypeNode(c)){var d=e.findAncestor(c.parent,e.isFunctionLike);if(d&&d.type&&r(d.type,c,i)&&!r(t,d,i))return!0}else if(e.isTypeQueryNode(c)){var p;if(e.isIdentifier(c.exprName)){if((p=n.resolveName(c.exprName.text,c.exprName,111551,!1))&&r(a,p.valueDeclaration,i)&&!r(t,p.valueDeclaration,i))return!0}else if(e.isThisIdentifier(c.exprName.left)&&!r(t,c.parent,i))return!0}return e.forEachChild(c,s)}(t)?void 0:o}(l,c,u,t);if(d)return{isJS:i,selection:c,firstStatement:u,typeParameters:d,typeElements:function n(t,r){if(!r)return;if(e.isIntersectionTypeNode(r)){for(var a=[],i=e.createMap(),o=0,s=r.types;o<s.length;o++){var c=s[o],l=n(t,c);if(!l||!l.every((function(n){return n.name&&e.addToSeen(i,e.getNameFromPropertyName(n.name))})))return;e.addRange(a,l)}return a}if(e.isParenthesizedTypeNode(r))return n(t,r.type);if(e.isTypeLiteralNode(r))return r.members;return}(l,c)}}}function r(n,t,r){return e.rangeContainsStartEnd(n,e.skipTrivia(r.text,t.pos),t.end)}n.registerRefactor(\"Extract type\",{getAvailableActions:function(n){var r=t(n);return r?[{name:\"Extract type\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:r.isJS?[{name:\"Extract to typedef\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef)}]:e.append([{name:\"Extract to type alias\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias)}],r.typeElements&&{name:\"Extract to interface\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface)})}]:e.emptyArray},getEditsForAction:function(n,r){var a=n.file,i=e.Debug.assertDefined(t(n),\"Expected to find a range to extract\"),o=e.getUniqueName(\"NewType\",a),s=e.textChanges.ChangeTracker.with(n,(function(n){switch(r){case\"Extract to type alias\":return e.Debug.assert(!i.isJS,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=e.createTypeAliasDeclaration(void 0,void 0,r,s.map((function(n){return e.updateTypeParameterDeclaration(n,n.name,n.constraint,void 0)})),o);n.insertNodeBefore(t,i,c,!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);case\"Extract to typedef\":return e.Debug.assert(i.isJS,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=e.createNode(315);c.tagName=e.createIdentifier(\"typedef\"),c.fullName=e.createIdentifier(r),c.name=c.fullName,c.typeExpression=e.createJSDocTypeExpression(o);var l=[];e.forEach(s,(function(n){var t=e.getEffectiveConstraintOfTypeParameter(n),r=e.createNode(314);r.tagName=e.createIdentifier(\"template\"),r.constraint=t&&e.cast(t,e.isJSDocTypeExpression);var a=e.createNode(154);a.name=n.name,r.typeParameters=e.createNodeArray([a]),l.push(r)})),n.insertNodeBefore(t,i,e.createJSDocComment(void 0,e.createNodeArray(e.concatenate(l,[c]))),!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);case\"Extract to interface\":return e.Debug.assert(!i.isJS&&!!i.typeElements,\"Invalid actionName/JS combo\"),function(n,t,r,a){var i=a.firstStatement,o=a.selection,s=a.typeParameters,c=a.typeElements,l=e.createInterfaceDeclaration(void 0,void 0,r,s,void 0,c);n.insertNodeBefore(t,i,l,!0),n.replaceNode(t,o,e.createTypeReferenceNode(r,s.map((function(n){return e.createTypeReferenceNode(n.name,void 0)}))))}(n,a,o,i);default:e.Debug.fail(\"Unexpected action name\")}})),c=a.fileName;return{edits:s,renameFilename:c,renameLocation:e.getRenameLocation(s,c,o,!1)}}})}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Generate 'get' and 'set' accessors\",a=e.Diagnostics.Generate_get_and_set_accessors.message;function i(n){return e.isParameterPropertyDeclaration(n,n.parent)||e.isPropertyDeclaration(n)||e.isPropertyAssignment(n)}function o(n,t){return e.isIdentifier(t)?e.createIdentifier(n):e.createLiteral(n)}function s(n,t,r){var a=t?r.name:e.createThis();return e.isIdentifier(n)?e.createPropertyAccess(a,n):e.createElementAccess(a,e.createLiteral(n))}function c(n,t,r){var a=e.append(n?void 0:[e.createToken(r)],t?e.createToken(119):void 0);return a&&e.createNodeArray(a)}function l(n){var t=n.file,r=n.startPosition,a=n.endPosition,s=e.getTokenAtPosition(t,r),c=e.findAncestor(s.parent,i);if(c&&e.nodeOverlapsWithStartEnd(c.name,t,r,a)&&function(n){return e.isIdentifier(n)||e.isStringLiteral(n)}(c.name)&&124==(124|e.getModifierFlags(c))){var l=c.name.text,u=function(e){return 95===e.charCodeAt(0)}(l),d=o(u?l:e.getUniqueName(\"_\"+l,t),c.name),p=o(u?e.getUniqueName(l.substring(1),t):l,c.name);return{isStatic:e.hasStaticModifier(c),isReadonly:e.hasReadonlyModifier(c),type:e.getTypeAnnotationNode(c),container:155===c.kind?c.parent.parent:c.parent,originalName:c.name.text,declaration:c,fieldName:d,accessorName:p,renameAccessor:u}}}function u(n,t,r,a,i){e.isParameterPropertyDeclaration(a,a.parent)?n.insertNodeAtClassStart(t,i,r):e.isPropertyAssignment(a)?n.insertNodeAfterComma(t,a,r):n.insertNodeAfter(t,a,r)}n.registerRefactor(r,{getEditsForAction:function(n,t){var r=n.file,a=l(n);if(!a)return;var i=e.isSourceFileJS(r),o=e.textChanges.ChangeTracker.fromContext(n),d=a.isStatic,p=a.isReadonly,m=a.fieldName,f=a.accessorName,_=a.originalName,g=a.type,y=a.container,v=a.declaration,h=a.renameAccessor;e.suppressLeadingAndTrailingTrivia(m),e.suppressLeadingAndTrailingTrivia(v),e.suppressLeadingAndTrailingTrivia(y);var b=e.isClassLike(y),E=-65&e.getModifierFlags(v),T=b?!E||8&E?c(i,d,118):e.createNodeArray(e.createModifiersFromModifierFlags(E)):void 0,S=b?c(i,d,116):void 0;!function(n,t,r,a,i){e.isPropertyDeclaration(r)?function(n,t,r,a,i){var o=e.updateProperty(r,r.decorators,i,a,r.questionToken||r.exclamationToken,r.type,r.initializer);n.replaceNode(t,r,o)}(n,t,r,a,i):e.isPropertyAssignment(r)?function(n,t,r,a){var i=e.updatePropertyAssignment(r,a,r.initializer);n.replacePropertyAssignment(t,r,i)}(n,t,r,a):n.replaceNode(t,r,e.updateParameter(r,r.decorators,i,r.dotDotDotToken,e.cast(a,e.isIdentifier),r.questionToken,r.type,r.initializer))}(o,r,v,m,S);var x=function(n,t,r,a,i,o){return e.createGetAccessor(void 0,a,t,void 0,r,e.createBlock([e.createReturn(s(n,i,o))],!0))}(m,f,g,T,d,y);if(e.suppressLeadingAndTrailingTrivia(x),u(o,r,x,v,y),p){var L=e.getFirstConstructorWithBody(y);L&&function(n,t,r,a,i){if(!r.body)return;r.body.forEachChild((function r(o){e.isElementAccessExpression(o)&&103===o.expression.kind&&e.isStringLiteral(o.argumentExpression)&&o.argumentExpression.text===i&&e.isWriteAccess(o)&&n.replaceNode(t,o.argumentExpression,e.createStringLiteral(a)),e.isPropertyAccessExpression(o)&&103===o.expression.kind&&o.name.text===i&&e.isWriteAccess(o)&&n.replaceNode(t,o.name,e.createIdentifier(a)),e.isFunctionLike(o)||e.isClassLike(o)||o.forEachChild(r)}))}(o,r,L,m.text,_)}else{var C=function(n,t,r,a,i,o){return e.createSetAccessor(void 0,a,t,[e.createParameter(void 0,void 0,void 0,e.createIdentifier(\"value\"),void 0,r)],e.createBlock([e.createStatement(e.createAssignment(s(n,i,o),e.createIdentifier(\"value\")))],!0))}(m,f,g,T,d,y);e.suppressLeadingAndTrailingTrivia(C),u(o,r,C,v,y)}var A=o.getChanges(),D=r.fileName,k=h?f:m,N=(e.isIdentifier(k)?0:-1)+e.getRenameLocation(A,D,k.text,e.isParameter(v));return{renameFilename:D,renameLocation:N,edits:A}},getAvailableActions:function(n){return l(n)?[{name:r,description:a,actions:[{name:r,description:a}]}]:e.emptyArray}})}(n.generateGetAccessorAndSetAccessor||(n.generateGetAccessorAndSetAccessor={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){function t(n){var t=function(n){var t=n.file,r=e.createTextRangeFromSpan(e.getRefactorContextSpan(n)),a=t.statements,i=e.findIndex(a,(function(e){return e.end>r.pos}));if(-1!==i){var o=a[i];if(e.isNamedDeclaration(o)&&o.name&&e.rangeContainsRange(o.name,r))return{toMove:[a[i]],afterLast:a[i+1]};if(!(r.pos>o.getStart(t))){var s=e.findIndex(a,(function(e){return e.end>r.end}),i);if(-1===s||!(0===s||a[s].getStart(t)<r.end))return{toMove:a.slice(i,-1===s?a.length:s),afterLast:-1===s?void 0:a[s]}}}}(n);if(void 0!==t){var r=[],a=[],i=t.toMove,o=t.afterLast;return e.getRangesWhere(i,(function(n){return!function(n){switch(n.kind){case 253:return!0;case 252:return!e.hasModifier(n,1);case 224:return n.declarationList.declarations.every((function(n){return!!n.initializer&&e.isRequireCall(n.initializer,!0)}));default:return!1}}(n)}),(function(e,n){for(var t=e;t<n;t++)r.push(i[t]);a.push({first:i[e],afterLast:o})})),0===r.length?void 0:{all:r,ranges:a}}}function r(e,n,t){for(var r=0,a=n;r<a.length;r++){var i=a[r],o=i.first,s=i.afterLast;t.deleteNodeRangeExcludingEnd(e,o,s)}}function a(e){return 253===e.kind?e.moduleSpecifier:252===e.kind?e.moduleReference.expression:e.initializer.arguments[0]}function i(n,t){if(e.isImportDeclaration(n))e.isStringLiteral(n.moduleSpecifier)&&t(n);else if(e.isImportEqualsDeclaration(n))e.isExternalModuleReference(n.moduleReference)&&e.isStringLiteralLike(n.moduleReference.expression)&&t(n);else if(e.isVariableStatement(n))for(var r=0,a=n.declarationList.declarations;r<a.length;r++){var i=a[r];i.initializer&&e.isRequireCall(i.initializer,!0)&&t(i)}}function o(n,t,r,a,i){if(r=e.ensurePathIsNonModuleName(r),a){var o=t.map((function(n){return e.createImportSpecifier(void 0,e.createIdentifier(n))}));return e.makeImportIfNecessary(n,o,r,i)}e.Debug.assert(!n,\"No default import should exist\");var l=t.map((function(n){return e.createBindingElement(void 0,void 0,n)}));return l.length?s(e.createObjectBindingPattern(l),void 0,c(e.createLiteral(r))):void 0}function s(n,t,r,a){return void 0===a&&(a=2),e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(n,t,r)],a))}function c(n){return e.createCall(e.createIdentifier(\"require\"),void 0,[n])}function l(n,t,r,a){switch(t.kind){case 253:!function(n,t,r,a){if(!t.importClause)return;var i=t.importClause,o=i.name,s=i.namedBindings,c=!o||a(o),l=!s||(255===s.kind?a(s.name):0!==s.elements.length&&s.elements.every((function(e){return a(e.name)})));if(c&&l)r.delete(n,t);else if(o&&c&&r.delete(n,o),s)if(l)r.replaceNode(n,t.importClause,e.updateImportClause(t.importClause,o,void 0));else if(256===s.kind)for(var u=0,d=s.elements;u<d.length;u++){var p=d[u];a(p.name)&&r.delete(n,p)}}(n,t,r,a);break;case 252:a(t.name)&&r.delete(n,t);break;case 241:!function(n,t,r,a){var i=t.name;switch(i.kind){case 75:a(i)&&r.delete(n,i);break;case 189:break;case 188:if(i.elements.every((function(n){return e.isIdentifier(n.name)&&a(n.name)})))r.delete(n,e.isVariableDeclarationList(t.parent)&&1===t.parent.declarations.length?t.parent.parent:t);else for(var o=0,s=i.elements;o<s.length;o++){var c=s[o];e.isIdentifier(c.name)&&a(c.name)&&r.delete(n,c.name)}}}(n,t,r,a);break;default:e.Debug.assertNever(t,\"Unexpected import decl kind \"+t.kind)}}function u(n){switch(n.kind){case 252:case 257:case 254:return!0;case 241:return d(n);case 190:return e.isVariableDeclaration(n.parent.parent)&&d(n.parent.parent);default:return!1}}function d(n){return e.isSourceFile(n.parent.parent.parent)&&!!n.initializer&&e.isRequireCall(n.initializer,!0)}function p(n,t,r){switch(n.kind){case 253:var a=n.importClause;if(!a)return;var i=a.name&&r(a.name)?a.name:void 0,o=a.namedBindings&&function(n,t){if(255===n.kind)return t(n.name)?n:void 0;var r=n.elements.filter((function(e){return t(e.name)}));return r.length?e.createNamedImports(r):void 0}(a.namedBindings,r);return i||o?e.createImportDeclaration(void 0,void 0,e.createImportClause(i,o),t):void 0;case 252:return r(n.name)?n:void 0;case 241:var l=function(n,t){switch(n.kind){case 75:return t(n)?n:void 0;case 189:return n;case 188:var r=n.elements.filter((function(n){return n.propertyName||!e.isIdentifier(n.name)||t(n.name)}));return r.length?e.createObjectBindingPattern(r):void 0}}(n.name,r);return l?s(l,n.type,c(t),n.parent.flags):void 0;default:return e.Debug.assertNever(n,\"Unexpected import kind \"+n.kind)}}function m(n,t,r){n.forEachChild((function n(a){if(e.isIdentifier(a)&&!e.isDeclarationName(a)){var i=t.getSymbolAtLocation(a);i&&r(i)}else a.forEachChild(n)}))}n.registerRefactor(\"Move to a new file\",{getAvailableActions:function(n){if(!n.preferences.allowTextChangesInNewFiles||void 0===t(n))return e.emptyArray;var r=e.getLocaleSpecificMessage(e.Diagnostics.Move_to_a_new_file);return[{name:\"Move to a new file\",description:r,actions:[{name:\"Move to a new file\",description:r}]}]},getEditsForAction:function(n,s){e.Debug.assert(\"Move to a new file\"===s,\"Wrong refactor invoked\");var d=e.Debug.assertDefined(t(n));return{edits:e.textChanges.ChangeTracker.with(n,(function(t){return s=n.file,x=n.program,L=d,C=t,A=n.host,D=n.preferences,k=x.getTypeChecker(),N=function(n,t,r){var a=new f,i=new f,o=new f,s=function(n){if(void 0!==n){var t=r.getJsxNamespace(n),a=r.resolveName(t,n,1920,!0);return a&&e.some(a.declarations,u)?a:void 0}}(e.find(t,(function(e){return!!(2&e.transformFlags)})));s&&i.add(s);for(var c=0,l=t;c<l.length;c++)y(E=l[c],(function(n){a.add(e.Debug.assertDefined(e.isExpressionStatement(n)?r.getSymbolAtLocation(n.expression.left):n.symbol,\"Need a symbol here\"))}));for(var d=0,p=t;d<p.length;d++)m(E=p[d],r,(function(t){var r;if(t.declarations)for(var s=0,c=t.declarations;s<c.length;s++){var l=c[s];u(l)?i.add(t):_(l)&&(r=l,(e.isVariableDeclaration(r)?r.parent.parent.parent:r.parent)===n)&&!a.has(t)&&o.add(t)}}));for(var g=i.clone(),v=new f,h=0,b=n.statements;h<b.length;h++){var E=b[h];e.contains(t,E)||(s&&2&E.transformFlags&&g.delete(s),m(E,r,(function(e){a.has(e)&&v.add(e),g.delete(e)})))}return{movedSymbols:a,newFileImportsFromOldFile:o,oldFileImportsFromNewFile:v,oldImportsNeededByNewFile:i,unusedImportsFromOldFile:g}}(s,L.all,k),I=e.getDirectoryPath(s.fileName),M=e.extensionFromPath(s.fileName),O=function(n,t,r,a){for(var i=n,o=1;;o++){var s=e.combinePaths(r,i+t);if(!a.fileExists(s))return i;i=n+\".\"+o}}(N.movedSymbols.forEachEntry(e.symbolNameNoDefault)||\"newFile\",M,I,A),R=O+M,C.createNewFile(s,e.combinePaths(I,R),function(n,t,s,u,d,m,f){var x=d.getTypeChecker();if(!n.externalModuleIndicator&&!n.commonJsModuleIndicator)return r(n,u.ranges,s),u.all;var L=!!n.externalModuleIndicator,C=e.getQuotePreference(n,f),A=function(n,t,r,a){var i,s=[];return n.forEach((function(n){\"default\"===n.escapedName?i=e.createIdentifier(e.symbolNameNoDefault(n)):s.push(n.name)})),o(i,s,t,r,a)}(t.oldFileImportsFromNewFile,m,L,C);return A&&e.insertImport(s,n,A),function(n,t,r,a,o){for(var s=0,c=n.statements;s<c.length;s++){var u=c[s];e.contains(t,u)||i(u,(function(e){return l(n,e,r,(function(e){return a.has(o.getSymbolAtLocation(e))}))}))}}(n,u.all,s,t.unusedImportsFromOldFile,x),r(n,u.ranges,s),function(n,t,r,o,s){for(var u=t.getTypeChecker(),d=function(t){if(t===r)return\"continue\";for(var d=function(d){i(d,(function(i){if(u.getSymbolAtLocation(a(i))===r.symbol){var m=function(n){var t=e.isBindingElement(n.parent)?e.getPropertySymbolFromBindingElement(u,n.parent):e.skipAlias(u.getSymbolAtLocation(n),u);return!!t&&o.has(t)};l(t,i,n,m);var f=e.combinePaths(e.getDirectoryPath(a(i).text),s),_=p(i,e.createLiteral(f),m);_&&n.insertNodeAfter(t,d,_);var g=function(n){switch(n.kind){case 253:return n.importClause&&n.importClause.namedBindings&&255===n.importClause.namedBindings.kind?n.importClause.namedBindings.name:void 0;case 252:return n.name;case 241:return e.tryCast(n.name,e.isIdentifier);default:return e.Debug.assertNever(n,\"Unexpected node kind \"+n.kind)}}(i);g&&function(n,t,r,a,i,o,s,l){var u=e.codefix.moduleSpecifierToValidIdentifier(i,99),d=!1,p=[];if(e.FindAllReferences.Core.eachSymbolReferenceInFile(s,r,t,(function(n){e.isPropertyAccessExpression(n.parent)&&(d=d||!!r.resolveName(u,n,67108863,!0),a.has(r.getSymbolAtLocation(n.parent.name))&&p.push(n))})),p.length){for(var m=d?e.getUniqueName(u,t):u,f=0,_=p;f<_.length;f++){var g=_[f];n.replaceNode(t,g,e.createIdentifier(m))}n.insertNodeAfter(t,l,function(n,t,r){var a=e.createIdentifier(t),i=e.createLiteral(r);switch(n.kind){case 253:return e.createImportDeclaration(void 0,void 0,e.createImportClause(void 0,e.createNamespaceImport(a)),i);case 252:return e.createImportEqualsDeclaration(void 0,void 0,a,e.createExternalModuleReference(i));case 241:return e.createVariableDeclaration(a,void 0,c(i));default:return e.Debug.assertNever(n,\"Unexpected node kind \"+n.kind)}}(l,i,o))}}(n,t,u,o,s,f,g,i)}}))},m=0,f=t.statements;m<f.length;m++)d(f[m])},m=0,f=t.getSourceFiles();m<f.length;m++){var _=f[m];d(_)}}(s,d,n,t.movedSymbols,m),__spreadArrays(function(n,t,r,s,c,l,u){for(var d,m=[],f=0,g=n.statements;f<g.length;f++)i(g[f],(function(n){e.append(m,p(n,a(n),(function(e){return t.has(c.getSymbolAtLocation(e))})))}));var y=[],b=e.nodeSeenTracker();return r.forEach((function(t){for(var r=0,a=t.declarations;r<a.length;r++){var i=a[r];if(_(i)){var o=(u=i,e.isExpressionStatement(u)?u.expression.left.name:e.tryCast(u.name,e.isIdentifier));if(o){var c=v(i);b(c)&&h(n,c,s,l),e.hasModifier(i,512)?d=o:y.push(o.text)}}}var u})),e.append(m,o(d,y,e.removeFileExtension(e.getBaseFileName(n.fileName)),l,u)),m}(n,t.oldImportsNeededByNewFile,t.newFileImportsFromOldFile,s,x,L,C),function(n,t,r,a){return e.flatMap(t,(function(t){if(o=t,e.Debug.assert(e.isSourceFile(o.parent),\"Node parent should be a SourceFile\"),(g(o)||e.isVariableStatement(o))&&!b(n,t,a)&&y(t,(function(n){return r.has(e.Debug.assertDefined(n.symbol))}))){var i=function(e,n){return n?[E(e)]:function(e){return __spreadArrays([e],T(e).map(S))}(e)}(t,a);if(i)return i}var o;return t}))}(n,u.all,t.oldFileImportsFromNewFile,L))}(s,N,C,L,x,O,D)),void function(n,t,r,a,i){var o=n.getCompilerOptions().configFile;if(o){var s=e.normalizePath(e.combinePaths(r,\"..\",a)),c=e.getRelativePathFromFile(o.fileName,s,i),l=o.statements[0]&&e.tryCast(o.statements[0].expression,e.isObjectLiteralExpression),u=l&&e.find(l.properties,(function(n){return e.isPropertyAssignment(n)&&e.isStringLiteral(n.name)&&\"files\"===n.name.text}));u&&e.isArrayLiteralExpression(u.initializer)&&t.insertNodeInListAfter(o,e.last(u.initializer.elements),e.createLiteral(c),u.initializer.elements)}}(x,C,s.fileName,R,e.hostGetCanonicalFileName(A));var s,x,L,C,A,D,k,N,I,M,O,R})),renameFilename:void 0,renameLocation:void 0}}});var f=function(){function n(){this.map=e.createMap()}return n.prototype.add=function(n){this.map.set(String(e.getSymbolId(n)),n)},n.prototype.has=function(n){return this.map.has(String(e.getSymbolId(n)))},n.prototype.delete=function(n){this.map.delete(String(e.getSymbolId(n)))},n.prototype.forEach=function(e){this.map.forEach(e)},n.prototype.forEachEntry=function(n){return e.forEachEntry(this.map,n)},n.prototype.clone=function(){var t=new n;return e.copyEntries(this.map,t.map),t},n}();function _(n){return g(n)&&e.isSourceFile(n.parent)||e.isVariableDeclaration(n)&&e.isSourceFile(n.parent.parent.parent)}function g(e){switch(e.kind){case 243:case 244:case 248:case 247:case 246:case 245:case 252:return!0;default:return!1}}function y(n,t){switch(n.kind){case 243:case 244:case 248:case 247:case 246:case 245:case 252:return t(n);case 224:return e.firstDefined(n.declarationList.declarations,(function(n){return function n(t,r){switch(t.kind){case 75:return r(e.cast(t.parent,(function(n){return e.isVariableDeclaration(n)||e.isBindingElement(n)})));case 189:case 188:return e.firstDefined(t.elements,(function(t){return e.isOmittedExpression(t)?void 0:n(t.name,r)}));default:return e.Debug.assertNever(t,\"Unexpected name kind \"+t.kind)}}(n.name,t)}));case 225:var r=n.expression;return e.isBinaryExpression(r)&&1===e.getAssignmentDeclarationKind(r)?t(n):void 0}}function v(n){switch(n.kind){case 241:return n.parent.parent;case 190:return v(e.cast(n.parent.parent,(function(n){return e.isVariableDeclaration(n)||e.isBindingElement(n)})));default:return n}}function h(n,t,r,a){if(!b(n,t,a))if(a)e.isExpressionStatement(t)||r.insertExportModifier(n,t);else{var i=T(t);0!==i.length&&r.insertNodesAfter(n,t,i.map(S))}}function b(n,t,r){return r?!e.isExpressionStatement(t)&&e.hasModifier(t,1):T(t).some((function(t){return n.symbol.exports.has(e.escapeLeadingUnderscores(t))}))}function E(n){var t=e.concatenate([e.createModifier(88)],n.modifiers);switch(n.kind){case 243:return e.updateFunctionDeclaration(n,n.decorators,t,n.asteriskToken,n.name,n.typeParameters,n.parameters,n.type,n.body);case 244:return e.updateClassDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.heritageClauses,n.members);case 224:return e.updateVariableStatement(n,t,n.declarationList);case 248:return e.updateModuleDeclaration(n,n.decorators,t,n.name,n.body);case 247:return e.updateEnumDeclaration(n,n.decorators,t,n.name,n.members);case 246:return e.updateTypeAliasDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.type);case 245:return e.updateInterfaceDeclaration(n,n.decorators,t,n.name,n.typeParameters,n.heritageClauses,n.members);case 252:return e.updateImportEqualsDeclaration(n,n.decorators,t,n.name,n.moduleReference);case 225:return e.Debug.fail();default:return e.Debug.assertNever(n,\"Unexpected declaration kind \"+n.kind)}}function T(n){switch(n.kind){case 243:case 244:return[n.name.text];case 224:return e.mapDefined(n.declarationList.declarations,(function(n){return e.isIdentifier(n.name)?n.name.text:void 0}));case 248:case 247:case 246:case 245:case 252:return e.emptyArray;case 225:return e.Debug.fail(\"Can't export an ExpressionStatement\");default:return e.Debug.assertNever(n,\"Unexpected decl kind \"+n.kind)}}function S(n){return e.createExpressionStatement(e.createBinary(e.createPropertyAccess(e.createIdentifier(\"exports\"),e.createIdentifier(n)),62,e.createIdentifier(n)))}}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Add or remove braces in an arrow function\",a=e.Diagnostics.Add_or_remove_braces_in_an_arrow_function.message,i=e.Diagnostics.Add_braces_to_arrow_function.message,o=e.Diagnostics.Remove_braces_from_arrow_function.message;function s(n,t){var r=e.getTokenAtPosition(n,t),a=e.getContainingFunction(r);if(a&&e.isArrowFunction(a)&&e.rangeContainsRange(a,r)&&!e.rangeContainsRange(a.body,r)){if(e.isExpression(a.body))return{func:a,addBraces:!0,expression:a.body};if(1===a.body.statements.length){var i=e.first(a.body.statements);if(e.isReturnStatement(i))return{func:a,addBraces:!1,expression:i.expression,returnStatement:i}}}}n.registerRefactor(r,{getEditsForAction:function(n,t){var r=n.file,a=n.startPosition,i=s(r,a);if(!i)return;var o,c=i.expression,l=i.returnStatement,u=i.func;if(\"Add braces to arrow function\"===t){var d=e.createReturn(c);o=e.createBlock([d],!0),e.suppressLeadingAndTrailingTrivia(o),e.copyLeadingComments(c,d,r,3,!0)}else if(\"Remove braces from arrow function\"===t&&l){var p=c||e.createVoidZero();o=function(n){return e.isBinaryExpression(n)&&27===n.operatorToken.kind||e.isObjectLiteralExpression(n)}(p)?e.createParen(p):p,e.suppressLeadingAndTrailingTrivia(o),e.copyLeadingComments(l,o,r,3,!1)}else e.Debug.fail(\"invalid action\");var m=e.textChanges.ChangeTracker.with(n,(function(e){return e.replaceNode(r,u.body,o)}));return{renameFilename:void 0,renameLocation:void 0,edits:m}},getAvailableActions:function(n){var t=n.file,c=n.startPosition,l=s(t,c);return l?[{name:r,description:a,actions:[l.addBraces?{name:\"Add braces to arrow function\",description:i}:{name:\"Remove braces from arrow function\",description:o}]}]:e.emptyArray}})}(n.addOrRemoveBracesToArrowFunction||(n.addOrRemoveBracesToArrowFunction={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){!function(n){!function(t){var r=\"Convert parameters to destructured object\";function a(n){var t=n.node;return e.isImportSpecifier(t.parent)||e.isImportClause(t.parent)||e.isImportEqualsDeclaration(t.parent)||e.isNamespaceImport(t.parent)?t:e.isExportSpecifier(t.parent)||e.isExportAssignment(t.parent)?t:void 0}function i(n){if(e.isDeclaration(n.node.parent))return n.node}function o(n){if(n.node.parent){var t=n.node,r=t.parent;switch(r.kind){case 195:case 196:var a=e.tryCast(r,e.isCallOrNewExpression);if(a&&a.expression===t)return a;break;case 193:var i=e.tryCast(r,e.isPropertyAccessExpression);if(i&&i.parent&&i.name===t){var o=e.tryCast(i.parent,e.isCallOrNewExpression);if(o&&o.expression===i)return o}break;case 194:var s=e.tryCast(r,e.isElementAccessExpression);if(s&&s.parent&&s.argumentExpression===t){var c=e.tryCast(s.parent,e.isCallOrNewExpression);if(c&&c.expression===s)return c}}}}function s(n){if(n.node.parent){var t=n.node,r=t.parent;switch(r.kind){case 193:var a=e.tryCast(r,e.isPropertyAccessExpression);if(a&&a.expression===t)return a;break;case 194:var i=e.tryCast(r,e.isElementAccessExpression);if(i&&i.expression===t)return i}}}function c(n){var t=n.node;if(2===e.getMeaningFromLocation(t)||e.isExpressionWithTypeArgumentsInClassExtendsClause(t.parent))return t}function l(n,t,r){var a=e.getTouchingToken(n,t),i=e.getContainingFunctionDeclaration(a);if(!function(n){var t=e.findAncestor(n,e.isJSDocNode);if(t){var r=e.findAncestor(t,(function(n){return!e.isJSDocNode(n)}));return!!r&&e.isFunctionLikeDeclaration(r)}return!1}(a))return!(i&&function(n,t){if(!function(n,t){return function(e){if(m(e))return e.length-1;return e.length}(n)>=2&&e.every(n,(function(n){return function(n,t){if(e.isRestParameter(n)){var r=t.getTypeAtLocation(n);if(!t.isArrayType(r)&&!t.isTupleType(r))return!1}return!n.modifiers&&!n.decorators&&e.isIdentifier(n.name)}(n,t)}))}(n.parameters,t))return!1;switch(n.kind){case 243:return d(n)&&u(n,t);case 160:return u(n,t);case 161:return e.isClassDeclaration(n.parent)?d(n.parent)&&u(n,t):p(n.parent.parent)&&u(n,t);case 200:case 201:return p(n.parent)}return!1}(i,r)&&e.rangeContainsRange(i,a))||i.body&&e.rangeContainsRange(i.body,a)?void 0:i}function u(e,n){return!!e.body&&!n.isImplementationOfOverload(e)}function d(n){return!!n.name||!!e.findModifier(n,83)}function p(n){return e.isVariableDeclaration(n)&&e.isVarConst(n)&&e.isIdentifier(n.name)&&!n.type}function m(n){return n.length>0&&e.isThis(n[0].name)}function f(n){return m(n)&&(n=e.createNodeArray(n.slice(1),n.hasTrailingComma)),n}function _(n,t){var r=f(n.parameters),a=e.isRestParameter(e.last(r)),i=a?t.slice(0,r.length-1):t,o=e.map(i,(function(n,t){var a,i,o=y(r[t]),s=(a=o,i=n,e.isIdentifier(i)&&e.getTextOfIdentifierOrLiteral(i)===a?e.createShorthandPropertyAssignment(a):e.createPropertyAssignment(a,i));return e.suppressLeadingAndTrailingTrivia(s.name),e.isPropertyAssignment(s)&&e.suppressLeadingAndTrailingTrivia(s.initializer),g(n,s),s}));if(a&&t.length>=r.length){var s=t.slice(r.length-1),c=e.createPropertyAssignment(y(e.last(r)),e.createArrayLiteral(s));o.push(c)}return e.createObjectLiteral(o,!1)}function g(n,t){var r=n.getSourceFile();!function(e,n){for(var t=e.getFullStart(),r=e.getStart(),a=t;a<r;a++)if(10===n.charCodeAt(a))return!0;return!1}(n,r.text)?e.copyTrailingAsLeadingComments(n,t,r):e.copyLeadingComments(n,t,r),e.copyTrailingComments(n,t,r)}function y(n){return e.getTextOfIdentifierOrLiteral(n.name)}n.registerRefactor(r,{getEditsForAction:function(n,t){e.Debug.assert(t===r,\"Unexpected action name\");var u=n.file,d=n.startPosition,p=n.program,v=n.cancellationToken,h=n.host,b=l(u,d,p.getTypeChecker());if(!b||!v)return;var E=function(n,t,r){var l=function(n){switch(n.kind){case 243:return n.name?[n.name]:[e.Debug.assertDefined(e.findModifier(n,83),\"Nameless function declaration should be a default export\")];case 160:return[n.name];case 161:var t=e.Debug.assertDefined(e.findChildOfKind(n,128,n.getSourceFile()),\"Constructor declaration should have constructor keyword\");return 213===n.parent.kind?[n.parent.parent.name,t]:[t];case 201:return[n.parent.name];case 200:return n.name?[n.name,n.parent.name]:[n.parent.name];default:return e.Debug.assertNever(n,\"Unexpected function declaration kind \"+n.kind)}}(n),u=e.isConstructorDeclaration(n)?function(n){switch(n.parent.kind){case 244:var t=n.parent;return t.name?[t.name]:[e.Debug.assertDefined(e.findModifier(t,83),\"Nameless class declaration should be a default export\")];case 213:var r=n.parent,a=n.parent.parent,i=r.name;return i?[i,a.name]:[a.name]}}(n):[],d=e.deduplicate(__spreadArrays(l,u),e.equateValues),p=t.getTypeChecker(),m=function(t){for(var r={accessExpressions:[],typeUsages:[]},d={functionCalls:[],declarations:[],classReferences:r,valid:!0},p=e.map(l,f),m=e.map(u,f),_=e.isConstructorDeclaration(n),g=0,y=t;g<y.length;g++){var v=y[g];if(1===v.kind){if(e.contains(p,f(v.node))||e.isNewExpressionTarget(v.node)){if(a(v))continue;if(b=i(v)){d.declarations.push(b);continue}var h=o(v);if(h){d.functionCalls.push(h);continue}}if(_&&e.contains(m,f(v.node))){var b;if(a(v))continue;if(b=i(v)){d.declarations.push(b);continue}var E=s(v);if(E){r.accessExpressions.push(E);continue}if(e.isClassDeclaration(n.parent)){var T=c(v);if(T){r.typeUsages.push(T);continue}}}d.valid=!1}else d.valid=!1}return d}(e.flatMap(d,(function(n){return e.FindAllReferences.getReferenceEntriesForNode(-1,n,t,t.getSourceFiles(),r)})));e.every(m.declarations,(function(n){return e.contains(d,n)}))||(m.valid=!1);return m;function f(n){var t=p.getSymbolAtLocation(n);return t&&e.getSymbolTarget(t,p)}}(b,p,v);if(E.valid){return{renameFilename:void 0,renameLocation:void 0,edits:e.textChanges.ChangeTracker.with(n,(function(n){return function(n,t,r,a,i,o){var s=e.map(function(n,t,r){var a,i=t.getTypeChecker(),o=f(n.parameters),s=e.map(o,(function(n){var t=e.createBindingElement(void 0,void 0,y(n),e.isRestParameter(n)&&b(n)?e.createArrayLiteral():n.initializer);e.suppressLeadingAndTrailingTrivia(t),n.initializer&&t.initializer&&g(n.initializer,t.initializer);return t})),c=e.createObjectBindingPattern(s),l=(u=o,d=e.map(u,h),e.addEmitFlags(e.createTypeLiteralNode(d),1));var u,d;e.every(o,b)&&(a=e.createObjectLiteral());var p=e.createParameter(void 0,void 0,void 0,c,void 0,l,a);if(m(n.parameters)){var _=n.parameters[0],v=e.createParameter(void 0,void 0,void 0,_.name,void 0,_.type);return e.suppressLeadingAndTrailingTrivia(v.name),g(_.name,v.name),_.type&&(e.suppressLeadingAndTrailingTrivia(v.type),g(_.type,v.type)),e.createNodeArray([v,p])}return e.createNodeArray([p]);function h(n){var a,o,s=n.type;s||!n.initializer&&!e.isRestParameter(n)||(a=n,o=i.getTypeAtLocation(a),s=e.getTypeNodeIfAccessible(o,a,t,r));var c=e.createPropertySignature(void 0,y(n),b(n)?e.createToken(57):n.questionToken,s,void 0);return e.suppressLeadingAndTrailingTrivia(c),g(n.name,c.name),n.type&&c.type&&g(n.type,c.type),c}function b(n){if(e.isRestParameter(n)){var t=i.getTypeAtLocation(n);return!i.isTupleType(t)}return i.isOptionalParameter(n)}}(i,t,r),(function(n){return e.getSynthesizedDeepClone(n)}));a.replaceNodeRangeWithNodes(n,e.first(i.parameters),e.last(i.parameters),s,{joiner:\", \",indentation:0,leadingTriviaOption:e.textChanges.LeadingTriviaOption.IncludeAll,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include});for(var c=e.sortAndDeduplicate(o.functionCalls,(function(n,t){return e.compareValues(n.pos,t.pos)})),l=0,u=c;l<u.length;l++){var d=u[l];if(d.arguments&&d.arguments.length){var p=e.getSynthesizedDeepClone(_(i,d.arguments),!0);a.replaceNodeRange(e.getSourceFileOfNode(d),e.first(d.arguments),e.last(d.arguments),p,{leadingTriviaOption:e.textChanges.LeadingTriviaOption.IncludeAll,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Include})}}}(u,p,h,n,b,E)}))}}return{edits:[]}},getAvailableActions:function(n){var t=n.file,a=n.startPosition;if(e.isSourceFileJS(t))return e.emptyArray;if(!l(t,a,n.program.getTypeChecker()))return e.emptyArray;var i=e.getLocaleSpecificMessage(e.Diagnostics.Convert_parameters_to_destructured_object);return[{name:r,description:i,actions:[{name:r,description:i}]}]}})}(n.convertParamsToDestructuredObject||(n.convertParamsToDestructuredObject={}))}(e.refactor||(e.refactor={}))}(ts||(ts={})),function(e){function n(n,r,a,i){var c=e.isNodeKind(n)?new t(n,r,a):75===n?new s(75,r,a):new o(n,r,a);return c.parent=i,c.flags=25358336&i.flags,c}e.servicesVersion=\"0.8\";var t=function(){function t(e,n,t){this.pos=n,this.end=t,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=e}return t.prototype.assertHasRealPosition=function(n){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),n||\"Node must have a real position for this operation\")},t.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},t.prototype.getStart=function(n,t){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,n,t)},t.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},t.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},t.prototype.getWidth=function(e){return this.assertHasRealPosition(),this.getEnd()-this.getStart(e)},t.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},t.prototype.getLeadingTriviaWidth=function(e){return this.assertHasRealPosition(),this.getStart(e)-this.pos},t.prototype.getFullText=function(e){return this.assertHasRealPosition(),(e||this.getSourceFile()).text.substring(this.pos,this.end)},t.prototype.getText=function(e){return this.assertHasRealPosition(),e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())},t.prototype.getChildCount=function(e){return this.getChildren(e).length},t.prototype.getChildAt=function(e,n){return this.getChildren(n)[e]},t.prototype.getChildren=function(t){return this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\"),this._children||(this._children=function(t,a){if(!e.isNodeKind(t.kind))return e.emptyArray;var i=[];if(e.isJSDocCommentContainingNode(t))return t.forEachChild((function(e){i.push(e)})),i;e.scanner.setText((a||t.getSourceFile()).text);var o=t.pos,s=function(e){r(i,o,e.pos,t),i.push(e),o=e.end};return e.forEach(t.jsDoc,s),o=t.pos,t.forEachChild(s,(function(e){r(i,o,e.pos,t),i.push(function(e,t){var a=n(317,e.pos,e.end,t);a._children=[];for(var i=e.pos,o=0,s=e;o<s.length;o++){var c=s[o];r(a._children,i,c.pos,t),a._children.push(c),i=c.end}return r(a._children,i,e.end,t),a}(e,t)),o=e.end})),r(i,o,t.end,t),e.scanner.setText(void 0),i}(this,t))},t.prototype.getFirstToken=function(n){this.assertHasRealPosition();var t=this.getChildren(n);if(t.length){var r=e.find(t,(function(e){return e.kind<292||e.kind>316}));return r.kind<152?r:r.getFirstToken(n)}},t.prototype.getLastToken=function(n){this.assertHasRealPosition();var t=this.getChildren(n),r=e.lastOrUndefined(t);if(r)return r.kind<152?r:r.getLastToken(n)},t.prototype.forEachChild=function(n,t){return e.forEachChild(this,n,t)},t}();function r(t,r,a,i){for(e.scanner.setTextPos(r);r<a;){var o=e.scanner.scan(),s=e.scanner.getTextPos();if(s<=a&&(75===o&&e.Debug.fail(\"Did not expect \"+e.Debug.formatSyntaxKind(i.kind)+\" to have an Identifier in its trivia\"),t.push(n(o,r,s,i))),r=s,1===o)break}}var a=function(){function n(e,n){this.pos=e,this.end=n,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0}return n.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},n.prototype.getStart=function(n,t){return e.getTokenPosOfNode(this,n,t)},n.prototype.getFullStart=function(){return this.pos},n.prototype.getEnd=function(){return this.end},n.prototype.getWidth=function(e){return this.getEnd()-this.getStart(e)},n.prototype.getFullWidth=function(){return this.end-this.pos},n.prototype.getLeadingTriviaWidth=function(e){return this.getStart(e)-this.pos},n.prototype.getFullText=function(e){return(e||this.getSourceFile()).text.substring(this.pos,this.end)},n.prototype.getText=function(e){return e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())},n.prototype.getChildCount=function(){return 0},n.prototype.getChildAt=function(){},n.prototype.getChildren=function(){return 1===this.kind&&this.jsDoc||e.emptyArray},n.prototype.getFirstToken=function(){},n.prototype.getLastToken=function(){},n.prototype.forEachChild=function(){},n}(),i=function(){function n(e,n){this.flags=e,this.escapedName=n}return n.prototype.getFlags=function(){return this.flags},Object.defineProperty(n.prototype,\"name\",{get:function(){return e.symbolName(this)},enumerable:!0,configurable:!0}),n.prototype.getEscapedName=function(){return this.escapedName},n.prototype.getName=function(){return this.name},n.prototype.getDeclarations=function(){return this.declarations},n.prototype.getDocumentationComment=function(n){return this.documentationComment||(this.documentationComment=e.emptyArray,this.documentationComment=d(this.declarations,n)),this.documentationComment},n.prototype.getJsDocTags=function(){return void 0===this.tags&&(this.tags=e.JsDoc.getJsDocTagsFromDeclarations(this.declarations)),this.tags},n}(),o=function(e){function n(n,t,r){var a=e.call(this,t,r)||this;return a.kind=n,a}return __extends(n,e),n}(a),s=function(n){function t(e,t,r){var a=n.call(this,t,r)||this;return a.kind=75,a}return __extends(t,n),Object.defineProperty(t.prototype,\"text\",{get:function(){return e.idText(this)},enumerable:!0,configurable:!0}),t}(a);s.prototype.kind=75;var c=function(){function n(e,n){this.checker=e,this.flags=n}return n.prototype.getFlags=function(){return this.flags},n.prototype.getSymbol=function(){return this.symbol},n.prototype.getProperties=function(){return this.checker.getPropertiesOfType(this)},n.prototype.getProperty=function(e){return this.checker.getPropertyOfType(this,e)},n.prototype.getApparentProperties=function(){return this.checker.getAugmentedPropertiesOfType(this)},n.prototype.getCallSignatures=function(){return this.checker.getSignaturesOfType(this,0)},n.prototype.getConstructSignatures=function(){return this.checker.getSignaturesOfType(this,1)},n.prototype.getStringIndexType=function(){return this.checker.getIndexTypeOfType(this,0)},n.prototype.getNumberIndexType=function(){return this.checker.getIndexTypeOfType(this,1)},n.prototype.getBaseTypes=function(){return this.isClassOrInterface()?this.checker.getBaseTypes(this):void 0},n.prototype.isNullableType=function(){return this.checker.isNullableType(this)},n.prototype.getNonNullableType=function(){return this.checker.getNonNullableType(this)},n.prototype.getNonOptionalType=function(){return this.checker.getNonOptionalType(this)},n.prototype.getConstraint=function(){return this.checker.getBaseConstraintOfType(this)},n.prototype.getDefault=function(){return this.checker.getDefaultFromTypeParameter(this)},n.prototype.isUnion=function(){return!!(1048576&this.flags)},n.prototype.isIntersection=function(){return!!(2097152&this.flags)},n.prototype.isUnionOrIntersection=function(){return!!(3145728&this.flags)},n.prototype.isLiteral=function(){return!!(384&this.flags)},n.prototype.isStringLiteral=function(){return!!(128&this.flags)},n.prototype.isNumberLiteral=function(){return!!(256&this.flags)},n.prototype.isTypeParameter=function(){return!!(262144&this.flags)},n.prototype.isClassOrInterface=function(){return!!(3&e.getObjectFlags(this))},n.prototype.isClass=function(){return!!(1&e.getObjectFlags(this))},Object.defineProperty(n.prototype,\"typeArguments\",{get:function(){if(4&e.getObjectFlags(this))return this.checker.getTypeArguments(this)},enumerable:!0,configurable:!0}),n}(),l=function(){function n(e,n){this.checker=e,this.flags=n}return n.prototype.getDeclaration=function(){return this.declaration},n.prototype.getTypeParameters=function(){return this.typeParameters},n.prototype.getParameters=function(){return this.parameters},n.prototype.getReturnType=function(){return this.checker.getReturnTypeOfSignature(this)},n.prototype.getDocumentationComment=function(){return this.documentationComment||(this.documentationComment=d(e.singleElementArray(this.declaration),this.checker))},n.prototype.getJsDocTags=function(){return void 0===this.jsDocTags&&(this.jsDocTags=this.declaration?e.JsDoc.getJsDocTagsFromDeclarations([this.declaration]):[]),this.jsDocTags},n}();function u(n){return e.getJSDocTags(n).some((function(e){return\"inheritDoc\"===e.tagName.text}))}function d(n,t){if(!n)return e.emptyArray;var r=e.JsDoc.getJsDocCommentsFromDeclarations(n);return(0===r.length||n.some(u))&&e.forEachUnique(n,(function(n){var a=function(n,t,r){return e.firstDefined(n.parent?e.getAllSuperTypeNodes(n.parent):e.emptyArray,(function(e){var n=r.getTypeAtLocation(e),a=n&&r.getPropertyOfType(n,t),i=a&&a.getDocumentationComment(r);return i&&i.length?i:void 0}))}(n,n.symbol.name,t);a&&(r=0===r.length?a.slice():a.concat(e.lineBreakPart(),r))})),r}var p=function(n){function t(e,t,r){var a=n.call(this,e,t,r)||this;return a.kind=288,a}return __extends(t,n),t.prototype.update=function(n,t){return e.updateSourceFile(this,n,t)},t.prototype.getLineAndCharacterOfPosition=function(n){return e.getLineAndCharacterOfPosition(this,n)},t.prototype.getLineStarts=function(){return e.getLineStarts(this)},t.prototype.getPositionOfLineAndCharacter=function(n,t,r){return e.computePositionOfLineAndCharacter(e.getLineStarts(this),n,t,this.text,r)},t.prototype.getLineEndOfPosition=function(e){var n,t=this.getLineAndCharacterOfPosition(e).line,r=this.getLineStarts();t+1>=r.length&&(n=this.getEnd()),n||(n=r[t+1]-1);var a=this.getFullText();return\"\\n\"===a[n]&&\"\\r\"===a[n-1]?n-1:n},t.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},t.prototype.computeNamedDeclarations=function(){var n=e.createMultiMap();return this.forEachChild((function a(i){switch(i.kind){case 243:case 200:case 160:case 159:var o=i,s=r(o);if(s){var c=function(e){var t=n.get(e);t||n.set(e,t=[]);return t}(s),l=e.lastOrUndefined(c);l&&o.parent===l.parent&&o.symbol===l.symbol?o.body&&!l.body&&(c[c.length-1]=o):c.push(o)}e.forEachChild(i,a);break;case 244:case 213:case 245:case 246:case 247:case 248:case 252:case 261:case 257:case 254:case 255:case 162:case 163:case 172:t(i),e.forEachChild(i,a);break;case 155:if(!e.hasModifier(i,92))break;case 241:case 190:var u=i;if(e.isBindingPattern(u.name)){e.forEachChild(u.name,a);break}u.initializer&&a(u.initializer);case 282:case 158:case 157:t(i);break;case 259:i.exportClause&&e.forEach(i.exportClause.elements,a);break;case 253:var d=i.importClause;d&&(d.name&&t(d.name),d.namedBindings&&(255===d.namedBindings.kind?t(d.namedBindings):e.forEach(d.namedBindings.elements,a)));break;case 208:0!==e.getAssignmentDeclarationKind(i)&&t(i);default:e.forEachChild(i,a)}})),n;function t(e){var t=r(e);t&&n.add(t,e)}function r(n){var t=e.getNonAssignedNameOfDeclaration(n);return t&&(e.isComputedPropertyName(t)&&e.isPropertyAccessExpression(t.expression)?t.expression.name.text:e.isPropertyName(t)?e.getNameFromPropertyName(t):void 0)}},t}(t),m=function(){function n(e,n,t){this.fileName=e,this.text=n,this.skipTrivia=t}return n.prototype.getLineAndCharacterOfPosition=function(n){return e.getLineAndCharacterOfPosition(this,n)},n}();function f(n){var t=!0;for(var r in n)if(e.hasProperty(n,r)&&!_(r)){t=!1;break}if(t)return n;var a={};for(var r in n){if(e.hasProperty(n,r))a[_(r)?r:r.charAt(0).toLowerCase()+r.substr(1)]=n[r]}return a}function _(e){return!e.length||e.charAt(0)===e.charAt(0).toLowerCase()}function g(){return{target:1,jsx:1}}e.toEditorSettings=f,e.displayPartsToString=function(n){return n?e.map(n,(function(e){return e.text})).join(\"\"):\"\"},e.getDefaultCompilerOptions=g,e.getSupportedCodeFixes=function(){return e.codefix.getSupportedErrorCodes()};var y=function(){function n(n,t){this.host=n,this.currentDirectory=n.getCurrentDirectory(),this.fileNameToEntry=e.createMap();for(var r=0,a=n.getScriptFileNames();r<a.length;r++){var i=a[r];this.createEntry(i,e.toPath(i,this.currentDirectory,t))}this._compilationSettings=n.getCompilationSettings()||{target:1,jsx:1}}return n.prototype.compilationSettings=function(){return this._compilationSettings},n.prototype.getProjectReferences=function(){return this.host.getProjectReferences&&this.host.getProjectReferences()},n.prototype.createEntry=function(n,t){var r,a=this.host.getScriptSnapshot(n);return r=a?{hostFileName:n,version:this.host.getScriptVersion(n),scriptSnapshot:a,scriptKind:e.getScriptKind(n,this.host)}:n,this.fileNameToEntry.set(t,r),r},n.prototype.getEntryByPath=function(e){return this.fileNameToEntry.get(e)},n.prototype.getHostFileInformation=function(n){var t=this.fileNameToEntry.get(n);return e.isString(t)?void 0:t},n.prototype.getOrCreateEntryByPath=function(n,t){var r=this.getEntryByPath(t)||this.createEntry(n,t);return e.isString(r)?void 0:r},n.prototype.getRootFileNames=function(){var n=[];return this.fileNameToEntry.forEach((function(t){e.isString(t)?n.push(t):6!==t.scriptKind&&n.push(t.hostFileName)})),n},n.prototype.getVersion=function(e){var n=this.getHostFileInformation(e);return n&&n.version},n.prototype.getScriptSnapshot=function(e){var n=this.getHostFileInformation(e);return n&&n.scriptSnapshot},n}(),v=function(){function n(e){this.host=e}return n.prototype.getCurrentSourceFile=function(n){var t=this.host.getScriptSnapshot(n);if(!t)throw new Error(\"Could not find file: '\"+n+\"'.\");var r,a=e.getScriptKind(n,this.host),i=this.host.getScriptVersion(n);if(this.currentFileName!==n)r=b(n,t,99,i,!0,a);else if(this.currentFileVersion!==i){var o=t.getChangeRange(this.currentFileScriptSnapshot);r=E(this.currentSourceFile,t,i,o)}return r&&(this.currentFileVersion=i,this.currentFileName=n,this.currentFileScriptSnapshot=t,this.currentSourceFile=r),this.currentSourceFile},n}();function h(e,n,t){e.version=t,e.scriptSnapshot=n}function b(n,t,r,a,i,o){var s=e.createSourceFile(n,e.getSnapshotText(t),r,i,o);return h(s,t,a),s}function E(n,t,r,a,i){if(a&&r!==n.version&&!e.disableIncrementalParsing){var o=void 0,s=0!==a.span.start?n.text.substr(0,a.span.start):\"\",c=e.textSpanEnd(a.span)!==n.text.length?n.text.substr(e.textSpanEnd(a.span)):\"\";if(0===a.newLength)o=s&&c?s+c:s||c;else{var l=t.getText(a.span.start,a.span.start+a.newLength);o=s&&c?s+l+c:s?s+l:l+c}var u=e.updateSourceFile(n,o,a,i);return h(u,t,r),u.nameTable=void 0,n!==u&&n.scriptSnapshot&&(n.scriptSnapshot.dispose&&n.scriptSnapshot.dispose(),n.scriptSnapshot=void 0),u}return b(n.fileName,t,n.languageVersion,r,!0,n.scriptKind)}e.createLanguageServiceSourceFile=b,e.disableIncrementalParsing=!1,e.updateLanguageServiceSourceFile=E;var T=function(){function n(e){this.cancellationToken=e}return n.prototype.isCancellationRequested=function(){return!!this.cancellationToken&&this.cancellationToken.isCancellationRequested()},n.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw new e.OperationCanceledException},n}(),S=function(){function n(e,n){void 0===n&&(n=20),this.hostCancellationToken=e,this.throttleWaitMilliseconds=n,this.lastCancellationCheckTime=0}return n.prototype.isCancellationRequested=function(){var n=e.timestamp();return Math.abs(n-this.lastCancellationCheckTime)>=this.throttleWaitMilliseconds&&(this.lastCancellationCheckTime=n,this.hostCancellationToken.isCancellationRequested())},n.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw new e.OperationCanceledException},n}();function x(n){var t=function(n){switch(n.kind){case 10:case 14:case 8:if(153===n.parent.kind)return e.isObjectLiteralElement(n.parent.parent)?n.parent.parent:void 0;case 75:return!e.isObjectLiteralElement(n.parent)||192!==n.parent.parent.kind&&272!==n.parent.parent.kind||n.parent.name!==n?void 0:n.parent}return}(n);return t&&(e.isObjectLiteralExpression(t.parent)||e.isJsxAttributes(t.parent))?t:void 0}function L(n,t,r,a){var i=e.getNameFromPropertyName(n.name);if(!i)return e.emptyArray;if(!r.isUnion())return(o=r.getProperty(i))?[o]:e.emptyArray;var o,s=e.mapDefined(r.types,(function(r){return e.isObjectLiteralExpression(n.parent)&&t.isTypeInvalidDueToUnionDiscriminant(r,n.parent)?void 0:r.getProperty(i)}));if(a&&(0===s.length||s.length===r.types.length)&&(o=r.getProperty(i)))return[o];return 0===s.length?e.mapDefined(r.types,(function(e){return e.getProperty(i)})):s}e.ThrottledCancellationToken=S,e.createLanguageService=function(n,t,r){var a;void 0===t&&(t=e.createDocumentRegistry(n.useCaseSensitiveFileNames&&n.useCaseSensitiveFileNames(),n.getCurrentDirectory())),void 0===r&&(r=!1);var i,o,s=new v(n),c=0,l=new T(n.getCancellationToken&&n.getCancellationToken()),u=n.getCurrentDirectory();function d(e){n.log&&n.log(e)}!e.localizedDiagnosticMessages&&n.getLocalizedDiagnosticMessages&&(e.localizedDiagnosticMessages=n.getLocalizedDiagnosticMessages());var p=e.hostUsesCaseSensitiveFileNames(n),m=e.createGetCanonicalFileName(p),_=e.getSourceMapper({useCaseSensitiveFileNames:function(){return p},getCurrentDirectory:function(){return u},getProgram:b,fileExists:e.maybeBind(n,n.fileExists),readFile:e.maybeBind(n,n.readFile),getDocumentPositionMapper:e.maybeBind(n,n.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(n,n.getSourceFileLike),log:d});function g(e){var n=i.getSourceFile(e);if(!n){var t=new Error(\"Could not find source file: '\"+e+\"'.\");throw t.ProgramFiles=i.getSourceFiles().map((function(e){return e.fileName})),t}return n}function h(){if(e.Debug.assert(!r),n.getProjectVersion){var a=n.getProjectVersion();if(a){if(o===a&&!n.hasChangedAutomaticTypeDirectiveNames)return;o=a}}var s=n.getTypeRootsVersion?n.getTypeRootsVersion():0;c!==s&&(d(\"TypeRoots version has changed; provide new program\"),i=void 0,c=s);var f=new y(n,m),g=f.getRootFileNames(),v=n.hasInvalidatedResolution||e.returnFalse,h=f.getProjectReferences();if(!e.isProgramUptoDate(i,g,f.compilationSettings(),(function(e){return f.getVersion(e)}),x,v,!!n.hasChangedAutomaticTypeDirectiveNames,h)){var b=f.compilationSettings(),E={getSourceFile:function(n,t,r,a){return L(n,e.toPath(n,u,m),t,r,a)},getSourceFileByPath:L,getCancellationToken:function(){return l},getCanonicalFileName:m,useCaseSensitiveFileNames:function(){return p},getNewLine:function(){return e.getNewLineCharacter(b,(function(){return e.getNewLineOrDefaultFromHost(n)}))},getDefaultLibFileName:function(e){return n.getDefaultLibFileName(e)},writeFile:e.noop,getCurrentDirectory:function(){return u},fileExists:x,readFile:function(t){var r=e.toPath(t,u,m),a=f&&f.getEntryByPath(r);if(a)return e.isString(a)?void 0:e.getSnapshotText(a.scriptSnapshot);return n.readFile&&n.readFile(t)},realpath:n.realpath&&function(e){return n.realpath(e)},directoryExists:function(t){return e.directoryProbablyExists(t,n)},getDirectories:function(e){return n.getDirectories?n.getDirectories(e):[]},readDirectory:function(t,r,a,i,o){return e.Debug.assertDefined(n.readDirectory,\"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),n.readDirectory(t,r,a,i,o)},onReleaseOldSourceFile:function(e,n){var r=t.getKeyForCompilationSettings(n);t.releaseDocumentWithKey(e.resolvedPath,r)},hasInvalidatedResolution:v,hasChangedAutomaticTypeDirectiveNames:n.hasChangedAutomaticTypeDirectiveNames};n.trace&&(E.trace=function(e){return n.trace(e)}),n.resolveModuleNames&&(E.resolveModuleNames=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.resolveModuleNames.apply(n,e)}),n.resolveTypeReferenceDirectives&&(E.resolveTypeReferenceDirectives=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.resolveTypeReferenceDirectives.apply(n,e)}),n.setResolvedProjectReferenceCallbacks&&(E.setResolvedProjectReferenceCallbacks=function(e){return n.setResolvedProjectReferenceCallbacks(e)}),n.useSourceOfProjectReferenceRedirect&&(E.useSourceOfProjectReferenceRedirect=function(){return n.useSourceOfProjectReferenceRedirect()});var T=t.getKeyForCompilationSettings(b),S={rootNames:g,options:b,host:E,oldProgram:i,projectReferences:h};return i=e.createProgram(S),f=void 0,_.clearCache(),void i.getTypeChecker()}function x(t){var r=e.toPath(t,u,m),a=f&&f.getEntryByPath(r);return a?!e.isString(a):!!n.fileExists&&n.fileExists(t)}function L(n,r,a,o,s){e.Debug.assert(void 0!==f,\"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");var c=f&&f.getOrCreateEntryByPath(n,r);if(c){if(!s){var l=i&&i.getSourceFileByPath(r);if(l)return e.Debug.assertEqual(c.scriptKind,l.scriptKind,\"Registered script kind should match new script kind.\",r),t.updateDocumentWithKey(n,r,b,T,c.scriptSnapshot,c.version,c.scriptKind)}return t.acquireDocumentWithKey(n,r,b,T,c.scriptSnapshot,c.version,c.scriptKind)}}}function b(){if(!r)return h(),i;e.Debug.assert(void 0===i)}function E(n,t,r){var a=e.normalizePath(n);e.Debug.assert(r.some((function(n){return e.normalizePath(n)===a}))),h();var o=e.mapDefined(r,(function(e){return i.getSourceFile(e)})),s=g(n);return e.DocumentHighlights.getDocumentHighlights(i,l,s,t,o)}function S(n,t,r,a){h();var o=r&&r.isForRename?i.getSourceFiles().filter((function(e){return!i.isSourceFileDefaultLibrary(e)})):i.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(i,l,o,n,t,r,a)}function C(t){var r=e.getScriptKind(t,n);return 3===r||4===r}var A=e.createMapFromTemplate(((a={})[18]=19,a[20]=21,a[22]=23,a[31]=29,a));function D(t){var r;return e.Debug.assertEqual(t.type,\"install package\"),n.installPackage?n.installPackage({fileName:(r=t.file,e.toPath(r,u,m)),packageName:t.packageName}):Promise.reject(\"Host does not implement `installPackage`\")}function k(t,r,a,i){var o=\"number\"==typeof r?[r,void 0]:[r.pos,r.end];return{file:t,startPosition:o[0],endPosition:o[1],program:b(),host:n,formatContext:e.formatting.getFormatContext(i),cancellationToken:l,preferences:a}}return A.forEach((function(e,n){return A.set(e.toString(),Number(n))})),{dispose:function(){i&&(e.forEach(i.getSourceFiles(),(function(e){return t.releaseDocument(e.fileName,i.getCompilerOptions())})),i=void 0),n=void 0},cleanupSemanticCache:function(){i=void 0},getSyntacticDiagnostics:function(e){return h(),i.getSyntacticDiagnostics(g(e),l).slice()},getSemanticDiagnostics:function(n){h();var t=g(n),r=i.getSemanticDiagnostics(t,l);if(!e.getEmitDeclarations(i.getCompilerOptions()))return r.slice();var a=i.getDeclarationDiagnostics(t,l);return __spreadArrays(r,a)},getSuggestionDiagnostics:function(n){return h(),e.computeSuggestionDiagnostics(g(n),i,l)},getCompilerOptionsDiagnostics:function(){return h(),__spreadArrays(i.getOptionsDiagnostics(l),i.getGlobalDiagnostics(l))},getSyntacticClassifications:function(n,t){return e.getSyntacticClassifications(l,s.getCurrentSourceFile(n),t)},getSemanticClassifications:function(n,t){return C(n)?(h(),e.getSemanticClassifications(i.getTypeChecker(),l,g(n),i.getClassifiableNames(),t)):[]},getEncodedSyntacticClassifications:function(n,t){return e.getEncodedSyntacticClassifications(l,s.getCurrentSourceFile(n),t)},getEncodedSemanticClassifications:function(n,t){return C(n)?(h(),e.getEncodedSemanticClassifications(i.getTypeChecker(),l,g(n),i.getClassifiableNames(),t)):{spans:[],endOfLineState:0}},getCompletionsAtPosition:function(t,r,a){void 0===a&&(a=e.emptyOptions);var o=__assign(__assign({},e.identity(a)),{includeCompletionsForModuleExports:a.includeCompletionsForModuleExports||a.includeExternalModuleExports,includeCompletionsWithInsertText:a.includeCompletionsWithInsertText||a.includeInsertTextCompletions});return h(),e.Completions.getCompletionsAtPosition(n,i,d,g(t),r,o,a.triggerCharacter)},getCompletionEntryDetails:function(t,r,a,o,s,c){return void 0===c&&(c=e.emptyOptions),h(),e.Completions.getCompletionEntryDetails(i,d,g(t),r,{name:a,source:s},n,o&&e.formatting.getFormatContext(o),c,l)},getCompletionEntrySymbol:function(t,r,a,o){return h(),e.Completions.getCompletionEntrySymbol(i,d,g(t),r,{name:a,source:o},n)},getSignatureHelpItems:function(n,t,r){var a=(void 0===r?e.emptyOptions:r).triggerReason;h();var o=g(n);return e.SignatureHelp.getSignatureHelpItems(i,o,t,a,l)},getQuickInfoAtPosition:function(n,t){h();var r=g(n),a=e.getTouchingPropertyName(r,t);if(a!==r){var o=i.getTypeChecker(),s=function(n){if(e.isNewExpression(n.parent)&&n.pos===n.parent.pos)return n.parent.expression;return n}(a),c=function(n,t){var r=x(n);if(r){var a=t.getContextualType(r.parent),i=a&&L(r,t,a,!1);if(i&&1===i.length)return e.first(i)}return t.getSymbolAtLocation(n)}(s,o);if(!c||o.isUnknownSymbol(c)){var u=function(n,t,r){switch(t.kind){case 75:return!e.isLabelName(t)&&!e.isTagName(t);case 193:case 152:return!e.isInComment(n,r);case 103:case 182:case 101:return!0;default:return!1}}(r,s,t)?o.getTypeAtLocation(s):void 0;return u&&{kind:\"\",kindModifiers:\"\",textSpan:e.createTextSpanFromNode(s,r),displayParts:o.runWithCancellationToken(l,(function(n){return e.typeToDisplayParts(n,u,e.getContainerNode(s))})),documentation:u.symbol?u.symbol.getDocumentationComment(o):void 0,tags:u.symbol?u.symbol.getJsDocTags():void 0}}var d=o.runWithCancellationToken(l,(function(n){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(n,c,r,e.getContainerNode(s),s)})),p=d.symbolKind,m=d.displayParts,f=d.documentation,_=d.tags;return{kind:p,kindModifiers:e.SymbolDisplay.getSymbolModifiers(c),textSpan:e.createTextSpanFromNode(s,r),displayParts:m,documentation:f,tags:_}}},getDefinitionAtPosition:function(n,t){return h(),e.GoToDefinition.getDefinitionAtPosition(i,g(n),t)},getDefinitionAndBoundSpan:function(n,t){return h(),e.GoToDefinition.getDefinitionAndBoundSpan(i,g(n),t)},getImplementationAtPosition:function(n,t){return h(),e.FindAllReferences.getImplementationsAtPosition(i,l,i.getSourceFiles(),g(n),t)},getTypeDefinitionAtPosition:function(n,t){return h(),e.GoToDefinition.getTypeDefinitionAtPosition(i.getTypeChecker(),g(n),t)},getReferencesAtPosition:function(n,t){return h(),S(e.getTouchingPropertyName(g(n),t),t,{},e.FindAllReferences.toReferenceEntry)},findReferences:function(n,t){return h(),e.FindAllReferences.findReferencedSymbols(i,l,i.getSourceFiles(),g(n),t)},getOccurrencesAtPosition:function(n,t){return e.flatMap(E(n,t,[n]),(function(e){return e.highlightSpans.map((function(n){return __assign(__assign({fileName:e.fileName,textSpan:n.textSpan,isWriteAccess:\"writtenReference\"===n.kind,isDefinition:!1},n.isInString&&{isInString:!0}),n.contextSpan&&{contextSpan:n.contextSpan})}))}))},getDocumentHighlights:E,getNameOrDottedNameSpan:function(n,t,r){var a=s.getCurrentSourceFile(n),i=e.getTouchingPropertyName(a,t);if(i!==a){switch(i.kind){case 193:case 152:case 10:case 90:case 105:case 99:case 101:case 103:case 182:case 75:break;default:return}for(var o=i;;)if(e.isRightSideOfPropertyAccess(o)||e.isRightSideOfQualifiedName(o))o=o.parent;else{if(!e.isNameOfModuleDeclaration(o))break;if(248!==o.parent.parent.kind||o.parent.parent.body!==o.parent)break;o=o.parent.parent.name}return e.createTextSpanFromBounds(o.getStart(),i.getEnd())}},getBreakpointStatementAtPosition:function(n,t){var r=s.getCurrentSourceFile(n);return e.BreakpointResolver.spanInSourceFileAtLocation(r,t)},getNavigateToItems:function(n,t,r,a){void 0===a&&(a=!1),h();var o=r?[g(r)]:i.getSourceFiles();return e.NavigateTo.getNavigateToItems(o,i.getTypeChecker(),l,n,t,a)},getRenameInfo:function(n,t,r){return h(),e.Rename.getRenameInfo(i,g(n),t,r)},getSmartSelectionRange:function(n,t){return e.SmartSelectionRange.getSmartSelectionRange(t,s.getCurrentSourceFile(n))},findRenameLocations:function(n,t,r,a,i){h();var o=g(n),s=e.getTouchingPropertyName(o,t);if(e.isIdentifier(s)&&(e.isJsxOpeningElement(s.parent)||e.isJsxClosingElement(s.parent))&&e.isIntrinsicJsxName(s.escapedText)){var c=s.parent.parent;return[c.openingElement,c.closingElement].map((function(n){var t=e.createTextSpanFromNode(n.tagName,o);return __assign({fileName:o.fileName,textSpan:t},e.FindAllReferences.toContextSpan(t,o,n.parent))}))}return S(s,t,{findInStrings:r,findInComments:a,providePrefixAndSuffixTextForRename:i,isForRename:!0},(function(n,t,r){return e.FindAllReferences.toRenameLocation(n,t,r,i||!1)}))},getNavigationBarItems:function(n){return e.NavigationBar.getNavigationBarItems(s.getCurrentSourceFile(n),l)},getNavigationTree:function(n){return e.NavigationBar.getNavigationTree(s.getCurrentSourceFile(n),l)},getOutliningSpans:function(n){var t=s.getCurrentSourceFile(n);return e.OutliningElementsCollector.collectElements(t,l)},getTodoComments:function(n,t){h();var r=g(n);l.throwIfCancellationRequested();var a,i,o=r.text,s=[];if(t.length>0&&(i=r.fileName,!e.stringContains(i,\"/node_modules/\")))for(var c=function(){var n=\"(\"+/(?:^(?:\\s|\\*)*)/.source+\"|\"+/(?:\\/\\/+\\s*)/.source+\"|\"+/(?:\\/\\*+\\s*)/.source+\")\",r=\"(?:\"+e.map(t,(function(e){return\"(\"+e.text.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")+\")\"})).join(\"|\")+\")\";return new RegExp(n+\"(\"+r+/(?:.*?)/.source+\")\"+/(?:$|\\*\\/)/.source,\"gim\")}(),u=void 0;u=c.exec(o);){l.throwIfCancellationRequested();e.Debug.assert(u.length===t.length+3);var d=u[1],p=u.index+d.length;if(e.isInComment(r,p)){for(var m=void 0,f=0;f<t.length;f++)u[f+3]&&(m=t[f]);if(void 0===m)return e.Debug.fail();if(!((a=o.charCodeAt(p+m.text.length))>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)){var _=u[2];s.push({descriptor:m,message:_,position:p})}}}return s},getBraceMatchingAtPosition:function(n,t){var r=s.getCurrentSourceFile(n),a=e.getTouchingToken(r,t),i=a.getStart(r)===t?A.get(a.kind.toString()):void 0,o=i&&e.findChildOfKind(a.parent,i,r);return o?[e.createTextSpanFromNode(a,r),e.createTextSpanFromNode(o,r)].sort((function(e,n){return e.start-n.start})):e.emptyArray},getIndentationAtPosition:function(n,t,r){var a=e.timestamp(),i=f(r),o=s.getCurrentSourceFile(n);d(\"getIndentationAtPosition: getCurrentSourceFile: \"+(e.timestamp()-a)),a=e.timestamp();var c=e.formatting.SmartIndenter.getIndentation(t,o,i);return d(\"getIndentationAtPosition: computeIndentation  : \"+(e.timestamp()-a)),c},getFormattingEditsForRange:function(n,t,r,a){var i=s.getCurrentSourceFile(n);return e.formatting.formatSelection(t,r,i,e.formatting.getFormatContext(f(a)))},getFormattingEditsForDocument:function(n,t){return e.formatting.formatDocument(s.getCurrentSourceFile(n),e.formatting.getFormatContext(f(t)))},getFormattingEditsAfterKeystroke:function(n,t,r,a){var i=s.getCurrentSourceFile(n),o=e.formatting.getFormatContext(f(a));if(!e.isInComment(i,t))switch(r){case\"{\":return e.formatting.formatOnOpeningCurly(t,i,o);case\"}\":return e.formatting.formatOnClosingCurly(t,i,o);case\";\":return e.formatting.formatOnSemicolon(t,i,o);case\"\\n\":return e.formatting.formatOnEnter(t,i,o)}return[]},getDocCommentTemplateAtPosition:function(t,r){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(n),s.getCurrentSourceFile(t),r)},isValidBraceCompletionAtPosition:function(n,t,r){if(60===r)return!1;var a=s.getCurrentSourceFile(n);if(e.isInString(a,t))return!1;if(e.isInsideJsxElementOrAttribute(a,t))return 123===r;if(e.isInTemplateString(a,t))return!1;switch(r){case 39:case 34:case 96:return!e.isInComment(a,t)}return!0},getJsxClosingTagAtPosition:function(n,t){var r=s.getCurrentSourceFile(n),a=e.findPrecedingToken(t,r);if(a){var i=31===a.kind&&e.isJsxOpeningElement(a.parent)?a.parent.parent:e.isJsxText(a)?a.parent:void 0;return i&&function n(t){var r=t.openingElement,a=t.closingElement,i=t.parent;return!e.tagNamesAreEquivalent(r.tagName,a.tagName)||e.isJsxElement(i)&&e.tagNamesAreEquivalent(r.tagName,i.openingElement.tagName)&&n(i)}(i)?{newText:\"</\"+i.openingElement.tagName.getText(r)+\">\"}:void 0}},getSpanOfEnclosingComment:function(n,t,r){var a=s.getCurrentSourceFile(n),i=e.formatting.getRangeOfEnclosingComment(a,t);return!i||r&&3!==i.kind?void 0:e.createTextSpanFromRange(i)},getCodeFixesAtPosition:function(t,r,a,o,s,c){void 0===c&&(c=e.emptyOptions),h();var u=g(t),d=e.createTextSpanFromBounds(r,a),p=e.formatting.getFormatContext(s);return e.flatMap(e.deduplicate(o,e.equateValues,e.compareValues),(function(t){return l.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:t,sourceFile:u,span:d,program:i,host:n,cancellationToken:l,formatContext:p,preferences:c})}))},getCombinedCodeFix:function(t,r,a,o){void 0===o&&(o=e.emptyOptions),h(),e.Debug.assert(\"file\"===t.type);var s=g(t.fileName),c=e.formatting.getFormatContext(a);return e.codefix.getAllFixes({fixId:r,sourceFile:s,program:i,host:n,cancellationToken:l,formatContext:c,preferences:o})},applyCodeActionCommand:function(n,t){var r=\"string\"==typeof n?t:n;return e.isArray(r)?Promise.all(r.map((function(e){return D(e)}))):D(r)},organizeImports:function(t,r,a){void 0===a&&(a=e.emptyOptions),h(),e.Debug.assert(\"file\"===t.type);var o=g(t.fileName),s=e.formatting.getFormatContext(r);return e.OrganizeImports.organizeImports(o,s,n,i,a)},getEditsForFileRename:function(t,r,a,i){return void 0===i&&(i=e.emptyOptions),e.getEditsForFileRename(b(),t,r,n,e.formatting.getFormatContext(a),i,_)},getEmitOutput:function(t,r,a){h();var o=g(t),s=n.getCustomTransformers&&n.getCustomTransformers();return e.getFileEmitOutput(i,o,!!r,l,s,a)},getNonBoundSourceFile:function(e){return s.getCurrentSourceFile(e)},getProgram:b,getApplicableRefactors:function(n,t,r){void 0===r&&(r=e.emptyOptions),h();var a=g(n);return e.refactor.getApplicableRefactors(k(a,t,r))},getEditsForRefactor:function(n,t,r,a,i,o){void 0===o&&(o=e.emptyOptions),h();var s=g(n);return e.refactor.getEditsForRefactor(k(s,r,o,t),a,i)},toLineColumnOffset:_.toLineColumnOffset,getSourceMapper:function(){return _}}},e.getNameTable=function(n){return n.nameTable||function(n){var t=n.nameTable=e.createUnderscoreEscapedMap();n.forEachChild((function n(r){if(e.isIdentifier(r)&&!e.isTagName(r)&&r.escapedText||e.isStringOrNumericLiteralLike(r)&&function(n){return e.isDeclarationName(n)||263===n.parent.kind||function(e){return e&&e.parent&&194===e.parent.kind&&e.parent.argumentExpression===e}(n)||e.isLiteralComputedPropertyDeclarationName(n)}(r)){var a=e.getEscapedTextOfIdentifierOrLiteral(r);t.set(a,void 0===t.get(a)?r.pos:-1)}if(e.forEachChild(r,n),e.hasJSDocNodes(r))for(var i=0,o=r.jsDoc;i<o.length;i++){var s=o[i];e.forEachChild(s,n)}}))}(n),n.nameTable},e.getContainingObjectLiteralElement=x,e.getPropertySymbolsFromContextualType=L,e.getDefaultLibFilePath=function(n){if(\"undefined\"!=typeof __dirname)return __dirname+e.directorySeparator+e.getDefaultLibFileName(n);throw new Error(\"getDefaultLibFilePath is only supported when consumed as a node module. \")},e.objectAllocator={getNodeConstructor:function(){return t},getTokenConstructor:function(){return o},getIdentifierConstructor:function(){return s},getSourceFileConstructor:function(){return p},getSymbolConstructor:function(){return i},getTypeConstructor:function(){return c},getSignatureConstructor:function(){return l},getSourceMapSourceConstructor:function(){return m}}}(ts||(ts={})),function(e){!function(n){n.spanInSourceFileAtLocation=function(n,t){if(!n.isDeclarationFile){var r=e.getTokenAtPosition(n,t),a=n.getLineAndCharacterOfPosition(t).line;if(n.getLineAndCharacterOfPosition(r.getStart(n)).line>a){var i=e.findPrecedingToken(r.pos,n);if(!i||n.getLineAndCharacterOfPosition(i.getEnd()).line!==a)return;r=i}if(!(8388608&r.flags))return d(r)}function o(t,r){var a=t.decorators?e.skipTrivia(n.text,t.decorators.end):t.getStart(n);return e.createTextSpanFromBounds(a,(r||t).getEnd())}function s(t,r){return o(t,e.findNextToken(r,r.parent,n))}function c(e,t){return e&&a===n.getLineAndCharacterOfPosition(e.getStart(n)).line?d(e):d(t)}function l(t){return d(e.findPrecedingToken(t.pos,n))}function u(t){return d(e.findNextToken(t,t.parent,n))}function d(t){if(t){var r=t.parent;switch(t.kind){case 224:return v(t.declarationList.declarations[0]);case 241:case 158:case 157:return v(t);case 155:return function n(t){if(e.isBindingPattern(t.name))return T(t.name);if(function(n){return!!n.initializer||void 0!==n.dotDotDotToken||e.hasModifier(n,12)}(t))return o(t);var r=t.parent,a=r.parameters.indexOf(t);return e.Debug.assert(-1!==a),0!==a?n(r.parameters[a-1]):d(r.body)}(t);case 243:case 160:case 159:case 162:case 163:case 161:case 200:case 201:return function(e){if(!e.body)return;if(h(e))return o(e);return d(e.body)}(t);case 222:if(e.isFunctionBlock(t))return function(e){var n=e.statements.length?e.statements[0]:e.getLastToken();if(h(e.parent))return c(e.parent,n);return d(n)}(t);case 249:return b(t);case 278:return b(t.block);case 225:return o(t.expression);case 234:return o(t.getChildAt(0),t.expression);case 228:return s(t,t.expression);case 227:return d(t.statement);case 240:return o(t.getChildAt(0));case 226:return s(t,t.expression);case 237:return d(t.statement);case 233:case 232:return o(t.getChildAt(0),t.label);case 229:return function(e){if(e.initializer)return E(e);if(e.condition)return o(e.condition);if(e.incrementor)return o(e.incrementor)}(t);case 230:return s(t,t.expression);case 231:return E(t);case 236:return s(t,t.expression);case 275:case 276:return d(t.statements[0]);case 239:return b(t.tryBlock);case 238:case 258:return o(t,t.expression);case 252:return o(t,t.moduleReference);case 253:case 259:return o(t,t.moduleSpecifier);case 248:if(1!==e.getModuleInstanceState(t))return;case 244:case 247:case 282:case 190:return o(t);case 235:return d(t.statement);case 156:return g=r.decorators,e.createTextSpanFromBounds(e.skipTrivia(n.text,g.pos),g.end);case 188:case 189:return T(t);case 245:case 246:return;case 26:case 1:return c(e.findPrecedingToken(t.pos,n));case 27:return l(t);case 18:return function(t){switch(t.parent.kind){case 247:var r=t.parent;return c(e.findPrecedingToken(t.pos,n,t.parent),r.members.length?r.members[0]:r.getLastToken(n));case 244:var a=t.parent;return c(e.findPrecedingToken(t.pos,n,t.parent),a.members.length?a.members[0]:a.getLastToken(n));case 250:return c(t.parent.parent,t.parent.clauses[0])}return d(t.parent)}(t);case 19:return function(n){switch(n.parent.kind){case 249:if(1!==e.getModuleInstanceState(n.parent.parent))return;case 247:case 244:return o(n);case 222:if(e.isFunctionBlock(n.parent))return o(n);case 278:return d(e.lastOrUndefined(n.parent.statements));case 250:var t=n.parent,r=e.lastOrUndefined(t.clauses);return r?d(e.lastOrUndefined(r.statements)):void 0;case 188:var a=n.parent;return d(e.lastOrUndefined(a.elements)||a);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)){var i=n.parent;return o(e.lastOrUndefined(i.properties)||i)}return d(n.parent)}}(t);case 23:return function(n){switch(n.parent.kind){case 189:var t=n.parent;return o(e.lastOrUndefined(t.elements)||t);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(n.parent)){var r=n.parent;return o(e.lastOrUndefined(r.elements)||r)}return d(n.parent)}}(t);case 20:return function(e){if(227===e.parent.kind||195===e.parent.kind||196===e.parent.kind)return l(e);if(199===e.parent.kind)return u(e);return d(e.parent)}(t);case 21:return function(e){switch(e.parent.kind){case 200:case 243:case 201:case 160:case 159:case 162:case 163:case 161:case 228:case 227:case 229:case 231:case 195:case 196:case 199:return l(e);default:return d(e.parent)}}(t);case 58:return function(n){if(e.isFunctionLike(n.parent)||279===n.parent.kind||155===n.parent.kind)return l(n);return d(n.parent)}(t);case 31:case 29:return function(e){if(198===e.parent.kind)return u(e);return d(e.parent)}(t);case 110:return function(e){if(227===e.parent.kind)return s(e,e.parent.expression);return d(e.parent)}(t);case 86:case 78:case 91:return u(t);case 151:return function(e){if(231===e.parent.kind)return u(e);return d(e.parent)}(t);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(t))return S(t);if((75===t.kind||212===t.kind||279===t.kind||280===t.kind)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(r))return o(t);if(208===t.kind){var a=t,i=a.left,p=a.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(i))return S(i);if(62===p.kind&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent))return o(t);if(27===p.kind)return d(i)}if(e.isExpressionNode(t))switch(r.kind){case 227:return l(t);case 156:return d(t.parent);case 229:case 231:return o(t);case 208:if(27===t.parent.operatorToken.kind)return o(t);break;case 201:if(t.parent.body===t)return o(t)}switch(t.parent.kind){case 279:if(t.parent.name===t&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent.parent))return d(t.parent.initializer);break;case 198:if(t.parent.type===t)return u(t.parent.type);break;case 241:case 155:var m=t.parent,f=m.initializer,_=m.type;if(f===t||_===t||e.isAssignmentOperator(t.kind))return l(t);break;case 208:i=t.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(i)&&t!==i)return l(t);break;default:if(e.isFunctionLike(t.parent)&&t.parent.type===t)return l(t)}return d(t.parent)}}var g;function y(t){return e.isVariableDeclarationList(t.parent)&&t.parent.declarations[0]===t?o(e.findPrecedingToken(t.pos,n,t.parent),t):o(t)}function v(t){if(230===t.parent.parent.kind)return d(t.parent.parent);var r=t.parent;return e.isBindingPattern(t.name)?T(t.name):t.initializer||e.hasModifier(t,1)||231===r.parent.kind?y(t):e.isVariableDeclarationList(t.parent)&&t.parent.declarations[0]!==t?d(e.findPrecedingToken(t.pos,n,t.parent)):void 0}function h(n){return e.hasModifier(n,1)||244===n.parent.kind&&161!==n.kind}function b(t){switch(t.parent.kind){case 248:if(1!==e.getModuleInstanceState(t.parent))return;case 228:case 226:case 230:return c(t.parent,t.statements[0]);case 229:case 231:return c(e.findPrecedingToken(t.pos,n,t.parent),t.statements[0])}return d(t.statements[0])}function E(e){if(242!==e.initializer.kind)return d(e.initializer);var n=e.initializer;return n.declarations.length>0?d(n.declarations[0]):void 0}function T(n){var t=e.forEach(n.elements,(function(e){return 214!==e.kind?e:void 0}));return t?d(t):190===n.parent.kind?o(n.parent):y(n.parent)}function S(n){e.Debug.assert(189!==n.kind&&188!==n.kind);var t=191===n.kind?n.elements:n.properties,r=e.forEach(t,(function(e){return 214!==e.kind?e:void 0}));return r?d(r):o(208===n.parent.kind?n.parent:n)}}}}(e.BreakpointResolver||(e.BreakpointResolver={}))}(ts||(ts={})),function(e){e.transform=function(n,t,r){var a=[];r=e.fixupCompilerOptions(r,a);var i=e.isArray(n)?n:[n],o=e.transformNodes(void 0,void 0,r,i,t,!0);return o.diagnostics=e.concatenate(o.diagnostics,a),o}}(ts||(ts={}));var ts,TypeScript,debugObjectHost=function(){return this}();!function(e){function n(e,n){e&&e.log(\"*INTERNAL ERROR* - Exception in typescript services: \"+n.message)}var t=function(){function n(e){this.scriptSnapshotShim=e}return n.prototype.getText=function(e,n){return this.scriptSnapshotShim.getText(e,n)},n.prototype.getLength=function(){return this.scriptSnapshotShim.getLength()},n.prototype.getChangeRange=function(n){var t=n,r=this.scriptSnapshotShim.getChangeRange(t.scriptSnapshotShim);if(null===r)return null;var a=JSON.parse(r);return e.createTextChangeRange(e.createTextSpan(a.span.start,a.span.length),a.newLength)},n.prototype.dispose=function(){\"dispose\"in this.scriptSnapshotShim&&this.scriptSnapshotShim.dispose()},n}(),r=function(){function n(n){var t=this;this.shimHost=n,this.loggingEnabled=!1,this.tracingEnabled=!1,\"getModuleResolutionsForFile\"in this.shimHost&&(this.resolveModuleNames=function(n,r){var a=JSON.parse(t.shimHost.getModuleResolutionsForFile(r));return e.map(n,(function(n){var t=e.getProperty(a,n);return t?{resolvedFileName:t,extension:e.extensionFromPath(t),isExternalLibraryImport:!1}:void 0}))}),\"directoryExists\"in this.shimHost&&(this.directoryExists=function(e){return t.shimHost.directoryExists(e)}),\"getTypeReferenceDirectiveResolutionsForFile\"in this.shimHost&&(this.resolveTypeReferenceDirectives=function(n,r){var a=JSON.parse(t.shimHost.getTypeReferenceDirectiveResolutionsForFile(r));return e.map(n,(function(n){return e.getProperty(a,n)}))})}return n.prototype.log=function(e){this.loggingEnabled&&this.shimHost.log(e)},n.prototype.trace=function(e){this.tracingEnabled&&this.shimHost.trace(e)},n.prototype.error=function(e){this.shimHost.error(e)},n.prototype.getProjectVersion=function(){if(this.shimHost.getProjectVersion)return this.shimHost.getProjectVersion()},n.prototype.getTypeRootsVersion=function(){return this.shimHost.getTypeRootsVersion?this.shimHost.getTypeRootsVersion():0},n.prototype.useCaseSensitiveFileNames=function(){return!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames()},n.prototype.getCompilationSettings=function(){var e=this.shimHost.getCompilationSettings();if(null===e||\"\"===e)throw Error(\"LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings\");var n=JSON.parse(e);return n.allowNonTsExtensions=!0,n},n.prototype.getScriptFileNames=function(){var e=this.shimHost.getScriptFileNames();return JSON.parse(e)},n.prototype.getScriptSnapshot=function(e){var n=this.shimHost.getScriptSnapshot(e);return n&&new t(n)},n.prototype.getScriptKind=function(e){return\"getScriptKind\"in this.shimHost?this.shimHost.getScriptKind(e):0},n.prototype.getScriptVersion=function(e){return this.shimHost.getScriptVersion(e)},n.prototype.getLocalizedDiagnosticMessages=function(){var e=this.shimHost.getLocalizedDiagnosticMessages();if(null===e||\"\"===e)return null;try{return JSON.parse(e)}catch(e){return this.log(e.description||\"diagnosticMessages.generated.json has invalid JSON format\"),null}},n.prototype.getCancellationToken=function(){var n=this.shimHost.getCancellationToken();return new e.ThrottledCancellationToken(n)},n.prototype.getCurrentDirectory=function(){return this.shimHost.getCurrentDirectory()},n.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},n.prototype.getDefaultLibFileName=function(e){return this.shimHost.getDefaultLibFileName(JSON.stringify(e))},n.prototype.readDirectory=function(n,t,r,a,i){var o=e.getFileMatcherPatterns(n,r,a,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(n,JSON.stringify(t),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,i))},n.prototype.readFile=function(e,n){return this.shimHost.readFile(e,n)},n.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},n}();e.LanguageServiceShimHostAdapter=r;var a=function(){function n(e){var n=this;this.shimHost=e,this.useCaseSensitiveFileNames=!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames(),\"directoryExists\"in this.shimHost?this.directoryExists=function(e){return n.shimHost.directoryExists(e)}:this.directoryExists=void 0,\"realpath\"in this.shimHost?this.realpath=function(e){return n.shimHost.realpath(e)}:this.realpath=void 0}return n.prototype.readDirectory=function(n,t,r,a,i){var o=e.getFileMatcherPatterns(n,r,a,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(n,JSON.stringify(t),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,i))},n.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},n.prototype.readFile=function(e){return this.shimHost.readFile(e)},n.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},n}();function i(e,n,t,r){return o(e,n,!0,t,r)}function o(t,r,a,i,o){try{var s=function(n,t,r,a){var i;a&&(n.log(t),i=e.timestamp());var o=r();if(a){var s=e.timestamp();if(n.log(t+\" completed in \"+(s-i)+\" msec\"),e.isString(o)){var c=o;c.length>128&&(c=c.substring(0,128)+\"...\"),n.log(\"  result.length=\"+c.length+\", result='\"+JSON.stringify(c)+\"'\")}}return o}(t,r,i,o);return a?JSON.stringify({result:s}):s}catch(a){return a instanceof e.OperationCanceledException?JSON.stringify({canceled:!0}):(n(t,a),a.description=r,JSON.stringify({error:a}))}}e.CoreServicesShimHostAdapter=a;var s=function(){function e(e){this.factory=e,e.registerShim(this)}return e.prototype.dispose=function(e){this.factory.unregisterShim(this)},e}();function c(n,t){return n.map((function(n){return function(n,t){return{message:e.flattenDiagnosticMessageText(n.messageText,t),start:n.start,length:n.length,category:e.diagnosticCategoryName(n),code:n.code,reportsUnnecessary:n.reportsUnnecessary}}(n,t)}))}e.realizeDiagnostics=c;var l=function(n){function t(e,t,r){var a=n.call(this,e)||this;return a.host=t,a.languageService=r,a.logPerformance=!1,a.logger=a.host,a}return __extends(t,n),t.prototype.forwardJSONCall=function(e,n){return i(this.logger,e,n,this.logPerformance)},t.prototype.dispose=function(e){this.logger.log(\"dispose()\"),this.languageService.dispose(),this.languageService=null,debugObjectHost&&debugObjectHost.CollectGarbage&&(debugObjectHost.CollectGarbage(),this.logger.log(\"CollectGarbage()\")),this.logger=null,n.prototype.dispose.call(this,e)},t.prototype.refresh=function(e){this.forwardJSONCall(\"refresh(\"+e+\")\",(function(){return null}))},t.prototype.cleanupSemanticCache=function(){var e=this;this.forwardJSONCall(\"cleanupSemanticCache()\",(function(){return e.languageService.cleanupSemanticCache(),null}))},t.prototype.realizeDiagnostics=function(n){return c(n,e.getNewLineOrDefaultFromHost(this.host))},t.prototype.getSyntacticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getSyntacticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return a.languageService.getSyntacticClassifications(n,e.createTextSpan(t,r))}))},t.prototype.getSemanticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getSemanticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return a.languageService.getSemanticClassifications(n,e.createTextSpan(t,r))}))},t.prototype.getEncodedSyntacticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getEncodedSyntacticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return u(a.languageService.getEncodedSyntacticClassifications(n,e.createTextSpan(t,r)))}))},t.prototype.getEncodedSemanticClassifications=function(n,t,r){var a=this;return this.forwardJSONCall(\"getEncodedSemanticClassifications('\"+n+\"', \"+t+\", \"+r+\")\",(function(){return u(a.languageService.getEncodedSemanticClassifications(n,e.createTextSpan(t,r)))}))},t.prototype.getSyntacticDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSyntacticDiagnostics('\"+e+\"')\",(function(){var t=n.languageService.getSyntacticDiagnostics(e);return n.realizeDiagnostics(t)}))},t.prototype.getSemanticDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSemanticDiagnostics('\"+e+\"')\",(function(){var t=n.languageService.getSemanticDiagnostics(e);return n.realizeDiagnostics(t)}))},t.prototype.getSuggestionDiagnostics=function(e){var n=this;return this.forwardJSONCall(\"getSuggestionDiagnostics('\"+e+\"')\",(function(){return n.realizeDiagnostics(n.languageService.getSuggestionDiagnostics(e))}))},t.prototype.getCompilerOptionsDiagnostics=function(){var e=this;return this.forwardJSONCall(\"getCompilerOptionsDiagnostics()\",(function(){var n=e.languageService.getCompilerOptionsDiagnostics();return e.realizeDiagnostics(n)}))},t.prototype.getQuickInfoAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getQuickInfoAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getQuickInfoAtPosition(e,n)}))},t.prototype.getNameOrDottedNameSpan=function(e,n,t){var r=this;return this.forwardJSONCall(\"getNameOrDottedNameSpan('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getNameOrDottedNameSpan(e,n,t)}))},t.prototype.getBreakpointStatementAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getBreakpointStatementAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getBreakpointStatementAtPosition(e,n)}))},t.prototype.getSignatureHelpItems=function(e,n,t){var r=this;return this.forwardJSONCall(\"getSignatureHelpItems('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getSignatureHelpItems(e,n,t)}))},t.prototype.getDefinitionAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getDefinitionAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDefinitionAtPosition(e,n)}))},t.prototype.getDefinitionAndBoundSpan=function(e,n){var t=this;return this.forwardJSONCall(\"getDefinitionAndBoundSpan('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDefinitionAndBoundSpan(e,n)}))},t.prototype.getTypeDefinitionAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getTypeDefinitionAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getTypeDefinitionAtPosition(e,n)}))},t.prototype.getImplementationAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getImplementationAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getImplementationAtPosition(e,n)}))},t.prototype.getRenameInfo=function(e,n,t){var r=this;return this.forwardJSONCall(\"getRenameInfo('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getRenameInfo(e,n,t)}))},t.prototype.getSmartSelectionRange=function(e,n){var t=this;return this.forwardJSONCall(\"getSmartSelectionRange('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getSmartSelectionRange(e,n)}))},t.prototype.findRenameLocations=function(e,n,t,r,a){var i=this;return this.forwardJSONCall(\"findRenameLocations('\"+e+\"', \"+n+\", \"+t+\", \"+r+\", \"+a+\")\",(function(){return i.languageService.findRenameLocations(e,n,t,r,a)}))},t.prototype.getBraceMatchingAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getBraceMatchingAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getBraceMatchingAtPosition(e,n)}))},t.prototype.isValidBraceCompletionAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"isValidBraceCompletionAtPosition('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.isValidBraceCompletionAtPosition(e,n,t)}))},t.prototype.getSpanOfEnclosingComment=function(e,n,t){var r=this;return this.forwardJSONCall(\"getSpanOfEnclosingComment('\"+e+\"', \"+n+\")\",(function(){return r.languageService.getSpanOfEnclosingComment(e,n,t)}))},t.prototype.getIndentationAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"getIndentationAtPosition('\"+e+\"', \"+n+\")\",(function(){var a=JSON.parse(t);return r.languageService.getIndentationAtPosition(e,n,a)}))},t.prototype.getReferencesAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getReferencesAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getReferencesAtPosition(e,n)}))},t.prototype.findReferences=function(e,n){var t=this;return this.forwardJSONCall(\"findReferences('\"+e+\"', \"+n+\")\",(function(){return t.languageService.findReferences(e,n)}))},t.prototype.getOccurrencesAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getOccurrencesAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getOccurrencesAtPosition(e,n)}))},t.prototype.getDocumentHighlights=function(n,t,r){var a=this;return this.forwardJSONCall(\"getDocumentHighlights('\"+n+\"', \"+t+\")\",(function(){var i=a.languageService.getDocumentHighlights(n,t,JSON.parse(r)),o=e.normalizeSlashes(n).toLowerCase();return e.filter(i,(function(n){return e.normalizeSlashes(n.fileName).toLowerCase()===o}))}))},t.prototype.getCompletionsAtPosition=function(e,n,t){var r=this;return this.forwardJSONCall(\"getCompletionsAtPosition('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getCompletionsAtPosition(e,n,t)}))},t.prototype.getCompletionEntryDetails=function(e,n,t,r,a,i){var o=this;return this.forwardJSONCall(\"getCompletionEntryDetails('\"+e+\"', \"+n+\", '\"+t+\"')\",(function(){var s=void 0===r?void 0:JSON.parse(r);return o.languageService.getCompletionEntryDetails(e,n,t,s,a,i)}))},t.prototype.getFormattingEditsForRange=function(e,n,t,r){var a=this;return this.forwardJSONCall(\"getFormattingEditsForRange('\"+e+\"', \"+n+\", \"+t+\")\",(function(){var i=JSON.parse(r);return a.languageService.getFormattingEditsForRange(e,n,t,i)}))},t.prototype.getFormattingEditsForDocument=function(e,n){var t=this;return this.forwardJSONCall(\"getFormattingEditsForDocument('\"+e+\"')\",(function(){var r=JSON.parse(n);return t.languageService.getFormattingEditsForDocument(e,r)}))},t.prototype.getFormattingEditsAfterKeystroke=function(e,n,t,r){var a=this;return this.forwardJSONCall(\"getFormattingEditsAfterKeystroke('\"+e+\"', \"+n+\", '\"+t+\"')\",(function(){var i=JSON.parse(r);return a.languageService.getFormattingEditsAfterKeystroke(e,n,t,i)}))},t.prototype.getDocCommentTemplateAtPosition=function(e,n){var t=this;return this.forwardJSONCall(\"getDocCommentTemplateAtPosition('\"+e+\"', \"+n+\")\",(function(){return t.languageService.getDocCommentTemplateAtPosition(e,n)}))},t.prototype.getNavigateToItems=function(e,n,t){var r=this;return this.forwardJSONCall(\"getNavigateToItems('\"+e+\"', \"+n+\", \"+t+\")\",(function(){return r.languageService.getNavigateToItems(e,n,t)}))},t.prototype.getNavigationBarItems=function(e){var n=this;return this.forwardJSONCall(\"getNavigationBarItems('\"+e+\"')\",(function(){return n.languageService.getNavigationBarItems(e)}))},t.prototype.getNavigationTree=function(e){var n=this;return this.forwardJSONCall(\"getNavigationTree('\"+e+\"')\",(function(){return n.languageService.getNavigationTree(e)}))},t.prototype.getOutliningSpans=function(e){var n=this;return this.forwardJSONCall(\"getOutliningSpans('\"+e+\"')\",(function(){return n.languageService.getOutliningSpans(e)}))},t.prototype.getTodoComments=function(e,n){var t=this;return this.forwardJSONCall(\"getTodoComments('\"+e+\"')\",(function(){return t.languageService.getTodoComments(e,JSON.parse(n))}))},t.prototype.getEmitOutput=function(e){var n=this;return this.forwardJSONCall(\"getEmitOutput('\"+e+\"')\",(function(){return n.languageService.getEmitOutput(e)}))},t.prototype.getEmitOutputObject=function(e){var n=this;return o(this.logger,\"getEmitOutput('\"+e+\"')\",!1,(function(){return n.languageService.getEmitOutput(e)}),this.logPerformance)},t}(s);function u(e){return{spans:e.spans.join(\",\"),endOfLineState:e.endOfLineState}}var d=function(n){function t(t,r){var a=n.call(this,t)||this;return a.logger=r,a.logPerformance=!1,a.classifier=e.createClassifier(),a}return __extends(t,n),t.prototype.getEncodedLexicalClassifications=function(e,n,t){var r=this;return void 0===t&&(t=!1),i(this.logger,\"getEncodedLexicalClassifications\",(function(){return u(r.classifier.getEncodedLexicalClassifications(e,n,t))}),this.logPerformance)},t.prototype.getClassificationsForLine=function(e,n,t){void 0===t&&(t=!1);for(var r=this.classifier.getClassificationsForLine(e,n,t),a=\"\",i=0,o=r.entries;i<o.length;i++){var s=o[i];a+=s.length+\"\\n\",a+=s.classification+\"\\n\"}return a+=r.finalLexState},t}(s),p=function(n){function t(e,t,r){var a=n.call(this,e)||this;return a.logger=t,a.host=r,a.logPerformance=!1,a}return __extends(t,n),t.prototype.forwardJSONCall=function(e,n){return i(this.logger,e,n,this.logPerformance)},t.prototype.resolveModuleName=function(n,t,r){var a=this;return this.forwardJSONCall(\"resolveModuleName('\"+n+\"')\",(function(){var i=JSON.parse(r),o=e.resolveModuleName(t,e.normalizeSlashes(n),i,a.host),s=o.resolvedModule?o.resolvedModule.resolvedFileName:void 0;return o.resolvedModule&&\".ts\"!==o.resolvedModule.extension&&\".tsx\"!==o.resolvedModule.extension&&\".d.ts\"!==o.resolvedModule.extension&&(s=void 0),{resolvedFileName:s,failedLookupLocations:o.failedLookupLocations}}))},t.prototype.resolveTypeReferenceDirective=function(n,t,r){var a=this;return this.forwardJSONCall(\"resolveTypeReferenceDirective(\"+n+\")\",(function(){var i=JSON.parse(r),o=e.resolveTypeReferenceDirective(t,e.normalizeSlashes(n),i,a.host);return{resolvedFileName:o.resolvedTypeReferenceDirective?o.resolvedTypeReferenceDirective.resolvedFileName:void 0,primary:!o.resolvedTypeReferenceDirective||o.resolvedTypeReferenceDirective.primary,failedLookupLocations:o.failedLookupLocations}}))},t.prototype.getPreProcessedFileInfo=function(n,t){var r=this;return this.forwardJSONCall(\"getPreProcessedFileInfo('\"+n+\"')\",(function(){var n=e.preProcessFile(e.getSnapshotText(t),!0,!0);return{referencedFiles:r.convertFileReferences(n.referencedFiles),importedFiles:r.convertFileReferences(n.importedFiles),ambientExternalModules:n.ambientExternalModules,isLibFile:n.isLibFile,typeReferenceDirectives:r.convertFileReferences(n.typeReferenceDirectives),libReferenceDirectives:r.convertFileReferences(n.libReferenceDirectives)}}))},t.prototype.getAutomaticTypeDirectiveNames=function(n){var t=this;return this.forwardJSONCall(\"getAutomaticTypeDirectiveNames('\"+n+\"')\",(function(){var r=JSON.parse(n);return e.getAutomaticTypeDirectiveNames(r,t.host)}))},t.prototype.convertFileReferences=function(n){if(n){for(var t=[],r=0,a=n;r<a.length;r++){var i=a[r];t.push({path:e.normalizeSlashes(i.fileName),position:i.pos,length:i.end-i.pos})}return t}},t.prototype.getTSConfigFileInfo=function(n,t){var r=this;return this.forwardJSONCall(\"getTSConfigFileInfo('\"+n+\"')\",(function(){var a=e.parseJsonText(n,e.getSnapshotText(t)),i=e.normalizeSlashes(n),o=e.parseJsonSourceFileConfigFileContent(a,r.host,e.getDirectoryPath(i),{},i);return{options:o.options,typeAcquisition:o.typeAcquisition,files:o.fileNames,raw:o.raw,errors:c(__spreadArrays(a.parseDiagnostics,o.errors),\"\\r\\n\")}}))},t.prototype.getDefaultCompilationSettings=function(){return this.forwardJSONCall(\"getDefaultCompilationSettings()\",(function(){return e.getDefaultCompilerOptions()}))},t.prototype.discoverTypings=function(n){var t=this,r=e.createGetCanonicalFileName(!1);return this.forwardJSONCall(\"discoverTypings()\",(function(){var a=JSON.parse(n);return void 0===t.safeList&&(t.safeList=e.JsTyping.loadSafeList(t.host,e.toPath(a.safeListPath,a.safeListPath,r))),e.JsTyping.discoverTypings(t.host,(function(e){return t.logger.log(e)}),a.fileNames,e.toPath(a.projectRootPath,a.projectRootPath,r),t.safeList,a.packageNameToTypingLocation,a.typeAcquisition,a.unresolvedImports,a.typesRegistry)}))},t}(s),m=function(){function t(){this._shims=[]}return t.prototype.getServicesVersion=function(){return e.servicesVersion},t.prototype.createLanguageServiceShim=function(t){try{void 0===this.documentRegistry&&(this.documentRegistry=e.createDocumentRegistry(t.useCaseSensitiveFileNames&&t.useCaseSensitiveFileNames(),t.getCurrentDirectory()));var a=new r(t),i=e.createLanguageService(a,this.documentRegistry,!1);return new l(this,t,i)}catch(e){throw n(t,e),e}},t.prototype.createClassifierShim=function(e){try{return new d(this,e)}catch(t){throw n(e,t),t}},t.prototype.createCoreServicesShim=function(e){try{var t=new a(e);return new p(this,e,t)}catch(t){throw n(e,t),t}},t.prototype.close=function(){e.clear(this._shims),this.documentRegistry=void 0},t.prototype.registerShim=function(e){this._shims.push(e)},t.prototype.unregisterShim=function(e){for(var n=0;n<this._shims.length;n++)if(this._shims[n]===e)return void delete this._shims[n];throw new Error(\"Invalid operation\")},t}();e.TypeScriptServicesFactory=m,\"undefined\"!=typeof module&&module.exports&&(module.exports=e)}(ts||(ts={})),function(e){!function(e){e.TypeScriptServicesFactory=ts.TypeScriptServicesFactory}(e.Services||(e.Services={}))}(TypeScript||(TypeScript={}));var toolsVersion=ts.versionMajorMinor;define(\"vs/language/typescript/lib/typescriptServices\",[],(function(){return ts})),define(\"vs/language/typescript/lib/lib\",[\"require\",\"exports\"],(function(e,n){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.lib_es2015_symbol_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface SymbolConstructor {\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Symbol;\\n\\n    /**\\n     * Returns a new unique Symbol value.\\n     * @param  description Description of the new Symbol object.\\n     */\\n    (description?: string | number): symbol;\\n\\n    /**\\n     * Returns a Symbol object from the global symbol registry matching the given key if found.\\n     * Otherwise, returns a new symbol with this key.\\n     * @param key key to search for.\\n     */\\n    for(key: string): symbol;\\n\\n    /**\\n     * Returns a key from the global symbol registry matching the given Symbol if found.\\n     * Otherwise, returns a undefined.\\n     * @param sym Symbol to find the key for.\\n     */\\n    keyFor(sym: symbol): string | undefined;\\n}\\n\\ndeclare var Symbol: SymbolConstructor;',n.lib_es2015_symbol_wellknown_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_symbol_dts+'\\ninterface SymbolConstructor {\\n    /**\\n     * A method that determines if a constructor object recognizes an object as one of the\\n     * constructor’s instances. Called by the semantics of the instanceof operator.\\n     */\\n    readonly hasInstance: symbol;\\n\\n    /**\\n     * A Boolean value that if true indicates that an object should flatten to its array elements\\n     * by Array.prototype.concat.\\n     */\\n    readonly isConcatSpreadable: symbol;\\n\\n    /**\\n     * A regular expression method that matches the regular expression against a string. Called\\n     * by the String.prototype.match method.\\n     */\\n    readonly match: symbol;\\n\\n    /**\\n     * A regular expression method that replaces matched substrings of a string. Called by the\\n     * String.prototype.replace method.\\n     */\\n    readonly replace: symbol;\\n\\n    /**\\n     * A regular expression method that returns the index within a string that matches the\\n     * regular expression. Called by the String.prototype.search method.\\n     */\\n    readonly search: symbol;\\n\\n    /**\\n     * A function valued property that is the constructor function that is used to create\\n     * derived objects.\\n     */\\n    readonly species: symbol;\\n\\n    /**\\n     * A regular expression method that splits a string at the indices that match the regular\\n     * expression. Called by the String.prototype.split method.\\n     */\\n    readonly split: symbol;\\n\\n    /**\\n     * A method that converts an object to a corresponding primitive value.\\n     * Called by the ToPrimitive abstract operation.\\n     */\\n    readonly toPrimitive: symbol;\\n\\n    /**\\n     * A String value that is used in the creation of the default string description of an object.\\n     * Called by the built-in method Object.prototype.toString.\\n     */\\n    readonly toStringTag: symbol;\\n\\n    /**\\n     * An Object whose own property names are property names that are excluded from the \\'with\\'\\n     * environment bindings of the associated objects.\\n     */\\n    readonly unscopables: symbol;\\n}\\n\\ninterface Symbol {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Array<T> {\\n    /**\\n     * Returns an object whose properties have the value \\'true\\'\\n     * when they will be absent when used in a \\'with\\' statement.\\n     */\\n    [Symbol.unscopables](): {\\n        copyWithin: boolean;\\n        entries: boolean;\\n        fill: boolean;\\n        find: boolean;\\n        findIndex: boolean;\\n        keys: boolean;\\n        values: boolean;\\n    };\\n}\\n\\ninterface Date {\\n    /**\\n     * Converts a Date object to a string.\\n     */\\n    [Symbol.toPrimitive](hint: \"default\"): string;\\n    /**\\n     * Converts a Date object to a string.\\n     */\\n    [Symbol.toPrimitive](hint: \"string\"): string;\\n    /**\\n     * Converts a Date object to a number.\\n     */\\n    [Symbol.toPrimitive](hint: \"number\"): number;\\n    /**\\n     * Converts a Date object to a string or number.\\n     *\\n     * @param hint The strings \"number\", \"string\", or \"default\" to specify what primitive to return.\\n     *\\n     * @throws {TypeError} If \\'hint\\' was given something other than \"number\", \"string\", or \"default\".\\n     * @returns A number if \\'hint\\' was \"number\", a string if \\'hint\\' was \"string\" or \"default\".\\n     */\\n    [Symbol.toPrimitive](hint: string): string | number;\\n}\\n\\ninterface Map<K, V> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface WeakMap<K extends object, V> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Set<T> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface WeakSet<T extends object> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface JSON {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Function {\\n    /**\\n     * Determines whether the given value inherits from this function if this function was used\\n     * as a constructor function.\\n     *\\n     * A constructor function can control which objects are recognized as its instances by\\n     * \\'instanceof\\' by overriding this method.\\n     */\\n    [Symbol.hasInstance](value: any): boolean;\\n}\\n\\ninterface GeneratorFunction {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Math {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Promise<T> {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface PromiseConstructor {\\n    readonly [Symbol.species]: PromiseConstructor;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Matches a string with this regular expression, and returns an array containing the results of\\n     * that search.\\n     * @param string A string to search within.\\n     */\\n    [Symbol.match](string: string): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using this regular expression.\\n     * @param string A String object or string literal whose contents matching against\\n     *               this regular expression will be replaced\\n     * @param replaceValue A String object or string literal containing the text to replace for every\\n     *                     successful match of this regular expression.\\n     */\\n    [Symbol.replace](string: string, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using this regular expression.\\n     * @param string A String object or string literal whose contents matching against\\n     *               this regular expression will be replaced\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the position beginning first substring match in a regular expression search\\n     * using this regular expression.\\n     *\\n     * @param string The string to search within.\\n     */\\n    [Symbol.search](string: string): number;\\n\\n    /**\\n     * Returns an array of substrings that were delimited by strings in the original input that\\n     * match against this regular expression.\\n     *\\n     * If the regular expression contains capturing parentheses, then each time this\\n     * regular expression matches, the results (including any undefined results) of the\\n     * capturing parentheses are spliced.\\n     *\\n     * @param string string value to split\\n     * @param limit if not undefined, the output array is truncated so that it contains no more\\n     * than \\'limit\\' elements.\\n     */\\n    [Symbol.split](string: string, limit?: number): string[];\\n}\\n\\ninterface RegExpConstructor {\\n    readonly [Symbol.species]: RegExpConstructor;\\n}\\n\\ninterface String {\\n    /**\\n     * Matches a string an object that supports being matched against, and returns an array containing the results of that search.\\n     * @param matcher An object that supports being matched against.\\n     */\\n    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using an object that supports replacement within a string.\\n     * @param searchValue A object can search for and replace matches within a string.\\n     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\\n     */\\n    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using an object that supports replacement within a string.\\n     * @param searchValue A object can search for and replace matches within a string.\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the first substring match in a regular expression search.\\n     * @param searcher An object which supports searching within a string.\\n     */\\n    search(searcher: { [Symbol.search](string: string): number; }): number;\\n\\n    /**\\n     * Split a string into substrings using the specified separator and return them as an array.\\n     * @param splitter An object that can split a string.\\n     * @param limit A value used to limit the number of elements returned in the array.\\n     */\\n    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\\n}\\n\\ninterface ArrayBuffer {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface DataView {\\n    readonly [Symbol.toStringTag]: string;\\n}\\n\\ninterface Int8Array {\\n    readonly [Symbol.toStringTag]: \"Int8Array\";\\n}\\n\\ninterface Uint8Array {\\n    readonly [Symbol.toStringTag]: \"UInt8Array\";\\n}\\n\\ninterface Uint8ClampedArray {\\n    readonly [Symbol.toStringTag]: \"Uint8ClampedArray\";\\n}\\n\\ninterface Int16Array {\\n    readonly [Symbol.toStringTag]: \"Int16Array\";\\n}\\n\\ninterface Uint16Array {\\n    readonly [Symbol.toStringTag]: \"Uint16Array\";\\n}\\n\\ninterface Int32Array {\\n    readonly [Symbol.toStringTag]: \"Int32Array\";\\n}\\n\\ninterface Uint32Array {\\n    readonly [Symbol.toStringTag]: \"Uint32Array\";\\n}\\n\\ninterface Float32Array {\\n    readonly [Symbol.toStringTag]: \"Float32Array\";\\n}\\n\\ninterface Float64Array {\\n    readonly [Symbol.toStringTag]: \"Float64Array\";\\n}\\n\\ninterface ArrayConstructor {\\n    readonly [Symbol.species]: ArrayConstructor;\\n}\\ninterface MapConstructor {\\n    readonly [Symbol.species]: MapConstructor;\\n}\\ninterface SetConstructor {\\n    readonly [Symbol.species]: SetConstructor;\\n}\\ninterface ArrayBufferConstructor {\\n    readonly [Symbol.species]: ArrayBufferConstructor;\\n}',n.lib_es2015_reflect_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ndeclare namespace Reflect {\\n    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;\\n    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;\\n    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;\\n    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;\\n    function get(target: object, propertyKey: PropertyKey, receiver?: any): any;\\n    function getOwnPropertyDescriptor(target: object, propertyKey: PropertyKey): PropertyDescriptor | undefined;\\n    function getPrototypeOf(target: object): object;\\n    function has(target: object, propertyKey: PropertyKey): boolean;\\n    function isExtensible(target: object): boolean;\\n    function ownKeys(target: object): PropertyKey[];\\n    function preventExtensions(target: object): boolean;\\n    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;\\n    function setPrototypeOf(target: object, proto: any): boolean;\\n}\\n',n.lib_es2015_proxy_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface ProxyHandler<T extends object> {\\n    getPrototypeOf? (target: T): object | null;\\n    setPrototypeOf? (target: T, v: any): boolean;\\n    isExtensible? (target: T): boolean;\\n    preventExtensions? (target: T): boolean;\\n    getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor | undefined;\\n    has? (target: T, p: PropertyKey): boolean;\\n    get? (target: T, p: PropertyKey, receiver: any): any;\\n    set? (target: T, p: PropertyKey, value: any, receiver: any): boolean;\\n    deleteProperty? (target: T, p: PropertyKey): boolean;\\n    defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;\\n    enumerate? (target: T): PropertyKey[];\\n    ownKeys? (target: T): PropertyKey[];\\n    apply? (target: T, thisArg: any, argArray?: any): any;\\n    construct? (target: T, argArray: any, newTarget?: any): object;\\n}\\n\\ninterface ProxyConstructor {\\n    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };\\n    new <T extends object>(target: T, handler: ProxyHandler<T>): T;\\n}\\ndeclare var Proxy: ProxyConstructor;\\n',n.lib_es2015_iterable_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_symbol_dts+\"\\ninterface SymbolConstructor {\\n    /**\\n     * A method that returns the default iterator for an object. Called by the semantics of the\\n     * for-of statement.\\n     */\\n    readonly iterator: symbol;\\n}\\n\\ninterface IteratorYieldResult<TYield> {\\n    done?: false;\\n    value: TYield;\\n}\\n\\ninterface IteratorReturnResult<TReturn> {\\n    done: true;\\n    value: TReturn;\\n}\\n\\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\\n\\ninterface Iterator<T, TReturn = any, TNext = undefined> {\\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\\n    return?(value?: TReturn): IteratorResult<T, TReturn>;\\n    throw?(e?: any): IteratorResult<T, TReturn>;\\n}\\n\\ninterface Iterable<T> {\\n    [Symbol.iterator](): Iterator<T>;\\n}\\n\\ninterface IterableIterator<T> extends Iterator<T> {\\n    [Symbol.iterator](): IterableIterator<T>;\\n}\\n\\ninterface Array<T> {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, T]>;\\n\\n    /**\\n     * Returns an iterable of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an iterable of values in the array\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface ArrayConstructor {\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param iterable An iterable object to convert to an array.\\n     */\\n    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\\n\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param iterable An iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\\n}\\n\\ninterface ReadonlyArray<T> {\\n    /** Iterator of values in the array. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, T]>;\\n\\n    /**\\n     * Returns an iterable of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an iterable of values in the array\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface IArguments {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<any>;\\n}\\n\\ninterface Map<K, V> {\\n    /** Returns an iterable of entries in the map. */\\n    [Symbol.iterator](): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the map.\\n     */\\n    entries(): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of keys in the map\\n     */\\n    keys(): IterableIterator<K>;\\n\\n    /**\\n     * Returns an iterable of values in the map\\n     */\\n    values(): IterableIterator<V>;\\n}\\n\\ninterface ReadonlyMap<K, V> {\\n    /** Returns an iterable of entries in the map. */\\n    [Symbol.iterator](): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of key, value pairs for every entry in the map.\\n     */\\n    entries(): IterableIterator<[K, V]>;\\n\\n    /**\\n     * Returns an iterable of keys in the map\\n     */\\n    keys(): IterableIterator<K>;\\n\\n    /**\\n     * Returns an iterable of values in the map\\n     */\\n    values(): IterableIterator<V>;\\n}\\n\\ninterface MapConstructor {\\n    new <K, V>(iterable: Iterable<readonly [K, V]>): Map<K, V>;\\n}\\n\\ninterface WeakMap<K extends object, V> { }\\n\\ninterface WeakMapConstructor {\\n    new <K extends object, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;\\n}\\n\\ninterface Set<T> {\\n    /** Iterates over values in the set. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n    /**\\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\\n     */\\n    entries(): IterableIterator<[T, T]>;\\n    /**\\n     * Despite its name, returns an iterable of the values in the set,\\n     */\\n    keys(): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of values in the set.\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface ReadonlySet<T> {\\n    /** Iterates over values in the set. */\\n    [Symbol.iterator](): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of [v,v] pairs for every value `v` in the set.\\n     */\\n    entries(): IterableIterator<[T, T]>;\\n\\n    /**\\n     * Despite its name, returns an iterable of the values in the set,\\n     */\\n    keys(): IterableIterator<T>;\\n\\n    /**\\n     * Returns an iterable of values in the set.\\n     */\\n    values(): IterableIterator<T>;\\n}\\n\\ninterface SetConstructor {\\n    new <T>(iterable?: Iterable<T> | null): Set<T>;\\n}\\n\\ninterface WeakSet<T extends object> { }\\n\\ninterface WeakSetConstructor {\\n    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;\\n}\\n\\ninterface Promise<T> { }\\n\\ninterface PromiseConstructor {\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;\\n}\\n\\ndeclare namespace Reflect {\\n    function enumerate(target: object): IterableIterator<any>;\\n}\\n\\ninterface String {\\n    /** Iterator */\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface Int8Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int8ArrayConstructor {\\n    new (elements: Iterable<number>): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;\\n}\\n\\ninterface Uint8Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint8ArrayConstructor {\\n    new (elements: Iterable<number>): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;\\n}\\n\\ninterface Uint8ClampedArray {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint8ClampedArrayConstructor {\\n    new (elements: Iterable<number>): Uint8ClampedArray;\\n\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;\\n}\\n\\ninterface Int16Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int16ArrayConstructor {\\n    new (elements: Iterable<number>): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;\\n}\\n\\ninterface Uint16Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint16ArrayConstructor {\\n    new (elements: Iterable<number>): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;\\n}\\n\\ninterface Int32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Int32ArrayConstructor {\\n    new (elements: Iterable<number>): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;\\n}\\n\\ninterface Uint32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Uint32ArrayConstructor {\\n    new (elements: Iterable<number>): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;\\n}\\n\\ninterface Float32Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Float32ArrayConstructor {\\n    new (elements: Iterable<number>): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;\\n}\\n\\ninterface Float64Array {\\n    [Symbol.iterator](): IterableIterator<number>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the array\\n     */\\n    entries(): IterableIterator<[number, number]>;\\n    /**\\n     * Returns an list of keys in the array\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the array\\n     */\\n    values(): IterableIterator<number>;\\n}\\n\\ninterface Float64ArrayConstructor {\\n    new (elements: Iterable<number>): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;\\n}\\n\",n.lib_es2015_promise_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface PromiseConstructor {\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Promise<any>;\\n\\n    /**\\n     * Creates a new Promise.\\n     * @param executor A callback used to initialize the promise. This callback is passed two arguments:\\n     * a resolve callback used to resolve the promise with a value or the result of another promise,\\n     * and a reject callback used to reject the promise with a provided reason or error.\\n     */\\n    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6, T7>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5, T6>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4, T5>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3, T4>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2, T3>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T1, T2>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;\\n\\n    /**\\n     * Creates a Promise that is resolved with an array of results when all of the provided Promises\\n     * resolve, or rejected when any Promise is rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    all<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An array of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: readonly T[]): Promise<T extends PromiseLike<infer U> ? U : T>;\\n\\n    /**\\n     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\\n     * or rejected.\\n     * @param values An iterable of Promises.\\n     * @returns A new Promise.\\n     */\\n    race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>;\\n\\n    /**\\n     * Creates a new rejected promise for the provided reason.\\n     * @param reason The reason the promise was rejected.\\n     * @returns A new rejected Promise.\\n     */\\n    reject<T = never>(reason?: any): Promise<T>;\\n\\n    /**\\n     * Creates a new resolved promise for the provided value.\\n     * @param value A promise.\\n     * @returns A promise whose internal state matches the provided promise.\\n     */\\n    resolve<T>(value: T | PromiseLike<T>): Promise<T>;\\n\\n    /**\\n     * Creates a new resolved promise .\\n     * @returns A resolved promise.\\n     */\\n    resolve(): Promise<void>;\\n}\\n\\ndeclare var Promise: PromiseConstructor;\\n',n.lib_es2015_generator_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_iterable_dts+\"\\ninterface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {\\n    // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\\n    next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\\n    return(value: TReturn): IteratorResult<T, TReturn>;\\n    throw(e: any): IteratorResult<T, TReturn>;\\n    [Symbol.iterator](): Generator<T, TReturn, TNext>;\\n}\\n\\ninterface GeneratorFunction {\\n    /**\\n     * Creates a new Generator object.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new (...args: any[]): Generator;\\n    /**\\n     * Creates a new Generator object.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    (...args: any[]): Generator;\\n    /**\\n     * The length of the arguments.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the name of the function.\\n     */\\n    readonly name: string;\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: Generator;\\n}\\n\\ninterface GeneratorFunctionConstructor {\\n    /**\\n     * Creates a new Generator function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new (...args: string[]): GeneratorFunction;\\n    /**\\n     * Creates a new Generator function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    (...args: string[]): GeneratorFunction;\\n    /**\\n     * The length of the arguments.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the name of the function.\\n     */\\n    readonly name: string;\\n    /**\\n     * A reference to the prototype.\\n     */\\n    readonly prototype: GeneratorFunction;\\n}\\n\",n.lib_es2015_collection_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface Map<K, V> {\\n    clear(): void;\\n    delete(key: K): boolean;\\n    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    set(key: K, value: V): this;\\n    readonly size: number;\\n}\\n\\ninterface MapConstructor {\\n    new(): Map<any, any>;\\n    new<K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;\\n    readonly prototype: Map<any, any>;\\n}\\ndeclare var Map: MapConstructor;\\n\\ninterface ReadonlyMap<K, V> {\\n    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    readonly size: number;\\n}\\n\\ninterface WeakMap<K extends object, V> {\\n    delete(key: K): boolean;\\n    get(key: K): V | undefined;\\n    has(key: K): boolean;\\n    set(key: K, value: V): this;\\n}\\n\\ninterface WeakMapConstructor {\\n    new <K extends object = object, V = any>(entries?: readonly [K, V][] | null): WeakMap<K, V>;\\n    readonly prototype: WeakMap<object, any>;\\n}\\ndeclare var WeakMap: WeakMapConstructor;\\n\\ninterface Set<T> {\\n    add(value: T): this;\\n    clear(): void;\\n    delete(value: T): boolean;\\n    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;\\n    has(value: T): boolean;\\n    readonly size: number;\\n}\\n\\ninterface SetConstructor {\\n    new <T = any>(values?: readonly T[] | null): Set<T>;\\n    readonly prototype: Set<any>;\\n}\\ndeclare var Set: SetConstructor;\\n\\ninterface ReadonlySet<T> {\\n    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;\\n    has(value: T): boolean;\\n    readonly size: number;\\n}\\n\\ninterface WeakSet<T extends object> {\\n    add(value: T): this;\\n    delete(value: T): boolean;\\n    has(value: T): boolean;\\n}\\n\\ninterface WeakSetConstructor {\\n    new <T extends object = object>(values?: readonly T[] | null): WeakSet<T>;\\n    readonly prototype: WeakSet<object>;\\n}\\ndeclare var WeakSet: WeakSetConstructor;\\n',n.lib_es2015_core_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\ninterface Array<T> {\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;\\n    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: T, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n}\\n\\ninterface ArrayConstructor {\\n    /**\\n     * Creates an array from an array-like object.\\n     * @param arrayLike An array-like object to convert to an array.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>): T[];\\n\\n    /**\\n     * Creates an array from an iterable object.\\n     * @param arrayLike An array-like object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of \\'this\\' used to invoke the mapfn.\\n     */\\n    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of<T>(...items: T[]): T[];\\n}\\n\\ninterface DateConstructor {\\n    new (value: number | string | Date): Date;\\n}\\n\\ninterface Function {\\n    /**\\n     * Returns the name of the function. Function names are read-only and can not be changed.\\n     */\\n    readonly name: string;\\n}\\n\\ninterface Math {\\n    /**\\n     * Returns the number of leading zero bits in the 32-bit binary representation of a number.\\n     * @param x A numeric expression.\\n     */\\n    clz32(x: number): number;\\n\\n    /**\\n     * Returns the result of 32-bit multiplication of two numbers.\\n     * @param x First number\\n     * @param y Second number\\n     */\\n    imul(x: number, y: number): number;\\n\\n    /**\\n     * Returns the sign of the x, indicating whether x is positive, negative or zero.\\n     * @param x The numeric expression to test\\n     */\\n    sign(x: number): number;\\n\\n    /**\\n     * Returns the base 10 logarithm of a number.\\n     * @param x A numeric expression.\\n     */\\n    log10(x: number): number;\\n\\n    /**\\n     * Returns the base 2 logarithm of a number.\\n     * @param x A numeric expression.\\n     */\\n    log2(x: number): number;\\n\\n    /**\\n     * Returns the natural logarithm of 1 + x.\\n     * @param x A numeric expression.\\n     */\\n    log1p(x: number): number;\\n\\n    /**\\n     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to\\n     * subtracting 1 from the exponential function of x (e raised to the power of x, where e\\n     * is the base of the natural logarithms).\\n     * @param x A numeric expression.\\n     */\\n    expm1(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    cosh(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    sinh(x: number): number;\\n\\n    /**\\n     * Returns the hyperbolic tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    tanh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    acosh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    asinh(x: number): number;\\n\\n    /**\\n     * Returns the inverse hyperbolic tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    atanh(x: number): number;\\n\\n    /**\\n     * Returns the square root of the sum of squares of its arguments.\\n     * @param values Values to compute the square root for.\\n     *     If no arguments are passed, the result is +0.\\n     *     If there is only one argument, the result is the absolute value.\\n     *     If any argument is +Infinity or -Infinity, the result is +Infinity.\\n     *     If any argument is NaN, the result is NaN.\\n     *     If all arguments are either +0 or −0, the result is +0.\\n     */\\n    hypot(...values: number[]): number;\\n\\n    /**\\n     * Returns the integral part of the a numeric expression, x, removing any fractional digits.\\n     * If x is already an integer, the result is x.\\n     * @param x A numeric expression.\\n     */\\n    trunc(x: number): number;\\n\\n    /**\\n     * Returns the nearest single precision float representation of a number.\\n     * @param x A numeric expression.\\n     */\\n    fround(x: number): number;\\n\\n    /**\\n     * Returns an implementation-dependent approximation to the cube root of number.\\n     * @param x A numeric expression.\\n     */\\n    cbrt(x: number): number;\\n}\\n\\ninterface NumberConstructor {\\n    /**\\n     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1\\n     * that is representable as a Number value, which is approximately:\\n     * 2.2204460492503130808472633361816 x 10‍−‍16.\\n     */\\n    readonly EPSILON: number;\\n\\n    /**\\n     * Returns true if passed value is finite.\\n     * Unlike the global isFinite, Number.isFinite doesn\\'t forcibly convert the parameter to a\\n     * number. Only finite values of the type number, result in true.\\n     * @param number A numeric value.\\n     */\\n    isFinite(number: number): boolean;\\n\\n    /**\\n     * Returns true if the value passed is an integer, false otherwise.\\n     * @param number A numeric value.\\n     */\\n    isInteger(number: number): boolean;\\n\\n    /**\\n     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a\\n     * number). Unlike the global isNaN(), Number.isNaN() doesn\\'t forcefully convert the parameter\\n     * to a number. Only values of the type number, that are also NaN, result in true.\\n     * @param number A numeric value.\\n     */\\n    isNaN(number: number): boolean;\\n\\n    /**\\n     * Returns true if the value passed is a safe integer.\\n     * @param number A numeric value.\\n     */\\n    isSafeInteger(number: number): boolean;\\n\\n    /**\\n     * The value of the largest integer n such that n and n + 1 are both exactly representable as\\n     * a Number value.\\n     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.\\n     */\\n    readonly MAX_SAFE_INTEGER: number;\\n\\n    /**\\n     * The value of the smallest integer n such that n and n − 1 are both exactly representable as\\n     * a Number value.\\n     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).\\n     */\\n    readonly MIN_SAFE_INTEGER: number;\\n\\n    /**\\n     * Converts a string to a floating-point number.\\n     * @param string A string that contains a floating-point number.\\n     */\\n    parseFloat(string: string): number;\\n\\n    /**\\n     * Converts A string to an integer.\\n     * @param s A string to convert into a number.\\n     * @param radix A value between 2 and 36 that specifies the base of the number in numString.\\n     * If this argument is not supplied, strings with a prefix of \\'0x\\' are considered hexadecimal.\\n     * All other strings are considered decimal.\\n     */\\n    parseInt(string: string, radix?: number): number;\\n}\\n\\ninterface ObjectConstructor {\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source The source object from which to copy properties.\\n     */\\n    assign<T, U>(target: T, source: U): T & U;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source1 The first source object from which to copy properties.\\n     * @param source2 The second source object from which to copy properties.\\n     */\\n    assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param source1 The first source object from which to copy properties.\\n     * @param source2 The second source object from which to copy properties.\\n     * @param source3 The third source object from which to copy properties.\\n     */\\n    assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\\n\\n    /**\\n     * Copy the values of all of the enumerable own properties from one or more source objects to a\\n     * target object. Returns the target object.\\n     * @param target The target object to copy to.\\n     * @param sources One or more source objects from which to copy properties\\n     */\\n    assign(target: object, ...sources: any[]): any;\\n\\n    /**\\n     * Returns an array of all symbol properties found directly on object o.\\n     * @param o Object to retrieve the symbols from.\\n     */\\n    getOwnPropertySymbols(o: any): symbol[];\\n\\n    /**\\n     * Returns the names of the enumerable string properties and methods of an object.\\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\\n     */\\n    keys(o: {}): string[];\\n\\n    /**\\n     * Returns true if the values are the same value, false otherwise.\\n     * @param value1 The first value.\\n     * @param value2 The second value.\\n     */\\n    is(value1: any, value2: any): boolean;\\n\\n    /**\\n     * Sets the prototype of a specified object o to object proto or null. Returns the object o.\\n     * @param o The object to change its prototype.\\n     * @param proto The value of the new prototype or null.\\n     */\\n    setPrototypeOf(o: any, proto: object | null): any;\\n}\\n\\ninterface ReadonlyArray<T> {\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find<S extends T>(predicate: (this: void, value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\\n    find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Returns a string indicating the flags of the regular expression in question. This field is read-only.\\n     * The characters in this string are sequenced and concatenated in the following order:\\n     *\\n     *    - \"g\" for global\\n     *    - \"i\" for ignoreCase\\n     *    - \"m\" for multiline\\n     *    - \"u\" for unicode\\n     *    - \"y\" for sticky\\n     *\\n     * If no flags are set, the value is the empty string.\\n     */\\n    readonly flags: string;\\n\\n    /**\\n     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular\\n     * expression. Default is false. Read-only.\\n     */\\n    readonly sticky: boolean;\\n\\n    /**\\n     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular\\n     * expression. Default is false. Read-only.\\n     */\\n    readonly unicode: boolean;\\n}\\n\\ninterface RegExpConstructor {\\n    new (pattern: RegExp | string, flags?: string): RegExp;\\n    (pattern: RegExp | string, flags?: string): RegExp;\\n}\\n\\ninterface String {\\n    /**\\n     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\\n     * value of the UTF-16 encoded code point starting at the string element at position pos in\\n     * the String resulting from converting this object to a String.\\n     * If there is no element at that position, the result is undefined.\\n     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\\n     */\\n    codePointAt(pos: number): number | undefined;\\n\\n    /**\\n     * Returns true if searchString appears as a substring of the result of converting this\\n     * object to a String, at one or more positions that are\\n     * greater than or equal to position; otherwise, returns false.\\n     * @param searchString search string\\n     * @param position If position is undefined, 0 is assumed, so as to search all of the String.\\n     */\\n    includes(searchString: string, position?: number): boolean;\\n\\n    /**\\n     * Returns true if the sequence of elements of searchString converted to a String is the\\n     * same as the corresponding elements of this object (converted to a String) starting at\\n     * endPosition – length(this). Otherwise returns false.\\n     */\\n    endsWith(searchString: string, endPosition?: number): boolean;\\n\\n    /**\\n     * Returns the String value result of normalizing the string into the normalization form\\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\\n     * is \"NFC\"\\n     */\\n    normalize(form: \"NFC\" | \"NFD\" | \"NFKC\" | \"NFKD\"): string;\\n\\n    /**\\n     * Returns the String value result of normalizing the string into the normalization form\\n     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\\n     * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\\n     * is \"NFC\"\\n     */\\n    normalize(form?: string): string;\\n\\n    /**\\n     * Returns a String value that is made from count copies appended together. If count is 0,\\n     * the empty string is returned.\\n     * @param count number of copies to append\\n     */\\n    repeat(count: number): string;\\n\\n    /**\\n     * Returns true if the sequence of elements of searchString converted to a String is the\\n     * same as the corresponding elements of this object (converted to a String) starting at\\n     * position. Otherwise returns false.\\n     */\\n    startsWith(searchString: string, position?: number): boolean;\\n\\n    /**\\n     * Returns an <a> HTML anchor element and sets the name attribute to the text value\\n     * @param name\\n     */\\n    anchor(name: string): string;\\n\\n    /** Returns a <big> HTML element */\\n    big(): string;\\n\\n    /** Returns a <blink> HTML element */\\n    blink(): string;\\n\\n    /** Returns a <b> HTML element */\\n    bold(): string;\\n\\n    /** Returns a <tt> HTML element */\\n    fixed(): string;\\n\\n    /** Returns a <font> HTML element and sets the color attribute value */\\n    fontcolor(color: string): string;\\n\\n    /** Returns a <font> HTML element and sets the size attribute value */\\n    fontsize(size: number): string;\\n\\n    /** Returns a <font> HTML element and sets the size attribute value */\\n    fontsize(size: string): string;\\n\\n    /** Returns an <i> HTML element */\\n    italics(): string;\\n\\n    /** Returns an <a> HTML element and sets the href attribute value */\\n    link(url: string): string;\\n\\n    /** Returns a <small> HTML element */\\n    small(): string;\\n\\n    /** Returns a <strike> HTML element */\\n    strike(): string;\\n\\n    /** Returns a <sub> HTML element */\\n    sub(): string;\\n\\n    /** Returns a <sup> HTML element */\\n    sup(): string;\\n}\\n\\ninterface StringConstructor {\\n    /**\\n     * Return the String value whose elements are, in order, the elements in the List elements.\\n     * If length is 0, the empty string is returned.\\n     */\\n    fromCodePoint(...codePoints: number[]): string;\\n\\n    /**\\n     * String.raw is intended for use as a tag function of a Tagged Template String. When called\\n     * as such the first argument will be a well formed template call site object and the rest\\n     * parameter will contain the substitution values.\\n     * @param template A well-formed template string call site representation.\\n     * @param substitutions A set of substitution values.\\n     */\\n    raw(template: TemplateStringsArray, ...substitutions: any[]): string;\\n}\\n',n.lib_dom_iterable_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n/////////////////////////////\\n/// DOM Iterable APIs\\n/////////////////////////////\\n\\ninterface AudioParam {\\n    setValueCurveAtTime(values: Iterable<number>, startTime: number, duration: number): AudioParam;\\n}\\n\\ninterface AudioParamMap extends ReadonlyMap<string, AudioParam> {\\n}\\n\\ninterface AudioTrackList {\\n    [Symbol.iterator](): IterableIterator<AudioTrack>;\\n}\\n\\ninterface BaseAudioContext {\\n    createIIRFilter(feedforward: Iterable<number>, feedback: Iterable<number>): IIRFilterNode;\\n    createPeriodicWave(real: Iterable<number>, imag: Iterable<number>, constraints?: PeriodicWaveConstraints): PeriodicWave;\\n}\\n\\ninterface CSSRuleList {\\n    [Symbol.iterator](): IterableIterator<CSSRule>;\\n}\\n\\ninterface CSSStyleDeclaration {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface Cache {\\n    addAll(requests: Iterable<RequestInfo>): Promise<void>;\\n}\\n\\ninterface CanvasPathDrawingStyles {\\n    setLineDash(segments: Iterable<number>): void;\\n}\\n\\ninterface ClientRectList {\\n    [Symbol.iterator](): IterableIterator<ClientRect>;\\n}\\n\\ninterface DOMRectList {\\n    [Symbol.iterator](): IterableIterator<DOMRect>;\\n}\\n\\ninterface DOMStringList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface DOMTokenList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n    entries(): IterableIterator<[number, string]>;\\n    keys(): IterableIterator<number>;\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface DataTransferItemList {\\n    [Symbol.iterator](): IterableIterator<DataTransferItem>;\\n}\\n\\ninterface FileList {\\n    [Symbol.iterator](): IterableIterator<File>;\\n}\\n\\ninterface FormData {\\n    [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[string, FormDataEntryValue]>;\\n    /**\\n     * Returns a list of keys in the list.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns a list of values in the list.\\n     */\\n    values(): IterableIterator<FormDataEntryValue>;\\n}\\n\\ninterface HTMLAllCollection {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLCollectionBase {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLCollectionOf<T extends Element> {\\n    [Symbol.iterator](): IterableIterator<T>;\\n}\\n\\ninterface HTMLFormElement {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface HTMLSelectElement {\\n    [Symbol.iterator](): IterableIterator<Element>;\\n}\\n\\ninterface Headers {\\n    [Symbol.iterator](): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an iterator allowing to go through all key/value pairs contained in this object.\\n     */\\n    entries(): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an iterator allowing to go through all keys of the key/value pairs contained in this object.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns an iterator allowing to go through all values of the key/value pairs contained in this object.\\n     */\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface IDBObjectStore {\\n    /**\\n     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a \"ConstraintError\" DOMException.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;\\n}\\n\\ninterface MediaKeyStatusMap {\\n    [Symbol.iterator](): IterableIterator<[BufferSource, MediaKeyStatus]>;\\n    entries(): IterableIterator<[BufferSource, MediaKeyStatus]>;\\n    keys(): IterableIterator<BufferSource>;\\n    values(): IterableIterator<MediaKeyStatus>;\\n}\\n\\ninterface MediaList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface MimeTypeArray {\\n    [Symbol.iterator](): IterableIterator<MimeType>;\\n}\\n\\ninterface NamedNodeMap {\\n    [Symbol.iterator](): IterableIterator<Attr>;\\n}\\n\\ninterface Navigator {\\n    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable<MediaKeySystemConfiguration>): Promise<MediaKeySystemAccess>;\\n}\\n\\ninterface NodeList {\\n    [Symbol.iterator](): IterableIterator<Node>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[number, Node]>;\\n    /**\\n     * Returns an list of keys in the list.\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the list.\\n     */\\n    values(): IterableIterator<Node>;\\n}\\n\\ninterface NodeListOf<TNode extends Node> {\\n    [Symbol.iterator](): IterableIterator<TNode>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the list.\\n     */\\n    entries(): IterableIterator<[number, TNode]>;\\n    /**\\n     * Returns an list of keys in the list.\\n     */\\n    keys(): IterableIterator<number>;\\n    /**\\n     * Returns an list of values in the list.\\n     */\\n    values(): IterableIterator<TNode>;\\n}\\n\\ninterface Plugin {\\n    [Symbol.iterator](): IterableIterator<MimeType>;\\n}\\n\\ninterface PluginArray {\\n    [Symbol.iterator](): IterableIterator<Plugin>;\\n}\\n\\ninterface RTCRtpTransceiver {\\n    setCodecPreferences(codecs: Iterable<RTCRtpCodecCapability>): void;\\n}\\n\\ninterface RTCStatsReport extends ReadonlyMap<string, any> {\\n}\\n\\ninterface SVGLengthList {\\n    [Symbol.iterator](): IterableIterator<SVGLength>;\\n}\\n\\ninterface SVGNumberList {\\n    [Symbol.iterator](): IterableIterator<SVGNumber>;\\n}\\n\\ninterface SVGPointList {\\n    [Symbol.iterator](): IterableIterator<DOMPoint>;\\n}\\n\\ninterface SVGStringList {\\n    [Symbol.iterator](): IterableIterator<string>;\\n}\\n\\ninterface SourceBufferList {\\n    [Symbol.iterator](): IterableIterator<SourceBuffer>;\\n}\\n\\ninterface SpeechGrammarList {\\n    [Symbol.iterator](): IterableIterator<SpeechGrammar>;\\n}\\n\\ninterface SpeechRecognitionResult {\\n    [Symbol.iterator](): IterableIterator<SpeechRecognitionAlternative>;\\n}\\n\\ninterface SpeechRecognitionResultList {\\n    [Symbol.iterator](): IterableIterator<SpeechRecognitionResult>;\\n}\\n\\ninterface StyleSheetList {\\n    [Symbol.iterator](): IterableIterator<StyleSheet>;\\n}\\n\\ninterface TextTrackCueList {\\n    [Symbol.iterator](): IterableIterator<TextTrackCue>;\\n}\\n\\ninterface TextTrackList {\\n    [Symbol.iterator](): IterableIterator<TextTrack>;\\n}\\n\\ninterface TouchList {\\n    [Symbol.iterator](): IterableIterator<Touch>;\\n}\\n\\ninterface URLSearchParams {\\n    [Symbol.iterator](): IterableIterator<[string, string]>;\\n    /**\\n     * Returns an array of key, value pairs for every entry in the search params.\\n     */\\n    entries(): IterableIterator<[string, string]>;\\n    /**\\n     * Returns a list of keys in the search params.\\n     */\\n    keys(): IterableIterator<string>;\\n    /**\\n     * Returns a list of values in the search params.\\n     */\\n    values(): IterableIterator<string>;\\n}\\n\\ninterface VRDisplay {\\n    requestPresent(layers: Iterable<VRLayer>): Promise<void>;\\n}\\n\\ninterface VideoTrackList {\\n    [Symbol.iterator](): IterableIterator<VideoTrack>;\\n}\\n\\ninterface WEBGL_draw_buffers {\\n    drawBuffersWEBGL(buffers: Iterable<GLenum>): void;\\n}\\n\\ninterface WebAuthentication {\\n    makeCredential(accountInformation: Account, cryptoParameters: Iterable<ScopedCredentialParameters>, attestationChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: ScopedCredentialOptions): Promise<ScopedCredentialInfo>;\\n}\\n\\ninterface WebGL2RenderingContextBase {\\n    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: GLuint): void;\\n    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: GLuint): void;\\n    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: GLuint): void;\\n    drawBuffers(buffers: Iterable<GLenum>): void;\\n    getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;\\n    getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;\\n    invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;\\n    invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;\\n    uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;\\n    vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;\\n}\\n\\ninterface WebGL2RenderingContextOverloads {\\n    uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;\\n}\\n\\ninterface WebGLRenderingContextBase {\\n    vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;\\n    vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;\\n}\\n\\ninterface WebGLRenderingContextOverloads {\\n    uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\\n    uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\\n}\\n',n.lib_scripthost_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n\\n\\n/////////////////////////////\\n/// Windows Script Host APIS\\n/////////////////////////////\\n\\n\\ninterface ActiveXObject {\\n    new (s: string): any;\\n}\\ndeclare var ActiveXObject: ActiveXObject;\\n\\ninterface ITextWriter {\\n    Write(s: string): void;\\n    WriteLine(s: string): void;\\n    Close(): void;\\n}\\n\\ninterface TextStreamBase {\\n    /**\\n     * The column number of the current character position in an input stream.\\n     */\\n    Column: number;\\n\\n    /**\\n     * The current line number in an input stream.\\n     */\\n    Line: number;\\n\\n    /**\\n     * Closes a text stream.\\n     * It is not necessary to close standard streams; they close automatically when the process ends. If\\n     * you close a standard stream, be aware that any other pointers to that standard stream become invalid.\\n     */\\n    Close(): void;\\n}\\n\\ninterface TextStreamWriter extends TextStreamBase {\\n    /**\\n     * Sends a string to an output stream.\\n     */\\n    Write(s: string): void;\\n\\n    /**\\n     * Sends a specified number of blank lines (newline characters) to an output stream.\\n     */\\n    WriteBlankLines(intLines: number): void;\\n\\n    /**\\n     * Sends a string followed by a newline character to an output stream.\\n     */\\n    WriteLine(s: string): void;\\n}\\n\\ninterface TextStreamReader extends TextStreamBase {\\n    /**\\n     * Returns a specified number of characters from an input stream, starting at the current pointer position.\\n     * Does not return until the ENTER key is pressed.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    Read(characters: number): string;\\n\\n    /**\\n     * Returns all characters from an input stream.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    ReadAll(): string;\\n\\n    /**\\n     * Returns an entire line from an input stream.\\n     * Although this method extracts the newline character, it does not add it to the returned string.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     */\\n    ReadLine(): string;\\n\\n    /**\\n     * Skips a specified number of characters when reading from an input text stream.\\n     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\\n     * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)\\n     */\\n    Skip(characters: number): void;\\n\\n    /**\\n     * Skips the next line when reading from an input text stream.\\n     * Can only be used on a stream in reading mode, not writing or appending mode.\\n     */\\n    SkipLine(): void;\\n\\n    /**\\n     * Indicates whether the stream pointer position is at the end of a line.\\n     */\\n    AtEndOfLine: boolean;\\n\\n    /**\\n     * Indicates whether the stream pointer position is at the end of a stream.\\n     */\\n    AtEndOfStream: boolean;\\n}\\n\\ndeclare var WScript: {\\n    /**\\n     * Outputs text to either a message box (under WScript.exe) or the command console window followed by\\n     * a newline (under CScript.exe).\\n     */\\n    Echo(s: any): void;\\n\\n    /**\\n     * Exposes the write-only error output stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdErr: TextStreamWriter;\\n\\n    /**\\n     * Exposes the write-only output stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdOut: TextStreamWriter;\\n    Arguments: { length: number; Item(n: number): string; };\\n\\n    /**\\n     *  The full path of the currently running script.\\n     */\\n    ScriptFullName: string;\\n\\n    /**\\n     * Forces the script to stop immediately, with an optional exit code.\\n     */\\n    Quit(exitCode?: number): number;\\n\\n    /**\\n     * The Windows Script Host build version number.\\n     */\\n    BuildVersion: number;\\n\\n    /**\\n     * Fully qualified path of the host executable.\\n     */\\n    FullName: string;\\n\\n    /**\\n     * Gets/sets the script mode - interactive(true) or batch(false).\\n     */\\n    Interactive: boolean;\\n\\n    /**\\n     * The name of the host executable (WScript.exe or CScript.exe).\\n     */\\n    Name: string;\\n\\n    /**\\n     * Path of the directory containing the host executable.\\n     */\\n    Path: string;\\n\\n    /**\\n     * The filename of the currently running script.\\n     */\\n    ScriptName: string;\\n\\n    /**\\n     * Exposes the read-only input stream for the current script.\\n     * Can be accessed only while using CScript.exe.\\n     */\\n    StdIn: TextStreamReader;\\n\\n    /**\\n     * Windows Script Host version\\n     */\\n    Version: string;\\n\\n    /**\\n     * Connects a COM object\\'s event sources to functions named with a given prefix, in the form prefix_event.\\n     */\\n    ConnectObject(objEventSource: any, strPrefix: string): void;\\n\\n    /**\\n     * Creates a COM object.\\n     * @param strProgiID\\n     * @param strPrefix Function names in the form prefix_event will be bound to this object\\'s COM events.\\n     */\\n    CreateObject(strProgID: string, strPrefix?: string): any;\\n\\n    /**\\n     * Disconnects a COM object from its event sources.\\n     */\\n    DisconnectObject(obj: any): void;\\n\\n    /**\\n     * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.\\n     * @param strPathname Fully qualified path to the file containing the object persisted to disk.\\n     *                       For objects in memory, pass a zero-length string.\\n     * @param strProgID\\n     * @param strPrefix Function names in the form prefix_event will be bound to this object\\'s COM events.\\n     */\\n    GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;\\n\\n    /**\\n     * Suspends script execution for a specified length of time, then continues execution.\\n     * @param intTime Interval (in milliseconds) to suspend script execution.\\n     */\\n    Sleep(intTime: number): void;\\n};\\n\\n/**\\n * WSH is an alias for WScript under Windows Script Host\\n */\\ndeclare var WSH: typeof WScript;\\n\\n/**\\n * Represents an Automation SAFEARRAY\\n */\\ndeclare class SafeArray<T = any> {\\n    private constructor();\\n    private SafeArray_typekey: SafeArray<T>;\\n}\\n\\n/**\\n * Allows enumerating over a COM collection, which may not have indexed item access.\\n */\\ninterface Enumerator<T = any> {\\n    /**\\n     * Returns true if the current item is the last one in the collection, or the collection is empty,\\n     * or the current item is undefined.\\n     */\\n    atEnd(): boolean;\\n\\n    /**\\n     * Returns the current item in the collection\\n     */\\n    item(): T;\\n\\n    /**\\n     * Resets the current item in the collection to the first item. If there are no items in the collection,\\n     * the current item is set to undefined.\\n     */\\n    moveFirst(): void;\\n\\n    /**\\n     * Moves the current item to the next item in the collection. If the enumerator is at the end of\\n     * the collection or the collection is empty, the current item is set to undefined.\\n     */\\n    moveNext(): void;\\n}\\n\\ninterface EnumeratorConstructor {\\n    new <T = any>(safearray: SafeArray<T>): Enumerator<T>;\\n    new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;\\n    new <T = any>(collection: any): Enumerator<T>;\\n}\\n\\ndeclare var Enumerator: EnumeratorConstructor;\\n\\n/**\\n * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.\\n */\\ninterface VBArray<T = any> {\\n    /**\\n     * Returns the number of dimensions (1-based).\\n     */\\n    dimensions(): number;\\n\\n    /**\\n     * Takes an index for each dimension in the array, and returns the item at the corresponding location.\\n     */\\n    getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;\\n\\n    /**\\n     * Returns the smallest available index for a given dimension.\\n     * @param dimension 1-based dimension (defaults to 1)\\n     */\\n    lbound(dimension?: number): number;\\n\\n    /**\\n     * Returns the largest available index for a given dimension.\\n     * @param dimension 1-based dimension (defaults to 1)\\n     */\\n    ubound(dimension?: number): number;\\n\\n    /**\\n     * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,\\n     * each successive dimension is appended to the end of the array.\\n     * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]\\n     */\\n    toArray(): T[];\\n}\\n\\ninterface VBArrayConstructor {\\n    new <T = any>(safeArray: SafeArray<T>): VBArray<T>;\\n}\\n\\ndeclare var VBArray: VBArrayConstructor;\\n\\n/**\\n * Automation date (VT_DATE)\\n */\\ndeclare class VarDate {\\n    private constructor();\\n    private VarDate_typekey: VarDate;\\n}\\n\\ninterface DateConstructor {\\n    new (vd: VarDate): Date;\\n}\\n\\ninterface Date {\\n    getVarDate: () => VarDate;\\n}\\n',n.lib_webworker_importscripts_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n\\n/////////////////////////////\\n/// WorkerGlobalScope APIs\\n/////////////////////////////\\n// These are only available in a Web Worker\\ndeclare function importScripts(...urls: string[]): void;\\n',n.lib_dom_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n\\n/////////////////////////////\\n/// DOM APIs\\n/////////////////////////////\\n\\ninterface Account {\\n    displayName: string;\\n    id: string;\\n    imageURL?: string;\\n    name?: string;\\n    rpDisplayName: string;\\n}\\n\\ninterface AddEventListenerOptions extends EventListenerOptions {\\n    once?: boolean;\\n    passive?: boolean;\\n}\\n\\ninterface AesCbcParams extends Algorithm {\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface AesCtrParams extends Algorithm {\\n    counter: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    length: number;\\n}\\n\\ninterface AesDerivedKeyParams extends Algorithm {\\n    length: number;\\n}\\n\\ninterface AesGcmParams extends Algorithm {\\n    additionalData?: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    tagLength?: number;\\n}\\n\\ninterface AesKeyAlgorithm extends KeyAlgorithm {\\n    length: number;\\n}\\n\\ninterface AesKeyGenParams extends Algorithm {\\n    length: number;\\n}\\n\\ninterface Algorithm {\\n    name: string;\\n}\\n\\ninterface AnalyserOptions extends AudioNodeOptions {\\n    fftSize?: number;\\n    maxDecibels?: number;\\n    minDecibels?: number;\\n    smoothingTimeConstant?: number;\\n}\\n\\ninterface AnimationEventInit extends EventInit {\\n    animationName?: string;\\n    elapsedTime?: number;\\n    pseudoElement?: string;\\n}\\n\\ninterface AnimationPlaybackEventInit extends EventInit {\\n    currentTime?: number | null;\\n    timelineTime?: number | null;\\n}\\n\\ninterface AssertionOptions {\\n    allowList?: ScopedCredentialDescriptor[];\\n    extensions?: WebAuthnExtensions;\\n    rpId?: string;\\n    timeoutSeconds?: number;\\n}\\n\\ninterface AssignedNodesOptions {\\n    flatten?: boolean;\\n}\\n\\ninterface AudioBufferOptions {\\n    length: number;\\n    numberOfChannels?: number;\\n    sampleRate: number;\\n}\\n\\ninterface AudioBufferSourceOptions {\\n    buffer?: AudioBuffer | null;\\n    detune?: number;\\n    loop?: boolean;\\n    loopEnd?: number;\\n    loopStart?: number;\\n    playbackRate?: number;\\n}\\n\\ninterface AudioContextInfo {\\n    currentTime?: number;\\n    sampleRate?: number;\\n}\\n\\ninterface AudioContextOptions {\\n    latencyHint?: AudioContextLatencyCategory | number;\\n    sampleRate?: number;\\n}\\n\\ninterface AudioNodeOptions {\\n    channelCount?: number;\\n    channelCountMode?: ChannelCountMode;\\n    channelInterpretation?: ChannelInterpretation;\\n}\\n\\ninterface AudioParamDescriptor {\\n    automationRate?: AutomationRate;\\n    defaultValue?: number;\\n    maxValue?: number;\\n    minValue?: number;\\n    name: string;\\n}\\n\\ninterface AudioProcessingEventInit extends EventInit {\\n    inputBuffer: AudioBuffer;\\n    outputBuffer: AudioBuffer;\\n    playbackTime: number;\\n}\\n\\ninterface AudioTimestamp {\\n    contextTime?: number;\\n    performanceTime?: number;\\n}\\n\\ninterface AudioWorkletNodeOptions extends AudioNodeOptions {\\n    numberOfInputs?: number;\\n    numberOfOutputs?: number;\\n    outputChannelCount?: number[];\\n    parameterData?: Record<string, number>;\\n    processorOptions?: any;\\n}\\n\\ninterface AuthenticationExtensionsClientInputs {\\n    appid?: string;\\n    authnSel?: AuthenticatorSelectionList;\\n    exts?: boolean;\\n    loc?: boolean;\\n    txAuthGeneric?: txAuthGenericArg;\\n    txAuthSimple?: string;\\n    uvi?: boolean;\\n    uvm?: boolean;\\n}\\n\\ninterface AuthenticationExtensionsClientOutputs {\\n    appid?: boolean;\\n    authnSel?: boolean;\\n    exts?: AuthenticationExtensionsSupported;\\n    loc?: Coordinates;\\n    txAuthGeneric?: ArrayBuffer;\\n    txAuthSimple?: string;\\n    uvi?: ArrayBuffer;\\n    uvm?: UvmEntries;\\n}\\n\\ninterface AuthenticatorSelectionCriteria {\\n    authenticatorAttachment?: AuthenticatorAttachment;\\n    requireResidentKey?: boolean;\\n    userVerification?: UserVerificationRequirement;\\n}\\n\\ninterface BiquadFilterOptions extends AudioNodeOptions {\\n    Q?: number;\\n    detune?: number;\\n    frequency?: number;\\n    gain?: number;\\n    type?: BiquadFilterType;\\n}\\n\\ninterface BlobPropertyBag {\\n    endings?: EndingType;\\n    type?: string;\\n}\\n\\ninterface ByteLengthChunk {\\n    byteLength?: number;\\n}\\n\\ninterface CacheQueryOptions {\\n    ignoreMethod?: boolean;\\n    ignoreSearch?: boolean;\\n    ignoreVary?: boolean;\\n}\\n\\ninterface CanvasRenderingContext2DSettings {\\n    alpha?: boolean;\\n    desynchronized?: boolean;\\n}\\n\\ninterface ChannelMergerOptions extends AudioNodeOptions {\\n    numberOfInputs?: number;\\n}\\n\\ninterface ChannelSplitterOptions extends AudioNodeOptions {\\n    numberOfOutputs?: number;\\n}\\n\\ninterface ClientData {\\n    challenge: string;\\n    extensions?: WebAuthnExtensions;\\n    hashAlg: string | Algorithm;\\n    origin: string;\\n    rpId: string;\\n    tokenBinding?: string;\\n}\\n\\ninterface ClientQueryOptions {\\n    includeUncontrolled?: boolean;\\n    type?: ClientTypes;\\n}\\n\\ninterface ClipboardEventInit extends EventInit {\\n    clipboardData?: DataTransfer | null;\\n}\\n\\ninterface CloseEventInit extends EventInit {\\n    code?: number;\\n    reason?: string;\\n    wasClean?: boolean;\\n}\\n\\ninterface CompositionEventInit extends UIEventInit {\\n    data?: string;\\n}\\n\\ninterface ComputedEffectTiming extends EffectTiming {\\n    activeDuration?: number;\\n    currentIteration?: number | null;\\n    endTime?: number;\\n    localTime?: number | null;\\n    progress?: number | null;\\n}\\n\\ninterface ComputedKeyframe {\\n    composite: CompositeOperationOrAuto;\\n    computedOffset: number;\\n    easing: string;\\n    offset: number | null;\\n    [property: string]: string | number | null | undefined;\\n}\\n\\ninterface ConfirmSiteSpecificExceptionsInformation extends ExceptionInformation {\\n    arrayOfDomainStrings?: string[];\\n}\\n\\ninterface ConstantSourceOptions {\\n    offset?: number;\\n}\\n\\ninterface ConstrainBooleanParameters {\\n    exact?: boolean;\\n    ideal?: boolean;\\n}\\n\\ninterface ConstrainDOMStringParameters {\\n    exact?: string | string[];\\n    ideal?: string | string[];\\n}\\n\\ninterface ConstrainDoubleRange extends DoubleRange {\\n    exact?: number;\\n    ideal?: number;\\n}\\n\\ninterface ConstrainULongRange extends ULongRange {\\n    exact?: number;\\n    ideal?: number;\\n}\\n\\ninterface ConstrainVideoFacingModeParameters {\\n    exact?: VideoFacingModeEnum | VideoFacingModeEnum[];\\n    ideal?: VideoFacingModeEnum | VideoFacingModeEnum[];\\n}\\n\\ninterface ConvolverOptions extends AudioNodeOptions {\\n    buffer?: AudioBuffer | null;\\n    disableNormalization?: boolean;\\n}\\n\\ninterface CredentialCreationOptions {\\n    publicKey?: PublicKeyCredentialCreationOptions;\\n    signal?: AbortSignal;\\n}\\n\\ninterface CredentialRequestOptions {\\n    mediation?: CredentialMediationRequirement;\\n    publicKey?: PublicKeyCredentialRequestOptions;\\n    signal?: AbortSignal;\\n}\\n\\ninterface CustomEventInit<T = any> extends EventInit {\\n    detail?: T;\\n}\\n\\ninterface DOMMatrix2DInit {\\n    a?: number;\\n    b?: number;\\n    c?: number;\\n    d?: number;\\n    e?: number;\\n    f?: number;\\n    m11?: number;\\n    m12?: number;\\n    m21?: number;\\n    m22?: number;\\n    m41?: number;\\n    m42?: number;\\n}\\n\\ninterface DOMMatrixInit extends DOMMatrix2DInit {\\n    is2D?: boolean;\\n    m13?: number;\\n    m14?: number;\\n    m23?: number;\\n    m24?: number;\\n    m31?: number;\\n    m32?: number;\\n    m33?: number;\\n    m34?: number;\\n    m43?: number;\\n    m44?: number;\\n}\\n\\ninterface DOMPointInit {\\n    w?: number;\\n    x?: number;\\n    y?: number;\\n    z?: number;\\n}\\n\\ninterface DOMQuadInit {\\n    p1?: DOMPointInit;\\n    p2?: DOMPointInit;\\n    p3?: DOMPointInit;\\n    p4?: DOMPointInit;\\n}\\n\\ninterface DOMRectInit {\\n    height?: number;\\n    width?: number;\\n    x?: number;\\n    y?: number;\\n}\\n\\ninterface DelayOptions extends AudioNodeOptions {\\n    delayTime?: number;\\n    maxDelayTime?: number;\\n}\\n\\ninterface DeviceLightEventInit extends EventInit {\\n    value?: number;\\n}\\n\\ninterface DeviceMotionEventAccelerationInit {\\n    x?: number | null;\\n    y?: number | null;\\n    z?: number | null;\\n}\\n\\ninterface DeviceMotionEventInit extends EventInit {\\n    acceleration?: DeviceMotionEventAccelerationInit;\\n    accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;\\n    interval?: number;\\n    rotationRate?: DeviceMotionEventRotationRateInit;\\n}\\n\\ninterface DeviceMotionEventRotationRateInit {\\n    alpha?: number | null;\\n    beta?: number | null;\\n    gamma?: number | null;\\n}\\n\\ninterface DeviceOrientationEventInit extends EventInit {\\n    absolute?: boolean;\\n    alpha?: number | null;\\n    beta?: number | null;\\n    gamma?: number | null;\\n}\\n\\ninterface DevicePermissionDescriptor extends PermissionDescriptor {\\n    deviceId?: string;\\n    name: \"camera\" | \"microphone\" | \"speaker\";\\n}\\n\\ninterface DocumentTimelineOptions {\\n    originTime?: number;\\n}\\n\\ninterface DoubleRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface DragEventInit extends MouseEventInit {\\n    dataTransfer?: DataTransfer | null;\\n}\\n\\ninterface DynamicsCompressorOptions extends AudioNodeOptions {\\n    attack?: number;\\n    knee?: number;\\n    ratio?: number;\\n    release?: number;\\n    threshold?: number;\\n}\\n\\ninterface EcKeyAlgorithm extends KeyAlgorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcKeyGenParams extends Algorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcKeyImportParams extends Algorithm {\\n    namedCurve: NamedCurve;\\n}\\n\\ninterface EcdhKeyDeriveParams extends Algorithm {\\n    public: CryptoKey;\\n}\\n\\ninterface EcdsaParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface EffectTiming {\\n    delay?: number;\\n    direction?: PlaybackDirection;\\n    duration?: number | string;\\n    easing?: string;\\n    endDelay?: number;\\n    fill?: FillMode;\\n    iterationStart?: number;\\n    iterations?: number;\\n}\\n\\ninterface ElementCreationOptions {\\n    is?: string;\\n}\\n\\ninterface ElementDefinitionOptions {\\n    extends?: string;\\n}\\n\\ninterface ErrorEventInit extends EventInit {\\n    colno?: number;\\n    error?: any;\\n    filename?: string;\\n    lineno?: number;\\n    message?: string;\\n}\\n\\ninterface EventInit {\\n    bubbles?: boolean;\\n    cancelable?: boolean;\\n    composed?: boolean;\\n}\\n\\ninterface EventListenerOptions {\\n    capture?: boolean;\\n}\\n\\ninterface EventModifierInit extends UIEventInit {\\n    altKey?: boolean;\\n    ctrlKey?: boolean;\\n    metaKey?: boolean;\\n    modifierAltGraph?: boolean;\\n    modifierCapsLock?: boolean;\\n    modifierFn?: boolean;\\n    modifierFnLock?: boolean;\\n    modifierHyper?: boolean;\\n    modifierNumLock?: boolean;\\n    modifierScrollLock?: boolean;\\n    modifierSuper?: boolean;\\n    modifierSymbol?: boolean;\\n    modifierSymbolLock?: boolean;\\n    shiftKey?: boolean;\\n}\\n\\ninterface EventSourceInit {\\n    withCredentials?: boolean;\\n}\\n\\ninterface ExceptionInformation {\\n    domain?: string | null;\\n}\\n\\ninterface FilePropertyBag extends BlobPropertyBag {\\n    lastModified?: number;\\n}\\n\\ninterface FocusEventInit extends UIEventInit {\\n    relatedTarget?: EventTarget | null;\\n}\\n\\ninterface FocusNavigationEventInit extends EventInit {\\n    navigationReason?: string | null;\\n    originHeight?: number;\\n    originLeft?: number;\\n    originTop?: number;\\n    originWidth?: number;\\n}\\n\\ninterface FocusNavigationOrigin {\\n    originHeight?: number;\\n    originLeft?: number;\\n    originTop?: number;\\n    originWidth?: number;\\n}\\n\\ninterface FocusOptions {\\n    preventScroll?: boolean;\\n}\\n\\ninterface FullscreenOptions {\\n    navigationUI?: FullscreenNavigationUI;\\n}\\n\\ninterface GainOptions extends AudioNodeOptions {\\n    gain?: number;\\n}\\n\\ninterface GamepadEventInit extends EventInit {\\n    gamepad: Gamepad;\\n}\\n\\ninterface GetNotificationOptions {\\n    tag?: string;\\n}\\n\\ninterface GetRootNodeOptions {\\n    composed?: boolean;\\n}\\n\\ninterface HashChangeEventInit extends EventInit {\\n    newURL?: string;\\n    oldURL?: string;\\n}\\n\\ninterface HkdfParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    info: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    salt: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface HmacImportParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    length?: number;\\n}\\n\\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\\n    hash: KeyAlgorithm;\\n    length: number;\\n}\\n\\ninterface HmacKeyGenParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    length?: number;\\n}\\n\\ninterface IDBIndexParameters {\\n    multiEntry?: boolean;\\n    unique?: boolean;\\n}\\n\\ninterface IDBObjectStoreParameters {\\n    autoIncrement?: boolean;\\n    keyPath?: string | string[] | null;\\n}\\n\\ninterface IDBVersionChangeEventInit extends EventInit {\\n    newVersion?: number | null;\\n    oldVersion?: number;\\n}\\n\\ninterface IIRFilterOptions extends AudioNodeOptions {\\n    feedback: number[];\\n    feedforward: number[];\\n}\\n\\ninterface ImageBitmapRenderingContextSettings {\\n    alpha?: boolean;\\n}\\n\\ninterface ImageEncodeOptions {\\n    quality?: number;\\n    type?: string;\\n}\\n\\ninterface InputEventInit extends UIEventInit {\\n    data?: string | null;\\n    inputType?: string;\\n    isComposing?: boolean;\\n}\\n\\ninterface IntersectionObserverEntryInit {\\n    boundingClientRect: DOMRectInit;\\n    intersectionRatio: number;\\n    intersectionRect: DOMRectInit;\\n    isIntersecting: boolean;\\n    rootBounds: DOMRectInit | null;\\n    target: Element;\\n    time: number;\\n}\\n\\ninterface IntersectionObserverInit {\\n    root?: Element | null;\\n    rootMargin?: string;\\n    threshold?: number | number[];\\n}\\n\\ninterface JsonWebKey {\\n    alg?: string;\\n    crv?: string;\\n    d?: string;\\n    dp?: string;\\n    dq?: string;\\n    e?: string;\\n    ext?: boolean;\\n    k?: string;\\n    key_ops?: string[];\\n    kty?: string;\\n    n?: string;\\n    oth?: RsaOtherPrimesInfo[];\\n    p?: string;\\n    q?: string;\\n    qi?: string;\\n    use?: string;\\n    x?: string;\\n    y?: string;\\n}\\n\\ninterface KeyAlgorithm {\\n    name: string;\\n}\\n\\ninterface KeyboardEventInit extends EventModifierInit {\\n    code?: string;\\n    isComposing?: boolean;\\n    key?: string;\\n    location?: number;\\n    repeat?: boolean;\\n}\\n\\ninterface Keyframe {\\n    composite?: CompositeOperationOrAuto;\\n    easing?: string;\\n    offset?: number | null;\\n    [property: string]: string | number | null | undefined;\\n}\\n\\ninterface KeyframeAnimationOptions extends KeyframeEffectOptions {\\n    id?: string;\\n}\\n\\ninterface KeyframeEffectOptions extends EffectTiming {\\n    composite?: CompositeOperation;\\n    iterationComposite?: IterationCompositeOperation;\\n}\\n\\ninterface MediaElementAudioSourceOptions {\\n    mediaElement: HTMLMediaElement;\\n}\\n\\ninterface MediaEncryptedEventInit extends EventInit {\\n    initData?: ArrayBuffer | null;\\n    initDataType?: string;\\n}\\n\\ninterface MediaKeyMessageEventInit extends EventInit {\\n    message: ArrayBuffer;\\n    messageType: MediaKeyMessageType;\\n}\\n\\ninterface MediaKeySystemConfiguration {\\n    audioCapabilities?: MediaKeySystemMediaCapability[];\\n    distinctiveIdentifier?: MediaKeysRequirement;\\n    initDataTypes?: string[];\\n    label?: string;\\n    persistentState?: MediaKeysRequirement;\\n    sessionTypes?: string[];\\n    videoCapabilities?: MediaKeySystemMediaCapability[];\\n}\\n\\ninterface MediaKeySystemMediaCapability {\\n    contentType?: string;\\n    robustness?: string;\\n}\\n\\ninterface MediaQueryListEventInit extends EventInit {\\n    matches?: boolean;\\n    media?: string;\\n}\\n\\ninterface MediaStreamAudioSourceOptions {\\n    mediaStream: MediaStream;\\n}\\n\\ninterface MediaStreamConstraints {\\n    audio?: boolean | MediaTrackConstraints;\\n    peerIdentity?: string;\\n    video?: boolean | MediaTrackConstraints;\\n}\\n\\ninterface MediaStreamErrorEventInit extends EventInit {\\n    error?: MediaStreamError | null;\\n}\\n\\ninterface MediaStreamEventInit extends EventInit {\\n    stream?: MediaStream;\\n}\\n\\ninterface MediaStreamTrackAudioSourceOptions {\\n    mediaStreamTrack: MediaStreamTrack;\\n}\\n\\ninterface MediaStreamTrackEventInit extends EventInit {\\n    track: MediaStreamTrack;\\n}\\n\\ninterface MediaTrackCapabilities {\\n    aspectRatio?: DoubleRange;\\n    autoGainControl?: boolean[];\\n    channelCount?: ULongRange;\\n    deviceId?: string;\\n    echoCancellation?: boolean[];\\n    facingMode?: string[];\\n    frameRate?: DoubleRange;\\n    groupId?: string;\\n    height?: ULongRange;\\n    latency?: DoubleRange;\\n    noiseSuppression?: boolean[];\\n    resizeMode?: string[];\\n    sampleRate?: ULongRange;\\n    sampleSize?: ULongRange;\\n    width?: ULongRange;\\n}\\n\\ninterface MediaTrackConstraintSet {\\n    aspectRatio?: ConstrainDouble;\\n    autoGainControl?: ConstrainBoolean;\\n    channelCount?: ConstrainULong;\\n    deviceId?: ConstrainDOMString;\\n    echoCancellation?: ConstrainBoolean;\\n    facingMode?: ConstrainDOMString;\\n    frameRate?: ConstrainDouble;\\n    groupId?: ConstrainDOMString;\\n    height?: ConstrainULong;\\n    latency?: ConstrainDouble;\\n    noiseSuppression?: ConstrainBoolean;\\n    resizeMode?: ConstrainDOMString;\\n    sampleRate?: ConstrainULong;\\n    sampleSize?: ConstrainULong;\\n    width?: ConstrainULong;\\n}\\n\\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\\n    advanced?: MediaTrackConstraintSet[];\\n}\\n\\ninterface MediaTrackSettings {\\n    aspectRatio?: number;\\n    autoGainControl?: boolean;\\n    channelCount?: number;\\n    deviceId?: string;\\n    echoCancellation?: boolean;\\n    facingMode?: string;\\n    frameRate?: number;\\n    groupId?: string;\\n    height?: number;\\n    latency?: number;\\n    noiseSuppression?: boolean;\\n    resizeMode?: string;\\n    sampleRate?: number;\\n    sampleSize?: number;\\n    width?: number;\\n}\\n\\ninterface MediaTrackSupportedConstraints {\\n    aspectRatio?: boolean;\\n    autoGainControl?: boolean;\\n    channelCount?: boolean;\\n    deviceId?: boolean;\\n    echoCancellation?: boolean;\\n    facingMode?: boolean;\\n    frameRate?: boolean;\\n    groupId?: boolean;\\n    height?: boolean;\\n    latency?: boolean;\\n    noiseSuppression?: boolean;\\n    resizeMode?: boolean;\\n    sampleRate?: boolean;\\n    sampleSize?: boolean;\\n    width?: boolean;\\n}\\n\\ninterface MessageEventInit extends EventInit {\\n    data?: any;\\n    lastEventId?: string;\\n    origin?: string;\\n    ports?: MessagePort[];\\n    source?: MessageEventSource | null;\\n}\\n\\ninterface MidiPermissionDescriptor extends PermissionDescriptor {\\n    name: \"midi\";\\n    sysex?: boolean;\\n}\\n\\ninterface MouseEventInit extends EventModifierInit {\\n    button?: number;\\n    buttons?: number;\\n    clientX?: number;\\n    clientY?: number;\\n    movementX?: number;\\n    movementY?: number;\\n    relatedTarget?: EventTarget | null;\\n    screenX?: number;\\n    screenY?: number;\\n}\\n\\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\\n    cacheName?: string;\\n}\\n\\ninterface MutationObserverInit {\\n    /**\\n     * Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted.\\n     */\\n    attributeFilter?: string[];\\n    /**\\n     * Set to true if attributes is true or omitted and target\\'s attribute value before the mutation needs to be recorded.\\n     */\\n    attributeOldValue?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified.\\n     */\\n    attributes?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s data are to be observed. Can be omitted if characterDataOldValue is specified.\\n     */\\n    characterData?: boolean;\\n    /**\\n     * Set to true if characterData is set to true or omitted and target\\'s data before the mutation needs to be recorded.\\n     */\\n    characterDataOldValue?: boolean;\\n    /**\\n     * Set to true if mutations to target\\'s children are to be observed.\\n     */\\n    childList?: boolean;\\n    /**\\n     * Set to true if mutations to not just target, but also target\\'s descendants are to be observed.\\n     */\\n    subtree?: boolean;\\n}\\n\\ninterface NavigationPreloadState {\\n    enabled?: boolean;\\n    headerValue?: string;\\n}\\n\\ninterface NotificationAction {\\n    action: string;\\n    icon?: string;\\n    title: string;\\n}\\n\\ninterface NotificationOptions {\\n    actions?: NotificationAction[];\\n    badge?: string;\\n    body?: string;\\n    data?: any;\\n    dir?: NotificationDirection;\\n    icon?: string;\\n    image?: string;\\n    lang?: string;\\n    renotify?: boolean;\\n    requireInteraction?: boolean;\\n    silent?: boolean;\\n    tag?: string;\\n    timestamp?: number;\\n    vibrate?: VibratePattern;\\n}\\n\\ninterface OfflineAudioCompletionEventInit extends EventInit {\\n    renderedBuffer: AudioBuffer;\\n}\\n\\ninterface OfflineAudioContextOptions {\\n    length: number;\\n    numberOfChannels?: number;\\n    sampleRate: number;\\n}\\n\\ninterface OptionalEffectTiming {\\n    delay?: number;\\n    direction?: PlaybackDirection;\\n    duration?: number | string;\\n    easing?: string;\\n    endDelay?: number;\\n    fill?: FillMode;\\n    iterationStart?: number;\\n    iterations?: number;\\n}\\n\\ninterface OscillatorOptions extends AudioNodeOptions {\\n    detune?: number;\\n    frequency?: number;\\n    periodicWave?: PeriodicWave;\\n    type?: OscillatorType;\\n}\\n\\ninterface PannerOptions extends AudioNodeOptions {\\n    coneInnerAngle?: number;\\n    coneOuterAngle?: number;\\n    coneOuterGain?: number;\\n    distanceModel?: DistanceModelType;\\n    maxDistance?: number;\\n    orientationX?: number;\\n    orientationY?: number;\\n    orientationZ?: number;\\n    panningModel?: PanningModelType;\\n    positionX?: number;\\n    positionY?: number;\\n    positionZ?: number;\\n    refDistance?: number;\\n    rolloffFactor?: number;\\n}\\n\\ninterface PaymentCurrencyAmount {\\n    currency: string;\\n    currencySystem?: string;\\n    value: string;\\n}\\n\\ninterface PaymentDetailsBase {\\n    displayItems?: PaymentItem[];\\n    modifiers?: PaymentDetailsModifier[];\\n    shippingOptions?: PaymentShippingOption[];\\n}\\n\\ninterface PaymentDetailsInit extends PaymentDetailsBase {\\n    id?: string;\\n    total: PaymentItem;\\n}\\n\\ninterface PaymentDetailsModifier {\\n    additionalDisplayItems?: PaymentItem[];\\n    data?: any;\\n    supportedMethods: string | string[];\\n    total?: PaymentItem;\\n}\\n\\ninterface PaymentDetailsUpdate extends PaymentDetailsBase {\\n    error?: string;\\n    total?: PaymentItem;\\n}\\n\\ninterface PaymentItem {\\n    amount: PaymentCurrencyAmount;\\n    label: string;\\n    pending?: boolean;\\n}\\n\\ninterface PaymentMethodData {\\n    data?: any;\\n    supportedMethods: string | string[];\\n}\\n\\ninterface PaymentOptions {\\n    requestPayerEmail?: boolean;\\n    requestPayerName?: boolean;\\n    requestPayerPhone?: boolean;\\n    requestShipping?: boolean;\\n    shippingType?: string;\\n}\\n\\ninterface PaymentRequestUpdateEventInit extends EventInit {\\n}\\n\\ninterface PaymentShippingOption {\\n    amount: PaymentCurrencyAmount;\\n    id: string;\\n    label: string;\\n    selected?: boolean;\\n}\\n\\ninterface Pbkdf2Params extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n    iterations: number;\\n    salt: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface PerformanceObserverInit {\\n    buffered?: boolean;\\n    entryTypes?: string[];\\n    type?: string;\\n}\\n\\ninterface PeriodicWaveConstraints {\\n    disableNormalization?: boolean;\\n}\\n\\ninterface PeriodicWaveOptions extends PeriodicWaveConstraints {\\n    imag?: number[] | Float32Array;\\n    real?: number[] | Float32Array;\\n}\\n\\ninterface PermissionDescriptor {\\n    name: PermissionName;\\n}\\n\\ninterface PipeOptions {\\n    preventAbort?: boolean;\\n    preventCancel?: boolean;\\n    preventClose?: boolean;\\n    signal?: AbortSignal;\\n}\\n\\ninterface PointerEventInit extends MouseEventInit {\\n    height?: number;\\n    isPrimary?: boolean;\\n    pointerId?: number;\\n    pointerType?: string;\\n    pressure?: number;\\n    tangentialPressure?: number;\\n    tiltX?: number;\\n    tiltY?: number;\\n    twist?: number;\\n    width?: number;\\n}\\n\\ninterface PopStateEventInit extends EventInit {\\n    state?: any;\\n}\\n\\ninterface PositionOptions {\\n    enableHighAccuracy?: boolean;\\n    maximumAge?: number;\\n    timeout?: number;\\n}\\n\\ninterface PostMessageOptions {\\n    transfer?: any[];\\n}\\n\\ninterface ProgressEventInit extends EventInit {\\n    lengthComputable?: boolean;\\n    loaded?: number;\\n    total?: number;\\n}\\n\\ninterface PromiseRejectionEventInit extends EventInit {\\n    promise: Promise<any>;\\n    reason?: any;\\n}\\n\\ninterface PropertyIndexedKeyframes {\\n    composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];\\n    easing?: string | string[];\\n    offset?: number | (number | null)[];\\n    [property: string]: string | string[] | number | null | (number | null)[] | undefined;\\n}\\n\\ninterface PublicKeyCredentialCreationOptions {\\n    attestation?: AttestationConveyancePreference;\\n    authenticatorSelection?: AuthenticatorSelectionCriteria;\\n    challenge: BufferSource;\\n    excludeCredentials?: PublicKeyCredentialDescriptor[];\\n    extensions?: AuthenticationExtensionsClientInputs;\\n    pubKeyCredParams: PublicKeyCredentialParameters[];\\n    rp: PublicKeyCredentialRpEntity;\\n    timeout?: number;\\n    user: PublicKeyCredentialUserEntity;\\n}\\n\\ninterface PublicKeyCredentialDescriptor {\\n    id: BufferSource;\\n    transports?: AuthenticatorTransport[];\\n    type: PublicKeyCredentialType;\\n}\\n\\ninterface PublicKeyCredentialEntity {\\n    icon?: string;\\n    name: string;\\n}\\n\\ninterface PublicKeyCredentialParameters {\\n    alg: COSEAlgorithmIdentifier;\\n    type: PublicKeyCredentialType;\\n}\\n\\ninterface PublicKeyCredentialRequestOptions {\\n    allowCredentials?: PublicKeyCredentialDescriptor[];\\n    challenge: BufferSource;\\n    extensions?: AuthenticationExtensionsClientInputs;\\n    rpId?: string;\\n    timeout?: number;\\n    userVerification?: UserVerificationRequirement;\\n}\\n\\ninterface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {\\n    id?: string;\\n}\\n\\ninterface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {\\n    displayName: string;\\n    id: BufferSource;\\n}\\n\\ninterface PushPermissionDescriptor extends PermissionDescriptor {\\n    name: \"push\";\\n    userVisibleOnly?: boolean;\\n}\\n\\ninterface PushSubscriptionJSON {\\n    endpoint?: string;\\n    expirationTime?: number | null;\\n    keys?: Record<string, string>;\\n}\\n\\ninterface PushSubscriptionOptionsInit {\\n    applicationServerKey?: BufferSource | string | null;\\n    userVisibleOnly?: boolean;\\n}\\n\\ninterface QueuingStrategy<T = any> {\\n    highWaterMark?: number;\\n    size?: QueuingStrategySizeCallback<T>;\\n}\\n\\ninterface RTCAnswerOptions extends RTCOfferAnswerOptions {\\n}\\n\\ninterface RTCCertificateExpiration {\\n    expires?: number;\\n}\\n\\ninterface RTCConfiguration {\\n    bundlePolicy?: RTCBundlePolicy;\\n    certificates?: RTCCertificate[];\\n    iceCandidatePoolSize?: number;\\n    iceServers?: RTCIceServer[];\\n    iceTransportPolicy?: RTCIceTransportPolicy;\\n    peerIdentity?: string;\\n    rtcpMuxPolicy?: RTCRtcpMuxPolicy;\\n}\\n\\ninterface RTCDTMFToneChangeEventInit extends EventInit {\\n    tone: string;\\n}\\n\\ninterface RTCDataChannelEventInit extends EventInit {\\n    channel: RTCDataChannel;\\n}\\n\\ninterface RTCDataChannelInit {\\n    id?: number;\\n    maxPacketLifeTime?: number;\\n    maxRetransmits?: number;\\n    negotiated?: boolean;\\n    ordered?: boolean;\\n    priority?: RTCPriorityType;\\n    protocol?: string;\\n}\\n\\ninterface RTCDtlsFingerprint {\\n    algorithm?: string;\\n    value?: string;\\n}\\n\\ninterface RTCDtlsParameters {\\n    fingerprints?: RTCDtlsFingerprint[];\\n    role?: RTCDtlsRole;\\n}\\n\\ninterface RTCErrorEventInit extends EventInit {\\n    error?: RTCError | null;\\n}\\n\\ninterface RTCIceCandidateAttributes extends RTCStats {\\n    addressSourceUrl?: string;\\n    candidateType?: RTCStatsIceCandidateType;\\n    ipAddress?: string;\\n    portNumber?: number;\\n    priority?: number;\\n    transport?: string;\\n}\\n\\ninterface RTCIceCandidateComplete {\\n}\\n\\ninterface RTCIceCandidateDictionary {\\n    foundation?: string;\\n    ip?: string;\\n    msMTurnSessionId?: string;\\n    port?: number;\\n    priority?: number;\\n    protocol?: RTCIceProtocol;\\n    relatedAddress?: string;\\n    relatedPort?: number;\\n    tcpType?: RTCIceTcpCandidateType;\\n    type?: RTCIceCandidateType;\\n}\\n\\ninterface RTCIceCandidateInit {\\n    candidate?: string;\\n    sdpMLineIndex?: number | null;\\n    sdpMid?: string | null;\\n    usernameFragment?: string;\\n}\\n\\ninterface RTCIceCandidatePair {\\n    local?: RTCIceCandidate;\\n    remote?: RTCIceCandidate;\\n}\\n\\ninterface RTCIceCandidatePairStats extends RTCStats {\\n    availableIncomingBitrate?: number;\\n    availableOutgoingBitrate?: number;\\n    bytesReceived?: number;\\n    bytesSent?: number;\\n    localCandidateId?: string;\\n    nominated?: boolean;\\n    priority?: number;\\n    readable?: boolean;\\n    remoteCandidateId?: string;\\n    roundTripTime?: number;\\n    state?: RTCStatsIceCandidatePairState;\\n    transportId?: string;\\n    writable?: boolean;\\n}\\n\\ninterface RTCIceGatherOptions {\\n    gatherPolicy?: RTCIceGatherPolicy;\\n    iceservers?: RTCIceServer[];\\n}\\n\\ninterface RTCIceParameters {\\n    password?: string;\\n    usernameFragment?: string;\\n}\\n\\ninterface RTCIceServer {\\n    credential?: string | RTCOAuthCredential;\\n    credentialType?: RTCIceCredentialType;\\n    urls: string | string[];\\n    username?: string;\\n}\\n\\ninterface RTCIdentityProviderOptions {\\n    peerIdentity?: string;\\n    protocol?: string;\\n    usernameHint?: string;\\n}\\n\\ninterface RTCInboundRTPStreamStats extends RTCRTPStreamStats {\\n    bytesReceived?: number;\\n    fractionLost?: number;\\n    jitter?: number;\\n    packetsLost?: number;\\n    packetsReceived?: number;\\n}\\n\\ninterface RTCMediaStreamTrackStats extends RTCStats {\\n    audioLevel?: number;\\n    echoReturnLoss?: number;\\n    echoReturnLossEnhancement?: number;\\n    frameHeight?: number;\\n    frameWidth?: number;\\n    framesCorrupted?: number;\\n    framesDecoded?: number;\\n    framesDropped?: number;\\n    framesPerSecond?: number;\\n    framesReceived?: number;\\n    framesSent?: number;\\n    remoteSource?: boolean;\\n    ssrcIds?: string[];\\n    trackIdentifier?: string;\\n}\\n\\ninterface RTCOAuthCredential {\\n    accessToken: string;\\n    macKey: string;\\n}\\n\\ninterface RTCOfferAnswerOptions {\\n    voiceActivityDetection?: boolean;\\n}\\n\\ninterface RTCOfferOptions extends RTCOfferAnswerOptions {\\n    iceRestart?: boolean;\\n    offerToReceiveAudio?: boolean;\\n    offerToReceiveVideo?: boolean;\\n}\\n\\ninterface RTCOutboundRTPStreamStats extends RTCRTPStreamStats {\\n    bytesSent?: number;\\n    packetsSent?: number;\\n    roundTripTime?: number;\\n    targetBitrate?: number;\\n}\\n\\ninterface RTCPeerConnectionIceErrorEventInit extends EventInit {\\n    errorCode: number;\\n    hostCandidate?: string;\\n    statusText?: string;\\n    url?: string;\\n}\\n\\ninterface RTCPeerConnectionIceEventInit extends EventInit {\\n    candidate?: RTCIceCandidate | null;\\n    url?: string | null;\\n}\\n\\ninterface RTCRTPStreamStats extends RTCStats {\\n    associateStatsId?: string;\\n    codecId?: string;\\n    firCount?: number;\\n    isRemote?: boolean;\\n    mediaTrackId?: string;\\n    mediaType?: string;\\n    nackCount?: number;\\n    pliCount?: number;\\n    sliCount?: number;\\n    ssrc?: string;\\n    transportId?: string;\\n}\\n\\ninterface RTCRtcpFeedback {\\n    parameter?: string;\\n    type?: string;\\n}\\n\\ninterface RTCRtcpParameters {\\n    cname?: string;\\n    reducedSize?: boolean;\\n}\\n\\ninterface RTCRtpCapabilities {\\n    codecs: RTCRtpCodecCapability[];\\n    headerExtensions: RTCRtpHeaderExtensionCapability[];\\n}\\n\\ninterface RTCRtpCodecCapability {\\n    channels?: number;\\n    clockRate: number;\\n    mimeType: string;\\n    sdpFmtpLine?: string;\\n}\\n\\ninterface RTCRtpCodecParameters {\\n    channels?: number;\\n    clockRate: number;\\n    mimeType: string;\\n    payloadType: number;\\n    sdpFmtpLine?: string;\\n}\\n\\ninterface RTCRtpCodingParameters {\\n    rid?: string;\\n}\\n\\ninterface RTCRtpContributingSource {\\n    audioLevel?: number;\\n    source: number;\\n    timestamp: number;\\n}\\n\\ninterface RTCRtpDecodingParameters extends RTCRtpCodingParameters {\\n}\\n\\ninterface RTCRtpEncodingParameters extends RTCRtpCodingParameters {\\n    active?: boolean;\\n    codecPayloadType?: number;\\n    dtx?: RTCDtxStatus;\\n    maxBitrate?: number;\\n    maxFramerate?: number;\\n    priority?: RTCPriorityType;\\n    ptime?: number;\\n    scaleResolutionDownBy?: number;\\n}\\n\\ninterface RTCRtpFecParameters {\\n    mechanism?: string;\\n    ssrc?: number;\\n}\\n\\ninterface RTCRtpHeaderExtension {\\n    kind?: string;\\n    preferredEncrypt?: boolean;\\n    preferredId?: number;\\n    uri?: string;\\n}\\n\\ninterface RTCRtpHeaderExtensionCapability {\\n    uri?: string;\\n}\\n\\ninterface RTCRtpHeaderExtensionParameters {\\n    encrypted?: boolean;\\n    id: number;\\n    uri: string;\\n}\\n\\ninterface RTCRtpParameters {\\n    codecs: RTCRtpCodecParameters[];\\n    headerExtensions: RTCRtpHeaderExtensionParameters[];\\n    rtcp: RTCRtcpParameters;\\n}\\n\\ninterface RTCRtpReceiveParameters extends RTCRtpParameters {\\n    encodings: RTCRtpDecodingParameters[];\\n}\\n\\ninterface RTCRtpRtxParameters {\\n    ssrc?: number;\\n}\\n\\ninterface RTCRtpSendParameters extends RTCRtpParameters {\\n    degradationPreference?: RTCDegradationPreference;\\n    encodings: RTCRtpEncodingParameters[];\\n    transactionId: string;\\n}\\n\\ninterface RTCRtpSynchronizationSource extends RTCRtpContributingSource {\\n    voiceActivityFlag?: boolean;\\n}\\n\\ninterface RTCRtpTransceiverInit {\\n    direction?: RTCRtpTransceiverDirection;\\n    sendEncodings?: RTCRtpEncodingParameters[];\\n    streams?: MediaStream[];\\n}\\n\\ninterface RTCRtpUnhandled {\\n    muxId?: string;\\n    payloadType?: number;\\n    ssrc?: number;\\n}\\n\\ninterface RTCSessionDescriptionInit {\\n    sdp?: string;\\n    type: RTCSdpType;\\n}\\n\\ninterface RTCSrtpKeyParam {\\n    keyMethod?: string;\\n    keySalt?: string;\\n    lifetime?: string;\\n    mkiLength?: number;\\n    mkiValue?: number;\\n}\\n\\ninterface RTCSrtpSdesParameters {\\n    cryptoSuite?: string;\\n    keyParams?: RTCSrtpKeyParam[];\\n    sessionParams?: string[];\\n    tag?: number;\\n}\\n\\ninterface RTCSsrcRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface RTCStats {\\n    id: string;\\n    timestamp: number;\\n    type: RTCStatsType;\\n}\\n\\ninterface RTCStatsEventInit extends EventInit {\\n    report: RTCStatsReport;\\n}\\n\\ninterface RTCStatsReport {\\n}\\n\\ninterface RTCTrackEventInit extends EventInit {\\n    receiver: RTCRtpReceiver;\\n    streams?: MediaStream[];\\n    track: MediaStreamTrack;\\n    transceiver: RTCRtpTransceiver;\\n}\\n\\ninterface RTCTransportStats extends RTCStats {\\n    activeConnection?: boolean;\\n    bytesReceived?: number;\\n    bytesSent?: number;\\n    localCertificateId?: string;\\n    remoteCertificateId?: string;\\n    rtcpTransportStatsId?: string;\\n    selectedCandidatePairId?: string;\\n}\\n\\ninterface RegistrationOptions {\\n    scope?: string;\\n    type?: WorkerType;\\n    updateViaCache?: ServiceWorkerUpdateViaCache;\\n}\\n\\ninterface RequestInit {\\n    /**\\n     * A BodyInit object or null to set request\\'s body.\\n     */\\n    body?: BodyInit | null;\\n    /**\\n     * A string indicating how the request will interact with the browser\\'s cache to set request\\'s cache.\\n     */\\n    cache?: RequestCache;\\n    /**\\n     * A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request\\'s credentials.\\n     */\\n    credentials?: RequestCredentials;\\n    /**\\n     * A Headers object, an object literal, or an array of two-item arrays to set request\\'s headers.\\n     */\\n    headers?: HeadersInit;\\n    /**\\n     * A cryptographic hash of the resource to be fetched by request. Sets request\\'s integrity.\\n     */\\n    integrity?: string;\\n    /**\\n     * A boolean to set request\\'s keepalive.\\n     */\\n    keepalive?: boolean;\\n    /**\\n     * A string to set request\\'s method.\\n     */\\n    method?: string;\\n    /**\\n     * A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request\\'s mode.\\n     */\\n    mode?: RequestMode;\\n    /**\\n     * A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request\\'s redirect.\\n     */\\n    redirect?: RequestRedirect;\\n    /**\\n     * A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request\\'s referrer.\\n     */\\n    referrer?: string;\\n    /**\\n     * A referrer policy to set request\\'s referrerPolicy.\\n     */\\n    referrerPolicy?: ReferrerPolicy;\\n    /**\\n     * An AbortSignal to set request\\'s signal.\\n     */\\n    signal?: AbortSignal | null;\\n    /**\\n     * Can only be null. Used to disassociate request from any Window.\\n     */\\n    window?: any;\\n}\\n\\ninterface ResponseInit {\\n    headers?: HeadersInit;\\n    status?: number;\\n    statusText?: string;\\n}\\n\\ninterface RsaHashedImportParams extends Algorithm {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\\n    hash: KeyAlgorithm;\\n}\\n\\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\\n    hash: HashAlgorithmIdentifier;\\n}\\n\\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\\n    modulusLength: number;\\n    publicExponent: BigInteger;\\n}\\n\\ninterface RsaKeyGenParams extends Algorithm {\\n    modulusLength: number;\\n    publicExponent: BigInteger;\\n}\\n\\ninterface RsaOaepParams extends Algorithm {\\n    label?: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface RsaOtherPrimesInfo {\\n    d?: string;\\n    r?: string;\\n    t?: string;\\n}\\n\\ninterface RsaPssParams extends Algorithm {\\n    saltLength: number;\\n}\\n\\ninterface SVGBoundingBoxOptions {\\n    clipped?: boolean;\\n    fill?: boolean;\\n    markers?: boolean;\\n    stroke?: boolean;\\n}\\n\\ninterface ScopedCredentialDescriptor {\\n    id: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null;\\n    transports?: Transport[];\\n    type: ScopedCredentialType;\\n}\\n\\ninterface ScopedCredentialOptions {\\n    excludeList?: ScopedCredentialDescriptor[];\\n    extensions?: WebAuthnExtensions;\\n    rpId?: string;\\n    timeoutSeconds?: number;\\n}\\n\\ninterface ScopedCredentialParameters {\\n    algorithm: string | Algorithm;\\n    type: ScopedCredentialType;\\n}\\n\\ninterface ScrollIntoViewOptions extends ScrollOptions {\\n    block?: ScrollLogicalPosition;\\n    inline?: ScrollLogicalPosition;\\n}\\n\\ninterface ScrollOptions {\\n    behavior?: ScrollBehavior;\\n}\\n\\ninterface ScrollToOptions extends ScrollOptions {\\n    left?: number;\\n    top?: number;\\n}\\n\\ninterface SecurityPolicyViolationEventInit extends EventInit {\\n    blockedURI?: string;\\n    columnNumber?: number;\\n    documentURI?: string;\\n    effectiveDirective?: string;\\n    lineNumber?: number;\\n    originalPolicy?: string;\\n    referrer?: string;\\n    sourceFile?: string;\\n    statusCode?: number;\\n    violatedDirective?: string;\\n}\\n\\ninterface ServiceWorkerMessageEventInit extends EventInit {\\n    data?: any;\\n    lastEventId?: string;\\n    origin?: string;\\n    ports?: MessagePort[] | null;\\n    source?: ServiceWorker | MessagePort | null;\\n}\\n\\ninterface ShadowRootInit {\\n    delegatesFocus?: boolean;\\n    mode: ShadowRootMode;\\n}\\n\\ninterface StereoPannerOptions extends AudioNodeOptions {\\n    pan?: number;\\n}\\n\\ninterface StorageEstimate {\\n    quota?: number;\\n    usage?: number;\\n}\\n\\ninterface StorageEventInit extends EventInit {\\n    key?: string | null;\\n    newValue?: string | null;\\n    oldValue?: string | null;\\n    storageArea?: Storage | null;\\n    url?: string;\\n}\\n\\ninterface StoreExceptionsInformation extends ExceptionInformation {\\n    detailURI?: string | null;\\n    explanationString?: string | null;\\n    siteName?: string | null;\\n}\\n\\ninterface StoreSiteSpecificExceptionsInformation extends StoreExceptionsInformation {\\n    arrayOfDomainStrings?: string[];\\n}\\n\\ninterface TextDecodeOptions {\\n    stream?: boolean;\\n}\\n\\ninterface TextDecoderOptions {\\n    fatal?: boolean;\\n    ignoreBOM?: boolean;\\n}\\n\\ninterface TextEncoderEncodeIntoResult {\\n    read?: number;\\n    written?: number;\\n}\\n\\ninterface TouchEventInit extends EventModifierInit {\\n    changedTouches?: Touch[];\\n    targetTouches?: Touch[];\\n    touches?: Touch[];\\n}\\n\\ninterface TouchInit {\\n    altitudeAngle?: number;\\n    azimuthAngle?: number;\\n    clientX?: number;\\n    clientY?: number;\\n    force?: number;\\n    identifier: number;\\n    pageX?: number;\\n    pageY?: number;\\n    radiusX?: number;\\n    radiusY?: number;\\n    rotationAngle?: number;\\n    screenX?: number;\\n    screenY?: number;\\n    target: EventTarget;\\n    touchType?: TouchType;\\n}\\n\\ninterface TrackEventInit extends EventInit {\\n    track?: VideoTrack | AudioTrack | TextTrack | null;\\n}\\n\\ninterface Transformer<I = any, O = any> {\\n    flush?: TransformStreamDefaultControllerCallback<O>;\\n    readableType?: undefined;\\n    start?: TransformStreamDefaultControllerCallback<O>;\\n    transform?: TransformStreamDefaultControllerTransformCallback<I, O>;\\n    writableType?: undefined;\\n}\\n\\ninterface TransitionEventInit extends EventInit {\\n    elapsedTime?: number;\\n    propertyName?: string;\\n    pseudoElement?: string;\\n}\\n\\ninterface UIEventInit extends EventInit {\\n    detail?: number;\\n    view?: Window | null;\\n}\\n\\ninterface ULongRange {\\n    max?: number;\\n    min?: number;\\n}\\n\\ninterface UnderlyingByteSource {\\n    autoAllocateChunkSize?: number;\\n    cancel?: ReadableStreamErrorCallback;\\n    pull?: ReadableByteStreamControllerCallback;\\n    start?: ReadableByteStreamControllerCallback;\\n    type: \"bytes\";\\n}\\n\\ninterface UnderlyingSink<W = any> {\\n    abort?: WritableStreamErrorCallback;\\n    close?: WritableStreamDefaultControllerCloseCallback;\\n    start?: WritableStreamDefaultControllerStartCallback;\\n    type?: undefined;\\n    write?: WritableStreamDefaultControllerWriteCallback<W>;\\n}\\n\\ninterface UnderlyingSource<R = any> {\\n    cancel?: ReadableStreamErrorCallback;\\n    pull?: ReadableStreamDefaultControllerCallback<R>;\\n    start?: ReadableStreamDefaultControllerCallback<R>;\\n    type?: undefined;\\n}\\n\\ninterface VRDisplayEventInit extends EventInit {\\n    display: VRDisplay;\\n    reason?: VRDisplayEventReason;\\n}\\n\\ninterface VRLayer {\\n    leftBounds?: number[] | Float32Array | null;\\n    rightBounds?: number[] | Float32Array | null;\\n    source?: HTMLCanvasElement | null;\\n}\\n\\ninterface VRStageParameters {\\n    sittingToStandingTransform?: Float32Array;\\n    sizeX?: number;\\n    sizeY?: number;\\n}\\n\\ninterface WaveShaperOptions extends AudioNodeOptions {\\n    curve?: number[] | Float32Array;\\n    oversample?: OverSampleType;\\n}\\n\\ninterface WebAuthnExtensions {\\n}\\n\\ninterface WebGLContextAttributes {\\n    alpha?: boolean;\\n    antialias?: boolean;\\n    depth?: boolean;\\n    desynchronized?: boolean;\\n    failIfMajorPerformanceCaveat?: boolean;\\n    powerPreference?: WebGLPowerPreference;\\n    premultipliedAlpha?: boolean;\\n    preserveDrawingBuffer?: boolean;\\n    stencil?: boolean;\\n}\\n\\ninterface WebGLContextEventInit extends EventInit {\\n    statusMessage?: string;\\n}\\n\\ninterface WheelEventInit extends MouseEventInit {\\n    deltaMode?: number;\\n    deltaX?: number;\\n    deltaY?: number;\\n    deltaZ?: number;\\n}\\n\\ninterface WorkerOptions {\\n    credentials?: RequestCredentials;\\n    name?: string;\\n    type?: WorkerType;\\n}\\n\\ninterface WorkletOptions {\\n    credentials?: RequestCredentials;\\n}\\n\\ninterface txAuthGenericArg {\\n    content: ArrayBuffer;\\n    contentType: string;\\n}\\n\\ninterface EventListener {\\n    (evt: Event): void;\\n}\\n\\ntype XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };\\n\\n/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */\\ninterface ANGLE_instanced_arrays {\\n    drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\\n    drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\\n    vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum;\\n}\\n\\n/** A controller object that allows you to abort one or more DOM requests as and when desired. */\\ninterface AbortController {\\n    /**\\n     * Returns the AbortSignal object associated with this object.\\n     */\\n    readonly signal: AbortSignal;\\n    /**\\n     * Invoking this method will set this object\\'s AbortSignal\\'s aborted flag and signal to any observers that the associated activity is to be aborted.\\n     */\\n    abort(): void;\\n}\\n\\ndeclare var AbortController: {\\n    prototype: AbortController;\\n    new(): AbortController;\\n};\\n\\ninterface AbortSignalEventMap {\\n    \"abort\": Event;\\n}\\n\\n/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */\\ninterface AbortSignal extends EventTarget {\\n    /**\\n     * Returns true if this AbortSignal\\'s AbortController has signaled to abort, and false otherwise.\\n     */\\n    readonly aborted: boolean;\\n    onabort: ((this: AbortSignal, ev: Event) => any) | null;\\n    addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AbortSignal: {\\n    prototype: AbortSignal;\\n    new(): AbortSignal;\\n};\\n\\ninterface AbstractRange {\\n    /**\\n     * Returns true if range is collapsed, and false otherwise.\\n     */\\n    readonly collapsed: boolean;\\n    /**\\n     * Returns range\\'s end node.\\n     */\\n    readonly endContainer: Node;\\n    /**\\n     * Returns range\\'s end offset.\\n     */\\n    readonly endOffset: number;\\n    /**\\n     * Returns range\\'s start node.\\n     */\\n    readonly startContainer: Node;\\n    /**\\n     * Returns range\\'s start offset.\\n     */\\n    readonly startOffset: number;\\n}\\n\\ndeclare var AbstractRange: {\\n    prototype: AbstractRange;\\n    new(): AbstractRange;\\n};\\n\\ninterface AbstractWorkerEventMap {\\n    \"error\": ErrorEvent;\\n}\\n\\ninterface AbstractWorker {\\n    onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\\n    addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface AesCfbParams extends Algorithm {\\n    iv: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface AesCmacParams extends Algorithm {\\n    length: number;\\n}\\n\\n/** A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations. */\\ninterface AnalyserNode extends AudioNode {\\n    fftSize: number;\\n    readonly frequencyBinCount: number;\\n    maxDecibels: number;\\n    minDecibels: number;\\n    smoothingTimeConstant: number;\\n    getByteFrequencyData(array: Uint8Array): void;\\n    getByteTimeDomainData(array: Uint8Array): void;\\n    getFloatFrequencyData(array: Float32Array): void;\\n    getFloatTimeDomainData(array: Float32Array): void;\\n}\\n\\ndeclare var AnalyserNode: {\\n    prototype: AnalyserNode;\\n    new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;\\n};\\n\\ninterface Animatable {\\n    animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;\\n    getAnimations(): Animation[];\\n}\\n\\ninterface AnimationEventMap {\\n    \"cancel\": AnimationPlaybackEvent;\\n    \"finish\": AnimationPlaybackEvent;\\n}\\n\\ninterface Animation extends EventTarget {\\n    currentTime: number | null;\\n    effect: AnimationEffect | null;\\n    readonly finished: Promise<Animation>;\\n    id: string;\\n    oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\\n    onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\\n    readonly pending: boolean;\\n    readonly playState: AnimationPlayState;\\n    playbackRate: number;\\n    readonly ready: Promise<Animation>;\\n    startTime: number | null;\\n    timeline: AnimationTimeline | null;\\n    cancel(): void;\\n    finish(): void;\\n    pause(): void;\\n    play(): void;\\n    reverse(): void;\\n    updatePlaybackRate(playbackRate: number): void;\\n    addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Animation: {\\n    prototype: Animation;\\n    new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;\\n};\\n\\ninterface AnimationEffect {\\n    getComputedTiming(): ComputedEffectTiming;\\n    getTiming(): EffectTiming;\\n    updateTiming(timing?: OptionalEffectTiming): void;\\n}\\n\\ndeclare var AnimationEffect: {\\n    prototype: AnimationEffect;\\n    new(): AnimationEffect;\\n};\\n\\n/** Events providing information related to animations. */\\ninterface AnimationEvent extends Event {\\n    readonly animationName: string;\\n    readonly elapsedTime: number;\\n    readonly pseudoElement: string;\\n}\\n\\ndeclare var AnimationEvent: {\\n    prototype: AnimationEvent;\\n    new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;\\n};\\n\\ninterface AnimationFrameProvider {\\n    cancelAnimationFrame(handle: number): void;\\n    requestAnimationFrame(callback: FrameRequestCallback): number;\\n}\\n\\ninterface AnimationPlaybackEvent extends Event {\\n    readonly currentTime: number | null;\\n    readonly timelineTime: number | null;\\n}\\n\\ndeclare var AnimationPlaybackEvent: {\\n    prototype: AnimationPlaybackEvent;\\n    new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;\\n};\\n\\ninterface AnimationTimeline {\\n    readonly currentTime: number | null;\\n}\\n\\ndeclare var AnimationTimeline: {\\n    prototype: AnimationTimeline;\\n    new(): AnimationTimeline;\\n};\\n\\ninterface ApplicationCacheEventMap {\\n    \"cached\": Event;\\n    \"checking\": Event;\\n    \"downloading\": Event;\\n    \"error\": Event;\\n    \"noupdate\": Event;\\n    \"obsolete\": Event;\\n    \"progress\": ProgressEvent<ApplicationCache>;\\n    \"updateready\": Event;\\n}\\n\\ninterface ApplicationCache extends EventTarget {\\n    /** @deprecated */\\n    oncached: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onchecking: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    ondownloading: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onerror: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onnoupdate: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onobsolete: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onprogress: ((this: ApplicationCache, ev: ProgressEvent<ApplicationCache>) => any) | null;\\n    /** @deprecated */\\n    onupdateready: ((this: ApplicationCache, ev: Event) => any) | null;\\n    /** @deprecated */\\n    readonly status: number;\\n    /** @deprecated */\\n    abort(): void;\\n    /** @deprecated */\\n    swapCache(): void;\\n    /** @deprecated */\\n    update(): void;\\n    readonly CHECKING: number;\\n    readonly DOWNLOADING: number;\\n    readonly IDLE: number;\\n    readonly OBSOLETE: number;\\n    readonly UNCACHED: number;\\n    readonly UPDATEREADY: number;\\n    addEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ApplicationCache: {\\n    prototype: ApplicationCache;\\n    new(): ApplicationCache;\\n    readonly CHECKING: number;\\n    readonly DOWNLOADING: number;\\n    readonly IDLE: number;\\n    readonly OBSOLETE: number;\\n    readonly UNCACHED: number;\\n    readonly UPDATEREADY: number;\\n};\\n\\n/** A DOM element\\'s attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types. */\\ninterface Attr extends Node {\\n    readonly localName: string;\\n    readonly name: string;\\n    readonly namespaceURI: string | null;\\n    readonly ownerElement: Element | null;\\n    readonly prefix: string | null;\\n    readonly specified: boolean;\\n    value: string;\\n}\\n\\ndeclare var Attr: {\\n    prototype: Attr;\\n    new(): Attr;\\n};\\n\\n/** A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode. */\\ninterface AudioBuffer {\\n    readonly duration: number;\\n    readonly length: number;\\n    readonly numberOfChannels: number;\\n    readonly sampleRate: number;\\n    copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void;\\n    copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void;\\n    getChannelData(channel: number): Float32Array;\\n}\\n\\ndeclare var AudioBuffer: {\\n    prototype: AudioBuffer;\\n    new(options: AudioBufferOptions): AudioBuffer;\\n};\\n\\n/** An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It\\'s especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. */\\ninterface AudioBufferSourceNode extends AudioScheduledSourceNode {\\n    buffer: AudioBuffer | null;\\n    readonly detune: AudioParam;\\n    loop: boolean;\\n    loopEnd: number;\\n    loopStart: number;\\n    readonly playbackRate: AudioParam;\\n    start(when?: number, offset?: number, duration?: number): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioBufferSourceNode: {\\n    prototype: AudioBufferSourceNode;\\n    new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;\\n};\\n\\n/** An audio-processing graph built from audio modules linked together, each represented by an AudioNode. */\\ninterface AudioContext extends BaseAudioContext {\\n    readonly baseLatency: number;\\n    readonly outputLatency: number;\\n    close(): Promise<void>;\\n    createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\\n    createMediaStreamDestination(): MediaStreamAudioDestinationNode;\\n    createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\\n    createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack): MediaStreamTrackAudioSourceNode;\\n    getOutputTimestamp(): AudioTimestamp;\\n    resume(): Promise<void>;\\n    suspend(): Promise<void>;\\n    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioContext: {\\n    prototype: AudioContext;\\n    new(contextOptions?: AudioContextOptions): AudioContext;\\n};\\n\\n/** AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised. */\\ninterface AudioDestinationNode extends AudioNode {\\n    readonly maxChannelCount: number;\\n}\\n\\ndeclare var AudioDestinationNode: {\\n    prototype: AudioDestinationNode;\\n    new(): AudioDestinationNode;\\n};\\n\\n/** The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute. */\\ninterface AudioListener {\\n    readonly forwardX: AudioParam;\\n    readonly forwardY: AudioParam;\\n    readonly forwardZ: AudioParam;\\n    readonly positionX: AudioParam;\\n    readonly positionY: AudioParam;\\n    readonly positionZ: AudioParam;\\n    readonly upX: AudioParam;\\n    readonly upY: AudioParam;\\n    readonly upZ: AudioParam;\\n    /** @deprecated */\\n    setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\\n    /** @deprecated */\\n    setPosition(x: number, y: number, z: number): void;\\n}\\n\\ndeclare var AudioListener: {\\n    prototype: AudioListener;\\n    new(): AudioListener;\\n};\\n\\n/** A generic interface for representing an audio processing module. Examples include: */\\ninterface AudioNode extends EventTarget {\\n    channelCount: number;\\n    channelCountMode: ChannelCountMode;\\n    channelInterpretation: ChannelInterpretation;\\n    readonly context: BaseAudioContext;\\n    readonly numberOfInputs: number;\\n    readonly numberOfOutputs: number;\\n    connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;\\n    connect(destinationParam: AudioParam, output?: number): void;\\n    disconnect(): void;\\n    disconnect(output: number): void;\\n    disconnect(destinationNode: AudioNode): void;\\n    disconnect(destinationNode: AudioNode, output: number): void;\\n    disconnect(destinationNode: AudioNode, output: number, input: number): void;\\n    disconnect(destinationParam: AudioParam): void;\\n    disconnect(destinationParam: AudioParam, output: number): void;\\n}\\n\\ndeclare var AudioNode: {\\n    prototype: AudioNode;\\n    new(): AudioNode;\\n};\\n\\n/** The Web Audio API\\'s AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain). */\\ninterface AudioParam {\\n    automationRate: AutomationRate;\\n    readonly defaultValue: number;\\n    readonly maxValue: number;\\n    readonly minValue: number;\\n    value: number;\\n    cancelAndHoldAtTime(cancelTime: number): AudioParam;\\n    cancelScheduledValues(cancelTime: number): AudioParam;\\n    exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\\n    linearRampToValueAtTime(value: number, endTime: number): AudioParam;\\n    setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\\n    setValueAtTime(value: number, startTime: number): AudioParam;\\n    setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;\\n}\\n\\ndeclare var AudioParam: {\\n    prototype: AudioParam;\\n    new(): AudioParam;\\n};\\n\\ninterface AudioParamMap {\\n    forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;\\n}\\n\\ndeclare var AudioParamMap: {\\n    prototype: AudioParamMap;\\n    new(): AudioParamMap;\\n};\\n\\n/** The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed. */\\ninterface AudioProcessingEvent extends Event {\\n    readonly inputBuffer: AudioBuffer;\\n    readonly outputBuffer: AudioBuffer;\\n    readonly playbackTime: number;\\n}\\n\\ndeclare var AudioProcessingEvent: {\\n    prototype: AudioProcessingEvent;\\n    new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;\\n};\\n\\ninterface AudioScheduledSourceNodeEventMap {\\n    \"ended\": Event;\\n}\\n\\ninterface AudioScheduledSourceNode extends AudioNode {\\n    onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;\\n    start(when?: number): void;\\n    stop(when?: number): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioScheduledSourceNode: {\\n    prototype: AudioScheduledSourceNode;\\n    new(): AudioScheduledSourceNode;\\n};\\n\\n/** A single audio track from one of the HTML media elements, <audio> or <video>.  */\\ninterface AudioTrack {\\n    enabled: boolean;\\n    readonly id: string;\\n    kind: string;\\n    readonly label: string;\\n    language: string;\\n    readonly sourceBuffer: SourceBuffer | null;\\n}\\n\\ndeclare var AudioTrack: {\\n    prototype: AudioTrack;\\n    new(): AudioTrack;\\n};\\n\\ninterface AudioTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n    \"change\": Event;\\n    \"removetrack\": TrackEvent;\\n}\\n\\n/** Used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate AudioTrack object in the list. */\\ninterface AudioTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: AudioTrackList, ev: TrackEvent) => any) | null;\\n    onchange: ((this: AudioTrackList, ev: Event) => any) | null;\\n    onremovetrack: ((this: AudioTrackList, ev: TrackEvent) => any) | null;\\n    getTrackById(id: string): AudioTrack | null;\\n    item(index: number): AudioTrack;\\n    addEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: AudioTrack;\\n}\\n\\ndeclare var AudioTrackList: {\\n    prototype: AudioTrackList;\\n    new(): AudioTrackList;\\n};\\n\\ninterface AudioWorklet extends Worklet {\\n}\\n\\ndeclare var AudioWorklet: {\\n    prototype: AudioWorklet;\\n    new(): AudioWorklet;\\n};\\n\\ninterface AudioWorkletNodeEventMap {\\n    \"processorerror\": Event;\\n}\\n\\ninterface AudioWorkletNode extends AudioNode {\\n    onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;\\n    readonly parameters: AudioParamMap;\\n    readonly port: MessagePort;\\n    addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var AudioWorkletNode: {\\n    prototype: AudioWorkletNode;\\n    new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;\\n};\\n\\ninterface AuthenticatorAssertionResponse extends AuthenticatorResponse {\\n    readonly authenticatorData: ArrayBuffer;\\n    readonly signature: ArrayBuffer;\\n    readonly userHandle: ArrayBuffer | null;\\n}\\n\\ndeclare var AuthenticatorAssertionResponse: {\\n    prototype: AuthenticatorAssertionResponse;\\n    new(): AuthenticatorAssertionResponse;\\n};\\n\\ninterface AuthenticatorAttestationResponse extends AuthenticatorResponse {\\n    readonly attestationObject: ArrayBuffer;\\n}\\n\\ndeclare var AuthenticatorAttestationResponse: {\\n    prototype: AuthenticatorAttestationResponse;\\n    new(): AuthenticatorAttestationResponse;\\n};\\n\\ninterface AuthenticatorResponse {\\n    readonly clientDataJSON: ArrayBuffer;\\n}\\n\\ndeclare var AuthenticatorResponse: {\\n    prototype: AuthenticatorResponse;\\n    new(): AuthenticatorResponse;\\n};\\n\\ninterface BarProp {\\n    readonly visible: boolean;\\n}\\n\\ndeclare var BarProp: {\\n    prototype: BarProp;\\n    new(): BarProp;\\n};\\n\\ninterface BaseAudioContextEventMap {\\n    \"statechange\": Event;\\n}\\n\\ninterface BaseAudioContext extends EventTarget {\\n    readonly audioWorklet: AudioWorklet;\\n    readonly currentTime: number;\\n    readonly destination: AudioDestinationNode;\\n    readonly listener: AudioListener;\\n    onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;\\n    readonly sampleRate: number;\\n    readonly state: AudioContextState;\\n    createAnalyser(): AnalyserNode;\\n    createBiquadFilter(): BiquadFilterNode;\\n    createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\\n    createBufferSource(): AudioBufferSourceNode;\\n    createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\\n    createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\\n    createConstantSource(): ConstantSourceNode;\\n    createConvolver(): ConvolverNode;\\n    createDelay(maxDelayTime?: number): DelayNode;\\n    createDynamicsCompressor(): DynamicsCompressorNode;\\n    createGain(): GainNode;\\n    createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\\n    createOscillator(): OscillatorNode;\\n    createPanner(): PannerNode;\\n    createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\\n    createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\\n    createStereoPanner(): StereoPannerNode;\\n    createWaveShaper(): WaveShaperNode;\\n    decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise<AudioBuffer>;\\n    addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var BaseAudioContext: {\\n    prototype: BaseAudioContext;\\n    new(): BaseAudioContext;\\n};\\n\\n/** The beforeunload event is fired when the window, the document and its resources are about to be unloaded. */\\ninterface BeforeUnloadEvent extends Event {\\n    returnValue: any;\\n}\\n\\ndeclare var BeforeUnloadEvent: {\\n    prototype: BeforeUnloadEvent;\\n    new(): BeforeUnloadEvent;\\n};\\n\\ninterface BhxBrowser {\\n    readonly lastError: DOMException;\\n    checkMatchesGlobExpression(pattern: string, value: string): boolean;\\n    checkMatchesUriExpression(pattern: string, value: string): boolean;\\n    clearLastError(): void;\\n    currentWindowId(): number;\\n    fireExtensionApiTelemetry(functionName: string, isSucceeded: boolean, isSupported: boolean, errorString: string): void;\\n    genericFunction(functionId: number, destination: any, parameters?: string, callbackId?: number): void;\\n    genericSynchronousFunction(functionId: number, parameters?: string): string;\\n    getExtensionId(): string;\\n    getThisAddress(): any;\\n    registerGenericFunctionCallbackHandler(callbackHandler: Function): void;\\n    registerGenericListenerHandler(eventHandler: Function): void;\\n    setLastError(parameters: string): void;\\n    webPlatformGenericFunction(destination: any, parameters?: string, callbackId?: number): void;\\n}\\n\\ndeclare var BhxBrowser: {\\n    prototype: BhxBrowser;\\n    new(): BhxBrowser;\\n};\\n\\n/** A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers. */\\ninterface BiquadFilterNode extends AudioNode {\\n    readonly Q: AudioParam;\\n    readonly detune: AudioParam;\\n    readonly frequency: AudioParam;\\n    readonly gain: AudioParam;\\n    type: BiquadFilterType;\\n    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\\n}\\n\\ndeclare var BiquadFilterNode: {\\n    prototype: BiquadFilterNode;\\n    new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;\\n};\\n\\n/** A file-like object of immutable, raw data. Blobs represent data that isn\\'t necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user\\'s system. */\\ninterface Blob {\\n    readonly size: number;\\n    readonly type: string;\\n    slice(start?: number, end?: number, contentType?: string): Blob;\\n}\\n\\ndeclare var Blob: {\\n    prototype: Blob;\\n    new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\\n};\\n\\ninterface Body {\\n    readonly body: ReadableStream<Uint8Array> | null;\\n    readonly bodyUsed: boolean;\\n    arrayBuffer(): Promise<ArrayBuffer>;\\n    blob(): Promise<Blob>;\\n    formData(): Promise<FormData>;\\n    json(): Promise<any>;\\n    text(): Promise<string>;\\n}\\n\\ninterface BroadcastChannelEventMap {\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\ninterface BroadcastChannel extends EventTarget {\\n    /**\\n     * Returns the channel name (as passed to the constructor).\\n     */\\n    readonly name: string;\\n    onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\\n    /**\\n     * Closes the BroadcastChannel object, opening it up to garbage collection.\\n     */\\n    close(): void;\\n    /**\\n     * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays.\\n     */\\n    postMessage(message: any): void;\\n    addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var BroadcastChannel: {\\n    prototype: BroadcastChannel;\\n    new(name: string): BroadcastChannel;\\n};\\n\\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\\ninterface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\\n    highWaterMark: number;\\n    size(chunk: ArrayBufferView): number;\\n}\\n\\ndeclare var ByteLengthQueuingStrategy: {\\n    prototype: ByteLengthQueuingStrategy;\\n    new(options: { highWaterMark: number }): ByteLengthQueuingStrategy;\\n};\\n\\n/** A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section. */\\ninterface CDATASection extends Text {\\n}\\n\\ndeclare var CDATASection: {\\n    prototype: CDATASection;\\n    new(): CDATASection;\\n};\\n\\n/** Holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */\\ninterface CSS {\\n    escape(value: string): string;\\n    supports(property: string, value?: string): boolean;\\n}\\ndeclare var CSS: CSS;\\n\\n/** A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule. */\\ninterface CSSConditionRule extends CSSGroupingRule {\\n    conditionText: string;\\n}\\n\\ndeclare var CSSConditionRule: {\\n    prototype: CSSConditionRule;\\n    new(): CSSConditionRule;\\n};\\n\\ninterface CSSFontFaceRule extends CSSRule {\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSFontFaceRule: {\\n    prototype: CSSFontFaceRule;\\n    new(): CSSFontFaceRule;\\n};\\n\\n/** Any CSS at-rule that contains other rules nested within it. */\\ninterface CSSGroupingRule extends CSSRule {\\n    readonly cssRules: CSSRuleList;\\n    deleteRule(index: number): void;\\n    insertRule(rule: string, index: number): number;\\n}\\n\\ndeclare var CSSGroupingRule: {\\n    prototype: CSSGroupingRule;\\n    new(): CSSGroupingRule;\\n};\\n\\ninterface CSSImportRule extends CSSRule {\\n    readonly href: string;\\n    readonly media: MediaList;\\n    readonly styleSheet: CSSStyleSheet;\\n}\\n\\ndeclare var CSSImportRule: {\\n    prototype: CSSImportRule;\\n    new(): CSSImportRule;\\n};\\n\\n/** An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE). */\\ninterface CSSKeyframeRule extends CSSRule {\\n    keyText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSKeyframeRule: {\\n    prototype: CSSKeyframeRule;\\n    new(): CSSKeyframeRule;\\n};\\n\\n/** An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE). */\\ninterface CSSKeyframesRule extends CSSRule {\\n    readonly cssRules: CSSRuleList;\\n    name: string;\\n    appendRule(rule: string): void;\\n    deleteRule(select: string): void;\\n    findRule(select: string): CSSKeyframeRule | null;\\n}\\n\\ndeclare var CSSKeyframesRule: {\\n    prototype: CSSKeyframesRule;\\n    new(): CSSKeyframesRule;\\n};\\n\\n/** A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE). */\\ninterface CSSMediaRule extends CSSConditionRule {\\n    readonly media: MediaList;\\n}\\n\\ndeclare var CSSMediaRule: {\\n    prototype: CSSMediaRule;\\n    new(): CSSMediaRule;\\n};\\n\\n/** An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE). */\\ninterface CSSNamespaceRule extends CSSRule {\\n    readonly namespaceURI: string;\\n    readonly prefix: string;\\n}\\n\\ndeclare var CSSNamespaceRule: {\\n    prototype: CSSNamespaceRule;\\n    new(): CSSNamespaceRule;\\n};\\n\\n/** CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE). */\\ninterface CSSPageRule extends CSSRule {\\n    readonly pseudoClass: string;\\n    readonly selector: string;\\n    selectorText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSPageRule: {\\n    prototype: CSSPageRule;\\n    new(): CSSPageRule;\\n};\\n\\n/** A single CSS rule. There are several types of rules, listed in the Type constants section below. */\\ninterface CSSRule {\\n    cssText: string;\\n    readonly parentRule: CSSRule | null;\\n    readonly parentStyleSheet: CSSStyleSheet | null;\\n    readonly type: number;\\n    readonly CHARSET_RULE: number;\\n    readonly FONT_FACE_RULE: number;\\n    readonly IMPORT_RULE: number;\\n    readonly KEYFRAMES_RULE: number;\\n    readonly KEYFRAME_RULE: number;\\n    readonly MEDIA_RULE: number;\\n    readonly NAMESPACE_RULE: number;\\n    readonly PAGE_RULE: number;\\n    readonly STYLE_RULE: number;\\n    readonly SUPPORTS_RULE: number;\\n    readonly UNKNOWN_RULE: number;\\n    readonly VIEWPORT_RULE: number;\\n}\\n\\ndeclare var CSSRule: {\\n    prototype: CSSRule;\\n    new(): CSSRule;\\n    readonly CHARSET_RULE: number;\\n    readonly FONT_FACE_RULE: number;\\n    readonly IMPORT_RULE: number;\\n    readonly KEYFRAMES_RULE: number;\\n    readonly KEYFRAME_RULE: number;\\n    readonly MEDIA_RULE: number;\\n    readonly NAMESPACE_RULE: number;\\n    readonly PAGE_RULE: number;\\n    readonly STYLE_RULE: number;\\n    readonly SUPPORTS_RULE: number;\\n    readonly UNKNOWN_RULE: number;\\n    readonly VIEWPORT_RULE: number;\\n};\\n\\n/** A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. */\\ninterface CSSRuleList {\\n    readonly length: number;\\n    item(index: number): CSSRule | null;\\n    [index: number]: CSSRule;\\n}\\n\\ndeclare var CSSRuleList: {\\n    prototype: CSSRuleList;\\n    new(): CSSRuleList;\\n};\\n\\n/** An object that is a CSS declaration block, and exposes style information and various style-related methods and properties. */\\ninterface CSSStyleDeclaration {\\n    alignContent: string;\\n    alignItems: string;\\n    alignSelf: string;\\n    alignmentBaseline: string;\\n    animation: string;\\n    animationDelay: string;\\n    animationDirection: string;\\n    animationDuration: string;\\n    animationFillMode: string;\\n    animationIterationCount: string;\\n    animationName: string;\\n    animationPlayState: string;\\n    animationTimingFunction: string;\\n    backfaceVisibility: string;\\n    background: string;\\n    backgroundAttachment: string;\\n    backgroundClip: string;\\n    backgroundColor: string;\\n    backgroundImage: string;\\n    backgroundOrigin: string;\\n    backgroundPosition: string;\\n    backgroundPositionX: string;\\n    backgroundPositionY: string;\\n    backgroundRepeat: string;\\n    backgroundSize: string;\\n    baselineShift: string;\\n    blockSize: string;\\n    border: string;\\n    borderBlockEnd: string;\\n    borderBlockEndColor: string;\\n    borderBlockEndStyle: string;\\n    borderBlockEndWidth: string;\\n    borderBlockStart: string;\\n    borderBlockStartColor: string;\\n    borderBlockStartStyle: string;\\n    borderBlockStartWidth: string;\\n    borderBottom: string;\\n    borderBottomColor: string;\\n    borderBottomLeftRadius: string;\\n    borderBottomRightRadius: string;\\n    borderBottomStyle: string;\\n    borderBottomWidth: string;\\n    borderCollapse: string;\\n    borderColor: string;\\n    borderImage: string;\\n    borderImageOutset: string;\\n    borderImageRepeat: string;\\n    borderImageSlice: string;\\n    borderImageSource: string;\\n    borderImageWidth: string;\\n    borderInlineEnd: string;\\n    borderInlineEndColor: string;\\n    borderInlineEndStyle: string;\\n    borderInlineEndWidth: string;\\n    borderInlineStart: string;\\n    borderInlineStartColor: string;\\n    borderInlineStartStyle: string;\\n    borderInlineStartWidth: string;\\n    borderLeft: string;\\n    borderLeftColor: string;\\n    borderLeftStyle: string;\\n    borderLeftWidth: string;\\n    borderRadius: string;\\n    borderRight: string;\\n    borderRightColor: string;\\n    borderRightStyle: string;\\n    borderRightWidth: string;\\n    borderSpacing: string;\\n    borderStyle: string;\\n    borderTop: string;\\n    borderTopColor: string;\\n    borderTopLeftRadius: string;\\n    borderTopRightRadius: string;\\n    borderTopStyle: string;\\n    borderTopWidth: string;\\n    borderWidth: string;\\n    bottom: string;\\n    boxShadow: string;\\n    boxSizing: string;\\n    breakAfter: string;\\n    breakBefore: string;\\n    breakInside: string;\\n    captionSide: string;\\n    caretColor: string;\\n    clear: string;\\n    clip: string;\\n    clipPath: string;\\n    clipRule: string;\\n    color: string | null;\\n    colorInterpolation: string;\\n    colorInterpolationFilters: string;\\n    columnCount: string;\\n    columnFill: string;\\n    columnGap: string;\\n    columnRule: string;\\n    columnRuleColor: string;\\n    columnRuleStyle: string;\\n    columnRuleWidth: string;\\n    columnSpan: string;\\n    columnWidth: string;\\n    columns: string;\\n    content: string;\\n    counterIncrement: string;\\n    counterReset: string;\\n    cssFloat: string | null;\\n    cssText: string;\\n    cursor: string;\\n    direction: string;\\n    display: string;\\n    dominantBaseline: string;\\n    emptyCells: string;\\n    enableBackground: string | null;\\n    fill: string;\\n    fillOpacity: string;\\n    fillRule: string;\\n    filter: string;\\n    flex: string;\\n    flexBasis: string;\\n    flexDirection: string;\\n    flexFlow: string;\\n    flexGrow: string;\\n    flexShrink: string;\\n    flexWrap: string;\\n    float: string;\\n    floodColor: string;\\n    floodOpacity: string;\\n    font: string;\\n    fontFamily: string;\\n    fontFeatureSettings: string;\\n    fontKerning: string;\\n    fontSize: string;\\n    fontSizeAdjust: string;\\n    fontStretch: string;\\n    fontStyle: string;\\n    fontSynthesis: string;\\n    fontVariant: string;\\n    fontVariantCaps: string;\\n    fontVariantEastAsian: string;\\n    fontVariantLigatures: string;\\n    fontVariantNumeric: string;\\n    fontVariantPosition: string;\\n    fontWeight: string;\\n    gap: string;\\n    glyphOrientationHorizontal: string | null;\\n    glyphOrientationVertical: string;\\n    grid: string;\\n    gridArea: string;\\n    gridAutoColumns: string;\\n    gridAutoFlow: string;\\n    gridAutoRows: string;\\n    gridColumn: string;\\n    gridColumnEnd: string;\\n    gridColumnGap: string;\\n    gridColumnStart: string;\\n    gridGap: string;\\n    gridRow: string;\\n    gridRowEnd: string;\\n    gridRowGap: string;\\n    gridRowStart: string;\\n    gridTemplate: string;\\n    gridTemplateAreas: string;\\n    gridTemplateColumns: string;\\n    gridTemplateRows: string;\\n    height: string;\\n    hyphens: string;\\n    imageOrientation: string;\\n    imageRendering: string;\\n    imeMode: string | null;\\n    inlineSize: string;\\n    justifyContent: string;\\n    justifyItems: string;\\n    justifySelf: string;\\n    kerning: string | null;\\n    layoutGrid: string | null;\\n    layoutGridChar: string | null;\\n    layoutGridLine: string | null;\\n    layoutGridMode: string | null;\\n    layoutGridType: string | null;\\n    left: string;\\n    readonly length: number;\\n    letterSpacing: string;\\n    lightingColor: string;\\n    lineBreak: string;\\n    lineHeight: string;\\n    listStyle: string;\\n    listStyleImage: string;\\n    listStylePosition: string;\\n    listStyleType: string;\\n    margin: string;\\n    marginBlockEnd: string;\\n    marginBlockStart: string;\\n    marginBottom: string;\\n    marginInlineEnd: string;\\n    marginInlineStart: string;\\n    marginLeft: string;\\n    marginRight: string;\\n    marginTop: string;\\n    marker: string;\\n    markerEnd: string;\\n    markerMid: string;\\n    markerStart: string;\\n    mask: string;\\n    maskComposite: string;\\n    maskImage: string;\\n    maskPosition: string;\\n    maskRepeat: string;\\n    maskSize: string;\\n    maskType: string;\\n    maxBlockSize: string;\\n    maxHeight: string;\\n    maxInlineSize: string;\\n    maxWidth: string;\\n    minBlockSize: string;\\n    minHeight: string;\\n    minInlineSize: string;\\n    minWidth: string;\\n    msContentZoomChaining: string | null;\\n    msContentZoomLimit: string | null;\\n    msContentZoomLimitMax: any;\\n    msContentZoomLimitMin: any;\\n    msContentZoomSnap: string | null;\\n    msContentZoomSnapPoints: string | null;\\n    msContentZoomSnapType: string | null;\\n    msContentZooming: string | null;\\n    msFlowFrom: string | null;\\n    msFlowInto: string | null;\\n    msFontFeatureSettings: string | null;\\n    msGridColumn: any;\\n    msGridColumnAlign: string | null;\\n    msGridColumnSpan: any;\\n    msGridColumns: string | null;\\n    msGridRow: any;\\n    msGridRowAlign: string | null;\\n    msGridRowSpan: any;\\n    msGridRows: string | null;\\n    msHighContrastAdjust: string | null;\\n    msHyphenateLimitChars: string | null;\\n    msHyphenateLimitLines: any;\\n    msHyphenateLimitZone: any;\\n    msHyphens: string | null;\\n    msImeAlign: string | null;\\n    msOverflowStyle: string | null;\\n    msScrollChaining: string | null;\\n    msScrollLimit: string | null;\\n    msScrollLimitXMax: any;\\n    msScrollLimitXMin: any;\\n    msScrollLimitYMax: any;\\n    msScrollLimitYMin: any;\\n    msScrollRails: string | null;\\n    msScrollSnapPointsX: string | null;\\n    msScrollSnapPointsY: string | null;\\n    msScrollSnapType: string | null;\\n    msScrollSnapX: string | null;\\n    msScrollSnapY: string | null;\\n    msScrollTranslation: string | null;\\n    msTextCombineHorizontal: string | null;\\n    msTextSizeAdjust: any;\\n    msTouchAction: string | null;\\n    msTouchSelect: string | null;\\n    msUserSelect: string | null;\\n    msWrapFlow: string;\\n    msWrapMargin: any;\\n    msWrapThrough: string;\\n    objectFit: string;\\n    objectPosition: string;\\n    opacity: string | null;\\n    order: string;\\n    orphans: string;\\n    outline: string;\\n    outlineColor: string;\\n    outlineOffset: string;\\n    outlineStyle: string;\\n    outlineWidth: string;\\n    overflow: string;\\n    overflowAnchor: string;\\n    overflowWrap: string;\\n    overflowX: string;\\n    overflowY: string;\\n    padding: string;\\n    paddingBlockEnd: string;\\n    paddingBlockStart: string;\\n    paddingBottom: string;\\n    paddingInlineEnd: string;\\n    paddingInlineStart: string;\\n    paddingLeft: string;\\n    paddingRight: string;\\n    paddingTop: string;\\n    pageBreakAfter: string;\\n    pageBreakBefore: string;\\n    pageBreakInside: string;\\n    paintOrder: string;\\n    readonly parentRule: CSSRule;\\n    penAction: string | null;\\n    perspective: string;\\n    perspectiveOrigin: string;\\n    placeContent: string;\\n    placeItems: string;\\n    placeSelf: string;\\n    pointerEvents: string | null;\\n    position: string;\\n    quotes: string;\\n    resize: string;\\n    right: string;\\n    rotate: string;\\n    rowGap: string;\\n    rubyAlign: string | null;\\n    rubyOverhang: string | null;\\n    rubyPosition: string | null;\\n    scale: string;\\n    scrollBehavior: string;\\n    shapeRendering: string;\\n    stopColor: string | null;\\n    stopOpacity: string | null;\\n    stroke: string;\\n    strokeDasharray: string;\\n    strokeDashoffset: string;\\n    strokeLinecap: string;\\n    strokeLinejoin: string;\\n    strokeMiterlimit: string;\\n    strokeOpacity: string;\\n    strokeWidth: string;\\n    tabSize: string;\\n    tableLayout: string;\\n    textAlign: string;\\n    textAlignLast: string;\\n    textAnchor: string | null;\\n    textCombineUpright: string;\\n    textDecoration: string;\\n    textDecorationColor: string;\\n    textDecorationLine: string;\\n    textDecorationStyle: string;\\n    textEmphasis: string;\\n    textEmphasisColor: string;\\n    textEmphasisPosition: string;\\n    textEmphasisStyle: string;\\n    textIndent: string;\\n    textJustify: string;\\n    textKashida: string | null;\\n    textKashidaSpace: string | null;\\n    textOrientation: string;\\n    textOverflow: string;\\n    textRendering: string;\\n    textShadow: string;\\n    textTransform: string;\\n    textUnderlinePosition: string;\\n    top: string;\\n    touchAction: string;\\n    transform: string;\\n    transformBox: string;\\n    transformOrigin: string;\\n    transformStyle: string;\\n    transition: string;\\n    transitionDelay: string;\\n    transitionDuration: string;\\n    transitionProperty: string;\\n    transitionTimingFunction: string;\\n    translate: string;\\n    unicodeBidi: string;\\n    userSelect: string;\\n    verticalAlign: string;\\n    visibility: string;\\n    /** @deprecated */\\n    webkitAlignContent: string;\\n    /** @deprecated */\\n    webkitAlignItems: string;\\n    /** @deprecated */\\n    webkitAlignSelf: string;\\n    /** @deprecated */\\n    webkitAnimation: string;\\n    /** @deprecated */\\n    webkitAnimationDelay: string;\\n    /** @deprecated */\\n    webkitAnimationDirection: string;\\n    /** @deprecated */\\n    webkitAnimationDuration: string;\\n    /** @deprecated */\\n    webkitAnimationFillMode: string;\\n    /** @deprecated */\\n    webkitAnimationIterationCount: string;\\n    /** @deprecated */\\n    webkitAnimationName: string;\\n    /** @deprecated */\\n    webkitAnimationPlayState: string;\\n    /** @deprecated */\\n    webkitAnimationTimingFunction: string;\\n    /** @deprecated */\\n    webkitAppearance: string;\\n    /** @deprecated */\\n    webkitBackfaceVisibility: string;\\n    /** @deprecated */\\n    webkitBackgroundClip: string;\\n    /** @deprecated */\\n    webkitBackgroundOrigin: string;\\n    /** @deprecated */\\n    webkitBackgroundSize: string;\\n    /** @deprecated */\\n    webkitBorderBottomLeftRadius: string;\\n    /** @deprecated */\\n    webkitBorderBottomRightRadius: string;\\n    webkitBorderImage: string | null;\\n    /** @deprecated */\\n    webkitBorderRadius: string;\\n    /** @deprecated */\\n    webkitBorderTopLeftRadius: string;\\n    /** @deprecated */\\n    webkitBorderTopRightRadius: string;\\n    /** @deprecated */\\n    webkitBoxAlign: string;\\n    webkitBoxDirection: string | null;\\n    /** @deprecated */\\n    webkitBoxFlex: string;\\n    /** @deprecated */\\n    webkitBoxOrdinalGroup: string;\\n    webkitBoxOrient: string | null;\\n    /** @deprecated */\\n    webkitBoxPack: string;\\n    /** @deprecated */\\n    webkitBoxShadow: string;\\n    /** @deprecated */\\n    webkitBoxSizing: string;\\n    webkitColumnBreakAfter: string | null;\\n    webkitColumnBreakBefore: string | null;\\n    webkitColumnBreakInside: string | null;\\n    webkitColumnCount: any;\\n    webkitColumnGap: any;\\n    webkitColumnRule: string | null;\\n    webkitColumnRuleColor: any;\\n    webkitColumnRuleStyle: string | null;\\n    webkitColumnRuleWidth: any;\\n    webkitColumnSpan: string | null;\\n    webkitColumnWidth: any;\\n    webkitColumns: string | null;\\n    /** @deprecated */\\n    webkitFilter: string;\\n    /** @deprecated */\\n    webkitFlex: string;\\n    /** @deprecated */\\n    webkitFlexBasis: string;\\n    /** @deprecated */\\n    webkitFlexDirection: string;\\n    /** @deprecated */\\n    webkitFlexFlow: string;\\n    /** @deprecated */\\n    webkitFlexGrow: string;\\n    /** @deprecated */\\n    webkitFlexShrink: string;\\n    /** @deprecated */\\n    webkitFlexWrap: string;\\n    /** @deprecated */\\n    webkitJustifyContent: string;\\n    webkitLineClamp: string;\\n    /** @deprecated */\\n    webkitMask: string;\\n    /** @deprecated */\\n    webkitMaskBoxImage: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageOutset: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageRepeat: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageSlice: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageSource: string;\\n    /** @deprecated */\\n    webkitMaskBoxImageWidth: string;\\n    /** @deprecated */\\n    webkitMaskClip: string;\\n    /** @deprecated */\\n    webkitMaskComposite: string;\\n    /** @deprecated */\\n    webkitMaskImage: string;\\n    /** @deprecated */\\n    webkitMaskOrigin: string;\\n    /** @deprecated */\\n    webkitMaskPosition: string;\\n    /** @deprecated */\\n    webkitMaskRepeat: string;\\n    /** @deprecated */\\n    webkitMaskSize: string;\\n    /** @deprecated */\\n    webkitOrder: string;\\n    /** @deprecated */\\n    webkitPerspective: string;\\n    /** @deprecated */\\n    webkitPerspectiveOrigin: string;\\n    webkitTapHighlightColor: string | null;\\n    /** @deprecated */\\n    webkitTextFillColor: string;\\n    /** @deprecated */\\n    webkitTextSizeAdjust: string;\\n    /** @deprecated */\\n    webkitTextStroke: string;\\n    /** @deprecated */\\n    webkitTextStrokeColor: string;\\n    /** @deprecated */\\n    webkitTextStrokeWidth: string;\\n    /** @deprecated */\\n    webkitTransform: string;\\n    /** @deprecated */\\n    webkitTransformOrigin: string;\\n    /** @deprecated */\\n    webkitTransformStyle: string;\\n    /** @deprecated */\\n    webkitTransition: string;\\n    /** @deprecated */\\n    webkitTransitionDelay: string;\\n    /** @deprecated */\\n    webkitTransitionDuration: string;\\n    /** @deprecated */\\n    webkitTransitionProperty: string;\\n    /** @deprecated */\\n    webkitTransitionTimingFunction: string;\\n    webkitUserModify: string | null;\\n    webkitUserSelect: string | null;\\n    webkitWritingMode: string | null;\\n    whiteSpace: string;\\n    widows: string;\\n    width: string;\\n    willChange: string;\\n    wordBreak: string;\\n    wordSpacing: string;\\n    wordWrap: string;\\n    writingMode: string;\\n    zIndex: string;\\n    zoom: string | null;\\n    getPropertyPriority(propertyName: string): string;\\n    getPropertyValue(propertyName: string): string;\\n    item(index: number): string;\\n    removeProperty(propertyName: string): string;\\n    setProperty(propertyName: string, value: string | null, priority?: string | null): void;\\n    [index: number]: string;\\n}\\n\\ndeclare var CSSStyleDeclaration: {\\n    prototype: CSSStyleDeclaration;\\n    new(): CSSStyleDeclaration;\\n};\\n\\n/** CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE). */\\ninterface CSSStyleRule extends CSSRule {\\n    selectorText: string;\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ndeclare var CSSStyleRule: {\\n    prototype: CSSStyleRule;\\n    new(): CSSStyleRule;\\n};\\n\\n/** A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet. */\\ninterface CSSStyleSheet extends StyleSheet {\\n    readonly cssRules: CSSRuleList;\\n    /** @deprecated */\\n    cssText: string;\\n    /** @deprecated */\\n    readonly id: string;\\n    /** @deprecated */\\n    readonly imports: StyleSheetList;\\n    /** @deprecated */\\n    readonly isAlternate: boolean;\\n    /** @deprecated */\\n    readonly isPrefAlternate: boolean;\\n    readonly ownerRule: CSSRule | null;\\n    /** @deprecated */\\n    readonly owningElement: Element;\\n    /** @deprecated */\\n    readonly pages: any;\\n    /** @deprecated */\\n    readonly readOnly: boolean;\\n    readonly rules: CSSRuleList;\\n    /** @deprecated */\\n    addImport(bstrURL: string, lIndex?: number): number;\\n    /** @deprecated */\\n    addPageRule(bstrSelector: string, bstrStyle: string, lIndex?: number): number;\\n    addRule(bstrSelector: string, bstrStyle?: string, lIndex?: number): number;\\n    deleteRule(index?: number): void;\\n    insertRule(rule: string, index?: number): number;\\n    /** @deprecated */\\n    removeImport(lIndex: number): void;\\n    removeRule(lIndex: number): void;\\n}\\n\\ndeclare var CSSStyleSheet: {\\n    prototype: CSSStyleSheet;\\n    new(): CSSStyleSheet;\\n};\\n\\n/** An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE). */\\ninterface CSSSupportsRule extends CSSConditionRule {\\n}\\n\\ndeclare var CSSSupportsRule: {\\n    prototype: CSSSupportsRule;\\n    new(): CSSSupportsRule;\\n};\\n\\n/** Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don\\'t have to use it in conjunction with service workers, even though it is defined in the service worker spec. */\\ninterface Cache {\\n    add(request: RequestInfo): Promise<void>;\\n    addAll(requests: RequestInfo[]): Promise<void>;\\n    delete(request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>;\\n    keys(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;\\n    match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;\\n    matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;\\n    put(request: RequestInfo, response: Response): Promise<void>;\\n}\\n\\ndeclare var Cache: {\\n    prototype: Cache;\\n    new(): Cache;\\n};\\n\\n/** The storage for Cache objects. */\\ninterface CacheStorage {\\n    delete(cacheName: string): Promise<boolean>;\\n    has(cacheName: string): Promise<boolean>;\\n    keys(): Promise<string[]>;\\n    match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>;\\n    open(cacheName: string): Promise<Cache>;\\n}\\n\\ndeclare var CacheStorage: {\\n    prototype: CacheStorage;\\n    new(): CacheStorage;\\n};\\n\\ninterface CanvasCompositing {\\n    globalAlpha: number;\\n    globalCompositeOperation: string;\\n}\\n\\ninterface CanvasDrawImage {\\n    drawImage(image: CanvasImageSource, dx: number, dy: number): void;\\n    drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\\n    drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\\n}\\n\\ninterface CanvasDrawPath {\\n    beginPath(): void;\\n    clip(fillRule?: CanvasFillRule): void;\\n    clip(path: Path2D, fillRule?: CanvasFillRule): void;\\n    fill(fillRule?: CanvasFillRule): void;\\n    fill(path: Path2D, fillRule?: CanvasFillRule): void;\\n    isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\\n    isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\\n    isPointInStroke(x: number, y: number): boolean;\\n    isPointInStroke(path: Path2D, x: number, y: number): boolean;\\n    stroke(): void;\\n    stroke(path: Path2D): void;\\n}\\n\\ninterface CanvasFillStrokeStyles {\\n    fillStyle: string | CanvasGradient | CanvasPattern;\\n    strokeStyle: string | CanvasGradient | CanvasPattern;\\n    createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\\n    createPattern(image: CanvasImageSource, repetition: string): CanvasPattern | null;\\n    createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\\n}\\n\\ninterface CanvasFilters {\\n    filter: string;\\n}\\n\\n/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */\\ninterface CanvasGradient {\\n    /**\\n     * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\\n     * \\n     * Throws an \"IndexSizeError\" DOMException if the offset is out of range. Throws a \"SyntaxError\" DOMException if the color cannot be parsed.\\n     */\\n    addColorStop(offset: number, color: string): void;\\n}\\n\\ndeclare var CanvasGradient: {\\n    prototype: CanvasGradient;\\n    new(): CanvasGradient;\\n};\\n\\ninterface CanvasImageData {\\n    createImageData(sw: number, sh: number): ImageData;\\n    createImageData(imagedata: ImageData): ImageData;\\n    getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;\\n    putImageData(imagedata: ImageData, dx: number, dy: number): void;\\n    putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\\n}\\n\\ninterface CanvasImageSmoothing {\\n    imageSmoothingEnabled: boolean;\\n    imageSmoothingQuality: ImageSmoothingQuality;\\n}\\n\\ninterface CanvasPath {\\n    arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\\n    arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\\n    bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\\n    closePath(): void;\\n    ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\\n    lineTo(x: number, y: number): void;\\n    moveTo(x: number, y: number): void;\\n    quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\\n    rect(x: number, y: number, w: number, h: number): void;\\n}\\n\\ninterface CanvasPathDrawingStyles {\\n    lineCap: CanvasLineCap;\\n    lineDashOffset: number;\\n    lineJoin: CanvasLineJoin;\\n    lineWidth: number;\\n    miterLimit: number;\\n    getLineDash(): number[];\\n    setLineDash(segments: number[]): void;\\n}\\n\\n/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */\\ninterface CanvasPattern {\\n    /**\\n     * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.\\n     */\\n    setTransform(transform?: DOMMatrix2DInit): void;\\n}\\n\\ndeclare var CanvasPattern: {\\n    prototype: CanvasPattern;\\n    new(): CanvasPattern;\\n};\\n\\ninterface CanvasRect {\\n    clearRect(x: number, y: number, w: number, h: number): void;\\n    fillRect(x: number, y: number, w: number, h: number): void;\\n    strokeRect(x: number, y: number, w: number, h: number): void;\\n}\\n\\n/** The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a <canvas> element. It is used for drawing shapes, text, images, and other objects. */\\ninterface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {\\n    readonly canvas: HTMLCanvasElement;\\n}\\n\\ndeclare var CanvasRenderingContext2D: {\\n    prototype: CanvasRenderingContext2D;\\n    new(): CanvasRenderingContext2D;\\n};\\n\\ninterface CanvasShadowStyles {\\n    shadowBlur: number;\\n    shadowColor: string;\\n    shadowOffsetX: number;\\n    shadowOffsetY: number;\\n}\\n\\ninterface CanvasState {\\n    restore(): void;\\n    save(): void;\\n}\\n\\ninterface CanvasText {\\n    fillText(text: string, x: number, y: number, maxWidth?: number): void;\\n    measureText(text: string): TextMetrics;\\n    strokeText(text: string, x: number, y: number, maxWidth?: number): void;\\n}\\n\\ninterface CanvasTextDrawingStyles {\\n    direction: CanvasDirection;\\n    font: string;\\n    textAlign: CanvasTextAlign;\\n    textBaseline: CanvasTextBaseline;\\n}\\n\\ninterface CanvasTransform {\\n    getTransform(): DOMMatrix;\\n    resetTransform(): void;\\n    rotate(angle: number): void;\\n    scale(x: number, y: number): void;\\n    setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\\n    setTransform(transform?: DOMMatrix2DInit): void;\\n    transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\\n    translate(x: number, y: number): void;\\n}\\n\\ninterface CanvasUserInterface {\\n    drawFocusIfNeeded(element: Element): void;\\n    drawFocusIfNeeded(path: Path2D, element: Element): void;\\n    scrollPathIntoView(): void;\\n    scrollPathIntoView(path: Path2D): void;\\n}\\n\\ninterface CaretPosition {\\n    readonly offset: number;\\n    readonly offsetNode: Node;\\n    getClientRect(): DOMRect | null;\\n}\\n\\ndeclare var CaretPosition: {\\n    prototype: CaretPosition;\\n    new(): CaretPosition;\\n};\\n\\n/** The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */\\ninterface ChannelMergerNode extends AudioNode {\\n}\\n\\ndeclare var ChannelMergerNode: {\\n    prototype: ChannelMergerNode;\\n    new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;\\n};\\n\\n/** The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */\\ninterface ChannelSplitterNode extends AudioNode {\\n}\\n\\ndeclare var ChannelSplitterNode: {\\n    prototype: ChannelSplitterNode;\\n    new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;\\n};\\n\\n/** The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren\\'t any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren\\'t abstract. */\\ninterface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {\\n    data: string;\\n    readonly length: number;\\n    appendData(data: string): void;\\n    deleteData(offset: number, count: number): void;\\n    insertData(offset: number, data: string): void;\\n    replaceData(offset: number, count: number, data: string): void;\\n    substringData(offset: number, count: number): string;\\n}\\n\\ndeclare var CharacterData: {\\n    prototype: CharacterData;\\n    new(): CharacterData;\\n};\\n\\ninterface ChildNode extends Node {\\n    /**\\n     * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    after(...nodes: (Node | string)[]): void;\\n    /**\\n     * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    before(...nodes: (Node | string)[]): void;\\n    /**\\n     * Removes node.\\n     */\\n    remove(): void;\\n    /**\\n     * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    replaceWith(...nodes: (Node | string)[]): void;\\n}\\n\\ninterface ClientRect {\\n    bottom: number;\\n    readonly height: number;\\n    left: number;\\n    right: number;\\n    top: number;\\n    readonly width: number;\\n}\\n\\ndeclare var ClientRect: {\\n    prototype: ClientRect;\\n    new(): ClientRect;\\n};\\n\\ninterface ClientRectList {\\n    readonly length: number;\\n    item(index: number): ClientRect;\\n    [index: number]: ClientRect;\\n}\\n\\ndeclare var ClientRectList: {\\n    prototype: ClientRectList;\\n    new(): ClientRectList;\\n};\\n\\ninterface Clipboard extends EventTarget {\\n    readText(): Promise<string>;\\n    writeText(data: string): Promise<void>;\\n}\\n\\ndeclare var Clipboard: {\\n    prototype: Clipboard;\\n    new(): Clipboard;\\n};\\n\\n/** Events providing information related to modification of the clipboard, that is cut, copy, and paste events. */\\ninterface ClipboardEvent extends Event {\\n    readonly clipboardData: DataTransfer | null;\\n}\\n\\ndeclare var ClipboardEvent: {\\n    prototype: ClipboardEvent;\\n    new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;\\n};\\n\\n/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object\\'s onclose attribute. */\\ninterface CloseEvent extends Event {\\n    readonly code: number;\\n    readonly reason: string;\\n    readonly wasClean: boolean;\\n    /** @deprecated */\\n    initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void;\\n}\\n\\ndeclare var CloseEvent: {\\n    prototype: CloseEvent;\\n    new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\\n};\\n\\n/** Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. */\\ninterface Comment extends CharacterData {\\n}\\n\\ndeclare var Comment: {\\n    prototype: Comment;\\n    new(data?: string): Comment;\\n};\\n\\n/** The DOM CompositionEvent represents events that occur due to the user indirectly entering text. */\\ninterface CompositionEvent extends UIEvent {\\n    readonly data: string;\\n}\\n\\ndeclare var CompositionEvent: {\\n    prototype: CompositionEvent;\\n    new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;\\n};\\n\\ninterface ConcatParams extends Algorithm {\\n    algorithmId: Uint8Array;\\n    hash?: string | Algorithm;\\n    partyUInfo: Uint8Array;\\n    partyVInfo: Uint8Array;\\n    privateInfo?: Uint8Array;\\n    publicInfo?: Uint8Array;\\n}\\n\\n/** Provides access to the browser\\'s debugging console (e.g. the Web Console in Firefox). The specifics of how it works varies from browser to browser, but there is a de facto set of features that are typically provided. */\\ninterface Console {\\n    memory: any;\\n    assert(condition?: boolean, message?: string, ...data: any[]): void;\\n    clear(): void;\\n    count(label?: string): void;\\n    debug(message?: any, ...optionalParams: any[]): void;\\n    dir(value?: any, ...optionalParams: any[]): void;\\n    dirxml(value: any): void;\\n    error(message?: any, ...optionalParams: any[]): void;\\n    exception(message?: string, ...optionalParams: any[]): void;\\n    group(groupTitle?: string, ...optionalParams: any[]): void;\\n    groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;\\n    groupEnd(): void;\\n    info(message?: any, ...optionalParams: any[]): void;\\n    log(message?: any, ...optionalParams: any[]): void;\\n    markTimeline(label?: string): void;\\n    profile(reportName?: string): void;\\n    profileEnd(reportName?: string): void;\\n    table(...tabularData: any[]): void;\\n    time(label?: string): void;\\n    timeEnd(label?: string): void;\\n    timeStamp(label?: string): void;\\n    timeline(label?: string): void;\\n    timelineEnd(label?: string): void;\\n    trace(message?: any, ...optionalParams: any[]): void;\\n    warn(message?: any, ...optionalParams: any[]): void;\\n}\\n\\ndeclare var Console: {\\n    prototype: Console;\\n    new(): Console;\\n};\\n\\ninterface ConstantSourceNode extends AudioScheduledSourceNode {\\n    readonly offset: AudioParam;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ConstantSourceNode: {\\n    prototype: ConstantSourceNode;\\n    new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;\\n};\\n\\n/** An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output. */\\ninterface ConvolverNode extends AudioNode {\\n    buffer: AudioBuffer | null;\\n    normalize: boolean;\\n}\\n\\ndeclare var ConvolverNode: {\\n    prototype: ConvolverNode;\\n    new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;\\n};\\n\\n/** The position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated. */\\ninterface Coordinates {\\n    readonly accuracy: number;\\n    readonly altitude: number | null;\\n    readonly altitudeAccuracy: number | null;\\n    readonly heading: number | null;\\n    readonly latitude: number;\\n    readonly longitude: number;\\n    readonly speed: number | null;\\n}\\n\\n/** This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. */\\ninterface CountQueuingStrategy extends QueuingStrategy {\\n    highWaterMark: number;\\n    size(chunk: any): 1;\\n}\\n\\ndeclare var CountQueuingStrategy: {\\n    prototype: CountQueuingStrategy;\\n    new(options: { highWaterMark: number }): CountQueuingStrategy;\\n};\\n\\ninterface Credential {\\n    readonly id: string;\\n    readonly type: string;\\n}\\n\\ndeclare var Credential: {\\n    prototype: Credential;\\n    new(): Credential;\\n};\\n\\ninterface CredentialsContainer {\\n    create(options?: CredentialCreationOptions): Promise<Credential | null>;\\n    get(options?: CredentialRequestOptions): Promise<Credential | null>;\\n    preventSilentAccess(): Promise<void>;\\n    store(credential: Credential): Promise<Credential>;\\n}\\n\\ndeclare var CredentialsContainer: {\\n    prototype: CredentialsContainer;\\n    new(): CredentialsContainer;\\n};\\n\\n/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */\\ninterface Crypto {\\n    readonly subtle: SubtleCrypto;\\n    getRandomValues<T extends Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | null>(array: T): T;\\n}\\n\\ndeclare var Crypto: {\\n    prototype: Crypto;\\n    new(): Crypto;\\n};\\n\\n/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. */\\ninterface CryptoKey {\\n    readonly algorithm: KeyAlgorithm;\\n    readonly extractable: boolean;\\n    readonly type: KeyType;\\n    readonly usages: KeyUsage[];\\n}\\n\\ndeclare var CryptoKey: {\\n    prototype: CryptoKey;\\n    new(): CryptoKey;\\n};\\n\\n/** The CryptoKeyPair dictionary of the Web Crypto API represents a key pair for an asymmetric cryptography algorithm, also known as a public-key algorithm. */\\ninterface CryptoKeyPair {\\n    privateKey: CryptoKey;\\n    publicKey: CryptoKey;\\n}\\n\\ndeclare var CryptoKeyPair: {\\n    prototype: CryptoKeyPair;\\n    new(): CryptoKeyPair;\\n};\\n\\ninterface CustomElementRegistry {\\n    define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;\\n    get(name: string): any;\\n    upgrade(root: Node): void;\\n    whenDefined(name: string): Promise<void>;\\n}\\n\\ndeclare var CustomElementRegistry: {\\n    prototype: CustomElementRegistry;\\n    new(): CustomElementRegistry;\\n};\\n\\ninterface CustomEvent<T = any> extends Event {\\n    /**\\n     * Returns any custom data event was created with. Typically used for synthetic events.\\n     */\\n    readonly detail: T;\\n    initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: T): void;\\n}\\n\\ndeclare var CustomEvent: {\\n    prototype: CustomEvent;\\n    new<T>(typeArg: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;\\n};\\n\\n/** An error object that contains an error name. */\\ninterface DOMError {\\n    readonly name: string;\\n    toString(): string;\\n}\\n\\ndeclare var DOMError: {\\n    prototype: DOMError;\\n    new(): DOMError;\\n};\\n\\n/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */\\ninterface DOMException {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly name: string;\\n    readonly ABORT_ERR: number;\\n    readonly DATA_CLONE_ERR: number;\\n    readonly DOMSTRING_SIZE_ERR: number;\\n    readonly HIERARCHY_REQUEST_ERR: number;\\n    readonly INDEX_SIZE_ERR: number;\\n    readonly INUSE_ATTRIBUTE_ERR: number;\\n    readonly INVALID_ACCESS_ERR: number;\\n    readonly INVALID_CHARACTER_ERR: number;\\n    readonly INVALID_MODIFICATION_ERR: number;\\n    readonly INVALID_NODE_TYPE_ERR: number;\\n    readonly INVALID_STATE_ERR: number;\\n    readonly NAMESPACE_ERR: number;\\n    readonly NETWORK_ERR: number;\\n    readonly NOT_FOUND_ERR: number;\\n    readonly NOT_SUPPORTED_ERR: number;\\n    readonly NO_DATA_ALLOWED_ERR: number;\\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\\n    readonly QUOTA_EXCEEDED_ERR: number;\\n    readonly SECURITY_ERR: number;\\n    readonly SYNTAX_ERR: number;\\n    readonly TIMEOUT_ERR: number;\\n    readonly TYPE_MISMATCH_ERR: number;\\n    readonly URL_MISMATCH_ERR: number;\\n    readonly VALIDATION_ERR: number;\\n    readonly WRONG_DOCUMENT_ERR: number;\\n}\\n\\ndeclare var DOMException: {\\n    prototype: DOMException;\\n    new(message?: string, name?: string): DOMException;\\n    readonly ABORT_ERR: number;\\n    readonly DATA_CLONE_ERR: number;\\n    readonly DOMSTRING_SIZE_ERR: number;\\n    readonly HIERARCHY_REQUEST_ERR: number;\\n    readonly INDEX_SIZE_ERR: number;\\n    readonly INUSE_ATTRIBUTE_ERR: number;\\n    readonly INVALID_ACCESS_ERR: number;\\n    readonly INVALID_CHARACTER_ERR: number;\\n    readonly INVALID_MODIFICATION_ERR: number;\\n    readonly INVALID_NODE_TYPE_ERR: number;\\n    readonly INVALID_STATE_ERR: number;\\n    readonly NAMESPACE_ERR: number;\\n    readonly NETWORK_ERR: number;\\n    readonly NOT_FOUND_ERR: number;\\n    readonly NOT_SUPPORTED_ERR: number;\\n    readonly NO_DATA_ALLOWED_ERR: number;\\n    readonly NO_MODIFICATION_ALLOWED_ERR: number;\\n    readonly QUOTA_EXCEEDED_ERR: number;\\n    readonly SECURITY_ERR: number;\\n    readonly SYNTAX_ERR: number;\\n    readonly TIMEOUT_ERR: number;\\n    readonly TYPE_MISMATCH_ERR: number;\\n    readonly URL_MISMATCH_ERR: number;\\n    readonly VALIDATION_ERR: number;\\n    readonly WRONG_DOCUMENT_ERR: number;\\n};\\n\\n/** An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property. */\\ninterface DOMImplementation {\\n    createDocument(namespaceURI: string | null, qualifiedName: string | null, doctype: DocumentType | null): Document;\\n    createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;\\n    createHTMLDocument(title?: string): Document;\\n    /** @deprecated */\\n    hasFeature(...args: any[]): true;\\n}\\n\\ndeclare var DOMImplementation: {\\n    prototype: DOMImplementation;\\n    new(): DOMImplementation;\\n};\\n\\ninterface DOML2DeprecatedColorProperty {\\n    color: string;\\n}\\n\\ninterface DOMMatrix extends DOMMatrixReadOnly {\\n    a: number;\\n    b: number;\\n    c: number;\\n    d: number;\\n    e: number;\\n    f: number;\\n    m11: number;\\n    m12: number;\\n    m13: number;\\n    m14: number;\\n    m21: number;\\n    m22: number;\\n    m23: number;\\n    m24: number;\\n    m31: number;\\n    m32: number;\\n    m33: number;\\n    m34: number;\\n    m41: number;\\n    m42: number;\\n    m43: number;\\n    m44: number;\\n    invertSelf(): DOMMatrix;\\n    multiplySelf(other?: DOMMatrixInit): DOMMatrix;\\n    preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\\n    rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\\n    rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\\n    rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\\n    scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    setMatrixValue(transformList: string): DOMMatrix;\\n    skewXSelf(sx?: number): DOMMatrix;\\n    skewYSelf(sy?: number): DOMMatrix;\\n    translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\\n}\\n\\ndeclare var DOMMatrix: {\\n    prototype: DOMMatrix;\\n    new(init?: string | number[]): DOMMatrix;\\n    fromFloat32Array(array32: Float32Array): DOMMatrix;\\n    fromFloat64Array(array64: Float64Array): DOMMatrix;\\n    fromMatrix(other?: DOMMatrixInit): DOMMatrix;\\n};\\n\\ntype SVGMatrix = DOMMatrix;\\ndeclare var SVGMatrix: typeof DOMMatrix;\\n\\ntype WebKitCSSMatrix = DOMMatrix;\\ndeclare var WebKitCSSMatrix: typeof DOMMatrix;\\n\\ninterface DOMMatrixReadOnly {\\n    readonly a: number;\\n    readonly b: number;\\n    readonly c: number;\\n    readonly d: number;\\n    readonly e: number;\\n    readonly f: number;\\n    readonly is2D: boolean;\\n    readonly isIdentity: boolean;\\n    readonly m11: number;\\n    readonly m12: number;\\n    readonly m13: number;\\n    readonly m14: number;\\n    readonly m21: number;\\n    readonly m22: number;\\n    readonly m23: number;\\n    readonly m24: number;\\n    readonly m31: number;\\n    readonly m32: number;\\n    readonly m33: number;\\n    readonly m34: number;\\n    readonly m41: number;\\n    readonly m42: number;\\n    readonly m43: number;\\n    readonly m44: number;\\n    flipX(): DOMMatrix;\\n    flipY(): DOMMatrix;\\n    inverse(): DOMMatrix;\\n    multiply(other?: DOMMatrixInit): DOMMatrix;\\n    rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\\n    rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\\n    rotateFromVector(x?: number, y?: number): DOMMatrix;\\n    scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\\n    /** @deprecated */\\n    scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\\n    skewX(sx?: number): DOMMatrix;\\n    skewY(sy?: number): DOMMatrix;\\n    toFloat32Array(): Float32Array;\\n    toFloat64Array(): Float64Array;\\n    toJSON(): any;\\n    transformPoint(point?: DOMPointInit): DOMPoint;\\n    translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\\n}\\n\\ndeclare var DOMMatrixReadOnly: {\\n    prototype: DOMMatrixReadOnly;\\n    new(init?: string | number[]): DOMMatrixReadOnly;\\n    fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\\n    fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\\n    fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\\n};\\n\\n/** Provides the ability to parse XML or HTML source code from a string into a DOM Document. */\\ninterface DOMParser {\\n    parseFromString(str: string, type: SupportedType): Document;\\n}\\n\\ndeclare var DOMParser: {\\n    prototype: DOMParser;\\n    new(): DOMParser;\\n};\\n\\ninterface DOMPoint extends DOMPointReadOnly {\\n    w: number;\\n    x: number;\\n    y: number;\\n    z: number;\\n}\\n\\ndeclare var DOMPoint: {\\n    prototype: DOMPoint;\\n    new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\\n    fromPoint(other?: DOMPointInit): DOMPoint;\\n};\\n\\ntype SVGPoint = DOMPoint;\\ndeclare var SVGPoint: typeof DOMPoint;\\n\\ninterface DOMPointReadOnly {\\n    readonly w: number;\\n    readonly x: number;\\n    readonly y: number;\\n    readonly z: number;\\n    matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMPointReadOnly: {\\n    prototype: DOMPointReadOnly;\\n    new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\\n    fromPoint(other?: DOMPointInit): DOMPointReadOnly;\\n};\\n\\ninterface DOMQuad {\\n    readonly p1: DOMPoint;\\n    readonly p2: DOMPoint;\\n    readonly p3: DOMPoint;\\n    readonly p4: DOMPoint;\\n    getBounds(): DOMRect;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMQuad: {\\n    prototype: DOMQuad;\\n    new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\\n    fromQuad(other?: DOMQuadInit): DOMQuad;\\n    fromRect(other?: DOMRectInit): DOMQuad;\\n};\\n\\ninterface DOMRect extends DOMRectReadOnly {\\n    height: number;\\n    width: number;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var DOMRect: {\\n    prototype: DOMRect;\\n    new(x?: number, y?: number, width?: number, height?: number): DOMRect;\\n    fromRect(other?: DOMRectInit): DOMRect;\\n};\\n\\ntype SVGRect = DOMRect;\\ndeclare var SVGRect: typeof DOMRect;\\n\\ninterface DOMRectList {\\n    readonly length: number;\\n    item(index: number): DOMRect | null;\\n    [index: number]: DOMRect;\\n}\\n\\ndeclare var DOMRectList: {\\n    prototype: DOMRectList;\\n    new(): DOMRectList;\\n};\\n\\ninterface DOMRectReadOnly {\\n    readonly bottom: number;\\n    readonly height: number;\\n    readonly left: number;\\n    readonly right: number;\\n    readonly top: number;\\n    readonly width: number;\\n    readonly x: number;\\n    readonly y: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var DOMRectReadOnly: {\\n    prototype: DOMRectReadOnly;\\n    new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\\n    fromRect(other?: DOMRectInit): DOMRectReadOnly;\\n};\\n\\ninterface DOMSettableTokenList extends DOMTokenList {\\n    value: string;\\n}\\n\\ndeclare var DOMSettableTokenList: {\\n    prototype: DOMSettableTokenList;\\n    new(): DOMSettableTokenList;\\n};\\n\\n/** A type returned by some APIs which contains a list of DOMString (strings). */\\ninterface DOMStringList {\\n    /**\\n     * Returns the number of strings in strings.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns true if strings contains string, and false otherwise.\\n     */\\n    contains(string: string): boolean;\\n    /**\\n     * Returns the string with index index from strings.\\n     */\\n    item(index: number): string | null;\\n    [index: number]: string;\\n}\\n\\ndeclare var DOMStringList: {\\n    prototype: DOMStringList;\\n    new(): DOMStringList;\\n};\\n\\n/** Used by the dataset HTML attribute to represent data for custom attributes added to elements. */\\ninterface DOMStringMap {\\n    [name: string]: string | undefined;\\n}\\n\\ndeclare var DOMStringMap: {\\n    prototype: DOMStringMap;\\n    new(): DOMStringMap;\\n};\\n\\n/** A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive. */\\ninterface DOMTokenList {\\n    /**\\n     * Returns the number of tokens.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the associated set as string.\\n     * \\n     * Can be set, to change the associated attribute.\\n     */\\n    value: string;\\n    /**\\n     * Adds all arguments passed, except those already present.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    add(...tokens: string[]): void;\\n    /**\\n     * Returns true if token is present, and false otherwise.\\n     */\\n    contains(token: string): boolean;\\n    /**\\n     * Returns the token with index index.\\n     */\\n    item(index: number): string | null;\\n    /**\\n     * Removes arguments passed, if they are present.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    remove(...tokens: string[]): void;\\n    /**\\n     * Replaces token with newToken.\\n     * \\n     * Returns true if token was replaced with newToken, and false otherwise.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if one of the arguments is the empty string.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if one of the arguments contains any ASCII whitespace.\\n     */\\n    replace(oldToken: string, newToken: string): void;\\n    /**\\n     * Returns true if token is in the associated attribute\\'s supported tokens. Returns false otherwise.\\n     * \\n     * Throws a TypeError if the associated attribute has no supported tokens defined.\\n     */\\n    supports(token: string): boolean;\\n    /**\\n     * If force is not given, \"toggles\" token, removing it if it\\'s present and adding it if it\\'s not present. If force is true, adds token (same as add()). If force is false, removes token (same as remove()).\\n     * \\n     * Returns true if token is now present, and false otherwise.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if token is empty.\\n     * \\n     * Throws an \"InvalidCharacterError\" DOMException if token contains any spaces.\\n     */\\n    toggle(token: string, force?: boolean): boolean;\\n    forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;\\n    [index: number]: string;\\n}\\n\\ndeclare var DOMTokenList: {\\n    prototype: DOMTokenList;\\n    new(): DOMTokenList;\\n};\\n\\ninterface DataCue extends TextTrackCue {\\n    data: ArrayBuffer;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: DataCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: DataCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var DataCue: {\\n    prototype: DataCue;\\n    new(): DataCue;\\n};\\n\\n/** Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API. */\\ninterface DataTransfer {\\n    /**\\n     * Returns the kind of operation that is currently selected. If the kind of operation isn\\'t one of those that is allowed by the effectAllowed attribute, then the operation will fail.\\n     * \\n     * Can be set, to change the selected operation.\\n     * \\n     * The possible values are \"none\", \"copy\", \"link\", and \"move\".\\n     */\\n    dropEffect: string;\\n    /**\\n     * Returns the kinds of operations that are to be allowed.\\n     * \\n     * Can be set (during the dragstart event), to change the allowed operations.\\n     * \\n     * The possible values are \"none\", \"copy\", \"copyLink\", \"copyMove\", \"link\", \"linkMove\", \"move\", \"all\", and \"uninitialized\",\\n     */\\n    effectAllowed: string;\\n    /**\\n     * Returns a FileList of the files being dragged, if any.\\n     */\\n    readonly files: FileList;\\n    /**\\n     * Returns a DataTransferItemList object, with the drag data.\\n     */\\n    readonly items: DataTransferItemList;\\n    /**\\n     * Returns a frozen array listing the formats that were set in the dragstart event. In addition, if any files are being dragged, then one of the types will be the string \"Files\".\\n     */\\n    readonly types: ReadonlyArray<string>;\\n    /**\\n     * Removes the data of the specified formats. Removes all data if the argument is omitted.\\n     */\\n    clearData(format?: string): void;\\n    /**\\n     * Returns the specified data. If there is no such data, returns the empty string.\\n     */\\n    getData(format: string): string;\\n    /**\\n     * Adds the specified data.\\n     */\\n    setData(format: string, data: string): void;\\n    /**\\n     * Uses the given element to update the drag feedback, replacing any previously specified feedback.\\n     */\\n    setDragImage(image: Element, x: number, y: number): void;\\n}\\n\\ndeclare var DataTransfer: {\\n    prototype: DataTransfer;\\n    new(): DataTransfer;\\n};\\n\\n/** One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object. */\\ninterface DataTransferItem {\\n    /**\\n     * Returns the drag data item kind, one of: \"string\", \"file\".\\n     */\\n    readonly kind: string;\\n    /**\\n     * Returns the drag data item type string.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns a File object, if the drag data item kind is File.\\n     */\\n    getAsFile(): File | null;\\n    /**\\n     * Invokes the callback with the string data as the argument, if the drag data item kind is Plain Unicode string.\\n     */\\n    getAsString(callback: FunctionStringCallback | null): void;\\n    webkitGetAsEntry(): any;\\n}\\n\\ndeclare var DataTransferItem: {\\n    prototype: DataTransferItem;\\n    new(): DataTransferItem;\\n};\\n\\n/** A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList. */\\ninterface DataTransferItemList {\\n    /**\\n     * Returns the number of items in the drag data store.\\n     */\\n    readonly length: number;\\n    /**\\n     * Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also.\\n     */\\n    add(data: string, type: string): DataTransferItem | null;\\n    add(data: File): DataTransferItem | null;\\n    /**\\n     * Removes all the entries in the drag data store.\\n     */\\n    clear(): void;\\n    item(index: number): DataTransferItem;\\n    /**\\n     * Removes the indexth entry in the drag data store.\\n     */\\n    remove(index: number): void;\\n    [name: number]: DataTransferItem;\\n}\\n\\ndeclare var DataTransferItemList: {\\n    prototype: DataTransferItemList;\\n    new(): DataTransferItemList;\\n};\\n\\ninterface DeferredPermissionRequest {\\n    readonly id: number;\\n    readonly type: MSWebViewPermissionType;\\n    readonly uri: string;\\n    allow(): void;\\n    deny(): void;\\n}\\n\\ndeclare var DeferredPermissionRequest: {\\n    prototype: DeferredPermissionRequest;\\n    new(): DeferredPermissionRequest;\\n};\\n\\n/** A delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output. */\\ninterface DelayNode extends AudioNode {\\n    readonly delayTime: AudioParam;\\n}\\n\\ndeclare var DelayNode: {\\n    prototype: DelayNode;\\n    new(context: BaseAudioContext, options?: DelayOptions): DelayNode;\\n};\\n\\n/** Provides information about the amount of acceleration the device is experiencing along all three axes. */\\ninterface DeviceAcceleration {\\n    readonly x: number | null;\\n    readonly y: number | null;\\n    readonly z: number | null;\\n}\\n\\ndeclare var DeviceAcceleration: {\\n    prototype: DeviceAcceleration;\\n    new(): DeviceAcceleration;\\n};\\n\\n/** The DeviceLightEvent provides web developers with information from photo sensors or similiar detectors about ambient light levels near the device. For example this may be useful to adjust the screen\\'s brightness based on the current ambient light level in order to save energy or provide better readability. */\\ninterface DeviceLightEvent extends Event {\\n    readonly value: number;\\n}\\n\\ndeclare var DeviceLightEvent: {\\n    prototype: DeviceLightEvent;\\n    new(typeArg: string, eventInitDict?: DeviceLightEventInit): DeviceLightEvent;\\n};\\n\\n/** The DeviceMotionEvent provides web developers with information about the speed of changes for the device\\'s position and orientation. */\\ninterface DeviceMotionEvent extends Event {\\n    readonly acceleration: DeviceMotionEventAcceleration | null;\\n    readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;\\n    readonly interval: number;\\n    readonly rotationRate: DeviceMotionEventRotationRate | null;\\n}\\n\\ndeclare var DeviceMotionEvent: {\\n    prototype: DeviceMotionEvent;\\n    new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;\\n};\\n\\ninterface DeviceMotionEventAcceleration {\\n    readonly x: number | null;\\n    readonly y: number | null;\\n    readonly z: number | null;\\n}\\n\\ninterface DeviceMotionEventRotationRate {\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\n/** The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. */\\ninterface DeviceOrientationEvent extends Event {\\n    readonly absolute: boolean;\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\ndeclare var DeviceOrientationEvent: {\\n    prototype: DeviceOrientationEvent;\\n    new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;\\n};\\n\\n/** Provides information about the rate at which the device is rotating around all three axes. */\\ninterface DeviceRotationRate {\\n    readonly alpha: number | null;\\n    readonly beta: number | null;\\n    readonly gamma: number | null;\\n}\\n\\ndeclare var DeviceRotationRate: {\\n    prototype: DeviceRotationRate;\\n    new(): DeviceRotationRate;\\n};\\n\\ninterface DhImportKeyParams extends Algorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DhKeyAlgorithm extends KeyAlgorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DhKeyDeriveParams extends Algorithm {\\n    public: CryptoKey;\\n}\\n\\ninterface DhKeyGenParams extends Algorithm {\\n    generator: Uint8Array;\\n    prime: Uint8Array;\\n}\\n\\ninterface DocumentEventMap extends GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n    \"fullscreenchange\": Event;\\n    \"fullscreenerror\": Event;\\n    \"pointerlockchange\": Event;\\n    \"pointerlockerror\": Event;\\n    \"readystatechange\": ProgressEvent<Document>;\\n    \"visibilitychange\": Event;\\n}\\n\\n/** Any web page loaded in the browser and serves as an entry point into the web page\\'s content, which is the DOM tree. */\\ninterface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShadowRoot, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {\\n    /**\\n     * Sets or gets the URL for the current document.\\n     */\\n    readonly URL: string;\\n    /**\\n     * Gets the object that has the focus when the parent document has focus.\\n     */\\n    readonly activeElement: Element | null;\\n    /**\\n     * Sets or gets the color of all active links in the document.\\n     */\\n    /** @deprecated */\\n    alinkColor: string;\\n    /**\\n     * Returns a reference to the collection of elements contained by the object.\\n     */\\n    /** @deprecated */\\n    readonly all: HTMLAllCollection;\\n    /**\\n     * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.\\n     */\\n    /** @deprecated */\\n    readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;\\n    /**\\n     * Retrieves a collection of all applet objects in the document.\\n     */\\n    /** @deprecated */\\n    readonly applets: HTMLCollectionOf<HTMLAppletElement>;\\n    /**\\n     * Deprecated. Sets or retrieves a value that indicates the background color behind the object.\\n     */\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Specifies the beginning and end of the document body.\\n     */\\n    body: HTMLElement;\\n    /**\\n     * Returns document\\'s encoding.\\n     */\\n    readonly characterSet: string;\\n    /**\\n     * Gets or sets the character set used to encode the object.\\n     */\\n    readonly charset: string;\\n    /**\\n     * Gets a value that indicates whether standards-compliant mode is switched on for the object.\\n     */\\n    readonly compatMode: string;\\n    /**\\n     * Returns document\\'s content type.\\n     */\\n    readonly contentType: string;\\n    /**\\n     * Returns the HTTP cookies that apply to the Document. If there are no cookies or cookies can\\'t be applied to this resource, the empty string will be returned.\\n     * \\n     * Can be set, to add a new cookie to the element\\'s set of HTTP cookies.\\n     * \\n     * If the contents are sandboxed into a unique origin (e.g. in an iframe with the sandbox attribute), a \"SecurityError\" DOMException will be thrown on getting and setting.\\n     */\\n    cookie: string;\\n    /**\\n     * Returns the script element, or the SVG script element, that is currently executing, as long as the element represents a classic script. In the case of reentrant script execution, returns the one that most recently started executing amongst those that have not yet finished executing.\\n     * \\n     * Returns null if the Document is not currently executing a script or SVG script element (e.g., because the running script is an event handler, or a timeout), or if the currently executing script or SVG script element represents a module script.\\n     */\\n    readonly currentScript: HTMLOrSVGScriptElement | null;\\n    readonly defaultView: WindowProxy | null;\\n    /**\\n     * Sets or gets a value that indicates whether the document can be edited.\\n     */\\n    designMode: string;\\n    /**\\n     * Sets or retrieves a value that indicates the reading order of the object.\\n     */\\n    dir: string;\\n    /**\\n     * Gets an object representing the document type declaration associated with the current document.\\n     */\\n    readonly doctype: DocumentType | null;\\n    /**\\n     * Gets a reference to the root node of the document.\\n     */\\n    readonly documentElement: HTMLElement;\\n    /**\\n     * Returns document\\'s URL.\\n     */\\n    readonly documentURI: string;\\n    /**\\n     * Sets or gets the security domain of the document.\\n     */\\n    domain: string;\\n    /**\\n     * Retrieves a collection of all embed objects in the document.\\n     */\\n    readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;\\n    /**\\n     * Sets or gets the foreground (text) color of the document.\\n     */\\n    /** @deprecated */\\n    fgColor: string;\\n    /**\\n     * Retrieves a collection, in source order, of all form objects in the document.\\n     */\\n    readonly forms: HTMLCollectionOf<HTMLFormElement>;\\n    /** @deprecated */\\n    readonly fullscreen: boolean;\\n    /**\\n     * Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise.\\n     */\\n    readonly fullscreenEnabled: boolean;\\n    /**\\n     * Returns the head element.\\n     */\\n    readonly head: HTMLHeadElement;\\n    readonly hidden: boolean;\\n    /**\\n     * Retrieves a collection, in source order, of img objects in the document.\\n     */\\n    readonly images: HTMLCollectionOf<HTMLImageElement>;\\n    /**\\n     * Gets the implementation object of the current document.\\n     */\\n    readonly implementation: DOMImplementation;\\n    /**\\n     * Returns the character encoding used to create the webpage that is loaded into the document object.\\n     */\\n    readonly inputEncoding: string;\\n    /**\\n     * Gets the date that the page was last modified, if the page supplies one.\\n     */\\n    readonly lastModified: string;\\n    /**\\n     * Sets or gets the color of the document links.\\n     */\\n    /** @deprecated */\\n    linkColor: string;\\n    /**\\n     * Retrieves a collection of all a objects that specify the href property and all area objects in the document.\\n     */\\n    readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;\\n    /**\\n     * Contains information about the current URL.\\n     */\\n    location: Location;\\n    onfullscreenchange: ((this: Document, ev: Event) => any) | null;\\n    onfullscreenerror: ((this: Document, ev: Event) => any) | null;\\n    onpointerlockchange: ((this: Document, ev: Event) => any) | null;\\n    onpointerlockerror: ((this: Document, ev: Event) => any) | null;\\n    /**\\n     * Fires when the state of the object has changed.\\n     * @param ev The event\\n     */\\n    onreadystatechange: ((this: Document, ev: ProgressEvent<Document>) => any) | null;\\n    onvisibilitychange: ((this: Document, ev: Event) => any) | null;\\n    /**\\n     * Returns document\\'s origin.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Return an HTMLCollection of the embed elements in the Document.\\n     */\\n    readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;\\n    /**\\n     * Retrieves a value that indicates the current state of the object.\\n     */\\n    readonly readyState: DocumentReadyState;\\n    /**\\n     * Gets the URL of the location that referred the user to the current page.\\n     */\\n    readonly referrer: string;\\n    /**\\n     * Retrieves a collection of all script objects in the document.\\n     */\\n    readonly scripts: HTMLCollectionOf<HTMLScriptElement>;\\n    readonly scrollingElement: Element | null;\\n    readonly timeline: DocumentTimeline;\\n    /**\\n     * Contains the title of the document.\\n     */\\n    title: string;\\n    readonly visibilityState: VisibilityState;\\n    /**\\n     * Sets or gets the color of the links that the user has visited.\\n     */\\n    /** @deprecated */\\n    vlinkColor: string;\\n    /**\\n     * Moves node from another document and returns it.\\n     * \\n     * If node is a document, throws a \"NotSupportedError\" DOMException or, if node is a shadow root, throws a \"HierarchyRequestError\" DOMException.\\n     */\\n    adoptNode<T extends Node>(source: T): T;\\n    /** @deprecated */\\n    captureEvents(): void;\\n    caretPositionFromPoint(x: number, y: number): CaretPosition | null;\\n    /** @deprecated */\\n    caretRangeFromPoint(x: number, y: number): Range;\\n    /** @deprecated */\\n    clear(): void;\\n    /**\\n     * Closes an output stream and forces the sent data to display.\\n     */\\n    close(): void;\\n    /**\\n     * Creates an attribute object with a specified name.\\n     * @param name String that sets the attribute object\\'s name.\\n     */\\n    createAttribute(localName: string): Attr;\\n    createAttributeNS(namespace: string | null, qualifiedName: string): Attr;\\n    /**\\n     * Returns a CDATASection node whose data is data.\\n     */\\n    createCDATASection(data: string): CDATASection;\\n    /**\\n     * Creates a comment object with the specified data.\\n     * @param data Sets the comment object\\'s data.\\n     */\\n    createComment(data: string): Comment;\\n    /**\\n     * Creates a new document.\\n     */\\n    createDocumentFragment(): DocumentFragment;\\n    /**\\n     * Creates an instance of the element for the specified tag.\\n     * @param tagName The name of an element.\\n     */\\n    createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\\n    /** @deprecated */\\n    createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\\n    createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\\n    /**\\n     * Returns an element with namespace namespace. Its namespace prefix will be everything before \":\" (U+003E) in qualifiedName or null. Its local name will be everything after \":\" (U+003E) in qualifiedName or qualifiedName.\\n     * \\n     * If localName does not match the Name production an \"InvalidCharacterError\" DOMException will be thrown.\\n     * \\n     * If one of the following conditions is true a \"NamespaceError\" DOMException will be thrown:\\n     * \\n     * localName does not match the QName production.\\n     * Namespace prefix is not null and namespace is the empty string.\\n     * Namespace prefix is \"xml\" and namespace is not the XML namespace.\\n     * qualifiedName or namespace prefix is \"xmlns\" and namespace is not the XMLNS namespace.\\n     * namespace is the XMLNS namespace and neither qualifiedName nor namespace prefix is \"xmlns\".\\n     * \\n     * When supplied, options\\'s is can be used to create a customized built-in element.\\n     */\\n    createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\\n    createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K];\\n    createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement;\\n    createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\\n    createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;\\n    createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\\n    createEvent(eventInterface: \"AnimationPlaybackEvent\"): AnimationPlaybackEvent;\\n    createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\\n    createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\\n    createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\\n    createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\\n    createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\\n    createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\\n    createEvent(eventInterface: \"DeviceLightEvent\"): DeviceLightEvent;\\n    createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\\n    createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\\n    createEvent(eventInterface: \"DragEvent\"): DragEvent;\\n    createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\\n    createEvent(eventInterface: \"Event\"): Event;\\n    createEvent(eventInterface: \"Events\"): Event;\\n    createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\\n    createEvent(eventInterface: \"FocusNavigationEvent\"): FocusNavigationEvent;\\n    createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\\n    createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\\n    createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\\n    createEvent(eventInterface: \"InputEvent\"): InputEvent;\\n    createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\\n    createEvent(eventInterface: \"ListeningStateChangedEvent\"): ListeningStateChangedEvent;\\n    createEvent(eventInterface: \"MSGestureEvent\"): MSGestureEvent;\\n    createEvent(eventInterface: \"MSMediaKeyMessageEvent\"): MSMediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MSMediaKeyNeededEvent\"): MSMediaKeyNeededEvent;\\n    createEvent(eventInterface: \"MSPointerEvent\"): MSPointerEvent;\\n    createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\\n    createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MediaQueryListEvent\"): MediaQueryListEvent;\\n    createEvent(eventInterface: \"MediaStreamErrorEvent\"): MediaStreamErrorEvent;\\n    createEvent(eventInterface: \"MediaStreamEvent\"): MediaStreamEvent;\\n    createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\\n    createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\\n    createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\\n    createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\\n    createEvent(eventInterface: \"MutationEvent\"): MutationEvent;\\n    createEvent(eventInterface: \"MutationEvents\"): MutationEvent;\\n    createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\\n    createEvent(eventInterface: \"OverflowEvent\"): OverflowEvent;\\n    createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\\n    createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\\n    createEvent(eventInterface: \"PermissionRequestedEvent\"): PermissionRequestedEvent;\\n    createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\\n    createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\\n    createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\\n    createEvent(eventInterface: \"PromiseRejectionEvent\"): PromiseRejectionEvent;\\n    createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\\n    createEvent(eventInterface: \"RTCDataChannelEvent\"): RTCDataChannelEvent;\\n    createEvent(eventInterface: \"RTCDtlsTransportStateChangedEvent\"): RTCDtlsTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCErrorEvent\"): RTCErrorEvent;\\n    createEvent(eventInterface: \"RTCIceCandidatePairChangedEvent\"): RTCIceCandidatePairChangedEvent;\\n    createEvent(eventInterface: \"RTCIceGathererEvent\"): RTCIceGathererEvent;\\n    createEvent(eventInterface: \"RTCIceTransportStateChangedEvent\"): RTCIceTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceErrorEvent\"): RTCPeerConnectionIceErrorEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\\n    createEvent(eventInterface: \"RTCSsrcConflictEvent\"): RTCSsrcConflictEvent;\\n    createEvent(eventInterface: \"RTCStatsEvent\"): RTCStatsEvent;\\n    createEvent(eventInterface: \"RTCTrackEvent\"): RTCTrackEvent;\\n    createEvent(eventInterface: \"SVGZoomEvent\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SVGZoomEvents\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SecurityPolicyViolationEvent\"): SecurityPolicyViolationEvent;\\n    createEvent(eventInterface: \"ServiceWorkerMessageEvent\"): ServiceWorkerMessageEvent;\\n    createEvent(eventInterface: \"SpeechRecognitionError\"): SpeechRecognitionError;\\n    createEvent(eventInterface: \"SpeechRecognitionEvent\"): SpeechRecognitionEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisErrorEvent\"): SpeechSynthesisErrorEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\\n    createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\\n    createEvent(eventInterface: \"TextEvent\"): TextEvent;\\n    createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\\n    createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\\n    createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\\n    createEvent(eventInterface: \"UIEvent\"): UIEvent;\\n    createEvent(eventInterface: \"UIEvents\"): UIEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent\"): VRDisplayEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent \"): VRDisplayEvent ;\\n    createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\\n    createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\\n    createEvent(eventInterface: string): Event;\\n    /**\\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\\n     * @param root The root element or node to start traversing on.\\n     * @param whatToShow The type of nodes or elements to appear in the node list\\n     * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.\\n     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\\n     */\\n    createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;\\n    /**\\n     * Returns a ProcessingInstruction node whose target is target and data is data. If target does not match the Name production an \"InvalidCharacterError\" DOMException will be thrown. If data contains \"?>\" an \"InvalidCharacterError\" DOMException will be thrown.\\n     */\\n    createProcessingInstruction(target: string, data: string): ProcessingInstruction;\\n    /**\\n     *  Returns an empty range object that has both of its boundary points positioned at the beginning of the document.\\n     */\\n    createRange(): Range;\\n    /**\\n     * Creates a text string from the specified value.\\n     * @param data String that specifies the nodeValue property of the text node.\\n     */\\n    createTextNode(data: string): Text;\\n    /**\\n     * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.\\n     * @param root The root element or node to start traversing on.\\n     * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.\\n     * @param filter A custom NodeFilter function to use.\\n     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\\n     */\\n    createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;\\n    /** @deprecated */\\n    createTreeWalker(root: Node, whatToShow: number, filter: NodeFilter | null, entityReferenceExpansion?: boolean): TreeWalker;\\n    /**\\n     * Returns the element for the specified x coordinate and the specified y coordinate.\\n     * @param x The x-offset\\n     * @param y The y-offset\\n     */\\n    elementFromPoint(x: number, y: number): Element | null;\\n    elementsFromPoint(x: number, y: number): Element[];\\n    /**\\n     * Executes a command on the current document, current selection, or the given range.\\n     * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.\\n     * @param showUI Display the user interface, defaults to false.\\n     * @param value Value to assign.\\n     */\\n    execCommand(commandId: string, showUI?: boolean, value?: string): boolean;\\n    /**\\n     * Stops document\\'s fullscreen element from being displayed fullscreen and resolves promise when done.\\n     */\\n    exitFullscreen(): Promise<void>;\\n    exitPointerLock(): void;\\n    getAnimations(): Animation[];\\n    /**\\n     * Returns a reference to the first object with the specified value of the ID or NAME attribute.\\n     * @param elementId String that specifies the ID value. Case-insensitive.\\n     */\\n    getElementById(elementId: string): HTMLElement | null;\\n    /**\\n     * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\\n     */\\n    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Gets a collection of objects based on the value of the NAME or ID attribute.\\n     * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.\\n     */\\n    getElementsByName(elementName: string): NodeListOf<HTMLElement>;\\n    /**\\n     * Retrieves a collection of objects based on the specified element name.\\n     * @param name Specifies the name of an element.\\n     */\\n    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\\n    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\\n    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * If namespace and localName are \"*\" returns a HTMLCollection of all descendant elements.\\n     * \\n     * If only namespace is \"*\" returns a HTMLCollection of all descendant elements whose local name is localName.\\n     * \\n     * If only localName is \"*\" returns a HTMLCollection of all descendant elements whose namespace is namespace.\\n     * \\n     * Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName.\\n     */\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<SVGElement>;\\n    getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.\\n     */\\n    getSelection(): Selection | null;\\n    /**\\n     * Gets a value indicating whether the object currently has focus.\\n     */\\n    hasFocus(): boolean;\\n    /**\\n     * Returns a copy of node. If deep is true, the copy also includes the node\\'s descendants.\\n     * \\n     * If node is a document or a shadow root, throws a \"NotSupportedError\" DOMException.\\n     */\\n    importNode<T extends Node>(importedNode: T, deep: boolean): T;\\n    /**\\n     * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.\\n     * @param url Specifies a MIME type for the document.\\n     * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.\\n     * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, \"fullscreen=yes, toolbar=yes\"). The following values are supported.\\n     * @param replace Specifies whether the existing entry for the document is replaced in the history list.\\n     */\\n    open(url?: string, name?: string, features?: string, replace?: boolean): Document;\\n    /**\\n     * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.\\n     * @param commandId Specifies a command identifier.\\n     */\\n    queryCommandEnabled(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandIndeterm(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates the current state of the command.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandState(commandId: string): boolean;\\n    /**\\n     * Returns a Boolean value that indicates whether the current command is supported on the current range.\\n     * @param commandId Specifies a command identifier.\\n     */\\n    queryCommandSupported(commandId: string): boolean;\\n    /**\\n     * Returns the current value of the document, range, or current selection for the given command.\\n     * @param commandId String that specifies a command identifier.\\n     */\\n    queryCommandValue(commandId: string): string;\\n    /** @deprecated */\\n    releaseEvents(): void;\\n    /**\\n     * Writes one or more HTML expressions to a document in the specified window.\\n     * @param content Specifies the text and HTML tags to write.\\n     */\\n    write(...text: string[]): void;\\n    /**\\n     * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.\\n     * @param content The text and HTML tags to write.\\n     */\\n    writeln(...text: string[]): void;\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Document: {\\n    prototype: Document;\\n    new(): Document;\\n};\\n\\ninterface DocumentAndElementEventHandlersEventMap {\\n    \"copy\": ClipboardEvent;\\n    \"cut\": ClipboardEvent;\\n    \"paste\": ClipboardEvent;\\n}\\n\\ninterface DocumentAndElementEventHandlers {\\n    oncopy: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    oncut: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    onpaste: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;\\n    addEventListener<K extends keyof DocumentAndElementEventHandlersEventMap>(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentAndElementEventHandlersEventMap>(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface DocumentEvent {\\n    createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\\n    createEvent(eventInterface: \"AnimationPlaybackEvent\"): AnimationPlaybackEvent;\\n    createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\\n    createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\\n    createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\\n    createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\\n    createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\\n    createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\\n    createEvent(eventInterface: \"DeviceLightEvent\"): DeviceLightEvent;\\n    createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\\n    createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\\n    createEvent(eventInterface: \"DragEvent\"): DragEvent;\\n    createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\\n    createEvent(eventInterface: \"Event\"): Event;\\n    createEvent(eventInterface: \"Events\"): Event;\\n    createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\\n    createEvent(eventInterface: \"FocusNavigationEvent\"): FocusNavigationEvent;\\n    createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\\n    createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\\n    createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\\n    createEvent(eventInterface: \"InputEvent\"): InputEvent;\\n    createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\\n    createEvent(eventInterface: \"ListeningStateChangedEvent\"): ListeningStateChangedEvent;\\n    createEvent(eventInterface: \"MSGestureEvent\"): MSGestureEvent;\\n    createEvent(eventInterface: \"MSMediaKeyMessageEvent\"): MSMediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MSMediaKeyNeededEvent\"): MSMediaKeyNeededEvent;\\n    createEvent(eventInterface: \"MSPointerEvent\"): MSPointerEvent;\\n    createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\\n    createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\\n    createEvent(eventInterface: \"MediaQueryListEvent\"): MediaQueryListEvent;\\n    createEvent(eventInterface: \"MediaStreamErrorEvent\"): MediaStreamErrorEvent;\\n    createEvent(eventInterface: \"MediaStreamEvent\"): MediaStreamEvent;\\n    createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\\n    createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\\n    createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\\n    createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\\n    createEvent(eventInterface: \"MutationEvent\"): MutationEvent;\\n    createEvent(eventInterface: \"MutationEvents\"): MutationEvent;\\n    createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\\n    createEvent(eventInterface: \"OverflowEvent\"): OverflowEvent;\\n    createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\\n    createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\\n    createEvent(eventInterface: \"PermissionRequestedEvent\"): PermissionRequestedEvent;\\n    createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\\n    createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\\n    createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\\n    createEvent(eventInterface: \"PromiseRejectionEvent\"): PromiseRejectionEvent;\\n    createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\\n    createEvent(eventInterface: \"RTCDataChannelEvent\"): RTCDataChannelEvent;\\n    createEvent(eventInterface: \"RTCDtlsTransportStateChangedEvent\"): RTCDtlsTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCErrorEvent\"): RTCErrorEvent;\\n    createEvent(eventInterface: \"RTCIceCandidatePairChangedEvent\"): RTCIceCandidatePairChangedEvent;\\n    createEvent(eventInterface: \"RTCIceGathererEvent\"): RTCIceGathererEvent;\\n    createEvent(eventInterface: \"RTCIceTransportStateChangedEvent\"): RTCIceTransportStateChangedEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceErrorEvent\"): RTCPeerConnectionIceErrorEvent;\\n    createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\\n    createEvent(eventInterface: \"RTCSsrcConflictEvent\"): RTCSsrcConflictEvent;\\n    createEvent(eventInterface: \"RTCStatsEvent\"): RTCStatsEvent;\\n    createEvent(eventInterface: \"RTCTrackEvent\"): RTCTrackEvent;\\n    createEvent(eventInterface: \"SVGZoomEvent\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SVGZoomEvents\"): SVGZoomEvent;\\n    createEvent(eventInterface: \"SecurityPolicyViolationEvent\"): SecurityPolicyViolationEvent;\\n    createEvent(eventInterface: \"ServiceWorkerMessageEvent\"): ServiceWorkerMessageEvent;\\n    createEvent(eventInterface: \"SpeechRecognitionError\"): SpeechRecognitionError;\\n    createEvent(eventInterface: \"SpeechRecognitionEvent\"): SpeechRecognitionEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisErrorEvent\"): SpeechSynthesisErrorEvent;\\n    createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\\n    createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\\n    createEvent(eventInterface: \"TextEvent\"): TextEvent;\\n    createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\\n    createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\\n    createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\\n    createEvent(eventInterface: \"UIEvent\"): UIEvent;\\n    createEvent(eventInterface: \"UIEvents\"): UIEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent\"): VRDisplayEvent;\\n    createEvent(eventInterface: \"VRDisplayEvent \"): VRDisplayEvent ;\\n    createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\\n    createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\\n    createEvent(eventInterface: string): Event;\\n}\\n\\n/** A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn\\'t part of the active document tree structure, changes made to the fragment don\\'t affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */\\ninterface DocumentFragment extends Node, NonElementParentNode, ParentNode {\\n    getElementById(elementId: string): HTMLElement | null;\\n}\\n\\ndeclare var DocumentFragment: {\\n    prototype: DocumentFragment;\\n    new(): DocumentFragment;\\n};\\n\\ninterface DocumentOrShadowRoot {\\n    readonly activeElement: Element | null;\\n    /**\\n     * Returns document\\'s fullscreen element.\\n     */\\n    readonly fullscreenElement: Element | null;\\n    readonly pointerLockElement: Element | null;\\n    /**\\n     * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.\\n     */\\n    readonly styleSheets: StyleSheetList;\\n    caretPositionFromPoint(x: number, y: number): CaretPosition | null;\\n    /** @deprecated */\\n    caretRangeFromPoint(x: number, y: number): Range;\\n    elementFromPoint(x: number, y: number): Element | null;\\n    elementsFromPoint(x: number, y: number): Element[];\\n    getSelection(): Selection | null;\\n}\\n\\ninterface DocumentTimeline extends AnimationTimeline {\\n}\\n\\ndeclare var DocumentTimeline: {\\n    prototype: DocumentTimeline;\\n    new(options?: DocumentTimelineOptions): DocumentTimeline;\\n};\\n\\n/** A Node containing a doctype. */\\ninterface DocumentType extends Node, ChildNode {\\n    readonly name: string;\\n    readonly publicId: string;\\n    readonly systemId: string;\\n}\\n\\ndeclare var DocumentType: {\\n    prototype: DocumentType;\\n    new(): DocumentType;\\n};\\n\\n/** A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way. */\\ninterface DragEvent extends MouseEvent {\\n    /**\\n     * Returns the DataTransfer object for the event.\\n     */\\n    readonly dataTransfer: DataTransfer | null;\\n}\\n\\ndeclare var DragEvent: {\\n    prototype: DragEvent;\\n    new(type: string, eventInitDict?: DragEventInit): DragEvent;\\n};\\n\\n/** Inherits properties from its parent, AudioNode. */\\ninterface DynamicsCompressorNode extends AudioNode {\\n    readonly attack: AudioParam;\\n    readonly knee: AudioParam;\\n    readonly ratio: AudioParam;\\n    readonly reduction: number;\\n    readonly release: AudioParam;\\n    readonly threshold: AudioParam;\\n}\\n\\ndeclare var DynamicsCompressorNode: {\\n    prototype: DynamicsCompressorNode;\\n    new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;\\n};\\n\\ninterface EXT_blend_minmax {\\n    readonly MAX_EXT: GLenum;\\n    readonly MIN_EXT: GLenum;\\n}\\n\\n/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */\\ninterface EXT_frag_depth {\\n}\\n\\ninterface EXT_sRGB {\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: GLenum;\\n    readonly SRGB8_ALPHA8_EXT: GLenum;\\n    readonly SRGB_ALPHA_EXT: GLenum;\\n    readonly SRGB_EXT: GLenum;\\n}\\n\\ninterface EXT_shader_texture_lod {\\n}\\n\\n/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */\\ninterface EXT_texture_filter_anisotropic {\\n    readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\\n    readonly TEXTURE_MAX_ANISOTROPY_EXT: GLenum;\\n}\\n\\ninterface ElementEventMap {\\n    \"fullscreenchange\": Event;\\n    \"fullscreenerror\": Event;\\n}\\n\\n/** Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. */\\ninterface Element extends Node, Animatable, ChildNode, InnerHTML, NonDocumentTypeChildNode, ParentNode, Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n    readonly attributes: NamedNodeMap;\\n    /**\\n     * Allows for manipulation of element\\'s class content attribute as a set of whitespace-separated tokens through a DOMTokenList object.\\n     */\\n    readonly classList: DOMTokenList;\\n    /**\\n     * Returns the value of element\\'s class content attribute. Can be set to change it.\\n     */\\n    className: string;\\n    readonly clientHeight: number;\\n    readonly clientLeft: number;\\n    readonly clientTop: number;\\n    readonly clientWidth: number;\\n    /**\\n     * Returns the value of element\\'s id content attribute. Can be set to change it.\\n     */\\n    id: string;\\n    /**\\n     * Returns the local name.\\n     */\\n    readonly localName: string;\\n    /**\\n     * Returns the namespace.\\n     */\\n    readonly namespaceURI: string | null;\\n    onfullscreenchange: ((this: Element, ev: Event) => any) | null;\\n    onfullscreenerror: ((this: Element, ev: Event) => any) | null;\\n    outerHTML: string;\\n    /**\\n     * Returns the namespace prefix.\\n     */\\n    readonly prefix: string | null;\\n    readonly scrollHeight: number;\\n    scrollLeft: number;\\n    scrollTop: number;\\n    readonly scrollWidth: number;\\n    /**\\n     * Returns element\\'s shadow root, if any, and if shadow root\\'s mode is \"open\", and null otherwise.\\n     */\\n    readonly shadowRoot: ShadowRoot | null;\\n    /**\\n     * Returns the value of element\\'s slot content attribute. Can be set to change it.\\n     */\\n    slot: string;\\n    /**\\n     * Returns the HTML-uppercased qualified name.\\n     */\\n    readonly tagName: string;\\n    /**\\n     * Creates a shadow root for element and returns it.\\n     */\\n    attachShadow(init: ShadowRootInit): ShadowRoot;\\n    /**\\n     * Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.\\n     */\\n    closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;\\n    closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;\\n    closest<E extends Element = Element>(selector: string): E | null;\\n    /**\\n     * Returns element\\'s first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.\\n     */\\n    getAttribute(qualifiedName: string): string | null;\\n    /**\\n     * Returns element\\'s attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.\\n     */\\n    getAttributeNS(namespace: string | null, localName: string): string | null;\\n    /**\\n     * Returns the qualified names of all element\\'s attributes. Can contain duplicates.\\n     */\\n    getAttributeNames(): string[];\\n    getAttributeNode(name: string): Attr | null;\\n    getAttributeNodeNS(namespaceURI: string, localName: string): Attr | null;\\n    getBoundingClientRect(): DOMRect;\\n    getClientRects(): DOMRectList;\\n    /**\\n     * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\\n     */\\n    getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\\n    getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\\n    getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\\n    getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\\n    getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<SVGElement>;\\n    getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;\\n    /**\\n     * Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.\\n     */\\n    hasAttribute(qualifiedName: string): boolean;\\n    /**\\n     * Returns true if element has an attribute whose namespace is namespace and local name is localName.\\n     */\\n    hasAttributeNS(namespace: string | null, localName: string): boolean;\\n    /**\\n     * Returns true if element has attributes, and false otherwise.\\n     */\\n    hasAttributes(): boolean;\\n    hasPointerCapture(pointerId: number): boolean;\\n    insertAdjacentElement(position: InsertPosition, insertedElement: Element): Element | null;\\n    insertAdjacentHTML(where: InsertPosition, html: string): void;\\n    insertAdjacentText(where: InsertPosition, text: string): void;\\n    /**\\n     * Returns true if matching selectors against element\\'s root yields element, and false otherwise.\\n     */\\n    matches(selectors: string): boolean;\\n    msGetRegionContent(): any;\\n    releasePointerCapture(pointerId: number): void;\\n    /**\\n     * Removes element\\'s first attribute whose qualified name is qualifiedName.\\n     */\\n    removeAttribute(qualifiedName: string): void;\\n    /**\\n     * Removes element\\'s attribute whose namespace is namespace and local name is localName.\\n     */\\n    removeAttributeNS(namespace: string | null, localName: string): void;\\n    removeAttributeNode(attr: Attr): Attr;\\n    /**\\n     * Displays element fullscreen and resolves promise when done.\\n     * \\n     * When supplied, options\\'s navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to \"show\", navigation simplicity is preferred over screen space, and if set to \"hide\", more screen space is preferred. User agents are always free to honor user preference over the application\\'s. The default value \"auto\" indicates no application preference.\\n     */\\n    requestFullscreen(options?: FullscreenOptions): Promise<void>;\\n    requestPointerLock(): void;\\n    scroll(options?: ScrollToOptions): void;\\n    scroll(x: number, y: number): void;\\n    scrollBy(options?: ScrollToOptions): void;\\n    scrollBy(x: number, y: number): void;\\n    scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;\\n    scrollTo(options?: ScrollToOptions): void;\\n    scrollTo(x: number, y: number): void;\\n    /**\\n     * Sets the value of element\\'s first attribute whose qualified name is qualifiedName to value.\\n     */\\n    setAttribute(qualifiedName: string, value: string): void;\\n    /**\\n     * Sets the value of element\\'s attribute whose namespace is namespace and local name is localName to value.\\n     */\\n    setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;\\n    setAttributeNode(attr: Attr): Attr | null;\\n    setAttributeNodeNS(attr: Attr): Attr | null;\\n    setPointerCapture(pointerId: number): void;\\n    /**\\n     * If force is not given, \"toggles\" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.\\n     * \\n     * Returns true if qualifiedName is now present, and false otherwise.\\n     */\\n    toggleAttribute(qualifiedName: string, force?: boolean): boolean;\\n    webkitMatchesSelector(selectors: string): boolean;\\n    addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Element: {\\n    prototype: Element;\\n    new(): Element;\\n};\\n\\ninterface ElementCSSInlineStyle {\\n    readonly style: CSSStyleDeclaration;\\n}\\n\\ninterface ElementContentEditable {\\n    contentEditable: string;\\n    inputMode: string;\\n    readonly isContentEditable: boolean;\\n}\\n\\n/** Events providing information related to errors in scripts or in files. */\\ninterface ErrorEvent extends Event {\\n    readonly colno: number;\\n    readonly error: any;\\n    readonly filename: string;\\n    readonly lineno: number;\\n    readonly message: string;\\n}\\n\\ndeclare var ErrorEvent: {\\n    prototype: ErrorEvent;\\n    new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\\n};\\n\\n/** An event which takes place in the DOM. */\\ninterface Event {\\n    /**\\n     * Returns true or false depending on how event was initialized. True if event goes through its target\\'s ancestors in reverse tree order, and false otherwise.\\n     */\\n    readonly bubbles: boolean;\\n    cancelBubble: boolean;\\n    /**\\n     * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.\\n     */\\n    readonly cancelable: boolean;\\n    /**\\n     * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.\\n     */\\n    readonly composed: boolean;\\n    /**\\n     * Returns the object whose event listener\\'s callback is currently being invoked.\\n     */\\n    readonly currentTarget: EventTarget | null;\\n    /**\\n     * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.\\n     */\\n    readonly defaultPrevented: boolean;\\n    /**\\n     * Returns the event\\'s phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.\\n     */\\n    readonly eventPhase: number;\\n    /**\\n     * Returns true if event was dispatched by the user agent, and false otherwise.\\n     */\\n    readonly isTrusted: boolean;\\n    returnValue: boolean;\\n    /** @deprecated */\\n    readonly srcElement: EventTarget | null;\\n    /**\\n     * Returns the object to which event is dispatched (its target).\\n     */\\n    readonly target: EventTarget | null;\\n    /**\\n     * Returns the event\\'s timestamp as the number of milliseconds measured relative to the time origin.\\n     */\\n    readonly timeStamp: number;\\n    /**\\n     * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the invocation target objects of event\\'s path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root\\'s mode is \"closed\" that are not reachable from event\\'s currentTarget.\\n     */\\n    composedPath(): EventTarget[];\\n    initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\\n    /**\\n     * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.\\n     */\\n    preventDefault(): void;\\n    /**\\n     * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.\\n     */\\n    stopImmediatePropagation(): void;\\n    /**\\n     * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.\\n     */\\n    stopPropagation(): void;\\n    readonly AT_TARGET: number;\\n    readonly BUBBLING_PHASE: number;\\n    readonly CAPTURING_PHASE: number;\\n    readonly NONE: number;\\n}\\n\\ndeclare var Event: {\\n    prototype: Event;\\n    new(type: string, eventInitDict?: EventInit): Event;\\n    readonly AT_TARGET: number;\\n    readonly BUBBLING_PHASE: number;\\n    readonly CAPTURING_PHASE: number;\\n    readonly NONE: number;\\n};\\n\\ninterface EventListenerObject {\\n    handleEvent(evt: Event): void;\\n}\\n\\ninterface EventSourceEventMap {\\n    \"error\": Event;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\ninterface EventSource extends EventTarget {\\n    onerror: ((this: EventSource, ev: Event) => any) | null;\\n    onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\\n    onopen: ((this: EventSource, ev: Event) => any) | null;\\n    /**\\n     * Returns the state of this EventSource object\\'s connection. It can have the values described below.\\n     */\\n    readonly readyState: number;\\n    /**\\n     * Returns the URL providing the event stream.\\n     */\\n    readonly url: string;\\n    /**\\n     * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise.\\n     */\\n    readonly withCredentials: boolean;\\n    /**\\n     * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\\n     */\\n    close(): void;\\n    readonly CLOSED: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n    addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var EventSource: {\\n    prototype: EventSource;\\n    new(url: string, eventSourceInitDict?: EventSourceInit): EventSource;\\n    readonly CLOSED: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n};\\n\\n/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */\\ninterface EventTarget {\\n    /**\\n     * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.\\n     * \\n     * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options\\'s capture.\\n     * \\n     * When set to true, options\\'s capture prevents callback from being invoked when the event\\'s eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event\\'s eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event\\'s eventPhase attribute value is AT_TARGET.\\n     * \\n     * When set to true, options\\'s passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in §2.8 Observing event listeners.\\n     * \\n     * When set to true, options\\'s once indicates that the callback will only be invoked once after which the event listener will be removed.\\n     * \\n     * The event listener is appended to target\\'s event listener list and is not appended if it has the same type, callback, and capture.\\n     */\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;\\n    /**\\n     * Dispatches a synthetic event event to target and returns true if either event\\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\\n     */\\n    dispatchEvent(event: Event): boolean;\\n    /**\\n     * Removes the event listener in target\\'s event listener list with the same type, callback, and options.\\n     */\\n    removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\\n}\\n\\ndeclare var EventTarget: {\\n    prototype: EventTarget;\\n    new(): EventTarget;\\n};\\n\\ninterface ExtensionScriptApis {\\n    extensionIdToShortId(extensionId: string): number;\\n    fireExtensionApiTelemetry(functionName: string, isSucceeded: boolean, isSupported: boolean, errorString: string): void;\\n    genericFunction(routerAddress: any, parameters?: string, callbackId?: number): void;\\n    genericSynchronousFunction(functionId: number, parameters?: string): string;\\n    genericWebRuntimeCallout(to: any, from: any, payload: string): void;\\n    getExtensionId(): string;\\n    registerGenericFunctionCallbackHandler(callbackHandler: Function): void;\\n    registerGenericPersistentCallbackHandler(callbackHandler: Function): void;\\n    registerWebRuntimeCallbackHandler(handler: Function): any;\\n}\\n\\ndeclare var ExtensionScriptApis: {\\n    prototype: ExtensionScriptApis;\\n    new(): ExtensionScriptApis;\\n};\\n\\ninterface External {\\n    /** @deprecated */\\n    AddSearchProvider(): void;\\n    /** @deprecated */\\n    IsSearchProviderInstalled(): void;\\n}\\n\\ndeclare var External: {\\n    prototype: External;\\n    new(): External;\\n};\\n\\n/** Provides information about files and allows JavaScript in a web page to access their content. */\\ninterface File extends Blob {\\n    readonly lastModified: number;\\n    readonly name: string;\\n}\\n\\ndeclare var File: {\\n    prototype: File;\\n    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\\n};\\n\\n/** An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type=\"file\"> element. It\\'s also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */\\ninterface FileList {\\n    readonly length: number;\\n    item(index: number): File | null;\\n    [index: number]: File;\\n}\\n\\ndeclare var FileList: {\\n    prototype: FileList;\\n    new(): FileList;\\n};\\n\\ninterface FileReaderEventMap {\\n    \"abort\": ProgressEvent<FileReader>;\\n    \"error\": ProgressEvent<FileReader>;\\n    \"load\": ProgressEvent<FileReader>;\\n    \"loadend\": ProgressEvent<FileReader>;\\n    \"loadstart\": ProgressEvent<FileReader>;\\n    \"progress\": ProgressEvent<FileReader>;\\n}\\n\\n/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user\\'s computer, using File or Blob objects to specify the file or data to read. */\\ninterface FileReader extends EventTarget {\\n    readonly error: DOMException | null;\\n    onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\\n    readonly readyState: number;\\n    readonly result: string | ArrayBuffer | null;\\n    abort(): void;\\n    readAsArrayBuffer(blob: Blob): void;\\n    readAsBinaryString(blob: Blob): void;\\n    readAsDataURL(blob: Blob): void;\\n    readAsText(blob: Blob, encoding?: string): void;\\n    readonly DONE: number;\\n    readonly EMPTY: number;\\n    readonly LOADING: number;\\n    addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var FileReader: {\\n    prototype: FileReader;\\n    new(): FileReader;\\n    readonly DONE: number;\\n    readonly EMPTY: number;\\n    readonly LOADING: number;\\n};\\n\\n/** Focus-related events like focus, blur, focusin, or focusout. */\\ninterface FocusEvent extends UIEvent {\\n    readonly relatedTarget: EventTarget | null;\\n}\\n\\ndeclare var FocusEvent: {\\n    prototype: FocusEvent;\\n    new(type: string, eventInitDict?: FocusEventInit): FocusEvent;\\n};\\n\\ninterface FocusNavigationEvent extends Event {\\n    readonly navigationReason: NavigationReason;\\n    readonly originHeight: number;\\n    readonly originLeft: number;\\n    readonly originTop: number;\\n    readonly originWidth: number;\\n    requestFocus(): void;\\n}\\n\\ndeclare var FocusNavigationEvent: {\\n    prototype: FocusNavigationEvent;\\n    new(type: string, eventInitDict?: FocusNavigationEventInit): FocusNavigationEvent;\\n};\\n\\n/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to \"multipart/form-data\". */\\ninterface FormData {\\n    append(name: string, value: string | Blob, fileName?: string): void;\\n    delete(name: string): void;\\n    get(name: string): FormDataEntryValue | null;\\n    getAll(name: string): FormDataEntryValue[];\\n    has(name: string): boolean;\\n    set(name: string, value: string | Blob, fileName?: string): void;\\n    forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\\n}\\n\\ndeclare var FormData: {\\n    prototype: FormData;\\n    new(form?: HTMLFormElement): FormData;\\n};\\n\\n/** A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels. */\\ninterface GainNode extends AudioNode {\\n    readonly gain: AudioParam;\\n}\\n\\ndeclare var GainNode: {\\n    prototype: GainNode;\\n    new(context: BaseAudioContext, options?: GainOptions): GainNode;\\n};\\n\\n/** This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. */\\ninterface Gamepad {\\n    readonly axes: ReadonlyArray<number>;\\n    readonly buttons: ReadonlyArray<GamepadButton>;\\n    readonly connected: boolean;\\n    readonly hand: GamepadHand;\\n    readonly hapticActuators: ReadonlyArray<GamepadHapticActuator>;\\n    readonly id: string;\\n    readonly index: number;\\n    readonly mapping: GamepadMappingType;\\n    readonly pose: GamepadPose | null;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var Gamepad: {\\n    prototype: Gamepad;\\n    new(): Gamepad;\\n};\\n\\n/** An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. */\\ninterface GamepadButton {\\n    readonly pressed: boolean;\\n    readonly touched: boolean;\\n    readonly value: number;\\n}\\n\\ndeclare var GamepadButton: {\\n    prototype: GamepadButton;\\n    new(): GamepadButton;\\n};\\n\\n/** This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. */\\ninterface GamepadEvent extends Event {\\n    readonly gamepad: Gamepad;\\n}\\n\\ndeclare var GamepadEvent: {\\n    prototype: GamepadEvent;\\n    new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;\\n};\\n\\n/** This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware. */\\ninterface GamepadHapticActuator {\\n    readonly type: GamepadHapticActuatorType;\\n    pulse(value: number, duration: number): Promise<boolean>;\\n}\\n\\ndeclare var GamepadHapticActuator: {\\n    prototype: GamepadHapticActuator;\\n    new(): GamepadHapticActuator;\\n};\\n\\n/** This Gamepad API interface represents the pose of a WebVR controller at a given timestamp (which includes orientation, position, velocity, and acceleration information.) */\\ninterface GamepadPose {\\n    readonly angularAcceleration: Float32Array | null;\\n    readonly angularVelocity: Float32Array | null;\\n    readonly hasOrientation: boolean;\\n    readonly hasPosition: boolean;\\n    readonly linearAcceleration: Float32Array | null;\\n    readonly linearVelocity: Float32Array | null;\\n    readonly orientation: Float32Array | null;\\n    readonly position: Float32Array | null;\\n}\\n\\ndeclare var GamepadPose: {\\n    prototype: GamepadPose;\\n    new(): GamepadPose;\\n};\\n\\ninterface GenericTransformStream {\\n    /**\\n     * Returns a readable stream whose chunks are strings resulting from running encoding\\'s decoder on the chunks written to writable.\\n     */\\n    readonly readable: ReadableStream;\\n    /**\\n     * Returns a writable stream which accepts BufferSource chunks and runs them through encoding\\'s decoder before making them available to readable.\\n     * \\n     * Typically this will be used via the pipeThrough() method on a ReadableStream source.\\n     * \\n     * ```\\n     * var decoder = new TextDecoderStream(encoding);\\n     * byteReadable\\n     *   .pipeThrough(decoder)\\n     *   .pipeTo(textWritable);\\n     * ```\\n     * \\n     * If the error mode is \"fatal\" and encoding\\'s decoder returns error, both readable and writable will be errored with a TypeError.\\n     */\\n    readonly writable: WritableStream;\\n}\\n\\n/** An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user\\'s location. */\\ninterface Geolocation {\\n    clearWatch(watchId: number): void;\\n    getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void;\\n    watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number;\\n}\\n\\ninterface GlobalEventHandlersEventMap {\\n    \"abort\": UIEvent;\\n    \"animationcancel\": AnimationEvent;\\n    \"animationend\": AnimationEvent;\\n    \"animationiteration\": AnimationEvent;\\n    \"animationstart\": AnimationEvent;\\n    \"auxclick\": MouseEvent;\\n    \"blur\": FocusEvent;\\n    \"cancel\": Event;\\n    \"canplay\": Event;\\n    \"canplaythrough\": Event;\\n    \"change\": Event;\\n    \"click\": MouseEvent;\\n    \"close\": Event;\\n    \"contextmenu\": MouseEvent;\\n    \"cuechange\": Event;\\n    \"dblclick\": MouseEvent;\\n    \"drag\": DragEvent;\\n    \"dragend\": DragEvent;\\n    \"dragenter\": DragEvent;\\n    \"dragexit\": Event;\\n    \"dragleave\": DragEvent;\\n    \"dragover\": DragEvent;\\n    \"dragstart\": DragEvent;\\n    \"drop\": DragEvent;\\n    \"durationchange\": Event;\\n    \"emptied\": Event;\\n    \"ended\": Event;\\n    \"error\": ErrorEvent;\\n    \"focus\": FocusEvent;\\n    \"focusin\": FocusEvent;\\n    \"focusout\": FocusEvent;\\n    \"gotpointercapture\": PointerEvent;\\n    \"input\": Event;\\n    \"invalid\": Event;\\n    \"keydown\": KeyboardEvent;\\n    \"keypress\": KeyboardEvent;\\n    \"keyup\": KeyboardEvent;\\n    \"load\": Event;\\n    \"loadeddata\": Event;\\n    \"loadedmetadata\": Event;\\n    \"loadend\": ProgressEvent;\\n    \"loadstart\": Event;\\n    \"lostpointercapture\": PointerEvent;\\n    \"mousedown\": MouseEvent;\\n    \"mouseenter\": MouseEvent;\\n    \"mouseleave\": MouseEvent;\\n    \"mousemove\": MouseEvent;\\n    \"mouseout\": MouseEvent;\\n    \"mouseover\": MouseEvent;\\n    \"mouseup\": MouseEvent;\\n    \"pause\": Event;\\n    \"play\": Event;\\n    \"playing\": Event;\\n    \"pointercancel\": PointerEvent;\\n    \"pointerdown\": PointerEvent;\\n    \"pointerenter\": PointerEvent;\\n    \"pointerleave\": PointerEvent;\\n    \"pointermove\": PointerEvent;\\n    \"pointerout\": PointerEvent;\\n    \"pointerover\": PointerEvent;\\n    \"pointerup\": PointerEvent;\\n    \"progress\": ProgressEvent;\\n    \"ratechange\": Event;\\n    \"reset\": Event;\\n    \"resize\": UIEvent;\\n    \"scroll\": Event;\\n    \"securitypolicyviolation\": SecurityPolicyViolationEvent;\\n    \"seeked\": Event;\\n    \"seeking\": Event;\\n    \"select\": Event;\\n    \"selectionchange\": Event;\\n    \"selectstart\": Event;\\n    \"stalled\": Event;\\n    \"submit\": Event;\\n    \"suspend\": Event;\\n    \"timeupdate\": Event;\\n    \"toggle\": Event;\\n    \"touchcancel\": TouchEvent;\\n    \"touchend\": TouchEvent;\\n    \"touchmove\": TouchEvent;\\n    \"touchstart\": TouchEvent;\\n    \"transitioncancel\": TransitionEvent;\\n    \"transitionend\": TransitionEvent;\\n    \"transitionrun\": TransitionEvent;\\n    \"transitionstart\": TransitionEvent;\\n    \"volumechange\": Event;\\n    \"waiting\": Event;\\n    \"wheel\": WheelEvent;\\n}\\n\\ninterface GlobalEventHandlers {\\n    /**\\n     * Fires when the user aborts the download.\\n     * @param ev The event.\\n     */\\n    onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\\n    onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\\n    onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the object loses the input focus.\\n     * @param ev The focus event.\\n     */\\n    onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\\n    oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when playback is possible, but would require further buffering.\\n     * @param ev The event.\\n     */\\n    oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the contents of the object or selection have changed.\\n     * @param ev The event.\\n     */\\n    onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user clicks the left mouse button on the object\\n     * @param ev The mouse event.\\n     */\\n    onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user clicks the right mouse button in the client area, opening the context menu.\\n     * @param ev The mouse event.\\n     */\\n    oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user double-clicks the object.\\n     * @param ev The mouse event.\\n     */\\n    ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires on the source object continuously during a drag operation.\\n     * @param ev The event.\\n     */\\n    ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the source object when the user releases the mouse at the close of a drag operation.\\n     * @param ev The event.\\n     */\\n    ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the target element when the user drags the object to a valid drop target.\\n     * @param ev The drag event.\\n     */\\n    ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    ondragexit: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\\n     * @param ev The drag event.\\n     */\\n    ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the target element continuously while the user drags the object over a valid drop target.\\n     * @param ev The event.\\n     */\\n    ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Fires on the source object when the user starts to drag a text selection or selected object.\\n     * @param ev The event.\\n     */\\n    ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\\n    /**\\n     * Occurs when the duration attribute is updated.\\n     * @param ev The event.\\n     */\\n    ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the media element is reset to its initial state.\\n     * @param ev The event.\\n     */\\n    onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the end of playback is reached.\\n     * @param ev The event\\n     */\\n    onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when an error occurs during object loading.\\n     * @param ev The event.\\n     */\\n    onerror: OnErrorEventHandler;\\n    /**\\n     * Fires when the object receives focus.\\n     * @param ev The event.\\n     */\\n    onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\\n    ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user presses a key.\\n     * @param ev The keyboard event\\n     */\\n    onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires when the user presses an alphanumeric key.\\n     * @param ev The event.\\n     */\\n    onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires when the user releases a key.\\n     * @param ev The keyboard event\\n     */\\n    onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\\n    /**\\n     * Fires immediately after the browser loads the object.\\n     * @param ev The event.\\n     */\\n    onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when media data is loaded at the current playback position.\\n     * @param ev The event.\\n     */\\n    onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the duration and dimensions of the media have been determined.\\n     * @param ev The event.\\n     */\\n    onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onloadend: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\\n    /**\\n     * Occurs when Internet Explorer begins looking for media data.\\n     * @param ev The event.\\n     */\\n    onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    /**\\n     * Fires when the user clicks the object with either mouse button.\\n     * @param ev The mouse event.\\n     */\\n    onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse over the object.\\n     * @param ev The mouse event.\\n     */\\n    onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse pointer outside the boundaries of the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user moves the mouse pointer into the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Fires when the user releases a mouse button while the mouse is over the object.\\n     * @param ev The mouse event.\\n     */\\n    onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\\n    /**\\n     * Occurs when playback is paused.\\n     * @param ev The event.\\n     */\\n    onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the play method is requested.\\n     * @param ev The event.\\n     */\\n    onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the audio or video has started playing.\\n     * @param ev The event.\\n     */\\n    onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\\n    /**\\n     * Occurs to indicate progress while downloading media data.\\n     * @param ev The event.\\n     */\\n    onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\\n    /**\\n     * Occurs when the playback rate is increased or decreased.\\n     * @param ev The event.\\n     */\\n    onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the user resets a form.\\n     * @param ev The event.\\n     */\\n    onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\\n    /**\\n     * Fires when the user repositions the scroll box in the scroll bar on the object.\\n     * @param ev The event.\\n     */\\n    onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;\\n    /**\\n     * Occurs when the seek operation ends.\\n     * @param ev The event.\\n     */\\n    onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the current playback position is moved.\\n     * @param ev The event.\\n     */\\n    onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Fires when the current selection changes.\\n     * @param ev The event.\\n     */\\n    onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when the download has stopped.\\n     * @param ev The event.\\n     */\\n    onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onsubmit: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs if the load operation has been intentionally halted.\\n     * @param ev The event.\\n     */\\n    onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs to indicate the current playback position.\\n     * @param ev The event.\\n     */\\n    ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    ontouchcancel: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchend: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchmove: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontouchstart: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null;\\n    ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\\n    /**\\n     * Occurs when the volume is changed, or playback is muted or unmuted.\\n     * @param ev The event.\\n     */\\n    onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    /**\\n     * Occurs when playback stops because the next frame of a video resource is not available.\\n     * @param ev The event.\\n     */\\n    onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;\\n    onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;\\n    addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface HTMLAllCollection {\\n    /**\\n     * Returns the number of elements in the collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the item with index index from the collection (determined by tree order).\\n     */\\n    item(nameOrIndex?: string): HTMLCollection | Element | null;\\n    /**\\n     * Returns the item with ID or name name from the collection.\\n     * \\n     * If there are multiple matching items, then an HTMLCollection object containing all those elements is returned.\\n     * \\n     * Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method; their name is given by the value of their name attribute.\\n     */\\n    namedItem(name: string): HTMLCollection | Element | null;\\n    [index: number]: Element;\\n}\\n\\ndeclare var HTMLAllCollection: {\\n    prototype: HTMLAllCollection;\\n    new(): HTMLAllCollection;\\n};\\n\\n/** Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */\\ninterface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    /**\\n     * Sets or retrieves the coordinates of the object.\\n     */\\n    /** @deprecated */\\n    coords: string;\\n    download: string;\\n    /**\\n     * Sets or retrieves the language code of the object.\\n     */\\n    hreflang: string;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    ping: string;\\n    referrerPolicy: string;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    /** @deprecated */\\n    rev: string;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    shape: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAnchorElement: {\\n    prototype: HTMLAnchorElement;\\n    new(): HTMLAnchorElement;\\n};\\n\\ninterface HTMLAppletElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    /** @deprecated */\\n    alt: string;\\n    /**\\n     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\\n     */\\n    /** @deprecated */\\n    archive: string;\\n    /** @deprecated */\\n    code: string;\\n    /**\\n     * Sets or retrieves the URL of the component.\\n     */\\n    /** @deprecated */\\n    codeBase: string;\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    /** @deprecated */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /** @deprecated */\\n    object: string;\\n    /** @deprecated */\\n    vspace: number;\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAppletElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAppletElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAppletElement: {\\n    prototype: HTMLAppletElement;\\n    new(): HTMLAppletElement;\\n};\\n\\n/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <area> elements. */\\ninterface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Sets or retrieves the coordinates of the object.\\n     */\\n    coords: string;\\n    download: string;\\n    /**\\n     * Sets or gets whether clicks in this region cause action.\\n     */\\n    /** @deprecated */\\n    noHref: boolean;\\n    ping: string;\\n    referrerPolicy: string;\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the shape of the object.\\n     */\\n    shape: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAreaElement: {\\n    prototype: HTMLAreaElement;\\n    new(): HTMLAreaElement;\\n};\\n\\n/** Provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface. */\\ninterface HTMLAudioElement extends HTMLMediaElement {\\n    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLAudioElement: {\\n    prototype: HTMLAudioElement;\\n    new(): HTMLAudioElement;\\n};\\n\\n/** A HTML line break element (<br>). It inherits from HTMLElement. */\\ninterface HTMLBRElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.\\n     */\\n    /** @deprecated */\\n    clear: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBRElement: {\\n    prototype: HTMLBRElement;\\n    new(): HTMLBRElement;\\n};\\n\\n/** Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface. */\\ninterface HTMLBaseElement extends HTMLElement {\\n    /**\\n     * Gets or sets the baseline URL on which relative links are based.\\n     */\\n    href: string;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBaseElement: {\\n    prototype: HTMLBaseElement;\\n    new(): HTMLBaseElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <basefont> elements. */\\ninterface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty {\\n    /**\\n     * Sets or retrieves the current typeface family.\\n     */\\n    /** @deprecated */\\n    face: string;\\n    /**\\n     * Sets or retrieves the font size of the object.\\n     */\\n    /** @deprecated */\\n    size: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBaseFontElement: {\\n    prototype: HTMLBaseFontElement;\\n    new(): HTMLBaseFontElement;\\n};\\n\\ninterface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\\n    \"orientationchange\": Event;\\n}\\n\\n/** Provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating <body> elements. */\\ninterface HTMLBodyElement extends HTMLElement, WindowEventHandlers {\\n    /** @deprecated */\\n    aLink: string;\\n    /** @deprecated */\\n    background: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    bgProperties: string;\\n    /** @deprecated */\\n    link: string;\\n    /** @deprecated */\\n    noWrap: boolean;\\n    /** @deprecated */\\n    onorientationchange: ((this: HTMLBodyElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    text: string;\\n    /** @deprecated */\\n    vLink: string;\\n    addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLBodyElement: {\\n    prototype: HTMLBodyElement;\\n    new(): HTMLBodyElement;\\n};\\n\\n/** Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements. */\\ninterface HTMLButtonElement extends HTMLElement {\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Overrides the action attribute (where the data on a form is sent) on the parent form element.\\n     */\\n    formAction: string;\\n    /**\\n     * Used to override the encoding (formEnctype attribute) specified on the form element.\\n     */\\n    formEnctype: string;\\n    /**\\n     * Overrides the submit method attribute previously specified on a form element.\\n     */\\n    formMethod: string;\\n    /**\\n     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\\n     */\\n    formNoValidate: boolean;\\n    /**\\n     * Overrides the target attribute on a form element.\\n     */\\n    formTarget: string;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets the classification and default behavior of the button.\\n     */\\n    type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Sets or retrieves the default or selected value of the control.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLButtonElement: {\\n    prototype: HTMLButtonElement;\\n    new(): HTMLButtonElement;\\n};\\n\\n/** Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface. */\\ninterface HTMLCanvasElement extends HTMLElement {\\n    /**\\n     * Gets or sets the height of a canvas element on a document.\\n     */\\n    height: number;\\n    /**\\n     * Gets or sets the width of a canvas element on a document.\\n     */\\n    width: number;\\n    /**\\n     * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.\\n     * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext(\"2d\"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext(\"experimental-webgl\");\\n     */\\n    getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;\\n    getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;\\n    getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null;\\n    getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null;\\n    getContext(contextId: string, options?: any): RenderingContext | null;\\n    toBlob(callback: BlobCallback, type?: string, quality?: any): void;\\n    /**\\n     * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.\\n     * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.\\n     */\\n    toDataURL(type?: string, quality?: any): string;\\n    transferControlToOffscreen(): OffscreenCanvas;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLCanvasElement: {\\n    prototype: HTMLCanvasElement;\\n    new(): HTMLCanvasElement;\\n};\\n\\n/** A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. */\\ninterface HTMLCollectionBase {\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Retrieves an object from various collections.\\n     */\\n    item(index: number): Element | null;\\n    [index: number]: Element;\\n}\\n\\ninterface HTMLCollection extends HTMLCollectionBase {\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     */\\n    namedItem(name: string): Element | null;\\n}\\n\\ndeclare var HTMLCollection: {\\n    prototype: HTMLCollection;\\n    new(): HTMLCollection;\\n};\\n\\ninterface HTMLCollectionOf<T extends Element> extends HTMLCollectionBase {\\n    item(index: number): T | null;\\n    namedItem(name: string): T | null;\\n    [index: number]: T;\\n}\\n\\n/** Provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements. */\\ninterface HTMLDListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDListElement: {\\n    prototype: HTMLDListElement;\\n    new(): HTMLDListElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements. */\\ninterface HTMLDataElement extends HTMLElement {\\n    value: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDataElement: {\\n    prototype: HTMLDataElement;\\n    new(): HTMLDataElement;\\n};\\n\\n/** Provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content. */\\ninterface HTMLDataListElement extends HTMLElement {\\n    readonly options: HTMLCollectionOf<HTMLOptionElement>;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDataListElement: {\\n    prototype: HTMLDataListElement;\\n    new(): HTMLDataListElement;\\n};\\n\\ninterface HTMLDetailsElement extends HTMLElement {\\n    open: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDetailsElement: {\\n    prototype: HTMLDetailsElement;\\n    new(): HTMLDetailsElement;\\n};\\n\\ninterface HTMLDialogElement extends HTMLElement {\\n    open: boolean;\\n    returnValue: string;\\n    close(returnValue?: string): void;\\n    show(): void;\\n    showModal(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDialogElement: {\\n    prototype: HTMLDialogElement;\\n    new(): HTMLDialogElement;\\n};\\n\\ninterface HTMLDirectoryElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDirectoryElement: {\\n    prototype: HTMLDirectoryElement;\\n    new(): HTMLDirectoryElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements. */\\ninterface HTMLDivElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDivElement: {\\n    prototype: HTMLDivElement;\\n    new(): HTMLDivElement;\\n};\\n\\n/** The HTMLDocument property of Window objects is an alias that browsers expose for the Document interface object. */\\ninterface HTMLDocument extends Document {\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLDocument: {\\n    prototype: HTMLDocument;\\n    new(): HTMLDocument;\\n};\\n\\ninterface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n}\\n\\n/** Any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it. */\\ninterface HTMLElement extends Element, DocumentAndElementEventHandlers, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {\\n    accessKey: string;\\n    readonly accessKeyLabel: string;\\n    autocapitalize: string;\\n    dir: string;\\n    draggable: boolean;\\n    hidden: boolean;\\n    innerText: string;\\n    lang: string;\\n    readonly offsetHeight: number;\\n    readonly offsetLeft: number;\\n    readonly offsetParent: Element | null;\\n    readonly offsetTop: number;\\n    readonly offsetWidth: number;\\n    spellcheck: boolean;\\n    title: string;\\n    translate: boolean;\\n    click(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLElement: {\\n    prototype: HTMLElement;\\n    new(): HTMLElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements. */\\ninterface HTMLEmbedElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    src: string;\\n    type: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    getSVGDocument(): Document | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLEmbedElement: {\\n    prototype: HTMLEmbedElement;\\n    new(): HTMLEmbedElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <fieldset> elements. */\\ninterface HTMLFieldSetElement extends HTMLElement {\\n    disabled: boolean;\\n    readonly elements: HTMLCollection;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    name: string;\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFieldSetElement: {\\n    prototype: HTMLFieldSetElement;\\n    new(): HTMLFieldSetElement;\\n};\\n\\n/** Implements the document object model (DOM) representation of the font element. The HTML Font Element <font> defines the font size, font face and color of text. */\\ninterface HTMLFontElement extends HTMLElement {\\n    /** @deprecated */\\n    color: string;\\n    /**\\n     * Sets or retrieves the current typeface family.\\n     */\\n    /** @deprecated */\\n    face: string;\\n    /** @deprecated */\\n    size: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFontElement: {\\n    prototype: HTMLFontElement;\\n    new(): HTMLFontElement;\\n};\\n\\n/** A collection of HTML form control elements.  */\\ninterface HTMLFormControlsCollection extends HTMLCollectionBase {\\n    /**\\n     * Returns the item with ID or name name from the collection.\\n     * \\n     * If there are multiple matching items, then a RadioNodeList object containing all those elements is returned.\\n     */\\n    namedItem(name: string): RadioNodeList | Element | null;\\n}\\n\\ndeclare var HTMLFormControlsCollection: {\\n    prototype: HTMLFormControlsCollection;\\n    new(): HTMLFormControlsCollection;\\n};\\n\\n/** A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. */\\ninterface HTMLFormElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.\\n     */\\n    acceptCharset: string;\\n    /**\\n     * Sets or retrieves the URL to which the form content is sent for processing.\\n     */\\n    action: string;\\n    /**\\n     * Specifies whether autocomplete is applied to an editable text field.\\n     */\\n    autocomplete: string;\\n    /**\\n     * Retrieves a collection, in source order, of all controls in a given form.\\n     */\\n    readonly elements: HTMLFormControlsCollection;\\n    /**\\n     * Sets or retrieves the MIME encoding for the form.\\n     */\\n    encoding: string;\\n    /**\\n     * Sets or retrieves the encoding type for the form.\\n     */\\n    enctype: string;\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Sets or retrieves how to send the form data to the server.\\n     */\\n    method: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Designates a form that is not validated when submitted.\\n     */\\n    noValidate: boolean;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    target: string;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Fires when the user resets a form.\\n     */\\n    reset(): void;\\n    /**\\n     * Fires when a FORM is about to be submitted.\\n     */\\n    submit(): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: Element;\\n    [name: string]: any;\\n}\\n\\ndeclare var HTMLFormElement: {\\n    prototype: HTMLFormElement;\\n    new(): HTMLFormElement;\\n};\\n\\ninterface HTMLFrameElement extends HTMLElement {\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    /** @deprecated */\\n    readonly contentDocument: Document | null;\\n    /**\\n     * Retrieves the object of the specified.\\n     */\\n    /** @deprecated */\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves whether to display a border for the frame.\\n     */\\n    /** @deprecated */\\n    frameBorder: string;\\n    /**\\n     * Sets or retrieves a URI to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /**\\n     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginHeight: string;\\n    /**\\n     * Sets or retrieves the left and right margin widths before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginWidth: string;\\n    /**\\n     * Sets or retrieves the frame name.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * Sets or retrieves whether the user can resize the frame.\\n     */\\n    /** @deprecated */\\n    noResize: boolean;\\n    /**\\n     * Sets or retrieves whether the frame can be scrolled.\\n     */\\n    /** @deprecated */\\n    scrolling: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    /** @deprecated */\\n    src: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFrameElement: {\\n    prototype: HTMLFrameElement;\\n    new(): HTMLFrameElement;\\n};\\n\\ninterface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\\n}\\n\\n/** Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements. */\\ninterface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {\\n    /**\\n     * Sets or retrieves the frame widths of the object.\\n     */\\n    /** @deprecated */\\n    cols: string;\\n    /**\\n     * Sets or retrieves the frame heights of the object.\\n     */\\n    /** @deprecated */\\n    rows: string;\\n    addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLFrameSetElement: {\\n    prototype: HTMLFrameSetElement;\\n    new(): HTMLFrameSetElement;\\n};\\n\\n/** Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements. */\\ninterface HTMLHRElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    color: string;\\n    /**\\n     * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.\\n     */\\n    /** @deprecated */\\n    noShade: boolean;\\n    /** @deprecated */\\n    size: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHRElement: {\\n    prototype: HTMLHRElement;\\n    new(): HTMLHRElement;\\n};\\n\\n/** Contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface. */\\ninterface HTMLHeadElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHeadElement: {\\n    prototype: HTMLHeadElement;\\n    new(): HTMLHeadElement;\\n};\\n\\n/** The different heading elements. It inherits methods and properties from the HTMLElement interface. */\\ninterface HTMLHeadingElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHeadingElement: {\\n    prototype: HTMLHeadingElement;\\n    new(): HTMLHeadingElement;\\n};\\n\\n/** Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface. */\\ninterface HTMLHtmlElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the DTD version that governs the current document.\\n     */\\n    /** @deprecated */\\n    version: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLHtmlElement: {\\n    prototype: HTMLHtmlElement;\\n    new(): HTMLHtmlElement;\\n};\\n\\ninterface HTMLHyperlinkElementUtils {\\n    hash: string;\\n    host: string;\\n    hostname: string;\\n    href: string;\\n    readonly origin: string;\\n    password: string;\\n    pathname: string;\\n    port: string;\\n    protocol: string;\\n    search: string;\\n    username: string;\\n}\\n\\n/** Provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements. */\\ninterface HTMLIFrameElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    allow: string;\\n    allowFullscreen: boolean;\\n    allowPaymentRequest: boolean;\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    readonly contentDocument: Document | null;\\n    /**\\n     * Retrieves the object of the specified.\\n     */\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves whether to display a border for the frame.\\n     */\\n    /** @deprecated */\\n    frameBorder: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /**\\n     * Sets or retrieves a URI to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /**\\n     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginHeight: string;\\n    /**\\n     * Sets or retrieves the left and right margin widths before displaying the text in a frame.\\n     */\\n    /** @deprecated */\\n    marginWidth: string;\\n    /**\\n     * Sets or retrieves the frame name.\\n     */\\n    name: string;\\n    referrerPolicy: ReferrerPolicy;\\n    readonly sandbox: DOMTokenList;\\n    /**\\n     * Sets or retrieves whether the frame can be scrolled.\\n     */\\n    /** @deprecated */\\n    scrolling: string;\\n    /**\\n     * Sets or retrieves a URL to be loaded by the object.\\n     */\\n    src: string;\\n    /**\\n     * Sets or retrives the content of the page that is to contain.\\n     */\\n    srcdoc: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    getSVGDocument(): Document | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLIFrameElement: {\\n    prototype: HTMLIFrameElement;\\n    new(): HTMLIFrameElement;\\n};\\n\\n/** Provides special properties and methods for manipulating <img> elements. */\\ninterface HTMLImageElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Specifies the properties of a border drawn around an object.\\n     */\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Retrieves whether the object is fully loaded.\\n     */\\n    readonly complete: boolean;\\n    crossOrigin: string | null;\\n    readonly currentSrc: string;\\n    decoding: \"async\" | \"sync\" | \"auto\";\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: number;\\n    /**\\n     * Sets or retrieves the width of the border to draw around the object.\\n     */\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves whether the image is a server-side image map.\\n     */\\n    isMap: boolean;\\n    /**\\n     * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.\\n     */\\n    /** @deprecated */\\n    longDesc: string;\\n    /** @deprecated */\\n    lowsrc: string;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    /** @deprecated */\\n    name: string;\\n    /**\\n     * The original height of the image resource before sizing.\\n     */\\n    readonly naturalHeight: number;\\n    /**\\n     * The original width of the image resource before sizing.\\n     */\\n    readonly naturalWidth: number;\\n    referrerPolicy: string;\\n    sizes: string;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcset: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    useMap: string;\\n    /**\\n     * Sets or retrieves the vertical margin for the object.\\n     */\\n    /** @deprecated */\\n    vspace: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: number;\\n    readonly x: number;\\n    readonly y: number;\\n    decode(): Promise<void>;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLImageElement: {\\n    prototype: HTMLImageElement;\\n    new(): HTMLImageElement;\\n};\\n\\n/** Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements. */\\ninterface HTMLInputElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a comma-separated list of content types.\\n     */\\n    accept: string;\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a text alternative to the graphic.\\n     */\\n    alt: string;\\n    /**\\n     * Specifies whether autocomplete is applied to an editable text field.\\n     */\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    /**\\n     * Sets or retrieves the state of the check box or radio button.\\n     */\\n    checked: boolean;\\n    /**\\n     * Sets or retrieves the state of the check box or radio button.\\n     */\\n    defaultChecked: boolean;\\n    /**\\n     * Sets or retrieves the initial contents of the object.\\n     */\\n    defaultValue: string;\\n    dirName: string;\\n    disabled: boolean;\\n    /**\\n     * Returns a FileList object on a file type input object.\\n     */\\n    files: FileList | null;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Overrides the action attribute (where the data on a form is sent) on the parent form element.\\n     */\\n    formAction: string;\\n    /**\\n     * Used to override the encoding (formEnctype attribute) specified on the form element.\\n     */\\n    formEnctype: string;\\n    /**\\n     * Overrides the submit method attribute previously specified on a form element.\\n     */\\n    formMethod: string;\\n    /**\\n     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\\n     */\\n    formNoValidate: boolean;\\n    /**\\n     * Overrides the target attribute on a form element.\\n     */\\n    formTarget: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: number;\\n    indeterminate: boolean;\\n    readonly labels: NodeListOf<HTMLLabelElement> | null;\\n    /**\\n     * Specifies the ID of a pre-defined datalist of options for an input element.\\n     */\\n    readonly list: HTMLElement | null;\\n    /**\\n     * Defines the maximum acceptable value for an input element with type=\"number\".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.\\n     */\\n    max: string;\\n    /**\\n     * Sets or retrieves the maximum number of characters that the user can enter in a text control.\\n     */\\n    maxLength: number;\\n    /**\\n     * Defines the minimum acceptable value for an input element with type=\"number\". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.\\n     */\\n    min: string;\\n    minLength: number;\\n    /**\\n     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\\n     */\\n    multiple: boolean;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets or sets a string containing a regular expression that the user\\'s input must match.\\n     */\\n    pattern: string;\\n    /**\\n     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\\n     */\\n    placeholder: string;\\n    readOnly: boolean;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    selectionDirection: string | null;\\n    /**\\n     * Gets or sets the end position or offset of a text selection.\\n     */\\n    selectionEnd: number | null;\\n    /**\\n     * Gets or sets the starting position or offset of a text selection.\\n     */\\n    selectionStart: number | null;\\n    size: number;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    /**\\n     * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.\\n     */\\n    step: string;\\n    /**\\n     * Returns the content type of the object.\\n     */\\n    type: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    /** @deprecated */\\n    useMap: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Returns the value of the data at the cursor\\'s current position.\\n     */\\n    value: string;\\n    /**\\n     * Returns a Date object representing the form control\\'s value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an \"InvalidStateError\" DOMException if the control isn\\'t date- or time-based.\\n     */\\n    valueAsDate: Date | null;\\n    /**\\n     * Returns the input field value as a number.\\n     */\\n    valueAsNumber: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: number;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Makes the selection equal to the current object.\\n     */\\n    select(): void;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    setRangeText(replacement: string): void;\\n    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\\n    /**\\n     * Sets the start and end positions of a selection in a text field.\\n     * @param start The offset into the text field for the start of the selection.\\n     * @param end The offset into the text field for the end of the selection.\\n     * @param direction The direction in which the selection is performed.\\n     */\\n    setSelectionRange(start: number, end: number, direction?: \"forward\" | \"backward\" | \"none\"): void;\\n    /**\\n     * Decrements a range input control\\'s value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control\\'s step value multiplied by the parameter\\'s value.\\n     * @param n Value to decrement the value by.\\n     */\\n    stepDown(n?: number): void;\\n    /**\\n     * Increments a range input control\\'s value by the value given by the Step attribute. If the optional parameter is used, will increment the input control\\'s value by that value.\\n     * @param n Value to increment the value by.\\n     */\\n    stepUp(n?: number): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLInputElement: {\\n    prototype: HTMLInputElement;\\n    new(): HTMLInputElement;\\n};\\n\\n/** Exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements. */\\ninterface HTMLLIElement extends HTMLElement {\\n    /** @deprecated */\\n    type: string;\\n    /**\\n     * Sets or retrieves the value of a list item.\\n     */\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLIElement: {\\n    prototype: HTMLLIElement;\\n    new(): HTMLLIElement;\\n};\\n\\n/** Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface. */\\ninterface HTMLLabelElement extends HTMLElement {\\n    readonly control: HTMLElement | null;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the object to which the given label object is assigned.\\n     */\\n    htmlFor: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLabelElement: {\\n    prototype: HTMLLabelElement;\\n    new(): HTMLLabelElement;\\n};\\n\\n/** The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface. */\\ninterface HTMLLegendElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLegendElement: {\\n    prototype: HTMLLegendElement;\\n    new(): HTMLLegendElement;\\n};\\n\\n/** Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface. */\\ninterface HTMLLinkElement extends HTMLElement, LinkStyle {\\n    as: string;\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    crossOrigin: string | null;\\n    disabled: boolean;\\n    /**\\n     * Sets or retrieves a destination URL or an anchor point.\\n     */\\n    href: string;\\n    /**\\n     * Sets or retrieves the language code of the object.\\n     */\\n    hreflang: string;\\n    imageSizes: string;\\n    imageSrcset: string;\\n    integrity: string;\\n    /**\\n     * Sets or retrieves the media type.\\n     */\\n    media: string;\\n    referrerPolicy: string;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    rel: string;\\n    readonly relList: DOMTokenList;\\n    /**\\n     * Sets or retrieves the relationship between the object and the destination of the link.\\n     */\\n    /** @deprecated */\\n    rev: string;\\n    readonly sizes: DOMTokenList;\\n    /**\\n     * Sets or retrieves the window or frame at which to target content.\\n     */\\n    /** @deprecated */\\n    target: string;\\n    /**\\n     * Sets or retrieves the MIME type of the object.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLLinkElement: {\\n    prototype: HTMLLinkElement;\\n    new(): HTMLLinkElement;\\n};\\n\\n/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements. */\\ninterface HTMLMapElement extends HTMLElement {\\n    /**\\n     * Retrieves a collection of the area objects defined for the given map object.\\n     */\\n    readonly areas: HTMLCollection;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMapElement: {\\n    prototype: HTMLMapElement;\\n    new(): HTMLMapElement;\\n};\\n\\ninterface HTMLMarqueeElementEventMap extends HTMLElementEventMap {\\n    \"bounce\": Event;\\n    \"finish\": Event;\\n    \"start\": Event;\\n}\\n\\n/** Provides methods to manipulate <marquee> elements. */\\ninterface HTMLMarqueeElement extends HTMLElement {\\n    /** @deprecated */\\n    behavior: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /** @deprecated */\\n    direction: string;\\n    /** @deprecated */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /** @deprecated */\\n    loop: number;\\n    /** @deprecated */\\n    onbounce: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onfinish: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onstart: ((this: HTMLMarqueeElement, ev: Event) => any) | null;\\n    /** @deprecated */\\n    scrollAmount: number;\\n    /** @deprecated */\\n    scrollDelay: number;\\n    /** @deprecated */\\n    trueSpeed: boolean;\\n    /** @deprecated */\\n    vspace: number;\\n    /** @deprecated */\\n    width: string;\\n    /** @deprecated */\\n    start(): void;\\n    /** @deprecated */\\n    stop(): void;\\n    addEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMarqueeElement: {\\n    prototype: HTMLMarqueeElement;\\n    new(): HTMLMarqueeElement;\\n};\\n\\ninterface HTMLMediaElementEventMap extends HTMLElementEventMap {\\n    \"encrypted\": MediaEncryptedEvent;\\n    \"msneedkey\": Event;\\n    \"waitingforkey\": Event;\\n}\\n\\n/** Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. */\\ninterface HTMLMediaElement extends HTMLElement {\\n    /**\\n     * Returns an AudioTrackList object with the audio tracks for a given video element.\\n     */\\n    readonly audioTracks: AudioTrackList;\\n    /**\\n     * Gets or sets a value that indicates whether to start playing the media automatically.\\n     */\\n    autoplay: boolean;\\n    /**\\n     * Gets a collection of buffered time ranges.\\n     */\\n    readonly buffered: TimeRanges;\\n    /**\\n     * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).\\n     */\\n    controls: boolean;\\n    crossOrigin: string | null;\\n    /**\\n     * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.\\n     */\\n    readonly currentSrc: string;\\n    /**\\n     * Gets or sets the current playback position, in seconds.\\n     */\\n    currentTime: number;\\n    defaultMuted: boolean;\\n    /**\\n     * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.\\n     */\\n    defaultPlaybackRate: number;\\n    /**\\n     * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.\\n     */\\n    readonly duration: number;\\n    /**\\n     * Gets information about whether the playback has ended or not.\\n     */\\n    readonly ended: boolean;\\n    /**\\n     * Returns an object representing the current error state of the audio or video element.\\n     */\\n    readonly error: MediaError | null;\\n    /**\\n     * Gets or sets a flag to specify whether playback should restart after it completes.\\n     */\\n    loop: boolean;\\n    readonly mediaKeys: MediaKeys | null;\\n    /**\\n     * Specifies the purpose of the audio or video media, such as background audio or alerts.\\n     */\\n    msAudioCategory: string;\\n    /**\\n     * Specifies the output device id that the audio will be sent to.\\n     */\\n    msAudioDeviceType: string;\\n    readonly msGraphicsTrustStatus: MSGraphicsTrust;\\n    /**\\n     * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.\\n     */\\n    /** @deprecated */\\n    readonly msKeys: MSMediaKeys;\\n    /**\\n     * Gets or sets whether the DLNA PlayTo device is available.\\n     */\\n    msPlayToDisabled: boolean;\\n    /**\\n     * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.\\n     */\\n    msPlayToPreferredSourceUri: string;\\n    /**\\n     * Gets or sets the primary DLNA PlayTo device.\\n     */\\n    msPlayToPrimary: boolean;\\n    /**\\n     * Gets the source associated with the media element for use by the PlayToManager.\\n     */\\n    readonly msPlayToSource: any;\\n    /**\\n     * Specifies whether or not to enable low-latency playback on the media element.\\n     */\\n    msRealTime: boolean;\\n    /**\\n     * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.\\n     */\\n    muted: boolean;\\n    /**\\n     * Gets the current network activity for the element.\\n     */\\n    readonly networkState: number;\\n    onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;\\n    /** @deprecated */\\n    onmsneedkey: ((this: HTMLMediaElement, ev: Event) => any) | null;\\n    onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;\\n    /**\\n     * Gets a flag that specifies whether playback is paused.\\n     */\\n    readonly paused: boolean;\\n    /**\\n     * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.\\n     */\\n    playbackRate: number;\\n    /**\\n     * Gets TimeRanges for the current media resource that has been played.\\n     */\\n    readonly played: TimeRanges;\\n    /**\\n     * Gets or sets the current playback position, in seconds.\\n     */\\n    preload: string;\\n    readonly readyState: number;\\n    /**\\n     * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.\\n     */\\n    readonly seekable: TimeRanges;\\n    /**\\n     * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.\\n     */\\n    readonly seeking: boolean;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcObject: MediaStream | MediaSource | Blob | null;\\n    readonly textTracks: TextTrackList;\\n    readonly videoTracks: VideoTrackList;\\n    /**\\n     * Gets or sets the volume level for audio portions of the media element.\\n     */\\n    volume: number;\\n    addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;\\n    /**\\n     * Returns a string that specifies whether the client can play a given media resource type.\\n     */\\n    canPlayType(type: string): CanPlayTypeResult;\\n    /**\\n     * Resets the audio or video object and loads a new media resource.\\n     */\\n    load(): void;\\n    /**\\n     * Clears all effects from the media pipeline.\\n     */\\n    msClearEffects(): void;\\n    msGetAsCastingSource(): any;\\n    /**\\n     * Inserts the specified audio effect into media pipeline.\\n     */\\n    msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\\n    /** @deprecated */\\n    msSetMediaKeys(mediaKeys: MSMediaKeys): void;\\n    /**\\n     * Specifies the media protection manager for a given media pipeline.\\n     */\\n    msSetMediaProtectionManager(mediaProtectionManager?: any): void;\\n    /**\\n     * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.\\n     */\\n    pause(): void;\\n    /**\\n     * Loads and starts playback of a media resource.\\n     */\\n    play(): Promise<void>;\\n    setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;\\n    readonly HAVE_CURRENT_DATA: number;\\n    readonly HAVE_ENOUGH_DATA: number;\\n    readonly HAVE_FUTURE_DATA: number;\\n    readonly HAVE_METADATA: number;\\n    readonly HAVE_NOTHING: number;\\n    readonly NETWORK_EMPTY: number;\\n    readonly NETWORK_IDLE: number;\\n    readonly NETWORK_LOADING: number;\\n    readonly NETWORK_NO_SOURCE: number;\\n    addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMediaElement: {\\n    prototype: HTMLMediaElement;\\n    new(): HTMLMediaElement;\\n    readonly HAVE_CURRENT_DATA: number;\\n    readonly HAVE_ENOUGH_DATA: number;\\n    readonly HAVE_FUTURE_DATA: number;\\n    readonly HAVE_METADATA: number;\\n    readonly HAVE_NOTHING: number;\\n    readonly NETWORK_EMPTY: number;\\n    readonly NETWORK_IDLE: number;\\n    readonly NETWORK_LOADING: number;\\n    readonly NETWORK_NO_SOURCE: number;\\n};\\n\\ninterface HTMLMenuElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMenuElement: {\\n    prototype: HTMLMenuElement;\\n    new(): HTMLMenuElement;\\n};\\n\\n/** Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface. */\\ninterface HTMLMetaElement extends HTMLElement {\\n    /**\\n     * Gets or sets meta-information to associate with httpEquiv or name.\\n     */\\n    content: string;\\n    /**\\n     * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.\\n     */\\n    httpEquiv: string;\\n    /**\\n     * Sets or retrieves the value specified in the content attribute of the meta object.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.\\n     */\\n    /** @deprecated */\\n    scheme: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMetaElement: {\\n    prototype: HTMLMetaElement;\\n    new(): HTMLMetaElement;\\n};\\n\\n/** The HTML <meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <meter> elements. */\\ninterface HTMLMeterElement extends HTMLElement {\\n    high: number;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    low: number;\\n    max: number;\\n    min: number;\\n    optimum: number;\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLMeterElement: {\\n    prototype: HTMLMeterElement;\\n    new(): HTMLMeterElement;\\n};\\n\\n/** Provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>. */\\ninterface HTMLModElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves reference information about the object.\\n     */\\n    cite: string;\\n    /**\\n     * Sets or retrieves the date and time of a modification to the object.\\n     */\\n    dateTime: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLModElement: {\\n    prototype: HTMLModElement;\\n    new(): HTMLModElement;\\n};\\n\\n/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements. */\\ninterface HTMLOListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    reversed: boolean;\\n    /**\\n     * The starting number.\\n     */\\n    start: number;\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOListElement: {\\n    prototype: HTMLOListElement;\\n    new(): HTMLOListElement;\\n};\\n\\n/** Provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <object> element, representing external resources. */\\ninterface HTMLObjectElement extends HTMLElement {\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\\n     */\\n    /** @deprecated */\\n    archive: string;\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Sets or retrieves the URL of the file containing the compiled Java class.\\n     */\\n    /** @deprecated */\\n    code: string;\\n    /**\\n     * Sets or retrieves the URL of the component.\\n     */\\n    /** @deprecated */\\n    codeBase: string;\\n    /**\\n     * Sets or retrieves the Internet media type for the code associated with the object.\\n     */\\n    /** @deprecated */\\n    codeType: string;\\n    /**\\n     * Retrieves the document object of the page or frame.\\n     */\\n    readonly contentDocument: Document | null;\\n    readonly contentWindow: WindowProxy | null;\\n    /**\\n     * Sets or retrieves the URL that references the data of the object.\\n     */\\n    data: string;\\n    /** @deprecated */\\n    declare: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    height: string;\\n    /** @deprecated */\\n    hspace: number;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves a message to be displayed while an object is loading.\\n     */\\n    /** @deprecated */\\n    standby: string;\\n    /**\\n     * Sets or retrieves the MIME type of the object.\\n     */\\n    type: string;\\n    /**\\n     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\\n     */\\n    useMap: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /** @deprecated */\\n    vspace: number;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    width: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    getSVGDocument(): Document | null;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLObjectElement: {\\n    prototype: HTMLObjectElement;\\n    new(): HTMLObjectElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements. */\\ninterface HTMLOptGroupElement extends HTMLElement {\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves a value that you can use to implement your own label functionality for the object.\\n     */\\n    label: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOptGroupElement: {\\n    prototype: HTMLOptGroupElement;\\n    new(): HTMLOptGroupElement;\\n};\\n\\n/** <option> elements and inherits all classes and methods of the HTMLElement interface. */\\ninterface HTMLOptionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the status of an option.\\n     */\\n    defaultSelected: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    /**\\n     * Sets or retrieves the ordinal position of an option in a list box.\\n     */\\n    readonly index: number;\\n    /**\\n     * Sets or retrieves a value that you can use to implement your own label functionality for the object.\\n     */\\n    label: string;\\n    /**\\n     * Sets or retrieves whether the option in the list box is the default item.\\n     */\\n    selected: boolean;\\n    /**\\n     * Sets or retrieves the text string specified by the option tag.\\n     */\\n    text: string;\\n    /**\\n     * Sets or retrieves the value which is returned to the server when the form control is submitted.\\n     */\\n    value: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOptionElement: {\\n    prototype: HTMLOptionElement;\\n    new(): HTMLOptionElement;\\n};\\n\\n/** HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the \"options\" property of select. */\\ninterface HTMLOptionsCollection extends HTMLCollectionOf<HTMLOptionElement> {\\n    /**\\n     * Returns the number of elements in the collection.\\n     * \\n     * When set to a smaller number, truncates the number of option elements in the corresponding container.\\n     * \\n     * When set to a greater number, adds new blank option elements to that container.\\n     */\\n    length: number;\\n    /**\\n     * Returns the index of the first selected item, if any, or −1 if there is no selected item.\\n     * \\n     * Can be set, to change the selection.\\n     */\\n    selectedIndex: number;\\n    /**\\n     * Inserts element before the node given by before.\\n     * \\n     * The before argument can be a number, in which case element is inserted before the item with that number, or an element from the collection, in which case element is inserted before that element.\\n     * \\n     * If before is omitted, null, or a number out of range, then element will be added at the end of the list.\\n     * \\n     * This method will throw a \"HierarchyRequestError\" DOMException if element is an ancestor of the element into which it is to be inserted.\\n     */\\n    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\\n    /**\\n     * Removes the item with index index from the collection.\\n     */\\n    remove(index: number): void;\\n}\\n\\ndeclare var HTMLOptionsCollection: {\\n    prototype: HTMLOptionsCollection;\\n    new(): HTMLOptionsCollection;\\n};\\n\\ninterface HTMLOrSVGElement {\\n    readonly dataset: DOMStringMap;\\n    nonce?: string;\\n    tabIndex: number;\\n    blur(): void;\\n    focus(options?: FocusOptions): void;\\n}\\n\\n/** Provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements. */\\ninterface HTMLOutputElement extends HTMLElement {\\n    defaultValue: string;\\n    readonly form: HTMLFormElement | null;\\n    readonly htmlFor: DOMTokenList;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    name: string;\\n    readonly type: string;\\n    readonly validationMessage: string;\\n    readonly validity: ValidityState;\\n    value: string;\\n    readonly willValidate: boolean;\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLOutputElement: {\\n    prototype: HTMLOutputElement;\\n    new(): HTMLOutputElement;\\n};\\n\\n/** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements. */\\ninterface HTMLParagraphElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLParagraphElement: {\\n    prototype: HTMLParagraphElement;\\n    new(): HTMLParagraphElement;\\n};\\n\\n/** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element. */\\ninterface HTMLParamElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the name of an input parameter for an element.\\n     */\\n    name: string;\\n    /**\\n     * Sets or retrieves the content type of the resource designated by the value attribute.\\n     */\\n    /** @deprecated */\\n    type: string;\\n    /**\\n     * Sets or retrieves the value of an input parameter for an element.\\n     */\\n    value: string;\\n    /**\\n     * Sets or retrieves the data type of the value attribute.\\n     */\\n    /** @deprecated */\\n    valueType: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLParamElement: {\\n    prototype: HTMLParamElement;\\n    new(): HTMLParamElement;\\n};\\n\\n/** A <picture> HTML element. It doesn\\'t implement specific properties or methods. */\\ninterface HTMLPictureElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLPictureElement: {\\n    prototype: HTMLPictureElement;\\n    new(): HTMLPictureElement;\\n};\\n\\n/** Exposes specific properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating a block of preformatted text (<pre>). */\\ninterface HTMLPreElement extends HTMLElement {\\n    /**\\n     * Sets or gets a value that you can use to implement your own width functionality for the object.\\n     */\\n    /** @deprecated */\\n    width: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLPreElement: {\\n    prototype: HTMLPreElement;\\n    new(): HTMLPreElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements. */\\ninterface HTMLProgressElement extends HTMLElement {\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Defines the maximum, or \"done\" value for a progress element.\\n     */\\n    max: number;\\n    /**\\n     * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).\\n     */\\n    readonly position: number;\\n    /**\\n     * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.\\n     */\\n    value: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLProgressElement: {\\n    prototype: HTMLProgressElement;\\n    new(): HTMLProgressElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element. */\\ninterface HTMLQuoteElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves reference information about the object.\\n     */\\n    cite: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLQuoteElement: {\\n    prototype: HTMLQuoteElement;\\n    new(): HTMLQuoteElement;\\n};\\n\\n/** HTML <script> elements expose the HTMLScriptElement interface, which provides special properties and methods for manipulating the behavior and execution of <script> elements (beyond the inherited HTMLElement interface). */\\ninterface HTMLScriptElement extends HTMLElement {\\n    async: boolean;\\n    /**\\n     * Sets or retrieves the character set used to encode the object.\\n     */\\n    /** @deprecated */\\n    charset: string;\\n    crossOrigin: string | null;\\n    /**\\n     * Sets or retrieves the status of the script.\\n     */\\n    defer: boolean;\\n    /**\\n     * Sets or retrieves the event for which the script is written.\\n     */\\n    /** @deprecated */\\n    event: string;\\n    /**\\n     * Sets or retrieves the object that is bound to the event script.\\n     */\\n    /** @deprecated */\\n    htmlFor: string;\\n    integrity: string;\\n    noModule: boolean;\\n    referrerPolicy: string;\\n    /**\\n     * Retrieves the URL to an external file that contains the source code or data.\\n     */\\n    src: string;\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    /**\\n     * Sets or retrieves the MIME type for the associated scripting engine.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLScriptElement: {\\n    prototype: HTMLScriptElement;\\n    new(): HTMLScriptElement;\\n};\\n\\n/** A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface. */\\ninterface HTMLSelectElement extends HTMLElement {\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the number of objects in a collection.\\n     */\\n    length: number;\\n    /**\\n     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\\n     */\\n    multiple: boolean;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    readonly options: HTMLOptionsCollection;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    /**\\n     * Sets or retrieves the index of the selected option in a select object.\\n     */\\n    selectedIndex: number;\\n    readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;\\n    /**\\n     * Sets or retrieves the number of rows in the list box.\\n     */\\n    size: number;\\n    /**\\n     * Retrieves the type of select control based on the value of the MULTIPLE attribute.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Sets or retrieves the value which is returned to the server when the form control is submitted.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Adds an element to the areas, controlRange, or options collection.\\n     * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.\\n     * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.\\n     */\\n    add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.\\n     * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.\\n     */\\n    item(index: number): Element | null;\\n    /**\\n     * Retrieves a select object or an object from an options collection.\\n     * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.\\n     */\\n    namedItem(name: string): HTMLOptionElement | null;\\n    /**\\n     * Removes an element from the collection.\\n     * @param index Number that specifies the zero-based index of the element to remove from the collection.\\n     */\\n    remove(): void;\\n    remove(index: number): void;\\n    reportValidity(): boolean;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [name: number]: HTMLOptionElement | HTMLOptGroupElement;\\n}\\n\\ndeclare var HTMLSelectElement: {\\n    prototype: HTMLSelectElement;\\n    new(): HTMLSelectElement;\\n};\\n\\ninterface HTMLSlotElement extends HTMLElement {\\n    name: string;\\n    assignedElements(options?: AssignedNodesOptions): Element[];\\n    assignedNodes(options?: AssignedNodesOptions): Node[];\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSlotElement: {\\n    prototype: HTMLSlotElement;\\n    new(): HTMLSlotElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements. */\\ninterface HTMLSourceElement extends HTMLElement {\\n    /**\\n     * Gets or sets the intended media type of the media source.\\n     */\\n    media: string;\\n    sizes: string;\\n    /**\\n     * The address or URL of the a media resource that is to be considered.\\n     */\\n    src: string;\\n    srcset: string;\\n    /**\\n     * Gets or sets the MIME type of a media resource.\\n     */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSourceElement: {\\n    prototype: HTMLSourceElement;\\n    new(): HTMLSourceElement;\\n};\\n\\n/** A <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */\\ninterface HTMLSpanElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLSpanElement: {\\n    prototype: HTMLSpanElement;\\n    new(): HTMLSpanElement;\\n};\\n\\n/** A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle. */\\ninterface HTMLStyleElement extends HTMLElement, LinkStyle {\\n    /**\\n     * Sets or retrieves the media type.\\n     */\\n    media: string;\\n    /**\\n     * Retrieves the CSS language in which the style sheet is written.\\n     */\\n    /** @deprecated */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLStyleElement: {\\n    prototype: HTMLStyleElement;\\n    new(): HTMLStyleElement;\\n};\\n\\n/** Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements. */\\ninterface HTMLTableCaptionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the alignment of the caption or legend.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableCaptionElement: {\\n    prototype: HTMLTableCaptionElement;\\n    new(): HTMLTableCaptionElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document. */\\ninterface HTMLTableCellElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves abbreviated text for the object.\\n     */\\n    abbr: string;\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /**\\n     * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.\\n     */\\n    /** @deprecated */\\n    axis: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Retrieves the position of the object in the cells collection of a row.\\n     */\\n    readonly cellIndex: number;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number columns in the table that the object should span.\\n     */\\n    colSpan: number;\\n    /**\\n     * Sets or retrieves a list of header cells that provide information for the object.\\n     */\\n    headers: string;\\n    /**\\n     * Sets or retrieves the height of the object.\\n     */\\n    /** @deprecated */\\n    height: string;\\n    /**\\n     * Sets or retrieves whether the browser automatically performs wordwrap.\\n     */\\n    /** @deprecated */\\n    noWrap: boolean;\\n    /**\\n     * Sets or retrieves how many rows in a table the cell should span.\\n     */\\n    rowSpan: number;\\n    /**\\n     * Sets or retrieves the group of cells in a table to which the object\\'s information applies.\\n     */\\n    scope: string;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableCellElement: {\\n    prototype: HTMLTableCellElement;\\n    new(): HTMLTableCellElement;\\n};\\n\\n/** Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements. */\\ninterface HTMLTableColElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves the alignment of the object relative to the display or table.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number of columns in the group.\\n     */\\n    span: number;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableColElement: {\\n    prototype: HTMLTableColElement;\\n    new(): HTMLTableColElement;\\n};\\n\\ninterface HTMLTableDataCellElement extends HTMLTableCellElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableDataCellElement: {\\n    prototype: HTMLTableDataCellElement;\\n    new(): HTMLTableDataCellElement;\\n};\\n\\n/** Provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document. */\\ninterface HTMLTableElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Sets or retrieves the width of the border to draw around the object.\\n     */\\n    /** @deprecated */\\n    border: string;\\n    /**\\n     * Retrieves the caption object of a table.\\n     */\\n    caption: HTMLTableCaptionElement | null;\\n    /**\\n     * Sets or retrieves the amount of space between the border of the cell and the content of the cell.\\n     */\\n    /** @deprecated */\\n    cellPadding: string;\\n    /**\\n     * Sets or retrieves the amount of space between cells in a table.\\n     */\\n    /** @deprecated */\\n    cellSpacing: string;\\n    /**\\n     * Sets or retrieves the way the border frame around the table is displayed.\\n     */\\n    /** @deprecated */\\n    frame: string;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\\n    /**\\n     * Sets or retrieves which dividing lines (inner borders) are displayed.\\n     */\\n    /** @deprecated */\\n    rules: string;\\n    /**\\n     * Sets or retrieves a description and/or structure of the object.\\n     */\\n    /** @deprecated */\\n    summary: string;\\n    /**\\n     * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.\\n     */\\n    readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;\\n    /**\\n     * Retrieves the tFoot object of the table.\\n     */\\n    tFoot: HTMLTableSectionElement | null;\\n    /**\\n     * Retrieves the tHead object of the table.\\n     */\\n    tHead: HTMLTableSectionElement | null;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    /** @deprecated */\\n    width: string;\\n    /**\\n     * Creates an empty caption element in the table.\\n     */\\n    createCaption(): HTMLTableCaptionElement;\\n    /**\\n     * Creates an empty tBody element in the table.\\n     */\\n    createTBody(): HTMLTableSectionElement;\\n    /**\\n     * Creates an empty tFoot element in the table.\\n     */\\n    createTFoot(): HTMLTableSectionElement;\\n    /**\\n     * Returns the tHead element object if successful, or null otherwise.\\n     */\\n    createTHead(): HTMLTableSectionElement;\\n    /**\\n     * Deletes the caption element and its contents from the table.\\n     */\\n    deleteCaption(): void;\\n    /**\\n     * Removes the specified row (tr) from the element and from the rows collection.\\n     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\\n     */\\n    deleteRow(index: number): void;\\n    /**\\n     * Deletes the tFoot element and its contents from the table.\\n     */\\n    deleteTFoot(): void;\\n    /**\\n     * Deletes the tHead element and its contents from the table.\\n     */\\n    deleteTHead(): void;\\n    /**\\n     * Creates a new row (tr) in the table, and adds the row to the rows collection.\\n     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\\n     */\\n    insertRow(index?: number): HTMLTableRowElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableElement: {\\n    prototype: HTMLTableElement;\\n    new(): HTMLTableElement;\\n};\\n\\ninterface HTMLTableHeaderCellElement extends HTMLTableCellElement {\\n    scope: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableHeaderCellElement: {\\n    prototype: HTMLTableHeaderCellElement;\\n    new(): HTMLTableHeaderCellElement;\\n};\\n\\n/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table. */\\ninterface HTMLTableRowElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves how the object is aligned with adjacent text.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    bgColor: string;\\n    /**\\n     * Retrieves a collection of all cells in the table row.\\n     */\\n    readonly cells: HTMLCollectionOf<HTMLTableDataCellElement | HTMLTableHeaderCellElement>;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Retrieves the position of the object in the rows collection for the table.\\n     */\\n    readonly rowIndex: number;\\n    /**\\n     * Retrieves the position of the object in the collection.\\n     */\\n    readonly sectionRowIndex: number;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Removes the specified cell from the table row, as well as from the cells collection.\\n     * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.\\n     */\\n    deleteCell(index: number): void;\\n    /**\\n     * Creates a new cell in the table row, and adds the cell to the cells collection.\\n     * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.\\n     */\\n    insertCell(index?: number): HTMLTableDataCellElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableRowElement: {\\n    prototype: HTMLTableRowElement;\\n    new(): HTMLTableRowElement;\\n};\\n\\n/** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table. */\\ninterface HTMLTableSectionElement extends HTMLElement {\\n    /**\\n     * Sets or retrieves a value that indicates the table alignment.\\n     */\\n    /** @deprecated */\\n    align: string;\\n    /** @deprecated */\\n    ch: string;\\n    /** @deprecated */\\n    chOff: string;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\\n    /** @deprecated */\\n    vAlign: string;\\n    /**\\n     * Removes the specified row (tr) from the element and from the rows collection.\\n     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\\n     */\\n    deleteRow(index: number): void;\\n    /**\\n     * Creates a new row (tr) in the table, and adds the row to the rows collection.\\n     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\\n     */\\n    insertRow(index?: number): HTMLTableRowElement;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTableSectionElement: {\\n    prototype: HTMLTableSectionElement;\\n    new(): HTMLTableSectionElement;\\n};\\n\\n/** Enables access to the contents of an HTML <template> element. */\\ninterface HTMLTemplateElement extends HTMLElement {\\n    readonly content: DocumentFragment;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTemplateElement: {\\n    prototype: HTMLTemplateElement;\\n    new(): HTMLTemplateElement;\\n};\\n\\n/** Provides special properties and methods for manipulating the layout and presentation of <textarea> elements. */\\ninterface HTMLTextAreaElement extends HTMLElement {\\n    autocomplete: string;\\n    /**\\n     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\\n     */\\n    autofocus: boolean;\\n    /**\\n     * Sets or retrieves the width of the object.\\n     */\\n    cols: number;\\n    /**\\n     * Sets or retrieves the initial contents of the object.\\n     */\\n    defaultValue: string;\\n    dirName: string;\\n    disabled: boolean;\\n    /**\\n     * Retrieves a reference to the form that the object is embedded in.\\n     */\\n    readonly form: HTMLFormElement | null;\\n    readonly labels: NodeListOf<HTMLLabelElement>;\\n    /**\\n     * Sets or retrieves the maximum number of characters that the user can enter in a text control.\\n     */\\n    maxLength: number;\\n    minLength: number;\\n    /**\\n     * Sets or retrieves the name of the object.\\n     */\\n    name: string;\\n    /**\\n     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\\n     */\\n    placeholder: string;\\n    /**\\n     * Sets or retrieves the value indicated whether the content of the object is read-only.\\n     */\\n    readOnly: boolean;\\n    /**\\n     * When present, marks an element that can\\'t be submitted without a value.\\n     */\\n    required: boolean;\\n    /**\\n     * Sets or retrieves the number of horizontal rows contained in the object.\\n     */\\n    rows: number;\\n    selectionDirection: string;\\n    /**\\n     * Gets or sets the end position or offset of a text selection.\\n     */\\n    selectionEnd: number;\\n    /**\\n     * Gets or sets the starting position or offset of a text selection.\\n     */\\n    selectionStart: number;\\n    readonly textLength: number;\\n    /**\\n     * Retrieves the type of control.\\n     */\\n    readonly type: string;\\n    /**\\n     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\\n     */\\n    readonly validationMessage: string;\\n    /**\\n     * Returns a  ValidityState object that represents the validity states of an element.\\n     */\\n    readonly validity: ValidityState;\\n    /**\\n     * Retrieves or sets the text in the entry field of the textArea element.\\n     */\\n    value: string;\\n    /**\\n     * Returns whether an element will successfully validate based on forms validation rules and constraints.\\n     */\\n    readonly willValidate: boolean;\\n    /**\\n     * Sets or retrieves how to handle wordwrapping in the object.\\n     */\\n    wrap: string;\\n    /**\\n     * Returns whether a form will validate when it is submitted, without having to submit it.\\n     */\\n    checkValidity(): boolean;\\n    reportValidity(): boolean;\\n    /**\\n     * Highlights the input area of a form element.\\n     */\\n    select(): void;\\n    /**\\n     * Sets a custom error message that is displayed when a form is submitted.\\n     * @param error Sets a custom error message that is displayed when a form is submitted.\\n     */\\n    setCustomValidity(error: string): void;\\n    setRangeText(replacement: string): void;\\n    setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\\n    /**\\n     * Sets the start and end positions of a selection in a text field.\\n     * @param start The offset into the text field for the start of the selection.\\n     * @param end The offset into the text field for the end of the selection.\\n     * @param direction The direction in which the selection is performed.\\n     */\\n    setSelectionRange(start: number, end: number, direction?: \"forward\" | \"backward\" | \"none\"): void;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTextAreaElement: {\\n    prototype: HTMLTextAreaElement;\\n    new(): HTMLTextAreaElement;\\n};\\n\\n/** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements. */\\ninterface HTMLTimeElement extends HTMLElement {\\n    dateTime: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTimeElement: {\\n    prototype: HTMLTimeElement;\\n    new(): HTMLTimeElement;\\n};\\n\\n/** Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface. */\\ninterface HTMLTitleElement extends HTMLElement {\\n    /**\\n     * Retrieves or sets the text of the object as a string.\\n     */\\n    text: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTitleElement: {\\n    prototype: HTMLTitleElement;\\n    new(): HTMLTitleElement;\\n};\\n\\n/** The HTMLTrackElement */\\ninterface HTMLTrackElement extends HTMLElement {\\n    default: boolean;\\n    kind: string;\\n    label: string;\\n    readonly readyState: number;\\n    src: string;\\n    srclang: string;\\n    readonly track: TextTrack;\\n    readonly ERROR: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLTrackElement: {\\n    prototype: HTMLTrackElement;\\n    new(): HTMLTrackElement;\\n    readonly ERROR: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n};\\n\\n/** Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements. */\\ninterface HTMLUListElement extends HTMLElement {\\n    /** @deprecated */\\n    compact: boolean;\\n    /** @deprecated */\\n    type: string;\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLUListElement: {\\n    prototype: HTMLUListElement;\\n    new(): HTMLUListElement;\\n};\\n\\n/** An invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods. */\\ninterface HTMLUnknownElement extends HTMLElement {\\n    addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLUnknownElement: {\\n    prototype: HTMLUnknownElement;\\n    new(): HTMLUnknownElement;\\n};\\n\\ninterface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {\\n    \"MSVideoFormatChanged\": Event;\\n    \"MSVideoFrameStepCompleted\": Event;\\n    \"MSVideoOptimalLayoutChanged\": Event;\\n}\\n\\n/** Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement. */\\ninterface HTMLVideoElement extends HTMLMediaElement {\\n    /**\\n     * Gets or sets the height of the video element.\\n     */\\n    height: number;\\n    msHorizontalMirror: boolean;\\n    readonly msIsLayoutOptimalForPlayback: boolean;\\n    readonly msIsStereo3D: boolean;\\n    msStereo3DPackingMode: string;\\n    msStereo3DRenderMode: string;\\n    msZoom: boolean;\\n    onMSVideoFormatChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    onMSVideoFrameStepCompleted: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    onMSVideoOptimalLayoutChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;\\n    /**\\n     * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.\\n     */\\n    poster: string;\\n    /**\\n     * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.\\n     */\\n    readonly videoHeight: number;\\n    /**\\n     * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.\\n     */\\n    readonly videoWidth: number;\\n    readonly webkitDisplayingFullscreen: boolean;\\n    readonly webkitSupportsFullscreen: boolean;\\n    /**\\n     * Gets or sets the width of the video element.\\n     */\\n    width: number;\\n    getVideoPlaybackQuality(): VideoPlaybackQuality;\\n    msFrameStep(forward: boolean): void;\\n    msInsertVideoEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\\n    msSetVideoRectangle(left: number, top: number, right: number, bottom: number): void;\\n    webkitEnterFullScreen(): void;\\n    webkitEnterFullscreen(): void;\\n    webkitExitFullScreen(): void;\\n    webkitExitFullscreen(): void;\\n    addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var HTMLVideoElement: {\\n    prototype: HTMLVideoElement;\\n    new(): HTMLVideoElement;\\n};\\n\\n/** Events that fire when the fragment identifier of the URL has changed. */\\ninterface HashChangeEvent extends Event {\\n    readonly newURL: string;\\n    readonly oldURL: string;\\n}\\n\\ndeclare var HashChangeEvent: {\\n    prototype: HashChangeEvent;\\n    new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;\\n};\\n\\n/** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */\\ninterface Headers {\\n    append(name: string, value: string): void;\\n    delete(name: string): void;\\n    get(name: string): string | null;\\n    has(name: string): boolean;\\n    set(name: string, value: string): void;\\n    forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\\n}\\n\\ndeclare var Headers: {\\n    prototype: Headers;\\n    new(init?: HeadersInit): Headers;\\n};\\n\\n/** Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in. */\\ninterface History {\\n    readonly length: number;\\n    scrollRestoration: ScrollRestoration;\\n    readonly state: any;\\n    back(): void;\\n    forward(): void;\\n    go(delta?: number): void;\\n    pushState(data: any, title: string, url?: string | null): void;\\n    replaceState(data: any, title: string, url?: string | null): void;\\n}\\n\\ndeclare var History: {\\n    prototype: History;\\n    new(): History;\\n};\\n\\ninterface HkdfCtrParams extends Algorithm {\\n    context: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n    hash: string | Algorithm;\\n    label: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer;\\n}\\n\\ninterface IDBArrayKey extends Array<IDBValidKey> {\\n}\\n\\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. */\\ninterface IDBCursor {\\n    /**\\n     * Returns the direction (\"next\", \"nextunique\", \"prev\" or \"prevunique\") of the cursor.\\n     */\\n    readonly direction: IDBCursorDirection;\\n    /**\\n     * Returns the key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished.\\n     */\\n    readonly key: IDBValidKey;\\n    /**\\n     * Returns the effective key of the cursor. Throws a \"InvalidStateError\" DOMException if the cursor is advancing or is finished.\\n     */\\n    readonly primaryKey: IDBValidKey;\\n    /**\\n     * Returns the IDBObjectStore or IDBIndex the cursor was opened from.\\n     */\\n    readonly source: IDBObjectStore | IDBIndex;\\n    /**\\n     * Advances the cursor through the next count records in range.\\n     */\\n    advance(count: number): void;\\n    /**\\n     * Advances the cursor to the next record in range.\\n     */\\n    continue(key?: IDBValidKey): void;\\n    /**\\n     * Advances the cursor to the next record in range matching or after key and primaryKey. Throws an \"InvalidAccessError\" DOMException if the source is not an index.\\n     */\\n    continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\\n    /**\\n     * Delete the record pointed at by the cursor with a new value.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    delete(): IDBRequest<undefined>;\\n    /**\\n     * Updated the record pointed at by the cursor with a new value.\\n     * \\n     * Throws a \"DataError\" DOMException if the effective object store uses in-line keys and the key would have changed.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    update(value: any): IDBRequest<IDBValidKey>;\\n}\\n\\ndeclare var IDBCursor: {\\n    prototype: IDBCursor;\\n    new(): IDBCursor;\\n};\\n\\n/** This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property. */\\ninterface IDBCursorWithValue extends IDBCursor {\\n    /**\\n     * Returns the cursor\\'s current value.\\n     */\\n    readonly value: any;\\n}\\n\\ndeclare var IDBCursorWithValue: {\\n    prototype: IDBCursorWithValue;\\n    new(): IDBCursorWithValue;\\n};\\n\\ninterface IDBDatabaseEventMap {\\n    \"abort\": Event;\\n    \"close\": Event;\\n    \"error\": Event;\\n    \"versionchange\": IDBVersionChangeEvent;\\n}\\n\\n/** This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database. */\\ninterface IDBDatabase extends EventTarget {\\n    /**\\n     * Returns the name of the database.\\n     */\\n    readonly name: string;\\n    /**\\n     * Returns a list of the names of object stores in the database.\\n     */\\n    readonly objectStoreNames: DOMStringList;\\n    onabort: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onclose: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onerror: ((this: IDBDatabase, ev: Event) => any) | null;\\n    onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\\n    /**\\n     * Returns the version of the database.\\n     */\\n    readonly version: number;\\n    /**\\n     * Closes the connection once all running transactions have finished.\\n     */\\n    close(): void;\\n    /**\\n     * Creates a new object store with the given name and options and returns a new IDBObjectStore.\\n     * \\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;\\n    /**\\n     * Deletes the object store with the given name.\\n     * \\n     * Throws a \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    deleteObjectStore(name: string): void;\\n    /**\\n     * Returns a new transaction with the given mode (\"readonly\" or \"readwrite\") and scope which can be a single object store name or an array of names.\\n     */\\n    transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction;\\n    addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBDatabase: {\\n    prototype: IDBDatabase;\\n    new(): IDBDatabase;\\n};\\n\\ninterface IDBEnvironment {\\n    readonly indexedDB: IDBFactory;\\n}\\n\\n/** In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.) */\\ninterface IDBFactory {\\n    /**\\n     * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.\\n     * \\n     * Throws a \"DataError\" DOMException if either input is not a valid key.\\n     */\\n    cmp(first: any, second: any): number;\\n    /**\\n     * Attempts to delete the named database. If the database already exists and there are open connections that don\\'t close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request\\'s result will be null.\\n     */\\n    deleteDatabase(name: string): IDBOpenDBRequest;\\n    /**\\n     * Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request\\'s result will be the connection.\\n     */\\n    open(name: string, version?: number): IDBOpenDBRequest;\\n}\\n\\ndeclare var IDBFactory: {\\n    prototype: IDBFactory;\\n    new(): IDBFactory;\\n};\\n\\n/** IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data. */\\ninterface IDBIndex {\\n    readonly keyPath: string | string[];\\n    readonly multiEntry: boolean;\\n    /**\\n     * Returns the name of the index.\\n     */\\n    name: string;\\n    /**\\n     * Returns the IDBObjectStore the index belongs to.\\n     */\\n    readonly objectStore: IDBObjectStore;\\n    readonly unique: boolean;\\n    /**\\n     * Retrieves the number of records matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the count.\\n     */\\n    count(key?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\\n    /**\\n     * Retrieves the value of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the value, or undefined if there was no matching record.\\n     */\\n    get(key: IDBValidKey | IDBKeyRange): IDBRequest<any | undefined>;\\n    /**\\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the values.\\n     */\\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\\n    /**\\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the keys.\\n     */\\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\\n    /**\\n     * Retrieves the key of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the key, or undefined if there was no matching record.\\n     */\\n    getKey(key: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\\n    /**\\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursorWithValue, or null if there were no matching records.\\n     */\\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\\n    /**\\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursor, or null if there were no matching records.\\n     */\\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\\n}\\n\\ndeclare var IDBIndex: {\\n    prototype: IDBIndex;\\n    new(): IDBIndex;\\n};\\n\\n/** A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs: */\\ninterface IDBKeyRange {\\n    /**\\n     * Returns lower bound, or undefined if none.\\n     */\\n    readonly lower: any;\\n    /**\\n     * Returns true if the lower open flag is set, and false otherwise.\\n     */\\n    readonly lowerOpen: boolean;\\n    /**\\n     * Returns upper bound, or undefined if none.\\n     */\\n    readonly upper: any;\\n    /**\\n     * Returns true if the upper open flag is set, and false otherwise.\\n     */\\n    readonly upperOpen: boolean;\\n    /**\\n     * Returns true if key is included in the range, and false otherwise.\\n     */\\n    includes(key: any): boolean;\\n}\\n\\ndeclare var IDBKeyRange: {\\n    prototype: IDBKeyRange;\\n    new(): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range.\\n     */\\n    bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range.\\n     */\\n    lowerBound(lower: any, open?: boolean): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange spanning only key.\\n     */\\n    only(value: any): IDBKeyRange;\\n    /**\\n     * Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range.\\n     */\\n    upperBound(upper: any, open?: boolean): IDBKeyRange;\\n};\\n\\n/** This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.) */\\ninterface IDBObjectStore {\\n    /**\\n     * Returns true if the store has a key generator, and false otherwise.\\n     */\\n    readonly autoIncrement: boolean;\\n    /**\\n     * Returns a list of the names of indexes in the store.\\n     */\\n    readonly indexNames: DOMStringList;\\n    /**\\n     * Returns the key path of the store, or null if none.\\n     */\\n    readonly keyPath: string | string[];\\n    /**\\n     * Returns the name of the store.\\n     */\\n    name: string;\\n    /**\\n     * Returns the associated transaction.\\n     */\\n    readonly transaction: IDBTransaction;\\n    /**\\n     * Adds or updates a record in store with the given value and key.\\n     * \\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\\n     * \\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\\'s error set to a \"ConstraintError\" DOMException.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\\n    /**\\n     * Deletes all records in store.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    clear(): IDBRequest<undefined>;\\n    /**\\n     * Retrieves the number of records matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the count.\\n     */\\n    count(key?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\\n    /**\\n     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a \"ConstraintError\" DOMException.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\\n    /**\\n     * Deletes records in store with the given key or in the given key range in query.\\n     * \\n     * If successful, request\\'s result will be undefined.\\n     */\\n    delete(key: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;\\n    /**\\n     * Deletes the index in store with the given name.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if not called within an upgrade transaction.\\n     */\\n    deleteIndex(name: string): void;\\n    /**\\n     * Retrieves the value of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the value, or undefined if there was no matching record.\\n     */\\n    get(query: IDBValidKey | IDBKeyRange): IDBRequest<any | undefined>;\\n    /**\\n     * Retrieves the values of the records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the values.\\n     */\\n    getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\\n    /**\\n     * Retrieves the keys of records matching the given key or key range in query (up to count if given).\\n     * \\n     * If successful, request\\'s result will be an Array of the keys.\\n     */\\n    getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\\n    /**\\n     * Retrieves the key of the first record matching the given key or key range in query.\\n     * \\n     * If successful, request\\'s result will be the key, or undefined if there was no matching record.\\n     */\\n    getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\\n    index(name: string): IDBIndex;\\n    /**\\n     * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.\\n     */\\n    openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\\n    /**\\n     * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.\\n     * \\n     * If successful, request\\'s result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.\\n     */\\n    openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\\n    /**\\n     * Adds or updates a record in store with the given value and key.\\n     * \\n     * If the store uses in-line keys and key is specified a \"DataError\" DOMException will be thrown.\\n     * \\n     * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\\'s error set to a \"ConstraintError\" DOMException.\\n     * \\n     * If successful, request\\'s result will be the record\\'s key.\\n     */\\n    put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\\n}\\n\\ndeclare var IDBObjectStore: {\\n    prototype: IDBObjectStore;\\n    new(): IDBObjectStore;\\n};\\n\\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\\n    \"blocked\": Event;\\n    \"upgradeneeded\": IDBVersionChangeEvent;\\n}\\n\\n/** Also inherits methods from its parents IDBRequest and EventTarget. */\\ninterface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {\\n    onblocked: ((this: IDBOpenDBRequest, ev: Event) => any) | null;\\n    onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\\n    addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBOpenDBRequest: {\\n    prototype: IDBOpenDBRequest;\\n    new(): IDBOpenDBRequest;\\n};\\n\\ninterface IDBRequestEventMap {\\n    \"error\": Event;\\n    \"success\": Event;\\n}\\n\\n/** The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance. */\\ninterface IDBRequest<T = any> extends EventTarget {\\n    /**\\n     * When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a \"InvalidStateError\" DOMException if the request is still pending.\\n     */\\n    readonly error: DOMException | null;\\n    onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;\\n    onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;\\n    /**\\n     * Returns \"pending\" until a request is complete, then returns \"done\".\\n     */\\n    readonly readyState: IDBRequestReadyState;\\n    /**\\n     * When a request is completed, returns the result, or undefined if the request failed. Throws a \"InvalidStateError\" DOMException if the request is still pending.\\n     */\\n    readonly result: T;\\n    /**\\n     * Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request.\\n     */\\n    readonly source: IDBObjectStore | IDBIndex | IDBCursor;\\n    /**\\n     * Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise.\\n     */\\n    readonly transaction: IDBTransaction | null;\\n    addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBRequest: {\\n    prototype: IDBRequest;\\n    new(): IDBRequest;\\n};\\n\\ninterface IDBTransactionEventMap {\\n    \"abort\": Event;\\n    \"complete\": Event;\\n    \"error\": Event;\\n}\\n\\ninterface IDBTransaction extends EventTarget {\\n    /**\\n     * Returns the transaction\\'s connection.\\n     */\\n    readonly db: IDBDatabase;\\n    /**\\n     * If the transaction was aborted, returns the error (a DOMException) providing the reason.\\n     */\\n    readonly error: DOMException;\\n    /**\\n     * Returns the mode the transaction was created with (\"readonly\" or \"readwrite\"), or \"versionchange\" for an upgrade transaction.\\n     */\\n    readonly mode: IDBTransactionMode;\\n    /**\\n     * Returns a list of the names of object stores in the transaction\\'s scope. For an upgrade transaction this is all object stores in the database.\\n     */\\n    readonly objectStoreNames: DOMStringList;\\n    onabort: ((this: IDBTransaction, ev: Event) => any) | null;\\n    oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\\n    onerror: ((this: IDBTransaction, ev: Event) => any) | null;\\n    /**\\n     * Aborts the transaction. All pending requests will fail with a \"AbortError\" DOMException and all changes made to the database will be reverted.\\n     */\\n    abort(): void;\\n    /**\\n     * Returns an IDBObjectStore in the transaction\\'s scope.\\n     */\\n    objectStore(name: string): IDBObjectStore;\\n    addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var IDBTransaction: {\\n    prototype: IDBTransaction;\\n    new(): IDBTransaction;\\n};\\n\\n/** This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function. */\\ninterface IDBVersionChangeEvent extends Event {\\n    readonly newVersion: number | null;\\n    readonly oldVersion: number;\\n}\\n\\ndeclare var IDBVersionChangeEvent: {\\n    prototype: IDBVersionChangeEvent;\\n    new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\\n};\\n\\n/** The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR)  filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed. */\\ninterface IIRFilterNode extends AudioNode {\\n    getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\\n}\\n\\ndeclare var IIRFilterNode: {\\n    prototype: IIRFilterNode;\\n    new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;\\n};\\n\\ninterface ImageBitmap {\\n    /**\\n     * Returns the intrinsic height of the image, in CSS pixels.\\n     */\\n    readonly height: number;\\n    /**\\n     * Returns the intrinsic width of the image, in CSS pixels.\\n     */\\n    readonly width: number;\\n    /**\\n     * Releases imageBitmap\\'s underlying bitmap data.\\n     */\\n    close(): void;\\n}\\n\\ndeclare var ImageBitmap: {\\n    prototype: ImageBitmap;\\n    new(): ImageBitmap;\\n};\\n\\ninterface ImageBitmapOptions {\\n    colorSpaceConversion?: \"none\" | \"default\";\\n    imageOrientation?: \"none\" | \"flipY\";\\n    premultiplyAlpha?: \"none\" | \"premultiply\" | \"default\";\\n    resizeHeight?: number;\\n    resizeQuality?: \"pixelated\" | \"low\" | \"medium\" | \"high\";\\n    resizeWidth?: number;\\n}\\n\\ninterface ImageBitmapRenderingContext {\\n    /**\\n     * Returns the canvas element that the context is bound to.\\n     */\\n    readonly canvas: HTMLCanvasElement | OffscreenCanvas;\\n    /**\\n     * Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound.\\n     */\\n    transferFromImageBitmap(bitmap: ImageBitmap | null): void;\\n}\\n\\ndeclare var ImageBitmapRenderingContext: {\\n    prototype: ImageBitmapRenderingContext;\\n    new(): ImageBitmapRenderingContext;\\n};\\n\\n/** The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */\\ninterface ImageData {\\n    /**\\n     * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.\\n     */\\n    readonly data: Uint8ClampedArray;\\n    /**\\n     * Returns the actual dimensions of the data in the ImageData object, in pixels.\\n     */\\n    readonly height: number;\\n    /**\\n     * Returns the actual dimensions of the data in the ImageData object, in pixels.\\n     */\\n    readonly width: number;\\n}\\n\\ndeclare var ImageData: {\\n    prototype: ImageData;\\n    new(width: number, height: number): ImageData;\\n    new(array: Uint8ClampedArray, width: number, height?: number): ImageData;\\n};\\n\\ninterface InnerHTML {\\n    innerHTML: string;\\n}\\n\\ninterface InputDeviceInfo extends MediaDeviceInfo {\\n    getCapabilities(): MediaTrackCapabilities;\\n}\\n\\ndeclare var InputDeviceInfo: {\\n    prototype: InputDeviceInfo;\\n    new(): InputDeviceInfo;\\n};\\n\\ninterface InputEvent extends UIEvent {\\n    readonly data: string | null;\\n    readonly inputType: string;\\n    readonly isComposing: boolean;\\n}\\n\\ndeclare var InputEvent: {\\n    prototype: InputEvent;\\n    new(type: string, eventInitDict?: InputEventInit): InputEvent;\\n};\\n\\n/** provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document\\'s viewport. */\\ninterface IntersectionObserver {\\n    readonly root: Element | null;\\n    readonly rootMargin: string;\\n    readonly thresholds: ReadonlyArray<number>;\\n    disconnect(): void;\\n    observe(target: Element): void;\\n    takeRecords(): IntersectionObserverEntry[];\\n    unobserve(target: Element): void;\\n}\\n\\ndeclare var IntersectionObserver: {\\n    prototype: IntersectionObserver;\\n    new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;\\n};\\n\\n/** This Intersection Observer API interface describes the intersection between the target element and its root container at a specific moment of transition. */\\ninterface IntersectionObserverEntry {\\n    readonly boundingClientRect: DOMRectReadOnly;\\n    readonly intersectionRatio: number;\\n    readonly intersectionRect: DOMRectReadOnly;\\n    readonly isIntersecting: boolean;\\n    readonly rootBounds: DOMRectReadOnly | null;\\n    readonly target: Element;\\n    readonly time: number;\\n}\\n\\ndeclare var IntersectionObserverEntry: {\\n    prototype: IntersectionObserverEntry;\\n    new(intersectionObserverEntryInit: IntersectionObserverEntryInit): IntersectionObserverEntry;\\n};\\n\\n/** KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. */\\ninterface KeyboardEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    /** @deprecated */\\n    char: string;\\n    /** @deprecated */\\n    readonly charCode: number;\\n    readonly code: string;\\n    readonly ctrlKey: boolean;\\n    readonly isComposing: boolean;\\n    readonly key: string;\\n    /** @deprecated */\\n    readonly keyCode: number;\\n    readonly location: number;\\n    readonly metaKey: boolean;\\n    readonly repeat: boolean;\\n    readonly shiftKey: boolean;\\n    getModifierState(keyArg: string): boolean;\\n    readonly DOM_KEY_LOCATION_LEFT: number;\\n    readonly DOM_KEY_LOCATION_NUMPAD: number;\\n    readonly DOM_KEY_LOCATION_RIGHT: number;\\n    readonly DOM_KEY_LOCATION_STANDARD: number;\\n}\\n\\ndeclare var KeyboardEvent: {\\n    prototype: KeyboardEvent;\\n    new(type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;\\n    readonly DOM_KEY_LOCATION_LEFT: number;\\n    readonly DOM_KEY_LOCATION_NUMPAD: number;\\n    readonly DOM_KEY_LOCATION_RIGHT: number;\\n    readonly DOM_KEY_LOCATION_STANDARD: number;\\n};\\n\\ninterface KeyframeEffect extends AnimationEffect {\\n    composite: CompositeOperation;\\n    iterationComposite: IterationCompositeOperation;\\n    target: Element | null;\\n    getKeyframes(): ComputedKeyframe[];\\n    setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void;\\n}\\n\\ndeclare var KeyframeEffect: {\\n    prototype: KeyframeEffect;\\n    new(target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;\\n    new(source: KeyframeEffect): KeyframeEffect;\\n};\\n\\ninterface LinkStyle {\\n    readonly sheet: StyleSheet | null;\\n}\\n\\ninterface ListeningStateChangedEvent extends Event {\\n    readonly label: string;\\n    readonly state: ListeningState;\\n}\\n\\ndeclare var ListeningStateChangedEvent: {\\n    prototype: ListeningStateChangedEvent;\\n    new(): ListeningStateChangedEvent;\\n};\\n\\n/** The location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively. */\\ninterface Location {\\n    /**\\n     * Returns a DOMStringList object listing the origins of the ancestor browsing contexts, from the parent browsing context to the top-level browsing context.\\n     */\\n    readonly ancestorOrigins: DOMStringList;\\n    /**\\n     * Returns the Location object\\'s URL\\'s fragment (includes leading \"#\" if non-empty).\\n     * \\n     * Can be set, to navigate to the same URL with a changed fragment (ignores leading \"#\").\\n     */\\n    hash: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s host and port (if different from the default port for the scheme).\\n     * \\n     * Can be set, to navigate to the same URL with a changed host and port.\\n     */\\n    host: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s host.\\n     * \\n     * Can be set, to navigate to the same URL with a changed host.\\n     */\\n    hostname: string;\\n    /**\\n     * Returns the Location object\\'s URL.\\n     * \\n     * Can be set, to navigate to the given URL.\\n     */\\n    href: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s origin.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s path.\\n     * \\n     * Can be set, to navigate to the same URL with a changed path.\\n     */\\n    pathname: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s port.\\n     * \\n     * Can be set, to navigate to the same URL with a changed port.\\n     */\\n    port: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s scheme.\\n     * \\n     * Can be set, to navigate to the same URL with a changed scheme.\\n     */\\n    protocol: string;\\n    /**\\n     * Returns the Location object\\'s URL\\'s query (includes leading \"?\" if non-empty).\\n     * \\n     * Can be set, to navigate to the same URL with a changed query (ignores leading \"?\").\\n     */\\n    search: string;\\n    /**\\n     * Navigates to the given URL.\\n     */\\n    assign(url: string): void;\\n    /**\\n     * Reloads the current page.\\n     */\\n    reload(): void;\\n    /** @deprecated */\\n    reload(forcedReload: boolean): void;\\n    /**\\n     * Removes the current page from the session history and navigates to the given URL.\\n     */\\n    replace(url: string): void;\\n}\\n\\ndeclare var Location: {\\n    prototype: Location;\\n    new(): Location;\\n};\\n\\ninterface MSAssertion {\\n    readonly id: string;\\n    readonly type: MSCredentialType;\\n}\\n\\ndeclare var MSAssertion: {\\n    prototype: MSAssertion;\\n    new(): MSAssertion;\\n};\\n\\ninterface MSBlobBuilder {\\n    append(data: any, endings?: string): void;\\n    getBlob(contentType?: string): Blob;\\n}\\n\\ndeclare var MSBlobBuilder: {\\n    prototype: MSBlobBuilder;\\n    new(): MSBlobBuilder;\\n};\\n\\ninterface MSFIDOCredentialAssertion extends MSAssertion {\\n    readonly algorithm: string | Algorithm;\\n    readonly attestation: any;\\n    readonly publicKey: string;\\n    readonly transportHints: MSTransportType[];\\n}\\n\\ndeclare var MSFIDOCredentialAssertion: {\\n    prototype: MSFIDOCredentialAssertion;\\n    new(): MSFIDOCredentialAssertion;\\n};\\n\\ninterface MSFIDOSignature {\\n    readonly authnrData: string;\\n    readonly clientData: string;\\n    readonly signature: string;\\n}\\n\\ndeclare var MSFIDOSignature: {\\n    prototype: MSFIDOSignature;\\n    new(): MSFIDOSignature;\\n};\\n\\ninterface MSFIDOSignatureAssertion extends MSAssertion {\\n    readonly signature: MSFIDOSignature;\\n}\\n\\ndeclare var MSFIDOSignatureAssertion: {\\n    prototype: MSFIDOSignatureAssertion;\\n    new(): MSFIDOSignatureAssertion;\\n};\\n\\ninterface MSFileSaver {\\n    msSaveBlob(blob: any, defaultName?: string): boolean;\\n    msSaveOrOpenBlob(blob: any, defaultName?: string): boolean;\\n}\\n\\ninterface MSGesture {\\n    target: Element;\\n    addPointer(pointerId: number): void;\\n    stop(): void;\\n}\\n\\ndeclare var MSGesture: {\\n    prototype: MSGesture;\\n    new(): MSGesture;\\n};\\n\\n/** The MSGestureEvent is a proprietary interface specific to Internet Explorer and Microsoft Edge which represents events that occur due to touch gestures. Events using this interface include MSGestureStart, MSGestureEnd, MSGestureTap, MSGestureHold, MSGestureChange, and MSInertiaStart. */\\ninterface MSGestureEvent extends UIEvent {\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly expansion: number;\\n    readonly gestureObject: any;\\n    readonly hwTimestamp: number;\\n    readonly offsetX: number;\\n    readonly offsetY: number;\\n    readonly rotation: number;\\n    readonly scale: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly translationX: number;\\n    readonly translationY: number;\\n    readonly velocityAngular: number;\\n    readonly velocityExpansion: number;\\n    readonly velocityX: number;\\n    readonly velocityY: number;\\n    initGestureEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, offsetXArg: number, offsetYArg: number, translationXArg: number, translationYArg: number, scaleArg: number, expansionArg: number, rotationArg: number, velocityXArg: number, velocityYArg: number, velocityExpansionArg: number, velocityAngularArg: number, hwTimestampArg: number): void;\\n    readonly MSGESTURE_FLAG_BEGIN: number;\\n    readonly MSGESTURE_FLAG_CANCEL: number;\\n    readonly MSGESTURE_FLAG_END: number;\\n    readonly MSGESTURE_FLAG_INERTIA: number;\\n    readonly MSGESTURE_FLAG_NONE: number;\\n}\\n\\ndeclare var MSGestureEvent: {\\n    prototype: MSGestureEvent;\\n    new(): MSGestureEvent;\\n    readonly MSGESTURE_FLAG_BEGIN: number;\\n    readonly MSGESTURE_FLAG_CANCEL: number;\\n    readonly MSGESTURE_FLAG_END: number;\\n    readonly MSGESTURE_FLAG_INERTIA: number;\\n    readonly MSGESTURE_FLAG_NONE: number;\\n};\\n\\n/** The msGraphicsTrust() constructor returns an object that provides properties for info on protected video playback. */\\ninterface MSGraphicsTrust {\\n    readonly constrictionActive: boolean;\\n    readonly status: string;\\n}\\n\\ndeclare var MSGraphicsTrust: {\\n    prototype: MSGraphicsTrust;\\n    new(): MSGraphicsTrust;\\n};\\n\\ninterface MSInputMethodContextEventMap {\\n    \"MSCandidateWindowHide\": Event;\\n    \"MSCandidateWindowShow\": Event;\\n    \"MSCandidateWindowUpdate\": Event;\\n}\\n\\ninterface MSInputMethodContext extends EventTarget {\\n    readonly compositionEndOffset: number;\\n    readonly compositionStartOffset: number;\\n    oncandidatewindowhide: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    oncandidatewindowshow: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    oncandidatewindowupdate: ((this: MSInputMethodContext, ev: Event) => any) | null;\\n    readonly target: HTMLElement;\\n    getCandidateWindowClientRect(): ClientRect;\\n    getCompositionAlternatives(): string[];\\n    hasComposition(): boolean;\\n    isCandidateWindowVisible(): boolean;\\n    addEventListener<K extends keyof MSInputMethodContextEventMap>(type: K, listener: (this: MSInputMethodContext, ev: MSInputMethodContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MSInputMethodContextEventMap>(type: K, listener: (this: MSInputMethodContext, ev: MSInputMethodContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MSInputMethodContext: {\\n    prototype: MSInputMethodContext;\\n    new(): MSInputMethodContext;\\n};\\n\\ninterface MSMediaKeyError {\\n    readonly code: number;\\n    readonly systemCode: number;\\n    readonly MS_MEDIA_KEYERR_CLIENT: number;\\n    readonly MS_MEDIA_KEYERR_DOMAIN: number;\\n    readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\\n    readonly MS_MEDIA_KEYERR_OUTPUT: number;\\n    readonly MS_MEDIA_KEYERR_SERVICE: number;\\n    readonly MS_MEDIA_KEYERR_UNKNOWN: number;\\n}\\n\\ndeclare var MSMediaKeyError: {\\n    prototype: MSMediaKeyError;\\n    new(): MSMediaKeyError;\\n    readonly MS_MEDIA_KEYERR_CLIENT: number;\\n    readonly MS_MEDIA_KEYERR_DOMAIN: number;\\n    readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\\n    readonly MS_MEDIA_KEYERR_OUTPUT: number;\\n    readonly MS_MEDIA_KEYERR_SERVICE: number;\\n    readonly MS_MEDIA_KEYERR_UNKNOWN: number;\\n};\\n\\ninterface MSMediaKeyMessageEvent extends Event {\\n    readonly destinationURL: string | null;\\n    readonly message: Uint8Array;\\n}\\n\\ndeclare var MSMediaKeyMessageEvent: {\\n    prototype: MSMediaKeyMessageEvent;\\n    new(): MSMediaKeyMessageEvent;\\n};\\n\\ninterface MSMediaKeyNeededEvent extends Event {\\n    readonly initData: Uint8Array | null;\\n}\\n\\ndeclare var MSMediaKeyNeededEvent: {\\n    prototype: MSMediaKeyNeededEvent;\\n    new(): MSMediaKeyNeededEvent;\\n};\\n\\ninterface MSMediaKeySession extends EventTarget {\\n    readonly error: MSMediaKeyError | null;\\n    readonly keySystem: string;\\n    readonly sessionId: string;\\n    close(): void;\\n    update(key: Uint8Array): void;\\n}\\n\\ndeclare var MSMediaKeySession: {\\n    prototype: MSMediaKeySession;\\n    new(): MSMediaKeySession;\\n};\\n\\ninterface MSMediaKeys {\\n    readonly keySystem: string;\\n    createSession(type: string, initData: Uint8Array, cdmData?: Uint8Array | null): MSMediaKeySession;\\n}\\n\\ndeclare var MSMediaKeys: {\\n    prototype: MSMediaKeys;\\n    new(keySystem: string): MSMediaKeys;\\n    isTypeSupported(keySystem: string, type?: string | null): boolean;\\n    isTypeSupportedWithFeatures(keySystem: string, type?: string | null): string;\\n};\\n\\ninterface MSNavigatorDoNotTrack {\\n    confirmSiteSpecificTrackingException(args: ConfirmSiteSpecificExceptionsInformation): boolean;\\n    confirmWebWideTrackingException(args: ExceptionInformation): boolean;\\n    removeSiteSpecificTrackingException(args: ExceptionInformation): void;\\n    removeWebWideTrackingException(args: ExceptionInformation): void;\\n    storeSiteSpecificTrackingException(args: StoreSiteSpecificExceptionsInformation): void;\\n    storeWebWideTrackingException(args: StoreExceptionsInformation): void;\\n}\\n\\ninterface MSPointerEvent extends MouseEvent {\\n    readonly currentPoint: any;\\n    readonly height: number;\\n    readonly hwTimestamp: number;\\n    readonly intermediatePoints: any;\\n    readonly isPrimary: boolean;\\n    readonly pointerId: number;\\n    readonly pointerType: any;\\n    readonly pressure: number;\\n    readonly rotation: number;\\n    readonly tiltX: number;\\n    readonly tiltY: number;\\n    readonly width: number;\\n    getCurrentPoint(element: Element): void;\\n    getIntermediatePoints(element: Element): void;\\n    initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;\\n}\\n\\ndeclare var MSPointerEvent: {\\n    prototype: MSPointerEvent;\\n    new(typeArg: string, eventInitDict?: PointerEventInit): MSPointerEvent;\\n};\\n\\ninterface MSStream {\\n    readonly type: string;\\n    msClose(): void;\\n    msDetachStream(): any;\\n}\\n\\ndeclare var MSStream: {\\n    prototype: MSStream;\\n    new(): MSStream;\\n};\\n\\n/** The MediaDevicesInfo interface contains information that describes a single media input or output device. */\\ninterface MediaDeviceInfo {\\n    readonly deviceId: string;\\n    readonly groupId: string;\\n    readonly kind: MediaDeviceKind;\\n    readonly label: string;\\n    toJSON(): any;\\n}\\n\\ndeclare var MediaDeviceInfo: {\\n    prototype: MediaDeviceInfo;\\n    new(): MediaDeviceInfo;\\n};\\n\\ninterface MediaDevicesEventMap {\\n    \"devicechange\": Event;\\n}\\n\\n/** Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data. */\\ninterface MediaDevices extends EventTarget {\\n    ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;\\n    enumerateDevices(): Promise<MediaDeviceInfo[]>;\\n    getSupportedConstraints(): MediaTrackSupportedConstraints;\\n    getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;\\n    addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaDevices: {\\n    prototype: MediaDevices;\\n    new(): MediaDevices;\\n};\\n\\n/** A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio. */\\ninterface MediaElementAudioSourceNode extends AudioNode {\\n    readonly mediaElement: HTMLMediaElement;\\n}\\n\\ndeclare var MediaElementAudioSourceNode: {\\n    prototype: MediaElementAudioSourceNode;\\n    new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;\\n};\\n\\ninterface MediaEncryptedEvent extends Event {\\n    readonly initData: ArrayBuffer | null;\\n    readonly initDataType: string;\\n}\\n\\ndeclare var MediaEncryptedEvent: {\\n    prototype: MediaEncryptedEvent;\\n    new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;\\n};\\n\\n/** An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>. */\\ninterface MediaError {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly msExtendedCode: number;\\n    readonly MEDIA_ERR_ABORTED: number;\\n    readonly MEDIA_ERR_DECODE: number;\\n    readonly MEDIA_ERR_NETWORK: number;\\n    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\\n    readonly MS_MEDIA_ERR_ENCRYPTED: number;\\n}\\n\\ndeclare var MediaError: {\\n    prototype: MediaError;\\n    new(): MediaError;\\n    readonly MEDIA_ERR_ABORTED: number;\\n    readonly MEDIA_ERR_DECODE: number;\\n    readonly MEDIA_ERR_NETWORK: number;\\n    readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\\n    readonly MS_MEDIA_ERR_ENCRYPTED: number;\\n};\\n\\n/** This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session. */\\ninterface MediaKeyMessageEvent extends Event {\\n    readonly message: ArrayBuffer;\\n    readonly messageType: MediaKeyMessageType;\\n}\\n\\ndeclare var MediaKeyMessageEvent: {\\n    prototype: MediaKeyMessageEvent;\\n    new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;\\n};\\n\\ninterface MediaKeySessionEventMap {\\n    \"keystatuseschange\": Event;\\n    \"message\": MessageEvent;\\n}\\n\\n/** This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM). */\\ninterface MediaKeySession extends EventTarget {\\n    readonly closed: Promise<void>;\\n    readonly expiration: number;\\n    readonly keyStatuses: MediaKeyStatusMap;\\n    onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;\\n    onmessage: ((this: MediaKeySession, ev: MessageEvent) => any) | null;\\n    readonly sessionId: string;\\n    close(): Promise<void>;\\n    generateRequest(initDataType: string, initData: BufferSource): Promise<void>;\\n    load(sessionId: string): Promise<boolean>;\\n    remove(): Promise<void>;\\n    update(response: BufferSource): Promise<void>;\\n    addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaKeySession: {\\n    prototype: MediaKeySession;\\n    new(): MediaKeySession;\\n};\\n\\n/** This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs. */\\ninterface MediaKeyStatusMap {\\n    readonly size: number;\\n    get(keyId: BufferSource): any;\\n    has(keyId: BufferSource): boolean;\\n    forEach(callbackfn: (value: MediaKeyStatus, key: BufferSource, parent: MediaKeyStatusMap) => void, thisArg?: any): void;\\n}\\n\\ndeclare var MediaKeyStatusMap: {\\n    prototype: MediaKeyStatusMap;\\n    new(): MediaKeyStatusMap;\\n};\\n\\n/** This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method. */\\ninterface MediaKeySystemAccess {\\n    readonly keySystem: string;\\n    createMediaKeys(): Promise<MediaKeys>;\\n    getConfiguration(): MediaKeySystemConfiguration;\\n}\\n\\ndeclare var MediaKeySystemAccess: {\\n    prototype: MediaKeySystemAccess;\\n    new(): MediaKeySystemAccess;\\n};\\n\\n/** This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback. */\\ninterface MediaKeys {\\n    createSession(sessionType?: MediaKeySessionType): MediaKeySession;\\n    setServerCertificate(serverCertificate: BufferSource): Promise<boolean>;\\n}\\n\\ndeclare var MediaKeys: {\\n    prototype: MediaKeys;\\n    new(): MediaKeys;\\n};\\n\\ninterface MediaList {\\n    readonly length: number;\\n    mediaText: string;\\n    appendMedium(medium: string): void;\\n    deleteMedium(medium: string): void;\\n    item(index: number): string | null;\\n    toString(): number;\\n    [index: number]: string;\\n}\\n\\ndeclare var MediaList: {\\n    prototype: MediaList;\\n    new(): MediaList;\\n};\\n\\ninterface MediaQueryListEventMap {\\n    \"change\": MediaQueryListEvent;\\n}\\n\\n/** Stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true). */\\ninterface MediaQueryList extends EventTarget {\\n    readonly matches: boolean;\\n    readonly media: string;\\n    onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;\\n    /** @deprecated */\\n    addListener(listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\\n    /** @deprecated */\\n    removeListener(listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\\n    addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaQueryList: {\\n    prototype: MediaQueryList;\\n    new(): MediaQueryList;\\n};\\n\\ninterface MediaQueryListEvent extends Event {\\n    readonly matches: boolean;\\n    readonly media: string;\\n}\\n\\ndeclare var MediaQueryListEvent: {\\n    prototype: MediaQueryListEvent;\\n    new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;\\n};\\n\\ninterface MediaSourceEventMap {\\n    \"sourceclose\": Event;\\n    \"sourceended\": Event;\\n    \"sourceopen\": Event;\\n}\\n\\n/** This Media Source Extensions API interface represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent. */\\ninterface MediaSource extends EventTarget {\\n    readonly activeSourceBuffers: SourceBufferList;\\n    duration: number;\\n    onsourceclose: ((this: MediaSource, ev: Event) => any) | null;\\n    onsourceended: ((this: MediaSource, ev: Event) => any) | null;\\n    onsourceopen: ((this: MediaSource, ev: Event) => any) | null;\\n    readonly readyState: ReadyState;\\n    readonly sourceBuffers: SourceBufferList;\\n    addSourceBuffer(type: string): SourceBuffer;\\n    clearLiveSeekableRange(): void;\\n    endOfStream(error?: EndOfStreamError): void;\\n    removeSourceBuffer(sourceBuffer: SourceBuffer): void;\\n    setLiveSeekableRange(start: number, end: number): void;\\n    addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaSource: {\\n    prototype: MediaSource;\\n    new(): MediaSource;\\n    isTypeSupported(type: string): boolean;\\n};\\n\\ninterface MediaStreamEventMap {\\n    \"addtrack\": MediaStreamTrackEvent;\\n    \"removetrack\": MediaStreamTrackEvent;\\n}\\n\\n/** A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack. */\\ninterface MediaStream extends EventTarget {\\n    readonly active: boolean;\\n    readonly id: string;\\n    onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\\n    onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\\n    addTrack(track: MediaStreamTrack): void;\\n    clone(): MediaStream;\\n    getAudioTracks(): MediaStreamTrack[];\\n    getTrackById(trackId: string): MediaStreamTrack | null;\\n    getTracks(): MediaStreamTrack[];\\n    getVideoTracks(): MediaStreamTrack[];\\n    removeTrack(track: MediaStreamTrack): void;\\n    addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaStream: {\\n    prototype: MediaStream;\\n    new(): MediaStream;\\n    new(stream: MediaStream): MediaStream;\\n    new(tracks: MediaStreamTrack[]): MediaStream;\\n};\\n\\ninterface MediaStreamAudioDestinationNode extends AudioNode {\\n    readonly stream: MediaStream;\\n}\\n\\ndeclare var MediaStreamAudioDestinationNode: {\\n    prototype: MediaStreamAudioDestinationNode;\\n    new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;\\n};\\n\\n/** A type of AudioNode which operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs. */\\ninterface MediaStreamAudioSourceNode extends AudioNode {\\n    readonly mediaStream: MediaStream;\\n}\\n\\ndeclare var MediaStreamAudioSourceNode: {\\n    prototype: MediaStreamAudioSourceNode;\\n    new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;\\n};\\n\\ninterface MediaStreamError {\\n    readonly constraintName: string | null;\\n    readonly message: string | null;\\n    readonly name: string;\\n}\\n\\ndeclare var MediaStreamError: {\\n    prototype: MediaStreamError;\\n    new(): MediaStreamError;\\n};\\n\\ninterface MediaStreamErrorEvent extends Event {\\n    readonly error: MediaStreamError | null;\\n}\\n\\ndeclare var MediaStreamErrorEvent: {\\n    prototype: MediaStreamErrorEvent;\\n    new(typeArg: string, eventInitDict?: MediaStreamErrorEventInit): MediaStreamErrorEvent;\\n};\\n\\n/** Events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream. */\\ninterface MediaStreamEvent extends Event {\\n    readonly stream: MediaStream | null;\\n}\\n\\ndeclare var MediaStreamEvent: {\\n    prototype: MediaStreamEvent;\\n    new(type: string, eventInitDict: MediaStreamEventInit): MediaStreamEvent;\\n};\\n\\ninterface MediaStreamTrackEventMap {\\n    \"ended\": Event;\\n    \"isolationchange\": Event;\\n    \"mute\": Event;\\n    \"unmute\": Event;\\n}\\n\\n/** A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well. */\\ninterface MediaStreamTrack extends EventTarget {\\n    enabled: boolean;\\n    readonly id: string;\\n    readonly isolated: boolean;\\n    readonly kind: string;\\n    readonly label: string;\\n    readonly muted: boolean;\\n    onended: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\\n    readonly readyState: MediaStreamTrackState;\\n    applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;\\n    clone(): MediaStreamTrack;\\n    getCapabilities(): MediaTrackCapabilities;\\n    getConstraints(): MediaTrackConstraints;\\n    getSettings(): MediaTrackSettings;\\n    stop(): void;\\n    addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MediaStreamTrack: {\\n    prototype: MediaStreamTrack;\\n    new(): MediaStreamTrack;\\n};\\n\\ninterface MediaStreamTrackAudioSourceNode extends AudioNode {\\n}\\n\\ndeclare var MediaStreamTrackAudioSourceNode: {\\n    prototype: MediaStreamTrackAudioSourceNode;\\n    new(context: AudioContext, options: MediaStreamTrackAudioSourceOptions): MediaStreamTrackAudioSourceNode;\\n};\\n\\n/** Events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur. */\\ninterface MediaStreamTrackEvent extends Event {\\n    readonly track: MediaStreamTrack;\\n}\\n\\ndeclare var MediaStreamTrackEvent: {\\n    prototype: MediaStreamTrackEvent;\\n    new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;\\n};\\n\\n/** This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties. */\\ninterface MessageChannel {\\n    /**\\n     * Returns the first MessagePort object.\\n     */\\n    readonly port1: MessagePort;\\n    /**\\n     * Returns the second MessagePort object.\\n     */\\n    readonly port2: MessagePort;\\n}\\n\\ndeclare var MessageChannel: {\\n    prototype: MessageChannel;\\n    new(): MessageChannel;\\n};\\n\\n/** A message received by a target object. */\\ninterface MessageEvent extends Event {\\n    /**\\n     * Returns the data of the message.\\n     */\\n    readonly data: any;\\n    /**\\n     * Returns the last event ID string, for server-sent events.\\n     */\\n    readonly lastEventId: string;\\n    /**\\n     * Returns the origin of the message, for server-sent events and cross-document messaging.\\n     */\\n    readonly origin: string;\\n    /**\\n     * Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging.\\n     */\\n    readonly ports: ReadonlyArray<MessagePort>;\\n    /**\\n     * Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects.\\n     */\\n    readonly source: MessageEventSource | null;\\n}\\n\\ndeclare var MessageEvent: {\\n    prototype: MessageEvent;\\n    new(type: string, eventInitDict?: MessageEventInit): MessageEvent;\\n};\\n\\ninterface MessagePortEventMap {\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\n/** This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other. */\\ninterface MessagePort extends EventTarget {\\n    onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;\\n    /**\\n     * Disconnects the port, so that it is no longer active.\\n     */\\n    close(): void;\\n    /**\\n     * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.\\n     * \\n     * Throws a \"DataCloneError\" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.\\n     */\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    /**\\n     * Begins dispatching messages received on the port.\\n     */\\n    start(): void;\\n    addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var MessagePort: {\\n    prototype: MessagePort;\\n    new(): MessagePort;\\n};\\n\\n/** Provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object. */\\ninterface MimeType {\\n    /**\\n     * Returns the MIME type\\'s description.\\n     */\\n    readonly description: string;\\n    /**\\n     * Returns the Plugin object that implements this MIME type.\\n     */\\n    readonly enabledPlugin: Plugin;\\n    /**\\n     * Returns the MIME type\\'s typical file extensions, in a comma-separated list.\\n     */\\n    readonly suffixes: string;\\n    /**\\n     * Returns the MIME type.\\n     */\\n    readonly type: string;\\n}\\n\\ndeclare var MimeType: {\\n    prototype: MimeType;\\n    new(): MimeType;\\n};\\n\\n/** Returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes. */\\ninterface MimeTypeArray {\\n    readonly length: number;\\n    item(index: number): MimeType | null;\\n    namedItem(name: string): MimeType | null;\\n    [index: number]: MimeType;\\n}\\n\\ndeclare var MimeTypeArray: {\\n    prototype: MimeTypeArray;\\n    new(): MimeTypeArray;\\n};\\n\\n/** Events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown. */\\ninterface MouseEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    readonly button: number;\\n    readonly buttons: number;\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly ctrlKey: boolean;\\n    readonly metaKey: boolean;\\n    readonly movementX: number;\\n    readonly movementY: number;\\n    readonly offsetX: number;\\n    readonly offsetY: number;\\n    readonly pageX: number;\\n    readonly pageY: number;\\n    readonly relatedTarget: EventTarget | null;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly shiftKey: boolean;\\n    readonly x: number;\\n    readonly y: number;\\n    getModifierState(keyArg: string): boolean;\\n    initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void;\\n}\\n\\ndeclare var MouseEvent: {\\n    prototype: MouseEvent;\\n    new(type: string, eventInitDict?: MouseEventInit): MouseEvent;\\n};\\n\\n/** Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes. */\\ninterface MutationEvent extends Event {\\n    readonly attrChange: number;\\n    readonly attrName: string;\\n    readonly newValue: string;\\n    readonly prevValue: string;\\n    readonly relatedNode: Node;\\n    initMutationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, relatedNodeArg: Node, prevValueArg: string, newValueArg: string, attrNameArg: string, attrChangeArg: number): void;\\n    readonly ADDITION: number;\\n    readonly MODIFICATION: number;\\n    readonly REMOVAL: number;\\n}\\n\\ndeclare var MutationEvent: {\\n    prototype: MutationEvent;\\n    new(): MutationEvent;\\n    readonly ADDITION: number;\\n    readonly MODIFICATION: number;\\n    readonly REMOVAL: number;\\n};\\n\\n/** Provides the ability to watch for changes being made to the DOM tree. It is designed as a replacement for the older Mutation Events feature which was part of the DOM3 Events specification. */\\ninterface MutationObserver {\\n    /**\\n     * Stops observer from observing any mutations. Until the observe() method is used again, observer\\'s callback will not be invoked.\\n     */\\n    disconnect(): void;\\n    /**\\n     * Instructs the user agent to observe a given target (a node) and report any mutations based on the criteria given by options (an object).\\n     * \\n     * The options argument allows for setting mutation observation options via object members.\\n     */\\n    observe(target: Node, options?: MutationObserverInit): void;\\n    /**\\n     * Empties the record queue and returns what was in there.\\n     */\\n    takeRecords(): MutationRecord[];\\n}\\n\\ndeclare var MutationObserver: {\\n    prototype: MutationObserver;\\n    new(callback: MutationCallback): MutationObserver;\\n};\\n\\n/** A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver\\'s callback. */\\ninterface MutationRecord {\\n    /**\\n     * Return the nodes added and removed respectively.\\n     */\\n    readonly addedNodes: NodeList;\\n    /**\\n     * Returns the local name of the changed attribute, and null otherwise.\\n     */\\n    readonly attributeName: string | null;\\n    /**\\n     * Returns the namespace of the changed attribute, and null otherwise.\\n     */\\n    readonly attributeNamespace: string | null;\\n    /**\\n     * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\\n     */\\n    readonly nextSibling: Node | null;\\n    /**\\n     * The return value depends on type. For \"attributes\", it is the value of the changed attribute before the change. For \"characterData\", it is the data of the changed node before the change. For \"childList\", it is null.\\n     */\\n    readonly oldValue: string | null;\\n    /**\\n     * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\\n     */\\n    readonly previousSibling: Node | null;\\n    /**\\n     * Return the nodes added and removed respectively.\\n     */\\n    readonly removedNodes: NodeList;\\n    /**\\n     * Returns the node the mutation affected, depending on the type. For \"attributes\", it is the element whose attribute changed. For \"characterData\", it is the CharacterData node. For \"childList\", it is the node whose children changed.\\n     */\\n    readonly target: Node;\\n    /**\\n     * Returns \"attributes\" if it was an attribute mutation. \"characterData\" if it was a mutation to a CharacterData node. And \"childList\" if it was a mutation to the tree of nodes.\\n     */\\n    readonly type: MutationRecordType;\\n}\\n\\ndeclare var MutationRecord: {\\n    prototype: MutationRecord;\\n    new(): MutationRecord;\\n};\\n\\n/** A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array. */\\ninterface NamedNodeMap {\\n    readonly length: number;\\n    getNamedItem(qualifiedName: string): Attr | null;\\n    getNamedItemNS(namespace: string | null, localName: string): Attr | null;\\n    item(index: number): Attr | null;\\n    removeNamedItem(qualifiedName: string): Attr;\\n    removeNamedItemNS(namespace: string | null, localName: string): Attr;\\n    setNamedItem(attr: Attr): Attr | null;\\n    setNamedItemNS(attr: Attr): Attr | null;\\n    [index: number]: Attr;\\n}\\n\\ndeclare var NamedNodeMap: {\\n    prototype: NamedNodeMap;\\n    new(): NamedNodeMap;\\n};\\n\\ninterface NavigationPreloadManager {\\n    disable(): Promise<void>;\\n    enable(): Promise<void>;\\n    getState(): Promise<NavigationPreloadState>;\\n    setHeaderValue(value: string): Promise<void>;\\n}\\n\\ndeclare var NavigationPreloadManager: {\\n    prototype: NavigationPreloadManager;\\n    new(): NavigationPreloadManager;\\n};\\n\\n/** The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. */\\ninterface Navigator extends MSFileSaver, MSNavigatorDoNotTrack, NavigatorAutomationInformation, NavigatorBeacon, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorPlugins, NavigatorStorage {\\n    readonly activeVRDisplays: ReadonlyArray<VRDisplay>;\\n    readonly clipboard: Clipboard;\\n    readonly credentials: CredentialsContainer;\\n    readonly doNotTrack: string | null;\\n    readonly geolocation: Geolocation;\\n    readonly maxTouchPoints: number;\\n    readonly mediaDevices: MediaDevices;\\n    readonly msManipulationViewsEnabled: boolean;\\n    readonly msMaxTouchPoints: number;\\n    readonly msPointerEnabled: boolean;\\n    readonly permissions: Permissions;\\n    readonly pointerEnabled: boolean;\\n    readonly serviceWorker: ServiceWorkerContainer;\\n    getGamepads(): (Gamepad | null)[];\\n    getUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;\\n    getVRDisplays(): Promise<VRDisplay[]>;\\n    msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;\\n    requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;\\n    vibrate(pattern: number | number[]): boolean;\\n}\\n\\ndeclare var Navigator: {\\n    prototype: Navigator;\\n    new(): Navigator;\\n};\\n\\ninterface NavigatorAutomationInformation {\\n    readonly webdriver: boolean;\\n}\\n\\ninterface NavigatorBeacon {\\n    sendBeacon(url: string, data?: Blob | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | FormData | string | null): boolean;\\n}\\n\\ninterface NavigatorConcurrentHardware {\\n    readonly hardwareConcurrency: number;\\n}\\n\\ninterface NavigatorContentUtils {\\n    registerProtocolHandler(scheme: string, url: string, title: string): void;\\n    unregisterProtocolHandler(scheme: string, url: string): void;\\n}\\n\\ninterface NavigatorCookies {\\n    readonly cookieEnabled: boolean;\\n}\\n\\ninterface NavigatorID {\\n    readonly appCodeName: string;\\n    readonly appName: string;\\n    readonly appVersion: string;\\n    readonly oscpu: string;\\n    readonly platform: string;\\n    readonly product: string;\\n    readonly productSub: string;\\n    readonly userAgent: string;\\n    readonly vendor: string;\\n    readonly vendorSub: string;\\n    taintEnabled(): boolean;\\n}\\n\\ninterface NavigatorLanguage {\\n    readonly language: string;\\n    readonly languages: ReadonlyArray<string>;\\n}\\n\\ninterface NavigatorOnLine {\\n    readonly onLine: boolean;\\n}\\n\\ninterface NavigatorPlugins {\\n    readonly mimeTypes: MimeTypeArray;\\n    readonly plugins: PluginArray;\\n    javaEnabled(): boolean;\\n}\\n\\ninterface NavigatorStorage {\\n    readonly storage: StorageManager;\\n}\\n\\n/** Node is an interface from which a number of DOM API object types inherit. It allows those types to be treated similarly; for example, inheriting the same set of methods, or being tested in the same way. */\\ninterface Node extends EventTarget {\\n    /**\\n     * Returns node\\'s node document\\'s document base URL.\\n     */\\n    readonly baseURI: string;\\n    /**\\n     * Returns the children.\\n     */\\n    readonly childNodes: NodeListOf<ChildNode>;\\n    /**\\n     * Returns the first child.\\n     */\\n    readonly firstChild: ChildNode | null;\\n    /**\\n     * Returns true if node is connected and false otherwise.\\n     */\\n    readonly isConnected: boolean;\\n    /**\\n     * Returns the last child.\\n     */\\n    readonly lastChild: ChildNode | null;\\n    /** @deprecated */\\n    readonly namespaceURI: string | null;\\n    /**\\n     * Returns the next sibling.\\n     */\\n    readonly nextSibling: ChildNode | null;\\n    /**\\n     * Returns a string appropriate for the type of node.\\n     */\\n    readonly nodeName: string;\\n    /**\\n     * Returns the type of node.\\n     */\\n    readonly nodeType: number;\\n    nodeValue: string | null;\\n    /**\\n     * Returns the node document. Returns null for documents.\\n     */\\n    readonly ownerDocument: Document | null;\\n    /**\\n     * Returns the parent element.\\n     */\\n    readonly parentElement: HTMLElement | null;\\n    /**\\n     * Returns the parent.\\n     */\\n    readonly parentNode: Node & ParentNode | null;\\n    /**\\n     * Returns the previous sibling.\\n     */\\n    readonly previousSibling: Node | null;\\n    textContent: string | null;\\n    appendChild<T extends Node>(newChild: T): T;\\n    /**\\n     * Returns a copy of node. If deep is true, the copy also includes the node\\'s descendants.\\n     */\\n    cloneNode(deep?: boolean): Node;\\n    /**\\n     * Returns a bitmask indicating the position of other relative to node.\\n     */\\n    compareDocumentPosition(other: Node): number;\\n    /**\\n     * Returns true if other is an inclusive descendant of node, and false otherwise.\\n     */\\n    contains(other: Node | null): boolean;\\n    /**\\n     * Returns node\\'s root.\\n     */\\n    getRootNode(options?: GetRootNodeOptions): Node;\\n    /**\\n     * Returns whether node has children.\\n     */\\n    hasChildNodes(): boolean;\\n    insertBefore<T extends Node>(newChild: T, refChild: Node | null): T;\\n    isDefaultNamespace(namespace: string | null): boolean;\\n    /**\\n     * Returns whether node and otherNode have the same properties.\\n     */\\n    isEqualNode(otherNode: Node | null): boolean;\\n    isSameNode(otherNode: Node | null): boolean;\\n    lookupNamespaceURI(prefix: string | null): string | null;\\n    lookupPrefix(namespace: string | null): string | null;\\n    /**\\n     * Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.\\n     */\\n    normalize(): void;\\n    removeChild<T extends Node>(oldChild: T): T;\\n    replaceChild<T extends Node>(newChild: Node, oldChild: T): T;\\n    readonly ATTRIBUTE_NODE: number;\\n    /**\\n     * node is a CDATASection node.\\n     */\\n    readonly CDATA_SECTION_NODE: number;\\n    /**\\n     * node is a Comment node.\\n     */\\n    readonly COMMENT_NODE: number;\\n    /**\\n     * node is a DocumentFragment node.\\n     */\\n    readonly DOCUMENT_FRAGMENT_NODE: number;\\n    /**\\n     * node is a document.\\n     */\\n    readonly DOCUMENT_NODE: number;\\n    /**\\n     * Set when other is a descendant of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINED_BY: number;\\n    /**\\n     * Set when other is an ancestor of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINS: number;\\n    /**\\n     * Set when node and other are not in the same tree.\\n     */\\n    readonly DOCUMENT_POSITION_DISCONNECTED: number;\\n    /**\\n     * Set when other is following node.\\n     */\\n    readonly DOCUMENT_POSITION_FOLLOWING: number;\\n    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\\n    /**\\n     * Set when other is preceding node.\\n     */\\n    readonly DOCUMENT_POSITION_PRECEDING: number;\\n    /**\\n     * node is a doctype.\\n     */\\n    readonly DOCUMENT_TYPE_NODE: number;\\n    /**\\n     * node is an element.\\n     */\\n    readonly ELEMENT_NODE: number;\\n    readonly ENTITY_NODE: number;\\n    readonly ENTITY_REFERENCE_NODE: number;\\n    readonly NOTATION_NODE: number;\\n    /**\\n     * node is a ProcessingInstruction node.\\n     */\\n    readonly PROCESSING_INSTRUCTION_NODE: number;\\n    /**\\n     * node is a Text node.\\n     */\\n    readonly TEXT_NODE: number;\\n}\\n\\ndeclare var Node: {\\n    prototype: Node;\\n    new(): Node;\\n    readonly ATTRIBUTE_NODE: number;\\n    /**\\n     * node is a CDATASection node.\\n     */\\n    readonly CDATA_SECTION_NODE: number;\\n    /**\\n     * node is a Comment node.\\n     */\\n    readonly COMMENT_NODE: number;\\n    /**\\n     * node is a DocumentFragment node.\\n     */\\n    readonly DOCUMENT_FRAGMENT_NODE: number;\\n    /**\\n     * node is a document.\\n     */\\n    readonly DOCUMENT_NODE: number;\\n    /**\\n     * Set when other is a descendant of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINED_BY: number;\\n    /**\\n     * Set when other is an ancestor of node.\\n     */\\n    readonly DOCUMENT_POSITION_CONTAINS: number;\\n    /**\\n     * Set when node and other are not in the same tree.\\n     */\\n    readonly DOCUMENT_POSITION_DISCONNECTED: number;\\n    /**\\n     * Set when other is following node.\\n     */\\n    readonly DOCUMENT_POSITION_FOLLOWING: number;\\n    readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\\n    /**\\n     * Set when other is preceding node.\\n     */\\n    readonly DOCUMENT_POSITION_PRECEDING: number;\\n    /**\\n     * node is a doctype.\\n     */\\n    readonly DOCUMENT_TYPE_NODE: number;\\n    /**\\n     * node is an element.\\n     */\\n    readonly ELEMENT_NODE: number;\\n    readonly ENTITY_NODE: number;\\n    readonly ENTITY_REFERENCE_NODE: number;\\n    readonly NOTATION_NODE: number;\\n    /**\\n     * node is a ProcessingInstruction node.\\n     */\\n    readonly PROCESSING_INSTRUCTION_NODE: number;\\n    /**\\n     * node is a Text node.\\n     */\\n    readonly TEXT_NODE: number;\\n};\\n\\n/** An object used to filter the nodes in a NodeIterator or TreeWalker. They don\\'t know anything about the DOM or how to traverse nodes; they just know how to evaluate a single node against the provided filter. */\\ninterface NodeFilter {\\n    acceptNode(node: Node): number;\\n}\\n\\ndeclare var NodeFilter: {\\n    readonly FILTER_ACCEPT: number;\\n    readonly FILTER_REJECT: number;\\n    readonly FILTER_SKIP: number;\\n    readonly SHOW_ALL: number;\\n    readonly SHOW_ATTRIBUTE: number;\\n    readonly SHOW_CDATA_SECTION: number;\\n    readonly SHOW_COMMENT: number;\\n    readonly SHOW_DOCUMENT: number;\\n    readonly SHOW_DOCUMENT_FRAGMENT: number;\\n    readonly SHOW_DOCUMENT_TYPE: number;\\n    readonly SHOW_ELEMENT: number;\\n    readonly SHOW_ENTITY: number;\\n    readonly SHOW_ENTITY_REFERENCE: number;\\n    readonly SHOW_NOTATION: number;\\n    readonly SHOW_PROCESSING_INSTRUCTION: number;\\n    readonly SHOW_TEXT: number;\\n};\\n\\n/** An iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order. */\\ninterface NodeIterator {\\n    readonly filter: NodeFilter | null;\\n    readonly pointerBeforeReferenceNode: boolean;\\n    readonly referenceNode: Node;\\n    readonly root: Node;\\n    readonly whatToShow: number;\\n    detach(): void;\\n    nextNode(): Node | null;\\n    previousNode(): Node | null;\\n}\\n\\ndeclare var NodeIterator: {\\n    prototype: NodeIterator;\\n    new(): NodeIterator;\\n};\\n\\n/** NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll(). */\\ninterface NodeList {\\n    /**\\n     * Returns the number of nodes in the collection.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the node with index index from the collection. The nodes are sorted in tree order.\\n     */\\n    item(index: number): Node | null;\\n    /**\\n     * Performs the specified action for each node in an list.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;\\n    [index: number]: Node;\\n}\\n\\ndeclare var NodeList: {\\n    prototype: NodeList;\\n    new(): NodeList;\\n};\\n\\ninterface NodeListOf<TNode extends Node> extends NodeList {\\n    length: number;\\n    item(index: number): TNode;\\n    /**\\n     * Performs the specified action for each node in an list.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;\\n    [index: number]: TNode;\\n}\\n\\ninterface NonDocumentTypeChildNode {\\n    /**\\n     * Returns the first following sibling that is an element, and null otherwise.\\n     */\\n    readonly nextElementSibling: Element | null;\\n    /**\\n     * Returns the first preceding sibling that is an element, and null otherwise.\\n     */\\n    readonly previousElementSibling: Element | null;\\n}\\n\\ninterface NonElementParentNode {\\n    /**\\n     * Returns the first element within node\\'s descendants whose ID is elementId.\\n     */\\n    getElementById(elementId: string): Element | null;\\n}\\n\\ninterface NotificationEventMap {\\n    \"click\": Event;\\n    \"close\": Event;\\n    \"error\": Event;\\n    \"show\": Event;\\n}\\n\\n/** This Notifications API interface is used to configure and display desktop notifications to the user. */\\ninterface Notification extends EventTarget {\\n    readonly actions: ReadonlyArray<NotificationAction>;\\n    readonly badge: string;\\n    readonly body: string;\\n    readonly data: any;\\n    readonly dir: NotificationDirection;\\n    readonly icon: string;\\n    readonly image: string;\\n    readonly lang: string;\\n    onclick: ((this: Notification, ev: Event) => any) | null;\\n    onclose: ((this: Notification, ev: Event) => any) | null;\\n    onerror: ((this: Notification, ev: Event) => any) | null;\\n    onshow: ((this: Notification, ev: Event) => any) | null;\\n    readonly renotify: boolean;\\n    readonly requireInteraction: boolean;\\n    readonly silent: boolean;\\n    readonly tag: string;\\n    readonly timestamp: number;\\n    readonly title: string;\\n    readonly vibrate: ReadonlyArray<number>;\\n    close(): void;\\n    addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Notification: {\\n    prototype: Notification;\\n    new(title: string, options?: NotificationOptions): Notification;\\n    readonly maxActions: number;\\n    readonly permission: NotificationPermission;\\n    requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;\\n};\\n\\n/** The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements(). */\\ninterface OES_element_index_uint {\\n}\\n\\n/** The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth. */\\ninterface OES_standard_derivatives {\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: GLenum;\\n}\\n\\n/** The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures. */\\ninterface OES_texture_float {\\n}\\n\\n/** The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures. */\\ninterface OES_texture_float_linear {\\n}\\n\\n/** The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components. */\\ninterface OES_texture_half_float {\\n    readonly HALF_FLOAT_OES: GLenum;\\n}\\n\\n/** The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures. */\\ninterface OES_texture_half_float_linear {\\n}\\n\\ninterface OES_vertex_array_object {\\n    bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\\n    createVertexArrayOES(): WebGLVertexArrayObjectOES | null;\\n    deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\\n    isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\\n    readonly VERTEX_ARRAY_BINDING_OES: GLenum;\\n}\\n\\n/** The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface. */\\ninterface OfflineAudioCompletionEvent extends Event {\\n    readonly renderedBuffer: AudioBuffer;\\n}\\n\\ndeclare var OfflineAudioCompletionEvent: {\\n    prototype: OfflineAudioCompletionEvent;\\n    new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;\\n};\\n\\ninterface OfflineAudioContextEventMap extends BaseAudioContextEventMap {\\n    \"complete\": OfflineAudioCompletionEvent;\\n}\\n\\n/** An AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn\\'t render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer. */\\ninterface OfflineAudioContext extends BaseAudioContext {\\n    readonly length: number;\\n    oncomplete: ((this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any) | null;\\n    resume(): Promise<void>;\\n    startRendering(): Promise<AudioBuffer>;\\n    suspend(suspendTime: number): Promise<void>;\\n    addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var OfflineAudioContext: {\\n    prototype: OfflineAudioContext;\\n    new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;\\n    new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;\\n};\\n\\ninterface OffscreenCanvas extends EventTarget {\\n    /**\\n     * These attributes return the dimensions of the OffscreenCanvas object\\'s bitmap.\\n     * \\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\\n     */\\n    height: number;\\n    /**\\n     * These attributes return the dimensions of the OffscreenCanvas object\\'s bitmap.\\n     * \\n     * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\\n     */\\n    width: number;\\n    /**\\n     * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.\\n     * \\n     * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of \"image/png\"; that type is also used if the requested type isn\\'t supported. If the image format supports variable quality (such as \"image/jpeg\"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.\\n     */\\n    convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;\\n    /**\\n     * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: \"2d\", \"bitmaprenderer\", \"webgl\", or \"webgl2\". options is handled by that API.\\n     * \\n     * This specification defines the \"2d\" context below, which is similar but distinct from the \"2d\" context that is created from a canvas element. The WebGL specifications define the \"webgl\" and \"webgl2\" contexts. [WEBGL]\\n     * \\n     * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a \"2d\" context after getting a \"webgl\" context).\\n     */\\n    getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): OffscreenCanvasRenderingContext2D | null;\\n    getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;\\n    getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null;\\n    getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null;\\n    getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\\n    /**\\n     * Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.\\n     */\\n    transferToImageBitmap(): ImageBitmap;\\n}\\n\\ndeclare var OffscreenCanvas: {\\n    prototype: OffscreenCanvas;\\n    new(width: number, height: number): OffscreenCanvas;\\n};\\n\\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\\n    readonly canvas: OffscreenCanvas;\\n    commit(): void;\\n}\\n\\ndeclare var OffscreenCanvasRenderingContext2D: {\\n    prototype: OffscreenCanvasRenderingContext2D;\\n    new(): OffscreenCanvasRenderingContext2D;\\n};\\n\\n/** The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone. */\\ninterface OscillatorNode extends AudioScheduledSourceNode {\\n    readonly detune: AudioParam;\\n    readonly frequency: AudioParam;\\n    type: OscillatorType;\\n    setPeriodicWave(periodicWave: PeriodicWave): void;\\n    addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var OscillatorNode: {\\n    prototype: OscillatorNode;\\n    new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;\\n};\\n\\ninterface OverconstrainedError extends Error {\\n    constraint: string;\\n}\\n\\ndeclare var OverconstrainedError: {\\n    prototype: OverconstrainedError;\\n    new(): OverconstrainedError;\\n};\\n\\ninterface OverflowEvent extends UIEvent {\\n    readonly horizontalOverflow: boolean;\\n    readonly orient: number;\\n    readonly verticalOverflow: boolean;\\n    readonly BOTH: number;\\n    readonly HORIZONTAL: number;\\n    readonly VERTICAL: number;\\n}\\n\\ndeclare var OverflowEvent: {\\n    prototype: OverflowEvent;\\n    new(): OverflowEvent;\\n    readonly BOTH: number;\\n    readonly HORIZONTAL: number;\\n    readonly VERTICAL: number;\\n};\\n\\n/** The PageTransitionEvent is fired when a document is being loaded or unloaded. */\\ninterface PageTransitionEvent extends Event {\\n    readonly persisted: boolean;\\n}\\n\\ndeclare var PageTransitionEvent: {\\n    prototype: PageTransitionEvent;\\n    new(): PageTransitionEvent;\\n};\\n\\n/** A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can\\'t have panning effects without at least two audio channels! */\\ninterface PannerNode extends AudioNode {\\n    coneInnerAngle: number;\\n    coneOuterAngle: number;\\n    coneOuterGain: number;\\n    distanceModel: DistanceModelType;\\n    maxDistance: number;\\n    readonly orientationX: AudioParam;\\n    readonly orientationY: AudioParam;\\n    readonly orientationZ: AudioParam;\\n    panningModel: PanningModelType;\\n    readonly positionX: AudioParam;\\n    readonly positionY: AudioParam;\\n    readonly positionZ: AudioParam;\\n    refDistance: number;\\n    rolloffFactor: number;\\n    /** @deprecated */\\n    setOrientation(x: number, y: number, z: number): void;\\n    /** @deprecated */\\n    setPosition(x: number, y: number, z: number): void;\\n}\\n\\ndeclare var PannerNode: {\\n    prototype: PannerNode;\\n    new(context: BaseAudioContext, options?: PannerOptions): PannerNode;\\n};\\n\\ninterface ParentNode {\\n    readonly childElementCount: number;\\n    /**\\n     * Returns the child elements.\\n     */\\n    readonly children: HTMLCollection;\\n    /**\\n     * Returns the first child that is an element, and null otherwise.\\n     */\\n    readonly firstElementChild: Element | null;\\n    /**\\n     * Returns the last child that is an element, and null otherwise.\\n     */\\n    readonly lastElementChild: Element | null;\\n    /**\\n     * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    append(...nodes: (Node | string)[]): void;\\n    /**\\n     * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.\\n     * \\n     * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\\n     */\\n    prepend(...nodes: (Node | string)[]): void;\\n    /**\\n     * Returns the first element that is a descendant of node that matches selectors.\\n     */\\n    querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\\n    querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\\n    querySelector<E extends Element = Element>(selectors: string): E | null;\\n    /**\\n     * Returns all element descendants of node that match selectors.\\n     */\\n    querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\\n    querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\\n    querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\\n}\\n\\n/** This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */\\ninterface Path2D extends CanvasPath {\\n    /**\\n     * Adds to the path the path given by the argument.\\n     */\\n    addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\\n}\\n\\ndeclare var Path2D: {\\n    prototype: Path2D;\\n    new(path?: Path2D | string): Path2D;\\n};\\n\\n/** This Payment Request API interface is used to store shipping or payment address information. */\\ninterface PaymentAddress {\\n    readonly addressLine: string[];\\n    readonly city: string;\\n    readonly country: string;\\n    readonly dependentLocality: string;\\n    readonly languageCode: string;\\n    readonly organization: string;\\n    readonly phone: string;\\n    readonly postalCode: string;\\n    readonly recipient: string;\\n    readonly region: string;\\n    readonly sortingCode: string;\\n    toJSON(): any;\\n}\\n\\ndeclare var PaymentAddress: {\\n    prototype: PaymentAddress;\\n    new(): PaymentAddress;\\n};\\n\\ninterface PaymentRequestEventMap {\\n    \"shippingaddresschange\": Event;\\n    \"shippingoptionchange\": Event;\\n}\\n\\n/** This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user. */\\ninterface PaymentRequest extends EventTarget {\\n    readonly id: string;\\n    onshippingaddresschange: ((this: PaymentRequest, ev: Event) => any) | null;\\n    onshippingoptionchange: ((this: PaymentRequest, ev: Event) => any) | null;\\n    readonly shippingAddress: PaymentAddress | null;\\n    readonly shippingOption: string | null;\\n    readonly shippingType: PaymentShippingType | null;\\n    abort(): Promise<void>;\\n    canMakePayment(): Promise<boolean>;\\n    show(): Promise<PaymentResponse>;\\n    addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var PaymentRequest: {\\n    prototype: PaymentRequest;\\n    new(methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;\\n};\\n\\n/** This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action. */\\ninterface PaymentRequestUpdateEvent extends Event {\\n    updateWith(detailsPromise: PaymentDetailsUpdate | Promise<PaymentDetailsUpdate>): void;\\n}\\n\\ndeclare var PaymentRequestUpdateEvent: {\\n    prototype: PaymentRequestUpdateEvent;\\n    new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;\\n};\\n\\n/** This Payment Request API interface is returned after a user selects a payment method and approves a payment request. */\\ninterface PaymentResponse {\\n    readonly details: any;\\n    readonly methodName: string;\\n    readonly payerEmail: string | null;\\n    readonly payerName: string | null;\\n    readonly payerPhone: string | null;\\n    readonly requestId: string;\\n    readonly shippingAddress: PaymentAddress | null;\\n    readonly shippingOption: string | null;\\n    complete(result?: PaymentComplete): Promise<void>;\\n    toJSON(): any;\\n}\\n\\ndeclare var PaymentResponse: {\\n    prototype: PaymentResponse;\\n    new(): PaymentResponse;\\n};\\n\\ninterface PerfWidgetExternal {\\n    readonly activeNetworkRequestCount: number;\\n    readonly averageFrameTime: number;\\n    readonly averagePaintTime: number;\\n    readonly extraInformationEnabled: boolean;\\n    readonly independentRenderingEnabled: boolean;\\n    readonly irDisablingContentString: string;\\n    readonly irStatusAvailable: boolean;\\n    readonly maxCpuSpeed: number;\\n    readonly paintRequestsPerSecond: number;\\n    readonly performanceCounter: number;\\n    readonly performanceCounterFrequency: number;\\n    addEventListener(eventType: string, callback: Function): void;\\n    getMemoryUsage(): number;\\n    getProcessCpuUsage(): number;\\n    getRecentCpuUsage(last: number | null): any;\\n    getRecentFrames(last: number | null): any;\\n    getRecentMemoryUsage(last: number | null): any;\\n    getRecentPaintRequests(last: number | null): any;\\n    removeEventListener(eventType: string, callback: Function): void;\\n    repositionWindow(x: number, y: number): void;\\n    resizeWindow(width: number, height: number): void;\\n}\\n\\ndeclare var PerfWidgetExternal: {\\n    prototype: PerfWidgetExternal;\\n    new(): PerfWidgetExternal;\\n};\\n\\ninterface PerformanceEventMap {\\n    \"resourcetimingbufferfull\": Event;\\n}\\n\\n/** Provides access to performance-related information for the current page. It\\'s part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API. */\\ninterface Performance extends EventTarget {\\n    /** @deprecated */\\n    readonly navigation: PerformanceNavigation;\\n    onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\\n    readonly timeOrigin: number;\\n    /** @deprecated */\\n    readonly timing: PerformanceTiming;\\n    clearMarks(markName?: string): void;\\n    clearMeasures(measureName?: string): void;\\n    clearResourceTimings(): void;\\n    getEntries(): PerformanceEntryList;\\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\\n    getEntriesByType(type: string): PerformanceEntryList;\\n    mark(markName: string): void;\\n    measure(measureName: string, startMark?: string, endMark?: string): void;\\n    now(): number;\\n    setResourceTimingBufferSize(maxSize: number): void;\\n    toJSON(): any;\\n    addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Performance: {\\n    prototype: Performance;\\n    new(): Performance;\\n};\\n\\n/** Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image). */\\ninterface PerformanceEntry {\\n    readonly duration: number;\\n    readonly entryType: string;\\n    readonly name: string;\\n    readonly startTime: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceEntry: {\\n    prototype: PerformanceEntry;\\n    new(): PerformanceEntry;\\n};\\n\\n/** PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of \"mark\". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser\\'s performance timeline. */\\ninterface PerformanceMark extends PerformanceEntry {\\n}\\n\\ndeclare var PerformanceMark: {\\n    prototype: PerformanceMark;\\n    new(): PerformanceMark;\\n};\\n\\n/** PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of \"measure\". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser\\'s performance timeline. */\\ninterface PerformanceMeasure extends PerformanceEntry {\\n}\\n\\ndeclare var PerformanceMeasure: {\\n    prototype: PerformanceMeasure;\\n    new(): PerformanceMeasure;\\n};\\n\\n/** The legacy PerformanceNavigation interface represents information about how the navigation to the current document was done. */\\ninterface PerformanceNavigation {\\n    readonly redirectCount: number;\\n    readonly type: number;\\n    toJSON(): any;\\n    readonly TYPE_BACK_FORWARD: number;\\n    readonly TYPE_NAVIGATE: number;\\n    readonly TYPE_RELOAD: number;\\n    readonly TYPE_RESERVED: number;\\n}\\n\\ndeclare var PerformanceNavigation: {\\n    prototype: PerformanceNavigation;\\n    new(): PerformanceNavigation;\\n    readonly TYPE_BACK_FORWARD: number;\\n    readonly TYPE_NAVIGATE: number;\\n    readonly TYPE_RELOAD: number;\\n    readonly TYPE_RESERVED: number;\\n};\\n\\n/** Provides methods and properties to store and retrieve metrics regarding the browser\\'s document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document. */\\ninterface PerformanceNavigationTiming extends PerformanceResourceTiming {\\n    readonly domComplete: number;\\n    readonly domContentLoadedEventEnd: number;\\n    readonly domContentLoadedEventStart: number;\\n    readonly domInteractive: number;\\n    readonly loadEventEnd: number;\\n    readonly loadEventStart: number;\\n    readonly redirectCount: number;\\n    readonly type: NavigationType;\\n    readonly unloadEventEnd: number;\\n    readonly unloadEventStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceNavigationTiming: {\\n    prototype: PerformanceNavigationTiming;\\n    new(): PerformanceNavigationTiming;\\n};\\n\\ninterface PerformanceObserver {\\n    disconnect(): void;\\n    observe(options?: PerformanceObserverInit): void;\\n    takeRecords(): PerformanceEntryList;\\n}\\n\\ndeclare var PerformanceObserver: {\\n    prototype: PerformanceObserver;\\n    new(callback: PerformanceObserverCallback): PerformanceObserver;\\n    readonly supportedEntryTypes: ReadonlyArray<string>;\\n};\\n\\ninterface PerformanceObserverEntryList {\\n    getEntries(): PerformanceEntryList;\\n    getEntriesByName(name: string, type?: string): PerformanceEntryList;\\n    getEntriesByType(type: string): PerformanceEntryList;\\n}\\n\\ndeclare var PerformanceObserverEntryList: {\\n    prototype: PerformanceObserverEntryList;\\n    new(): PerformanceObserverEntryList;\\n};\\n\\n/** Enables retrieval and analysis of detailed network timing data regarding the loading of an application\\'s resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script. */\\ninterface PerformanceResourceTiming extends PerformanceEntry {\\n    readonly connectEnd: number;\\n    readonly connectStart: number;\\n    readonly decodedBodySize: number;\\n    readonly domainLookupEnd: number;\\n    readonly domainLookupStart: number;\\n    readonly encodedBodySize: number;\\n    readonly fetchStart: number;\\n    readonly initiatorType: string;\\n    readonly nextHopProtocol: string;\\n    readonly redirectEnd: number;\\n    readonly redirectStart: number;\\n    readonly requestStart: number;\\n    readonly responseEnd: number;\\n    readonly responseStart: number;\\n    readonly secureConnectionStart: number;\\n    readonly transferSize: number;\\n    readonly workerStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceResourceTiming: {\\n    prototype: PerformanceResourceTiming;\\n    new(): PerformanceResourceTiming;\\n};\\n\\n/** A legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property. */\\ninterface PerformanceTiming {\\n    readonly connectEnd: number;\\n    readonly connectStart: number;\\n    readonly domComplete: number;\\n    readonly domContentLoadedEventEnd: number;\\n    readonly domContentLoadedEventStart: number;\\n    readonly domInteractive: number;\\n    readonly domLoading: number;\\n    readonly domainLookupEnd: number;\\n    readonly domainLookupStart: number;\\n    readonly fetchStart: number;\\n    readonly loadEventEnd: number;\\n    readonly loadEventStart: number;\\n    readonly navigationStart: number;\\n    readonly redirectEnd: number;\\n    readonly redirectStart: number;\\n    readonly requestStart: number;\\n    readonly responseEnd: number;\\n    readonly responseStart: number;\\n    readonly secureConnectionStart: number;\\n    readonly unloadEventEnd: number;\\n    readonly unloadEventStart: number;\\n    toJSON(): any;\\n}\\n\\ndeclare var PerformanceTiming: {\\n    prototype: PerformanceTiming;\\n    new(): PerformanceTiming;\\n};\\n\\n/** PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave(). */\\ninterface PeriodicWave {\\n}\\n\\ndeclare var PeriodicWave: {\\n    prototype: PeriodicWave;\\n    new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;\\n};\\n\\ninterface PermissionRequest extends DeferredPermissionRequest {\\n    readonly state: MSWebViewPermissionState;\\n    defer(): void;\\n}\\n\\ndeclare var PermissionRequest: {\\n    prototype: PermissionRequest;\\n    new(): PermissionRequest;\\n};\\n\\ninterface PermissionRequestedEvent extends Event {\\n    readonly permissionRequest: PermissionRequest;\\n}\\n\\ndeclare var PermissionRequestedEvent: {\\n    prototype: PermissionRequestedEvent;\\n    new(): PermissionRequestedEvent;\\n};\\n\\ninterface PermissionStatusEventMap {\\n    \"change\": Event;\\n}\\n\\ninterface PermissionStatus extends EventTarget {\\n    onchange: ((this: PermissionStatus, ev: Event) => any) | null;\\n    readonly state: PermissionState;\\n    addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var PermissionStatus: {\\n    prototype: PermissionStatus;\\n    new(): PermissionStatus;\\n};\\n\\ninterface Permissions {\\n    query(permissionDesc: PermissionDescriptor | DevicePermissionDescriptor | MidiPermissionDescriptor | PushPermissionDescriptor): Promise<PermissionStatus>;\\n}\\n\\ndeclare var Permissions: {\\n    prototype: Permissions;\\n    new(): Permissions;\\n};\\n\\n/** Provides information about a browser plugin. */\\ninterface Plugin {\\n    /**\\n     * Returns the plugin\\'s description.\\n     */\\n    readonly description: string;\\n    /**\\n     * Returns the plugin library\\'s filename, if applicable on the current platform.\\n     */\\n    readonly filename: string;\\n    /**\\n     * Returns the number of MIME types, represented by MimeType objects, supported by the plugin.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns the plugin\\'s name.\\n     */\\n    readonly name: string;\\n    /**\\n     * Returns the specified MimeType object.\\n     */\\n    item(index: number): MimeType | null;\\n    namedItem(name: string): MimeType | null;\\n    [index: number]: MimeType;\\n}\\n\\ndeclare var Plugin: {\\n    prototype: Plugin;\\n    new(): Plugin;\\n};\\n\\n/** Used to store a list of Plugin objects describing the available plugins; it\\'s returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem(\"name\") methods. */\\ninterface PluginArray {\\n    readonly length: number;\\n    item(index: number): Plugin | null;\\n    namedItem(name: string): Plugin | null;\\n    refresh(reload?: boolean): void;\\n    [index: number]: Plugin;\\n}\\n\\ndeclare var PluginArray: {\\n    prototype: PluginArray;\\n    new(): PluginArray;\\n};\\n\\n/** The state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc. */\\ninterface PointerEvent extends MouseEvent {\\n    readonly height: number;\\n    readonly isPrimary: boolean;\\n    readonly pointerId: number;\\n    readonly pointerType: string;\\n    readonly pressure: number;\\n    readonly tangentialPressure: number;\\n    readonly tiltX: number;\\n    readonly tiltY: number;\\n    readonly twist: number;\\n    readonly width: number;\\n}\\n\\ndeclare var PointerEvent: {\\n    prototype: PointerEvent;\\n    new(type: string, eventInitDict?: PointerEventInit): PointerEvent;\\n};\\n\\n/** PopStateEvent is an event handler for the popstate event on the window. */\\ninterface PopStateEvent extends Event {\\n    readonly state: any;\\n}\\n\\ndeclare var PopStateEvent: {\\n    prototype: PopStateEvent;\\n    new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;\\n};\\n\\n/** The position of the concerned device at a given time. The position, represented by a Coordinates object, comprehends the 2D position of the device, on a spheroid representing the Earth, but also its altitude and its speed. */\\ninterface Position {\\n    readonly coords: Coordinates;\\n    readonly timestamp: number;\\n}\\n\\n/** The reason of an error occurring when using the geolocating device. */\\ninterface PositionError {\\n    readonly code: number;\\n    readonly message: string;\\n    readonly PERMISSION_DENIED: number;\\n    readonly POSITION_UNAVAILABLE: number;\\n    readonly TIMEOUT: number;\\n}\\n\\n/** A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don\\'t recognize them. */\\ninterface ProcessingInstruction extends CharacterData {\\n    readonly target: string;\\n}\\n\\ndeclare var ProcessingInstruction: {\\n    prototype: ProcessingInstruction;\\n    new(): ProcessingInstruction;\\n};\\n\\n/** Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>). */\\ninterface ProgressEvent<T extends EventTarget = EventTarget> extends Event {\\n    readonly lengthComputable: boolean;\\n    readonly loaded: number;\\n    readonly target: T | null;\\n    readonly total: number;\\n}\\n\\ndeclare var ProgressEvent: {\\n    prototype: ProgressEvent;\\n    new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\\n};\\n\\ninterface PromiseRejectionEvent extends Event {\\n    readonly promise: Promise<any>;\\n    readonly reason: any;\\n}\\n\\ndeclare var PromiseRejectionEvent: {\\n    prototype: PromiseRejectionEvent;\\n    new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\\n};\\n\\ninterface PublicKeyCredential extends Credential {\\n    readonly rawId: ArrayBuffer;\\n    readonly response: AuthenticatorResponse;\\n    getClientExtensionResults(): AuthenticationExtensionsClientOutputs;\\n}\\n\\ndeclare var PublicKeyCredential: {\\n    prototype: PublicKeyCredential;\\n    new(): PublicKeyCredential;\\n    isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;\\n};\\n\\n/** This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. */\\ninterface PushManager {\\n    getSubscription(): Promise<PushSubscription | null>;\\n    permissionState(options?: PushSubscriptionOptionsInit): Promise<PushPermissionState>;\\n    subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;\\n}\\n\\ndeclare var PushManager: {\\n    prototype: PushManager;\\n    new(): PushManager;\\n    readonly supportedContentEncodings: ReadonlyArray<string>;\\n};\\n\\n/** This Push API interface provides a subcription\\'s URL endpoint and allows unsubscription from a push service. */\\ninterface PushSubscription {\\n    readonly endpoint: string;\\n    readonly expirationTime: number | null;\\n    readonly options: PushSubscriptionOptions;\\n    getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\\n    toJSON(): PushSubscriptionJSON;\\n    unsubscribe(): Promise<boolean>;\\n}\\n\\ndeclare var PushSubscription: {\\n    prototype: PushSubscription;\\n    new(): PushSubscription;\\n};\\n\\ninterface PushSubscriptionOptions {\\n    readonly applicationServerKey: ArrayBuffer | null;\\n    readonly userVisibleOnly: boolean;\\n}\\n\\ndeclare var PushSubscriptionOptions: {\\n    prototype: PushSubscriptionOptions;\\n    new(): PushSubscriptionOptions;\\n};\\n\\ninterface RTCCertificate {\\n    readonly expires: number;\\n    getFingerprints(): RTCDtlsFingerprint[];\\n}\\n\\ndeclare var RTCCertificate: {\\n    prototype: RTCCertificate;\\n    new(): RTCCertificate;\\n    getSupportedAlgorithms(): AlgorithmIdentifier[];\\n};\\n\\ninterface RTCDTMFSenderEventMap {\\n    \"tonechange\": RTCDTMFToneChangeEvent;\\n}\\n\\ninterface RTCDTMFSender extends EventTarget {\\n    readonly canInsertDTMF: boolean;\\n    ontonechange: ((this: RTCDTMFSender, ev: RTCDTMFToneChangeEvent) => any) | null;\\n    readonly toneBuffer: string;\\n    insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\\n    addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDTMFSender: {\\n    prototype: RTCDTMFSender;\\n    new(): RTCDTMFSender;\\n};\\n\\n/** Events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event. */\\ninterface RTCDTMFToneChangeEvent extends Event {\\n    readonly tone: string;\\n}\\n\\ndeclare var RTCDTMFToneChangeEvent: {\\n    prototype: RTCDTMFToneChangeEvent;\\n    new(type: string, eventInitDict: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;\\n};\\n\\ninterface RTCDataChannelEventMap {\\n    \"bufferedamountlow\": Event;\\n    \"close\": Event;\\n    \"error\": RTCErrorEvent;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\ninterface RTCDataChannel extends EventTarget {\\n    binaryType: string;\\n    readonly bufferedAmount: number;\\n    bufferedAmountLowThreshold: number;\\n    readonly id: number | null;\\n    readonly label: string;\\n    readonly maxPacketLifeTime: number | null;\\n    readonly maxRetransmits: number | null;\\n    readonly negotiated: boolean;\\n    onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    onclose: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    onerror: ((this: RTCDataChannel, ev: RTCErrorEvent) => any) | null;\\n    onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;\\n    onopen: ((this: RTCDataChannel, ev: Event) => any) | null;\\n    readonly ordered: boolean;\\n    readonly priority: RTCPriorityType;\\n    readonly protocol: string;\\n    readonly readyState: RTCDataChannelState;\\n    close(): void;\\n    send(data: string): void;\\n    send(data: Blob): void;\\n    send(data: ArrayBuffer): void;\\n    send(data: ArrayBufferView): void;\\n    addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDataChannel: {\\n    prototype: RTCDataChannel;\\n    new(): RTCDataChannel;\\n};\\n\\ninterface RTCDataChannelEvent extends Event {\\n    readonly channel: RTCDataChannel;\\n}\\n\\ndeclare var RTCDataChannelEvent: {\\n    prototype: RTCDataChannelEvent;\\n    new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;\\n};\\n\\ninterface RTCDtlsTransportEventMap {\\n    \"error\": RTCErrorEvent;\\n    \"statechange\": Event;\\n}\\n\\ninterface RTCDtlsTransport extends EventTarget {\\n    onerror: ((this: RTCDtlsTransport, ev: RTCErrorEvent) => any) | null;\\n    onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;\\n    readonly state: RTCDtlsTransportState;\\n    readonly transport: RTCIceTransport;\\n    getRemoteCertificates(): ArrayBuffer[];\\n    addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDtlsTransport: {\\n    prototype: RTCDtlsTransport;\\n    new(): RTCDtlsTransport;\\n};\\n\\ninterface RTCDtlsTransportStateChangedEvent extends Event {\\n    readonly state: RTCDtlsTransportState;\\n}\\n\\ndeclare var RTCDtlsTransportStateChangedEvent: {\\n    prototype: RTCDtlsTransportStateChangedEvent;\\n    new(): RTCDtlsTransportStateChangedEvent;\\n};\\n\\ninterface RTCDtmfSenderEventMap {\\n    \"tonechange\": RTCDTMFToneChangeEvent;\\n}\\n\\ninterface RTCDtmfSender extends EventTarget {\\n    readonly canInsertDTMF: boolean;\\n    readonly duration: number;\\n    readonly interToneGap: number;\\n    ontonechange: ((this: RTCDtmfSender, ev: RTCDTMFToneChangeEvent) => any) | null;\\n    readonly sender: RTCRtpSender;\\n    readonly toneBuffer: string;\\n    insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\\n    addEventListener<K extends keyof RTCDtmfSenderEventMap>(type: K, listener: (this: RTCDtmfSender, ev: RTCDtmfSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCDtmfSenderEventMap>(type: K, listener: (this: RTCDtmfSender, ev: RTCDtmfSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCDtmfSender: {\\n    prototype: RTCDtmfSender;\\n    new(sender: RTCRtpSender): RTCDtmfSender;\\n};\\n\\ninterface RTCError extends Error {\\n    errorDetail: string;\\n    httpRequestStatusCode: number;\\n    message: string;\\n    name: string;\\n    receivedAlert: number | null;\\n    sctpCauseCode: number;\\n    sdpLineNumber: number;\\n    sentAlert: number | null;\\n}\\n\\ndeclare var RTCError: {\\n    prototype: RTCError;\\n    new(errorDetail?: string, message?: string): RTCError;\\n};\\n\\ninterface RTCErrorEvent extends Event {\\n    readonly error: RTCError | null;\\n}\\n\\ndeclare var RTCErrorEvent: {\\n    prototype: RTCErrorEvent;\\n    new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;\\n};\\n\\n/** The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection. */\\ninterface RTCIceCandidate {\\n    readonly candidate: string;\\n    readonly component: RTCIceComponent | null;\\n    readonly foundation: string | null;\\n    readonly ip: string | null;\\n    readonly port: number | null;\\n    readonly priority: number | null;\\n    readonly protocol: RTCIceProtocol | null;\\n    readonly relatedAddress: string | null;\\n    readonly relatedPort: number | null;\\n    readonly sdpMLineIndex: number | null;\\n    readonly sdpMid: string | null;\\n    readonly tcpType: RTCIceTcpCandidateType | null;\\n    readonly type: RTCIceCandidateType | null;\\n    readonly usernameFragment: string | null;\\n    toJSON(): RTCIceCandidateInit;\\n}\\n\\ndeclare var RTCIceCandidate: {\\n    prototype: RTCIceCandidate;\\n    new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;\\n};\\n\\ninterface RTCIceCandidatePairChangedEvent extends Event {\\n    readonly pair: RTCIceCandidatePair;\\n}\\n\\ndeclare var RTCIceCandidatePairChangedEvent: {\\n    prototype: RTCIceCandidatePairChangedEvent;\\n    new(): RTCIceCandidatePairChangedEvent;\\n};\\n\\ninterface RTCIceGathererEventMap {\\n    \"error\": Event;\\n    \"localcandidate\": RTCIceGathererEvent;\\n}\\n\\ninterface RTCIceGatherer extends RTCStatsProvider {\\n    readonly component: RTCIceComponent;\\n    onerror: ((this: RTCIceGatherer, ev: Event) => any) | null;\\n    onlocalcandidate: ((this: RTCIceGatherer, ev: RTCIceGathererEvent) => any) | null;\\n    createAssociatedGatherer(): RTCIceGatherer;\\n    getLocalCandidates(): RTCIceCandidateDictionary[];\\n    getLocalParameters(): RTCIceParameters;\\n    addEventListener<K extends keyof RTCIceGathererEventMap>(type: K, listener: (this: RTCIceGatherer, ev: RTCIceGathererEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCIceGathererEventMap>(type: K, listener: (this: RTCIceGatherer, ev: RTCIceGathererEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCIceGatherer: {\\n    prototype: RTCIceGatherer;\\n    new(options: RTCIceGatherOptions): RTCIceGatherer;\\n};\\n\\ninterface RTCIceGathererEvent extends Event {\\n    readonly candidate: RTCIceCandidateDictionary | RTCIceCandidateComplete;\\n}\\n\\ndeclare var RTCIceGathererEvent: {\\n    prototype: RTCIceGathererEvent;\\n    new(): RTCIceGathererEvent;\\n};\\n\\ninterface RTCIceTransportEventMap {\\n    \"gatheringstatechange\": Event;\\n    \"selectedcandidatepairchange\": Event;\\n    \"statechange\": Event;\\n}\\n\\n/** Provides access to information about the ICE transport layer over which the data is being sent and received. */\\ninterface RTCIceTransport extends EventTarget {\\n    readonly component: RTCIceComponent;\\n    readonly gatheringState: RTCIceGathererState;\\n    ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\\n    readonly role: RTCIceRole;\\n    readonly state: RTCIceTransportState;\\n    getLocalCandidates(): RTCIceCandidate[];\\n    getLocalParameters(): RTCIceParameters | null;\\n    getRemoteCandidates(): RTCIceCandidate[];\\n    getRemoteParameters(): RTCIceParameters | null;\\n    getSelectedCandidatePair(): RTCIceCandidatePair | null;\\n    addEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCIceTransport: {\\n    prototype: RTCIceTransport;\\n    new(): RTCIceTransport;\\n};\\n\\ninterface RTCIceTransportStateChangedEvent extends Event {\\n    readonly state: RTCIceTransportState;\\n}\\n\\ndeclare var RTCIceTransportStateChangedEvent: {\\n    prototype: RTCIceTransportStateChangedEvent;\\n    new(): RTCIceTransportStateChangedEvent;\\n};\\n\\ninterface RTCIdentityAssertion {\\n    idp: string;\\n    name: string;\\n}\\n\\ndeclare var RTCIdentityAssertion: {\\n    prototype: RTCIdentityAssertion;\\n    new(idp: string, name: string): RTCIdentityAssertion;\\n};\\n\\ninterface RTCPeerConnectionEventMap {\\n    \"connectionstatechange\": Event;\\n    \"datachannel\": RTCDataChannelEvent;\\n    \"icecandidate\": RTCPeerConnectionIceEvent;\\n    \"icecandidateerror\": RTCPeerConnectionIceErrorEvent;\\n    \"iceconnectionstatechange\": Event;\\n    \"icegatheringstatechange\": Event;\\n    \"negotiationneeded\": Event;\\n    \"signalingstatechange\": Event;\\n    \"statsended\": RTCStatsEvent;\\n    \"track\": RTCTrackEvent;\\n}\\n\\n/** A WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it\\'s no longer needed. */\\ninterface RTCPeerConnection extends EventTarget {\\n    readonly canTrickleIceCandidates: boolean | null;\\n    readonly connectionState: RTCPeerConnectionState;\\n    readonly currentLocalDescription: RTCSessionDescription | null;\\n    readonly currentRemoteDescription: RTCSessionDescription | null;\\n    readonly iceConnectionState: RTCIceConnectionState;\\n    readonly iceGatheringState: RTCIceGatheringState;\\n    readonly idpErrorInfo: string | null;\\n    readonly idpLoginUrl: string | null;\\n    readonly localDescription: RTCSessionDescription | null;\\n    onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;\\n    onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;\\n    onicecandidateerror: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceErrorEvent) => any) | null;\\n    oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\\n    onstatsended: ((this: RTCPeerConnection, ev: RTCStatsEvent) => any) | null;\\n    ontrack: ((this: RTCPeerConnection, ev: RTCTrackEvent) => any) | null;\\n    readonly peerIdentity: Promise<RTCIdentityAssertion>;\\n    readonly pendingLocalDescription: RTCSessionDescription | null;\\n    readonly pendingRemoteDescription: RTCSessionDescription | null;\\n    readonly remoteDescription: RTCSessionDescription | null;\\n    readonly sctp: RTCSctpTransport | null;\\n    readonly signalingState: RTCSignalingState;\\n    addIceCandidate(candidate: RTCIceCandidateInit | RTCIceCandidate): Promise<void>;\\n    addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;\\n    addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;\\n    close(): void;\\n    createAnswer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;\\n    createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;\\n    createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;\\n    getConfiguration(): RTCConfiguration;\\n    getIdentityAssertion(): Promise<string>;\\n    getReceivers(): RTCRtpReceiver[];\\n    getSenders(): RTCRtpSender[];\\n    getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;\\n    getTransceivers(): RTCRtpTransceiver[];\\n    removeTrack(sender: RTCRtpSender): void;\\n    setConfiguration(configuration: RTCConfiguration): void;\\n    setIdentityProvider(provider: string, options?: RTCIdentityProviderOptions): void;\\n    setLocalDescription(description: RTCSessionDescriptionInit): Promise<void>;\\n    setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;\\n    addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCPeerConnection: {\\n    prototype: RTCPeerConnection;\\n    new(configuration?: RTCConfiguration): RTCPeerConnection;\\n    generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;\\n    getDefaultIceServers(): RTCIceServer[];\\n};\\n\\ninterface RTCPeerConnectionIceErrorEvent extends Event {\\n    readonly errorCode: number;\\n    readonly errorText: string;\\n    readonly hostCandidate: string;\\n    readonly url: string;\\n}\\n\\ndeclare var RTCPeerConnectionIceErrorEvent: {\\n    prototype: RTCPeerConnectionIceErrorEvent;\\n    new(type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;\\n};\\n\\n/** Events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate. */\\ninterface RTCPeerConnectionIceEvent extends Event {\\n    readonly candidate: RTCIceCandidate | null;\\n    readonly url: string | null;\\n}\\n\\ndeclare var RTCPeerConnectionIceEvent: {\\n    prototype: RTCPeerConnectionIceEvent;\\n    new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;\\n};\\n\\n/** This WebRTC API interface manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection. */\\ninterface RTCRtpReceiver {\\n    readonly rtcpTransport: RTCDtlsTransport | null;\\n    readonly track: MediaStreamTrack;\\n    readonly transport: RTCDtlsTransport | null;\\n    getContributingSources(): RTCRtpContributingSource[];\\n    getParameters(): RTCRtpReceiveParameters;\\n    getStats(): Promise<RTCStatsReport>;\\n    getSynchronizationSources(): RTCRtpSynchronizationSource[];\\n}\\n\\ndeclare var RTCRtpReceiver: {\\n    prototype: RTCRtpReceiver;\\n    new(): RTCRtpReceiver;\\n    getCapabilities(kind: string): RTCRtpCapabilities | null;\\n};\\n\\n/** Provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer. */\\ninterface RTCRtpSender {\\n    readonly dtmf: RTCDTMFSender | null;\\n    readonly rtcpTransport: RTCDtlsTransport | null;\\n    readonly track: MediaStreamTrack | null;\\n    readonly transport: RTCDtlsTransport | null;\\n    getParameters(): RTCRtpSendParameters;\\n    getStats(): Promise<RTCStatsReport>;\\n    replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;\\n    setParameters(parameters: RTCRtpSendParameters): Promise<void>;\\n    setStreams(...streams: MediaStream[]): void;\\n}\\n\\ndeclare var RTCRtpSender: {\\n    prototype: RTCRtpSender;\\n    new(): RTCRtpSender;\\n    getCapabilities(kind: string): RTCRtpCapabilities | null;\\n};\\n\\ninterface RTCRtpTransceiver {\\n    readonly currentDirection: RTCRtpTransceiverDirection | null;\\n    direction: RTCRtpTransceiverDirection;\\n    readonly mid: string | null;\\n    readonly receiver: RTCRtpReceiver;\\n    readonly sender: RTCRtpSender;\\n    readonly stopped: boolean;\\n    setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;\\n    stop(): void;\\n}\\n\\ndeclare var RTCRtpTransceiver: {\\n    prototype: RTCRtpTransceiver;\\n    new(): RTCRtpTransceiver;\\n};\\n\\ninterface RTCSctpTransportEventMap {\\n    \"statechange\": Event;\\n}\\n\\ninterface RTCSctpTransport {\\n    readonly maxChannels: number | null;\\n    readonly maxMessageSize: number;\\n    onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;\\n    readonly state: RTCSctpTransportState;\\n    readonly transport: RTCDtlsTransport;\\n    addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCSctpTransport: {\\n    prototype: RTCSctpTransport;\\n    new(): RTCSctpTransport;\\n};\\n\\n/** One end of a connection—or potential connection—and how it\\'s configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session. */\\ninterface RTCSessionDescription {\\n    readonly sdp: string;\\n    readonly type: RTCSdpType;\\n    toJSON(): any;\\n}\\n\\ndeclare var RTCSessionDescription: {\\n    prototype: RTCSessionDescription;\\n    new(descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;\\n};\\n\\ninterface RTCSrtpSdesTransportEventMap {\\n    \"error\": Event;\\n}\\n\\ninterface RTCSrtpSdesTransport extends EventTarget {\\n    onerror: ((this: RTCSrtpSdesTransport, ev: Event) => any) | null;\\n    readonly transport: RTCIceTransport;\\n    addEventListener<K extends keyof RTCSrtpSdesTransportEventMap>(type: K, listener: (this: RTCSrtpSdesTransport, ev: RTCSrtpSdesTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCSrtpSdesTransportEventMap>(type: K, listener: (this: RTCSrtpSdesTransport, ev: RTCSrtpSdesTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var RTCSrtpSdesTransport: {\\n    prototype: RTCSrtpSdesTransport;\\n    new(transport: RTCIceTransport, encryptParameters: RTCSrtpSdesParameters, decryptParameters: RTCSrtpSdesParameters): RTCSrtpSdesTransport;\\n    getLocalParameters(): RTCSrtpSdesParameters[];\\n};\\n\\ninterface RTCSsrcConflictEvent extends Event {\\n    readonly ssrc: number;\\n}\\n\\ndeclare var RTCSsrcConflictEvent: {\\n    prototype: RTCSsrcConflictEvent;\\n    new(): RTCSsrcConflictEvent;\\n};\\n\\ninterface RTCStatsEvent extends Event {\\n    readonly report: RTCStatsReport;\\n}\\n\\ndeclare var RTCStatsEvent: {\\n    prototype: RTCStatsEvent;\\n    new(type: string, eventInitDict: RTCStatsEventInit): RTCStatsEvent;\\n};\\n\\ninterface RTCStatsProvider extends EventTarget {\\n    getStats(): Promise<RTCStatsReport>;\\n    msGetStats(): Promise<RTCStatsReport>;\\n}\\n\\ndeclare var RTCStatsProvider: {\\n    prototype: RTCStatsProvider;\\n    new(): RTCStatsProvider;\\n};\\n\\ninterface RTCStatsReport {\\n    forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;\\n}\\n\\ndeclare var RTCStatsReport: {\\n    prototype: RTCStatsReport;\\n    new(): RTCStatsReport;\\n};\\n\\ninterface RTCTrackEvent extends Event {\\n    readonly receiver: RTCRtpReceiver;\\n    readonly streams: ReadonlyArray<MediaStream>;\\n    readonly track: MediaStreamTrack;\\n    readonly transceiver: RTCRtpTransceiver;\\n}\\n\\ndeclare var RTCTrackEvent: {\\n    prototype: RTCTrackEvent;\\n    new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;\\n};\\n\\ninterface RadioNodeList extends NodeList {\\n    value: string;\\n}\\n\\ndeclare var RadioNodeList: {\\n    prototype: RadioNodeList;\\n    new(): RadioNodeList;\\n};\\n\\ninterface RandomSource {\\n    getRandomValues<T extends Int8Array | Uint8ClampedArray | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array>(array: T): T;\\n}\\n\\ndeclare var RandomSource: {\\n    prototype: RandomSource;\\n    new(): RandomSource;\\n};\\n\\n/** A fragment of a document that can contain nodes and parts of text nodes. */\\ninterface Range extends AbstractRange {\\n    /**\\n     * Returns the node, furthest away from the document, that is an ancestor of both range\\'s start node and end node.\\n     */\\n    readonly commonAncestorContainer: Node;\\n    cloneContents(): DocumentFragment;\\n    cloneRange(): Range;\\n    collapse(toStart?: boolean): void;\\n    compareBoundaryPoints(how: number, sourceRange: Range): number;\\n    /**\\n     * Returns −1 if the point is before the range, 0 if the point is in the range, and 1 if the point is after the range.\\n     */\\n    comparePoint(node: Node, offset: number): number;\\n    createContextualFragment(fragment: string): DocumentFragment;\\n    deleteContents(): void;\\n    detach(): void;\\n    extractContents(): DocumentFragment;\\n    getBoundingClientRect(): DOMRect;\\n    getClientRects(): DOMRectList;\\n    insertNode(node: Node): void;\\n    /**\\n     * Returns whether range intersects node.\\n     */\\n    intersectsNode(node: Node): boolean;\\n    isPointInRange(node: Node, offset: number): boolean;\\n    selectNode(node: Node): void;\\n    selectNodeContents(node: Node): void;\\n    setEnd(node: Node, offset: number): void;\\n    setEndAfter(node: Node): void;\\n    setEndBefore(node: Node): void;\\n    setStart(node: Node, offset: number): void;\\n    setStartAfter(node: Node): void;\\n    setStartBefore(node: Node): void;\\n    surroundContents(newParent: Node): void;\\n    readonly END_TO_END: number;\\n    readonly END_TO_START: number;\\n    readonly START_TO_END: number;\\n    readonly START_TO_START: number;\\n}\\n\\ndeclare var Range: {\\n    prototype: Range;\\n    new(): Range;\\n    readonly END_TO_END: number;\\n    readonly END_TO_START: number;\\n    readonly START_TO_END: number;\\n    readonly START_TO_START: number;\\n};\\n\\ninterface ReadableByteStreamController {\\n    readonly byobRequest: ReadableStreamBYOBRequest | undefined;\\n    readonly desiredSize: number | null;\\n    close(): void;\\n    enqueue(chunk: ArrayBufferView): void;\\n    error(error?: any): void;\\n}\\n\\n/** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */\\ninterface ReadableStream<R = any> {\\n    readonly locked: boolean;\\n    cancel(reason?: any): Promise<void>;\\n    getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader;\\n    getReader(): ReadableStreamDefaultReader<R>;\\n    pipeThrough<T>({ writable, readable }: { writable: WritableStream<R>, readable: ReadableStream<T> }, options?: PipeOptions): ReadableStream<T>;\\n    pipeTo(dest: WritableStream<R>, options?: PipeOptions): Promise<void>;\\n    tee(): [ReadableStream<R>, ReadableStream<R>];\\n}\\n\\ndeclare var ReadableStream: {\\n    prototype: ReadableStream;\\n    new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number, size?: undefined }): ReadableStream<Uint8Array>;\\n    new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\\n};\\n\\ninterface ReadableStreamBYOBReader {\\n    readonly closed: Promise<void>;\\n    cancel(reason?: any): Promise<void>;\\n    read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;\\n    releaseLock(): void;\\n}\\n\\ninterface ReadableStreamBYOBRequest {\\n    readonly view: ArrayBufferView;\\n    respond(bytesWritten: number): void;\\n    respondWithNewView(view: ArrayBufferView): void;\\n}\\n\\ninterface ReadableStreamDefaultController<R = any> {\\n    readonly desiredSize: number | null;\\n    close(): void;\\n    enqueue(chunk: R): void;\\n    error(error?: any): void;\\n}\\n\\ninterface ReadableStreamDefaultReader<R = any> {\\n    readonly closed: Promise<void>;\\n    cancel(reason?: any): Promise<void>;\\n    read(): Promise<ReadableStreamReadResult<R>>;\\n    releaseLock(): void;\\n}\\n\\ninterface ReadableStreamReadResult<T> {\\n    done: boolean;\\n    value: T;\\n}\\n\\ninterface ReadableStreamReader<R = any> {\\n    cancel(): Promise<void>;\\n    read(): Promise<ReadableStreamReadResult<R>>;\\n    releaseLock(): void;\\n}\\n\\ndeclare var ReadableStreamReader: {\\n    prototype: ReadableStreamReader;\\n    new(): ReadableStreamReader;\\n};\\n\\n/** This Fetch API interface represents a resource request. */\\ninterface Request extends Body {\\n    /**\\n     * Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser\\'s cache when fetching.\\n     */\\n    readonly cache: RequestCache;\\n    /**\\n     * Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL.\\n     */\\n    readonly credentials: RequestCredentials;\\n    /**\\n     * Returns the kind of resource requested by request, e.g., \"document\" or \"script\".\\n     */\\n    readonly destination: RequestDestination;\\n    /**\\n     * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the \"Host\" header.\\n     */\\n    readonly headers: Headers;\\n    /**\\n     * Returns request\\'s subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI]\\n     */\\n    readonly integrity: string;\\n    /**\\n     * Returns a boolean indicating whether or not request is for a history navigation (a.k.a. back-foward navigation).\\n     */\\n    readonly isHistoryNavigation: boolean;\\n    /**\\n     * Returns a boolean indicating whether or not request is for a reload navigation.\\n     */\\n    readonly isReloadNavigation: boolean;\\n    /**\\n     * Returns a boolean indicating whether or not request can outlive the global in which it was created.\\n     */\\n    readonly keepalive: boolean;\\n    /**\\n     * Returns request\\'s HTTP method, which is \"GET\" by default.\\n     */\\n    readonly method: string;\\n    /**\\n     * Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs.\\n     */\\n    readonly mode: RequestMode;\\n    /**\\n     * Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default.\\n     */\\n    readonly redirect: RequestRedirect;\\n    /**\\n     * Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and \"about:client\" when defaulting to the global\\'s default. This is used during fetching to determine the value of the `Referer` header of the request being made.\\n     */\\n    readonly referrer: string;\\n    /**\\n     * Returns the referrer policy associated with request. This is used during fetching to compute the value of the request\\'s referrer.\\n     */\\n    readonly referrerPolicy: ReferrerPolicy;\\n    /**\\n     * Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler.\\n     */\\n    readonly signal: AbortSignal;\\n    /**\\n     * Returns the URL of request as a string.\\n     */\\n    readonly url: string;\\n    clone(): Request;\\n}\\n\\ndeclare var Request: {\\n    prototype: Request;\\n    new(input: RequestInfo, init?: RequestInit): Request;\\n};\\n\\n/** This Fetch API interface represents the response to a request. */\\ninterface Response extends Body {\\n    readonly headers: Headers;\\n    readonly ok: boolean;\\n    readonly redirected: boolean;\\n    readonly status: number;\\n    readonly statusText: string;\\n    readonly trailer: Promise<Headers>;\\n    readonly type: ResponseType;\\n    readonly url: string;\\n    clone(): Response;\\n}\\n\\ndeclare var Response: {\\n    prototype: Response;\\n    new(body?: BodyInit | null, init?: ResponseInit): Response;\\n    error(): Response;\\n    redirect(url: string, status?: number): Response;\\n};\\n\\n/** Provides access to the properties of <a> element, as well as methods to manipulate them. */\\ninterface SVGAElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly target: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAElement: {\\n    prototype: SVGAElement;\\n    new(): SVGAElement;\\n};\\n\\n/** Used to represent a value that can be an <angle> or <number> value. An SVGAngle reflected through the animVal attribute is always read only. */\\ninterface SVGAngle {\\n    readonly unitType: number;\\n    value: number;\\n    valueAsString: string;\\n    valueInSpecifiedUnits: number;\\n    convertToSpecifiedUnits(unitType: number): void;\\n    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\\n    readonly SVG_ANGLETYPE_DEG: number;\\n    readonly SVG_ANGLETYPE_GRAD: number;\\n    readonly SVG_ANGLETYPE_RAD: number;\\n    readonly SVG_ANGLETYPE_UNKNOWN: number;\\n    readonly SVG_ANGLETYPE_UNSPECIFIED: number;\\n}\\n\\ndeclare var SVGAngle: {\\n    prototype: SVGAngle;\\n    new(): SVGAngle;\\n    readonly SVG_ANGLETYPE_DEG: number;\\n    readonly SVG_ANGLETYPE_GRAD: number;\\n    readonly SVG_ANGLETYPE_RAD: number;\\n    readonly SVG_ANGLETYPE_UNKNOWN: number;\\n    readonly SVG_ANGLETYPE_UNSPECIFIED: number;\\n};\\n\\ninterface SVGAnimateElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateElement: {\\n    prototype: SVGAnimateElement;\\n    new(): SVGAnimateElement;\\n};\\n\\ninterface SVGAnimateMotionElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateMotionElement: {\\n    prototype: SVGAnimateMotionElement;\\n    new(): SVGAnimateMotionElement;\\n};\\n\\ninterface SVGAnimateTransformElement extends SVGAnimationElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimateTransformElement: {\\n    prototype: SVGAnimateTransformElement;\\n    new(): SVGAnimateTransformElement;\\n};\\n\\n/** Used for attributes of basic type <angle> which can be animated. */\\ninterface SVGAnimatedAngle {\\n    readonly animVal: SVGAngle;\\n    readonly baseVal: SVGAngle;\\n}\\n\\ndeclare var SVGAnimatedAngle: {\\n    prototype: SVGAnimatedAngle;\\n    new(): SVGAnimatedAngle;\\n};\\n\\n/** Used for attributes of type boolean which can be animated. */\\ninterface SVGAnimatedBoolean {\\n    readonly animVal: boolean;\\n    baseVal: boolean;\\n}\\n\\ndeclare var SVGAnimatedBoolean: {\\n    prototype: SVGAnimatedBoolean;\\n    new(): SVGAnimatedBoolean;\\n};\\n\\n/** Used for attributes whose value must be a constant from a particular enumeration and which can be animated. */\\ninterface SVGAnimatedEnumeration {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedEnumeration: {\\n    prototype: SVGAnimatedEnumeration;\\n    new(): SVGAnimatedEnumeration;\\n};\\n\\n/** Used for attributes of basic type <integer> which can be animated. */\\ninterface SVGAnimatedInteger {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedInteger: {\\n    prototype: SVGAnimatedInteger;\\n    new(): SVGAnimatedInteger;\\n};\\n\\n/** Used for attributes of basic type <length> which can be animated. */\\ninterface SVGAnimatedLength {\\n    readonly animVal: SVGLength;\\n    readonly baseVal: SVGLength;\\n}\\n\\ndeclare var SVGAnimatedLength: {\\n    prototype: SVGAnimatedLength;\\n    new(): SVGAnimatedLength;\\n};\\n\\n/** Used for attributes of type SVGLengthList which can be animated. */\\ninterface SVGAnimatedLengthList {\\n    readonly animVal: SVGLengthList;\\n    readonly baseVal: SVGLengthList;\\n}\\n\\ndeclare var SVGAnimatedLengthList: {\\n    prototype: SVGAnimatedLengthList;\\n    new(): SVGAnimatedLengthList;\\n};\\n\\n/** Used for attributes of basic type <Number> which can be animated. */\\ninterface SVGAnimatedNumber {\\n    readonly animVal: number;\\n    baseVal: number;\\n}\\n\\ndeclare var SVGAnimatedNumber: {\\n    prototype: SVGAnimatedNumber;\\n    new(): SVGAnimatedNumber;\\n};\\n\\n/** The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated. */\\ninterface SVGAnimatedNumberList {\\n    readonly animVal: SVGNumberList;\\n    readonly baseVal: SVGNumberList;\\n}\\n\\ndeclare var SVGAnimatedNumberList: {\\n    prototype: SVGAnimatedNumberList;\\n    new(): SVGAnimatedNumberList;\\n};\\n\\ninterface SVGAnimatedPoints {\\n    readonly animatedPoints: SVGPointList;\\n    readonly points: SVGPointList;\\n}\\n\\n/** Used for attributes of type SVGPreserveAspectRatio which can be animated. */\\ninterface SVGAnimatedPreserveAspectRatio {\\n    readonly animVal: SVGPreserveAspectRatio;\\n    readonly baseVal: SVGPreserveAspectRatio;\\n}\\n\\ndeclare var SVGAnimatedPreserveAspectRatio: {\\n    prototype: SVGAnimatedPreserveAspectRatio;\\n    new(): SVGAnimatedPreserveAspectRatio;\\n};\\n\\n/** Used for attributes of basic SVGRect which can be animated. */\\ninterface SVGAnimatedRect {\\n    readonly animVal: DOMRectReadOnly;\\n    readonly baseVal: DOMRect;\\n}\\n\\ndeclare var SVGAnimatedRect: {\\n    prototype: SVGAnimatedRect;\\n    new(): SVGAnimatedRect;\\n};\\n\\n/** The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this. */\\ninterface SVGAnimatedString {\\n    readonly animVal: string;\\n    baseVal: string;\\n}\\n\\ndeclare var SVGAnimatedString: {\\n    prototype: SVGAnimatedString;\\n    new(): SVGAnimatedString;\\n};\\n\\n/** Used for attributes which take a list of numbers and which can be animated. */\\ninterface SVGAnimatedTransformList {\\n    readonly animVal: SVGTransformList;\\n    readonly baseVal: SVGTransformList;\\n}\\n\\ndeclare var SVGAnimatedTransformList: {\\n    prototype: SVGAnimatedTransformList;\\n    new(): SVGAnimatedTransformList;\\n};\\n\\ninterface SVGAnimationElement extends SVGElement {\\n    readonly targetElement: SVGElement;\\n    getCurrentTime(): number;\\n    getSimpleDuration(): number;\\n    getStartTime(): number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGAnimationElement: {\\n    prototype: SVGAnimationElement;\\n    new(): SVGAnimationElement;\\n};\\n\\n/** An interface for the <circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle. */\\ninterface SVGCircleElement extends SVGGeometryElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly r: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGCircleElement: {\\n    prototype: SVGCircleElement;\\n    new(): SVGCircleElement;\\n};\\n\\n/** Provides access to the properties of <clipPath> elements, as well as methods to manipulate them. */\\ninterface SVGClipPathElement extends SVGElement {\\n    readonly clipPathUnits: SVGAnimatedEnumeration;\\n    readonly transform: SVGAnimatedTransformList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGClipPathElement: {\\n    prototype: SVGClipPathElement;\\n    new(): SVGClipPathElement;\\n};\\n\\n/** A base interface used by the component transfer function interfaces. */\\ninterface SVGComponentTransferFunctionElement extends SVGElement {\\n    readonly amplitude: SVGAnimatedNumber;\\n    readonly exponent: SVGAnimatedNumber;\\n    readonly intercept: SVGAnimatedNumber;\\n    readonly offset: SVGAnimatedNumber;\\n    readonly slope: SVGAnimatedNumber;\\n    readonly tableValues: SVGAnimatedNumberList;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGComponentTransferFunctionElement: {\\n    prototype: SVGComponentTransferFunctionElement;\\n    new(): SVGComponentTransferFunctionElement;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\\n    readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\\n};\\n\\ninterface SVGCursorElement extends SVGElement {\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCursorElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCursorElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGCursorElement: {\\n    prototype: SVGCursorElement;\\n    new(): SVGCursorElement;\\n};\\n\\n/** Corresponds to the <defs> element. */\\ninterface SVGDefsElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGDefsElement: {\\n    prototype: SVGDefsElement;\\n    new(): SVGDefsElement;\\n};\\n\\n/** Corresponds to the <desc> element. */\\ninterface SVGDescElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGDescElement: {\\n    prototype: SVGDescElement;\\n    new(): SVGDescElement;\\n};\\n\\ninterface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap {\\n}\\n\\n/** All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface. */\\ninterface SVGElement extends Element, DocumentAndElementEventHandlers, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement, SVGElementInstance {\\n    /** @deprecated */\\n    readonly className: any;\\n    readonly ownerSVGElement: SVGSVGElement | null;\\n    readonly viewportElement: SVGElement | null;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGElement: {\\n    prototype: SVGElement;\\n    new(): SVGElement;\\n};\\n\\ninterface SVGElementInstance extends EventTarget {\\n    readonly correspondingElement: SVGElement;\\n    readonly correspondingUseElement: SVGUseElement;\\n}\\n\\ndeclare var SVGElementInstance: {\\n    prototype: SVGElementInstance;\\n    new(): SVGElementInstance;\\n};\\n\\ninterface SVGElementInstanceList {\\n    /** @deprecated */\\n    readonly length: number;\\n    /** @deprecated */\\n    item(index: number): SVGElementInstance;\\n}\\n\\ndeclare var SVGElementInstanceList: {\\n    prototype: SVGElementInstanceList;\\n    new(): SVGElementInstanceList;\\n};\\n\\n/** Provides access to the properties of <ellipse> elements. */\\ninterface SVGEllipseElement extends SVGGeometryElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly rx: SVGAnimatedLength;\\n    readonly ry: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGEllipseElement: {\\n    prototype: SVGEllipseElement;\\n    new(): SVGEllipseElement;\\n};\\n\\n/** Corresponds to the <feBlend> element. */\\ninterface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly mode: SVGAnimatedEnumeration;\\n    readonly SVG_FEBLEND_MODE_COLOR: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\\n    readonly SVG_FEBLEND_MODE_DARKEN: number;\\n    readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\\n    readonly SVG_FEBLEND_MODE_EXCLUSION: number;\\n    readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_HUE: number;\\n    readonly SVG_FEBLEND_MODE_LIGHTEN: number;\\n    readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\\n    readonly SVG_FEBLEND_MODE_MULTIPLY: number;\\n    readonly SVG_FEBLEND_MODE_NORMAL: number;\\n    readonly SVG_FEBLEND_MODE_OVERLAY: number;\\n    readonly SVG_FEBLEND_MODE_SATURATION: number;\\n    readonly SVG_FEBLEND_MODE_SCREEN: number;\\n    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEBlendElement: {\\n    prototype: SVGFEBlendElement;\\n    new(): SVGFEBlendElement;\\n    readonly SVG_FEBLEND_MODE_COLOR: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\\n    readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\\n    readonly SVG_FEBLEND_MODE_DARKEN: number;\\n    readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\\n    readonly SVG_FEBLEND_MODE_EXCLUSION: number;\\n    readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_HUE: number;\\n    readonly SVG_FEBLEND_MODE_LIGHTEN: number;\\n    readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\\n    readonly SVG_FEBLEND_MODE_MULTIPLY: number;\\n    readonly SVG_FEBLEND_MODE_NORMAL: number;\\n    readonly SVG_FEBLEND_MODE_OVERLAY: number;\\n    readonly SVG_FEBLEND_MODE_SATURATION: number;\\n    readonly SVG_FEBLEND_MODE_SCREEN: number;\\n    readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\\n    readonly SVG_FEBLEND_MODE_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feColorMatrix> element. */\\ninterface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly values: SVGAnimatedNumberList;\\n    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEColorMatrixElement: {\\n    prototype: SVGFEColorMatrixElement;\\n    new(): SVGFEColorMatrixElement;\\n    readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\\n    readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feComponentTransfer> element. */\\ninterface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEComponentTransferElement: {\\n    prototype: SVGFEComponentTransferElement;\\n    new(): SVGFEComponentTransferElement;\\n};\\n\\n/** Corresponds to the <feComposite> element. */\\ninterface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly k1: SVGAnimatedNumber;\\n    readonly k2: SVGAnimatedNumber;\\n    readonly k3: SVGAnimatedNumber;\\n    readonly k4: SVGAnimatedNumber;\\n    readonly operator: SVGAnimatedEnumeration;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFECompositeElement: {\\n    prototype: SVGFECompositeElement;\\n    new(): SVGFECompositeElement;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\\n    readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\\n};\\n\\n/** Corresponds to the <feConvolveMatrix> element. */\\ninterface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly bias: SVGAnimatedNumber;\\n    readonly divisor: SVGAnimatedNumber;\\n    readonly edgeMode: SVGAnimatedEnumeration;\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelMatrix: SVGAnimatedNumberList;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly orderX: SVGAnimatedInteger;\\n    readonly orderY: SVGAnimatedInteger;\\n    readonly preserveAlpha: SVGAnimatedBoolean;\\n    readonly targetX: SVGAnimatedInteger;\\n    readonly targetY: SVGAnimatedInteger;\\n    readonly SVG_EDGEMODE_DUPLICATE: number;\\n    readonly SVG_EDGEMODE_NONE: number;\\n    readonly SVG_EDGEMODE_UNKNOWN: number;\\n    readonly SVG_EDGEMODE_WRAP: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEConvolveMatrixElement: {\\n    prototype: SVGFEConvolveMatrixElement;\\n    new(): SVGFEConvolveMatrixElement;\\n    readonly SVG_EDGEMODE_DUPLICATE: number;\\n    readonly SVG_EDGEMODE_NONE: number;\\n    readonly SVG_EDGEMODE_UNKNOWN: number;\\n    readonly SVG_EDGEMODE_WRAP: number;\\n};\\n\\n/** Corresponds to the <feDiffuseLighting> element. */\\ninterface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly diffuseConstant: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly surfaceScale: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDiffuseLightingElement: {\\n    prototype: SVGFEDiffuseLightingElement;\\n    new(): SVGFEDiffuseLightingElement;\\n};\\n\\n/** Corresponds to the <feDisplacementMap> element. */\\ninterface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly in2: SVGAnimatedString;\\n    readonly scale: SVGAnimatedNumber;\\n    readonly xChannelSelector: SVGAnimatedEnumeration;\\n    readonly yChannelSelector: SVGAnimatedEnumeration;\\n    readonly SVG_CHANNEL_A: number;\\n    readonly SVG_CHANNEL_B: number;\\n    readonly SVG_CHANNEL_G: number;\\n    readonly SVG_CHANNEL_R: number;\\n    readonly SVG_CHANNEL_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDisplacementMapElement: {\\n    prototype: SVGFEDisplacementMapElement;\\n    new(): SVGFEDisplacementMapElement;\\n    readonly SVG_CHANNEL_A: number;\\n    readonly SVG_CHANNEL_B: number;\\n    readonly SVG_CHANNEL_G: number;\\n    readonly SVG_CHANNEL_R: number;\\n    readonly SVG_CHANNEL_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feDistantLight> element. */\\ninterface SVGFEDistantLightElement extends SVGElement {\\n    readonly azimuth: SVGAnimatedNumber;\\n    readonly elevation: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDistantLightElement: {\\n    prototype: SVGFEDistantLightElement;\\n    new(): SVGFEDistantLightElement;\\n};\\n\\ninterface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly dx: SVGAnimatedNumber;\\n    readonly dy: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    readonly stdDeviationX: SVGAnimatedNumber;\\n    readonly stdDeviationY: SVGAnimatedNumber;\\n    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEDropShadowElement: {\\n    prototype: SVGFEDropShadowElement;\\n    new(): SVGFEDropShadowElement;\\n};\\n\\n/** Corresponds to the <feFlood> element. */\\ninterface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFloodElement: {\\n    prototype: SVGFEFloodElement;\\n    new(): SVGFEFloodElement;\\n};\\n\\n/** Corresponds to the <feFuncA> element. */\\ninterface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncAElement: {\\n    prototype: SVGFEFuncAElement;\\n    new(): SVGFEFuncAElement;\\n};\\n\\n/** Corresponds to the <feFuncB> element. */\\ninterface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncBElement: {\\n    prototype: SVGFEFuncBElement;\\n    new(): SVGFEFuncBElement;\\n};\\n\\n/** Corresponds to the <feFuncG> element. */\\ninterface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncGElement: {\\n    prototype: SVGFEFuncGElement;\\n    new(): SVGFEFuncGElement;\\n};\\n\\n/** Corresponds to the <feFuncR> element. */\\ninterface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEFuncRElement: {\\n    prototype: SVGFEFuncRElement;\\n    new(): SVGFEFuncRElement;\\n};\\n\\n/** Corresponds to the <feGaussianBlur> element. */\\ninterface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly stdDeviationX: SVGAnimatedNumber;\\n    readonly stdDeviationY: SVGAnimatedNumber;\\n    setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEGaussianBlurElement: {\\n    prototype: SVGFEGaussianBlurElement;\\n    new(): SVGFEGaussianBlurElement;\\n};\\n\\n/** Corresponds to the <feImage> element. */\\ninterface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEImageElement: {\\n    prototype: SVGFEImageElement;\\n    new(): SVGFEImageElement;\\n};\\n\\n/** Corresponds to the <feMerge> element. */\\ninterface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMergeElement: {\\n    prototype: SVGFEMergeElement;\\n    new(): SVGFEMergeElement;\\n};\\n\\n/** Corresponds to the <feMergeNode> element. */\\ninterface SVGFEMergeNodeElement extends SVGElement {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMergeNodeElement: {\\n    prototype: SVGFEMergeNodeElement;\\n    new(): SVGFEMergeNodeElement;\\n};\\n\\n/** Corresponds to the <feMorphology> element. */\\ninterface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly operator: SVGAnimatedEnumeration;\\n    readonly radiusX: SVGAnimatedNumber;\\n    readonly radiusY: SVGAnimatedNumber;\\n    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEMorphologyElement: {\\n    prototype: SVGFEMorphologyElement;\\n    new(): SVGFEMorphologyElement;\\n    readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\\n    readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <feOffset> element. */\\ninterface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly dx: SVGAnimatedNumber;\\n    readonly dy: SVGAnimatedNumber;\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEOffsetElement: {\\n    prototype: SVGFEOffsetElement;\\n    new(): SVGFEOffsetElement;\\n};\\n\\n/** Corresponds to the <fePointLight> element. */\\ninterface SVGFEPointLightElement extends SVGElement {\\n    readonly x: SVGAnimatedNumber;\\n    readonly y: SVGAnimatedNumber;\\n    readonly z: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFEPointLightElement: {\\n    prototype: SVGFEPointLightElement;\\n    new(): SVGFEPointLightElement;\\n};\\n\\n/** Corresponds to the <feSpecularLighting> element. */\\ninterface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    readonly kernelUnitLengthX: SVGAnimatedNumber;\\n    readonly kernelUnitLengthY: SVGAnimatedNumber;\\n    readonly specularConstant: SVGAnimatedNumber;\\n    readonly specularExponent: SVGAnimatedNumber;\\n    readonly surfaceScale: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFESpecularLightingElement: {\\n    prototype: SVGFESpecularLightingElement;\\n    new(): SVGFESpecularLightingElement;\\n};\\n\\n/** Corresponds to the <feSpotLight> element. */\\ninterface SVGFESpotLightElement extends SVGElement {\\n    readonly limitingConeAngle: SVGAnimatedNumber;\\n    readonly pointsAtX: SVGAnimatedNumber;\\n    readonly pointsAtY: SVGAnimatedNumber;\\n    readonly pointsAtZ: SVGAnimatedNumber;\\n    readonly specularExponent: SVGAnimatedNumber;\\n    readonly x: SVGAnimatedNumber;\\n    readonly y: SVGAnimatedNumber;\\n    readonly z: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFESpotLightElement: {\\n    prototype: SVGFESpotLightElement;\\n    new(): SVGFESpotLightElement;\\n};\\n\\n/** Corresponds to the <feTile> element. */\\ninterface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly in1: SVGAnimatedString;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFETileElement: {\\n    prototype: SVGFETileElement;\\n    new(): SVGFETileElement;\\n};\\n\\n/** Corresponds to the <feTurbulence> element. */\\ninterface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\\n    readonly baseFrequencyX: SVGAnimatedNumber;\\n    readonly baseFrequencyY: SVGAnimatedNumber;\\n    readonly numOctaves: SVGAnimatedInteger;\\n    readonly seed: SVGAnimatedNumber;\\n    readonly stitchTiles: SVGAnimatedEnumeration;\\n    readonly type: SVGAnimatedEnumeration;\\n    readonly SVG_STITCHTYPE_NOSTITCH: number;\\n    readonly SVG_STITCHTYPE_STITCH: number;\\n    readonly SVG_STITCHTYPE_UNKNOWN: number;\\n    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\\n    readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\\n    readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFETurbulenceElement: {\\n    prototype: SVGFETurbulenceElement;\\n    new(): SVGFETurbulenceElement;\\n    readonly SVG_STITCHTYPE_NOSTITCH: number;\\n    readonly SVG_STITCHTYPE_STITCH: number;\\n    readonly SVG_STITCHTYPE_UNKNOWN: number;\\n    readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\\n    readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\\n    readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\\n};\\n\\n/** Provides access to the properties of <filter> elements, as well as methods to manipulate them. */\\ninterface SVGFilterElement extends SVGElement, SVGURIReference {\\n    readonly filterUnits: SVGAnimatedEnumeration;\\n    readonly height: SVGAnimatedLength;\\n    readonly primitiveUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGFilterElement: {\\n    prototype: SVGFilterElement;\\n    new(): SVGFilterElement;\\n};\\n\\ninterface SVGFilterPrimitiveStandardAttributes {\\n    readonly height: SVGAnimatedLength;\\n    readonly result: SVGAnimatedString;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n}\\n\\ninterface SVGFitToViewBox {\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    readonly viewBox: SVGAnimatedRect;\\n}\\n\\n/** Provides access to the properties of <foreignObject> elements, as well as methods to manipulate them. */\\ninterface SVGForeignObjectElement extends SVGGraphicsElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGForeignObjectElement: {\\n    prototype: SVGForeignObjectElement;\\n    new(): SVGForeignObjectElement;\\n};\\n\\n/** Corresponds to the <g> element. */\\ninterface SVGGElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGElement: {\\n    prototype: SVGGElement;\\n    new(): SVGGElement;\\n};\\n\\ninterface SVGGeometryElement extends SVGGraphicsElement {\\n    readonly pathLength: SVGAnimatedNumber;\\n    getPointAtLength(distance: number): DOMPoint;\\n    getTotalLength(): number;\\n    isPointInFill(point?: DOMPointInit): boolean;\\n    isPointInStroke(point?: DOMPointInit): boolean;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGeometryElement: {\\n    prototype: SVGGeometryElement;\\n    new(): SVGGeometryElement;\\n};\\n\\n/** The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement. */\\ninterface SVGGradientElement extends SVGElement, SVGURIReference {\\n    readonly gradientTransform: SVGAnimatedTransformList;\\n    readonly gradientUnits: SVGAnimatedEnumeration;\\n    readonly spreadMethod: SVGAnimatedEnumeration;\\n    readonly SVG_SPREADMETHOD_PAD: number;\\n    readonly SVG_SPREADMETHOD_REFLECT: number;\\n    readonly SVG_SPREADMETHOD_REPEAT: number;\\n    readonly SVG_SPREADMETHOD_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGradientElement: {\\n    prototype: SVGGradientElement;\\n    new(): SVGGradientElement;\\n    readonly SVG_SPREADMETHOD_PAD: number;\\n    readonly SVG_SPREADMETHOD_REFLECT: number;\\n    readonly SVG_SPREADMETHOD_REPEAT: number;\\n    readonly SVG_SPREADMETHOD_UNKNOWN: number;\\n};\\n\\n/** SVG elements whose primary purpose is to directly render graphics into a group. */\\ninterface SVGGraphicsElement extends SVGElement, SVGTests {\\n    readonly transform: SVGAnimatedTransformList;\\n    getBBox(options?: SVGBoundingBoxOptions): DOMRect;\\n    getCTM(): DOMMatrix | null;\\n    getScreenCTM(): DOMMatrix | null;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGGraphicsElement: {\\n    prototype: SVGGraphicsElement;\\n    new(): SVGGraphicsElement;\\n};\\n\\n/** Corresponds to the <image> element. */\\ninterface SVGImageElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly height: SVGAnimatedLength;\\n    readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGImageElement: {\\n    prototype: SVGImageElement;\\n    new(): SVGImageElement;\\n};\\n\\n/** Correspond to the <length> basic data type. */\\ninterface SVGLength {\\n    readonly unitType: number;\\n    value: number;\\n    valueAsString: string;\\n    valueInSpecifiedUnits: number;\\n    convertToSpecifiedUnits(unitType: number): void;\\n    newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\\n    readonly SVG_LENGTHTYPE_CM: number;\\n    readonly SVG_LENGTHTYPE_EMS: number;\\n    readonly SVG_LENGTHTYPE_EXS: number;\\n    readonly SVG_LENGTHTYPE_IN: number;\\n    readonly SVG_LENGTHTYPE_MM: number;\\n    readonly SVG_LENGTHTYPE_NUMBER: number;\\n    readonly SVG_LENGTHTYPE_PC: number;\\n    readonly SVG_LENGTHTYPE_PERCENTAGE: number;\\n    readonly SVG_LENGTHTYPE_PT: number;\\n    readonly SVG_LENGTHTYPE_PX: number;\\n    readonly SVG_LENGTHTYPE_UNKNOWN: number;\\n}\\n\\ndeclare var SVGLength: {\\n    prototype: SVGLength;\\n    new(): SVGLength;\\n    readonly SVG_LENGTHTYPE_CM: number;\\n    readonly SVG_LENGTHTYPE_EMS: number;\\n    readonly SVG_LENGTHTYPE_EXS: number;\\n    readonly SVG_LENGTHTYPE_IN: number;\\n    readonly SVG_LENGTHTYPE_MM: number;\\n    readonly SVG_LENGTHTYPE_NUMBER: number;\\n    readonly SVG_LENGTHTYPE_PC: number;\\n    readonly SVG_LENGTHTYPE_PERCENTAGE: number;\\n    readonly SVG_LENGTHTYPE_PT: number;\\n    readonly SVG_LENGTHTYPE_PX: number;\\n    readonly SVG_LENGTHTYPE_UNKNOWN: number;\\n};\\n\\n/** The SVGLengthList defines a list of SVGLength objects. */\\ninterface SVGLengthList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGLength): SVGLength;\\n    clear(): void;\\n    getItem(index: number): SVGLength;\\n    initialize(newItem: SVGLength): SVGLength;\\n    insertItemBefore(newItem: SVGLength, index: number): SVGLength;\\n    removeItem(index: number): SVGLength;\\n    replaceItem(newItem: SVGLength, index: number): SVGLength;\\n    [index: number]: SVGLength;\\n}\\n\\ndeclare var SVGLengthList: {\\n    prototype: SVGLengthList;\\n    new(): SVGLengthList;\\n};\\n\\n/** Provides access to the properties of <line> elements, as well as methods to manipulate them. */\\ninterface SVGLineElement extends SVGGeometryElement {\\n    readonly x1: SVGAnimatedLength;\\n    readonly x2: SVGAnimatedLength;\\n    readonly y1: SVGAnimatedLength;\\n    readonly y2: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGLineElement: {\\n    prototype: SVGLineElement;\\n    new(): SVGLineElement;\\n};\\n\\n/** Corresponds to the <linearGradient> element. */\\ninterface SVGLinearGradientElement extends SVGGradientElement {\\n    readonly x1: SVGAnimatedLength;\\n    readonly x2: SVGAnimatedLength;\\n    readonly y1: SVGAnimatedLength;\\n    readonly y2: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGLinearGradientElement: {\\n    prototype: SVGLinearGradientElement;\\n    new(): SVGLinearGradientElement;\\n};\\n\\ninterface SVGMarkerElement extends SVGElement, SVGFitToViewBox {\\n    readonly markerHeight: SVGAnimatedLength;\\n    readonly markerUnits: SVGAnimatedEnumeration;\\n    readonly markerWidth: SVGAnimatedLength;\\n    readonly orientAngle: SVGAnimatedAngle;\\n    readonly orientType: SVGAnimatedEnumeration;\\n    readonly refX: SVGAnimatedLength;\\n    readonly refY: SVGAnimatedLength;\\n    setOrientToAngle(angle: SVGAngle): void;\\n    setOrientToAuto(): void;\\n    readonly SVG_MARKERUNITS_STROKEWIDTH: number;\\n    readonly SVG_MARKERUNITS_UNKNOWN: number;\\n    readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\\n    readonly SVG_MARKER_ORIENT_ANGLE: number;\\n    readonly SVG_MARKER_ORIENT_AUTO: number;\\n    readonly SVG_MARKER_ORIENT_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMarkerElement: {\\n    prototype: SVGMarkerElement;\\n    new(): SVGMarkerElement;\\n    readonly SVG_MARKERUNITS_STROKEWIDTH: number;\\n    readonly SVG_MARKERUNITS_UNKNOWN: number;\\n    readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\\n    readonly SVG_MARKER_ORIENT_ANGLE: number;\\n    readonly SVG_MARKER_ORIENT_AUTO: number;\\n    readonly SVG_MARKER_ORIENT_UNKNOWN: number;\\n};\\n\\n/** Provides access to the properties of <mask> elements, as well as methods to manipulate them. */\\ninterface SVGMaskElement extends SVGElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly maskContentUnits: SVGAnimatedEnumeration;\\n    readonly maskUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMaskElement: {\\n    prototype: SVGMaskElement;\\n    new(): SVGMaskElement;\\n};\\n\\n/** Corresponds to the <metadata> element. */\\ninterface SVGMetadataElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGMetadataElement: {\\n    prototype: SVGMetadataElement;\\n    new(): SVGMetadataElement;\\n};\\n\\n/** Corresponds to the <number> basic data type. */\\ninterface SVGNumber {\\n    value: number;\\n}\\n\\ndeclare var SVGNumber: {\\n    prototype: SVGNumber;\\n    new(): SVGNumber;\\n};\\n\\n/** The SVGNumberList defines a list of SVGNumber objects. */\\ninterface SVGNumberList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGNumber): SVGNumber;\\n    clear(): void;\\n    getItem(index: number): SVGNumber;\\n    initialize(newItem: SVGNumber): SVGNumber;\\n    insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;\\n    removeItem(index: number): SVGNumber;\\n    replaceItem(newItem: SVGNumber, index: number): SVGNumber;\\n    [index: number]: SVGNumber;\\n}\\n\\ndeclare var SVGNumberList: {\\n    prototype: SVGNumberList;\\n    new(): SVGNumberList;\\n};\\n\\n/** Corresponds to the <path> element. */\\ninterface SVGPathElement extends SVGGraphicsElement {\\n    /** @deprecated */\\n    readonly pathSegList: SVGPathSegList;\\n    /** @deprecated */\\n    createSVGPathSegArcAbs(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcAbs;\\n    /** @deprecated */\\n    createSVGPathSegArcRel(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcRel;\\n    /** @deprecated */\\n    createSVGPathSegClosePath(): SVGPathSegClosePath;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicAbs(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicRel(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicSmoothAbs(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoCubicSmoothRel(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticAbs(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticRel(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticRel;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticSmoothAbs(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothAbs;\\n    /** @deprecated */\\n    createSVGPathSegCurvetoQuadraticSmoothRel(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoAbs(x: number, y: number): SVGPathSegLinetoAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoHorizontalAbs(x: number): SVGPathSegLinetoHorizontalAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoHorizontalRel(x: number): SVGPathSegLinetoHorizontalRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoRel(x: number, y: number): SVGPathSegLinetoRel;\\n    /** @deprecated */\\n    createSVGPathSegLinetoVerticalAbs(y: number): SVGPathSegLinetoVerticalAbs;\\n    /** @deprecated */\\n    createSVGPathSegLinetoVerticalRel(y: number): SVGPathSegLinetoVerticalRel;\\n    /** @deprecated */\\n    createSVGPathSegMovetoAbs(x: number, y: number): SVGPathSegMovetoAbs;\\n    /** @deprecated */\\n    createSVGPathSegMovetoRel(x: number, y: number): SVGPathSegMovetoRel;\\n    /** @deprecated */\\n    getPathSegAtLength(distance: number): number;\\n    getPointAtLength(distance: number): SVGPoint;\\n    getTotalLength(): number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPathElement: {\\n    prototype: SVGPathElement;\\n    new(): SVGPathElement;\\n};\\n\\ninterface SVGPathSeg {\\n    readonly pathSegType: number;\\n    readonly pathSegTypeAsLetter: string;\\n    readonly PATHSEG_ARC_ABS: number;\\n    readonly PATHSEG_ARC_REL: number;\\n    readonly PATHSEG_CLOSEPATH: number;\\n    readonly PATHSEG_CURVETO_CUBIC_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_REL: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\\n    readonly PATHSEG_LINETO_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\\n    readonly PATHSEG_LINETO_REL: number;\\n    readonly PATHSEG_LINETO_VERTICAL_ABS: number;\\n    readonly PATHSEG_LINETO_VERTICAL_REL: number;\\n    readonly PATHSEG_MOVETO_ABS: number;\\n    readonly PATHSEG_MOVETO_REL: number;\\n    readonly PATHSEG_UNKNOWN: number;\\n}\\n\\ndeclare var SVGPathSeg: {\\n    prototype: SVGPathSeg;\\n    new(): SVGPathSeg;\\n    readonly PATHSEG_ARC_ABS: number;\\n    readonly PATHSEG_ARC_REL: number;\\n    readonly PATHSEG_CLOSEPATH: number;\\n    readonly PATHSEG_CURVETO_CUBIC_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_REL: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\\n    readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\\n    readonly PATHSEG_LINETO_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\\n    readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\\n    readonly PATHSEG_LINETO_REL: number;\\n    readonly PATHSEG_LINETO_VERTICAL_ABS: number;\\n    readonly PATHSEG_LINETO_VERTICAL_REL: number;\\n    readonly PATHSEG_MOVETO_ABS: number;\\n    readonly PATHSEG_MOVETO_REL: number;\\n    readonly PATHSEG_UNKNOWN: number;\\n};\\n\\ninterface SVGPathSegArcAbs extends SVGPathSeg {\\n    angle: number;\\n    largeArcFlag: boolean;\\n    r1: number;\\n    r2: number;\\n    sweepFlag: boolean;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegArcAbs: {\\n    prototype: SVGPathSegArcAbs;\\n    new(): SVGPathSegArcAbs;\\n};\\n\\ninterface SVGPathSegArcRel extends SVGPathSeg {\\n    angle: number;\\n    largeArcFlag: boolean;\\n    r1: number;\\n    r2: number;\\n    sweepFlag: boolean;\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegArcRel: {\\n    prototype: SVGPathSegArcRel;\\n    new(): SVGPathSegArcRel;\\n};\\n\\ninterface SVGPathSegClosePath extends SVGPathSeg {\\n}\\n\\ndeclare var SVGPathSegClosePath: {\\n    prototype: SVGPathSegClosePath;\\n    new(): SVGPathSegClosePath;\\n};\\n\\ninterface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    x2: number;\\n    y: number;\\n    y1: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicAbs: {\\n    prototype: SVGPathSegCurvetoCubicAbs;\\n    new(): SVGPathSegCurvetoCubicAbs;\\n};\\n\\ninterface SVGPathSegCurvetoCubicRel extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    x2: number;\\n    y: number;\\n    y1: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicRel: {\\n    prototype: SVGPathSegCurvetoCubicRel;\\n    new(): SVGPathSegCurvetoCubicRel;\\n};\\n\\ninterface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {\\n    x: number;\\n    x2: number;\\n    y: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicSmoothAbs: {\\n    prototype: SVGPathSegCurvetoCubicSmoothAbs;\\n    new(): SVGPathSegCurvetoCubicSmoothAbs;\\n};\\n\\ninterface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {\\n    x: number;\\n    x2: number;\\n    y: number;\\n    y2: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoCubicSmoothRel: {\\n    prototype: SVGPathSegCurvetoCubicSmoothRel;\\n    new(): SVGPathSegCurvetoCubicSmoothRel;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    y: number;\\n    y1: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticAbs: {\\n    prototype: SVGPathSegCurvetoQuadraticAbs;\\n    new(): SVGPathSegCurvetoQuadraticAbs;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {\\n    x: number;\\n    x1: number;\\n    y: number;\\n    y1: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticRel: {\\n    prototype: SVGPathSegCurvetoQuadraticRel;\\n    new(): SVGPathSegCurvetoQuadraticRel;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticSmoothAbs: {\\n    prototype: SVGPathSegCurvetoQuadraticSmoothAbs;\\n    new(): SVGPathSegCurvetoQuadraticSmoothAbs;\\n};\\n\\ninterface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegCurvetoQuadraticSmoothRel: {\\n    prototype: SVGPathSegCurvetoQuadraticSmoothRel;\\n    new(): SVGPathSegCurvetoQuadraticSmoothRel;\\n};\\n\\ninterface SVGPathSegLinetoAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoAbs: {\\n    prototype: SVGPathSegLinetoAbs;\\n    new(): SVGPathSegLinetoAbs;\\n};\\n\\ninterface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {\\n    x: number;\\n}\\n\\ndeclare var SVGPathSegLinetoHorizontalAbs: {\\n    prototype: SVGPathSegLinetoHorizontalAbs;\\n    new(): SVGPathSegLinetoHorizontalAbs;\\n};\\n\\ninterface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {\\n    x: number;\\n}\\n\\ndeclare var SVGPathSegLinetoHorizontalRel: {\\n    prototype: SVGPathSegLinetoHorizontalRel;\\n    new(): SVGPathSegLinetoHorizontalRel;\\n};\\n\\ninterface SVGPathSegLinetoRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoRel: {\\n    prototype: SVGPathSegLinetoRel;\\n    new(): SVGPathSegLinetoRel;\\n};\\n\\ninterface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoVerticalAbs: {\\n    prototype: SVGPathSegLinetoVerticalAbs;\\n    new(): SVGPathSegLinetoVerticalAbs;\\n};\\n\\ninterface SVGPathSegLinetoVerticalRel extends SVGPathSeg {\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegLinetoVerticalRel: {\\n    prototype: SVGPathSegLinetoVerticalRel;\\n    new(): SVGPathSegLinetoVerticalRel;\\n};\\n\\ninterface SVGPathSegList {\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGPathSeg): SVGPathSeg;\\n    clear(): void;\\n    getItem(index: number): SVGPathSeg;\\n    initialize(newItem: SVGPathSeg): SVGPathSeg;\\n    insertItemBefore(newItem: SVGPathSeg, index: number): SVGPathSeg;\\n    removeItem(index: number): SVGPathSeg;\\n    replaceItem(newItem: SVGPathSeg, index: number): SVGPathSeg;\\n}\\n\\ndeclare var SVGPathSegList: {\\n    prototype: SVGPathSegList;\\n    new(): SVGPathSegList;\\n};\\n\\ninterface SVGPathSegMovetoAbs extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegMovetoAbs: {\\n    prototype: SVGPathSegMovetoAbs;\\n    new(): SVGPathSegMovetoAbs;\\n};\\n\\ninterface SVGPathSegMovetoRel extends SVGPathSeg {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var SVGPathSegMovetoRel: {\\n    prototype: SVGPathSegMovetoRel;\\n    new(): SVGPathSegMovetoRel;\\n};\\n\\n/** Corresponds to the <pattern> element. */\\ninterface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGTests, SVGURIReference {\\n    readonly height: SVGAnimatedLength;\\n    readonly patternContentUnits: SVGAnimatedEnumeration;\\n    readonly patternTransform: SVGAnimatedTransformList;\\n    readonly patternUnits: SVGAnimatedEnumeration;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPatternElement: {\\n    prototype: SVGPatternElement;\\n    new(): SVGPatternElement;\\n};\\n\\ninterface SVGPointList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: DOMPoint): DOMPoint;\\n    clear(): void;\\n    getItem(index: number): DOMPoint;\\n    initialize(newItem: DOMPoint): DOMPoint;\\n    insertItemBefore(newItem: DOMPoint, index: number): DOMPoint;\\n    removeItem(index: number): DOMPoint;\\n    replaceItem(newItem: DOMPoint, index: number): DOMPoint;\\n    [index: number]: DOMPoint;\\n}\\n\\ndeclare var SVGPointList: {\\n    prototype: SVGPointList;\\n    new(): SVGPointList;\\n};\\n\\n/** Provides access to the properties of <polygon> elements, as well as methods to manipulate them. */\\ninterface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPolygonElement: {\\n    prototype: SVGPolygonElement;\\n    new(): SVGPolygonElement;\\n};\\n\\n/** Provides access to the properties of <polyline> elements, as well as methods to manipulate them. */\\ninterface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGPolylineElement: {\\n    prototype: SVGPolylineElement;\\n    new(): SVGPolylineElement;\\n};\\n\\n/** Corresponds to the preserveAspectRatio attribute, which is available for some of SVG\\'s elements. */\\ninterface SVGPreserveAspectRatio {\\n    align: number;\\n    meetOrSlice: number;\\n    readonly SVG_MEETORSLICE_MEET: number;\\n    readonly SVG_MEETORSLICE_SLICE: number;\\n    readonly SVG_MEETORSLICE_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_NONE: number;\\n    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\\n}\\n\\ndeclare var SVGPreserveAspectRatio: {\\n    prototype: SVGPreserveAspectRatio;\\n    new(): SVGPreserveAspectRatio;\\n    readonly SVG_MEETORSLICE_MEET: number;\\n    readonly SVG_MEETORSLICE_SLICE: number;\\n    readonly SVG_MEETORSLICE_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_NONE: number;\\n    readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\\n    readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\\n};\\n\\n/** Corresponds to the <RadialGradient> element. */\\ninterface SVGRadialGradientElement extends SVGGradientElement {\\n    readonly cx: SVGAnimatedLength;\\n    readonly cy: SVGAnimatedLength;\\n    readonly fx: SVGAnimatedLength;\\n    readonly fy: SVGAnimatedLength;\\n    readonly r: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGRadialGradientElement: {\\n    prototype: SVGRadialGradientElement;\\n    new(): SVGRadialGradientElement;\\n};\\n\\n/** Provides access to the properties of <rect> elements, as well as methods to manipulate them. */\\ninterface SVGRectElement extends SVGGeometryElement {\\n    readonly height: SVGAnimatedLength;\\n    readonly rx: SVGAnimatedLength;\\n    readonly ry: SVGAnimatedLength;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGRectElement: {\\n    prototype: SVGRectElement;\\n    new(): SVGRectElement;\\n};\\n\\ninterface SVGSVGElementEventMap extends SVGElementEventMap {\\n    \"SVGUnload\": Event;\\n    \"SVGZoom\": SVGZoomEvent;\\n}\\n\\n/** Provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices. */\\ninterface SVGSVGElement extends SVGGraphicsElement, DocumentEvent, SVGFitToViewBox, SVGZoomAndPan {\\n    /** @deprecated */\\n    contentScriptType: string;\\n    /** @deprecated */\\n    contentStyleType: string;\\n    currentScale: number;\\n    readonly currentTranslate: SVGPoint;\\n    readonly height: SVGAnimatedLength;\\n    onunload: ((this: SVGSVGElement, ev: Event) => any) | null;\\n    onzoom: ((this: SVGSVGElement, ev: SVGZoomEvent) => any) | null;\\n    /** @deprecated */\\n    readonly pixelUnitToMillimeterX: number;\\n    /** @deprecated */\\n    readonly pixelUnitToMillimeterY: number;\\n    /** @deprecated */\\n    readonly screenPixelToMillimeterX: number;\\n    /** @deprecated */\\n    readonly screenPixelToMillimeterY: number;\\n    /** @deprecated */\\n    readonly viewport: SVGRect;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    animationsPaused(): boolean;\\n    checkEnclosure(element: SVGElement, rect: SVGRect): boolean;\\n    checkIntersection(element: SVGElement, rect: SVGRect): boolean;\\n    createSVGAngle(): SVGAngle;\\n    createSVGLength(): SVGLength;\\n    createSVGMatrix(): SVGMatrix;\\n    createSVGNumber(): SVGNumber;\\n    createSVGPoint(): SVGPoint;\\n    createSVGRect(): SVGRect;\\n    createSVGTransform(): SVGTransform;\\n    createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\\n    deselectAll(): void;\\n    /** @deprecated */\\n    forceRedraw(): void;\\n    getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\n    getCurrentTime(): number;\\n    getElementById(elementId: string): Element;\\n    getEnclosureList(rect: SVGRect, referenceElement: SVGElement): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\\n    getIntersectionList(rect: SVGRect, referenceElement: SVGElement): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\\n    pauseAnimations(): void;\\n    setCurrentTime(seconds: number): void;\\n    /** @deprecated */\\n    suspendRedraw(maxWaitMilliseconds: number): number;\\n    unpauseAnimations(): void;\\n    /** @deprecated */\\n    unsuspendRedraw(suspendHandleID: number): void;\\n    /** @deprecated */\\n    unsuspendRedrawAll(): void;\\n    addEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSVGElement: {\\n    prototype: SVGSVGElement;\\n    new(): SVGSVGElement;\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the SVG <script> element. */\\ninterface SVGScriptElement extends SVGElement, SVGURIReference {\\n    type: string;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGScriptElement: {\\n    prototype: SVGScriptElement;\\n    new(): SVGScriptElement;\\n};\\n\\n/** Corresponds to the <stop> element. */\\ninterface SVGStopElement extends SVGElement {\\n    readonly offset: SVGAnimatedNumber;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGStopElement: {\\n    prototype: SVGStopElement;\\n    new(): SVGStopElement;\\n};\\n\\n/** The SVGStringList defines a list of DOMString objects. */\\ninterface SVGStringList {\\n    readonly length: number;\\n    readonly numberOfItems: number;\\n    appendItem(newItem: string): string;\\n    clear(): void;\\n    getItem(index: number): string;\\n    initialize(newItem: string): string;\\n    insertItemBefore(newItem: string, index: number): string;\\n    removeItem(index: number): string;\\n    replaceItem(newItem: string, index: number): string;\\n    [index: number]: string;\\n}\\n\\ndeclare var SVGStringList: {\\n    prototype: SVGStringList;\\n    new(): SVGStringList;\\n};\\n\\n/** Corresponds to the SVG <style> element. */\\ninterface SVGStyleElement extends SVGElement {\\n    disabled: boolean;\\n    media: string;\\n    title: string;\\n    type: string;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGStyleElement: {\\n    prototype: SVGStyleElement;\\n    new(): SVGStyleElement;\\n};\\n\\n/** Corresponds to the <switch> element. */\\ninterface SVGSwitchElement extends SVGGraphicsElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSwitchElement: {\\n    prototype: SVGSwitchElement;\\n    new(): SVGSwitchElement;\\n};\\n\\n/** Corresponds to the <symbol> element. */\\ninterface SVGSymbolElement extends SVGElement, SVGFitToViewBox {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGSymbolElement: {\\n    prototype: SVGSymbolElement;\\n    new(): SVGSymbolElement;\\n};\\n\\n/** A <tspan> element. */\\ninterface SVGTSpanElement extends SVGTextPositioningElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTSpanElement: {\\n    prototype: SVGTSpanElement;\\n    new(): SVGTSpanElement;\\n};\\n\\ninterface SVGTests {\\n    readonly requiredExtensions: SVGStringList;\\n    readonly systemLanguage: SVGStringList;\\n}\\n\\n/** Implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement. */\\ninterface SVGTextContentElement extends SVGGraphicsElement {\\n    readonly lengthAdjust: SVGAnimatedEnumeration;\\n    readonly textLength: SVGAnimatedLength;\\n    getCharNumAtPosition(point: SVGPoint): number;\\n    getComputedTextLength(): number;\\n    getEndPositionOfChar(charnum: number): SVGPoint;\\n    getExtentOfChar(charnum: number): SVGRect;\\n    getNumberOfChars(): number;\\n    getRotationOfChar(charnum: number): number;\\n    getStartPositionOfChar(charnum: number): SVGPoint;\\n    getSubStringLength(charnum: number, nchars: number): number;\\n    selectSubString(charnum: number, nchars: number): void;\\n    readonly LENGTHADJUST_SPACING: number;\\n    readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\\n    readonly LENGTHADJUST_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextContentElement: {\\n    prototype: SVGTextContentElement;\\n    new(): SVGTextContentElement;\\n    readonly LENGTHADJUST_SPACING: number;\\n    readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\\n    readonly LENGTHADJUST_UNKNOWN: number;\\n};\\n\\n/** Corresponds to the <text> elements. */\\ninterface SVGTextElement extends SVGTextPositioningElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextElement: {\\n    prototype: SVGTextElement;\\n    new(): SVGTextElement;\\n};\\n\\n/** Corresponds to the <textPath> element. */\\ninterface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {\\n    readonly method: SVGAnimatedEnumeration;\\n    readonly spacing: SVGAnimatedEnumeration;\\n    readonly startOffset: SVGAnimatedLength;\\n    readonly TEXTPATH_METHODTYPE_ALIGN: number;\\n    readonly TEXTPATH_METHODTYPE_STRETCH: number;\\n    readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\\n    readonly TEXTPATH_SPACINGTYPE_AUTO: number;\\n    readonly TEXTPATH_SPACINGTYPE_EXACT: number;\\n    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextPathElement: {\\n    prototype: SVGTextPathElement;\\n    new(): SVGTextPathElement;\\n    readonly TEXTPATH_METHODTYPE_ALIGN: number;\\n    readonly TEXTPATH_METHODTYPE_STRETCH: number;\\n    readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\\n    readonly TEXTPATH_SPACINGTYPE_AUTO: number;\\n    readonly TEXTPATH_SPACINGTYPE_EXACT: number;\\n    readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\\n};\\n\\n/** Implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement. */\\ninterface SVGTextPositioningElement extends SVGTextContentElement {\\n    readonly dx: SVGAnimatedLengthList;\\n    readonly dy: SVGAnimatedLengthList;\\n    readonly rotate: SVGAnimatedNumberList;\\n    readonly x: SVGAnimatedLengthList;\\n    readonly y: SVGAnimatedLengthList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTextPositioningElement: {\\n    prototype: SVGTextPositioningElement;\\n    new(): SVGTextPositioningElement;\\n};\\n\\n/** Corresponds to the <title> element. */\\ninterface SVGTitleElement extends SVGElement {\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGTitleElement: {\\n    prototype: SVGTitleElement;\\n    new(): SVGTitleElement;\\n};\\n\\n/** SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute. */\\ninterface SVGTransform {\\n    readonly angle: number;\\n    readonly matrix: SVGMatrix;\\n    readonly type: number;\\n    setMatrix(matrix: SVGMatrix): void;\\n    setRotate(angle: number, cx: number, cy: number): void;\\n    setScale(sx: number, sy: number): void;\\n    setSkewX(angle: number): void;\\n    setSkewY(angle: number): void;\\n    setTranslate(tx: number, ty: number): void;\\n    readonly SVG_TRANSFORM_MATRIX: number;\\n    readonly SVG_TRANSFORM_ROTATE: number;\\n    readonly SVG_TRANSFORM_SCALE: number;\\n    readonly SVG_TRANSFORM_SKEWX: number;\\n    readonly SVG_TRANSFORM_SKEWY: number;\\n    readonly SVG_TRANSFORM_TRANSLATE: number;\\n    readonly SVG_TRANSFORM_UNKNOWN: number;\\n}\\n\\ndeclare var SVGTransform: {\\n    prototype: SVGTransform;\\n    new(): SVGTransform;\\n    readonly SVG_TRANSFORM_MATRIX: number;\\n    readonly SVG_TRANSFORM_ROTATE: number;\\n    readonly SVG_TRANSFORM_SCALE: number;\\n    readonly SVG_TRANSFORM_SKEWX: number;\\n    readonly SVG_TRANSFORM_SKEWY: number;\\n    readonly SVG_TRANSFORM_TRANSLATE: number;\\n    readonly SVG_TRANSFORM_UNKNOWN: number;\\n};\\n\\n/** The SVGTransformList defines a list of SVGTransform objects. */\\ninterface SVGTransformList {\\n    readonly numberOfItems: number;\\n    appendItem(newItem: SVGTransform): SVGTransform;\\n    clear(): void;\\n    consolidate(): SVGTransform;\\n    createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\\n    getItem(index: number): SVGTransform;\\n    initialize(newItem: SVGTransform): SVGTransform;\\n    insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;\\n    removeItem(index: number): SVGTransform;\\n    replaceItem(newItem: SVGTransform, index: number): SVGTransform;\\n}\\n\\ndeclare var SVGTransformList: {\\n    prototype: SVGTransformList;\\n    new(): SVGTransformList;\\n};\\n\\ninterface SVGURIReference {\\n    readonly href: SVGAnimatedString;\\n}\\n\\n/** A commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes. */\\ninterface SVGUnitTypes {\\n    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;\\n    readonly SVG_UNIT_TYPE_UNKNOWN: number;\\n    readonly SVG_UNIT_TYPE_USERSPACEONUSE: number;\\n}\\n\\ndeclare var SVGUnitTypes: {\\n    prototype: SVGUnitTypes;\\n    new(): SVGUnitTypes;\\n    readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;\\n    readonly SVG_UNIT_TYPE_UNKNOWN: number;\\n    readonly SVG_UNIT_TYPE_USERSPACEONUSE: number;\\n};\\n\\n/** Corresponds to the <use> element. */\\ninterface SVGUseElement extends SVGGraphicsElement, SVGURIReference {\\n    readonly animatedInstanceRoot: SVGElementInstance | null;\\n    readonly height: SVGAnimatedLength;\\n    readonly instanceRoot: SVGElementInstance | null;\\n    readonly width: SVGAnimatedLength;\\n    readonly x: SVGAnimatedLength;\\n    readonly y: SVGAnimatedLength;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGUseElement: {\\n    prototype: SVGUseElement;\\n    new(): SVGUseElement;\\n};\\n\\n/** Provides access to the properties of <view> elements, as well as methods to manipulate them. */\\ninterface SVGViewElement extends SVGElement, SVGFitToViewBox, SVGZoomAndPan {\\n    /** @deprecated */\\n    readonly viewTarget: SVGStringList;\\n    addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SVGViewElement: {\\n    prototype: SVGViewElement;\\n    new(): SVGViewElement;\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\n/** Used to reflect the zoomAndPan attribute, and is mixed in to other interfaces for elements that support this attribute. */\\ninterface SVGZoomAndPan {\\n    readonly zoomAndPan: number;\\n}\\n\\ndeclare var SVGZoomAndPan: {\\n    readonly SVG_ZOOMANDPAN_DISABLE: number;\\n    readonly SVG_ZOOMANDPAN_MAGNIFY: number;\\n    readonly SVG_ZOOMANDPAN_UNKNOWN: number;\\n};\\n\\ninterface SVGZoomEvent extends UIEvent {\\n    readonly newScale: number;\\n    readonly newTranslate: SVGPoint;\\n    readonly previousScale: number;\\n    readonly previousTranslate: SVGPoint;\\n    readonly zoomRectScreen: SVGRect;\\n}\\n\\ndeclare var SVGZoomEvent: {\\n    prototype: SVGZoomEvent;\\n    new(): SVGZoomEvent;\\n};\\n\\ninterface ScopedCredential {\\n    readonly id: ArrayBuffer;\\n    readonly type: ScopedCredentialType;\\n}\\n\\ndeclare var ScopedCredential: {\\n    prototype: ScopedCredential;\\n    new(): ScopedCredential;\\n};\\n\\ninterface ScopedCredentialInfo {\\n    readonly credential: ScopedCredential;\\n    readonly publicKey: CryptoKey;\\n}\\n\\ndeclare var ScopedCredentialInfo: {\\n    prototype: ScopedCredentialInfo;\\n    new(): ScopedCredentialInfo;\\n};\\n\\n/** A screen, usually the one on which the current window is being rendered, and is obtained using window.screen. */\\ninterface Screen {\\n    readonly availHeight: number;\\n    readonly availWidth: number;\\n    readonly colorDepth: number;\\n    readonly height: number;\\n    readonly orientation: ScreenOrientation;\\n    readonly pixelDepth: number;\\n    readonly width: number;\\n}\\n\\ndeclare var Screen: {\\n    prototype: Screen;\\n    new(): Screen;\\n};\\n\\ninterface ScreenOrientationEventMap {\\n    \"change\": Event;\\n}\\n\\ninterface ScreenOrientation extends EventTarget {\\n    readonly angle: number;\\n    onchange: ((this: ScreenOrientation, ev: Event) => any) | null;\\n    readonly type: OrientationType;\\n    lock(orientation: OrientationLockType): Promise<void>;\\n    unlock(): void;\\n    addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ScreenOrientation: {\\n    prototype: ScreenOrientation;\\n    new(): ScreenOrientation;\\n};\\n\\ninterface ScriptProcessorNodeEventMap {\\n    \"audioprocess\": AudioProcessingEvent;\\n}\\n\\n/** Allows the generation, processing, or analyzing of audio using JavaScript. */\\ninterface ScriptProcessorNode extends AudioNode {\\n    /** @deprecated */\\n    readonly bufferSize: number;\\n    /** @deprecated */\\n    onaudioprocess: ((this: ScriptProcessorNode, ev: AudioProcessingEvent) => any) | null;\\n    addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ScriptProcessorNode: {\\n    prototype: ScriptProcessorNode;\\n    new(): ScriptProcessorNode;\\n};\\n\\n/** Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated. */\\ninterface SecurityPolicyViolationEvent extends Event {\\n    readonly blockedURI: string;\\n    readonly columnNumber: number;\\n    readonly documentURI: string;\\n    readonly effectiveDirective: string;\\n    readonly lineNumber: number;\\n    readonly originalPolicy: string;\\n    readonly referrer: string;\\n    readonly sourceFile: string;\\n    readonly statusCode: number;\\n    readonly violatedDirective: string;\\n}\\n\\ndeclare var SecurityPolicyViolationEvent: {\\n    prototype: SecurityPolicyViolationEvent;\\n    new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\\n};\\n\\n/** A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call Window.getSelection(). */\\ninterface Selection {\\n    readonly anchorNode: Node | null;\\n    readonly anchorOffset: number;\\n    readonly focusNode: Node | null;\\n    readonly focusOffset: number;\\n    readonly isCollapsed: boolean;\\n    readonly rangeCount: number;\\n    readonly type: string;\\n    addRange(range: Range): void;\\n    collapse(node: Node | null, offset?: number): void;\\n    collapseToEnd(): void;\\n    collapseToStart(): void;\\n    containsNode(node: Node, allowPartialContainment?: boolean): boolean;\\n    deleteFromDocument(): void;\\n    empty(): void;\\n    extend(node: Node, offset?: number): void;\\n    getRangeAt(index: number): Range;\\n    removeAllRanges(): void;\\n    removeRange(range: Range): void;\\n    selectAllChildren(node: Node): void;\\n    setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;\\n    setPosition(node: Node | null, offset?: number): void;\\n}\\n\\ndeclare var Selection: {\\n    prototype: Selection;\\n    new(): Selection;\\n};\\n\\ninterface ServiceUIFrameContext {\\n    getCachedFrameMessage(key: string): string;\\n    postFrameMessage(key: string, data: string): void;\\n}\\ndeclare var ServiceUIFrameContext: ServiceUIFrameContext;\\n\\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\\n    \"statechange\": Event;\\n}\\n\\n/** This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. */\\ninterface ServiceWorker extends EventTarget, AbstractWorker {\\n    onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\\n    readonly scriptURL: string;\\n    readonly state: ServiceWorkerState;\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorker: {\\n    prototype: ServiceWorker;\\n    new(): ServiceWorker;\\n};\\n\\ninterface ServiceWorkerContainerEventMap {\\n    \"controllerchange\": Event;\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n}\\n\\n/** The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. */\\ninterface ServiceWorkerContainer extends EventTarget {\\n    readonly controller: ServiceWorker | null;\\n    oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\\n    onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\\n    readonly ready: Promise<ServiceWorkerRegistration>;\\n    getRegistration(clientURL?: string): Promise<ServiceWorkerRegistration | undefined>;\\n    getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;\\n    register(scriptURL: string, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;\\n    startMessages(): void;\\n    addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorkerContainer: {\\n    prototype: ServiceWorkerContainer;\\n    new(): ServiceWorkerContainer;\\n};\\n\\n/** This ServiceWorker API interface contains information about an event sent to a ServiceWorkerContainer target. This extends the default message event to allow setting a ServiceWorker object as the source of a message. The event object is accessed via the handler function of a message event, when fired by a message received from a service worker. */\\ninterface ServiceWorkerMessageEvent extends Event {\\n    readonly data: any;\\n    readonly lastEventId: string;\\n    readonly origin: string;\\n    readonly ports: ReadonlyArray<MessagePort> | null;\\n    readonly source: ServiceWorker | MessagePort | null;\\n}\\n\\ndeclare var ServiceWorkerMessageEvent: {\\n    prototype: ServiceWorkerMessageEvent;\\n    new(type: string, eventInitDict?: ServiceWorkerMessageEventInit): ServiceWorkerMessageEvent;\\n};\\n\\ninterface ServiceWorkerRegistrationEventMap {\\n    \"updatefound\": Event;\\n}\\n\\n/** This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. */\\ninterface ServiceWorkerRegistration extends EventTarget {\\n    readonly active: ServiceWorker | null;\\n    readonly installing: ServiceWorker | null;\\n    readonly navigationPreload: NavigationPreloadManager;\\n    onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\\n    readonly pushManager: PushManager;\\n    readonly scope: string;\\n    readonly sync: SyncManager;\\n    readonly updateViaCache: ServiceWorkerUpdateViaCache;\\n    readonly waiting: ServiceWorker | null;\\n    getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;\\n    showNotification(title: string, options?: NotificationOptions): Promise<void>;\\n    unregister(): Promise<boolean>;\\n    update(): Promise<void>;\\n    addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var ServiceWorkerRegistration: {\\n    prototype: ServiceWorkerRegistration;\\n    new(): ServiceWorkerRegistration;\\n};\\n\\ninterface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot, InnerHTML {\\n    readonly host: Element;\\n    readonly mode: ShadowRootMode;\\n}\\n\\ndeclare var ShadowRoot: {\\n    prototype: ShadowRoot;\\n    new(): ShadowRoot;\\n};\\n\\ninterface Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n}\\n\\ninterface SourceBufferEventMap {\\n    \"abort\": Event;\\n    \"error\": Event;\\n    \"update\": Event;\\n    \"updateend\": Event;\\n    \"updatestart\": Event;\\n}\\n\\n/** A chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments. */\\ninterface SourceBuffer extends EventTarget {\\n    appendWindowEnd: number;\\n    appendWindowStart: number;\\n    readonly audioTracks: AudioTrackList;\\n    readonly buffered: TimeRanges;\\n    mode: AppendMode;\\n    onabort: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onerror: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdate: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;\\n    onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;\\n    readonly textTracks: TextTrackList;\\n    timestampOffset: number;\\n    readonly updating: boolean;\\n    readonly videoTracks: VideoTrackList;\\n    abort(): void;\\n    appendBuffer(data: BufferSource): void;\\n    remove(start: number, end: number): void;\\n    addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SourceBuffer: {\\n    prototype: SourceBuffer;\\n    new(): SourceBuffer;\\n};\\n\\ninterface SourceBufferListEventMap {\\n    \"addsourcebuffer\": Event;\\n    \"removesourcebuffer\": Event;\\n}\\n\\n/** A simple container list for multiple SourceBuffer objects. */\\ninterface SourceBufferList extends EventTarget {\\n    readonly length: number;\\n    onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\\n    onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\\n    addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: SourceBuffer;\\n}\\n\\ndeclare var SourceBufferList: {\\n    prototype: SourceBufferList;\\n    new(): SourceBufferList;\\n};\\n\\ninterface SpeechGrammar {\\n    src: string;\\n    weight: number;\\n}\\n\\ndeclare var SpeechGrammar: {\\n    prototype: SpeechGrammar;\\n    new(): SpeechGrammar;\\n};\\n\\ninterface SpeechGrammarList {\\n    readonly length: number;\\n    addFromString(string: string, weight?: number): void;\\n    addFromURI(src: string, weight?: number): void;\\n    item(index: number): SpeechGrammar;\\n    [index: number]: SpeechGrammar;\\n}\\n\\ndeclare var SpeechGrammarList: {\\n    prototype: SpeechGrammarList;\\n    new(): SpeechGrammarList;\\n};\\n\\ninterface SpeechRecognitionEventMap {\\n    \"audioend\": Event;\\n    \"audiostart\": Event;\\n    \"end\": Event;\\n    \"error\": SpeechRecognitionError;\\n    \"nomatch\": SpeechRecognitionEvent;\\n    \"result\": SpeechRecognitionEvent;\\n    \"soundend\": Event;\\n    \"soundstart\": Event;\\n    \"speechend\": Event;\\n    \"speechstart\": Event;\\n    \"start\": Event;\\n}\\n\\ninterface SpeechRecognition extends EventTarget {\\n    continuous: boolean;\\n    grammars: SpeechGrammarList;\\n    interimResults: boolean;\\n    lang: string;\\n    maxAlternatives: number;\\n    onaudioend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onaudiostart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onerror: ((this: SpeechRecognition, ev: SpeechRecognitionError) => any) | null;\\n    onnomatch: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;\\n    onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;\\n    onsoundend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onsoundstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onspeechend: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onspeechstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    onstart: ((this: SpeechRecognition, ev: Event) => any) | null;\\n    serviceURI: string;\\n    abort(): void;\\n    start(): void;\\n    stop(): void;\\n    addEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechRecognition: {\\n    prototype: SpeechRecognition;\\n    new(): SpeechRecognition;\\n};\\n\\ninterface SpeechRecognitionAlternative {\\n    readonly confidence: number;\\n    readonly transcript: string;\\n}\\n\\ndeclare var SpeechRecognitionAlternative: {\\n    prototype: SpeechRecognitionAlternative;\\n    new(): SpeechRecognitionAlternative;\\n};\\n\\ninterface SpeechRecognitionError extends Event {\\n    readonly error: SpeechRecognitionErrorCode;\\n    readonly message: string;\\n}\\n\\ndeclare var SpeechRecognitionError: {\\n    prototype: SpeechRecognitionError;\\n    new(): SpeechRecognitionError;\\n};\\n\\ninterface SpeechRecognitionEvent extends Event {\\n    readonly emma: Document | null;\\n    readonly interpretation: any;\\n    readonly resultIndex: number;\\n    readonly results: SpeechRecognitionResultList;\\n}\\n\\ndeclare var SpeechRecognitionEvent: {\\n    prototype: SpeechRecognitionEvent;\\n    new(): SpeechRecognitionEvent;\\n};\\n\\ninterface SpeechRecognitionResult {\\n    readonly isFinal: boolean;\\n    readonly length: number;\\n    item(index: number): SpeechRecognitionAlternative;\\n    [index: number]: SpeechRecognitionAlternative;\\n}\\n\\ndeclare var SpeechRecognitionResult: {\\n    prototype: SpeechRecognitionResult;\\n    new(): SpeechRecognitionResult;\\n};\\n\\ninterface SpeechRecognitionResultList {\\n    readonly length: number;\\n    item(index: number): SpeechRecognitionResult;\\n    [index: number]: SpeechRecognitionResult;\\n}\\n\\ndeclare var SpeechRecognitionResultList: {\\n    prototype: SpeechRecognitionResultList;\\n    new(): SpeechRecognitionResultList;\\n};\\n\\ninterface SpeechSynthesisEventMap {\\n    \"voiceschanged\": Event;\\n}\\n\\n/** This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides. */\\ninterface SpeechSynthesis extends EventTarget {\\n    onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;\\n    readonly paused: boolean;\\n    readonly pending: boolean;\\n    readonly speaking: boolean;\\n    cancel(): void;\\n    getVoices(): SpeechSynthesisVoice[];\\n    pause(): void;\\n    resume(): void;\\n    speak(utterance: SpeechSynthesisUtterance): void;\\n    addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechSynthesis: {\\n    prototype: SpeechSynthesis;\\n    new(): SpeechSynthesis;\\n};\\n\\ninterface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {\\n    readonly error: SpeechSynthesisErrorCode;\\n}\\n\\ndeclare var SpeechSynthesisErrorEvent: {\\n    prototype: SpeechSynthesisErrorEvent;\\n    new(): SpeechSynthesisErrorEvent;\\n};\\n\\n/** This Web Speech API interface contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service. */\\ninterface SpeechSynthesisEvent extends Event {\\n    readonly charIndex: number;\\n    readonly elapsedTime: number;\\n    readonly name: string;\\n    readonly utterance: SpeechSynthesisUtterance;\\n}\\n\\ndeclare var SpeechSynthesisEvent: {\\n    prototype: SpeechSynthesisEvent;\\n    new(): SpeechSynthesisEvent;\\n};\\n\\ninterface SpeechSynthesisUtteranceEventMap {\\n    \"boundary\": SpeechSynthesisEvent;\\n    \"end\": SpeechSynthesisEvent;\\n    \"error\": SpeechSynthesisErrorEvent;\\n    \"mark\": SpeechSynthesisEvent;\\n    \"pause\": SpeechSynthesisEvent;\\n    \"resume\": SpeechSynthesisEvent;\\n    \"start\": SpeechSynthesisEvent;\\n}\\n\\n/** This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.) */\\ninterface SpeechSynthesisUtterance extends EventTarget {\\n    lang: string;\\n    onboundary: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onend: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onerror: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisErrorEvent) => any) | null;\\n    onmark: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onpause: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onresume: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    onstart: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\\n    pitch: number;\\n    rate: number;\\n    text: string;\\n    voice: SpeechSynthesisVoice;\\n    volume: number;\\n    addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var SpeechSynthesisUtterance: {\\n    prototype: SpeechSynthesisUtterance;\\n    new(): SpeechSynthesisUtterance;\\n    new(text: string): SpeechSynthesisUtterance;\\n};\\n\\n/** This Web Speech API interface represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI. */\\ninterface SpeechSynthesisVoice {\\n    readonly default: boolean;\\n    readonly lang: string;\\n    readonly localService: boolean;\\n    readonly name: string;\\n    readonly voiceURI: string;\\n}\\n\\ndeclare var SpeechSynthesisVoice: {\\n    prototype: SpeechSynthesisVoice;\\n    new(): SpeechSynthesisVoice;\\n};\\n\\ninterface StaticRange extends AbstractRange {\\n}\\n\\ndeclare var StaticRange: {\\n    prototype: StaticRange;\\n    new(): StaticRange;\\n};\\n\\n/** The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode. */\\ninterface StereoPannerNode extends AudioNode {\\n    readonly pan: AudioParam;\\n}\\n\\ndeclare var StereoPannerNode: {\\n    prototype: StereoPannerNode;\\n    new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;\\n};\\n\\n/** This Web Storage API interface provides access to a particular domain\\'s session or local storage. It allows, for example, the addition, modification, or deletion of stored data items. */\\ninterface Storage {\\n    /**\\n     * Returns the number of key/value pairs currently present in the list associated with the object.\\n     */\\n    readonly length: number;\\n    /**\\n     * Empties the list associated with the object of all key/value pairs, if there are any.\\n     */\\n    clear(): void;\\n    /**\\n     * Returns the current value associated with the given key, or null if the given key does not exist in the list associated with the object.\\n     */\\n    getItem(key: string): string | null;\\n    /**\\n     * Returns the name of the nth key in the list, or null if n is greater than or equal to the number of key/value pairs in the object.\\n     */\\n    key(index: number): string | null;\\n    /**\\n     * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.\\n     */\\n    removeItem(key: string): void;\\n    /**\\n     * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.\\n     * \\n     * Throws a \"QuotaExceededError\" DOMException exception if the new value couldn\\'t be set. (Setting could fail if, e.g., the user has disabled storage for the site, or if the quota has been exceeded.)\\n     */\\n    setItem(key: string, value: string): void;\\n    [name: string]: any;\\n}\\n\\ndeclare var Storage: {\\n    prototype: Storage;\\n    new(): Storage;\\n};\\n\\n/** A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document. */\\ninterface StorageEvent extends Event {\\n    /**\\n     * Returns the key of the storage item being changed.\\n     */\\n    readonly key: string | null;\\n    /**\\n     * Returns the new value of the key of the storage item whose value is being changed.\\n     */\\n    readonly newValue: string | null;\\n    /**\\n     * Returns the old value of the key of the storage item whose value is being changed.\\n     */\\n    readonly oldValue: string | null;\\n    /**\\n     * Returns the Storage object that was affected.\\n     */\\n    readonly storageArea: Storage | null;\\n    /**\\n     * Returns the URL of the document whose storage item changed.\\n     */\\n    readonly url: string;\\n}\\n\\ndeclare var StorageEvent: {\\n    prototype: StorageEvent;\\n    new(type: string, eventInitDict?: StorageEventInit): StorageEvent;\\n};\\n\\ninterface StorageManager {\\n    estimate(): Promise<StorageEstimate>;\\n    persist(): Promise<boolean>;\\n    persisted(): Promise<boolean>;\\n}\\n\\ndeclare var StorageManager: {\\n    prototype: StorageManager;\\n    new(): StorageManager;\\n};\\n\\ninterface StyleMedia {\\n    readonly type: string;\\n    matchMedium(mediaquery: string): boolean;\\n}\\n\\ndeclare var StyleMedia: {\\n    prototype: StyleMedia;\\n    new(): StyleMedia;\\n};\\n\\n/** A single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface. */\\ninterface StyleSheet {\\n    disabled: boolean;\\n    readonly href: string | null;\\n    readonly media: MediaList;\\n    readonly ownerNode: Node;\\n    readonly parentStyleSheet: StyleSheet | null;\\n    readonly title: string | null;\\n    readonly type: string;\\n}\\n\\ndeclare var StyleSheet: {\\n    prototype: StyleSheet;\\n    new(): StyleSheet;\\n};\\n\\n/** A list of StyleSheet. */\\ninterface StyleSheetList {\\n    readonly length: number;\\n    item(index: number): StyleSheet | null;\\n    [index: number]: StyleSheet;\\n}\\n\\ndeclare var StyleSheetList: {\\n    prototype: StyleSheetList;\\n    new(): StyleSheetList;\\n};\\n\\n/** This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). */\\ninterface SubtleCrypto {\\n    decrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    deriveBits(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, length: number): PromiseLike<ArrayBuffer>;\\n    deriveKey(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: string | AesDerivedKeyParams | HmacImportParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    digest(algorithm: string | Algorithm, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    encrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    exportKey(format: \"jwk\", key: CryptoKey): PromiseLike<JsonWebKey>;\\n    exportKey(format: \"raw\" | \"pkcs8\" | \"spki\", key: CryptoKey): PromiseLike<ArrayBuffer>;\\n    exportKey(format: string, key: CryptoKey): PromiseLike<JsonWebKey | ArrayBuffer>;\\n    generateKey(algorithm: string, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKeyPair | CryptoKey>;\\n    generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams | DhKeyGenParams, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKeyPair>;\\n    generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: \"raw\" | \"pkcs8\" | \"spki\", keyData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    importKey(format: string, keyData: JsonWebKey | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    sign(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\\n    unwrapKey(format: string, wrappedKey: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, unwrappingKey: CryptoKey, unwrapAlgorithm: string | Algorithm, unwrappedKeyAlgorithm: string | Algorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\\n    verify(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, signature: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<boolean>;\\n    wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: string | Algorithm): PromiseLike<ArrayBuffer>;\\n}\\n\\ndeclare var SubtleCrypto: {\\n    prototype: SubtleCrypto;\\n    new(): SubtleCrypto;\\n};\\n\\n/** This ServiceWorker API interface provides an interface for registering and listing sync registrations. */\\ninterface SyncManager {\\n    getTags(): Promise<string[]>;\\n    register(tag: string): Promise<void>;\\n}\\n\\ndeclare var SyncManager: {\\n    prototype: SyncManager;\\n    new(): SyncManager;\\n};\\n\\n/** The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element\\'s text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children. */\\ninterface Text extends CharacterData, Slotable {\\n    readonly assignedSlot: HTMLSlotElement | null;\\n    /**\\n     * Returns the combined data of all direct Text node siblings.\\n     */\\n    readonly wholeText: string;\\n    /**\\n     * Splits data at the given offset and returns the remainder as Text node.\\n     */\\n    splitText(offset: number): Text;\\n}\\n\\ndeclare var Text: {\\n    prototype: Text;\\n    new(data?: string): Text;\\n};\\n\\n/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\\ninterface TextDecoder extends TextDecoderCommon {\\n    /**\\n     * Returns the result of running encoding\\'s decoder. The method can be invoked zero or more times with options\\'s stream set to true, and then once without options\\'s stream (or set to false), to process a fragmented stream. If the invocation without options\\'s stream (or set to false) has no input, it\\'s clearest to omit both arguments.\\n     * \\n     * ```\\n     * var string = \"\", decoder = new TextDecoder(encoding), buffer;\\n     * while(buffer = next_chunk()) {\\n     *   string += decoder.decode(buffer, {stream:true});\\n     * }\\n     * string += decoder.decode(); // end-of-stream\\n     * ```\\n     * \\n     * If the error mode is \"fatal\" and encoding\\'s decoder returns error, throws a TypeError.\\n     */\\n    decode(input?: BufferSource, options?: TextDecodeOptions): string;\\n}\\n\\ndeclare var TextDecoder: {\\n    prototype: TextDecoder;\\n    new(label?: string, options?: TextDecoderOptions): TextDecoder;\\n};\\n\\ninterface TextDecoderCommon {\\n    /**\\n     * Returns encoding\\'s name, lowercased.\\n     */\\n    readonly encoding: string;\\n    /**\\n     * Returns true if error mode is \"fatal\", and false otherwise.\\n     */\\n    readonly fatal: boolean;\\n    /**\\n     * Returns true if ignore BOM flag is set, and false otherwise.\\n     */\\n    readonly ignoreBOM: boolean;\\n}\\n\\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\\n}\\n\\ndeclare var TextDecoderStream: {\\n    prototype: TextDecoderStream;\\n    new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\\n};\\n\\n/** TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. */\\ninterface TextEncoder extends TextEncoderCommon {\\n    /**\\n     * Returns the result of running UTF-8\\'s encoder.\\n     */\\n    encode(input?: string): Uint8Array;\\n    /**\\n     * Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as a dictionary whereby read is the number of converted code units of source and written is the number of bytes modified in destination.\\n     */\\n    encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\\n}\\n\\ndeclare var TextEncoder: {\\n    prototype: TextEncoder;\\n    new(): TextEncoder;\\n};\\n\\ninterface TextEncoderCommon {\\n    /**\\n     * Returns \"utf-8\".\\n     */\\n    readonly encoding: string;\\n}\\n\\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\\n}\\n\\ndeclare var TextEncoderStream: {\\n    prototype: TextEncoderStream;\\n    new(): TextEncoderStream;\\n};\\n\\ninterface TextEvent extends UIEvent {\\n    readonly data: string;\\n    initTextEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, inputMethod: number, locale: string): void;\\n    readonly DOM_INPUT_METHOD_DROP: number;\\n    readonly DOM_INPUT_METHOD_HANDWRITING: number;\\n    readonly DOM_INPUT_METHOD_IME: number;\\n    readonly DOM_INPUT_METHOD_KEYBOARD: number;\\n    readonly DOM_INPUT_METHOD_MULTIMODAL: number;\\n    readonly DOM_INPUT_METHOD_OPTION: number;\\n    readonly DOM_INPUT_METHOD_PASTE: number;\\n    readonly DOM_INPUT_METHOD_SCRIPT: number;\\n    readonly DOM_INPUT_METHOD_UNKNOWN: number;\\n    readonly DOM_INPUT_METHOD_VOICE: number;\\n}\\n\\ndeclare var TextEvent: {\\n    prototype: TextEvent;\\n    new(): TextEvent;\\n    readonly DOM_INPUT_METHOD_DROP: number;\\n    readonly DOM_INPUT_METHOD_HANDWRITING: number;\\n    readonly DOM_INPUT_METHOD_IME: number;\\n    readonly DOM_INPUT_METHOD_KEYBOARD: number;\\n    readonly DOM_INPUT_METHOD_MULTIMODAL: number;\\n    readonly DOM_INPUT_METHOD_OPTION: number;\\n    readonly DOM_INPUT_METHOD_PASTE: number;\\n    readonly DOM_INPUT_METHOD_SCRIPT: number;\\n    readonly DOM_INPUT_METHOD_UNKNOWN: number;\\n    readonly DOM_INPUT_METHOD_VOICE: number;\\n};\\n\\n/** The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method. */\\ninterface TextMetrics {\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxLeft: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly actualBoundingBoxRight: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly alphabeticBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly emHeightAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly emHeightDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly fontBoundingBoxAscent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly fontBoundingBoxDescent: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly hangingBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly ideographicBaseline: number;\\n    /**\\n     * Returns the measurement described below.\\n     */\\n    readonly width: number;\\n}\\n\\ndeclare var TextMetrics: {\\n    prototype: TextMetrics;\\n    new(): TextMetrics;\\n};\\n\\ninterface TextTrackEventMap {\\n    \"cuechange\": Event;\\n    \"error\": Event;\\n    \"load\": Event;\\n}\\n\\n/** This interface also inherits properties from EventTarget. */\\ninterface TextTrack extends EventTarget {\\n    readonly activeCues: TextTrackCueList;\\n    readonly cues: TextTrackCueList;\\n    readonly inBandMetadataTrackDispatchType: string;\\n    readonly kind: string;\\n    readonly label: string;\\n    readonly language: string;\\n    mode: TextTrackMode | number;\\n    oncuechange: ((this: TextTrack, ev: Event) => any) | null;\\n    onerror: ((this: TextTrack, ev: Event) => any) | null;\\n    onload: ((this: TextTrack, ev: Event) => any) | null;\\n    readonly readyState: number;\\n    readonly sourceBuffer: SourceBuffer | null;\\n    addCue(cue: TextTrackCue): void;\\n    removeCue(cue: TextTrackCue): void;\\n    readonly DISABLED: number;\\n    readonly ERROR: number;\\n    readonly HIDDEN: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    readonly SHOWING: number;\\n    addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var TextTrack: {\\n    prototype: TextTrack;\\n    new(): TextTrack;\\n    readonly DISABLED: number;\\n    readonly ERROR: number;\\n    readonly HIDDEN: number;\\n    readonly LOADED: number;\\n    readonly LOADING: number;\\n    readonly NONE: number;\\n    readonly SHOWING: number;\\n};\\n\\ninterface TextTrackCueEventMap {\\n    \"enter\": Event;\\n    \"exit\": Event;\\n}\\n\\n/** TextTrackCues represent a string of text that will be displayed for some duration of time on a TextTrack. This includes the start and end times that the cue will be displayed. A TextTrackCue cannot be used directly, instead one of the derived types (e.g. VTTCue) must be used. */\\ninterface TextTrackCue extends EventTarget {\\n    endTime: number;\\n    id: string;\\n    onenter: ((this: TextTrackCue, ev: Event) => any) | null;\\n    onexit: ((this: TextTrackCue, ev: Event) => any) | null;\\n    pauseOnExit: boolean;\\n    startTime: number;\\n    text: string;\\n    readonly track: TextTrack;\\n    getCueAsHTML(): DocumentFragment;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var TextTrackCue: {\\n    prototype: TextTrackCue;\\n    new(startTime: number, endTime: number, text: string): TextTrackCue;\\n};\\n\\ninterface TextTrackCueList {\\n    readonly length: number;\\n    getCueById(id: string): TextTrackCue;\\n    item(index: number): TextTrackCue;\\n    [index: number]: TextTrackCue;\\n}\\n\\ndeclare var TextTrackCueList: {\\n    prototype: TextTrackCueList;\\n    new(): TextTrackCueList;\\n};\\n\\ninterface TextTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n}\\n\\ninterface TextTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;\\n    item(index: number): TextTrack;\\n    addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: TextTrack;\\n}\\n\\ndeclare var TextTrackList: {\\n    prototype: TextTrackList;\\n    new(): TextTrackList;\\n};\\n\\n/** Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements. */\\ninterface TimeRanges {\\n    readonly length: number;\\n    end(index: number): number;\\n    start(index: number): number;\\n}\\n\\ndeclare var TimeRanges: {\\n    prototype: TimeRanges;\\n    new(): TimeRanges;\\n};\\n\\n/** A single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad. */\\ninterface Touch {\\n    readonly altitudeAngle: number;\\n    readonly azimuthAngle: number;\\n    readonly clientX: number;\\n    readonly clientY: number;\\n    readonly force: number;\\n    readonly identifier: number;\\n    readonly pageX: number;\\n    readonly pageY: number;\\n    readonly radiusX: number;\\n    readonly radiusY: number;\\n    readonly rotationAngle: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly target: EventTarget;\\n    readonly touchType: TouchType;\\n}\\n\\ndeclare var Touch: {\\n    prototype: Touch;\\n    new(touchInitDict: TouchInit): Touch;\\n};\\n\\n/** An event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth. */\\ninterface TouchEvent extends UIEvent {\\n    readonly altKey: boolean;\\n    readonly changedTouches: TouchList;\\n    readonly ctrlKey: boolean;\\n    readonly metaKey: boolean;\\n    readonly shiftKey: boolean;\\n    readonly targetTouches: TouchList;\\n    readonly touches: TouchList;\\n}\\n\\ndeclare var TouchEvent: {\\n    prototype: TouchEvent;\\n    new(type: string, eventInitDict?: TouchEventInit): TouchEvent;\\n};\\n\\n/** A list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries. */\\ninterface TouchList {\\n    readonly length: number;\\n    item(index: number): Touch | null;\\n    [index: number]: Touch;\\n}\\n\\ndeclare var TouchList: {\\n    prototype: TouchList;\\n    new(): TouchList;\\n};\\n\\n/** The TrackEvent interface, part of the HTML DOM specification, is used for events which represent changes to the set of available tracks on an HTML media element; these events are addtrack and removetrack. */\\ninterface TrackEvent extends Event {\\n    readonly track: VideoTrack | AudioTrack | TextTrack | null;\\n}\\n\\ndeclare var TrackEvent: {\\n    prototype: TrackEvent;\\n    new(typeArg: string, eventInitDict?: TrackEventInit): TrackEvent;\\n};\\n\\ninterface TransformStream<I = any, O = any> {\\n    readonly readable: ReadableStream<O>;\\n    readonly writable: WritableStream<I>;\\n}\\n\\ndeclare var TransformStream: {\\n    prototype: TransformStream;\\n    new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;\\n};\\n\\ninterface TransformStreamDefaultController<O = any> {\\n    readonly desiredSize: number | null;\\n    enqueue(chunk: O): void;\\n    error(reason?: any): void;\\n    terminate(): void;\\n}\\n\\n/** Events providing information related to transitions. */\\ninterface TransitionEvent extends Event {\\n    readonly elapsedTime: number;\\n    readonly propertyName: string;\\n    readonly pseudoElement: string;\\n}\\n\\ndeclare var TransitionEvent: {\\n    prototype: TransitionEvent;\\n    new(type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;\\n};\\n\\n/** The nodes of a document subtree and a position within them. */\\ninterface TreeWalker {\\n    currentNode: Node;\\n    readonly filter: NodeFilter | null;\\n    readonly root: Node;\\n    readonly whatToShow: number;\\n    firstChild(): Node | null;\\n    lastChild(): Node | null;\\n    nextNode(): Node | null;\\n    nextSibling(): Node | null;\\n    parentNode(): Node | null;\\n    previousNode(): Node | null;\\n    previousSibling(): Node | null;\\n}\\n\\ndeclare var TreeWalker: {\\n    prototype: TreeWalker;\\n    new(): TreeWalker;\\n};\\n\\n/** Simple user interface events. */\\ninterface UIEvent extends Event {\\n    readonly detail: number;\\n    readonly view: Window | null;\\n    /** @deprecated */\\n    readonly which: number;\\n}\\n\\ndeclare var UIEvent: {\\n    prototype: UIEvent;\\n    new(type: string, eventInitDict?: UIEventInit): UIEvent;\\n};\\n\\n/** The URL interface represents an object providing static methods used for creating object URLs. */\\ninterface URL {\\n    hash: string;\\n    host: string;\\n    hostname: string;\\n    href: string;\\n    readonly origin: string;\\n    password: string;\\n    pathname: string;\\n    port: string;\\n    protocol: string;\\n    search: string;\\n    readonly searchParams: URLSearchParams;\\n    username: string;\\n    toJSON(): string;\\n}\\n\\ndeclare var URL: {\\n    prototype: URL;\\n    new(url: string, base?: string | URL): URL;\\n    createObjectURL(object: any): string;\\n    revokeObjectURL(url: string): void;\\n};\\n\\ntype webkitURL = URL;\\ndeclare var webkitURL: typeof URL;\\n\\ninterface URLSearchParams {\\n    /**\\n     * Appends a specified key/value pair as a new search parameter.\\n     */\\n    append(name: string, value: string): void;\\n    /**\\n     * Deletes the given search parameter, and its associated value, from the list of all search parameters.\\n     */\\n    delete(name: string): void;\\n    /**\\n     * Returns the first value associated to the given search parameter.\\n     */\\n    get(name: string): string | null;\\n    /**\\n     * Returns all the values association with a given search parameter.\\n     */\\n    getAll(name: string): string[];\\n    /**\\n     * Returns a Boolean indicating if such a search parameter exists.\\n     */\\n    has(name: string): boolean;\\n    /**\\n     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.\\n     */\\n    set(name: string, value: string): void;\\n    sort(): void;\\n    forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\\n}\\n\\ndeclare var URLSearchParams: {\\n    prototype: URLSearchParams;\\n    new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;\\n};\\n\\n/** This WebVR API interface represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality. */\\ninterface VRDisplay extends EventTarget {\\n    readonly capabilities: VRDisplayCapabilities;\\n    depthFar: number;\\n    depthNear: number;\\n    readonly displayId: number;\\n    readonly displayName: string;\\n    readonly isConnected: boolean;\\n    readonly isPresenting: boolean;\\n    readonly stageParameters: VRStageParameters | null;\\n    cancelAnimationFrame(handle: number): void;\\n    exitPresent(): Promise<void>;\\n    getEyeParameters(whichEye: string): VREyeParameters;\\n    getFrameData(frameData: VRFrameData): boolean;\\n    getLayers(): VRLayer[];\\n    /** @deprecated */\\n    getPose(): VRPose;\\n    requestAnimationFrame(callback: FrameRequestCallback): number;\\n    requestPresent(layers: VRLayer[]): Promise<void>;\\n    resetPose(): void;\\n    submitFrame(pose?: VRPose): void;\\n}\\n\\ndeclare var VRDisplay: {\\n    prototype: VRDisplay;\\n    new(): VRDisplay;\\n};\\n\\n/** This WebVR API interface describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information. */\\ninterface VRDisplayCapabilities {\\n    readonly canPresent: boolean;\\n    readonly hasExternalDisplay: boolean;\\n    readonly hasOrientation: boolean;\\n    readonly hasPosition: boolean;\\n    readonly maxLayers: number;\\n}\\n\\ndeclare var VRDisplayCapabilities: {\\n    prototype: VRDisplayCapabilities;\\n    new(): VRDisplayCapabilities;\\n};\\n\\n/** This WebVR API interface represents represents the event object of WebVR-related events (see the list of WebVR window extensions). */\\ninterface VRDisplayEvent extends Event {\\n    readonly display: VRDisplay;\\n    readonly reason: VRDisplayEventReason | null;\\n}\\n\\ndeclare var VRDisplayEvent: {\\n    prototype: VRDisplayEvent;\\n    new(type: string, eventInitDict: VRDisplayEventInit): VRDisplayEvent;\\n};\\n\\n/** This WebVR API interface represents all the information required to correctly render a scene for a given eye, including field of view information. */\\ninterface VREyeParameters {\\n    /** @deprecated */\\n    readonly fieldOfView: VRFieldOfView;\\n    readonly offset: Float32Array;\\n    readonly renderHeight: number;\\n    readonly renderWidth: number;\\n}\\n\\ndeclare var VREyeParameters: {\\n    prototype: VREyeParameters;\\n    new(): VREyeParameters;\\n};\\n\\n/** This WebVR API interface represents a field of view defined by 4 different degree values describing the view from a center point. */\\ninterface VRFieldOfView {\\n    readonly downDegrees: number;\\n    readonly leftDegrees: number;\\n    readonly rightDegrees: number;\\n    readonly upDegrees: number;\\n}\\n\\ndeclare var VRFieldOfView: {\\n    prototype: VRFieldOfView;\\n    new(): VRFieldOfView;\\n};\\n\\n/** This WebVR API interface represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData(). */\\ninterface VRFrameData {\\n    readonly leftProjectionMatrix: Float32Array;\\n    readonly leftViewMatrix: Float32Array;\\n    readonly pose: VRPose;\\n    readonly rightProjectionMatrix: Float32Array;\\n    readonly rightViewMatrix: Float32Array;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var VRFrameData: {\\n    prototype: VRFrameData;\\n    new(): VRFrameData;\\n};\\n\\n/** This WebVR API interface represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information.) */\\ninterface VRPose {\\n    readonly angularAcceleration: Float32Array | null;\\n    readonly angularVelocity: Float32Array | null;\\n    readonly linearAcceleration: Float32Array | null;\\n    readonly linearVelocity: Float32Array | null;\\n    readonly orientation: Float32Array | null;\\n    readonly position: Float32Array | null;\\n    readonly timestamp: number;\\n}\\n\\ndeclare var VRPose: {\\n    prototype: VRPose;\\n    new(): VRPose;\\n};\\n\\ninterface VTTCue extends TextTrackCue {\\n    align: AlignSetting;\\n    line: LineAndPositionSetting;\\n    lineAlign: LineAlignSetting;\\n    position: LineAndPositionSetting;\\n    positionAlign: PositionAlignSetting;\\n    region: VTTRegion | null;\\n    size: number;\\n    snapToLines: boolean;\\n    text: string;\\n    vertical: DirectionSetting;\\n    getCueAsHTML(): DocumentFragment;\\n    addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var VTTCue: {\\n    prototype: VTTCue;\\n    new(startTime: number, endTime: number, text: string): VTTCue;\\n};\\n\\ninterface VTTRegion {\\n    id: string;\\n    lines: number;\\n    regionAnchorX: number;\\n    regionAnchorY: number;\\n    scroll: ScrollSetting;\\n    viewportAnchorX: number;\\n    viewportAnchorY: number;\\n    width: number;\\n}\\n\\ndeclare var VTTRegion: {\\n    prototype: VTTRegion;\\n    new(): VTTRegion;\\n};\\n\\n/** The validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element\\'s value fails to validate, if it\\'s not valid. */\\ninterface ValidityState {\\n    readonly badInput: boolean;\\n    readonly customError: boolean;\\n    readonly patternMismatch: boolean;\\n    readonly rangeOverflow: boolean;\\n    readonly rangeUnderflow: boolean;\\n    readonly stepMismatch: boolean;\\n    readonly tooLong: boolean;\\n    readonly tooShort: boolean;\\n    readonly typeMismatch: boolean;\\n    readonly valid: boolean;\\n    readonly valueMissing: boolean;\\n}\\n\\ndeclare var ValidityState: {\\n    prototype: ValidityState;\\n    new(): ValidityState;\\n};\\n\\n/** Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video. */\\ninterface VideoPlaybackQuality {\\n    readonly corruptedVideoFrames: number;\\n    readonly creationTime: number;\\n    readonly droppedVideoFrames: number;\\n    readonly totalFrameDelay: number;\\n    readonly totalVideoFrames: number;\\n}\\n\\ndeclare var VideoPlaybackQuality: {\\n    prototype: VideoPlaybackQuality;\\n    new(): VideoPlaybackQuality;\\n};\\n\\n/** A single video track from a <video> element. */\\ninterface VideoTrack {\\n    readonly id: string;\\n    kind: string;\\n    readonly label: string;\\n    language: string;\\n    selected: boolean;\\n    readonly sourceBuffer: SourceBuffer | null;\\n}\\n\\ndeclare var VideoTrack: {\\n    prototype: VideoTrack;\\n    new(): VideoTrack;\\n};\\n\\ninterface VideoTrackListEventMap {\\n    \"addtrack\": TrackEvent;\\n    \"change\": Event;\\n    \"removetrack\": TrackEvent;\\n}\\n\\n/** Used to represent a list of the video tracks contained within a <video> element, with each track represented by a separate VideoTrack object in the list. */\\ninterface VideoTrackList extends EventTarget {\\n    readonly length: number;\\n    onaddtrack: ((this: VideoTrackList, ev: TrackEvent) => any) | null;\\n    onchange: ((this: VideoTrackList, ev: Event) => any) | null;\\n    onremovetrack: ((this: VideoTrackList, ev: TrackEvent) => any) | null;\\n    readonly selectedIndex: number;\\n    getTrackById(id: string): VideoTrack | null;\\n    item(index: number): VideoTrack;\\n    addEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: VideoTrack;\\n}\\n\\ndeclare var VideoTrackList: {\\n    prototype: VideoTrackList;\\n    new(): VideoTrackList;\\n};\\n\\ninterface WEBGL_color_buffer_float {\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum;\\n    readonly RGBA32F_EXT: GLenum;\\n    readonly UNSIGNED_NORMALIZED_EXT: GLenum;\\n}\\n\\ninterface WEBGL_compressed_texture_astc {\\n    getSupportedProfiles(): string[];\\n    readonly COMPRESSED_RGBA_ASTC_10x10_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_10x8_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_12x10_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_12x12_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_4x4_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_5x4_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_5x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_6x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_6x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x5_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x6_KHR: GLenum;\\n    readonly COMPRESSED_RGBA_ASTC_8x8_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: GLenum;\\n    readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: GLenum;\\n}\\n\\n/** The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats. */\\ninterface WEBGL_compressed_texture_s3tc {\\n    readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: GLenum;\\n    readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: GLenum;\\n    readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: GLenum;\\n    readonly COMPRESSED_RGB_S3TC_DXT1_EXT: GLenum;\\n}\\n\\ninterface WEBGL_compressed_texture_s3tc_srgb {\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: GLenum;\\n    readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: GLenum;\\n}\\n\\n/** The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes. */\\ninterface WEBGL_debug_renderer_info {\\n    readonly UNMASKED_RENDERER_WEBGL: GLenum;\\n    readonly UNMASKED_VENDOR_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_debug_shaders {\\n    getTranslatedShaderSource(shader: WebGLShader): string;\\n}\\n\\n/** The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures. */\\ninterface WEBGL_depth_texture {\\n    readonly UNSIGNED_INT_24_8_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_draw_buffers {\\n    drawBuffersWEBGL(buffers: GLenum[]): void;\\n    readonly COLOR_ATTACHMENT0_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT10_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT11_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT12_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT13_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT14_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT15_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT1_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT2_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT3_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT4_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT5_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT6_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT7_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT8_WEBGL: GLenum;\\n    readonly COLOR_ATTACHMENT9_WEBGL: GLenum;\\n    readonly DRAW_BUFFER0_WEBGL: GLenum;\\n    readonly DRAW_BUFFER10_WEBGL: GLenum;\\n    readonly DRAW_BUFFER11_WEBGL: GLenum;\\n    readonly DRAW_BUFFER12_WEBGL: GLenum;\\n    readonly DRAW_BUFFER13_WEBGL: GLenum;\\n    readonly DRAW_BUFFER14_WEBGL: GLenum;\\n    readonly DRAW_BUFFER15_WEBGL: GLenum;\\n    readonly DRAW_BUFFER1_WEBGL: GLenum;\\n    readonly DRAW_BUFFER2_WEBGL: GLenum;\\n    readonly DRAW_BUFFER3_WEBGL: GLenum;\\n    readonly DRAW_BUFFER4_WEBGL: GLenum;\\n    readonly DRAW_BUFFER5_WEBGL: GLenum;\\n    readonly DRAW_BUFFER6_WEBGL: GLenum;\\n    readonly DRAW_BUFFER7_WEBGL: GLenum;\\n    readonly DRAW_BUFFER8_WEBGL: GLenum;\\n    readonly DRAW_BUFFER9_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS_WEBGL: GLenum;\\n    readonly MAX_DRAW_BUFFERS_WEBGL: GLenum;\\n}\\n\\ninterface WEBGL_lose_context {\\n    loseContext(): void;\\n    restoreContext(): void;\\n}\\n\\n/** A WaveShaperNode always has exactly one input and one output. */\\ninterface WaveShaperNode extends AudioNode {\\n    curve: Float32Array | null;\\n    oversample: OverSampleType;\\n}\\n\\ndeclare var WaveShaperNode: {\\n    prototype: WaveShaperNode;\\n    new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;\\n};\\n\\ninterface WebAuthentication {\\n    getAssertion(assertionChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: AssertionOptions): Promise<WebAuthnAssertion>;\\n    makeCredential(accountInformation: Account, cryptoParameters: ScopedCredentialParameters[], attestationChallenge: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, options?: ScopedCredentialOptions): Promise<ScopedCredentialInfo>;\\n}\\n\\ndeclare var WebAuthentication: {\\n    prototype: WebAuthentication;\\n    new(): WebAuthentication;\\n};\\n\\ninterface WebAuthnAssertion {\\n    readonly authenticatorData: ArrayBuffer;\\n    readonly clientData: ArrayBuffer;\\n    readonly credential: ScopedCredential;\\n    readonly signature: ArrayBuffer;\\n}\\n\\ndeclare var WebAuthnAssertion: {\\n    prototype: WebAuthnAssertion;\\n    new(): WebAuthnAssertion;\\n};\\n\\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\\n}\\n\\ndeclare var WebGL2RenderingContext: {\\n    prototype: WebGL2RenderingContext;\\n    new(): WebGL2RenderingContext;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\\n    readonly ALREADY_SIGNALED: GLenum;\\n    readonly ANY_SAMPLES_PASSED: GLenum;\\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\\n    readonly COLOR: GLenum;\\n    readonly COLOR_ATTACHMENT1: GLenum;\\n    readonly COLOR_ATTACHMENT10: GLenum;\\n    readonly COLOR_ATTACHMENT11: GLenum;\\n    readonly COLOR_ATTACHMENT12: GLenum;\\n    readonly COLOR_ATTACHMENT13: GLenum;\\n    readonly COLOR_ATTACHMENT14: GLenum;\\n    readonly COLOR_ATTACHMENT15: GLenum;\\n    readonly COLOR_ATTACHMENT2: GLenum;\\n    readonly COLOR_ATTACHMENT3: GLenum;\\n    readonly COLOR_ATTACHMENT4: GLenum;\\n    readonly COLOR_ATTACHMENT5: GLenum;\\n    readonly COLOR_ATTACHMENT6: GLenum;\\n    readonly COLOR_ATTACHMENT7: GLenum;\\n    readonly COLOR_ATTACHMENT8: GLenum;\\n    readonly COLOR_ATTACHMENT9: GLenum;\\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\\n    readonly CONDITION_SATISFIED: GLenum;\\n    readonly COPY_READ_BUFFER: GLenum;\\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\\n    readonly COPY_WRITE_BUFFER: GLenum;\\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\\n    readonly CURRENT_QUERY: GLenum;\\n    readonly DEPTH: GLenum;\\n    readonly DEPTH24_STENCIL8: GLenum;\\n    readonly DEPTH32F_STENCIL8: GLenum;\\n    readonly DEPTH_COMPONENT24: GLenum;\\n    readonly DEPTH_COMPONENT32F: GLenum;\\n    readonly DRAW_BUFFER0: GLenum;\\n    readonly DRAW_BUFFER1: GLenum;\\n    readonly DRAW_BUFFER10: GLenum;\\n    readonly DRAW_BUFFER11: GLenum;\\n    readonly DRAW_BUFFER12: GLenum;\\n    readonly DRAW_BUFFER13: GLenum;\\n    readonly DRAW_BUFFER14: GLenum;\\n    readonly DRAW_BUFFER15: GLenum;\\n    readonly DRAW_BUFFER2: GLenum;\\n    readonly DRAW_BUFFER3: GLenum;\\n    readonly DRAW_BUFFER4: GLenum;\\n    readonly DRAW_BUFFER5: GLenum;\\n    readonly DRAW_BUFFER6: GLenum;\\n    readonly DRAW_BUFFER7: GLenum;\\n    readonly DRAW_BUFFER8: GLenum;\\n    readonly DRAW_BUFFER9: GLenum;\\n    readonly DRAW_FRAMEBUFFER: GLenum;\\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\\n    readonly DYNAMIC_COPY: GLenum;\\n    readonly DYNAMIC_READ: GLenum;\\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\\n    readonly FLOAT_MAT2x3: GLenum;\\n    readonly FLOAT_MAT2x4: GLenum;\\n    readonly FLOAT_MAT3x2: GLenum;\\n    readonly FLOAT_MAT3x4: GLenum;\\n    readonly FLOAT_MAT4x2: GLenum;\\n    readonly FLOAT_MAT4x3: GLenum;\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\\n    readonly HALF_FLOAT: GLenum;\\n    readonly INTERLEAVED_ATTRIBS: GLenum;\\n    readonly INT_2_10_10_10_REV: GLenum;\\n    readonly INT_SAMPLER_2D: GLenum;\\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly INT_SAMPLER_3D: GLenum;\\n    readonly INT_SAMPLER_CUBE: GLenum;\\n    readonly INVALID_INDEX: GLenum;\\n    readonly MAX: GLenum;\\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_DRAW_BUFFERS: GLenum;\\n    readonly MAX_ELEMENTS_INDICES: GLenum;\\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\\n    readonly MAX_ELEMENT_INDEX: GLenum;\\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly MAX_SAMPLES: GLenum;\\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\\n    readonly MAX_VARYING_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MIN: GLenum;\\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly OBJECT_TYPE: GLenum;\\n    readonly PACK_ROW_LENGTH: GLenum;\\n    readonly PACK_SKIP_PIXELS: GLenum;\\n    readonly PACK_SKIP_ROWS: GLenum;\\n    readonly PIXEL_PACK_BUFFER: GLenum;\\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\\n    readonly QUERY_RESULT: GLenum;\\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\\n    readonly R11F_G11F_B10F: GLenum;\\n    readonly R16F: GLenum;\\n    readonly R16I: GLenum;\\n    readonly R16UI: GLenum;\\n    readonly R32F: GLenum;\\n    readonly R32I: GLenum;\\n    readonly R32UI: GLenum;\\n    readonly R8: GLenum;\\n    readonly R8I: GLenum;\\n    readonly R8UI: GLenum;\\n    readonly R8_SNORM: GLenum;\\n    readonly RASTERIZER_DISCARD: GLenum;\\n    readonly READ_BUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\\n    readonly RED: GLenum;\\n    readonly RED_INTEGER: GLenum;\\n    readonly RENDERBUFFER_SAMPLES: GLenum;\\n    readonly RG: GLenum;\\n    readonly RG16F: GLenum;\\n    readonly RG16I: GLenum;\\n    readonly RG16UI: GLenum;\\n    readonly RG32F: GLenum;\\n    readonly RG32I: GLenum;\\n    readonly RG32UI: GLenum;\\n    readonly RG8: GLenum;\\n    readonly RG8I: GLenum;\\n    readonly RG8UI: GLenum;\\n    readonly RG8_SNORM: GLenum;\\n    readonly RGB10_A2: GLenum;\\n    readonly RGB10_A2UI: GLenum;\\n    readonly RGB16F: GLenum;\\n    readonly RGB16I: GLenum;\\n    readonly RGB16UI: GLenum;\\n    readonly RGB32F: GLenum;\\n    readonly RGB32I: GLenum;\\n    readonly RGB32UI: GLenum;\\n    readonly RGB8: GLenum;\\n    readonly RGB8I: GLenum;\\n    readonly RGB8UI: GLenum;\\n    readonly RGB8_SNORM: GLenum;\\n    readonly RGB9_E5: GLenum;\\n    readonly RGBA16F: GLenum;\\n    readonly RGBA16I: GLenum;\\n    readonly RGBA16UI: GLenum;\\n    readonly RGBA32F: GLenum;\\n    readonly RGBA32I: GLenum;\\n    readonly RGBA32UI: GLenum;\\n    readonly RGBA8: GLenum;\\n    readonly RGBA8I: GLenum;\\n    readonly RGBA8UI: GLenum;\\n    readonly RGBA8_SNORM: GLenum;\\n    readonly RGBA_INTEGER: GLenum;\\n    readonly RGB_INTEGER: GLenum;\\n    readonly RG_INTEGER: GLenum;\\n    readonly SAMPLER_2D_ARRAY: GLenum;\\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\\n    readonly SAMPLER_2D_SHADOW: GLenum;\\n    readonly SAMPLER_3D: GLenum;\\n    readonly SAMPLER_BINDING: GLenum;\\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\\n    readonly SEPARATE_ATTRIBS: GLenum;\\n    readonly SIGNALED: GLenum;\\n    readonly SIGNED_NORMALIZED: GLenum;\\n    readonly SRGB: GLenum;\\n    readonly SRGB8: GLenum;\\n    readonly SRGB8_ALPHA8: GLenum;\\n    readonly STATIC_COPY: GLenum;\\n    readonly STATIC_READ: GLenum;\\n    readonly STENCIL: GLenum;\\n    readonly STREAM_COPY: GLenum;\\n    readonly STREAM_READ: GLenum;\\n    readonly SYNC_CONDITION: GLenum;\\n    readonly SYNC_FENCE: GLenum;\\n    readonly SYNC_FLAGS: GLenum;\\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\\n    readonly SYNC_STATUS: GLenum;\\n    readonly TEXTURE_2D_ARRAY: GLenum;\\n    readonly TEXTURE_3D: GLenum;\\n    readonly TEXTURE_BASE_LEVEL: GLenum;\\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\\n    readonly TEXTURE_BINDING_3D: GLenum;\\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\\n    readonly TEXTURE_COMPARE_MODE: GLenum;\\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\\n    readonly TEXTURE_MAX_LEVEL: GLenum;\\n    readonly TEXTURE_MAX_LOD: GLenum;\\n    readonly TEXTURE_MIN_LOD: GLenum;\\n    readonly TEXTURE_WRAP_R: GLenum;\\n    readonly TIMEOUT_EXPIRED: GLenum;\\n    readonly TIMEOUT_IGNORED: GLint64;\\n    readonly TRANSFORM_FEEDBACK: GLenum;\\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\\n    readonly UNIFORM_BUFFER: GLenum;\\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\\n    readonly UNIFORM_BUFFER_START: GLenum;\\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\\n    readonly UNIFORM_OFFSET: GLenum;\\n    readonly UNIFORM_SIZE: GLenum;\\n    readonly UNIFORM_TYPE: GLenum;\\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\\n    readonly UNPACK_ROW_LENGTH: GLenum;\\n    readonly UNPACK_SKIP_IMAGES: GLenum;\\n    readonly UNPACK_SKIP_PIXELS: GLenum;\\n    readonly UNPACK_SKIP_ROWS: GLenum;\\n    readonly UNSIGNALED: GLenum;\\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\\n    readonly UNSIGNED_INT_24_8: GLenum;\\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\\n    readonly UNSIGNED_INT_VEC2: GLenum;\\n    readonly UNSIGNED_INT_VEC3: GLenum;\\n    readonly UNSIGNED_INT_VEC4: GLenum;\\n    readonly UNSIGNED_NORMALIZED: GLenum;\\n    readonly VERTEX_ARRAY_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\\n    readonly WAIT_FAILED: GLenum;\\n};\\n\\ninterface WebGL2RenderingContextBase {\\n    beginQuery(target: GLenum, query: WebGLQuery): void;\\n    beginTransformFeedback(primitiveMode: GLenum): void;\\n    bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\\n    bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\\n    bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\\n    bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\\n    bindVertexArray(array: WebGLVertexArrayObject | null): void;\\n    blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\\n    clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\\n    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;\\n    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;\\n    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;\\n    clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\\n    copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    createQuery(): WebGLQuery | null;\\n    createSampler(): WebGLSampler | null;\\n    createTransformFeedback(): WebGLTransformFeedback | null;\\n    createVertexArray(): WebGLVertexArrayObject | null;\\n    deleteQuery(query: WebGLQuery | null): void;\\n    deleteSampler(sampler: WebGLSampler | null): void;\\n    deleteSync(sync: WebGLSync | null): void;\\n    deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\\n    deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\\n    drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\\n    drawBuffers(buffers: GLenum[]): void;\\n    drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\\n    drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\\n    endQuery(target: GLenum): void;\\n    endTransformFeedback(): void;\\n    fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\\n    framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\\n    getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\\n    getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\\n    getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\\n    getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;\\n    getFragDataLocation(program: WebGLProgram, name: string): GLint;\\n    getIndexedParameter(target: GLenum, index: GLuint): any;\\n    getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\\n    getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\\n    getQueryParameter(query: WebGLQuery, pname: GLenum): any;\\n    getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\\n    getSyncParameter(sync: WebGLSync, pname: GLenum): any;\\n    getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\\n    getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\\n    invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\\n    invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    isQuery(query: WebGLQuery | null): GLboolean;\\n    isSampler(sampler: WebGLSampler | null): GLboolean;\\n    isSync(sync: WebGLSync | null): GLboolean;\\n    isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\\n    isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\\n    pauseTransformFeedback(): void;\\n    readBuffer(src: GLenum): void;\\n    renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    resumeTransformFeedback(): void;\\n    samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\\n    samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\\n    texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;\\n    transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\\n    uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\\n    uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\\n    uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\\n    uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\\n    uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\\n    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\\n    vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\\n    vertexAttribI4iv(index: GLuint, values: Int32List): void;\\n    vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\\n    vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\\n    vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\\n    waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\\n    readonly ACTIVE_UNIFORM_BLOCKS: GLenum;\\n    readonly ALREADY_SIGNALED: GLenum;\\n    readonly ANY_SAMPLES_PASSED: GLenum;\\n    readonly ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum;\\n    readonly COLOR: GLenum;\\n    readonly COLOR_ATTACHMENT1: GLenum;\\n    readonly COLOR_ATTACHMENT10: GLenum;\\n    readonly COLOR_ATTACHMENT11: GLenum;\\n    readonly COLOR_ATTACHMENT12: GLenum;\\n    readonly COLOR_ATTACHMENT13: GLenum;\\n    readonly COLOR_ATTACHMENT14: GLenum;\\n    readonly COLOR_ATTACHMENT15: GLenum;\\n    readonly COLOR_ATTACHMENT2: GLenum;\\n    readonly COLOR_ATTACHMENT3: GLenum;\\n    readonly COLOR_ATTACHMENT4: GLenum;\\n    readonly COLOR_ATTACHMENT5: GLenum;\\n    readonly COLOR_ATTACHMENT6: GLenum;\\n    readonly COLOR_ATTACHMENT7: GLenum;\\n    readonly COLOR_ATTACHMENT8: GLenum;\\n    readonly COLOR_ATTACHMENT9: GLenum;\\n    readonly COMPARE_REF_TO_TEXTURE: GLenum;\\n    readonly CONDITION_SATISFIED: GLenum;\\n    readonly COPY_READ_BUFFER: GLenum;\\n    readonly COPY_READ_BUFFER_BINDING: GLenum;\\n    readonly COPY_WRITE_BUFFER: GLenum;\\n    readonly COPY_WRITE_BUFFER_BINDING: GLenum;\\n    readonly CURRENT_QUERY: GLenum;\\n    readonly DEPTH: GLenum;\\n    readonly DEPTH24_STENCIL8: GLenum;\\n    readonly DEPTH32F_STENCIL8: GLenum;\\n    readonly DEPTH_COMPONENT24: GLenum;\\n    readonly DEPTH_COMPONENT32F: GLenum;\\n    readonly DRAW_BUFFER0: GLenum;\\n    readonly DRAW_BUFFER1: GLenum;\\n    readonly DRAW_BUFFER10: GLenum;\\n    readonly DRAW_BUFFER11: GLenum;\\n    readonly DRAW_BUFFER12: GLenum;\\n    readonly DRAW_BUFFER13: GLenum;\\n    readonly DRAW_BUFFER14: GLenum;\\n    readonly DRAW_BUFFER15: GLenum;\\n    readonly DRAW_BUFFER2: GLenum;\\n    readonly DRAW_BUFFER3: GLenum;\\n    readonly DRAW_BUFFER4: GLenum;\\n    readonly DRAW_BUFFER5: GLenum;\\n    readonly DRAW_BUFFER6: GLenum;\\n    readonly DRAW_BUFFER7: GLenum;\\n    readonly DRAW_BUFFER8: GLenum;\\n    readonly DRAW_BUFFER9: GLenum;\\n    readonly DRAW_FRAMEBUFFER: GLenum;\\n    readonly DRAW_FRAMEBUFFER_BINDING: GLenum;\\n    readonly DYNAMIC_COPY: GLenum;\\n    readonly DYNAMIC_READ: GLenum;\\n    readonly FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum;\\n    readonly FLOAT_MAT2x3: GLenum;\\n    readonly FLOAT_MAT2x4: GLenum;\\n    readonly FLOAT_MAT3x2: GLenum;\\n    readonly FLOAT_MAT3x4: GLenum;\\n    readonly FLOAT_MAT4x2: GLenum;\\n    readonly FLOAT_MAT4x3: GLenum;\\n    readonly FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum;\\n    readonly FRAMEBUFFER_DEFAULT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum;\\n    readonly HALF_FLOAT: GLenum;\\n    readonly INTERLEAVED_ATTRIBS: GLenum;\\n    readonly INT_2_10_10_10_REV: GLenum;\\n    readonly INT_SAMPLER_2D: GLenum;\\n    readonly INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly INT_SAMPLER_3D: GLenum;\\n    readonly INT_SAMPLER_CUBE: GLenum;\\n    readonly INVALID_INDEX: GLenum;\\n    readonly MAX: GLenum;\\n    readonly MAX_3D_TEXTURE_SIZE: GLenum;\\n    readonly MAX_ARRAY_TEXTURE_LAYERS: GLenum;\\n    readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum;\\n    readonly MAX_COLOR_ATTACHMENTS: GLenum;\\n    readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_COMBINED_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_DRAW_BUFFERS: GLenum;\\n    readonly MAX_ELEMENTS_INDICES: GLenum;\\n    readonly MAX_ELEMENTS_VERTICES: GLenum;\\n    readonly MAX_ELEMENT_INDEX: GLenum;\\n    readonly MAX_FRAGMENT_INPUT_COMPONENTS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum;\\n    readonly MAX_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly MAX_SAMPLES: GLenum;\\n    readonly MAX_SERVER_WAIT_TIMEOUT: GLenum;\\n    readonly MAX_TEXTURE_LOD_BIAS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum;\\n    readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum;\\n    readonly MAX_UNIFORM_BLOCK_SIZE: GLenum;\\n    readonly MAX_UNIFORM_BUFFER_BINDINGS: GLenum;\\n    readonly MAX_VARYING_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_OUTPUT_COMPONENTS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_BLOCKS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_COMPONENTS: GLenum;\\n    readonly MIN: GLenum;\\n    readonly MIN_PROGRAM_TEXEL_OFFSET: GLenum;\\n    readonly OBJECT_TYPE: GLenum;\\n    readonly PACK_ROW_LENGTH: GLenum;\\n    readonly PACK_SKIP_PIXELS: GLenum;\\n    readonly PACK_SKIP_ROWS: GLenum;\\n    readonly PIXEL_PACK_BUFFER: GLenum;\\n    readonly PIXEL_PACK_BUFFER_BINDING: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER: GLenum;\\n    readonly PIXEL_UNPACK_BUFFER_BINDING: GLenum;\\n    readonly QUERY_RESULT: GLenum;\\n    readonly QUERY_RESULT_AVAILABLE: GLenum;\\n    readonly R11F_G11F_B10F: GLenum;\\n    readonly R16F: GLenum;\\n    readonly R16I: GLenum;\\n    readonly R16UI: GLenum;\\n    readonly R32F: GLenum;\\n    readonly R32I: GLenum;\\n    readonly R32UI: GLenum;\\n    readonly R8: GLenum;\\n    readonly R8I: GLenum;\\n    readonly R8UI: GLenum;\\n    readonly R8_SNORM: GLenum;\\n    readonly RASTERIZER_DISCARD: GLenum;\\n    readonly READ_BUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER: GLenum;\\n    readonly READ_FRAMEBUFFER_BINDING: GLenum;\\n    readonly RED: GLenum;\\n    readonly RED_INTEGER: GLenum;\\n    readonly RENDERBUFFER_SAMPLES: GLenum;\\n    readonly RG: GLenum;\\n    readonly RG16F: GLenum;\\n    readonly RG16I: GLenum;\\n    readonly RG16UI: GLenum;\\n    readonly RG32F: GLenum;\\n    readonly RG32I: GLenum;\\n    readonly RG32UI: GLenum;\\n    readonly RG8: GLenum;\\n    readonly RG8I: GLenum;\\n    readonly RG8UI: GLenum;\\n    readonly RG8_SNORM: GLenum;\\n    readonly RGB10_A2: GLenum;\\n    readonly RGB10_A2UI: GLenum;\\n    readonly RGB16F: GLenum;\\n    readonly RGB16I: GLenum;\\n    readonly RGB16UI: GLenum;\\n    readonly RGB32F: GLenum;\\n    readonly RGB32I: GLenum;\\n    readonly RGB32UI: GLenum;\\n    readonly RGB8: GLenum;\\n    readonly RGB8I: GLenum;\\n    readonly RGB8UI: GLenum;\\n    readonly RGB8_SNORM: GLenum;\\n    readonly RGB9_E5: GLenum;\\n    readonly RGBA16F: GLenum;\\n    readonly RGBA16I: GLenum;\\n    readonly RGBA16UI: GLenum;\\n    readonly RGBA32F: GLenum;\\n    readonly RGBA32I: GLenum;\\n    readonly RGBA32UI: GLenum;\\n    readonly RGBA8: GLenum;\\n    readonly RGBA8I: GLenum;\\n    readonly RGBA8UI: GLenum;\\n    readonly RGBA8_SNORM: GLenum;\\n    readonly RGBA_INTEGER: GLenum;\\n    readonly RGB_INTEGER: GLenum;\\n    readonly RG_INTEGER: GLenum;\\n    readonly SAMPLER_2D_ARRAY: GLenum;\\n    readonly SAMPLER_2D_ARRAY_SHADOW: GLenum;\\n    readonly SAMPLER_2D_SHADOW: GLenum;\\n    readonly SAMPLER_3D: GLenum;\\n    readonly SAMPLER_BINDING: GLenum;\\n    readonly SAMPLER_CUBE_SHADOW: GLenum;\\n    readonly SEPARATE_ATTRIBS: GLenum;\\n    readonly SIGNALED: GLenum;\\n    readonly SIGNED_NORMALIZED: GLenum;\\n    readonly SRGB: GLenum;\\n    readonly SRGB8: GLenum;\\n    readonly SRGB8_ALPHA8: GLenum;\\n    readonly STATIC_COPY: GLenum;\\n    readonly STATIC_READ: GLenum;\\n    readonly STENCIL: GLenum;\\n    readonly STREAM_COPY: GLenum;\\n    readonly STREAM_READ: GLenum;\\n    readonly SYNC_CONDITION: GLenum;\\n    readonly SYNC_FENCE: GLenum;\\n    readonly SYNC_FLAGS: GLenum;\\n    readonly SYNC_FLUSH_COMMANDS_BIT: GLenum;\\n    readonly SYNC_GPU_COMMANDS_COMPLETE: GLenum;\\n    readonly SYNC_STATUS: GLenum;\\n    readonly TEXTURE_2D_ARRAY: GLenum;\\n    readonly TEXTURE_3D: GLenum;\\n    readonly TEXTURE_BASE_LEVEL: GLenum;\\n    readonly TEXTURE_BINDING_2D_ARRAY: GLenum;\\n    readonly TEXTURE_BINDING_3D: GLenum;\\n    readonly TEXTURE_COMPARE_FUNC: GLenum;\\n    readonly TEXTURE_COMPARE_MODE: GLenum;\\n    readonly TEXTURE_IMMUTABLE_FORMAT: GLenum;\\n    readonly TEXTURE_IMMUTABLE_LEVELS: GLenum;\\n    readonly TEXTURE_MAX_LEVEL: GLenum;\\n    readonly TEXTURE_MAX_LOD: GLenum;\\n    readonly TEXTURE_MIN_LOD: GLenum;\\n    readonly TEXTURE_WRAP_R: GLenum;\\n    readonly TIMEOUT_EXPIRED: GLenum;\\n    readonly TIMEOUT_IGNORED: GLint64;\\n    readonly TRANSFORM_FEEDBACK: GLenum;\\n    readonly TRANSFORM_FEEDBACK_ACTIVE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum;\\n    readonly TRANSFORM_FEEDBACK_BUFFER_START: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PAUSED: GLenum;\\n    readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum;\\n    readonly TRANSFORM_FEEDBACK_VARYINGS: GLenum;\\n    readonly UNIFORM_ARRAY_STRIDE: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum;\\n    readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum;\\n    readonly UNIFORM_BLOCK_BINDING: GLenum;\\n    readonly UNIFORM_BLOCK_DATA_SIZE: GLenum;\\n    readonly UNIFORM_BLOCK_INDEX: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum;\\n    readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum;\\n    readonly UNIFORM_BUFFER: GLenum;\\n    readonly UNIFORM_BUFFER_BINDING: GLenum;\\n    readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum;\\n    readonly UNIFORM_BUFFER_SIZE: GLenum;\\n    readonly UNIFORM_BUFFER_START: GLenum;\\n    readonly UNIFORM_IS_ROW_MAJOR: GLenum;\\n    readonly UNIFORM_MATRIX_STRIDE: GLenum;\\n    readonly UNIFORM_OFFSET: GLenum;\\n    readonly UNIFORM_SIZE: GLenum;\\n    readonly UNIFORM_TYPE: GLenum;\\n    readonly UNPACK_IMAGE_HEIGHT: GLenum;\\n    readonly UNPACK_ROW_LENGTH: GLenum;\\n    readonly UNPACK_SKIP_IMAGES: GLenum;\\n    readonly UNPACK_SKIP_PIXELS: GLenum;\\n    readonly UNPACK_SKIP_ROWS: GLenum;\\n    readonly UNSIGNALED: GLenum;\\n    readonly UNSIGNED_INT_10F_11F_11F_REV: GLenum;\\n    readonly UNSIGNED_INT_24_8: GLenum;\\n    readonly UNSIGNED_INT_2_10_10_10_REV: GLenum;\\n    readonly UNSIGNED_INT_5_9_9_9_REV: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_3D: GLenum;\\n    readonly UNSIGNED_INT_SAMPLER_CUBE: GLenum;\\n    readonly UNSIGNED_INT_VEC2: GLenum;\\n    readonly UNSIGNED_INT_VEC3: GLenum;\\n    readonly UNSIGNED_INT_VEC4: GLenum;\\n    readonly UNSIGNED_NORMALIZED: GLenum;\\n    readonly VERTEX_ARRAY_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_INTEGER: GLenum;\\n    readonly WAIT_FAILED: GLenum;\\n}\\n\\ninterface WebGL2RenderingContextOverloads {\\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\\n    bufferData(target: GLenum, srcData: BufferSource | null, usage: GLenum): void;\\n    bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;\\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource): void;\\n    bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;\\n    uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;\\n}\\n\\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods. */\\ninterface WebGLActiveInfo {\\n    readonly name: string;\\n    readonly size: GLint;\\n    readonly type: GLenum;\\n}\\n\\ndeclare var WebGLActiveInfo: {\\n    prototype: WebGLActiveInfo;\\n    new(): WebGLActiveInfo;\\n};\\n\\n/** Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors. */\\ninterface WebGLBuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLBuffer: {\\n    prototype: WebGLBuffer;\\n    new(): WebGLBuffer;\\n};\\n\\n/** The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context. */\\ninterface WebGLContextEvent extends Event {\\n    readonly statusMessage: string;\\n}\\n\\ndeclare var WebGLContextEvent: {\\n    prototype: WebGLContextEvent;\\n    new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\\n};\\n\\n/** Part of the WebGL API and represents a collection of buffers that serve as a rendering destination. */\\ninterface WebGLFramebuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLFramebuffer: {\\n    prototype: WebGLFramebuffer;\\n    new(): WebGLFramebuffer;\\n};\\n\\ninterface WebGLObject {\\n}\\n\\ndeclare var WebGLObject: {\\n    prototype: WebGLObject;\\n    new(): WebGLObject;\\n};\\n\\n/** The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). */\\ninterface WebGLProgram extends WebGLObject {\\n}\\n\\ndeclare var WebGLProgram: {\\n    prototype: WebGLProgram;\\n    new(): WebGLProgram;\\n};\\n\\ninterface WebGLQuery extends WebGLObject {\\n}\\n\\ndeclare var WebGLQuery: {\\n    prototype: WebGLQuery;\\n    new(): WebGLQuery;\\n};\\n\\n/** Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation. */\\ninterface WebGLRenderbuffer extends WebGLObject {\\n}\\n\\ndeclare var WebGLRenderbuffer: {\\n    prototype: WebGLRenderbuffer;\\n    new(): WebGLRenderbuffer;\\n};\\n\\n/** Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element. */\\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\\n}\\n\\ndeclare var WebGLRenderingContext: {\\n    prototype: WebGLRenderingContext;\\n    new(): WebGLRenderingContext;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n};\\n\\ninterface WebGLRenderingContextBase {\\n    readonly canvas: HTMLCanvasElement | OffscreenCanvas;\\n    readonly drawingBufferHeight: GLsizei;\\n    readonly drawingBufferWidth: GLsizei;\\n    activeTexture(texture: GLenum): void;\\n    attachShader(program: WebGLProgram, shader: WebGLShader): void;\\n    bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\\n    bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\\n    bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\\n    bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\\n    bindTexture(target: GLenum, texture: WebGLTexture | null): void;\\n    blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\\n    blendEquation(mode: GLenum): void;\\n    blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\\n    blendFunc(sfactor: GLenum, dfactor: GLenum): void;\\n    blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\\n    checkFramebufferStatus(target: GLenum): GLenum;\\n    clear(mask: GLbitfield): void;\\n    clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\\n    clearDepth(depth: GLclampf): void;\\n    clearStencil(s: GLint): void;\\n    colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\\n    compileShader(shader: WebGLShader): void;\\n    copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\\n    copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    createBuffer(): WebGLBuffer | null;\\n    createFramebuffer(): WebGLFramebuffer | null;\\n    createProgram(): WebGLProgram | null;\\n    createRenderbuffer(): WebGLRenderbuffer | null;\\n    createShader(type: GLenum): WebGLShader | null;\\n    createTexture(): WebGLTexture | null;\\n    cullFace(mode: GLenum): void;\\n    deleteBuffer(buffer: WebGLBuffer | null): void;\\n    deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\\n    deleteProgram(program: WebGLProgram | null): void;\\n    deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\\n    deleteShader(shader: WebGLShader | null): void;\\n    deleteTexture(texture: WebGLTexture | null): void;\\n    depthFunc(func: GLenum): void;\\n    depthMask(flag: GLboolean): void;\\n    depthRange(zNear: GLclampf, zFar: GLclampf): void;\\n    detachShader(program: WebGLProgram, shader: WebGLShader): void;\\n    disable(cap: GLenum): void;\\n    disableVertexAttribArray(index: GLuint): void;\\n    drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\\n    drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\\n    enable(cap: GLenum): void;\\n    enableVertexAttribArray(index: GLuint): void;\\n    finish(): void;\\n    flush(): void;\\n    framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\\n    framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\\n    frontFace(mode: GLenum): void;\\n    generateMipmap(target: GLenum): void;\\n    getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\\n    getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\\n    getAttribLocation(program: WebGLProgram, name: string): GLint;\\n    getBufferParameter(target: GLenum, pname: GLenum): any;\\n    getContextAttributes(): WebGLContextAttributes | null;\\n    getError(): GLenum;\\n    getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null;\\n    getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null;\\n    getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null;\\n    getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null;\\n    getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null;\\n    getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null;\\n    getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null;\\n    getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null;\\n    getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null;\\n    getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null;\\n    getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null;\\n    getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null;\\n    getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null;\\n    getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null;\\n    getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null;\\n    getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null;\\n    getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null;\\n    getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null;\\n    getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null;\\n    getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null;\\n    getExtension(extensionName: string): any;\\n    getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\\n    getParameter(pname: GLenum): any;\\n    getProgramInfoLog(program: WebGLProgram): string | null;\\n    getProgramParameter(program: WebGLProgram, pname: GLenum): any;\\n    getRenderbufferParameter(target: GLenum, pname: GLenum): any;\\n    getShaderInfoLog(shader: WebGLShader): string | null;\\n    getShaderParameter(shader: WebGLShader, pname: GLenum): any;\\n    getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\\n    getShaderSource(shader: WebGLShader): string | null;\\n    getSupportedExtensions(): string[] | null;\\n    getTexParameter(target: GLenum, pname: GLenum): any;\\n    getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\\n    getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\\n    getVertexAttrib(index: GLuint, pname: GLenum): any;\\n    getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\\n    hint(target: GLenum, mode: GLenum): void;\\n    isBuffer(buffer: WebGLBuffer | null): GLboolean;\\n    isContextLost(): boolean;\\n    isEnabled(cap: GLenum): GLboolean;\\n    isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\\n    isProgram(program: WebGLProgram | null): GLboolean;\\n    isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\\n    isShader(shader: WebGLShader | null): GLboolean;\\n    isTexture(texture: WebGLTexture | null): GLboolean;\\n    lineWidth(width: GLfloat): void;\\n    linkProgram(program: WebGLProgram): void;\\n    pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\\n    polygonOffset(factor: GLfloat, units: GLfloat): void;\\n    renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\\n    sampleCoverage(value: GLclampf, invert: GLboolean): void;\\n    scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    shaderSource(shader: WebGLShader, source: string): void;\\n    stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\\n    stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\\n    stencilMask(mask: GLuint): void;\\n    stencilMaskSeparate(face: GLenum, mask: GLuint): void;\\n    stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\\n    stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\\n    texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\\n    texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\\n    uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\\n    uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\\n    uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\\n    uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\\n    uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\\n    uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\\n    uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\\n    uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\\n    useProgram(program: WebGLProgram | null): void;\\n    validateProgram(program: WebGLProgram): void;\\n    vertexAttrib1f(index: GLuint, x: GLfloat): void;\\n    vertexAttrib1fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\\n    vertexAttrib2fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\\n    vertexAttrib3fv(index: GLuint, values: Float32List): void;\\n    vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\\n    vertexAttrib4fv(index: GLuint, values: Float32List): void;\\n    vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\\n    viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\\n    readonly ACTIVE_ATTRIBUTES: GLenum;\\n    readonly ACTIVE_TEXTURE: GLenum;\\n    readonly ACTIVE_UNIFORMS: GLenum;\\n    readonly ALIASED_LINE_WIDTH_RANGE: GLenum;\\n    readonly ALIASED_POINT_SIZE_RANGE: GLenum;\\n    readonly ALPHA: GLenum;\\n    readonly ALPHA_BITS: GLenum;\\n    readonly ALWAYS: GLenum;\\n    readonly ARRAY_BUFFER: GLenum;\\n    readonly ARRAY_BUFFER_BINDING: GLenum;\\n    readonly ATTACHED_SHADERS: GLenum;\\n    readonly BACK: GLenum;\\n    readonly BLEND: GLenum;\\n    readonly BLEND_COLOR: GLenum;\\n    readonly BLEND_DST_ALPHA: GLenum;\\n    readonly BLEND_DST_RGB: GLenum;\\n    readonly BLEND_EQUATION: GLenum;\\n    readonly BLEND_EQUATION_ALPHA: GLenum;\\n    readonly BLEND_EQUATION_RGB: GLenum;\\n    readonly BLEND_SRC_ALPHA: GLenum;\\n    readonly BLEND_SRC_RGB: GLenum;\\n    readonly BLUE_BITS: GLenum;\\n    readonly BOOL: GLenum;\\n    readonly BOOL_VEC2: GLenum;\\n    readonly BOOL_VEC3: GLenum;\\n    readonly BOOL_VEC4: GLenum;\\n    readonly BROWSER_DEFAULT_WEBGL: GLenum;\\n    readonly BUFFER_SIZE: GLenum;\\n    readonly BUFFER_USAGE: GLenum;\\n    readonly BYTE: GLenum;\\n    readonly CCW: GLenum;\\n    readonly CLAMP_TO_EDGE: GLenum;\\n    readonly COLOR_ATTACHMENT0: GLenum;\\n    readonly COLOR_BUFFER_BIT: GLenum;\\n    readonly COLOR_CLEAR_VALUE: GLenum;\\n    readonly COLOR_WRITEMASK: GLenum;\\n    readonly COMPILE_STATUS: GLenum;\\n    readonly COMPRESSED_TEXTURE_FORMATS: GLenum;\\n    readonly CONSTANT_ALPHA: GLenum;\\n    readonly CONSTANT_COLOR: GLenum;\\n    readonly CONTEXT_LOST_WEBGL: GLenum;\\n    readonly CULL_FACE: GLenum;\\n    readonly CULL_FACE_MODE: GLenum;\\n    readonly CURRENT_PROGRAM: GLenum;\\n    readonly CURRENT_VERTEX_ATTRIB: GLenum;\\n    readonly CW: GLenum;\\n    readonly DECR: GLenum;\\n    readonly DECR_WRAP: GLenum;\\n    readonly DELETE_STATUS: GLenum;\\n    readonly DEPTH_ATTACHMENT: GLenum;\\n    readonly DEPTH_BITS: GLenum;\\n    readonly DEPTH_BUFFER_BIT: GLenum;\\n    readonly DEPTH_CLEAR_VALUE: GLenum;\\n    readonly DEPTH_COMPONENT: GLenum;\\n    readonly DEPTH_COMPONENT16: GLenum;\\n    readonly DEPTH_FUNC: GLenum;\\n    readonly DEPTH_RANGE: GLenum;\\n    readonly DEPTH_STENCIL: GLenum;\\n    readonly DEPTH_STENCIL_ATTACHMENT: GLenum;\\n    readonly DEPTH_TEST: GLenum;\\n    readonly DEPTH_WRITEMASK: GLenum;\\n    readonly DITHER: GLenum;\\n    readonly DONT_CARE: GLenum;\\n    readonly DST_ALPHA: GLenum;\\n    readonly DST_COLOR: GLenum;\\n    readonly DYNAMIC_DRAW: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER: GLenum;\\n    readonly ELEMENT_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly EQUAL: GLenum;\\n    readonly FASTEST: GLenum;\\n    readonly FLOAT: GLenum;\\n    readonly FLOAT_MAT2: GLenum;\\n    readonly FLOAT_MAT3: GLenum;\\n    readonly FLOAT_MAT4: GLenum;\\n    readonly FLOAT_VEC2: GLenum;\\n    readonly FLOAT_VEC3: GLenum;\\n    readonly FLOAT_VEC4: GLenum;\\n    readonly FRAGMENT_SHADER: GLenum;\\n    readonly FRAMEBUFFER: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum;\\n    readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum;\\n    readonly FRAMEBUFFER_BINDING: GLenum;\\n    readonly FRAMEBUFFER_COMPLETE: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum;\\n    readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum;\\n    readonly FRAMEBUFFER_UNSUPPORTED: GLenum;\\n    readonly FRONT: GLenum;\\n    readonly FRONT_AND_BACK: GLenum;\\n    readonly FRONT_FACE: GLenum;\\n    readonly FUNC_ADD: GLenum;\\n    readonly FUNC_REVERSE_SUBTRACT: GLenum;\\n    readonly FUNC_SUBTRACT: GLenum;\\n    readonly GENERATE_MIPMAP_HINT: GLenum;\\n    readonly GEQUAL: GLenum;\\n    readonly GREATER: GLenum;\\n    readonly GREEN_BITS: GLenum;\\n    readonly HIGH_FLOAT: GLenum;\\n    readonly HIGH_INT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_FORMAT: GLenum;\\n    readonly IMPLEMENTATION_COLOR_READ_TYPE: GLenum;\\n    readonly INCR: GLenum;\\n    readonly INCR_WRAP: GLenum;\\n    readonly INT: GLenum;\\n    readonly INT_VEC2: GLenum;\\n    readonly INT_VEC3: GLenum;\\n    readonly INT_VEC4: GLenum;\\n    readonly INVALID_ENUM: GLenum;\\n    readonly INVALID_FRAMEBUFFER_OPERATION: GLenum;\\n    readonly INVALID_OPERATION: GLenum;\\n    readonly INVALID_VALUE: GLenum;\\n    readonly INVERT: GLenum;\\n    readonly KEEP: GLenum;\\n    readonly LEQUAL: GLenum;\\n    readonly LESS: GLenum;\\n    readonly LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_LINEAR: GLenum;\\n    readonly LINEAR_MIPMAP_NEAREST: GLenum;\\n    readonly LINES: GLenum;\\n    readonly LINE_LOOP: GLenum;\\n    readonly LINE_STRIP: GLenum;\\n    readonly LINE_WIDTH: GLenum;\\n    readonly LINK_STATUS: GLenum;\\n    readonly LOW_FLOAT: GLenum;\\n    readonly LOW_INT: GLenum;\\n    readonly LUMINANCE: GLenum;\\n    readonly LUMINANCE_ALPHA: GLenum;\\n    readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_CUBE_MAP_TEXTURE_SIZE: GLenum;\\n    readonly MAX_FRAGMENT_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_RENDERBUFFER_SIZE: GLenum;\\n    readonly MAX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_TEXTURE_SIZE: GLenum;\\n    readonly MAX_VARYING_VECTORS: GLenum;\\n    readonly MAX_VERTEX_ATTRIBS: GLenum;\\n    readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum;\\n    readonly MAX_VERTEX_UNIFORM_VECTORS: GLenum;\\n    readonly MAX_VIEWPORT_DIMS: GLenum;\\n    readonly MEDIUM_FLOAT: GLenum;\\n    readonly MEDIUM_INT: GLenum;\\n    readonly MIRRORED_REPEAT: GLenum;\\n    readonly NEAREST: GLenum;\\n    readonly NEAREST_MIPMAP_LINEAR: GLenum;\\n    readonly NEAREST_MIPMAP_NEAREST: GLenum;\\n    readonly NEVER: GLenum;\\n    readonly NICEST: GLenum;\\n    readonly NONE: GLenum;\\n    readonly NOTEQUAL: GLenum;\\n    readonly NO_ERROR: GLenum;\\n    readonly ONE: GLenum;\\n    readonly ONE_MINUS_CONSTANT_ALPHA: GLenum;\\n    readonly ONE_MINUS_CONSTANT_COLOR: GLenum;\\n    readonly ONE_MINUS_DST_ALPHA: GLenum;\\n    readonly ONE_MINUS_DST_COLOR: GLenum;\\n    readonly ONE_MINUS_SRC_ALPHA: GLenum;\\n    readonly ONE_MINUS_SRC_COLOR: GLenum;\\n    readonly OUT_OF_MEMORY: GLenum;\\n    readonly PACK_ALIGNMENT: GLenum;\\n    readonly POINTS: GLenum;\\n    readonly POLYGON_OFFSET_FACTOR: GLenum;\\n    readonly POLYGON_OFFSET_FILL: GLenum;\\n    readonly POLYGON_OFFSET_UNITS: GLenum;\\n    readonly RED_BITS: GLenum;\\n    readonly RENDERBUFFER: GLenum;\\n    readonly RENDERBUFFER_ALPHA_SIZE: GLenum;\\n    readonly RENDERBUFFER_BINDING: GLenum;\\n    readonly RENDERBUFFER_BLUE_SIZE: GLenum;\\n    readonly RENDERBUFFER_DEPTH_SIZE: GLenum;\\n    readonly RENDERBUFFER_GREEN_SIZE: GLenum;\\n    readonly RENDERBUFFER_HEIGHT: GLenum;\\n    readonly RENDERBUFFER_INTERNAL_FORMAT: GLenum;\\n    readonly RENDERBUFFER_RED_SIZE: GLenum;\\n    readonly RENDERBUFFER_STENCIL_SIZE: GLenum;\\n    readonly RENDERBUFFER_WIDTH: GLenum;\\n    readonly RENDERER: GLenum;\\n    readonly REPEAT: GLenum;\\n    readonly REPLACE: GLenum;\\n    readonly RGB: GLenum;\\n    readonly RGB565: GLenum;\\n    readonly RGB5_A1: GLenum;\\n    readonly RGBA: GLenum;\\n    readonly RGBA4: GLenum;\\n    readonly SAMPLER_2D: GLenum;\\n    readonly SAMPLER_CUBE: GLenum;\\n    readonly SAMPLES: GLenum;\\n    readonly SAMPLE_ALPHA_TO_COVERAGE: GLenum;\\n    readonly SAMPLE_BUFFERS: GLenum;\\n    readonly SAMPLE_COVERAGE: GLenum;\\n    readonly SAMPLE_COVERAGE_INVERT: GLenum;\\n    readonly SAMPLE_COVERAGE_VALUE: GLenum;\\n    readonly SCISSOR_BOX: GLenum;\\n    readonly SCISSOR_TEST: GLenum;\\n    readonly SHADER_TYPE: GLenum;\\n    readonly SHADING_LANGUAGE_VERSION: GLenum;\\n    readonly SHORT: GLenum;\\n    readonly SRC_ALPHA: GLenum;\\n    readonly SRC_ALPHA_SATURATE: GLenum;\\n    readonly SRC_COLOR: GLenum;\\n    readonly STATIC_DRAW: GLenum;\\n    readonly STENCIL_ATTACHMENT: GLenum;\\n    readonly STENCIL_BACK_FAIL: GLenum;\\n    readonly STENCIL_BACK_FUNC: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_BACK_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_BACK_REF: GLenum;\\n    readonly STENCIL_BACK_VALUE_MASK: GLenum;\\n    readonly STENCIL_BACK_WRITEMASK: GLenum;\\n    readonly STENCIL_BITS: GLenum;\\n    readonly STENCIL_BUFFER_BIT: GLenum;\\n    readonly STENCIL_CLEAR_VALUE: GLenum;\\n    readonly STENCIL_FAIL: GLenum;\\n    readonly STENCIL_FUNC: GLenum;\\n    readonly STENCIL_INDEX8: GLenum;\\n    readonly STENCIL_PASS_DEPTH_FAIL: GLenum;\\n    readonly STENCIL_PASS_DEPTH_PASS: GLenum;\\n    readonly STENCIL_REF: GLenum;\\n    readonly STENCIL_TEST: GLenum;\\n    readonly STENCIL_VALUE_MASK: GLenum;\\n    readonly STENCIL_WRITEMASK: GLenum;\\n    readonly STREAM_DRAW: GLenum;\\n    readonly SUBPIXEL_BITS: GLenum;\\n    readonly TEXTURE: GLenum;\\n    readonly TEXTURE0: GLenum;\\n    readonly TEXTURE1: GLenum;\\n    readonly TEXTURE10: GLenum;\\n    readonly TEXTURE11: GLenum;\\n    readonly TEXTURE12: GLenum;\\n    readonly TEXTURE13: GLenum;\\n    readonly TEXTURE14: GLenum;\\n    readonly TEXTURE15: GLenum;\\n    readonly TEXTURE16: GLenum;\\n    readonly TEXTURE17: GLenum;\\n    readonly TEXTURE18: GLenum;\\n    readonly TEXTURE19: GLenum;\\n    readonly TEXTURE2: GLenum;\\n    readonly TEXTURE20: GLenum;\\n    readonly TEXTURE21: GLenum;\\n    readonly TEXTURE22: GLenum;\\n    readonly TEXTURE23: GLenum;\\n    readonly TEXTURE24: GLenum;\\n    readonly TEXTURE25: GLenum;\\n    readonly TEXTURE26: GLenum;\\n    readonly TEXTURE27: GLenum;\\n    readonly TEXTURE28: GLenum;\\n    readonly TEXTURE29: GLenum;\\n    readonly TEXTURE3: GLenum;\\n    readonly TEXTURE30: GLenum;\\n    readonly TEXTURE31: GLenum;\\n    readonly TEXTURE4: GLenum;\\n    readonly TEXTURE5: GLenum;\\n    readonly TEXTURE6: GLenum;\\n    readonly TEXTURE7: GLenum;\\n    readonly TEXTURE8: GLenum;\\n    readonly TEXTURE9: GLenum;\\n    readonly TEXTURE_2D: GLenum;\\n    readonly TEXTURE_BINDING_2D: GLenum;\\n    readonly TEXTURE_BINDING_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_X: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum;\\n    readonly TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum;\\n    readonly TEXTURE_MAG_FILTER: GLenum;\\n    readonly TEXTURE_MIN_FILTER: GLenum;\\n    readonly TEXTURE_WRAP_S: GLenum;\\n    readonly TEXTURE_WRAP_T: GLenum;\\n    readonly TRIANGLES: GLenum;\\n    readonly TRIANGLE_FAN: GLenum;\\n    readonly TRIANGLE_STRIP: GLenum;\\n    readonly UNPACK_ALIGNMENT: GLenum;\\n    readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum;\\n    readonly UNPACK_FLIP_Y_WEBGL: GLenum;\\n    readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum;\\n    readonly UNSIGNED_BYTE: GLenum;\\n    readonly UNSIGNED_INT: GLenum;\\n    readonly UNSIGNED_SHORT: GLenum;\\n    readonly UNSIGNED_SHORT_4_4_4_4: GLenum;\\n    readonly UNSIGNED_SHORT_5_5_5_1: GLenum;\\n    readonly UNSIGNED_SHORT_5_6_5: GLenum;\\n    readonly VALIDATE_STATUS: GLenum;\\n    readonly VENDOR: GLenum;\\n    readonly VERSION: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_ENABLED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_POINTER: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_SIZE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_STRIDE: GLenum;\\n    readonly VERTEX_ATTRIB_ARRAY_TYPE: GLenum;\\n    readonly VERTEX_SHADER: GLenum;\\n    readonly VIEWPORT: GLenum;\\n    readonly ZERO: GLenum;\\n}\\n\\ninterface WebGLRenderingContextOverloads {\\n    bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\\n    bufferData(target: GLenum, data: BufferSource | null, usage: GLenum): void;\\n    bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;\\n    compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\\n    compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\\n    readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\\n    texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\\n    uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\\n    uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\\n    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\\n}\\n\\ninterface WebGLSampler extends WebGLObject {\\n}\\n\\ndeclare var WebGLSampler: {\\n    prototype: WebGLSampler;\\n    new(): WebGLSampler;\\n};\\n\\n/** The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders. */\\ninterface WebGLShader extends WebGLObject {\\n}\\n\\ndeclare var WebGLShader: {\\n    prototype: WebGLShader;\\n    new(): WebGLShader;\\n};\\n\\n/** Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method. */\\ninterface WebGLShaderPrecisionFormat {\\n    readonly precision: GLint;\\n    readonly rangeMax: GLint;\\n    readonly rangeMin: GLint;\\n}\\n\\ndeclare var WebGLShaderPrecisionFormat: {\\n    prototype: WebGLShaderPrecisionFormat;\\n    new(): WebGLShaderPrecisionFormat;\\n};\\n\\ninterface WebGLSync extends WebGLObject {\\n}\\n\\ndeclare var WebGLSync: {\\n    prototype: WebGLSync;\\n    new(): WebGLSync;\\n};\\n\\n/** Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations. */\\ninterface WebGLTexture extends WebGLObject {\\n}\\n\\ndeclare var WebGLTexture: {\\n    prototype: WebGLTexture;\\n    new(): WebGLTexture;\\n};\\n\\ninterface WebGLTransformFeedback extends WebGLObject {\\n}\\n\\ndeclare var WebGLTransformFeedback: {\\n    prototype: WebGLTransformFeedback;\\n    new(): WebGLTransformFeedback;\\n};\\n\\n/** Part of the WebGL API and represents the location of a uniform variable in a shader program. */\\ninterface WebGLUniformLocation {\\n}\\n\\ndeclare var WebGLUniformLocation: {\\n    prototype: WebGLUniformLocation;\\n    new(): WebGLUniformLocation;\\n};\\n\\ninterface WebGLVertexArrayObject extends WebGLObject {\\n}\\n\\ndeclare var WebGLVertexArrayObject: {\\n    prototype: WebGLVertexArrayObject;\\n    new(): WebGLVertexArrayObject;\\n};\\n\\ninterface WebGLVertexArrayObjectOES extends WebGLObject {\\n}\\n\\ninterface WebKitPoint {\\n    x: number;\\n    y: number;\\n}\\n\\ndeclare var WebKitPoint: {\\n    prototype: WebKitPoint;\\n    new(x?: number, y?: number): WebKitPoint;\\n};\\n\\ninterface WebSocketEventMap {\\n    \"close\": CloseEvent;\\n    \"error\": Event;\\n    \"message\": MessageEvent;\\n    \"open\": Event;\\n}\\n\\n/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */\\ninterface WebSocket extends EventTarget {\\n    binaryType: BinaryType;\\n    readonly bufferedAmount: number;\\n    readonly extensions: string;\\n    onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\\n    onerror: ((this: WebSocket, ev: Event) => any) | null;\\n    onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\\n    onopen: ((this: WebSocket, ev: Event) => any) | null;\\n    readonly protocol: string;\\n    readonly readyState: number;\\n    readonly url: string;\\n    close(code?: number, reason?: string): void;\\n    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\\n    readonly CLOSED: number;\\n    readonly CLOSING: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n    addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var WebSocket: {\\n    prototype: WebSocket;\\n    new(url: string, protocols?: string | string[]): WebSocket;\\n    readonly CLOSED: number;\\n    readonly CLOSING: number;\\n    readonly CONNECTING: number;\\n    readonly OPEN: number;\\n};\\n\\n/** Events that occur due to the user moving a mouse wheel or similar input device. */\\ninterface WheelEvent extends MouseEvent {\\n    readonly deltaMode: number;\\n    readonly deltaX: number;\\n    readonly deltaY: number;\\n    readonly deltaZ: number;\\n    readonly DOM_DELTA_LINE: number;\\n    readonly DOM_DELTA_PAGE: number;\\n    readonly DOM_DELTA_PIXEL: number;\\n}\\n\\ndeclare var WheelEvent: {\\n    prototype: WheelEvent;\\n    new(type: string, eventInitDict?: WheelEventInit): WheelEvent;\\n    readonly DOM_DELTA_LINE: number;\\n    readonly DOM_DELTA_PAGE: number;\\n    readonly DOM_DELTA_PIXEL: number;\\n};\\n\\ninterface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandlersEventMap {\\n    \"abort\": UIEvent;\\n    \"afterprint\": Event;\\n    \"beforeprint\": Event;\\n    \"beforeunload\": BeforeUnloadEvent;\\n    \"blur\": FocusEvent;\\n    \"canplay\": Event;\\n    \"canplaythrough\": Event;\\n    \"change\": Event;\\n    \"click\": MouseEvent;\\n    \"compassneedscalibration\": Event;\\n    \"contextmenu\": MouseEvent;\\n    \"dblclick\": MouseEvent;\\n    \"devicelight\": DeviceLightEvent;\\n    \"devicemotion\": DeviceMotionEvent;\\n    \"deviceorientation\": DeviceOrientationEvent;\\n    \"deviceorientationabsolute\": DeviceOrientationEvent;\\n    \"drag\": DragEvent;\\n    \"dragend\": DragEvent;\\n    \"dragenter\": DragEvent;\\n    \"dragleave\": DragEvent;\\n    \"dragover\": DragEvent;\\n    \"dragstart\": DragEvent;\\n    \"drop\": DragEvent;\\n    \"durationchange\": Event;\\n    \"emptied\": Event;\\n    \"ended\": Event;\\n    \"error\": ErrorEvent;\\n    \"focus\": FocusEvent;\\n    \"hashchange\": HashChangeEvent;\\n    \"input\": Event;\\n    \"invalid\": Event;\\n    \"keydown\": KeyboardEvent;\\n    \"keypress\": KeyboardEvent;\\n    \"keyup\": KeyboardEvent;\\n    \"load\": Event;\\n    \"loadeddata\": Event;\\n    \"loadedmetadata\": Event;\\n    \"loadstart\": Event;\\n    \"message\": MessageEvent;\\n    \"mousedown\": MouseEvent;\\n    \"mouseenter\": MouseEvent;\\n    \"mouseleave\": MouseEvent;\\n    \"mousemove\": MouseEvent;\\n    \"mouseout\": MouseEvent;\\n    \"mouseover\": MouseEvent;\\n    \"mouseup\": MouseEvent;\\n    \"mousewheel\": Event;\\n    \"MSGestureChange\": Event;\\n    \"MSGestureDoubleTap\": Event;\\n    \"MSGestureEnd\": Event;\\n    \"MSGestureHold\": Event;\\n    \"MSGestureStart\": Event;\\n    \"MSGestureTap\": Event;\\n    \"MSInertiaStart\": Event;\\n    \"MSPointerCancel\": Event;\\n    \"MSPointerDown\": Event;\\n    \"MSPointerEnter\": Event;\\n    \"MSPointerLeave\": Event;\\n    \"MSPointerMove\": Event;\\n    \"MSPointerOut\": Event;\\n    \"MSPointerOver\": Event;\\n    \"MSPointerUp\": Event;\\n    \"offline\": Event;\\n    \"online\": Event;\\n    \"orientationchange\": Event;\\n    \"pagehide\": PageTransitionEvent;\\n    \"pageshow\": PageTransitionEvent;\\n    \"pause\": Event;\\n    \"play\": Event;\\n    \"playing\": Event;\\n    \"popstate\": PopStateEvent;\\n    \"progress\": ProgressEvent<Window>;\\n    \"ratechange\": Event;\\n    \"readystatechange\": ProgressEvent<Window>;\\n    \"reset\": Event;\\n    \"resize\": UIEvent;\\n    \"scroll\": Event;\\n    \"seeked\": Event;\\n    \"seeking\": Event;\\n    \"select\": Event;\\n    \"stalled\": Event;\\n    \"storage\": StorageEvent;\\n    \"submit\": Event;\\n    \"suspend\": Event;\\n    \"timeupdate\": Event;\\n    \"unload\": Event;\\n    \"volumechange\": Event;\\n    \"vrdisplayactivate\": Event;\\n    \"vrdisplayblur\": Event;\\n    \"vrdisplayconnect\": Event;\\n    \"vrdisplaydeactivate\": Event;\\n    \"vrdisplaydisconnect\": Event;\\n    \"vrdisplayfocus\": Event;\\n    \"vrdisplaypointerrestricted\": Event;\\n    \"vrdisplaypointerunrestricted\": Event;\\n    \"vrdisplaypresentchange\": Event;\\n    \"waiting\": Event;\\n}\\n\\n/** A window containing a DOM document; the document property points to the DOM document loaded in that window. */\\ninterface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandlers, IDBEnvironment, WindowBase64, WindowConsole, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowTimers {\\n    readonly applicationCache: ApplicationCache;\\n    readonly caches: CacheStorage;\\n    readonly clientInformation: Navigator;\\n    readonly closed: boolean;\\n    readonly crypto: Crypto;\\n    customElements: CustomElementRegistry;\\n    defaultStatus: string;\\n    readonly devicePixelRatio: number;\\n    readonly doNotTrack: string;\\n    readonly document: Document;\\n    /** @deprecated */\\n    readonly event: Event | undefined;\\n    /** @deprecated */\\n    readonly external: External;\\n    readonly frameElement: Element;\\n    readonly frames: Window;\\n    readonly history: History;\\n    readonly innerHeight: number;\\n    readonly innerWidth: number;\\n    readonly isSecureContext: boolean;\\n    readonly length: number;\\n    location: Location;\\n    readonly locationbar: BarProp;\\n    readonly menubar: BarProp;\\n    readonly msContentScript: ExtensionScriptApis;\\n    name: string;\\n    readonly navigator: Navigator;\\n    offscreenBuffering: string | boolean;\\n    oncompassneedscalibration: ((this: Window, ev: Event) => any) | null;\\n    ondevicelight: ((this: Window, ev: DeviceLightEvent) => any) | null;\\n    ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\\n    ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\n    ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\n    onmousewheel: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturechange: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturedoubletap: ((this: Window, ev: Event) => any) | null;\\n    onmsgestureend: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturehold: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturestart: ((this: Window, ev: Event) => any) | null;\\n    onmsgesturetap: ((this: Window, ev: Event) => any) | null;\\n    onmsinertiastart: ((this: Window, ev: Event) => any) | null;\\n    onmspointercancel: ((this: Window, ev: Event) => any) | null;\\n    onmspointerdown: ((this: Window, ev: Event) => any) | null;\\n    onmspointerenter: ((this: Window, ev: Event) => any) | null;\\n    onmspointerleave: ((this: Window, ev: Event) => any) | null;\\n    onmspointermove: ((this: Window, ev: Event) => any) | null;\\n    onmspointerout: ((this: Window, ev: Event) => any) | null;\\n    onmspointerover: ((this: Window, ev: Event) => any) | null;\\n    onmspointerup: ((this: Window, ev: Event) => any) | null;\\n    /** @deprecated */\\n    onorientationchange: ((this: Window, ev: Event) => any) | null;\\n    onreadystatechange: ((this: Window, ev: ProgressEvent<Window>) => any) | null;\\n    onvrdisplayactivate: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayblur: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayconnect: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaydeactivate: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaydisconnect: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplayfocus: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypointerrestricted: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypointerunrestricted: ((this: Window, ev: Event) => any) | null;\\n    onvrdisplaypresentchange: ((this: Window, ev: Event) => any) | null;\\n    opener: any;\\n    /** @deprecated */\\n    readonly orientation: string | number;\\n    readonly outerHeight: number;\\n    readonly outerWidth: number;\\n    readonly pageXOffset: number;\\n    readonly pageYOffset: number;\\n    readonly parent: Window;\\n    readonly performance: Performance;\\n    readonly personalbar: BarProp;\\n    readonly screen: Screen;\\n    readonly screenLeft: number;\\n    readonly screenTop: number;\\n    readonly screenX: number;\\n    readonly screenY: number;\\n    readonly scrollX: number;\\n    readonly scrollY: number;\\n    readonly scrollbars: BarProp;\\n    readonly self: Window & typeof globalThis;\\n    readonly speechSynthesis: SpeechSynthesis;\\n    status: string;\\n    readonly statusbar: BarProp;\\n    readonly styleMedia: StyleMedia;\\n    readonly toolbar: BarProp;\\n    readonly top: Window;\\n    readonly window: Window & typeof globalThis;\\n    alert(message?: any): void;\\n    blur(): void;\\n    /** @deprecated */\\n    captureEvents(): void;\\n    close(): void;\\n    confirm(message?: string): boolean;\\n    departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\\n    focus(): void;\\n    getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\n    getMatchedCSSRules(elt: Element, pseudoElt?: string | null): CSSRuleList;\\n    getSelection(): Selection | null;\\n    matchMedia(query: string): MediaQueryList;\\n    moveBy(x: number, y: number): void;\\n    moveTo(x: number, y: number): void;\\n    msWriteProfilerMark(profilerMarkName: string): void;\\n    open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;\\n    postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\\n    print(): void;\\n    prompt(message?: string, _default?: string): string | null;\\n    /** @deprecated */\\n    releaseEvents(): void;\\n    resizeBy(x: number, y: number): void;\\n    resizeTo(x: number, y: number): void;\\n    scroll(options?: ScrollToOptions): void;\\n    scroll(x: number, y: number): void;\\n    scrollBy(options?: ScrollToOptions): void;\\n    scrollBy(x: number, y: number): void;\\n    scrollTo(options?: ScrollToOptions): void;\\n    scrollTo(x: number, y: number): void;\\n    stop(): void;\\n    webkitCancelAnimationFrame(handle: number): void;\\n    webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\\n    webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\\n    webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\\n    addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n    [index: number]: Window;\\n}\\n\\ndeclare var Window: {\\n    prototype: Window;\\n    new(): Window;\\n};\\n\\ninterface WindowBase64 {\\n    atob(encodedString: string): string;\\n    btoa(rawString: string): string;\\n}\\n\\ninterface WindowConsole {\\n    readonly console: Console;\\n}\\n\\ninterface WindowEventHandlersEventMap {\\n    \"afterprint\": Event;\\n    \"beforeprint\": Event;\\n    \"beforeunload\": BeforeUnloadEvent;\\n    \"hashchange\": HashChangeEvent;\\n    \"languagechange\": Event;\\n    \"message\": MessageEvent;\\n    \"messageerror\": MessageEvent;\\n    \"offline\": Event;\\n    \"online\": Event;\\n    \"pagehide\": PageTransitionEvent;\\n    \"pageshow\": PageTransitionEvent;\\n    \"popstate\": PopStateEvent;\\n    \"rejectionhandled\": Event;\\n    \"storage\": StorageEvent;\\n    \"unhandledrejection\": PromiseRejectionEvent;\\n    \"unload\": Event;\\n}\\n\\ninterface WindowEventHandlers {\\n    onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;\\n    onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;\\n    onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\\n    onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\\n    onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\\n    onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\\n    onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;\\n    onrejectionhandled: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;\\n    onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;\\n    onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;\\n    addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ninterface WindowLocalStorage {\\n    readonly localStorage: Storage;\\n}\\n\\ninterface WindowOrWorkerGlobalScope {\\n    readonly caches: CacheStorage;\\n    readonly crypto: Crypto;\\n    readonly indexedDB: IDBFactory;\\n    readonly origin: string;\\n    readonly performance: Performance;\\n    atob(data: string): string;\\n    btoa(data: string): string;\\n    clearInterval(handle?: number): void;\\n    clearTimeout(handle?: number): void;\\n    createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;\\n    createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;\\n    fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;\\n    queueMicrotask(callback: Function): void;\\n    setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\n    setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\n}\\n\\ninterface WindowSessionStorage {\\n    readonly sessionStorage: Storage;\\n}\\n\\ninterface WindowTimers {\\n}\\n\\ninterface WorkerEventMap extends AbstractWorkerEventMap {\\n    \"message\": MessageEvent;\\n}\\n\\n/** This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread. */\\ninterface Worker extends EventTarget, AbstractWorker {\\n    onmessage: ((this: Worker, ev: MessageEvent) => any) | null;\\n    postMessage(message: any, transfer: Transferable[]): void;\\n    postMessage(message: any, options?: PostMessageOptions): void;\\n    terminate(): void;\\n    addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var Worker: {\\n    prototype: Worker;\\n    new(stringUrl: string | URL, options?: WorkerOptions): Worker;\\n};\\n\\ninterface Worklet {\\n    addModule(moduleURL: string, options?: WorkletOptions): Promise<void>;\\n}\\n\\ndeclare var Worklet: {\\n    prototype: Worklet;\\n    new(): Worklet;\\n};\\n\\n/** This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. */\\ninterface WritableStream<W = any> {\\n    readonly locked: boolean;\\n    abort(reason?: any): Promise<void>;\\n    getWriter(): WritableStreamDefaultWriter<W>;\\n}\\n\\ndeclare var WritableStream: {\\n    prototype: WritableStream;\\n    new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\\n};\\n\\n/** This Streams API interface represents a controller allowing control of a WritableStream\\'s state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. */\\ninterface WritableStreamDefaultController {\\n    error(error?: any): void;\\n}\\n\\n/** This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. */\\ninterface WritableStreamDefaultWriter<W = any> {\\n    readonly closed: Promise<void>;\\n    readonly desiredSize: number | null;\\n    readonly ready: Promise<void>;\\n    abort(reason?: any): Promise<void>;\\n    close(): Promise<void>;\\n    releaseLock(): void;\\n    write(chunk: W): Promise<void>;\\n}\\n\\n/** An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents. */\\ninterface XMLDocument extends Document {\\n    addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLDocument: {\\n    prototype: XMLDocument;\\n    new(): XMLDocument;\\n};\\n\\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\\n    \"readystatechange\": Event;\\n}\\n\\n/** Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing. */\\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\\n    onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\\n    /**\\n     * Returns client\\'s state.\\n     */\\n    readonly readyState: number;\\n    /**\\n     * Returns the response\\'s body.\\n     */\\n    readonly response: any;\\n    /**\\n     * Returns the text response.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if responseType is not the empty string or \"text\".\\n     */\\n    readonly responseText: string;\\n    /**\\n     * Returns the response type.\\n     * \\n     * Can be set to change the response type. Values are: the empty string (default), \"arraybuffer\", \"blob\", \"document\", \"json\", and \"text\".\\n     * \\n     * When set: setting to \"document\" is ignored if current global object is not a Window object.\\n     * \\n     * When set: throws an \"InvalidStateError\" DOMException if state is loading or done.\\n     * \\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\\n     */\\n    responseType: XMLHttpRequestResponseType;\\n    readonly responseURL: string;\\n    /**\\n     * Returns the document response.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if responseType is not the empty string or \"document\".\\n     */\\n    readonly responseXML: Document | null;\\n    readonly status: number;\\n    readonly statusText: string;\\n    /**\\n     * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and the synchronous flag is unset, a timeout event will then be dispatched, or a \"TimeoutError\" DOMException will be thrown otherwise (for the send() method).\\n     * \\n     * When set: throws an \"InvalidAccessError\" DOMException if the synchronous flag is set and current global object is a Window object.\\n     */\\n    timeout: number;\\n    /**\\n     * Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server.\\n     */\\n    readonly upload: XMLHttpRequestUpload;\\n    /**\\n     * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.\\n     * \\n     * When set: throws an \"InvalidStateError\" DOMException if state is not unsent or opened, or if the send() flag is set.\\n     */\\n    withCredentials: boolean;\\n    /**\\n     * Cancels any network activity.\\n     */\\n    abort(): void;\\n    getAllResponseHeaders(): string;\\n    getResponseHeader(name: string): string | null;\\n    /**\\n     * Sets the request method, request URL, and synchronous flag.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if either method is not a valid HTTP method or url cannot be parsed.\\n     * \\n     * Throws a \"SecurityError\" DOMException if method is a case-insensitive match for `CONNECT`, `TRACE`, or `TRACK`.\\n     * \\n     * Throws an \"InvalidAccessError\" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.\\n     */\\n    open(method: string, url: string): void;\\n    open(method: string, url: string, async: boolean, username?: string | null, password?: string | null): void;\\n    /**\\n     * Acts as if the `Content-Type` header value for response is mime. (It does not actually change the header though.)\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if state is loading or done.\\n     */\\n    overrideMimeType(mime: string): void;\\n    /**\\n     * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\\n     */\\n    send(body?: Document | BodyInit | null): void;\\n    /**\\n     * Combines a header in author request headers.\\n     * \\n     * Throws an \"InvalidStateError\" DOMException if either state is not opened or the send() flag is set.\\n     * \\n     * Throws a \"SyntaxError\" DOMException if name is not a header name or if value is not a header value.\\n     */\\n    setRequestHeader(name: string, value: string): void;\\n    readonly DONE: number;\\n    readonly HEADERS_RECEIVED: number;\\n    readonly LOADING: number;\\n    readonly OPENED: number;\\n    readonly UNSENT: number;\\n    addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequest: {\\n    prototype: XMLHttpRequest;\\n    new(): XMLHttpRequest;\\n    readonly DONE: number;\\n    readonly HEADERS_RECEIVED: number;\\n    readonly LOADING: number;\\n    readonly OPENED: number;\\n    readonly UNSENT: number;\\n};\\n\\ninterface XMLHttpRequestEventTargetEventMap {\\n    \"abort\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"error\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"load\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"loadend\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"loadstart\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"progress\": ProgressEvent<XMLHttpRequestEventTarget>;\\n    \"timeout\": ProgressEvent<XMLHttpRequestEventTarget>;\\n}\\n\\ninterface XMLHttpRequestEventTarget extends EventTarget {\\n    onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequestEventTarget: {\\n    prototype: XMLHttpRequestEventTarget;\\n    new(): XMLHttpRequestEventTarget;\\n};\\n\\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\\n    addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var XMLHttpRequestUpload: {\\n    prototype: XMLHttpRequestUpload;\\n    new(): XMLHttpRequestUpload;\\n};\\n\\n/** Provides the serializeToString() method to construct an XML string representing a DOM tree. */\\ninterface XMLSerializer {\\n    serializeToString(root: Node): string;\\n}\\n\\ndeclare var XMLSerializer: {\\n    prototype: XMLSerializer;\\n    new(): XMLSerializer;\\n};\\n\\n/** The XPathEvaluator interface allows to compile and evaluate XPath expressions. */\\ninterface XPathEvaluator extends XPathEvaluatorBase {\\n}\\n\\ndeclare var XPathEvaluator: {\\n    prototype: XPathEvaluator;\\n    new(): XPathEvaluator;\\n};\\n\\ninterface XPathEvaluatorBase {\\n    createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;\\n    createNSResolver(nodeResolver: Node): XPathNSResolver;\\n    evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: XPathResult | null): XPathResult;\\n}\\n\\n/** This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information its DOM tree. */\\ninterface XPathExpression {\\n    evaluate(contextNode: Node, type?: number, result?: XPathResult | null): XPathResult;\\n}\\n\\ndeclare var XPathExpression: {\\n    prototype: XPathExpression;\\n    new(): XPathExpression;\\n};\\n\\n/** The results generated by evaluating an XPath expression within the context of a given node. */\\ninterface XPathResult {\\n    readonly booleanValue: boolean;\\n    readonly invalidIteratorState: boolean;\\n    readonly numberValue: number;\\n    readonly resultType: number;\\n    readonly singleNodeValue: Node | null;\\n    readonly snapshotLength: number;\\n    readonly stringValue: string;\\n    iterateNext(): Node | null;\\n    snapshotItem(index: number): Node | null;\\n    readonly ANY_TYPE: number;\\n    readonly ANY_UNORDERED_NODE_TYPE: number;\\n    readonly BOOLEAN_TYPE: number;\\n    readonly FIRST_ORDERED_NODE_TYPE: number;\\n    readonly NUMBER_TYPE: number;\\n    readonly ORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\\n    readonly STRING_TYPE: number;\\n    readonly UNORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\\n}\\n\\ndeclare var XPathResult: {\\n    prototype: XPathResult;\\n    new(): XPathResult;\\n    readonly ANY_TYPE: number;\\n    readonly ANY_UNORDERED_NODE_TYPE: number;\\n    readonly BOOLEAN_TYPE: number;\\n    readonly FIRST_ORDERED_NODE_TYPE: number;\\n    readonly NUMBER_TYPE: number;\\n    readonly ORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\\n    readonly STRING_TYPE: number;\\n    readonly UNORDERED_NODE_ITERATOR_TYPE: number;\\n    readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\\n};\\n\\n/** An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param> parameter values, and to apply the transformation to documents. */\\ninterface XSLTProcessor {\\n    clearParameters(): void;\\n    getParameter(namespaceURI: string, localName: string): any;\\n    importStylesheet(style: Node): void;\\n    removeParameter(namespaceURI: string, localName: string): void;\\n    reset(): void;\\n    setParameter(namespaceURI: string, localName: string, value: any): void;\\n    transformToDocument(source: Node): Document;\\n    transformToFragment(source: Node, document: Document): DocumentFragment;\\n}\\n\\ndeclare var XSLTProcessor: {\\n    prototype: XSLTProcessor;\\n    new(): XSLTProcessor;\\n};\\n\\ninterface webkitRTCPeerConnection extends RTCPeerConnection {\\n    addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: webkitRTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\n    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\n    removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: webkitRTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\n    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\n}\\n\\ndeclare var webkitRTCPeerConnection: {\\n    prototype: webkitRTCPeerConnection;\\n    new(configuration: RTCConfiguration): webkitRTCPeerConnection;\\n};\\n\\ndeclare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;\\n\\ndeclare namespace WebAssembly {\\n    interface CompileError {\\n    }\\n    \\n    var CompileError: {\\n        prototype: CompileError;\\n        new(): CompileError;\\n    };\\n    \\n    interface Global {\\n        value: any;\\n        valueOf(): any;\\n    }\\n    \\n    var Global: {\\n        prototype: Global;\\n        new(descriptor: GlobalDescriptor, v?: any): Global;\\n    };\\n    \\n    interface Instance {\\n        readonly exports: Exports;\\n    }\\n    \\n    var Instance: {\\n        prototype: Instance;\\n        new(module: Module, importObject?: Imports): Instance;\\n    };\\n    \\n    interface LinkError {\\n    }\\n    \\n    var LinkError: {\\n        prototype: LinkError;\\n        new(): LinkError;\\n    };\\n    \\n    interface Memory {\\n        readonly buffer: ArrayBuffer;\\n        grow(delta: number): number;\\n    }\\n    \\n    var Memory: {\\n        prototype: Memory;\\n        new(descriptor: MemoryDescriptor): Memory;\\n    };\\n    \\n    interface Module {\\n    }\\n    \\n    var Module: {\\n        prototype: Module;\\n        new(bytes: BufferSource): Module;\\n        customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\\n        exports(moduleObject: Module): ModuleExportDescriptor[];\\n        imports(moduleObject: Module): ModuleImportDescriptor[];\\n    };\\n    \\n    interface RuntimeError {\\n    }\\n    \\n    var RuntimeError: {\\n        prototype: RuntimeError;\\n        new(): RuntimeError;\\n    };\\n    \\n    interface Table {\\n        readonly length: number;\\n        get(index: number): Function | null;\\n        grow(delta: number): number;\\n        set(index: number, value: Function | null): void;\\n    }\\n    \\n    var Table: {\\n        prototype: Table;\\n        new(descriptor: TableDescriptor): Table;\\n    };\\n    \\n    interface GlobalDescriptor {\\n        mutable?: boolean;\\n        value: ValueType;\\n    }\\n    \\n    interface MemoryDescriptor {\\n        initial: number;\\n        maximum?: number;\\n    }\\n    \\n    interface ModuleExportDescriptor {\\n        kind: ImportExportKind;\\n        name: string;\\n    }\\n    \\n    interface ModuleImportDescriptor {\\n        kind: ImportExportKind;\\n        module: string;\\n        name: string;\\n    }\\n    \\n    interface TableDescriptor {\\n        element: TableKind;\\n        initial: number;\\n        maximum?: number;\\n    }\\n    \\n    interface WebAssemblyInstantiatedSource {\\n        instance: Instance;\\n        module: Module;\\n    }\\n    \\n    type ImportExportKind = \"function\" | \"table\" | \"memory\" | \"global\";\\n    type TableKind = \"anyfunc\";\\n    type ValueType = \"i32\" | \"i64\" | \"f32\" | \"f64\";\\n    type ExportValue = Function | Global | Memory | Table;\\n    type Exports = Record<string, ExportValue>;\\n    type ImportValue = ExportValue | number;\\n    type ModuleImports = Record<string, ImportValue>;\\n    type Imports = Record<string, ModuleImports>;\\n    function compile(bytes: BufferSource): Promise<Module>;\\n    function compileStreaming(source: Response | Promise<Response>): Promise<Module>;\\n    function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\\n    function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;\\n    function instantiateStreaming(response: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\\n    function validate(bytes: BufferSource): boolean;\\n}\\n\\ninterface BlobCallback {\\n    (blob: Blob | null): void;\\n}\\n\\ninterface DecodeErrorCallback {\\n    (error: DOMException): void;\\n}\\n\\ninterface DecodeSuccessCallback {\\n    (decodedData: AudioBuffer): void;\\n}\\n\\ninterface EventHandlerNonNull {\\n    (event: Event): any;\\n}\\n\\ninterface ForEachCallback {\\n    (keyId: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, status: MediaKeyStatus): void;\\n}\\n\\ninterface FrameRequestCallback {\\n    (time: number): void;\\n}\\n\\ninterface FunctionStringCallback {\\n    (data: string): void;\\n}\\n\\ninterface IntersectionObserverCallback {\\n    (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;\\n}\\n\\ninterface MSLaunchUriCallback {\\n    (): void;\\n}\\n\\ninterface MutationCallback {\\n    (mutations: MutationRecord[], observer: MutationObserver): void;\\n}\\n\\ninterface NavigatorUserMediaErrorCallback {\\n    (error: MediaStreamError): void;\\n}\\n\\ninterface NavigatorUserMediaSuccessCallback {\\n    (stream: MediaStream): void;\\n}\\n\\ninterface NotificationPermissionCallback {\\n    (permission: NotificationPermission): void;\\n}\\n\\ninterface OnBeforeUnloadEventHandlerNonNull {\\n    (event: Event): string | null;\\n}\\n\\ninterface OnErrorEventHandlerNonNull {\\n    (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\\n}\\n\\ninterface PerformanceObserverCallback {\\n    (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\\n}\\n\\ninterface PositionCallback {\\n    (position: Position): void;\\n}\\n\\ninterface PositionErrorCallback {\\n    (positionError: PositionError): void;\\n}\\n\\ninterface QueuingStrategySizeCallback<T = any> {\\n    (chunk: T): number;\\n}\\n\\ninterface RTCPeerConnectionErrorCallback {\\n    (error: DOMException): void;\\n}\\n\\ninterface RTCSessionDescriptionCallback {\\n    (description: RTCSessionDescriptionInit): void;\\n}\\n\\ninterface RTCStatsCallback {\\n    (report: RTCStatsReport): void;\\n}\\n\\ninterface ReadableByteStreamControllerCallback {\\n    (controller: ReadableByteStreamController): void | PromiseLike<void>;\\n}\\n\\ninterface ReadableStreamDefaultControllerCallback<R> {\\n    (controller: ReadableStreamDefaultController<R>): void | PromiseLike<void>;\\n}\\n\\ninterface ReadableStreamErrorCallback {\\n    (reason: any): void | PromiseLike<void>;\\n}\\n\\ninterface TransformStreamDefaultControllerCallback<O> {\\n    (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\\n}\\n\\ninterface TransformStreamDefaultControllerTransformCallback<I, O> {\\n    (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\\n}\\n\\ninterface VoidFunction {\\n    (): void;\\n}\\n\\ninterface WritableStreamDefaultControllerCloseCallback {\\n    (): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamDefaultControllerStartCallback {\\n    (controller: WritableStreamDefaultController): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamDefaultControllerWriteCallback<W> {\\n    (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\\n}\\n\\ninterface WritableStreamErrorCallback {\\n    (reason: any): void | PromiseLike<void>;\\n}\\n\\ninterface HTMLElementTagNameMap {\\n    \"a\": HTMLAnchorElement;\\n    \"abbr\": HTMLElement;\\n    \"address\": HTMLElement;\\n    \"applet\": HTMLAppletElement;\\n    \"area\": HTMLAreaElement;\\n    \"article\": HTMLElement;\\n    \"aside\": HTMLElement;\\n    \"audio\": HTMLAudioElement;\\n    \"b\": HTMLElement;\\n    \"base\": HTMLBaseElement;\\n    \"basefont\": HTMLBaseFontElement;\\n    \"bdi\": HTMLElement;\\n    \"bdo\": HTMLElement;\\n    \"blockquote\": HTMLQuoteElement;\\n    \"body\": HTMLBodyElement;\\n    \"br\": HTMLBRElement;\\n    \"button\": HTMLButtonElement;\\n    \"canvas\": HTMLCanvasElement;\\n    \"caption\": HTMLTableCaptionElement;\\n    \"cite\": HTMLElement;\\n    \"code\": HTMLElement;\\n    \"col\": HTMLTableColElement;\\n    \"colgroup\": HTMLTableColElement;\\n    \"data\": HTMLDataElement;\\n    \"datalist\": HTMLDataListElement;\\n    \"dd\": HTMLElement;\\n    \"del\": HTMLModElement;\\n    \"details\": HTMLDetailsElement;\\n    \"dfn\": HTMLElement;\\n    \"dialog\": HTMLDialogElement;\\n    \"dir\": HTMLDirectoryElement;\\n    \"div\": HTMLDivElement;\\n    \"dl\": HTMLDListElement;\\n    \"dt\": HTMLElement;\\n    \"em\": HTMLElement;\\n    \"embed\": HTMLEmbedElement;\\n    \"fieldset\": HTMLFieldSetElement;\\n    \"figcaption\": HTMLElement;\\n    \"figure\": HTMLElement;\\n    \"font\": HTMLFontElement;\\n    \"footer\": HTMLElement;\\n    \"form\": HTMLFormElement;\\n    \"frame\": HTMLFrameElement;\\n    \"frameset\": HTMLFrameSetElement;\\n    \"h1\": HTMLHeadingElement;\\n    \"h2\": HTMLHeadingElement;\\n    \"h3\": HTMLHeadingElement;\\n    \"h4\": HTMLHeadingElement;\\n    \"h5\": HTMLHeadingElement;\\n    \"h6\": HTMLHeadingElement;\\n    \"head\": HTMLHeadElement;\\n    \"header\": HTMLElement;\\n    \"hgroup\": HTMLElement;\\n    \"hr\": HTMLHRElement;\\n    \"html\": HTMLHtmlElement;\\n    \"i\": HTMLElement;\\n    \"iframe\": HTMLIFrameElement;\\n    \"img\": HTMLImageElement;\\n    \"input\": HTMLInputElement;\\n    \"ins\": HTMLModElement;\\n    \"kbd\": HTMLElement;\\n    \"label\": HTMLLabelElement;\\n    \"legend\": HTMLLegendElement;\\n    \"li\": HTMLLIElement;\\n    \"link\": HTMLLinkElement;\\n    \"main\": HTMLElement;\\n    \"map\": HTMLMapElement;\\n    \"mark\": HTMLElement;\\n    \"marquee\": HTMLMarqueeElement;\\n    \"menu\": HTMLMenuElement;\\n    \"meta\": HTMLMetaElement;\\n    \"meter\": HTMLMeterElement;\\n    \"nav\": HTMLElement;\\n    \"noscript\": HTMLElement;\\n    \"object\": HTMLObjectElement;\\n    \"ol\": HTMLOListElement;\\n    \"optgroup\": HTMLOptGroupElement;\\n    \"option\": HTMLOptionElement;\\n    \"output\": HTMLOutputElement;\\n    \"p\": HTMLParagraphElement;\\n    \"param\": HTMLParamElement;\\n    \"picture\": HTMLPictureElement;\\n    \"pre\": HTMLPreElement;\\n    \"progress\": HTMLProgressElement;\\n    \"q\": HTMLQuoteElement;\\n    \"rp\": HTMLElement;\\n    \"rt\": HTMLElement;\\n    \"ruby\": HTMLElement;\\n    \"s\": HTMLElement;\\n    \"samp\": HTMLElement;\\n    \"script\": HTMLScriptElement;\\n    \"section\": HTMLElement;\\n    \"select\": HTMLSelectElement;\\n    \"slot\": HTMLSlotElement;\\n    \"small\": HTMLElement;\\n    \"source\": HTMLSourceElement;\\n    \"span\": HTMLSpanElement;\\n    \"strong\": HTMLElement;\\n    \"style\": HTMLStyleElement;\\n    \"sub\": HTMLElement;\\n    \"summary\": HTMLElement;\\n    \"sup\": HTMLElement;\\n    \"table\": HTMLTableElement;\\n    \"tbody\": HTMLTableSectionElement;\\n    \"td\": HTMLTableDataCellElement;\\n    \"template\": HTMLTemplateElement;\\n    \"textarea\": HTMLTextAreaElement;\\n    \"tfoot\": HTMLTableSectionElement;\\n    \"th\": HTMLTableHeaderCellElement;\\n    \"thead\": HTMLTableSectionElement;\\n    \"time\": HTMLTimeElement;\\n    \"title\": HTMLTitleElement;\\n    \"tr\": HTMLTableRowElement;\\n    \"track\": HTMLTrackElement;\\n    \"u\": HTMLElement;\\n    \"ul\": HTMLUListElement;\\n    \"var\": HTMLElement;\\n    \"video\": HTMLVideoElement;\\n    \"wbr\": HTMLElement;\\n}\\n\\ninterface HTMLElementDeprecatedTagNameMap {\\n    \"listing\": HTMLPreElement;\\n    \"xmp\": HTMLPreElement;\\n}\\n\\ninterface SVGElementTagNameMap {\\n    \"a\": SVGAElement;\\n    \"circle\": SVGCircleElement;\\n    \"clipPath\": SVGClipPathElement;\\n    \"defs\": SVGDefsElement;\\n    \"desc\": SVGDescElement;\\n    \"ellipse\": SVGEllipseElement;\\n    \"feBlend\": SVGFEBlendElement;\\n    \"feColorMatrix\": SVGFEColorMatrixElement;\\n    \"feComponentTransfer\": SVGFEComponentTransferElement;\\n    \"feComposite\": SVGFECompositeElement;\\n    \"feConvolveMatrix\": SVGFEConvolveMatrixElement;\\n    \"feDiffuseLighting\": SVGFEDiffuseLightingElement;\\n    \"feDisplacementMap\": SVGFEDisplacementMapElement;\\n    \"feDistantLight\": SVGFEDistantLightElement;\\n    \"feFlood\": SVGFEFloodElement;\\n    \"feFuncA\": SVGFEFuncAElement;\\n    \"feFuncB\": SVGFEFuncBElement;\\n    \"feFuncG\": SVGFEFuncGElement;\\n    \"feFuncR\": SVGFEFuncRElement;\\n    \"feGaussianBlur\": SVGFEGaussianBlurElement;\\n    \"feImage\": SVGFEImageElement;\\n    \"feMerge\": SVGFEMergeElement;\\n    \"feMergeNode\": SVGFEMergeNodeElement;\\n    \"feMorphology\": SVGFEMorphologyElement;\\n    \"feOffset\": SVGFEOffsetElement;\\n    \"fePointLight\": SVGFEPointLightElement;\\n    \"feSpecularLighting\": SVGFESpecularLightingElement;\\n    \"feSpotLight\": SVGFESpotLightElement;\\n    \"feTile\": SVGFETileElement;\\n    \"feTurbulence\": SVGFETurbulenceElement;\\n    \"filter\": SVGFilterElement;\\n    \"foreignObject\": SVGForeignObjectElement;\\n    \"g\": SVGGElement;\\n    \"image\": SVGImageElement;\\n    \"line\": SVGLineElement;\\n    \"linearGradient\": SVGLinearGradientElement;\\n    \"marker\": SVGMarkerElement;\\n    \"mask\": SVGMaskElement;\\n    \"metadata\": SVGMetadataElement;\\n    \"path\": SVGPathElement;\\n    \"pattern\": SVGPatternElement;\\n    \"polygon\": SVGPolygonElement;\\n    \"polyline\": SVGPolylineElement;\\n    \"radialGradient\": SVGRadialGradientElement;\\n    \"rect\": SVGRectElement;\\n    \"script\": SVGScriptElement;\\n    \"stop\": SVGStopElement;\\n    \"style\": SVGStyleElement;\\n    \"svg\": SVGSVGElement;\\n    \"switch\": SVGSwitchElement;\\n    \"symbol\": SVGSymbolElement;\\n    \"text\": SVGTextElement;\\n    \"textPath\": SVGTextPathElement;\\n    \"title\": SVGTitleElement;\\n    \"tspan\": SVGTSpanElement;\\n    \"use\": SVGUseElement;\\n    \"view\": SVGViewElement;\\n}\\n\\n/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */\\ntype ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;\\n\\ndeclare var Audio: {\\n    new(src?: string): HTMLAudioElement;\\n};\\ndeclare var Image: {\\n    new(width?: number, height?: number): HTMLImageElement;\\n};\\ndeclare var Option: {\\n    new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;\\n};\\ndeclare var applicationCache: ApplicationCache;\\ndeclare var caches: CacheStorage;\\ndeclare var clientInformation: Navigator;\\ndeclare var closed: boolean;\\ndeclare var crypto: Crypto;\\ndeclare var customElements: CustomElementRegistry;\\ndeclare var defaultStatus: string;\\ndeclare var devicePixelRatio: number;\\ndeclare var doNotTrack: string;\\ndeclare var document: Document;\\n/** @deprecated */\\ndeclare var event: Event | undefined;\\n/** @deprecated */\\ndeclare var external: External;\\ndeclare var frameElement: Element;\\ndeclare var frames: Window;\\ndeclare var history: History;\\ndeclare var innerHeight: number;\\ndeclare var innerWidth: number;\\ndeclare var isSecureContext: boolean;\\ndeclare var length: number;\\ndeclare var location: Location;\\ndeclare var locationbar: BarProp;\\ndeclare var menubar: BarProp;\\ndeclare var msContentScript: ExtensionScriptApis;\\ndeclare const name: never;\\ndeclare var navigator: Navigator;\\ndeclare var offscreenBuffering: string | boolean;\\ndeclare var oncompassneedscalibration: ((this: Window, ev: Event) => any) | null;\\ndeclare var ondevicelight: ((this: Window, ev: DeviceLightEvent) => any) | null;\\ndeclare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\\ndeclare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\ndeclare var ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\\ndeclare var onmousewheel: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturechange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturedoubletap: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgestureend: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturehold: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturestart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsgesturetap: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmsinertiastart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointercancel: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerdown: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerenter: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerleave: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointermove: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerout: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerover: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmspointerup: ((this: Window, ev: Event) => any) | null;\\n/** @deprecated */\\ndeclare var onorientationchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onreadystatechange: ((this: Window, ev: ProgressEvent<Window>) => any) | null;\\ndeclare var onvrdisplayactivate: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayblur: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayconnect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaydeactivate: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaydisconnect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplayfocus: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypointerrestricted: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypointerunrestricted: ((this: Window, ev: Event) => any) | null;\\ndeclare var onvrdisplaypresentchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var opener: any;\\n/** @deprecated */\\ndeclare var orientation: string | number;\\ndeclare var outerHeight: number;\\ndeclare var outerWidth: number;\\ndeclare var pageXOffset: number;\\ndeclare var pageYOffset: number;\\ndeclare var parent: Window;\\ndeclare var performance: Performance;\\ndeclare var personalbar: BarProp;\\ndeclare var screen: Screen;\\ndeclare var screenLeft: number;\\ndeclare var screenTop: number;\\ndeclare var screenX: number;\\ndeclare var screenY: number;\\ndeclare var scrollX: number;\\ndeclare var scrollY: number;\\ndeclare var scrollbars: BarProp;\\ndeclare var self: Window & typeof globalThis;\\ndeclare var speechSynthesis: SpeechSynthesis;\\ndeclare var status: string;\\ndeclare var statusbar: BarProp;\\ndeclare var styleMedia: StyleMedia;\\ndeclare var toolbar: BarProp;\\ndeclare var top: Window;\\ndeclare var window: Window & typeof globalThis;\\ndeclare function alert(message?: any): void;\\ndeclare function blur(): void;\\n/** @deprecated */\\ndeclare function captureEvents(): void;\\ndeclare function close(): void;\\ndeclare function confirm(message?: string): boolean;\\ndeclare function departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\\ndeclare function focus(): void;\\ndeclare function getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\\ndeclare function getMatchedCSSRules(elt: Element, pseudoElt?: string | null): CSSRuleList;\\ndeclare function getSelection(): Selection | null;\\ndeclare function matchMedia(query: string): MediaQueryList;\\ndeclare function moveBy(x: number, y: number): void;\\ndeclare function moveTo(x: number, y: number): void;\\ndeclare function msWriteProfilerMark(profilerMarkName: string): void;\\ndeclare function open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;\\ndeclare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\\ndeclare function print(): void;\\ndeclare function prompt(message?: string, _default?: string): string | null;\\n/** @deprecated */\\ndeclare function releaseEvents(): void;\\ndeclare function resizeBy(x: number, y: number): void;\\ndeclare function resizeTo(x: number, y: number): void;\\ndeclare function scroll(options?: ScrollToOptions): void;\\ndeclare function scroll(x: number, y: number): void;\\ndeclare function scrollBy(options?: ScrollToOptions): void;\\ndeclare function scrollBy(x: number, y: number): void;\\ndeclare function scrollTo(options?: ScrollToOptions): void;\\ndeclare function scrollTo(x: number, y: number): void;\\ndeclare function stop(): void;\\ndeclare function webkitCancelAnimationFrame(handle: number): void;\\ndeclare function webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\\ndeclare function webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\\ndeclare function webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\\ndeclare function toString(): string;\\n/**\\n * Dispatches a synthetic event event to target and returns true if either event\\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\\n */\\ndeclare function dispatchEvent(event: Event): boolean;\\ndeclare var sessionStorage: Storage;\\ndeclare var localStorage: Storage;\\ndeclare var console: Console;\\n/**\\n * Fires when the user aborts the download.\\n * @param ev The event.\\n */\\ndeclare var onabort: ((this: Window, ev: UIEvent) => any) | null;\\ndeclare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;\\ndeclare var onauxclick: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the object loses the input focus.\\n * @param ev The focus event.\\n */\\ndeclare var onblur: ((this: Window, ev: FocusEvent) => any) | null;\\ndeclare var oncancel: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when playback is possible, but would require further buffering.\\n * @param ev The event.\\n */\\ndeclare var oncanplay: ((this: Window, ev: Event) => any) | null;\\ndeclare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the contents of the object or selection have changed.\\n * @param ev The event.\\n */\\ndeclare var onchange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user clicks the left mouse button on the object\\n * @param ev The mouse event.\\n */\\ndeclare var onclick: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onclose: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\\n * @param ev The mouse event.\\n */\\ndeclare var oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var oncuechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user double-clicks the object.\\n * @param ev The mouse event.\\n */\\ndeclare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires on the source object continuously during a drag operation.\\n * @param ev The event.\\n */\\ndeclare var ondrag: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\\n * @param ev The event.\\n */\\ndeclare var ondragend: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the target element when the user drags the object to a valid drop target.\\n * @param ev The drag event.\\n */\\ndeclare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;\\ndeclare var ondragexit: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\\n * @param ev The drag event.\\n */\\ndeclare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the target element continuously while the user drags the object over a valid drop target.\\n * @param ev The event.\\n */\\ndeclare var ondragover: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Fires on the source object when the user starts to drag a text selection or selected object.\\n * @param ev The event.\\n */\\ndeclare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;\\ndeclare var ondrop: ((this: Window, ev: DragEvent) => any) | null;\\n/**\\n * Occurs when the duration attribute is updated.\\n * @param ev The event.\\n */\\ndeclare var ondurationchange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the media element is reset to its initial state.\\n * @param ev The event.\\n */\\ndeclare var onemptied: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the end of playback is reached.\\n * @param ev The event\\n */\\ndeclare var onended: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when an error occurs during object loading.\\n * @param ev The event.\\n */\\ndeclare var onerror: OnErrorEventHandler;\\n/**\\n * Fires when the object receives focus.\\n * @param ev The event.\\n */\\ndeclare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;\\ndeclare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var oninput: ((this: Window, ev: Event) => any) | null;\\ndeclare var oninvalid: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user presses a key.\\n * @param ev The keyboard event\\n */\\ndeclare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires when the user presses an alphanumeric key.\\n * @param ev The event.\\n */\\ndeclare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires when the user releases a key.\\n * @param ev The keyboard event\\n */\\ndeclare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;\\n/**\\n * Fires immediately after the browser loads the object.\\n * @param ev The event.\\n */\\ndeclare var onload: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when media data is loaded at the current playback position.\\n * @param ev The event.\\n */\\ndeclare var onloadeddata: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the duration and dimensions of the media have been determined.\\n * @param ev The event.\\n */\\ndeclare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;\\ndeclare var onloadend: ((this: Window, ev: ProgressEvent) => any) | null;\\n/**\\n * Occurs when Internet Explorer begins looking for media data.\\n * @param ev The event.\\n */\\ndeclare var onloadstart: ((this: Window, ev: Event) => any) | null;\\ndeclare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\\n/**\\n * Fires when the user clicks the object with either mouse button.\\n * @param ev The mouse event.\\n */\\ndeclare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;\\ndeclare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse over the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user moves the mouse pointer into the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Fires when the user releases a mouse button while the mouse is over the object.\\n * @param ev The mouse event.\\n */\\ndeclare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;\\n/**\\n * Occurs when playback is paused.\\n * @param ev The event.\\n */\\ndeclare var onpause: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the play method is requested.\\n * @param ev The event.\\n */\\ndeclare var onplay: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the audio or video has started playing.\\n * @param ev The event.\\n */\\ndeclare var onplaying: ((this: Window, ev: Event) => any) | null;\\ndeclare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointermove: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;\\ndeclare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;\\n/**\\n * Occurs to indicate progress while downloading media data.\\n * @param ev The event.\\n */\\ndeclare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;\\n/**\\n * Occurs when the playback rate is increased or decreased.\\n * @param ev The event.\\n */\\ndeclare var onratechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the user resets a form.\\n * @param ev The event.\\n */\\ndeclare var onreset: ((this: Window, ev: Event) => any) | null;\\ndeclare var onresize: ((this: Window, ev: UIEvent) => any) | null;\\n/**\\n * Fires when the user repositions the scroll box in the scroll bar on the object.\\n * @param ev The event.\\n */\\ndeclare var onscroll: ((this: Window, ev: Event) => any) | null;\\ndeclare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;\\n/**\\n * Occurs when the seek operation ends.\\n * @param ev The event.\\n */\\ndeclare var onseeked: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the current playback position is moved.\\n * @param ev The event.\\n */\\ndeclare var onseeking: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Fires when the current selection changes.\\n * @param ev The event.\\n */\\ndeclare var onselect: ((this: Window, ev: Event) => any) | null;\\ndeclare var onselectionchange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onselectstart: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when the download has stopped.\\n * @param ev The event.\\n */\\ndeclare var onstalled: ((this: Window, ev: Event) => any) | null;\\ndeclare var onsubmit: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs if the load operation has been intentionally halted.\\n * @param ev The event.\\n */\\ndeclare var onsuspend: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs to indicate the current playback position.\\n * @param ev The event.\\n */\\ndeclare var ontimeupdate: ((this: Window, ev: Event) => any) | null;\\ndeclare var ontoggle: ((this: Window, ev: Event) => any) | null;\\ndeclare var ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchend: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchmove: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontouchstart: ((this: Window, ev: TouchEvent) => any) | null;\\ndeclare var ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;\\ndeclare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;\\n/**\\n * Occurs when the volume is changed, or playback is muted or unmuted.\\n * @param ev The event.\\n */\\ndeclare var onvolumechange: ((this: Window, ev: Event) => any) | null;\\n/**\\n * Occurs when playback stops because the next frame of a video resource is not available.\\n * @param ev The event.\\n */\\ndeclare var onwaiting: ((this: Window, ev: Event) => any) | null;\\ndeclare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;\\ndeclare var indexedDB: IDBFactory;\\ndeclare function atob(encodedString: string): string;\\ndeclare function btoa(rawString: string): string;\\ndeclare function cancelAnimationFrame(handle: number): void;\\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\\ndeclare var caches: CacheStorage;\\ndeclare var crypto: Crypto;\\ndeclare var indexedDB: IDBFactory;\\ndeclare var origin: string;\\ndeclare var performance: Performance;\\ndeclare function atob(data: string): string;\\ndeclare function btoa(data: string): string;\\ndeclare function clearInterval(handle?: number): void;\\ndeclare function clearTimeout(handle?: number): void;\\ndeclare function createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;\\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;\\ndeclare function fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;\\ndeclare function queueMicrotask(callback: Function): void;\\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\\ndeclare var sessionStorage: Storage;\\ndeclare var localStorage: Storage;\\ndeclare var onafterprint: ((this: Window, ev: Event) => any) | null;\\ndeclare var onbeforeprint: ((this: Window, ev: Event) => any) | null;\\ndeclare var onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;\\ndeclare var onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;\\ndeclare var onlanguagechange: ((this: Window, ev: Event) => any) | null;\\ndeclare var onmessage: ((this: Window, ev: MessageEvent) => any) | null;\\ndeclare var onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;\\ndeclare var onoffline: ((this: Window, ev: Event) => any) | null;\\ndeclare var ononline: ((this: Window, ev: Event) => any) | null;\\ndeclare var onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;\\ndeclare var onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;\\ndeclare var onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;\\ndeclare var onrejectionhandled: ((this: Window, ev: Event) => any) | null;\\ndeclare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;\\ndeclare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;\\ndeclare var onunload: ((this: Window, ev: Event) => any) | null;\\ndeclare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\\ndeclare function removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\\ntype HeadersInit = Headers | string[][] | Record<string, string>;\\ntype BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream<Uint8Array> | string;\\ntype RequestInfo = Request | string;\\ntype BlobPart = BufferSource | Blob | string;\\ntype DOMHighResTimeStamp = number;\\ntype RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\\ntype HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;\\ntype CanvasImageSource = HTMLOrSVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas;\\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\\ntype MessageEventSource = WindowProxy | MessagePort | ServiceWorker;\\ntype HTMLOrSVGScriptElement = HTMLScriptElement | SVGScriptElement;\\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\\ntype OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;\\ntype TimerHandler = string | Function;\\ntype ConstrainULong = number | ConstrainULongRange;\\ntype ConstrainDouble = number | ConstrainDoubleRange;\\ntype ConstrainBoolean = boolean | ConstrainBooleanParameters;\\ntype ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;\\ntype PerformanceEntryList = PerformanceEntry[];\\ntype VibratePattern = number | number[];\\ntype COSEAlgorithmIdentifier = number;\\ntype AuthenticatorSelectionList = AAGUID[];\\ntype AAGUID = BufferSource;\\ntype AuthenticationExtensionsSupported = string[];\\ntype UvmEntry = number[];\\ntype UvmEntries = UvmEntry[];\\ntype AlgorithmIdentifier = string | Algorithm;\\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\\ntype BigInteger = Uint8Array;\\ntype NamedCurve = string;\\ntype GLenum = number;\\ntype GLboolean = boolean;\\ntype GLbitfield = number;\\ntype GLint = number;\\ntype GLsizei = number;\\ntype GLintptr = number;\\ntype GLsizeiptr = number;\\ntype GLuint = number;\\ntype GLfloat = number;\\ntype GLclampf = number;\\ntype TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas;\\ntype Float32List = Float32Array | GLfloat[];\\ntype Int32List = Int32Array | GLint[];\\ntype GLint64 = number;\\ntype GLuint64 = number;\\ntype Uint32List = Uint32Array | GLuint[];\\ntype BufferSource = ArrayBufferView | ArrayBuffer;\\ntype DOMTimeStamp = number;\\ntype LineAndPositionSetting = number | AutoKeyword;\\ntype FormDataEntryValue = File | string;\\ntype InsertPosition = \"beforebegin\" | \"afterbegin\" | \"beforeend\" | \"afterend\";\\ntype IDBValidKey = number | string | Date | BufferSource | IDBArrayKey;\\ntype MutationRecordType = \"attributes\" | \"characterData\" | \"childList\";\\ntype IDBKeyPath = string;\\ntype Transferable = ArrayBuffer | MessagePort | ImageBitmap;\\ntype RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;\\ntype RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;\\n/** @deprecated */\\ntype MouseWheelEvent = WheelEvent;\\ntype WindowProxy = Window;\\ntype AlignSetting = \"start\" | \"center\" | \"end\" | \"left\" | \"right\";\\ntype AnimationPlayState = \"idle\" | \"running\" | \"paused\" | \"finished\";\\ntype AppendMode = \"segments\" | \"sequence\";\\ntype AttestationConveyancePreference = \"none\" | \"indirect\" | \"direct\";\\ntype AudioContextLatencyCategory = \"balanced\" | \"interactive\" | \"playback\";\\ntype AudioContextState = \"suspended\" | \"running\" | \"closed\";\\ntype AuthenticatorAttachment = \"platform\" | \"cross-platform\";\\ntype AuthenticatorTransport = \"usb\" | \"nfc\" | \"ble\" | \"internal\";\\ntype AutoKeyword = \"auto\";\\ntype AutomationRate = \"a-rate\" | \"k-rate\";\\ntype BinaryType = \"blob\" | \"arraybuffer\";\\ntype BiquadFilterType = \"lowpass\" | \"highpass\" | \"bandpass\" | \"lowshelf\" | \"highshelf\" | \"peaking\" | \"notch\" | \"allpass\";\\ntype CanPlayTypeResult = \"\" | \"maybe\" | \"probably\";\\ntype CanvasDirection = \"ltr\" | \"rtl\" | \"inherit\";\\ntype CanvasFillRule = \"nonzero\" | \"evenodd\";\\ntype CanvasLineCap = \"butt\" | \"round\" | \"square\";\\ntype CanvasLineJoin = \"round\" | \"bevel\" | \"miter\";\\ntype CanvasTextAlign = \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\\ntype CanvasTextBaseline = \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\\ntype ChannelCountMode = \"max\" | \"clamped-max\" | \"explicit\";\\ntype ChannelInterpretation = \"speakers\" | \"discrete\";\\ntype ClientTypes = \"window\" | \"worker\" | \"sharedworker\" | \"all\";\\ntype CompositeOperation = \"replace\" | \"add\" | \"accumulate\";\\ntype CompositeOperationOrAuto = \"replace\" | \"add\" | \"accumulate\" | \"auto\";\\ntype CredentialMediationRequirement = \"silent\" | \"optional\" | \"required\";\\ntype DirectionSetting = \"\" | \"rl\" | \"lr\";\\ntype DisplayCaptureSurfaceType = \"monitor\" | \"window\" | \"application\" | \"browser\";\\ntype DistanceModelType = \"linear\" | \"inverse\" | \"exponential\";\\ntype DocumentReadyState = \"loading\" | \"interactive\" | \"complete\";\\ntype EndOfStreamError = \"network\" | \"decode\";\\ntype EndingType = \"transparent\" | \"native\";\\ntype FillMode = \"none\" | \"forwards\" | \"backwards\" | \"both\" | \"auto\";\\ntype FullscreenNavigationUI = \"auto\" | \"show\" | \"hide\";\\ntype GamepadHand = \"\" | \"left\" | \"right\";\\ntype GamepadHapticActuatorType = \"vibration\";\\ntype GamepadMappingType = \"\" | \"standard\";\\ntype IDBCursorDirection = \"next\" | \"nextunique\" | \"prev\" | \"prevunique\";\\ntype IDBRequestReadyState = \"pending\" | \"done\";\\ntype IDBTransactionMode = \"readonly\" | \"readwrite\" | \"versionchange\";\\ntype ImageSmoothingQuality = \"low\" | \"medium\" | \"high\";\\ntype IterationCompositeOperation = \"replace\" | \"accumulate\";\\ntype KeyFormat = \"raw\" | \"spki\" | \"pkcs8\" | \"jwk\";\\ntype KeyType = \"public\" | \"private\" | \"secret\";\\ntype KeyUsage = \"encrypt\" | \"decrypt\" | \"sign\" | \"verify\" | \"deriveKey\" | \"deriveBits\" | \"wrapKey\" | \"unwrapKey\";\\ntype LineAlignSetting = \"start\" | \"center\" | \"end\";\\ntype ListeningState = \"inactive\" | \"active\" | \"disambiguation\";\\ntype MSCredentialType = \"FIDO_2_0\";\\ntype MSTransportType = \"Embedded\" | \"USB\" | \"NFC\" | \"BT\";\\ntype MSWebViewPermissionState = \"unknown\" | \"defer\" | \"allow\" | \"deny\";\\ntype MSWebViewPermissionType = \"geolocation\" | \"unlimitedIndexedDBQuota\" | \"media\" | \"pointerlock\" | \"webnotifications\";\\ntype MediaDeviceKind = \"audioinput\" | \"audiooutput\" | \"videoinput\";\\ntype MediaKeyMessageType = \"license-request\" | \"license-renewal\" | \"license-release\" | \"individualization-request\";\\ntype MediaKeySessionType = \"temporary\" | \"persistent-license\";\\ntype MediaKeyStatus = \"usable\" | \"expired\" | \"released\" | \"output-restricted\" | \"output-downscaled\" | \"status-pending\" | \"internal-error\";\\ntype MediaKeysRequirement = \"required\" | \"optional\" | \"not-allowed\";\\ntype MediaStreamTrackState = \"live\" | \"ended\";\\ntype NavigationReason = \"up\" | \"down\" | \"left\" | \"right\";\\ntype NavigationType = \"navigate\" | \"reload\" | \"back_forward\" | \"prerender\";\\ntype NotificationDirection = \"auto\" | \"ltr\" | \"rtl\";\\ntype NotificationPermission = \"default\" | \"denied\" | \"granted\";\\ntype OffscreenRenderingContextId = \"2d\" | \"bitmaprenderer\" | \"webgl\" | \"webgl2\";\\ntype OrientationLockType = \"any\" | \"natural\" | \"landscape\" | \"portrait\" | \"portrait-primary\" | \"portrait-secondary\" | \"landscape-primary\" | \"landscape-secondary\";\\ntype OrientationType = \"portrait-primary\" | \"portrait-secondary\" | \"landscape-primary\" | \"landscape-secondary\";\\ntype OscillatorType = \"sine\" | \"square\" | \"sawtooth\" | \"triangle\" | \"custom\";\\ntype OverSampleType = \"none\" | \"2x\" | \"4x\";\\ntype PanningModelType = \"equalpower\" | \"HRTF\";\\ntype PaymentComplete = \"success\" | \"fail\" | \"unknown\";\\ntype PaymentShippingType = \"shipping\" | \"delivery\" | \"pickup\";\\ntype PermissionName = \"geolocation\" | \"notifications\" | \"push\" | \"midi\" | \"camera\" | \"microphone\" | \"speaker\" | \"device-info\" | \"background-sync\" | \"bluetooth\" | \"persistent-storage\" | \"ambient-light-sensor\" | \"accelerometer\" | \"gyroscope\" | \"magnetometer\" | \"clipboard\";\\ntype PermissionState = \"granted\" | \"denied\" | \"prompt\";\\ntype PlaybackDirection = \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\\ntype PositionAlignSetting = \"line-left\" | \"center\" | \"line-right\" | \"auto\";\\ntype PublicKeyCredentialType = \"public-key\";\\ntype PushEncryptionKeyName = \"p256dh\" | \"auth\";\\ntype PushPermissionState = \"denied\" | \"granted\" | \"prompt\";\\ntype RTCBundlePolicy = \"balanced\" | \"max-compat\" | \"max-bundle\";\\ntype RTCDataChannelState = \"connecting\" | \"open\" | \"closing\" | \"closed\";\\ntype RTCDegradationPreference = \"maintain-framerate\" | \"maintain-resolution\" | \"balanced\";\\ntype RTCDtlsRole = \"auto\" | \"client\" | \"server\";\\ntype RTCDtlsTransportState = \"new\" | \"connecting\" | \"connected\" | \"closed\" | \"failed\";\\ntype RTCDtxStatus = \"disabled\" | \"enabled\";\\ntype RTCErrorDetailType = \"data-channel-failure\" | \"dtls-failure\" | \"fingerprint-failure\" | \"idp-bad-script-failure\" | \"idp-execution-failure\" | \"idp-load-failure\" | \"idp-need-login\" | \"idp-timeout\" | \"idp-tls-failure\" | \"idp-token-expired\" | \"idp-token-invalid\" | \"sctp-failure\" | \"sdp-syntax-error\" | \"hardware-encoder-not-available\" | \"hardware-encoder-error\";\\ntype RTCIceCandidateType = \"host\" | \"srflx\" | \"prflx\" | \"relay\";\\ntype RTCIceComponent = \"rtp\" | \"rtcp\";\\ntype RTCIceConnectionState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCIceCredentialType = \"password\" | \"oauth\";\\ntype RTCIceGatherPolicy = \"all\" | \"nohost\" | \"relay\";\\ntype RTCIceGathererState = \"new\" | \"gathering\" | \"complete\";\\ntype RTCIceGatheringState = \"new\" | \"gathering\" | \"complete\";\\ntype RTCIceProtocol = \"udp\" | \"tcp\";\\ntype RTCIceRole = \"controlling\" | \"controlled\";\\ntype RTCIceTcpCandidateType = \"active\" | \"passive\" | \"so\";\\ntype RTCIceTransportPolicy = \"relay\" | \"all\";\\ntype RTCIceTransportState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCPeerConnectionState = \"new\" | \"connecting\" | \"connected\" | \"disconnected\" | \"failed\" | \"closed\";\\ntype RTCPriorityType = \"very-low\" | \"low\" | \"medium\" | \"high\";\\ntype RTCRtcpMuxPolicy = \"negotiate\" | \"require\";\\ntype RTCRtpTransceiverDirection = \"sendrecv\" | \"sendonly\" | \"recvonly\" | \"inactive\";\\ntype RTCSctpTransportState = \"connecting\" | \"connected\" | \"closed\";\\ntype RTCSdpType = \"offer\" | \"pranswer\" | \"answer\" | \"rollback\";\\ntype RTCSignalingState = \"stable\" | \"have-local-offer\" | \"have-remote-offer\" | \"have-local-pranswer\" | \"have-remote-pranswer\" | \"closed\";\\ntype RTCStatsIceCandidatePairState = \"frozen\" | \"waiting\" | \"inprogress\" | \"failed\" | \"succeeded\" | \"cancelled\";\\ntype RTCStatsIceCandidateType = \"host\" | \"serverreflexive\" | \"peerreflexive\" | \"relayed\";\\ntype RTCStatsType = \"inboundrtp\" | \"outboundrtp\" | \"session\" | \"datachannel\" | \"track\" | \"transport\" | \"candidatepair\" | \"localcandidate\" | \"remotecandidate\";\\ntype ReadyState = \"closed\" | \"open\" | \"ended\";\\ntype ReferrerPolicy = \"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"same-origin\" | \"origin\" | \"strict-origin\" | \"origin-when-cross-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\\ntype RequestCache = \"default\" | \"no-store\" | \"reload\" | \"no-cache\" | \"force-cache\" | \"only-if-cached\";\\ntype RequestCredentials = \"omit\" | \"same-origin\" | \"include\";\\ntype RequestDestination = \"\" | \"audio\" | \"audioworklet\" | \"document\" | \"embed\" | \"font\" | \"image\" | \"manifest\" | \"object\" | \"paintworklet\" | \"report\" | \"script\" | \"sharedworker\" | \"style\" | \"track\" | \"video\" | \"worker\" | \"xslt\";\\ntype RequestMode = \"navigate\" | \"same-origin\" | \"no-cors\" | \"cors\";\\ntype RequestRedirect = \"follow\" | \"error\" | \"manual\";\\ntype ResponseType = \"basic\" | \"cors\" | \"default\" | \"error\" | \"opaque\" | \"opaqueredirect\";\\ntype ScopedCredentialType = \"ScopedCred\";\\ntype ScrollBehavior = \"auto\" | \"smooth\";\\ntype ScrollLogicalPosition = \"start\" | \"center\" | \"end\" | \"nearest\";\\ntype ScrollRestoration = \"auto\" | \"manual\";\\ntype ScrollSetting = \"\" | \"up\";\\ntype SelectionMode = \"select\" | \"start\" | \"end\" | \"preserve\";\\ntype ServiceWorkerState = \"installing\" | \"installed\" | \"activating\" | \"activated\" | \"redundant\";\\ntype ServiceWorkerUpdateViaCache = \"imports\" | \"all\" | \"none\";\\ntype ShadowRootMode = \"open\" | \"closed\";\\ntype SpeechRecognitionErrorCode = \"no-speech\" | \"aborted\" | \"audio-capture\" | \"network\" | \"not-allowed\" | \"service-not-allowed\" | \"bad-grammar\" | \"language-not-supported\";\\ntype SpeechSynthesisErrorCode = \"canceled\" | \"interrupted\" | \"audio-busy\" | \"audio-hardware\" | \"network\" | \"synthesis-unavailable\" | \"synthesis-failed\" | \"language-unavailable\" | \"voice-unavailable\" | \"text-too-long\" | \"invalid-argument\";\\ntype SupportedType = \"text/html\" | \"text/xml\" | \"application/xml\" | \"application/xhtml+xml\" | \"image/svg+xml\";\\ntype TextTrackKind = \"subtitles\" | \"captions\" | \"descriptions\" | \"chapters\" | \"metadata\";\\ntype TextTrackMode = \"disabled\" | \"hidden\" | \"showing\";\\ntype TouchType = \"direct\" | \"stylus\";\\ntype Transport = \"usb\" | \"nfc\" | \"ble\";\\ntype UserVerificationRequirement = \"required\" | \"preferred\" | \"discouraged\";\\ntype VRDisplayEventReason = \"mounted\" | \"navigation\" | \"requested\" | \"unmounted\";\\ntype VideoFacingModeEnum = \"user\" | \"environment\" | \"left\" | \"right\";\\ntype VisibilityState = \"hidden\" | \"visible\";\\ntype WebGLPowerPreference = \"default\" | \"low-power\" | \"high-performance\";\\ntype WorkerType = \"classic\" | \"module\";\\ntype XMLHttpRequestResponseType = \"\" | \"arraybuffer\" | \"blob\" | \"document\" | \"json\" | \"text\";\\n',n.lib_es5_dts=\"/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\\\"true\\\"/>\\n\\n\\n/////////////////////////////\\n/// ECMAScript APIs\\n/////////////////////////////\\n\\ndeclare var NaN: number;\\ndeclare var Infinity: number;\\n\\n/**\\n * Evaluates JavaScript code and executes it.\\n * @param x A String value that contains valid JavaScript code.\\n */\\ndeclare function eval(x: string): any;\\n\\n/**\\n * Converts a string to an integer.\\n * @param s A string to convert into a number.\\n * @param radix A value between 2 and 36 that specifies the base of the number in numString.\\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\\n * All other strings are considered decimal.\\n */\\ndeclare function parseInt(s: string, radix?: number): number;\\n\\n/**\\n * Converts a string to a floating-point number.\\n * @param string A string that contains a floating-point number.\\n */\\ndeclare function parseFloat(string: string): number;\\n\\n/**\\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\\n * @param number A numeric value.\\n */\\ndeclare function isNaN(number: number): boolean;\\n\\n/**\\n * Determines whether a supplied number is finite.\\n * @param number Any numeric value.\\n */\\ndeclare function isFinite(number: number): boolean;\\n\\n/**\\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\\n * @param encodedURI A value representing an encoded URI.\\n */\\ndeclare function decodeURI(encodedURI: string): string;\\n\\n/**\\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\\n * @param encodedURIComponent A value representing an encoded URI component.\\n */\\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\\n\\n/**\\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\\n * @param uri A value representing an encoded URI.\\n */\\ndeclare function encodeURI(uri: string): string;\\n\\n/**\\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\\n * @param uriComponent A value representing an encoded URI component.\\n */\\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\\n\\n/**\\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\\n * @param string A string value\\n */\\ndeclare function escape(string: string): string;\\n\\n/**\\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\\n * @param string A string value\\n */\\ndeclare function unescape(string: string): string;\\n\\ninterface Symbol {\\n    /** Returns a string representation of an object. */\\n    toString(): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): symbol;\\n}\\n\\ndeclare type PropertyKey = string | number | symbol;\\n\\ninterface PropertyDescriptor {\\n    configurable?: boolean;\\n    enumerable?: boolean;\\n    value?: any;\\n    writable?: boolean;\\n    get?(): any;\\n    set?(v: any): void;\\n}\\n\\ninterface PropertyDescriptorMap {\\n    [s: string]: PropertyDescriptor;\\n}\\n\\ninterface Object {\\n    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\\n    constructor: Function;\\n\\n    /** Returns a string representation of an object. */\\n    toString(): string;\\n\\n    /** Returns a date converted to a string using the current locale. */\\n    toLocaleString(): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): Object;\\n\\n    /**\\n     * Determines whether an object has a property with the specified name.\\n     * @param v A property name.\\n     */\\n    hasOwnProperty(v: PropertyKey): boolean;\\n\\n    /**\\n     * Determines whether an object exists in another object's prototype chain.\\n     * @param v Another object whose prototype chain is to be checked.\\n     */\\n    isPrototypeOf(v: Object): boolean;\\n\\n    /**\\n     * Determines whether a specified property is enumerable.\\n     * @param v A property name.\\n     */\\n    propertyIsEnumerable(v: PropertyKey): boolean;\\n}\\n\\ninterface ObjectConstructor {\\n    new(value?: any): Object;\\n    (): any;\\n    (value: any): any;\\n\\n    /** A reference to the prototype for a class of objects. */\\n    readonly prototype: Object;\\n\\n    /**\\n     * Returns the prototype of an object.\\n     * @param o The object that references the prototype.\\n     */\\n    getPrototypeOf(o: any): any;\\n\\n    /**\\n     * Gets the own property descriptor of the specified object.\\n     * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\\n     * @param o Object that contains the property.\\n     * @param p Name of the property.\\n     */\\n    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\\n\\n    /**\\n     * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\\n     * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\\n     * @param o Object that contains the own properties.\\n     */\\n    getOwnPropertyNames(o: any): string[];\\n\\n    /**\\n     * Creates an object that has the specified prototype or that has null prototype.\\n     * @param o Object to use as a prototype. May be null.\\n     */\\n    create(o: object | null): any;\\n\\n    /**\\n     * Creates an object that has the specified prototype, and that optionally contains specified properties.\\n     * @param o Object to use as a prototype. May be null\\n     * @param properties JavaScript object that contains one or more property descriptors.\\n     */\\n    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;\\n\\n    /**\\n     * Adds a property to an object, or modifies attributes of an existing property.\\n     * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\\n     * @param p The property name.\\n     * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\\n     */\\n    defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): any;\\n\\n    /**\\n     * Adds one or more properties to an object, and/or modifies attributes of existing properties.\\n     * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\\n     * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\\n     */\\n    defineProperties(o: any, properties: PropertyDescriptorMap & ThisType<any>): any;\\n\\n    /**\\n     * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    seal<T>(o: T): T;\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T>(a: T[]): readonly T[];\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T extends Function>(f: T): T;\\n\\n    /**\\n     * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\\n     * @param o Object on which to lock the attributes.\\n     */\\n    freeze<T>(o: T): Readonly<T>;\\n\\n    /**\\n     * Prevents the addition of new properties to an object.\\n     * @param o Object to make non-extensible.\\n     */\\n    preventExtensions<T>(o: T): T;\\n\\n    /**\\n     * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\\n     * @param o Object to test.\\n     */\\n    isSealed(o: any): boolean;\\n\\n    /**\\n     * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\\n     * @param o Object to test.\\n     */\\n    isFrozen(o: any): boolean;\\n\\n    /**\\n     * Returns a value that indicates whether new properties can be added to an object.\\n     * @param o Object to test.\\n     */\\n    isExtensible(o: any): boolean;\\n\\n    /**\\n     * Returns the names of the enumerable string properties and methods of an object.\\n     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\\n     */\\n    keys(o: object): string[];\\n}\\n\\n/**\\n * Provides functionality common to all JavaScript objects.\\n */\\ndeclare var Object: ObjectConstructor;\\n\\n/**\\n * Creates a new function.\\n */\\ninterface Function {\\n    /**\\n     * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\\n     * @param thisArg The object to be used as the this object.\\n     * @param argArray A set of arguments to be passed to the function.\\n     */\\n    apply(this: Function, thisArg: any, argArray?: any): any;\\n\\n    /**\\n     * Calls a method of an object, substituting another object for the current object.\\n     * @param thisArg The object to be used as the current object.\\n     * @param argArray A list of arguments to be passed to the method.\\n     */\\n    call(this: Function, thisArg: any, ...argArray: any[]): any;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg An object to which the this keyword can refer inside the new function.\\n     * @param argArray A list of arguments to be passed to the new function.\\n     */\\n    bind(this: Function, thisArg: any, ...argArray: any[]): any;\\n\\n    /** Returns a string representation of a function. */\\n    toString(): string;\\n\\n    prototype: any;\\n    readonly length: number;\\n\\n    // Non-standard extensions\\n    arguments: any;\\n    caller: Function;\\n}\\n\\ninterface FunctionConstructor {\\n    /**\\n     * Creates a new function.\\n     * @param args A list of arguments the function accepts.\\n     */\\n    new(...args: string[]): Function;\\n    (...args: string[]): Function;\\n    readonly prototype: Function;\\n}\\n\\ndeclare var Function: FunctionConstructor;\\n\\n/**\\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\\n */\\ntype ThisParameterType<T> = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;\\n\\n/**\\n * Removes the 'this' parameter from a function type.\\n */\\ntype OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\\n\\ninterface CallableFunction extends Function {\\n    /**\\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args An array of argument values to be passed to the function.\\n     */\\n    apply<T, R>(this: (this: T) => R, thisArg: T): R;\\n    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\\n\\n    /**\\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Argument values to be passed to the function.\\n     */\\n    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Arguments to bind to the parameters of the function.\\n     */\\n    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;\\n    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;\\n    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;\\n    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;\\n    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;\\n    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;\\n}\\n\\ninterface NewableFunction extends Function {\\n    /**\\n     * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args An array of argument values to be passed to the function.\\n     */\\n    apply<T>(this: new () => T, thisArg: T): void;\\n    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;\\n\\n    /**\\n     * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Argument values to be passed to the function.\\n     */\\n    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;\\n\\n    /**\\n     * For a given function, creates a bound function that has the same body as the original function.\\n     * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\\n     * @param thisArg The object to be used as the this object.\\n     * @param args Arguments to bind to the parameters of the function.\\n     */\\n    bind<T>(this: T, thisArg: any): T;\\n    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;\\n    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;\\n    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;\\n    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;\\n    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;\\n}\\n\\ninterface IArguments {\\n    [index: number]: any;\\n    length: number;\\n    callee: Function;\\n}\\n\\ninterface String {\\n    /** Returns a string representation of a string. */\\n    toString(): string;\\n\\n    /**\\n     * Returns the character at the specified index.\\n     * @param pos The zero-based index of the desired character.\\n     */\\n    charAt(pos: number): string;\\n\\n    /**\\n     * Returns the Unicode value of the character at the specified location.\\n     * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\\n     */\\n    charCodeAt(index: number): number;\\n\\n    /**\\n     * Returns a string that contains the concatenation of two or more strings.\\n     * @param strings The strings to append to the end of the string.\\n     */\\n    concat(...strings: string[]): string;\\n\\n    /**\\n     * Returns the position of the first occurrence of a substring.\\n     * @param searchString The substring to search for in the string\\n     * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\\n     */\\n    indexOf(searchString: string, position?: number): number;\\n\\n    /**\\n     * Returns the last occurrence of a substring in the string.\\n     * @param searchString The substring to search for.\\n     * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\\n     */\\n    lastIndexOf(searchString: string, position?: number): number;\\n\\n    /**\\n     * Determines whether two strings are equivalent in the current locale.\\n     * @param that String to compare to target string\\n     */\\n    localeCompare(that: string): number;\\n\\n    /**\\n     * Matches a string with a regular expression, and returns an array containing the results of that search.\\n     * @param regexp A variable name or string literal containing the regular expression pattern and flags.\\n     */\\n    match(regexp: string | RegExp): RegExpMatchArray | null;\\n\\n    /**\\n     * Replaces text in a string, using a regular expression or search string.\\n     * @param searchValue A string to search for.\\n     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\\n     */\\n    replace(searchValue: string | RegExp, replaceValue: string): string;\\n\\n    /**\\n     * Replaces text in a string, using a regular expression or search string.\\n     * @param searchValue A string to search for.\\n     * @param replacer A function that returns the replacement text.\\n     */\\n    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\\n\\n    /**\\n     * Finds the first substring match in a regular expression search.\\n     * @param regexp The regular expression pattern and applicable flags.\\n     */\\n    search(regexp: string | RegExp): number;\\n\\n    /**\\n     * Returns a section of a string.\\n     * @param start The index to the beginning of the specified portion of stringObj.\\n     * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\\n     * If this value is not specified, the substring continues to the end of stringObj.\\n     */\\n    slice(start?: number, end?: number): string;\\n\\n    /**\\n     * Split a string into substrings using the specified separator and return them as an array.\\n     * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\\n     * @param limit A value used to limit the number of elements returned in the array.\\n     */\\n    split(separator: string | RegExp, limit?: number): string[];\\n\\n    /**\\n     * Returns the substring at the specified location within a String object.\\n     * @param start The zero-based index number indicating the beginning of the substring.\\n     * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\\n     * If end is omitted, the characters from start through the end of the original string are returned.\\n     */\\n    substring(start: number, end?: number): string;\\n\\n    /** Converts all the alphabetic characters in a string to lowercase. */\\n    toLowerCase(): string;\\n\\n    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\\n    toLocaleLowerCase(locales?: string | string[]): string;\\n\\n    /** Converts all the alphabetic characters in a string to uppercase. */\\n    toUpperCase(): string;\\n\\n    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\\n    toLocaleUpperCase(locales?: string | string[]): string;\\n\\n    /** Removes the leading and trailing white space and line terminator characters from a string. */\\n    trim(): string;\\n\\n    /** Returns the length of a String object. */\\n    readonly length: number;\\n\\n    // IE extensions\\n    /**\\n     * Gets a substring beginning at the specified location and having the specified length.\\n     * @param from The starting position of the desired substring. The index of the first character in the string is zero.\\n     * @param length The number of characters to include in the returned substring.\\n     */\\n    substr(from: number, length?: number): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): string;\\n\\n    readonly [index: number]: string;\\n}\\n\\ninterface StringConstructor {\\n    new(value?: any): String;\\n    (value?: any): string;\\n    readonly prototype: String;\\n    fromCharCode(...codes: number[]): string;\\n}\\n\\n/**\\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\\n */\\ndeclare var String: StringConstructor;\\n\\ninterface Boolean {\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): boolean;\\n}\\n\\ninterface BooleanConstructor {\\n    new(value?: any): Boolean;\\n    <T>(value?: T): boolean;\\n    readonly prototype: Boolean;\\n}\\n\\ndeclare var Boolean: BooleanConstructor;\\n\\ninterface Number {\\n    /**\\n     * Returns a string representation of an object.\\n     * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\\n     */\\n    toString(radix?: number): string;\\n\\n    /**\\n     * Returns a string representing a number in fixed-point notation.\\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\\n     */\\n    toFixed(fractionDigits?: number): string;\\n\\n    /**\\n     * Returns a string containing a number represented in exponential notation.\\n     * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\\n     */\\n    toExponential(fractionDigits?: number): string;\\n\\n    /**\\n     * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\\n     * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\\n     */\\n    toPrecision(precision?: number): string;\\n\\n    /** Returns the primitive value of the specified object. */\\n    valueOf(): number;\\n}\\n\\ninterface NumberConstructor {\\n    new(value?: any): Number;\\n    (value?: any): number;\\n    readonly prototype: Number;\\n\\n    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\\n    readonly MAX_VALUE: number;\\n\\n    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\\n    readonly MIN_VALUE: number;\\n\\n    /**\\n     * A value that is not a number.\\n     * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\\n     */\\n    readonly NaN: number;\\n\\n    /**\\n     * A value that is less than the largest negative number that can be represented in JavaScript.\\n     * JavaScript displays NEGATIVE_INFINITY values as -infinity.\\n     */\\n    readonly NEGATIVE_INFINITY: number;\\n\\n    /**\\n     * A value greater than the largest number that can be represented in JavaScript.\\n     * JavaScript displays POSITIVE_INFINITY values as infinity.\\n     */\\n    readonly POSITIVE_INFINITY: number;\\n}\\n\\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\\ndeclare var Number: NumberConstructor;\\n\\ninterface TemplateStringsArray extends ReadonlyArray<string> {\\n    readonly raw: readonly string[];\\n}\\n\\n/**\\n * The type of `import.meta`.\\n *\\n * If you need to declare that a given property exists on `import.meta`,\\n * this type may be augmented via interface merging.\\n */\\ninterface ImportMeta {\\n}\\n\\ninterface Math {\\n    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\\n    readonly E: number;\\n    /** The natural logarithm of 10. */\\n    readonly LN10: number;\\n    /** The natural logarithm of 2. */\\n    readonly LN2: number;\\n    /** The base-2 logarithm of e. */\\n    readonly LOG2E: number;\\n    /** The base-10 logarithm of e. */\\n    readonly LOG10E: number;\\n    /** Pi. This is the ratio of the circumference of a circle to its diameter. */\\n    readonly PI: number;\\n    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\\n    readonly SQRT1_2: number;\\n    /** The square root of 2. */\\n    readonly SQRT2: number;\\n    /**\\n     * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\\n     * For example, the absolute value of -5 is the same as the absolute value of 5.\\n     * @param x A numeric expression for which the absolute value is needed.\\n     */\\n    abs(x: number): number;\\n    /**\\n     * Returns the arc cosine (or inverse cosine) of a number.\\n     * @param x A numeric expression.\\n     */\\n    acos(x: number): number;\\n    /**\\n     * Returns the arcsine of a number.\\n     * @param x A numeric expression.\\n     */\\n    asin(x: number): number;\\n    /**\\n     * Returns the arctangent of a number.\\n     * @param x A numeric expression for which the arctangent is needed.\\n     */\\n    atan(x: number): number;\\n    /**\\n     * Returns the angle (in radians) from the X axis to a point.\\n     * @param y A numeric expression representing the cartesian y-coordinate.\\n     * @param x A numeric expression representing the cartesian x-coordinate.\\n     */\\n    atan2(y: number, x: number): number;\\n    /**\\n     * Returns the smallest integer greater than or equal to its numeric argument.\\n     * @param x A numeric expression.\\n     */\\n    ceil(x: number): number;\\n    /**\\n     * Returns the cosine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    cos(x: number): number;\\n    /**\\n     * Returns e (the base of natural logarithms) raised to a power.\\n     * @param x A numeric expression representing the power of e.\\n     */\\n    exp(x: number): number;\\n    /**\\n     * Returns the greatest integer less than or equal to its numeric argument.\\n     * @param x A numeric expression.\\n     */\\n    floor(x: number): number;\\n    /**\\n     * Returns the natural logarithm (base e) of a number.\\n     * @param x A numeric expression.\\n     */\\n    log(x: number): number;\\n    /**\\n     * Returns the larger of a set of supplied numeric expressions.\\n     * @param values Numeric expressions to be evaluated.\\n     */\\n    max(...values: number[]): number;\\n    /**\\n     * Returns the smaller of a set of supplied numeric expressions.\\n     * @param values Numeric expressions to be evaluated.\\n     */\\n    min(...values: number[]): number;\\n    /**\\n     * Returns the value of a base expression taken to a specified power.\\n     * @param x The base value of the expression.\\n     * @param y The exponent value of the expression.\\n     */\\n    pow(x: number, y: number): number;\\n    /** Returns a pseudorandom number between 0 and 1. */\\n    random(): number;\\n    /**\\n     * Returns a supplied numeric expression rounded to the nearest integer.\\n     * @param x The value to be rounded to the nearest integer.\\n     */\\n    round(x: number): number;\\n    /**\\n     * Returns the sine of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    sin(x: number): number;\\n    /**\\n     * Returns the square root of a number.\\n     * @param x A numeric expression.\\n     */\\n    sqrt(x: number): number;\\n    /**\\n     * Returns the tangent of a number.\\n     * @param x A numeric expression that contains an angle measured in radians.\\n     */\\n    tan(x: number): number;\\n}\\n/** An intrinsic object that provides basic mathematics functionality and constants. */\\ndeclare var Math: Math;\\n\\n/** Enables basic storage and retrieval of dates and times. */\\ninterface Date {\\n    /** Returns a string representation of a date. The format of the string depends on the locale. */\\n    toString(): string;\\n    /** Returns a date as a string value. */\\n    toDateString(): string;\\n    /** Returns a time as a string value. */\\n    toTimeString(): string;\\n    /** Returns a value as a string value appropriate to the host environment's current locale. */\\n    toLocaleString(): string;\\n    /** Returns a date as a string value appropriate to the host environment's current locale. */\\n    toLocaleDateString(): string;\\n    /** Returns a time as a string value appropriate to the host environment's current locale. */\\n    toLocaleTimeString(): string;\\n    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\\n    valueOf(): number;\\n    /** Gets the time value in milliseconds. */\\n    getTime(): number;\\n    /** Gets the year, using local time. */\\n    getFullYear(): number;\\n    /** Gets the year using Universal Coordinated Time (UTC). */\\n    getUTCFullYear(): number;\\n    /** Gets the month, using local time. */\\n    getMonth(): number;\\n    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMonth(): number;\\n    /** Gets the day-of-the-month, using local time. */\\n    getDate(): number;\\n    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\\n    getUTCDate(): number;\\n    /** Gets the day of the week, using local time. */\\n    getDay(): number;\\n    /** Gets the day of the week using Universal Coordinated Time (UTC). */\\n    getUTCDay(): number;\\n    /** Gets the hours in a date, using local time. */\\n    getHours(): number;\\n    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\\n    getUTCHours(): number;\\n    /** Gets the minutes of a Date object, using local time. */\\n    getMinutes(): number;\\n    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMinutes(): number;\\n    /** Gets the seconds of a Date object, using local time. */\\n    getSeconds(): number;\\n    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCSeconds(): number;\\n    /** Gets the milliseconds of a Date, using local time. */\\n    getMilliseconds(): number;\\n    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\\n    getUTCMilliseconds(): number;\\n    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\\n    getTimezoneOffset(): number;\\n    /**\\n     * Sets the date and time value in the Date object.\\n     * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\\n     */\\n    setTime(time: number): number;\\n    /**\\n     * Sets the milliseconds value in the Date object using local time.\\n     * @param ms A numeric value equal to the millisecond value.\\n     */\\n    setMilliseconds(ms: number): number;\\n    /**\\n     * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\\n     * @param ms A numeric value equal to the millisecond value.\\n     */\\n    setUTCMilliseconds(ms: number): number;\\n\\n    /**\\n     * Sets the seconds value in the Date object using local time.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setSeconds(sec: number, ms?: number): number;\\n    /**\\n     * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCSeconds(sec: number, ms?: number): number;\\n    /**\\n     * Sets the minutes value in the Date object using local time.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setMinutes(min: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCMinutes(min: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the hour value in the Date object using local time.\\n     * @param hours A numeric value equal to the hours value.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setHours(hours: number, min?: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\\n     * @param hours A numeric value equal to the hours value.\\n     * @param min A numeric value equal to the minutes value.\\n     * @param sec A numeric value equal to the seconds value.\\n     * @param ms A numeric value equal to the milliseconds value.\\n     */\\n    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\\n    /**\\n     * Sets the numeric day-of-the-month value of the Date object using local time.\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setDate(date: number): number;\\n    /**\\n     * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setUTCDate(date: number): number;\\n    /**\\n     * Sets the month value in the Date object using local time.\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\\n     * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\\n     */\\n    setMonth(month: number, date?: number): number;\\n    /**\\n     * Sets the month value in the Date object using Universal Coordinated Time (UTC).\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\\n     * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\\n     */\\n    setUTCMonth(month: number, date?: number): number;\\n    /**\\n     * Sets the year of the Date object using local time.\\n     * @param year A numeric value for the year.\\n     * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\\n     * @param date A numeric value equal for the day of the month.\\n     */\\n    setFullYear(year: number, month?: number, date?: number): number;\\n    /**\\n     * Sets the year value in the Date object using Universal Coordinated Time (UTC).\\n     * @param year A numeric value equal to the year.\\n     * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\\n     * @param date A numeric value equal to the day of the month.\\n     */\\n    setUTCFullYear(year: number, month?: number, date?: number): number;\\n    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\\n    toUTCString(): string;\\n    /** Returns a date as a string value in ISO format. */\\n    toISOString(): string;\\n    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\\n    toJSON(key?: any): string;\\n}\\n\\ninterface DateConstructor {\\n    new(): Date;\\n    new(value: number | string): Date;\\n    new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\\n    (): string;\\n    readonly prototype: Date;\\n    /**\\n     * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\\n     * @param s A date string\\n     */\\n    parse(s: string): number;\\n    /**\\n     * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\\n     * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\\n     * @param month The month as a number between 0 and 11 (January to December).\\n     * @param date The date as a number between 1 and 31.\\n     * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\\n     * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\\n     * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\\n     * @param ms A number from 0 to 999 that specifies the milliseconds.\\n     */\\n    UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\\n    now(): number;\\n}\\n\\ndeclare var Date: DateConstructor;\\n\\ninterface RegExpMatchArray extends Array<string> {\\n    index?: number;\\n    input?: string;\\n}\\n\\ninterface RegExpExecArray extends Array<string> {\\n    index: number;\\n    input: string;\\n}\\n\\ninterface RegExp {\\n    /**\\n     * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\\n     * @param string The String object or string literal on which to perform the search.\\n     */\\n    exec(string: string): RegExpExecArray | null;\\n\\n    /**\\n     * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\\n     * @param string String on which to perform the search.\\n     */\\n    test(string: string): boolean;\\n\\n    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\\n    readonly source: string;\\n\\n    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\\n    readonly global: boolean;\\n\\n    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\\n    readonly ignoreCase: boolean;\\n\\n    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\\n    readonly multiline: boolean;\\n\\n    lastIndex: number;\\n\\n    // Non-standard extensions\\n    compile(): this;\\n}\\n\\ninterface RegExpConstructor {\\n    new(pattern: RegExp | string): RegExp;\\n    new(pattern: string, flags?: string): RegExp;\\n    (pattern: RegExp | string): RegExp;\\n    (pattern: string, flags?: string): RegExp;\\n    readonly prototype: RegExp;\\n\\n    // Non-standard extensions\\n    $1: string;\\n    $2: string;\\n    $3: string;\\n    $4: string;\\n    $5: string;\\n    $6: string;\\n    $7: string;\\n    $8: string;\\n    $9: string;\\n    lastMatch: string;\\n}\\n\\ndeclare var RegExp: RegExpConstructor;\\n\\ninterface Error {\\n    name: string;\\n    message: string;\\n    stack?: string;\\n}\\n\\ninterface ErrorConstructor {\\n    new(message?: string): Error;\\n    (message?: string): Error;\\n    readonly prototype: Error;\\n}\\n\\ndeclare var Error: ErrorConstructor;\\n\\ninterface EvalError extends Error {\\n}\\n\\ninterface EvalErrorConstructor {\\n    new(message?: string): EvalError;\\n    (message?: string): EvalError;\\n    readonly prototype: EvalError;\\n}\\n\\ndeclare var EvalError: EvalErrorConstructor;\\n\\ninterface RangeError extends Error {\\n}\\n\\ninterface RangeErrorConstructor {\\n    new(message?: string): RangeError;\\n    (message?: string): RangeError;\\n    readonly prototype: RangeError;\\n}\\n\\ndeclare var RangeError: RangeErrorConstructor;\\n\\ninterface ReferenceError extends Error {\\n}\\n\\ninterface ReferenceErrorConstructor {\\n    new(message?: string): ReferenceError;\\n    (message?: string): ReferenceError;\\n    readonly prototype: ReferenceError;\\n}\\n\\ndeclare var ReferenceError: ReferenceErrorConstructor;\\n\\ninterface SyntaxError extends Error {\\n}\\n\\ninterface SyntaxErrorConstructor {\\n    new(message?: string): SyntaxError;\\n    (message?: string): SyntaxError;\\n    readonly prototype: SyntaxError;\\n}\\n\\ndeclare var SyntaxError: SyntaxErrorConstructor;\\n\\ninterface TypeError extends Error {\\n}\\n\\ninterface TypeErrorConstructor {\\n    new(message?: string): TypeError;\\n    (message?: string): TypeError;\\n    readonly prototype: TypeError;\\n}\\n\\ndeclare var TypeError: TypeErrorConstructor;\\n\\ninterface URIError extends Error {\\n}\\n\\ninterface URIErrorConstructor {\\n    new(message?: string): URIError;\\n    (message?: string): URIError;\\n    readonly prototype: URIError;\\n}\\n\\ndeclare var URIError: URIErrorConstructor;\\n\\ninterface JSON {\\n    /**\\n     * Converts a JavaScript Object Notation (JSON) string into an object.\\n     * @param text A valid JSON string.\\n     * @param reviver A function that transforms the results. This function is called for each member of the object.\\n     * If a member contains nested objects, the nested objects are transformed before the parent object is.\\n     */\\n    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\\n    /**\\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\\n     * @param value A JavaScript value, usually an object or array, to be converted.\\n     * @param replacer A function that transforms the results.\\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\\n     */\\n    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\\n    /**\\n     * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\\n     * @param value A JavaScript value, usually an object or array, to be converted.\\n     * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.\\n     * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\\n     */\\n    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\\n}\\n\\n/**\\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\\n */\\ndeclare var JSON: JSON;\\n\\n\\n/////////////////////////////\\n/// ECMAScript Array API (specially handled by compiler)\\n/////////////////////////////\\n\\ninterface ReadonlyArray<T> {\\n    /**\\n     * Gets the length of the array. This is a number one higher than the highest element defined in an array.\\n     */\\n    readonly length: number;\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n    /**\\n     * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\\n     */\\n    toLocaleString(): string;\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: ConcatArray<T>[]): T[];\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: (T | ConcatArray<T>)[]): T[];\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): T[];\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\\n     */\\n    indexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Returns the index of the last occurrence of a specified value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\\n     */\\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter<S extends T>(callbackfn: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\\n\\n    readonly [n: number]: T;\\n}\\n\\ninterface ConcatArray<T> {\\n    readonly length: number;\\n    readonly [n: number]: T;\\n    join(separator?: string): string;\\n    slice(start?: number, end?: number): T[];\\n}\\n\\ninterface Array<T> {\\n    /**\\n     * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.\\n     */\\n    length: number;\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n    /**\\n     * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\\n     */\\n    toLocaleString(): string;\\n    /**\\n     * Removes the last element from an array and returns it.\\n     */\\n    pop(): T | undefined;\\n    /**\\n     * Appends new elements to an array, and returns the new length of the array.\\n     * @param items New elements of the Array.\\n     */\\n    push(...items: T[]): number;\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: ConcatArray<T>[]): T[];\\n    /**\\n     * Combines two or more arrays.\\n     * @param items Additional items to add to the end of array1.\\n     */\\n    concat(...items: (T | ConcatArray<T>)[]): T[];\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): T[];\\n    /**\\n     * Removes the first element from an array and returns it.\\n     */\\n    shift(): T | undefined;\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): T[];\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: T, b: T) => number): this;\\n    /**\\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\\n     * @param start The zero-based location in the array from which to start removing elements.\\n     * @param deleteCount The number of elements to remove.\\n     */\\n    splice(start: number, deleteCount?: number): T[];\\n    /**\\n     * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\\n     * @param start The zero-based location in the array from which to start removing elements.\\n     * @param deleteCount The number of elements to remove.\\n     * @param items Elements to insert into the array in place of the deleted elements.\\n     */\\n    splice(start: number, deleteCount: number, ...items: T[]): T[];\\n    /**\\n     * Inserts new elements at the start of an array.\\n     * @param items  Elements to insert at the start of the Array.\\n     */\\n    unshift(...items: T[]): number;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\\n     */\\n    indexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Returns the index of the last occurrence of a specified value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\\n     */\\n    lastIndexOf(searchElement: T, fromIndex?: number): number;\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\\n    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\\n    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\\n\\n    [n: number]: T;\\n}\\n\\ninterface ArrayConstructor {\\n    new(arrayLength?: number): any[];\\n    new <T>(arrayLength: number): T[];\\n    new <T>(...items: T[]): T[];\\n    (arrayLength?: number): any[];\\n    <T>(arrayLength: number): T[];\\n    <T>(...items: T[]): T[];\\n    isArray(arg: any): arg is any[];\\n    readonly prototype: any[];\\n}\\n\\ndeclare var Array: ArrayConstructor;\\n\\ninterface TypedPropertyDescriptor<T> {\\n    enumerable?: boolean;\\n    configurable?: boolean;\\n    writable?: boolean;\\n    value?: T;\\n    get?: () => T;\\n    set?: (value: T) => void;\\n}\\n\\ndeclare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;\\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\\ndeclare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;\\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\\n\\ndeclare type PromiseConstructorLike = new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;\\n\\ninterface PromiseLike<T> {\\n    /**\\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\\n     * @param onfulfilled The callback to execute when the Promise is resolved.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of which ever callback is executed.\\n     */\\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;\\n}\\n\\n/**\\n * Represents the completion of an asynchronous operation\\n */\\ninterface Promise<T> {\\n    /**\\n     * Attaches callbacks for the resolution and/or rejection of the Promise.\\n     * @param onfulfilled The callback to execute when the Promise is resolved.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of which ever callback is executed.\\n     */\\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;\\n\\n    /**\\n     * Attaches a callback for only the rejection of the Promise.\\n     * @param onrejected The callback to execute when the Promise is rejected.\\n     * @returns A Promise for the completion of the callback.\\n     */\\n    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;\\n}\\n\\ninterface ArrayLike<T> {\\n    readonly length: number;\\n    readonly [n: number]: T;\\n}\\n\\n/**\\n * Make all properties in T optional\\n */\\ntype Partial<T> = {\\n    [P in keyof T]?: T[P];\\n};\\n\\n/**\\n * Make all properties in T required\\n */\\ntype Required<T> = {\\n    [P in keyof T]-?: T[P];\\n};\\n\\n/**\\n * Make all properties in T readonly\\n */\\ntype Readonly<T> = {\\n    readonly [P in keyof T]: T[P];\\n};\\n\\n/**\\n * From T, pick a set of properties whose keys are in the union K\\n */\\ntype Pick<T, K extends keyof T> = {\\n    [P in K]: T[P];\\n};\\n\\n/**\\n * Construct a type with a set of properties K of type T\\n */\\ntype Record<K extends keyof any, T> = {\\n    [P in K]: T;\\n};\\n\\n/**\\n * Exclude from T those types that are assignable to U\\n */\\ntype Exclude<T, U> = T extends U ? never : T;\\n\\n/**\\n * Extract from T those types that are assignable to U\\n */\\ntype Extract<T, U> = T extends U ? T : never;\\n\\n/**\\n * Construct a type with the properties of T except for those in type K.\\n */\\ntype Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;\\n\\n/**\\n * Exclude null and undefined from T\\n */\\ntype NonNullable<T> = T extends null | undefined ? never : T;\\n\\n/**\\n * Obtain the parameters of a function type in a tuple\\n */\\ntype Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\\n\\n/**\\n * Obtain the parameters of a constructor function type in a tuple\\n */\\ntype ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;\\n\\n/**\\n * Obtain the return type of a function type\\n */\\ntype ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\\n\\n/**\\n * Obtain the return type of a constructor function type\\n */\\ntype InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;\\n\\n/**\\n * Marker for contextual 'this' type\\n */\\ninterface ThisType<T> { }\\n\\n/**\\n * Represents a raw buffer of binary data, which is used to store data for the\\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\\n * but can be passed to a typed array or DataView Object to interpret the raw\\n * buffer as needed.\\n */\\ninterface ArrayBuffer {\\n    /**\\n     * Read-only. The length of the ArrayBuffer (in bytes).\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * Returns a section of an ArrayBuffer.\\n     */\\n    slice(begin: number, end?: number): ArrayBuffer;\\n}\\n\\n/**\\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\\n */\\ninterface ArrayBufferTypes {\\n    ArrayBuffer: ArrayBuffer;\\n}\\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\\n\\ninterface ArrayBufferConstructor {\\n    readonly prototype: ArrayBuffer;\\n    new(byteLength: number): ArrayBuffer;\\n    isView(arg: any): arg is ArrayBufferView;\\n}\\ndeclare var ArrayBuffer: ArrayBufferConstructor;\\n\\ninterface ArrayBufferView {\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    byteOffset: number;\\n}\\n\\ninterface DataView {\\n    readonly buffer: ArrayBuffer;\\n    readonly byteLength: number;\\n    readonly byteOffset: number;\\n    /**\\n     * Gets the Float32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getFloat32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Float64 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getFloat64(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Int8 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt8(byteOffset: number): number;\\n\\n    /**\\n     * Gets the Int16 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt16(byteOffset: number, littleEndian?: boolean): number;\\n    /**\\n     * Gets the Int32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getInt32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Uint8 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint8(byteOffset: number): number;\\n\\n    /**\\n     * Gets the Uint16 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint16(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Gets the Uint32 value at the specified byte offset from the start of the view. There is\\n     * no alignment constraint; multi-byte values may be fetched from any offset.\\n     * @param byteOffset The place in the buffer at which the value should be retrieved.\\n     */\\n    getUint32(byteOffset: number, littleEndian?: boolean): number;\\n\\n    /**\\n     * Stores an Float32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Float64 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Int8 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     */\\n    setInt8(byteOffset: number, value: number): void;\\n\\n    /**\\n     * Stores an Int16 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Int32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Uint8 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     */\\n    setUint8(byteOffset: number, value: number): void;\\n\\n    /**\\n     * Stores an Uint16 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\\n\\n    /**\\n     * Stores an Uint32 value at the specified byte offset from the start of the view.\\n     * @param byteOffset The place in the buffer at which the value should be set.\\n     * @param value The value to set.\\n     * @param littleEndian If false or undefined, a big-endian value should be written,\\n     * otherwise a little-endian value should be written.\\n     */\\n    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\\n}\\n\\ninterface DataViewConstructor {\\n    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\\n}\\ndeclare var DataView: DataViewConstructor;\\n\\n/**\\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\\n * number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int8Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int8Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int8Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int8Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\ninterface Int8ArrayConstructor {\\n    readonly prototype: Int8Array;\\n    new(length: number): Int8Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int8Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\\n\\n\\n}\\ndeclare var Int8Array: Int8ArrayConstructor;\\n\\n/**\\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint8Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint8Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint8Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint8Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint8ArrayConstructor {\\n    readonly prototype: Uint8Array;\\n    new(length: number): Uint8Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint8Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\\n\\n}\\ndeclare var Uint8Array: Uint8ArrayConstructor;\\n\\n/**\\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\\n * If the requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint8ClampedArray {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint8ClampedArray;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint8ClampedArray;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint8ClampedArray;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint8ClampedArrayConstructor {\\n    readonly prototype: Uint8ClampedArray;\\n    new(length: number): Uint8ClampedArray;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint8ClampedArray;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\\n}\\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\\n\\n/**\\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int16Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int16Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int16Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int16Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Int16ArrayConstructor {\\n    readonly prototype: Int16Array;\\n    new(length: number): Int16Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int16Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\\n\\n\\n}\\ndeclare var Int16Array: Int16ArrayConstructor;\\n\\n/**\\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint16Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint16Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint16Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint16Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint16ArrayConstructor {\\n    readonly prototype: Uint16Array;\\n    new(length: number): Uint16Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint16Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint16Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\\n\\n\\n}\\ndeclare var Uint16Array: Uint16ArrayConstructor;\\n/**\\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Int32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Int32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Int32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Int32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Int32ArrayConstructor {\\n    readonly prototype: Int32Array;\\n    new(length: number): Int32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Int32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\\n\\n}\\ndeclare var Int32Array: Int32ArrayConstructor;\\n\\n/**\\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\\n * requested number of bytes could not be allocated an exception is raised.\\n */\\ninterface Uint32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Uint32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Uint32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Uint32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Uint32ArrayConstructor {\\n    readonly prototype: Uint32Array;\\n    new(length: number): Uint32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Uint32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\\n\\n}\\ndeclare var Uint32Array: Uint32ArrayConstructor;\\n\\n/**\\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\\n * of bytes could not be allocated an exception is raised.\\n */\\ninterface Float32Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Float32Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Float32Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Float32Array;\\n\\n    /**\\n     * Converts a number to a string by using the current locale.\\n     */\\n    toLocaleString(): string;\\n\\n    /**\\n     * Returns a string representation of an array.\\n     */\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Float32ArrayConstructor {\\n    readonly prototype: Float32Array;\\n    new(length: number): Float32Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float32Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Float32Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\\n\\n\\n}\\ndeclare var Float32Array: Float32ArrayConstructor;\\n\\n/**\\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\\n * number of bytes could not be allocated an exception is raised.\\n */\\ninterface Float64Array {\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * The ArrayBuffer instance referenced by the array.\\n     */\\n    readonly buffer: ArrayBufferLike;\\n\\n    /**\\n     * The length in bytes of the array.\\n     */\\n    readonly byteLength: number;\\n\\n    /**\\n     * The offset in bytes of the array.\\n     */\\n    readonly byteOffset: number;\\n\\n    /**\\n     * Returns the this object after copying a section of the array identified by start and end\\n     * to the same array starting at position target\\n     * @param target If target is negative, it is treated as length+target where length is the\\n     * length of the array.\\n     * @param start If start is negative, it is treated as length+start. If end is negative, it\\n     * is treated as length+end.\\n     * @param end If not specified, length of the this object is used as its default value.\\n     */\\n    copyWithin(target: number, start: number, end?: number): this;\\n\\n    /**\\n     * Determines whether all the members of an array satisfy the specified test.\\n     * @param callbackfn A function that accepts up to three arguments. The every method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value false, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    every(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Returns the this object after filling the section identified by start and end with value\\n     * @param value value to fill array section with\\n     * @param start index to start filling the array at. If start is negative, it is treated as\\n     * length+start where length is the length of the array.\\n     * @param end index to stop filling the array at. If end is negative, it is treated as\\n     * length+end.\\n     */\\n    fill(value: number, start?: number, end?: number): this;\\n\\n    /**\\n     * Returns the elements of an array that meet the condition specified in a callback function.\\n     * @param callbackfn A function that accepts up to three arguments. The filter method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\\n\\n    /**\\n     * Returns the value of the first element in the array where predicate is true, and undefined\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found, find\\n     * immediately returns that element value. Otherwise, find returns undefined.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\\n\\n    /**\\n     * Returns the index of the first element in the array where predicate is true, and -1\\n     * otherwise.\\n     * @param predicate find calls predicate once for each element of the array, in ascending\\n     * order, until it finds one where predicate returns true. If such an element is found,\\n     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\\n     * @param thisArg If provided, it will be used as the this value for each invocation of\\n     * predicate. If it is not provided, undefined is used instead.\\n     */\\n    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\\n\\n    /**\\n     * Performs the specified action for each element in an array.\\n     * @param callbackfn  A function that accepts up to three arguments. forEach calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg  An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\\n\\n    /**\\n     * Returns the index of the first occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     *  search starts at index 0.\\n     */\\n    indexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * Adds all the elements of an array separated by the specified separator string.\\n     * @param separator A string used to separate one element of an array from the next in the\\n     * resulting String. If omitted, the array elements are separated with a comma.\\n     */\\n    join(separator?: string): string;\\n\\n    /**\\n     * Returns the index of the last occurrence of a value in an array.\\n     * @param searchElement The value to locate in the array.\\n     * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\\n     * search starts at index 0.\\n     */\\n    lastIndexOf(searchElement: number, fromIndex?: number): number;\\n\\n    /**\\n     * The length of the array.\\n     */\\n    readonly length: number;\\n\\n    /**\\n     * Calls a defined callback function on each element of an array, and returns an array that\\n     * contains the results.\\n     * @param callbackfn A function that accepts up to three arguments. The map method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\\n    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array. The return value of\\n     * the callback function is the accumulated result, and is provided as an argument in the next\\n     * call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\\n     * callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an\\n     * argument instead of an array value.\\n     */\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\\n    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\\n\\n    /**\\n     * Calls the specified callback function for all the elements in an array, in descending order.\\n     * The return value of the callback function is the accumulated result, and is provided as an\\n     * argument in the next call to the callback function.\\n     * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\\n     * the callbackfn function one time for each element in the array.\\n     * @param initialValue If initialValue is specified, it is used as the initial value to start\\n     * the accumulation. The first call to the callbackfn function provides this value as an argument\\n     * instead of an array value.\\n     */\\n    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\\n\\n    /**\\n     * Reverses the elements in an Array.\\n     */\\n    reverse(): Float64Array;\\n\\n    /**\\n     * Sets a value or an array of values.\\n     * @param array A typed or untyped array of values to set.\\n     * @param offset The index in the current array at which the values are to be written.\\n     */\\n    set(array: ArrayLike<number>, offset?: number): void;\\n\\n    /**\\n     * Returns a section of an array.\\n     * @param start The beginning of the specified portion of the array.\\n     * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\\n     */\\n    slice(start?: number, end?: number): Float64Array;\\n\\n    /**\\n     * Determines whether the specified callback function returns true for any element of an array.\\n     * @param callbackfn A function that accepts up to three arguments. The some method calls\\n     * the callbackfn function for each element in the array until the callbackfn returns a value\\n     * which is coercible to the Boolean value true, or until the end of the array.\\n     * @param thisArg An object to which the this keyword can refer in the callbackfn function.\\n     * If thisArg is omitted, undefined is used as the this value.\\n     */\\n    some(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\\n\\n    /**\\n     * Sorts an array.\\n     * @param compareFn Function used to determine the order of the elements. It is expected to return\\n     * a negative value if first argument is less than second argument, zero if they're equal and a positive\\n     * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\\n     * ```ts\\n     * [11,2,22,1].sort((a, b) => a - b)\\n     * ```\\n     */\\n    sort(compareFn?: (a: number, b: number) => number): this;\\n\\n    /**\\n     * at begin, inclusive, up to end, exclusive.\\n     * @param begin The index of the beginning of the array.\\n     * @param end The index of the end of the array.\\n     */\\n    subarray(begin?: number, end?: number): Float64Array;\\n\\n    toString(): string;\\n\\n    [index: number]: number;\\n}\\n\\ninterface Float64ArrayConstructor {\\n    readonly prototype: Float64Array;\\n    new(length: number): Float64Array;\\n    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float64Array;\\n    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;\\n\\n    /**\\n     * The size in bytes of each element in the array.\\n     */\\n    readonly BYTES_PER_ELEMENT: number;\\n\\n    /**\\n     * Returns a new array from a set of elements.\\n     * @param items A set of elements to include in the new array object.\\n     */\\n    of(...items: number[]): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     */\\n    from(arrayLike: ArrayLike<number>): Float64Array;\\n\\n    /**\\n     * Creates an array from an array-like or iterable object.\\n     * @param arrayLike An array-like or iterable object to convert to an array.\\n     * @param mapfn A mapping function to call on every element of the array.\\n     * @param thisArg Value of 'this' used to invoke the mapfn.\\n     */\\n    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\\n\\n}\\ndeclare var Float64Array: Float64ArrayConstructor;\\n\\n/////////////////////////////\\n/// ECMAScript Internationalization API\\n/////////////////////////////\\n\\ndeclare namespace Intl {\\n    interface CollatorOptions {\\n        usage?: string;\\n        localeMatcher?: string;\\n        numeric?: boolean;\\n        caseFirst?: string;\\n        sensitivity?: string;\\n        ignorePunctuation?: boolean;\\n    }\\n\\n    interface ResolvedCollatorOptions {\\n        locale: string;\\n        usage: string;\\n        sensitivity: string;\\n        ignorePunctuation: boolean;\\n        collation: string;\\n        caseFirst: string;\\n        numeric: boolean;\\n    }\\n\\n    interface Collator {\\n        compare(x: string, y: string): number;\\n        resolvedOptions(): ResolvedCollatorOptions;\\n    }\\n    var Collator: {\\n        new(locales?: string | string[], options?: CollatorOptions): Collator;\\n        (locales?: string | string[], options?: CollatorOptions): Collator;\\n        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\\n    };\\n\\n    interface NumberFormatOptions {\\n        localeMatcher?: string;\\n        style?: string;\\n        currency?: string;\\n        currencyDisplay?: string;\\n        useGrouping?: boolean;\\n        minimumIntegerDigits?: number;\\n        minimumFractionDigits?: number;\\n        maximumFractionDigits?: number;\\n        minimumSignificantDigits?: number;\\n        maximumSignificantDigits?: number;\\n    }\\n\\n    interface ResolvedNumberFormatOptions {\\n        locale: string;\\n        numberingSystem: string;\\n        style: string;\\n        currency?: string;\\n        currencyDisplay?: string;\\n        minimumIntegerDigits: number;\\n        minimumFractionDigits: number;\\n        maximumFractionDigits: number;\\n        minimumSignificantDigits?: number;\\n        maximumSignificantDigits?: number;\\n        useGrouping: boolean;\\n    }\\n\\n    interface NumberFormat {\\n        format(value: number): string;\\n        resolvedOptions(): ResolvedNumberFormatOptions;\\n    }\\n    var NumberFormat: {\\n        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\\n        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\\n        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\\n    };\\n\\n    interface DateTimeFormatOptions {\\n        localeMatcher?: string;\\n        weekday?: string;\\n        era?: string;\\n        year?: string;\\n        month?: string;\\n        day?: string;\\n        hour?: string;\\n        minute?: string;\\n        second?: string;\\n        timeZoneName?: string;\\n        formatMatcher?: string;\\n        hour12?: boolean;\\n        timeZone?: string;\\n    }\\n\\n    interface ResolvedDateTimeFormatOptions {\\n        locale: string;\\n        calendar: string;\\n        numberingSystem: string;\\n        timeZone: string;\\n        hour12?: boolean;\\n        weekday?: string;\\n        era?: string;\\n        year?: string;\\n        month?: string;\\n        day?: string;\\n        hour?: string;\\n        minute?: string;\\n        second?: string;\\n        timeZoneName?: string;\\n    }\\n\\n    interface DateTimeFormat {\\n        format(date?: Date | number): string;\\n        resolvedOptions(): ResolvedDateTimeFormatOptions;\\n    }\\n    var DateTimeFormat: {\\n        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\\n        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\\n        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\\n    };\\n}\\n\\ninterface String {\\n    /**\\n     * Determines whether two strings are equivalent in the current or specified locale.\\n     * @param that String to compare to target string\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\\n     * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\\n     */\\n    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\\n}\\n\\ninterface Number {\\n    /**\\n     * Converts a number to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\\n}\\n\\ninterface Date {\\n    /**\\n     * Converts a date and time to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n    /**\\n     * Converts a date to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n\\n    /**\\n     * Converts a time to a string by using the current or specified locale.\\n     * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\\n     * @param options An object that contains one or more properties that specify comparison options.\\n     */\\n    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\\n}\\n\",n.lib_es2015_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es5_dts+n.lib_es2015_core_dts+n.lib_es2015_collection_dts+n.lib_es2015_generator_dts+n.lib_es2015_promise_dts+n.lib_es2015_iterable_dts+n.lib_es2015_proxy_dts+n.lib_es2015_reflect_dts+n.lib_es2015_symbol_dts+n.lib_es2015_symbol_wellknown_dts,n.lib_es6_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es2015_dts+n.lib_dom_dts+n.lib_dom_iterable_dts+n.lib_webworker_importscripts_dts+n.lib_scripthost_dts,n.lib_dts='/*! *****************************************************************************\\nCopyright (c) Microsoft Corporation. All rights reserved. \\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\\nthis file except in compliance with the License. You may obtain a copy of the\\nLicense at http://www.apache.org/licenses/LICENSE-2.0  \\n \\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \\nMERCHANTABLITY OR NON-INFRINGEMENT. \\n \\nSee the Apache Version 2.0 License for specific language governing permissions\\nand limitations under the License.\\n***************************************************************************** */\\n\\n\\n\\n/// <reference no-default-lib=\"true\"/>\\n\\n'+n.lib_es5_dts+n.lib_dom_dts+n.lib_webworker_importscripts_dts+n.lib_scripthost_dts})),define(\"vs/language/typescript/tsWorker\",[\"require\",\"exports\",\"./lib/typescriptServices\",\"./lib/lib\"],(function(e,n,t,r){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0});var a={NAME:\"defaultLib:lib.d.ts\",CONTENTS:r.lib_dts},i={NAME:\"defaultLib:lib.es6.d.ts\",CONTENTS:r.lib_es6_dts},o=function(){function e(e,n){this._extraLibs=Object.create(null),this._languageService=t.createLanguageService(this),this._ctx=e,this._compilerOptions=n.compilerOptions,this._extraLibs=n.extraLibs}return e.prototype.getCompilationSettings=function(){return this._compilerOptions},e.prototype.getScriptFileNames=function(){return this._ctx.getMirrorModels().map((function(e){return e.uri.toString()})).concat(Object.keys(this._extraLibs))},e.prototype._getModel=function(e){for(var n=this._ctx.getMirrorModels(),t=0;t<n.length;t++)if(n[t].uri.toString()===e)return n[t];return null},e.prototype.getScriptVersion=function(e){var n=this._getModel(e);return n?n.version.toString():this.isDefaultLibFileName(e)?\"1\":e in this._extraLibs?String(this._extraLibs[e].version):\"\"},e.prototype.getScriptSnapshot=function(e){var n,t=this._getModel(e);if(t)n=t.getValue();else if(e in this._extraLibs)n=this._extraLibs[e].content;else if(e===a.NAME)n=a.CONTENTS;else{if(e!==i.NAME)return;n=i.CONTENTS}return{getText:function(e,t){return n.substring(e,t)},getLength:function(){return n.length},getChangeRange:function(){}}},e.prototype.getScriptKind=function(e){switch(e.substr(e.lastIndexOf(\".\")+1)){case\"ts\":return t.ScriptKind.TS;case\"tsx\":return t.ScriptKind.TSX;case\"js\":return t.ScriptKind.JS;case\"jsx\":return t.ScriptKind.JSX;default:return this.getCompilationSettings().allowJs?t.ScriptKind.JS:t.ScriptKind.TS}},e.prototype.getCurrentDirectory=function(){return\"\"},e.prototype.getDefaultLibFileName=function(e){return(e.target||t.ScriptTarget.ES5)<=t.ScriptTarget.ES5?a.NAME:i.NAME},e.prototype.isDefaultLibFileName=function(e){return e===this.getDefaultLibFileName(this._compilerOptions)},e.clearFiles=function(e){return e.forEach((function(e){e.file=void 0;var n=e.relatedInformation;n&&n.forEach((function(e){return e.file=void 0}))})),e},e.prototype.getSyntacticDiagnostics=function(n){var t=this._languageService.getSyntacticDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getSemanticDiagnostics=function(n){var t=this._languageService.getSemanticDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getSuggestionDiagnostics=function(n){var t=this._languageService.getSuggestionDiagnostics(n);return Promise.resolve(e.clearFiles(t))},e.prototype.getCompilerOptionsDiagnostics=function(n){var t=this._languageService.getCompilerOptionsDiagnostics();return Promise.resolve(e.clearFiles(t))},e.prototype.getCompletionsAtPosition=function(e,n){return Promise.resolve(this._languageService.getCompletionsAtPosition(e,n,void 0))},e.prototype.getCompletionEntryDetails=function(e,n,t){return Promise.resolve(this._languageService.getCompletionEntryDetails(e,n,t,void 0,void 0,void 0))},e.prototype.getSignatureHelpItems=function(e,n){return Promise.resolve(this._languageService.getSignatureHelpItems(e,n,void 0))},e.prototype.getQuickInfoAtPosition=function(e,n){return Promise.resolve(this._languageService.getQuickInfoAtPosition(e,n))},e.prototype.getOccurrencesAtPosition=function(e,n){return Promise.resolve(this._languageService.getOccurrencesAtPosition(e,n))},e.prototype.getDefinitionAtPosition=function(e,n){return Promise.resolve(this._languageService.getDefinitionAtPosition(e,n))},e.prototype.getReferencesAtPosition=function(e,n){return Promise.resolve(this._languageService.getReferencesAtPosition(e,n))},e.prototype.getNavigationBarItems=function(e){return Promise.resolve(this._languageService.getNavigationBarItems(e))},e.prototype.getFormattingEditsForDocument=function(e,n){return Promise.resolve(this._languageService.getFormattingEditsForDocument(e,n))},e.prototype.getFormattingEditsForRange=function(e,n,t,r){return Promise.resolve(this._languageService.getFormattingEditsForRange(e,n,t,r))},e.prototype.getFormattingEditsAfterKeystroke=function(e,n,t,r){return Promise.resolve(this._languageService.getFormattingEditsAfterKeystroke(e,n,t,r))},e.prototype.findRenameLocations=function(e,n,t,r,a){return Promise.resolve(this._languageService.findRenameLocations(e,n,t,r,a))},e.prototype.getRenameInfo=function(e,n,t){return Promise.resolve(this._languageService.getRenameInfo(e,n,t))},e.prototype.getEmitOutput=function(e){return Promise.resolve(this._languageService.getEmitOutput(e))},e.prototype.getCodeFixesAtPosition=function(e,n,t,r,a){return Promise.resolve(this._languageService.getCodeFixesAtPosition(e,n,t,r,a,{}))},e.prototype.updateExtraLibs=function(e){this._extraLibs=e},e}();n.TypeScriptWorker=o,n.create=function(e,n){return new o(e,n)}}));"
  },
  {
    "path": "app/userland/app-stdlib/js/vs/loader.js",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.20.0(6363745c0a33c27b149b89342a7b96d354fb554c)\n * Released under the MIT license\n * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt\n *-----------------------------------------------------------*/\n\"use strict\";var define,AMDLoader,_amdLoaderGlobal=this,_commonjsGlobal=\"object\"==typeof global?global:{};!function(e){e.global=_amdLoaderGlobal;var t=function(){function t(){this._detected=!1,this._isWindows=!1,this._isNode=!1,this._isElectronRenderer=!1,this._isWebWorker=!1}return Object.defineProperty(t.prototype,\"isWindows\",{get:function(){return this._detect(),this._isWindows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isNode\",{get:function(){return this._detect(),this._isNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isElectronRenderer\",{get:function(){return this._detect(),this._isElectronRenderer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"isWebWorker\",{get:function(){return this._detect(),this._isWebWorker},enumerable:!0,configurable:!0}),t.prototype._detect=function(){this._detected||(this._detected=!0,this._isWindows=t._isWindows(),this._isNode=\"undefined\"!=typeof module&&!!module.exports,\nthis._isElectronRenderer=\"undefined\"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.electron&&\"renderer\"===process.type,this._isWebWorker=\"function\"==typeof e.global.importScripts)},t._isWindows=function(){return!!(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf(\"Windows\")>=0)||\"undefined\"!=typeof process&&\"win32\"===process.platform},t}();e.Environment=t}(AMDLoader||(AMDLoader={})),function(e){var t=function(e,t,r){this.type=e,this.detail=t,this.timestamp=r};e.LoaderEvent=t;var r=function(){function r(e){this._events=[new t(1,\"\",e)]}return r.prototype.record=function(r,n){this._events.push(new t(r,n,e.Utilities.getHighPerformanceTimestamp()))},r.prototype.getEvents=function(){return this._events},r}();e.LoaderEventRecorder=r;var n=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=n}(AMDLoader||(AMDLoader={})),function(e){var t=function(){\nfunction t(){}return t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,\"#\"),e){if(/^file:\\/\\/\\//.test(t))return t.substr(8);if(/^file:\\/\\//.test(t))return t.substr(5)}else if(/^file:\\/\\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\\#]*\\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\\/\\/)|(https:\\/\\/)|(file:\\/\\/)|(\\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var r=void 0;for(r in e)e.hasOwnProperty(r)&&t(r,e[r])}},t.isEmpty=function(e){var r=!0;return t.forEachProperty(e,(function(){r=!1})),r},t.recursiveClone=function(e){if(!e||\"object\"!=typeof e)return e;var r=Array.isArray(e)?[]:{};return t.forEachProperty(e,(function(e,n){r[e]=n&&\"object\"==typeof n?t.recursiveClone(n):n})),r},t.generateAnonymousModule=function(){return\"===anonymous\"+t.NEXT_ANONYMOUS_ID+++\"===\"},\nt.isAnonymousModule=function(e){return t.startsWith(e,\"===anonymous\")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&\"function\"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(AMDLoader||(AMDLoader={})),function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||\"Unknown Error\");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var r=function(){function r(){}return r.validateConfigurationOptions=function(r){if(\"string\"!=typeof(r=r||{}).baseUrl&&(r.baseUrl=\"\"),\"boolean\"!=typeof r.isBuild&&(r.isBuild=!1),\"object\"!=typeof r.paths&&(r.paths={}),\"object\"!=typeof r.config&&(r.config={}),void 0===r.catchError&&(r.catchError=!1),void 0===r.recordStats&&(r.recordStats=!1),\"string\"!=typeof r.urlArgs&&(r.urlArgs=\"\"),\n\"function\"!=typeof r.onError&&(r.onError=function(e){return\"loading\"===e.phase?(console.error('Loading \"'+e.moduleId+'\" failed'),console.error(e),console.error(\"Here are the modules that depend on it:\"),void console.error(e.neededBy)):\"factory\"===e.phase?(console.error('The factory method of \"'+e.moduleId+'\" has thrown an exception'),void console.error(e)):void 0}),Array.isArray(r.ignoreDuplicateModules)||(r.ignoreDuplicateModules=[]),r.baseUrl.length>0&&(e.Utilities.endsWith(r.baseUrl,\"/\")||(r.baseUrl+=\"/\")),\"string\"!=typeof r.cspNonce&&(r.cspNonce=\"\"),Array.isArray(r.nodeModules)||(r.nodeModules=[]),r.nodeCachedData&&\"object\"==typeof r.nodeCachedData&&(\"string\"!=typeof r.nodeCachedData.seed&&(r.nodeCachedData.seed=\"seed\"),(\"number\"!=typeof r.nodeCachedData.writeDelay||r.nodeCachedData.writeDelay<0)&&(r.nodeCachedData.writeDelay=7e3),!r.nodeCachedData.path||\"string\"!=typeof r.nodeCachedData.path)){var n=t(new Error(\"INVALID cached data configuration, 'path' MUST be set\"));n.phase=\"configuration\",\nr.onError(n),r.nodeCachedData=void 0}return r},r.mergeConfigurationOptions=function(t,n){void 0===t&&(t=null),void 0===n&&(n=null);var o=e.Utilities.recursiveClone(n||{});return e.Utilities.forEachProperty(t,(function(t,r){\"ignoreDuplicateModules\"===t&&void 0!==o.ignoreDuplicateModules?o.ignoreDuplicateModules=o.ignoreDuplicateModules.concat(r):\"paths\"===t&&void 0!==o.paths?e.Utilities.forEachProperty(r,(function(e,t){return o.paths[e]=t})):\"config\"===t&&void 0!==o.config?e.Utilities.forEachProperty(r,(function(e,t){return o.config[e]=t})):o[t]=e.Utilities.recursiveClone(r)})),r.validateConfigurationOptions(o)},r}();e.ConfigurationOptionsUtil=r;var n=function(){function t(e,t){if(this._env=e,this.options=r.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),\"\"===this.options.baseUrl){if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){\nvar n=this.options.nodeRequire.main.filename,o=Math.max(n.lastIndexOf(\"/\"),n.lastIndexOf(\"\\\\\"));this.options.baseUrl=n.substring(0,o+1)}if(this.options.nodeMain&&this._env.isNode){n=this.options.nodeMain,o=Math.max(n.lastIndexOf(\"/\"),n.lastIndexOf(\"\\\\\"));this.options.baseUrl=n.substring(0,o+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e<this.options.ignoreDuplicateModules.length;e++)this.ignoreDuplicateModulesMap[this.options.ignoreDuplicateModules[e]]=!0},t.prototype._createNodeModulesMap=function(){this.nodeModulesMap=Object.create(null);for(var e=0,t=this.options.nodeModules;e<t.length;e++){var r=t[e];this.nodeModulesMap[r]=!0}},t.prototype._createSortedPathsRules=function(){var t=this;this.sortedPathsRules=[],e.Utilities.forEachProperty(this.options.paths,(function(e,r){Array.isArray(r)?t.sortedPathsRules.push({from:e,to:r}):t.sortedPathsRules.push({from:e,to:[r]})})),this.sortedPathsRules.sort((function(e,t){\nreturn t.from.length-e.from.length}))},t.prototype.cloneAndMerge=function(e){return new t(this._env,r.mergeConfigurationOptions(e,this.options))},t.prototype.getOptionsLiteral=function(){return this.options},t.prototype._applyPaths=function(t){for(var r,n=0,o=this.sortedPathsRules.length;n<o;n++)if(r=this.sortedPathsRules[n],e.Utilities.startsWith(t,r.from)){for(var i=[],s=0,d=r.to.length;s<d;s++)i.push(r.to[s]+t.substr(r.from.length));return i}return[t]},t.prototype._addUrlArgsToUrl=function(t){return e.Utilities.containsQueryString(t)?t+\"&\"+this.options.urlArgs:t+\"?\"+this.options.urlArgs},t.prototype._addUrlArgsIfNecessaryToUrl=function(e){return this.options.urlArgs?this._addUrlArgsToUrl(e):e},t.prototype._addUrlArgsIfNecessaryToUrls=function(e){if(this.options.urlArgs)for(var t=0,r=e.length;t<r;t++)e[t]=this._addUrlArgsToUrl(e[t]);return e},t.prototype.moduleIdToPaths=function(t){if(!0===this.nodeModulesMap[t])return this.isBuild()?[\"empty:\"]:[\"node|\"+t];var r,n=t\n;if(e.Utilities.endsWith(n,\".js\")||e.Utilities.isAbsolutePath(n))e.Utilities.endsWith(n,\".js\")||e.Utilities.containsQueryString(n)||(n+=\".js\"),r=[n];else for(var o=0,i=(r=this._applyPaths(n)).length;o<i;o++)this.isBuild()&&\"empty:\"===r[o]||(e.Utilities.isAbsolutePath(r[o])||(r[o]=this.options.baseUrl+r[o]),e.Utilities.endsWith(r[o],\".js\")||e.Utilities.containsQueryString(r[o])||(r[o]=r[o]+\".js\"));return this._addUrlArgsIfNecessaryToUrls(r)},t.prototype.requireToUrl=function(t){var r=t;return e.Utilities.isAbsolutePath(r)||(r=this._applyPaths(r)[0],e.Utilities.isAbsolutePath(r)||(r=this.options.baseUrl+r)),this._addUrlArgsIfNecessaryToUrl(r)},t.prototype.isBuild=function(){return this.options.isBuild},t.prototype.isDuplicateMessageIgnoredFor=function(e){return this.ignoreDuplicateModulesMap.hasOwnProperty(e)},t.prototype.getConfigForModule=function(e){if(this.options.config)return this.options.config[e]},t.prototype.shouldCatchError=function(){return this.options.catchError},\nt.prototype.shouldRecordStats=function(){return this.options.recordStats},t.prototype.onError=function(e){this.options.onError(e)},t}();e.Configuration=n}(AMDLoader||(AMDLoader={})),function(e){var t=function(){function e(e){this._env=e,this._scriptLoader=null,this._callbackMap={}}return e.prototype.load=function(e,t,i,s){var d=this;this._scriptLoader||(this._scriptLoader=this._env.isWebWorker?new n:this._env.isNode?new o(this._env):new r);var a={callback:i,errorback:s};this._callbackMap.hasOwnProperty(t)?this._callbackMap[t].push(a):(this._callbackMap[t]=[a],this._scriptLoader.load(e,t,(function(){return d.triggerCallback(t)}),(function(e){return d.triggerErrorback(t,e)})))},e.prototype.triggerCallback=function(e){var t=this._callbackMap[e];delete this._callbackMap[e];for(var r=0;r<t.length;r++)t[r].callback()},e.prototype.triggerErrorback=function(e,t){var r=this._callbackMap[e];delete this._callbackMap[e];for(var n=0;n<r.length;n++)r[n].errorback(t)},e}(),r=function(){function e(){}\nreturn e.prototype.attachListeners=function(e,t,r){var n=function(){e.removeEventListener(\"load\",o),e.removeEventListener(\"error\",i)},o=function(e){n(),t()},i=function(e){n(),r(e)};e.addEventListener(\"load\",o),e.addEventListener(\"error\",i)},e.prototype.load=function(e,t,r,n){var o=document.createElement(\"script\");o.setAttribute(\"async\",\"async\"),o.setAttribute(\"type\",\"text/javascript\"),this.attachListeners(o,r,n),o.setAttribute(\"src\",t);var i=e.getConfig().getOptionsLiteral().cspNonce;i&&o.setAttribute(\"nonce\",i),document.getElementsByTagName(\"head\")[0].appendChild(o)},e}(),n=function(){function e(){}return e.prototype.load=function(e,t,r,n){try{importScripts(t),r()}catch(e){n(e)}},e}(),o=function(){function t(e){this._env=e,this._didInitialize=!1,this._didPatchNodeRequire=!1}return t.prototype._init=function(e){this._didInitialize||(this._didInitialize=!0,this._fs=e(\"fs\"),this._vm=e(\"vm\"),this._path=e(\"path\"),this._crypto=e(\"crypto\"))},t.prototype._initNodeRequire=function(e,t){\nvar r=t.getConfig().getOptionsLiteral().nodeCachedData;if(r&&!this._didPatchNodeRequire){this._didPatchNodeRequire=!0;var n=this,o=e(\"module\");o.prototype._compile=function(e,i){var s,d=o.wrap(e.replace(/^#!.*/,\"\")),a=t.getRecorder(),u=n._getCachedDataPath(r,i),l={filename:i};try{var c=n._fs.readFileSync(u);s=c.slice(0,16),l.cachedData=c.slice(16),a.record(60,u)}catch(e){a.record(61,u)}var h=new n._vm.Script(d,l),f=h.runInThisContext(l),p=n._path.dirname(i),_=function(e){var t=e.constructor,r=function(t){try{return e.require(t)}finally{}};return r.resolve=function(r){return t._resolveFilename(r,e)},r.main=process.mainModule,r.extensions=t._extensions,r.cache=t._cache,r}(this),g=[this.exports,_,this,i,p,process,_commonjsGlobal,Buffer],v=f.apply(this.exports,g);return n._handleCachedData(h,d,u,!l.cachedData,t),n._verifyCachedData(h,d,u,s,t),v}}},t.prototype.load=function(r,n,o,i){var s=this,d=r.getConfig().getOptionsLiteral(),a=d.nodeRequire||e.global.nodeRequire,u=d.nodeInstrumenter||function(e){return e}\n;this._init(a),this._initNodeRequire(a,r);var l=r.getRecorder();if(/^node\\|/.test(n)){var c=n.split(\"|\"),h=null;try{h=a(c[1])}catch(e){return void i(e)}r.enqueueDefineAnonymousModule([],(function(){return h})),o()}else{n=e.Utilities.fileUriToFilePath(this._env.isWindows,n);var f=this._path.normalize(n),p=this._getElectronRendererScriptPathOrUri(f),_=Boolean(d.nodeCachedData),g=_?this._getCachedDataPath(d.nodeCachedData,n):void 0;this._readSourceAndCachedData(f,g,l,(function(e,n,d,a){if(e)i(e);else{var l;l=n.charCodeAt(0)===t._BOM?t._PREFIX+n.substring(1)+t._SUFFIX:t._PREFIX+n+t._SUFFIX,l=u(l,f);var c={filename:p,cachedData:d},h=s._createAndEvalScript(r,l,c,o,i);s._handleCachedData(h,l,g,_&&!d,r),s._verifyCachedData(h,l,g,a,r)}}))}},t.prototype._createAndEvalScript=function(t,r,n,o,i){var s=t.getRecorder();s.record(31,n.filename);var d=new this._vm.Script(r,n),a=d.runInThisContext(n),u=t.getGlobalAMDDefineFunc(),l=!1,c=function(){return l=!0,u.apply(null,arguments)};return c.amd=u.amd,\na.call(e.global,t.getGlobalAMDRequireFunc(),c,n.filename,this._path.dirname(n.filename)),s.record(32,n.filename),l?o():i(new Error(\"Didn't receive define call in \"+n.filename+\"!\")),d},t.prototype._getElectronRendererScriptPathOrUri=function(e){if(!this._env.isElectronRenderer)return e;var t=e.match(/^([a-z])\\:(.*)/i);return t?\"file:///\"+(t[1].toUpperCase()+\":\"+t[2]).replace(/\\\\/g,\"/\"):\"file://\"+e},t.prototype._getCachedDataPath=function(e,t){var r=this._crypto.createHash(\"md5\").update(t,\"utf8\").update(e.seed,\"utf8\").digest(\"hex\"),n=this._path.basename(t).replace(/\\.js$/,\"\");return this._path.join(e.path,n+\"-\"+r+\".code\")},t.prototype._handleCachedData=function(e,t,r,n,o){var i=this;e.cachedDataRejected?this._fs.unlink(r,(function(n){o.getRecorder().record(62,r),i._createAndWriteCachedData(e,t,r,o),n&&o.getConfig().onError(n)})):n&&this._createAndWriteCachedData(e,t,r,o)},t.prototype._createAndWriteCachedData=function(e,t,r,n){\nvar o=this,i=Math.ceil(n.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,d=0,a=void 0,u=function(){setTimeout((function(){a||(a=o._crypto.createHash(\"md5\").update(t,\"utf8\").digest());var i=e.createCachedData();0===i.length||i.length===s||d>=5||(s=i.length,o._fs.writeFile(r,Buffer.concat([a,i]),(function(e){e&&n.getConfig().onError(e),n.getRecorder().record(63,r),u()})))}),i*Math.pow(4,d++))};u()},t.prototype._readSourceAndCachedData=function(e,t,r,n){if(t){var o=void 0,i=void 0,s=void 0,d=2,a=function(e){e?n(e):0==--d&&n(void 0,o,i,s)};this._fs.readFile(e,{encoding:\"utf8\"},(function(e,t){o=t,a(e)})),this._fs.readFile(t,(function(e,n){!e&&n&&n.length>0?(s=n.slice(0,16),i=n.slice(16),r.record(60,t)):r.record(61,t),a()}))}else this._fs.readFile(e,{encoding:\"utf8\"},n)},t.prototype._verifyCachedData=function(e,t,r,n,o){var i=this;n&&(e.cachedDataRejected||setTimeout((function(){var e=i._crypto.createHash(\"md5\").update(t,\"utf8\").digest()\n;n.equals(e)||(o.getConfig().onError(new Error(\"FAILED TO VERIFY CACHED DATA, deleting stale '\"+r+\"' now, but a RESTART IS REQUIRED\")),i._fs.unlink(r,(function(e){return o.getConfig().onError(e)})))}),Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX=\"(function (require, define, __filename, __dirname) { \",t._SUFFIX=\"\\n});\",t}();e.createScriptLoader=function(e){return new t(e)}}(AMDLoader||(AMDLoader={})),function(e){var t=function(){function t(e){var t=e.lastIndexOf(\"/\");this.fromModulePath=-1!==t?e.substr(0,t+1):\"\"}return t._normalizeModuleId=function(e){var t,r=e;for(t=/\\/\\.\\//;t.test(r);)r=r.replace(t,\"/\");for(r=r.replace(/^\\.\\//g,\"\"),t=/\\/(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//;t.test(r);)r=r.replace(t,\"/\");return r=r.replace(/^(([^\\/])|([^\\/][^\\/\\.])|([^\\/\\.][^\\/])|([^\\/][^\\/][^\\/]+))\\/\\.\\.\\//,\"\")},t.prototype.resolveModule=function(r){var n=r\n;return e.Utilities.isAbsolutePath(n)||(e.Utilities.startsWith(n,\"./\")||e.Utilities.startsWith(n,\"../\"))&&(n=t._normalizeModuleId(this.fromModulePath+n)),n},t.ROOT=new t(\"\"),t}();e.ModuleIdResolver=t;var r=function(){function t(e,t,r,n,o,i){this.id=e,this.strId=t,this.dependencies=r,this._callback=n,this._errorback=o,this.moduleIdResolver=i,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,r){try{return{returnedValue:t.apply(e.global,r),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,r,n,o){return t.isBuild()&&!e.Utilities.isAnonymousModule(r)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(n,o):{returnedValue:n.apply(e.global,o),producedError:null}},t.prototype.complete=function(r,n,o){this._isComplete=!0;var i=null;if(this._callback)if(\"function\"==typeof this._callback){r.record(21,this.strId)\n;var s=t._invokeFactory(n,this.strId,this._callback,o);i=s.producedError,r.record(22,this.strId),i||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(i){var d=e.ensureError(i);d.phase=\"factory\",d.moduleId=this.strId,this.error=d,n.onError(d)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e,!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=r;var n=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId(\"exports\"),this.getModuleId(\"module\"),this.getModuleId(\"require\")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,\nthis._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),o=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=o;var i=function(e,t,r){this.id=e,this.pluginId=t,this.pluginParam=r};e.PluginDependency=i;var s=function(){function s(t,r,o,i,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=r,this._loaderAvailableTimestamp=s,this._defineFunc=o,this._requireFunc=i,this._moduleIdProvider=new n,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},\ns.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var r=function(e){return e.replace(/\\\\/g,\"/\")},n=r(e),o=t.split(/\\n/),i=0;i<o.length;i++){var s=o[i].match(/(.*):(\\d+):(\\d+)\\)?$/);if(s){var d=s[1],a=s[2],u=s[3],l=Math.max(d.lastIndexOf(\" \")+1,d.lastIndexOf(\"(\")+1);if((d=r(d=d.substr(l)))===n){var c={line:parseInt(a,10),col:parseInt(u,10)};return 1===c.line&&(c.col-=\"(function (require, define, __filename, __dirname) { \".length),c}}}throw new Error(\"Could not correlate define call site for needle \"+e)},s.prototype.getBuildInfo=function(){if(!this._config.isBuild())return null;for(var e=[],t=0,r=0,n=this._modules2.length;r<n;r++){var o=this._modules2[r];if(o){var i=this._buildInfoPath[o.id]||null,d=this._buildInfoDefineStack[o.id]||null,a=this._buildInfoDependencies[o.id];e[t++]={id:o.strId,path:i,defineLocation:i&&d?s._findRelevantLocationInStack(i,d):null,\ndependencies:a,shim:null,exports:o.exports}}}return e},s.prototype.getRecorder=function(){return this._recorder||(this._config.shouldRecordStats()?this._recorder=new e.LoaderEventRecorder(this._loaderAvailableTimestamp):this._recorder=e.NullLoaderEventRecorder.INSTANCE),this._recorder},s.prototype.getLoaderEvents=function(){return this.getRecorder().getEvents()},s.prototype.enqueueDefineAnonymousModule=function(e,t){if(null!==this._currentAnnonymousDefineCall)throw new Error(\"Can only have one anonymous define call per script file\");var r=null;this._config.isBuild()&&(r=new Error(\"StackLocation\").stack||null),this._currentAnnonymousDefineCall={stack:r,dependencies:e,callback:t}},s.prototype.defineModule=function(e,n,o,i,s,d){var a=this;void 0===d&&(d=new t(e));var u=this._moduleIdProvider.getModuleId(e);if(this._modules2[u])this._config.isDuplicateMessageIgnoredFor(e)||console.warn(\"Duplicate definition of module '\"+e+\"'\");else{var l=new r(u,e,this._normalizeDependencies(n,d),o,i,d);this._modules2[u]=l,\nthis._config.isBuild()&&(this._buildInfoDefineStack[u]=s,this._buildInfoDependencies[u]=(l.dependencies||[]).map((function(e){return a._moduleIdProvider.getStrModuleId(e.id)}))),this._resolve(l)}},s.prototype._normalizeDependency=function(e,t){if(\"exports\"===e)return o.EXPORTS;if(\"module\"===e)return o.MODULE;if(\"require\"===e)return o.REQUIRE;var r=e.indexOf(\"!\");if(r>=0){var n=t.resolveModule(e.substr(0,r)),s=t.resolveModule(e.substr(r+1)),d=this._moduleIdProvider.getModuleId(n+\"!\"+s),a=this._moduleIdProvider.getModuleId(n);return new i(d,a,s)}return new o(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var r=[],n=0,o=0,i=e.length;o<i;o++)r[n++]=this._normalizeDependency(e[o],t);return r},s.prototype._relativeRequire=function(t,r,n,o){if(\"string\"==typeof r)return this.synchronousRequire(r,t);this.defineModule(e.Utilities.generateAnonymousModule(),r,n,o,null,t)},s.prototype.synchronousRequire=function(e,r){void 0===r&&(r=new t(e))\n;var n=this._normalizeDependency(e,r),o=this._modules2[n.id];if(!o)throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This is the first mention of this module!\");if(!o.isComplete())throw new Error(\"Check dependency list! Synchronous require cannot resolve module '\"+e+\"'. This module has not been resolved completely yet.\");if(o.error)throw o.error;return o.exports},s.prototype.configure=function(t,r){var n=this._config.shouldRecordStats();this._config=r?new e.Configuration(this._env,t):this._config.cloneAndMerge(t),this._config.shouldRecordStats()&&!n&&(this._recorder=null)},s.prototype.getConfig=function(){return this._config},s.prototype._onLoad=function(e){if(null!==this._currentAnnonymousDefineCall){var t=this._currentAnnonymousDefineCall;this._currentAnnonymousDefineCall=null,this.defineModule(this._moduleIdProvider.getStrModuleId(e),t.dependencies,t.callback,null,t.stack)}},s.prototype._createLoadError=function(t,r){\nvar n=this,o=this._moduleIdProvider.getStrModuleId(t),i=(this._inverseDependencies2[t]||[]).map((function(e){return n._moduleIdProvider.getStrModuleId(e)})),s=e.ensureError(r);return s.phase=\"loading\",s.moduleId=o,s.neededBy=i,s},s.prototype._onLoadError=function(e,t){var n=this._createLoadError(e,t);this._modules2[e]||(this._modules2[e]=new r(e,this._moduleIdProvider.getStrModuleId(e),[],(function(){}),(function(){}),null));for(var o=[],i=0,s=this._moduleIdProvider.getMaxModuleId();i<s;i++)o[i]=!1;var d=!1,a=[];for(a.push(e),o[e]=!0;a.length>0;){var u=a.shift(),l=this._modules2[u];l&&(d=l.onDependencyError(n)||d);var c=this._inverseDependencies2[u];if(c)for(i=0,s=c.length;i<s;i++){var h=c[i];o[h]||(a.push(h),o[h]=!0)}}d||this._config.onError(n)},s.prototype._hasDependencyPath=function(e,t){var r=this._modules2[e];if(!r)return!1;for(var n=[],o=0,i=this._moduleIdProvider.getMaxModuleId();o<i;o++)n[o]=!1;var s=[];for(s.push(r),n[e]=!0;s.length>0;){var d=s.shift().dependencies;if(d)for(o=0,i=d.length;o<i;o++){\nvar a=d[o];if(a.id===t)return!0;var u=this._modules2[a.id];u&&!n[a.id]&&(n[a.id]=!0,s.push(u))}}return!1},s.prototype._findCyclePath=function(e,t,r){if(e===t||50===r)return[e];var n=this._modules2[e];if(!n)return null;var o=n.dependencies;if(o)for(var i=0,s=o.length;i<s;i++){var d=this._findCyclePath(o[i].id,t,r+1);if(null!==d)return d.push(e),d}return null},s.prototype._createRequire=function(t){var r=this,n=function(e,n,o){return r._relativeRequire(t,e,n,o)};return n.toUrl=function(e){return r._config.requireToUrl(t.resolveModule(e))},n.getStats=function(){return r.getLoaderEvents()},n.__$__nodeRequire=e.global.nodeRequire,n},s.prototype._loadModule=function(e){var t=this;if(!this._modules2[e]&&!this._knownModules2[e]){this._knownModules2[e]=!0;var r=this._moduleIdProvider.getStrModuleId(e),n=this._config.moduleIdToPaths(r);this._env.isNode&&(-1===r.indexOf(\"/\")||/^@[^\\/]+\\/[^\\/]+$/.test(r))&&n.push(\"node|\"+r);var o=-1,i=function(r){if(++o>=n.length)t._onLoadError(e,r);else{var s=n[o],d=t.getRecorder()\n;if(t._config.isBuild()&&\"empty:\"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);d.record(10,s),t._scriptLoader.load(t,s,(function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),d.record(11,s),t._onLoad(e)}),(function(e){d.record(12,s),i(e)}))}};i(null)}},s.prototype._loadPluginDependency=function(e,r){var n=this;if(!this._modules2[r.id]&&!this._knownModules2[r.id]){this._knownModules2[r.id]=!0;var o=function(e){n.defineModule(n._moduleIdProvider.getStrModuleId(r.id),[],e,null,null)};o.error=function(e){n._config.onError(n._createLoadError(r.id,e))},e.load(r.pluginParam,this._createRequire(t.ROOT),o,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,r=e.dependencies;if(r)for(var n=0,s=r.length;n<s;n++){var d=r[n];if(d!==o.EXPORTS)if(d!==o.MODULE)if(d!==o.REQUIRE){var a=this._modules2[d.id];if(a&&a.isComplete()){if(a.error)return void e.onDependencyError(a.error);e.unresolvedDependenciesCount--\n}else if(this._hasDependencyPath(d.id,e.id)){console.warn(\"There is a dependency cycle between '\"+this._moduleIdProvider.getStrModuleId(d.id)+\"' and '\"+this._moduleIdProvider.getStrModuleId(e.id)+\"'. The cyclic path follows:\");var u=this._findCyclePath(d.id,e.id,0)||[];u.reverse(),u.push(d.id),console.warn(u.map((function(e){return t._moduleIdProvider.getStrModuleId(e)})).join(\" => \\n\")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[d.id]=this._inverseDependencies2[d.id]||[],this._inverseDependencies2[d.id].push(e.id),d instanceof i){var l=this._modules2[d.pluginId];if(l&&l.isComplete()){this._loadPluginDependency(l.exports,d);continue}var c=this._inversePluginDependencies2.get(d.pluginId);c||(c=[],this._inversePluginDependencies2.set(d.pluginId,c)),c.push(d),this._loadModule(d.pluginId)}else this._loadModule(d.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}\n0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,r=this.getRecorder();if(!e.isComplete()){var n=e.dependencies,i=[];if(n)for(var s=0,d=n.length;s<d;s++){var a=n[s];if(a!==o.EXPORTS)if(a!==o.MODULE)if(a!==o.REQUIRE){var u=this._modules2[a.id];i[s]=u?u.exports:null}else i[s]=this._createRequire(e.moduleIdResolver);else i[s]={id:e.strId,config:function(){return t._config.getConfigForModule(e.strId)}};else i[s]=e.exports}e.complete(r,this._config,i);var l=this._inverseDependencies2[e.id];if(this._inverseDependencies2[e.id]=null,l)for(s=0,d=l.length;s<d;s++){var c=l[s],h=this._modules2[c];h.unresolvedDependenciesCount--,0===h.unresolvedDependenciesCount&&this._onModuleComplete(h)}var f=this._inversePluginDependencies2.get(e.id);if(f){this._inversePluginDependencies2.delete(e.id);for(s=0,d=f.length;s<d;s++)this._loadPluginDependency(e.exports,f[s])}}},s}();e.ModuleManager=s}(AMDLoader||(AMDLoader={})),function(e){\nvar t=new e.Environment,r=null,n=function(e,t,n){\"string\"!=typeof e&&(n=t,t=e,e=null),\"object\"==typeof t&&Array.isArray(t)||(n=t,t=null),t||(t=[\"require\",\"exports\",\"module\"]),e?r.defineModule(e,t,n,null,null):r.enqueueDefineAnonymousModule(t,n)};n.amd={jQuery:!0};var o=function(e,t){void 0===t&&(t=!1),r.configure(e,t)},i=function(){if(1===arguments.length){if(arguments[0]instanceof Object&&!Array.isArray(arguments[0]))return void o(arguments[0]);if(\"string\"==typeof arguments[0])return r.synchronousRequire(arguments[0])}if(2!==arguments.length&&3!==arguments.length||!Array.isArray(arguments[0]))throw new Error(\"Unrecognized require call\");r.defineModule(e.Utilities.generateAnonymousModule(),arguments[0],arguments[1],arguments[2],null)};function s(){if(void 0!==e.global.require||\"undefined\"!=typeof require){var o=e.global.require||require;if(\"function\"==typeof o&&\"function\"==typeof o.resolve){var s=function(e){r.getRecorder().record(33,e);try{return o(e)}finally{r.getRecorder().record(34,e)}}\n;e.global.nodeRequire=s,i.nodeRequire=s,i.__$__nodeRequire=s}}t.isNode&&!t.isElectronRenderer?(module.exports=i,require=i):(t.isElectronRenderer||(e.global.define=n),e.global.require=i)}i.config=o,i.getConfig=function(){return r.getConfig().getOptionsLiteral()},i.reset=function(){r=r.reset()},i.getBuildInfo=function(){return r.getBuildInfo()},i.getStats=function(){return r.getLoaderEvents()},i.define=function(){return n.apply(null,arguments)},e.init=s,\"function\"==typeof e.global.define&&e.global.define.amd||(r=new e.ModuleManager(t,e.createScriptLoader(t),n,i,e.Utilities.getHighPerformanceTimestamp()),void 0!==e.global.require&&\"function\"!=typeof e.global.require&&i.config(e.global.require),(define=function(){return n.apply(null,arguments)}).amd=n.amd,\"undefined\"==typeof doNotInitLoader&&s())}(AMDLoader||(AMDLoader={}));\n//# sourceMappingURL=../../min-maps/vs/loader.js.map"
  },
  {
    "path": "app/userland/app-stdlib/readme.md",
    "content": "# Beaker Applications Standard Library\n\nA collection of JS and Web Components which are used across Beaker's default applications.\n\n## Scripts\n\n### Build *.css.js files\n\nTo build the *.css.js files from the original css, run:\n\n```\nnode scripts/generate-css-js.js\n```"
  },
  {
    "path": "app/userland/app-stdlib/scripts/css-watcher.js",
    "content": "const path = require('path')\nconst fs = require('fs')\nconst exec = require('child_process').exec\n\nfs.watch(path.join(__dirname, '..', 'css'), {recursive: true}, function (eventType, filename) {\n  if (filename.endsWith('.css')) {\n    hit()\n  }\n})\n\nfunction run () {\n  console.log('Change detected, generating...')\n  exec(`node ${path.join(__dirname, 'generate-css-js.js')}`, (error, stdout, stderr) => {\n    if (error) {\n      console.error(`exec error: ${error}`)\n      return\n    }\n    console.log(`stdout: ${stdout}`)\n    console.log(`stderr: ${stderr}`)\n  })\n}\n\nvar to = 0\nfunction hit () {\n  clearTimeout(to)\n  to = setTimeout(run, 500)\n}"
  },
  {
    "path": "app/userland/app-stdlib/scripts/emoji-data.txt",
    "content": "# Captured April 17 2019\n# Stripped out all entires which are not fully-qualified\n# Commented out all items not yet supported by Beaker\n# -prf\n\n\n# emoji-test.txt\n# Date: 2019-01-27, 15:43:01 GMT\n# © 2019 Unicode®, Inc.\n# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.\n# For terms of use, see http://www.unicode.org/terms_of_use.html\n#\n# Emoji Keyboard/Display Test Data for UTS #51\n# Version: 12.0\n#\n# For documentation and usage, see http://www.unicode.org/reports/tr51\n#\n# This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed.\n# Format: code points; status # emoji name\n#     Code points — list of one or more hex code points, separated by spaces\n#     Status\n#       component           — an Emoji_Component,\n#                             excluding Regional_Indicators, ASCII, and non-Emoji.\n#       fully-qualified     — a fully-qualified emoji (see ED-18 in UTS #51),\n#                             excluding Emoji_Component\n# Notes:\n#   • This includes the emoji components that need emoji presentation (skin tone and hair)\n#     when isolated, but omits the components that need not have an emoji\n#     presentation when isolated.\n#   • The RGI set is covered by the listed fully-qualified emoji. \n#     element of the RGI set is missing one or more emoji presentation selectors.\n#   • The file is in CLDR order, not codepoint order. This is recommended (but not required!) for keyboard palettes.\n#   • The groups and subgroups are illustrative. See the Emoji Order chart for more information.\n\n\n# group: Smileys & Emotion\n\n# subgroup: face-smiling\n1F600                                      ; fully-qualified     # 😀 grinning face\n1F603                                      ; fully-qualified     # 😃 grinning face with big eyes\n1F604                                      ; fully-qualified     # 😄 grinning face with smiling eyes\n1F601                                      ; fully-qualified     # 😁 beaming face with smiling eyes\n1F606                                      ; fully-qualified     # 😆 grinning squinting face\n1F605                                      ; fully-qualified     # 😅 grinning face with sweat\n1F923                                      ; fully-qualified     # 🤣 rolling on the floor laughing\n1F602                                      ; fully-qualified     # 😂 face with tears of joy\n1F642                                      ; fully-qualified     # 🙂 slightly smiling face\n1F643                                      ; fully-qualified     # 🙃 upside-down face\n1F609                                      ; fully-qualified     # 😉 winking face\n1F60A                                      ; fully-qualified     # 😊 smiling face with smiling eyes\n1F607                                      ; fully-qualified     # 😇 smiling face with halo\n\n# subgroup: face-affection\n1F970                                      ; fully-qualified     # 🥰 smiling face with hearts\n1F60D                                      ; fully-qualified     # 😍 smiling face with heart-eyes\n1F929                                      ; fully-qualified     # 🤩 star-struck\n1F618                                      ; fully-qualified     # 😘 face blowing a kiss\n1F617                                      ; fully-qualified     # 😗 kissing face\n#SUPPORT(prf) 263A FE0F                                  ; fully-qualified     # ☺️ smiling face\n1F61A                                      ; fully-qualified     # 😚 kissing face with closed eyes\n1F619                                      ; fully-qualified     # 😙 kissing face with smiling eyes\n\n# subgroup: face-tongue\n1F60B                                      ; fully-qualified     # 😋 face savoring food\n1F61B                                      ; fully-qualified     # 😛 face with tongue\n1F61C                                      ; fully-qualified     # 😜 winking face with tongue\n1F92A                                      ; fully-qualified     # 🤪 zany face\n1F61D                                      ; fully-qualified     # 😝 squinting face with tongue\n1F911                                      ; fully-qualified     # 🤑 money-mouth face\n\n# subgroup: face-hand\n1F917                                      ; fully-qualified     # 🤗 hugging face\n1F92D                                      ; fully-qualified     # 🤭 face with hand over mouth\n1F92B                                      ; fully-qualified     # 🤫 shushing face\n1F914                                      ; fully-qualified     # 🤔 thinking face\n\n# subgroup: face-neutral-skeptical\n1F910                                      ; fully-qualified     # 🤐 zipper-mouth face\n1F928                                      ; fully-qualified     # 🤨 face with raised eyebrow\n1F610                                      ; fully-qualified     # 😐 neutral face\n1F611                                      ; fully-qualified     # 😑 expressionless face\n1F636                                      ; fully-qualified     # 😶 face without mouth\n1F60F                                      ; fully-qualified     # 😏 smirking face\n1F612                                      ; fully-qualified     # 😒 unamused face\n1F644                                      ; fully-qualified     # 🙄 face with rolling eyes\n1F62C                                      ; fully-qualified     # 😬 grimacing face\n1F925                                      ; fully-qualified     # 🤥 lying face\n\n# subgroup: face-sleepy\n1F60C                                      ; fully-qualified     # 😌 relieved face\n1F614                                      ; fully-qualified     # 😔 pensive face\n1F62A                                      ; fully-qualified     # 😪 sleepy face\n1F924                                      ; fully-qualified     # 🤤 drooling face\n1F634                                      ; fully-qualified     # 😴 sleeping face\n\n# subgroup: face-unwell\n1F637                                      ; fully-qualified     # 😷 face with medical mask\n1F912                                      ; fully-qualified     # 🤒 face with thermometer\n1F915                                      ; fully-qualified     # 🤕 face with head-bandage\n1F922                                      ; fully-qualified     # 🤢 nauseated face\n1F92E                                      ; fully-qualified     # 🤮 face vomiting\n1F927                                      ; fully-qualified     # 🤧 sneezing face\n1F975                                      ; fully-qualified     # 🥵 hot face\n1F976                                      ; fully-qualified     # 🥶 cold face\n1F974                                      ; fully-qualified     # 🥴 woozy face\n1F635                                      ; fully-qualified     # 😵 dizzy face\n1F92F                                      ; fully-qualified     # 🤯 exploding head\n\n# subgroup: face-hat\n1F920                                      ; fully-qualified     # 🤠 cowboy hat face\n1F973                                      ; fully-qualified     # 🥳 partying face\n\n# subgroup: face-glasses\n1F60E                                      ; fully-qualified     # 😎 smiling face with sunglasses\n1F913                                      ; fully-qualified     # 🤓 nerd face\n1F9D0                                      ; fully-qualified     # 🧐 face with monocle\n\n# subgroup: face-concerned\n1F615                                      ; fully-qualified     # 😕 confused face\n1F61F                                      ; fully-qualified     # 😟 worried face\n1F641                                      ; fully-qualified     # 🙁 slightly frowning face\n2639 FE0F                                  ; fully-qualified     # ☹️ frowning face\n1F62E                                      ; fully-qualified     # 😮 face with open mouth\n1F62F                                      ; fully-qualified     # 😯 hushed face\n1F632                                      ; fully-qualified     # 😲 astonished face\n1F633                                      ; fully-qualified     # 😳 flushed face\n1F97A                                      ; fully-qualified     # 🥺 pleading face\n1F626                                      ; fully-qualified     # 😦 frowning face with open mouth\n1F627                                      ; fully-qualified     # 😧 anguished face\n1F628                                      ; fully-qualified     # 😨 fearful face\n1F630                                      ; fully-qualified     # 😰 anxious face with sweat\n1F625                                      ; fully-qualified     # 😥 sad but relieved face\n1F622                                      ; fully-qualified     # 😢 crying face\n1F62D                                      ; fully-qualified     # 😭 loudly crying face\n1F631                                      ; fully-qualified     # 😱 face screaming in fear\n1F616                                      ; fully-qualified     # 😖 confounded face\n1F623                                      ; fully-qualified     # 😣 persevering face\n1F61E                                      ; fully-qualified     # 😞 disappointed face\n1F613                                      ; fully-qualified     # 😓 downcast face with sweat\n1F629                                      ; fully-qualified     # 😩 weary face\n1F62B                                      ; fully-qualified     # 😫 tired face\n#SUPPORT(prf) 1F971                                      ; fully-qualified     # 🥱 yawning face\n\n# subgroup: face-negative\n1F624                                      ; fully-qualified     # 😤 face with steam from nose\n1F621                                      ; fully-qualified     # 😡 pouting face\n1F620                                      ; fully-qualified     # 😠 angry face\n1F92C                                      ; fully-qualified     # 🤬 face with symbols on mouth\n1F608                                      ; fully-qualified     # 😈 smiling face with horns\n1F47F                                      ; fully-qualified     # 👿 angry face with horns\n1F480                                      ; fully-qualified     # 💀 skull\n2620 FE0F                                  ; fully-qualified     # ☠️ skull and crossbones\n\n# subgroup: face-costume\n1F4A9                                      ; fully-qualified     # 💩 pile of poo\n1F921                                      ; fully-qualified     # 🤡 clown face\n1F479                                      ; fully-qualified     # 👹 ogre\n1F47A                                      ; fully-qualified     # 👺 goblin\n1F47B                                      ; fully-qualified     # 👻 ghost\n1F47D                                      ; fully-qualified     # 👽 alien\n1F47E                                      ; fully-qualified     # 👾 alien monster\n1F916                                      ; fully-qualified     # 🤖 robot\n\n# subgroup: cat-face\n1F63A                                      ; fully-qualified     # 😺 grinning cat\n1F638                                      ; fully-qualified     # 😸 grinning cat with smiling eyes\n1F639                                      ; fully-qualified     # 😹 cat with tears of joy\n1F63B                                      ; fully-qualified     # 😻 smiling cat with heart-eyes\n1F63C                                      ; fully-qualified     # 😼 cat with wry smile\n1F63D                                      ; fully-qualified     # 😽 kissing cat\n1F640                                      ; fully-qualified     # 🙀 weary cat\n1F63F                                      ; fully-qualified     # 😿 crying cat\n1F63E                                      ; fully-qualified     # 😾 pouting cat\n\n# subgroup: monkey-face\n1F648                                      ; fully-qualified     # 🙈 see-no-evil monkey\n1F649                                      ; fully-qualified     # 🙉 hear-no-evil monkey\n1F64A                                      ; fully-qualified     # 🙊 speak-no-evil monkey\n\n# subgroup: emotion\n1F48B                                      ; fully-qualified     # 💋 kiss mark\n1F48C                                      ; fully-qualified     # 💌 love letter\n1F498                                      ; fully-qualified     # 💘 heart with arrow\n1F49D                                      ; fully-qualified     # 💝 heart with ribbon\n1F496                                      ; fully-qualified     # 💖 sparkling heart\n1F497                                      ; fully-qualified     # 💗 growing heart\n1F493                                      ; fully-qualified     # 💓 beating heart\n1F49E                                      ; fully-qualified     # 💞 revolving hearts\n1F495                                      ; fully-qualified     # 💕 two hearts\n1F49F                                      ; fully-qualified     # 💟 heart decoration\n2763 FE0F                                  ; fully-qualified     # ❣️ heart exclamation\n1F494                                      ; fully-qualified     # 💔 broken heart\n2764 FE0F                                  ; fully-qualified     # ❤️ red heart\n1F9E1                                      ; fully-qualified     # 🧡 orange heart\n1F49B                                      ; fully-qualified     # 💛 yellow heart\n1F49A                                      ; fully-qualified     # 💚 green heart\n1F499                                      ; fully-qualified     # 💙 blue heart\n1F49C                                      ; fully-qualified     # 💜 purple heart\n#SUPPORT(prf) 1F90E                                      ; fully-qualified     # 🤎 brown heart\n1F5A4                                      ; fully-qualified     # 🖤 black heart\n#SUPPORT(prf) 1F90D                                      ; fully-qualified     # 🤍 white heart\n1F4AF                                      ; fully-qualified     # 💯 hundred points\n1F4A2                                      ; fully-qualified     # 💢 anger symbol\n1F4A5                                      ; fully-qualified     # 💥 collision\n1F4AB                                      ; fully-qualified     # 💫 dizzy\n1F4A6                                      ; fully-qualified     # 💦 sweat droplets\n1F4A8                                      ; fully-qualified     # 💨 dashing away\n1F573 FE0F                                 ; fully-qualified     # 🕳️ hole\n1F4A3                                      ; fully-qualified     # 💣 bomb\n1F4AC                                      ; fully-qualified     # 💬 speech balloon\n1F441 FE0F 200D 1F5E8 FE0F                 ; fully-qualified     # 👁️‍🗨️ eye in speech bubble\n1F5E8 FE0F                                 ; fully-qualified     # 🗨️ left speech bubble\n1F5EF FE0F                                 ; fully-qualified     # 🗯️ right anger bubble\n1F4AD                                      ; fully-qualified     # 💭 thought balloon\n1F4A4                                      ; fully-qualified     # 💤 zzz\n\n# Smileys & Emotion subtotal:\t\t160\n# Smileys & Emotion subtotal:\t\t160\tw/o modifiers\n\n# group: People & Body\n\n# subgroup: hand-fingers-open\n1F44B                                      ; fully-qualified     # 👋 waving hand\n1F44B 1F3FB                                ; fully-qualified     # 👋🏻 waving hand: light skin tone\n1F44B 1F3FC                                ; fully-qualified     # 👋🏼 waving hand: medium-light skin tone\n1F44B 1F3FD                                ; fully-qualified     # 👋🏽 waving hand: medium skin tone\n1F44B 1F3FE                                ; fully-qualified     # 👋🏾 waving hand: medium-dark skin tone\n1F44B 1F3FF                                ; fully-qualified     # 👋🏿 waving hand: dark skin tone\n1F91A                                      ; fully-qualified     # 🤚 raised back of hand\n1F91A 1F3FB                                ; fully-qualified     # 🤚🏻 raised back of hand: light skin tone\n1F91A 1F3FC                                ; fully-qualified     # 🤚🏼 raised back of hand: medium-light skin tone\n1F91A 1F3FD                                ; fully-qualified     # 🤚🏽 raised back of hand: medium skin tone\n1F91A 1F3FE                                ; fully-qualified     # 🤚🏾 raised back of hand: medium-dark skin tone\n1F91A 1F3FF                                ; fully-qualified     # 🤚🏿 raised back of hand: dark skin tone\n1F590 FE0F                                 ; fully-qualified     # 🖐️ hand with fingers splayed\n1F590 1F3FB                                ; fully-qualified     # 🖐🏻 hand with fingers splayed: light skin tone\n1F590 1F3FC                                ; fully-qualified     # 🖐🏼 hand with fingers splayed: medium-light skin tone\n1F590 1F3FD                                ; fully-qualified     # 🖐🏽 hand with fingers splayed: medium skin tone\n1F590 1F3FE                                ; fully-qualified     # 🖐🏾 hand with fingers splayed: medium-dark skin tone\n1F590 1F3FF                                ; fully-qualified     # 🖐🏿 hand with fingers splayed: dark skin tone\n270B                                       ; fully-qualified     # ✋ raised hand\n270B 1F3FB                                 ; fully-qualified     # ✋🏻 raised hand: light skin tone\n270B 1F3FC                                 ; fully-qualified     # ✋🏼 raised hand: medium-light skin tone\n270B 1F3FD                                 ; fully-qualified     # ✋🏽 raised hand: medium skin tone\n270B 1F3FE                                 ; fully-qualified     # ✋🏾 raised hand: medium-dark skin tone\n270B 1F3FF                                 ; fully-qualified     # ✋🏿 raised hand: dark skin tone\n1F596                                      ; fully-qualified     # 🖖 vulcan salute\n1F596 1F3FB                                ; fully-qualified     # 🖖🏻 vulcan salute: light skin tone\n1F596 1F3FC                                ; fully-qualified     # 🖖🏼 vulcan salute: medium-light skin tone\n1F596 1F3FD                                ; fully-qualified     # 🖖🏽 vulcan salute: medium skin tone\n1F596 1F3FE                                ; fully-qualified     # 🖖🏾 vulcan salute: medium-dark skin tone\n1F596 1F3FF                                ; fully-qualified     # 🖖🏿 vulcan salute: dark skin tone\n\n# subgroup: hand-fingers-partial\n1F44C                                      ; fully-qualified     # 👌 OK hand\n1F44C 1F3FB                                ; fully-qualified     # 👌🏻 OK hand: light skin tone\n1F44C 1F3FC                                ; fully-qualified     # 👌🏼 OK hand: medium-light skin tone\n1F44C 1F3FD                                ; fully-qualified     # 👌🏽 OK hand: medium skin tone\n1F44C 1F3FE                                ; fully-qualified     # 👌🏾 OK hand: medium-dark skin tone\n1F44C 1F3FF                                ; fully-qualified     # 👌🏿 OK hand: dark skin tone\n#SUPPORT(prf) 1F90F                                      ; fully-qualified     # 🤏 pinching hand\n#SUPPORT(prf) 1F90F 1F3FB                                ; fully-qualified     # 🤏🏻 pinching hand: light skin tone\n#SUPPORT(prf) 1F90F 1F3FC                                ; fully-qualified     # 🤏🏼 pinching hand: medium-light skin tone\n#SUPPORT(prf) 1F90F 1F3FD                                ; fully-qualified     # 🤏🏽 pinching hand: medium skin tone\n#SUPPORT(prf) 1F90F 1F3FE                                ; fully-qualified     # 🤏🏾 pinching hand: medium-dark skin tone\n#SUPPORT(prf) 1F90F 1F3FF                                ; fully-qualified     # 🤏🏿 pinching hand: dark skin tone\n270C FE0F                                  ; fully-qualified     # ✌️ victory hand\n270C 1F3FB                                 ; fully-qualified     # ✌🏻 victory hand: light skin tone\n270C 1F3FC                                 ; fully-qualified     # ✌🏼 victory hand: medium-light skin tone\n270C 1F3FD                                 ; fully-qualified     # ✌🏽 victory hand: medium skin tone\n270C 1F3FE                                 ; fully-qualified     # ✌🏾 victory hand: medium-dark skin tone\n270C 1F3FF                                 ; fully-qualified     # ✌🏿 victory hand: dark skin tone\n1F91E                                      ; fully-qualified     # 🤞 crossed fingers\n1F91E 1F3FB                                ; fully-qualified     # 🤞🏻 crossed fingers: light skin tone\n1F91E 1F3FC                                ; fully-qualified     # 🤞🏼 crossed fingers: medium-light skin tone\n1F91E 1F3FD                                ; fully-qualified     # 🤞🏽 crossed fingers: medium skin tone\n1F91E 1F3FE                                ; fully-qualified     # 🤞🏾 crossed fingers: medium-dark skin tone\n1F91E 1F3FF                                ; fully-qualified     # 🤞🏿 crossed fingers: dark skin tone\n1F91F                                      ; fully-qualified     # 🤟 love-you gesture\n1F91F 1F3FB                                ; fully-qualified     # 🤟🏻 love-you gesture: light skin tone\n1F91F 1F3FC                                ; fully-qualified     # 🤟🏼 love-you gesture: medium-light skin tone\n1F91F 1F3FD                                ; fully-qualified     # 🤟🏽 love-you gesture: medium skin tone\n1F91F 1F3FE                                ; fully-qualified     # 🤟🏾 love-you gesture: medium-dark skin tone\n1F91F 1F3FF                                ; fully-qualified     # 🤟🏿 love-you gesture: dark skin tone\n1F918                                      ; fully-qualified     # 🤘 sign of the horns\n1F918 1F3FB                                ; fully-qualified     # 🤘🏻 sign of the horns: light skin tone\n1F918 1F3FC                                ; fully-qualified     # 🤘🏼 sign of the horns: medium-light skin tone\n1F918 1F3FD                                ; fully-qualified     # 🤘🏽 sign of the horns: medium skin tone\n1F918 1F3FE                                ; fully-qualified     # 🤘🏾 sign of the horns: medium-dark skin tone\n1F918 1F3FF                                ; fully-qualified     # 🤘🏿 sign of the horns: dark skin tone\n1F919                                      ; fully-qualified     # 🤙 call me hand\n1F919 1F3FB                                ; fully-qualified     # 🤙🏻 call me hand: light skin tone\n1F919 1F3FC                                ; fully-qualified     # 🤙🏼 call me hand: medium-light skin tone\n1F919 1F3FD                                ; fully-qualified     # 🤙🏽 call me hand: medium skin tone\n1F919 1F3FE                                ; fully-qualified     # 🤙🏾 call me hand: medium-dark skin tone\n1F919 1F3FF                                ; fully-qualified     # 🤙🏿 call me hand: dark skin tone\n\n# subgroup: hand-single-finger\n1F448                                      ; fully-qualified     # 👈 backhand index pointing left\n1F448 1F3FB                                ; fully-qualified     # 👈🏻 backhand index pointing left: light skin tone\n1F448 1F3FC                                ; fully-qualified     # 👈🏼 backhand index pointing left: medium-light skin tone\n1F448 1F3FD                                ; fully-qualified     # 👈🏽 backhand index pointing left: medium skin tone\n1F448 1F3FE                                ; fully-qualified     # 👈🏾 backhand index pointing left: medium-dark skin tone\n1F448 1F3FF                                ; fully-qualified     # 👈🏿 backhand index pointing left: dark skin tone\n1F449                                      ; fully-qualified     # 👉 backhand index pointing right\n1F449 1F3FB                                ; fully-qualified     # 👉🏻 backhand index pointing right: light skin tone\n1F449 1F3FC                                ; fully-qualified     # 👉🏼 backhand index pointing right: medium-light skin tone\n1F449 1F3FD                                ; fully-qualified     # 👉🏽 backhand index pointing right: medium skin tone\n1F449 1F3FE                                ; fully-qualified     # 👉🏾 backhand index pointing right: medium-dark skin tone\n1F449 1F3FF                                ; fully-qualified     # 👉🏿 backhand index pointing right: dark skin tone\n1F446                                      ; fully-qualified     # 👆 backhand index pointing up\n1F446 1F3FB                                ; fully-qualified     # 👆🏻 backhand index pointing up: light skin tone\n1F446 1F3FC                                ; fully-qualified     # 👆🏼 backhand index pointing up: medium-light skin tone\n1F446 1F3FD                                ; fully-qualified     # 👆🏽 backhand index pointing up: medium skin tone\n1F446 1F3FE                                ; fully-qualified     # 👆🏾 backhand index pointing up: medium-dark skin tone\n1F446 1F3FF                                ; fully-qualified     # 👆🏿 backhand index pointing up: dark skin tone\n1F595                                      ; fully-qualified     # 🖕 middle finger\n1F595 1F3FB                                ; fully-qualified     # 🖕🏻 middle finger: light skin tone\n1F595 1F3FC                                ; fully-qualified     # 🖕🏼 middle finger: medium-light skin tone\n1F595 1F3FD                                ; fully-qualified     # 🖕🏽 middle finger: medium skin tone\n1F595 1F3FE                                ; fully-qualified     # 🖕🏾 middle finger: medium-dark skin tone\n1F595 1F3FF                                ; fully-qualified     # 🖕🏿 middle finger: dark skin tone\n1F447                                      ; fully-qualified     # 👇 backhand index pointing down\n1F447 1F3FB                                ; fully-qualified     # 👇🏻 backhand index pointing down: light skin tone\n1F447 1F3FC                                ; fully-qualified     # 👇🏼 backhand index pointing down: medium-light skin tone\n1F447 1F3FD                                ; fully-qualified     # 👇🏽 backhand index pointing down: medium skin tone\n1F447 1F3FE                                ; fully-qualified     # 👇🏾 backhand index pointing down: medium-dark skin tone\n1F447 1F3FF                                ; fully-qualified     # 👇🏿 backhand index pointing down: dark skin tone\n261D FE0F                                  ; fully-qualified     # ☝️ index pointing up\n261D 1F3FB                                 ; fully-qualified     # ☝🏻 index pointing up: light skin tone\n261D 1F3FC                                 ; fully-qualified     # ☝🏼 index pointing up: medium-light skin tone\n261D 1F3FD                                 ; fully-qualified     # ☝🏽 index pointing up: medium skin tone\n261D 1F3FE                                 ; fully-qualified     # ☝🏾 index pointing up: medium-dark skin tone\n261D 1F3FF                                 ; fully-qualified     # ☝🏿 index pointing up: dark skin tone\n\n# subgroup: hand-fingers-closed\n1F44D                                      ; fully-qualified     # 👍 thumbs up\n1F44D 1F3FB                                ; fully-qualified     # 👍🏻 thumbs up: light skin tone\n1F44D 1F3FC                                ; fully-qualified     # 👍🏼 thumbs up: medium-light skin tone\n1F44D 1F3FD                                ; fully-qualified     # 👍🏽 thumbs up: medium skin tone\n1F44D 1F3FE                                ; fully-qualified     # 👍🏾 thumbs up: medium-dark skin tone\n1F44D 1F3FF                                ; fully-qualified     # 👍🏿 thumbs up: dark skin tone\n1F44E                                      ; fully-qualified     # 👎 thumbs down\n1F44E 1F3FB                                ; fully-qualified     # 👎🏻 thumbs down: light skin tone\n1F44E 1F3FC                                ; fully-qualified     # 👎🏼 thumbs down: medium-light skin tone\n1F44E 1F3FD                                ; fully-qualified     # 👎🏽 thumbs down: medium skin tone\n1F44E 1F3FE                                ; fully-qualified     # 👎🏾 thumbs down: medium-dark skin tone\n1F44E 1F3FF                                ; fully-qualified     # 👎🏿 thumbs down: dark skin tone\n270A                                       ; fully-qualified     # ✊ raised fist\n270A 1F3FB                                 ; fully-qualified     # ✊🏻 raised fist: light skin tone\n270A 1F3FC                                 ; fully-qualified     # ✊🏼 raised fist: medium-light skin tone\n270A 1F3FD                                 ; fully-qualified     # ✊🏽 raised fist: medium skin tone\n270A 1F3FE                                 ; fully-qualified     # ✊🏾 raised fist: medium-dark skin tone\n270A 1F3FF                                 ; fully-qualified     # ✊🏿 raised fist: dark skin tone\n1F44A                                      ; fully-qualified     # 👊 oncoming fist\n1F44A 1F3FB                                ; fully-qualified     # 👊🏻 oncoming fist: light skin tone\n1F44A 1F3FC                                ; fully-qualified     # 👊🏼 oncoming fist: medium-light skin tone\n1F44A 1F3FD                                ; fully-qualified     # 👊🏽 oncoming fist: medium skin tone\n1F44A 1F3FE                                ; fully-qualified     # 👊🏾 oncoming fist: medium-dark skin tone\n1F44A 1F3FF                                ; fully-qualified     # 👊🏿 oncoming fist: dark skin tone\n1F91B                                      ; fully-qualified     # 🤛 left-facing fist\n1F91B 1F3FB                                ; fully-qualified     # 🤛🏻 left-facing fist: light skin tone\n1F91B 1F3FC                                ; fully-qualified     # 🤛🏼 left-facing fist: medium-light skin tone\n1F91B 1F3FD                                ; fully-qualified     # 🤛🏽 left-facing fist: medium skin tone\n1F91B 1F3FE                                ; fully-qualified     # 🤛🏾 left-facing fist: medium-dark skin tone\n1F91B 1F3FF                                ; fully-qualified     # 🤛🏿 left-facing fist: dark skin tone\n1F91C                                      ; fully-qualified     # 🤜 right-facing fist\n1F91C 1F3FB                                ; fully-qualified     # 🤜🏻 right-facing fist: light skin tone\n1F91C 1F3FC                                ; fully-qualified     # 🤜🏼 right-facing fist: medium-light skin tone\n1F91C 1F3FD                                ; fully-qualified     # 🤜🏽 right-facing fist: medium skin tone\n1F91C 1F3FE                                ; fully-qualified     # 🤜🏾 right-facing fist: medium-dark skin tone\n1F91C 1F3FF                                ; fully-qualified     # 🤜🏿 right-facing fist: dark skin tone\n\n# subgroup: hands\n1F44F                                      ; fully-qualified     # 👏 clapping hands\n1F44F 1F3FB                                ; fully-qualified     # 👏🏻 clapping hands: light skin tone\n1F44F 1F3FC                                ; fully-qualified     # 👏🏼 clapping hands: medium-light skin tone\n1F44F 1F3FD                                ; fully-qualified     # 👏🏽 clapping hands: medium skin tone\n1F44F 1F3FE                                ; fully-qualified     # 👏🏾 clapping hands: medium-dark skin tone\n1F44F 1F3FF                                ; fully-qualified     # 👏🏿 clapping hands: dark skin tone\n1F64C                                      ; fully-qualified     # 🙌 raising hands\n1F64C 1F3FB                                ; fully-qualified     # 🙌🏻 raising hands: light skin tone\n1F64C 1F3FC                                ; fully-qualified     # 🙌🏼 raising hands: medium-light skin tone\n1F64C 1F3FD                                ; fully-qualified     # 🙌🏽 raising hands: medium skin tone\n1F64C 1F3FE                                ; fully-qualified     # 🙌🏾 raising hands: medium-dark skin tone\n1F64C 1F3FF                                ; fully-qualified     # 🙌🏿 raising hands: dark skin tone\n1F450                                      ; fully-qualified     # 👐 open hands\n1F450 1F3FB                                ; fully-qualified     # 👐🏻 open hands: light skin tone\n1F450 1F3FC                                ; fully-qualified     # 👐🏼 open hands: medium-light skin tone\n1F450 1F3FD                                ; fully-qualified     # 👐🏽 open hands: medium skin tone\n1F450 1F3FE                                ; fully-qualified     # 👐🏾 open hands: medium-dark skin tone\n1F450 1F3FF                                ; fully-qualified     # 👐🏿 open hands: dark skin tone\n1F932                                      ; fully-qualified     # 🤲 palms up together\n1F932 1F3FB                                ; fully-qualified     # 🤲🏻 palms up together: light skin tone\n1F932 1F3FC                                ; fully-qualified     # 🤲🏼 palms up together: medium-light skin tone\n1F932 1F3FD                                ; fully-qualified     # 🤲🏽 palms up together: medium skin tone\n1F932 1F3FE                                ; fully-qualified     # 🤲🏾 palms up together: medium-dark skin tone\n1F932 1F3FF                                ; fully-qualified     # 🤲🏿 palms up together: dark skin tone\n1F91D                                      ; fully-qualified     # 🤝 handshake\n1F64F                                      ; fully-qualified     # 🙏 folded hands\n1F64F 1F3FB                                ; fully-qualified     # 🙏🏻 folded hands: light skin tone\n1F64F 1F3FC                                ; fully-qualified     # 🙏🏼 folded hands: medium-light skin tone\n1F64F 1F3FD                                ; fully-qualified     # 🙏🏽 folded hands: medium skin tone\n1F64F 1F3FE                                ; fully-qualified     # 🙏🏾 folded hands: medium-dark skin tone\n1F64F 1F3FF                                ; fully-qualified     # 🙏🏿 folded hands: dark skin tone\n\n# subgroup: hand-prop\n270D FE0F                                  ; fully-qualified     # ✍️ writing hand\n270D 1F3FB                                 ; fully-qualified     # ✍🏻 writing hand: light skin tone\n270D 1F3FC                                 ; fully-qualified     # ✍🏼 writing hand: medium-light skin tone\n270D 1F3FD                                 ; fully-qualified     # ✍🏽 writing hand: medium skin tone\n270D 1F3FE                                 ; fully-qualified     # ✍🏾 writing hand: medium-dark skin tone\n270D 1F3FF                                 ; fully-qualified     # ✍🏿 writing hand: dark skin tone\n1F485                                      ; fully-qualified     # 💅 nail polish\n1F485 1F3FB                                ; fully-qualified     # 💅🏻 nail polish: light skin tone\n1F485 1F3FC                                ; fully-qualified     # 💅🏼 nail polish: medium-light skin tone\n1F485 1F3FD                                ; fully-qualified     # 💅🏽 nail polish: medium skin tone\n1F485 1F3FE                                ; fully-qualified     # 💅🏾 nail polish: medium-dark skin tone\n1F485 1F3FF                                ; fully-qualified     # 💅🏿 nail polish: dark skin tone\n1F933                                      ; fully-qualified     # 🤳 selfie\n1F933 1F3FB                                ; fully-qualified     # 🤳🏻 selfie: light skin tone\n1F933 1F3FC                                ; fully-qualified     # 🤳🏼 selfie: medium-light skin tone\n1F933 1F3FD                                ; fully-qualified     # 🤳🏽 selfie: medium skin tone\n1F933 1F3FE                                ; fully-qualified     # 🤳🏾 selfie: medium-dark skin tone\n1F933 1F3FF                                ; fully-qualified     # 🤳🏿 selfie: dark skin tone\n\n# subgroup: body-parts\n1F4AA                                      ; fully-qualified     # 💪 flexed biceps\n1F4AA 1F3FB                                ; fully-qualified     # 💪🏻 flexed biceps: light skin tone\n1F4AA 1F3FC                                ; fully-qualified     # 💪🏼 flexed biceps: medium-light skin tone\n1F4AA 1F3FD                                ; fully-qualified     # 💪🏽 flexed biceps: medium skin tone\n1F4AA 1F3FE                                ; fully-qualified     # 💪🏾 flexed biceps: medium-dark skin tone\n1F4AA 1F3FF                                ; fully-qualified     # 💪🏿 flexed biceps: dark skin tone\n#SUPPORT(prf) 1F9BE                                      ; fully-qualified     # 🦾 mechanical arm\n#SUPPORT(prf) 1F9BF                                      ; fully-qualified     # 🦿 mechanical leg\n1F9B5                                      ; fully-qualified     # 🦵 leg\n1F9B5 1F3FB                                ; fully-qualified     # 🦵🏻 leg: light skin tone\n1F9B5 1F3FC                                ; fully-qualified     # 🦵🏼 leg: medium-light skin tone\n1F9B5 1F3FD                                ; fully-qualified     # 🦵🏽 leg: medium skin tone\n1F9B5 1F3FE                                ; fully-qualified     # 🦵🏾 leg: medium-dark skin tone\n1F9B5 1F3FF                                ; fully-qualified     # 🦵🏿 leg: dark skin tone\n1F9B6                                      ; fully-qualified     # 🦶 foot\n1F9B6 1F3FB                                ; fully-qualified     # 🦶🏻 foot: light skin tone\n1F9B6 1F3FC                                ; fully-qualified     # 🦶🏼 foot: medium-light skin tone\n1F9B6 1F3FD                                ; fully-qualified     # 🦶🏽 foot: medium skin tone\n1F9B6 1F3FE                                ; fully-qualified     # 🦶🏾 foot: medium-dark skin tone\n1F9B6 1F3FF                                ; fully-qualified     # 🦶🏿 foot: dark skin tone\n1F442                                      ; fully-qualified     # 👂 ear\n1F442 1F3FB                                ; fully-qualified     # 👂🏻 ear: light skin tone\n1F442 1F3FC                                ; fully-qualified     # 👂🏼 ear: medium-light skin tone\n1F442 1F3FD                                ; fully-qualified     # 👂🏽 ear: medium skin tone\n1F442 1F3FE                                ; fully-qualified     # 👂🏾 ear: medium-dark skin tone\n1F442 1F3FF                                ; fully-qualified     # 👂🏿 ear: dark skin tone\n#SUPPORT(prf) 1F9BB                                      ; fully-qualified     # 🦻 ear with hearing aid\n#SUPPORT(prf) 1F9BB 1F3FB                                ; fully-qualified     # 🦻🏻 ear with hearing aid: light skin tone\n#SUPPORT(prf) 1F9BB 1F3FC                                ; fully-qualified     # 🦻🏼 ear with hearing aid: medium-light skin tone\n#SUPPORT(prf) 1F9BB 1F3FD                                ; fully-qualified     # 🦻🏽 ear with hearing aid: medium skin tone\n#SUPPORT(prf) 1F9BB 1F3FE                                ; fully-qualified     # 🦻🏾 ear with hearing aid: medium-dark skin tone\n#SUPPORT(prf) 1F9BB 1F3FF                                ; fully-qualified     # 🦻🏿 ear with hearing aid: dark skin tone\n1F443                                      ; fully-qualified     # 👃 nose\n1F443 1F3FB                                ; fully-qualified     # 👃🏻 nose: light skin tone\n1F443 1F3FC                                ; fully-qualified     # 👃🏼 nose: medium-light skin tone\n1F443 1F3FD                                ; fully-qualified     # 👃🏽 nose: medium skin tone\n1F443 1F3FE                                ; fully-qualified     # 👃🏾 nose: medium-dark skin tone\n1F443 1F3FF                                ; fully-qualified     # 👃🏿 nose: dark skin tone\n1F9E0                                      ; fully-qualified     # 🧠 brain\n1F9B7                                      ; fully-qualified     # 🦷 tooth\n1F9B4                                      ; fully-qualified     # 🦴 bone\n1F440                                      ; fully-qualified     # 👀 eyes\n1F441 FE0F                                 ; fully-qualified     # 👁️ eye\n1F445                                      ; fully-qualified     # 👅 tongue\n1F444                                      ; fully-qualified     # 👄 mouth\n\n# subgroup: person\n1F476                                      ; fully-qualified     # 👶 baby\n1F476 1F3FB                                ; fully-qualified     # 👶🏻 baby: light skin tone\n1F476 1F3FC                                ; fully-qualified     # 👶🏼 baby: medium-light skin tone\n1F476 1F3FD                                ; fully-qualified     # 👶🏽 baby: medium skin tone\n1F476 1F3FE                                ; fully-qualified     # 👶🏾 baby: medium-dark skin tone\n1F476 1F3FF                                ; fully-qualified     # 👶🏿 baby: dark skin tone\n1F9D2                                      ; fully-qualified     # 🧒 child\n1F9D2 1F3FB                                ; fully-qualified     # 🧒🏻 child: light skin tone\n1F9D2 1F3FC                                ; fully-qualified     # 🧒🏼 child: medium-light skin tone\n1F9D2 1F3FD                                ; fully-qualified     # 🧒🏽 child: medium skin tone\n1F9D2 1F3FE                                ; fully-qualified     # 🧒🏾 child: medium-dark skin tone\n1F9D2 1F3FF                                ; fully-qualified     # 🧒🏿 child: dark skin tone\n1F466                                      ; fully-qualified     # 👦 boy\n1F466 1F3FB                                ; fully-qualified     # 👦🏻 boy: light skin tone\n1F466 1F3FC                                ; fully-qualified     # 👦🏼 boy: medium-light skin tone\n1F466 1F3FD                                ; fully-qualified     # 👦🏽 boy: medium skin tone\n1F466 1F3FE                                ; fully-qualified     # 👦🏾 boy: medium-dark skin tone\n1F466 1F3FF                                ; fully-qualified     # 👦🏿 boy: dark skin tone\n1F467                                      ; fully-qualified     # 👧 girl\n1F467 1F3FB                                ; fully-qualified     # 👧🏻 girl: light skin tone\n1F467 1F3FC                                ; fully-qualified     # 👧🏼 girl: medium-light skin tone\n1F467 1F3FD                                ; fully-qualified     # 👧🏽 girl: medium skin tone\n1F467 1F3FE                                ; fully-qualified     # 👧🏾 girl: medium-dark skin tone\n1F467 1F3FF                                ; fully-qualified     # 👧🏿 girl: dark skin tone\n1F9D1                                      ; fully-qualified     # 🧑 person\n1F9D1 1F3FB                                ; fully-qualified     # 🧑🏻 person: light skin tone\n1F9D1 1F3FC                                ; fully-qualified     # 🧑🏼 person: medium-light skin tone\n1F9D1 1F3FD                                ; fully-qualified     # 🧑🏽 person: medium skin tone\n1F9D1 1F3FE                                ; fully-qualified     # 🧑🏾 person: medium-dark skin tone\n1F9D1 1F3FF                                ; fully-qualified     # 🧑🏿 person: dark skin tone\n1F471                                      ; fully-qualified     # 👱 person: blond hair\n1F471 1F3FB                                ; fully-qualified     # 👱🏻 person: light skin tone, blond hair\n1F471 1F3FC                                ; fully-qualified     # 👱🏼 person: medium-light skin tone, blond hair\n1F471 1F3FD                                ; fully-qualified     # 👱🏽 person: medium skin tone, blond hair\n1F471 1F3FE                                ; fully-qualified     # 👱🏾 person: medium-dark skin tone, blond hair\n1F471 1F3FF                                ; fully-qualified     # 👱🏿 person: dark skin tone, blond hair\n1F468                                      ; fully-qualified     # 👨 man\n1F468 1F3FB                                ; fully-qualified     # 👨🏻 man: light skin tone\n1F468 1F3FC                                ; fully-qualified     # 👨🏼 man: medium-light skin tone\n1F468 1F3FD                                ; fully-qualified     # 👨🏽 man: medium skin tone\n1F468 1F3FE                                ; fully-qualified     # 👨🏾 man: medium-dark skin tone\n1F468 1F3FF                                ; fully-qualified     # 👨🏿 man: dark skin tone\n1F9D4                                      ; fully-qualified     # 🧔 man: beard\n1F9D4 1F3FB                                ; fully-qualified     # 🧔🏻 man: light skin tone, beard\n1F9D4 1F3FC                                ; fully-qualified     # 🧔🏼 man: medium-light skin tone, beard\n1F9D4 1F3FD                                ; fully-qualified     # 🧔🏽 man: medium skin tone, beard\n1F9D4 1F3FE                                ; fully-qualified     # 🧔🏾 man: medium-dark skin tone, beard\n1F9D4 1F3FF                                ; fully-qualified     # 🧔🏿 man: dark skin tone, beard\n#SUPPORT(prf) 1F471 200D 2642 FE0F                       ; fully-qualified     # 👱‍♂️ man: blond hair\n#SUPPORT(prf) 1F471 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 👱🏻‍♂️ man: light skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 👱🏼‍♂️ man: medium-light skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 👱🏽‍♂️ man: medium skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 👱🏾‍♂️ man: medium-dark skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 👱🏿‍♂️ man: dark skin tone, blond hair\n#SUPPORT(prf) 1F468 200D 1F9B0                           ; fully-qualified     # 👨‍🦰 man: red hair\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9B0                     ; fully-qualified     # 👨🏻‍🦰 man: light skin tone, red hair\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9B0                     ; fully-qualified     # 👨🏼‍🦰 man: medium-light skin tone, red hair\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9B0                     ; fully-qualified     # 👨🏽‍🦰 man: medium skin tone, red hair\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9B0                     ; fully-qualified     # 👨🏾‍🦰 man: medium-dark skin tone, red hair\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9B0                     ; fully-qualified     # 👨🏿‍🦰 man: dark skin tone, red hair\n#SUPPORT(prf) 1F468 200D 1F9B1                           ; fully-qualified     # 👨‍🦱 man: curly hair\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9B1                     ; fully-qualified     # 👨🏻‍🦱 man: light skin tone, curly hair\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9B1                     ; fully-qualified     # 👨🏼‍🦱 man: medium-light skin tone, curly hair\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9B1                     ; fully-qualified     # 👨🏽‍🦱 man: medium skin tone, curly hair\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9B1                     ; fully-qualified     # 👨🏾‍🦱 man: medium-dark skin tone, curly hair\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9B1                     ; fully-qualified     # 👨🏿‍🦱 man: dark skin tone, curly hair\n#SUPPORT(prf) 1F468 200D 1F9B3                           ; fully-qualified     # 👨‍🦳 man: white hair\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9B3                     ; fully-qualified     # 👨🏻‍🦳 man: light skin tone, white hair\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9B3                     ; fully-qualified     # 👨🏼‍🦳 man: medium-light skin tone, white hair\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9B3                     ; fully-qualified     # 👨🏽‍🦳 man: medium skin tone, white hair\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9B3                     ; fully-qualified     # 👨🏾‍🦳 man: medium-dark skin tone, white hair\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9B3                     ; fully-qualified     # 👨🏿‍🦳 man: dark skin tone, white hair\n#SUPPORT(prf) 1F468 200D 1F9B2                           ; fully-qualified     # 👨‍🦲 man: bald\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9B2                     ; fully-qualified     # 👨🏻‍🦲 man: light skin tone, bald\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9B2                     ; fully-qualified     # 👨🏼‍🦲 man: medium-light skin tone, bald\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9B2                     ; fully-qualified     # 👨🏽‍🦲 man: medium skin tone, bald\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9B2                     ; fully-qualified     # 👨🏾‍🦲 man: medium-dark skin tone, bald\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9B2                     ; fully-qualified     # 👨🏿‍🦲 man: dark skin tone, bald\n1F469                                      ; fully-qualified     # 👩 woman\n1F469 1F3FB                                ; fully-qualified     # 👩🏻 woman: light skin tone\n1F469 1F3FC                                ; fully-qualified     # 👩🏼 woman: medium-light skin tone\n1F469 1F3FD                                ; fully-qualified     # 👩🏽 woman: medium skin tone\n1F469 1F3FE                                ; fully-qualified     # 👩🏾 woman: medium-dark skin tone\n1F469 1F3FF                                ; fully-qualified     # 👩🏿 woman: dark skin tone\n#SUPPORT(prf) 1F471 200D 2640 FE0F                       ; fully-qualified     # 👱‍♀️ woman: blond hair\n#SUPPORT(prf) 1F471 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 👱🏻‍♀️ woman: light skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 👱🏼‍♀️ woman: medium-light skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 👱🏽‍♀️ woman: medium skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 👱🏾‍♀️ woman: medium-dark skin tone, blond hair\n#SUPPORT(prf) 1F471 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 👱🏿‍♀️ woman: dark skin tone, blond hair\n#SUPPORT(prf) 1F469 200D 1F9B0                           ; fully-qualified     # 👩‍🦰 woman: red hair\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9B0                     ; fully-qualified     # 👩🏻‍🦰 woman: light skin tone, red hair\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9B0                     ; fully-qualified     # 👩🏼‍🦰 woman: medium-light skin tone, red hair\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9B0                     ; fully-qualified     # 👩🏽‍🦰 woman: medium skin tone, red hair\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9B0                     ; fully-qualified     # 👩🏾‍🦰 woman: medium-dark skin tone, red hair\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9B0                     ; fully-qualified     # 👩🏿‍🦰 woman: dark skin tone, red hair\n#SUPPORT(prf) 1F469 200D 1F9B1                           ; fully-qualified     # 👩‍🦱 woman: curly hair\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9B1                     ; fully-qualified     # 👩🏻‍🦱 woman: light skin tone, curly hair\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9B1                     ; fully-qualified     # 👩🏼‍🦱 woman: medium-light skin tone, curly hair\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9B1                     ; fully-qualified     # 👩🏽‍🦱 woman: medium skin tone, curly hair\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9B1                     ; fully-qualified     # 👩🏾‍🦱 woman: medium-dark skin tone, curly hair\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9B1                     ; fully-qualified     # 👩🏿‍🦱 woman: dark skin tone, curly hair\n#SUPPORT(prf) 1F469 200D 1F9B3                           ; fully-qualified     # 👩‍🦳 woman: white hair\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9B3                     ; fully-qualified     # 👩🏻‍🦳 woman: light skin tone, white hair\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9B3                     ; fully-qualified     # 👩🏼‍🦳 woman: medium-light skin tone, white hair\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9B3                     ; fully-qualified     # 👩🏽‍🦳 woman: medium skin tone, white hair\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9B3                     ; fully-qualified     # 👩🏾‍🦳 woman: medium-dark skin tone, white hair\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9B3                     ; fully-qualified     # 👩🏿‍🦳 woman: dark skin tone, white hair\n#SUPPORT(prf) 1F469 200D 1F9B2                           ; fully-qualified     # 👩‍🦲 woman: bald\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9B2                     ; fully-qualified     # 👩🏻‍🦲 woman: light skin tone, bald\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9B2                     ; fully-qualified     # 👩🏼‍🦲 woman: medium-light skin tone, bald\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9B2                     ; fully-qualified     # 👩🏽‍🦲 woman: medium skin tone, bald\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9B2                     ; fully-qualified     # 👩🏾‍🦲 woman: medium-dark skin tone, bald\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9B2                     ; fully-qualified     # 👩🏿‍🦲 woman: dark skin tone, bald\n1F9D3                                      ; fully-qualified     # 🧓 older person\n1F9D3 1F3FB                                ; fully-qualified     # 🧓🏻 older person: light skin tone\n1F9D3 1F3FC                                ; fully-qualified     # 🧓🏼 older person: medium-light skin tone\n1F9D3 1F3FD                                ; fully-qualified     # 🧓🏽 older person: medium skin tone\n1F9D3 1F3FE                                ; fully-qualified     # 🧓🏾 older person: medium-dark skin tone\n1F9D3 1F3FF                                ; fully-qualified     # 🧓🏿 older person: dark skin tone\n1F474                                      ; fully-qualified     # 👴 old man\n1F474 1F3FB                                ; fully-qualified     # 👴🏻 old man: light skin tone\n1F474 1F3FC                                ; fully-qualified     # 👴🏼 old man: medium-light skin tone\n1F474 1F3FD                                ; fully-qualified     # 👴🏽 old man: medium skin tone\n1F474 1F3FE                                ; fully-qualified     # 👴🏾 old man: medium-dark skin tone\n1F474 1F3FF                                ; fully-qualified     # 👴🏿 old man: dark skin tone\n1F475                                      ; fully-qualified     # 👵 old woman\n1F475 1F3FB                                ; fully-qualified     # 👵🏻 old woman: light skin tone\n1F475 1F3FC                                ; fully-qualified     # 👵🏼 old woman: medium-light skin tone\n1F475 1F3FD                                ; fully-qualified     # 👵🏽 old woman: medium skin tone\n1F475 1F3FE                                ; fully-qualified     # 👵🏾 old woman: medium-dark skin tone\n1F475 1F3FF                                ; fully-qualified     # 👵🏿 old woman: dark skin tone\n\n# subgroup: person-gesture\n1F64D                                      ; fully-qualified     # 🙍 person frowning\n1F64D 1F3FB                                ; fully-qualified     # 🙍🏻 person frowning: light skin tone\n1F64D 1F3FC                                ; fully-qualified     # 🙍🏼 person frowning: medium-light skin tone\n1F64D 1F3FD                                ; fully-qualified     # 🙍🏽 person frowning: medium skin tone\n1F64D 1F3FE                                ; fully-qualified     # 🙍🏾 person frowning: medium-dark skin tone\n1F64D 1F3FF                                ; fully-qualified     # 🙍🏿 person frowning: dark skin tone\n#SUPPORT(prf) 1F64D 200D 2642 FE0F                       ; fully-qualified     # 🙍‍♂️ man frowning\n#SUPPORT(prf) 1F64D 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙍🏻‍♂️ man frowning: light skin tone\n#SUPPORT(prf) 1F64D 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙍🏼‍♂️ man frowning: medium-light skin tone\n#SUPPORT(prf) 1F64D 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙍🏽‍♂️ man frowning: medium skin tone\n#SUPPORT(prf) 1F64D 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙍🏾‍♂️ man frowning: medium-dark skin tone\n#SUPPORT(prf) 1F64D 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙍🏿‍♂️ man frowning: dark skin tone\n#SUPPORT(prf) 1F64D 200D 2640 FE0F                       ; fully-qualified     # 🙍‍♀️ woman frowning\n#SUPPORT(prf) 1F64D 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙍🏻‍♀️ woman frowning: light skin tone\n#SUPPORT(prf) 1F64D 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙍🏼‍♀️ woman frowning: medium-light skin tone\n#SUPPORT(prf) 1F64D 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙍🏽‍♀️ woman frowning: medium skin tone\n#SUPPORT(prf) 1F64D 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙍🏾‍♀️ woman frowning: medium-dark skin tone\n#SUPPORT(prf) 1F64D 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙍🏿‍♀️ woman frowning: dark skin tone\n1F64E                                      ; fully-qualified     # 🙎 person pouting\n1F64E 1F3FB                                ; fully-qualified     # 🙎🏻 person pouting: light skin tone\n1F64E 1F3FC                                ; fully-qualified     # 🙎🏼 person pouting: medium-light skin tone\n1F64E 1F3FD                                ; fully-qualified     # 🙎🏽 person pouting: medium skin tone\n1F64E 1F3FE                                ; fully-qualified     # 🙎🏾 person pouting: medium-dark skin tone\n1F64E 1F3FF                                ; fully-qualified     # 🙎🏿 person pouting: dark skin tone\n#SUPPORT(prf) 1F64E 200D 2642 FE0F                       ; fully-qualified     # 🙎‍♂️ man pouting\n#SUPPORT(prf) 1F64E 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙎🏻‍♂️ man pouting: light skin tone\n#SUPPORT(prf) 1F64E 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙎🏼‍♂️ man pouting: medium-light skin tone\n#SUPPORT(prf) 1F64E 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙎🏽‍♂️ man pouting: medium skin tone\n#SUPPORT(prf) 1F64E 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙎🏾‍♂️ man pouting: medium-dark skin tone\n#SUPPORT(prf) 1F64E 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙎🏿‍♂️ man pouting: dark skin tone\n#SUPPORT(prf) 1F64E 200D 2640 FE0F                       ; fully-qualified     # 🙎‍♀️ woman pouting\n#SUPPORT(prf) 1F64E 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙎🏻‍♀️ woman pouting: light skin tone\n#SUPPORT(prf) 1F64E 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙎🏼‍♀️ woman pouting: medium-light skin tone\n#SUPPORT(prf) 1F64E 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙎🏽‍♀️ woman pouting: medium skin tone\n#SUPPORT(prf) 1F64E 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙎🏾‍♀️ woman pouting: medium-dark skin tone\n#SUPPORT(prf) 1F64E 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙎🏿‍♀️ woman pouting: dark skin tone\n1F645                                      ; fully-qualified     # 🙅 person gesturing NO\n1F645 1F3FB                                ; fully-qualified     # 🙅🏻 person gesturing NO: light skin tone\n1F645 1F3FC                                ; fully-qualified     # 🙅🏼 person gesturing NO: medium-light skin tone\n1F645 1F3FD                                ; fully-qualified     # 🙅🏽 person gesturing NO: medium skin tone\n1F645 1F3FE                                ; fully-qualified     # 🙅🏾 person gesturing NO: medium-dark skin tone\n1F645 1F3FF                                ; fully-qualified     # 🙅🏿 person gesturing NO: dark skin tone\n#SUPPORT(prf) 1F645 200D 2642 FE0F                       ; fully-qualified     # 🙅‍♂️ man gesturing NO\n#SUPPORT(prf) 1F645 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙅🏻‍♂️ man gesturing NO: light skin tone\n#SUPPORT(prf) 1F645 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙅🏼‍♂️ man gesturing NO: medium-light skin tone\n#SUPPORT(prf) 1F645 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙅🏽‍♂️ man gesturing NO: medium skin tone\n#SUPPORT(prf) 1F645 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙅🏾‍♂️ man gesturing NO: medium-dark skin tone\n#SUPPORT(prf) 1F645 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙅🏿‍♂️ man gesturing NO: dark skin tone\n#SUPPORT(prf) 1F645 200D 2640 FE0F                       ; fully-qualified     # 🙅‍♀️ woman gesturing NO\n#SUPPORT(prf) 1F645 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙅🏻‍♀️ woman gesturing NO: light skin tone\n#SUPPORT(prf) 1F645 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙅🏼‍♀️ woman gesturing NO: medium-light skin tone\n#SUPPORT(prf) 1F645 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙅🏽‍♀️ woman gesturing NO: medium skin tone\n#SUPPORT(prf) 1F645 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙅🏾‍♀️ woman gesturing NO: medium-dark skin tone\n#SUPPORT(prf) 1F645 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙅🏿‍♀️ woman gesturing NO: dark skin tone\n1F646                                      ; fully-qualified     # 🙆 person gesturing OK\n1F646 1F3FB                                ; fully-qualified     # 🙆🏻 person gesturing OK: light skin tone\n1F646 1F3FC                                ; fully-qualified     # 🙆🏼 person gesturing OK: medium-light skin tone\n1F646 1F3FD                                ; fully-qualified     # 🙆🏽 person gesturing OK: medium skin tone\n1F646 1F3FE                                ; fully-qualified     # 🙆🏾 person gesturing OK: medium-dark skin tone\n1F646 1F3FF                                ; fully-qualified     # 🙆🏿 person gesturing OK: dark skin tone\n#SUPPORT(prf) 1F646 200D 2642 FE0F                       ; fully-qualified     # 🙆‍♂️ man gesturing OK\n#SUPPORT(prf) 1F646 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙆🏻‍♂️ man gesturing OK: light skin tone\n#SUPPORT(prf) 1F646 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙆🏼‍♂️ man gesturing OK: medium-light skin tone\n#SUPPORT(prf) 1F646 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙆🏽‍♂️ man gesturing OK: medium skin tone\n#SUPPORT(prf) 1F646 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙆🏾‍♂️ man gesturing OK: medium-dark skin tone\n#SUPPORT(prf) 1F646 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙆🏿‍♂️ man gesturing OK: dark skin tone\n#SUPPORT(prf) 1F646 200D 2640 FE0F                       ; fully-qualified     # 🙆‍♀️ woman gesturing OK\n#SUPPORT(prf) 1F646 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙆🏻‍♀️ woman gesturing OK: light skin tone\n#SUPPORT(prf) 1F646 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙆🏼‍♀️ woman gesturing OK: medium-light skin tone\n#SUPPORT(prf) 1F646 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙆🏽‍♀️ woman gesturing OK: medium skin tone\n#SUPPORT(prf) 1F646 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙆🏾‍♀️ woman gesturing OK: medium-dark skin tone\n#SUPPORT(prf) 1F646 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙆🏿‍♀️ woman gesturing OK: dark skin tone\n1F481                                      ; fully-qualified     # 💁 person tipping hand\n1F481 1F3FB                                ; fully-qualified     # 💁🏻 person tipping hand: light skin tone\n1F481 1F3FC                                ; fully-qualified     # 💁🏼 person tipping hand: medium-light skin tone\n1F481 1F3FD                                ; fully-qualified     # 💁🏽 person tipping hand: medium skin tone\n1F481 1F3FE                                ; fully-qualified     # 💁🏾 person tipping hand: medium-dark skin tone\n1F481 1F3FF                                ; fully-qualified     # 💁🏿 person tipping hand: dark skin tone\n#SUPPORT(prf) 1F481 200D 2642 FE0F                       ; fully-qualified     # 💁‍♂️ man tipping hand\n#SUPPORT(prf) 1F481 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 💁🏻‍♂️ man tipping hand: light skin tone\n#SUPPORT(prf) 1F481 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 💁🏼‍♂️ man tipping hand: medium-light skin tone\n#SUPPORT(prf) 1F481 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 💁🏽‍♂️ man tipping hand: medium skin tone\n#SUPPORT(prf) 1F481 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 💁🏾‍♂️ man tipping hand: medium-dark skin tone\n#SUPPORT(prf) 1F481 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 💁🏿‍♂️ man tipping hand: dark skin tone\n#SUPPORT(prf) 1F481 200D 2640 FE0F                       ; fully-qualified     # 💁‍♀️ woman tipping hand\n#SUPPORT(prf) 1F481 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 💁🏻‍♀️ woman tipping hand: light skin tone\n#SUPPORT(prf) 1F481 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 💁🏼‍♀️ woman tipping hand: medium-light skin tone\n#SUPPORT(prf) 1F481 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 💁🏽‍♀️ woman tipping hand: medium skin tone\n#SUPPORT(prf) 1F481 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 💁🏾‍♀️ woman tipping hand: medium-dark skin tone\n#SUPPORT(prf) 1F481 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 💁🏿‍♀️ woman tipping hand: dark skin tone\n1F64B                                      ; fully-qualified     # 🙋 person raising hand\n1F64B 1F3FB                                ; fully-qualified     # 🙋🏻 person raising hand: light skin tone\n1F64B 1F3FC                                ; fully-qualified     # 🙋🏼 person raising hand: medium-light skin tone\n1F64B 1F3FD                                ; fully-qualified     # 🙋🏽 person raising hand: medium skin tone\n1F64B 1F3FE                                ; fully-qualified     # 🙋🏾 person raising hand: medium-dark skin tone\n1F64B 1F3FF                                ; fully-qualified     # 🙋🏿 person raising hand: dark skin tone\n#SUPPORT(prf) 1F64B 200D 2642 FE0F                       ; fully-qualified     # 🙋‍♂️ man raising hand\n#SUPPORT(prf) 1F64B 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙋🏻‍♂️ man raising hand: light skin tone\n#SUPPORT(prf) 1F64B 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙋🏼‍♂️ man raising hand: medium-light skin tone\n#SUPPORT(prf) 1F64B 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙋🏽‍♂️ man raising hand: medium skin tone\n#SUPPORT(prf) 1F64B 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙋🏾‍♂️ man raising hand: medium-dark skin tone\n#SUPPORT(prf) 1F64B 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙋🏿‍♂️ man raising hand: dark skin tone\n#SUPPORT(prf) 1F64B 200D 2640 FE0F                       ; fully-qualified     # 🙋‍♀️ woman raising hand\n#SUPPORT(prf) 1F64B 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙋🏻‍♀️ woman raising hand: light skin tone\n#SUPPORT(prf) 1F64B 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙋🏼‍♀️ woman raising hand: medium-light skin tone\n#SUPPORT(prf) 1F64B 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙋🏽‍♀️ woman raising hand: medium skin tone\n#SUPPORT(prf) 1F64B 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙋🏾‍♀️ woman raising hand: medium-dark skin tone\n#SUPPORT(prf) 1F64B 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙋🏿‍♀️ woman raising hand: dark skin tone\n#SUPPORT(prf) 1F9CF                                      ; fully-qualified     # 🧏 deaf person\n#SUPPORT(prf) 1F9CF 1F3FB                                ; fully-qualified     # 🧏🏻 deaf person: light skin tone\n#SUPPORT(prf) 1F9CF 1F3FC                                ; fully-qualified     # 🧏🏼 deaf person: medium-light skin tone\n#SUPPORT(prf) 1F9CF 1F3FD                                ; fully-qualified     # 🧏🏽 deaf person: medium skin tone\n#SUPPORT(prf) 1F9CF 1F3FE                                ; fully-qualified     # 🧏🏾 deaf person: medium-dark skin tone\n#SUPPORT(prf) 1F9CF 1F3FF                                ; fully-qualified     # 🧏🏿 deaf person: dark skin tone\n#SUPPORT(prf) 1F9CF 200D 2642 FE0F                       ; fully-qualified     # 🧏‍♂️ deaf man\n#SUPPORT(prf) 1F9CF 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧏🏻‍♂️ deaf man: light skin tone\n#SUPPORT(prf) 1F9CF 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧏🏼‍♂️ deaf man: medium-light skin tone\n#SUPPORT(prf) 1F9CF 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧏🏽‍♂️ deaf man: medium skin tone\n#SUPPORT(prf) 1F9CF 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧏🏾‍♂️ deaf man: medium-dark skin tone\n#SUPPORT(prf) 1F9CF 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧏🏿‍♂️ deaf man: dark skin tone\n#SUPPORT(prf) 1F9CF 200D 2640 FE0F                       ; fully-qualified     # 🧏‍♀️ deaf woman\n#SUPPORT(prf) 1F9CF 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧏🏻‍♀️ deaf woman: light skin tone\n#SUPPORT(prf) 1F9CF 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧏🏼‍♀️ deaf woman: medium-light skin tone\n#SUPPORT(prf) 1F9CF 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧏🏽‍♀️ deaf woman: medium skin tone\n#SUPPORT(prf) 1F9CF 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧏🏾‍♀️ deaf woman: medium-dark skin tone\n#SUPPORT(prf) 1F9CF 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧏🏿‍♀️ deaf woman: dark skin tone\n1F647                                      ; fully-qualified     # 🙇 person bowing\n1F647 1F3FB                                ; fully-qualified     # 🙇🏻 person bowing: light skin tone\n1F647 1F3FC                                ; fully-qualified     # 🙇🏼 person bowing: medium-light skin tone\n1F647 1F3FD                                ; fully-qualified     # 🙇🏽 person bowing: medium skin tone\n1F647 1F3FE                                ; fully-qualified     # 🙇🏾 person bowing: medium-dark skin tone\n1F647 1F3FF                                ; fully-qualified     # 🙇🏿 person bowing: dark skin tone\n#SUPPORT(prf) 1F647 200D 2642 FE0F                       ; fully-qualified     # 🙇‍♂️ man bowing\n#SUPPORT(prf) 1F647 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🙇🏻‍♂️ man bowing: light skin tone\n#SUPPORT(prf) 1F647 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🙇🏼‍♂️ man bowing: medium-light skin tone\n#SUPPORT(prf) 1F647 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🙇🏽‍♂️ man bowing: medium skin tone\n#SUPPORT(prf) 1F647 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🙇🏾‍♂️ man bowing: medium-dark skin tone\n#SUPPORT(prf) 1F647 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🙇🏿‍♂️ man bowing: dark skin tone\n#SUPPORT(prf) 1F647 200D 2640 FE0F                       ; fully-qualified     # 🙇‍♀️ woman bowing\n#SUPPORT(prf) 1F647 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🙇🏻‍♀️ woman bowing: light skin tone\n#SUPPORT(prf) 1F647 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🙇🏼‍♀️ woman bowing: medium-light skin tone\n#SUPPORT(prf) 1F647 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🙇🏽‍♀️ woman bowing: medium skin tone\n#SUPPORT(prf) 1F647 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🙇🏾‍♀️ woman bowing: medium-dark skin tone\n#SUPPORT(prf) 1F647 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🙇🏿‍♀️ woman bowing: dark skin tone\n1F926                                      ; fully-qualified     # 🤦 person facepalming\n1F926 1F3FB                                ; fully-qualified     # 🤦🏻 person facepalming: light skin tone\n1F926 1F3FC                                ; fully-qualified     # 🤦🏼 person facepalming: medium-light skin tone\n1F926 1F3FD                                ; fully-qualified     # 🤦🏽 person facepalming: medium skin tone\n1F926 1F3FE                                ; fully-qualified     # 🤦🏾 person facepalming: medium-dark skin tone\n1F926 1F3FF                                ; fully-qualified     # 🤦🏿 person facepalming: dark skin tone\n#SUPPORT(prf) 1F926 200D 2642 FE0F                       ; fully-qualified     # 🤦‍♂️ man facepalming\n#SUPPORT(prf) 1F926 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤦🏻‍♂️ man facepalming: light skin tone\n#SUPPORT(prf) 1F926 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤦🏼‍♂️ man facepalming: medium-light skin tone\n#SUPPORT(prf) 1F926 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤦🏽‍♂️ man facepalming: medium skin tone\n#SUPPORT(prf) 1F926 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤦🏾‍♂️ man facepalming: medium-dark skin tone\n#SUPPORT(prf) 1F926 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤦🏿‍♂️ man facepalming: dark skin tone\n#SUPPORT(prf) 1F926 200D 2640 FE0F                       ; fully-qualified     # 🤦‍♀️ woman facepalming\n#SUPPORT(prf) 1F926 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤦🏻‍♀️ woman facepalming: light skin tone\n#SUPPORT(prf) 1F926 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤦🏼‍♀️ woman facepalming: medium-light skin tone\n#SUPPORT(prf) 1F926 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤦🏽‍♀️ woman facepalming: medium skin tone\n#SUPPORT(prf) 1F926 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤦🏾‍♀️ woman facepalming: medium-dark skin tone\n#SUPPORT(prf) 1F926 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤦🏿‍♀️ woman facepalming: dark skin tone\n1F937                                      ; fully-qualified     # 🤷 person shrugging\n1F937 1F3FB                                ; fully-qualified     # 🤷🏻 person shrugging: light skin tone\n1F937 1F3FC                                ; fully-qualified     # 🤷🏼 person shrugging: medium-light skin tone\n1F937 1F3FD                                ; fully-qualified     # 🤷🏽 person shrugging: medium skin tone\n1F937 1F3FE                                ; fully-qualified     # 🤷🏾 person shrugging: medium-dark skin tone\n1F937 1F3FF                                ; fully-qualified     # 🤷🏿 person shrugging: dark skin tone\n#SUPPORT(prf) 1F937 200D 2642 FE0F                       ; fully-qualified     # 🤷‍♂️ man shrugging\n#SUPPORT(prf) 1F937 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤷🏻‍♂️ man shrugging: light skin tone\n#SUPPORT(prf) 1F937 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤷🏼‍♂️ man shrugging: medium-light skin tone\n#SUPPORT(prf) 1F937 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤷🏽‍♂️ man shrugging: medium skin tone\n#SUPPORT(prf) 1F937 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤷🏾‍♂️ man shrugging: medium-dark skin tone\n#SUPPORT(prf) 1F937 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤷🏿‍♂️ man shrugging: dark skin tone\n#SUPPORT(prf) 1F937 200D 2640 FE0F                       ; fully-qualified     # 🤷‍♀️ woman shrugging\n#SUPPORT(prf) 1F937 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤷🏻‍♀️ woman shrugging: light skin tone\n#SUPPORT(prf) 1F937 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤷🏼‍♀️ woman shrugging: medium-light skin tone\n#SUPPORT(prf) 1F937 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤷🏽‍♀️ woman shrugging: medium skin tone\n#SUPPORT(prf) 1F937 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤷🏾‍♀️ woman shrugging: medium-dark skin tone\n#SUPPORT(prf) 1F937 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤷🏿‍♀️ woman shrugging: dark skin tone\n\n# subgroup: person-role\n1F468 200D 2695 FE0F                       ; fully-qualified     # 👨‍⚕️ man health worker\n1F468 1F3FB 200D 2695 FE0F                 ; fully-qualified     # 👨🏻‍⚕️ man health worker: light skin tone\n1F468 1F3FC 200D 2695 FE0F                 ; fully-qualified     # 👨🏼‍⚕️ man health worker: medium-light skin tone\n1F468 1F3FD 200D 2695 FE0F                 ; fully-qualified     # 👨🏽‍⚕️ man health worker: medium skin tone\n1F468 1F3FE 200D 2695 FE0F                 ; fully-qualified     # 👨🏾‍⚕️ man health worker: medium-dark skin tone\n1F468 1F3FF 200D 2695 FE0F                 ; fully-qualified     # 👨🏿‍⚕️ man health worker: dark skin tone\n1F469 200D 2695 FE0F                       ; fully-qualified     # 👩‍⚕️ woman health worker\n1F469 1F3FB 200D 2695 FE0F                 ; fully-qualified     # 👩🏻‍⚕️ woman health worker: light skin tone\n1F469 1F3FC 200D 2695 FE0F                 ; fully-qualified     # 👩🏼‍⚕️ woman health worker: medium-light skin tone\n1F469 1F3FD 200D 2695 FE0F                 ; fully-qualified     # 👩🏽‍⚕️ woman health worker: medium skin tone\n1F469 1F3FE 200D 2695 FE0F                 ; fully-qualified     # 👩🏾‍⚕️ woman health worker: medium-dark skin tone\n1F469 1F3FF 200D 2695 FE0F                 ; fully-qualified     # 👩🏿‍⚕️ woman health worker: dark skin tone\n1F468 200D 1F393                           ; fully-qualified     # 👨‍🎓 man student\n1F468 1F3FB 200D 1F393                     ; fully-qualified     # 👨🏻‍🎓 man student: light skin tone\n1F468 1F3FC 200D 1F393                     ; fully-qualified     # 👨🏼‍🎓 man student: medium-light skin tone\n1F468 1F3FD 200D 1F393                     ; fully-qualified     # 👨🏽‍🎓 man student: medium skin tone\n1F468 1F3FE 200D 1F393                     ; fully-qualified     # 👨🏾‍🎓 man student: medium-dark skin tone\n1F468 1F3FF 200D 1F393                     ; fully-qualified     # 👨🏿‍🎓 man student: dark skin tone\n1F469 200D 1F393                           ; fully-qualified     # 👩‍🎓 woman student\n1F469 1F3FB 200D 1F393                     ; fully-qualified     # 👩🏻‍🎓 woman student: light skin tone\n1F469 1F3FC 200D 1F393                     ; fully-qualified     # 👩🏼‍🎓 woman student: medium-light skin tone\n1F469 1F3FD 200D 1F393                     ; fully-qualified     # 👩🏽‍🎓 woman student: medium skin tone\n1F469 1F3FE 200D 1F393                     ; fully-qualified     # 👩🏾‍🎓 woman student: medium-dark skin tone\n1F469 1F3FF 200D 1F393                     ; fully-qualified     # 👩🏿‍🎓 woman student: dark skin tone\n1F468 200D 1F3EB                           ; fully-qualified     # 👨‍🏫 man teacher\n1F468 1F3FB 200D 1F3EB                     ; fully-qualified     # 👨🏻‍🏫 man teacher: light skin tone\n1F468 1F3FC 200D 1F3EB                     ; fully-qualified     # 👨🏼‍🏫 man teacher: medium-light skin tone\n1F468 1F3FD 200D 1F3EB                     ; fully-qualified     # 👨🏽‍🏫 man teacher: medium skin tone\n1F468 1F3FE 200D 1F3EB                     ; fully-qualified     # 👨🏾‍🏫 man teacher: medium-dark skin tone\n1F468 1F3FF 200D 1F3EB                     ; fully-qualified     # 👨🏿‍🏫 man teacher: dark skin tone\n1F469 200D 1F3EB                           ; fully-qualified     # 👩‍🏫 woman teacher\n1F469 1F3FB 200D 1F3EB                     ; fully-qualified     # 👩🏻‍🏫 woman teacher: light skin tone\n1F469 1F3FC 200D 1F3EB                     ; fully-qualified     # 👩🏼‍🏫 woman teacher: medium-light skin tone\n1F469 1F3FD 200D 1F3EB                     ; fully-qualified     # 👩🏽‍🏫 woman teacher: medium skin tone\n1F469 1F3FE 200D 1F3EB                     ; fully-qualified     # 👩🏾‍🏫 woman teacher: medium-dark skin tone\n1F469 1F3FF 200D 1F3EB                     ; fully-qualified     # 👩🏿‍🏫 woman teacher: dark skin tone\n1F468 200D 2696 FE0F                       ; fully-qualified     # 👨‍⚖️ man judge\n1F468 1F3FB 200D 2696 FE0F                 ; fully-qualified     # 👨🏻‍⚖️ man judge: light skin tone\n1F468 1F3FC 200D 2696 FE0F                 ; fully-qualified     # 👨🏼‍⚖️ man judge: medium-light skin tone\n1F468 1F3FD 200D 2696 FE0F                 ; fully-qualified     # 👨🏽‍⚖️ man judge: medium skin tone\n1F468 1F3FE 200D 2696 FE0F                 ; fully-qualified     # 👨🏾‍⚖️ man judge: medium-dark skin tone\n1F468 1F3FF 200D 2696 FE0F                 ; fully-qualified     # 👨🏿‍⚖️ man judge: dark skin tone\n1F469 200D 2696 FE0F                       ; fully-qualified     # 👩‍⚖️ woman judge\n1F469 1F3FB 200D 2696 FE0F                 ; fully-qualified     # 👩🏻‍⚖️ woman judge: light skin tone\n1F469 1F3FC 200D 2696 FE0F                 ; fully-qualified     # 👩🏼‍⚖️ woman judge: medium-light skin tone\n1F469 1F3FD 200D 2696 FE0F                 ; fully-qualified     # 👩🏽‍⚖️ woman judge: medium skin tone\n1F469 1F3FE 200D 2696 FE0F                 ; fully-qualified     # 👩🏾‍⚖️ woman judge: medium-dark skin tone\n1F469 1F3FF 200D 2696 FE0F                 ; fully-qualified     # 👩🏿‍⚖️ woman judge: dark skin tone\n1F468 200D 1F33E                           ; fully-qualified     # 👨‍🌾 man farmer\n1F468 1F3FB 200D 1F33E                     ; fully-qualified     # 👨🏻‍🌾 man farmer: light skin tone\n1F468 1F3FC 200D 1F33E                     ; fully-qualified     # 👨🏼‍🌾 man farmer: medium-light skin tone\n1F468 1F3FD 200D 1F33E                     ; fully-qualified     # 👨🏽‍🌾 man farmer: medium skin tone\n1F468 1F3FE 200D 1F33E                     ; fully-qualified     # 👨🏾‍🌾 man farmer: medium-dark skin tone\n1F468 1F3FF 200D 1F33E                     ; fully-qualified     # 👨🏿‍🌾 man farmer: dark skin tone\n1F469 200D 1F33E                           ; fully-qualified     # 👩‍🌾 woman farmer\n1F469 1F3FB 200D 1F33E                     ; fully-qualified     # 👩🏻‍🌾 woman farmer: light skin tone\n1F469 1F3FC 200D 1F33E                     ; fully-qualified     # 👩🏼‍🌾 woman farmer: medium-light skin tone\n1F469 1F3FD 200D 1F33E                     ; fully-qualified     # 👩🏽‍🌾 woman farmer: medium skin tone\n1F469 1F3FE 200D 1F33E                     ; fully-qualified     # 👩🏾‍🌾 woman farmer: medium-dark skin tone\n1F469 1F3FF 200D 1F33E                     ; fully-qualified     # 👩🏿‍🌾 woman farmer: dark skin tone\n1F468 200D 1F373                           ; fully-qualified     # 👨‍🍳 man cook\n1F468 1F3FB 200D 1F373                     ; fully-qualified     # 👨🏻‍🍳 man cook: light skin tone\n1F468 1F3FC 200D 1F373                     ; fully-qualified     # 👨🏼‍🍳 man cook: medium-light skin tone\n1F468 1F3FD 200D 1F373                     ; fully-qualified     # 👨🏽‍🍳 man cook: medium skin tone\n1F468 1F3FE 200D 1F373                     ; fully-qualified     # 👨🏾‍🍳 man cook: medium-dark skin tone\n1F468 1F3FF 200D 1F373                     ; fully-qualified     # 👨🏿‍🍳 man cook: dark skin tone\n1F469 200D 1F373                           ; fully-qualified     # 👩‍🍳 woman cook\n1F469 1F3FB 200D 1F373                     ; fully-qualified     # 👩🏻‍🍳 woman cook: light skin tone\n1F469 1F3FC 200D 1F373                     ; fully-qualified     # 👩🏼‍🍳 woman cook: medium-light skin tone\n1F469 1F3FD 200D 1F373                     ; fully-qualified     # 👩🏽‍🍳 woman cook: medium skin tone\n1F469 1F3FE 200D 1F373                     ; fully-qualified     # 👩🏾‍🍳 woman cook: medium-dark skin tone\n1F469 1F3FF 200D 1F373                     ; fully-qualified     # 👩🏿‍🍳 woman cook: dark skin tone\n1F468 200D 1F527                           ; fully-qualified     # 👨‍🔧 man mechanic\n1F468 1F3FB 200D 1F527                     ; fully-qualified     # 👨🏻‍🔧 man mechanic: light skin tone\n1F468 1F3FC 200D 1F527                     ; fully-qualified     # 👨🏼‍🔧 man mechanic: medium-light skin tone\n1F468 1F3FD 200D 1F527                     ; fully-qualified     # 👨🏽‍🔧 man mechanic: medium skin tone\n1F468 1F3FE 200D 1F527                     ; fully-qualified     # 👨🏾‍🔧 man mechanic: medium-dark skin tone\n1F468 1F3FF 200D 1F527                     ; fully-qualified     # 👨🏿‍🔧 man mechanic: dark skin tone\n1F469 200D 1F527                           ; fully-qualified     # 👩‍🔧 woman mechanic\n1F469 1F3FB 200D 1F527                     ; fully-qualified     # 👩🏻‍🔧 woman mechanic: light skin tone\n1F469 1F3FC 200D 1F527                     ; fully-qualified     # 👩🏼‍🔧 woman mechanic: medium-light skin tone\n1F469 1F3FD 200D 1F527                     ; fully-qualified     # 👩🏽‍🔧 woman mechanic: medium skin tone\n1F469 1F3FE 200D 1F527                     ; fully-qualified     # 👩🏾‍🔧 woman mechanic: medium-dark skin tone\n1F469 1F3FF 200D 1F527                     ; fully-qualified     # 👩🏿‍🔧 woman mechanic: dark skin tone\n1F468 200D 1F3ED                           ; fully-qualified     # 👨‍🏭 man factory worker\n1F468 1F3FB 200D 1F3ED                     ; fully-qualified     # 👨🏻‍🏭 man factory worker: light skin tone\n1F468 1F3FC 200D 1F3ED                     ; fully-qualified     # 👨🏼‍🏭 man factory worker: medium-light skin tone\n1F468 1F3FD 200D 1F3ED                     ; fully-qualified     # 👨🏽‍🏭 man factory worker: medium skin tone\n1F468 1F3FE 200D 1F3ED                     ; fully-qualified     # 👨🏾‍🏭 man factory worker: medium-dark skin tone\n1F468 1F3FF 200D 1F3ED                     ; fully-qualified     # 👨🏿‍🏭 man factory worker: dark skin tone\n1F469 200D 1F3ED                           ; fully-qualified     # 👩‍🏭 woman factory worker\n1F469 1F3FB 200D 1F3ED                     ; fully-qualified     # 👩🏻‍🏭 woman factory worker: light skin tone\n1F469 1F3FC 200D 1F3ED                     ; fully-qualified     # 👩🏼‍🏭 woman factory worker: medium-light skin tone\n1F469 1F3FD 200D 1F3ED                     ; fully-qualified     # 👩🏽‍🏭 woman factory worker: medium skin tone\n1F469 1F3FE 200D 1F3ED                     ; fully-qualified     # 👩🏾‍🏭 woman factory worker: medium-dark skin tone\n1F469 1F3FF 200D 1F3ED                     ; fully-qualified     # 👩🏿‍🏭 woman factory worker: dark skin tone\n1F468 200D 1F4BC                           ; fully-qualified     # 👨‍💼 man office worker\n1F468 1F3FB 200D 1F4BC                     ; fully-qualified     # 👨🏻‍💼 man office worker: light skin tone\n1F468 1F3FC 200D 1F4BC                     ; fully-qualified     # 👨🏼‍💼 man office worker: medium-light skin tone\n1F468 1F3FD 200D 1F4BC                     ; fully-qualified     # 👨🏽‍💼 man office worker: medium skin tone\n1F468 1F3FE 200D 1F4BC                     ; fully-qualified     # 👨🏾‍💼 man office worker: medium-dark skin tone\n1F468 1F3FF 200D 1F4BC                     ; fully-qualified     # 👨🏿‍💼 man office worker: dark skin tone\n1F469 200D 1F4BC                           ; fully-qualified     # 👩‍💼 woman office worker\n1F469 1F3FB 200D 1F4BC                     ; fully-qualified     # 👩🏻‍💼 woman office worker: light skin tone\n1F469 1F3FC 200D 1F4BC                     ; fully-qualified     # 👩🏼‍💼 woman office worker: medium-light skin tone\n1F469 1F3FD 200D 1F4BC                     ; fully-qualified     # 👩🏽‍💼 woman office worker: medium skin tone\n1F469 1F3FE 200D 1F4BC                     ; fully-qualified     # 👩🏾‍💼 woman office worker: medium-dark skin tone\n1F469 1F3FF 200D 1F4BC                     ; fully-qualified     # 👩🏿‍💼 woman office worker: dark skin tone\n1F468 200D 1F52C                           ; fully-qualified     # 👨‍🔬 man scientist\n1F468 1F3FB 200D 1F52C                     ; fully-qualified     # 👨🏻‍🔬 man scientist: light skin tone\n1F468 1F3FC 200D 1F52C                     ; fully-qualified     # 👨🏼‍🔬 man scientist: medium-light skin tone\n1F468 1F3FD 200D 1F52C                     ; fully-qualified     # 👨🏽‍🔬 man scientist: medium skin tone\n1F468 1F3FE 200D 1F52C                     ; fully-qualified     # 👨🏾‍🔬 man scientist: medium-dark skin tone\n1F468 1F3FF 200D 1F52C                     ; fully-qualified     # 👨🏿‍🔬 man scientist: dark skin tone\n1F469 200D 1F52C                           ; fully-qualified     # 👩‍🔬 woman scientist\n1F469 1F3FB 200D 1F52C                     ; fully-qualified     # 👩🏻‍🔬 woman scientist: light skin tone\n1F469 1F3FC 200D 1F52C                     ; fully-qualified     # 👩🏼‍🔬 woman scientist: medium-light skin tone\n1F469 1F3FD 200D 1F52C                     ; fully-qualified     # 👩🏽‍🔬 woman scientist: medium skin tone\n1F469 1F3FE 200D 1F52C                     ; fully-qualified     # 👩🏾‍🔬 woman scientist: medium-dark skin tone\n1F469 1F3FF 200D 1F52C                     ; fully-qualified     # 👩🏿‍🔬 woman scientist: dark skin tone\n1F468 200D 1F4BB                           ; fully-qualified     # 👨‍💻 man technologist\n1F468 1F3FB 200D 1F4BB                     ; fully-qualified     # 👨🏻‍💻 man technologist: light skin tone\n1F468 1F3FC 200D 1F4BB                     ; fully-qualified     # 👨🏼‍💻 man technologist: medium-light skin tone\n1F468 1F3FD 200D 1F4BB                     ; fully-qualified     # 👨🏽‍💻 man technologist: medium skin tone\n1F468 1F3FE 200D 1F4BB                     ; fully-qualified     # 👨🏾‍💻 man technologist: medium-dark skin tone\n1F468 1F3FF 200D 1F4BB                     ; fully-qualified     # 👨🏿‍💻 man technologist: dark skin tone\n1F469 200D 1F4BB                           ; fully-qualified     # 👩‍💻 woman technologist\n1F469 1F3FB 200D 1F4BB                     ; fully-qualified     # 👩🏻‍💻 woman technologist: light skin tone\n1F469 1F3FC 200D 1F4BB                     ; fully-qualified     # 👩🏼‍💻 woman technologist: medium-light skin tone\n1F469 1F3FD 200D 1F4BB                     ; fully-qualified     # 👩🏽‍💻 woman technologist: medium skin tone\n1F469 1F3FE 200D 1F4BB                     ; fully-qualified     # 👩🏾‍💻 woman technologist: medium-dark skin tone\n1F469 1F3FF 200D 1F4BB                     ; fully-qualified     # 👩🏿‍💻 woman technologist: dark skin tone\n1F468 200D 1F3A4                           ; fully-qualified     # 👨‍🎤 man singer\n1F468 1F3FB 200D 1F3A4                     ; fully-qualified     # 👨🏻‍🎤 man singer: light skin tone\n1F468 1F3FC 200D 1F3A4                     ; fully-qualified     # 👨🏼‍🎤 man singer: medium-light skin tone\n1F468 1F3FD 200D 1F3A4                     ; fully-qualified     # 👨🏽‍🎤 man singer: medium skin tone\n1F468 1F3FE 200D 1F3A4                     ; fully-qualified     # 👨🏾‍🎤 man singer: medium-dark skin tone\n1F468 1F3FF 200D 1F3A4                     ; fully-qualified     # 👨🏿‍🎤 man singer: dark skin tone\n1F469 200D 1F3A4                           ; fully-qualified     # 👩‍🎤 woman singer\n1F469 1F3FB 200D 1F3A4                     ; fully-qualified     # 👩🏻‍🎤 woman singer: light skin tone\n1F469 1F3FC 200D 1F3A4                     ; fully-qualified     # 👩🏼‍🎤 woman singer: medium-light skin tone\n1F469 1F3FD 200D 1F3A4                     ; fully-qualified     # 👩🏽‍🎤 woman singer: medium skin tone\n1F469 1F3FE 200D 1F3A4                     ; fully-qualified     # 👩🏾‍🎤 woman singer: medium-dark skin tone\n1F469 1F3FF 200D 1F3A4                     ; fully-qualified     # 👩🏿‍🎤 woman singer: dark skin tone\n1F468 200D 1F3A8                           ; fully-qualified     # 👨‍🎨 man artist\n1F468 1F3FB 200D 1F3A8                     ; fully-qualified     # 👨🏻‍🎨 man artist: light skin tone\n1F468 1F3FC 200D 1F3A8                     ; fully-qualified     # 👨🏼‍🎨 man artist: medium-light skin tone\n1F468 1F3FD 200D 1F3A8                     ; fully-qualified     # 👨🏽‍🎨 man artist: medium skin tone\n1F468 1F3FE 200D 1F3A8                     ; fully-qualified     # 👨🏾‍🎨 man artist: medium-dark skin tone\n1F468 1F3FF 200D 1F3A8                     ; fully-qualified     # 👨🏿‍🎨 man artist: dark skin tone\n1F469 200D 1F3A8                           ; fully-qualified     # 👩‍🎨 woman artist\n1F469 1F3FB 200D 1F3A8                     ; fully-qualified     # 👩🏻‍🎨 woman artist: light skin tone\n1F469 1F3FC 200D 1F3A8                     ; fully-qualified     # 👩🏼‍🎨 woman artist: medium-light skin tone\n1F469 1F3FD 200D 1F3A8                     ; fully-qualified     # 👩🏽‍🎨 woman artist: medium skin tone\n1F469 1F3FE 200D 1F3A8                     ; fully-qualified     # 👩🏾‍🎨 woman artist: medium-dark skin tone\n1F469 1F3FF 200D 1F3A8                     ; fully-qualified     # 👩🏿‍🎨 woman artist: dark skin tone\n1F468 200D 2708 FE0F                       ; fully-qualified     # 👨‍✈️ man pilot\n1F468 1F3FB 200D 2708 FE0F                 ; fully-qualified     # 👨🏻‍✈️ man pilot: light skin tone\n1F468 1F3FC 200D 2708 FE0F                 ; fully-qualified     # 👨🏼‍✈️ man pilot: medium-light skin tone\n1F468 1F3FD 200D 2708 FE0F                 ; fully-qualified     # 👨🏽‍✈️ man pilot: medium skin tone\n1F468 1F3FE 200D 2708 FE0F                 ; fully-qualified     # 👨🏾‍✈️ man pilot: medium-dark skin tone\n1F468 1F3FF 200D 2708 FE0F                 ; fully-qualified     # 👨🏿‍✈️ man pilot: dark skin tone\n1F469 200D 2708 FE0F                       ; fully-qualified     # 👩‍✈️ woman pilot\n1F469 1F3FB 200D 2708 FE0F                 ; fully-qualified     # 👩🏻‍✈️ woman pilot: light skin tone\n1F469 1F3FC 200D 2708 FE0F                 ; fully-qualified     # 👩🏼‍✈️ woman pilot: medium-light skin tone\n1F469 1F3FD 200D 2708 FE0F                 ; fully-qualified     # 👩🏽‍✈️ woman pilot: medium skin tone\n1F469 1F3FE 200D 2708 FE0F                 ; fully-qualified     # 👩🏾‍✈️ woman pilot: medium-dark skin tone\n1F469 1F3FF 200D 2708 FE0F                 ; fully-qualified     # 👩🏿‍✈️ woman pilot: dark skin tone\n1F468 200D 1F680                           ; fully-qualified     # 👨‍🚀 man astronaut\n1F468 1F3FB 200D 1F680                     ; fully-qualified     # 👨🏻‍🚀 man astronaut: light skin tone\n1F468 1F3FC 200D 1F680                     ; fully-qualified     # 👨🏼‍🚀 man astronaut: medium-light skin tone\n1F468 1F3FD 200D 1F680                     ; fully-qualified     # 👨🏽‍🚀 man astronaut: medium skin tone\n1F468 1F3FE 200D 1F680                     ; fully-qualified     # 👨🏾‍🚀 man astronaut: medium-dark skin tone\n1F468 1F3FF 200D 1F680                     ; fully-qualified     # 👨🏿‍🚀 man astronaut: dark skin tone\n1F469 200D 1F680                           ; fully-qualified     # 👩‍🚀 woman astronaut\n1F469 1F3FB 200D 1F680                     ; fully-qualified     # 👩🏻‍🚀 woman astronaut: light skin tone\n1F469 1F3FC 200D 1F680                     ; fully-qualified     # 👩🏼‍🚀 woman astronaut: medium-light skin tone\n1F469 1F3FD 200D 1F680                     ; fully-qualified     # 👩🏽‍🚀 woman astronaut: medium skin tone\n1F469 1F3FE 200D 1F680                     ; fully-qualified     # 👩🏾‍🚀 woman astronaut: medium-dark skin tone\n1F469 1F3FF 200D 1F680                     ; fully-qualified     # 👩🏿‍🚀 woman astronaut: dark skin tone\n1F468 200D 1F692                           ; fully-qualified     # 👨‍🚒 man firefighter\n1F468 1F3FB 200D 1F692                     ; fully-qualified     # 👨🏻‍🚒 man firefighter: light skin tone\n1F468 1F3FC 200D 1F692                     ; fully-qualified     # 👨🏼‍🚒 man firefighter: medium-light skin tone\n1F468 1F3FD 200D 1F692                     ; fully-qualified     # 👨🏽‍🚒 man firefighter: medium skin tone\n1F468 1F3FE 200D 1F692                     ; fully-qualified     # 👨🏾‍🚒 man firefighter: medium-dark skin tone\n1F468 1F3FF 200D 1F692                     ; fully-qualified     # 👨🏿‍🚒 man firefighter: dark skin tone\n1F469 200D 1F692                           ; fully-qualified     # 👩‍🚒 woman firefighter\n1F469 1F3FB 200D 1F692                     ; fully-qualified     # 👩🏻‍🚒 woman firefighter: light skin tone\n1F469 1F3FC 200D 1F692                     ; fully-qualified     # 👩🏼‍🚒 woman firefighter: medium-light skin tone\n1F469 1F3FD 200D 1F692                     ; fully-qualified     # 👩🏽‍🚒 woman firefighter: medium skin tone\n1F469 1F3FE 200D 1F692                     ; fully-qualified     # 👩🏾‍🚒 woman firefighter: medium-dark skin tone\n1F469 1F3FF 200D 1F692                     ; fully-qualified     # 👩🏿‍🚒 woman firefighter: dark skin tone\n1F46E                                      ; fully-qualified     # 👮 police officer\n1F46E 1F3FB                                ; fully-qualified     # 👮🏻 police officer: light skin tone\n1F46E 1F3FC                                ; fully-qualified     # 👮🏼 police officer: medium-light skin tone\n1F46E 1F3FD                                ; fully-qualified     # 👮🏽 police officer: medium skin tone\n1F46E 1F3FE                                ; fully-qualified     # 👮🏾 police officer: medium-dark skin tone\n1F46E 1F3FF                                ; fully-qualified     # 👮🏿 police officer: dark skin tone\n#SUPPORT(prf) 1F46E 200D 2642 FE0F                       ; fully-qualified     # 👮‍♂️ man police officer\n#SUPPORT(prf) 1F46E 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 👮🏻‍♂️ man police officer: light skin tone\n#SUPPORT(prf) 1F46E 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 👮🏼‍♂️ man police officer: medium-light skin tone\n#SUPPORT(prf) 1F46E 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 👮🏽‍♂️ man police officer: medium skin tone\n#SUPPORT(prf) 1F46E 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 👮🏾‍♂️ man police officer: medium-dark skin tone\n#SUPPORT(prf) 1F46E 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 👮🏿‍♂️ man police officer: dark skin tone\n#SUPPORT(prf) 1F46E 200D 2640 FE0F                       ; fully-qualified     # 👮‍♀️ woman police officer\n#SUPPORT(prf) 1F46E 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 👮🏻‍♀️ woman police officer: light skin tone\n#SUPPORT(prf) 1F46E 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 👮🏼‍♀️ woman police officer: medium-light skin tone\n#SUPPORT(prf) 1F46E 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 👮🏽‍♀️ woman police officer: medium skin tone\n#SUPPORT(prf) 1F46E 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 👮🏾‍♀️ woman police officer: medium-dark skin tone\n#SUPPORT(prf) 1F46E 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 👮🏿‍♀️ woman police officer: dark skin tone\n1F575 FE0F                                 ; fully-qualified     # 🕵️ detective\n1F575 1F3FB                                ; fully-qualified     # 🕵🏻 detective: light skin tone\n1F575 1F3FC                                ; fully-qualified     # 🕵🏼 detective: medium-light skin tone\n1F575 1F3FD                                ; fully-qualified     # 🕵🏽 detective: medium skin tone\n1F575 1F3FE                                ; fully-qualified     # 🕵🏾 detective: medium-dark skin tone\n1F575 1F3FF                                ; fully-qualified     # 🕵🏿 detective: dark skin tone\n#SUPPORT(prf) 1F575 FE0F 200D 2642 FE0F                  ; fully-qualified     # 🕵️‍♂️ man detective\n#SUPPORT(prf) 1F575 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🕵🏻‍♂️ man detective: light skin tone\n#SUPPORT(prf) 1F575 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🕵🏼‍♂️ man detective: medium-light skin tone\n#SUPPORT(prf) 1F575 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🕵🏽‍♂️ man detective: medium skin tone\n#SUPPORT(prf) 1F575 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🕵🏾‍♂️ man detective: medium-dark skin tone\n#SUPPORT(prf) 1F575 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🕵🏿‍♂️ man detective: dark skin tone\n#SUPPORT(prf) 1F575 FE0F 200D 2640 FE0F                  ; fully-qualified     # 🕵️‍♀️ woman detective\n#SUPPORT(prf) 1F575 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🕵🏻‍♀️ woman detective: light skin tone\n#SUPPORT(prf) 1F575 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🕵🏼‍♀️ woman detective: medium-light skin tone\n#SUPPORT(prf) 1F575 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🕵🏽‍♀️ woman detective: medium skin tone\n#SUPPORT(prf) 1F575 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🕵🏾‍♀️ woman detective: medium-dark skin tone\n#SUPPORT(prf) 1F575 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🕵🏿‍♀️ woman detective: dark skin tone\n1F482                                      ; fully-qualified     # 💂 guard\n1F482 1F3FB                                ; fully-qualified     # 💂🏻 guard: light skin tone\n1F482 1F3FC                                ; fully-qualified     # 💂🏼 guard: medium-light skin tone\n1F482 1F3FD                                ; fully-qualified     # 💂🏽 guard: medium skin tone\n1F482 1F3FE                                ; fully-qualified     # 💂🏾 guard: medium-dark skin tone\n1F482 1F3FF                                ; fully-qualified     # 💂🏿 guard: dark skin tone\n#SUPPORT(prf) 1F482 200D 2642 FE0F                       ; fully-qualified     # 💂‍♂️ man guard\n#SUPPORT(prf) 1F482 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 💂🏻‍♂️ man guard: light skin tone\n#SUPPORT(prf) 1F482 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 💂🏼‍♂️ man guard: medium-light skin tone\n#SUPPORT(prf) 1F482 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 💂🏽‍♂️ man guard: medium skin tone\n#SUPPORT(prf) 1F482 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 💂🏾‍♂️ man guard: medium-dark skin tone\n#SUPPORT(prf) 1F482 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 💂🏿‍♂️ man guard: dark skin tone\n#SUPPORT(prf) 1F482 200D 2640 FE0F                       ; fully-qualified     # 💂‍♀️ woman guard\n#SUPPORT(prf) 1F482 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 💂🏻‍♀️ woman guard: light skin tone\n#SUPPORT(prf) 1F482 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 💂🏼‍♀️ woman guard: medium-light skin tone\n#SUPPORT(prf) 1F482 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 💂🏽‍♀️ woman guard: medium skin tone\n#SUPPORT(prf) 1F482 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 💂🏾‍♀️ woman guard: medium-dark skin tone\n#SUPPORT(prf) 1F482 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 💂🏿‍♀️ woman guard: dark skin tone\n1F477                                      ; fully-qualified     # 👷 construction worker\n1F477 1F3FB                                ; fully-qualified     # 👷🏻 construction worker: light skin tone\n1F477 1F3FC                                ; fully-qualified     # 👷🏼 construction worker: medium-light skin tone\n1F477 1F3FD                                ; fully-qualified     # 👷🏽 construction worker: medium skin tone\n1F477 1F3FE                                ; fully-qualified     # 👷🏾 construction worker: medium-dark skin tone\n1F477 1F3FF                                ; fully-qualified     # 👷🏿 construction worker: dark skin tone\n#SUPPORT(prf) 1F477 200D 2642 FE0F                       ; fully-qualified     # 👷‍♂️ man construction worker\n#SUPPORT(prf) 1F477 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 👷🏻‍♂️ man construction worker: light skin tone\n#SUPPORT(prf) 1F477 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 👷🏼‍♂️ man construction worker: medium-light skin tone\n#SUPPORT(prf) 1F477 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 👷🏽‍♂️ man construction worker: medium skin tone\n#SUPPORT(prf) 1F477 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 👷🏾‍♂️ man construction worker: medium-dark skin tone\n#SUPPORT(prf) 1F477 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 👷🏿‍♂️ man construction worker: dark skin tone\n#SUPPORT(prf) 1F477 200D 2640 FE0F                       ; fully-qualified     # 👷‍♀️ woman construction worker\n#SUPPORT(prf) 1F477 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 👷🏻‍♀️ woman construction worker: light skin tone\n#SUPPORT(prf) 1F477 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 👷🏼‍♀️ woman construction worker: medium-light skin tone\n#SUPPORT(prf) 1F477 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 👷🏽‍♀️ woman construction worker: medium skin tone\n#SUPPORT(prf) 1F477 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 👷🏾‍♀️ woman construction worker: medium-dark skin tone\n#SUPPORT(prf) 1F477 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 👷🏿‍♀️ woman construction worker: dark skin tone\n1F934                                      ; fully-qualified     # 🤴 prince\n1F934 1F3FB                                ; fully-qualified     # 🤴🏻 prince: light skin tone\n1F934 1F3FC                                ; fully-qualified     # 🤴🏼 prince: medium-light skin tone\n1F934 1F3FD                                ; fully-qualified     # 🤴🏽 prince: medium skin tone\n1F934 1F3FE                                ; fully-qualified     # 🤴🏾 prince: medium-dark skin tone\n1F934 1F3FF                                ; fully-qualified     # 🤴🏿 prince: dark skin tone\n1F478                                      ; fully-qualified     # 👸 princess\n1F478 1F3FB                                ; fully-qualified     # 👸🏻 princess: light skin tone\n1F478 1F3FC                                ; fully-qualified     # 👸🏼 princess: medium-light skin tone\n1F478 1F3FD                                ; fully-qualified     # 👸🏽 princess: medium skin tone\n1F478 1F3FE                                ; fully-qualified     # 👸🏾 princess: medium-dark skin tone\n1F478 1F3FF                                ; fully-qualified     # 👸🏿 princess: dark skin tone\n1F473                                      ; fully-qualified     # 👳 person wearing turban\n1F473 1F3FB                                ; fully-qualified     # 👳🏻 person wearing turban: light skin tone\n1F473 1F3FC                                ; fully-qualified     # 👳🏼 person wearing turban: medium-light skin tone\n1F473 1F3FD                                ; fully-qualified     # 👳🏽 person wearing turban: medium skin tone\n1F473 1F3FE                                ; fully-qualified     # 👳🏾 person wearing turban: medium-dark skin tone\n1F473 1F3FF                                ; fully-qualified     # 👳🏿 person wearing turban: dark skin tone\n#SUPPORT(prf) 1F473 200D 2642 FE0F                       ; fully-qualified     # 👳‍♂️ man wearing turban\n#SUPPORT(prf) 1F473 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 👳🏻‍♂️ man wearing turban: light skin tone\n#SUPPORT(prf) 1F473 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 👳🏼‍♂️ man wearing turban: medium-light skin tone\n#SUPPORT(prf) 1F473 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 👳🏽‍♂️ man wearing turban: medium skin tone\n#SUPPORT(prf) 1F473 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 👳🏾‍♂️ man wearing turban: medium-dark skin tone\n#SUPPORT(prf) 1F473 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 👳🏿‍♂️ man wearing turban: dark skin tone\n#SUPPORT(prf) 1F473 200D 2640 FE0F                       ; fully-qualified     # 👳‍♀️ woman wearing turban\n#SUPPORT(prf) 1F473 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 👳🏻‍♀️ woman wearing turban: light skin tone\n#SUPPORT(prf) 1F473 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 👳🏼‍♀️ woman wearing turban: medium-light skin tone\n#SUPPORT(prf) 1F473 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 👳🏽‍♀️ woman wearing turban: medium skin tone\n#SUPPORT(prf) 1F473 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 👳🏾‍♀️ woman wearing turban: medium-dark skin tone\n#SUPPORT(prf) 1F473 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 👳🏿‍♀️ woman wearing turban: dark skin tone\n1F472                                      ; fully-qualified     # 👲 man with Chinese cap\n1F472 1F3FB                                ; fully-qualified     # 👲🏻 man with Chinese cap: light skin tone\n1F472 1F3FC                                ; fully-qualified     # 👲🏼 man with Chinese cap: medium-light skin tone\n1F472 1F3FD                                ; fully-qualified     # 👲🏽 man with Chinese cap: medium skin tone\n1F472 1F3FE                                ; fully-qualified     # 👲🏾 man with Chinese cap: medium-dark skin tone\n1F472 1F3FF                                ; fully-qualified     # 👲🏿 man with Chinese cap: dark skin tone\n1F9D5                                      ; fully-qualified     # 🧕 woman with headscarf\n1F9D5 1F3FB                                ; fully-qualified     # 🧕🏻 woman with headscarf: light skin tone\n1F9D5 1F3FC                                ; fully-qualified     # 🧕🏼 woman with headscarf: medium-light skin tone\n1F9D5 1F3FD                                ; fully-qualified     # 🧕🏽 woman with headscarf: medium skin tone\n1F9D5 1F3FE                                ; fully-qualified     # 🧕🏾 woman with headscarf: medium-dark skin tone\n1F9D5 1F3FF                                ; fully-qualified     # 🧕🏿 woman with headscarf: dark skin tone\n1F935                                      ; fully-qualified     # 🤵 man in tuxedo\n1F935 1F3FB                                ; fully-qualified     # 🤵🏻 man in tuxedo: light skin tone\n1F935 1F3FC                                ; fully-qualified     # 🤵🏼 man in tuxedo: medium-light skin tone\n1F935 1F3FD                                ; fully-qualified     # 🤵🏽 man in tuxedo: medium skin tone\n1F935 1F3FE                                ; fully-qualified     # 🤵🏾 man in tuxedo: medium-dark skin tone\n1F935 1F3FF                                ; fully-qualified     # 🤵🏿 man in tuxedo: dark skin tone\n1F470                                      ; fully-qualified     # 👰 bride with veil\n1F470 1F3FB                                ; fully-qualified     # 👰🏻 bride with veil: light skin tone\n1F470 1F3FC                                ; fully-qualified     # 👰🏼 bride with veil: medium-light skin tone\n1F470 1F3FD                                ; fully-qualified     # 👰🏽 bride with veil: medium skin tone\n1F470 1F3FE                                ; fully-qualified     # 👰🏾 bride with veil: medium-dark skin tone\n1F470 1F3FF                                ; fully-qualified     # 👰🏿 bride with veil: dark skin tone\n1F930                                      ; fully-qualified     # 🤰 pregnant woman\n1F930 1F3FB                                ; fully-qualified     # 🤰🏻 pregnant woman: light skin tone\n1F930 1F3FC                                ; fully-qualified     # 🤰🏼 pregnant woman: medium-light skin tone\n1F930 1F3FD                                ; fully-qualified     # 🤰🏽 pregnant woman: medium skin tone\n1F930 1F3FE                                ; fully-qualified     # 🤰🏾 pregnant woman: medium-dark skin tone\n1F930 1F3FF                                ; fully-qualified     # 🤰🏿 pregnant woman: dark skin tone\n1F931                                      ; fully-qualified     # 🤱 breast-feeding\n1F931 1F3FB                                ; fully-qualified     # 🤱🏻 breast-feeding: light skin tone\n1F931 1F3FC                                ; fully-qualified     # 🤱🏼 breast-feeding: medium-light skin tone\n1F931 1F3FD                                ; fully-qualified     # 🤱🏽 breast-feeding: medium skin tone\n1F931 1F3FE                                ; fully-qualified     # 🤱🏾 breast-feeding: medium-dark skin tone\n1F931 1F3FF                                ; fully-qualified     # 🤱🏿 breast-feeding: dark skin tone\n\n# subgroup: person-fantasy\n1F47C                                      ; fully-qualified     # 👼 baby angel\n1F47C 1F3FB                                ; fully-qualified     # 👼🏻 baby angel: light skin tone\n1F47C 1F3FC                                ; fully-qualified     # 👼🏼 baby angel: medium-light skin tone\n1F47C 1F3FD                                ; fully-qualified     # 👼🏽 baby angel: medium skin tone\n1F47C 1F3FE                                ; fully-qualified     # 👼🏾 baby angel: medium-dark skin tone\n1F47C 1F3FF                                ; fully-qualified     # 👼🏿 baby angel: dark skin tone\n1F385                                      ; fully-qualified     # 🎅 Santa Claus\n1F385 1F3FB                                ; fully-qualified     # 🎅🏻 Santa Claus: light skin tone\n1F385 1F3FC                                ; fully-qualified     # 🎅🏼 Santa Claus: medium-light skin tone\n1F385 1F3FD                                ; fully-qualified     # 🎅🏽 Santa Claus: medium skin tone\n1F385 1F3FE                                ; fully-qualified     # 🎅🏾 Santa Claus: medium-dark skin tone\n1F385 1F3FF                                ; fully-qualified     # 🎅🏿 Santa Claus: dark skin tone\n1F936                                      ; fully-qualified     # 🤶 Mrs. Claus\n1F936 1F3FB                                ; fully-qualified     # 🤶🏻 Mrs. Claus: light skin tone\n1F936 1F3FC                                ; fully-qualified     # 🤶🏼 Mrs. Claus: medium-light skin tone\n1F936 1F3FD                                ; fully-qualified     # 🤶🏽 Mrs. Claus: medium skin tone\n1F936 1F3FE                                ; fully-qualified     # 🤶🏾 Mrs. Claus: medium-dark skin tone\n1F936 1F3FF                                ; fully-qualified     # 🤶🏿 Mrs. Claus: dark skin tone\n#SUPPORT(prf) 1F9B8                                      ; fully-qualified     # 🦸 superhero\n#SUPPORT(prf) 1F9B8 1F3FB                                ; fully-qualified     # 🦸🏻 superhero: light skin tone\n#SUPPORT(prf) 1F9B8 1F3FC                                ; fully-qualified     # 🦸🏼 superhero: medium-light skin tone\n#SUPPORT(prf) 1F9B8 1F3FD                                ; fully-qualified     # 🦸🏽 superhero: medium skin tone\n#SUPPORT(prf) 1F9B8 1F3FE                                ; fully-qualified     # 🦸🏾 superhero: medium-dark skin tone\n#SUPPORT(prf) 1F9B8 1F3FF                                ; fully-qualified     # 🦸🏿 superhero: dark skin tone\n#SUPPORT(prf) 1F9B8 200D 2642 FE0F                       ; fully-qualified     # 🦸‍♂️ man superhero\n#SUPPORT(prf) 1F9B8 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🦸🏻‍♂️ man superhero: light skin tone\n#SUPPORT(prf) 1F9B8 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🦸🏼‍♂️ man superhero: medium-light skin tone\n#SUPPORT(prf) 1F9B8 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🦸🏽‍♂️ man superhero: medium skin tone\n#SUPPORT(prf) 1F9B8 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🦸🏾‍♂️ man superhero: medium-dark skin tone\n#SUPPORT(prf) 1F9B8 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🦸🏿‍♂️ man superhero: dark skin tone\n#SUPPORT(prf) 1F9B8 200D 2640 FE0F                       ; fully-qualified     # 🦸‍♀️ woman superhero\n#SUPPORT(prf) 1F9B8 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🦸🏻‍♀️ woman superhero: light skin tone\n#SUPPORT(prf) 1F9B8 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🦸🏼‍♀️ woman superhero: medium-light skin tone\n#SUPPORT(prf) 1F9B8 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🦸🏽‍♀️ woman superhero: medium skin tone\n#SUPPORT(prf) 1F9B8 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🦸🏾‍♀️ woman superhero: medium-dark skin tone\n#SUPPORT(prf) 1F9B8 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🦸🏿‍♀️ woman superhero: dark skin tone\n#SUPPORT(prf) 1F9B9                                      ; fully-qualified     # 🦹 supervillain\n#SUPPORT(prf) 1F9B9 1F3FB                                ; fully-qualified     # 🦹🏻 supervillain: light skin tone\n#SUPPORT(prf) 1F9B9 1F3FC                                ; fully-qualified     # 🦹🏼 supervillain: medium-light skin tone\n#SUPPORT(prf) 1F9B9 1F3FD                                ; fully-qualified     # 🦹🏽 supervillain: medium skin tone\n#SUPPORT(prf) 1F9B9 1F3FE                                ; fully-qualified     # 🦹🏾 supervillain: medium-dark skin tone\n#SUPPORT(prf) 1F9B9 1F3FF                                ; fully-qualified     # 🦹🏿 supervillain: dark skin tone\n#SUPPORT(prf) 1F9B9 200D 2642 FE0F                       ; fully-qualified     # 🦹‍♂️ man supervillain\n#SUPPORT(prf) 1F9B9 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🦹🏻‍♂️ man supervillain: light skin tone\n#SUPPORT(prf) 1F9B9 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🦹🏼‍♂️ man supervillain: medium-light skin tone\n#SUPPORT(prf) 1F9B9 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🦹🏽‍♂️ man supervillain: medium skin tone\n#SUPPORT(prf) 1F9B9 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🦹🏾‍♂️ man supervillain: medium-dark skin tone\n#SUPPORT(prf) 1F9B9 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🦹🏿‍♂️ man supervillain: dark skin tone\n#SUPPORT(prf) 1F9B9 200D 2640 FE0F                       ; fully-qualified     # 🦹‍♀️ woman supervillain\n#SUPPORT(prf) 1F9B9 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🦹🏻‍♀️ woman supervillain: light skin tone\n#SUPPORT(prf) 1F9B9 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🦹🏼‍♀️ woman supervillain: medium-light skin tone\n#SUPPORT(prf) 1F9B9 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🦹🏽‍♀️ woman supervillain: medium skin tone\n#SUPPORT(prf) 1F9B9 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🦹🏾‍♀️ woman supervillain: medium-dark skin tone\n#SUPPORT(prf) 1F9B9 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🦹🏿‍♀️ woman supervillain: dark skin tone\n1F9D9                                      ; fully-qualified     # 🧙 mage\n1F9D9 1F3FB                                ; fully-qualified     # 🧙🏻 mage: light skin tone\n1F9D9 1F3FC                                ; fully-qualified     # 🧙🏼 mage: medium-light skin tone\n1F9D9 1F3FD                                ; fully-qualified     # 🧙🏽 mage: medium skin tone\n1F9D9 1F3FE                                ; fully-qualified     # 🧙🏾 mage: medium-dark skin tone\n1F9D9 1F3FF                                ; fully-qualified     # 🧙🏿 mage: dark skin tone\n#SUPPORT(prf) 1F9D9 200D 2642 FE0F                       ; fully-qualified     # 🧙‍♂️ man mage\n#SUPPORT(prf) 1F9D9 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧙🏻‍♂️ man mage: light skin tone\n#SUPPORT(prf) 1F9D9 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧙🏼‍♂️ man mage: medium-light skin tone\n#SUPPORT(prf) 1F9D9 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧙🏽‍♂️ man mage: medium skin tone\n#SUPPORT(prf) 1F9D9 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧙🏾‍♂️ man mage: medium-dark skin tone\n#SUPPORT(prf) 1F9D9 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧙🏿‍♂️ man mage: dark skin tone\n#SUPPORT(prf) 1F9D9 200D 2640 FE0F                       ; fully-qualified     # 🧙‍♀️ woman mage\n#SUPPORT(prf) 1F9D9 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧙🏻‍♀️ woman mage: light skin tone\n#SUPPORT(prf) 1F9D9 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧙🏼‍♀️ woman mage: medium-light skin tone\n#SUPPORT(prf) 1F9D9 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧙🏽‍♀️ woman mage: medium skin tone\n#SUPPORT(prf) 1F9D9 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧙🏾‍♀️ woman mage: medium-dark skin tone\n#SUPPORT(prf) 1F9D9 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧙🏿‍♀️ woman mage: dark skin tone\n1F9DA                                      ; fully-qualified     # 🧚 fairy\n1F9DA 1F3FB                                ; fully-qualified     # 🧚🏻 fairy: light skin tone\n1F9DA 1F3FC                                ; fully-qualified     # 🧚🏼 fairy: medium-light skin tone\n1F9DA 1F3FD                                ; fully-qualified     # 🧚🏽 fairy: medium skin tone\n1F9DA 1F3FE                                ; fully-qualified     # 🧚🏾 fairy: medium-dark skin tone\n1F9DA 1F3FF                                ; fully-qualified     # 🧚🏿 fairy: dark skin tone\n#SUPPORT(prf) 1F9DA 200D 2642 FE0F                       ; fully-qualified     # 🧚‍♂️ man fairy\n#SUPPORT(prf) 1F9DA 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧚🏻‍♂️ man fairy: light skin tone\n#SUPPORT(prf) 1F9DA 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧚🏼‍♂️ man fairy: medium-light skin tone\n#SUPPORT(prf) 1F9DA 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧚🏽‍♂️ man fairy: medium skin tone\n#SUPPORT(prf) 1F9DA 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧚🏾‍♂️ man fairy: medium-dark skin tone\n#SUPPORT(prf) 1F9DA 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧚🏿‍♂️ man fairy: dark skin tone\n#SUPPORT(prf) 1F9DA 200D 2640 FE0F                       ; fully-qualified     # 🧚‍♀️ woman fairy\n#SUPPORT(prf) 1F9DA 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧚🏻‍♀️ woman fairy: light skin tone\n#SUPPORT(prf) 1F9DA 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧚🏼‍♀️ woman fairy: medium-light skin tone\n#SUPPORT(prf) 1F9DA 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧚🏽‍♀️ woman fairy: medium skin tone\n#SUPPORT(prf) 1F9DA 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧚🏾‍♀️ woman fairy: medium-dark skin tone\n#SUPPORT(prf) 1F9DA 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧚🏿‍♀️ woman fairy: dark skin tone\n1F9DB                                      ; fully-qualified     # 🧛 vampire\n1F9DB 1F3FB                                ; fully-qualified     # 🧛🏻 vampire: light skin tone\n1F9DB 1F3FC                                ; fully-qualified     # 🧛🏼 vampire: medium-light skin tone\n1F9DB 1F3FD                                ; fully-qualified     # 🧛🏽 vampire: medium skin tone\n1F9DB 1F3FE                                ; fully-qualified     # 🧛🏾 vampire: medium-dark skin tone\n1F9DB 1F3FF                                ; fully-qualified     # 🧛🏿 vampire: dark skin tone\n#SUPPORT(prf) 1F9DB 200D 2642 FE0F                       ; fully-qualified     # 🧛‍♂️ man vampire\n#SUPPORT(prf) 1F9DB 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧛🏻‍♂️ man vampire: light skin tone\n#SUPPORT(prf) 1F9DB 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧛🏼‍♂️ man vampire: medium-light skin tone\n#SUPPORT(prf) 1F9DB 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧛🏽‍♂️ man vampire: medium skin tone\n#SUPPORT(prf) 1F9DB 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧛🏾‍♂️ man vampire: medium-dark skin tone\n#SUPPORT(prf) 1F9DB 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧛🏿‍♂️ man vampire: dark skin tone\n#SUPPORT(prf) 1F9DB 200D 2640 FE0F                       ; fully-qualified     # 🧛‍♀️ woman vampire\n#SUPPORT(prf) 1F9DB 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧛🏻‍♀️ woman vampire: light skin tone\n#SUPPORT(prf) 1F9DB 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧛🏼‍♀️ woman vampire: medium-light skin tone\n#SUPPORT(prf) 1F9DB 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧛🏽‍♀️ woman vampire: medium skin tone\n#SUPPORT(prf) 1F9DB 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧛🏾‍♀️ woman vampire: medium-dark skin tone\n#SUPPORT(prf) 1F9DB 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧛🏿‍♀️ woman vampire: dark skin tone\n1F9DC                                      ; fully-qualified     # 🧜 merperson\n1F9DC 1F3FB                                ; fully-qualified     # 🧜🏻 merperson: light skin tone\n1F9DC 1F3FC                                ; fully-qualified     # 🧜🏼 merperson: medium-light skin tone\n1F9DC 1F3FD                                ; fully-qualified     # 🧜🏽 merperson: medium skin tone\n1F9DC 1F3FE                                ; fully-qualified     # 🧜🏾 merperson: medium-dark skin tone\n1F9DC 1F3FF                                ; fully-qualified     # 🧜🏿 merperson: dark skin tone\n#SUPPORT(prf) 1F9DC 200D 2642 FE0F                       ; fully-qualified     # 🧜‍♂️ merman\n#SUPPORT(prf) 1F9DC 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧜🏻‍♂️ merman: light skin tone\n#SUPPORT(prf) 1F9DC 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧜🏼‍♂️ merman: medium-light skin tone\n#SUPPORT(prf) 1F9DC 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧜🏽‍♂️ merman: medium skin tone\n#SUPPORT(prf) 1F9DC 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧜🏾‍♂️ merman: medium-dark skin tone\n#SUPPORT(prf) 1F9DC 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧜🏿‍♂️ merman: dark skin tone\n#SUPPORT(prf) 1F9DC 200D 2640 FE0F                       ; fully-qualified     # 🧜‍♀️ mermaid\n#SUPPORT(prf) 1F9DC 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧜🏻‍♀️ mermaid: light skin tone\n#SUPPORT(prf) 1F9DC 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧜🏼‍♀️ mermaid: medium-light skin tone\n#SUPPORT(prf) 1F9DC 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧜🏽‍♀️ mermaid: medium skin tone\n#SUPPORT(prf) 1F9DC 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧜🏾‍♀️ mermaid: medium-dark skin tone\n#SUPPORT(prf) 1F9DC 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧜🏿‍♀️ mermaid: dark skin tone\n1F9DD                                      ; fully-qualified     # 🧝 elf\n1F9DD 1F3FB                                ; fully-qualified     # 🧝🏻 elf: light skin tone\n1F9DD 1F3FC                                ; fully-qualified     # 🧝🏼 elf: medium-light skin tone\n1F9DD 1F3FD                                ; fully-qualified     # 🧝🏽 elf: medium skin tone\n1F9DD 1F3FE                                ; fully-qualified     # 🧝🏾 elf: medium-dark skin tone\n1F9DD 1F3FF                                ; fully-qualified     # 🧝🏿 elf: dark skin tone\n#SUPPORT(prf) 1F9DD 200D 2642 FE0F                       ; fully-qualified     # 🧝‍♂️ man elf\n#SUPPORT(prf) 1F9DD 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧝🏻‍♂️ man elf: light skin tone\n#SUPPORT(prf) 1F9DD 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧝🏼‍♂️ man elf: medium-light skin tone\n#SUPPORT(prf) 1F9DD 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧝🏽‍♂️ man elf: medium skin tone\n#SUPPORT(prf) 1F9DD 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧝🏾‍♂️ man elf: medium-dark skin tone\n#SUPPORT(prf) 1F9DD 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧝🏿‍♂️ man elf: dark skin tone\n#SUPPORT(prf) 1F9DD 200D 2640 FE0F                       ; fully-qualified     # 🧝‍♀️ woman elf\n#SUPPORT(prf) 1F9DD 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧝🏻‍♀️ woman elf: light skin tone\n#SUPPORT(prf) 1F9DD 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧝🏼‍♀️ woman elf: medium-light skin tone\n#SUPPORT(prf) 1F9DD 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧝🏽‍♀️ woman elf: medium skin tone\n#SUPPORT(prf) 1F9DD 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧝🏾‍♀️ woman elf: medium-dark skin tone\n#SUPPORT(prf) 1F9DD 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧝🏿‍♀️ woman elf: dark skin tone\n1F9DE                                      ; fully-qualified     # 🧞 genie\n#SUPPORT(prf) 1F9DE 200D 2642 FE0F                       ; fully-qualified     # 🧞‍♂️ man genie\n#SUPPORT(prf) 1F9DE 200D 2640 FE0F                       ; fully-qualified     # 🧞‍♀️ woman genie\n1F9DF                                      ; fully-qualified     # 🧟 zombie\n#SUPPORT(prf) 1F9DF 200D 2642 FE0F                       ; fully-qualified     # 🧟‍♂️ man zombie\n#SUPPORT(prf) 1F9DF 200D 2640 FE0F                       ; fully-qualified     # 🧟‍♀️ woman zombie\n\n# subgroup: person-activity\n1F486                                      ; fully-qualified     # 💆 person getting massage\n1F486 1F3FB                                ; fully-qualified     # 💆🏻 person getting massage: light skin tone\n1F486 1F3FC                                ; fully-qualified     # 💆🏼 person getting massage: medium-light skin tone\n1F486 1F3FD                                ; fully-qualified     # 💆🏽 person getting massage: medium skin tone\n1F486 1F3FE                                ; fully-qualified     # 💆🏾 person getting massage: medium-dark skin tone\n1F486 1F3FF                                ; fully-qualified     # 💆🏿 person getting massage: dark skin tone\n#SUPPORT(prf) 1F486 200D 2642 FE0F                       ; fully-qualified     # 💆‍♂️ man getting massage\n#SUPPORT(prf) 1F486 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 💆🏻‍♂️ man getting massage: light skin tone\n#SUPPORT(prf) 1F486 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 💆🏼‍♂️ man getting massage: medium-light skin tone\n#SUPPORT(prf) 1F486 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 💆🏽‍♂️ man getting massage: medium skin tone\n#SUPPORT(prf) 1F486 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 💆🏾‍♂️ man getting massage: medium-dark skin tone\n#SUPPORT(prf) 1F486 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 💆🏿‍♂️ man getting massage: dark skin tone\n#SUPPORT(prf) 1F486 200D 2640 FE0F                       ; fully-qualified     # 💆‍♀️ woman getting massage\n#SUPPORT(prf) 1F486 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 💆🏻‍♀️ woman getting massage: light skin tone\n#SUPPORT(prf) 1F486 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 💆🏼‍♀️ woman getting massage: medium-light skin tone\n#SUPPORT(prf) 1F486 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 💆🏽‍♀️ woman getting massage: medium skin tone\n#SUPPORT(prf) 1F486 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 💆🏾‍♀️ woman getting massage: medium-dark skin tone\n#SUPPORT(prf) 1F486 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 💆🏿‍♀️ woman getting massage: dark skin tone\n1F487                                      ; fully-qualified     # 💇 person getting haircut\n1F487 1F3FB                                ; fully-qualified     # 💇🏻 person getting haircut: light skin tone\n1F487 1F3FC                                ; fully-qualified     # 💇🏼 person getting haircut: medium-light skin tone\n1F487 1F3FD                                ; fully-qualified     # 💇🏽 person getting haircut: medium skin tone\n1F487 1F3FE                                ; fully-qualified     # 💇🏾 person getting haircut: medium-dark skin tone\n1F487 1F3FF                                ; fully-qualified     # 💇🏿 person getting haircut: dark skin tone\n#SUPPORT(prf) 1F487 200D 2642 FE0F                       ; fully-qualified     # 💇‍♂️ man getting haircut\n#SUPPORT(prf) 1F487 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 💇🏻‍♂️ man getting haircut: light skin tone\n#SUPPORT(prf) 1F487 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 💇🏼‍♂️ man getting haircut: medium-light skin tone\n#SUPPORT(prf) 1F487 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 💇🏽‍♂️ man getting haircut: medium skin tone\n#SUPPORT(prf) 1F487 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 💇🏾‍♂️ man getting haircut: medium-dark skin tone\n#SUPPORT(prf) 1F487 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 💇🏿‍♂️ man getting haircut: dark skin tone\n#SUPPORT(prf) 1F487 200D 2640 FE0F                       ; fully-qualified     # 💇‍♀️ woman getting haircut\n#SUPPORT(prf) 1F487 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 💇🏻‍♀️ woman getting haircut: light skin tone\n#SUPPORT(prf) 1F487 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 💇🏼‍♀️ woman getting haircut: medium-light skin tone\n#SUPPORT(prf) 1F487 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 💇🏽‍♀️ woman getting haircut: medium skin tone\n#SUPPORT(prf) 1F487 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 💇🏾‍♀️ woman getting haircut: medium-dark skin tone\n#SUPPORT(prf) 1F487 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 💇🏿‍♀️ woman getting haircut: dark skin tone\n1F6B6                                      ; fully-qualified     # 🚶 person walking\n1F6B6 1F3FB                                ; fully-qualified     # 🚶🏻 person walking: light skin tone\n1F6B6 1F3FC                                ; fully-qualified     # 🚶🏼 person walking: medium-light skin tone\n1F6B6 1F3FD                                ; fully-qualified     # 🚶🏽 person walking: medium skin tone\n1F6B6 1F3FE                                ; fully-qualified     # 🚶🏾 person walking: medium-dark skin tone\n1F6B6 1F3FF                                ; fully-qualified     # 🚶🏿 person walking: dark skin tone\n#SUPPORT(prf) 1F6B6 200D 2642 FE0F                       ; fully-qualified     # 🚶‍♂️ man walking\n#SUPPORT(prf) 1F6B6 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🚶🏻‍♂️ man walking: light skin tone\n#SUPPORT(prf) 1F6B6 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🚶🏼‍♂️ man walking: medium-light skin tone\n#SUPPORT(prf) 1F6B6 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🚶🏽‍♂️ man walking: medium skin tone\n#SUPPORT(prf) 1F6B6 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🚶🏾‍♂️ man walking: medium-dark skin tone\n#SUPPORT(prf) 1F6B6 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🚶🏿‍♂️ man walking: dark skin tone\n#SUPPORT(prf) 1F6B6 200D 2640 FE0F                       ; fully-qualified     # 🚶‍♀️ woman walking\n#SUPPORT(prf) 1F6B6 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🚶🏻‍♀️ woman walking: light skin tone\n#SUPPORT(prf) 1F6B6 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🚶🏼‍♀️ woman walking: medium-light skin tone\n#SUPPORT(prf) 1F6B6 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🚶🏽‍♀️ woman walking: medium skin tone\n#SUPPORT(prf) 1F6B6 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🚶🏾‍♀️ woman walking: medium-dark skin tone\n#SUPPORT(prf) 1F6B6 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🚶🏿‍♀️ woman walking: dark skin tone\n#SUPPORT(prf) 1F9CD                                      ; fully-qualified     # 🧍 person standing\n#SUPPORT(prf) 1F9CD 1F3FB                                ; fully-qualified     # 🧍🏻 person standing: light skin tone\n#SUPPORT(prf) 1F9CD 1F3FC                                ; fully-qualified     # 🧍🏼 person standing: medium-light skin tone\n#SUPPORT(prf) 1F9CD 1F3FD                                ; fully-qualified     # 🧍🏽 person standing: medium skin tone\n#SUPPORT(prf) 1F9CD 1F3FE                                ; fully-qualified     # 🧍🏾 person standing: medium-dark skin tone\n#SUPPORT(prf) 1F9CD 1F3FF                                ; fully-qualified     # 🧍🏿 person standing: dark skin tone\n#SUPPORT(prf) 1F9CD 200D 2642 FE0F                       ; fully-qualified     # 🧍‍♂️ man standing\n#SUPPORT(prf) 1F9CD 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧍🏻‍♂️ man standing: light skin tone\n#SUPPORT(prf) 1F9CD 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧍🏼‍♂️ man standing: medium-light skin tone\n#SUPPORT(prf) 1F9CD 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧍🏽‍♂️ man standing: medium skin tone\n#SUPPORT(prf) 1F9CD 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧍🏾‍♂️ man standing: medium-dark skin tone\n#SUPPORT(prf) 1F9CD 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧍🏿‍♂️ man standing: dark skin tone\n#SUPPORT(prf) 1F9CD 200D 2640 FE0F                       ; fully-qualified     # 🧍‍♀️ woman standing\n#SUPPORT(prf) 1F9CD 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧍🏻‍♀️ woman standing: light skin tone\n#SUPPORT(prf) 1F9CD 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧍🏼‍♀️ woman standing: medium-light skin tone\n#SUPPORT(prf) 1F9CD 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧍🏽‍♀️ woman standing: medium skin tone\n#SUPPORT(prf) 1F9CD 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧍🏾‍♀️ woman standing: medium-dark skin tone\n#SUPPORT(prf) 1F9CD 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧍🏿‍♀️ woman standing: dark skin tone\n#SUPPORT(prf) 1F9CE                                      ; fully-qualified     # 🧎 person kneeling\n#SUPPORT(prf) 1F9CE 1F3FB                                ; fully-qualified     # 🧎🏻 person kneeling: light skin tone\n#SUPPORT(prf) 1F9CE 1F3FC                                ; fully-qualified     # 🧎🏼 person kneeling: medium-light skin tone\n#SUPPORT(prf) 1F9CE 1F3FD                                ; fully-qualified     # 🧎🏽 person kneeling: medium skin tone\n#SUPPORT(prf) 1F9CE 1F3FE                                ; fully-qualified     # 🧎🏾 person kneeling: medium-dark skin tone\n#SUPPORT(prf) 1F9CE 1F3FF                                ; fully-qualified     # 🧎🏿 person kneeling: dark skin tone\n#SUPPORT(prf) 1F9CE 200D 2642 FE0F                       ; fully-qualified     # 🧎‍♂️ man kneeling\n#SUPPORT(prf) 1F9CE 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧎🏻‍♂️ man kneeling: light skin tone\n#SUPPORT(prf) 1F9CE 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧎🏼‍♂️ man kneeling: medium-light skin tone\n#SUPPORT(prf) 1F9CE 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧎🏽‍♂️ man kneeling: medium skin tone\n#SUPPORT(prf) 1F9CE 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧎🏾‍♂️ man kneeling: medium-dark skin tone\n#SUPPORT(prf) 1F9CE 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧎🏿‍♂️ man kneeling: dark skin tone\n#SUPPORT(prf) 1F9CE 200D 2640 FE0F                       ; fully-qualified     # 🧎‍♀️ woman kneeling\n#SUPPORT(prf) 1F9CE 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧎🏻‍♀️ woman kneeling: light skin tone\n#SUPPORT(prf) 1F9CE 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧎🏼‍♀️ woman kneeling: medium-light skin tone\n#SUPPORT(prf) 1F9CE 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧎🏽‍♀️ woman kneeling: medium skin tone\n#SUPPORT(prf) 1F9CE 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧎🏾‍♀️ woman kneeling: medium-dark skin tone\n#SUPPORT(prf) 1F9CE 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧎🏿‍♀️ woman kneeling: dark skin tone\n#SUPPORT(prf) 1F468 200D 1F9AF                           ; fully-qualified     # 👨‍🦯 man with probing cane\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9AF                     ; fully-qualified     # 👨🏻‍🦯 man with probing cane: light skin tone\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9AF                     ; fully-qualified     # 👨🏼‍🦯 man with probing cane: medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9AF                     ; fully-qualified     # 👨🏽‍🦯 man with probing cane: medium skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9AF                     ; fully-qualified     # 👨🏾‍🦯 man with probing cane: medium-dark skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9AF                     ; fully-qualified     # 👨🏿‍🦯 man with probing cane: dark skin tone\n#SUPPORT(prf) 1F469 200D 1F9AF                           ; fully-qualified     # 👩‍🦯 woman with probing cane\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9AF                     ; fully-qualified     # 👩🏻‍🦯 woman with probing cane: light skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9AF                     ; fully-qualified     # 👩🏼‍🦯 woman with probing cane: medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9AF                     ; fully-qualified     # 👩🏽‍🦯 woman with probing cane: medium skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9AF                     ; fully-qualified     # 👩🏾‍🦯 woman with probing cane: medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9AF                     ; fully-qualified     # 👩🏿‍🦯 woman with probing cane: dark skin tone\n#SUPPORT(prf) 1F468 200D 1F9BC                           ; fully-qualified     # 👨‍🦼 man in motorized wheelchair\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9BC                     ; fully-qualified     # 👨🏻‍🦼 man in motorized wheelchair: light skin tone\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9BC                     ; fully-qualified     # 👨🏼‍🦼 man in motorized wheelchair: medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9BC                     ; fully-qualified     # 👨🏽‍🦼 man in motorized wheelchair: medium skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9BC                     ; fully-qualified     # 👨🏾‍🦼 man in motorized wheelchair: medium-dark skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9BC                     ; fully-qualified     # 👨🏿‍🦼 man in motorized wheelchair: dark skin tone\n#SUPPORT(prf) 1F469 200D 1F9BC                           ; fully-qualified     # 👩‍🦼 woman in motorized wheelchair\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9BC                     ; fully-qualified     # 👩🏻‍🦼 woman in motorized wheelchair: light skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9BC                     ; fully-qualified     # 👩🏼‍🦼 woman in motorized wheelchair: medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9BC                     ; fully-qualified     # 👩🏽‍🦼 woman in motorized wheelchair: medium skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9BC                     ; fully-qualified     # 👩🏾‍🦼 woman in motorized wheelchair: medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9BC                     ; fully-qualified     # 👩🏿‍🦼 woman in motorized wheelchair: dark skin tone\n#SUPPORT(prf) 1F468 200D 1F9BD                           ; fully-qualified     # 👨‍🦽 man in manual wheelchair\n#SUPPORT(prf) 1F468 1F3FB 200D 1F9BD                     ; fully-qualified     # 👨🏻‍🦽 man in manual wheelchair: light skin tone\n#SUPPORT(prf) 1F468 1F3FC 200D 1F9BD                     ; fully-qualified     # 👨🏼‍🦽 man in manual wheelchair: medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FD 200D 1F9BD                     ; fully-qualified     # 👨🏽‍🦽 man in manual wheelchair: medium skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F9BD                     ; fully-qualified     # 👨🏾‍🦽 man in manual wheelchair: medium-dark skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F9BD                     ; fully-qualified     # 👨🏿‍🦽 man in manual wheelchair: dark skin tone\n#SUPPORT(prf) 1F469 200D 1F9BD                           ; fully-qualified     # 👩‍🦽 woman in manual wheelchair\n#SUPPORT(prf) 1F469 1F3FB 200D 1F9BD                     ; fully-qualified     # 👩🏻‍🦽 woman in manual wheelchair: light skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F9BD                     ; fully-qualified     # 👩🏼‍🦽 woman in manual wheelchair: medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F9BD                     ; fully-qualified     # 👩🏽‍🦽 woman in manual wheelchair: medium skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F9BD                     ; fully-qualified     # 👩🏾‍🦽 woman in manual wheelchair: medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F9BD                     ; fully-qualified     # 👩🏿‍🦽 woman in manual wheelchair: dark skin tone\n1F3C3                                      ; fully-qualified     # 🏃 person running\n1F3C3 1F3FB                                ; fully-qualified     # 🏃🏻 person running: light skin tone\n1F3C3 1F3FC                                ; fully-qualified     # 🏃🏼 person running: medium-light skin tone\n1F3C3 1F3FD                                ; fully-qualified     # 🏃🏽 person running: medium skin tone\n1F3C3 1F3FE                                ; fully-qualified     # 🏃🏾 person running: medium-dark skin tone\n1F3C3 1F3FF                                ; fully-qualified     # 🏃🏿 person running: dark skin tone\n#SUPPORT(prf) 1F3C3 200D 2642 FE0F                       ; fully-qualified     # 🏃‍♂️ man running\n#SUPPORT(prf) 1F3C3 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🏃🏻‍♂️ man running: light skin tone\n#SUPPORT(prf) 1F3C3 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🏃🏼‍♂️ man running: medium-light skin tone\n#SUPPORT(prf) 1F3C3 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🏃🏽‍♂️ man running: medium skin tone\n#SUPPORT(prf) 1F3C3 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🏃🏾‍♂️ man running: medium-dark skin tone\n#SUPPORT(prf) 1F3C3 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🏃🏿‍♂️ man running: dark skin tone\n#SUPPORT(prf) 1F3C3 200D 2640 FE0F                       ; fully-qualified     # 🏃‍♀️ woman running\n#SUPPORT(prf) 1F3C3 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🏃🏻‍♀️ woman running: light skin tone\n#SUPPORT(prf) 1F3C3 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🏃🏼‍♀️ woman running: medium-light skin tone\n#SUPPORT(prf) 1F3C3 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🏃🏽‍♀️ woman running: medium skin tone\n#SUPPORT(prf) 1F3C3 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🏃🏾‍♀️ woman running: medium-dark skin tone\n#SUPPORT(prf) 1F3C3 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🏃🏿‍♀️ woman running: dark skin tone\n1F483                                      ; fully-qualified     # 💃 woman dancing\n1F483 1F3FB                                ; fully-qualified     # 💃🏻 woman dancing: light skin tone\n1F483 1F3FC                                ; fully-qualified     # 💃🏼 woman dancing: medium-light skin tone\n1F483 1F3FD                                ; fully-qualified     # 💃🏽 woman dancing: medium skin tone\n1F483 1F3FE                                ; fully-qualified     # 💃🏾 woman dancing: medium-dark skin tone\n1F483 1F3FF                                ; fully-qualified     # 💃🏿 woman dancing: dark skin tone\n1F57A                                      ; fully-qualified     # 🕺 man dancing\n1F57A 1F3FB                                ; fully-qualified     # 🕺🏻 man dancing: light skin tone\n1F57A 1F3FC                                ; fully-qualified     # 🕺🏼 man dancing: medium-light skin tone\n1F57A 1F3FD                                ; fully-qualified     # 🕺🏽 man dancing: medium skin tone\n1F57A 1F3FE                                ; fully-qualified     # 🕺🏾 man dancing: medium-dark skin tone\n1F57A 1F3FF                                ; fully-qualified     # 🕺🏿 man dancing: dark skin tone\n1F574 FE0F                                 ; fully-qualified     # 🕴️ man in suit levitating\n1F574 1F3FB                                ; fully-qualified     # 🕴🏻 man in suit levitating: light skin tone\n1F574 1F3FC                                ; fully-qualified     # 🕴🏼 man in suit levitating: medium-light skin tone\n1F574 1F3FD                                ; fully-qualified     # 🕴🏽 man in suit levitating: medium skin tone\n1F574 1F3FE                                ; fully-qualified     # 🕴🏾 man in suit levitating: medium-dark skin tone\n1F574 1F3FF                                ; fully-qualified     # 🕴🏿 man in suit levitating: dark skin tone\n1F46F                                      ; fully-qualified     # 👯 people with bunny ears\n#SUPPORT(prf) 1F46F 200D 2642 FE0F                       ; fully-qualified     # 👯‍♂️ men with bunny ears\n#SUPPORT(prf) 1F46F 200D 2640 FE0F                       ; fully-qualified     # 👯‍♀️ women with bunny ears\n1F9D6                                      ; fully-qualified     # 🧖 person in steamy room\n1F9D6 1F3FB                                ; fully-qualified     # 🧖🏻 person in steamy room: light skin tone\n1F9D6 1F3FC                                ; fully-qualified     # 🧖🏼 person in steamy room: medium-light skin tone\n1F9D6 1F3FD                                ; fully-qualified     # 🧖🏽 person in steamy room: medium skin tone\n1F9D6 1F3FE                                ; fully-qualified     # 🧖🏾 person in steamy room: medium-dark skin tone\n1F9D6 1F3FF                                ; fully-qualified     # 🧖🏿 person in steamy room: dark skin tone\n#SUPPORT(prf) 1F9D6 200D 2642 FE0F                       ; fully-qualified     # 🧖‍♂️ man in steamy room\n#SUPPORT(prf) 1F9D6 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧖🏻‍♂️ man in steamy room: light skin tone\n#SUPPORT(prf) 1F9D6 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧖🏼‍♂️ man in steamy room: medium-light skin tone\n#SUPPORT(prf) 1F9D6 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧖🏽‍♂️ man in steamy room: medium skin tone\n#SUPPORT(prf) 1F9D6 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧖🏾‍♂️ man in steamy room: medium-dark skin tone\n#SUPPORT(prf) 1F9D6 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧖🏿‍♂️ man in steamy room: dark skin tone\n#SUPPORT(prf) 1F9D6 200D 2640 FE0F                       ; fully-qualified     # 🧖‍♀️ woman in steamy room\n#SUPPORT(prf) 1F9D6 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧖🏻‍♀️ woman in steamy room: light skin tone\n#SUPPORT(prf) 1F9D6 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧖🏼‍♀️ woman in steamy room: medium-light skin tone\n#SUPPORT(prf) 1F9D6 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧖🏽‍♀️ woman in steamy room: medium skin tone\n#SUPPORT(prf) 1F9D6 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧖🏾‍♀️ woman in steamy room: medium-dark skin tone\n#SUPPORT(prf) 1F9D6 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧖🏿‍♀️ woman in steamy room: dark skin tone\n1F9D7                                      ; fully-qualified     # 🧗 person climbing\n1F9D7 1F3FB                                ; fully-qualified     # 🧗🏻 person climbing: light skin tone\n1F9D7 1F3FC                                ; fully-qualified     # 🧗🏼 person climbing: medium-light skin tone\n1F9D7 1F3FD                                ; fully-qualified     # 🧗🏽 person climbing: medium skin tone\n1F9D7 1F3FE                                ; fully-qualified     # 🧗🏾 person climbing: medium-dark skin tone\n1F9D7 1F3FF                                ; fully-qualified     # 🧗🏿 person climbing: dark skin tone\n#SUPPORT(prf) 1F9D7 200D 2642 FE0F                       ; fully-qualified     # 🧗‍♂️ man climbing\n#SUPPORT(prf) 1F9D7 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧗🏻‍♂️ man climbing: light skin tone\n#SUPPORT(prf) 1F9D7 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧗🏼‍♂️ man climbing: medium-light skin tone\n#SUPPORT(prf) 1F9D7 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧗🏽‍♂️ man climbing: medium skin tone\n#SUPPORT(prf) 1F9D7 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧗🏾‍♂️ man climbing: medium-dark skin tone\n#SUPPORT(prf) 1F9D7 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧗🏿‍♂️ man climbing: dark skin tone\n#SUPPORT(prf) 1F9D7 200D 2640 FE0F                       ; fully-qualified     # 🧗‍♀️ woman climbing\n#SUPPORT(prf) 1F9D7 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧗🏻‍♀️ woman climbing: light skin tone\n#SUPPORT(prf) 1F9D7 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧗🏼‍♀️ woman climbing: medium-light skin tone\n#SUPPORT(prf) 1F9D7 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧗🏽‍♀️ woman climbing: medium skin tone\n#SUPPORT(prf) 1F9D7 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧗🏾‍♀️ woman climbing: medium-dark skin tone\n#SUPPORT(prf) 1F9D7 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧗🏿‍♀️ woman climbing: dark skin tone\n\n# subgroup: person-sport\n1F93A                                      ; fully-qualified     # 🤺 person fencing\n1F3C7                                      ; fully-qualified     # 🏇 horse racing\n1F3C7 1F3FB                                ; fully-qualified     # 🏇🏻 horse racing: light skin tone\n1F3C7 1F3FC                                ; fully-qualified     # 🏇🏼 horse racing: medium-light skin tone\n1F3C7 1F3FD                                ; fully-qualified     # 🏇🏽 horse racing: medium skin tone\n1F3C7 1F3FE                                ; fully-qualified     # 🏇🏾 horse racing: medium-dark skin tone\n1F3C7 1F3FF                                ; fully-qualified     # 🏇🏿 horse racing: dark skin tone\n26F7 FE0F                                  ; fully-qualified     # ⛷️ skier\n1F3C2                                      ; fully-qualified     # 🏂 snowboarder\n1F3C2 1F3FB                                ; fully-qualified     # 🏂🏻 snowboarder: light skin tone\n1F3C2 1F3FC                                ; fully-qualified     # 🏂🏼 snowboarder: medium-light skin tone\n1F3C2 1F3FD                                ; fully-qualified     # 🏂🏽 snowboarder: medium skin tone\n1F3C2 1F3FE                                ; fully-qualified     # 🏂🏾 snowboarder: medium-dark skin tone\n1F3C2 1F3FF                                ; fully-qualified     # 🏂🏿 snowboarder: dark skin tone\n1F3CC FE0F                                 ; fully-qualified     # 🏌️ person golfing\n1F3CC 1F3FB                                ; fully-qualified     # 🏌🏻 person golfing: light skin tone\n1F3CC 1F3FC                                ; fully-qualified     # 🏌🏼 person golfing: medium-light skin tone\n1F3CC 1F3FD                                ; fully-qualified     # 🏌🏽 person golfing: medium skin tone\n1F3CC 1F3FE                                ; fully-qualified     # 🏌🏾 person golfing: medium-dark skin tone\n1F3CC 1F3FF                                ; fully-qualified     # 🏌🏿 person golfing: dark skin tone\n#SUPPORT(prf) 1F3CC FE0F 200D 2642 FE0F                  ; fully-qualified     # 🏌️‍♂️ man golfing\n#SUPPORT(prf) 1F3CC 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🏌🏻‍♂️ man golfing: light skin tone\n#SUPPORT(prf) 1F3CC 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🏌🏼‍♂️ man golfing: medium-light skin tone\n#SUPPORT(prf) 1F3CC 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🏌🏽‍♂️ man golfing: medium skin tone\n#SUPPORT(prf) 1F3CC 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🏌🏾‍♂️ man golfing: medium-dark skin tone\n#SUPPORT(prf) 1F3CC 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🏌🏿‍♂️ man golfing: dark skin tone\n#SUPPORT(prf) 1F3CC FE0F 200D 2640 FE0F                  ; fully-qualified     # 🏌️‍♀️ woman golfing\n#SUPPORT(prf) 1F3CC 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🏌🏻‍♀️ woman golfing: light skin tone\n#SUPPORT(prf) 1F3CC 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🏌🏼‍♀️ woman golfing: medium-light skin tone\n#SUPPORT(prf) 1F3CC 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🏌🏽‍♀️ woman golfing: medium skin tone\n#SUPPORT(prf) 1F3CC 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🏌🏾‍♀️ woman golfing: medium-dark skin tone\n#SUPPORT(prf) 1F3CC 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🏌🏿‍♀️ woman golfing: dark skin tone\n1F3C4                                      ; fully-qualified     # 🏄 person surfing\n1F3C4 1F3FB                                ; fully-qualified     # 🏄🏻 person surfing: light skin tone\n1F3C4 1F3FC                                ; fully-qualified     # 🏄🏼 person surfing: medium-light skin tone\n1F3C4 1F3FD                                ; fully-qualified     # 🏄🏽 person surfing: medium skin tone\n1F3C4 1F3FE                                ; fully-qualified     # 🏄🏾 person surfing: medium-dark skin tone\n1F3C4 1F3FF                                ; fully-qualified     # 🏄🏿 person surfing: dark skin tone\n#SUPPORT(prf) 1F3C4 200D 2642 FE0F                       ; fully-qualified     # 🏄‍♂️ man surfing\n#SUPPORT(prf) 1F3C4 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🏄🏻‍♂️ man surfing: light skin tone\n#SUPPORT(prf) 1F3C4 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🏄🏼‍♂️ man surfing: medium-light skin tone\n#SUPPORT(prf) 1F3C4 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🏄🏽‍♂️ man surfing: medium skin tone\n#SUPPORT(prf) 1F3C4 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🏄🏾‍♂️ man surfing: medium-dark skin tone\n#SUPPORT(prf) 1F3C4 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🏄🏿‍♂️ man surfing: dark skin tone\n#SUPPORT(prf) 1F3C4 200D 2640 FE0F                       ; fully-qualified     # 🏄‍♀️ woman surfing\n#SUPPORT(prf) 1F3C4 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🏄🏻‍♀️ woman surfing: light skin tone\n#SUPPORT(prf) 1F3C4 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🏄🏼‍♀️ woman surfing: medium-light skin tone\n#SUPPORT(prf) 1F3C4 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🏄🏽‍♀️ woman surfing: medium skin tone\n#SUPPORT(prf) 1F3C4 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🏄🏾‍♀️ woman surfing: medium-dark skin tone\n#SUPPORT(prf) 1F3C4 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🏄🏿‍♀️ woman surfing: dark skin tone\n1F6A3                                      ; fully-qualified     # 🚣 person rowing boat\n1F6A3 1F3FB                                ; fully-qualified     # 🚣🏻 person rowing boat: light skin tone\n1F6A3 1F3FC                                ; fully-qualified     # 🚣🏼 person rowing boat: medium-light skin tone\n1F6A3 1F3FD                                ; fully-qualified     # 🚣🏽 person rowing boat: medium skin tone\n1F6A3 1F3FE                                ; fully-qualified     # 🚣🏾 person rowing boat: medium-dark skin tone\n1F6A3 1F3FF                                ; fully-qualified     # 🚣🏿 person rowing boat: dark skin tone\n#SUPPORT(prf) 1F6A3 200D 2642 FE0F                       ; fully-qualified     # 🚣‍♂️ man rowing boat\n#SUPPORT(prf) 1F6A3 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🚣🏻‍♂️ man rowing boat: light skin tone\n#SUPPORT(prf) 1F6A3 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🚣🏼‍♂️ man rowing boat: medium-light skin tone\n#SUPPORT(prf) 1F6A3 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🚣🏽‍♂️ man rowing boat: medium skin tone\n#SUPPORT(prf) 1F6A3 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🚣🏾‍♂️ man rowing boat: medium-dark skin tone\n#SUPPORT(prf) 1F6A3 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🚣🏿‍♂️ man rowing boat: dark skin tone\n#SUPPORT(prf) 1F6A3 200D 2640 FE0F                       ; fully-qualified     # 🚣‍♀️ woman rowing boat\n#SUPPORT(prf) 1F6A3 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🚣🏻‍♀️ woman rowing boat: light skin tone\n#SUPPORT(prf) 1F6A3 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🚣🏼‍♀️ woman rowing boat: medium-light skin tone\n#SUPPORT(prf) 1F6A3 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🚣🏽‍♀️ woman rowing boat: medium skin tone\n#SUPPORT(prf) 1F6A3 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🚣🏾‍♀️ woman rowing boat: medium-dark skin tone\n#SUPPORT(prf) 1F6A3 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🚣🏿‍♀️ woman rowing boat: dark skin tone\n1F3CA                                      ; fully-qualified     # 🏊 person swimming\n1F3CA 1F3FB                                ; fully-qualified     # 🏊🏻 person swimming: light skin tone\n1F3CA 1F3FC                                ; fully-qualified     # 🏊🏼 person swimming: medium-light skin tone\n1F3CA 1F3FD                                ; fully-qualified     # 🏊🏽 person swimming: medium skin tone\n1F3CA 1F3FE                                ; fully-qualified     # 🏊🏾 person swimming: medium-dark skin tone\n1F3CA 1F3FF                                ; fully-qualified     # 🏊🏿 person swimming: dark skin tone\n#SUPPORT(prf) 1F3CA 200D 2642 FE0F                       ; fully-qualified     # 🏊‍♂️ man swimming\n#SUPPORT(prf) 1F3CA 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🏊🏻‍♂️ man swimming: light skin tone\n#SUPPORT(prf) 1F3CA 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🏊🏼‍♂️ man swimming: medium-light skin tone\n#SUPPORT(prf) 1F3CA 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🏊🏽‍♂️ man swimming: medium skin tone\n#SUPPORT(prf) 1F3CA 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🏊🏾‍♂️ man swimming: medium-dark skin tone\n#SUPPORT(prf) 1F3CA 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🏊🏿‍♂️ man swimming: dark skin tone\n#SUPPORT(prf) 1F3CA 200D 2640 FE0F                       ; fully-qualified     # 🏊‍♀️ woman swimming\n#SUPPORT(prf) 1F3CA 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🏊🏻‍♀️ woman swimming: light skin tone\n#SUPPORT(prf) 1F3CA 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🏊🏼‍♀️ woman swimming: medium-light skin tone\n#SUPPORT(prf) 1F3CA 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🏊🏽‍♀️ woman swimming: medium skin tone\n#SUPPORT(prf) 1F3CA 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🏊🏾‍♀️ woman swimming: medium-dark skin tone\n#SUPPORT(prf) 1F3CA 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🏊🏿‍♀️ woman swimming: dark skin tone\n26F9 FE0F                                  ; fully-qualified     # ⛹️ person bouncing ball\n26F9 1F3FB                                 ; fully-qualified     # ⛹🏻 person bouncing ball: light skin tone\n26F9 1F3FC                                 ; fully-qualified     # ⛹🏼 person bouncing ball: medium-light skin tone\n26F9 1F3FD                                 ; fully-qualified     # ⛹🏽 person bouncing ball: medium skin tone\n26F9 1F3FE                                 ; fully-qualified     # ⛹🏾 person bouncing ball: medium-dark skin tone\n26F9 1F3FF                                 ; fully-qualified     # ⛹🏿 person bouncing ball: dark skin tone\n#SUPPORT(prf) 26F9 FE0F 200D 2642 FE0F                   ; fully-qualified     # ⛹️‍♂️ man bouncing ball\n#SUPPORT(prf) 26F9 1F3FB 200D 2642 FE0F                  ; fully-qualified     # ⛹🏻‍♂️ man bouncing ball: light skin tone\n#SUPPORT(prf) 26F9 1F3FC 200D 2642 FE0F                  ; fully-qualified     # ⛹🏼‍♂️ man bouncing ball: medium-light skin tone\n#SUPPORT(prf) 26F9 1F3FD 200D 2642 FE0F                  ; fully-qualified     # ⛹🏽‍♂️ man bouncing ball: medium skin tone\n#SUPPORT(prf) 26F9 1F3FE 200D 2642 FE0F                  ; fully-qualified     # ⛹🏾‍♂️ man bouncing ball: medium-dark skin tone\n#SUPPORT(prf) 26F9 1F3FF 200D 2642 FE0F                  ; fully-qualified     # ⛹🏿‍♂️ man bouncing ball: dark skin tone\n#SUPPORT(prf) 26F9 FE0F 200D 2640 FE0F                   ; fully-qualified     # ⛹️‍♀️ woman bouncing ball\n#SUPPORT(prf) 26F9 1F3FB 200D 2640 FE0F                  ; fully-qualified     # ⛹🏻‍♀️ woman bouncing ball: light skin tone\n#SUPPORT(prf) 26F9 1F3FC 200D 2640 FE0F                  ; fully-qualified     # ⛹🏼‍♀️ woman bouncing ball: medium-light skin tone\n#SUPPORT(prf) 26F9 1F3FD 200D 2640 FE0F                  ; fully-qualified     # ⛹🏽‍♀️ woman bouncing ball: medium skin tone\n#SUPPORT(prf) 26F9 1F3FE 200D 2640 FE0F                  ; fully-qualified     # ⛹🏾‍♀️ woman bouncing ball: medium-dark skin tone\n#SUPPORT(prf) 26F9 1F3FF 200D 2640 FE0F                  ; fully-qualified     # ⛹🏿‍♀️ woman bouncing ball: dark skin tone\n1F3CB FE0F                                 ; fully-qualified     # 🏋️ person lifting weights\n1F3CB 1F3FB                                ; fully-qualified     # 🏋🏻 person lifting weights: light skin tone\n1F3CB 1F3FC                                ; fully-qualified     # 🏋🏼 person lifting weights: medium-light skin tone\n1F3CB 1F3FD                                ; fully-qualified     # 🏋🏽 person lifting weights: medium skin tone\n1F3CB 1F3FE                                ; fully-qualified     # 🏋🏾 person lifting weights: medium-dark skin tone\n1F3CB 1F3FF                                ; fully-qualified     # 🏋🏿 person lifting weights: dark skin tone\n#SUPPORT(prf) 1F3CB FE0F 200D 2642 FE0F                  ; fully-qualified     # 🏋️‍♂️ man lifting weights\n#SUPPORT(prf) 1F3CB 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🏋🏻‍♂️ man lifting weights: light skin tone\n#SUPPORT(prf) 1F3CB 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🏋🏼‍♂️ man lifting weights: medium-light skin tone\n#SUPPORT(prf) 1F3CB 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🏋🏽‍♂️ man lifting weights: medium skin tone\n#SUPPORT(prf) 1F3CB 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🏋🏾‍♂️ man lifting weights: medium-dark skin tone\n#SUPPORT(prf) 1F3CB 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🏋🏿‍♂️ man lifting weights: dark skin tone\n#SUPPORT(prf) 1F3CB FE0F 200D 2640 FE0F                  ; fully-qualified     # 🏋️‍♀️ woman lifting weights\n#SUPPORT(prf) 1F3CB 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🏋🏻‍♀️ woman lifting weights: light skin tone\n#SUPPORT(prf) 1F3CB 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🏋🏼‍♀️ woman lifting weights: medium-light skin tone\n#SUPPORT(prf) 1F3CB 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🏋🏽‍♀️ woman lifting weights: medium skin tone\n#SUPPORT(prf) 1F3CB 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🏋🏾‍♀️ woman lifting weights: medium-dark skin tone\n#SUPPORT(prf) 1F3CB 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🏋🏿‍♀️ woman lifting weights: dark skin tone\n1F6B4                                      ; fully-qualified     # 🚴 person biking\n1F6B4 1F3FB                                ; fully-qualified     # 🚴🏻 person biking: light skin tone\n1F6B4 1F3FC                                ; fully-qualified     # 🚴🏼 person biking: medium-light skin tone\n1F6B4 1F3FD                                ; fully-qualified     # 🚴🏽 person biking: medium skin tone\n1F6B4 1F3FE                                ; fully-qualified     # 🚴🏾 person biking: medium-dark skin tone\n1F6B4 1F3FF                                ; fully-qualified     # 🚴🏿 person biking: dark skin tone\n#SUPPORT(prf) 1F6B4 200D 2642 FE0F                       ; fully-qualified     # 🚴‍♂️ man biking\n#SUPPORT(prf) 1F6B4 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🚴🏻‍♂️ man biking: light skin tone\n#SUPPORT(prf) 1F6B4 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🚴🏼‍♂️ man biking: medium-light skin tone\n#SUPPORT(prf) 1F6B4 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🚴🏽‍♂️ man biking: medium skin tone\n#SUPPORT(prf) 1F6B4 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🚴🏾‍♂️ man biking: medium-dark skin tone\n#SUPPORT(prf) 1F6B4 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🚴🏿‍♂️ man biking: dark skin tone\n#SUPPORT(prf) 1F6B4 200D 2640 FE0F                       ; fully-qualified     # 🚴‍♀️ woman biking\n#SUPPORT(prf) 1F6B4 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🚴🏻‍♀️ woman biking: light skin tone\n#SUPPORT(prf) 1F6B4 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🚴🏼‍♀️ woman biking: medium-light skin tone\n#SUPPORT(prf) 1F6B4 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🚴🏽‍♀️ woman biking: medium skin tone\n#SUPPORT(prf) 1F6B4 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🚴🏾‍♀️ woman biking: medium-dark skin tone\n#SUPPORT(prf) 1F6B4 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🚴🏿‍♀️ woman biking: dark skin tone\n1F6B5                                      ; fully-qualified     # 🚵 person mountain biking\n1F6B5 1F3FB                                ; fully-qualified     # 🚵🏻 person mountain biking: light skin tone\n1F6B5 1F3FC                                ; fully-qualified     # 🚵🏼 person mountain biking: medium-light skin tone\n1F6B5 1F3FD                                ; fully-qualified     # 🚵🏽 person mountain biking: medium skin tone\n1F6B5 1F3FE                                ; fully-qualified     # 🚵🏾 person mountain biking: medium-dark skin tone\n1F6B5 1F3FF                                ; fully-qualified     # 🚵🏿 person mountain biking: dark skin tone\n#SUPPORT(prf) 1F6B5 200D 2642 FE0F                       ; fully-qualified     # 🚵‍♂️ man mountain biking\n#SUPPORT(prf) 1F6B5 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🚵🏻‍♂️ man mountain biking: light skin tone\n#SUPPORT(prf) 1F6B5 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🚵🏼‍♂️ man mountain biking: medium-light skin tone\n#SUPPORT(prf) 1F6B5 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🚵🏽‍♂️ man mountain biking: medium skin tone\n#SUPPORT(prf) 1F6B5 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🚵🏾‍♂️ man mountain biking: medium-dark skin tone\n#SUPPORT(prf) 1F6B5 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🚵🏿‍♂️ man mountain biking: dark skin tone\n#SUPPORT(prf) 1F6B5 200D 2640 FE0F                       ; fully-qualified     # 🚵‍♀️ woman mountain biking\n#SUPPORT(prf) 1F6B5 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🚵🏻‍♀️ woman mountain biking: light skin tone\n#SUPPORT(prf) 1F6B5 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🚵🏼‍♀️ woman mountain biking: medium-light skin tone\n#SUPPORT(prf) 1F6B5 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🚵🏽‍♀️ woman mountain biking: medium skin tone\n#SUPPORT(prf) 1F6B5 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🚵🏾‍♀️ woman mountain biking: medium-dark skin tone\n#SUPPORT(prf) 1F6B5 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🚵🏿‍♀️ woman mountain biking: dark skin tone\n1F938                                      ; fully-qualified     # 🤸 person cartwheeling\n1F938 1F3FB                                ; fully-qualified     # 🤸🏻 person cartwheeling: light skin tone\n1F938 1F3FC                                ; fully-qualified     # 🤸🏼 person cartwheeling: medium-light skin tone\n1F938 1F3FD                                ; fully-qualified     # 🤸🏽 person cartwheeling: medium skin tone\n1F938 1F3FE                                ; fully-qualified     # 🤸🏾 person cartwheeling: medium-dark skin tone\n1F938 1F3FF                                ; fully-qualified     # 🤸🏿 person cartwheeling: dark skin tone\n#SUPPORT(prf) 1F938 200D 2642 FE0F                       ; fully-qualified     # 🤸‍♂️ man cartwheeling\n#SUPPORT(prf) 1F938 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤸🏻‍♂️ man cartwheeling: light skin tone\n#SUPPORT(prf) 1F938 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤸🏼‍♂️ man cartwheeling: medium-light skin tone\n#SUPPORT(prf) 1F938 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤸🏽‍♂️ man cartwheeling: medium skin tone\n#SUPPORT(prf) 1F938 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤸🏾‍♂️ man cartwheeling: medium-dark skin tone\n#SUPPORT(prf) 1F938 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤸🏿‍♂️ man cartwheeling: dark skin tone\n#SUPPORT(prf) 1F938 200D 2640 FE0F                       ; fully-qualified     # 🤸‍♀️ woman cartwheeling\n#SUPPORT(prf) 1F938 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤸🏻‍♀️ woman cartwheeling: light skin tone\n#SUPPORT(prf) 1F938 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤸🏼‍♀️ woman cartwheeling: medium-light skin tone\n#SUPPORT(prf) 1F938 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤸🏽‍♀️ woman cartwheeling: medium skin tone\n#SUPPORT(prf) 1F938 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤸🏾‍♀️ woman cartwheeling: medium-dark skin tone\n#SUPPORT(prf) 1F938 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤸🏿‍♀️ woman cartwheeling: dark skin tone\n1F93C                                      ; fully-qualified     # 🤼 people wrestling\n#SUPPORT(prf) 1F93C 200D 2642 FE0F                       ; fully-qualified     # 🤼‍♂️ men wrestling\n#SUPPORT(prf) 1F93C 200D 2640 FE0F                       ; fully-qualified     # 🤼‍♀️ women wrestling\n1F93D                                      ; fully-qualified     # 🤽 person playing water polo\n1F93D 1F3FB                                ; fully-qualified     # 🤽🏻 person playing water polo: light skin tone\n1F93D 1F3FC                                ; fully-qualified     # 🤽🏼 person playing water polo: medium-light skin tone\n1F93D 1F3FD                                ; fully-qualified     # 🤽🏽 person playing water polo: medium skin tone\n1F93D 1F3FE                                ; fully-qualified     # 🤽🏾 person playing water polo: medium-dark skin tone\n1F93D 1F3FF                                ; fully-qualified     # 🤽🏿 person playing water polo: dark skin tone\n#SUPPORT(prf) 1F93D 200D 2642 FE0F                       ; fully-qualified     # 🤽‍♂️ man playing water polo\n#SUPPORT(prf) 1F93D 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤽🏻‍♂️ man playing water polo: light skin tone\n#SUPPORT(prf) 1F93D 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤽🏼‍♂️ man playing water polo: medium-light skin tone\n#SUPPORT(prf) 1F93D 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤽🏽‍♂️ man playing water polo: medium skin tone\n#SUPPORT(prf) 1F93D 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤽🏾‍♂️ man playing water polo: medium-dark skin tone\n#SUPPORT(prf) 1F93D 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤽🏿‍♂️ man playing water polo: dark skin tone\n#SUPPORT(prf) 1F93D 200D 2640 FE0F                       ; fully-qualified     # 🤽‍♀️ woman playing water polo\n#SUPPORT(prf) 1F93D 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤽🏻‍♀️ woman playing water polo: light skin tone\n#SUPPORT(prf) 1F93D 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤽🏼‍♀️ woman playing water polo: medium-light skin tone\n#SUPPORT(prf) 1F93D 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤽🏽‍♀️ woman playing water polo: medium skin tone\n#SUPPORT(prf) 1F93D 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤽🏾‍♀️ woman playing water polo: medium-dark skin tone\n#SUPPORT(prf) 1F93D 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤽🏿‍♀️ woman playing water polo: dark skin tone\n1F93E                                      ; fully-qualified     # 🤾 person playing handball\n1F93E 1F3FB                                ; fully-qualified     # 🤾🏻 person playing handball: light skin tone\n1F93E 1F3FC                                ; fully-qualified     # 🤾🏼 person playing handball: medium-light skin tone\n1F93E 1F3FD                                ; fully-qualified     # 🤾🏽 person playing handball: medium skin tone\n1F93E 1F3FE                                ; fully-qualified     # 🤾🏾 person playing handball: medium-dark skin tone\n1F93E 1F3FF                                ; fully-qualified     # 🤾🏿 person playing handball: dark skin tone\n#SUPPORT(prf) 1F93E 200D 2642 FE0F                       ; fully-qualified     # 🤾‍♂️ man playing handball\n#SUPPORT(prf) 1F93E 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤾🏻‍♂️ man playing handball: light skin tone\n#SUPPORT(prf) 1F93E 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤾🏼‍♂️ man playing handball: medium-light skin tone\n#SUPPORT(prf) 1F93E 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤾🏽‍♂️ man playing handball: medium skin tone\n#SUPPORT(prf) 1F93E 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤾🏾‍♂️ man playing handball: medium-dark skin tone\n#SUPPORT(prf) 1F93E 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤾🏿‍♂️ man playing handball: dark skin tone\n#SUPPORT(prf) 1F93E 200D 2640 FE0F                       ; fully-qualified     # 🤾‍♀️ woman playing handball\n#SUPPORT(prf) 1F93E 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤾🏻‍♀️ woman playing handball: light skin tone\n#SUPPORT(prf) 1F93E 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤾🏼‍♀️ woman playing handball: medium-light skin tone\n#SUPPORT(prf) 1F93E 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤾🏽‍♀️ woman playing handball: medium skin tone\n#SUPPORT(prf) 1F93E 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤾🏾‍♀️ woman playing handball: medium-dark skin tone\n#SUPPORT(prf) 1F93E 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤾🏿‍♀️ woman playing handball: dark skin tone\n1F939                                      ; fully-qualified     # 🤹 person juggling\n1F939 1F3FB                                ; fully-qualified     # 🤹🏻 person juggling: light skin tone\n1F939 1F3FC                                ; fully-qualified     # 🤹🏼 person juggling: medium-light skin tone\n1F939 1F3FD                                ; fully-qualified     # 🤹🏽 person juggling: medium skin tone\n1F939 1F3FE                                ; fully-qualified     # 🤹🏾 person juggling: medium-dark skin tone\n1F939 1F3FF                                ; fully-qualified     # 🤹🏿 person juggling: dark skin tone\n#SUPPORT(prf) 1F939 200D 2642 FE0F                       ; fully-qualified     # 🤹‍♂️ man juggling\n#SUPPORT(prf) 1F939 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🤹🏻‍♂️ man juggling: light skin tone\n#SUPPORT(prf) 1F939 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🤹🏼‍♂️ man juggling: medium-light skin tone\n#SUPPORT(prf) 1F939 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🤹🏽‍♂️ man juggling: medium skin tone\n#SUPPORT(prf) 1F939 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🤹🏾‍♂️ man juggling: medium-dark skin tone\n#SUPPORT(prf) 1F939 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🤹🏿‍♂️ man juggling: dark skin tone\n#SUPPORT(prf) 1F939 200D 2640 FE0F                       ; fully-qualified     # 🤹‍♀️ woman juggling\n#SUPPORT(prf) 1F939 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🤹🏻‍♀️ woman juggling: light skin tone\n#SUPPORT(prf) 1F939 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🤹🏼‍♀️ woman juggling: medium-light skin tone\n#SUPPORT(prf) 1F939 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🤹🏽‍♀️ woman juggling: medium skin tone\n#SUPPORT(prf) 1F939 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🤹🏾‍♀️ woman juggling: medium-dark skin tone\n#SUPPORT(prf) 1F939 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🤹🏿‍♀️ woman juggling: dark skin tone\n\n# subgroup: person-resting\n1F9D8                                      ; fully-qualified     # 🧘 person in lotus position\n1F9D8 1F3FB                                ; fully-qualified     # 🧘🏻 person in lotus position: light skin tone\n1F9D8 1F3FC                                ; fully-qualified     # 🧘🏼 person in lotus position: medium-light skin tone\n1F9D8 1F3FD                                ; fully-qualified     # 🧘🏽 person in lotus position: medium skin tone\n1F9D8 1F3FE                                ; fully-qualified     # 🧘🏾 person in lotus position: medium-dark skin tone\n1F9D8 1F3FF                                ; fully-qualified     # 🧘🏿 person in lotus position: dark skin tone\n#SUPPORT(prf) 1F9D8 200D 2642 FE0F                       ; fully-qualified     # 🧘‍♂️ man in lotus position\n#SUPPORT(prf) 1F9D8 1F3FB 200D 2642 FE0F                 ; fully-qualified     # 🧘🏻‍♂️ man in lotus position: light skin tone\n#SUPPORT(prf) 1F9D8 1F3FC 200D 2642 FE0F                 ; fully-qualified     # 🧘🏼‍♂️ man in lotus position: medium-light skin tone\n#SUPPORT(prf) 1F9D8 1F3FD 200D 2642 FE0F                 ; fully-qualified     # 🧘🏽‍♂️ man in lotus position: medium skin tone\n#SUPPORT(prf) 1F9D8 1F3FE 200D 2642 FE0F                 ; fully-qualified     # 🧘🏾‍♂️ man in lotus position: medium-dark skin tone\n#SUPPORT(prf) 1F9D8 1F3FF 200D 2642 FE0F                 ; fully-qualified     # 🧘🏿‍♂️ man in lotus position: dark skin tone\n#SUPPORT(prf) 1F9D8 200D 2640 FE0F                       ; fully-qualified     # 🧘‍♀️ woman in lotus position\n#SUPPORT(prf) 1F9D8 1F3FB 200D 2640 FE0F                 ; fully-qualified     # 🧘🏻‍♀️ woman in lotus position: light skin tone\n#SUPPORT(prf) 1F9D8 1F3FC 200D 2640 FE0F                 ; fully-qualified     # 🧘🏼‍♀️ woman in lotus position: medium-light skin tone\n#SUPPORT(prf) 1F9D8 1F3FD 200D 2640 FE0F                 ; fully-qualified     # 🧘🏽‍♀️ woman in lotus position: medium skin tone\n#SUPPORT(prf) 1F9D8 1F3FE 200D 2640 FE0F                 ; fully-qualified     # 🧘🏾‍♀️ woman in lotus position: medium-dark skin tone\n#SUPPORT(prf) 1F9D8 1F3FF 200D 2640 FE0F                 ; fully-qualified     # 🧘🏿‍♀️ woman in lotus position: dark skin tone\n1F6C0                                      ; fully-qualified     # 🛀 person taking bath\n1F6C0 1F3FB                                ; fully-qualified     # 🛀🏻 person taking bath: light skin tone\n1F6C0 1F3FC                                ; fully-qualified     # 🛀🏼 person taking bath: medium-light skin tone\n1F6C0 1F3FD                                ; fully-qualified     # 🛀🏽 person taking bath: medium skin tone\n1F6C0 1F3FE                                ; fully-qualified     # 🛀🏾 person taking bath: medium-dark skin tone\n1F6C0 1F3FF                                ; fully-qualified     # 🛀🏿 person taking bath: dark skin tone\n1F6CC                                      ; fully-qualified     # 🛌 person in bed\n1F6CC 1F3FB                                ; fully-qualified     # 🛌🏻 person in bed: light skin tone\n1F6CC 1F3FC                                ; fully-qualified     # 🛌🏼 person in bed: medium-light skin tone\n1F6CC 1F3FD                                ; fully-qualified     # 🛌🏽 person in bed: medium skin tone\n1F6CC 1F3FE                                ; fully-qualified     # 🛌🏾 person in bed: medium-dark skin tone\n1F6CC 1F3FF                                ; fully-qualified     # 🛌🏿 person in bed: dark skin tone\n\n# subgroup: family\n#SUPPORT(prf) 1F9D1 200D 1F91D 200D 1F9D1                ; fully-qualified     # 🧑‍🤝‍🧑 people holding hands\n#SUPPORT(prf) 1F9D1 1F3FB 200D 1F91D 200D 1F9D1 1F3FB    ; fully-qualified     # 🧑🏻‍🤝‍🧑🏻 people holding hands: light skin tone\n#SUPPORT(prf) 1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FB    ; fully-qualified     # 🧑🏼‍🤝‍🧑🏻 people holding hands: medium-light skin tone, light skin tone\n#SUPPORT(prf) 1F9D1 1F3FC 200D 1F91D 200D 1F9D1 1F3FC    ; fully-qualified     # 🧑🏼‍🤝‍🧑🏼 people holding hands: medium-light skin tone\n#SUPPORT(prf) 1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FB    ; fully-qualified     # 🧑🏽‍🤝‍🧑🏻 people holding hands: medium skin tone, light skin tone\n#SUPPORT(prf) 1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FC    ; fully-qualified     # 🧑🏽‍🤝‍🧑🏼 people holding hands: medium skin tone, medium-light skin tone\n#SUPPORT(prf) 1F9D1 1F3FD 200D 1F91D 200D 1F9D1 1F3FD    ; fully-qualified     # 🧑🏽‍🤝‍🧑🏽 people holding hands: medium skin tone\n#SUPPORT(prf) 1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FB    ; fully-qualified     # 🧑🏾‍🤝‍🧑🏻 people holding hands: medium-dark skin tone, light skin tone\n#SUPPORT(prf) 1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FC    ; fully-qualified     # 🧑🏾‍🤝‍🧑🏼 people holding hands: medium-dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FD    ; fully-qualified     # 🧑🏾‍🤝‍🧑🏽 people holding hands: medium-dark skin tone, medium skin tone\n#SUPPORT(prf) 1F9D1 1F3FE 200D 1F91D 200D 1F9D1 1F3FE    ; fully-qualified     # 🧑🏾‍🤝‍🧑🏾 people holding hands: medium-dark skin tone\n#SUPPORT(prf) 1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FB    ; fully-qualified     # 🧑🏿‍🤝‍🧑🏻 people holding hands: dark skin tone, light skin tone\n#SUPPORT(prf) 1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FC    ; fully-qualified     # 🧑🏿‍🤝‍🧑🏼 people holding hands: dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FD    ; fully-qualified     # 🧑🏿‍🤝‍🧑🏽 people holding hands: dark skin tone, medium skin tone\n#SUPPORT(prf) 1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FE    ; fully-qualified     # 🧑🏿‍🤝‍🧑🏾 people holding hands: dark skin tone, medium-dark skin tone\n#SUPPORT(prf) 1F9D1 1F3FF 200D 1F91D 200D 1F9D1 1F3FF    ; fully-qualified     # 🧑🏿‍🤝‍🧑🏿 people holding hands: dark skin tone\n1F46D                                      ; fully-qualified     # 👭 women holding hands\n1F46D 1F3FB                                ; fully-qualified     # 👭🏻 women holding hands: light skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F91D 200D 1F469 1F3FB    ; fully-qualified     # 👩🏼‍🤝‍👩🏻 women holding hands: medium-light skin tone, light skin tone\n1F46D 1F3FC                                ; fully-qualified     # 👭🏼 women holding hands: medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F469 1F3FB    ; fully-qualified     # 👩🏽‍🤝‍👩🏻 women holding hands: medium skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F469 1F3FC    ; fully-qualified     # 👩🏽‍🤝‍👩🏼 women holding hands: medium skin tone, medium-light skin tone\n1F46D 1F3FD                                ; fully-qualified     # 👭🏽 women holding hands: medium skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F469 1F3FB    ; fully-qualified     # 👩🏾‍🤝‍👩🏻 women holding hands: medium-dark skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F469 1F3FC    ; fully-qualified     # 👩🏾‍🤝‍👩🏼 women holding hands: medium-dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F469 1F3FD    ; fully-qualified     # 👩🏾‍🤝‍👩🏽 women holding hands: medium-dark skin tone, medium skin tone\n1F46D 1F3FE                                ; fully-qualified     # 👭🏾 women holding hands: medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F469 1F3FB    ; fully-qualified     # 👩🏿‍🤝‍👩🏻 women holding hands: dark skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F469 1F3FC    ; fully-qualified     # 👩🏿‍🤝‍👩🏼 women holding hands: dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F469 1F3FD    ; fully-qualified     # 👩🏿‍🤝‍👩🏽 women holding hands: dark skin tone, medium skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F469 1F3FE    ; fully-qualified     # 👩🏿‍🤝‍👩🏾 women holding hands: dark skin tone, medium-dark skin tone\n1F46D 1F3FF                                ; fully-qualified     # 👭🏿 women holding hands: dark skin tone\n1F46B                                      ; fully-qualified     # 👫 woman and man holding hands\n1F46B 1F3FB                                ; fully-qualified     # 👫🏻 woman and man holding hands: light skin tone\n#SUPPORT(prf) 1F469 1F3FB 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👩🏻‍🤝‍👨🏼 woman and man holding hands: light skin tone, medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FB 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👩🏻‍🤝‍👨🏽 woman and man holding hands: light skin tone, medium skin tone\n#SUPPORT(prf) 1F469 1F3FB 200D 1F91D 200D 1F468 1F3FE    ; fully-qualified     # 👩🏻‍🤝‍👨🏾 woman and man holding hands: light skin tone, medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FB 200D 1F91D 200D 1F468 1F3FF    ; fully-qualified     # 👩🏻‍🤝‍👨🏿 woman and man holding hands: light skin tone, dark skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👩🏼‍🤝‍👨🏻 woman and man holding hands: medium-light skin tone, light skin tone\n1F46B 1F3FC                                ; fully-qualified     # 👫🏼 woman and man holding hands: medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👩🏼‍🤝‍👨🏽 woman and man holding hands: medium-light skin tone, medium skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F91D 200D 1F468 1F3FE    ; fully-qualified     # 👩🏼‍🤝‍👨🏾 woman and man holding hands: medium-light skin tone, medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FC 200D 1F91D 200D 1F468 1F3FF    ; fully-qualified     # 👩🏼‍🤝‍👨🏿 woman and man holding hands: medium-light skin tone, dark skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👩🏽‍🤝‍👨🏻 woman and man holding hands: medium skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👩🏽‍🤝‍👨🏼 woman and man holding hands: medium skin tone, medium-light skin tone\n1F46B 1F3FD                                ; fully-qualified     # 👫🏽 woman and man holding hands: medium skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F468 1F3FE    ; fully-qualified     # 👩🏽‍🤝‍👨🏾 woman and man holding hands: medium skin tone, medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FD 200D 1F91D 200D 1F468 1F3FF    ; fully-qualified     # 👩🏽‍🤝‍👨🏿 woman and man holding hands: medium skin tone, dark skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👩🏾‍🤝‍👨🏻 woman and man holding hands: medium-dark skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👩🏾‍🤝‍👨🏼 woman and man holding hands: medium-dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👩🏾‍🤝‍👨🏽 woman and man holding hands: medium-dark skin tone, medium skin tone\n1F46B 1F3FE                                ; fully-qualified     # 👫🏾 woman and man holding hands: medium-dark skin tone\n#SUPPORT(prf) 1F469 1F3FE 200D 1F91D 200D 1F468 1F3FF    ; fully-qualified     # 👩🏾‍🤝‍👨🏿 woman and man holding hands: medium-dark skin tone, dark skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👩🏿‍🤝‍👨🏻 woman and man holding hands: dark skin tone, light skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👩🏿‍🤝‍👨🏼 woman and man holding hands: dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👩🏿‍🤝‍👨🏽 woman and man holding hands: dark skin tone, medium skin tone\n#SUPPORT(prf) 1F469 1F3FF 200D 1F91D 200D 1F468 1F3FE    ; fully-qualified     # 👩🏿‍🤝‍👨🏾 woman and man holding hands: dark skin tone, medium-dark skin tone\n1F46B 1F3FF                                ; fully-qualified     # 👫🏿 woman and man holding hands: dark skin tone\n1F46C                                      ; fully-qualified     # 👬 men holding hands\n1F46C 1F3FB                                ; fully-qualified     # 👬🏻 men holding hands: light skin tone\n#SUPPORT(prf) 1F468 1F3FC 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👨🏼‍🤝‍👨🏻 men holding hands: medium-light skin tone, light skin tone\n1F46C 1F3FC                                ; fully-qualified     # 👬🏼 men holding hands: medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FD 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👨🏽‍🤝‍👨🏻 men holding hands: medium skin tone, light skin tone\n#SUPPORT(prf) 1F468 1F3FD 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👨🏽‍🤝‍👨🏼 men holding hands: medium skin tone, medium-light skin tone\n1F46C 1F3FD                                ; fully-qualified     # 👬🏽 men holding hands: medium skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👨🏾‍🤝‍👨🏻 men holding hands: medium-dark skin tone, light skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👨🏾‍🤝‍👨🏼 men holding hands: medium-dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FE 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👨🏾‍🤝‍👨🏽 men holding hands: medium-dark skin tone, medium skin tone\n1F46C 1F3FE                                ; fully-qualified     # 👬🏾 men holding hands: medium-dark skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F91D 200D 1F468 1F3FB    ; fully-qualified     # 👨🏿‍🤝‍👨🏻 men holding hands: dark skin tone, light skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F91D 200D 1F468 1F3FC    ; fully-qualified     # 👨🏿‍🤝‍👨🏼 men holding hands: dark skin tone, medium-light skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F91D 200D 1F468 1F3FD    ; fully-qualified     # 👨🏿‍🤝‍👨🏽 men holding hands: dark skin tone, medium skin tone\n#SUPPORT(prf) 1F468 1F3FF 200D 1F91D 200D 1F468 1F3FE    ; fully-qualified     # 👨🏿‍🤝‍👨🏾 men holding hands: dark skin tone, medium-dark skin tone\n1F46C 1F3FF                                ; fully-qualified     # 👬🏿 men holding hands: dark skin tone\n1F48F                                      ; fully-qualified     # 💏 kiss\n#SUPPORT(prf) 1F469 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified     # 👩‍❤️‍💋‍👨 kiss: woman, man\n#SUPPORT(prf) 1F468 200D 2764 FE0F 200D 1F48B 200D 1F468 ; fully-qualified     # 👨‍❤️‍💋‍👨 kiss: man, man\n#SUPPORT(prf) 1F469 200D 2764 FE0F 200D 1F48B 200D 1F469 ; fully-qualified     # 👩‍❤️‍💋‍👩 kiss: woman, woman\n#SUPPORT(prf) 1F491                                      ; fully-qualified     # 💑 couple with heart\n#SUPPORT(prf) 1F469 200D 2764 FE0F 200D 1F468            ; fully-qualified     # 👩‍❤️‍👨 couple with heart: woman, man\n#SUPPORT(prf) 1F468 200D 2764 FE0F 200D 1F468            ; fully-qualified     # 👨‍❤️‍👨 couple with heart: man, man\n#SUPPORT(prf) 1F469 200D 2764 FE0F 200D 1F469            ; fully-qualified     # 👩‍❤️‍👩 couple with heart: woman, woman\n1F46A                                      ; fully-qualified     # 👪 family\n1F468 200D 1F469 200D 1F466                ; fully-qualified     # 👨‍👩‍👦 family: man, woman, boy\n1F468 200D 1F469 200D 1F467                ; fully-qualified     # 👨‍👩‍👧 family: man, woman, girl\n1F468 200D 1F469 200D 1F467 200D 1F466     ; fully-qualified     # 👨‍👩‍👧‍👦 family: man, woman, girl, boy\n1F468 200D 1F469 200D 1F466 200D 1F466     ; fully-qualified     # 👨‍👩‍👦‍👦 family: man, woman, boy, boy\n1F468 200D 1F469 200D 1F467 200D 1F467     ; fully-qualified     # 👨‍👩‍👧‍👧 family: man, woman, girl, girl\n1F468 200D 1F468 200D 1F466                ; fully-qualified     # 👨‍👨‍👦 family: man, man, boy\n1F468 200D 1F468 200D 1F467                ; fully-qualified     # 👨‍👨‍👧 family: man, man, girl\n1F468 200D 1F468 200D 1F467 200D 1F466     ; fully-qualified     # 👨‍👨‍👧‍👦 family: man, man, girl, boy\n1F468 200D 1F468 200D 1F466 200D 1F466     ; fully-qualified     # 👨‍👨‍👦‍👦 family: man, man, boy, boy\n1F468 200D 1F468 200D 1F467 200D 1F467     ; fully-qualified     # 👨‍👨‍👧‍👧 family: man, man, girl, girl\n1F469 200D 1F469 200D 1F466                ; fully-qualified     # 👩‍👩‍👦 family: woman, woman, boy\n1F469 200D 1F469 200D 1F467                ; fully-qualified     # 👩‍👩‍👧 family: woman, woman, girl\n1F469 200D 1F469 200D 1F467 200D 1F466     ; fully-qualified     # 👩‍👩‍👧‍👦 family: woman, woman, girl, boy\n1F469 200D 1F469 200D 1F466 200D 1F466     ; fully-qualified     # 👩‍👩‍👦‍👦 family: woman, woman, boy, boy\n1F469 200D 1F469 200D 1F467 200D 1F467     ; fully-qualified     # 👩‍👩‍👧‍👧 family: woman, woman, girl, girl\n1F468 200D 1F466                           ; fully-qualified     # 👨‍👦 family: man, boy\n1F468 200D 1F466 200D 1F466                ; fully-qualified     # 👨‍👦‍👦 family: man, boy, boy\n1F468 200D 1F467                           ; fully-qualified     # 👨‍👧 family: man, girl\n1F468 200D 1F467 200D 1F466                ; fully-qualified     # 👨‍👧‍👦 family: man, girl, boy\n1F468 200D 1F467 200D 1F467                ; fully-qualified     # 👨‍👧‍👧 family: man, girl, girl\n1F469 200D 1F466                           ; fully-qualified     # 👩‍👦 family: woman, boy\n1F469 200D 1F466 200D 1F466                ; fully-qualified     # 👩‍👦‍👦 family: woman, boy, boy\n1F469 200D 1F467                           ; fully-qualified     # 👩‍👧 family: woman, girl\n1F469 200D 1F467 200D 1F466                ; fully-qualified     # 👩‍👧‍👦 family: woman, girl, boy\n1F469 200D 1F467 200D 1F467                ; fully-qualified     # 👩‍👧‍👧 family: woman, girl, girl\n\n# subgroup: person-symbol\n1F5E3 FE0F                                 ; fully-qualified     # 🗣️ speaking head\n1F464                                      ; fully-qualified     # 👤 bust in silhouette\n1F465                                      ; fully-qualified     # 👥 busts in silhouette\n1F463                                      ; fully-qualified     # 👣 footprints\n\n# People & Body subtotal:\t\t2212\n# People & Body subtotal:\t\t447\tw/o modifiers\n\n# group: Component\n\n# subgroup: skin-tone\n1F3FB                                      ; component           # 🏻 light skin tone\n1F3FC                                      ; component           # 🏼 medium-light skin tone\n1F3FD                                      ; component           # 🏽 medium skin tone\n1F3FE                                      ; component           # 🏾 medium-dark skin tone\n1F3FF                                      ; component           # 🏿 dark skin tone\n\n# subgroup: hair-style\n1F9B0                                      ; component           # 🦰 red hair\n1F9B1                                      ; component           # 🦱 curly hair\n1F9B3                                      ; component           # 🦳 white hair\n1F9B2                                      ; component           # 🦲 bald\n\n# Component subtotal:\t\t9\n# Component subtotal:\t\t4\tw/o modifiers\n\n# group: Animals & Nature\n\n# subgroup: animal-mammal\n1F435                                      ; fully-qualified     # 🐵 monkey face\n1F412                                      ; fully-qualified     # 🐒 monkey\n1F98D                                      ; fully-qualified     # 🦍 gorilla\n#SUPPORT(prf) 1F9A7                                      ; fully-qualified     # 🦧 orangutan\n1F436                                      ; fully-qualified     # 🐶 dog face\n1F415                                      ; fully-qualified     # 🐕 dog\n#SUPPORT(prf) 1F9AE                                      ; fully-qualified     # 🦮 guide dog\n#SUPPORT(prf) 1F415 200D 1F9BA                           ; fully-qualified     # 🐕‍🦺 service dog\n1F429                                      ; fully-qualified     # 🐩 poodle\n1F43A                                      ; fully-qualified     # 🐺 wolf\n1F98A                                      ; fully-qualified     # 🦊 fox\n1F99D                                      ; fully-qualified     # 🦝 raccoon\n1F431                                      ; fully-qualified     # 🐱 cat face\n1F408                                      ; fully-qualified     # 🐈 cat\n1F981                                      ; fully-qualified     # 🦁 lion\n1F42F                                      ; fully-qualified     # 🐯 tiger face\n1F405                                      ; fully-qualified     # 🐅 tiger\n1F406                                      ; fully-qualified     # 🐆 leopard\n1F434                                      ; fully-qualified     # 🐴 horse face\n1F40E                                      ; fully-qualified     # 🐎 horse\n1F984                                      ; fully-qualified     # 🦄 unicorn\n1F993                                      ; fully-qualified     # 🦓 zebra\n1F98C                                      ; fully-qualified     # 🦌 deer\n1F42E                                      ; fully-qualified     # 🐮 cow face\n1F402                                      ; fully-qualified     # 🐂 ox\n1F403                                      ; fully-qualified     # 🐃 water buffalo\n1F404                                      ; fully-qualified     # 🐄 cow\n1F437                                      ; fully-qualified     # 🐷 pig face\n1F416                                      ; fully-qualified     # 🐖 pig\n1F417                                      ; fully-qualified     # 🐗 boar\n1F43D                                      ; fully-qualified     # 🐽 pig nose\n1F40F                                      ; fully-qualified     # 🐏 ram\n1F411                                      ; fully-qualified     # 🐑 ewe\n1F410                                      ; fully-qualified     # 🐐 goat\n1F42A                                      ; fully-qualified     # 🐪 camel\n1F42B                                      ; fully-qualified     # 🐫 two-hump camel\n1F999                                      ; fully-qualified     # 🦙 llama\n1F992                                      ; fully-qualified     # 🦒 giraffe\n1F418                                      ; fully-qualified     # 🐘 elephant\n1F98F                                      ; fully-qualified     # 🦏 rhinoceros\n1F99B                                      ; fully-qualified     # 🦛 hippopotamus\n1F42D                                      ; fully-qualified     # 🐭 mouse face\n1F401                                      ; fully-qualified     # 🐁 mouse\n1F400                                      ; fully-qualified     # 🐀 rat\n1F439                                      ; fully-qualified     # 🐹 hamster\n1F430                                      ; fully-qualified     # 🐰 rabbit face\n1F407                                      ; fully-qualified     # 🐇 rabbit\n1F43F FE0F                                 ; fully-qualified     # 🐿️ chipmunk\n1F994                                      ; fully-qualified     # 🦔 hedgehog\n1F987                                      ; fully-qualified     # 🦇 bat\n1F43B                                      ; fully-qualified     # 🐻 bear\n1F428                                      ; fully-qualified     # 🐨 koala\n1F43C                                      ; fully-qualified     # 🐼 panda\n#SUPPORT(prf) 1F9A5                                      ; fully-qualified     # 🦥 sloth\n#SUPPORT(prf) 1F9A6                                      ; fully-qualified     # 🦦 otter\n#SUPPORT(prf) 1F9A8                                      ; fully-qualified     # 🦨 skunk\n1F998                                      ; fully-qualified     # 🦘 kangaroo\n1F9A1                                      ; fully-qualified     # 🦡 badger\n1F43E                                      ; fully-qualified     # 🐾 paw prints\n\n# subgroup: animal-bird\n1F983                                      ; fully-qualified     # 🦃 turkey\n1F414                                      ; fully-qualified     # 🐔 chicken\n1F413                                      ; fully-qualified     # 🐓 rooster\n1F423                                      ; fully-qualified     # 🐣 hatching chick\n1F424                                      ; fully-qualified     # 🐤 baby chick\n1F425                                      ; fully-qualified     # 🐥 front-facing baby chick\n1F426                                      ; fully-qualified     # 🐦 bird\n1F427                                      ; fully-qualified     # 🐧 penguin\n1F54A FE0F                                 ; fully-qualified     # 🕊️ dove\n1F985                                      ; fully-qualified     # 🦅 eagle\n1F986                                      ; fully-qualified     # 🦆 duck\n1F9A2                                      ; fully-qualified     # 🦢 swan\n1F989                                      ; fully-qualified     # 🦉 owl\n#SUPPORT(prf) 1F9A9                                      ; fully-qualified     # 🦩 flamingo\n1F99A                                      ; fully-qualified     # 🦚 peacock\n1F99C                                      ; fully-qualified     # 🦜 parrot\n\n# subgroup: animal-amphibian\n1F438                                      ; fully-qualified     # 🐸 frog\n\n# subgroup: animal-reptile\n1F40A                                      ; fully-qualified     # 🐊 crocodile\n1F422                                      ; fully-qualified     # 🐢 turtle\n1F98E                                      ; fully-qualified     # 🦎 lizard\n1F40D                                      ; fully-qualified     # 🐍 snake\n1F432                                      ; fully-qualified     # 🐲 dragon face\n1F409                                      ; fully-qualified     # 🐉 dragon\n1F995                                      ; fully-qualified     # 🦕 sauropod\n1F996                                      ; fully-qualified     # 🦖 T-Rex\n\n# subgroup: animal-marine\n1F433                                      ; fully-qualified     # 🐳 spouting whale\n1F40B                                      ; fully-qualified     # 🐋 whale\n1F42C                                      ; fully-qualified     # 🐬 dolphin\n1F41F                                      ; fully-qualified     # 🐟 fish\n1F420                                      ; fully-qualified     # 🐠 tropical fish\n1F421                                      ; fully-qualified     # 🐡 blowfish\n1F988                                      ; fully-qualified     # 🦈 shark\n1F419                                      ; fully-qualified     # 🐙 octopus\n1F41A                                      ; fully-qualified     # 🐚 spiral shell\n\n# subgroup: animal-bug\n1F40C                                      ; fully-qualified     # 🐌 snail\n1F98B                                      ; fully-qualified     # 🦋 butterfly\n1F41B                                      ; fully-qualified     # 🐛 bug\n1F41C                                      ; fully-qualified     # 🐜 ant\n1F41D                                      ; fully-qualified     # 🐝 honeybee\n1F41E                                      ; fully-qualified     # 🐞 lady beetle\n1F997                                      ; fully-qualified     # 🦗 cricket\n1F577 FE0F                                 ; fully-qualified     # 🕷️ spider\n1F578 FE0F                                 ; fully-qualified     # 🕸️ spider web\n1F982                                      ; fully-qualified     # 🦂 scorpion\n1F99F                                      ; fully-qualified     # 🦟 mosquito\n1F9A0                                      ; fully-qualified     # 🦠 microbe\n\n# subgroup: plant-flower\n1F490                                      ; fully-qualified     # 💐 bouquet\n1F338                                      ; fully-qualified     # 🌸 cherry blossom\n1F4AE                                      ; fully-qualified     # 💮 white flower\n1F3F5 FE0F                                 ; fully-qualified     # 🏵️ rosette\n1F339                                      ; fully-qualified     # 🌹 rose\n1F940                                      ; fully-qualified     # 🥀 wilted flower\n1F33A                                      ; fully-qualified     # 🌺 hibiscus\n1F33B                                      ; fully-qualified     # 🌻 sunflower\n1F33C                                      ; fully-qualified     # 🌼 blossom\n1F337                                      ; fully-qualified     # 🌷 tulip\n\n# subgroup: plant-other\n1F331                                      ; fully-qualified     # 🌱 seedling\n1F332                                      ; fully-qualified     # 🌲 evergreen tree\n1F333                                      ; fully-qualified     # 🌳 deciduous tree\n1F334                                      ; fully-qualified     # 🌴 palm tree\n1F335                                      ; fully-qualified     # 🌵 cactus\n1F33E                                      ; fully-qualified     # 🌾 sheaf of rice\n1F33F                                      ; fully-qualified     # 🌿 herb\n2618 FE0F                                  ; fully-qualified     # ☘️ shamrock\n1F340                                      ; fully-qualified     # 🍀 four leaf clover\n1F341                                      ; fully-qualified     # 🍁 maple leaf\n1F342                                      ; fully-qualified     # 🍂 fallen leaf\n1F343                                      ; fully-qualified     # 🍃 leaf fluttering in wind\n\n# Animals & Nature subtotal:\t\t133\n# Animals & Nature subtotal:\t\t133\tw/o modifiers\n\n# group: Food & Drink\n\n# subgroup: food-fruit\n1F347                                      ; fully-qualified     # 🍇 grapes\n1F348                                      ; fully-qualified     # 🍈 melon\n1F349                                      ; fully-qualified     # 🍉 watermelon\n1F34A                                      ; fully-qualified     # 🍊 tangerine\n1F34B                                      ; fully-qualified     # 🍋 lemon\n1F34C                                      ; fully-qualified     # 🍌 banana\n1F34D                                      ; fully-qualified     # 🍍 pineapple\n1F96D                                      ; fully-qualified     # 🥭 mango\n1F34E                                      ; fully-qualified     # 🍎 red apple\n1F34F                                      ; fully-qualified     # 🍏 green apple\n1F350                                      ; fully-qualified     # 🍐 pear\n1F351                                      ; fully-qualified     # 🍑 peach\n1F352                                      ; fully-qualified     # 🍒 cherries\n1F353                                      ; fully-qualified     # 🍓 strawberry\n1F95D                                      ; fully-qualified     # 🥝 kiwi fruit\n1F345                                      ; fully-qualified     # 🍅 tomato\n1F965                                      ; fully-qualified     # 🥥 coconut\n\n# subgroup: food-vegetable\n1F951                                      ; fully-qualified     # 🥑 avocado\n1F346                                      ; fully-qualified     # 🍆 eggplant\n1F954                                      ; fully-qualified     # 🥔 potato\n1F955                                      ; fully-qualified     # 🥕 carrot\n1F33D                                      ; fully-qualified     # 🌽 ear of corn\n1F336 FE0F                                 ; fully-qualified     # 🌶️ hot pepper\n1F952                                      ; fully-qualified     # 🥒 cucumber\n1F96C                                      ; fully-qualified     # 🥬 leafy green\n1F966                                      ; fully-qualified     # 🥦 broccoli\n#SUPPORT(prf) 1F9C4                                      ; fully-qualified     # 🧄 garlic\n#SUPPORT(prf) 1F9C5                                      ; fully-qualified     # 🧅 onion\n1F344                                      ; fully-qualified     # 🍄 mushroom\n1F95C                                      ; fully-qualified     # 🥜 peanuts\n1F330                                      ; fully-qualified     # 🌰 chestnut\n\n# subgroup: food-prepared\n1F35E                                      ; fully-qualified     # 🍞 bread\n1F950                                      ; fully-qualified     # 🥐 croissant\n1F956                                      ; fully-qualified     # 🥖 baguette bread\n1F968                                      ; fully-qualified     # 🥨 pretzel\n1F96F                                      ; fully-qualified     # 🥯 bagel\n1F95E                                      ; fully-qualified     # 🥞 pancakes\n#SUPPORT(prf) 1F9C7                                      ; fully-qualified     # 🧇 waffle\n1F9C0                                      ; fully-qualified     # 🧀 cheese wedge\n1F356                                      ; fully-qualified     # 🍖 meat on bone\n1F357                                      ; fully-qualified     # 🍗 poultry leg\n1F969                                      ; fully-qualified     # 🥩 cut of meat\n1F953                                      ; fully-qualified     # 🥓 bacon\n1F354                                      ; fully-qualified     # 🍔 hamburger\n1F35F                                      ; fully-qualified     # 🍟 french fries\n1F355                                      ; fully-qualified     # 🍕 pizza\n1F32D                                      ; fully-qualified     # 🌭 hot dog\n1F96A                                      ; fully-qualified     # 🥪 sandwich\n1F32E                                      ; fully-qualified     # 🌮 taco\n1F32F                                      ; fully-qualified     # 🌯 burrito\n1F959                                      ; fully-qualified     # 🥙 stuffed flatbread\n#SUPPORT(prf) 1F9C6                                      ; fully-qualified     # 🧆 falafel\n1F95A                                      ; fully-qualified     # 🥚 egg\n1F373                                      ; fully-qualified     # 🍳 cooking\n1F958                                      ; fully-qualified     # 🥘 shallow pan of food\n1F372                                      ; fully-qualified     # 🍲 pot of food\n1F963                                      ; fully-qualified     # 🥣 bowl with spoon\n1F957                                      ; fully-qualified     # 🥗 green salad\n1F37F                                      ; fully-qualified     # 🍿 popcorn\n#SUPPORT(prf) 1F9C8                                      ; fully-qualified     # 🧈 butter\n1F9C2                                      ; fully-qualified     # 🧂 salt\n1F96B                                      ; fully-qualified     # 🥫 canned food\n\n# subgroup: food-asian\n1F371                                      ; fully-qualified     # 🍱 bento box\n1F358                                      ; fully-qualified     # 🍘 rice cracker\n1F359                                      ; fully-qualified     # 🍙 rice ball\n1F35A                                      ; fully-qualified     # 🍚 cooked rice\n1F35B                                      ; fully-qualified     # 🍛 curry rice\n1F35C                                      ; fully-qualified     # 🍜 steaming bowl\n1F35D                                      ; fully-qualified     # 🍝 spaghetti\n1F360                                      ; fully-qualified     # 🍠 roasted sweet potato\n1F362                                      ; fully-qualified     # 🍢 oden\n1F363                                      ; fully-qualified     # 🍣 sushi\n1F364                                      ; fully-qualified     # 🍤 fried shrimp\n1F365                                      ; fully-qualified     # 🍥 fish cake with swirl\n1F96E                                      ; fully-qualified     # 🥮 moon cake\n1F361                                      ; fully-qualified     # 🍡 dango\n1F95F                                      ; fully-qualified     # 🥟 dumpling\n1F960                                      ; fully-qualified     # 🥠 fortune cookie\n1F961                                      ; fully-qualified     # 🥡 takeout box\n\n# subgroup: food-marine\n1F980                                      ; fully-qualified     # 🦀 crab\n1F99E                                      ; fully-qualified     # 🦞 lobster\n1F990                                      ; fully-qualified     # 🦐 shrimp\n1F991                                      ; fully-qualified     # 🦑 squid\n#SUPPORT(prf) 1F9AA                                      ; fully-qualified     # 🦪 oyster\n\n# subgroup: food-sweet\n1F366                                      ; fully-qualified     # 🍦 soft ice cream\n1F367                                      ; fully-qualified     # 🍧 shaved ice\n1F368                                      ; fully-qualified     # 🍨 ice cream\n1F369                                      ; fully-qualified     # 🍩 doughnut\n1F36A                                      ; fully-qualified     # 🍪 cookie\n1F382                                      ; fully-qualified     # 🎂 birthday cake\n1F370                                      ; fully-qualified     # 🍰 shortcake\n1F9C1                                      ; fully-qualified     # 🧁 cupcake\n1F967                                      ; fully-qualified     # 🥧 pie\n1F36B                                      ; fully-qualified     # 🍫 chocolate bar\n1F36C                                      ; fully-qualified     # 🍬 candy\n1F36D                                      ; fully-qualified     # 🍭 lollipop\n1F36E                                      ; fully-qualified     # 🍮 custard\n1F36F                                      ; fully-qualified     # 🍯 honey pot\n\n# subgroup: drink\n1F37C                                      ; fully-qualified     # 🍼 baby bottle\n1F95B                                      ; fully-qualified     # 🥛 glass of milk\n2615                                       ; fully-qualified     # ☕ hot beverage\n1F375                                      ; fully-qualified     # 🍵 teacup without handle\n1F376                                      ; fully-qualified     # 🍶 sake\n1F37E                                      ; fully-qualified     # 🍾 bottle with popping cork\n1F377                                      ; fully-qualified     # 🍷 wine glass\n1F378                                      ; fully-qualified     # 🍸 cocktail glass\n1F379                                      ; fully-qualified     # 🍹 tropical drink\n1F37A                                      ; fully-qualified     # 🍺 beer mug\n1F37B                                      ; fully-qualified     # 🍻 clinking beer mugs\n1F942                                      ; fully-qualified     # 🥂 clinking glasses\n1F943                                      ; fully-qualified     # 🥃 tumbler glass\n1F964                                      ; fully-qualified     # 🥤 cup with straw\n#SUPPORT(prf) 1F9C3                                      ; fully-qualified     # 🧃 beverage box\n#SUPPORT(prf) 1F9C9                                      ; fully-qualified     # 🧉 mate\n#SUPPORT(prf) 1F9CA                                      ; fully-qualified     # 🧊 ice cube\n\n# subgroup: dishware\n1F962                                      ; fully-qualified     # 🥢 chopsticks\n1F37D FE0F                                 ; fully-qualified     # 🍽️ fork and knife with plate\n1F374                                      ; fully-qualified     # 🍴 fork and knife\n1F944                                      ; fully-qualified     # 🥄 spoon\n1F52A                                      ; fully-qualified     # 🔪 kitchen knife\n1F3FA                                      ; fully-qualified     # 🏺 amphora\n\n# Food & Drink subtotal:\t\t123\n# Food & Drink subtotal:\t\t123\tw/o modifiers\n\n# group: Travel & Places\n\n# subgroup: place-map\n1F30D                                      ; fully-qualified     # 🌍 globe showing Europe-Africa\n1F30E                                      ; fully-qualified     # 🌎 globe showing Americas\n1F30F                                      ; fully-qualified     # 🌏 globe showing Asia-Australia\n1F310                                      ; fully-qualified     # 🌐 globe with meridians\n1F5FA FE0F                                 ; fully-qualified     # 🗺️ world map\n1F5FE                                      ; fully-qualified     # 🗾 map of Japan\n1F9ED                                      ; fully-qualified     # 🧭 compass\n\n# subgroup: place-geographic\n1F3D4 FE0F                                 ; fully-qualified     # 🏔️ snow-capped mountain\n26F0 FE0F                                  ; fully-qualified     # ⛰️ mountain\n1F30B                                      ; fully-qualified     # 🌋 volcano\n1F5FB                                      ; fully-qualified     # 🗻 mount fuji\n1F3D5 FE0F                                 ; fully-qualified     # 🏕️ camping\n1F3D6 FE0F                                 ; fully-qualified     # 🏖️ beach with umbrella\n1F3DC FE0F                                 ; fully-qualified     # 🏜️ desert\n1F3DD FE0F                                 ; fully-qualified     # 🏝️ desert island\n1F3DE FE0F                                 ; fully-qualified     # 🏞️ national park\n\n# subgroup: place-building\n1F3DF FE0F                                 ; fully-qualified     # 🏟️ stadium\n1F3DB FE0F                                 ; fully-qualified     # 🏛️ classical building\n1F3D7 FE0F                                 ; fully-qualified     # 🏗️ building construction\n1F9F1                                      ; fully-qualified     # 🧱 brick\n1F3D8 FE0F                                 ; fully-qualified     # 🏘️ houses\n1F3DA FE0F                                 ; fully-qualified     # 🏚️ derelict house\n1F3E0                                      ; fully-qualified     # 🏠 house\n1F3E1                                      ; fully-qualified     # 🏡 house with garden\n1F3E2                                      ; fully-qualified     # 🏢 office building\n1F3E3                                      ; fully-qualified     # 🏣 Japanese post office\n1F3E4                                      ; fully-qualified     # 🏤 post office\n1F3E5                                      ; fully-qualified     # 🏥 hospital\n1F3E6                                      ; fully-qualified     # 🏦 bank\n1F3E8                                      ; fully-qualified     # 🏨 hotel\n1F3E9                                      ; fully-qualified     # 🏩 love hotel\n1F3EA                                      ; fully-qualified     # 🏪 convenience store\n1F3EB                                      ; fully-qualified     # 🏫 school\n1F3EC                                      ; fully-qualified     # 🏬 department store\n1F3ED                                      ; fully-qualified     # 🏭 factory\n1F3EF                                      ; fully-qualified     # 🏯 Japanese castle\n1F3F0                                      ; fully-qualified     # 🏰 castle\n1F492                                      ; fully-qualified     # 💒 wedding\n1F5FC                                      ; fully-qualified     # 🗼 Tokyo tower\n1F5FD                                      ; fully-qualified     # 🗽 Statue of Liberty\n\n# subgroup: place-religious\n26EA                                       ; fully-qualified     # ⛪ church\n1F54C                                      ; fully-qualified     # 🕌 mosque\n#SUPPORT(prf) 1F6D5                                      ; fully-qualified     # 🛕 hindu temple\n1F54D                                      ; fully-qualified     # 🕍 synagogue\n26E9 FE0F                                  ; fully-qualified     # ⛩️ shinto shrine\n1F54B                                      ; fully-qualified     # 🕋 kaaba\n\n# subgroup: place-other\n26F2                                       ; fully-qualified     # ⛲ fountain\n26FA                                       ; fully-qualified     # ⛺ tent\n1F301                                      ; fully-qualified     # 🌁 foggy\n1F303                                      ; fully-qualified     # 🌃 night with stars\n1F3D9 FE0F                                 ; fully-qualified     # 🏙️ cityscape\n1F304                                      ; fully-qualified     # 🌄 sunrise over mountains\n1F305                                      ; fully-qualified     # 🌅 sunrise\n1F306                                      ; fully-qualified     # 🌆 cityscape at dusk\n1F307                                      ; fully-qualified     # 🌇 sunset\n1F309                                      ; fully-qualified     # 🌉 bridge at night\n2668 FE0F                                  ; fully-qualified     # ♨️ hot springs\n1F3A0                                      ; fully-qualified     # 🎠 carousel horse\n1F3A1                                      ; fully-qualified     # 🎡 ferris wheel\n1F3A2                                      ; fully-qualified     # 🎢 roller coaster\n1F488                                      ; fully-qualified     # 💈 barber pole\n1F3AA                                      ; fully-qualified     # 🎪 circus tent\n\n# subgroup: transport-ground\n1F682                                      ; fully-qualified     # 🚂 locomotive\n1F683                                      ; fully-qualified     # 🚃 railway car\n1F684                                      ; fully-qualified     # 🚄 high-speed train\n1F685                                      ; fully-qualified     # 🚅 bullet train\n1F686                                      ; fully-qualified     # 🚆 train\n1F687                                      ; fully-qualified     # 🚇 metro\n1F688                                      ; fully-qualified     # 🚈 light rail\n1F689                                      ; fully-qualified     # 🚉 station\n1F68A                                      ; fully-qualified     # 🚊 tram\n1F69D                                      ; fully-qualified     # 🚝 monorail\n1F69E                                      ; fully-qualified     # 🚞 mountain railway\n1F68B                                      ; fully-qualified     # 🚋 tram car\n1F68C                                      ; fully-qualified     # 🚌 bus\n1F68D                                      ; fully-qualified     # 🚍 oncoming bus\n1F68E                                      ; fully-qualified     # 🚎 trolleybus\n1F690                                      ; fully-qualified     # 🚐 minibus\n1F691                                      ; fully-qualified     # 🚑 ambulance\n1F692                                      ; fully-qualified     # 🚒 fire engine\n1F693                                      ; fully-qualified     # 🚓 police car\n1F694                                      ; fully-qualified     # 🚔 oncoming police car\n1F695                                      ; fully-qualified     # 🚕 taxi\n1F696                                      ; fully-qualified     # 🚖 oncoming taxi\n1F697                                      ; fully-qualified     # 🚗 automobile\n1F698                                      ; fully-qualified     # 🚘 oncoming automobile\n1F699                                      ; fully-qualified     # 🚙 sport utility vehicle\n1F69A                                      ; fully-qualified     # 🚚 delivery truck\n1F69B                                      ; fully-qualified     # 🚛 articulated lorry\n1F69C                                      ; fully-qualified     # 🚜 tractor\n1F3CE FE0F                                 ; fully-qualified     # 🏎️ racing car\n1F3CD FE0F                                 ; fully-qualified     # 🏍️ motorcycle\n1F6F5                                      ; fully-qualified     # 🛵 motor scooter\n#SUPPORT(prf) 1F9BD                                      ; fully-qualified     # 🦽 manual wheelchair\n#SUPPORT(prf) 1F9BC                                      ; fully-qualified     # 🦼 motorized wheelchair\n#SUPPORT(prf) 1F6FA                                      ; fully-qualified     # 🛺 auto rickshaw\n1F6B2                                      ; fully-qualified     # 🚲 bicycle\n1F6F4                                      ; fully-qualified     # 🛴 kick scooter\n1F6F9                                      ; fully-qualified     # 🛹 skateboard\n1F68F                                      ; fully-qualified     # 🚏 bus stop\n1F6E3 FE0F                                 ; fully-qualified     # 🛣️ motorway\n1F6E4 FE0F                                 ; fully-qualified     # 🛤️ railway track\n1F6E2 FE0F                                 ; fully-qualified     # 🛢️ oil drum\n26FD                                       ; fully-qualified     # ⛽ fuel pump\n1F6A8                                      ; fully-qualified     # 🚨 police car light\n1F6A5                                      ; fully-qualified     # 🚥 horizontal traffic light\n1F6A6                                      ; fully-qualified     # 🚦 vertical traffic light\n1F6D1                                      ; fully-qualified     # 🛑 stop sign\n1F6A7                                      ; fully-qualified     # 🚧 construction\n\n# subgroup: transport-water\n2693                                       ; fully-qualified     # ⚓ anchor\n26F5                                       ; fully-qualified     # ⛵ sailboat\n1F6F6                                      ; fully-qualified     # 🛶 canoe\n1F6A4                                      ; fully-qualified     # 🚤 speedboat\n1F6F3 FE0F                                 ; fully-qualified     # 🛳️ passenger ship\n26F4 FE0F                                  ; fully-qualified     # ⛴️ ferry\n1F6E5 FE0F                                 ; fully-qualified     # 🛥️ motor boat\n1F6A2                                      ; fully-qualified     # 🚢 ship\n\n# subgroup: transport-air\n2708 FE0F                                  ; fully-qualified     # ✈️ airplane\n1F6E9 FE0F                                 ; fully-qualified     # 🛩️ small airplane\n1F6EB                                      ; fully-qualified     # 🛫 airplane departure\n1F6EC                                      ; fully-qualified     # 🛬 airplane arrival\n#SUPPORT(prf) 1FA82                                      ; fully-qualified     # 🪂 parachute\n1F4BA                                      ; fully-qualified     # 💺 seat\n1F681                                      ; fully-qualified     # 🚁 helicopter\n1F69F                                      ; fully-qualified     # 🚟 suspension railway\n1F6A0                                      ; fully-qualified     # 🚠 mountain cableway\n1F6A1                                      ; fully-qualified     # 🚡 aerial tramway\n1F6F0 FE0F                                 ; fully-qualified     # 🛰️ satellite\n1F680                                      ; fully-qualified     # 🚀 rocket\n1F6F8                                      ; fully-qualified     # 🛸 flying saucer\n\n# subgroup: hotel\n1F6CE FE0F                                 ; fully-qualified     # 🛎️ bellhop bell\n1F9F3                                      ; fully-qualified     # 🧳 luggage\n\n# subgroup: time\n231B                                       ; fully-qualified     # ⌛ hourglass done\n23F3                                       ; fully-qualified     # ⏳ hourglass not done\n231A                                       ; fully-qualified     # ⌚ watch\n23F0                                       ; fully-qualified     # ⏰ alarm clock\n23F1 FE0F                                  ; fully-qualified     # ⏱️ stopwatch\n23F2 FE0F                                  ; fully-qualified     # ⏲️ timer clock\n1F570 FE0F                                 ; fully-qualified     # 🕰️ mantelpiece clock\n1F55B                                      ; fully-qualified     # 🕛 twelve o’clock\n1F567                                      ; fully-qualified     # 🕧 twelve-thirty\n1F550                                      ; fully-qualified     # 🕐 one o’clock\n1F55C                                      ; fully-qualified     # 🕜 one-thirty\n1F551                                      ; fully-qualified     # 🕑 two o’clock\n1F55D                                      ; fully-qualified     # 🕝 two-thirty\n1F552                                      ; fully-qualified     # 🕒 three o’clock\n1F55E                                      ; fully-qualified     # 🕞 three-thirty\n1F553                                      ; fully-qualified     # 🕓 four o’clock\n1F55F                                      ; fully-qualified     # 🕟 four-thirty\n1F554                                      ; fully-qualified     # 🕔 five o’clock\n1F560                                      ; fully-qualified     # 🕠 five-thirty\n1F555                                      ; fully-qualified     # 🕕 six o’clock\n1F561                                      ; fully-qualified     # 🕡 six-thirty\n1F556                                      ; fully-qualified     # 🕖 seven o’clock\n1F562                                      ; fully-qualified     # 🕢 seven-thirty\n1F557                                      ; fully-qualified     # 🕗 eight o’clock\n1F563                                      ; fully-qualified     # 🕣 eight-thirty\n1F558                                      ; fully-qualified     # 🕘 nine o’clock\n1F564                                      ; fully-qualified     # 🕤 nine-thirty\n1F559                                      ; fully-qualified     # 🕙 ten o’clock\n1F565                                      ; fully-qualified     # 🕥 ten-thirty\n1F55A                                      ; fully-qualified     # 🕚 eleven o’clock\n1F566                                      ; fully-qualified     # 🕦 eleven-thirty\n\n# subgroup: sky & weather\n1F311                                      ; fully-qualified     # 🌑 new moon\n1F312                                      ; fully-qualified     # 🌒 waxing crescent moon\n1F313                                      ; fully-qualified     # 🌓 first quarter moon\n1F314                                      ; fully-qualified     # 🌔 waxing gibbous moon\n1F315                                      ; fully-qualified     # 🌕 full moon\n1F316                                      ; fully-qualified     # 🌖 waning gibbous moon\n1F317                                      ; fully-qualified     # 🌗 last quarter moon\n1F318                                      ; fully-qualified     # 🌘 waning crescent moon\n1F319                                      ; fully-qualified     # 🌙 crescent moon\n1F31A                                      ; fully-qualified     # 🌚 new moon face\n1F31B                                      ; fully-qualified     # 🌛 first quarter moon face\n1F31C                                      ; fully-qualified     # 🌜 last quarter moon face\n1F321 FE0F                                 ; fully-qualified     # 🌡️ thermometer\n2600 FE0F                                  ; fully-qualified     # ☀️ sun\n1F31D                                      ; fully-qualified     # 🌝 full moon face\n1F31E                                      ; fully-qualified     # 🌞 sun with face\n#SUPPORT(prf) 1FA90                                      ; fully-qualified     # 🪐 ringed planet\n2B50                                       ; fully-qualified     # ⭐ star\n1F31F                                      ; fully-qualified     # 🌟 glowing star\n1F320                                      ; fully-qualified     # 🌠 shooting star\n1F30C                                      ; fully-qualified     # 🌌 milky way\n2601 FE0F                                  ; fully-qualified     # ☁️ cloud\n26C5                                       ; fully-qualified     # ⛅ sun behind cloud\n26C8 FE0F                                  ; fully-qualified     # ⛈️ cloud with lightning and rain\n1F324 FE0F                                 ; fully-qualified     # 🌤️ sun behind small cloud\n1F325 FE0F                                 ; fully-qualified     # 🌥️ sun behind large cloud\n1F326 FE0F                                 ; fully-qualified     # 🌦️ sun behind rain cloud\n1F327 FE0F                                 ; fully-qualified     # 🌧️ cloud with rain\n1F328 FE0F                                 ; fully-qualified     # 🌨️ cloud with snow\n1F329 FE0F                                 ; fully-qualified     # 🌩️ cloud with lightning\n1F32A FE0F                                 ; fully-qualified     # 🌪️ tornado\n1F32B FE0F                                 ; fully-qualified     # 🌫️ fog\n1F32C FE0F                                 ; fully-qualified     # 🌬️ wind face\n1F300                                      ; fully-qualified     # 🌀 cyclone\n1F308                                      ; fully-qualified     # 🌈 rainbow\n1F302                                      ; fully-qualified     # 🌂 closed umbrella\n2602 FE0F                                  ; fully-qualified     # ☂️ umbrella\n2614                                       ; fully-qualified     # ☔ umbrella with rain drops\n26F1 FE0F                                  ; fully-qualified     # ⛱️ umbrella on ground\n26A1                                       ; fully-qualified     # ⚡ high voltage\n2744 FE0F                                  ; fully-qualified     # ❄️ snowflake\n2603 FE0F                                  ; fully-qualified     # ☃️ snowman\n26C4                                       ; fully-qualified     # ⛄ snowman without snow\n2604 FE0F                                  ; fully-qualified     # ☄️ comet\n1F525                                      ; fully-qualified     # 🔥 fire\n1F4A7                                      ; fully-qualified     # 💧 droplet\n1F30A                                      ; fully-qualified     # 🌊 water wave\n\n# Travel & Places subtotal:\t\t259\n# Travel & Places subtotal:\t\t259\tw/o modifiers\n\n# group: Activities\n\n# subgroup: event\n1F383                                      ; fully-qualified     # 🎃 jack-o-lantern\n1F384                                      ; fully-qualified     # 🎄 Christmas tree\n1F386                                      ; fully-qualified     # 🎆 fireworks\n1F387                                      ; fully-qualified     # 🎇 sparkler\n1F9E8                                      ; fully-qualified     # 🧨 firecracker\n2728                                       ; fully-qualified     # ✨ sparkles\n1F388                                      ; fully-qualified     # 🎈 balloon\n1F389                                      ; fully-qualified     # 🎉 party popper\n1F38A                                      ; fully-qualified     # 🎊 confetti ball\n1F38B                                      ; fully-qualified     # 🎋 tanabata tree\n1F38D                                      ; fully-qualified     # 🎍 pine decoration\n1F38E                                      ; fully-qualified     # 🎎 Japanese dolls\n1F38F                                      ; fully-qualified     # 🎏 carp streamer\n1F390                                      ; fully-qualified     # 🎐 wind chime\n1F391                                      ; fully-qualified     # 🎑 moon viewing ceremony\n1F9E7                                      ; fully-qualified     # 🧧 red envelope\n1F380                                      ; fully-qualified     # 🎀 ribbon\n1F381                                      ; fully-qualified     # 🎁 wrapped gift\n1F397 FE0F                                 ; fully-qualified     # 🎗️ reminder ribbon\n1F39F FE0F                                 ; fully-qualified     # 🎟️ admission tickets\n1F3AB                                      ; fully-qualified     # 🎫 ticket\n\n# subgroup: award-medal\n1F396 FE0F                                 ; fully-qualified     # 🎖️ military medal\n1F3C6                                      ; fully-qualified     # 🏆 trophy\n1F3C5                                      ; fully-qualified     # 🏅 sports medal\n1F947                                      ; fully-qualified     # 🥇 1st place medal\n1F948                                      ; fully-qualified     # 🥈 2nd place medal\n1F949                                      ; fully-qualified     # 🥉 3rd place medal\n\n# subgroup: sport\n26BD                                       ; fully-qualified     # ⚽ soccer ball\n26BE                                       ; fully-qualified     # ⚾ baseball\n1F94E                                      ; fully-qualified     # 🥎 softball\n1F3C0                                      ; fully-qualified     # 🏀 basketball\n1F3D0                                      ; fully-qualified     # 🏐 volleyball\n1F3C8                                      ; fully-qualified     # 🏈 american football\n1F3C9                                      ; fully-qualified     # 🏉 rugby football\n1F3BE                                      ; fully-qualified     # 🎾 tennis\n1F94F                                      ; fully-qualified     # 🥏 flying disc\n1F3B3                                      ; fully-qualified     # 🎳 bowling\n1F3CF                                      ; fully-qualified     # 🏏 cricket game\n1F3D1                                      ; fully-qualified     # 🏑 field hockey\n1F3D2                                      ; fully-qualified     # 🏒 ice hockey\n1F94D                                      ; fully-qualified     # 🥍 lacrosse\n1F3D3                                      ; fully-qualified     # 🏓 ping pong\n1F3F8                                      ; fully-qualified     # 🏸 badminton\n1F94A                                      ; fully-qualified     # 🥊 boxing glove\n1F94B                                      ; fully-qualified     # 🥋 martial arts uniform\n1F945                                      ; fully-qualified     # 🥅 goal net\n26F3                                       ; fully-qualified     # ⛳ flag in hole\n26F8 FE0F                                  ; fully-qualified     # ⛸️ ice skate\n1F3A3                                      ; fully-qualified     # 🎣 fishing pole\n#SUPPORT(prf) 1F93F                                      ; fully-qualified     # 🤿 diving mask\n1F3BD                                      ; fully-qualified     # 🎽 running shirt\n1F3BF                                      ; fully-qualified     # 🎿 skis\n1F6F7                                      ; fully-qualified     # 🛷 sled\n1F94C                                      ; fully-qualified     # 🥌 curling stone\n\n# subgroup: game\n1F3AF                                      ; fully-qualified     # 🎯 direct hit\n#SUPPORT(prf) 1FA80                                      ; fully-qualified     # 🪀 yo-yo\n#SUPPORT(prf) 1FA81                                      ; fully-qualified     # 🪁 kite\n1F3B1                                      ; fully-qualified     # 🎱 pool 8 ball\n1F52E                                      ; fully-qualified     # 🔮 crystal ball\n1F9FF                                      ; fully-qualified     # 🧿 nazar amulet\n1F3AE                                      ; fully-qualified     # 🎮 video game\n1F579 FE0F                                 ; fully-qualified     # 🕹️ joystick\n1F3B0                                      ; fully-qualified     # 🎰 slot machine\n1F3B2                                      ; fully-qualified     # 🎲 game die\n1F9E9                                      ; fully-qualified     # 🧩 puzzle piece\n1F9F8                                      ; fully-qualified     # 🧸 teddy bear\n2660 FE0F                                  ; fully-qualified     # ♠️ spade suit\n2665 FE0F                                  ; fully-qualified     # ♥️ heart suit\n2666 FE0F                                  ; fully-qualified     # ♦️ diamond suit\n2663 FE0F                                  ; fully-qualified     # ♣️ club suit\n265F FE0F                                  ; fully-qualified     # ♟️ chess pawn\n1F0CF                                      ; fully-qualified     # 🃏 joker\n1F004                                      ; fully-qualified     # 🀄 mahjong red dragon\n1F3B4                                      ; fully-qualified     # 🎴 flower playing cards\n\n# subgroup: arts & crafts\n1F3AD                                      ; fully-qualified     # 🎭 performing arts\n1F5BC FE0F                                 ; fully-qualified     # 🖼️ framed picture\n1F3A8                                      ; fully-qualified     # 🎨 artist palette\n1F9F5                                      ; fully-qualified     # 🧵 thread\n1F9F6                                      ; fully-qualified     # 🧶 yarn\n\n# Activities subtotal:\t\t90\n# Activities subtotal:\t\t90\tw/o modifiers\n\n# group: Objects\n\n# subgroup: clothing\n1F453                                      ; fully-qualified     # 👓 glasses\n1F576 FE0F                                 ; fully-qualified     # 🕶️ sunglasses\n1F97D                                      ; fully-qualified     # 🥽 goggles\n1F97C                                      ; fully-qualified     # 🥼 lab coat\n#SUPPORT(prf) 1F9BA                                      ; fully-qualified     # 🦺 safety vest\n1F454                                      ; fully-qualified     # 👔 necktie\n1F455                                      ; fully-qualified     # 👕 t-shirt\n1F456                                      ; fully-qualified     # 👖 jeans\n1F9E3                                      ; fully-qualified     # 🧣 scarf\n1F9E4                                      ; fully-qualified     # 🧤 gloves\n1F9E5                                      ; fully-qualified     # 🧥 coat\n1F9E6                                      ; fully-qualified     # 🧦 socks\n1F457                                      ; fully-qualified     # 👗 dress\n1F458                                      ; fully-qualified     # 👘 kimono\n#SUPPORT(prf) 1F97B                                      ; fully-qualified     # 🥻 sari\n#SUPPORT(prf) 1FA71                                      ; fully-qualified     # 🩱 one-piece swimsuit\n#SUPPORT(prf) 1FA72                                      ; fully-qualified     # 🩲 swim brief\n#SUPPORT(prf) 1FA73                                      ; fully-qualified     # 🩳 shorts\n1F459                                      ; fully-qualified     # 👙 bikini\n1F45A                                      ; fully-qualified     # 👚 woman’s clothes\n1F45B                                      ; fully-qualified     # 👛 purse\n1F45C                                      ; fully-qualified     # 👜 handbag\n1F45D                                      ; fully-qualified     # 👝 clutch bag\n1F6CD FE0F                                 ; fully-qualified     # 🛍️ shopping bags\n1F392                                      ; fully-qualified     # 🎒 backpack\n1F45E                                      ; fully-qualified     # 👞 man’s shoe\n1F45F                                      ; fully-qualified     # 👟 running shoe\n1F97E                                      ; fully-qualified     # 🥾 hiking boot\n1F97F                                      ; fully-qualified     # 🥿 flat shoe\n1F460                                      ; fully-qualified     # 👠 high-heeled shoe\n1F461                                      ; fully-qualified     # 👡 woman’s sandal\n#SUPPORT(prf) 1FA70                                      ; fully-qualified     # 🩰 ballet shoes\n1F462                                      ; fully-qualified     # 👢 woman’s boot\n1F451                                      ; fully-qualified     # 👑 crown\n1F452                                      ; fully-qualified     # 👒 woman’s hat\n1F3A9                                      ; fully-qualified     # 🎩 top hat\n1F393                                      ; fully-qualified     # 🎓 graduation cap\n1F9E2                                      ; fully-qualified     # 🧢 billed cap\n26D1 FE0F                                  ; fully-qualified     # ⛑️ rescue worker’s helmet\n1F4FF                                      ; fully-qualified     # 📿 prayer beads\n1F484                                      ; fully-qualified     # 💄 lipstick\n1F48D                                      ; fully-qualified     # 💍 ring\n1F48E                                      ; fully-qualified     # 💎 gem stone\n\n# subgroup: sound\n1F507                                      ; fully-qualified     # 🔇 muted speaker\n1F508                                      ; fully-qualified     # 🔈 speaker low volume\n1F509                                      ; fully-qualified     # 🔉 speaker medium volume\n1F50A                                      ; fully-qualified     # 🔊 speaker high volume\n1F4E2                                      ; fully-qualified     # 📢 loudspeaker\n1F4E3                                      ; fully-qualified     # 📣 megaphone\n1F4EF                                      ; fully-qualified     # 📯 postal horn\n1F514                                      ; fully-qualified     # 🔔 bell\n1F515                                      ; fully-qualified     # 🔕 bell with slash\n\n# subgroup: music\n1F3BC                                      ; fully-qualified     # 🎼 musical score\n1F3B5                                      ; fully-qualified     # 🎵 musical note\n1F3B6                                      ; fully-qualified     # 🎶 musical notes\n1F399 FE0F                                 ; fully-qualified     # 🎙️ studio microphone\n1F39A FE0F                                 ; fully-qualified     # 🎚️ level slider\n1F39B FE0F                                 ; fully-qualified     # 🎛️ control knobs\n1F3A4                                      ; fully-qualified     # 🎤 microphone\n1F3A7                                      ; fully-qualified     # 🎧 headphone\n1F4FB                                      ; fully-qualified     # 📻 radio\n\n# subgroup: musical-instrument\n1F3B7                                      ; fully-qualified     # 🎷 saxophone\n1F3B8                                      ; fully-qualified     # 🎸 guitar\n1F3B9                                      ; fully-qualified     # 🎹 musical keyboard\n1F3BA                                      ; fully-qualified     # 🎺 trumpet\n1F3BB                                      ; fully-qualified     # 🎻 violin\n#SUPPORT(prf) 1FA95                                      ; fully-qualified     # 🪕 banjo\n1F941                                      ; fully-qualified     # 🥁 drum\n\n# subgroup: phone\n1F4F1                                      ; fully-qualified     # 📱 mobile phone\n1F4F2                                      ; fully-qualified     # 📲 mobile phone with arrow\n260E FE0F                                  ; fully-qualified     # ☎️ telephone\n1F4DE                                      ; fully-qualified     # 📞 telephone receiver\n1F4DF                                      ; fully-qualified     # 📟 pager\n1F4E0                                      ; fully-qualified     # 📠 fax machine\n\n# subgroup: computer\n1F50B                                      ; fully-qualified     # 🔋 battery\n1F50C                                      ; fully-qualified     # 🔌 electric plug\n1F4BB                                      ; fully-qualified     # 💻 laptop computer\n1F5A5 FE0F                                 ; fully-qualified     # 🖥️ desktop computer\n1F5A8 FE0F                                 ; fully-qualified     # 🖨️ printer\n2328 FE0F                                  ; fully-qualified     # ⌨️ keyboard\n1F5B1 FE0F                                 ; fully-qualified     # 🖱️ computer mouse\n1F5B2 FE0F                                 ; fully-qualified     # 🖲️ trackball\n1F4BD                                      ; fully-qualified     # 💽 computer disk\n1F4BE                                      ; fully-qualified     # 💾 floppy disk\n1F4BF                                      ; fully-qualified     # 💿 optical disk\n1F4C0                                      ; fully-qualified     # 📀 dvd\n1F9EE                                      ; fully-qualified     # 🧮 abacus\n\n# subgroup: light & video\n1F3A5                                      ; fully-qualified     # 🎥 movie camera\n1F39E FE0F                                 ; fully-qualified     # 🎞️ film frames\n1F4FD FE0F                                 ; fully-qualified     # 📽️ film projector\n1F3AC                                      ; fully-qualified     # 🎬 clapper board\n1F4FA                                      ; fully-qualified     # 📺 television\n1F4F7                                      ; fully-qualified     # 📷 camera\n1F4F8                                      ; fully-qualified     # 📸 camera with flash\n1F4F9                                      ; fully-qualified     # 📹 video camera\n1F4FC                                      ; fully-qualified     # 📼 videocassette\n1F50D                                      ; fully-qualified     # 🔍 magnifying glass tilted left\n1F50E                                      ; fully-qualified     # 🔎 magnifying glass tilted right\n1F56F FE0F                                 ; fully-qualified     # 🕯️ candle\n1F4A1                                      ; fully-qualified     # 💡 light bulb\n1F526                                      ; fully-qualified     # 🔦 flashlight\n1F3EE                                      ; fully-qualified     # 🏮 red paper lantern\n#SUPPORT(prf) 1FA94                                      ; fully-qualified     # 🪔 diya lamp\n\n# subgroup: book-paper\n1F4D4                                      ; fully-qualified     # 📔 notebook with decorative cover\n1F4D5                                      ; fully-qualified     # 📕 closed book\n1F4D6                                      ; fully-qualified     # 📖 open book\n1F4D7                                      ; fully-qualified     # 📗 green book\n1F4D8                                      ; fully-qualified     # 📘 blue book\n1F4D9                                      ; fully-qualified     # 📙 orange book\n1F4DA                                      ; fully-qualified     # 📚 books\n1F4D3                                      ; fully-qualified     # 📓 notebook\n1F4D2                                      ; fully-qualified     # 📒 ledger\n1F4C3                                      ; fully-qualified     # 📃 page with curl\n1F4DC                                      ; fully-qualified     # 📜 scroll\n1F4C4                                      ; fully-qualified     # 📄 page facing up\n1F4F0                                      ; fully-qualified     # 📰 newspaper\n1F5DE FE0F                                 ; fully-qualified     # 🗞️ rolled-up newspaper\n1F4D1                                      ; fully-qualified     # 📑 bookmark tabs\n1F516                                      ; fully-qualified     # 🔖 bookmark\n1F3F7 FE0F                                 ; fully-qualified     # 🏷️ label\n\n# subgroup: money\n1F4B0                                      ; fully-qualified     # 💰 money bag\n1F4B4                                      ; fully-qualified     # 💴 yen banknote\n1F4B5                                      ; fully-qualified     # 💵 dollar banknote\n1F4B6                                      ; fully-qualified     # 💶 euro banknote\n1F4B7                                      ; fully-qualified     # 💷 pound banknote\n1F4B8                                      ; fully-qualified     # 💸 money with wings\n1F4B3                                      ; fully-qualified     # 💳 credit card\n1F9FE                                      ; fully-qualified     # 🧾 receipt\n1F4B9                                      ; fully-qualified     # 💹 chart increasing with yen\n1F4B1                                      ; fully-qualified     # 💱 currency exchange\n1F4B2                                      ; fully-qualified     # 💲 heavy dollar sign\n\n# subgroup: mail\n2709 FE0F                                  ; fully-qualified     # ✉️ envelope\n1F4E7                                      ; fully-qualified     # 📧 e-mail\n1F4E8                                      ; fully-qualified     # 📨 incoming envelope\n1F4E9                                      ; fully-qualified     # 📩 envelope with arrow\n1F4E4                                      ; fully-qualified     # 📤 outbox tray\n1F4E5                                      ; fully-qualified     # 📥 inbox tray\n1F4E6                                      ; fully-qualified     # 📦 package\n1F4EB                                      ; fully-qualified     # 📫 closed mailbox with raised flag\n1F4EA                                      ; fully-qualified     # 📪 closed mailbox with lowered flag\n1F4EC                                      ; fully-qualified     # 📬 open mailbox with raised flag\n1F4ED                                      ; fully-qualified     # 📭 open mailbox with lowered flag\n1F4EE                                      ; fully-qualified     # 📮 postbox\n1F5F3 FE0F                                 ; fully-qualified     # 🗳️ ballot box with ballot\n\n# subgroup: writing\n270F FE0F                                  ; fully-qualified     # ✏️ pencil\n2712 FE0F                                  ; fully-qualified     # ✒️ black nib\n1F58B FE0F                                 ; fully-qualified     # 🖋️ fountain pen\n1F58A FE0F                                 ; fully-qualified     # 🖊️ pen\n1F58C FE0F                                 ; fully-qualified     # 🖌️ paintbrush\n1F58D FE0F                                 ; fully-qualified     # 🖍️ crayon\n1F4DD                                      ; fully-qualified     # 📝 memo\n\n# subgroup: office\n1F4BC                                      ; fully-qualified     # 💼 briefcase\n1F4C1                                      ; fully-qualified     # 📁 file folder\n1F4C2                                      ; fully-qualified     # 📂 open file folder\n1F5C2 FE0F                                 ; fully-qualified     # 🗂️ card index dividers\n1F4C5                                      ; fully-qualified     # 📅 calendar\n1F4C6                                      ; fully-qualified     # 📆 tear-off calendar\n1F5D2 FE0F                                 ; fully-qualified     # 🗒️ spiral notepad\n1F5D3 FE0F                                 ; fully-qualified     # 🗓️ spiral calendar\n1F4C7                                      ; fully-qualified     # 📇 card index\n1F4C8                                      ; fully-qualified     # 📈 chart increasing\n1F4C9                                      ; fully-qualified     # 📉 chart decreasing\n1F4CA                                      ; fully-qualified     # 📊 bar chart\n1F4CB                                      ; fully-qualified     # 📋 clipboard\n1F4CC                                      ; fully-qualified     # 📌 pushpin\n1F4CD                                      ; fully-qualified     # 📍 round pushpin\n1F4CE                                      ; fully-qualified     # 📎 paperclip\n1F587 FE0F                                 ; fully-qualified     # 🖇️ linked paperclips\n1F4CF                                      ; fully-qualified     # 📏 straight ruler\n1F4D0                                      ; fully-qualified     # 📐 triangular ruler\n2702 FE0F                                  ; fully-qualified     # ✂️ scissors\n1F5C3 FE0F                                 ; fully-qualified     # 🗃️ card file box\n1F5C4 FE0F                                 ; fully-qualified     # 🗄️ file cabinet\n1F5D1 FE0F                                 ; fully-qualified     # 🗑️ wastebasket\n\n# subgroup: lock\n1F512                                      ; fully-qualified     # 🔒 locked\n1F513                                      ; fully-qualified     # 🔓 unlocked\n1F50F                                      ; fully-qualified     # 🔏 locked with pen\n1F510                                      ; fully-qualified     # 🔐 locked with key\n1F511                                      ; fully-qualified     # 🔑 key\n1F5DD FE0F                                 ; fully-qualified     # 🗝️ old key\n\n# subgroup: tool\n1F528                                      ; fully-qualified     # 🔨 hammer\n#SUPPORT(prf) 1FA93                                      ; fully-qualified     # 🪓 axe\n26CF FE0F                                  ; fully-qualified     # ⛏️ pick\n2692 FE0F                                  ; fully-qualified     # ⚒️ hammer and pick\n1F6E0 FE0F                                 ; fully-qualified     # 🛠️ hammer and wrench\n1F5E1 FE0F                                 ; fully-qualified     # 🗡️ dagger\n2694 FE0F                                  ; fully-qualified     # ⚔️ crossed swords\n1F52B                                      ; fully-qualified     # 🔫 pistol\n1F3F9                                      ; fully-qualified     # 🏹 bow and arrow\n1F6E1 FE0F                                 ; fully-qualified     # 🛡️ shield\n1F527                                      ; fully-qualified     # 🔧 wrench\n1F529                                      ; fully-qualified     # 🔩 nut and bolt\n2699 FE0F                                  ; fully-qualified     # ⚙️ gear\n1F5DC FE0F                                 ; fully-qualified     # 🗜️ clamp\n2696 FE0F                                  ; fully-qualified     # ⚖️ balance scale\n#SUPPORT(prf) 1F9AF                                      ; fully-qualified     # 🦯 probing cane\n1F517                                      ; fully-qualified     # 🔗 link\n26D3 FE0F                                  ; fully-qualified     # ⛓️ chains\n1F9F0                                      ; fully-qualified     # 🧰 toolbox\n1F9F2                                      ; fully-qualified     # 🧲 magnet\n\n# subgroup: science\n2697 FE0F                                  ; fully-qualified     # ⚗️ alembic\n1F9EA                                      ; fully-qualified     # 🧪 test tube\n1F9EB                                      ; fully-qualified     # 🧫 petri dish\n1F9EC                                      ; fully-qualified     # 🧬 dna\n1F52C                                      ; fully-qualified     # 🔬 microscope\n1F52D                                      ; fully-qualified     # 🔭 telescope\n1F4E1                                      ; fully-qualified     # 📡 satellite antenna\n\n# subgroup: medical\n1F489                                      ; fully-qualified     # 💉 syringe\n#SUPPORT(prf) 1FA78                                      ; fully-qualified     # 🩸 drop of blood\n1F48A                                      ; fully-qualified     # 💊 pill\n#SUPPORT(prf) 1FA79                                      ; fully-qualified     # 🩹 adhesive bandage\n#SUPPORT(prf) 1FA7A                                      ; fully-qualified     # 🩺 stethoscope\n\n# subgroup: household\n1F6AA                                      ; fully-qualified     # 🚪 door\n1F6CF FE0F                                 ; fully-qualified     # 🛏️ bed\n1F6CB FE0F                                 ; fully-qualified     # 🛋️ couch and lamp\n#SUPPORT(prf) 1FA91                                      ; fully-qualified     # 🪑 chair\n1F6BD                                      ; fully-qualified     # 🚽 toilet\n1F6BF                                      ; fully-qualified     # 🚿 shower\n1F6C1                                      ; fully-qualified     # 🛁 bathtub\n#SUPPORT(prf) 1FA92                                      ; fully-qualified     # 🪒 razor\n1F9F4                                      ; fully-qualified     # 🧴 lotion bottle\n1F9F7                                      ; fully-qualified     # 🧷 safety pin\n1F9F9                                      ; fully-qualified     # 🧹 broom\n1F9FA                                      ; fully-qualified     # 🧺 basket\n1F9FB                                      ; fully-qualified     # 🧻 roll of paper\n1F9FC                                      ; fully-qualified     # 🧼 soap\n1F9FD                                      ; fully-qualified     # 🧽 sponge\n1F9EF                                      ; fully-qualified     # 🧯 fire extinguisher\n1F6D2                                      ; fully-qualified     # 🛒 shopping cart\n\n# subgroup: other-object\n1F6AC                                      ; fully-qualified     # 🚬 cigarette\n26B0 FE0F                                  ; fully-qualified     # ⚰️ coffin\n26B1 FE0F                                  ; fully-qualified     # ⚱️ funeral urn\n1F5FF                                      ; fully-qualified     # 🗿 moai\n\n# Objects subtotal:\t\t282\n# Objects subtotal:\t\t282\tw/o modifiers\n\n# group: Symbols\n\n# subgroup: transport-sign\n1F3E7                                      ; fully-qualified     # 🏧 ATM sign\n1F6AE                                      ; fully-qualified     # 🚮 litter in bin sign\n1F6B0                                      ; fully-qualified     # 🚰 potable water\n267F                                       ; fully-qualified     # ♿ wheelchair symbol\n1F6B9                                      ; fully-qualified     # 🚹 men’s room\n1F6BA                                      ; fully-qualified     # 🚺 women’s room\n1F6BB                                      ; fully-qualified     # 🚻 restroom\n1F6BC                                      ; fully-qualified     # 🚼 baby symbol\n1F6BE                                      ; fully-qualified     # 🚾 water closet\n1F6C2                                      ; fully-qualified     # 🛂 passport control\n1F6C3                                      ; fully-qualified     # 🛃 customs\n1F6C4                                      ; fully-qualified     # 🛄 baggage claim\n1F6C5                                      ; fully-qualified     # 🛅 left luggage\n\n# subgroup: warning\n26A0 FE0F                                  ; fully-qualified     # ⚠️ warning\n1F6B8                                      ; fully-qualified     # 🚸 children crossing\n26D4                                       ; fully-qualified     # ⛔ no entry\n1F6AB                                      ; fully-qualified     # 🚫 prohibited\n1F6B3                                      ; fully-qualified     # 🚳 no bicycles\n1F6AD                                      ; fully-qualified     # 🚭 no smoking\n1F6AF                                      ; fully-qualified     # 🚯 no littering\n1F6B1                                      ; fully-qualified     # 🚱 non-potable water\n1F6B7                                      ; fully-qualified     # 🚷 no pedestrians\n1F4F5                                      ; fully-qualified     # 📵 no mobile phones\n1F51E                                      ; fully-qualified     # 🔞 no one under eighteen\n2622 FE0F                                  ; fully-qualified     # ☢️ radioactive\n2623 FE0F                                  ; fully-qualified     # ☣️ biohazard\n\n# subgroup: arrow\n2B06 FE0F                                  ; fully-qualified     # ⬆️ up arrow\n2197 FE0F                                  ; fully-qualified     # ↗️ up-right arrow\n27A1 FE0F                                  ; fully-qualified     # ➡️ right arrow\n2198 FE0F                                  ; fully-qualified     # ↘️ down-right arrow\n2B07 FE0F                                  ; fully-qualified     # ⬇️ down arrow\n2199 FE0F                                  ; fully-qualified     # ↙️ down-left arrow\n2B05 FE0F                                  ; fully-qualified     # ⬅️ left arrow\n2196 FE0F                                  ; fully-qualified     # ↖️ up-left arrow\n2195 FE0F                                  ; fully-qualified     # ↕️ up-down arrow\n2194 FE0F                                  ; fully-qualified     # ↔️ left-right arrow\n21A9 FE0F                                  ; fully-qualified     # ↩️ right arrow curving left\n21AA FE0F                                  ; fully-qualified     # ↪️ left arrow curving right\n2934 FE0F                                  ; fully-qualified     # ⤴️ right arrow curving up\n2935 FE0F                                  ; fully-qualified     # ⤵️ right arrow curving down\n1F503                                      ; fully-qualified     # 🔃 clockwise vertical arrows\n1F504                                      ; fully-qualified     # 🔄 counterclockwise arrows button\n1F519                                      ; fully-qualified     # 🔙 BACK arrow\n1F51A                                      ; fully-qualified     # 🔚 END arrow\n1F51B                                      ; fully-qualified     # 🔛 ON! arrow\n1F51C                                      ; fully-qualified     # 🔜 SOON arrow\n1F51D                                      ; fully-qualified     # 🔝 TOP arrow\n\n# subgroup: religion\n1F6D0                                      ; fully-qualified     # 🛐 place of worship\n269B FE0F                                  ; fully-qualified     # ⚛️ atom symbol\n1F549 FE0F                                 ; fully-qualified     # 🕉️ om\n2721 FE0F                                  ; fully-qualified     # ✡️ star of David\n2638 FE0F                                  ; fully-qualified     # ☸️ wheel of dharma\n262F FE0F                                  ; fully-qualified     # ☯️ yin yang\n271D FE0F                                  ; fully-qualified     # ✝️ latin cross\n2626 FE0F                                  ; fully-qualified     # ☦️ orthodox cross\n262A FE0F                                  ; fully-qualified     # ☪️ star and crescent\n262E FE0F                                  ; fully-qualified     # ☮️ peace symbol\n1F54E                                      ; fully-qualified     # 🕎 menorah\n1F52F                                      ; fully-qualified     # 🔯 dotted six-pointed star\n\n# subgroup: zodiac\n2648                                       ; fully-qualified     # ♈ Aries\n2649                                       ; fully-qualified     # ♉ Taurus\n264A                                       ; fully-qualified     # ♊ Gemini\n264B                                       ; fully-qualified     # ♋ Cancer\n264C                                       ; fully-qualified     # ♌ Leo\n264D                                       ; fully-qualified     # ♍ Virgo\n264E                                       ; fully-qualified     # ♎ Libra\n264F                                       ; fully-qualified     # ♏ Scorpio\n2650                                       ; fully-qualified     # ♐ Sagittarius\n2651                                       ; fully-qualified     # ♑ Capricorn\n2652                                       ; fully-qualified     # ♒ Aquarius\n2653                                       ; fully-qualified     # ♓ Pisces\n26CE                                       ; fully-qualified     # ⛎ Ophiuchus\n\n# subgroup: av-symbol\n1F500                                      ; fully-qualified     # 🔀 shuffle tracks button\n1F501                                      ; fully-qualified     # 🔁 repeat button\n1F502                                      ; fully-qualified     # 🔂 repeat single button\n25B6 FE0F                                  ; fully-qualified     # ▶️ play button\n23E9                                       ; fully-qualified     # ⏩ fast-forward button\n23ED FE0F                                  ; fully-qualified     # ⏭️ next track button\n23EF FE0F                                  ; fully-qualified     # ⏯️ play or pause button\n25C0 FE0F                                  ; fully-qualified     # ◀️ reverse button\n23EA                                       ; fully-qualified     # ⏪ fast reverse button\n23EE FE0F                                  ; fully-qualified     # ⏮️ last track button\n1F53C                                      ; fully-qualified     # 🔼 upwards button\n23EB                                       ; fully-qualified     # ⏫ fast up button\n1F53D                                      ; fully-qualified     # 🔽 downwards button\n23EC                                       ; fully-qualified     # ⏬ fast down button\n23F8 FE0F                                  ; fully-qualified     # ⏸️ pause button\n23F9 FE0F                                  ; fully-qualified     # ⏹️ stop button\n23FA FE0F                                  ; fully-qualified     # ⏺️ record button\n23CF FE0F                                  ; fully-qualified     # ⏏️ eject button\n1F3A6                                      ; fully-qualified     # 🎦 cinema\n1F505                                      ; fully-qualified     # 🔅 dim button\n1F506                                      ; fully-qualified     # 🔆 bright button\n1F4F6                                      ; fully-qualified     # 📶 antenna bars\n1F4F3                                      ; fully-qualified     # 📳 vibration mode\n1F4F4                                      ; fully-qualified     # 📴 mobile phone off\n\n# subgroup: gender\n2640 FE0F                                  ; fully-qualified     # ♀️ female sign\n2642 FE0F                                  ; fully-qualified     # ♂️ male sign\n\n# subgroup: other-symbol\n2695 FE0F                                  ; fully-qualified     # ⚕️ medical symbol\n267E FE0F                                  ; fully-qualified     # ♾️ infinity\n267B FE0F                                  ; fully-qualified     # ♻️ recycling symbol\n269C FE0F                                  ; fully-qualified     # ⚜️ fleur-de-lis\n1F531                                      ; fully-qualified     # 🔱 trident emblem\n1F4DB                                      ; fully-qualified     # 📛 name badge\n1F530                                      ; fully-qualified     # 🔰 Japanese symbol for beginner\n2B55                                       ; fully-qualified     # ⭕ hollow red circle\n2705                                       ; fully-qualified     # ✅ check mark button\n2611 FE0F                                  ; fully-qualified     # ☑️ check box with check\n2714 FE0F                                  ; fully-qualified     # ✔️ check mark\n2716 FE0F                                  ; fully-qualified     # ✖️ multiplication sign\n274C                                       ; fully-qualified     # ❌ cross mark\n274E                                       ; fully-qualified     # ❎ cross mark button\n2795                                       ; fully-qualified     # ➕ plus sign\n2796                                       ; fully-qualified     # ➖ minus sign\n2797                                       ; fully-qualified     # ➗ division sign\n27B0                                       ; fully-qualified     # ➰ curly loop\n27BF                                       ; fully-qualified     # ➿ double curly loop\n303D FE0F                                  ; fully-qualified     # 〽️ part alternation mark\n2733 FE0F                                  ; fully-qualified     # ✳️ eight-spoked asterisk\n2734 FE0F                                  ; fully-qualified     # ✴️ eight-pointed star\n2747 FE0F                                  ; fully-qualified     # ❇️ sparkle\n203C FE0F                                  ; fully-qualified     # ‼️ double exclamation mark\n2049 FE0F                                  ; fully-qualified     # ⁉️ exclamation question mark\n2753                                       ; fully-qualified     # ❓ question mark\n2754                                       ; fully-qualified     # ❔ white question mark\n2755                                       ; fully-qualified     # ❕ white exclamation mark\n2757                                       ; fully-qualified     # ❗ exclamation mark\n3030 FE0F                                  ; fully-qualified     # 〰️ wavy dash\n00A9 FE0F                                  ; fully-qualified     # ©️ copyright\n00AE FE0F                                  ; fully-qualified     # ®️ registered\n2122 FE0F                                  ; fully-qualified     # ™️ trade mark\n\n# subgroup: keycap\n0023 FE0F 20E3                             ; fully-qualified     # #️⃣ keycap: #\n002A FE0F 20E3                             ; fully-qualified     # *️⃣ keycap: *\n0030 FE0F 20E3                             ; fully-qualified     # 0️⃣ keycap: 0\n0031 FE0F 20E3                             ; fully-qualified     # 1️⃣ keycap: 1\n0032 FE0F 20E3                             ; fully-qualified     # 2️⃣ keycap: 2\n0033 FE0F 20E3                             ; fully-qualified     # 3️⃣ keycap: 3\n0034 FE0F 20E3                             ; fully-qualified     # 4️⃣ keycap: 4\n0035 FE0F 20E3                             ; fully-qualified     # 5️⃣ keycap: 5\n0036 FE0F 20E3                             ; fully-qualified     # 6️⃣ keycap: 6\n0037 FE0F 20E3                             ; fully-qualified     # 7️⃣ keycap: 7\n0038 FE0F 20E3                             ; fully-qualified     # 8️⃣ keycap: 8\n0039 FE0F 20E3                             ; fully-qualified     # 9️⃣ keycap: 9\n1F51F                                      ; fully-qualified     # 🔟 keycap: 10\n\n# subgroup: alphanum\n1F520                                      ; fully-qualified     # 🔠 input latin uppercase\n1F521                                      ; fully-qualified     # 🔡 input latin lowercase\n1F522                                      ; fully-qualified     # 🔢 input numbers\n1F523                                      ; fully-qualified     # 🔣 input symbols\n1F524                                      ; fully-qualified     # 🔤 input latin letters\n1F170 FE0F                                 ; fully-qualified     # 🅰️ A button (blood type)\n1F18E                                      ; fully-qualified     # 🆎 AB button (blood type)\n1F171 FE0F                                 ; fully-qualified     # 🅱️ B button (blood type)\n1F191                                      ; fully-qualified     # 🆑 CL button\n1F192                                      ; fully-qualified     # 🆒 COOL button\n1F193                                      ; fully-qualified     # 🆓 FREE button\n2139 FE0F                                  ; fully-qualified     # ℹ️ information\n1F194                                      ; fully-qualified     # 🆔 ID button\n24C2 FE0F                                  ; fully-qualified     # Ⓜ️ circled M\n1F195                                      ; fully-qualified     # 🆕 NEW button\n1F196                                      ; fully-qualified     # 🆖 NG button\n1F17E FE0F                                 ; fully-qualified     # 🅾️ O button (blood type)\n1F197                                      ; fully-qualified     # 🆗 OK button\n1F17F FE0F                                 ; fully-qualified     # 🅿️ P button\n1F198                                      ; fully-qualified     # 🆘 SOS button\n1F199                                      ; fully-qualified     # 🆙 UP! button\n1F19A                                      ; fully-qualified     # 🆚 VS button\n1F201                                      ; fully-qualified     # 🈁 Japanese “here” button\n1F202 FE0F                                 ; fully-qualified     # 🈂️ Japanese “service charge” button\n1F237 FE0F                                 ; fully-qualified     # 🈷️ Japanese “monthly amount” button\n1F236                                      ; fully-qualified     # 🈶 Japanese “not free of charge” button\n1F22F                                      ; fully-qualified     # 🈯 Japanese “reserved” button\n1F250                                      ; fully-qualified     # 🉐 Japanese “bargain” button\n1F239                                      ; fully-qualified     # 🈹 Japanese “discount” button\n1F21A                                      ; fully-qualified     # 🈚 Japanese “free of charge” button\n1F232                                      ; fully-qualified     # 🈲 Japanese “prohibited” button\n1F251                                      ; fully-qualified     # 🉑 Japanese “acceptable” button\n1F238                                      ; fully-qualified     # 🈸 Japanese “application” button\n1F234                                      ; fully-qualified     # 🈴 Japanese “passing grade” button\n1F233                                      ; fully-qualified     # 🈳 Japanese “vacancy” button\n3297 FE0F                                  ; fully-qualified     # ㊗️ Japanese “congratulations” button\n3299 FE0F                                  ; fully-qualified     # ㊙️ Japanese “secret” button\n1F23A                                      ; fully-qualified     # 🈺 Japanese “open for business” button\n1F235                                      ; fully-qualified     # 🈵 Japanese “no vacancy” button\n\n# subgroup: geometric\n1F534                                      ; fully-qualified     # 🔴 red circle\n#SUPPORT(prf) 1F7E0                                      ; fully-qualified     # 🟠 orange circle\n#SUPPORT(prf) 1F7E1                                      ; fully-qualified     # 🟡 yellow circle\n#SUPPORT(prf) 1F7E2                                      ; fully-qualified     # 🟢 green circle\n1F535                                      ; fully-qualified     # 🔵 blue circle\n#SUPPORT(prf) 1F7E3                                      ; fully-qualified     # 🟣 purple circle\n#SUPPORT(prf) 1F7E4                                      ; fully-qualified     # 🟤 brown circle\n26AB                                       ; fully-qualified     # ⚫ black circle\n26AA                                       ; fully-qualified     # ⚪ white circle\n#SUPPORT(prf) 1F7E5                                      ; fully-qualified     # 🟥 red square\n#SUPPORT(prf) 1F7E7                                      ; fully-qualified     # 🟧 orange square\n#SUPPORT(prf) 1F7E8                                      ; fully-qualified     # 🟨 yellow square\n#SUPPORT(prf) 1F7E9                                      ; fully-qualified     # 🟩 green square\n#SUPPORT(prf) 1F7E6                                      ; fully-qualified     # 🟦 blue square\n#SUPPORT(prf) 1F7EA                                      ; fully-qualified     # 🟪 purple square\n#SUPPORT(prf) 1F7EB                                      ; fully-qualified     # 🟫 brown square\n2B1B                                       ; fully-qualified     # ⬛ black large square\n2B1C                                       ; fully-qualified     # ⬜ white large square\n25FC FE0F                                  ; fully-qualified     # ◼️ black medium square\n25FB FE0F                                  ; fully-qualified     # ◻️ white medium square\n25FE                                       ; fully-qualified     # ◾ black medium-small square\n25FD                                       ; fully-qualified     # ◽ white medium-small square\n25AA FE0F                                  ; fully-qualified     # ▪️ black small square\n25AB FE0F                                  ; fully-qualified     # ▫️ white small square\n1F536                                      ; fully-qualified     # 🔶 large orange diamond\n1F537                                      ; fully-qualified     # 🔷 large blue diamond\n1F538                                      ; fully-qualified     # 🔸 small orange diamond\n1F539                                      ; fully-qualified     # 🔹 small blue diamond\n1F53A                                      ; fully-qualified     # 🔺 red triangle pointed up\n1F53B                                      ; fully-qualified     # 🔻 red triangle pointed down\n1F4A0                                      ; fully-qualified     # 💠 diamond with a dot\n1F518                                      ; fully-qualified     # 🔘 radio button\n1F533                                      ; fully-qualified     # 🔳 white square button\n1F532                                      ; fully-qualified     # 🔲 black square button\n\n# Symbols subtotal:\t\t297\n# Symbols subtotal:\t\t297\tw/o modifiers\n\n# group: Flags\n\n# subgroup: flag\n1F3C1                                      ; fully-qualified     # 🏁 chequered flag\n1F6A9                                      ; fully-qualified     # 🚩 triangular flag\n1F38C                                      ; fully-qualified     # 🎌 crossed flags\n1F3F4                                      ; fully-qualified     # 🏴 black flag\n1F3F3 FE0F                                 ; fully-qualified     # 🏳️ white flag\n1F3F3 FE0F 200D 1F308                      ; fully-qualified     # 🏳️‍🌈 rainbow flag\n#SUPPORT(prf) 1F3F4 200D 2620 FE0F                       ; fully-qualified     # 🏴‍☠️ pirate flag\n\n# subgroup: country-flag\n1F1E6 1F1E8                                ; fully-qualified     # 🇦🇨 flag: Ascension Island\n1F1E6 1F1E9                                ; fully-qualified     # 🇦🇩 flag: Andorra\n1F1E6 1F1EA                                ; fully-qualified     # 🇦🇪 flag: United Arab Emirates\n1F1E6 1F1EB                                ; fully-qualified     # 🇦🇫 flag: Afghanistan\n1F1E6 1F1EC                                ; fully-qualified     # 🇦🇬 flag: Antigua & Barbuda\n1F1E6 1F1EE                                ; fully-qualified     # 🇦🇮 flag: Anguilla\n1F1E6 1F1F1                                ; fully-qualified     # 🇦🇱 flag: Albania\n1F1E6 1F1F2                                ; fully-qualified     # 🇦🇲 flag: Armenia\n1F1E6 1F1F4                                ; fully-qualified     # 🇦🇴 flag: Angola\n1F1E6 1F1F6                                ; fully-qualified     # 🇦🇶 flag: Antarctica\n1F1E6 1F1F7                                ; fully-qualified     # 🇦🇷 flag: Argentina\n1F1E6 1F1F8                                ; fully-qualified     # 🇦🇸 flag: American Samoa\n1F1E6 1F1F9                                ; fully-qualified     # 🇦🇹 flag: Austria\n1F1E6 1F1FA                                ; fully-qualified     # 🇦🇺 flag: Australia\n1F1E6 1F1FC                                ; fully-qualified     # 🇦🇼 flag: Aruba\n1F1E6 1F1FD                                ; fully-qualified     # 🇦🇽 flag: Åland Islands\n1F1E6 1F1FF                                ; fully-qualified     # 🇦🇿 flag: Azerbaijan\n1F1E7 1F1E6                                ; fully-qualified     # 🇧🇦 flag: Bosnia & Herzegovina\n1F1E7 1F1E7                                ; fully-qualified     # 🇧🇧 flag: Barbados\n1F1E7 1F1E9                                ; fully-qualified     # 🇧🇩 flag: Bangladesh\n1F1E7 1F1EA                                ; fully-qualified     # 🇧🇪 flag: Belgium\n1F1E7 1F1EB                                ; fully-qualified     # 🇧🇫 flag: Burkina Faso\n1F1E7 1F1EC                                ; fully-qualified     # 🇧🇬 flag: Bulgaria\n1F1E7 1F1ED                                ; fully-qualified     # 🇧🇭 flag: Bahrain\n1F1E7 1F1EE                                ; fully-qualified     # 🇧🇮 flag: Burundi\n1F1E7 1F1EF                                ; fully-qualified     # 🇧🇯 flag: Benin\n1F1E7 1F1F1                                ; fully-qualified     # 🇧🇱 flag: St. Barthélemy\n1F1E7 1F1F2                                ; fully-qualified     # 🇧🇲 flag: Bermuda\n1F1E7 1F1F3                                ; fully-qualified     # 🇧🇳 flag: Brunei\n1F1E7 1F1F4                                ; fully-qualified     # 🇧🇴 flag: Bolivia\n1F1E7 1F1F6                                ; fully-qualified     # 🇧🇶 flag: Caribbean Netherlands\n1F1E7 1F1F7                                ; fully-qualified     # 🇧🇷 flag: Brazil\n1F1E7 1F1F8                                ; fully-qualified     # 🇧🇸 flag: Bahamas\n1F1E7 1F1F9                                ; fully-qualified     # 🇧🇹 flag: Bhutan\n1F1E7 1F1FB                                ; fully-qualified     # 🇧🇻 flag: Bouvet Island\n1F1E7 1F1FC                                ; fully-qualified     # 🇧🇼 flag: Botswana\n1F1E7 1F1FE                                ; fully-qualified     # 🇧🇾 flag: Belarus\n1F1E7 1F1FF                                ; fully-qualified     # 🇧🇿 flag: Belize\n1F1E8 1F1E6                                ; fully-qualified     # 🇨🇦 flag: Canada\n1F1E8 1F1E8                                ; fully-qualified     # 🇨🇨 flag: Cocos (Keeling) Islands\n1F1E8 1F1E9                                ; fully-qualified     # 🇨🇩 flag: Congo - Kinshasa\n1F1E8 1F1EB                                ; fully-qualified     # 🇨🇫 flag: Central African Republic\n1F1E8 1F1EC                                ; fully-qualified     # 🇨🇬 flag: Congo - Brazzaville\n1F1E8 1F1ED                                ; fully-qualified     # 🇨🇭 flag: Switzerland\n1F1E8 1F1EE                                ; fully-qualified     # 🇨🇮 flag: Côte d’Ivoire\n1F1E8 1F1F0                                ; fully-qualified     # 🇨🇰 flag: Cook Islands\n1F1E8 1F1F1                                ; fully-qualified     # 🇨🇱 flag: Chile\n1F1E8 1F1F2                                ; fully-qualified     # 🇨🇲 flag: Cameroon\n1F1E8 1F1F3                                ; fully-qualified     # 🇨🇳 flag: China\n1F1E8 1F1F4                                ; fully-qualified     # 🇨🇴 flag: Colombia\n1F1E8 1F1F5                                ; fully-qualified     # 🇨🇵 flag: Clipperton Island\n1F1E8 1F1F7                                ; fully-qualified     # 🇨🇷 flag: Costa Rica\n1F1E8 1F1FA                                ; fully-qualified     # 🇨🇺 flag: Cuba\n1F1E8 1F1FB                                ; fully-qualified     # 🇨🇻 flag: Cape Verde\n1F1E8 1F1FC                                ; fully-qualified     # 🇨🇼 flag: Curaçao\n1F1E8 1F1FD                                ; fully-qualified     # 🇨🇽 flag: Christmas Island\n1F1E8 1F1FE                                ; fully-qualified     # 🇨🇾 flag: Cyprus\n1F1E8 1F1FF                                ; fully-qualified     # 🇨🇿 flag: Czechia\n1F1E9 1F1EA                                ; fully-qualified     # 🇩🇪 flag: Germany\n1F1E9 1F1EC                                ; fully-qualified     # 🇩🇬 flag: Diego Garcia\n1F1E9 1F1EF                                ; fully-qualified     # 🇩🇯 flag: Djibouti\n1F1E9 1F1F0                                ; fully-qualified     # 🇩🇰 flag: Denmark\n1F1E9 1F1F2                                ; fully-qualified     # 🇩🇲 flag: Dominica\n1F1E9 1F1F4                                ; fully-qualified     # 🇩🇴 flag: Dominican Republic\n1F1E9 1F1FF                                ; fully-qualified     # 🇩🇿 flag: Algeria\n1F1EA 1F1E6                                ; fully-qualified     # 🇪🇦 flag: Ceuta & Melilla\n1F1EA 1F1E8                                ; fully-qualified     # 🇪🇨 flag: Ecuador\n1F1EA 1F1EA                                ; fully-qualified     # 🇪🇪 flag: Estonia\n1F1EA 1F1EC                                ; fully-qualified     # 🇪🇬 flag: Egypt\n1F1EA 1F1ED                                ; fully-qualified     # 🇪🇭 flag: Western Sahara\n1F1EA 1F1F7                                ; fully-qualified     # 🇪🇷 flag: Eritrea\n1F1EA 1F1F8                                ; fully-qualified     # 🇪🇸 flag: Spain\n1F1EA 1F1F9                                ; fully-qualified     # 🇪🇹 flag: Ethiopia\n1F1EA 1F1FA                                ; fully-qualified     # 🇪🇺 flag: European Union\n1F1EB 1F1EE                                ; fully-qualified     # 🇫🇮 flag: Finland\n1F1EB 1F1EF                                ; fully-qualified     # 🇫🇯 flag: Fiji\n1F1EB 1F1F0                                ; fully-qualified     # 🇫🇰 flag: Falkland Islands\n1F1EB 1F1F2                                ; fully-qualified     # 🇫🇲 flag: Micronesia\n1F1EB 1F1F4                                ; fully-qualified     # 🇫🇴 flag: Faroe Islands\n1F1EB 1F1F7                                ; fully-qualified     # 🇫🇷 flag: France\n1F1EC 1F1E6                                ; fully-qualified     # 🇬🇦 flag: Gabon\n1F1EC 1F1E7                                ; fully-qualified     # 🇬🇧 flag: United Kingdom\n1F1EC 1F1E9                                ; fully-qualified     # 🇬🇩 flag: Grenada\n1F1EC 1F1EA                                ; fully-qualified     # 🇬🇪 flag: Georgia\n1F1EC 1F1EB                                ; fully-qualified     # 🇬🇫 flag: French Guiana\n1F1EC 1F1EC                                ; fully-qualified     # 🇬🇬 flag: Guernsey\n1F1EC 1F1ED                                ; fully-qualified     # 🇬🇭 flag: Ghana\n1F1EC 1F1EE                                ; fully-qualified     # 🇬🇮 flag: Gibraltar\n1F1EC 1F1F1                                ; fully-qualified     # 🇬🇱 flag: Greenland\n1F1EC 1F1F2                                ; fully-qualified     # 🇬🇲 flag: Gambia\n1F1EC 1F1F3                                ; fully-qualified     # 🇬🇳 flag: Guinea\n1F1EC 1F1F5                                ; fully-qualified     # 🇬🇵 flag: Guadeloupe\n1F1EC 1F1F6                                ; fully-qualified     # 🇬🇶 flag: Equatorial Guinea\n1F1EC 1F1F7                                ; fully-qualified     # 🇬🇷 flag: Greece\n1F1EC 1F1F8                                ; fully-qualified     # 🇬🇸 flag: South Georgia & South Sandwich Islands\n1F1EC 1F1F9                                ; fully-qualified     # 🇬🇹 flag: Guatemala\n1F1EC 1F1FA                                ; fully-qualified     # 🇬🇺 flag: Guam\n1F1EC 1F1FC                                ; fully-qualified     # 🇬🇼 flag: Guinea-Bissau\n1F1EC 1F1FE                                ; fully-qualified     # 🇬🇾 flag: Guyana\n1F1ED 1F1F0                                ; fully-qualified     # 🇭🇰 flag: Hong Kong SAR China\n1F1ED 1F1F2                                ; fully-qualified     # 🇭🇲 flag: Heard & McDonald Islands\n1F1ED 1F1F3                                ; fully-qualified     # 🇭🇳 flag: Honduras\n1F1ED 1F1F7                                ; fully-qualified     # 🇭🇷 flag: Croatia\n1F1ED 1F1F9                                ; fully-qualified     # 🇭🇹 flag: Haiti\n1F1ED 1F1FA                                ; fully-qualified     # 🇭🇺 flag: Hungary\n1F1EE 1F1E8                                ; fully-qualified     # 🇮🇨 flag: Canary Islands\n1F1EE 1F1E9                                ; fully-qualified     # 🇮🇩 flag: Indonesia\n1F1EE 1F1EA                                ; fully-qualified     # 🇮🇪 flag: Ireland\n1F1EE 1F1F1                                ; fully-qualified     # 🇮🇱 flag: Israel\n1F1EE 1F1F2                                ; fully-qualified     # 🇮🇲 flag: Isle of Man\n1F1EE 1F1F3                                ; fully-qualified     # 🇮🇳 flag: India\n1F1EE 1F1F4                                ; fully-qualified     # 🇮🇴 flag: British Indian Ocean Territory\n1F1EE 1F1F6                                ; fully-qualified     # 🇮🇶 flag: Iraq\n1F1EE 1F1F7                                ; fully-qualified     # 🇮🇷 flag: Iran\n1F1EE 1F1F8                                ; fully-qualified     # 🇮🇸 flag: Iceland\n1F1EE 1F1F9                                ; fully-qualified     # 🇮🇹 flag: Italy\n1F1EF 1F1EA                                ; fully-qualified     # 🇯🇪 flag: Jersey\n1F1EF 1F1F2                                ; fully-qualified     # 🇯🇲 flag: Jamaica\n1F1EF 1F1F4                                ; fully-qualified     # 🇯🇴 flag: Jordan\n1F1EF 1F1F5                                ; fully-qualified     # 🇯🇵 flag: Japan\n1F1F0 1F1EA                                ; fully-qualified     # 🇰🇪 flag: Kenya\n1F1F0 1F1EC                                ; fully-qualified     # 🇰🇬 flag: Kyrgyzstan\n1F1F0 1F1ED                                ; fully-qualified     # 🇰🇭 flag: Cambodia\n1F1F0 1F1EE                                ; fully-qualified     # 🇰🇮 flag: Kiribati\n1F1F0 1F1F2                                ; fully-qualified     # 🇰🇲 flag: Comoros\n1F1F0 1F1F3                                ; fully-qualified     # 🇰🇳 flag: St. Kitts & Nevis\n1F1F0 1F1F5                                ; fully-qualified     # 🇰🇵 flag: North Korea\n1F1F0 1F1F7                                ; fully-qualified     # 🇰🇷 flag: South Korea\n1F1F0 1F1FC                                ; fully-qualified     # 🇰🇼 flag: Kuwait\n1F1F0 1F1FE                                ; fully-qualified     # 🇰🇾 flag: Cayman Islands\n1F1F0 1F1FF                                ; fully-qualified     # 🇰🇿 flag: Kazakhstan\n1F1F1 1F1E6                                ; fully-qualified     # 🇱🇦 flag: Laos\n1F1F1 1F1E7                                ; fully-qualified     # 🇱🇧 flag: Lebanon\n1F1F1 1F1E8                                ; fully-qualified     # 🇱🇨 flag: St. Lucia\n1F1F1 1F1EE                                ; fully-qualified     # 🇱🇮 flag: Liechtenstein\n1F1F1 1F1F0                                ; fully-qualified     # 🇱🇰 flag: Sri Lanka\n1F1F1 1F1F7                                ; fully-qualified     # 🇱🇷 flag: Liberia\n1F1F1 1F1F8                                ; fully-qualified     # 🇱🇸 flag: Lesotho\n1F1F1 1F1F9                                ; fully-qualified     # 🇱🇹 flag: Lithuania\n1F1F1 1F1FA                                ; fully-qualified     # 🇱🇺 flag: Luxembourg\n1F1F1 1F1FB                                ; fully-qualified     # 🇱🇻 flag: Latvia\n1F1F1 1F1FE                                ; fully-qualified     # 🇱🇾 flag: Libya\n1F1F2 1F1E6                                ; fully-qualified     # 🇲🇦 flag: Morocco\n1F1F2 1F1E8                                ; fully-qualified     # 🇲🇨 flag: Monaco\n1F1F2 1F1E9                                ; fully-qualified     # 🇲🇩 flag: Moldova\n1F1F2 1F1EA                                ; fully-qualified     # 🇲🇪 flag: Montenegro\n1F1F2 1F1EB                                ; fully-qualified     # 🇲🇫 flag: St. Martin\n1F1F2 1F1EC                                ; fully-qualified     # 🇲🇬 flag: Madagascar\n1F1F2 1F1ED                                ; fully-qualified     # 🇲🇭 flag: Marshall Islands\n1F1F2 1F1F0                                ; fully-qualified     # 🇲🇰 flag: Macedonia\n1F1F2 1F1F1                                ; fully-qualified     # 🇲🇱 flag: Mali\n1F1F2 1F1F2                                ; fully-qualified     # 🇲🇲 flag: Myanmar (Burma)\n1F1F2 1F1F3                                ; fully-qualified     # 🇲🇳 flag: Mongolia\n1F1F2 1F1F4                                ; fully-qualified     # 🇲🇴 flag: Macao SAR China\n1F1F2 1F1F5                                ; fully-qualified     # 🇲🇵 flag: Northern Mariana Islands\n1F1F2 1F1F6                                ; fully-qualified     # 🇲🇶 flag: Martinique\n1F1F2 1F1F7                                ; fully-qualified     # 🇲🇷 flag: Mauritania\n1F1F2 1F1F8                                ; fully-qualified     # 🇲🇸 flag: Montserrat\n1F1F2 1F1F9                                ; fully-qualified     # 🇲🇹 flag: Malta\n1F1F2 1F1FA                                ; fully-qualified     # 🇲🇺 flag: Mauritius\n1F1F2 1F1FB                                ; fully-qualified     # 🇲🇻 flag: Maldives\n1F1F2 1F1FC                                ; fully-qualified     # 🇲🇼 flag: Malawi\n1F1F2 1F1FD                                ; fully-qualified     # 🇲🇽 flag: Mexico\n1F1F2 1F1FE                                ; fully-qualified     # 🇲🇾 flag: Malaysia\n1F1F2 1F1FF                                ; fully-qualified     # 🇲🇿 flag: Mozambique\n1F1F3 1F1E6                                ; fully-qualified     # 🇳🇦 flag: Namibia\n1F1F3 1F1E8                                ; fully-qualified     # 🇳🇨 flag: New Caledonia\n1F1F3 1F1EA                                ; fully-qualified     # 🇳🇪 flag: Niger\n1F1F3 1F1EB                                ; fully-qualified     # 🇳🇫 flag: Norfolk Island\n1F1F3 1F1EC                                ; fully-qualified     # 🇳🇬 flag: Nigeria\n1F1F3 1F1EE                                ; fully-qualified     # 🇳🇮 flag: Nicaragua\n1F1F3 1F1F1                                ; fully-qualified     # 🇳🇱 flag: Netherlands\n1F1F3 1F1F4                                ; fully-qualified     # 🇳🇴 flag: Norway\n1F1F3 1F1F5                                ; fully-qualified     # 🇳🇵 flag: Nepal\n1F1F3 1F1F7                                ; fully-qualified     # 🇳🇷 flag: Nauru\n1F1F3 1F1FA                                ; fully-qualified     # 🇳🇺 flag: Niue\n1F1F3 1F1FF                                ; fully-qualified     # 🇳🇿 flag: New Zealand\n1F1F4 1F1F2                                ; fully-qualified     # 🇴🇲 flag: Oman\n1F1F5 1F1E6                                ; fully-qualified     # 🇵🇦 flag: Panama\n1F1F5 1F1EA                                ; fully-qualified     # 🇵🇪 flag: Peru\n1F1F5 1F1EB                                ; fully-qualified     # 🇵🇫 flag: French Polynesia\n1F1F5 1F1EC                                ; fully-qualified     # 🇵🇬 flag: Papua New Guinea\n1F1F5 1F1ED                                ; fully-qualified     # 🇵🇭 flag: Philippines\n1F1F5 1F1F0                                ; fully-qualified     # 🇵🇰 flag: Pakistan\n1F1F5 1F1F1                                ; fully-qualified     # 🇵🇱 flag: Poland\n1F1F5 1F1F2                                ; fully-qualified     # 🇵🇲 flag: St. Pierre & Miquelon\n1F1F5 1F1F3                                ; fully-qualified     # 🇵🇳 flag: Pitcairn Islands\n1F1F5 1F1F7                                ; fully-qualified     # 🇵🇷 flag: Puerto Rico\n1F1F5 1F1F8                                ; fully-qualified     # 🇵🇸 flag: Palestinian Territories\n1F1F5 1F1F9                                ; fully-qualified     # 🇵🇹 flag: Portugal\n1F1F5 1F1FC                                ; fully-qualified     # 🇵🇼 flag: Palau\n1F1F5 1F1FE                                ; fully-qualified     # 🇵🇾 flag: Paraguay\n1F1F6 1F1E6                                ; fully-qualified     # 🇶🇦 flag: Qatar\n1F1F7 1F1EA                                ; fully-qualified     # 🇷🇪 flag: Réunion\n1F1F7 1F1F4                                ; fully-qualified     # 🇷🇴 flag: Romania\n1F1F7 1F1F8                                ; fully-qualified     # 🇷🇸 flag: Serbia\n1F1F7 1F1FA                                ; fully-qualified     # 🇷🇺 flag: Russia\n1F1F7 1F1FC                                ; fully-qualified     # 🇷🇼 flag: Rwanda\n1F1F8 1F1E6                                ; fully-qualified     # 🇸🇦 flag: Saudi Arabia\n1F1F8 1F1E7                                ; fully-qualified     # 🇸🇧 flag: Solomon Islands\n1F1F8 1F1E8                                ; fully-qualified     # 🇸🇨 flag: Seychelles\n1F1F8 1F1E9                                ; fully-qualified     # 🇸🇩 flag: Sudan\n1F1F8 1F1EA                                ; fully-qualified     # 🇸🇪 flag: Sweden\n1F1F8 1F1EC                                ; fully-qualified     # 🇸🇬 flag: Singapore\n1F1F8 1F1ED                                ; fully-qualified     # 🇸🇭 flag: St. Helena\n1F1F8 1F1EE                                ; fully-qualified     # 🇸🇮 flag: Slovenia\n1F1F8 1F1EF                                ; fully-qualified     # 🇸🇯 flag: Svalbard & Jan Mayen\n1F1F8 1F1F0                                ; fully-qualified     # 🇸🇰 flag: Slovakia\n1F1F8 1F1F1                                ; fully-qualified     # 🇸🇱 flag: Sierra Leone\n1F1F8 1F1F2                                ; fully-qualified     # 🇸🇲 flag: San Marino\n1F1F8 1F1F3                                ; fully-qualified     # 🇸🇳 flag: Senegal\n1F1F8 1F1F4                                ; fully-qualified     # 🇸🇴 flag: Somalia\n1F1F8 1F1F7                                ; fully-qualified     # 🇸🇷 flag: Suriname\n1F1F8 1F1F8                                ; fully-qualified     # 🇸🇸 flag: South Sudan\n1F1F8 1F1F9                                ; fully-qualified     # 🇸🇹 flag: São Tomé & Príncipe\n1F1F8 1F1FB                                ; fully-qualified     # 🇸🇻 flag: El Salvador\n1F1F8 1F1FD                                ; fully-qualified     # 🇸🇽 flag: Sint Maarten\n1F1F8 1F1FE                                ; fully-qualified     # 🇸🇾 flag: Syria\n1F1F8 1F1FF                                ; fully-qualified     # 🇸🇿 flag: Eswatini\n1F1F9 1F1E6                                ; fully-qualified     # 🇹🇦 flag: Tristan da Cunha\n1F1F9 1F1E8                                ; fully-qualified     # 🇹🇨 flag: Turks & Caicos Islands\n1F1F9 1F1E9                                ; fully-qualified     # 🇹🇩 flag: Chad\n1F1F9 1F1EB                                ; fully-qualified     # 🇹🇫 flag: French Southern Territories\n1F1F9 1F1EC                                ; fully-qualified     # 🇹🇬 flag: Togo\n1F1F9 1F1ED                                ; fully-qualified     # 🇹🇭 flag: Thailand\n1F1F9 1F1EF                                ; fully-qualified     # 🇹🇯 flag: Tajikistan\n1F1F9 1F1F0                                ; fully-qualified     # 🇹🇰 flag: Tokelau\n1F1F9 1F1F1                                ; fully-qualified     # 🇹🇱 flag: Timor-Leste\n1F1F9 1F1F2                                ; fully-qualified     # 🇹🇲 flag: Turkmenistan\n1F1F9 1F1F3                                ; fully-qualified     # 🇹🇳 flag: Tunisia\n1F1F9 1F1F4                                ; fully-qualified     # 🇹🇴 flag: Tonga\n1F1F9 1F1F7                                ; fully-qualified     # 🇹🇷 flag: Turkey\n1F1F9 1F1F9                                ; fully-qualified     # 🇹🇹 flag: Trinidad & Tobago\n1F1F9 1F1FB                                ; fully-qualified     # 🇹🇻 flag: Tuvalu\n1F1F9 1F1FC                                ; fully-qualified     # 🇹🇼 flag: Taiwan\n1F1F9 1F1FF                                ; fully-qualified     # 🇹🇿 flag: Tanzania\n1F1FA 1F1E6                                ; fully-qualified     # 🇺🇦 flag: Ukraine\n1F1FA 1F1EC                                ; fully-qualified     # 🇺🇬 flag: Uganda\n1F1FA 1F1F2                                ; fully-qualified     # 🇺🇲 flag: U.S. Outlying Islands\n1F1FA 1F1F3                                ; fully-qualified     # 🇺🇳 flag: United Nations\n1F1FA 1F1F8                                ; fully-qualified     # 🇺🇸 flag: United States\n1F1FA 1F1FE                                ; fully-qualified     # 🇺🇾 flag: Uruguay\n1F1FA 1F1FF                                ; fully-qualified     # 🇺🇿 flag: Uzbekistan\n1F1FB 1F1E6                                ; fully-qualified     # 🇻🇦 flag: Vatican City\n1F1FB 1F1E8                                ; fully-qualified     # 🇻🇨 flag: St. Vincent & Grenadines\n1F1FB 1F1EA                                ; fully-qualified     # 🇻🇪 flag: Venezuela\n1F1FB 1F1EC                                ; fully-qualified     # 🇻🇬 flag: British Virgin Islands\n1F1FB 1F1EE                                ; fully-qualified     # 🇻🇮 flag: U.S. Virgin Islands\n1F1FB 1F1F3                                ; fully-qualified     # 🇻🇳 flag: Vietnam\n1F1FB 1F1FA                                ; fully-qualified     # 🇻🇺 flag: Vanuatu\n1F1FC 1F1EB                                ; fully-qualified     # 🇼🇫 flag: Wallis & Futuna\n1F1FC 1F1F8                                ; fully-qualified     # 🇼🇸 flag: Samoa\n1F1FD 1F1F0                                ; fully-qualified     # 🇽🇰 flag: Kosovo\n1F1FE 1F1EA                                ; fully-qualified     # 🇾🇪 flag: Yemen\n1F1FE 1F1F9                                ; fully-qualified     # 🇾🇹 flag: Mayotte\n1F1FF 1F1E6                                ; fully-qualified     # 🇿🇦 flag: South Africa\n1F1FF 1F1F2                                ; fully-qualified     # 🇿🇲 flag: Zambia\n1F1FF 1F1FC                                ; fully-qualified     # 🇿🇼 flag: Zimbabwe\n\n# subgroup: subdivision-flag\n1F3F4 E0067 E0062 E0065 E006E E0067 E007F  ; fully-qualified     # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag: England\n1F3F4 E0067 E0062 E0073 E0063 E0074 E007F  ; fully-qualified     # 🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag: Scotland\n1F3F4 E0067 E0062 E0077 E006C E0073 E007F  ; fully-qualified     # 🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag: Wales\n\n# Flags subtotal:\t\t271\n# Flags subtotal:\t\t271\tw/o modifiers\n\n# Status Counts\n# fully-qualified : 3010\n# component : 9\n\n#EOF\n"
  },
  {
    "path": "app/userland/app-stdlib/scripts/generate-css-js.js",
    "content": "const fs = require('fs')\nconst path = require('path')\n\nconst litElementPath = path.join(__dirname, '..', 'vendor', 'lit-element', 'lit-element.js')\nconsole.log('Path:', litElementPath)\nconst cssdir = path.join(__dirname, '..', 'css')\nhandleFolder(cssdir)\n\nfunction handleFolder (dirpath) {\n  console.log('->', dirpath)\n  for (let name of fs.readdirSync(dirpath)) {\n    let itempath = path.join(dirpath, name)\n    let stat = fs.statSync(itempath)\n    if (stat.isDirectory()) {\n      handleFolder(itempath)\n    } else if (itempath.endsWith('.css')) {\n      handleCSSFile(itempath)\n    }\n  }\n}\n\n// generates the css-js files\nfunction handleCSSFile (cssPath) {\n  const cssJsPath = cssPathToJsPath(cssPath)\n  console.log('Generating', cssJsPath)\n\n  // read the css\n  const css = fs.readFileSync(cssPath, 'utf8')\n\n  // replace the css imports with js imports\n  const [newCss, imports] = extractAndReplaceImports(css)\n\n  // write the css-js file\n  fs.writeFileSync(cssJsPath, `import {css} from '${path.relative(path.dirname(cssPath), litElementPath)}'\n${imports}\nconst cssStr = css\\`\n${newCss}\n\\`\nexport default cssStr\n`)\n}\n\n// converts a css path to a css-js path\n// eg reset.css -> reset.css.js\nfunction cssPathToJsPath (cssPath) {\n  return cssPath.slice(0, cssPath.length - '.css'.length) + '.css.js'\n}\n\n// finds all css imports and converts them into css-js module imports\n// eg @import \"./reset.less\" -> import resetcss from './reset.css.js'\nfunction extractAndReplaceImports (css) {\n  var imports = []\n  var newCss = css.replace(/^@import \"([^\"]*)\";$/gm, (line, path) => {\n    const importObj = {\n      path: cssPathToJsPath(path),\n      varname: path.split('/').pop().replace(/\\./g, '').replace(/-/g, '')\n    }\n    imports.push(importObj)\n    return `\\${${importObj.varname}}`\n  })\n  var importsStr = imports.map(i => `import ${i.varname} from '${i.path}'`).join('\\n')\n  return [newCss, importsStr]\n}"
  },
  {
    "path": "app/userland/app-stdlib/scripts/generate-emoji-list.js",
    "content": "const fs = require('fs')\n\nconst DISALLOWED = new Set([\n  '🔫',\n  '🔪',\n  '🖕',\n  '🗡️'\n])\n\nvar emojiDataStr = fs.readFileSync(require('path').join(__dirname, 'emoji-data.txt'), 'utf8')\n\nvar groups = []\nfor (let groupStr of emojiDataStr.split('# group: ').slice(1)) {\n  let name = (/(.*)\\n/.exec(groupStr))[1]\n  let emojis = new Set()\n\n  if (name === 'Component') {\n    continue // skip\n  }\n\n  let re = /$([0-9A-F\\.\\s]+);/gim\n  let match\n  while ((match = re.exec(groupStr))) {\n    let emoji = match[1].trim().split(' ').map(v => String.fromCodePoint(parseInt(v, 16))).join('') // parse out emoji\n    emoji = emoji.replace(/🏻|🏼|🏽|🏾|🏿/g, '') // strip skin tones\n    if (DISALLOWED.has(emoji)) continue // skip disallowed emojis\n    emojis.add(emoji)\n  }\n\n  groups.push({name, emojis: Array.from(emojis)})\n}\n\nfs.writeFileSync(require('path').join(__dirname, 'emoji-list.js'), `\nexport const SUGGESTED = [\n  \"❤\",\n  \"👀\",\n  \"🔥\",\n  \"🎉\",\n  \"✨\",\n  \"🆒\",\n  '🙂',\n  '😂',\n  \"😅\",\n  '😢',\n  \"😐\",\n  \"😮\",\n  '😡',\n  \"😤\",\n  \"🤭\",\n  \"🤔\",\n  \"🤨\",\n  \"🤯\",\n  '👍',\n  \"👎\",\n  \"👆\",\n  \"👏\",\n  \"🙌\",\n  \"🙏\",\n  \"👋\",\n  \"💪\",\n  \"💅\",\n  \"✊\",\n  \"👌\",\n  \"🤘\",\n]\n\nexport const GROUPS = ${JSON.stringify(groups, null, 2)}\n\nexport const FULL_LIST = GROUPS.map(({emojis}) => emojis).reduce((acc, v) => acc.concat(v), [])\n`)"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/.editorconfig",
    "content": "# http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[{*.js,*.json,*.yml}]\nindent_size = 2\nindent_style = space\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/.eslintignore",
    "content": ".nyc_output\ncoverage\nnode_modules\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/.eslintrc.yml",
    "content": "root: true\nextends: eslint:recommended\nenv:\n  node: true\nrules:\n  eol-last: error\n  indent: [\"error\", 2, { \"SwitchCase\": 1 }]\n  no-mixed-spaces-and-tabs: error\n  no-trailing-spaces: error\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/.gitignore",
    "content": ".nyc_output/\ncoverage/\nnode_modules/\nnpm-debug.log\npackage-lock.json\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/.travis.yml",
    "content": "language: node_js\nnode_js:\n  - \"0.8\"\n  - \"0.10\"\n  - \"0.12\"\n  - \"1.8\"\n  - \"2.5\"\n  - \"3.3\"\n  - \"4.9\"\n  - \"5.12\"\n  - \"6.16\"\n  - \"7.10\"\n  - \"8.15\"\n  - \"9.11\"\n  - \"10.15\"\n  - \"11.7\"\nsudo: false\ncache:\n  directories:\n    - node_modules\nbefore_install:\n  # Configure npm\n  - |\n    # Skip updating shrinkwrap / lock\n    npm config set shrinkwrap false\n  # Setup Node.js version-specific dependencies\n  - |\n    # mocha for testing\n    # - use 2.x for Node.js < 0.10\n    # - use 3.x for Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -eq 0 && \"$(cut -d. -f2 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 10 ]]; then\n      npm install --save-dev mocha@2.5.3\n    elif [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      npm install --save-dev mocha@3.5.3\n    fi\n  - |\n    # nyc for coverage\n    # - remove on Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      npm rm --save-dev nyc\n    fi\n  - |\n    # eslint for linting\n    # - remove on Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      node -pe 'Object.keys(require(\"./package\").devDependencies).join(\"\\n\")' | \\\n        grep -E '^eslint(-|$)' | \\\n        xargs npm rm --save-dev\n    fi\n  # Update Node.js modules\n  - |\n    # Prune & rebuild node_modules\n    if [[ -d node_modules ]]; then\n      npm prune\n      npm rebuild\n    fi\n\nscript:\n  - |\n    # Run test script, depending on nyc install\n    if [[ -n \"$(npm -ps ls nyc)\" ]]; then\n      npm run-script test-ci\n    else\n      npm test\n    fi\n  - |\n    # Run linting, depending on eslint install\n    if [[ -n \"$(npm -ps ls eslint)\" ]]; then\n      npm run-script lint\n    fi\nafter_script:\n  - |\n    # Upload coverage to coveralls, if exists\n    if [[ -d .nyc_output ]]; then\n      npm install --save-dev coveralls@2\n      nyc report --reporter=text-lcov | coveralls\n    fi\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/History.md",
    "content": "3.1.0 / 2019-01-22\n==================\n\n  * Add petabyte (`pb`) support\n\n3.0.0 / 2017-08-31\n==================\n\n  * Change \"kB\" to \"KB\" in format output\n  * Remove support for Node.js 0.6\n  * Remove support for ComponentJS\n\n2.5.0 / 2017-03-24\n==================\n\n  * Add option \"unit\"\n\n2.4.0 / 2016-06-01\n==================\n\n  * Add option \"unitSeparator\"\n\n2.3.0 / 2016-02-15\n==================\n\n  * Drop partial bytes on all parsed units\n  * Fix non-finite numbers to `.format` to return `null`\n  * Fix parsing byte string that looks like hex\n  * perf: hoist regular expressions\n\n2.2.0 / 2015-11-13\n==================\n\n  * add option \"decimalPlaces\"\n  * add option \"fixedDecimals\"\n\n2.1.0 / 2015-05-21\n==================\n\n  * add `.format` export\n  * add `.parse` export\n\n2.0.2 / 2015-05-20\n==================\n\n  * remove map recreation\n  * remove unnecessary object construction\n\n2.0.1 / 2015-05-07\n==================\n\n  * fix browserify require\n  * remove node.extend dependency\n\n2.0.0 / 2015-04-12\n==================\n\n  * add option \"case\"\n  * add option \"thousandsSeparator\"\n  * return \"null\" on invalid parse input\n  * support proper round-trip: bytes(bytes(num)) === num\n  * units no longer case sensitive when parsing\n\n1.0.0 / 2014-05-05\n==================\n\n * add negative support. fixes #6\n\n0.3.0 / 2014-03-19\n==================\n\n * added terabyte support\n\n0.2.1 / 2013-04-01\n==================\n\n  * add .component\n\n0.2.0 / 2012-10-28\n==================\n\n  * bytes(200).should.eql('200b')\n\n0.1.0 / 2012-07-04\n==================\n\n  * add bytes to string conversion [yields]\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/LICENSE",
    "content": "(The MIT License)\n\nCopyright (c) 2012-2014 TJ Holowaychuk <tj@vision-media.ca>\nCopyright (c) 2015 Jed Watson <jed.watson@me.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/Readme.md",
    "content": "# Bytes utility\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nUtility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa.\n\n## Installation\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/). Installation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```bash\n$ npm install bytes\n```\n\n## Usage\n\n```js\nvar bytes = require('bytes');\n```\n\n#### bytes.format(number value, [options]): string｜null\n\nFormat the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is\n rounded.\n\n**Arguments**\n\n| Name    | Type     | Description        |\n|---------|----------|--------------------|\n| value   | `number` | Value in bytes     |\n| options | `Object` | Conversion options |\n\n**Options**\n\n| Property          | Type   | Description                                                                             |\n|-------------------|--------|-----------------------------------------------------------------------------------------|\n| decimalPlaces | `number`｜`null` | Maximum number of decimal places to include in output. Default value to `2`. |\n| fixedDecimals | `boolean`｜`null` | Whether to always display the maximum number of decimal places. Default value to `false` |\n| thousandsSeparator | `string`｜`null` | Example of values: `' '`, `','` and `.`... Default value to `''`. |\n| unit | `string`｜`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). |\n| unitSeparator | `string`｜`null` | Separator to use between number and unit. Default value to `''`. |\n\n**Returns**\n\n| Name    | Type             | Description                                     |\n|---------|------------------|-------------------------------------------------|\n| results | `string`｜`null` | Return null upon error. String value otherwise. |\n\n**Example**\n\n```js\nbytes(1024);\n// output: '1KB'\n\nbytes(1000);\n// output: '1000B'\n\nbytes(1000, {thousandsSeparator: ' '});\n// output: '1 000B'\n\nbytes(1024 * 1.7, {decimalPlaces: 0});\n// output: '2KB'\n\nbytes(1024, {unitSeparator: ' '});\n// output: '1 KB'\n\n```\n\n#### bytes.parse(string｜number value): number｜null\n\nParse the string value into an integer in bytes. If no unit is given, or `value`\nis a number, it is assumed the value is in bytes.\n\nSupported units and abbreviations are as follows and are case-insensitive:\n\n  * `b` for bytes\n  * `kb` for kilobytes\n  * `mb` for megabytes\n  * `gb` for gigabytes\n  * `tb` for terabytes\n  * `pb` for petabytes\n\nThe units are in powers of two, not ten. This means 1kb = 1024b according to this parser.\n\n**Arguments**\n\n| Name          | Type   | Description        |\n|---------------|--------|--------------------|\n| value   | `string`｜`number` | String to parse, or number in bytes.   |\n\n**Returns**\n\n| Name    | Type        | Description             |\n|---------|-------------|-------------------------|\n| results | `number`｜`null` | Return null upon error. Value in bytes otherwise. |\n\n**Example**\n\n```js\nbytes('1KB');\n// output: 1024\n\nbytes('1024');\n// output: 1024\n\nbytes(1024);\n// output: 1KB\n```\n\n## License \n\n[MIT](LICENSE)\n\n[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master\n[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master\n[downloads-image]: https://badgen.net/npm/dm/bytes\n[downloads-url]: https://npmjs.org/package/bytes\n[npm-image]: https://badgen.net/npm/node/bytes\n[npm-url]: https://npmjs.org/package/bytes\n[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master\n[travis-url]: https://travis-ci.org/visionmedia/bytes.js\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/bytes/index.js",
    "content": "/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n  b:  1,\n  kb: 1 << 10,\n  mb: 1 << 20,\n  gb: 1 << 30,\n  tb: Math.pow(1024, 4),\n  pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n *  case: [string],\n *  decimalPlaces: [number]\n *  fixedDecimals: [boolean]\n *  thousandsSeparator: [string]\n *  unitSeparator: [string]\n *  }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nexport default function bytes(value, options) {\n  if (typeof value === 'string') {\n    return parse(value);\n  }\n\n  if (typeof value === 'number') {\n    return format(value, options);\n  }\n\n  return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nexport function format(value, options) {\n  if (!Number.isFinite(value)) {\n    return null;\n  }\n\n  var mag = Math.abs(value);\n  var thousandsSeparator = (options && options.thousandsSeparator) || '';\n  var unitSeparator = (options && options.unitSeparator) || '';\n  var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n  var fixedDecimals = Boolean(options && options.fixedDecimals);\n  var unit = (options && options.unit) || '';\n\n  if (!unit || !map[unit.toLowerCase()]) {\n    if (mag >= map.pb) {\n      unit = 'PB';\n    } else if (mag >= map.tb) {\n      unit = 'TB';\n    } else if (mag >= map.gb) {\n      unit = 'GB';\n    } else if (mag >= map.mb) {\n      unit = 'MB';\n    } else if (mag >= map.kb) {\n      unit = 'KB';\n    } else {\n      unit = 'B';\n    }\n  }\n\n  var val = value / map[unit.toLowerCase()];\n  var str = val.toFixed(decimalPlaces);\n\n  if (!fixedDecimals) {\n    str = str.replace(formatDecimalsRegExp, '$1');\n  }\n\n  if (thousandsSeparator) {\n    str = str.replace(formatThousandsRegExp, thousandsSeparator);\n  }\n\n  return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nexport function parse(val) {\n  if (typeof val === 'number' && !isNaN(val)) {\n    return val;\n  }\n\n  if (typeof val !== 'string') {\n    return null;\n  }\n\n  // Test if the string passed is valid\n  var results = parseRegExp.exec(val);\n  var floatValue;\n  var unit = 'b';\n\n  if (!results) {\n    // Nothing could be extracted from the given string\n    floatValue = parseInt(val, 10);\n    unit = 'b'\n  } else {\n    // Retrieve the value and the unit\n    floatValue = parseFloat(results[1]);\n    unit = results[4].toLowerCase();\n  }\n\n  return Math.floor(map[unit] * floatValue);\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/emoji-skin-tone/README.md",
    "content": "# skin-tone [![Build Status](https://travis-ci.org/sindresorhus/skin-tone.svg?branch=master)](https://travis-ci.org/sindresorhus/skin-tone)\n\n> Change the skin tone of an emoji 👌👌🏻👌🏼👌🏽👌🏾👌🏿\n\nThe [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale#Unicode) is used to specify skin tones for emoji characters which represent humans.\n\n\n## Install\n\n```\n$ npm install --save skin-tone\n```\n\n\n## Usage\n\n```js\nconst skinTone = require('skin-tone');\n\nskinTone('👍', skinTone.BROWN);\n//=> '👍🏾'\n\n// or by using the constant value directly\nskinTone('👍', 4);\n//=> '👍🏾\n\nskinTone('👍', skinTone.WHITE);\n//=> '👍🏻'\n\n// can also remove skin tone\nskinTone('👍🏾', skinTone.NONE);\n//=> '👍'\n\n// just passes it through when not supported\nskinTone('🦄', skinTone.DARK_BROWN);\n//=> '🦄'\n```\n\n\n## API\n\n### skinTone(emoji, type)\n\n#### emoji\n\nType: `string`\n\nEmoji to modify.\n\n#### type\n\nType: `number`<br>\nValues:\n\n- `skinTone.NONE`        | `0`:      *(Removes skin tone)*\n- `skinTone.WHITE`       | `1`: 🏻   *(Fitzpatrick Type-1–2)*\n- `skinTone.CREAM_WHITE` | `2`: 🏼   *(Fitzpatrick Type-3)*\n- `skinTone.LIGHT_BROWN` | `3`: 🏽   *(Fitzpatrick Type-4)*\n- `skinTone.BROWN`       | `4`: 🏾   *(Fitzpatrick Type-5)*\n- `skinTone.DARK_BROWN`  | `5`: 🏿   *(Fitzpatrick Type-6)*\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/emoji-skin-tone/index.js",
    "content": "/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n */\n\nconst emojiModifierBase = new Set([\n\t0x261D,\n\t0x26F9,\n\t0x270A,\n\t0x270B,\n\t0x270C,\n\t0x270D,\n\t0x1F385,\n\t0x1F3C3,\n\t0x1F3C4,\n\t0x1F3CA,\n\t0x1F3CB,\n\t0x1F442,\n\t0x1F443,\n\t0x1F446,\n\t0x1F447,\n\t0x1F448,\n\t0x1F449,\n\t0x1F44A,\n\t0x1F44B,\n\t0x1F44C,\n\t0x1F44D,\n\t0x1F44E,\n\t0x1F44F,\n\t0x1F450,\n\t0x1F466,\n\t0x1F467,\n\t// 0x1F468, SUPPORT (prf)\n\t// 0x1F469, SUPPORT (prf)\n\t0x1F46E,\n\t0x1F470,\n\t0x1F471,\n\t0x1F472,\n\t0x1F473,\n\t0x1F474,\n\t0x1F475,\n\t0x1F476,\n\t0x1F477,\n\t0x1F478,\n\t0x1F47C,\n\t0x1F481,\n\t0x1F482,\n\t0x1F483,\n\t0x1F485,\n\t0x1F486,\n\t0x1F487,\n\t0x1F4AA,\n\t0x1F575,\n\t0x1F57A,\n\t0x1F590,\n\t0x1F595,\n\t0x1F596,\n\t0x1F645,\n\t0x1F646,\n\t0x1F647,\n\t0x1F64B,\n\t0x1F64C,\n\t0x1F64D,\n\t0x1F64E,\n\t0x1F64F,\n\t0x1F6A3,\n\t0x1F6B4,\n\t0x1F6B5,\n\t0x1F6B6,\n\t0x1F6C0,\n\t0x1F918,\n\t0x1F919,\n\t0x1F91A,\n\t0x1F91B,\n\t0x1F91C,\n\t// 0x1F91D, SUPPORT (prf)\n\t0x1F91E,\n\t0x1F926,\n\t0x1F930,\n\t0x1F933,\n\t0x1F934,\n\t0x1F935,\n\t0x1F936,\n\t0x1F937,\n\t0x1F938,\n\t0x1F939,\n\t// 0x1F93C, SUPPORT (prf)\n\t0x1F93D,\n\t0x1F93E\n]);\n\n\nconst skinTones = [\n\t{\n\t\tname: 'NONE',\n\t\tcolor: ''\n\t},\n\t{\n\t\tname: 'WHITE',\n\t\tcolor: '🏻'\n\t},\n\t{\n\t\tname: 'CREAM_WHITE',\n\t\tcolor: '🏼'\n\t},\n\t{\n\t\tname: 'LIGHT_BROWN',\n\t\tcolor: '🏽'\n\t},\n\t{\n\t\tname: 'BROWN',\n\t\tcolor: '🏾'\n\t},\n\t{\n\t\tname: 'DARK_BROWN',\n\t\tcolor: '🏿'\n\t}\n];\n\nexport const NONE = 0\nexport const WHITE = 1\nexport const CREAM_WHITE = 2\nexport const LIGHT_BROWN = 3\nexport const BROWN = 4\nexport const DARK_BROWN = 5\n\nexport function set (emoji, type) {\n\tif (type > 5 || type < 0) {\n\t\tthrow new TypeError(`Expected \\`type\\` to be a number between 0 and 5, got ${type}`);\n\t}\n\n\t// TODO: Use this instead when targeting Node.js 6\n\t// emoji = emoji.replace(/[\\u{1f3fb}-\\u{1f3ff}]/u, '');\n\tskinTones.forEach(x => {\n\t\temoji = emoji.replace(x.color, '');\n\t});\n\n\tif (emojiModifierBase.has(emoji.codePointAt(0)) && type !== 0) {\n\t\temoji += skinTones[type].color;\n\t}\n\n\treturn emoji;\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n<!-- ### Added -->\n<!-- ### Changed -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n## [2.0.1] - 2019-02-05\n### Fixed\n* Use `lit-html` 1.0 ([#543](https://github.com/Polymer/lit-element/pull/543)).\n\n## [2.0.0] - 2019-02-05\n### Added\n* Add `toString()` function to `CSSResult` ([#508](https://github.com/Polymer/lit-element/pull/508))\n* Add a global version to `window` ([#536](https://github.com/Polymer/lit-element/pull/536))\n\n### Changed\n* [Breaking] Renamed `unsafeCss` to `unsafeCSS` for consistency with lit-html's `unsafeHTML` ([#524](https://github.com/Polymer/lit-element/pull/524))\n* Remove all uses of `any` outside of tests ([#457](https://github.com/Polymer/lit-element/pull/457))\n\n### Fixed\n* A bunch of docs fixes ([#464](https://github.com/Polymer/lit-element/pull/464)), ([#458](https://github.com/Polymer/lit-element/pull/458)), ([#493](https://github.com/Polymer/lit-element/pull/493)), ([#504](https://github.com/Polymer/lit-element/pull/504)), ([#505](https://github.com/Polymer/lit-element/pull/505)), ([#501](https://github.com/Polymer/lit-element/pull/501)), ([#494](https://github.com/Polymer/lit-element/pull/494)), ([#491](https://github.com/Polymer/lit-element/pull/491)), ([#509](https://github.com/Polymer/lit-element/pull/509)), ([#513](https://github.com/Polymer/lit-element/pull/513)), ([#515](https://github.com/Polymer/lit-element/pull/515)), ([#512](https://github.com/Polymer/lit-element/pull/512)), ([#503](https://github.com/Polymer/lit-element/pull/503)), ([#460](https://github.com/Polymer/lit-element/pull/460)), ([#413](https://github.com/Polymer/lit-element/pull/413)), ([#426](https://github.com/Polymer/lit-element/pull/426)), ([#516](https://github.com/Polymer/lit-element/pull/516)), ([#537](https://github.com/Polymer/lit-element/pull/537)), ([#535](https://github.com/Polymer/lit-element/pull/535)), ([#539](https://github.com/Polymer/lit-element/pull/539)), ([#540](https://github.com/Polymer/lit-element/pull/540))\n* Build on checkout ([#423](https://github.com/Polymer/lit-element/pull/423))\n\n### Fixed\n* Adds a check to ensure `CSSStyleSheet` is constructable ([#527](https://github.com/Polymer/lit-element/pull/527)).\n\n## [2.0.0-rc.5] - 2019-01-24\n### Fixed\n* Fixed a bug causing duplicate styles when an array was returned from `static get styles` ([#480](https://github.com/Polymer/lit-element/issues/480)).\n\n## [2.0.0-rc.4] - 2019-01-24\n### Added\n* [Maintenance] Added script to publish dev releases automatically ([#476](https://github.com/Polymer/lit-element/pull/476)).\n* Adds `unsafeCss` for composing \"unsafe\" values into `css`. Note, `CSSResult` is no longer constructable. ([#451](https://github.com/Polymer/lit-element/issues/451) and [#471](https://github.com/Polymer/lit-element/issues/471)).\n\n### Fixed\n* Fixed a bug where we broke compatibility with closure compiler's property renaming optimizations. JSCompiler_renameProperty can't be a module export ([#465](https://github.com/Polymer/lit-element/pull/465)).\n* Fixed an issue with inheriting from `styles` property when extending a superclass that is never instanced. ([#470](https://github.com/Polymer/lit-element/pull/470)).\n* Fixed an issue with Closure Compiler and ([#470](https://github.com/Polymer/lit-element/pull/470)) ([#476](https://github.com/Polymer/lit-element/pull/476)).\n\n## [2.0.0-rc.3] - 2019-01-18\n### Fixed\n* README: Fixed jsfiddle reference ([#435](https://github.com/Polymer/lit-element/pull/435)).\n* Compile with Closure Compiler cleanly ([#436](https://github.com/Polymer/lit-element/pull/436)).\n* Opt `@property` decorators out of Closure Compiler renaming ([#448](https://github.com/Polymer/lit-element/pull/448)).\n\n### Changed\n* [Breaking] Property accessors are no longer wrapped when they already exist. Instead the `noAccessor` flag should be set when a user-defined accessor exists on the prototype (and in this case, user-defined accessors must call `requestUpdate` themselves). ([#454](https://github.com/Polymer/lit-element/pull/454)).\n* Class fields can now be used to define styles, e.g. `static styles = css` and `styles` correctly compose when elements are extended ([#456](https://github.com/Polymer/lit-element/pull/456)).\n* Styles returned via `static styles` are automatically flattend ([#437](https://github.com/Polymer/lit-element/pull/437)).\n* Replace use of for/of loops over Maps with forEach ([#455](https://github.com/Polymer/lit-element/pull/455))\n\n## [2.0.0-rc.2] - 2019-01-11\n### Fixed\n* Fix references to `@polymer/lit-element` in README and docs ([#427](https://github.com/Polymer/lit-element/pull/427)).\n* Fix decorator types causing compiler errors for TypeScript users. ([#431](https://github.com/Polymer/lit-element/pull/431)).\n\n## [2.0.0-rc.1] - 2019-01-10\n### Changed\n* [Breaking] Changed NPM package name to `lit-element`\n\n## [0.7.0] - 2019-01-10\n### Added\n* Updated decorator implementations to support TC39 decorator API proposal (supported by Babel 7.1+) in addition to the legacy decorator API (supported by older Babel and TypeScript) ([#156](https://github.com/Polymer/lit-element/issues/156)).\n* Added `static get styles()` to allow defining element styling separate from `render` method.\nThis takes advantage of [`adoptedStyleSheets`](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets) when possible ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* Added the `performUpdate` method to allow control of update timing ([#290](https://github.com/Polymer/lit-element/issues/290)).\n* Updates deferred until first connection ([#258](https://github.com/Polymer/lit-element/issues/258)).\n* Export `TemplateResult` and `SVGTemplateResult` ([#415](https://github.com/Polymer/lit-element/pull/415)).\n### Changed\n* [Breaking] The `createRenderRoot` method has moved from `UpdatingElement` to `LitElement`. Therefore, `UpdatingElement` no longer creates a `shadowRoot` by default ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* [Breaking] Changes property options to add `converter`. This option works the same as the previous `type` option except that the `converter` methods now also get `type` as the second argument. This effectively changes `type` to be a hint for the `converter`. A default `converter` is used if none is provided and it now supports `Boolean`, `String`, `Number`, `Object`, and `Array` ([#264](https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Numbers and strings now become null if their reflected attribute is removed (https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Previously, when an attribute changed as a result of a reflecting property changing, the property was prevented from mutating again as can happen when a custom\n`converter` is used. Now, the oppose is also true. When a property changes as a result of an attribute changing, the attribute is prevented from mutating again (https://github.com/Polymer/lit-element/issues/264))\n### Fixed\n* [Breaking] User defined accessors are now wrapped to enable better composition ([#286](https://github.com/Polymer/lit-element/issues/286))\n* Type for `eventOptions` decorator now properly includes `passive` and `once` options ([#325](https://github.com/Polymer/lit-element/issues/325))\n\n## [0.6.5] - 2018-12-13\n### Changed:\n* Use lit-html 1.0 release candidate.\n\n### Fixed\n* Types for the `property` and `customElement` decorators updated ([#288](https://github.com/Polymer/lit-element/issues/288) and [#291](https://github.com/Polymer/lit-element/issues/291)).\n* Docs updated.\n\n## [0.6.4] - 2018-11-30\n### Changed\n* Update lit-html dependency to ^0.14.0 ([#324](https://github.com/Polymer/lit-element/pull/324)).\n\n## [0.6.3] - 2018-11-08\n### Changed\n* Update lit-html dependency to ^0.13.0 ([#298](https://github.com/Polymer/lit-element/pull/298)).\n\n## [0.6.2] - 2018-10-05\n\n### Changed\n* LitElement changed to a non-abstract class to be more compatible with the JavaScript mixin pattern\n([#227](https://github.com/Polymer/lit-element/issues/227)).\n* Update lit-html dependency to ^0.12.0 ([#244](https://github.com/Polymer/lit-element/pull/244)).\n* Passes the component's `this` reference to lit-html as the `eventContext`, allowing unbound event listener methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n### Added\n* A `disconnectedCallback()` method was added to UpdatingElement ([#213](https://github.com/Polymer/lit-element/pull/213)).\n* Added `@eventOptions()` decorator for setting event listener options on methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n\n## [0.6.1] - 2018-09-17\n\n### Fixed\n* Fixes part rendering and css custom properties issues introduced with lit-html 0.11.3 by updating to 0.11.4 (https://github.com/Polymer/lit-element/issues/202).\n\n### Removed\n* Removed custom_typings for Polymer as they are no longer needed\n(https://github.com/Polymer/lit-element/issues/186).\n\n## [0.6.0] - 2018-09-13\n\n### Added\n* Added `@query()`, `@queryAll()`, and `@customElement` decorators ([#159](https://github.com/Polymer/lit-element/pull/159))\n\n### Changed\n* Significantly changed update/render lifecycle and property API. Render lifecycle\nis now `requestUpdate`, `shouldUpdate`, `update`, `render`, `firstUpdated`\n(first time only), `updated`, `updateComplete`. Property options are now\n`{attribute, reflect, type, hasChanged}`. Properties may be defined in a\n`static get properties` or using the `@property` decorator.\n(https://github.com/Polymer/lit-element/pull/132).\n\n\n### Removed\n* Removed render helpers `classString` and `styleString`. Similar directives\n(`classMap` and `styleMap`) have been added to lit-html and should be used instead\n(https://github.com/Polymer/lit-element/pull/165 and\nhttps://github.com/Polymer/lit-html/pull/486).\n\n### Fixed\n* The `npm run checksize` command should now return the correct minified size\n(https://github.com/Polymer/lit-element/pull/153).\n* The `firstUpdated` method should now always be called the first time the element\nupdates, even if `shouldUpdate` initially returned `false`\n(https://github.com/Polymer/lit-element/pull/173).\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/CONTRIBUTING.md",
    "content": "# Contributing to Polymer\n\nThere are many ways to contribute to the Polymer project! We welcome and truly appreciate contribution in all forms - issues and pull requests to the [main library](https://github.com/polymer/polymer), issues and pull requests to the [elements the Polymer team maintains](https://github.com/polymerelements), issues and pull requests to one of our many [Polymer-related tools](https://github.com/polymer), and of course we love to hear about any Polymer elements that you build to share with the community!\n\n## Logistics\n\n### Communicating with the Polymer team\n\nBeyond GitHub, we try to have a variety of different lines of communication open:\n\n* [Blog](https://blog.polymer-project.org/)\n* [Twitter](https://twitter.com/polymer)\n* [Google+ Community](https://plus.sandbox.google.com/u/0/communities/115626364525706131031?cfem=1)\n* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev)\n* [Slack channel](https://bit.ly/polymerslack)\n\n### The Polymer Repositories\n\nBecause of the component-based nature of the Polymer project, we tend to have lots of different repositories. Our main repository for the Polymer library itself is at [github.com/Polymer/polymer](https://github.com/polymer/polymer). File any issues or pull requests that have to do with the core library on that repository, and we'll take a look ASAP.\n\nWe keep all of the element \"product lines\" that the Polymer team maintains and distributes in the [PolymerElements](https://github.com/polymerelements) organization. For any element-specific issues or pull requests, file directly on the element's repository, such as the `paper-button` repository at [github.com/polymerelements/paper-button](https://github.com/polymerelements/paper-button). Of course, the elements built by the Polymer team are just a tiny fraction of all the Polymer-based elements out there - catalogs of other web components include [https://www.webcomponents.org/](https://github.com/webcomponents/webcomponents.org) and [component.kitchen](https://component.kitchen).\n\nThe GoogleWebComponents element product line is maintained by teams all across Google, and so is kept in a separate organization: the [GoogleWebComponents](https://github.com/googlewebcomponents) org. Feel free to file issues and PR's on those elements directly in that organization.\n\nWe also track each element product line overall in \"meta-repos\", named as `$PRODUCTLINE-elements`. These include [paper-elements](https://github.com/polymerelements/paper-elements), [iron-elements](https://github.com/polymerelements/iron-elements), [gold-elements](https://github.com/polymerelements/gold-elements), and more. Feel free to file issues for element requests on those meta-repos, and the README in each repo tracks a roadmap for the product line.\n\n### Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n## Contributing\n\n### Contributing documentation\n\nDocs source is in the `docs` folder. To build the site yourself, see the instructions in [docs/README.md](docs/README.md).\n\n### Filing bugs\n\nThe Polymer team heavily uses (and loves!) GitHub for all of our software management. We use GitHub issues to track all bugs and features.\n\nIf you find an issue, please do file it on the repository. The [Polymer/polymer issues](https://github.com/polymer/polymer/issues) should be used only for issues on the Polymer library itself - bugs somewhere in the core codebase.\n\nFor issues with elements the team maintains, please file directly on the element's repository. If you're not sure if a bug stems from the element or the library, air toward filing it on the element and we'll move the issue if necessary.\n\nPlease file issues using the issue template provided, filling out as many fields as possible. We love examples for addressing issues - issues with a jsBin, Plunkr, jsFiddle, or glitch.me repro will be much easier for us to work on quickly. You can start with [this StackBlitz](https://stackblitz.com/edit/lit-element-example?file=index.js) which sets up the basics to demonstrate a lit-element.  If you need your repro to run in IE11, you can start from [this glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html:1:0), which serves the source via polyserve for automatic transpilation, although you must sign up for a glitch.me account to ensure your code persists for more than 5 days (note the glitch.me _editing environment_ is not compatible with IE11, however the \"live\" view link of the running code should work).\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n### Contributing Pull Requests\n\nPR's are even better than issues. We gladly accept community pull requests. In general across the core library and all of the elements, there are a few necessary steps before we can accept a pull request:\n\n- Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself.\n- Sign the [CLA](https://cla.developers.google.com/clas), as described above.\n- Fork the repo you're making the fix on to your own GitHub account.\n- Code!\n- Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that's OK - or perhaps consider making two separate PR's.\n- **Include tests that test the range of behavior that changes with your PR.** If you PR fixes a bug, make sure your tests capture that bug. If your PR adds new behavior, make sure that behavior is fully tested. Every PR *must* include associated tests. (See [Unit tests](#unit-tests) for more.)\n- Submit your PR, making sure it references the issue you created.\n- If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix.\n\nIf you've completed all of these steps the core team will do its best to respond to the PR as soon as possible.\n\n#### Contributing Code to Elements\n\nThough the aim of the Polymer library is to allow lots of flexibility and not get in your way, we work to standardize our elements to make them as toolable and easy to maintain as possible.\n\nAll elements should follow the [Polymer element style guide](https://www.polymer-project.org/3.0/docs/tools/documentation), which defines how to specify properties, documentation, and more. It's a great guide to follow when building your own elements as well, for maximum standardization and toolability. For instance, structuring elements following the style guide will ensure that they work with the [`iron-component-page`](https://github.com/polymerelements/iron-component-page) element, an incredibly easy way to turn any raw element directly into a documentation page.\n\n#### Contributing Code to the Polymer library\n\nWe follow the most common JavaScript and HTML style guidelines for how we structure our code - in general, look at the code and you'll know how to contribute! If you'd like a bit more structure, the [Google JavaScript Styleguide](https://google.github.io/styleguide/javascriptguide.xml) is a good place to start.\n\nPolymer also participates in Google's [Patch Rewards Program](https://www.google.com/about/appsecurity/patch-rewards/), where you can earn cold, hard cash for qualifying security patches to the Polymer library. Visit the [patch rewards page](https://www.google.com/about/appsecurity/patch-rewards/) to find out more.\n\n## Unit tests\n\nAll Polymer projects use [`polymer-cli`](https://github.com/Polymer/tools/tree/master/packages/cli) for unit tests.\n\nFor maximum flexibility, install `polymer-cli` locally:\n\n    npm install -g polymer-cli\n\n### Running the lit-element unit tests\n\nTo run the lit-element unit tests:\n\n1.  Clone the [lit-element repo](https://github.com/polymer/lit-element).\n\n2.  Install the dependencies:\n\n\t\tnpm install\n\n3.  Run the tests:\n\n\t\tnpm test\n\n    Or if you have `polymer-cli` installed locally:\n\n\t\tpolymer test --npm\n\nTo run individual test suites:\n\n<code>npm test <var>path/to/suite</var></code>\n\nOr:\n\n<code>polymer test --npm <var>path/to/suite</var></code>\n\nFor example:\n\n\tpolymer test --npm test/index.html\n\nYou can also run tests in the browser:\n\n\tpolymer serve --npm\n\nNavigate to:\n\n[`http://localhost:8080/components/@polymer/lit-element/test/index.html`](http://localhost:8080/components/@polymer/lit-element/test/index.html)\n\n### Configuring `web-component-tester`\n\nBy default, `polymer test` runs tests on all installed browsers. You can configure it\nto run tests on a subset of available browsers, or to run tests remotely using Sauce Labs.\n\nSee the [`web-component-tester` README](https://github.com/Polymer/tools/tree/master/packages/web-component-tester) for\ninformation on configuring the tool using by `polymer-cli` to run the tests.\n\n### Viewing the source documentation locally\n\nYou can view the updates you make to the source documentation locally with the following steps.\nMake sure to rerun step 1 after every change you make.\n\n1. Run `polymer analyze > analysis.json`\n\n1. Run `polymer serve`\n\n1. Open `http://127.0.0.1:PORT/components/polymer/` to view the documentation\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/README.md",
    "content": "# LitElement\nA simple base class for creating fast, lightweight web components with [lit-html](https://lit-html.polymer-project.org/).\n\n[![Build Status](https://travis-ci.org/Polymer/lit-element.svg?branch=master)](https://travis-ci.org/Polymer/lit-element)\n[![Published on npm](https://img.shields.io/npm/v/lit-element.svg)](https://www.npmjs.com/package/lit-element)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/lit-element)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-element.polymer-project.org](https://lit-element.polymer-project.org).\n\n## Overview\n\nLitElement uses [lit-html](https://lit-html.polymer-project.org/) to render into the\nelement's [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)\nand adds API to help manage element properties and attributes. LitElement reacts to changes in properties\nand renders declaratively using `lit-html`. See the [lit-html guide](https://lit-html.polymer-project.org/guide)\nfor additional information on how to create templates for lit-element.\n\n```ts\n    import {LitElement, html, css, customElement, property} from 'lit-element';\n\n    // This decorator defines the element.\n    @customElement('my-element');\n    export class MyElement extends LitElement {\n\n      // This decorator creates a property accessor that triggers rendering and\n      // an observed attribute.\n      @property()\n      mood = 'great';\n\n      static styles = css`\n        span {\n          color: green;\n        }`;\n\n      // Render element DOM by returning a `lit-html` template.\n      render() {\n        return html`Web Components are <span>${this.mood}</span>!`;\n      }\n\n    }\n```\n\n```html\n    <my-element mood=\"awesome\"></my-element>\n```\n\nNote, this example uses decorators to create properties. Decorators are a proposed\nstandard currently available in [TypeScript](https://www.typescriptlang.org/) or [Babel](https://babeljs.io/docs/en/babel-plugin-proposal-decorators). LitElement also supports a [vanilla JavaScript method](https://lit-element.polymer-project.org/guide/properties#declare) of declaring reactive properties.\n\n## Examples\n\n  * Runs in all [supported](#supported-browsers) browsers: [Glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html)\n\n  * Runs in browsers with [JavaScript Modules](https://caniuse.com/#search=modules): [Stackblitz](https://stackblitz.com/edit/lit-element-demo?file=src%2Fmy-element.js), [JSFiddle](https://jsfiddle.net/sorvell1/801f9cdu/), [JSBin](http://jsbin.com/vecuyan/edit?html,output),\n[CodePen](https://codepen.io/sorvell/pen/RYQyoe?editors=1000).\n\n  * You can also copy [this HTML file](https://gist.githubusercontent.com/sorvell/48f4b7be35c8748e8f6db5c66d36ee29/raw/67346e4e8bc4c81d5a7968d18f0a6a8bc00d792e/index.html) into a local file and run it in any browser that supports [JavaScript Modules]((https://caniuse.com/#search=modules)).\n\n## Installation\n\nFrom inside your project folder, run:\n\n```bash\n$ npm install lit-element\n```\n\nTo install the web components polyfills needed for older browsers:\n\n```bash\n$ npm i -D @webcomponents/webcomponentsjs\n```\n\n## Supported Browsers\n\nThe last 2 versions of all modern browsers are supported, including\nChrome, Safari, Opera, Firefox, Edge. In addition, Internet Explorer 11 is also supported.\n\nEdge and Internet Explorer 11 require the web components polyfills.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md)."
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lib/css-tag.js",
    "content": "/**\n@license\nCopyright (c) 2019 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nexport const supportsAdoptingStyleSheets = ('adoptedStyleSheets' in Document.prototype) &&\n    ('replace' in CSSStyleSheet.prototype);\nconst constructionToken = Symbol();\nexport class CSSResult {\n    constructor(cssText, safeToken) {\n        if (safeToken !== constructionToken) {\n            throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n        }\n        this.cssText = cssText;\n    }\n    // Note, this is a getter so that it's lazy. In practice, this means\n    // stylesheets are not created until the first element instance is made.\n    get styleSheet() {\n        if (this._styleSheet === undefined) {\n            // Note, if `adoptedStyleSheets` is supported then we assume CSSStyleSheet\n            // is constructable.\n            if (supportsAdoptingStyleSheets) {\n                this._styleSheet = new CSSStyleSheet();\n                this._styleSheet.replaceSync(this.cssText);\n            }\n            else {\n                this._styleSheet = null;\n            }\n        }\n        return this._styleSheet;\n    }\n    toString() {\n        return this.cssText;\n    }\n}\n/**\n * Wrap a value for interpolation in a css tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value) => {\n    return new CSSResult(String(value), constructionToken);\n};\nconst textFromCSSResult = (value) => {\n    if (value instanceof CSSResult) {\n        return value.cssText;\n    }\n    else {\n        throw new Error(`Value passed to 'css' function must be a 'css' function result: ${value}. Use 'unsafeCSS' to pass non-literal values, but\n            take care to ensure page security.`);\n    }\n};\n/**\n * Template tag which which can be used with LitElement's `style` property to\n * set element styles. For security reasons, only literal string values may be\n * used. To incorporate non-literal values `unsafeCSS` may be used inside a\n * template string part.\n */\nexport const css = (strings, ...values) => {\n    const cssText = values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n    return new CSSResult(cssText, constructionToken);\n};\n//# =css-tag.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lib/decorators.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst legacyCustomElement = (tagName, clazz) => {\n    window.customElements.define(tagName, clazz);\n    // Cast as any because TS doesn't recognize the return type as being a\n    // subtype of the decorated class when clazz is typed as\n    // `Constructor<HTMLElement>` for some reason.\n    // `Constructor<HTMLElement>` is helpful to make sure the decorator is\n    // applied to elements however.\n    // tslint:disable-next-line:no-any\n    return clazz;\n};\nconst standardCustomElement = (tagName, descriptor) => {\n    const { kind, elements } = descriptor;\n    return {\n        kind,\n        elements,\n        // This callback is called once the class is otherwise fully defined\n        finisher(clazz) {\n            window.customElements.define(tagName, clazz);\n        }\n    };\n};\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * @param tagName the name of the custom element to define\n */\nexport const customElement = (tagName) => (classOrDescriptor) => (typeof classOrDescriptor === 'function') ?\n    legacyCustomElement(tagName, classOrDescriptor) :\n    standardCustomElement(tagName, classOrDescriptor);\nconst standardProperty = (options, element) => {\n    // When decorating an accessor, pass it through and add property metadata.\n    // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n    // stomp over the user's accessor.\n    if (element.kind === 'method' && element.descriptor &&\n        !('value' in element.descriptor)) {\n        return Object.assign({}, element, { finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            } });\n    }\n    else {\n        // createProperty() takes care of defining the property, but we still\n        // must return some kind of descriptor, so return a descriptor for an\n        // unused prototype field. The finisher calls createProperty().\n        return {\n            kind: 'field',\n            key: Symbol(),\n            placement: 'own',\n            descriptor: {},\n            // When @babel/plugin-proposal-decorators implements initializers,\n            // do this instead of the initializer below. See:\n            // https://github.com/babel/babel/issues/9260 extras: [\n            //   {\n            //     kind: 'initializer',\n            //     placement: 'own',\n            //     initializer: descriptor.initializer,\n            //   }\n            // ],\n            // tslint:disable-next-line:no-any decorator\n            initializer() {\n                if (typeof element.initializer === 'function') {\n                    this[element.key] = element.initializer.call(this);\n                }\n            },\n            finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            }\n        };\n    }\n};\nconst legacyProperty = (options, proto, name) => {\n    proto.constructor\n        .createProperty(name, options);\n};\n/**\n * A property decorator which creates a LitElement property which reflects a\n * corresponding attribute value. A `PropertyDeclaration` may optionally be\n * supplied to configure property features.\n *\n * @ExportDecoratedItems\n */\nexport function property(options) {\n    // tslint:disable-next-line:no-any decorator\n    return (protoOrDescriptor, name) => (name !== undefined) ?\n        legacyProperty(options, protoOrDescriptor, name) :\n        standardProperty(options, protoOrDescriptor);\n}\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n */\nexport const query = _query((target, selector) => target.querySelector(selector));\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's renderRoot.\n */\nexport const queryAll = _query((target, selector) => target.querySelectorAll(selector));\nconst legacyQuery = (descriptor, proto, name) => {\n    Object.defineProperty(proto, name, descriptor);\n};\nconst standardQuery = (descriptor, element) => ({\n    kind: 'method',\n    placement: 'prototype',\n    key: element.key,\n    descriptor,\n});\n/**\n * Base-implementation of `@query` and `@queryAll` decorators.\n *\n * @param queryFn exectute a `selector` (ie, querySelector or querySelectorAll)\n * against `target`.\n * @suppress {visibility} The descriptor accesses an internal field on the\n * element.\n */\nfunction _query(queryFn) {\n    return (selector) => (protoOrDescriptor, \n    // tslint:disable-next-line:no-any decorator\n    name) => {\n        const descriptor = {\n            get() {\n                return queryFn(this.renderRoot, selector);\n            },\n            enumerable: true,\n            configurable: true,\n        };\n        return (name !== undefined) ?\n            legacyQuery(descriptor, protoOrDescriptor, name) :\n            standardQuery(descriptor, protoOrDescriptor);\n    };\n}\nconst standardEventOptions = (options, element) => {\n    return Object.assign({}, element, { finisher(clazz) {\n            Object.assign(clazz.prototype[element.key], options);\n        } });\n};\nconst legacyEventOptions = \n// tslint:disable-next-line:no-any legacy decorator\n(options, proto, name) => {\n    Object.assign(proto[name], options);\n};\n/**\n * Adds event listener options to a method used as an event listener in a\n * lit-html template.\n *\n * @param options An object that specifis event listener options as accepted by\n * `EventTarget#addEventListener` and `EventTarget#removeEventListener`.\n *\n * Current browsers support the `capture`, `passive`, and `once` options. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters\n *\n * @example\n *\n *     class MyElement {\n *\n *       clicked = false;\n *\n *       render() {\n *         return html`<div @click=${this._onClick}`><button></button></div>`;\n *       }\n *\n *       @eventOptions({capture: true})\n *       _onClick(e) {\n *         this.clicked = true;\n *       }\n *     }\n */\nexport const eventOptions = (options) => \n// Return value typed as any to prevent TypeScript from complaining that\n// standard decorator function signature does not match TypeScript decorator\n// signature\n// TODO(kschaaf): unclear why it was only failing on this decorator and not\n// the others\n((protoOrDescriptor, name) => (name !== undefined) ?\n    legacyEventOptions(options, protoOrDescriptor, name) :\n    standardEventOptions(options, protoOrDescriptor));\n//# =decorators.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lib/updating-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\nwindow.JSCompiler_renameProperty =\n    (prop, _obj) => prop;\nexport const defaultConverter = {\n    toAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value ? '' : null;\n            case Object:\n            case Array:\n                // if the value is `null` or `undefined` pass this through\n                // to allow removing/no change behavior.\n                return value == null ? value : JSON.stringify(value);\n        }\n        return value;\n    },\n    fromAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value !== null;\n            case Number:\n                return value === null ? null : Number(value);\n            case Object:\n            case Array:\n                return JSON.parse(value);\n        }\n        return value;\n    }\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual = (value, old) => {\n    // This ensures (old==NaN, value==NaN) always returns false\n    return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n    attribute: true,\n    type: String,\n    converter: defaultConverter,\n    reflect: false,\n    hasChanged: notEqual\n};\nconst microtaskPromise = Promise.resolve(true);\nconst STATE_HAS_UPDATED = 1;\nconst STATE_UPDATE_REQUESTED = 1 << 2;\nconst STATE_IS_REFLECTING_TO_ATTRIBUTE = 1 << 3;\nconst STATE_IS_REFLECTING_TO_PROPERTY = 1 << 4;\nconst STATE_HAS_CONNECTED = 1 << 5;\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n */\nexport class UpdatingElement extends HTMLElement {\n    constructor() {\n        super();\n        this._updateState = 0;\n        this._instanceProperties = undefined;\n        this._updatePromise = microtaskPromise;\n        this._hasConnectedResolver = undefined;\n        /**\n         * Map with keys for any properties that have changed since the last\n         * update cycle with previous values.\n         */\n        this._changedProperties = new Map();\n        /**\n         * Map with keys of properties that should be reflected when updated.\n         */\n        this._reflectingProperties = undefined;\n        this.initialize();\n    }\n    /**\n     * Returns a list of attributes corresponding to the registered properties.\n     * @nocollapse\n     */\n    static get observedAttributes() {\n        // note: piggy backing on this to ensure we're finalized.\n        this.finalize();\n        const attributes = [];\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this._classProperties.forEach((v, p) => {\n            const attr = this._attributeNameForProperty(p, v);\n            if (attr !== undefined) {\n                this._attributeToPropertyMap.set(attr, p);\n                attributes.push(attr);\n            }\n        });\n        return attributes;\n    }\n    /**\n     * Ensures the private `_classProperties` property metadata is created.\n     * In addition to `finalize` this is also called in `createProperty` to\n     * ensure the `@property` decorator can add property metadata.\n     */\n    /** @nocollapse */\n    static _ensureClassProperties() {\n        // ensure private storage for property declarations.\n        if (!this.hasOwnProperty(JSCompiler_renameProperty('_classProperties', this))) {\n            this._classProperties = new Map();\n            // NOTE: Workaround IE11 not supporting Map constructor argument.\n            const superProperties = Object.getPrototypeOf(this)._classProperties;\n            if (superProperties !== undefined) {\n                superProperties.forEach((v, k) => this._classProperties.set(k, v));\n            }\n        }\n    }\n    /**\n     * Creates a property accessor on the element prototype if one does not exist.\n     * The property setter calls the property's `hasChanged` property option\n     * or uses a strict identity check to determine whether or not to request\n     * an update.\n     * @nocollapse\n     */\n    static createProperty(name, options = defaultPropertyDeclaration) {\n        // Note, since this can be called by the `@property` decorator which\n        // is called before `finalize`, we ensure storage exists for property\n        // metadata.\n        this._ensureClassProperties();\n        this._classProperties.set(name, options);\n        // Do not generate an accessor if the prototype already has one, since\n        // it would be lost otherwise and that would never be the user's intention;\n        // Instead, we expect users to call `requestUpdate` themselves from\n        // user-defined accessors. Note that if the super has an accessor we will\n        // still overwrite it\n        if (options.noAccessor || this.prototype.hasOwnProperty(name)) {\n            return;\n        }\n        const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n        Object.defineProperty(this.prototype, name, {\n            // tslint:disable-next-line:no-any no symbol in index\n            get() {\n                // tslint:disable-next-line:no-any no symbol in index\n                return this[key];\n            },\n            set(value) {\n                // tslint:disable-next-line:no-any no symbol in index\n                const oldValue = this[name];\n                // tslint:disable-next-line:no-any no symbol in index\n                this[key] = value;\n                this.requestUpdate(name, oldValue);\n            },\n            configurable: true,\n            enumerable: true\n        });\n    }\n    /**\n     * Creates property accessors for registered properties and ensures\n     * any superclasses are also finalized.\n     * @nocollapse\n     */\n    static finalize() {\n        if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this)) &&\n            this.finalized) {\n            return;\n        }\n        // finalize any superclasses\n        const superCtor = Object.getPrototypeOf(this);\n        if (typeof superCtor.finalize === 'function') {\n            superCtor.finalize();\n        }\n        this.finalized = true;\n        this._ensureClassProperties();\n        // initialize Map populated in observedAttributes\n        this._attributeToPropertyMap = new Map();\n        // make any properties\n        // Note, only process \"own\" properties since this element will inherit\n        // any properties defined on the superClass, and finalization ensures\n        // the entire prototype chain is finalized.\n        if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n            const props = this.properties;\n            // support symbols in properties (IE11 does not support this)\n            const propKeys = [\n                ...Object.getOwnPropertyNames(props),\n                ...(typeof Object.getOwnPropertySymbols === 'function') ?\n                    Object.getOwnPropertySymbols(props) :\n                    []\n            ];\n            // This for/of is ok because propKeys is an array\n            for (const p of propKeys) {\n                // note, use of `any` is due to TypeSript lack of support for symbol in\n                // index types\n                // tslint:disable-next-line:no-any no symbol in index\n                this.createProperty(p, props[p]);\n            }\n        }\n    }\n    /**\n     * Returns the property name for the given attribute `name`.\n     * @nocollapse\n     */\n    static _attributeNameForProperty(name, options) {\n        const attribute = options.attribute;\n        return attribute === false ?\n            undefined :\n            (typeof attribute === 'string' ?\n                attribute :\n                (typeof name === 'string' ? name.toLowerCase() : undefined));\n    }\n    /**\n     * Returns true if a property should request an update.\n     * Called when a property value is set and uses the `hasChanged`\n     * option for the property if present or a strict identity check.\n     * @nocollapse\n     */\n    static _valueHasChanged(value, old, hasChanged = notEqual) {\n        return hasChanged(value, old);\n    }\n    /**\n     * Returns the property value for the given attribute value.\n     * Called via the `attributeChangedCallback` and uses the property's\n     * `converter` or `converter.fromAttribute` property option.\n     * @nocollapse\n     */\n    static _propertyValueFromAttribute(value, options) {\n        const type = options.type;\n        const converter = options.converter || defaultConverter;\n        const fromAttribute = (typeof converter === 'function' ? converter : converter.fromAttribute);\n        return fromAttribute ? fromAttribute(value, type) : value;\n    }\n    /**\n     * Returns the attribute value for the given property value. If this\n     * returns undefined, the property will *not* be reflected to an attribute.\n     * If this returns null, the attribute will be removed, otherwise the\n     * attribute will be set to the value.\n     * This uses the property's `reflect` and `type.toAttribute` property options.\n     * @nocollapse\n     */\n    static _propertyValueToAttribute(value, options) {\n        if (options.reflect === undefined) {\n            return;\n        }\n        const type = options.type;\n        const converter = options.converter;\n        const toAttribute = converter && converter.toAttribute ||\n            defaultConverter.toAttribute;\n        return toAttribute(value, type);\n    }\n    /**\n     * Performs element initialization. By default captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        this._saveInstanceProperties();\n    }\n    /**\n     * Fixes any properties set on the instance before upgrade time.\n     * Otherwise these would shadow the accessor and break these properties.\n     * The properties are stored in a Map which is played back after the\n     * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n     * (<=41), properties created for native platform properties like (`id` or\n     * `name`) may not have default values set in the element constructor. On\n     * these browsers native properties appear on instances and therefore their\n     * default value will overwrite any element default (e.g. if the element sets\n     * this.id = 'id' in the constructor, the 'id' will become '' since this is\n     * the native platform default).\n     */\n    _saveInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this.constructor\n            ._classProperties.forEach((_v, p) => {\n            if (this.hasOwnProperty(p)) {\n                const value = this[p];\n                delete this[p];\n                if (!this._instanceProperties) {\n                    this._instanceProperties = new Map();\n                }\n                this._instanceProperties.set(p, value);\n            }\n        });\n    }\n    /**\n     * Applies previously saved instance properties.\n     */\n    _applyInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        // tslint:disable-next-line:no-any\n        this._instanceProperties.forEach((v, p) => this[p] = v);\n        this._instanceProperties = undefined;\n    }\n    connectedCallback() {\n        this._updateState = this._updateState | STATE_HAS_CONNECTED;\n        // Ensure connection triggers an update. Updates cannot complete before\n        // connection and if one is pending connection the `_hasConnectionResolver`\n        // will exist. If so, resolve it to complete the update, otherwise\n        // requestUpdate.\n        if (this._hasConnectedResolver) {\n            this._hasConnectedResolver();\n            this._hasConnectedResolver = undefined;\n        }\n        else {\n            this.requestUpdate();\n        }\n    }\n    /**\n     * Allows for `super.disconnectedCallback()` in extensions while\n     * reserving the possibility of making non-breaking feature additions\n     * when disconnecting at some point in the future.\n     */\n    disconnectedCallback() {\n    }\n    /**\n     * Synchronizes property values when attributes change.\n     */\n    attributeChangedCallback(name, old, value) {\n        if (old !== value) {\n            this._attributeToProperty(name, value);\n        }\n    }\n    _propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n        const ctor = this.constructor;\n        const attr = ctor._attributeNameForProperty(name, options);\n        if (attr !== undefined) {\n            const attrValue = ctor._propertyValueToAttribute(value, options);\n            // an undefined value does not change the attribute.\n            if (attrValue === undefined) {\n                return;\n            }\n            // Track if the property is being reflected to avoid\n            // setting the property again via `attributeChangedCallback`. Note:\n            // 1. this takes advantage of the fact that the callback is synchronous.\n            // 2. will behave incorrectly if multiple attributes are in the reaction\n            // stack at time of calling. However, since we process attributes\n            // in `update` this should not be possible (or an extreme corner case\n            // that we'd like to discover).\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_ATTRIBUTE;\n            if (attrValue == null) {\n                this.removeAttribute(attr);\n            }\n            else {\n                this.setAttribute(attr, attrValue);\n            }\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_ATTRIBUTE;\n        }\n    }\n    _attributeToProperty(name, value) {\n        // Use tracking info to avoid deserializing attribute value if it was\n        // just set from a property setter.\n        if (this._updateState & STATE_IS_REFLECTING_TO_ATTRIBUTE) {\n            return;\n        }\n        const ctor = this.constructor;\n        const propName = ctor._attributeToPropertyMap.get(name);\n        if (propName !== undefined) {\n            const options = ctor._classProperties.get(propName) || defaultPropertyDeclaration;\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_PROPERTY;\n            this[propName] =\n                // tslint:disable-next-line:no-any\n                ctor._propertyValueFromAttribute(value, options);\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_PROPERTY;\n        }\n    }\n    /**\n     * Requests an update which is processed asynchronously. This should\n     * be called when an element should update based on some state not triggered\n     * by setting a property. In this case, pass no arguments. It should also be\n     * called when manually implementing a property setter. In this case, pass the\n     * property `name` and `oldValue` to ensure that any configured property\n     * options are honored. Returns the `updateComplete` Promise which is resolved\n     * when the update completes.\n     *\n     * @param name {PropertyKey} (optional) name of requesting property\n     * @param oldValue {any} (optional) old value of requesting property\n     * @returns {Promise} A Promise that is resolved when the update completes.\n     */\n    requestUpdate(name, oldValue) {\n        let shouldRequestUpdate = true;\n        // if we have a property key, perform property update steps.\n        if (name !== undefined && !this._changedProperties.has(name)) {\n            const ctor = this.constructor;\n            const options = ctor._classProperties.get(name) || defaultPropertyDeclaration;\n            if (ctor._valueHasChanged(this[name], oldValue, options.hasChanged)) {\n                // track old value when changing.\n                this._changedProperties.set(name, oldValue);\n                // add to reflecting properties set\n                if (options.reflect === true &&\n                    !(this._updateState & STATE_IS_REFLECTING_TO_PROPERTY)) {\n                    if (this._reflectingProperties === undefined) {\n                        this._reflectingProperties = new Map();\n                    }\n                    this._reflectingProperties.set(name, options);\n                }\n                // abort the request if the property should not be considered changed.\n            }\n            else {\n                shouldRequestUpdate = false;\n            }\n        }\n        if (!this._hasRequestedUpdate && shouldRequestUpdate) {\n            this._enqueueUpdate();\n        }\n        return this.updateComplete;\n    }\n    /**\n     * Sets up the element to asynchronously update.\n     */\n    async _enqueueUpdate() {\n        // Mark state updating...\n        this._updateState = this._updateState | STATE_UPDATE_REQUESTED;\n        let resolve;\n        const previousUpdatePromise = this._updatePromise;\n        this._updatePromise = new Promise((res) => resolve = res);\n        // Ensure any previous update has resolved before updating.\n        // This `await` also ensures that property changes are batched.\n        await previousUpdatePromise;\n        // Make sure the element has connected before updating.\n        if (!this._hasConnected) {\n            await new Promise((res) => this._hasConnectedResolver = res);\n        }\n        // Allow `performUpdate` to be asynchronous to enable scheduling of updates.\n        const result = this.performUpdate();\n        // Note, this is to avoid delaying an additional microtask unless we need\n        // to.\n        if (result != null &&\n            typeof result.then === 'function') {\n            await result;\n        }\n        resolve(!this._hasRequestedUpdate);\n    }\n    get _hasConnected() {\n        return (this._updateState & STATE_HAS_CONNECTED);\n    }\n    get _hasRequestedUpdate() {\n        return (this._updateState & STATE_UPDATE_REQUESTED);\n    }\n    get hasUpdated() {\n        return (this._updateState & STATE_HAS_UPDATED);\n    }\n    /**\n     * Performs an element update.\n     *\n     * You can override this method to change the timing of updates. For instance,\n     * to schedule updates to occur just before the next frame:\n     *\n     * ```\n     * protected async performUpdate(): Promise<unknown> {\n     *   await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n     *   super.performUpdate();\n     * }\n     * ```\n     */\n    performUpdate() {\n        // Mixin instance properties once, if they exist.\n        if (this._instanceProperties) {\n            this._applyInstanceProperties();\n        }\n        if (this.shouldUpdate(this._changedProperties)) {\n            const changedProperties = this._changedProperties;\n            this.update(changedProperties);\n            this._markUpdated();\n            if (!(this._updateState & STATE_HAS_UPDATED)) {\n                this._updateState = this._updateState | STATE_HAS_UPDATED;\n                this.firstUpdated(changedProperties);\n            }\n            this.updated(changedProperties);\n        }\n        else {\n            this._markUpdated();\n        }\n    }\n    _markUpdated() {\n        this._changedProperties = new Map();\n        this._updateState = this._updateState & ~STATE_UPDATE_REQUESTED;\n    }\n    /**\n     * Returns a Promise that resolves when the element has completed updating.\n     * The Promise value is a boolean that is `true` if the element completed the\n     * update without triggering another update. The Promise result is `false` if\n     * a property was set inside `updated()`. This getter can be implemented to\n     * await additional state. For example, it is sometimes useful to await a\n     * rendered element before fulfilling this Promise. To do this, first await\n     * `super.updateComplete` then any subsequent state.\n     *\n     * @returns {Promise} The Promise returns a boolean that indicates if the\n     * update resolved without triggering another update.\n     */\n    get updateComplete() {\n        return this._updatePromise;\n    }\n    /**\n     * Controls whether or not `update` should be called when the element requests\n     * an update. By default, this method always returns `true`, but this can be\n     * customized to control when to update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    shouldUpdate(_changedProperties) {\n        return true;\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes.\n     * It can be overridden to render and keep updated element DOM.\n     * Setting properties inside this method will *not* trigger\n     * another update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(_changedProperties) {\n        if (this._reflectingProperties !== undefined &&\n            this._reflectingProperties.size > 0) {\n            // Use forEach so this works even if for/of loops are compiled to for\n            // loops expecting arrays\n            this._reflectingProperties.forEach((v, k) => this._propertyToAttribute(k, this[k], v));\n            this._reflectingProperties = undefined;\n        }\n    }\n    /**\n     * Invoked whenever the element is updated. Implement to perform\n     * post-updating tasks via DOM APIs, for example, focusing an element.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    updated(_changedProperties) {\n    }\n    /**\n     * Invoked when the element is first updated. Implement to perform one time\n     * work on the element after update.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    firstUpdated(_changedProperties) {\n    }\n}\n/**\n * Marks class as having finished creating properties.\n */\nUpdatingElement.finalized = true;\n//# =updating-element.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateResult } from './lit-html/lit-html.js';\nimport { render } from './lit-html/lib/shady-render.js';\nimport { UpdatingElement } from './lib/updating-element.js';\nexport * from './lib/updating-element.js';\nexport * from './lib/decorators.js';\nexport { html, svg, TemplateResult, SVGTemplateResult } from './lit-html/lit-html.js';\nimport { supportsAdoptingStyleSheets } from './lib/css-tag.js';\nexport * from './lib/css-tag.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litElementVersions'] || (window['litElementVersions'] = []))\n    .push('2.0.1');\n/**\n * Minimal implementation of Array.prototype.flat\n * @param arr the array to flatten\n * @param result the accumlated result\n */\nfunction arrayFlat(styles, result = []) {\n    for (let i = 0, length = styles.length; i < length; i++) {\n        const value = styles[i];\n        if (Array.isArray(value)) {\n            arrayFlat(value, result);\n        }\n        else {\n            result.push(value);\n        }\n    }\n    return result;\n}\n/** Deeply flattens styles array. Uses native flat if available. */\nconst flattenStyles = (styles) => styles.flat ? styles.flat(Infinity) : arrayFlat(styles);\nexport class LitElement extends UpdatingElement {\n    /** @nocollapse */\n    static finalize() {\n        super.finalize();\n        // Prepare styling that is stamped at first render time. Styling\n        // is built from user provided `styles` or is inherited from the superclass.\n        this._styles =\n            this.hasOwnProperty(JSCompiler_renameProperty('styles', this)) ?\n                this._getUniqueStyles() :\n                this._styles || [];\n    }\n    /** @nocollapse */\n    static _getUniqueStyles() {\n        // Take care not to call `this.styles` multiple times since this generates\n        // new CSSResults each time.\n        // TODO(sorvell): Since we do not cache CSSResults by input, any\n        // shared styles will generate new stylesheet objects, which is wasteful.\n        // This should be addressed when a browser ships constructable\n        // stylesheets.\n        const userStyles = this.styles;\n        const styles = [];\n        if (Array.isArray(userStyles)) {\n            const flatStyles = flattenStyles(userStyles);\n            // As a performance optimization to avoid duplicated styling that can\n            // occur especially when composing via subclassing, de-duplicate styles\n            // preserving the last item in the list. The last item is kept to\n            // try to preserve cascade order with the assumption that it's most\n            // important that last added styles override previous styles.\n            const styleSet = flatStyles.reduceRight((set, s) => {\n                set.add(s);\n                // on IE set.add does not return the set.\n                return set;\n            }, new Set());\n            // Array.from does not work on Set in IE\n            styleSet.forEach((v) => styles.unshift(v));\n        }\n        else if (userStyles) {\n            styles.push(userStyles);\n        }\n        return styles;\n    }\n    /**\n     * Performs element initialization. By default this calls `createRenderRoot`\n     * to create the element `renderRoot` node and captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        super.initialize();\n        this.renderRoot = this.createRenderRoot();\n        // Note, if renderRoot is not a shadowRoot, styles would/could apply to the\n        // element's getRootNode(). While this could be done, we're choosing not to\n        // support this now since it would require different logic around de-duping.\n        if (window.ShadowRoot && this.renderRoot instanceof window.ShadowRoot) {\n            this.adoptStyles();\n        }\n    }\n    /**\n     * Returns the node into which the element should render and by default\n     * creates and returns an open shadowRoot. Implement to customize where the\n     * element's DOM is rendered. For example, to render into the element's\n     * childNodes, return `this`.\n     * @returns {Element|DocumentFragment} Returns a node into which to render.\n     */\n    createRenderRoot() {\n        return this.attachShadow({ mode: 'open' });\n    }\n    /**\n     * Applies styling to the element shadowRoot using the `static get styles`\n     * property. Styling will apply using `shadowRoot.adoptedStyleSheets` where\n     * available and will fallback otherwise. When Shadow DOM is polyfilled,\n     * ShadyCSS scopes styles and adds them to the document. When Shadow DOM\n     * is available but `adoptedStyleSheets` is not, styles are appended to the\n     * end of the `shadowRoot` to [mimic spec\n     * behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n     */\n    adoptStyles() {\n        const styles = this.constructor._styles;\n        if (styles.length === 0) {\n            return;\n        }\n        // There are three separate cases here based on Shadow DOM support.\n        // (1) shadowRoot polyfilled: use ShadyCSS\n        // (2) shadowRoot.adoptedStyleSheets available: use it.\n        // (3) shadowRoot.adoptedStyleSheets polyfilled: append styles after\n        // rendering\n        if (window.ShadyCSS !== undefined && !window.ShadyCSS.nativeShadow) {\n            window.ShadyCSS.ScopingShim.prepareAdoptedCssText(styles.map((s) => s.cssText), this.localName);\n        }\n        else if (supportsAdoptingStyleSheets) {\n            this.renderRoot.adoptedStyleSheets =\n                styles.map((s) => s.styleSheet);\n        }\n        else {\n            // This must be done after rendering so the actual style insertion is done\n            // in `update`.\n            this._needsShimAdoptedStyleSheets = true;\n        }\n    }\n    connectedCallback() {\n        super.connectedCallback();\n        // Note, first update/render handles styleElement so we only call this if\n        // connected after first update.\n        if (this.hasUpdated && window.ShadyCSS !== undefined) {\n            window.ShadyCSS.styleElement(this);\n        }\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes\n     * and calls `render` to render DOM via lit-html. Setting properties inside\n     * this method will *not* trigger another update.\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(changedProperties) {\n        super.update(changedProperties);\n        const templateResult = this.render();\n        if (templateResult instanceof TemplateResult) {\n            this.constructor\n                .render(templateResult, this.renderRoot, { scopeName: this.localName, eventContext: this });\n        }\n        // When native Shadow DOM is used but adoptedStyles are not supported,\n        // insert styling after rendering to ensure adoptedStyles have highest\n        // priority.\n        if (this._needsShimAdoptedStyleSheets) {\n            this._needsShimAdoptedStyleSheets = false;\n            this.constructor._styles.forEach((s) => {\n                const style = document.createElement('style');\n                style.textContent = s.cssText;\n                this.renderRoot.appendChild(style);\n            });\n        }\n    }\n    /**\n     * Invoked on each update to perform rendering tasks. This method must return\n     * a lit-html TemplateResult. Setting properties inside this method will *not*\n     * trigger the element to update.\n     */\n    render() {\n    }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n */\nLitElement.finalized = true;\n/**\n * Render method used to render the lit-html TemplateResult to the element's\n * DOM.\n * @param {TemplateResult} Template to render.\n * @param {Element|DocumentFragment} Node into which to render.\n * @param {String} Element name.\n * @nocollapse\n */\nLitElement.render = render;\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n\n<!-- ## Unreleased -->\n<!-- ### Changed -->\n<!-- ### Added -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n\n## [1.0.0] - 2019-02-05\n### Changed\n* Tons of docs updates ([#746](https://github.com/Polymer/lit-html/pull/746)), ([#675](https://github.com/Polymer/lit-html/pull/675)), ([#724](https://github.com/Polymer/lit-html/pull/724)), ([#753](https://github.com/Polymer/lit-html/pull/753)), ([#764](https://github.com/Polymer/lit-html/pull/764)), ([#763](https://github.com/Polymer/lit-html/pull/763)), ([#765](https://github.com/Polymer/lit-html/pull/765)), ([#767](https://github.com/Polymer/lit-html/pull/767)), ([#768](https://github.com/Polymer/lit-html/pull/768)), ([#734](https://github.com/Polymer/lit-html/pull/734)), ([#771](https://github.com/Polymer/lit-html/pull/771)), ([#766](https://github.com/Polymer/lit-html/pull/766)), ([#773](https://github.com/Polymer/lit-html/pull/773)), ([#770](https://github.com/Polymer/lit-html/pull/770)), ([#769](https://github.com/Polymer/lit-html/pull/769)), ([#777](https://github.com/Polymer/lit-html/pull/777)), ([#776](https://github.com/Polymer/lit-html/pull/776)), ([#754](https://github.com/Polymer/lit-html/pull/754)), ([#779](https://github.com/Polymer/lit-html/pull/779))\n### Added\n* Global version of `lit-html` on window ([#790](https://github.com/Polymer/lit-html/pull/790)).\n### Fixed\n* Removed use of `any` outside of test code ([#741](https://github.com/Polymer/lit-html/pull/741)).\n\n## [1.0.0-rc.2] - 2019-01-09\n### Changed\n* Performance improvements to template processing. ([#690](https://github.com/Polymer/lit-html/pull/690))\n### Added\n* Added the `nothing` sentinel value which can be used to clear a part. ([#673](https://github.com/Polymer/lit-html/pull/673))\n### Fixed\n* Fixed #702: a bug with the `unsafeHTML` directive when changing between unsafe and other values. ([#703](https://github.com/Polymer/lit-html/pull/703))\n* Fixed #708: a bug with the `until` directive where placeholders could overwrite resolved Promises. ([#721](https://github.com/Polymer/lit-html/pull/721))\n\n\n## [1.0.0-rc.1] - 2018-12-13\n### Fixed\n* Documentation updates.\n* Fixed typing for template_polyfill `createElement` call.\n\n## [0.14.0] - 2018-11-30\n### Changed\n* `until()` can now take any number of sync or async arguments. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* [Breaking] `guard()` supports multiple dependencies. If the first argument to `guard()` is an array, the array items are checked for equality to previous values. ([#666](https://github.com/Polymer/lit-html/pull/666))\n* [Breaking] Renamed `classMap.js` and `styleMap.js` files to kebab-case. ([#644](https://github.com/Polymer/lit-html/pull/644))\n### Added\n* Added `cache()` directive. ([#646](https://github.com/Polymer/lit-html/pull/646))\n* Removed Promise as a supposed node-position value type. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* Added a minimal `<template>` polyfill.\n### Removed\n* [Breaking] Removed the `when()` directive.  Users may achieve similar behavior by wrapping a ternary with the `cache()` directive.\n### Fixed\n* Bound attribute names are rewritten to avoid IE/Edge removing SVG and style attributes. ([#640](https://github.com/Polymer/lit-html/pull/640))\n* Ensure shady-render prepares styling for a scope before attaching child elements. ([#664](https://github.com/Polymer/lit-html/pull/664))\n* Handle CSS Custom Variables in the styleMap directive. [#642](https://github.com/Polymer/lit-html/pull/642))\n\n## [0.13.0] - 2018-11-08\n### Changed\n* [Breaking] Directives are now defined by passing the entire directive factory function to `directive()`. ([#562](https://github.com/Polymer/lit-html/pull/562))\n### Fixed\n* Fix issue on obscure browsers that do not accept event listener objects by using callback as event part listener ([#581](https://github.com/Polymer/lit-html/pull/581))\n* Fix KeyFn and ItemTemplate types ([#570](https://github.com/Polymer/lit-html/pull/570))\n* Don't use export * to workaround rollup bug ([#556](https://github.com/Polymer/lit-html/pull/556))\n* `eventContext` is no longer used as the `this` value for event listener objects (object with a `handleEvent` method), as the object itself is supposed to be the `this` value. ([#576](https://github.com/Polymer/lit-html/pull/576))\n\n## [0.12.0] - 2018-10-05\n### Changed\n* Re-implemented repeat directive for better performance ([#501](https://github.com/Polymer/lit-html/pull/501))\n* Updated TypeScript dependency to 3.1\n* [Breaking] `render()` now takes an options object as the third argument. ([#523](https://github.com/Polymer/lit-html/pull/523))\n### Added\n* Event listeners are called with a configurable `this` reference, which is set via the `eventContext` option to `render()`. ([#523](https://github.com/Polymer/lit-html/pull/523))\n* Support for event listener options, by passing the listener itself as both the second and third arguments to add/removeEventListener().\n\n\n## [0.11.4] - 2018-09-17\n### Fixed\n* Fixed issues with `shady-render` introduced in 0.11.3 ([#504](https://github.com/Polymer/lit-html/issues/504) and [#505](https://github.com/Polymer/lit-html/issues/505)).\n\n## [0.11.3] - 2018-09-13\n### Changed\n* Moved upgrading of custom elements in template fragments to a common location in TemplateInstance ([#489](https://github.com/Polymer/lit-html/pull/489))\n* Rewrite render() to reuse the logic in NodePart. render() now supports all the data types that NodeParts do. ([#491](https://github.com/Polymer/lit-html/pull/491))\n\n### Fixed\n* Fixed bug when using the ShadyCSS @apply` shim. ([#502](https://github.com/Polymer/lit-html/pull/502))\n\n## [0.11.2] - 2018-09-12\n\n### Added\n* Added `classMap` and `styleMap` directives ([#486](https://github.com/Polymer/lit-html/pull/486))\n\n### Fixed\n\n* Fixed bug in asyncReplace when rerendering the same iterable ([#485](https://github.com/Polymer/lit-html/pull/485))\n* Update properties before upgrading custom elements ([#455](https://github.com/Polymer/lit-html/pull/455))\n* Cache the ShadyCSS version lookup ([#477](https://github.com/Polymer/lit-html/pull/477))\n\n## [0.11.1] - 2018-09-02\n\n### Changed\n* Eliminated a cycle in the module import graph ([#472](https://github.com/Polymer/lit-html/pull/472))\n* Remove the default value for the templateProcessor parameter in TemplateResult#constuctor, making it a required paremeter ([#472](https://github.com/Polymer/lit-html/pull/472))\n\n## [0.11.0] - 2018-08-28\n\n### Added\n* Added support for property, event, and boolean bindings to default syntax ([#398](https://github.com/Polymer/lit-html/pull/398))\n* Added guard directive ([#438](https://github.com/Polymer/lit-html/pull/438))\n* Added when directive ([#439](https://github.com/Polymer/lit-html/pull/439))\n\n### Changed\n* Split implementation into multiple small modules and merged lit-html.js and core.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Moved directives into top-level `directives/` directory ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Replaced `PartCallback` with `TemplateProcessor` ([#405](https://github.com/Polymer/lit-html/pull/405))\n* Unified `NodePart` and `AttributePart` interfaces ([#400](https://github.com/Polymer/lit-html/pull/400))\n  * AttributePart#setValue() takes a single value\n  * `Part` has separate `setValue()` and `commit()` phases\n  * Added `AttributeCommitter` to commit attribute values once for multiple `AttributeParts`\n\n### Removed\n* Removed lit-extended.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n\n### Fixed\n* Render initial undefined values in attributes ([#377](https://github.com/Polymer/lit-html/pull/377))\n* Handle case-sensitive attributes like `viewBox` correctly ([#376](https://github.com/Polymer/lit-html/pull/376))\n* Support bindings in `<template>` elements ([#343](https://github.com/Polymer/lit-html/pull/343))\n* Don’t break templates when HTML comments have bindings in them ([#446](https://github.com/Polymer/lit-html/pull/446))\n* IE: Don't use Set() constructor arguments ([#401](https://github.com/Polymer/lit-html/pull/401))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Update values after upgrading custom elements ([#385](https://github.com/Polymer/lit-html/pull/385))\n* Dirty check primitive values passed to unsafeHTML() ([#384](https://github.com/Polymer/lit-html/pull/384))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Upgrade disconnected custom elements before setting properties on them. ([#442](https://github.com/Polymer/lit-html/pull/442))\n* Fix style attribute bindings in IE ([#448](https://github.com/Polymer/lit-html/pull/448))\n\n\n## [0.10.1] - 2018-06-13\n\n* Added `noChange` - Value in favour of `directiveValue` (deprecated).\n  * A `noChange` - Value signals that a value was handled by a directive and should not be written to the DOM\n* Updated shady-render to render styles in order, work with `@apply`, and work in browers where CSS Custom Properties must be polyfilled, like IE 11.\n* Introduced API to modify template contents safely without breaking template parts\n  * `insertNodeIntoTemplate(template: Template, node: Node, refNode: Node|null)`\n  * `removeNodesFromTemplate(template: Template, nodesToRemove: Set<Node>)`\n\n## [0.10.0] - 2018-05-03\n* Added IE11 support\n* Declarative events in lit-extended are more efficient when handlers change\n\n## [0.9.0] - 2018-02-01\n\n* Refactored how template tags and `render()` are implemented so that all\n  specialization of template syntax is done in tags, not `render()`, allowing\n  for the mixining of templates of different syntaxes, and for hooks in\n  `render()` to change templates before they're initially processed.\n* Added ShadyCSS support in lib/shady-render.js. It's exported render function\n  will pass templates to ShadyCSS's `prepareTemplate()` function to process style\n  tags and elements in the template for emulate CSS scoping.\n* lit-extended: Attribute bindings with a `?` suffix on the name now act as boolean\n  attributes. The attribute will be removed for falsey values and set to `''` for\n  truthy values, matching the HTML specification behavior for boolean attributes.\n* Fixed a bug where directives rendered incorrectly on AttributeParts and PropertyParts\n\n## [0.8.0] - 2018-01-12\n\n* Allow all valid HTML attribute names, including emoji and Angular-style\n  `(foo)=` and `[foo]=` names.\n* Drastically improved performance of the `repeat` directive.\n* Fixed an issue with expressions directly following elements.\n* Fixed numerous bugs with the `repeat` directive.\n* Performance improvements for template setup\n* Internal code cleanup\n* Support synchronous thenables\n* Added the `asyncAppend` and `asyncReplace` directives to handle async iterable values in expressions.\n\n## [0.7.0] - 2017-10-06\n\n* Added the `svg` template tag for creating partial SVG content\n* Support for expressions inside tables and other elements with limited permitted content\n* Only remove whitespace between elements, or at the start or end of elements\n* Fixed bugs with rendering iterables\n* A few IE/Edge fixes. Closer to full support.\n\n## [0.6.0] - 2017-09-01\n\n* Fixed removing event handlers when setting them to `undefined`.\n* Allow the text \"{{}}\" to appear in templates.\n* Optimized clearing of Parts.\n* Added `unsafeHTML()` directive to bind values as HTML source.\n* Optimizations, simplification and bug fixes of Array handling code.\n* Update to extension API: added partCallback parameter to `render()`.\n* Added the `directive()` decorator function to create directives. Functions values are no longer treated as directive by default, simplifying declarative event handlers.\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/CODE_OF_CONDUCT.md",
    "content": "The Polymer community is full of bright, thoughtful, helpful, supportive people - it's on all of us to keep it this way! Google and the Polymer team want to help foster and support this, and we take any breaches of mutual respect very seriously. Below is the community code of conduct, which applies to our Github repos and organizations, mailing lists, Slack channels, G+ community, and any other Polymer-supported communication group.\n\n\n### Be excellent to each other.\n\nTreat everyone with respect. Participate while acknowledging that everyone deserves to be here — and each of us has the right to enjoy our experience and participate without fear of harassment, discrimination, or condescension, whether blatant or via micro-aggressions.\n\n### Speak up if you see or hear something.\n\nHarassment is not tolerated, and you are empowered to politely engage when you or others are disrespected. Also, assume positive intent. The person making you feel uncomfortable may not be aware of what they are doing, and politely bringing their behavior to their attention is encouraged.\n\n### Practice saying \"Yes and\" to each other.\n\nBuild on each other’s ideas. We all benefit when we create together.\n\n### We have a ZERO TOLERANCE POLICY for harassment of any kind, including but not limited to:\n\n* Stalking/following\n* Harassing comments\n* Deliberate intimidation\n* Sustained disruption of threads, channels, lists, etc.\n* Offensive comments\n* Sexual images in public spaces\n* Unwelcome sexual or otherwise aggressive attention\n\n#### In relation to, but not limited to:\n\n* Neurodiversity\n* Race\n* Color\n* National origin\n* Gender\n* Gender identity\n* Gender presentation\n* Sexual orientation\n* Age\n* Body size\n* Differing abilities\n* Appearance\n* Religion\n* Pregnancy\n\nWe empower and encourage you to report any behavior that makes you or others feel uncomfortable by emailing community@polymer-project.org.\n\nAny person communicating in a disorderly manner, engaging in harassing or uncomfortable behavior, or otherwise failing to comply with this policy may be removed from any Google-supported channel or permanently banned (including to future Google communities) at any time in Google’s sole discretion. \n\n### ANTI-HARASSMENT POLICY\n\nGoogle and the Polymer team are dedicated to supporting a harassment-free and inclusive community for everyone regardless of gender identity and expression, sexual orientation, differing abilities, neurodiversity, physical appearance, body size, ethnicity, nationality, age, religion, or other protected category. We do not tolerate harassment of community members in any form. Sexual language and imagery is not appropriate for any Polymer-related community. Google and the Polymer team take these violations of our policy seriously and will respond appropriately. All community members must abide by our anti-harassment policy.\n\n### CONDUCT POLICY\n\nGoogle and the Polymer team reserve the right to remove or ban any person from a Polymer-supported community (and potentially all future Google-supported communities) at any time in its sole discretion. This includes but is not limited to community members behaving in a disorderly manner or failing to comply with the terms and conditions herein.\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/CONTRIBUTING.md",
    "content": "# Contributing to lit-html\n\nThank you for your interest in contributing to lit-html!\n\nThere are many ways to contribute to lit-html project, and we have many different needs to be addressed. All contributions, from PRs to reports of successful usage, are appreciated and valuable.\n\n## Code of Conduct\n\nWe have a [Code of Conduct](./CODE_OF_CONDUCT.md), please follow it in all interactions with project maintainers and fellow users.\n\n## Filing Issues\n\nIssues are one of the most important ways to contribute to lit-html.\n\nPlease search though open and closed issues to see if a similar issue already exists. If not, open an issue and try to provide a minimal reproduction if you can.\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n## Pull Requests\n\nPull requests are greatly appreciated! To ensure a smooth review process, please follow these steps:\n\n 1. Make sure there's an open issue that the PR addresses. Add \"Fixes #(issue number)\" to the PR description.\n 2. Please discuss the general shape of the change ahead of time. This can save much time for reviewers and submitters alike. Many times there may be existing ideas on how to handle an issue that are not fully written out, and asking about it will bring out more details.\n 3. All PRs that change behavior or fix bugs should have new or updated tests.\n 4. Try to create a set of descriptive commits that each do one focused change. Avoid commits like \"oops\", and prefer commits like \"Added method foo to Bar\".\n 5. When addressing review comments, try to add new commits, rather than modifying previous commits. This makes it easier for reviewers to see what changed since the last review. `git commit --fixup {SHA}` is really useful for this. Obviously, requests like \"Please rebase onto master\" require changing commits.\n 6. If you [allow changes to be committed to your PR branches](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) we can fix some small things in the PR for you, speeding up the review process. This is especially useful if you're new to TypeScript and need help with type annotations.\n 7. Please run `npm run lint` and `npm run format` before submitting PRs. PRs that don't lint and aren't formatted will fail contiuous integration tests.\n\n## Code Style\n\nWe follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html), but there are a couple of points worth emphasizing:\n\n 1. Clear is better than clever. Optimize for simple, readable code first.\n 2. Prefer longer, more descriptive names, over shorter names. For most variables, minification means we don't pay for extra characters in production.\n 3. Always err on the side of too many comments. When commenting, \"why\" is more important than \"what\".\n 4. If you're tempted to add a \"what\" comment, see if you can't restructure the code and use more descritive names so that the comment is unneccessary.\n\n## TypeScript\n\nWe use TypeScript on lit-html in order to automatically check the code for type errors and document the types of fields and attributes for easier reading. If you don't know TypeScript, we hope it doesn't discourage you from contributing - TypeScript is a superset of JavaScript that focuses on adding type annotations.\n\nTypeScript is hopefully relatively easy to pick up, but if you have any problems we're more than happy to help. You can submit a pull request with type warnings and we'll either help you fix them, or if you allow commits to your PR branch, fix them for you. VS Code is a very nice IDE for TypeScript development if you care to try it.\n\nWe stick to subset of TypeScript that is more strict and closer to standard JavaScript.\n 1. We have strict compiler options turned on. Do not change them.\n 2. Prefer the `unknown` type over `any`.\n 3. Prefer the `object` type over `Object`\n 4. Prefer named type alias over complex inline types.\n 5. Use web-compatible, full URLs as import specifiers, including file extensions. ie, `import * as foo from './foo.js`, not `import * as foo from './foo`\n 6. Only use TypeScript for types:\n    1. We compile to the `esnext` target and don't use TypeScript for \"downlevel\" compilation. Do not change that.\n    2. Don't use features that are not part of the type system:\n        1. `namespace`\n        2. `enum`\n        3. Parameter properties (initialize class fields in the constructor parameter list)\n 7. Prefix private members with `_`. (don't assume clients are using TypeScript)\n\n## Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/README.md",
    "content": "# lit-html\nEfficient, Expressive, Extensible HTML templates in JavaScript\n\n[![Build Status](https://travis-ci.org/Polymer/lit-html.svg?branch=master)](https://travis-ci.org/Polymer/lit-html)\n[![Published on npm](https://img.shields.io/npm/v/lit-html.svg)](https://www.npmjs.com/package/lit-html)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-html.polymer-project.org](https://lit-html.polymer-project.org).\n\nDocs source is in the `docs` folder. To build the site youself, see the instructions in [docs/README.md](docs/README.md).\n\n## Overview\n\n`lit-html` lets you write [HTML templates](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) in JavaScript with [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals).\n\nlit-html templates are plain JavaScript and combine the familiarity of writing HTML with the power of JavaScript. lit-html takes care of efficiently rendering templates to DOM, including efficiently updating the DOM with new values.\n\n```javascript\nimport {html, render} from 'lit-html';\n\n// This is a lit-html template function. It returns a lit-html template.\nconst helloTemplate = (name) => html`<div>Hello ${name}!</div>`;\n\n// This renders <div>Hello Steve!</div> to the document body\nrender(helloTemplate('Steve'), document.body);\n\n// This updates to <div>Hello Kevin!</div>, but only updates the ${name} part\nrender(helloTemplate('Kevin'), document.body);\n```\n\n`lit-html` provides two main exports:\n\n * `html`: A JavaScript [template tag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) used to produce a `TemplateResult`, which is a container for a template, and the values that should populate the template.\n * `render()`: A function that renders a `TemplateResult` to a DOM container, such as an element or shadow root.\n\n## Installation\n\n```bash\n$ npm install lit-html\n```\n\n## Status\n\n`lit-html` is under active development and has not yet had a 1.0 release. The\ninternal API may still change somewhat. The `html` and `render` API is stable.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md).\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/async-append.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { createMarker, directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], appending new\n * values after previous values, similar to the built-in support for iterables.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is appended to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncAppend = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncAppend can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    part.value = value;\n    // We keep track of item Parts across iterations, so that we can\n    // share marker nodes between consecutive Parts.\n    let itemPart;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This lets the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            // Like with sync iterables, each item induces a Part, so we need\n            // to keep track of start and end nodes for the Part.\n            // Note: Because these Parts are not updatable like with a sync\n            // iterable (if we render a new value, we always clear), it may\n            // be possible to optimize away the Parts and just re-use the\n            // Part.setValue() logic.\n            let itemStartNode = part.startNode;\n            // Check to see if we have a previous item and Part\n            if (itemPart !== undefined) {\n                // Create a new node to separate the previous and next Parts\n                itemStartNode = createMarker();\n                // itemPart is currently the Part for the previous item. Set\n                // it's endNode to the node we'll use for the next Part's\n                // startNode.\n                itemPart.endNode = itemStartNode;\n                part.endNode.parentNode.insertBefore(itemStartNode, part.endNode);\n            }\n            itemPart = new NodePart(part.options);\n            itemPart.insertAfterNode(itemStartNode);\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# =async-append.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/async-replace.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], replacing\n * previous values with new values, so that only one value is ever rendered\n * at a time.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is rendered to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncReplace = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncReplace can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    // We nest a new part to keep track of previous item values separately\n    // of the iterable as a value itself.\n    const itemPart = new NodePart(part.options);\n    part.value = value;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This let's the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n                itemPart.appendIntoPart(part);\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# =async-replace.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/cache.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateInstance } from '../lib/template-instance.js';\nimport { directive, NodePart, reparentNodes, TemplateResult } from '../lit-html.js';\nconst templateCaches = new WeakMap();\n/**\n * Enables fast switching between multiple templates by caching the DOM nodes\n * and TemplateInstances produced by the templates.\n *\n * Example:\n *\n * ```\n * let checked = false;\n *\n * html`\n *   ${cache(checked ? html`input is checked` : html`input is not checked`)}\n * `\n * ```\n */\nexport const cache = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('cache can only be used in text bindings');\n    }\n    let templateCache = templateCaches.get(part);\n    if (templateCache === undefined) {\n        templateCache = new WeakMap();\n        templateCaches.set(part, templateCache);\n    }\n    const previousValue = part.value;\n    // First, can we update the current TemplateInstance, or do we need to move\n    // the current nodes into the cache?\n    if (previousValue instanceof TemplateInstance) {\n        if (value instanceof TemplateResult &&\n            previousValue.template === part.options.templateFactory(value)) {\n            // Same Template, just trigger an update of the TemplateInstance\n            part.setValue(value);\n            return;\n        }\n        else {\n            // Not the same Template, move the nodes from the DOM into the cache.\n            let cachedTemplate = templateCache.get(previousValue.template);\n            if (cachedTemplate === undefined) {\n                cachedTemplate = {\n                    instance: previousValue,\n                    nodes: document.createDocumentFragment(),\n                };\n                templateCache.set(previousValue.template, cachedTemplate);\n            }\n            reparentNodes(cachedTemplate.nodes, part.startNode.nextSibling, part.endNode);\n        }\n    }\n    // Next, can we reuse nodes from the cache?\n    if (value instanceof TemplateResult) {\n        const template = part.options.templateFactory(value);\n        const cachedTemplate = templateCache.get(template);\n        if (cachedTemplate !== undefined) {\n            // Move nodes out of cache\n            part.setValue(cachedTemplate.nodes);\n            part.commit();\n            // Set the Part value to the TemplateInstance so it'll update it.\n            part.value = cachedTemplate.instance;\n        }\n    }\n    part.setValue(value);\n});\n//# =cache.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/class-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n// On IE11, classList.toggle doesn't accept a second argument.\n// Since this is so minor, we just polyfill it.\nif (window.navigator.userAgent.match('Trident')) {\n    DOMTokenList.prototype.toggle = function (token, force) {\n        if (force === undefined || force) {\n            this.add(token);\n        }\n        else {\n            this.remove(token);\n        }\n        return force === undefined ? true : force;\n    };\n}\n/**\n * Stores the ClassInfo object applied to a given AttributePart.\n * Used to unset existing values when a new ClassInfo object is applied.\n */\nconst classMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static classes applied (e.g. `foo` in\n * class=\"foo ${classMap()}\"). Static classes are applied only the first time\n * the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst classMapStatics = new WeakMap();\n/**\n * A directive that applies CSS classes. This must be used in the `class`\n * attribute and must be the only part used in the attribute. It takes each\n * property in the `classInfo` argument and adds the property name to the\n * element's `classList` if the property value is truthy; if the property value\n * is falsey, the property name is removed from the element's `classList`. For\n * example\n * `{foo: bar}` applies the class `foo` if the value of `bar` is truthy.\n * @param classInfo {ClassInfo}\n */\nexport const classMap = directive((classInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'class' || part.committer.parts.length > 1) {\n        throw new Error('The `classMap` directive must be used in the `class` attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // handle static classes\n    if (!classMapStatics.has(part)) {\n        part.committer.element.className = part.committer.strings.join(' ');\n        classMapStatics.set(part, true);\n    }\n    // remove old classes that no longer apply\n    const oldInfo = classMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in classInfo)) {\n            part.committer.element.classList.remove(name);\n        }\n    }\n    // add new classes\n    for (const name in classInfo) {\n        if (!oldInfo || (oldInfo[name] !== classInfo[name])) {\n            // We explicitly want a loose truthy check here because\n            // it seems more convenient that '' and 0 are skipped.\n            part.committer.element.classList.toggle(name, Boolean(classInfo[name]));\n        }\n    }\n    classMapCache.set(part, classInfo);\n});\n//# =class-map.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/guard.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { directive } from '../lit-html.js';\nconst previousValues = new WeakMap();\n/**\n * Prevents re-render of a template function until a single value or an array of\n * values changes.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([user.id, company.id], () => html`...`)}\n *   </div>\n * ```\n *\n * In this case, the template only renders if either `user.id` or `company.id`\n * changes.\n *\n * guard() is useful with immutable data patterns, by preventing expensive work\n * until data updates.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}\n *   </div>\n * ```\n *\n * In this case, items are mapped over only when the array reference changes.\n *\n * @param value the value to check before re-rendering\n * @param f the template function\n */\nexport const guard = directive((value, f) => (part) => {\n    const previousValue = previousValues.get(part);\n    if (Array.isArray(value)) {\n        // Dirty-check arrays by item\n        if (Array.isArray(previousValue) &&\n            previousValue.length === value.length &&\n            value.every((v, i) => v === previousValue[i])) {\n            return;\n        }\n    }\n    else if (previousValue === value &&\n        (value !== undefined || previousValues.has(part))) {\n        // Dirty-check non-arrays by identity\n        return;\n    }\n    part.setValue(f());\n    // Copy the value if it's an array so that if it's mutated we don't forget\n    // what the previous values were.\n    previousValues.set(part, Array.isArray(value) ? Array.from(value) : value);\n});\n//# =guard.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/if-defined.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive } from '../lit-html.js';\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = directive((value) => (part) => {\n    if (value === undefined && part instanceof AttributePart) {\n        if (value !== part.value) {\n            const name = part.committer.name;\n            part.committer.element.removeAttribute(name);\n        }\n    }\n    else {\n        part.setValue(value);\n    }\n});\n//# =if-defined.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/repeat.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { createMarker, directive, NodePart, removeNodes, reparentNodes } from '../lit-html.js';\n// Helper functions for manipulating parts\n// TODO(kschaaf): Refactor into Part API?\nconst createAndInsertPart = (containerPart, beforePart) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = beforePart === undefined ? containerPart.endNode :\n        beforePart.startNode;\n    const startNode = container.insertBefore(createMarker(), beforeNode);\n    container.insertBefore(createMarker(), beforeNode);\n    const newPart = new NodePart(containerPart.options);\n    newPart.insertAfterNode(startNode);\n    return newPart;\n};\nconst updatePart = (part, value) => {\n    part.setValue(value);\n    part.commit();\n    return part;\n};\nconst insertPartBefore = (containerPart, part, ref) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = ref ? ref.startNode : containerPart.endNode;\n    const endNode = part.endNode.nextSibling;\n    if (endNode !== beforeNode) {\n        reparentNodes(container, part.startNode, endNode, beforeNode);\n    }\n};\nconst removePart = (part) => {\n    removeNodes(part.startNode.parentNode, part.startNode, part.endNode.nextSibling);\n};\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list, start, end) => {\n    const map = new Map();\n    for (let i = start; i <= end; i++) {\n        map.set(list[i], i);\n    }\n    return map;\n};\n// Stores previous ordered list of parts and map of key to index\nconst partListCache = new WeakMap();\nconst keyListCache = new WeakMap();\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * amd removals.\n *\n * IMPORTANT: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive((items, keyFnOrTemplate, template) => {\n    let keyFn;\n    if (template === undefined) {\n        template = keyFnOrTemplate;\n    }\n    else if (keyFnOrTemplate !== undefined) {\n        keyFn = keyFnOrTemplate;\n    }\n    return (containerPart) => {\n        if (!(containerPart instanceof NodePart)) {\n            throw new Error('repeat can only be used in text bindings');\n        }\n        // Old part & key lists are retrieved from the last update\n        // (associated with the part for this instance of the directive)\n        const oldParts = partListCache.get(containerPart) || [];\n        const oldKeys = keyListCache.get(containerPart) || [];\n        // New part list will be built up as we go (either reused from\n        // old parts or created for new keys in this update). This is\n        // saved in the above cache at the end of the update.\n        const newParts = [];\n        // New value list is eagerly generated from items along with a\n        // parallel array indicating its key.\n        const newValues = [];\n        const newKeys = [];\n        let index = 0;\n        for (const item of items) {\n            newKeys[index] = keyFn ? keyFn(item, index) : index;\n            newValues[index] = template(item, index);\n            index++;\n        }\n        // Maps from key to index for current and previous update; these\n        // are generated lazily only when needed as a performance\n        // optimization, since they are only required for multiple\n        // non-contiguous changes in the list, which are less common.\n        let newKeyToIndexMap;\n        let oldKeyToIndexMap;\n        // Head and tail pointers to old parts and new values\n        let oldHead = 0;\n        let oldTail = oldParts.length - 1;\n        let newHead = 0;\n        let newTail = newValues.length - 1;\n        // Overview of O(n) reconciliation algorithm (general approach\n        // based on ideas found in ivi, vue, snabbdom, etc.):\n        //\n        // * We start with the list of old parts and new values (and\n        // arrays of\n        //   their respective keys), head/tail pointers into each, and\n        //   we build up the new list of parts by updating (and when\n        //   needed, moving) old parts or creating new ones. The initial\n        //   scenario might look like this (for brevity of the diagrams,\n        //   the numbers in the array reflect keys associated with the\n        //   old parts or new values, although keys and parts/values are\n        //   actually stored in parallel arrays indexed using the same\n        //   head/tail pointers):\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [ ,  ,  ,  ,  ,  ,  ]\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n        //   item order\n        //      newHead ^                 ^ newTail\n        //\n        // * Iterate old & new lists from both sides, updating,\n        // swapping, or\n        //   removing parts at the head/tail locations until neither\n        //   head nor tail can move.\n        //\n        // * Example below: keys at head pointers match, so update old\n        // part 0 in-\n        //   place (no need to move it) and record part 0 in the\n        //   `newParts` list. The last thing we do is advance the\n        //   `oldHead` and `newHead` pointers (will be reflected in the\n        //   next diagram).\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  ,  ] <- heads matched: update 0\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //      newHead ^                 ^ newTail\n        //\n        // * Example below: head pointers don't match, but tail pointers\n        // do, so\n        //   update part 6 in place (no need to move it), and record\n        //   part 6 in the `newParts` list. Last, advance the `oldTail`\n        //   and `oldHead` pointers.\n        //\n        //         oldHead v              v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- tails matched: update 6\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldTail\n        //   & newTail\n        //         newHead ^              ^ newTail\n        //\n        // * If neither head nor tail match; next check if one of the\n        // old head/tail\n        //   items was removed. We first need to generate the reverse\n        //   map of new keys to index (`newKeyToIndexMap`), which is\n        //   done once lazily as a performance optimization, since we\n        //   only hit this case if multiple non-contiguous changes were\n        //   made. Note that for contiguous removal anywhere in the\n        //   list, the head and tails would advance from either end and\n        //   pass each other before we get to this case and removals\n        //   would be handled in the final while loop without needing to\n        //   generate the map.\n        //\n        // * Example below: The key at `oldTail` was removed (no longer\n        // in the\n        //   `newKeyToIndexMap`), so remove that part from the DOM and\n        //   advance just the `oldTail` pointer.\n        //\n        //         oldHead v           v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- 5 not in new map; remove\n        //   5 and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance oldTail\n        //         newHead ^           ^ newTail\n        //\n        // * Once head and tail cannot move, any mismatches are due to\n        // either new or\n        //   moved items; if a new key is in the previous \"old key to\n        //   old index\" map, move the old part to the new location,\n        //   otherwise create and insert a new part. Note that when\n        //   moving an old part we null its position in the oldParts\n        //   array if it lies between the head and tail so we know to\n        //   skip it when the pointers get there.\n        //\n        // * Example below: neither head nor tail match, and neither\n        // were removed;\n        //   so find the `newHead` key in the `oldKeyToIndexMap`, and\n        //   move that old part's DOM into the next head position\n        //   (before `oldParts[oldHead]`). Last, null the part in the\n        //   `oldPart` array since it was somewhere in the remaining\n        //   oldParts still to be scanned (between the head and tail\n        //   pointers) so that we know to skip that old part on future\n        //   iterations.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2,  ,  ,  ,  , 6] <- stuck; update & move 2\n        //   into place newKeys:  [0, 2, 1, 4, 3, 7, 6]    and advance\n        //   newHead\n        //         newHead ^           ^ newTail\n        //\n        // * Note that for moves/insertions like the one above, a part\n        // inserted at\n        //   the head pointer is inserted before the current\n        //   `oldParts[oldHead]`, and a part inserted at the tail\n        //   pointer is inserted before `newParts[newTail+1]`. The\n        //   seeming asymmetry lies in the fact that new parts are moved\n        //   into place outside in, so to the right of the head pointer\n        //   are old parts, and to the right of the tail pointer are new\n        //   parts.\n        //\n        // * We always restart back from the top of the algorithm,\n        // allowing matching\n        //   and simple updates in place to continue...\n        //\n        // * Example below: the head pointers once again match, so\n        // simply update\n        //   part 1 and record it in the `newParts` array.  Last,\n        //   advance both head pointers.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1,  ,  ,  , 6] <- heads matched; update 1\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //            newHead ^        ^ newTail\n        //\n        // * As mentioned above, items that were moved as a result of\n        // being stuck\n        //   (the final else clause in the code below) are marked with\n        //   null, so we always advance old pointers over these so we're\n        //   comparing the next actual old value on either end.\n        //\n        // * Example below: `oldHead` is null (already placed in\n        // newParts), so\n        //   advance `oldHead`.\n        //\n        //            oldHead v     v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6] // old head already used;\n        //   advance newParts: [0, 2, 1,  ,  ,  , 6] // oldHead newKeys:\n        //   [0, 2, 1, 4, 3, 7, 6]\n        //               newHead ^     ^ newTail\n        //\n        // * Note it's not critical to mark old parts as null when they\n        // are moved\n        //   from head to tail or tail to head, since they will be\n        //   outside the pointer range and never visited again.\n        //\n        // * Example below: Here the old tail key matches the new head\n        // key, so\n        //   the part at the `oldTail` position and move its DOM to the\n        //   new head position (before `oldParts[oldHead]`). Last,\n        //   advance `oldTail` and `newHead` pointers.\n        //\n        //               oldHead v  v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4,  ,  , 6] <- old tail matches new\n        //   head: update newKeys:  [0, 2, 1, 4, 3, 7, 6]   & move 4,\n        //   advance oldTail & newHead\n        //               newHead ^     ^ newTail\n        //\n        // * Example below: Old and new head keys match, so update the\n        // old head\n        //   part in place, and advance the `oldHead` and `newHead`\n        //   pointers.\n        //\n        //               oldHead v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3,   ,6] <- heads match: update 3\n        //   and advance newKeys:  [0, 2, 1, 4, 3, 7, 6]    oldHead &\n        //   newHead\n        //                  newHead ^  ^ newTail\n        //\n        // * Once the new or old pointers move past each other then all\n        // we have\n        //   left is additions (if old list exhausted) or removals (if\n        //   new list exhausted). Those are handled in the final while\n        //   loops at the end.\n        //\n        // * Example below: `oldHead` exceeded `oldTail`, so we're done\n        // with the\n        //   main loop.  Create the remaining part and insert it at the\n        //   new head position, and the update is complete.\n        //\n        //                   (oldHead > oldTail)\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6]\n        //                     newHead ^ newTail\n        //\n        // * Note that the order of the if/else clauses is not important\n        // to the\n        //   algorithm, as long as the null checks come first (to ensure\n        //   we're always working on valid old parts) and that the final\n        //   else clause comes last (since that's where the expensive\n        //   moves occur). The order of remaining clauses is is just a\n        //   simple guess at which cases will be most common.\n        //\n        // * TODO(kschaaf) Note, we could calculate the longest\n        // increasing\n        //   subsequence (LIS) of old items in new position, and only\n        //   move those not in the LIS set. However that costs O(nlogn)\n        //   time and adds a bit more code, and only helps make rare\n        //   types of mutations require fewer moves. The above handles\n        //   removes, adds, reversal, swaps, and single moves of\n        //   contiguous items in linear time, in the minimum number of\n        //   moves. As the number of multiple moves where LIS might help\n        //   approaches a random shuffle, the LIS optimization becomes\n        //   less helpful, so it seems not worth the code at this point.\n        //   Could reconsider if a compelling case arises.\n        while (oldHead <= oldTail && newHead <= newTail) {\n            if (oldParts[oldHead] === null) {\n                // `null` means old part at head has already been used\n                // below; skip\n                oldHead++;\n            }\n            else if (oldParts[oldTail] === null) {\n                // `null` means old part at tail has already been used\n                // below; skip\n                oldTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newHead]) {\n                // Old head matches new head; update in place\n                newParts[newHead] =\n                    updatePart(oldParts[oldHead], newValues[newHead]);\n                oldHead++;\n                newHead++;\n            }\n            else if (oldKeys[oldTail] === newKeys[newTail]) {\n                // Old tail matches new tail; update in place\n                newParts[newTail] =\n                    updatePart(oldParts[oldTail], newValues[newTail]);\n                oldTail--;\n                newTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newTail]) {\n                // Old head matches new tail; update and move to new tail\n                newParts[newTail] =\n                    updatePart(oldParts[oldHead], newValues[newTail]);\n                insertPartBefore(containerPart, oldParts[oldHead], newParts[newTail + 1]);\n                oldHead++;\n                newTail--;\n            }\n            else if (oldKeys[oldTail] === newKeys[newHead]) {\n                // Old tail matches new head; update and move to new head\n                newParts[newHead] =\n                    updatePart(oldParts[oldTail], newValues[newHead]);\n                insertPartBefore(containerPart, oldParts[oldTail], oldParts[oldHead]);\n                oldTail--;\n                newHead++;\n            }\n            else {\n                if (newKeyToIndexMap === undefined) {\n                    // Lazily generate key-to-index maps, used for removals &\n                    // moves below\n                    newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n                    oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n                }\n                if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n                    // Old head is no longer in new list; remove\n                    removePart(oldParts[oldHead]);\n                    oldHead++;\n                }\n                else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n                    // Old tail is no longer in new list; remove\n                    removePart(oldParts[oldTail]);\n                    oldTail--;\n                }\n                else {\n                    // Any mismatches at this point are due to additions or\n                    // moves; see if we have an old part we can reuse and move\n                    // into place\n                    const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n                    const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n                    if (oldPart === null) {\n                        // No old part for this value; create a new one and\n                        // insert it\n                        const newPart = createAndInsertPart(containerPart, oldParts[oldHead]);\n                        updatePart(newPart, newValues[newHead]);\n                        newParts[newHead] = newPart;\n                    }\n                    else {\n                        // Reuse old part\n                        newParts[newHead] =\n                            updatePart(oldPart, newValues[newHead]);\n                        insertPartBefore(containerPart, oldPart, oldParts[oldHead]);\n                        // This marks the old part as having been used, so that\n                        // it will be skipped in the first two checks above\n                        oldParts[oldIndex] = null;\n                    }\n                    newHead++;\n                }\n            }\n        }\n        // Add parts for any remaining new values\n        while (newHead <= newTail) {\n            // For all remaining additions, we insert before last new\n            // tail, since old pointers are no longer valid\n            const newPart = createAndInsertPart(containerPart, newParts[newTail + 1]);\n            updatePart(newPart, newValues[newHead]);\n            newParts[newHead++] = newPart;\n        }\n        // Remove any remaining unused old parts\n        while (oldHead <= oldTail) {\n            const oldPart = oldParts[oldHead++];\n            if (oldPart !== null) {\n                removePart(oldPart);\n            }\n        }\n        // Save order of new parts for next round\n        partListCache.set(containerPart, newParts);\n        keyListCache.set(containerPart, newKeys);\n    };\n});\n//# =repeat.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/style-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n/**\n * Stores the StyleInfo object applied to a given AttributePart.\n * Used to unset existing values when a new StyleInfo object is applied.\n */\nconst styleMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static styles applied (e.g. `height: 0;`\n * in style=\"height: 0; ${styleMap()}\"). Static styles are applied only the\n * first time the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst styleMapStatics = new WeakMap();\n/**\n * A directive that applies CSS properties to an element.\n *\n * `styleMap` can only be used in the `style` attribute and must be the only\n * expression in the attribute. It takes the property names in the `styleInfo`\n * object and adds the property values as CSS propertes. Property names with\n * dashes (`-`) are assumed to be valid CSS property names and set on the\n * element's style object using `setProperty()`. Names without dashes are\n * assumed to be camelCased JavaScript property names and set on the element's\n * style object using property assignment, allowing the style object to\n * translate JavaScript-style names to CSS property names.\n *\n * For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\n *\n * @param styleInfo {StyleInfo}\n */\nexport const styleMap = directive((styleInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'style' || part.committer.parts.length > 1) {\n        throw new Error('The `styleMap` directive must be used in the style attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // Handle static styles the first time we see a Part\n    if (!styleMapStatics.has(part)) {\n        part.committer.element.style.cssText =\n            part.committer.strings.join(' ');\n        styleMapStatics.set(part, true);\n    }\n    const style = part.committer.element.style;\n    // Remove old properties that no longer exist in styleInfo\n    const oldInfo = styleMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in styleInfo)) {\n            if (name.indexOf('-') === -1) {\n                // tslint:disable-next-line:no-any\n                style[name] = null;\n            }\n            else {\n                style.removeProperty(name);\n            }\n        }\n    }\n    // Add or update properties\n    for (const name in styleInfo) {\n        if (name.indexOf('-') === -1) {\n            // tslint:disable-next-line:no-any\n            style[name] = styleInfo[name];\n        }\n        else {\n            style.setProperty(name, styleInfo[name]);\n        }\n    }\n    styleMapCache.set(part, styleInfo);\n});\n//# =style-map.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/unsafe-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive, NodePart } from '../lit-html.js';\n// For each part, remember the value that was last rendered to the part by the\n// unsafeHTML directive, and the DocumentFragment that was last set as a value.\n// The DocumentFragment is used as a unique key to check if the last value\n// rendered to the part was with unsafeHTML. If not, we'll always re-render the\n// value passed to unsafeHTML.\nconst previousValues = new WeakMap();\n/**\n * Renders the result as HTML, rather than text.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('unsafeHTML can only be used in text bindings');\n    }\n    const previousValue = previousValues.get(part);\n    if (previousValue !== undefined && isPrimitive(value) &&\n        value === previousValue.value && part.value === previousValue.fragment) {\n        return;\n    }\n    const template = document.createElement('template');\n    template.innerHTML = value; // innerHTML casts to string internally\n    const fragment = document.importNode(template.content, true);\n    part.setValue(fragment);\n    previousValues.set(part, { value, fragment });\n});\n//# =unsafe-html.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/directives/until.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive } from '../lit-html.js';\nconst _state = new WeakMap();\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n *     const content = fetch('./content.txt').then(r => r.text());\n *     html`${until(content, html`<span>Loading...</span>`)}`\n */\nexport const until = directive((...args) => (part) => {\n    let state = _state.get(part);\n    if (state === undefined) {\n        state = {\n            values: [],\n        };\n        _state.set(part, state);\n    }\n    const previousValues = state.values;\n    state.values = args;\n    for (let i = 0; i < args.length; i++) {\n        // If we've rendered a higher-priority value already, stop.\n        if (state.lastRenderedIndex !== undefined && i > state.lastRenderedIndex) {\n            break;\n        }\n        const value = args[i];\n        // Render non-Promise values immediately\n        if (isPrimitive(value) ||\n            typeof value.then !== 'function') {\n            part.setValue(value);\n            state.lastRenderedIndex = i;\n            // Since a lower-priority value will never overwrite a higher-priority\n            // synchronous value, we can stop processsing now.\n            break;\n        }\n        // If this is a Promise we've already handled, skip it.\n        if (state.lastRenderedIndex !== undefined &&\n            typeof value.then === 'function' &&\n            value === previousValues[i]) {\n            continue;\n        }\n        // We have a Promise that we haven't seen before, so priorities may have\n        // changed. Forget what we rendered before.\n        state.lastRenderedIndex = undefined;\n        Promise.resolve(value).then((resolvedValue) => {\n            const index = state.values.indexOf(value);\n            // If state.values doesn't contain the value, we've re-rendered without\n            // the value, so don't render it. Then, only render if the value is\n            // higher-priority than what's already been rendered.\n            if (index > -1 &&\n                (state.lastRenderedIndex === undefined ||\n                    index < state.lastRenderedIndex)) {\n                state.lastRenderedIndex = index;\n                part.setValue(resolvedValue);\n                part.commit();\n            }\n        });\n    }\n});\n//# =until.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/default-template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter } from './parts.js';\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor {\n    /**\n     * Create parts for an attribute-position binding, given the event, attribute\n     * name, and string literals.\n     *\n     * @param element The element containing the binding\n     * @param name  The attribute name\n     * @param strings The string literals. There are always at least two strings,\n     *   event for fully-controlled bindings with a single expression.\n     */\n    handleAttributeExpressions(element, name, strings, options) {\n        const prefix = name[0];\n        if (prefix === '.') {\n            const comitter = new PropertyCommitter(element, name.slice(1), strings);\n            return comitter.parts;\n        }\n        if (prefix === '@') {\n            return [new EventPart(element, name.slice(1), options.eventContext)];\n        }\n        if (prefix === '?') {\n            return [new BooleanAttributePart(element, name.slice(1), strings)];\n        }\n        const comitter = new AttributeCommitter(element, name, strings);\n        return comitter.parts;\n    }\n    /**\n     * Create parts for a text-position binding.\n     * @param templateFactory\n     */\n    handleTextExpression(options) {\n        return new NodePart(options);\n    }\n}\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n//# =default-template-processor.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/directive.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive so that lit-html will call the function\n * during template rendering, rather than passing as a value.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object\n *\n * @example\n *\n * ```\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n *   if (part.value !== v) {\n *     part.setValue(v)\n *   }\n * });\n * ```\n */\n// tslint:disable-next-line:no-any\nexport const directive = (f) => ((...args) => {\n    const d = f(...args);\n    directives.set(d, true);\n    return d;\n});\nexport const isDirective = (o) => {\n    return typeof o === 'function' && directives.has(o);\n};\n//# =directive.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/dom.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n    window.customElements.polyfillWrapFlushCallback !==\n        undefined;\n/**\n * Reparents nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), into another container (could be the same container), before\n * `beforeNode`. If `beforeNode` is null, it appends the nodes to the\n * container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n    let node = start;\n    while (node !== end) {\n        const n = node.nextSibling;\n        container.insertBefore(node, before);\n        node = n;\n    }\n};\n/**\n * Removes nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), from `container`.\n */\nexport const removeNodes = (container, startNode, endNode = null) => {\n    let node = startNode;\n    while (node !== endNode) {\n        const n = node.nextSibling;\n        container.removeChild(node);\n        node = n;\n    }\n};\n//# =dom.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/modify-template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module shady-render\n */\nimport { isTemplatePartActive } from './template.js';\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n *   div#1 (remove) <-- start removing (removing node is div#1)\n *     div\n *       div#2 (remove)  <-- continue removing (removing node is still div#1)\n *         div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(template, nodesToRemove) {\n    const { element: { content }, parts } = template;\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let part = parts[partIndex];\n    let nodeIndex = -1;\n    let removeCount = 0;\n    const nodesToRemoveInTemplate = [];\n    let currentRemovingNode = null;\n    while (walker.nextNode()) {\n        nodeIndex++;\n        const node = walker.currentNode;\n        // End removal if stepped past the removing node\n        if (node.previousSibling === currentRemovingNode) {\n            currentRemovingNode = null;\n        }\n        // A node to remove was found in the template\n        if (nodesToRemove.has(node)) {\n            nodesToRemoveInTemplate.push(node);\n            // Track node we're removing\n            if (currentRemovingNode === null) {\n                currentRemovingNode = node;\n            }\n        }\n        // When removing, increment count by which to adjust subsequent part indices\n        if (currentRemovingNode !== null) {\n            removeCount++;\n        }\n        while (part !== undefined && part.index === nodeIndex) {\n            // If part is in a removed node deactivate it by setting index to -1 or\n            // adjust the index as needed.\n            part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n            // go to the next active part.\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n            part = parts[partIndex];\n        }\n    }\n    nodesToRemoveInTemplate.forEach((n) => n.parentNode.removeChild(n));\n}\nconst countNodes = (node) => {\n    let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n    const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n    while (walker.nextNode()) {\n        count++;\n    }\n    return count;\n};\nconst nextActiveIndexInTemplateParts = (parts, startIndex = -1) => {\n    for (let i = startIndex + 1; i < parts.length; i++) {\n        const part = parts[i];\n        if (isTemplatePartActive(part)) {\n            return i;\n        }\n    }\n    return -1;\n};\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(template, node, refNode = null) {\n    const { element: { content }, parts } = template;\n    // If there's no refNode, then put node at end of template.\n    // No part indices need to be shifted in this case.\n    if (refNode === null || refNode === undefined) {\n        content.appendChild(node);\n        return;\n    }\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let insertCount = 0;\n    let walkerIndex = -1;\n    while (walker.nextNode()) {\n        walkerIndex++;\n        const walkerNode = walker.currentNode;\n        if (walkerNode === refNode) {\n            insertCount = countNodes(node);\n            refNode.parentNode.insertBefore(node, refNode);\n        }\n        while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n            // If we've inserted the node, simply adjust all subsequent parts\n            if (insertCount > 0) {\n                while (partIndex !== -1) {\n                    parts[partIndex].index += insertCount;\n                    partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n                }\n                return;\n            }\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n        }\n    }\n}\n//# =modify-template.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/part.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# =part.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/parts.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isDirective } from './directive.js';\nimport { removeNodes } from './dom.js';\nimport { noChange, nothing } from './part.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { createMarker } from './template.js';\nexport const isPrimitive = (value) => {\n    return (value === null ||\n        !(typeof value === 'object' || typeof value === 'function'));\n};\n/**\n * Sets attribute values for AttributeParts, so that the value is only set once\n * even if there are multiple parts for an attribute.\n */\nexport class AttributeCommitter {\n    constructor(element, name, strings) {\n        this.dirty = true;\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n        this.parts = [];\n        for (let i = 0; i < strings.length - 1; i++) {\n            this.parts[i] = this._createPart();\n        }\n    }\n    /**\n     * Creates a single part. Override this to create a differnt type of part.\n     */\n    _createPart() {\n        return new AttributePart(this);\n    }\n    _getValue() {\n        const strings = this.strings;\n        const l = strings.length - 1;\n        let text = '';\n        for (let i = 0; i < l; i++) {\n            text += strings[i];\n            const part = this.parts[i];\n            if (part !== undefined) {\n                const v = part.value;\n                if (v != null &&\n                    (Array.isArray(v) ||\n                        // tslint:disable-next-line:no-any\n                        typeof v !== 'string' && v[Symbol.iterator])) {\n                    for (const t of v) {\n                        text += typeof t === 'string' ? t : String(t);\n                    }\n                }\n                else {\n                    text += typeof v === 'string' ? v : String(v);\n                }\n            }\n        }\n        text += strings[l];\n        return text;\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            this.element.setAttribute(this.name, this._getValue());\n        }\n    }\n}\nexport class AttributePart {\n    constructor(comitter) {\n        this.value = undefined;\n        this.committer = comitter;\n    }\n    setValue(value) {\n        if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n            this.value = value;\n            // If the value is a not a directive, dirty the committer so that it'll\n            // call setAttribute. If the value is a directive, it'll dirty the\n            // committer if it calls setValue().\n            if (!isDirective(value)) {\n                this.committer.dirty = true;\n            }\n        }\n    }\n    commit() {\n        while (isDirective(this.value)) {\n            const directive = this.value;\n            this.value = noChange;\n            directive(this);\n        }\n        if (this.value === noChange) {\n            return;\n        }\n        this.committer.commit();\n    }\n}\nexport class NodePart {\n    constructor(options) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.options = options;\n    }\n    /**\n     * Inserts this part into a container.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendInto(container) {\n        this.startNode = container.appendChild(createMarker());\n        this.endNode = container.appendChild(createMarker());\n    }\n    /**\n     * Inserts this part between `ref` and `ref`'s next sibling. Both `ref` and\n     * its next sibling must be static, unchanging nodes such as those that appear\n     * in a literal section of a template.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterNode(ref) {\n        this.startNode = ref;\n        this.endNode = ref.nextSibling;\n    }\n    /**\n     * Appends this part into a parent part.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendIntoPart(part) {\n        part._insert(this.startNode = createMarker());\n        part._insert(this.endNode = createMarker());\n    }\n    /**\n     * Appends this part after `ref`\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterPart(ref) {\n        ref._insert(this.startNode = createMarker());\n        this.endNode = ref.endNode;\n        ref.endNode = this.startNode;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        const value = this._pendingValue;\n        if (value === noChange) {\n            return;\n        }\n        if (isPrimitive(value)) {\n            if (value !== this.value) {\n                this._commitText(value);\n            }\n        }\n        else if (value instanceof TemplateResult) {\n            this._commitTemplateResult(value);\n        }\n        else if (value instanceof Node) {\n            this._commitNode(value);\n        }\n        else if (Array.isArray(value) ||\n            // tslint:disable-next-line:no-any\n            value[Symbol.iterator]) {\n            this._commitIterable(value);\n        }\n        else if (value === nothing) {\n            this.value = nothing;\n            this.clear();\n        }\n        else {\n            // Fallback, will render the string representation\n            this._commitText(value);\n        }\n    }\n    _insert(node) {\n        this.endNode.parentNode.insertBefore(node, this.endNode);\n    }\n    _commitNode(value) {\n        if (this.value === value) {\n            return;\n        }\n        this.clear();\n        this._insert(value);\n        this.value = value;\n    }\n    _commitText(value) {\n        const node = this.startNode.nextSibling;\n        value = value == null ? '' : value;\n        if (node === this.endNode.previousSibling &&\n            node.nodeType === 3 /* Node.TEXT_NODE */) {\n            // If we only have a single text node between the markers, we can just\n            // set its value, rather than replacing it.\n            // TODO(justinfagnani): Can we just check if this.value is primitive?\n            node.data = value;\n        }\n        else {\n            this._commitNode(document.createTextNode(typeof value === 'string' ? value : String(value)));\n        }\n        this.value = value;\n    }\n    _commitTemplateResult(value) {\n        const template = this.options.templateFactory(value);\n        if (this.value instanceof TemplateInstance &&\n            this.value.template === template) {\n            this.value.update(value.values);\n        }\n        else {\n            // Make sure we propagate the template processor from the TemplateResult\n            // so that we use its syntax extension, etc. The template factory comes\n            // from the render function options so that it can control template\n            // caching and preprocessing.\n            const instance = new TemplateInstance(template, value.processor, this.options);\n            const fragment = instance._clone();\n            instance.update(value.values);\n            this._commitNode(fragment);\n            this.value = instance;\n        }\n    }\n    _commitIterable(value) {\n        // For an Iterable, we create a new InstancePart per item, then set its\n        // value to the item. This is a little bit of overhead for every item in\n        // an Iterable, but it lets us recurse easily and efficiently update Arrays\n        // of TemplateResults that will be commonly returned from expressions like:\n        // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n        // If _value is an array, then the previous render was of an\n        // iterable and _value will contain the NodeParts from the previous\n        // render. If _value is not an array, clear this part and make a new\n        // array for NodeParts.\n        if (!Array.isArray(this.value)) {\n            this.value = [];\n            this.clear();\n        }\n        // Lets us keep track of how many items we stamped so we can clear leftover\n        // items from a previous render\n        const itemParts = this.value;\n        let partIndex = 0;\n        let itemPart;\n        for (const item of value) {\n            // Try to reuse an existing part\n            itemPart = itemParts[partIndex];\n            // If no existing part, create a new one\n            if (itemPart === undefined) {\n                itemPart = new NodePart(this.options);\n                itemParts.push(itemPart);\n                if (partIndex === 0) {\n                    itemPart.appendIntoPart(this);\n                }\n                else {\n                    itemPart.insertAfterPart(itemParts[partIndex - 1]);\n                }\n            }\n            itemPart.setValue(item);\n            itemPart.commit();\n            partIndex++;\n        }\n        if (partIndex < itemParts.length) {\n            // Truncate the parts array so _value reflects the current state\n            itemParts.length = partIndex;\n            this.clear(itemPart && itemPart.endNode);\n        }\n    }\n    clear(startNode = this.startNode) {\n        removeNodes(this.startNode.parentNode, startNode.nextSibling, this.endNode);\n    }\n}\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart {\n    constructor(element, name, strings) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n            throw new Error('Boolean attributes can only contain a single expression');\n        }\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const value = !!this._pendingValue;\n        if (this.value !== value) {\n            if (value) {\n                this.element.setAttribute(this.name, '');\n            }\n            else {\n                this.element.removeAttribute(this.name);\n            }\n        }\n        this.value = value;\n        this._pendingValue = noChange;\n    }\n}\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n    constructor(element, name, strings) {\n        super(element, name, strings);\n        this.single =\n            (strings.length === 2 && strings[0] === '' && strings[1] === '');\n    }\n    _createPart() {\n        return new PropertyPart(this);\n    }\n    _getValue() {\n        if (this.single) {\n            return this.parts[0].value;\n        }\n        return super._getValue();\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            // tslint:disable-next-line:no-any\n            this.element[this.name] = this._getValue();\n        }\n    }\n}\nexport class PropertyPart extends AttributePart {\n}\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\ntry {\n    const options = {\n        get capture() {\n            eventOptionsSupported = true;\n            return false;\n        }\n    };\n    // tslint:disable-next-line:no-any\n    window.addEventListener('test', options, options);\n    // tslint:disable-next-line:no-any\n    window.removeEventListener('test', options, options);\n}\ncatch (_e) {\n}\nexport class EventPart {\n    constructor(element, eventName, eventContext) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.element = element;\n        this.eventName = eventName;\n        this.eventContext = eventContext;\n        this._boundHandleEvent = (e) => this.handleEvent(e);\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const newListener = this._pendingValue;\n        const oldListener = this.value;\n        const shouldRemoveListener = newListener == null ||\n            oldListener != null &&\n                (newListener.capture !== oldListener.capture ||\n                    newListener.once !== oldListener.once ||\n                    newListener.passive !== oldListener.passive);\n        const shouldAddListener = newListener != null && (oldListener == null || shouldRemoveListener);\n        if (shouldRemoveListener) {\n            this.element.removeEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        if (shouldAddListener) {\n            this._options = getOptions(newListener);\n            this.element.addEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        this.value = newListener;\n        this._pendingValue = noChange;\n    }\n    handleEvent(event) {\n        if (typeof this.value === 'function') {\n            this.value.call(this.eventContext || this.element, event);\n        }\n        else {\n            this.value.handleEvent(event);\n        }\n    }\n}\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o) => o &&\n    (eventOptionsSupported ?\n        { capture: o.capture, passive: o.passive, once: o.once } :\n        o.capture);\n//# =parts.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/render-options.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# =render-options.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { removeNodes } from './dom.js';\nimport { NodePart } from './parts.js';\nimport { templateFactory } from './template-factory.js';\nexport const parts = new WeakMap();\n/**\n * Renders a template to a container.\n *\n * To update a container with new values, reevaluate the template literal and\n * call `render` with the new result.\n *\n * @param result a TemplateResult created by evaluating a template tag like\n *     `html` or `svg`.\n * @param container A DOM parent to render to. The entire contents are either\n *     replaced, or efficiently updated if the same result type was previous\n *     rendered there.\n * @param options RenderOptions for the entire render tree rendered to this\n *     container. Render options must *not* change between renders to the same\n *     container, as those changes will not effect previously rendered DOM.\n */\nexport const render = (result, container, options) => {\n    let part = parts.get(container);\n    if (part === undefined) {\n        removeNodes(container, container.firstChild);\n        parts.set(container, part = new NodePart(Object.assign({ templateFactory }, options)));\n        part.appendInto(container);\n    }\n    part.setValue(result);\n    part.commit();\n};\n//# =render.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/shady-render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { removeNodes } from './dom.js';\nimport { insertNodeIntoTemplate, removeNodesFromTemplate } from './modify-template.js';\nimport { parts, render as litRender } from './render.js';\nimport { templateCaches } from './template-factory.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { marker, Template } from './template.js';\nexport { html, svg, TemplateResult } from '../lit-html.js';\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type, scopeName) => `${type}--${scopeName}`;\nlet compatibleShadyCSSVersion = true;\nif (typeof window.ShadyCSS === 'undefined') {\n    compatibleShadyCSSVersion = false;\n}\nelse if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n    console.warn(`Incompatible ShadyCSS version detected.` +\n        `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and` +\n        `@webcomponents/shadycss@1.3.1.`);\n    compatibleShadyCSSVersion = false;\n}\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName) => (result) => {\n    const cacheKey = getTemplateCacheKey(result.type, scopeName);\n    let templateCache = templateCaches.get(cacheKey);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(cacheKey, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    const key = result.strings.join(marker);\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        const element = result.getTemplateElement();\n        if (compatibleShadyCSSVersion) {\n            window.ShadyCSS.prepareTemplateDom(element, scopeName);\n        }\n        template = new Template(result, element);\n        templateCache.keyString.set(key, template);\n    }\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n};\nconst TEMPLATE_TYPES = ['html', 'svg'];\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName) => {\n    TEMPLATE_TYPES.forEach((type) => {\n        const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n        if (templates !== undefined) {\n            templates.keyString.forEach((template) => {\n                const { element: { content } } = template;\n                // IE 11 doesn't support the iterable param Set constructor\n                const styles = new Set();\n                Array.from(content.querySelectorAll('style')).forEach((s) => {\n                    styles.add(s);\n                });\n                removeNodesFromTemplate(template, styles);\n            });\n        }\n    });\n};\nconst shadyRenderSet = new Set();\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, <style> elements can only be placed into templates for the\n * initial rendering of the scope. If <style> elements are included in templates\n * dynamically rendered to the scope (after the first scope render), they will\n * not be scoped and the <style> will be left in the template and rendered\n * output.\n */\nconst prepareTemplateStyles = (renderedDOM, template, scopeName) => {\n    shadyRenderSet.add(scopeName);\n    // Move styles out of rendered DOM and store.\n    const styles = renderedDOM.querySelectorAll('style');\n    // If there are no styles, skip unnecessary work\n    if (styles.length === 0) {\n        // Ensure prepareTemplateStyles is called to support adding\n        // styles via `prepareAdoptedCssText` since that requires that\n        // `prepareTemplateStyles` is called.\n        window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n        return;\n    }\n    const condensedStyle = document.createElement('style');\n    // Collect styles into a single style. This helps us make sure ShadyCSS\n    // manipulations will not prevent us from being able to fix up template\n    // part indices.\n    // NOTE: collecting styles is inefficient for browsers but ShadyCSS\n    // currently does this anyway. When it does not, this should be changed.\n    for (let i = 0; i < styles.length; i++) {\n        const style = styles[i];\n        style.parentNode.removeChild(style);\n        condensedStyle.textContent += style.textContent;\n    }\n    // Remove styles from nested templates in this scope.\n    removeStylesFromLitTemplates(scopeName);\n    // And then put the condensed style into the \"root\" template passed in as\n    // `template`.\n    insertNodeIntoTemplate(template, condensedStyle, template.element.content.firstChild);\n    // Note, it's important that ShadyCSS gets the template that `lit-html`\n    // will actually render so that it can update the style inside when\n    // needed (e.g. @apply native Shadow DOM case).\n    window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n    if (window.ShadyCSS.nativeShadow) {\n        // When in native Shadow DOM, re-add styling to rendered content using\n        // the style ShadyCSS produced.\n        const style = template.element.content.querySelector('style');\n        renderedDOM.insertBefore(style.cloneNode(true), renderedDOM.firstChild);\n    }\n    else {\n        // When not in native Shadow DOM, at this point ShadyCSS will have\n        // removed the style from the lit template and parts will be broken as a\n        // result. To fix this, we put back the style node ShadyCSS removed\n        // and then tell lit to remove that node from the template.\n        // NOTE, ShadyCSS creates its own style so we can safely add/remove\n        // `condensedStyle` here.\n        template.element.content.insertBefore(condensedStyle, template.element.content.firstChild);\n        const removes = new Set();\n        removes.add(condensedStyle);\n        removeNodesFromTemplate(template, removes);\n    }\n};\n/**\n * Extension to the standard `render` method which supports rendering\n * to ShadowRoots when the ShadyDOM (https://github.com/webcomponents/shadydom)\n * and ShadyCSS (https://github.com/webcomponents/shadycss) polyfills are used\n * or when the webcomponentsjs\n * (https://github.com/webcomponents/webcomponentsjs) polyfill is used.\n *\n * Adds a `scopeName` option which is used to scope element DOM and stylesheets\n * when native ShadowDOM is unavailable. The `scopeName` will be added to\n * the class attribute of all rendered DOM. In addition, any style elements will\n * be automatically re-written with this `scopeName` selector and moved out\n * of the rendered DOM and into the document `<head>`.\n *\n * It is common to use this render method in conjunction with a custom element\n * which renders a shadowRoot. When this is done, typically the element's\n * `localName` should be used as the `scopeName`.\n *\n * In addition to DOM scoping, ShadyCSS also supports a basic shim for css\n * custom properties (needed only on older browsers like IE11) and a shim for\n * a deprecated feature called `@apply` that supports applying a set of css\n * custom properties to a given location.\n *\n * Usage considerations:\n *\n * * Part values in `<style>` elements are only applied the first time a given\n * `scopeName` renders. Subsequent changes to parts in style elements will have\n * no effect. Because of this, parts in style elements should only be used for\n * values that will never change, for example parts that set scope-wide theme\n * values or parts which render shared style elements.\n *\n * * Note, due to a limitation of the ShadyDOM polyfill, rendering in a\n * custom element's `constructor` is not supported. Instead rendering should\n * either done asynchronously, for example at microtask timing (for example\n * `Promise.resolve()`), or be deferred until the first time the element's\n * `connectedCallback` runs.\n *\n * Usage considerations when using shimmed custom properties or `@apply`:\n *\n * * Whenever any dynamic changes are made which affect\n * css custom properties, `ShadyCSS.styleElement(element)` must be called\n * to update the element. There are two cases when this is needed:\n * (1) the element is connected to a new parent, (2) a class is added to the\n * element that causes it to match different custom properties.\n * To address the first case when rendering a custom element, `styleElement`\n * should be called in the element's `connectedCallback`.\n *\n * * Shimmed custom properties may only be defined either for an entire\n * shadowRoot (for example, in a `:host` rule) or via a rule that directly\n * matches an element with a shadowRoot. In other words, instead of flowing from\n * parent to child as do native css custom properties, shimmed custom properties\n * flow only from shadowRoots to nested shadowRoots.\n *\n * * When using `@apply` mixing css shorthand property names with\n * non-shorthand names (for example `border` and `border-width`) is not\n * supported.\n */\nexport const render = (result, container, options) => {\n    const scopeName = options.scopeName;\n    const hasRendered = parts.has(container);\n    const needsScoping = container instanceof ShadowRoot &&\n        compatibleShadyCSSVersion && result instanceof TemplateResult;\n    // Handle first render to a scope specially...\n    const firstScopeRender = needsScoping && !shadyRenderSet.has(scopeName);\n    // On first scope render, render into a fragment; this cannot be a single\n    // fragment that is reused since nested renders can occur synchronously.\n    const renderContainer = firstScopeRender ? document.createDocumentFragment() : container;\n    litRender(result, renderContainer, Object.assign({ templateFactory: shadyTemplateFactory(scopeName) }, options));\n    // When performing first scope render,\n    // (1) We've rendered into a fragment so that there's a chance to\n    // `prepareTemplateStyles` before sub-elements hit the DOM\n    // (which might cause them to render based on a common pattern of\n    // rendering in a custom element's `connectedCallback`);\n    // (2) Scope the template with ShadyCSS one time only for this scope.\n    // (3) Render the fragment into the container and make sure the\n    // container knows its `part` is the one we just rendered. This ensures\n    // DOM will be re-used on subsequent renders.\n    if (firstScopeRender) {\n        const part = parts.get(renderContainer);\n        parts.delete(renderContainer);\n        if (part.value instanceof TemplateInstance) {\n            prepareTemplateStyles(renderContainer, part.value.template, scopeName);\n        }\n        removeNodes(container, container.firstChild);\n        container.appendChild(renderContainer);\n        parts.set(container, part);\n    }\n    // After elements have hit the DOM, update styling if this is the\n    // initial render to this container.\n    // This is needed whenever dynamic changes are made so it would be\n    // safest to do every render; however, this would regress performance\n    // so we leave it up to the user to call `ShadyCSSS.styleElement`\n    // for dynamic changes.\n    if (!hasRendered && needsScoping) {\n        window.ShadyCSS.styleElement(container.host);\n    }\n};\n//# =shady-render.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/template-factory.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { marker, Template } from './template.js';\n/**\n * The default TemplateFactory which caches Templates keyed on\n * result.type and result.strings.\n */\nexport function templateFactory(result) {\n    let templateCache = templateCaches.get(result.type);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(result.type, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    // If the TemplateStringsArray is new, generate a key from the strings\n    // This key is shared between all templates with identical content\n    const key = result.strings.join(marker);\n    // Check if we already have a Template for this key\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        // If we have not seen this key before, create a new Template\n        template = new Template(result, result.getTemplateElement());\n        // Cache the Template for this key\n        templateCache.keyString.set(key, template);\n    }\n    // Cache all future queries for this TemplateStringsArray\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n}\nexport const templateCaches = new Map();\n//# =template-factory.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/template-instance.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n    constructor(template, processor, options) {\n        this._parts = [];\n        this.template = template;\n        this.processor = processor;\n        this.options = options;\n    }\n    update(values) {\n        let i = 0;\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.setValue(values[i]);\n            }\n            i++;\n        }\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.commit();\n            }\n        }\n    }\n    _clone() {\n        // When using the Custom Elements polyfill, clone the node, rather than\n        // importing it, to keep the fragment in the template's document. This\n        // leaves the fragment inert so custom elements won't upgrade and\n        // potentially modify their contents by creating a polyfilled ShadowRoot\n        // while we traverse the tree.\n        const fragment = isCEPolyfill ?\n            this.template.element.content.cloneNode(true) :\n            document.importNode(this.template.element.content, true);\n        const parts = this.template.parts;\n        let partIndex = 0;\n        let nodeIndex = 0;\n        const _prepareInstance = (fragment) => {\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            let node = walker.nextNode();\n            // Loop through all the nodes and parts of a template\n            while (partIndex < parts.length && node !== null) {\n                const part = parts[partIndex];\n                // Consecutive Parts may have the same node index, in the case of\n                // multiple bound attributes on an element. So each iteration we either\n                // increment the nodeIndex, if we aren't on a node with a part, or the\n                // partIndex if we are. By not incrementing the nodeIndex when we find a\n                // part, we allow for the next part to be associated with the current\n                // node if neccessasry.\n                if (!isTemplatePartActive(part)) {\n                    this._parts.push(undefined);\n                    partIndex++;\n                }\n                else if (nodeIndex === part.index) {\n                    if (part.type === 'node') {\n                        const part = this.processor.handleTextExpression(this.options);\n                        part.insertAfterNode(node.previousSibling);\n                        this._parts.push(part);\n                    }\n                    else {\n                        this._parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n                    }\n                    partIndex++;\n                }\n                else {\n                    nodeIndex++;\n                    if (node.nodeName === 'TEMPLATE') {\n                        _prepareInstance(node.content);\n                    }\n                    node = walker.nextNode();\n                }\n            }\n        };\n        _prepareInstance(fragment);\n        if (isCEPolyfill) {\n            document.adoptNode(fragment);\n            customElements.upgrade(fragment);\n        }\n        return fragment;\n    }\n}\n//# =template-instance.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# =template-processor.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/template-result.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n    constructor(strings, values, type, processor) {\n        this.strings = strings;\n        this.values = values;\n        this.type = type;\n        this.processor = processor;\n    }\n    /**\n     * Returns a string of HTML used to create a `<template>` element.\n     */\n    getHTML() {\n        const endIndex = this.strings.length - 1;\n        let html = '';\n        for (let i = 0; i < endIndex; i++) {\n            const s = this.strings[i];\n            // This exec() call does two things:\n            // 1) Appends a suffix to the bound attribute name to opt out of special\n            // attribute value parsing that IE11 and Edge do, like for style and\n            // many SVG attributes. The Template class also appends the same suffix\n            // when looking up attributes to create Parts.\n            // 2) Adds an unquoted-attribute-safe marker for the first expression in\n            // an attribute. Subsequent attribute expressions will use node markers,\n            // and this is safe since attributes with multiple expressions are\n            // guaranteed to be quoted.\n            const match = lastAttributeNameRegex.exec(s);\n            if (match) {\n                // We're starting a new bound attribute.\n                // Add the safe attribute suffix, and use unquoted-attribute-safe\n                // marker.\n                html += s.substr(0, match.index) + match[1] + match[2] +\n                    boundAttributeSuffix + match[3] + marker;\n            }\n            else {\n                // We're either in a bound node, or trailing bound attribute.\n                // Either way, nodeMarker is safe to use.\n                html += s + nodeMarker;\n            }\n        }\n        return html + this.strings[endIndex];\n    }\n    getTemplateElement() {\n        const template = document.createElement('template');\n        template.innerHTML = this.getHTML();\n        return template;\n    }\n}\n/**\n * A TemplateResult for SVG fragments.\n *\n * This class wraps HTMl in an `<svg>` tag in order to parse its contents in the\n * SVG namespace, then modifies the template to remove the `<svg>` tag so that\n * clones only container the original fragment.\n */\nexport class SVGTemplateResult extends TemplateResult {\n    getHTML() {\n        return `<svg>${super.getHTML()}</svg>`;\n    }\n    getTemplateElement() {\n        const template = super.getTemplateElement();\n        const content = template.content;\n        const svgElement = content.firstChild;\n        content.removeChild(svgElement);\n        reparentNodes(content, svgElement.firstChild);\n        return template;\n    }\n}\n//# =template-result.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lib/template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = `<!--${marker}-->`;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n    constructor(result, element) {\n        this.parts = [];\n        this.element = element;\n        let index = -1;\n        let partIndex = 0;\n        const nodesToRemove = [];\n        const _prepareTemplate = (template) => {\n            const content = template.content;\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            // Keeps track of the last index associated with a part. We try to delete\n            // unnecessary nodes, but we never want to associate two different parts\n            // to the same index. They must have a constant node between.\n            let lastPartIndex = 0;\n            while (walker.nextNode()) {\n                index++;\n                const node = walker.currentNode;\n                if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n                    if (node.hasAttributes()) {\n                        const attributes = node.attributes;\n                        // Per\n                        // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n                        // attributes are not guaranteed to be returned in document order.\n                        // In particular, Edge/IE can return them out of order, so we cannot\n                        // assume a correspondance between part index and attribute index.\n                        let count = 0;\n                        for (let i = 0; i < attributes.length; i++) {\n                            if (attributes[i].value.indexOf(marker) >= 0) {\n                                count++;\n                            }\n                        }\n                        while (count-- > 0) {\n                            // Get the template literal section leading up to the first\n                            // expression in this attribute\n                            const stringForPart = result.strings[partIndex];\n                            // Find the attribute name\n                            const name = lastAttributeNameRegex.exec(stringForPart)[2];\n                            // Find the corresponding attribute\n                            // All bound attributes have had a suffix added in\n                            // TemplateResult#getHTML to opt out of special attribute\n                            // handling. To look up the attribute value we also need to add\n                            // the suffix.\n                            const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n                            const attributeValue = node.getAttribute(attributeLookupName);\n                            const strings = attributeValue.split(markerRegex);\n                            this.parts.push({ type: 'attribute', index, name, strings });\n                            node.removeAttribute(attributeLookupName);\n                            partIndex += strings.length - 1;\n                        }\n                    }\n                    if (node.tagName === 'TEMPLATE') {\n                        _prepareTemplate(node);\n                    }\n                }\n                else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n                    const data = node.data;\n                    if (data.indexOf(marker) >= 0) {\n                        const parent = node.parentNode;\n                        const strings = data.split(markerRegex);\n                        const lastIndex = strings.length - 1;\n                        // Generate a new text node for each literal section\n                        // These nodes are also used as the markers for node parts\n                        for (let i = 0; i < lastIndex; i++) {\n                            parent.insertBefore((strings[i] === '') ? createMarker() :\n                                document.createTextNode(strings[i]), node);\n                            this.parts.push({ type: 'node', index: ++index });\n                        }\n                        // If there's no text, we must insert a comment to mark our place.\n                        // Else, we can trust it will stick around after cloning.\n                        if (strings[lastIndex] === '') {\n                            parent.insertBefore(createMarker(), node);\n                            nodesToRemove.push(node);\n                        }\n                        else {\n                            node.data = strings[lastIndex];\n                        }\n                        // We have a part for each match found\n                        partIndex += lastIndex;\n                    }\n                }\n                else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n                    if (node.data === marker) {\n                        const parent = node.parentNode;\n                        // Add a new marker node to be the startNode of the Part if any of\n                        // the following are true:\n                        //  * We don't have a previousSibling\n                        //  * The previousSibling is already the start of a previous part\n                        if (node.previousSibling === null || index === lastPartIndex) {\n                            index++;\n                            parent.insertBefore(createMarker(), node);\n                        }\n                        lastPartIndex = index;\n                        this.parts.push({ type: 'node', index });\n                        // If we don't have a nextSibling, keep this node so we have an end.\n                        // Else, we can remove it to save future costs.\n                        if (node.nextSibling === null) {\n                            node.data = '';\n                        }\n                        else {\n                            nodesToRemove.push(node);\n                            index--;\n                        }\n                        partIndex++;\n                    }\n                    else {\n                        let i = -1;\n                        while ((i = node.data.indexOf(marker, i + 1)) !==\n                            -1) {\n                            // Comment node has a binding marker inside, make an inactive part\n                            // The binding won't work, but subsequent bindings will\n                            // TODO (justinfagnani): consider whether it's even worth it to\n                            // make bindings in comments work\n                            this.parts.push({ type: 'node', index: -1 });\n                        }\n                    }\n                }\n            }\n        };\n        _prepareTemplate(element);\n        // Remove text binding nodes after the walk to not disturb the TreeWalker\n        for (const n of nodesToRemove) {\n            n.parentNode.removeChild(n);\n        }\n    }\n}\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#attributes-0\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-character\n *\n * So an attribute is:\n *  * The name: any character except a control character, space character, ('),\n *    (\"), \">\", \"=\", or \"/\"\n *  * Followed by zero or more space characters\n *  * Followed by \"=\"\n *  * Followed by zero or more space characters\n *  * Followed by:\n *    * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n *    * (\") then any non-(\"), or\n *    * (') then any non-(')\n */\nexport const lastAttributeNameRegex = /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \\x09\\x0a\\x0c\\x0d\"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# =template.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/lit-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * -  [[html]]\n * -  [[svg]]\n * -  [[render]]\n *\n * @module lit-html\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { defaultTemplateProcessor } from './lib/default-template-processor.js';\nimport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { DefaultTemplateProcessor, defaultTemplateProcessor } from './lib/default-template-processor.js';\nexport { directive, isDirective } from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport { removeNodes, reparentNodes } from './lib/dom.js';\nexport { noChange, nothing } from './lib/part.js';\nexport { AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isPrimitive, NodePart, PropertyCommitter, PropertyPart } from './lib/parts.js';\nexport { parts, render } from './lib/render.js';\nexport { templateCaches, templateFactory } from './lib/template-factory.js';\nexport { TemplateInstance } from './lib/template-instance.js';\nexport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { createMarker, isTemplatePartActive, Template } from './lib/template.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.0.0');\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings, ...values) => new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings, ...values) => new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n//# =lit-html.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element/lit-html/polyfills/template_polyfill.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A lightweight <template> polyfill that supports minimum features to cover\n * lit-html use cases. It provides an alternate route in case <template> is not\n * natively supported.\n * Please note that nested template, cloning template node and innerHTML getter\n * do NOT work with this polyfill.\n * If it can not fullfill your requirement, please consider using the full\n * polyfill: https://github.com/webcomponents/template\n */\nexport const initTemplatePolyfill = (forced = false) => {\n    if (typeof HTMLTemplateElement !== 'undefined' && !forced) {\n        return;\n    }\n    const contentDoc = document.implementation.createHTMLDocument('template');\n    // tslint:disable-next-line:no-any\n    const upgrade = (template) => {\n        template.content = contentDoc.createDocumentFragment();\n        Object.defineProperty(template, 'innerHTML', {\n            set: function (text) {\n                contentDoc.body.innerHTML = text;\n                const content = this.content;\n                while (content.firstChild) {\n                    content.removeChild(content.firstChild);\n                }\n                const body = contentDoc.body;\n                while (body.firstChild) {\n                    content.appendChild(body.firstChild);\n                }\n            },\n            configurable: true\n        });\n    };\n    const capturedCreateElement = Document.prototype.createElement;\n    Document.prototype.createElement = function createElement(tagName, options) {\n        let el = capturedCreateElement.call(this, tagName, options);\n        if (el.localName === 'template') {\n            el = capturedCreateElement.call(this, 'div');\n            upgrade(el);\n        }\n        return el;\n    };\n};\n//# =template_polyfill.js.map"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element-router/README.md",
    "content": "# LitElement Router\nA simple and lightweight LitElement Router.\n\n[![Coverage Status](https://coveralls.io/repos/github/hamedasemi/lit-element-router/badge.svg?branch=mainline)](https://coveralls.io/github/hamedasemi/lit-element-router?branch=mainline)\n[![npm version](https://badge.fury.io/js/lit-element-router.svg)](https://badge.fury.io/js/lit-element-router)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/lit-element-router)\n[![Known Vulnerabilities](https://snyk.io/test/github/hamedasemi/lit-element-router/badge.svg?targetFile=package.json)](https://snyk.io/test/github/hamedasemi/lit-element-router?targetFile=package.json)\n[![CircleCI](https://circleci.com/gh/hamedasemi/lit-element-router/tree/mainline.svg?style=svg)](https://circleci.com/gh/hamedasemi/lit-element-router/tree/mainline)\n\n\n## Installation\n\n```sh\nnpm install lit-element-router --save\n```\n\n## Usage\n\n### Working example\nYou can find a working project on StackBlitz https://stackblitz.com/edit/lit-element-router\n\n### Minimal\n```js\nimport { LitElement, html } from 'lit-element';\nimport { routerMixin } from 'lit-element-router';\n\nclass MyApp extends routerMixin(LitElement) {\n\n    static get routes() {\n        return [{\n            name: 'home',\n            pattern: '',\n            data: { title: 'Home' }\n        }, {\n            name: 'info',\n            pattern: 'info'\n        }, {\n            name: 'user',\n            pattern: 'user/:id'\n        }, {\n            name: 'not-found',\n            pattern: '*'\n        }];\n    }\n\n    onRoute(route, params, query, data) {\n        console.log(route, params, query, data)\n    }\n}\n\ncustomElements.define('my-app', MyApp);\n```   \n\n\n    \n# Complete Example Using JavaScript Mixins in Details\n\n## Dont like mixins check out other examples\nDon't want to use mixins interface you cane use a simple version in this tutorial:  https://github.com/hamedasemi/lit-element-router/blob/mainline/README_NOT_MIXIN.md\n\n## Make any arbitary components or elements to a router using router mixins method\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerMixin } from 'lit-element-router';\n\nclass MyApp extends routerMixin(LitElement) {\n\n}\n\ncustomElements.define('my-app', MyApp);\n```\n\n## Register routes and the onRoute function\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerMixin } from 'lit-element-router';\n\nclass MyApp extends routerMixin(LitElement) {\n    static get routes() {\n        return [{\n            name: 'home',\n            pattern: ''\n        }, {\n            name: 'info',\n            pattern: 'info'\n        }, {\n            name: 'user',\n            pattern: 'user/:id'\n        }, {\n            name: 'not-found',\n            pattern: '*'\n        }];\n    }\n\n    onRoute(route, params, query, data) {\n        this.route = route;\n        this.params = params;\n    }\n}\n\ncustomElements.define('my-app', MyApp);\n```\n\n\n## Make any arbitary components or elements to a router outlet using router outlet mixins method\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerOutletMixin } from 'lit-element-router';\n\nexport class AnyArbitaryLitElement extends routerOutletMixin(LitElement) {\n    \n}\n\ncustomElements.define('any-arbitary-lit-element', AnyArbitaryLitElement);\n```\n\n## Put the components under router outlet\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerMixin } from 'lit-element-router';\n\nclass MyApp extends routerMixin(LitElement) {\n    static get routes() {\n        return [{\n            name: 'home',\n            pattern: ''\n        }, {\n            name: 'info',\n            pattern: 'info'\n        }, {\n            name: 'user',\n            pattern: 'user/:id'\n        }, {\n            name: 'not-found',\n            pattern: '*'\n        }];\n    }\n\n    onRoute(route, params, query, data) {\n        this.route = route;\n        this.params = params;\n    }\n\n    render() {\n        return html`\n            <any-arbitary-lit-element current-route='${this.route}'>\n                <div route='home'>Home any-arbitary-lit-element</div>\n                <div route='info'>mY Info any-arbitary-lit-element</div>\n                <div route='user'>User ${this.params.id} any-arbitary-lit-element</div>\n                <div route='not-authorized'>Not Authorized any-arbitary-lit-element</div>\n                <div route='not-found'>Not Found any-arbitary-lit-element</div>\n            </any-arbitary-lit-element>\n        `;\n}\n\ncustomElements.define('my-app', MyApp);\n```\n\n\n## Make any arbitary components or elements to a router link using router link mixins method\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerLinkMixin } from 'lit-element-router';\n\nexport class AnArbitaryLitElement extends routerLinkMixin(LitElement) {\n    \n}\n\ncustomElements.define('an-arbitary-lit-element', AnArbitaryLitElement);\n```\n\n## Navigate using the router navigate method\n```javascript\nimport { LitElement, html } from 'lit-element';\nimport { routerLinkMixin } from 'lit-element-router';\n\nexport class AnArbitaryLitElement extends routerLinkMixin(LitElement) {\n    constructor() {\n        super()\n        this.href = ''\n    }\n    static get properties() {\n        return {\n            href: { type: String }\n        }\n    }\n    render() {\n        return html`\n            <a href='${this.href}' @click='${this.linkClick}'><slot></slot></a>\n        `\n    }\n    linkClick(event) {\n        event.preventDefault();\n        this.navigate(this.href);\n    }\n}\n\ncustomElements.define('an-arbitary-lit-element', AnArbitaryLitElement);\n```\n\n\n## Browsers support\n\n| [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png\" alt=\"IE / Edge\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png\" alt=\"Firefox\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png\" alt=\"Chrome\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png\" alt=\"Safari\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari-ios/safari-ios_48x48.png\" alt=\"iOS Safari\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>iOS Safari | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/samsung-internet/samsung-internet_48x48.png\" alt=\"Samsung\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>Samsung | [<img src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png\" alt=\"Opera\" width=\"24px\" height=\"24px\" />](http://godban.github.io/browsers-support-badges/)</br>Opera |\n| --------- | --------- | --------- | --------- | --------- | --------- | --------- |\n| IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions\n\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element-router/index.js",
    "content": "import { parseParams, parseQuery, testRoute } from './utility/router-utility.js';\n\nexport let routerMixin = (superclass) => class extends superclass {\n    static get properties() {\n        return {\n            route: { type: String, reflect: true, attribute: 'route' },\n            canceled: { type: Boolean }\n        }\n    }\n\n    firstUpdated() {\n        \n        this.router(this.constructor.routes, (...args) => this.onRoute(...args));\n        window.addEventListener('route', () => {\n            this.router(this.constructor.routes, (...args) => this.onRoute(...args));\n        })\n\n        window.onpopstate = () => {\n            window.dispatchEvent(new CustomEvent('route'));\n        }\n        if (super.firstUpdated) super.firstUpdated();\n    }\n\n    router(routes, callback) {\n        this.canceled = true;\n\n        const uri = decodeURI(window.location.pathname);\n        const querystring = decodeURI(window.location.search);\n\n        let notFoundRoute = routes.filter(route => route.pattern === '*')[0];\n\n        routes = routes.filter(route => route.pattern !== '*' && testRoute(uri, route.pattern));\n\n        if (routes.length) {\n            let route = routes[0];\n            route.params = parseParams(route.pattern, uri);\n            route.query = parseQuery(querystring);\n\n            if (route.guard && typeof route.guard === 'function') {\n\n                this.canceled = false\n                Promise.resolve(route.guard())\n                    .then((allowed) => {\n                        if (!this.canceled) {\n                            if (allowed) {\n                                route.callback && route.callback(route.name, route.params, route.query, route.data)\n                                callback(route.name, route.params, route.query, route.data);\n                            } else {\n                                route.callback && route.callback('not-authorized', route.params, route.query, route.data)\n                                callback('not-authorized', {}, {}, {});\n                            }\n                        }\n                    })\n            } else {\n                route.callback && route.callback(route.name, route.params, route.query, route.data)\n                callback(route.name, route.params, route.query, route.data);\n            }\n        } else if (notFoundRoute) {\n            notFoundRoute.callback && notFoundRoute.callback(notFoundRoute.name, {}, {}, {})\n            callback(notFoundRoute.name, {}, {}, {});\n        } else {\n            callback('not-found', {}, {}, {});\n        }\n\n        if (super.router) super.router();\n    }\n};\n\nexport let routerLinkMixin = (superclass) => class extends superclass {\n\n    navigate(href) {\n        window.history.pushState({}, null, href + window.location.search);\n        window.dispatchEvent(new CustomEvent('route'));\n\n        if (super.navigate) super.navigate();\n    }\n};\n\nexport let routerOutletMixin = (superclass) => class extends superclass {\n\n    static get properties() {\n        return {\n            currentRoute: { type: String, reflect: true, attribute: 'current-route' }\n        }\n    }\n\n    updated(updatedProperties) {\n        updatedProperties.has('currentRoute') && this.routerOutlet();\n        if (super.updated) super.updated();\n    }\n\n    firstUpdated() {\n        this.routerOutlet();\n    }\n\n    routerOutlet() {\n        Array.from(this.shadowRoot.querySelectorAll(`[route]`)).map((selected) => {\n            this.appendChild(selected);\n        });\n        if (this.currentRoute) {\n            Array.from(this.querySelectorAll(`[route~=${this.currentRoute}]`)).map((selected) => {\n                this.shadowRoot.appendChild(selected)\n            });\n        }\n\n        if (super.routerOutlet) super.routerOutlet();\n    }\n};"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element-router/package.json",
    "content": "{\n  \"name\": \"lit-element-router\",\n  \"version\": \"1.2.3\",\n  \"main\": \"lit-element-router.js\",\n  \"scripts\": {\n    \"demo\": \"polymer serve\",\n    \"sync\": \"browser-sync start --proxy localhost:8081 --watch --files ./**/*.* --ignore node_modules --logLevel debug\",\n    \"test\": \"nyc mocha --require @babel/register './{,!(node_modules)/**/}*.test.js' --exit\",\n    \"report\": \"npm test && nyc report --reporter=text-lcov | COVERALLS_REPO_TOKEN=$COVERALLS_TOKEN coveralls\",\n    \"ver\": \"npm version prerelease --preid=beta\",\n    \"risk\": \"snyk monitor\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/hamedasemi/lit-element-router.git\"\n  },\n  \"keywords\": [\n    \"lit\",\n    \"element\",\n    \"router\",\n    \"lit-element\",\n    \"lit-element-router\",\n    \"regexp\"\n  ],\n  \"author\": \"hamedabolghasemi\",\n  \"license\": \"ISC\",\n  \"bugs\": {\n    \"url\": \"https://github.com/hamedasemi/lit-element-router/issues\"\n  },\n  \"homepage\": \"https://github.com/hamedasemi/lit-element-router#readme\",\n  \"devDependencies\": {\n    \"@babel/core\": \"^7.2.2\",\n    \"@babel/preset-env\": \"^7.3.1\",\n    \"@babel/register\": \"^7.0.0\",\n    \"@webcomponents/webcomponentsjs\": \"^2.2.7\",\n    \"asserts\": \"^4.0.2\",\n    \"chai\": \"^4.2.0\",\n    \"coveralls\": \"^3.0.2\",\n    \"lit-element\": \"^2.0.1\",\n    \"mocha\": \"^5.2.0\",\n    \"nyc\": \"^13.2.0\",\n    \"snyk\": \"^1.126.0\"\n  },\n  \"dependencies\": {\n    \"lit-element\": \"^2.0.1\"\n  },\n  \"nyc\": {\n    \"temp-dir\": \"./node_modules/.cache/alternative-tmp\"\n  }\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lit-element-router/utility/router-utility.js",
    "content": "/**\n * \n * @param {String} str - The uri that has extra slashes\n */\nexport function stripExtraTrailingSlash(str) {\n  while (str.length !== 1 && str.substr(-1) === '/') {\n      str = str.substr(0, str.length - 1);\n  }\n  return str;\n}\n\n/**\n* \n* @param {String} querystring - The author of the book.\n*/\nexport function parseQuery(querystring) {\n  return querystring ? JSON.parse('{\"' + querystring.substring(1).replace(/&/g, '\",\"').replace(/=/g, '\":\"') + '\"}') : {}\n}\n\n/**\n* Desc\n* @param {String} pattern - The pattern\n* @param {String} uri - The current uri\n* @return {Object} - The uri params object\n*/\nexport function parseParams(pattern, uri) {\n  let params = {}\n\n  const patternArray = pattern.split('/').filter((path) => { return path != '' })\n  const uriArray = uri.split('/').filter((path) => { return path != '' })\n\n  patternArray.map((pattern, i) => {\n      if (/^:/.test(pattern)) {\n          params[pattern.substring(1)] = uriArray[i]\n      }\n  })\n  return params\n}\n\n/**\n* À-ÖØ-öø-ÿ\n* @param {*} pattern \n*/\nexport function patternToRegExp(pattern) {\n  if (pattern) {\n      return new RegExp(pattern.replace(/:[^\\s/]+/g, '([\\\\w\\u00C0-\\u00D6\\u00D8-\\u00f6\\u00f8-\\u00ff-]+)') + '(|/)$');\n  } else {\n      return new RegExp('(^$|^/$)');\n  }\n}\n\nexport function testRoute(uri, pattern) {\n  if (patternToRegExp(pattern).test(uri)) {\n      return true;\n  }\n}"
  },
  {
    "path": "app/userland/app-stdlib/vendor/lodash.debounce.js",
    "content": "/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nconst now = Date.now.bind(Date)\nexport default function debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (options && typeof options === 'object') {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? Math.max(options.maxWait || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/markdown-it.js",
    "content": "/*! markdown-it 10.0.0 https://github.com//markdown-it/markdown-it @license MIT */\nconst define = (function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/lib/maps/entities.json');\n\n},{\"entities/lib/maps/entities.json\":52}],2:[function(require,module,exports){\n// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'meta',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'section',\n  'source',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n];\n\n},{}],3:[function(require,module,exports){\n// Regexps to match html elements\n\n'use strict';\n\nvar attr_name     = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted      = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value  = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute   = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag    = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag   = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment     = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar processing  = '<[?].*?[?]>';\nvar declaration = '<![A-Z]+\\\\s+[^>]*>';\nvar cdata       = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n                        '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n\n},{}],4:[function(require,module,exports){\n// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n  return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n\n  sources.forEach(function (source) {\n    if (!source) { return; }\n\n    if (typeof source !== 'object') {\n      throw new TypeError(source + 'must be object');\n    }\n\n    Object.keys(source).forEach(function (key) {\n      obj[key] = source[key];\n    });\n  });\n\n  return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n  return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n  /*eslint no-bitwise:0*/\n  // broken sequence\n  if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n  // never used\n  if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n  if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n  // control codes\n  if (c >= 0x00 && c <= 0x08) { return false; }\n  if (c === 0x0B) { return false; }\n  if (c >= 0x0E && c <= 0x1F) { return false; }\n  if (c >= 0x7F && c <= 0x9F) { return false; }\n  // out of range\n  if (c > 0x10FFFF) { return false; }\n  return true;\n}\n\nfunction fromCodePoint(c) {\n  /*eslint no-bitwise:0*/\n  if (c > 0xffff) {\n    c -= 0x10000;\n    var surrogate1 = 0xd800 + (c >> 10),\n        surrogate2 = 0xdc00 + (c & 0x3ff);\n\n    return String.fromCharCode(surrogate1, surrogate2);\n  }\n  return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE  = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE       = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n  var code = 0;\n\n  if (has(entities, name)) {\n    return entities[name];\n  }\n\n  if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n    code = name[1].toLowerCase() === 'x' ?\n      parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n    if (isValidEntityCode(code)) {\n      return fromCodePoint(code);\n    }\n  }\n\n  return match;\n}\n\n/*function replaceEntities(str) {\n  if (str.indexOf('&') < 0) { return str; }\n\n  return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n  if (str.indexOf('\\\\') < 0) { return str; }\n  return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n  if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n  return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n    if (escaped) { return escaped; }\n    return replaceEntityPattern(match, entity);\n  });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;'\n};\n\nfunction replaceUnsafeChar(ch) {\n  return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n  if (HTML_ESCAPE_TEST_RE.test(str)) {\n    return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n  }\n  return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n  return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n  switch (code) {\n    case 0x09:\n    case 0x20:\n      return true;\n  }\n  return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n  if (code >= 0x2000 && code <= 0x200A) { return true; }\n  switch (code) {\n    case 0x09: // \\t\n    case 0x0A: // \\n\n    case 0x0B: // \\v\n    case 0x0C: // \\f\n    case 0x0D: // \\r\n    case 0x20:\n    case 0xA0:\n    case 0x1680:\n    case 0x202F:\n    case 0x205F:\n    case 0x3000:\n      return true;\n  }\n  return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n  return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n  switch (ch) {\n    case 0x21/* ! */:\n    case 0x22/* \" */:\n    case 0x23/* # */:\n    case 0x24/* $ */:\n    case 0x25/* % */:\n    case 0x26/* & */:\n    case 0x27/* ' */:\n    case 0x28/* ( */:\n    case 0x29/* ) */:\n    case 0x2A/* * */:\n    case 0x2B/* + */:\n    case 0x2C/* , */:\n    case 0x2D/* - */:\n    case 0x2E/* . */:\n    case 0x2F/* / */:\n    case 0x3A/* : */:\n    case 0x3B/* ; */:\n    case 0x3C/* < */:\n    case 0x3D/* = */:\n    case 0x3E/* > */:\n    case 0x3F/* ? */:\n    case 0x40/* @ */:\n    case 0x5B/* [ */:\n    case 0x5C/* \\ */:\n    case 0x5D/* ] */:\n    case 0x5E/* ^ */:\n    case 0x5F/* _ */:\n    case 0x60/* ` */:\n    case 0x7B/* { */:\n    case 0x7C/* | */:\n    case 0x7D/* } */:\n    case 0x7E/* ~ */:\n      return true;\n    default:\n      return false;\n  }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n  // Trim and collapse whitespace\n  //\n  str = str.trim().replace(/\\s+/g, ' ');\n\n  // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n  // fixed in v12 (couldn't find any details).\n  //\n  // So treat this one as a special case\n  // (remove this when node v10 is no longer supported).\n  //\n  if ('ẞ'.toLowerCase() === 'Ṿ') {\n    str = str.replace(/ẞ/g, 'ß');\n  }\n\n  // .toLowerCase().toUpperCase() should get rid of all differences\n  // between letter variants.\n  //\n  // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n  // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n  // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n  // uppercased versions).\n  //\n  // Here's an example showing how it happens. Lets take greek letter omega:\n  // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n  //\n  // Unicode entries:\n  // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n  // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n  // 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n  // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;\n  //\n  // Case-insensitive comparison should treat all of them as equivalent.\n  //\n  // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n  // and .toUpperCase() doesn't change ϴ (already uppercase).\n  //\n  // Applying first lower then upper case normalizes any character:\n  // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n  //\n  // Note: this is equivalent to unicode case folding; unicode normalization\n  // is a different step that is not required here.\n  //\n  // Final result should be uppercased, because it's later stored in an object\n  // (this avoid a conflict with Object.prototype members,\n  // most notably, `__proto__`)\n  //\n  return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib                 = {};\nexports.lib.mdurl           = require('mdurl');\nexports.lib.ucmicro         = require('uc.micro');\n\nexports.assign              = assign;\nexports.isString            = isString;\nexports.has                 = has;\nexports.unescapeMd          = unescapeMd;\nexports.unescapeAll         = unescapeAll;\nexports.isValidEntityCode   = isValidEntityCode;\nexports.fromCodePoint       = fromCodePoint;\n// exports.replaceEntities     = replaceEntities;\nexports.escapeHtml          = escapeHtml;\nexports.arrayReplaceAt      = arrayReplaceAt;\nexports.isSpace             = isSpace;\nexports.isWhiteSpace        = isWhiteSpace;\nexports.isMdAsciiPunct      = isMdAsciiPunct;\nexports.isPunctChar         = isPunctChar;\nexports.escapeRE            = escapeRE;\nexports.normalizeReference  = normalizeReference;\n\n},{\"./entities\":1,\"mdurl\":58,\"uc.micro\":65,\"uc.micro/categories/P/regex\":63}],5:[function(require,module,exports){\n// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel       = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle       = require('./parse_link_title');\n\n},{\"./parse_link_destination\":6,\"./parse_link_label\":7,\"./parse_link_title\":8}],6:[function(require,module,exports){\n// Parse link destination\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n  var code, level,\n      lines = 0,\n      start = pos,\n      result = {\n        ok: false,\n        pos: 0,\n        lines: 0,\n        str: ''\n      };\n\n  if (str.charCodeAt(pos) === 0x3C /* < */) {\n    pos++;\n    while (pos < max) {\n      code = str.charCodeAt(pos);\n      if (code === 0x0A /* \\n */) { return result; }\n      if (code === 0x3E /* > */) {\n        result.pos = pos + 1;\n        result.str = unescapeAll(str.slice(start + 1, pos));\n        result.ok = true;\n        return result;\n      }\n      if (code === 0x5C /* \\ */ && pos + 1 < max) {\n        pos += 2;\n        continue;\n      }\n\n      pos++;\n    }\n\n    // no closing '>'\n    return result;\n  }\n\n  // this should be ... } else { ... branch\n\n  level = 0;\n  while (pos < max) {\n    code = str.charCodeAt(pos);\n\n    if (code === 0x20) { break; }\n\n    // ascii control characters\n    if (code < 0x20 || code === 0x7F) { break; }\n\n    if (code === 0x5C /* \\ */ && pos + 1 < max) {\n      pos += 2;\n      continue;\n    }\n\n    if (code === 0x28 /* ( */) {\n      level++;\n    }\n\n    if (code === 0x29 /* ) */) {\n      if (level === 0) { break; }\n      level--;\n    }\n\n    pos++;\n  }\n\n  if (start === pos) { return result; }\n  if (level !== 0) { return result; }\n\n  result.str = unescapeAll(str.slice(start, pos));\n  result.lines = lines;\n  result.pos = pos;\n  result.ok = true;\n  return result;\n};\n\n},{\"../common/utils\":4}],7:[function(require,module,exports){\n// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n  var level, found, marker, prevPos,\n      labelEnd = -1,\n      max = state.posMax,\n      oldPos = state.pos;\n\n  state.pos = start + 1;\n  level = 1;\n\n  while (state.pos < max) {\n    marker = state.src.charCodeAt(state.pos);\n    if (marker === 0x5D /* ] */) {\n      level--;\n      if (level === 0) {\n        found = true;\n        break;\n      }\n    }\n\n    prevPos = state.pos;\n    state.md.inline.skipToken(state);\n    if (marker === 0x5B /* [ */) {\n      if (prevPos === state.pos - 1) {\n        // increase level if we find text `[`, which is not a part of any token\n        level++;\n      } else if (disableNested) {\n        state.pos = oldPos;\n        return -1;\n      }\n    }\n  }\n\n  if (found) {\n    labelEnd = state.pos;\n  }\n\n  // restore old state\n  state.pos = oldPos;\n\n  return labelEnd;\n};\n\n},{}],8:[function(require,module,exports){\n// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n  var code,\n      marker,\n      lines = 0,\n      start = pos,\n      result = {\n        ok: false,\n        pos: 0,\n        lines: 0,\n        str: ''\n      };\n\n  if (pos >= max) { return result; }\n\n  marker = str.charCodeAt(pos);\n\n  if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n  pos++;\n\n  // if opening marker is \"(\", switch it to closing marker \")\"\n  if (marker === 0x28) { marker = 0x29; }\n\n  while (pos < max) {\n    code = str.charCodeAt(pos);\n    if (code === marker) {\n      result.pos = pos + 1;\n      result.lines = lines;\n      result.str = unescapeAll(str.slice(start + 1, pos));\n      result.ok = true;\n      return result;\n    } else if (code === 0x0A) {\n      lines++;\n    } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n      pos++;\n      if (str.charCodeAt(pos) === 0x0A) {\n        lines++;\n      }\n    }\n\n    pos++;\n  }\n\n  return result;\n};\n\n},{\"../common/utils\":4}],9:[function(require,module,exports){\n// Main parser class\n\n'use strict';\n\n\nvar utils        = require('./common/utils');\nvar helpers      = require('./helpers');\nvar Renderer     = require('./renderer');\nvar ParserCore   = require('./parser_core');\nvar ParserBlock  = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt    = require('linkify-it');\nvar mdurl        = require('mdurl');\nvar punycode     = require('punycode');\n\n\nvar config = {\n  'default': require('./presets/default'),\n  zero: require('./presets/zero'),\n  commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n  // url should be normalized at this point, and existing entities are decoded\n  var str = url.trim().toLowerCase();\n\n  return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n  var parsed = mdurl.parse(url, true);\n\n  if (parsed.hostname) {\n    // Encode hostnames in urls like:\n    // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n    //\n    // We don't encode unknown schemas, because it's likely that we encode\n    // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n    //\n    if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n      try {\n        parsed.hostname = punycode.toASCII(parsed.hostname);\n      } catch (er) { /**/ }\n    }\n  }\n\n  return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n  var parsed = mdurl.parse(url, true);\n\n  if (parsed.hostname) {\n    // Encode hostnames in urls like:\n    // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n    //\n    // We don't encode unknown schemas, because it's likely that we encode\n    // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n    //\n    if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n      try {\n        parsed.hostname = punycode.toUnicode(parsed.hostname);\n      } catch (er) { /**/ }\n    }\n  }\n\n  return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n *     md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n *   configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n *   similar to GFM, used when no preset name given. Enables all available rules,\n *   but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n *   all rules disabled. Useful to quickly setup your config via `.enable()`.\n *   For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n *   That's not safe! You may need external sanitizer to protect output from XSS.\n *   It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n *   (`<br />`). This is needed only for full CommonMark compatibility. In real\n *   world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `<br>`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n *   Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__  - `false`. Set `true` to enable [some language-neutral\n *   replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n *   quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n *   pairs, when typographer enabled and smartquotes on. For example, you can\n *   use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n *   `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n *   Highlighter `function (str, lang)` should return escaped HTML. It can also\n *   return empty string if the source was not changed and should be escaped\n *   externaly. If result starts with <pre... internal wrapper is skipped.\n *\n * ##### Example\n *\n * ```javascript\n * // commonmark mode\n * var md = require('markdown-it')('commonmark');\n *\n * // default mode\n * var md = require('markdown-it')();\n *\n * // enable everything\n * var md = require('markdown-it')({\n *   html: true,\n *   linkify: true,\n *   typographer: true\n * });\n * ```\n *\n * ##### Syntax highlighting\n *\n * ```js\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * var md = require('markdown-it')({\n *   highlight: function (str, lang) {\n *     if (lang && hljs.getLanguage(lang)) {\n *       try {\n *         return hljs.highlight(lang, str, true).value;\n *       } catch (__) {}\n *     }\n *\n *     return ''; // use external default escaping\n *   }\n * });\n * ```\n *\n * Or with full wrapper override (if you need assign class to `<pre>`):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n *   highlight: function (str, lang) {\n *     if (lang && hljs.getLanguage(lang)) {\n *       try {\n *         return '<pre class=\"hljs\"><code>' +\n *                hljs.highlight(lang, str, true).value +\n *                '</code></pre>';\n *       } catch (__) {}\n *     }\n *\n *     return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n *   }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n  if (!(this instanceof MarkdownIt)) {\n    return new MarkdownIt(presetName, options);\n  }\n\n  if (!options) {\n    if (!utils.isString(presetName)) {\n      options = presetName || {};\n      presetName = 'default';\n    }\n  }\n\n  /**\n   * MarkdownIt#inline -> ParserInline\n   *\n   * Instance of [[ParserInline]]. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.inline = new ParserInline();\n\n  /**\n   * MarkdownIt#block -> ParserBlock\n   *\n   * Instance of [[ParserBlock]]. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.block = new ParserBlock();\n\n  /**\n   * MarkdownIt#core -> Core\n   *\n   * Instance of [[Core]] chain executor. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.core = new ParserCore();\n\n  /**\n   * MarkdownIt#renderer -> Renderer\n   *\n   * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n   * rules for new token types, generated by plugins.\n   *\n   * ##### Example\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   *\n   * function myToken(tokens, idx, options, env, self) {\n   *   //...\n   *   return result;\n   * };\n   *\n   * md.renderer.rules['my_token'] = myToken\n   * ```\n   *\n   * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n   **/\n  this.renderer = new Renderer();\n\n  /**\n   * MarkdownIt#linkify -> LinkifyIt\n   *\n   * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n   * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n   * rule.\n   **/\n  this.linkify = new LinkifyIt();\n\n  /**\n   * MarkdownIt#validateLink(url) -> Boolean\n   *\n   * Link validation function. CommonMark allows too much in links. By default\n   * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n   * except some embedded image types.\n   *\n   * You can change this behaviour:\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   * // enable everything\n   * md.validateLink = function () { return true; }\n   * ```\n   **/\n  this.validateLink = validateLink;\n\n  /**\n   * MarkdownIt#normalizeLink(url) -> String\n   *\n   * Function used to encode link url to a machine-readable format,\n   * which includes url-encoding, punycode, etc.\n   **/\n  this.normalizeLink = normalizeLink;\n\n  /**\n   * MarkdownIt#normalizeLinkText(url) -> String\n   *\n   * Function used to decode link url to a human-readable format`\n   **/\n  this.normalizeLinkText = normalizeLinkText;\n\n\n  // Expose utils & helpers for easy acces from plugins\n\n  /**\n   * MarkdownIt#utils -> utils\n   *\n   * Assorted utility functions, useful to write plugins. See details\n   * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n   **/\n  this.utils = utils;\n\n  /**\n   * MarkdownIt#helpers -> helpers\n   *\n   * Link components parser functions, useful to write plugins. See details\n   * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n   **/\n  this.helpers = utils.assign({}, helpers);\n\n\n  this.options = {};\n  this.configure(presetName);\n\n  if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n *             .set({ html: true, breaks: true })\n *             .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n  utils.assign(this.options, options);\n  return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you with - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n  var self = this, presetName;\n\n  if (utils.isString(presets)) {\n    presetName = presets;\n    presets = config[presetName];\n    if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n  }\n\n  if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n  if (presets.options) { self.set(presets.options); }\n\n  if (presets.components) {\n    Object.keys(presets.components).forEach(function (name) {\n      if (presets.components[name].rules) {\n        self[name].ruler.enableOnly(presets.components[name].rules);\n      }\n      if (presets.components[name].rules2) {\n        self[name].ruler2.enableOnly(presets.components[name].rules2);\n      }\n    });\n  }\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n *             .enable(['sub', 'sup'])\n *             .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n  var result = [];\n\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  [ 'core', 'block', 'inline' ].forEach(function (chain) {\n    result = result.concat(this[chain].ruler.enable(list, true));\n  }, this);\n\n  result = result.concat(this.inline.ruler2.enable(list, true));\n\n  var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n  if (missed.length && !ignoreInvalid) {\n    throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n  }\n\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n  var result = [];\n\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  [ 'core', 'block', 'inline' ].forEach(function (chain) {\n    result = result.concat(this[chain].ruler.disable(list, true));\n  }, this);\n\n  result = result.concat(this.inline.ruler2.disable(list, true));\n\n  var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n  if (missed.length && !ignoreInvalid) {\n    throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n  }\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n *             .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n *               tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n *             });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n  var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n  plugin.apply(plugin, args);\n  return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and returns list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n  if (typeof src !== 'string') {\n    throw new Error('Input data should be a String');\n  }\n\n  var state = new this.core.State(src, this, env);\n\n  this.core.process(state);\n\n  return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n  env = env || {};\n\n  return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n  var state = new this.core.State(src, this, env);\n\n  state.inlineMode = true;\n  this.core.process(state);\n\n  return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `<p>` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n  env = env || {};\n\n  return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n\n},{\"./common/utils\":4,\"./helpers\":5,\"./parser_block\":10,\"./parser_core\":11,\"./parser_inline\":12,\"./presets/commonmark\":13,\"./presets/default\":14,\"./presets/zero\":15,\"./renderer\":16,\"linkify-it\":53,\"mdurl\":58,\"punycode\":60}],10:[function(require,module,exports){\n/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n'use strict';\n\n\nvar Ruler           = require('./ruler');\n\n\nvar _rules = [\n  // First 2 params - rule name & source. Secondary array - list of rules,\n  // which can be terminated by this one.\n  [ 'table',      require('./rules_block/table'),      [ 'paragraph', 'reference' ] ],\n  [ 'code',       require('./rules_block/code') ],\n  [ 'fence',      require('./rules_block/fence'),      [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'blockquote', require('./rules_block/blockquote'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'hr',         require('./rules_block/hr'),         [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'list',       require('./rules_block/list'),       [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'reference',  require('./rules_block/reference') ],\n  [ 'heading',    require('./rules_block/heading'),    [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'lheading',   require('./rules_block/lheading') ],\n  [ 'html_block', require('./rules_block/html_block'), [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'paragraph',  require('./rules_block/paragraph') ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n  /**\n   * ParserBlock#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of block rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (var i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n  }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n  var ok, i,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      line = startLine,\n      hasEmptyLines = false,\n      maxNesting = state.md.options.maxNesting;\n\n  while (line < endLine) {\n    state.line = line = state.skipEmptyLines(line);\n    if (line >= endLine) { break; }\n\n    // Termination condition for nested calls.\n    // Nested calls currently used for blockquotes & lists\n    if (state.sCount[line] < state.blkIndent) { break; }\n\n    // If nesting level exceeded - skip tail to the end. That's not ordinary\n    // situation and we should not care about content.\n    if (state.level >= maxNesting) {\n      state.line = endLine;\n      break;\n    }\n\n    // Try all possible rules.\n    // On success, rule should:\n    //\n    // - update `state.line`\n    // - update `state.tokens`\n    // - return true\n\n    for (i = 0; i < len; i++) {\n      ok = rules[i](state, line, endLine, false);\n      if (ok) { break; }\n    }\n\n    // set state.tight if we had an empty line before current tag\n    // i.e. latest empty line should not count\n    state.tight = !hasEmptyLines;\n\n    // paragraph might \"eat\" one newline after it in nested lists\n    if (state.isEmpty(state.line - 1)) {\n      hasEmptyLines = true;\n    }\n\n    line = state.line;\n\n    if (line < endLine && state.isEmpty(line)) {\n      hasEmptyLines = true;\n      line++;\n      state.line = line;\n    }\n  }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n  var state;\n\n  if (!src) { return; }\n\n  state = new this.State(src, md, env, outTokens);\n\n  this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = require('./rules_block/state_block');\n\n\nmodule.exports = ParserBlock;\n\n},{\"./ruler\":17,\"./rules_block/blockquote\":18,\"./rules_block/code\":19,\"./rules_block/fence\":20,\"./rules_block/heading\":21,\"./rules_block/hr\":22,\"./rules_block/html_block\":23,\"./rules_block/lheading\":24,\"./rules_block/list\":25,\"./rules_block/paragraph\":26,\"./rules_block/reference\":27,\"./rules_block/state_block\":28,\"./rules_block/table\":29}],11:[function(require,module,exports){\n/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n'use strict';\n\n\nvar Ruler  = require('./ruler');\n\n\nvar _rules = [\n  [ 'normalize',      require('./rules_core/normalize')      ],\n  [ 'block',          require('./rules_core/block')          ],\n  [ 'inline',         require('./rules_core/inline')         ],\n  [ 'linkify',        require('./rules_core/linkify')        ],\n  [ 'replacements',   require('./rules_core/replacements')   ],\n  [ 'smartquotes',    require('./rules_core/smartquotes')    ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n  /**\n   * Core#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of core rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (var i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1]);\n  }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n  var i, l, rules;\n\n  rules = this.ruler.getRules('');\n\n  for (i = 0, l = rules.length; i < l; i++) {\n    rules[i](state);\n  }\n};\n\nCore.prototype.State = require('./rules_core/state_core');\n\n\nmodule.exports = Core;\n\n},{\"./ruler\":17,\"./rules_core/block\":30,\"./rules_core/inline\":31,\"./rules_core/linkify\":32,\"./rules_core/normalize\":33,\"./rules_core/replacements\":34,\"./rules_core/smartquotes\":35,\"./rules_core/state_core\":36}],12:[function(require,module,exports){\n/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler           = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n  [ 'text',            require('./rules_inline/text') ],\n  [ 'newline',         require('./rules_inline/newline') ],\n  [ 'escape',          require('./rules_inline/escape') ],\n  [ 'backticks',       require('./rules_inline/backticks') ],\n  [ 'strikethrough',   require('./rules_inline/strikethrough').tokenize ],\n  [ 'emphasis',        require('./rules_inline/emphasis').tokenize ],\n  [ 'link',            require('./rules_inline/link') ],\n  [ 'image',           require('./rules_inline/image') ],\n  [ 'autolink',        require('./rules_inline/autolink') ],\n  [ 'html_inline',     require('./rules_inline/html_inline') ],\n  [ 'entity',          require('./rules_inline/entity') ]\n];\n\nvar _rules2 = [\n  [ 'balance_pairs',   require('./rules_inline/balance_pairs') ],\n  [ 'strikethrough',   require('./rules_inline/strikethrough').postProcess ],\n  [ 'emphasis',        require('./rules_inline/emphasis').postProcess ],\n  [ 'text_collapse',   require('./rules_inline/text_collapse') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n  var i;\n\n  /**\n   * ParserInline#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of inline rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1]);\n  }\n\n  /**\n   * ParserInline#ruler2 -> Ruler\n   *\n   * [[Ruler]] instance. Second ruler used for post-processing\n   * (e.g. in emphasis-like rules).\n   **/\n  this.ruler2 = new Ruler();\n\n  for (i = 0; i < _rules2.length; i++) {\n    this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n  }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n  var ok, i, pos = state.pos,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      maxNesting = state.md.options.maxNesting,\n      cache = state.cache;\n\n\n  if (typeof cache[pos] !== 'undefined') {\n    state.pos = cache[pos];\n    return;\n  }\n\n  if (state.level < maxNesting) {\n    for (i = 0; i < len; i++) {\n      // Increment state.level and decrement it later to limit recursion.\n      // It's harmless to do here, because no tokens are created. But ideally,\n      // we'd need a separate private state variable for this purpose.\n      //\n      state.level++;\n      ok = rules[i](state, true);\n      state.level--;\n\n      if (ok) { break; }\n    }\n  } else {\n    // Too much nesting, just skip until the end of the paragraph.\n    //\n    // NOTE: this will cause links to behave incorrectly in the following case,\n    //       when an amount of `[` is exactly equal to `maxNesting + 1`:\n    //\n    //       [[[[[[[[[[[[[[[[[[[[[foo]()\n    //\n    // TODO: remove this workaround when CM standard will allow nested links\n    //       (we can replace it by preventing links from being parsed in\n    //       validation mode)\n    //\n    state.pos = state.posMax;\n  }\n\n  if (!ok) { state.pos++; }\n  cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n  var ok, i,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      end = state.posMax,\n      maxNesting = state.md.options.maxNesting;\n\n  while (state.pos < end) {\n    // Try all possible rules.\n    // On success, rule should:\n    //\n    // - update `state.pos`\n    // - update `state.tokens`\n    // - return true\n\n    if (state.level < maxNesting) {\n      for (i = 0; i < len; i++) {\n        ok = rules[i](state, false);\n        if (ok) { break; }\n      }\n    }\n\n    if (ok) {\n      if (state.pos >= end) { break; }\n      continue;\n    }\n\n    state.pending += state.src[state.pos++];\n  }\n\n  if (state.pending) {\n    state.pushPending();\n  }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n  var i, rules, len;\n  var state = new this.State(str, md, env, outTokens);\n\n  this.tokenize(state);\n\n  rules = this.ruler2.getRules('');\n  len = rules.length;\n\n  for (i = 0; i < len; i++) {\n    rules[i](state);\n  }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n\n},{\"./ruler\":17,\"./rules_inline/autolink\":37,\"./rules_inline/backticks\":38,\"./rules_inline/balance_pairs\":39,\"./rules_inline/emphasis\":40,\"./rules_inline/entity\":41,\"./rules_inline/escape\":42,\"./rules_inline/html_inline\":43,\"./rules_inline/image\":44,\"./rules_inline/link\":45,\"./rules_inline/newline\":46,\"./rules_inline/state_inline\":47,\"./rules_inline/strikethrough\":48,\"./rules_inline/text\":49,\"./rules_inline/text_collapse\":50}],13:[function(require,module,exports){\n// Commonmark default options\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         true,         // Enable HTML tags in source\n    xhtmlOut:     true,         // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   20            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {\n      rules: [\n        'normalize',\n        'block',\n        'inline'\n      ]\n    },\n\n    block: {\n      rules: [\n        'blockquote',\n        'code',\n        'fence',\n        'heading',\n        'hr',\n        'html_block',\n        'lheading',\n        'list',\n        'reference',\n        'paragraph'\n      ]\n    },\n\n    inline: {\n      rules: [\n        'autolink',\n        'backticks',\n        'emphasis',\n        'entity',\n        'escape',\n        'html_inline',\n        'image',\n        'link',\n        'newline',\n        'text'\n      ],\n      rules2: [\n        'balance_pairs',\n        'emphasis',\n        'text_collapse'\n      ]\n    }\n  }\n};\n\n},{}],14:[function(require,module,exports){\n// markdown-it default options\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         false,        // Enable HTML tags in source\n    xhtmlOut:     false,        // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   100            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {},\n    block: {},\n    inline: {}\n  }\n};\n\n},{}],15:[function(require,module,exports){\n// \"Zero\" preset, with nothing enabled. Useful for manual configuring of simple\n// modes. For example, to parse bold/italic only.\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         false,        // Enable HTML tags in source\n    xhtmlOut:     false,        // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   20            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {\n      rules: [\n        'normalize',\n        'block',\n        'inline'\n      ]\n    },\n\n    block: {\n      rules: [\n        'paragraph'\n      ]\n    },\n\n    inline: {\n      rules: [\n        'text'\n      ],\n      rules2: [\n        'balance_pairs',\n        'text_collapse'\n      ]\n    }\n  }\n};\n\n},{}],16:[function(require,module,exports){\n/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n'use strict';\n\n\nvar assign          = require('./common/utils').assign;\nvar unescapeAll     = require('./common/utils').unescapeAll;\nvar escapeHtml      = require('./common/utils').escapeHtml;\n\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar default_rules = {};\n\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  return  '<code' + slf.renderAttrs(token) + '>' +\n          escapeHtml(tokens[idx].content) +\n          '</code>';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  return  '<pre' + slf.renderAttrs(token) + '><code>' +\n          escapeHtml(tokens[idx].content) +\n          '</code></pre>\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx],\n      info = token.info ? unescapeAll(token.info).trim() : '',\n      langName = '',\n      highlighted, i, tmpAttrs, tmpToken;\n\n  if (info) {\n    langName = info.split(/\\s+/g)[0];\n  }\n\n  if (options.highlight) {\n    highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n  } else {\n    highlighted = escapeHtml(token.content);\n  }\n\n  if (highlighted.indexOf('<pre') === 0) {\n    return highlighted + '\\n';\n  }\n\n  // If language exists, inject class gently, without modifying original token.\n  // May be, one day we will add .clone() for token and simplify this part, but\n  // now we prefer to keep things local.\n  if (info) {\n    i        = token.attrIndex('class');\n    tmpAttrs = token.attrs ? token.attrs.slice() : [];\n\n    if (i < 0) {\n      tmpAttrs.push([ 'class', options.langPrefix + langName ]);\n    } else {\n      tmpAttrs[i][1] += ' ' + options.langPrefix + langName;\n    }\n\n    // Fake token just to render attributes\n    tmpToken = {\n      attrs: tmpAttrs\n    };\n\n    return  '<pre><code' + slf.renderAttrs(tmpToken) + '>'\n          + highlighted\n          + '</code></pre>\\n';\n  }\n\n\n  return  '<pre><code' + slf.renderAttrs(token) + '>'\n        + highlighted\n        + '</code></pre>\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n  // should be placed on proper position for tests.\n  //\n  // Replace content with actual value\n\n  token.attrs[token.attrIndex('alt')][1] =\n    slf.renderInlineAsText(token.children, options, env);\n\n  return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n  return options.xhtmlOut ? '<br />\\n' : '<br>\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n  return options.breaks ? (options.xhtmlOut ? '<br />\\n' : '<br>\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n  return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n  return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n  return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n  /**\n   * Renderer#rules -> Object\n   *\n   * Contains render rules for tokens. Can be updated and extended.\n   *\n   * ##### Example\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   *\n   * md.renderer.rules.strong_open  = function () { return '<b>'; };\n   * md.renderer.rules.strong_close = function () { return '</b>'; };\n   *\n   * var result = md.renderInline(...);\n   * ```\n   *\n   * Each rule is called as independent static function with fixed signature:\n   *\n   * ```javascript\n   * function my_token_render(tokens, idx, options, env, renderer) {\n   *   // ...\n   *   return renderedHTML;\n   * }\n   * ```\n   *\n   * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n   * for more details and examples.\n   **/\n  this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n  var i, l, result;\n\n  if (!token.attrs) { return ''; }\n\n  result = '';\n\n  for (i = 0, l = token.attrs.length; i < l; i++) {\n    result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n  }\n\n  return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n  var nextToken,\n      result = '',\n      needLf = false,\n      token = tokens[idx];\n\n  // Tight list paragraphs\n  if (token.hidden) {\n    return '';\n  }\n\n  // Insert a newline between hidden paragraph and subsequent opening\n  // block-level tag.\n  //\n  // For example, here we should insert a newline before blockquote:\n  //  - a\n  //    >\n  //\n  if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n    result += '\\n';\n  }\n\n  // Add token name, e.g. `<img`\n  result += (token.nesting === -1 ? '</' : '<') + token.tag;\n\n  // Encode attributes, e.g. `<img src=\"foo\"`\n  result += this.renderAttrs(token);\n\n  // Add a slash for self-closing tags, e.g. `<img src=\"foo\" /`\n  if (token.nesting === 0 && options.xhtmlOut) {\n    result += ' /';\n  }\n\n  // Check if we need to add a newline after this tag\n  if (token.block) {\n    needLf = true;\n\n    if (token.nesting === 1) {\n      if (idx + 1 < tokens.length) {\n        nextToken = tokens[idx + 1];\n\n        if (nextToken.type === 'inline' || nextToken.hidden) {\n          // Block-level tag containing an inline tag.\n          //\n          needLf = false;\n\n        } else if (nextToken.nesting === -1 && nextToken.tag === token.tag) {\n          // Opening tag + closing tag of the same type. E.g. `<li></li>`.\n          //\n          needLf = false;\n        }\n      }\n    }\n  }\n\n  result += needLf ? '>\\n' : '>';\n\n  return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n  var type,\n      result = '',\n      rules = this.rules;\n\n  for (var i = 0, len = tokens.length; i < len; i++) {\n    type = tokens[i].type;\n\n    if (typeof rules[type] !== 'undefined') {\n      result += rules[type](tokens, i, options, env, this);\n    } else {\n      result += this.renderToken(tokens, i, options);\n    }\n  }\n\n  return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n  var result = '';\n\n  for (var i = 0, len = tokens.length; i < len; i++) {\n    if (tokens[i].type === 'text') {\n      result += tokens[i].content;\n    } else if (tokens[i].type === 'image') {\n      result += this.renderInlineAsText(tokens[i].children, options, env);\n    }\n  }\n\n  return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n  var i, len, type,\n      result = '',\n      rules = this.rules;\n\n  for (i = 0, len = tokens.length; i < len; i++) {\n    type = tokens[i].type;\n\n    if (type === 'inline') {\n      result += this.renderInline(tokens[i].children, options, env);\n    } else if (typeof rules[type] !== 'undefined') {\n      result += rules[tokens[i].type](tokens, i, options, env, this);\n    } else {\n      result += this.renderToken(tokens, i, options, env);\n    }\n  }\n\n  return result;\n};\n\nmodule.exports = Renderer;\n\n},{\"./common/utils\":4}],17:[function(require,module,exports){\n/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n  // List of added rules. Each element is:\n  //\n  // {\n  //   name: XXX,\n  //   enabled: Boolean,\n  //   fn: Function(),\n  //   alt: [ name2, name3 ]\n  // }\n  //\n  this.__rules__ = [];\n\n  // Cached rule chains.\n  //\n  // First level - chain name, '' for default.\n  // Second level - diginal anchor for fast filtering by charcodes.\n  //\n  this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n  for (var i = 0; i < this.__rules__.length; i++) {\n    if (this.__rules__[i].name === name) {\n      return i;\n    }\n  }\n  return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n  var self = this;\n  var chains = [ '' ];\n\n  // collect unique names\n  self.__rules__.forEach(function (rule) {\n    if (!rule.enabled) { return; }\n\n    rule.alt.forEach(function (altName) {\n      if (chains.indexOf(altName) < 0) {\n        chains.push(altName);\n      }\n    });\n  });\n\n  self.__cache__ = {};\n\n  chains.forEach(function (chain) {\n    self.__cache__[chain] = [];\n    self.__rules__.forEach(function (rule) {\n      if (!rule.enabled) { return; }\n\n      if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n      self.__cache__[chain].push(rule.fn);\n    });\n  });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n  var index = this.__find__(name);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n  this.__rules__[index].fn = fn;\n  this.__rules__[index].alt = opt.alt || [];\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n  var index = this.__find__(beforeName);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n  this.__rules__.splice(index, 0, {\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n  var index = this.__find__(afterName);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n  this.__rules__.splice(index + 1, 0, {\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n  var opt = options || {};\n\n  this.__rules__.push({\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  var result = [];\n\n  // Search by name and enable\n  list.forEach(function (name) {\n    var idx = this.__find__(name);\n\n    if (idx < 0) {\n      if (ignoreInvalid) { return; }\n      throw new Error('Rules manager: invalid rule name ' + name);\n    }\n    this.__rules__[idx].enabled = true;\n    result.push(name);\n  }, this);\n\n  this.__cache__ = null;\n  return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n  this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  var result = [];\n\n  // Search by name and disable\n  list.forEach(function (name) {\n    var idx = this.__find__(name);\n\n    if (idx < 0) {\n      if (ignoreInvalid) { return; }\n      throw new Error('Rules manager: invalid rule name ' + name);\n    }\n    this.__rules__[idx].enabled = false;\n    result.push(name);\n  }, this);\n\n  this.__cache__ = null;\n  return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n  if (this.__cache__ === null) {\n    this.__compile__();\n  }\n\n  // Chain can be empty, if rules disabled. But we still have to return Array.\n  return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n\n},{}],18:[function(require,module,exports){\n// Block quotes\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n  var adjustTab,\n      ch,\n      i,\n      initial,\n      l,\n      lastLineEmpty,\n      lines,\n      nextLine,\n      offset,\n      oldBMarks,\n      oldBSCount,\n      oldIndent,\n      oldParentType,\n      oldSCount,\n      oldTShift,\n      spaceAfterMarker,\n      terminate,\n      terminatorRules,\n      token,\n      wasOutdented,\n      oldLineMax = state.lineMax,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  // check the block quote marker\n  if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n  // we know that it's going to be a valid blockquote,\n  // so no point trying to find the end of it in silent mode\n  if (silent) { return true; }\n\n  // skip spaces after \">\" and re-calculate offset\n  initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);\n\n  // skip one optional space after '>'\n  if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n    // ' >   test '\n    //     ^ -- position start of line here:\n    pos++;\n    initial++;\n    offset++;\n    adjustTab = false;\n    spaceAfterMarker = true;\n  } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n    spaceAfterMarker = true;\n\n    if ((state.bsCount[startLine] + offset) % 4 === 3) {\n      // '  >\\t  test '\n      //       ^ -- position start of line here (tab has width===1)\n      pos++;\n      initial++;\n      offset++;\n      adjustTab = false;\n    } else {\n      // ' >\\t  test '\n      //    ^ -- position start of line here + shift bsCount slightly\n      //         to make extra space appear\n      adjustTab = true;\n    }\n  } else {\n    spaceAfterMarker = false;\n  }\n\n  oldBMarks = [ state.bMarks[startLine] ];\n  state.bMarks[startLine] = pos;\n\n  while (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (isSpace(ch)) {\n      if (ch === 0x09) {\n        offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;\n      } else {\n        offset++;\n      }\n    } else {\n      break;\n    }\n\n    pos++;\n  }\n\n  oldBSCount = [ state.bsCount[startLine] ];\n  state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n  lastLineEmpty = pos >= max;\n\n  oldSCount = [ state.sCount[startLine] ];\n  state.sCount[startLine] = offset - initial;\n\n  oldTShift = [ state.tShift[startLine] ];\n  state.tShift[startLine] = pos - state.bMarks[startLine];\n\n  terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n  oldParentType = state.parentType;\n  state.parentType = 'blockquote';\n  wasOutdented = false;\n\n  // Search the end of the block\n  //\n  // Block ends with either:\n  //  1. an empty line outside:\n  //     ```\n  //     > test\n  //\n  //     ```\n  //  2. an empty line inside:\n  //     ```\n  //     >\n  //     test\n  //     ```\n  //  3. another tag:\n  //     ```\n  //     > test\n  //      - - -\n  //     ```\n  for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n    // check if it's outdented, i.e. it's inside list item and indented\n    // less than said list item:\n    //\n    // ```\n    // 1. anything\n    //    > current blockquote\n    // 2. checking this line\n    // ```\n    if (state.sCount[nextLine] < state.blkIndent) wasOutdented = true;\n\n    pos = state.bMarks[nextLine] + state.tShift[nextLine];\n    max = state.eMarks[nextLine];\n\n    if (pos >= max) {\n      // Case 1: line is not inside the blockquote, and this line is empty.\n      break;\n    }\n\n    if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !wasOutdented) {\n      // This line is inside the blockquote.\n\n      // skip spaces after \">\" and re-calculate offset\n      initial = offset = state.sCount[nextLine] + pos - (state.bMarks[nextLine] + state.tShift[nextLine]);\n\n      // skip one optional space after '>'\n      if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n        // ' >   test '\n        //     ^ -- position start of line here:\n        pos++;\n        initial++;\n        offset++;\n        adjustTab = false;\n        spaceAfterMarker = true;\n      } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n        spaceAfterMarker = true;\n\n        if ((state.bsCount[nextLine] + offset) % 4 === 3) {\n          // '  >\\t  test '\n          //       ^ -- position start of line here (tab has width===1)\n          pos++;\n          initial++;\n          offset++;\n          adjustTab = false;\n        } else {\n          // ' >\\t  test '\n          //    ^ -- position start of line here + shift bsCount slightly\n          //         to make extra space appear\n          adjustTab = true;\n        }\n      } else {\n        spaceAfterMarker = false;\n      }\n\n      oldBMarks.push(state.bMarks[nextLine]);\n      state.bMarks[nextLine] = pos;\n\n      while (pos < max) {\n        ch = state.src.charCodeAt(pos);\n\n        if (isSpace(ch)) {\n          if (ch === 0x09) {\n            offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n          } else {\n            offset++;\n          }\n        } else {\n          break;\n        }\n\n        pos++;\n      }\n\n      lastLineEmpty = pos >= max;\n\n      oldBSCount.push(state.bsCount[nextLine]);\n      state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n      oldSCount.push(state.sCount[nextLine]);\n      state.sCount[nextLine] = offset - initial;\n\n      oldTShift.push(state.tShift[nextLine]);\n      state.tShift[nextLine] = pos - state.bMarks[nextLine];\n      continue;\n    }\n\n    // Case 2: line is not inside the blockquote, and the last line was empty.\n    if (lastLineEmpty) { break; }\n\n    // Case 3: another tag found.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n\n    if (terminate) {\n      // Quirk to enforce \"hard termination mode\" for paragraphs;\n      // normally if you call `tokenize(state, startLine, nextLine)`,\n      // paragraphs will look below nextLine for paragraph continuation,\n      // but if blockquote is terminated by another tag, they shouldn't\n      state.lineMax = nextLine;\n\n      if (state.blkIndent !== 0) {\n        // state.blkIndent was non-zero, we now set it to zero,\n        // so we need to re-calculate all offsets to appear as\n        // if indent wasn't changed\n        oldBMarks.push(state.bMarks[nextLine]);\n        oldBSCount.push(state.bsCount[nextLine]);\n        oldTShift.push(state.tShift[nextLine]);\n        oldSCount.push(state.sCount[nextLine]);\n        state.sCount[nextLine] -= state.blkIndent;\n      }\n\n      break;\n    }\n\n    oldBMarks.push(state.bMarks[nextLine]);\n    oldBSCount.push(state.bsCount[nextLine]);\n    oldTShift.push(state.tShift[nextLine]);\n    oldSCount.push(state.sCount[nextLine]);\n\n    // A negative indentation means that this is a paragraph continuation\n    //\n    state.sCount[nextLine] = -1;\n  }\n\n  oldIndent = state.blkIndent;\n  state.blkIndent = 0;\n\n  token        = state.push('blockquote_open', 'blockquote', 1);\n  token.markup = '>';\n  token.map    = lines = [ startLine, 0 ];\n\n  state.md.block.tokenize(state, startLine, nextLine);\n\n  token        = state.push('blockquote_close', 'blockquote', -1);\n  token.markup = '>';\n\n  state.lineMax = oldLineMax;\n  state.parentType = oldParentType;\n  lines[1] = state.line;\n\n  // Restore original tShift; this might not be necessary since the parser\n  // has already been here, but just to make sure we can do that.\n  for (i = 0; i < oldTShift.length; i++) {\n    state.bMarks[i + startLine] = oldBMarks[i];\n    state.tShift[i + startLine] = oldTShift[i];\n    state.sCount[i + startLine] = oldSCount[i];\n    state.bsCount[i + startLine] = oldBSCount[i];\n  }\n  state.blkIndent = oldIndent;\n\n  return true;\n};\n\n},{\"../common/utils\":4}],19:[function(require,module,exports){\n// Code block (4 spaces padded)\n\n'use strict';\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n  var nextLine, last, token;\n\n  if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n  last = nextLine = startLine + 1;\n\n  while (nextLine < endLine) {\n    if (state.isEmpty(nextLine)) {\n      nextLine++;\n      continue;\n    }\n\n    if (state.sCount[nextLine] - state.blkIndent >= 4) {\n      nextLine++;\n      last = nextLine;\n      continue;\n    }\n    break;\n  }\n\n  state.line = last;\n\n  token         = state.push('code_block', 'code', 0);\n  token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);\n  token.map     = [ startLine, state.line ];\n\n  return true;\n};\n\n},{}],20:[function(require,module,exports){\n// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n  var marker, len, params, nextLine, mem, token, markup,\n      haveEndMarker = false,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (pos + 3 > max) { return false; }\n\n  marker = state.src.charCodeAt(pos);\n\n  if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n    return false;\n  }\n\n  // scan marker length\n  mem = pos;\n  pos = state.skipChars(pos, marker);\n\n  len = pos - mem;\n\n  if (len < 3) { return false; }\n\n  markup = state.src.slice(mem, pos);\n  params = state.src.slice(pos, max);\n\n  if (marker === 0x60 /* ` */) {\n    if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n      return false;\n    }\n  }\n\n  // Since start is found, we can report success here in validation mode\n  if (silent) { return true; }\n\n  // search end of block\n  nextLine = startLine;\n\n  for (;;) {\n    nextLine++;\n    if (nextLine >= endLine) {\n      // unclosed block should be autoclosed by end of document.\n      // also block seems to be autoclosed by end of parent\n      break;\n    }\n\n    pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n    max = state.eMarks[nextLine];\n\n    if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n      // non-empty line with negative indent should stop the list:\n      // - ```\n      //  test\n      break;\n    }\n\n    if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n    if (state.sCount[nextLine] - state.blkIndent >= 4) {\n      // closing fence should be indented less than 4 spaces\n      continue;\n    }\n\n    pos = state.skipChars(pos, marker);\n\n    // closing code fence must be at least as long as the opening one\n    if (pos - mem < len) { continue; }\n\n    // make sure tail has spaces only\n    pos = state.skipSpaces(pos);\n\n    if (pos < max) { continue; }\n\n    haveEndMarker = true;\n    // found!\n    break;\n  }\n\n  // If a fence has heading spaces, they should be removed from its inner block\n  len = state.sCount[startLine];\n\n  state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n  token         = state.push('fence', 'code', 0);\n  token.info    = params;\n  token.content = state.getLines(startLine + 1, nextLine, len, true);\n  token.markup  = markup;\n  token.map     = [ startLine, state.line ];\n\n  return true;\n};\n\n},{}],21:[function(require,module,exports){\n// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n  var ch, level, tmp, token,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  ch  = state.src.charCodeAt(pos);\n\n  if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n  // count heading level\n  level = 1;\n  ch = state.src.charCodeAt(++pos);\n  while (ch === 0x23/* # */ && pos < max && level <= 6) {\n    level++;\n    ch = state.src.charCodeAt(++pos);\n  }\n\n  if (level > 6 || (pos < max && !isSpace(ch))) { return false; }\n\n  if (silent) { return true; }\n\n  // Let's cut tails like '    ###  ' from the end of string\n\n  max = state.skipSpacesBack(max, pos);\n  tmp = state.skipCharsBack(max, 0x23, pos); // #\n  if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n    max = tmp;\n  }\n\n  state.line = startLine + 1;\n\n  token        = state.push('heading_open', 'h' + String(level), 1);\n  token.markup = '########'.slice(0, level);\n  token.map    = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = state.src.slice(pos, max).trim();\n  token.map      = [ startLine, state.line ];\n  token.children = [];\n\n  token        = state.push('heading_close', 'h' + String(level), -1);\n  token.markup = '########'.slice(0, level);\n\n  return true;\n};\n\n},{\"../common/utils\":4}],22:[function(require,module,exports){\n// Horizontal rule\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n  var marker, cnt, ch, token,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  marker = state.src.charCodeAt(pos++);\n\n  // Check hr marker\n  if (marker !== 0x2A/* * */ &&\n      marker !== 0x2D/* - */ &&\n      marker !== 0x5F/* _ */) {\n    return false;\n  }\n\n  // markers can be mixed with spaces, but there should be at least 3 of them\n\n  cnt = 1;\n  while (pos < max) {\n    ch = state.src.charCodeAt(pos++);\n    if (ch !== marker && !isSpace(ch)) { return false; }\n    if (ch === marker) { cnt++; }\n  }\n\n  if (cnt < 3) { return false; }\n\n  if (silent) { return true; }\n\n  state.line = startLine + 1;\n\n  token        = state.push('hr', 'hr', 0);\n  token.map    = [ startLine, state.line ];\n  token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n  return true;\n};\n\n},{\"../common/utils\":4}],23:[function(require,module,exports){\n// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n  [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n  [ /^<!--/,        /-->/,   true ],\n  [ /^<\\?/,         /\\?>/,   true ],\n  [ /^<![A-Z]/,     />/,     true ],\n  [ /^<!\\[CDATA\\[/, /\\]\\]>/, true ],\n  [ new RegExp('^</?(' + block_names.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true ],\n  [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'),  /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n  var i, nextLine, token, lineText,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (!state.md.options.html) { return false; }\n\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n  lineText = state.src.slice(pos, max);\n\n  for (i = 0; i < HTML_SEQUENCES.length; i++) {\n    if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n  }\n\n  if (i === HTML_SEQUENCES.length) { return false; }\n\n  if (silent) {\n    // true if this sequence can be a terminator, false otherwise\n    return HTML_SEQUENCES[i][2];\n  }\n\n  nextLine = startLine + 1;\n\n  // If we are here - we detected HTML block.\n  // Let's roll down till block end.\n  if (!HTML_SEQUENCES[i][1].test(lineText)) {\n    for (; nextLine < endLine; nextLine++) {\n      if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n      pos = state.bMarks[nextLine] + state.tShift[nextLine];\n      max = state.eMarks[nextLine];\n      lineText = state.src.slice(pos, max);\n\n      if (HTML_SEQUENCES[i][1].test(lineText)) {\n        if (lineText.length !== 0) { nextLine++; }\n        break;\n      }\n    }\n  }\n\n  state.line = nextLine;\n\n  token         = state.push('html_block', '', 0);\n  token.map     = [ startLine, nextLine ];\n  token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n  return true;\n};\n\n},{\"../common/html_blocks\":2,\"../common/html_re\":3}],24:[function(require,module,exports){\n// lheading (---, ===)\n\n'use strict';\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n  var content, terminate, i, l, token, pos, max, level, marker,\n      nextLine = startLine + 1, oldParentType,\n      terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  oldParentType = state.parentType;\n  state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n  // jump line-by-line until empty one or EOF\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    //\n    // Check for underline in setext header\n    //\n    if (state.sCount[nextLine] >= state.blkIndent) {\n      pos = state.bMarks[nextLine] + state.tShift[nextLine];\n      max = state.eMarks[nextLine];\n\n      if (pos < max) {\n        marker = state.src.charCodeAt(pos);\n\n        if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n          pos = state.skipChars(pos, marker);\n          pos = state.skipSpaces(pos);\n\n          if (pos >= max) {\n            level = (marker === 0x3D/* = */ ? 1 : 2);\n            break;\n          }\n        }\n      }\n    }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  if (!level) {\n    // Didn't find valid underline\n    return false;\n  }\n\n  content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n  state.line = nextLine + 1;\n\n  token          = state.push('heading_open', 'h' + String(level), 1);\n  token.markup   = String.fromCharCode(marker);\n  token.map      = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = content;\n  token.map      = [ startLine, state.line - 1 ];\n  token.children = [];\n\n  token          = state.push('heading_close', 'h' + String(level), -1);\n  token.markup   = String.fromCharCode(marker);\n\n  state.parentType = oldParentType;\n\n  return true;\n};\n\n},{}],25:[function(require,module,exports){\n// Lists\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n  var marker, pos, max, ch;\n\n  pos = state.bMarks[startLine] + state.tShift[startLine];\n  max = state.eMarks[startLine];\n\n  marker = state.src.charCodeAt(pos++);\n  // Check bullet\n  if (marker !== 0x2A/* * */ &&\n      marker !== 0x2D/* - */ &&\n      marker !== 0x2B/* + */) {\n    return -1;\n  }\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (!isSpace(ch)) {\n      // \" -test \" - is not a list item\n      return -1;\n    }\n  }\n\n  return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n  var ch,\n      start = state.bMarks[startLine] + state.tShift[startLine],\n      pos = start,\n      max = state.eMarks[startLine];\n\n  // List marker should have at least 2 chars (digit + dot)\n  if (pos + 1 >= max) { return -1; }\n\n  ch = state.src.charCodeAt(pos++);\n\n  if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n  for (;;) {\n    // EOL -> fail\n    if (pos >= max) { return -1; }\n\n    ch = state.src.charCodeAt(pos++);\n\n    if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n      // List marker should have no more than 9 digits\n      // (prevents integer overflow in browsers)\n      if (pos - start >= 10) { return -1; }\n\n      continue;\n    }\n\n    // found valid marker\n    if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n      break;\n    }\n\n    return -1;\n  }\n\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (!isSpace(ch)) {\n      // \" 1.test \" - is not a list item\n      return -1;\n    }\n  }\n  return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n  var i, l,\n      level = state.level + 2;\n\n  for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n    if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n      state.tokens[i + 2].hidden = true;\n      state.tokens[i].hidden = true;\n      i += 2;\n    }\n  }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n  var ch,\n      contentStart,\n      i,\n      indent,\n      indentAfterMarker,\n      initial,\n      isOrdered,\n      itemLines,\n      l,\n      listLines,\n      listTokIdx,\n      markerCharCode,\n      markerValue,\n      max,\n      nextLine,\n      offset,\n      oldListIndent,\n      oldParentType,\n      oldSCount,\n      oldTShift,\n      oldTight,\n      pos,\n      posAfterMarker,\n      prevEmptyEnd,\n      start,\n      terminate,\n      terminatorRules,\n      token,\n      isTerminatingParagraph = false,\n      tight = true;\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  // Special case:\n  //  - item 1\n  //   - item 2\n  //    - item 3\n  //     - item 4\n  //      - this one is a paragraph continuation\n  if (state.listIndent >= 0 &&\n      state.sCount[startLine] - state.listIndent >= 4 &&\n      state.sCount[startLine] < state.blkIndent) {\n    return false;\n  }\n\n  // limit conditions when list can interrupt\n  // a paragraph (validation mode only)\n  if (silent && state.parentType === 'paragraph') {\n    // Next list item should still terminate previous list item;\n    //\n    // This code can fail if plugins use blkIndent as well as lists,\n    // but I hope the spec gets fixed long before that happens.\n    //\n    if (state.tShift[startLine] >= state.blkIndent) {\n      isTerminatingParagraph = true;\n    }\n  }\n\n  // Detect list type and position after marker\n  if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n    isOrdered = true;\n    start = state.bMarks[startLine] + state.tShift[startLine];\n    markerValue = Number(state.src.substr(start, posAfterMarker - start - 1));\n\n    // If we're starting a new ordered list right after\n    // a paragraph, it should start with 1.\n    if (isTerminatingParagraph && markerValue !== 1) return false;\n\n  } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n    isOrdered = false;\n\n  } else {\n    return false;\n  }\n\n  // If we're starting a new unordered list right after\n  // a paragraph, first line should not be empty.\n  if (isTerminatingParagraph) {\n    if (state.skipSpaces(posAfterMarker) >= state.eMarks[startLine]) return false;\n  }\n\n  // We should terminate list on style change. Remember first one to compare.\n  markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n  // For validation mode we can terminate immediately\n  if (silent) { return true; }\n\n  // Start list\n  listTokIdx = state.tokens.length;\n\n  if (isOrdered) {\n    token       = state.push('ordered_list_open', 'ol', 1);\n    if (markerValue !== 1) {\n      token.attrs = [ [ 'start', markerValue ] ];\n    }\n\n  } else {\n    token       = state.push('bullet_list_open', 'ul', 1);\n  }\n\n  token.map    = listLines = [ startLine, 0 ];\n  token.markup = String.fromCharCode(markerCharCode);\n\n  //\n  // Iterate list items\n  //\n\n  nextLine = startLine;\n  prevEmptyEnd = false;\n  terminatorRules = state.md.block.ruler.getRules('list');\n\n  oldParentType = state.parentType;\n  state.parentType = 'list';\n\n  while (nextLine < endLine) {\n    pos = posAfterMarker;\n    max = state.eMarks[nextLine];\n\n    initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n    while (pos < max) {\n      ch = state.src.charCodeAt(pos);\n\n      if (ch === 0x09) {\n        offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n      } else if (ch === 0x20) {\n        offset++;\n      } else {\n        break;\n      }\n\n      pos++;\n    }\n\n    contentStart = pos;\n\n    if (contentStart >= max) {\n      // trimming space in \"-    \\n  3\" case, indent is 1 here\n      indentAfterMarker = 1;\n    } else {\n      indentAfterMarker = offset - initial;\n    }\n\n    // If we have more than 4 spaces, the indent is 1\n    // (the rest is just indented code block)\n    if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n    // \"  -  test\"\n    //  ^^^^^ - calculating total length of this thing\n    indent = initial + indentAfterMarker;\n\n    // Run subparser & write tokens\n    token        = state.push('list_item_open', 'li', 1);\n    token.markup = String.fromCharCode(markerCharCode);\n    token.map    = itemLines = [ startLine, 0 ];\n\n    // change current state, then restore it after parser subcall\n    oldTight = state.tight;\n    oldTShift = state.tShift[startLine];\n    oldSCount = state.sCount[startLine];\n\n    //  - example list\n    // ^ listIndent position will be here\n    //   ^ blkIndent position will be here\n    //\n    oldListIndent = state.listIndent;\n    state.listIndent = state.blkIndent;\n    state.blkIndent = indent;\n\n    state.tight = true;\n    state.tShift[startLine] = contentStart - state.bMarks[startLine];\n    state.sCount[startLine] = offset;\n\n    if (contentStart >= max && state.isEmpty(startLine + 1)) {\n      // workaround for this case\n      // (list item is empty, list terminates before \"foo\"):\n      // ~~~~~~~~\n      //   -\n      //\n      //     foo\n      // ~~~~~~~~\n      state.line = Math.min(state.line + 2, endLine);\n    } else {\n      state.md.block.tokenize(state, startLine, endLine, true);\n    }\n\n    // If any of list item is tight, mark list as tight\n    if (!state.tight || prevEmptyEnd) {\n      tight = false;\n    }\n    // Item become loose if finish with empty line,\n    // but we should filter last element, because it means list finish\n    prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n    state.blkIndent = state.listIndent;\n    state.listIndent = oldListIndent;\n    state.tShift[startLine] = oldTShift;\n    state.sCount[startLine] = oldSCount;\n    state.tight = oldTight;\n\n    token        = state.push('list_item_close', 'li', -1);\n    token.markup = String.fromCharCode(markerCharCode);\n\n    nextLine = startLine = state.line;\n    itemLines[1] = nextLine;\n    contentStart = state.bMarks[startLine];\n\n    if (nextLine >= endLine) { break; }\n\n    //\n    // Try to check if list is terminated or continued.\n    //\n    if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n    // if it's indented more than 3 spaces, it should be a code block\n    if (state.sCount[startLine] - state.blkIndent >= 4) { break; }\n\n    // fail if terminating block found\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n\n    // fail if list has another type\n    if (isOrdered) {\n      posAfterMarker = skipOrderedListMarker(state, nextLine);\n      if (posAfterMarker < 0) { break; }\n    } else {\n      posAfterMarker = skipBulletListMarker(state, nextLine);\n      if (posAfterMarker < 0) { break; }\n    }\n\n    if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n  }\n\n  // Finalize list\n  if (isOrdered) {\n    token = state.push('ordered_list_close', 'ol', -1);\n  } else {\n    token = state.push('bullet_list_close', 'ul', -1);\n  }\n  token.markup = String.fromCharCode(markerCharCode);\n\n  listLines[1] = nextLine;\n  state.line = nextLine;\n\n  state.parentType = oldParentType;\n\n  // mark paragraphs tight if needed\n  if (tight) {\n    markTightParagraphs(state, listTokIdx);\n  }\n\n  return true;\n};\n\n},{\"../common/utils\":4}],26:[function(require,module,exports){\n// Paragraph\n\n'use strict';\n\n\nmodule.exports = function paragraph(state, startLine/*, endLine*/) {\n  var content, terminate, i, l, token, oldParentType,\n      nextLine = startLine + 1,\n      terminatorRules = state.md.block.ruler.getRules('paragraph'),\n      endLine = state.lineMax;\n\n  oldParentType = state.parentType;\n  state.parentType = 'paragraph';\n\n  // jump line-by-line until empty one or EOF\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n  state.line = nextLine;\n\n  token          = state.push('paragraph_open', 'p', 1);\n  token.map      = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = content;\n  token.map      = [ startLine, state.line ];\n  token.children = [];\n\n  token          = state.push('paragraph_close', 'p', -1);\n\n  state.parentType = oldParentType;\n\n  return true;\n};\n\n},{}],27:[function(require,module,exports){\n'use strict';\n\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n  var ch,\n      destEndPos,\n      destEndLineNo,\n      endLine,\n      href,\n      i,\n      l,\n      label,\n      labelEnd,\n      oldParentType,\n      res,\n      start,\n      str,\n      terminate,\n      terminatorRules,\n      title,\n      lines = 0,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine],\n      nextLine = startLine + 1;\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n  // Simple check to quickly interrupt scan on [link](url) at the start of line.\n  // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n  while (++pos < max) {\n    if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n        state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n      if (pos + 1 === max) { return false; }\n      if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n      break;\n    }\n  }\n\n  endLine = state.lineMax;\n\n  // jump line-by-line until empty one or EOF\n  terminatorRules = state.md.block.ruler.getRules('reference');\n\n  oldParentType = state.parentType;\n  state.parentType = 'reference';\n\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n  max = str.length;\n\n  for (pos = 1; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x5B /* [ */) {\n      return false;\n    } else if (ch === 0x5D /* ] */) {\n      labelEnd = pos;\n      break;\n    } else if (ch === 0x0A /* \\n */) {\n      lines++;\n    } else if (ch === 0x5C /* \\ */) {\n      pos++;\n      if (pos < max && str.charCodeAt(pos) === 0x0A) {\n        lines++;\n      }\n    }\n  }\n\n  if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n  // [label]:   destination   'title'\n  //         ^^^ skip optional whitespace here\n  for (pos = labelEnd + 2; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x0A) {\n      lines++;\n    } else if (isSpace(ch)) {\n      /*eslint no-empty:0*/\n    } else {\n      break;\n    }\n  }\n\n  // [label]:   destination   'title'\n  //            ^^^^^^^^^^^ parse this\n  res = state.md.helpers.parseLinkDestination(str, pos, max);\n  if (!res.ok) { return false; }\n\n  href = state.md.normalizeLink(res.str);\n  if (!state.md.validateLink(href)) { return false; }\n\n  pos = res.pos;\n  lines += res.lines;\n\n  // save cursor state, we could require to rollback later\n  destEndPos = pos;\n  destEndLineNo = lines;\n\n  // [label]:   destination   'title'\n  //                       ^^^ skipping those spaces\n  start = pos;\n  for (; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x0A) {\n      lines++;\n    } else if (isSpace(ch)) {\n      /*eslint no-empty:0*/\n    } else {\n      break;\n    }\n  }\n\n  // [label]:   destination   'title'\n  //                          ^^^^^^^ parse this\n  res = state.md.helpers.parseLinkTitle(str, pos, max);\n  if (pos < max && start !== pos && res.ok) {\n    title = res.str;\n    pos = res.pos;\n    lines += res.lines;\n  } else {\n    title = '';\n    pos = destEndPos;\n    lines = destEndLineNo;\n  }\n\n  // skip trailing spaces until the rest of the line\n  while (pos < max) {\n    ch = str.charCodeAt(pos);\n    if (!isSpace(ch)) { break; }\n    pos++;\n  }\n\n  if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n    if (title) {\n      // garbage at the end of the line after title,\n      // but it could still be a valid reference if we roll back\n      title = '';\n      pos = destEndPos;\n      lines = destEndLineNo;\n      while (pos < max) {\n        ch = str.charCodeAt(pos);\n        if (!isSpace(ch)) { break; }\n        pos++;\n      }\n    }\n  }\n\n  if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n    // garbage at the end of the line\n    return false;\n  }\n\n  label = normalizeReference(str.slice(1, labelEnd));\n  if (!label) {\n    // CommonMark 0.20 disallows empty labels\n    return false;\n  }\n\n  // Reference can not terminate anything. This check is for safety only.\n  /*istanbul ignore if*/\n  if (silent) { return true; }\n\n  if (typeof state.env.references === 'undefined') {\n    state.env.references = {};\n  }\n  if (typeof state.env.references[label] === 'undefined') {\n    state.env.references[label] = { title: title, href: href };\n  }\n\n  state.parentType = oldParentType;\n\n  state.line = startLine + lines + 1;\n  return true;\n};\n\n},{\"../common/utils\":4}],28:[function(require,module,exports){\n// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n  var ch, s, start, pos, len, indent, offset, indent_found;\n\n  this.src = src;\n\n  // link to parser instance\n  this.md     = md;\n\n  this.env = env;\n\n  //\n  // Internal state vartiables\n  //\n\n  this.tokens = tokens;\n\n  this.bMarks = [];  // line begin offsets for fast jumps\n  this.eMarks = [];  // line end offsets for fast jumps\n  this.tShift = [];  // offsets of the first non-space characters (tabs not expanded)\n  this.sCount = [];  // indents for each line (tabs expanded)\n\n  // An amount of virtual spaces (tabs expanded) between beginning\n  // of each line (bMarks) and real beginning of that line.\n  //\n  // It exists only as a hack because blockquotes override bMarks\n  // losing information in the process.\n  //\n  // It's used only when expanding tabs, you can think about it as\n  // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n  // means first tab should be expanded to 4-21%4 === 3 spaces.\n  //\n  this.bsCount = [];\n\n  // block parser variables\n  this.blkIndent  = 0; // required block content indent (for example, if we are\n                       // inside a list, it would be positioned after list marker)\n  this.line       = 0; // line index in src\n  this.lineMax    = 0; // lines count\n  this.tight      = false;  // loose/tight mode for lists\n  this.ddIndent   = -1; // indent of the current dd block (-1 if there isn't any)\n  this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n  // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n  // used in lists to determine if they interrupt a paragraph\n  this.parentType = 'root';\n\n  this.level = 0;\n\n  // renderer\n  this.result = '';\n\n  // Create caches\n  // Generate markers.\n  s = this.src;\n  indent_found = false;\n\n  for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n    ch = s.charCodeAt(pos);\n\n    if (!indent_found) {\n      if (isSpace(ch)) {\n        indent++;\n\n        if (ch === 0x09) {\n          offset += 4 - offset % 4;\n        } else {\n          offset++;\n        }\n        continue;\n      } else {\n        indent_found = true;\n      }\n    }\n\n    if (ch === 0x0A || pos === len - 1) {\n      if (ch !== 0x0A) { pos++; }\n      this.bMarks.push(start);\n      this.eMarks.push(pos);\n      this.tShift.push(indent);\n      this.sCount.push(offset);\n      this.bsCount.push(0);\n\n      indent_found = false;\n      indent = 0;\n      offset = 0;\n      start = pos + 1;\n    }\n  }\n\n  // Push fake entry to simplify cache bounds checks\n  this.bMarks.push(s.length);\n  this.eMarks.push(s.length);\n  this.tShift.push(0);\n  this.sCount.push(0);\n  this.bsCount.push(0);\n\n  this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n  var token = new Token(type, tag, nesting);\n  token.block = true;\n\n  if (nesting < 0) this.level--; // closing tag\n  token.level = this.level;\n  if (nesting > 0) this.level++; // opening tag\n\n  this.tokens.push(token);\n  return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n  return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n  for (var max = this.lineMax; from < max; from++) {\n    if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n      break;\n    }\n  }\n  return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n  var ch;\n\n  for (var max = this.src.length; pos < max; pos++) {\n    ch = this.src.charCodeAt(pos);\n    if (!isSpace(ch)) { break; }\n  }\n  return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n  if (pos <= min) { return pos; }\n\n  while (pos > min) {\n    if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n  }\n  return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n  for (var max = this.src.length; pos < max; pos++) {\n    if (this.src.charCodeAt(pos) !== code) { break; }\n  }\n  return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n  if (pos <= min) { return pos; }\n\n  while (pos > min) {\n    if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n  }\n  return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n  var i, lineIndent, ch, first, last, queue, lineStart,\n      line = begin;\n\n  if (begin >= end) {\n    return '';\n  }\n\n  queue = new Array(end - begin);\n\n  for (i = 0; line < end; line++, i++) {\n    lineIndent = 0;\n    lineStart = first = this.bMarks[line];\n\n    if (line + 1 < end || keepLastLF) {\n      // No need for bounds check because we have fake entry on tail.\n      last = this.eMarks[line] + 1;\n    } else {\n      last = this.eMarks[line];\n    }\n\n    while (first < last && lineIndent < indent) {\n      ch = this.src.charCodeAt(first);\n\n      if (isSpace(ch)) {\n        if (ch === 0x09) {\n          lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n        } else {\n          lineIndent++;\n        }\n      } else if (first - lineStart < this.tShift[line]) {\n        // patched tShift masked characters to look like spaces (blockquotes, list markers)\n        lineIndent++;\n      } else {\n        break;\n      }\n\n      first++;\n    }\n\n    if (lineIndent > indent) {\n      // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n      // with indent=2 becomes '  \\tfoobar'\n      queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n    } else {\n      queue[i] = this.src.slice(first, last);\n    }\n  }\n\n  return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n\n},{\"../common/utils\":4,\"../token\":51}],29:[function(require,module,exports){\n// GFM table, non-standard\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction getLine(state, line) {\n  var pos = state.bMarks[line] + state.blkIndent,\n      max = state.eMarks[line];\n\n  return state.src.substr(pos, max - pos);\n}\n\nfunction escapedSplit(str) {\n  var result = [],\n      pos = 0,\n      max = str.length,\n      ch,\n      escapes = 0,\n      lastPos = 0,\n      backTicked = false,\n      lastBackTick = 0;\n\n  ch  = str.charCodeAt(pos);\n\n  while (pos < max) {\n    if (ch === 0x60/* ` */) {\n      if (backTicked) {\n        // make \\` close code sequence, but not open it;\n        // the reason is: `\\` is correct code block\n        backTicked = false;\n        lastBackTick = pos;\n      } else if (escapes % 2 === 0) {\n        backTicked = true;\n        lastBackTick = pos;\n      }\n    } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n      result.push(str.substring(lastPos, pos));\n      lastPos = pos + 1;\n    }\n\n    if (ch === 0x5c/* \\ */) {\n      escapes++;\n    } else {\n      escapes = 0;\n    }\n\n    pos++;\n\n    // If there was an un-closed backtick, go back to just after\n    // the last backtick, but as if it was a normal character\n    if (pos === max && backTicked) {\n      backTicked = false;\n      pos = lastBackTick + 1;\n    }\n\n    ch = str.charCodeAt(pos);\n  }\n\n  result.push(str.substring(lastPos));\n\n  return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n  var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n      aligns, t, tableLines, tbodyLines;\n\n  // should have at least two lines\n  if (startLine + 2 > endLine) { return false; }\n\n  nextLine = startLine + 1;\n\n  if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n  // first character of the second line should be '|', '-', ':',\n  // and no other characters are allowed but spaces;\n  // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n  pos = state.bMarks[nextLine] + state.tShift[nextLine];\n  if (pos >= state.eMarks[nextLine]) { return false; }\n\n  ch = state.src.charCodeAt(pos++);\n  if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n  while (pos < state.eMarks[nextLine]) {\n    ch = state.src.charCodeAt(pos);\n\n    if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false; }\n\n    pos++;\n  }\n\n  lineText = getLine(state, startLine + 1);\n\n  columns = lineText.split('|');\n  aligns = [];\n  for (i = 0; i < columns.length; i++) {\n    t = columns[i].trim();\n    if (!t) {\n      // allow empty columns before and after table, but not in between columns;\n      // e.g. allow ` |---| `, disallow ` ---||--- `\n      if (i === 0 || i === columns.length - 1) {\n        continue;\n      } else {\n        return false;\n      }\n    }\n\n    if (!/^:?-+:?$/.test(t)) { return false; }\n    if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n      aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n    } else if (t.charCodeAt(0) === 0x3A/* : */) {\n      aligns.push('left');\n    } else {\n      aligns.push('');\n    }\n  }\n\n  lineText = getLine(state, startLine).trim();\n  if (lineText.indexOf('|') === -1) { return false; }\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n  columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n  // header row will define an amount of columns in the entire table,\n  // and align row shouldn't be smaller than that (the rest of the rows can)\n  columnCount = columns.length;\n  if (columnCount > aligns.length) { return false; }\n\n  if (silent) { return true; }\n\n  token     = state.push('table_open', 'table', 1);\n  token.map = tableLines = [ startLine, 0 ];\n\n  token     = state.push('thead_open', 'thead', 1);\n  token.map = [ startLine, startLine + 1 ];\n\n  token     = state.push('tr_open', 'tr', 1);\n  token.map = [ startLine, startLine + 1 ];\n\n  for (i = 0; i < columns.length; i++) {\n    token          = state.push('th_open', 'th', 1);\n    token.map      = [ startLine, startLine + 1 ];\n    if (aligns[i]) {\n      token.attrs  = [ [ 'style', 'text-align:' + aligns[i] ] ];\n    }\n\n    token          = state.push('inline', '', 0);\n    token.content  = columns[i].trim();\n    token.map      = [ startLine, startLine + 1 ];\n    token.children = [];\n\n    token          = state.push('th_close', 'th', -1);\n  }\n\n  token     = state.push('tr_close', 'tr', -1);\n  token     = state.push('thead_close', 'thead', -1);\n\n  token     = state.push('tbody_open', 'tbody', 1);\n  token.map = tbodyLines = [ startLine + 2, 0 ];\n\n  for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n    if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n    lineText = getLine(state, nextLine).trim();\n    if (lineText.indexOf('|') === -1) { break; }\n    if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n    columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n    token = state.push('tr_open', 'tr', 1);\n    for (i = 0; i < columnCount; i++) {\n      token          = state.push('td_open', 'td', 1);\n      if (aligns[i]) {\n        token.attrs  = [ [ 'style', 'text-align:' + aligns[i] ] ];\n      }\n\n      token          = state.push('inline', '', 0);\n      token.content  = columns[i] ? columns[i].trim() : '';\n      token.children = [];\n\n      token          = state.push('td_close', 'td', -1);\n    }\n    token = state.push('tr_close', 'tr', -1);\n  }\n  token = state.push('tbody_close', 'tbody', -1);\n  token = state.push('table_close', 'table', -1);\n\n  tableLines[1] = tbodyLines[1] = nextLine;\n  state.line = nextLine;\n  return true;\n};\n\n},{\"../common/utils\":4}],30:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = function block(state) {\n  var token;\n\n  if (state.inlineMode) {\n    token          = new state.Token('inline', '', 0);\n    token.content  = state.src;\n    token.map      = [ 0, 1 ];\n    token.children = [];\n    state.tokens.push(token);\n  } else {\n    state.md.block.parse(state.src, state.md, state.env, state.tokens);\n  }\n};\n\n},{}],31:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function inline(state) {\n  var tokens = state.tokens, tok, i, l;\n\n  // Parse inlines\n  for (i = 0, l = tokens.length; i < l; i++) {\n    tok = tokens[i];\n    if (tok.type === 'inline') {\n      state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n    }\n  }\n};\n\n},{}],32:[function(require,module,exports){\n// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n'use strict';\n\n\nvar arrayReplaceAt = require('../common/utils').arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n  return /^<a[>\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n  return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n  var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n      level, htmlLinkLevel, url, fullUrl, urlText,\n      blockTokens = state.tokens,\n      links;\n\n  if (!state.md.options.linkify) { return; }\n\n  for (j = 0, l = blockTokens.length; j < l; j++) {\n    if (blockTokens[j].type !== 'inline' ||\n        !state.md.linkify.pretest(blockTokens[j].content)) {\n      continue;\n    }\n\n    tokens = blockTokens[j].children;\n\n    htmlLinkLevel = 0;\n\n    // We scan from the end, to keep position when new tags added.\n    // Use reversed logic in links start/end match\n    for (i = tokens.length - 1; i >= 0; i--) {\n      currentToken = tokens[i];\n\n      // Skip content of markdown links\n      if (currentToken.type === 'link_close') {\n        i--;\n        while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n          i--;\n        }\n        continue;\n      }\n\n      // Skip content of html tag links\n      if (currentToken.type === 'html_inline') {\n        if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n          htmlLinkLevel--;\n        }\n        if (isLinkClose(currentToken.content)) {\n          htmlLinkLevel++;\n        }\n      }\n      if (htmlLinkLevel > 0) { continue; }\n\n      if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n        text = currentToken.content;\n        links = state.md.linkify.match(text);\n\n        // Now split string to nodes\n        nodes = [];\n        level = currentToken.level;\n        lastPos = 0;\n\n        for (ln = 0; ln < links.length; ln++) {\n\n          url = links[ln].url;\n          fullUrl = state.md.normalizeLink(url);\n          if (!state.md.validateLink(fullUrl)) { continue; }\n\n          urlText = links[ln].text;\n\n          // Linkifier might send raw hostnames like \"example.com\", where url\n          // starts with domain name. So we prepend http:// in those cases,\n          // and remove it afterwards.\n          //\n          if (!links[ln].schema) {\n            urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n          } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n            urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n          } else {\n            urlText = state.md.normalizeLinkText(urlText);\n          }\n\n          pos = links[ln].index;\n\n          if (pos > lastPos) {\n            token         = new state.Token('text', '', 0);\n            token.content = text.slice(lastPos, pos);\n            token.level   = level;\n            nodes.push(token);\n          }\n\n          token         = new state.Token('link_open', 'a', 1);\n          token.attrs   = [ [ 'href', fullUrl ] ];\n          token.level   = level++;\n          token.markup  = 'linkify';\n          token.info    = 'auto';\n          nodes.push(token);\n\n          token         = new state.Token('text', '', 0);\n          token.content = urlText;\n          token.level   = level;\n          nodes.push(token);\n\n          token         = new state.Token('link_close', 'a', -1);\n          token.level   = --level;\n          token.markup  = 'linkify';\n          token.info    = 'auto';\n          nodes.push(token);\n\n          lastPos = links[ln].lastIndex;\n        }\n        if (lastPos < text.length) {\n          token         = new state.Token('text', '', 0);\n          token.content = text.slice(lastPos);\n          token.level   = level;\n          nodes.push(token);\n        }\n\n        // replace current node\n        blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n      }\n    }\n  }\n};\n\n},{\"../common/utils\":4}],33:[function(require,module,exports){\n// Normalize input string\n\n'use strict';\n\n\n// https://spec.commonmark.org/0.29/#line-ending\nvar NEWLINES_RE  = /\\r\\n?|\\n/g;\nvar NULL_RE      = /\\0/g;\n\n\nmodule.exports = function normalize(state) {\n  var str;\n\n  // Normalize newlines\n  str = state.src.replace(NEWLINES_RE, '\\n');\n\n  // Replace NULL characters\n  str = str.replace(NULL_RE, '\\uFFFD');\n\n  state.src = str;\n};\n\n},{}],34:[function(require,module,exports){\n// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → &ndash;, --- → &mdash;\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - miltiplication 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\nvar SCOPED_ABBR = {\n  c: '©',\n  r: '®',\n  p: '§',\n  tm: '™'\n};\n\nfunction replaceFn(match, name) {\n  return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n  var i, token, inside_autolink = 0;\n\n  for (i = inlineTokens.length - 1; i >= 0; i--) {\n    token = inlineTokens[i];\n\n    if (token.type === 'text' && !inside_autolink) {\n      token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n    }\n\n    if (token.type === 'link_open' && token.info === 'auto') {\n      inside_autolink--;\n    }\n\n    if (token.type === 'link_close' && token.info === 'auto') {\n      inside_autolink++;\n    }\n  }\n}\n\nfunction replace_rare(inlineTokens) {\n  var i, token, inside_autolink = 0;\n\n  for (i = inlineTokens.length - 1; i >= 0; i--) {\n    token = inlineTokens[i];\n\n    if (token.type === 'text' && !inside_autolink) {\n      if (RARE_RE.test(token.content)) {\n        token.content = token.content\n          .replace(/\\+-/g, '±')\n          // .., ..., ....... -> …\n          // but ?..... & !..... -> ?.. & !..\n          .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n          .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n          // em-dash\n          .replace(/(^|[^-])---([^-]|$)/mg, '$1\\u2014$2')\n          // en-dash\n          .replace(/(^|\\s)--(\\s|$)/mg, '$1\\u2013$2')\n          .replace(/(^|[^-\\s])--([^-\\s]|$)/mg, '$1\\u2013$2');\n      }\n    }\n\n    if (token.type === 'link_open' && token.info === 'auto') {\n      inside_autolink--;\n    }\n\n    if (token.type === 'link_close' && token.info === 'auto') {\n      inside_autolink++;\n    }\n  }\n}\n\n\nmodule.exports = function replace(state) {\n  var blkIdx;\n\n  if (!state.md.options.typographer) { return; }\n\n  for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n    if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n    if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n      replace_scoped(state.tokens[blkIdx].children);\n    }\n\n    if (RARE_RE.test(state.tokens[blkIdx].content)) {\n      replace_rare(state.tokens[blkIdx].children);\n    }\n\n  }\n};\n\n},{}],35:[function(require,module,exports){\n// Convert straight quotation marks to typographic ones\n//\n'use strict';\n\n\nvar isWhiteSpace   = require('../common/utils').isWhiteSpace;\nvar isPunctChar    = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* ’ */\n\n\nfunction replaceAt(str, index, ch) {\n  return str.substr(0, index) + ch + str.substr(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n  var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n      isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n      canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n  stack = [];\n\n  for (i = 0; i < tokens.length; i++) {\n    token = tokens[i];\n\n    thisLevel = tokens[i].level;\n\n    for (j = stack.length - 1; j >= 0; j--) {\n      if (stack[j].level <= thisLevel) { break; }\n    }\n    stack.length = j + 1;\n\n    if (token.type !== 'text') { continue; }\n\n    text = token.content;\n    pos = 0;\n    max = text.length;\n\n    /*eslint no-labels:0,block-scoped-var:0*/\n    OUTER:\n    while (pos < max) {\n      QUOTE_RE.lastIndex = pos;\n      t = QUOTE_RE.exec(text);\n      if (!t) { break; }\n\n      canOpen = canClose = true;\n      pos = t.index + 1;\n      isSingle = (t[0] === \"'\");\n\n      // Find previous character,\n      // default to space if it's the beginning of the line\n      //\n      lastChar = 0x20;\n\n      if (t.index - 1 >= 0) {\n        lastChar = text.charCodeAt(t.index - 1);\n      } else {\n        for (j = i - 1; j >= 0; j--) {\n          if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n          if (tokens[j].type !== 'text') continue;\n\n          lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n          break;\n        }\n      }\n\n      // Find next character,\n      // default to space if it's the end of the line\n      //\n      nextChar = 0x20;\n\n      if (pos < max) {\n        nextChar = text.charCodeAt(pos);\n      } else {\n        for (j = i + 1; j < tokens.length; j++) {\n          if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n          if (tokens[j].type !== 'text') continue;\n\n          nextChar = tokens[j].content.charCodeAt(0);\n          break;\n        }\n      }\n\n      isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n      isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n      isLastWhiteSpace = isWhiteSpace(lastChar);\n      isNextWhiteSpace = isWhiteSpace(nextChar);\n\n      if (isNextWhiteSpace) {\n        canOpen = false;\n      } else if (isNextPunctChar) {\n        if (!(isLastWhiteSpace || isLastPunctChar)) {\n          canOpen = false;\n        }\n      }\n\n      if (isLastWhiteSpace) {\n        canClose = false;\n      } else if (isLastPunctChar) {\n        if (!(isNextWhiteSpace || isNextPunctChar)) {\n          canClose = false;\n        }\n      }\n\n      if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n        if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n          // special case: 1\"\" - count first quote as an inch\n          canClose = canOpen = false;\n        }\n      }\n\n      if (canOpen && canClose) {\n        // treat this as the middle of the word\n        canOpen = false;\n        canClose = isNextPunctChar;\n      }\n\n      if (!canOpen && !canClose) {\n        // middle of word\n        if (isSingle) {\n          token.content = replaceAt(token.content, t.index, APOSTROPHE);\n        }\n        continue;\n      }\n\n      if (canClose) {\n        // this could be a closing quote, rewind the stack to get a match\n        for (j = stack.length - 1; j >= 0; j--) {\n          item = stack[j];\n          if (stack[j].level < thisLevel) { break; }\n          if (item.single === isSingle && stack[j].level === thisLevel) {\n            item = stack[j];\n\n            if (isSingle) {\n              openQuote = state.md.options.quotes[2];\n              closeQuote = state.md.options.quotes[3];\n            } else {\n              openQuote = state.md.options.quotes[0];\n              closeQuote = state.md.options.quotes[1];\n            }\n\n            // replace token.content *before* tokens[item.token].content,\n            // because, if they are pointing at the same token, replaceAt\n            // could mess up indices when quote length != 1\n            token.content = replaceAt(token.content, t.index, closeQuote);\n            tokens[item.token].content = replaceAt(\n              tokens[item.token].content, item.pos, openQuote);\n\n            pos += closeQuote.length - 1;\n            if (item.token === i) { pos += openQuote.length - 1; }\n\n            text = token.content;\n            max = text.length;\n\n            stack.length = j;\n            continue OUTER;\n          }\n        }\n      }\n\n      if (canOpen) {\n        stack.push({\n          token: i,\n          pos: t.index,\n          single: isSingle,\n          level: thisLevel\n        });\n      } else if (canClose && isSingle) {\n        token.content = replaceAt(token.content, t.index, APOSTROPHE);\n      }\n    }\n  }\n}\n\n\nmodule.exports = function smartquotes(state) {\n  /*eslint max-depth:0*/\n  var blkIdx;\n\n  if (!state.md.options.typographer) { return; }\n\n  for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n    if (state.tokens[blkIdx].type !== 'inline' ||\n        !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n      continue;\n    }\n\n    process_inlines(state.tokens[blkIdx].children, state);\n  }\n};\n\n},{\"../common/utils\":4}],36:[function(require,module,exports){\n// Core state object\n//\n'use strict';\n\nvar Token = require('../token');\n\n\nfunction StateCore(src, md, env) {\n  this.src = src;\n  this.env = env;\n  this.tokens = [];\n  this.inlineMode = false;\n  this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n\n},{\"../token\":51}],37:[function(require,module,exports){\n// Process autolinks '<protocol:...>'\n\n'use strict';\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE    = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar AUTOLINK_RE = /^<([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)>/;\n\n\nmodule.exports = function autolink(state, silent) {\n  var tail, linkMatch, emailMatch, url, fullUrl, token,\n      pos = state.pos;\n\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n  tail = state.src.slice(pos);\n\n  if (tail.indexOf('>') < 0) { return false; }\n\n  if (AUTOLINK_RE.test(tail)) {\n    linkMatch = tail.match(AUTOLINK_RE);\n\n    url = linkMatch[0].slice(1, -1);\n    fullUrl = state.md.normalizeLink(url);\n    if (!state.md.validateLink(fullUrl)) { return false; }\n\n    if (!silent) {\n      token         = state.push('link_open', 'a', 1);\n      token.attrs   = [ [ 'href', fullUrl ] ];\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n\n      token         = state.push('text', '', 0);\n      token.content = state.md.normalizeLinkText(url);\n\n      token         = state.push('link_close', 'a', -1);\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n    }\n\n    state.pos += linkMatch[0].length;\n    return true;\n  }\n\n  if (EMAIL_RE.test(tail)) {\n    emailMatch = tail.match(EMAIL_RE);\n\n    url = emailMatch[0].slice(1, -1);\n    fullUrl = state.md.normalizeLink('mailto:' + url);\n    if (!state.md.validateLink(fullUrl)) { return false; }\n\n    if (!silent) {\n      token         = state.push('link_open', 'a', 1);\n      token.attrs   = [ [ 'href', fullUrl ] ];\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n\n      token         = state.push('text', '', 0);\n      token.content = state.md.normalizeLinkText(url);\n\n      token         = state.push('link_close', 'a', -1);\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n    }\n\n    state.pos += emailMatch[0].length;\n    return true;\n  }\n\n  return false;\n};\n\n},{}],38:[function(require,module,exports){\n// Parse backticks\n\n'use strict';\n\nmodule.exports = function backtick(state, silent) {\n  var start, max, marker, matchStart, matchEnd, token,\n      pos = state.pos,\n      ch = state.src.charCodeAt(pos);\n\n  if (ch !== 0x60/* ` */) { return false; }\n\n  start = pos;\n  pos++;\n  max = state.posMax;\n\n  while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n  marker = state.src.slice(start, pos);\n\n  matchStart = matchEnd = pos;\n\n  while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n    matchEnd = matchStart + 1;\n\n    while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n    if (matchEnd - matchStart === marker.length) {\n      if (!silent) {\n        token         = state.push('code_inline', 'code', 0);\n        token.markup  = marker;\n        token.content = state.src.slice(pos, matchStart)\n          .replace(/\\n/g, ' ')\n          .replace(/^ (.+) $/, '$1');\n      }\n      state.pos = matchEnd;\n      return true;\n    }\n  }\n\n  if (!silent) { state.pending += marker; }\n  state.pos += marker.length;\n  return true;\n};\n\n},{}],39:[function(require,module,exports){\n// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nfunction processDelimiters(state, delimiters) {\n  var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n      isOddMatch, lastJump,\n      openersBottom = {},\n      max = delimiters.length;\n\n  for (closerIdx = 0; closerIdx < max; closerIdx++) {\n    closer = delimiters[closerIdx];\n\n    // Length is only used for emphasis-specific \"rule of 3\",\n    // if it's not defined (in strikethrough or 3rd party plugins),\n    // we can default it to 0 to disable those checks.\n    //\n    closer.length = closer.length || 0;\n\n    if (!closer.close) continue;\n\n    // Previously calculated lower bounds (previous fails)\n    // for each marker and each delimiter length modulo 3.\n    if (!openersBottom.hasOwnProperty(closer.marker)) {\n      openersBottom[closer.marker] = [ -1, -1, -1 ];\n    }\n\n    minOpenerIdx = openersBottom[closer.marker][closer.length % 3];\n    newMinOpenerIdx = -1;\n\n    openerIdx = closerIdx - closer.jump - 1;\n\n    for (; openerIdx > minOpenerIdx; openerIdx -= opener.jump + 1) {\n      opener = delimiters[openerIdx];\n\n      if (opener.marker !== closer.marker) continue;\n\n      if (newMinOpenerIdx === -1) newMinOpenerIdx = openerIdx;\n\n      if (opener.open &&\n          opener.end < 0 &&\n          opener.level === closer.level) {\n\n        isOddMatch = false;\n\n        // from spec:\n        //\n        // If one of the delimiters can both open and close emphasis, then the\n        // sum of the lengths of the delimiter runs containing the opening and\n        // closing delimiters must not be a multiple of 3 unless both lengths\n        // are multiples of 3.\n        //\n        if (opener.close || closer.open) {\n          if ((opener.length + closer.length) % 3 === 0) {\n            if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n              isOddMatch = true;\n            }\n          }\n        }\n\n        if (!isOddMatch) {\n          // If previous delimiter cannot be an opener, we can safely skip\n          // the entire sequence in future checks. This is required to make\n          // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n          //\n          lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n            delimiters[openerIdx - 1].jump + 1 :\n            0;\n\n          closer.jump  = closerIdx - openerIdx + lastJump;\n          closer.open  = false;\n          opener.end   = closerIdx;\n          opener.jump  = lastJump;\n          opener.close = false;\n          newMinOpenerIdx = -1;\n          break;\n        }\n      }\n    }\n\n    if (newMinOpenerIdx !== -1) {\n      // If match for this delimiter run failed, we want to set lower bound for\n      // future lookups. This is required to make sure algorithm has linear\n      // complexity.\n      //\n      // See details here:\n      // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n      //\n      openersBottom[closer.marker][(closer.length || 0) % 3] = newMinOpenerIdx;\n    }\n  }\n}\n\n\nmodule.exports = function link_pairs(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  processDelimiters(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      processDelimiters(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],40:[function(require,module,exports){\n// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n  var i, scanned, token,\n      start = state.pos,\n      marker = state.src.charCodeAt(start);\n\n  if (silent) { return false; }\n\n  if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n  scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n  for (i = 0; i < scanned.length; i++) {\n    token         = state.push('text', '', 0);\n    token.content = String.fromCharCode(marker);\n\n    state.delimiters.push({\n      // Char code of the starting marker (number).\n      //\n      marker: marker,\n\n      // Total length of these series of delimiters.\n      //\n      length: scanned.length,\n\n      // An amount of characters before this one that's equivalent to\n      // current one. In plain English: if this delimiter does not open\n      // an emphasis, neither do previous `jump` characters.\n      //\n      // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n      // value will be 0, for 2nd it's 1 and so on.\n      //\n      jump:   i,\n\n      // A position of the token this delimiter corresponds to.\n      //\n      token:  state.tokens.length - 1,\n\n      // If this delimiter is matched as a valid opener, `end` will be\n      // equal to its position, otherwise it's `-1`.\n      //\n      end:    -1,\n\n      // Boolean flags that determine if this delimiter could open or close\n      // an emphasis.\n      //\n      open:   scanned.can_open,\n      close:  scanned.can_close\n    });\n  }\n\n  state.pos += scanned.length;\n\n  return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n  var i,\n      startDelim,\n      endDelim,\n      token,\n      ch,\n      isStrong,\n      max = delimiters.length;\n\n  for (i = max - 1; i >= 0; i--) {\n    startDelim = delimiters[i];\n\n    if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n      continue;\n    }\n\n    // Process only opening markers\n    if (startDelim.end === -1) {\n      continue;\n    }\n\n    endDelim = delimiters[startDelim.end];\n\n    // If the previous delimiter has the same marker and is adjacent to this one,\n    // merge those into one strong delimiter.\n    //\n    // `<em><em>whatever</em></em>` -> `<strong>whatever</strong>`\n    //\n    isStrong = i > 0 &&\n               delimiters[i - 1].end === startDelim.end + 1 &&\n               delimiters[i - 1].token === startDelim.token - 1 &&\n               delimiters[startDelim.end + 1].token === endDelim.token + 1 &&\n               delimiters[i - 1].marker === startDelim.marker;\n\n    ch = String.fromCharCode(startDelim.marker);\n\n    token         = state.tokens[startDelim.token];\n    token.type    = isStrong ? 'strong_open' : 'em_open';\n    token.tag     = isStrong ? 'strong' : 'em';\n    token.nesting = 1;\n    token.markup  = isStrong ? ch + ch : ch;\n    token.content = '';\n\n    token         = state.tokens[endDelim.token];\n    token.type    = isStrong ? 'strong_close' : 'em_close';\n    token.tag     = isStrong ? 'strong' : 'em';\n    token.nesting = -1;\n    token.markup  = isStrong ? ch + ch : ch;\n    token.content = '';\n\n    if (isStrong) {\n      state.tokens[delimiters[i - 1].token].content = '';\n      state.tokens[delimiters[startDelim.end + 1].token].content = '';\n      i--;\n    }\n  }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  postProcess(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      postProcess(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],41:[function(require,module,exports){\n// Process html entity - &#123;, &#xAF;, &quot;, ...\n\n'use strict';\n\nvar entities          = require('../common/entities');\nvar has               = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint     = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nvar NAMED_RE   = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n  var ch, code, match, pos = state.pos, max = state.posMax;\n\n  if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n  if (pos + 1 < max) {\n    ch = state.src.charCodeAt(pos + 1);\n\n    if (ch === 0x23 /* # */) {\n      match = state.src.slice(pos).match(DIGITAL_RE);\n      if (match) {\n        if (!silent) {\n          code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n          state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n        }\n        state.pos += match[0].length;\n        return true;\n      }\n    } else {\n      match = state.src.slice(pos).match(NAMED_RE);\n      if (match) {\n        if (has(entities, match[1])) {\n          if (!silent) { state.pending += entities[match[1]]; }\n          state.pos += match[0].length;\n          return true;\n        }\n      }\n    }\n  }\n\n  if (!silent) { state.pending += '&'; }\n  state.pos++;\n  return true;\n};\n\n},{\"../common/entities\":1,\"../common/utils\":4}],42:[function(require,module,exports){\n// Process escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n  .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n  var ch, pos = state.pos, max = state.posMax;\n\n  if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n  pos++;\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (ch < 256 && ESCAPED[ch] !== 0) {\n      if (!silent) { state.pending += state.src[pos]; }\n      state.pos += 2;\n      return true;\n    }\n\n    if (ch === 0x0A) {\n      if (!silent) {\n        state.push('hardbreak', 'br', 0);\n      }\n\n      pos++;\n      // skip leading whitespaces from next line\n      while (pos < max) {\n        ch = state.src.charCodeAt(pos);\n        if (!isSpace(ch)) { break; }\n        pos++;\n      }\n\n      state.pos = pos;\n      return true;\n    }\n  }\n\n  if (!silent) { state.pending += '\\\\'; }\n  state.pos++;\n  return true;\n};\n\n},{\"../common/utils\":4}],43:[function(require,module,exports){\n// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n  /*eslint no-bitwise:0*/\n  var lc = ch | 0x20; // to lower case\n  return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n  var ch, match, max, token,\n      pos = state.pos;\n\n  if (!state.md.options.html) { return false; }\n\n  // Check start\n  max = state.posMax;\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n      pos + 2 >= max) {\n    return false;\n  }\n\n  // Quick fail on second char\n  ch = state.src.charCodeAt(pos + 1);\n  if (ch !== 0x21/* ! */ &&\n      ch !== 0x3F/* ? */ &&\n      ch !== 0x2F/* / */ &&\n      !isLetter(ch)) {\n    return false;\n  }\n\n  match = state.src.slice(pos).match(HTML_TAG_RE);\n  if (!match) { return false; }\n\n  if (!silent) {\n    token         = state.push('html_inline', '', 0);\n    token.content = state.src.slice(pos, pos + match[0].length);\n  }\n  state.pos += match[0].length;\n  return true;\n};\n\n},{\"../common/html_re\":3}],44:[function(require,module,exports){\n// Process ![image](<src> \"title\")\n\n'use strict';\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n  var attrs,\n      code,\n      content,\n      label,\n      labelEnd,\n      labelStart,\n      pos,\n      ref,\n      res,\n      title,\n      token,\n      tokens,\n      start,\n      href = '',\n      oldPos = state.pos,\n      max = state.posMax;\n\n  if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n  if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n  labelStart = state.pos + 2;\n  labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n  // parser failed to find ']', so it's not a valid link\n  if (labelEnd < 0) { return false; }\n\n  pos = labelEnd + 1;\n  if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n    //\n    // Inline link\n    //\n\n    // [link](  <href>  \"title\"  )\n    //        ^^ skipping these spaces\n    pos++;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n    if (pos >= max) { return false; }\n\n    // [link](  <href>  \"title\"  )\n    //          ^^^^^^ parsing link destination\n    start = pos;\n    res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n    if (res.ok) {\n      href = state.md.normalizeLink(res.str);\n      if (state.md.validateLink(href)) {\n        pos = res.pos;\n      } else {\n        href = '';\n      }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                ^^ skipping these spaces\n    start = pos;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                  ^^^^^^^ parsing link title\n    res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n    if (pos < max && start !== pos && res.ok) {\n      title = res.str;\n      pos = res.pos;\n\n      // [link](  <href>  \"title\"  )\n      //                         ^^ skipping these spaces\n      for (; pos < max; pos++) {\n        code = state.src.charCodeAt(pos);\n        if (!isSpace(code) && code !== 0x0A) { break; }\n      }\n    } else {\n      title = '';\n    }\n\n    if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n      state.pos = oldPos;\n      return false;\n    }\n    pos++;\n  } else {\n    //\n    // Link reference\n    //\n    if (typeof state.env.references === 'undefined') { return false; }\n\n    if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n      start = pos + 1;\n      pos = state.md.helpers.parseLinkLabel(state, pos);\n      if (pos >= 0) {\n        label = state.src.slice(start, pos++);\n      } else {\n        pos = labelEnd + 1;\n      }\n    } else {\n      pos = labelEnd + 1;\n    }\n\n    // covers label === '' and label === undefined\n    // (collapsed reference link and shortcut reference link respectively)\n    if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n    ref = state.env.references[normalizeReference(label)];\n    if (!ref) {\n      state.pos = oldPos;\n      return false;\n    }\n    href = ref.href;\n    title = ref.title;\n  }\n\n  //\n  // We found the end of the link, and know for a fact it's a valid link;\n  // so all that's left to do is to call tokenizer.\n  //\n  if (!silent) {\n    content = state.src.slice(labelStart, labelEnd);\n\n    state.md.inline.parse(\n      content,\n      state.md,\n      state.env,\n      tokens = []\n    );\n\n    token          = state.push('image', 'img', 0);\n    token.attrs    = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n    token.children = tokens;\n    token.content  = content;\n\n    if (title) {\n      attrs.push([ 'title', title ]);\n    }\n  }\n\n  state.pos = pos;\n  state.posMax = max;\n  return true;\n};\n\n},{\"../common/utils\":4}],45:[function(require,module,exports){\n// Process [link](<to> \"stuff\")\n\n'use strict';\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n  var attrs,\n      code,\n      label,\n      labelEnd,\n      labelStart,\n      pos,\n      res,\n      ref,\n      title,\n      token,\n      href = '',\n      oldPos = state.pos,\n      max = state.posMax,\n      start = state.pos,\n      parseReference = true;\n\n  if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n  labelStart = state.pos + 1;\n  labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n  // parser failed to find ']', so it's not a valid link\n  if (labelEnd < 0) { return false; }\n\n  pos = labelEnd + 1;\n  if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n    //\n    // Inline link\n    //\n\n    // might have found a valid shortcut link, disable reference parsing\n    parseReference = false;\n\n    // [link](  <href>  \"title\"  )\n    //        ^^ skipping these spaces\n    pos++;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n    if (pos >= max) { return false; }\n\n    // [link](  <href>  \"title\"  )\n    //          ^^^^^^ parsing link destination\n    start = pos;\n    res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n    if (res.ok) {\n      href = state.md.normalizeLink(res.str);\n      if (state.md.validateLink(href)) {\n        pos = res.pos;\n      } else {\n        href = '';\n      }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                ^^ skipping these spaces\n    start = pos;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                  ^^^^^^^ parsing link title\n    res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n    if (pos < max && start !== pos && res.ok) {\n      title = res.str;\n      pos = res.pos;\n\n      // [link](  <href>  \"title\"  )\n      //                         ^^ skipping these spaces\n      for (; pos < max; pos++) {\n        code = state.src.charCodeAt(pos);\n        if (!isSpace(code) && code !== 0x0A) { break; }\n      }\n    } else {\n      title = '';\n    }\n\n    if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n      // parsing a valid shortcut link failed, fallback to reference\n      parseReference = true;\n    }\n    pos++;\n  }\n\n  if (parseReference) {\n    //\n    // Link reference\n    //\n    if (typeof state.env.references === 'undefined') { return false; }\n\n    if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n      start = pos + 1;\n      pos = state.md.helpers.parseLinkLabel(state, pos);\n      if (pos >= 0) {\n        label = state.src.slice(start, pos++);\n      } else {\n        pos = labelEnd + 1;\n      }\n    } else {\n      pos = labelEnd + 1;\n    }\n\n    // covers label === '' and label === undefined\n    // (collapsed reference link and shortcut reference link respectively)\n    if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n    ref = state.env.references[normalizeReference(label)];\n    if (!ref) {\n      state.pos = oldPos;\n      return false;\n    }\n    href = ref.href;\n    title = ref.title;\n  }\n\n  //\n  // We found the end of the link, and know for a fact it's a valid link;\n  // so all that's left to do is to call tokenizer.\n  //\n  if (!silent) {\n    state.pos = labelStart;\n    state.posMax = labelEnd;\n\n    token        = state.push('link_open', 'a', 1);\n    token.attrs  = attrs = [ [ 'href', href ] ];\n    if (title) {\n      attrs.push([ 'title', title ]);\n    }\n\n    state.md.inline.tokenize(state);\n\n    token        = state.push('link_close', 'a', -1);\n  }\n\n  state.pos = pos;\n  state.posMax = max;\n  return true;\n};\n\n},{\"../common/utils\":4}],46:[function(require,module,exports){\n// Proceess '\\n'\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function newline(state, silent) {\n  var pmax, max, pos = state.pos;\n\n  if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n  pmax = state.pending.length - 1;\n  max = state.posMax;\n\n  // '  \\n' -> hardbreak\n  // Lookup in pending chars is bad practice! Don't copy to other rules!\n  // Pending string is stored in concat mode, indexed lookups will cause\n  // convertion to flat mode.\n  if (!silent) {\n    if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n      if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n        state.pending = state.pending.replace(/ +$/, '');\n        state.push('hardbreak', 'br', 0);\n      } else {\n        state.pending = state.pending.slice(0, -1);\n        state.push('softbreak', 'br', 0);\n      }\n\n    } else {\n      state.push('softbreak', 'br', 0);\n    }\n  }\n\n  pos++;\n\n  // skip heading spaces for next line\n  while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++; }\n\n  state.pos = pos;\n  return true;\n};\n\n},{\"../common/utils\":4}],47:[function(require,module,exports){\n// Inline parser state\n\n'use strict';\n\n\nvar Token          = require('../token');\nvar isWhiteSpace   = require('../common/utils').isWhiteSpace;\nvar isPunctChar    = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n  this.src = src;\n  this.env = env;\n  this.md = md;\n  this.tokens = outTokens;\n  this.tokens_meta = Array(outTokens.length);\n\n  this.pos = 0;\n  this.posMax = this.src.length;\n  this.level = 0;\n  this.pending = '';\n  this.pendingLevel = 0;\n\n  // Stores { start: end } pairs. Useful for backtrack\n  // optimization of pairs parse (emphasis, strikes).\n  this.cache = {};\n\n  // List of emphasis-like delimiters for current tag\n  this.delimiters = [];\n\n  // Stack of delimiter lists for upper level tags\n  this._prev_delimiters = [];\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n  var token = new Token('text', '', 0);\n  token.content = this.pending;\n  token.level = this.pendingLevel;\n  this.tokens.push(token);\n  this.pending = '';\n  return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n  if (this.pending) {\n    this.pushPending();\n  }\n\n  var token = new Token(type, tag, nesting);\n  var token_meta = null;\n\n  if (nesting < 0) {\n    // closing tag\n    this.level--;\n    this.delimiters = this._prev_delimiters.pop();\n  }\n\n  token.level = this.level;\n\n  if (nesting > 0) {\n    // opening tag\n    this.level++;\n    this._prev_delimiters.push(this.delimiters);\n    this.delimiters = [];\n    token_meta = { delimiters: this.delimiters };\n  }\n\n  this.pendingLevel = this.level;\n  this.tokens.push(token);\n  this.tokens_meta.push(token_meta);\n  return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n//  - start - position to scan from (it should point at a valid marker);\n//  - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n  var pos = start, lastChar, nextChar, count, can_open, can_close,\n      isLastWhiteSpace, isLastPunctChar,\n      isNextWhiteSpace, isNextPunctChar,\n      left_flanking = true,\n      right_flanking = true,\n      max = this.posMax,\n      marker = this.src.charCodeAt(start);\n\n  // treat beginning of the line as a whitespace\n  lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n  while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n  count = pos - start;\n\n  // treat end of the line as a whitespace\n  nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n  isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n  isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n  isLastWhiteSpace = isWhiteSpace(lastChar);\n  isNextWhiteSpace = isWhiteSpace(nextChar);\n\n  if (isNextWhiteSpace) {\n    left_flanking = false;\n  } else if (isNextPunctChar) {\n    if (!(isLastWhiteSpace || isLastPunctChar)) {\n      left_flanking = false;\n    }\n  }\n\n  if (isLastWhiteSpace) {\n    right_flanking = false;\n  } else if (isLastPunctChar) {\n    if (!(isNextWhiteSpace || isNextPunctChar)) {\n      right_flanking = false;\n    }\n  }\n\n  if (!canSplitWord) {\n    can_open  = left_flanking  && (!right_flanking || isLastPunctChar);\n    can_close = right_flanking && (!left_flanking  || isNextPunctChar);\n  } else {\n    can_open  = left_flanking;\n    can_close = right_flanking;\n  }\n\n  return {\n    can_open:  can_open,\n    can_close: can_close,\n    length:    count\n  };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n\n},{\"../common/utils\":4,\"../token\":51}],48:[function(require,module,exports){\n// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n  var i, scanned, token, len, ch,\n      start = state.pos,\n      marker = state.src.charCodeAt(start);\n\n  if (silent) { return false; }\n\n  if (marker !== 0x7E/* ~ */) { return false; }\n\n  scanned = state.scanDelims(state.pos, true);\n  len = scanned.length;\n  ch = String.fromCharCode(marker);\n\n  if (len < 2) { return false; }\n\n  if (len % 2) {\n    token         = state.push('text', '', 0);\n    token.content = ch;\n    len--;\n  }\n\n  for (i = 0; i < len; i += 2) {\n    token         = state.push('text', '', 0);\n    token.content = ch + ch;\n\n    state.delimiters.push({\n      marker: marker,\n      length: 0, // disable \"rule of 3\" length checks meant for emphasis\n      jump:   i,\n      token:  state.tokens.length - 1,\n      end:    -1,\n      open:   scanned.can_open,\n      close:  scanned.can_close\n    });\n  }\n\n  state.pos += scanned.length;\n\n  return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n  var i, j,\n      startDelim,\n      endDelim,\n      token,\n      loneMarkers = [],\n      max = delimiters.length;\n\n  for (i = 0; i < max; i++) {\n    startDelim = delimiters[i];\n\n    if (startDelim.marker !== 0x7E/* ~ */) {\n      continue;\n    }\n\n    if (startDelim.end === -1) {\n      continue;\n    }\n\n    endDelim = delimiters[startDelim.end];\n\n    token         = state.tokens[startDelim.token];\n    token.type    = 's_open';\n    token.tag     = 's';\n    token.nesting = 1;\n    token.markup  = '~~';\n    token.content = '';\n\n    token         = state.tokens[endDelim.token];\n    token.type    = 's_close';\n    token.tag     = 's';\n    token.nesting = -1;\n    token.markup  = '~~';\n    token.content = '';\n\n    if (state.tokens[endDelim.token - 1].type === 'text' &&\n        state.tokens[endDelim.token - 1].content === '~') {\n\n      loneMarkers.push(endDelim.token - 1);\n    }\n  }\n\n  // If a marker sequence has an odd number of characters, it's splitted\n  // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n  // start of the sequence.\n  //\n  // So, we have to move all those markers after subsequent s_close tags.\n  //\n  while (loneMarkers.length) {\n    i = loneMarkers.pop();\n    j = i + 1;\n\n    while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n      j++;\n    }\n\n    j--;\n\n    if (i !== j) {\n      token = state.tokens[j];\n      state.tokens[j] = state.tokens[i];\n      state.tokens[i] = token;\n    }\n  }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  postProcess(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      postProcess(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],49:[function(require,module,exports){\n// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n  switch (ch) {\n    case 0x0A/* \\n */:\n    case 0x21/* ! */:\n    case 0x23/* # */:\n    case 0x24/* $ */:\n    case 0x25/* % */:\n    case 0x26/* & */:\n    case 0x2A/* * */:\n    case 0x2B/* + */:\n    case 0x2D/* - */:\n    case 0x3A/* : */:\n    case 0x3C/* < */:\n    case 0x3D/* = */:\n    case 0x3E/* > */:\n    case 0x40/* @ */:\n    case 0x5B/* [ */:\n    case 0x5C/* \\ */:\n    case 0x5D/* ] */:\n    case 0x5E/* ^ */:\n    case 0x5F/* _ */:\n    case 0x60/* ` */:\n    case 0x7B/* { */:\n    case 0x7D/* } */:\n    case 0x7E/* ~ */:\n      return true;\n    default:\n      return false;\n  }\n}\n\nmodule.exports = function text(state, silent) {\n  var pos = state.pos;\n\n  while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n    pos++;\n  }\n\n  if (pos === state.pos) { return false; }\n\n  if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n  state.pos = pos;\n\n  return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n  var pos = state.pos,\n      idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n  // first char is terminator -> empty text\n  if (idx === 0) { return false; }\n\n  // no terminator -> text till end of string\n  if (idx < 0) {\n    if (!silent) { state.pending += state.src.slice(pos); }\n    state.pos = state.src.length;\n    return true;\n  }\n\n  if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n  state.pos += idx;\n\n  return true;\n};*/\n\n},{}],50:[function(require,module,exports){\n// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n'use strict';\n\n\nmodule.exports = function text_collapse(state) {\n  var curr, last,\n      level = 0,\n      tokens = state.tokens,\n      max = state.tokens.length;\n\n  for (curr = last = 0; curr < max; curr++) {\n    // re-calculate levels after emphasis/strikethrough turns some text nodes\n    // into opening/closing tags\n    if (tokens[curr].nesting < 0) level--; // closing tag\n    tokens[curr].level = level;\n    if (tokens[curr].nesting > 0) level++; // opening tag\n\n    if (tokens[curr].type === 'text' &&\n        curr + 1 < max &&\n        tokens[curr + 1].type === 'text') {\n\n      // collapse two adjacent text nodes\n      tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n    } else {\n      if (curr !== last) { tokens[last] = tokens[curr]; }\n\n      last++;\n    }\n  }\n\n  if (curr !== last) {\n    tokens.length = last;\n  }\n};\n\n},{}],51:[function(require,module,exports){\n// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n  /**\n   * Token#type -> String\n   *\n   * Type of the token (string, e.g. \"paragraph_open\")\n   **/\n  this.type     = type;\n\n  /**\n   * Token#tag -> String\n   *\n   * html tag name, e.g. \"p\"\n   **/\n  this.tag      = tag;\n\n  /**\n   * Token#attrs -> Array\n   *\n   * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n   **/\n  this.attrs    = null;\n\n  /**\n   * Token#map -> Array\n   *\n   * Source map info. Format: `[ line_begin, line_end ]`\n   **/\n  this.map      = null;\n\n  /**\n   * Token#nesting -> Number\n   *\n   * Level change (number in {-1, 0, 1} set), where:\n   *\n   * -  `1` means the tag is opening\n   * -  `0` means the tag is self-closing\n   * - `-1` means the tag is closing\n   **/\n  this.nesting  = nesting;\n\n  /**\n   * Token#level -> Number\n   *\n   * nesting level, the same as `state.level`\n   **/\n  this.level    = 0;\n\n  /**\n   * Token#children -> Array\n   *\n   * An array of child nodes (inline and img tokens)\n   **/\n  this.children = null;\n\n  /**\n   * Token#content -> String\n   *\n   * In a case of self-closing tag (code, html, fence, etc.),\n   * it has contents of this tag.\n   **/\n  this.content  = '';\n\n  /**\n   * Token#markup -> String\n   *\n   * '*' or '_' for emphasis, fence string for fence, etc.\n   **/\n  this.markup   = '';\n\n  /**\n   * Token#info -> String\n   *\n   * fence infostring\n   **/\n  this.info     = '';\n\n  /**\n   * Token#meta -> Object\n   *\n   * A place for plugins to store an arbitrary data\n   **/\n  this.meta     = null;\n\n  /**\n   * Token#block -> Boolean\n   *\n   * True for block-level tokens, false for inline tokens.\n   * Used in renderer to calculate line breaks\n   **/\n  this.block    = false;\n\n  /**\n   * Token#hidden -> Boolean\n   *\n   * If it's true, ignore this element when rendering. Used for tight lists\n   * to hide paragraphs.\n   **/\n  this.hidden   = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n  var attrs, i, len;\n\n  if (!this.attrs) { return -1; }\n\n  attrs = this.attrs;\n\n  for (i = 0, len = attrs.length; i < len; i++) {\n    if (attrs[i][0] === name) { return i; }\n  }\n  return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n  if (this.attrs) {\n    this.attrs.push(attrData);\n  } else {\n    this.attrs = [ attrData ];\n  }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n  var idx = this.attrIndex(name),\n      attrData = [ name, value ];\n\n  if (idx < 0) {\n    this.attrPush(attrData);\n  } else {\n    this.attrs[idx] = attrData;\n  }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n  var idx = this.attrIndex(name), value = null;\n  if (idx >= 0) {\n    value = this.attrs[idx][1];\n  }\n  return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n  var idx = this.attrIndex(name);\n\n  if (idx < 0) {\n    this.attrPush([ name, value ]);\n  } else {\n    this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n  }\n};\n\n\nmodule.exports = Token;\n\n},{}],52:[function(require,module,exports){\nmodule.exports={ \"Aacute\": \"\\u00C1\", \"aacute\": \"\\u00E1\", \"Abreve\": \"\\u0102\", \"abreve\": \"\\u0103\", \"ac\": \"\\u223E\", \"acd\": \"\\u223F\", \"acE\": \"\\u223E\\u0333\", \"Acirc\": \"\\u00C2\", \"acirc\": \"\\u00E2\", \"acute\": \"\\u00B4\", \"Acy\": \"\\u0410\", \"acy\": \"\\u0430\", \"AElig\": \"\\u00C6\", \"aelig\": \"\\u00E6\", \"af\": \"\\u2061\", \"Afr\": \"\\uD835\\uDD04\", \"afr\": \"\\uD835\\uDD1E\", \"Agrave\": \"\\u00C0\", \"agrave\": \"\\u00E0\", \"alefsym\": \"\\u2135\", \"aleph\": \"\\u2135\", \"Alpha\": \"\\u0391\", \"alpha\": \"\\u03B1\", \"Amacr\": \"\\u0100\", \"amacr\": \"\\u0101\", \"amalg\": \"\\u2A3F\", \"amp\": \"&\", \"AMP\": \"&\", \"andand\": \"\\u2A55\", \"And\": \"\\u2A53\", \"and\": \"\\u2227\", \"andd\": \"\\u2A5C\", \"andslope\": \"\\u2A58\", \"andv\": \"\\u2A5A\", \"ang\": \"\\u2220\", \"ange\": \"\\u29A4\", \"angle\": \"\\u2220\", \"angmsdaa\": \"\\u29A8\", \"angmsdab\": \"\\u29A9\", \"angmsdac\": \"\\u29AA\", \"angmsdad\": \"\\u29AB\", \"angmsdae\": \"\\u29AC\", \"angmsdaf\": \"\\u29AD\", \"angmsdag\": \"\\u29AE\", \"angmsdah\": \"\\u29AF\", \"angmsd\": \"\\u2221\", \"angrt\": \"\\u221F\", \"angrtvb\": \"\\u22BE\", \"angrtvbd\": \"\\u299D\", \"angsph\": \"\\u2222\", \"angst\": \"\\u00C5\", \"angzarr\": \"\\u237C\", \"Aogon\": \"\\u0104\", \"aogon\": \"\\u0105\", \"Aopf\": \"\\uD835\\uDD38\", \"aopf\": \"\\uD835\\uDD52\", \"apacir\": \"\\u2A6F\", \"ap\": \"\\u2248\", \"apE\": \"\\u2A70\", \"ape\": \"\\u224A\", \"apid\": \"\\u224B\", \"apos\": \"'\", \"ApplyFunction\": \"\\u2061\", \"approx\": \"\\u2248\", \"approxeq\": \"\\u224A\", \"Aring\": \"\\u00C5\", \"aring\": \"\\u00E5\", \"Ascr\": \"\\uD835\\uDC9C\", \"ascr\": \"\\uD835\\uDCB6\", \"Assign\": \"\\u2254\", \"ast\": \"*\", \"asymp\": \"\\u2248\", \"asympeq\": \"\\u224D\", \"Atilde\": \"\\u00C3\", \"atilde\": \"\\u00E3\", \"Auml\": \"\\u00C4\", \"auml\": \"\\u00E4\", \"awconint\": \"\\u2233\", \"awint\": \"\\u2A11\", \"backcong\": \"\\u224C\", \"backepsilon\": \"\\u03F6\", \"backprime\": \"\\u2035\", \"backsim\": \"\\u223D\", \"backsimeq\": \"\\u22CD\", \"Backslash\": \"\\u2216\", \"Barv\": \"\\u2AE7\", \"barvee\": \"\\u22BD\", \"barwed\": \"\\u2305\", \"Barwed\": \"\\u2306\", \"barwedge\": \"\\u2305\", \"bbrk\": \"\\u23B5\", \"bbrktbrk\": \"\\u23B6\", \"bcong\": \"\\u224C\", \"Bcy\": \"\\u0411\", \"bcy\": \"\\u0431\", \"bdquo\": \"\\u201E\", \"becaus\": \"\\u2235\", \"because\": \"\\u2235\", \"Because\": \"\\u2235\", \"bemptyv\": \"\\u29B0\", \"bepsi\": \"\\u03F6\", \"bernou\": \"\\u212C\", \"Bernoullis\": \"\\u212C\", \"Beta\": \"\\u0392\", \"beta\": \"\\u03B2\", \"beth\": \"\\u2136\", \"between\": \"\\u226C\", \"Bfr\": \"\\uD835\\uDD05\", \"bfr\": \"\\uD835\\uDD1F\", \"bigcap\": \"\\u22C2\", \"bigcirc\": \"\\u25EF\", \"bigcup\": \"\\u22C3\", \"bigodot\": \"\\u2A00\", \"bigoplus\": \"\\u2A01\", \"bigotimes\": \"\\u2A02\", \"bigsqcup\": \"\\u2A06\", \"bigstar\": \"\\u2605\", \"bigtriangledown\": \"\\u25BD\", \"bigtriangleup\": \"\\u25B3\", \"biguplus\": \"\\u2A04\", \"bigvee\": \"\\u22C1\", \"bigwedge\": \"\\u22C0\", \"bkarow\": \"\\u290D\", \"blacklozenge\": \"\\u29EB\", \"blacksquare\": \"\\u25AA\", \"blacktriangle\": \"\\u25B4\", \"blacktriangledown\": \"\\u25BE\", \"blacktriangleleft\": \"\\u25C2\", \"blacktriangleright\": \"\\u25B8\", \"blank\": \"\\u2423\", \"blk12\": \"\\u2592\", \"blk14\": \"\\u2591\", \"blk34\": \"\\u2593\", \"block\": \"\\u2588\", \"bne\": \"=\\u20E5\", \"bnequiv\": \"\\u2261\\u20E5\", \"bNot\": \"\\u2AED\", \"bnot\": \"\\u2310\", \"Bopf\": \"\\uD835\\uDD39\", \"bopf\": \"\\uD835\\uDD53\", \"bot\": \"\\u22A5\", \"bottom\": \"\\u22A5\", \"bowtie\": \"\\u22C8\", \"boxbox\": \"\\u29C9\", \"boxdl\": \"\\u2510\", \"boxdL\": \"\\u2555\", \"boxDl\": \"\\u2556\", \"boxDL\": \"\\u2557\", \"boxdr\": \"\\u250C\", \"boxdR\": \"\\u2552\", \"boxDr\": \"\\u2553\", \"boxDR\": \"\\u2554\", \"boxh\": \"\\u2500\", \"boxH\": \"\\u2550\", \"boxhd\": \"\\u252C\", \"boxHd\": \"\\u2564\", \"boxhD\": \"\\u2565\", \"boxHD\": \"\\u2566\", \"boxhu\": \"\\u2534\", \"boxHu\": \"\\u2567\", \"boxhU\": \"\\u2568\", \"boxHU\": \"\\u2569\", \"boxminus\": \"\\u229F\", \"boxplus\": \"\\u229E\", \"boxtimes\": \"\\u22A0\", \"boxul\": \"\\u2518\", \"boxuL\": \"\\u255B\", \"boxUl\": \"\\u255C\", \"boxUL\": \"\\u255D\", \"boxur\": \"\\u2514\", \"boxuR\": \"\\u2558\", \"boxUr\": \"\\u2559\", \"boxUR\": \"\\u255A\", \"boxv\": \"\\u2502\", \"boxV\": \"\\u2551\", \"boxvh\": \"\\u253C\", \"boxvH\": \"\\u256A\", \"boxVh\": \"\\u256B\", \"boxVH\": \"\\u256C\", \"boxvl\": \"\\u2524\", \"boxvL\": \"\\u2561\", \"boxVl\": \"\\u2562\", \"boxVL\": \"\\u2563\", \"boxvr\": \"\\u251C\", \"boxvR\": \"\\u255E\", \"boxVr\": \"\\u255F\", \"boxVR\": \"\\u2560\", \"bprime\": \"\\u2035\", \"breve\": \"\\u02D8\", \"Breve\": \"\\u02D8\", \"brvbar\": \"\\u00A6\", \"bscr\": \"\\uD835\\uDCB7\", \"Bscr\": \"\\u212C\", \"bsemi\": \"\\u204F\", \"bsim\": \"\\u223D\", \"bsime\": \"\\u22CD\", \"bsolb\": \"\\u29C5\", \"bsol\": \"\\\\\", \"bsolhsub\": \"\\u27C8\", \"bull\": \"\\u2022\", \"bullet\": \"\\u2022\", \"bump\": \"\\u224E\", \"bumpE\": \"\\u2AAE\", \"bumpe\": \"\\u224F\", \"Bumpeq\": \"\\u224E\", \"bumpeq\": \"\\u224F\", \"Cacute\": \"\\u0106\", \"cacute\": \"\\u0107\", \"capand\": \"\\u2A44\", \"capbrcup\": \"\\u2A49\", \"capcap\": \"\\u2A4B\", \"cap\": \"\\u2229\", \"Cap\": \"\\u22D2\", \"capcup\": \"\\u2A47\", \"capdot\": \"\\u2A40\", \"CapitalDifferentialD\": \"\\u2145\", \"caps\": \"\\u2229\\uFE00\", \"caret\": \"\\u2041\", \"caron\": \"\\u02C7\", \"Cayleys\": \"\\u212D\", \"ccaps\": \"\\u2A4D\", \"Ccaron\": \"\\u010C\", \"ccaron\": \"\\u010D\", \"Ccedil\": \"\\u00C7\", \"ccedil\": \"\\u00E7\", \"Ccirc\": \"\\u0108\", \"ccirc\": \"\\u0109\", \"Cconint\": \"\\u2230\", \"ccups\": \"\\u2A4C\", \"ccupssm\": \"\\u2A50\", \"Cdot\": \"\\u010A\", \"cdot\": \"\\u010B\", \"cedil\": \"\\u00B8\", \"Cedilla\": \"\\u00B8\", \"cemptyv\": \"\\u29B2\", \"cent\": \"\\u00A2\", \"centerdot\": \"\\u00B7\", \"CenterDot\": \"\\u00B7\", \"cfr\": \"\\uD835\\uDD20\", \"Cfr\": \"\\u212D\", \"CHcy\": \"\\u0427\", \"chcy\": \"\\u0447\", \"check\": \"\\u2713\", \"checkmark\": \"\\u2713\", \"Chi\": \"\\u03A7\", \"chi\": \"\\u03C7\", \"circ\": \"\\u02C6\", \"circeq\": \"\\u2257\", \"circlearrowleft\": \"\\u21BA\", \"circlearrowright\": \"\\u21BB\", \"circledast\": \"\\u229B\", \"circledcirc\": \"\\u229A\", \"circleddash\": \"\\u229D\", \"CircleDot\": \"\\u2299\", \"circledR\": \"\\u00AE\", \"circledS\": \"\\u24C8\", \"CircleMinus\": \"\\u2296\", \"CirclePlus\": \"\\u2295\", \"CircleTimes\": \"\\u2297\", \"cir\": \"\\u25CB\", \"cirE\": \"\\u29C3\", \"cire\": \"\\u2257\", \"cirfnint\": \"\\u2A10\", \"cirmid\": \"\\u2AEF\", \"cirscir\": \"\\u29C2\", \"ClockwiseContourIntegral\": \"\\u2232\", \"CloseCurlyDoubleQuote\": \"\\u201D\", \"CloseCurlyQuote\": \"\\u2019\", \"clubs\": \"\\u2663\", \"clubsuit\": \"\\u2663\", \"colon\": \":\", \"Colon\": \"\\u2237\", \"Colone\": \"\\u2A74\", \"colone\": \"\\u2254\", \"coloneq\": \"\\u2254\", \"comma\": \",\", \"commat\": \"@\", \"comp\": \"\\u2201\", \"compfn\": \"\\u2218\", \"complement\": \"\\u2201\", \"complexes\": \"\\u2102\", \"cong\": \"\\u2245\", \"congdot\": \"\\u2A6D\", \"Congruent\": \"\\u2261\", \"conint\": \"\\u222E\", \"Conint\": \"\\u222F\", \"ContourIntegral\": \"\\u222E\", \"copf\": \"\\uD835\\uDD54\", \"Copf\": \"\\u2102\", \"coprod\": \"\\u2210\", \"Coproduct\": \"\\u2210\", \"copy\": \"\\u00A9\", \"COPY\": \"\\u00A9\", \"copysr\": \"\\u2117\", \"CounterClockwiseContourIntegral\": \"\\u2233\", \"crarr\": \"\\u21B5\", \"cross\": \"\\u2717\", \"Cross\": \"\\u2A2F\", \"Cscr\": \"\\uD835\\uDC9E\", \"cscr\": \"\\uD835\\uDCB8\", \"csub\": \"\\u2ACF\", \"csube\": \"\\u2AD1\", \"csup\": \"\\u2AD0\", \"csupe\": \"\\u2AD2\", \"ctdot\": \"\\u22EF\", \"cudarrl\": \"\\u2938\", \"cudarrr\": \"\\u2935\", \"cuepr\": \"\\u22DE\", \"cuesc\": \"\\u22DF\", \"cularr\": \"\\u21B6\", \"cularrp\": \"\\u293D\", \"cupbrcap\": \"\\u2A48\", \"cupcap\": \"\\u2A46\", \"CupCap\": \"\\u224D\", \"cup\": \"\\u222A\", \"Cup\": \"\\u22D3\", \"cupcup\": \"\\u2A4A\", \"cupdot\": \"\\u228D\", \"cupor\": \"\\u2A45\", \"cups\": \"\\u222A\\uFE00\", \"curarr\": \"\\u21B7\", \"curarrm\": \"\\u293C\", \"curlyeqprec\": \"\\u22DE\", \"curlyeqsucc\": \"\\u22DF\", \"curlyvee\": \"\\u22CE\", \"curlywedge\": \"\\u22CF\", \"curren\": \"\\u00A4\", \"curvearrowleft\": \"\\u21B6\", \"curvearrowright\": \"\\u21B7\", \"cuvee\": \"\\u22CE\", \"cuwed\": \"\\u22CF\", \"cwconint\": \"\\u2232\", \"cwint\": \"\\u2231\", \"cylcty\": \"\\u232D\", \"dagger\": \"\\u2020\", \"Dagger\": \"\\u2021\", \"daleth\": \"\\u2138\", \"darr\": \"\\u2193\", \"Darr\": \"\\u21A1\", \"dArr\": \"\\u21D3\", \"dash\": \"\\u2010\", \"Dashv\": \"\\u2AE4\", \"dashv\": \"\\u22A3\", \"dbkarow\": \"\\u290F\", \"dblac\": \"\\u02DD\", \"Dcaron\": \"\\u010E\", \"dcaron\": \"\\u010F\", \"Dcy\": \"\\u0414\", \"dcy\": \"\\u0434\", \"ddagger\": \"\\u2021\", \"ddarr\": \"\\u21CA\", \"DD\": \"\\u2145\", \"dd\": \"\\u2146\", \"DDotrahd\": \"\\u2911\", \"ddotseq\": \"\\u2A77\", \"deg\": \"\\u00B0\", \"Del\": \"\\u2207\", \"Delta\": \"\\u0394\", \"delta\": \"\\u03B4\", \"demptyv\": \"\\u29B1\", \"dfisht\": \"\\u297F\", \"Dfr\": \"\\uD835\\uDD07\", \"dfr\": \"\\uD835\\uDD21\", \"dHar\": \"\\u2965\", \"dharl\": \"\\u21C3\", \"dharr\": \"\\u21C2\", \"DiacriticalAcute\": \"\\u00B4\", \"DiacriticalDot\": \"\\u02D9\", \"DiacriticalDoubleAcute\": \"\\u02DD\", \"DiacriticalGrave\": \"`\", \"DiacriticalTilde\": \"\\u02DC\", \"diam\": \"\\u22C4\", \"diamond\": \"\\u22C4\", \"Diamond\": \"\\u22C4\", \"diamondsuit\": \"\\u2666\", \"diams\": \"\\u2666\", \"die\": \"\\u00A8\", \"DifferentialD\": \"\\u2146\", \"digamma\": \"\\u03DD\", \"disin\": \"\\u22F2\", \"div\": \"\\u00F7\", \"divide\": \"\\u00F7\", \"divideontimes\": \"\\u22C7\", \"divonx\": \"\\u22C7\", \"DJcy\": \"\\u0402\", \"djcy\": \"\\u0452\", \"dlcorn\": \"\\u231E\", \"dlcrop\": \"\\u230D\", \"dollar\": \"$\", \"Dopf\": \"\\uD835\\uDD3B\", \"dopf\": \"\\uD835\\uDD55\", \"Dot\": \"\\u00A8\", \"dot\": \"\\u02D9\", \"DotDot\": \"\\u20DC\", \"doteq\": \"\\u2250\", \"doteqdot\": \"\\u2251\", \"DotEqual\": \"\\u2250\", \"dotminus\": \"\\u2238\", \"dotplus\": \"\\u2214\", \"dotsquare\": \"\\u22A1\", \"doublebarwedge\": \"\\u2306\", \"DoubleContourIntegral\": \"\\u222F\", \"DoubleDot\": \"\\u00A8\", \"DoubleDownArrow\": \"\\u21D3\", \"DoubleLeftArrow\": \"\\u21D0\", \"DoubleLeftRightArrow\": \"\\u21D4\", \"DoubleLeftTee\": \"\\u2AE4\", \"DoubleLongLeftArrow\": \"\\u27F8\", \"DoubleLongLeftRightArrow\": \"\\u27FA\", \"DoubleLongRightArrow\": \"\\u27F9\", \"DoubleRightArrow\": \"\\u21D2\", \"DoubleRightTee\": \"\\u22A8\", \"DoubleUpArrow\": \"\\u21D1\", \"DoubleUpDownArrow\": \"\\u21D5\", \"DoubleVerticalBar\": \"\\u2225\", \"DownArrowBar\": \"\\u2913\", \"downarrow\": \"\\u2193\", \"DownArrow\": \"\\u2193\", \"Downarrow\": \"\\u21D3\", \"DownArrowUpArrow\": \"\\u21F5\", \"DownBreve\": \"\\u0311\", \"downdownarrows\": \"\\u21CA\", \"downharpoonleft\": \"\\u21C3\", \"downharpoonright\": \"\\u21C2\", \"DownLeftRightVector\": \"\\u2950\", \"DownLeftTeeVector\": \"\\u295E\", \"DownLeftVectorBar\": \"\\u2956\", \"DownLeftVector\": \"\\u21BD\", \"DownRightTeeVector\": \"\\u295F\", \"DownRightVectorBar\": \"\\u2957\", \"DownRightVector\": \"\\u21C1\", \"DownTeeArrow\": \"\\u21A7\", \"DownTee\": \"\\u22A4\", \"drbkarow\": \"\\u2910\", \"drcorn\": \"\\u231F\", \"drcrop\": \"\\u230C\", \"Dscr\": \"\\uD835\\uDC9F\", \"dscr\": \"\\uD835\\uDCB9\", \"DScy\": \"\\u0405\", \"dscy\": \"\\u0455\", \"dsol\": \"\\u29F6\", \"Dstrok\": \"\\u0110\", \"dstrok\": \"\\u0111\", \"dtdot\": \"\\u22F1\", \"dtri\": \"\\u25BF\", \"dtrif\": \"\\u25BE\", \"duarr\": \"\\u21F5\", \"duhar\": \"\\u296F\", \"dwangle\": \"\\u29A6\", \"DZcy\": \"\\u040F\", \"dzcy\": \"\\u045F\", \"dzigrarr\": \"\\u27FF\", \"Eacute\": \"\\u00C9\", \"eacute\": \"\\u00E9\", \"easter\": \"\\u2A6E\", \"Ecaron\": \"\\u011A\", \"ecaron\": \"\\u011B\", \"Ecirc\": \"\\u00CA\", \"ecirc\": \"\\u00EA\", \"ecir\": \"\\u2256\", \"ecolon\": \"\\u2255\", \"Ecy\": \"\\u042D\", \"ecy\": \"\\u044D\", \"eDDot\": \"\\u2A77\", \"Edot\": \"\\u0116\", \"edot\": \"\\u0117\", \"eDot\": \"\\u2251\", \"ee\": \"\\u2147\", \"efDot\": \"\\u2252\", \"Efr\": \"\\uD835\\uDD08\", \"efr\": \"\\uD835\\uDD22\", \"eg\": \"\\u2A9A\", \"Egrave\": \"\\u00C8\", \"egrave\": \"\\u00E8\", \"egs\": \"\\u2A96\", \"egsdot\": \"\\u2A98\", \"el\": \"\\u2A99\", \"Element\": \"\\u2208\", \"elinters\": \"\\u23E7\", \"ell\": \"\\u2113\", \"els\": \"\\u2A95\", \"elsdot\": \"\\u2A97\", \"Emacr\": \"\\u0112\", \"emacr\": \"\\u0113\", \"empty\": \"\\u2205\", \"emptyset\": \"\\u2205\", \"EmptySmallSquare\": \"\\u25FB\", \"emptyv\": \"\\u2205\", \"EmptyVerySmallSquare\": \"\\u25AB\", \"emsp13\": \"\\u2004\", \"emsp14\": \"\\u2005\", \"emsp\": \"\\u2003\", \"ENG\": \"\\u014A\", \"eng\": \"\\u014B\", \"ensp\": \"\\u2002\", \"Eogon\": \"\\u0118\", \"eogon\": \"\\u0119\", \"Eopf\": \"\\uD835\\uDD3C\", \"eopf\": \"\\uD835\\uDD56\", \"epar\": \"\\u22D5\", \"eparsl\": \"\\u29E3\", \"eplus\": \"\\u2A71\", \"epsi\": \"\\u03B5\", \"Epsilon\": \"\\u0395\", \"epsilon\": \"\\u03B5\", \"epsiv\": \"\\u03F5\", \"eqcirc\": \"\\u2256\", \"eqcolon\": \"\\u2255\", \"eqsim\": \"\\u2242\", \"eqslantgtr\": \"\\u2A96\", \"eqslantless\": \"\\u2A95\", \"Equal\": \"\\u2A75\", \"equals\": \"=\", \"EqualTilde\": \"\\u2242\", \"equest\": \"\\u225F\", \"Equilibrium\": \"\\u21CC\", \"equiv\": \"\\u2261\", \"equivDD\": \"\\u2A78\", \"eqvparsl\": \"\\u29E5\", \"erarr\": \"\\u2971\", \"erDot\": \"\\u2253\", \"escr\": \"\\u212F\", \"Escr\": \"\\u2130\", \"esdot\": \"\\u2250\", \"Esim\": \"\\u2A73\", \"esim\": \"\\u2242\", \"Eta\": \"\\u0397\", \"eta\": \"\\u03B7\", \"ETH\": \"\\u00D0\", \"eth\": \"\\u00F0\", \"Euml\": \"\\u00CB\", \"euml\": \"\\u00EB\", \"euro\": \"\\u20AC\", \"excl\": \"!\", \"exist\": \"\\u2203\", \"Exists\": \"\\u2203\", \"expectation\": \"\\u2130\", \"exponentiale\": \"\\u2147\", \"ExponentialE\": \"\\u2147\", \"fallingdotseq\": \"\\u2252\", \"Fcy\": \"\\u0424\", \"fcy\": \"\\u0444\", \"female\": \"\\u2640\", \"ffilig\": \"\\uFB03\", \"fflig\": \"\\uFB00\", \"ffllig\": \"\\uFB04\", \"Ffr\": \"\\uD835\\uDD09\", \"ffr\": \"\\uD835\\uDD23\", \"filig\": \"\\uFB01\", \"FilledSmallSquare\": \"\\u25FC\", \"FilledVerySmallSquare\": \"\\u25AA\", \"fjlig\": \"fj\", \"flat\": \"\\u266D\", \"fllig\": \"\\uFB02\", \"fltns\": \"\\u25B1\", \"fnof\": \"\\u0192\", \"Fopf\": \"\\uD835\\uDD3D\", \"fopf\": \"\\uD835\\uDD57\", \"forall\": \"\\u2200\", \"ForAll\": \"\\u2200\", \"fork\": \"\\u22D4\", \"forkv\": \"\\u2AD9\", \"Fouriertrf\": \"\\u2131\", \"fpartint\": \"\\u2A0D\", \"frac12\": \"\\u00BD\", \"frac13\": \"\\u2153\", \"frac14\": \"\\u00BC\", \"frac15\": \"\\u2155\", \"frac16\": \"\\u2159\", \"frac18\": \"\\u215B\", \"frac23\": \"\\u2154\", \"frac25\": \"\\u2156\", \"frac34\": \"\\u00BE\", \"frac35\": \"\\u2157\", \"frac38\": \"\\u215C\", \"frac45\": \"\\u2158\", \"frac56\": \"\\u215A\", \"frac58\": \"\\u215D\", \"frac78\": \"\\u215E\", \"frasl\": \"\\u2044\", \"frown\": \"\\u2322\", \"fscr\": \"\\uD835\\uDCBB\", \"Fscr\": \"\\u2131\", \"gacute\": \"\\u01F5\", \"Gamma\": \"\\u0393\", \"gamma\": \"\\u03B3\", \"Gammad\": \"\\u03DC\", \"gammad\": \"\\u03DD\", \"gap\": \"\\u2A86\", \"Gbreve\": \"\\u011E\", \"gbreve\": \"\\u011F\", \"Gcedil\": \"\\u0122\", \"Gcirc\": \"\\u011C\", \"gcirc\": \"\\u011D\", \"Gcy\": \"\\u0413\", \"gcy\": \"\\u0433\", \"Gdot\": \"\\u0120\", \"gdot\": \"\\u0121\", \"ge\": \"\\u2265\", \"gE\": \"\\u2267\", \"gEl\": \"\\u2A8C\", \"gel\": \"\\u22DB\", \"geq\": \"\\u2265\", \"geqq\": \"\\u2267\", \"geqslant\": \"\\u2A7E\", \"gescc\": \"\\u2AA9\", \"ges\": \"\\u2A7E\", \"gesdot\": \"\\u2A80\", \"gesdoto\": \"\\u2A82\", \"gesdotol\": \"\\u2A84\", \"gesl\": \"\\u22DB\\uFE00\", \"gesles\": \"\\u2A94\", \"Gfr\": \"\\uD835\\uDD0A\", \"gfr\": \"\\uD835\\uDD24\", \"gg\": \"\\u226B\", \"Gg\": \"\\u22D9\", \"ggg\": \"\\u22D9\", \"gimel\": \"\\u2137\", \"GJcy\": \"\\u0403\", \"gjcy\": \"\\u0453\", \"gla\": \"\\u2AA5\", \"gl\": \"\\u2277\", \"glE\": \"\\u2A92\", \"glj\": \"\\u2AA4\", \"gnap\": \"\\u2A8A\", \"gnapprox\": \"\\u2A8A\", \"gne\": \"\\u2A88\", \"gnE\": \"\\u2269\", \"gneq\": \"\\u2A88\", \"gneqq\": \"\\u2269\", \"gnsim\": \"\\u22E7\", \"Gopf\": \"\\uD835\\uDD3E\", \"gopf\": \"\\uD835\\uDD58\", \"grave\": \"`\", \"GreaterEqual\": \"\\u2265\", \"GreaterEqualLess\": \"\\u22DB\", \"GreaterFullEqual\": \"\\u2267\", \"GreaterGreater\": \"\\u2AA2\", \"GreaterLess\": \"\\u2277\", \"GreaterSlantEqual\": \"\\u2A7E\", \"GreaterTilde\": \"\\u2273\", \"Gscr\": \"\\uD835\\uDCA2\", \"gscr\": \"\\u210A\", \"gsim\": \"\\u2273\", \"gsime\": \"\\u2A8E\", \"gsiml\": \"\\u2A90\", \"gtcc\": \"\\u2AA7\", \"gtcir\": \"\\u2A7A\", \"gt\": \">\", \"GT\": \">\", \"Gt\": \"\\u226B\", \"gtdot\": \"\\u22D7\", \"gtlPar\": \"\\u2995\", \"gtquest\": \"\\u2A7C\", \"gtrapprox\": \"\\u2A86\", \"gtrarr\": \"\\u2978\", \"gtrdot\": \"\\u22D7\", \"gtreqless\": \"\\u22DB\", \"gtreqqless\": \"\\u2A8C\", \"gtrless\": \"\\u2277\", \"gtrsim\": \"\\u2273\", \"gvertneqq\": \"\\u2269\\uFE00\", \"gvnE\": \"\\u2269\\uFE00\", \"Hacek\": \"\\u02C7\", \"hairsp\": \"\\u200A\", \"half\": \"\\u00BD\", \"hamilt\": \"\\u210B\", \"HARDcy\": \"\\u042A\", \"hardcy\": \"\\u044A\", \"harrcir\": \"\\u2948\", \"harr\": \"\\u2194\", \"hArr\": \"\\u21D4\", \"harrw\": \"\\u21AD\", \"Hat\": \"^\", \"hbar\": \"\\u210F\", \"Hcirc\": \"\\u0124\", \"hcirc\": \"\\u0125\", \"hearts\": \"\\u2665\", \"heartsuit\": \"\\u2665\", \"hellip\": \"\\u2026\", \"hercon\": \"\\u22B9\", \"hfr\": \"\\uD835\\uDD25\", \"Hfr\": \"\\u210C\", \"HilbertSpace\": \"\\u210B\", \"hksearow\": \"\\u2925\", \"hkswarow\": \"\\u2926\", \"hoarr\": \"\\u21FF\", \"homtht\": \"\\u223B\", \"hookleftarrow\": \"\\u21A9\", \"hookrightarrow\": \"\\u21AA\", \"hopf\": \"\\uD835\\uDD59\", \"Hopf\": \"\\u210D\", \"horbar\": \"\\u2015\", \"HorizontalLine\": \"\\u2500\", \"hscr\": \"\\uD835\\uDCBD\", \"Hscr\": \"\\u210B\", \"hslash\": \"\\u210F\", \"Hstrok\": \"\\u0126\", \"hstrok\": \"\\u0127\", \"HumpDownHump\": \"\\u224E\", \"HumpEqual\": \"\\u224F\", \"hybull\": \"\\u2043\", \"hyphen\": \"\\u2010\", \"Iacute\": \"\\u00CD\", \"iacute\": \"\\u00ED\", \"ic\": \"\\u2063\", \"Icirc\": \"\\u00CE\", \"icirc\": \"\\u00EE\", \"Icy\": \"\\u0418\", \"icy\": \"\\u0438\", \"Idot\": \"\\u0130\", \"IEcy\": \"\\u0415\", \"iecy\": \"\\u0435\", \"iexcl\": \"\\u00A1\", \"iff\": \"\\u21D4\", \"ifr\": \"\\uD835\\uDD26\", \"Ifr\": \"\\u2111\", \"Igrave\": \"\\u00CC\", \"igrave\": \"\\u00EC\", \"ii\": \"\\u2148\", \"iiiint\": \"\\u2A0C\", \"iiint\": \"\\u222D\", \"iinfin\": \"\\u29DC\", \"iiota\": \"\\u2129\", \"IJlig\": \"\\u0132\", \"ijlig\": \"\\u0133\", \"Imacr\": \"\\u012A\", \"imacr\": \"\\u012B\", \"image\": \"\\u2111\", \"ImaginaryI\": \"\\u2148\", \"imagline\": \"\\u2110\", \"imagpart\": \"\\u2111\", \"imath\": \"\\u0131\", \"Im\": \"\\u2111\", \"imof\": \"\\u22B7\", \"imped\": \"\\u01B5\", \"Implies\": \"\\u21D2\", \"incare\": \"\\u2105\", \"in\": \"\\u2208\", \"infin\": \"\\u221E\", \"infintie\": \"\\u29DD\", \"inodot\": \"\\u0131\", \"intcal\": \"\\u22BA\", \"int\": \"\\u222B\", \"Int\": \"\\u222C\", \"integers\": \"\\u2124\", \"Integral\": \"\\u222B\", \"intercal\": \"\\u22BA\", \"Intersection\": \"\\u22C2\", \"intlarhk\": \"\\u2A17\", \"intprod\": \"\\u2A3C\", \"InvisibleComma\": \"\\u2063\", \"InvisibleTimes\": \"\\u2062\", \"IOcy\": \"\\u0401\", \"iocy\": \"\\u0451\", \"Iogon\": \"\\u012E\", \"iogon\": \"\\u012F\", \"Iopf\": \"\\uD835\\uDD40\", \"iopf\": \"\\uD835\\uDD5A\", \"Iota\": \"\\u0399\", \"iota\": \"\\u03B9\", \"iprod\": \"\\u2A3C\", \"iquest\": \"\\u00BF\", \"iscr\": \"\\uD835\\uDCBE\", \"Iscr\": \"\\u2110\", \"isin\": \"\\u2208\", \"isindot\": \"\\u22F5\", \"isinE\": \"\\u22F9\", \"isins\": \"\\u22F4\", \"isinsv\": \"\\u22F3\", \"isinv\": \"\\u2208\", \"it\": \"\\u2062\", \"Itilde\": \"\\u0128\", \"itilde\": \"\\u0129\", \"Iukcy\": \"\\u0406\", \"iukcy\": \"\\u0456\", \"Iuml\": \"\\u00CF\", \"iuml\": \"\\u00EF\", \"Jcirc\": \"\\u0134\", \"jcirc\": \"\\u0135\", \"Jcy\": \"\\u0419\", \"jcy\": \"\\u0439\", \"Jfr\": \"\\uD835\\uDD0D\", \"jfr\": \"\\uD835\\uDD27\", \"jmath\": \"\\u0237\", \"Jopf\": \"\\uD835\\uDD41\", \"jopf\": \"\\uD835\\uDD5B\", \"Jscr\": \"\\uD835\\uDCA5\", \"jscr\": \"\\uD835\\uDCBF\", \"Jsercy\": \"\\u0408\", \"jsercy\": \"\\u0458\", \"Jukcy\": \"\\u0404\", \"jukcy\": \"\\u0454\", \"Kappa\": \"\\u039A\", \"kappa\": \"\\u03BA\", \"kappav\": \"\\u03F0\", \"Kcedil\": \"\\u0136\", \"kcedil\": \"\\u0137\", \"Kcy\": \"\\u041A\", \"kcy\": \"\\u043A\", \"Kfr\": \"\\uD835\\uDD0E\", \"kfr\": \"\\uD835\\uDD28\", \"kgreen\": \"\\u0138\", \"KHcy\": \"\\u0425\", \"khcy\": \"\\u0445\", \"KJcy\": \"\\u040C\", \"kjcy\": \"\\u045C\", \"Kopf\": \"\\uD835\\uDD42\", \"kopf\": \"\\uD835\\uDD5C\", \"Kscr\": \"\\uD835\\uDCA6\", \"kscr\": \"\\uD835\\uDCC0\", \"lAarr\": \"\\u21DA\", \"Lacute\": \"\\u0139\", \"lacute\": \"\\u013A\", \"laemptyv\": \"\\u29B4\", \"lagran\": \"\\u2112\", \"Lambda\": \"\\u039B\", \"lambda\": \"\\u03BB\", \"lang\": \"\\u27E8\", \"Lang\": \"\\u27EA\", \"langd\": \"\\u2991\", \"langle\": \"\\u27E8\", \"lap\": \"\\u2A85\", \"Laplacetrf\": \"\\u2112\", \"laquo\": \"\\u00AB\", \"larrb\": \"\\u21E4\", \"larrbfs\": \"\\u291F\", \"larr\": \"\\u2190\", \"Larr\": \"\\u219E\", \"lArr\": \"\\u21D0\", \"larrfs\": \"\\u291D\", \"larrhk\": \"\\u21A9\", \"larrlp\": \"\\u21AB\", \"larrpl\": \"\\u2939\", \"larrsim\": \"\\u2973\", \"larrtl\": \"\\u21A2\", \"latail\": \"\\u2919\", \"lAtail\": \"\\u291B\", \"lat\": \"\\u2AAB\", \"late\": \"\\u2AAD\", \"lates\": \"\\u2AAD\\uFE00\", \"lbarr\": \"\\u290C\", \"lBarr\": \"\\u290E\", \"lbbrk\": \"\\u2772\", \"lbrace\": \"{\", \"lbrack\": \"[\", \"lbrke\": \"\\u298B\", \"lbrksld\": \"\\u298F\", \"lbrkslu\": \"\\u298D\", \"Lcaron\": \"\\u013D\", \"lcaron\": \"\\u013E\", \"Lcedil\": \"\\u013B\", \"lcedil\": \"\\u013C\", \"lceil\": \"\\u2308\", \"lcub\": \"{\", \"Lcy\": \"\\u041B\", \"lcy\": \"\\u043B\", \"ldca\": \"\\u2936\", \"ldquo\": \"\\u201C\", \"ldquor\": \"\\u201E\", \"ldrdhar\": \"\\u2967\", \"ldrushar\": \"\\u294B\", \"ldsh\": \"\\u21B2\", \"le\": \"\\u2264\", \"lE\": \"\\u2266\", \"LeftAngleBracket\": \"\\u27E8\", \"LeftArrowBar\": \"\\u21E4\", \"leftarrow\": \"\\u2190\", \"LeftArrow\": \"\\u2190\", \"Leftarrow\": \"\\u21D0\", \"LeftArrowRightArrow\": \"\\u21C6\", \"leftarrowtail\": \"\\u21A2\", \"LeftCeiling\": \"\\u2308\", \"LeftDoubleBracket\": \"\\u27E6\", \"LeftDownTeeVector\": \"\\u2961\", \"LeftDownVectorBar\": \"\\u2959\", \"LeftDownVector\": \"\\u21C3\", \"LeftFloor\": \"\\u230A\", \"leftharpoondown\": \"\\u21BD\", \"leftharpoonup\": \"\\u21BC\", \"leftleftarrows\": \"\\u21C7\", \"leftrightarrow\": \"\\u2194\", \"LeftRightArrow\": \"\\u2194\", \"Leftrightarrow\": \"\\u21D4\", \"leftrightarrows\": \"\\u21C6\", \"leftrightharpoons\": \"\\u21CB\", \"leftrightsquigarrow\": \"\\u21AD\", \"LeftRightVector\": \"\\u294E\", \"LeftTeeArrow\": \"\\u21A4\", \"LeftTee\": \"\\u22A3\", \"LeftTeeVector\": \"\\u295A\", \"leftthreetimes\": \"\\u22CB\", \"LeftTriangleBar\": \"\\u29CF\", \"LeftTriangle\": \"\\u22B2\", \"LeftTriangleEqual\": \"\\u22B4\", \"LeftUpDownVector\": \"\\u2951\", \"LeftUpTeeVector\": \"\\u2960\", \"LeftUpVectorBar\": \"\\u2958\", \"LeftUpVector\": \"\\u21BF\", \"LeftVectorBar\": \"\\u2952\", \"LeftVector\": \"\\u21BC\", \"lEg\": \"\\u2A8B\", \"leg\": \"\\u22DA\", \"leq\": \"\\u2264\", \"leqq\": \"\\u2266\", \"leqslant\": \"\\u2A7D\", \"lescc\": \"\\u2AA8\", \"les\": \"\\u2A7D\", \"lesdot\": \"\\u2A7F\", \"lesdoto\": \"\\u2A81\", \"lesdotor\": \"\\u2A83\", \"lesg\": \"\\u22DA\\uFE00\", \"lesges\": \"\\u2A93\", \"lessapprox\": \"\\u2A85\", \"lessdot\": \"\\u22D6\", \"lesseqgtr\": \"\\u22DA\", \"lesseqqgtr\": \"\\u2A8B\", \"LessEqualGreater\": \"\\u22DA\", \"LessFullEqual\": \"\\u2266\", \"LessGreater\": \"\\u2276\", \"lessgtr\": \"\\u2276\", \"LessLess\": \"\\u2AA1\", \"lesssim\": \"\\u2272\", \"LessSlantEqual\": \"\\u2A7D\", \"LessTilde\": \"\\u2272\", \"lfisht\": \"\\u297C\", \"lfloor\": \"\\u230A\", \"Lfr\": \"\\uD835\\uDD0F\", \"lfr\": \"\\uD835\\uDD29\", \"lg\": \"\\u2276\", \"lgE\": \"\\u2A91\", \"lHar\": \"\\u2962\", \"lhard\": \"\\u21BD\", \"lharu\": \"\\u21BC\", \"lharul\": \"\\u296A\", \"lhblk\": \"\\u2584\", \"LJcy\": \"\\u0409\", \"ljcy\": \"\\u0459\", \"llarr\": \"\\u21C7\", \"ll\": \"\\u226A\", \"Ll\": \"\\u22D8\", \"llcorner\": \"\\u231E\", \"Lleftarrow\": \"\\u21DA\", \"llhard\": \"\\u296B\", \"lltri\": \"\\u25FA\", \"Lmidot\": \"\\u013F\", \"lmidot\": \"\\u0140\", \"lmoustache\": \"\\u23B0\", \"lmoust\": \"\\u23B0\", \"lnap\": \"\\u2A89\", \"lnapprox\": \"\\u2A89\", \"lne\": \"\\u2A87\", \"lnE\": \"\\u2268\", \"lneq\": \"\\u2A87\", \"lneqq\": \"\\u2268\", \"lnsim\": \"\\u22E6\", \"loang\": \"\\u27EC\", \"loarr\": \"\\u21FD\", \"lobrk\": \"\\u27E6\", \"longleftarrow\": \"\\u27F5\", \"LongLeftArrow\": \"\\u27F5\", \"Longleftarrow\": \"\\u27F8\", \"longleftrightarrow\": \"\\u27F7\", \"LongLeftRightArrow\": \"\\u27F7\", \"Longleftrightarrow\": \"\\u27FA\", \"longmapsto\": \"\\u27FC\", \"longrightarrow\": \"\\u27F6\", \"LongRightArrow\": \"\\u27F6\", \"Longrightarrow\": \"\\u27F9\", \"looparrowleft\": \"\\u21AB\", \"looparrowright\": \"\\u21AC\", \"lopar\": \"\\u2985\", \"Lopf\": \"\\uD835\\uDD43\", \"lopf\": \"\\uD835\\uDD5D\", \"loplus\": \"\\u2A2D\", \"lotimes\": \"\\u2A34\", \"lowast\": \"\\u2217\", \"lowbar\": \"_\", \"LowerLeftArrow\": \"\\u2199\", \"LowerRightArrow\": \"\\u2198\", \"loz\": \"\\u25CA\", \"lozenge\": \"\\u25CA\", \"lozf\": \"\\u29EB\", \"lpar\": \"(\", \"lparlt\": \"\\u2993\", \"lrarr\": \"\\u21C6\", \"lrcorner\": \"\\u231F\", \"lrhar\": \"\\u21CB\", \"lrhard\": \"\\u296D\", \"lrm\": \"\\u200E\", \"lrtri\": \"\\u22BF\", \"lsaquo\": \"\\u2039\", \"lscr\": \"\\uD835\\uDCC1\", \"Lscr\": \"\\u2112\", \"lsh\": \"\\u21B0\", \"Lsh\": \"\\u21B0\", \"lsim\": \"\\u2272\", \"lsime\": \"\\u2A8D\", \"lsimg\": \"\\u2A8F\", \"lsqb\": \"[\", \"lsquo\": \"\\u2018\", \"lsquor\": \"\\u201A\", \"Lstrok\": \"\\u0141\", \"lstrok\": \"\\u0142\", \"ltcc\": \"\\u2AA6\", \"ltcir\": \"\\u2A79\", \"lt\": \"<\", \"LT\": \"<\", \"Lt\": \"\\u226A\", \"ltdot\": \"\\u22D6\", \"lthree\": \"\\u22CB\", \"ltimes\": \"\\u22C9\", \"ltlarr\": \"\\u2976\", \"ltquest\": \"\\u2A7B\", \"ltri\": \"\\u25C3\", \"ltrie\": \"\\u22B4\", \"ltrif\": \"\\u25C2\", \"ltrPar\": \"\\u2996\", \"lurdshar\": \"\\u294A\", \"luruhar\": \"\\u2966\", \"lvertneqq\": \"\\u2268\\uFE00\", \"lvnE\": \"\\u2268\\uFE00\", \"macr\": \"\\u00AF\", \"male\": \"\\u2642\", \"malt\": \"\\u2720\", \"maltese\": \"\\u2720\", \"Map\": \"\\u2905\", \"map\": \"\\u21A6\", \"mapsto\": \"\\u21A6\", \"mapstodown\": \"\\u21A7\", \"mapstoleft\": \"\\u21A4\", \"mapstoup\": \"\\u21A5\", \"marker\": \"\\u25AE\", \"mcomma\": \"\\u2A29\", \"Mcy\": \"\\u041C\", \"mcy\": \"\\u043C\", \"mdash\": \"\\u2014\", \"mDDot\": \"\\u223A\", \"measuredangle\": \"\\u2221\", \"MediumSpace\": \"\\u205F\", \"Mellintrf\": \"\\u2133\", \"Mfr\": \"\\uD835\\uDD10\", \"mfr\": \"\\uD835\\uDD2A\", \"mho\": \"\\u2127\", \"micro\": \"\\u00B5\", \"midast\": \"*\", \"midcir\": \"\\u2AF0\", \"mid\": \"\\u2223\", \"middot\": \"\\u00B7\", \"minusb\": \"\\u229F\", \"minus\": \"\\u2212\", \"minusd\": \"\\u2238\", \"minusdu\": \"\\u2A2A\", \"MinusPlus\": \"\\u2213\", \"mlcp\": \"\\u2ADB\", \"mldr\": \"\\u2026\", \"mnplus\": \"\\u2213\", \"models\": \"\\u22A7\", \"Mopf\": \"\\uD835\\uDD44\", \"mopf\": \"\\uD835\\uDD5E\", \"mp\": \"\\u2213\", \"mscr\": \"\\uD835\\uDCC2\", \"Mscr\": \"\\u2133\", \"mstpos\": \"\\u223E\", \"Mu\": \"\\u039C\", \"mu\": \"\\u03BC\", \"multimap\": \"\\u22B8\", \"mumap\": \"\\u22B8\", \"nabla\": \"\\u2207\", \"Nacute\": \"\\u0143\", \"nacute\": \"\\u0144\", \"nang\": \"\\u2220\\u20D2\", \"nap\": \"\\u2249\", \"napE\": \"\\u2A70\\u0338\", \"napid\": \"\\u224B\\u0338\", \"napos\": \"\\u0149\", \"napprox\": \"\\u2249\", \"natural\": \"\\u266E\", \"naturals\": \"\\u2115\", \"natur\": \"\\u266E\", \"nbsp\": \"\\u00A0\", \"nbump\": \"\\u224E\\u0338\", \"nbumpe\": \"\\u224F\\u0338\", \"ncap\": \"\\u2A43\", \"Ncaron\": \"\\u0147\", \"ncaron\": \"\\u0148\", \"Ncedil\": \"\\u0145\", \"ncedil\": \"\\u0146\", \"ncong\": \"\\u2247\", \"ncongdot\": \"\\u2A6D\\u0338\", \"ncup\": \"\\u2A42\", \"Ncy\": \"\\u041D\", \"ncy\": \"\\u043D\", \"ndash\": \"\\u2013\", \"nearhk\": \"\\u2924\", \"nearr\": \"\\u2197\", \"neArr\": \"\\u21D7\", \"nearrow\": \"\\u2197\", \"ne\": \"\\u2260\", \"nedot\": \"\\u2250\\u0338\", \"NegativeMediumSpace\": \"\\u200B\", \"NegativeThickSpace\": \"\\u200B\", \"NegativeThinSpace\": \"\\u200B\", \"NegativeVeryThinSpace\": \"\\u200B\", \"nequiv\": \"\\u2262\", \"nesear\": \"\\u2928\", \"nesim\": \"\\u2242\\u0338\", \"NestedGreaterGreater\": \"\\u226B\", \"NestedLessLess\": \"\\u226A\", \"NewLine\": \"\\n\", \"nexist\": \"\\u2204\", \"nexists\": \"\\u2204\", \"Nfr\": \"\\uD835\\uDD11\", \"nfr\": \"\\uD835\\uDD2B\", \"ngE\": \"\\u2267\\u0338\", \"nge\": \"\\u2271\", \"ngeq\": \"\\u2271\", \"ngeqq\": \"\\u2267\\u0338\", \"ngeqslant\": \"\\u2A7E\\u0338\", \"nges\": \"\\u2A7E\\u0338\", \"nGg\": \"\\u22D9\\u0338\", \"ngsim\": \"\\u2275\", \"nGt\": \"\\u226B\\u20D2\", \"ngt\": \"\\u226F\", \"ngtr\": \"\\u226F\", \"nGtv\": \"\\u226B\\u0338\", \"nharr\": \"\\u21AE\", \"nhArr\": \"\\u21CE\", \"nhpar\": \"\\u2AF2\", \"ni\": \"\\u220B\", \"nis\": \"\\u22FC\", \"nisd\": \"\\u22FA\", \"niv\": \"\\u220B\", \"NJcy\": \"\\u040A\", \"njcy\": \"\\u045A\", \"nlarr\": \"\\u219A\", \"nlArr\": \"\\u21CD\", \"nldr\": \"\\u2025\", \"nlE\": \"\\u2266\\u0338\", \"nle\": \"\\u2270\", \"nleftarrow\": \"\\u219A\", \"nLeftarrow\": \"\\u21CD\", \"nleftrightarrow\": \"\\u21AE\", \"nLeftrightarrow\": \"\\u21CE\", \"nleq\": \"\\u2270\", \"nleqq\": \"\\u2266\\u0338\", \"nleqslant\": \"\\u2A7D\\u0338\", \"nles\": \"\\u2A7D\\u0338\", \"nless\": \"\\u226E\", \"nLl\": \"\\u22D8\\u0338\", \"nlsim\": \"\\u2274\", \"nLt\": \"\\u226A\\u20D2\", \"nlt\": \"\\u226E\", \"nltri\": \"\\u22EA\", \"nltrie\": \"\\u22EC\", \"nLtv\": \"\\u226A\\u0338\", \"nmid\": \"\\u2224\", \"NoBreak\": \"\\u2060\", \"NonBreakingSpace\": \"\\u00A0\", \"nopf\": \"\\uD835\\uDD5F\", \"Nopf\": \"\\u2115\", \"Not\": \"\\u2AEC\", \"not\": \"\\u00AC\", \"NotCongruent\": \"\\u2262\", \"NotCupCap\": \"\\u226D\", \"NotDoubleVerticalBar\": \"\\u2226\", \"NotElement\": \"\\u2209\", \"NotEqual\": \"\\u2260\", \"NotEqualTilde\": \"\\u2242\\u0338\", \"NotExists\": \"\\u2204\", \"NotGreater\": \"\\u226F\", \"NotGreaterEqual\": \"\\u2271\", \"NotGreaterFullEqual\": \"\\u2267\\u0338\", \"NotGreaterGreater\": \"\\u226B\\u0338\", \"NotGreaterLess\": \"\\u2279\", \"NotGreaterSlantEqual\": \"\\u2A7E\\u0338\", \"NotGreaterTilde\": \"\\u2275\", \"NotHumpDownHump\": \"\\u224E\\u0338\", \"NotHumpEqual\": \"\\u224F\\u0338\", \"notin\": \"\\u2209\", \"notindot\": \"\\u22F5\\u0338\", \"notinE\": \"\\u22F9\\u0338\", \"notinva\": \"\\u2209\", \"notinvb\": \"\\u22F7\", \"notinvc\": \"\\u22F6\", \"NotLeftTriangleBar\": \"\\u29CF\\u0338\", \"NotLeftTriangle\": \"\\u22EA\", \"NotLeftTriangleEqual\": \"\\u22EC\", \"NotLess\": \"\\u226E\", \"NotLessEqual\": \"\\u2270\", \"NotLessGreater\": \"\\u2278\", \"NotLessLess\": \"\\u226A\\u0338\", \"NotLessSlantEqual\": \"\\u2A7D\\u0338\", \"NotLessTilde\": \"\\u2274\", \"NotNestedGreaterGreater\": \"\\u2AA2\\u0338\", \"NotNestedLessLess\": \"\\u2AA1\\u0338\", \"notni\": \"\\u220C\", \"notniva\": \"\\u220C\", \"notnivb\": \"\\u22FE\", \"notnivc\": \"\\u22FD\", \"NotPrecedes\": \"\\u2280\", \"NotPrecedesEqual\": \"\\u2AAF\\u0338\", \"NotPrecedesSlantEqual\": \"\\u22E0\", \"NotReverseElement\": \"\\u220C\", \"NotRightTriangleBar\": \"\\u29D0\\u0338\", \"NotRightTriangle\": \"\\u22EB\", \"NotRightTriangleEqual\": \"\\u22ED\", \"NotSquareSubset\": \"\\u228F\\u0338\", \"NotSquareSubsetEqual\": \"\\u22E2\", \"NotSquareSuperset\": \"\\u2290\\u0338\", \"NotSquareSupersetEqual\": \"\\u22E3\", \"NotSubset\": \"\\u2282\\u20D2\", \"NotSubsetEqual\": \"\\u2288\", \"NotSucceeds\": \"\\u2281\", \"NotSucceedsEqual\": \"\\u2AB0\\u0338\", \"NotSucceedsSlantEqual\": \"\\u22E1\", \"NotSucceedsTilde\": \"\\u227F\\u0338\", \"NotSuperset\": \"\\u2283\\u20D2\", \"NotSupersetEqual\": \"\\u2289\", \"NotTilde\": \"\\u2241\", \"NotTildeEqual\": \"\\u2244\", \"NotTildeFullEqual\": \"\\u2247\", \"NotTildeTilde\": \"\\u2249\", \"NotVerticalBar\": \"\\u2224\", \"nparallel\": \"\\u2226\", \"npar\": \"\\u2226\", \"nparsl\": \"\\u2AFD\\u20E5\", \"npart\": \"\\u2202\\u0338\", \"npolint\": \"\\u2A14\", \"npr\": \"\\u2280\", \"nprcue\": \"\\u22E0\", \"nprec\": \"\\u2280\", \"npreceq\": \"\\u2AAF\\u0338\", \"npre\": \"\\u2AAF\\u0338\", \"nrarrc\": \"\\u2933\\u0338\", \"nrarr\": \"\\u219B\", \"nrArr\": \"\\u21CF\", \"nrarrw\": \"\\u219D\\u0338\", \"nrightarrow\": \"\\u219B\", \"nRightarrow\": \"\\u21CF\", \"nrtri\": \"\\u22EB\", \"nrtrie\": \"\\u22ED\", \"nsc\": \"\\u2281\", \"nsccue\": \"\\u22E1\", \"nsce\": \"\\u2AB0\\u0338\", \"Nscr\": \"\\uD835\\uDCA9\", \"nscr\": \"\\uD835\\uDCC3\", \"nshortmid\": \"\\u2224\", \"nshortparallel\": \"\\u2226\", \"nsim\": \"\\u2241\", \"nsime\": \"\\u2244\", \"nsimeq\": \"\\u2244\", \"nsmid\": \"\\u2224\", \"nspar\": \"\\u2226\", \"nsqsube\": \"\\u22E2\", \"nsqsupe\": \"\\u22E3\", \"nsub\": \"\\u2284\", \"nsubE\": \"\\u2AC5\\u0338\", \"nsube\": \"\\u2288\", \"nsubset\": \"\\u2282\\u20D2\", \"nsubseteq\": \"\\u2288\", \"nsubseteqq\": \"\\u2AC5\\u0338\", \"nsucc\": \"\\u2281\", \"nsucceq\": \"\\u2AB0\\u0338\", \"nsup\": \"\\u2285\", \"nsupE\": \"\\u2AC6\\u0338\", \"nsupe\": \"\\u2289\", \"nsupset\": \"\\u2283\\u20D2\", \"nsupseteq\": \"\\u2289\", \"nsupseteqq\": \"\\u2AC6\\u0338\", \"ntgl\": \"\\u2279\", \"Ntilde\": \"\\u00D1\", \"ntilde\": \"\\u00F1\", \"ntlg\": \"\\u2278\", \"ntriangleleft\": \"\\u22EA\", \"ntrianglelefteq\": \"\\u22EC\", \"ntriangleright\": \"\\u22EB\", \"ntrianglerighteq\": \"\\u22ED\", \"Nu\": \"\\u039D\", \"nu\": \"\\u03BD\", \"num\": \"#\", \"numero\": \"\\u2116\", \"numsp\": \"\\u2007\", \"nvap\": \"\\u224D\\u20D2\", \"nvdash\": \"\\u22AC\", \"nvDash\": \"\\u22AD\", \"nVdash\": \"\\u22AE\", \"nVDash\": \"\\u22AF\", \"nvge\": \"\\u2265\\u20D2\", \"nvgt\": \">\\u20D2\", \"nvHarr\": \"\\u2904\", \"nvinfin\": \"\\u29DE\", \"nvlArr\": \"\\u2902\", \"nvle\": \"\\u2264\\u20D2\", \"nvlt\": \"<\\u20D2\", \"nvltrie\": \"\\u22B4\\u20D2\", \"nvrArr\": \"\\u2903\", \"nvrtrie\": \"\\u22B5\\u20D2\", \"nvsim\": \"\\u223C\\u20D2\", \"nwarhk\": \"\\u2923\", \"nwarr\": \"\\u2196\", \"nwArr\": \"\\u21D6\", \"nwarrow\": \"\\u2196\", \"nwnear\": \"\\u2927\", \"Oacute\": \"\\u00D3\", \"oacute\": \"\\u00F3\", \"oast\": \"\\u229B\", \"Ocirc\": \"\\u00D4\", \"ocirc\": \"\\u00F4\", \"ocir\": \"\\u229A\", \"Ocy\": \"\\u041E\", \"ocy\": \"\\u043E\", \"odash\": \"\\u229D\", \"Odblac\": \"\\u0150\", \"odblac\": \"\\u0151\", \"odiv\": \"\\u2A38\", \"odot\": \"\\u2299\", \"odsold\": \"\\u29BC\", \"OElig\": \"\\u0152\", \"oelig\": \"\\u0153\", \"ofcir\": \"\\u29BF\", \"Ofr\": \"\\uD835\\uDD12\", \"ofr\": \"\\uD835\\uDD2C\", \"ogon\": \"\\u02DB\", \"Ograve\": \"\\u00D2\", \"ograve\": \"\\u00F2\", \"ogt\": \"\\u29C1\", \"ohbar\": \"\\u29B5\", \"ohm\": \"\\u03A9\", \"oint\": \"\\u222E\", \"olarr\": \"\\u21BA\", \"olcir\": \"\\u29BE\", \"olcross\": \"\\u29BB\", \"oline\": \"\\u203E\", \"olt\": \"\\u29C0\", \"Omacr\": \"\\u014C\", \"omacr\": \"\\u014D\", \"Omega\": \"\\u03A9\", \"omega\": \"\\u03C9\", \"Omicron\": \"\\u039F\", \"omicron\": \"\\u03BF\", \"omid\": \"\\u29B6\", \"ominus\": \"\\u2296\", \"Oopf\": \"\\uD835\\uDD46\", \"oopf\": \"\\uD835\\uDD60\", \"opar\": \"\\u29B7\", \"OpenCurlyDoubleQuote\": \"\\u201C\", \"OpenCurlyQuote\": \"\\u2018\", \"operp\": \"\\u29B9\", \"oplus\": \"\\u2295\", \"orarr\": \"\\u21BB\", \"Or\": \"\\u2A54\", \"or\": \"\\u2228\", \"ord\": \"\\u2A5D\", \"order\": \"\\u2134\", \"orderof\": \"\\u2134\", \"ordf\": \"\\u00AA\", \"ordm\": \"\\u00BA\", \"origof\": \"\\u22B6\", \"oror\": \"\\u2A56\", \"orslope\": \"\\u2A57\", \"orv\": \"\\u2A5B\", \"oS\": \"\\u24C8\", \"Oscr\": \"\\uD835\\uDCAA\", \"oscr\": \"\\u2134\", \"Oslash\": \"\\u00D8\", \"oslash\": \"\\u00F8\", \"osol\": \"\\u2298\", \"Otilde\": \"\\u00D5\", \"otilde\": \"\\u00F5\", \"otimesas\": \"\\u2A36\", \"Otimes\": \"\\u2A37\", \"otimes\": \"\\u2297\", \"Ouml\": \"\\u00D6\", \"ouml\": \"\\u00F6\", \"ovbar\": \"\\u233D\", \"OverBar\": \"\\u203E\", \"OverBrace\": \"\\u23DE\", \"OverBracket\": \"\\u23B4\", \"OverParenthesis\": \"\\u23DC\", \"para\": \"\\u00B6\", \"parallel\": \"\\u2225\", \"par\": \"\\u2225\", \"parsim\": \"\\u2AF3\", \"parsl\": \"\\u2AFD\", \"part\": \"\\u2202\", \"PartialD\": \"\\u2202\", \"Pcy\": \"\\u041F\", \"pcy\": \"\\u043F\", \"percnt\": \"%\", \"period\": \".\", \"permil\": \"\\u2030\", \"perp\": \"\\u22A5\", \"pertenk\": \"\\u2031\", \"Pfr\": \"\\uD835\\uDD13\", \"pfr\": \"\\uD835\\uDD2D\", \"Phi\": \"\\u03A6\", \"phi\": \"\\u03C6\", \"phiv\": \"\\u03D5\", \"phmmat\": \"\\u2133\", \"phone\": \"\\u260E\", \"Pi\": \"\\u03A0\", \"pi\": \"\\u03C0\", \"pitchfork\": \"\\u22D4\", \"piv\": \"\\u03D6\", \"planck\": \"\\u210F\", \"planckh\": \"\\u210E\", \"plankv\": \"\\u210F\", \"plusacir\": \"\\u2A23\", \"plusb\": \"\\u229E\", \"pluscir\": \"\\u2A22\", \"plus\": \"+\", \"plusdo\": \"\\u2214\", \"plusdu\": \"\\u2A25\", \"pluse\": \"\\u2A72\", \"PlusMinus\": \"\\u00B1\", \"plusmn\": \"\\u00B1\", \"plussim\": \"\\u2A26\", \"plustwo\": \"\\u2A27\", \"pm\": \"\\u00B1\", \"Poincareplane\": \"\\u210C\", \"pointint\": \"\\u2A15\", \"popf\": \"\\uD835\\uDD61\", \"Popf\": \"\\u2119\", \"pound\": \"\\u00A3\", \"prap\": \"\\u2AB7\", \"Pr\": \"\\u2ABB\", \"pr\": \"\\u227A\", \"prcue\": \"\\u227C\", \"precapprox\": \"\\u2AB7\", \"prec\": \"\\u227A\", \"preccurlyeq\": \"\\u227C\", \"Precedes\": \"\\u227A\", \"PrecedesEqual\": \"\\u2AAF\", \"PrecedesSlantEqual\": \"\\u227C\", \"PrecedesTilde\": \"\\u227E\", \"preceq\": \"\\u2AAF\", \"precnapprox\": \"\\u2AB9\", \"precneqq\": \"\\u2AB5\", \"precnsim\": \"\\u22E8\", \"pre\": \"\\u2AAF\", \"prE\": \"\\u2AB3\", \"precsim\": \"\\u227E\", \"prime\": \"\\u2032\", \"Prime\": \"\\u2033\", \"primes\": \"\\u2119\", \"prnap\": \"\\u2AB9\", \"prnE\": \"\\u2AB5\", \"prnsim\": \"\\u22E8\", \"prod\": \"\\u220F\", \"Product\": \"\\u220F\", \"profalar\": \"\\u232E\", \"profline\": \"\\u2312\", \"profsurf\": \"\\u2313\", \"prop\": \"\\u221D\", \"Proportional\": \"\\u221D\", \"Proportion\": \"\\u2237\", \"propto\": \"\\u221D\", \"prsim\": \"\\u227E\", \"prurel\": \"\\u22B0\", \"Pscr\": \"\\uD835\\uDCAB\", \"pscr\": \"\\uD835\\uDCC5\", \"Psi\": \"\\u03A8\", \"psi\": \"\\u03C8\", \"puncsp\": \"\\u2008\", \"Qfr\": \"\\uD835\\uDD14\", \"qfr\": \"\\uD835\\uDD2E\", \"qint\": \"\\u2A0C\", \"qopf\": \"\\uD835\\uDD62\", \"Qopf\": \"\\u211A\", \"qprime\": \"\\u2057\", \"Qscr\": \"\\uD835\\uDCAC\", \"qscr\": \"\\uD835\\uDCC6\", \"quaternions\": \"\\u210D\", \"quatint\": \"\\u2A16\", \"quest\": \"?\", \"questeq\": \"\\u225F\", \"quot\": \"\\\"\", \"QUOT\": \"\\\"\", \"rAarr\": \"\\u21DB\", \"race\": \"\\u223D\\u0331\", \"Racute\": \"\\u0154\", \"racute\": \"\\u0155\", \"radic\": \"\\u221A\", \"raemptyv\": \"\\u29B3\", \"rang\": \"\\u27E9\", \"Rang\": \"\\u27EB\", \"rangd\": \"\\u2992\", \"range\": \"\\u29A5\", \"rangle\": \"\\u27E9\", \"raquo\": \"\\u00BB\", \"rarrap\": \"\\u2975\", \"rarrb\": \"\\u21E5\", \"rarrbfs\": \"\\u2920\", \"rarrc\": \"\\u2933\", \"rarr\": \"\\u2192\", \"Rarr\": \"\\u21A0\", \"rArr\": \"\\u21D2\", \"rarrfs\": \"\\u291E\", \"rarrhk\": \"\\u21AA\", \"rarrlp\": \"\\u21AC\", \"rarrpl\": \"\\u2945\", \"rarrsim\": \"\\u2974\", \"Rarrtl\": \"\\u2916\", \"rarrtl\": \"\\u21A3\", \"rarrw\": \"\\u219D\", \"ratail\": \"\\u291A\", \"rAtail\": \"\\u291C\", \"ratio\": \"\\u2236\", \"rationals\": \"\\u211A\", \"rbarr\": \"\\u290D\", \"rBarr\": \"\\u290F\", \"RBarr\": \"\\u2910\", \"rbbrk\": \"\\u2773\", \"rbrace\": \"}\", \"rbrack\": \"]\", \"rbrke\": \"\\u298C\", \"rbrksld\": \"\\u298E\", \"rbrkslu\": \"\\u2990\", \"Rcaron\": \"\\u0158\", \"rcaron\": \"\\u0159\", \"Rcedil\": \"\\u0156\", \"rcedil\": \"\\u0157\", \"rceil\": \"\\u2309\", \"rcub\": \"}\", \"Rcy\": \"\\u0420\", \"rcy\": \"\\u0440\", \"rdca\": \"\\u2937\", \"rdldhar\": \"\\u2969\", \"rdquo\": \"\\u201D\", \"rdquor\": \"\\u201D\", \"rdsh\": \"\\u21B3\", \"real\": \"\\u211C\", \"realine\": \"\\u211B\", \"realpart\": \"\\u211C\", \"reals\": \"\\u211D\", \"Re\": \"\\u211C\", \"rect\": \"\\u25AD\", \"reg\": \"\\u00AE\", \"REG\": \"\\u00AE\", \"ReverseElement\": \"\\u220B\", \"ReverseEquilibrium\": \"\\u21CB\", \"ReverseUpEquilibrium\": \"\\u296F\", \"rfisht\": \"\\u297D\", \"rfloor\": \"\\u230B\", \"rfr\": \"\\uD835\\uDD2F\", \"Rfr\": \"\\u211C\", \"rHar\": \"\\u2964\", \"rhard\": \"\\u21C1\", \"rharu\": \"\\u21C0\", \"rharul\": \"\\u296C\", \"Rho\": \"\\u03A1\", \"rho\": \"\\u03C1\", \"rhov\": \"\\u03F1\", \"RightAngleBracket\": \"\\u27E9\", \"RightArrowBar\": \"\\u21E5\", \"rightarrow\": \"\\u2192\", \"RightArrow\": \"\\u2192\", \"Rightarrow\": \"\\u21D2\", \"RightArrowLeftArrow\": \"\\u21C4\", \"rightarrowtail\": \"\\u21A3\", \"RightCeiling\": \"\\u2309\", \"RightDoubleBracket\": \"\\u27E7\", \"RightDownTeeVector\": \"\\u295D\", \"RightDownVectorBar\": \"\\u2955\", \"RightDownVector\": \"\\u21C2\", \"RightFloor\": \"\\u230B\", \"rightharpoondown\": \"\\u21C1\", \"rightharpoonup\": \"\\u21C0\", \"rightleftarrows\": \"\\u21C4\", \"rightleftharpoons\": \"\\u21CC\", \"rightrightarrows\": \"\\u21C9\", \"rightsquigarrow\": \"\\u219D\", \"RightTeeArrow\": \"\\u21A6\", \"RightTee\": \"\\u22A2\", \"RightTeeVector\": \"\\u295B\", \"rightthreetimes\": \"\\u22CC\", \"RightTriangleBar\": \"\\u29D0\", \"RightTriangle\": \"\\u22B3\", \"RightTriangleEqual\": \"\\u22B5\", \"RightUpDownVector\": \"\\u294F\", \"RightUpTeeVector\": \"\\u295C\", \"RightUpVectorBar\": \"\\u2954\", \"RightUpVector\": \"\\u21BE\", \"RightVectorBar\": \"\\u2953\", \"RightVector\": \"\\u21C0\", \"ring\": \"\\u02DA\", \"risingdotseq\": \"\\u2253\", \"rlarr\": \"\\u21C4\", \"rlhar\": \"\\u21CC\", \"rlm\": \"\\u200F\", \"rmoustache\": \"\\u23B1\", \"rmoust\": \"\\u23B1\", \"rnmid\": \"\\u2AEE\", \"roang\": \"\\u27ED\", \"roarr\": \"\\u21FE\", \"robrk\": \"\\u27E7\", \"ropar\": \"\\u2986\", \"ropf\": \"\\uD835\\uDD63\", \"Ropf\": \"\\u211D\", \"roplus\": \"\\u2A2E\", \"rotimes\": \"\\u2A35\", \"RoundImplies\": \"\\u2970\", \"rpar\": \")\", \"rpargt\": \"\\u2994\", \"rppolint\": \"\\u2A12\", \"rrarr\": \"\\u21C9\", \"Rrightarrow\": \"\\u21DB\", \"rsaquo\": \"\\u203A\", \"rscr\": \"\\uD835\\uDCC7\", \"Rscr\": \"\\u211B\", \"rsh\": \"\\u21B1\", \"Rsh\": \"\\u21B1\", \"rsqb\": \"]\", \"rsquo\": \"\\u2019\", \"rsquor\": \"\\u2019\", \"rthree\": \"\\u22CC\", \"rtimes\": \"\\u22CA\", \"rtri\": \"\\u25B9\", \"rtrie\": \"\\u22B5\", \"rtrif\": \"\\u25B8\", \"rtriltri\": \"\\u29CE\", \"RuleDelayed\": \"\\u29F4\", \"ruluhar\": \"\\u2968\", \"rx\": \"\\u211E\", \"Sacute\": \"\\u015A\", \"sacute\": \"\\u015B\", \"sbquo\": \"\\u201A\", \"scap\": \"\\u2AB8\", \"Scaron\": \"\\u0160\", \"scaron\": \"\\u0161\", \"Sc\": \"\\u2ABC\", \"sc\": \"\\u227B\", \"sccue\": \"\\u227D\", \"sce\": \"\\u2AB0\", \"scE\": \"\\u2AB4\", \"Scedil\": \"\\u015E\", \"scedil\": \"\\u015F\", \"Scirc\": \"\\u015C\", \"scirc\": \"\\u015D\", \"scnap\": \"\\u2ABA\", \"scnE\": \"\\u2AB6\", \"scnsim\": \"\\u22E9\", \"scpolint\": \"\\u2A13\", \"scsim\": \"\\u227F\", \"Scy\": \"\\u0421\", \"scy\": \"\\u0441\", \"sdotb\": \"\\u22A1\", \"sdot\": \"\\u22C5\", \"sdote\": \"\\u2A66\", \"searhk\": \"\\u2925\", \"searr\": \"\\u2198\", \"seArr\": \"\\u21D8\", \"searrow\": \"\\u2198\", \"sect\": \"\\u00A7\", \"semi\": \";\", \"seswar\": \"\\u2929\", \"setminus\": \"\\u2216\", \"setmn\": \"\\u2216\", \"sext\": \"\\u2736\", \"Sfr\": \"\\uD835\\uDD16\", \"sfr\": \"\\uD835\\uDD30\", \"sfrown\": \"\\u2322\", \"sharp\": \"\\u266F\", \"SHCHcy\": \"\\u0429\", \"shchcy\": \"\\u0449\", \"SHcy\": \"\\u0428\", \"shcy\": \"\\u0448\", \"ShortDownArrow\": \"\\u2193\", \"ShortLeftArrow\": \"\\u2190\", \"shortmid\": \"\\u2223\", \"shortparallel\": \"\\u2225\", \"ShortRightArrow\": \"\\u2192\", \"ShortUpArrow\": \"\\u2191\", \"shy\": \"\\u00AD\", \"Sigma\": \"\\u03A3\", \"sigma\": \"\\u03C3\", \"sigmaf\": \"\\u03C2\", \"sigmav\": \"\\u03C2\", \"sim\": \"\\u223C\", \"simdot\": \"\\u2A6A\", \"sime\": \"\\u2243\", \"simeq\": \"\\u2243\", \"simg\": \"\\u2A9E\", \"simgE\": \"\\u2AA0\", \"siml\": \"\\u2A9D\", \"simlE\": \"\\u2A9F\", \"simne\": \"\\u2246\", \"simplus\": \"\\u2A24\", \"simrarr\": \"\\u2972\", \"slarr\": \"\\u2190\", \"SmallCircle\": \"\\u2218\", \"smallsetminus\": \"\\u2216\", \"smashp\": \"\\u2A33\", \"smeparsl\": \"\\u29E4\", \"smid\": \"\\u2223\", \"smile\": \"\\u2323\", \"smt\": \"\\u2AAA\", \"smte\": \"\\u2AAC\", \"smtes\": \"\\u2AAC\\uFE00\", \"SOFTcy\": \"\\u042C\", \"softcy\": \"\\u044C\", \"solbar\": \"\\u233F\", \"solb\": \"\\u29C4\", \"sol\": \"/\", \"Sopf\": \"\\uD835\\uDD4A\", \"sopf\": \"\\uD835\\uDD64\", \"spades\": \"\\u2660\", \"spadesuit\": \"\\u2660\", \"spar\": \"\\u2225\", \"sqcap\": \"\\u2293\", \"sqcaps\": \"\\u2293\\uFE00\", \"sqcup\": \"\\u2294\", \"sqcups\": \"\\u2294\\uFE00\", \"Sqrt\": \"\\u221A\", \"sqsub\": \"\\u228F\", \"sqsube\": \"\\u2291\", \"sqsubset\": \"\\u228F\", \"sqsubseteq\": \"\\u2291\", \"sqsup\": \"\\u2290\", \"sqsupe\": \"\\u2292\", \"sqsupset\": \"\\u2290\", \"sqsupseteq\": \"\\u2292\", \"square\": \"\\u25A1\", \"Square\": \"\\u25A1\", \"SquareIntersection\": \"\\u2293\", \"SquareSubset\": \"\\u228F\", \"SquareSubsetEqual\": \"\\u2291\", \"SquareSuperset\": \"\\u2290\", \"SquareSupersetEqual\": \"\\u2292\", \"SquareUnion\": \"\\u2294\", \"squarf\": \"\\u25AA\", \"squ\": \"\\u25A1\", \"squf\": \"\\u25AA\", \"srarr\": \"\\u2192\", \"Sscr\": \"\\uD835\\uDCAE\", \"sscr\": \"\\uD835\\uDCC8\", \"ssetmn\": \"\\u2216\", \"ssmile\": \"\\u2323\", \"sstarf\": \"\\u22C6\", \"Star\": \"\\u22C6\", \"star\": \"\\u2606\", \"starf\": \"\\u2605\", \"straightepsilon\": \"\\u03F5\", \"straightphi\": \"\\u03D5\", \"strns\": \"\\u00AF\", \"sub\": \"\\u2282\", \"Sub\": \"\\u22D0\", \"subdot\": \"\\u2ABD\", \"subE\": \"\\u2AC5\", \"sube\": \"\\u2286\", \"subedot\": \"\\u2AC3\", \"submult\": \"\\u2AC1\", \"subnE\": \"\\u2ACB\", \"subne\": \"\\u228A\", \"subplus\": \"\\u2ABF\", \"subrarr\": \"\\u2979\", \"subset\": \"\\u2282\", \"Subset\": \"\\u22D0\", \"subseteq\": \"\\u2286\", \"subseteqq\": \"\\u2AC5\", \"SubsetEqual\": \"\\u2286\", \"subsetneq\": \"\\u228A\", \"subsetneqq\": \"\\u2ACB\", \"subsim\": \"\\u2AC7\", \"subsub\": \"\\u2AD5\", \"subsup\": \"\\u2AD3\", \"succapprox\": \"\\u2AB8\", \"succ\": \"\\u227B\", \"succcurlyeq\": \"\\u227D\", \"Succeeds\": \"\\u227B\", \"SucceedsEqual\": \"\\u2AB0\", \"SucceedsSlantEqual\": \"\\u227D\", \"SucceedsTilde\": \"\\u227F\", \"succeq\": \"\\u2AB0\", \"succnapprox\": \"\\u2ABA\", \"succneqq\": \"\\u2AB6\", \"succnsim\": \"\\u22E9\", \"succsim\": \"\\u227F\", \"SuchThat\": \"\\u220B\", \"sum\": \"\\u2211\", \"Sum\": \"\\u2211\", \"sung\": \"\\u266A\", \"sup1\": \"\\u00B9\", \"sup2\": \"\\u00B2\", \"sup3\": \"\\u00B3\", \"sup\": \"\\u2283\", \"Sup\": \"\\u22D1\", \"supdot\": \"\\u2ABE\", \"supdsub\": \"\\u2AD8\", \"supE\": \"\\u2AC6\", \"supe\": \"\\u2287\", \"supedot\": \"\\u2AC4\", \"Superset\": \"\\u2283\", \"SupersetEqual\": \"\\u2287\", \"suphsol\": \"\\u27C9\", \"suphsub\": \"\\u2AD7\", \"suplarr\": \"\\u297B\", \"supmult\": \"\\u2AC2\", \"supnE\": \"\\u2ACC\", \"supne\": \"\\u228B\", \"supplus\": \"\\u2AC0\", \"supset\": \"\\u2283\", \"Supset\": \"\\u22D1\", \"supseteq\": \"\\u2287\", \"supseteqq\": \"\\u2AC6\", \"supsetneq\": \"\\u228B\", \"supsetneqq\": \"\\u2ACC\", \"supsim\": \"\\u2AC8\", \"supsub\": \"\\u2AD4\", \"supsup\": \"\\u2AD6\", \"swarhk\": \"\\u2926\", \"swarr\": \"\\u2199\", \"swArr\": \"\\u21D9\", \"swarrow\": \"\\u2199\", \"swnwar\": \"\\u292A\", \"szlig\": \"\\u00DF\", \"Tab\": \"\\t\", \"target\": \"\\u2316\", \"Tau\": \"\\u03A4\", \"tau\": \"\\u03C4\", \"tbrk\": \"\\u23B4\", \"Tcaron\": \"\\u0164\", \"tcaron\": \"\\u0165\", \"Tcedil\": \"\\u0162\", \"tcedil\": \"\\u0163\", \"Tcy\": \"\\u0422\", \"tcy\": \"\\u0442\", \"tdot\": \"\\u20DB\", \"telrec\": \"\\u2315\", \"Tfr\": \"\\uD835\\uDD17\", \"tfr\": \"\\uD835\\uDD31\", \"there4\": \"\\u2234\", \"therefore\": \"\\u2234\", \"Therefore\": \"\\u2234\", \"Theta\": \"\\u0398\", \"theta\": \"\\u03B8\", \"thetasym\": \"\\u03D1\", \"thetav\": \"\\u03D1\", \"thickapprox\": \"\\u2248\", \"thicksim\": \"\\u223C\", \"ThickSpace\": \"\\u205F\\u200A\", \"ThinSpace\": \"\\u2009\", \"thinsp\": \"\\u2009\", \"thkap\": \"\\u2248\", \"thksim\": \"\\u223C\", \"THORN\": \"\\u00DE\", \"thorn\": \"\\u00FE\", \"tilde\": \"\\u02DC\", \"Tilde\": \"\\u223C\", \"TildeEqual\": \"\\u2243\", \"TildeFullEqual\": \"\\u2245\", \"TildeTilde\": \"\\u2248\", \"timesbar\": \"\\u2A31\", \"timesb\": \"\\u22A0\", \"times\": \"\\u00D7\", \"timesd\": \"\\u2A30\", \"tint\": \"\\u222D\", \"toea\": \"\\u2928\", \"topbot\": \"\\u2336\", \"topcir\": \"\\u2AF1\", \"top\": \"\\u22A4\", \"Topf\": \"\\uD835\\uDD4B\", \"topf\": \"\\uD835\\uDD65\", \"topfork\": \"\\u2ADA\", \"tosa\": \"\\u2929\", \"tprime\": \"\\u2034\", \"trade\": \"\\u2122\", \"TRADE\": \"\\u2122\", \"triangle\": \"\\u25B5\", \"triangledown\": \"\\u25BF\", \"triangleleft\": \"\\u25C3\", \"trianglelefteq\": \"\\u22B4\", \"triangleq\": \"\\u225C\", \"triangleright\": \"\\u25B9\", \"trianglerighteq\": \"\\u22B5\", \"tridot\": \"\\u25EC\", \"trie\": \"\\u225C\", \"triminus\": \"\\u2A3A\", \"TripleDot\": \"\\u20DB\", \"triplus\": \"\\u2A39\", \"trisb\": \"\\u29CD\", \"tritime\": \"\\u2A3B\", \"trpezium\": \"\\u23E2\", \"Tscr\": \"\\uD835\\uDCAF\", \"tscr\": \"\\uD835\\uDCC9\", \"TScy\": \"\\u0426\", \"tscy\": \"\\u0446\", \"TSHcy\": \"\\u040B\", \"tshcy\": \"\\u045B\", \"Tstrok\": \"\\u0166\", \"tstrok\": \"\\u0167\", \"twixt\": \"\\u226C\", \"twoheadleftarrow\": \"\\u219E\", \"twoheadrightarrow\": \"\\u21A0\", \"Uacute\": \"\\u00DA\", \"uacute\": \"\\u00FA\", \"uarr\": \"\\u2191\", \"Uarr\": \"\\u219F\", \"uArr\": \"\\u21D1\", \"Uarrocir\": \"\\u2949\", \"Ubrcy\": \"\\u040E\", \"ubrcy\": \"\\u045E\", \"Ubreve\": \"\\u016C\", \"ubreve\": \"\\u016D\", \"Ucirc\": \"\\u00DB\", \"ucirc\": \"\\u00FB\", \"Ucy\": \"\\u0423\", \"ucy\": \"\\u0443\", \"udarr\": \"\\u21C5\", \"Udblac\": \"\\u0170\", \"udblac\": \"\\u0171\", \"udhar\": \"\\u296E\", \"ufisht\": \"\\u297E\", \"Ufr\": \"\\uD835\\uDD18\", \"ufr\": \"\\uD835\\uDD32\", \"Ugrave\": \"\\u00D9\", \"ugrave\": \"\\u00F9\", \"uHar\": \"\\u2963\", \"uharl\": \"\\u21BF\", \"uharr\": \"\\u21BE\", \"uhblk\": \"\\u2580\", \"ulcorn\": \"\\u231C\", \"ulcorner\": \"\\u231C\", \"ulcrop\": \"\\u230F\", \"ultri\": \"\\u25F8\", \"Umacr\": \"\\u016A\", \"umacr\": \"\\u016B\", \"uml\": \"\\u00A8\", \"UnderBar\": \"_\", \"UnderBrace\": \"\\u23DF\", \"UnderBracket\": \"\\u23B5\", \"UnderParenthesis\": \"\\u23DD\", \"Union\": \"\\u22C3\", \"UnionPlus\": \"\\u228E\", \"Uogon\": \"\\u0172\", \"uogon\": \"\\u0173\", \"Uopf\": \"\\uD835\\uDD4C\", \"uopf\": \"\\uD835\\uDD66\", \"UpArrowBar\": \"\\u2912\", \"uparrow\": \"\\u2191\", \"UpArrow\": \"\\u2191\", \"Uparrow\": \"\\u21D1\", \"UpArrowDownArrow\": \"\\u21C5\", \"updownarrow\": \"\\u2195\", \"UpDownArrow\": \"\\u2195\", \"Updownarrow\": \"\\u21D5\", \"UpEquilibrium\": \"\\u296E\", \"upharpoonleft\": \"\\u21BF\", \"upharpoonright\": \"\\u21BE\", \"uplus\": \"\\u228E\", \"UpperLeftArrow\": \"\\u2196\", \"UpperRightArrow\": \"\\u2197\", \"upsi\": \"\\u03C5\", \"Upsi\": \"\\u03D2\", \"upsih\": \"\\u03D2\", \"Upsilon\": \"\\u03A5\", \"upsilon\": \"\\u03C5\", \"UpTeeArrow\": \"\\u21A5\", \"UpTee\": \"\\u22A5\", \"upuparrows\": \"\\u21C8\", \"urcorn\": \"\\u231D\", \"urcorner\": \"\\u231D\", \"urcrop\": \"\\u230E\", \"Uring\": \"\\u016E\", \"uring\": \"\\u016F\", \"urtri\": \"\\u25F9\", \"Uscr\": \"\\uD835\\uDCB0\", \"uscr\": \"\\uD835\\uDCCA\", \"utdot\": \"\\u22F0\", \"Utilde\": \"\\u0168\", \"utilde\": \"\\u0169\", \"utri\": \"\\u25B5\", \"utrif\": \"\\u25B4\", \"uuarr\": \"\\u21C8\", \"Uuml\": \"\\u00DC\", \"uuml\": \"\\u00FC\", \"uwangle\": \"\\u29A7\", \"vangrt\": \"\\u299C\", \"varepsilon\": \"\\u03F5\", \"varkappa\": \"\\u03F0\", \"varnothing\": \"\\u2205\", \"varphi\": \"\\u03D5\", \"varpi\": \"\\u03D6\", \"varpropto\": \"\\u221D\", \"varr\": \"\\u2195\", \"vArr\": \"\\u21D5\", \"varrho\": \"\\u03F1\", \"varsigma\": \"\\u03C2\", \"varsubsetneq\": \"\\u228A\\uFE00\", \"varsubsetneqq\": \"\\u2ACB\\uFE00\", \"varsupsetneq\": \"\\u228B\\uFE00\", \"varsupsetneqq\": \"\\u2ACC\\uFE00\", \"vartheta\": \"\\u03D1\", \"vartriangleleft\": \"\\u22B2\", \"vartriangleright\": \"\\u22B3\", \"vBar\": \"\\u2AE8\", \"Vbar\": \"\\u2AEB\", \"vBarv\": \"\\u2AE9\", \"Vcy\": \"\\u0412\", \"vcy\": \"\\u0432\", \"vdash\": \"\\u22A2\", \"vDash\": \"\\u22A8\", \"Vdash\": \"\\u22A9\", \"VDash\": \"\\u22AB\", \"Vdashl\": \"\\u2AE6\", \"veebar\": \"\\u22BB\", \"vee\": \"\\u2228\", \"Vee\": \"\\u22C1\", \"veeeq\": \"\\u225A\", \"vellip\": \"\\u22EE\", \"verbar\": \"|\", \"Verbar\": \"\\u2016\", \"vert\": \"|\", \"Vert\": \"\\u2016\", \"VerticalBar\": \"\\u2223\", \"VerticalLine\": \"|\", \"VerticalSeparator\": \"\\u2758\", \"VerticalTilde\": \"\\u2240\", \"VeryThinSpace\": \"\\u200A\", \"Vfr\": \"\\uD835\\uDD19\", \"vfr\": \"\\uD835\\uDD33\", \"vltri\": \"\\u22B2\", \"vnsub\": \"\\u2282\\u20D2\", \"vnsup\": \"\\u2283\\u20D2\", \"Vopf\": \"\\uD835\\uDD4D\", \"vopf\": \"\\uD835\\uDD67\", \"vprop\": \"\\u221D\", \"vrtri\": \"\\u22B3\", \"Vscr\": \"\\uD835\\uDCB1\", \"vscr\": \"\\uD835\\uDCCB\", \"vsubnE\": \"\\u2ACB\\uFE00\", \"vsubne\": \"\\u228A\\uFE00\", \"vsupnE\": \"\\u2ACC\\uFE00\", \"vsupne\": \"\\u228B\\uFE00\", \"Vvdash\": \"\\u22AA\", \"vzigzag\": \"\\u299A\", \"Wcirc\": \"\\u0174\", \"wcirc\": \"\\u0175\", \"wedbar\": \"\\u2A5F\", \"wedge\": \"\\u2227\", \"Wedge\": \"\\u22C0\", \"wedgeq\": \"\\u2259\", \"weierp\": \"\\u2118\", \"Wfr\": \"\\uD835\\uDD1A\", \"wfr\": \"\\uD835\\uDD34\", \"Wopf\": \"\\uD835\\uDD4E\", \"wopf\": \"\\uD835\\uDD68\", \"wp\": \"\\u2118\", \"wr\": \"\\u2240\", \"wreath\": \"\\u2240\", \"Wscr\": \"\\uD835\\uDCB2\", \"wscr\": \"\\uD835\\uDCCC\", \"xcap\": \"\\u22C2\", \"xcirc\": \"\\u25EF\", \"xcup\": \"\\u22C3\", \"xdtri\": \"\\u25BD\", \"Xfr\": \"\\uD835\\uDD1B\", \"xfr\": \"\\uD835\\uDD35\", \"xharr\": \"\\u27F7\", \"xhArr\": \"\\u27FA\", \"Xi\": \"\\u039E\", \"xi\": \"\\u03BE\", \"xlarr\": \"\\u27F5\", \"xlArr\": \"\\u27F8\", \"xmap\": \"\\u27FC\", \"xnis\": \"\\u22FB\", \"xodot\": \"\\u2A00\", \"Xopf\": \"\\uD835\\uDD4F\", \"xopf\": \"\\uD835\\uDD69\", \"xoplus\": \"\\u2A01\", \"xotime\": \"\\u2A02\", \"xrarr\": \"\\u27F6\", \"xrArr\": \"\\u27F9\", \"Xscr\": \"\\uD835\\uDCB3\", \"xscr\": \"\\uD835\\uDCCD\", \"xsqcup\": \"\\u2A06\", \"xuplus\": \"\\u2A04\", \"xutri\": \"\\u25B3\", \"xvee\": \"\\u22C1\", \"xwedge\": \"\\u22C0\", \"Yacute\": \"\\u00DD\", \"yacute\": \"\\u00FD\", \"YAcy\": \"\\u042F\", \"yacy\": \"\\u044F\", \"Ycirc\": \"\\u0176\", \"ycirc\": \"\\u0177\", \"Ycy\": \"\\u042B\", \"ycy\": \"\\u044B\", \"yen\": \"\\u00A5\", \"Yfr\": \"\\uD835\\uDD1C\", \"yfr\": \"\\uD835\\uDD36\", \"YIcy\": \"\\u0407\", \"yicy\": \"\\u0457\", \"Yopf\": \"\\uD835\\uDD50\", \"yopf\": \"\\uD835\\uDD6A\", \"Yscr\": \"\\uD835\\uDCB4\", \"yscr\": \"\\uD835\\uDCCE\", \"YUcy\": \"\\u042E\", \"yucy\": \"\\u044E\", \"yuml\": \"\\u00FF\", \"Yuml\": \"\\u0178\", \"Zacute\": \"\\u0179\", \"zacute\": \"\\u017A\", \"Zcaron\": \"\\u017D\", \"zcaron\": \"\\u017E\", \"Zcy\": \"\\u0417\", \"zcy\": \"\\u0437\", \"Zdot\": \"\\u017B\", \"zdot\": \"\\u017C\", \"zeetrf\": \"\\u2128\", \"ZeroWidthSpace\": \"\\u200B\", \"Zeta\": \"\\u0396\", \"zeta\": \"\\u03B6\", \"zfr\": \"\\uD835\\uDD37\", \"Zfr\": \"\\u2128\", \"ZHcy\": \"\\u0416\", \"zhcy\": \"\\u0436\", \"zigrarr\": \"\\u21DD\", \"zopf\": \"\\uD835\\uDD6B\", \"Zopf\": \"\\u2124\", \"Zscr\": \"\\uD835\\uDCB5\", \"zscr\": \"\\uD835\\uDCCF\", \"zwj\": \"\\u200D\", \"zwnj\": \"\\u200C\" }\n\n},{}],53:[function(require,module,exports){\n'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n\n  sources.forEach(function (source) {\n    if (!source) { return; }\n\n    Object.keys(source).forEach(function (key) {\n      obj[key] = source[key];\n    });\n  });\n\n  return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n  fuzzyLink: true,\n  fuzzyEmail: true,\n  fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n  return Object.keys(obj || {}).reduce(function (acc, k) {\n    return acc || defaultOptions.hasOwnProperty(k);\n  }, false);\n}\n\n\nvar defaultSchemas = {\n  'http:': {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.http) {\n        // compile lazily, because \"host\"-containing variables can change on tlds update.\n        self.re.http =  new RegExp(\n          '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n        );\n      }\n      if (self.re.http.test(tail)) {\n        return tail.match(self.re.http)[0].length;\n      }\n      return 0;\n    }\n  },\n  'https:':  'http:',\n  'ftp:':    'http:',\n  '//':      {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.no_http) {\n      // compile lazily, because \"host\"-containing variables can change on tlds update.\n        self.re.no_http =  new RegExp(\n          '^' +\n          self.re.src_auth +\n          // Don't allow single-level domains, because of false positives like '//test'\n          // with code comments\n          '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n          self.re.src_port +\n          self.re.src_host_terminator +\n          self.re.src_path,\n\n          'i'\n        );\n      }\n\n      if (self.re.no_http.test(tail)) {\n        // should not be `://` & `///`, that protects from errors in protocol name\n        if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n        if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n        return tail.match(self.re.no_http)[0].length;\n      }\n      return 0;\n    }\n  },\n  'mailto:': {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.mailto) {\n        self.re.mailto =  new RegExp(\n          '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n        );\n      }\n      if (self.re.mailto.test(tail)) {\n        return tail.match(self.re.mailto)[0].length;\n      }\n      return 0;\n    }\n  }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n  self.__index__ = -1;\n  self.__text_cache__   = '';\n}\n\nfunction createValidator(re) {\n  return function (text, pos) {\n    var tail = text.slice(pos);\n\n    if (re.test(tail)) {\n      return tail.match(re)[0].length;\n    }\n    return 0;\n  };\n}\n\nfunction createNormalizer() {\n  return function (match, self) {\n    self.normalize(match);\n  };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n  // Load & clone RE patterns.\n  var re = self.re = require('./lib/re')(self.__opts__);\n\n  // Define dynamic patterns\n  var tlds = self.__tlds__.slice();\n\n  self.onCompile();\n\n  if (!self.__tlds_replaced__) {\n    tlds.push(tlds_2ch_src_re);\n  }\n  tlds.push(re.src_xn);\n\n  re.src_tlds = tlds.join('|');\n\n  function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n  re.email_fuzzy      = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n  re.link_fuzzy       = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n  re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n  re.host_fuzzy_test  = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n  //\n  // Compile each schema\n  //\n\n  var aliases = [];\n\n  self.__compiled__ = {}; // Reset compiled data\n\n  function schemaError(name, val) {\n    throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n  }\n\n  Object.keys(self.__schemas__).forEach(function (name) {\n    var val = self.__schemas__[name];\n\n    // skip disabled methods\n    if (val === null) { return; }\n\n    var compiled = { validate: null, link: null };\n\n    self.__compiled__[name] = compiled;\n\n    if (isObject(val)) {\n      if (isRegExp(val.validate)) {\n        compiled.validate = createValidator(val.validate);\n      } else if (isFunction(val.validate)) {\n        compiled.validate = val.validate;\n      } else {\n        schemaError(name, val);\n      }\n\n      if (isFunction(val.normalize)) {\n        compiled.normalize = val.normalize;\n      } else if (!val.normalize) {\n        compiled.normalize = createNormalizer();\n      } else {\n        schemaError(name, val);\n      }\n\n      return;\n    }\n\n    if (isString(val)) {\n      aliases.push(name);\n      return;\n    }\n\n    schemaError(name, val);\n  });\n\n  //\n  // Compile postponed aliases\n  //\n\n  aliases.forEach(function (alias) {\n    if (!self.__compiled__[self.__schemas__[alias]]) {\n      // Silently fail on missed schemas to avoid errons on disable.\n      // schemaError(alias, self.__schemas__[alias]);\n      return;\n    }\n\n    self.__compiled__[alias].validate =\n      self.__compiled__[self.__schemas__[alias]].validate;\n    self.__compiled__[alias].normalize =\n      self.__compiled__[self.__schemas__[alias]].normalize;\n  });\n\n  //\n  // Fake record for guessed links\n  //\n  self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n  //\n  // Build schema condition\n  //\n  var slist = Object.keys(self.__compiled__)\n                      .filter(function (name) {\n                        // Filter disabled & fake schemas\n                        return name.length > 0 && self.__compiled__[name];\n                      })\n                      .map(escapeRE)\n                      .join('|');\n  // (?!_) cause 1.5x slowdown\n  self.re.schema_test   = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n  self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n  self.re.pretest = RegExp(\n    '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n    'i'\n  );\n\n  //\n  // Cleanup\n  //\n\n  resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n  var start = self.__index__,\n      end   = self.__last_index__,\n      text  = self.__text_cache__.slice(start, end);\n\n  /**\n   * Match#schema -> String\n   *\n   * Prefix (protocol) for matched string.\n   **/\n  this.schema    = self.__schema__.toLowerCase();\n  /**\n   * Match#index -> Number\n   *\n   * First position of matched string.\n   **/\n  this.index     = start + shift;\n  /**\n   * Match#lastIndex -> Number\n   *\n   * Next position after matched string.\n   **/\n  this.lastIndex = end + shift;\n  /**\n   * Match#raw -> String\n   *\n   * Matched string.\n   **/\n  this.raw       = text;\n  /**\n   * Match#text -> String\n   *\n   * Notmalized text of matched string.\n   **/\n  this.text      = text;\n  /**\n   * Match#url -> String\n   *\n   * Normalized url of matched string.\n   **/\n  this.url       = text;\n}\n\nfunction createMatch(self, shift) {\n  var match = new Match(self, shift);\n\n  self.__compiled__[match.schema].normalize(match, self);\n\n  return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n *   for example). `linkify-it` makes shure that prefix is not preceeded with\n *   alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n *   - _String_ - just alias to existing rule\n *   - _Object_\n *     - _validate_ - validator function (should return matched length on success),\n *       or `RegExp`.\n *     - _normalize_ - optional function to normalize text & url of matched result\n *       (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n *   like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n  if (!(this instanceof LinkifyIt)) {\n    return new LinkifyIt(schemas, options);\n  }\n\n  if (!options) {\n    if (isOptionsObj(schemas)) {\n      options = schemas;\n      schemas = {};\n    }\n  }\n\n  this.__opts__           = assign({}, defaultOptions, options);\n\n  // Cache last tested result. Used to skip repeating steps on next `match` call.\n  this.__index__          = -1;\n  this.__last_index__     = -1; // Next scan position\n  this.__schema__         = '';\n  this.__text_cache__     = '';\n\n  this.__schemas__        = assign({}, defaultSchemas, schemas);\n  this.__compiled__       = {};\n\n  this.__tlds__           = tlds_default;\n  this.__tlds_replaced__  = false;\n\n  this.re = {};\n\n  compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n  this.__schemas__[schema] = definition;\n  compile(this);\n  return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n  this.__opts__ = assign(this.__opts__, options);\n  return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n  // Reset scan cache\n  this.__text_cache__ = text;\n  this.__index__      = -1;\n\n  if (!text.length) { return false; }\n\n  var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n  // try to scan for link with schema - that's the most simple rule\n  if (this.re.schema_test.test(text)) {\n    re = this.re.schema_search;\n    re.lastIndex = 0;\n    while ((m = re.exec(text)) !== null) {\n      len = this.testSchemaAt(text, m[2], re.lastIndex);\n      if (len) {\n        this.__schema__     = m[2];\n        this.__index__      = m.index + m[1].length;\n        this.__last_index__ = m.index + m[0].length + len;\n        break;\n      }\n    }\n  }\n\n  if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n    // guess schemaless links\n    tld_pos = text.search(this.re.host_fuzzy_test);\n    if (tld_pos >= 0) {\n      // if tld is located after found link - no need to check fuzzy pattern\n      if (this.__index__ < 0 || tld_pos < this.__index__) {\n        if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n          shift = ml.index + ml[1].length;\n\n          if (this.__index__ < 0 || shift < this.__index__) {\n            this.__schema__     = '';\n            this.__index__      = shift;\n            this.__last_index__ = ml.index + ml[0].length;\n          }\n        }\n      }\n    }\n  }\n\n  if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n    // guess schemaless emails\n    at_pos = text.indexOf('@');\n    if (at_pos >= 0) {\n      // We can't skip this check, because this cases are possible:\n      // 192.168.1.1@gmail.com, my.in@example.com\n      if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n        shift = me.index + me[1].length;\n        next  = me.index + me[0].length;\n\n        if (this.__index__ < 0 || shift < this.__index__ ||\n            (shift === this.__index__ && next > this.__last_index__)) {\n          this.__schema__     = 'mailto:';\n          this.__index__      = shift;\n          this.__last_index__ = next;\n        }\n      }\n    }\n  }\n\n  return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n  return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n  // If not supported schema check requested - terminate\n  if (!this.__compiled__[schema.toLowerCase()]) {\n    return 0;\n  }\n  return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n *   protocol-neutral  links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n  var shift = 0, result = [];\n\n  // Try to take previous element from cache, if .test() called before\n  if (this.__index__ >= 0 && this.__text_cache__ === text) {\n    result.push(createMatch(this, shift));\n    shift = this.__last_index__;\n  }\n\n  // Cut head if cache was used\n  var tail = shift ? text.slice(shift) : text;\n\n  // Scan string until end reached\n  while (this.test(tail)) {\n    result.push(createMatch(this, shift));\n\n    tail = tail.slice(this.__last_index__);\n    shift += this.__last_index__;\n  }\n\n  if (result.length) {\n    return result;\n  }\n\n  return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n *   are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n  list = Array.isArray(list) ? list : [ list ];\n\n  if (!keepOld) {\n    this.__tlds__ = list.slice();\n    this.__tlds_replaced__ = true;\n    compile(this);\n    return this;\n  }\n\n  this.__tlds__ = this.__tlds__.concat(list)\n                                  .sort()\n                                  .filter(function (el, idx, arr) {\n                                    return el !== arr[idx - 1];\n                                  })\n                                  .reverse();\n\n  compile(this);\n  return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n  // Do minimal possible changes by default. Need to collect feedback prior\n  // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n  if (!match.schema) { match.url = 'http://' + match.url; }\n\n  if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n    match.url = 'mailto:' + match.url;\n  }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n\n},{\"./lib/re\":54}],54:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = function (opts) {\n  var re = {};\n\n  // Use direct extract instead of `regenerate` to reduse browserified size\n  re.src_Any = require('uc.micro/properties/Any/regex').source;\n  re.src_Cc  = require('uc.micro/categories/Cc/regex').source;\n  re.src_Z   = require('uc.micro/categories/Z/regex').source;\n  re.src_P   = require('uc.micro/categories/P/regex').source;\n\n  // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n  re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n  // \\p{\\Z\\Cc} (white spaces + control)\n  re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n  // Experimental. List of chars, completely prohibited in links\n  // because can separate it from other part of text\n  var text_separators = '[><\\uff5c]';\n\n  // All possible word characters (everything without punctuation, spaces & controls)\n  // Defined via punctuation & spaces to save space\n  // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n  re.src_pseudo_letter       = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n  // The same as abothe but without [0-9]\n  // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n  ////////////////////////////////////////////////////////////////////////////////\n\n  re.src_ip4 =\n\n    '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n  // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n  re.src_auth    = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n  re.src_port =\n\n    '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n  re.src_host_terminator =\n\n    '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n  re.src_path =\n\n    '(?:' +\n      '[/?#]' +\n        '(?:' +\n          '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n          '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n          '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n          '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n          '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n          \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n          \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' +  // allow `I'm_king` if no pair found\n          '\\\\.{2,4}[a-zA-Z0-9%/]|' + // github has ... in commit range links,\n                                     // google has .... in links (issue #66)\n                                     // Restrict to\n                                     // - english\n                                     // - percent-encoded\n                                     // - parts of file path\n                                     // until more examples found.\n          '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n          (opts && opts['---'] ?\n            '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n            :\n            '\\\\-+|'\n          ) +\n          '\\\\,(?!' + re.src_ZCc + ').|' +      // allow `,,,` in paths\n          '\\\\!(?!' + re.src_ZCc + '|[!]).|' +\n          '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n        ')+' +\n      '|\\\\/' +\n    ')?';\n\n  // Allow anything in markdown spec, forbid quote (\") at the first position\n  // because emails enclosed in quotes are far more common\n  re.src_email_name =\n\n    '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n  re.src_xn =\n\n    'xn--[a-z0-9\\\\-]{1,59}';\n\n  // More to read about domain names\n  // http://serverfault.com/questions/638260/\n\n  re.src_domain_root =\n\n    // Allow letters & digits (http://test1)\n    '(?:' +\n      re.src_xn +\n      '|' +\n      re.src_pseudo_letter + '{1,63}' +\n    ')';\n\n  re.src_domain =\n\n    '(?:' +\n      re.src_xn +\n      '|' +\n      '(?:' + re.src_pseudo_letter + ')' +\n      '|' +\n      '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n    ')';\n\n  re.src_host =\n\n    '(?:' +\n    // Don't need IP check, because digits are already allowed in normal domain names\n    //   src_ip4 +\n    // '|' +\n      '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n    ')';\n\n  re.tpl_host_fuzzy =\n\n    '(?:' +\n      re.src_ip4 +\n    '|' +\n      '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n    ')';\n\n  re.tpl_host_no_ip_fuzzy =\n\n    '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n  re.src_host_strict =\n\n    re.src_host + re.src_host_terminator;\n\n  re.tpl_host_fuzzy_strict =\n\n    re.tpl_host_fuzzy + re.src_host_terminator;\n\n  re.src_host_port_strict =\n\n    re.src_host + re.src_port + re.src_host_terminator;\n\n  re.tpl_host_port_fuzzy_strict =\n\n    re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n  re.tpl_host_port_no_ip_fuzzy_strict =\n\n    re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n  ////////////////////////////////////////////////////////////////////////////////\n  // Main rules\n\n  // Rude test fuzzy links by host, for quick deny\n  re.tpl_host_fuzzy_test =\n\n    'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n  re.tpl_email_fuzzy =\n\n      '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n      '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n  re.tpl_link_fuzzy =\n      // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n      // but can start with > (markdown blockquote)\n      '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n      '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n  re.tpl_link_no_ip_fuzzy =\n      // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n      // but can start with > (markdown blockquote)\n      '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n      '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n  return re;\n};\n\n},{\"uc.micro/categories/Cc/regex\":61,\"uc.micro/categories/P/regex\":63,\"uc.micro/categories/Z/regex\":64,\"uc.micro/properties/Any/regex\":66}],55:[function(require,module,exports){\n\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n  var i, ch, cache = decodeCache[exclude];\n  if (cache) { return cache; }\n\n  cache = decodeCache[exclude] = [];\n\n  for (i = 0; i < 128; i++) {\n    ch = String.fromCharCode(i);\n    cache.push(ch);\n  }\n\n  for (i = 0; i < exclude.length; i++) {\n    ch = exclude.charCodeAt(i);\n    cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n  }\n\n  return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n  var cache;\n\n  if (typeof exclude !== 'string') {\n    exclude = decode.defaultChars;\n  }\n\n  cache = getDecodeCache(exclude);\n\n  return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n    var i, l, b1, b2, b3, b4, chr,\n        result = '';\n\n    for (i = 0, l = seq.length; i < l; i += 3) {\n      b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n      if (b1 < 0x80) {\n        result += cache[b1];\n        continue;\n      }\n\n      if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n        // 110xxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n        if ((b2 & 0xC0) === 0x80) {\n          chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n          if (chr < 0x80) {\n            result += '\\ufffd\\ufffd';\n          } else {\n            result += String.fromCharCode(chr);\n          }\n\n          i += 3;\n          continue;\n        }\n      }\n\n      if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n        // 1110xxxx 10xxxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n        b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n        if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n          chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n          if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n            result += '\\ufffd\\ufffd\\ufffd';\n          } else {\n            result += String.fromCharCode(chr);\n          }\n\n          i += 6;\n          continue;\n        }\n      }\n\n      if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n        // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n        b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n        b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n        if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n          chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n          if (chr < 0x10000 || chr > 0x10FFFF) {\n            result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n          } else {\n            chr -= 0x10000;\n            result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n          }\n\n          i += 9;\n          continue;\n        }\n      }\n\n      result += '\\ufffd';\n    }\n\n    return result;\n  });\n}\n\n\ndecode.defaultChars   = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n\n},{}],56:[function(require,module,exports){\n\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n  var i, ch, cache = encodeCache[exclude];\n  if (cache) { return cache; }\n\n  cache = encodeCache[exclude] = [];\n\n  for (i = 0; i < 128; i++) {\n    ch = String.fromCharCode(i);\n\n    if (/^[0-9a-z]$/i.test(ch)) {\n      // always allow unencoded alphanumeric characters\n      cache.push(ch);\n    } else {\n      cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n    }\n  }\n\n  for (i = 0; i < exclude.length; i++) {\n    cache[exclude.charCodeAt(i)] = exclude[i];\n  }\n\n  return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n//  - string       - string to encode\n//  - exclude      - list of characters to ignore (in addition to a-zA-Z0-9)\n//  - keepEscaped  - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n  var i, l, code, nextCode, cache,\n      result = '';\n\n  if (typeof exclude !== 'string') {\n    // encode(string, keepEscaped)\n    keepEscaped  = exclude;\n    exclude = encode.defaultChars;\n  }\n\n  if (typeof keepEscaped === 'undefined') {\n    keepEscaped = true;\n  }\n\n  cache = getEncodeCache(exclude);\n\n  for (i = 0, l = string.length; i < l; i++) {\n    code = string.charCodeAt(i);\n\n    if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n      if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n        result += string.slice(i, i + 3);\n        i += 2;\n        continue;\n      }\n    }\n\n    if (code < 128) {\n      result += cache[code];\n      continue;\n    }\n\n    if (code >= 0xD800 && code <= 0xDFFF) {\n      if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n        nextCode = string.charCodeAt(i + 1);\n        if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n          result += encodeURIComponent(string[i] + string[i + 1]);\n          i++;\n          continue;\n        }\n      }\n      result += '%EF%BF%BD';\n      continue;\n    }\n\n    result += encodeURIComponent(string[i]);\n  }\n\n  return result;\n}\n\nencode.defaultChars   = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n\n},{}],57:[function(require,module,exports){\n\n'use strict';\n\n\nmodule.exports = function format(url) {\n  var result = '';\n\n  result += url.protocol || '';\n  result += url.slashes ? '//' : '';\n  result += url.auth ? url.auth + '@' : '';\n\n  if (url.hostname && url.hostname.indexOf(':') !== -1) {\n    // ipv6 address\n    result += '[' + url.hostname + ']';\n  } else {\n    result += url.hostname || '';\n  }\n\n  result += url.port ? ':' + url.port : '';\n  result += url.pathname || '';\n  result += url.search || '';\n  result += url.hash || '';\n\n  return result;\n};\n\n},{}],58:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse  = require('./parse');\n\n},{\"./decode\":55,\"./encode\":56,\"./format\":57,\"./parse\":59}],59:[function(require,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n//    e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n//    so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n//    i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n//    (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n//    which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n    portPattern = /:[0-9]*$/,\n\n    // Special case for a simple path URL\n    simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n    // RFC 2396: characters reserved for delimiting URLs.\n    // We actually just auto-escape these.\n    delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n    // RFC 2396: characters not allowed for various reasons.\n    unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n    autoEscape = [ '\\'' ].concat(unwise),\n    // Characters that are never ever allowed in a hostname.\n    // Note that any invalid chars are also handled, but these\n    // are the ones that are *expected* to be seen, so we fast-path\n    // them.\n    nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n    hostEndingChars = [ '/', '?', '#' ],\n    hostnameMaxLen = 255,\n    hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n    hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n    // protocols that can allow \"unsafe\" and \"unwise\" chars.\n    /* eslint-disable no-script-url */\n    // protocols that never have a hostname.\n    hostlessProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that always contain a // bit.\n    slashedProtocol = {\n      'http': true,\n      'https': true,\n      'ftp': true,\n      'gopher': true,\n      'file': true,\n      'http:': true,\n      'https:': true,\n      'ftp:': true,\n      'gopher:': true,\n      'file:': true\n    };\n    /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n  if (url && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n  var i, l, lowerProto, hec, slashes,\n      rest = url;\n\n  // trim before proceeding.\n  // This is to support parse stuff like \"  http://foo.com  \\n\"\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    lowerProto = proto.toLowerCase();\n    this.protocol = proto;\n    rest = rest.substr(proto.length);\n  }\n\n  // figure out if it's got a host\n  // user@server is *always* interpreted as a hostname, and url\n  // resolution will treat //foo/bar as host=foo,path=bar because that's\n  // how the browser resolves relative URLs.\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] &&\n      (slashes || (proto && !slashedProtocol[proto]))) {\n\n    // there's a hostname.\n    // the first instance of /, ?, ;, or # ends the host.\n    //\n    // If there is an @ in the hostname, then non-host chars *are* allowed\n    // to the left of the last @ sign, unless some host-ending character\n    // comes *before* the @-sign.\n    // URLs are obnoxious.\n    //\n    // ex:\n    // http://a@b@c/ => user:a@b host:c\n    // http://a@b?@c => user:a host:c path:/?@c\n\n    // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n    // Review our test case against browsers more comprehensively.\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (i = 0; i < hostEndingChars.length; i++) {\n      hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n        hostEnd = hec;\n      }\n    }\n\n    // at this point, either we have an explicit point where the\n    // auth portion cannot go past, or the last @ char is the decider.\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      // atSign must be in auth portion.\n      // http://a@b/c@d => host:b auth:a path:/c@d\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    // Now we have a portion which is definitely the auth.\n    // Pull that off.\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = auth;\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (i = 0; i < nonHostChars.length; i++) {\n      hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n        hostEnd = hec;\n      }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) {\n      hostEnd = rest.length;\n    }\n\n    if (rest[hostEnd - 1] === ':') { hostEnd--; }\n    var host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost(host);\n\n    // we've indicated that there is a hostname,\n    // so even if it's empty, it has to be present.\n    this.hostname = this.hostname || '';\n\n    // if hostname begins with [ and ends with ]\n    // assume that it's an IPv6 address.\n    var ipv6Hostname = this.hostname[0] === '[' &&\n        this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              // we replace non-ASCII char with a temporary placeholder\n              // we need this to make sure size of hostname is not\n              // broken by replacing non-ASCII by nothing\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    }\n\n    // strip [ and ] from the hostname\n    // the host field still retains them, though\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    rest = rest.slice(0, qm);\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] &&\n      this.hostname && !this.pathname) {\n    this.pathname = '';\n  }\n\n  return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n\n},{}],60:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],61:[function(require,module,exports){\nmodule.exports=/[\\0-\\x1F\\x7F-\\x9F]/\n},{}],62:[function(require,module,exports){\nmodule.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/\n},{}],63:[function(require,module,exports){\nmodule.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/\n},{}],64:[function(require,module,exports){\nmodule.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/\n},{}],65:[function(require,module,exports){\n'use strict';\n\nexports.Any = require('./properties/Any/regex');\nexports.Cc  = require('./categories/Cc/regex');\nexports.Cf  = require('./categories/Cf/regex');\nexports.P   = require('./categories/P/regex');\nexports.Z   = require('./categories/Z/regex');\n\n},{\"./categories/Cc/regex\":61,\"./categories/Cf/regex\":62,\"./categories/P/regex\":63,\"./categories/Z/regex\":64,\"./properties/Any/regex\":66}],66:[function(require,module,exports){\nmodule.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/\n},{}],67:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = require('./lib/');\n\n},{\"./lib/\":9}]},{},[67])(67)\n});\nconst markdownit = define()\nexport default markdownit"
  },
  {
    "path": "app/userland/app-stdlib/vendor/moment.js",
    "content": "//! moment.js\n//! version : 2.27.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n    return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n    hookCallback = callback;\n}\n\nfunction isArray(input) {\n    return (\n        input instanceof Array ||\n        Object.prototype.toString.call(input) === '[object Array]'\n    );\n}\n\nfunction isObject(input) {\n    // IE8 will treat undefined and null as object if it wasn't for\n    // input != null\n    return (\n        input != null &&\n        Object.prototype.toString.call(input) === '[object Object]'\n    );\n}\n\nfunction hasOwnProp(a, b) {\n    return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n    if (Object.getOwnPropertyNames) {\n        return Object.getOwnPropertyNames(obj).length === 0;\n    } else {\n        var k;\n        for (k in obj) {\n            if (hasOwnProp(obj, k)) {\n                return false;\n            }\n        }\n        return true;\n    }\n}\n\nfunction isUndefined(input) {\n    return input === void 0;\n}\n\nfunction isNumber(input) {\n    return (\n        typeof input === 'number' ||\n        Object.prototype.toString.call(input) === '[object Number]'\n    );\n}\n\nfunction isDate(input) {\n    return (\n        input instanceof Date ||\n        Object.prototype.toString.call(input) === '[object Date]'\n    );\n}\n\nfunction map(arr, fn) {\n    var res = [],\n        i;\n    for (i = 0; i < arr.length; ++i) {\n        res.push(fn(arr[i], i));\n    }\n    return res;\n}\n\nfunction extend(a, b) {\n    for (var i in b) {\n        if (hasOwnProp(b, i)) {\n            a[i] = b[i];\n        }\n    }\n\n    if (hasOwnProp(b, 'toString')) {\n        a.toString = b.toString;\n    }\n\n    if (hasOwnProp(b, 'valueOf')) {\n        a.valueOf = b.valueOf;\n    }\n\n    return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n    // We need to deep clone this object.\n    return {\n        empty: false,\n        unusedTokens: [],\n        unusedInput: [],\n        overflow: -2,\n        charsLeftOver: 0,\n        nullInput: false,\n        invalidEra: null,\n        invalidMonth: null,\n        invalidFormat: false,\n        userInvalidated: false,\n        iso: false,\n        parsedDateParts: [],\n        era: null,\n        meridiem: null,\n        rfc2822: false,\n        weekdayMismatch: false,\n    };\n}\n\nfunction getParsingFlags(m) {\n    if (m._pf == null) {\n        m._pf = defaultParsingFlags();\n    }\n    return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n    some = Array.prototype.some;\n} else {\n    some = function (fun) {\n        var t = Object(this),\n            len = t.length >>> 0,\n            i;\n\n        for (i = 0; i < len; i++) {\n            if (i in t && fun.call(this, t[i], i, t)) {\n                return true;\n            }\n        }\n\n        return false;\n    };\n}\n\nfunction isValid(m) {\n    if (m._isValid == null) {\n        var flags = getParsingFlags(m),\n            parsedParts = some.call(flags.parsedDateParts, function (i) {\n                return i != null;\n            }),\n            isNowValid =\n                !isNaN(m._d.getTime()) &&\n                flags.overflow < 0 &&\n                !flags.empty &&\n                !flags.invalidEra &&\n                !flags.invalidMonth &&\n                !flags.invalidWeekday &&\n                !flags.weekdayMismatch &&\n                !flags.nullInput &&\n                !flags.invalidFormat &&\n                !flags.userInvalidated &&\n                (!flags.meridiem || (flags.meridiem && parsedParts));\n\n        if (m._strict) {\n            isNowValid =\n                isNowValid &&\n                flags.charsLeftOver === 0 &&\n                flags.unusedTokens.length === 0 &&\n                flags.bigHour === undefined;\n        }\n\n        if (Object.isFrozen == null || !Object.isFrozen(m)) {\n            m._isValid = isNowValid;\n        } else {\n            return isNowValid;\n        }\n    }\n    return m._isValid;\n}\n\nfunction createInvalid(flags) {\n    var m = createUTC(NaN);\n    if (flags != null) {\n        extend(getParsingFlags(m), flags);\n    } else {\n        getParsingFlags(m).userInvalidated = true;\n    }\n\n    return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n    updateInProgress = false;\n\nfunction copyConfig(to, from) {\n    var i, prop, val;\n\n    if (!isUndefined(from._isAMomentObject)) {\n        to._isAMomentObject = from._isAMomentObject;\n    }\n    if (!isUndefined(from._i)) {\n        to._i = from._i;\n    }\n    if (!isUndefined(from._f)) {\n        to._f = from._f;\n    }\n    if (!isUndefined(from._l)) {\n        to._l = from._l;\n    }\n    if (!isUndefined(from._strict)) {\n        to._strict = from._strict;\n    }\n    if (!isUndefined(from._tzm)) {\n        to._tzm = from._tzm;\n    }\n    if (!isUndefined(from._isUTC)) {\n        to._isUTC = from._isUTC;\n    }\n    if (!isUndefined(from._offset)) {\n        to._offset = from._offset;\n    }\n    if (!isUndefined(from._pf)) {\n        to._pf = getParsingFlags(from);\n    }\n    if (!isUndefined(from._locale)) {\n        to._locale = from._locale;\n    }\n\n    if (momentProperties.length > 0) {\n        for (i = 0; i < momentProperties.length; i++) {\n            prop = momentProperties[i];\n            val = from[prop];\n            if (!isUndefined(val)) {\n                to[prop] = val;\n            }\n        }\n    }\n\n    return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n    copyConfig(this, config);\n    this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n    if (!this.isValid()) {\n        this._d = new Date(NaN);\n    }\n    // Prevent infinite loop in case updateOffset creates new moment\n    // objects.\n    if (updateInProgress === false) {\n        updateInProgress = true;\n        hooks.updateOffset(this);\n        updateInProgress = false;\n    }\n}\n\nfunction isMoment(obj) {\n    return (\n        obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n    );\n}\n\nfunction warn(msg) {\n    if (\n        hooks.suppressDeprecationWarnings === false &&\n        typeof console !== 'undefined' &&\n        console.warn\n    ) {\n        console.warn('Deprecation warning: ' + msg);\n    }\n}\n\nfunction deprecate(msg, fn) {\n    var firstTime = true;\n\n    return extend(function () {\n        if (hooks.deprecationHandler != null) {\n            hooks.deprecationHandler(null, msg);\n        }\n        if (firstTime) {\n            var args = [],\n                arg,\n                i,\n                key;\n            for (i = 0; i < arguments.length; i++) {\n                arg = '';\n                if (typeof arguments[i] === 'object') {\n                    arg += '\\n[' + i + '] ';\n                    for (key in arguments[0]) {\n                        if (hasOwnProp(arguments[0], key)) {\n                            arg += key + ': ' + arguments[0][key] + ', ';\n                        }\n                    }\n                    arg = arg.slice(0, -2); // Remove trailing comma and space\n                } else {\n                    arg = arguments[i];\n                }\n                args.push(arg);\n            }\n            warn(\n                msg +\n                    '\\nArguments: ' +\n                    Array.prototype.slice.call(args).join('') +\n                    '\\n' +\n                    new Error().stack\n            );\n            firstTime = false;\n        }\n        return fn.apply(this, arguments);\n    }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n    if (hooks.deprecationHandler != null) {\n        hooks.deprecationHandler(name, msg);\n    }\n    if (!deprecations[name]) {\n        warn(msg);\n        deprecations[name] = true;\n    }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n    return (\n        (typeof Function !== 'undefined' && input instanceof Function) ||\n        Object.prototype.toString.call(input) === '[object Function]'\n    );\n}\n\nfunction set(config) {\n    var prop, i;\n    for (i in config) {\n        if (hasOwnProp(config, i)) {\n            prop = config[i];\n            if (isFunction(prop)) {\n                this[i] = prop;\n            } else {\n                this['_' + i] = prop;\n            }\n        }\n    }\n    this._config = config;\n    // Lenient ordinal parsing accepts just a number in addition to\n    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n    this._dayOfMonthOrdinalParseLenient = new RegExp(\n        (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n            '|' +\n            /\\d{1,2}/.source\n    );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n    var res = extend({}, parentConfig),\n        prop;\n    for (prop in childConfig) {\n        if (hasOwnProp(childConfig, prop)) {\n            if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n                res[prop] = {};\n                extend(res[prop], parentConfig[prop]);\n                extend(res[prop], childConfig[prop]);\n            } else if (childConfig[prop] != null) {\n                res[prop] = childConfig[prop];\n            } else {\n                delete res[prop];\n            }\n        }\n    }\n    for (prop in parentConfig) {\n        if (\n            hasOwnProp(parentConfig, prop) &&\n            !hasOwnProp(childConfig, prop) &&\n            isObject(parentConfig[prop])\n        ) {\n            // make sure changes to properties don't modify parent config\n            res[prop] = extend({}, res[prop]);\n        }\n    }\n    return res;\n}\n\nfunction Locale(config) {\n    if (config != null) {\n        this.set(config);\n    }\n}\n\nvar keys;\n\nif (Object.keys) {\n    keys = Object.keys;\n} else {\n    keys = function (obj) {\n        var i,\n            res = [];\n        for (i in obj) {\n            if (hasOwnProp(obj, i)) {\n                res.push(i);\n            }\n        }\n        return res;\n    };\n}\n\nvar defaultCalendar = {\n    sameDay: '[Today at] LT',\n    nextDay: '[Tomorrow at] LT',\n    nextWeek: 'dddd [at] LT',\n    lastDay: '[Yesterday at] LT',\n    lastWeek: '[Last] dddd [at] LT',\n    sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n    var output = this._calendar[key] || this._calendar['sameElse'];\n    return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n    var absNumber = '' + Math.abs(number),\n        zerosToFill = targetLength - absNumber.length,\n        sign = number >= 0;\n    return (\n        (sign ? (forceSign ? '+' : '') : '-') +\n        Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n        absNumber\n    );\n}\n\nvar formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n    localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n    formatFunctions = {},\n    formatTokenFunctions = {};\n\n// token:    'M'\n// padded:   ['MM', 2]\n// ordinal:  'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n    var func = callback;\n    if (typeof callback === 'string') {\n        func = function () {\n            return this[callback]();\n        };\n    }\n    if (token) {\n        formatTokenFunctions[token] = func;\n    }\n    if (padded) {\n        formatTokenFunctions[padded[0]] = function () {\n            return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n        };\n    }\n    if (ordinal) {\n        formatTokenFunctions[ordinal] = function () {\n            return this.localeData().ordinal(\n                func.apply(this, arguments),\n                token\n            );\n        };\n    }\n}\n\nfunction removeFormattingTokens(input) {\n    if (input.match(/\\[[\\s\\S]/)) {\n        return input.replace(/^\\[|\\]$/g, '');\n    }\n    return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n    var array = format.match(formattingTokens),\n        i,\n        length;\n\n    for (i = 0, length = array.length; i < length; i++) {\n        if (formatTokenFunctions[array[i]]) {\n            array[i] = formatTokenFunctions[array[i]];\n        } else {\n            array[i] = removeFormattingTokens(array[i]);\n        }\n    }\n\n    return function (mom) {\n        var output = '',\n            i;\n        for (i = 0; i < length; i++) {\n            output += isFunction(array[i])\n                ? array[i].call(mom, format)\n                : array[i];\n        }\n        return output;\n    };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n    if (!m.isValid()) {\n        return m.localeData().invalidDate();\n    }\n\n    format = expandFormat(format, m.localeData());\n    formatFunctions[format] =\n        formatFunctions[format] || makeFormatFunction(format);\n\n    return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n    var i = 5;\n\n    function replaceLongDateFormatTokens(input) {\n        return locale.longDateFormat(input) || input;\n    }\n\n    localFormattingTokens.lastIndex = 0;\n    while (i >= 0 && localFormattingTokens.test(format)) {\n        format = format.replace(\n            localFormattingTokens,\n            replaceLongDateFormatTokens\n        );\n        localFormattingTokens.lastIndex = 0;\n        i -= 1;\n    }\n\n    return format;\n}\n\nvar defaultLongDateFormat = {\n    LTS: 'h:mm:ss A',\n    LT: 'h:mm A',\n    L: 'MM/DD/YYYY',\n    LL: 'MMMM D, YYYY',\n    LLL: 'MMMM D, YYYY h:mm A',\n    LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n    var format = this._longDateFormat[key],\n        formatUpper = this._longDateFormat[key.toUpperCase()];\n\n    if (format || !formatUpper) {\n        return format;\n    }\n\n    this._longDateFormat[key] = formatUpper\n        .match(formattingTokens)\n        .map(function (tok) {\n            if (\n                tok === 'MMMM' ||\n                tok === 'MM' ||\n                tok === 'DD' ||\n                tok === 'dddd'\n            ) {\n                return tok.slice(1);\n            }\n            return tok;\n        })\n        .join('');\n\n    return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n    return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n    defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n    return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n    future: 'in %s',\n    past: '%s ago',\n    s: 'a few seconds',\n    ss: '%d seconds',\n    m: 'a minute',\n    mm: '%d minutes',\n    h: 'an hour',\n    hh: '%d hours',\n    d: 'a day',\n    dd: '%d days',\n    w: 'a week',\n    ww: '%d weeks',\n    M: 'a month',\n    MM: '%d months',\n    y: 'a year',\n    yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n    var output = this._relativeTime[string];\n    return isFunction(output)\n        ? output(number, withoutSuffix, string, isFuture)\n        : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n    return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {};\n\nfunction addUnitAlias(unit, shorthand) {\n    var lowerCase = unit.toLowerCase();\n    aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nfunction normalizeUnits(units) {\n    return typeof units === 'string'\n        ? aliases[units] || aliases[units.toLowerCase()]\n        : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n    var normalizedInput = {},\n        normalizedProp,\n        prop;\n\n    for (prop in inputObject) {\n        if (hasOwnProp(inputObject, prop)) {\n            normalizedProp = normalizeUnits(prop);\n            if (normalizedProp) {\n                normalizedInput[normalizedProp] = inputObject[prop];\n            }\n        }\n    }\n\n    return normalizedInput;\n}\n\nvar priorities = {};\n\nfunction addUnitPriority(unit, priority) {\n    priorities[unit] = priority;\n}\n\nfunction getPrioritizedUnits(unitsObj) {\n    var units = [],\n        u;\n    for (u in unitsObj) {\n        if (hasOwnProp(unitsObj, u)) {\n            units.push({ unit: u, priority: priorities[u] });\n        }\n    }\n    units.sort(function (a, b) {\n        return a.priority - b.priority;\n    });\n    return units;\n}\n\nfunction isLeapYear(year) {\n    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nfunction absFloor(number) {\n    if (number < 0) {\n        // -0 -> 0\n        return Math.ceil(number) || 0;\n    } else {\n        return Math.floor(number);\n    }\n}\n\nfunction toInt(argumentForCoercion) {\n    var coercedNumber = +argumentForCoercion,\n        value = 0;\n\n    if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n        value = absFloor(coercedNumber);\n    }\n\n    return value;\n}\n\nfunction makeGetSet(unit, keepTime) {\n    return function (value) {\n        if (value != null) {\n            set$1(this, unit, value);\n            hooks.updateOffset(this, keepTime);\n            return this;\n        } else {\n            return get(this, unit);\n        }\n    };\n}\n\nfunction get(mom, unit) {\n    return mom.isValid()\n        ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n        : NaN;\n}\n\nfunction set$1(mom, unit, value) {\n    if (mom.isValid() && !isNaN(value)) {\n        if (\n            unit === 'FullYear' &&\n            isLeapYear(mom.year()) &&\n            mom.month() === 1 &&\n            mom.date() === 29\n        ) {\n            value = toInt(value);\n            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n                value,\n                mom.month(),\n                daysInMonth(value, mom.month())\n            );\n        } else {\n            mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n        }\n    }\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n    units = normalizeUnits(units);\n    if (isFunction(this[units])) {\n        return this[units]();\n    }\n    return this;\n}\n\nfunction stringSet(units, value) {\n    if (typeof units === 'object') {\n        units = normalizeObjectUnits(units);\n        var prioritized = getPrioritizedUnits(units),\n            i;\n        for (i = 0; i < prioritized.length; i++) {\n            this[prioritized[i].unit](units[prioritized[i].unit]);\n        }\n    } else {\n        units = normalizeUnits(units);\n        if (isFunction(this[units])) {\n            return this[units](value);\n        }\n    }\n    return this;\n}\n\nvar match1 = /\\d/, //       0 - 9\n    match2 = /\\d\\d/, //      00 - 99\n    match3 = /\\d{3}/, //     000 - 999\n    match4 = /\\d{4}/, //    0000 - 9999\n    match6 = /[+-]?\\d{6}/, // -999999 - 999999\n    match1to2 = /\\d\\d?/, //       0 - 99\n    match3to4 = /\\d\\d\\d\\d?/, //     999 - 9999\n    match5to6 = /\\d\\d\\d\\d\\d\\d?/, //   99999 - 999999\n    match1to3 = /\\d{1,3}/, //       0 - 999\n    match1to4 = /\\d{1,4}/, //       0 - 9999\n    match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n    matchUnsigned = /\\d+/, //       0 - inf\n    matchSigned = /[+-]?\\d+/, //    -inf - inf\n    matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n    matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n    matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n    // any word (or two) characters or numbers including two/three word month in arabic.\n    // includes scottish gaelic two word and hyphenated months\n    matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n    regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n    regexes[token] = isFunction(regex)\n        ? regex\n        : function (isStrict, localeData) {\n              return isStrict && strictRegex ? strictRegex : regex;\n          };\n}\n\nfunction getParseRegexForToken(token, config) {\n    if (!hasOwnProp(regexes, token)) {\n        return new RegExp(unescapeFormat(token));\n    }\n\n    return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n    return regexEscape(\n        s\n            .replace('\\\\', '')\n            .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n                matched,\n                p1,\n                p2,\n                p3,\n                p4\n            ) {\n                return p1 || p2 || p3 || p4;\n            })\n    );\n}\n\nfunction regexEscape(s) {\n    return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n    var i,\n        func = callback;\n    if (typeof token === 'string') {\n        token = [token];\n    }\n    if (isNumber(callback)) {\n        func = function (input, array) {\n            array[callback] = toInt(input);\n        };\n    }\n    for (i = 0; i < token.length; i++) {\n        tokens[token[i]] = func;\n    }\n}\n\nfunction addWeekParseToken(token, callback) {\n    addParseToken(token, function (input, array, config, token) {\n        config._w = config._w || {};\n        callback(input, config._w, config, token);\n    });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n    if (input != null && hasOwnProp(tokens, token)) {\n        tokens[token](input, config._a, config, token);\n    }\n}\n\nvar YEAR = 0,\n    MONTH = 1,\n    DATE = 2,\n    HOUR = 3,\n    MINUTE = 4,\n    SECOND = 5,\n    MILLISECOND = 6,\n    WEEK = 7,\n    WEEKDAY = 8;\n\nfunction mod(n, x) {\n    return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n    indexOf = Array.prototype.indexOf;\n} else {\n    indexOf = function (o) {\n        // I know\n        var i;\n        for (i = 0; i < this.length; ++i) {\n            if (this[i] === o) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\n\nfunction daysInMonth(year, month) {\n    if (isNaN(year) || isNaN(month)) {\n        return NaN;\n    }\n    var modMonth = mod(month, 12);\n    year += (month - modMonth) / 12;\n    return modMonth === 1\n        ? isLeapYear(year)\n            ? 29\n            : 28\n        : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n    return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n    return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n    return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n    return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n    return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n    array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n    var month = config._locale.monthsParse(input, token, config._strict);\n    // if we didn't find a month name, mark the date as invalid.\n    if (month != null) {\n        array[MONTH] = month;\n    } else {\n        getParsingFlags(config).invalidMonth = input;\n    }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n        '_'\n    ),\n    defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n        '_'\n    ),\n    MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n    defaultMonthsShortRegex = matchWord,\n    defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n    if (!m) {\n        return isArray(this._months)\n            ? this._months\n            : this._months['standalone'];\n    }\n    return isArray(this._months)\n        ? this._months[m.month()]\n        : this._months[\n              (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n                  ? 'format'\n                  : 'standalone'\n          ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n    if (!m) {\n        return isArray(this._monthsShort)\n            ? this._monthsShort\n            : this._monthsShort['standalone'];\n    }\n    return isArray(this._monthsShort)\n        ? this._monthsShort[m.month()]\n        : this._monthsShort[\n              MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n          ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n    var i,\n        ii,\n        mom,\n        llc = monthName.toLocaleLowerCase();\n    if (!this._monthsParse) {\n        // this is not used\n        this._monthsParse = [];\n        this._longMonthsParse = [];\n        this._shortMonthsParse = [];\n        for (i = 0; i < 12; ++i) {\n            mom = createUTC([2000, i]);\n            this._shortMonthsParse[i] = this.monthsShort(\n                mom,\n                ''\n            ).toLocaleLowerCase();\n            this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n        }\n    }\n\n    if (strict) {\n        if (format === 'MMM') {\n            ii = indexOf.call(this._shortMonthsParse, llc);\n            return ii !== -1 ? ii : null;\n        } else {\n            ii = indexOf.call(this._longMonthsParse, llc);\n            return ii !== -1 ? ii : null;\n        }\n    } else {\n        if (format === 'MMM') {\n            ii = indexOf.call(this._shortMonthsParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._longMonthsParse, llc);\n            return ii !== -1 ? ii : null;\n        } else {\n            ii = indexOf.call(this._longMonthsParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._shortMonthsParse, llc);\n            return ii !== -1 ? ii : null;\n        }\n    }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n    var i, mom, regex;\n\n    if (this._monthsParseExact) {\n        return handleStrictParse.call(this, monthName, format, strict);\n    }\n\n    if (!this._monthsParse) {\n        this._monthsParse = [];\n        this._longMonthsParse = [];\n        this._shortMonthsParse = [];\n    }\n\n    // TODO: add sorting\n    // Sorting makes sure if one month (or abbr) is a prefix of another\n    // see sorting in computeMonthsParse\n    for (i = 0; i < 12; i++) {\n        // make the regex if we don't have it already\n        mom = createUTC([2000, i]);\n        if (strict && !this._longMonthsParse[i]) {\n            this._longMonthsParse[i] = new RegExp(\n                '^' + this.months(mom, '').replace('.', '') + '$',\n                'i'\n            );\n            this._shortMonthsParse[i] = new RegExp(\n                '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n                'i'\n            );\n        }\n        if (!strict && !this._monthsParse[i]) {\n            regex =\n                '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n            this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n        }\n        // test the regex\n        if (\n            strict &&\n            format === 'MMMM' &&\n            this._longMonthsParse[i].test(monthName)\n        ) {\n            return i;\n        } else if (\n            strict &&\n            format === 'MMM' &&\n            this._shortMonthsParse[i].test(monthName)\n        ) {\n            return i;\n        } else if (!strict && this._monthsParse[i].test(monthName)) {\n            return i;\n        }\n    }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n    var dayOfMonth;\n\n    if (!mom.isValid()) {\n        // No op\n        return mom;\n    }\n\n    if (typeof value === 'string') {\n        if (/^\\d+$/.test(value)) {\n            value = toInt(value);\n        } else {\n            value = mom.localeData().monthsParse(value);\n            // TODO: Another silent failure?\n            if (!isNumber(value)) {\n                return mom;\n            }\n        }\n    }\n\n    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n    mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n    return mom;\n}\n\nfunction getSetMonth(value) {\n    if (value != null) {\n        setMonth(this, value);\n        hooks.updateOffset(this, true);\n        return this;\n    } else {\n        return get(this, 'Month');\n    }\n}\n\nfunction getDaysInMonth() {\n    return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n    if (this._monthsParseExact) {\n        if (!hasOwnProp(this, '_monthsRegex')) {\n            computeMonthsParse.call(this);\n        }\n        if (isStrict) {\n            return this._monthsShortStrictRegex;\n        } else {\n            return this._monthsShortRegex;\n        }\n    } else {\n        if (!hasOwnProp(this, '_monthsShortRegex')) {\n            this._monthsShortRegex = defaultMonthsShortRegex;\n        }\n        return this._monthsShortStrictRegex && isStrict\n            ? this._monthsShortStrictRegex\n            : this._monthsShortRegex;\n    }\n}\n\nfunction monthsRegex(isStrict) {\n    if (this._monthsParseExact) {\n        if (!hasOwnProp(this, '_monthsRegex')) {\n            computeMonthsParse.call(this);\n        }\n        if (isStrict) {\n            return this._monthsStrictRegex;\n        } else {\n            return this._monthsRegex;\n        }\n    } else {\n        if (!hasOwnProp(this, '_monthsRegex')) {\n            this._monthsRegex = defaultMonthsRegex;\n        }\n        return this._monthsStrictRegex && isStrict\n            ? this._monthsStrictRegex\n            : this._monthsRegex;\n    }\n}\n\nfunction computeMonthsParse() {\n    function cmpLenRev(a, b) {\n        return b.length - a.length;\n    }\n\n    var shortPieces = [],\n        longPieces = [],\n        mixedPieces = [],\n        i,\n        mom;\n    for (i = 0; i < 12; i++) {\n        // make the regex if we don't have it already\n        mom = createUTC([2000, i]);\n        shortPieces.push(this.monthsShort(mom, ''));\n        longPieces.push(this.months(mom, ''));\n        mixedPieces.push(this.months(mom, ''));\n        mixedPieces.push(this.monthsShort(mom, ''));\n    }\n    // Sorting makes sure if one month (or abbr) is a prefix of another it\n    // will match the longer piece.\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n    for (i = 0; i < 12; i++) {\n        shortPieces[i] = regexEscape(shortPieces[i]);\n        longPieces[i] = regexEscape(longPieces[i]);\n    }\n    for (i = 0; i < 24; i++) {\n        mixedPieces[i] = regexEscape(mixedPieces[i]);\n    }\n\n    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._monthsShortRegex = this._monthsRegex;\n    this._monthsStrictRegex = new RegExp(\n        '^(' + longPieces.join('|') + ')',\n        'i'\n    );\n    this._monthsShortStrictRegex = new RegExp(\n        '^(' + shortPieces.join('|') + ')',\n        'i'\n    );\n}\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n    var y = this.year();\n    return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n    return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n    array[YEAR] =\n        input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n    array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n    array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n    return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n    return isLeapYear(this.year());\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n    // can't just apply() to create a date:\n    // https://stackoverflow.com/q/181348\n    var date;\n    // the date constructor remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n        // preserve leap years using a full 400 year cycle, then reset\n        date = new Date(y + 400, m, d, h, M, s, ms);\n        if (isFinite(date.getFullYear())) {\n            date.setFullYear(y);\n        }\n    } else {\n        date = new Date(y, m, d, h, M, s, ms);\n    }\n\n    return date;\n}\n\nfunction createUTCDate(y) {\n    var date, args;\n    // the Date.UTC function remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n        args = Array.prototype.slice.call(arguments);\n        // preserve leap years using a full 400 year cycle, then reset\n        args[0] = y + 400;\n        date = new Date(Date.UTC.apply(null, args));\n        if (isFinite(date.getUTCFullYear())) {\n            date.setUTCFullYear(y);\n        }\n    } else {\n        date = new Date(Date.UTC.apply(null, arguments));\n    }\n\n    return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n    var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n        fwd = 7 + dow - doy,\n        // first-week day local weekday -- which local weekday is fwd\n        fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n    return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n    var localWeekday = (7 + weekday - dow) % 7,\n        weekOffset = firstWeekOffset(year, dow, doy),\n        dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n        resYear,\n        resDayOfYear;\n\n    if (dayOfYear <= 0) {\n        resYear = year - 1;\n        resDayOfYear = daysInYear(resYear) + dayOfYear;\n    } else if (dayOfYear > daysInYear(year)) {\n        resYear = year + 1;\n        resDayOfYear = dayOfYear - daysInYear(year);\n    } else {\n        resYear = year;\n        resDayOfYear = dayOfYear;\n    }\n\n    return {\n        year: resYear,\n        dayOfYear: resDayOfYear,\n    };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n    var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n        week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n        resWeek,\n        resYear;\n\n    if (week < 1) {\n        resYear = mom.year() - 1;\n        resWeek = week + weeksInYear(resYear, dow, doy);\n    } else if (week > weeksInYear(mom.year(), dow, doy)) {\n        resWeek = week - weeksInYear(mom.year(), dow, doy);\n        resYear = mom.year() + 1;\n    } else {\n        resYear = mom.year();\n        resWeek = week;\n    }\n\n    return {\n        week: resWeek,\n        year: resYear,\n    };\n}\n\nfunction weeksInYear(year, dow, doy) {\n    var weekOffset = firstWeekOffset(year, dow, doy),\n        weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n    input,\n    week,\n    config,\n    token\n) {\n    week[token.substr(0, 1)] = toInt(input);\n});\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n    return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n    dow: 0, // Sunday is the first day of the week.\n    doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n    return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n    return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n    var week = this.localeData().week(this);\n    return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n    var week = weekOfYear(this, 1, 4).week;\n    return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n    return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n    return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n    return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n    return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n    return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n    return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n    var weekday = config._locale.weekdaysParse(input, token, config._strict);\n    // if we didn't get a weekday name, mark the date as invalid\n    if (weekday != null) {\n        week.d = weekday;\n    } else {\n        getParsingFlags(config).invalidWeekday = input;\n    }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n    week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n    if (typeof input !== 'string') {\n        return input;\n    }\n\n    if (!isNaN(input)) {\n        return parseInt(input, 10);\n    }\n\n    input = locale.weekdaysParse(input);\n    if (typeof input === 'number') {\n        return input;\n    }\n\n    return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n    if (typeof input === 'string') {\n        return locale.weekdaysParse(input) % 7 || 7;\n    }\n    return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n    return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n        '_'\n    ),\n    defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    defaultWeekdaysRegex = matchWord,\n    defaultWeekdaysShortRegex = matchWord,\n    defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n    var weekdays = isArray(this._weekdays)\n        ? this._weekdays\n        : this._weekdays[\n              m && m !== true && this._weekdays.isFormat.test(format)\n                  ? 'format'\n                  : 'standalone'\n          ];\n    return m === true\n        ? shiftWeekdays(weekdays, this._week.dow)\n        : m\n        ? weekdays[m.day()]\n        : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n    return m === true\n        ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n        : m\n        ? this._weekdaysShort[m.day()]\n        : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n    return m === true\n        ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n        : m\n        ? this._weekdaysMin[m.day()]\n        : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n    var i,\n        ii,\n        mom,\n        llc = weekdayName.toLocaleLowerCase();\n    if (!this._weekdaysParse) {\n        this._weekdaysParse = [];\n        this._shortWeekdaysParse = [];\n        this._minWeekdaysParse = [];\n\n        for (i = 0; i < 7; ++i) {\n            mom = createUTC([2000, 1]).day(i);\n            this._minWeekdaysParse[i] = this.weekdaysMin(\n                mom,\n                ''\n            ).toLocaleLowerCase();\n            this._shortWeekdaysParse[i] = this.weekdaysShort(\n                mom,\n                ''\n            ).toLocaleLowerCase();\n            this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n        }\n    }\n\n    if (strict) {\n        if (format === 'dddd') {\n            ii = indexOf.call(this._weekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        } else if (format === 'ddd') {\n            ii = indexOf.call(this._shortWeekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        } else {\n            ii = indexOf.call(this._minWeekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        }\n    } else {\n        if (format === 'dddd') {\n            ii = indexOf.call(this._weekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._shortWeekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._minWeekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        } else if (format === 'ddd') {\n            ii = indexOf.call(this._shortWeekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._weekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._minWeekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        } else {\n            ii = indexOf.call(this._minWeekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._weekdaysParse, llc);\n            if (ii !== -1) {\n                return ii;\n            }\n            ii = indexOf.call(this._shortWeekdaysParse, llc);\n            return ii !== -1 ? ii : null;\n        }\n    }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n    var i, mom, regex;\n\n    if (this._weekdaysParseExact) {\n        return handleStrictParse$1.call(this, weekdayName, format, strict);\n    }\n\n    if (!this._weekdaysParse) {\n        this._weekdaysParse = [];\n        this._minWeekdaysParse = [];\n        this._shortWeekdaysParse = [];\n        this._fullWeekdaysParse = [];\n    }\n\n    for (i = 0; i < 7; i++) {\n        // make the regex if we don't have it already\n\n        mom = createUTC([2000, 1]).day(i);\n        if (strict && !this._fullWeekdaysParse[i]) {\n            this._fullWeekdaysParse[i] = new RegExp(\n                '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n                'i'\n            );\n            this._shortWeekdaysParse[i] = new RegExp(\n                '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n                'i'\n            );\n            this._minWeekdaysParse[i] = new RegExp(\n                '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n                'i'\n            );\n        }\n        if (!this._weekdaysParse[i]) {\n            regex =\n                '^' +\n                this.weekdays(mom, '') +\n                '|^' +\n                this.weekdaysShort(mom, '') +\n                '|^' +\n                this.weekdaysMin(mom, '');\n            this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n        }\n        // test the regex\n        if (\n            strict &&\n            format === 'dddd' &&\n            this._fullWeekdaysParse[i].test(weekdayName)\n        ) {\n            return i;\n        } else if (\n            strict &&\n            format === 'ddd' &&\n            this._shortWeekdaysParse[i].test(weekdayName)\n        ) {\n            return i;\n        } else if (\n            strict &&\n            format === 'dd' &&\n            this._minWeekdaysParse[i].test(weekdayName)\n        ) {\n            return i;\n        } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n            return i;\n        }\n    }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n    if (!this.isValid()) {\n        return input != null ? this : NaN;\n    }\n    var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n    if (input != null) {\n        input = parseWeekday(input, this.localeData());\n        return this.add(input - day, 'd');\n    } else {\n        return day;\n    }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n    if (!this.isValid()) {\n        return input != null ? this : NaN;\n    }\n    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n    return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n    if (!this.isValid()) {\n        return input != null ? this : NaN;\n    }\n\n    // behaves the same as moment#day except\n    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n    // as a setter, sunday should belong to the previous week.\n\n    if (input != null) {\n        var weekday = parseIsoWeekday(input, this.localeData());\n        return this.day(this.day() % 7 ? weekday : weekday - 7);\n    } else {\n        return this.day() || 7;\n    }\n}\n\nfunction weekdaysRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n        if (!hasOwnProp(this, '_weekdaysRegex')) {\n            computeWeekdaysParse.call(this);\n        }\n        if (isStrict) {\n            return this._weekdaysStrictRegex;\n        } else {\n            return this._weekdaysRegex;\n        }\n    } else {\n        if (!hasOwnProp(this, '_weekdaysRegex')) {\n            this._weekdaysRegex = defaultWeekdaysRegex;\n        }\n        return this._weekdaysStrictRegex && isStrict\n            ? this._weekdaysStrictRegex\n            : this._weekdaysRegex;\n    }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n        if (!hasOwnProp(this, '_weekdaysRegex')) {\n            computeWeekdaysParse.call(this);\n        }\n        if (isStrict) {\n            return this._weekdaysShortStrictRegex;\n        } else {\n            return this._weekdaysShortRegex;\n        }\n    } else {\n        if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n            this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n        }\n        return this._weekdaysShortStrictRegex && isStrict\n            ? this._weekdaysShortStrictRegex\n            : this._weekdaysShortRegex;\n    }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n        if (!hasOwnProp(this, '_weekdaysRegex')) {\n            computeWeekdaysParse.call(this);\n        }\n        if (isStrict) {\n            return this._weekdaysMinStrictRegex;\n        } else {\n            return this._weekdaysMinRegex;\n        }\n    } else {\n        if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n            this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n        }\n        return this._weekdaysMinStrictRegex && isStrict\n            ? this._weekdaysMinStrictRegex\n            : this._weekdaysMinRegex;\n    }\n}\n\nfunction computeWeekdaysParse() {\n    function cmpLenRev(a, b) {\n        return b.length - a.length;\n    }\n\n    var minPieces = [],\n        shortPieces = [],\n        longPieces = [],\n        mixedPieces = [],\n        i,\n        mom,\n        minp,\n        shortp,\n        longp;\n    for (i = 0; i < 7; i++) {\n        // make the regex if we don't have it already\n        mom = createUTC([2000, 1]).day(i);\n        minp = regexEscape(this.weekdaysMin(mom, ''));\n        shortp = regexEscape(this.weekdaysShort(mom, ''));\n        longp = regexEscape(this.weekdays(mom, ''));\n        minPieces.push(minp);\n        shortPieces.push(shortp);\n        longPieces.push(longp);\n        mixedPieces.push(minp);\n        mixedPieces.push(shortp);\n        mixedPieces.push(longp);\n    }\n    // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n    // will match the longer piece.\n    minPieces.sort(cmpLenRev);\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n\n    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._weekdaysShortRegex = this._weekdaysRegex;\n    this._weekdaysMinRegex = this._weekdaysRegex;\n\n    this._weekdaysStrictRegex = new RegExp(\n        '^(' + longPieces.join('|') + ')',\n        'i'\n    );\n    this._weekdaysShortStrictRegex = new RegExp(\n        '^(' + shortPieces.join('|') + ')',\n        'i'\n    );\n    this._weekdaysMinStrictRegex = new RegExp(\n        '^(' + minPieces.join('|') + ')',\n        'i'\n    );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n    return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n    return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n    return (\n        '' +\n        hFormat.apply(this) +\n        zeroFill(this.minutes(), 2) +\n        zeroFill(this.seconds(), 2)\n    );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n    return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n    return (\n        '' +\n        this.hours() +\n        zeroFill(this.minutes(), 2) +\n        zeroFill(this.seconds(), 2)\n    );\n});\n\nfunction meridiem(token, lowercase) {\n    addFormatToken(token, 0, 0, function () {\n        return this.localeData().meridiem(\n            this.hours(),\n            this.minutes(),\n            lowercase\n        );\n    });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n    return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n    var kInput = toInt(input);\n    array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n    config._isPm = config._locale.isPM(input);\n    config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n    array[HOUR] = toInt(input);\n    getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n    getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n        pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n    getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n        pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n    // Using charAt should be more compatible.\n    return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n    // Setting the hour should keep the time, because the user explicitly\n    // specified which hour they want. So trying to maintain the same hour (in\n    // a new timezone) makes sense. Adding/subtracting hours does not follow\n    // this rule.\n    getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n    if (hours > 11) {\n        return isLower ? 'pm' : 'PM';\n    } else {\n        return isLower ? 'am' : 'AM';\n    }\n}\n\nvar baseConfig = {\n    calendar: defaultCalendar,\n    longDateFormat: defaultLongDateFormat,\n    invalidDate: defaultInvalidDate,\n    ordinal: defaultOrdinal,\n    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n    relativeTime: defaultRelativeTime,\n\n    months: defaultLocaleMonths,\n    monthsShort: defaultLocaleMonthsShort,\n\n    week: defaultLocaleWeek,\n\n    weekdays: defaultLocaleWeekdays,\n    weekdaysMin: defaultLocaleWeekdaysMin,\n    weekdaysShort: defaultLocaleWeekdaysShort,\n\n    meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n    localeFamilies = {},\n    globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n    var i,\n        minl = Math.min(arr1.length, arr2.length);\n    for (i = 0; i < minl; i += 1) {\n        if (arr1[i] !== arr2[i]) {\n            return i;\n        }\n    }\n    return minl;\n}\n\nfunction normalizeLocale(key) {\n    return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n    var i = 0,\n        j,\n        next,\n        locale,\n        split;\n\n    while (i < names.length) {\n        split = normalizeLocale(names[i]).split('-');\n        j = split.length;\n        next = normalizeLocale(names[i + 1]);\n        next = next ? next.split('-') : null;\n        while (j > 0) {\n            locale = loadLocale(split.slice(0, j).join('-'));\n            if (locale) {\n                return locale;\n            }\n            if (\n                next &&\n                next.length >= j &&\n                commonPrefix(split, next) >= j - 1\n            ) {\n                //the next array item is better than a shallower substring of this one\n                break;\n            }\n            j--;\n        }\n        i++;\n    }\n    return globalLocale;\n}\n\nfunction loadLocale(name) {\n    var oldLocale = null,\n        aliasedRequire;\n    // TODO: Find a better way to register and load all the locales in Node\n    if (\n        locales[name] === undefined &&\n        typeof module !== 'undefined' &&\n        module &&\n        module.exports\n    ) {\n        try {\n            oldLocale = globalLocale._abbr;\n            aliasedRequire = require;\n            aliasedRequire('./locale/' + name);\n            getSetGlobalLocale(oldLocale);\n        } catch (e) {\n            // mark as not found to avoid repeating expensive file require call causing high CPU\n            // when trying to find en-US, en_US, en-us for every format call\n            locales[name] = null; // null means not found\n        }\n    }\n    return locales[name];\n}\n\n// This function will load locale and then set the global locale.  If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n    var data;\n    if (key) {\n        if (isUndefined(values)) {\n            data = getLocale(key);\n        } else {\n            data = defineLocale(key, values);\n        }\n\n        if (data) {\n            // moment.duration._locale = moment._locale = data;\n            globalLocale = data;\n        } else {\n            if (typeof console !== 'undefined' && console.warn) {\n                //warn user if arguments are passed but the locale could not be set\n                console.warn(\n                    'Locale ' + key + ' not found. Did you forget to load it?'\n                );\n            }\n        }\n    }\n\n    return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n    if (config !== null) {\n        var locale,\n            parentConfig = baseConfig;\n        config.abbr = name;\n        if (locales[name] != null) {\n            deprecateSimple(\n                'defineLocaleOverride',\n                'use moment.updateLocale(localeName, config) to change ' +\n                    'an existing locale. moment.defineLocale(localeName, ' +\n                    'config) should only be used for creating a new locale ' +\n                    'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n            );\n            parentConfig = locales[name]._config;\n        } else if (config.parentLocale != null) {\n            if (locales[config.parentLocale] != null) {\n                parentConfig = locales[config.parentLocale]._config;\n            } else {\n                locale = loadLocale(config.parentLocale);\n                if (locale != null) {\n                    parentConfig = locale._config;\n                } else {\n                    if (!localeFamilies[config.parentLocale]) {\n                        localeFamilies[config.parentLocale] = [];\n                    }\n                    localeFamilies[config.parentLocale].push({\n                        name: name,\n                        config: config,\n                    });\n                    return null;\n                }\n            }\n        }\n        locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n        if (localeFamilies[name]) {\n            localeFamilies[name].forEach(function (x) {\n                defineLocale(x.name, x.config);\n            });\n        }\n\n        // backwards compat for now: also set the locale\n        // make sure we set the locale AFTER all child locales have been\n        // created, so we won't end up with the child locale set.\n        getSetGlobalLocale(name);\n\n        return locales[name];\n    } else {\n        // useful for testing\n        delete locales[name];\n        return null;\n    }\n}\n\nfunction updateLocale(name, config) {\n    if (config != null) {\n        var locale,\n            tmpLocale,\n            parentConfig = baseConfig;\n\n        if (locales[name] != null && locales[name].parentLocale != null) {\n            // Update existing child locale in-place to avoid memory-leaks\n            locales[name].set(mergeConfigs(locales[name]._config, config));\n        } else {\n            // MERGE\n            tmpLocale = loadLocale(name);\n            if (tmpLocale != null) {\n                parentConfig = tmpLocale._config;\n            }\n            config = mergeConfigs(parentConfig, config);\n            if (tmpLocale == null) {\n                // updateLocale is called for creating a new locale\n                // Set abbr so it will have a name (getters return\n                // undefined otherwise).\n                config.abbr = name;\n            }\n            locale = new Locale(config);\n            locale.parentLocale = locales[name];\n            locales[name] = locale;\n        }\n\n        // backwards compat for now: also set the locale\n        getSetGlobalLocale(name);\n    } else {\n        // pass null for config to unupdate, useful for tests\n        if (locales[name] != null) {\n            if (locales[name].parentLocale != null) {\n                locales[name] = locales[name].parentLocale;\n                if (name === getSetGlobalLocale()) {\n                    getSetGlobalLocale(name);\n                }\n            } else if (locales[name] != null) {\n                delete locales[name];\n            }\n        }\n    }\n    return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n    var locale;\n\n    if (key && key._locale && key._locale._abbr) {\n        key = key._locale._abbr;\n    }\n\n    if (!key) {\n        return globalLocale;\n    }\n\n    if (!isArray(key)) {\n        //short-circuit everything else\n        locale = loadLocale(key);\n        if (locale) {\n            return locale;\n        }\n        key = [key];\n    }\n\n    return chooseLocale(key);\n}\n\nfunction listLocales() {\n    return keys(locales);\n}\n\nfunction checkOverflow(m) {\n    var overflow,\n        a = m._a;\n\n    if (a && getParsingFlags(m).overflow === -2) {\n        overflow =\n            a[MONTH] < 0 || a[MONTH] > 11\n                ? MONTH\n                : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n                ? DATE\n                : a[HOUR] < 0 ||\n                  a[HOUR] > 24 ||\n                  (a[HOUR] === 24 &&\n                      (a[MINUTE] !== 0 ||\n                          a[SECOND] !== 0 ||\n                          a[MILLISECOND] !== 0))\n                ? HOUR\n                : a[MINUTE] < 0 || a[MINUTE] > 59\n                ? MINUTE\n                : a[SECOND] < 0 || a[SECOND] > 59\n                ? SECOND\n                : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n                ? MILLISECOND\n                : -1;\n\n        if (\n            getParsingFlags(m)._overflowDayOfYear &&\n            (overflow < YEAR || overflow > DATE)\n        ) {\n            overflow = DATE;\n        }\n        if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n            overflow = WEEK;\n        }\n        if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n            overflow = WEEKDAY;\n        }\n\n        getParsingFlags(m).overflow = overflow;\n    }\n\n    return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n    basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n    tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n    isoDates = [\n        ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n        ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n        ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n        ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n        ['YYYY-DDD', /\\d{4}-\\d{3}/],\n        ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n        ['YYYYYYMMDD', /[+-]\\d{10}/],\n        ['YYYYMMDD', /\\d{8}/],\n        ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n        ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n        ['YYYYDDD', /\\d{7}/],\n        ['YYYYMM', /\\d{6}/, false],\n        ['YYYY', /\\d{4}/, false],\n    ],\n    // iso time formats and regexes\n    isoTimes = [\n        ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n        ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n        ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n        ['HH:mm', /\\d\\d:\\d\\d/],\n        ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n        ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n        ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n        ['HHmm', /\\d\\d\\d\\d/],\n        ['HH', /\\d\\d/],\n    ],\n    aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n    // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n    rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n    obsOffsets = {\n        UT: 0,\n        GMT: 0,\n        EDT: -4 * 60,\n        EST: -5 * 60,\n        CDT: -5 * 60,\n        CST: -6 * 60,\n        MDT: -6 * 60,\n        MST: -7 * 60,\n        PDT: -7 * 60,\n        PST: -8 * 60,\n    };\n\n// date from iso format\nfunction configFromISO(config) {\n    var i,\n        l,\n        string = config._i,\n        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n        allowTime,\n        dateFormat,\n        timeFormat,\n        tzFormat;\n\n    if (match) {\n        getParsingFlags(config).iso = true;\n\n        for (i = 0, l = isoDates.length; i < l; i++) {\n            if (isoDates[i][1].exec(match[1])) {\n                dateFormat = isoDates[i][0];\n                allowTime = isoDates[i][2] !== false;\n                break;\n            }\n        }\n        if (dateFormat == null) {\n            config._isValid = false;\n            return;\n        }\n        if (match[3]) {\n            for (i = 0, l = isoTimes.length; i < l; i++) {\n                if (isoTimes[i][1].exec(match[3])) {\n                    // match[2] should be 'T' or space\n                    timeFormat = (match[2] || ' ') + isoTimes[i][0];\n                    break;\n                }\n            }\n            if (timeFormat == null) {\n                config._isValid = false;\n                return;\n            }\n        }\n        if (!allowTime && timeFormat != null) {\n            config._isValid = false;\n            return;\n        }\n        if (match[4]) {\n            if (tzRegex.exec(match[4])) {\n                tzFormat = 'Z';\n            } else {\n                config._isValid = false;\n                return;\n            }\n        }\n        config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n        configFromStringAndFormat(config);\n    } else {\n        config._isValid = false;\n    }\n}\n\nfunction extractFromRFC2822Strings(\n    yearStr,\n    monthStr,\n    dayStr,\n    hourStr,\n    minuteStr,\n    secondStr\n) {\n    var result = [\n        untruncateYear(yearStr),\n        defaultLocaleMonthsShort.indexOf(monthStr),\n        parseInt(dayStr, 10),\n        parseInt(hourStr, 10),\n        parseInt(minuteStr, 10),\n    ];\n\n    if (secondStr) {\n        result.push(parseInt(secondStr, 10));\n    }\n\n    return result;\n}\n\nfunction untruncateYear(yearStr) {\n    var year = parseInt(yearStr, 10);\n    if (year <= 49) {\n        return 2000 + year;\n    } else if (year <= 999) {\n        return 1900 + year;\n    }\n    return year;\n}\n\nfunction preprocessRFC2822(s) {\n    // Remove comments and folding whitespace and replace multiple-spaces with a single space\n    return s\n        .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n        .replace(/(\\s\\s+)/g, ' ')\n        .replace(/^\\s\\s*/, '')\n        .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n    if (weekdayStr) {\n        // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n        var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n            weekdayActual = new Date(\n                parsedInput[0],\n                parsedInput[1],\n                parsedInput[2]\n            ).getDay();\n        if (weekdayProvided !== weekdayActual) {\n            getParsingFlags(config).weekdayMismatch = true;\n            config._isValid = false;\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n    if (obsOffset) {\n        return obsOffsets[obsOffset];\n    } else if (militaryOffset) {\n        // the only allowed military tz is Z\n        return 0;\n    } else {\n        var hm = parseInt(numOffset, 10),\n            m = hm % 100,\n            h = (hm - m) / 100;\n        return h * 60 + m;\n    }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n    var match = rfc2822.exec(preprocessRFC2822(config._i)),\n        parsedArray;\n    if (match) {\n        parsedArray = extractFromRFC2822Strings(\n            match[4],\n            match[3],\n            match[2],\n            match[5],\n            match[6],\n            match[7]\n        );\n        if (!checkWeekday(match[1], parsedArray, config)) {\n            return;\n        }\n\n        config._a = parsedArray;\n        config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n        config._d = createUTCDate.apply(null, config._a);\n        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n        getParsingFlags(config).rfc2822 = true;\n    } else {\n        config._isValid = false;\n    }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n    var matched = aspNetJsonRegex.exec(config._i);\n    if (matched !== null) {\n        config._d = new Date(+matched[1]);\n        return;\n    }\n\n    configFromISO(config);\n    if (config._isValid === false) {\n        delete config._isValid;\n    } else {\n        return;\n    }\n\n    configFromRFC2822(config);\n    if (config._isValid === false) {\n        delete config._isValid;\n    } else {\n        return;\n    }\n\n    if (config._strict) {\n        config._isValid = false;\n    } else {\n        // Final attempt, use Input Fallback\n        hooks.createFromInputFallback(config);\n    }\n}\n\nhooks.createFromInputFallback = deprecate(\n    'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n        'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n        'discouraged and will be removed in an upcoming major release. Please refer to ' +\n        'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n    function (config) {\n        config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n    }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n    if (a != null) {\n        return a;\n    }\n    if (b != null) {\n        return b;\n    }\n    return c;\n}\n\nfunction currentDateArray(config) {\n    // hooks is actually the exported moment object\n    var nowValue = new Date(hooks.now());\n    if (config._useUTC) {\n        return [\n            nowValue.getUTCFullYear(),\n            nowValue.getUTCMonth(),\n            nowValue.getUTCDate(),\n        ];\n    }\n    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n    var i,\n        date,\n        input = [],\n        currentDate,\n        expectedWeekday,\n        yearToUse;\n\n    if (config._d) {\n        return;\n    }\n\n    currentDate = currentDateArray(config);\n\n    //compute day of the year from weeks and weekdays\n    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n        dayOfYearFromWeekInfo(config);\n    }\n\n    //if the day of the year is set, figure out what it is\n    if (config._dayOfYear != null) {\n        yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n        if (\n            config._dayOfYear > daysInYear(yearToUse) ||\n            config._dayOfYear === 0\n        ) {\n            getParsingFlags(config)._overflowDayOfYear = true;\n        }\n\n        date = createUTCDate(yearToUse, 0, config._dayOfYear);\n        config._a[MONTH] = date.getUTCMonth();\n        config._a[DATE] = date.getUTCDate();\n    }\n\n    // Default to current date.\n    // * if no year, month, day of month are given, default to today\n    // * if day of month is given, default month and year\n    // * if month is given, default only year\n    // * if year is given, don't default anything\n    for (i = 0; i < 3 && config._a[i] == null; ++i) {\n        config._a[i] = input[i] = currentDate[i];\n    }\n\n    // Zero out whatever was not defaulted, including time\n    for (; i < 7; i++) {\n        config._a[i] = input[i] =\n            config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n    }\n\n    // Check for 24:00:00.000\n    if (\n        config._a[HOUR] === 24 &&\n        config._a[MINUTE] === 0 &&\n        config._a[SECOND] === 0 &&\n        config._a[MILLISECOND] === 0\n    ) {\n        config._nextDay = true;\n        config._a[HOUR] = 0;\n    }\n\n    config._d = (config._useUTC ? createUTCDate : createDate).apply(\n        null,\n        input\n    );\n    expectedWeekday = config._useUTC\n        ? config._d.getUTCDay()\n        : config._d.getDay();\n\n    // Apply timezone offset from input. The actual utcOffset can be changed\n    // with parseZone.\n    if (config._tzm != null) {\n        config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n    }\n\n    if (config._nextDay) {\n        config._a[HOUR] = 24;\n    }\n\n    // check for mismatching day of week\n    if (\n        config._w &&\n        typeof config._w.d !== 'undefined' &&\n        config._w.d !== expectedWeekday\n    ) {\n        getParsingFlags(config).weekdayMismatch = true;\n    }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n    w = config._w;\n    if (w.GG != null || w.W != null || w.E != null) {\n        dow = 1;\n        doy = 4;\n\n        // TODO: We need to take the current isoWeekYear, but that depends on\n        // how we interpret now (local, utc, fixed offset). So create\n        // a now version of current config (take local/utc/offset flags, and\n        // create now).\n        weekYear = defaults(\n            w.GG,\n            config._a[YEAR],\n            weekOfYear(createLocal(), 1, 4).year\n        );\n        week = defaults(w.W, 1);\n        weekday = defaults(w.E, 1);\n        if (weekday < 1 || weekday > 7) {\n            weekdayOverflow = true;\n        }\n    } else {\n        dow = config._locale._week.dow;\n        doy = config._locale._week.doy;\n\n        curWeek = weekOfYear(createLocal(), dow, doy);\n\n        weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n        // Default to current week.\n        week = defaults(w.w, curWeek.week);\n\n        if (w.d != null) {\n            // weekday -- low day numbers are considered next week\n            weekday = w.d;\n            if (weekday < 0 || weekday > 6) {\n                weekdayOverflow = true;\n            }\n        } else if (w.e != null) {\n            // local weekday -- counting starts from beginning of week\n            weekday = w.e + dow;\n            if (w.e < 0 || w.e > 6) {\n                weekdayOverflow = true;\n            }\n        } else {\n            // default to beginning of week\n            weekday = dow;\n        }\n    }\n    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n        getParsingFlags(config)._overflowWeeks = true;\n    } else if (weekdayOverflow != null) {\n        getParsingFlags(config)._overflowWeekday = true;\n    } else {\n        temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n        config._a[YEAR] = temp.year;\n        config._dayOfYear = temp.dayOfYear;\n    }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n    // TODO: Move this to another part of the creation flow to prevent circular deps\n    if (config._f === hooks.ISO_8601) {\n        configFromISO(config);\n        return;\n    }\n    if (config._f === hooks.RFC_2822) {\n        configFromRFC2822(config);\n        return;\n    }\n    config._a = [];\n    getParsingFlags(config).empty = true;\n\n    // This array is used to make a Date, either with `new Date` or `Date.UTC`\n    var string = '' + config._i,\n        i,\n        parsedInput,\n        tokens,\n        token,\n        skipped,\n        stringLength = string.length,\n        totalParsedInputLength = 0,\n        era;\n\n    tokens =\n        expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n    for (i = 0; i < tokens.length; i++) {\n        token = tokens[i];\n        parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n            [])[0];\n        if (parsedInput) {\n            skipped = string.substr(0, string.indexOf(parsedInput));\n            if (skipped.length > 0) {\n                getParsingFlags(config).unusedInput.push(skipped);\n            }\n            string = string.slice(\n                string.indexOf(parsedInput) + parsedInput.length\n            );\n            totalParsedInputLength += parsedInput.length;\n        }\n        // don't parse if it's not a known token\n        if (formatTokenFunctions[token]) {\n            if (parsedInput) {\n                getParsingFlags(config).empty = false;\n            } else {\n                getParsingFlags(config).unusedTokens.push(token);\n            }\n            addTimeToArrayFromToken(token, parsedInput, config);\n        } else if (config._strict && !parsedInput) {\n            getParsingFlags(config).unusedTokens.push(token);\n        }\n    }\n\n    // add remaining unparsed input length to the string\n    getParsingFlags(config).charsLeftOver =\n        stringLength - totalParsedInputLength;\n    if (string.length > 0) {\n        getParsingFlags(config).unusedInput.push(string);\n    }\n\n    // clear _12h flag if hour is <= 12\n    if (\n        config._a[HOUR] <= 12 &&\n        getParsingFlags(config).bigHour === true &&\n        config._a[HOUR] > 0\n    ) {\n        getParsingFlags(config).bigHour = undefined;\n    }\n\n    getParsingFlags(config).parsedDateParts = config._a.slice(0);\n    getParsingFlags(config).meridiem = config._meridiem;\n    // handle meridiem\n    config._a[HOUR] = meridiemFixWrap(\n        config._locale,\n        config._a[HOUR],\n        config._meridiem\n    );\n\n    // handle era\n    era = getParsingFlags(config).era;\n    if (era !== null) {\n        config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n    }\n\n    configFromArray(config);\n    checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n    var isPm;\n\n    if (meridiem == null) {\n        // nothing to do\n        return hour;\n    }\n    if (locale.meridiemHour != null) {\n        return locale.meridiemHour(hour, meridiem);\n    } else if (locale.isPM != null) {\n        // Fallback\n        isPm = locale.isPM(meridiem);\n        if (isPm && hour < 12) {\n            hour += 12;\n        }\n        if (!isPm && hour === 12) {\n            hour = 0;\n        }\n        return hour;\n    } else {\n        // this is not supposed to happen\n        return hour;\n    }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n    var tempConfig,\n        bestMoment,\n        scoreToBeat,\n        i,\n        currentScore,\n        validFormatFound,\n        bestFormatIsValid = false;\n\n    if (config._f.length === 0) {\n        getParsingFlags(config).invalidFormat = true;\n        config._d = new Date(NaN);\n        return;\n    }\n\n    for (i = 0; i < config._f.length; i++) {\n        currentScore = 0;\n        validFormatFound = false;\n        tempConfig = copyConfig({}, config);\n        if (config._useUTC != null) {\n            tempConfig._useUTC = config._useUTC;\n        }\n        tempConfig._f = config._f[i];\n        configFromStringAndFormat(tempConfig);\n\n        if (isValid(tempConfig)) {\n            validFormatFound = true;\n        }\n\n        // if there is any input that was not parsed add a penalty for that format\n        currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n        //or tokens\n        currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n        getParsingFlags(tempConfig).score = currentScore;\n\n        if (!bestFormatIsValid) {\n            if (\n                scoreToBeat == null ||\n                currentScore < scoreToBeat ||\n                validFormatFound\n            ) {\n                scoreToBeat = currentScore;\n                bestMoment = tempConfig;\n                if (validFormatFound) {\n                    bestFormatIsValid = true;\n                }\n            }\n        } else {\n            if (currentScore < scoreToBeat) {\n                scoreToBeat = currentScore;\n                bestMoment = tempConfig;\n            }\n        }\n    }\n\n    extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n    if (config._d) {\n        return;\n    }\n\n    var i = normalizeObjectUnits(config._i),\n        dayOrDate = i.day === undefined ? i.date : i.day;\n    config._a = map(\n        [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n        function (obj) {\n            return obj && parseInt(obj, 10);\n        }\n    );\n\n    configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n    var res = new Moment(checkOverflow(prepareConfig(config)));\n    if (res._nextDay) {\n        // Adding is smart enough around DST\n        res.add(1, 'd');\n        res._nextDay = undefined;\n    }\n\n    return res;\n}\n\nfunction prepareConfig(config) {\n    var input = config._i,\n        format = config._f;\n\n    config._locale = config._locale || getLocale(config._l);\n\n    if (input === null || (format === undefined && input === '')) {\n        return createInvalid({ nullInput: true });\n    }\n\n    if (typeof input === 'string') {\n        config._i = input = config._locale.preparse(input);\n    }\n\n    if (isMoment(input)) {\n        return new Moment(checkOverflow(input));\n    } else if (isDate(input)) {\n        config._d = input;\n    } else if (isArray(format)) {\n        configFromStringAndArray(config);\n    } else if (format) {\n        configFromStringAndFormat(config);\n    } else {\n        configFromInput(config);\n    }\n\n    if (!isValid(config)) {\n        config._d = null;\n    }\n\n    return config;\n}\n\nfunction configFromInput(config) {\n    var input = config._i;\n    if (isUndefined(input)) {\n        config._d = new Date(hooks.now());\n    } else if (isDate(input)) {\n        config._d = new Date(input.valueOf());\n    } else if (typeof input === 'string') {\n        configFromString(config);\n    } else if (isArray(input)) {\n        config._a = map(input.slice(0), function (obj) {\n            return parseInt(obj, 10);\n        });\n        configFromArray(config);\n    } else if (isObject(input)) {\n        configFromObject(config);\n    } else if (isNumber(input)) {\n        // from milliseconds\n        config._d = new Date(input);\n    } else {\n        hooks.createFromInputFallback(config);\n    }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n    var c = {};\n\n    if (format === true || format === false) {\n        strict = format;\n        format = undefined;\n    }\n\n    if (locale === true || locale === false) {\n        strict = locale;\n        locale = undefined;\n    }\n\n    if (\n        (isObject(input) && isObjectEmpty(input)) ||\n        (isArray(input) && input.length === 0)\n    ) {\n        input = undefined;\n    }\n    // object construction must be done this way.\n    // https://github.com/moment/moment/issues/1423\n    c._isAMomentObject = true;\n    c._useUTC = c._isUTC = isUTC;\n    c._l = locale;\n    c._i = input;\n    c._f = format;\n    c._strict = strict;\n\n    return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n        'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n        function () {\n            var other = createLocal.apply(null, arguments);\n            if (this.isValid() && other.isValid()) {\n                return other < this ? this : other;\n            } else {\n                return createInvalid();\n            }\n        }\n    ),\n    prototypeMax = deprecate(\n        'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n        function () {\n            var other = createLocal.apply(null, arguments);\n            if (this.isValid() && other.isValid()) {\n                return other > this ? this : other;\n            } else {\n                return createInvalid();\n            }\n        }\n    );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n    var res, i;\n    if (moments.length === 1 && isArray(moments[0])) {\n        moments = moments[0];\n    }\n    if (!moments.length) {\n        return createLocal();\n    }\n    res = moments[0];\n    for (i = 1; i < moments.length; ++i) {\n        if (!moments[i].isValid() || moments[i][fn](res)) {\n            res = moments[i];\n        }\n    }\n    return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n    var args = [].slice.call(arguments, 0);\n\n    return pickBy('isBefore', args);\n}\n\nfunction max() {\n    var args = [].slice.call(arguments, 0);\n\n    return pickBy('isAfter', args);\n}\n\nvar now = function () {\n    return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n    'year',\n    'quarter',\n    'month',\n    'week',\n    'day',\n    'hour',\n    'minute',\n    'second',\n    'millisecond',\n];\n\nfunction isDurationValid(m) {\n    var key,\n        unitHasDecimal = false,\n        i;\n    for (key in m) {\n        if (\n            hasOwnProp(m, key) &&\n            !(\n                indexOf.call(ordering, key) !== -1 &&\n                (m[key] == null || !isNaN(m[key]))\n            )\n        ) {\n            return false;\n        }\n    }\n\n    for (i = 0; i < ordering.length; ++i) {\n        if (m[ordering[i]]) {\n            if (unitHasDecimal) {\n                return false; // only allow non-integers for smallest unit\n            }\n            if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n                unitHasDecimal = true;\n            }\n        }\n    }\n\n    return true;\n}\n\nfunction isValid$1() {\n    return this._isValid;\n}\n\nfunction createInvalid$1() {\n    return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n    var normalizedInput = normalizeObjectUnits(duration),\n        years = normalizedInput.year || 0,\n        quarters = normalizedInput.quarter || 0,\n        months = normalizedInput.month || 0,\n        weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n        days = normalizedInput.day || 0,\n        hours = normalizedInput.hour || 0,\n        minutes = normalizedInput.minute || 0,\n        seconds = normalizedInput.second || 0,\n        milliseconds = normalizedInput.millisecond || 0;\n\n    this._isValid = isDurationValid(normalizedInput);\n\n    // representation for dateAddRemove\n    this._milliseconds =\n        +milliseconds +\n        seconds * 1e3 + // 1000\n        minutes * 6e4 + // 1000 * 60\n        hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n    // Because of dateAddRemove treats 24 hours as different from a\n    // day when working around DST, we need to store them separately\n    this._days = +days + weeks * 7;\n    // It is impossible to translate months into days without knowing\n    // which months you are are talking about, so we have to store\n    // it separately.\n    this._months = +months + quarters * 3 + years * 12;\n\n    this._data = {};\n\n    this._locale = getLocale();\n\n    this._bubble();\n}\n\nfunction isDuration(obj) {\n    return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n    if (number < 0) {\n        return Math.round(-1 * number) * -1;\n    } else {\n        return Math.round(number);\n    }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n    var len = Math.min(array1.length, array2.length),\n        lengthDiff = Math.abs(array1.length - array2.length),\n        diffs = 0,\n        i;\n    for (i = 0; i < len; i++) {\n        if (\n            (dontConvert && array1[i] !== array2[i]) ||\n            (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n        ) {\n            diffs++;\n        }\n    }\n    return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n    addFormatToken(token, 0, 0, function () {\n        var offset = this.utcOffset(),\n            sign = '+';\n        if (offset < 0) {\n            offset = -offset;\n            sign = '-';\n        }\n        return (\n            sign +\n            zeroFill(~~(offset / 60), 2) +\n            separator +\n            zeroFill(~~offset % 60, 2)\n        );\n    });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n    config._useUTC = true;\n    config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10',  '00']\n// '-1530'  > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n    var matches = (string || '').match(matcher),\n        chunk,\n        parts,\n        minutes;\n\n    if (matches === null) {\n        return null;\n    }\n\n    chunk = matches[matches.length - 1] || [];\n    parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n    minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n    return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n    var res, diff;\n    if (model._isUTC) {\n        res = model.clone();\n        diff =\n            (isMoment(input) || isDate(input)\n                ? input.valueOf()\n                : createLocal(input).valueOf()) - res.valueOf();\n        // Use low-level api, because this fn is low-level api.\n        res._d.setTime(res._d.valueOf() + diff);\n        hooks.updateOffset(res, false);\n        return res;\n    } else {\n        return createLocal(input).local();\n    }\n}\n\nfunction getDateOffset(m) {\n    // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n    // https://github.com/moment/moment/pull/1871\n    return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n    var offset = this._offset || 0,\n        localAdjust;\n    if (!this.isValid()) {\n        return input != null ? this : NaN;\n    }\n    if (input != null) {\n        if (typeof input === 'string') {\n            input = offsetFromString(matchShortOffset, input);\n            if (input === null) {\n                return this;\n            }\n        } else if (Math.abs(input) < 16 && !keepMinutes) {\n            input = input * 60;\n        }\n        if (!this._isUTC && keepLocalTime) {\n            localAdjust = getDateOffset(this);\n        }\n        this._offset = input;\n        this._isUTC = true;\n        if (localAdjust != null) {\n            this.add(localAdjust, 'm');\n        }\n        if (offset !== input) {\n            if (!keepLocalTime || this._changeInProgress) {\n                addSubtract(\n                    this,\n                    createDuration(input - offset, 'm'),\n                    1,\n                    false\n                );\n            } else if (!this._changeInProgress) {\n                this._changeInProgress = true;\n                hooks.updateOffset(this, true);\n                this._changeInProgress = null;\n            }\n        }\n        return this;\n    } else {\n        return this._isUTC ? offset : getDateOffset(this);\n    }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n    if (input != null) {\n        if (typeof input !== 'string') {\n            input = -input;\n        }\n\n        this.utcOffset(input, keepLocalTime);\n\n        return this;\n    } else {\n        return -this.utcOffset();\n    }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n    return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n    if (this._isUTC) {\n        this.utcOffset(0, keepLocalTime);\n        this._isUTC = false;\n\n        if (keepLocalTime) {\n            this.subtract(getDateOffset(this), 'm');\n        }\n    }\n    return this;\n}\n\nfunction setOffsetToParsedOffset() {\n    if (this._tzm != null) {\n        this.utcOffset(this._tzm, false, true);\n    } else if (typeof this._i === 'string') {\n        var tZone = offsetFromString(matchOffset, this._i);\n        if (tZone != null) {\n            this.utcOffset(tZone);\n        } else {\n            this.utcOffset(0, true);\n        }\n    }\n    return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n    if (!this.isValid()) {\n        return false;\n    }\n    input = input ? createLocal(input).utcOffset() : 0;\n\n    return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n    return (\n        this.utcOffset() > this.clone().month(0).utcOffset() ||\n        this.utcOffset() > this.clone().month(5).utcOffset()\n    );\n}\n\nfunction isDaylightSavingTimeShifted() {\n    if (!isUndefined(this._isDSTShifted)) {\n        return this._isDSTShifted;\n    }\n\n    var c = {},\n        other;\n\n    copyConfig(c, this);\n    c = prepareConfig(c);\n\n    if (c._a) {\n        other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n        this._isDSTShifted =\n            this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n    } else {\n        this._isDSTShifted = false;\n    }\n\n    return this._isDSTShifted;\n}\n\nfunction isLocal() {\n    return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n    return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n    return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n    // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n    // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n    // and further modified to allow for strings containing both week and day\n    isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n    var duration = input,\n        // matching against regexp is expensive, do it on demand\n        match = null,\n        sign,\n        ret,\n        diffRes;\n\n    if (isDuration(input)) {\n        duration = {\n            ms: input._milliseconds,\n            d: input._days,\n            M: input._months,\n        };\n    } else if (isNumber(input) || !isNaN(+input)) {\n        duration = {};\n        if (key) {\n            duration[key] = +input;\n        } else {\n            duration.milliseconds = +input;\n        }\n    } else if ((match = aspNetRegex.exec(input))) {\n        sign = match[1] === '-' ? -1 : 1;\n        duration = {\n            y: 0,\n            d: toInt(match[DATE]) * sign,\n            h: toInt(match[HOUR]) * sign,\n            m: toInt(match[MINUTE]) * sign,\n            s: toInt(match[SECOND]) * sign,\n            ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n        };\n    } else if ((match = isoRegex.exec(input))) {\n        sign = match[1] === '-' ? -1 : 1;\n        duration = {\n            y: parseIso(match[2], sign),\n            M: parseIso(match[3], sign),\n            w: parseIso(match[4], sign),\n            d: parseIso(match[5], sign),\n            h: parseIso(match[6], sign),\n            m: parseIso(match[7], sign),\n            s: parseIso(match[8], sign),\n        };\n    } else if (duration == null) {\n        // checks for null or undefined\n        duration = {};\n    } else if (\n        typeof duration === 'object' &&\n        ('from' in duration || 'to' in duration)\n    ) {\n        diffRes = momentsDifference(\n            createLocal(duration.from),\n            createLocal(duration.to)\n        );\n\n        duration = {};\n        duration.ms = diffRes.milliseconds;\n        duration.M = diffRes.months;\n    }\n\n    ret = new Duration(duration);\n\n    if (isDuration(input) && hasOwnProp(input, '_locale')) {\n        ret._locale = input._locale;\n    }\n\n    if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n        ret._isValid = input._isValid;\n    }\n\n    return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n    // We'd normally use ~~inp for this, but unfortunately it also\n    // converts floats to ints.\n    // inp may be undefined, so careful calling replace on it.\n    var res = inp && parseFloat(inp.replace(',', '.'));\n    // apply sign while we're at it\n    return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n    var res = {};\n\n    res.months =\n        other.month() - base.month() + (other.year() - base.year()) * 12;\n    if (base.clone().add(res.months, 'M').isAfter(other)) {\n        --res.months;\n    }\n\n    res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n    return res;\n}\n\nfunction momentsDifference(base, other) {\n    var res;\n    if (!(base.isValid() && other.isValid())) {\n        return { milliseconds: 0, months: 0 };\n    }\n\n    other = cloneWithOffset(other, base);\n    if (base.isBefore(other)) {\n        res = positiveMomentsDifference(base, other);\n    } else {\n        res = positiveMomentsDifference(other, base);\n        res.milliseconds = -res.milliseconds;\n        res.months = -res.months;\n    }\n\n    return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n    return function (val, period) {\n        var dur, tmp;\n        //invert the arguments, but complain about it\n        if (period !== null && !isNaN(+period)) {\n            deprecateSimple(\n                name,\n                'moment().' +\n                    name +\n                    '(period, number) is deprecated. Please use moment().' +\n                    name +\n                    '(number, period). ' +\n                    'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n            );\n            tmp = val;\n            val = period;\n            period = tmp;\n        }\n\n        dur = createDuration(val, period);\n        addSubtract(this, dur, direction);\n        return this;\n    };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n    var milliseconds = duration._milliseconds,\n        days = absRound(duration._days),\n        months = absRound(duration._months);\n\n    if (!mom.isValid()) {\n        // No op\n        return;\n    }\n\n    updateOffset = updateOffset == null ? true : updateOffset;\n\n    if (months) {\n        setMonth(mom, get(mom, 'Month') + months * isAdding);\n    }\n    if (days) {\n        set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n    }\n    if (milliseconds) {\n        mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n    }\n    if (updateOffset) {\n        hooks.updateOffset(mom, days || months);\n    }\n}\n\nvar add = createAdder(1, 'add'),\n    subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n    return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n    return (\n        isMoment(input) ||\n        isDate(input) ||\n        isString(input) ||\n        isNumber(input) ||\n        isNumberOrStringArray(input) ||\n        isMomentInputObject(input) ||\n        input === null ||\n        input === undefined\n    );\n}\n\nfunction isMomentInputObject(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n        propertyTest = false,\n        properties = [\n            'years',\n            'year',\n            'y',\n            'months',\n            'month',\n            'M',\n            'days',\n            'day',\n            'd',\n            'dates',\n            'date',\n            'D',\n            'hours',\n            'hour',\n            'h',\n            'minutes',\n            'minute',\n            'm',\n            'seconds',\n            'second',\n            's',\n            'milliseconds',\n            'millisecond',\n            'ms',\n        ],\n        i,\n        property;\n\n    for (i = 0; i < properties.length; i += 1) {\n        property = properties[i];\n        propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n\n    return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n    var arrayTest = isArray(input),\n        dataTypeTest = false;\n    if (arrayTest) {\n        dataTypeTest =\n            input.filter(function (item) {\n                return !isNumber(item) && isString(input);\n            }).length === 0;\n    }\n    return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n        propertyTest = false,\n        properties = [\n            'sameDay',\n            'nextDay',\n            'lastDay',\n            'nextWeek',\n            'lastWeek',\n            'sameElse',\n        ],\n        i,\n        property;\n\n    for (i = 0; i < properties.length; i += 1) {\n        property = properties[i];\n        propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n\n    return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n    var diff = myMoment.diff(now, 'days', true);\n    return diff < -6\n        ? 'sameElse'\n        : diff < -1\n        ? 'lastWeek'\n        : diff < 0\n        ? 'lastDay'\n        : diff < 1\n        ? 'sameDay'\n        : diff < 2\n        ? 'nextDay'\n        : diff < 7\n        ? 'nextWeek'\n        : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n    // Support for single parameter, formats only overload to the calendar function\n    if (arguments.length === 1) {\n        if (isMomentInput(arguments[0])) {\n            time = arguments[0];\n            formats = undefined;\n        } else if (isCalendarSpec(arguments[0])) {\n            formats = arguments[0];\n            time = undefined;\n        }\n    }\n    // We want to compare the start of today, vs this.\n    // Getting start-of-today depends on whether we're local/utc/offset or not.\n    var now = time || createLocal(),\n        sod = cloneWithOffset(now, this).startOf('day'),\n        format = hooks.calendarFormat(this, sod) || 'sameElse',\n        output =\n            formats &&\n            (isFunction(formats[format])\n                ? formats[format].call(this, now)\n                : formats[format]);\n\n    return this.format(\n        output || this.localeData().calendar(format, this, createLocal(now))\n    );\n}\n\nfunction clone() {\n    return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n    if (!(this.isValid() && localInput.isValid())) {\n        return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n        return this.valueOf() > localInput.valueOf();\n    } else {\n        return localInput.valueOf() < this.clone().startOf(units).valueOf();\n    }\n}\n\nfunction isBefore(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n    if (!(this.isValid() && localInput.isValid())) {\n        return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n        return this.valueOf() < localInput.valueOf();\n    } else {\n        return this.clone().endOf(units).valueOf() < localInput.valueOf();\n    }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n    var localFrom = isMoment(from) ? from : createLocal(from),\n        localTo = isMoment(to) ? to : createLocal(to);\n    if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n        return false;\n    }\n    inclusivity = inclusivity || '()';\n    return (\n        (inclusivity[0] === '('\n            ? this.isAfter(localFrom, units)\n            : !this.isBefore(localFrom, units)) &&\n        (inclusivity[1] === ')'\n            ? this.isBefore(localTo, units)\n            : !this.isAfter(localTo, units))\n    );\n}\n\nfunction isSame(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input),\n        inputMs;\n    if (!(this.isValid() && localInput.isValid())) {\n        return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n        return this.valueOf() === localInput.valueOf();\n    } else {\n        inputMs = localInput.valueOf();\n        return (\n            this.clone().startOf(units).valueOf() <= inputMs &&\n            inputMs <= this.clone().endOf(units).valueOf()\n        );\n    }\n}\n\nfunction isSameOrAfter(input, units) {\n    return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n    return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n    var that, zoneDelta, output;\n\n    if (!this.isValid()) {\n        return NaN;\n    }\n\n    that = cloneWithOffset(input, this);\n\n    if (!that.isValid()) {\n        return NaN;\n    }\n\n    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n    units = normalizeUnits(units);\n\n    switch (units) {\n        case 'year':\n            output = monthDiff(this, that) / 12;\n            break;\n        case 'month':\n            output = monthDiff(this, that);\n            break;\n        case 'quarter':\n            output = monthDiff(this, that) / 3;\n            break;\n        case 'second':\n            output = (this - that) / 1e3;\n            break; // 1000\n        case 'minute':\n            output = (this - that) / 6e4;\n            break; // 1000 * 60\n        case 'hour':\n            output = (this - that) / 36e5;\n            break; // 1000 * 60 * 60\n        case 'day':\n            output = (this - that - zoneDelta) / 864e5;\n            break; // 1000 * 60 * 60 * 24, negate dst\n        case 'week':\n            output = (this - that - zoneDelta) / 6048e5;\n            break; // 1000 * 60 * 60 * 24 * 7, negate dst\n        default:\n            output = this - that;\n    }\n\n    return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n    if (a.date() < b.date()) {\n        // end-of-month calculations work correct when the start month has more\n        // days than the end month.\n        return -monthDiff(b, a);\n    }\n    // difference in months\n    var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n        // b is in (anchor - 1 month, anchor + 1 month)\n        anchor = a.clone().add(wholeMonthDiff, 'months'),\n        anchor2,\n        adjust;\n\n    if (b - anchor < 0) {\n        anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n        // linear across the month\n        adjust = (b - anchor) / (anchor - anchor2);\n    } else {\n        anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n        // linear across the month\n        adjust = (b - anchor) / (anchor2 - anchor);\n    }\n\n    //check for negative zero, return zero if negative zero\n    return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n    if (!this.isValid()) {\n        return null;\n    }\n    var utc = keepOffset !== true,\n        m = utc ? this.clone().utc() : this;\n    if (m.year() < 0 || m.year() > 9999) {\n        return formatMoment(\n            m,\n            utc\n                ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n                : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n        );\n    }\n    if (isFunction(Date.prototype.toISOString)) {\n        // native implementation is ~50x faster, use it when we can\n        if (utc) {\n            return this.toDate().toISOString();\n        } else {\n            return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n                .toISOString()\n                .replace('Z', formatMoment(m, 'Z'));\n        }\n    }\n    return formatMoment(\n        m,\n        utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n    );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n    if (!this.isValid()) {\n        return 'moment.invalid(/* ' + this._i + ' */)';\n    }\n    var func = 'moment',\n        zone = '',\n        prefix,\n        year,\n        datetime,\n        suffix;\n    if (!this.isLocal()) {\n        func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n        zone = 'Z';\n    }\n    prefix = '[' + func + '(\"]';\n    year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n    datetime = '-MM-DD[T]HH:mm:ss.SSS';\n    suffix = zone + '[\")]';\n\n    return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n    if (!inputString) {\n        inputString = this.isUtc()\n            ? hooks.defaultFormatUtc\n            : hooks.defaultFormat;\n    }\n    var output = formatMoment(this, inputString);\n    return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n    if (\n        this.isValid() &&\n        ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n    ) {\n        return createDuration({ to: this, from: time })\n            .locale(this.locale())\n            .humanize(!withoutSuffix);\n    } else {\n        return this.localeData().invalidDate();\n    }\n}\n\nfunction fromNow(withoutSuffix) {\n    return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n    if (\n        this.isValid() &&\n        ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n    ) {\n        return createDuration({ from: this, to: time })\n            .locale(this.locale())\n            .humanize(!withoutSuffix);\n    } else {\n        return this.localeData().invalidDate();\n    }\n}\n\nfunction toNow(withoutSuffix) {\n    return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance.  Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n    var newLocaleData;\n\n    if (key === undefined) {\n        return this._locale._abbr;\n    } else {\n        newLocaleData = getLocale(key);\n        if (newLocaleData != null) {\n            this._locale = newLocaleData;\n        }\n        return this;\n    }\n}\n\nvar lang = deprecate(\n    'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n    function (key) {\n        if (key === undefined) {\n            return this.localeData();\n        } else {\n            return this.locale(key);\n        }\n    }\n);\n\nfunction localeData() {\n    return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n    MS_PER_MINUTE = 60 * MS_PER_SECOND,\n    MS_PER_HOUR = 60 * MS_PER_MINUTE,\n    MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n    return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n    // the date constructor remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n        // preserve leap years using a full 400 year cycle, then reset\n        return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n        return new Date(y, m, d).valueOf();\n    }\n}\n\nfunction utcStartOfDate(y, m, d) {\n    // Date.UTC remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n        // preserve leap years using a full 400 year cycle, then reset\n        return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n        return Date.UTC(y, m, d);\n    }\n}\n\nfunction startOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n        return this;\n    }\n\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n    switch (units) {\n        case 'year':\n            time = startOfDate(this.year(), 0, 1);\n            break;\n        case 'quarter':\n            time = startOfDate(\n                this.year(),\n                this.month() - (this.month() % 3),\n                1\n            );\n            break;\n        case 'month':\n            time = startOfDate(this.year(), this.month(), 1);\n            break;\n        case 'week':\n            time = startOfDate(\n                this.year(),\n                this.month(),\n                this.date() - this.weekday()\n            );\n            break;\n        case 'isoWeek':\n            time = startOfDate(\n                this.year(),\n                this.month(),\n                this.date() - (this.isoWeekday() - 1)\n            );\n            break;\n        case 'day':\n        case 'date':\n            time = startOfDate(this.year(), this.month(), this.date());\n            break;\n        case 'hour':\n            time = this._d.valueOf();\n            time -= mod$1(\n                time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                MS_PER_HOUR\n            );\n            break;\n        case 'minute':\n            time = this._d.valueOf();\n            time -= mod$1(time, MS_PER_MINUTE);\n            break;\n        case 'second':\n            time = this._d.valueOf();\n            time -= mod$1(time, MS_PER_SECOND);\n            break;\n    }\n\n    this._d.setTime(time);\n    hooks.updateOffset(this, true);\n    return this;\n}\n\nfunction endOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n        return this;\n    }\n\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n    switch (units) {\n        case 'year':\n            time = startOfDate(this.year() + 1, 0, 1) - 1;\n            break;\n        case 'quarter':\n            time =\n                startOfDate(\n                    this.year(),\n                    this.month() - (this.month() % 3) + 3,\n                    1\n                ) - 1;\n            break;\n        case 'month':\n            time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n            break;\n        case 'week':\n            time =\n                startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - this.weekday() + 7\n                ) - 1;\n            break;\n        case 'isoWeek':\n            time =\n                startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - (this.isoWeekday() - 1) + 7\n                ) - 1;\n            break;\n        case 'day':\n        case 'date':\n            time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n            break;\n        case 'hour':\n            time = this._d.valueOf();\n            time +=\n                MS_PER_HOUR -\n                mod$1(\n                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                    MS_PER_HOUR\n                ) -\n                1;\n            break;\n        case 'minute':\n            time = this._d.valueOf();\n            time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n            break;\n        case 'second':\n            time = this._d.valueOf();\n            time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n            break;\n    }\n\n    this._d.setTime(time);\n    hooks.updateOffset(this, true);\n    return this;\n}\n\nfunction valueOf() {\n    return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n    return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n    return new Date(this.valueOf());\n}\n\nfunction toArray() {\n    var m = this;\n    return [\n        m.year(),\n        m.month(),\n        m.date(),\n        m.hour(),\n        m.minute(),\n        m.second(),\n        m.millisecond(),\n    ];\n}\n\nfunction toObject() {\n    var m = this;\n    return {\n        years: m.year(),\n        months: m.month(),\n        date: m.date(),\n        hours: m.hours(),\n        minutes: m.minutes(),\n        seconds: m.seconds(),\n        milliseconds: m.milliseconds(),\n    };\n}\n\nfunction toJSON() {\n    // new Date(NaN).toJSON() === null\n    return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n    return isValid(this);\n}\n\nfunction parsingFlags() {\n    return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n    return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n    return {\n        input: this._i,\n        format: this._f,\n        locale: this._locale,\n        isUTC: this._isUTC,\n        strict: this._strict,\n    };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n    input,\n    array,\n    config,\n    token\n) {\n    var era = config._locale.erasParse(input, token, config._strict);\n    if (era) {\n        getParsingFlags(config).era = era;\n    } else {\n        getParsingFlags(config).invalidEra = input;\n    }\n});\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n    var match;\n    if (config._locale._eraYearOrdinalRegex) {\n        match = input.match(config._locale._eraYearOrdinalRegex);\n    }\n\n    if (config._locale.eraYearOrdinalParse) {\n        array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n    } else {\n        array[YEAR] = parseInt(input, 10);\n    }\n});\n\nfunction localeEras(m, format) {\n    var i,\n        l,\n        date,\n        eras = this._eras || getLocale('en')._eras;\n    for (i = 0, l = eras.length; i < l; ++i) {\n        switch (typeof eras[i].since) {\n            case 'string':\n                // truncate time\n                date = hooks(eras[i].since).startOf('day');\n                eras[i].since = date.valueOf();\n                break;\n        }\n\n        switch (typeof eras[i].until) {\n            case 'undefined':\n                eras[i].until = +Infinity;\n                break;\n            case 'string':\n                // truncate time\n                date = hooks(eras[i].until).startOf('day').valueOf();\n                eras[i].until = date.valueOf();\n                break;\n        }\n    }\n    return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n    var i,\n        l,\n        eras = this.eras(),\n        name,\n        abbr,\n        narrow;\n    eraName = eraName.toUpperCase();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n        name = eras[i].name.toUpperCase();\n        abbr = eras[i].abbr.toUpperCase();\n        narrow = eras[i].narrow.toUpperCase();\n\n        if (strict) {\n            switch (format) {\n                case 'N':\n                case 'NN':\n                case 'NNN':\n                    if (abbr === eraName) {\n                        return eras[i];\n                    }\n                    break;\n\n                case 'NNNN':\n                    if (name === eraName) {\n                        return eras[i];\n                    }\n                    break;\n\n                case 'NNNNN':\n                    if (narrow === eraName) {\n                        return eras[i];\n                    }\n                    break;\n            }\n        } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n            return eras[i];\n        }\n    }\n}\n\nfunction localeErasConvertYear(era, year) {\n    var dir = era.since <= era.until ? +1 : -1;\n    if (year === undefined) {\n        return hooks(era.since).year();\n    } else {\n        return hooks(era.since).year() + (year - era.offset) * dir;\n    }\n}\n\nfunction getEraName() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n        // truncate time\n        val = this.startOf('day').valueOf();\n\n        if (eras[i].since <= val && val <= eras[i].until) {\n            return eras[i].name;\n        }\n        if (eras[i].until <= val && val <= eras[i].since) {\n            return eras[i].name;\n        }\n    }\n\n    return '';\n}\n\nfunction getEraNarrow() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n        // truncate time\n        val = this.startOf('day').valueOf();\n\n        if (eras[i].since <= val && val <= eras[i].until) {\n            return eras[i].narrow;\n        }\n        if (eras[i].until <= val && val <= eras[i].since) {\n            return eras[i].narrow;\n        }\n    }\n\n    return '';\n}\n\nfunction getEraAbbr() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n        // truncate time\n        val = this.startOf('day').valueOf();\n\n        if (eras[i].since <= val && val <= eras[i].until) {\n            return eras[i].abbr;\n        }\n        if (eras[i].until <= val && val <= eras[i].since) {\n            return eras[i].abbr;\n        }\n    }\n\n    return '';\n}\n\nfunction getEraYear() {\n    var i,\n        l,\n        dir,\n        val,\n        eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n        dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n        // truncate time\n        val = this.startOf('day').valueOf();\n\n        if (\n            (eras[i].since <= val && val <= eras[i].until) ||\n            (eras[i].until <= val && val <= eras[i].since)\n        ) {\n            return (\n                (this.year() - hooks(eras[i].since).year()) * dir +\n                eras[i].offset\n            );\n        }\n    }\n\n    return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNameRegex')) {\n        computeErasParse.call(this);\n    }\n    return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasAbbrRegex')) {\n        computeErasParse.call(this);\n    }\n    return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNarrowRegex')) {\n        computeErasParse.call(this);\n    }\n    return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n    return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n    return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n    return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n    return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n    var abbrPieces = [],\n        namePieces = [],\n        narrowPieces = [],\n        mixedPieces = [],\n        i,\n        l,\n        eras = this.eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n        namePieces.push(regexEscape(eras[i].name));\n        abbrPieces.push(regexEscape(eras[i].abbr));\n        narrowPieces.push(regexEscape(eras[i].narrow));\n\n        mixedPieces.push(regexEscape(eras[i].name));\n        mixedPieces.push(regexEscape(eras[i].abbr));\n        mixedPieces.push(regexEscape(eras[i].narrow));\n    }\n\n    this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n    this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n    this._erasNarrowRegex = new RegExp(\n        '^(' + narrowPieces.join('|') + ')',\n        'i'\n    );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n    return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n    return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n    addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n    input,\n    week,\n    config,\n    token\n) {\n    week[token.substr(0, 2)] = toInt(input);\n});\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n    week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n    return getSetWeekYearHelper.call(\n        this,\n        input,\n        this.week(),\n        this.weekday(),\n        this.localeData()._week.dow,\n        this.localeData()._week.doy\n    );\n}\n\nfunction getSetISOWeekYear(input) {\n    return getSetWeekYearHelper.call(\n        this,\n        input,\n        this.isoWeek(),\n        this.isoWeekday(),\n        1,\n        4\n    );\n}\n\nfunction getISOWeeksInYear() {\n    return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n    return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n    var weekInfo = this.localeData()._week;\n    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n    var weekInfo = this.localeData()._week;\n    return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n    var weeksTarget;\n    if (input == null) {\n        return weekOfYear(this, dow, doy).year;\n    } else {\n        weeksTarget = weeksInYear(input, dow, doy);\n        if (week > weeksTarget) {\n            week = weeksTarget;\n        }\n        return setWeekAll.call(this, input, week, weekday, dow, doy);\n    }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n        date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n    this.year(date.getUTCFullYear());\n    this.month(date.getUTCMonth());\n    this.date(date.getUTCDate());\n    return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n    array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n    return input == null\n        ? Math.ceil((this.month() + 1) / 3)\n        : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIORITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n    return isStrict\n        ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n        : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n    array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n    config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n    var dayOfYear =\n        Math.round(\n            (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n        ) + 1;\n    return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n    return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n    return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n    return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n    return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n    return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n    return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n    return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n    return this.millisecond() * 1000000;\n});\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n    addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n    array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n    addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n    return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n    return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n    proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n        return 'Moment<' + this.format() + '>';\n    };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n    'dates accessor is deprecated. Use date instead.',\n    getSetDayOfMonth\n);\nproto.months = deprecate(\n    'months accessor is deprecated. Use month instead',\n    getSetMonth\n);\nproto.years = deprecate(\n    'years accessor is deprecated. Use year instead',\n    getSetYear\n);\nproto.zone = deprecate(\n    'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n    getSetZone\n);\nproto.isDSTShifted = deprecate(\n    'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n    isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n    return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n    return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n    return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n    var locale = getLocale(),\n        utc = createUTC().set(setter, index);\n    return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n    if (isNumber(format)) {\n        index = format;\n        format = undefined;\n    }\n\n    format = format || '';\n\n    if (index != null) {\n        return get$1(format, index, field, 'month');\n    }\n\n    var i,\n        out = [];\n    for (i = 0; i < 12; i++) {\n        out[i] = get$1(format, i, field, 'month');\n    }\n    return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n    if (typeof localeSorted === 'boolean') {\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n    } else {\n        format = localeSorted;\n        index = format;\n        localeSorted = false;\n\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n    }\n\n    var locale = getLocale(),\n        shift = localeSorted ? locale._week.dow : 0,\n        i,\n        out = [];\n\n    if (index != null) {\n        return get$1(format, (index + shift) % 7, field, 'day');\n    }\n\n    for (i = 0; i < 7; i++) {\n        out[i] = get$1(format, (i + shift) % 7, field, 'day');\n    }\n    return out;\n}\n\nfunction listMonths(format, index) {\n    return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n    return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n    eras: [\n        {\n            since: '0001-01-01',\n            until: +Infinity,\n            offset: 1,\n            name: 'Anno Domini',\n            narrow: 'AD',\n            abbr: 'AD',\n        },\n        {\n            since: '0000-12-31',\n            until: -Infinity,\n            offset: 1,\n            name: 'Before Christ',\n            narrow: 'BC',\n            abbr: 'BC',\n        },\n    ],\n    dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n    ordinal: function (number) {\n        var b = number % 10,\n            output =\n                toInt((number % 100) / 10) === 1\n                    ? 'th'\n                    : b === 1\n                    ? 'st'\n                    : b === 2\n                    ? 'nd'\n                    : b === 3\n                    ? 'rd'\n                    : 'th';\n        return number + output;\n    },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n    'moment.lang is deprecated. Use moment.locale instead.',\n    getSetGlobalLocale\n);\nhooks.langData = deprecate(\n    'moment.langData is deprecated. Use moment.localeData instead.',\n    getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n    var data = this._data;\n\n    this._milliseconds = mathAbs(this._milliseconds);\n    this._days = mathAbs(this._days);\n    this._months = mathAbs(this._months);\n\n    data.milliseconds = mathAbs(data.milliseconds);\n    data.seconds = mathAbs(data.seconds);\n    data.minutes = mathAbs(data.minutes);\n    data.hours = mathAbs(data.hours);\n    data.months = mathAbs(data.months);\n    data.years = mathAbs(data.years);\n\n    return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n    var other = createDuration(input, value);\n\n    duration._milliseconds += direction * other._milliseconds;\n    duration._days += direction * other._days;\n    duration._months += direction * other._months;\n\n    return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n    return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n    return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n    if (number < 0) {\n        return Math.floor(number);\n    } else {\n        return Math.ceil(number);\n    }\n}\n\nfunction bubble() {\n    var milliseconds = this._milliseconds,\n        days = this._days,\n        months = this._months,\n        data = this._data,\n        seconds,\n        minutes,\n        hours,\n        years,\n        monthsFromDays;\n\n    // if we have a mix of positive and negative values, bubble down first\n    // check: https://github.com/moment/moment/issues/2166\n    if (\n        !(\n            (milliseconds >= 0 && days >= 0 && months >= 0) ||\n            (milliseconds <= 0 && days <= 0 && months <= 0)\n        )\n    ) {\n        milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n        days = 0;\n        months = 0;\n    }\n\n    // The following code bubbles up values, see the tests for\n    // examples of what that means.\n    data.milliseconds = milliseconds % 1000;\n\n    seconds = absFloor(milliseconds / 1000);\n    data.seconds = seconds % 60;\n\n    minutes = absFloor(seconds / 60);\n    data.minutes = minutes % 60;\n\n    hours = absFloor(minutes / 60);\n    data.hours = hours % 24;\n\n    days += absFloor(hours / 24);\n\n    // convert days to months\n    monthsFromDays = absFloor(daysToMonths(days));\n    months += monthsFromDays;\n    days -= absCeil(monthsToDays(monthsFromDays));\n\n    // 12 months -> 1 year\n    years = absFloor(months / 12);\n    months %= 12;\n\n    data.days = days;\n    data.months = months;\n    data.years = years;\n\n    return this;\n}\n\nfunction daysToMonths(days) {\n    // 400 years have 146097 days (taking into account leap year rules)\n    // 400 years have 12 months === 4800\n    return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n    // the reverse of daysToMonths\n    return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n    if (!this.isValid()) {\n        return NaN;\n    }\n    var days,\n        months,\n        milliseconds = this._milliseconds;\n\n    units = normalizeUnits(units);\n\n    if (units === 'month' || units === 'quarter' || units === 'year') {\n        days = this._days + milliseconds / 864e5;\n        months = this._months + daysToMonths(days);\n        switch (units) {\n            case 'month':\n                return months;\n            case 'quarter':\n                return months / 3;\n            case 'year':\n                return months / 12;\n        }\n    } else {\n        // handle milliseconds separately because of floating point math errors (issue #1867)\n        days = this._days + Math.round(monthsToDays(this._months));\n        switch (units) {\n            case 'week':\n                return days / 7 + milliseconds / 6048e5;\n            case 'day':\n                return days + milliseconds / 864e5;\n            case 'hour':\n                return days * 24 + milliseconds / 36e5;\n            case 'minute':\n                return days * 1440 + milliseconds / 6e4;\n            case 'second':\n                return days * 86400 + milliseconds / 1000;\n            // Math.floor prevents floating point math errors here\n            case 'millisecond':\n                return Math.floor(days * 864e5) + milliseconds;\n            default:\n                throw new Error('Unknown unit ' + units);\n        }\n    }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1() {\n    if (!this.isValid()) {\n        return NaN;\n    }\n    return (\n        this._milliseconds +\n        this._days * 864e5 +\n        (this._months % 12) * 2592e6 +\n        toInt(this._months / 12) * 31536e6\n    );\n}\n\nfunction makeAs(alias) {\n    return function () {\n        return this.as(alias);\n    };\n}\n\nvar asMilliseconds = makeAs('ms'),\n    asSeconds = makeAs('s'),\n    asMinutes = makeAs('m'),\n    asHours = makeAs('h'),\n    asDays = makeAs('d'),\n    asWeeks = makeAs('w'),\n    asMonths = makeAs('M'),\n    asQuarters = makeAs('Q'),\n    asYears = makeAs('y');\n\nfunction clone$1() {\n    return createDuration(this);\n}\n\nfunction get$2(units) {\n    units = normalizeUnits(units);\n    return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n    return function () {\n        return this.isValid() ? this._data[name] : NaN;\n    };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n    seconds = makeGetter('seconds'),\n    minutes = makeGetter('minutes'),\n    hours = makeGetter('hours'),\n    days = makeGetter('days'),\n    months = makeGetter('months'),\n    years = makeGetter('years');\n\nfunction weeks() {\n    return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n    thresholds = {\n        ss: 44, // a few seconds to seconds\n        s: 45, // seconds to minute\n        m: 45, // minutes to hour\n        h: 22, // hours to day\n        d: 26, // days to month/week\n        w: null, // weeks to month\n        M: 11, // months to year\n    };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n    var duration = createDuration(posNegDuration).abs(),\n        seconds = round(duration.as('s')),\n        minutes = round(duration.as('m')),\n        hours = round(duration.as('h')),\n        days = round(duration.as('d')),\n        months = round(duration.as('M')),\n        weeks = round(duration.as('w')),\n        years = round(duration.as('y')),\n        a =\n            (seconds <= thresholds.ss && ['s', seconds]) ||\n            (seconds < thresholds.s && ['ss', seconds]) ||\n            (minutes <= 1 && ['m']) ||\n            (minutes < thresholds.m && ['mm', minutes]) ||\n            (hours <= 1 && ['h']) ||\n            (hours < thresholds.h && ['hh', hours]) ||\n            (days <= 1 && ['d']) ||\n            (days < thresholds.d && ['dd', days]);\n\n    if (thresholds.w != null) {\n        a =\n            a ||\n            (weeks <= 1 && ['w']) ||\n            (weeks < thresholds.w && ['ww', weeks]);\n    }\n    a = a ||\n        (months <= 1 && ['M']) ||\n        (months < thresholds.M && ['MM', months]) ||\n        (years <= 1 && ['y']) || ['yy', years];\n\n    a[2] = withoutSuffix;\n    a[3] = +posNegDuration > 0;\n    a[4] = locale;\n    return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n    if (roundingFunction === undefined) {\n        return round;\n    }\n    if (typeof roundingFunction === 'function') {\n        round = roundingFunction;\n        return true;\n    }\n    return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n    if (thresholds[threshold] === undefined) {\n        return false;\n    }\n    if (limit === undefined) {\n        return thresholds[threshold];\n    }\n    thresholds[threshold] = limit;\n    if (threshold === 's') {\n        thresholds.ss = limit - 1;\n    }\n    return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n    if (!this.isValid()) {\n        return this.localeData().invalidDate();\n    }\n\n    var withSuffix = false,\n        th = thresholds,\n        locale,\n        output;\n\n    if (typeof argWithSuffix === 'object') {\n        argThresholds = argWithSuffix;\n        argWithSuffix = false;\n    }\n    if (typeof argWithSuffix === 'boolean') {\n        withSuffix = argWithSuffix;\n    }\n    if (typeof argThresholds === 'object') {\n        th = Object.assign({}, thresholds, argThresholds);\n        if (argThresholds.s != null && argThresholds.ss == null) {\n            th.ss = argThresholds.s - 1;\n        }\n    }\n\n    locale = this.localeData();\n    output = relativeTime$1(this, !withSuffix, th, locale);\n\n    if (withSuffix) {\n        output = locale.pastFuture(+this, output);\n    }\n\n    return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n    return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n    // for ISO strings we do not use the normal bubbling rules:\n    //  * milliseconds bubble up until they become hours\n    //  * days do not bubble at all\n    //  * months bubble up until they become years\n    // This is because there is no context-free conversion between hours and days\n    // (think of clock changes)\n    // and also not between days and months (28-31 days per month)\n    if (!this.isValid()) {\n        return this.localeData().invalidDate();\n    }\n\n    var seconds = abs$1(this._milliseconds) / 1000,\n        days = abs$1(this._days),\n        months = abs$1(this._months),\n        minutes,\n        hours,\n        years,\n        s,\n        total = this.asSeconds(),\n        totalSign,\n        ymSign,\n        daysSign,\n        hmsSign;\n\n    if (!total) {\n        // this is the same as C#'s (Noda) and python (isodate)...\n        // but not other JS (goog.date)\n        return 'P0D';\n    }\n\n    // 3600 seconds -> 60 minutes -> 1 hour\n    minutes = absFloor(seconds / 60);\n    hours = absFloor(minutes / 60);\n    seconds %= 60;\n    minutes %= 60;\n\n    // 12 months -> 1 year\n    years = absFloor(months / 12);\n    months %= 12;\n\n    // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n    s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n    totalSign = total < 0 ? '-' : '';\n    ymSign = sign(this._months) !== sign(total) ? '-' : '';\n    daysSign = sign(this._days) !== sign(total) ? '-' : '';\n    hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n    return (\n        totalSign +\n        'P' +\n        (years ? ymSign + years + 'Y' : '') +\n        (months ? ymSign + months + 'M' : '') +\n        (days ? daysSign + days + 'D' : '') +\n        (hours || minutes || seconds ? 'T' : '') +\n        (hours ? hmsSign + hours + 'H' : '') +\n        (minutes ? hmsSign + minutes + 'M' : '') +\n        (seconds ? hmsSign + s + 'S' : '')\n    );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n    'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n    toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n    config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n    config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.27.0';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n    DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n    DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n    DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n    DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n    TIME: 'HH:mm', // <input type=\"time\" />\n    TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n    TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n    WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n    MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill/editor-style-fixes.css",
    "content": "/*\nA few style fixes to the editor -prf\n*/\n.ql-editor ol li[data-list=\"bullet\"]:before {\n  content: '\\\\2022';\n  text-align: center;\n}"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill/quill.bubble.css",
    "content": "/*!\n * Quill Editor v1.3.6\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n .ql-container {\n  box-sizing: border-box;\n  font-family: Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  height: 100%;\n  margin: 0px;\n  position: relative;\n}\n.ql-container.ql-disabled .ql-tooltip {\n  visibility: hidden;\n}\n.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {\n  pointer-events: none;\n}\n.ql-clipboard {\n  left: -100000px;\n  height: 1px;\n  overflow-y: hidden;\n  position: absolute;\n  top: 50%;\n}\n.ql-clipboard p {\n  margin: 0;\n  padding: 0;\n}\n.ql-editor {\n  box-sizing: border-box;\n  line-height: 1.42;\n  height: 100%;\n  outline: none;\n  overflow-y: auto;\n  padding: 12px 15px;\n  tab-size: 4;\n  -moz-tab-size: 4;\n  text-align: left;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.ql-editor > * {\n  cursor: text;\n}\n.ql-editor p,\n.ql-editor ol,\n.ql-editor ul,\n.ql-editor pre,\n.ql-editor blockquote,\n.ql-editor h1,\n.ql-editor h2,\n.ql-editor h3,\n.ql-editor h4,\n.ql-editor h5,\n.ql-editor h6 {\n  margin: 0;\n  padding: 0;\n  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol,\n.ql-editor ul {\n  padding-left: 1.5em;\n}\n.ql-editor ol > li,\n.ql-editor ul > li {\n  list-style-type: none;\n}\n.ql-editor ul > li::before {\n  content: '\\2022';\n}\n.ql-editor ul[data-checked=true],\n.ql-editor ul[data-checked=false] {\n  pointer-events: none;\n}\n.ql-editor ul[data-checked=true] > li *,\n.ql-editor ul[data-checked=false] > li * {\n  pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before,\n.ql-editor ul[data-checked=false] > li::before {\n  color: #777;\n  cursor: pointer;\n  pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before {\n  content: '\\2611';\n}\n.ql-editor ul[data-checked=false] > li::before {\n  content: '\\2610';\n}\n.ql-editor li::before {\n  display: inline-block;\n  white-space: nowrap;\n  width: 1.2em;\n}\n.ql-editor li:not(.ql-direction-rtl)::before {\n  margin-left: -1.5em;\n  margin-right: 0.3em;\n  text-align: right;\n}\n.ql-editor li.ql-direction-rtl::before {\n  margin-left: 0.3em;\n  margin-right: -1.5em;\n}\n.ql-editor ol li:not(.ql-direction-rtl),\n.ql-editor ul li:not(.ql-direction-rtl) {\n  padding-left: 1.5em;\n}\n.ql-editor ol li.ql-direction-rtl,\n.ql-editor ul li.ql-direction-rtl {\n  padding-right: 1.5em;\n}\n.ql-editor ol li {\n  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  counter-increment: list-0;\n}\n.ql-editor ol li:before {\n  content: counter(list-0, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n  counter-increment: list-1;\n}\n.ql-editor ol li.ql-indent-1:before {\n  content: counter(list-1, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-2 {\n  counter-increment: list-2;\n}\n.ql-editor ol li.ql-indent-2:before {\n  content: counter(list-2, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-2 {\n  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-3 {\n  counter-increment: list-3;\n}\n.ql-editor ol li.ql-indent-3:before {\n  content: counter(list-3, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-3 {\n  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-4 {\n  counter-increment: list-4;\n}\n.ql-editor ol li.ql-indent-4:before {\n  content: counter(list-4, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-4 {\n  counter-reset: list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-5 {\n  counter-increment: list-5;\n}\n.ql-editor ol li.ql-indent-5:before {\n  content: counter(list-5, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-5 {\n  counter-reset: list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-6 {\n  counter-increment: list-6;\n}\n.ql-editor ol li.ql-indent-6:before {\n  content: counter(list-6, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-6 {\n  counter-reset: list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-7 {\n  counter-increment: list-7;\n}\n.ql-editor ol li.ql-indent-7:before {\n  content: counter(list-7, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-7 {\n  counter-reset: list-8 list-9;\n}\n.ql-editor ol li.ql-indent-8 {\n  counter-increment: list-8;\n}\n.ql-editor ol li.ql-indent-8:before {\n  content: counter(list-8, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-8 {\n  counter-reset: list-9;\n}\n.ql-editor ol li.ql-indent-9 {\n  counter-increment: list-9;\n}\n.ql-editor ol li.ql-indent-9:before {\n  content: counter(list-9, decimal) '. ';\n}\n.ql-editor .ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 3em;\n}\n.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 4.5em;\n}\n.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 3em;\n}\n.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 4.5em;\n}\n.ql-editor .ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 6em;\n}\n.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 7.5em;\n}\n.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 6em;\n}\n.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 7.5em;\n}\n.ql-editor .ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 9em;\n}\n.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 10.5em;\n}\n.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 9em;\n}\n.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 10.5em;\n}\n.ql-editor .ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 12em;\n}\n.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 13.5em;\n}\n.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 12em;\n}\n.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 13.5em;\n}\n.ql-editor .ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 15em;\n}\n.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 16.5em;\n}\n.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 15em;\n}\n.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 16.5em;\n}\n.ql-editor .ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 18em;\n}\n.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 19.5em;\n}\n.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 18em;\n}\n.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 19.5em;\n}\n.ql-editor .ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 21em;\n}\n.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 22.5em;\n}\n.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 21em;\n}\n.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 22.5em;\n}\n.ql-editor .ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 24em;\n}\n.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 25.5em;\n}\n.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 24em;\n}\n.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 25.5em;\n}\n.ql-editor .ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 27em;\n}\n.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 28.5em;\n}\n.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 27em;\n}\n.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 28.5em;\n}\n.ql-editor .ql-video {\n  display: block;\n  max-width: 100%;\n}\n.ql-editor .ql-video.ql-align-center {\n  margin: 0 auto;\n}\n.ql-editor .ql-video.ql-align-right {\n  margin: 0 0 0 auto;\n}\n.ql-editor .ql-bg-black {\n  background-color: #000;\n}\n.ql-editor .ql-bg-red {\n  background-color: #e60000;\n}\n.ql-editor .ql-bg-orange {\n  background-color: #f90;\n}\n.ql-editor .ql-bg-yellow {\n  background-color: #ff0;\n}\n.ql-editor .ql-bg-green {\n  background-color: #008a00;\n}\n.ql-editor .ql-bg-blue {\n  background-color: #06c;\n}\n.ql-editor .ql-bg-purple {\n  background-color: #93f;\n}\n.ql-editor .ql-color-white {\n  color: #fff;\n}\n.ql-editor .ql-color-red {\n  color: #e60000;\n}\n.ql-editor .ql-color-orange {\n  color: #f90;\n}\n.ql-editor .ql-color-yellow {\n  color: #ff0;\n}\n.ql-editor .ql-color-green {\n  color: #008a00;\n}\n.ql-editor .ql-color-blue {\n  color: #06c;\n}\n.ql-editor .ql-color-purple {\n  color: #93f;\n}\n.ql-editor .ql-font-serif {\n  font-family: Georgia, Times New Roman, serif;\n}\n.ql-editor .ql-font-monospace {\n  font-family: Monaco, Courier New, monospace;\n}\n.ql-editor .ql-size-small {\n  font-size: 0.75em;\n}\n.ql-editor .ql-size-large {\n  font-size: 1.5em;\n}\n.ql-editor .ql-size-huge {\n  font-size: 2.5em;\n}\n.ql-editor .ql-direction-rtl {\n  direction: rtl;\n  text-align: inherit;\n}\n.ql-editor .ql-align-center {\n  text-align: center;\n}\n.ql-editor .ql-align-justify {\n  text-align: justify;\n}\n.ql-editor .ql-align-right {\n  text-align: right;\n}\n.ql-editor.ql-blank::before {\n  color: rgba(0,0,0,0.6);\n  content: attr(data-placeholder);\n  font-style: italic;\n  left: 15px;\n  pointer-events: none;\n  position: absolute;\n  right: 15px;\n}\n.ql-bubble.ql-toolbar:after,\n.ql-bubble .ql-toolbar:after {\n  clear: both;\n  content: '';\n  display: table;\n}\n.ql-bubble.ql-toolbar button,\n.ql-bubble .ql-toolbar button {\n  background: none;\n  border: none;\n  cursor: pointer;\n  display: inline-block;\n  float: left;\n  height: 24px;\n  padding: 3px 5px;\n  width: 28px;\n}\n.ql-bubble.ql-toolbar button svg,\n.ql-bubble .ql-toolbar button svg {\n  float: left;\n  height: 100%;\n}\n.ql-bubble.ql-toolbar button:active:hover,\n.ql-bubble .ql-toolbar button:active:hover {\n  outline: none;\n}\n.ql-bubble.ql-toolbar input.ql-image[type=file],\n.ql-bubble .ql-toolbar input.ql-image[type=file] {\n  display: none;\n}\n.ql-bubble.ql-toolbar button:hover,\n.ql-bubble .ql-toolbar button:hover,\n.ql-bubble.ql-toolbar button:focus,\n.ql-bubble .ql-toolbar button:focus,\n.ql-bubble.ql-toolbar button.ql-active,\n.ql-bubble .ql-toolbar button.ql-active,\n.ql-bubble.ql-toolbar .ql-picker-label:hover,\n.ql-bubble .ql-toolbar .ql-picker-label:hover,\n.ql-bubble.ql-toolbar .ql-picker-label.ql-active,\n.ql-bubble .ql-toolbar .ql-picker-label.ql-active,\n.ql-bubble.ql-toolbar .ql-picker-item:hover,\n.ql-bubble .ql-toolbar .ql-picker-item:hover,\n.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,\n.ql-bubble .ql-toolbar .ql-picker-item.ql-selected {\n  color: #fff;\n}\n.ql-bubble.ql-toolbar button:hover .ql-fill,\n.ql-bubble .ql-toolbar button:hover .ql-fill,\n.ql-bubble.ql-toolbar button:focus .ql-fill,\n.ql-bubble .ql-toolbar button:focus .ql-fill,\n.ql-bubble.ql-toolbar button.ql-active .ql-fill,\n.ql-bubble .ql-toolbar button.ql-active .ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\n.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\n  fill: #fff;\n}\n.ql-bubble.ql-toolbar button:hover .ql-stroke,\n.ql-bubble .ql-toolbar button:hover .ql-stroke,\n.ql-bubble.ql-toolbar button:focus .ql-stroke,\n.ql-bubble .ql-toolbar button:focus .ql-stroke,\n.ql-bubble.ql-toolbar button.ql-active .ql-stroke,\n.ql-bubble .ql-toolbar button.ql-active .ql-stroke,\n.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,\n.ql-bubble .ql-toolbar button:hover .ql-stroke-miter,\n.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,\n.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,\n.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\n.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\n  stroke: #fff;\n}\n@media (pointer: coarse) {\n  .ql-bubble.ql-toolbar button:hover:not(.ql-active),\n  .ql-bubble .ql-toolbar button:hover:not(.ql-active) {\n    color: #ccc;\n  }\n  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,\n  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,\n  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\n  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\n    fill: #ccc;\n  }\n  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\n  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\n    stroke: #ccc;\n  }\n}\n.ql-bubble {\n  box-sizing: border-box;\n}\n.ql-bubble * {\n  box-sizing: border-box;\n}\n.ql-bubble .ql-hidden {\n  display: none;\n}\n.ql-bubble .ql-out-bottom,\n.ql-bubble .ql-out-top {\n  visibility: hidden;\n}\n.ql-bubble .ql-tooltip {\n  position: absolute;\n  transform: translateY(10px);\n}\n.ql-bubble .ql-tooltip a {\n  cursor: pointer;\n  text-decoration: none;\n}\n.ql-bubble .ql-tooltip.ql-flip {\n  transform: translateY(-10px);\n}\n.ql-bubble .ql-formats {\n  display: inline-block;\n  vertical-align: middle;\n}\n.ql-bubble .ql-formats:after {\n  clear: both;\n  content: '';\n  display: table;\n}\n.ql-bubble .ql-stroke {\n  fill: none;\n  stroke: #ccc;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 2;\n}\n.ql-bubble .ql-stroke-miter {\n  fill: none;\n  stroke: #ccc;\n  stroke-miterlimit: 10;\n  stroke-width: 2;\n}\n.ql-bubble .ql-fill,\n.ql-bubble .ql-stroke.ql-fill {\n  fill: #ccc;\n}\n.ql-bubble .ql-empty {\n  fill: none;\n}\n.ql-bubble .ql-even {\n  fill-rule: evenodd;\n}\n.ql-bubble .ql-thin,\n.ql-bubble .ql-stroke.ql-thin {\n  stroke-width: 1;\n}\n.ql-bubble .ql-transparent {\n  opacity: 0.4;\n}\n.ql-bubble .ql-direction svg:last-child {\n  display: none;\n}\n.ql-bubble .ql-direction.ql-active svg:last-child {\n  display: inline;\n}\n.ql-bubble .ql-direction.ql-active svg:first-child {\n  display: none;\n}\n.ql-bubble .ql-editor h1 {\n  font-size: 2em;\n}\n.ql-bubble .ql-editor h2 {\n  font-size: 1.5em;\n}\n.ql-bubble .ql-editor h3 {\n  font-size: 1.17em;\n}\n.ql-bubble .ql-editor h4 {\n  font-size: 1em;\n}\n.ql-bubble .ql-editor h5 {\n  font-size: 0.83em;\n}\n.ql-bubble .ql-editor h6 {\n  font-size: 0.67em;\n}\n.ql-bubble .ql-editor a {\n  text-decoration: underline;\n}\n.ql-bubble .ql-editor blockquote {\n  border-left: 4px solid #ccc;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding-left: 16px;\n}\n.ql-bubble .ql-editor code,\n.ql-bubble .ql-editor pre {\n  background-color: #f0f0f0;\n  border-radius: 3px;\n}\n.ql-bubble .ql-editor pre {\n  white-space: pre-wrap;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding: 5px 10px;\n}\n.ql-bubble .ql-editor code {\n  font-size: 85%;\n  padding: 2px 4px;\n}\n.ql-bubble .ql-editor pre.ql-syntax {\n  background-color: #23241f;\n  color: #f8f8f2;\n  overflow: visible;\n}\n.ql-bubble .ql-editor img {\n  max-width: 100%;\n}\n.ql-bubble .ql-picker {\n  color: #ccc;\n  display: inline-block;\n  float: left;\n  font-size: 14px;\n  font-weight: 500;\n  height: 24px;\n  position: relative;\n  vertical-align: middle;\n}\n.ql-bubble .ql-picker-label {\n  cursor: pointer;\n  display: inline-block;\n  height: 100%;\n  padding-left: 8px;\n  padding-right: 2px;\n  position: relative;\n  width: 100%;\n}\n.ql-bubble .ql-picker-label::before {\n  display: inline-block;\n  line-height: 22px;\n}\n.ql-bubble .ql-picker-options {\n  background-color: #444;\n  display: none;\n  min-width: 100%;\n  padding: 4px 8px;\n  position: absolute;\n  white-space: nowrap;\n}\n.ql-bubble .ql-picker-options .ql-picker-item {\n  cursor: pointer;\n  display: block;\n  padding-bottom: 5px;\n  padding-top: 5px;\n}\n.ql-bubble .ql-picker.ql-expanded .ql-picker-label {\n  color: #777;\n  z-index: 2;\n}\n.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill {\n  fill: #777;\n}\n.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\n  stroke: #777;\n}\n.ql-bubble .ql-picker.ql-expanded .ql-picker-options {\n  display: block;\n  margin-top: -1px;\n  top: 100%;\n  z-index: 1;\n}\n.ql-bubble .ql-color-picker,\n.ql-bubble .ql-icon-picker {\n  width: 28px;\n}\n.ql-bubble .ql-color-picker .ql-picker-label,\n.ql-bubble .ql-icon-picker .ql-picker-label {\n  padding: 2px 4px;\n}\n.ql-bubble .ql-color-picker .ql-picker-label svg,\n.ql-bubble .ql-icon-picker .ql-picker-label svg {\n  right: 4px;\n}\n.ql-bubble .ql-icon-picker .ql-picker-options {\n  padding: 4px 0px;\n}\n.ql-bubble .ql-icon-picker .ql-picker-item {\n  height: 24px;\n  width: 24px;\n  padding: 2px 4px;\n}\n.ql-bubble .ql-color-picker .ql-picker-options {\n  padding: 3px 5px;\n  width: 152px;\n}\n.ql-bubble .ql-color-picker .ql-picker-item {\n  border: 1px solid transparent;\n  float: left;\n  height: 16px;\n  margin: 2px;\n  padding: 0px;\n  width: 16px;\n}\n.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\n  position: absolute;\n  margin-top: -9px;\n  right: 0;\n  top: 50%;\n  width: 18px;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {\n  content: attr(data-label);\n}\n.ql-bubble .ql-picker.ql-header {\n  width: 98px;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item::before {\n  content: 'Normal';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  content: 'Heading 1';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  content: 'Heading 2';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  content: 'Heading 3';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  content: 'Heading 4';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  content: 'Heading 5';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  content: 'Heading 6';\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  font-size: 2em;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  font-size: 1.5em;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  font-size: 1.17em;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  font-size: 1em;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  font-size: 0.83em;\n}\n.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  font-size: 0.67em;\n}\n.ql-bubble .ql-picker.ql-font {\n  width: 108px;\n}\n.ql-bubble .ql-picker.ql-font .ql-picker-label::before,\n.ql-bubble .ql-picker.ql-font .ql-picker-item::before {\n  content: 'Sans Serif';\n}\n.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,\n.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  content: 'Serif';\n}\n.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,\n.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  content: 'Monospace';\n}\n.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  font-family: Georgia, Times New Roman, serif;\n}\n.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  font-family: Monaco, Courier New, monospace;\n}\n.ql-bubble .ql-picker.ql-size {\n  width: 98px;\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-label::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-item::before {\n  content: 'Normal';\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  content: 'Small';\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  content: 'Large';\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  content: 'Huge';\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  font-size: 10px;\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  font-size: 18px;\n}\n.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  font-size: 32px;\n}\n.ql-bubble .ql-color-picker.ql-background .ql-picker-item {\n  background-color: #fff;\n}\n.ql-bubble .ql-color-picker.ql-color .ql-picker-item {\n  background-color: #000;\n}\n.ql-bubble .ql-toolbar .ql-formats {\n  margin: 8px 12px 8px 0px;\n}\n.ql-bubble .ql-toolbar .ql-formats:first-child {\n  margin-left: 12px;\n}\n.ql-bubble .ql-color-picker svg {\n  margin: 1px;\n}\n.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,\n.ql-bubble .ql-color-picker .ql-picker-item:hover {\n  border-color: #fff;\n}\n.ql-bubble .ql-tooltip {\n  background-color: #444;\n  border-radius: 25px;\n  color: #fff;\n}\n.ql-bubble .ql-tooltip-arrow {\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  content: \" \";\n  display: block;\n  left: 50%;\n  margin-left: -6px;\n  position: absolute;\n}\n.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow {\n  border-bottom: 6px solid #444;\n  top: -6px;\n}\n.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow {\n  border-top: 6px solid #444;\n  bottom: -6px;\n}\n.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor {\n  display: block;\n}\n.ql-bubble .ql-tooltip.ql-editing .ql-formats {\n  visibility: hidden;\n}\n.ql-bubble .ql-tooltip-editor {\n  display: none;\n}\n.ql-bubble .ql-tooltip-editor input[type=text] {\n  background: transparent;\n  border: none;\n  color: #fff;\n  font-size: 13px;\n  height: 100%;\n  outline: none;\n  padding: 10px 20px;\n  position: absolute;\n  width: 100%;\n}\n.ql-bubble .ql-tooltip-editor a {\n  top: 10px;\n  position: absolute;\n  right: 20px;\n}\n.ql-bubble .ql-tooltip-editor a:before {\n  color: #ccc;\n  content: \"\\D7\";\n  font-size: 16px;\n  font-weight: bold;\n}\n.ql-container.ql-bubble:not(.ql-disabled) a {\n  position: relative;\n  white-space: nowrap;\n}\n.ql-container.ql-bubble:not(.ql-disabled) a::before {\n  background-color: #444;\n  border-radius: 15px;\n  top: -5px;\n  font-size: 12px;\n  color: #fff;\n  content: attr(href);\n  font-weight: normal;\n  overflow: hidden;\n  padding: 5px 15px;\n  text-decoration: none;\n  z-index: 1;\n}\n.ql-container.ql-bubble:not(.ql-disabled) a::after {\n  border-top: 6px solid #444;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  top: 0;\n  content: \" \";\n  height: 0;\n  width: 0;\n}\n.ql-container.ql-bubble:not(.ql-disabled) a::before,\n.ql-container.ql-bubble:not(.ql-disabled) a::after {\n  left: 0;\n  margin-left: 50%;\n  position: absolute;\n  transform: translate(-50%, -100%);\n  transition: visibility 0s ease 200ms;\n  visibility: hidden;\n}\n.ql-container.ql-bubble:not(.ql-disabled) a:hover::before,\n.ql-container.ql-bubble:not(.ql-disabled) a:hover::after {\n  visibility: visible;\n}"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill/quill.js",
    "content": "/*!\n * Quill Editor v2.0.0-dev.3\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n * \n * Branch: https://github.com/yananym/quill\n */\nconst factory = (function() {\n return /******/ (function(modules) { // webpackBootstrap\n /******/ \t// The module cache\n /******/ \tvar installedModules = {};\n /******/\n /******/ \t// The require function\n /******/ \tfunction __webpack_require__(moduleId) {\n /******/\n /******/ \t\t// Check if module is in cache\n /******/ \t\tif(installedModules[moduleId]) {\n /******/ \t\t\treturn installedModules[moduleId].exports;\n /******/ \t\t}\n /******/ \t\t// Create a new module (and put it into the cache)\n /******/ \t\tvar module = installedModules[moduleId] = {\n /******/ \t\t\ti: moduleId,\n /******/ \t\t\tl: false,\n /******/ \t\t\texports: {}\n /******/ \t\t};\n /******/\n /******/ \t\t// Execute the module function\n /******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ \t\t// Flag the module as loaded\n /******/ \t\tmodule.l = true;\n /******/\n /******/ \t\t// Return the exports of the module\n /******/ \t\treturn module.exports;\n /******/ \t}\n /******/\n /******/\n /******/ \t// expose the modules object (__webpack_modules__)\n /******/ \t__webpack_require__.m = modules;\n /******/\n /******/ \t// expose the module cache\n /******/ \t__webpack_require__.c = installedModules;\n /******/\n /******/ \t// define getter function for harmony exports\n /******/ \t__webpack_require__.d = function(exports, name, getter) {\n /******/ \t\tif(!__webpack_require__.o(exports, name)) {\n /******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n /******/ \t\t}\n /******/ \t};\n /******/\n /******/ \t// define __esModule on exports\n /******/ \t__webpack_require__.r = function(exports) {\n /******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n /******/ \t\t}\n /******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n /******/ \t};\n /******/\n /******/ \t// create a fake namespace object\n /******/ \t// mode & 1: value is a module id, require it\n /******/ \t// mode & 2: merge all properties of value into the ns\n /******/ \t// mode & 4: return value when already ns object\n /******/ \t// mode & 8|1: behave like require\n /******/ \t__webpack_require__.t = function(value, mode) {\n /******/ \t\tif(mode & 1) value = __webpack_require__(value);\n /******/ \t\tif(mode & 8) return value;\n /******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n /******/ \t\tvar ns = Object.create(null);\n /******/ \t\t__webpack_require__.r(ns);\n /******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n /******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n /******/ \t\treturn ns;\n /******/ \t};\n /******/\n /******/ \t// getDefaultExport function for compatibility with non-harmony modules\n /******/ \t__webpack_require__.n = function(module) {\n /******/ \t\tvar getter = module && module.__esModule ?\n /******/ \t\t\tfunction getDefault() { return module['default']; } :\n /******/ \t\t\tfunction getModuleExports() { return module; };\n /******/ \t\t__webpack_require__.d(getter, 'a', getter);\n /******/ \t\treturn getter;\n /******/ \t};\n /******/\n /******/ \t// Object.prototype.hasOwnProperty.call\n /******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n /******/\n /******/ \t// __webpack_public_path__\n /******/ \t__webpack_require__.p = \"\";\n /******/\n /******/\n /******/ \t// Load entry module and return exports\n /******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n /******/ })\n /************************************************************************/\n /******/ ({\n \n /***/ \"./assets/icons/align-center.svg\":\n /*!***************************************!*\\\n   !*** ./assets/icons/align-center.svg ***!\n   \\***************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/align-justify.svg\":\n /*!****************************************!*\\\n   !*** ./assets/icons/align-justify.svg ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/align-left.svg\":\n /*!*************************************!*\\\n   !*** ./assets/icons/align-left.svg ***!\n   \\*************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/align-right.svg\":\n /*!**************************************!*\\\n   !*** ./assets/icons/align-right.svg ***!\n   \\**************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/background.svg\":\n /*!*************************************!*\\\n   !*** ./assets/icons/background.svg ***!\n   \\*************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/blockquote.svg\":\n /*!*************************************!*\\\n   !*** ./assets/icons/blockquote.svg ***!\n   \\*************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/bold.svg\":\n /*!*******************************!*\\\n   !*** ./assets/icons/bold.svg ***!\n   \\*******************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/clean.svg\":\n /*!********************************!*\\\n   !*** ./assets/icons/clean.svg ***!\n   \\********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/code.svg\":\n /*!*******************************!*\\\n   !*** ./assets/icons/code.svg ***!\n   \\*******************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/color.svg\":\n /*!********************************!*\\\n   !*** ./assets/icons/color.svg ***!\n   \\********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/direction-ltr.svg\":\n /*!****************************************!*\\\n   !*** ./assets/icons/direction-ltr.svg ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/direction-rtl.svg\":\n /*!****************************************!*\\\n   !*** ./assets/icons/direction-rtl.svg ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/dropdown.svg\":\n /*!***********************************!*\\\n   !*** ./assets/icons/dropdown.svg ***!\n   \\***********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/formula.svg\":\n /*!**********************************!*\\\n   !*** ./assets/icons/formula.svg ***!\n   \\**********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/header-2.svg\":\n /*!***********************************!*\\\n   !*** ./assets/icons/header-2.svg ***!\n   \\***********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/header.svg\":\n /*!*********************************!*\\\n   !*** ./assets/icons/header.svg ***!\n   \\*********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/image.svg\":\n /*!********************************!*\\\n   !*** ./assets/icons/image.svg ***!\n   \\********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/indent.svg\":\n /*!*********************************!*\\\n   !*** ./assets/icons/indent.svg ***!\n   \\*********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/italic.svg\":\n /*!*********************************!*\\\n   !*** ./assets/icons/italic.svg ***!\n   \\*********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/link.svg\":\n /*!*******************************!*\\\n   !*** ./assets/icons/link.svg ***!\n   \\*******************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/list-bullet.svg\":\n /*!**************************************!*\\\n   !*** ./assets/icons/list-bullet.svg ***!\n   \\**************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/list-check.svg\":\n /*!*************************************!*\\\n   !*** ./assets/icons/list-check.svg ***!\n   \\*************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/list-ordered.svg\":\n /*!***************************************!*\\\n   !*** ./assets/icons/list-ordered.svg ***!\n   \\***************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/outdent.svg\":\n /*!**********************************!*\\\n   !*** ./assets/icons/outdent.svg ***!\n   \\**********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/strike.svg\":\n /*!*********************************!*\\\n   !*** ./assets/icons/strike.svg ***!\n   \\*********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/subscript.svg\":\n /*!************************************!*\\\n   !*** ./assets/icons/subscript.svg ***!\n   \\************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/superscript.svg\":\n /*!**************************************!*\\\n   !*** ./assets/icons/superscript.svg ***!\n   \\**************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/table.svg\":\n /*!********************************!*\\\n   !*** ./assets/icons/table.svg ***!\n   \\********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=2 width=3 x=5 y=5></rect> <rect class=ql-fill height=2 width=4 x=9 y=5></rect> <g class=\\\"ql-fill ql-transparent\\\"> <rect height=2 width=3 x=5 y=8></rect> <rect height=2 width=4 x=9 y=8></rect> <rect height=2 width=3 x=5 y=11></rect> <rect height=2 width=4 x=9 y=11></rect> </g> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/underline.svg\":\n /*!************************************!*\\\n   !*** ./assets/icons/underline.svg ***!\n   \\************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n \n /***/ }),\n \n /***/ \"./assets/icons/video.svg\":\n /*!********************************!*\\\n   !*** ./assets/icons/video.svg ***!\n   \\********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n \n /***/ }),\n \n /***/ \"./blots/block.js\":\n /*!************************!*\\\n   !*** ./blots/block.js ***!\n   \\************************/\n /*! exports provided: blockDelta, bubbleFormats, BlockEmbed, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"blockDelta\", function() { return blockDelta; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bubbleFormats\", function() { return bubbleFormats; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BlockEmbed\", function() { return BlockEmbed; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Block; });\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./break */ \"./blots/break.js\");\n /* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./inline */ \"./blots/inline.js\");\n /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./text */ \"./blots/text.js\");\n \n \n \n \n \n \n const NEWLINE_LENGTH = 1;\n \n class Block extends parchment__WEBPACK_IMPORTED_MODULE_2__[\"BlockBlot\"] {\n   constructor(scroll, domNode) {\n     super(scroll, domNode);\n     this.cache = {};\n   }\n \n   delta() {\n     if (this.cache.delta == null) {\n       this.cache.delta = blockDelta(this);\n     }\n \n     return this.cache.delta;\n   }\n \n   deleteAt(index, length) {\n     super.deleteAt(index, length);\n     this.cache = {};\n   }\n \n   formatAt(index, length, name, value) {\n     if (length <= 0) return;\n \n     if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_2__[\"Scope\"].BLOCK)) {\n       if (index + length === this.length()) {\n         this.format(name, value);\n       }\n     } else {\n       super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n     }\n \n     this.cache = {};\n   }\n \n   insertAt(index, value, def) {\n     if (def != null) {\n       super.insertAt(index, value, def);\n       this.cache = {};\n       return;\n     }\n \n     if (value.length === 0) return;\n     const lines = value.split('\\n');\n     const text = lines.shift();\n \n     if (text.length > 0) {\n       if (index < this.length() - 1 || this.children.tail == null) {\n         super.insertAt(Math.min(index, this.length() - 1), text);\n       } else {\n         this.children.tail.insertAt(this.children.tail.length(), text);\n       }\n \n       this.cache = {};\n     }\n \n     let block = this;\n     lines.reduce((lineIndex, line) => {\n       block = block.split(lineIndex, true);\n       block.insertAt(0, line);\n       return line.length;\n     }, index + text.length);\n   }\n \n   insertBefore(blot, ref) {\n     const {\n       head\n     } = this.children;\n     super.insertBefore(blot, ref);\n \n     if (head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) {\n       head.remove();\n     }\n \n     this.cache = {};\n   }\n \n   length() {\n     if (this.cache.length == null) {\n       this.cache.length = super.length() + NEWLINE_LENGTH;\n     }\n \n     return this.cache.length;\n   }\n \n   moveChildren(target, ref) {\n     super.moveChildren(target, ref);\n     this.cache = {};\n   }\n \n   optimize(context) {\n     super.optimize(context);\n     this.cache = {};\n   }\n \n   path(index) {\n     return super.path(index, true);\n   }\n \n   removeChild(child) {\n     super.removeChild(child);\n     this.cache = {};\n   }\n \n   split(index, force = false) {\n     if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n       const clone = this.clone();\n \n       if (index === 0) {\n         this.parent.insertBefore(clone, this);\n         return this;\n       }\n \n       this.parent.insertBefore(clone, this.next);\n       return clone;\n     }\n \n     const next = super.split(index, force);\n     this.cache = {};\n     return next;\n   }\n \n }\n \n Block.blotName = 'block';\n Block.tagName = 'P';\n Block.defaultChild = _break__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n Block.allowedChildren = [_break__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _inline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], parchment__WEBPACK_IMPORTED_MODULE_2__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_5__[\"default\"]];\n \n class BlockEmbed extends parchment__WEBPACK_IMPORTED_MODULE_2__[\"EmbedBlot\"] {\n   attach() {\n     super.attach();\n     this.attributes = new parchment__WEBPACK_IMPORTED_MODULE_2__[\"AttributorStore\"](this.domNode);\n   }\n \n   delta() {\n     return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().insert(this.value(), extend__WEBPACK_IMPORTED_MODULE_0___default()(this.formats(), this.attributes.values()));\n   }\n \n   format(name, value) {\n     const attribute = this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_2__[\"Scope\"].BLOCK_ATTRIBUTE);\n \n     if (attribute != null) {\n       this.attributes.attribute(attribute, value);\n     }\n   }\n \n   formatAt(index, length, name, value) {\n     this.format(name, value);\n   }\n \n   insertAt(index, value, def) {\n     if (typeof value === 'string' && value.endsWith('\\n')) {\n       const block = this.scroll.create(Block.blotName);\n       this.parent.insertBefore(block, index === 0 ? this : this.next);\n       block.insertAt(0, value.slice(0, -1));\n     } else {\n       super.insertAt(index, value, def);\n     }\n   }\n \n }\n \n BlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_2__[\"Scope\"].BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n \n function blockDelta(blot, filter = true) {\n   return blot.descendants(parchment__WEBPACK_IMPORTED_MODULE_2__[\"LeafBlot\"]).reduce((delta, leaf) => {\n     if (leaf.length() === 0) {\n       return delta;\n     }\n \n     return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n   }, new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a()).insert('\\n', bubbleFormats(blot));\n }\n \n function bubbleFormats(blot, formats = {}, filter = true) {\n   if (blot == null) return formats;\n \n   if (typeof blot.formats === 'function') {\n     formats = extend__WEBPACK_IMPORTED_MODULE_0___default()(formats, blot.formats());\n \n     if (filter) {\n       // exclude syntax highlighting from deltas and getFormat()\n       delete formats['code-token'];\n     }\n   }\n \n   if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n     return formats;\n   }\n \n   return bubbleFormats(blot.parent, formats, filter);\n }\n \n \n \n /***/ }),\n \n /***/ \"./blots/break.js\":\n /*!************************!*\\\n   !*** ./blots/break.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n \n class Break extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"] {\n   static value() {\n     return undefined;\n   }\n \n   optimize() {\n     if (this.prev || this.next) {\n       this.remove();\n     }\n   }\n \n   length() {\n     return 0;\n   }\n \n   value() {\n     return '';\n   }\n \n }\n \n Break.blotName = 'break';\n Break.tagName = 'BR';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Break);\n \n /***/ }),\n \n /***/ \"./blots/container.js\":\n /*!****************************!*\\\n   !*** ./blots/container.js ***!\n   \\****************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n \n class Container extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"] {}\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Container);\n \n /***/ }),\n \n /***/ \"./blots/cursor.js\":\n /*!*************************!*\\\n   !*** ./blots/cursor.js ***!\n   \\*************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text */ \"./blots/text.js\");\n \n \n \n class Cursor extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"] {\n   static value() {\n     return undefined;\n   }\n \n   constructor(scroll, domNode, selection) {\n     super(scroll, domNode);\n     this.selection = selection;\n     this.textNode = document.createTextNode(Cursor.CONTENTS);\n     this.domNode.appendChild(this.textNode);\n     this.savedLength = 0;\n   }\n \n   detach() {\n     // super.detach() will also clear domNode.__blot\n     if (this.parent != null) this.parent.removeChild(this);\n   }\n \n   format(name, value) {\n     if (this.savedLength !== 0) {\n       super.format(name, value);\n       return;\n     }\n \n     let target = this;\n     let index = 0;\n \n     while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK_BLOT) {\n       index += target.offset(target.parent);\n       target = target.parent;\n     }\n \n     if (target != null) {\n       this.savedLength = Cursor.CONTENTS.length;\n       target.optimize();\n       target.formatAt(index, Cursor.CONTENTS.length, name, value);\n       this.savedLength = 0;\n     }\n   }\n \n   index(node, offset) {\n     if (node === this.textNode) return 0;\n     return super.index(node, offset);\n   }\n \n   length() {\n     return this.savedLength;\n   }\n \n   position() {\n     return [this.textNode, this.textNode.data.length];\n   }\n \n   remove() {\n     super.remove();\n     this.parent = null;\n   }\n \n   restore() {\n     if (this.selection.composing || this.parent == null) return null;\n     const range = this.selection.getNativeRange(); // Link format will insert text outside of anchor tag\n \n     while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n       this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n     }\n \n     const prevTextBlot = this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? this.prev : null;\n     const prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n     const nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? this.next : null;\n     const nextText = nextTextBlot ? nextTextBlot.text : '';\n     const {\n       textNode\n     } = this; // take text from inside this blot and reset it\n \n     const newText = textNode.data.split(Cursor.CONTENTS).join('');\n     textNode.data = Cursor.CONTENTS; // proactively merge TextBlots around cursor so that optimization\n     // doesn't lose the cursor.  the reason we are here in cursor.restore\n     // could be that the user clicked in prevTextBlot or nextTextBlot, or\n     // the user typed something.\n \n     let mergedTextBlot;\n \n     if (prevTextBlot) {\n       mergedTextBlot = prevTextBlot;\n \n       if (newText || nextTextBlot) {\n         prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n \n         if (nextTextBlot) {\n           nextTextBlot.remove();\n         }\n       }\n     } else if (nextTextBlot) {\n       mergedTextBlot = nextTextBlot;\n       nextTextBlot.insertAt(0, newText);\n     } else {\n       const newTextNode = document.createTextNode(newText);\n       mergedTextBlot = this.scroll.create(newTextNode);\n       this.parent.insertBefore(mergedTextBlot, this);\n     }\n \n     this.remove();\n \n     if (range) {\n       // calculate selection to restore\n       const remapOffset = (node, offset) => {\n         if (prevTextBlot && node === prevTextBlot.domNode) {\n           return offset;\n         }\n \n         if (node === textNode) {\n           return prevTextLength + offset - 1;\n         }\n \n         if (nextTextBlot && node === nextTextBlot.domNode) {\n           return prevTextLength + newText.length + offset;\n         }\n \n         return null;\n       };\n \n       const start = remapOffset(range.start.node, range.start.offset);\n       const end = remapOffset(range.end.node, range.end.offset);\n \n       if (start !== null && end !== null) {\n         return {\n           startNode: mergedTextBlot.domNode,\n           startOffset: start,\n           endNode: mergedTextBlot.domNode,\n           endOffset: end\n         };\n       }\n     }\n \n     return null;\n   }\n \n   update(mutations, context) {\n     if (mutations.some(mutation => {\n       return mutation.type === 'characterData' && mutation.target === this.textNode;\n     })) {\n       const range = this.restore();\n       if (range) context.range = range;\n     }\n   }\n \n   value() {\n     return '';\n   }\n \n }\n \n Cursor.blotName = 'cursor';\n Cursor.className = 'ql-cursor';\n Cursor.tagName = 'span';\n Cursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Cursor);\n \n /***/ }),\n \n /***/ \"./blots/embed.js\":\n /*!************************!*\\\n   !*** ./blots/embed.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text */ \"./blots/text.js\");\n \n \n const GUARD_TEXT = '\\uFEFF';\n \n class Embed extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"] {\n   constructor(scroll, node) {\n     super(scroll, node);\n     this.contentNode = document.createElement('span');\n     this.contentNode.setAttribute('contenteditable', false);\n     Array.from(this.domNode.childNodes).forEach(childNode => {\n       this.contentNode.appendChild(childNode);\n     });\n     this.leftGuard = document.createTextNode(GUARD_TEXT);\n     this.rightGuard = document.createTextNode(GUARD_TEXT);\n     this.domNode.appendChild(this.leftGuard);\n     this.domNode.appendChild(this.contentNode);\n     this.domNode.appendChild(this.rightGuard);\n   }\n \n   index(node, offset) {\n     if (node === this.leftGuard) return 0;\n     if (node === this.rightGuard) return 1;\n     return super.index(node, offset);\n   }\n \n   restore(node) {\n     let range;\n     let textNode;\n     const text = node.data.split(GUARD_TEXT).join('');\n \n     if (node === this.leftGuard) {\n       if (this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n         const prevLength = this.prev.length();\n         this.prev.insertAt(prevLength, text);\n         range = {\n           startNode: this.prev.domNode,\n           startOffset: prevLength + text.length\n         };\n       } else {\n         textNode = document.createTextNode(text);\n         this.parent.insertBefore(this.scroll.create(textNode), this);\n         range = {\n           startNode: textNode,\n           startOffset: text.length\n         };\n       }\n     } else if (node === this.rightGuard) {\n       if (this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n         this.next.insertAt(0, text);\n         range = {\n           startNode: this.next.domNode,\n           startOffset: text.length\n         };\n       } else {\n         textNode = document.createTextNode(text);\n         this.parent.insertBefore(this.scroll.create(textNode), this.next);\n         range = {\n           startNode: textNode,\n           startOffset: text.length\n         };\n       }\n     }\n \n     node.data = GUARD_TEXT;\n     return range;\n   }\n \n   update(mutations, context) {\n     mutations.forEach(mutation => {\n       if (mutation.type === 'characterData' && (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n         const range = this.restore(mutation.target);\n         if (range) context.range = range;\n       }\n     });\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Embed);\n \n /***/ }),\n \n /***/ \"./blots/inline.js\":\n /*!*************************!*\\\n   !*** ./blots/inline.js ***!\n   \\*************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break */ \"./blots/break.js\");\n /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./text */ \"./blots/text.js\");\n \n \n \n \n class Inline extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"InlineBlot\"] {\n   static compare(self, other) {\n     const selfIndex = Inline.order.indexOf(self);\n     const otherIndex = Inline.order.indexOf(other);\n \n     if (selfIndex >= 0 || otherIndex >= 0) {\n       return selfIndex - otherIndex;\n     }\n \n     if (self === other) {\n       return 0;\n     }\n \n     if (self < other) {\n       return -1;\n     }\n \n     return 1;\n   }\n \n   formatAt(index, length, name, value) {\n     if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOT)) {\n       const blot = this.isolate(index, length);\n \n       if (value) {\n         blot.wrap(name, value);\n       }\n     } else {\n       super.formatAt(index, length, name, value);\n     }\n   }\n \n   optimize(context) {\n     super.optimize(context);\n \n     if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n       const parent = this.parent.isolate(this.offset(), this.length());\n       this.moveChildren(parent);\n       parent.wrap(this);\n     }\n   }\n \n }\n \n Inline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__[\"default\"], parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n \n Inline.order = ['cursor', 'inline', // Must be lower\n 'link', // Chrome wants <a> to be lower\n 'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n ];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Inline);\n \n /***/ }),\n \n /***/ \"./blots/scroll.js\":\n /*!*************************!*\\\n   !*** ./blots/scroll.js ***!\n   \\*************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter */ \"./core/emitter.js\");\n /* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./block */ \"./blots/block.js\");\n /* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./break */ \"./blots/break.js\");\n /* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./container */ \"./blots/container.js\");\n \n \n \n \n \n \n function isLine(blot) {\n   return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\"default\"] || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\"BlockEmbed\"];\n }\n \n class Scroll extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"ScrollBlot\"] {\n   constructor(registry, domNode, {\n     emitter\n   }) {\n     super(registry, domNode);\n     this.emitter = emitter;\n     this.batch = false;\n     this.optimize();\n     this.enable();\n     this.domNode.addEventListener('dragstart', e => this.handleDragStart(e));\n   }\n \n   batchStart() {\n     if (!Array.isArray(this.batch)) {\n       this.batch = [];\n     }\n   }\n \n   batchEnd() {\n     const mutations = this.batch;\n     this.batch = false;\n     this.update(mutations);\n   }\n \n   emitMount(blot) {\n     this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_BLOT_MOUNT, blot);\n   }\n \n   emitUnmount(blot) {\n     this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_BLOT_UNMOUNT, blot);\n   }\n \n   deleteAt(index, length) {\n     const [first, offset] = this.line(index);\n     const [last] = this.line(index + length);\n     super.deleteAt(index, length);\n \n     if (last != null && first !== last && offset > 0) {\n       if (first instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\"BlockEmbed\"] || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\"BlockEmbed\"]) {\n         this.optimize();\n         return;\n       }\n \n       const ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[\"default\"] ? null : last.children.head;\n       first.moveChildren(last, ref);\n       first.remove();\n     }\n \n     this.optimize();\n   }\n \n   enable(enabled = true) {\n     this.domNode.setAttribute('contenteditable', enabled);\n   }\n \n   formatAt(index, length, format, value) {\n     super.formatAt(index, length, format, value);\n     this.optimize();\n   }\n \n   handleDragStart(event) {\n     event.preventDefault();\n   }\n \n   insertAt(index, value, def) {\n     if (index >= this.length()) {\n       if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) == null) {\n         const blot = this.scroll.create(this.statics.defaultChild.blotName);\n         this.appendChild(blot);\n \n         if (def == null && value.endsWith('\\n')) {\n           blot.insertAt(0, value.slice(0, -1), def);\n         } else {\n           blot.insertAt(0, value, def);\n         }\n       } else {\n         const embed = this.scroll.create(value, def);\n         this.appendChild(embed);\n       }\n     } else {\n       super.insertAt(index, value, def);\n     }\n \n     this.optimize();\n   }\n \n   insertBefore(blot, ref) {\n     if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE_BLOT) {\n       const wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n       wrapper.appendChild(blot);\n       super.insertBefore(wrapper, ref);\n     } else {\n       super.insertBefore(blot, ref);\n     }\n   }\n \n   isEnabled() {\n     return this.domNode.getAttribute('contenteditable') === 'true';\n   }\n \n   leaf(index) {\n     return this.path(index).pop() || [null, -1];\n   }\n \n   line(index) {\n     if (index === this.length()) {\n       return this.line(index - 1);\n     }\n \n     return this.descendant(isLine, index);\n   }\n \n   lines(index = 0, length = Number.MAX_VALUE) {\n     const getLines = (blot, blotIndex, blotLength) => {\n       let lines = [];\n       let lengthLeft = blotLength;\n       blot.children.forEachAt(blotIndex, blotLength, (child, childIndex, childLength) => {\n         if (isLine(child)) {\n           lines.push(child);\n         } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]) {\n           lines = lines.concat(getLines(child, childIndex, lengthLeft));\n         }\n \n         lengthLeft -= childLength;\n       });\n       return lines;\n     };\n \n     return getLines(this, index, length);\n   }\n \n   optimize(mutations = [], context = {}) {\n     if (this.batch) return;\n     super.optimize(mutations, context);\n \n     if (mutations.length > 0) {\n       this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_OPTIMIZE, mutations, context);\n     }\n   }\n \n   path(index) {\n     return super.path(index).slice(1); // Exclude self\n   }\n \n   remove() {// Never remove self\n   }\n \n   update(mutations) {\n     if (this.batch) {\n       if (Array.isArray(mutations)) {\n         this.batch = this.batch.concat(mutations);\n       }\n \n       return;\n     }\n \n     let source = _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER;\n \n     if (typeof mutations === 'string') {\n       source = mutations;\n     }\n \n     if (!Array.isArray(mutations)) {\n       mutations = this.observer.takeRecords();\n     }\n \n     if (mutations.length > 0) {\n       this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n     }\n \n     super.update(mutations.concat([])); // pass copy\n \n     if (mutations.length > 0) {\n       this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_UPDATE, source, mutations);\n     }\n   }\n \n }\n \n Scroll.blotName = 'scroll';\n Scroll.className = 'ql-editor';\n Scroll.tagName = 'DIV';\n Scroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n Scroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _block__WEBPACK_IMPORTED_MODULE_2__[\"BlockEmbed\"], _container__WEBPACK_IMPORTED_MODULE_4__[\"default\"]];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Scroll);\n \n /***/ }),\n \n /***/ \"./blots/text.js\":\n /*!***********************!*\\\n   !*** ./blots/text.js ***!\n   \\***********************/\n /*! exports provided: default, escapeText */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Text; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"escapeText\", function() { return escapeText; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n \n class Text extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"TextBlot\"] {}\n \n function escapeText(text) {\n   return text.replace(/[&<>\"']/g, s => {\n     // https://lodash.com/docs#escape\n     const entityMap = {\n       '&': '&amp;',\n       '<': '&lt;',\n       '>': '&gt;',\n       '\"': '&quot;',\n       \"'\": '&#39;'\n     };\n     return entityMap[s];\n   });\n }\n \n \n \n /***/ }),\n \n /***/ \"./core.js\":\n /*!*****************!*\\\n   !*** ./core.js ***!\n   \\*****************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/quill */ \"./core/quill.js\");\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blots/break */ \"./blots/break.js\");\n /* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blots/container */ \"./blots/container.js\");\n /* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blots/cursor */ \"./blots/cursor.js\");\n /* harmony import */ var _blots_embed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blots/embed */ \"./blots/embed.js\");\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blots/inline */ \"./blots/inline.js\");\n /* harmony import */ var _blots_scroll__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blots/scroll */ \"./blots/scroll.js\");\n /* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./blots/text */ \"./blots/text.js\");\n /* harmony import */ var _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/clipboard */ \"./modules/clipboard.js\");\n /* harmony import */ var _modules_history__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/history */ \"./modules/history.js\");\n /* harmony import */ var _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/keyboard */ \"./modules/keyboard.js\");\n /* harmony import */ var _modules_uploader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/uploader */ \"./modules/uploader.js\");\n \n \n \n \n \n \n \n \n \n \n \n \n \n _core_quill__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n   'blots/block': _blots_block__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n   'blots/block/embed': _blots_block__WEBPACK_IMPORTED_MODULE_1__[\"BlockEmbed\"],\n   'blots/break': _blots_break__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n   'blots/container': _blots_container__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n   'blots/cursor': _blots_cursor__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n   'blots/embed': _blots_embed__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n   'blots/inline': _blots_inline__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n   'blots/scroll': _blots_scroll__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n   'blots/text': _blots_text__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n   'modules/clipboard': _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n   'modules/history': _modules_history__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n   'modules/keyboard': _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n   'modules/uploader': _modules_uploader__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n });\n /* harmony default export */ __webpack_exports__[\"default\"] = (_core_quill__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n \n /***/ }),\n \n /***/ \"./core/editor.js\":\n /*!************************!*\\\n   !*** ./core/editor.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clone */ \"./node_modules/clone/clone.js\");\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clone__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\");\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./selection */ \"./core/selection.js\");\n /* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../blots/cursor */ \"./blots/cursor.js\");\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../blots/break */ \"./blots/break.js\");\n /* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../blots/text */ \"./blots/text.js\");\n \n \n \n \n \n \n \n \n \n \n const ASCII = /^[ -~]*$/;\n \n class Editor {\n   constructor(scroll) {\n     this.scroll = scroll;\n     this.delta = this.getDelta();\n   }\n \n   applyDelta(delta) {\n     let consumeNextNewline = false;\n     this.scroll.update();\n     let scrollLength = this.scroll.length();\n     this.scroll.batchStart();\n     const normalizedDelta = normalizeDelta(delta);\n     normalizedDelta.reduce((index, op) => {\n       const length = op.retain || op.delete || op.insert.length || 1;\n       let attributes = op.attributes || {};\n \n       if (op.insert != null) {\n         if (typeof op.insert === 'string') {\n           let text = op.insert;\n \n           if (text.endsWith('\\n') && consumeNextNewline) {\n             consumeNextNewline = false;\n             text = text.slice(0, -1);\n           }\n \n           if ((index >= scrollLength || this.scroll.descendant(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"BlockEmbed\"], index)[0]) && !text.endsWith('\\n')) {\n             consumeNextNewline = true;\n           }\n \n           this.scroll.insertAt(index, text);\n           const [line, offset] = this.scroll.line(index);\n           let formats = extend__WEBPACK_IMPORTED_MODULE_2___default()({}, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"bubbleFormats\"])(line));\n \n           if (line instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[\"default\"]) {\n             const [leaf] = line.descendant(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], offset);\n             formats = extend__WEBPACK_IMPORTED_MODULE_2___default()(formats, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"bubbleFormats\"])(leaf));\n           }\n \n           attributes = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(formats, attributes) || {};\n         } else if (typeof op.insert === 'object') {\n           const key = Object.keys(op.insert)[0]; // There should only be one key\n \n           if (key == null) return index;\n           this.scroll.insertAt(index, key, op.insert[key]);\n         }\n \n         scrollLength += length;\n       }\n \n       Object.keys(attributes).forEach(name => {\n         this.scroll.formatAt(index, length, name, attributes[name]);\n       });\n       return index + length;\n     }, 0);\n     normalizedDelta.reduce((index, op) => {\n       if (typeof op.delete === 'number') {\n         this.scroll.deleteAt(index, op.delete);\n         return index;\n       }\n \n       return index + (op.retain || op.insert.length || 1);\n     }, 0);\n     this.scroll.batchEnd();\n     this.scroll.optimize();\n     return this.update(normalizedDelta);\n   }\n \n   deleteText(index, length) {\n     this.scroll.deleteAt(index, length);\n     return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).delete(length));\n   }\n \n   formatLine(index, length, formats = {}) {\n     this.scroll.update();\n     Object.keys(formats).forEach(format => {\n       this.scroll.lines(index, Math.max(length, 1)).forEach(line => {\n         line.format(format, formats[format]);\n       });\n     });\n     this.scroll.optimize();\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, clone__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n     return this.update(delta);\n   }\n \n   formatText(index, length, formats = {}) {\n     Object.keys(formats).forEach(format => {\n       this.scroll.formatAt(index, length, format, formats[format]);\n     });\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, clone__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n     return this.update(delta);\n   }\n \n   getContents(index, length) {\n     return this.delta.slice(index, index + length);\n   }\n \n   getDelta() {\n     return this.scroll.lines().reduce((delta, line) => {\n       return delta.concat(line.delta());\n     }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n   }\n \n   getFormat(index, length = 0) {\n     let lines = [];\n     let leaves = [];\n \n     if (length === 0) {\n       this.scroll.path(index).forEach(path => {\n         const [blot] = path;\n \n         if (blot instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[\"default\"]) {\n           lines.push(blot);\n         } else if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"]) {\n           leaves.push(blot);\n         }\n       });\n     } else {\n       lines = this.scroll.lines(index, length);\n       leaves = this.scroll.descendants(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], index, length);\n     }\n \n     const formatsArr = [lines, leaves].map(blots => {\n       if (blots.length === 0) return {};\n       let formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"bubbleFormats\"])(blots.shift());\n \n       while (Object.keys(formats).length > 0) {\n         const blot = blots.shift();\n         if (blot == null) return formats;\n         formats = combineFormats(Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"bubbleFormats\"])(blot), formats);\n       }\n \n       return formats;\n     });\n     return extend__WEBPACK_IMPORTED_MODULE_2___default.a.apply(extend__WEBPACK_IMPORTED_MODULE_2___default.a, formatsArr);\n   }\n \n   getHTML(index, length) {\n     const [line, lineOffset] = this.scroll.line(index);\n \n     if (line.length() >= lineOffset + length) {\n       return convertHTML(line, lineOffset, length, true);\n     }\n \n     return convertHTML(this.scroll, index, length, true);\n   }\n \n   getText(index, length) {\n     return this.getContents(index, length).filter(op => typeof op.insert === 'string').map(op => op.insert).join('');\n   }\n \n   insertEmbed(index, embed, value) {\n     this.scroll.insertAt(index, embed, value);\n     return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert({\n       [embed]: value\n     }));\n   }\n \n   insertText(index, text, formats = {}) {\n     text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n     this.scroll.insertAt(index, text);\n     Object.keys(formats).forEach(format => {\n       this.scroll.formatAt(index, text.length, format, formats[format]);\n     });\n     return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(text, clone__WEBPACK_IMPORTED_MODULE_0___default()(formats)));\n   }\n \n   isBlank() {\n     if (this.scroll.children.length === 0) return true;\n     if (this.scroll.children.length > 1) return false;\n     const block = this.scroll.children.head;\n     if (block.statics.blotName !== _blots_block__WEBPACK_IMPORTED_MODULE_7__[\"default\"].blotName) return false;\n     if (block.children.length > 1) return false;\n     return block.children.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n   }\n \n   removeFormat(index, length) {\n     const text = this.getText(index, length);\n     const [line, offset] = this.scroll.line(index + length);\n     let suffixLength = 0;\n     let suffix = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a();\n \n     if (line != null) {\n       suffixLength = line.length() - offset;\n       suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n     }\n \n     const contents = this.getContents(index, length + suffixLength);\n     const diff = contents.diff(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(text).concat(suffix));\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(diff);\n     return this.applyDelta(delta);\n   }\n \n   update(change, mutations = [], selectionInfo = undefined) {\n     const oldDelta = this.delta;\n \n     if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n       // Optimization for character changes\n       const textBlot = this.scroll.find(mutations[0].target);\n       const formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\"bubbleFormats\"])(textBlot);\n       const index = textBlot.offset(this.scroll);\n       const oldValue = mutations[0].oldValue.replace(_blots_cursor__WEBPACK_IMPORTED_MODULE_6__[\"default\"].CONTENTS, '');\n       const oldText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(oldValue);\n       const newText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(textBlot.value());\n       const relativeSelectionInfo = selectionInfo && {\n         oldRange: shiftRange(selectionInfo.oldRange, -index),\n         newRange: shiftRange(selectionInfo.newRange, -index)\n       };\n       const diffDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n       change = diffDelta.reduce((delta, op) => {\n         if (op.insert) {\n           return delta.insert(op.insert, formats);\n         }\n \n         return delta.push(op);\n       }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n       this.delta = oldDelta.compose(change);\n     } else {\n       this.delta = this.getDelta();\n \n       if (!change || !deep_equal__WEBPACK_IMPORTED_MODULE_1___default()(oldDelta.compose(change), this.delta)) {\n         change = oldDelta.diff(this.delta, selectionInfo);\n       }\n     }\n \n     return change;\n   }\n \n }\n \n function convertListHTML(items, lastIndent, types) {\n   if (items.length === 0) {\n     const [endTag] = getListType(types.pop());\n \n     if (lastIndent <= 0) {\n       return \"</li></\".concat(endTag, \">\");\n     }\n \n     return \"</li></\".concat(endTag, \">\").concat(convertListHTML([], lastIndent - 1, types));\n   }\n \n   const [{\n     child,\n     offset,\n     length,\n     indent,\n     type\n   }, ...rest] = items;\n   const [tag, attribute] = getListType(type);\n \n   if (indent > lastIndent) {\n     types.push(type);\n \n     if (indent === lastIndent + 1) {\n       return \"<\".concat(tag, \"><li\").concat(attribute, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n     }\n \n     return \"<\".concat(tag, \"><li>\").concat(convertListHTML(items, lastIndent + 1, types));\n   }\n \n   const previousType = types[types.length - 1];\n \n   if (indent === lastIndent && type === previousType) {\n     return \"</li><li\".concat(attribute, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n   }\n \n   const [endTag] = getListType(types.pop());\n   return \"</li></\".concat(endTag, \">\").concat(convertListHTML(items, lastIndent - 1, types));\n }\n \n function convertHTML(blot, index, length, isRoot = false) {\n   if (typeof blot.html === 'function') {\n     return blot.html(index, length);\n   }\n \n   if (blot instanceof _blots_text__WEBPACK_IMPORTED_MODULE_9__[\"default\"]) {\n     return Object(_blots_text__WEBPACK_IMPORTED_MODULE_9__[\"escapeText\"])(blot.value().slice(index, index + length));\n   }\n \n   if (blot.children) {\n     // TODO fix API\n     if (blot.statics.blotName === 'list-container') {\n       const items = [];\n       blot.children.forEachAt(index, length, (child, offset, childLength) => {\n         const formats = child.formats();\n         items.push({\n           child,\n           offset,\n           length: childLength,\n           indent: formats.indent || 0,\n           type: formats.list\n         });\n       });\n       return convertListHTML(items, -1, []);\n     }\n \n     const parts = [];\n     blot.children.forEachAt(index, length, (child, offset, childLength) => {\n       parts.push(convertHTML(child, offset, childLength));\n     });\n \n     if (isRoot || blot.statics.blotName === 'list') {\n       return parts.join('');\n     }\n \n     const {\n       outerHTML,\n       innerHTML\n     } = blot.domNode;\n     const [start, end] = outerHTML.split(\">\".concat(innerHTML, \"<\")); // TODO cleanup\n \n     if (start === '<table') {\n       return \"<table style=\\\"border: 1px solid #000;\\\">\".concat(parts.join(''), \"<\").concat(end);\n     }\n \n     return \"\".concat(start, \">\").concat(parts.join(''), \"<\").concat(end);\n   }\n \n   return blot.domNode.outerHTML;\n }\n \n function combineFormats(formats, combined) {\n   return Object.keys(combined).reduce((merged, name) => {\n     if (formats[name] == null) return merged;\n \n     if (combined[name] === formats[name]) {\n       merged[name] = combined[name];\n     } else if (Array.isArray(combined[name])) {\n       if (combined[name].indexOf(formats[name]) < 0) {\n         merged[name] = combined[name].concat([formats[name]]);\n       }\n     } else {\n       merged[name] = [combined[name], formats[name]];\n     }\n \n     return merged;\n   }, {});\n }\n \n function getListType(type) {\n   const tag = type === 'ordered' ? 'ol' : 'ul';\n \n   switch (type) {\n     case 'checked':\n       return [tag, ' data-list=\"checked\"'];\n \n     case 'unchecked':\n       return [tag, ' data-list=\"unchecked\"'];\n \n     default:\n       return [tag, ''];\n   }\n }\n \n function normalizeDelta(delta) {\n   return delta.reduce((normalizedDelta, op) => {\n     if (typeof op.insert === 'string') {\n       const text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n       return normalizedDelta.insert(text, op.attributes);\n     }\n \n     return normalizedDelta.push(op);\n   }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n }\n \n function shiftRange({\n   index,\n   length\n }, amount) {\n   return new _selection__WEBPACK_IMPORTED_MODULE_5__[\"Range\"](index + amount, length);\n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Editor);\n \n /***/ }),\n \n /***/ \"./core/emitter.js\":\n /*!*************************!*\\\n   !*** ./core/emitter.js ***!\n   \\*************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./core/logger.js\");\n /* harmony import */ var _shadow_selection_polyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shadow-selection-polyfill */ \"./core/shadow-selection-polyfill.js\");\n \n \n \n const debug = Object(_logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('quill:events');\n const EVENTS = [_shadow_selection_polyfill__WEBPACK_IMPORTED_MODULE_2__[\"SHADOW_SELECTIONCHANGE\"], 'mousedown', 'mouseup', 'click'];\n const EMITTERS = [];\n const supportsRootNode = ('getRootNode' in document);\n EVENTS.forEach(eventName => {\n   document.addEventListener(eventName, (...args) => {\n     EMITTERS.forEach(em => {\n       em.handleDOM(...args);\n     });\n   });\n });\n \n class Emitter extends eventemitter3__WEBPACK_IMPORTED_MODULE_0___default.a {\n   constructor() {\n     super();\n     this.listeners = {};\n     EMITTERS.push(this);\n     this.on('error', debug.error);\n   }\n \n   emit(...args) {\n     debug.log.call(debug, ...args);\n     super.emit(...args);\n   }\n \n   handleDOM(event, ...args) {\n     const target = event.composedPath ? event.composedPath()[0] : event.target;\n \n     const containsNode = (node, srcTarget) => {\n       if (!supportsRootNode || srcTarget.getRootNode() === document) {\n         return node.contains(srcTarget);\n       }\n \n       while (!node.contains(srcTarget)) {\n         const root = srcTarget.getRootNode();\n \n         if (!root || !root.host) {\n           return false;\n         }\n \n         srcTarget = root.host;\n       }\n \n       return true;\n     };\n \n     (this.listeners[event.type] || []).forEach(({\n       node,\n       handler\n     }) => {\n       if (target === node || containsNode(node, target)) {\n         handler(event, ...args);\n       }\n     });\n   }\n \n   listenDOM(eventName, node, handler) {\n     if (!this.listeners[eventName]) {\n       this.listeners[eventName] = [];\n     }\n \n     this.listeners[eventName].push({\n       node,\n       handler\n     });\n   }\n \n }\n \n Emitter.events = {\n   EDITOR_CHANGE: 'editor-change',\n   SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n   SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n   SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n   SCROLL_OPTIMIZE: 'scroll-optimize',\n   SCROLL_UPDATE: 'scroll-update',\n   SELECTION_CHANGE: 'selection-change',\n   TEXT_CHANGE: 'text-change'\n };\n Emitter.sources = {\n   API: 'api',\n   SILENT: 'silent',\n   USER: 'user'\n };\n /* harmony default export */ __webpack_exports__[\"default\"] = (Emitter);\n \n /***/ }),\n \n /***/ \"./core/instances.js\":\n /*!***************************!*\\\n   !*** ./core/instances.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony default export */ __webpack_exports__[\"default\"] = (new WeakMap());\n \n /***/ }),\n \n /***/ \"./core/logger.js\":\n /*!************************!*\\\n   !*** ./core/logger.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n const levels = ['error', 'warn', 'log', 'info'];\n let level = 'warn';\n \n function debug(method, ...args) {\n   if (levels.indexOf(method) <= levels.indexOf(level)) {\n     console[method](...args); // eslint-disable-line no-console\n   }\n }\n \n function namespace(ns) {\n   return levels.reduce((logger, method) => {\n     logger[method] = debug.bind(console, method, ns);\n     return logger;\n   }, {});\n }\n \n namespace.level = newLevel => {\n   level = newLevel;\n };\n \n debug.level = namespace.level;\n /* harmony default export */ __webpack_exports__[\"default\"] = (namespace);\n \n /***/ }),\n \n /***/ \"./core/module.js\":\n /*!************************!*\\\n   !*** ./core/module.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n class Module {\n   constructor(quill, options = {}) {\n     this.quill = quill;\n     this.options = options;\n   }\n \n }\n \n Module.DEFAULTS = {};\n /* harmony default export */ __webpack_exports__[\"default\"] = (Module);\n \n /***/ }),\n \n /***/ \"./core/quill.js\":\n /*!***********************!*\\\n   !*** ./core/quill.js ***!\n   \\***********************/\n /*! exports provided: globalRegistry, expandConfig, overload, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"globalRegistry\", function() { return globalRegistry; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expandConfig\", function() { return expandConfig; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"overload\", function() { return overload; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Quill; });\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editor */ \"./core/editor.js\");\n /* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emitter */ \"./core/emitter.js\");\n /* harmony import */ var _module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./module */ \"./core/module.js\");\n /* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./selection */ \"./core/selection.js\");\n /* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./instances */ \"./core/instances.js\");\n /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logger */ \"./core/logger.js\");\n /* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./theme */ \"./core/theme.js\");\n \n \n \n \n \n \n \n \n \n \n const debug = Object(_logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('quill');\n const globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"Registry\"]();\n parchment__WEBPACK_IMPORTED_MODULE_1__[\"ParentBlot\"].uiClass = 'ql-ui';\n \n class Quill {\n   static debug(limit) {\n     if (limit === true) {\n       limit = 'log';\n     }\n \n     _logger__WEBPACK_IMPORTED_MODULE_8__[\"default\"].level(limit);\n   }\n \n   static find(node) {\n     return _instances__WEBPACK_IMPORTED_MODULE_7__[\"default\"].get(node) || globalRegistry.find(node);\n   }\n \n   static import(name) {\n     if (this.imports[name] == null) {\n       debug.error(\"Cannot import \".concat(name, \". Are you sure it was registered?\"));\n     }\n \n     return this.imports[name];\n   }\n \n   static register(path, target, overwrite = false) {\n     if (typeof path !== 'string') {\n       const name = path.attrName || path.blotName;\n \n       if (typeof name === 'string') {\n         // register(Blot | Attributor, overwrite)\n         this.register(\"formats/\".concat(name), path, target);\n       } else {\n         Object.keys(path).forEach(key => {\n           this.register(key, path[key], target);\n         });\n       }\n     } else {\n       if (this.imports[path] != null && !overwrite) {\n         debug.warn(\"Overwriting \".concat(path, \" with\"), target);\n       }\n \n       this.imports[path] = target;\n \n       if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n         globalRegistry.register(target);\n       }\n \n       if (typeof target.register === 'function') {\n         target.register(globalRegistry);\n       }\n     }\n   }\n \n   constructor(container, options = {}) {\n     this.options = expandConfig(container, options);\n     this.container = this.options.container;\n \n     if (this.container == null) {\n       return debug.error('Invalid Quill container', container);\n     }\n \n     if (this.options.debug) {\n       Quill.debug(this.options.debug);\n     }\n \n     const html = this.container.innerHTML.trim();\n     this.container.classList.add('ql-container');\n     this.container.innerHTML = '';\n     _instances__WEBPACK_IMPORTED_MODULE_7__[\"default\"].set(this.container, this);\n     this.root = this.addContainer('ql-editor');\n     this.root.classList.add('ql-blank');\n     this.root.setAttribute('data-gramm', false);\n     this.scrollingContainer = this.options.scrollingContainer || this.root;\n     this.emitter = new _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n     const ScrollBlot = this.options.registry.query(parchment__WEBPACK_IMPORTED_MODULE_1__[\"ScrollBlot\"].blotName);\n     this.scroll = new ScrollBlot(this.options.registry, this.root, {\n       emitter: this.emitter\n     });\n     this.editor = new _editor__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this.scroll);\n     this.selection = new _selection__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this.scroll, this.emitter);\n     this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n \n     this.keyboard = this.theme.addModule('keyboard');\n     this.clipboard = this.theme.addModule('clipboard');\n     this.history = this.theme.addModule('history');\n     this.uploader = this.theme.addModule('uploader');\n     this.theme.init();\n     this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.EDITOR_CHANGE, type => {\n       if (type === _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.TEXT_CHANGE) {\n         this.root.classList.toggle('ql-blank', this.editor.isBlank());\n       }\n     });\n     this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.SCROLL_UPDATE, (source, mutations) => {\n       const oldRange = this.selection.lastRange;\n       const [newRange] = this.selection.getRange();\n       const selectionInfo = oldRange && newRange ? {\n         oldRange,\n         newRange\n       } : undefined;\n       modify.call(this, () => this.editor.update(null, mutations, selectionInfo), source);\n     });\n     const contents = this.clipboard.convert({\n       html: \"\".concat(html, \"<p><br></p>\"),\n       text: '\\n'\n     });\n     this.setContents(contents);\n     this.history.clear();\n \n     if (this.options.placeholder) {\n       this.root.setAttribute('data-placeholder', this.options.placeholder);\n     }\n \n     if (this.options.readOnly) {\n       this.disable();\n     }\n \n     this.allowReadOnlyEdits = false;\n   }\n \n   addContainer(container, refNode = null) {\n     if (typeof container === 'string') {\n       const className = container;\n       container = document.createElement('div');\n       container.classList.add(className);\n     }\n \n     this.container.insertBefore(container, refNode);\n     return container;\n   }\n \n   blur() {\n     this.selection.setRange(null);\n   }\n \n   deleteText(index, length, source) {\n     [index, length,, source] = overload(index, length, source);\n     return modify.call(this, () => {\n       return this.editor.deleteText(index, length);\n     }, source, index, -1 * length);\n   }\n \n   disable() {\n     this.enable(false);\n   }\n \n   editReadOnly(modifier) {\n     this.allowReadOnlyEdits = true;\n     const value = modifier();\n     this.allowReadOnlyEdits = false;\n     return value;\n   }\n \n   enable(enabled = true) {\n     this.scroll.enable(enabled);\n     this.container.classList.toggle('ql-disabled', !enabled);\n   }\n \n   focus() {\n     const {\n       scrollTop\n     } = this.scrollingContainer;\n     this.selection.focus();\n     this.scrollingContainer.scrollTop = scrollTop;\n     this.scrollIntoView();\n   }\n \n   format(name, value, source = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API) {\n     return modify.call(this, () => {\n       const range = this.getSelection(true);\n       let change = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n       if (range == null) return change;\n \n       if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK)) {\n         change = this.editor.formatLine(range.index, range.length, {\n           [name]: value\n         });\n       } else if (range.length === 0) {\n         this.selection.format(name, value);\n         return change;\n       } else {\n         change = this.editor.formatText(range.index, range.length, {\n           [name]: value\n         });\n       }\n \n       this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n       return change;\n     }, source);\n   }\n \n   formatLine(index, length, name, value, source) {\n     let formats; // eslint-disable-next-line prefer-const\n \n     [index, length, formats, source] = overload(index, length, name, value, source);\n     return modify.call(this, () => {\n       return this.editor.formatLine(index, length, formats);\n     }, source, index, 0);\n   }\n \n   formatText(index, length, name, value, source) {\n     let formats; // eslint-disable-next-line prefer-const\n \n     [index, length, formats, source] = overload(index, length, name, value, source);\n     return modify.call(this, () => {\n       return this.editor.formatText(index, length, formats);\n     }, source, index, 0);\n   }\n \n   getBounds(index, length = 0) {\n     let bounds;\n \n     if (typeof index === 'number') {\n       bounds = this.selection.getBounds(index, length);\n     } else {\n       bounds = this.selection.getBounds(index.index, index.length);\n     }\n \n     const containerBounds = this.container.getBoundingClientRect();\n     return {\n       bottom: bounds.bottom - containerBounds.top,\n       height: bounds.height,\n       left: bounds.left - containerBounds.left,\n       right: bounds.right - containerBounds.left,\n       top: bounds.top - containerBounds.top,\n       width: bounds.width\n     };\n   }\n \n   getContents(index = 0, length = this.getLength() - index) {\n     [index, length] = overload(index, length);\n     return this.editor.getContents(index, length);\n   }\n \n   getFormat(index = this.getSelection(true), length = 0) {\n     if (typeof index === 'number') {\n       return this.editor.getFormat(index, length);\n     }\n \n     return this.editor.getFormat(index.index, index.length);\n   }\n \n   getIndex(blot) {\n     return blot.offset(this.scroll);\n   }\n \n   getLength() {\n     return this.scroll.length();\n   }\n \n   getLeaf(index) {\n     return this.scroll.leaf(index);\n   }\n \n   getLine(index) {\n     return this.scroll.line(index);\n   }\n \n   getLines(index = 0, length = Number.MAX_VALUE) {\n     if (typeof index !== 'number') {\n       return this.scroll.lines(index.index, index.length);\n     }\n \n     return this.scroll.lines(index, length);\n   }\n \n   getModule(name) {\n     return this.theme.modules[name];\n   }\n \n   getSelection(focus = false) {\n     if (focus) this.focus();\n     this.update(); // Make sure we access getRange with editor in consistent state\n \n     return this.selection.getRange()[0];\n   }\n \n   getSemanticHTML(index = 0, length = this.getLength() - index) {\n     [index, length] = overload(index, length);\n     return this.editor.getHTML(index, length);\n   }\n \n   getText(index = 0, length = this.getLength() - index) {\n     [index, length] = overload(index, length);\n     return this.editor.getText(index, length);\n   }\n \n   hasFocus() {\n     return this.selection.hasFocus();\n   }\n \n   insertEmbed(index, embed, value, source = Quill.sources.API) {\n     return modify.call(this, () => {\n       return this.editor.insertEmbed(index, embed, value);\n     }, source, index);\n   }\n \n   insertText(index, text, name, value, source) {\n     let formats; // eslint-disable-next-line prefer-const\n \n     [index,, formats, source] = overload(index, 0, name, value, source);\n     return modify.call(this, () => {\n       return this.editor.insertText(index, text, formats);\n     }, source, index, text.length);\n   }\n \n   isEnabled() {\n     return this.scroll.isEnabled();\n   }\n \n   off(...args) {\n     return this.emitter.off(...args);\n   }\n \n   on(...args) {\n     return this.emitter.on(...args);\n   }\n \n   once(...args) {\n     return this.emitter.once(...args);\n   }\n \n   removeFormat(index, length, source) {\n     [index, length,, source] = overload(index, length, source);\n     return modify.call(this, () => {\n       return this.editor.removeFormat(index, length);\n     }, source, index);\n   }\n \n   scrollIntoView() {\n     this.selection.scrollIntoView(this.scrollingContainer);\n   }\n \n   setContents(delta, source = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API) {\n     return modify.call(this, () => {\n       delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n       const length = this.getLength();\n       const deleted = this.editor.deleteText(0, length);\n       const applied = this.editor.applyDelta(delta);\n       const lastOp = applied.ops[applied.ops.length - 1];\n \n       if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n         this.editor.deleteText(this.getLength() - 1, 1);\n         applied.delete(1);\n       }\n \n       return deleted.compose(applied);\n     }, source);\n   }\n \n   setSelection(index, length, source) {\n     if (index == null) {\n       this.selection.setRange(null, length || Quill.sources.API);\n     } else {\n       [index, length,, source] = overload(index, length, source);\n       this.selection.setRange(new _selection__WEBPACK_IMPORTED_MODULE_6__[\"Range\"](Math.max(0, index), length), source);\n \n       if (source !== _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT) {\n         this.selection.scrollIntoView(this.scrollingContainer);\n       }\n     }\n   }\n \n   setText(text, source = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API) {\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text);\n     return this.setContents(delta, source);\n   }\n \n   update(source = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER) {\n     const change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n \n     this.selection.update(source); // TODO this is usually undefined\n \n     return change;\n   }\n \n   updateContents(delta, source = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API) {\n     return modify.call(this, () => {\n       delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n       return this.editor.applyDelta(delta, source);\n     }, source, true);\n   }\n \n }\n \n Quill.DEFAULTS = {\n   bounds: null,\n   modules: {},\n   placeholder: '',\n   readOnly: false,\n   registry: globalRegistry,\n   scrollingContainer: null,\n   theme: 'default'\n };\n Quill.events = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events;\n Quill.sources = _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources; // eslint-disable-next-line no-undef\n \n Quill.version =  false ? undefined : \"2.0.0-dev.3\";\n Quill.imports = {\n   delta: quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a,\n   parchment: parchment__WEBPACK_IMPORTED_MODULE_1__,\n   'core/module': _module__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n   'core/theme': _theme__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n };\n \n function expandConfig(container, userConfig) {\n   userConfig = extend__WEBPACK_IMPORTED_MODULE_2___default()(true, {\n     container,\n     modules: {\n       clipboard: true,\n       keyboard: true,\n       history: true,\n       uploader: true\n     }\n   }, userConfig);\n \n   if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n     userConfig.theme = _theme__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n   } else {\n     userConfig.theme = Quill.import(\"themes/\".concat(userConfig.theme));\n \n     if (userConfig.theme == null) {\n       throw new Error(\"Invalid theme \".concat(userConfig.theme, \". Did you register it?\"));\n     }\n   }\n \n   const themeConfig = extend__WEBPACK_IMPORTED_MODULE_2___default()(true, {}, userConfig.theme.DEFAULTS);\n   [themeConfig, userConfig].forEach(config => {\n     config.modules = config.modules || {};\n     Object.keys(config.modules).forEach(module => {\n       if (config.modules[module] === true) {\n         config.modules[module] = {};\n       }\n     });\n   });\n   const moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n   const moduleConfig = moduleNames.reduce((config, name) => {\n     const moduleClass = Quill.import(\"modules/\".concat(name));\n \n     if (moduleClass == null) {\n       debug.error(\"Cannot load \".concat(name, \" module. Are you sure you registered it?\"));\n     } else {\n       config[name] = moduleClass.DEFAULTS || {};\n     }\n \n     return config;\n   }, {}); // Special case toolbar shorthand\n \n   if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n     userConfig.modules.toolbar = {\n       container: userConfig.modules.toolbar\n     };\n   }\n \n   userConfig = extend__WEBPACK_IMPORTED_MODULE_2___default()(true, {}, Quill.DEFAULTS, {\n     modules: moduleConfig\n   }, themeConfig, userConfig);\n   ['bounds', 'container', 'scrollingContainer'].forEach(key => {\n     if (typeof userConfig[key] === 'string') {\n       userConfig[key] = document.querySelector(userConfig[key]);\n     }\n   });\n   userConfig.modules = Object.keys(userConfig.modules).reduce((config, name) => {\n     if (userConfig.modules[name]) {\n       config[name] = userConfig.modules[name];\n     }\n \n     return config;\n   }, {});\n   return userConfig;\n } // Handle selection preservation and TEXT_CHANGE emission\n // common to modification APIs\n \n \n function modify(modifier, source, index, shift) {\n   if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER && !this.allowReadOnlyEdits) {\n     return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n   }\n \n   let range = index == null ? null : this.getSelection();\n   const oldDelta = this.editor.delta;\n   const change = modifier();\n \n   if (range != null) {\n     if (index === true) {\n       index = range.index; // eslint-disable-line prefer-destructuring\n     }\n \n     if (shift == null) {\n       range = shiftRange(range, change, source);\n     } else if (shift !== 0) {\n       range = shiftRange(range, index, shift, source);\n     }\n \n     this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n   }\n \n   if (change.length() > 0) {\n     const args = [_emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.TEXT_CHANGE, change, oldDelta, source];\n     this.emitter.emit(_emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.EDITOR_CHANGE, ...args);\n \n     if (source !== _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT) {\n       this.emitter.emit(...args);\n     }\n   }\n \n   return change;\n }\n \n function overload(index, length, name, value, source) {\n   let formats = {};\n \n   if (typeof index.index === 'number' && typeof index.length === 'number') {\n     // Allow for throwaway end (used by insertText/insertEmbed)\n     if (typeof length !== 'number') {\n       source = value;\n       value = name;\n       name = length;\n       length = index.length; // eslint-disable-line prefer-destructuring\n \n       index = index.index; // eslint-disable-line prefer-destructuring\n     } else {\n       length = index.length; // eslint-disable-line prefer-destructuring\n \n       index = index.index; // eslint-disable-line prefer-destructuring\n     }\n   } else if (typeof length !== 'number') {\n     source = value;\n     value = name;\n     name = length;\n     length = 0;\n   } // Handle format being object, two format name/value strings or excluded\n \n \n   if (typeof name === 'object') {\n     formats = name;\n     source = value;\n   } else if (typeof name === 'string') {\n     if (value != null) {\n       formats[name] = value;\n     } else {\n       source = name;\n     }\n   } // Handle optional source\n \n \n   source = source || _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n   return [index, length, formats, source];\n }\n \n function shiftRange(range, index, length, source) {\n   if (range == null) return null;\n   let start;\n   let end;\n \n   if (index instanceof quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a) {\n     [start, end] = [range.index, range.index + range.length].map(pos => index.transformPosition(pos, source !== _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER));\n   } else {\n     [start, end] = [range.index, range.index + range.length].map(pos => {\n       if (pos < index || pos === index && source === _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER) return pos;\n \n       if (length >= 0) {\n         return pos + length;\n       }\n \n       return Math.max(index, pos + length);\n     });\n   }\n \n   return new _selection__WEBPACK_IMPORTED_MODULE_6__[\"Range\"](start, end - start);\n }\n \n \n \n /***/ }),\n \n /***/ \"./core/selection.js\":\n /*!***************************!*\\\n   !*** ./core/selection.js ***!\n   \\***************************/\n /*! exports provided: Range, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Range\", function() { return Range; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Selection; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clone */ \"./node_modules/clone/clone.js\");\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(clone__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\");\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./core/emitter.js\");\n /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger */ \"./core/logger.js\");\n /* harmony import */ var _shadow_selection_polyfill__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shadow-selection-polyfill */ \"./core/shadow-selection-polyfill.js\");\n \n \n \n \n \n \n const debug = Object(_logger__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('quill:selection');\n \n class Range {\n   constructor(index, length = 0) {\n     this.index = index;\n     this.length = length;\n   }\n \n }\n \n class Selection {\n   constructor(scroll, emitter) {\n     this.emitter = emitter;\n     this.scroll = scroll;\n     this.composing = false;\n     this.mouseDown = false;\n     this.root = this.scroll.domNode;\n     this.rootDocument = this.root.getRootNode ? this.root.getRootNode() : document;\n     this.cursor = this.scroll.create('cursor', this); // savedRange is last non-null range\n \n     this.savedRange = new Range(0, 0);\n     this.lastRange = this.savedRange;\n     this.handleComposition();\n     this.handleDragging();\n     this.emitter.listenDOM(_shadow_selection_polyfill__WEBPACK_IMPORTED_MODULE_5__[\"SHADOW_SELECTIONCHANGE\"], document, () => {\n       if (!this.mouseDown && !this.composing) {\n         setTimeout(this.update.bind(this, _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER), 1);\n       }\n     });\n     this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_BEFORE_UPDATE, () => {\n       if (!this.hasFocus()) return;\n       const native = this.getNativeRange();\n       if (native == null) return;\n       if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n \n       this.emitter.once(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_UPDATE, () => {\n         try {\n           if (this.root.contains(native.start.node) && this.root.contains(native.end.node)) {\n             this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n           }\n \n           this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n         } catch (ignored) {// ignore\n         }\n       });\n     });\n     this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_OPTIMIZE, (mutations, context) => {\n       if (context.range) {\n         const {\n           startNode,\n           startOffset,\n           endNode,\n           endOffset\n         } = context.range;\n         this.setNativeRange(startNode, startOffset, endNode, endOffset);\n         this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n       }\n     });\n     this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n   }\n \n   handleComposition() {\n     this.root.addEventListener('compositionstart', () => {\n       this.composing = true;\n       this.scroll.batchStart();\n     });\n     this.root.addEventListener('compositionend', () => {\n       this.scroll.batchEnd();\n       this.composing = false;\n \n       if (this.cursor.parent) {\n         const range = this.cursor.restore();\n         if (!range) return;\n         setTimeout(() => {\n           this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n         }, 1);\n       }\n     });\n   }\n \n   handleDragging() {\n     this.emitter.listenDOM('mousedown', document.body, () => {\n       this.mouseDown = true;\n     });\n     this.emitter.listenDOM('mouseup', document.body, () => {\n       this.mouseDown = false;\n       this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER);\n     });\n   }\n \n   focus() {\n     if (this.hasFocus()) return;\n     this.root.focus();\n     this.setRange(this.savedRange);\n   }\n \n   format(format, value) {\n     this.scroll.update();\n     const nativeRange = this.getNativeRange();\n     if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK)) return;\n \n     if (nativeRange.start.node !== this.cursor.textNode) {\n       const blot = this.scroll.find(nativeRange.start.node, false);\n       if (blot == null) return; // TODO Give blot ability to not split\n \n       if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n         const after = blot.split(nativeRange.start.offset);\n         blot.parent.insertBefore(this.cursor, after);\n       } else {\n         blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n       }\n \n       this.cursor.attach();\n     }\n \n     this.cursor.format(format, value);\n     this.scroll.optimize();\n     this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n     this.update();\n   }\n \n   getBounds(index, length = 0) {\n     const scrollLength = this.scroll.length();\n     index = Math.min(index, scrollLength - 1);\n     length = Math.min(index + length, scrollLength - 1) - index;\n     let node;\n     let [leaf, offset] = this.scroll.leaf(index);\n     if (leaf == null) return null;\n     [node, offset] = leaf.position(offset, true);\n     const range = document.createRange();\n \n     if (length > 0) {\n       range.setStart(node, offset);\n       [leaf, offset] = this.scroll.leaf(index + length);\n       if (leaf == null) return null;\n       [node, offset] = leaf.position(offset, true);\n       range.setEnd(node, offset);\n       return range.getBoundingClientRect();\n     }\n \n     let side = 'left';\n     let rect;\n \n     if (node instanceof Text) {\n       if (offset < node.data.length) {\n         range.setStart(node, offset);\n         range.setEnd(node, offset + 1);\n       } else {\n         range.setStart(node, offset - 1);\n         range.setEnd(node, offset);\n         side = 'right';\n       }\n \n       rect = range.getBoundingClientRect();\n     } else {\n       rect = leaf.domNode.getBoundingClientRect();\n       if (offset > 0) side = 'right';\n     }\n \n     return {\n       bottom: rect.top + rect.height,\n       height: rect.height,\n       left: rect[side],\n       right: rect[side],\n       top: rect.top,\n       width: 0\n     };\n   }\n \n   getNativeRange() {\n     const nativeRange = Object(_shadow_selection_polyfill__WEBPACK_IMPORTED_MODULE_5__[\"getRange\"])(this.rootDocument);\n     if (nativeRange == null) return null;\n     const range = this.normalizeNative(nativeRange);\n     debug.info('getNativeRange', range);\n     return range;\n   }\n \n   getRange() {\n     const normalized = this.getNativeRange();\n     if (normalized == null) return [null, null];\n     const range = this.normalizedToRange(normalized);\n     return [range, normalized];\n   }\n \n   hasFocus() {\n     return this.rootDocument.activeElement === this.root;\n   }\n \n   normalizedToRange(range) {\n     const positions = [[range.start.node, range.start.offset]];\n \n     if (!range.native.collapsed) {\n       positions.push([range.end.node, range.end.offset]);\n     }\n \n     const indexes = positions.map(position => {\n       const [node, offset] = position;\n       const blot = this.scroll.find(node, true);\n       const index = blot.offset(this.scroll);\n \n       if (offset === 0) {\n         return index;\n       }\n \n       if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n         return index + blot.index(node, offset);\n       }\n \n       return index + blot.length();\n     });\n     const end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n     const start = Math.min(end, ...indexes);\n     return new Range(start, end - start);\n   }\n \n   normalizeNative(nativeRange) {\n     if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n       return null;\n     }\n \n     const range = {\n       start: {\n         node: nativeRange.startContainer,\n         offset: nativeRange.startOffset\n       },\n       end: {\n         node: nativeRange.endContainer,\n         offset: nativeRange.endOffset\n       },\n       native: nativeRange\n     };\n     [range.start, range.end].forEach(position => {\n       let {\n         node,\n         offset\n       } = position;\n \n       while (!(node instanceof Text) && node.childNodes.length > 0) {\n         if (node.childNodes.length > offset) {\n           node = node.childNodes[offset];\n           offset = 0;\n         } else if (node.childNodes.length === offset) {\n           node = node.lastChild;\n \n           if (node instanceof Text) {\n             offset = node.data.length;\n           } else if (node.childNodes.length > 0) {\n             // Container case\n             offset = node.childNodes.length;\n           } else {\n             // Embed case\n             offset = node.childNodes.length + 1;\n           }\n         } else {\n           break;\n         }\n       }\n \n       position.node = node;\n       position.offset = offset;\n     });\n     return range;\n   }\n \n   rangeToNative(range) {\n     const indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n     const args = [];\n     const scrollLength = this.scroll.length();\n     indexes.forEach((index, i) => {\n       index = Math.min(scrollLength - 1, index);\n       const [leaf, leafOffset] = this.scroll.leaf(index);\n       const [node, offset] = leaf.position(leafOffset, i !== 0);\n       args.push(node, offset);\n     });\n \n     if (args.length < 2) {\n       return args.concat(args);\n     }\n \n     return args;\n   }\n \n   scrollIntoView(scrollingContainer) {\n     const range = this.lastRange;\n     if (range == null) return;\n     const bounds = this.getBounds(range.index, range.length);\n     if (bounds == null) return;\n     const limit = this.scroll.length() - 1;\n     const [first] = this.scroll.line(Math.min(range.index, limit));\n     let last = first;\n \n     if (range.length > 0) {\n       [last] = this.scroll.line(Math.min(range.index + range.length, limit));\n     }\n \n     if (first == null || last == null) return;\n     const scrollBounds = scrollingContainer.getBoundingClientRect();\n \n     if (bounds.top < scrollBounds.top) {\n       scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n     } else if (bounds.bottom > scrollBounds.bottom) {\n       scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n     }\n   }\n \n   setNativeRange(startNode, startOffset, endNode = startNode, endOffset = startOffset, force = false) {\n     debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n \n     if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n       return;\n     }\n \n     const selection = typeof this.rootDocument.getSelection === 'function' ? this.rootDocument.getSelection() : document.getSelection();\n     if (selection == null) return;\n \n     if (startNode != null) {\n       if (!this.hasFocus()) this.root.focus();\n       const {\n         native\n       } = this.getNativeRange() || {};\n \n       if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n         if (startNode.tagName === 'BR') {\n           startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n           startNode = startNode.parentNode;\n         }\n \n         if (endNode.tagName === 'BR') {\n           endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n           endNode = endNode.parentNode;\n         }\n \n         const range = document.createRange();\n         range.setStart(startNode, startOffset);\n         range.setEnd(endNode, endOffset);\n         selection.removeAllRanges();\n         selection.addRange(range);\n       }\n     } else {\n       selection.removeAllRanges();\n       this.root.blur();\n     }\n   }\n \n   setRange(range, force = false, source = _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.API) {\n     if (typeof force === 'string') {\n       source = force;\n       force = false;\n     }\n \n     debug.info('setRange', range);\n \n     if (range != null) {\n       const args = this.rangeToNative(range);\n       this.setNativeRange(...args, force);\n     } else {\n       this.setNativeRange(null);\n     }\n \n     this.update(source);\n   }\n \n   update(source = _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER) {\n     const oldRange = this.lastRange;\n     const [lastRange, nativeRange] = this.getRange();\n     this.lastRange = lastRange;\n \n     if (this.lastRange != null) {\n       this.savedRange = this.lastRange;\n     }\n \n     if (!deep_equal__WEBPACK_IMPORTED_MODULE_2___default()(oldRange, this.lastRange)) {\n       if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n         const range = this.cursor.restore();\n \n         if (range) {\n           this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n         }\n       }\n \n       const args = [_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SELECTION_CHANGE, clone__WEBPACK_IMPORTED_MODULE_1___default()(this.lastRange), clone__WEBPACK_IMPORTED_MODULE_1___default()(oldRange), source];\n       this.emitter.emit(_emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.EDITOR_CHANGE, ...args);\n \n       if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT) {\n         this.emitter.emit(...args);\n       }\n     }\n   }\n \n }\n \n function contains(parent, descendant) {\n   try {\n     // Firefox inserts inaccessible nodes around video elements\n     descendant.parentNode; // eslint-disable-line no-unused-expressions\n   } catch (e) {\n     return false;\n   }\n \n   return parent.contains(descendant);\n }\n \n \n \n /***/ }),\n \n /***/ \"./core/shadow-selection-polyfill.js\":\n /*!*******************************************!*\\\n   !*** ./core/shadow-selection-polyfill.js ***!\n   \\*******************************************/\n /*! exports provided: SHADOW_SELECTIONCHANGE, getRange, internalGetShadowSelection */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHADOW_SELECTIONCHANGE\", function() { return SHADOW_SELECTIONCHANGE; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRange\", function() { return getRange; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"internalGetShadowSelection\", function() { return internalGetShadowSelection; });\n /* eslint-disable no-cond-assign */\n \n /* eslint-disable no-plusplus */\n \n /**\n  * Copyright 2018 Google LLC\n  *\n  * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n  * use this file except in compliance with the License. You may obtain a copy of\n  * the License at\n  *\n  *     http://www.apache.org/licenses/LICENSE-2.0\n  *\n  * Unless required by applicable law or agreed to in writing, software\n  * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n  * License for the specific language governing permissions and limitations under\n  * the License.\n  */\n // NOTE: copied from https://github.com/GoogleChromeLabs/shadow-selection-polyfill\n const SHADOW_SELECTIONCHANGE = '-shadow-selectionchange';\n const hasShadow = 'attachShadow' in Element.prototype && 'getRootNode' in Element.prototype;\n const hasSelection = !!(hasShadow && document.createElement('div').attachShadow({\n   mode: 'open'\n }).getSelection);\n const hasShady = window.ShadyDOM && window.ShadyDOM.inUse;\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n const useDocument = !hasShadow || hasShady || !hasSelection && !isSafari;\n const validNodeTypes = [Node.ELEMENT_NODE, Node.TEXT_NODE, Node.DOCUMENT_FRAGMENT_NODE];\n \n function isValidNode(node) {\n   return validNodeTypes.includes(node.nodeType);\n }\n \n function findNode(s, parentNode, isLeft) {\n   const nodes = parentNode.childNodes || parentNode.children;\n \n   if (!nodes) {\n     return parentNode; // found it, probably text\n   }\n \n   for (let i = 0; i < nodes.length; ++i) {\n     const j = isLeft ? i : nodes.length - 1 - i;\n     const childNode = nodes[j];\n \n     if (!isValidNode(childNode)) {\n       continue; // eslint-disable-line no-continue\n     }\n \n     if (s.containsNode(childNode, true)) {\n       if (s.containsNode(childNode, false)) {\n         return childNode;\n       }\n \n       return findNode(s, childNode, isLeft);\n     }\n   }\n \n   return parentNode;\n }\n /**\n  * @param {function(!Event)} fn to add to selectionchange internals\n  */\n \n \n const addInternalListener = (() => {\n   if (hasSelection || useDocument) {\n     // getSelection exists or document API can be used\n     document.addEventListener('selectionchange', () => {\n       document.dispatchEvent(new CustomEvent(SHADOW_SELECTIONCHANGE));\n     });\n     return () => {};\n   }\n \n   let withinInternals = false;\n   const handlers = [];\n   document.addEventListener('selectionchange', ev => {\n     if (withinInternals) {\n       return;\n     }\n \n     document.dispatchEvent(new CustomEvent(SHADOW_SELECTIONCHANGE));\n     withinInternals = true;\n     window.setTimeout(() => {\n       withinInternals = false;\n     }, 2); // FIXME: should be > 1 to prevent infinite Selection.update() loop\n \n     handlers.forEach(fn => fn(ev));\n   });\n   return fn => handlers.push(fn);\n })();\n \n let wasCaret = false;\n let resolveTask = null;\n addInternalListener(() => {\n   const s = window.getSelection();\n \n   if (s.type === 'Caret') {\n     wasCaret = true;\n   } else if (wasCaret && !resolveTask) {\n     resolveTask = Promise.resolve(true).then(() => {\n       wasCaret = false;\n       resolveTask = null;\n     });\n   }\n });\n /**\n  * @param {!Selection} s the window selection to use\n  * @param {!Node} node the node to walk from\n  * @param {boolean} walkForward should this walk in natural direction\n  * @return {boolean} whether the selection contains the following node (even partially)\n  */\n \n function containsNextElement(s, node, walkForward) {\n   const start = node;\n \n   while (node = walkFromNode(node, walkForward)) {\n     // eslint-disable-line no-cond-assign\n     // walking (left) can contain our own parent, which we don't want\n     if (!node.contains(start)) {\n       break;\n     }\n   }\n \n   if (!node) {\n     return false;\n   } // we look for Element as .containsNode says true for _every_ text node, and we only care about\n   // elements themselves\n \n \n   return node instanceof Element && s.containsNode(node, true);\n }\n /**\n  * @param {!Selection} s the window selection to use\n  * @param {!Node} leftNode the left node\n  * @param {!Node} rightNode the right node\n  * @return {boolean|undefined} whether this has natural direction\n  */\n \n \n function getSelectionDirection(s, leftNode, rightNode) {\n   if (s.type !== 'Range') {\n     return undefined; // no direction\n   }\n \n   const measure = () => s.toString().length;\n \n   const initialSize = measure();\n \n   if (initialSize === 1 && wasCaret && leftNode === rightNode) {\n     // nb. We need to reset a single selection as Safari _always_ tells us the cursor was dragged\n     // left to right (maybe RTL on those devices).\n     // To be fair, Chrome has the same bug.\n     s.extend(leftNode, 0);\n     s.collapseToEnd();\n     return undefined;\n   }\n \n   let updatedSize; // Try extending forward and seeing what happens.\n \n   s.modify('extend', 'forward', 'character');\n   updatedSize = measure();\n \n   if (updatedSize > initialSize || containsNextElement(s, rightNode, true)) {\n     s.modify('extend', 'backward', 'character');\n     return true;\n   }\n \n   if (updatedSize < initialSize || !s.containsNode(leftNode)) {\n     s.modify('extend', 'backward', 'character');\n     return false;\n   } // Maybe we were at the end of something. Extend backwards.\n   // TODO(samthor): We seem to be able to get away without the 'backwards' case.\n \n \n   s.modify('extend', 'backward', 'character');\n   updatedSize = measure();\n \n   if (updatedSize > initialSize || containsNextElement(s, leftNode, false)) {\n     s.modify('extend', 'forward', 'character');\n     return false;\n   }\n \n   if (updatedSize < initialSize || !s.containsNode(rightNode)) {\n     s.modify('extend', 'forward', 'character');\n     return true;\n   } // This is likely a select-all.\n \n \n   return undefined;\n }\n /**\n  * Returns the next valid node (element or text). This is needed as Safari doesn't support\n  * TreeWalker inside Shadow DOM. Don't escape shadow roots.\n  *\n  * @param {!Node} node to start from\n  * @param {boolean} walkForward should this walk in natural direction\n  * @return {Node} node found, if any\n  */\n \n \n function walkFromNode(node, walkForward) {\n   if (!walkForward) {\n     return node.previousSibling || node.parentNode || null;\n   }\n \n   while (node) {\n     if (node.nextSibling) {\n       return node.nextSibling;\n     }\n \n     node = node.parentNode;\n   }\n \n   return null;\n }\n /**\n  * @param {!Node} node to check for initial space\n  * @return {number} count of initial space\n  */\n \n \n function initialSpace(node) {\n   if (node.nodeType !== Node.TEXT_NODE) {\n     return 0;\n   }\n \n   return /^\\s*/.exec(node.textContent)[0].length;\n }\n /**\n  * @param {!Node} node to check for trailing space\n  * @return {number} count of ignored trailing space\n  */\n \n \n function ignoredTrailingSpace(node) {\n   if (node.nodeType !== Node.TEXT_NODE) {\n     return 0;\n   }\n \n   const trailingSpaceCount = /\\s*$/.exec(node.textContent)[0].length;\n \n   if (!trailingSpaceCount) {\n     return 0;\n   }\n \n   return trailingSpaceCount - 1; // always allow single last\n }\n \n const cachedRange = new Map();\n function getRange(root) {\n   if (hasSelection || useDocument) {\n     const s = (useDocument ? document : root).getSelection();\n     return s.rangeCount ? s.getRangeAt(0) : null;\n   }\n \n   const thisFrame = cachedRange.get(root);\n \n   if (thisFrame) {\n     return thisFrame;\n   }\n \n   const result = internalGetShadowSelection(root);\n   cachedRange.set(root, result.range);\n   window.setTimeout(() => {\n     cachedRange.delete(root);\n   }, 0);\n   return result.range;\n }\n const fakeSelectionNode = document.createTextNode('');\n function internalGetShadowSelection(root) {\n   const range = document.createRange();\n   const s = window.getSelection();\n \n   if (!s.containsNode(root.host, true)) {\n     return {\n       range: null,\n       mode: 'none'\n     };\n   } // TODO: inserting fake nodes isn't ideal, but containsNode doesn't work on nearby adjacent\n   // text nodes (in fact it returns true for all text nodes on the page?!).\n   // insert a fake 'before' node to see if it's selected\n \n \n   root.insertBefore(fakeSelectionNode, root.childNodes[0]);\n   const includesBeforeRoot = s.containsNode(fakeSelectionNode);\n   fakeSelectionNode.remove();\n \n   if (includesBeforeRoot) {\n     return {\n       range: null,\n       mode: 'outside-before'\n     };\n   } // insert a fake 'after' node to see if it's selected\n \n \n   root.appendChild(fakeSelectionNode);\n   const includesAfterRoot = s.containsNode(fakeSelectionNode);\n   fakeSelectionNode.remove();\n \n   if (includesAfterRoot) {\n     return {\n       range: null,\n       mode: 'outside-after'\n     };\n   }\n \n   const measure = () => s.toString().length;\n \n   if (!(s.type === 'Caret' || s.type === 'Range')) {\n     throw new TypeError(\"unexpected type: \".concat(s.type));\n   }\n \n   const leftNode = findNode(s, root, true);\n   let rightNode;\n   let isNaturalDirection;\n \n   if (s.type === 'Range') {\n     rightNode = findNode(s, root, false); // get right node here _before_ getSelectionDirection\n \n     isNaturalDirection = getSelectionDirection(s, leftNode, rightNode); // isNaturalDirection means \"going right\"\n   }\n \n   if (s.type === 'Caret') {\n     // we might transition to being a caret, so don't check initial value\n     s.extend(leftNode, 0);\n     const at = measure();\n     s.collapseToEnd();\n     range.setStart(leftNode, at);\n     range.setEnd(leftNode, at);\n     return {\n       range,\n       mode: 'caret'\n     };\n   }\n \n   if (isNaturalDirection === undefined) {\n     if (s.type !== 'Range') {\n       throw new TypeError(\"unexpected type: \".concat(s.type));\n     } // This occurs when we can't move because we can't extend left or right to measure the\n     // direction we're moving in. Good news though: we don't need to _change_ the selection\n     // to measure it, so just return immediately.\n \n \n     range.setStart(leftNode, 0);\n     range.setEnd(rightNode, rightNode.length);\n     return {\n       range,\n       mode: 'all'\n     };\n   }\n \n   const size = measure();\n   let offsetLeft;\n   let offsetRight; // only one newline/space char is cared about\n \n   const validRightLength = rightNode.length - ignoredTrailingSpace(rightNode);\n \n   if (isNaturalDirection) {\n     // walk in the opposite direction first\n     s.extend(leftNode, 0);\n     offsetLeft = measure() + initialSpace(leftNode); // measure doesn't include initial space\n     // then in our actual direction\n \n     s.extend(rightNode, validRightLength);\n     offsetRight = validRightLength - (measure() - size); // then revert to the original position\n \n     s.extend(rightNode, offsetRight);\n   } else {\n     // walk in the opposite direction first\n     s.extend(rightNode, validRightLength);\n     offsetRight = validRightLength - measure(); // then in our actual direction\n \n     s.extend(leftNode, 0);\n     offsetLeft = measure() - size + initialSpace(leftNode); // doesn't include initial space\n     // then revert to the original position\n \n     s.extend(leftNode, offsetLeft);\n   }\n \n   range.setStart(leftNode, offsetLeft);\n   range.setEnd(rightNode, offsetRight);\n   return {\n     mode: isNaturalDirection ? 'right' : 'left',\n     range\n   };\n }\n \n /***/ }),\n \n /***/ \"./core/theme.js\":\n /*!***********************!*\\\n   !*** ./core/theme.js ***!\n   \\***********************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n class Theme {\n   constructor(quill, options) {\n     this.quill = quill;\n     this.options = options;\n     this.modules = {};\n   }\n \n   init() {\n     Object.keys(this.options.modules).forEach(name => {\n       if (this.modules[name] == null) {\n         this.addModule(name);\n       }\n     });\n   }\n \n   addModule(name) {\n     const ModuleClass = this.quill.constructor.import(\"modules/\".concat(name));\n     this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n     return this.modules[name];\n   }\n \n }\n \n Theme.DEFAULTS = {\n   modules: {}\n };\n Theme.themes = {\n   default: Theme\n };\n /* harmony default export */ __webpack_exports__[\"default\"] = (Theme);\n \n /***/ }),\n \n /***/ \"./formats/align.js\":\n /*!**************************!*\\\n   !*** ./formats/align.js ***!\n   \\**************************/\n /*! exports provided: AlignAttribute, AlignClass, AlignStyle */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AlignAttribute\", function() { return AlignAttribute; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AlignClass\", function() { return AlignClass; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AlignStyle\", function() { return AlignStyle; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n const config = {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n   whitelist: ['right', 'center', 'justify']\n };\n const AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('align', 'align', config);\n const AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('align', 'ql-align', config);\n const AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('align', 'text-align', config);\n \n \n /***/ }),\n \n /***/ \"./formats/background.js\":\n /*!*******************************!*\\\n   !*** ./formats/background.js ***!\n   \\*******************************/\n /*! exports provided: BackgroundClass, BackgroundStyle */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BackgroundClass\", function() { return BackgroundClass; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BackgroundStyle\", function() { return BackgroundStyle; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ \"./formats/color.js\");\n \n \n const BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('background', 'ql-bg', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n const BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__[\"ColorAttributor\"]('background', 'background-color', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n \n \n /***/ }),\n \n /***/ \"./formats/blockquote.js\":\n /*!*******************************!*\\\n   !*** ./formats/blockquote.js ***!\n   \\*******************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n \n \n class Blockquote extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {}\n \n Blockquote.blotName = 'blockquote';\n Blockquote.tagName = 'blockquote';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Blockquote);\n \n /***/ }),\n \n /***/ \"./formats/bold.js\":\n /*!*************************!*\\\n   !*** ./formats/bold.js ***!\n   \\*************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n \n \n class Bold extends _blots_inline__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create() {\n     return super.create();\n   }\n \n   static formats() {\n     return true;\n   }\n \n   optimize(context) {\n     super.optimize(context);\n \n     if (this.domNode.tagName !== this.statics.tagName[0]) {\n       this.replaceWith(this.statics.blotName);\n     }\n   }\n \n }\n \n Bold.blotName = 'bold';\n Bold.tagName = ['STRONG', 'B'];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Bold);\n \n /***/ }),\n \n /***/ \"./formats/code.js\":\n /*!*************************!*\\\n   !*** ./formats/code.js ***!\n   \\*************************/\n /*! exports provided: Code, CodeBlockContainer, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Code\", function() { return Code; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CodeBlockContainer\", function() { return CodeBlockContainer; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CodeBlock; });\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/break */ \"./blots/break.js\");\n /* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blots/cursor */ \"./blots/cursor.js\");\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n /* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../blots/text */ \"./blots/text.js\");\n /* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../blots/container */ \"./blots/container.js\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n \n \n \n \n \n \n \n \n class CodeBlockContainer extends _blots_container__WEBPACK_IMPORTED_MODULE_5__[\"default\"] {\n   static create(value) {\n     const domNode = super.create(value);\n     domNode.setAttribute('spellcheck', false);\n     return domNode;\n   }\n \n   html(index, length) {\n     const text = this.children.map(child => child.domNode.innerText).join('\\n').slice(index, index + length);\n     return \"<pre>\".concat(Object(_blots_text__WEBPACK_IMPORTED_MODULE_4__[\"escapeText\"])(text), \"</pre>\");\n   }\n \n }\n \n class CodeBlock extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static register() {\n     _core_quill__WEBPACK_IMPORTED_MODULE_6__[\"default\"].register(CodeBlockContainer);\n   }\n \n }\n \n class Code extends _blots_inline__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {}\n \n Code.blotName = 'code';\n Code.tagName = 'CODE';\n CodeBlock.blotName = 'code-block';\n CodeBlock.className = 'ql-code-block';\n CodeBlock.tagName = 'DIV';\n CodeBlockContainer.blotName = 'code-block-container';\n CodeBlockContainer.className = 'ql-code-block-container';\n CodeBlockContainer.tagName = 'DIV';\n CodeBlockContainer.allowedChildren = [CodeBlock];\n CodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _blots_break__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _blots_cursor__WEBPACK_IMPORTED_MODULE_2__[\"default\"]];\n CodeBlock.requiredContainer = CodeBlockContainer;\n CodeBlock.TAB = '  ';\n \n \n /***/ }),\n \n /***/ \"./formats/color.js\":\n /*!**************************!*\\\n   !*** ./formats/color.js ***!\n   \\**************************/\n /*! exports provided: ColorAttributor, ColorClass, ColorStyle */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColorAttributor\", function() { return ColorAttributor; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColorClass\", function() { return ColorClass; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColorStyle\", function() { return ColorStyle; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n \n class ColorAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"] {\n   value(domNode) {\n     let value = super.value(domNode);\n     if (!value.startsWith('rgb(')) return value;\n     value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n     const hex = value.split(',').map(component => \"00\".concat(parseInt(component, 10).toString(16)).slice(-2)).join('');\n     return \"#\".concat(hex);\n   }\n \n }\n \n const ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('color', 'ql-color', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n const ColorStyle = new ColorAttributor('color', 'color', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n \n \n /***/ }),\n \n /***/ \"./formats/direction.js\":\n /*!******************************!*\\\n   !*** ./formats/direction.js ***!\n   \\******************************/\n /*! exports provided: DirectionAttribute, DirectionClass, DirectionStyle */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DirectionAttribute\", function() { return DirectionAttribute; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DirectionClass\", function() { return DirectionClass; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DirectionStyle\", function() { return DirectionStyle; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n const config = {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n   whitelist: ['rtl']\n };\n const DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('direction', 'dir', config);\n const DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('direction', 'ql-direction', config);\n const DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('direction', 'direction', config);\n \n \n /***/ }),\n \n /***/ \"./formats/font.js\":\n /*!*************************!*\\\n   !*** ./formats/font.js ***!\n   \\*************************/\n /*! exports provided: FontStyle, FontClass */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FontStyle\", function() { return FontStyle; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FontClass\", function() { return FontClass; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n const config = {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n   whitelist: ['serif', 'monospace']\n };\n const FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('font', 'ql-font', config);\n \n class FontStyleAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"] {\n   value(node) {\n     return super.value(node).replace(/[\"']/g, '');\n   }\n \n }\n \n const FontStyle = new FontStyleAttributor('font', 'font-family', config);\n \n \n /***/ }),\n \n /***/ \"./formats/formula.js\":\n /*!****************************!*\\\n   !*** ./formats/formula.js ***!\n   \\****************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_embed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/embed */ \"./blots/embed.js\");\n \n \n class Formula extends _blots_embed__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create(value) {\n     if (window.katex == null) {\n       throw new Error('Formula module requires KaTeX.');\n     }\n \n     const node = super.create(value);\n \n     if (typeof value === 'string') {\n       window.katex.render(value, node, {\n         throwOnError: false,\n         errorColor: '#f00'\n       });\n       node.setAttribute('data-value', value);\n     }\n \n     return node;\n   }\n \n   static value(domNode) {\n     return domNode.getAttribute('data-value');\n   }\n \n   html() {\n     const {\n       formula\n     } = this.value();\n     return \"<span>\".concat(formula, \"</span>\");\n   }\n \n }\n \n Formula.blotName = 'formula';\n Formula.className = 'ql-formula';\n Formula.tagName = 'SPAN';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Formula);\n \n /***/ }),\n \n /***/ \"./formats/header.js\":\n /*!***************************!*\\\n   !*** ./formats/header.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n \n \n class Header extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static formats(domNode) {\n     return this.tagName.indexOf(domNode.tagName) + 1;\n   }\n \n }\n \n Header.blotName = 'header';\n Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Header);\n \n /***/ }),\n \n /***/ \"./formats/image.js\":\n /*!**************************!*\\\n   !*** ./formats/image.js ***!\n   \\**************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./link */ \"./formats/link.js\");\n \n \n const ATTRIBUTES = ['alt', 'height', 'width'];\n \n class Image extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"] {\n   static create(value) {\n     const node = super.create(value);\n \n     if (typeof value === 'string') {\n       node.setAttribute('src', this.sanitize(value));\n     }\n \n     return node;\n   }\n \n   static formats(domNode) {\n     return ATTRIBUTES.reduce((formats, attribute) => {\n       if (domNode.hasAttribute(attribute)) {\n         formats[attribute] = domNode.getAttribute(attribute);\n       }\n \n       return formats;\n     }, {});\n   }\n \n   static match(url) {\n     return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n   }\n \n   static register() {\n     if (/Firefox/i.test(navigator.userAgent)) {\n       setTimeout(() => {\n         // Disable image resizing in Firefox\n         document.execCommand('enableObjectResizing', false, false);\n       }, 1);\n     }\n   }\n \n   static sanitize(url) {\n     return Object(_link__WEBPACK_IMPORTED_MODULE_1__[\"sanitize\"])(url, ['http', 'https', 'data']) ? url : '//:0';\n   }\n \n   static value(domNode) {\n     return domNode.getAttribute('src');\n   }\n \n   format(name, value) {\n     if (ATTRIBUTES.indexOf(name) > -1) {\n       if (value) {\n         this.domNode.setAttribute(name, value);\n       } else {\n         this.domNode.removeAttribute(name);\n       }\n     } else {\n       super.format(name, value);\n     }\n   }\n \n }\n \n Image.blotName = 'image';\n Image.tagName = 'IMG';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Image);\n \n /***/ }),\n \n /***/ \"./formats/indent.js\":\n /*!***************************!*\\\n   !*** ./formats/indent.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n \n class IndentAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"] {\n   add(node, value) {\n     if (value === '+1' || value === '-1') {\n       const indent = this.value(node) || 0;\n       value = value === '+1' ? indent + 1 : indent - 1;\n     }\n \n     if (value === 0) {\n       this.remove(node);\n       return true;\n     }\n \n     return super.add(node, value);\n   }\n \n   canAdd(node, value) {\n     return super.canAdd(node, value) || super.canAdd(node, parseInt(value, 10));\n   }\n \n   value(node) {\n     return parseInt(super.value(node), 10) || undefined; // Don't return NaN\n   }\n \n }\n \n const IndentClass = new IndentAttributor('indent', 'ql-indent', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n   whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n });\n /* harmony default export */ __webpack_exports__[\"default\"] = (IndentClass);\n \n /***/ }),\n \n /***/ \"./formats/italic.js\":\n /*!***************************!*\\\n   !*** ./formats/italic.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _bold__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bold */ \"./formats/bold.js\");\n \n \n class Italic extends _bold__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {}\n \n Italic.blotName = 'italic';\n Italic.tagName = ['EM', 'I'];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Italic);\n \n /***/ }),\n \n /***/ \"./formats/link.js\":\n /*!*************************!*\\\n   !*** ./formats/link.js ***!\n   \\*************************/\n /*! exports provided: default, sanitize */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Link; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sanitize\", function() { return sanitize; });\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n \n \n class Link extends _blots_inline__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create(value) {\n     const node = super.create(value);\n     node.setAttribute('href', this.sanitize(value));\n     node.setAttribute('rel', 'noopener noreferrer');\n     node.setAttribute('target', '_blank');\n     return node;\n   }\n \n   static formats(domNode) {\n     return domNode.getAttribute('href');\n   }\n \n   static sanitize(url) {\n     return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n   }\n \n   format(name, value) {\n     if (name !== this.statics.blotName || !value) {\n       super.format(name, value);\n     } else {\n       this.domNode.setAttribute('href', this.constructor.sanitize(value));\n     }\n   }\n \n }\n \n Link.blotName = 'link';\n Link.tagName = 'A';\n Link.SANITIZED_URL = 'about:blank';\n Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n \n function sanitize(url, protocols) {\n   const anchor = document.createElement('a');\n   anchor.href = url;\n   const protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n   return protocols.indexOf(protocol) > -1;\n }\n \n \n \n /***/ }),\n \n /***/ \"./formats/list.js\":\n /*!*************************!*\\\n   !*** ./formats/list.js ***!\n   \\*************************/\n /*! exports provided: ListContainer, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ListContainer\", function() { return ListContainer; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ListItem; });\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/container */ \"./blots/container.js\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n \n \n \n \n class ListContainer extends _blots_container__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {}\n \n ListContainer.blotName = 'list-container';\n ListContainer.tagName = 'OL';\n \n class ListItem extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create(value) {\n     const node = super.create();\n     node.setAttribute('data-list', value);\n     return node;\n   }\n \n   static formats(domNode) {\n     return domNode.getAttribute('data-list') || undefined;\n   }\n \n   static register() {\n     _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(ListContainer);\n   }\n \n   constructor(scroll, domNode) {\n     super(scroll, domNode);\n     const ui = domNode.ownerDocument.createElement('span');\n \n     const listEventHandler = e => {\n       if (!scroll.isEnabled()) return;\n       const format = this.statics.formats(domNode, scroll);\n \n       if (format === 'checked') {\n         this.format('list', 'unchecked');\n         e.preventDefault();\n       } else if (format === 'unchecked') {\n         this.format('list', 'checked');\n         e.preventDefault();\n       }\n     };\n \n     ui.addEventListener('mousedown', listEventHandler);\n     ui.addEventListener('touchstart', listEventHandler);\n     this.attachUI(ui);\n   }\n \n   format(name, value) {\n     if (name === this.statics.blotName && value) {\n       this.domNode.setAttribute('data-list', value);\n     } else {\n       super.format(name, value);\n     }\n   }\n \n }\n \n ListItem.blotName = 'list';\n ListItem.tagName = 'LI';\n ListContainer.allowedChildren = [ListItem];\n ListItem.requiredContainer = ListContainer;\n \n \n /***/ }),\n \n /***/ \"./formats/script.js\":\n /*!***************************!*\\\n   !*** ./formats/script.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n \n \n class Script extends _blots_inline__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create(value) {\n     if (value === 'super') {\n       return document.createElement('sup');\n     }\n \n     if (value === 'sub') {\n       return document.createElement('sub');\n     }\n \n     return super.create(value);\n   }\n \n   static formats(domNode) {\n     if (domNode.tagName === 'SUB') return 'sub';\n     if (domNode.tagName === 'SUP') return 'super';\n     return undefined;\n   }\n \n }\n \n Script.blotName = 'script';\n Script.tagName = ['SUB', 'SUP'];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Script);\n \n /***/ }),\n \n /***/ \"./formats/size.js\":\n /*!*************************!*\\\n   !*** ./formats/size.js ***!\n   \\*************************/\n /*! exports provided: SizeClass, SizeStyle */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SizeClass\", function() { return SizeClass; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SizeStyle\", function() { return SizeStyle; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n \n const SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('size', 'ql-size', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n   whitelist: ['small', 'large', 'huge']\n });\n const SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('size', 'font-size', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n   whitelist: ['10px', '18px', '32px']\n });\n \n \n /***/ }),\n \n /***/ \"./formats/strike.js\":\n /*!***************************!*\\\n   !*** ./formats/strike.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _bold__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bold */ \"./formats/bold.js\");\n \n \n class Strike extends _bold__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {}\n \n Strike.blotName = 'strike';\n Strike.tagName = ['S', 'STRIKE'];\n /* harmony default export */ __webpack_exports__[\"default\"] = (Strike);\n \n /***/ }),\n \n /***/ \"./formats/table.js\":\n /*!**************************!*\\\n   !*** ./formats/table.js ***!\n   \\**************************/\n /*! exports provided: TableCell, TableRow, TableBody, TableContainer, tableId */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableCell\", function() { return TableCell; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableRow\", function() { return TableRow; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableBody\", function() { return TableBody; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TableContainer\", function() { return TableContainer; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tableId\", function() { return tableId; });\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/container */ \"./blots/container.js\");\n \n \n \n class TableCell extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   static create(value) {\n     const node = super.create();\n \n     if (value) {\n       node.setAttribute('data-row', value);\n     } else {\n       node.setAttribute('data-row', tableId());\n     }\n \n     return node;\n   }\n \n   static formats(domNode) {\n     if (domNode.hasAttribute('data-row')) {\n       return domNode.getAttribute('data-row');\n     }\n \n     return undefined;\n   }\n \n   cellOffset() {\n     if (this.parent) {\n       return this.parent.children.indexOf(this);\n     }\n \n     return -1;\n   }\n \n   format(name, value) {\n     if (name === TableCell.blotName && value) {\n       this.domNode.setAttribute('data-row', value);\n     } else {\n       super.format(name, value);\n     }\n   }\n \n   row() {\n     return this.parent;\n   }\n \n   rowOffset() {\n     if (this.row()) {\n       return this.row().rowOffset();\n     }\n \n     return -1;\n   }\n \n   table() {\n     return this.row() && this.row().table();\n   }\n \n }\n \n TableCell.blotName = 'table';\n TableCell.tagName = 'TD';\n \n class TableRow extends _blots_container__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n   checkMerge() {\n     if (super.checkMerge() && this.next.children.head != null) {\n       const thisHead = this.children.head.formats();\n       const thisTail = this.children.tail.formats();\n       const nextHead = this.next.children.head.formats();\n       const nextTail = this.next.children.tail.formats();\n       return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\n     }\n \n     return false;\n   }\n \n   optimize(...args) {\n     super.optimize(...args);\n     this.children.forEach(child => {\n       if (child.next == null) return;\n       const childFormats = child.formats();\n       const nextFormats = child.next.formats();\n \n       if (childFormats.table !== nextFormats.table) {\n         const next = this.splitAfter(child);\n \n         if (next) {\n           next.optimize();\n         } // We might be able to merge with prev now\n \n \n         if (this.prev) {\n           this.prev.optimize();\n         }\n       }\n     });\n   }\n \n   rowOffset() {\n     if (this.parent) {\n       return this.parent.children.indexOf(this);\n     }\n \n     return -1;\n   }\n \n   table() {\n     return this.parent && this.parent.parent;\n   }\n \n }\n \n TableRow.blotName = 'table-row';\n TableRow.tagName = 'TR';\n \n class TableBody extends _blots_container__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {}\n \n TableBody.blotName = 'table-body';\n TableBody.tagName = 'TBODY';\n \n class TableContainer extends _blots_container__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n   balanceCells() {\n     const rows = this.descendants(TableRow);\n     const maxColumns = rows.reduce((max, row) => {\n       return Math.max(row.children.length, max);\n     }, 0);\n     rows.forEach(row => {\n       new Array(maxColumns - row.children.length).fill(0).forEach(() => {\n         let value;\n \n         if (row.children.head != null) {\n           value = TableCell.formats(row.children.head.domNode);\n         }\n \n         const blot = this.scroll.create(TableCell.blotName, value);\n         row.appendChild(blot);\n         blot.optimize(); // Add break blot\n       });\n     });\n   }\n \n   cells(column) {\n     return this.rows().map(row => row.children.at(column));\n   }\n \n   deleteColumn(index) {\n     const [body] = this.descendant(TableBody);\n     if (body == null || body.children.head == null) return;\n     body.children.forEach(row => {\n       const cell = row.children.at(index);\n \n       if (cell != null) {\n         cell.remove();\n       }\n     });\n   }\n \n   insertColumn(index) {\n     const [body] = this.descendant(TableBody);\n     if (body == null || body.children.head == null) return;\n     body.children.forEach(row => {\n       const ref = row.children.at(index);\n       const value = TableCell.formats(row.children.head.domNode);\n       const cell = this.scroll.create(TableCell.blotName, value);\n       row.insertBefore(cell, ref);\n     });\n   }\n \n   insertRow(index) {\n     const [body] = this.descendant(TableBody);\n     if (body == null || body.children.head == null) return;\n     const id = tableId();\n     const row = this.scroll.create(TableRow.blotName);\n     body.children.head.children.forEach(() => {\n       const cell = this.scroll.create(TableCell.blotName, id);\n       row.appendChild(cell);\n     });\n     const ref = body.children.at(index);\n     body.insertBefore(row, ref);\n   }\n \n   rows() {\n     const body = this.children.head;\n     if (body == null) return [];\n     return body.children.map(row => row);\n   }\n \n }\n \n TableContainer.blotName = 'table-container';\n TableContainer.tagName = 'TABLE';\n TableContainer.allowedChildren = [TableBody];\n TableBody.requiredContainer = TableContainer;\n TableBody.allowedChildren = [TableRow];\n TableRow.requiredContainer = TableBody;\n TableRow.allowedChildren = [TableCell];\n TableCell.requiredContainer = TableRow;\n \n function tableId() {\n   const id = Math.random().toString(36).slice(2, 6);\n   return \"row-\".concat(id);\n }\n \n \n \n /***/ }),\n \n /***/ \"./formats/underline.js\":\n /*!******************************!*\\\n   !*** ./formats/underline.js ***!\n   \\******************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n \n \n class Underline extends _blots_inline__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {}\n \n Underline.blotName = 'underline';\n Underline.tagName = 'U';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Underline);\n \n /***/ }),\n \n /***/ \"./formats/video.js\":\n /*!**************************!*\\\n   !*** ./formats/video.js ***!\n   \\**************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./link */ \"./formats/link.js\");\n \n \n const ATTRIBUTES = ['height', 'width'];\n \n class Video extends _blots_block__WEBPACK_IMPORTED_MODULE_0__[\"BlockEmbed\"] {\n   static create(value) {\n     const node = super.create(value);\n     node.setAttribute('frameborder', '0');\n     node.setAttribute('allowfullscreen', true);\n     node.setAttribute('src', this.sanitize(value));\n     return node;\n   }\n \n   static formats(domNode) {\n     return ATTRIBUTES.reduce((formats, attribute) => {\n       if (domNode.hasAttribute(attribute)) {\n         formats[attribute] = domNode.getAttribute(attribute);\n       }\n \n       return formats;\n     }, {});\n   }\n \n   static sanitize(url) {\n     return _link__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sanitize(url); // eslint-disable-line import/no-named-as-default-member\n   }\n \n   static value(domNode) {\n     return domNode.getAttribute('src');\n   }\n \n   format(name, value) {\n     if (ATTRIBUTES.indexOf(name) > -1) {\n       if (value) {\n         this.domNode.setAttribute(name, value);\n       } else {\n         this.domNode.removeAttribute(name);\n       }\n     } else {\n       super.format(name, value);\n     }\n   }\n \n   html() {\n     const {\n       video\n     } = this.value();\n     return \"<a href=\\\"\".concat(video, \"\\\">\").concat(video, \"</a>\");\n   }\n \n }\n \n Video.blotName = 'video';\n Video.className = 'ql-video';\n Video.tagName = 'IFRAME';\n /* harmony default export */ __webpack_exports__[\"default\"] = (Video);\n \n /***/ }),\n \n /***/ \"./modules/clipboard.js\":\n /*!******************************!*\\\n   !*** ./modules/clipboard.js ***!\n   \\******************************/\n /*! exports provided: default, matchAttributor, matchBlot, matchNewline, matchText, traverse */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Clipboard; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matchAttributor\", function() { return matchAttributor; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matchBlot\", function() { return matchBlot; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matchNewline\", function() { return matchNewline; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matchText\", function() { return matchText; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"traverse\", function() { return traverse; });\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/logger */ \"./core/logger.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n /* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../formats/align */ \"./formats/align.js\");\n /* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../formats/background */ \"./formats/background.js\");\n /* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../formats/code */ \"./formats/code.js\");\n /* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../formats/color */ \"./formats/color.js\");\n /* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../formats/direction */ \"./formats/direction.js\");\n /* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../formats/font */ \"./formats/font.js\");\n /* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../formats/size */ \"./formats/size.js\");\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n const debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('quill:clipboard');\n const CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['strike', matchAlias.bind(matchAlias, 'strike')], ['style', matchIgnore]];\n const ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_7__[\"AlignAttribute\"], _formats_direction__WEBPACK_IMPORTED_MODULE_11__[\"DirectionAttribute\"]].reduce((memo, attr) => {\n   memo[attr.keyName] = attr;\n   return memo;\n }, {});\n const STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_7__[\"AlignStyle\"], _formats_background__WEBPACK_IMPORTED_MODULE_8__[\"BackgroundStyle\"], _formats_color__WEBPACK_IMPORTED_MODULE_10__[\"ColorStyle\"], _formats_direction__WEBPACK_IMPORTED_MODULE_11__[\"DirectionStyle\"], _formats_font__WEBPACK_IMPORTED_MODULE_12__[\"FontStyle\"], _formats_size__WEBPACK_IMPORTED_MODULE_13__[\"SizeStyle\"]].reduce((memo, attr) => {\n   memo[attr.keyName] = attr;\n   return memo;\n }, {});\n \n class Clipboard extends _core_module__WEBPACK_IMPORTED_MODULE_6__[\"default\"] {\n   constructor(quill, options) {\n     super(quill, options);\n     this.quill.root.addEventListener('copy', e => this.onCaptureCopy(e, false));\n     this.quill.root.addEventListener('cut', e => this.onCaptureCopy(e, true));\n     this.quill.root.addEventListener('paste', this.onCapturePaste.bind(this));\n     this.matchers = [];\n     CLIPBOARD_CONFIG.concat(this.options.matchers).forEach(([selector, matcher]) => {\n       this.addMatcher(selector, matcher);\n     });\n   }\n \n   addMatcher(selector, matcher) {\n     this.matchers.push([selector, matcher]);\n   }\n \n   convert({\n     html,\n     text\n   }, formats = {}) {\n     if (formats[_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]) {\n       return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().insert(text, {\n         [_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]: formats[_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]\n       });\n     }\n \n     if (!html) {\n       return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().insert(text || '');\n     }\n \n     const doc = new DOMParser().parseFromString(html, 'text/html');\n     const container = doc.body;\n     const nodeMatches = new WeakMap();\n     const [elementMatchers, textMatchers] = this.prepareMatching(container, nodeMatches);\n     const delta = traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches); // Remove trailing newline\n \n     if (deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || formats.table)) {\n       return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().retain(delta.length() - 1).delete(1));\n     }\n \n     return delta;\n   }\n \n   dangerouslyPasteHTML(index, html, source = _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API) {\n     if (typeof index === 'string') {\n       const delta = this.convert({\n         html: index,\n         text: ''\n       });\n       this.quill.setContents(delta, html);\n       this.quill.setSelection(0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n     } else {\n       const paste = this.convert({\n         html,\n         text: ''\n       });\n       this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().retain(index).concat(paste), source);\n       this.quill.setSelection(index + paste.length(), _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n     }\n   }\n \n   onCaptureCopy(e, isCut = false) {\n     if (e.defaultPrevented) return;\n     e.preventDefault();\n     const [range] = this.quill.selection.getRange();\n     if (range == null) return;\n     const {\n       html,\n       text\n     } = this.onCopy(range, isCut);\n     e.clipboardData.setData('text/plain', text);\n     e.clipboardData.setData('text/html', html);\n \n     if (isCut) {\n       this.quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n     }\n   }\n \n   onCapturePaste(e) {\n     if (e.defaultPrevented || !this.quill.isEnabled()) return;\n     e.preventDefault();\n     const range = this.quill.getSelection(true);\n     if (range == null) return;\n     const html = e.clipboardData.getData('text/html');\n     const text = e.clipboardData.getData('text/plain');\n     const files = Array.from(e.clipboardData.files || []);\n \n     if (!html && files.length > 0) {\n       this.quill.uploader.upload(range, files);\n     } else {\n       this.onPaste(range, {\n         html,\n         text\n       });\n     }\n   }\n \n   onCopy(range) {\n     const text = this.quill.getText(range);\n     const html = this.quill.getSemanticHTML(range);\n     return {\n       html,\n       text\n     };\n   }\n \n   onPaste(range, {\n     text,\n     html\n   }) {\n     const formats = this.quill.getFormat(range.index);\n     const pastedDelta = this.convert({\n       text,\n       html\n     }, formats);\n     debug.log('onPaste', pastedDelta, {\n       text,\n       html\n     });\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().retain(range.index).delete(range.length).concat(pastedDelta);\n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER); // range.length contributes to delta.length()\n \n     this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n     this.quill.scrollIntoView();\n   }\n \n   prepareMatching(container, nodeMatches) {\n     const elementMatchers = [];\n     const textMatchers = [];\n     this.matchers.forEach(pair => {\n       const [selector, matcher] = pair;\n \n       switch (selector) {\n         case Node.TEXT_NODE:\n           textMatchers.push(matcher);\n           break;\n \n         case Node.ELEMENT_NODE:\n           elementMatchers.push(matcher);\n           break;\n \n         default:\n           Array.from(container.querySelectorAll(selector)).forEach(node => {\n             if (nodeMatches.has(node)) {\n               const matches = nodeMatches.get(node);\n               matches.push(matcher);\n             } else {\n               nodeMatches.set(node, [matcher]);\n             }\n           });\n           break;\n       }\n     });\n     return [elementMatchers, textMatchers];\n   }\n \n }\n \n Clipboard.DEFAULTS = {\n   matchers: []\n };\n \n function applyFormat(delta, format, value) {\n   if (typeof format === 'object') {\n     return Object.keys(format).reduce((newDelta, key) => {\n       return applyFormat(newDelta, key, format[key]);\n     }, delta);\n   }\n \n   return delta.reduce((newDelta, op) => {\n     if (op.attributes && op.attributes[format]) {\n       return newDelta.push(op);\n     }\n \n     return newDelta.insert(op.insert, extend__WEBPACK_IMPORTED_MODULE_0___default()({}, {\n       [format]: value\n     }, op.attributes));\n   }, new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a());\n }\n \n function deltaEndsWith(delta, text) {\n   let endText = '';\n \n   for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n   ) {\n     const op = delta.ops[i];\n     if (typeof op.insert !== 'string') break;\n     endText = op.insert + endText;\n   }\n \n   return endText.slice(-1 * text.length) === text;\n }\n \n function isLine(node) {\n   if (node.childNodes.length === 0) return false; // Exclude embed blocks\n \n   return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].includes(node.tagName.toLowerCase());\n }\n \n const preNodes = new WeakMap();\n \n function isPre(node) {\n   if (node == null) return false;\n \n   if (!preNodes.has(node)) {\n     if (node.tagName === 'PRE') {\n       preNodes.set(node, true);\n     } else {\n       preNodes.set(node, isPre(node.parentNode));\n     }\n   }\n \n   return preNodes.get(node);\n }\n \n function traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n   // Post-order\n   if (node.nodeType === node.TEXT_NODE) {\n     return textMatchers.reduce((delta, matcher) => {\n       return matcher(node, delta, scroll);\n     }, new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a());\n   }\n \n   if (node.nodeType === node.ELEMENT_NODE) {\n     return Array.from(node.childNodes || []).reduce((delta, childNode) => {\n       let childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n \n       if (childNode.nodeType === node.ELEMENT_NODE) {\n         childrenDelta = elementMatchers.reduce((reducedDelta, matcher) => {\n           return matcher(childNode, reducedDelta, scroll);\n         }, childrenDelta);\n         childrenDelta = (nodeMatches.get(childNode) || []).reduce((reducedDelta, matcher) => {\n           return matcher(childNode, reducedDelta, scroll);\n         }, childrenDelta);\n       }\n \n       return delta.concat(childrenDelta);\n     }, new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a());\n   }\n \n   return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a();\n }\n \n function matchAlias(format, node, delta) {\n   return applyFormat(delta, format, true);\n }\n \n function matchAttributor(node, delta, scroll) {\n   const attributes = parchment__WEBPACK_IMPORTED_MODULE_2__[\"Attributor\"].keys(node);\n   const classes = parchment__WEBPACK_IMPORTED_MODULE_2__[\"ClassAttributor\"].keys(node);\n   const styles = parchment__WEBPACK_IMPORTED_MODULE_2__[\"StyleAttributor\"].keys(node);\n   const formats = {};\n   attributes.concat(classes).concat(styles).forEach(name => {\n     let attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_2__[\"Scope\"].ATTRIBUTE);\n \n     if (attr != null) {\n       formats[attr.attrName] = attr.value(node);\n       if (formats[attr.attrName]) return;\n     }\n \n     attr = ATTRIBUTE_ATTRIBUTORS[name];\n \n     if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n       formats[attr.attrName] = attr.value(node) || undefined;\n     }\n \n     attr = STYLE_ATTRIBUTORS[name];\n \n     if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n       attr = STYLE_ATTRIBUTORS[name];\n       formats[attr.attrName] = attr.value(node) || undefined;\n     }\n   });\n \n   if (Object.keys(formats).length > 0) {\n     return applyFormat(delta, formats);\n   }\n \n   return delta;\n }\n \n function matchBlot(node, delta, scroll) {\n   const match = scroll.query(node);\n   if (match == null) return delta;\n \n   if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_2__[\"EmbedBlot\"]) {\n     const embed = {};\n     const value = match.value(node);\n \n     if (value != null) {\n       embed[match.blotName] = value;\n       return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().insert(embed, match.formats(node, scroll));\n     }\n   } else {\n     if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_2__[\"BlockBlot\"] && !deltaEndsWith(delta, '\\n')) {\n       delta.insert('\\n');\n     }\n \n     if (typeof match.formats === 'function') {\n       return applyFormat(delta, match.blotName, match.formats(node, scroll));\n     }\n   }\n \n   return delta;\n }\n \n function matchBreak(node, delta) {\n   if (!deltaEndsWith(delta, '\\n')) {\n     delta.insert('\\n');\n   }\n \n   return delta;\n }\n \n function matchCodeBlock(node, delta, scroll) {\n   const match = scroll.query('code-block');\n   const language = match ? match.formats(node, scroll) : true;\n   return applyFormat(delta, 'code-block', language);\n }\n \n function matchIgnore() {\n   return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a();\n }\n \n function matchIndent(node, delta, scroll) {\n   const match = scroll.query(node);\n \n   if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n     return delta;\n   }\n \n   let indent = -1;\n   let parent = node.parentNode;\n \n   while (parent != null) {\n     if (['OL', 'UL'].includes(parent.tagName)) {\n       indent += 1;\n     }\n \n     parent = parent.parentNode;\n   }\n \n   if (indent <= 0) return delta;\n   return delta.reduce((composed, op) => {\n     if (op.attributes && op.attributes.list) {\n       return composed.push(op);\n     }\n \n     return composed.insert(op.insert, {\n       indent,\n       ...(op.attributes || {})\n     });\n   }, new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a());\n }\n \n function matchList(node, delta) {\n   const list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n   return applyFormat(delta, 'list', list);\n }\n \n function matchNewline(node, delta, scroll) {\n   if (!deltaEndsWith(delta, '\\n')) {\n     if (isLine(node)) {\n       return delta.insert('\\n');\n     }\n \n     if (delta.length() > 0 && node.nextSibling) {\n       let {\n         nextSibling\n       } = node;\n \n       while (nextSibling != null) {\n         if (isLine(nextSibling)) {\n           return delta.insert('\\n');\n         }\n \n         const match = scroll.query(nextSibling);\n \n         if (match && match.prototype instanceof _blots_block__WEBPACK_IMPORTED_MODULE_3__[\"BlockEmbed\"]) {\n           return delta.insert('\\n');\n         }\n \n         nextSibling = nextSibling.firstChild;\n       }\n     }\n   }\n \n   return delta;\n }\n \n function matchStyles(node, delta) {\n   const formats = {};\n   const style = node.style || {};\n \n   if (style.fontStyle === 'italic') {\n     formats.italic = true;\n   }\n \n   if (style.textDecoration === 'underline') {\n     formats.underline = true;\n   }\n \n   if (style.textDecoration === 'line-through') {\n     formats.strike = true;\n   }\n \n   if (style.fontWeight.startsWith('bold') || parseInt(style.fontWeight, 10) >= 700) {\n     formats.bold = true;\n   }\n \n   if (Object.keys(formats).length > 0) {\n     delta = applyFormat(delta, formats);\n   }\n \n   if (parseFloat(style.textIndent || 0) > 0) {\n     // Could be 0.5in\n     return new quill_delta__WEBPACK_IMPORTED_MODULE_1___default.a().insert('\\t').concat(delta);\n   }\n \n   return delta;\n }\n \n function matchTable(node, delta) {\n   const table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\n   const rows = Array.from(table.querySelectorAll('tr'));\n   const row = rows.indexOf(node) + 1;\n   return applyFormat(delta, 'table', row);\n }\n \n function matchText(node, delta) {\n   let text = node.data; // Word represents empty line with <o:p>&nbsp;</o:p>\n \n   if (node.parentNode.tagName === 'O:P') {\n     return delta.insert(text.trim());\n   }\n \n   if (text.trim().length === 0 && text.includes('\\n')) {\n     return delta;\n   }\n \n   if (!isPre(node)) {\n     const replacer = (collapse, match) => {\n       const replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n \n       return replaced.length < 1 && collapse ? ' ' : replaced;\n     };\n \n     text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n     text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n \n     if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n       text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n     }\n \n     if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n       text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n     }\n   }\n \n   return delta.insert(text);\n }\n \n \n \n /***/ }),\n \n /***/ \"./modules/history.js\":\n /*!****************************!*\\\n   !*** ./modules/history.js ***!\n   \\****************************/\n /*! exports provided: default, getLastChangeIndex */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return History; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLastChangeIndex\", function() { return getLastChangeIndex; });\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n \n \n \n \n class History extends _core_module__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   constructor(quill, options) {\n     super(quill, options);\n     this.lastRecorded = 0;\n     this.ignoreChange = false;\n     this.clear();\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\n       if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.TEXT_CHANGE || this.ignoreChange) return;\n \n       if (!this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) {\n         this.record(delta, oldDelta);\n       } else {\n         this.transform(delta);\n       }\n     });\n     this.quill.keyboard.addBinding({\n       key: 'z',\n       shortKey: true\n     }, this.undo.bind(this));\n     this.quill.keyboard.addBinding({\n       key: 'z',\n       shortKey: true,\n       shiftKey: true\n     }, this.redo.bind(this));\n \n     if (/Win/i.test(navigator.platform)) {\n       this.quill.keyboard.addBinding({\n         key: 'y',\n         shortKey: true\n       }, this.redo.bind(this));\n     }\n   }\n \n   change(source, dest) {\n     if (this.stack[source].length === 0) return;\n     const delta = this.stack[source].pop();\n     const base = this.quill.getContents();\n     const inverseDelta = delta.invert(base);\n     this.stack[dest].push(inverseDelta);\n     this.lastRecorded = 0;\n     this.ignoreChange = true;\n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n     this.ignoreChange = false;\n     const index = getLastChangeIndex(this.quill.scroll, delta);\n     this.quill.setSelection(index);\n   }\n \n   clear() {\n     this.stack = {\n       undo: [],\n       redo: []\n     };\n   }\n \n   cutoff() {\n     this.lastRecorded = 0;\n   }\n \n   record(changeDelta, oldDelta) {\n     if (changeDelta.ops.length === 0) return;\n     this.stack.redo = [];\n     let undoDelta = changeDelta.invert(oldDelta);\n     const timestamp = Date.now();\n \n     if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n       const delta = this.stack.undo.pop();\n       undoDelta = undoDelta.compose(delta);\n     } else {\n       this.lastRecorded = timestamp;\n     }\n \n     if (undoDelta.length() === 0) return;\n     this.stack.undo.push(undoDelta);\n \n     if (this.stack.undo.length > this.options.maxStack) {\n       this.stack.undo.shift();\n     }\n   }\n \n   redo() {\n     this.change('redo', 'undo');\n   }\n \n   transform(delta) {\n     transformStack(this.stack.undo, delta);\n     transformStack(this.stack.redo, delta);\n   }\n \n   undo() {\n     this.change('undo', 'redo');\n   }\n \n }\n \n History.DEFAULTS = {\n   delay: 1000,\n   maxStack: 100,\n   userOnly: false\n };\n \n function transformStack(stack, delta) {\n   let remoteDelta = delta;\n \n   for (let i = stack.length - 1; i >= 0; i -= 1) {\n     const oldDelta = stack[i];\n     stack[i] = remoteDelta.transform(oldDelta, true);\n     remoteDelta = oldDelta.transform(remoteDelta);\n \n     if (stack[i].length() === 0) {\n       stack.splice(i, 1);\n     }\n   }\n }\n \n function endsWithNewlineChange(scroll, delta) {\n   const lastOp = delta.ops[delta.ops.length - 1];\n   if (lastOp == null) return false;\n \n   if (lastOp.insert != null) {\n     return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n   }\n \n   if (lastOp.attributes != null) {\n     return Object.keys(lastOp.attributes).some(attr => {\n       return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) != null;\n     });\n   }\n \n   return false;\n }\n \n function getLastChangeIndex(scroll, delta) {\n   const deleteLength = delta.reduce((length, op) => {\n     return length + (op.delete || 0);\n   }, 0);\n   let changeIndex = delta.length() - deleteLength;\n \n   if (endsWithNewlineChange(scroll, delta)) {\n     changeIndex -= 1;\n   }\n \n   return changeIndex;\n }\n \n \n \n /***/ }),\n \n /***/ \"./modules/keyboard.js\":\n /*!*****************************!*\\\n   !*** ./modules/keyboard.js ***!\n   \\*****************************/\n /*! exports provided: default, SHORTKEY, normalize */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Keyboard; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORTKEY\", function() { return SHORTKEY; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalize\", function() { return normalize; });\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clone */ \"./node_modules/clone/clone.js\");\n /* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clone__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\");\n /* harmony import */ var deep_equal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/logger */ \"./core/logger.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n \n \n \n \n \n \n \n \n const debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"])('quill:keyboard');\n const SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n \n class Keyboard extends _core_module__WEBPACK_IMPORTED_MODULE_7__[\"default\"] {\n   static match(evt, binding) {\n     if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(key => {\n       return !!binding[key] !== evt[key] && binding[key] !== null;\n     })) {\n       return false;\n     }\n \n     return binding.key === evt.key || binding.key === evt.which;\n   }\n \n   constructor(quill, options) {\n     super(quill, options);\n     this.bindings = {};\n     Object.keys(this.options.bindings).forEach(name => {\n       if (this.options.bindings[name]) {\n         this.addBinding(this.options.bindings[name]);\n       }\n     });\n     this.addBinding({\n       key: 'Enter',\n       shiftKey: null\n     }, this.handleEnter);\n     this.addBinding({\n       key: 'Enter',\n       metaKey: null,\n       ctrlKey: null,\n       altKey: null\n     }, () => {});\n \n     if (/Firefox/i.test(navigator.userAgent)) {\n       // Need to handle delete and backspace for Firefox in the general case #1171\n       this.addBinding({\n         key: 'Backspace'\n       }, {\n         collapsed: true\n       }, this.handleBackspace);\n       this.addBinding({\n         key: 'Delete'\n       }, {\n         collapsed: true\n       }, this.handleDelete);\n     } else {\n       this.addBinding({\n         key: 'Backspace'\n       }, {\n         collapsed: true,\n         prefix: /^.?$/\n       }, this.handleBackspace);\n       this.addBinding({\n         key: 'Delete'\n       }, {\n         collapsed: true,\n         suffix: /^.?$/\n       }, this.handleDelete);\n     }\n \n     this.addBinding({\n       key: 'Backspace'\n     }, {\n       collapsed: false\n     }, this.handleDeleteRange);\n     this.addBinding({\n       key: 'Delete'\n     }, {\n       collapsed: false\n     }, this.handleDeleteRange);\n     this.addBinding({\n       key: 'Backspace',\n       altKey: null,\n       ctrlKey: null,\n       metaKey: null,\n       shiftKey: null\n     }, {\n       collapsed: true,\n       offset: 0\n     }, this.handleBackspace);\n     this.listen();\n   }\n \n   addBinding(keyBinding, context = {}, handler = {}) {\n     const binding = normalize(keyBinding);\n \n     if (binding == null) {\n       debug.warn('Attempted to add invalid keyboard binding', binding);\n       return;\n     }\n \n     if (typeof context === 'function') {\n       context = {\n         handler: context\n       };\n     }\n \n     if (typeof handler === 'function') {\n       handler = {\n         handler\n       };\n     }\n \n     const keys = Array.isArray(binding.key) ? binding.key : [binding.key];\n     keys.forEach(key => {\n       const singleBinding = extend__WEBPACK_IMPORTED_MODULE_2___default()({}, binding, {\n         key\n       }, context, handler);\n       this.bindings[singleBinding.key] = this.bindings[singleBinding.key] || [];\n       this.bindings[singleBinding.key].push(singleBinding);\n     });\n   }\n \n   listen() {\n     this.quill.root.addEventListener('keydown', evt => {\n       if (evt.defaultPrevented || evt.isComposing) return;\n       const bindings = (this.bindings[evt.key] || []).concat(this.bindings[evt.which] || []);\n       const matches = bindings.filter(binding => Keyboard.match(evt, binding));\n       if (matches.length === 0) return;\n       const range = this.quill.getSelection();\n       if (range == null || !this.quill.hasFocus()) return;\n       const [line, offset] = this.quill.getLine(range.index);\n       const [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n       const [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n       const prefixText = leafStart instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"TextBlot\"] ? leafStart.value().slice(0, offsetStart) : '';\n       const suffixText = leafEnd instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"TextBlot\"] ? leafEnd.value().slice(offsetEnd) : '';\n       const curContext = {\n         collapsed: range.length === 0,\n         empty: range.length === 0 && line.length() <= 1,\n         format: this.quill.getFormat(range),\n         line,\n         offset,\n         prefix: prefixText,\n         suffix: suffixText,\n         event: evt\n       };\n       const prevented = matches.some(binding => {\n         if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n           return false;\n         }\n \n         if (binding.empty != null && binding.empty !== curContext.empty) {\n           return false;\n         }\n \n         if (binding.offset != null && binding.offset !== curContext.offset) {\n           return false;\n         }\n \n         if (Array.isArray(binding.format)) {\n           // any format is present\n           if (binding.format.every(name => curContext.format[name] == null)) {\n             return false;\n           }\n         } else if (typeof binding.format === 'object') {\n           // all formats must match\n           if (!Object.keys(binding.format).every(name => {\n             if (binding.format[name] === true) return curContext.format[name] != null;\n             if (binding.format[name] === false) return curContext.format[name] == null;\n             return deep_equal__WEBPACK_IMPORTED_MODULE_1___default()(binding.format[name], curContext.format[name]);\n           })) {\n             return false;\n           }\n         }\n \n         if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n           return false;\n         }\n \n         if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n           return false;\n         }\n \n         return binding.handler.call(this, range, curContext, binding) !== true;\n       });\n \n       if (prevented) {\n         evt.preventDefault();\n       }\n     });\n   }\n \n   handleBackspace(range, context) {\n     // Check for astral symbols\n     const length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n     if (range.index === 0 || this.quill.getLength() <= 1) return;\n     let formats = {};\n     const [line] = this.quill.getLine(range.index);\n     let delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index - length).delete(length);\n \n     if (context.offset === 0) {\n       // Always deleting newline here, length always 1\n       const [prev] = this.quill.getLine(range.index - 1);\n \n       if (prev) {\n         const curFormats = line.formats();\n         const prevFormats = this.quill.getFormat(range.index - 1, 1);\n         formats = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(curFormats, prevFormats) || {};\n \n         if (Object.keys(formats).length > 0) {\n           // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n           const formatDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index + line.length() - 2).retain(1, formats);\n           delta = delta.compose(formatDelta);\n         }\n       }\n     }\n \n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     this.quill.focus();\n   }\n \n   handleDelete(range, context) {\n     // Check for astral symbols\n     const length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n     if (range.index >= this.quill.getLength() - length) return;\n     let formats = {};\n     const [line] = this.quill.getLine(range.index);\n     let delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).delete(length);\n \n     if (context.offset >= line.length() - 1) {\n       const [next] = this.quill.getLine(range.index + 1);\n \n       if (next) {\n         const curFormats = line.formats();\n         const nextFormats = this.quill.getFormat(range.index, 1);\n         formats = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(curFormats, nextFormats) || {};\n \n         if (Object.keys(formats).length > 0) {\n           delta = delta.retain(next.length() - 1).retain(1, formats);\n         }\n       }\n     }\n \n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     this.quill.focus();\n   }\n \n   handleDeleteRange(range) {\n     const lines = this.quill.getLines(range);\n     let formats = {};\n \n     if (lines.length > 1) {\n       const firstFormats = lines[0].formats();\n       const lastFormats = lines[lines.length - 1].formats();\n       formats = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(lastFormats, firstFormats) || {};\n     }\n \n     this.quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n \n     if (Object.keys(formats).length > 0) {\n       this.quill.formatLine(range.index, 1, formats, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     }\n \n     this.quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n     this.quill.focus();\n   }\n \n   handleEnter(range, context) {\n     const lineFormats = Object.keys(context.format).reduce((formats, format) => {\n       if (this.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_4__[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n         formats[format] = context.format[format];\n       }\n \n       return formats;\n     }, {});\n     const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n     this.quill.focus();\n     Object.keys(context.format).forEach(name => {\n       if (lineFormats[name] != null) return;\n       if (Array.isArray(context.format[name])) return;\n       if (name === 'code' || name === 'link') return;\n       this.quill.format(name, context.format[name], _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     });\n   }\n \n }\n \n Keyboard.DEFAULTS = {\n   bindings: {\n     bold: makeFormatHandler('bold'),\n     italic: makeFormatHandler('italic'),\n     underline: makeFormatHandler('underline'),\n     indent: {\n       // highlight tab or tab at beginning of list, indent or blockquote\n       key: 'Tab',\n       format: ['blockquote', 'indent', 'list'],\n \n       handler(range, context) {\n         if (context.collapsed && context.offset !== 0) return true;\n         this.quill.format('indent', '+1', _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         return false;\n       }\n \n     },\n     outdent: {\n       key: 'Tab',\n       shiftKey: true,\n       format: ['blockquote', 'indent', 'list'],\n \n       // highlight tab or tab at beginning of list, indent or blockquote\n       handler(range, context) {\n         if (context.collapsed && context.offset !== 0) return true;\n         this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         return false;\n       }\n \n     },\n     'outdent backspace': {\n       key: 'Backspace',\n       collapsed: true,\n       shiftKey: null,\n       metaKey: null,\n       ctrlKey: null,\n       altKey: null,\n       format: ['indent', 'list'],\n       offset: 0,\n \n       handler(range, context) {\n         if (context.format.indent != null) {\n           this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         } else if (context.format.list != null) {\n           this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         }\n       }\n \n     },\n     'indent code-block': makeCodeBlockHandler(true),\n     'outdent code-block': makeCodeBlockHandler(false),\n     'remove tab': {\n       key: 'Tab',\n       shiftKey: true,\n       collapsed: true,\n       prefix: /\\t$/,\n \n       handler(range) {\n         this.quill.deleteText(range.index - 1, 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       }\n \n     },\n     tab: {\n       key: 'Tab',\n \n       handler(range, context) {\n         if (context.format.table) return true;\n         this.quill.history.cutoff();\n         const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).delete(range.length).insert('\\t');\n         this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         this.quill.history.cutoff();\n         this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n         return false;\n       }\n \n     },\n     'blockquote empty enter': {\n       key: 'Enter',\n       collapsed: true,\n       format: ['blockquote'],\n       empty: true,\n \n       handler() {\n         this.quill.format('blockquote', false, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       }\n \n     },\n     'list empty enter': {\n       key: 'Enter',\n       collapsed: true,\n       format: ['list'],\n       empty: true,\n \n       handler(range, context) {\n         const formats = {\n           list: false\n         };\n \n         if (context.format.indent) {\n           formats.indent = false;\n         }\n \n         this.quill.formatLine(range.index, range.length, formats, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       }\n \n     },\n     'checklist enter': {\n       key: 'Enter',\n       collapsed: true,\n       format: {\n         list: 'checked'\n       },\n \n       handler(range) {\n         const [line, offset] = this.quill.getLine(range.index);\n         const formats = extend__WEBPACK_IMPORTED_MODULE_2___default()({}, line.formats(), {\n           list: 'checked'\n         });\n         const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n           list: 'unchecked'\n         });\n         this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n         this.quill.scrollIntoView();\n       }\n \n     },\n     'header enter': {\n       key: 'Enter',\n       collapsed: true,\n       format: ['header'],\n       suffix: /^$/,\n \n       handler(range, context) {\n         const [line, offset] = this.quill.getLine(range.index);\n         const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n           header: null\n         });\n         this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n         this.quill.scrollIntoView();\n       }\n \n     },\n     'table backspace': {\n       key: 'Backspace',\n       format: ['table'],\n       collapsed: true,\n       offset: 0,\n \n       handler() {}\n \n     },\n     'table delete': {\n       key: 'Delete',\n       format: ['table'],\n       collapsed: true,\n       suffix: /^$/,\n \n       handler() {}\n \n     },\n     'table enter': {\n       key: 'Enter',\n       shiftKey: null,\n       format: ['table'],\n \n       handler(range) {\n         const module = this.quill.getModule('table');\n \n         if (module) {\n           const [table, row, cell, offset] = module.getTable(range);\n           const shift = tableSide(table, row, cell, offset);\n           if (shift == null) return;\n           let index = table.offset();\n \n           if (shift < 0) {\n             const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert('\\n');\n             this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n             this.quill.setSelection(range.index + 1, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n           } else if (shift > 0) {\n             index += table.length();\n             const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert('\\n');\n             this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n             this.quill.setSelection(index, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n           }\n         }\n       }\n \n     },\n     'table tab': {\n       key: 'Tab',\n       shiftKey: null,\n       format: ['table'],\n \n       handler(range, context) {\n         const {\n           event,\n           line: cell\n         } = context;\n         const offset = cell.offset(this.quill.scroll);\n \n         if (event.shiftKey) {\n           this.quill.setSelection(offset - 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         } else {\n           this.quill.setSelection(offset + cell.length(), _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         }\n       }\n \n     },\n     'list autofill': {\n       key: ' ',\n       shiftKey: null,\n       collapsed: true,\n       format: {\n         list: false,\n         'code-block': false,\n         blockquote: false,\n         header: false,\n         table: false\n       },\n       prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n \n       handler(range, context) {\n         if (this.quill.scroll.query('list') == null) return true;\n         const {\n           length\n         } = context.prefix;\n         const [line, offset] = this.quill.getLine(range.index);\n         if (offset > length) return true;\n         let value;\n \n         switch (context.prefix.trim()) {\n           case '[]':\n           case '[ ]':\n             value = 'unchecked';\n             break;\n \n           case '[x]':\n             value = 'checked';\n             break;\n \n           case '-':\n           case '*':\n             value = 'bullet';\n             break;\n \n           default:\n             value = 'ordered';\n         }\n \n         this.quill.insertText(range.index, ' ', _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         this.quill.history.cutoff();\n         const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n           list: value\n         });\n         this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         this.quill.history.cutoff();\n         this.quill.setSelection(range.index - length, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n         return false;\n       }\n \n     },\n     'code exit': {\n       key: 'Enter',\n       collapsed: true,\n       format: ['code-block'],\n       prefix: /^$/,\n       suffix: /^\\s*$/,\n \n       handler(range) {\n         const [line, offset] = this.quill.getLine(range.index);\n         let numLines = 2;\n         let cur = line;\n \n         while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n           cur = cur.prev;\n           numLines -= 1; // Requisite prev lines are empty\n \n           if (numLines <= 0) {\n             const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index + line.length() - offset - 2).retain(1, {\n               'code-block': null\n             }).delete(1);\n             this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n             this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n             return false;\n           }\n         }\n \n         return true;\n       }\n \n     },\n     'embed left': makeEmbedArrowHandler('ArrowLeft', false),\n     'embed left shift': makeEmbedArrowHandler('ArrowLeft', true),\n     'embed right': makeEmbedArrowHandler('ArrowRight', false),\n     'embed right shift': makeEmbedArrowHandler('ArrowRight', true),\n     'table down': makeTableArrowHandler(false),\n     'table up': makeTableArrowHandler(true)\n   }\n };\n \n function makeCodeBlockHandler(indent) {\n   return {\n     key: 'Tab',\n     shiftKey: !indent,\n     format: {\n       'code-block': true\n     },\n \n     handler(range) {\n       const CodeBlock = this.quill.scroll.query('code-block');\n       const lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n       let {\n         index,\n         length\n       } = range;\n       lines.forEach((line, i) => {\n         if (indent) {\n           line.insertAt(0, CodeBlock.TAB);\n \n           if (i === 0) {\n             index += CodeBlock.TAB.length;\n           } else {\n             length += CodeBlock.TAB.length;\n           }\n         } else if (line.domNode.textContent.startsWith(CodeBlock.TAB)) {\n           line.deleteAt(0, CodeBlock.TAB.length);\n \n           if (i === 0) {\n             index -= CodeBlock.TAB.length;\n           } else {\n             length -= CodeBlock.TAB.length;\n           }\n         }\n       });\n       this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       this.quill.setSelection(index, length, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n     }\n \n   };\n }\n \n function makeEmbedArrowHandler(key, shiftKey) {\n   const where = key === 'ArrowLeft' ? 'prefix' : 'suffix';\n   return {\n     key,\n     shiftKey,\n     altKey: null,\n     [where]: /^$/,\n \n     handler(range) {\n       let {\n         index\n       } = range;\n \n       if (key === 'ArrowRight') {\n         index += range.length + 1;\n       }\n \n       const [leaf] = this.quill.getLeaf(index);\n       if (!(leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"EmbedBlot\"])) return true;\n \n       if (key === 'ArrowLeft') {\n         if (shiftKey) {\n           this.quill.setSelection(range.index - 1, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         } else {\n           this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         }\n       } else if (shiftKey) {\n         this.quill.setSelection(range.index, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       } else {\n         this.quill.setSelection(range.index + range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n       }\n \n       return false;\n     }\n \n   };\n }\n \n function makeFormatHandler(format) {\n   return {\n     key: format[0],\n     shortKey: true,\n \n     handler(range, context) {\n       this.quill.format(format, !context.format[format], _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n     }\n \n   };\n }\n \n function makeTableArrowHandler(up) {\n   return {\n     key: up ? 'ArrowUp' : 'ArrowDown',\n     collapsed: true,\n     format: ['table'],\n \n     handler(range, context) {\n       // TODO move to table module\n       const key = up ? 'prev' : 'next';\n       const cell = context.line;\n       const targetRow = cell.parent[key];\n \n       if (targetRow != null) {\n         if (targetRow.statics.blotName === 'table-row') {\n           let targetCell = targetRow.children.head;\n           let cur = cell;\n \n           while (cur.prev != null) {\n             cur = cur.prev;\n             targetCell = targetCell.next;\n           }\n \n           const index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n           this.quill.setSelection(index, 0, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n         }\n       } else {\n         const targetLine = cell.table()[key];\n \n         if (targetLine != null) {\n           if (up) {\n             this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n           } else {\n             this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n           }\n         }\n       }\n \n       return false;\n     }\n \n   };\n }\n \n function normalize(binding) {\n   if (typeof binding === 'string' || typeof binding === 'number') {\n     binding = {\n       key: binding\n     };\n   } else if (typeof binding === 'object') {\n     binding = clone__WEBPACK_IMPORTED_MODULE_0___default()(binding, false);\n   } else {\n     return null;\n   }\n \n   if (binding.shortKey) {\n     binding[SHORTKEY] = binding.shortKey;\n     delete binding.shortKey;\n   }\n \n   return binding;\n }\n \n function tableSide(table, row, cell, offset) {\n   if (row.prev == null && row.next == null) {\n     if (cell.prev == null && cell.next == null) {\n       return offset === 0 ? -1 : 1;\n     }\n \n     return cell.prev == null ? -1 : 1;\n   }\n \n   if (row.prev == null) {\n     return -1;\n   }\n \n   if (row.next == null) {\n     return 1;\n   }\n \n   return null;\n }\n \n \n \n /***/ }),\n \n /***/ \"./modules/syntax.js\":\n /*!***************************!*\\\n   !*** ./modules/syntax.js ***!\n   \\***************************/\n /*! exports provided: CodeBlock, CodeToken, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CodeBlock\", function() { return SyntaxCodeBlock; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CodeToken\", function() { return CodeToken; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Syntax; });\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blots/inline */ \"./blots/inline.js\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n /* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../blots/block */ \"./blots/block.js\");\n /* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../blots/break */ \"./blots/break.js\");\n /* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../blots/cursor */ \"./blots/cursor.js\");\n /* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../blots/text */ \"./blots/text.js\");\n /* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../formats/code */ \"./formats/code.js\");\n /* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./clipboard */ \"./modules/clipboard.js\");\n \n \n \n \n \n \n \n \n \n \n \n const TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"]('code-token', 'hljs', {\n   scope: parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE\n });\n \n class CodeToken extends _blots_inline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   static formats(node, scroll) {\n     while (node != null && node !== scroll.domNode) {\n       if (node.classList && node.classList.contains(_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].className)) {\n         return super.formats(node, scroll);\n       }\n \n       node = node.parentNode;\n     }\n \n     return undefined;\n   }\n \n   constructor(scroll, domNode, value) {\n     super(scroll, domNode, value);\n     TokenAttributor.add(this.domNode, value);\n   }\n \n   format(format, value) {\n     if (format !== CodeToken.blotName) {\n       super.format(format, value);\n     } else if (value) {\n       TokenAttributor.add(this.domNode, value);\n     } else {\n       TokenAttributor.remove(this.domNode);\n       this.domNode.classList.remove(this.statics.className);\n     }\n   }\n \n   optimize(...args) {\n     super.optimize(...args);\n \n     if (!TokenAttributor.value(this.domNode)) {\n       this.unwrap();\n     }\n   }\n \n }\n \n CodeToken.blotName = 'code-token';\n CodeToken.className = 'ql-token';\n \n class SyntaxCodeBlock extends _formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"] {\n   static create(value) {\n     const domNode = super.create(value);\n \n     if (typeof value === 'string') {\n       domNode.setAttribute('data-language', value);\n     }\n \n     return domNode;\n   }\n \n   static formats(domNode) {\n     return domNode.getAttribute('data-language') || 'plain';\n   }\n \n   static register() {} // Syntax module will register\n \n \n   format(name, value) {\n     if (name === this.statics.blotName && value) {\n       this.domNode.setAttribute('data-language', value);\n     } else {\n       super.format(name, value);\n     }\n   }\n \n   replaceWith(name, value) {\n     this.formatAt(0, this.length(), CodeToken.blotName, false);\n     return super.replaceWith(name, value);\n   }\n \n }\n \n class SyntaxCodeBlockContainer extends _formats_code__WEBPACK_IMPORTED_MODULE_9__[\"CodeBlockContainer\"] {\n   attach() {\n     super.attach();\n     this.forceNext = false;\n     this.scroll.emitMount(this);\n   }\n \n   format(name, value) {\n     if (name === SyntaxCodeBlock.blotName) {\n       this.forceNext = true;\n       this.children.forEach(child => {\n         child.format(name, value);\n       });\n     }\n   }\n \n   formatAt(index, length, name, value) {\n     if (name === SyntaxCodeBlock.blotName) {\n       this.forceNext = true;\n     }\n \n     super.formatAt(index, length, name, value);\n   }\n \n   highlight(highlight, forced = false) {\n     if (this.children.head == null) return;\n     const nodes = Array.from(this.domNode.childNodes).filter(node => node !== this.uiNode);\n     const text = \"\".concat(nodes.map(node => node.textContent).join('\\n'), \"\\n\");\n     const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n \n     if (forced || this.forceNext || this.cachedText !== text) {\n       if (text.trim().length > 0 || this.cachedText == null) {\n         const oldDelta = this.children.reduce((delta, child) => {\n           return delta.concat(Object(_blots_block__WEBPACK_IMPORTED_MODULE_5__[\"blockDelta\"])(child, false));\n         }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n         const delta = highlight(text, language);\n         oldDelta.diff(delta).reduce((index, {\n           retain,\n           attributes\n         }) => {\n           // Should be all retains\n           if (!retain) return index;\n \n           if (attributes) {\n             Object.keys(attributes).forEach(format => {\n               if ([SyntaxCodeBlock.blotName, CodeToken.blotName].includes(format)) {\n                 this.formatAt(index, retain, format, attributes[format]);\n               }\n             });\n           }\n \n           return index + retain;\n         }, 0);\n       }\n \n       this.cachedText = text;\n       this.forceNext = false;\n     }\n   }\n \n   optimize(context) {\n     super.optimize(context);\n \n     if (this.parent != null && this.children.head != null && this.uiNode != null) {\n       const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n \n       if (language !== this.uiNode.value) {\n         this.uiNode.value = language;\n       }\n     }\n   }\n \n }\n \n SyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\n SyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\n SyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _blots_text__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _blots_break__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\n \n class Syntax extends _core_module__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n   static register() {\n     _core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(CodeToken, true);\n     _core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(SyntaxCodeBlock, true);\n     _core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(SyntaxCodeBlockContainer, true);\n   }\n \n   constructor(quill, options) {\n     super(quill, options);\n \n     if (this.options.hljs == null) {\n       throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n     }\n \n     this.languages = this.options.languages.reduce((memo, {\n       key\n     }) => {\n       memo[key] = true;\n       return memo;\n     }, {});\n     this.highlightBlot = this.highlightBlot.bind(this);\n     this.initListener();\n     this.initTimer();\n   }\n \n   initListener() {\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_BLOT_MOUNT, blot => {\n       if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n       const select = this.quill.root.ownerDocument.createElement('select');\n       this.options.languages.forEach(({\n         key,\n         label\n       }) => {\n         const option = select.ownerDocument.createElement('option');\n         option.textContent = label;\n         option.setAttribute('value', key);\n         select.appendChild(option);\n       });\n       select.addEventListener('change', () => {\n         blot.format(SyntaxCodeBlock.blotName, select.value);\n         this.quill.root.focus(); // Prevent scrolling\n \n         this.highlight(blot, true);\n       });\n \n       if (blot.uiNode == null) {\n         blot.attachUI(select);\n \n         if (blot.children.head) {\n           select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n         }\n       }\n     });\n   }\n \n   initTimer() {\n     let timer = null;\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_OPTIMIZE, () => {\n       clearTimeout(timer);\n       timer = setTimeout(() => {\n         this.highlight();\n         timer = null;\n       }, this.options.interval);\n     });\n   }\n \n   highlight(blot = null, force = false) {\n     if (this.quill.selection.composing) return;\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER);\n     const range = this.quill.getSelection();\n     const blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n     blots.forEach(container => {\n       container.highlight(this.highlightBlot, force);\n     });\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n \n     if (range != null) {\n       this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n     }\n   }\n \n   highlightBlot(text, language = 'plain') {\n     language = this.languages[language] ? language : 'plain';\n \n     if (language === 'plain') {\n       return Object(_blots_text__WEBPACK_IMPORTED_MODULE_8__[\"escapeText\"])(text).split('\\n').reduce((delta, line, i) => {\n         if (i !== 0) {\n           delta.insert('\\n', {\n             [_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]: language\n           });\n         }\n \n         return delta.insert(line);\n       }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n     }\n \n     const container = this.quill.root.ownerDocument.createElement('div');\n     container.classList.add(_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].className);\n     container.innerHTML = this.options.hljs.highlight(language, text).value;\n     return Object(_clipboard__WEBPACK_IMPORTED_MODULE_10__[\"traverse\"])(this.quill.scroll, container, [(node, delta) => {\n       const value = TokenAttributor.value(node);\n \n       if (value) {\n         return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length(), {\n           [CodeToken.blotName]: value\n         }));\n       }\n \n       return delta;\n     }], [(node, delta) => {\n       return node.data.split('\\n').reduce((memo, nodeText, i) => {\n         if (i !== 0) memo.insert('\\n', {\n           [_formats_code__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]: language\n         });\n         return memo.insert(nodeText);\n       }, delta);\n     }], new WeakMap());\n   }\n \n }\n \n Syntax.DEFAULTS = {\n   hljs: (() => {\n     return window.hljs;\n   })(),\n   interval: 1000,\n   languages: [{\n     key: 'plain',\n     label: 'Plain'\n   }, {\n     key: 'bash',\n     label: 'Bash'\n   }, {\n     key: 'cpp',\n     label: 'C++'\n   }, {\n     key: 'cs',\n     label: 'C#'\n   }, {\n     key: 'css',\n     label: 'CSS'\n   }, {\n     key: 'diff',\n     label: 'Diff'\n   }, {\n     key: 'xml',\n     label: 'HTML/XML'\n   }, {\n     key: 'java',\n     label: 'Java'\n   }, {\n     key: 'javascript',\n     label: 'Javascript'\n   }, {\n     key: 'markdown',\n     label: 'Markdown'\n   }, {\n     key: 'php',\n     label: 'PHP'\n   }, {\n     key: 'python',\n     label: 'Python'\n   }, {\n     key: 'ruby',\n     label: 'Ruby'\n   }, {\n     key: 'sql',\n     label: 'SQL'\n   }]\n };\n \n \n /***/ }),\n \n /***/ \"./modules/table.js\":\n /*!**************************!*\\\n   !*** ./modules/table.js ***!\n   \\**************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n /* harmony import */ var _formats_table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formats/table */ \"./formats/table.js\");\n \n \n \n \n \n class Table extends _core_module__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   static register() {\n     _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableCell\"]);\n     _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableRow\"]);\n     _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableBody\"]);\n     _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableContainer\"]);\n   }\n \n   constructor(...args) {\n     super(...args);\n     this.listenBalanceCells();\n   }\n \n   balanceTables() {\n     this.quill.scroll.descendants(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableContainer\"]).forEach(table => {\n       table.balanceCells();\n     });\n   }\n \n   deleteColumn() {\n     const [table,, cell] = this.getTable();\n     if (cell == null) return;\n     table.deleteColumn(cell.cellOffset());\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n   }\n \n   deleteRow() {\n     const [, row] = this.getTable();\n     if (row == null) return;\n     row.remove();\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n   }\n \n   deleteTable() {\n     const [table] = this.getTable();\n     if (table == null) return;\n     const offset = table.offset();\n     table.remove();\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n     this.quill.setSelection(offset, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n   }\n \n   getTable(range = this.quill.getSelection()) {\n     if (range == null) return [null, null, null, -1];\n     const [cell, offset] = this.quill.getLine(range.index);\n \n     if (cell == null || cell.statics.blotName !== _formats_table__WEBPACK_IMPORTED_MODULE_3__[\"TableCell\"].blotName) {\n       return [null, null, null, -1];\n     }\n \n     const row = cell.parent;\n     const table = row.parent.parent;\n     return [table, row, cell, offset];\n   }\n \n   insertColumn(offset) {\n     const range = this.quill.getSelection();\n     const [table, row, cell] = this.getTable(range);\n     if (cell == null) return;\n     const column = cell.cellOffset();\n     table.insertColumn(column + offset);\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n     let shift = row.rowOffset();\n \n     if (offset === 0) {\n       shift += 1;\n     }\n \n     this.quill.setSelection(range.index + shift, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n   }\n \n   insertColumnLeft() {\n     this.insertColumn(0);\n   }\n \n   insertColumnRight() {\n     this.insertColumn(1);\n   }\n \n   insertRow(offset) {\n     const range = this.quill.getSelection();\n     const [table, row, cell] = this.getTable(range);\n     if (cell == null) return;\n     const index = row.rowOffset();\n     table.insertRow(index + offset);\n     this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n \n     if (offset > 0) {\n       this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n     } else {\n       this.quill.setSelection(range.index + row.children.length, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n     }\n   }\n \n   insertRowAbove() {\n     this.insertRow(0);\n   }\n \n   insertRowBelow() {\n     this.insertRow(1);\n   }\n \n   insertTable(rows, columns) {\n     const range = this.quill.getSelection();\n     if (range == null) return;\n     const delta = new Array(rows).fill(0).reduce(memo => {\n       const text = new Array(columns).fill('\\n').join('');\n       return memo.insert(text, {\n         table: Object(_formats_table__WEBPACK_IMPORTED_MODULE_3__[\"tableId\"])()\n       });\n     }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index));\n     this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n     this.quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n     this.balanceTables();\n   }\n \n   listenBalanceCells() {\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_OPTIMIZE, mutations => {\n       mutations.some(mutation => {\n         if (['TD', 'TR', 'TBODY', 'TABLE'].includes(mutation.target.tagName)) {\n           this.quill.once(_core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.TEXT_CHANGE, (delta, old, source) => {\n             if (source !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) return;\n             this.balanceTables();\n           });\n           return true;\n         }\n \n         return false;\n       });\n     });\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Table);\n \n /***/ }),\n \n /***/ \"./modules/toolbar.js\":\n /*!****************************!*\\\n   !*** ./modules/toolbar.js ***!\n   \\****************************/\n /*! exports provided: default, addControls */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Toolbar; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addControls\", function() { return addControls; });\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"./node_modules/parchment/src/parchment.ts\");\n /* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill */ \"./core/quill.js\");\n /* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/logger */ \"./core/logger.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n \n \n \n \n \n const supportsRootNode = ('getRootNode' in document);\n const debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('quill:toolbar');\n \n class Toolbar extends _core_module__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n   constructor(quill, options) {\n     super(quill, options);\n \n     if (Array.isArray(this.options.container)) {\n       const container = document.createElement('div');\n       addControls(container, this.options.container);\n       quill.container.parentNode.insertBefore(container, quill.container);\n       this.container = container;\n     } else if (typeof this.options.container === 'string') {\n       const rootDocument = supportsRootNode ? quill.container.getRootNode() : document;\n       this.container = rootDocument.querySelector(this.options.container);\n     } else {\n       this.container = this.options.container;\n     }\n \n     if (!(this.container instanceof HTMLElement)) {\n       return debug.error('Container required for toolbar', this.options);\n     }\n \n     this.container.classList.add('ql-toolbar');\n     this.controls = [];\n     this.handlers = {};\n     Object.keys(this.options.handlers).forEach(format => {\n       this.addHandler(format, this.options.handlers[format]);\n     });\n     Array.from(this.container.querySelectorAll('button, select')).forEach(input => {\n       this.attach(input);\n     });\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.EDITOR_CHANGE, (type, range) => {\n       if (type === _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SELECTION_CHANGE) {\n         this.update(range);\n       }\n     });\n     this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_OPTIMIZE, () => {\n       const [range] = this.quill.selection.getRange(); // quill.getSelection triggers update\n \n       this.update(range);\n     });\n   }\n \n   addHandler(format, handler) {\n     this.handlers[format] = handler;\n   }\n \n   attach(input) {\n     let format = Array.from(input.classList).find(className => {\n       return className.indexOf('ql-') === 0;\n     });\n     if (!format) return;\n     format = format.slice('ql-'.length);\n \n     if (input.tagName === 'BUTTON') {\n       input.setAttribute('type', 'button');\n     }\n \n     if (this.handlers[format] == null && this.quill.scroll.query(format) == null) {\n       debug.warn('ignoring attaching to nonexistent format', format, input);\n       return;\n     }\n \n     const eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n     input.addEventListener(eventName, e => {\n       let value;\n \n       if (input.tagName === 'SELECT') {\n         if (input.selectedIndex < 0) return;\n         const selected = input.options[input.selectedIndex];\n \n         if (selected.hasAttribute('selected')) {\n           value = false;\n         } else {\n           value = selected.value || false;\n         }\n       } else {\n         if (input.classList.contains('ql-active')) {\n           value = false;\n         } else {\n           value = input.value || !input.hasAttribute('value');\n         }\n \n         e.preventDefault();\n       }\n \n       this.quill.focus();\n       const [range] = this.quill.selection.getRange();\n \n       if (this.handlers[format] != null) {\n         this.handlers[format].call(this, value);\n       } else if (this.quill.scroll.query(format).prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]) {\n         value = prompt(\"Enter \".concat(format)); // eslint-disable-line no-alert\n \n         if (!value) return;\n         this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index).delete(range.length).insert({\n           [format]: value\n         }), _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       } else {\n         this.quill.format(format, value, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       }\n \n       this.update(range);\n     });\n     this.controls.push([format, input]);\n   }\n \n   update(range) {\n     const formats = range == null ? {} : this.quill.getFormat(range);\n     this.controls.forEach(pair => {\n       const [format, input] = pair;\n \n       if (input.tagName === 'SELECT') {\n         let option;\n \n         if (range == null) {\n           option = null;\n         } else if (formats[format] == null) {\n           option = input.querySelector('option[selected]');\n         } else if (!Array.isArray(formats[format])) {\n           let value = formats[format];\n \n           if (typeof value === 'string') {\n             value = value.replace(/\"/g, '\\\\\"');\n           }\n \n           option = input.querySelector(\"option[value=\\\"\".concat(value, \"\\\"]\"));\n         }\n \n         if (option == null) {\n           input.value = ''; // TODO make configurable?\n \n           input.selectedIndex = -1;\n         } else {\n           option.selected = true;\n         }\n       } else if (range == null) {\n         input.classList.remove('ql-active');\n       } else if (input.hasAttribute('value')) {\n         // both being null should match (default values)\n         // '1' should match with 1 (headers)\n         const isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n         input.classList.toggle('ql-active', isActive);\n       } else {\n         input.classList.toggle('ql-active', formats[format] != null);\n       }\n     });\n   }\n \n }\n \n Toolbar.DEFAULTS = {};\n \n function addButton(container, format, value) {\n   const input = document.createElement('button');\n   input.setAttribute('type', 'button');\n   input.classList.add(\"ql-\".concat(format));\n \n   if (value != null) {\n     input.value = value;\n   }\n \n   container.appendChild(input);\n }\n \n function addControls(container, groups) {\n   if (!Array.isArray(groups[0])) {\n     groups = [groups];\n   }\n \n   groups.forEach(controls => {\n     const group = document.createElement('span');\n     group.classList.add('ql-formats');\n     controls.forEach(control => {\n       if (typeof control === 'string') {\n         addButton(group, control);\n       } else {\n         const format = Object.keys(control)[0];\n         const value = control[format];\n \n         if (Array.isArray(value)) {\n           addSelect(group, format, value);\n         } else {\n           addButton(group, format, value);\n         }\n       }\n     });\n     container.appendChild(group);\n   });\n }\n \n function addSelect(container, format, values) {\n   const input = document.createElement('select');\n   input.classList.add(\"ql-\".concat(format));\n   values.forEach(value => {\n     const option = document.createElement('option');\n \n     if (value !== false) {\n       option.setAttribute('value', value);\n     } else {\n       option.setAttribute('selected', 'selected');\n     }\n \n     input.appendChild(option);\n   });\n   container.appendChild(input);\n }\n \n Toolbar.DEFAULTS = {\n   container: null,\n   handlers: {\n     clean() {\n       const range = this.quill.getSelection();\n       if (range == null) return;\n \n       if (range.length === 0) {\n         const formats = this.quill.getFormat();\n         Object.keys(formats).forEach(name => {\n           // Clean functionality in existing apps only clean inline formats\n           if (this.quill.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE) != null) {\n             this.quill.format(name, false, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n           }\n         });\n       } else {\n         this.quill.removeFormat(range, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       }\n     },\n \n     direction(value) {\n       const {\n         align\n       } = this.quill.getFormat();\n \n       if (value === 'rtl' && align == null) {\n         this.quill.format('align', 'right', _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       } else if (!value && align === 'right') {\n         this.quill.format('align', false, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       }\n \n       this.quill.format('direction', value, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n     },\n \n     indent(value) {\n       const range = this.quill.getSelection();\n       const formats = this.quill.getFormat(range);\n       const indent = parseInt(formats.indent || 0, 10);\n \n       if (value === '+1' || value === '-1') {\n         let modifier = value === '+1' ? 1 : -1;\n         if (formats.direction === 'rtl') modifier *= -1;\n         this.quill.format('indent', indent + modifier, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       }\n     },\n \n     link(value) {\n       if (value === true) {\n         value = prompt('Enter link URL:'); // eslint-disable-line no-alert\n       }\n \n       this.quill.format('link', value, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n     },\n \n     list(value) {\n       const range = this.quill.getSelection();\n       const formats = this.quill.getFormat(range);\n \n       if (value === 'check') {\n         if (formats.list === 'checked' || formats.list === 'unchecked') {\n           this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n         } else {\n           this.quill.format('list', 'unchecked', _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n         }\n       } else {\n         this.quill.format('list', value, _core_quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n       }\n     }\n \n   }\n };\n \n \n /***/ }),\n \n /***/ \"./modules/uploader.js\":\n /*!*****************************!*\\\n   !*** ./modules/uploader.js ***!\n   \\*****************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"./node_modules/quill-delta/dist/Delta.js\");\n /* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter */ \"./core/emitter.js\");\n /* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/module */ \"./core/module.js\");\n \n \n \n \n class Uploader extends _core_module__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   constructor(quill, options) {\n     super(quill, options);\n     quill.root.addEventListener('drop', e => {\n       e.preventDefault();\n       let native;\n \n       if (document.caretRangeFromPoint) {\n         native = document.caretRangeFromPoint(e.clientX, e.clientY);\n       } else if (document.caretPositionFromPoint) {\n         const position = document.caretPositionFromPoint(e.clientX, e.clientY);\n         native = document.createRange();\n         native.setStart(position.offsetNode, position.offset);\n         native.setEnd(position.offsetNode, position.offset);\n       } else {\n         return;\n       }\n \n       const normalized = quill.selection.normalizeNative(native);\n       const range = quill.selection.normalizedToRange(normalized);\n       this.upload(range, e.dataTransfer.files);\n     });\n   }\n \n   upload(range, files) {\n     const uploads = [];\n     Array.from(files).forEach(file => {\n       if (file && this.options.mimetypes.includes(file.type)) {\n         uploads.push(file);\n       }\n     });\n \n     if (uploads.length > 0) {\n       this.options.handler.call(this, range, uploads);\n     }\n   }\n \n }\n \n Uploader.DEFAULTS = {\n   mimetypes: ['image/png', 'image/jpeg'],\n \n   handler(range, files) {\n     const promises = files.map(file => {\n       return new Promise(resolve => {\n         const reader = new FileReader();\n \n         reader.onload = e => {\n           resolve(e.target.result);\n         };\n \n         reader.readAsDataURL(file);\n       });\n     });\n     Promise.all(promises).then(images => {\n       const update = images.reduce((delta, image) => {\n         return delta.insert({\n           image\n         });\n       }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index).delete(range.length));\n       this.quill.updateContents(update, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n       this.quill.setSelection(range.index + images.length, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n     });\n   }\n \n };\n /* harmony default export */ __webpack_exports__[\"default\"] = (Uploader);\n \n /***/ }),\n \n /***/ \"./node_modules/clone/clone.js\":\n /*!*************************************!*\\\n   !*** ./node_modules/clone/clone.js ***!\n   \\*************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n var clone = (function() {\n 'use strict';\n \n function _instanceof(obj, type) {\n   return type != null && obj instanceof type;\n }\n \n var nativeMap;\n try {\n   nativeMap = Map;\n } catch(_) {\n   // maybe a reference error because no `Map`. Give it a dummy value that no\n   // value will ever be an instanceof.\n   nativeMap = function() {};\n }\n \n var nativeSet;\n try {\n   nativeSet = Set;\n } catch(_) {\n   nativeSet = function() {};\n }\n \n var nativePromise;\n try {\n   nativePromise = Promise;\n } catch(_) {\n   nativePromise = function() {};\n }\n \n /**\n  * Clones (copies) an Object using deep copying.\n  *\n  * This function supports circular references by default, but if you are certain\n  * there are no circular references in your object, you can save some CPU time\n  * by calling clone(obj, false).\n  *\n  * Caution: if `circular` is false and `parent` contains circular references,\n  * your program may enter an infinite loop and crash.\n  *\n  * @param `parent` - the object to be cloned\n  * @param `circular` - set to true if the object to be cloned may contain\n  *    circular references. (optional - true by default)\n  * @param `depth` - set to a number if the object is only to be cloned to\n  *    a particular depth. (optional - defaults to Infinity)\n  * @param `prototype` - sets the prototype to be used when cloning an object.\n  *    (optional - defaults to parent prototype).\n  * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n  *    should be cloned as well. Non-enumerable properties on the prototype\n  *    chain will be ignored. (optional - false by default)\n */\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\n   if (typeof circular === 'object') {\n     depth = circular.depth;\n     prototype = circular.prototype;\n     includeNonEnumerable = circular.includeNonEnumerable;\n     circular = circular.circular;\n   }\n   // maintain two arrays for circular references, where corresponding parents\n   // and children have the same index\n   var allParents = [];\n   var allChildren = [];\n \n   var useBuffer = typeof Buffer != 'undefined';\n \n   if (typeof circular == 'undefined')\n     circular = true;\n \n   if (typeof depth == 'undefined')\n     depth = Infinity;\n \n   // recurse this function so we don't reset allParents and allChildren\n   function _clone(parent, depth) {\n     // cloning null always returns null\n     if (parent === null)\n       return null;\n \n     if (depth === 0)\n       return parent;\n \n     var child;\n     var proto;\n     if (typeof parent != 'object') {\n       return parent;\n     }\n \n     if (_instanceof(parent, nativeMap)) {\n       child = new nativeMap();\n     } else if (_instanceof(parent, nativeSet)) {\n       child = new nativeSet();\n     } else if (_instanceof(parent, nativePromise)) {\n       child = new nativePromise(function (resolve, reject) {\n         parent.then(function(value) {\n           resolve(_clone(value, depth - 1));\n         }, function(err) {\n           reject(_clone(err, depth - 1));\n         });\n       });\n     } else if (clone.__isArray(parent)) {\n       child = [];\n     } else if (clone.__isRegExp(parent)) {\n       child = new RegExp(parent.source, __getRegExpFlags(parent));\n       if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n     } else if (clone.__isDate(parent)) {\n       child = new Date(parent.getTime());\n     } else if (useBuffer && Buffer.isBuffer(parent)) {\n       if (Buffer.allocUnsafe) {\n         // Node.js >= 4.5.0\n         child = Buffer.allocUnsafe(parent.length);\n       } else {\n         // Older Node.js versions\n         child = new Buffer(parent.length);\n       }\n       parent.copy(child);\n       return child;\n     } else if (_instanceof(parent, Error)) {\n       child = Object.create(parent);\n     } else {\n       if (typeof prototype == 'undefined') {\n         proto = Object.getPrototypeOf(parent);\n         child = Object.create(proto);\n       }\n       else {\n         child = Object.create(prototype);\n         proto = prototype;\n       }\n     }\n \n     if (circular) {\n       var index = allParents.indexOf(parent);\n \n       if (index != -1) {\n         return allChildren[index];\n       }\n       allParents.push(parent);\n       allChildren.push(child);\n     }\n \n     if (_instanceof(parent, nativeMap)) {\n       parent.forEach(function(value, key) {\n         var keyChild = _clone(key, depth - 1);\n         var valueChild = _clone(value, depth - 1);\n         child.set(keyChild, valueChild);\n       });\n     }\n     if (_instanceof(parent, nativeSet)) {\n       parent.forEach(function(value) {\n         var entryChild = _clone(value, depth - 1);\n         child.add(entryChild);\n       });\n     }\n \n     for (var i in parent) {\n       var attrs;\n       if (proto) {\n         attrs = Object.getOwnPropertyDescriptor(proto, i);\n       }\n \n       if (attrs && attrs.set == null) {\n         continue;\n       }\n       child[i] = _clone(parent[i], depth - 1);\n     }\n \n     if (Object.getOwnPropertySymbols) {\n       var symbols = Object.getOwnPropertySymbols(parent);\n       for (var i = 0; i < symbols.length; i++) {\n         // Don't need to worry about cloning a symbol because it is a primitive,\n         // like a number or string.\n         var symbol = symbols[i];\n         var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n         if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n           continue;\n         }\n         child[symbol] = _clone(parent[symbol], depth - 1);\n         if (!descriptor.enumerable) {\n           Object.defineProperty(child, symbol, {\n             enumerable: false\n           });\n         }\n       }\n     }\n \n     if (includeNonEnumerable) {\n       var allPropertyNames = Object.getOwnPropertyNames(parent);\n       for (var i = 0; i < allPropertyNames.length; i++) {\n         var propertyName = allPropertyNames[i];\n         var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n         if (descriptor && descriptor.enumerable) {\n           continue;\n         }\n         child[propertyName] = _clone(parent[propertyName], depth - 1);\n         Object.defineProperty(child, propertyName, {\n           enumerable: false\n         });\n       }\n     }\n \n     return child;\n   }\n \n   return _clone(parent, depth);\n }\n \n /**\n  * Simple flat clone using prototype, accepts only objects, usefull for property\n  * override on FLAT configuration object (no nested props).\n  *\n  * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n  * works.\n  */\n clone.clonePrototype = function clonePrototype(parent) {\n   if (parent === null)\n     return null;\n \n   var c = function () {};\n   c.prototype = parent;\n   return new c();\n };\n \n // private utility functions\n \n function __objToStr(o) {\n   return Object.prototype.toString.call(o);\n }\n clone.__objToStr = __objToStr;\n \n function __isDate(o) {\n   return typeof o === 'object' && __objToStr(o) === '[object Date]';\n }\n clone.__isDate = __isDate;\n \n function __isArray(o) {\n   return typeof o === 'object' && __objToStr(o) === '[object Array]';\n }\n clone.__isArray = __isArray;\n \n function __isRegExp(o) {\n   return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n }\n clone.__isRegExp = __isRegExp;\n \n function __getRegExpFlags(re) {\n   var flags = '';\n   if (re.global) flags += 'g';\n   if (re.ignoreCase) flags += 'i';\n   if (re.multiline) flags += 'm';\n   return flags;\n }\n clone.__getRegExpFlags = __getRegExpFlags;\n \n return clone;\n })();\n \n if (typeof module === 'object' && module.exports) {\n   module.exports = clone;\n }\n \n \n /***/ }),\n \n /***/ \"./node_modules/deep-equal/index.js\":\n /*!******************************************!*\\\n   !*** ./node_modules/deep-equal/index.js ***!\n   \\******************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n var objectKeys = __webpack_require__(/*! object-keys */ \"./node_modules/object-keys/index.js\");\n var isArguments = __webpack_require__(/*! is-arguments */ \"./node_modules/is-arguments/index.js\");\n var is = __webpack_require__(/*! object-is */ \"./node_modules/object-is/index.js\");\n var isRegex = __webpack_require__(/*! is-regex */ \"./node_modules/is-regex/index.js\");\n var flags = __webpack_require__(/*! regexp.prototype.flags */ \"./node_modules/regexp.prototype.flags/index.js\");\n var isDate = __webpack_require__(/*! is-date-object */ \"./node_modules/is-date-object/index.js\");\n \n var getTime = Date.prototype.getTime;\n \n function deepEqual(actual, expected, options) {\n   var opts = options || {};\n \n   // 7.1. All identical values are equivalent, as determined by ===.\n   if (opts.strict ? is(actual, expected) : actual === expected) {\n     return true;\n   }\n \n   // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n   if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n     return opts.strict ? is(actual, expected) : actual == expected;\n   }\n \n   /*\n    * 7.4. For all other Object pairs, including Array objects, equivalence is\n    * determined by having the same number of owned properties (as verified\n    * with Object.prototype.hasOwnProperty.call), the same set of keys\n    * (although not necessarily the same order), equivalent values for every\n    * corresponding key, and an identical 'prototype' property. Note: this\n    * accounts for both named and indexed properties on Arrays.\n    */\n   // eslint-disable-next-line no-use-before-define\n   return objEquiv(actual, expected, opts);\n }\n \n function isUndefinedOrNull(value) {\n   return value === null || value === undefined;\n }\n \n function isBuffer(x) {\n   if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n     return false;\n   }\n   if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n     return false;\n   }\n   if (x.length > 0 && typeof x[0] !== 'number') {\n     return false;\n   }\n   return true;\n }\n \n function objEquiv(a, b, opts) {\n   /* eslint max-statements: [2, 50] */\n   var i, key;\n   if (typeof a !== typeof b) { return false; }\n   if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n \n   // an identical 'prototype' property.\n   if (a.prototype !== b.prototype) { return false; }\n \n   if (isArguments(a) !== isArguments(b)) { return false; }\n \n   var aIsRegex = isRegex(a);\n   var bIsRegex = isRegex(b);\n   if (aIsRegex !== bIsRegex) { return false; }\n   if (aIsRegex || bIsRegex) {\n     return a.source === b.source && flags(a) === flags(b);\n   }\n \n   if (isDate(a) && isDate(b)) {\n     return getTime.call(a) === getTime.call(b);\n   }\n \n   var aIsBuffer = isBuffer(a);\n   var bIsBuffer = isBuffer(b);\n   if (aIsBuffer !== bIsBuffer) { return false; }\n   if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n     if (a.length !== b.length) { return false; }\n     for (i = 0; i < a.length; i++) {\n       if (a[i] !== b[i]) { return false; }\n     }\n     return true;\n   }\n \n   if (typeof a !== typeof b) { return false; }\n \n   try {\n     var ka = objectKeys(a);\n     var kb = objectKeys(b);\n   } catch (e) { // happens when one is a string literal and the other isn't\n     return false;\n   }\n   // having the same number of owned properties (keys incorporates hasOwnProperty)\n   if (ka.length !== kb.length) { return false; }\n \n   // the same set of keys (although not necessarily the same order),\n   ka.sort();\n   kb.sort();\n   // ~~~cheap key test\n   for (i = ka.length - 1; i >= 0; i--) {\n     if (ka[i] != kb[i]) { return false; }\n   }\n   // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n   for (i = ka.length - 1; i >= 0; i--) {\n     key = ka[i];\n     if (!deepEqual(a[key], b[key], opts)) { return false; }\n   }\n \n   return true;\n }\n \n module.exports = deepEqual;\n \n \n /***/ }),\n \n /***/ \"./node_modules/define-properties/index.js\":\n /*!*************************************************!*\\\n   !*** ./node_modules/define-properties/index.js ***!\n   \\*************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var keys = __webpack_require__(/*! object-keys */ \"./node_modules/object-keys/index.js\");\n var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n \n var toStr = Object.prototype.toString;\n var concat = Array.prototype.concat;\n var origDefineProperty = Object.defineProperty;\n \n var isFunction = function (fn) {\n   return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n };\n \n var arePropertyDescriptorsSupported = function () {\n   var obj = {};\n   try {\n     origDefineProperty(obj, 'x', { enumerable: false, value: obj });\n     // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n     for (var _ in obj) { // jscs:ignore disallowUnusedVariables\n       return false;\n     }\n     return obj.x === obj;\n   } catch (e) { /* this is IE 8. */\n     return false;\n   }\n };\n var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n \n var defineProperty = function (object, name, value, predicate) {\n   if (name in object && (!isFunction(predicate) || !predicate())) {\n     return;\n   }\n   if (supportsDescriptors) {\n     origDefineProperty(object, name, {\n       configurable: true,\n       enumerable: false,\n       value: value,\n       writable: true\n     });\n   } else {\n     object[name] = value;\n   }\n };\n \n var defineProperties = function (object, map) {\n   var predicates = arguments.length > 2 ? arguments[2] : {};\n   var props = keys(map);\n   if (hasSymbols) {\n     props = concat.call(props, Object.getOwnPropertySymbols(map));\n   }\n   for (var i = 0; i < props.length; i += 1) {\n     defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n   }\n };\n \n defineProperties.supportsDescriptors = !!supportsDescriptors;\n \n module.exports = defineProperties;\n \n \n /***/ }),\n \n /***/ \"./node_modules/es-abstract/GetIntrinsic.js\":\n /*!**************************************************!*\\\n   !*** ./node_modules/es-abstract/GetIntrinsic.js ***!\n   \\**************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n /* globals\n   Atomics,\n   SharedArrayBuffer,\n */\n \n var undefined;\n \n var $TypeError = TypeError;\n \n var $gOPD = Object.getOwnPropertyDescriptor;\n if ($gOPD) {\n   try {\n     $gOPD({}, '');\n   } catch (e) {\n     $gOPD = null; // this is IE 8, which has a broken gOPD\n   }\n }\n \n var throwTypeError = function () { throw new $TypeError(); };\n var ThrowTypeError = $gOPD\n   ? (function () {\n     try {\n       // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n       arguments.callee; // IE 8 does not throw here\n       return throwTypeError;\n     } catch (calleeThrows) {\n       try {\n         // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n         return $gOPD(arguments, 'callee').get;\n       } catch (gOPDthrows) {\n         return throwTypeError;\n       }\n     }\n   }())\n   : throwTypeError;\n \n var hasSymbols = __webpack_require__(/*! has-symbols */ \"./node_modules/has-symbols/index.js\")();\n \n var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n \n var generator; // = function * () {};\n var generatorFunction = generator ? getProto(generator) : undefined;\n var asyncFn; // async function() {};\n var asyncFunction = asyncFn ? asyncFn.constructor : undefined;\n var asyncGen; // async function * () {};\n var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\n var asyncGenIterator = asyncGen ? asyncGen() : undefined;\n \n var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n \n var INTRINSICS = {\n   '%Array%': Array,\n   '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n   '%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n   '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n   '%ArrayPrototype%': Array.prototype,\n   '%ArrayProto_entries%': Array.prototype.entries,\n   '%ArrayProto_forEach%': Array.prototype.forEach,\n   '%ArrayProto_keys%': Array.prototype.keys,\n   '%ArrayProto_values%': Array.prototype.values,\n   '%AsyncFromSyncIteratorPrototype%': undefined,\n   '%AsyncFunction%': asyncFunction,\n   '%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n   '%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n   '%AsyncGeneratorFunction%': asyncGenFunction,\n   '%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n   '%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n   '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n   '%Boolean%': Boolean,\n   '%BooleanPrototype%': Boolean.prototype,\n   '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n   '%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n   '%Date%': Date,\n   '%DatePrototype%': Date.prototype,\n   '%decodeURI%': decodeURI,\n   '%decodeURIComponent%': decodeURIComponent,\n   '%encodeURI%': encodeURI,\n   '%encodeURIComponent%': encodeURIComponent,\n   '%Error%': Error,\n   '%ErrorPrototype%': Error.prototype,\n   '%eval%': eval, // eslint-disable-line no-eval\n   '%EvalError%': EvalError,\n   '%EvalErrorPrototype%': EvalError.prototype,\n   '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n   '%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n   '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n   '%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n   '%Function%': Function,\n   '%FunctionPrototype%': Function.prototype,\n   '%Generator%': generator ? getProto(generator()) : undefined,\n   '%GeneratorFunction%': generatorFunction,\n   '%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n   '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n   '%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n   '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n   '%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n   '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n   '%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n   '%isFinite%': isFinite,\n   '%isNaN%': isNaN,\n   '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n   '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n   '%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n   '%Map%': typeof Map === 'undefined' ? undefined : Map,\n   '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n   '%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n   '%Math%': Math,\n   '%Number%': Number,\n   '%NumberPrototype%': Number.prototype,\n   '%Object%': Object,\n   '%ObjectPrototype%': Object.prototype,\n   '%ObjProto_toString%': Object.prototype.toString,\n   '%ObjProto_valueOf%': Object.prototype.valueOf,\n   '%parseFloat%': parseFloat,\n   '%parseInt%': parseInt,\n   '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n   '%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n   '%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n   '%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n   '%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n   '%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n   '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n   '%RangeError%': RangeError,\n   '%RangeErrorPrototype%': RangeError.prototype,\n   '%ReferenceError%': ReferenceError,\n   '%ReferenceErrorPrototype%': ReferenceError.prototype,\n   '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n   '%RegExp%': RegExp,\n   '%RegExpPrototype%': RegExp.prototype,\n   '%Set%': typeof Set === 'undefined' ? undefined : Set,\n   '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n   '%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n   '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n   '%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n   '%String%': String,\n   '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n   '%StringPrototype%': String.prototype,\n   '%Symbol%': hasSymbols ? Symbol : undefined,\n   '%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n   '%SyntaxError%': SyntaxError,\n   '%SyntaxErrorPrototype%': SyntaxError.prototype,\n   '%ThrowTypeError%': ThrowTypeError,\n   '%TypedArray%': TypedArray,\n   '%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n   '%TypeError%': $TypeError,\n   '%TypeErrorPrototype%': $TypeError.prototype,\n   '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n   '%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n   '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n   '%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n   '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n   '%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n   '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n   '%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n   '%URIError%': URIError,\n   '%URIErrorPrototype%': URIError.prototype,\n   '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n   '%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n   '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n   '%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n };\n \n var bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\n var $replace = bind.call(Function.call, String.prototype.replace);\n \n /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n var rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\n var reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\n var stringToPath = function stringToPath(string) {\n   var result = [];\n   $replace(string, rePropName, function (match, number, quote, subString) {\n     result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n   });\n   return result;\n };\n /* end adaptation */\n \n var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n   if (!(name in INTRINSICS)) {\n     throw new SyntaxError('intrinsic ' + name + ' does not exist!');\n   }\n \n   // istanbul ignore if // hopefully this is impossible to test :-)\n   if (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n     throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n   }\n \n   return INTRINSICS[name];\n };\n \n module.exports = function GetIntrinsic(name, allowMissing) {\n   if (typeof name !== 'string' || name.length === 0) {\n     throw new TypeError('intrinsic name must be a non-empty string');\n   }\n   if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n     throw new TypeError('\"allowMissing\" argument must be a boolean');\n   }\n \n   var parts = stringToPath(name);\n \n   var value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n   for (var i = 1; i < parts.length; i += 1) {\n     if (value != null) {\n       if ($gOPD && (i + 1) >= parts.length) {\n         var desc = $gOPD(value, parts[i]);\n         if (!allowMissing && !(parts[i] in value)) {\n           throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n         }\n         value = desc ? (desc.get || desc.value) : value[parts[i]];\n       } else {\n         value = value[parts[i]];\n       }\n     }\n   }\n   return value;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/es-abstract/helpers/callBind.js\":\n /*!******************************************************!*\\\n   !*** ./node_modules/es-abstract/helpers/callBind.js ***!\n   \\******************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\n \n var GetIntrinsic = __webpack_require__(/*! ../GetIntrinsic */ \"./node_modules/es-abstract/GetIntrinsic.js\");\n \n var $apply = GetIntrinsic('%Function.prototype.apply%');\n var $call = GetIntrinsic('%Function.prototype.call%');\n var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n \n module.exports = function callBind() {\n   return $reflectApply(bind, $call, arguments);\n };\n \n module.exports.apply = function applyBind() {\n   return $reflectApply(bind, $apply, arguments);\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/eventemitter3/index.js\":\n /*!*********************************************!*\\\n   !*** ./node_modules/eventemitter3/index.js ***!\n   \\*********************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n 'use strict';\n \n var has = Object.prototype.hasOwnProperty\n   , prefix = '~';\n \n /**\n  * Constructor to create a storage for our `EE` objects.\n  * An `Events` instance is a plain object whose properties are event names.\n  *\n  * @constructor\n  * @private\n  */\n function Events() {}\n \n //\n // We try to not inherit from `Object.prototype`. In some engines creating an\n // instance in this way is faster than calling `Object.create(null)` directly.\n // If `Object.create(null)` is not supported we prefix the event names with a\n // character to make sure that the built-in object properties are not\n // overridden or used as an attack vector.\n //\n if (Object.create) {\n   Events.prototype = Object.create(null);\n \n   //\n   // This hack is needed because the `__proto__` property is still inherited in\n   // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n   //\n   if (!new Events().__proto__) prefix = false;\n }\n \n /**\n  * Representation of a single event listener.\n  *\n  * @param {Function} fn The listener function.\n  * @param {*} context The context to invoke the listener with.\n  * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n  * @constructor\n  * @private\n  */\n function EE(fn, context, once) {\n   this.fn = fn;\n   this.context = context;\n   this.once = once || false;\n }\n \n /**\n  * Add a listener for a given event.\n  *\n  * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n  * @param {(String|Symbol)} event The event name.\n  * @param {Function} fn The listener function.\n  * @param {*} context The context to invoke the listener with.\n  * @param {Boolean} once Specify if the listener is a one-time listener.\n  * @returns {EventEmitter}\n  * @private\n  */\n function addListener(emitter, event, fn, context, once) {\n   if (typeof fn !== 'function') {\n     throw new TypeError('The listener must be a function');\n   }\n \n   var listener = new EE(fn, context || emitter, once)\n     , evt = prefix ? prefix + event : event;\n \n   if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n   else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n   else emitter._events[evt] = [emitter._events[evt], listener];\n \n   return emitter;\n }\n \n /**\n  * Clear event by name.\n  *\n  * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n  * @param {(String|Symbol)} evt The Event name.\n  * @private\n  */\n function clearEvent(emitter, evt) {\n   if (--emitter._eventsCount === 0) emitter._events = new Events();\n   else delete emitter._events[evt];\n }\n \n /**\n  * Minimal `EventEmitter` interface that is molded against the Node.js\n  * `EventEmitter` interface.\n  *\n  * @constructor\n  * @public\n  */\n function EventEmitter() {\n   this._events = new Events();\n   this._eventsCount = 0;\n }\n \n /**\n  * Return an array listing the events for which the emitter has registered\n  * listeners.\n  *\n  * @returns {Array}\n  * @public\n  */\n EventEmitter.prototype.eventNames = function eventNames() {\n   var names = []\n     , events\n     , name;\n \n   if (this._eventsCount === 0) return names;\n \n   for (name in (events = this._events)) {\n     if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n   }\n \n   if (Object.getOwnPropertySymbols) {\n     return names.concat(Object.getOwnPropertySymbols(events));\n   }\n \n   return names;\n };\n \n /**\n  * Return the listeners registered for a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @returns {Array} The registered listeners.\n  * @public\n  */\n EventEmitter.prototype.listeners = function listeners(event) {\n   var evt = prefix ? prefix + event : event\n     , handlers = this._events[evt];\n \n   if (!handlers) return [];\n   if (handlers.fn) return [handlers.fn];\n \n   for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n     ee[i] = handlers[i].fn;\n   }\n \n   return ee;\n };\n \n /**\n  * Return the number of listeners listening to a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @returns {Number} The number of listeners.\n  * @public\n  */\n EventEmitter.prototype.listenerCount = function listenerCount(event) {\n   var evt = prefix ? prefix + event : event\n     , listeners = this._events[evt];\n \n   if (!listeners) return 0;\n   if (listeners.fn) return 1;\n   return listeners.length;\n };\n \n /**\n  * Calls each of the listeners registered for a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @returns {Boolean} `true` if the event had listeners, else `false`.\n  * @public\n  */\n EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n   var evt = prefix ? prefix + event : event;\n \n   if (!this._events[evt]) return false;\n \n   var listeners = this._events[evt]\n     , len = arguments.length\n     , args\n     , i;\n \n   if (listeners.fn) {\n     if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n \n     switch (len) {\n       case 1: return listeners.fn.call(listeners.context), true;\n       case 2: return listeners.fn.call(listeners.context, a1), true;\n       case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n       case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n       case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n       case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n     }\n \n     for (i = 1, args = new Array(len -1); i < len; i++) {\n       args[i - 1] = arguments[i];\n     }\n \n     listeners.fn.apply(listeners.context, args);\n   } else {\n     var length = listeners.length\n       , j;\n \n     for (i = 0; i < length; i++) {\n       if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n \n       switch (len) {\n         case 1: listeners[i].fn.call(listeners[i].context); break;\n         case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n         case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n         case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n         default:\n           if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n             args[j - 1] = arguments[j];\n           }\n \n           listeners[i].fn.apply(listeners[i].context, args);\n       }\n     }\n   }\n \n   return true;\n };\n \n /**\n  * Add a listener for a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @param {Function} fn The listener function.\n  * @param {*} [context=this] The context to invoke the listener with.\n  * @returns {EventEmitter} `this`.\n  * @public\n  */\n EventEmitter.prototype.on = function on(event, fn, context) {\n   return addListener(this, event, fn, context, false);\n };\n \n /**\n  * Add a one-time listener for a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @param {Function} fn The listener function.\n  * @param {*} [context=this] The context to invoke the listener with.\n  * @returns {EventEmitter} `this`.\n  * @public\n  */\n EventEmitter.prototype.once = function once(event, fn, context) {\n   return addListener(this, event, fn, context, true);\n };\n \n /**\n  * Remove the listeners of a given event.\n  *\n  * @param {(String|Symbol)} event The event name.\n  * @param {Function} fn Only remove the listeners that match this function.\n  * @param {*} context Only remove the listeners that have this context.\n  * @param {Boolean} once Only remove one-time listeners.\n  * @returns {EventEmitter} `this`.\n  * @public\n  */\n EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n   var evt = prefix ? prefix + event : event;\n \n   if (!this._events[evt]) return this;\n   if (!fn) {\n     clearEvent(this, evt);\n     return this;\n   }\n \n   var listeners = this._events[evt];\n \n   if (listeners.fn) {\n     if (\n       listeners.fn === fn &&\n       (!once || listeners.once) &&\n       (!context || listeners.context === context)\n     ) {\n       clearEvent(this, evt);\n     }\n   } else {\n     for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n       if (\n         listeners[i].fn !== fn ||\n         (once && !listeners[i].once) ||\n         (context && listeners[i].context !== context)\n       ) {\n         events.push(listeners[i]);\n       }\n     }\n \n     //\n     // Reset the array, or remove it completely if we have no more listeners.\n     //\n     if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n     else clearEvent(this, evt);\n   }\n \n   return this;\n };\n \n /**\n  * Remove all listeners, or those of the specified event.\n  *\n  * @param {(String|Symbol)} [event] The event name.\n  * @returns {EventEmitter} `this`.\n  * @public\n  */\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n   var evt;\n \n   if (event) {\n     evt = prefix ? prefix + event : event;\n     if (this._events[evt]) clearEvent(this, evt);\n   } else {\n     this._events = new Events();\n     this._eventsCount = 0;\n   }\n \n   return this;\n };\n \n //\n // Alias methods names because people roll like that.\n //\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\n \n //\n // Expose the prefix.\n //\n EventEmitter.prefixed = prefix;\n \n //\n // Allow `EventEmitter` to be imported as module namespace.\n //\n EventEmitter.EventEmitter = EventEmitter;\n \n //\n // Expose the module.\n //\n if ('undefined' !== typeof module) {\n   module.exports = EventEmitter;\n }\n \n \n /***/ }),\n \n /***/ \"./node_modules/extend/index.js\":\n /*!**************************************!*\\\n   !*** ./node_modules/extend/index.js ***!\n   \\**************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n 'use strict';\n \n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n var defineProperty = Object.defineProperty;\n var gOPD = Object.getOwnPropertyDescriptor;\n \n var isArray = function isArray(arr) {\n   if (typeof Array.isArray === 'function') {\n     return Array.isArray(arr);\n   }\n \n   return toStr.call(arr) === '[object Array]';\n };\n \n var isPlainObject = function isPlainObject(obj) {\n   if (!obj || toStr.call(obj) !== '[object Object]') {\n     return false;\n   }\n \n   var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n   var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n   // Not own constructor property must be Object\n   if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n     return false;\n   }\n \n   // Own properties are enumerated firstly, so to speed up,\n   // if last one is own, then all properties are own.\n   var key;\n   for (key in obj) { /**/ }\n \n   return typeof key === 'undefined' || hasOwn.call(obj, key);\n };\n \n // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n var setProperty = function setProperty(target, options) {\n   if (defineProperty && options.name === '__proto__') {\n     defineProperty(target, options.name, {\n       enumerable: true,\n       configurable: true,\n       value: options.newValue,\n       writable: true\n     });\n   } else {\n     target[options.name] = options.newValue;\n   }\n };\n \n // Return undefined instead of __proto__ if '__proto__' is not an own property\n var getProperty = function getProperty(obj, name) {\n   if (name === '__proto__') {\n     if (!hasOwn.call(obj, name)) {\n       return void 0;\n     } else if (gOPD) {\n       // In early versions of node, obj['__proto__'] is buggy when obj has\n       // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n       return gOPD(obj, name).value;\n     }\n   }\n \n   return obj[name];\n };\n \n module.exports = function extend() {\n   var options, name, src, copy, copyIsArray, clone;\n   var target = arguments[0];\n   var i = 1;\n   var length = arguments.length;\n   var deep = false;\n \n   // Handle a deep copy situation\n   if (typeof target === 'boolean') {\n     deep = target;\n     target = arguments[1] || {};\n     // skip the boolean and the target\n     i = 2;\n   }\n   if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n     target = {};\n   }\n \n   for (; i < length; ++i) {\n     options = arguments[i];\n     // Only deal with non-null/undefined values\n     if (options != null) {\n       // Extend the base object\n       for (name in options) {\n         src = getProperty(target, name);\n         copy = getProperty(options, name);\n \n         // Prevent never-ending loop\n         if (target !== copy) {\n           // Recurse if we're merging plain objects or arrays\n           if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n             if (copyIsArray) {\n               copyIsArray = false;\n               clone = src && isArray(src) ? src : [];\n             } else {\n               clone = src && isPlainObject(src) ? src : {};\n             }\n \n             // Never move original objects, clone them\n             setProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n \n           // Don't bring in undefined values\n           } else if (typeof copy !== 'undefined') {\n             setProperty(target, { name: name, newValue: copy });\n           }\n         }\n       }\n     }\n   }\n \n   // Return the modified object\n   return target;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/fast-diff/diff.js\":\n /*!****************************************!*\\\n   !*** ./node_modules/fast-diff/diff.js ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n /**\n  * This library modifies the diff-patch-match library by Neil Fraser\n  * by removing the patch and match functionality and certain advanced\n  * options in the diff function. The original license is as follows:\n  *\n  * ===\n  *\n  * Diff Match and Patch\n  *\n  * Copyright 2006 Google Inc.\n  * http://code.google.com/p/google-diff-match-patch/\n  *\n  * Licensed under the Apache License, Version 2.0 (the \"License\");\n  * you may not use this file except in compliance with the License.\n  * You may obtain a copy of the License at\n  *\n  *   http://www.apache.org/licenses/LICENSE-2.0\n  *\n  * Unless required by applicable law or agreed to in writing, software\n  * distributed under the License is distributed on an \"AS IS\" BASIS,\n  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  * See the License for the specific language governing permissions and\n  * limitations under the License.\n  */\n \n \n /**\n  * The data structure representing a diff is an array of tuples:\n  * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n  * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n  */\n var DIFF_DELETE = -1;\n var DIFF_INSERT = 1;\n var DIFF_EQUAL = 0;\n \n \n /**\n  * Find the differences between two texts.  Simplifies the problem by stripping\n  * any common prefix or suffix off the texts before diffing.\n  * @param {string} text1 Old string to be diffed.\n  * @param {string} text2 New string to be diffed.\n  * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n  * @return {Array} Array of diff tuples.\n  */\n function diff_main(text1, text2, cursor_pos, _fix_unicode) {\n   // Check for equality\n   if (text1 === text2) {\n     if (text1) {\n       return [[DIFF_EQUAL, text1]];\n     }\n     return [];\n   }\n \n   if (cursor_pos != null) {\n     var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n     if (editdiff) {\n       return editdiff;\n     }\n   }\n \n   // Trim off common prefix (speedup).\n   var commonlength = diff_commonPrefix(text1, text2);\n   var commonprefix = text1.substring(0, commonlength);\n   text1 = text1.substring(commonlength);\n   text2 = text2.substring(commonlength);\n \n   // Trim off common suffix (speedup).\n   commonlength = diff_commonSuffix(text1, text2);\n   var commonsuffix = text1.substring(text1.length - commonlength);\n   text1 = text1.substring(0, text1.length - commonlength);\n   text2 = text2.substring(0, text2.length - commonlength);\n \n   // Compute the diff on the middle block.\n   var diffs = diff_compute_(text1, text2);\n \n   // Restore the prefix and suffix.\n   if (commonprefix) {\n     diffs.unshift([DIFF_EQUAL, commonprefix]);\n   }\n   if (commonsuffix) {\n     diffs.push([DIFF_EQUAL, commonsuffix]);\n   }\n   diff_cleanupMerge(diffs, _fix_unicode);\n   return diffs;\n };\n \n \n /**\n  * Find the differences between two texts.  Assumes that the texts do not\n  * have any common prefix or suffix.\n  * @param {string} text1 Old string to be diffed.\n  * @param {string} text2 New string to be diffed.\n  * @return {Array} Array of diff tuples.\n  */\n function diff_compute_(text1, text2) {\n   var diffs;\n \n   if (!text1) {\n     // Just add some text (speedup).\n     return [[DIFF_INSERT, text2]];\n   }\n \n   if (!text2) {\n     // Just delete some text (speedup).\n     return [[DIFF_DELETE, text1]];\n   }\n \n   var longtext = text1.length > text2.length ? text1 : text2;\n   var shorttext = text1.length > text2.length ? text2 : text1;\n   var i = longtext.indexOf(shorttext);\n   if (i !== -1) {\n     // Shorter text is inside the longer text (speedup).\n     diffs = [\n       [DIFF_INSERT, longtext.substring(0, i)],\n       [DIFF_EQUAL, shorttext],\n       [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n     ];\n     // Swap insertions for deletions if diff is reversed.\n     if (text1.length > text2.length) {\n       diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n     }\n     return diffs;\n   }\n \n   if (shorttext.length === 1) {\n     // Single character string.\n     // After the previous speedup, the character can't be an equality.\n     return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n   }\n \n   // Check to see if the problem can be split in two.\n   var hm = diff_halfMatch_(text1, text2);\n   if (hm) {\n     // A half-match was found, sort out the return data.\n     var text1_a = hm[0];\n     var text1_b = hm[1];\n     var text2_a = hm[2];\n     var text2_b = hm[3];\n     var mid_common = hm[4];\n     // Send both pairs off for separate processing.\n     var diffs_a = diff_main(text1_a, text2_a);\n     var diffs_b = diff_main(text1_b, text2_b);\n     // Merge the results.\n     return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n   }\n \n   return diff_bisect_(text1, text2);\n };\n \n \n /**\n  * Find the 'middle snake' of a diff, split the problem in two\n  * and return the recursively constructed diff.\n  * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n  * @param {string} text1 Old string to be diffed.\n  * @param {string} text2 New string to be diffed.\n  * @return {Array} Array of diff tuples.\n  * @private\n  */\n function diff_bisect_(text1, text2) {\n   // Cache the text lengths to prevent multiple calls.\n   var text1_length = text1.length;\n   var text2_length = text2.length;\n   var max_d = Math.ceil((text1_length + text2_length) / 2);\n   var v_offset = max_d;\n   var v_length = 2 * max_d;\n   var v1 = new Array(v_length);\n   var v2 = new Array(v_length);\n   // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n   // integers and undefined.\n   for (var x = 0; x < v_length; x++) {\n     v1[x] = -1;\n     v2[x] = -1;\n   }\n   v1[v_offset + 1] = 0;\n   v2[v_offset + 1] = 0;\n   var delta = text1_length - text2_length;\n   // If the total number of characters is odd, then the front path will collide\n   // with the reverse path.\n   var front = (delta % 2 !== 0);\n   // Offsets for start and end of k loop.\n   // Prevents mapping of space beyond the grid.\n   var k1start = 0;\n   var k1end = 0;\n   var k2start = 0;\n   var k2end = 0;\n   for (var d = 0; d < max_d; d++) {\n     // Walk the front path one step.\n     for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n       var k1_offset = v_offset + k1;\n       var x1;\n       if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n         x1 = v1[k1_offset + 1];\n       } else {\n         x1 = v1[k1_offset - 1] + 1;\n       }\n       var y1 = x1 - k1;\n       while (\n         x1 < text1_length && y1 < text2_length &&\n         text1.charAt(x1) === text2.charAt(y1)\n       ) {\n         x1++;\n         y1++;\n       }\n       v1[k1_offset] = x1;\n       if (x1 > text1_length) {\n         // Ran off the right of the graph.\n         k1end += 2;\n       } else if (y1 > text2_length) {\n         // Ran off the bottom of the graph.\n         k1start += 2;\n       } else if (front) {\n         var k2_offset = v_offset + delta - k1;\n         if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n           // Mirror x2 onto top-left coordinate system.\n           var x2 = text1_length - v2[k2_offset];\n           if (x1 >= x2) {\n             // Overlap detected.\n             return diff_bisectSplit_(text1, text2, x1, y1);\n           }\n         }\n       }\n     }\n \n     // Walk the reverse path one step.\n     for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n       var k2_offset = v_offset + k2;\n       var x2;\n       if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n         x2 = v2[k2_offset + 1];\n       } else {\n         x2 = v2[k2_offset - 1] + 1;\n       }\n       var y2 = x2 - k2;\n       while (\n         x2 < text1_length && y2 < text2_length &&\n         text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n       ) {\n         x2++;\n         y2++;\n       }\n       v2[k2_offset] = x2;\n       if (x2 > text1_length) {\n         // Ran off the left of the graph.\n         k2end += 2;\n       } else if (y2 > text2_length) {\n         // Ran off the top of the graph.\n         k2start += 2;\n       } else if (!front) {\n         var k1_offset = v_offset + delta - k2;\n         if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n           var x1 = v1[k1_offset];\n           var y1 = v_offset + x1 - k1_offset;\n           // Mirror x2 onto top-left coordinate system.\n           x2 = text1_length - x2;\n           if (x1 >= x2) {\n             // Overlap detected.\n             return diff_bisectSplit_(text1, text2, x1, y1);\n           }\n         }\n       }\n     }\n   }\n   // Diff took too long and hit the deadline or\n   // number of diffs equals number of characters, no commonality at all.\n   return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n };\n \n \n /**\n  * Given the location of the 'middle snake', split the diff in two parts\n  * and recurse.\n  * @param {string} text1 Old string to be diffed.\n  * @param {string} text2 New string to be diffed.\n  * @param {number} x Index of split point in text1.\n  * @param {number} y Index of split point in text2.\n  * @return {Array} Array of diff tuples.\n  */\n function diff_bisectSplit_(text1, text2, x, y) {\n   var text1a = text1.substring(0, x);\n   var text2a = text2.substring(0, y);\n   var text1b = text1.substring(x);\n   var text2b = text2.substring(y);\n \n   // Compute both diffs serially.\n   var diffs = diff_main(text1a, text2a);\n   var diffsb = diff_main(text1b, text2b);\n \n   return diffs.concat(diffsb);\n };\n \n \n /**\n  * Determine the common prefix of two strings.\n  * @param {string} text1 First string.\n  * @param {string} text2 Second string.\n  * @return {number} The number of characters common to the start of each\n  *     string.\n  */\n function diff_commonPrefix(text1, text2) {\n   // Quick check for common null cases.\n   if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n     return 0;\n   }\n   // Binary search.\n   // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n   var pointermin = 0;\n   var pointermax = Math.min(text1.length, text2.length);\n   var pointermid = pointermax;\n   var pointerstart = 0;\n   while (pointermin < pointermid) {\n     if (\n       text1.substring(pointerstart, pointermid) ==\n       text2.substring(pointerstart, pointermid)\n     ) {\n       pointermin = pointermid;\n       pointerstart = pointermin;\n     } else {\n       pointermax = pointermid;\n     }\n     pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n   }\n \n   if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n     pointermid--;\n   }\n \n   return pointermid;\n };\n \n \n /**\n  * Determine the common suffix of two strings.\n  * @param {string} text1 First string.\n  * @param {string} text2 Second string.\n  * @return {number} The number of characters common to the end of each string.\n  */\n function diff_commonSuffix(text1, text2) {\n   // Quick check for common null cases.\n   if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n     return 0;\n   }\n   // Binary search.\n   // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n   var pointermin = 0;\n   var pointermax = Math.min(text1.length, text2.length);\n   var pointermid = pointermax;\n   var pointerend = 0;\n   while (pointermin < pointermid) {\n     if (\n       text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n       text2.substring(text2.length - pointermid, text2.length - pointerend)\n     ) {\n       pointermin = pointermid;\n       pointerend = pointermin;\n     } else {\n       pointermax = pointermid;\n     }\n     pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n   }\n \n   if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n     pointermid--;\n   }\n \n   return pointermid;\n };\n \n \n /**\n  * Do the two texts share a substring which is at least half the length of the\n  * longer text?\n  * This speedup can produce non-minimal diffs.\n  * @param {string} text1 First string.\n  * @param {string} text2 Second string.\n  * @return {Array.<string>} Five element Array, containing the prefix of\n  *     text1, the suffix of text1, the prefix of text2, the suffix of\n  *     text2 and the common middle.  Or null if there was no match.\n  */\n function diff_halfMatch_(text1, text2) {\n   var longtext = text1.length > text2.length ? text1 : text2;\n   var shorttext = text1.length > text2.length ? text2 : text1;\n   if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n     return null;  // Pointless.\n   }\n \n   /**\n    * Does a substring of shorttext exist within longtext such that the substring\n    * is at least half the length of longtext?\n    * Closure, but does not reference any external variables.\n    * @param {string} longtext Longer string.\n    * @param {string} shorttext Shorter string.\n    * @param {number} i Start index of quarter length substring within longtext.\n    * @return {Array.<string>} Five element Array, containing the prefix of\n    *     longtext, the suffix of longtext, the prefix of shorttext, the suffix\n    *     of shorttext and the common middle.  Or null if there was no match.\n    * @private\n    */\n   function diff_halfMatchI_(longtext, shorttext, i) {\n     // Start with a 1/4 length substring at position i as a seed.\n     var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n     var j = -1;\n     var best_common = '';\n     var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n     while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n       var prefixLength = diff_commonPrefix(\n         longtext.substring(i), shorttext.substring(j));\n       var suffixLength = diff_commonSuffix(\n         longtext.substring(0, i), shorttext.substring(0, j));\n       if (best_common.length < suffixLength + prefixLength) {\n         best_common = shorttext.substring(\n           j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n         best_longtext_a = longtext.substring(0, i - suffixLength);\n         best_longtext_b = longtext.substring(i + prefixLength);\n         best_shorttext_a = shorttext.substring(0, j - suffixLength);\n         best_shorttext_b = shorttext.substring(j + prefixLength);\n       }\n     }\n     if (best_common.length * 2 >= longtext.length) {\n       return [\n         best_longtext_a, best_longtext_b,\n         best_shorttext_a, best_shorttext_b, best_common\n       ];\n     } else {\n       return null;\n     }\n   }\n \n   // First check if the second quarter is the seed for a half-match.\n   var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n   // Check again based on the third quarter.\n   var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n   var hm;\n   if (!hm1 && !hm2) {\n     return null;\n   } else if (!hm2) {\n     hm = hm1;\n   } else if (!hm1) {\n     hm = hm2;\n   } else {\n     // Both matched.  Select the longest.\n     hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n   }\n \n   // A half-match was found, sort out the return data.\n   var text1_a, text1_b, text2_a, text2_b;\n   if (text1.length > text2.length) {\n     text1_a = hm[0];\n     text1_b = hm[1];\n     text2_a = hm[2];\n     text2_b = hm[3];\n   } else {\n     text2_a = hm[0];\n     text2_b = hm[1];\n     text1_a = hm[2];\n     text1_b = hm[3];\n   }\n   var mid_common = hm[4];\n   return [text1_a, text1_b, text2_a, text2_b, mid_common];\n };\n \n \n /**\n  * Reorder and merge like edit sections.  Merge equalities.\n  * Any edit section can move as long as it doesn't cross an equality.\n  * @param {Array} diffs Array of diff tuples.\n  * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n  */\n function diff_cleanupMerge(diffs, fix_unicode) {\n   diffs.push([DIFF_EQUAL, '']);  // Add a dummy entry at the end.\n   var pointer = 0;\n   var count_delete = 0;\n   var count_insert = 0;\n   var text_delete = '';\n   var text_insert = '';\n   var commonlength;\n   while (pointer < diffs.length) {\n     if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n       diffs.splice(pointer, 1);\n       continue;\n     }\n     switch (diffs[pointer][0]) {\n       case DIFF_INSERT:\n \n         count_insert++;\n         text_insert += diffs[pointer][1];\n         pointer++;\n         break;\n       case DIFF_DELETE:\n         count_delete++;\n         text_delete += diffs[pointer][1];\n         pointer++;\n         break;\n       case DIFF_EQUAL:\n         var previous_equality = pointer - count_insert - count_delete - 1;\n         if (fix_unicode) {\n           // prevent splitting of unicode surrogate pairs.  when fix_unicode is true,\n           // we assume that the old and new text in the diff are complete and correct\n           // unicode-encoded JS strings, but the tuple boundaries may fall between\n           // surrogate pairs.  we fix this by shaving off stray surrogates from the end\n           // of the previous equality and the beginning of this equality.  this may create\n           // empty equalities or a common prefix or suffix.  for example, if AB and AC are\n           // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n           // inserting 'AC', and then the common suffix 'AC' will be eliminated.  in this\n           // particular case, both equalities go away, we absorb any previous inequalities,\n           // and we keep scanning for the next equality before rewriting the tuples.\n           if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n             var stray = diffs[previous_equality][1].slice(-1);\n             diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n             text_delete = stray + text_delete;\n             text_insert = stray + text_insert;\n             if (!diffs[previous_equality][1]) {\n               // emptied out previous equality, so delete it and include previous delete/insert\n               diffs.splice(previous_equality, 1);\n               pointer--;\n               var k = previous_equality - 1;\n               if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n                 count_insert++;\n                 text_insert = diffs[k][1] + text_insert;\n                 k--;\n               }\n               if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n                 count_delete++;\n                 text_delete = diffs[k][1] + text_delete;\n                 k--;\n               }\n               previous_equality = k;\n             }\n           }\n           if (starts_with_pair_end(diffs[pointer][1])) {\n             var stray = diffs[pointer][1].charAt(0);\n             diffs[pointer][1] = diffs[pointer][1].slice(1);\n             text_delete += stray;\n             text_insert += stray;\n           }\n         }\n         if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n           // for empty equality not at end, wait for next equality\n           diffs.splice(pointer, 1);\n           break;\n         }\n         if (text_delete.length > 0 || text_insert.length > 0) {\n           // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n           if (text_delete.length > 0 && text_insert.length > 0) {\n             // Factor out any common prefixes.\n             commonlength = diff_commonPrefix(text_insert, text_delete);\n             if (commonlength !== 0) {\n               if (previous_equality >= 0) {\n                 diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n               } else {\n                 diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n                 pointer++;\n               }\n               text_insert = text_insert.substring(commonlength);\n               text_delete = text_delete.substring(commonlength);\n             }\n             // Factor out any common suffixes.\n             commonlength = diff_commonSuffix(text_insert, text_delete);\n             if (commonlength !== 0) {\n               diffs[pointer][1] =\n                 text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n               text_insert = text_insert.substring(0, text_insert.length - commonlength);\n               text_delete = text_delete.substring(0, text_delete.length - commonlength);\n             }\n           }\n           // Delete the offending records and add the merged ones.\n           var n = count_insert + count_delete;\n           if (text_delete.length === 0 && text_insert.length === 0) {\n             diffs.splice(pointer - n, n);\n             pointer = pointer - n;\n           } else if (text_delete.length === 0) {\n             diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n             pointer = pointer - n + 1;\n           } else if (text_insert.length === 0) {\n             diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n             pointer = pointer - n + 1;\n           } else {\n             diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n             pointer = pointer - n + 2;\n           }\n         }\n         if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n           // Merge this equality with the previous one.\n           diffs[pointer - 1][1] += diffs[pointer][1];\n           diffs.splice(pointer, 1);\n         } else {\n           pointer++;\n         }\n         count_insert = 0;\n         count_delete = 0;\n         text_delete = '';\n         text_insert = '';\n         break;\n     }\n   }\n   if (diffs[diffs.length - 1][1] === '') {\n     diffs.pop();  // Remove the dummy entry at the end.\n   }\n \n   // Second pass: look for single edits surrounded on both sides by equalities\n   // which can be shifted sideways to eliminate an equality.\n   // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n   var changes = false;\n   pointer = 1;\n   // Intentionally ignore the first and last element (don't need checking).\n   while (pointer < diffs.length - 1) {\n     if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n       diffs[pointer + 1][0] === DIFF_EQUAL) {\n       // This is a single edit surrounded by equalities.\n       if (diffs[pointer][1].substring(diffs[pointer][1].length -\n         diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n         // Shift the edit over the previous equality.\n         diffs[pointer][1] = diffs[pointer - 1][1] +\n           diffs[pointer][1].substring(0, diffs[pointer][1].length -\n             diffs[pointer - 1][1].length);\n         diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n         diffs.splice(pointer - 1, 1);\n         changes = true;\n       } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n         diffs[pointer + 1][1]) {\n         // Shift the edit over the next equality.\n         diffs[pointer - 1][1] += diffs[pointer + 1][1];\n         diffs[pointer][1] =\n           diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n           diffs[pointer + 1][1];\n         diffs.splice(pointer + 1, 1);\n         changes = true;\n       }\n     }\n     pointer++;\n   }\n   // If shifts were made, the diff needs reordering and another shift sweep.\n   if (changes) {\n     diff_cleanupMerge(diffs, fix_unicode);\n   }\n };\n \n function is_surrogate_pair_start(charCode) {\n   return charCode >= 0xD800 && charCode <= 0xDBFF;\n }\n \n function is_surrogate_pair_end(charCode) {\n   return charCode >= 0xDC00 && charCode <= 0xDFFF;\n }\n \n function starts_with_pair_end(str) {\n   return is_surrogate_pair_end(str.charCodeAt(0));\n }\n \n function ends_with_pair_start(str) {\n   return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n }\n \n function remove_empty_tuples(tuples) {\n   var ret = [];\n   for (var i = 0; i < tuples.length; i++) {\n     if (tuples[i][1].length > 0) {\n       ret.push(tuples[i]);\n     }\n   }\n   return ret;\n }\n \n function make_edit_splice(before, oldMiddle, newMiddle, after) {\n   if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n     return null;\n   }\n   return remove_empty_tuples([\n     [DIFF_EQUAL, before],\n     [DIFF_DELETE, oldMiddle],\n     [DIFF_INSERT, newMiddle],\n     [DIFF_EQUAL, after]\n   ]);\n }\n \n function find_cursor_edit_diff(oldText, newText, cursor_pos) {\n   // note: this runs after equality check has ruled out exact equality\n   var oldRange = typeof cursor_pos === 'number' ?\n     { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n   var newRange = typeof cursor_pos === 'number' ?\n     null : cursor_pos.newRange;\n   // take into account the old and new selection to generate the best diff\n   // possible for a text edit.  for example, a text change from \"xxx\" to \"xx\"\n   // could be a delete or forwards-delete of any one of the x's, or the\n   // result of selecting two of the x's and typing \"x\".\n   var oldLength = oldText.length;\n   var newLength = newText.length;\n   if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n     // see if we have an insert or delete before or after cursor\n     var oldCursor = oldRange.index;\n     var oldBefore = oldText.slice(0, oldCursor);\n     var oldAfter = oldText.slice(oldCursor);\n     var maybeNewCursor = newRange ? newRange.index : null;\n     editBefore: {\n       // is this an insert or delete right before oldCursor?\n       var newCursor = oldCursor + newLength - oldLength;\n       if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n         break editBefore;\n       }\n       if (newCursor < 0 || newCursor > newLength) {\n         break editBefore;\n       }\n       var newBefore = newText.slice(0, newCursor);\n       var newAfter = newText.slice(newCursor);\n       if (newAfter !== oldAfter) {\n         break editBefore;\n       }\n       var prefixLength = Math.min(oldCursor, newCursor);\n       var oldPrefix = oldBefore.slice(0, prefixLength);\n       var newPrefix = newBefore.slice(0, prefixLength);\n       if (oldPrefix !== newPrefix) {\n         break editBefore;\n       }\n       var oldMiddle = oldBefore.slice(prefixLength);\n       var newMiddle = newBefore.slice(prefixLength);\n       return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n     }\n     editAfter: {\n       // is this an insert or delete right after oldCursor?\n       if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n         break editAfter;\n       }\n       var cursor = oldCursor;\n       var newBefore = newText.slice(0, cursor);\n       var newAfter = newText.slice(cursor);\n       if (newBefore !== oldBefore) {\n         break editAfter;\n       }\n       var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n       var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n       var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n       if (oldSuffix !== newSuffix) {\n         break editAfter;\n       }\n       var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n       var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n       return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n     }\n   }\n   if (oldRange.length > 0 && newRange && newRange.length === 0) {\n     replaceRange: {\n       // see if diff could be a splice of the old selection range\n       var oldPrefix = oldText.slice(0, oldRange.index);\n       var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n       var prefixLength = oldPrefix.length;\n       var suffixLength = oldSuffix.length;\n       if (newLength < prefixLength + suffixLength) {\n         break replaceRange;\n       }\n       var newPrefix = newText.slice(0, prefixLength);\n       var newSuffix = newText.slice(newLength - suffixLength);\n       if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n         break replaceRange;\n       }\n       var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n       var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n       return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n     }\n   }\n \n   return null;\n }\n \n function diff(text1, text2, cursor_pos) {\n   // only pass fix_unicode=true at the top level, not when diff_main is\n   // recursively invoked\n   return diff_main(text1, text2, cursor_pos, true);\n }\n \n diff.INSERT = DIFF_INSERT;\n diff.DELETE = DIFF_DELETE;\n diff.EQUAL = DIFF_EQUAL;\n \n module.exports = diff;\n \n \n /***/ }),\n \n /***/ \"./node_modules/function-bind/implementation.js\":\n /*!******************************************************!*\\\n   !*** ./node_modules/function-bind/implementation.js ***!\n   \\******************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n /* eslint no-invalid-this: 1 */\n \n var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\n var slice = Array.prototype.slice;\n var toStr = Object.prototype.toString;\n var funcType = '[object Function]';\n \n module.exports = function bind(that) {\n     var target = this;\n     if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n         throw new TypeError(ERROR_MESSAGE + target);\n     }\n     var args = slice.call(arguments, 1);\n \n     var bound;\n     var binder = function () {\n         if (this instanceof bound) {\n             var result = target.apply(\n                 this,\n                 args.concat(slice.call(arguments))\n             );\n             if (Object(result) === result) {\n                 return result;\n             }\n             return this;\n         } else {\n             return target.apply(\n                 that,\n                 args.concat(slice.call(arguments))\n             );\n         }\n     };\n \n     var boundLength = Math.max(0, target.length - args.length);\n     var boundArgs = [];\n     for (var i = 0; i < boundLength; i++) {\n         boundArgs.push('$' + i);\n     }\n \n     bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n \n     if (target.prototype) {\n         var Empty = function Empty() {};\n         Empty.prototype = target.prototype;\n         bound.prototype = new Empty();\n         Empty.prototype = null;\n     }\n \n     return bound;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/function-bind/index.js\":\n /*!*********************************************!*\\\n   !*** ./node_modules/function-bind/index.js ***!\n   \\*********************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/function-bind/implementation.js\");\n \n module.exports = Function.prototype.bind || implementation;\n \n \n /***/ }),\n \n /***/ \"./node_modules/has-symbols/index.js\":\n /*!*******************************************!*\\\n   !*** ./node_modules/has-symbols/index.js ***!\n   \\*******************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n /* WEBPACK VAR INJECTION */(function(global) {\n \n var origSymbol = global.Symbol;\n var hasSymbolSham = __webpack_require__(/*! ./shams */ \"./node_modules/has-symbols/shams.js\");\n \n module.exports = function hasNativeSymbols() {\n   if (typeof origSymbol !== 'function') { return false; }\n   if (typeof Symbol !== 'function') { return false; }\n   if (typeof origSymbol('foo') !== 'symbol') { return false; }\n   if (typeof Symbol('bar') !== 'symbol') { return false; }\n \n   return hasSymbolSham();\n };\n \n /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n \n /***/ }),\n \n /***/ \"./node_modules/has-symbols/shams.js\":\n /*!*******************************************!*\\\n   !*** ./node_modules/has-symbols/shams.js ***!\n   \\*******************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n /* eslint complexity: [2, 18], max-statements: [2, 33] */\n module.exports = function hasSymbols() {\n   if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n   if (typeof Symbol.iterator === 'symbol') { return true; }\n \n   var obj = {};\n   var sym = Symbol('test');\n   var symObj = Object(sym);\n   if (typeof sym === 'string') { return false; }\n \n   if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n   if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n \n   // temp disabled per https://github.com/ljharb/object.assign/issues/17\n   // if (sym instanceof Symbol) { return false; }\n   // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n   // if (!(symObj instanceof Symbol)) { return false; }\n \n   // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n   // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n \n   var symVal = 42;\n   obj[sym] = symVal;\n   for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n   if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n \n   if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n \n   var syms = Object.getOwnPropertySymbols(obj);\n   if (syms.length !== 1 || syms[0] !== sym) { return false; }\n \n   if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n \n   if (typeof Object.getOwnPropertyDescriptor === 'function') {\n     var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n     if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n   }\n \n   return true;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/is-arguments/index.js\":\n /*!********************************************!*\\\n   !*** ./node_modules/is-arguments/index.js ***!\n   \\********************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n var toStr = Object.prototype.toString;\n \n var isStandardArguments = function isArguments(value) {\n   if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n     return false;\n   }\n   return toStr.call(value) === '[object Arguments]';\n };\n \n var isLegacyArguments = function isArguments(value) {\n   if (isStandardArguments(value)) {\n     return true;\n   }\n   return value !== null &&\n     typeof value === 'object' &&\n     typeof value.length === 'number' &&\n     value.length >= 0 &&\n     toStr.call(value) !== '[object Array]' &&\n     toStr.call(value.callee) === '[object Function]';\n };\n \n var supportsStandardArguments = (function () {\n   return isStandardArguments(arguments);\n }());\n \n isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n \n module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n \n \n /***/ }),\n \n /***/ \"./node_modules/is-date-object/index.js\":\n /*!**********************************************!*\\\n   !*** ./node_modules/is-date-object/index.js ***!\n   \\**********************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var getDay = Date.prototype.getDay;\n var tryDateObject = function tryDateGetDayCall(value) {\n   try {\n     getDay.call(value);\n     return true;\n   } catch (e) {\n     return false;\n   }\n };\n \n var toStr = Object.prototype.toString;\n var dateClass = '[object Date]';\n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n \n module.exports = function isDateObject(value) {\n   if (typeof value !== 'object' || value === null) {\n     return false;\n   }\n   return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/is-regex/index.js\":\n /*!****************************************!*\\\n   !*** ./node_modules/is-regex/index.js ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var hasSymbols = __webpack_require__(/*! has-symbols */ \"./node_modules/has-symbols/index.js\")();\n var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\n var hasOwnProperty;\n var regexExec;\n var isRegexMarker;\n var badStringifier;\n \n if (hasToStringTag) {\n   hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n   regexExec = Function.call.bind(RegExp.prototype.exec);\n   isRegexMarker = {};\n \n   var throwRegexMarker = function () {\n     throw isRegexMarker;\n   };\n   badStringifier = {\n     toString: throwRegexMarker,\n     valueOf: throwRegexMarker\n   };\n \n   if (typeof Symbol.toPrimitive === 'symbol') {\n     badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n   }\n }\n \n var toStr = Object.prototype.toString;\n var gOPD = Object.getOwnPropertyDescriptor;\n var regexClass = '[object RegExp]';\n \n module.exports = hasToStringTag\n   // eslint-disable-next-line consistent-return\n   ? function isRegex(value) {\n     if (!value || typeof value !== 'object') {\n       return false;\n     }\n \n     var descriptor = gOPD(value, 'lastIndex');\n     var hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value');\n     if (!hasLastIndexDataProperty) {\n       return false;\n     }\n \n     try {\n       regexExec(value, badStringifier);\n     } catch (e) {\n       return e === isRegexMarker;\n     }\n   }\n   : function isRegex(value) {\n     // In older browsers, typeof regex incorrectly returns 'function'\n     if (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n       return false;\n     }\n \n     return toStr.call(value) === regexClass;\n   };\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-is/implementation.js\":\n /*!**************************************************!*\\\n   !*** ./node_modules/object-is/implementation.js ***!\n   \\**************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var numberIsNaN = function (value) {\n   return value !== value;\n };\n \n module.exports = function is(a, b) {\n   if (a === 0 && b === 0) {\n     return 1 / a === 1 / b;\n   }\n   if (a === b) {\n     return true;\n   }\n   if (numberIsNaN(a) && numberIsNaN(b)) {\n     return true;\n   }\n   return false;\n };\n \n \n \n /***/ }),\n \n /***/ \"./node_modules/object-is/index.js\":\n /*!*****************************************!*\\\n   !*** ./node_modules/object-is/index.js ***!\n   \\*****************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var define = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\");\n var callBind = __webpack_require__(/*! es-abstract/helpers/callBind */ \"./node_modules/es-abstract/helpers/callBind.js\");\n \n var implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/object-is/implementation.js\");\n var getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/object-is/polyfill.js\");\n var shim = __webpack_require__(/*! ./shim */ \"./node_modules/object-is/shim.js\");\n \n var polyfill = callBind(getPolyfill(), Object);\n \n define(polyfill, {\n   getPolyfill: getPolyfill,\n   implementation: implementation,\n   shim: shim\n });\n \n module.exports = polyfill;\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-is/polyfill.js\":\n /*!********************************************!*\\\n   !*** ./node_modules/object-is/polyfill.js ***!\n   \\********************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/object-is/implementation.js\");\n \n module.exports = function getPolyfill() {\n   return typeof Object.is === 'function' ? Object.is : implementation;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-is/shim.js\":\n /*!****************************************!*\\\n   !*** ./node_modules/object-is/shim.js ***!\n   \\****************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/object-is/polyfill.js\");\n var define = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\");\n \n module.exports = function shimObjectIs() {\n   var polyfill = getPolyfill();\n   define(Object, { is: polyfill }, {\n     is: function testObjectIs() {\n       return Object.is !== polyfill;\n     }\n   });\n   return polyfill;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-keys/implementation.js\":\n /*!****************************************************!*\\\n   !*** ./node_modules/object-keys/implementation.js ***!\n   \\****************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var keysShim;\n if (!Object.keys) {\n   // modified from https://github.com/es-shims/es5-shim\n   var has = Object.prototype.hasOwnProperty;\n   var toStr = Object.prototype.toString;\n   var isArgs = __webpack_require__(/*! ./isArguments */ \"./node_modules/object-keys/isArguments.js\"); // eslint-disable-line global-require\n   var isEnumerable = Object.prototype.propertyIsEnumerable;\n   var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n   var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n   var dontEnums = [\n     'toString',\n     'toLocaleString',\n     'valueOf',\n     'hasOwnProperty',\n     'isPrototypeOf',\n     'propertyIsEnumerable',\n     'constructor'\n   ];\n   var equalsConstructorPrototype = function (o) {\n     var ctor = o.constructor;\n     return ctor && ctor.prototype === o;\n   };\n   var excludedKeys = {\n     $applicationCache: true,\n     $console: true,\n     $external: true,\n     $frame: true,\n     $frameElement: true,\n     $frames: true,\n     $innerHeight: true,\n     $innerWidth: true,\n     $onmozfullscreenchange: true,\n     $onmozfullscreenerror: true,\n     $outerHeight: true,\n     $outerWidth: true,\n     $pageXOffset: true,\n     $pageYOffset: true,\n     $parent: true,\n     $scrollLeft: true,\n     $scrollTop: true,\n     $scrollX: true,\n     $scrollY: true,\n     $self: true,\n     $webkitIndexedDB: true,\n     $webkitStorageInfo: true,\n     $window: true\n   };\n   var hasAutomationEqualityBug = (function () {\n     /* global window */\n     if (typeof window === 'undefined') { return false; }\n     for (var k in window) {\n       try {\n         if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n           try {\n             equalsConstructorPrototype(window[k]);\n           } catch (e) {\n             return true;\n           }\n         }\n       } catch (e) {\n         return true;\n       }\n     }\n     return false;\n   }());\n   var equalsConstructorPrototypeIfNotBuggy = function (o) {\n     /* global window */\n     if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n       return equalsConstructorPrototype(o);\n     }\n     try {\n       return equalsConstructorPrototype(o);\n     } catch (e) {\n       return false;\n     }\n   };\n \n   keysShim = function keys(object) {\n     var isObject = object !== null && typeof object === 'object';\n     var isFunction = toStr.call(object) === '[object Function]';\n     var isArguments = isArgs(object);\n     var isString = isObject && toStr.call(object) === '[object String]';\n     var theKeys = [];\n \n     if (!isObject && !isFunction && !isArguments) {\n       throw new TypeError('Object.keys called on a non-object');\n     }\n \n     var skipProto = hasProtoEnumBug && isFunction;\n     if (isString && object.length > 0 && !has.call(object, 0)) {\n       for (var i = 0; i < object.length; ++i) {\n         theKeys.push(String(i));\n       }\n     }\n \n     if (isArguments && object.length > 0) {\n       for (var j = 0; j < object.length; ++j) {\n         theKeys.push(String(j));\n       }\n     } else {\n       for (var name in object) {\n         if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n           theKeys.push(String(name));\n         }\n       }\n     }\n \n     if (hasDontEnumBug) {\n       var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n \n       for (var k = 0; k < dontEnums.length; ++k) {\n         if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n           theKeys.push(dontEnums[k]);\n         }\n       }\n     }\n     return theKeys;\n   };\n }\n module.exports = keysShim;\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-keys/index.js\":\n /*!*******************************************!*\\\n   !*** ./node_modules/object-keys/index.js ***!\n   \\*******************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var slice = Array.prototype.slice;\n var isArgs = __webpack_require__(/*! ./isArguments */ \"./node_modules/object-keys/isArguments.js\");\n \n var origKeys = Object.keys;\n var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(/*! ./implementation */ \"./node_modules/object-keys/implementation.js\");\n \n var originalKeys = Object.keys;\n \n keysShim.shim = function shimObjectKeys() {\n   if (Object.keys) {\n     var keysWorksWithArguments = (function () {\n       // Safari 5.0 bug\n       var args = Object.keys(arguments);\n       return args && args.length === arguments.length;\n     }(1, 2));\n     if (!keysWorksWithArguments) {\n       Object.keys = function keys(object) { // eslint-disable-line func-name-matching\n         if (isArgs(object)) {\n           return originalKeys(slice.call(object));\n         }\n         return originalKeys(object);\n       };\n     }\n   } else {\n     Object.keys = keysShim;\n   }\n   return Object.keys || keysShim;\n };\n \n module.exports = keysShim;\n \n \n /***/ }),\n \n /***/ \"./node_modules/object-keys/isArguments.js\":\n /*!*************************************************!*\\\n   !*** ./node_modules/object-keys/isArguments.js ***!\n   \\*************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var toStr = Object.prototype.toString;\n \n module.exports = function isArguments(value) {\n   var str = toStr.call(value);\n   var isArgs = str === '[object Arguments]';\n   if (!isArgs) {\n     isArgs = str !== '[object Array]' &&\n       value !== null &&\n       typeof value === 'object' &&\n       typeof value.length === 'number' &&\n       value.length >= 0 &&\n       toStr.call(value.callee) === '[object Function]';\n   }\n   return isArgs;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/attributor/attributor.ts\":\n /*!*************************************************************!*\\\n   !*** ./node_modules/parchment/src/attributor/attributor.ts ***!\n   \\*************************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Attributor; });\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n \n class Attributor {\n     constructor(attrName, keyName, options = {}) {\n         this.attrName = attrName;\n         this.keyName = keyName;\n         const attributeBit = _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].TYPE & _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ATTRIBUTE;\n         this.scope =\n             options.scope != null\n                 ? // Ignore type bits, force attribute bit\n                     (options.scope & _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].LEVEL) | attributeBit\n                 : _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ATTRIBUTE;\n         if (options.whitelist != null) {\n             this.whitelist = options.whitelist;\n         }\n     }\n     static keys(node) {\n         return Array.from(node.attributes).map((item) => item.name);\n     }\n     add(node, value) {\n         if (!this.canAdd(node, value)) {\n             return false;\n         }\n         node.setAttribute(this.keyName, value);\n         return true;\n     }\n     canAdd(_node, value) {\n         if (this.whitelist == null) {\n             return true;\n         }\n         if (typeof value === 'string') {\n             return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n         }\n         else {\n             return this.whitelist.indexOf(value) > -1;\n         }\n     }\n     remove(node) {\n         node.removeAttribute(this.keyName);\n     }\n     value(node) {\n         const value = node.getAttribute(this.keyName);\n         if (this.canAdd(node, value) && value) {\n             return value;\n         }\n         return '';\n     }\n }\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/attributor/class.ts\":\n /*!********************************************************!*\\\n   !*** ./node_modules/parchment/src/attributor/class.ts ***!\n   \\********************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n \n function match(node, prefix) {\n     const className = node.getAttribute('class') || '';\n     return className\n         .split(/\\s+/)\n         .filter(name => name.indexOf(`${prefix}-`) === 0);\n }\n class ClassAttributor extends _attributor__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n     static keys(node) {\n         return (node.getAttribute('class') || '').split(/\\s+/).map(name => name\n             .split('-')\n             .slice(0, -1)\n             .join('-'));\n     }\n     add(node, value) {\n         if (!this.canAdd(node, value)) {\n             return false;\n         }\n         this.remove(node);\n         node.classList.add(`${this.keyName}-${value}`);\n         return true;\n     }\n     remove(node) {\n         const matches = match(node, this.keyName);\n         matches.forEach(name => {\n             node.classList.remove(name);\n         });\n         if (node.classList.length === 0) {\n             node.removeAttribute('class');\n         }\n     }\n     value(node) {\n         const result = match(node, this.keyName)[0] || '';\n         const value = result.slice(this.keyName.length + 1); // +1 for hyphen\n         return this.canAdd(node, value) ? value : '';\n     }\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (ClassAttributor);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/attributor/store.ts\":\n /*!********************************************************!*\\\n   !*** ./node_modules/parchment/src/attributor/store.ts ***!\n   \\********************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../registry */ \"./node_modules/parchment/src/registry.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n /* harmony import */ var _class__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./class */ \"./node_modules/parchment/src/attributor/class.ts\");\n /* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style */ \"./node_modules/parchment/src/attributor/style.ts\");\n \n \n \n \n \n class AttributorStore {\n     constructor(domNode) {\n         this.attributes = {};\n         this.domNode = domNode;\n         this.build();\n     }\n     attribute(attribute, value) {\n         // verb\n         if (value) {\n             if (attribute.add(this.domNode, value)) {\n                 if (attribute.value(this.domNode) != null) {\n                     this.attributes[attribute.attrName] = attribute;\n                 }\n                 else {\n                     delete this.attributes[attribute.attrName];\n                 }\n             }\n         }\n         else {\n             attribute.remove(this.domNode);\n             delete this.attributes[attribute.attrName];\n         }\n     }\n     build() {\n         this.attributes = {};\n         const blot = _registry__WEBPACK_IMPORTED_MODULE_0__[\"default\"].find(this.domNode);\n         if (blot == null) {\n             return;\n         }\n         const attributes = _attributor__WEBPACK_IMPORTED_MODULE_2__[\"default\"].keys(this.domNode);\n         const classes = _class__WEBPACK_IMPORTED_MODULE_3__[\"default\"].keys(this.domNode);\n         const styles = _style__WEBPACK_IMPORTED_MODULE_4__[\"default\"].keys(this.domNode);\n         attributes\n             .concat(classes)\n             .concat(styles)\n             .forEach(name => {\n             const attr = blot.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ATTRIBUTE);\n             if (attr instanceof _attributor__WEBPACK_IMPORTED_MODULE_2__[\"default\"]) {\n                 this.attributes[attr.attrName] = attr;\n             }\n         });\n     }\n     copy(target) {\n         Object.keys(this.attributes).forEach(key => {\n             const value = this.attributes[key].value(this.domNode);\n             target.format(key, value);\n         });\n     }\n     move(target) {\n         this.copy(target);\n         Object.keys(this.attributes).forEach(key => {\n             this.attributes[key].remove(this.domNode);\n         });\n         this.attributes = {};\n     }\n     values() {\n         return Object.keys(this.attributes).reduce((attributes, name) => {\n             attributes[name] = this.attributes[name].value(this.domNode);\n             return attributes;\n         }, {});\n     }\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (AttributorStore);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/attributor/style.ts\":\n /*!********************************************************!*\\\n   !*** ./node_modules/parchment/src/attributor/style.ts ***!\n   \\********************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n \n function camelize(name) {\n     const parts = name.split('-');\n     const rest = parts\n         .slice(1)\n         .map((part) => part[0].toUpperCase() + part.slice(1))\n         .join('');\n     return parts[0] + rest;\n }\n class StyleAttributor extends _attributor__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n     static keys(node) {\n         return (node.getAttribute('style') || '').split(';').map(value => {\n             const arr = value.split(':');\n             return arr[0].trim();\n         });\n     }\n     add(node, value) {\n         if (!this.canAdd(node, value)) {\n             return false;\n         }\n         // @ts-ignore\n         node.style[camelize(this.keyName)] = value;\n         return true;\n     }\n     remove(node) {\n         // @ts-ignore\n         node.style[camelize(this.keyName)] = '';\n         if (!node.getAttribute('style')) {\n             node.removeAttribute('style');\n         }\n     }\n     value(node) {\n         // @ts-ignore\n         const value = node.style[camelize(this.keyName)];\n         return this.canAdd(node, value) ? value : '';\n     }\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (StyleAttributor);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/abstract/container.ts\":\n /*!***************************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/abstract/container.ts ***!\n   \\***************************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _parent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parent */ \"./node_modules/parchment/src/blot/abstract/parent.ts\");\n \n \n class ContainerBlot extends _parent__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n     checkMerge() {\n         return (this.next !== null && this.next.statics.blotName === this.statics.blotName);\n     }\n     deleteAt(index, length) {\n         super.deleteAt(index, length);\n         this.enforceAllowedChildren();\n     }\n     formatAt(index, length, name, value) {\n         super.formatAt(index, length, name, value);\n         this.enforceAllowedChildren();\n     }\n     insertAt(index, value, def) {\n         super.insertAt(index, value, def);\n         this.enforceAllowedChildren();\n     }\n     optimize(context) {\n         super.optimize(context);\n         if (this.children.length > 0 && this.next != null && this.checkMerge()) {\n             this.next.moveChildren(this);\n             this.next.remove();\n         }\n     }\n }\n ContainerBlot.blotName = 'container';\n ContainerBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].BLOCK_BLOT;\n /* harmony default export */ __webpack_exports__[\"default\"] = (ContainerBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/abstract/leaf.ts\":\n /*!**********************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/abstract/leaf.ts ***!\n   \\**********************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _shadow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shadow */ \"./node_modules/parchment/src/blot/abstract/shadow.ts\");\n \n \n class LeafBlot extends _shadow__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n     static value(_domNode) {\n         return true;\n     }\n     index(node, offset) {\n         if (this.domNode === node ||\n             this.domNode.compareDocumentPosition(node) &\n                 Node.DOCUMENT_POSITION_CONTAINED_BY) {\n             return Math.min(offset, 1);\n         }\n         return -1;\n     }\n     position(index, _inclusive) {\n         const childNodes = Array.from(this.parent.domNode.childNodes);\n         let offset = childNodes.indexOf(this.domNode);\n         if (index > 0) {\n             offset += 1;\n         }\n         return [this.parent.domNode, offset];\n     }\n     value() {\n         return {\n             [this.statics.blotName]: this.statics.value(this.domNode) || true,\n         };\n     }\n }\n LeafBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].INLINE_BLOT;\n /* harmony default export */ __webpack_exports__[\"default\"] = (LeafBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/abstract/parent.ts\":\n /*!************************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/abstract/parent.ts ***!\n   \\************************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _collection_linked_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../collection/linked-list */ \"./node_modules/parchment/src/collection/linked-list.ts\");\n /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../error */ \"./node_modules/parchment/src/error.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _shadow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shadow */ \"./node_modules/parchment/src/blot/abstract/shadow.ts\");\n \n \n \n \n class ParentBlot extends _shadow__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n     constructor(scroll, domNode) {\n         super(scroll, domNode);\n         this.uiNode = null;\n         this.build();\n     }\n     appendChild(other) {\n         this.insertBefore(other);\n     }\n     attach() {\n         super.attach();\n         this.children.forEach(child => {\n             child.attach();\n         });\n     }\n     attachUI(node) {\n         if (this.uiNode != null) {\n             this.uiNode.remove();\n         }\n         this.uiNode = node;\n         if (ParentBlot.uiClass) {\n             this.uiNode.classList.add(ParentBlot.uiClass);\n         }\n         this.uiNode.setAttribute('contenteditable', 'false');\n         this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n     }\n     build() {\n         this.children = new _collection_linked_list__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n         // Need to be reversed for if DOM nodes already in order\n         Array.from(this.domNode.childNodes)\n             .filter((node) => node !== this.uiNode)\n             .reverse()\n             .forEach((node) => {\n             try {\n                 const child = makeAttachedBlot(node, this.scroll);\n                 this.insertBefore(child, this.children.head || undefined);\n             }\n             catch (err) {\n                 if (err instanceof _error__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n                     return;\n                 }\n                 else {\n                     throw err;\n                 }\n             }\n         });\n     }\n     deleteAt(index, length) {\n         if (index === 0 && length === this.length()) {\n             return this.remove();\n         }\n         this.children.forEachAt(index, length, (child, offset, childLength) => {\n             child.deleteAt(offset, childLength);\n         });\n     }\n     descendant(criteria, index = 0) {\n         const [child, offset] = this.children.find(index);\n         if ((criteria.blotName == null && criteria(child)) ||\n             (criteria.blotName != null && child instanceof criteria)) {\n             return [child, offset];\n         }\n         else if (child instanceof ParentBlot) {\n             return child.descendant(criteria, offset);\n         }\n         else {\n             return [null, -1];\n         }\n     }\n     descendants(criteria, index = 0, length = Number.MAX_VALUE) {\n         let descendants = [];\n         let lengthLeft = length;\n         this.children.forEachAt(index, length, (child, childIndex, childLength) => {\n             if ((criteria.blotName == null && criteria(child)) ||\n                 (criteria.blotName != null && child instanceof criteria)) {\n                 descendants.push(child);\n             }\n             if (child instanceof ParentBlot) {\n                 descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft));\n             }\n             lengthLeft -= childLength;\n         });\n         return descendants;\n     }\n     detach() {\n         this.children.forEach(child => {\n             child.detach();\n         });\n         super.detach();\n     }\n     enforceAllowedChildren() {\n         let done = false;\n         this.children.forEach((child) => {\n             if (done) {\n                 return;\n             }\n             const allowed = this.statics.allowedChildren.some((def) => child instanceof def);\n             if (allowed) {\n                 return;\n             }\n             if (child.statics.scope === _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BLOCK_BLOT) {\n                 if (child.next != null) {\n                     this.splitAfter(child);\n                 }\n                 if (child.prev != null) {\n                     this.splitAfter(child.prev);\n                 }\n                 child.parent.unwrap();\n                 done = true;\n             }\n             else if (child instanceof ParentBlot) {\n                 child.unwrap();\n             }\n             else {\n                 child.remove();\n             }\n         });\n     }\n     formatAt(index, length, name, value) {\n         this.children.forEachAt(index, length, (child, offset, childLength) => {\n             child.formatAt(offset, childLength, name, value);\n         });\n     }\n     insertAt(index, value, def) {\n         const [child, offset] = this.children.find(index);\n         if (child) {\n             child.insertAt(offset, value, def);\n         }\n         else {\n             const blot = def == null\n                 ? this.scroll.create('text', value)\n                 : this.scroll.create(value, def);\n             this.appendChild(blot);\n         }\n     }\n     insertBefore(childBlot, refBlot) {\n         if (childBlot.parent != null) {\n             childBlot.parent.children.remove(childBlot);\n         }\n         let refDomNode = null;\n         this.children.insertBefore(childBlot, refBlot || null);\n         if (refBlot != null) {\n             refDomNode = refBlot.domNode;\n         }\n         if (this.domNode.parentNode !== childBlot.domNode ||\n             this.domNode.nextSibling !== refDomNode) {\n             this.domNode.insertBefore(childBlot.domNode, refDomNode);\n         }\n         childBlot.parent = this;\n         childBlot.attach();\n     }\n     length() {\n         return this.children.reduce((memo, child) => {\n             return memo + child.length();\n         }, 0);\n     }\n     moveChildren(targetParent, refNode) {\n         this.children.forEach(child => {\n             targetParent.insertBefore(child, refNode);\n         });\n     }\n     optimize(context) {\n         super.optimize(context);\n         this.enforceAllowedChildren();\n         if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\n             this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n         }\n         if (this.children.length === 0) {\n             if (this.statics.defaultChild != null) {\n                 const child = this.scroll.create(this.statics.defaultChild.blotName);\n                 this.appendChild(child);\n                 // TODO double check if necessary\n                 // child.optimize(context);\n             }\n             else {\n                 this.remove();\n             }\n         }\n     }\n     path(index, inclusive = false) {\n         const [child, offset] = this.children.find(index, inclusive);\n         const position = [[this, index]];\n         if (child instanceof ParentBlot) {\n             return position.concat(child.path(offset, inclusive));\n         }\n         else if (child != null) {\n             position.push([child, offset]);\n         }\n         return position;\n     }\n     removeChild(child) {\n         this.children.remove(child);\n     }\n     replaceWith(name, value) {\n         const replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n         if (replacement instanceof ParentBlot) {\n             this.moveChildren(replacement);\n         }\n         return super.replaceWith(replacement);\n     }\n     split(index, force = false) {\n         if (!force) {\n             if (index === 0) {\n                 return this;\n             }\n             if (index === this.length()) {\n                 return this.next;\n             }\n         }\n         const after = this.clone();\n         if (this.parent) {\n             this.parent.insertBefore(after, this.next || undefined);\n         }\n         this.children.forEachAt(index, this.length(), (child, offset, _length) => {\n             const split = child.split(offset, force);\n             if (split != null) {\n                 after.appendChild(split);\n             }\n         });\n         return after;\n     }\n     splitAfter(child) {\n         const after = this.clone();\n         while (child.next != null) {\n             after.appendChild(child.next);\n         }\n         if (this.parent) {\n             this.parent.insertBefore(after, this.next || undefined);\n         }\n         return after;\n     }\n     unwrap() {\n         if (this.parent) {\n             this.moveChildren(this.parent, this.next || undefined);\n         }\n         this.remove();\n     }\n     update(mutations, _context) {\n         const addedNodes = [];\n         const removedNodes = [];\n         mutations.forEach(mutation => {\n             if (mutation.target === this.domNode && mutation.type === 'childList') {\n                 addedNodes.push.apply(addedNodes, mutation.addedNodes);\n                 removedNodes.push.apply(removedNodes, mutation.removedNodes);\n             }\n         });\n         removedNodes.forEach((node) => {\n             // Check node has actually been removed\n             // One exception is Chrome does not immediately remove IFRAMEs\n             // from DOM but MutationRecord is correct in its reported removal\n             if (node.parentNode != null &&\n                 // @ts-ignore\n                 node.tagName !== 'IFRAME' &&\n                 document.body.compareDocumentPosition(node) &\n                     Node.DOCUMENT_POSITION_CONTAINED_BY) {\n                 return;\n             }\n             const blot = this.scroll.find(node);\n             if (blot == null) {\n                 return;\n             }\n             if (blot.domNode.parentNode == null ||\n                 blot.domNode.parentNode === this.domNode) {\n                 blot.detach();\n             }\n         });\n         addedNodes\n             .filter(node => {\n             return node.parentNode === this.domNode || node === this.uiNode;\n         })\n             .sort((a, b) => {\n             if (a === b) {\n                 return 0;\n             }\n             if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n                 return 1;\n             }\n             return -1;\n         })\n             .forEach(node => {\n             let refBlot = null;\n             if (node.nextSibling != null) {\n                 refBlot = this.scroll.find(node.nextSibling);\n             }\n             const blot = makeAttachedBlot(node, this.scroll);\n             if (blot.next !== refBlot || blot.next == null) {\n                 if (blot.parent != null) {\n                     blot.parent.removeChild(this);\n                 }\n                 this.insertBefore(blot, refBlot || undefined);\n             }\n         });\n         this.enforceAllowedChildren();\n     }\n }\n ParentBlot.uiClass = '';\n function makeAttachedBlot(node, scroll) {\n     let blot = scroll.find(node);\n     if (blot == null) {\n         try {\n             blot = scroll.create(node);\n         }\n         catch (e) {\n             blot = scroll.create(_scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].INLINE);\n             Array.from(node.childNodes).forEach((child) => {\n                 // @ts-ignore\n                 blot.domNode.appendChild(child);\n             });\n             if (node.parentNode) {\n                 node.parentNode.replaceChild(blot.domNode, node);\n             }\n             blot.attach();\n         }\n     }\n     return blot;\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (ParentBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/abstract/shadow.ts\":\n /*!************************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/abstract/shadow.ts ***!\n   \\************************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../error */ \"./node_modules/parchment/src/error.ts\");\n /* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../registry */ \"./node_modules/parchment/src/registry.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../scope */ \"./node_modules/parchment/src/scope.ts\");\n \n \n \n class ShadowBlot {\n     constructor(scroll, domNode) {\n         this.scroll = scroll;\n         this.domNode = domNode;\n         _registry__WEBPACK_IMPORTED_MODULE_1__[\"default\"].blots.set(domNode, this);\n         this.prev = null;\n         this.next = null;\n     }\n     static create(value) {\n         if (this.tagName == null) {\n             throw new _error__WEBPACK_IMPORTED_MODULE_0__[\"default\"]('Blot definition missing tagName');\n         }\n         let node;\n         if (Array.isArray(this.tagName)) {\n             if (typeof value === 'string') {\n                 value = value.toUpperCase();\n                 if (parseInt(value, 10).toString() === value) {\n                     value = parseInt(value, 10);\n                 }\n             }\n             if (typeof value === 'number') {\n                 node = document.createElement(this.tagName[value - 1]);\n             }\n             else if (this.tagName.indexOf(value) > -1) {\n                 node = document.createElement(value);\n             }\n             else {\n                 node = document.createElement(this.tagName[0]);\n             }\n         }\n         else {\n             node = document.createElement(this.tagName);\n         }\n         if (this.className) {\n             node.classList.add(this.className);\n         }\n         return node;\n     }\n     // Hack for accessing inherited static methods\n     get statics() {\n         return this.constructor;\n     }\n     attach() {\n         // Nothing to do\n     }\n     clone() {\n         const domNode = this.domNode.cloneNode(false);\n         return this.scroll.create(domNode);\n     }\n     detach() {\n         if (this.parent != null) {\n             this.parent.removeChild(this);\n         }\n         _registry__WEBPACK_IMPORTED_MODULE_1__[\"default\"].blots.delete(this.domNode);\n     }\n     deleteAt(index, length) {\n         const blot = this.isolate(index, length);\n         blot.remove();\n     }\n     formatAt(index, length, name, value) {\n         const blot = this.isolate(index, length);\n         if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BLOT) != null && value) {\n             blot.wrap(name, value);\n         }\n         else if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ATTRIBUTE) != null) {\n             const parent = this.scroll.create(this.statics.scope);\n             blot.wrap(parent);\n             parent.format(name, value);\n         }\n     }\n     insertAt(index, value, def) {\n         const blot = def == null\n             ? this.scroll.create('text', value)\n             : this.scroll.create(value, def);\n         const ref = this.split(index);\n         this.parent.insertBefore(blot, ref || undefined);\n     }\n     isolate(index, length) {\n         const target = this.split(index);\n         if (target == null) {\n             throw new Error('Attempt to isolate at end');\n         }\n         target.split(length);\n         return target;\n     }\n     length() {\n         return 1;\n     }\n     offset(root = this.parent) {\n         if (this.parent == null || this === root) {\n             return 0;\n         }\n         return this.parent.children.offset(this) + this.parent.offset(root);\n     }\n     optimize(_context) {\n         if (this.statics.requiredContainer &&\n             !(this.parent instanceof this.statics.requiredContainer)) {\n             this.wrap(this.statics.requiredContainer.blotName);\n         }\n     }\n     remove() {\n         if (this.domNode.parentNode != null) {\n             this.domNode.parentNode.removeChild(this.domNode);\n         }\n         this.detach();\n     }\n     replaceWith(name, value) {\n         const replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n         if (this.parent != null) {\n             this.parent.insertBefore(replacement, this.next || undefined);\n             this.remove();\n         }\n         return replacement;\n     }\n     split(index, _force) {\n         return index === 0 ? this : this.next;\n     }\n     update(_mutations, _context) {\n         // Nothing to do by default\n     }\n     wrap(name, value) {\n         const wrapper = typeof name === 'string'\n             ? this.scroll.create(name, value)\n             : name;\n         if (this.parent != null) {\n             this.parent.insertBefore(wrapper, this.next || undefined);\n         }\n         if (typeof wrapper.appendChild !== 'function') {\n             throw new _error__WEBPACK_IMPORTED_MODULE_0__[\"default\"](`Cannot wrap ${name}`);\n         }\n         wrapper.appendChild(this);\n         return wrapper;\n     }\n }\n ShadowBlot.blotName = 'abstract';\n /* harmony default export */ __webpack_exports__[\"default\"] = (ShadowBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/block.ts\":\n /*!**************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/block.ts ***!\n   \\**************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../attributor/attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n /* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../attributor/store */ \"./node_modules/parchment/src/attributor/store.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./abstract/leaf */ \"./node_modules/parchment/src/blot/abstract/leaf.ts\");\n /* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./abstract/parent */ \"./node_modules/parchment/src/blot/abstract/parent.ts\");\n /* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./inline */ \"./node_modules/parchment/src/blot/inline.ts\");\n \n \n \n \n \n \n class BlockBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n     constructor(scroll, domNode) {\n         super(scroll, domNode);\n         this.attributes = new _attributor_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.domNode);\n     }\n     static formats(domNode, scroll) {\n         const match = scroll.query(BlockBlot.blotName);\n         if (match != null &&\n             domNode.tagName === match.tagName) {\n             return undefined;\n         }\n         else if (typeof this.tagName === 'string') {\n             return true;\n         }\n         else if (Array.isArray(this.tagName)) {\n             return domNode.tagName.toLowerCase();\n         }\n     }\n     format(name, value) {\n         const format = this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BLOCK);\n         if (format == null) {\n             return;\n         }\n         else if (format instanceof _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n             this.attributes.attribute(format, value);\n         }\n         else if (name === this.statics.blotName && !value) {\n             this.replaceWith(BlockBlot.blotName);\n         }\n         else if (value &&\n             (name !== this.statics.blotName || this.formats()[name] !== value)) {\n             this.replaceWith(name, value);\n         }\n     }\n     formats() {\n         const formats = this.attributes.values();\n         const format = this.statics.formats(this.domNode, this.scroll);\n         if (format != null) {\n             formats[this.statics.blotName] = format;\n         }\n         return formats;\n     }\n     formatAt(index, length, name, value) {\n         if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BLOCK) != null) {\n             this.format(name, value);\n         }\n         else {\n             super.formatAt(index, length, name, value);\n         }\n     }\n     insertAt(index, value, def) {\n         if (def == null || this.scroll.query(value, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].INLINE) != null) {\n             // Insert text or inline\n             super.insertAt(index, value, def);\n         }\n         else {\n             const after = this.split(index);\n             if (after != null) {\n                 const blot = this.scroll.create(value, def);\n                 after.parent.insertBefore(blot, after);\n             }\n             else {\n                 throw new Error('Attempt to insertAt after block boundaries');\n             }\n         }\n     }\n     replaceWith(name, value) {\n         const replacement = super.replaceWith(name, value);\n         this.attributes.copy(replacement);\n         return replacement;\n     }\n     update(mutations, context) {\n         super.update(mutations, context);\n         const attributeChanged = mutations.some(mutation => mutation.target === this.domNode && mutation.type === 'attributes');\n         if (attributeChanged) {\n             this.attributes.build();\n         }\n     }\n }\n BlockBlot.blotName = 'block';\n BlockBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n BlockBlot.allowedChildren = [\n     _inline__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n     BlockBlot,\n     _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ];\n /* harmony default export */ __webpack_exports__[\"default\"] = (BlockBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/embed.ts\":\n /*!**************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/embed.ts ***!\n   \\**************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract/leaf */ \"./node_modules/parchment/src/blot/abstract/leaf.ts\");\n \n class EmbedBlot extends _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n     static formats(_domNode, _scroll) {\n         return undefined;\n     }\n     format(name, value) {\n         // super.formatAt wraps, which is what we want in general,\n         // but this allows subclasses to overwrite for formats\n         // that just apply to particular embeds\n         super.formatAt(0, this.length(), name, value);\n     }\n     formatAt(index, length, name, value) {\n         if (index === 0 && length === this.length()) {\n             this.format(name, value);\n         }\n         else {\n             super.formatAt(index, length, name, value);\n         }\n     }\n     formats() {\n         return this.statics.formats(this.domNode, this.scroll);\n     }\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (EmbedBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/inline.ts\":\n /*!***************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/inline.ts ***!\n   \\***************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../attributor/attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n /* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../attributor/store */ \"./node_modules/parchment/src/attributor/store.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./abstract/leaf */ \"./node_modules/parchment/src/blot/abstract/leaf.ts\");\n /* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./abstract/parent */ \"./node_modules/parchment/src/blot/abstract/parent.ts\");\n \n \n \n \n \n // Shallow object comparison\n function isEqual(obj1, obj2) {\n     if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n         return false;\n     }\n     // @ts-ignore\n     for (const prop in obj1) {\n         // @ts-ignore\n         if (obj1[prop] !== obj2[prop]) {\n             return false;\n         }\n     }\n     return true;\n }\n class InlineBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n     constructor(scroll, domNode) {\n         super(scroll, domNode);\n         this.attributes = new _attributor_store__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this.domNode);\n     }\n     static formats(domNode, scroll) {\n         const match = scroll.query(InlineBlot.blotName);\n         if (match != null &&\n             domNode.tagName === match.tagName) {\n             return undefined;\n         }\n         else if (typeof this.tagName === 'string') {\n             return true;\n         }\n         else if (Array.isArray(this.tagName)) {\n             return domNode.tagName.toLowerCase();\n         }\n         return undefined;\n     }\n     format(name, value) {\n         if (name === this.statics.blotName && !value) {\n             this.children.forEach(child => {\n                 if (!(child instanceof InlineBlot)) {\n                     child = child.wrap(InlineBlot.blotName, true);\n                 }\n                 this.attributes.copy(child);\n             });\n             this.unwrap();\n         }\n         else {\n             const format = this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].INLINE);\n             if (format == null) {\n                 return;\n             }\n             if (format instanceof _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n                 this.attributes.attribute(format, value);\n             }\n             else if (value &&\n                 (name !== this.statics.blotName || this.formats()[name] !== value)) {\n                 this.replaceWith(name, value);\n             }\n         }\n     }\n     formats() {\n         const formats = this.attributes.values();\n         const format = this.statics.formats(this.domNode, this.scroll);\n         if (format != null) {\n             formats[this.statics.blotName] = format;\n         }\n         return formats;\n     }\n     formatAt(index, length, name, value) {\n         if (this.formats()[name] != null ||\n             this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ATTRIBUTE)) {\n             const blot = this.isolate(index, length);\n             blot.format(name, value);\n         }\n         else {\n             super.formatAt(index, length, name, value);\n         }\n     }\n     optimize(context) {\n         super.optimize(context);\n         const formats = this.formats();\n         if (Object.keys(formats).length === 0) {\n             return this.unwrap(); // unformatted span\n         }\n         const next = this.next;\n         if (next instanceof InlineBlot &&\n             next.prev === this &&\n             isEqual(formats, next.formats())) {\n             next.moveChildren(this);\n             next.remove();\n         }\n     }\n     replaceWith(name, value) {\n         const replacement = super.replaceWith(name, value);\n         this.attributes.copy(replacement);\n         return replacement;\n     }\n     update(mutations, context) {\n         super.update(mutations, context);\n         const attributeChanged = mutations.some(mutation => mutation.target === this.domNode && mutation.type === 'attributes');\n         if (attributeChanged) {\n             this.attributes.build();\n         }\n     }\n     wrap(name, value) {\n         const wrapper = super.wrap(name, value);\n         if (wrapper instanceof InlineBlot) {\n             this.attributes.move(wrapper);\n         }\n         return wrapper;\n     }\n }\n InlineBlot.allowedChildren = [InlineBlot, _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__[\"default\"]];\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_2__[\"default\"].INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n /* harmony default export */ __webpack_exports__[\"default\"] = (InlineBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/scroll.ts\":\n /*!***************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/scroll.ts ***!\n   \\***************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../registry */ \"./node_modules/parchment/src/registry.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _abstract_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./abstract/container */ \"./node_modules/parchment/src/blot/abstract/container.ts\");\n /* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./abstract/parent */ \"./node_modules/parchment/src/blot/abstract/parent.ts\");\n /* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./block */ \"./node_modules/parchment/src/blot/block.ts\");\n \n \n \n \n \n const OBSERVER_CONFIG = {\n     attributes: true,\n     characterData: true,\n     characterDataOldValue: true,\n     childList: true,\n     subtree: true,\n };\n const MAX_OPTIMIZE_ITERATIONS = 100;\n class ScrollBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n     constructor(registry, node) {\n         // @ts-ignore\n         super(null, node);\n         this.registry = registry;\n         this.scroll = this;\n         this.build();\n         this.observer = new MutationObserver((mutations) => {\n             this.update(mutations);\n         });\n         this.observer.observe(this.domNode, OBSERVER_CONFIG);\n         this.attach();\n     }\n     create(input, value) {\n         return this.registry.create(this, input, value);\n     }\n     find(node, bubble = false) {\n         return this.registry.find(node, bubble);\n     }\n     query(query, scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ANY) {\n         return this.registry.query(query, scope);\n     }\n     register(...definitions) {\n         return this.registry.register(...definitions);\n     }\n     build() {\n         if (this.scroll == null) {\n             return;\n         }\n         super.build();\n     }\n     detach() {\n         super.detach();\n         this.observer.disconnect();\n     }\n     deleteAt(index, length) {\n         this.update();\n         if (index === 0 && length === this.length()) {\n             this.children.forEach(child => {\n                 child.remove();\n             });\n         }\n         else {\n             super.deleteAt(index, length);\n         }\n     }\n     formatAt(index, length, name, value) {\n         this.update();\n         super.formatAt(index, length, name, value);\n     }\n     insertAt(index, value, def) {\n         this.update();\n         super.insertAt(index, value, def);\n     }\n     optimize(mutations = [], context = {}) {\n         super.optimize(context);\n         const mutationsMap = context.mutationsMap || new WeakMap();\n         // We must modify mutations directly, cannot make copy and then modify\n         let records = Array.from(this.observer.takeRecords());\n         // Array.push currently seems to be implemented by a non-tail recursive function\n         // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n         while (records.length > 0) {\n             mutations.push(records.pop());\n         }\n         const mark = (blot, markParent = true) => {\n             if (blot == null || blot === this) {\n                 return;\n             }\n             if (blot.domNode.parentNode == null) {\n                 return;\n             }\n             if (!mutationsMap.has(blot.domNode)) {\n                 mutationsMap.set(blot.domNode, []);\n             }\n             if (markParent) {\n                 mark(blot.parent);\n             }\n         };\n         const optimize = (blot) => {\n             // Post-order traversal\n             if (!mutationsMap.has(blot.domNode)) {\n                 return;\n             }\n             if (blot instanceof _abstract_parent__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) {\n                 blot.children.forEach(optimize);\n             }\n             mutationsMap.delete(blot.domNode);\n             blot.optimize(context);\n         };\n         let remaining = mutations;\n         for (let i = 0; remaining.length > 0; i += 1) {\n             if (i >= MAX_OPTIMIZE_ITERATIONS) {\n                 throw new Error('[Parchment] Maximum optimize iterations reached');\n             }\n             remaining.forEach((mutation) => {\n                 const blot = this.find(mutation.target, true);\n                 if (blot == null) {\n                     return;\n                 }\n                 if (blot.domNode === mutation.target) {\n                     if (mutation.type === 'childList') {\n                         mark(this.find(mutation.previousSibling, false));\n                         Array.from(mutation.addedNodes).forEach((node) => {\n                             const child = this.find(node, false);\n                             mark(child, false);\n                             if (child instanceof _abstract_parent__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) {\n                                 child.children.forEach((grandChild) => {\n                                     mark(grandChild, false);\n                                 });\n                             }\n                         });\n                     }\n                     else if (mutation.type === 'attributes') {\n                         mark(blot.prev);\n                     }\n                 }\n                 mark(blot);\n             });\n             this.children.forEach(optimize);\n             remaining = Array.from(this.observer.takeRecords());\n             records = remaining.slice();\n             while (records.length > 0) {\n                 mutations.push(records.pop());\n             }\n         }\n     }\n     update(mutations, context = {}) {\n         mutations = mutations || this.observer.takeRecords();\n         const mutationsMap = new WeakMap();\n         mutations\n             .map((mutation) => {\n             const blot = _registry__WEBPACK_IMPORTED_MODULE_0__[\"default\"].find(mutation.target, true);\n             if (blot == null) {\n                 return null;\n             }\n             if (mutationsMap.has(blot.domNode)) {\n                 mutationsMap.get(blot.domNode).push(mutation);\n                 return null;\n             }\n             else {\n                 mutationsMap.set(blot.domNode, [mutation]);\n                 return blot;\n             }\n         })\n             .forEach((blot) => {\n             if (blot != null && blot !== this && mutationsMap.has(blot.domNode)) {\n                 blot.update(mutationsMap.get(blot.domNode) || [], context);\n             }\n         });\n         context.mutationsMap = mutationsMap;\n         if (mutationsMap.has(this.domNode)) {\n             super.update(mutationsMap.get(this.domNode), context);\n         }\n         this.optimize(mutations, context);\n     }\n }\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = _block__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n ScrollBlot.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _abstract_container__WEBPACK_IMPORTED_MODULE_2__[\"default\"]];\n ScrollBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n /* harmony default export */ __webpack_exports__[\"default\"] = (ScrollBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/blot/text.ts\":\n /*!*************************************************!*\\\n   !*** ./node_modules/parchment/src/blot/text.ts ***!\n   \\*************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./abstract/leaf */ \"./node_modules/parchment/src/blot/abstract/leaf.ts\");\n \n \n class TextBlot extends _abstract_leaf__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n     constructor(scroll, node) {\n         super(scroll, node);\n         this.text = this.statics.value(this.domNode);\n     }\n     static create(value) {\n         return document.createTextNode(value);\n     }\n     static value(domNode) {\n         return domNode.data;\n     }\n     deleteAt(index, length) {\n         this.domNode.data = this.text =\n             this.text.slice(0, index) + this.text.slice(index + length);\n     }\n     index(node, offset) {\n         if (this.domNode === node) {\n             return offset;\n         }\n         return -1;\n     }\n     insertAt(index, value, def) {\n         if (def == null) {\n             this.text = this.text.slice(0, index) + value + this.text.slice(index);\n             this.domNode.data = this.text;\n         }\n         else {\n             super.insertAt(index, value, def);\n         }\n     }\n     length() {\n         return this.text.length;\n     }\n     optimize(context) {\n         super.optimize(context);\n         this.text = this.statics.value(this.domNode);\n         if (this.text.length === 0) {\n             this.remove();\n         }\n         else if (this.next instanceof TextBlot && this.next.prev === this) {\n             this.insertAt(this.length(), this.next.value());\n             this.next.remove();\n         }\n     }\n     position(index, _inclusive = false) {\n         return [this.domNode, index];\n     }\n     split(index, force = false) {\n         if (!force) {\n             if (index === 0) {\n                 return this;\n             }\n             if (index === this.length()) {\n                 return this.next;\n             }\n         }\n         const after = this.scroll.create(this.domNode.splitText(index));\n         this.parent.insertBefore(after, this.next || undefined);\n         this.text = this.statics.value(this.domNode);\n         return after;\n     }\n     update(mutations, _context) {\n         if (mutations.some(mutation => {\n             return (mutation.type === 'characterData' && mutation.target === this.domNode);\n         })) {\n             this.text = this.statics.value(this.domNode);\n         }\n     }\n     value() {\n         return this.text;\n     }\n }\n TextBlot.blotName = 'text';\n TextBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_0__[\"default\"].INLINE_BLOT;\n /* harmony default export */ __webpack_exports__[\"default\"] = (TextBlot);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/collection/linked-list.ts\":\n /*!**************************************************************!*\\\n   !*** ./node_modules/parchment/src/collection/linked-list.ts ***!\n   \\**************************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n class LinkedList {\n     constructor() {\n         this.head = null;\n         this.tail = null;\n         this.length = 0;\n     }\n     append(...nodes) {\n         this.insertBefore(nodes[0], null);\n         if (nodes.length > 1) {\n             this.append.apply(this, nodes.slice(1));\n         }\n     }\n     at(index) {\n         const next = this.iterator();\n         let cur = next();\n         while (cur && index > 0) {\n             index -= 1;\n             cur = next();\n         }\n         return cur;\n     }\n     contains(node) {\n         const next = this.iterator();\n         let cur = next();\n         while (cur) {\n             if (cur === node) {\n                 return true;\n             }\n             cur = next();\n         }\n         return false;\n     }\n     indexOf(node) {\n         const next = this.iterator();\n         let cur = next();\n         let index = 0;\n         while (cur) {\n             if (cur === node) {\n                 return index;\n             }\n             index += 1;\n             cur = next();\n         }\n         return -1;\n     }\n     insertBefore(node, refNode) {\n         if (node == null) {\n             return;\n         }\n         this.remove(node);\n         node.next = refNode;\n         if (refNode != null) {\n             node.prev = refNode.prev;\n             if (refNode.prev != null) {\n                 refNode.prev.next = node;\n             }\n             refNode.prev = node;\n             if (refNode === this.head) {\n                 this.head = node;\n             }\n         }\n         else if (this.tail != null) {\n             this.tail.next = node;\n             node.prev = this.tail;\n             this.tail = node;\n         }\n         else {\n             node.prev = null;\n             this.head = this.tail = node;\n         }\n         this.length += 1;\n     }\n     offset(target) {\n         let index = 0;\n         let cur = this.head;\n         while (cur != null) {\n             if (cur === target) {\n                 return index;\n             }\n             index += cur.length();\n             cur = cur.next;\n         }\n         return -1;\n     }\n     remove(node) {\n         if (!this.contains(node)) {\n             return;\n         }\n         if (node.prev != null) {\n             node.prev.next = node.next;\n         }\n         if (node.next != null) {\n             node.next.prev = node.prev;\n         }\n         if (node === this.head) {\n             this.head = node.next;\n         }\n         if (node === this.tail) {\n             this.tail = node.prev;\n         }\n         this.length -= 1;\n     }\n     iterator(curNode = this.head) {\n         // TODO use yield when we can\n         return () => {\n             const ret = curNode;\n             if (curNode != null) {\n                 curNode = curNode.next;\n             }\n             return ret;\n         };\n     }\n     find(index, inclusive = false) {\n         const next = this.iterator();\n         let cur = next();\n         while (cur) {\n             const length = cur.length();\n             if (index < length ||\n                 (inclusive &&\n                     index === length &&\n                     (cur.next == null || cur.next.length() !== 0))) {\n                 return [cur, index];\n             }\n             index -= length;\n             cur = next();\n         }\n         return [null, 0];\n     }\n     forEach(callback) {\n         const next = this.iterator();\n         let cur = next();\n         while (cur) {\n             callback(cur);\n             cur = next();\n         }\n     }\n     forEachAt(index, length, callback) {\n         if (length <= 0) {\n             return;\n         }\n         const [startNode, offset] = this.find(index);\n         let curIndex = index - offset;\n         const next = this.iterator(startNode);\n         let cur = next();\n         while (cur && curIndex < index + length) {\n             const curLength = cur.length();\n             if (index > curIndex) {\n                 callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n             }\n             else {\n                 callback(cur, 0, Math.min(curLength, index + length - curIndex));\n             }\n             curIndex += curLength;\n             cur = next();\n         }\n     }\n     map(callback) {\n         return this.reduce((memo, cur) => {\n             memo.push(callback(cur));\n             return memo;\n         }, []);\n     }\n     reduce(callback, memo) {\n         const next = this.iterator();\n         let cur = next();\n         while (cur) {\n             memo = callback(memo, cur);\n             cur = next();\n         }\n         return memo;\n     }\n }\n /* harmony default export */ __webpack_exports__[\"default\"] = (LinkedList);\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/error.ts\":\n /*!*********************************************!*\\\n   !*** ./node_modules/parchment/src/error.ts ***!\n   \\*********************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ParchmentError; });\n class ParchmentError extends Error {\n     constructor(message) {\n         message = '[Parchment] ' + message;\n         super(message);\n         this.message = message;\n         this.name = this.constructor.name;\n     }\n }\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/parchment.ts\":\n /*!*************************************************!*\\\n   !*** ./node_modules/parchment/src/parchment.ts ***!\n   \\*************************************************/\n /*! exports provided: ParentBlot, ContainerBlot, LeafBlot, EmbedBlot, ScrollBlot, BlockBlot, InlineBlot, TextBlot, Attributor, ClassAttributor, StyleAttributor, AttributorStore, Registry, Scope */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _blot_abstract_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blot/abstract/container */ \"./node_modules/parchment/src/blot/abstract/container.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ContainerBlot\", function() { return _blot_abstract_container__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n \n /* harmony import */ var _blot_abstract_leaf__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blot/abstract/leaf */ \"./node_modules/parchment/src/blot/abstract/leaf.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LeafBlot\", function() { return _blot_abstract_leaf__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n \n /* harmony import */ var _blot_abstract_parent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blot/abstract/parent */ \"./node_modules/parchment/src/blot/abstract/parent.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ParentBlot\", function() { return _blot_abstract_parent__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n \n /* harmony import */ var _blot_block__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blot/block */ \"./node_modules/parchment/src/blot/block.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BlockBlot\", function() { return _blot_block__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n \n /* harmony import */ var _blot_embed__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blot/embed */ \"./node_modules/parchment/src/blot/embed.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmbedBlot\", function() { return _blot_embed__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n \n /* harmony import */ var _blot_inline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blot/inline */ \"./node_modules/parchment/src/blot/inline.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InlineBlot\", function() { return _blot_inline__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n \n /* harmony import */ var _blot_scroll__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blot/scroll */ \"./node_modules/parchment/src/blot/scroll.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ScrollBlot\", function() { return _blot_scroll__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n \n /* harmony import */ var _blot_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blot/text */ \"./node_modules/parchment/src/blot/text.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextBlot\", function() { return _blot_text__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n \n /* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./attributor/attributor */ \"./node_modules/parchment/src/attributor/attributor.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Attributor\", function() { return _attributor_attributor__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n \n /* harmony import */ var _attributor_class__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./attributor/class */ \"./node_modules/parchment/src/attributor/class.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClassAttributor\", function() { return _attributor_class__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n \n /* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./attributor/store */ \"./node_modules/parchment/src/attributor/store.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AttributorStore\", function() { return _attributor_store__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n \n /* harmony import */ var _attributor_style__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./attributor/style */ \"./node_modules/parchment/src/attributor/style.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StyleAttributor\", function() { return _attributor_style__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n \n /* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./registry */ \"./node_modules/parchment/src/registry.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Registry\", function() { return _registry__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n \n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./scope */ \"./node_modules/parchment/src/scope.ts\");\n /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scope\", function() { return _scope__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/registry.ts\":\n /*!************************************************!*\\\n   !*** ./node_modules/parchment/src/registry.ts ***!\n   \\************************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Registry; });\n /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./error */ \"./node_modules/parchment/src/error.ts\");\n /* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scope */ \"./node_modules/parchment/src/scope.ts\");\n \n \n class Registry {\n     constructor() {\n         this.attributes = {};\n         this.classes = {};\n         this.tags = {};\n         this.types = {};\n     }\n     static find(node, bubble = false) {\n         if (node == null) {\n             return null;\n         }\n         if (this.blots.has(node)) {\n             return this.blots.get(node) || null;\n         }\n         if (bubble) {\n             return this.find(node.parentNode, bubble);\n         }\n         return null;\n     }\n     create(scroll, input, value) {\n         const match = this.query(input);\n         if (match == null) {\n             throw new _error__WEBPACK_IMPORTED_MODULE_0__[\"default\"](`Unable to create ${input} blot`);\n         }\n         const blotClass = match;\n         const node = \n         // @ts-ignore\n         input instanceof Node || input.nodeType === Node.TEXT_NODE\n             ? input\n             : blotClass.create(value);\n         const blot = new blotClass(scroll, node, value);\n         Registry.blots.set(blot.domNode, blot);\n         return blot;\n     }\n     find(node, bubble = false) {\n         return Registry.find(node, bubble);\n     }\n     query(query, scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ANY) {\n         let match;\n         if (typeof query === 'string') {\n             match = this.types[query] || this.attributes[query];\n             // @ts-ignore\n         }\n         else if (query instanceof Text || query.nodeType === Node.TEXT_NODE) {\n             match = this.types.text;\n         }\n         else if (typeof query === 'number') {\n             if (query & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEVEL & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].BLOCK) {\n                 match = this.types.block;\n             }\n             else if (query & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEVEL & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].INLINE) {\n                 match = this.types.inline;\n             }\n         }\n         else if (query instanceof HTMLElement) {\n             const names = (query.getAttribute('class') || '').split(/\\s+/);\n             names.some(name => {\n                 match = this.classes[name];\n                 if (match) {\n                     return true;\n                 }\n                 return false;\n             });\n             match = match || this.tags[query.tagName];\n         }\n         if (match == null) {\n             return null;\n         }\n         // @ts-ignore\n         if (scope & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEVEL & match.scope && scope & _scope__WEBPACK_IMPORTED_MODULE_1__[\"default\"].TYPE & match.scope) {\n             return match;\n         }\n         return null;\n     }\n     register(...definitions) {\n         if (definitions.length > 1) {\n             return definitions.map(d => {\n                 return this.register(d);\n             });\n         }\n         const definition = definitions[0];\n         if (typeof definition.blotName !== 'string' &&\n             typeof definition.attrName !== 'string') {\n             throw new _error__WEBPACK_IMPORTED_MODULE_0__[\"default\"]('Invalid definition');\n         }\n         else if (definition.blotName === 'abstract') {\n             throw new _error__WEBPACK_IMPORTED_MODULE_0__[\"default\"]('Cannot register abstract class');\n         }\n         this.types[definition.blotName || definition.attrName] = definition;\n         if (typeof definition.keyName === 'string') {\n             this.attributes[definition.keyName] = definition;\n         }\n         else {\n             if (definition.className != null) {\n                 this.classes[definition.className] = definition;\n             }\n             if (definition.tagName != null) {\n                 if (Array.isArray(definition.tagName)) {\n                     definition.tagName = definition.tagName.map((tagName) => {\n                         return tagName.toUpperCase();\n                     });\n                 }\n                 else {\n                     definition.tagName = definition.tagName.toUpperCase();\n                 }\n                 const tagNames = Array.isArray(definition.tagName)\n                     ? definition.tagName\n                     : [definition.tagName];\n                 tagNames.forEach((tag) => {\n                     if (this.tags[tag] == null || definition.className == null) {\n                         this.tags[tag] = definition;\n                     }\n                 });\n             }\n         }\n         return definition;\n     }\n }\n Registry.blots = new WeakMap();\n \n \n /***/ }),\n \n /***/ \"./node_modules/parchment/src/scope.ts\":\n /*!*********************************************!*\\\n   !*** ./node_modules/parchment/src/scope.ts ***!\n   \\*********************************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n var Scope;\n (function (Scope) {\n     Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n     Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n     Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n     Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n     Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n     Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n     Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n     Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n     Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n     Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n     Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n })(Scope || (Scope = {}));\n /* harmony default export */ __webpack_exports__[\"default\"] = (Scope);\n \n \n /***/ }),\n \n /***/ \"./node_modules/quill-delta/dist/AttributeMap.js\":\n /*!*******************************************************!*\\\n   !*** ./node_modules/quill-delta/dist/AttributeMap.js ***!\n   \\*******************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n var __importDefault = (this && this.__importDefault) || function (mod) {\n     return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var deep_equal_1 = __importDefault(__webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\"));\n var extend_1 = __importDefault(__webpack_require__(/*! extend */ \"./node_modules/extend/index.js\"));\n var AttributeMap;\n (function (AttributeMap) {\n     function compose(a, b, keepNull) {\n         if (a === void 0) { a = {}; }\n         if (b === void 0) { b = {}; }\n         if (typeof a !== 'object') {\n             a = {};\n         }\n         if (typeof b !== 'object') {\n             b = {};\n         }\n         var attributes = extend_1.default(true, {}, b);\n         if (!keepNull) {\n             attributes = Object.keys(attributes).reduce(function (copy, key) {\n                 if (attributes[key] != null) {\n                     copy[key] = attributes[key];\n                 }\n                 return copy;\n             }, {});\n         }\n         for (var key in a) {\n             if (a[key] !== undefined && b[key] === undefined) {\n                 attributes[key] = a[key];\n             }\n         }\n         return Object.keys(attributes).length > 0 ? attributes : undefined;\n     }\n     AttributeMap.compose = compose;\n     function diff(a, b) {\n         if (a === void 0) { a = {}; }\n         if (b === void 0) { b = {}; }\n         if (typeof a !== 'object') {\n             a = {};\n         }\n         if (typeof b !== 'object') {\n             b = {};\n         }\n         var attributes = Object.keys(a)\n             .concat(Object.keys(b))\n             .reduce(function (attrs, key) {\n             if (!deep_equal_1.default(a[key], b[key])) {\n                 attrs[key] = b[key] === undefined ? null : b[key];\n             }\n             return attrs;\n         }, {});\n         return Object.keys(attributes).length > 0 ? attributes : undefined;\n     }\n     AttributeMap.diff = diff;\n     function invert(attr, base) {\n         if (attr === void 0) { attr = {}; }\n         if (base === void 0) { base = {}; }\n         attr = attr || {};\n         var baseInverted = Object.keys(base).reduce(function (memo, key) {\n             if (base[key] !== attr[key] && attr[key] !== undefined) {\n                 memo[key] = base[key];\n             }\n             return memo;\n         }, {});\n         return Object.keys(attr).reduce(function (memo, key) {\n             if (attr[key] !== base[key] && base[key] === undefined) {\n                 memo[key] = null;\n             }\n             return memo;\n         }, baseInverted);\n     }\n     AttributeMap.invert = invert;\n     function transform(a, b, priority) {\n         if (priority === void 0) { priority = false; }\n         if (typeof a !== 'object') {\n             return b;\n         }\n         if (typeof b !== 'object') {\n             return undefined;\n         }\n         if (!priority) {\n             return b; // b simply overwrites us without priority\n         }\n         var attributes = Object.keys(b).reduce(function (attrs, key) {\n             if (a[key] === undefined) {\n                 attrs[key] = b[key]; // null is a valid value\n             }\n             return attrs;\n         }, {});\n         return Object.keys(attributes).length > 0 ? attributes : undefined;\n     }\n     AttributeMap.transform = transform;\n })(AttributeMap || (AttributeMap = {}));\n exports.default = AttributeMap;\n //# sourceMappingURL=AttributeMap.js.map\n \n /***/ }),\n \n /***/ \"./node_modules/quill-delta/dist/Delta.js\":\n /*!************************************************!*\\\n   !*** ./node_modules/quill-delta/dist/Delta.js ***!\n   \\************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n var __importDefault = (this && this.__importDefault) || function (mod) {\n     return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };\n var deep_equal_1 = __importDefault(__webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\"));\n var extend_1 = __importDefault(__webpack_require__(/*! extend */ \"./node_modules/extend/index.js\"));\n var fast_diff_1 = __importDefault(__webpack_require__(/*! fast-diff */ \"./node_modules/fast-diff/diff.js\"));\n var AttributeMap_1 = __importDefault(__webpack_require__(/*! ./AttributeMap */ \"./node_modules/quill-delta/dist/AttributeMap.js\"));\n var Op_1 = __importDefault(__webpack_require__(/*! ./Op */ \"./node_modules/quill-delta/dist/Op.js\"));\n var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n var Delta = /** @class */ (function () {\n     function Delta(ops) {\n         // Assume we are given a well formed ops\n         if (Array.isArray(ops)) {\n             this.ops = ops;\n         }\n         else if (ops != null && Array.isArray(ops.ops)) {\n             this.ops = ops.ops;\n         }\n         else {\n             this.ops = [];\n         }\n     }\n     Delta.prototype.insert = function (arg, attributes) {\n         var newOp = {};\n         if (typeof arg === 'string' && arg.length === 0) {\n             return this;\n         }\n         newOp.insert = arg;\n         if (attributes != null &&\n             typeof attributes === 'object' &&\n             Object.keys(attributes).length > 0) {\n             newOp.attributes = attributes;\n         }\n         return this.push(newOp);\n     };\n     Delta.prototype.delete = function (length) {\n         if (length <= 0) {\n             return this;\n         }\n         return this.push({ delete: length });\n     };\n     Delta.prototype.retain = function (length, attributes) {\n         if (length <= 0) {\n             return this;\n         }\n         var newOp = { retain: length };\n         if (attributes != null &&\n             typeof attributes === 'object' &&\n             Object.keys(attributes).length > 0) {\n             newOp.attributes = attributes;\n         }\n         return this.push(newOp);\n     };\n     Delta.prototype.push = function (newOp) {\n         var index = this.ops.length;\n         var lastOp = this.ops[index - 1];\n         newOp = extend_1.default(true, {}, newOp);\n         if (typeof lastOp === 'object') {\n             if (typeof newOp.delete === 'number' &&\n                 typeof lastOp.delete === 'number') {\n                 this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n                 return this;\n             }\n             // Since it does not matter if we insert before or after deleting at the same index,\n             // always prefer to insert first\n             if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n                 index -= 1;\n                 lastOp = this.ops[index - 1];\n                 if (typeof lastOp !== 'object') {\n                     this.ops.unshift(newOp);\n                     return this;\n                 }\n             }\n             if (deep_equal_1.default(newOp.attributes, lastOp.attributes)) {\n                 if (typeof newOp.insert === 'string' &&\n                     typeof lastOp.insert === 'string') {\n                     this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n                     if (typeof newOp.attributes === 'object') {\n                         this.ops[index - 1].attributes = newOp.attributes;\n                     }\n                     return this;\n                 }\n                 else if (typeof newOp.retain === 'number' &&\n                     typeof lastOp.retain === 'number') {\n                     this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n                     if (typeof newOp.attributes === 'object') {\n                         this.ops[index - 1].attributes = newOp.attributes;\n                     }\n                     return this;\n                 }\n             }\n         }\n         if (index === this.ops.length) {\n             this.ops.push(newOp);\n         }\n         else {\n             this.ops.splice(index, 0, newOp);\n         }\n         return this;\n     };\n     Delta.prototype.chop = function () {\n         var lastOp = this.ops[this.ops.length - 1];\n         if (lastOp && lastOp.retain && !lastOp.attributes) {\n             this.ops.pop();\n         }\n         return this;\n     };\n     Delta.prototype.filter = function (predicate) {\n         return this.ops.filter(predicate);\n     };\n     Delta.prototype.forEach = function (predicate) {\n         this.ops.forEach(predicate);\n     };\n     Delta.prototype.map = function (predicate) {\n         return this.ops.map(predicate);\n     };\n     Delta.prototype.partition = function (predicate) {\n         var passed = [];\n         var failed = [];\n         this.forEach(function (op) {\n             var target = predicate(op) ? passed : failed;\n             target.push(op);\n         });\n         return [passed, failed];\n     };\n     Delta.prototype.reduce = function (predicate, initialValue) {\n         return this.ops.reduce(predicate, initialValue);\n     };\n     Delta.prototype.changeLength = function () {\n         return this.reduce(function (length, elem) {\n             if (elem.insert) {\n                 return length + Op_1.default.length(elem);\n             }\n             else if (elem.delete) {\n                 return length - elem.delete;\n             }\n             return length;\n         }, 0);\n     };\n     Delta.prototype.length = function () {\n         return this.reduce(function (length, elem) {\n             return length + Op_1.default.length(elem);\n         }, 0);\n     };\n     Delta.prototype.slice = function (start, end) {\n         if (start === void 0) { start = 0; }\n         if (end === void 0) { end = Infinity; }\n         var ops = [];\n         var iter = Op_1.default.iterator(this.ops);\n         var index = 0;\n         while (index < end && iter.hasNext()) {\n             var nextOp = void 0;\n             if (index < start) {\n                 nextOp = iter.next(start - index);\n             }\n             else {\n                 nextOp = iter.next(end - index);\n                 ops.push(nextOp);\n             }\n             index += Op_1.default.length(nextOp);\n         }\n         return new Delta(ops);\n     };\n     Delta.prototype.compose = function (other) {\n         var thisIter = Op_1.default.iterator(this.ops);\n         var otherIter = Op_1.default.iterator(other.ops);\n         var ops = [];\n         var firstOther = otherIter.peek();\n         if (firstOther != null &&\n             typeof firstOther.retain === 'number' &&\n             firstOther.attributes == null) {\n             var firstLeft = firstOther.retain;\n             while (thisIter.peekType() === 'insert' &&\n                 thisIter.peekLength() <= firstLeft) {\n                 firstLeft -= thisIter.peekLength();\n                 ops.push(thisIter.next());\n             }\n             if (firstOther.retain - firstLeft > 0) {\n                 otherIter.next(firstOther.retain - firstLeft);\n             }\n         }\n         var delta = new Delta(ops);\n         while (thisIter.hasNext() || otherIter.hasNext()) {\n             if (otherIter.peekType() === 'insert') {\n                 delta.push(otherIter.next());\n             }\n             else if (thisIter.peekType() === 'delete') {\n                 delta.push(thisIter.next());\n             }\n             else {\n                 var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n                 var thisOp = thisIter.next(length_1);\n                 var otherOp = otherIter.next(length_1);\n                 if (typeof otherOp.retain === 'number') {\n                     var newOp = {};\n                     if (typeof thisOp.retain === 'number') {\n                         newOp.retain = length_1;\n                     }\n                     else {\n                         newOp.insert = thisOp.insert;\n                     }\n                     // Preserve null when composing with a retain, otherwise remove it for inserts\n                     var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n                     if (attributes) {\n                         newOp.attributes = attributes;\n                     }\n                     delta.push(newOp);\n                     // Optimization if rest of other is just retain\n                     if (!otherIter.hasNext() &&\n                         deep_equal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n                         var rest = new Delta(thisIter.rest());\n                         return delta.concat(rest).chop();\n                     }\n                     // Other op should be delete, we could be an insert or retain\n                     // Insert + delete cancels out\n                 }\n                 else if (typeof otherOp.delete === 'number' &&\n                     typeof thisOp.retain === 'number') {\n                     delta.push(otherOp);\n                 }\n             }\n         }\n         return delta.chop();\n     };\n     Delta.prototype.concat = function (other) {\n         var delta = new Delta(this.ops.slice());\n         if (other.ops.length > 0) {\n             delta.push(other.ops[0]);\n             delta.ops = delta.ops.concat(other.ops.slice(1));\n         }\n         return delta;\n     };\n     Delta.prototype.diff = function (other, cursor) {\n         if (this.ops === other.ops) {\n             return new Delta();\n         }\n         var strings = [this, other].map(function (delta) {\n             return delta\n                 .map(function (op) {\n                 if (op.insert != null) {\n                     return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n                 }\n                 var prep = delta === other ? 'on' : 'with';\n                 throw new Error('diff() called ' + prep + ' non-document');\n             })\n                 .join('');\n         });\n         var retDelta = new Delta();\n         var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n         var thisIter = Op_1.default.iterator(this.ops);\n         var otherIter = Op_1.default.iterator(other.ops);\n         diffResult.forEach(function (component) {\n             var length = component[1].length;\n             while (length > 0) {\n                 var opLength = 0;\n                 switch (component[0]) {\n                     case fast_diff_1.default.INSERT:\n                         opLength = Math.min(otherIter.peekLength(), length);\n                         retDelta.push(otherIter.next(opLength));\n                         break;\n                     case fast_diff_1.default.DELETE:\n                         opLength = Math.min(length, thisIter.peekLength());\n                         thisIter.next(opLength);\n                         retDelta.delete(opLength);\n                         break;\n                     case fast_diff_1.default.EQUAL:\n                         opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n                         var thisOp = thisIter.next(opLength);\n                         var otherOp = otherIter.next(opLength);\n                         if (deep_equal_1.default(thisOp.insert, otherOp.insert)) {\n                             retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n                         }\n                         else {\n                             retDelta.push(otherOp).delete(opLength);\n                         }\n                         break;\n                 }\n                 length -= opLength;\n             }\n         });\n         return retDelta.chop();\n     };\n     Delta.prototype.eachLine = function (predicate, newline) {\n         if (newline === void 0) { newline = '\\n'; }\n         var iter = Op_1.default.iterator(this.ops);\n         var line = new Delta();\n         var i = 0;\n         while (iter.hasNext()) {\n             if (iter.peekType() !== 'insert') {\n                 return;\n             }\n             var thisOp = iter.peek();\n             var start = Op_1.default.length(thisOp) - iter.peekLength();\n             var index = typeof thisOp.insert === 'string'\n                 ? thisOp.insert.indexOf(newline, start) - start\n                 : -1;\n             if (index < 0) {\n                 line.push(iter.next());\n             }\n             else if (index > 0) {\n                 line.push(iter.next(index));\n             }\n             else {\n                 if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n                     return;\n                 }\n                 i += 1;\n                 line = new Delta();\n             }\n         }\n         if (line.length() > 0) {\n             predicate(line, {}, i);\n         }\n     };\n     Delta.prototype.invert = function (base) {\n         var inverted = new Delta();\n         this.reduce(function (baseIndex, op) {\n             if (op.insert) {\n                 inverted.delete(Op_1.default.length(op));\n             }\n             else if (op.retain && op.attributes == null) {\n                 inverted.retain(op.retain);\n                 return baseIndex + op.retain;\n             }\n             else if (op.delete || (op.retain && op.attributes)) {\n                 var length_2 = (op.delete || op.retain);\n                 var slice = base.slice(baseIndex, baseIndex + length_2);\n                 slice.forEach(function (baseOp) {\n                     if (op.delete) {\n                         inverted.push(baseOp);\n                     }\n                     else if (op.retain && op.attributes) {\n                         inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n                     }\n                 });\n                 return baseIndex + length_2;\n             }\n             return baseIndex;\n         }, 0);\n         return inverted.chop();\n     };\n     Delta.prototype.transform = function (arg, priority) {\n         if (priority === void 0) { priority = false; }\n         priority = !!priority;\n         if (typeof arg === 'number') {\n             return this.transformPosition(arg, priority);\n         }\n         var other = arg;\n         var thisIter = Op_1.default.iterator(this.ops);\n         var otherIter = Op_1.default.iterator(other.ops);\n         var delta = new Delta();\n         while (thisIter.hasNext() || otherIter.hasNext()) {\n             if (thisIter.peekType() === 'insert' &&\n                 (priority || otherIter.peekType() !== 'insert')) {\n                 delta.retain(Op_1.default.length(thisIter.next()));\n             }\n             else if (otherIter.peekType() === 'insert') {\n                 delta.push(otherIter.next());\n             }\n             else {\n                 var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n                 var thisOp = thisIter.next(length_3);\n                 var otherOp = otherIter.next(length_3);\n                 if (thisOp.delete) {\n                     // Our delete either makes their delete redundant or removes their retain\n                     continue;\n                 }\n                 else if (otherOp.delete) {\n                     delta.push(otherOp);\n                 }\n                 else {\n                     // We retain either their retain or insert\n                     delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n                 }\n             }\n         }\n         return delta.chop();\n     };\n     Delta.prototype.transformPosition = function (index, priority) {\n         if (priority === void 0) { priority = false; }\n         priority = !!priority;\n         var thisIter = Op_1.default.iterator(this.ops);\n         var offset = 0;\n         while (thisIter.hasNext() && offset <= index) {\n             var length_4 = thisIter.peekLength();\n             var nextType = thisIter.peekType();\n             thisIter.next();\n             if (nextType === 'delete') {\n                 index -= Math.min(length_4, index - offset);\n                 continue;\n             }\n             else if (nextType === 'insert' && (offset < index || !priority)) {\n                 index += length_4;\n             }\n             offset += length_4;\n         }\n         return index;\n     };\n     Delta.Op = Op_1.default;\n     Delta.AttributeMap = AttributeMap_1.default;\n     return Delta;\n }());\n module.exports = Delta;\n //# sourceMappingURL=Delta.js.map\n \n /***/ }),\n \n /***/ \"./node_modules/quill-delta/dist/Iterator.js\":\n /*!***************************************************!*\\\n   !*** ./node_modules/quill-delta/dist/Iterator.js ***!\n   \\***************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n var __importDefault = (this && this.__importDefault) || function (mod) {\n     return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var Op_1 = __importDefault(__webpack_require__(/*! ./Op */ \"./node_modules/quill-delta/dist/Op.js\"));\n var Iterator = /** @class */ (function () {\n     function Iterator(ops) {\n         this.ops = ops;\n         this.index = 0;\n         this.offset = 0;\n     }\n     Iterator.prototype.hasNext = function () {\n         return this.peekLength() < Infinity;\n     };\n     Iterator.prototype.next = function (length) {\n         if (!length) {\n             length = Infinity;\n         }\n         var nextOp = this.ops[this.index];\n         if (nextOp) {\n             var offset = this.offset;\n             var opLength = Op_1.default.length(nextOp);\n             if (length >= opLength - offset) {\n                 length = opLength - offset;\n                 this.index += 1;\n                 this.offset = 0;\n             }\n             else {\n                 this.offset += length;\n             }\n             if (typeof nextOp.delete === 'number') {\n                 return { delete: length };\n             }\n             else {\n                 var retOp = {};\n                 if (nextOp.attributes) {\n                     retOp.attributes = nextOp.attributes;\n                 }\n                 if (typeof nextOp.retain === 'number') {\n                     retOp.retain = length;\n                 }\n                 else if (typeof nextOp.insert === 'string') {\n                     retOp.insert = nextOp.insert.substr(offset, length);\n                 }\n                 else {\n                     // offset should === 0, length should === 1\n                     retOp.insert = nextOp.insert;\n                 }\n                 return retOp;\n             }\n         }\n         else {\n             return { retain: Infinity };\n         }\n     };\n     Iterator.prototype.peek = function () {\n         return this.ops[this.index];\n     };\n     Iterator.prototype.peekLength = function () {\n         if (this.ops[this.index]) {\n             // Should never return 0 if our index is being managed correctly\n             return Op_1.default.length(this.ops[this.index]) - this.offset;\n         }\n         else {\n             return Infinity;\n         }\n     };\n     Iterator.prototype.peekType = function () {\n         if (this.ops[this.index]) {\n             if (typeof this.ops[this.index].delete === 'number') {\n                 return 'delete';\n             }\n             else if (typeof this.ops[this.index].retain === 'number') {\n                 return 'retain';\n             }\n             else {\n                 return 'insert';\n             }\n         }\n         return 'retain';\n     };\n     Iterator.prototype.rest = function () {\n         if (!this.hasNext()) {\n             return [];\n         }\n         else if (this.offset === 0) {\n             return this.ops.slice(this.index);\n         }\n         else {\n             var offset = this.offset;\n             var index = this.index;\n             var next = this.next();\n             var rest = this.ops.slice(this.index);\n             this.offset = offset;\n             this.index = index;\n             return [next].concat(rest);\n         }\n     };\n     return Iterator;\n }());\n exports.default = Iterator;\n //# sourceMappingURL=Iterator.js.map\n \n /***/ }),\n \n /***/ \"./node_modules/quill-delta/dist/Op.js\":\n /*!*********************************************!*\\\n   !*** ./node_modules/quill-delta/dist/Op.js ***!\n   \\*********************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n var __importDefault = (this && this.__importDefault) || function (mod) {\n     return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var Iterator_1 = __importDefault(__webpack_require__(/*! ./Iterator */ \"./node_modules/quill-delta/dist/Iterator.js\"));\n var Op;\n (function (Op) {\n     function iterator(ops) {\n         return new Iterator_1.default(ops);\n     }\n     Op.iterator = iterator;\n     function length(op) {\n         if (typeof op.delete === 'number') {\n             return op.delete;\n         }\n         else if (typeof op.retain === 'number') {\n             return op.retain;\n         }\n         else {\n             return typeof op.insert === 'string' ? op.insert.length : 1;\n         }\n     }\n     Op.length = length;\n })(Op || (Op = {}));\n exports.default = Op;\n //# sourceMappingURL=Op.js.map\n \n /***/ }),\n \n /***/ \"./node_modules/regexp.prototype.flags/implementation.js\":\n /*!***************************************************************!*\\\n   !*** ./node_modules/regexp.prototype.flags/implementation.js ***!\n   \\***************************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var $Object = Object;\n var $TypeError = TypeError;\n \n module.exports = function flags() {\n   if (this != null && this !== $Object(this)) {\n     throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n   }\n   var result = '';\n   if (this.global) {\n     result += 'g';\n   }\n   if (this.ignoreCase) {\n     result += 'i';\n   }\n   if (this.multiline) {\n     result += 'm';\n   }\n   if (this.dotAll) {\n     result += 's';\n   }\n   if (this.unicode) {\n     result += 'u';\n   }\n   if (this.sticky) {\n     result += 'y';\n   }\n   return result;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/regexp.prototype.flags/index.js\":\n /*!******************************************************!*\\\n   !*** ./node_modules/regexp.prototype.flags/index.js ***!\n   \\******************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var define = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\");\n var callBind = __webpack_require__(/*! es-abstract/helpers/callBind */ \"./node_modules/es-abstract/helpers/callBind.js\");\n \n var implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/regexp.prototype.flags/implementation.js\");\n var getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/regexp.prototype.flags/polyfill.js\");\n var shim = __webpack_require__(/*! ./shim */ \"./node_modules/regexp.prototype.flags/shim.js\");\n \n var flagsBound = callBind(implementation);\n \n define(flagsBound, {\n   getPolyfill: getPolyfill,\n   implementation: implementation,\n   shim: shim\n });\n \n module.exports = flagsBound;\n \n \n /***/ }),\n \n /***/ \"./node_modules/regexp.prototype.flags/polyfill.js\":\n /*!*********************************************************!*\\\n   !*** ./node_modules/regexp.prototype.flags/polyfill.js ***!\n   \\*********************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/regexp.prototype.flags/implementation.js\");\n \n var supportsDescriptors = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\").supportsDescriptors;\n var $gOPD = Object.getOwnPropertyDescriptor;\n var $TypeError = TypeError;\n \n module.exports = function getPolyfill() {\n   if (!supportsDescriptors) {\n     throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n   }\n   if ((/a/mig).flags === 'gim') {\n     var descriptor = $gOPD(RegExp.prototype, 'flags');\n     if (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n       return descriptor.get;\n     }\n   }\n   return implementation;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/regexp.prototype.flags/shim.js\":\n /*!*****************************************************!*\\\n   !*** ./node_modules/regexp.prototype.flags/shim.js ***!\n   \\*****************************************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n \"use strict\";\n \n \n var supportsDescriptors = __webpack_require__(/*! define-properties */ \"./node_modules/define-properties/index.js\").supportsDescriptors;\n var getPolyfill = __webpack_require__(/*! ./polyfill */ \"./node_modules/regexp.prototype.flags/polyfill.js\");\n var gOPD = Object.getOwnPropertyDescriptor;\n var defineProperty = Object.defineProperty;\n var TypeErr = TypeError;\n var getProto = Object.getPrototypeOf;\n var regex = /a/;\n \n module.exports = function shimFlags() {\n   if (!supportsDescriptors || !getProto) {\n     throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n   }\n   var polyfill = getPolyfill();\n   var proto = getProto(regex);\n   var descriptor = gOPD(proto, 'flags');\n   if (!descriptor || descriptor.get !== polyfill) {\n     defineProperty(proto, 'flags', {\n       configurable: true,\n       enumerable: false,\n       get: polyfill\n     });\n   }\n   return polyfill;\n };\n \n \n /***/ }),\n \n /***/ \"./node_modules/webpack/buildin/global.js\":\n /*!***********************************!*\\\n   !*** (webpack)/buildin/global.js ***!\n   \\***********************************/\n /*! no static exports found */\n /***/ (function(module, exports) {\n \n var g;\n \n // This works in non-strict mode\n g = (function() {\n   return this;\n })();\n \n try {\n   // This works if eval is allowed (see CSP)\n   g = g || new Function(\"return this\")();\n } catch (e) {\n   // This works if the window reference is available\n   if (typeof window === \"object\") g = window;\n }\n \n // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n \n module.exports = g;\n \n \n /***/ }),\n \n /***/ \"./quill.js\":\n /*!******************!*\\\n   !*** ./quill.js ***!\n   \\******************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core */ \"./core.js\");\n /* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formats/align */ \"./formats/align.js\");\n /* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formats/direction */ \"./formats/direction.js\");\n /* harmony import */ var _formats_indent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formats/indent */ \"./formats/indent.js\");\n /* harmony import */ var _formats_blockquote__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formats/blockquote */ \"./formats/blockquote.js\");\n /* harmony import */ var _formats_header__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formats/header */ \"./formats/header.js\");\n /* harmony import */ var _formats_list__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formats/list */ \"./formats/list.js\");\n /* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./formats/background */ \"./formats/background.js\");\n /* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./formats/color */ \"./formats/color.js\");\n /* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./formats/font */ \"./formats/font.js\");\n /* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./formats/size */ \"./formats/size.js\");\n /* harmony import */ var _formats_bold__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./formats/bold */ \"./formats/bold.js\");\n /* harmony import */ var _formats_italic__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./formats/italic */ \"./formats/italic.js\");\n /* harmony import */ var _formats_link__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./formats/link */ \"./formats/link.js\");\n /* harmony import */ var _formats_script__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formats/script */ \"./formats/script.js\");\n /* harmony import */ var _formats_strike__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./formats/strike */ \"./formats/strike.js\");\n /* harmony import */ var _formats_underline__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./formats/underline */ \"./formats/underline.js\");\n /* harmony import */ var _formats_formula__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./formats/formula */ \"./formats/formula.js\");\n /* harmony import */ var _formats_image__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./formats/image */ \"./formats/image.js\");\n /* harmony import */ var _formats_video__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./formats/video */ \"./formats/video.js\");\n /* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./formats/code */ \"./formats/code.js\");\n /* harmony import */ var _modules_syntax__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/syntax */ \"./modules/syntax.js\");\n /* harmony import */ var _modules_table__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/table */ \"./modules/table.js\");\n /* harmony import */ var _modules_toolbar__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/toolbar */ \"./modules/toolbar.js\");\n /* harmony import */ var _ui_icons__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ui/icons */ \"./ui/icons.js\");\n /* harmony import */ var _ui_picker__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./ui/picker */ \"./ui/picker.js\");\n /* harmony import */ var _ui_color_picker__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ui/color-picker */ \"./ui/color-picker.js\");\n /* harmony import */ var _ui_icon_picker__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./ui/icon-picker */ \"./ui/icon-picker.js\");\n /* harmony import */ var _ui_tooltip__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./ui/tooltip */ \"./ui/tooltip.js\");\n /* harmony import */ var _themes_bubble__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./themes/bubble */ \"./themes/bubble.js\");\n /* harmony import */ var _themes_snow__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./themes/snow */ \"./themes/snow.js\");\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n _core__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n   'attributors/attribute/direction': _formats_direction__WEBPACK_IMPORTED_MODULE_2__[\"DirectionAttribute\"],\n   'attributors/class/align': _formats_align__WEBPACK_IMPORTED_MODULE_1__[\"AlignClass\"],\n   'attributors/class/background': _formats_background__WEBPACK_IMPORTED_MODULE_7__[\"BackgroundClass\"],\n   'attributors/class/color': _formats_color__WEBPACK_IMPORTED_MODULE_8__[\"ColorClass\"],\n   'attributors/class/direction': _formats_direction__WEBPACK_IMPORTED_MODULE_2__[\"DirectionClass\"],\n   'attributors/class/font': _formats_font__WEBPACK_IMPORTED_MODULE_9__[\"FontClass\"],\n   'attributors/class/size': _formats_size__WEBPACK_IMPORTED_MODULE_10__[\"SizeClass\"],\n   'attributors/style/align': _formats_align__WEBPACK_IMPORTED_MODULE_1__[\"AlignStyle\"],\n   'attributors/style/background': _formats_background__WEBPACK_IMPORTED_MODULE_7__[\"BackgroundStyle\"],\n   'attributors/style/color': _formats_color__WEBPACK_IMPORTED_MODULE_8__[\"ColorStyle\"],\n   'attributors/style/direction': _formats_direction__WEBPACK_IMPORTED_MODULE_2__[\"DirectionStyle\"],\n   'attributors/style/font': _formats_font__WEBPACK_IMPORTED_MODULE_9__[\"FontStyle\"],\n   'attributors/style/size': _formats_size__WEBPACK_IMPORTED_MODULE_10__[\"SizeStyle\"]\n }, true);\n _core__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n   'formats/align': _formats_align__WEBPACK_IMPORTED_MODULE_1__[\"AlignClass\"],\n   'formats/direction': _formats_direction__WEBPACK_IMPORTED_MODULE_2__[\"DirectionClass\"],\n   'formats/indent': _formats_indent__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n   'formats/background': _formats_background__WEBPACK_IMPORTED_MODULE_7__[\"BackgroundStyle\"],\n   'formats/color': _formats_color__WEBPACK_IMPORTED_MODULE_8__[\"ColorStyle\"],\n   'formats/font': _formats_font__WEBPACK_IMPORTED_MODULE_9__[\"FontClass\"],\n   'formats/size': _formats_size__WEBPACK_IMPORTED_MODULE_10__[\"SizeClass\"],\n   'formats/blockquote': _formats_blockquote__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n   'formats/code-block': _formats_code__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n   'formats/header': _formats_header__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n   'formats/list': _formats_list__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n   'formats/bold': _formats_bold__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n   'formats/code': _formats_code__WEBPACK_IMPORTED_MODULE_20__[\"Code\"],\n   'formats/italic': _formats_italic__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n   'formats/link': _formats_link__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n   'formats/script': _formats_script__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n   'formats/strike': _formats_strike__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n   'formats/underline': _formats_underline__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n   'formats/formula': _formats_formula__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n   'formats/image': _formats_image__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n   'formats/video': _formats_video__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n   'modules/syntax': _modules_syntax__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n   'modules/table': _modules_table__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n   'modules/toolbar': _modules_toolbar__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n   'themes/bubble': _themes_bubble__WEBPACK_IMPORTED_MODULE_29__[\"default\"],\n   'themes/snow': _themes_snow__WEBPACK_IMPORTED_MODULE_30__[\"default\"],\n   'ui/icons': _ui_icons__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n   'ui/picker': _ui_picker__WEBPACK_IMPORTED_MODULE_25__[\"default\"],\n   'ui/icon-picker': _ui_icon_picker__WEBPACK_IMPORTED_MODULE_27__[\"default\"],\n   'ui/color-picker': _ui_color_picker__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n   'ui/tooltip': _ui_tooltip__WEBPACK_IMPORTED_MODULE_28__[\"default\"]\n }, true);\n /* harmony default export */ __webpack_exports__[\"default\"] = (_core__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n \n /***/ }),\n \n /***/ \"./themes/base.js\":\n /*!************************!*\\\n   !*** ./themes/base.js ***!\n   \\************************/\n /*! exports provided: BaseTooltip, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseTooltip\", function() { return BaseTooltip; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BaseTheme; });\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter */ \"./core/emitter.js\");\n /* harmony import */ var _core_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/theme */ \"./core/theme.js\");\n /* harmony import */ var _ui_color_picker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/color-picker */ \"./ui/color-picker.js\");\n /* harmony import */ var _ui_icon_picker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/icon-picker */ \"./ui/icon-picker.js\");\n /* harmony import */ var _ui_picker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/picker */ \"./ui/picker.js\");\n /* harmony import */ var _ui_tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/tooltip */ \"./ui/tooltip.js\");\n \n \n \n \n \n \n \n const ALIGNS = [false, 'center', 'right', 'justify'];\n const COLORS = ['#000000', '#e60000', '#ff9900', '#ffff00', '#008a00', '#0066cc', '#9933ff', '#ffffff', '#facccc', '#ffebcc', '#ffffcc', '#cce8cc', '#cce0f5', '#ebd6ff', '#bbbbbb', '#f06666', '#ffc266', '#ffff66', '#66b966', '#66a3e0', '#c285ff', '#888888', '#a10000', '#b26b00', '#b2b200', '#006100', '#0047b2', '#6b24b2', '#444444', '#5c0000', '#663d00', '#666600', '#003700', '#002966', '#3d1466'];\n const FONTS = [false, 'serif', 'monospace'];\n const HEADERS = ['1', '2', '3', false];\n const SIZES = ['small', false, 'large', 'huge'];\n \n class BaseTheme extends _core_theme__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   constructor(quill, options) {\n     super(quill, options);\n \n     const listener = e => {\n       if (!document.body.contains(quill.root)) {\n         document.body.removeEventListener('click', listener);\n         return;\n       }\n \n       if (this.tooltip != null && !this.tooltip.root.contains(e.target) && document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\n         this.tooltip.hide();\n       }\n \n       if (this.pickers != null) {\n         this.pickers.forEach(picker => {\n           if (!picker.container.contains(e.target)) {\n             picker.close();\n           }\n         });\n       }\n     };\n \n     quill.emitter.listenDOM('click', document.body, listener);\n   }\n \n   addModule(name) {\n     const module = super.addModule(name);\n \n     if (name === 'toolbar') {\n       this.extendToolbar(module);\n     }\n \n     return module;\n   }\n \n   buildButtons(buttons, icons) {\n     Array.from(buttons).forEach(button => {\n       const className = button.getAttribute('class') || '';\n       className.split(/\\s+/).forEach(name => {\n         if (!name.startsWith('ql-')) return;\n         name = name.slice('ql-'.length);\n         if (icons[name] == null) return;\n \n         if (name === 'direction') {\n           button.innerHTML = icons[name][''] + icons[name].rtl;\n         } else if (typeof icons[name] === 'string') {\n           button.innerHTML = icons[name];\n         } else {\n           const value = button.value || '';\n \n           if (value != null && icons[name][value]) {\n             button.innerHTML = icons[name][value];\n           }\n         }\n       });\n     });\n   }\n \n   buildPickers(selects, icons) {\n     this.pickers = Array.from(selects).map(select => {\n       if (select.classList.contains('ql-align')) {\n         if (select.querySelector('option') == null) {\n           fillSelect(select, ALIGNS);\n         }\n \n         return new _ui_icon_picker__WEBPACK_IMPORTED_MODULE_4__[\"default\"](select, icons.align);\n       }\n \n       if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n         const format = select.classList.contains('ql-background') ? 'background' : 'color';\n \n         if (select.querySelector('option') == null) {\n           fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n         }\n \n         return new _ui_color_picker__WEBPACK_IMPORTED_MODULE_3__[\"default\"](select, icons[format]);\n       }\n \n       if (select.querySelector('option') == null) {\n         if (select.classList.contains('ql-font')) {\n           fillSelect(select, FONTS);\n         } else if (select.classList.contains('ql-header')) {\n           fillSelect(select, HEADERS);\n         } else if (select.classList.contains('ql-size')) {\n           fillSelect(select, SIZES);\n         }\n       }\n \n       return new _ui_picker__WEBPACK_IMPORTED_MODULE_5__[\"default\"](select);\n     });\n \n     const update = () => {\n       this.pickers.forEach(picker => {\n         picker.update();\n       });\n     };\n \n     this.quill.on(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.EDITOR_CHANGE, update);\n   }\n \n }\n \n BaseTheme.DEFAULTS = extend__WEBPACK_IMPORTED_MODULE_0___default()(true, {}, _core_theme__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n   modules: {\n     toolbar: {\n       handlers: {\n         formula() {\n           this.quill.theme.tooltip.edit('formula');\n         },\n \n         image() {\n           let fileInput = this.container.querySelector('input.ql-image[type=file]');\n \n           if (fileInput == null) {\n             fileInput = document.createElement('input');\n             fileInput.setAttribute('type', 'file');\n             fileInput.setAttribute('accept', this.quill.uploader.options.mimetypes.join(', '));\n             fileInput.classList.add('ql-image');\n             fileInput.addEventListener('change', () => {\n               const range = this.quill.getSelection(true);\n               this.quill.uploader.upload(range, fileInput.files);\n               fileInput.value = '';\n             });\n             this.container.appendChild(fileInput);\n           }\n \n           fileInput.click();\n         },\n \n         video() {\n           this.quill.theme.tooltip.edit('video');\n         }\n \n       }\n     }\n   }\n });\n \n class BaseTooltip extends _ui_tooltip__WEBPACK_IMPORTED_MODULE_6__[\"default\"] {\n   constructor(quill, boundsContainer) {\n     super(quill, boundsContainer);\n     this.textbox = this.root.querySelector('input[type=\"text\"]');\n     this.listen();\n   }\n \n   listen() {\n     this.textbox.addEventListener('keydown', event => {\n       if (event.key === 'Enter') {\n         this.save();\n         event.preventDefault();\n       } else if (event.key === 'Escape') {\n         this.cancel();\n         event.preventDefault();\n       }\n     });\n   }\n \n   cancel() {\n     this.hide();\n   }\n \n   edit(mode = 'link', preview = null) {\n     this.root.classList.remove('ql-hidden');\n     this.root.classList.add('ql-editing');\n \n     if (preview != null) {\n       this.textbox.value = preview;\n     } else if (mode !== this.root.getAttribute('data-mode')) {\n       this.textbox.value = '';\n     }\n \n     this.position(this.quill.getBounds(this.quill.selection.savedRange));\n     this.textbox.select();\n     this.textbox.setAttribute('placeholder', this.textbox.getAttribute(\"data-\".concat(mode)) || '');\n     this.root.setAttribute('data-mode', mode);\n   }\n \n   restoreFocus() {\n     const {\n       scrollTop\n     } = this.quill.scrollingContainer;\n     this.quill.focus();\n     this.quill.scrollingContainer.scrollTop = scrollTop;\n   }\n \n   save() {\n     let {\n       value\n     } = this.textbox;\n \n     switch (this.root.getAttribute('data-mode')) {\n       case 'link':\n         {\n           const {\n             scrollTop\n           } = this.quill.root;\n \n           if (this.linkRange) {\n             this.quill.formatText(this.linkRange, 'link', value, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n             delete this.linkRange;\n           } else {\n             this.restoreFocus();\n             this.quill.format('link', value, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n           }\n \n           this.quill.root.scrollTop = scrollTop;\n           break;\n         }\n \n       case 'video':\n         {\n           value = extractVideoUrl(value);\n         }\n       // eslint-disable-next-line no-fallthrough\n \n       case 'formula':\n         {\n           if (!value) break;\n           const range = this.quill.getSelection(true);\n \n           if (range != null) {\n             const index = range.index + range.length;\n             this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n \n             if (this.root.getAttribute('data-mode') === 'formula') {\n               this.quill.insertText(index + 1, ' ', _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n             }\n \n             this.quill.setSelection(index + 2, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n           }\n \n           break;\n         }\n \n       default:\n     }\n \n     this.textbox.value = '';\n     this.hide();\n   }\n \n }\n \n function extractVideoUrl(url) {\n   let match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n \n   if (match) {\n     return \"\".concat(match[1] || 'https', \"://www.youtube.com/embed/\").concat(match[2], \"?showinfo=0\");\n   } // eslint-disable-next-line no-cond-assign\n \n \n   if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n     return \"\".concat(match[1] || 'https', \"://player.vimeo.com/video/\").concat(match[2], \"/\");\n   }\n \n   return url;\n }\n \n function fillSelect(select, values, defaultValue = false) {\n   values.forEach(value => {\n     const option = document.createElement('option');\n \n     if (value === defaultValue) {\n       option.setAttribute('selected', 'selected');\n     } else {\n       option.setAttribute('value', value);\n     }\n \n     select.appendChild(option);\n   });\n }\n \n \n \n /***/ }),\n \n /***/ \"./themes/bubble.js\":\n /*!**************************!*\\\n   !*** ./themes/bubble.js ***!\n   \\**************************/\n /*! exports provided: BubbleTooltip, default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BubbleTooltip\", function() { return BubbleTooltip; });\n /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BubbleTheme; });\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter */ \"./core/emitter.js\");\n /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base */ \"./themes/base.js\");\n /* harmony import */ var _core_selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/selection */ \"./core/selection.js\");\n /* harmony import */ var _ui_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/icons */ \"./ui/icons.js\");\n \n \n \n \n \n const TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{\n   header: 1\n }, {\n   header: 2\n }, 'blockquote']];\n \n class BubbleTooltip extends _base__WEBPACK_IMPORTED_MODULE_2__[\"BaseTooltip\"] {\n   constructor(quill, bounds) {\n     super(quill, bounds);\n     this.quill.on(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.EDITOR_CHANGE, (type, range, oldRange, source) => {\n       if (type !== _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SELECTION_CHANGE) return;\n \n       if (range != null && range.length > 0 && source === _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) {\n         this.show(); // Lock our width so we will expand beyond our offsetParent boundaries\n \n         this.root.style.left = '0px';\n         this.root.style.width = '';\n         this.root.style.width = \"\".concat(this.root.offsetWidth, \"px\");\n         const lines = this.quill.getLines(range.index, range.length);\n \n         if (lines.length === 1) {\n           this.position(this.quill.getBounds(range));\n         } else {\n           const lastLine = lines[lines.length - 1];\n           const index = this.quill.getIndex(lastLine);\n           const length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n           const indexBounds = this.quill.getBounds(new _core_selection__WEBPACK_IMPORTED_MODULE_3__[\"Range\"](index, length));\n           this.position(indexBounds);\n         }\n       } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\n         this.hide();\n       }\n     });\n   }\n \n   listen() {\n     super.listen();\n     this.root.querySelector('.ql-close').addEventListener('click', () => {\n       this.root.classList.remove('ql-editing');\n     });\n     this.quill.on(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_OPTIMIZE, () => {\n       // Let selection be restored by toolbar handlers before repositioning\n       setTimeout(() => {\n         if (this.root.classList.contains('ql-hidden')) return;\n         const range = this.quill.getSelection();\n \n         if (range != null) {\n           this.position(this.quill.getBounds(range));\n         }\n       }, 1);\n     });\n   }\n \n   cancel() {\n     this.show();\n   }\n \n   position(reference) {\n     const shift = super.position(reference);\n     const arrow = this.root.querySelector('.ql-tooltip-arrow');\n     arrow.style.marginLeft = '';\n \n     if (shift !== 0) {\n       arrow.style.marginLeft = \"\".concat(-1 * shift - arrow.offsetWidth / 2, \"px\");\n     }\n \n     return shift;\n   }\n \n }\n \n BubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n \n class BubbleTheme extends _base__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   constructor(quill, options) {\n     if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n       options.modules.toolbar.container = TOOLBAR_CONFIG;\n     }\n \n     super(quill, options);\n     this.quill.container.classList.add('ql-bubble');\n   }\n \n   extendToolbar(toolbar) {\n     this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n     this.tooltip.root.appendChild(toolbar.container);\n     this.buildButtons(toolbar.container.querySelectorAll('button'), _ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n     this.buildPickers(toolbar.container.querySelectorAll('select'), _ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n   }\n \n }\n \n BubbleTheme.DEFAULTS = extend__WEBPACK_IMPORTED_MODULE_0___default()(true, {}, _base__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n   modules: {\n     toolbar: {\n       handlers: {\n         link(value) {\n           if (!value) {\n             this.quill.format('link', false);\n           } else {\n             this.quill.theme.tooltip.edit();\n           }\n         }\n \n       }\n     }\n   }\n });\n \n \n /***/ }),\n \n /***/ \"./themes/snow.js\":\n /*!************************!*\\\n   !*** ./themes/snow.js ***!\n   \\************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! extend */ \"./node_modules/extend/index.js\");\n /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(extend__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter */ \"./core/emitter.js\");\n /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base */ \"./themes/base.js\");\n /* harmony import */ var _formats_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formats/link */ \"./formats/link.js\");\n /* harmony import */ var _core_selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/selection */ \"./core/selection.js\");\n /* harmony import */ var _ui_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/icons */ \"./ui/icons.js\");\n \n \n \n \n \n \n const TOOLBAR_CONFIG = [[{\n   header: ['1', '2', '3', false]\n }], ['bold', 'italic', 'underline', 'link'], [{\n   list: 'ordered'\n }, {\n   list: 'bullet'\n }], ['clean']];\n \n class SnowTooltip extends _base__WEBPACK_IMPORTED_MODULE_2__[\"BaseTooltip\"] {\n   constructor(quill, bounds) {\n     super(quill, bounds);\n     this.preview = this.root.querySelector('a.ql-preview');\n   }\n \n   listen() {\n     super.listen();\n     this.root.querySelector('a.ql-action').addEventListener('click', event => {\n       if (this.root.classList.contains('ql-editing')) {\n         this.save();\n       } else {\n         this.edit('link', this.preview.textContent);\n       }\n \n       event.preventDefault();\n     });\n     this.root.querySelector('a.ql-remove').addEventListener('click', event => {\n       if (this.linkRange != null) {\n         const range = this.linkRange;\n         this.restoreFocus();\n         this.quill.formatText(range, 'link', false, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n         delete this.linkRange;\n       }\n \n       event.preventDefault();\n       this.hide();\n     });\n     this.quill.on(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SELECTION_CHANGE, (range, oldRange, source) => {\n       if (range == null) return;\n \n       if (range.length === 0 && source === _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) {\n         const [link, offset] = this.quill.scroll.descendant(_formats_link__WEBPACK_IMPORTED_MODULE_3__[\"default\"], range.index);\n \n         if (link != null) {\n           this.linkRange = new _core_selection__WEBPACK_IMPORTED_MODULE_4__[\"Range\"](range.index - offset, link.length());\n           const preview = _formats_link__WEBPACK_IMPORTED_MODULE_3__[\"default\"].formats(link.domNode);\n           this.preview.textContent = preview;\n           this.preview.setAttribute('href', preview);\n           this.show();\n           this.position(this.quill.getBounds(this.linkRange));\n           return;\n         }\n       } else {\n         delete this.linkRange;\n       }\n \n       this.hide();\n     });\n   }\n \n   show() {\n     super.show();\n     this.root.removeAttribute('data-mode');\n   }\n \n }\n \n SnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n \n class SnowTheme extends _base__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n   constructor(quill, options) {\n     if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n       options.modules.toolbar.container = TOOLBAR_CONFIG;\n     }\n \n     super(quill, options);\n     this.quill.container.classList.add('ql-snow');\n   }\n \n   extendToolbar(toolbar) {\n     toolbar.container.classList.add('ql-snow');\n     this.buildButtons(toolbar.container.querySelectorAll('button'), _ui_icons__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n     this.buildPickers(toolbar.container.querySelectorAll('select'), _ui_icons__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n     this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n \n     if (toolbar.container.querySelector('.ql-link')) {\n       this.quill.keyboard.addBinding({\n         key: 'k',\n         shortKey: true\n       }, (range, context) => {\n         toolbar.handlers.link.call(toolbar, !context.format.link);\n       });\n     }\n   }\n \n }\n \n SnowTheme.DEFAULTS = extend__WEBPACK_IMPORTED_MODULE_0___default()(true, {}, _base__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n   modules: {\n     toolbar: {\n       handlers: {\n         link(value) {\n           if (value) {\n             const range = this.quill.getSelection();\n             if (range == null || range.length === 0) return;\n             let preview = this.quill.getText(range);\n \n             if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n               preview = \"mailto:\".concat(preview);\n             }\n \n             const {\n               tooltip\n             } = this.quill.theme;\n             tooltip.edit('link', preview);\n           } else {\n             this.quill.format('link', false);\n           }\n         }\n \n       }\n     }\n   }\n });\n /* harmony default export */ __webpack_exports__[\"default\"] = (SnowTheme);\n \n /***/ }),\n \n /***/ \"./ui/color-picker.js\":\n /*!****************************!*\\\n   !*** ./ui/color-picker.js ***!\n   \\****************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _picker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./picker */ \"./ui/picker.js\");\n \n \n class ColorPicker extends _picker__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   constructor(select, label) {\n     super(select);\n     this.label.innerHTML = label;\n     this.container.classList.add('ql-color-picker');\n     Array.from(this.container.querySelectorAll('.ql-picker-item')).slice(0, 7).forEach(item => {\n       item.classList.add('ql-primary');\n     });\n   }\n \n   buildItem(option) {\n     const item = super.buildItem(option);\n     item.style.backgroundColor = option.getAttribute('value') || '';\n     return item;\n   }\n \n   selectItem(item, trigger) {\n     super.selectItem(item, trigger);\n     const colorLabel = this.label.querySelector('.ql-color-label');\n     const value = item ? item.getAttribute('data-value') || '' : '';\n \n     if (colorLabel) {\n       if (colorLabel.tagName === 'line') {\n         colorLabel.style.stroke = value;\n       } else {\n         colorLabel.style.fill = value;\n       }\n     }\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (ColorPicker);\n \n /***/ }),\n \n /***/ \"./ui/icon-picker.js\":\n /*!***************************!*\\\n   !*** ./ui/icon-picker.js ***!\n   \\***************************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _picker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./picker */ \"./ui/picker.js\");\n \n \n class IconPicker extends _picker__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n   constructor(select, icons) {\n     super(select);\n     this.container.classList.add('ql-icon-picker');\n     Array.from(this.container.querySelectorAll('.ql-picker-item')).forEach(item => {\n       item.innerHTML = icons[item.getAttribute('data-value') || ''];\n     });\n     this.defaultItem = this.container.querySelector('.ql-selected');\n     this.selectItem(this.defaultItem);\n   }\n \n   selectItem(target, trigger) {\n     super.selectItem(target, trigger);\n     const item = target || this.defaultItem;\n     if (this.label.innerHTML === item.innerHTML) return;\n     this.label.innerHTML = item.innerHTML;\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (IconPicker);\n \n /***/ }),\n \n /***/ \"./ui/icons.js\":\n /*!*********************!*\\\n   !*** ./ui/icons.js ***!\n   \\*********************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _assets_icons_align_left_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/icons/align-left.svg */ \"./assets/icons/align-left.svg\");\n /* harmony import */ var _assets_icons_align_left_svg__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_align_left_svg__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _assets_icons_align_center_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../assets/icons/align-center.svg */ \"./assets/icons/align-center.svg\");\n /* harmony import */ var _assets_icons_align_center_svg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_align_center_svg__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */ var _assets_icons_align_right_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../assets/icons/align-right.svg */ \"./assets/icons/align-right.svg\");\n /* harmony import */ var _assets_icons_align_right_svg__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_align_right_svg__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */ var _assets_icons_align_justify_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../assets/icons/align-justify.svg */ \"./assets/icons/align-justify.svg\");\n /* harmony import */ var _assets_icons_align_justify_svg__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_align_justify_svg__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var _assets_icons_background_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../assets/icons/background.svg */ \"./assets/icons/background.svg\");\n /* harmony import */ var _assets_icons_background_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_background_svg__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */ var _assets_icons_blockquote_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../assets/icons/blockquote.svg */ \"./assets/icons/blockquote.svg\");\n /* harmony import */ var _assets_icons_blockquote_svg__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_blockquote_svg__WEBPACK_IMPORTED_MODULE_5__);\n /* harmony import */ var _assets_icons_bold_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../assets/icons/bold.svg */ \"./assets/icons/bold.svg\");\n /* harmony import */ var _assets_icons_bold_svg__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_bold_svg__WEBPACK_IMPORTED_MODULE_6__);\n /* harmony import */ var _assets_icons_clean_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../assets/icons/clean.svg */ \"./assets/icons/clean.svg\");\n /* harmony import */ var _assets_icons_clean_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_clean_svg__WEBPACK_IMPORTED_MODULE_7__);\n /* harmony import */ var _assets_icons_code_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../assets/icons/code.svg */ \"./assets/icons/code.svg\");\n /* harmony import */ var _assets_icons_code_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_code_svg__WEBPACK_IMPORTED_MODULE_8__);\n /* harmony import */ var _assets_icons_color_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../assets/icons/color.svg */ \"./assets/icons/color.svg\");\n /* harmony import */ var _assets_icons_color_svg__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_color_svg__WEBPACK_IMPORTED_MODULE_9__);\n /* harmony import */ var _assets_icons_direction_ltr_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../assets/icons/direction-ltr.svg */ \"./assets/icons/direction-ltr.svg\");\n /* harmony import */ var _assets_icons_direction_ltr_svg__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_direction_ltr_svg__WEBPACK_IMPORTED_MODULE_10__);\n /* harmony import */ var _assets_icons_direction_rtl_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../assets/icons/direction-rtl.svg */ \"./assets/icons/direction-rtl.svg\");\n /* harmony import */ var _assets_icons_direction_rtl_svg__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_direction_rtl_svg__WEBPACK_IMPORTED_MODULE_11__);\n /* harmony import */ var _assets_icons_formula_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../assets/icons/formula.svg */ \"./assets/icons/formula.svg\");\n /* harmony import */ var _assets_icons_formula_svg__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_formula_svg__WEBPACK_IMPORTED_MODULE_12__);\n /* harmony import */ var _assets_icons_header_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../assets/icons/header.svg */ \"./assets/icons/header.svg\");\n /* harmony import */ var _assets_icons_header_svg__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_header_svg__WEBPACK_IMPORTED_MODULE_13__);\n /* harmony import */ var _assets_icons_header_2_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../assets/icons/header-2.svg */ \"./assets/icons/header-2.svg\");\n /* harmony import */ var _assets_icons_header_2_svg__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_header_2_svg__WEBPACK_IMPORTED_MODULE_14__);\n /* harmony import */ var _assets_icons_italic_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../assets/icons/italic.svg */ \"./assets/icons/italic.svg\");\n /* harmony import */ var _assets_icons_italic_svg__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_italic_svg__WEBPACK_IMPORTED_MODULE_15__);\n /* harmony import */ var _assets_icons_image_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../assets/icons/image.svg */ \"./assets/icons/image.svg\");\n /* harmony import */ var _assets_icons_image_svg__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_image_svg__WEBPACK_IMPORTED_MODULE_16__);\n /* harmony import */ var _assets_icons_indent_svg__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../assets/icons/indent.svg */ \"./assets/icons/indent.svg\");\n /* harmony import */ var _assets_icons_indent_svg__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_indent_svg__WEBPACK_IMPORTED_MODULE_17__);\n /* harmony import */ var _assets_icons_outdent_svg__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../assets/icons/outdent.svg */ \"./assets/icons/outdent.svg\");\n /* harmony import */ var _assets_icons_outdent_svg__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_outdent_svg__WEBPACK_IMPORTED_MODULE_18__);\n /* harmony import */ var _assets_icons_link_svg__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../assets/icons/link.svg */ \"./assets/icons/link.svg\");\n /* harmony import */ var _assets_icons_link_svg__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_link_svg__WEBPACK_IMPORTED_MODULE_19__);\n /* harmony import */ var _assets_icons_list_bullet_svg__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../assets/icons/list-bullet.svg */ \"./assets/icons/list-bullet.svg\");\n /* harmony import */ var _assets_icons_list_bullet_svg__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_list_bullet_svg__WEBPACK_IMPORTED_MODULE_20__);\n /* harmony import */ var _assets_icons_list_check_svg__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../assets/icons/list-check.svg */ \"./assets/icons/list-check.svg\");\n /* harmony import */ var _assets_icons_list_check_svg__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_list_check_svg__WEBPACK_IMPORTED_MODULE_21__);\n /* harmony import */ var _assets_icons_list_ordered_svg__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../assets/icons/list-ordered.svg */ \"./assets/icons/list-ordered.svg\");\n /* harmony import */ var _assets_icons_list_ordered_svg__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_list_ordered_svg__WEBPACK_IMPORTED_MODULE_22__);\n /* harmony import */ var _assets_icons_subscript_svg__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../assets/icons/subscript.svg */ \"./assets/icons/subscript.svg\");\n /* harmony import */ var _assets_icons_subscript_svg__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_subscript_svg__WEBPACK_IMPORTED_MODULE_23__);\n /* harmony import */ var _assets_icons_superscript_svg__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../assets/icons/superscript.svg */ \"./assets/icons/superscript.svg\");\n /* harmony import */ var _assets_icons_superscript_svg__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_superscript_svg__WEBPACK_IMPORTED_MODULE_24__);\n /* harmony import */ var _assets_icons_strike_svg__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../assets/icons/strike.svg */ \"./assets/icons/strike.svg\");\n /* harmony import */ var _assets_icons_strike_svg__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_strike_svg__WEBPACK_IMPORTED_MODULE_25__);\n /* harmony import */ var _assets_icons_table_svg__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../assets/icons/table.svg */ \"./assets/icons/table.svg\");\n /* harmony import */ var _assets_icons_table_svg__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_table_svg__WEBPACK_IMPORTED_MODULE_26__);\n /* harmony import */ var _assets_icons_underline_svg__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../assets/icons/underline.svg */ \"./assets/icons/underline.svg\");\n /* harmony import */ var _assets_icons_underline_svg__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_underline_svg__WEBPACK_IMPORTED_MODULE_27__);\n /* harmony import */ var _assets_icons_video_svg__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../assets/icons/video.svg */ \"./assets/icons/video.svg\");\n /* harmony import */ var _assets_icons_video_svg__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_video_svg__WEBPACK_IMPORTED_MODULE_28__);\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n /* harmony default export */ __webpack_exports__[\"default\"] = ({\n   align: {\n     '': _assets_icons_align_left_svg__WEBPACK_IMPORTED_MODULE_0___default.a,\n     center: _assets_icons_align_center_svg__WEBPACK_IMPORTED_MODULE_1___default.a,\n     right: _assets_icons_align_right_svg__WEBPACK_IMPORTED_MODULE_2___default.a,\n     justify: _assets_icons_align_justify_svg__WEBPACK_IMPORTED_MODULE_3___default.a\n   },\n   background: _assets_icons_background_svg__WEBPACK_IMPORTED_MODULE_4___default.a,\n   blockquote: _assets_icons_blockquote_svg__WEBPACK_IMPORTED_MODULE_5___default.a,\n   bold: _assets_icons_bold_svg__WEBPACK_IMPORTED_MODULE_6___default.a,\n   clean: _assets_icons_clean_svg__WEBPACK_IMPORTED_MODULE_7___default.a,\n   code: _assets_icons_code_svg__WEBPACK_IMPORTED_MODULE_8___default.a,\n   'code-block': _assets_icons_code_svg__WEBPACK_IMPORTED_MODULE_8___default.a,\n   color: _assets_icons_color_svg__WEBPACK_IMPORTED_MODULE_9___default.a,\n   direction: {\n     '': _assets_icons_direction_ltr_svg__WEBPACK_IMPORTED_MODULE_10___default.a,\n     rtl: _assets_icons_direction_rtl_svg__WEBPACK_IMPORTED_MODULE_11___default.a\n   },\n   formula: _assets_icons_formula_svg__WEBPACK_IMPORTED_MODULE_12___default.a,\n   header: {\n     '1': _assets_icons_header_svg__WEBPACK_IMPORTED_MODULE_13___default.a,\n     '2': _assets_icons_header_2_svg__WEBPACK_IMPORTED_MODULE_14___default.a\n   },\n   italic: _assets_icons_italic_svg__WEBPACK_IMPORTED_MODULE_15___default.a,\n   image: _assets_icons_image_svg__WEBPACK_IMPORTED_MODULE_16___default.a,\n   indent: {\n     '+1': _assets_icons_indent_svg__WEBPACK_IMPORTED_MODULE_17___default.a,\n     '-1': _assets_icons_outdent_svg__WEBPACK_IMPORTED_MODULE_18___default.a\n   },\n   link: _assets_icons_link_svg__WEBPACK_IMPORTED_MODULE_19___default.a,\n   list: {\n     bullet: _assets_icons_list_bullet_svg__WEBPACK_IMPORTED_MODULE_20___default.a,\n     check: _assets_icons_list_check_svg__WEBPACK_IMPORTED_MODULE_21___default.a,\n     ordered: _assets_icons_list_ordered_svg__WEBPACK_IMPORTED_MODULE_22___default.a\n   },\n   script: {\n     sub: _assets_icons_subscript_svg__WEBPACK_IMPORTED_MODULE_23___default.a,\n     super: _assets_icons_superscript_svg__WEBPACK_IMPORTED_MODULE_24___default.a\n   },\n   strike: _assets_icons_strike_svg__WEBPACK_IMPORTED_MODULE_25___default.a,\n   table: _assets_icons_table_svg__WEBPACK_IMPORTED_MODULE_26___default.a,\n   underline: _assets_icons_underline_svg__WEBPACK_IMPORTED_MODULE_27___default.a,\n   video: _assets_icons_video_svg__WEBPACK_IMPORTED_MODULE_28___default.a\n });\n \n /***/ }),\n \n /***/ \"./ui/picker.js\":\n /*!**********************!*\\\n   !*** ./ui/picker.js ***!\n   \\**********************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */ var _assets_icons_dropdown_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/icons/dropdown.svg */ \"./assets/icons/dropdown.svg\");\n /* harmony import */ var _assets_icons_dropdown_svg__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_icons_dropdown_svg__WEBPACK_IMPORTED_MODULE_0__);\n \n let optionsCounter = 0;\n \n function toggleAriaAttribute(element, attribute) {\n   element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n }\n \n class Picker {\n   constructor(select) {\n     this.select = select;\n     this.container = document.createElement('span');\n     this.buildPicker();\n     this.select.style.display = 'none';\n     this.select.parentNode.insertBefore(this.container, this.select);\n     this.label.addEventListener('mousedown', () => {\n       this.togglePicker();\n     });\n     this.label.addEventListener('keydown', event => {\n       switch (event.key) {\n         case 'Enter':\n           this.togglePicker();\n           break;\n \n         case 'Escape':\n           this.escape();\n           event.preventDefault();\n           break;\n \n         default:\n       }\n     });\n     this.select.addEventListener('change', this.update.bind(this));\n   }\n \n   togglePicker() {\n     this.container.classList.toggle('ql-expanded'); // Toggle aria-expanded and aria-hidden to make the picker accessible\n \n     toggleAriaAttribute(this.label, 'aria-expanded');\n     toggleAriaAttribute(this.options, 'aria-hidden');\n   }\n \n   buildItem(option) {\n     const item = document.createElement('span');\n     item.tabIndex = '0';\n     item.setAttribute('role', 'button');\n     item.classList.add('ql-picker-item');\n \n     if (option.hasAttribute('value')) {\n       item.setAttribute('data-value', option.getAttribute('value'));\n     }\n \n     if (option.textContent) {\n       item.setAttribute('data-label', option.textContent);\n     }\n \n     item.addEventListener('click', () => {\n       this.selectItem(item, true);\n     });\n     item.addEventListener('keydown', event => {\n       switch (event.key) {\n         case 'Enter':\n           this.selectItem(item, true);\n           event.preventDefault();\n           break;\n \n         case 'Escape':\n           this.escape();\n           event.preventDefault();\n           break;\n \n         default:\n       }\n     });\n     return item;\n   }\n \n   buildLabel() {\n     const label = document.createElement('span');\n     label.classList.add('ql-picker-label');\n     label.innerHTML = _assets_icons_dropdown_svg__WEBPACK_IMPORTED_MODULE_0___default.a;\n     label.tabIndex = '0';\n     label.setAttribute('role', 'button');\n     label.setAttribute('aria-expanded', 'false');\n     this.container.appendChild(label);\n     return label;\n   }\n \n   buildOptions() {\n     const options = document.createElement('span');\n     options.classList.add('ql-picker-options'); // Don't want screen readers to read this until options are visible\n \n     options.setAttribute('aria-hidden', 'true');\n     options.tabIndex = '-1'; // Need a unique id for aria-controls\n \n     options.id = \"ql-picker-options-\".concat(optionsCounter);\n     optionsCounter += 1;\n     this.label.setAttribute('aria-controls', options.id);\n     this.options = options;\n     Array.from(this.select.options).forEach(option => {\n       const item = this.buildItem(option);\n       options.appendChild(item);\n \n       if (option.selected === true) {\n         this.selectItem(item);\n       }\n     });\n     this.container.appendChild(options);\n   }\n \n   buildPicker() {\n     Array.from(this.select.attributes).forEach(item => {\n       this.container.setAttribute(item.name, item.value);\n     });\n     this.container.classList.add('ql-picker');\n     this.label = this.buildLabel();\n     this.buildOptions();\n   }\n \n   escape() {\n     // Close menu and return focus to trigger label\n     this.close(); // Need setTimeout for accessibility to ensure that the browser executes\n     // focus on the next process thread and after any DOM content changes\n \n     setTimeout(() => this.label.focus(), 1);\n   }\n \n   close() {\n     this.container.classList.remove('ql-expanded');\n     this.label.setAttribute('aria-expanded', 'false');\n     this.options.setAttribute('aria-hidden', 'true');\n   }\n \n   selectItem(item, trigger = false) {\n     const selected = this.container.querySelector('.ql-selected');\n     if (item === selected) return;\n \n     if (selected != null) {\n       selected.classList.remove('ql-selected');\n     }\n \n     if (item == null) return;\n     item.classList.add('ql-selected');\n     this.select.selectedIndex = Array.from(item.parentNode.children).indexOf(item);\n \n     if (item.hasAttribute('data-value')) {\n       this.label.setAttribute('data-value', item.getAttribute('data-value'));\n     } else {\n       this.label.removeAttribute('data-value');\n     }\n \n     if (item.hasAttribute('data-label')) {\n       this.label.setAttribute('data-label', item.getAttribute('data-label'));\n     } else {\n       this.label.removeAttribute('data-label');\n     }\n \n     if (trigger) {\n       this.select.dispatchEvent(new Event('change'));\n       this.close();\n     }\n   }\n \n   update() {\n     let option;\n \n     if (this.select.selectedIndex > -1) {\n       const item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n       option = this.select.options[this.select.selectedIndex];\n       this.selectItem(item);\n     } else {\n       this.selectItem(null);\n     }\n \n     const isActive = option != null && option !== this.select.querySelector('option[selected]');\n     this.label.classList.toggle('ql-active', isActive);\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Picker);\n \n /***/ }),\n \n /***/ \"./ui/tooltip.js\":\n /*!***********************!*\\\n   !*** ./ui/tooltip.js ***!\n   \\***********************/\n /*! exports provided: default */\n /***/ (function(module, __webpack_exports__, __webpack_require__) {\n \n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n class Tooltip {\n   constructor(quill, boundsContainer) {\n     this.quill = quill;\n     this.boundsContainer = boundsContainer || document.body;\n     this.root = quill.addContainer('ql-tooltip');\n     this.root.innerHTML = this.constructor.TEMPLATE;\n \n     if (this.quill.root === this.quill.scrollingContainer) {\n       this.quill.root.addEventListener('scroll', () => {\n         this.root.style.marginTop = \"\".concat(-1 * this.quill.root.scrollTop, \"px\");\n       });\n     }\n \n     this.hide();\n   }\n \n   hide() {\n     this.root.classList.add('ql-hidden');\n   }\n \n   position(reference) {\n     const left = reference.left + reference.width / 2 - this.root.offsetWidth / 2; // root.scrollTop should be 0 if scrollContainer !== root\n \n     const top = reference.bottom + this.quill.root.scrollTop;\n     this.root.style.left = \"\".concat(left, \"px\");\n     this.root.style.top = \"\".concat(top, \"px\");\n     this.root.classList.remove('ql-flip');\n     const containerBounds = this.boundsContainer.getBoundingClientRect();\n     const rootBounds = this.root.getBoundingClientRect();\n     let shift = 0;\n \n     if (rootBounds.right > containerBounds.right) {\n       shift = containerBounds.right - rootBounds.right;\n       this.root.style.left = \"\".concat(left + shift, \"px\");\n     }\n \n     if (rootBounds.left < containerBounds.left) {\n       shift = containerBounds.left - rootBounds.left;\n       this.root.style.left = \"\".concat(left + shift, \"px\");\n     }\n \n     if (rootBounds.bottom > containerBounds.bottom) {\n       const height = rootBounds.bottom - rootBounds.top;\n       const verticalShift = reference.bottom - reference.top + height;\n       this.root.style.top = \"\".concat(top - verticalShift, \"px\");\n       this.root.classList.add('ql-flip');\n     }\n \n     return shift;\n   }\n \n   show() {\n     this.root.classList.remove('ql-editing');\n     this.root.classList.remove('ql-hidden');\n   }\n \n }\n \n /* harmony default export */ __webpack_exports__[\"default\"] = (Tooltip);\n \n /***/ }),\n \n /***/ 0:\n /*!************************!*\\\n   !*** multi ./quill.js ***!\n   \\************************/\n /*! no static exports found */\n /***/ (function(module, exports, __webpack_require__) {\n \n module.exports = __webpack_require__(/*! ./quill.js */\"./quill.js\");\n \n \n /***/ })\n \n /******/ })[\"default\"];\n });\n //# sourceMappingURL=quill.js.map\nconst Quill = factory()\nexport { Quill }"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill/quill.snow.css",
    "content": "/*!\n * Quill Editor v1.3.6\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n .ql-container {\n  box-sizing: border-box;\n  font-family: Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  height: 100%;\n  margin: 0px;\n  position: relative;\n}\n.ql-container.ql-disabled .ql-tooltip {\n  visibility: hidden;\n}\n.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {\n  pointer-events: none;\n}\n.ql-clipboard {\n  left: -100000px;\n  height: 1px;\n  overflow-y: hidden;\n  position: absolute;\n  top: 50%;\n}\n.ql-clipboard p {\n  margin: 0;\n  padding: 0;\n}\n.ql-editor {\n  box-sizing: border-box;\n  line-height: 1.42;\n  height: 100%;\n  outline: none;\n  overflow-y: auto;\n  padding: 12px 15px;\n  tab-size: 4;\n  -moz-tab-size: 4;\n  text-align: left;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.ql-editor > * {\n  cursor: text;\n}\n.ql-editor p,\n.ql-editor ol,\n.ql-editor ul,\n.ql-editor pre,\n.ql-editor blockquote,\n.ql-editor h1,\n.ql-editor h2,\n.ql-editor h3,\n.ql-editor h4,\n.ql-editor h5,\n.ql-editor h6 {\n  margin: 0;\n  padding: 0;\n  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol,\n.ql-editor ul {\n  padding-left: 1.5em;\n}\n.ql-editor ol > li,\n.ql-editor ul > li {\n  list-style-type: none;\n}\n.ql-editor ul > li::before {\n  content: '\\2022';\n}\n.ql-editor ul[data-checked=true],\n.ql-editor ul[data-checked=false] {\n  pointer-events: none;\n}\n.ql-editor ul[data-checked=true] > li *,\n.ql-editor ul[data-checked=false] > li * {\n  pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before,\n.ql-editor ul[data-checked=false] > li::before {\n  color: #777;\n  cursor: pointer;\n  pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before {\n  content: '\\2611';\n}\n.ql-editor ul[data-checked=false] > li::before {\n  content: '\\2610';\n}\n.ql-editor li::before {\n  display: inline-block;\n  white-space: nowrap;\n  width: 1.2em;\n}\n.ql-editor li:not(.ql-direction-rtl)::before {\n  margin-left: -1.5em;\n  margin-right: 0.3em;\n  text-align: right;\n}\n.ql-editor li.ql-direction-rtl::before {\n  margin-left: 0.3em;\n  margin-right: -1.5em;\n}\n.ql-editor ol li:not(.ql-direction-rtl),\n.ql-editor ul li:not(.ql-direction-rtl) {\n  padding-left: 1.5em;\n}\n.ql-editor ol li.ql-direction-rtl,\n.ql-editor ul li.ql-direction-rtl {\n  padding-right: 1.5em;\n}\n.ql-editor ol li {\n  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  counter-increment: list-0;\n}\n.ql-editor ol li:before {\n  content: counter(list-0, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n  counter-increment: list-1;\n}\n.ql-editor ol li.ql-indent-1:before {\n  content: counter(list-1, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-2 {\n  counter-increment: list-2;\n}\n.ql-editor ol li.ql-indent-2:before {\n  content: counter(list-2, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-2 {\n  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-3 {\n  counter-increment: list-3;\n}\n.ql-editor ol li.ql-indent-3:before {\n  content: counter(list-3, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-3 {\n  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-4 {\n  counter-increment: list-4;\n}\n.ql-editor ol li.ql-indent-4:before {\n  content: counter(list-4, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-4 {\n  counter-reset: list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-5 {\n  counter-increment: list-5;\n}\n.ql-editor ol li.ql-indent-5:before {\n  content: counter(list-5, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-5 {\n  counter-reset: list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-6 {\n  counter-increment: list-6;\n}\n.ql-editor ol li.ql-indent-6:before {\n  content: counter(list-6, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-6 {\n  counter-reset: list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-7 {\n  counter-increment: list-7;\n}\n.ql-editor ol li.ql-indent-7:before {\n  content: counter(list-7, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-7 {\n  counter-reset: list-8 list-9;\n}\n.ql-editor ol li.ql-indent-8 {\n  counter-increment: list-8;\n}\n.ql-editor ol li.ql-indent-8:before {\n  content: counter(list-8, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-8 {\n  counter-reset: list-9;\n}\n.ql-editor ol li.ql-indent-9 {\n  counter-increment: list-9;\n}\n.ql-editor ol li.ql-indent-9:before {\n  content: counter(list-9, decimal) '. ';\n}\n.ql-editor .ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 3em;\n}\n.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 4.5em;\n}\n.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 3em;\n}\n.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 4.5em;\n}\n.ql-editor .ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 6em;\n}\n.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 7.5em;\n}\n.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 6em;\n}\n.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 7.5em;\n}\n.ql-editor .ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 9em;\n}\n.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 10.5em;\n}\n.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 9em;\n}\n.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 10.5em;\n}\n.ql-editor .ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 12em;\n}\n.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 13.5em;\n}\n.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 12em;\n}\n.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 13.5em;\n}\n.ql-editor .ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 15em;\n}\n.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 16.5em;\n}\n.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 15em;\n}\n.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 16.5em;\n}\n.ql-editor .ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 18em;\n}\n.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 19.5em;\n}\n.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 18em;\n}\n.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 19.5em;\n}\n.ql-editor .ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 21em;\n}\n.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 22.5em;\n}\n.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 21em;\n}\n.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 22.5em;\n}\n.ql-editor .ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 24em;\n}\n.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 25.5em;\n}\n.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 24em;\n}\n.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 25.5em;\n}\n.ql-editor .ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 27em;\n}\n.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 28.5em;\n}\n.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 27em;\n}\n.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 28.5em;\n}\n.ql-editor .ql-video {\n  display: block;\n  max-width: 100%;\n}\n.ql-editor .ql-video.ql-align-center {\n  margin: 0 auto;\n}\n.ql-editor .ql-video.ql-align-right {\n  margin: 0 0 0 auto;\n}\n.ql-editor .ql-bg-black {\n  background-color: #000;\n}\n.ql-editor .ql-bg-red {\n  background-color: #e60000;\n}\n.ql-editor .ql-bg-orange {\n  background-color: #f90;\n}\n.ql-editor .ql-bg-yellow {\n  background-color: #ff0;\n}\n.ql-editor .ql-bg-green {\n  background-color: #008a00;\n}\n.ql-editor .ql-bg-blue {\n  background-color: #06c;\n}\n.ql-editor .ql-bg-purple {\n  background-color: #93f;\n}\n.ql-editor .ql-color-white {\n  color: #fff;\n}\n.ql-editor .ql-color-red {\n  color: #e60000;\n}\n.ql-editor .ql-color-orange {\n  color: #f90;\n}\n.ql-editor .ql-color-yellow {\n  color: #ff0;\n}\n.ql-editor .ql-color-green {\n  color: #008a00;\n}\n.ql-editor .ql-color-blue {\n  color: #06c;\n}\n.ql-editor .ql-color-purple {\n  color: #93f;\n}\n.ql-editor .ql-font-serif {\n  font-family: Georgia, Times New Roman, serif;\n}\n.ql-editor .ql-font-monospace {\n  font-family: Monaco, Courier New, monospace;\n}\n.ql-editor .ql-size-small {\n  font-size: 0.75em;\n}\n.ql-editor .ql-size-large {\n  font-size: 1.5em;\n}\n.ql-editor .ql-size-huge {\n  font-size: 2.5em;\n}\n.ql-editor .ql-direction-rtl {\n  direction: rtl;\n  text-align: inherit;\n}\n.ql-editor .ql-align-center {\n  text-align: center;\n}\n.ql-editor .ql-align-justify {\n  text-align: justify;\n}\n.ql-editor .ql-align-right {\n  text-align: right;\n}\n.ql-editor.ql-blank::before {\n  color: rgba(0,0,0,0.6);\n  content: attr(data-placeholder);\n  font-style: italic;\n  left: 15px;\n  pointer-events: none;\n  position: absolute;\n  right: 15px;\n}\n.ql-snow.ql-toolbar:after,\n.ql-snow .ql-toolbar:after {\n  clear: both;\n  content: '';\n  display: table;\n}\n.ql-snow.ql-toolbar button,\n.ql-snow .ql-toolbar button {\n  background: none;\n  border: none;\n  cursor: pointer;\n  display: inline-block;\n  float: left;\n  height: 24px;\n  padding: 3px 5px;\n  width: 28px;\n}\n.ql-snow.ql-toolbar button svg,\n.ql-snow .ql-toolbar button svg {\n  float: left;\n  height: 100%;\n}\n.ql-snow.ql-toolbar button:active:hover,\n.ql-snow .ql-toolbar button:active:hover {\n  outline: none;\n}\n.ql-snow.ql-toolbar input.ql-image[type=file],\n.ql-snow .ql-toolbar input.ql-image[type=file] {\n  display: none;\n}\n.ql-snow.ql-toolbar button:hover,\n.ql-snow .ql-toolbar button:hover,\n.ql-snow.ql-toolbar button:focus,\n.ql-snow .ql-toolbar button:focus,\n.ql-snow.ql-toolbar button.ql-active,\n.ql-snow .ql-toolbar button.ql-active,\n.ql-snow.ql-toolbar .ql-picker-label:hover,\n.ql-snow .ql-toolbar .ql-picker-label:hover,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active,\n.ql-snow.ql-toolbar .ql-picker-item:hover,\n.ql-snow .ql-toolbar .ql-picker-item:hover,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected {\n  color: #06c;\n}\n.ql-snow.ql-toolbar button:hover .ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\n  fill: #06c;\n}\n.ql-snow.ql-toolbar button:hover .ql-stroke,\n.ql-snow .ql-toolbar button:hover .ql-stroke,\n.ql-snow.ql-toolbar button:focus .ql-stroke,\n.ql-snow .ql-toolbar button:focus .ql-stroke,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow.ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow .ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\n  stroke: #06c;\n}\n@media (pointer: coarse) {\n  .ql-snow.ql-toolbar button:hover:not(.ql-active),\n  .ql-snow .ql-toolbar button:hover:not(.ql-active) {\n    color: #444;\n  }\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,\n  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\n  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\n    fill: #444;\n  }\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\n  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\n    stroke: #444;\n  }\n}\n.ql-snow {\n  box-sizing: border-box;\n}\n.ql-snow * {\n  box-sizing: border-box;\n}\n.ql-snow .ql-hidden {\n  display: none;\n}\n.ql-snow .ql-out-bottom,\n.ql-snow .ql-out-top {\n  visibility: hidden;\n}\n.ql-snow .ql-tooltip {\n  position: absolute;\n  transform: translateY(10px);\n}\n.ql-snow .ql-tooltip a {\n  cursor: pointer;\n  text-decoration: none;\n}\n.ql-snow .ql-tooltip.ql-flip {\n  transform: translateY(-10px);\n}\n.ql-snow .ql-formats {\n  display: inline-block;\n  vertical-align: middle;\n}\n.ql-snow .ql-formats:after {\n  clear: both;\n  content: '';\n  display: table;\n}\n.ql-snow .ql-stroke {\n  fill: none;\n  stroke: #444;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 2;\n}\n.ql-snow .ql-stroke-miter {\n  fill: none;\n  stroke: #444;\n  stroke-miterlimit: 10;\n  stroke-width: 2;\n}\n.ql-snow .ql-fill,\n.ql-snow .ql-stroke.ql-fill {\n  fill: #444;\n}\n.ql-snow .ql-empty {\n  fill: none;\n}\n.ql-snow .ql-even {\n  fill-rule: evenodd;\n}\n.ql-snow .ql-thin,\n.ql-snow .ql-stroke.ql-thin {\n  stroke-width: 1;\n}\n.ql-snow .ql-transparent {\n  opacity: 0.4;\n}\n.ql-snow .ql-direction svg:last-child {\n  display: none;\n}\n.ql-snow .ql-direction.ql-active svg:last-child {\n  display: inline;\n}\n.ql-snow .ql-direction.ql-active svg:first-child {\n  display: none;\n}\n.ql-snow .ql-editor h1 {\n  font-size: 2em;\n}\n.ql-snow .ql-editor h2 {\n  font-size: 1.5em;\n}\n.ql-snow .ql-editor h3 {\n  font-size: 1.17em;\n}\n.ql-snow .ql-editor h4 {\n  font-size: 1em;\n}\n.ql-snow .ql-editor h5 {\n  font-size: 0.83em;\n}\n.ql-snow .ql-editor h6 {\n  font-size: 0.67em;\n}\n.ql-snow .ql-editor a {\n  text-decoration: underline;\n}\n.ql-snow .ql-editor blockquote {\n  border-left: 4px solid #ccc;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding-left: 16px;\n}\n.ql-snow .ql-editor code,\n.ql-snow .ql-editor pre {\n  background-color: #f0f0f0;\n  border-radius: 3px;\n}\n.ql-snow .ql-editor pre {\n  white-space: pre-wrap;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding: 5px 10px;\n}\n.ql-snow .ql-editor code {\n  font-size: 85%;\n  padding: 2px 4px;\n}\n.ql-snow .ql-editor pre.ql-syntax {\n  background-color: #23241f;\n  color: #f8f8f2;\n  overflow: visible;\n}\n.ql-snow .ql-editor img {\n  max-width: 100%;\n}\n.ql-snow .ql-picker {\n  color: #444;\n  display: inline-block;\n  float: left;\n  font-size: 14px;\n  font-weight: 500;\n  height: 24px;\n  position: relative;\n  vertical-align: middle;\n}\n.ql-snow .ql-picker-label {\n  cursor: pointer;\n  display: inline-block;\n  height: 100%;\n  padding-left: 8px;\n  padding-right: 2px;\n  position: relative;\n  width: 100%;\n}\n.ql-snow .ql-picker-label::before {\n  display: inline-block;\n  line-height: 22px;\n}\n.ql-snow .ql-picker-options {\n  background-color: #fff;\n  display: none;\n  min-width: 100%;\n  padding: 4px 8px;\n  position: absolute;\n  white-space: nowrap;\n}\n.ql-snow .ql-picker-options .ql-picker-item {\n  cursor: pointer;\n  display: block;\n  padding-bottom: 5px;\n  padding-top: 5px;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n  color: #ccc;\n  z-index: 2;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\n  fill: #ccc;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\n  stroke: #ccc;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n  display: block;\n  margin-top: -1px;\n  top: 100%;\n  z-index: 1;\n}\n.ql-snow .ql-color-picker,\n.ql-snow .ql-icon-picker {\n  width: 28px;\n}\n.ql-snow .ql-color-picker .ql-picker-label,\n.ql-snow .ql-icon-picker .ql-picker-label {\n  padding: 2px 4px;\n}\n.ql-snow .ql-color-picker .ql-picker-label svg,\n.ql-snow .ql-icon-picker .ql-picker-label svg {\n  right: 4px;\n}\n.ql-snow .ql-icon-picker .ql-picker-options {\n  padding: 4px 0px;\n}\n.ql-snow .ql-icon-picker .ql-picker-item {\n  height: 24px;\n  width: 24px;\n  padding: 2px 4px;\n}\n.ql-snow .ql-color-picker .ql-picker-options {\n  padding: 3px 5px;\n  width: 152px;\n}\n.ql-snow .ql-color-picker .ql-picker-item {\n  border: 1px solid transparent;\n  float: left;\n  height: 16px;\n  margin: 2px;\n  padding: 0px;\n  width: 16px;\n}\n.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\n  position: absolute;\n  margin-top: -9px;\n  right: 0;\n  top: 50%;\n  width: 18px;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {\n  content: attr(data-label);\n}\n.ql-snow .ql-picker.ql-header {\n  width: 98px;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item::before {\n  content: 'Normal';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  content: 'Heading 1';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  content: 'Heading 2';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  content: 'Heading 3';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  content: 'Heading 4';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  content: 'Heading 5';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  content: 'Heading 6';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  font-size: 2em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  font-size: 1.5em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  font-size: 1.17em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  font-size: 1em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  font-size: 0.83em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  font-size: 0.67em;\n}\n.ql-snow .ql-picker.ql-font {\n  width: 108px;\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item::before {\n  content: 'Sans Serif';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  content: 'Serif';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  content: 'Monospace';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  font-family: Georgia, Times New Roman, serif;\n}\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  font-family: Monaco, Courier New, monospace;\n}\n.ql-snow .ql-picker.ql-size {\n  width: 98px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item::before {\n  content: 'Normal';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  content: 'Small';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  content: 'Large';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  content: 'Huge';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  font-size: 10px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  font-size: 18px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  font-size: 32px;\n}\n.ql-snow .ql-color-picker.ql-background .ql-picker-item {\n  background-color: #fff;\n}\n.ql-snow .ql-color-picker.ql-color .ql-picker-item {\n  background-color: #000;\n}\n.ql-toolbar.ql-snow {\n  border: 1px solid #ccc;\n  box-sizing: border-box;\n  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n  padding: 8px;\n}\n.ql-toolbar.ql-snow .ql-formats {\n  margin-right: 15px;\n}\n.ql-toolbar.ql-snow .ql-picker-label {\n  border: 1px solid transparent;\n}\n.ql-toolbar.ql-snow .ql-picker-options {\n  border: 1px solid transparent;\n  box-shadow: rgba(0,0,0,0.2) 0 2px 8px;\n}\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n  border-color: #ccc;\n}\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n  border-color: #ccc;\n}\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {\n  border-color: #000;\n}\n.ql-toolbar.ql-snow + .ql-container.ql-snow {\n  border-top: 0px;\n}\n.ql-snow .ql-tooltip {\n  background-color: #fff;\n  border: 1px solid #ccc;\n  box-shadow: 0px 0px 5px #ddd;\n  color: #444;\n  padding: 5px 12px;\n  white-space: nowrap;\n}\n.ql-snow .ql-tooltip::before {\n  content: \"Visit URL:\";\n  line-height: 26px;\n  margin-right: 8px;\n}\n.ql-snow .ql-tooltip input[type=text] {\n  display: none;\n  border: 1px solid #ccc;\n  font-size: 13px;\n  height: 26px;\n  margin: 0px;\n  padding: 3px 5px;\n  width: 170px;\n}\n.ql-snow .ql-tooltip a.ql-preview {\n  display: inline-block;\n  max-width: 200px;\n  overflow-x: hidden;\n  text-overflow: ellipsis;\n  vertical-align: top;\n}\n.ql-snow .ql-tooltip a.ql-action::after {\n  border-right: 1px solid #ccc;\n  content: 'Edit';\n  margin-left: 16px;\n  padding-right: 8px;\n}\n.ql-snow .ql-tooltip a.ql-remove::before {\n  content: 'Remove';\n  margin-left: 8px;\n}\n.ql-snow .ql-tooltip a {\n  line-height: 26px;\n}\n.ql-snow .ql-tooltip.ql-editing a.ql-preview,\n.ql-snow .ql-tooltip.ql-editing a.ql-remove {\n  display: none;\n}\n.ql-snow .ql-tooltip.ql-editing input[type=text] {\n  display: inline-block;\n}\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\n  border-right: 0px;\n  content: 'Save';\n  padding-right: 0px;\n}\n.ql-snow .ql-tooltip[data-mode=link]::before {\n  content: \"Enter link:\";\n}\n.ql-snow .ql-tooltip[data-mode=formula]::before {\n  content: \"Enter formula:\";\n}\n.ql-snow .ql-tooltip[data-mode=video]::before {\n  content: \"Enter video:\";\n}\n.ql-snow a {\n  color: #06c;\n}\n.ql-container.ql-snow {\n  border: 1px solid #ccc;\n}"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill-mention/quill.mention.css",
    "content": ".ql-mention-list-container {\n  width: 270px;\n  border: 1px solid #f0f0f0;\n  border-radius: 4px;\n  background-color: #ffffff;\n  box-shadow: 0 2px 12px 0 rgba(30, 30, 30, 0.08);\n  z-index: 9001;\n}\n\n.ql-mention-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n}\n\n.ql-mention-list-item {\n  cursor: pointer;\n  height: 26px;\n  line-height: 26px;\n  padding: 0 10px;\n  font-size: 14px;\n  vertical-align: middle;\n}\n\n.ql-mention-list-item.selected {\n  background-color: #d3e1eb;\n  text-decoration: none;\n}\n\n.mention {\n  color: var(--text-color--markdown-link);\n}\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/quill-mention/quill.mention.js",
    "content": "import {Quill} from '../quill/quill.js';\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n  return function _createSuperInternal() {\n    var Super = _getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = _getPrototypeOf(this).constructor;\n\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return _possibleConstructorReturn(this, result);\n  };\n}\n\nfunction _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = _getPrototypeOf(object);\n    if (object === null) break;\n  }\n\n  return object;\n}\n\nfunction _get(target, property, receiver) {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    _get = Reflect.get;\n  } else {\n    _get = function _get(target, property, receiver) {\n      var base = _superPropBase(target, property);\n\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n\n      if (desc.get) {\n        return desc.get.call(receiver);\n      }\n\n      return desc.value;\n    };\n  }\n\n  return _get(target, property, receiver || target);\n}\n\nvar Keys = {\n  TAB: 9,\n  ENTER: 13,\n  ESCAPE: 27,\n  UP: 38,\n  DOWN: 40\n};\n\nfunction attachDataValues(element, data, dataAttributes) {\n  var mention = element;\n  Object.keys(data).forEach(function (key) {\n    if (dataAttributes.indexOf(key) > -1) {\n      mention.dataset[key] = data[key];\n    } else {\n      delete mention.dataset[key];\n    }\n  });\n  return mention;\n}\n\nfunction getMentionCharIndex(text, mentionDenotationChars) {\n  return mentionDenotationChars.reduce(function (prev, mentionChar) {\n    var mentionCharIndex = text.lastIndexOf(mentionChar);\n\n    if (mentionCharIndex > prev.mentionCharIndex) {\n      return {\n        mentionChar: mentionChar,\n        mentionCharIndex: mentionCharIndex\n      };\n    }\n\n    return {\n      mentionChar: prev.mentionChar,\n      mentionCharIndex: prev.mentionCharIndex\n    };\n  }, {\n    mentionChar: null,\n    mentionCharIndex: -1\n  });\n}\n\nfunction hasValidChars(text, allowedChars) {\n  return allowedChars.test(text);\n}\n\nfunction hasValidMentionCharIndex(mentionCharIndex, text, isolateChar) {\n  if (mentionCharIndex > -1) {\n    if (isolateChar && !(mentionCharIndex === 0 || !!text[mentionCharIndex - 1].match(/\\s/g))) {\n      return false;\n    }\n\n    return true;\n  }\n\n  return false;\n}\n\nvar Embed = Quill[\"import\"](\"blots/embed\");\n\nvar MentionBlot = /*#__PURE__*/function (_Embed) {\n  _inherits(MentionBlot, _Embed);\n\n  var _super = _createSuper(MentionBlot);\n\n  function MentionBlot() {\n    _classCallCheck(this, MentionBlot);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(MentionBlot, null, [{\n    key: \"create\",\n    value: function create(data) {\n      var node = _get(_getPrototypeOf(MentionBlot), \"create\", this).call(this);\n\n      var denotationChar = document.createElement(\"span\");\n      denotationChar.className = \"ql-mention-denotation-char\";\n      denotationChar.innerHTML = data.denotationChar;\n      node.appendChild(denotationChar);\n      node.innerHTML += data.value;\n      return MentionBlot.setDataValues(node, data);\n    }\n  }, {\n    key: \"setDataValues\",\n    value: function setDataValues(element, data) {\n      var domNode = element;\n      Object.keys(data).forEach(function (key) {\n        domNode.dataset[key] = data[key];\n      });\n      return domNode;\n    }\n  }, {\n    key: \"value\",\n    value: function value(domNode) {\n      return domNode.dataset;\n    }\n  }]);\n\n  return MentionBlot;\n}(Embed);\n\nMentionBlot.blotName = \"mention\";\nMentionBlot.tagName = \"span\";\nMentionBlot.className = \"mention\";\nQuill.register(MentionBlot);\n\nvar Mention = /*#__PURE__*/function () {\n  function Mention(quill, options) {\n    _classCallCheck(this, Mention);\n\n    this.isOpen = false;\n    this.itemIndex = 0;\n    this.mentionCharPos = null;\n    this.cursorPos = null;\n    this.values = [];\n    this.suspendMouseEnter = false;\n    this.quill = quill;\n    this.options = {\n      source: null,\n      renderItem: function renderItem(item) {\n        return \"\".concat(item.value);\n      },\n      onSelect: function onSelect(item, insertItem) {\n        insertItem(item);\n      },\n      mentionDenotationChars: [\"@\"],\n      showDenotationChar: true,\n      allowedChars: /^[a-zA-Z0-9_]*$/,\n      minChars: 0,\n      maxChars: 31,\n      offsetTop: 2,\n      offsetLeft: 0,\n      isolateCharacter: false,\n      fixMentionsToQuill: false,\n      defaultMenuOrientation: \"bottom\",\n      blotName: \"mention\",\n      dataAttributes: [\"id\", \"value\", \"denotationChar\", \"link\", \"target\"],\n      linkTarget: \"_blank\",\n      onOpen: function onOpen() {\n        return true;\n      },\n      onClose: function onClose() {\n        return true;\n      },\n      // Style options\n      listItemClass: \"ql-mention-list-item\",\n      mentionContainerClass: \"ql-mention-list-container\",\n      mentionListClass: \"ql-mention-list\",\n      spaceAfterInsert: true\n    };\n\n    _extends(this.options, options, {\n      dataAttributes: Array.isArray(options.dataAttributes) ? this.options.dataAttributes.concat(options.dataAttributes) : this.options.dataAttributes\n    });\n\n    this.mentionContainer = document.createElement(\"div\");\n    this.mentionContainer.className = this.options.mentionContainerClass ? this.options.mentionContainerClass : \"\";\n    this.mentionContainer.style.cssText = \"display: none; position: absolute;\";\n    this.mentionContainer.onmousemove = this.onContainerMouseMove.bind(this);\n\n    if (this.options.fixMentionsToQuill) {\n      this.mentionContainer.style.width = \"auto\";\n    }\n\n    this.mentionList = document.createElement(\"ul\");\n    this.mentionList.className = this.options.mentionListClass ? this.options.mentionListClass : \"\";\n    this.mentionContainer.appendChild(this.mentionList);\n    this.quill.container.appendChild(this.mentionContainer);\n    quill.on(\"text-change\", this.onTextChange.bind(this));\n    quill.on(\"selection-change\", this.onSelectionChange.bind(this));\n    quill.keyboard.addBinding({\n      key: 'Tab'\n    }, this.selectHandler.bind(this));\n    quill.keyboard.bindings['Tab'].unshift(quill.keyboard.bindings['Tab'].pop());\n    quill.keyboard.addBinding({\n      key: 'Enter'\n    }, this.selectHandler.bind(this));\n    quill.keyboard.bindings['Enter'].unshift(quill.keyboard.bindings['Enter'].pop());\n    quill.keyboard.addBinding({\n      key: Keys.ESCAPE\n    }, this.escapeHandler.bind(this));\n    quill.keyboard.addBinding({\n      key: Keys.UP\n    }, this.upHandler.bind(this));\n    quill.keyboard.addBinding({\n      key: Keys.DOWN\n    }, this.downHandler.bind(this));\n  }\n\n  _createClass(Mention, [{\n    key: \"selectHandler\",\n    value: function selectHandler() {\n      if (this.isOpen) {\n        this.selectItem();\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"escapeHandler\",\n    value: function escapeHandler() {\n      if (this.isOpen) {\n        this.hideMentionList();\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"upHandler\",\n    value: function upHandler() {\n      if (this.isOpen) {\n        this.prevItem();\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"downHandler\",\n    value: function downHandler() {\n      if (this.isOpen) {\n        this.nextItem();\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"showMentionList\",\n    value: function showMentionList() {\n      this.mentionContainer.style.visibility = \"hidden\";\n      this.mentionContainer.style.display = \"\";\n      this.setMentionContainerPosition();\n      this.setIsOpen(true);\n    }\n  }, {\n    key: \"hideMentionList\",\n    value: function hideMentionList() {\n      this.mentionContainer.style.display = \"none\";\n      this.setIsOpen(false);\n    }\n  }, {\n    key: \"highlightItem\",\n    value: function highlightItem() {\n      var scrollItemInView = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n      for (var i = 0; i < this.mentionList.childNodes.length; i += 1) {\n        this.mentionList.childNodes[i].classList.remove(\"selected\");\n      }\n\n      this.mentionList.childNodes[this.itemIndex].classList.add(\"selected\");\n\n      if (scrollItemInView) {\n        var itemHeight = this.mentionList.childNodes[this.itemIndex].offsetHeight;\n        var itemPos = this.itemIndex * itemHeight;\n        var containerTop = this.mentionContainer.scrollTop;\n        var containerBottom = containerTop + this.mentionContainer.offsetHeight;\n\n        if (itemPos < containerTop) {\n          // Scroll up if the item is above the top of the container\n          this.mentionContainer.scrollTop = itemPos;\n        } else if (itemPos > containerBottom - itemHeight) {\n          // scroll down if any part of the element is below the bottom of the container\n          this.mentionContainer.scrollTop += itemPos - containerBottom + itemHeight;\n        }\n      }\n    }\n  }, {\n    key: \"getItemData\",\n    value: function getItemData() {\n      var link = this.mentionList.childNodes[this.itemIndex].dataset.link;\n      var hasLinkValue = typeof link !== \"undefined\";\n      var itemTarget = this.mentionList.childNodes[this.itemIndex].dataset.target;\n\n      if (hasLinkValue) {\n        this.mentionList.childNodes[this.itemIndex].dataset.value = \"<a href=\\\"\".concat(link, \"\\\" target=\").concat(itemTarget || this.options.linkTarget, \">\").concat(this.mentionList.childNodes[this.itemIndex].dataset.value);\n      }\n\n      return this.mentionList.childNodes[this.itemIndex].dataset;\n    }\n  }, {\n    key: \"onContainerMouseMove\",\n    value: function onContainerMouseMove() {\n      this.suspendMouseEnter = false;\n    }\n  }, {\n    key: \"selectItem\",\n    value: function selectItem() {\n      var _this = this;\n\n      var data = this.getItemData();\n      this.options.onSelect(data, function (asyncData) {\n        _this.insertItem(asyncData);\n      });\n      this.hideMentionList();\n    }\n  }, {\n    key: \"insertItem\",\n    value: function insertItem(data) {\n      var render = data;\n\n      if (render === null) {\n        return;\n      }\n\n      if (!this.options.showDenotationChar) {\n        render.denotationChar = \"\";\n      }\n\n      var prevMentionCharPos = this.mentionCharPos;\n      this.quill.deleteText(this.mentionCharPos, this.cursorPos - this.mentionCharPos, Quill.sources.USER);\n      this.quill.insertEmbed(prevMentionCharPos, this.options.blotName, render, Quill.sources.USER);\n\n      if (this.options.spaceAfterInsert) {\n        this.quill.insertText(prevMentionCharPos + 1, \" \", Quill.sources.USER); // setSelection here sets cursor position\n\n        this.quill.setSelection(prevMentionCharPos + 2, Quill.sources.USER);\n      } else {\n        this.quill.setSelection(prevMentionCharPos + 1, Quill.sources.USER);\n      }\n\n      this.hideMentionList();\n    }\n  }, {\n    key: \"onItemMouseEnter\",\n    value: function onItemMouseEnter(e) {\n      if (this.suspendMouseEnter) {\n        return;\n      }\n\n      var index = Number(e.target.dataset.index);\n\n      if (!Number.isNaN(index) && index !== this.itemIndex) {\n        this.itemIndex = index;\n        this.highlightItem(false);\n      }\n    }\n  }, {\n    key: \"onItemClick\",\n    value: function onItemClick(e) {\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      this.itemIndex = e.currentTarget.dataset.index;\n      this.highlightItem();\n      this.selectItem();\n    }\n  }, {\n    key: \"renderList\",\n    value: function renderList(mentionChar, data, searchTerm) {\n      if (data && data.length > 0) {\n        this.values = data;\n        this.mentionList.innerHTML = \"\";\n\n        for (var i = 0; i < data.length; i += 1) {\n          var li = document.createElement(\"li\");\n          li.className = this.options.listItemClass ? this.options.listItemClass : \"\";\n          li.dataset.index = i;\n          li.innerHTML = this.options.renderItem(data[i], searchTerm);\n          li.onmouseenter = this.onItemMouseEnter.bind(this);\n          li.dataset.denotationChar = mentionChar;\n          li.onclick = this.onItemClick.bind(this);\n          this.mentionList.appendChild(attachDataValues(li, data[i], this.options.dataAttributes));\n        }\n\n        this.itemIndex = 0;\n        this.highlightItem();\n        this.showMentionList();\n      } else {\n        this.hideMentionList();\n      }\n    }\n  }, {\n    key: \"nextItem\",\n    value: function nextItem() {\n      this.itemIndex = (this.itemIndex + 1) % this.values.length;\n      this.suspendMouseEnter = true;\n      this.highlightItem();\n    }\n  }, {\n    key: \"prevItem\",\n    value: function prevItem() {\n      this.itemIndex = (this.itemIndex + this.values.length - 1) % this.values.length;\n      this.suspendMouseEnter = true;\n      this.highlightItem();\n    }\n  }, {\n    key: \"containerBottomIsNotVisible\",\n    value: function containerBottomIsNotVisible(topPos, containerPos) {\n      var mentionContainerBottom = topPos + this.mentionContainer.offsetHeight + containerPos.top;\n      return mentionContainerBottom > window.pageYOffset + window.innerHeight;\n    }\n  }, {\n    key: \"containerRightIsNotVisible\",\n    value: function containerRightIsNotVisible(leftPos, containerPos) {\n      if (this.options.fixMentionsToQuill) {\n        return false;\n      }\n\n      var rightPos = leftPos + this.mentionContainer.offsetWidth + containerPos.left;\n      var browserWidth = window.pageXOffset + document.documentElement.clientWidth;\n      return rightPos > browserWidth;\n    }\n  }, {\n    key: \"setIsOpen\",\n    value: function setIsOpen(isOpen) {\n      if (this.isOpen !== isOpen) {\n        if (isOpen) {\n          this.options.onOpen();\n        } else {\n          this.options.onClose();\n        }\n\n        this.isOpen = isOpen;\n      }\n    }\n  }, {\n    key: \"setMentionContainerPosition\",\n    value: function setMentionContainerPosition() {\n      var _this2 = this;\n\n      var containerPos = this.quill.container.getBoundingClientRect();\n      var mentionCharPos = this.quill.getBounds(this.mentionCharPos);\n      var containerHeight = this.mentionContainer.offsetHeight;\n      var topPos = this.options.offsetTop;\n      var leftPos = this.options.offsetLeft; // handle horizontal positioning\n\n      if (this.options.fixMentionsToQuill) {\n        var rightPos = 0;\n        this.mentionContainer.style.right = \"\".concat(rightPos, \"px\");\n      } else {\n        leftPos += mentionCharPos.left;\n      }\n\n      if (this.containerRightIsNotVisible(leftPos, containerPos)) {\n        var containerWidth = this.mentionContainer.offsetWidth + this.options.offsetLeft;\n        var quillWidth = containerPos.width;\n        leftPos = quillWidth - containerWidth;\n      } // handle vertical positioning\n\n\n      if (this.options.defaultMenuOrientation === \"top\") {\n        // Attempt to align the mention container with the top of the quill editor\n        if (this.options.fixMentionsToQuill) {\n          topPos = -1 * (containerHeight + this.options.offsetTop);\n        } else {\n          topPos = mentionCharPos.top - (containerHeight + this.options.offsetTop);\n        } // default to bottom if the top is not visible\n\n\n        if (topPos + containerPos.top <= 0) {\n          var overMentionCharPos = this.options.offsetTop;\n\n          if (this.options.fixMentionsToQuill) {\n            overMentionCharPos += containerPos.height;\n          } else {\n            overMentionCharPos += mentionCharPos.bottom;\n          }\n\n          topPos = overMentionCharPos;\n        }\n      } else {\n        // Attempt to align the mention container with the bottom of the quill editor\n        if (this.options.fixMentionsToQuill) {\n          topPos += containerPos.height;\n        } else {\n          topPos += mentionCharPos.bottom;\n        } // default to the top if the bottom is not visible\n\n\n        if (this.containerBottomIsNotVisible(topPos, containerPos)) {\n          var _overMentionCharPos = this.options.offsetTop * -1;\n\n          if (!this.options.fixMentionsToQuill) {\n            _overMentionCharPos += mentionCharPos.top;\n          }\n\n          topPos = _overMentionCharPos - containerHeight;\n        }\n      }\n\n      if (topPos >= 0) {\n        this.options.mentionContainerClass.split(' ').forEach(function (className) {\n          _this2.mentionContainer.classList.add(\"\".concat(className, \"-bottom\"));\n\n          _this2.mentionContainer.classList.remove(\"\".concat(className, \"-top\"));\n        });\n      } else {\n        this.options.mentionContainerClass.split(' ').forEach(function (className) {\n          _this2.mentionContainer.classList.add(\"\".concat(className, \"-top\"));\n\n          _this2.mentionContainer.classList.remove(\"\".concat(className, \"-bottom\"));\n        });\n      }\n\n      this.mentionContainer.style.top = \"\".concat(topPos, \"px\");\n      this.mentionContainer.style.left = \"\".concat(leftPos, \"px\");\n      this.mentionContainer.style.visibility = \"visible\";\n    }\n  }, {\n    key: \"getTextBeforeCursor\",\n    value: function getTextBeforeCursor() {\n      var startPos = Math.max(0, this.cursorPos - this.options.maxChars);\n      var textBeforeCursorPos = this.quill.getText(startPos, this.cursorPos - startPos);\n      return textBeforeCursorPos;\n    }\n  }, {\n    key: \"onSomethingChange\",\n    value: function onSomethingChange() {\n      var range = this.quill.getSelection();\n      if (range == null) return;\n      this.cursorPos = range.index;\n      var textBeforeCursor = this.getTextBeforeCursor();\n\n      var _getMentionCharIndex = getMentionCharIndex(textBeforeCursor, this.options.mentionDenotationChars),\n          mentionChar = _getMentionCharIndex.mentionChar,\n          mentionCharIndex = _getMentionCharIndex.mentionCharIndex;\n\n      if (hasValidMentionCharIndex(mentionCharIndex, textBeforeCursor, this.options.isolateCharacter)) {\n        var mentionCharPos = this.cursorPos - (textBeforeCursor.length - mentionCharIndex);\n        this.mentionCharPos = mentionCharPos;\n        var textAfter = textBeforeCursor.substring(mentionCharIndex + mentionChar.length);\n\n        if (textAfter.length >= this.options.minChars && hasValidChars(textAfter, this.options.allowedChars)) {\n          this.options.source(textAfter, this.renderList.bind(this, mentionChar), mentionChar);\n        } else {\n          this.hideMentionList();\n        }\n      } else {\n        this.hideMentionList();\n      }\n    }\n  }, {\n    key: \"onTextChange\",\n    value: function onTextChange(delta, oldDelta, source) {\n      if (source === \"user\") {\n        this.onSomethingChange();\n      }\n    }\n  }, {\n    key: \"onSelectionChange\",\n    value: function onSelectionChange(range) {\n      if (range && range.length === 0) {\n        this.onSomethingChange();\n      } else {\n        this.hideMentionList();\n      }\n    }\n  }]);\n\n  return Mention;\n}();\n\nQuill.register(\"modules/mention\", Mention);\n\nexport default Mention;\n"
  },
  {
    "path": "app/userland/app-stdlib/vendor/remove-markdown.js",
    "content": "/*\nModified by PRF to include:\n\n - options.keepHtmll\n\n\nhttps://github.com/stiang/remove-markdown\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Stian Grytøyr\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nexport function removeMarkdown (md, options) {\n  options = options || {};\n  options.keepHtml = options.hasOwnProperty('keepHtml') ? options.keepHtml : false; // ADDITION -prf\n  options.listUnicodeChar = options.hasOwnProperty('listUnicodeChar') ? options.listUnicodeChar : false;\n  options.stripListLeaders = options.hasOwnProperty('stripListLeaders') ? options.stripListLeaders : true;\n  options.gfm = options.hasOwnProperty('gfm') ? options.gfm : true;\n  options.useImgAltText = options.hasOwnProperty('useImgAltText') ? options.useImgAltText : true;\n\n  var output = md || '';\n\n  // Remove horizontal rules (stripListHeaders conflict with this rule, which is why it has been moved to the top)\n  output = output.replace(/^(-\\s*?|\\*\\s*?|_\\s*?){3,}\\s*$/gm, '');\n\n  try {\n    if (options.stripListLeaders) {\n      if (options.listUnicodeChar)\n        output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, options.listUnicodeChar + ' $1');\n      else\n        output = output.replace(/^([\\s\\t]*)([\\*\\-\\+]|\\d+\\.)\\s+/gm, '$1');\n    }\n    if (options.gfm) {\n      output = output\n        // Header\n        .replace(/\\n={2,}/g, '\\n')\n        // Fenced codeblocks\n        .replace(/~{3}.*\\n/g, '')\n        // Strikethrough\n        .replace(/~~/g, '')\n        // Fenced codeblocks\n        .replace(/`{3}.*\\n/g, '');\n    }\n    if (!options.keepHtml) {\n      // ADDITION -prf\n      output = output\n        // Remove HTML tags\n        .replace(/<[^>]*>/g, '')\n    }\n    output = output\n      // Remove setext-style headers\n      .replace(/^[=\\-]{2,}\\s*$/g, '')\n      // Remove footnotes?\n      .replace(/\\[\\^.+?\\](\\: .*?$)?/g, '')\n      .replace(/\\s{0,2}\\[.*?\\]: .*?$/g, '')\n      // Remove images\n      .replace(/\\!\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, options.useImgAltText ? '$1' : '')\n      // Remove inline links\n      .replace(/\\[(.*?)\\][\\[\\(].*?[\\]\\)]/g, '$1')\n      // Remove blockquotes\n      .replace(/^\\s{0,3}>\\s?/g, '')\n      // Remove reference-style links?\n      .replace(/^\\s{1,2}\\[(.*?)\\]: (\\S+)( \".*?\")?\\s*$/g, '')\n      // Remove atx-style headers\n      .replace(/^(\\n)?\\s{0,}#{1,6}\\s+| {0,}(\\n)?\\s{0,}#{0,} {0,}(\\n)?\\s{0,}$/gm, '$1$2$3')\n      // Remove emphasis (repeat the line to remove double emphasis)\n      .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n      .replace(/([\\*_]{1,3})(\\S.*?\\S{0,1})\\1/g, '$2')\n      // Remove code blocks\n      .replace(/(`{3,})(.*?)\\1/gm, '$2')\n      // Remove inline code\n      .replace(/`(.+?)`/g, '$1')\n      // Replace two or more newlines with exactly two? Not entirely sure this belongs here...\n      .replace(/\\n{2,}/g, '\\n\\n');\n  } catch(e) {\n    console.error(e);\n    return md;\n  }\n  return output;\n};"
  },
  {
    "path": "app/userland/cmd-pkg/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport inputsCSS from 'beaker://app-stdlib/css/inputs.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n${tooltipCSS}\n\n:host {\n  display: block;\n  padding: 6px 10px;\n  margin: 0 auto;\n  max-width: 800px;\n}\n\n.header {\n  padding: 16px;\n  border: 1px solid #ccd;\n  border-radius: 4px;\n}\n\n.header h1,\n.header p {\n  margin-top: 0;\n}\n\n.header h1 {\n  margin-bottom: 8px;\n}\n\n.header p {\n  margin-bottom: 12px;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/cmd-pkg/css/views/about.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n\n.command {\n  display: flex;\n  justify-content: space-between;\n  padding: 10px;\n  margin: 10px 0;\n  border-radius: 4px;\n  background: #f5f5fa;\n}\n\n.command small,\n.command code {\n  color: #668;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/cmd-pkg/css/views/file.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n:host {\n  display: block;\n}\n\n.content {\n  padding: 10px;\n  margin: 10px 0;\n  border-radius: 4px;\n  background: #f5f5fa;\n  white-space: pre;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/cmd-pkg/drive-handler.css",
    "content": "@import \"beaker://assets/font-awesome.css\";\n@import \"beaker://app-stdlib/css/common.css\";\n\nbody {\n  background: #fff;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-size: 14px;\n  --border-color: #d4d7dc;\n}\n"
  },
  {
    "path": "app/userland/cmd-pkg/drive-handler.js",
    "content": "import {CommandViewer} from './js/main.js'\ndocument.body.append(new CommandViewer())"
  },
  {
    "path": "app/userland/cmd-pkg/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport mainCSS from '../css/main.css.js'\nimport './views/about.js'\nimport './views/file.js'\n\nexport class CommandViewer extends LitElement {\n  static get styles () {\n    return mainCSS\n  }\n\n  constructor () {\n    super()\n    this.info = undefined\n    this.isInstalled = undefined\n    this.load()\n  }\n\n  async load () {\n    var drive = beaker.hyperdrive.drive(location)\n    this.info = await drive.getInfo()\n    await this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.info) return html``\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"header\">\n        <h1>${this.info.title}</h1>\n        <div class=\"description\">${this.info.description || html`<em>No description</em>`}</div>\n        <div>${this.renderSaveBtn()}</div>\n      </div>\n      ${location.pathname !== '/' ? html`\n        <file-view></file-view>\n      ` : html`\n        <about-view></about-view>\n      `}\n    `\n  }\n\n  renderSaveBtn () {\n    if (location.protocol === 'beaker:') {\n      return html`<div style=\"margin-top: 10px\"><small><span class=\"fas fa-check\"></span> Builtin (cannot be uninstalled)</button></small></div>`\n    }\n    return undefined\n    /* TODO\n    return html`\n      <button class=\"${this.isInstalled ? 'primary' : ''}\" @click=${this.onToggleInstalled}>\n        ${this.isInstalled ? html`\n          <span class=\"fas fa-fw fa-check\"></span> Installed\n        ` : html`\n          <span class=\"fas fa-fw fa-download\"></span> Install\n        `}\n      </button>\n    `*/\n  }\n\n  // events\n  // =\n\n  async onToggleInstalled (e) {\n    if (this.isInstalled) {\n      // await beaker.programs.uninstallProgram(this.info.url)\n    } else {\n      // await beaker.programs.installProgram(this.info.url)\n    }\n    this.load()\n  }\n}\n\ncustomElements.define('command-viewer', CommandViewer)"
  },
  {
    "path": "app/userland/cmd-pkg/js/views/about.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { until } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/until.js'\nimport aboutCSS from '../../css/views/about.css.js'\n\nexport class AboutView extends LitElement {\n  static get styles () {\n    return aboutCSS\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <div class=\"content\">${until(this.renderCommands(), 'Loading...')}</div>\n    `\n  }\n\n  async renderCommands () {\n    var manifest\n    try {\n      var drive = new beaker.hyperdrive.drive(location)\n      manifest = JSON.parse(await drive.readFile('/index.json', 'utf8'))\n    } catch (e) {\n      return e.toString()\n    }\n\n    var commands\n    try {\n      commands = manifest.commands\n      if (!commands || !commands.length) throw new Error('empty')\n    } catch (e) {\n      return undefined\n    }\n\n    return html`\n      ${repeat(commands, command => html`\n        <div class=\"command\">\n          <span>\n            <strong>${command.name}</strong>\n            <small>${command.help}</small>\n          </span>\n          <code>${command.usage}</code>\n        </div>\n      `)}\n    `\n  }\n}\n\ncustomElements.define('about-view', AboutView)"
  },
  {
    "path": "app/userland/cmd-pkg/js/views/file.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { until } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/until.js'\nimport fileCSS from '../../css/views/file.css.js'\n\nexport class FileView extends LitElement {\n  static get styles () {\n    return fileCSS\n  }\n\n  async readFile () {\n    try {\n      var drive = new beaker.hyperdrive.drive(location)\n      return await drive.readFile(location.pathname, 'utf8')\n    } catch (e) {\n      return e.toString()\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <h4>${location.pathname}</h4>\n      <div class=\"content\">${until(this.readFile(), 'Loading...')}</div>`\n  }\n}\n\ncustomElements.define('file-view', FileView)"
  },
  {
    "path": "app/userland/desktop/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n  --border-color--focused: #7599ff;\n  --text-color--nav--highlight: #445;\n  --bg-color--nav-count: #E91E63;\n\n  font-size: 13px;\n  background: var(--bg-color--default);\n  color: var(--text-color--default);\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --border-color--focused: #7599ff;\n    --text-color--nav--highlight: #bbc;\n    --bg-color--nav-count: #E91E63;\n  }\n}"
  },
  {
    "path": "app/userland/desktop/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport commonCSS from 'beaker://app-stdlib/css/common.css.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${commonCSS}\n${buttonsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.hidden {\n  display: none !important;\n}\n\ninput:focus {\n  border-color: var(--border-color--focused);\n  box-shadow: 0 0 2px #7599ff77;\n}\n\n#topright {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  z-index: 101;\n}\n\n#topright a {\n  margin-left: 10px;\n  font-size: 12px;\n  opacity: 0.85;\n}\n\n#topright a span {\n  opacity: 0.8;\n  font-size: 11px;\n}\n\n#support-banner {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100vw;\n  text-align: center;\n  padding: 28px;\n  background: var(--bg-color--light);\n  color: var(--text-color--link);\n  font-size: 16px;\n}\n\n#support-banner .dismiss {\n  color: var(--text-color--light);\n  margin-left: 5px;\n}\n\n.release-notice {\n  width: 100%;\n  font-size: 14px;\n  letter-spacing: 0.5px;\n  text-align: center;\n}\n\n.release-notice .view-release-notes:hover {\n  text-decoration: underline;\n}\n\n.release-notice .fa-rocket {\n  margin-right: 5px;\n}\n\nheader {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100vw;\n  z-index: 100;\n  background: var(--bg-color--default);\n  padding: 0 10px 4px;\n  box-sizing: content-box;\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n.pins {\n  position: relative;\n  display: grid;\n  margin: 30px auto 30px;\n  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\n  grid-gap: 15px;\n  width: 100%;\n  max-width: 1000px;\n  user-select: none;\n}\n\n.pin {\n  cursor: pointer;\n  position: relative;\n  border-radius: 3px;\n  color: inherit;\n  border-radius: 3px;\n  overflow: hidden;\n  user-select: none;\n  min-height: 100px;\n}\n\n.pin:hover {\n  text-decoration: none;\n}\n\n.pin .thumb {\n  display: block;\n  margin: 0 auto;\n  border-radius: 4px;\n  width: 130px;\n  height: 90px;\n  line-height: 90px;\n  object-fit: cover;\n  object-position: top center;\n  border: 1px solid var(--border-color--default);\n}\n\n.pin:hover .thumb {\n  border-color: #889;\n}\n\n.pin .details {\n  padding: 10px 2px 10px;\n}\n\n.pin .details > * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.pin .title {\n  font-size: 12px;\n  line-height: 20px;\n  text-align: center;\n}\n\n.pin.add {\n  font-size: 21px;\n  color: rgba(0, 0, 150, 0.35);\n  cursor: pointer;\n}\n\n.pin.add .thumb {\n  background: var(--bg-color--semi-light);\n  border: 0;\n}\n\n.pin.add:hover {\n  color: rgba(0, 0, 150, 0.5);\n}\n\n@media (prefers-color-scheme: dark) {\n  .pin.add {\n    color: #89899e;\n  }\n  \n  .pin.add:hover {\n    color: #aeaec1;\n  }\n}\n\n.views > * {\n  display: block;\n  padding: 0 10px;\n  height: calc(100vh - 50px);\n  overflow: auto;\n}\n\n.onecol {\n  margin: 30vh auto 0;\n  max-width: 900px;\n}\n\n.twocol {\n  margin: 90px 20px 0;\n  display: grid;\n  grid-template-columns: minmax(0, 2fr) 1fr;\n  gap: 30px;\n}\n\n.twocol .sidebar {\n  padding: 20px 0;\n}\n\n@media (max-width: 1000px) {\n  .onecol {\n    padding: 0 20px;\n  }\n}\n\n@media (max-width: 900px) {\n  .twocol {\n    display: block;\n  }\n  .twocol > :last-child {\n    display: none;\n  }\n}\n\n.legacy-archives {\n  font-size: 14px;\n}\n\n.legacy-archives a {\n  color: var(--text-color--link);\n  cursor: pointer;\n}\n\n.legacy-archives .archives {\n  margin-top: 10px;\n}\n\n.legacy-archives .archive {\n  padding: 10px;\n  margin-bottom: 4px;\n  border-radius: 4px;\n  background: var(--bg-color--light);\n}\n\n.legacy-archives .archive:hover {\n  background: #fafafd;\n}\n\n.legacy-archives .archive a {\n  display: block;\n  font-size: 14px;\n  font-weight: 500;\n  letter-spacing: 0.5px;\n  margin-bottom: 5px;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/desktop/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>New Tab</title>\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n  </head>\n  <body>\n    <desktop-app></desktop-app>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n    <script src=\"beaker://assets/vs/loader.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "app/userland/desktop/js/com/add-link-popup.js",
    "content": "/* globals beaker */\nimport { html, css } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { BasePopup } from 'beaker://app-stdlib/js/com/popups/base.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport popupsCSS from 'beaker://app-stdlib/css/com/popups.css.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport * as contextMenu from 'beaker://app-stdlib/js/com/context-menu.js'\nimport { toNiceUrl, normalizeUrl } from 'beaker://app-stdlib/js/strings.js'\n\n// exported api\n// =\n\nexport class AddLinkPopup extends BasePopup {\n  static get styles () {\n    return [buttonsCSS, popupsCSS, css`\n    .popup-inner {\n      width: 1000px;\n      background: var(--bg-color--default);\n    }\n\n    .popup-inner .body {\n      padding: 0;\n    }\n\n    .popup-inner .body > div:not(:first-child) {\n      margin-top: 0px; /* override this rule */\n    }\n\n    .filter-control {\n      padding: 8px 10px;\n      background: var(--bg-color--light);\n      border-bottom: 1px solid var(--border-color--light);\n    }\n\n    .filter-control input {\n      height: 26px;\n      margin: 0;\n      width: 100%;\n    }\n\n    main {\n      max-height: calc(100vh - 300px);\n      overflow-y: auto;\n    }\n\n    footer {\n      padding: 8px 10px;\n      background: var(--bg-color--light);\n      border-top: 1px solid var(--border-color--light);\n      text-align: right;\n    }\n\n    footer button {\n      font-size: 14px;\n    }\n\n    nav {\n      padding: 4px;\n      margin: 10px;\n      border-radius: 8px;\n      background: #f6f6fd;\n    }\n\n    nav button {\n      background: #fff;\n      box-shadow: rgba(0, 0, 0, 0.15) 0px 1px 1px;\n    }\n\n    nav .path {\n      margin-left: 4px;\n    }\n\n    nav .path span {\n      margin-left: 4px;\n      letter-spacing: 0.3px;\n      color: #667;\n    }\n\n    .history {\n      margin-top: 0 !important;\n    }\n\n    .empty {\n      color: rgba(0, 0, 0, 0.5);\n      padding: 20px;\n    }\n\n    .suggestion {\n      display: flex;\n      align-items: center;\n      padding: 10px;\n      overflow: hidden;\n      user-select: none;\n    }\n\n    .suggestion .thumb {\n      flex: 0 0 80px;\n      width: 80px;\n      height: 64px;\n      object-fit: scale-down;\n      margin: 0 20px 0 10px;\n      border: 1px solid var(--border-color--light);\n      border-radius: 3px;\n    }\n\n    .suggestion .details {\n      flex: 1;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    .suggestion .title,\n    .suggestion .url {\n      display: block;\n      white-space: nowrap;\n      line-height: 1.7;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    .suggestion .title {\n      font-size: 14px;\n      font-weight: 500;\n    }\n\n    .suggestion .url {\n      font-size: 12px;\n      color: var(--blue);\n    }\n\n    .suggestion:hover {\n      background: var(--bg-color--secondary);\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.query = ''\n    this.history = []\n    this.selection = []\n\n    this.initialLoad()\n  }\n\n  // management\n  //\n\n  static async create () {\n    return BasePopup.create(AddLinkPopup)\n  }\n\n  static destroy () {\n    return BasePopup.destroy('add-link-popup')\n  }\n\n  async initialLoad () {\n    await this.load()\n  }\n\n  reset () {\n    this.selection = []\n    this.history = []\n  }\n\n  async load () {\n    this.reset()\n    this.runQuery()\n  }\n\n  async runQuery () {\n    this.reset()\n    this.history = await (this.query ? beaker.history.search(this.query) : beaker.history.getVisitHistory(0))\n    if (this.query) {\n      let queryEntry = normalizeUrl(this.query)\n      if (!this.history.find(item => normalizeUrl(item.url) === queryEntry)) {\n        this.history.unshift({\n          title: queryEntry,\n          url: queryEntry\n        })\n      }\n    }\n    console.log(this.history)\n    this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  renderTitle () {\n    return 'Create shortcut'\n  }\n\n  renderBody () {\n    var hasResults = this.history.length > 0\n    return html`  \n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"filter-control\">\n        <input type=\"text\" id=\"search-input\" name=\"url\" placeholder=\"Search my history or input a URL\" @keyup=${e => delay(this.onChangeQuery.bind(this), e)} />\n      </div>\n      <main>\n        <div class=\"history ${this.query ? 'query-results' : 'defaults'}\">\n          ${hasResults ? '' : html`<div class=\"empty\">No results</div>`}\n          ${repeat(this.history, item => this.renderHistoryItem(item))}\n        </div>\n      </main>\n    `\n  }\n\n  renderHistoryItem (item) {\n    const title = item.title || 'Untitled'\n    return html`\n      <a href=${item.url} class=\"suggestion\" title=${title} @click=${this.onClickHistory} @contextmenu=${this.onContextMenuHistory}>\n        <img class=\"thumb\" src=\"asset:thumb:${item.url}\"/>\n        <span class=\"details\">\n          <span class=\"title\">${title}</span>\n          <span class=\"url\">${toNiceUrl(item.url)}</span>\n        </span>\n      </a>\n    `\n  }\n\n  firstUpdated () {\n    this.shadowRoot.querySelector('input').focus()\n  }\n\n  // events\n  // =\n\n  async onChangeQuery (e) {\n    this.query = this.shadowRoot.querySelector('input').value\n    if (this.query) this.runQuery()\n    else this.load()\n  }\n\n  onClickHistory (e) {\n    e.preventDefault()\n    const detail = {\n      href: e.currentTarget.getAttribute('href'),\n      title: e.currentTarget.getAttribute('title')\n    }\n    this.dispatchEvent(new CustomEvent('resolve', {detail}))\n  }\n\n  onContextMenuHistory (e) {\n    e.preventDefault()\n    var url = e.currentTarget.getAttribute('href')\n    const items = [\n      {icon: 'fa fa-external-link-alt', label: 'Open Link in New Tab', click: () => window.open(url)},\n      {icon: 'fa fa-link', label: 'Copy Link Address', click: () => writeToClipboard(url)}\n    ]\n    contextMenu.create({x: e.clientX, y: e.clientY, items, fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css'})\n  }\n}\ncustomElements.define('add-link-popup', AddLinkPopup)\n\n// helpers\n// =\n\nfunction delay (cb, param) {\n  window.clearTimeout(cb)\n  setTimeout(cb, 150, param)\n}\n"
  },
  {
    "path": "app/userland/desktop/js/lib/address-book.js",
    "content": "// exported\n// =\n\nexport async function loadProfile () {\n  try {\n    var addressBook = await beaker.hyperdrive.readFile('hyper://private/address-book.json').then(JSON.parse)\n    return beaker.hyperdrive.drive(addressBook.profiles[0].key).getInfo()\n  } catch (e) {\n    console.log('Failed to load profile', e)\n  }\n  return undefined\n}"
  },
  {
    "path": "app/userland/desktop/js/lib/desktop.js",
    "content": "import { getAvailableName } from 'beaker://app-stdlib/js/fs.js'\n\n// exported\n// =\n\n// const EXPLORER_APP = 'https://hyperdrive.network/'\n// export const FIXED_FILES = [\n//   makeFixedLink('.home-drive.goto', `${EXPLORER_APP}system`, 'Home Drive'),\n//   makeFixedLink('.library.goto', 'beaker://library/', 'My Library'),\n// ]\n\nexport async function load () {\n  var bookmarks = []\n  try {\n    bookmarks = await beaker.bookmarks.list()\n    bookmarks = bookmarks.filter(b => b.pinned)\n  } catch (e) {\n    console.log('Failed to load bookmarks files', e)\n  }\n  return bookmarks\n}\n\nexport async function createLink ({href, title}, pinned) {\n  let bookmark = await beaker.bookmarks.get(href)\n  if (bookmark) title = bookmark.title\n  await beaker.bookmarks.add({href, title, pinned})\n}\n\nexport async function remove (bookmark) {\n  await beaker.bookmarks.remove(bookmark.href)\n}\n\n// internal\n// =\n\nfunction makeFixedLink (name, href, title) {\n  return {\n    name,\n    stat: {\n      isDirectory: () => false,\n      isFile: () => true,\n      mount: undefined,\n      metadata: {href, title}\n    },\n    isFixed: true\n  }\n}"
  },
  {
    "path": "app/userland/desktop/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { EditBookmarkPopup } from 'beaker://app-stdlib/js/com/popups/edit-bookmark.js'\nimport { AddLinkPopup } from './com/add-link-popup.js'\nimport * as toast from 'beaker://app-stdlib/js/com/toast.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport { pluralize } from 'beaker://app-stdlib/js/strings.js'\nimport * as desktop from './lib/desktop.js'\nimport * as addressBook from './lib/address-book.js'\nimport css from '../css/main.css.js'\nimport 'beaker://app-stdlib/js/com/img-fallbacks.js'\n\nconst VERSION_ID = (major, minor, patch, pre) => major * 1e9 + minor * 1e6 + patch * 1e3 + pre\nconst CURRENT_VERSION = VERSION_ID(1, 1, 0, 0)\nconst RELEASE = { label: '1.1', url: 'https://beakerbrowser.com/2020/12/08/beaker-1.1.html' }\n\nclass DesktopApp extends LitElement {\n  static get properties () {\n    return {\n      profile: {type: Object},\n      pins: {type: Array},\n      legacyArchives: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  constructor () {\n    super()\n    this.profile = undefined\n    this.pins = []\n    this.legacyArchives = []\n\n    this.load()\n\n    this.lastDismissedReleaseNotice = localStorage.lastDismissedReleaseNotice\n    localStorage.lastDismissedReleaseNotice = CURRENT_VERSION\n\n    window.addEventListener('focus', e => {\n      this.load()\n    })\n    this.addEventListener('update-pins', async (e) => {\n      this.pins = await desktop.load()\n    })\n  }\n\n  async load ({clearCurrent} = {clearCurrent: false}) {\n    ;[this.profile, this.pins] = await Promise.all([\n      addressBook.loadProfile(),\n      desktop.load()\n    ])\n    console.log(this.pins)\n    this.legacyArchives = await beaker.datLegacy.list()\n  }\n\n  // rendering\n  // =\n\n  render () {\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div id=\"topright\">\n        <a href=\"#\" @click=${this.onClickNewHyperdrive}>+ New Hyperdrive</a>\n        <a href=\"beaker://library/\" title=\"Library\">My Library</a>\n        <a href=\"https://docs.beakerbrowser.com/\" title=\"Help\">Help</a>\n      </div>\n      ${this.renderSupportBanner()}\n      <main>\n        <div class=\"onecol\">\n          ${this.renderReleaseNotice()}\n          ${this.renderPins()}\n          ${this.renderLegacyArchivesNotice()}\n        </div>\n      </main>\n    `\n  }\n\n  renderSupportBanner () {\n    if (localStorage.hasDismissedSupportBanner) {\n      return ''\n    }\n    return html`\n      <div id=\"support-banner\">\n        <a href=\"https://www.patreon.com/paul_maf_and_andrew\" title=\"Support Beaker\" target=\"_blank\">\n          <span class=\"far fa-fw fa-heart\"></span>\n          Support Beaker through Patreon and help us build peer-to-peer software!\n        </a>\n        <a class=\"dismiss\" href=\"#\" @click=${this.onCloseSupportBanner}><span class=\"fas fa-times\"></span></a>\n      </div>\n    `\n  }\n\n  renderReleaseNotice () {\n    if (this.lastDismissedReleaseNotice >= CURRENT_VERSION) {\n      return ''\n    }\n    return html`\n      <div class=\"release-notice\">\n        <a href=${RELEASE.url} class=\"view-release-notes\" target=\"_blank\">\n          <span class=\"fas fa-fw fa-rocket\"></span>\n          <strong>Welcome to Beaker ${RELEASE.label}!</strong>\n          Click here to see what's new.\n        </a>\n      </div>\n    `\n  }\n\n  renderPins () {\n    var pins = this.pins || []\n    return html`\n      <div class=\"pins\">\n        ${repeat(pins, pin => pin.href, pin => html`\n          <a\n            class=\"pin\"\n            href=${pin.href}\n            @contextmenu=${e => this.onContextmenuPin(e, pin)}\n          >\n            <div class=\"thumb-wrapper\">\n              <img src=${'asset:screenshot-180:' + pin.href} class=\"thumb\"/>\n            </div>\n            <div class=\"details\">\n              <div class=\"title\">${pin.title}</div>\n            </div>\n          </a>\n        `)}\n        <a class=\"pin add\" @click=${e => this.onClickNewBookmark(e, true)}>\n          <span class=\"fas fa-fw fa-plus thumb\"></span>\n        </a>\n      </div>\n    `\n  }\n\n  renderLegacyArchivesNotice () {\n    if (this.legacyArchives.length === 0) {\n      return ''\n    }\n    return html`\n      <section class=\"legacy-archives notice\">\n        <h3>Legacy Dats</h3>\n        <p>You have ${this.legacyArchives.length} legacy Dat ${pluralize(this.legacyArchives.length, 'archive')} which can be converted to Hyperdrive.</p>\n        <div class=\"archives\">\n          ${this.legacyArchives.slice(0, 3).map(archive => html`\n            <div class=\"archive\">\n              <a href=\"dat://${archive.key}\" title=${archive.title} target=\"_blank\">${archive.title || archive.key}</a>\n              <div class=\"btn-group\">\n                <button @click=${e => {window.location = `dat://${archive.key}`}}>View</button>\n                <button @click=${e => this.onClickRemoveLegacyArchive(e, archive)}>Remove</button>\n              </div>\n            </div>\n          `)}\n          ${this.legacyArchives.length > 3 ? html`\n            <a @click=${e => { this.currentNav = 'legacy-archives' }}>View All &raquo;</a>\n          ` : ''}\n        </div>\n      </section>\n    `\n  }\n\n  renderLegacyArchivesView () {\n    if (this.legacyArchives.length === 0) {\n      return ''\n    }\n    return html`\n      <section class=\"legacy-archives view\">\n        <h3>Legacy Dats</h3>\n        <p>You have ${this.legacyArchives.length} legacy Dat ${pluralize(this.legacyArchives.length, 'archive')} which can be converted to Hyperdrive.</p>\n        <div class=\"archives\">\n          ${this.legacyArchives.map(archive => html`\n            <div class=\"archive\">\n              <a href=\"dat://${archive.key}\" title=${archive.title} target=\"_blank\">${archive.title || archive.key}</a>\n              <div class=\"btn-group\">\n                <button @click=${e => {window.location = `dat://${archive.key}`}}>View</button>\n                <button @click=${e => this.onClickRemoveLegacyArchive(e, archive)}>Remove</button>\n              </div>\n            </div>\n          `)}\n        </div>\n      </section>\n    `\n  }\n\n  // events\n  // =\n\n  onCloseSupportBanner (e) {\n    localStorage.hasDismissedSupportBanner = 1\n    this.requestUpdate()\n  }\n\n  async onClickNewHyperdrive (e) {\n    var drive = await beaker.hyperdrive.createDrive()\n    toast.create('Drive created')\n    beaker.browser.openUrl(drive.url, {setActive: true, addedPaneUrls: ['beaker://editor/']})\n  }\n\n  async onClickNewBookmark (e, pinned) {\n    try {\n      await desktop.createLink(await AddLinkPopup.create(), pinned)\n      toast.create('Link added', '', 10e3)\n    } catch (e) {\n      // ignore, user probably cancelled\n      console.log(e)\n      return\n    }\n    this.isEmpty = false\n    this.load({clearCurrent: true})\n  }\n\n  async onContextmenuPin (e, pin) {\n    e.preventDefault()\n    const items = [\n      {label: 'Open Link in New Tab', click: () => window.open(pin.href)},\n      {label: 'Copy Link Address', click: () => writeToClipboard(pin.href)},\n      (pin.isFixed) ? undefined : {type: 'separator'},\n      (pin.isFixed) ? undefined : {label: 'Edit', click: () => this.onClickEditBookmark(pin)},\n      (pin.isFixed) ? undefined : {label: 'Unpin', click: () => this.onClickUnpinBookmark(pin)}\n    ].filter(Boolean)\n    var fns = {}\n    for (let i = 0; i < items.length; i++) {\n      if (items[i].id) continue\n      let id = `item=${i}`\n      items[i].id = id\n      fns[id] = items[i].click\n      delete items[i].click\n    }\n    var choice = await beaker.browser.showContextMenu(items)\n    if (fns[choice]) fns[choice]()\n  }\n\n  async onClickEditBookmark (file) {\n    try {\n      await EditBookmarkPopup.create(file)\n      this.load()\n    } catch (e) {\n      // ignore\n      console.log(e)\n    }\n  }\n\n  async onClickUnpinBookmark (bookmark) {\n    await beaker.bookmarks.add(Object.assign({}, bookmark, {pinned: false}))\n    toast.create('Bookmark unpinned', '', 10e3)\n    this.load()\n  }\n\n  async onClickRemoveLegacyArchive (e, archive) {\n    e.preventDefault()\n    if (!confirm('Are you sure?')) return\n    await beaker.datLegacy.remove(archive.key)\n    this.legacyArchives.splice(this.legacyArchives.indexOf(archive), 1)\n    toast.create('Archive removed')\n    this.requestUpdate()\n  }\n}\n\ncustomElements.define('desktop-app', DesktopApp)\n"
  },
  {
    "path": "app/userland/diff/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://app-stdlib/css/fontawesome.css\";\n@import \"beaker://app-stdlib/css/buttons2.css\";\n@import \"beaker://app-stdlib/css/inputs.css\";\n@import \"beaker://app-stdlib/css/tooltip.css\";\n@import \"beaker://app-stdlib/css/com/spinner.css\";\n\nbody {\n  --color-summary: #445;\n  --color-folder: #9ec2e0;\n  --color-mount: #9ec2e0;\n  --color-file: #9a9aab;\n  --color-itemname: #333;\n  --color-itemname-selected: #333;\n  --color-selected-bg: #d3e2ff;\n  --color-nav-header: #60606c;\n  --color-nav-header-bg: #fff;\n  --color-nav-bg: #fff;\n  --color-nav-h4: #60606c;\n  --color-compare-dif-item-content: #445;\n  --color-compare-dif-item-content-bg: #fff;\n  font-size: 13px;\n  background: #fff;\n}\n\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --color-summary: #ddd;\n    --color-folder: #9ec2e0;\n    --color-mount: #9ec2e0;\n    --color-file: #9a9a9a;\n    --color-itemname: #ddd;\n    --color-itemname-selected: #ddd;\n    --color-selected-bg: #333;\n    --color-nav-header: #ddd;\n    --color-nav-header-bg: #222;\n    --color-nav-bg: #222;\n    --color-nav-h4: #ddd;\n    --color-compare-dif-item-content: #ddd;\n    --color-compare-dif-item-content-bg: #222;\n\n    background: #222;\n    color: #ccc;\n  }\n}\n\na {\n  color: var(--blue);\n}\n\ninput[type=\"checkbox\"] {\n  margin: 0;\n  height: auto;\n}\n\nheader {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border-color--semi-light);\n}\n\nheader .toolbar {\n  display: flex;\n  align-items: center;\n}\n\nheader .title {\n  font-size: 14px;\n  font-weight: 500;\n  margin-right: 5px;\n}\n\nheader a {\n  text-decoration: none;\n  color: var(--blue);\n  font-weight: normal;\n}\n\nheader a:hover {\n  text-decoration: underline;\n}\n\nheader .primary {\n  font-size: 14px;\n}\n\nheader button {\n  padding: 4px 6px 4px 10px;\n  font-size: 12px;\n  white-space: nowrap;\n  border-color: #aab;\n  margin: 0 4px;\n}\n\nheader .btn-group {\n  margin: 0 4px;\n}\n\nheader .btn-group button {\n  margin: 0;\n}\n\nheader button.transparent {\n  padding: 4px 6px;\n}\n\nheader button.primary {\n  padding: 5px 10px 5px 12px;\n  border-radius: 12px;\n  font-size: 12px;\n}\n\n.layout {\n  display: flex;\n  height: calc(100vh - 48px);\n}\n\nnav {\n  position: relative;\n  width: 300px;\n  padding-bottom: 10px;\n  background: var(--color-nav-bg);\n  border-right: 1px solid var(--border-color--semi-light);\n  overflow: auto;\n}\n\nnav .nav-header {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  height: 35px;\n  background-color: var(--color-nav-header-bg);\n  color: var(--color-nav-header);\n  line-height: 35px;\n  padding: 0 12px;\n}\n\nnav .nav-header input {\n  margin-right: 4px;\n}\n\nnav .nav-header label {\n  font-weight: normal;\n}\n\nnav h4 {\n  position: sticky;\n  z-index: 1;\n  top: 35px;\n  color: var(--color-nav-h4);\n  font-weight: normal;\n  padding: 5px 10px;\n  margin: 0;\n  user-select: none;\n  border-top: 1px solid var(--border-color--semi-light);\n  border-bottom: 1px solid var(--border-color--semi-light);\n}\n\nnav h4:first-child {\n  margin-top: 0;\n}\n\nmain {\n  flex: 1;\n}\n\n.empty {\n  padding: 24px;\n  background: rgb(241, 241, 246);\n  color: #667;\n}\n\ncompare-diff-item .item {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 8px 14px;\n  user-select: none;\n  white-space: nowrap;\n}\n\ncompare-diff-item .item input[type=\"checkbox\"] {\n  margin: 0 5px 0 0;\n}\n\ncompare-diff-item .item.selected {\n  background: var(--color-selected-bg);\n}\n\ncompare-diff-item .item .icon {\n  width: 20px;\n}\n\ncompare-diff-item .item .icon .fa-fw.fa-folder {\n  color: var(--color-folder);\n}\n\ncompare-diff-item .item .icon .fa-fw.fa-external-link-square-alt {\n  color: var(--color-mount);\n}\n\ncompare-diff-item .item .icon .fa-fw.fa-file {\n  -webkit-text-stroke: 1px var(--color-file);\n  color: #fff;\n}\n\ncompare-diff-item .item .path {\n  flex: 1;\n  color: var(--color-itemname);\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\ncompare-diff-item .item.selected .path {\n  color: var(--color-itemname-selected);\n}\n\n.revision {\n  width: 35px;\n}\n\n.revision-indicator {\n  display: inline-block;\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n  margin-top: -.4px;\n  margin-left: 4px;\n  margin-right: 4px;\n}\n\n.revision-indicator.add { background: #44c35a; }\n.revision-indicator.mod { background: #fac800; }\n.revision-indicator.del { background: #d93229; }\n\n.summary {\n  padding: 4px 24px;\n  font-size: 19px;\n  letter-spacing: 1.2px;\n  color: var(--color-summary);\n}\n\n.summary.error {\n  color: #e00000;\n}\n\n.summary .revision-indicator {\n  margin-left: 10px;\n  margin-right: 8px;\n}\n\n.summary p {\n  margin: 18px 0;\n}\n\n.summary a {\n  display: inline-block;\n}\n\n.summary a .fork-label {\n  position: relative;\n  top: -2px;\n  display: inline-block;\n  color: #fff;\n  background: var(--blue);\n  font-size: 70%;\n  border-radius: 4px;\n  padding: 1px 4px 2px;\n}\n\n.summary a:hover {\n  text-decoration: underline;\n}\n\n.summary button {\n  font-size: 16px;\n  padding: 8px 12px;\n  letter-spacing: 0.5px;\n}\n\n.summary .share-link-instructions {\n  font-size: 14px;\n}\n\n.summary a.copy-btn {\n  display: flex;\n  justify-content: space-between;\n  white-space: nowrap;\n  font-size: 15px;\n  background: #eaeaed;\n  color: inherit;\n  padding: 10px 20px;\n  margin: 10px 0 0;\n  border-radius: 24px;\n  box-sizing: border-box;\n  color: #556;\n  cursor: pointer;\n  max-width: 640px;\n}\n\n.summary a.copy-btn span {\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.summary a.copy-btn span:last-child {\n  width: 40px;\n}\n\n.summary a.copy-btn:hover {\n  background: #e2e2e7;\n  text-decoration: none;\n}\n\n.summary .spinner {\n  position: relative;\n  top: 3px;\n  width: 20px;\n  height: 20px;\n  margin-right: 5px;\n}\n\ncompare-diff-item .item.selected .icon span {\n  text-shadow: 0 1px 2px #0006;\n}\n\ncompare-diff-item .item.selected .revision-indicator {\n  box-shadow: 0 1px 2px #0006;\n}\n\ncompare-diff-item-content {\n  display: block;\n  background: var(--color-compare-dif-item-content-bg);\n}\n\ncompare-diff-item-content .info {\n  display: flex;\n  align-items: center;\n  height: 36px;\n  line-height: 35px;\n  padding: 0 12px;\n  border-bottom: 1px solid var(--border-color--semi-light);\n  color: var(--color-compare-dif-item-content);\n}\n\ncompare-diff-item-content .info button {\n  margin-left: 14px;\n  padding: 4px 8px;\n}\n\ncompare-diff-item-content .info a {\n  margin-left: 14px;\n  color: inherit;\n  font-size: 12px;\n}\n\ncompare-diff-item-content .info a:hover {\n  text-decoration: underline;\n}\n\ncompare-diff-item-content .info a span {\n  font-size: 10px;\n}\n\ncompare-diff-item-content .editor-container {\n  height: calc(100vh - 84px);\n}\n\ncompare-diff-item-content .container {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  grid-gap: 5px;\n}\n\ncompare-diff-item-content .container.split {\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n}\n\ncompare-diff-item-content .container .fa-fw.fa-folder {\n  color: var(--color-folder);\n}\n\ncompare-diff-item-content .container .fa-fw.fa-external-link-square-alt {\n  color: var(--color-mount);\n}\n\ncompare-diff-item-content .action {\n  font-size: 80%;\n  color: gray;\n  margin-bottom: 5px;\n}\n\ncompare-diff-item-content .wrap {\n  padding: 10px;\n  overflow: auto;\n  box-sizing: border-box;\n  max-height: calc(100vh - 131px);\n}\n\ncompare-diff-item-content .text {\n  font-family: var(--code-font);\n  white-space: pre;\n}\n\ncompare-diff-item-content img,\ncompare-diff-item-content video,\ncompare-diff-item-content audio {\n  max-width: 100%;\n}"
  },
  {
    "path": "app/userland/diff/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n    <title>Diff / Merge</title>\n  </head>\n  <body>\n    <compare-app></compare-app>\n    <script src=\"beaker://assets/vs/loader.js\"></script>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/diff/js/lib/compare.js",
    "content": "import { joinPath } from 'beaker://app-stdlib/js/strings.js'\n\nexport async function diff (baseDrive, initBasePath, targetDrive, initTargetPath, opts) {\n  opts = opts || {}\n  var compareContentCache = opts.compareContentCache\n  var seen = new Set()\n  var changes = []\n  await walk(initBasePath, initTargetPath)\n  return changes\n\n  async function walk (basePath, targetPath) {\n    // get files in folder\n    var [baseNames, targetNames] = await Promise.all([\n      baseDrive.readdir(basePath),\n      targetDrive.readdir(targetPath)\n    ])\n\n    // run ops based on set membership\n    var ps = []\n    console.debug('walk', basePath, baseNames, targetPath, targetNames)\n    baseNames.forEach(name => {\n      if (targetNames.indexOf(name) === -1) {\n        ps.push(addRecursive(joinPath(basePath, name), joinPath(targetPath, name)))\n      } else {\n        ps.push(diff(joinPath(basePath, name), joinPath(targetPath, name)))\n      }\n    })\n    targetNames.forEach(name => {\n      if (baseNames.indexOf(name) === -1) {\n        ps.push(delRecursive(joinPath(basePath, name), joinPath(targetPath, name)))\n      } else {\n        // already handled\n      }\n    })\n    return Promise.all(ps)\n  }\n\n  async function diff (basePath, targetPath) {\n    console.debug('diff', basePath, targetPath)\n    if (opts.filter && !(opts.filter(basePath) || opts.filter(targetPath))) {\n      return\n    }\n    // stat the entry\n    var [baseStat, targetStat] = await Promise.all([\n      baseDrive.stat(basePath),\n      targetDrive.stat(targetPath)\n    ])\n    // check for cycles\n    checkForCycle(baseStat, basePath)\n    checkForCycle(targetStat, targetPath)\n    // both a file\n    if (baseStat.isFile() && targetStat.isFile()) {\n      return diffFile(basePath, baseStat, targetPath, targetStat)\n    }\n    // both a dir\n    if (baseStat.isDirectory() && !baseStat.mount && targetStat.isDirectory() && !targetStat.mount) {\n      return walk(basePath, targetPath)\n    }\n    // both a mount\n    if (baseStat.mount && targetStat.mount) {\n      if (baseStat.mount.key !== targetStat.mount.key) {\n        changes.push({change: 'mod', type: 'mount', basePath, targetPath, baseMountKey: baseStat.mount.key, targetMountKey: targetStat.mount.key})\n      }\n      return\n    }\n    // incongruous, remove all in left then add all in right\n    await delRecursive(basePath, targetPath, true)\n    await addRecursive(basePath, targetPath, true)\n  }\n\n  async function diffFile (basePath, baseStat, targetPath, targetStat) {\n    console.debug('diffFile', basePath, targetPath)\n    var isEq = (\n      (baseStat.size === targetStat.size) &&\n      (isTimeEqual(baseStat.mtime, targetStat.mtime))\n    )\n    if (!isEq && opts.compareContent) {\n      // try the cache\n      let cacheHit = false\n      if (compareContentCache) {\n        let cacheEntry = compareContentCache[basePath]\n        if (cacheEntry && cacheEntry.baseMtime === +baseStat.mtime && cacheEntry.targetMtime === +targetStat.mtime) {\n          isEq = cacheEntry.isEq\n          cacheHit = true\n        }\n      }\n\n      // actually compare the files\n      if (!cacheHit) {\n        let [ls, rs] = await Promise.all([\n          baseDrive.readFile(basePath, 'utf8'),\n          targetDrive.readFile(targetPath, 'utf8')\n        ])\n        isEq = ls === rs\n      }\n\n      // store in the cache\n      if (compareContentCache && !cacheHit) {\n        compareContentCache[basePath] = {\n          baseMtime: +baseStat.mtime,\n          targetMtime: +targetStat.mtime,\n          isEq\n        }\n      }\n    }\n    if (!isEq) {\n      changes.push({change: 'mod', type: 'file', basePath, targetPath})\n    }\n  }\n\n  async function addRecursive (basePath, targetPath, isFirstRecursion = false) {\n    console.debug('addRecursive', basePath, targetPath)\n    if (opts.filter && !(opts.filter(basePath) || opts.filter(targetPath))) {\n      return\n    }\n    // find everything at and below the current path in staging\n    // they should be added\n    var st = await baseDrive.stat(basePath)\n    if (!isFirstRecursion /* when first called from diff(), dont check for a cycle again */) {\n      checkForCycle(st, basePath)\n    }\n    if (st.mount) {\n      changes.push({change: 'add', type: 'mount', basePath, targetPath, baseMountKey: st.mount.key})\n    } else if (st.isFile()) {\n      changes.push({change: 'add', type: 'file', basePath, targetPath})\n    } else if (st.isDirectory()) {\n      // add dir first\n      changes.push({change: 'add', type: 'dir', basePath, targetPath})\n      // add children second\n      if (!opts.shallow) {\n        var children = await baseDrive.readdir(basePath)\n        await Promise.all(children.map(name => addRecursive(joinPath(basePath, name), joinPath(targetPath, name))))\n      }\n    }\n  }\n\n  async function delRecursive (basePath, targetPath, isFirstRecursion = false) {\n    console.debug('delRecursive', basePath, targetPath)\n    if (opts.filter && !(opts.filter(basePath) || opts.filter(targetPath))) {\n      return\n    }\n    // find everything at and below the current path in the drive\n    // they should be removed\n    var st = await targetDrive.stat(targetPath)\n    if (!isFirstRecursion /* when first called from diff(), dont check for a cycle again */) {\n      checkForCycle(st, targetPath)\n    }\n    if (st.mount) {\n      changes.push({change: 'del', type: 'mount', basePath, targetPath, targetMountKey: st.mount.key})\n    } else if (st.isFile()) {\n      changes.push({change: 'del', type: 'file', basePath, targetPath})\n    } else if (st.isDirectory()) {\n      // del children first\n      if (!opts.shallow) {\n        var children = await targetDrive.readdir(targetPath)\n        await Promise.all(children.map(name => delRecursive(joinPath(basePath, name), joinPath(targetPath, name))))\n      }\n      // del dir second\n      changes.push({change: 'del', type: 'dir', basePath, targetPath})\n    }\n  }\n\n  function checkForCycle (st, path) {\n    return\n    // TODO needed to handle symlinks\n    var id = path\n    if (seen.has(id)) {\n      throw new CycleError(path)\n    }\n    seen.add(id)\n  }\n}\n\nexport async function applyRight (baseDrive, targetDrive, changes) {\n  // copies can be done in parallel\n  var promises = []\n\n  // apply changes\n  console.debug('applyRight', changes)\n  for (let i = 0; i < changes.length; i++) {\n    let d = changes[i]\n    let op = d.change + d.type\n    if (op === 'adddir') {\n      console.debug('mkdir', d.targetPath)\n      await targetDrive.mkdir(d.targetPath)\n    }\n    if (op === 'deldir') {\n      console.debug('rmdir', d.targetPath)\n      await targetDrive.rmdir(d.targetPath)\n    }\n    if (op === 'addfile' || op === 'modfile') {\n      console.debug('copy', d.basePath, d.targetPath)\n      promises.push(copy(baseDrive, d.basePath, targetDrive, d.targetPath))\n    }\n    if (op === 'addmount') {\n      console.debug('mount', d.targetPath)\n      await targetDrive.mount(d.targetPath, d.baseMountKey)\n    }\n    if (op === 'modmount') {\n      console.debug('mount', d.targetPath)\n      await targetDrive.unmount(d.targetPath)\n      await targetDrive.mount(d.targetPath, d.baseMountKey)\n    }\n    if (op === 'delfile') {\n      console.debug('unlink', d.targetPath)\n      await targetDrive.unlink(d.targetPath)\n    }\n    if (op === 'delmount') {\n      console.debug('unmount', d.targetPath)\n      await targetDrive.unmount(d.targetPath)\n    }\n  }\n  return Promise.all(promises)\n}\n\nexport async function applyLeft (baseDrive, targetDrive, changes) {\n  // copies can be done in parallel\n  var promises = []\n\n  // apply opposite changes, in reverse\n  console.debug('applyLeft', changes)\n  for (let i = changes.length - 1; i >= 0; i--) {\n    let d = changes[i]\n    let op = d.change + d.type\n    if (op === 'adddir') {\n      console.debug('rmdir', d.basePath)\n      await baseDrive.rmdir(d.basePath)\n    }\n    if (op === 'deldir') {\n      console.debug('mkdir', d.basePath)\n      await baseDrive.mkdir(d.basePath)\n    }\n    if (op === 'addfile') {\n      console.debug('unlink', d.basePath)\n      await baseDrive.unlink(d.basePath)\n    }\n    if (op === 'addmount') {\n      console.debug('unmount', d.basePath)\n      await baseDrive.unmount(d.basePath)\n    }\n    if (op === 'modmount') {\n      console.debug('mount', d.basePath)\n      await baseDrive.unmount(d.basePath)\n      await baseDrive.mount(d.basePath, d.targetMountKey)\n    }\n    if (op === 'delmount') {\n      console.debug('mount', d.basePath)\n      await baseDrive.mount(d.basePath, d.targetMountKey)\n    }\n    if (op === 'modfile' || op === 'delfile') {\n      console.debug('copy', d.path)\n      promises.push(copy(targetDrive, d.targetPath, baseDrive, d.basePath))\n    }\n  }\n  return Promise.all(promises)\n}\n\nfunction isTimeEqual (a, b) {\n  return (+a) === (+b)\n}\n\nasync function copy (srcDrive, srcPath, dstDrive, dstPath) {\n  let [srcStat, srcContent] = await Promise.all([\n    srcDrive.stat(srcPath),\n    srcDrive.readFile(srcPath, 'buffer')\n  ])\n  await dstDrive.writeFile(dstPath, srcContent, {metadata: srcStat.metadata})\n}\n\nclass CycleError extends Error {\n  constructor (path) {\n    var msg = `Aborting file-tree comparison, a symlink or hardlink loop was detected at ${path}`\n    super(msg)\n    this.name = 'CycleError'\n    this.message = msg\n  }\n}"
  },
  {
    "path": "app/userland/diff/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { emit } from 'beaker://app-stdlib/js/dom.js'\nimport { pluralize, toNiceDomain } from 'beaker://app-stdlib/js/strings.js'\nimport { isFilenameBinary } from 'beaker://app-stdlib/js/is-ext-binary.js'\nimport * as toast from 'beaker://app-stdlib/js/com/toast.js'\nimport * as contextMenu from 'beaker://app-stdlib/js/com/context-menu.js'\nimport * as QP from 'beaker://app-stdlib/js/query-params.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport * as compare from './lib/compare.js'\n\nvar isMonacoLoaded = false\n\nexport class CompareApp extends LitElement {\n  static get properties () {\n    return {\n      taskState: {type: Object},\n      base: {type: String},\n      target: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.taskState = undefined\n    this.base = QP.getParam('base')\n    this.target = QP.getParam('target')\n    this.selectedItem = undefined\n    this.checkedItems = []\n    this.otherDrives = undefined\n    this.baseForks = undefined\n    this.targetForks = undefined\n    this.load()\n  }\n\n  createRenderRoot () {\n    return this // dont use shadow dom\n  }\n\n  async attempt (task, fn) {\n    this.taskState = {task, error: false}\n    try {\n      var res = await fn()\n      this.taskState = undefined\n      return res\n    } catch (e) {\n      this.taskState = {task, error: e}\n      this.requestUpdate()\n      if (e.name === 'TimeoutError') {\n        return this.attempt(task, fn)\n      } else {\n        throw e\n      }\n    }\n  }\n\n  get baseFork () {\n    return this.baseForks?.find(fork => fork.url === this.baseInfo.url)\n  }\n\n  get targetFork () {\n    return this.targetForks?.find(fork => fork.url === this.targetInfo.url)\n  }\n\n  async load () {\n    if (!this.otherDrives) {\n      ;(async () => {\n        this.otherDrives = await beaker.drives.list({includeSystem: false})\n\n        // move forks onto their parents\n        this.otherDrives = this.otherDrives.filter(drive => {\n          if (drive.forkOf) {\n            let parent = this.otherDrives.find(d => d.key === drive.forkOf.key)\n            if (parent) {\n              parent.forks = parent.forks || []\n              parent.forks.push(drive)\n              return false\n            }\n          }\n          return true\n        })\n      })()\n    }\n\n    this.baseDrive = this.base ? beaker.hyperdrive.drive(this.base) : undefined\n    this.targetDrive = this.target ? beaker.hyperdrive.drive(this.target) : undefined\n    await this.attempt(\n      'Reading information about the drives',\n      async () => {\n        let [baseInfo, targetInfo] = await Promise.allSettled([\n          this.baseDrive?.getInfo?.(),\n          this.targetDrive?.getInfo?.()\n        ])\n        this.baseInfo = baseInfo.value\n        this.targetInfo = targetInfo.value\n        if (baseInfo.status === 'rejected') throw baseInfo.reason\n        if (targetInfo.status === 'rejected') throw targetInfo.reason\n      }\n    )\n    this.basePath = '/' //getUrlPathname(this.base)\n    this.targetPath = '/' // getUrlPathname(this.target)\n    this.checkedItems = []\n    this.selectedItem = undefined\n    this.requestUpdate()\n\n    QP.setParams({\n      base: this.base,\n      target: this.target\n    }, false, true)\n\n    this.baseForks = this.baseInfo\n      ? await this.attempt(\n        'Fetching known forks of the base drive',\n        () => beaker.drives.getForks(this.baseInfo.url)\n       ) : undefined\n    this.targetForks = this.targetInfo\n      ? await this.attempt(\n        'Fetching known forks of the target drive',\n        () => beaker.drives.getForks(this.targetInfo.url)\n       ) : undefined\n\n    if (this.baseInfo && this.targetInfo) {\n      const filter = path => path !== '/index.json'\n      this.diff = await this.attempt(\n        'Comparing files',\n        () => compare.diff(this.baseDrive, this.basePath, this.targetDrive, this.targetPath, {compareContent: true, shallow: false, filter})\n      )\n    } else {\n      this.diff = []\n    }\n    this.checkedItems = this.diff.slice()\n    console.log(this.diff)\n    this.requestUpdate()\n\n    if (!isMonacoLoaded) {\n      await new Promise((resolve, reject) => {\n        window.require.config({ baseUrl: 'beaker://assets/' })\n        window.require(['vs/editor/editor.main'], () => {\n          isMonacoLoaded = true\n          resolve()\n        })\n      })\n    }\n\n    if (this.baseInfo && !this.targetInfo) {\n      // default to original as target\n      this.target = this.baseForks[0].url\n      if (this.target) this.load()\n    }\n  }\n\n  async doMerge (diff) {\n    try {\n      toast.create('Merging...')\n      await compare.applyRight(this.baseDrive, this.targetDrive, diff)\n      toast.create('Files updated', 'success')\n    } catch (e) {\n      console.error(e)\n      toast.create(e.message || 'There was an issue writing the files', 'error')\n    }\n    this.load()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    let lastDiffType = undefined\n    const diffSortFn = (a, b) => (a.change).localeCompare(b.change) || (a.path || '').localeCompare(b.path || '')\n    var numChecked = `${this.checkedItems?.length} ${pluralize(this.checkedItems?.length, 'Change')}`\n    var counts = {\n      additions: this.checkedItems?.filter?.(d => d.change === 'add')?.length,\n      modifications: this.checkedItems?.filter?.(d => d.change === 'mod')?.length,\n      deletions: this.checkedItems?.filter?.(d => d.change === 'del')?.length\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      <header>\n        <div class=\"toolbar\">\n          <div class=\"title\">\n            Merging\n            <div class=\"btn-group\">\n              <button @click=${this.onClickBase}>\n                ${this.baseInfo?.title || html`<em>None Selected</em>`}\n                <span class=\"fas fa-fw fa-caret-down\"></span>\n              </button>\n              ${this.baseInfo && this.baseForks && this.baseForks.length > 1 ? html`\n                <button @click=${this.onClickBaseForks}>\n                  ${this.baseFork?.forkOf?.label || 'Original'}\n                  <span class=\"fas fa-fw fa-caret-down\"></span>\n                </button>\n              ` : ''}\n            </div>\n            into\n            <div class=\"btn-group\">\n              <button @click=${this.onClickTarget}>\n                ${this.targetInfo?.title || html`<em>None Selected</em>`}\n                <span class=\"fas fa-fw fa-caret-down\"></span>\n              </button>\n              ${this.targetInfo && this.targetForks && this.targetForks.length > 1 ? html`\n                <button @click=${this.onClickTargetForks}>\n                  ${this.targetFork?.forkOf?.label || 'Original'}\n                  <span class=\"fas fa-fw fa-caret-down\"></span>\n                </button>\n              ` : ''}\n            </div>\n          </div>\n          <button class=\"transparent\" @click=${this.onClickReverse}>\n            <span class=\"fas fa-fw fa-sync\"></span> Reverse\n          </button>\n        </div>\n      </header>\n      <div class=\"layout\">\n        <nav @click=${this.onClickOutside}>\n          <div class=\"nav-header\">\n            <label><input type=\"checkbox\" @change=${this.onToggleAllChecked}> Select / Deselect All</label>\n          </div>\n          ${!this.diff ? html`<div style=\"padding: 5px\">Comparing...</div>` : ''}\n          ${this.diff && !this.diff.length ? html`\n            <div class=\"empty\">No differences found.</div>\n          ` : ''}\n          ${repeat((this.diff || []).slice().sort(diffSortFn), diff => {\n            let heading = lastDiffType !== diff.change ? html`\n              <h4>${({'add': 'Add', 'del': 'Delete', 'mod': 'Modification'})[diff.change]}</h4>\n            ` : ''\n            lastDiffType = diff.change\n            return html`\n              ${heading}\n              <compare-diff-item\n                .diff=${diff}\n                .targetPath=${this.targetPath}\n                ?selected=${this.selectedItem === diff}\n                ?checked=${this.checkedItems.includes(diff)}\n                @select=${this.onSelectItem}\n                @check=${this.onCheckItem}\n              ></compare-diff-item>\n            `\n          })}\n        </nav>\n        <main>\n          ${this.taskState ? html`\n            ${this.taskState.error ? html`\n              <div class=\"summary error\">\n                <h2><span class=\"fas fa-fw fa-exclamation-triangle\"></span> Something has gone wrong</h2>\n                <p>While ${this.taskState.task.toLowerCase()}</p>\n                <details>\n                  <summary>${this.taskState.error.toString().split(':').slice(1).join(':').trim()}</summary>\n                  <pre>${this.taskState.error.stack}</pre>\n                </details>\n              </div>\n            ` : html`\n              <div class=\"summary\">\n                <h2>Loading...</h2>\n                <div class=\"task\"><span class=\"spinner\"></span> ${this.taskState.task}</div>\n              </div>\n            `}\n          ` : this.selectedItem ? html`\n            <compare-diff-item-content\n              .baseOrigin=${this.baseDrive.url}\n              .targetOrigin=${this.targetDrive.url}\n              .basePath=${this.basePath}\n              .targetPath=${this.targetPath}\n              .diff=${this.selectedItem}\n              ?can-merge=${this.targetInfo?.writable}\n              @merge=${this.onClickMergeItem}\n            ></compare-diff-item-content>\n          ` : html`\n            <div class=\"summary\">\n              ${this.diff?.length > 0 ? html`\n                <h2>Merging ${this.checkedItems?.length} ${pluralize(this.checkedItems?.length, 'Change')}</h2>\n              ` : html`\n                <h2><span class=\"fas fa-check\"></span> No Differences Found</h2>\n              `}\n              <div><span class=\"revision-indicator add\"></span> ${counts.additions} ${pluralize(counts.additions, 'addition')}</div>\n              <div><span class=\"revision-indicator mod\"></span> ${counts.modifications} ${pluralize(counts.modifications, 'modification')}</div>\n              <div><span class=\"revision-indicator del\"></span> ${counts.deletions} ${pluralize(counts.deletions, 'deletion')}</div>\n              <p>\n                Merging\n                ${this.baseInfo ? html`\n                  <a href=\"${this.baseInfo.url}\" target=\"_blank\">\n                    ${this.baseInfo.title || 'Base'}\n                   ${this.baseFork?.forkOf?.label ? html`<span class=\"fork-label\">${this.baseFork?.forkOf?.label}</span>` : ''}\n                  </a>\n                ` : '?'}\n                into\n                ${this.targetInfo ? html`\n                  <a href=\"${this.targetInfo.url}\" target=\"_blank\">\n                    ${this.targetInfo.title || 'Target'}\n                    ${this.targetFork?.forkOf?.label ? html`<span class=\"fork-label\">${this.targetFork?.forkOf?.label}</span>` : ''}\n                  </a>\n                ` : '?'}\n              </p>\n              ${this.targetInfo?.writable ? html`\n                <p>\n                  <button class=\"primary\" ?disabled=${this.checkedItems?.length === 0} @click=${this.onClickBulkMerge}>Merge ${numChecked}</button>\n                </p>\n              ` : html`\n                  <h2>Instructions</h2>\n                <div class=\"share-link-instructions\">\n                  <div>Send this link to the author and ask them to merge:</div>\n                  <a class=\"copy-btn\" @click=${this.onClickCopyUrl}>\n                    <span>${location.toString()}</span>\n                    <span class=\"fas fa-paste\"></span>\n                  </a>\n                </div>\n              `}\n            </div>\n          `}\n        </main>\n      </div>\n    `\n  }\n\n  updated () {\n    var allToggle = this.querySelector('.nav-header input')\n    var checked = this.diff?.length > 0 && this.checkedItems?.length === this.diff?.length\n    allToggle.checked = checked\n    allToggle.indeterminate = !checked && this.checkedItems?.length > 0\n  }\n\n  // events\n  // =\n\n  onClickOutside (e) {\n    for (let el of e.path) {\n      if (el && el.tagName === 'A' || el.tagName === 'BUTTON' || el.tagName === 'COMPARE-DIFF-ITEM') {\n        return\n      }\n    }\n    this.selectedItem = undefined\n    this.requestUpdate()\n  }\n\n  onClickCopyUrl (e) {\n    e.preventDefault()\n    writeToClipboard(location.toString())\n    toast.create('Copied to your clipboard')\n  }\n\n  onClickBase (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var rect = e.currentTarget.getClientRects()[0]\n    contextMenu.create({\n      x: rect.left,\n      y: rect.bottom,\n      left: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      noBorders: true,\n      style: `padding: 4px 0`,\n      items: this.otherDrives.slice(0, 10).map(drive => ({\n        icon: false,\n        label: drive.info.title,\n        click: () => {\n          this.base = drive.url\n          this.load()\n        }\n      })).concat([\n        '-',\n        {\n          icon: 'far fa-fw fa-hdd',\n          label: 'Browse...',\n          click: async () => {\n            this.base = await beaker.shell.selectDriveDialog()\n            this.load()\n          }\n        }\n      ])\n    })\n  }\n\n  onClickBaseForks (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var rect = e.currentTarget.getClientRects()[0]\n    contextMenu.create({\n      x: rect.left,\n      y: rect.bottom,\n      left: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      noBorders: true,\n      style: `padding: 4px 0`,\n      items: this.baseForks.map(fork => ({\n        icon: false,\n        label: fork?.forkOf?.label || 'Original',\n        click: () => {\n          this.base = fork.url\n          this.load()\n        }\n      }))\n    })\n  }\n\n  onClickTarget (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var rect = e.currentTarget.getClientRects()[0]\n    contextMenu.create({\n      x: rect.left,\n      y: rect.bottom,\n      left: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      noBorders: true,\n      style: `padding: 4px 0`,\n      items: this.otherDrives.slice(0, 10).map(drive => ({\n        icon: false,\n        label: drive.info.title,\n        click: () => {\n          this.target = drive.url\n          this.load()\n        }\n      })).concat([\n        '-',\n        {\n          icon: 'far fa-fw fa-hdd',\n          label: 'Browse...',\n          click: async () => {\n            this.target = await beaker.shell.selectDriveDialog()\n            this.load()\n          }\n        }\n      ])\n    })\n  }\n\n  onClickTargetForks (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var rect = e.currentTarget.getClientRects()[0]\n    contextMenu.create({\n      x: rect.left,\n      y: rect.bottom,\n      left: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      noBorders: true,\n      style: `padding: 4px 0`,\n      items: this.targetForks.map(fork => ({\n        icon: false,\n        label: fork?.forkOf?.label || 'Original',\n        click: () => {\n          this.target = fork.url\n          this.load()\n        }\n      }))\n    })\n  }\n\n  onSelectItem (e) {\n    this.selectedItem = e.detail.diff\n    this.requestUpdate()\n  }\n\n  onCheckItem (e) {\n    var {diff} = e.detail\n    if (!this.checkedItems.includes(diff)) {\n      this.checkedItems.push(diff)\n    } else {\n      this.checkedItems.splice(this.checkedItems.indexOf(diff), 1)\n    }\n    this.requestUpdate()\n  }\n\n  onToggleAllChecked (e) {\n    if (this.checkedItems.length === this.diff.length) {\n      this.checkedItems.length = 0\n    } else {\n      this.checkedItems = this.diff.slice()\n    }\n    console.log(this.checkedItems)\n    this.requestUpdate()\n  }\n\n  onClickMergeItem (e) {\n    if (!confirm('Merge change?')) return\n    var {diff} = e.detail\n    this.doMerge([diff])\n  }\n\n  onClickReverse (e) {\n    [this.base, this.target] = [this.target, this.base]\n    this.load()\n  }\n\n  onClickBulkMerge (e) {\n    if (!confirm('Merge selected changes?')) return\n    this.doMerge(this.checkedItems)\n  }\n}\n\nclass CompareDiffItem extends LitElement {\n  static get properties () {\n    return {\n      diff: {type: Object},\n      selected: {type: Boolean},\n      checked: {type: Boolean},\n      targetPath: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    this.diff = null\n    this.checked = false\n  }\n\n  createRenderRoot () {\n    return this // dont use shadow dom\n  }\n\n  render () {\n    var icon = 'file'\n    if (this.diff.type === 'mount') icon = 'external-link-square-alt'\n    if (this.diff.type === 'dir') icon = 'folder'\n    return html`\n      <div class=\"item ${this.diff.change} ${this.selected ? 'selected' : ''}\" @click=${this.onSelect}>\n        <input type=\"checkbox\" @click=${this.onCheck}>\n        <div class=\"revision-indicator ${this.diff.change}\"></div>\n        <div class=\"icon\"><span class=\"fas fa-fw fa-${icon}\"></span></div>\n        <div class=\"path\">${relativePath(this.targetPath, this.diff.targetPath)}</div>\n      </div>\n    `\n  }\n\n  updated () {\n    this.querySelector('input').checked = this.checked\n  }\n\n  onCheck (e) {\n    e.stopPropagation()\n    emit(this, 'check', {detail: {diff: this.diff}})\n  }\n\n  onSelect () {\n    emit(this, 'select', {detail: {diff: this.diff}})\n  }\n}\n\nclass CompareDiffItemContent extends LitElement {\n  static get properties () {\n    return {\n      baseOrigin: {type: String},\n      targetOrigin: {type: String},\n      canMerge: {type: Boolean, attribute: 'can-merge'},\n      diff: {type: Object}\n    }\n  }\n\n  constructor () {\n    super()\n    this.baseOrigin = null\n    this.targetOrigin = null\n    this.canMerge = false\n    this.diff = null\n  }\n\n  createRenderRoot () {\n    return this // dont use shadow dom\n  }\n  \n  render () {\n    return html`\n      <div class=\"info\">\n        <span class=\"path\">\n          <div class=\"revision-indicator ${this.diff.change}\"></div>\n          ${this.diff.change === 'add' ? 'Add' : ''}\n          ${this.diff.change === 'del' ? 'Delete' : ''}\n          ${this.diff.change === 'mod' ? 'Modify' : ''}\n          ${this.diff.targetPath}\n        </span>\n        ${this.canMerge ? html`\n          <button @click=${this.onClickMerge}>Merge</button>\n        ` : html`\n          <button disabled data-tooltip=\"Can't merge into a site you don't own\">Merge</button>\n        `}\n        ${['del', 'mod'].includes(this.diff.change) ? html`\n          <a href=\"${this.targetOrigin}${this.diff?.targetPath}\" target=\"_blank\"><span class=\"fas fa-fw fa-external-link-alt\"></span> View current</a>\n        ` : ''}\n        ${['add', 'mod'].includes(this.diff.change) ? html`\n          <a href=\"${this.baseOrigin}${this.diff?.basePath}\" target=\"_blank\"><span class=\"fas fa-fw fa-external-link-alt\"></span> View new file</a>\n        ` : ''}\n      </div>\n      ${this.renderDiff()}\n    `\n  }\n\n  renderDiff () {\n    if (this.diff.type === 'mount' || this.diff.type === 'dir' || isFilenameBinary(this.diff?.basePath || this.diff?.targetPath)) {\n      if (this.diff.change === 'mod') {\n        return html`\n          <div class=\"container split\">\n            <div><div class=\"action\">From</div><div class=\"wrap\">${this.renderLeftColumn()}</div></div>\n            <div><div class=\"action\">To</div><div class=\"wrap\">${this.renderRightColumn()}</div></div>\n          </div>\n        `\n      } else if (this.diff.change === 'add') {\n        return html`<div class=\"container\"><div><div class=\"wrap\">${this.renderRightColumn()}</div></div></div>`\n      } else if (this.diff.change === 'del') {\n        return html`<div class=\"container\"><div><div class=\"wrap\">${this.renderLeftColumn()}</div></div></div>`\n      }\n    } else if (this.diff) {\n      return html`<div class=\"editor-container\"></div>`\n    }\n  }\n\n  renderLeftColumn () {\n    if (this.diff.change === 'del' || this.diff.change === 'mod') {\n      return this.renderFileContent(beaker.hyperdrive.drive(this.targetOrigin), this.diff.targetPath, this.diff.targetMountKey)\n    }\n    return ''\n  }\n\n  renderRightColumn () {\n    if (this.diff.change === 'add' || this.diff.change === 'mod') {\n      return this.renderFileContent(beaker.hyperdrive.drive(this.baseOrigin), this.diff.basePath, this.diff.baseMountKey)\n    }\n    return ''\n  }\n\n  renderFileContent (drive, path, mountKey) {\n    if (this.diff.type === 'mount') {\n      return html`\n        <span class=\"fas fa-fw fa-external-link-square-alt\"></span>\n        Mount to <a href=\"hyper://${mountKey}\" target=\"_blank\">${toNiceDomain(mountKey)}</a>\n      `\n    }\n    if (this.diff.type === 'dir') return html`<span class=\"fas fa-fw fa-folder\"></span> Directory`\n    if (/\\.(png|jpe?g|gif)$/.test(path)) {\n      return html`<img src=${drive.url + path}>`\n    }\n    if (/\\.(mp4|webm|mov)$/.test(path)) {\n      return html`<video controls><source src=${drive.url + path}></video>`\n    }\n    if (/\\.(mp3|ogg)$/.test(path)) {\n      return html`<audio controls><source src=${drive.url + path}></audio>`\n    }\n    return html`<div class=\"unknown\">Unknown binary format</div>`\n  }\n\n  async updated () {\n    var editorEl = this.querySelector('.editor-container')\n    if (!editorEl) return\n    var [baseContent, targetContent] = await Promise.all([\n      this.diff.change === 'del' || this.diff.change === 'mod' ? (beaker.hyperdrive.drive(this.targetOrigin)).readFile(this.diff.targetPath).catch(e => '') : '',\n      this.diff.change === 'add' || this.diff.change === 'mod' ? (beaker.hyperdrive.drive(this.baseOrigin)).readFile(this.diff.basePath).catch(e => '') : '',\n    ])\n    createDiffEditor(editorEl, baseContent, targetContent)\n  }\n\n  onClickMerge (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    emit(this, 'merge', {detail: {diff: this.diff}, bubbles: true})\n  }\n}\n\ncustomElements.define('compare-app', CompareApp)\ncustomElements.define('compare-diff-item', CompareDiffItem)\ncustomElements.define('compare-diff-item-content', CompareDiffItemContent)\n\nfunction relativePath (basePath, fullPath) {\n  if (fullPath.startsWith(basePath)) {\n    return fullPath.slice(basePath.length)\n  }\n  return fullPath\n}\n\nvar diffEditor\nasync function createDiffEditor (el, baseContent, targetContent) {\n  if (diffEditor) diffEditor.dispose()\n  var opts = {\n    folding: false,\n    renderLineHighlight: 'all',\n    lineNumbersMinChars: 4,\n    automaticLayout: true,\n    fixedOverflowWidgets: true,\n    roundedSelection: false,\n    minimap: {enabled: false},\n    renderSideBySide: false\n  }\n  diffEditor = monaco.editor.createDiffEditor(el, opts)\n  diffEditor.setModel({\n    original: monaco.editor.createModel(baseContent, 'text/plain'),\n    modified: monaco.editor.createModel(targetContent, 'text/plain')\n  })\n}"
  },
  {
    "path": "app/userland/drive-view/index.js",
    "content": "import { LitElement, html, css } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport bytes from 'beaker://app-stdlib/vendor/bytes/index.js'\n\nclass DriveView extends LitElement {\n  static get styles () {\n    return css`\n    :host {\n      --sans-serif: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      --monospace: Consolas, 'Lucida Console', Monaco, monospace;\n      display: block;\n      max-width: 800px;\n      margin: 0 auto;\n      padding: 0 30px;\n      min-height: calc(100vh - 20px);\n      font-family: var(--sans-serif);\n    }\n    a {\n      text-decoration: none;\n      color: #2864dc;\n    }\n    a:hover {\n      text-decoration: underline;\n    }\n    hr {\n      border: 0;\n      border-top: 1px solid #dde;\n    }\n    header {\n      padding: 20px 0 20px;\n    }\n    header h1,\n    header p {\n      margin: 0 0 10px;\n      line-height: 1;\n    }\n    header h1 {\n      letter-spacing: 0.75px;\n    }\n    header p {\n      font-size: 16px;\n      letter-spacing: 0.25px;\n      color: #556;\n    }\n    header img {\n      object-fit: cover;\n      border-radius: 4px;\n      height: 25px;\n      width: 26px;\n      position: relative;\n      top: 1px;\n    }\n    main h4 {\n      font-family: var(--monospace);\n      margin: 0;\n      font-size: 13px;\n      letter-spacing: 0.75px;\n      background: #f3f3f8;\n      border-radius: 4px;\n      padding: 4px 8px;\n    }\n    .entries {\n      margin: 20px 0;\n      font-size: 14px;\n      letter-spacing: 0.75px;\n    }\n    .entries > div {\n      display: flex;\n      justify-content: space-between;\n      line-height: 30px;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n    .entries > div:hover {\n      background: #fafafd;\n    }\n    .entries .size {\n      color: #556;\n    }\n    .entries .fa-fw {\n      color: #556;\n    }\n    .prompt {\n      margin: 30px 0;\n      font-size: 14px;\n      letter-spacing: 0.5px;\n      padding: 20px 10px;\n      background: #fff;\n      border-top: 1px solid #dde;\n      border-radius: 0;\n      color: #778;\n    }\n    `\n  }\n\n  constructor () {\n    super()\n    this.drive = beaker.hyperdrive.drive(location)\n    this.info = undefined\n    this.entries = []\n    this.load()\n  }\n\n  async load () {\n    this.info = await this.drive.getInfo()\n    var entries = await this.drive.readdir(location.pathname, {includeStats: true})\n    entries.sort((a, b) => {\n      return a.name.localeCompare(b.name)\n    })\n    this.directories = entries.filter(entry => entry.stat.isDirectory())\n    this.files = entries.filter(entry => !entry.stat.isDirectory())\n    this.requestUpdate()\n  }\n\n  render () {\n    if (!this.info) return html``\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      <header>\n        <h1>\n          <img src=\"/thumb\" @error=${e => {e.currentTarget.style.display = 'none'}}>\n          ${this.info.title}\n        </h1>\n        <p>${this.info.description || ''}</p>\n      </header>\n      <main>\n        <h4>${location.pathname}</h4>\n        <div class=\"entries\">\n          ${location.pathname !== '/' ? html`\n            <div>\n              <a href=\"..\" title=\"Go up a directory\"><span class=\"fa-fw fas fa-level-up-alt\"></span> ..</a>\n            </div>\n          ` : ''}\n          ${repeat(this.directories, entry => this.renderEntry(entry))}\n          ${repeat(this.files, entry => this.renderEntry(entry))}\n        </div>\n        ${this.info.writable ? html`\n          <div class=\"prompt\">\n            Create an <a @click=${e => this.onCreateIndex(e, 'md')} href=\"#\">index.md</a>\n            or <a @click=${e => this.onCreateIndex(e, 'html')} href=\"#\">index.html</a> in this directory.\n          </div>\n        ` : ''}\n      </main>\n    `\n  }\n\n  renderEntry (entry) {\n    if (entry.stat.mount && entry.stat.mount.key) {\n      return html`\n        <div>\n          <a href=\"hyper://${entry.stat.mount.key}/\" title=${entry.name}>\n            <span class=\"fa-fw fas fa-external-link-square-alt\"></span>\n            ${entry.name}\n          </a>\n        </div>\n      `\n    }\n    var icon = `far fa-${entry.stat.isDirectory() ? 'folder' : 'file-alt'}`\n    var href = `./${entry.name}${entry.stat.isDirectory() ? '/' : ''}`\n    if (entry.name.endsWith('.goto') && entry.stat.metadata.href) {\n      icon = 'fas fa-link'\n      href = entry.stat.metadata.href\n    }\n    return html`\n      <div>\n        <a href=${href} title=${entry.name}>\n          <span class=\"fa-fw ${icon}\"></span>\n          ${entry.name}\n        </a>\n        ${entry.stat.size ? html`\n          <span class=\"size\">${bytes(entry.stat.size)}</span>\n        ` : ''}\n      </div>\n    `\n  }\n\n  async onClickEditProperties (e) {\n    e.preventDefault()\n    await beaker.shell.drivePropertiesDialog(location.origin)\n    this.load()\n  }\n\n  async onCreateIndex (e, ext) {\n    e.preventDefault()\n    var title = location.pathname === '/' ? this.info.title : location.pathname.split('/').filter(Boolean).pop()\n    if (ext === 'md') {\n      await this.drive.writeFile(location.pathname + 'index.md', `# ${title}`)\n    } else {\n      await this.drive.writeFile(location.pathname + 'index.html', `<!doctype html>\n<html>\n  <head>\n    <title>${title}</title>\n  </head>\n  <body>\n  </body>\n</html>`)\n    }\n    window.location = `${location.origin}${location.pathname}index.${ext}`\n  }\n}\n\ncustomElements.define('drive-view', DriveView)\ndocument.body.append(new DriveView())"
  },
  {
    "path": "app/userland/editor/css/app.css",
    "content": "@import \"../../app-stdlib/css/buttons2.css\";\n@import \"./toolbar.css\";\n@import \"../../app-stdlib/css/tooltip.css\";\n\neditor-app {\n  display: block;\n  position: relative;\n  background: var(--background);\n  color: var(--default);\n  user-select: none;\n  height: 100vh;\n  overflow: hidden;\n}\n\neditor-app a,\neditor-app button {\n  outline: 0;\n}\n\neditor-app .empty {\n  height: 100vh;\n  background: #222;\n  font-style: italic;\n  color: #eee7;\n  padding: 10px 16px;\n}\n\neditor-app .empty a {\n  cursor: pointer;\n  text-decoration: underline;\n}\n\neditor-app .empty .binary-render > * {\n  margin: 10px 0;\n  max-width: 100%;\n  max-height: 100%;\n}\n\neditor-app .divider {\n  border-left: 1px solid rgba(255, 255, 255, .4);\n  height: 21px;\n}\n\neditor-app files-explorer {\n  position: absolute;\n  left: 0;\n  top: 26px;\n  bottom: 0;\n  width: 200px;\n  z-index: 1;\n  background: var(--background);\n}\n\neditor-app.files-open #monaco-editor,\neditor-app.files-open .empty {\n  margin-left: 200px;\n}\n\neditor-app #monaco-editor {\n  height: 100%;\n}\n\neditor-app #loading-notice {\n  position: fixed;\n  right: 10px;\n  top: 40px;\n  display: inline-block;\n  background: #222;\n  color: #fff;\n  padding: 7px 16px;\n  border: 1px solid #fff4;\n  border-radius: 8px;\n}"
  },
  {
    "path": "app/userland/editor/css/com/files-explorer.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttons2css from '../../../app-stdlib/css/buttons2.css.js'\nimport spinnercss from '../../../app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${buttons2css}\n${spinnercss}\n\n:host {\n  display: block;\n  overflow-y: auto;\n}\n\n.empty {\n  font-style: italic;\n  color: #eee7;\n  padding: 10px 16px;\n}\n\n.path {\n  position: relative;\n  padding: 0 4px;\n  font-size: 12px;\n  color: #bbb;\n  overflow-x: auto;\n  white-space: nowrap;\n  border: 1px solid #555;\n  background: #444;\n}\n\n.path a {\n  display: block;\n  padding: 4px;\n}\n\n.path a:hover {\n  cursor: default;\n}\n\n.path .fa-angle-right {\n  padding: 2px;\n}\n\n.path .spinner {\n  position: absolute;\n  width: 10px;\n  height: 10px;\n  top: 4px;\n  right: 5px;\n}\n\n.listing {\n  height: calc(100% - 25px); /* subtract 25px to account for the .path space */\n}\n\n.listing .item {\n  display: flex;\n  align-items: center;\n  padding: 4px 8px;\n  cursor: pointer;\n}\n\n.listing .item:hover {\n  background: #445;\n}\n\n.listing .item.selected {\n  background: var(--blue);\n  color: #fff;\n}\n\n.listing .item.new-file {\n  opacity: 0.5;\n}\n\n.listing .item .icon {\n  padding-right: 6px;\n}\n\n.listing .item .name {\n  flex: 1;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.listing .item .size {\n  color: rgba(255, 255, 255,.5);\n}\n\n@media (max-width: 600px) {\n  .toolbar .btn-label {\n    display: none;\n  }\n}\n\n@media (min-width: 601px) {\n  .tooltip-onsmall[data-tooltip]:hover:after,\n  .tooltip-onsmall[data-tooltip]:hover:before {\n    display: none;\n  }\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/editor/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n  --default: #eee;\n  --background: #333;\n\n  font-size: 12px;\n  background: var(--background);\n}\n"
  },
  {
    "path": "app/userland/editor/css/toolbar.css",
    "content": "editor-app .toolbar {\n  display: flex;\n  align-items: center;\n  height: 26px;\n  background: var(--background);\n  color: var(--default);\n  border-bottom: 1px solid #444;\n}\n\neditor-app .toolbar > :first-child {\n  margin-left: 5px;\n}\n\neditor-app .toolbar > :last-child {\n  margin-right: 5px;\n}\n\neditor-app .toolbar .divider {\n  margin: 0 5px;\n}\n\neditor-app .toolbar button {\n  padding: 0 8px;\n  height: 26px;\n  line-height: 24px;\n  font-size: 11px;\n  color: inherit;\n  border-radius: 0;\n}\n\neditor-app .toolbar button:not([disabled]):hover {\n  background: rgba(255, 255, 255, 0.1);\n}\n\neditor-app .toolbar button[disabled] {\n  opacity: 0.5;\n}\n\neditor-app .toolbar button .fa-fw {\n  font-size: 10px;\n}\n\neditor-app .toolbar button.primary {\n  background: rgb(82, 137, 247);\n  border-radius: 18px;\n  color: #fff;\n  height: 19px;\n  line-height: 17px;\n  border: 1px solid rgb(11, 27, 58);\n  font-size: 11px;\n  margin: 0 5px;\n}\n\neditor-app .toolbar .text {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  font-size: 11px;\n  margin: 0 8px;\n}\n\neditor-app .toolbar .spacer {\n  flex: 1;\n}\n\n@media (max-width: 600px) {\n  editor-app .toolbar .btn-label {\n    display: none;\n  }\n}\n\n@media (min-width: 601px) {\n  editor-app .tooltip-onsmall[data-tooltip]:hover:after,\n  editor-app .tooltip-onsmall[data-tooltip]:hover:before {\n    display: none;\n  }\n}\n"
  },
  {
    "path": "app/userland/editor/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Editor</title>\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n    <link rel=\"stylesheet\" href=\"/css/app.css\">\n    <link rel=\"shortcut icon\" href=\"asset:favicon:beaker://editor\">\n  </head>\n  <body>\n    <editor-app></editor-app>\n    <script src=\"beaker://assets/vs/loader.js\"></script>\n    <script type=\"module\" src=\"/js/main.build.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/editor/js/com/files-explorer.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { classMap } from '../../../app-stdlib/vendor/lit-element/lit-html/directives/class-map.js'\nimport { repeat } from '../../../app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { joinPath } from '../../../app-stdlib/js/strings.js'\nimport { emit } from '../../../app-stdlib/js/dom.js'\nimport sidebarFilesViewCSS from '../../css/com/files-explorer.css.js'\n\nclass FilesExplorer extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String, reflect: true},\n      openFilePath: {type: String, attribute: 'open-file-path'},\n      isLoading: {type: Boolean},\n      readOnly: {type: Boolean},\n      items: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [sidebarFilesViewCSS]\n  }\n\n  get isDrive () {\n    return this.url && this.url.startsWith('hyper:')\n  }\n\n  get drive () {\n    return beaker.hyperdrive.drive(this.url)\n  }\n\n  get origin () {\n    let urlp = new URL(this.url)\n    return urlp.origin\n  }\n\n  get viewedDriveVersion () {\n    let urlp = new URL(this.url)\n    let parts = urlp.hostname.split('+')\n    if (parts.length === 2) return parts[1]\n    return 'latest'\n  }\n\n  get pathname () {\n    let urlp = new URL(this.url)\n    return urlp.pathname\n  }\n\n  constructor () {\n    super()\n    this.url = ''\n    this.openFilePath = undefined\n    this.isLoading = true\n    this.readOnly = true\n    this.folderPath = ''\n    this.currentFolder = null\n    this.items = []\n    this.watcher = undefined\n    this.load()\n  }\n\n  attributeChangedCallback (name, oldval, newval) {\n    super.attributeChangedCallback(name, oldval, newval)\n    if (name === 'url') {\n      this.load()\n    }\n  }\n\n  async load () {\n    this.isLoading = true\n\n    if (this.watcher && this.watchingDriveUrl !== this.origin) {\n      this.watcher.close()\n      this.watcher = undefined\n    }\n\n    var items = []\n    if (this.isDrive) {\n      let drive = this.drive\n\n      let info = await drive.getInfo()\n      this.readOnly = !info.writable\n\n      let st\n      let folderPath = this.pathname\n      while (!st && folderPath !== '/') {\n        try { st = await drive.stat(folderPath) }\n        catch (e) { /* ignore */ }\n        if (!st || !st.isDirectory()) {\n          folderPath = '/' + (folderPath.split('/').slice(0, -1).filter(Boolean).join('/'))\n        }\n      }\n      this.folderPath = folderPath\n\n      var parentDrive = await this.getParentDriveInfo()\n      items = await drive.readdir(folderPath, {includeStats: true})\n      items.forEach(item => {\n        item.path = joinPath(this.folderPath, item.name)\n        item.url = joinPath(drive.url, item.path)\n        item.shareUrl = joinPath(parentDrive.info.url, item.path.replace(parentDrive.path, ''))\n      })\n      items.sort((a, b) => {\n        if (a.stat.isDirectory() && !b.stat.isDirectory()) return -1\n        if (!a.stat.isDirectory() && b.stat.isDirectory()) return 1\n        return a.name.localeCompare(b.name)\n      })\n\n      this.currentFolder = await drive.stat(folderPath)\n      this.currentFolder.path = folderPath\n      this.currentFolder.name = folderPath.split('/').pop() || '/'\n\n      if (!this.watcher) {\n        let isFirstWatchEvent = true\n        this.watchingDriveUrl = this.origin\n        this.watcher = drive.watch(e => {\n          // HACK\n          // for some reason, the watchstream is firing 'changed' immediately\n          // ignore the first emit\n          // -prf\n          if (isFirstWatchEvent) {\n            isFirstWatchEvent = false\n            return\n          }\n          this.load()\n        })\n      }\n    }\n\n    this.items = items\n    this.isLoading = false\n  }\n\n  async getParentDriveInfo () {\n    var drive = this.drive\n    var pathParts = this.folderPath.split('/').filter(Boolean)\n    while (pathParts.length) {\n      let path = '/' + pathParts.join('/')\n      let stat = await drive.stat(path).catch(e => undefined)\n      if (stat.mount) {\n        return {\n          path,\n          info: await beaker.hyperdrive.drive(stat.mount.key).getInfo()\n        }\n      }\n      pathParts.pop()\n    }\n    return {path: '/', info: await drive.getInfo()}\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.items.length && this.isLoading) {\n      return html`\n        <div class=\"toolbar\">\n          <div>Loading...</div>\n        </div>\n      `\n    }\n    if (!this.isDrive) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"empty\"><span class=\"fas fa-fw fa-info-circle\"></span> This site doesn't support file listings</div>\n      `\n    }\n    const icon = item => {\n      if (item.stat.mount) return html`<span class=\"fas fa-fw fa-external-link-square-alt\"></span>`\n      if (item.stat.isDirectory()) return html`<span class=\"fa-fw fas fa-folder\"></span>`\n      return html`<span class=\"fa-fw far fa-file\"></span>`\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"path\">\n        <a>\n          <span class=\"fa-fw ${this.currentFolder.mount ? 'fas fa-external-link-square-alt' : 'far fa-folder'}\"></span>\n          ${this.currentFolder.name} ${this.currentFolder.mount ? html`(<code>${this.currentFolder.mount.key.slice(0, 4)}..${this.currentFolder.mount.key.slice(-2)}</code>)` : ''}\n        </a>\n        ${this.isLoading ? html`<span class=\"spinner\"></span>` : ''}\n      </div>\n      <div class=\"listing\" @contextmenu=${this.onContextmenuListing}>\n        ${this.folderPath !== '/' ? html`\n          <div class=\"item\" @click=${this.onClickUpdog}>\n            <span class=\"icon\"><span class=\"fa-fw fas fa-level-up-alt\"></span></span>\n            <span class=\"name\">..</span>\n          </div>\n        ` : ''}\n        ${repeat(this.items, item => html`\n          <div class=${classMap({item: true, selected: item.path === this.openFilePath})}\n            @click=${e => this.onClickItem(e, item)}\n            @contextmenu=${e => this.onContextmenuItem(e, item)}\n          >\n            <span class=\"icon\">${icon(item)}</span>\n            <span class=\"name\">\n              ${item.name}\n            </span>\n          </div>\n        `)}\n        ${!this.readOnly ? html`\n          <div class=${classMap({item: true, 'new-file': true})} @click=${this.onClickNewFile}>\n            <span class=\"icon\"><span class=\"fas fa-fw fa-plus\"></span></span>\n            <span class=\"name\">New file</span>\n          </div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onContextmenuListing (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var folderItemUrls = this.items.map(item => item.url)\n    emit(this, 'show-menu', {detail: {x: e.clientX, y: e.clientY, folderPath: this.folderPath, folderItemUrls}})\n  }\n\n  onContextmenuItem (e, item) {\n    e.preventDefault()\n    e.stopPropagation()\n    emit(this, 'show-menu', {detail: {x: e.clientX, y: e.clientY, folderPath: this.folderPath, item}})\n  }\n\n  onClickUpdog (e) {\n    var upPath = this.folderPath.split('/').filter(Boolean).slice(0, -1).join('/')\n    this.url = joinPath(this.origin, upPath)\n  }\n\n  onClickItem (e, item) {\n    if (item.stat.isFile()) {\n      // open the file\n      let url = joinPath(this.origin, this.folderPath, item.name)\n      emit(this, 'open', {bubbles: true, composed: true, detail: {url}})\n    } else {\n      // navigate in-UI to the folder\n      this.url = joinPath(this.origin, this.folderPath, item.name)\n    }\n  }\n\n  onClickNewFile (e, item) {\n    e.preventDefault()\n    e.stopPropagation()\n    emit(this, 'new-file', {detail: {folderPath: this.folderPath}})\n  }\n}\n\ncustomElements.define('files-explorer', FilesExplorer)\n"
  },
  {
    "path": "app/userland/editor/js/com/resize-image-popup.js",
    "content": "import { html, css } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { BasePopup } from '../../../app-stdlib/js/com/popups/base.js'\nimport popupsCSS from '../../../app-stdlib/css/com/popups.css.js'\n\n// exported api\n// =\n\nexport class ResizeImagePopup extends BasePopup {\n  constructor (thumbUrl) {\n    super()\n    this.thumbUrl = thumbUrl\n    this.width = 256\n    this.height = 256\n    this.maintainAspectRatio = true\n    this.loadImg(thumbUrl)\n  }\n\n  get shouldCloseOnOuterClick () {\n    return false\n  }\n\n  // management\n  //\n\n  static async create (thumbUrl) {\n    return BasePopup.create(ResizeImagePopup, thumbUrl)\n  }\n\n  static destroy () {\n    return BasePopup.destroy('beaker-edit-thumb')\n  }\n\n  // rendering\n  // =\n\n  renderTitle () {\n    return `Resize Photo`\n  }\n\n  renderBody () {\n    return html`\n      <form @submit=${this.onSubmit}>\n        <div class=\"controls\">\n          <div class=\"canvas-container\">\n            <canvas id=\"the-canvas\"></canvas>\n          </div>\n          <table>\n            <tr>\n              <td><label for=\"width\">Width</label></td>\n              <td><input type=\"text\" id=\"width\" name=\"width\" value=${this.width} @keyup=${this.onChangeWidth}>px</td>\n            </tr>\n            <tr>\n              <td><label for=\"height\">Height</label></td>\n              <td><input type=\"text\" id=\"height\" name=\"height\" value=${this.height} @keyup=${this.onChangeHeight}>px</td>\n            </tr>\n            <tr>\n              <td></td>\n              <td>\n                <input type=\"checkbox\" id=\"should-maintain\" name=\"should-maintain\" ?checked=${this.maintainAspectRatio} @change=${this.onChangeCrop}>\n                <label for=\"should-maintain\">Maintain Aspect Ratio</label>\n              </td>\n            </tr>\n          </table>\n        </div>\n\n        <div class=\"actions\">\n          <button type=\"button\" class=\"btn\" @click=${this.onReject} tabindex=\"3\">Cancel</button>\n          <button type=\"submit\" class=\"btn primary\" tabindex=\"2\">Save</button>\n        </div>\n      </form>\n    `\n  }\n\n  // canvas handling\n  // =\n\n  async loadImg (url) {\n    var base64buf = await beaker.hyperdrive.readFile(url, 'base64')\n    this.img = document.createElement('img')\n    this.img.src = `data:image/${url.split('.').pop()};base64,${base64buf}`\n    this.img.onload = () => {\n      this.width = this.img.width\n      this.height = this.img.height\n      this.shadowRoot.querySelector('input[name=\"width\"]').value = this.width\n      this.shadowRoot.querySelector('input[name=\"height\"]').value = this.height\n      this.updateCanvas()\n    }\n  }\n\n  updateCanvas () {\n    var canvas = this.shadowRoot.getElementById('the-canvas')\n    if (canvas) {\n      canvas.setAttribute('width', this.width)\n      canvas.setAttribute('height', this.height)\n\n      var ctx = canvas.getContext('2d')\n      ctx.globalCompositeOperation = 'source-over'\n      ctx.fillStyle = '#fff'\n      ctx.fillRect(0, 0, this.width, this.height)\n      ctx.save()\n      ctx.drawImage(this.img, 0, 0, this.width, this.height)\n      ctx.restore()\n    }\n  }\n\n  // events\n  // =\n\n  async onChangeWidth (e) {\n    this.width = Number(e.currentTarget.value)\n    if (this.maintainAspectRatio) {\n      this.height = this.width * this.img.height / this.img.width\n      this.shadowRoot.querySelector('input[name=\"height\"]').value = this.height\n    }\n    await this.requestUpdate()\n    this.updateCanvas()\n  }\n\n  async onChangeHeight (e) {\n    this.height = Number(e.currentTarget.value)\n    if (this.maintainAspectRatio) {\n      this.width = this.height * this.img.width / this.img.height\n      this.shadowRoot.querySelector('input[name=\"width\"]').value = this.width\n    }\n    await this.requestUpdate()\n    this.updateCanvas()\n  }\n\n  async onChangeCrop (e) {\n    this.maintainAspectRatio = !!e.currentTarget.checked\n    this.height = this.width * this.img.height / this.img.width\n    this.shadowRoot.querySelector('input[name=\"height\"]').value = this.height\n    await this.requestUpdate()\n    this.updateCanvas()\n  }\n\n  onSubmit (e) {\n    e.preventDefault()\n    e.stopPropagation()\n\n    var canvas = this.shadowRoot.getElementById('the-canvas')\n    var dataUrl = canvas.toDataURL(this.thumbUrl.endsWith('.png') ? 'image/png' : 'image/jpeg')\n\n    this.dispatchEvent(new CustomEvent('resolve', {detail: dataUrl}))\n  }\n}\nResizeImagePopup.styles = [popupsCSS, css`\n.canvas-container {\n  display: flex;\n  align-items: center;\n  width: 334px;\n  height: 300px;\n  padding: 10px;\n  overflow: auto;\n  background: #fafafa;\n}\n\ncanvas {\n  display: block;\n  margin: 0 auto;\n}\n\n.controls {\n  color: #333;\n}\n\ntable tr > td:first-child {\n  text-align: right;\n  padding-right: 4px;\n}\n\ntable label {\n  display: inline !important;\n  width: auto !important;\n}\n\ntable input[type=\"text\"] {\n  display: inline;\n  width: 50px;\n  margin: 0 5px 5px 0;\n  height: 23px;\n  text-align: right;\n}\n\ntable input[type=\"checkbox\"] {\n  display: inline;\n  width: auto;\n  height: auto;\n  margin: 0 5px 2px 0;\n}\n\n.popup-inner {\n  width: 360px;\n}\n\n.popup-inner .actions {\n  justify-content: space-between;\n}\n\ninput[type=\"file\"] {\n  display: none;\n}\n`]\n\ncustomElements.define('beaker-resize-image', ResizeImagePopup)"
  },
  {
    "path": "app/userland/editor/js/main.js",
    "content": "/* globals monaco */\n\nimport { LitElement, html } from '../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from '../../app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { isFilenameBinary } from '../../app-stdlib/js/is-ext-binary.js'\nimport lock from '../../../lib/lock.js'\nimport datServeResolvePath from '@beaker/dat-serve-resolve-path'\nimport { joinPath } from '../../app-stdlib/js/strings.js'\nimport * as contextMenu from '../../app-stdlib/js/com/context-menu.js'\nimport { writeToClipboard } from '../../app-stdlib/js/clipboard.js'\nimport * as toast from '../../app-stdlib/js/com/toast.js'\nimport './com/files-explorer.js'\nimport { ResizeImagePopup } from './com/resize-image-popup.js'\n\nclass EditorApp extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String},\n      isUnloaded: {type: Boolean},\n      isLoading: {type: Boolean},\n      showLoadingNotice: {type: Boolean},\n      isFilesOpen: {type: Boolean},\n      readOnly: {type: Boolean},\n      dne: {type: Boolean},\n      isBinary: {type: Boolean}\n    }\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  get drive () {\n    return beaker.hyperdrive.drive(this.url)\n  }\n\n  get origin () {\n    let urlp = new URL(this.url)\n    return urlp.origin + '/'\n  }\n\n  get viewedDatVersion () {\n    let urlp = new URL(this.url)\n    let parts = urlp.hostname.split('+')\n    if (parts.length === 2) return parts[1]\n    return 'latest'\n  }\n\n  get pathname () {\n    let urlp = new URL(this.url)\n    return urlp.pathname\n  }\n\n  get resolvedFilename () {\n    return (this.resolvedPath || '').split('/').pop()\n  }\n\n  get resolvedUrl () {\n    return this.origin + this.resolvedPath\n  }\n\n  get resolvedDirname () {\n    return '/' + (this.resolvedPath || '').split('/').filter(Boolean).slice(0, -1).join('/')\n  }\n\n  get hasFileExt () {\n    var path = this.pathname\n    return path.split('/').pop().includes('.')\n  }\n\n  get isPrivate () {\n    return this.url.startsWith('hyper://private/')\n  }\n\n  get hasChanges () {\n    var model = this.editor.getModel(this.url)\n    return (\n      typeof this.lastSavedVersionId !== 'undefined'\n      && !!model\n      && this.lastSavedVersionId !== model.getAlternativeVersionId()\n    )\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n    this.editorEl = undefined\n    this.editor = undefined // monaco instance\n    this.attachedPane = undefined\n    this.url = ''\n    this.isUnloaded = true\n    this.stat = undefined\n    this.isLoading = false\n    this.showLoadingNotice = false\n    this.isFilesOpen = true\n    this.readOnly = true\n    this.lastSavedVersionId = undefined\n    this.dne = false\n    this.isBinary = false\n    this.resolvedPath = ''\n    this.setFocusOnLoad = false\n\n    beaker.panes.addEventListener('pane-attached', e => {\n      this.attachedPane = beaker.panes.getAttachedPane()\n      this.requestUpdate()\n      if (this.url !== this.attachedPane.url) {\n        this.load(this.attachedPane.url)\n      }\n    })\n    beaker.panes.addEventListener('pane-detached', e => {\n      this.attachedPane = undefined\n      this.requestUpdate()\n    })\n    beaker.panes.addEventListener('pane-navigated', e => {\n      if (!this.url || this.dne) {\n        this.load(e.detail.url)\n      }\n    })\n\n    ;(async () => {\n      this.attachedPane = await beaker.panes.attachToLastActivePane()\n      if (this.attachedPane) {\n        this.load(this.attachedPane.url)\n      } else {\n        let ctx = (new URLSearchParams(location.search)).get('url')\n        if (ctx) this.load(ctx)\n      }\n    })()\n  }\n\n  teardown () {\n    if (this.editor) {\n      this.editor.dispose()\n    }\n  }\n\n  getContext () {\n    return this.url\n  }\n\n  setFocus () {\n    if (this.editor) {\n      this.editor.focus()\n    } else {\n      this.setFocusOnLoad = true\n    }\n  }\n\n  ensureEditorEl () {\n    if (!this.editorEl) {\n      this.editorEl = document.createElement('div')\n      this.editorEl.id = 'monaco-editor'\n      this.editorEl.addEventListener('contextmenu', async e => {\n        var choice = await beaker.browser.showContextMenu([\n          {id: 'cut', label: 'Cut'},\n          {id: 'copy', label: 'Copy'},\n          {id: 'paste', label: 'Paste'},\n          {type: 'separator'},\n          {id: 'selectAll', label: 'Select All'},\n          {type: 'separator'},\n          {id: 'undo', label: 'Undo'},\n          {id: 'redo', label: 'Redo'},\n        ])\n        switch (choice) {\n          case 'cut':\n          case 'copy':\n          case 'paste':\n            this.editor.focus()\n            document.execCommand(choice)\n            break\n          case 'selectAll':\n            this.editor.setSelection(this.editor.getModel().getFullModelRange())\n            break\n          case 'undo':\n          case 'redo':\n            this.editor.trigger('contextmenu', choice)\n            break\n        }\n      })\n    }\n    this.append(this.editorEl)\n  }\n\n  async createEditor () {\n    this.ensureEditorEl()\n    return new Promise((resolve, reject) => {\n      window.require.config({ baseUrl: 'beaker://assets/' })\n      window.require(['vs/editor/editor.main'], () => {\n        // update monaco to syntax-highlight <script type=\"module\">\n        var jsLang = monaco.languages.getLanguages().find(lang => lang.id === 'javascript')\n        if (jsLang) {\n          jsLang.mimetypes.push('module')\n          monaco.languages.register(jsLang)\n        }\n\n\n        // we have load monaco outside of the shadow dom\n        monaco.editor.defineTheme('custom-dark', {\n          base: 'vs-dark',\n          inherit: true,\n          rules: [{ background: '222222' }],\n          colors: {\n            'editor.background': '#222222'\n          }\n        })\n        let opts = {\n          automaticLayout: true,\n          contextmenu: false,\n          fixedOverflowWidgets: true,\n          folding: false,\n          lineNumbersMinChars: 4,\n          links: false,\n          minimap: {enabled: false},\n          renderLineHighlight: 'all',\n          roundedSelection: false,\n          theme: 'custom-dark',\n          value: ''\n        }\n        this.editor = monaco.editor.create(this.editorEl, opts)\n        this.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S, function () {\n          document.querySelector('editor-app').onClickSave()\n        })\n        resolve()\n      })\n    })\n  }\n\n  resetEditor () {\n    for (let model of monaco.editor.getModels()) {\n      model.dispose()\n    }\n\n    this.editor.setValue('')\n    this.readOnly = true\n    this.dne = false\n    this.isBinary = false\n    this.resolvedPath = ''\n    this.showLoadingNotice = true\n  }\n\n  async load (url, forceLoad = false) {\n    var release = await lock('editor-load')\n    try {\n      this.isUnloaded = false\n      this.isLoading = true\n      if (!this.editor) {\n        await this.createEditor()\n      }\n      if (this.editor.hasTextFocus()) {\n        this.setFocusOnLoad = true\n      }\n      if (!forceLoad && (this.url === url || !url)) {\n        this.isLoading = false\n        setTimeout(() => this.editor.focus(), 1)\n        this.setFocusOnLoad = false\n        return\n      }\n      if (this.hasChanges) {\n        if (!confirm('You have unsaved changes. Are you sure you want to navigate away?')) {\n          this.isLoading = false\n          return\n        }\n      }\n      this.url = url\n      history.replaceState({}, '', `/?url=${url}`)\n\n      this.resetEditor()\n      console.log('Loading', url)\n\n      this.stat = undefined\n      var body = ''\n      try {\n        if (url.startsWith('hyper:')) {\n          body = await this.loadDrive(url)\n          this.isFilesOpen = !body\n        } else if (url.startsWith('http:') || url.startsWith('https:')) {\n          this.isFilesOpen = false\n          body = await beaker.browser.fetchBody(url)\n        } else {\n          this.isFilesOpen = false\n          let res = await fetch(url)\n          body = await res.text()\n        }\n      } catch (e) {\n        this.dne = true\n        body = ''\n      }\n\n      if (!this.dne && !this.isBinary) {\n        // create a model\n        let urlp2 = new URL(url)\n        urlp2.pathname = this.resolvedPath || this.pathname\n        let model = monaco.editor.createModel(body, null, url ? monaco.Uri.parse(urlp2.toString()) : undefined)\n\n        // override the model syntax highlighting when the URL doesnt give enough info (no extension)\n        if (body && model.getModeId() === 'plaintext') {\n          let type = await beaker.browser.getResourceContentType(url)\n          if (type) {\n            if (type.includes('text/html')) {\n              monaco.editor.setModelLanguage(model, 'html')\n            } else if (type.includes('text/markdown')) {\n              monaco.editor.setModelLanguage(model, 'markdown')\n            } else if (type.includes('text/css')) {\n              monaco.editor.setModelLanguage(model, 'css')\n            } else if (type.includes('text/javascript') || type.includes('application/javascript')) {\n              monaco.editor.setModelLanguage(model, 'javascript')\n            }\n          }\n        }\n\n        this.editor.updateOptions({\n          // only enable autocomplete for html/css/js\n          quickSuggestions: ['html', 'css', 'javascript'].includes(model.getModeId()),\n          wordBasedSuggestions: false,\n          wordWrap: 'on',\n          readOnly: this.readOnly\n        })\n        model.updateOptions({tabSize: 2})\n        this.editor.setModel(model)\n        this.lastSavedVersionId = model.getAlternativeVersionId()\n\n        model.onDidChangeContent(() => {\n          this.setSaveBtnState()\n        })\n      }\n\n      this.isLoading = false\n      this.showLoadingNotice = false\n      this.requestUpdate()\n\n      if (this.setFocusOnLoad) {\n        setTimeout(() => this.editor.focus(), 1)\n        this.setFocusOnLoad = false\n      }\n    } finally {\n      release()\n    }\n  }\n\n  async loadDrive (url) {\n    var body\n\n    // load drive meta\n    let drive = beaker.hyperdrive.drive(url)\n    let [info, manifest] = await Promise.all([\n      drive.getInfo(),\n      drive.readFile('/index.json', 'utf8').catch(e => '')\n    ])\n    try {\n      manifest = JSON.parse(manifest)\n    } catch (e) {\n      console.debug('Failed to parse manifest', {e, manifest})\n      manifest = null\n    }\n    console.log(info)\n    this.readOnly = !info.writable\n\n    // readonly if viewing historic version\n    if (info.writable) {\n      let v = this.viewedDatVersion\n      if (v == +v) { // viewing a numeric version? (in the history)\n        this.readOnly = true\n      }\n    }\n\n    // determine the entry to load\n    var entry = await datServeResolvePath(drive, manifest, url, '*/*')\n    this.resolvedPath = entry ? entry.path : this.pathname\n    var stat = await drive.stat(this.resolvedPath)\n    if (!stat.isFile()) throw new Error('Not a file')\n    this.stat = stat\n\n    // check for mount information\n    this.mountInfo = undefined\n    {\n      let pathParts = this.resolvedPath.split('/').filter(Boolean)\n      let realPathParts = [pathParts.pop()]\n      while (pathParts.length) {\n        let path = '/' + pathParts.join('/')\n        let stat = await drive.stat(path).catch(e => undefined)\n        if (stat && stat.mount) {\n          this.mountInfo = await beaker.hyperdrive.drive(stat.mount.key).getInfo()\n          this.mountInfo.resolvedPath = '/' + realPathParts.join('/')\n          break\n        }\n        realPathParts.unshift(pathParts.pop())\n      }\n    }\n\n    // figure out if it's binary\n    {\n      let filename = this.resolvedPath.split('/').pop()\n      if (filename.includes('.') && isFilenameBinary(filename)) {\n        this.isBinary = true\n      } else if (filename.endsWith('.goto')) {\n        this.isBinary = true\n      }\n    }\n\n    // fetch the file\n    if (!this.isBinary) {\n      try {\n        if (!this.resolvedPath) throw new Error('dne')\n        body = await drive.readFile(this.resolvedPath, 'utf8')\n      } catch (e) {\n        this.dne = true\n        body = ''\n      }\n    }\n\n    return body\n  }\n\n  loadExplorer () {\n    try {\n      this.querySelector('files-explorer').load()\n    } catch (e) {\n      console.warn(e)\n    }\n  }\n\n  setSaveBtnState () {\n    if (this.readOnly || this.dne || !this.hasChanges) {\n      this.querySelector('#save-btn').setAttribute('disabled', '')\n    } else {\n      this.querySelector('#save-btn').removeAttribute('disabled')\n    }\n  }\n\n  async showMenu (x, y, folderPath, item, folderItemUrls) {\n    var items = []\n    if (item) {\n      items.push({\n        label: 'Open in New Tab',\n        click () {\n          beaker.browser.openUrl(item.url)\n        }\n      })\n      items.push({\n        label: 'Copy Link Address',\n        disabled: !item.shareUrl,\n        click () {\n          writeToClipboard(item.shareUrl)\n          toast.create('Copied to your clipboard')\n        }\n      })\n      if (item.stat.mount && item.stat.mount.key) {\n        items.push({\n          label: 'Copy Mount Target',\n          click () {\n            writeToClipboard(`hyper://${item.stat.mount.key}/`)\n            toast.create('Copied to your clipboard')\n          }\n        })\n      }\n      items.push({\n        label: `Copy ${item.stat.isFile() ? 'file' : 'folder'} path`,\n        click () {\n          writeToClipboard(item.path)\n          toast.create('Copied to your clipboard')\n        }\n      })\n      items.push({type: 'separator'})\n      items.push({\n        label: 'Open in Pane Right',\n        click: () => {\n          beaker.browser.newPane(item.shareUrl, {splitDir: 'vert'})\n        }\n      })\n      items.push({\n        label: 'Open in Pane Below',\n        click: () => {\n          beaker.browser.newPane(item.shareUrl, {splitDir: 'horz'})\n        }\n      })\n      items.push({type: 'separator'})\n      items.push({\n        label: 'Rename',\n        disabled: this.readOnly,\n        click: () => this.onClickRename(item.path)\n      })\n      items.push({\n        label: 'Delete',\n        disabled: this.readOnly,\n        click: () => this.onClickDelete(item.path)\n      })\n      items.push({type: 'separator'})\n      items.push({\n        label: 'Refresh Files',\n        click: () => this.loadExplorer()\n      })\n      items.push({\n        label: 'Export',\n        click: () => this.onClickExportFiles([item.url])\n      })\n    } else {\n      items.push({id: 'builtin:back'})\n      items.push({id: 'builtin:forward'})\n      items.push({id: 'builtin:reload'})\n      items.push({type: 'separator'})\n      items.push({id: 'builtin:split-pane-vert'})\n      items.push({id: 'builtin:split-pane-horz'})\n      items.push({id: 'builtin:move-pane'})\n      items.push({id: 'builtin:close-pane'})\n      items.push({type: 'separator'})\n      items.push({\n        label: 'New Folder',\n        disabled: this.readOnly,\n        click: () => this.onClickNewFolder(folderPath)\n      })\n      items.push({\n        label: 'New File',\n        disabled: this.readOnly,\n        click: () => this.onClickNewFile(folderPath)\n      })\n      items.push({\n        label: 'New Mount',\n        disabled: this.readOnly,\n        click: () => this.onClickNewMount(folderPath)\n      })\n      items.push({type: 'separator'})\n      items.push({\n        label: 'Refresh Files',\n        click: () => this.loadExplorer()\n      })\n      items.push({type: 'separator'})\n      items.push({\n        label: 'Import File(s)',\n        disabled: this.readOnly,\n        click: () => this.onClickImportFiles(folderPath)\n      })\n      items.push({\n        label: 'Import Folder(s)',\n        disabled: this.readOnly,\n        click: () => this.onClickImportFolders(folderPath)\n      })\n      items.push({\n        label: 'Export Files',\n        click: () => this.onClickExportFiles(folderItemUrls)\n      })\n    }\n    items.push({type: 'separator'})\n    items.push({id: 'builtin:inspect-element'})\n\n    var fns = {}\n    for (let i = 0; i < items.length; i++) {\n      if (items[i].id) continue\n      let id = `item=${i}`\n      items[i].id = id\n      fns[id] = items[i].click\n      delete items[i].click\n    }\n\n    var choice = await beaker.browser.showContextMenu(items)\n    if (fns[choice]) fns[choice]()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (this.isFilesOpen) {\n      this.classList.add('files-open')\n    } else {\n      this.classList.remove('files-open')\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${this.renderToolbar()}\n      ${!this.isUnloaded && this.isFilesOpen ? html`\n        <files-explorer\n          url=${this.url}\n          open-file-path=${this.resolvedPath}\n          @open=${this.onOpenFile}\n          @show-menu=${this.onShowMenu}\n          @new-file=${this.onFilesExplorerNewFile}\n        ></files-explorer>\n      ` : ''}\n      ${this.isBinary && this.pathname.endsWith('.goto') ? html`\n        <div class=\"empty\">\n          .goto files store their information in\n          <a href=\"#\" @click=${e => {\n            e.preventDefault()\n            e.stopPropagation()\n            this.querySelector('#file-metadata-btn').click()\n          }}>file metadata</a>.\n        </div>\n      ` : this.isBinary ? html`\n        <div class=\"empty\">\n          ${(/\\.(png|jpe?g)$/.test(this.pathname)) ? html`\n            <button class=\"primary btn\" @click=${this.onClickResizeImage}>Resize Image</button>\n          ` : 'This file is not editable here.'}\n          <div class=\"binary-render\">\n            ${(/\\.(png|jpe?g|gif)$/.test(this.pathname)) ? html`<img src=\"${this.url}?cache_buster=${Date.now()}\">` : ''}\n            ${(/\\.(mp4|webm|mov)$/.test(this.pathname)) ? html`<video controls><source src=\"${this.url}?cache_buster=${Date.now()}\"></video>` : ''}\n            ${(/\\.(mp3|ogg)$/.test(this.pathname)) ? html`<audio controls><source src=\"${this.url}?cache_buster=${Date.now()}\"></audio>` : ''}\n          </div>\n        </div>\n      ` : this.dne ? html`\n        <div class=\"empty\">\n          <a @click=${e => { this.isFilesOpen = true }}>Select a file</a>\n          ${!this.readOnly ? html` or <a @click=${e => { this.onClickNewFile(this.resolvedDirname, this.resolvedFilename) }}>Create a file</a>` : ''}\n        </div>\n      ` : ''}\n      ${this.showLoadingNotice ? html`<div id=\"loading-notice\">Loading...</div>` : ''}\n    `\n  }\n\n  updated (changedProperties) {\n    this.ensureEditorEl()\n    if (changedProperties.has('isFilesOpen')) {\n      if (this.editor) {\n        this.editor.layout()\n      }\n    }\n  }\n\n  renderToolbar () {\n    return html`\n      <div class=\"toolbar\">\n        <button class=\"transparent\" @click=${this.onToggleFilesOpen} ?disabled=${this.isUnloaded}>\n          <span class=\"fas fa-fw fa-columns\"></span>\n        </button>\n        <span class=\"divider\"></span>\n        ${!this.readOnly ? html`\n          <button id=\"save-btn\" title=\"Save\" @click=${this.onClickSave} ?disabled=${this.dne || !this.hasChanges}>\n            <span class=\"fas fa-fw fa-save\"></span> Save\n          </button>\n          <button title=\"Rename\" @click=${e => this.onClickRename(this.resolvedPath)} ?disabled=${this.dne}>\n            <span class=\"fas fa-fw fa-i-cursor\"></span> Rename\n          </button>\n          <button title=\"Delete\" @click=${e => this.onClickDelete(this.resolvedPath)} ?disabled=${this.dne}>\n            <span class=\"far fa-fw fa-trash-alt\"></span> Delete\n          </button>\n        ` : ''}\n        <button title=\"Actions\" @click=${this.onClickActions}>\n          <span class=\"fas fa-fw fa-ellipsis-h\"></span>\n        </button>\n        <span class=\"divider\"></span>\n        ${this.isLoading ? html`\n          <div class=\"text\"><span class=\"fas fa-fw fa-info-circle\"></span> Loading...</div>\n          <span class=\"divider\"></span>\n        ` : this.readOnly && !this.isUnloaded ? html`\n          <div class=\"text\"><span class=\"fas fa-fw fa-info-circle\"></span> This site is read-only</div>\n          <span class=\"divider\"></span>\n          ${this.mountInfo && this.mountInfo.writable ? html`\n            <span style=\"margin-left: 8px\">You own this file</span>\n            <button class=\"primary\" @click=${this.onClickEditReal}>\n              Edit it in New Tab\n            </button>\n          ` : ''}\n        ` : ''}\n        <button id=\"file-metadata-btn\" title=\"File Metadata\" ?disabled=${!this.stat} @click=${this.onClickFileMetadata}>\n          Metadata <span class=\"fas fa-fw fa-caret-down\"></span>\n        </button>\n        <span class=\"divider\"></span>\n        <button title=\"View file\" @click=${this.onClickView} ?disabled=${this.dne || this.isUnloaded}>\n          <span class=\"far fa-fw fa-window-maximize\"></span> View file\n        </button>\n        <span class=\"spacer\"></span>\n        ${this.attachedPane ? html`\n          <button @click=${window.close}><span class=\"fas fa-times\"></span></button>\n        ` : ''}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onToggleFilesOpen (e) {\n    this.isFilesOpen = !this.isFilesOpen\n  }\n\n  onOpenFile (e) {\n    if (this.hasChanges) {\n      if (!confirm('You have unsaved changes. Are you sure you want to navigate away?')) {\n        return\n      }\n    }\n    this.load(e.detail.url)\n  }\n\n  onShowMenu (e) {\n    this.showMenu(e.detail.x, e.detail.y, e.detail.folderPath, e.detail.item, e.detail.folderItemUrls)\n  }\n\n  onFilesExplorerNewFile (e) {\n    this.onClickNewFile(e.detail.folderPath)\n  }\n\n  async onClickActions (e) {\n    let el = e.currentTarget\n    if (el.classList.contains('active')) return\n    e.preventDefault()\n    e.stopPropagation()\n    let rect = e.currentTarget.getClientRects()[0]\n    el.classList.add('active')\n    await contextMenu.create({\n      x: (rect.left + rect.right) / 2,\n      y: rect.bottom,\n      center: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      noBorders: true,\n      roomy: true,\n      rounded: true,\n      style: 'padding: 4px 0',\n      items: [\n        {\n          icon: 'fas fa-fw fa-file-export',\n          label: 'Export',\n          disabled: this.dne,\n          click: () => this.onClickExportFiles(this.resolvedUrl)\n        }\n      ]\n    })\n    el.classList.remove('active')\n  }\n\n  onClickEditReal (e) {\n    beaker.browser.openUrl(`beaker://editor?url=${this.mountInfo.url + this.mountInfo.resolvedPath}`, {\n      setActive: true,\n      adjacentActive: true\n    })\n  }\n\n  async onClickFileMetadata (e) {\n    let el = e.currentTarget\n    if (el.classList.contains('active')) return\n    e.preventDefault()\n    e.stopPropagation()\n    let rect = e.currentTarget.getClientRects()[0]\n    el.classList.add('active')\n    await contextMenu.create({\n      x: (rect.left + rect.right) / 2,\n      y: rect.bottom,\n      render: () => {\n        var entries = Object.entries(this.stat.metadata).filter(([key]) => key !== 'type')\n        if (!this.readOnly) entries = entries.concat([['', '']])\n        const onClickSaveMetadata = async (e) => {\n          var metadataEl = e.currentTarget.parentNode\n          var newMetadata = {}\n          for (let entryEl of Array.from(metadataEl.querySelectorAll('.entry'))) {\n            let k = entryEl.querySelector('[name=\"key\"]').value.trim()\n            let v = entryEl.querySelector('[name=\"value\"]').value.trim()\n            if (k && v) newMetadata[k] = v\n          }\n          var deletedKeys = []\n          for (let k in this.stat.metadata) {\n            if (!(k in newMetadata)) deletedKeys.push(k)\n          }\n          await this.drive.updateMetadata(this.resolvedPath, newMetadata)\n          if (deletedKeys.length) {\n            await this.drive.deleteMetadata(this.resolvedPath, deletedKeys)\n          }\n          this.stat.metadata = newMetadata\n          contextMenu.destroy()\n        }\n        const onChange = e => {\n          e.target.getRootNode().querySelector('button').removeAttribute('disabled')\n        }\n        return html`\n          <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n          <style>\n          .dropdown-items {\n            padding: 12px;\n            border: 0;\n          }\n          .metadata {\n            position: relative;\n            width: 100%;\n          }\n          .metadata .entry {\n            display: flex;\n            border: 1px solid #ccd;\n            border-bottom: 0;\n          }\n          .metadata.readonly .entry:last-child {\n            border-bottom-left-radius: 8px;\n            border-bottom-right-radius: 8px;\n            border-bottom: 1px solid #ccd;\n            overflow: hidden;\n          }\n          .metadata input {\n            box-sizing: border-box;\n            border: 0;\n            border-radius: 0;\n            height: 22px;\n            padding: 1px 4px 0 6px;\n          }\n          .metadata input[name=\"key\"] {\n            border-right: 1px solid #ccd;\n            flex: 0 0 120px;\n          }\n          .metadata input[name=\"value\"] {\n            flex: 1;\n            box-sizing: border-box;\n          }\n          button {\n            display: block;\n            width: 100%;\n            cursor: pointer;\n            border-bottom-left-radius: 8px;\n            border-bottom-right-radius: 8px;\n            padding: 5px 10px;\n            outline: 0px;\n            color: rgb(255, 255, 255);\n            box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 1px;\n            background: rgb(82, 137, 247);\n            border: 1px solid rgb(40, 100, 220);\n          }\n          button:disabled {\n            background: #ddd;\n            color: #aaa;\n            border-color: #bbc;\n          }\n          button:disabled .fas {\n            display: none;\n          }\n          </style>\n          <div class=\"dropdown-items center rounded\">\n            <div class=\"metadata ${this.readOnly ? 'readonly' : ''}\">\n              ${repeat(entries, entry => `meta-${entry[0]}`, ([k, v]) => html`\n                <div class=\"entry\">\n                  <input type=\"text\" name=\"key\" value=${k} ?disabled=${this.readOnly} placeholder=\"Key\" @change=${onChange}>\n                  <input type=\"text\" name=\"value\" value=${v} ?disabled=${this.readOnly} placeholder=\"Value\" @change=${onChange}>\n                </div>\n              `)}\n              ${this.readOnly && entries.length === 0 ? html`\n                <div class=\"empty\">No metadata</div>\n              ` : ''}\n              ${!this.readOnly ? html`\n                <button class=\"primary\" @click=${onClickSaveMetadata} disabled><span class=\"fas fa-fw fa-check\"></span> Save</button>\n              ` : ''}\n            </div>\n          </div>\n        `\n      }\n    })\n    el.classList.remove('active')\n  }\n\n  async onClickResizeImage (e) {\n    e.preventDefault()\n    var dataUrl = await ResizeImagePopup.create(this.url)\n    var base64buf = dataUrl.split(',').pop()\n    await this.drive.writeFile(this.resolvedPath, base64buf, 'base64')\n  }\n\n  async onClickView () {\n    this.attachedPane = beaker.panes.getAttachedPane()\n    if (!this.attachedPane) {\n      this.attachedPane = await beaker.panes.create(this.url, {attach: true})\n    } else {\n      beaker.panes.navigate(this.attachedPane.id, this.url)\n    }\n  }\n\n  async onClickSave () {\n    if (this.readOnly) return\n    var model = this.editor.getModel(this.url)\n    let st = await this.drive.stat(this.resolvedPath).catch(e => undefined)\n    let metadata = st && st.metadata ? st.metadata : undefined\n    await this.drive.writeFile(this.resolvedPath, model.getValue(), {metadata})\n    this.lastSavedVersionId = model.getAlternativeVersionId()\n    if (this.attachedPane) {\n      this.attachedPane = beaker.panes.getAttachedPane()\n      beaker.panes.navigate(this.attachedPane.id, this.attachedPane.url)\n    }\n    this.setSaveBtnState()\n    this.setFocus()\n  }\n\n  async onClickRename (oldpath) {\n    if (this.readOnly) return\n    var folderPath = oldpath.split('/').slice(0, -1).join('/')\n    var oldname = oldpath.split('/').pop()\n    var newname = prompt('Enter the new name of this file', oldname)\n    if (!newname) return\n    var newpath = joinPath(folderPath, newname)\n    await this.drive.rename(oldpath, newpath)\n\n    this.loadExplorer()\n    if (this.resolvedPath === oldpath) {\n      let oldurl = this.url\n      let urlp = new URL(this.url)\n      urlp.pathname = newpath\n      this.load(urlp.toString())\n      if (this.attachedPane) {\n        this.attachedPane = beaker.panes.getAttachedPane()\n        if (this.attachedPane.url === oldurl) {\n          beaker.panes.navigate(this.attachedPane.id, urlp.toString())\n        }\n      }\n    }\n  }\n\n  async onClickDelete (path) {\n    if (this.readOnly) return\n    if (confirm('Are you sure you want to delete this file?')) {\n      let st = await this.drive.stat(path)\n      if (st.mount && st.mount.key) {\n        await this.drive.unmount(path)\n      } else if (st.isDirectory()) {\n        await this.drive.rmdir(path, {recursive: true})\n      } else {\n        await this.drive.unlink(path)\n      }\n\n      this.loadExplorer()\n      if (this.attachedPane) {\n        this.attachedPane = beaker.panes.getAttachedPane()\n        if (this.attachedPane.url === this.url) {\n          beaker.panes.navigate(this.attachedPane.id, this.url)\n        }\n      }\n      if (this.resolvedPath === path) {\n        this.load(this.url)\n      }\n    }\n  }\n\n  async onClickNewFolder (folderPath) {\n    if (this.readOnly) return\n    var name = prompt('Enter the new folder name')\n    if (name) {\n      let path = joinPath(folderPath, name)\n      await this.drive.mkdir(path)\n      this.loadExplorer()\n    }\n  }\n\n  async onClickNewFile (folderPath, defaultName = '') {\n    if (this.readOnly) return\n    var name = prompt('Enter the new file name', defaultName)\n    if (name) {\n      let path = joinPath(folderPath, name)\n      await this.drive.writeFile(path, '')\n      this.loadExplorer()\n      this.load(joinPath(this.drive.url, path), true)\n    }\n  }\n\n  async onClickNewMount (folderPath) {\n    if (this.readOnly) return\n    var url = await beaker.shell.selectDriveDialog()\n    if (!url) return\n    var name = await prompt('Enter the new mount name')\n    if (!name) return\n    await this.drive.mount(joinPath(folderPath, name), url)\n    this.loadExplorer()\n  }\n\n  async onClickImportFiles (folderPath) {\n    toast.create('Importing...')\n    try {\n      var {numImported} = await beaker.shell.importFilesDialog(joinPath(this.drive.url, folderPath))\n      if (numImported > 0) toast.create('Import complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n    this.loadExplorer()\n  }\n\n  async onClickImportFolders (folderPath) {\n    toast.create('Importing...')\n    try {\n      var {numImported} = await beaker.shell.importFoldersDialog(joinPath(this.drive.url, folderPath))\n      if (numImported > 0) toast.create('Import complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n    this.loadExplorer()\n  }\n\n  async onClickExportFiles (urls) {\n    toast.create('Exporting...')\n    try {\n      var {numExported} = await beaker.shell.exportFilesDialog(urls)\n      if (numExported > 0) toast.create('Export complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n  }\n\n  async onClickFork (e) {\n    var urlp = new URL(this.url)\n    var newDrive = await beaker.hyperdrive.forkDrive(this.url)\n    var newDriveUrlp = new URL(newDrive.url)\n    urlp.hostname = newDriveUrlp.hostname\n    \n    beaker.browser.gotoUrl(urlp.toString())\n    this.load(urlp.toString())\n  }\n}\n\ncustomElements.define('editor-app', EditorApp)\n"
  },
  {
    "path": "app/userland/explorer/README.md",
    "content": "# Hyperdrive.Network\n\nAn application for viewing and modifying Hyperdrives. Requires a Hyperdrive-enabled browser.\n\n## Development\n\nRun `npm install` to install dev deps.\n\nRun `npm run dev` to start a local http server against the development code.\n\nEdit your `/etc/hosts` to include a `dev.hyperdrive.network` which points to localhost. (The address is required for Beaker to provide the correct permissions to the application.)\n\n## Building\n\nRun `npm run build` to produce `./build`. You can serve the build using `npm run prod`."
  },
  {
    "path": "app/userland/explorer/css/buttons2.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\nimport colorscss from './colors.css.js'\nconst cssStr = css`\n/**\n * New button styles\n * We should replace buttons.css with this\n */\n${colorscss}\n\nbutton {\n  background: #fff;\n  border: 1px solid var(--border-color--semi-light);\n  border-radius: 3px;\n  box-shadow: 0 1px 1px rgba(0,0,0,.05);\n  padding: 5px 10px;\n  color: #333;\n  outline: 0;\n  cursor: pointer;\n}\n\nbutton:hover {\n  background: #0001;\n}\n\nbutton:active {\n  background: #0001;\n}\n\nbutton.big {\n  padding: 6px 12px;\n}\n\nbutton.block {\n  display: block;\n  width: 100%;\n}\n\nbutton.pressed {\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.5);\n  background: #6d6d79;\n  color: rgba(255,255,255,1);\n  border-color: transparent;\n  border-radius: 4px;\n}\n\nbutton.primary {\n  background: #5289f7;\n  border-color: #2864dc;\n  color: #fff;\n  box-shadow: 0 1px 1px rgba(0,0,0,.1);\n}\n\nbutton.primary:hover {\n  background: rgb(73, 126, 234);\n}\n\nbutton.gray {\n  background: #fafafa;\n}\n\nbutton.gray:hover {\n  background: #f5f5f5;\n}\n\nbutton[disabled] {\n  border-color: var(--border-color--semi-light);\n  background: #fff;\n  color: #999;\n  cursor: default;\n}\n\nbutton.rounded {\n  border-radius: 16px;\n}\n\nbutton.flat {\n  box-shadow: none; \n}\n\nbutton.noborder {\n  border-color: transparent;\n}\n\nbutton.transparent {\n  background: transparent;\n  border-color: transparent;\n  box-shadow: none; \n}\n\nbutton.transparent:hover {\n  background: #0002;\n}\n\nbutton.transparent.pressed {\n  background: rgba(0,0,0,.1);\n  box-shadow: inset 0 1px 2px rgba(0,0,0,.25);\n  color: inherit;\n}\n\n.radio-group button {\n  background: transparent;\n  border: 0;\n  box-shadow: none;\n}\n\n.radio-group button.pressed {\n  background: #6d6d79;\n  border-radius: 30px;\n}\n\n.btn-group {\n  display: inline-flex;\n}\n\n.btn-group button {\n  border-radius: 0;\n  border-right-width: 0;\n}\n\n.btn-group button:first-child {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.btn-group button:last-child {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n  border-right-width: 1px;\n}\n\n.btn-group.rounded button:first-child {\n  border-top-left-radius: 14px;\n  border-bottom-left-radius: 14px;\n  padding-left: 14px;\n}\n\n.btn-group.rounded button:last-child {\n  border-top-right-radius: 14px;\n  border-bottom-right-radius: 14px;\n  padding-right: 14px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/colors.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\nbody {\n  /* common simple colors */\n  --red: rgb(255, 59, 48);\n  --orange: rgb(255, 149, 0);\n  --yellow: rgb(255, 204, 0);\n  --lime: #E6EE9C;\n  --green: rgb(76, 217, 100);\n  --teal: rgb(90, 200, 250);\n  --blue: #2864dc;\n  --purple: rgb(88, 86, 214);\n  --pink: rgb(255, 45, 85);\n\n  /* common element colors */\n  --color-text: #333;\n  --color-text--muted: gray;\n  --color-text--light: #aaa;\n  --color-text--dark: #111;\n  --color-link: #295fcb;\n  --color-focus-box-shadow: rgba(41, 95, 203, 0.8);\n  --border-color: #d4d7dc;\n  --light-border-color: #e4e7ec;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/com/dropdown.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.dropdown {\n  position: relative;\n}\n\n.dropdown.open .toggleable:not(.primary) {\n  background: #dadada;\n  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);\n  border-color: transparent;\n  outline: 0;\n}\n\n.toggleable-container .dropdown-items {\n  display: none;\n}\n\n.toggleable-container.hover:hover .dropdown-items,\n.toggleable-container.open .dropdown-items {\n  display: block;\n}\n\n.dropdown-items {\n  width: 270px;\n  position: absolute;\n  right: 0px;\n  z-index: 3000;\n  background: #fff;\n  border: 1px solid #dadada;\n  border-radius: 2px;\n  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);\n  overflow: hidden;\n}\n\n.dropdown-items .section {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n  padding: 5px 0;\n}\n\n.dropdown-items .section-header {\n  padding: 2px 10px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.dropdown-items .section-header.light {\n  color: var(--text-color--pretty-light);\n  font-weight: 500;\n}\n\n.dropdown-items .section-header.small {\n  font-size: 12px;\n}\n\n.dropdown-items hr {\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.dropdown-items.thin {\n  width: 170px;\n}\n\n.dropdown-items.wide {\n  width: 400px;\n}\n\n.dropdown-items.compact .dropdown-item {\n  padding: 2px 15px;\n  border-bottom: 0;\n}\n\n.dropdown-items.compact .description {\n  margin-left: 0;\n}\n\n.dropdown-items.compact hr {\n  margin: 5px 0;\n}\n\n.dropdown-items.roomy .dropdown-item {\n  padding: 10px 15px;\n}\n\n.dropdown-items.very-roomy .dropdown-item {\n  padding: 20px 30px;\n}\n\n.dropdown-items.no-border .dropdown-item {\n  border-bottom: 0;\n}\n\n.dropdown-items.center {\n  left: 50%;\n  right: unset;\n  transform: translateX(-50%);\n}\n\n.dropdown-items.left {\n  right: initial;\n  left: 0;\n}\n\n.dropdown-items.over {\n  top: 0;\n}\n\n.dropdown-items.top {\n  bottom: calc(100% + 5px);\n}\n\n.dropdown-items.with-triangle:before {\n  content: '';\n  position: absolute;\n  top: -8px;\n  right: 10px;\n  width: 12px;\n  height: 12px;\n  z-index: 3;\n  width: 0;\n  height: 0;\n  border-left: 8px solid transparent;\n  border-right: 8px solid transparent;\n  border-bottom: 8px solid #fff;\n}\n\n.dropdown-items.with-triangle.left:before {\n  left: 10px;\n}\n\n.dropdown-items.with-triangle.center:before {\n  left: 43%;\n}\n\n.dropdown-title {\n  border-bottom: 1px solid #eee;\n  padding: 2px 8px;\n  font-size: 11px;\n  color: gray;\n}\n\n.dropdown-item {\n  display: block;\n  padding: 7px 15px;\n  border-bottom: 1px solid #eee;\n}\n\n.dropdown-item.disabled {\n  opacity: 0.25;\n}\n\n.dropdown-item .fa-check-square {\n  color: var(--color-blue);\n}\n\n.dropdown-item .fa-check-square,\n.dropdown-item .fa-square-o {\n  font-size: 14px;\n}\n\n.dropdown-item .fa-check {\n  font-size: 11.5px;\n}\n\n.dropdown-item.no-border {\n  border-bottom: 0;\n}\n\n.dropdown-item:hover:not(.no-hover) {\n  background: #eee;\n  cursor: pointer;\n}\n\n.dropdown-item:hover:not(.no-hover) i:not(.fa-check-square) {\n  color: var(--color-text);\n}\n\n.dropdown-item:hover:not(.no-hover) .description {\n  color: var(--color-text);\n}\n\n.dropdown-item:hover:not(.no-hover).disabled {\n  background: inherit;\n  cursor: default;\n}\n\n.dropdown-item .fa,\n.dropdown-item i {\n  display: inline-block;\n  width: 20px;\n  color: rgba(0, 0, 0, 0.65);\n}\n\n.dropdown-item .fa-fw {\n  margin-left: -3px;\n  margin-right: 3px;\n}\n\n.dropdown-item img {\n  display: inline-block;\n  width: 16px;\n  position: relative;\n  top: 3px;\n  margin-right: 6px;\n}\n\n.dropdown-item .btn .fa {\n  color: inherit;\n}\n\n.dropdown-item .label {\n  font-weight: 500;\n  margin-bottom: 3px;\n}\n\n.dropdown-item .description {\n  color: var(--text-color--pretty-light);\n  margin: 0;\n  margin-left: 23px;\n  margin-bottom: 3px;\n  line-height: 1.5;\n}\n\n.dropdown-item .description.small {\n  font-size: 12.5px;\n}\n\n.dropdown-item:first-of-type {\n  border-radius: 2px 2px 0 0;\n}\n\n.dropdown-item:last-of-type {\n  border-radius: 0 0 2px 2px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/com/file/file-display.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\nimport typographyCSS from '../../typography.css.js'\n\nconst cssStr = css`\n${typographyCSS}\n\n:host {\n  display: block;\n  --file-height: auto;\n  --text-font-size: 14px;\n  --text-padding: 0;\n  --text-min-height: none;\n  --text-max-height: none;\n  --text-min-width: none;\n  --text-max-width: none;\n  --text-white-space: pre-wrap;\n  --text-border-width: 0;\n  --text-border-radius: 4px;\n  --img-border-radius: 4px;\n  --media-max-height: none;\n  --media-padding: 0;\n  --mount-padding: 0;\n  --goto-padding: 12px 14px;\n  --color-drive: #6c8c9e;\n  --color-folder: #9ec2e0;\n  --color-viewfile-outline: #a7a7ad;\n}\n\na {\n  text-decoration: none;\n  color: var(--blue);\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.text {\n  min-height: var(--text-min-height);\n  max-height: var(--text-max-height);\n  max-width: 100%;\n  box-sizing: border-box;\n  white-space: var(--text-white-space);\n  font-style: normal;\n  word-break: break-all;\n  font-size: var(--text-font-size);\n  padding: var(--text-padding);\n  max-width: var(--text-max-width);\n  border: var(--text-border-width) solid #ccc;\n  border-radius: var(--text-border-radius);\n}\n\n.markdown {\n  box-sizing: border-box;\n  padding: var(--text-padding);\n  min-height: var(--text-min-height);\n  max-height: var(--text-max-height);\n  max-width: var(--text-max-width);\n  font-size: var(--text-font-size);\n  border: var(--text-border-width) solid #ccc;\n  border-radius: var(--text-border-radius);\n  line-height: 1.4;\n}\n\n.markdown > :first-child {\n  margin-top: 0;\n}\n\n.markdown > :last-child {\n  margin-bottom: 0;\n}\n\nimg,\nvideo,\naudio {\n  max-width: 100%;\n  max-height: var(--media-max-height);\n  padding: var(--media-padding);\n  box-sizing: border-box;\n}\n\n:host > img,\n:host > video,\n:host > audio {\n  display: block;\n  margin: 0 auto;\n}\n\n:host([horz]) > img,\n:host([horz]) > video,\n:host([horz]) > audio {\n  margin: 0;\n}\n\n:host > img {\n  border-radius: var(--img-border-radius);\n}\n\n:host([fullwidth]) > img {\n  width: 100%;\n  object-fit: cover;\n}\n\n.icon {\n  position: relative;\n  padding: 0 4px;\n}\n\n.icon > span {\n  font-size: 80px;\n  line-height: 70px;\n}\n\n.icon .fa-folder {\n  color: var(--color-folder);\n}\n\n.icon .mainicon.fa-hdd {\n  color: var(--color-drive);\n}\n\n.icon .fa-layer-group {\n  -webkit-text-stroke: 1px var(--color-viewfile-outline);\n  color: #fff;\n  font-size: 64px;\n}\n\n.icon .subicon {\n  position: absolute;\n  color: rgba(0,0,0,.4);\n  font-size: 30px;\n  left: 13px;\n  top: 8px;\n}\n\n.mount {\n  box-sizing: border-box;\n  padding: var(--mount-padding);\n}\n\n.mount img {\n  display: block;\n  width: 100%;\n  height: 120px;\n  border-radius: 8px;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n  border: 1px solid #ddd;\n  border-bottom: 0;\n  object-fit: cover;\n  object-position: top;\n  box-sizing: border-box;\n}\n\n.mount .info {\n  padding: 10px;\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  box-sizing: border-box;\n}\n\n.mount .info .title {\n  font-weight: 500;\n  font-size: 15px;\n}\n\n.mount .info .description {\n  display: none;\n}\n\n:host([horz]) .mount {\n  display: grid;\n  grid-template-columns: 100px 1fr;\n}\n\n:host([horz]) .mount img {\n  height: 100%;\n  border-radius: 8px;\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n  border: 1px solid #ddd;\n  border-right: 0;\n}\n\n:host([horz]) .mount .info {\n  padding: 12px 15px;\n  border-radius: 8px;\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n:host([horz]) .mount .info .title {\n  font-size: 18px;\n  font-weight: bold;\n}\n\n:host([horz]) .mount .info .description {\n  display: block;\n}\n\n.goto {\n  box-sizing: border-box;\n  padding: var(--goto-padding);\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  box-sizing: border-box;\n}\n\n.goto > * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.goto .title {\n  font-weight: bold;\n  font-size: 15px;\n  margin-bottom: 2px;\n}\n\n.goto .description {\n  color: gray;\n}\n\n.goto .fas {\n  color: var(--blue);\n  font-size: 80%;\n  position: relative;\n  top: -1px;\n}\n\n:host([horz]) .goto .title {\n  font-size: 16px;\n  font-weight: bold;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/folder/base-files-view.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n:host {\n}\n\n.container {\n  min-height: calc(100vh - 50px);\n}\n\nh4 {\n  border-top: 1px solid var(--base-files-view--h4-border-color);\n  color: var(--base-files-view--h4-color);\n  padding-top: 6px;\n  padding-left: 4px;\n  margin: 0;\n  user-select: none;\n}\n\n.empty {\n  background: var(--empty-bg);\n  padding: 40px;\n  margin: 14px 0;\n  border-radius: 8px;\n  color: var(--empty-color);\n}\n\n.items {\n  user-select: none;\n}\n\n.item {\n}\n\n.drag-selector {\n  position: fixed;\n  background: #5591ff33;\n  border: 1px solid #77adffee;\n  pointer-events: none;\n}\n\n.drag-hover,\n.drop-target {\n  background: var(--base-files-view--drag-bg) !important;\n  outline: rgb(191, 191, 243) dashed 1px;\n}\n\n.container.is-dragging .item:not(.folder) * {\n  pointer-events: none;\n}\n\n.item.drag-hover * {\n  pointer-events: none;\n}\n\n.drag-ghost {\n  position: fixed;\n  right: -100%;\n}\n\n.readme {\n  padding: 10px;\n}\n\n:host(.drag-selector-active) .readme {\n  user-select: none;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/folder/file-grid.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.items {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, 110px);\n  grid-template-rows: repeat(auto-fill, 86px);\n  grid-gap: 15px;\n  margin: 15px 0;\n  width: 100%;\n}\n\n.item {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  padding: 4px;\n}\n\n.item .fa-fw {\n  font-size: 40px;\n  line-height: 40px;\n  margin-bottom: 5px;\n}\n\n.item .fa-fw.fa-folder {\n  color: var(--file-grid--color-folder);\n}\n\n.item .mainicon.fa-fw.fa-hdd {\n  color: var(--file-grid--color-drive);\n}\n\n.item .fa-fw.fa-layer-group {\n  -webkit-text-stroke: 1px var(--file-grid--color-viewfile-outline);\n  color: var(--file-grid--color-viewfile);\n  font-size: 36px;\n}\n\n.item .fa-fw.fa-external-link-alt {\n  font-size: 28px;\n  color: var(--file-grid--color-goto);\n}\n\n.item .fa-fw.fa-file {\n  -webkit-text-stroke: 1px var(--file-grid--color-file);\n  color: #fff;\n  font-size: 36px;\n  margin-top: 1px;\n  margin-bottom: 4px;\n}\n\n.item .name,\n.item .author {\n  color: var(--file-grid--color-itemname);\n  width: 100%;\n  text-align: center;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  font-size: 12px;\n  border-radius: 4px;\n}\n\n.item .author {\n  color: var(--file-grid--color-itemdrive);\n  font-size: 10px;\n}\n\n.item .subicon {\n  position: absolute;\n  top: 22px;\n  left: 40px;\n  color: rgba(0,0,0,.4);\n}\n\n.item .mounticon {\n  position: absolute;\n  color: #5a5a5a;\n  left: 57px;\n  top: 16px;\n  font-size: 16px;\n}\n\n.item .subicon.fa-star {\n  top: 19px;\n  left: 38px;\n}\n\n.item.mount .subicon {\n  top: 27px;\n  font-size: 9px;\n  left: 36px;\n}\n\n.item.selected {\n}\n\n.item.selected .fa-fw {\n  background: var(--file-grid--color-selected-bg-icon);\n  border-radius: 4px;\n}\n\n.item.selected .name {\n  background: var(--file-grid--color-selected-bg);\n  color: var(--file-grid--color-selected-fg);\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/folder/file-list.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n\n:host {\n}\n\n.items {\n  margin: 5px 0 15px;\n  width: 100%;\n  user-select: none;\n}\n\n.item {\n  position: relative;\n  display: flex;\n  align-items: center;\n  border-bottom: 1px solid var(--file-list--item-border-color);\n  padding: 4px;\n  letter-spacing: -0.2px;\n}\n\n.item > * {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  font-size: 13px;\n  color: var(--file-list--color-itemprop);\n}\n\n.item .icon {\n  position: relative;\n  overflow: initial;\n  font-size: 18px;\n  line-height: 18px;\n  width: 30px;\n}\n\n.item .icon .mainicon {\n  width: 24px;\n}\n\n.item .fa-fw.fa-folder {\n  color: var(--file-list--color-folder);\n}\n\n.item .mainicon.fa-fw.fa-hdd {\n  color: var(--file-list--color-drive);\n}\n\n.item .fa-fw.fa-layer-group {\n  -webkit-text-stroke: 1px var(--file-list--color-viewfile-outline);\n  color: var(--file-list--color-viewfile);\n}\n\n.item .fa-fw.fa-file {\n  -webkit-text-stroke: 1px var(--file-list--color-file);\n  color: #fff;\n}\n\n.item .fa-fw.fa-external-link-alt {\n  color: var(--file-list--color-goto);\n  font-size: 13px;\n}\n\n.item .subicon {\n  color: var(--file-list--color-subicon);\n  font-size: 10px;\n  position: absolute;\n  left: 0;\n  bottom: 0;\n}\n\n.item .subicon.fa-rss {\n  left: -1px;\n}\n\n.item .author {\n  width: 100px;\n}\n\n.item .name {\n  color: var(--file-list--color-itemname);\n  flex: 1;\n}\n\n.item .date {\n  width: 160px;\n}\n\n.item .date span {\n  opacity: 0.75;\n}\n\n.item .size {\n  width: 100px;\n  text-align: right;\n}\n\n.item.selected {\n  background: var(--file-list--color-selected-bg);\n}\n\n.item.selected > * {\n  color: var(--file-list--color-itemprop-selected);\n}\n\n.item.selected .name {\n  color: var(--file-list--color-itemname-selected);\n}\n\n.item.selected .fa-fw {\n  text-shadow: 0 1px 2px rgba(0,0,0,.4);\n  -webkit-text-stroke: 0;\n}\n\n.item.selected .subicon {\n  color: var(--file-list--color-subicon-selected);\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/folder/inline-file-grid.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\nimport tooltipCSS from '../../tooltip.css.js'\n\nconst cssStr = css`\n${tooltipCSS}\n\n:host {\n  display: block;\n  padding-bottom: 10px;\n\n  --color-selected-bg: ;\n}\n\na {\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.items {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(160px, 180px));\n  grid-gap: 10px 10px;\n  width: 100%;\n  padding: 10px 10px 20px 10px;\n  box-sizing: border-box;\n}\n\n.item {\n  border-radius: 8px;\n}\n\n.item .header {\n  padding: 4px 4px;\n  font-size: 12px;\n}\n\n.item .header div {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.item .header .author {\n  color: var(--inline-file-grid--color-itemauthor);\n}\n\n.item .header .name {\n  color: var(--inline-file-grid--color-itemname);\n  font-weight: 500;\n}\n\n.item .content {\n  border: 1px solid transparent;\n  border-radius: 8px;\n  overflow: hidden;\n}\n\n.item .content file-display {\n  overflow: hidden;\n  pointer-events: none;\n  --text-max-height: 170px;\n  --text-font-size: 11px;\n  --text-padding: 10px;\n  --text-white-space: pre;\n  --text-border-width: 1px;\n  --text-border-radius: 8px;\n  --text-background: #fff;\n  --img-border-radius: 0;\n}\n\n.item.selected {\n  background: var(--inline-file-grid--color-selected-bg);\n}\n\n.item.selected .content {\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/folder/inline-file-list.css.js",
    "content": "import {css} from '../../../vendor/lit-element/lit-element.js'\nimport tooltipCSS from '../../tooltip.css.js'\n\nconst cssStr = css`\n${tooltipCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.items {\n  padding: 0;\n  box-sizing: border-box;\n  margin-top: 5px;\n}\n\n.item {\n  display: flex;\n  padding: 10px;\n  overflow: hidden;\n  border-top: 1px solid var(--inline-file-list--color-border);\n}\n\n.item .info {\n  flex: 0 0 160px;\n  width: 160px;\n  padding-right: 10px;\n  box-sizing: border-box;\n  font-size: 12px;\n  color: var(--inline-file-list--color-iteminfo);\n}\n\n.item .info img {\n  display: inline-block;\n  object-fit: cover;\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n}\n\n.item .info div {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.item .info .name {\n  font-weight: 500;\n  font-size: 14px;\n  line-height: 21px;\n}\n\n.item .info .name,\n.item .info .folder,\n.item .info .date {\n  color: var(--inline-file-list--color-itemprop);\n}\n\n.item .info .author {\n  color: var(--link-color);\n  font-weight: 500;\n}\n\n.item .content {\n  flex: 1;\n  overflow: hidden;\n  max-height: 50vh;\n}\n\n.item .content file-display {\n  --text-padding: 10px;\n  --text-white-space: pre;\n  --text-border-width: 1px;\n  --text-border-radius: 8px;\n  --text-min-height: 80px;\n  --text-max-height: 50vh;\n  --text-background: #fff;\n  --img-border-radius: 8px;\n  --media-max-height: 50vh;\n  --mount-padding: 0;\n}\n\n.item.selected {\n  background: var(--inline-file-list--color-selected-bg);\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/com/spinner.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.spinner {\n  display: inline-block;\n  height: 14px;\n  width: 14px;\n  animation: rotate 1s infinite linear;\n  color: #aaa;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/com/toast.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.toast-wrapper {\n  position: fixed;\n  top: 20px;\n  right: 20px;\n  z-index: 20000;\n  transition: opacity 0.5s ease;\n}\n.toast-wrapper.hidden {\n  opacity: 0;\n}\n.toast {\n  position: relative;\n  min-width: 350px;\n  max-width: 450px;\n  background: #ddd;\n  margin: 0;\n  padding: 10px 15px;\n  border-radius: 4px;\n  font-size: 16px;\n  color: #fff;\n  background: rgba(0, 0, 0, 0.75);\n  -webkit-font-smoothing: antialiased;\n  font-weight: 600;\n}\n.toast.error {\n  padding-left: 38px;\n}\n.toast.success {\n  padding-left: 48px;\n}\n.toast.success:before,\n.toast.error:before {\n  position: absolute;\n  left: 18px;\n  top: 5px;\n  display: block;\n  font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  font-size: 22px;\n  font-weight: bold;\n}\n.toast.primary {\n  background: var(--color-blue);\n}\n.toast.success {\n  background: #26b33e;\n}\n.toast.success:before {\n  content: '✓';\n}\n.toast.error {\n  background: #c72e25;\n}\n.toast.error:before {\n  content: '!';\n}\n.toast .toast-btn {\n  position: absolute;\n  right: 15px;\n  color: inherit;\n  text-decoration: underline;\n  cursor: pointer;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/fa-mod.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.fa-mod {\n  position: relative;\n  margin-right: 3px;\n}\n\n.fa-mod :last-child {\n  position: absolute;\n  font-size: 50%;\n  top: 42%;\n  right: 4px;\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/font-awesome.css",
    "content": ".fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-bacon:before{content:\"\\f7e5\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-medical:before{content:\"\\f7e6\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-bread-slice:before{content:\"\\f7ec\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-cheese:before{content:\"\\f7ef\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clinic-medical:before{content:\"\\f7f2\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-medical:before{content:\"\\f7f5\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-crutch:before{content:\"\\f7f7\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-egg:before{content:\"\\f7fb\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hamburger:before{content:\"\\f805\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-middle-finger:before{content:\"\\f806\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hard-hat:before{content:\"\\f807\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-haykal:before{content:\"\\f666\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotdog:before{content:\"\\f80f\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-ice-cream:before{content:\"\\f810\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laptop-medical:before{content:\"\\f812\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-nintendo-switch:before{content:\"\\f418\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-pager:before{content:\"\\f815\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-pepper-hot:before{content:\"\\f816\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-pizza-slice:before{content:\"\\f818\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-trash-restore:before{content:\"\\f829\"}.fa-trash-restore-alt:before{content:\"\\f82a\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-nurse:before{content:\"\\f82f\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:\"Font Awesome 5 Brands\";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.woff) format(\"woff\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\"),url(../webfonts/fa-brands-400.svg#fontawesome) format(\"svg\")}.fab{font-family:\"Font Awesome 5 Brands\"}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.woff) format(\"woff\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\"),url(../webfonts/fa-regular-400.svg#fontawesome) format(\"svg\")}.far{font-weight:400}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.woff) format(\"woff\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\"),url(../webfonts/fa-solid-900.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:\"Font Awesome 5 Free\"}.fa,.fas{font-weight:900}"
  },
  {
    "path": "app/userland/explorer/css/inputs.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\ntextarea {\n  line-height: 1.4;\n}\n\ninput,\ntextarea {\n  height: 30px;\n  padding: 0 7px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n}\ntextarea {\n  padding: 7px;\n}\n\ninput[type=\"checkbox\"],\ntextarea[type=\"checkbox\"],\ninput[type=\"radio\"],\ntextarea[type=\"radio\"],\ninput[type=\"range\"],\ntextarea[type=\"range\"] {\n  padding: 0;\n}\n\ninput[type=\"checkbox\"]:focus,\ntextarea[type=\"checkbox\"]:focus,\ninput[type=\"radio\"]:focus,\ntextarea[type=\"radio\"]:focus,\ninput[type=\"range\"]:focus,\ntextarea[type=\"range\"]:focus {\n  box-shadow: none;\n}\n\ninput[type=\"radio\"],\ntextarea[type=\"radio\"] {\n  width: 14px;\n  height: 14px;\n  outline: none;\n  -webkit-appearance: none;\n  border-radius: 50%;\n  cursor: pointer;\n  transition: border 0.1s ease;\n}\n\ninput[type=\"radio\"]:hover,\ntextarea[type=\"radio\"]:hover {\n  border: 1px solid var(--color-blue);\n}\n\ninput[type=\"radio\"]:checked,\ntextarea[type=\"radio\"]:checked {\n  border: 4.5px solid var(--color-blue);\n}\n\ninput[type=\"file\"],\ntextarea[type=\"file\"] {\n  padding: 0;\n  border: 0;\n  line-height: 1;\n}\n\ninput[type=\"file\"]:focus,\ntextarea[type=\"file\"]:focus {\n  border: 0;\n  box-shadow: none;\n}\n\ninput:focus,\ntextarea:focus,\nselect:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput.error,\ntextarea.error,\nselect.error {\n  border: 1px solid rgba(209, 48, 39, 0.75);\n}\n\ninput.error:focus,\ntextarea.error:focus,\nselect.error:focus {\n  box-shadow: 0 0 0 2px rgba(204, 47, 38, 0.15);\n}\n\ninput.nofocus:focus,\ntextarea.nofocus:focus,\nselect.nofocus:focus {\n  outline: 0;\n  box-shadow: none;\n  border: initial;\n}\n\ninput.inline {\n  height: auto;\n  border: 1px solid transparent;\n  border-radius: 0;\n  background: transparent;\n  cursor: text;\n  padding: 3px 5px;\n  line-height: 1;\n}\n\ninput.big,\ntextarea.big {\n  height: 38px;\n  padding: 0 10px;\n  font-size: 14px;\n}\n\ntextarea.big {\n  padding: 5px 10px;\n}\n\ninput.huge,\ntextarea.huge {\n  height: 40px;\n  padding: 0 10px;\n  font-size: 18px;\n}\n\ntextarea.huge {\n  padding: 5px 10px;\n}\n\ninput.inline:focus,\ninput.inline:hover {\n  border: 1px solid #ccc;\n  box-shadow: none;\n}\n\ninput.inline:focus {\n  background: #fff;\n}\n\n.input-file-picker {\n  display: flex;\n  align-items: center;\n  padding: 3px;\n  border-radius: 2px;\n  border: 1px solid #d9d9d9;\n  color: var(--text-color--pretty-light);\n}\n\n.input-file-picker span {\n  flex: 1;\n  padding-left: 3px;\n}\n\n::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.5);\n  font-size: 0.8rem;\n}\n\n.big::-webkit-input-placeholder,\n.huge::-webkit-input-placeholder {\n  font-size: 0.9em;\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\nlabel.required:after {\n  content: '*';\n  color: red;\n}\n\n.toggle {\n  display: flex;\n  align-items: center;\n  flex-direction: row;\n  margin-bottom: 10px;\n  cursor: pointer;\n  overflow: initial;\n}\n\n.toggle .switch {\n  margin-right: 10px;\n}\n\n.toggle * {\n  cursor: pointer;\n}\n\n.toggle.disabled {\n  cursor: default;\n}\n\n.toggle.disabled * {\n  cursor: default;\n}\n\n.toggle input {\n  display: none;\n}\n\n.toggle .text {\n  font-weight: 400;\n}\n\n.toggle .switch {\n  display: inline-block;\n  position: relative;\n  width: 32px;\n  height: 17px;\n}\n\n.toggle .switch:before,\n.toggle .switch:after {\n  position: absolute;\n  display: block;\n  content: '';\n}\n\n.toggle .switch:before {\n  width: 100%;\n  height: 100%;\n  border-radius: 40px;\n  background: #dadada;\n}\n\n.toggle .switch:after {\n  width: 11px;\n  height: 11px;\n  border-radius: 50%;\n  left: 3px;\n  top: 3px;\n  background: #fafafa;\n  transition: transform 0.15s ease;\n}\n\n.toggle input:checked:not(:disabled) + .switch:before {\n  background: #41b855;\n}\n\n.toggle input:checked:not(:disabled) + .switch:after {\n  transform: translateX(15px);\n}\n\n.toggle.disabled {\n  color: var(--text-color--pretty-light);\n}\n\nlabel.checkbox-container {\n  display: flex;\n  align-items: center;\n  height: 15px;\n  font-weight: 400;\n}\n\nlabel.checkbox-container input[type=\"checkbox\"] {\n  width: 15px;\n  height: 15px;\n  margin: 0 5px 0 0;\n}\n\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/main.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\nimport buttonsCSS from './buttons2.css.js'\nimport inputsCSS from './inputs.css.js'\nimport tooltipCSS from './tooltip.css.js'\nimport famodCSS from './fa-mod.css.js'\nimport spinnerCSS from './com/spinner.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n${tooltipCSS}\n${famodCSS}\n${spinnerCSS}\n\n:host {\n  --primary-color: #333;\n  --link-color: var(--blue);\n  --button-color: #333;\n  --loading-color: #667;\n  --spinner-color: #778;\n  --error-bg: #fee;\n  --error-pre-bg: #fffa;\n  --error-color: #c55;\n  --header-color: #556;\n  --header-date-color: #99a;\n\n  --primary-bg: #fff;\n  --label-bg: #f1f1f6;\n  --empty-bg: #f8f8fc;\n  --empty-color: #667;\n\n  --nav-bg: #f1f1f6;\n  --nav-section-bg: #fff;\n  --nav-border-color: #b7b7d0;\n  --nav-hr-color: #eef;\n  --nav-help-color: #85859e;\n  --nav-help-input-bg: #e1e1e8;\n  --nav-help-input-color: #778;\n  --nav-kv-input-bg: #fff;\n  --nav-kv-input-color: rgba(51, 51, 51, 0.95);\n  --nav-kv-input-placeholder-color: gray;\n  --nav-drives-list--link-current: #fff;\n  --nav-drives-list--link-hover: #fafafd;\n\n  --base-files-view--h4-border-color: #e3e3ee;\n  --base-files-view--h4-color: #b0b0bc;\n  --base-files-view--drag-bg: #f5f5ff;\n\n  --file-list--item-border-color: #fff5;\n  --file-list--color-drive: #ccd;\n  --file-list--color-folder: #9ec2e0;\n  --file-list--color-file: #9a9aab;\n  --file-list--color-goto: #9a9aab;\n  --file-list--color-subicon: #556;\n  --file-list--color-itemname: #333;\n  --file-list--color-itemprop: #777;\n  --file-list--color-viewfile: #ffffff;\n  --file-list--color-viewfile-outline: #95959c;\n  --file-list--color-subicon-selected: #fff;\n  --file-list--color-itemname-selected: #fff;\n  --file-list--color-itemprop-selected: rgba(255, 255, 255, 0.7);\n  --file-list--color-selected-bg: #4379e4;\n  --inline-file-list--color-selected-bg: #f3f3f8;\n  --inline-file-list--color-iteminfo: #99a;\n  --inline-file-list--color-itemprop: #556;\n  --inline-file-list--color-border: #eee;\n\n  --file-grid--color-drive: #ccd;\n  --file-grid--color-folder: #9ec2e0;\n  --file-grid--color-file: #bbbbcc;\n  --file-grid--color-goto: #bbbbce;\n  --file-grid--color-itemname: #484444;\n  --file-grid--color-itemdrive: #99a;\n  --file-grid--color-viewfile: #ffffff;\n  --file-grid--color-viewfile-outline: #a7a7ad;\n  --file-grid--color-selected-fg: #fff;\n  --file-grid--color-selected-bg: #4379e4;\n  --file-grid--color-selected-bg-icon: #dddde5;\n  --inline-file-grid--color-selected-bg: #f3f3f8;\n  --inline-file-grid--color-itemname: #556;\n  --inline-file-grid--color-itemauthor: #99a;\n}\n\n.layout {\n  height: 100vh;\n  overflow: auto;\n  background: var(--primary-bg);\n  color: var(--primary-color);\n}\n\n@media (prefers-color-scheme: dark) {\n  .layout {  \n    --primary-bg: #222;\n    --primary-color: #eee;\n    --header-color: #f5f5f5;\n    --button-color: #eee;\n    --empty-bg: #333;\n    --loading-color: #ddd;\n    --empty-color: #ddd;\n    --error-bg: #ffeeee0d;\n    --error-color: #ff1010;\n    --error-pre-bg: rgba(0, 0, 0, 0.29);\n\n    --nav-bg: #333;\n    --nav-section-bg: #222;\n    --nav-border-color: #555;\n    --nav-hr-color: #444;\n    --nav-help-color: #888;\n    --nav-help-input-bg: #555;\n    --nav-help-input-color: #ccc;\n    --nav-kv-input-bg: #222;\n    --nav-kv-input-color: #eee;\n    --nav-kv-input-placeholder-color: #888;\n    --nav-drives-list--link-current: #222;\n    --nav-drives-list--link-hover: #222;\n\n    --base-files-view--h4-border-color: #6e6e6e;\n    --base-files-view--h4-color: #bababa;\n    --base-files-view--drag-bg: #333;\n\n    --file-list--item-border-color: #222;\n    --file-list--color-drive: #ccc;\n    --file-list--color-folder: #9ec2e0;\n    --file-list--color-file: none;\n    --file-list--color-goto: #fff;\n    --file-list--color-subicon: #fff;\n    --file-list--color-itemname: #f5f5f5;\n    --file-list--color-itemprop: #ddd;\n    --file-list--color-viewfile: #ffffff;\n    --file-list--color-viewfile-outline: none;\n    --file-list--color-subicon-selected: #fff;\n    --file-list--color-itemname-selected: #fff;\n    --file-list--color-itemprop-selected: rgba(255, 255, 255, 0.7);\n    --file-list--color-selected-bg: #4379e4;\n    --inline-file-list--color-selected-bg: #444;\n    --inline-file-list--color-iteminfo: #999;\n    --inline-file-list--color-itemprop: #f5f5f5;\n    --inline-file-list--color-border: #333;\n\n    --file-grid--color-drive: #ccc;\n    --file-grid--color-folder: #9ec2e0;\n    --file-grid--color-file: #bbbbbb;\n    --file-grid--color-goto: #cccccc;\n    --file-grid--color-itemname: #f5f5f5;\n    --file-grid--color-itemdrive: #999;\n    --file-grid--color-viewfile: #ffffff;\n    --file-grid--color-viewfile-outline: none;\n    --file-grid--color-selected-fg: #fff;\n    --file-grid--color-selected-bg: #4379e4;\n    --file-grid--color-selected-bg-icon: #444;\n    --inline-file-grid--color-selected-bg: #444;\n    --inline-file-grid--color-itemname: #f5f5f5;\n    --inline-file-grid--color-itemauthor: #999;\n  }\n}\n\n.layout.attached-mode::-webkit-scrollbar {\n  display: none;\n}\n\na {\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\nbutton {\n  color: var(--button-color);\n}\n\ntable {\n  font-size: inherit;\n  color: inherit;\n}\n\n.link {\n  color: var(--link-color);\n}\n\n.label {\n  display: inline-block;\n  background: var(--label-bg);\n  border-radius: 4px;\n  padding: 2px 5px;\n  font-size: 10px;\n  font-weight: 500;\n}\n\n.label.verified {\n  color: #2196F3;\n  background: #e6f1ff;\n}\n\n.menubar {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 30px;\n  padding: 0 10px;\n  background: #fff;\n  z-index: 3;\n}\n\nmain {\n  margin: 0px 370px 0px 16px;\n  position: relative;\n}\n\n@media(max-width: 1000px) {\n  main {\n    margin-left: 16px;\n    margin-right: 16px;\n  }\n}\n\n.loading-view {\n  background: var(--empty-bg);\n  padding: 40px;\n  margin: 20px;\n  border-radius: 8px;\n  color: var(--loading-color);\n  font-size: 14px;\n  opacity: 0;\n  transition: opacity 1s;\n}\n\n.loading-view > div {\n  display: flex;\n  align-items: center;\n}\n\n.loading-view.visible {\n  opacity: 1;\n}\n\n.loading-view .spinner {\n  margin-right: 10px;\n  color: var(--spinner-color);\n}\n\n.loading-notice {\n  position: absolute;\n  top: 40px;\n  right: 0;\n  z-index: 10;\n  padding: 5px 10px;\n  background: #fffa;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  box-shadow: 0 1px 3px #0002;\n}\n\n.error-view {\n  background: var(--error-bg);\n  padding: 40px;\n  margin: 20px;\n  border-radius: 8px;\n  color: var(--error-color);\n  font-size: 16px;\n  line-height: 32px;\n}\n\nmain .error-view {\n  margin: 4px 0;\n}\n\n.error-view .error-title {\n  font-size: 27px;\n  line-height: 50px;\n}\n\n.error-view summary {\n  font-weight: bold;\n}\n\n.error-view pre {\n  background: var(--error-pre-bg);\n  line-height: 1;\n  padding: 10px;\n  border-radius: 4px;\n}\n\n.nav-toggle {\n  position: fixed;\n  top: 0px;\n  width: 20px;\n  height: 100vh;\n  padding: 50vh 2px 0;\n  box-sizing: border-box;\n  z-index: 3;\n}\n.nav-toggle:hover {\n  cursor: pointer;\n  background: rgba(0, 0, 0, .08);\n}\n.nav-toggle span { display: none; }\n.nav-toggle:hover span { display: inline; }\n.nav-toggle.left { left: 0; }\n.nav-toggle.right { right: 0; text-align: right; }\n\nnav {\n  position: fixed;\n  z-index: 2;\n  top: 0;\n  width: 200px;\n  height: 100vh;\n  box-sizing: border-box;\n  background: var(--nav-bg);\n  padding: 6px 8px;\n  overflow-y: auto;\n}\n\n@media(max-width: 1000px) {\n  nav {\n    display: none\n  }\n}\n\nnav.left {\n  left: 0px;\n}\n\nnav.right {\n  right: 0px;\n  width: 360px;\n}\n\nnav section h1,\nnav section h2 {\n  display: flex;\n  align-items: center;\n  margin: 0 0 10px;\n}\n\nnav section h1 {\n  font-size: 1.5em;\n}\n\nnav section h2 {\n  font-size: 1.35em;\n}\n\nnav section h3,\nnav section h4,\nnav section h5 {\n  margin: 0;\n}\n\nnav h4 code {\n  word-break: break-word;\n}\n\nnav img {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  border-radius: 4px;\n  object-fit: cover;\n  margin-right: 10px;\n}\n\nnav a {\n  color: inherit;\n}\n\nnav p {\n  margin: 10px 0;\n}\n\nnav code {\n  word-break: break-all;\n}\n\nnav button {\n  border-radius: 6px;\n}\n\nnav button .fa-caret-down {\n  margin-left: 2px;\n}\n\nnav section {\n  display: block;\n  background: var(--nav-section-bg);\n  border-radius: 4px;\n  padding: 12px;\n  margin-bottom: 10px;\n  width: 100%;\n  box-sizing: border-box;\n  border: 0;\n  box-shadow: none;\n  font-size: 12px;\n}\n\nnav section section {\n  border: 1px solid #dde;\n  margin: 0;\n}\n\nnav section > :first-child {\n  margin-top: 0;\n}\n\nnav section > :last-child {\n  margin-bottom: 0;\n}\n\nnav section.transparent {\n  background: transparent;\n}\n\nnav section.drives-list {\n  padding: 0;\n  border-radius: 0;\n}\n\nnav section.drives-list h5 {\n  margin: 16px 10px 4px;\n  font-size: 13px;\n}\n\nnav section.drives-list a {\n  display: flex;\n  align-items: center;\n  font-size: 13px;\n  overflow: hidden;\n  padding: 6px 10px;\n  margin-bottom: 4px;\n  border-radius: 4px;\n}\n\nnav section.drives-list img {\n  flex: 0 0 30px;\n  margin-right: 10px;\n}\n\nnav section.drives-list span {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\nnav section.drives-list a.current {\n  background: var(--nav-drives-list--link-current);\n  font-weight: 500;\n}\n\nnav section.drives-list a:hover {\n  background: var(--nav-drives-list--link-hover);\n  text-decoration: none;\n}\n\nnav file-display {\n  max-height: 360px;\n  overflow: hidden;\n}\n\nnav selection-info[full-view] file-display {\n  max-height: none;\n}\n\nnav section .bottom-ctrls {\n  margin: 0 -8px -8px;\n  border-top: 1px solid var(--nav-hr-color);\n  padding-top: 4px;\n}\n\nnav section .bottom-ctrls a.btn {\n  display: inline-block;\n  padding: 4px;\n  text-decoration: none;\n  margin: 0 6px;\n  font-size: 11px;\n  border-radius: 4px;\n}\n\nnav section .bottom-ctrls a.btn:hover {\n  background: rgb(245, 245, 250);\n}\n\nnav .facts {\n  line-height: 1.6;\n}\n\nnav .facts > span {\n  display: inline-block;\n  white-space: nowrap;\n  margin-right: 5px;\n}\n\nnav .help {\n background: transparent;\n border: 1px solid var(--nav-border-color);\n color: var(--nav-help-color);\n}\n\nnav .help table {\n  width: 100%;\n}\n\nnav .help table tr:not(:last-child) td {\n  padding-bottom: 5px;\n}\n\nnav .help table td:first-child {\n  width: 18px;\n  text-align: center;\n}\n\nnav .help table td:first-child span {\n  margin-left: -6px;\n}\n\nnav .help input {\n  height: 22px;\n  width: 100%;\n  border-radius: 10px;\n  background: var(--nav-help-input-bg);\n  color: var(--nav-help-input-color);\n  border: 0;\n  text-overflow: ellipsis;\n  box-sizing: border-box;\n}\n\nnav .metadata {\n  width: 100%;\n  margin: 10px 0 0;\n  border-bottom: 1px solid #ccd;\n}\n\nnav .metadata .entry {\n  display: flex;\n  border: 1px solid #ccd;\n  border-bottom: 0;\n}\n\nnav .metadata input {\n  box-sizing: border-box;\n  border: 0;\n  border-radius: 0;\n  background: var(--nav-kv-input-bg);\n  color: var(--nav-kv-input-color);\n}\n\nnav .metadata input::placeholder {\n  color: var(--nav-kv-input-placeholder-color);\n}\n\nnav .metadata input[name=\"key\"] {\n  border-right: 1px solid #ccd;\n  flex: 0 0 120px;\n}\n\nnav .metadata input[name=\"value\"] {\n  flex: 1;\n  box-sizing: border-box;\n}\n\nnav .metadata + button {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  display: block;\n  width: 100%;\n}\n\n.home {\n  max-width: 600px;\n  margin: 10px auto;\n  text-align: center;\n  letter-spacing: 0.5px;\n}\n\n.home h1 {\n  font-size: 32px;\n}\n\n.home h3 {\n  font-size: 21px;\n  line-height: 1.2;\n}\n\n.home p {\n  font-size: 16px;\n  line-height: 1.4;\n}\n\n.home a {\n  color: #2864dc;\n}\n\n.home section {\n  border: 1px solid #ccd;\n  border-radius: 4px;\n  padding: 50px 20px 60px;\n}\n\n.home aside {\n  background: #f5f5fa;\n  border-radius: 4px;\n  padding: 20px;\n  margin: 20px 0;\n}\n\n.home aside button {\n  display: block;\n  margin: 0 auto;\n  font-size: 21px;\n}\n\n.header {\n  position: sticky;\n  z-index: 2;\n  top: 0px;\n  display: flex;\n  align-items: center;\n  margin: 0px -4px;\n  font-size: 12px;\n  color: var(--header-color);\n  background-color: var(--primary-bg);\n  padding: 5px 0 5px 5px;\n  user-select: none;\n  white-space: nowrap;\n}\n\n.layout.attached-mode .header {\n  padding-right: 45px; /* give room for the buttons */\n}\n\n.header > *:not(:last-child) {\n  margin-right: 5px;\n}\n\n.header .date {\n  color: var(--header-date-color);\n}\n\n.header .spacer {\n  flex: 1;\n}\n\n.header button {\n  padding: 4px 6px;\n  font-size: 10px;\n  white-space: nowrap;\n}\n\n.header button.labeled-btn {\n  padding: 5px 10px 5px 12px;\n  border-radius: 12px;\n  font-size: 10px;\n}\n\n.header button:not(.primary).active {\n  background: #eef;\n}\n\n.header .drag-hover,\n.header .drop-target {\n  background: #f5f5ff !important;\n  outline: rgb(191, 191, 243) dashed 1px;\n}\n\n.header .drag-hover * {\n  pointer-events: none;\n}\n\n.header path-ancestry {\n  display: flex;\n  flex-wrap: nowrap;\n  overflow-x: auto;\n  align-items: baseline;\n}\n\n.header path-ancestry::-webkit-scrollbar {\n  display: none;\n}\n\n.header path-ancestry a {\n}\n\n.header path-ancestry .author {\n  font-weight: 500;\n  color: inherit;\n}\n\n.header path-ancestry .name {\n  color: inherit;\n}\n\n.header path-ancestry .fa-angle-right {\n  margin: 0 2px;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/tooltip.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n*[data-tooltip] {\n  position: relative;\n}\n\n*[data-tooltip]:hover:before,\n*[data-tooltip]:hover:after {\n  display: block;\n  z-index: 1000;\n  transition: opacity 0.01s ease;\n  transition-delay: 0.2s;\n}\n\n*[data-tooltip]:hover:after {\n  opacity: 1;\n}\n\n*[data-tooltip]:hover:before {\n  transform: translate(-50%, 0);\n  opacity: 1;\n}\n\n*[data-tooltip]:before {\n  opacity: 0;\n  transform: translate(-50%, 0);\n  position: absolute;\n  top: 33px;\n  left: 50%;\n  z-index: 3000;\n  content: attr(data-tooltip);\n  background: rgba(17, 17, 17, 0.95);\n  font-size: 0.7rem;\n  border: 0;\n  border-radius: 4px;\n  padding: 7px 10px;\n  color: rgba(255, 255, 255, 0.925);\n  text-transform: none;\n  text-align: center;\n  font-weight: 500;\n  white-space: pre;\n  line-height: 1;\n  pointer-events: none;\n}\n\n*[data-tooltip]:after {\n  opacity: 0;\n  position: absolute;\n  left: calc(50% - 6px);\n  top: 28px;\n  content: '';\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid rgba(17, 17, 17, 0.95);\n  pointer-events: none;\n}\n\n.tooltip-nodelay[data-tooltip]:hover:before,\n.tooltip-nodelay[data-tooltip]:hover:after {\n  transition-delay: initial;\n}\n\n.tooltip-right[data-tooltip]:before {\n  top: 50%;\n  left: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-right[data-tooltip]:after {\n  top: 50%;\n  left: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-right: 6px solid rgba(17, 17, 17, 0.95);\n}\n\n.tooltip-left[data-tooltip]:before {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 6px);\n  transform: translate(0, -50%);\n  line-height: 0.9;\n}\n\n.tooltip-left[data-tooltip]:after {\n  top: 50%;\n  left: auto;\n  right: calc(100% + 0px);\n  transform: translate(0, -50%);\n  border: 0;\n  border-top: 6px solid transparent;\n  border-bottom: 6px solid transparent;\n  border-left: 6px solid rgba(17, 17, 17, 0.95);\n}\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/typography.css.js",
    "content": "import {css} from '../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\nbody {\n  --system-font: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  --code-font: Consolas, 'Lucida Console', Monaco, monospace;\n}\n\nbody {\n  font-family: var(--system-font);\n}\n\ncode {\n  font-family: var(--code-font);\n  font-style: normal;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/explorer/css/view/file.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.content {\n  margin: 10px 0px 14px;\n  border: 1px solid #ccd;\n  border-radius: 4px;\n}\n\nfile-display {\n  --text-padding: 14px 14px 18px;\n  --text-background: #fff;\n  --text-max-width: 60em;\n  --media-padding: 14px 14px 18px;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/css/view/folder.css.js",
    "content": "import {css} from '../../vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.readme {\n  margin: 4px 0 8px;\n  padding: 14px;\n  border-radius: 8px;\n}\n\n.add-readme-link {\n  color: rgba(0,0,0,.4);\n  text-decoration: none;\n}\n\n.add-readme-link:hover {\n  text-decoration: underline;\n}\n\nfile-display {\n  --text-padding: 14px 14px 18px;\n  --text-background: #fff;\n  --text-max-width: 60em;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/explorer/index.css",
    "content": "@import \"beaker://explorer/css/font-awesome.css\";\n\n*,\n*:before,\n*:after {\n  box-sizing: border-box;\n}\n\nbody {\n  margin: 0;\n  color: #333;\n  --system-font: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n  --code-font: Consolas, 'Lucida Console', Monaco, monospace;\n  font-family: var(--system-font);\n  font-size: 12px;\n  --border-color: #d4d7dc;\n}\n\ncode {\n  font-family: var(--code-font);\n  font-style: normal;\n}\n\na {\n  text-decoration: none;\n  color: inherit;\n}\n\nbutton {\n  background: none;\n  outline-color: transparent;\n  border: none;\n}\n"
  },
  {
    "path": "app/userland/explorer/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <title>Loading...</title>\n    <link rel=\"stylesheet\" href=\"/index.css\">\n    <link rel=\"shortcut icon\" href=\"asset:favicon:beaker://explorer\">\n  </head>\n  <body>\n    <explorer-app></explorer-app>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/explorer/js/com/context-menu.js",
    "content": "import {LitElement, html, css} from '../../vendor/lit-element/lit-element.js'\nimport {classMap} from '../../vendor/lit-element/lit-html/directives/class-map.js'\nimport {ifDefined} from '../../vendor/lit-element/lit-html/directives/if-defined.js'\nimport {findParent} from '../lib/dom.js'\nimport dropdownCSS from '../../css/com/dropdown.css.js'\n\n// globals\n// =\n\nvar resolve\n\n// exported api\n// =\n\n// create a new context menu\n// - returns a promise that will resolve to undefined when the menu goes away\n// - example usage:\n/*\ncreate({\n  // where to put the menu\n  x: e.clientX,\n  y: e.clientY,\n\n  // align edge to right instead of left\n  right: true,\n\n  // use triangle\n  withTriangle: true,\n\n  // roomy style\n  roomy: true,\n\n  // no borders on items\n  noBorders: false,\n\n  // additional styles on dropdown-items\n  style: 'font-size: 14px',\n\n  // parent element to append to\n  parent: document.body,\n\n  // url to fontawesome css\n  fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n\n  // menu items\n  items: [\n    // icon from font-awesome\n    {icon: 'fa fa-link', label: 'Copy link', click: () => writeToClipboard('...')}\n  ]\n\n  // instead of items, can give render()\n  render () {\n    return html`\n      <img src=\"smile.png\" onclick=${contextMenu.destroy} />\n    `\n  }\n}\n*/\nexport function create (opts) {\n  // destroy any existing\n  destroy()\n\n  // extract attrs\n  var parent = opts.parent || document.body\n\n  // render interface\n  parent.appendChild(new BeakerContextMenu(opts))\n  document.addEventListener('keyup', onKeyUp)\n  document.addEventListener('click', onClickAnywhere)\n\n  // return promise\n  return new Promise(_resolve => {\n    resolve = _resolve\n  })\n}\n\nexport function destroy (value) {\n  const el = document.querySelector('beaker-context-menu')\n  if (el) {\n    el.parentNode.removeChild(el)\n    document.removeEventListener('keyup', onKeyUp)\n    document.removeEventListener('click', onClickAnywhere)\n    resolve(value)\n  }\n}\n\n// global event handlers\n// =\n\nfunction onKeyUp (e) {\n  e.preventDefault()\n  e.stopPropagation()\n\n  if (e.keyCode === 27) {\n    destroy()\n  }\n}\n\nfunction onClickAnywhere (e) {\n  if (!findParent(e.target, el => el.tagName === 'BEAKER-CONTEXT-MENU')) {\n    // click is outside the context-menu, destroy\n    destroy()\n  }\n}\n\n// internal\n// =\n\nexport class BeakerContextMenu extends LitElement {\n  constructor ({x, y, right, center, top, withTriangle, roomy, noBorders, style, items, fontAwesomeCSSUrl, render}) {\n    super()\n    this.x = x\n    this.y = y\n    this.right = right || false\n    this.center = center || false\n    this.top = top || false\n    this.withTriangle = withTriangle || false\n    this.roomy = roomy || false\n    this.noBorders = noBorders || false\n    this.customStyle = style || undefined\n    this.items = items\n    this.fontAwesomeCSSUrl = fontAwesomeCSSUrl\n    this.customRender = render\n  }\n\n  // calls the global destroy\n  // (this function exists so that custom renderers can destroy with this.destroy)\n  destroy () {\n    destroy()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const cls = classMap({\n      'dropdown-items': true,\n      right: this.right,\n      center: this.center,\n      left: !this.right,\n      top: this.top,\n      'with-triangle': this.withTriangle,\n      roomy: this.roomy,\n      'no-border': this.noBorders\n    })\n    var style = ''\n    if (this.x) style += `left: ${this.x}px; `\n    if (this.y) style += `top: ${this.y}px; `\n    return html`\n      ${this.fontAwesomeCSSUrl ? html`<link rel=\"stylesheet\" href=\"${this.fontAwesomeCSSUrl}\">` : ''}\n      <div class=\"context-menu dropdown\" style=\"${style}\">\n        ${this.customRender\n          ? this.customRender()\n          : html`\n            <div class=\"${cls}\" style=\"${ifDefined(this.customStyle)}\">\n              ${this.items.map(item => {\n                if (item === '-' || item.type === 'separator') {\n                  return html`<hr />`\n                }\n                if (item.type === 'html') {\n                  return item\n                }\n                var icon = item.icon\n                if (typeof icon === 'string' && !icon.includes(' ')) {\n                  icon = 'fa fa-' + icon\n                }\n                if (item.disabled) {\n                  return html`\n                    <div class=\"dropdown-item disabled\">\n                      ${icon !== false ? html`<i class=\"${icon}\"></i>` : ''}\n                      ${item.label}\n                    </div>\n                  `\n                }\n                if (item.href) {\n                  return html`\n                    <a class=\"dropdown-item\" href=${item.href}>\n                      ${icon !== false ? html`<i class=\"${icon}\"></i>` : ''}\n                      ${item.label}\n                    </a>\n                  `\n                }\n                return html`\n                  <div class=\"dropdown-item\" @click=${() => { destroy(); item.click() }}>\n                    ${typeof icon === 'string'\n                      ? html`<i class=\"${icon}\"></i>`\n                      : icon ? icon : ''}\n                    ${item.label}\n                  </div>\n                `\n              })}\n            </div>`\n        }\n      </div>`\n  }\n}\n\nBeakerContextMenu.styles = css`\n${dropdownCSS}\n\n.context-menu {\n  position: fixed;\n  z-index: 10000;\n}\n\n.dropdown-items {\n  width: auto;\n  white-space: nowrap;\n}\n\na.dropdown-item {\n  color: inherit;\n  text-decoration: none;\n}\n\n.dropdown-item,\n.dropdown-items.roomy .dropdown-item {\n  padding-right: 30px; /* add a little cushion to the right */\n}\n\n/* custom icon css */\n.fa-long-arrow-alt-right.custom-link-icon {\n  position: relative;\n  transform: rotate(-45deg);\n  left: 1px;\n}\n.fa-custom-path-icon:after {\n  content: './';\n  letter-spacing: -1px;\n  font-family: var(--code-font);\n}\n`\n\ncustomElements.define('beaker-context-menu', BeakerContextMenu)"
  },
  {
    "path": "app/userland/explorer/js/com/file/file-display.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport { until } from '../../../vendor/lit-element/lit-html/directives/until.js'\nimport { unsafeHTML } from '../../../vendor/lit-element/lit-html/directives/unsafe-html.js'\nimport { joinPath } from '../../lib/strings.js'\nimport MarkdownIt from '../../../vendor/markdown-it.js'\nimport css from '../../../css/com/file/file-display.css.js'\n\nconst md = MarkdownIt({\n  html: false, // Enable HTML tags in source\n  xhtmlOut: false, // Use '/' to close single tags (<br />)\n  breaks: false, // Convert '\\n' in paragraphs into <br>\n  langPrefix: 'language-', // CSS language prefix for fenced blocks\n  linkify: false, // Autoconvert URL-like text to links\n\n  // Enable some language-neutral replacement + quotes beautification\n  typographer: true,\n\n  // Double + single quotes replacement pairs, when typographer enabled,\n  // and smartquotes on. Set doubles to '«»' for Russian, '„“' for German.\n  quotes: '“”‘’',\n\n  // Highlighter function. Should return escaped HTML,\n  // or '' if the source string is not changed\n  highlight: undefined\n})\n\nexport class FileDisplay extends LitElement {\n  static get properties () {\n    return {\n      driveUrl: {type: String, attribute: 'drive-url'},\n      pathname: {type: String},\n      info: {type: Object},\n      renderMode: {type: String, attribute: 'render-mode'}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  get url () {\n    return joinPath(this.driveUrl, this.pathname)\n  }\n\n  constructor () {\n    super()\n    this.driveUrl = undefined\n    this.pathname = undefined\n    this.info = undefined\n    this.renderMode = undefined\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (this.info.stat.isDirectory()) {\n      if (this.info.stat.mount && this.info.stat.mount.key) {\n        return html`${until(this.renderAndRenderMount(), 'Loading...')}`\n      }\n      return this.renderIcon('fas fa-folder')\n    } \n    if (this.pathname.endsWith('.view')) {\n      return this.renderIcon('fas fa-layer-group')\n    }\n    if (/\\.(png|jpe?g|gif)$/.test(this.pathname)) {\n      return this.renderImage()\n    }\n    if (/\\.(mp4|webm|mov)$/.test(this.pathname)) {\n      return this.renderVideo()\n    }\n    if (/\\.(mp3|ogg)$/.test(this.pathname)) {\n      return this.renderAudio()\n    }\n    if (this.info.stat.size > 1000000) {\n      return html`<div class=\"too-big\">This file is too big to display</div>`\n    }\n    return html`${until(this.readAndRenderFile(), 'Loading...')}`\n  }\n\n  renderImage () {\n    return html`<img src=${this.url}>`\n  }\n\n  renderVideo () {\n    return html`<video controls><source src=${this.url}></video>`\n  }\n\n  renderAudio () {\n    return html`<audio controls><source src=${this.url}></audio>`\n  }\n\n  renderIcon (icon) {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <div class=\"icon\">\n        <span class=\"${icon}\"></span>\n        ${this.info.subicon ? html`<span class=\"subicon ${this.info.subicon}\"></span>` : ''}\n      </div>\n    `\n  }\n\n  async renderAndRenderMount () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <div class=\"mount\">\n        <img src=\"asset:thumb:${this.info.mount.url}?cache_buster=${Date.now()}\">\n        <div class=\"info\">\n          <div class=\"title\">${this.info.mount.title || 'Untitled'}</div>\n          <div class=\"description\">${this.info.mount.description}</div>\n        </div>\n      </div>\n    `\n  }\n\n  async readAndRenderFile () {\n    try {\n      var drive = beaker.hyperdrive.drive(this.driveUrl)\n      var file = await drive.readFile(this.pathname, 'utf8')\n\n      if (this.pathname.endsWith('.md') && this.renderMode !== 'raw') {\n        file = md.render(file)\n        return html`<div class=\"markdown\">${unsafeHTML(file)}</div>`\n      }\n      if (this.pathname.endsWith('.goto') && this.renderMode !== 'raw') {\n        return html`\n          <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n          <div class=\"goto\">\n            <div class=\"title\"><span class=\"fas fa-external-link-alt\"></span> ${this.info.stat.metadata.title || this.info.name}</div>\n            <div class=\"description\">${this.info.stat.metadata.href}</div>\n          </div>\n        `\n      }\n\n      return html`<div class=\"text\">${file}</div>`\n    } catch (e) {\n      return e.toString()\n    }\n  }\n\n  // events\n  // =\n\n}\n\ncustomElements.define('file-display', FileDisplay)"
  },
  {
    "path": "app/userland/explorer/js/com/folder/base-files-view.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport { repeat } from '../../../vendor/lit-element/lit-html/directives/repeat.js'\nimport { findParent, emit } from '../../lib/dom.js'\nimport { handleDragDrop } from '../../lib/drag-drop.js'\nimport * as contextMenu from '../context-menu.js'\nimport * as loc from '../../lib/location.js'\nimport mainCSS from '../../../css/com/folder/file-grid.css.js'\n\n/**\n * NOTES ON DRAG & DROP EVENT BEHAVIORS\n * \n * - The web platform is very finicky with its dragenter/dragleave/etc events and will sometimes\n *   fail to fire if the drag moves too quickly.\n * - To make sure that drop-targets get the '.drag-hover' added and removed correctly, we rely on\n *   selectively removing pointer-events on DOM elements during 'drag & drop' mode.\n * \n * -prf\n */\n\nexport class BaseFilesView extends LitElement {\n  static get properties () {\n    return {\n      items: {type: Array},\n      itemGroups: {type: Array},\n      selection: {type: Array},\n      showOrigin: {type: Boolean, attribute: 'show-origin'}\n    }\n  }\n\n  static get styles () {\n    return mainCSS\n  }\n\n  constructor () {\n    super()\n    this.items = undefined\n    this.itemGroups = []\n    this.selection = []\n    this.showOrigin = undefined\n    this.dragSelector = undefined\n    this.lastClickedItemEl = undefined\n  }\n\n  stopDragSelection () {\n    // wait for next tick so that onclick can register that we were dragging\n    setTimeout(() => {\n      if (this.dragSelector && this.dragSelector.el) {\n        this.dragSelector.el.remove()\n        this.classList.remove('drag-selector-active')\n      }\n      this.dragSelector = undefined\n    }, 1)\n  }\n\n  startDragDropMode () {\n    this.dragDropModeActive = true\n    this.shadowRoot.querySelector('.container').classList.add('is-dragging')\n  }\n\n  createDragGhost (items) {\n    var wrapper = document.createElement('div')\n    wrapper.className = 'drag-ghost'\n    items.forEach(item => {\n      var el = document.createElement('div')\n      el.textContent = item.name\n      wrapper.append(el)\n    })\n    this.shadowRoot.append(wrapper)\n    return wrapper\n  }\n\n  endDragDropMode () {\n    if (this.dragDropModeActive) {\n      this.dragDropModeActive = false\n      this.shadowRoot.querySelector('.container').classList.remove('is-dragging')\n      try { this.shadowRoot.querySelector('.drag-ghost').remove() }\n      catch (e) {}\n    }\n    Array.from(this.shadowRoot.querySelectorAll('.drag-hover'), el => el.classList.remove('drag-hover'))\n  }\n\n  getInlineMdItem () {\n    var md = this.items.find(item => item.name.toLowerCase() === 'index.md')\n    if (md) return md\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var inlineMdItem = this.getInlineMdItem()\n    var isEmpty = this.itemGroups.reduce((acc, group) => acc && group.length === 0, true)\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <div\n        class=\"container\"\n        @click=${this.onClickContainer}\n        @contextmenu=${this.onContextMenuContainer}\n        @mousedown=${this.onMousedownContainer}\n        @mousemove=${this.onMousemoveContainer}\n        @mouseup=${this.onMouseupContainer}\n        @dragenter=${this.onDragenterContainer}\n        @dragover=${this.onDragoverContainer}\n        @dragleave=${this.onDragleaveContainer}\n        @drop=${this.onDropContainer}\n      >\n        ${this.itemGroups.map(group => {\n          if (group.items.length === 0) return ''\n          return html`\n            <h4>${group.label}</h4>\n            <div class=\"items\">\n              ${repeat(group.items, this.renderItem.bind(this))}\n            </div>\n          `\n        })}\n        ${isEmpty ? html`\n          <div class=\"empty\">This folder is empty</div>\n        ` : ''}\n        ${inlineMdItem ? html`\n          <h4>Index.md</h4>\n          <div class=\"readme\">\n            <file-display\n              drive-url=${inlineMdItem.drive.url}\n              pathname=${inlineMdItem.realPath}\n              .info=${inlineMdItem}\n            ></file-display>\n          </div>\n        ` : /*this.currentDriveInfo.writable ? html`\n          <div class=\"readme\">\n            <a class=\"add-readme-link\" href=\"#\" @click=${this.onAddReadme}>+ Add README.md</a>\n          </div>\n        ` :*/ ''}\n      </div>\n    `\n  }\n\n  renderItem (item) {\n    return html`<div>This function must be overridden</div>`\n  }\n\n  // events\n  // =\n\n  onClickItem (e, item) {\n    e.stopPropagation()\n    contextMenu.destroy()\n\n    var selection\n    if (e.metaKey || e.ctrlKey) {\n      let i = this.selection.indexOf(item)\n      if (i === -1) {\n        selection = this.selection.concat([item])\n      } else {\n        this.selection.splice(i, 1)\n        selection = this.selection\n      }\n    } else if (e.shiftKey && this.lastClickedItemEl) {\n      // shift-click to range select\n      // because items are broken up into groups, the easiest way to do this\n      // is to find the items using the drag-selector's hit detection\n      let selector = {start: getElXY(this.lastClickedItemEl), current: getElXY(e.currentTarget)}\n      let els = findElsInSelector(selector, this.shadowRoot.querySelectorAll('.item'))\n      let items = els.map(el => this.items.find(i => i.url === el.dataset.url))\n      selection = this.selection.slice()\n      for (let item of items) {\n        if (!selection.includes(item)) {\n          selection.push(item)\n        }\n      }\n    } else {\n      selection = [item]\n    }\n    this.lastClickedItemEl = e.currentTarget\n    emit(this, 'change-selection', {detail: {selection}})\n  }\n\n  onDblClickItem (e, item) {\n    emit(this, 'goto', {detail: {item}})\n  }\n\n  onContextMenuItem (e, item) {\n    e.preventDefault()\n    e.stopPropagation()\n    contextMenu.destroy()\n    if (!this.selection.includes(item)) {\n      emit(this, 'change-selection', {detail: {selection: [item]}})\n    }\n    emit(this, 'show-context-menu', {detail: {x: e.clientX, y: e.clientY}})\n  }\n\n  onDragstartItem (e, item) {\n    if (!this.selection.includes(item)) {\n      emit(this, 'change-selection', {detail: {selection: [item]}})\n    }\n\n    this.stopDragSelection()\n    var items = this.selection.length ? this.selection : [item]\n    e.dataTransfer.setData('text/uri-list', items.map(item => item.url).join(`\\n`))\n    e.dataTransfer.setData('text/plain', items.map(item => item.url).join(`\\n`))\n    e.dataTransfer.setDragImage(this.createDragGhost(items), 0, 0)\n    this.startDragDropMode()\n  }\n\n  onDropItem (e, item) {\n    e.preventDefault()\n    e.stopPropagation()\n    e.currentTarget.classList.remove('drag-hover')\n    var targetPath = item && item.stat.isDirectory() ? item.path : loc.getPath()\n    handleDragDrop(e.currentTarget, e.clientX, e.clientY, targetPath, e.dataTransfer)\n    return false\n  }\n\n  onClickContainer (e) {\n    if (!this.dragSelector || !this.dragSelector.isActive) {\n      emit(this, 'change-selection', {detail: {selection: []}})\n    }\n  }\n\n  onContextMenuContainer (e) {\n    if (!this.dragSelector || !this.dragSelector.isActive) {\n      emit(this, 'change-selection', {detail: {selection: []}})\n    }\n  }\n\n  onMousedownContainer (e) {\n    if (!this.dragSelector && !findParent(e.target, 'readme')) {\n      // start tracking the drag-selection positions but dont create the element\n      // until a certain number of pixels have been dragged over\n      this.dragSelector = {\n        isActive: false,\n        el: undefined,\n        start: {x: e.pageX, y: e.pageY},\n        current: {x: e.pageX, y: e.pageY},\n        initialSelection: this.selection.slice()\n      }\n    }\n  }\n\n  onMousemoveContainer (e) {\n    var diffMode = e.metaKey || e.shiftKey\n    if (this.dragSelector && !this.dragDropModeActive) {\n      if (!e.buttons) {\n        // mouseup must have happened outside of our container el\n        return this.onMouseupContainer(e)\n      } else {\n        this.dragSelector.current = {x: e.pageX, y: e.pageY}\n        if (!this.dragSelector.isActive) {\n          // check if enough space has been covered to start the selector behavior\n          if (\n            Math.abs(this.dragSelector.current.x - this.dragSelector.start.x) > 50\n            || Math.abs(this.dragSelector.current.y - this.dragSelector.start.y) > 50\n          ) {\n            this.dragSelector.el = createDragSelectorEl()\n            this.shadowRoot.append(this.dragSelector.el)\n            this.classList.add('drag-selector-active')\n            this.dragSelector.isActive = true\n          }\n        } \n        \n        if (this.dragSelector.isActive) {\n          // update the drag-selector rendering and update the selection list\n          positionDragSelector(this.dragSelector)\n          var newSelectedEls = findElsInSelector(this.dragSelector, this.shadowRoot.querySelectorAll('.item'))\n          var newSelection = newSelectedEls.map(el => this.items.find(i => i.url === el.dataset.url))\n          if (diffMode) {\n            for (let sel of this.dragSelector.initialSelection) {\n              let i = newSelection.indexOf(sel)\n              if (i !== -1) {\n                newSelection.splice(i, 1)\n              } else {\n                newSelection.push(sel)\n              }\n            }\n          }\n          if (hasSelectionChanged(newSelection, this.selection)) {\n            emit(this, 'change-selection', {detail: {selection: newSelection}})\n          }\n        }\n      }\n    }\n    if (this.dragDropModeActive && !e.buttons) {\n      // catch the case where 'drop' event occurred outside container\n      this.endDragDropMode()\n    }\n  }\n\n  onMouseupContainer (e) {\n    if (this.dragSelector) {\n      this.stopDragSelection()\n    }\n  }\n\n  onDragenterContainer (e) {\n    e.preventDefault()\n    e.stopPropagation()\n\n    var contanerEl = this.shadowRoot.querySelector('.container')\n    var itemEl = findParent(e.target, 'folder')\n    if (itemEl) {\n      contanerEl.classList.remove('drag-hover')\n      itemEl.classList.add('drag-hover')\n      this.dragLastEntered = itemEl\n    } else if (!contanerEl.classList.contains('drag-hover')) {\n      contanerEl.classList.add('drag-hover')\n      this.dragLastEntered = this.shadowRoot.querySelector('.container')\n    }\n    e.dataTransfer.dropEffect = 'move'\n    return false\n  }\n\n  onDragoverContainer (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    return false\n  }\n\n  onDragleaveContainer (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var contanerEl = this.shadowRoot.querySelector('.container')\n    var itemEl = findParent(e.target, 'folder')\n    if (itemEl && itemEl !== this.dragLastEntered) {\n      if (this.dragLastEntered) this.dragLastEntered.classList.add('drag-hover')\n      itemEl.classList.remove('drag-hover')\n    } else if (contanerEl === e.target) {\n      contanerEl.classList.remove('drag-hover')\n    }\n  }\n\n  onDropContainer (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.endDragDropMode()\n    handleDragDrop(this.shadowRoot.querySelector('.container'), e.clientX, e.clientY, loc.getPath(), e.dataTransfer)\n    return false\n  }\n}\n\n// helpers\n// =\n\nfunction createDragSelectorEl () {\n  var el = document.createElement('div')\n  el.classList.add('drag-selector')\n  return el\n}\n\nfunction positionDragSelector (dragSelector) {\n  function min (k) { return Math.min(dragSelector.start[k], dragSelector.current[k]) }\n  function max (k) { return Math.max(dragSelector.start[k], dragSelector.current[k]) }\n\n  var top = min('y')\n  var left = min('x')\n  var height = max('y') - top\n  var width = max('x') - left\n\n  dragSelector.el.style.left = String(left) + 'px'\n  dragSelector.el.style.width = String(width) + 'px'\n  dragSelector.el.style.top = String(top) + 'px'\n  dragSelector.el.style.height = String(height) + 'px'\n}\n\nfunction findElsInSelector (dragSelector, candidateEls) {\n  function min (k) { return Math.min(dragSelector.start[k], dragSelector.current[k]) }\n  function max (k) { return Math.max(dragSelector.start[k], dragSelector.current[k]) }\n\n  var dragRect = {\n    top: min('y'),\n    left: min('x'),\n    bottom: max('y'),\n    right: max('x')\n  }\n\n  return Array.from(candidateEls).filter(el => {\n    let elRect = el.getClientRects()[0]\n    if (dragRect.top > elRect.bottom) return false\n    if (dragRect.bottom < elRect.top) return false\n    if (dragRect.left > elRect.right) return false\n    if (dragRect.right < elRect.left) return false\n    return true\n  })\n}\n\nfunction hasSelectionChanged (left, right) {\n  if (left.length !== right.length) return true\n  return left.reduce((v, acc) => acc || right.indexOf(v) === -1, false)\n}\n\nfunction getElXY (el) {\n  let rect = el.getClientRects()[0]\n  return {\n    x: (rect.left + rect.right) / 2,\n    y: (rect.top + rect.bottom) / 2\n  }\n}"
  },
  {
    "path": "app/userland/explorer/js/com/folder/file-grid.js",
    "content": "import { BaseFilesView } from './base-files-view.js'\nimport { html } from '../../../vendor/lit-element/lit-element.js'\nimport { classMap } from '../../../vendor/lit-element/lit-html/directives/class-map.js'\nimport baseCSS from '../../../css/com/folder/base-files-view.css.js'\nimport gridCSS from '../../../css/com/folder/file-grid.css.js'\n\nexport class FileGrid extends BaseFilesView {\n  static get styles () {\n    return [baseCSS, gridCSS]\n  }\n\n  renderItem (item) {\n    var cls = classMap({\n      item: true,\n      mount: !!item.mount,\n      folder: item.stat.isDirectory(),\n      file: item.stat.isFile(),\n      selected: this.selection.includes(item)\n    })\n    var driveTitle = item.drive.title || 'Untitled'\n    return html`\n      <div\n        class=${cls}\n        draggable=\"true\"\n        @click=${e => this.onClickItem(e, item)}\n        @dblclick=${e => this.onDblClickItem(e, item)}\n        @contextmenu=${e => this.onContextMenuItem(e, item)}\n        @dragstart=${e => this.onDragstartItem(e, item)}\n        @drop=${e => this.onDropItem(e, item)}\n        data-url=${item.url}\n      >\n        <span class=\"fas fa-fw fa-${item.icon}\"></span>\n        ${item.subicon ? html`<span class=\"subicon ${item.subicon}\"></span>` : ''}\n        ${item.mount ? html`<span class=\"mounticon fas fa-external-link-square-alt\"></span>` : ''}\n        <div class=\"name\">${this.showOrigin ? item.realPath : item.name}</div>\n        ${this.showOrigin ? html`<div class=\"author\">${driveTitle}</div>` : ''}\n      </div>\n    `\n  }\n}\n\ncustomElements.define('file-grid', FileGrid)\n"
  },
  {
    "path": "app/userland/explorer/js/com/folder/file-list.js",
    "content": "import { BaseFilesView } from './base-files-view.js'\nimport { html } from '../../../vendor/lit-element/lit-element.js'\nimport { classMap } from '../../../vendor/lit-element/lit-html/directives/class-map.js'\nimport { format as formatBytes } from '../../../vendor/bytes/index.js'\nimport baseCSS from '../../../css/com/folder/base-files-view.css.js'\nimport listCSS from '../../../css/com/folder/file-list.css.js'\n\nexport class FileList extends BaseFilesView {\n  static get styles () {\n    return [baseCSS, listCSS]\n  }\n\n  constructor () {\n    super()\n    this.dateFormatter = new Intl.DateTimeFormat('en-us', {day: \"numeric\", month: \"short\", year: \"numeric\",})\n    this.timeFormatter = new Intl.DateTimeFormat('en-US', {hour12: true, hour: \"2-digit\", minute: \"2-digit\"})\n  }\n\n  // rendering\n  // =\n\n  renderItem (item) {\n    var cls = classMap({\n      item: true,\n      mount: !!item.mount,\n      folder: item.stat.isDirectory(),\n      file: item.stat.isFile(),\n      selected: this.selection.includes(item)\n    })\n    var driveTitle = item.drive.title || 'Untitled'\n    return html`\n      <div\n        class=${cls}\n        draggable=\"true\"\n        @click=${e => this.onClickItem(e, item)}\n        @dblclick=${e => this.onDblClickItem(e, item)}\n        @contextmenu=${e => this.onContextMenuItem(e, item)}\n        @dragstart=${e => this.onDragstartItem(e, item)}\n        @drop=${e => this.onDropItem(e, item)}\n        data-url=${item.url}\n      >\n        ${this.showOrigin ? html`<span class=\"author\">${driveTitle}</span>` : ''}\n        <span class=\"icon\">\n          <span class=\"fas fa-fw fa-${item.icon} mainicon\"></span>\n          ${item.subicon ? html`<span class=\"fas fa-fw fa-${item.subicon} subicon\"></span>` : ''}\n          ${item.mount ? html`<span class=\"fas fa-fw fa-external-link-square-alt subicon\"></span>` : ''}\n        </span>\n        <span class=\"name\">${this.showOrigin ? item.realPath : item.name}</span>\n        <span class=\"date\">${this.dateFormatter.format(item.stat.ctime)} <span>at</span> ${this.timeFormatter.format(item.stat.ctime)}</span>\n        <span class=\"size\">${item.stat.size ? formatBytes(item.stat.size) : ''}</span>\n      </div>\n    `\n  }\n}\n\ncustomElements.define('file-list', FileList)"
  },
  {
    "path": "app/userland/explorer/js/com/folder/inline-file-grid.js",
    "content": "import { BaseFilesView } from './base-files-view.js'\nimport { html } from '../../../vendor/lit-element/lit-element.js'\nimport { classMap } from '../../../vendor/lit-element/lit-html/directives/class-map.js'\nimport '../file/file-display.js'\nimport baseCSS from '../../../css/com/folder/base-files-view.css.js'\nimport inlineGridCSS from '../../../css/com/folder/inline-file-grid.css.js'\n\nexport class InlineFileGrid extends BaseFilesView {\n  static get styles () {\n    return [baseCSS, inlineGridCSS]\n  }\n\n  renderItem (item) {\n    var cls = classMap({\n      item: true,\n      folder: item.stat.isDirectory(),\n      selected: this.selection.includes(item)\n    })\n    var driveTitle = item.drive.title || 'Untitled'\n    return html`\n      <div\n        class=${cls}\n        draggable=\"true\"\n        @click=${e => this.onClickItem(e, item)}\n        @dblclick=${e => this.onDblClickItem(e, item)}\n        @contextmenu=${e => this.onContextMenuItem(e, item)}\n        @dragstart=${e => this.onDragstartItem(e, item)}\n        @drop=${e => this.onDropItem(e, item)}\n        data-url=${item.url}\n      >\n        <div class=\"content\">\n          <file-display\n            drive-url=${item.drive.url}\n            pathname=${item.realPath}\n            .info=${item}\n          ></file-display>\n        </div>\n        <div class=\"header\">\n          <div>\n            <span class=\"name\">${this.showOrigin ? item.realPath : item.name}</span>\n          </div>\n          ${this.showOrigin ? html`\n            <div><a class=\"author\" href=${item.drive.url} title=${driveTitle}>${driveTitle}</a></div>\n          ` : ''}\n        </div>\n      </div>\n    `\n  }\n}\n\ncustomElements.define('inline-file-grid', InlineFileGrid)\n"
  },
  {
    "path": "app/userland/explorer/js/com/folder/inline-file-list.js",
    "content": "import { BaseFilesView } from './base-files-view.js'\nimport { html } from '../../../vendor/lit-element/lit-element.js'\nimport { classMap } from '../../../vendor/lit-element/lit-html/directives/class-map.js'\nimport { timeDifference } from '../../lib/time.js'\nimport '../file/file-display.js'\nimport baseCSS from '../../../css/com/folder/base-files-view.css.js'\nimport inlineListCSS from '../../../css/com/folder/inline-file-list.css.js'\n\nexport class InlineFileList extends BaseFilesView {\n  static get styles () {\n    return [baseCSS, inlineListCSS]\n  }\n\n  renderItem (item) {\n    var cls = classMap({\n      item: true,\n      folder: item.stat.isDirectory(),\n      selected: this.selection.includes(item)\n    })\n    var driveTitle = item.drive.title || 'Untitled'\n    return html`\n      <div\n        class=${cls}\n        draggable=\"true\"\n        @click=${e => this.onClickItem(e, item)}\n        @dblclick=${e => this.onDblClickItem(e, item)}\n        @contextmenu=${e => this.onContextMenuItem(e, item)}\n        @dragstart=${e => this.onDragstartItem(e, item)}\n        @drop=${e => this.onDropItem(e, item)}\n        data-url=${item.url}\n      >\n        <div class=\"info\">\n          <div>\n            <span class=\"name\">${this.showOrigin ? item.realPath : item.name}</span>\n          </div>\n          ${this.showOrigin ? html`\n            <div>Drive: <a class=\"author\" href=${item.drive.url}>${driveTitle}</a></div>\n          ` : ''}\n          <div>\n            Updated: <span class=\"date\">${timeDifference(item.stat.ctime, true, 'ago')}</span>\n          </div>\n        </div>\n        <div class=\"content\">\n          <file-display\n            horz\n            drive-url=${item.drive.url}\n            pathname=${item.realPath}\n            .info=${item}\n          ></file-display>\n        </div>\n      </div>\n    `\n  }\n}\n\ncustomElements.define('inline-file-list', InlineFileList)\n"
  },
  {
    "path": "app/userland/explorer/js/com/path-ancestry.js",
    "content": "import { LitElement, html } from '../../vendor/lit-element/lit-element.js'\nimport { handleDragDrop } from '../lib/drag-drop.js'\nimport { emit } from '../lib/dom.js'\nimport { joinPath } from '../lib/strings.js'\n\nexport class PathAncestry extends LitElement {\n  static get properties () {\n    return {\n      driveTitle: {type: String, attribute: 'drive-title'},\n      driveInfo: {type: Object},\n      pathAncestry: {type: Array}\n    }\n  }\n\n  constructor () {\n    super()\n    this.driveTitle = undefined\n    this.driveInfo = undefined\n    this.pathAncestry = []\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.driveInfo) return html``\n    return html`\n      <a\n        class=\"author\"\n        href=${this.driveInfo.url}\n        @click=${this.onClickParentFolder}\n        @dragenter=${this.onDragenter}\n        @dragleave=${this.onDragleave}\n        @dragover=${this.onDragOver}\n        @drop=${e => this.onDrop(e, undefined)}\n      >\n        <span class=\"fas fa-fw fa-hdd\"></span> ${this.driveTitle}\n      </a>\n      ${this.renderPathAncestry()}\n    `\n  }\n  \n  renderPathAncestry () {\n    return this.pathAncestry.map(item => {\n      const icon = item.mount ? 'fas fa-external-link-square-alt' : item.stat.isDirectory() ? 'far fa-folder' : 'far fa-file'\n      return html`\n        <span class=\"fas fa-fw fa-angle-right\"></span>\n        <a\n          class=\"name\"\n          href=${joinPath(this.driveInfo.url, item.path)}\n          @click=${this.onClickParentFolder}\n          @dragenter=${this.onDragenter}\n          @dragleave=${this.onDragleave}\n          @dragover=${this.onDragOver}\n          @drop=${e => this.onDrop(e, item)}\n        >\n          <span class=\"fa-fw ${icon}\"></span>\n          ${item.mount ? item.mount.title : item.name}\n        </a>\n      `\n    })\n  }\n\n  // events\n  // =\n\n  onClickParentFolder (e) {\n    e.preventDefault()\n    emit(this, 'goto', {detail: {item: e.currentTarget.getAttribute('href')}})\n  }\n\n  onDragenter (e) {\n    e.preventDefault()\n    e.target.classList.add('drag-hover')\n    return false\n  }\n\n  onDragleave (e) {\n    e.target.classList.remove('drag-hover')\n  }\n\n  onDragOver (e) {\n    e.preventDefault()\n    return false\n  }\n\n  onDrop (e, item) {\n    Array.from(this.querySelectorAll('.drag-hover'), el => el.classList.remove('drag-hover'))\n    var targetPath = item ? item.path : '/'\n    handleDragDrop(e.currentTarget, e.clientX, e.clientY, targetPath, e.dataTransfer)\n  }\n\n}\n\ncustomElements.define('path-ancestry', PathAncestry)"
  },
  {
    "path": "app/userland/explorer/js/com/settings-menu.js",
    "content": "import { html } from '../../vendor/lit-element/lit-element.js'\nimport * as contextMenu from './context-menu.js'\nimport * as loc from '../lib/location.js'\n\nexport function create (app, {x, y}) {\n  function onChangeRenderMode (e, id) {\n    app.onChangeRenderMode(e, id)\n    this.requestUpdate()\n  }\n\n  function onToggleInlineMode (e) {\n    app.onToggleInlineMode()\n    this.requestUpdate()\n  }\n\n  function onChangeSortMode (e) {\n    app.onChangeSortMode(e)\n    this.requestUpdate()\n  }\n  \n  const renderModes = app.renderModes\n  const isViewfile = app.pathInfo.isFile() && loc.getPath().endsWith('.view')\n  const isFolderLike = app.pathInfo.isDirectory() || isViewfile\n\n  return contextMenu.create({\n    x,\n    y,\n    render () {\n      const sortModeOpt = (id, label) => html`\n        <option ?selected=${id === app.sortMode} value=${id}>⇅ Sort by ${label}</option>\n      `\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n        <div class=\"settings-menu\">\n          ${renderModes.length ? html`\n            <h5>View mode</h5>\n            <div class=\"render-modes\">\n              ${renderModes.map(([id, icon, label]) => html`\n                <div\n                  class=\"btn transparent ${id == app.renderMode ? 'pressed' : ''}\"\n                  @click=${e => onChangeRenderMode.call(this, e, id)}\n                  title=\"Change the view to: ${label}\"\n                >\n                  <div><span class=\"fas fa-${icon}\"></span></div>\n                  <div>${label}</div>\n                </div>\n              `)}\n            </div>\n          ` : ''}\n          ${isFolderLike ? html`\n            <div class=\"btn ${app.inlineMode ? 'pressed' : ''}\" @click=${onToggleInlineMode.bind(this)}>\n              <span class=\"far fa-fw fa-${app.inlineMode ? 'check-square' : 'square'}\"></span>\n              Show the content of files\n            </div>\n            <div class=\"sort-modes\">\n              <select @change=${onChangeSortMode.bind(this)}>\n                ${sortModeOpt('name', 'name')}\n                ${sortModeOpt('name-reversed', 'name, reversed')}\n                ${sortModeOpt('newest', 'newest')}\n                ${sortModeOpt('oldest', 'oldest')}\n                ${sortModeOpt('recently-changed', 'recently changed')}\n              </select>\n            </div>\n          ` : ''}\n        </div>\n        <style>\n          .settings-menu {\n            background: #fff;\n            border-radius: 2px;\n            box-sizing: border-box;\n            padding: 12px;\n            box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);\n            transform: translateX(-50%);\n          }\n          .settings-menu > * {\n            margin-bottom: 5px;\n          }\n          .settings-menu > :first-child {\n            margin-top: 0;\n          }\n          .settings-menu > :last-child {\n            margin-bottom: 0;\n          }\n          .btn,\n          select {\n            display: block;\n            -webkit-appearance: none;\n            box-sizing: border-box;\n            border-radius: 4px;\n            cursor: pointer;\n            padding: 6px 8px;\n            border: 1px solid #ccd;\n            color: #556;\n            background: #fff;\n            text-align: center;\n            outline: 0;\n          }\n          .btn.pressed,\n          .btn:hover,\n          select:hover {\n            background: #f5f5fd;\n            border-color: #aab;\n            color: #223;\n          }\n          span.btn {\n            display: inline-block;\n          }\n          select {\n            width: 100%;\n            font-size: inherit;\n            padding-top: 5px;\n            padding-bottom: 4px;\n            text-align-last: center;\n          }\n          .render-modes {\n            display: flex;\n          }\n          .render-modes .btn {\n            width: 100px;\n            height: 80px;\n            margin-right: 5px;\n            text-align: center;\n            line-height: 2.8;\n            padding: 20px 0;\n            font-size: 11px;\n          }\n          .render-modes .fas {\n            font-size: 18px;\n          }\n          .render-modes > div:last-child {\n            margin-right: 0;\n          }\n          .bottom-btn {\n            margin: 8px -12px -12px !important;\n            border: 0;\n            border-top: 1px solid #ccd;\n            border-radius: 0;\n            border-bottom-left-radius: 8px;\n            border-bottom-right-radius: 8px;\n            padding: 10px;\n            background: #f5f5fa;\n            color: #889;\n          }\n          .bottom-btn:hover {\n            color: #667;\n            border-color: #ccd;\n            background: #eeeef5;\n          }\n        </style>\n      `\n    }\n  })\n}"
  },
  {
    "path": "app/userland/explorer/js/com/share-menu.js",
    "content": "import { html } from '../../vendor/lit-element/lit-element.js'\nimport * as contextMenu from './context-menu.js'\nimport * as toast from './toast.js'\nimport { writeToClipboard } from '../lib/clipboard.js'\n\nexport function create ({x, y, targetLabel, url}) {\n  function onClickCopy (e) {\n    writeToClipboard(url)\n    toast.create('Copied to your clipboard')\n  }\n  contextMenu.create({\n    x,\n    y,\n    render () {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n        <div class=\"share-menu\">\n          <p>Anybody with this link can view the ${targetLabel}</p>\n          <p>\n            <input type=\"text\" value=${url}>\n            <a @click=${onClickCopy}><span class=\"fas fa-paste\"></span></a>\n          </p>\n        </div>\n        <style>\n          .share-menu {\n            background: #fff;\n            border-radius: 8px;\n            box-sizing: border-box;\n            padding: 12px;\n            box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);\n          }\n          .share-menu p {\n            position: relative;\n          }\n          .share-menu > :first-child {\n            margin-top: 0;\n          }\n          .share-menu > :last-child {\n            margin-bottom: 0;\n          }\n          input {\n            width: 100%;\n            border: 0;\n            border-radius: 8px;\n            padding: 4px 4px 4px 22px;\n            box-sizing: border-box;\n            background: #f5f5fa;\n            outline: 0;\n          }\n          a {\n            position: absolute;\n            top: 0;\n            left: 0;\n            border-radius: 50%;\n            box-sizing: border-box;\n            padding: 4px 5px;\n            background: #f5f5fa;\n          }\n          a:hover {\n            cursor: pointer;\n            background: #dde;\n          }\n        </style>\n      `\n    }\n  })\n}"
  },
  {
    "path": "app/userland/explorer/js/com/sidebar/contextual-help.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport * as toast from '../toast.js'\nimport { writeToClipboard } from '../../lib/clipboard.js'\nimport { joinPath } from '../../lib/strings.js'\n\nexport class ContextualHelp extends LitElement {\n  static get properties () {\n    return {\n      realPathname: {type: String, attribute: 'real-pathname'},\n      driveInfo: {type: Object},\n      mountInfo: {type: Object},\n      pathInfo: {type: Object},\n      selection: {type: Array},\n    }\n  }\n\n  constructor () {\n    super()\n    this.realPathname = undefined\n    this.driveInfo = undefined\n    this.mountInfo = undefined\n    this.pathInfo = undefined\n    this.selection = []\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  get targetDrive () {\n    if (this.selection.length > 1) return undefined\n    if (this.selection.length === 1 && this.selection[0].mount) return this.selection[0].mount\n    if (this.mountInfo) return this.mountInfo\n    return this.driveInfo\n  }\n\n  get targetItemUrl () {\n    if (this.selection.length === 1) {\n      return this.selection[0].shareUrl\n    }\n    return joinPath(this.targetDrive.url, this.realPathname)\n  }\n\n  get targetItemLabel () {\n    return this.pathInfo.isDirectory() ? 'folder' : 'file'\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const target = this.targetDrive\n    if (!target) return html``\n    return html`\n      <section class=\"help\">\n        <table>\n          ${this.renderUrlCtrl()}\n          ${this.renderVisibilityHelp()}\n          ${this.renderIsWritableHelp()}\n        </table>\n      </section>\n    `\n  }\n\n  renderUrlCtrl () {\n    return html`\n      <tr>\n        <td class=\"tooltip-right\" data-tooltip=\"Click here to copy the URL\" @click=${this.onClickCopyUrl} style=\"cursor: pointer\">\n          <span class=\"fas fa-link\"></span>\n        </td>\n        <td>\n          <input value=\"${this.targetItemUrl}\">\n        </td>\n      </tr>\n    `\n  }\n\n  renderVisibilityHelp () {\n    return html`<tr><td><span class=\"fas fa-globe\"></span></td><td>Anyone with the link can view this ${this.targetItemLabel}.</td></tr>`\n  }\n\n  renderIsWritableHelp () {\n    if (this.targetDrive.writable) {\n      return html`<tr><td><span class=\"fas fa-fw fa-pen\"></span></td><td>Only you can edit this ${this.targetItemLabel}.</td></tr>`\n    }\n    return html`<tr><td><span class=\"fas fa-fw fa-eye\"></span></td><td>You can not edit this ${this.targetItemLabel}.</td></tr>`\n  }\n\n  // events\n  // =\n\n  onClickCopyUrl (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    writeToClipboard(this.targetItemUrl)\n    toast.create('Copied to clipboard')\n  }\n\n}\n\ncustomElements.define('contextual-help', ContextualHelp)"
  },
  {
    "path": "app/userland/explorer/js/com/sidebar/drive-info.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport bytes from '../../../vendor/bytes/index.js'\n\nexport class DriveInfo extends LitElement {\n  static get properties () {\n    return {\n      realUrl: {type: String, attribute: 'real-url'},\n      driveInfo: {type: Object},\n      hasThumb: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.realUrl = undefined\n    this.driveInfo = undefined\n    this.hasThumb = true\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  get title () {\n    var info = this.driveInfo\n    if (info.title) return info.title\n    return 'Untitled'\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.driveInfo) return html``\n    return html`\n      <section>\n        <h1>\n          ${this.hasThumb ? html`\n            <img @error=${this.onThumbError}>\n          ` : ''}\n          <a href=\"/\">${this.title}</a>\n        </h1>\n        ${this.driveInfo.description ? html`<p>${this.driveInfo.description}</p>` : undefined}\n        <p class=\"facts\">\n          ${this.renderType()}\n          ${this.renderSize()}\n        </p>\n      </section>\n    `\n  }\n\n  updated () {\n    // HACK\n    // for reasons I cant understand, just changing the `src` attribute failed to update the image\n    // this solves that issue\n    // -prf\n    try {\n      this.querySelector('img').removeAttribute('src')\n      this.querySelector('img').setAttribute('src', `${this.driveInfo.url}/thumb`)\n    } catch (e) {}\n  }\n\n  renderType () {\n    if (this.driveInfo.type === 'unwalled.garden/person') {\n      return html`<span><span class=\"fas fa-fw fa-user-circle\"></span> Person</span>`\n    }\n    if (this.driveInfo.type === 'unwalled.garden/website') {\n      return html`<span><span class=\"far fa-fw fa-file-alt\"></span> Website</span>`\n    }\n  }\n\n  renderSize () {\n    if (this.driveInfo.size) {\n      return html`<span><span class=\"fas fa-fw fa-save\"></span> ${bytes(this.driveInfo.size)}</span>`\n    }\n  }\n\n  // events\n  // =\n\n  onThumbError () {\n    this.hasThumb = false\n  }\n}\n\ncustomElements.define('drive-info', DriveInfo)"
  },
  {
    "path": "app/userland/explorer/js/com/sidebar/selection-info.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport { repeat } from '../../../vendor/lit-element/lit-html/directives/repeat.js'\nimport bytes from '../../../vendor/bytes/index.js'\nimport { emit } from '../../lib/dom.js'\nimport '../file/file-display.js'\n\nexport class SelectionInfo extends LitElement {\n  static get properties () {\n    return {\n      driveInfo: {type: Object},\n      pathInfo: {type: Object},\n      mountInfo: {type: Object},\n      selection: {type: Array},\n      noPreview: {type: Boolean, attribute: 'no-preview'},\n      metadataHasChanged: {type: Boolean}\n    }\n  }\n\n  constructor () {\n    super()\n    this.title = undefined\n    this.driveInfo = undefined\n    this.pathInfo = undefined\n    this.mountInfo = undefined\n    this.selection = []\n    this.noPreview = undefined\n    this.metadataHasChanged = false\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (this.selection.length > 1) {\n      return html`\n        <section><strong>${this.selection.length} items selected</strong></section>\n      `\n    }\n    var sel = this.selection[0]\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <section>\n        <h3>${sel.path}</h3>\n        ${this.renderSize()}\n        ${sel.mount ? html`\n          <drive-info .driveInfo=${sel.mount}></drive-info>\n        ` : ''}\n        ${!this.noPreview && sel.stat.isFile() ? html`\n          <section style=\"border-radius: 0\">\n            <file-display\n              drive-url=${sel.drive.url}\n              pathname=${sel.realPath}\n              .info=${sel}\n            ></file-display>\n          </section>\n        ` : ''}\n        ${this.renderMetadata()}\n      </section>\n    `\n  }\n\n  renderSize () {\n    const sz = this.selection[0].stat.size\n    if (!sz || this.selection.length > 1) return undefined\n    return html`<p class=\"facts\"><span><span class=\"fas fa-fw fa-save\"></span> ${bytes(sz)}</span></p>`\n  }\n\n  renderMetadata () {\n    if (this.selection[0].stat.isDirectory()) return\n    var isWritable = this.mountInfo ? this.mountInfo.writable : this.driveInfo.writable\n    var entries = Object.entries(this.selection[0].stat.metadata)\n    if (isWritable) entries = entries.concat([['', '']])\n    if (!isWritable && entries.length === 0) return\n    return html`\n      <div class=\"metadata\">\n        <h4>Metadata</h4>\n        ${repeat(entries, entry => `meta-${entry[0]}`, ([k, v]) => html`\n          <div class=\"entry\">\n            <input type=\"text\" name=\"key\" value=${k} @input=${this.onChangeMetadata} ?disabled=${!isWritable} placeholder=\"Key\">\n            <input type=\"text\" name=\"value\" value=${v} @input=${this.onChangeMetadata} ?disabled=${!isWritable} placeholder=\"Value\">\n          </div>\n        `)}\n      </div>\n      ${this.metadataHasChanged ? html`\n        <button class=\"primary\" @click=${this.onClickSaveMetadata}><span class=\"fas fa-fw fa-check\"></span> Save</button>\n      ` : ''}\n    `\n  }\n\n  // events\n  // =\n\n  onChangeMetadata (e) {\n    this.metadataHasChanged = true\n  }\n\n  async onClickSaveMetadata (e) {\n    var newMetadata = {}\n    for (let entryEl of Array.from(this.querySelectorAll('.metadata .entry'))) {\n      let k = entryEl.querySelector('[name=\"key\"]').value.trim()\n      let v = entryEl.querySelector('[name=\"value\"]').value.trim()\n      if (k && v) newMetadata[k] = v\n    }\n    var deletedKeys = []\n    for (let k in this.selection[0].stat.metadata) {\n      if (!(k in newMetadata)) deletedKeys.push(k)\n    }\n    emit(this, 'update-file-metadata', {detail: {path: this.selection[0].path, newMetadata, deletedKeys}})\n    this.selection[0].stat.metadata = newMetadata\n    this.metadataHasChanged = false\n    await this.requestUpdate()\n\n    // make sure the last .entry is empty\n    this.querySelector('.metadata .entry:last-of-type input[name=\"key\"]').value = ''\n    this.querySelector('.metadata .entry:last-of-type input[name=\"value\"]').value = ''\n  }\n}\n\ncustomElements.define('selection-info', SelectionInfo)"
  },
  {
    "path": "app/userland/explorer/js/com/sidebar/viewfile-info.js",
    "content": "import { LitElement, html } from '../../../vendor/lit-element/lit-element.js'\nimport * as loc from '../../lib/location.js'\nimport '../file/file-display.js'\n\nexport class ViewfileInfo extends LitElement {\n  static get properties () {\n    return {\n      currentDriveInfo: {type: Object},\n      pathInfo: {type: Object},\n      viewfileObj: {type: Object}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentDriveInfo = undefined\n    this.pathInfo = undefined\n    this.viewfileObj = undefined\n  }\n\n  createRenderRoot () {\n    return this // no shadow dom\n  }\n\n  get mergeMode () {\n    return this.viewfileObj['unwalled.garden/explorer-view'] && this.viewfileObj['unwalled.garden/explorer-view'].merge\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.viewfileObj) return ''\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <section>\n        <h3><a href=${loc.getUrl()}>${loc.getPath().split('/').pop()}</a></h3>\n        <p class=\"facts\">\n          ${this.renderDrive()}\n        </p>\n      </section>\n      <section>\n        <h4><span class=\"fas fa-fw fa-layer-group\"></span> View query:</h4>\n        ${this.mergeMode ? html`\n          <div class=\"label\" style=\"margin-top: 5px\">\n            <span class=\"fas fa-fw fa-compress-arrows-alt\"></span> Merging folders by ${this.mergeMode}\n          </div>\n        ` : ''}\n        <pre style=\"margin-top: 5px\">${JSON.stringify(this.viewfileObj.query, null, 2)}</pre>\n      </section>\n    `\n  }\n\n  renderDrive () {\n    var drive = this.currentDriveInfo\n    return html`<span><small>Drive:</small> <a href=${drive.url} title=${drive.title}>${drive.title}</a>`\n  }\n\n  // events\n  // =\n\n}\n\ncustomElements.define('viewfile-info', ViewfileInfo)"
  },
  {
    "path": "app/userland/explorer/js/com/toast.js",
    "content": "import {LitElement, html} from '../../vendor/lit-element/lit-element.js'\nimport toastCSS from '../../css/com/toast.css.js'\n\n// exported api\n// =\n\nexport function create (message, type = '', time = 5000, button = null) {\n  // destroy existing\n  destroy()\n\n  // render toast\n  document.body.appendChild(new BeakerToast({message, type, button}))\n  setTimeout(destroy, time)\n}\n\nexport function destroy () {\n  var toast = document.querySelector('beaker-toast')\n\n  if (toast) {\n    // fadeout before removing element\n    toast.shadowRoot.querySelector('.toast-wrapper').classList.add('hidden')\n    setTimeout(() => toast.remove(), 500)\n  }\n}\n\n// internal\n// =\n\n\nclass BeakerToast extends LitElement {\n  constructor ({message, type, button}) {\n    super()\n    this.message = message\n    this.type = type\n    this.button = button\n  }\n\n  render () {\n    const onButtonClick = this.button ? (e) => { destroy(); this.button.click(e) } : undefined\n    return html`\n    <div id=\"toast-wrapper\" class=\"toast-wrapper ${this.button ? '' : 'nomouse'}\">\n      <p class=\"toast ${this.type}\">${this.message} ${this.button ? html`<a class=\"toast-btn\" @click=${onButtonClick}>${this.button.label}</a>` : ''}</p>\n    </div>\n    `\n  }\n}\nBeakerToast.styles = toastCSS\n\ncustomElements.define('beaker-toast', BeakerToast)\n"
  },
  {
    "path": "app/userland/explorer/js/lib/clipboard.js",
    "content": "export function writeToClipboard (str) {\n  var textarea = document.createElement('textarea')\n  textarea.textContent = str\n  document.body.appendChild(textarea)\n  textarea.select()\n  document.execCommand('copy')\n  document.body.removeChild(textarea)\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/config.js",
    "content": "import * as loc from './location.js'\n\nexport function getDriveTitle (info) {\n  return info.title || 'Untitled'\n}\n\nexport function getGlobalSavedConfig (name, fallback = undefined) {\n  var value = localStorage.getItem(`setting:${name}`)\n  if (value === null) return fallback\n  return value\n}\n\nexport function setGlobalSavedConfig (name, value) {\n  localStorage.setItem(`setting:${name}`, value)\n}\n\nexport function getSavedConfig (name, fallback = undefined) {\n  var value = localStorage.getItem(`setting:${name}:${loc.getPath()}`)\n  if (value === null) return getGlobalSavedConfig (name, fallback)\n  return value\n}\n\nexport function setSavedConfig (name, value) {\n  localStorage.setItem(`setting:${name}:${loc.getPath()}`, value)\n}\n\nexport function oneof (v, values) {\n  if (values.includes(v)) return v\n}\n\nexport function getVFCfg (obj, key, values) {\n  if (!obj) return undefined\n  const ns = 'unwalled.garden/explorer-view'\n  if (obj[ns] && typeof obj[ns] === 'object') {\n    return oneof(obj[ns][key], values)\n  }\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/context-menu.js",
    "content": "import { html } from '../../vendor/lit-element/lit-element.js'\nimport { writeToClipboard } from '../lib/clipboard.js'\nimport * as toast from '../com/toast.js'\nimport { joinPath } from './strings.js'\nimport * as loc from './location.js'\n\nexport function constructItems (app) {\n  var items = []\n  if (app.selection.length === 1 || app.pathInfo.isFile()) {\n    let sel = app.selection[0] || app.locationAsItem\n    let writable = app.selection.reduce((acc, v) => acc && v.drive.writable, true)\n    items.push({\n      icon: 'fas fa-fw fa-desktop',\n      label: 'Open in New Tab',\n      click: () => app.goto(app.getShareUrl(sel), true, true)\n    })\n    items.push({\n      icon: html`\n        <i class=\"fa-stack\" style=\"font-size: 6px\">\n          <span class=\"far fa-fw fa-hdd fa-stack-2x\"></span>\n          <span class=\"fas fa-fw fa-share fa-stack-1x\" style=\"margin-left: -10px; margin-top: -5px; font-size: 7px\"></span>\n        </i>\n      `,\n      label: 'Copy Address',\n      disabled: !app.canShare(sel),\n      click: () => {\n        writeToClipboard(sel.shareUrl)\n        toast.create('Copied to clipboard')\n      }\n    })\n    items.push({\n      icon: 'custom-path-icon',\n      label: `Copy Path`,\n      click: () => {\n        var path = app.selection[0] ? sel.path : loc.getPath()\n        writeToClipboard(path)\n        toast.create('Copied to clipboard')\n      }\n    })\n    if (!app.isViewingQuery) {\n      items.push({type: 'separator', ctxOnly: true})\n      items.push({\n        label: 'Open in Pane Right',\n        ctxOnly: true,\n        click: () => {\n          beaker.browser.newPane(sel.shareUrl, {splitDir: 'vert'})\n        }\n      })\n      items.push({\n        label: 'Open in Pane Below',\n        ctxOnly: true,\n        click: () => {\n          beaker.browser.newPane(sel.shareUrl, {splitDir: 'horz'})\n        }\n      })\n      items.push('-')\n      if (sel.stat.isFile()) {\n        items.push({\n          icon: 'fas fa-fw fa-edit',\n          label: 'Edit',\n          disabled: !sel.stat.isFile(),\n          click: async () => {\n            let url\n            if (app.selection[0]) {\n              url = joinPath(loc.getOrigin(), sel.path)\n            } else {\n              url = loc.getUrl()\n            }\n            window.open(`beaker://editor/?url=${url}`)\n          }\n        })\n      }\n      items.push({\n        icon: 'fas fa-fw fa-i-cursor',\n        label: 'Rename',\n        disabled: !writable,\n        click: () => app.onRename()\n      })\n      items.push({\n        icon: 'fas fa-fw fa-trash',\n        label: 'Delete',\n        disabled: !writable,\n        click: () => app.onDelete()\n      })\n      items.push('-')\n      if (!sel.stat.isFile()) {\n        items.push({\n          icon: html`<i style=\"padding-left: 2px; font-size: 16px; box-sizing: border-box\">◨</i>`,\n          label: 'Diff / merge',\n          click: () => app.doDiff(sel.url)\n        })\n      }\n      items.push({\n        icon: 'fas fa-fw fa-file-export',\n        label: 'Export',\n        click: () => app.onExport()\n      })\n    }\n  } else if (app.selection.length > 1) {\n    let writable = app.selection.reduce((acc, v) => acc && v.drive.writable, true)\n    items.push({\n      icon: 'fas fa-fw fa-trash',\n      label: 'Delete',\n      disabled: !writable,\n      click: () => app.onDelete()\n    })\n    items.push({\n      icon: 'fas fa-fw fa-file-export',\n      label: 'Export',\n      click: () => app.onExport()\n    })\n  } else {\n    let writable = app.currentDriveInfo.writable\n    items.push({ctxOnly: true, id: 'builtin:back'})\n    items.push({ctxOnly: true, id: 'builtin:forward'})\n    items.push({ctxOnly: true, id: 'builtin:reload'})\n    items.push({type: 'separator', ctxOnly: true})\n    items.push({ctxOnly: true, id: 'builtin:split-pane-vert'})\n    items.push({ctxOnly: true, id: 'builtin:split-pane-horz'})\n    items.push({ctxOnly: true, id: 'builtin:move-pane'})\n    items.push({ctxOnly: true, id: 'builtin:close-pane'})\n    items.push({type: 'separator', ctxOnly: true})\n\n    items.push({\n      icon: 'far fa-fw fa-file',\n      label: 'New file',\n      disabled: !writable,\n      click: () => app.onNewFile()\n    })\n    items.push({\n      icon: 'far fa-fw fa-folder',\n      label: 'New folder',\n      disabled: !writable,\n      click: () => app.onNewFolder()\n    })\n    items.push({\n      icon: 'fas fa-fw fa-long-arrow-alt-right custom-link-icon',\n      label: 'New mount',\n      disabled: !writable,\n      click: () => app.onNewMount()\n    })\n    items.push('-')\n    items.push({\n      icon: 'fas fa-fw fa-code-branch',\n      label: 'Fork this drive',\n      disabled: !app.canShare(app.locationAsItem),\n      click: () => app.onForkDrive()\n    })\n    items.push({\n      icon: html`<i style=\"padding-left: 2px; font-size: 16px; box-sizing: border-box\">◨</i>`,\n      label: 'Diff / merge',\n      click: () => app.doDiff(loc.getUrl())\n    })\n    items.push({\n      icon: 'fas fa-fw fa-file-import',\n      label: 'Import file(s)',\n      disabled: !writable,\n      click: () => app.onImportFiles()\n    })\n    items.push({\n      icon: 'fas fa-fw fa-file-import',\n      label: 'Import folder(s)',\n      disabled: !writable,\n      click: () => app.onImportFolders()\n    })\n    items.push({\n      icon: 'fas fa-fw fa-file-export',\n      label: 'Export files',\n      click: () => app.onExport()\n    })\n  }\n  items.push({type: 'separator', ctxOnly: true})\n  items.push({id: 'builtin:inspect-element', ctxOnly: true})\n  return items\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/dom.js",
    "content": "export function findParent (node, test) {\n  if (typeof test === 'string') {\n    // classname default\n    var cls = test\n    test = el => el.classList && el.classList.contains(cls)\n  }\n\n  while (node) {\n    if (test(node)) {\n      return node\n    }\n    node = node.parentNode\n  }\n}\n\nexport function on (el, event, fn, opts) {\n  el.addEventListener(event, fn, opts)\n}\n\nexport function once (el, event, fn, opts) {\n  opts = opts || {}\n  opts.once = true\n  el.addEventListener(event, fn, opts)\n}\n\nexport function emit (el, evt, opts = {}) {\n  opts.bubbles = ('bubbles' in opts) ? opts.bubbles : true\n  opts.composed = ('composed' in opts) ? opts.composed : true\n  el.dispatchEvent(new CustomEvent(evt, opts))\n}\n\n/*!\n * Dynamically changing favicons with JavaScript\n * Works in all A-grade browsers except Safari and Internet Explorer\n * Demo: http://mathiasbynens.be/demo/dynamic-favicons\n */\n\nvar _head = document.head || document.getElementsByTagName('head')[0] // https://stackoverflow.com/a/2995536\nexport function changeFavicon (src) {\n  var link = document.createElement('link')\n  var oldLink = document.getElementById('dynamic-favicon')\n  link.id = 'dynamic-favicon'\n  link.rel = 'shortcut icon'\n  link.href = src\n  if (oldLink) {\n    _head.removeChild(oldLink)\n  }\n  _head.appendChild(link)\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/drag-drop.js",
    "content": "import { html } from '../../vendor/lit-element/lit-element.js'\nimport * as toast from '../com/toast.js'\nimport { joinPath, pluralize } from './strings.js'\nimport * as contextMenu from '../com/context-menu.js'\nimport { doCopy, doMove, doImport, canWriteTo } from './files.js'\nimport * as loc from './location.js'\n\nexport async function handleDragDrop (targetEl, x, y, targetPath, dataTransfer) {\n  if (targetPath === loc.getPath()) {\n    if (dataTransfer.files && dataTransfer.files.length) {\n      // files dragged into the window\n      let targetUrl = joinPath(loc.getOrigin(), targetPath)\n      var res = await beaker.shell.importFilesAndFolders(targetUrl, Array.from(dataTransfer.files, f => f.path))\n      toast.create(`Imported ${res.numImported} ${pluralize(res.numImported, 'item')}`)\n      return\n    }\n    // TODO:\n    // currently we ignore drops that are onto the current location\n    // eventually drops may come from other tabs and we need to handle those\n    // -prf\n    return\n  }\n\n  if (targetEl) {\n    targetEl.classList.add('drop-target')\n  }\n\n  var text = dataTransfer.getData('text/plain')\n  if (text) {\n    await handleDragDropUrls(x, y, targetPath, text.split('\\n'))\n  }\n  // TODO: handle dropped files\n\n  if (targetEl) {\n    targetEl.classList.remove('drop-target')\n  }\n}\n\nexport async function handleDragDropUrls (x, y, targetPath, urls) {\n  var targetUrl = joinPath(loc.getOrigin(), targetPath)\n  var targetName = targetPath.split('/').pop()\n  var items\n  if (await canWriteTo(targetUrl)) {\n    items = [\n      html`<div class=\"section-header small light\">${urls.length} ${pluralize(urls.length, 'item')}...</div>`,\n      {\n        icon: 'far fa-copy',\n        label: `Copy to ${targetName}`,\n        async click () {\n          let n = 0\n          for (let url of urls) {\n            try {\n              await doCopy({sourceItem: url, targetFolder: targetUrl})\n              n++\n            } catch (e) {\n              console.error(e)\n              let niceError = e.toString().split(':').slice(1).join(':').trim()\n              toast.create(`${niceError}. ${n} ${pluralize(n, 'item')} copied.`, 'error')\n              return\n            }\n            toast.create(`Copied ${n} ${pluralize(n, 'item')}`)\n          }\n        }\n      },\n      {\n        icon: 'cut',\n        label: `Move to ${targetName}`,\n        async click () {\n          let n = 0\n          for (let url of urls) {\n            try {\n              await doMove({sourceItem: url, targetFolder: targetUrl})\n              n++\n            } catch (e) {\n              console.error(e)\n              let niceError = e.toString().split(':').slice(1).join(':').trim()\n              toast.create(`${niceError}. ${n} ${pluralize(n, 'item')} copied.`, 'error')\n              return\n            }\n            toast.create(`Move ${n} ${pluralize(n, 'item')}`)\n          }\n        }\n      },\n      '-',\n      {\n        icon: 'times-circle',\n        label: `Cancel`,\n        click: () => {}\n      }\n    ]\n  } else {\n    items = [\n      html`<div class=\"section-header small light\"><span class=\"fas fa-fw fa-exclamation-triangle\"></span> Can't drop here</div>`,\n      html`<div class=\"section-header\" style=\"font-size: 14px\">The target folder is read-only.</div>`,\n      '-',\n      {\n        icon: 'times-circle',\n        label: `Cancel`,\n        click: () => {}\n      }\n    ]\n  }\n  await contextMenu.create({\n    x,\n    y,\n    roomy: false,\n    noBorders: true,\n    fontAwesomeCSSUrl: 'beaker://explorer/css/font-awesome.css',\n    style: `padding: 4px 0`,\n    items\n  })\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/files.js",
    "content": "import { joinPath } from './strings.js'\n\nexport function toSimpleItemGroups (items) {\n  var groups = {}\n  const add = (id, label, item) => {\n    if (!groups[id]) groups[id] = {id, label, items: [item]}\n    else groups[id].items.push(item)\n  }\n  for (let i of items) {\n    if (i.stat.isDirectory()) {\n      add('folders', 'Folders', i)\n    } else {\n      add('files', 'Files', i)\n    }\n  }\n\n  const groupsOrder = ['folders', 'files']\n  var groupsArr = []\n  for (let id in groups) {\n    groupsArr[groupsOrder.indexOf(id)] = groups[id]\n  }\n  return groupsArr\n}\n\nexport function toSemanticItemGroups (items) {\n  var groups = {}\n  const add = (id, label, item) => {\n    if (!groups[id]) groups[id] = {id, label, items: [item]}\n    else groups[id].items.push(item)\n  }\n  for (let i of items) {\n    if (i.stat.mount && i.stat.mount.key) {\n      switch (i.mount.type) {\n        case 'unwalled.garden/person': add('users', 'Users', i); break\n        case 'website': add('websites', 'Websites', i); break\n        case 'application': add('applications', 'Applications', i); break\n        case 'webterm.sh/cmd-pkg': add('commands', 'Webterm Commands', i); break\n        default: add('drives', 'Drives', i)\n      }\n    } else if (i.stat.isDirectory()) {\n      add('folders', 'Folders', i)\n    } else if (i.name.endsWith('.view')) {\n      add('views', 'Views', i)\n    } else {\n      add('files', 'Files', i)\n    }\n  }\n\n  const groupsOrder = ['folders', 'users', 'websites', 'applications', 'commands', 'drives', 'views', 'files']\n  var groupsArr = []\n  for (let id in groups) {\n    groupsArr[groupsOrder.indexOf(id)] = groups[id]\n  }\n  return groupsArr\n}\n\nexport function getSubicon (item) {\n  // TODO any?\n}\n\nasync function doCopyOrMove ({sourceItem, targetFolder}, op) {\n  let sourceItemParsed = new URL(sourceItem)\n  var sourceDrive = beaker.hyperdrive.drive(sourceItemParsed.hostname)\n  let targetFolderParsed = new URL(targetFolder)\n  var targetDrive = beaker.hyperdrive.drive(targetFolderParsed.hostname)\n\n  var name = sourceItemParsed.pathname.split('/').pop()\n  var targetPath = joinPath(targetFolderParsed.pathname, name)\n  var targetSt = await (targetDrive.stat(targetPath).catch(e => undefined))\n  if (targetSt) {\n    if (targetSt.isFile() && !confirm(`${name} already exists in the target folder. Overwrite?`)) {\n      throw new Error('Canceled')\n    } else if (targetSt.isDirectory()) {\n      alert(`A folder named \"${name}\" already exists in the target folder and cannot be overwritten.`)\n      throw new Error('Canceled')\n    }\n  }\n\n  return op(sourceDrive, sourceItemParsed.pathname, targetDrive, targetPath)\n}\n\nexport async function doCopy (params) {\n  return doCopyOrMove(params, (sourceDrive, sourcePath, targetDrive, targetPath) => sourceDrive.copy(sourcePath, joinPath(targetDrive.url, targetPath)))\n}\n\nexport async function doMove (params) {\n  return doCopyOrMove(params, (sourceDrive, sourcePath, targetDrive, targetPath) => sourceDrive.rename(sourcePath, joinPath(targetDrive.url, targetPath)))\n}\n\nexport function doImport (targetFolder, fileOrFolder) {\n  let targetFolderParsed = new URL(targetFolder)\n  var targetDrive = beaker.hyperdrive.drive(targetFolderParsed.hostname)\n\n  const handleFileOrFolder = (entry, path = '') => {\n    if (entry.isDirectory) {\n      return handleFolder(entry, path)\n    } else if (entry.isFile) {\n      return handleFile(entry, path)\n    }\n  }\n\n  const handleFolder = (folderEntry, path) => {\n    return new Promise((resolve, reject) => {\n      var dirReader = folderEntry.createReader()\n      dirReader.readEntries(async (entries) => {\n        try {\n          var name = folderEntry.name\n          var targetPath = joinPath(path, name)\n          var targetSt = await (targetDrive.stat(targetPath).catch(e => undefined))\n          if (targetSt) {\n            if (!confirm(`${name} already exists in the target folder. Overwrite?`)) {\n              throw new Error('Canceled')\n            }\n            if (targetSt.isFile()) {\n              await targetDrive.unlink(targetPath)\n            } else {\n              await targetDrive.rmdir(targetPath, {recursive: true})\n            }\n          }\n          await targetDrive.mkdir(targetPath)\n          for (let entry of entries) {\n            await handleFileOrFolder(entry, targetPath)\n          }\n          resolve()\n        } catch (e) {\n          reject(e)\n        }\n      })\n    })\n  }\n\n  const handleFile = (fileEntry, path) => {\n    return new Promise((resolve, reject) => {\n      fileEntry.file(file => {\n        let reader = new FileReader()\n        reader.readAsArrayBuffer(file)\n        reader.onloadend = async () => {\n          try {\n            var name = file.name\n            var targetPath = joinPath(path, name)\n            var targetSt = await (targetDrive.stat(targetPath).catch(e => undefined))\n            if (targetSt) {\n              if (targetSt.isFile() && !confirm(`${name} already exists in the target folder. Overwrite?`)) {\n                throw new Error('Canceled')\n              } else if (targetSt.isDirectory()) {\n                alert(`A folder named \"${name}\" already exists in the target folder and cannot be overwritten.`)\n                throw new Error('Canceled')\n              }\n            }\n            await targetDrive.writeFile(targetPath, reader.result, 'buffer')\n            resolve()\n          } catch (e) {\n            reject(e)\n          }\n        }\n      })\n    })\n  }\n  \n  handleFileOrFolder(fileOrFolder.webkitGetAsEntry(), targetFolderParsed.pathname || '')\n}\n\nexport async function canWriteTo (url) {\n  let urlp = new URL(url)\n  let drive = beaker.hyperdrive.drive(urlp.host)\n  let acc = []\n  for (let segment of urlp.pathname.split('/')) {\n    acc.push(segment)\n    let st = await drive.stat(acc.join('/'))\n    if (st.mount && st.mount.key) {\n      drive = beaker.hyperdrive.drive(st.mount.key)\n      acc = []\n    }\n  }\n  return (await drive.getInfo()).writable\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/fs.js",
    "content": "import { joinPath, slugify } from './strings.js'\n\n// exported\n// =\n\n/**\n * @param {Object} drive\n * @param {string} containingPath\n * @param {string} title\n * @param {string} ext\n * @returns {Promise<string>}\n */\nexport async function getAvailableName (drive, containingPath, title, ext = '') {\n  var basename = slugify((title || '').trim() || 'untitled')\n  for (let i = 1; i < 1e9; i++) {\n    let name = ((i === 1) ? basename : `${basename}-${i}`) + (ext ? `.${ext}` : '')\n    let st = await drive.stat(joinPath(containingPath, name)).catch(e => null)\n    if (!st) return name\n  }\n  // yikes if this happens\n  throw new Error('Unable to find an available name for ' + title)\n}\n"
  },
  {
    "path": "app/userland/explorer/js/lib/is-ext-binary.js",
    "content": "const BIN_EXTS = [\n  '3dm',\n  '3ds',\n  '3g2',\n  '3gp',\n  '7z',\n  'a',\n  'aac',\n  'adp',\n  'ai',\n  'aif',\n  'aiff',\n  'alz',\n  'ape',\n  'apk',\n  'ar',\n  'arj',\n  'asf',\n  'au',\n  'avi',\n  'bak',\n  'baml',\n  'bh',\n  'bin',\n  'bk',\n  'bmp',\n  'btif',\n  'bz2',\n  'bzip2',\n  'cab',\n  'caf',\n  'cgm',\n  'class',\n  'cmx',\n  'cpio',\n  'cr2',\n  'cur',\n  'dat',\n  'dcm',\n  'deb',\n  'dex',\n  'djvu',\n  'dll',\n  'dmg',\n  'dng',\n  'doc',\n  'docm',\n  'docx',\n  'dot',\n  'dotm',\n  'dra',\n  'DS_Store',\n  'dsk',\n  'dts',\n  'dtshd',\n  'dvb',\n  'dwg',\n  'dxf',\n  'ecelp4800',\n  'ecelp7470',\n  'ecelp9600',\n  'egg',\n  'eol',\n  'eot',\n  'epub',\n  'exe',\n  'f4v',\n  'fbs',\n  'fh',\n  'fla',\n  'flac',\n  'fli',\n  'flv',\n  'fpx',\n  'fst',\n  'fvt',\n  'g3',\n  'gh',\n  'gif',\n  'graffle',\n  'gz',\n  'gzip',\n  'h261',\n  'h263',\n  'h264',\n  'icns',\n  'ico',\n  'ief',\n  'img',\n  'ipa',\n  'iso',\n  'jar',\n  'jpeg',\n  'jpg',\n  'jpgv',\n  'jpm',\n  'jxr',\n  'key',\n  'ktx',\n  'lha',\n  'lib',\n  'lvp',\n  'lz',\n  'lzh',\n  'lzma',\n  'lzo',\n  'm3u',\n  'm4a',\n  'm4v',\n  'mar',\n  'mdi',\n  'mht',\n  'mid',\n  'midi',\n  'mj2',\n  'mka',\n  'mkv',\n  'mmr',\n  'mng',\n  'mobi',\n  'mov',\n  'movie',\n  'mp3',\n  'mp4',\n  'mp4a',\n  'mpeg',\n  'mpg',\n  'mpga',\n  'mxu',\n  'nef',\n  'npx',\n  'numbers',\n  'nupkg',\n  'o',\n  'oga',\n  'ogg',\n  'ogv',\n  'otf',\n  'pages',\n  'pbm',\n  'pcx',\n  'pdb',\n  'pdf',\n  'pea',\n  'pgm',\n  'pic',\n  'png',\n  'pnm',\n  'pot',\n  'potm',\n  'potx',\n  'ppa',\n  'ppam',\n  'ppm',\n  'pps',\n  'ppsm',\n  'ppsx',\n  'ppt',\n  'pptm',\n  'pptx',\n  'psd',\n  'pya',\n  'pyc',\n  'pyo',\n  'pyv',\n  'qt',\n  'rar',\n  'ras',\n  'raw',\n  'resources',\n  'rgb',\n  'rip',\n  'rlc',\n  'rmf',\n  'rmvb',\n  'rtf',\n  'rz',\n  's3m',\n  's7z',\n  'scpt',\n  'sgi',\n  'shar',\n  'sil',\n  'sketch',\n  'slk',\n  'smv',\n  'snk',\n  'so',\n  'stl',\n  'suo',\n  'sub',\n  'swf',\n  'tar',\n  'tbz',\n  'tbz2',\n  'tga',\n  'tgz',\n  'thmx',\n  'tif',\n  'tiff',\n  'tlz',\n  'ttc',\n  'ttf',\n  'txz',\n  'udf',\n  'uvh',\n  'uvi',\n  'uvm',\n  'uvp',\n  'uvs',\n  'uvu',\n  'viv',\n  'vob',\n  'war',\n  'wav',\n  'wax',\n  'wbmp',\n  'wdp',\n  'weba',\n  'webm',\n  'webp',\n  'whl',\n  'wim',\n  'wm',\n  'wma',\n  'wmv',\n  'wmx',\n  'woff',\n  'woff2',\n  'wrm',\n  'wvx',\n  'xbm',\n  'xif',\n  'xla',\n  'xlam',\n  'xls',\n  'xlsb',\n  'xlsm',\n  'xlsx',\n  'xlt',\n  'xltm',\n  'xltx',\n  'xm',\n  'xmind',\n  'xpi',\n  'xpm',\n  'xwd',\n  'xz',\n  'z',\n  'zip',\n  'zipx'\n]\n\nexport function isFilenameBinary (str = '') {\n  return BIN_EXTS.includes(str.split('.').pop())\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/location.js",
    "content": "var url\nvar urlp\nvar isHyperViewer = false\n\nif (location.protocol === 'hyper:') {\n  isHyperViewer = true\n  url = location.toString()\n  urlp = new URL(url)\n} else {\n  url = location.pathname.slice(1) // slice past the '/'\n  if (url && url.startsWith('hyper://')) {\n    // remove the 'hyper://'\n    history.replaceState(undefined, document.title, window.location.origin + '/' + url.slice('hyper://'.length))\n  } else if (url && !url.includes('://')) {\n    url = 'hyper://' + url\n  }\n  try {\n    urlp = new URL(url)\n  } catch (e) {\n    urlp = {hostname: undefined, pathname: undefined}\n  }\n}\n\nexport function getUrl () {\n  return url || undefined\n}\n\nexport function setUrl (url) {\n  if (isHyperViewer) {\n    window.location = url\n  } else {\n    window.location = `/${url.replace(/^hyper:\\/\\//, '')}`\n  }\n}\n\nexport function setPath (path) {\n  urlp.pathname = path\n  setUrl(urlp.toString())\n}\n\nexport function openUrl (url) {\n  window.open(`${window.location.origin}/${url.replace(/^hyper:\\/\\//, '')}`)\n}\n\nexport function getOrigin () {\n  return urlp.origin\n}\n\nexport function getHostname () {\n  return urlp.hostname\n}\n\nexport function getPath () {\n  return urlp.pathname\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/strings.js",
    "content": "export const DAT_KEY_REGEX = /[0-9a-f]{64}/i\n\nexport function ucfirst (str) {\n  if (!str) str = ''\n  if (typeof str !== 'string') str = '' + str\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function pluralize (num, base, suffix = 's') {\n  if (num === 1) { return base }\n  return base + suffix\n}\n\nexport function shorten (str, n = 6) {\n  if (str.length > (n + 3)) {\n    return str.slice(0, n) + '...'\n  }\n  return str\n}\n\nexport function joinPath (...args) {\n  var str = args[0]\n  for (let v of args.slice(1)) {\n    v = v && typeof v === 'string' ? v : ''\n    let left = str.endsWith('/')\n    let right = v.startsWith('/')\n    if (left !== right) str += v\n    else if (left) str += v.slice(1)\n    else str += '/' + v\n  }\n  return str\n}\n\nexport function shortenAllKeys (str = '') {\n  return str.replace(/[0-9a-f]{64}/ig, (key) => `${key.slice(0, 4)}..${key.slice(-2)}`)\n}\n\nexport function toDomain (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    return urlParsed.hostname\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nexport function toNiceDomain (str, len=4) {\n  var domain = toDomain(str)\n  if (DAT_KEY_REGEX.test(domain)) {\n    domain = `${domain.slice(0, len)}..${domain.slice(-2)}`\n  }\n  return domain\n}\n\nexport function toNiceUrl (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    if (DAT_KEY_REGEX.test(urlParsed.hostname)) {\n      urlParsed.hostname = `${urlParsed.hostname.slice(0, 4)}..${urlParsed.hostname.slice(-2)}`\n    }\n    return urlParsed.toString()\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nexport function makeSafe (str = '') {\n  return str.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/&/g, '&amp;').replace(/\"/g, '&quot;')\n}\n\n// search results are returned from beaker's search APIs with nonces wrapping the highlighted sections\n// e.g. a search for \"test\" might return \"the {500}test{/500} result\"\n// this enables us to safely escape the HTML, then replace the nonces with <strong> tags\nexport function highlightSearchResult (str = '', nonce = 0) {\n  var start = new RegExp(`\\\\{${nonce}\\\\}`, 'g') // eg {500}\n  var end = new RegExp(`\\\\{/${nonce}\\\\}`, 'g') // eg {/500}\n  return makeSafe(str).replace(start, '<strong>').replace(end, '</strong>')\n}\n\nexport function slugifyUrl (str = '') {\n  try {\n    let url = new URL(str)\n    str = url.protocol + url.hostname + url.pathname + url.search + url.hash\n  } catch (e) {\n    // ignore\n  }\n  return slugify(str)\n}\n\nconst reservedChars = /[^a-z0-9\\-._~!$&'()*+,;=:@\\/\\s]/g\nconst endingDashes = /([-]+$)/g\nexport function slugify (str = '') {\n  return str.toLowerCase().replace(reservedChars, '-').replace(endingDashes, '')\n}\n\nexport function normalizeUrl (str = '') {\n  try {\n    let url = new URL(str)\n    let res = url.protocol + '//' + url.hostname\n    if (url.port) res += ':' + url.port\n    res += url.pathname.replace(/(\\/)$/, '') || '/'\n    if (url.search && url.search !== '?') res += url.search\n    if (url.hash && url.hash !== '#') res += url.hash\n    return res\n  } catch (e) {\n    return str\n  }\n}\n\nexport function changeURLScheme (url = '', scheme = '') {\n  try {\n    let urlp = new URL(url)\n    urlp.protocol = scheme\n    return urlp.toString()\n  } catch (e) {\n    return url\n  }\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/time.js",
    "content": "import {pluralize} from './strings.js'\n\nconst shortFormatter = new Intl.DateTimeFormat('en-US', {\n  month: 'short',\n  day: 'numeric'\n})\nconst longFormatter = new Intl.DateTimeFormat('en-US', {\n  month: 'short',\n  year: 'numeric',\n  day: 'numeric'\n})\nconst yearFormatter = new Intl.DateTimeFormat('en-US', {year: 'numeric'})\nconst CURRENT_YEAR = yearFormatter.format(new Date())\n\nexport function shortDate (ts) {\n  ts = new Date(ts)\n  var year = yearFormatter.format(ts)\n  var formatter = (year === CURRENT_YEAR) ? shortFormatter : longFormatter\n  return formatter.format(ts)\n}\n\n// simple timediff fn\n// replace this with Intl.RelativeTimeFormat when it lands in Beaker\n// https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time-eg-2-seconds-ago-one-week-ago-etc-best\nconst msPerMinute = 60 * 1000\nconst msPerHour = msPerMinute * 60\nconst msPerDay = msPerHour * 24\nconst msPerMonth = msPerDay * 30\nconst msPerYear = msPerDay * 365\nconst now = Date.now()\nexport function timeDifference (ts, short = false, postfix = 'ago') {\n  ts = Number(new Date(ts))\n  var elapsed = now - ts\n  if (elapsed < 1) elapsed = 1 // let's avoid 0 and negative values\n  if (elapsed < msPerMinute) {\n    let n = Math.round(elapsed/1000)\n    return `${n}${short ? 's' : pluralize(n, ' second')} ${postfix}`\n  } else if (elapsed < msPerHour) {\n    let n = Math.round(elapsed/msPerMinute)\n    return `${n}${short ? 'm' : pluralize(n, ' minute')} ${postfix}`\n  } else if (elapsed < msPerDay) {\n    let n = Math.round(elapsed/msPerHour)\n    return `${n}${short ? 'h' : pluralize(n, ' hour')} ${postfix}`\n  } else if (elapsed < msPerMonth) {\n    let n = Math.round(elapsed/msPerDay)\n    return `${n}${short ? 'd' : pluralize(n, ' day')} ${postfix}`\n  } else if (elapsed < msPerYear) {\n    let n = Math.round(elapsed/msPerMonth)\n    return `${n}${short ? 'mo' : pluralize(n, ' month')} ${postfix}`\n  } else {\n    let n = Math.round(elapsed/msPerYear)\n    return `${n}${short ? 'yr' : pluralize(n, ' year')} ${postfix}`\n  }\n}"
  },
  {
    "path": "app/userland/explorer/js/lib/viewfile.js",
    "content": "export function validateViewfile (view) {\n  if (typeof view.viewfile !== 'number' || view.viewfile < 1) {\n    throw new Error('Unrecognized version (\"viewfile\" attribute): ' + view.viewfile)\n  }\n  if (!view.query || typeof view.query !== 'object') {\n    throw new Error('No \"query\" is specified in the viewfile')\n  }\n  if (!view.query.path) {\n    throw new Error('No \"query.path\" is specified in the viewfile')\n  }\n  if (Array.isArray(view.query.path)) {\n    if (!view.query.path.every(p => typeof p === 'string')) {\n      throw new Error('The \"query.path\" includes invalid (non-string) values')\n    }\n  } else if (typeof view.query.path !== 'string') {\n    throw new Error('The \"query.path\" is invalid (it must be a string or array of strings)')\n  }\n}"
  },
  {
    "path": "app/userland/explorer/js/main.js",
    "content": "import { LitElement, html } from '../vendor/lit-element/lit-element.js'\nimport { classMap } from '../vendor/lit-element/lit-html/directives/class-map.js'\nimport { repeat } from '../vendor/lit-element/lit-html/directives/repeat.js'\nimport { joinPath, pluralize } from './lib/strings.js'\nimport { timeDifference } from './lib/time.js'\nimport * as toast from './com/toast.js'\nimport * as contextMenu from './com/context-menu.js'\nimport * as shareMenu from './com/share-menu.js'\nimport { getAvailableName } from './lib/fs.js'\nimport { toSimpleItemGroups, getSubicon } from './lib/files.js'\nimport * as loc from './lib/location.js'\nimport { constructItems as constructContextMenuItems } from './lib/context-menu.js'\nimport * as settingsMenu from './com/settings-menu.js'\nimport { getDriveTitle, getGlobalSavedConfig, setGlobalSavedConfig, getVFCfg } from './lib/config.js'\nimport { validateViewfile } from './lib/viewfile.js'\nimport mainCSS from '../css/main.css.js'\nimport './view/file.js'\nimport './view/folder.js'\nimport './view/query.js'\nimport './com/path-ancestry.js'\nimport './com/sidebar/drive-info.js'\nimport './com/sidebar/viewfile-info.js'\nimport './com/sidebar/selection-info.js'\nimport './com/sidebar/contextual-help.js'\n\nconst LOADING_STATES = {\n  INITIAL: 0,\n  CONTENT: 1,\n  LOADED: 2\n}\n\nexport class ExplorerApp extends LitElement {\n  static get properties () {\n    return {\n      selection: {type: Array},\n      renderMode: {type: String},\n      inlineMode: {type: Boolean},\n      sortMode: {type: String},\n      drives: {type: Array},\n      profiles: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return mainCSS\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n\n    // location information\n    this.driveInfo = undefined\n    this.pathInfo = undefined\n    this.mountInfo = undefined\n    this.pathAncestry = []\n    this.items = []\n    this.viewfileObj = undefined\n    this.driveTitle = undefined\n    this.mountTitle = undefined\n    \n    // UI state\n    this.loadingState = LOADING_STATES.INITIAL\n    this.errorState = undefined\n    this.attachedPane = undefined\n    this.selection = []\n    this.renderMode = undefined\n    this.inlineMode = false\n    this.sortMode = undefined\n\n    beaker.panes.addEventListener('pane-attached', e => {\n      this.attachedPane = beaker.panes.getAttachedPane()\n      if (loc.getUrl() !== this.attachedPane.url) {\n        loc.setUrl(this.attachedPane.url)\n      }\n    })\n    beaker.panes.addEventListener('pane-detached', e => {\n      this.attachedPane = undefined\n    })\n    beaker.panes.addEventListener('pane-navigated', e => {\n      if (loc.getUrl() !== e.detail.url) {\n        loc.setUrl(e.detail.url)\n      }\n    })\n\n    ;(async () => {\n      this.attachedPane = beaker.panes.getAttachedPane()\n      if (this.attachedPane) {\n        // already attached, drive them\n        if (loc.getUrl() && loc.getUrl() !== this.attachedPane.url) {\n          beaker.panes.navigate(this.attachedPane.id, loc.getUrl())\n        }\n      } else {\n        // try to attach and then follow their url\n        this.attachedPane = await beaker.panes.attachToLastActivePane()\n        if (this.attachedPane && loc.getUrl() !== this.attachedPane.url) {\n          loc.setUrl(this.attachedPane.url)\n          return\n        }\n      }\n\n      this.load()\n    })()\n  }\n\n  getRealPathname (pathname) {\n    var slicePoint = this.mountInfo ? (this.mountInfo.mountPath.length + 1) : 0\n    return pathname.slice(slicePoint) || '/'\n  }\n\n  getRealUrl (pathname) {\n    return joinPath(this.currentDriveInfo.url, this.getRealPathname(pathname))\n  }\n\n  get filename () {\n    return loc.getPath().split('/').pop()\n  }\n\n  get realUrl () {\n    return this.getRealUrl(loc.getPath())\n  }\n\n  get realPathname () {\n    return this.getRealPathname(loc.getPath())\n  }\n\n  get currentDriveInfo () {\n    return this.mountInfo || this.driveInfo\n  }\n\n  get currentDriveTitle () {\n    return this.mountTitle || this.driveTitle\n  }\n\n  get locationAsItem () {\n    return {\n      name: this.filename,\n      stat: this.pathInfo,\n      path: loc.getPath(),\n      url: loc.getUrl(),\n      drive: this.currentDriveInfo,\n      realUrl: this.realUrl\n    }\n  }\n\n  get currentShareUrl () {\n    return this.selection[0] ? this.selection[0].shareUrl : this.realUrl\n  }\n\n  get isViewingQuery () {\n    return loc.getPath().endsWith('.view')\n  }\n\n  updated () {\n    if (this.loadingState === LOADING_STATES.INITIAL) {\n      setTimeout(() => {\n        try {\n          // fade in the loading view so that it only renders if loading is taking time\n          this.shadowRoot.querySelector('.loading-view').classList.add('visible')\n        } catch (e) {}\n      }, 1)\n    }\n  }\n\n  async attempt (task, fn) {\n    console.debug(task) // leave this in for live debugging\n    try {\n      return await fn()\n    } catch (e) {\n      this.errorState = {task, error: e}\n      this.requestUpdate()\n      if (e.name === 'TimeoutError') {\n        return this.attempt(task, fn)\n      } else {\n        throw e\n      }\n    }\n  }\n\n  async load () {\n    if (this.attachedPane) {\n      if (!loc.getUrl() || !loc.getUrl().startsWith('hyper://')) {\n        // TEMP just give up if not hyper\n        return window.close()\n        this.errorState = {task: 'Attempting to load', error: new Error('Failed to load this address: not a hyperdrive')}\n        return\n      }\n    } else if (!loc.getUrl()) {\n      return loc.setUrl('hyper://private/')\n    }\n\n    // TEMP just give up if not hyper\n    if (!loc.getUrl().startsWith('hyper://')) {\n      return window.close()\n    }\n\n    // read location information\n    var drive = beaker.hyperdrive.drive(loc.getOrigin())\n    try {\n      this.driveInfo = await this.attempt(`Reading drive information (${loc.getOrigin()})`, () => drive.getInfo())\n      this.driveTitle = getDriveTitle(this.driveInfo)\n      this.mountTitle = this.mountInfo ? getDriveTitle(this.mountInfo) : undefined\n      document.title = this.filename ? `${this.driveTitle} / ${this.filename}` : this.driveTitle\n\n      this.pathInfo = await this.attempt(`Reading path information (${loc.getPath()})`, () => drive.stat(loc.getPath()))\n      await this.readPathAncestry()\n    } catch (e) {\n      if (e.message.includes('NotFoundError')) {\n        this.pathInfo = {isFile: ()=>false, isDirectory: ()=>false}\n        this.loadingState = LOADING_STATES.LOADED\n        this.requestUpdate()\n        return\n      }\n    }\n\n    // view config\n    if (this.pathInfo.isDirectory()) {\n      this.renderMode = getGlobalSavedConfig('render-mode', 'grid')\n      this.inlineMode = Boolean(getGlobalSavedConfig('inline-mode', false))\n      this.sortMode = getGlobalSavedConfig('sort-mode', 'name')\n      if (!this.watchStream) {\n        let currentDrive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n        this.watchStream = currentDrive.watch(this.realPathname)\n        var hackSetupTime = Date.now()\n        this.watchStream.addEventListener('changed', e => {\n          // HACK\n          // for some reason, the watchstream is firing 'changed' immediately\n          // ignore if the event fires within 1s of setup\n          // -prf\n          if (Date.now() - hackSetupTime <= 1000) return\n          this.load()\n        })\n      }\n    } else if (loc.getPath().endsWith('.view')) {\n      this.renderMode = getGlobalSavedConfig('render-mode', getVFCfg(this.viewfileObj, 'renderMode', ['grid', 'list']) || 'grid')\n      this.inlineMode = Boolean(getGlobalSavedConfig('inline-mode', getVFCfg(this.viewfileObj, 'inline', [true, false]) || false))\n      this.sortMode = getGlobalSavedConfig('sort-mode', 'name') // TODO\n    } else {\n      this.renderMode = getGlobalSavedConfig('render-mode', 'default')\n    }\n\n    // update loading state\n    this.loadingState = LOADING_STATES.CONTENT\n    this.requestUpdate()\n\n    // read location content\n    try {\n      if (this.pathInfo.isDirectory()) {\n        await this.readDirectory(drive)\n      } else if (loc.getPath().endsWith('.view')) {\n        await this.readViewfile(drive)\n      }\n    } catch (e) {\n      console.log(e)\n    }\n\n    // update selection if needed\n    if (this.selection && this.selection.length) {\n      this.selection = this.selection.map(item => this.items.find(item2 => item2.path === item.path)).filter(Boolean)\n    }\n\n    console.log({\n      driveInfo: this.driveInfo,\n      mountInfo: this.mountInfo,\n      pathInfo: this.pathInfo,\n      items: this.items,\n      itemGroups: this.itemGroups\n    })\n\n    this.loadingState = LOADING_STATES.LOADED\n    this.requestUpdate()\n  }\n\n  async readPathAncestry () {\n    var ancestry = []\n    var drive = beaker.hyperdrive.drive(loc.getOrigin())\n    var pathParts = loc.getPath().split('/').filter(Boolean)\n    while (pathParts.length) {\n      let name = pathParts[pathParts.length - 1]\n      let path = '/' + pathParts.join('/') + '/'\n      let stat = undefined\n      let mount = undefined\n      if (path === loc.getPath()) {\n        stat = this.pathInfo\n      } else {\n        stat = await this.attempt(\n          `Reading path information (${path})`,\n          () => drive.stat(path).catch(e => undefined)\n        )\n      }\n      if (stat.mount) {\n        mount = await this.attempt(\n          `Reading site information (${stat.mount.key}) for parent mount at ${path}`,\n          () => beaker.hyperdrive.drive(stat.mount.key).getInfo()\n        )\n      }\n      ancestry.unshift({name, path, stat, mount})\n      if (!this.mountInfo && mount) {\n        // record the mount info for the \"closest\" mount\n        this.mountInfo = mount\n        this.mountInfo.mountPath = pathParts.join('/')\n      }\n      pathParts.pop()\n    }\n    this.pathAncestry = ancestry\n  }\n\n  async readDirectory (drive) {\n    var items = await this.attempt(\n      `Reading directory (${loc.getPath()})`,\n      () => drive.readdir(loc.getPath(), {includeStats: true})\n    )\n\n    for (let item of items) {\n      item.drive = this.currentDriveInfo\n      item.path = joinPath(loc.getPath(), item.name)\n      item.url = joinPath(loc.getOrigin(), item.path)\n      item.realPath = this.getRealPathname(item.path)\n      item.realUrl = joinPath(item.drive.url, item.realPath)\n      if (item.stat.mount) {\n        item.mount = await this.attempt(\n          `Reading site information (${item.stat.mount.key}) for mounted site at ${item.path}`,\n          () => beaker.hyperdrive.drive(item.stat.mount.key).getInfo()\n        )\n      }\n      item.shareUrl = this.getShareUrl(item)\n      this.setItemIcons(item)\n    }\n    \n    this.sortItems(items)\n    this.items = items\n  }\n\n  async readViewfile (drive) {\n    var viewFile = await drive.readFile(loc.getPath(), 'utf8')\n    this.viewfileObj = JSON.parse(viewFile)\n    validateViewfile(this.viewfileObj)\n\n    var items = await this.attempt(\n      `Running .view query (${loc.getPath()})`,\n      () => drive.query(this.viewfileObj.query)\n    )\n\n    // massage the items to fit same form as `readDirectory()`\n    // TODO- cache the drive getInfo reads\n    await this.attempt(\n      `Reading .view file information (${loc.getPath()})`,\n      () => Promise.all(items.map(async (item) => {\n      item.name = item.path.split('/').pop()\n      item.realPath = (new URL(item.url)).pathname\n      item.realUrl = item.url\n      item.url = joinPath(loc.getOrigin(), item.path)\n      item.shareUrl = this.getShareUrl(item)\n      item.drive = await beaker.hyperdrive.drive(item.drive).getInfo()\n      item.mount = item.mount ? beaker.hyperdrive.drive(item.mount).getInfo() : undefined\n      this.setItemIcons(item)\n    })))\n\n    // apply merge\n    if (getVFCfg(this.viewfileObj, 'merge', ['mtime', undefined])) {\n      let map = {}\n      for (let item of items) {\n        if (item.name in map) {\n          map[item.name] =  (map[item.name].stat.mtime > item.stat.mtime) ? map[item.name] : item\n        } else {\n          map[item.name] = item\n        }\n      }\n      items = Object.values(map)\n    }\n\n    this.items = items\n  }\n\n  getShareUrl (item) {\n    if (item.stat.mount) {\n      return `hyper://${item.stat.mount.key}`\n    } else if (item.name.endsWith('.goto') && item.stat.metadata.href) {\n      return item.stat.metadata.href\n    } else {\n      return item.realUrl\n    }\n  }\n\n  setItemIcons (item) {\n    item.icon = item.stat.isDirectory() ? 'folder' : 'file'\n    if (item.stat.isFile() && item.name.endsWith('.view')) {\n      item.icon = 'layer-group'\n    } else if (item.stat.isFile() && item.name.endsWith('.goto')) {\n      item.icon = 'external-link-alt'\n    } else {\n      item.subicon = getSubicon(item)\n    }\n  }\n\n  sortItems (items) {\n    if (this.sortMode === 'name') {\n      items.sort((a, b) => a.name.localeCompare(b.name))\n    } else if (this.sortMode === 'name-reversed') {\n      items.sort((a, b) => b.name.localeCompare(a.name))\n    } else if (this.sortMode === 'newest') {\n      items.sort((a, b) => b.stat.ctime - a.stat.ctime)\n    } else if (this.sortMode === 'oldest') {\n      items.sort((a, b) => a.stat.ctime - b.stat.ctime)\n    } else if (this.sortMode === 'recently-changed') {\n      items.sort((a, b) => b.stat.mtime - a.stat.mtime)\n    }\n  }\n\n  get renderModes () {\n    if (this.pathInfo.isDirectory()) {\n      return [['grid', 'th-large', 'Files Grid'], ['list', 'th-list', 'Files List']]\n    } else {\n      if (loc.getPath().endsWith('.md') || loc.getPath().endsWith('.goto')) {\n        return [['default', 'file', 'Rendered'], ['raw', 'code', 'Source']]\n      }\n      if (loc.getPath().endsWith('.view')) {\n        return [['grid', 'th-large', 'Files Grid'], ['list', 'th-list', 'Files List']]\n      }\n      return [['default', 'file', 'File']]\n    }\n  }\n\n  get itemGroups () {\n    return toSimpleItemGroups(this.items)\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://explorer/css/font-awesome.css\">\n      <div\n        class=${classMap({\n          layout: true,\n          ['render-mode-' + this.renderMode]: true\n        })}\n        @goto=${this.onGoto}\n        @change-selection=${this.onChangeSelection}\n        @show-context-menu=${this.onShowMenu}\n        @new-folder=${this.onNewFolder}\n        @new-file=${this.onNewFile}\n        @new-mount=${this.onNewMount}\n        @fork-drive=${this.onForkDrive}\n        @drive-properties=${this.onDriveProperties}\n        @export=${this.onExport}\n        @rename=${this.onRename}\n        @delete=${this.onDelete}\n        @update-file-metadata=${this.onUpdateFileMetadata}\n      >\n        ${this.loadingState === LOADING_STATES.INITIAL\n          ? this.renderInitialLoading()\n          : html`\n            <main @contextmenu=${this.onContextmenuLayout}>\n              ${this.renderHeader()}\n              ${this.loadingState === LOADING_STATES.CONTENT ? html`\n                <div class=\"loading-notice\">Loading...</div>\n              ` : ''}\n              ${this.renderErrorState()}\n              ${this.renderView()}\n            </main>\n            ${this.renderRightNav()}\n          `}\n      </div>\n    `\n  }\n\n  renderInitialLoading () {\n    var errorView = this.renderErrorState()\n    if (errorView) return errorView\n    return html`\n      <div class=\"loading-view\">\n        <div>\n          <span class=\"spinner\"></span> Searching the network...\n        </div>\n        ${this.errorState && this.errorState.error.name === 'TimeoutError' ? html`\n          <div style=\"margin-top: 10px; margin-left: 27px; font-size: 12px; opacity: 0.75;\">\n            We're having some trouble ${this.errorState.task.toLowerCase()}.<br>\n            It may not be available on the network.\n          </div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  renderHeader () {\n    return html`\n      <div class=\"header\">\n        <path-ancestry\n          drive-title=${this.driveTitle}\n          .driveInfo=${this.driveInfo}\n          .pathAncestry=${this.pathAncestry}\n        ></path-ancestry>\n        ${this.pathInfo.isFile() ? html`\n          <span class=\"date\">${timeDifference(this.pathInfo.mtime, true, 'ago')}</span>\n        ` : ''}\n        <span class=\"spacer\"></span>\n        <button class=\"transparent\" @click=${this.onClickSettings}>\n          <span class=\"fas fa-cog\"></span> Settings\n        </button>\n        <button class=\"primary labeled-btn\" @click=${this.onClickActions}>\n          ${this.selection.length ?\n            `${this.selection.length} ${pluralize(this.selection.length, 'item')} selected`\n            : this.pathInfo.isDirectory() ? 'Folder' : 'File'\n          }\n          <span class=\"fas fa-fw fa-caret-down\"></span>\n        </button>\n        ${this.attachedPane ? html`\n          <button class=\"transparent\" @click=${window.close}><span class=\"fas fa-times\"></span></button>\n        ` : ''}\n      </div>\n    `\n  }\n\n  renderView () {\n    if (this.items.length === 0 && (this.loadingState === LOADING_STATES.CONTENT || this.errorState)) {\n      // if there are no items, the views will say \"this folder is empty\"\n      // that's inaccurate if we're in a loading or error state, so don't do that\n      return ''\n    }\n    const isViewfile = this.pathInfo.isFile() && loc.getPath().endsWith('.view')\n    if (isViewfile) {\n      return html`\n        <explorer-view-query\n          real-url=${this.realUrl}\n          real-pathname=${this.realPathname}\n          current-drive-title=${this.currentDriveTitle}\n          render-mode=${this.renderMode}\n          ?inline-mode=${this.inlineMode}\n          .currentDriveInfo=${this.currentDriveInfo}\n          .pathInfo=${this.pathInfo}\n          .items=${this.items}\n          .itemGroups=${this.itemGroups}\n          .selection=${this.selection}\n        ></explorer-view-query>\n      `\n    }\n    if (this.pathInfo.isDirectory()) {\n      return html`\n        <explorer-view-folder\n          real-url=${this.realUrl}\n          real-pathname=${this.realPathname}\n          current-drive-title=${this.currentDriveTitle}\n          render-mode=${this.renderMode}\n          ?inline-mode=${this.inlineMode}\n          .currentDriveInfo=${this.currentDriveInfo}\n          .items=${this.items}\n          .itemGroups=${this.itemGroups}\n          .selection=${this.selection}\n        ></explorer-view-folder>\n      `\n    }\n    return html`\n      <explorer-view-file\n        real-url=${this.realUrl}\n        real-pathname=${this.realPathname}\n        current-drive-title=${this.currentDriveTitle}\n        render-mode=${this.renderMode}\n        .currentDriveInfo=${this.currentDriveInfo}\n        .pathInfo=${this.pathInfo}\n        .selection=${this.selection}\n      ></explorer-view-file>\n    `\n  }\n\n  renderRightNav () {\n    const isViewfile = this.pathInfo.isFile() && loc.getPath().endsWith('.view')\n    return html`\n      <nav class=\"right\">\n        <drive-info\n          real-url=${this.realUrl}\n          .driveInfo=${this.currentDriveInfo}\n        ></drive-info>\n        ${this.selection.length > 0 ? html`\n          <selection-info\n            .driveInfo=${this.driveInfo}\n            .pathInfo=${this.pathInfo}\n            .mountInfo=${this.mountInfo}\n            .selection=${this.selection}\n            ?no-preview=${this.inlineMode}\n          ></selection-info>\n        ` : isViewfile ? html`\n          <viewfile-info\n            .currentDriveInfo=${this.currentDriveInfo}\n            .pathInfo=${this.pathInfo}\n            .viewfileObj=${this.viewfileObj}\n          ></viewfile-info>\n        ` : html`\n          <selection-info\n            .driveInfo=${this.driveInfo}\n            .pathInfo=${this.pathInfo}\n            .mountInfo=${this.mountInfo}\n            .selection=${[this.locationAsItem]}\n            no-preview\n          ></selection-info>\n        `}\n        <contextual-help\n          real-pathname=${this.realPathname}\n          .driveInfo=${this.driveInfo}\n          .pathInfo=${this.pathInfo}\n          .mountInfo=${this.mountInfo}\n          .selection=${this.selection}\n        ></contextual-help>\n      </nav>\n    `\n  }\n\n  renderErrorState () {\n    if (!this.errorState || this.errorState.error.message.includes('TimeoutError')) return undefined\n    if (this.errorState.error.message.includes('NotFoundError')) {\n      return html`\n        <div class=\"error-view\">\n          <div class=\"error-title\"><span class=\"fas fa-fw fa-exclamation-triangle\"></span> File or folder not found</div>\n          <div class=\"error-task\">Check the location and try again:</div>\n          <pre>${loc.getPath()}</pre>\n        </div>\n      `\n\n    }\n    return html`\n      <div class=\"error-view\">\n        <div class=\"error-title\"><span class=\"fas fa-fw fa-exclamation-triangle\"></span> Something has gone wrong</div>\n        <div class=\"error-task\">While ${this.errorState.task.toLowerCase()}</div>\n        <details>\n          <summary>${this.errorState.error.toString().split(':').slice(1).join(':').trim()}</summary>\n          <pre>${this.errorState.error.stack}</pre>\n        </details>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onContextmenuLayout (e) {\n    if (e.target.tagName === 'INPUT') return\n    e.preventDefault()\n    e.stopPropagation()\n    this.onShowMenu({detail: {x: e.clientX, y: e.clientY}})\n  }\n\n  onGoto (e) {\n    var {item} = e.detail\n    this.goto(item)\n  }\n\n  canShare (item) {\n    // TODO check if public?\n    return true\n  }\n\n  goto (item, newWindow = false, leaveExplorer = false) {\n    var url\n    if (typeof item === 'string') {\n      url = item\n    } else if (item.stat.isFile()) {\n      if (item.name.endsWith('.goto') && item.stat.metadata.href) {\n        url = item.stat.metadata.href\n        newWindow = true\n        leaveExplorer = true\n      } else {\n        url = item.url\n      }\n    } else {\n      url = joinPath(loc.getOrigin(), item.path) + '/'\n    }\n    if (this.attachedPane) {\n      if (newWindow) window.open(url)\n      else beaker.panes.navigate(this.attachedPane.id, url)\n    } else {\n      if (leaveExplorer) {\n        if (newWindow) window.open(url)\n        else window.location = url\n      } else {\n        if (newWindow) loc.openUrl(url)\n        else loc.setUrl(url)\n      }\n    }\n  }\n\n  onChangeSelection (e) {\n    this.selection = e.detail.selection\n    this.requestUpdate()\n  }\n\n  onChangeRenderMode (e, renderMode) {\n    this.renderMode = renderMode\n    setGlobalSavedConfig('render-mode', this.renderMode)\n    this.requestUpdate()\n  }\n\n  onToggleInlineMode (e) {\n    this.inlineMode = !this.inlineMode\n    setGlobalSavedConfig('inline-mode', this.inlineMode ? '1' : '')\n    this.requestUpdate()\n  }\n\n  onChangeSortMode (e) {\n    this.sortMode = e.target.value\n    this.sortItems(this.items)\n    setGlobalSavedConfig('sort-mode', this.sortMode)\n    this.requestUpdate()\n  }\n\n  // NOTE All settings are saved globally now -prf\n  // onApplyViewSettingsGlobally () {\n  //   setGlobalSavedConfig('render-mode', this.renderMode)\n  //   setGlobalSavedConfig('inline-mode', this.inlineMode ? '1' : '')\n  //   setGlobalSavedConfig('sort-mode', this.sortMode)\n  //   toast.create('Default view settings updated')\n  // }\n\n  async onClickActions (e) {\n    let el = e.currentTarget\n    if (el.classList.contains('active')) return\n    e.preventDefault()\n    e.stopPropagation()\n    let rect = e.currentTarget.getClientRects()[0]\n    el.classList.add('active')\n    await this.onShowMenu({detail: {x: rect.right, y: rect.bottom, right: true}}, true)\n    el.classList.remove('active')\n  }\n\n  async onClickSettings (e) {\n    let el = e.currentTarget\n    if (el.classList.contains('active')) return\n    e.preventDefault()\n    e.stopPropagation()\n    let rect = el.getClientRects()[0]\n    el.classList.add('active')\n    await settingsMenu.create(this, {x: (rect.left + rect.right) / 2, y: rect.bottom})\n    el.classList.remove('active')\n  }\n\n  async onNewFile (e) {\n    if (!this.currentDriveInfo.writable) return\n    var filename = prompt('Enter the name of your new file')\n    if (filename) {\n      var pathname = joinPath(this.realPathname, filename)\n      var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n      if (await drive.stat(pathname).catch(e => false)) {\n        toast.create('A file or folder already exists at that name')\n        return\n      }\n      try {\n        await drive.writeFile(pathname, '')\n      } catch (e) {\n        console.error(e)\n        toast.create(`Error: ${e.toString()}`, 'error')\n        return\n      }\n      var url = joinPath(loc.getUrl(), filename)\n      window.open(`beaker://editor/?url=${url}`)\n    }\n  }\n\n  async onNewFolder (e) {\n    if (!this.currentDriveInfo.writable) return\n    var foldername = prompt('Enter the name of your new folder')\n    if (foldername) {\n      var pathname = joinPath(this.realPathname, foldername)\n      var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n      try {\n        await drive.mkdir(pathname)\n      } catch (e) {\n        console.error(e)\n        toast.create(`Error: ${e.toString()}`, 'error')\n      }\n    }\n  }\n\n  async onNewMount (e) {\n    if (!this.currentDriveInfo.writable) return\n    var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n    var targetUrl = await beaker.shell.selectDriveDialog({title: 'Select a site'})\n    var target = beaker.hyperdrive.drive(targetUrl)\n    var info = await target.getInfo()\n    var name = await getAvailableName(drive, this.realPathname, info.title)\n    name = prompt('Enter the mount name', name)\n    try {\n      await drive.mount(joinPath(this.realPathname, name), target.url)\n    } catch (e) {\n      toast.create(e.toString(), 'error')\n      console.error(e)\n    }\n    this.load()\n  }\n\n  async onForkDrive (e) {\n    var drive = await beaker.hyperdrive.forkDrive(this.currentDriveInfo.url)\n    toast.create('Site created')\n    loc.setUrl(drive.url)\n  }\n\n  async onDriveProperties (e) {\n    await beaker.shell.drivePropertiesDialog(this.currentDriveInfo.url)\n    this.load()\n  }\n\n  async onImportFiles (e) {\n    if (!this.currentDriveInfo.writable) return\n    toast.create('Importing...')\n    try {\n      var {numImported} = await beaker.shell.importFilesDialog(loc.getUrl())\n      if (numImported > 0) toast.create('Import complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n  }\n\n  async onImportFolders (e) {\n    if (!this.currentDriveInfo.writable) return\n    toast.create('Importing...')\n    try {\n      var {numImported} = await beaker.shell.importFoldersDialog(loc.getUrl())\n      if (numImported > 0) toast.create('Import complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n  }\n\n  async onExport (e) {\n    var urls = (this.selection.length ? this.selection : this.items).map(item => item.url)\n    toast.create('Exporting...')\n    try {\n      var {numExported} = await beaker.shell.exportFilesDialog(urls)\n      if (numExported > 0) toast.create('Export complete', 'success')\n      else toast.destroy()\n    } catch (e) {\n      console.log(e)\n      toast.create(e.toString(), 'error')\n    }\n  }\n\n  async onRename (e) {\n    if (!this.currentDriveInfo.writable) return\n    var oldName = this.selection[0] ? this.selection[0].name : this.filename\n    var newName = prompt('Enter the new name for this file or folder', oldName)\n    if (newName) {\n      var oldPath = this.selection[0] ? joinPath(this.realPathname, oldName) : this.realPathname\n      var newPath = oldPath.split('/').slice(0, -1).concat([newName]).join('/')\n      var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n      try {\n        await drive.rename(oldPath, newPath)\n      } catch (e) {\n        console.error(e)\n        toast.create(`Rename failed: ${e.toString()}`, 'error')\n        return\n      }\n      if (!this.selection[0]) {\n        // redirect to new location\n        loc.setPath(loc.getPath().split('/').slice(0, -1).concat([newName]).join('/'))\n      }\n    }\n  }\n\n  async onDelete (e) {\n    if (!this.currentDriveInfo.writable) return\n\n    var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n    const del = async (path, stat) => {\n      if (stat.mount && stat.mount.key) {\n        await drive.unmount(path)\n      } else if (stat.isDirectory()) {\n        await drive.rmdir(path, {recursive: true})\n      } else {\n        await drive.unlink(path)\n      }\n    }\n\n    try {\n      if (this.selection.length) {\n        if (!confirm(`Delete ${this.selection.length} ${pluralize(this.selection.length, 'item')}?`)) {\n          return\n        }\n\n        toast.create(`Deleting ${pluralize(this.selection.length, 'item')}...`)\n        for (let sel of this.selection) {\n          await del(sel.realPath, sel.stat)\n        }\n        toast.create(`Deleted ${pluralize(this.selection.length, 'item')}`, 'success')\n      } else {\n        if (!confirm(`Are you sure you want to delete this ${this.pathInfo.isDirectory() ? 'folder' : 'file'}?`)) {\n          return\n        }\n\n        toast.create(`Deleting 1 item...`)\n        await del(this.realPathname, this.pathInfo)\n        toast.create(`Deleted 1 item`, 'success')\n\n        loc.setPath(loc.getPath().split('/').slice(0, -1).join('/'))\n      }\n    } catch (e) {\n      console.error(e)\n      toast.create(`Deletion failed: ${e.toString()}`, 'error')\n    }\n  }\n\n  async onUpdateFileMetadata (e) {\n    if (!this.currentDriveInfo.writable) return\n    var {newMetadata, deletedKeys} = e.detail\n    var drive = beaker.hyperdrive.drive(this.currentDriveInfo.url)\n    try {\n      if (this.selection.length) {\n        for (let sel of this.selection) {\n          await drive.updateMetadata(sel.realPath, newMetadata)\n          if (deletedKeys.length) {\n            await drive.deleteMetadata(sel.realPath, deletedKeys)\n          }\n        }\n      } else {\n        await drive.updateMetadata(this.realPathname, newMetadata)\n        if (deletedKeys.length) {\n          await drive.deleteMetadata(this.realPathname, deletedKeys)\n        }\n      }\n      toast.create('File updated', 'success')\n    } catch (e) {\n      console.error(e)\n      toast.create(`File update failed: ${e.toString()}`, 'error')\n    }\n  }\n\n  async onShowMenu (e, useAppMenuAlways = false) {\n    var items = constructContextMenuItems(this)\n    if (!useAppMenuAlways && typeof beaker !== 'undefined' && typeof beaker.browser !== 'undefined') {\n      let fns = {}\n      for (let i = 0; i < items.length; i++) {\n        if (items[i].id) continue\n        let id = `item=${i}`\n        if (items[i] === '-') items[i] = {type: 'separator'}\n        items[i].id = id\n        fns[id] = items[i].click\n        delete items[i].icon\n        delete items[i].click\n      }\n      var choice = await beaker.browser.showContextMenu(items, true)\n      if (fns[choice]) fns[choice]()\n    } else {\n      return contextMenu.create({\n        x: e.detail.x,\n        y: e.detail.y,\n        right: e.detail.right || (e.detail.x > document.body.scrollWidth - 300),\n        top: (e.detail.y > document.body.scrollHeight / 2),\n        roomy: false,\n        noBorders: true,\n        fontAwesomeCSSUrl: 'beaker://explorer/css/font-awesome.css',\n        style: `padding: 4px 0`,\n        items: items.filter(item => !item.ctxOnly)\n      })\n    }\n  }\n\n  onClickShare (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var rect = e.currentTarget.getClientRects()[0]\n    shareMenu.create({\n      x: rect.left - 10,\n      y: rect.bottom + 4,\n      url: this.currentShareUrl,\n      targetLabel: (this.selection[0] ? this.selection[0].stat : this.pathInfo).isDirectory() ? 'folder' : 'file'\n    })\n  }\n\n  async doDiff (base) {\n    if (this.attachedMode) beaker.browser.gotoUrl(`beaker://diff/?base=${base}`)\n    else window.open(`beaker://diff/?base=${base}`)\n  }\n\n  async onSelectDrive (e) {\n    e.preventDefault()\n    var drive = await beaker.shell.selectDriveDialog()\n    loc.setUrl(drive)\n  }\n}\n\ncustomElements.define('explorer-app', ExplorerApp)\n"
  },
  {
    "path": "app/userland/explorer/js/view/file.js",
    "content": "import { LitElement, html } from '../../vendor/lit-element/lit-element.js'\nimport * as loc from '../lib/location.js'\nimport css from '../../css/view/file.css.js'\nimport '../com/file/file-display.js'\n\nexport class FileView extends LitElement {\n  static get properties () {\n    return {\n      currentDriveInfo: {type: Object},\n      currentDriveTitle: {type: String, attribute: 'current-drive-title'},\n      pathInfo: {type: Object},\n      realUrl: {type: String, attribute: 'real-url'},\n      realPathname: {type: String, attribute: 'real-pathname'},\n      renderMode: {type: String, attribute: 'render-mode'}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  constructor () {\n    super()\n    this.currentDriveInfo = undefined\n    this.currentDriveTitle = undefined\n    this.pathInfo = undefined\n    this.realUrl = undefined\n    this.realPathname = undefined\n    this.renderMode = undefined\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.currentDriveInfo || !this.pathInfo) return html``\n    return html`\n      <div class=\"content\">\n        <file-display\n          drive-url=${loc.getOrigin()}\n          pathname=${loc.getPath()}\n          render-mode=${this.renderMode}\n          .info=${{stat: this.pathInfo}}\n        ></file-display>\n      </div>\n    `\n  }\n\n\n  // events\n  // =\n}\n\ncustomElements.define('explorer-view-file', FileView)\n"
  },
  {
    "path": "app/userland/explorer/js/view/folder.js",
    "content": "import { LitElement, html } from '../../vendor/lit-element/lit-element.js'\nimport css from '../../css/view/folder.css.js'\nimport '../com/folder/file-grid.js'\nimport '../com/folder/file-list.js'\nimport '../com/folder/inline-file-grid.js'\nimport '../com/folder/inline-file-list.js'\nimport '../com/file/file-display.js'\n\nexport class FolderView extends LitElement {\n  static get properties () {\n    return {\n      currentDriveInfo: {type: Object},\n      currentDriveTitle: {type: String, attribute: 'current-drive-title'},\n      items: {type: Array},\n      itemGroups: {type: Array},\n      selection: {type: Array},\n      renderMode: {type: String, attribute: 'render-mode'},\n      inlineMode: {type: Boolean, attribute: 'inline-mode'},\n      realUrl: {type: String, attribute: 'real-url'},\n      realPathname: {type: String, attribute: 'real-pathname'}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  constructor () {\n    super()\n    this.currentDriveInfo = undefined\n    this.currentDriveTitle = undefined\n    this.items = undefined\n    this.itemGroups = undefined\n    this.selection = undefined\n    this.renderMode = undefined\n    this.inlineMode = undefined\n    this.realUrl = undefined\n    this.realPathname = undefined\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.currentDriveInfo || !this.items || !this.selection) return html``\n    return html`\n      ${this.renderMode === 'grid' ? (\n        this.inlineMode\n          ? html`<inline-file-grid .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></inline-file-grid>`\n          : html`<file-grid .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></file-grid>`\n      ) : (\n        this.inlineMode\n          ? html`<inline-file-list .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></inline-file-list>`\n          : html`<file-list .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></file-list>`\n      )}\n    `\n  }\n}\n\ncustomElements.define('explorer-view-folder', FolderView)\n"
  },
  {
    "path": "app/userland/explorer/js/view/query.js",
    "content": "import { LitElement, html } from '../../vendor/lit-element/lit-element.js'\nimport '../com/file/file-display.js'\n\nexport class QueryView extends LitElement {\n  static get properties () {\n    return {\n      currentDriveInfo: {type: Object},\n      currentDriveTitle: {type: String, attribute: 'current-drive-title'},\n      pathInfo: {type: Object},\n      items: {type: Array},\n      itemGroups: {type: Array},\n      selection: {type: Array},\n      renderMode: {type: String, attribute: 'render-mode'},\n      inlineMode: {type: Boolean, attribute: 'inline-mode'},\n      realUrl: {type: String, attribute: 'real-url'},\n      realPathname: {type: String, attribute: 'real-pathname'}\n    }\n  }\n\n  constructor () {\n    super()\n    this.currentDriveInfo = undefined\n    this.currentDriveTitle = undefined\n    this.pathInfo = undefined\n    this.items = undefined\n    this.itemGroups = undefined\n    this.selection = undefined\n    this.renderMode = undefined\n    this.inlineMode = undefined\n    this.realUrl = undefined\n    this.realPathname = undefined\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.currentDriveInfo || !this.pathInfo) return html``\n    return html`\n      ${this.renderMode === 'grid' ? (\n        this.inlineMode\n          ? html`<inline-file-grid show-origin .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></inline-file-grid>`\n          : html`<file-grid show-origin .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></file-grid>`\n      ) : (\n        this.inlineMode\n          ? html`<inline-file-list show-origin .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></inline-file-list>`\n          : html`<file-list show-origin .items=${this.items} .itemGroups=${this.itemGroups} .selection=${this.selection}></file-list>`\n      )}\n    `\n  }\n\n  // events\n  // =\n}\n\ncustomElements.define('explorer-view-query', QueryView)\n"
  },
  {
    "path": "app/userland/explorer/package.json",
    "content": "{\n  \"scripts\": {\n    \"dev\": \"serve -s\",\n    \"prod\": \"cd build && serve -s\",\n    \"build\": \"sh ./scripts/build.sh\"\n  },\n  \"devDependencies\": {\n    \"rollup\": \"^1.29.0\",\n    \"serve\": \"^11.3.0\"\n  }\n}\n"
  },
  {
    "path": "app/userland/explorer/scripts/build.sh",
    "content": "#! /bin/sh\n\nrm -Rf ./build\nmkdir ./build\ncp index.* ./build/\ncp serve.json ./build/\ncp -R ./js ./build/js\ncp -R ./css ./build/css\ncp -R ./webfonts ./build/webfonts\ncp ./favicon.png ./build/favicon.png\nrollup ./js/main.js --format iife --name main --file ./build/js/main.build.js\ncat ./index.html | sed 's/main.js/main.build.js/' > ./build/index.html"
  },
  {
    "path": "app/userland/explorer/serve.json",
    "content": "{\"cleanUrls\": false}"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/.editorconfig",
    "content": "# http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[{*.js,*.json,*.yml}]\nindent_size = 2\nindent_style = space\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/.eslintignore",
    "content": ".nyc_output\ncoverage\nnode_modules\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/.eslintrc.yml",
    "content": "root: true\nextends: eslint:recommended\nenv:\n  node: true\nrules:\n  eol-last: error\n  indent: [\"error\", 2, { \"SwitchCase\": 1 }]\n  no-mixed-spaces-and-tabs: error\n  no-trailing-spaces: error\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/.gitignore",
    "content": ".nyc_output/\ncoverage/\nnode_modules/\nnpm-debug.log\npackage-lock.json\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/.travis.yml",
    "content": "language: node_js\nnode_js:\n  - \"0.8\"\n  - \"0.10\"\n  - \"0.12\"\n  - \"1.8\"\n  - \"2.5\"\n  - \"3.3\"\n  - \"4.9\"\n  - \"5.12\"\n  - \"6.16\"\n  - \"7.10\"\n  - \"8.15\"\n  - \"9.11\"\n  - \"10.15\"\n  - \"11.7\"\nsudo: false\ncache:\n  directories:\n    - node_modules\nbefore_install:\n  # Configure npm\n  - |\n    # Skip updating shrinkwrap / lock\n    npm config set shrinkwrap false\n  # Setup Node.js version-specific dependencies\n  - |\n    # mocha for testing\n    # - use 2.x for Node.js < 0.10\n    # - use 3.x for Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -eq 0 && \"$(cut -d. -f2 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 10 ]]; then\n      npm install --save-dev mocha@2.5.3\n    elif [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      npm install --save-dev mocha@3.5.3\n    fi\n  - |\n    # nyc for coverage\n    # - remove on Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      npm rm --save-dev nyc\n    fi\n  - |\n    # eslint for linting\n    # - remove on Node.js < 6\n    if [[ \"$(cut -d. -f1 <<< \"$TRAVIS_NODE_VERSION\")\" -lt 6 ]]; then\n      node -pe 'Object.keys(require(\"./package\").devDependencies).join(\"\\n\")' | \\\n        grep -E '^eslint(-|$)' | \\\n        xargs npm rm --save-dev\n    fi\n  # Update Node.js modules\n  - |\n    # Prune & rebuild node_modules\n    if [[ -d node_modules ]]; then\n      npm prune\n      npm rebuild\n    fi\n\nscript:\n  - |\n    # Run test script, depending on nyc install\n    if [[ -n \"$(npm -ps ls nyc)\" ]]; then\n      npm run-script test-ci\n    else\n      npm test\n    fi\n  - |\n    # Run linting, depending on eslint install\n    if [[ -n \"$(npm -ps ls eslint)\" ]]; then\n      npm run-script lint\n    fi\nafter_script:\n  - |\n    # Upload coverage to coveralls, if exists\n    if [[ -d .nyc_output ]]; then\n      npm install --save-dev coveralls@2\n      nyc report --reporter=text-lcov | coveralls\n    fi\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/History.md",
    "content": "3.1.0 / 2019-01-22\n==================\n\n  * Add petabyte (`pb`) support\n\n3.0.0 / 2017-08-31\n==================\n\n  * Change \"kB\" to \"KB\" in format output\n  * Remove support for Node.js 0.6\n  * Remove support for ComponentJS\n\n2.5.0 / 2017-03-24\n==================\n\n  * Add option \"unit\"\n\n2.4.0 / 2016-06-01\n==================\n\n  * Add option \"unitSeparator\"\n\n2.3.0 / 2016-02-15\n==================\n\n  * Drop partial bytes on all parsed units\n  * Fix non-finite numbers to `.format` to return `null`\n  * Fix parsing byte string that looks like hex\n  * perf: hoist regular expressions\n\n2.2.0 / 2015-11-13\n==================\n\n  * add option \"decimalPlaces\"\n  * add option \"fixedDecimals\"\n\n2.1.0 / 2015-05-21\n==================\n\n  * add `.format` export\n  * add `.parse` export\n\n2.0.2 / 2015-05-20\n==================\n\n  * remove map recreation\n  * remove unnecessary object construction\n\n2.0.1 / 2015-05-07\n==================\n\n  * fix browserify require\n  * remove node.extend dependency\n\n2.0.0 / 2015-04-12\n==================\n\n  * add option \"case\"\n  * add option \"thousandsSeparator\"\n  * return \"null\" on invalid parse input\n  * support proper round-trip: bytes(bytes(num)) === num\n  * units no longer case sensitive when parsing\n\n1.0.0 / 2014-05-05\n==================\n\n * add negative support. fixes #6\n\n0.3.0 / 2014-03-19\n==================\n\n * added terabyte support\n\n0.2.1 / 2013-04-01\n==================\n\n  * add .component\n\n0.2.0 / 2012-10-28\n==================\n\n  * bytes(200).should.eql('200b')\n\n0.1.0 / 2012-07-04\n==================\n\n  * add bytes to string conversion [yields]\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/LICENSE",
    "content": "(The MIT License)\n\nCopyright (c) 2012-2014 TJ Holowaychuk <tj@vision-media.ca>\nCopyright (c) 2015 Jed Watson <jed.watson@me.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/Readme.md",
    "content": "# Bytes utility\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nUtility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa.\n\n## Installation\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/). Installation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```bash\n$ npm install bytes\n```\n\n## Usage\n\n```js\nvar bytes = require('bytes');\n```\n\n#### bytes.format(number value, [options]): string｜null\n\nFormat the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is\n rounded.\n\n**Arguments**\n\n| Name    | Type     | Description        |\n|---------|----------|--------------------|\n| value   | `number` | Value in bytes     |\n| options | `Object` | Conversion options |\n\n**Options**\n\n| Property          | Type   | Description                                                                             |\n|-------------------|--------|-----------------------------------------------------------------------------------------|\n| decimalPlaces | `number`｜`null` | Maximum number of decimal places to include in output. Default value to `2`. |\n| fixedDecimals | `boolean`｜`null` | Whether to always display the maximum number of decimal places. Default value to `false` |\n| thousandsSeparator | `string`｜`null` | Example of values: `' '`, `','` and `.`... Default value to `''`. |\n| unit | `string`｜`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). |\n| unitSeparator | `string`｜`null` | Separator to use between number and unit. Default value to `''`. |\n\n**Returns**\n\n| Name    | Type             | Description                                     |\n|---------|------------------|-------------------------------------------------|\n| results | `string`｜`null` | Return null upon error. String value otherwise. |\n\n**Example**\n\n```js\nbytes(1024);\n// output: '1KB'\n\nbytes(1000);\n// output: '1000B'\n\nbytes(1000, {thousandsSeparator: ' '});\n// output: '1 000B'\n\nbytes(1024 * 1.7, {decimalPlaces: 0});\n// output: '2KB'\n\nbytes(1024, {unitSeparator: ' '});\n// output: '1 KB'\n\n```\n\n#### bytes.parse(string｜number value): number｜null\n\nParse the string value into an integer in bytes. If no unit is given, or `value`\nis a number, it is assumed the value is in bytes.\n\nSupported units and abbreviations are as follows and are case-insensitive:\n\n  * `b` for bytes\n  * `kb` for kilobytes\n  * `mb` for megabytes\n  * `gb` for gigabytes\n  * `tb` for terabytes\n  * `pb` for petabytes\n\nThe units are in powers of two, not ten. This means 1kb = 1024b according to this parser.\n\n**Arguments**\n\n| Name          | Type   | Description        |\n|---------------|--------|--------------------|\n| value   | `string`｜`number` | String to parse, or number in bytes.   |\n\n**Returns**\n\n| Name    | Type        | Description             |\n|---------|-------------|-------------------------|\n| results | `number`｜`null` | Return null upon error. Value in bytes otherwise. |\n\n**Example**\n\n```js\nbytes('1KB');\n// output: 1024\n\nbytes('1024');\n// output: 1024\n\nbytes(1024);\n// output: 1KB\n```\n\n## License \n\n[MIT](LICENSE)\n\n[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master\n[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master\n[downloads-image]: https://badgen.net/npm/dm/bytes\n[downloads-url]: https://npmjs.org/package/bytes\n[npm-image]: https://badgen.net/npm/node/bytes\n[npm-url]: https://npmjs.org/package/bytes\n[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master\n[travis-url]: https://travis-ci.org/visionmedia/bytes.js\n"
  },
  {
    "path": "app/userland/explorer/vendor/bytes/index.js",
    "content": "/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n  b:  1,\n  kb: 1 << 10,\n  mb: 1 << 20,\n  gb: 1 << 30,\n  tb: Math.pow(1024, 4),\n  pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n *  case: [string],\n *  decimalPlaces: [number]\n *  fixedDecimals: [boolean]\n *  thousandsSeparator: [string]\n *  unitSeparator: [string]\n *  }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nexport default function bytes(value, options) {\n  if (typeof value === 'string') {\n    return parse(value);\n  }\n\n  if (typeof value === 'number') {\n    return format(value, options);\n  }\n\n  return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nexport function format(value, options) {\n  if (!Number.isFinite(value)) {\n    return null;\n  }\n\n  var mag = Math.abs(value);\n  var thousandsSeparator = (options && options.thousandsSeparator) || '';\n  var unitSeparator = (options && options.unitSeparator) || '';\n  var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n  var fixedDecimals = Boolean(options && options.fixedDecimals);\n  var unit = (options && options.unit) || '';\n\n  if (!unit || !map[unit.toLowerCase()]) {\n    if (mag >= map.pb) {\n      unit = 'PB';\n    } else if (mag >= map.tb) {\n      unit = 'TB';\n    } else if (mag >= map.gb) {\n      unit = 'GB';\n    } else if (mag >= map.mb) {\n      unit = 'MB';\n    } else if (mag >= map.kb) {\n      unit = 'KB';\n    } else {\n      unit = 'B';\n    }\n  }\n\n  var val = value / map[unit.toLowerCase()];\n  var str = val.toFixed(decimalPlaces);\n\n  if (!fixedDecimals) {\n    str = str.replace(formatDecimalsRegExp, '$1');\n  }\n\n  if (thousandsSeparator) {\n    str = str.replace(formatThousandsRegExp, thousandsSeparator);\n  }\n\n  return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nexport function parse(val) {\n  if (typeof val === 'number' && !isNaN(val)) {\n    return val;\n  }\n\n  if (typeof val !== 'string') {\n    return null;\n  }\n\n  // Test if the string passed is valid\n  var results = parseRegExp.exec(val);\n  var floatValue;\n  var unit = 'b';\n\n  if (!results) {\n    // Nothing could be extracted from the given string\n    floatValue = parseInt(val, 10);\n    unit = 'b'\n  } else {\n    // Retrieve the value and the unit\n    floatValue = parseFloat(results[1]);\n    unit = results[4].toLowerCase();\n  }\n\n  return Math.floor(map[unit] * floatValue);\n}\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n<!-- ### Added -->\n<!-- ### Changed -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n## [2.0.1] - 2019-02-05\n### Fixed\n* Use `lit-html` 1.0 ([#543](https://github.com/Polymer/lit-element/pull/543)).\n\n## [2.0.0] - 2019-02-05\n### Added\n* Add `toString()` function to `CSSResult` ([#508](https://github.com/Polymer/lit-element/pull/508))\n* Add a global version to `window` ([#536](https://github.com/Polymer/lit-element/pull/536))\n\n### Changed\n* [Breaking] Renamed `unsafeCss` to `unsafeCSS` for consistency with lit-html's `unsafeHTML` ([#524](https://github.com/Polymer/lit-element/pull/524))\n* Remove all uses of `any` outside of tests ([#457](https://github.com/Polymer/lit-element/pull/457))\n\n### Fixed\n* A bunch of docs fixes ([#464](https://github.com/Polymer/lit-element/pull/464)), ([#458](https://github.com/Polymer/lit-element/pull/458)), ([#493](https://github.com/Polymer/lit-element/pull/493)), ([#504](https://github.com/Polymer/lit-element/pull/504)), ([#505](https://github.com/Polymer/lit-element/pull/505)), ([#501](https://github.com/Polymer/lit-element/pull/501)), ([#494](https://github.com/Polymer/lit-element/pull/494)), ([#491](https://github.com/Polymer/lit-element/pull/491)), ([#509](https://github.com/Polymer/lit-element/pull/509)), ([#513](https://github.com/Polymer/lit-element/pull/513)), ([#515](https://github.com/Polymer/lit-element/pull/515)), ([#512](https://github.com/Polymer/lit-element/pull/512)), ([#503](https://github.com/Polymer/lit-element/pull/503)), ([#460](https://github.com/Polymer/lit-element/pull/460)), ([#413](https://github.com/Polymer/lit-element/pull/413)), ([#426](https://github.com/Polymer/lit-element/pull/426)), ([#516](https://github.com/Polymer/lit-element/pull/516)), ([#537](https://github.com/Polymer/lit-element/pull/537)), ([#535](https://github.com/Polymer/lit-element/pull/535)), ([#539](https://github.com/Polymer/lit-element/pull/539)), ([#540](https://github.com/Polymer/lit-element/pull/540))\n* Build on checkout ([#423](https://github.com/Polymer/lit-element/pull/423))\n\n### Fixed\n* Adds a check to ensure `CSSStyleSheet` is constructable ([#527](https://github.com/Polymer/lit-element/pull/527)).\n\n## [2.0.0-rc.5] - 2019-01-24\n### Fixed\n* Fixed a bug causing duplicate styles when an array was returned from `static get styles` ([#480](https://github.com/Polymer/lit-element/issues/480)).\n\n## [2.0.0-rc.4] - 2019-01-24\n### Added\n* [Maintenance] Added script to publish dev releases automatically ([#476](https://github.com/Polymer/lit-element/pull/476)).\n* Adds `unsafeCss` for composing \"unsafe\" values into `css`. Note, `CSSResult` is no longer constructable. ([#451](https://github.com/Polymer/lit-element/issues/451) and [#471](https://github.com/Polymer/lit-element/issues/471)).\n\n### Fixed\n* Fixed a bug where we broke compatibility with closure compiler's property renaming optimizations. JSCompiler_renameProperty can't be a module export ([#465](https://github.com/Polymer/lit-element/pull/465)).\n* Fixed an issue with inheriting from `styles` property when extending a superclass that is never instanced. ([#470](https://github.com/Polymer/lit-element/pull/470)).\n* Fixed an issue with Closure Compiler and ([#470](https://github.com/Polymer/lit-element/pull/470)) ([#476](https://github.com/Polymer/lit-element/pull/476)).\n\n## [2.0.0-rc.3] - 2019-01-18\n### Fixed\n* README: Fixed jsfiddle reference ([#435](https://github.com/Polymer/lit-element/pull/435)).\n* Compile with Closure Compiler cleanly ([#436](https://github.com/Polymer/lit-element/pull/436)).\n* Opt `@property` decorators out of Closure Compiler renaming ([#448](https://github.com/Polymer/lit-element/pull/448)).\n\n### Changed\n* [Breaking] Property accessors are no longer wrapped when they already exist. Instead the `noAccessor` flag should be set when a user-defined accessor exists on the prototype (and in this case, user-defined accessors must call `requestUpdate` themselves). ([#454](https://github.com/Polymer/lit-element/pull/454)).\n* Class fields can now be used to define styles, e.g. `static styles = css` and `styles` correctly compose when elements are extended ([#456](https://github.com/Polymer/lit-element/pull/456)).\n* Styles returned via `static styles` are automatically flattend ([#437](https://github.com/Polymer/lit-element/pull/437)).\n* Replace use of for/of loops over Maps with forEach ([#455](https://github.com/Polymer/lit-element/pull/455))\n\n## [2.0.0-rc.2] - 2019-01-11\n### Fixed\n* Fix references to `@polymer/lit-element` in README and docs ([#427](https://github.com/Polymer/lit-element/pull/427)).\n* Fix decorator types causing compiler errors for TypeScript users. ([#431](https://github.com/Polymer/lit-element/pull/431)).\n\n## [2.0.0-rc.1] - 2019-01-10\n### Changed\n* [Breaking] Changed NPM package name to `lit-element`\n\n## [0.7.0] - 2019-01-10\n### Added\n* Updated decorator implementations to support TC39 decorator API proposal (supported by Babel 7.1+) in addition to the legacy decorator API (supported by older Babel and TypeScript) ([#156](https://github.com/Polymer/lit-element/issues/156)).\n* Added `static get styles()` to allow defining element styling separate from `render` method.\nThis takes advantage of [`adoptedStyleSheets`](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets) when possible ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* Added the `performUpdate` method to allow control of update timing ([#290](https://github.com/Polymer/lit-element/issues/290)).\n* Updates deferred until first connection ([#258](https://github.com/Polymer/lit-element/issues/258)).\n* Export `TemplateResult` and `SVGTemplateResult` ([#415](https://github.com/Polymer/lit-element/pull/415)).\n### Changed\n* [Breaking] The `createRenderRoot` method has moved from `UpdatingElement` to `LitElement`. Therefore, `UpdatingElement` no longer creates a `shadowRoot` by default ([#391](https://github.com/Polymer/lit-element/issues/391)).\n* [Breaking] Changes property options to add `converter`. This option works the same as the previous `type` option except that the `converter` methods now also get `type` as the second argument. This effectively changes `type` to be a hint for the `converter`. A default `converter` is used if none is provided and it now supports `Boolean`, `String`, `Number`, `Object`, and `Array` ([#264](https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Numbers and strings now become null if their reflected attribute is removed (https://github.com/Polymer/lit-element/issues/264)).\n* [Breaking] Previously, when an attribute changed as a result of a reflecting property changing, the property was prevented from mutating again as can happen when a custom\n`converter` is used. Now, the oppose is also true. When a property changes as a result of an attribute changing, the attribute is prevented from mutating again (https://github.com/Polymer/lit-element/issues/264))\n### Fixed\n* [Breaking] User defined accessors are now wrapped to enable better composition ([#286](https://github.com/Polymer/lit-element/issues/286))\n* Type for `eventOptions` decorator now properly includes `passive` and `once` options ([#325](https://github.com/Polymer/lit-element/issues/325))\n\n## [0.6.5] - 2018-12-13\n### Changed:\n* Use lit-html 1.0 release candidate.\n\n### Fixed\n* Types for the `property` and `customElement` decorators updated ([#288](https://github.com/Polymer/lit-element/issues/288) and [#291](https://github.com/Polymer/lit-element/issues/291)).\n* Docs updated.\n\n## [0.6.4] - 2018-11-30\n### Changed\n* Update lit-html dependency to ^0.14.0 ([#324](https://github.com/Polymer/lit-element/pull/324)).\n\n## [0.6.3] - 2018-11-08\n### Changed\n* Update lit-html dependency to ^0.13.0 ([#298](https://github.com/Polymer/lit-element/pull/298)).\n\n## [0.6.2] - 2018-10-05\n\n### Changed\n* LitElement changed to a non-abstract class to be more compatible with the JavaScript mixin pattern\n([#227](https://github.com/Polymer/lit-element/issues/227)).\n* Update lit-html dependency to ^0.12.0 ([#244](https://github.com/Polymer/lit-element/pull/244)).\n* Passes the component's `this` reference to lit-html as the `eventContext`, allowing unbound event listener methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n### Added\n* A `disconnectedCallback()` method was added to UpdatingElement ([#213](https://github.com/Polymer/lit-element/pull/213)).\n* Added `@eventOptions()` decorator for setting event listener options on methods ([#244](https://github.com/Polymer/lit-element/pull/244)).\n\n## [0.6.1] - 2018-09-17\n\n### Fixed\n* Fixes part rendering and css custom properties issues introduced with lit-html 0.11.3 by updating to 0.11.4 (https://github.com/Polymer/lit-element/issues/202).\n\n### Removed\n* Removed custom_typings for Polymer as they are no longer needed\n(https://github.com/Polymer/lit-element/issues/186).\n\n## [0.6.0] - 2018-09-13\n\n### Added\n* Added `@query()`, `@queryAll()`, and `@customElement` decorators ([#159](https://github.com/Polymer/lit-element/pull/159))\n\n### Changed\n* Significantly changed update/render lifecycle and property API. Render lifecycle\nis now `requestUpdate`, `shouldUpdate`, `update`, `render`, `firstUpdated`\n(first time only), `updated`, `updateComplete`. Property options are now\n`{attribute, reflect, type, hasChanged}`. Properties may be defined in a\n`static get properties` or using the `@property` decorator.\n(https://github.com/Polymer/lit-element/pull/132).\n\n\n### Removed\n* Removed render helpers `classString` and `styleString`. Similar directives\n(`classMap` and `styleMap`) have been added to lit-html and should be used instead\n(https://github.com/Polymer/lit-element/pull/165 and\nhttps://github.com/Polymer/lit-html/pull/486).\n\n### Fixed\n* The `npm run checksize` command should now return the correct minified size\n(https://github.com/Polymer/lit-element/pull/153).\n* The `firstUpdated` method should now always be called the first time the element\nupdates, even if `shouldUpdate` initially returned `false`\n(https://github.com/Polymer/lit-element/pull/173).\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/CONTRIBUTING.md",
    "content": "# Contributing to Polymer\n\nThere are many ways to contribute to the Polymer project! We welcome and truly appreciate contribution in all forms - issues and pull requests to the [main library](https://github.com/polymer/polymer), issues and pull requests to the [elements the Polymer team maintains](https://github.com/polymerelements), issues and pull requests to one of our many [Polymer-related tools](https://github.com/polymer), and of course we love to hear about any Polymer elements that you build to share with the community!\n\n## Logistics\n\n### Communicating with the Polymer team\n\nBeyond GitHub, we try to have a variety of different lines of communication open:\n\n* [Blog](https://blog.polymer-project.org/)\n* [Twitter](https://twitter.com/polymer)\n* [Google+ Community](https://plus.sandbox.google.com/u/0/communities/115626364525706131031?cfem=1)\n* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev)\n* [Slack channel](https://bit.ly/polymerslack)\n\n### The Polymer Repositories\n\nBecause of the component-based nature of the Polymer project, we tend to have lots of different repositories. Our main repository for the Polymer library itself is at [github.com/Polymer/polymer](https://github.com/polymer/polymer). File any issues or pull requests that have to do with the core library on that repository, and we'll take a look ASAP.\n\nWe keep all of the element \"product lines\" that the Polymer team maintains and distributes in the [PolymerElements](https://github.com/polymerelements) organization. For any element-specific issues or pull requests, file directly on the element's repository, such as the `paper-button` repository at [github.com/polymerelements/paper-button](https://github.com/polymerelements/paper-button). Of course, the elements built by the Polymer team are just a tiny fraction of all the Polymer-based elements out there - catalogs of other web components include [https://www.webcomponents.org/](https://github.com/webcomponents/webcomponents.org) and [component.kitchen](https://component.kitchen).\n\nThe GoogleWebComponents element product line is maintained by teams all across Google, and so is kept in a separate organization: the [GoogleWebComponents](https://github.com/googlewebcomponents) org. Feel free to file issues and PR's on those elements directly in that organization.\n\nWe also track each element product line overall in \"meta-repos\", named as `$PRODUCTLINE-elements`. These include [paper-elements](https://github.com/polymerelements/paper-elements), [iron-elements](https://github.com/polymerelements/iron-elements), [gold-elements](https://github.com/polymerelements/gold-elements), and more. Feel free to file issues for element requests on those meta-repos, and the README in each repo tracks a roadmap for the product line.\n\n### Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n## Contributing\n\n### Contributing documentation\n\nDocs source is in the `docs` folder. To build the site yourself, see the instructions in [docs/README.md](docs/README.md).\n\n### Filing bugs\n\nThe Polymer team heavily uses (and loves!) GitHub for all of our software management. We use GitHub issues to track all bugs and features.\n\nIf you find an issue, please do file it on the repository. The [Polymer/polymer issues](https://github.com/polymer/polymer/issues) should be used only for issues on the Polymer library itself - bugs somewhere in the core codebase.\n\nFor issues with elements the team maintains, please file directly on the element's repository. If you're not sure if a bug stems from the element or the library, air toward filing it on the element and we'll move the issue if necessary.\n\nPlease file issues using the issue template provided, filling out as many fields as possible. We love examples for addressing issues - issues with a jsBin, Plunkr, jsFiddle, or glitch.me repro will be much easier for us to work on quickly. You can start with [this StackBlitz](https://stackblitz.com/edit/lit-element-example?file=index.js) which sets up the basics to demonstrate a lit-element.  If you need your repro to run in IE11, you can start from [this glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html:1:0), which serves the source via polyserve for automatic transpilation, although you must sign up for a glitch.me account to ensure your code persists for more than 5 days (note the glitch.me _editing environment_ is not compatible with IE11, however the \"live\" view link of the running code should work).\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n### Contributing Pull Requests\n\nPR's are even better than issues. We gladly accept community pull requests. In general across the core library and all of the elements, there are a few necessary steps before we can accept a pull request:\n\n- Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself.\n- Sign the [CLA](https://cla.developers.google.com/clas), as described above.\n- Fork the repo you're making the fix on to your own GitHub account.\n- Code!\n- Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that's OK - or perhaps consider making two separate PR's.\n- **Include tests that test the range of behavior that changes with your PR.** If you PR fixes a bug, make sure your tests capture that bug. If your PR adds new behavior, make sure that behavior is fully tested. Every PR *must* include associated tests. (See [Unit tests](#unit-tests) for more.)\n- Submit your PR, making sure it references the issue you created.\n- If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix.\n\nIf you've completed all of these steps the core team will do its best to respond to the PR as soon as possible.\n\n#### Contributing Code to Elements\n\nThough the aim of the Polymer library is to allow lots of flexibility and not get in your way, we work to standardize our elements to make them as toolable and easy to maintain as possible.\n\nAll elements should follow the [Polymer element style guide](https://www.polymer-project.org/3.0/docs/tools/documentation), which defines how to specify properties, documentation, and more. It's a great guide to follow when building your own elements as well, for maximum standardization and toolability. For instance, structuring elements following the style guide will ensure that they work with the [`iron-component-page`](https://github.com/polymerelements/iron-component-page) element, an incredibly easy way to turn any raw element directly into a documentation page.\n\n#### Contributing Code to the Polymer library\n\nWe follow the most common JavaScript and HTML style guidelines for how we structure our code - in general, look at the code and you'll know how to contribute! If you'd like a bit more structure, the [Google JavaScript Styleguide](https://google.github.io/styleguide/javascriptguide.xml) is a good place to start.\n\nPolymer also participates in Google's [Patch Rewards Program](https://www.google.com/about/appsecurity/patch-rewards/), where you can earn cold, hard cash for qualifying security patches to the Polymer library. Visit the [patch rewards page](https://www.google.com/about/appsecurity/patch-rewards/) to find out more.\n\n## Unit tests\n\nAll Polymer projects use [`polymer-cli`](https://github.com/Polymer/tools/tree/master/packages/cli) for unit tests.\n\nFor maximum flexibility, install `polymer-cli` locally:\n\n    npm install -g polymer-cli\n\n### Running the lit-element unit tests\n\nTo run the lit-element unit tests:\n\n1.  Clone the [lit-element repo](https://github.com/polymer/lit-element).\n\n2.  Install the dependencies:\n\n\t\tnpm install\n\n3.  Run the tests:\n\n\t\tnpm test\n\n    Or if you have `polymer-cli` installed locally:\n\n\t\tpolymer test --npm\n\nTo run individual test suites:\n\n<code>npm test <var>path/to/suite</var></code>\n\nOr:\n\n<code>polymer test --npm <var>path/to/suite</var></code>\n\nFor example:\n\n\tpolymer test --npm test/index.html\n\nYou can also run tests in the browser:\n\n\tpolymer serve --npm\n\nNavigate to:\n\n[`http://localhost:8080/components/@polymer/lit-element/test/index.html`](http://localhost:8080/components/@polymer/lit-element/test/index.html)\n\n### Configuring `web-component-tester`\n\nBy default, `polymer test` runs tests on all installed browsers. You can configure it\nto run tests on a subset of available browsers, or to run tests remotely using Sauce Labs.\n\nSee the [`web-component-tester` README](https://github.com/Polymer/tools/tree/master/packages/web-component-tester) for\ninformation on configuring the tool using by `polymer-cli` to run the tests.\n\n### Viewing the source documentation locally\n\nYou can view the updates you make to the source documentation locally with the following steps.\nMake sure to rerun step 1 after every change you make.\n\n1. Run `polymer analyze > analysis.json`\n\n1. Run `polymer serve`\n\n1. Open `http://127.0.0.1:PORT/components/polymer/` to view the documentation\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/README.md",
    "content": "# LitElement\nA simple base class for creating fast, lightweight web components with [lit-html](https://lit-html.polymer-project.org/).\n\n[![Build Status](https://travis-ci.org/Polymer/lit-element.svg?branch=master)](https://travis-ci.org/Polymer/lit-element)\n[![Published on npm](https://img.shields.io/npm/v/lit-element.svg)](https://www.npmjs.com/package/lit-element)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/lit-element)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-element.polymer-project.org](https://lit-element.polymer-project.org).\n\n## Overview\n\nLitElement uses [lit-html](https://lit-html.polymer-project.org/) to render into the\nelement's [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)\nand adds API to help manage element properties and attributes. LitElement reacts to changes in properties\nand renders declaratively using `lit-html`. See the [lit-html guide](https://lit-html.polymer-project.org/guide)\nfor additional information on how to create templates for lit-element.\n\n```ts\n    import {LitElement, html, css, customElement, property} from 'lit-element';\n\n    // This decorator defines the element.\n    @customElement('my-element');\n    export class MyElement extends LitElement {\n\n      // This decorator creates a property accessor that triggers rendering and\n      // an observed attribute.\n      @property()\n      mood = 'great';\n\n      static styles = css`\n        span {\n          color: green;\n        }`;\n\n      // Render element DOM by returning a `lit-html` template.\n      render() {\n        return html`Web Components are <span>${this.mood}</span>!`;\n      }\n\n    }\n```\n\n```html\n    <my-element mood=\"awesome\"></my-element>\n```\n\nNote, this example uses decorators to create properties. Decorators are a proposed\nstandard currently available in [TypeScript](https://www.typescriptlang.org/) or [Babel](https://babeljs.io/docs/en/babel-plugin-proposal-decorators). LitElement also supports a [vanilla JavaScript method](https://lit-element.polymer-project.org/guide/properties#declare) of declaring reactive properties.\n\n## Examples\n\n  * Runs in all [supported](#supported-browsers) browsers: [Glitch](https://glitch.com/edit/#!/hello-lit-element?path=index.html)\n\n  * Runs in browsers with [JavaScript Modules](https://caniuse.com/#search=modules): [Stackblitz](https://stackblitz.com/edit/lit-element-demo?file=src%2Fmy-element.js), [JSFiddle](https://jsfiddle.net/sorvell1/801f9cdu/), [JSBin](http://jsbin.com/vecuyan/edit?html,output),\n[CodePen](https://codepen.io/sorvell/pen/RYQyoe?editors=1000).\n\n  * You can also copy [this HTML file](https://gist.githubusercontent.com/sorvell/48f4b7be35c8748e8f6db5c66d36ee29/raw/67346e4e8bc4c81d5a7968d18f0a6a8bc00d792e/index.html) into a local file and run it in any browser that supports [JavaScript Modules]((https://caniuse.com/#search=modules)).\n\n## Installation\n\nFrom inside your project folder, run:\n\n```bash\n$ npm install lit-element\n```\n\nTo install the web components polyfills needed for older browsers:\n\n```bash\n$ npm i -D @webcomponents/webcomponentsjs\n```\n\n## Supported Browsers\n\nThe last 2 versions of all modern browsers are supported, including\nChrome, Safari, Opera, Firefox, Edge. In addition, Internet Explorer 11 is also supported.\n\nEdge and Internet Explorer 11 require the web components polyfills.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md)."
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lib/css-tag.js",
    "content": "/**\n@license\nCopyright (c) 2019 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nexport const supportsAdoptingStyleSheets = ('adoptedStyleSheets' in Document.prototype) &&\n    ('replace' in CSSStyleSheet.prototype);\nconst constructionToken = Symbol();\nexport class CSSResult {\n    constructor(cssText, safeToken) {\n        if (safeToken !== constructionToken) {\n            throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n        }\n        this.cssText = cssText;\n    }\n    // Note, this is a getter so that it's lazy. In practice, this means\n    // stylesheets are not created until the first element instance is made.\n    get styleSheet() {\n        if (this._styleSheet === undefined) {\n            // Note, if `adoptedStyleSheets` is supported then we assume CSSStyleSheet\n            // is constructable.\n            if (supportsAdoptingStyleSheets) {\n                this._styleSheet = new CSSStyleSheet();\n                this._styleSheet.replaceSync(this.cssText);\n            }\n            else {\n                this._styleSheet = null;\n            }\n        }\n        return this._styleSheet;\n    }\n    toString() {\n        return this.cssText;\n    }\n}\n/**\n * Wrap a value for interpolation in a css tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value) => {\n    return new CSSResult(String(value), constructionToken);\n};\nconst textFromCSSResult = (value) => {\n    if (value instanceof CSSResult) {\n        return value.cssText;\n    }\n    else {\n        throw new Error(`Value passed to 'css' function must be a 'css' function result: ${value}. Use 'unsafeCSS' to pass non-literal values, but\n            take care to ensure page security.`);\n    }\n};\n/**\n * Template tag which which can be used with LitElement's `style` property to\n * set element styles. For security reasons, only literal string values may be\n * used. To incorporate non-literal values `unsafeCSS` may be used inside a\n * template string part.\n */\nexport const css = (strings, ...values) => {\n    const cssText = values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n    return new CSSResult(cssText, constructionToken);\n};\n//# sourceMappingURL=css-tag.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lib/decorators.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst legacyCustomElement = (tagName, clazz) => {\n    window.customElements.define(tagName, clazz);\n    // Cast as any because TS doesn't recognize the return type as being a\n    // subtype of the decorated class when clazz is typed as\n    // `Constructor<HTMLElement>` for some reason.\n    // `Constructor<HTMLElement>` is helpful to make sure the decorator is\n    // applied to elements however.\n    // tslint:disable-next-line:no-any\n    return clazz;\n};\nconst standardCustomElement = (tagName, descriptor) => {\n    const { kind, elements } = descriptor;\n    return {\n        kind,\n        elements,\n        // This callback is called once the class is otherwise fully defined\n        finisher(clazz) {\n            window.customElements.define(tagName, clazz);\n        }\n    };\n};\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * @param tagName the name of the custom element to define\n */\nexport const customElement = (tagName) => (classOrDescriptor) => (typeof classOrDescriptor === 'function') ?\n    legacyCustomElement(tagName, classOrDescriptor) :\n    standardCustomElement(tagName, classOrDescriptor);\nconst standardProperty = (options, element) => {\n    // When decorating an accessor, pass it through and add property metadata.\n    // Note, the `hasOwnProperty` check in `createProperty` ensures we don't\n    // stomp over the user's accessor.\n    if (element.kind === 'method' && element.descriptor &&\n        !('value' in element.descriptor)) {\n        return Object.assign({}, element, { finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            } });\n    }\n    else {\n        // createProperty() takes care of defining the property, but we still\n        // must return some kind of descriptor, so return a descriptor for an\n        // unused prototype field. The finisher calls createProperty().\n        return {\n            kind: 'field',\n            key: Symbol(),\n            placement: 'own',\n            descriptor: {},\n            // When @babel/plugin-proposal-decorators implements initializers,\n            // do this instead of the initializer below. See:\n            // https://github.com/babel/babel/issues/9260 extras: [\n            //   {\n            //     kind: 'initializer',\n            //     placement: 'own',\n            //     initializer: descriptor.initializer,\n            //   }\n            // ],\n            // tslint:disable-next-line:no-any decorator\n            initializer() {\n                if (typeof element.initializer === 'function') {\n                    this[element.key] = element.initializer.call(this);\n                }\n            },\n            finisher(clazz) {\n                clazz.createProperty(element.key, options);\n            }\n        };\n    }\n};\nconst legacyProperty = (options, proto, name) => {\n    proto.constructor\n        .createProperty(name, options);\n};\n/**\n * A property decorator which creates a LitElement property which reflects a\n * corresponding attribute value. A `PropertyDeclaration` may optionally be\n * supplied to configure property features.\n *\n * @ExportDecoratedItems\n */\nexport function property(options) {\n    // tslint:disable-next-line:no-any decorator\n    return (protoOrDescriptor, name) => (name !== undefined) ?\n        legacyProperty(options, protoOrDescriptor, name) :\n        standardProperty(options, protoOrDescriptor);\n}\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n */\nexport const query = _query((target, selector) => target.querySelector(selector));\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's renderRoot.\n */\nexport const queryAll = _query((target, selector) => target.querySelectorAll(selector));\nconst legacyQuery = (descriptor, proto, name) => {\n    Object.defineProperty(proto, name, descriptor);\n};\nconst standardQuery = (descriptor, element) => ({\n    kind: 'method',\n    placement: 'prototype',\n    key: element.key,\n    descriptor,\n});\n/**\n * Base-implementation of `@query` and `@queryAll` decorators.\n *\n * @param queryFn exectute a `selector` (ie, querySelector or querySelectorAll)\n * against `target`.\n * @suppress {visibility} The descriptor accesses an internal field on the\n * element.\n */\nfunction _query(queryFn) {\n    return (selector) => (protoOrDescriptor, \n    // tslint:disable-next-line:no-any decorator\n    name) => {\n        const descriptor = {\n            get() {\n                return queryFn(this.renderRoot, selector);\n            },\n            enumerable: true,\n            configurable: true,\n        };\n        return (name !== undefined) ?\n            legacyQuery(descriptor, protoOrDescriptor, name) :\n            standardQuery(descriptor, protoOrDescriptor);\n    };\n}\nconst standardEventOptions = (options, element) => {\n    return Object.assign({}, element, { finisher(clazz) {\n            Object.assign(clazz.prototype[element.key], options);\n        } });\n};\nconst legacyEventOptions = \n// tslint:disable-next-line:no-any legacy decorator\n(options, proto, name) => {\n    Object.assign(proto[name], options);\n};\n/**\n * Adds event listener options to a method used as an event listener in a\n * lit-html template.\n *\n * @param options An object that specifis event listener options as accepted by\n * `EventTarget#addEventListener` and `EventTarget#removeEventListener`.\n *\n * Current browsers support the `capture`, `passive`, and `once` options. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters\n *\n * @example\n *\n *     class MyElement {\n *\n *       clicked = false;\n *\n *       render() {\n *         return html`<div @click=${this._onClick}`><button></button></div>`;\n *       }\n *\n *       @eventOptions({capture: true})\n *       _onClick(e) {\n *         this.clicked = true;\n *       }\n *     }\n */\nexport const eventOptions = (options) => \n// Return value typed as any to prevent TypeScript from complaining that\n// standard decorator function signature does not match TypeScript decorator\n// signature\n// TODO(kschaaf): unclear why it was only failing on this decorator and not\n// the others\n((protoOrDescriptor, name) => (name !== undefined) ?\n    legacyEventOptions(options, protoOrDescriptor, name) :\n    standardEventOptions(options, protoOrDescriptor));\n//# sourceMappingURL=decorators.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lib/updating-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\nwindow.JSCompiler_renameProperty =\n    (prop, _obj) => prop;\nexport const defaultConverter = {\n    toAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value ? '' : null;\n            case Object:\n            case Array:\n                // if the value is `null` or `undefined` pass this through\n                // to allow removing/no change behavior.\n                return value == null ? value : JSON.stringify(value);\n        }\n        return value;\n    },\n    fromAttribute(value, type) {\n        switch (type) {\n            case Boolean:\n                return value !== null;\n            case Number:\n                return value === null ? null : Number(value);\n            case Object:\n            case Array:\n                return JSON.parse(value);\n        }\n        return value;\n    }\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual = (value, old) => {\n    // This ensures (old==NaN, value==NaN) always returns false\n    return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n    attribute: true,\n    type: String,\n    converter: defaultConverter,\n    reflect: false,\n    hasChanged: notEqual\n};\nconst microtaskPromise = Promise.resolve(true);\nconst STATE_HAS_UPDATED = 1;\nconst STATE_UPDATE_REQUESTED = 1 << 2;\nconst STATE_IS_REFLECTING_TO_ATTRIBUTE = 1 << 3;\nconst STATE_IS_REFLECTING_TO_PROPERTY = 1 << 4;\nconst STATE_HAS_CONNECTED = 1 << 5;\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n */\nexport class UpdatingElement extends HTMLElement {\n    constructor() {\n        super();\n        this._updateState = 0;\n        this._instanceProperties = undefined;\n        this._updatePromise = microtaskPromise;\n        this._hasConnectedResolver = undefined;\n        /**\n         * Map with keys for any properties that have changed since the last\n         * update cycle with previous values.\n         */\n        this._changedProperties = new Map();\n        /**\n         * Map with keys of properties that should be reflected when updated.\n         */\n        this._reflectingProperties = undefined;\n        this.initialize();\n    }\n    /**\n     * Returns a list of attributes corresponding to the registered properties.\n     * @nocollapse\n     */\n    static get observedAttributes() {\n        // note: piggy backing on this to ensure we're finalized.\n        this.finalize();\n        const attributes = [];\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this._classProperties.forEach((v, p) => {\n            const attr = this._attributeNameForProperty(p, v);\n            if (attr !== undefined) {\n                this._attributeToPropertyMap.set(attr, p);\n                attributes.push(attr);\n            }\n        });\n        return attributes;\n    }\n    /**\n     * Ensures the private `_classProperties` property metadata is created.\n     * In addition to `finalize` this is also called in `createProperty` to\n     * ensure the `@property` decorator can add property metadata.\n     */\n    /** @nocollapse */\n    static _ensureClassProperties() {\n        // ensure private storage for property declarations.\n        if (!this.hasOwnProperty(JSCompiler_renameProperty('_classProperties', this))) {\n            this._classProperties = new Map();\n            // NOTE: Workaround IE11 not supporting Map constructor argument.\n            const superProperties = Object.getPrototypeOf(this)._classProperties;\n            if (superProperties !== undefined) {\n                superProperties.forEach((v, k) => this._classProperties.set(k, v));\n            }\n        }\n    }\n    /**\n     * Creates a property accessor on the element prototype if one does not exist.\n     * The property setter calls the property's `hasChanged` property option\n     * or uses a strict identity check to determine whether or not to request\n     * an update.\n     * @nocollapse\n     */\n    static createProperty(name, options = defaultPropertyDeclaration) {\n        // Note, since this can be called by the `@property` decorator which\n        // is called before `finalize`, we ensure storage exists for property\n        // metadata.\n        this._ensureClassProperties();\n        this._classProperties.set(name, options);\n        // Do not generate an accessor if the prototype already has one, since\n        // it would be lost otherwise and that would never be the user's intention;\n        // Instead, we expect users to call `requestUpdate` themselves from\n        // user-defined accessors. Note that if the super has an accessor we will\n        // still overwrite it\n        if (options.noAccessor || this.prototype.hasOwnProperty(name)) {\n            return;\n        }\n        const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n        Object.defineProperty(this.prototype, name, {\n            // tslint:disable-next-line:no-any no symbol in index\n            get() {\n                // tslint:disable-next-line:no-any no symbol in index\n                return this[key];\n            },\n            set(value) {\n                // tslint:disable-next-line:no-any no symbol in index\n                const oldValue = this[name];\n                // tslint:disable-next-line:no-any no symbol in index\n                this[key] = value;\n                this.requestUpdate(name, oldValue);\n            },\n            configurable: true,\n            enumerable: true\n        });\n    }\n    /**\n     * Creates property accessors for registered properties and ensures\n     * any superclasses are also finalized.\n     * @nocollapse\n     */\n    static finalize() {\n        if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this)) &&\n            this.finalized) {\n            return;\n        }\n        // finalize any superclasses\n        const superCtor = Object.getPrototypeOf(this);\n        if (typeof superCtor.finalize === 'function') {\n            superCtor.finalize();\n        }\n        this.finalized = true;\n        this._ensureClassProperties();\n        // initialize Map populated in observedAttributes\n        this._attributeToPropertyMap = new Map();\n        // make any properties\n        // Note, only process \"own\" properties since this element will inherit\n        // any properties defined on the superClass, and finalization ensures\n        // the entire prototype chain is finalized.\n        if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n            const props = this.properties;\n            // support symbols in properties (IE11 does not support this)\n            const propKeys = [\n                ...Object.getOwnPropertyNames(props),\n                ...(typeof Object.getOwnPropertySymbols === 'function') ?\n                    Object.getOwnPropertySymbols(props) :\n                    []\n            ];\n            // This for/of is ok because propKeys is an array\n            for (const p of propKeys) {\n                // note, use of `any` is due to TypeSript lack of support for symbol in\n                // index types\n                // tslint:disable-next-line:no-any no symbol in index\n                this.createProperty(p, props[p]);\n            }\n        }\n    }\n    /**\n     * Returns the property name for the given attribute `name`.\n     * @nocollapse\n     */\n    static _attributeNameForProperty(name, options) {\n        const attribute = options.attribute;\n        return attribute === false ?\n            undefined :\n            (typeof attribute === 'string' ?\n                attribute :\n                (typeof name === 'string' ? name.toLowerCase() : undefined));\n    }\n    /**\n     * Returns true if a property should request an update.\n     * Called when a property value is set and uses the `hasChanged`\n     * option for the property if present or a strict identity check.\n     * @nocollapse\n     */\n    static _valueHasChanged(value, old, hasChanged = notEqual) {\n        return hasChanged(value, old);\n    }\n    /**\n     * Returns the property value for the given attribute value.\n     * Called via the `attributeChangedCallback` and uses the property's\n     * `converter` or `converter.fromAttribute` property option.\n     * @nocollapse\n     */\n    static _propertyValueFromAttribute(value, options) {\n        const type = options.type;\n        const converter = options.converter || defaultConverter;\n        const fromAttribute = (typeof converter === 'function' ? converter : converter.fromAttribute);\n        return fromAttribute ? fromAttribute(value, type) : value;\n    }\n    /**\n     * Returns the attribute value for the given property value. If this\n     * returns undefined, the property will *not* be reflected to an attribute.\n     * If this returns null, the attribute will be removed, otherwise the\n     * attribute will be set to the value.\n     * This uses the property's `reflect` and `type.toAttribute` property options.\n     * @nocollapse\n     */\n    static _propertyValueToAttribute(value, options) {\n        if (options.reflect === undefined) {\n            return;\n        }\n        const type = options.type;\n        const converter = options.converter;\n        const toAttribute = converter && converter.toAttribute ||\n            defaultConverter.toAttribute;\n        return toAttribute(value, type);\n    }\n    /**\n     * Performs element initialization. By default captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        this._saveInstanceProperties();\n    }\n    /**\n     * Fixes any properties set on the instance before upgrade time.\n     * Otherwise these would shadow the accessor and break these properties.\n     * The properties are stored in a Map which is played back after the\n     * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n     * (<=41), properties created for native platform properties like (`id` or\n     * `name`) may not have default values set in the element constructor. On\n     * these browsers native properties appear on instances and therefore their\n     * default value will overwrite any element default (e.g. if the element sets\n     * this.id = 'id' in the constructor, the 'id' will become '' since this is\n     * the native platform default).\n     */\n    _saveInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        this.constructor\n            ._classProperties.forEach((_v, p) => {\n            if (this.hasOwnProperty(p)) {\n                const value = this[p];\n                delete this[p];\n                if (!this._instanceProperties) {\n                    this._instanceProperties = new Map();\n                }\n                this._instanceProperties.set(p, value);\n            }\n        });\n    }\n    /**\n     * Applies previously saved instance properties.\n     */\n    _applyInstanceProperties() {\n        // Use forEach so this works even if for/of loops are compiled to for loops\n        // expecting arrays\n        // tslint:disable-next-line:no-any\n        this._instanceProperties.forEach((v, p) => this[p] = v);\n        this._instanceProperties = undefined;\n    }\n    connectedCallback() {\n        this._updateState = this._updateState | STATE_HAS_CONNECTED;\n        // Ensure connection triggers an update. Updates cannot complete before\n        // connection and if one is pending connection the `_hasConnectionResolver`\n        // will exist. If so, resolve it to complete the update, otherwise\n        // requestUpdate.\n        if (this._hasConnectedResolver) {\n            this._hasConnectedResolver();\n            this._hasConnectedResolver = undefined;\n        }\n        else {\n            this.requestUpdate();\n        }\n    }\n    /**\n     * Allows for `super.disconnectedCallback()` in extensions while\n     * reserving the possibility of making non-breaking feature additions\n     * when disconnecting at some point in the future.\n     */\n    disconnectedCallback() {\n    }\n    /**\n     * Synchronizes property values when attributes change.\n     */\n    attributeChangedCallback(name, old, value) {\n        if (old !== value) {\n            this._attributeToProperty(name, value);\n        }\n    }\n    _propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n        const ctor = this.constructor;\n        const attr = ctor._attributeNameForProperty(name, options);\n        if (attr !== undefined) {\n            const attrValue = ctor._propertyValueToAttribute(value, options);\n            // an undefined value does not change the attribute.\n            if (attrValue === undefined) {\n                return;\n            }\n            // Track if the property is being reflected to avoid\n            // setting the property again via `attributeChangedCallback`. Note:\n            // 1. this takes advantage of the fact that the callback is synchronous.\n            // 2. will behave incorrectly if multiple attributes are in the reaction\n            // stack at time of calling. However, since we process attributes\n            // in `update` this should not be possible (or an extreme corner case\n            // that we'd like to discover).\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_ATTRIBUTE;\n            if (attrValue == null) {\n                this.removeAttribute(attr);\n            }\n            else {\n                this.setAttribute(attr, attrValue);\n            }\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_ATTRIBUTE;\n        }\n    }\n    _attributeToProperty(name, value) {\n        // Use tracking info to avoid deserializing attribute value if it was\n        // just set from a property setter.\n        if (this._updateState & STATE_IS_REFLECTING_TO_ATTRIBUTE) {\n            return;\n        }\n        const ctor = this.constructor;\n        const propName = ctor._attributeToPropertyMap.get(name);\n        if (propName !== undefined) {\n            const options = ctor._classProperties.get(propName) || defaultPropertyDeclaration;\n            // mark state reflecting\n            this._updateState = this._updateState | STATE_IS_REFLECTING_TO_PROPERTY;\n            this[propName] =\n                // tslint:disable-next-line:no-any\n                ctor._propertyValueFromAttribute(value, options);\n            // mark state not reflecting\n            this._updateState = this._updateState & ~STATE_IS_REFLECTING_TO_PROPERTY;\n        }\n    }\n    /**\n     * Requests an update which is processed asynchronously. This should\n     * be called when an element should update based on some state not triggered\n     * by setting a property. In this case, pass no arguments. It should also be\n     * called when manually implementing a property setter. In this case, pass the\n     * property `name` and `oldValue` to ensure that any configured property\n     * options are honored. Returns the `updateComplete` Promise which is resolved\n     * when the update completes.\n     *\n     * @param name {PropertyKey} (optional) name of requesting property\n     * @param oldValue {any} (optional) old value of requesting property\n     * @returns {Promise} A Promise that is resolved when the update completes.\n     */\n    requestUpdate(name, oldValue) {\n        let shouldRequestUpdate = true;\n        // if we have a property key, perform property update steps.\n        if (name !== undefined && !this._changedProperties.has(name)) {\n            const ctor = this.constructor;\n            const options = ctor._classProperties.get(name) || defaultPropertyDeclaration;\n            if (ctor._valueHasChanged(this[name], oldValue, options.hasChanged)) {\n                // track old value when changing.\n                this._changedProperties.set(name, oldValue);\n                // add to reflecting properties set\n                if (options.reflect === true &&\n                    !(this._updateState & STATE_IS_REFLECTING_TO_PROPERTY)) {\n                    if (this._reflectingProperties === undefined) {\n                        this._reflectingProperties = new Map();\n                    }\n                    this._reflectingProperties.set(name, options);\n                }\n                // abort the request if the property should not be considered changed.\n            }\n            else {\n                shouldRequestUpdate = false;\n            }\n        }\n        if (!this._hasRequestedUpdate && shouldRequestUpdate) {\n            this._enqueueUpdate();\n        }\n        return this.updateComplete;\n    }\n    /**\n     * Sets up the element to asynchronously update.\n     */\n    async _enqueueUpdate() {\n        // Mark state updating...\n        this._updateState = this._updateState | STATE_UPDATE_REQUESTED;\n        let resolve;\n        const previousUpdatePromise = this._updatePromise;\n        this._updatePromise = new Promise((res) => resolve = res);\n        // Ensure any previous update has resolved before updating.\n        // This `await` also ensures that property changes are batched.\n        await previousUpdatePromise;\n        // Make sure the element has connected before updating.\n        if (!this._hasConnected) {\n            await new Promise((res) => this._hasConnectedResolver = res);\n        }\n        // Allow `performUpdate` to be asynchronous to enable scheduling of updates.\n        const result = this.performUpdate();\n        // Note, this is to avoid delaying an additional microtask unless we need\n        // to.\n        if (result != null &&\n            typeof result.then === 'function') {\n            await result;\n        }\n        resolve(!this._hasRequestedUpdate);\n    }\n    get _hasConnected() {\n        return (this._updateState & STATE_HAS_CONNECTED);\n    }\n    get _hasRequestedUpdate() {\n        return (this._updateState & STATE_UPDATE_REQUESTED);\n    }\n    get hasUpdated() {\n        return (this._updateState & STATE_HAS_UPDATED);\n    }\n    /**\n     * Performs an element update.\n     *\n     * You can override this method to change the timing of updates. For instance,\n     * to schedule updates to occur just before the next frame:\n     *\n     * ```\n     * protected async performUpdate(): Promise<unknown> {\n     *   await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n     *   super.performUpdate();\n     * }\n     * ```\n     */\n    performUpdate() {\n        // Mixin instance properties once, if they exist.\n        if (this._instanceProperties) {\n            this._applyInstanceProperties();\n        }\n        if (this.shouldUpdate(this._changedProperties)) {\n            const changedProperties = this._changedProperties;\n            this.update(changedProperties);\n            this._markUpdated();\n            if (!(this._updateState & STATE_HAS_UPDATED)) {\n                this._updateState = this._updateState | STATE_HAS_UPDATED;\n                this.firstUpdated(changedProperties);\n            }\n            this.updated(changedProperties);\n        }\n        else {\n            this._markUpdated();\n        }\n    }\n    _markUpdated() {\n        this._changedProperties = new Map();\n        this._updateState = this._updateState & ~STATE_UPDATE_REQUESTED;\n    }\n    /**\n     * Returns a Promise that resolves when the element has completed updating.\n     * The Promise value is a boolean that is `true` if the element completed the\n     * update without triggering another update. The Promise result is `false` if\n     * a property was set inside `updated()`. This getter can be implemented to\n     * await additional state. For example, it is sometimes useful to await a\n     * rendered element before fulfilling this Promise. To do this, first await\n     * `super.updateComplete` then any subsequent state.\n     *\n     * @returns {Promise} The Promise returns a boolean that indicates if the\n     * update resolved without triggering another update.\n     */\n    get updateComplete() {\n        return this._updatePromise;\n    }\n    /**\n     * Controls whether or not `update` should be called when the element requests\n     * an update. By default, this method always returns `true`, but this can be\n     * customized to control when to update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    shouldUpdate(_changedProperties) {\n        return true;\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes.\n     * It can be overridden to render and keep updated element DOM.\n     * Setting properties inside this method will *not* trigger\n     * another update.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(_changedProperties) {\n        if (this._reflectingProperties !== undefined &&\n            this._reflectingProperties.size > 0) {\n            // Use forEach so this works even if for/of loops are compiled to for\n            // loops expecting arrays\n            this._reflectingProperties.forEach((v, k) => this._propertyToAttribute(k, this[k], v));\n            this._reflectingProperties = undefined;\n        }\n    }\n    /**\n     * Invoked whenever the element is updated. Implement to perform\n     * post-updating tasks via DOM APIs, for example, focusing an element.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    updated(_changedProperties) {\n    }\n    /**\n     * Invoked when the element is first updated. Implement to perform one time\n     * work on the element after update.\n     *\n     * Setting properties inside this method will trigger the element to update\n     * again after this update cycle completes.\n     *\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    firstUpdated(_changedProperties) {\n    }\n}\n/**\n * Marks class as having finished creating properties.\n */\nUpdatingElement.finalized = true;\n//# sourceMappingURL=updating-element.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-element.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateResult } from './lit-html/lit-html.js';\nimport { render } from './lit-html/lib/shady-render.js';\nimport { UpdatingElement } from './lib/updating-element.js';\nexport * from './lib/updating-element.js';\nexport * from './lib/decorators.js';\nexport { html, svg, TemplateResult, SVGTemplateResult } from './lit-html/lit-html.js';\nimport { supportsAdoptingStyleSheets } from './lib/css-tag.js';\nexport * from './lib/css-tag.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litElementVersions'] || (window['litElementVersions'] = []))\n    .push('2.0.1');\n/**\n * Minimal implementation of Array.prototype.flat\n * @param arr the array to flatten\n * @param result the accumlated result\n */\nfunction arrayFlat(styles, result = []) {\n    for (let i = 0, length = styles.length; i < length; i++) {\n        const value = styles[i];\n        if (Array.isArray(value)) {\n            arrayFlat(value, result);\n        }\n        else {\n            result.push(value);\n        }\n    }\n    return result;\n}\n/** Deeply flattens styles array. Uses native flat if available. */\nconst flattenStyles = (styles) => styles.flat ? styles.flat(Infinity) : arrayFlat(styles);\nexport class LitElement extends UpdatingElement {\n    /** @nocollapse */\n    static finalize() {\n        super.finalize();\n        // Prepare styling that is stamped at first render time. Styling\n        // is built from user provided `styles` or is inherited from the superclass.\n        this._styles =\n            this.hasOwnProperty(JSCompiler_renameProperty('styles', this)) ?\n                this._getUniqueStyles() :\n                this._styles || [];\n    }\n    /** @nocollapse */\n    static _getUniqueStyles() {\n        // Take care not to call `this.styles` multiple times since this generates\n        // new CSSResults each time.\n        // TODO(sorvell): Since we do not cache CSSResults by input, any\n        // shared styles will generate new stylesheet objects, which is wasteful.\n        // This should be addressed when a browser ships constructable\n        // stylesheets.\n        const userStyles = this.styles;\n        const styles = [];\n        if (Array.isArray(userStyles)) {\n            const flatStyles = flattenStyles(userStyles);\n            // As a performance optimization to avoid duplicated styling that can\n            // occur especially when composing via subclassing, de-duplicate styles\n            // preserving the last item in the list. The last item is kept to\n            // try to preserve cascade order with the assumption that it's most\n            // important that last added styles override previous styles.\n            const styleSet = flatStyles.reduceRight((set, s) => {\n                set.add(s);\n                // on IE set.add does not return the set.\n                return set;\n            }, new Set());\n            // Array.from does not work on Set in IE\n            styleSet.forEach((v) => styles.unshift(v));\n        }\n        else if (userStyles) {\n            styles.push(userStyles);\n        }\n        return styles;\n    }\n    /**\n     * Performs element initialization. By default this calls `createRenderRoot`\n     * to create the element `renderRoot` node and captures any pre-set values for\n     * registered properties.\n     */\n    initialize() {\n        super.initialize();\n        this.renderRoot = this.createRenderRoot();\n        // Note, if renderRoot is not a shadowRoot, styles would/could apply to the\n        // element's getRootNode(). While this could be done, we're choosing not to\n        // support this now since it would require different logic around de-duping.\n        if (window.ShadowRoot && this.renderRoot instanceof window.ShadowRoot) {\n            this.adoptStyles();\n        }\n    }\n    /**\n     * Returns the node into which the element should render and by default\n     * creates and returns an open shadowRoot. Implement to customize where the\n     * element's DOM is rendered. For example, to render into the element's\n     * childNodes, return `this`.\n     * @returns {Element|DocumentFragment} Returns a node into which to render.\n     */\n    createRenderRoot() {\n        return this.attachShadow({ mode: 'open' });\n    }\n    /**\n     * Applies styling to the element shadowRoot using the `static get styles`\n     * property. Styling will apply using `shadowRoot.adoptedStyleSheets` where\n     * available and will fallback otherwise. When Shadow DOM is polyfilled,\n     * ShadyCSS scopes styles and adds them to the document. When Shadow DOM\n     * is available but `adoptedStyleSheets` is not, styles are appended to the\n     * end of the `shadowRoot` to [mimic spec\n     * behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n     */\n    adoptStyles() {\n        const styles = this.constructor._styles;\n        if (styles.length === 0) {\n            return;\n        }\n        // There are three separate cases here based on Shadow DOM support.\n        // (1) shadowRoot polyfilled: use ShadyCSS\n        // (2) shadowRoot.adoptedStyleSheets available: use it.\n        // (3) shadowRoot.adoptedStyleSheets polyfilled: append styles after\n        // rendering\n        if (window.ShadyCSS !== undefined && !window.ShadyCSS.nativeShadow) {\n            window.ShadyCSS.ScopingShim.prepareAdoptedCssText(styles.map((s) => s.cssText), this.localName);\n        }\n        else if (supportsAdoptingStyleSheets) {\n            this.renderRoot.adoptedStyleSheets =\n                styles.map((s) => s.styleSheet);\n        }\n        else {\n            // This must be done after rendering so the actual style insertion is done\n            // in `update`.\n            this._needsShimAdoptedStyleSheets = true;\n        }\n    }\n    connectedCallback() {\n        super.connectedCallback();\n        // Note, first update/render handles styleElement so we only call this if\n        // connected after first update.\n        if (this.hasUpdated && window.ShadyCSS !== undefined) {\n            window.ShadyCSS.styleElement(this);\n        }\n    }\n    /**\n     * Updates the element. This method reflects property values to attributes\n     * and calls `render` to render DOM via lit-html. Setting properties inside\n     * this method will *not* trigger another update.\n     * * @param _changedProperties Map of changed properties with old values\n     */\n    update(changedProperties) {\n        super.update(changedProperties);\n        const templateResult = this.render();\n        if (templateResult instanceof TemplateResult) {\n            this.constructor\n                .render(templateResult, this.renderRoot, { scopeName: this.localName, eventContext: this });\n        }\n        // When native Shadow DOM is used but adoptedStyles are not supported,\n        // insert styling after rendering to ensure adoptedStyles have highest\n        // priority.\n        if (this._needsShimAdoptedStyleSheets) {\n            this._needsShimAdoptedStyleSheets = false;\n            this.constructor._styles.forEach((s) => {\n                const style = document.createElement('style');\n                style.textContent = s.cssText;\n                this.renderRoot.appendChild(style);\n            });\n        }\n    }\n    /**\n     * Invoked on each update to perform rendering tasks. This method must return\n     * a lit-html TemplateResult. Setting properties inside this method will *not*\n     * trigger the element to update.\n     */\n    render() {\n    }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n */\nLitElement.finalized = true;\n/**\n * Render method used to render the lit-html TemplateResult to the element's\n * DOM.\n * @param {TemplateResult} Template to render.\n * @param {Element|DocumentFragment} Node into which to render.\n * @param {String} Element name.\n * @nocollapse\n */\nLitElement.render = render;\n//# sourceMappingURL=lit-element.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n<!--\n   PRs should document their user-visible changes (if any) in the\n   Unreleased section, uncommenting the header as necessary.\n-->\n\n<!-- ## Unreleased -->\n<!-- ### Changed -->\n<!-- ### Added -->\n<!-- ### Removed -->\n<!-- ### Fixed -->\n\n## [1.0.0] - 2019-02-05\n### Changed\n* Tons of docs updates ([#746](https://github.com/Polymer/lit-html/pull/746)), ([#675](https://github.com/Polymer/lit-html/pull/675)), ([#724](https://github.com/Polymer/lit-html/pull/724)), ([#753](https://github.com/Polymer/lit-html/pull/753)), ([#764](https://github.com/Polymer/lit-html/pull/764)), ([#763](https://github.com/Polymer/lit-html/pull/763)), ([#765](https://github.com/Polymer/lit-html/pull/765)), ([#767](https://github.com/Polymer/lit-html/pull/767)), ([#768](https://github.com/Polymer/lit-html/pull/768)), ([#734](https://github.com/Polymer/lit-html/pull/734)), ([#771](https://github.com/Polymer/lit-html/pull/771)), ([#766](https://github.com/Polymer/lit-html/pull/766)), ([#773](https://github.com/Polymer/lit-html/pull/773)), ([#770](https://github.com/Polymer/lit-html/pull/770)), ([#769](https://github.com/Polymer/lit-html/pull/769)), ([#777](https://github.com/Polymer/lit-html/pull/777)), ([#776](https://github.com/Polymer/lit-html/pull/776)), ([#754](https://github.com/Polymer/lit-html/pull/754)), ([#779](https://github.com/Polymer/lit-html/pull/779))\n### Added\n* Global version of `lit-html` on window ([#790](https://github.com/Polymer/lit-html/pull/790)).\n### Fixed\n* Removed use of `any` outside of test code ([#741](https://github.com/Polymer/lit-html/pull/741)).\n\n## [1.0.0-rc.2] - 2019-01-09\n### Changed\n* Performance improvements to template processing. ([#690](https://github.com/Polymer/lit-html/pull/690))\n### Added\n* Added the `nothing` sentinel value which can be used to clear a part. ([#673](https://github.com/Polymer/lit-html/pull/673))\n### Fixed\n* Fixed #702: a bug with the `unsafeHTML` directive when changing between unsafe and other values. ([#703](https://github.com/Polymer/lit-html/pull/703))\n* Fixed #708: a bug with the `until` directive where placeholders could overwrite resolved Promises. ([#721](https://github.com/Polymer/lit-html/pull/721))\n\n\n## [1.0.0-rc.1] - 2018-12-13\n### Fixed\n* Documentation updates.\n* Fixed typing for template_polyfill `createElement` call.\n\n## [0.14.0] - 2018-11-30\n### Changed\n* `until()` can now take any number of sync or async arguments. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* [Breaking] `guard()` supports multiple dependencies. If the first argument to `guard()` is an array, the array items are checked for equality to previous values. ([#666](https://github.com/Polymer/lit-html/pull/666))\n* [Breaking] Renamed `classMap.js` and `styleMap.js` files to kebab-case. ([#644](https://github.com/Polymer/lit-html/pull/644))\n### Added\n* Added `cache()` directive. ([#646](https://github.com/Polymer/lit-html/pull/646))\n* Removed Promise as a supposed node-position value type. ([#555](https://github.com/Polymer/lit-html/pull/555))\n* Added a minimal `<template>` polyfill.\n### Removed\n* [Breaking] Removed the `when()` directive.  Users may achieve similar behavior by wrapping a ternary with the `cache()` directive.\n### Fixed\n* Bound attribute names are rewritten to avoid IE/Edge removing SVG and style attributes. ([#640](https://github.com/Polymer/lit-html/pull/640))\n* Ensure shady-render prepares styling for a scope before attaching child elements. ([#664](https://github.com/Polymer/lit-html/pull/664))\n* Handle CSS Custom Variables in the styleMap directive. [#642](https://github.com/Polymer/lit-html/pull/642))\n\n## [0.13.0] - 2018-11-08\n### Changed\n* [Breaking] Directives are now defined by passing the entire directive factory function to `directive()`. ([#562](https://github.com/Polymer/lit-html/pull/562))\n### Fixed\n* Fix issue on obscure browsers that do not accept event listener objects by using callback as event part listener ([#581](https://github.com/Polymer/lit-html/pull/581))\n* Fix KeyFn and ItemTemplate types ([#570](https://github.com/Polymer/lit-html/pull/570))\n* Don't use export * to workaround rollup bug ([#556](https://github.com/Polymer/lit-html/pull/556))\n* `eventContext` is no longer used as the `this` value for event listener objects (object with a `handleEvent` method), as the object itself is supposed to be the `this` value. ([#576](https://github.com/Polymer/lit-html/pull/576))\n\n## [0.12.0] - 2018-10-05\n### Changed\n* Re-implemented repeat directive for better performance ([#501](https://github.com/Polymer/lit-html/pull/501))\n* Updated TypeScript dependency to 3.1\n* [Breaking] `render()` now takes an options object as the third argument. ([#523](https://github.com/Polymer/lit-html/pull/523))\n### Added\n* Event listeners are called with a configurable `this` reference, which is set via the `eventContext` option to `render()`. ([#523](https://github.com/Polymer/lit-html/pull/523))\n* Support for event listener options, by passing the listener itself as both the second and third arguments to add/removeEventListener().\n\n\n## [0.11.4] - 2018-09-17\n### Fixed\n* Fixed issues with `shady-render` introduced in 0.11.3 ([#504](https://github.com/Polymer/lit-html/issues/504) and [#505](https://github.com/Polymer/lit-html/issues/505)).\n\n## [0.11.3] - 2018-09-13\n### Changed\n* Moved upgrading of custom elements in template fragments to a common location in TemplateInstance ([#489](https://github.com/Polymer/lit-html/pull/489))\n* Rewrite render() to reuse the logic in NodePart. render() now supports all the data types that NodeParts do. ([#491](https://github.com/Polymer/lit-html/pull/491))\n\n### Fixed\n* Fixed bug when using the ShadyCSS @apply` shim. ([#502](https://github.com/Polymer/lit-html/pull/502))\n\n## [0.11.2] - 2018-09-12\n\n### Added\n* Added `classMap` and `styleMap` directives ([#486](https://github.com/Polymer/lit-html/pull/486))\n\n### Fixed\n\n* Fixed bug in asyncReplace when rerendering the same iterable ([#485](https://github.com/Polymer/lit-html/pull/485))\n* Update properties before upgrading custom elements ([#455](https://github.com/Polymer/lit-html/pull/455))\n* Cache the ShadyCSS version lookup ([#477](https://github.com/Polymer/lit-html/pull/477))\n\n## [0.11.1] - 2018-09-02\n\n### Changed\n* Eliminated a cycle in the module import graph ([#472](https://github.com/Polymer/lit-html/pull/472))\n* Remove the default value for the templateProcessor parameter in TemplateResult#constuctor, making it a required paremeter ([#472](https://github.com/Polymer/lit-html/pull/472))\n\n## [0.11.0] - 2018-08-28\n\n### Added\n* Added support for property, event, and boolean bindings to default syntax ([#398](https://github.com/Polymer/lit-html/pull/398))\n* Added guard directive ([#438](https://github.com/Polymer/lit-html/pull/438))\n* Added when directive ([#439](https://github.com/Polymer/lit-html/pull/439))\n\n### Changed\n* Split implementation into multiple small modules and merged lit-html.js and core.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Moved directives into top-level `directives/` directory ([#436](https://github.com/Polymer/lit-html/pull/436))\n* Replaced `PartCallback` with `TemplateProcessor` ([#405](https://github.com/Polymer/lit-html/pull/405))\n* Unified `NodePart` and `AttributePart` interfaces ([#400](https://github.com/Polymer/lit-html/pull/400))\n  * AttributePart#setValue() takes a single value\n  * `Part` has separate `setValue()` and `commit()` phases\n  * Added `AttributeCommitter` to commit attribute values once for multiple `AttributeParts`\n\n### Removed\n* Removed lit-extended.js ([#436](https://github.com/Polymer/lit-html/pull/436))\n\n### Fixed\n* Render initial undefined values in attributes ([#377](https://github.com/Polymer/lit-html/pull/377))\n* Handle case-sensitive attributes like `viewBox` correctly ([#376](https://github.com/Polymer/lit-html/pull/376))\n* Support bindings in `<template>` elements ([#343](https://github.com/Polymer/lit-html/pull/343))\n* Don’t break templates when HTML comments have bindings in them ([#446](https://github.com/Polymer/lit-html/pull/446))\n* IE: Don't use Set() constructor arguments ([#401](https://github.com/Polymer/lit-html/pull/401))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Update values after upgrading custom elements ([#385](https://github.com/Polymer/lit-html/pull/385))\n* Dirty check primitive values passed to unsafeHTML() ([#384](https://github.com/Polymer/lit-html/pull/384))\n* Handle forms as Node instead of iterable ([#404](https://github.com/Polymer/lit-html/pull/404))\n* Upgrade disconnected custom elements before setting properties on them. ([#442](https://github.com/Polymer/lit-html/pull/442))\n* Fix style attribute bindings in IE ([#448](https://github.com/Polymer/lit-html/pull/448))\n\n\n## [0.10.1] - 2018-06-13\n\n* Added `noChange` - Value in favour of `directiveValue` (deprecated).\n  * A `noChange` - Value signals that a value was handled by a directive and should not be written to the DOM\n* Updated shady-render to render styles in order, work with `@apply`, and work in browers where CSS Custom Properties must be polyfilled, like IE 11.\n* Introduced API to modify template contents safely without breaking template parts\n  * `insertNodeIntoTemplate(template: Template, node: Node, refNode: Node|null)`\n  * `removeNodesFromTemplate(template: Template, nodesToRemove: Set<Node>)`\n\n## [0.10.0] - 2018-05-03\n* Added IE11 support\n* Declarative events in lit-extended are more efficient when handlers change\n\n## [0.9.0] - 2018-02-01\n\n* Refactored how template tags and `render()` are implemented so that all\n  specialization of template syntax is done in tags, not `render()`, allowing\n  for the mixining of templates of different syntaxes, and for hooks in\n  `render()` to change templates before they're initially processed.\n* Added ShadyCSS support in lib/shady-render.js. It's exported render function\n  will pass templates to ShadyCSS's `prepareTemplate()` function to process style\n  tags and elements in the template for emulate CSS scoping.\n* lit-extended: Attribute bindings with a `?` suffix on the name now act as boolean\n  attributes. The attribute will be removed for falsey values and set to `''` for\n  truthy values, matching the HTML specification behavior for boolean attributes.\n* Fixed a bug where directives rendered incorrectly on AttributeParts and PropertyParts\n\n## [0.8.0] - 2018-01-12\n\n* Allow all valid HTML attribute names, including emoji and Angular-style\n  `(foo)=` and `[foo]=` names.\n* Drastically improved performance of the `repeat` directive.\n* Fixed an issue with expressions directly following elements.\n* Fixed numerous bugs with the `repeat` directive.\n* Performance improvements for template setup\n* Internal code cleanup\n* Support synchronous thenables\n* Added the `asyncAppend` and `asyncReplace` directives to handle async iterable values in expressions.\n\n## [0.7.0] - 2017-10-06\n\n* Added the `svg` template tag for creating partial SVG content\n* Support for expressions inside tables and other elements with limited permitted content\n* Only remove whitespace between elements, or at the start or end of elements\n* Fixed bugs with rendering iterables\n* A few IE/Edge fixes. Closer to full support.\n\n## [0.6.0] - 2017-09-01\n\n* Fixed removing event handlers when setting them to `undefined`.\n* Allow the text \"{{}}\" to appear in templates.\n* Optimized clearing of Parts.\n* Added `unsafeHTML()` directive to bind values as HTML source.\n* Optimizations, simplification and bug fixes of Array handling code.\n* Update to extension API: added partCallback parameter to `render()`.\n* Added the `directive()` decorator function to create directives. Functions values are no longer treated as directive by default, simplifying declarative event handlers.\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/CODE_OF_CONDUCT.md",
    "content": "The Polymer community is full of bright, thoughtful, helpful, supportive people - it's on all of us to keep it this way! Google and the Polymer team want to help foster and support this, and we take any breaches of mutual respect very seriously. Below is the community code of conduct, which applies to our Github repos and organizations, mailing lists, Slack channels, G+ community, and any other Polymer-supported communication group.\n\n\n### Be excellent to each other.\n\nTreat everyone with respect. Participate while acknowledging that everyone deserves to be here — and each of us has the right to enjoy our experience and participate without fear of harassment, discrimination, or condescension, whether blatant or via micro-aggressions.\n\n### Speak up if you see or hear something.\n\nHarassment is not tolerated, and you are empowered to politely engage when you or others are disrespected. Also, assume positive intent. The person making you feel uncomfortable may not be aware of what they are doing, and politely bringing their behavior to their attention is encouraged.\n\n### Practice saying \"Yes and\" to each other.\n\nBuild on each other’s ideas. We all benefit when we create together.\n\n### We have a ZERO TOLERANCE POLICY for harassment of any kind, including but not limited to:\n\n* Stalking/following\n* Harassing comments\n* Deliberate intimidation\n* Sustained disruption of threads, channels, lists, etc.\n* Offensive comments\n* Sexual images in public spaces\n* Unwelcome sexual or otherwise aggressive attention\n\n#### In relation to, but not limited to:\n\n* Neurodiversity\n* Race\n* Color\n* National origin\n* Gender\n* Gender identity\n* Gender presentation\n* Sexual orientation\n* Age\n* Body size\n* Differing abilities\n* Appearance\n* Religion\n* Pregnancy\n\nWe empower and encourage you to report any behavior that makes you or others feel uncomfortable by emailing community@polymer-project.org.\n\nAny person communicating in a disorderly manner, engaging in harassing or uncomfortable behavior, or otherwise failing to comply with this policy may be removed from any Google-supported channel or permanently banned (including to future Google communities) at any time in Google’s sole discretion. \n\n### ANTI-HARASSMENT POLICY\n\nGoogle and the Polymer team are dedicated to supporting a harassment-free and inclusive community for everyone regardless of gender identity and expression, sexual orientation, differing abilities, neurodiversity, physical appearance, body size, ethnicity, nationality, age, religion, or other protected category. We do not tolerate harassment of community members in any form. Sexual language and imagery is not appropriate for any Polymer-related community. Google and the Polymer team take these violations of our policy seriously and will respond appropriately. All community members must abide by our anti-harassment policy.\n\n### CONDUCT POLICY\n\nGoogle and the Polymer team reserve the right to remove or ban any person from a Polymer-supported community (and potentially all future Google-supported communities) at any time in its sole discretion. This includes but is not limited to community members behaving in a disorderly manner or failing to comply with the terms and conditions herein.\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/CONTRIBUTING.md",
    "content": "# Contributing to lit-html\n\nThank you for your interest in contributing to lit-html!\n\nThere are many ways to contribute to lit-html project, and we have many different needs to be addressed. All contributions, from PRs to reports of successful usage, are appreciated and valuable.\n\n## Code of Conduct\n\nWe have a [Code of Conduct](./CODE_OF_CONDUCT.md), please follow it in all interactions with project maintainers and fellow users.\n\n## Filing Issues\n\nIssues are one of the most important ways to contribute to lit-html.\n\nPlease search though open and closed issues to see if a similar issue already exists. If not, open an issue and try to provide a minimal reproduction if you can.\n\nOccasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.\n\n## Pull Requests\n\nPull requests are greatly appreciated! To ensure a smooth review process, please follow these steps:\n\n 1. Make sure there's an open issue that the PR addresses. Add \"Fixes #(issue number)\" to the PR description.\n 2. Please discuss the general shape of the change ahead of time. This can save much time for reviewers and submitters alike. Many times there may be existing ideas on how to handle an issue that are not fully written out, and asking about it will bring out more details.\n 3. All PRs that change behavior or fix bugs should have new or updated tests.\n 4. Try to create a set of descriptive commits that each do one focused change. Avoid commits like \"oops\", and prefer commits like \"Added method foo to Bar\".\n 5. When addressing review comments, try to add new commits, rather than modifying previous commits. This makes it easier for reviewers to see what changed since the last review. `git commit --fixup {SHA}` is really useful for this. Obviously, requests like \"Please rebase onto master\" require changing commits.\n 6. If you [allow changes to be committed to your PR branches](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) we can fix some small things in the PR for you, speeding up the review process. This is especially useful if you're new to TypeScript and need help with type annotations.\n 7. Please run `npm run lint` and `npm run format` before submitting PRs. PRs that don't lint and aren't formatted will fail contiuous integration tests.\n\n## Code Style\n\nWe follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html), but there are a couple of points worth emphasizing:\n\n 1. Clear is better than clever. Optimize for simple, readable code first.\n 2. Prefer longer, more descriptive names, over shorter names. For most variables, minification means we don't pay for extra characters in production.\n 3. Always err on the side of too many comments. When commenting, \"why\" is more important than \"what\".\n 4. If you're tempted to add a \"what\" comment, see if you can't restructure the code and use more descritive names so that the comment is unneccessary.\n\n## TypeScript\n\nWe use TypeScript on lit-html in order to automatically check the code for type errors and document the types of fields and attributes for easier reading. If you don't know TypeScript, we hope it doesn't discourage you from contributing - TypeScript is a superset of JavaScript that focuses on adding type annotations.\n\nTypeScript is hopefully relatively easy to pick up, but if you have any problems we're more than happy to help. You can submit a pull request with type warnings and we'll either help you fix them, or if you allow commits to your PR branch, fix them for you. VS Code is a very nice IDE for TypeScript development if you care to try it.\n\nWe stick to subset of TypeScript that is more strict and closer to standard JavaScript.\n 1. We have strict compiler options turned on. Do not change them.\n 2. Prefer the `unknown` type over `any`.\n 3. Prefer the `object` type over `Object`\n 4. Prefer named type alias over complex inline types.\n 5. Use web-compatible, full URLs as import specifiers, including file extensions. ie, `import * as foo from './foo.js`, not `import * as foo from './foo`\n 6. Only use TypeScript for types:\n    1. We compile to the `esnext` target and don't use TypeScript for \"downlevel\" compilation. Do not change that.\n    2. Don't use features that are not part of the type system:\n        1. `namespace`\n        2. `enum`\n        3. Parameter properties (initialize class fields in the constructor parameter list)\n 7. Prefix private members with `_`. (don't assume clients are using TypeScript)\n\n## Contributor License Agreement\n\nYou might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.\n\nIf you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).\n\n[Complete the CLA](https://cla.developers.google.com/clas)\n\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, The Polymer Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/README.md",
    "content": "# lit-html\nEfficient, Expressive, Extensible HTML templates in JavaScript\n\n[![Build Status](https://travis-ci.org/Polymer/lit-html.svg?branch=master)](https://travis-ci.org/Polymer/lit-html)\n[![Published on npm](https://img.shields.io/npm/v/lit-html.svg)](https://www.npmjs.com/package/lit-html)\n[![Mentioned in Awesome lit-html](https://awesome.re/mentioned-badge.svg)](https://github.com/web-padawan/awesome-lit-html)\n\n## Documentation\n\nFull documentation is available at [lit-html.polymer-project.org](https://lit-html.polymer-project.org).\n\nDocs source is in the `docs` folder. To build the site youself, see the instructions in [docs/README.md](docs/README.md).\n\n## Overview\n\n`lit-html` lets you write [HTML templates](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) in JavaScript with [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals).\n\nlit-html templates are plain JavaScript and combine the familiarity of writing HTML with the power of JavaScript. lit-html takes care of efficiently rendering templates to DOM, including efficiently updating the DOM with new values.\n\n```javascript\nimport {html, render} from 'lit-html';\n\n// This is a lit-html template function. It returns a lit-html template.\nconst helloTemplate = (name) => html`<div>Hello ${name}!</div>`;\n\n// This renders <div>Hello Steve!</div> to the document body\nrender(helloTemplate('Steve'), document.body);\n\n// This updates to <div>Hello Kevin!</div>, but only updates the ${name} part\nrender(helloTemplate('Kevin'), document.body);\n```\n\n`lit-html` provides two main exports:\n\n * `html`: A JavaScript [template tag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) used to produce a `TemplateResult`, which is a container for a template, and the values that should populate the template.\n * `render()`: A function that renders a `TemplateResult` to a DOM container, such as an element or shadow root.\n\n## Installation\n\n```bash\n$ npm install lit-html\n```\n\n## Status\n\n`lit-html` is under active development and has not yet had a 1.0 release. The\ninternal API may still change somewhat. The `html` and `render` API is stable.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md).\n"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/async-append.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { createMarker, directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], appending new\n * values after previous values, similar to the built-in support for iterables.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is appended to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncAppend = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncAppend can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    part.value = value;\n    // We keep track of item Parts across iterations, so that we can\n    // share marker nodes between consecutive Parts.\n    let itemPart;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This lets the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            // Like with sync iterables, each item induces a Part, so we need\n            // to keep track of start and end nodes for the Part.\n            // Note: Because these Parts are not updatable like with a sync\n            // iterable (if we render a new value, we always clear), it may\n            // be possible to optimize away the Parts and just re-use the\n            // Part.setValue() logic.\n            let itemStartNode = part.startNode;\n            // Check to see if we have a previous item and Part\n            if (itemPart !== undefined) {\n                // Create a new node to separate the previous and next Parts\n                itemStartNode = createMarker();\n                // itemPart is currently the Part for the previous item. Set\n                // it's endNode to the node we'll use for the next Part's\n                // startNode.\n                itemPart.endNode = itemStartNode;\n                part.endNode.parentNode.insertBefore(itemStartNode, part.endNode);\n            }\n            itemPart = new NodePart(part.options);\n            itemPart.insertAfterNode(itemStartNode);\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# sourceMappingURL=async-append.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/async-replace.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { directive, NodePart } from '../lit-html.js';\n/**\n * A directive that renders the items of an async iterable[1], replacing\n * previous values with new values, so that only one value is ever rendered\n * at a time.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is rendered to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://github.com/tc39/proposal-async-iteration\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n *     value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncReplace = directive((value, mapper) => async (part) => {\n    var e_1, _a;\n    if (!(part instanceof NodePart)) {\n        throw new Error('asyncReplace can only be used in text bindings');\n    }\n    // If we've already set up this particular iterable, we don't need\n    // to do anything.\n    if (value === part.value) {\n        return;\n    }\n    // We nest a new part to keep track of previous item values separately\n    // of the iterable as a value itself.\n    const itemPart = new NodePart(part.options);\n    part.value = value;\n    let i = 0;\n    try {\n        for (var value_1 = __asyncValues(value), value_1_1; value_1_1 = await value_1.next(), !value_1_1.done;) {\n            let v = value_1_1.value;\n            // Check to make sure that value is the still the current value of\n            // the part, and if not bail because a new value owns this part\n            if (part.value !== value) {\n                break;\n            }\n            // When we get the first value, clear the part. This let's the\n            // previous value display until we can replace it.\n            if (i === 0) {\n                part.clear();\n                itemPart.appendIntoPart(part);\n            }\n            // As a convenience, because functional-programming-style\n            // transforms of iterables and async iterables requires a library,\n            // we accept a mapper function. This is especially convenient for\n            // rendering a template for each item.\n            if (mapper !== undefined) {\n                // This is safe because T must otherwise be treated as unknown by\n                // the rest of the system.\n                v = mapper(v, i);\n            }\n            itemPart.setValue(v);\n            itemPart.commit();\n            i++;\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (value_1_1 && !value_1_1.done && (_a = value_1.return)) await _a.call(value_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n});\n//# sourceMappingURL=async-replace.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/cache.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { TemplateInstance } from '../lib/template-instance.js';\nimport { directive, NodePart, reparentNodes, TemplateResult } from '../lit-html.js';\nconst templateCaches = new WeakMap();\n/**\n * Enables fast switching between multiple templates by caching the DOM nodes\n * and TemplateInstances produced by the templates.\n *\n * Example:\n *\n * ```\n * let checked = false;\n *\n * html`\n *   ${cache(checked ? html`input is checked` : html`input is not checked`)}\n * `\n * ```\n */\nexport const cache = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('cache can only be used in text bindings');\n    }\n    let templateCache = templateCaches.get(part);\n    if (templateCache === undefined) {\n        templateCache = new WeakMap();\n        templateCaches.set(part, templateCache);\n    }\n    const previousValue = part.value;\n    // First, can we update the current TemplateInstance, or do we need to move\n    // the current nodes into the cache?\n    if (previousValue instanceof TemplateInstance) {\n        if (value instanceof TemplateResult &&\n            previousValue.template === part.options.templateFactory(value)) {\n            // Same Template, just trigger an update of the TemplateInstance\n            part.setValue(value);\n            return;\n        }\n        else {\n            // Not the same Template, move the nodes from the DOM into the cache.\n            let cachedTemplate = templateCache.get(previousValue.template);\n            if (cachedTemplate === undefined) {\n                cachedTemplate = {\n                    instance: previousValue,\n                    nodes: document.createDocumentFragment(),\n                };\n                templateCache.set(previousValue.template, cachedTemplate);\n            }\n            reparentNodes(cachedTemplate.nodes, part.startNode.nextSibling, part.endNode);\n        }\n    }\n    // Next, can we reuse nodes from the cache?\n    if (value instanceof TemplateResult) {\n        const template = part.options.templateFactory(value);\n        const cachedTemplate = templateCache.get(template);\n        if (cachedTemplate !== undefined) {\n            // Move nodes out of cache\n            part.setValue(cachedTemplate.nodes);\n            part.commit();\n            // Set the Part value to the TemplateInstance so it'll update it.\n            part.value = cachedTemplate.instance;\n        }\n    }\n    part.setValue(value);\n});\n//# sourceMappingURL=cache.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/class-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n// On IE11, classList.toggle doesn't accept a second argument.\n// Since this is so minor, we just polyfill it.\nif (window.navigator.userAgent.match('Trident')) {\n    DOMTokenList.prototype.toggle = function (token, force) {\n        if (force === undefined || force) {\n            this.add(token);\n        }\n        else {\n            this.remove(token);\n        }\n        return force === undefined ? true : force;\n    };\n}\n/**\n * Stores the ClassInfo object applied to a given AttributePart.\n * Used to unset existing values when a new ClassInfo object is applied.\n */\nconst classMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static classes applied (e.g. `foo` in\n * class=\"foo ${classMap()}\"). Static classes are applied only the first time\n * the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst classMapStatics = new WeakMap();\n/**\n * A directive that applies CSS classes. This must be used in the `class`\n * attribute and must be the only part used in the attribute. It takes each\n * property in the `classInfo` argument and adds the property name to the\n * element's `classList` if the property value is truthy; if the property value\n * is falsey, the property name is removed from the element's `classList`. For\n * example\n * `{foo: bar}` applies the class `foo` if the value of `bar` is truthy.\n * @param classInfo {ClassInfo}\n */\nexport const classMap = directive((classInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'class' || part.committer.parts.length > 1) {\n        throw new Error('The `classMap` directive must be used in the `class` attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // handle static classes\n    if (!classMapStatics.has(part)) {\n        part.committer.element.className = part.committer.strings.join(' ');\n        classMapStatics.set(part, true);\n    }\n    // remove old classes that no longer apply\n    const oldInfo = classMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in classInfo)) {\n            part.committer.element.classList.remove(name);\n        }\n    }\n    // add new classes\n    for (const name in classInfo) {\n        if (!oldInfo || (oldInfo[name] !== classInfo[name])) {\n            // We explicitly want a loose truthy check here because\n            // it seems more convenient that '' and 0 are skipped.\n            part.committer.element.classList.toggle(name, Boolean(classInfo[name]));\n        }\n    }\n    classMapCache.set(part, classInfo);\n});\n//# sourceMappingURL=class-map.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/guard.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { directive } from '../lit-html.js';\nconst previousValues = new WeakMap();\n/**\n * Prevents re-render of a template function until a single value or an array of\n * values changes.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([user.id, company.id], () => html`...`)}\n *   </div>\n * ```\n *\n * In this case, the template only renders if either `user.id` or `company.id`\n * changes.\n *\n * guard() is useful with immutable data patterns, by preventing expensive work\n * until data updates.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}\n *   </div>\n * ```\n *\n * In this case, items are mapped over only when the array reference changes.\n *\n * @param value the value to check before re-rendering\n * @param f the template function\n */\nexport const guard = directive((value, f) => (part) => {\n    const previousValue = previousValues.get(part);\n    if (Array.isArray(value)) {\n        // Dirty-check arrays by item\n        if (Array.isArray(previousValue) &&\n            previousValue.length === value.length &&\n            value.every((v, i) => v === previousValue[i])) {\n            return;\n        }\n    }\n    else if (previousValue === value &&\n        (value !== undefined || previousValues.has(part))) {\n        // Dirty-check non-arrays by identity\n        return;\n    }\n    part.setValue(f());\n    // Copy the value if it's an array so that if it's mutated we don't forget\n    // what the previous values were.\n    previousValues.set(part, Array.isArray(value) ? Array.from(value) : value);\n});\n//# sourceMappingURL=guard.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/if-defined.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive } from '../lit-html.js';\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nexport const ifDefined = directive((value) => (part) => {\n    if (value === undefined && part instanceof AttributePart) {\n        if (value !== part.value) {\n            const name = part.committer.name;\n            part.committer.element.removeAttribute(name);\n        }\n    }\n    else {\n        part.setValue(value);\n    }\n});\n//# sourceMappingURL=if-defined.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/repeat.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { createMarker, directive, NodePart, removeNodes, reparentNodes } from '../lit-html.js';\n// Helper functions for manipulating parts\n// TODO(kschaaf): Refactor into Part API?\nconst createAndInsertPart = (containerPart, beforePart) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = beforePart === undefined ? containerPart.endNode :\n        beforePart.startNode;\n    const startNode = container.insertBefore(createMarker(), beforeNode);\n    container.insertBefore(createMarker(), beforeNode);\n    const newPart = new NodePart(containerPart.options);\n    newPart.insertAfterNode(startNode);\n    return newPart;\n};\nconst updatePart = (part, value) => {\n    part.setValue(value);\n    part.commit();\n    return part;\n};\nconst insertPartBefore = (containerPart, part, ref) => {\n    const container = containerPart.startNode.parentNode;\n    const beforeNode = ref ? ref.startNode : containerPart.endNode;\n    const endNode = part.endNode.nextSibling;\n    if (endNode !== beforeNode) {\n        reparentNodes(container, part.startNode, endNode, beforeNode);\n    }\n};\nconst removePart = (part) => {\n    removeNodes(part.startNode.parentNode, part.startNode, part.endNode.nextSibling);\n};\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list, start, end) => {\n    const map = new Map();\n    for (let i = start; i <= end; i++) {\n        map.set(list[i], i);\n    }\n    return map;\n};\n// Stores previous ordered list of parts and map of key to index\nconst partListCache = new WeakMap();\nconst keyListCache = new WeakMap();\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * amd removals.\n *\n * IMPORTANT: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive((items, keyFnOrTemplate, template) => {\n    let keyFn;\n    if (template === undefined) {\n        template = keyFnOrTemplate;\n    }\n    else if (keyFnOrTemplate !== undefined) {\n        keyFn = keyFnOrTemplate;\n    }\n    return (containerPart) => {\n        if (!(containerPart instanceof NodePart)) {\n            throw new Error('repeat can only be used in text bindings');\n        }\n        // Old part & key lists are retrieved from the last update\n        // (associated with the part for this instance of the directive)\n        const oldParts = partListCache.get(containerPart) || [];\n        const oldKeys = keyListCache.get(containerPart) || [];\n        // New part list will be built up as we go (either reused from\n        // old parts or created for new keys in this update). This is\n        // saved in the above cache at the end of the update.\n        const newParts = [];\n        // New value list is eagerly generated from items along with a\n        // parallel array indicating its key.\n        const newValues = [];\n        const newKeys = [];\n        let index = 0;\n        for (const item of items) {\n            newKeys[index] = keyFn ? keyFn(item, index) : index;\n            newValues[index] = template(item, index);\n            index++;\n        }\n        // Maps from key to index for current and previous update; these\n        // are generated lazily only when needed as a performance\n        // optimization, since they are only required for multiple\n        // non-contiguous changes in the list, which are less common.\n        let newKeyToIndexMap;\n        let oldKeyToIndexMap;\n        // Head and tail pointers to old parts and new values\n        let oldHead = 0;\n        let oldTail = oldParts.length - 1;\n        let newHead = 0;\n        let newTail = newValues.length - 1;\n        // Overview of O(n) reconciliation algorithm (general approach\n        // based on ideas found in ivi, vue, snabbdom, etc.):\n        //\n        // * We start with the list of old parts and new values (and\n        // arrays of\n        //   their respective keys), head/tail pointers into each, and\n        //   we build up the new list of parts by updating (and when\n        //   needed, moving) old parts or creating new ones. The initial\n        //   scenario might look like this (for brevity of the diagrams,\n        //   the numbers in the array reflect keys associated with the\n        //   old parts or new values, although keys and parts/values are\n        //   actually stored in parallel arrays indexed using the same\n        //   head/tail pointers):\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [ ,  ,  ,  ,  ,  ,  ]\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n        //   item order\n        //      newHead ^                 ^ newTail\n        //\n        // * Iterate old & new lists from both sides, updating,\n        // swapping, or\n        //   removing parts at the head/tail locations until neither\n        //   head nor tail can move.\n        //\n        // * Example below: keys at head pointers match, so update old\n        // part 0 in-\n        //   place (no need to move it) and record part 0 in the\n        //   `newParts` list. The last thing we do is advance the\n        //   `oldHead` and `newHead` pointers (will be reflected in the\n        //   next diagram).\n        //\n        //      oldHead v                 v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  ,  ] <- heads matched: update 0\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //      newHead ^                 ^ newTail\n        //\n        // * Example below: head pointers don't match, but tail pointers\n        // do, so\n        //   update part 6 in place (no need to move it), and record\n        //   part 6 in the `newParts` list. Last, advance the `oldTail`\n        //   and `oldHead` pointers.\n        //\n        //         oldHead v              v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- tails matched: update 6\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldTail\n        //   & newTail\n        //         newHead ^              ^ newTail\n        //\n        // * If neither head nor tail match; next check if one of the\n        // old head/tail\n        //   items was removed. We first need to generate the reverse\n        //   map of new keys to index (`newKeyToIndexMap`), which is\n        //   done once lazily as a performance optimization, since we\n        //   only hit this case if multiple non-contiguous changes were\n        //   made. Note that for contiguous removal anywhere in the\n        //   list, the head and tails would advance from either end and\n        //   pass each other before we get to this case and removals\n        //   would be handled in the final while loop without needing to\n        //   generate the map.\n        //\n        // * Example below: The key at `oldTail` was removed (no longer\n        // in the\n        //   `newKeyToIndexMap`), so remove that part from the DOM and\n        //   advance just the `oldTail` pointer.\n        //\n        //         oldHead v           v oldTail\n        //   oldKeys:  [0, 1, 2, 3, 4, 5, 6]\n        //   newParts: [0,  ,  ,  ,  ,  , 6] <- 5 not in new map; remove\n        //   5 and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance oldTail\n        //         newHead ^           ^ newTail\n        //\n        // * Once head and tail cannot move, any mismatches are due to\n        // either new or\n        //   moved items; if a new key is in the previous \"old key to\n        //   old index\" map, move the old part to the new location,\n        //   otherwise create and insert a new part. Note that when\n        //   moving an old part we null its position in the oldParts\n        //   array if it lies between the head and tail so we know to\n        //   skip it when the pointers get there.\n        //\n        // * Example below: neither head nor tail match, and neither\n        // were removed;\n        //   so find the `newHead` key in the `oldKeyToIndexMap`, and\n        //   move that old part's DOM into the next head position\n        //   (before `oldParts[oldHead]`). Last, null the part in the\n        //   `oldPart` array since it was somewhere in the remaining\n        //   oldParts still to be scanned (between the head and tail\n        //   pointers) so that we know to skip that old part on future\n        //   iterations.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2,  ,  ,  ,  , 6] <- stuck; update & move 2\n        //   into place newKeys:  [0, 2, 1, 4, 3, 7, 6]    and advance\n        //   newHead\n        //         newHead ^           ^ newTail\n        //\n        // * Note that for moves/insertions like the one above, a part\n        // inserted at\n        //   the head pointer is inserted before the current\n        //   `oldParts[oldHead]`, and a part inserted at the tail\n        //   pointer is inserted before `newParts[newTail+1]`. The\n        //   seeming asymmetry lies in the fact that new parts are moved\n        //   into place outside in, so to the right of the head pointer\n        //   are old parts, and to the right of the tail pointer are new\n        //   parts.\n        //\n        // * We always restart back from the top of the algorithm,\n        // allowing matching\n        //   and simple updates in place to continue...\n        //\n        // * Example below: the head pointers once again match, so\n        // simply update\n        //   part 1 and record it in the `newParts` array.  Last,\n        //   advance both head pointers.\n        //\n        //         oldHead v        v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1,  ,  ,  , 6] <- heads matched; update 1\n        //   and newKeys:  [0, 2, 1, 4, 3, 7, 6]    advance both oldHead\n        //   & newHead\n        //            newHead ^        ^ newTail\n        //\n        // * As mentioned above, items that were moved as a result of\n        // being stuck\n        //   (the final else clause in the code below) are marked with\n        //   null, so we always advance old pointers over these so we're\n        //   comparing the next actual old value on either end.\n        //\n        // * Example below: `oldHead` is null (already placed in\n        // newParts), so\n        //   advance `oldHead`.\n        //\n        //            oldHead v     v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6] // old head already used;\n        //   advance newParts: [0, 2, 1,  ,  ,  , 6] // oldHead newKeys:\n        //   [0, 2, 1, 4, 3, 7, 6]\n        //               newHead ^     ^ newTail\n        //\n        // * Note it's not critical to mark old parts as null when they\n        // are moved\n        //   from head to tail or tail to head, since they will be\n        //   outside the pointer range and never visited again.\n        //\n        // * Example below: Here the old tail key matches the new head\n        // key, so\n        //   the part at the `oldTail` position and move its DOM to the\n        //   new head position (before `oldParts[oldHead]`). Last,\n        //   advance `oldTail` and `newHead` pointers.\n        //\n        //               oldHead v  v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4,  ,  , 6] <- old tail matches new\n        //   head: update newKeys:  [0, 2, 1, 4, 3, 7, 6]   & move 4,\n        //   advance oldTail & newHead\n        //               newHead ^     ^ newTail\n        //\n        // * Example below: Old and new head keys match, so update the\n        // old head\n        //   part in place, and advance the `oldHead` and `newHead`\n        //   pointers.\n        //\n        //               oldHead v oldTail\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3,   ,6] <- heads match: update 3\n        //   and advance newKeys:  [0, 2, 1, 4, 3, 7, 6]    oldHead &\n        //   newHead\n        //                  newHead ^  ^ newTail\n        //\n        // * Once the new or old pointers move past each other then all\n        // we have\n        //   left is additions (if old list exhausted) or removals (if\n        //   new list exhausted). Those are handled in the final while\n        //   loops at the end.\n        //\n        // * Example below: `oldHead` exceeded `oldTail`, so we're done\n        // with the\n        //   main loop.  Create the remaining part and insert it at the\n        //   new head position, and the update is complete.\n        //\n        //                   (oldHead > oldTail)\n        //   oldKeys:  [0, 1, -, 3, 4, 5, 6]\n        //   newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n        //   newKeys:  [0, 2, 1, 4, 3, 7, 6]\n        //                     newHead ^ newTail\n        //\n        // * Note that the order of the if/else clauses is not important\n        // to the\n        //   algorithm, as long as the null checks come first (to ensure\n        //   we're always working on valid old parts) and that the final\n        //   else clause comes last (since that's where the expensive\n        //   moves occur). The order of remaining clauses is is just a\n        //   simple guess at which cases will be most common.\n        //\n        // * TODO(kschaaf) Note, we could calculate the longest\n        // increasing\n        //   subsequence (LIS) of old items in new position, and only\n        //   move those not in the LIS set. However that costs O(nlogn)\n        //   time and adds a bit more code, and only helps make rare\n        //   types of mutations require fewer moves. The above handles\n        //   removes, adds, reversal, swaps, and single moves of\n        //   contiguous items in linear time, in the minimum number of\n        //   moves. As the number of multiple moves where LIS might help\n        //   approaches a random shuffle, the LIS optimization becomes\n        //   less helpful, so it seems not worth the code at this point.\n        //   Could reconsider if a compelling case arises.\n        while (oldHead <= oldTail && newHead <= newTail) {\n            if (oldParts[oldHead] === null) {\n                // `null` means old part at head has already been used\n                // below; skip\n                oldHead++;\n            }\n            else if (oldParts[oldTail] === null) {\n                // `null` means old part at tail has already been used\n                // below; skip\n                oldTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newHead]) {\n                // Old head matches new head; update in place\n                newParts[newHead] =\n                    updatePart(oldParts[oldHead], newValues[newHead]);\n                oldHead++;\n                newHead++;\n            }\n            else if (oldKeys[oldTail] === newKeys[newTail]) {\n                // Old tail matches new tail; update in place\n                newParts[newTail] =\n                    updatePart(oldParts[oldTail], newValues[newTail]);\n                oldTail--;\n                newTail--;\n            }\n            else if (oldKeys[oldHead] === newKeys[newTail]) {\n                // Old head matches new tail; update and move to new tail\n                newParts[newTail] =\n                    updatePart(oldParts[oldHead], newValues[newTail]);\n                insertPartBefore(containerPart, oldParts[oldHead], newParts[newTail + 1]);\n                oldHead++;\n                newTail--;\n            }\n            else if (oldKeys[oldTail] === newKeys[newHead]) {\n                // Old tail matches new head; update and move to new head\n                newParts[newHead] =\n                    updatePart(oldParts[oldTail], newValues[newHead]);\n                insertPartBefore(containerPart, oldParts[oldTail], oldParts[oldHead]);\n                oldTail--;\n                newHead++;\n            }\n            else {\n                if (newKeyToIndexMap === undefined) {\n                    // Lazily generate key-to-index maps, used for removals &\n                    // moves below\n                    newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n                    oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n                }\n                if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n                    // Old head is no longer in new list; remove\n                    removePart(oldParts[oldHead]);\n                    oldHead++;\n                }\n                else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n                    // Old tail is no longer in new list; remove\n                    removePart(oldParts[oldTail]);\n                    oldTail--;\n                }\n                else {\n                    // Any mismatches at this point are due to additions or\n                    // moves; see if we have an old part we can reuse and move\n                    // into place\n                    const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n                    const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n                    if (oldPart === null) {\n                        // No old part for this value; create a new one and\n                        // insert it\n                        const newPart = createAndInsertPart(containerPart, oldParts[oldHead]);\n                        updatePart(newPart, newValues[newHead]);\n                        newParts[newHead] = newPart;\n                    }\n                    else {\n                        // Reuse old part\n                        newParts[newHead] =\n                            updatePart(oldPart, newValues[newHead]);\n                        insertPartBefore(containerPart, oldPart, oldParts[oldHead]);\n                        // This marks the old part as having been used, so that\n                        // it will be skipped in the first two checks above\n                        oldParts[oldIndex] = null;\n                    }\n                    newHead++;\n                }\n            }\n        }\n        // Add parts for any remaining new values\n        while (newHead <= newTail) {\n            // For all remaining additions, we insert before last new\n            // tail, since old pointers are no longer valid\n            const newPart = createAndInsertPart(containerPart, newParts[newTail + 1]);\n            updatePart(newPart, newValues[newHead]);\n            newParts[newHead++] = newPart;\n        }\n        // Remove any remaining unused old parts\n        while (oldHead <= oldTail) {\n            const oldPart = oldParts[oldHead++];\n            if (oldPart !== null) {\n                removePart(oldPart);\n            }\n        }\n        // Save order of new parts for next round\n        partListCache.set(containerPart, newParts);\n        keyListCache.set(containerPart, newKeys);\n    };\n});\n//# sourceMappingURL=repeat.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/style-map.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributePart, directive, PropertyPart } from '../lit-html.js';\n/**\n * Stores the StyleInfo object applied to a given AttributePart.\n * Used to unset existing values when a new StyleInfo object is applied.\n */\nconst styleMapCache = new WeakMap();\n/**\n * Stores AttributeParts that have had static styles applied (e.g. `height: 0;`\n * in style=\"height: 0; ${styleMap()}\"). Static styles are applied only the\n * first time the directive is run on a part.\n */\n// Note, could be a WeakSet, but prefer not requiring this polyfill.\nconst styleMapStatics = new WeakMap();\n/**\n * A directive that applies CSS properties to an element.\n *\n * `styleMap` can only be used in the `style` attribute and must be the only\n * expression in the attribute. It takes the property names in the `styleInfo`\n * object and adds the property values as CSS propertes. Property names with\n * dashes (`-`) are assumed to be valid CSS property names and set on the\n * element's style object using `setProperty()`. Names without dashes are\n * assumed to be camelCased JavaScript property names and set on the element's\n * style object using property assignment, allowing the style object to\n * translate JavaScript-style names to CSS property names.\n *\n * For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\n *\n * @param styleInfo {StyleInfo}\n */\nexport const styleMap = directive((styleInfo) => (part) => {\n    if (!(part instanceof AttributePart) || (part instanceof PropertyPart) ||\n        part.committer.name !== 'style' || part.committer.parts.length > 1) {\n        throw new Error('The `styleMap` directive must be used in the style attribute ' +\n            'and must be the only part in the attribute.');\n    }\n    // Handle static styles the first time we see a Part\n    if (!styleMapStatics.has(part)) {\n        part.committer.element.style.cssText =\n            part.committer.strings.join(' ');\n        styleMapStatics.set(part, true);\n    }\n    const style = part.committer.element.style;\n    // Remove old properties that no longer exist in styleInfo\n    const oldInfo = styleMapCache.get(part);\n    for (const name in oldInfo) {\n        if (!(name in styleInfo)) {\n            if (name.indexOf('-') === -1) {\n                // tslint:disable-next-line:no-any\n                style[name] = null;\n            }\n            else {\n                style.removeProperty(name);\n            }\n        }\n    }\n    // Add or update properties\n    for (const name in styleInfo) {\n        if (name.indexOf('-') === -1) {\n            // tslint:disable-next-line:no-any\n            style[name] = styleInfo[name];\n        }\n        else {\n            style.setProperty(name, styleInfo[name]);\n        }\n    }\n    styleMapCache.set(part, styleInfo);\n});\n//# sourceMappingURL=style-map.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/unsafe-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive, NodePart } from '../lit-html.js';\n// For each part, remember the value that was last rendered to the part by the\n// unsafeHTML directive, and the DocumentFragment that was last set as a value.\n// The DocumentFragment is used as a unique key to check if the last value\n// rendered to the part was with unsafeHTML. If not, we'll always re-render the\n// value passed to unsafeHTML.\nconst previousValues = new WeakMap();\n/**\n * Renders the result as HTML, rather than text.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive((value) => (part) => {\n    if (!(part instanceof NodePart)) {\n        throw new Error('unsafeHTML can only be used in text bindings');\n    }\n    const previousValue = previousValues.get(part);\n    if (previousValue !== undefined && isPrimitive(value) &&\n        value === previousValue.value && part.value === previousValue.fragment) {\n        return;\n    }\n    const template = document.createElement('template');\n    template.innerHTML = value; // innerHTML casts to string internally\n    const fragment = document.importNode(template.content, true);\n    part.setValue(fragment);\n    previousValues.set(part, { value, fragment });\n});\n//# sourceMappingURL=unsafe-html.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/directives/until.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isPrimitive } from '../lib/parts.js';\nimport { directive } from '../lit-html.js';\nconst _state = new WeakMap();\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n *     const content = fetch('./content.txt').then(r => r.text());\n *     html`${until(content, html`<span>Loading...</span>`)}`\n */\nexport const until = directive((...args) => (part) => {\n    let state = _state.get(part);\n    if (state === undefined) {\n        state = {\n            values: [],\n        };\n        _state.set(part, state);\n    }\n    const previousValues = state.values;\n    state.values = args;\n    for (let i = 0; i < args.length; i++) {\n        // If we've rendered a higher-priority value already, stop.\n        if (state.lastRenderedIndex !== undefined && i > state.lastRenderedIndex) {\n            break;\n        }\n        const value = args[i];\n        // Render non-Promise values immediately\n        if (isPrimitive(value) ||\n            typeof value.then !== 'function') {\n            part.setValue(value);\n            state.lastRenderedIndex = i;\n            // Since a lower-priority value will never overwrite a higher-priority\n            // synchronous value, we can stop processsing now.\n            break;\n        }\n        // If this is a Promise we've already handled, skip it.\n        if (state.lastRenderedIndex !== undefined &&\n            typeof value.then === 'function' &&\n            value === previousValues[i]) {\n            continue;\n        }\n        // We have a Promise that we haven't seen before, so priorities may have\n        // changed. Forget what we rendered before.\n        state.lastRenderedIndex = undefined;\n        Promise.resolve(value).then((resolvedValue) => {\n            const index = state.values.indexOf(value);\n            // If state.values doesn't contain the value, we've re-rendered without\n            // the value, so don't render it. Then, only render if the value is\n            // higher-priority than what's already been rendered.\n            if (index > -1 &&\n                (state.lastRenderedIndex === undefined ||\n                    index < state.lastRenderedIndex)) {\n                state.lastRenderedIndex = index;\n                part.setValue(resolvedValue);\n                part.commit();\n            }\n        });\n    }\n});\n//# sourceMappingURL=until.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/default-template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter } from './parts.js';\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor {\n    /**\n     * Create parts for an attribute-position binding, given the event, attribute\n     * name, and string literals.\n     *\n     * @param element The element containing the binding\n     * @param name  The attribute name\n     * @param strings The string literals. There are always at least two strings,\n     *   event for fully-controlled bindings with a single expression.\n     */\n    handleAttributeExpressions(element, name, strings, options) {\n        const prefix = name[0];\n        if (prefix === '.') {\n            const comitter = new PropertyCommitter(element, name.slice(1), strings);\n            return comitter.parts;\n        }\n        if (prefix === '@') {\n            return [new EventPart(element, name.slice(1), options.eventContext)];\n        }\n        if (prefix === '?') {\n            return [new BooleanAttributePart(element, name.slice(1), strings)];\n        }\n        const comitter = new AttributeCommitter(element, name, strings);\n        return comitter.parts;\n    }\n    /**\n     * Create parts for a text-position binding.\n     * @param templateFactory\n     */\n    handleTextExpression(options) {\n        return new NodePart(options);\n    }\n}\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n//# sourceMappingURL=default-template-processor.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/directive.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive so that lit-html will call the function\n * during template rendering, rather than passing as a value.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object\n *\n * @example\n *\n * ```\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n *   if (part.value !== v) {\n *     part.setValue(v)\n *   }\n * });\n * ```\n */\n// tslint:disable-next-line:no-any\nexport const directive = (f) => ((...args) => {\n    const d = f(...args);\n    directives.set(d, true);\n    return d;\n});\nexport const isDirective = (o) => {\n    return typeof o === 'function' && directives.has(o);\n};\n//# sourceMappingURL=directive.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/dom.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n    window.customElements.polyfillWrapFlushCallback !==\n        undefined;\n/**\n * Reparents nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), into another container (could be the same container), before\n * `beforeNode`. If `beforeNode` is null, it appends the nodes to the\n * container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n    let node = start;\n    while (node !== end) {\n        const n = node.nextSibling;\n        container.insertBefore(node, before);\n        node = n;\n    }\n};\n/**\n * Removes nodes, starting from `startNode` (inclusive) to `endNode`\n * (exclusive), from `container`.\n */\nexport const removeNodes = (container, startNode, endNode = null) => {\n    let node = startNode;\n    while (node !== endNode) {\n        const n = node.nextSibling;\n        container.removeChild(node);\n        node = n;\n    }\n};\n//# sourceMappingURL=dom.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/modify-template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module shady-render\n */\nimport { isTemplatePartActive } from './template.js';\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n *   div#1 (remove) <-- start removing (removing node is div#1)\n *     div\n *       div#2 (remove)  <-- continue removing (removing node is still div#1)\n *         div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(template, nodesToRemove) {\n    const { element: { content }, parts } = template;\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let part = parts[partIndex];\n    let nodeIndex = -1;\n    let removeCount = 0;\n    const nodesToRemoveInTemplate = [];\n    let currentRemovingNode = null;\n    while (walker.nextNode()) {\n        nodeIndex++;\n        const node = walker.currentNode;\n        // End removal if stepped past the removing node\n        if (node.previousSibling === currentRemovingNode) {\n            currentRemovingNode = null;\n        }\n        // A node to remove was found in the template\n        if (nodesToRemove.has(node)) {\n            nodesToRemoveInTemplate.push(node);\n            // Track node we're removing\n            if (currentRemovingNode === null) {\n                currentRemovingNode = node;\n            }\n        }\n        // When removing, increment count by which to adjust subsequent part indices\n        if (currentRemovingNode !== null) {\n            removeCount++;\n        }\n        while (part !== undefined && part.index === nodeIndex) {\n            // If part is in a removed node deactivate it by setting index to -1 or\n            // adjust the index as needed.\n            part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n            // go to the next active part.\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n            part = parts[partIndex];\n        }\n    }\n    nodesToRemoveInTemplate.forEach((n) => n.parentNode.removeChild(n));\n}\nconst countNodes = (node) => {\n    let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n    const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n    while (walker.nextNode()) {\n        count++;\n    }\n    return count;\n};\nconst nextActiveIndexInTemplateParts = (parts, startIndex = -1) => {\n    for (let i = startIndex + 1; i < parts.length; i++) {\n        const part = parts[i];\n        if (isTemplatePartActive(part)) {\n            return i;\n        }\n    }\n    return -1;\n};\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(template, node, refNode = null) {\n    const { element: { content }, parts } = template;\n    // If there's no refNode, then put node at end of template.\n    // No part indices need to be shifted in this case.\n    if (refNode === null || refNode === undefined) {\n        content.appendChild(node);\n        return;\n    }\n    const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n    let partIndex = nextActiveIndexInTemplateParts(parts);\n    let insertCount = 0;\n    let walkerIndex = -1;\n    while (walker.nextNode()) {\n        walkerIndex++;\n        const walkerNode = walker.currentNode;\n        if (walkerNode === refNode) {\n            insertCount = countNodes(node);\n            refNode.parentNode.insertBefore(node, refNode);\n        }\n        while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n            // If we've inserted the node, simply adjust all subsequent parts\n            if (insertCount > 0) {\n                while (partIndex !== -1) {\n                    parts[partIndex].index += insertCount;\n                    partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n                }\n                return;\n            }\n            partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n        }\n    }\n}\n//# sourceMappingURL=modify-template.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/part.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# sourceMappingURL=part.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/parts.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isDirective } from './directive.js';\nimport { removeNodes } from './dom.js';\nimport { noChange, nothing } from './part.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { createMarker } from './template.js';\nexport const isPrimitive = (value) => {\n    return (value === null ||\n        !(typeof value === 'object' || typeof value === 'function'));\n};\n/**\n * Sets attribute values for AttributeParts, so that the value is only set once\n * even if there are multiple parts for an attribute.\n */\nexport class AttributeCommitter {\n    constructor(element, name, strings) {\n        this.dirty = true;\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n        this.parts = [];\n        for (let i = 0; i < strings.length - 1; i++) {\n            this.parts[i] = this._createPart();\n        }\n    }\n    /**\n     * Creates a single part. Override this to create a differnt type of part.\n     */\n    _createPart() {\n        return new AttributePart(this);\n    }\n    _getValue() {\n        const strings = this.strings;\n        const l = strings.length - 1;\n        let text = '';\n        for (let i = 0; i < l; i++) {\n            text += strings[i];\n            const part = this.parts[i];\n            if (part !== undefined) {\n                const v = part.value;\n                if (v != null &&\n                    (Array.isArray(v) ||\n                        // tslint:disable-next-line:no-any\n                        typeof v !== 'string' && v[Symbol.iterator])) {\n                    for (const t of v) {\n                        text += typeof t === 'string' ? t : String(t);\n                    }\n                }\n                else {\n                    text += typeof v === 'string' ? v : String(v);\n                }\n            }\n        }\n        text += strings[l];\n        return text;\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            this.element.setAttribute(this.name, this._getValue());\n        }\n    }\n}\nexport class AttributePart {\n    constructor(comitter) {\n        this.value = undefined;\n        this.committer = comitter;\n    }\n    setValue(value) {\n        if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n            this.value = value;\n            // If the value is a not a directive, dirty the committer so that it'll\n            // call setAttribute. If the value is a directive, it'll dirty the\n            // committer if it calls setValue().\n            if (!isDirective(value)) {\n                this.committer.dirty = true;\n            }\n        }\n    }\n    commit() {\n        while (isDirective(this.value)) {\n            const directive = this.value;\n            this.value = noChange;\n            directive(this);\n        }\n        if (this.value === noChange) {\n            return;\n        }\n        this.committer.commit();\n    }\n}\nexport class NodePart {\n    constructor(options) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.options = options;\n    }\n    /**\n     * Inserts this part into a container.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendInto(container) {\n        this.startNode = container.appendChild(createMarker());\n        this.endNode = container.appendChild(createMarker());\n    }\n    /**\n     * Inserts this part between `ref` and `ref`'s next sibling. Both `ref` and\n     * its next sibling must be static, unchanging nodes such as those that appear\n     * in a literal section of a template.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterNode(ref) {\n        this.startNode = ref;\n        this.endNode = ref.nextSibling;\n    }\n    /**\n     * Appends this part into a parent part.\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    appendIntoPart(part) {\n        part._insert(this.startNode = createMarker());\n        part._insert(this.endNode = createMarker());\n    }\n    /**\n     * Appends this part after `ref`\n     *\n     * This part must be empty, as its contents are not automatically moved.\n     */\n    insertAfterPart(ref) {\n        ref._insert(this.startNode = createMarker());\n        this.endNode = ref.endNode;\n        ref.endNode = this.startNode;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        const value = this._pendingValue;\n        if (value === noChange) {\n            return;\n        }\n        if (isPrimitive(value)) {\n            if (value !== this.value) {\n                this._commitText(value);\n            }\n        }\n        else if (value instanceof TemplateResult) {\n            this._commitTemplateResult(value);\n        }\n        else if (value instanceof Node) {\n            this._commitNode(value);\n        }\n        else if (Array.isArray(value) ||\n            // tslint:disable-next-line:no-any\n            value[Symbol.iterator]) {\n            this._commitIterable(value);\n        }\n        else if (value === nothing) {\n            this.value = nothing;\n            this.clear();\n        }\n        else {\n            // Fallback, will render the string representation\n            this._commitText(value);\n        }\n    }\n    _insert(node) {\n        this.endNode.parentNode.insertBefore(node, this.endNode);\n    }\n    _commitNode(value) {\n        if (this.value === value) {\n            return;\n        }\n        this.clear();\n        this._insert(value);\n        this.value = value;\n    }\n    _commitText(value) {\n        const node = this.startNode.nextSibling;\n        value = value == null ? '' : value;\n        if (node === this.endNode.previousSibling &&\n            node.nodeType === 3 /* Node.TEXT_NODE */) {\n            // If we only have a single text node between the markers, we can just\n            // set its value, rather than replacing it.\n            // TODO(justinfagnani): Can we just check if this.value is primitive?\n            node.data = value;\n        }\n        else {\n            this._commitNode(document.createTextNode(typeof value === 'string' ? value : String(value)));\n        }\n        this.value = value;\n    }\n    _commitTemplateResult(value) {\n        const template = this.options.templateFactory(value);\n        if (this.value instanceof TemplateInstance &&\n            this.value.template === template) {\n            this.value.update(value.values);\n        }\n        else {\n            // Make sure we propagate the template processor from the TemplateResult\n            // so that we use its syntax extension, etc. The template factory comes\n            // from the render function options so that it can control template\n            // caching and preprocessing.\n            const instance = new TemplateInstance(template, value.processor, this.options);\n            const fragment = instance._clone();\n            instance.update(value.values);\n            this._commitNode(fragment);\n            this.value = instance;\n        }\n    }\n    _commitIterable(value) {\n        // For an Iterable, we create a new InstancePart per item, then set its\n        // value to the item. This is a little bit of overhead for every item in\n        // an Iterable, but it lets us recurse easily and efficiently update Arrays\n        // of TemplateResults that will be commonly returned from expressions like:\n        // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n        // If _value is an array, then the previous render was of an\n        // iterable and _value will contain the NodeParts from the previous\n        // render. If _value is not an array, clear this part and make a new\n        // array for NodeParts.\n        if (!Array.isArray(this.value)) {\n            this.value = [];\n            this.clear();\n        }\n        // Lets us keep track of how many items we stamped so we can clear leftover\n        // items from a previous render\n        const itemParts = this.value;\n        let partIndex = 0;\n        let itemPart;\n        for (const item of value) {\n            // Try to reuse an existing part\n            itemPart = itemParts[partIndex];\n            // If no existing part, create a new one\n            if (itemPart === undefined) {\n                itemPart = new NodePart(this.options);\n                itemParts.push(itemPart);\n                if (partIndex === 0) {\n                    itemPart.appendIntoPart(this);\n                }\n                else {\n                    itemPart.insertAfterPart(itemParts[partIndex - 1]);\n                }\n            }\n            itemPart.setValue(item);\n            itemPart.commit();\n            partIndex++;\n        }\n        if (partIndex < itemParts.length) {\n            // Truncate the parts array so _value reflects the current state\n            itemParts.length = partIndex;\n            this.clear(itemPart && itemPart.endNode);\n        }\n    }\n    clear(startNode = this.startNode) {\n        removeNodes(this.startNode.parentNode, startNode.nextSibling, this.endNode);\n    }\n}\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart {\n    constructor(element, name, strings) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n            throw new Error('Boolean attributes can only contain a single expression');\n        }\n        this.element = element;\n        this.name = name;\n        this.strings = strings;\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const value = !!this._pendingValue;\n        if (this.value !== value) {\n            if (value) {\n                this.element.setAttribute(this.name, '');\n            }\n            else {\n                this.element.removeAttribute(this.name);\n            }\n        }\n        this.value = value;\n        this._pendingValue = noChange;\n    }\n}\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n    constructor(element, name, strings) {\n        super(element, name, strings);\n        this.single =\n            (strings.length === 2 && strings[0] === '' && strings[1] === '');\n    }\n    _createPart() {\n        return new PropertyPart(this);\n    }\n    _getValue() {\n        if (this.single) {\n            return this.parts[0].value;\n        }\n        return super._getValue();\n    }\n    commit() {\n        if (this.dirty) {\n            this.dirty = false;\n            // tslint:disable-next-line:no-any\n            this.element[this.name] = this._getValue();\n        }\n    }\n}\nexport class PropertyPart extends AttributePart {\n}\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\ntry {\n    const options = {\n        get capture() {\n            eventOptionsSupported = true;\n            return false;\n        }\n    };\n    // tslint:disable-next-line:no-any\n    window.addEventListener('test', options, options);\n    // tslint:disable-next-line:no-any\n    window.removeEventListener('test', options, options);\n}\ncatch (_e) {\n}\nexport class EventPart {\n    constructor(element, eventName, eventContext) {\n        this.value = undefined;\n        this._pendingValue = undefined;\n        this.element = element;\n        this.eventName = eventName;\n        this.eventContext = eventContext;\n        this._boundHandleEvent = (e) => this.handleEvent(e);\n    }\n    setValue(value) {\n        this._pendingValue = value;\n    }\n    commit() {\n        while (isDirective(this._pendingValue)) {\n            const directive = this._pendingValue;\n            this._pendingValue = noChange;\n            directive(this);\n        }\n        if (this._pendingValue === noChange) {\n            return;\n        }\n        const newListener = this._pendingValue;\n        const oldListener = this.value;\n        const shouldRemoveListener = newListener == null ||\n            oldListener != null &&\n                (newListener.capture !== oldListener.capture ||\n                    newListener.once !== oldListener.once ||\n                    newListener.passive !== oldListener.passive);\n        const shouldAddListener = newListener != null && (oldListener == null || shouldRemoveListener);\n        if (shouldRemoveListener) {\n            this.element.removeEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        if (shouldAddListener) {\n            this._options = getOptions(newListener);\n            this.element.addEventListener(this.eventName, this._boundHandleEvent, this._options);\n        }\n        this.value = newListener;\n        this._pendingValue = noChange;\n    }\n    handleEvent(event) {\n        if (typeof this.value === 'function') {\n            this.value.call(this.eventContext || this.element, event);\n        }\n        else {\n            this.value.handleEvent(event);\n        }\n    }\n}\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o) => o &&\n    (eventOptionsSupported ?\n        { capture: o.capture, passive: o.passive, once: o.once } :\n        o.capture);\n//# sourceMappingURL=parts.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/render-options.js",
    "content": "/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# sourceMappingURL=render-options.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { removeNodes } from './dom.js';\nimport { NodePart } from './parts.js';\nimport { templateFactory } from './template-factory.js';\nexport const parts = new WeakMap();\n/**\n * Renders a template to a container.\n *\n * To update a container with new values, reevaluate the template literal and\n * call `render` with the new result.\n *\n * @param result a TemplateResult created by evaluating a template tag like\n *     `html` or `svg`.\n * @param container A DOM parent to render to. The entire contents are either\n *     replaced, or efficiently updated if the same result type was previous\n *     rendered there.\n * @param options RenderOptions for the entire render tree rendered to this\n *     container. Render options must *not* change between renders to the same\n *     container, as those changes will not effect previously rendered DOM.\n */\nexport const render = (result, container, options) => {\n    let part = parts.get(container);\n    if (part === undefined) {\n        removeNodes(container, container.firstChild);\n        parts.set(container, part = new NodePart(Object.assign({ templateFactory }, options)));\n        part.appendInto(container);\n    }\n    part.setValue(result);\n    part.commit();\n};\n//# sourceMappingURL=render.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/shady-render.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { removeNodes } from './dom.js';\nimport { insertNodeIntoTemplate, removeNodesFromTemplate } from './modify-template.js';\nimport { parts, render as litRender } from './render.js';\nimport { templateCaches } from './template-factory.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { marker, Template } from './template.js';\nexport { html, svg, TemplateResult } from '../lit-html.js';\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type, scopeName) => `${type}--${scopeName}`;\nlet compatibleShadyCSSVersion = true;\nif (typeof window.ShadyCSS === 'undefined') {\n    compatibleShadyCSSVersion = false;\n}\nelse if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n    console.warn(`Incompatible ShadyCSS version detected.` +\n        `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and` +\n        `@webcomponents/shadycss@1.3.1.`);\n    compatibleShadyCSSVersion = false;\n}\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName) => (result) => {\n    const cacheKey = getTemplateCacheKey(result.type, scopeName);\n    let templateCache = templateCaches.get(cacheKey);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(cacheKey, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    const key = result.strings.join(marker);\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        const element = result.getTemplateElement();\n        if (compatibleShadyCSSVersion) {\n            window.ShadyCSS.prepareTemplateDom(element, scopeName);\n        }\n        template = new Template(result, element);\n        templateCache.keyString.set(key, template);\n    }\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n};\nconst TEMPLATE_TYPES = ['html', 'svg'];\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName) => {\n    TEMPLATE_TYPES.forEach((type) => {\n        const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n        if (templates !== undefined) {\n            templates.keyString.forEach((template) => {\n                const { element: { content } } = template;\n                // IE 11 doesn't support the iterable param Set constructor\n                const styles = new Set();\n                Array.from(content.querySelectorAll('style')).forEach((s) => {\n                    styles.add(s);\n                });\n                removeNodesFromTemplate(template, styles);\n            });\n        }\n    });\n};\nconst shadyRenderSet = new Set();\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, <style> elements can only be placed into templates for the\n * initial rendering of the scope. If <style> elements are included in templates\n * dynamically rendered to the scope (after the first scope render), they will\n * not be scoped and the <style> will be left in the template and rendered\n * output.\n */\nconst prepareTemplateStyles = (renderedDOM, template, scopeName) => {\n    shadyRenderSet.add(scopeName);\n    // Move styles out of rendered DOM and store.\n    const styles = renderedDOM.querySelectorAll('style');\n    // If there are no styles, skip unnecessary work\n    if (styles.length === 0) {\n        // Ensure prepareTemplateStyles is called to support adding\n        // styles via `prepareAdoptedCssText` since that requires that\n        // `prepareTemplateStyles` is called.\n        window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n        return;\n    }\n    const condensedStyle = document.createElement('style');\n    // Collect styles into a single style. This helps us make sure ShadyCSS\n    // manipulations will not prevent us from being able to fix up template\n    // part indices.\n    // NOTE: collecting styles is inefficient for browsers but ShadyCSS\n    // currently does this anyway. When it does not, this should be changed.\n    for (let i = 0; i < styles.length; i++) {\n        const style = styles[i];\n        style.parentNode.removeChild(style);\n        condensedStyle.textContent += style.textContent;\n    }\n    // Remove styles from nested templates in this scope.\n    removeStylesFromLitTemplates(scopeName);\n    // And then put the condensed style into the \"root\" template passed in as\n    // `template`.\n    insertNodeIntoTemplate(template, condensedStyle, template.element.content.firstChild);\n    // Note, it's important that ShadyCSS gets the template that `lit-html`\n    // will actually render so that it can update the style inside when\n    // needed (e.g. @apply native Shadow DOM case).\n    window.ShadyCSS.prepareTemplateStyles(template.element, scopeName);\n    if (window.ShadyCSS.nativeShadow) {\n        // When in native Shadow DOM, re-add styling to rendered content using\n        // the style ShadyCSS produced.\n        const style = template.element.content.querySelector('style');\n        renderedDOM.insertBefore(style.cloneNode(true), renderedDOM.firstChild);\n    }\n    else {\n        // When not in native Shadow DOM, at this point ShadyCSS will have\n        // removed the style from the lit template and parts will be broken as a\n        // result. To fix this, we put back the style node ShadyCSS removed\n        // and then tell lit to remove that node from the template.\n        // NOTE, ShadyCSS creates its own style so we can safely add/remove\n        // `condensedStyle` here.\n        template.element.content.insertBefore(condensedStyle, template.element.content.firstChild);\n        const removes = new Set();\n        removes.add(condensedStyle);\n        removeNodesFromTemplate(template, removes);\n    }\n};\n/**\n * Extension to the standard `render` method which supports rendering\n * to ShadowRoots when the ShadyDOM (https://github.com/webcomponents/shadydom)\n * and ShadyCSS (https://github.com/webcomponents/shadycss) polyfills are used\n * or when the webcomponentsjs\n * (https://github.com/webcomponents/webcomponentsjs) polyfill is used.\n *\n * Adds a `scopeName` option which is used to scope element DOM and stylesheets\n * when native ShadowDOM is unavailable. The `scopeName` will be added to\n * the class attribute of all rendered DOM. In addition, any style elements will\n * be automatically re-written with this `scopeName` selector and moved out\n * of the rendered DOM and into the document `<head>`.\n *\n * It is common to use this render method in conjunction with a custom element\n * which renders a shadowRoot. When this is done, typically the element's\n * `localName` should be used as the `scopeName`.\n *\n * In addition to DOM scoping, ShadyCSS also supports a basic shim for css\n * custom properties (needed only on older browsers like IE11) and a shim for\n * a deprecated feature called `@apply` that supports applying a set of css\n * custom properties to a given location.\n *\n * Usage considerations:\n *\n * * Part values in `<style>` elements are only applied the first time a given\n * `scopeName` renders. Subsequent changes to parts in style elements will have\n * no effect. Because of this, parts in style elements should only be used for\n * values that will never change, for example parts that set scope-wide theme\n * values or parts which render shared style elements.\n *\n * * Note, due to a limitation of the ShadyDOM polyfill, rendering in a\n * custom element's `constructor` is not supported. Instead rendering should\n * either done asynchronously, for example at microtask timing (for example\n * `Promise.resolve()`), or be deferred until the first time the element's\n * `connectedCallback` runs.\n *\n * Usage considerations when using shimmed custom properties or `@apply`:\n *\n * * Whenever any dynamic changes are made which affect\n * css custom properties, `ShadyCSS.styleElement(element)` must be called\n * to update the element. There are two cases when this is needed:\n * (1) the element is connected to a new parent, (2) a class is added to the\n * element that causes it to match different custom properties.\n * To address the first case when rendering a custom element, `styleElement`\n * should be called in the element's `connectedCallback`.\n *\n * * Shimmed custom properties may only be defined either for an entire\n * shadowRoot (for example, in a `:host` rule) or via a rule that directly\n * matches an element with a shadowRoot. In other words, instead of flowing from\n * parent to child as do native css custom properties, shimmed custom properties\n * flow only from shadowRoots to nested shadowRoots.\n *\n * * When using `@apply` mixing css shorthand property names with\n * non-shorthand names (for example `border` and `border-width`) is not\n * supported.\n */\nexport const render = (result, container, options) => {\n    const scopeName = options.scopeName;\n    const hasRendered = parts.has(container);\n    const needsScoping = container instanceof ShadowRoot &&\n        compatibleShadyCSSVersion && result instanceof TemplateResult;\n    // Handle first render to a scope specially...\n    const firstScopeRender = needsScoping && !shadyRenderSet.has(scopeName);\n    // On first scope render, render into a fragment; this cannot be a single\n    // fragment that is reused since nested renders can occur synchronously.\n    const renderContainer = firstScopeRender ? document.createDocumentFragment() : container;\n    litRender(result, renderContainer, Object.assign({ templateFactory: shadyTemplateFactory(scopeName) }, options));\n    // When performing first scope render,\n    // (1) We've rendered into a fragment so that there's a chance to\n    // `prepareTemplateStyles` before sub-elements hit the DOM\n    // (which might cause them to render based on a common pattern of\n    // rendering in a custom element's `connectedCallback`);\n    // (2) Scope the template with ShadyCSS one time only for this scope.\n    // (3) Render the fragment into the container and make sure the\n    // container knows its `part` is the one we just rendered. This ensures\n    // DOM will be re-used on subsequent renders.\n    if (firstScopeRender) {\n        const part = parts.get(renderContainer);\n        parts.delete(renderContainer);\n        if (part.value instanceof TemplateInstance) {\n            prepareTemplateStyles(renderContainer, part.value.template, scopeName);\n        }\n        removeNodes(container, container.firstChild);\n        container.appendChild(renderContainer);\n        parts.set(container, part);\n    }\n    // After elements have hit the DOM, update styling if this is the\n    // initial render to this container.\n    // This is needed whenever dynamic changes are made so it would be\n    // safest to do every render; however, this would regress performance\n    // so we leave it up to the user to call `ShadyCSSS.styleElement`\n    // for dynamic changes.\n    if (!hasRendered && needsScoping) {\n        window.ShadyCSS.styleElement(container.host);\n    }\n};\n//# sourceMappingURL=shady-render.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/template-factory.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { marker, Template } from './template.js';\n/**\n * The default TemplateFactory which caches Templates keyed on\n * result.type and result.strings.\n */\nexport function templateFactory(result) {\n    let templateCache = templateCaches.get(result.type);\n    if (templateCache === undefined) {\n        templateCache = {\n            stringsArray: new WeakMap(),\n            keyString: new Map()\n        };\n        templateCaches.set(result.type, templateCache);\n    }\n    let template = templateCache.stringsArray.get(result.strings);\n    if (template !== undefined) {\n        return template;\n    }\n    // If the TemplateStringsArray is new, generate a key from the strings\n    // This key is shared between all templates with identical content\n    const key = result.strings.join(marker);\n    // Check if we already have a Template for this key\n    template = templateCache.keyString.get(key);\n    if (template === undefined) {\n        // If we have not seen this key before, create a new Template\n        template = new Template(result, result.getTemplateElement());\n        // Cache the Template for this key\n        templateCache.keyString.set(key, template);\n    }\n    // Cache all future queries for this TemplateStringsArray\n    templateCache.stringsArray.set(result.strings, template);\n    return template;\n}\nexport const templateCaches = new Map();\n//# sourceMappingURL=template-factory.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/template-instance.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n    constructor(template, processor, options) {\n        this._parts = [];\n        this.template = template;\n        this.processor = processor;\n        this.options = options;\n    }\n    update(values) {\n        let i = 0;\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.setValue(values[i]);\n            }\n            i++;\n        }\n        for (const part of this._parts) {\n            if (part !== undefined) {\n                part.commit();\n            }\n        }\n    }\n    _clone() {\n        // When using the Custom Elements polyfill, clone the node, rather than\n        // importing it, to keep the fragment in the template's document. This\n        // leaves the fragment inert so custom elements won't upgrade and\n        // potentially modify their contents by creating a polyfilled ShadowRoot\n        // while we traverse the tree.\n        const fragment = isCEPolyfill ?\n            this.template.element.content.cloneNode(true) :\n            document.importNode(this.template.element.content, true);\n        const parts = this.template.parts;\n        let partIndex = 0;\n        let nodeIndex = 0;\n        const _prepareInstance = (fragment) => {\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            let node = walker.nextNode();\n            // Loop through all the nodes and parts of a template\n            while (partIndex < parts.length && node !== null) {\n                const part = parts[partIndex];\n                // Consecutive Parts may have the same node index, in the case of\n                // multiple bound attributes on an element. So each iteration we either\n                // increment the nodeIndex, if we aren't on a node with a part, or the\n                // partIndex if we are. By not incrementing the nodeIndex when we find a\n                // part, we allow for the next part to be associated with the current\n                // node if neccessasry.\n                if (!isTemplatePartActive(part)) {\n                    this._parts.push(undefined);\n                    partIndex++;\n                }\n                else if (nodeIndex === part.index) {\n                    if (part.type === 'node') {\n                        const part = this.processor.handleTextExpression(this.options);\n                        part.insertAfterNode(node.previousSibling);\n                        this._parts.push(part);\n                    }\n                    else {\n                        this._parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n                    }\n                    partIndex++;\n                }\n                else {\n                    nodeIndex++;\n                    if (node.nodeName === 'TEMPLATE') {\n                        _prepareInstance(node.content);\n                    }\n                    node = walker.nextNode();\n                }\n            }\n        };\n        _prepareInstance(fragment);\n        if (isCEPolyfill) {\n            document.adoptNode(fragment);\n            customElements.upgrade(fragment);\n        }\n        return fragment;\n    }\n}\n//# sourceMappingURL=template-instance.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/template-processor.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n//# sourceMappingURL=template-processor.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/template-result.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n    constructor(strings, values, type, processor) {\n        this.strings = strings;\n        this.values = values;\n        this.type = type;\n        this.processor = processor;\n    }\n    /**\n     * Returns a string of HTML used to create a `<template>` element.\n     */\n    getHTML() {\n        const endIndex = this.strings.length - 1;\n        let html = '';\n        for (let i = 0; i < endIndex; i++) {\n            const s = this.strings[i];\n            // This exec() call does two things:\n            // 1) Appends a suffix to the bound attribute name to opt out of special\n            // attribute value parsing that IE11 and Edge do, like for style and\n            // many SVG attributes. The Template class also appends the same suffix\n            // when looking up attributes to create Parts.\n            // 2) Adds an unquoted-attribute-safe marker for the first expression in\n            // an attribute. Subsequent attribute expressions will use node markers,\n            // and this is safe since attributes with multiple expressions are\n            // guaranteed to be quoted.\n            const match = lastAttributeNameRegex.exec(s);\n            if (match) {\n                // We're starting a new bound attribute.\n                // Add the safe attribute suffix, and use unquoted-attribute-safe\n                // marker.\n                html += s.substr(0, match.index) + match[1] + match[2] +\n                    boundAttributeSuffix + match[3] + marker;\n            }\n            else {\n                // We're either in a bound node, or trailing bound attribute.\n                // Either way, nodeMarker is safe to use.\n                html += s + nodeMarker;\n            }\n        }\n        return html + this.strings[endIndex];\n    }\n    getTemplateElement() {\n        const template = document.createElement('template');\n        template.innerHTML = this.getHTML();\n        return template;\n    }\n}\n/**\n * A TemplateResult for SVG fragments.\n *\n * This class wraps HTMl in an `<svg>` tag in order to parse its contents in the\n * SVG namespace, then modifies the template to remove the `<svg>` tag so that\n * clones only container the original fragment.\n */\nexport class SVGTemplateResult extends TemplateResult {\n    getHTML() {\n        return `<svg>${super.getHTML()}</svg>`;\n    }\n    getTemplateElement() {\n        const template = super.getTemplateElement();\n        const content = template.content;\n        const svgElement = content.firstChild;\n        content.removeChild(svgElement);\n        reparentNodes(content, svgElement.firstChild);\n        return template;\n    }\n}\n//# sourceMappingURL=template-result.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lib/template.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = `<!--${marker}-->`;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n    constructor(result, element) {\n        this.parts = [];\n        this.element = element;\n        let index = -1;\n        let partIndex = 0;\n        const nodesToRemove = [];\n        const _prepareTemplate = (template) => {\n            const content = template.content;\n            // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be\n            // null\n            const walker = document.createTreeWalker(content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n            // Keeps track of the last index associated with a part. We try to delete\n            // unnecessary nodes, but we never want to associate two different parts\n            // to the same index. They must have a constant node between.\n            let lastPartIndex = 0;\n            while (walker.nextNode()) {\n                index++;\n                const node = walker.currentNode;\n                if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n                    if (node.hasAttributes()) {\n                        const attributes = node.attributes;\n                        // Per\n                        // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n                        // attributes are not guaranteed to be returned in document order.\n                        // In particular, Edge/IE can return them out of order, so we cannot\n                        // assume a correspondance between part index and attribute index.\n                        let count = 0;\n                        for (let i = 0; i < attributes.length; i++) {\n                            if (attributes[i].value.indexOf(marker) >= 0) {\n                                count++;\n                            }\n                        }\n                        while (count-- > 0) {\n                            // Get the template literal section leading up to the first\n                            // expression in this attribute\n                            const stringForPart = result.strings[partIndex];\n                            // Find the attribute name\n                            const name = lastAttributeNameRegex.exec(stringForPart)[2];\n                            // Find the corresponding attribute\n                            // All bound attributes have had a suffix added in\n                            // TemplateResult#getHTML to opt out of special attribute\n                            // handling. To look up the attribute value we also need to add\n                            // the suffix.\n                            const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n                            const attributeValue = node.getAttribute(attributeLookupName);\n                            const strings = attributeValue.split(markerRegex);\n                            this.parts.push({ type: 'attribute', index, name, strings });\n                            node.removeAttribute(attributeLookupName);\n                            partIndex += strings.length - 1;\n                        }\n                    }\n                    if (node.tagName === 'TEMPLATE') {\n                        _prepareTemplate(node);\n                    }\n                }\n                else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n                    const data = node.data;\n                    if (data.indexOf(marker) >= 0) {\n                        const parent = node.parentNode;\n                        const strings = data.split(markerRegex);\n                        const lastIndex = strings.length - 1;\n                        // Generate a new text node for each literal section\n                        // These nodes are also used as the markers for node parts\n                        for (let i = 0; i < lastIndex; i++) {\n                            parent.insertBefore((strings[i] === '') ? createMarker() :\n                                document.createTextNode(strings[i]), node);\n                            this.parts.push({ type: 'node', index: ++index });\n                        }\n                        // If there's no text, we must insert a comment to mark our place.\n                        // Else, we can trust it will stick around after cloning.\n                        if (strings[lastIndex] === '') {\n                            parent.insertBefore(createMarker(), node);\n                            nodesToRemove.push(node);\n                        }\n                        else {\n                            node.data = strings[lastIndex];\n                        }\n                        // We have a part for each match found\n                        partIndex += lastIndex;\n                    }\n                }\n                else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n                    if (node.data === marker) {\n                        const parent = node.parentNode;\n                        // Add a new marker node to be the startNode of the Part if any of\n                        // the following are true:\n                        //  * We don't have a previousSibling\n                        //  * The previousSibling is already the start of a previous part\n                        if (node.previousSibling === null || index === lastPartIndex) {\n                            index++;\n                            parent.insertBefore(createMarker(), node);\n                        }\n                        lastPartIndex = index;\n                        this.parts.push({ type: 'node', index });\n                        // If we don't have a nextSibling, keep this node so we have an end.\n                        // Else, we can remove it to save future costs.\n                        if (node.nextSibling === null) {\n                            node.data = '';\n                        }\n                        else {\n                            nodesToRemove.push(node);\n                            index--;\n                        }\n                        partIndex++;\n                    }\n                    else {\n                        let i = -1;\n                        while ((i = node.data.indexOf(marker, i + 1)) !==\n                            -1) {\n                            // Comment node has a binding marker inside, make an inactive part\n                            // The binding won't work, but subsequent bindings will\n                            // TODO (justinfagnani): consider whether it's even worth it to\n                            // make bindings in comments work\n                            this.parts.push({ type: 'node', index: -1 });\n                        }\n                    }\n                }\n            }\n        };\n        _prepareTemplate(element);\n        // Remove text binding nodes after the walk to not disturb the TreeWalker\n        for (const n of nodesToRemove) {\n            n.parentNode.removeChild(n);\n        }\n    }\n}\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#attributes-0\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-character\n *\n * So an attribute is:\n *  * The name: any character except a control character, space character, ('),\n *    (\"), \">\", \"=\", or \"/\"\n *  * Followed by zero or more space characters\n *  * Followed by \"=\"\n *  * Followed by zero or more space characters\n *  * Followed by:\n *    * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n *    * (\") then any non-(\"), or\n *    * (') then any non-(')\n */\nexport const lastAttributeNameRegex = /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \\x09\\x0a\\x0c\\x0d\"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# sourceMappingURL=template.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/lit-html.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * -  [[html]]\n * -  [[svg]]\n * -  [[render]]\n *\n * @module lit-html\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { defaultTemplateProcessor } from './lib/default-template-processor.js';\nimport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { DefaultTemplateProcessor, defaultTemplateProcessor } from './lib/default-template-processor.js';\nexport { directive, isDirective } from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport { removeNodes, reparentNodes } from './lib/dom.js';\nexport { noChange, nothing } from './lib/part.js';\nexport { AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isPrimitive, NodePart, PropertyCommitter, PropertyPart } from './lib/parts.js';\nexport { parts, render } from './lib/render.js';\nexport { templateCaches, templateFactory } from './lib/template-factory.js';\nexport { TemplateInstance } from './lib/template-instance.js';\nexport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { createMarker, isTemplatePartActive, Template } from './lib/template.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.0.0');\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings, ...values) => new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings, ...values) => new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n//# sourceMappingURL=lit-html.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/lit-element/lit-html/polyfills/template_polyfill.js",
    "content": "/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A lightweight <template> polyfill that supports minimum features to cover\n * lit-html use cases. It provides an alternate route in case <template> is not\n * natively supported.\n * Please note that nested template, cloning template node and innerHTML getter\n * do NOT work with this polyfill.\n * If it can not fullfill your requirement, please consider using the full\n * polyfill: https://github.com/webcomponents/template\n */\nexport const initTemplatePolyfill = (forced = false) => {\n    if (typeof HTMLTemplateElement !== 'undefined' && !forced) {\n        return;\n    }\n    const contentDoc = document.implementation.createHTMLDocument('template');\n    // tslint:disable-next-line:no-any\n    const upgrade = (template) => {\n        template.content = contentDoc.createDocumentFragment();\n        Object.defineProperty(template, 'innerHTML', {\n            set: function (text) {\n                contentDoc.body.innerHTML = text;\n                const content = this.content;\n                while (content.firstChild) {\n                    content.removeChild(content.firstChild);\n                }\n                const body = contentDoc.body;\n                while (body.firstChild) {\n                    content.appendChild(body.firstChild);\n                }\n            },\n            configurable: true\n        });\n    };\n    const capturedCreateElement = Document.prototype.createElement;\n    Document.prototype.createElement = function createElement(tagName, options) {\n        let el = capturedCreateElement.call(this, tagName, options);\n        if (el.localName === 'template') {\n            el = capturedCreateElement.call(this, 'div');\n            upgrade(el);\n        }\n        return el;\n    };\n};\n//# sourceMappingURL=template_polyfill.js.map"
  },
  {
    "path": "app/userland/explorer/vendor/markdown-it.js",
    "content": "/*! markdown-it 10.0.0 https://github.com//markdown-it/markdown-it @license MIT */\nconst define = (function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/lib/maps/entities.json');\n\n},{\"entities/lib/maps/entities.json\":52}],2:[function(require,module,exports){\n// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'meta',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'section',\n  'source',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n];\n\n},{}],3:[function(require,module,exports){\n// Regexps to match html elements\n\n'use strict';\n\nvar attr_name     = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted      = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value  = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute   = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag    = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag   = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment     = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar processing  = '<[?].*?[?]>';\nvar declaration = '<![A-Z]+\\\\s+[^>]*>';\nvar cdata       = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n                        '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n\n},{}],4:[function(require,module,exports){\n// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n  return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n\n  sources.forEach(function (source) {\n    if (!source) { return; }\n\n    if (typeof source !== 'object') {\n      throw new TypeError(source + 'must be object');\n    }\n\n    Object.keys(source).forEach(function (key) {\n      obj[key] = source[key];\n    });\n  });\n\n  return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n  return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n  /*eslint no-bitwise:0*/\n  // broken sequence\n  if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n  // never used\n  if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n  if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n  // control codes\n  if (c >= 0x00 && c <= 0x08) { return false; }\n  if (c === 0x0B) { return false; }\n  if (c >= 0x0E && c <= 0x1F) { return false; }\n  if (c >= 0x7F && c <= 0x9F) { return false; }\n  // out of range\n  if (c > 0x10FFFF) { return false; }\n  return true;\n}\n\nfunction fromCodePoint(c) {\n  /*eslint no-bitwise:0*/\n  if (c > 0xffff) {\n    c -= 0x10000;\n    var surrogate1 = 0xd800 + (c >> 10),\n        surrogate2 = 0xdc00 + (c & 0x3ff);\n\n    return String.fromCharCode(surrogate1, surrogate2);\n  }\n  return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE  = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE       = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n  var code = 0;\n\n  if (has(entities, name)) {\n    return entities[name];\n  }\n\n  if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n    code = name[1].toLowerCase() === 'x' ?\n      parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n    if (isValidEntityCode(code)) {\n      return fromCodePoint(code);\n    }\n  }\n\n  return match;\n}\n\n/*function replaceEntities(str) {\n  if (str.indexOf('&') < 0) { return str; }\n\n  return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n  if (str.indexOf('\\\\') < 0) { return str; }\n  return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n  if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n  return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n    if (escaped) { return escaped; }\n    return replaceEntityPattern(match, entity);\n  });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;'\n};\n\nfunction replaceUnsafeChar(ch) {\n  return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n  if (HTML_ESCAPE_TEST_RE.test(str)) {\n    return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n  }\n  return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n  return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n  switch (code) {\n    case 0x09:\n    case 0x20:\n      return true;\n  }\n  return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n  if (code >= 0x2000 && code <= 0x200A) { return true; }\n  switch (code) {\n    case 0x09: // \\t\n    case 0x0A: // \\n\n    case 0x0B: // \\v\n    case 0x0C: // \\f\n    case 0x0D: // \\r\n    case 0x20:\n    case 0xA0:\n    case 0x1680:\n    case 0x202F:\n    case 0x205F:\n    case 0x3000:\n      return true;\n  }\n  return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n  return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n  switch (ch) {\n    case 0x21/* ! */:\n    case 0x22/* \" */:\n    case 0x23/* # */:\n    case 0x24/* $ */:\n    case 0x25/* % */:\n    case 0x26/* & */:\n    case 0x27/* ' */:\n    case 0x28/* ( */:\n    case 0x29/* ) */:\n    case 0x2A/* * */:\n    case 0x2B/* + */:\n    case 0x2C/* , */:\n    case 0x2D/* - */:\n    case 0x2E/* . */:\n    case 0x2F/* / */:\n    case 0x3A/* : */:\n    case 0x3B/* ; */:\n    case 0x3C/* < */:\n    case 0x3D/* = */:\n    case 0x3E/* > */:\n    case 0x3F/* ? */:\n    case 0x40/* @ */:\n    case 0x5B/* [ */:\n    case 0x5C/* \\ */:\n    case 0x5D/* ] */:\n    case 0x5E/* ^ */:\n    case 0x5F/* _ */:\n    case 0x60/* ` */:\n    case 0x7B/* { */:\n    case 0x7C/* | */:\n    case 0x7D/* } */:\n    case 0x7E/* ~ */:\n      return true;\n    default:\n      return false;\n  }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n  // Trim and collapse whitespace\n  //\n  str = str.trim().replace(/\\s+/g, ' ');\n\n  // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n  // fixed in v12 (couldn't find any details).\n  //\n  // So treat this one as a special case\n  // (remove this when node v10 is no longer supported).\n  //\n  if ('ẞ'.toLowerCase() === 'Ṿ') {\n    str = str.replace(/ẞ/g, 'ß');\n  }\n\n  // .toLowerCase().toUpperCase() should get rid of all differences\n  // between letter variants.\n  //\n  // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n  // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n  // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n  // uppercased versions).\n  //\n  // Here's an example showing how it happens. Lets take greek letter omega:\n  // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n  //\n  // Unicode entries:\n  // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n  // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n  // 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n  // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;\n  //\n  // Case-insensitive comparison should treat all of them as equivalent.\n  //\n  // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n  // and .toUpperCase() doesn't change ϴ (already uppercase).\n  //\n  // Applying first lower then upper case normalizes any character:\n  // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n  //\n  // Note: this is equivalent to unicode case folding; unicode normalization\n  // is a different step that is not required here.\n  //\n  // Final result should be uppercased, because it's later stored in an object\n  // (this avoid a conflict with Object.prototype members,\n  // most notably, `__proto__`)\n  //\n  return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib                 = {};\nexports.lib.mdurl           = require('mdurl');\nexports.lib.ucmicro         = require('uc.micro');\n\nexports.assign              = assign;\nexports.isString            = isString;\nexports.has                 = has;\nexports.unescapeMd          = unescapeMd;\nexports.unescapeAll         = unescapeAll;\nexports.isValidEntityCode   = isValidEntityCode;\nexports.fromCodePoint       = fromCodePoint;\n// exports.replaceEntities     = replaceEntities;\nexports.escapeHtml          = escapeHtml;\nexports.arrayReplaceAt      = arrayReplaceAt;\nexports.isSpace             = isSpace;\nexports.isWhiteSpace        = isWhiteSpace;\nexports.isMdAsciiPunct      = isMdAsciiPunct;\nexports.isPunctChar         = isPunctChar;\nexports.escapeRE            = escapeRE;\nexports.normalizeReference  = normalizeReference;\n\n},{\"./entities\":1,\"mdurl\":58,\"uc.micro\":65,\"uc.micro/categories/P/regex\":63}],5:[function(require,module,exports){\n// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel       = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle       = require('./parse_link_title');\n\n},{\"./parse_link_destination\":6,\"./parse_link_label\":7,\"./parse_link_title\":8}],6:[function(require,module,exports){\n// Parse link destination\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n  var code, level,\n      lines = 0,\n      start = pos,\n      result = {\n        ok: false,\n        pos: 0,\n        lines: 0,\n        str: ''\n      };\n\n  if (str.charCodeAt(pos) === 0x3C /* < */) {\n    pos++;\n    while (pos < max) {\n      code = str.charCodeAt(pos);\n      if (code === 0x0A /* \\n */) { return result; }\n      if (code === 0x3E /* > */) {\n        result.pos = pos + 1;\n        result.str = unescapeAll(str.slice(start + 1, pos));\n        result.ok = true;\n        return result;\n      }\n      if (code === 0x5C /* \\ */ && pos + 1 < max) {\n        pos += 2;\n        continue;\n      }\n\n      pos++;\n    }\n\n    // no closing '>'\n    return result;\n  }\n\n  // this should be ... } else { ... branch\n\n  level = 0;\n  while (pos < max) {\n    code = str.charCodeAt(pos);\n\n    if (code === 0x20) { break; }\n\n    // ascii control characters\n    if (code < 0x20 || code === 0x7F) { break; }\n\n    if (code === 0x5C /* \\ */ && pos + 1 < max) {\n      pos += 2;\n      continue;\n    }\n\n    if (code === 0x28 /* ( */) {\n      level++;\n    }\n\n    if (code === 0x29 /* ) */) {\n      if (level === 0) { break; }\n      level--;\n    }\n\n    pos++;\n  }\n\n  if (start === pos) { return result; }\n  if (level !== 0) { return result; }\n\n  result.str = unescapeAll(str.slice(start, pos));\n  result.lines = lines;\n  result.pos = pos;\n  result.ok = true;\n  return result;\n};\n\n},{\"../common/utils\":4}],7:[function(require,module,exports){\n// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n  var level, found, marker, prevPos,\n      labelEnd = -1,\n      max = state.posMax,\n      oldPos = state.pos;\n\n  state.pos = start + 1;\n  level = 1;\n\n  while (state.pos < max) {\n    marker = state.src.charCodeAt(state.pos);\n    if (marker === 0x5D /* ] */) {\n      level--;\n      if (level === 0) {\n        found = true;\n        break;\n      }\n    }\n\n    prevPos = state.pos;\n    state.md.inline.skipToken(state);\n    if (marker === 0x5B /* [ */) {\n      if (prevPos === state.pos - 1) {\n        // increase level if we find text `[`, which is not a part of any token\n        level++;\n      } else if (disableNested) {\n        state.pos = oldPos;\n        return -1;\n      }\n    }\n  }\n\n  if (found) {\n    labelEnd = state.pos;\n  }\n\n  // restore old state\n  state.pos = oldPos;\n\n  return labelEnd;\n};\n\n},{}],8:[function(require,module,exports){\n// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n  var code,\n      marker,\n      lines = 0,\n      start = pos,\n      result = {\n        ok: false,\n        pos: 0,\n        lines: 0,\n        str: ''\n      };\n\n  if (pos >= max) { return result; }\n\n  marker = str.charCodeAt(pos);\n\n  if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n  pos++;\n\n  // if opening marker is \"(\", switch it to closing marker \")\"\n  if (marker === 0x28) { marker = 0x29; }\n\n  while (pos < max) {\n    code = str.charCodeAt(pos);\n    if (code === marker) {\n      result.pos = pos + 1;\n      result.lines = lines;\n      result.str = unescapeAll(str.slice(start + 1, pos));\n      result.ok = true;\n      return result;\n    } else if (code === 0x0A) {\n      lines++;\n    } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n      pos++;\n      if (str.charCodeAt(pos) === 0x0A) {\n        lines++;\n      }\n    }\n\n    pos++;\n  }\n\n  return result;\n};\n\n},{\"../common/utils\":4}],9:[function(require,module,exports){\n// Main parser class\n\n'use strict';\n\n\nvar utils        = require('./common/utils');\nvar helpers      = require('./helpers');\nvar Renderer     = require('./renderer');\nvar ParserCore   = require('./parser_core');\nvar ParserBlock  = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt    = require('linkify-it');\nvar mdurl        = require('mdurl');\nvar punycode     = require('punycode');\n\n\nvar config = {\n  'default': require('./presets/default'),\n  zero: require('./presets/zero'),\n  commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n  // url should be normalized at this point, and existing entities are decoded\n  var str = url.trim().toLowerCase();\n\n  return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n  var parsed = mdurl.parse(url, true);\n\n  if (parsed.hostname) {\n    // Encode hostnames in urls like:\n    // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n    //\n    // We don't encode unknown schemas, because it's likely that we encode\n    // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n    //\n    if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n      try {\n        parsed.hostname = punycode.toASCII(parsed.hostname);\n      } catch (er) { /**/ }\n    }\n  }\n\n  return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n  var parsed = mdurl.parse(url, true);\n\n  if (parsed.hostname) {\n    // Encode hostnames in urls like:\n    // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n    //\n    // We don't encode unknown schemas, because it's likely that we encode\n    // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n    //\n    if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n      try {\n        parsed.hostname = punycode.toUnicode(parsed.hostname);\n      } catch (er) { /**/ }\n    }\n  }\n\n  return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n *     md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n *   configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n *   similar to GFM, used when no preset name given. Enables all available rules,\n *   but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n *   all rules disabled. Useful to quickly setup your config via `.enable()`.\n *   For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n *   That's not safe! You may need external sanitizer to protect output from XSS.\n *   It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n *   (`<br />`). This is needed only for full CommonMark compatibility. In real\n *   world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `<br>`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n *   Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__  - `false`. Set `true` to enable [some language-neutral\n *   replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n *   quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n *   pairs, when typographer enabled and smartquotes on. For example, you can\n *   use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n *   `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n *   Highlighter `function (str, lang)` should return escaped HTML. It can also\n *   return empty string if the source was not changed and should be escaped\n *   externaly. If result starts with <pre... internal wrapper is skipped.\n *\n * ##### Example\n *\n * ```javascript\n * // commonmark mode\n * var md = require('markdown-it')('commonmark');\n *\n * // default mode\n * var md = require('markdown-it')();\n *\n * // enable everything\n * var md = require('markdown-it')({\n *   html: true,\n *   linkify: true,\n *   typographer: true\n * });\n * ```\n *\n * ##### Syntax highlighting\n *\n * ```js\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * var md = require('markdown-it')({\n *   highlight: function (str, lang) {\n *     if (lang && hljs.getLanguage(lang)) {\n *       try {\n *         return hljs.highlight(lang, str, true).value;\n *       } catch (__) {}\n *     }\n *\n *     return ''; // use external default escaping\n *   }\n * });\n * ```\n *\n * Or with full wrapper override (if you need assign class to `<pre>`):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n *   highlight: function (str, lang) {\n *     if (lang && hljs.getLanguage(lang)) {\n *       try {\n *         return '<pre class=\"hljs\"><code>' +\n *                hljs.highlight(lang, str, true).value +\n *                '</code></pre>';\n *       } catch (__) {}\n *     }\n *\n *     return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n *   }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n  if (!(this instanceof MarkdownIt)) {\n    return new MarkdownIt(presetName, options);\n  }\n\n  if (!options) {\n    if (!utils.isString(presetName)) {\n      options = presetName || {};\n      presetName = 'default';\n    }\n  }\n\n  /**\n   * MarkdownIt#inline -> ParserInline\n   *\n   * Instance of [[ParserInline]]. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.inline = new ParserInline();\n\n  /**\n   * MarkdownIt#block -> ParserBlock\n   *\n   * Instance of [[ParserBlock]]. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.block = new ParserBlock();\n\n  /**\n   * MarkdownIt#core -> Core\n   *\n   * Instance of [[Core]] chain executor. You may need it to add new rules when\n   * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n   * [[MarkdownIt.enable]].\n   **/\n  this.core = new ParserCore();\n\n  /**\n   * MarkdownIt#renderer -> Renderer\n   *\n   * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n   * rules for new token types, generated by plugins.\n   *\n   * ##### Example\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   *\n   * function myToken(tokens, idx, options, env, self) {\n   *   //...\n   *   return result;\n   * };\n   *\n   * md.renderer.rules['my_token'] = myToken\n   * ```\n   *\n   * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n   **/\n  this.renderer = new Renderer();\n\n  /**\n   * MarkdownIt#linkify -> LinkifyIt\n   *\n   * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n   * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n   * rule.\n   **/\n  this.linkify = new LinkifyIt();\n\n  /**\n   * MarkdownIt#validateLink(url) -> Boolean\n   *\n   * Link validation function. CommonMark allows too much in links. By default\n   * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n   * except some embedded image types.\n   *\n   * You can change this behaviour:\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   * // enable everything\n   * md.validateLink = function () { return true; }\n   * ```\n   **/\n  this.validateLink = validateLink;\n\n  /**\n   * MarkdownIt#normalizeLink(url) -> String\n   *\n   * Function used to encode link url to a machine-readable format,\n   * which includes url-encoding, punycode, etc.\n   **/\n  this.normalizeLink = normalizeLink;\n\n  /**\n   * MarkdownIt#normalizeLinkText(url) -> String\n   *\n   * Function used to decode link url to a human-readable format`\n   **/\n  this.normalizeLinkText = normalizeLinkText;\n\n\n  // Expose utils & helpers for easy acces from plugins\n\n  /**\n   * MarkdownIt#utils -> utils\n   *\n   * Assorted utility functions, useful to write plugins. See details\n   * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n   **/\n  this.utils = utils;\n\n  /**\n   * MarkdownIt#helpers -> helpers\n   *\n   * Link components parser functions, useful to write plugins. See details\n   * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n   **/\n  this.helpers = utils.assign({}, helpers);\n\n\n  this.options = {};\n  this.configure(presetName);\n\n  if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n *             .set({ html: true, breaks: true })\n *             .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n  utils.assign(this.options, options);\n  return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you with - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n  var self = this, presetName;\n\n  if (utils.isString(presets)) {\n    presetName = presets;\n    presets = config[presetName];\n    if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n  }\n\n  if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n  if (presets.options) { self.set(presets.options); }\n\n  if (presets.components) {\n    Object.keys(presets.components).forEach(function (name) {\n      if (presets.components[name].rules) {\n        self[name].ruler.enableOnly(presets.components[name].rules);\n      }\n      if (presets.components[name].rules2) {\n        self[name].ruler2.enableOnly(presets.components[name].rules2);\n      }\n    });\n  }\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n *             .enable(['sub', 'sup'])\n *             .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n  var result = [];\n\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  [ 'core', 'block', 'inline' ].forEach(function (chain) {\n    result = result.concat(this[chain].ruler.enable(list, true));\n  }, this);\n\n  result = result.concat(this.inline.ruler2.enable(list, true));\n\n  var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n  if (missed.length && !ignoreInvalid) {\n    throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n  }\n\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n  var result = [];\n\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  [ 'core', 'block', 'inline' ].forEach(function (chain) {\n    result = result.concat(this[chain].ruler.disable(list, true));\n  }, this);\n\n  result = result.concat(this.inline.ruler2.disable(list, true));\n\n  var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n  if (missed.length && !ignoreInvalid) {\n    throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n  }\n  return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n *             .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n *               tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n *             });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n  var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n  plugin.apply(plugin, args);\n  return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and returns list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n  if (typeof src !== 'string') {\n    throw new Error('Input data should be a String');\n  }\n\n  var state = new this.core.State(src, this, env);\n\n  this.core.process(state);\n\n  return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n  env = env || {};\n\n  return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n  var state = new this.core.State(src, this, env);\n\n  state.inlineMode = true;\n  this.core.process(state);\n\n  return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `<p>` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n  env = env || {};\n\n  return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n\n},{\"./common/utils\":4,\"./helpers\":5,\"./parser_block\":10,\"./parser_core\":11,\"./parser_inline\":12,\"./presets/commonmark\":13,\"./presets/default\":14,\"./presets/zero\":15,\"./renderer\":16,\"linkify-it\":53,\"mdurl\":58,\"punycode\":60}],10:[function(require,module,exports){\n/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n'use strict';\n\n\nvar Ruler           = require('./ruler');\n\n\nvar _rules = [\n  // First 2 params - rule name & source. Secondary array - list of rules,\n  // which can be terminated by this one.\n  [ 'table',      require('./rules_block/table'),      [ 'paragraph', 'reference' ] ],\n  [ 'code',       require('./rules_block/code') ],\n  [ 'fence',      require('./rules_block/fence'),      [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'blockquote', require('./rules_block/blockquote'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'hr',         require('./rules_block/hr'),         [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n  [ 'list',       require('./rules_block/list'),       [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'reference',  require('./rules_block/reference') ],\n  [ 'heading',    require('./rules_block/heading'),    [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'lheading',   require('./rules_block/lheading') ],\n  [ 'html_block', require('./rules_block/html_block'), [ 'paragraph', 'reference', 'blockquote' ] ],\n  [ 'paragraph',  require('./rules_block/paragraph') ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n  /**\n   * ParserBlock#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of block rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (var i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n  }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n  var ok, i,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      line = startLine,\n      hasEmptyLines = false,\n      maxNesting = state.md.options.maxNesting;\n\n  while (line < endLine) {\n    state.line = line = state.skipEmptyLines(line);\n    if (line >= endLine) { break; }\n\n    // Termination condition for nested calls.\n    // Nested calls currently used for blockquotes & lists\n    if (state.sCount[line] < state.blkIndent) { break; }\n\n    // If nesting level exceeded - skip tail to the end. That's not ordinary\n    // situation and we should not care about content.\n    if (state.level >= maxNesting) {\n      state.line = endLine;\n      break;\n    }\n\n    // Try all possible rules.\n    // On success, rule should:\n    //\n    // - update `state.line`\n    // - update `state.tokens`\n    // - return true\n\n    for (i = 0; i < len; i++) {\n      ok = rules[i](state, line, endLine, false);\n      if (ok) { break; }\n    }\n\n    // set state.tight if we had an empty line before current tag\n    // i.e. latest empty line should not count\n    state.tight = !hasEmptyLines;\n\n    // paragraph might \"eat\" one newline after it in nested lists\n    if (state.isEmpty(state.line - 1)) {\n      hasEmptyLines = true;\n    }\n\n    line = state.line;\n\n    if (line < endLine && state.isEmpty(line)) {\n      hasEmptyLines = true;\n      line++;\n      state.line = line;\n    }\n  }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n  var state;\n\n  if (!src) { return; }\n\n  state = new this.State(src, md, env, outTokens);\n\n  this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = require('./rules_block/state_block');\n\n\nmodule.exports = ParserBlock;\n\n},{\"./ruler\":17,\"./rules_block/blockquote\":18,\"./rules_block/code\":19,\"./rules_block/fence\":20,\"./rules_block/heading\":21,\"./rules_block/hr\":22,\"./rules_block/html_block\":23,\"./rules_block/lheading\":24,\"./rules_block/list\":25,\"./rules_block/paragraph\":26,\"./rules_block/reference\":27,\"./rules_block/state_block\":28,\"./rules_block/table\":29}],11:[function(require,module,exports){\n/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n'use strict';\n\n\nvar Ruler  = require('./ruler');\n\n\nvar _rules = [\n  [ 'normalize',      require('./rules_core/normalize')      ],\n  [ 'block',          require('./rules_core/block')          ],\n  [ 'inline',         require('./rules_core/inline')         ],\n  [ 'linkify',        require('./rules_core/linkify')        ],\n  [ 'replacements',   require('./rules_core/replacements')   ],\n  [ 'smartquotes',    require('./rules_core/smartquotes')    ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n  /**\n   * Core#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of core rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (var i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1]);\n  }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n  var i, l, rules;\n\n  rules = this.ruler.getRules('');\n\n  for (i = 0, l = rules.length; i < l; i++) {\n    rules[i](state);\n  }\n};\n\nCore.prototype.State = require('./rules_core/state_core');\n\n\nmodule.exports = Core;\n\n},{\"./ruler\":17,\"./rules_core/block\":30,\"./rules_core/inline\":31,\"./rules_core/linkify\":32,\"./rules_core/normalize\":33,\"./rules_core/replacements\":34,\"./rules_core/smartquotes\":35,\"./rules_core/state_core\":36}],12:[function(require,module,exports){\n/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler           = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n  [ 'text',            require('./rules_inline/text') ],\n  [ 'newline',         require('./rules_inline/newline') ],\n  [ 'escape',          require('./rules_inline/escape') ],\n  [ 'backticks',       require('./rules_inline/backticks') ],\n  [ 'strikethrough',   require('./rules_inline/strikethrough').tokenize ],\n  [ 'emphasis',        require('./rules_inline/emphasis').tokenize ],\n  [ 'link',            require('./rules_inline/link') ],\n  [ 'image',           require('./rules_inline/image') ],\n  [ 'autolink',        require('./rules_inline/autolink') ],\n  [ 'html_inline',     require('./rules_inline/html_inline') ],\n  [ 'entity',          require('./rules_inline/entity') ]\n];\n\nvar _rules2 = [\n  [ 'balance_pairs',   require('./rules_inline/balance_pairs') ],\n  [ 'strikethrough',   require('./rules_inline/strikethrough').postProcess ],\n  [ 'emphasis',        require('./rules_inline/emphasis').postProcess ],\n  [ 'text_collapse',   require('./rules_inline/text_collapse') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n  var i;\n\n  /**\n   * ParserInline#ruler -> Ruler\n   *\n   * [[Ruler]] instance. Keep configuration of inline rules.\n   **/\n  this.ruler = new Ruler();\n\n  for (i = 0; i < _rules.length; i++) {\n    this.ruler.push(_rules[i][0], _rules[i][1]);\n  }\n\n  /**\n   * ParserInline#ruler2 -> Ruler\n   *\n   * [[Ruler]] instance. Second ruler used for post-processing\n   * (e.g. in emphasis-like rules).\n   **/\n  this.ruler2 = new Ruler();\n\n  for (i = 0; i < _rules2.length; i++) {\n    this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n  }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n  var ok, i, pos = state.pos,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      maxNesting = state.md.options.maxNesting,\n      cache = state.cache;\n\n\n  if (typeof cache[pos] !== 'undefined') {\n    state.pos = cache[pos];\n    return;\n  }\n\n  if (state.level < maxNesting) {\n    for (i = 0; i < len; i++) {\n      // Increment state.level and decrement it later to limit recursion.\n      // It's harmless to do here, because no tokens are created. But ideally,\n      // we'd need a separate private state variable for this purpose.\n      //\n      state.level++;\n      ok = rules[i](state, true);\n      state.level--;\n\n      if (ok) { break; }\n    }\n  } else {\n    // Too much nesting, just skip until the end of the paragraph.\n    //\n    // NOTE: this will cause links to behave incorrectly in the following case,\n    //       when an amount of `[` is exactly equal to `maxNesting + 1`:\n    //\n    //       [[[[[[[[[[[[[[[[[[[[[foo]()\n    //\n    // TODO: remove this workaround when CM standard will allow nested links\n    //       (we can replace it by preventing links from being parsed in\n    //       validation mode)\n    //\n    state.pos = state.posMax;\n  }\n\n  if (!ok) { state.pos++; }\n  cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n  var ok, i,\n      rules = this.ruler.getRules(''),\n      len = rules.length,\n      end = state.posMax,\n      maxNesting = state.md.options.maxNesting;\n\n  while (state.pos < end) {\n    // Try all possible rules.\n    // On success, rule should:\n    //\n    // - update `state.pos`\n    // - update `state.tokens`\n    // - return true\n\n    if (state.level < maxNesting) {\n      for (i = 0; i < len; i++) {\n        ok = rules[i](state, false);\n        if (ok) { break; }\n      }\n    }\n\n    if (ok) {\n      if (state.pos >= end) { break; }\n      continue;\n    }\n\n    state.pending += state.src[state.pos++];\n  }\n\n  if (state.pending) {\n    state.pushPending();\n  }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n  var i, rules, len;\n  var state = new this.State(str, md, env, outTokens);\n\n  this.tokenize(state);\n\n  rules = this.ruler2.getRules('');\n  len = rules.length;\n\n  for (i = 0; i < len; i++) {\n    rules[i](state);\n  }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n\n},{\"./ruler\":17,\"./rules_inline/autolink\":37,\"./rules_inline/backticks\":38,\"./rules_inline/balance_pairs\":39,\"./rules_inline/emphasis\":40,\"./rules_inline/entity\":41,\"./rules_inline/escape\":42,\"./rules_inline/html_inline\":43,\"./rules_inline/image\":44,\"./rules_inline/link\":45,\"./rules_inline/newline\":46,\"./rules_inline/state_inline\":47,\"./rules_inline/strikethrough\":48,\"./rules_inline/text\":49,\"./rules_inline/text_collapse\":50}],13:[function(require,module,exports){\n// Commonmark default options\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         true,         // Enable HTML tags in source\n    xhtmlOut:     true,         // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   20            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {\n      rules: [\n        'normalize',\n        'block',\n        'inline'\n      ]\n    },\n\n    block: {\n      rules: [\n        'blockquote',\n        'code',\n        'fence',\n        'heading',\n        'hr',\n        'html_block',\n        'lheading',\n        'list',\n        'reference',\n        'paragraph'\n      ]\n    },\n\n    inline: {\n      rules: [\n        'autolink',\n        'backticks',\n        'emphasis',\n        'entity',\n        'escape',\n        'html_inline',\n        'image',\n        'link',\n        'newline',\n        'text'\n      ],\n      rules2: [\n        'balance_pairs',\n        'emphasis',\n        'text_collapse'\n      ]\n    }\n  }\n};\n\n},{}],14:[function(require,module,exports){\n// markdown-it default options\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         false,        // Enable HTML tags in source\n    xhtmlOut:     false,        // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   100            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {},\n    block: {},\n    inline: {}\n  }\n};\n\n},{}],15:[function(require,module,exports){\n// \"Zero\" preset, with nothing enabled. Useful for manual configuring of simple\n// modes. For example, to parse bold/italic only.\n\n'use strict';\n\n\nmodule.exports = {\n  options: {\n    html:         false,        // Enable HTML tags in source\n    xhtmlOut:     false,        // Use '/' to close single tags (<br />)\n    breaks:       false,        // Convert '\\n' in paragraphs into <br>\n    langPrefix:   'language-',  // CSS language prefix for fenced blocks\n    linkify:      false,        // autoconvert URL-like texts to links\n\n    // Enable some language-neutral replacements + quotes beautification\n    typographer:  false,\n\n    // Double + single quotes replacement pairs, when typographer enabled,\n    // and smartquotes on. Could be either a String or an Array.\n    //\n    // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n    // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n    quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n    // Highlighter function. Should return escaped HTML,\n    // or '' if the source string is not changed and should be escaped externaly.\n    // If result starts with <pre... internal wrapper is skipped.\n    //\n    // function (/*str, lang*/) { return ''; }\n    //\n    highlight: null,\n\n    maxNesting:   20            // Internal protection, recursion limit\n  },\n\n  components: {\n\n    core: {\n      rules: [\n        'normalize',\n        'block',\n        'inline'\n      ]\n    },\n\n    block: {\n      rules: [\n        'paragraph'\n      ]\n    },\n\n    inline: {\n      rules: [\n        'text'\n      ],\n      rules2: [\n        'balance_pairs',\n        'text_collapse'\n      ]\n    }\n  }\n};\n\n},{}],16:[function(require,module,exports){\n/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n'use strict';\n\n\nvar assign          = require('./common/utils').assign;\nvar unescapeAll     = require('./common/utils').unescapeAll;\nvar escapeHtml      = require('./common/utils').escapeHtml;\n\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar default_rules = {};\n\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  return  '<code' + slf.renderAttrs(token) + '>' +\n          escapeHtml(tokens[idx].content) +\n          '</code>';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  return  '<pre' + slf.renderAttrs(token) + '><code>' +\n          escapeHtml(tokens[idx].content) +\n          '</code></pre>\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx],\n      info = token.info ? unescapeAll(token.info).trim() : '',\n      langName = '',\n      highlighted, i, tmpAttrs, tmpToken;\n\n  if (info) {\n    langName = info.split(/\\s+/g)[0];\n  }\n\n  if (options.highlight) {\n    highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n  } else {\n    highlighted = escapeHtml(token.content);\n  }\n\n  if (highlighted.indexOf('<pre') === 0) {\n    return highlighted + '\\n';\n  }\n\n  // If language exists, inject class gently, without modifying original token.\n  // May be, one day we will add .clone() for token and simplify this part, but\n  // now we prefer to keep things local.\n  if (info) {\n    i        = token.attrIndex('class');\n    tmpAttrs = token.attrs ? token.attrs.slice() : [];\n\n    if (i < 0) {\n      tmpAttrs.push([ 'class', options.langPrefix + langName ]);\n    } else {\n      tmpAttrs[i][1] += ' ' + options.langPrefix + langName;\n    }\n\n    // Fake token just to render attributes\n    tmpToken = {\n      attrs: tmpAttrs\n    };\n\n    return  '<pre><code' + slf.renderAttrs(tmpToken) + '>'\n          + highlighted\n          + '</code></pre>\\n';\n  }\n\n\n  return  '<pre><code' + slf.renderAttrs(token) + '>'\n        + highlighted\n        + '</code></pre>\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n  var token = tokens[idx];\n\n  // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n  // should be placed on proper position for tests.\n  //\n  // Replace content with actual value\n\n  token.attrs[token.attrIndex('alt')][1] =\n    slf.renderInlineAsText(token.children, options, env);\n\n  return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n  return options.xhtmlOut ? '<br />\\n' : '<br>\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n  return options.breaks ? (options.xhtmlOut ? '<br />\\n' : '<br>\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n  return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n  return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n  return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n  /**\n   * Renderer#rules -> Object\n   *\n   * Contains render rules for tokens. Can be updated and extended.\n   *\n   * ##### Example\n   *\n   * ```javascript\n   * var md = require('markdown-it')();\n   *\n   * md.renderer.rules.strong_open  = function () { return '<b>'; };\n   * md.renderer.rules.strong_close = function () { return '</b>'; };\n   *\n   * var result = md.renderInline(...);\n   * ```\n   *\n   * Each rule is called as independent static function with fixed signature:\n   *\n   * ```javascript\n   * function my_token_render(tokens, idx, options, env, renderer) {\n   *   // ...\n   *   return renderedHTML;\n   * }\n   * ```\n   *\n   * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n   * for more details and examples.\n   **/\n  this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n  var i, l, result;\n\n  if (!token.attrs) { return ''; }\n\n  result = '';\n\n  for (i = 0, l = token.attrs.length; i < l; i++) {\n    result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n  }\n\n  return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n  var nextToken,\n      result = '',\n      needLf = false,\n      token = tokens[idx];\n\n  // Tight list paragraphs\n  if (token.hidden) {\n    return '';\n  }\n\n  // Insert a newline between hidden paragraph and subsequent opening\n  // block-level tag.\n  //\n  // For example, here we should insert a newline before blockquote:\n  //  - a\n  //    >\n  //\n  if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n    result += '\\n';\n  }\n\n  // Add token name, e.g. `<img`\n  result += (token.nesting === -1 ? '</' : '<') + token.tag;\n\n  // Encode attributes, e.g. `<img src=\"foo\"`\n  result += this.renderAttrs(token);\n\n  // Add a slash for self-closing tags, e.g. `<img src=\"foo\" /`\n  if (token.nesting === 0 && options.xhtmlOut) {\n    result += ' /';\n  }\n\n  // Check if we need to add a newline after this tag\n  if (token.block) {\n    needLf = true;\n\n    if (token.nesting === 1) {\n      if (idx + 1 < tokens.length) {\n        nextToken = tokens[idx + 1];\n\n        if (nextToken.type === 'inline' || nextToken.hidden) {\n          // Block-level tag containing an inline tag.\n          //\n          needLf = false;\n\n        } else if (nextToken.nesting === -1 && nextToken.tag === token.tag) {\n          // Opening tag + closing tag of the same type. E.g. `<li></li>`.\n          //\n          needLf = false;\n        }\n      }\n    }\n  }\n\n  result += needLf ? '>\\n' : '>';\n\n  return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n  var type,\n      result = '',\n      rules = this.rules;\n\n  for (var i = 0, len = tokens.length; i < len; i++) {\n    type = tokens[i].type;\n\n    if (typeof rules[type] !== 'undefined') {\n      result += rules[type](tokens, i, options, env, this);\n    } else {\n      result += this.renderToken(tokens, i, options);\n    }\n  }\n\n  return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n  var result = '';\n\n  for (var i = 0, len = tokens.length; i < len; i++) {\n    if (tokens[i].type === 'text') {\n      result += tokens[i].content;\n    } else if (tokens[i].type === 'image') {\n      result += this.renderInlineAsText(tokens[i].children, options, env);\n    }\n  }\n\n  return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n  var i, len, type,\n      result = '',\n      rules = this.rules;\n\n  for (i = 0, len = tokens.length; i < len; i++) {\n    type = tokens[i].type;\n\n    if (type === 'inline') {\n      result += this.renderInline(tokens[i].children, options, env);\n    } else if (typeof rules[type] !== 'undefined') {\n      result += rules[tokens[i].type](tokens, i, options, env, this);\n    } else {\n      result += this.renderToken(tokens, i, options, env);\n    }\n  }\n\n  return result;\n};\n\nmodule.exports = Renderer;\n\n},{\"./common/utils\":4}],17:[function(require,module,exports){\n/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n  // List of added rules. Each element is:\n  //\n  // {\n  //   name: XXX,\n  //   enabled: Boolean,\n  //   fn: Function(),\n  //   alt: [ name2, name3 ]\n  // }\n  //\n  this.__rules__ = [];\n\n  // Cached rule chains.\n  //\n  // First level - chain name, '' for default.\n  // Second level - diginal anchor for fast filtering by charcodes.\n  //\n  this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n  for (var i = 0; i < this.__rules__.length; i++) {\n    if (this.__rules__[i].name === name) {\n      return i;\n    }\n  }\n  return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n  var self = this;\n  var chains = [ '' ];\n\n  // collect unique names\n  self.__rules__.forEach(function (rule) {\n    if (!rule.enabled) { return; }\n\n    rule.alt.forEach(function (altName) {\n      if (chains.indexOf(altName) < 0) {\n        chains.push(altName);\n      }\n    });\n  });\n\n  self.__cache__ = {};\n\n  chains.forEach(function (chain) {\n    self.__cache__[chain] = [];\n    self.__rules__.forEach(function (rule) {\n      if (!rule.enabled) { return; }\n\n      if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n      self.__cache__[chain].push(rule.fn);\n    });\n  });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n  var index = this.__find__(name);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n  this.__rules__[index].fn = fn;\n  this.__rules__[index].alt = opt.alt || [];\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n  var index = this.__find__(beforeName);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n  this.__rules__.splice(index, 0, {\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n  var index = this.__find__(afterName);\n  var opt = options || {};\n\n  if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n  this.__rules__.splice(index + 1, 0, {\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n *   //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n  var opt = options || {};\n\n  this.__rules__.push({\n    name: ruleName,\n    enabled: true,\n    fn: fn,\n    alt: opt.alt || []\n  });\n\n  this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  var result = [];\n\n  // Search by name and enable\n  list.forEach(function (name) {\n    var idx = this.__find__(name);\n\n    if (idx < 0) {\n      if (ignoreInvalid) { return; }\n      throw new Error('Rules manager: invalid rule name ' + name);\n    }\n    this.__rules__[idx].enabled = true;\n    result.push(name);\n  }, this);\n\n  this.__cache__ = null;\n  return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n  this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n  if (!Array.isArray(list)) { list = [ list ]; }\n\n  var result = [];\n\n  // Search by name and disable\n  list.forEach(function (name) {\n    var idx = this.__find__(name);\n\n    if (idx < 0) {\n      if (ignoreInvalid) { return; }\n      throw new Error('Rules manager: invalid rule name ' + name);\n    }\n    this.__rules__[idx].enabled = false;\n    result.push(name);\n  }, this);\n\n  this.__cache__ = null;\n  return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n  if (this.__cache__ === null) {\n    this.__compile__();\n  }\n\n  // Chain can be empty, if rules disabled. But we still have to return Array.\n  return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n\n},{}],18:[function(require,module,exports){\n// Block quotes\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n  var adjustTab,\n      ch,\n      i,\n      initial,\n      l,\n      lastLineEmpty,\n      lines,\n      nextLine,\n      offset,\n      oldBMarks,\n      oldBSCount,\n      oldIndent,\n      oldParentType,\n      oldSCount,\n      oldTShift,\n      spaceAfterMarker,\n      terminate,\n      terminatorRules,\n      token,\n      wasOutdented,\n      oldLineMax = state.lineMax,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  // check the block quote marker\n  if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n  // we know that it's going to be a valid blockquote,\n  // so no point trying to find the end of it in silent mode\n  if (silent) { return true; }\n\n  // skip spaces after \">\" and re-calculate offset\n  initial = offset = state.sCount[startLine] + pos - (state.bMarks[startLine] + state.tShift[startLine]);\n\n  // skip one optional space after '>'\n  if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n    // ' >   test '\n    //     ^ -- position start of line here:\n    pos++;\n    initial++;\n    offset++;\n    adjustTab = false;\n    spaceAfterMarker = true;\n  } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n    spaceAfterMarker = true;\n\n    if ((state.bsCount[startLine] + offset) % 4 === 3) {\n      // '  >\\t  test '\n      //       ^ -- position start of line here (tab has width===1)\n      pos++;\n      initial++;\n      offset++;\n      adjustTab = false;\n    } else {\n      // ' >\\t  test '\n      //    ^ -- position start of line here + shift bsCount slightly\n      //         to make extra space appear\n      adjustTab = true;\n    }\n  } else {\n    spaceAfterMarker = false;\n  }\n\n  oldBMarks = [ state.bMarks[startLine] ];\n  state.bMarks[startLine] = pos;\n\n  while (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (isSpace(ch)) {\n      if (ch === 0x09) {\n        offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;\n      } else {\n        offset++;\n      }\n    } else {\n      break;\n    }\n\n    pos++;\n  }\n\n  oldBSCount = [ state.bsCount[startLine] ];\n  state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n  lastLineEmpty = pos >= max;\n\n  oldSCount = [ state.sCount[startLine] ];\n  state.sCount[startLine] = offset - initial;\n\n  oldTShift = [ state.tShift[startLine] ];\n  state.tShift[startLine] = pos - state.bMarks[startLine];\n\n  terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n  oldParentType = state.parentType;\n  state.parentType = 'blockquote';\n  wasOutdented = false;\n\n  // Search the end of the block\n  //\n  // Block ends with either:\n  //  1. an empty line outside:\n  //     ```\n  //     > test\n  //\n  //     ```\n  //  2. an empty line inside:\n  //     ```\n  //     >\n  //     test\n  //     ```\n  //  3. another tag:\n  //     ```\n  //     > test\n  //      - - -\n  //     ```\n  for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n    // check if it's outdented, i.e. it's inside list item and indented\n    // less than said list item:\n    //\n    // ```\n    // 1. anything\n    //    > current blockquote\n    // 2. checking this line\n    // ```\n    if (state.sCount[nextLine] < state.blkIndent) wasOutdented = true;\n\n    pos = state.bMarks[nextLine] + state.tShift[nextLine];\n    max = state.eMarks[nextLine];\n\n    if (pos >= max) {\n      // Case 1: line is not inside the blockquote, and this line is empty.\n      break;\n    }\n\n    if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !wasOutdented) {\n      // This line is inside the blockquote.\n\n      // skip spaces after \">\" and re-calculate offset\n      initial = offset = state.sCount[nextLine] + pos - (state.bMarks[nextLine] + state.tShift[nextLine]);\n\n      // skip one optional space after '>'\n      if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n        // ' >   test '\n        //     ^ -- position start of line here:\n        pos++;\n        initial++;\n        offset++;\n        adjustTab = false;\n        spaceAfterMarker = true;\n      } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n        spaceAfterMarker = true;\n\n        if ((state.bsCount[nextLine] + offset) % 4 === 3) {\n          // '  >\\t  test '\n          //       ^ -- position start of line here (tab has width===1)\n          pos++;\n          initial++;\n          offset++;\n          adjustTab = false;\n        } else {\n          // ' >\\t  test '\n          //    ^ -- position start of line here + shift bsCount slightly\n          //         to make extra space appear\n          adjustTab = true;\n        }\n      } else {\n        spaceAfterMarker = false;\n      }\n\n      oldBMarks.push(state.bMarks[nextLine]);\n      state.bMarks[nextLine] = pos;\n\n      while (pos < max) {\n        ch = state.src.charCodeAt(pos);\n\n        if (isSpace(ch)) {\n          if (ch === 0x09) {\n            offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n          } else {\n            offset++;\n          }\n        } else {\n          break;\n        }\n\n        pos++;\n      }\n\n      lastLineEmpty = pos >= max;\n\n      oldBSCount.push(state.bsCount[nextLine]);\n      state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n      oldSCount.push(state.sCount[nextLine]);\n      state.sCount[nextLine] = offset - initial;\n\n      oldTShift.push(state.tShift[nextLine]);\n      state.tShift[nextLine] = pos - state.bMarks[nextLine];\n      continue;\n    }\n\n    // Case 2: line is not inside the blockquote, and the last line was empty.\n    if (lastLineEmpty) { break; }\n\n    // Case 3: another tag found.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n\n    if (terminate) {\n      // Quirk to enforce \"hard termination mode\" for paragraphs;\n      // normally if you call `tokenize(state, startLine, nextLine)`,\n      // paragraphs will look below nextLine for paragraph continuation,\n      // but if blockquote is terminated by another tag, they shouldn't\n      state.lineMax = nextLine;\n\n      if (state.blkIndent !== 0) {\n        // state.blkIndent was non-zero, we now set it to zero,\n        // so we need to re-calculate all offsets to appear as\n        // if indent wasn't changed\n        oldBMarks.push(state.bMarks[nextLine]);\n        oldBSCount.push(state.bsCount[nextLine]);\n        oldTShift.push(state.tShift[nextLine]);\n        oldSCount.push(state.sCount[nextLine]);\n        state.sCount[nextLine] -= state.blkIndent;\n      }\n\n      break;\n    }\n\n    oldBMarks.push(state.bMarks[nextLine]);\n    oldBSCount.push(state.bsCount[nextLine]);\n    oldTShift.push(state.tShift[nextLine]);\n    oldSCount.push(state.sCount[nextLine]);\n\n    // A negative indentation means that this is a paragraph continuation\n    //\n    state.sCount[nextLine] = -1;\n  }\n\n  oldIndent = state.blkIndent;\n  state.blkIndent = 0;\n\n  token        = state.push('blockquote_open', 'blockquote', 1);\n  token.markup = '>';\n  token.map    = lines = [ startLine, 0 ];\n\n  state.md.block.tokenize(state, startLine, nextLine);\n\n  token        = state.push('blockquote_close', 'blockquote', -1);\n  token.markup = '>';\n\n  state.lineMax = oldLineMax;\n  state.parentType = oldParentType;\n  lines[1] = state.line;\n\n  // Restore original tShift; this might not be necessary since the parser\n  // has already been here, but just to make sure we can do that.\n  for (i = 0; i < oldTShift.length; i++) {\n    state.bMarks[i + startLine] = oldBMarks[i];\n    state.tShift[i + startLine] = oldTShift[i];\n    state.sCount[i + startLine] = oldSCount[i];\n    state.bsCount[i + startLine] = oldBSCount[i];\n  }\n  state.blkIndent = oldIndent;\n\n  return true;\n};\n\n},{\"../common/utils\":4}],19:[function(require,module,exports){\n// Code block (4 spaces padded)\n\n'use strict';\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n  var nextLine, last, token;\n\n  if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n  last = nextLine = startLine + 1;\n\n  while (nextLine < endLine) {\n    if (state.isEmpty(nextLine)) {\n      nextLine++;\n      continue;\n    }\n\n    if (state.sCount[nextLine] - state.blkIndent >= 4) {\n      nextLine++;\n      last = nextLine;\n      continue;\n    }\n    break;\n  }\n\n  state.line = last;\n\n  token         = state.push('code_block', 'code', 0);\n  token.content = state.getLines(startLine, last, 4 + state.blkIndent, true);\n  token.map     = [ startLine, state.line ];\n\n  return true;\n};\n\n},{}],20:[function(require,module,exports){\n// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n  var marker, len, params, nextLine, mem, token, markup,\n      haveEndMarker = false,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (pos + 3 > max) { return false; }\n\n  marker = state.src.charCodeAt(pos);\n\n  if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n    return false;\n  }\n\n  // scan marker length\n  mem = pos;\n  pos = state.skipChars(pos, marker);\n\n  len = pos - mem;\n\n  if (len < 3) { return false; }\n\n  markup = state.src.slice(mem, pos);\n  params = state.src.slice(pos, max);\n\n  if (marker === 0x60 /* ` */) {\n    if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n      return false;\n    }\n  }\n\n  // Since start is found, we can report success here in validation mode\n  if (silent) { return true; }\n\n  // search end of block\n  nextLine = startLine;\n\n  for (;;) {\n    nextLine++;\n    if (nextLine >= endLine) {\n      // unclosed block should be autoclosed by end of document.\n      // also block seems to be autoclosed by end of parent\n      break;\n    }\n\n    pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n    max = state.eMarks[nextLine];\n\n    if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n      // non-empty line with negative indent should stop the list:\n      // - ```\n      //  test\n      break;\n    }\n\n    if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n    if (state.sCount[nextLine] - state.blkIndent >= 4) {\n      // closing fence should be indented less than 4 spaces\n      continue;\n    }\n\n    pos = state.skipChars(pos, marker);\n\n    // closing code fence must be at least as long as the opening one\n    if (pos - mem < len) { continue; }\n\n    // make sure tail has spaces only\n    pos = state.skipSpaces(pos);\n\n    if (pos < max) { continue; }\n\n    haveEndMarker = true;\n    // found!\n    break;\n  }\n\n  // If a fence has heading spaces, they should be removed from its inner block\n  len = state.sCount[startLine];\n\n  state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n  token         = state.push('fence', 'code', 0);\n  token.info    = params;\n  token.content = state.getLines(startLine + 1, nextLine, len, true);\n  token.markup  = markup;\n  token.map     = [ startLine, state.line ];\n\n  return true;\n};\n\n},{}],21:[function(require,module,exports){\n// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n  var ch, level, tmp, token,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  ch  = state.src.charCodeAt(pos);\n\n  if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n  // count heading level\n  level = 1;\n  ch = state.src.charCodeAt(++pos);\n  while (ch === 0x23/* # */ && pos < max && level <= 6) {\n    level++;\n    ch = state.src.charCodeAt(++pos);\n  }\n\n  if (level > 6 || (pos < max && !isSpace(ch))) { return false; }\n\n  if (silent) { return true; }\n\n  // Let's cut tails like '    ###  ' from the end of string\n\n  max = state.skipSpacesBack(max, pos);\n  tmp = state.skipCharsBack(max, 0x23, pos); // #\n  if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n    max = tmp;\n  }\n\n  state.line = startLine + 1;\n\n  token        = state.push('heading_open', 'h' + String(level), 1);\n  token.markup = '########'.slice(0, level);\n  token.map    = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = state.src.slice(pos, max).trim();\n  token.map      = [ startLine, state.line ];\n  token.children = [];\n\n  token        = state.push('heading_close', 'h' + String(level), -1);\n  token.markup = '########'.slice(0, level);\n\n  return true;\n};\n\n},{\"../common/utils\":4}],22:[function(require,module,exports){\n// Horizontal rule\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n  var marker, cnt, ch, token,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  marker = state.src.charCodeAt(pos++);\n\n  // Check hr marker\n  if (marker !== 0x2A/* * */ &&\n      marker !== 0x2D/* - */ &&\n      marker !== 0x5F/* _ */) {\n    return false;\n  }\n\n  // markers can be mixed with spaces, but there should be at least 3 of them\n\n  cnt = 1;\n  while (pos < max) {\n    ch = state.src.charCodeAt(pos++);\n    if (ch !== marker && !isSpace(ch)) { return false; }\n    if (ch === marker) { cnt++; }\n  }\n\n  if (cnt < 3) { return false; }\n\n  if (silent) { return true; }\n\n  state.line = startLine + 1;\n\n  token        = state.push('hr', 'hr', 0);\n  token.map    = [ startLine, state.line ];\n  token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n  return true;\n};\n\n},{\"../common/utils\":4}],23:[function(require,module,exports){\n// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n  [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n  [ /^<!--/,        /-->/,   true ],\n  [ /^<\\?/,         /\\?>/,   true ],\n  [ /^<![A-Z]/,     />/,     true ],\n  [ /^<!\\[CDATA\\[/, /\\]\\]>/, true ],\n  [ new RegExp('^</?(' + block_names.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true ],\n  [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'),  /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n  var i, nextLine, token, lineText,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine];\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (!state.md.options.html) { return false; }\n\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n  lineText = state.src.slice(pos, max);\n\n  for (i = 0; i < HTML_SEQUENCES.length; i++) {\n    if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n  }\n\n  if (i === HTML_SEQUENCES.length) { return false; }\n\n  if (silent) {\n    // true if this sequence can be a terminator, false otherwise\n    return HTML_SEQUENCES[i][2];\n  }\n\n  nextLine = startLine + 1;\n\n  // If we are here - we detected HTML block.\n  // Let's roll down till block end.\n  if (!HTML_SEQUENCES[i][1].test(lineText)) {\n    for (; nextLine < endLine; nextLine++) {\n      if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n      pos = state.bMarks[nextLine] + state.tShift[nextLine];\n      max = state.eMarks[nextLine];\n      lineText = state.src.slice(pos, max);\n\n      if (HTML_SEQUENCES[i][1].test(lineText)) {\n        if (lineText.length !== 0) { nextLine++; }\n        break;\n      }\n    }\n  }\n\n  state.line = nextLine;\n\n  token         = state.push('html_block', '', 0);\n  token.map     = [ startLine, nextLine ];\n  token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n  return true;\n};\n\n},{\"../common/html_blocks\":2,\"../common/html_re\":3}],24:[function(require,module,exports){\n// lheading (---, ===)\n\n'use strict';\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n  var content, terminate, i, l, token, pos, max, level, marker,\n      nextLine = startLine + 1, oldParentType,\n      terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  oldParentType = state.parentType;\n  state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n  // jump line-by-line until empty one or EOF\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    //\n    // Check for underline in setext header\n    //\n    if (state.sCount[nextLine] >= state.blkIndent) {\n      pos = state.bMarks[nextLine] + state.tShift[nextLine];\n      max = state.eMarks[nextLine];\n\n      if (pos < max) {\n        marker = state.src.charCodeAt(pos);\n\n        if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n          pos = state.skipChars(pos, marker);\n          pos = state.skipSpaces(pos);\n\n          if (pos >= max) {\n            level = (marker === 0x3D/* = */ ? 1 : 2);\n            break;\n          }\n        }\n      }\n    }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  if (!level) {\n    // Didn't find valid underline\n    return false;\n  }\n\n  content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n  state.line = nextLine + 1;\n\n  token          = state.push('heading_open', 'h' + String(level), 1);\n  token.markup   = String.fromCharCode(marker);\n  token.map      = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = content;\n  token.map      = [ startLine, state.line - 1 ];\n  token.children = [];\n\n  token          = state.push('heading_close', 'h' + String(level), -1);\n  token.markup   = String.fromCharCode(marker);\n\n  state.parentType = oldParentType;\n\n  return true;\n};\n\n},{}],25:[function(require,module,exports){\n// Lists\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n  var marker, pos, max, ch;\n\n  pos = state.bMarks[startLine] + state.tShift[startLine];\n  max = state.eMarks[startLine];\n\n  marker = state.src.charCodeAt(pos++);\n  // Check bullet\n  if (marker !== 0x2A/* * */ &&\n      marker !== 0x2D/* - */ &&\n      marker !== 0x2B/* + */) {\n    return -1;\n  }\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (!isSpace(ch)) {\n      // \" -test \" - is not a list item\n      return -1;\n    }\n  }\n\n  return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n  var ch,\n      start = state.bMarks[startLine] + state.tShift[startLine],\n      pos = start,\n      max = state.eMarks[startLine];\n\n  // List marker should have at least 2 chars (digit + dot)\n  if (pos + 1 >= max) { return -1; }\n\n  ch = state.src.charCodeAt(pos++);\n\n  if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n  for (;;) {\n    // EOL -> fail\n    if (pos >= max) { return -1; }\n\n    ch = state.src.charCodeAt(pos++);\n\n    if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n      // List marker should have no more than 9 digits\n      // (prevents integer overflow in browsers)\n      if (pos - start >= 10) { return -1; }\n\n      continue;\n    }\n\n    // found valid marker\n    if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n      break;\n    }\n\n    return -1;\n  }\n\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (!isSpace(ch)) {\n      // \" 1.test \" - is not a list item\n      return -1;\n    }\n  }\n  return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n  var i, l,\n      level = state.level + 2;\n\n  for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n    if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n      state.tokens[i + 2].hidden = true;\n      state.tokens[i].hidden = true;\n      i += 2;\n    }\n  }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n  var ch,\n      contentStart,\n      i,\n      indent,\n      indentAfterMarker,\n      initial,\n      isOrdered,\n      itemLines,\n      l,\n      listLines,\n      listTokIdx,\n      markerCharCode,\n      markerValue,\n      max,\n      nextLine,\n      offset,\n      oldListIndent,\n      oldParentType,\n      oldSCount,\n      oldTShift,\n      oldTight,\n      pos,\n      posAfterMarker,\n      prevEmptyEnd,\n      start,\n      terminate,\n      terminatorRules,\n      token,\n      isTerminatingParagraph = false,\n      tight = true;\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  // Special case:\n  //  - item 1\n  //   - item 2\n  //    - item 3\n  //     - item 4\n  //      - this one is a paragraph continuation\n  if (state.listIndent >= 0 &&\n      state.sCount[startLine] - state.listIndent >= 4 &&\n      state.sCount[startLine] < state.blkIndent) {\n    return false;\n  }\n\n  // limit conditions when list can interrupt\n  // a paragraph (validation mode only)\n  if (silent && state.parentType === 'paragraph') {\n    // Next list item should still terminate previous list item;\n    //\n    // This code can fail if plugins use blkIndent as well as lists,\n    // but I hope the spec gets fixed long before that happens.\n    //\n    if (state.tShift[startLine] >= state.blkIndent) {\n      isTerminatingParagraph = true;\n    }\n  }\n\n  // Detect list type and position after marker\n  if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n    isOrdered = true;\n    start = state.bMarks[startLine] + state.tShift[startLine];\n    markerValue = Number(state.src.substr(start, posAfterMarker - start - 1));\n\n    // If we're starting a new ordered list right after\n    // a paragraph, it should start with 1.\n    if (isTerminatingParagraph && markerValue !== 1) return false;\n\n  } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n    isOrdered = false;\n\n  } else {\n    return false;\n  }\n\n  // If we're starting a new unordered list right after\n  // a paragraph, first line should not be empty.\n  if (isTerminatingParagraph) {\n    if (state.skipSpaces(posAfterMarker) >= state.eMarks[startLine]) return false;\n  }\n\n  // We should terminate list on style change. Remember first one to compare.\n  markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n  // For validation mode we can terminate immediately\n  if (silent) { return true; }\n\n  // Start list\n  listTokIdx = state.tokens.length;\n\n  if (isOrdered) {\n    token       = state.push('ordered_list_open', 'ol', 1);\n    if (markerValue !== 1) {\n      token.attrs = [ [ 'start', markerValue ] ];\n    }\n\n  } else {\n    token       = state.push('bullet_list_open', 'ul', 1);\n  }\n\n  token.map    = listLines = [ startLine, 0 ];\n  token.markup = String.fromCharCode(markerCharCode);\n\n  //\n  // Iterate list items\n  //\n\n  nextLine = startLine;\n  prevEmptyEnd = false;\n  terminatorRules = state.md.block.ruler.getRules('list');\n\n  oldParentType = state.parentType;\n  state.parentType = 'list';\n\n  while (nextLine < endLine) {\n    pos = posAfterMarker;\n    max = state.eMarks[nextLine];\n\n    initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n    while (pos < max) {\n      ch = state.src.charCodeAt(pos);\n\n      if (ch === 0x09) {\n        offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n      } else if (ch === 0x20) {\n        offset++;\n      } else {\n        break;\n      }\n\n      pos++;\n    }\n\n    contentStart = pos;\n\n    if (contentStart >= max) {\n      // trimming space in \"-    \\n  3\" case, indent is 1 here\n      indentAfterMarker = 1;\n    } else {\n      indentAfterMarker = offset - initial;\n    }\n\n    // If we have more than 4 spaces, the indent is 1\n    // (the rest is just indented code block)\n    if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n    // \"  -  test\"\n    //  ^^^^^ - calculating total length of this thing\n    indent = initial + indentAfterMarker;\n\n    // Run subparser & write tokens\n    token        = state.push('list_item_open', 'li', 1);\n    token.markup = String.fromCharCode(markerCharCode);\n    token.map    = itemLines = [ startLine, 0 ];\n\n    // change current state, then restore it after parser subcall\n    oldTight = state.tight;\n    oldTShift = state.tShift[startLine];\n    oldSCount = state.sCount[startLine];\n\n    //  - example list\n    // ^ listIndent position will be here\n    //   ^ blkIndent position will be here\n    //\n    oldListIndent = state.listIndent;\n    state.listIndent = state.blkIndent;\n    state.blkIndent = indent;\n\n    state.tight = true;\n    state.tShift[startLine] = contentStart - state.bMarks[startLine];\n    state.sCount[startLine] = offset;\n\n    if (contentStart >= max && state.isEmpty(startLine + 1)) {\n      // workaround for this case\n      // (list item is empty, list terminates before \"foo\"):\n      // ~~~~~~~~\n      //   -\n      //\n      //     foo\n      // ~~~~~~~~\n      state.line = Math.min(state.line + 2, endLine);\n    } else {\n      state.md.block.tokenize(state, startLine, endLine, true);\n    }\n\n    // If any of list item is tight, mark list as tight\n    if (!state.tight || prevEmptyEnd) {\n      tight = false;\n    }\n    // Item become loose if finish with empty line,\n    // but we should filter last element, because it means list finish\n    prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n    state.blkIndent = state.listIndent;\n    state.listIndent = oldListIndent;\n    state.tShift[startLine] = oldTShift;\n    state.sCount[startLine] = oldSCount;\n    state.tight = oldTight;\n\n    token        = state.push('list_item_close', 'li', -1);\n    token.markup = String.fromCharCode(markerCharCode);\n\n    nextLine = startLine = state.line;\n    itemLines[1] = nextLine;\n    contentStart = state.bMarks[startLine];\n\n    if (nextLine >= endLine) { break; }\n\n    //\n    // Try to check if list is terminated or continued.\n    //\n    if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n    // if it's indented more than 3 spaces, it should be a code block\n    if (state.sCount[startLine] - state.blkIndent >= 4) { break; }\n\n    // fail if terminating block found\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n\n    // fail if list has another type\n    if (isOrdered) {\n      posAfterMarker = skipOrderedListMarker(state, nextLine);\n      if (posAfterMarker < 0) { break; }\n    } else {\n      posAfterMarker = skipBulletListMarker(state, nextLine);\n      if (posAfterMarker < 0) { break; }\n    }\n\n    if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n  }\n\n  // Finalize list\n  if (isOrdered) {\n    token = state.push('ordered_list_close', 'ol', -1);\n  } else {\n    token = state.push('bullet_list_close', 'ul', -1);\n  }\n  token.markup = String.fromCharCode(markerCharCode);\n\n  listLines[1] = nextLine;\n  state.line = nextLine;\n\n  state.parentType = oldParentType;\n\n  // mark paragraphs tight if needed\n  if (tight) {\n    markTightParagraphs(state, listTokIdx);\n  }\n\n  return true;\n};\n\n},{\"../common/utils\":4}],26:[function(require,module,exports){\n// Paragraph\n\n'use strict';\n\n\nmodule.exports = function paragraph(state, startLine/*, endLine*/) {\n  var content, terminate, i, l, token, oldParentType,\n      nextLine = startLine + 1,\n      terminatorRules = state.md.block.ruler.getRules('paragraph'),\n      endLine = state.lineMax;\n\n  oldParentType = state.parentType;\n  state.parentType = 'paragraph';\n\n  // jump line-by-line until empty one or EOF\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n  state.line = nextLine;\n\n  token          = state.push('paragraph_open', 'p', 1);\n  token.map      = [ startLine, state.line ];\n\n  token          = state.push('inline', '', 0);\n  token.content  = content;\n  token.map      = [ startLine, state.line ];\n  token.children = [];\n\n  token          = state.push('paragraph_close', 'p', -1);\n\n  state.parentType = oldParentType;\n\n  return true;\n};\n\n},{}],27:[function(require,module,exports){\n'use strict';\n\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n  var ch,\n      destEndPos,\n      destEndLineNo,\n      endLine,\n      href,\n      i,\n      l,\n      label,\n      labelEnd,\n      oldParentType,\n      res,\n      start,\n      str,\n      terminate,\n      terminatorRules,\n      title,\n      lines = 0,\n      pos = state.bMarks[startLine] + state.tShift[startLine],\n      max = state.eMarks[startLine],\n      nextLine = startLine + 1;\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n  if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n  // Simple check to quickly interrupt scan on [link](url) at the start of line.\n  // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n  while (++pos < max) {\n    if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n        state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n      if (pos + 1 === max) { return false; }\n      if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n      break;\n    }\n  }\n\n  endLine = state.lineMax;\n\n  // jump line-by-line until empty one or EOF\n  terminatorRules = state.md.block.ruler.getRules('reference');\n\n  oldParentType = state.parentType;\n  state.parentType = 'reference';\n\n  for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n    // this would be a code block normally, but after paragraph\n    // it's considered a lazy continuation regardless of what's there\n    if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n    // quirk for blockquotes, this line should already be checked by that rule\n    if (state.sCount[nextLine] < 0) { continue; }\n\n    // Some tags can terminate paragraph without empty line.\n    terminate = false;\n    for (i = 0, l = terminatorRules.length; i < l; i++) {\n      if (terminatorRules[i](state, nextLine, endLine, true)) {\n        terminate = true;\n        break;\n      }\n    }\n    if (terminate) { break; }\n  }\n\n  str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n  max = str.length;\n\n  for (pos = 1; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x5B /* [ */) {\n      return false;\n    } else if (ch === 0x5D /* ] */) {\n      labelEnd = pos;\n      break;\n    } else if (ch === 0x0A /* \\n */) {\n      lines++;\n    } else if (ch === 0x5C /* \\ */) {\n      pos++;\n      if (pos < max && str.charCodeAt(pos) === 0x0A) {\n        lines++;\n      }\n    }\n  }\n\n  if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n  // [label]:   destination   'title'\n  //         ^^^ skip optional whitespace here\n  for (pos = labelEnd + 2; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x0A) {\n      lines++;\n    } else if (isSpace(ch)) {\n      /*eslint no-empty:0*/\n    } else {\n      break;\n    }\n  }\n\n  // [label]:   destination   'title'\n  //            ^^^^^^^^^^^ parse this\n  res = state.md.helpers.parseLinkDestination(str, pos, max);\n  if (!res.ok) { return false; }\n\n  href = state.md.normalizeLink(res.str);\n  if (!state.md.validateLink(href)) { return false; }\n\n  pos = res.pos;\n  lines += res.lines;\n\n  // save cursor state, we could require to rollback later\n  destEndPos = pos;\n  destEndLineNo = lines;\n\n  // [label]:   destination   'title'\n  //                       ^^^ skipping those spaces\n  start = pos;\n  for (; pos < max; pos++) {\n    ch = str.charCodeAt(pos);\n    if (ch === 0x0A) {\n      lines++;\n    } else if (isSpace(ch)) {\n      /*eslint no-empty:0*/\n    } else {\n      break;\n    }\n  }\n\n  // [label]:   destination   'title'\n  //                          ^^^^^^^ parse this\n  res = state.md.helpers.parseLinkTitle(str, pos, max);\n  if (pos < max && start !== pos && res.ok) {\n    title = res.str;\n    pos = res.pos;\n    lines += res.lines;\n  } else {\n    title = '';\n    pos = destEndPos;\n    lines = destEndLineNo;\n  }\n\n  // skip trailing spaces until the rest of the line\n  while (pos < max) {\n    ch = str.charCodeAt(pos);\n    if (!isSpace(ch)) { break; }\n    pos++;\n  }\n\n  if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n    if (title) {\n      // garbage at the end of the line after title,\n      // but it could still be a valid reference if we roll back\n      title = '';\n      pos = destEndPos;\n      lines = destEndLineNo;\n      while (pos < max) {\n        ch = str.charCodeAt(pos);\n        if (!isSpace(ch)) { break; }\n        pos++;\n      }\n    }\n  }\n\n  if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n    // garbage at the end of the line\n    return false;\n  }\n\n  label = normalizeReference(str.slice(1, labelEnd));\n  if (!label) {\n    // CommonMark 0.20 disallows empty labels\n    return false;\n  }\n\n  // Reference can not terminate anything. This check is for safety only.\n  /*istanbul ignore if*/\n  if (silent) { return true; }\n\n  if (typeof state.env.references === 'undefined') {\n    state.env.references = {};\n  }\n  if (typeof state.env.references[label] === 'undefined') {\n    state.env.references[label] = { title: title, href: href };\n  }\n\n  state.parentType = oldParentType;\n\n  state.line = startLine + lines + 1;\n  return true;\n};\n\n},{\"../common/utils\":4}],28:[function(require,module,exports){\n// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n  var ch, s, start, pos, len, indent, offset, indent_found;\n\n  this.src = src;\n\n  // link to parser instance\n  this.md     = md;\n\n  this.env = env;\n\n  //\n  // Internal state vartiables\n  //\n\n  this.tokens = tokens;\n\n  this.bMarks = [];  // line begin offsets for fast jumps\n  this.eMarks = [];  // line end offsets for fast jumps\n  this.tShift = [];  // offsets of the first non-space characters (tabs not expanded)\n  this.sCount = [];  // indents for each line (tabs expanded)\n\n  // An amount of virtual spaces (tabs expanded) between beginning\n  // of each line (bMarks) and real beginning of that line.\n  //\n  // It exists only as a hack because blockquotes override bMarks\n  // losing information in the process.\n  //\n  // It's used only when expanding tabs, you can think about it as\n  // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n  // means first tab should be expanded to 4-21%4 === 3 spaces.\n  //\n  this.bsCount = [];\n\n  // block parser variables\n  this.blkIndent  = 0; // required block content indent (for example, if we are\n                       // inside a list, it would be positioned after list marker)\n  this.line       = 0; // line index in src\n  this.lineMax    = 0; // lines count\n  this.tight      = false;  // loose/tight mode for lists\n  this.ddIndent   = -1; // indent of the current dd block (-1 if there isn't any)\n  this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n  // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n  // used in lists to determine if they interrupt a paragraph\n  this.parentType = 'root';\n\n  this.level = 0;\n\n  // renderer\n  this.result = '';\n\n  // Create caches\n  // Generate markers.\n  s = this.src;\n  indent_found = false;\n\n  for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n    ch = s.charCodeAt(pos);\n\n    if (!indent_found) {\n      if (isSpace(ch)) {\n        indent++;\n\n        if (ch === 0x09) {\n          offset += 4 - offset % 4;\n        } else {\n          offset++;\n        }\n        continue;\n      } else {\n        indent_found = true;\n      }\n    }\n\n    if (ch === 0x0A || pos === len - 1) {\n      if (ch !== 0x0A) { pos++; }\n      this.bMarks.push(start);\n      this.eMarks.push(pos);\n      this.tShift.push(indent);\n      this.sCount.push(offset);\n      this.bsCount.push(0);\n\n      indent_found = false;\n      indent = 0;\n      offset = 0;\n      start = pos + 1;\n    }\n  }\n\n  // Push fake entry to simplify cache bounds checks\n  this.bMarks.push(s.length);\n  this.eMarks.push(s.length);\n  this.tShift.push(0);\n  this.sCount.push(0);\n  this.bsCount.push(0);\n\n  this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n  var token = new Token(type, tag, nesting);\n  token.block = true;\n\n  if (nesting < 0) this.level--; // closing tag\n  token.level = this.level;\n  if (nesting > 0) this.level++; // opening tag\n\n  this.tokens.push(token);\n  return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n  return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n  for (var max = this.lineMax; from < max; from++) {\n    if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n      break;\n    }\n  }\n  return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n  var ch;\n\n  for (var max = this.src.length; pos < max; pos++) {\n    ch = this.src.charCodeAt(pos);\n    if (!isSpace(ch)) { break; }\n  }\n  return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n  if (pos <= min) { return pos; }\n\n  while (pos > min) {\n    if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n  }\n  return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n  for (var max = this.src.length; pos < max; pos++) {\n    if (this.src.charCodeAt(pos) !== code) { break; }\n  }\n  return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n  if (pos <= min) { return pos; }\n\n  while (pos > min) {\n    if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n  }\n  return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n  var i, lineIndent, ch, first, last, queue, lineStart,\n      line = begin;\n\n  if (begin >= end) {\n    return '';\n  }\n\n  queue = new Array(end - begin);\n\n  for (i = 0; line < end; line++, i++) {\n    lineIndent = 0;\n    lineStart = first = this.bMarks[line];\n\n    if (line + 1 < end || keepLastLF) {\n      // No need for bounds check because we have fake entry on tail.\n      last = this.eMarks[line] + 1;\n    } else {\n      last = this.eMarks[line];\n    }\n\n    while (first < last && lineIndent < indent) {\n      ch = this.src.charCodeAt(first);\n\n      if (isSpace(ch)) {\n        if (ch === 0x09) {\n          lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n        } else {\n          lineIndent++;\n        }\n      } else if (first - lineStart < this.tShift[line]) {\n        // patched tShift masked characters to look like spaces (blockquotes, list markers)\n        lineIndent++;\n      } else {\n        break;\n      }\n\n      first++;\n    }\n\n    if (lineIndent > indent) {\n      // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n      // with indent=2 becomes '  \\tfoobar'\n      queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n    } else {\n      queue[i] = this.src.slice(first, last);\n    }\n  }\n\n  return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n\n},{\"../common/utils\":4,\"../token\":51}],29:[function(require,module,exports){\n// GFM table, non-standard\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction getLine(state, line) {\n  var pos = state.bMarks[line] + state.blkIndent,\n      max = state.eMarks[line];\n\n  return state.src.substr(pos, max - pos);\n}\n\nfunction escapedSplit(str) {\n  var result = [],\n      pos = 0,\n      max = str.length,\n      ch,\n      escapes = 0,\n      lastPos = 0,\n      backTicked = false,\n      lastBackTick = 0;\n\n  ch  = str.charCodeAt(pos);\n\n  while (pos < max) {\n    if (ch === 0x60/* ` */) {\n      if (backTicked) {\n        // make \\` close code sequence, but not open it;\n        // the reason is: `\\` is correct code block\n        backTicked = false;\n        lastBackTick = pos;\n      } else if (escapes % 2 === 0) {\n        backTicked = true;\n        lastBackTick = pos;\n      }\n    } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n      result.push(str.substring(lastPos, pos));\n      lastPos = pos + 1;\n    }\n\n    if (ch === 0x5c/* \\ */) {\n      escapes++;\n    } else {\n      escapes = 0;\n    }\n\n    pos++;\n\n    // If there was an un-closed backtick, go back to just after\n    // the last backtick, but as if it was a normal character\n    if (pos === max && backTicked) {\n      backTicked = false;\n      pos = lastBackTick + 1;\n    }\n\n    ch = str.charCodeAt(pos);\n  }\n\n  result.push(str.substring(lastPos));\n\n  return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n  var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n      aligns, t, tableLines, tbodyLines;\n\n  // should have at least two lines\n  if (startLine + 2 > endLine) { return false; }\n\n  nextLine = startLine + 1;\n\n  if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n  // if it's indented more than 3 spaces, it should be a code block\n  if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n  // first character of the second line should be '|', '-', ':',\n  // and no other characters are allowed but spaces;\n  // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n  pos = state.bMarks[nextLine] + state.tShift[nextLine];\n  if (pos >= state.eMarks[nextLine]) { return false; }\n\n  ch = state.src.charCodeAt(pos++);\n  if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n  while (pos < state.eMarks[nextLine]) {\n    ch = state.src.charCodeAt(pos);\n\n    if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false; }\n\n    pos++;\n  }\n\n  lineText = getLine(state, startLine + 1);\n\n  columns = lineText.split('|');\n  aligns = [];\n  for (i = 0; i < columns.length; i++) {\n    t = columns[i].trim();\n    if (!t) {\n      // allow empty columns before and after table, but not in between columns;\n      // e.g. allow ` |---| `, disallow ` ---||--- `\n      if (i === 0 || i === columns.length - 1) {\n        continue;\n      } else {\n        return false;\n      }\n    }\n\n    if (!/^:?-+:?$/.test(t)) { return false; }\n    if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n      aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n    } else if (t.charCodeAt(0) === 0x3A/* : */) {\n      aligns.push('left');\n    } else {\n      aligns.push('');\n    }\n  }\n\n  lineText = getLine(state, startLine).trim();\n  if (lineText.indexOf('|') === -1) { return false; }\n  if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n  columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n  // header row will define an amount of columns in the entire table,\n  // and align row shouldn't be smaller than that (the rest of the rows can)\n  columnCount = columns.length;\n  if (columnCount > aligns.length) { return false; }\n\n  if (silent) { return true; }\n\n  token     = state.push('table_open', 'table', 1);\n  token.map = tableLines = [ startLine, 0 ];\n\n  token     = state.push('thead_open', 'thead', 1);\n  token.map = [ startLine, startLine + 1 ];\n\n  token     = state.push('tr_open', 'tr', 1);\n  token.map = [ startLine, startLine + 1 ];\n\n  for (i = 0; i < columns.length; i++) {\n    token          = state.push('th_open', 'th', 1);\n    token.map      = [ startLine, startLine + 1 ];\n    if (aligns[i]) {\n      token.attrs  = [ [ 'style', 'text-align:' + aligns[i] ] ];\n    }\n\n    token          = state.push('inline', '', 0);\n    token.content  = columns[i].trim();\n    token.map      = [ startLine, startLine + 1 ];\n    token.children = [];\n\n    token          = state.push('th_close', 'th', -1);\n  }\n\n  token     = state.push('tr_close', 'tr', -1);\n  token     = state.push('thead_close', 'thead', -1);\n\n  token     = state.push('tbody_open', 'tbody', 1);\n  token.map = tbodyLines = [ startLine + 2, 0 ];\n\n  for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n    if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n    lineText = getLine(state, nextLine).trim();\n    if (lineText.indexOf('|') === -1) { break; }\n    if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n    columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n    token = state.push('tr_open', 'tr', 1);\n    for (i = 0; i < columnCount; i++) {\n      token          = state.push('td_open', 'td', 1);\n      if (aligns[i]) {\n        token.attrs  = [ [ 'style', 'text-align:' + aligns[i] ] ];\n      }\n\n      token          = state.push('inline', '', 0);\n      token.content  = columns[i] ? columns[i].trim() : '';\n      token.children = [];\n\n      token          = state.push('td_close', 'td', -1);\n    }\n    token = state.push('tr_close', 'tr', -1);\n  }\n  token = state.push('tbody_close', 'tbody', -1);\n  token = state.push('table_close', 'table', -1);\n\n  tableLines[1] = tbodyLines[1] = nextLine;\n  state.line = nextLine;\n  return true;\n};\n\n},{\"../common/utils\":4}],30:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = function block(state) {\n  var token;\n\n  if (state.inlineMode) {\n    token          = new state.Token('inline', '', 0);\n    token.content  = state.src;\n    token.map      = [ 0, 1 ];\n    token.children = [];\n    state.tokens.push(token);\n  } else {\n    state.md.block.parse(state.src, state.md, state.env, state.tokens);\n  }\n};\n\n},{}],31:[function(require,module,exports){\n'use strict';\n\nmodule.exports = function inline(state) {\n  var tokens = state.tokens, tok, i, l;\n\n  // Parse inlines\n  for (i = 0, l = tokens.length; i < l; i++) {\n    tok = tokens[i];\n    if (tok.type === 'inline') {\n      state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n    }\n  }\n};\n\n},{}],32:[function(require,module,exports){\n// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n'use strict';\n\n\nvar arrayReplaceAt = require('../common/utils').arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n  return /^<a[>\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n  return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n  var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n      level, htmlLinkLevel, url, fullUrl, urlText,\n      blockTokens = state.tokens,\n      links;\n\n  if (!state.md.options.linkify) { return; }\n\n  for (j = 0, l = blockTokens.length; j < l; j++) {\n    if (blockTokens[j].type !== 'inline' ||\n        !state.md.linkify.pretest(blockTokens[j].content)) {\n      continue;\n    }\n\n    tokens = blockTokens[j].children;\n\n    htmlLinkLevel = 0;\n\n    // We scan from the end, to keep position when new tags added.\n    // Use reversed logic in links start/end match\n    for (i = tokens.length - 1; i >= 0; i--) {\n      currentToken = tokens[i];\n\n      // Skip content of markdown links\n      if (currentToken.type === 'link_close') {\n        i--;\n        while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n          i--;\n        }\n        continue;\n      }\n\n      // Skip content of html tag links\n      if (currentToken.type === 'html_inline') {\n        if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n          htmlLinkLevel--;\n        }\n        if (isLinkClose(currentToken.content)) {\n          htmlLinkLevel++;\n        }\n      }\n      if (htmlLinkLevel > 0) { continue; }\n\n      if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n        text = currentToken.content;\n        links = state.md.linkify.match(text);\n\n        // Now split string to nodes\n        nodes = [];\n        level = currentToken.level;\n        lastPos = 0;\n\n        for (ln = 0; ln < links.length; ln++) {\n\n          url = links[ln].url;\n          fullUrl = state.md.normalizeLink(url);\n          if (!state.md.validateLink(fullUrl)) { continue; }\n\n          urlText = links[ln].text;\n\n          // Linkifier might send raw hostnames like \"example.com\", where url\n          // starts with domain name. So we prepend http:// in those cases,\n          // and remove it afterwards.\n          //\n          if (!links[ln].schema) {\n            urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n          } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n            urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n          } else {\n            urlText = state.md.normalizeLinkText(urlText);\n          }\n\n          pos = links[ln].index;\n\n          if (pos > lastPos) {\n            token         = new state.Token('text', '', 0);\n            token.content = text.slice(lastPos, pos);\n            token.level   = level;\n            nodes.push(token);\n          }\n\n          token         = new state.Token('link_open', 'a', 1);\n          token.attrs   = [ [ 'href', fullUrl ] ];\n          token.level   = level++;\n          token.markup  = 'linkify';\n          token.info    = 'auto';\n          nodes.push(token);\n\n          token         = new state.Token('text', '', 0);\n          token.content = urlText;\n          token.level   = level;\n          nodes.push(token);\n\n          token         = new state.Token('link_close', 'a', -1);\n          token.level   = --level;\n          token.markup  = 'linkify';\n          token.info    = 'auto';\n          nodes.push(token);\n\n          lastPos = links[ln].lastIndex;\n        }\n        if (lastPos < text.length) {\n          token         = new state.Token('text', '', 0);\n          token.content = text.slice(lastPos);\n          token.level   = level;\n          nodes.push(token);\n        }\n\n        // replace current node\n        blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n      }\n    }\n  }\n};\n\n},{\"../common/utils\":4}],33:[function(require,module,exports){\n// Normalize input string\n\n'use strict';\n\n\n// https://spec.commonmark.org/0.29/#line-ending\nvar NEWLINES_RE  = /\\r\\n?|\\n/g;\nvar NULL_RE      = /\\0/g;\n\n\nmodule.exports = function normalize(state) {\n  var str;\n\n  // Normalize newlines\n  str = state.src.replace(NEWLINES_RE, '\\n');\n\n  // Replace NULL characters\n  str = str.replace(NULL_RE, '\\uFFFD');\n\n  state.src = str;\n};\n\n},{}],34:[function(require,module,exports){\n// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → &ndash;, --- → &mdash;\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - miltiplication 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\nvar SCOPED_ABBR = {\n  c: '©',\n  r: '®',\n  p: '§',\n  tm: '™'\n};\n\nfunction replaceFn(match, name) {\n  return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n  var i, token, inside_autolink = 0;\n\n  for (i = inlineTokens.length - 1; i >= 0; i--) {\n    token = inlineTokens[i];\n\n    if (token.type === 'text' && !inside_autolink) {\n      token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n    }\n\n    if (token.type === 'link_open' && token.info === 'auto') {\n      inside_autolink--;\n    }\n\n    if (token.type === 'link_close' && token.info === 'auto') {\n      inside_autolink++;\n    }\n  }\n}\n\nfunction replace_rare(inlineTokens) {\n  var i, token, inside_autolink = 0;\n\n  for (i = inlineTokens.length - 1; i >= 0; i--) {\n    token = inlineTokens[i];\n\n    if (token.type === 'text' && !inside_autolink) {\n      if (RARE_RE.test(token.content)) {\n        token.content = token.content\n          .replace(/\\+-/g, '±')\n          // .., ..., ....... -> …\n          // but ?..... & !..... -> ?.. & !..\n          .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n          .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n          // em-dash\n          .replace(/(^|[^-])---([^-]|$)/mg, '$1\\u2014$2')\n          // en-dash\n          .replace(/(^|\\s)--(\\s|$)/mg, '$1\\u2013$2')\n          .replace(/(^|[^-\\s])--([^-\\s]|$)/mg, '$1\\u2013$2');\n      }\n    }\n\n    if (token.type === 'link_open' && token.info === 'auto') {\n      inside_autolink--;\n    }\n\n    if (token.type === 'link_close' && token.info === 'auto') {\n      inside_autolink++;\n    }\n  }\n}\n\n\nmodule.exports = function replace(state) {\n  var blkIdx;\n\n  if (!state.md.options.typographer) { return; }\n\n  for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n    if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n    if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n      replace_scoped(state.tokens[blkIdx].children);\n    }\n\n    if (RARE_RE.test(state.tokens[blkIdx].content)) {\n      replace_rare(state.tokens[blkIdx].children);\n    }\n\n  }\n};\n\n},{}],35:[function(require,module,exports){\n// Convert straight quotation marks to typographic ones\n//\n'use strict';\n\n\nvar isWhiteSpace   = require('../common/utils').isWhiteSpace;\nvar isPunctChar    = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* ’ */\n\n\nfunction replaceAt(str, index, ch) {\n  return str.substr(0, index) + ch + str.substr(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n  var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n      isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n      canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n  stack = [];\n\n  for (i = 0; i < tokens.length; i++) {\n    token = tokens[i];\n\n    thisLevel = tokens[i].level;\n\n    for (j = stack.length - 1; j >= 0; j--) {\n      if (stack[j].level <= thisLevel) { break; }\n    }\n    stack.length = j + 1;\n\n    if (token.type !== 'text') { continue; }\n\n    text = token.content;\n    pos = 0;\n    max = text.length;\n\n    /*eslint no-labels:0,block-scoped-var:0*/\n    OUTER:\n    while (pos < max) {\n      QUOTE_RE.lastIndex = pos;\n      t = QUOTE_RE.exec(text);\n      if (!t) { break; }\n\n      canOpen = canClose = true;\n      pos = t.index + 1;\n      isSingle = (t[0] === \"'\");\n\n      // Find previous character,\n      // default to space if it's the beginning of the line\n      //\n      lastChar = 0x20;\n\n      if (t.index - 1 >= 0) {\n        lastChar = text.charCodeAt(t.index - 1);\n      } else {\n        for (j = i - 1; j >= 0; j--) {\n          if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n          if (tokens[j].type !== 'text') continue;\n\n          lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n          break;\n        }\n      }\n\n      // Find next character,\n      // default to space if it's the end of the line\n      //\n      nextChar = 0x20;\n\n      if (pos < max) {\n        nextChar = text.charCodeAt(pos);\n      } else {\n        for (j = i + 1; j < tokens.length; j++) {\n          if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n          if (tokens[j].type !== 'text') continue;\n\n          nextChar = tokens[j].content.charCodeAt(0);\n          break;\n        }\n      }\n\n      isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n      isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n      isLastWhiteSpace = isWhiteSpace(lastChar);\n      isNextWhiteSpace = isWhiteSpace(nextChar);\n\n      if (isNextWhiteSpace) {\n        canOpen = false;\n      } else if (isNextPunctChar) {\n        if (!(isLastWhiteSpace || isLastPunctChar)) {\n          canOpen = false;\n        }\n      }\n\n      if (isLastWhiteSpace) {\n        canClose = false;\n      } else if (isLastPunctChar) {\n        if (!(isNextWhiteSpace || isNextPunctChar)) {\n          canClose = false;\n        }\n      }\n\n      if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n        if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n          // special case: 1\"\" - count first quote as an inch\n          canClose = canOpen = false;\n        }\n      }\n\n      if (canOpen && canClose) {\n        // treat this as the middle of the word\n        canOpen = false;\n        canClose = isNextPunctChar;\n      }\n\n      if (!canOpen && !canClose) {\n        // middle of word\n        if (isSingle) {\n          token.content = replaceAt(token.content, t.index, APOSTROPHE);\n        }\n        continue;\n      }\n\n      if (canClose) {\n        // this could be a closing quote, rewind the stack to get a match\n        for (j = stack.length - 1; j >= 0; j--) {\n          item = stack[j];\n          if (stack[j].level < thisLevel) { break; }\n          if (item.single === isSingle && stack[j].level === thisLevel) {\n            item = stack[j];\n\n            if (isSingle) {\n              openQuote = state.md.options.quotes[2];\n              closeQuote = state.md.options.quotes[3];\n            } else {\n              openQuote = state.md.options.quotes[0];\n              closeQuote = state.md.options.quotes[1];\n            }\n\n            // replace token.content *before* tokens[item.token].content,\n            // because, if they are pointing at the same token, replaceAt\n            // could mess up indices when quote length != 1\n            token.content = replaceAt(token.content, t.index, closeQuote);\n            tokens[item.token].content = replaceAt(\n              tokens[item.token].content, item.pos, openQuote);\n\n            pos += closeQuote.length - 1;\n            if (item.token === i) { pos += openQuote.length - 1; }\n\n            text = token.content;\n            max = text.length;\n\n            stack.length = j;\n            continue OUTER;\n          }\n        }\n      }\n\n      if (canOpen) {\n        stack.push({\n          token: i,\n          pos: t.index,\n          single: isSingle,\n          level: thisLevel\n        });\n      } else if (canClose && isSingle) {\n        token.content = replaceAt(token.content, t.index, APOSTROPHE);\n      }\n    }\n  }\n}\n\n\nmodule.exports = function smartquotes(state) {\n  /*eslint max-depth:0*/\n  var blkIdx;\n\n  if (!state.md.options.typographer) { return; }\n\n  for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n    if (state.tokens[blkIdx].type !== 'inline' ||\n        !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n      continue;\n    }\n\n    process_inlines(state.tokens[blkIdx].children, state);\n  }\n};\n\n},{\"../common/utils\":4}],36:[function(require,module,exports){\n// Core state object\n//\n'use strict';\n\nvar Token = require('../token');\n\n\nfunction StateCore(src, md, env) {\n  this.src = src;\n  this.env = env;\n  this.tokens = [];\n  this.inlineMode = false;\n  this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n\n},{\"../token\":51}],37:[function(require,module,exports){\n// Process autolinks '<protocol:...>'\n\n'use strict';\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE    = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar AUTOLINK_RE = /^<([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)>/;\n\n\nmodule.exports = function autolink(state, silent) {\n  var tail, linkMatch, emailMatch, url, fullUrl, token,\n      pos = state.pos;\n\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n  tail = state.src.slice(pos);\n\n  if (tail.indexOf('>') < 0) { return false; }\n\n  if (AUTOLINK_RE.test(tail)) {\n    linkMatch = tail.match(AUTOLINK_RE);\n\n    url = linkMatch[0].slice(1, -1);\n    fullUrl = state.md.normalizeLink(url);\n    if (!state.md.validateLink(fullUrl)) { return false; }\n\n    if (!silent) {\n      token         = state.push('link_open', 'a', 1);\n      token.attrs   = [ [ 'href', fullUrl ] ];\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n\n      token         = state.push('text', '', 0);\n      token.content = state.md.normalizeLinkText(url);\n\n      token         = state.push('link_close', 'a', -1);\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n    }\n\n    state.pos += linkMatch[0].length;\n    return true;\n  }\n\n  if (EMAIL_RE.test(tail)) {\n    emailMatch = tail.match(EMAIL_RE);\n\n    url = emailMatch[0].slice(1, -1);\n    fullUrl = state.md.normalizeLink('mailto:' + url);\n    if (!state.md.validateLink(fullUrl)) { return false; }\n\n    if (!silent) {\n      token         = state.push('link_open', 'a', 1);\n      token.attrs   = [ [ 'href', fullUrl ] ];\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n\n      token         = state.push('text', '', 0);\n      token.content = state.md.normalizeLinkText(url);\n\n      token         = state.push('link_close', 'a', -1);\n      token.markup  = 'autolink';\n      token.info    = 'auto';\n    }\n\n    state.pos += emailMatch[0].length;\n    return true;\n  }\n\n  return false;\n};\n\n},{}],38:[function(require,module,exports){\n// Parse backticks\n\n'use strict';\n\nmodule.exports = function backtick(state, silent) {\n  var start, max, marker, matchStart, matchEnd, token,\n      pos = state.pos,\n      ch = state.src.charCodeAt(pos);\n\n  if (ch !== 0x60/* ` */) { return false; }\n\n  start = pos;\n  pos++;\n  max = state.posMax;\n\n  while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n  marker = state.src.slice(start, pos);\n\n  matchStart = matchEnd = pos;\n\n  while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n    matchEnd = matchStart + 1;\n\n    while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n    if (matchEnd - matchStart === marker.length) {\n      if (!silent) {\n        token         = state.push('code_inline', 'code', 0);\n        token.markup  = marker;\n        token.content = state.src.slice(pos, matchStart)\n          .replace(/\\n/g, ' ')\n          .replace(/^ (.+) $/, '$1');\n      }\n      state.pos = matchEnd;\n      return true;\n    }\n  }\n\n  if (!silent) { state.pending += marker; }\n  state.pos += marker.length;\n  return true;\n};\n\n},{}],39:[function(require,module,exports){\n// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nfunction processDelimiters(state, delimiters) {\n  var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n      isOddMatch, lastJump,\n      openersBottom = {},\n      max = delimiters.length;\n\n  for (closerIdx = 0; closerIdx < max; closerIdx++) {\n    closer = delimiters[closerIdx];\n\n    // Length is only used for emphasis-specific \"rule of 3\",\n    // if it's not defined (in strikethrough or 3rd party plugins),\n    // we can default it to 0 to disable those checks.\n    //\n    closer.length = closer.length || 0;\n\n    if (!closer.close) continue;\n\n    // Previously calculated lower bounds (previous fails)\n    // for each marker and each delimiter length modulo 3.\n    if (!openersBottom.hasOwnProperty(closer.marker)) {\n      openersBottom[closer.marker] = [ -1, -1, -1 ];\n    }\n\n    minOpenerIdx = openersBottom[closer.marker][closer.length % 3];\n    newMinOpenerIdx = -1;\n\n    openerIdx = closerIdx - closer.jump - 1;\n\n    for (; openerIdx > minOpenerIdx; openerIdx -= opener.jump + 1) {\n      opener = delimiters[openerIdx];\n\n      if (opener.marker !== closer.marker) continue;\n\n      if (newMinOpenerIdx === -1) newMinOpenerIdx = openerIdx;\n\n      if (opener.open &&\n          opener.end < 0 &&\n          opener.level === closer.level) {\n\n        isOddMatch = false;\n\n        // from spec:\n        //\n        // If one of the delimiters can both open and close emphasis, then the\n        // sum of the lengths of the delimiter runs containing the opening and\n        // closing delimiters must not be a multiple of 3 unless both lengths\n        // are multiples of 3.\n        //\n        if (opener.close || closer.open) {\n          if ((opener.length + closer.length) % 3 === 0) {\n            if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n              isOddMatch = true;\n            }\n          }\n        }\n\n        if (!isOddMatch) {\n          // If previous delimiter cannot be an opener, we can safely skip\n          // the entire sequence in future checks. This is required to make\n          // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n          //\n          lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n            delimiters[openerIdx - 1].jump + 1 :\n            0;\n\n          closer.jump  = closerIdx - openerIdx + lastJump;\n          closer.open  = false;\n          opener.end   = closerIdx;\n          opener.jump  = lastJump;\n          opener.close = false;\n          newMinOpenerIdx = -1;\n          break;\n        }\n      }\n    }\n\n    if (newMinOpenerIdx !== -1) {\n      // If match for this delimiter run failed, we want to set lower bound for\n      // future lookups. This is required to make sure algorithm has linear\n      // complexity.\n      //\n      // See details here:\n      // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n      //\n      openersBottom[closer.marker][(closer.length || 0) % 3] = newMinOpenerIdx;\n    }\n  }\n}\n\n\nmodule.exports = function link_pairs(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  processDelimiters(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      processDelimiters(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],40:[function(require,module,exports){\n// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n  var i, scanned, token,\n      start = state.pos,\n      marker = state.src.charCodeAt(start);\n\n  if (silent) { return false; }\n\n  if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n  scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n  for (i = 0; i < scanned.length; i++) {\n    token         = state.push('text', '', 0);\n    token.content = String.fromCharCode(marker);\n\n    state.delimiters.push({\n      // Char code of the starting marker (number).\n      //\n      marker: marker,\n\n      // Total length of these series of delimiters.\n      //\n      length: scanned.length,\n\n      // An amount of characters before this one that's equivalent to\n      // current one. In plain English: if this delimiter does not open\n      // an emphasis, neither do previous `jump` characters.\n      //\n      // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n      // value will be 0, for 2nd it's 1 and so on.\n      //\n      jump:   i,\n\n      // A position of the token this delimiter corresponds to.\n      //\n      token:  state.tokens.length - 1,\n\n      // If this delimiter is matched as a valid opener, `end` will be\n      // equal to its position, otherwise it's `-1`.\n      //\n      end:    -1,\n\n      // Boolean flags that determine if this delimiter could open or close\n      // an emphasis.\n      //\n      open:   scanned.can_open,\n      close:  scanned.can_close\n    });\n  }\n\n  state.pos += scanned.length;\n\n  return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n  var i,\n      startDelim,\n      endDelim,\n      token,\n      ch,\n      isStrong,\n      max = delimiters.length;\n\n  for (i = max - 1; i >= 0; i--) {\n    startDelim = delimiters[i];\n\n    if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n      continue;\n    }\n\n    // Process only opening markers\n    if (startDelim.end === -1) {\n      continue;\n    }\n\n    endDelim = delimiters[startDelim.end];\n\n    // If the previous delimiter has the same marker and is adjacent to this one,\n    // merge those into one strong delimiter.\n    //\n    // `<em><em>whatever</em></em>` -> `<strong>whatever</strong>`\n    //\n    isStrong = i > 0 &&\n               delimiters[i - 1].end === startDelim.end + 1 &&\n               delimiters[i - 1].token === startDelim.token - 1 &&\n               delimiters[startDelim.end + 1].token === endDelim.token + 1 &&\n               delimiters[i - 1].marker === startDelim.marker;\n\n    ch = String.fromCharCode(startDelim.marker);\n\n    token         = state.tokens[startDelim.token];\n    token.type    = isStrong ? 'strong_open' : 'em_open';\n    token.tag     = isStrong ? 'strong' : 'em';\n    token.nesting = 1;\n    token.markup  = isStrong ? ch + ch : ch;\n    token.content = '';\n\n    token         = state.tokens[endDelim.token];\n    token.type    = isStrong ? 'strong_close' : 'em_close';\n    token.tag     = isStrong ? 'strong' : 'em';\n    token.nesting = -1;\n    token.markup  = isStrong ? ch + ch : ch;\n    token.content = '';\n\n    if (isStrong) {\n      state.tokens[delimiters[i - 1].token].content = '';\n      state.tokens[delimiters[startDelim.end + 1].token].content = '';\n      i--;\n    }\n  }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  postProcess(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      postProcess(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],41:[function(require,module,exports){\n// Process html entity - &#123;, &#xAF;, &quot;, ...\n\n'use strict';\n\nvar entities          = require('../common/entities');\nvar has               = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint     = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nvar NAMED_RE   = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n  var ch, code, match, pos = state.pos, max = state.posMax;\n\n  if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n  if (pos + 1 < max) {\n    ch = state.src.charCodeAt(pos + 1);\n\n    if (ch === 0x23 /* # */) {\n      match = state.src.slice(pos).match(DIGITAL_RE);\n      if (match) {\n        if (!silent) {\n          code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n          state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n        }\n        state.pos += match[0].length;\n        return true;\n      }\n    } else {\n      match = state.src.slice(pos).match(NAMED_RE);\n      if (match) {\n        if (has(entities, match[1])) {\n          if (!silent) { state.pending += entities[match[1]]; }\n          state.pos += match[0].length;\n          return true;\n        }\n      }\n    }\n  }\n\n  if (!silent) { state.pending += '&'; }\n  state.pos++;\n  return true;\n};\n\n},{\"../common/entities\":1,\"../common/utils\":4}],42:[function(require,module,exports){\n// Process escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n  .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n  var ch, pos = state.pos, max = state.posMax;\n\n  if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n  pos++;\n\n  if (pos < max) {\n    ch = state.src.charCodeAt(pos);\n\n    if (ch < 256 && ESCAPED[ch] !== 0) {\n      if (!silent) { state.pending += state.src[pos]; }\n      state.pos += 2;\n      return true;\n    }\n\n    if (ch === 0x0A) {\n      if (!silent) {\n        state.push('hardbreak', 'br', 0);\n      }\n\n      pos++;\n      // skip leading whitespaces from next line\n      while (pos < max) {\n        ch = state.src.charCodeAt(pos);\n        if (!isSpace(ch)) { break; }\n        pos++;\n      }\n\n      state.pos = pos;\n      return true;\n    }\n  }\n\n  if (!silent) { state.pending += '\\\\'; }\n  state.pos++;\n  return true;\n};\n\n},{\"../common/utils\":4}],43:[function(require,module,exports){\n// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n  /*eslint no-bitwise:0*/\n  var lc = ch | 0x20; // to lower case\n  return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n  var ch, match, max, token,\n      pos = state.pos;\n\n  if (!state.md.options.html) { return false; }\n\n  // Check start\n  max = state.posMax;\n  if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n      pos + 2 >= max) {\n    return false;\n  }\n\n  // Quick fail on second char\n  ch = state.src.charCodeAt(pos + 1);\n  if (ch !== 0x21/* ! */ &&\n      ch !== 0x3F/* ? */ &&\n      ch !== 0x2F/* / */ &&\n      !isLetter(ch)) {\n    return false;\n  }\n\n  match = state.src.slice(pos).match(HTML_TAG_RE);\n  if (!match) { return false; }\n\n  if (!silent) {\n    token         = state.push('html_inline', '', 0);\n    token.content = state.src.slice(pos, pos + match[0].length);\n  }\n  state.pos += match[0].length;\n  return true;\n};\n\n},{\"../common/html_re\":3}],44:[function(require,module,exports){\n// Process ![image](<src> \"title\")\n\n'use strict';\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n  var attrs,\n      code,\n      content,\n      label,\n      labelEnd,\n      labelStart,\n      pos,\n      ref,\n      res,\n      title,\n      token,\n      tokens,\n      start,\n      href = '',\n      oldPos = state.pos,\n      max = state.posMax;\n\n  if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n  if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n  labelStart = state.pos + 2;\n  labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n  // parser failed to find ']', so it's not a valid link\n  if (labelEnd < 0) { return false; }\n\n  pos = labelEnd + 1;\n  if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n    //\n    // Inline link\n    //\n\n    // [link](  <href>  \"title\"  )\n    //        ^^ skipping these spaces\n    pos++;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n    if (pos >= max) { return false; }\n\n    // [link](  <href>  \"title\"  )\n    //          ^^^^^^ parsing link destination\n    start = pos;\n    res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n    if (res.ok) {\n      href = state.md.normalizeLink(res.str);\n      if (state.md.validateLink(href)) {\n        pos = res.pos;\n      } else {\n        href = '';\n      }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                ^^ skipping these spaces\n    start = pos;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                  ^^^^^^^ parsing link title\n    res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n    if (pos < max && start !== pos && res.ok) {\n      title = res.str;\n      pos = res.pos;\n\n      // [link](  <href>  \"title\"  )\n      //                         ^^ skipping these spaces\n      for (; pos < max; pos++) {\n        code = state.src.charCodeAt(pos);\n        if (!isSpace(code) && code !== 0x0A) { break; }\n      }\n    } else {\n      title = '';\n    }\n\n    if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n      state.pos = oldPos;\n      return false;\n    }\n    pos++;\n  } else {\n    //\n    // Link reference\n    //\n    if (typeof state.env.references === 'undefined') { return false; }\n\n    if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n      start = pos + 1;\n      pos = state.md.helpers.parseLinkLabel(state, pos);\n      if (pos >= 0) {\n        label = state.src.slice(start, pos++);\n      } else {\n        pos = labelEnd + 1;\n      }\n    } else {\n      pos = labelEnd + 1;\n    }\n\n    // covers label === '' and label === undefined\n    // (collapsed reference link and shortcut reference link respectively)\n    if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n    ref = state.env.references[normalizeReference(label)];\n    if (!ref) {\n      state.pos = oldPos;\n      return false;\n    }\n    href = ref.href;\n    title = ref.title;\n  }\n\n  //\n  // We found the end of the link, and know for a fact it's a valid link;\n  // so all that's left to do is to call tokenizer.\n  //\n  if (!silent) {\n    content = state.src.slice(labelStart, labelEnd);\n\n    state.md.inline.parse(\n      content,\n      state.md,\n      state.env,\n      tokens = []\n    );\n\n    token          = state.push('image', 'img', 0);\n    token.attrs    = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n    token.children = tokens;\n    token.content  = content;\n\n    if (title) {\n      attrs.push([ 'title', title ]);\n    }\n  }\n\n  state.pos = pos;\n  state.posMax = max;\n  return true;\n};\n\n},{\"../common/utils\":4}],45:[function(require,module,exports){\n// Process [link](<to> \"stuff\")\n\n'use strict';\n\nvar normalizeReference   = require('../common/utils').normalizeReference;\nvar isSpace              = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n  var attrs,\n      code,\n      label,\n      labelEnd,\n      labelStart,\n      pos,\n      res,\n      ref,\n      title,\n      token,\n      href = '',\n      oldPos = state.pos,\n      max = state.posMax,\n      start = state.pos,\n      parseReference = true;\n\n  if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n  labelStart = state.pos + 1;\n  labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n  // parser failed to find ']', so it's not a valid link\n  if (labelEnd < 0) { return false; }\n\n  pos = labelEnd + 1;\n  if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n    //\n    // Inline link\n    //\n\n    // might have found a valid shortcut link, disable reference parsing\n    parseReference = false;\n\n    // [link](  <href>  \"title\"  )\n    //        ^^ skipping these spaces\n    pos++;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n    if (pos >= max) { return false; }\n\n    // [link](  <href>  \"title\"  )\n    //          ^^^^^^ parsing link destination\n    start = pos;\n    res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n    if (res.ok) {\n      href = state.md.normalizeLink(res.str);\n      if (state.md.validateLink(href)) {\n        pos = res.pos;\n      } else {\n        href = '';\n      }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                ^^ skipping these spaces\n    start = pos;\n    for (; pos < max; pos++) {\n      code = state.src.charCodeAt(pos);\n      if (!isSpace(code) && code !== 0x0A) { break; }\n    }\n\n    // [link](  <href>  \"title\"  )\n    //                  ^^^^^^^ parsing link title\n    res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n    if (pos < max && start !== pos && res.ok) {\n      title = res.str;\n      pos = res.pos;\n\n      // [link](  <href>  \"title\"  )\n      //                         ^^ skipping these spaces\n      for (; pos < max; pos++) {\n        code = state.src.charCodeAt(pos);\n        if (!isSpace(code) && code !== 0x0A) { break; }\n      }\n    } else {\n      title = '';\n    }\n\n    if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n      // parsing a valid shortcut link failed, fallback to reference\n      parseReference = true;\n    }\n    pos++;\n  }\n\n  if (parseReference) {\n    //\n    // Link reference\n    //\n    if (typeof state.env.references === 'undefined') { return false; }\n\n    if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n      start = pos + 1;\n      pos = state.md.helpers.parseLinkLabel(state, pos);\n      if (pos >= 0) {\n        label = state.src.slice(start, pos++);\n      } else {\n        pos = labelEnd + 1;\n      }\n    } else {\n      pos = labelEnd + 1;\n    }\n\n    // covers label === '' and label === undefined\n    // (collapsed reference link and shortcut reference link respectively)\n    if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n    ref = state.env.references[normalizeReference(label)];\n    if (!ref) {\n      state.pos = oldPos;\n      return false;\n    }\n    href = ref.href;\n    title = ref.title;\n  }\n\n  //\n  // We found the end of the link, and know for a fact it's a valid link;\n  // so all that's left to do is to call tokenizer.\n  //\n  if (!silent) {\n    state.pos = labelStart;\n    state.posMax = labelEnd;\n\n    token        = state.push('link_open', 'a', 1);\n    token.attrs  = attrs = [ [ 'href', href ] ];\n    if (title) {\n      attrs.push([ 'title', title ]);\n    }\n\n    state.md.inline.tokenize(state);\n\n    token        = state.push('link_close', 'a', -1);\n  }\n\n  state.pos = pos;\n  state.posMax = max;\n  return true;\n};\n\n},{\"../common/utils\":4}],46:[function(require,module,exports){\n// Proceess '\\n'\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function newline(state, silent) {\n  var pmax, max, pos = state.pos;\n\n  if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n  pmax = state.pending.length - 1;\n  max = state.posMax;\n\n  // '  \\n' -> hardbreak\n  // Lookup in pending chars is bad practice! Don't copy to other rules!\n  // Pending string is stored in concat mode, indexed lookups will cause\n  // convertion to flat mode.\n  if (!silent) {\n    if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n      if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n        state.pending = state.pending.replace(/ +$/, '');\n        state.push('hardbreak', 'br', 0);\n      } else {\n        state.pending = state.pending.slice(0, -1);\n        state.push('softbreak', 'br', 0);\n      }\n\n    } else {\n      state.push('softbreak', 'br', 0);\n    }\n  }\n\n  pos++;\n\n  // skip heading spaces for next line\n  while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++; }\n\n  state.pos = pos;\n  return true;\n};\n\n},{\"../common/utils\":4}],47:[function(require,module,exports){\n// Inline parser state\n\n'use strict';\n\n\nvar Token          = require('../token');\nvar isWhiteSpace   = require('../common/utils').isWhiteSpace;\nvar isPunctChar    = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n  this.src = src;\n  this.env = env;\n  this.md = md;\n  this.tokens = outTokens;\n  this.tokens_meta = Array(outTokens.length);\n\n  this.pos = 0;\n  this.posMax = this.src.length;\n  this.level = 0;\n  this.pending = '';\n  this.pendingLevel = 0;\n\n  // Stores { start: end } pairs. Useful for backtrack\n  // optimization of pairs parse (emphasis, strikes).\n  this.cache = {};\n\n  // List of emphasis-like delimiters for current tag\n  this.delimiters = [];\n\n  // Stack of delimiter lists for upper level tags\n  this._prev_delimiters = [];\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n  var token = new Token('text', '', 0);\n  token.content = this.pending;\n  token.level = this.pendingLevel;\n  this.tokens.push(token);\n  this.pending = '';\n  return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n  if (this.pending) {\n    this.pushPending();\n  }\n\n  var token = new Token(type, tag, nesting);\n  var token_meta = null;\n\n  if (nesting < 0) {\n    // closing tag\n    this.level--;\n    this.delimiters = this._prev_delimiters.pop();\n  }\n\n  token.level = this.level;\n\n  if (nesting > 0) {\n    // opening tag\n    this.level++;\n    this._prev_delimiters.push(this.delimiters);\n    this.delimiters = [];\n    token_meta = { delimiters: this.delimiters };\n  }\n\n  this.pendingLevel = this.level;\n  this.tokens.push(token);\n  this.tokens_meta.push(token_meta);\n  return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n//  - start - position to scan from (it should point at a valid marker);\n//  - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n  var pos = start, lastChar, nextChar, count, can_open, can_close,\n      isLastWhiteSpace, isLastPunctChar,\n      isNextWhiteSpace, isNextPunctChar,\n      left_flanking = true,\n      right_flanking = true,\n      max = this.posMax,\n      marker = this.src.charCodeAt(start);\n\n  // treat beginning of the line as a whitespace\n  lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n  while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n  count = pos - start;\n\n  // treat end of the line as a whitespace\n  nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n  isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n  isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n  isLastWhiteSpace = isWhiteSpace(lastChar);\n  isNextWhiteSpace = isWhiteSpace(nextChar);\n\n  if (isNextWhiteSpace) {\n    left_flanking = false;\n  } else if (isNextPunctChar) {\n    if (!(isLastWhiteSpace || isLastPunctChar)) {\n      left_flanking = false;\n    }\n  }\n\n  if (isLastWhiteSpace) {\n    right_flanking = false;\n  } else if (isLastPunctChar) {\n    if (!(isNextWhiteSpace || isNextPunctChar)) {\n      right_flanking = false;\n    }\n  }\n\n  if (!canSplitWord) {\n    can_open  = left_flanking  && (!right_flanking || isLastPunctChar);\n    can_close = right_flanking && (!left_flanking  || isNextPunctChar);\n  } else {\n    can_open  = left_flanking;\n    can_close = right_flanking;\n  }\n\n  return {\n    can_open:  can_open,\n    can_close: can_close,\n    length:    count\n  };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n\n},{\"../common/utils\":4,\"../token\":51}],48:[function(require,module,exports){\n// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n  var i, scanned, token, len, ch,\n      start = state.pos,\n      marker = state.src.charCodeAt(start);\n\n  if (silent) { return false; }\n\n  if (marker !== 0x7E/* ~ */) { return false; }\n\n  scanned = state.scanDelims(state.pos, true);\n  len = scanned.length;\n  ch = String.fromCharCode(marker);\n\n  if (len < 2) { return false; }\n\n  if (len % 2) {\n    token         = state.push('text', '', 0);\n    token.content = ch;\n    len--;\n  }\n\n  for (i = 0; i < len; i += 2) {\n    token         = state.push('text', '', 0);\n    token.content = ch + ch;\n\n    state.delimiters.push({\n      marker: marker,\n      length: 0, // disable \"rule of 3\" length checks meant for emphasis\n      jump:   i,\n      token:  state.tokens.length - 1,\n      end:    -1,\n      open:   scanned.can_open,\n      close:  scanned.can_close\n    });\n  }\n\n  state.pos += scanned.length;\n\n  return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n  var i, j,\n      startDelim,\n      endDelim,\n      token,\n      loneMarkers = [],\n      max = delimiters.length;\n\n  for (i = 0; i < max; i++) {\n    startDelim = delimiters[i];\n\n    if (startDelim.marker !== 0x7E/* ~ */) {\n      continue;\n    }\n\n    if (startDelim.end === -1) {\n      continue;\n    }\n\n    endDelim = delimiters[startDelim.end];\n\n    token         = state.tokens[startDelim.token];\n    token.type    = 's_open';\n    token.tag     = 's';\n    token.nesting = 1;\n    token.markup  = '~~';\n    token.content = '';\n\n    token         = state.tokens[endDelim.token];\n    token.type    = 's_close';\n    token.tag     = 's';\n    token.nesting = -1;\n    token.markup  = '~~';\n    token.content = '';\n\n    if (state.tokens[endDelim.token - 1].type === 'text' &&\n        state.tokens[endDelim.token - 1].content === '~') {\n\n      loneMarkers.push(endDelim.token - 1);\n    }\n  }\n\n  // If a marker sequence has an odd number of characters, it's splitted\n  // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n  // start of the sequence.\n  //\n  // So, we have to move all those markers after subsequent s_close tags.\n  //\n  while (loneMarkers.length) {\n    i = loneMarkers.pop();\n    j = i + 1;\n\n    while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n      j++;\n    }\n\n    j--;\n\n    if (i !== j) {\n      token = state.tokens[j];\n      state.tokens[j] = state.tokens[i];\n      state.tokens[i] = token;\n    }\n  }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n  var curr,\n      tokens_meta = state.tokens_meta,\n      max = state.tokens_meta.length;\n\n  postProcess(state, state.delimiters);\n\n  for (curr = 0; curr < max; curr++) {\n    if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n      postProcess(state, tokens_meta[curr].delimiters);\n    }\n  }\n};\n\n},{}],49:[function(require,module,exports){\n// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n  switch (ch) {\n    case 0x0A/* \\n */:\n    case 0x21/* ! */:\n    case 0x23/* # */:\n    case 0x24/* $ */:\n    case 0x25/* % */:\n    case 0x26/* & */:\n    case 0x2A/* * */:\n    case 0x2B/* + */:\n    case 0x2D/* - */:\n    case 0x3A/* : */:\n    case 0x3C/* < */:\n    case 0x3D/* = */:\n    case 0x3E/* > */:\n    case 0x40/* @ */:\n    case 0x5B/* [ */:\n    case 0x5C/* \\ */:\n    case 0x5D/* ] */:\n    case 0x5E/* ^ */:\n    case 0x5F/* _ */:\n    case 0x60/* ` */:\n    case 0x7B/* { */:\n    case 0x7D/* } */:\n    case 0x7E/* ~ */:\n      return true;\n    default:\n      return false;\n  }\n}\n\nmodule.exports = function text(state, silent) {\n  var pos = state.pos;\n\n  while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n    pos++;\n  }\n\n  if (pos === state.pos) { return false; }\n\n  if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n  state.pos = pos;\n\n  return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n  var pos = state.pos,\n      idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n  // first char is terminator -> empty text\n  if (idx === 0) { return false; }\n\n  // no terminator -> text till end of string\n  if (idx < 0) {\n    if (!silent) { state.pending += state.src.slice(pos); }\n    state.pos = state.src.length;\n    return true;\n  }\n\n  if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n  state.pos += idx;\n\n  return true;\n};*/\n\n},{}],50:[function(require,module,exports){\n// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n'use strict';\n\n\nmodule.exports = function text_collapse(state) {\n  var curr, last,\n      level = 0,\n      tokens = state.tokens,\n      max = state.tokens.length;\n\n  for (curr = last = 0; curr < max; curr++) {\n    // re-calculate levels after emphasis/strikethrough turns some text nodes\n    // into opening/closing tags\n    if (tokens[curr].nesting < 0) level--; // closing tag\n    tokens[curr].level = level;\n    if (tokens[curr].nesting > 0) level++; // opening tag\n\n    if (tokens[curr].type === 'text' &&\n        curr + 1 < max &&\n        tokens[curr + 1].type === 'text') {\n\n      // collapse two adjacent text nodes\n      tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n    } else {\n      if (curr !== last) { tokens[last] = tokens[curr]; }\n\n      last++;\n    }\n  }\n\n  if (curr !== last) {\n    tokens.length = last;\n  }\n};\n\n},{}],51:[function(require,module,exports){\n// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n  /**\n   * Token#type -> String\n   *\n   * Type of the token (string, e.g. \"paragraph_open\")\n   **/\n  this.type     = type;\n\n  /**\n   * Token#tag -> String\n   *\n   * html tag name, e.g. \"p\"\n   **/\n  this.tag      = tag;\n\n  /**\n   * Token#attrs -> Array\n   *\n   * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n   **/\n  this.attrs    = null;\n\n  /**\n   * Token#map -> Array\n   *\n   * Source map info. Format: `[ line_begin, line_end ]`\n   **/\n  this.map      = null;\n\n  /**\n   * Token#nesting -> Number\n   *\n   * Level change (number in {-1, 0, 1} set), where:\n   *\n   * -  `1` means the tag is opening\n   * -  `0` means the tag is self-closing\n   * - `-1` means the tag is closing\n   **/\n  this.nesting  = nesting;\n\n  /**\n   * Token#level -> Number\n   *\n   * nesting level, the same as `state.level`\n   **/\n  this.level    = 0;\n\n  /**\n   * Token#children -> Array\n   *\n   * An array of child nodes (inline and img tokens)\n   **/\n  this.children = null;\n\n  /**\n   * Token#content -> String\n   *\n   * In a case of self-closing tag (code, html, fence, etc.),\n   * it has contents of this tag.\n   **/\n  this.content  = '';\n\n  /**\n   * Token#markup -> String\n   *\n   * '*' or '_' for emphasis, fence string for fence, etc.\n   **/\n  this.markup   = '';\n\n  /**\n   * Token#info -> String\n   *\n   * fence infostring\n   **/\n  this.info     = '';\n\n  /**\n   * Token#meta -> Object\n   *\n   * A place for plugins to store an arbitrary data\n   **/\n  this.meta     = null;\n\n  /**\n   * Token#block -> Boolean\n   *\n   * True for block-level tokens, false for inline tokens.\n   * Used in renderer to calculate line breaks\n   **/\n  this.block    = false;\n\n  /**\n   * Token#hidden -> Boolean\n   *\n   * If it's true, ignore this element when rendering. Used for tight lists\n   * to hide paragraphs.\n   **/\n  this.hidden   = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n  var attrs, i, len;\n\n  if (!this.attrs) { return -1; }\n\n  attrs = this.attrs;\n\n  for (i = 0, len = attrs.length; i < len; i++) {\n    if (attrs[i][0] === name) { return i; }\n  }\n  return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n  if (this.attrs) {\n    this.attrs.push(attrData);\n  } else {\n    this.attrs = [ attrData ];\n  }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n  var idx = this.attrIndex(name),\n      attrData = [ name, value ];\n\n  if (idx < 0) {\n    this.attrPush(attrData);\n  } else {\n    this.attrs[idx] = attrData;\n  }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n  var idx = this.attrIndex(name), value = null;\n  if (idx >= 0) {\n    value = this.attrs[idx][1];\n  }\n  return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n  var idx = this.attrIndex(name);\n\n  if (idx < 0) {\n    this.attrPush([ name, value ]);\n  } else {\n    this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n  }\n};\n\n\nmodule.exports = Token;\n\n},{}],52:[function(require,module,exports){\nmodule.exports={ \"Aacute\": \"\\u00C1\", \"aacute\": \"\\u00E1\", \"Abreve\": \"\\u0102\", \"abreve\": \"\\u0103\", \"ac\": \"\\u223E\", \"acd\": \"\\u223F\", \"acE\": \"\\u223E\\u0333\", \"Acirc\": \"\\u00C2\", \"acirc\": \"\\u00E2\", \"acute\": \"\\u00B4\", \"Acy\": \"\\u0410\", \"acy\": \"\\u0430\", \"AElig\": \"\\u00C6\", \"aelig\": \"\\u00E6\", \"af\": \"\\u2061\", \"Afr\": \"\\uD835\\uDD04\", \"afr\": \"\\uD835\\uDD1E\", \"Agrave\": \"\\u00C0\", \"agrave\": \"\\u00E0\", \"alefsym\": \"\\u2135\", \"aleph\": \"\\u2135\", \"Alpha\": \"\\u0391\", \"alpha\": \"\\u03B1\", \"Amacr\": \"\\u0100\", \"amacr\": \"\\u0101\", \"amalg\": \"\\u2A3F\", \"amp\": \"&\", \"AMP\": \"&\", \"andand\": \"\\u2A55\", \"And\": \"\\u2A53\", \"and\": \"\\u2227\", \"andd\": \"\\u2A5C\", \"andslope\": \"\\u2A58\", \"andv\": \"\\u2A5A\", \"ang\": \"\\u2220\", \"ange\": \"\\u29A4\", \"angle\": \"\\u2220\", \"angmsdaa\": \"\\u29A8\", \"angmsdab\": \"\\u29A9\", \"angmsdac\": \"\\u29AA\", \"angmsdad\": \"\\u29AB\", \"angmsdae\": \"\\u29AC\", \"angmsdaf\": \"\\u29AD\", \"angmsdag\": \"\\u29AE\", \"angmsdah\": \"\\u29AF\", \"angmsd\": \"\\u2221\", \"angrt\": \"\\u221F\", \"angrtvb\": \"\\u22BE\", \"angrtvbd\": \"\\u299D\", \"angsph\": \"\\u2222\", \"angst\": \"\\u00C5\", \"angzarr\": \"\\u237C\", \"Aogon\": \"\\u0104\", \"aogon\": \"\\u0105\", \"Aopf\": \"\\uD835\\uDD38\", \"aopf\": \"\\uD835\\uDD52\", \"apacir\": \"\\u2A6F\", \"ap\": \"\\u2248\", \"apE\": \"\\u2A70\", \"ape\": \"\\u224A\", \"apid\": \"\\u224B\", \"apos\": \"'\", \"ApplyFunction\": \"\\u2061\", \"approx\": \"\\u2248\", \"approxeq\": \"\\u224A\", \"Aring\": \"\\u00C5\", \"aring\": \"\\u00E5\", \"Ascr\": \"\\uD835\\uDC9C\", \"ascr\": \"\\uD835\\uDCB6\", \"Assign\": \"\\u2254\", \"ast\": \"*\", \"asymp\": \"\\u2248\", \"asympeq\": \"\\u224D\", \"Atilde\": \"\\u00C3\", \"atilde\": \"\\u00E3\", \"Auml\": \"\\u00C4\", \"auml\": \"\\u00E4\", \"awconint\": \"\\u2233\", \"awint\": \"\\u2A11\", \"backcong\": \"\\u224C\", \"backepsilon\": \"\\u03F6\", \"backprime\": \"\\u2035\", \"backsim\": \"\\u223D\", \"backsimeq\": \"\\u22CD\", \"Backslash\": \"\\u2216\", \"Barv\": \"\\u2AE7\", \"barvee\": \"\\u22BD\", \"barwed\": \"\\u2305\", \"Barwed\": \"\\u2306\", \"barwedge\": \"\\u2305\", \"bbrk\": \"\\u23B5\", \"bbrktbrk\": \"\\u23B6\", \"bcong\": \"\\u224C\", \"Bcy\": \"\\u0411\", \"bcy\": \"\\u0431\", \"bdquo\": \"\\u201E\", \"becaus\": \"\\u2235\", \"because\": \"\\u2235\", \"Because\": \"\\u2235\", \"bemptyv\": \"\\u29B0\", \"bepsi\": \"\\u03F6\", \"bernou\": \"\\u212C\", \"Bernoullis\": \"\\u212C\", \"Beta\": \"\\u0392\", \"beta\": \"\\u03B2\", \"beth\": \"\\u2136\", \"between\": \"\\u226C\", \"Bfr\": \"\\uD835\\uDD05\", \"bfr\": \"\\uD835\\uDD1F\", \"bigcap\": \"\\u22C2\", \"bigcirc\": \"\\u25EF\", \"bigcup\": \"\\u22C3\", \"bigodot\": \"\\u2A00\", \"bigoplus\": \"\\u2A01\", \"bigotimes\": \"\\u2A02\", \"bigsqcup\": \"\\u2A06\", \"bigstar\": \"\\u2605\", \"bigtriangledown\": \"\\u25BD\", \"bigtriangleup\": \"\\u25B3\", \"biguplus\": \"\\u2A04\", \"bigvee\": \"\\u22C1\", \"bigwedge\": \"\\u22C0\", \"bkarow\": \"\\u290D\", \"blacklozenge\": \"\\u29EB\", \"blacksquare\": \"\\u25AA\", \"blacktriangle\": \"\\u25B4\", \"blacktriangledown\": \"\\u25BE\", \"blacktriangleleft\": \"\\u25C2\", \"blacktriangleright\": \"\\u25B8\", \"blank\": \"\\u2423\", \"blk12\": \"\\u2592\", \"blk14\": \"\\u2591\", \"blk34\": \"\\u2593\", \"block\": \"\\u2588\", \"bne\": \"=\\u20E5\", \"bnequiv\": \"\\u2261\\u20E5\", \"bNot\": \"\\u2AED\", \"bnot\": \"\\u2310\", \"Bopf\": \"\\uD835\\uDD39\", \"bopf\": \"\\uD835\\uDD53\", \"bot\": \"\\u22A5\", \"bottom\": \"\\u22A5\", \"bowtie\": \"\\u22C8\", \"boxbox\": \"\\u29C9\", \"boxdl\": \"\\u2510\", \"boxdL\": \"\\u2555\", \"boxDl\": \"\\u2556\", \"boxDL\": \"\\u2557\", \"boxdr\": \"\\u250C\", \"boxdR\": \"\\u2552\", \"boxDr\": \"\\u2553\", \"boxDR\": \"\\u2554\", \"boxh\": \"\\u2500\", \"boxH\": \"\\u2550\", \"boxhd\": \"\\u252C\", \"boxHd\": \"\\u2564\", \"boxhD\": \"\\u2565\", \"boxHD\": \"\\u2566\", \"boxhu\": \"\\u2534\", \"boxHu\": \"\\u2567\", \"boxhU\": \"\\u2568\", \"boxHU\": \"\\u2569\", \"boxminus\": \"\\u229F\", \"boxplus\": \"\\u229E\", \"boxtimes\": \"\\u22A0\", \"boxul\": \"\\u2518\", \"boxuL\": \"\\u255B\", \"boxUl\": \"\\u255C\", \"boxUL\": \"\\u255D\", \"boxur\": \"\\u2514\", \"boxuR\": \"\\u2558\", \"boxUr\": \"\\u2559\", \"boxUR\": \"\\u255A\", \"boxv\": \"\\u2502\", \"boxV\": \"\\u2551\", \"boxvh\": \"\\u253C\", \"boxvH\": \"\\u256A\", \"boxVh\": \"\\u256B\", \"boxVH\": \"\\u256C\", \"boxvl\": \"\\u2524\", \"boxvL\": \"\\u2561\", \"boxVl\": \"\\u2562\", \"boxVL\": \"\\u2563\", \"boxvr\": \"\\u251C\", \"boxvR\": \"\\u255E\", \"boxVr\": \"\\u255F\", \"boxVR\": \"\\u2560\", \"bprime\": \"\\u2035\", \"breve\": \"\\u02D8\", \"Breve\": \"\\u02D8\", \"brvbar\": \"\\u00A6\", \"bscr\": \"\\uD835\\uDCB7\", \"Bscr\": \"\\u212C\", \"bsemi\": \"\\u204F\", \"bsim\": \"\\u223D\", \"bsime\": \"\\u22CD\", \"bsolb\": \"\\u29C5\", \"bsol\": \"\\\\\", \"bsolhsub\": \"\\u27C8\", \"bull\": \"\\u2022\", \"bullet\": \"\\u2022\", \"bump\": \"\\u224E\", \"bumpE\": \"\\u2AAE\", \"bumpe\": \"\\u224F\", \"Bumpeq\": \"\\u224E\", \"bumpeq\": \"\\u224F\", \"Cacute\": \"\\u0106\", \"cacute\": \"\\u0107\", \"capand\": \"\\u2A44\", \"capbrcup\": \"\\u2A49\", \"capcap\": \"\\u2A4B\", \"cap\": \"\\u2229\", \"Cap\": \"\\u22D2\", \"capcup\": \"\\u2A47\", \"capdot\": \"\\u2A40\", \"CapitalDifferentialD\": \"\\u2145\", \"caps\": \"\\u2229\\uFE00\", \"caret\": \"\\u2041\", \"caron\": \"\\u02C7\", \"Cayleys\": \"\\u212D\", \"ccaps\": \"\\u2A4D\", \"Ccaron\": \"\\u010C\", \"ccaron\": \"\\u010D\", \"Ccedil\": \"\\u00C7\", \"ccedil\": \"\\u00E7\", \"Ccirc\": \"\\u0108\", \"ccirc\": \"\\u0109\", \"Cconint\": \"\\u2230\", \"ccups\": \"\\u2A4C\", \"ccupssm\": \"\\u2A50\", \"Cdot\": \"\\u010A\", \"cdot\": \"\\u010B\", \"cedil\": \"\\u00B8\", \"Cedilla\": \"\\u00B8\", \"cemptyv\": \"\\u29B2\", \"cent\": \"\\u00A2\", \"centerdot\": \"\\u00B7\", \"CenterDot\": \"\\u00B7\", \"cfr\": \"\\uD835\\uDD20\", \"Cfr\": \"\\u212D\", \"CHcy\": \"\\u0427\", \"chcy\": \"\\u0447\", \"check\": \"\\u2713\", \"checkmark\": \"\\u2713\", \"Chi\": \"\\u03A7\", \"chi\": \"\\u03C7\", \"circ\": \"\\u02C6\", \"circeq\": \"\\u2257\", \"circlearrowleft\": \"\\u21BA\", \"circlearrowright\": \"\\u21BB\", \"circledast\": \"\\u229B\", \"circledcirc\": \"\\u229A\", \"circleddash\": \"\\u229D\", \"CircleDot\": \"\\u2299\", \"circledR\": \"\\u00AE\", \"circledS\": \"\\u24C8\", \"CircleMinus\": \"\\u2296\", \"CirclePlus\": \"\\u2295\", \"CircleTimes\": \"\\u2297\", \"cir\": \"\\u25CB\", \"cirE\": \"\\u29C3\", \"cire\": \"\\u2257\", \"cirfnint\": \"\\u2A10\", \"cirmid\": \"\\u2AEF\", \"cirscir\": \"\\u29C2\", \"ClockwiseContourIntegral\": \"\\u2232\", \"CloseCurlyDoubleQuote\": \"\\u201D\", \"CloseCurlyQuote\": \"\\u2019\", \"clubs\": \"\\u2663\", \"clubsuit\": \"\\u2663\", \"colon\": \":\", \"Colon\": \"\\u2237\", \"Colone\": \"\\u2A74\", \"colone\": \"\\u2254\", \"coloneq\": \"\\u2254\", \"comma\": \",\", \"commat\": \"@\", \"comp\": \"\\u2201\", \"compfn\": \"\\u2218\", \"complement\": \"\\u2201\", \"complexes\": \"\\u2102\", \"cong\": \"\\u2245\", \"congdot\": \"\\u2A6D\", \"Congruent\": \"\\u2261\", \"conint\": \"\\u222E\", \"Conint\": \"\\u222F\", \"ContourIntegral\": \"\\u222E\", \"copf\": \"\\uD835\\uDD54\", \"Copf\": \"\\u2102\", \"coprod\": \"\\u2210\", \"Coproduct\": \"\\u2210\", \"copy\": \"\\u00A9\", \"COPY\": \"\\u00A9\", \"copysr\": \"\\u2117\", \"CounterClockwiseContourIntegral\": \"\\u2233\", \"crarr\": \"\\u21B5\", \"cross\": \"\\u2717\", \"Cross\": \"\\u2A2F\", \"Cscr\": \"\\uD835\\uDC9E\", \"cscr\": \"\\uD835\\uDCB8\", \"csub\": \"\\u2ACF\", \"csube\": \"\\u2AD1\", \"csup\": \"\\u2AD0\", \"csupe\": \"\\u2AD2\", \"ctdot\": \"\\u22EF\", \"cudarrl\": \"\\u2938\", \"cudarrr\": \"\\u2935\", \"cuepr\": \"\\u22DE\", \"cuesc\": \"\\u22DF\", \"cularr\": \"\\u21B6\", \"cularrp\": \"\\u293D\", \"cupbrcap\": \"\\u2A48\", \"cupcap\": \"\\u2A46\", \"CupCap\": \"\\u224D\", \"cup\": \"\\u222A\", \"Cup\": \"\\u22D3\", \"cupcup\": \"\\u2A4A\", \"cupdot\": \"\\u228D\", \"cupor\": \"\\u2A45\", \"cups\": \"\\u222A\\uFE00\", \"curarr\": \"\\u21B7\", \"curarrm\": \"\\u293C\", \"curlyeqprec\": \"\\u22DE\", \"curlyeqsucc\": \"\\u22DF\", \"curlyvee\": \"\\u22CE\", \"curlywedge\": \"\\u22CF\", \"curren\": \"\\u00A4\", \"curvearrowleft\": \"\\u21B6\", \"curvearrowright\": \"\\u21B7\", \"cuvee\": \"\\u22CE\", \"cuwed\": \"\\u22CF\", \"cwconint\": \"\\u2232\", \"cwint\": \"\\u2231\", \"cylcty\": \"\\u232D\", \"dagger\": \"\\u2020\", \"Dagger\": \"\\u2021\", \"daleth\": \"\\u2138\", \"darr\": \"\\u2193\", \"Darr\": \"\\u21A1\", \"dArr\": \"\\u21D3\", \"dash\": \"\\u2010\", \"Dashv\": \"\\u2AE4\", \"dashv\": \"\\u22A3\", \"dbkarow\": \"\\u290F\", \"dblac\": \"\\u02DD\", \"Dcaron\": \"\\u010E\", \"dcaron\": \"\\u010F\", \"Dcy\": \"\\u0414\", \"dcy\": \"\\u0434\", \"ddagger\": \"\\u2021\", \"ddarr\": \"\\u21CA\", \"DD\": \"\\u2145\", \"dd\": \"\\u2146\", \"DDotrahd\": \"\\u2911\", \"ddotseq\": \"\\u2A77\", \"deg\": \"\\u00B0\", \"Del\": \"\\u2207\", \"Delta\": \"\\u0394\", \"delta\": \"\\u03B4\", \"demptyv\": \"\\u29B1\", \"dfisht\": \"\\u297F\", \"Dfr\": \"\\uD835\\uDD07\", \"dfr\": \"\\uD835\\uDD21\", \"dHar\": \"\\u2965\", \"dharl\": \"\\u21C3\", \"dharr\": \"\\u21C2\", \"DiacriticalAcute\": \"\\u00B4\", \"DiacriticalDot\": \"\\u02D9\", \"DiacriticalDoubleAcute\": \"\\u02DD\", \"DiacriticalGrave\": \"`\", \"DiacriticalTilde\": \"\\u02DC\", \"diam\": \"\\u22C4\", \"diamond\": \"\\u22C4\", \"Diamond\": \"\\u22C4\", \"diamondsuit\": \"\\u2666\", \"diams\": \"\\u2666\", \"die\": \"\\u00A8\", \"DifferentialD\": \"\\u2146\", \"digamma\": \"\\u03DD\", \"disin\": \"\\u22F2\", \"div\": \"\\u00F7\", \"divide\": \"\\u00F7\", \"divideontimes\": \"\\u22C7\", \"divonx\": \"\\u22C7\", \"DJcy\": \"\\u0402\", \"djcy\": \"\\u0452\", \"dlcorn\": \"\\u231E\", \"dlcrop\": \"\\u230D\", \"dollar\": \"$\", \"Dopf\": \"\\uD835\\uDD3B\", \"dopf\": \"\\uD835\\uDD55\", \"Dot\": \"\\u00A8\", \"dot\": \"\\u02D9\", \"DotDot\": \"\\u20DC\", \"doteq\": \"\\u2250\", \"doteqdot\": \"\\u2251\", \"DotEqual\": \"\\u2250\", \"dotminus\": \"\\u2238\", \"dotplus\": \"\\u2214\", \"dotsquare\": \"\\u22A1\", \"doublebarwedge\": \"\\u2306\", \"DoubleContourIntegral\": \"\\u222F\", \"DoubleDot\": \"\\u00A8\", \"DoubleDownArrow\": \"\\u21D3\", \"DoubleLeftArrow\": \"\\u21D0\", \"DoubleLeftRightArrow\": \"\\u21D4\", \"DoubleLeftTee\": \"\\u2AE4\", \"DoubleLongLeftArrow\": \"\\u27F8\", \"DoubleLongLeftRightArrow\": \"\\u27FA\", \"DoubleLongRightArrow\": \"\\u27F9\", \"DoubleRightArrow\": \"\\u21D2\", \"DoubleRightTee\": \"\\u22A8\", \"DoubleUpArrow\": \"\\u21D1\", \"DoubleUpDownArrow\": \"\\u21D5\", \"DoubleVerticalBar\": \"\\u2225\", \"DownArrowBar\": \"\\u2913\", \"downarrow\": \"\\u2193\", \"DownArrow\": \"\\u2193\", \"Downarrow\": \"\\u21D3\", \"DownArrowUpArrow\": \"\\u21F5\", \"DownBreve\": \"\\u0311\", \"downdownarrows\": \"\\u21CA\", \"downharpoonleft\": \"\\u21C3\", \"downharpoonright\": \"\\u21C2\", \"DownLeftRightVector\": \"\\u2950\", \"DownLeftTeeVector\": \"\\u295E\", \"DownLeftVectorBar\": \"\\u2956\", \"DownLeftVector\": \"\\u21BD\", \"DownRightTeeVector\": \"\\u295F\", \"DownRightVectorBar\": \"\\u2957\", \"DownRightVector\": \"\\u21C1\", \"DownTeeArrow\": \"\\u21A7\", \"DownTee\": \"\\u22A4\", \"drbkarow\": \"\\u2910\", \"drcorn\": \"\\u231F\", \"drcrop\": \"\\u230C\", \"Dscr\": \"\\uD835\\uDC9F\", \"dscr\": \"\\uD835\\uDCB9\", \"DScy\": \"\\u0405\", \"dscy\": \"\\u0455\", \"dsol\": \"\\u29F6\", \"Dstrok\": \"\\u0110\", \"dstrok\": \"\\u0111\", \"dtdot\": \"\\u22F1\", \"dtri\": \"\\u25BF\", \"dtrif\": \"\\u25BE\", \"duarr\": \"\\u21F5\", \"duhar\": \"\\u296F\", \"dwangle\": \"\\u29A6\", \"DZcy\": \"\\u040F\", \"dzcy\": \"\\u045F\", \"dzigrarr\": \"\\u27FF\", \"Eacute\": \"\\u00C9\", \"eacute\": \"\\u00E9\", \"easter\": \"\\u2A6E\", \"Ecaron\": \"\\u011A\", \"ecaron\": \"\\u011B\", \"Ecirc\": \"\\u00CA\", \"ecirc\": \"\\u00EA\", \"ecir\": \"\\u2256\", \"ecolon\": \"\\u2255\", \"Ecy\": \"\\u042D\", \"ecy\": \"\\u044D\", \"eDDot\": \"\\u2A77\", \"Edot\": \"\\u0116\", \"edot\": \"\\u0117\", \"eDot\": \"\\u2251\", \"ee\": \"\\u2147\", \"efDot\": \"\\u2252\", \"Efr\": \"\\uD835\\uDD08\", \"efr\": \"\\uD835\\uDD22\", \"eg\": \"\\u2A9A\", \"Egrave\": \"\\u00C8\", \"egrave\": \"\\u00E8\", \"egs\": \"\\u2A96\", \"egsdot\": \"\\u2A98\", \"el\": \"\\u2A99\", \"Element\": \"\\u2208\", \"elinters\": \"\\u23E7\", \"ell\": \"\\u2113\", \"els\": \"\\u2A95\", \"elsdot\": \"\\u2A97\", \"Emacr\": \"\\u0112\", \"emacr\": \"\\u0113\", \"empty\": \"\\u2205\", \"emptyset\": \"\\u2205\", \"EmptySmallSquare\": \"\\u25FB\", \"emptyv\": \"\\u2205\", \"EmptyVerySmallSquare\": \"\\u25AB\", \"emsp13\": \"\\u2004\", \"emsp14\": \"\\u2005\", \"emsp\": \"\\u2003\", \"ENG\": \"\\u014A\", \"eng\": \"\\u014B\", \"ensp\": \"\\u2002\", \"Eogon\": \"\\u0118\", \"eogon\": \"\\u0119\", \"Eopf\": \"\\uD835\\uDD3C\", \"eopf\": \"\\uD835\\uDD56\", \"epar\": \"\\u22D5\", \"eparsl\": \"\\u29E3\", \"eplus\": \"\\u2A71\", \"epsi\": \"\\u03B5\", \"Epsilon\": \"\\u0395\", \"epsilon\": \"\\u03B5\", \"epsiv\": \"\\u03F5\", \"eqcirc\": \"\\u2256\", \"eqcolon\": \"\\u2255\", \"eqsim\": \"\\u2242\", \"eqslantgtr\": \"\\u2A96\", \"eqslantless\": \"\\u2A95\", \"Equal\": \"\\u2A75\", \"equals\": \"=\", \"EqualTilde\": \"\\u2242\", \"equest\": \"\\u225F\", \"Equilibrium\": \"\\u21CC\", \"equiv\": \"\\u2261\", \"equivDD\": \"\\u2A78\", \"eqvparsl\": \"\\u29E5\", \"erarr\": \"\\u2971\", \"erDot\": \"\\u2253\", \"escr\": \"\\u212F\", \"Escr\": \"\\u2130\", \"esdot\": \"\\u2250\", \"Esim\": \"\\u2A73\", \"esim\": \"\\u2242\", \"Eta\": \"\\u0397\", \"eta\": \"\\u03B7\", \"ETH\": \"\\u00D0\", \"eth\": \"\\u00F0\", \"Euml\": \"\\u00CB\", \"euml\": \"\\u00EB\", \"euro\": \"\\u20AC\", \"excl\": \"!\", \"exist\": \"\\u2203\", \"Exists\": \"\\u2203\", \"expectation\": \"\\u2130\", \"exponentiale\": \"\\u2147\", \"ExponentialE\": \"\\u2147\", \"fallingdotseq\": \"\\u2252\", \"Fcy\": \"\\u0424\", \"fcy\": \"\\u0444\", \"female\": \"\\u2640\", \"ffilig\": \"\\uFB03\", \"fflig\": \"\\uFB00\", \"ffllig\": \"\\uFB04\", \"Ffr\": \"\\uD835\\uDD09\", \"ffr\": \"\\uD835\\uDD23\", \"filig\": \"\\uFB01\", \"FilledSmallSquare\": \"\\u25FC\", \"FilledVerySmallSquare\": \"\\u25AA\", \"fjlig\": \"fj\", \"flat\": \"\\u266D\", \"fllig\": \"\\uFB02\", \"fltns\": \"\\u25B1\", \"fnof\": \"\\u0192\", \"Fopf\": \"\\uD835\\uDD3D\", \"fopf\": \"\\uD835\\uDD57\", \"forall\": \"\\u2200\", \"ForAll\": \"\\u2200\", \"fork\": \"\\u22D4\", \"forkv\": \"\\u2AD9\", \"Fouriertrf\": \"\\u2131\", \"fpartint\": \"\\u2A0D\", \"frac12\": \"\\u00BD\", \"frac13\": \"\\u2153\", \"frac14\": \"\\u00BC\", \"frac15\": \"\\u2155\", \"frac16\": \"\\u2159\", \"frac18\": \"\\u215B\", \"frac23\": \"\\u2154\", \"frac25\": \"\\u2156\", \"frac34\": \"\\u00BE\", \"frac35\": \"\\u2157\", \"frac38\": \"\\u215C\", \"frac45\": \"\\u2158\", \"frac56\": \"\\u215A\", \"frac58\": \"\\u215D\", \"frac78\": \"\\u215E\", \"frasl\": \"\\u2044\", \"frown\": \"\\u2322\", \"fscr\": \"\\uD835\\uDCBB\", \"Fscr\": \"\\u2131\", \"gacute\": \"\\u01F5\", \"Gamma\": \"\\u0393\", \"gamma\": \"\\u03B3\", \"Gammad\": \"\\u03DC\", \"gammad\": \"\\u03DD\", \"gap\": \"\\u2A86\", \"Gbreve\": \"\\u011E\", \"gbreve\": \"\\u011F\", \"Gcedil\": \"\\u0122\", \"Gcirc\": \"\\u011C\", \"gcirc\": \"\\u011D\", \"Gcy\": \"\\u0413\", \"gcy\": \"\\u0433\", \"Gdot\": \"\\u0120\", \"gdot\": \"\\u0121\", \"ge\": \"\\u2265\", \"gE\": \"\\u2267\", \"gEl\": \"\\u2A8C\", \"gel\": \"\\u22DB\", \"geq\": \"\\u2265\", \"geqq\": \"\\u2267\", \"geqslant\": \"\\u2A7E\", \"gescc\": \"\\u2AA9\", \"ges\": \"\\u2A7E\", \"gesdot\": \"\\u2A80\", \"gesdoto\": \"\\u2A82\", \"gesdotol\": \"\\u2A84\", \"gesl\": \"\\u22DB\\uFE00\", \"gesles\": \"\\u2A94\", \"Gfr\": \"\\uD835\\uDD0A\", \"gfr\": \"\\uD835\\uDD24\", \"gg\": \"\\u226B\", \"Gg\": \"\\u22D9\", \"ggg\": \"\\u22D9\", \"gimel\": \"\\u2137\", \"GJcy\": \"\\u0403\", \"gjcy\": \"\\u0453\", \"gla\": \"\\u2AA5\", \"gl\": \"\\u2277\", \"glE\": \"\\u2A92\", \"glj\": \"\\u2AA4\", \"gnap\": \"\\u2A8A\", \"gnapprox\": \"\\u2A8A\", \"gne\": \"\\u2A88\", \"gnE\": \"\\u2269\", \"gneq\": \"\\u2A88\", \"gneqq\": \"\\u2269\", \"gnsim\": \"\\u22E7\", \"Gopf\": \"\\uD835\\uDD3E\", \"gopf\": \"\\uD835\\uDD58\", \"grave\": \"`\", \"GreaterEqual\": \"\\u2265\", \"GreaterEqualLess\": \"\\u22DB\", \"GreaterFullEqual\": \"\\u2267\", \"GreaterGreater\": \"\\u2AA2\", \"GreaterLess\": \"\\u2277\", \"GreaterSlantEqual\": \"\\u2A7E\", \"GreaterTilde\": \"\\u2273\", \"Gscr\": \"\\uD835\\uDCA2\", \"gscr\": \"\\u210A\", \"gsim\": \"\\u2273\", \"gsime\": \"\\u2A8E\", \"gsiml\": \"\\u2A90\", \"gtcc\": \"\\u2AA7\", \"gtcir\": \"\\u2A7A\", \"gt\": \">\", \"GT\": \">\", \"Gt\": \"\\u226B\", \"gtdot\": \"\\u22D7\", \"gtlPar\": \"\\u2995\", \"gtquest\": \"\\u2A7C\", \"gtrapprox\": \"\\u2A86\", \"gtrarr\": \"\\u2978\", \"gtrdot\": \"\\u22D7\", \"gtreqless\": \"\\u22DB\", \"gtreqqless\": \"\\u2A8C\", \"gtrless\": \"\\u2277\", \"gtrsim\": \"\\u2273\", \"gvertneqq\": \"\\u2269\\uFE00\", \"gvnE\": \"\\u2269\\uFE00\", \"Hacek\": \"\\u02C7\", \"hairsp\": \"\\u200A\", \"half\": \"\\u00BD\", \"hamilt\": \"\\u210B\", \"HARDcy\": \"\\u042A\", \"hardcy\": \"\\u044A\", \"harrcir\": \"\\u2948\", \"harr\": \"\\u2194\", \"hArr\": \"\\u21D4\", \"harrw\": \"\\u21AD\", \"Hat\": \"^\", \"hbar\": \"\\u210F\", \"Hcirc\": \"\\u0124\", \"hcirc\": \"\\u0125\", \"hearts\": \"\\u2665\", \"heartsuit\": \"\\u2665\", \"hellip\": \"\\u2026\", \"hercon\": \"\\u22B9\", \"hfr\": \"\\uD835\\uDD25\", \"Hfr\": \"\\u210C\", \"HilbertSpace\": \"\\u210B\", \"hksearow\": \"\\u2925\", \"hkswarow\": \"\\u2926\", \"hoarr\": \"\\u21FF\", \"homtht\": \"\\u223B\", \"hookleftarrow\": \"\\u21A9\", \"hookrightarrow\": \"\\u21AA\", \"hopf\": \"\\uD835\\uDD59\", \"Hopf\": \"\\u210D\", \"horbar\": \"\\u2015\", \"HorizontalLine\": \"\\u2500\", \"hscr\": \"\\uD835\\uDCBD\", \"Hscr\": \"\\u210B\", \"hslash\": \"\\u210F\", \"Hstrok\": \"\\u0126\", \"hstrok\": \"\\u0127\", \"HumpDownHump\": \"\\u224E\", \"HumpEqual\": \"\\u224F\", \"hybull\": \"\\u2043\", \"hyphen\": \"\\u2010\", \"Iacute\": \"\\u00CD\", \"iacute\": \"\\u00ED\", \"ic\": \"\\u2063\", \"Icirc\": \"\\u00CE\", \"icirc\": \"\\u00EE\", \"Icy\": \"\\u0418\", \"icy\": \"\\u0438\", \"Idot\": \"\\u0130\", \"IEcy\": \"\\u0415\", \"iecy\": \"\\u0435\", \"iexcl\": \"\\u00A1\", \"iff\": \"\\u21D4\", \"ifr\": \"\\uD835\\uDD26\", \"Ifr\": \"\\u2111\", \"Igrave\": \"\\u00CC\", \"igrave\": \"\\u00EC\", \"ii\": \"\\u2148\", \"iiiint\": \"\\u2A0C\", \"iiint\": \"\\u222D\", \"iinfin\": \"\\u29DC\", \"iiota\": \"\\u2129\", \"IJlig\": \"\\u0132\", \"ijlig\": \"\\u0133\", \"Imacr\": \"\\u012A\", \"imacr\": \"\\u012B\", \"image\": \"\\u2111\", \"ImaginaryI\": \"\\u2148\", \"imagline\": \"\\u2110\", \"imagpart\": \"\\u2111\", \"imath\": \"\\u0131\", \"Im\": \"\\u2111\", \"imof\": \"\\u22B7\", \"imped\": \"\\u01B5\", \"Implies\": \"\\u21D2\", \"incare\": \"\\u2105\", \"in\": \"\\u2208\", \"infin\": \"\\u221E\", \"infintie\": \"\\u29DD\", \"inodot\": \"\\u0131\", \"intcal\": \"\\u22BA\", \"int\": \"\\u222B\", \"Int\": \"\\u222C\", \"integers\": \"\\u2124\", \"Integral\": \"\\u222B\", \"intercal\": \"\\u22BA\", \"Intersection\": \"\\u22C2\", \"intlarhk\": \"\\u2A17\", \"intprod\": \"\\u2A3C\", \"InvisibleComma\": \"\\u2063\", \"InvisibleTimes\": \"\\u2062\", \"IOcy\": \"\\u0401\", \"iocy\": \"\\u0451\", \"Iogon\": \"\\u012E\", \"iogon\": \"\\u012F\", \"Iopf\": \"\\uD835\\uDD40\", \"iopf\": \"\\uD835\\uDD5A\", \"Iota\": \"\\u0399\", \"iota\": \"\\u03B9\", \"iprod\": \"\\u2A3C\", \"iquest\": \"\\u00BF\", \"iscr\": \"\\uD835\\uDCBE\", \"Iscr\": \"\\u2110\", \"isin\": \"\\u2208\", \"isindot\": \"\\u22F5\", \"isinE\": \"\\u22F9\", \"isins\": \"\\u22F4\", \"isinsv\": \"\\u22F3\", \"isinv\": \"\\u2208\", \"it\": \"\\u2062\", \"Itilde\": \"\\u0128\", \"itilde\": \"\\u0129\", \"Iukcy\": \"\\u0406\", \"iukcy\": \"\\u0456\", \"Iuml\": \"\\u00CF\", \"iuml\": \"\\u00EF\", \"Jcirc\": \"\\u0134\", \"jcirc\": \"\\u0135\", \"Jcy\": \"\\u0419\", \"jcy\": \"\\u0439\", \"Jfr\": \"\\uD835\\uDD0D\", \"jfr\": \"\\uD835\\uDD27\", \"jmath\": \"\\u0237\", \"Jopf\": \"\\uD835\\uDD41\", \"jopf\": \"\\uD835\\uDD5B\", \"Jscr\": \"\\uD835\\uDCA5\", \"jscr\": \"\\uD835\\uDCBF\", \"Jsercy\": \"\\u0408\", \"jsercy\": \"\\u0458\", \"Jukcy\": \"\\u0404\", \"jukcy\": \"\\u0454\", \"Kappa\": \"\\u039A\", \"kappa\": \"\\u03BA\", \"kappav\": \"\\u03F0\", \"Kcedil\": \"\\u0136\", \"kcedil\": \"\\u0137\", \"Kcy\": \"\\u041A\", \"kcy\": \"\\u043A\", \"Kfr\": \"\\uD835\\uDD0E\", \"kfr\": \"\\uD835\\uDD28\", \"kgreen\": \"\\u0138\", \"KHcy\": \"\\u0425\", \"khcy\": \"\\u0445\", \"KJcy\": \"\\u040C\", \"kjcy\": \"\\u045C\", \"Kopf\": \"\\uD835\\uDD42\", \"kopf\": \"\\uD835\\uDD5C\", \"Kscr\": \"\\uD835\\uDCA6\", \"kscr\": \"\\uD835\\uDCC0\", \"lAarr\": \"\\u21DA\", \"Lacute\": \"\\u0139\", \"lacute\": \"\\u013A\", \"laemptyv\": \"\\u29B4\", \"lagran\": \"\\u2112\", \"Lambda\": \"\\u039B\", \"lambda\": \"\\u03BB\", \"lang\": \"\\u27E8\", \"Lang\": \"\\u27EA\", \"langd\": \"\\u2991\", \"langle\": \"\\u27E8\", \"lap\": \"\\u2A85\", \"Laplacetrf\": \"\\u2112\", \"laquo\": \"\\u00AB\", \"larrb\": \"\\u21E4\", \"larrbfs\": \"\\u291F\", \"larr\": \"\\u2190\", \"Larr\": \"\\u219E\", \"lArr\": \"\\u21D0\", \"larrfs\": \"\\u291D\", \"larrhk\": \"\\u21A9\", \"larrlp\": \"\\u21AB\", \"larrpl\": \"\\u2939\", \"larrsim\": \"\\u2973\", \"larrtl\": \"\\u21A2\", \"latail\": \"\\u2919\", \"lAtail\": \"\\u291B\", \"lat\": \"\\u2AAB\", \"late\": \"\\u2AAD\", \"lates\": \"\\u2AAD\\uFE00\", \"lbarr\": \"\\u290C\", \"lBarr\": \"\\u290E\", \"lbbrk\": \"\\u2772\", \"lbrace\": \"{\", \"lbrack\": \"[\", \"lbrke\": \"\\u298B\", \"lbrksld\": \"\\u298F\", \"lbrkslu\": \"\\u298D\", \"Lcaron\": \"\\u013D\", \"lcaron\": \"\\u013E\", \"Lcedil\": \"\\u013B\", \"lcedil\": \"\\u013C\", \"lceil\": \"\\u2308\", \"lcub\": \"{\", \"Lcy\": \"\\u041B\", \"lcy\": \"\\u043B\", \"ldca\": \"\\u2936\", \"ldquo\": \"\\u201C\", \"ldquor\": \"\\u201E\", \"ldrdhar\": \"\\u2967\", \"ldrushar\": \"\\u294B\", \"ldsh\": \"\\u21B2\", \"le\": \"\\u2264\", \"lE\": \"\\u2266\", \"LeftAngleBracket\": \"\\u27E8\", \"LeftArrowBar\": \"\\u21E4\", \"leftarrow\": \"\\u2190\", \"LeftArrow\": \"\\u2190\", \"Leftarrow\": \"\\u21D0\", \"LeftArrowRightArrow\": \"\\u21C6\", \"leftarrowtail\": \"\\u21A2\", \"LeftCeiling\": \"\\u2308\", \"LeftDoubleBracket\": \"\\u27E6\", \"LeftDownTeeVector\": \"\\u2961\", \"LeftDownVectorBar\": \"\\u2959\", \"LeftDownVector\": \"\\u21C3\", \"LeftFloor\": \"\\u230A\", \"leftharpoondown\": \"\\u21BD\", \"leftharpoonup\": \"\\u21BC\", \"leftleftarrows\": \"\\u21C7\", \"leftrightarrow\": \"\\u2194\", \"LeftRightArrow\": \"\\u2194\", \"Leftrightarrow\": \"\\u21D4\", \"leftrightarrows\": \"\\u21C6\", \"leftrightharpoons\": \"\\u21CB\", \"leftrightsquigarrow\": \"\\u21AD\", \"LeftRightVector\": \"\\u294E\", \"LeftTeeArrow\": \"\\u21A4\", \"LeftTee\": \"\\u22A3\", \"LeftTeeVector\": \"\\u295A\", \"leftthreetimes\": \"\\u22CB\", \"LeftTriangleBar\": \"\\u29CF\", \"LeftTriangle\": \"\\u22B2\", \"LeftTriangleEqual\": \"\\u22B4\", \"LeftUpDownVector\": \"\\u2951\", \"LeftUpTeeVector\": \"\\u2960\", \"LeftUpVectorBar\": \"\\u2958\", \"LeftUpVector\": \"\\u21BF\", \"LeftVectorBar\": \"\\u2952\", \"LeftVector\": \"\\u21BC\", \"lEg\": \"\\u2A8B\", \"leg\": \"\\u22DA\", \"leq\": \"\\u2264\", \"leqq\": \"\\u2266\", \"leqslant\": \"\\u2A7D\", \"lescc\": \"\\u2AA8\", \"les\": \"\\u2A7D\", \"lesdot\": \"\\u2A7F\", \"lesdoto\": \"\\u2A81\", \"lesdotor\": \"\\u2A83\", \"lesg\": \"\\u22DA\\uFE00\", \"lesges\": \"\\u2A93\", \"lessapprox\": \"\\u2A85\", \"lessdot\": \"\\u22D6\", \"lesseqgtr\": \"\\u22DA\", \"lesseqqgtr\": \"\\u2A8B\", \"LessEqualGreater\": \"\\u22DA\", \"LessFullEqual\": \"\\u2266\", \"LessGreater\": \"\\u2276\", \"lessgtr\": \"\\u2276\", \"LessLess\": \"\\u2AA1\", \"lesssim\": \"\\u2272\", \"LessSlantEqual\": \"\\u2A7D\", \"LessTilde\": \"\\u2272\", \"lfisht\": \"\\u297C\", \"lfloor\": \"\\u230A\", \"Lfr\": \"\\uD835\\uDD0F\", \"lfr\": \"\\uD835\\uDD29\", \"lg\": \"\\u2276\", \"lgE\": \"\\u2A91\", \"lHar\": \"\\u2962\", \"lhard\": \"\\u21BD\", \"lharu\": \"\\u21BC\", \"lharul\": \"\\u296A\", \"lhblk\": \"\\u2584\", \"LJcy\": \"\\u0409\", \"ljcy\": \"\\u0459\", \"llarr\": \"\\u21C7\", \"ll\": \"\\u226A\", \"Ll\": \"\\u22D8\", \"llcorner\": \"\\u231E\", \"Lleftarrow\": \"\\u21DA\", \"llhard\": \"\\u296B\", \"lltri\": \"\\u25FA\", \"Lmidot\": \"\\u013F\", \"lmidot\": \"\\u0140\", \"lmoustache\": \"\\u23B0\", \"lmoust\": \"\\u23B0\", \"lnap\": \"\\u2A89\", \"lnapprox\": \"\\u2A89\", \"lne\": \"\\u2A87\", \"lnE\": \"\\u2268\", \"lneq\": \"\\u2A87\", \"lneqq\": \"\\u2268\", \"lnsim\": \"\\u22E6\", \"loang\": \"\\u27EC\", \"loarr\": \"\\u21FD\", \"lobrk\": \"\\u27E6\", \"longleftarrow\": \"\\u27F5\", \"LongLeftArrow\": \"\\u27F5\", \"Longleftarrow\": \"\\u27F8\", \"longleftrightarrow\": \"\\u27F7\", \"LongLeftRightArrow\": \"\\u27F7\", \"Longleftrightarrow\": \"\\u27FA\", \"longmapsto\": \"\\u27FC\", \"longrightarrow\": \"\\u27F6\", \"LongRightArrow\": \"\\u27F6\", \"Longrightarrow\": \"\\u27F9\", \"looparrowleft\": \"\\u21AB\", \"looparrowright\": \"\\u21AC\", \"lopar\": \"\\u2985\", \"Lopf\": \"\\uD835\\uDD43\", \"lopf\": \"\\uD835\\uDD5D\", \"loplus\": \"\\u2A2D\", \"lotimes\": \"\\u2A34\", \"lowast\": \"\\u2217\", \"lowbar\": \"_\", \"LowerLeftArrow\": \"\\u2199\", \"LowerRightArrow\": \"\\u2198\", \"loz\": \"\\u25CA\", \"lozenge\": \"\\u25CA\", \"lozf\": \"\\u29EB\", \"lpar\": \"(\", \"lparlt\": \"\\u2993\", \"lrarr\": \"\\u21C6\", \"lrcorner\": \"\\u231F\", \"lrhar\": \"\\u21CB\", \"lrhard\": \"\\u296D\", \"lrm\": \"\\u200E\", \"lrtri\": \"\\u22BF\", \"lsaquo\": \"\\u2039\", \"lscr\": \"\\uD835\\uDCC1\", \"Lscr\": \"\\u2112\", \"lsh\": \"\\u21B0\", \"Lsh\": \"\\u21B0\", \"lsim\": \"\\u2272\", \"lsime\": \"\\u2A8D\", \"lsimg\": \"\\u2A8F\", \"lsqb\": \"[\", \"lsquo\": \"\\u2018\", \"lsquor\": \"\\u201A\", \"Lstrok\": \"\\u0141\", \"lstrok\": \"\\u0142\", \"ltcc\": \"\\u2AA6\", \"ltcir\": \"\\u2A79\", \"lt\": \"<\", \"LT\": \"<\", \"Lt\": \"\\u226A\", \"ltdot\": \"\\u22D6\", \"lthree\": \"\\u22CB\", \"ltimes\": \"\\u22C9\", \"ltlarr\": \"\\u2976\", \"ltquest\": \"\\u2A7B\", \"ltri\": \"\\u25C3\", \"ltrie\": \"\\u22B4\", \"ltrif\": \"\\u25C2\", \"ltrPar\": \"\\u2996\", \"lurdshar\": \"\\u294A\", \"luruhar\": \"\\u2966\", \"lvertneqq\": \"\\u2268\\uFE00\", \"lvnE\": \"\\u2268\\uFE00\", \"macr\": \"\\u00AF\", \"male\": \"\\u2642\", \"malt\": \"\\u2720\", \"maltese\": \"\\u2720\", \"Map\": \"\\u2905\", \"map\": \"\\u21A6\", \"mapsto\": \"\\u21A6\", \"mapstodown\": \"\\u21A7\", \"mapstoleft\": \"\\u21A4\", \"mapstoup\": \"\\u21A5\", \"marker\": \"\\u25AE\", \"mcomma\": \"\\u2A29\", \"Mcy\": \"\\u041C\", \"mcy\": \"\\u043C\", \"mdash\": \"\\u2014\", \"mDDot\": \"\\u223A\", \"measuredangle\": \"\\u2221\", \"MediumSpace\": \"\\u205F\", \"Mellintrf\": \"\\u2133\", \"Mfr\": \"\\uD835\\uDD10\", \"mfr\": \"\\uD835\\uDD2A\", \"mho\": \"\\u2127\", \"micro\": \"\\u00B5\", \"midast\": \"*\", \"midcir\": \"\\u2AF0\", \"mid\": \"\\u2223\", \"middot\": \"\\u00B7\", \"minusb\": \"\\u229F\", \"minus\": \"\\u2212\", \"minusd\": \"\\u2238\", \"minusdu\": \"\\u2A2A\", \"MinusPlus\": \"\\u2213\", \"mlcp\": \"\\u2ADB\", \"mldr\": \"\\u2026\", \"mnplus\": \"\\u2213\", \"models\": \"\\u22A7\", \"Mopf\": \"\\uD835\\uDD44\", \"mopf\": \"\\uD835\\uDD5E\", \"mp\": \"\\u2213\", \"mscr\": \"\\uD835\\uDCC2\", \"Mscr\": \"\\u2133\", \"mstpos\": \"\\u223E\", \"Mu\": \"\\u039C\", \"mu\": \"\\u03BC\", \"multimap\": \"\\u22B8\", \"mumap\": \"\\u22B8\", \"nabla\": \"\\u2207\", \"Nacute\": \"\\u0143\", \"nacute\": \"\\u0144\", \"nang\": \"\\u2220\\u20D2\", \"nap\": \"\\u2249\", \"napE\": \"\\u2A70\\u0338\", \"napid\": \"\\u224B\\u0338\", \"napos\": \"\\u0149\", \"napprox\": \"\\u2249\", \"natural\": \"\\u266E\", \"naturals\": \"\\u2115\", \"natur\": \"\\u266E\", \"nbsp\": \"\\u00A0\", \"nbump\": \"\\u224E\\u0338\", \"nbumpe\": \"\\u224F\\u0338\", \"ncap\": \"\\u2A43\", \"Ncaron\": \"\\u0147\", \"ncaron\": \"\\u0148\", \"Ncedil\": \"\\u0145\", \"ncedil\": \"\\u0146\", \"ncong\": \"\\u2247\", \"ncongdot\": \"\\u2A6D\\u0338\", \"ncup\": \"\\u2A42\", \"Ncy\": \"\\u041D\", \"ncy\": \"\\u043D\", \"ndash\": \"\\u2013\", \"nearhk\": \"\\u2924\", \"nearr\": \"\\u2197\", \"neArr\": \"\\u21D7\", \"nearrow\": \"\\u2197\", \"ne\": \"\\u2260\", \"nedot\": \"\\u2250\\u0338\", \"NegativeMediumSpace\": \"\\u200B\", \"NegativeThickSpace\": \"\\u200B\", \"NegativeThinSpace\": \"\\u200B\", \"NegativeVeryThinSpace\": \"\\u200B\", \"nequiv\": \"\\u2262\", \"nesear\": \"\\u2928\", \"nesim\": \"\\u2242\\u0338\", \"NestedGreaterGreater\": \"\\u226B\", \"NestedLessLess\": \"\\u226A\", \"NewLine\": \"\\n\", \"nexist\": \"\\u2204\", \"nexists\": \"\\u2204\", \"Nfr\": \"\\uD835\\uDD11\", \"nfr\": \"\\uD835\\uDD2B\", \"ngE\": \"\\u2267\\u0338\", \"nge\": \"\\u2271\", \"ngeq\": \"\\u2271\", \"ngeqq\": \"\\u2267\\u0338\", \"ngeqslant\": \"\\u2A7E\\u0338\", \"nges\": \"\\u2A7E\\u0338\", \"nGg\": \"\\u22D9\\u0338\", \"ngsim\": \"\\u2275\", \"nGt\": \"\\u226B\\u20D2\", \"ngt\": \"\\u226F\", \"ngtr\": \"\\u226F\", \"nGtv\": \"\\u226B\\u0338\", \"nharr\": \"\\u21AE\", \"nhArr\": \"\\u21CE\", \"nhpar\": \"\\u2AF2\", \"ni\": \"\\u220B\", \"nis\": \"\\u22FC\", \"nisd\": \"\\u22FA\", \"niv\": \"\\u220B\", \"NJcy\": \"\\u040A\", \"njcy\": \"\\u045A\", \"nlarr\": \"\\u219A\", \"nlArr\": \"\\u21CD\", \"nldr\": \"\\u2025\", \"nlE\": \"\\u2266\\u0338\", \"nle\": \"\\u2270\", \"nleftarrow\": \"\\u219A\", \"nLeftarrow\": \"\\u21CD\", \"nleftrightarrow\": \"\\u21AE\", \"nLeftrightarrow\": \"\\u21CE\", \"nleq\": \"\\u2270\", \"nleqq\": \"\\u2266\\u0338\", \"nleqslant\": \"\\u2A7D\\u0338\", \"nles\": \"\\u2A7D\\u0338\", \"nless\": \"\\u226E\", \"nLl\": \"\\u22D8\\u0338\", \"nlsim\": \"\\u2274\", \"nLt\": \"\\u226A\\u20D2\", \"nlt\": \"\\u226E\", \"nltri\": \"\\u22EA\", \"nltrie\": \"\\u22EC\", \"nLtv\": \"\\u226A\\u0338\", \"nmid\": \"\\u2224\", \"NoBreak\": \"\\u2060\", \"NonBreakingSpace\": \"\\u00A0\", \"nopf\": \"\\uD835\\uDD5F\", \"Nopf\": \"\\u2115\", \"Not\": \"\\u2AEC\", \"not\": \"\\u00AC\", \"NotCongruent\": \"\\u2262\", \"NotCupCap\": \"\\u226D\", \"NotDoubleVerticalBar\": \"\\u2226\", \"NotElement\": \"\\u2209\", \"NotEqual\": \"\\u2260\", \"NotEqualTilde\": \"\\u2242\\u0338\", \"NotExists\": \"\\u2204\", \"NotGreater\": \"\\u226F\", \"NotGreaterEqual\": \"\\u2271\", \"NotGreaterFullEqual\": \"\\u2267\\u0338\", \"NotGreaterGreater\": \"\\u226B\\u0338\", \"NotGreaterLess\": \"\\u2279\", \"NotGreaterSlantEqual\": \"\\u2A7E\\u0338\", \"NotGreaterTilde\": \"\\u2275\", \"NotHumpDownHump\": \"\\u224E\\u0338\", \"NotHumpEqual\": \"\\u224F\\u0338\", \"notin\": \"\\u2209\", \"notindot\": \"\\u22F5\\u0338\", \"notinE\": \"\\u22F9\\u0338\", \"notinva\": \"\\u2209\", \"notinvb\": \"\\u22F7\", \"notinvc\": \"\\u22F6\", \"NotLeftTriangleBar\": \"\\u29CF\\u0338\", \"NotLeftTriangle\": \"\\u22EA\", \"NotLeftTriangleEqual\": \"\\u22EC\", \"NotLess\": \"\\u226E\", \"NotLessEqual\": \"\\u2270\", \"NotLessGreater\": \"\\u2278\", \"NotLessLess\": \"\\u226A\\u0338\", \"NotLessSlantEqual\": \"\\u2A7D\\u0338\", \"NotLessTilde\": \"\\u2274\", \"NotNestedGreaterGreater\": \"\\u2AA2\\u0338\", \"NotNestedLessLess\": \"\\u2AA1\\u0338\", \"notni\": \"\\u220C\", \"notniva\": \"\\u220C\", \"notnivb\": \"\\u22FE\", \"notnivc\": \"\\u22FD\", \"NotPrecedes\": \"\\u2280\", \"NotPrecedesEqual\": \"\\u2AAF\\u0338\", \"NotPrecedesSlantEqual\": \"\\u22E0\", \"NotReverseElement\": \"\\u220C\", \"NotRightTriangleBar\": \"\\u29D0\\u0338\", \"NotRightTriangle\": \"\\u22EB\", \"NotRightTriangleEqual\": \"\\u22ED\", \"NotSquareSubset\": \"\\u228F\\u0338\", \"NotSquareSubsetEqual\": \"\\u22E2\", \"NotSquareSuperset\": \"\\u2290\\u0338\", \"NotSquareSupersetEqual\": \"\\u22E3\", \"NotSubset\": \"\\u2282\\u20D2\", \"NotSubsetEqual\": \"\\u2288\", \"NotSucceeds\": \"\\u2281\", \"NotSucceedsEqual\": \"\\u2AB0\\u0338\", \"NotSucceedsSlantEqual\": \"\\u22E1\", \"NotSucceedsTilde\": \"\\u227F\\u0338\", \"NotSuperset\": \"\\u2283\\u20D2\", \"NotSupersetEqual\": \"\\u2289\", \"NotTilde\": \"\\u2241\", \"NotTildeEqual\": \"\\u2244\", \"NotTildeFullEqual\": \"\\u2247\", \"NotTildeTilde\": \"\\u2249\", \"NotVerticalBar\": \"\\u2224\", \"nparallel\": \"\\u2226\", \"npar\": \"\\u2226\", \"nparsl\": \"\\u2AFD\\u20E5\", \"npart\": \"\\u2202\\u0338\", \"npolint\": \"\\u2A14\", \"npr\": \"\\u2280\", \"nprcue\": \"\\u22E0\", \"nprec\": \"\\u2280\", \"npreceq\": \"\\u2AAF\\u0338\", \"npre\": \"\\u2AAF\\u0338\", \"nrarrc\": \"\\u2933\\u0338\", \"nrarr\": \"\\u219B\", \"nrArr\": \"\\u21CF\", \"nrarrw\": \"\\u219D\\u0338\", \"nrightarrow\": \"\\u219B\", \"nRightarrow\": \"\\u21CF\", \"nrtri\": \"\\u22EB\", \"nrtrie\": \"\\u22ED\", \"nsc\": \"\\u2281\", \"nsccue\": \"\\u22E1\", \"nsce\": \"\\u2AB0\\u0338\", \"Nscr\": \"\\uD835\\uDCA9\", \"nscr\": \"\\uD835\\uDCC3\", \"nshortmid\": \"\\u2224\", \"nshortparallel\": \"\\u2226\", \"nsim\": \"\\u2241\", \"nsime\": \"\\u2244\", \"nsimeq\": \"\\u2244\", \"nsmid\": \"\\u2224\", \"nspar\": \"\\u2226\", \"nsqsube\": \"\\u22E2\", \"nsqsupe\": \"\\u22E3\", \"nsub\": \"\\u2284\", \"nsubE\": \"\\u2AC5\\u0338\", \"nsube\": \"\\u2288\", \"nsubset\": \"\\u2282\\u20D2\", \"nsubseteq\": \"\\u2288\", \"nsubseteqq\": \"\\u2AC5\\u0338\", \"nsucc\": \"\\u2281\", \"nsucceq\": \"\\u2AB0\\u0338\", \"nsup\": \"\\u2285\", \"nsupE\": \"\\u2AC6\\u0338\", \"nsupe\": \"\\u2289\", \"nsupset\": \"\\u2283\\u20D2\", \"nsupseteq\": \"\\u2289\", \"nsupseteqq\": \"\\u2AC6\\u0338\", \"ntgl\": \"\\u2279\", \"Ntilde\": \"\\u00D1\", \"ntilde\": \"\\u00F1\", \"ntlg\": \"\\u2278\", \"ntriangleleft\": \"\\u22EA\", \"ntrianglelefteq\": \"\\u22EC\", \"ntriangleright\": \"\\u22EB\", \"ntrianglerighteq\": \"\\u22ED\", \"Nu\": \"\\u039D\", \"nu\": \"\\u03BD\", \"num\": \"#\", \"numero\": \"\\u2116\", \"numsp\": \"\\u2007\", \"nvap\": \"\\u224D\\u20D2\", \"nvdash\": \"\\u22AC\", \"nvDash\": \"\\u22AD\", \"nVdash\": \"\\u22AE\", \"nVDash\": \"\\u22AF\", \"nvge\": \"\\u2265\\u20D2\", \"nvgt\": \">\\u20D2\", \"nvHarr\": \"\\u2904\", \"nvinfin\": \"\\u29DE\", \"nvlArr\": \"\\u2902\", \"nvle\": \"\\u2264\\u20D2\", \"nvlt\": \"<\\u20D2\", \"nvltrie\": \"\\u22B4\\u20D2\", \"nvrArr\": \"\\u2903\", \"nvrtrie\": \"\\u22B5\\u20D2\", \"nvsim\": \"\\u223C\\u20D2\", \"nwarhk\": \"\\u2923\", \"nwarr\": \"\\u2196\", \"nwArr\": \"\\u21D6\", \"nwarrow\": \"\\u2196\", \"nwnear\": \"\\u2927\", \"Oacute\": \"\\u00D3\", \"oacute\": \"\\u00F3\", \"oast\": \"\\u229B\", \"Ocirc\": \"\\u00D4\", \"ocirc\": \"\\u00F4\", \"ocir\": \"\\u229A\", \"Ocy\": \"\\u041E\", \"ocy\": \"\\u043E\", \"odash\": \"\\u229D\", \"Odblac\": \"\\u0150\", \"odblac\": \"\\u0151\", \"odiv\": \"\\u2A38\", \"odot\": \"\\u2299\", \"odsold\": \"\\u29BC\", \"OElig\": \"\\u0152\", \"oelig\": \"\\u0153\", \"ofcir\": \"\\u29BF\", \"Ofr\": \"\\uD835\\uDD12\", \"ofr\": \"\\uD835\\uDD2C\", \"ogon\": \"\\u02DB\", \"Ograve\": \"\\u00D2\", \"ograve\": \"\\u00F2\", \"ogt\": \"\\u29C1\", \"ohbar\": \"\\u29B5\", \"ohm\": \"\\u03A9\", \"oint\": \"\\u222E\", \"olarr\": \"\\u21BA\", \"olcir\": \"\\u29BE\", \"olcross\": \"\\u29BB\", \"oline\": \"\\u203E\", \"olt\": \"\\u29C0\", \"Omacr\": \"\\u014C\", \"omacr\": \"\\u014D\", \"Omega\": \"\\u03A9\", \"omega\": \"\\u03C9\", \"Omicron\": \"\\u039F\", \"omicron\": \"\\u03BF\", \"omid\": \"\\u29B6\", \"ominus\": \"\\u2296\", \"Oopf\": \"\\uD835\\uDD46\", \"oopf\": \"\\uD835\\uDD60\", \"opar\": \"\\u29B7\", \"OpenCurlyDoubleQuote\": \"\\u201C\", \"OpenCurlyQuote\": \"\\u2018\", \"operp\": \"\\u29B9\", \"oplus\": \"\\u2295\", \"orarr\": \"\\u21BB\", \"Or\": \"\\u2A54\", \"or\": \"\\u2228\", \"ord\": \"\\u2A5D\", \"order\": \"\\u2134\", \"orderof\": \"\\u2134\", \"ordf\": \"\\u00AA\", \"ordm\": \"\\u00BA\", \"origof\": \"\\u22B6\", \"oror\": \"\\u2A56\", \"orslope\": \"\\u2A57\", \"orv\": \"\\u2A5B\", \"oS\": \"\\u24C8\", \"Oscr\": \"\\uD835\\uDCAA\", \"oscr\": \"\\u2134\", \"Oslash\": \"\\u00D8\", \"oslash\": \"\\u00F8\", \"osol\": \"\\u2298\", \"Otilde\": \"\\u00D5\", \"otilde\": \"\\u00F5\", \"otimesas\": \"\\u2A36\", \"Otimes\": \"\\u2A37\", \"otimes\": \"\\u2297\", \"Ouml\": \"\\u00D6\", \"ouml\": \"\\u00F6\", \"ovbar\": \"\\u233D\", \"OverBar\": \"\\u203E\", \"OverBrace\": \"\\u23DE\", \"OverBracket\": \"\\u23B4\", \"OverParenthesis\": \"\\u23DC\", \"para\": \"\\u00B6\", \"parallel\": \"\\u2225\", \"par\": \"\\u2225\", \"parsim\": \"\\u2AF3\", \"parsl\": \"\\u2AFD\", \"part\": \"\\u2202\", \"PartialD\": \"\\u2202\", \"Pcy\": \"\\u041F\", \"pcy\": \"\\u043F\", \"percnt\": \"%\", \"period\": \".\", \"permil\": \"\\u2030\", \"perp\": \"\\u22A5\", \"pertenk\": \"\\u2031\", \"Pfr\": \"\\uD835\\uDD13\", \"pfr\": \"\\uD835\\uDD2D\", \"Phi\": \"\\u03A6\", \"phi\": \"\\u03C6\", \"phiv\": \"\\u03D5\", \"phmmat\": \"\\u2133\", \"phone\": \"\\u260E\", \"Pi\": \"\\u03A0\", \"pi\": \"\\u03C0\", \"pitchfork\": \"\\u22D4\", \"piv\": \"\\u03D6\", \"planck\": \"\\u210F\", \"planckh\": \"\\u210E\", \"plankv\": \"\\u210F\", \"plusacir\": \"\\u2A23\", \"plusb\": \"\\u229E\", \"pluscir\": \"\\u2A22\", \"plus\": \"+\", \"plusdo\": \"\\u2214\", \"plusdu\": \"\\u2A25\", \"pluse\": \"\\u2A72\", \"PlusMinus\": \"\\u00B1\", \"plusmn\": \"\\u00B1\", \"plussim\": \"\\u2A26\", \"plustwo\": \"\\u2A27\", \"pm\": \"\\u00B1\", \"Poincareplane\": \"\\u210C\", \"pointint\": \"\\u2A15\", \"popf\": \"\\uD835\\uDD61\", \"Popf\": \"\\u2119\", \"pound\": \"\\u00A3\", \"prap\": \"\\u2AB7\", \"Pr\": \"\\u2ABB\", \"pr\": \"\\u227A\", \"prcue\": \"\\u227C\", \"precapprox\": \"\\u2AB7\", \"prec\": \"\\u227A\", \"preccurlyeq\": \"\\u227C\", \"Precedes\": \"\\u227A\", \"PrecedesEqual\": \"\\u2AAF\", \"PrecedesSlantEqual\": \"\\u227C\", \"PrecedesTilde\": \"\\u227E\", \"preceq\": \"\\u2AAF\", \"precnapprox\": \"\\u2AB9\", \"precneqq\": \"\\u2AB5\", \"precnsim\": \"\\u22E8\", \"pre\": \"\\u2AAF\", \"prE\": \"\\u2AB3\", \"precsim\": \"\\u227E\", \"prime\": \"\\u2032\", \"Prime\": \"\\u2033\", \"primes\": \"\\u2119\", \"prnap\": \"\\u2AB9\", \"prnE\": \"\\u2AB5\", \"prnsim\": \"\\u22E8\", \"prod\": \"\\u220F\", \"Product\": \"\\u220F\", \"profalar\": \"\\u232E\", \"profline\": \"\\u2312\", \"profsurf\": \"\\u2313\", \"prop\": \"\\u221D\", \"Proportional\": \"\\u221D\", \"Proportion\": \"\\u2237\", \"propto\": \"\\u221D\", \"prsim\": \"\\u227E\", \"prurel\": \"\\u22B0\", \"Pscr\": \"\\uD835\\uDCAB\", \"pscr\": \"\\uD835\\uDCC5\", \"Psi\": \"\\u03A8\", \"psi\": \"\\u03C8\", \"puncsp\": \"\\u2008\", \"Qfr\": \"\\uD835\\uDD14\", \"qfr\": \"\\uD835\\uDD2E\", \"qint\": \"\\u2A0C\", \"qopf\": \"\\uD835\\uDD62\", \"Qopf\": \"\\u211A\", \"qprime\": \"\\u2057\", \"Qscr\": \"\\uD835\\uDCAC\", \"qscr\": \"\\uD835\\uDCC6\", \"quaternions\": \"\\u210D\", \"quatint\": \"\\u2A16\", \"quest\": \"?\", \"questeq\": \"\\u225F\", \"quot\": \"\\\"\", \"QUOT\": \"\\\"\", \"rAarr\": \"\\u21DB\", \"race\": \"\\u223D\\u0331\", \"Racute\": \"\\u0154\", \"racute\": \"\\u0155\", \"radic\": \"\\u221A\", \"raemptyv\": \"\\u29B3\", \"rang\": \"\\u27E9\", \"Rang\": \"\\u27EB\", \"rangd\": \"\\u2992\", \"range\": \"\\u29A5\", \"rangle\": \"\\u27E9\", \"raquo\": \"\\u00BB\", \"rarrap\": \"\\u2975\", \"rarrb\": \"\\u21E5\", \"rarrbfs\": \"\\u2920\", \"rarrc\": \"\\u2933\", \"rarr\": \"\\u2192\", \"Rarr\": \"\\u21A0\", \"rArr\": \"\\u21D2\", \"rarrfs\": \"\\u291E\", \"rarrhk\": \"\\u21AA\", \"rarrlp\": \"\\u21AC\", \"rarrpl\": \"\\u2945\", \"rarrsim\": \"\\u2974\", \"Rarrtl\": \"\\u2916\", \"rarrtl\": \"\\u21A3\", \"rarrw\": \"\\u219D\", \"ratail\": \"\\u291A\", \"rAtail\": \"\\u291C\", \"ratio\": \"\\u2236\", \"rationals\": \"\\u211A\", \"rbarr\": \"\\u290D\", \"rBarr\": \"\\u290F\", \"RBarr\": \"\\u2910\", \"rbbrk\": \"\\u2773\", \"rbrace\": \"}\", \"rbrack\": \"]\", \"rbrke\": \"\\u298C\", \"rbrksld\": \"\\u298E\", \"rbrkslu\": \"\\u2990\", \"Rcaron\": \"\\u0158\", \"rcaron\": \"\\u0159\", \"Rcedil\": \"\\u0156\", \"rcedil\": \"\\u0157\", \"rceil\": \"\\u2309\", \"rcub\": \"}\", \"Rcy\": \"\\u0420\", \"rcy\": \"\\u0440\", \"rdca\": \"\\u2937\", \"rdldhar\": \"\\u2969\", \"rdquo\": \"\\u201D\", \"rdquor\": \"\\u201D\", \"rdsh\": \"\\u21B3\", \"real\": \"\\u211C\", \"realine\": \"\\u211B\", \"realpart\": \"\\u211C\", \"reals\": \"\\u211D\", \"Re\": \"\\u211C\", \"rect\": \"\\u25AD\", \"reg\": \"\\u00AE\", \"REG\": \"\\u00AE\", \"ReverseElement\": \"\\u220B\", \"ReverseEquilibrium\": \"\\u21CB\", \"ReverseUpEquilibrium\": \"\\u296F\", \"rfisht\": \"\\u297D\", \"rfloor\": \"\\u230B\", \"rfr\": \"\\uD835\\uDD2F\", \"Rfr\": \"\\u211C\", \"rHar\": \"\\u2964\", \"rhard\": \"\\u21C1\", \"rharu\": \"\\u21C0\", \"rharul\": \"\\u296C\", \"Rho\": \"\\u03A1\", \"rho\": \"\\u03C1\", \"rhov\": \"\\u03F1\", \"RightAngleBracket\": \"\\u27E9\", \"RightArrowBar\": \"\\u21E5\", \"rightarrow\": \"\\u2192\", \"RightArrow\": \"\\u2192\", \"Rightarrow\": \"\\u21D2\", \"RightArrowLeftArrow\": \"\\u21C4\", \"rightarrowtail\": \"\\u21A3\", \"RightCeiling\": \"\\u2309\", \"RightDoubleBracket\": \"\\u27E7\", \"RightDownTeeVector\": \"\\u295D\", \"RightDownVectorBar\": \"\\u2955\", \"RightDownVector\": \"\\u21C2\", \"RightFloor\": \"\\u230B\", \"rightharpoondown\": \"\\u21C1\", \"rightharpoonup\": \"\\u21C0\", \"rightleftarrows\": \"\\u21C4\", \"rightleftharpoons\": \"\\u21CC\", \"rightrightarrows\": \"\\u21C9\", \"rightsquigarrow\": \"\\u219D\", \"RightTeeArrow\": \"\\u21A6\", \"RightTee\": \"\\u22A2\", \"RightTeeVector\": \"\\u295B\", \"rightthreetimes\": \"\\u22CC\", \"RightTriangleBar\": \"\\u29D0\", \"RightTriangle\": \"\\u22B3\", \"RightTriangleEqual\": \"\\u22B5\", \"RightUpDownVector\": \"\\u294F\", \"RightUpTeeVector\": \"\\u295C\", \"RightUpVectorBar\": \"\\u2954\", \"RightUpVector\": \"\\u21BE\", \"RightVectorBar\": \"\\u2953\", \"RightVector\": \"\\u21C0\", \"ring\": \"\\u02DA\", \"risingdotseq\": \"\\u2253\", \"rlarr\": \"\\u21C4\", \"rlhar\": \"\\u21CC\", \"rlm\": \"\\u200F\", \"rmoustache\": \"\\u23B1\", \"rmoust\": \"\\u23B1\", \"rnmid\": \"\\u2AEE\", \"roang\": \"\\u27ED\", \"roarr\": \"\\u21FE\", \"robrk\": \"\\u27E7\", \"ropar\": \"\\u2986\", \"ropf\": \"\\uD835\\uDD63\", \"Ropf\": \"\\u211D\", \"roplus\": \"\\u2A2E\", \"rotimes\": \"\\u2A35\", \"RoundImplies\": \"\\u2970\", \"rpar\": \")\", \"rpargt\": \"\\u2994\", \"rppolint\": \"\\u2A12\", \"rrarr\": \"\\u21C9\", \"Rrightarrow\": \"\\u21DB\", \"rsaquo\": \"\\u203A\", \"rscr\": \"\\uD835\\uDCC7\", \"Rscr\": \"\\u211B\", \"rsh\": \"\\u21B1\", \"Rsh\": \"\\u21B1\", \"rsqb\": \"]\", \"rsquo\": \"\\u2019\", \"rsquor\": \"\\u2019\", \"rthree\": \"\\u22CC\", \"rtimes\": \"\\u22CA\", \"rtri\": \"\\u25B9\", \"rtrie\": \"\\u22B5\", \"rtrif\": \"\\u25B8\", \"rtriltri\": \"\\u29CE\", \"RuleDelayed\": \"\\u29F4\", \"ruluhar\": \"\\u2968\", \"rx\": \"\\u211E\", \"Sacute\": \"\\u015A\", \"sacute\": \"\\u015B\", \"sbquo\": \"\\u201A\", \"scap\": \"\\u2AB8\", \"Scaron\": \"\\u0160\", \"scaron\": \"\\u0161\", \"Sc\": \"\\u2ABC\", \"sc\": \"\\u227B\", \"sccue\": \"\\u227D\", \"sce\": \"\\u2AB0\", \"scE\": \"\\u2AB4\", \"Scedil\": \"\\u015E\", \"scedil\": \"\\u015F\", \"Scirc\": \"\\u015C\", \"scirc\": \"\\u015D\", \"scnap\": \"\\u2ABA\", \"scnE\": \"\\u2AB6\", \"scnsim\": \"\\u22E9\", \"scpolint\": \"\\u2A13\", \"scsim\": \"\\u227F\", \"Scy\": \"\\u0421\", \"scy\": \"\\u0441\", \"sdotb\": \"\\u22A1\", \"sdot\": \"\\u22C5\", \"sdote\": \"\\u2A66\", \"searhk\": \"\\u2925\", \"searr\": \"\\u2198\", \"seArr\": \"\\u21D8\", \"searrow\": \"\\u2198\", \"sect\": \"\\u00A7\", \"semi\": \";\", \"seswar\": \"\\u2929\", \"setminus\": \"\\u2216\", \"setmn\": \"\\u2216\", \"sext\": \"\\u2736\", \"Sfr\": \"\\uD835\\uDD16\", \"sfr\": \"\\uD835\\uDD30\", \"sfrown\": \"\\u2322\", \"sharp\": \"\\u266F\", \"SHCHcy\": \"\\u0429\", \"shchcy\": \"\\u0449\", \"SHcy\": \"\\u0428\", \"shcy\": \"\\u0448\", \"ShortDownArrow\": \"\\u2193\", \"ShortLeftArrow\": \"\\u2190\", \"shortmid\": \"\\u2223\", \"shortparallel\": \"\\u2225\", \"ShortRightArrow\": \"\\u2192\", \"ShortUpArrow\": \"\\u2191\", \"shy\": \"\\u00AD\", \"Sigma\": \"\\u03A3\", \"sigma\": \"\\u03C3\", \"sigmaf\": \"\\u03C2\", \"sigmav\": \"\\u03C2\", \"sim\": \"\\u223C\", \"simdot\": \"\\u2A6A\", \"sime\": \"\\u2243\", \"simeq\": \"\\u2243\", \"simg\": \"\\u2A9E\", \"simgE\": \"\\u2AA0\", \"siml\": \"\\u2A9D\", \"simlE\": \"\\u2A9F\", \"simne\": \"\\u2246\", \"simplus\": \"\\u2A24\", \"simrarr\": \"\\u2972\", \"slarr\": \"\\u2190\", \"SmallCircle\": \"\\u2218\", \"smallsetminus\": \"\\u2216\", \"smashp\": \"\\u2A33\", \"smeparsl\": \"\\u29E4\", \"smid\": \"\\u2223\", \"smile\": \"\\u2323\", \"smt\": \"\\u2AAA\", \"smte\": \"\\u2AAC\", \"smtes\": \"\\u2AAC\\uFE00\", \"SOFTcy\": \"\\u042C\", \"softcy\": \"\\u044C\", \"solbar\": \"\\u233F\", \"solb\": \"\\u29C4\", \"sol\": \"/\", \"Sopf\": \"\\uD835\\uDD4A\", \"sopf\": \"\\uD835\\uDD64\", \"spades\": \"\\u2660\", \"spadesuit\": \"\\u2660\", \"spar\": \"\\u2225\", \"sqcap\": \"\\u2293\", \"sqcaps\": \"\\u2293\\uFE00\", \"sqcup\": \"\\u2294\", \"sqcups\": \"\\u2294\\uFE00\", \"Sqrt\": \"\\u221A\", \"sqsub\": \"\\u228F\", \"sqsube\": \"\\u2291\", \"sqsubset\": \"\\u228F\", \"sqsubseteq\": \"\\u2291\", \"sqsup\": \"\\u2290\", \"sqsupe\": \"\\u2292\", \"sqsupset\": \"\\u2290\", \"sqsupseteq\": \"\\u2292\", \"square\": \"\\u25A1\", \"Square\": \"\\u25A1\", \"SquareIntersection\": \"\\u2293\", \"SquareSubset\": \"\\u228F\", \"SquareSubsetEqual\": \"\\u2291\", \"SquareSuperset\": \"\\u2290\", \"SquareSupersetEqual\": \"\\u2292\", \"SquareUnion\": \"\\u2294\", \"squarf\": \"\\u25AA\", \"squ\": \"\\u25A1\", \"squf\": \"\\u25AA\", \"srarr\": \"\\u2192\", \"Sscr\": \"\\uD835\\uDCAE\", \"sscr\": \"\\uD835\\uDCC8\", \"ssetmn\": \"\\u2216\", \"ssmile\": \"\\u2323\", \"sstarf\": \"\\u22C6\", \"Star\": \"\\u22C6\", \"star\": \"\\u2606\", \"starf\": \"\\u2605\", \"straightepsilon\": \"\\u03F5\", \"straightphi\": \"\\u03D5\", \"strns\": \"\\u00AF\", \"sub\": \"\\u2282\", \"Sub\": \"\\u22D0\", \"subdot\": \"\\u2ABD\", \"subE\": \"\\u2AC5\", \"sube\": \"\\u2286\", \"subedot\": \"\\u2AC3\", \"submult\": \"\\u2AC1\", \"subnE\": \"\\u2ACB\", \"subne\": \"\\u228A\", \"subplus\": \"\\u2ABF\", \"subrarr\": \"\\u2979\", \"subset\": \"\\u2282\", \"Subset\": \"\\u22D0\", \"subseteq\": \"\\u2286\", \"subseteqq\": \"\\u2AC5\", \"SubsetEqual\": \"\\u2286\", \"subsetneq\": \"\\u228A\", \"subsetneqq\": \"\\u2ACB\", \"subsim\": \"\\u2AC7\", \"subsub\": \"\\u2AD5\", \"subsup\": \"\\u2AD3\", \"succapprox\": \"\\u2AB8\", \"succ\": \"\\u227B\", \"succcurlyeq\": \"\\u227D\", \"Succeeds\": \"\\u227B\", \"SucceedsEqual\": \"\\u2AB0\", \"SucceedsSlantEqual\": \"\\u227D\", \"SucceedsTilde\": \"\\u227F\", \"succeq\": \"\\u2AB0\", \"succnapprox\": \"\\u2ABA\", \"succneqq\": \"\\u2AB6\", \"succnsim\": \"\\u22E9\", \"succsim\": \"\\u227F\", \"SuchThat\": \"\\u220B\", \"sum\": \"\\u2211\", \"Sum\": \"\\u2211\", \"sung\": \"\\u266A\", \"sup1\": \"\\u00B9\", \"sup2\": \"\\u00B2\", \"sup3\": \"\\u00B3\", \"sup\": \"\\u2283\", \"Sup\": \"\\u22D1\", \"supdot\": \"\\u2ABE\", \"supdsub\": \"\\u2AD8\", \"supE\": \"\\u2AC6\", \"supe\": \"\\u2287\", \"supedot\": \"\\u2AC4\", \"Superset\": \"\\u2283\", \"SupersetEqual\": \"\\u2287\", \"suphsol\": \"\\u27C9\", \"suphsub\": \"\\u2AD7\", \"suplarr\": \"\\u297B\", \"supmult\": \"\\u2AC2\", \"supnE\": \"\\u2ACC\", \"supne\": \"\\u228B\", \"supplus\": \"\\u2AC0\", \"supset\": \"\\u2283\", \"Supset\": \"\\u22D1\", \"supseteq\": \"\\u2287\", \"supseteqq\": \"\\u2AC6\", \"supsetneq\": \"\\u228B\", \"supsetneqq\": \"\\u2ACC\", \"supsim\": \"\\u2AC8\", \"supsub\": \"\\u2AD4\", \"supsup\": \"\\u2AD6\", \"swarhk\": \"\\u2926\", \"swarr\": \"\\u2199\", \"swArr\": \"\\u21D9\", \"swarrow\": \"\\u2199\", \"swnwar\": \"\\u292A\", \"szlig\": \"\\u00DF\", \"Tab\": \"\\t\", \"target\": \"\\u2316\", \"Tau\": \"\\u03A4\", \"tau\": \"\\u03C4\", \"tbrk\": \"\\u23B4\", \"Tcaron\": \"\\u0164\", \"tcaron\": \"\\u0165\", \"Tcedil\": \"\\u0162\", \"tcedil\": \"\\u0163\", \"Tcy\": \"\\u0422\", \"tcy\": \"\\u0442\", \"tdot\": \"\\u20DB\", \"telrec\": \"\\u2315\", \"Tfr\": \"\\uD835\\uDD17\", \"tfr\": \"\\uD835\\uDD31\", \"there4\": \"\\u2234\", \"therefore\": \"\\u2234\", \"Therefore\": \"\\u2234\", \"Theta\": \"\\u0398\", \"theta\": \"\\u03B8\", \"thetasym\": \"\\u03D1\", \"thetav\": \"\\u03D1\", \"thickapprox\": \"\\u2248\", \"thicksim\": \"\\u223C\", \"ThickSpace\": \"\\u205F\\u200A\", \"ThinSpace\": \"\\u2009\", \"thinsp\": \"\\u2009\", \"thkap\": \"\\u2248\", \"thksim\": \"\\u223C\", \"THORN\": \"\\u00DE\", \"thorn\": \"\\u00FE\", \"tilde\": \"\\u02DC\", \"Tilde\": \"\\u223C\", \"TildeEqual\": \"\\u2243\", \"TildeFullEqual\": \"\\u2245\", \"TildeTilde\": \"\\u2248\", \"timesbar\": \"\\u2A31\", \"timesb\": \"\\u22A0\", \"times\": \"\\u00D7\", \"timesd\": \"\\u2A30\", \"tint\": \"\\u222D\", \"toea\": \"\\u2928\", \"topbot\": \"\\u2336\", \"topcir\": \"\\u2AF1\", \"top\": \"\\u22A4\", \"Topf\": \"\\uD835\\uDD4B\", \"topf\": \"\\uD835\\uDD65\", \"topfork\": \"\\u2ADA\", \"tosa\": \"\\u2929\", \"tprime\": \"\\u2034\", \"trade\": \"\\u2122\", \"TRADE\": \"\\u2122\", \"triangle\": \"\\u25B5\", \"triangledown\": \"\\u25BF\", \"triangleleft\": \"\\u25C3\", \"trianglelefteq\": \"\\u22B4\", \"triangleq\": \"\\u225C\", \"triangleright\": \"\\u25B9\", \"trianglerighteq\": \"\\u22B5\", \"tridot\": \"\\u25EC\", \"trie\": \"\\u225C\", \"triminus\": \"\\u2A3A\", \"TripleDot\": \"\\u20DB\", \"triplus\": \"\\u2A39\", \"trisb\": \"\\u29CD\", \"tritime\": \"\\u2A3B\", \"trpezium\": \"\\u23E2\", \"Tscr\": \"\\uD835\\uDCAF\", \"tscr\": \"\\uD835\\uDCC9\", \"TScy\": \"\\u0426\", \"tscy\": \"\\u0446\", \"TSHcy\": \"\\u040B\", \"tshcy\": \"\\u045B\", \"Tstrok\": \"\\u0166\", \"tstrok\": \"\\u0167\", \"twixt\": \"\\u226C\", \"twoheadleftarrow\": \"\\u219E\", \"twoheadrightarrow\": \"\\u21A0\", \"Uacute\": \"\\u00DA\", \"uacute\": \"\\u00FA\", \"uarr\": \"\\u2191\", \"Uarr\": \"\\u219F\", \"uArr\": \"\\u21D1\", \"Uarrocir\": \"\\u2949\", \"Ubrcy\": \"\\u040E\", \"ubrcy\": \"\\u045E\", \"Ubreve\": \"\\u016C\", \"ubreve\": \"\\u016D\", \"Ucirc\": \"\\u00DB\", \"ucirc\": \"\\u00FB\", \"Ucy\": \"\\u0423\", \"ucy\": \"\\u0443\", \"udarr\": \"\\u21C5\", \"Udblac\": \"\\u0170\", \"udblac\": \"\\u0171\", \"udhar\": \"\\u296E\", \"ufisht\": \"\\u297E\", \"Ufr\": \"\\uD835\\uDD18\", \"ufr\": \"\\uD835\\uDD32\", \"Ugrave\": \"\\u00D9\", \"ugrave\": \"\\u00F9\", \"uHar\": \"\\u2963\", \"uharl\": \"\\u21BF\", \"uharr\": \"\\u21BE\", \"uhblk\": \"\\u2580\", \"ulcorn\": \"\\u231C\", \"ulcorner\": \"\\u231C\", \"ulcrop\": \"\\u230F\", \"ultri\": \"\\u25F8\", \"Umacr\": \"\\u016A\", \"umacr\": \"\\u016B\", \"uml\": \"\\u00A8\", \"UnderBar\": \"_\", \"UnderBrace\": \"\\u23DF\", \"UnderBracket\": \"\\u23B5\", \"UnderParenthesis\": \"\\u23DD\", \"Union\": \"\\u22C3\", \"UnionPlus\": \"\\u228E\", \"Uogon\": \"\\u0172\", \"uogon\": \"\\u0173\", \"Uopf\": \"\\uD835\\uDD4C\", \"uopf\": \"\\uD835\\uDD66\", \"UpArrowBar\": \"\\u2912\", \"uparrow\": \"\\u2191\", \"UpArrow\": \"\\u2191\", \"Uparrow\": \"\\u21D1\", \"UpArrowDownArrow\": \"\\u21C5\", \"updownarrow\": \"\\u2195\", \"UpDownArrow\": \"\\u2195\", \"Updownarrow\": \"\\u21D5\", \"UpEquilibrium\": \"\\u296E\", \"upharpoonleft\": \"\\u21BF\", \"upharpoonright\": \"\\u21BE\", \"uplus\": \"\\u228E\", \"UpperLeftArrow\": \"\\u2196\", \"UpperRightArrow\": \"\\u2197\", \"upsi\": \"\\u03C5\", \"Upsi\": \"\\u03D2\", \"upsih\": \"\\u03D2\", \"Upsilon\": \"\\u03A5\", \"upsilon\": \"\\u03C5\", \"UpTeeArrow\": \"\\u21A5\", \"UpTee\": \"\\u22A5\", \"upuparrows\": \"\\u21C8\", \"urcorn\": \"\\u231D\", \"urcorner\": \"\\u231D\", \"urcrop\": \"\\u230E\", \"Uring\": \"\\u016E\", \"uring\": \"\\u016F\", \"urtri\": \"\\u25F9\", \"Uscr\": \"\\uD835\\uDCB0\", \"uscr\": \"\\uD835\\uDCCA\", \"utdot\": \"\\u22F0\", \"Utilde\": \"\\u0168\", \"utilde\": \"\\u0169\", \"utri\": \"\\u25B5\", \"utrif\": \"\\u25B4\", \"uuarr\": \"\\u21C8\", \"Uuml\": \"\\u00DC\", \"uuml\": \"\\u00FC\", \"uwangle\": \"\\u29A7\", \"vangrt\": \"\\u299C\", \"varepsilon\": \"\\u03F5\", \"varkappa\": \"\\u03F0\", \"varnothing\": \"\\u2205\", \"varphi\": \"\\u03D5\", \"varpi\": \"\\u03D6\", \"varpropto\": \"\\u221D\", \"varr\": \"\\u2195\", \"vArr\": \"\\u21D5\", \"varrho\": \"\\u03F1\", \"varsigma\": \"\\u03C2\", \"varsubsetneq\": \"\\u228A\\uFE00\", \"varsubsetneqq\": \"\\u2ACB\\uFE00\", \"varsupsetneq\": \"\\u228B\\uFE00\", \"varsupsetneqq\": \"\\u2ACC\\uFE00\", \"vartheta\": \"\\u03D1\", \"vartriangleleft\": \"\\u22B2\", \"vartriangleright\": \"\\u22B3\", \"vBar\": \"\\u2AE8\", \"Vbar\": \"\\u2AEB\", \"vBarv\": \"\\u2AE9\", \"Vcy\": \"\\u0412\", \"vcy\": \"\\u0432\", \"vdash\": \"\\u22A2\", \"vDash\": \"\\u22A8\", \"Vdash\": \"\\u22A9\", \"VDash\": \"\\u22AB\", \"Vdashl\": \"\\u2AE6\", \"veebar\": \"\\u22BB\", \"vee\": \"\\u2228\", \"Vee\": \"\\u22C1\", \"veeeq\": \"\\u225A\", \"vellip\": \"\\u22EE\", \"verbar\": \"|\", \"Verbar\": \"\\u2016\", \"vert\": \"|\", \"Vert\": \"\\u2016\", \"VerticalBar\": \"\\u2223\", \"VerticalLine\": \"|\", \"VerticalSeparator\": \"\\u2758\", \"VerticalTilde\": \"\\u2240\", \"VeryThinSpace\": \"\\u200A\", \"Vfr\": \"\\uD835\\uDD19\", \"vfr\": \"\\uD835\\uDD33\", \"vltri\": \"\\u22B2\", \"vnsub\": \"\\u2282\\u20D2\", \"vnsup\": \"\\u2283\\u20D2\", \"Vopf\": \"\\uD835\\uDD4D\", \"vopf\": \"\\uD835\\uDD67\", \"vprop\": \"\\u221D\", \"vrtri\": \"\\u22B3\", \"Vscr\": \"\\uD835\\uDCB1\", \"vscr\": \"\\uD835\\uDCCB\", \"vsubnE\": \"\\u2ACB\\uFE00\", \"vsubne\": \"\\u228A\\uFE00\", \"vsupnE\": \"\\u2ACC\\uFE00\", \"vsupne\": \"\\u228B\\uFE00\", \"Vvdash\": \"\\u22AA\", \"vzigzag\": \"\\u299A\", \"Wcirc\": \"\\u0174\", \"wcirc\": \"\\u0175\", \"wedbar\": \"\\u2A5F\", \"wedge\": \"\\u2227\", \"Wedge\": \"\\u22C0\", \"wedgeq\": \"\\u2259\", \"weierp\": \"\\u2118\", \"Wfr\": \"\\uD835\\uDD1A\", \"wfr\": \"\\uD835\\uDD34\", \"Wopf\": \"\\uD835\\uDD4E\", \"wopf\": \"\\uD835\\uDD68\", \"wp\": \"\\u2118\", \"wr\": \"\\u2240\", \"wreath\": \"\\u2240\", \"Wscr\": \"\\uD835\\uDCB2\", \"wscr\": \"\\uD835\\uDCCC\", \"xcap\": \"\\u22C2\", \"xcirc\": \"\\u25EF\", \"xcup\": \"\\u22C3\", \"xdtri\": \"\\u25BD\", \"Xfr\": \"\\uD835\\uDD1B\", \"xfr\": \"\\uD835\\uDD35\", \"xharr\": \"\\u27F7\", \"xhArr\": \"\\u27FA\", \"Xi\": \"\\u039E\", \"xi\": \"\\u03BE\", \"xlarr\": \"\\u27F5\", \"xlArr\": \"\\u27F8\", \"xmap\": \"\\u27FC\", \"xnis\": \"\\u22FB\", \"xodot\": \"\\u2A00\", \"Xopf\": \"\\uD835\\uDD4F\", \"xopf\": \"\\uD835\\uDD69\", \"xoplus\": \"\\u2A01\", \"xotime\": \"\\u2A02\", \"xrarr\": \"\\u27F6\", \"xrArr\": \"\\u27F9\", \"Xscr\": \"\\uD835\\uDCB3\", \"xscr\": \"\\uD835\\uDCCD\", \"xsqcup\": \"\\u2A06\", \"xuplus\": \"\\u2A04\", \"xutri\": \"\\u25B3\", \"xvee\": \"\\u22C1\", \"xwedge\": \"\\u22C0\", \"Yacute\": \"\\u00DD\", \"yacute\": \"\\u00FD\", \"YAcy\": \"\\u042F\", \"yacy\": \"\\u044F\", \"Ycirc\": \"\\u0176\", \"ycirc\": \"\\u0177\", \"Ycy\": \"\\u042B\", \"ycy\": \"\\u044B\", \"yen\": \"\\u00A5\", \"Yfr\": \"\\uD835\\uDD1C\", \"yfr\": \"\\uD835\\uDD36\", \"YIcy\": \"\\u0407\", \"yicy\": \"\\u0457\", \"Yopf\": \"\\uD835\\uDD50\", \"yopf\": \"\\uD835\\uDD6A\", \"Yscr\": \"\\uD835\\uDCB4\", \"yscr\": \"\\uD835\\uDCCE\", \"YUcy\": \"\\u042E\", \"yucy\": \"\\u044E\", \"yuml\": \"\\u00FF\", \"Yuml\": \"\\u0178\", \"Zacute\": \"\\u0179\", \"zacute\": \"\\u017A\", \"Zcaron\": \"\\u017D\", \"zcaron\": \"\\u017E\", \"Zcy\": \"\\u0417\", \"zcy\": \"\\u0437\", \"Zdot\": \"\\u017B\", \"zdot\": \"\\u017C\", \"zeetrf\": \"\\u2128\", \"ZeroWidthSpace\": \"\\u200B\", \"Zeta\": \"\\u0396\", \"zeta\": \"\\u03B6\", \"zfr\": \"\\uD835\\uDD37\", \"Zfr\": \"\\u2128\", \"ZHcy\": \"\\u0416\", \"zhcy\": \"\\u0436\", \"zigrarr\": \"\\u21DD\", \"zopf\": \"\\uD835\\uDD6B\", \"Zopf\": \"\\u2124\", \"Zscr\": \"\\uD835\\uDCB5\", \"zscr\": \"\\uD835\\uDCCF\", \"zwj\": \"\\u200D\", \"zwnj\": \"\\u200C\" }\n\n},{}],53:[function(require,module,exports){\n'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n\n  sources.forEach(function (source) {\n    if (!source) { return; }\n\n    Object.keys(source).forEach(function (key) {\n      obj[key] = source[key];\n    });\n  });\n\n  return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n  fuzzyLink: true,\n  fuzzyEmail: true,\n  fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n  return Object.keys(obj || {}).reduce(function (acc, k) {\n    return acc || defaultOptions.hasOwnProperty(k);\n  }, false);\n}\n\n\nvar defaultSchemas = {\n  'http:': {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.http) {\n        // compile lazily, because \"host\"-containing variables can change on tlds update.\n        self.re.http =  new RegExp(\n          '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n        );\n      }\n      if (self.re.http.test(tail)) {\n        return tail.match(self.re.http)[0].length;\n      }\n      return 0;\n    }\n  },\n  'https:':  'http:',\n  'ftp:':    'http:',\n  '//':      {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.no_http) {\n      // compile lazily, because \"host\"-containing variables can change on tlds update.\n        self.re.no_http =  new RegExp(\n          '^' +\n          self.re.src_auth +\n          // Don't allow single-level domains, because of false positives like '//test'\n          // with code comments\n          '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n          self.re.src_port +\n          self.re.src_host_terminator +\n          self.re.src_path,\n\n          'i'\n        );\n      }\n\n      if (self.re.no_http.test(tail)) {\n        // should not be `://` & `///`, that protects from errors in protocol name\n        if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n        if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n        return tail.match(self.re.no_http)[0].length;\n      }\n      return 0;\n    }\n  },\n  'mailto:': {\n    validate: function (text, pos, self) {\n      var tail = text.slice(pos);\n\n      if (!self.re.mailto) {\n        self.re.mailto =  new RegExp(\n          '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n        );\n      }\n      if (self.re.mailto.test(tail)) {\n        return tail.match(self.re.mailto)[0].length;\n      }\n      return 0;\n    }\n  }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n  self.__index__ = -1;\n  self.__text_cache__   = '';\n}\n\nfunction createValidator(re) {\n  return function (text, pos) {\n    var tail = text.slice(pos);\n\n    if (re.test(tail)) {\n      return tail.match(re)[0].length;\n    }\n    return 0;\n  };\n}\n\nfunction createNormalizer() {\n  return function (match, self) {\n    self.normalize(match);\n  };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n  // Load & clone RE patterns.\n  var re = self.re = require('./lib/re')(self.__opts__);\n\n  // Define dynamic patterns\n  var tlds = self.__tlds__.slice();\n\n  self.onCompile();\n\n  if (!self.__tlds_replaced__) {\n    tlds.push(tlds_2ch_src_re);\n  }\n  tlds.push(re.src_xn);\n\n  re.src_tlds = tlds.join('|');\n\n  function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n  re.email_fuzzy      = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n  re.link_fuzzy       = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n  re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n  re.host_fuzzy_test  = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n  //\n  // Compile each schema\n  //\n\n  var aliases = [];\n\n  self.__compiled__ = {}; // Reset compiled data\n\n  function schemaError(name, val) {\n    throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n  }\n\n  Object.keys(self.__schemas__).forEach(function (name) {\n    var val = self.__schemas__[name];\n\n    // skip disabled methods\n    if (val === null) { return; }\n\n    var compiled = { validate: null, link: null };\n\n    self.__compiled__[name] = compiled;\n\n    if (isObject(val)) {\n      if (isRegExp(val.validate)) {\n        compiled.validate = createValidator(val.validate);\n      } else if (isFunction(val.validate)) {\n        compiled.validate = val.validate;\n      } else {\n        schemaError(name, val);\n      }\n\n      if (isFunction(val.normalize)) {\n        compiled.normalize = val.normalize;\n      } else if (!val.normalize) {\n        compiled.normalize = createNormalizer();\n      } else {\n        schemaError(name, val);\n      }\n\n      return;\n    }\n\n    if (isString(val)) {\n      aliases.push(name);\n      return;\n    }\n\n    schemaError(name, val);\n  });\n\n  //\n  // Compile postponed aliases\n  //\n\n  aliases.forEach(function (alias) {\n    if (!self.__compiled__[self.__schemas__[alias]]) {\n      // Silently fail on missed schemas to avoid errons on disable.\n      // schemaError(alias, self.__schemas__[alias]);\n      return;\n    }\n\n    self.__compiled__[alias].validate =\n      self.__compiled__[self.__schemas__[alias]].validate;\n    self.__compiled__[alias].normalize =\n      self.__compiled__[self.__schemas__[alias]].normalize;\n  });\n\n  //\n  // Fake record for guessed links\n  //\n  self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n  //\n  // Build schema condition\n  //\n  var slist = Object.keys(self.__compiled__)\n                      .filter(function (name) {\n                        // Filter disabled & fake schemas\n                        return name.length > 0 && self.__compiled__[name];\n                      })\n                      .map(escapeRE)\n                      .join('|');\n  // (?!_) cause 1.5x slowdown\n  self.re.schema_test   = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n  self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n  self.re.pretest = RegExp(\n    '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n    'i'\n  );\n\n  //\n  // Cleanup\n  //\n\n  resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n  var start = self.__index__,\n      end   = self.__last_index__,\n      text  = self.__text_cache__.slice(start, end);\n\n  /**\n   * Match#schema -> String\n   *\n   * Prefix (protocol) for matched string.\n   **/\n  this.schema    = self.__schema__.toLowerCase();\n  /**\n   * Match#index -> Number\n   *\n   * First position of matched string.\n   **/\n  this.index     = start + shift;\n  /**\n   * Match#lastIndex -> Number\n   *\n   * Next position after matched string.\n   **/\n  this.lastIndex = end + shift;\n  /**\n   * Match#raw -> String\n   *\n   * Matched string.\n   **/\n  this.raw       = text;\n  /**\n   * Match#text -> String\n   *\n   * Notmalized text of matched string.\n   **/\n  this.text      = text;\n  /**\n   * Match#url -> String\n   *\n   * Normalized url of matched string.\n   **/\n  this.url       = text;\n}\n\nfunction createMatch(self, shift) {\n  var match = new Match(self, shift);\n\n  self.__compiled__[match.schema].normalize(match, self);\n\n  return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n *   for example). `linkify-it` makes shure that prefix is not preceeded with\n *   alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n *   - _String_ - just alias to existing rule\n *   - _Object_\n *     - _validate_ - validator function (should return matched length on success),\n *       or `RegExp`.\n *     - _normalize_ - optional function to normalize text & url of matched result\n *       (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n *   like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n  if (!(this instanceof LinkifyIt)) {\n    return new LinkifyIt(schemas, options);\n  }\n\n  if (!options) {\n    if (isOptionsObj(schemas)) {\n      options = schemas;\n      schemas = {};\n    }\n  }\n\n  this.__opts__           = assign({}, defaultOptions, options);\n\n  // Cache last tested result. Used to skip repeating steps on next `match` call.\n  this.__index__          = -1;\n  this.__last_index__     = -1; // Next scan position\n  this.__schema__         = '';\n  this.__text_cache__     = '';\n\n  this.__schemas__        = assign({}, defaultSchemas, schemas);\n  this.__compiled__       = {};\n\n  this.__tlds__           = tlds_default;\n  this.__tlds_replaced__  = false;\n\n  this.re = {};\n\n  compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n  this.__schemas__[schema] = definition;\n  compile(this);\n  return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n  this.__opts__ = assign(this.__opts__, options);\n  return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n  // Reset scan cache\n  this.__text_cache__ = text;\n  this.__index__      = -1;\n\n  if (!text.length) { return false; }\n\n  var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n  // try to scan for link with schema - that's the most simple rule\n  if (this.re.schema_test.test(text)) {\n    re = this.re.schema_search;\n    re.lastIndex = 0;\n    while ((m = re.exec(text)) !== null) {\n      len = this.testSchemaAt(text, m[2], re.lastIndex);\n      if (len) {\n        this.__schema__     = m[2];\n        this.__index__      = m.index + m[1].length;\n        this.__last_index__ = m.index + m[0].length + len;\n        break;\n      }\n    }\n  }\n\n  if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n    // guess schemaless links\n    tld_pos = text.search(this.re.host_fuzzy_test);\n    if (tld_pos >= 0) {\n      // if tld is located after found link - no need to check fuzzy pattern\n      if (this.__index__ < 0 || tld_pos < this.__index__) {\n        if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n          shift = ml.index + ml[1].length;\n\n          if (this.__index__ < 0 || shift < this.__index__) {\n            this.__schema__     = '';\n            this.__index__      = shift;\n            this.__last_index__ = ml.index + ml[0].length;\n          }\n        }\n      }\n    }\n  }\n\n  if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n    // guess schemaless emails\n    at_pos = text.indexOf('@');\n    if (at_pos >= 0) {\n      // We can't skip this check, because this cases are possible:\n      // 192.168.1.1@gmail.com, my.in@example.com\n      if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n        shift = me.index + me[1].length;\n        next  = me.index + me[0].length;\n\n        if (this.__index__ < 0 || shift < this.__index__ ||\n            (shift === this.__index__ && next > this.__last_index__)) {\n          this.__schema__     = 'mailto:';\n          this.__index__      = shift;\n          this.__last_index__ = next;\n        }\n      }\n    }\n  }\n\n  return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n  return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n  // If not supported schema check requested - terminate\n  if (!this.__compiled__[schema.toLowerCase()]) {\n    return 0;\n  }\n  return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n *   protocol-neutral  links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n  var shift = 0, result = [];\n\n  // Try to take previous element from cache, if .test() called before\n  if (this.__index__ >= 0 && this.__text_cache__ === text) {\n    result.push(createMatch(this, shift));\n    shift = this.__last_index__;\n  }\n\n  // Cut head if cache was used\n  var tail = shift ? text.slice(shift) : text;\n\n  // Scan string until end reached\n  while (this.test(tail)) {\n    result.push(createMatch(this, shift));\n\n    tail = tail.slice(this.__last_index__);\n    shift += this.__last_index__;\n  }\n\n  if (result.length) {\n    return result;\n  }\n\n  return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n *   are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n  list = Array.isArray(list) ? list : [ list ];\n\n  if (!keepOld) {\n    this.__tlds__ = list.slice();\n    this.__tlds_replaced__ = true;\n    compile(this);\n    return this;\n  }\n\n  this.__tlds__ = this.__tlds__.concat(list)\n                                  .sort()\n                                  .filter(function (el, idx, arr) {\n                                    return el !== arr[idx - 1];\n                                  })\n                                  .reverse();\n\n  compile(this);\n  return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n  // Do minimal possible changes by default. Need to collect feedback prior\n  // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n  if (!match.schema) { match.url = 'http://' + match.url; }\n\n  if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n    match.url = 'mailto:' + match.url;\n  }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n\n},{\"./lib/re\":54}],54:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = function (opts) {\n  var re = {};\n\n  // Use direct extract instead of `regenerate` to reduse browserified size\n  re.src_Any = require('uc.micro/properties/Any/regex').source;\n  re.src_Cc  = require('uc.micro/categories/Cc/regex').source;\n  re.src_Z   = require('uc.micro/categories/Z/regex').source;\n  re.src_P   = require('uc.micro/categories/P/regex').source;\n\n  // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n  re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n  // \\p{\\Z\\Cc} (white spaces + control)\n  re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n  // Experimental. List of chars, completely prohibited in links\n  // because can separate it from other part of text\n  var text_separators = '[><\\uff5c]';\n\n  // All possible word characters (everything without punctuation, spaces & controls)\n  // Defined via punctuation & spaces to save space\n  // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n  re.src_pseudo_letter       = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n  // The same as abothe but without [0-9]\n  // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n  ////////////////////////////////////////////////////////////////////////////////\n\n  re.src_ip4 =\n\n    '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n  // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n  re.src_auth    = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n  re.src_port =\n\n    '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n  re.src_host_terminator =\n\n    '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n  re.src_path =\n\n    '(?:' +\n      '[/?#]' +\n        '(?:' +\n          '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n          '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n          '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n          '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n          '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n          \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n          \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' +  // allow `I'm_king` if no pair found\n          '\\\\.{2,4}[a-zA-Z0-9%/]|' + // github has ... in commit range links,\n                                     // google has .... in links (issue #66)\n                                     // Restrict to\n                                     // - english\n                                     // - percent-encoded\n                                     // - parts of file path\n                                     // until more examples found.\n          '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n          (opts && opts['---'] ?\n            '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n            :\n            '\\\\-+|'\n          ) +\n          '\\\\,(?!' + re.src_ZCc + ').|' +      // allow `,,,` in paths\n          '\\\\!(?!' + re.src_ZCc + '|[!]).|' +\n          '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n        ')+' +\n      '|\\\\/' +\n    ')?';\n\n  // Allow anything in markdown spec, forbid quote (\") at the first position\n  // because emails enclosed in quotes are far more common\n  re.src_email_name =\n\n    '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n  re.src_xn =\n\n    'xn--[a-z0-9\\\\-]{1,59}';\n\n  // More to read about domain names\n  // http://serverfault.com/questions/638260/\n\n  re.src_domain_root =\n\n    // Allow letters & digits (http://test1)\n    '(?:' +\n      re.src_xn +\n      '|' +\n      re.src_pseudo_letter + '{1,63}' +\n    ')';\n\n  re.src_domain =\n\n    '(?:' +\n      re.src_xn +\n      '|' +\n      '(?:' + re.src_pseudo_letter + ')' +\n      '|' +\n      '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n    ')';\n\n  re.src_host =\n\n    '(?:' +\n    // Don't need IP check, because digits are already allowed in normal domain names\n    //   src_ip4 +\n    // '|' +\n      '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n    ')';\n\n  re.tpl_host_fuzzy =\n\n    '(?:' +\n      re.src_ip4 +\n    '|' +\n      '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n    ')';\n\n  re.tpl_host_no_ip_fuzzy =\n\n    '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n  re.src_host_strict =\n\n    re.src_host + re.src_host_terminator;\n\n  re.tpl_host_fuzzy_strict =\n\n    re.tpl_host_fuzzy + re.src_host_terminator;\n\n  re.src_host_port_strict =\n\n    re.src_host + re.src_port + re.src_host_terminator;\n\n  re.tpl_host_port_fuzzy_strict =\n\n    re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n  re.tpl_host_port_no_ip_fuzzy_strict =\n\n    re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n  ////////////////////////////////////////////////////////////////////////////////\n  // Main rules\n\n  // Rude test fuzzy links by host, for quick deny\n  re.tpl_host_fuzzy_test =\n\n    'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n  re.tpl_email_fuzzy =\n\n      '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n      '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n  re.tpl_link_fuzzy =\n      // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n      // but can start with > (markdown blockquote)\n      '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n      '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n  re.tpl_link_no_ip_fuzzy =\n      // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n      // but can start with > (markdown blockquote)\n      '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n      '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n  return re;\n};\n\n},{\"uc.micro/categories/Cc/regex\":61,\"uc.micro/categories/P/regex\":63,\"uc.micro/categories/Z/regex\":64,\"uc.micro/properties/Any/regex\":66}],55:[function(require,module,exports){\n\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n  var i, ch, cache = decodeCache[exclude];\n  if (cache) { return cache; }\n\n  cache = decodeCache[exclude] = [];\n\n  for (i = 0; i < 128; i++) {\n    ch = String.fromCharCode(i);\n    cache.push(ch);\n  }\n\n  for (i = 0; i < exclude.length; i++) {\n    ch = exclude.charCodeAt(i);\n    cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n  }\n\n  return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n  var cache;\n\n  if (typeof exclude !== 'string') {\n    exclude = decode.defaultChars;\n  }\n\n  cache = getDecodeCache(exclude);\n\n  return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n    var i, l, b1, b2, b3, b4, chr,\n        result = '';\n\n    for (i = 0, l = seq.length; i < l; i += 3) {\n      b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n      if (b1 < 0x80) {\n        result += cache[b1];\n        continue;\n      }\n\n      if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n        // 110xxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n        if ((b2 & 0xC0) === 0x80) {\n          chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n          if (chr < 0x80) {\n            result += '\\ufffd\\ufffd';\n          } else {\n            result += String.fromCharCode(chr);\n          }\n\n          i += 3;\n          continue;\n        }\n      }\n\n      if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n        // 1110xxxx 10xxxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n        b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n        if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n          chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n          if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n            result += '\\ufffd\\ufffd\\ufffd';\n          } else {\n            result += String.fromCharCode(chr);\n          }\n\n          i += 6;\n          continue;\n        }\n      }\n\n      if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n        // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n        b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n        b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n        b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n        if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n          chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n          if (chr < 0x10000 || chr > 0x10FFFF) {\n            result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n          } else {\n            chr -= 0x10000;\n            result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n          }\n\n          i += 9;\n          continue;\n        }\n      }\n\n      result += '\\ufffd';\n    }\n\n    return result;\n  });\n}\n\n\ndecode.defaultChars   = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n\n},{}],56:[function(require,module,exports){\n\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n  var i, ch, cache = encodeCache[exclude];\n  if (cache) { return cache; }\n\n  cache = encodeCache[exclude] = [];\n\n  for (i = 0; i < 128; i++) {\n    ch = String.fromCharCode(i);\n\n    if (/^[0-9a-z]$/i.test(ch)) {\n      // always allow unencoded alphanumeric characters\n      cache.push(ch);\n    } else {\n      cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n    }\n  }\n\n  for (i = 0; i < exclude.length; i++) {\n    cache[exclude.charCodeAt(i)] = exclude[i];\n  }\n\n  return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n//  - string       - string to encode\n//  - exclude      - list of characters to ignore (in addition to a-zA-Z0-9)\n//  - keepEscaped  - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n  var i, l, code, nextCode, cache,\n      result = '';\n\n  if (typeof exclude !== 'string') {\n    // encode(string, keepEscaped)\n    keepEscaped  = exclude;\n    exclude = encode.defaultChars;\n  }\n\n  if (typeof keepEscaped === 'undefined') {\n    keepEscaped = true;\n  }\n\n  cache = getEncodeCache(exclude);\n\n  for (i = 0, l = string.length; i < l; i++) {\n    code = string.charCodeAt(i);\n\n    if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n      if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n        result += string.slice(i, i + 3);\n        i += 2;\n        continue;\n      }\n    }\n\n    if (code < 128) {\n      result += cache[code];\n      continue;\n    }\n\n    if (code >= 0xD800 && code <= 0xDFFF) {\n      if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n        nextCode = string.charCodeAt(i + 1);\n        if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n          result += encodeURIComponent(string[i] + string[i + 1]);\n          i++;\n          continue;\n        }\n      }\n      result += '%EF%BF%BD';\n      continue;\n    }\n\n    result += encodeURIComponent(string[i]);\n  }\n\n  return result;\n}\n\nencode.defaultChars   = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n\n},{}],57:[function(require,module,exports){\n\n'use strict';\n\n\nmodule.exports = function format(url) {\n  var result = '';\n\n  result += url.protocol || '';\n  result += url.slashes ? '//' : '';\n  result += url.auth ? url.auth + '@' : '';\n\n  if (url.hostname && url.hostname.indexOf(':') !== -1) {\n    // ipv6 address\n    result += '[' + url.hostname + ']';\n  } else {\n    result += url.hostname || '';\n  }\n\n  result += url.port ? ':' + url.port : '';\n  result += url.pathname || '';\n  result += url.search || '';\n  result += url.hash || '';\n\n  return result;\n};\n\n},{}],58:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse  = require('./parse');\n\n},{\"./decode\":55,\"./encode\":56,\"./format\":57,\"./parse\":59}],59:[function(require,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n//    e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n//    so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n//    i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n//    (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n//    which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n    portPattern = /:[0-9]*$/,\n\n    // Special case for a simple path URL\n    simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n    // RFC 2396: characters reserved for delimiting URLs.\n    // We actually just auto-escape these.\n    delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n    // RFC 2396: characters not allowed for various reasons.\n    unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n    autoEscape = [ '\\'' ].concat(unwise),\n    // Characters that are never ever allowed in a hostname.\n    // Note that any invalid chars are also handled, but these\n    // are the ones that are *expected* to be seen, so we fast-path\n    // them.\n    nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n    hostEndingChars = [ '/', '?', '#' ],\n    hostnameMaxLen = 255,\n    hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n    hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n    // protocols that can allow \"unsafe\" and \"unwise\" chars.\n    /* eslint-disable no-script-url */\n    // protocols that never have a hostname.\n    hostlessProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that always contain a // bit.\n    slashedProtocol = {\n      'http': true,\n      'https': true,\n      'ftp': true,\n      'gopher': true,\n      'file': true,\n      'http:': true,\n      'https:': true,\n      'ftp:': true,\n      'gopher:': true,\n      'file:': true\n    };\n    /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n  if (url && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n  var i, l, lowerProto, hec, slashes,\n      rest = url;\n\n  // trim before proceeding.\n  // This is to support parse stuff like \"  http://foo.com  \\n\"\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    lowerProto = proto.toLowerCase();\n    this.protocol = proto;\n    rest = rest.substr(proto.length);\n  }\n\n  // figure out if it's got a host\n  // user@server is *always* interpreted as a hostname, and url\n  // resolution will treat //foo/bar as host=foo,path=bar because that's\n  // how the browser resolves relative URLs.\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] &&\n      (slashes || (proto && !slashedProtocol[proto]))) {\n\n    // there's a hostname.\n    // the first instance of /, ?, ;, or # ends the host.\n    //\n    // If there is an @ in the hostname, then non-host chars *are* allowed\n    // to the left of the last @ sign, unless some host-ending character\n    // comes *before* the @-sign.\n    // URLs are obnoxious.\n    //\n    // ex:\n    // http://a@b@c/ => user:a@b host:c\n    // http://a@b?@c => user:a host:c path:/?@c\n\n    // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n    // Review our test case against browsers more comprehensively.\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (i = 0; i < hostEndingChars.length; i++) {\n      hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n        hostEnd = hec;\n      }\n    }\n\n    // at this point, either we have an explicit point where the\n    // auth portion cannot go past, or the last @ char is the decider.\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      // atSign must be in auth portion.\n      // http://a@b/c@d => host:b auth:a path:/c@d\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    // Now we have a portion which is definitely the auth.\n    // Pull that off.\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = auth;\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (i = 0; i < nonHostChars.length; i++) {\n      hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n        hostEnd = hec;\n      }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) {\n      hostEnd = rest.length;\n    }\n\n    if (rest[hostEnd - 1] === ':') { hostEnd--; }\n    var host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost(host);\n\n    // we've indicated that there is a hostname,\n    // so even if it's empty, it has to be present.\n    this.hostname = this.hostname || '';\n\n    // if hostname begins with [ and ends with ]\n    // assume that it's an IPv6 address.\n    var ipv6Hostname = this.hostname[0] === '[' &&\n        this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              // we replace non-ASCII char with a temporary placeholder\n              // we need this to make sure size of hostname is not\n              // broken by replacing non-ASCII by nothing\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    }\n\n    // strip [ and ] from the hostname\n    // the host field still retains them, though\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    rest = rest.slice(0, qm);\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] &&\n      this.hostname && !this.pathname) {\n    this.pathname = '';\n  }\n\n  return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n\n},{}],60:[function(require,module,exports){\n(function (global){\n/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],61:[function(require,module,exports){\nmodule.exports=/[\\0-\\x1F\\x7F-\\x9F]/\n},{}],62:[function(require,module,exports){\nmodule.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/\n},{}],63:[function(require,module,exports){\nmodule.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/\n},{}],64:[function(require,module,exports){\nmodule.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/\n},{}],65:[function(require,module,exports){\n'use strict';\n\nexports.Any = require('./properties/Any/regex');\nexports.Cc  = require('./categories/Cc/regex');\nexports.Cf  = require('./categories/Cf/regex');\nexports.P   = require('./categories/P/regex');\nexports.Z   = require('./categories/Z/regex');\n\n},{\"./categories/Cc/regex\":61,\"./categories/Cf/regex\":62,\"./categories/P/regex\":63,\"./categories/Z/regex\":64,\"./properties/Any/regex\":66}],66:[function(require,module,exports){\nmodule.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/\n},{}],67:[function(require,module,exports){\n'use strict';\n\n\nmodule.exports = require('./lib/');\n\n},{\"./lib/\":9}]},{},[67])(67)\n});\nconst markdownit = define()\nexport default markdownit"
  },
  {
    "path": "app/userland/history/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://app-stdlib/css/fontawesome.css\";\n\nbody {\n  font-size: 13px;\n  background: var(--bg-color--secondary);\n}"
  },
  {
    "path": "app/userland/history/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport inputsCSS from 'beaker://app-stdlib/css/inputs.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n\n:host {\n  display: block;\n  overflow-y: auto;\n  height: 100vh;\n}\n\nheader {\n  padding: 14px 20px 0;\n  position: sticky;\n  top: 0;\n  max-width: 700px;\n  margin: 0 auto;\n  background: var(--bg-color--default);\n  z-index: 10;\n}\n\nmain {\n  max-width: 700px;\n  margin: 0 auto;\n  background: var(--bg-color--default);\n  padding: 0 20px;\n  min-height: calc(100vh - 150px);\n}\n\nnav {\n  display: flex;\n  margin-bottom: 12px;\n}\n\nnav a {\n  padding: 10px 12px;\n  border-radius: 4px;\n  margin-right: 5px;\n  cursor: pointer;\n  font-weight: 500;\n}\n\nnav a.current,\nnav a:hover {\n  background: var(--bg-color--semi-light);\n}\n\n.search-container {\n  position: relative;\n  width: 100%;\n  height: 32px;\n  z-index: 3;\n  margin-bottom: 10px;\n}\n\n.search-container .spinner,\n.search-container .close-btn,\n.search-container .search {\n  position: absolute;\n}\n\n.search-container i.fa-search {\n  position: absolute;\n  left: 10px;\n  top: 8.75px;\n  color: var(--text-color--light);\n}\n\n.search-container .close-btn {\n  right: 7px;\n  top: 7px;\n}\n\n.search-container input.search {\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  padding: 0 10px;\n  padding-left: 28px;\n  box-sizing: border-box;\n  border-color: var(--border-color--light);\n}\n\n.clear-history {\n  display: inline-block;\n  text-align: right;\n  margin-bottom: 10px;\n  cursor: pointer;\n  color: var(--blue);\n}\n\n.clear-history:hover {\n  text-decoration: underline;\n}\n\n.clear-history select {\n  margin-left: 5px;\n}\n\nselect {\n  background: var(--bg-color--secondary);\n  color: var(--text-color--default);\n  border-color: var(--border-color--light);\n}\n\n.heading {\n  position: sticky;\n  top: 130px;\n  z-index: 1;\n  padding: 5px 0;\n  margin: 0;\n  color: var(--text-color--light);\n  background: var(--bg-color--default);\n  border-bottom: 1px solid var(--border-color--light);\n  margin-bottom: -1px;\n  font-weight: 400;\n  font-size: 0.7rem;\n  text-transform: uppercase;\n  letter-spacing: 0.15px;\n}\n\n.heading:not(:first-of-type) {\n  margin-top: 40px;\n}\n\n.empty {\n  margin: 0;\n  padding: 10px;\n  background: var(--bg-color--light);\n  text-align: center;\n}\n\n.row {\n  display: flex;\n  align-items: center;\n  border: 1px solid var(--border-color--light);\n  border-top: 0;\n  padding: 0 15px;\n  height: 40px;\n  background: var(--bg-color--default);\n}\n\n.row:hover {\n  background: var(--bg-color--light);\n}\n\n.row .link {\n  display: flex;\n  align-items: center;\n  text-decoration: none;\n  color: var(--text-color--default);\n}\n\n.row .favicon {\n  display: inline;\n  flex-basis: 20px;\n  width: 20px;\n  height: 20px;\n  margin-right: 10px;\n}\n\n.row .title {\n  max-width: 450px;\n  display: inline-block;\n  margin-right: 5px;\n  color: var(--text-color--default);\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.row .url {\n  max-width: 200px;\n  margin-right: 20px;\n  color: var(--text-color--light);\n  font-weight: 300;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.row .actions {\n  margin-left: auto;\n  opacity: 0;\n}\n\n.row:hover .actions {\n  opacity: 1;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/history/index.html",
    "content": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <link rel=\"stylesheet\" href=\"/css/main.css\">\n  <title>Browsing History</title>\n</head>\n<body>\n  <history-app></history-app>\n  <script type=\"module\" src=\"/js/main.js\"></script>\n</body>\n</html>"
  },
  {
    "path": "app/userland/history/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { findParent } from 'beaker://app-stdlib/js/dom.js'\nimport _debounce from 'beaker://app-stdlib/vendor/lodash.debounce.js'\nimport moment from 'beaker://app-stdlib/vendor/moment.js'\nimport mainCSS from '../css/main.css.js'\n\n// how many px from bottom till more is loaded?\nconst BEGIN_LOAD_OFFSET = 500\n// how many to load in a batch?\nconst BATCH_SIZE = 20\n\nexport class HistoryApp extends LitElement {\n  static get styles () {\n    return mainCSS\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n    beaker.panes.attachToLastActivePane()\n\n    this.onUpdateSearchQueryDebounced = _debounce(this.onUpdateSearchQuery.bind(this), 500)\n    this.visits = []\n    this.isAtEnd = false\n    this.query = ''\n    this.closedTabs = false\n    this.currentPeriodFilter = 'all'\n    this.lastRenderedDate = undefined\n    this.isFetching = false\n\n    this.fillPage()\n    this.addEventListener('scroll', this.onScroll.bind(this))\n\n    this.addEventListener('click', e => {\n      // route navigations to the attached pane if present\n      var attachedPane = beaker.panes.getAttachedPane()\n      if (!attachedPane) return\n      let anchor = findParent(e.path[0], el => el.tagName === 'A')\n      if (anchor) {\n        if (!e.metaKey && anchor.getAttribute('target') !== '_blank') {\n          e.stopPropagation()\n          e.preventDefault()\n          beaker.panes.navigate(attachedPane.id, anchor.getAttribute('href'))\n        }\n      }\n    })\n  }\n\n  async fetchMore () {\n    if (this.isFetching) return\n    if (this.isAtEnd) return\n    return this.loadVisits(this.visits.length)\n  }\n\n  // load history until the scroll bar is visible, or no more history is found\n  async fillPage () {\n    this.visits.length = 0 // reset\n    this.isAtEnd = false\n    do {\n      await this.fetchMore()\n      this.requestUpdate()\n    } while (this.shadowRoot.scrollHeight < this.shadowRoot.clientHeight && !this.isAtEnd)\n  }\n\n  async loadVisits (offset) {\n    // reset isAtEnd if starting from 0\n    if (offset === 0) {\n      this.isAtEnd = false\n    }\n\n    this.isFetching = true\n    var before\n    var after\n    if (this.currentPeriodFilter === 'today') {\n      after = moment().startOf('day')\n    } else if (this.currentPeriodFilter === 'yesterday') {\n      after = moment().subtract(1, 'day').startOf('day')\n      before = moment().startOf('day')\n    }\n    var rows = await beaker.history.getVisitHistory({\n      before: +before,\n      after: +after,\n      offset,\n      limit: BATCH_SIZE,\n      search: this.query ? this.query : false,\n      tabClose: this.closedTabs\n    })\n    // did we reach the end?\n    if (rows.length === 0) {\n      this.isAtEnd = true\n    }\n\n    if (offset > 0) {\n      // append to the end\n      this.visits = this.visits.concat(rows)\n    } else {\n      // new results\n      this.visits = rows\n    }\n    this.requestUpdate()\n\n    this.isFetching = false\n  }\n\n  setClosedTabs (v) {\n    this.closedTabs = v\n    this.fillPage()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const navItem = (closedTabs, label) => html`\n      <a class=${this.closedTabs === closedTabs ? 'current' : ''} @click=${e => this.setClosedTabs(closedTabs)}>${label}</a>\n    `\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <header>\n        <nav>\n          ${navItem(false, 'All')}\n          ${navItem(true, 'Recently Closed Tabs')}\n        </nav>\n        ${this.renderSubheader()}\n      </header>\n      <main>\n        <div class=\"rows\">${this.renderRows()}</div>\n      </main>\n    `\n  }\n\n  renderRows () {\n    var rowEls = []\n    this.lastRenderedDate = moment().startOf('day').add(1, 'day')\n\n    this.visits.forEach((row, i) => {\n      // render a date heading if this post is from a different day than the last\n      var oldLastDate = this.lastRenderedDate\n      this.lastRenderedDate = moment(row.ts).endOf('day')\n      if (!this.lastRenderedDate.isSame(oldLastDate, 'day')) {\n        rowEls.push(html`\n          <div class=\"heading\">\n            ${ucfirst(niceDate(this.lastRenderedDate, { noTime: true }))}\n          </div>\n        `)\n      }\n\n      // render row\n      rowEls.push(this.renderRow(row, i))\n    })\n\n    // empty state\n    if (rowEls.length === 0) {\n      if (this.isFetching) {\n        rowEls.push(html`<p class=\"empty\">Loading...</p>`)\n      } else if (this.query) {\n        rowEls.push(html`<p class=\"view empty\">No results for \"${this.query}\"</p>`)\n      } else {\n        rowEls.push(html`<p class=\"empty\">No history... yet!</p>`)\n      }\n    }\n\n    return rowEls\n  }\n\n  renderClearHistoryButton () {\n    return html`\n      <span class=\"clear-history\">\n        <a @click=${this.onClickDeleteBulk}>\n          Clear history\n        </a>\n  \n        <select id=\"delete-period\">\n          <option value=\"day\" selected>from today</option>\n          <option value=\"week\">from this week</option>\n          <option value=\"month\">from this month</option>\n          <option value=\"all\">from all time</option>\n        </select>\n      </span>\n    `\n  }\n\n  renderRow (row, i) {\n    return html`\n      <div class=\"row\">\n        <a class=\"link\" href=${row.url} title=${row.title}>\n          <img class=\"favicon\" src=${'asset:favicon:' + row.url}/>\n          <span class=\"title\">${row.title.replace(/[^\\x00-\\x7F]/g, '')}</span>\n          <span class=\"url\">${getHostname(row.url)}</span>\n        </a>\n        <div class=\"actions\">\n          <div class=\"action\" @click=${e => this.onClickDelete(e, i)} title=\"Remove from history\">\n            <i class=\"fa fa-times icon\"></i>\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  renderSubheader () {\n    return html`\n      <div class=\"search-container\">\n        <input autofocus @keyup=${this.onUpdateSearchQueryDebounced} placeholder=\"Search your browsing history\" type=\"text\" class=\"search\"/>\n        ${this.query ? html`\n          <span @click=${this.onClearQuery} class=\"close-btn\">\n            <span class=\"fas fa-fw fa-times\"></span>\n          </span>\n        ` : ''}\n        <i class=\"fa fa-search\"></i>\n      </div>\n\n      ${this.renderClearHistoryButton()}\n    `\n  }\n\n  // events\n  // =\n\n  onUpdateSearchQuery (e) {\n    var newQuery = this.shadowRoot.querySelector('.search').value.toLowerCase()\n    if (newQuery !== this.query) {\n      this.query = newQuery\n      this.fillPage()\n    }\n  }\n\n  onClearQuery () {\n    this.shadowRoot.querySelector('input.search').value = ''\n    this.query = ''\n    this.fillPage()\n  }\n\n  onUpdatePeriodFilter (e) {\n    this.shadowRoot.querySelector('input.search').value = ''\n    this.query = ''\n    this.currentPeriodFilter = e.target.dataset.period\n    this.fillPage()\n  }\n\n  onScroll (e) {\n    if (this.isAtEnd) return\n\n    var el = this\n    if (el.offsetHeight + el.scrollTop + BEGIN_LOAD_OFFSET >= el.scrollHeight) {\n      // hit bottom\n      this.fetchMore()\n    }\n  }\n\n  onClickDelete (e, i) {\n    if (!confirm('Are you sure?')) return\n    var v = this.visits[i]\n    this.visits.splice(i, 1)\n    beaker.history.removeVisit(v.url)\n    this.requestUpdate()\n  }\n\n  onClickDeleteBulk () {\n    if (!confirm('Are you sure?')) return\n    var period = this.shadowRoot.querySelector('#delete-period').value\n\n    // clear all history\n    if (period === 'all') {\n      this.visits = []\n      beaker.history.removeAllVisits()\n      this.requestUpdate()\n    } else {\n      var threshold = moment().startOf(period).valueOf()\n\n      // filter out visits that with a timestamp >= threshold\n      this.visits = this.visits.filter(v => v.ts < threshold)\n      beaker.history.removeVisitsAfter(threshold)\n\n      // fetch and render more visits if possible\n      this.fetchMore()\n    }\n  }\n}\n\ncustomElements.define('history-app', HistoryApp)\n\n// internal\n// =\n\nfunction getHostname (str) {\n  try {\n    const u = new URL(str)\n    if (u.protocol === 'hyper:' && u.hostname.length === 64) {\n      return 'hyper://' + shortenHash(u.hostname)\n    }\n    return u.hostname\n  } catch (e) {\n    return str\n  }\n}\n\nfunction shortenHash (str, n = 6) {\n  if (str.startsWith('hyper://')) {\n    return 'hyper://' + shortenHash(str.slice('hyper://'.length).replace(/\\/$/, '')) + '/'\n  }\n  if (str.length > (n + 5)) {\n    return str.slice(0, n) + '..' + str.slice(-2)\n  }\n  return str\n}\n\nfunction ucfirst (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nfunction niceDate (ts, opts) {\n  const endOfToday = moment().endOf('day')\n  if (typeof ts === 'number') { ts = moment(ts) }\n  if (ts.isSame(endOfToday, 'day')) {\n    if (opts && opts.noTime) { return 'today' }\n    return ts.fromNow()\n  } else if (ts.isSame(endOfToday.subtract(1, 'day'), 'day')) { return 'yesterday' } else if (ts.isSame(endOfToday, 'month')) { return ts.fromNow() }\n  return ts.format('ll')\n}\n"
  },
  {
    "path": "app/userland/hypercore-tools/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n\n  font-size: 14px;\n  background: var(--bg-color--default);\n  color: var(--text-color--default);\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n\n  }\n}"
  },
  {
    "path": "app/userland/hypercore-tools/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport inputsCSS from 'beaker://app-stdlib/css/inputs.css.js'\nimport buttons2CSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${inputsCSS}\n${buttons2CSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\na[href]:hover {\n  text-decoration: underline;\n}\n\n#close-btn {\n  position: fixed;\n  z-index: 1;\n  top: 3px;\n  right: 8px;\n  cursor: pointer;\n}\n\n#hover-el {\n  position: fixed;\n  visibility: hidden;\n  z-index: 1;\n  transform: translateX(-50%);\n  background: var(--bg-color--semi-light);\n  padding: 4px 8px;\n  font-size: 12px;\n}\n\nnav {\n  display: flex;\n  background: var(--bg-color--semi-light);\n  border-bottom: 1px solid var(--border-color--default);\n  padding: 0 6px;\n}\n\nnav a {\n  padding: 4px 8px;\n  font-size: 11px;\n  cursor: pointer;\n}\n\nnav a:hover {\n  background: #0001;\n}\n\nnav a.current {\n  border-bottom: 1px solid var(--text-color--link);\n}\n\n.drives-list-header,\n.drives-list-item {\n  display: flex;\n  align-items: center;\n  font-size: 12px;\n}\n\n.drives-list-header {\n  border-bottom: 1px solid var(--border-color--light);\n  background: var(--bg-color--light);\n}\n\n.drives-list-item:nth-child(odd) {\n  background: var(--bg-color--light);\n}\n\n.drives-list-item:last-child {\n  border-bottom: 1px solid var(--border-color--semi-light);\n}\n\n.drives-list-item:hover {\n  cursor: pointer;\n  background: var(--bg-color--light-highlight);\n}\n\n.drives-list-item.selected {\n  background: var(--bg-color--selected);\n  color: var(--bg-color--default);\n}\n\n.drives-list-header > *,\n.drives-list-item > * {\n  border-left: 1px solid var(--border-color--semi-light);\n  padding: 3px 8px;\n  box-sizing: border-box;\n  font-variant: tabular-nums;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.drives-list-header > *:first-child,\n.drives-list-item > *:first-child {\n  border-left: 0;\n}\n\n.drives-list-header nav {\n  padding: 0 4px;\n  background: transparent;\n}\n\n.drives-list .key { flex: 0 0 150px; }\n.drives-list .type { flex: 0 0 50px; }\n.drives-list .initiator { flex: 0 0 180px; }\n.drives-list .peers { flex: 0 0 50px; }\n\n.drives-list-header > *:last-child,\n.drives-list-item > *:last-child {\n  flex: 1;\n}\n\n.drives-list-columns {\n  display: flex;\n}\n\n.drives-list-columns .list {\n  flex: 0 0 150px\n}\n\n.drives-list-columns .view {\n  flex: 1;\n  border-left: 1px solid var(--border-color--semi-light);\n  height: calc(100vh - 47px);\n  overflow: auto;\n}\n\n.drive {\n}\n\n.drive .mount-path {\n  font-size: 11px;\n  font-weight: bold;\n  padding: 6px 10px;\n  background: var(--bg-color--default);\n  border-bottom: 1px solid var(--border-color--light);\n}\n\nsection {\n  background: var(--bg-color--default);\n  padding: 10px;\n  border-bottom: 1px solid var(--border-color--light);\n}\n\nsection .label {\n  color: var(--text-color--light);\n  font-weight: 500;\n  font-size: 11px;\n  margin-bottom: 5px;\n  text-transform: uppercase;\n}\n\nsection .key,\nsection .stats {\n  font-size: 12px;\n}\n\nsection .discovery-key-icon {\n  font-size: 11px;\n  color: var(--text-color--very-light);\n}\n\nsection .discovery-key {\n  width: 200px;\n  word-break: break-all;\n}\n\nsection .blocks-grid {\n  margin-top: 2px;\n}\n\nsection .blocks-grid .block {\n  display: inline-block;\n  background: var(--bg-color--semi-light);\n  width: 1px;\n  height: 10px;\n}\n\nsection .blocks-grid .block.downloaded {\n  background: var(--bg-color--selected);\n}\n\nsection .blocks-grid .block.hover {\n  background: var(--bg-color--default);\n}\n\nsection.log .entries {\n  max-height: 100px;\n  overflow: auto;\n  background: var(--bg-color--light);\n  padding: 6px 8px;\n  border-radius: 4px;\n  font-size: 11px;\n  font-family: monospace;\n}\n\nsection.files {\n  padding: 0 10px 6px;\n  font-size: 11px;\n  font-variant: tabular-nums;\n}\n\nsection.files .file-header,\nsection.files .file {\n  display: flex;\n  align-items: center;\n}\n\nsection.files .file-header {\n  position: sticky;\n  top: 0;\n  padding: 4px 0;\n  background: var(--bg-color--default);\n  color: var(--text-color--pretty-light);\n}\n\nsection.files .indicator { flex: 0 0 6px; margin-right: 10px; }\nsection.files .path { flex: 1; }\nsection.files .size { flex: 0 0 120px; }\nsection.files .offset { flex: 0 0 50px; }\nsection.files .blocks { flex: 0 0 50px; }\n\nsection.files .file .indicator {\n  display: inline-block;\n  width: 6px;\n  height: 6px;\n  border-radius: 50%;\n  background: var(--bg-color--semi-light);\n}\n\nsection.files .file a.path {\n  color: var(--text-color--pretty-light);\n}\n\nsection.files .file.downloaded .indicator {\n  background: #2196F3;\n}\n\nsection.files .file.downloaded a {\n  color: var(--text-color--default);\n}\n\n.api-calls-grid.two {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n\n.api-calls-grid.two > * {\n  overflow: scroll;\n}\n\n.api-calls-grid.two > :first-child {\n  height: calc(30vh - 12px);\n}\n\n.api-calls-grid.two > :last-child {\n  height: calc(70vh - 12px);\n  border-top: 1px solid var(--border-color--light);\n}\n\n.api-calls {\n  width: 100vw;\n  overflow: hidden;\n}\n\n.api-calls table {\n  border-collapse: collapse;\n  width: 100%;\n}\n\n.api-calls table tr:hover {\n  cursor: pointer;\n  background: var(--bg-color--light);\n}\n\n.api-calls table :-webkit-any(th, td) {\n  text-align: left;\n  white-space: nowrap;\n  border-right: 1px solid var(--border-color--light);\n  border-bottom: 1px solid var(--border-color--light);\n  padding: 3px 6px;\n  font-size: 12px;\n}\n\n.api-calls table tr.selected td {\n  background: var(--bg-color--selected);\n  color: var(--bg-color--default);\n}\n\n.api-call-details {\n  box-sizing: border-box;\n  padding: 6px 10px;\n}\n\n.api-call-details > div:nth-child(even) {\n  padding: 8px 10px;\n  border-radius: 4px;\n  background: var(--bg-color--secondary);\n  margin-bottom: 10px;\n  width: 100%;\n  box-sizing: border-box;\n  overflow: auto;\n}\n\n.api-call-details pre {\n  margin: 0;\n  font-size: 12px;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/hypercore-tools/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Hypercore Tools</title>\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n    <link rel=\"shortcut icon\" href=\"asset:favicon:beaker://hypercore-tools\">\n  </head>\n  <body>\n    <hypercore-tools-app></hypercore-tools-app>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/hypercore-tools/js/lib/qp.js",
    "content": "export function setParams (kv, clear = false, replaceState = false) {\n  var url = (new URL(window.location))\n  if (clear) url.search = ''\n  for (var k in kv) {\n    if (kv[k]) {\n      url.searchParams.set(k, kv[k])\n    } else {\n      url.searchParams.delete(k)\n    }\n  }\n  if (replaceState) {\n    window.history.replaceState({}, null, url)\n  } else {\n    window.history.pushState({}, null, url)\n  }\n}\n\nexport function getParam (k, fallback) {\n  return (new URL(window.location)).searchParams.get(k) || fallback\n}"
  },
  {
    "path": "app/userland/hypercore-tools/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport * as QP from './lib/qp.js'\nimport css from '../css/main.css.js'\nimport { toHex, isSameOrigin, toNiceDomain, shorten } from 'beaker://app-stdlib/js/strings.js'\nimport { timeDifference } from 'beaker://app-stdlib/js/time.js'\nimport bytes from 'beaker://app-stdlib/vendor/bytes/index.js'\nimport 'beaker://app-stdlib/js/com/hover-card.js'\n\nclass HypercoreToolsApp extends LitElement {\n  static get styles () {\n    return [css]\n  }\n\n  static get properties () {\n    return {\n      selectedDrive: {type: Object},\n      selectedAPICall: {type: Number},\n      currentView: {type: String},\n      currentDriveView: {type: String}\n    }\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n    this.selectedDrive = undefined\n    this.currentView = 'hypercores'\n    this.currentDriveView = 'cores'\n    this.url = undefined\n    this.drivecores = []\n    this.apiCallLog = []\n    this.selectedAPICall = undefined\n    this.auditLogStream = undefined\n\n    var ignoreNextAttachEvent = false\n    beaker.panes.addEventListener('pane-attached', e => {\n      if (!ignoreNextAttachEvent) {\n        this.load(beaker.panes.getAttachedPane().url)\n      }\n      ignoreNextAttachEvent = false\n    })\n    beaker.panes.addEventListener('pane-navigated', e => {\n      this.load(e.detail.url)\n    })\n\n    ;(async () => {\n      var url = QP.getParam('url')\n      var attachedPane = await beaker.panes.attachToLastActivePane()\n      ignoreNextAttachEvent = !!attachedPane\n      if (url) {\n        this.load(url)\n      } else {\n        if (attachedPane) this.load(attachedPane.url)\n      }\n    })()\n  }\n\n  async load (url) {\n    if (!url?.startsWith('hyper://')) {\n      return\n    }\n    QP.setParams({url})\n    if (!(url && this.url && isSameOrigin(url, this.url))) {\n      this.selectedDrive = undefined\n    }\n    this.url = url\n    this.drivecores = await beaker.hyperdebug.listCores(url)\n    console.log(this.drivecores)\n    this.requestUpdate()\n    this.apiCallLog = []\n    this.bindApiLogEvents()\n\n    for (let drive of this.drivecores) {\n      drive.url = `hyper://${toHex(drive.metadata.key)}`\n\n      drive.metadata.downloadedBlockBits = await beaker.hyperdebug.hasCoreBlocks(drive.metadata.key, 0, drive.metadata.totalBlocks)\n      drive.metadata.log = []\n      this.bindCoreLogEvents(drive.metadata, drive.url, 'metadata')\n      this.requestUpdate()\n\n      drive.content.downloadedBlockBits = await beaker.hyperdebug.hasCoreBlocks(drive.content.key, 0, drive.content.totalBlocks)\n      drive.content.log = []\n      this.bindCoreLogEvents(drive.content, drive.url, 'content')\n      this.requestUpdate()\n\n      try {\n        drive.files = await beaker.hyperdrive.readdir(drive.url, {recursive: true, includeStats: true})\n        drive.files.sort((a, b) => a.name.localeCompare(b.name))\n      } catch (e) {\n        drive.filesError = e.toString()\n      }\n      this.requestUpdate()\n    }\n  }\n\n  async bindApiLogEvents () {\n    this.selectedAPICall = undefined\n    if (this.auditLogStream) this.auditLogStream.close()\n    this.auditLogStream = await beaker.logger.streamAuditLog({caller: this.url, includeResponse: true})\n    this.auditLogStream.addEventListener('data', e => {\n      this.apiCallLog.push(e.detail)\n      if (this.currentView === 'api-calls') {\n        this.requestUpdate()\n      }\n    })\n  }\n\n  bindCoreLogEvents (core, url, corename) {\n    const log = (...args) => {\n      core.log.unshift(args.join(' '))\n      this.requestUpdate()\n    }\n    var events = beaker.hyperdebug.createCoreEventStream(url, corename)\n    events.addEventListener('ready', () => log('Ready'))\n    events.addEventListener('opened', () => log('Opened'))\n    events.addEventListener('error', (err) => log('Error', err))\n    events.addEventListener('peer-add', (peer) => {\n      core.peers++\n      log('Peer Added:', peer.remoteAddress)\n    })\n    events.addEventListener('peer-remove', (peer) => {\n      core.peers--\n      log('Peer Removed:', peer.remoteAddress)\n    })\n    events.addEventListener('peer-open', (peer) => log('Peer Connected:', peer.remoteAddress))\n    events.addEventListener('download', (index) => {\n      core.downloadedBlockBits[index] = true\n      log('Downloaded block', index)\n    })\n    events.addEventListener('upload', (index) => log('Uploading block', index))\n    events.addEventListener('append', () => log('Block appended'))\n    events.addEventListener('sync', () => log('Sync'))\n    events.addEventListener('close', () => log('Closed'))\n  }\n\n  setHoverEl (visible, {label, left, top} = {}) {\n    let el = this.shadowRoot.querySelector('#hover-el')\n    if (visible) {\n      el.style.visibility = 'visible'\n      el.style.left = left + 'px'\n      el.style.top = top + 'px'\n      el.textContent = label\n    } else {\n      el.style.visibility = 'hidden'\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const mainNavItem = (id, label) => html`\n      <a\n        class=\"${id === this.currentView ? 'current' : ''}\"\n        @click=${e => this.currentView = id}\n      >${label}</a>\n    `\n    const driveNavItem = (id, label) => html`\n      <a\n        class=\"${id === this.currentDriveView ? 'current' : ''}\"\n        @click=${e => this.currentDriveView = id}\n      >${label}</a>\n    `\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div id=\"hover-el\"></div>\n      <span id=\"close-btn\" @click=${window.close}><span class=\"fas fa-times\"></span></span>\n      <nav>\n        ${mainNavItem('hypercores', 'Hypercores')}\n        ${mainNavItem('api-calls', 'API Calls')}\n      </nav>\n      <main>\n        ${this.currentView === 'hypercores' ? html`\n          ${this.selectedDrive ? html`\n            <div class=\"drives-list\">\n              <div class=\"drives-list-header\">\n                <div class=\"key\">Key</div>\n                <nav>\n                  <a @click=${this.onClickDeselectDrive}>&times;</a>\n                  ${driveNavItem('cores', 'Cores')}\n                  ${driveNavItem('files', 'Files')}\n                </nav>\n              </div>\n              <div class=\"drives-list-columns\">\n                <div class=\"list\">\n                  ${this.drivecores.map(this.renderDriveListItemShort.bind(this))}\n                </div>\n                <div class=\"view\">\n                  ${this.currentDriveView === 'cores' ? html`\n                    ${this.renderDriveCores(this.selectedDrive)}\n                  ` : this.currentDriveView === 'files' ? html`\n                    ${this.renderDriveFiles(this.selectedDrive)}\n                  ` : ''}\n                </div>\n              </div>\n            </div>\n          ` : html`\n            <div class=\"drives-list\">\n              <div class=\"drives-list-header\">\n                <div class=\"key\">Key</div>\n                <div class=\"type\">Type</div>\n                <div class=\"initiator\">Initiator</div>\n                <div class=\"peers\">Peers</div>\n                <div class=\"blocks\">Blocks</div>\n              </div>\n              ${this.drivecores.map(this.renderDriveListItemFull.bind(this))}\n            </div>\n          `}\n        ` : ''}\n        ${this.currentView === 'api-calls' ? html`\n          <div class=\"api-calls-grid ${this.selectedAPICall !== undefined ? 'two' : 'one'}\">\n            <div>${this.renderAPICalls()}</div>\n            ${this.selectedAPICall !== undefined ? html`\n              <div>${this.renderSelectedAPICall()}</div>\n            ` : ''}\n          </div>\n        ` : ''}\n      </main>\n    `\n  }\n\n  renderDriveListItemShort (drive, index) {\n    let keyStr = toHex(drive.metadata.key)\n    return html`\n      <div\n        class=\"drives-list-item ${this.selectedDrive === drive ? 'selected' : ''}\"\n        @click=${e => this.onClickDriveListItem(e, drive)}\n      >\n        <div class=\"key\">${keyStr.slice(0, 8)}..${keyStr.slice(-2)}</div>\n      </div>\n    `\n  }\n\n  renderDriveListItemFull (drive, index) {\n    let keyStr = toHex(drive.metadata.key)\n    let totalBlocks = drive.metadata.totalBlocks + (drive.content.totalBlocks || 0)\n    let downloadedBlocks = drive.metadata.downloadedBlocks + (drive.content.downloadedBlocks || 0)\n    return html`\n      <div\n        class=\"drives-list-item ${this.selectedDrive === drive ? 'selected' : ''}\"\n        @click=${e => this.onClickDriveListItem(e, drive)}\n      >\n        <div class=\"key\">${keyStr.slice(0, 8)}..${keyStr.slice(-2)}</div>\n        <div class=\"type\">Drive</div>\n        <div class=\"initiator\">${index === 0 ? 'Browser' : `Mount (${drive.path})`}</div>\n        <div class=\"peers\">${drive.metadata.peers}</div>\n        <div class=\"blocks\">${totalBlocks} (${Math.round(downloadedBlocks / totalBlocks * 100)}% downloaded)</div>\n      </div>\n    `\n  }\n\n  renderDriveCores (drive) {\n    return html`\n      <div class=\"drive\">\n        ${drive.path !== '/' ? html`<div class=\"mount-path\">Mounted at ${drive.path}</div>` : ''}\n        ${this.renderCore(drive.metadata, 'Metadata')}\n        ${this.renderLog(drive.metadata, 'Metadata')}\n        ${this.renderCore(drive.content, 'Content')}\n        ${this.renderLog(drive.metadata, 'Content')}\n      </div>\n    `\n  }\n\n  renderDriveFiles (drive) {\n    return html`\n      <div class=\"drive\">\n        ${drive.path !== '/' ? html`<div class=\"mount-path\">Mounted at ${drive.path}</div>` : ''}\n        ${this.renderFiles(drive)}\n      </div>\n    `\n  }\n\n  renderCore (core, label) {\n    if (!core.key) {\n      return html`\n      <section class=\"core\">\n        <div class=\"label\">${label} Core</div>\n        <div class=\"error\">Not loaded</div>\n      </section>\n      `\n    }\n    return html`\n      <section class=\"core\">\n        <div class=\"label\">\n          ${label} Core\n          <beaker-hover-card>\n            <span slot=\"el\" class=\"discovery-key-icon fas fa-info-circle\"></span>\n            <div slot=\"card\" class=\"discovery-key\"><strong>Discovery Key:</strong><br>${toHex(core.discoveryKey)}</div></div>\n          </beaker-hover-card>\n        </div>\n        <div class=\"key\">\n          ${toHex(core.key)}\n        </div>\n        <div class=\"stats\">\n          <span class=\"peers\"><small>Peers:</small> ${core.peers}</span>\n          <span class=\"blocks-summary\"><small>Blocks:</small> ${core.totalBlocks}</span>\n        </div>\n        <div class=\"blocks-grid\">\n          ${this.renderBlocks(core)}\n        </div>\n      </section>\n    `\n  }\n\n  renderLog (core, label) {\n    return html`\n      <section class=\"log\">\n        <div class=\"label\">${label} Core Log</div>\n        <div class=\"entries\">\n          ${core.log?.map(entry => html`<div>${entry}</div>`)}\n        </div>\n      </section>\n    `\n  }\n\n  renderBlocks (core) {\n    var blockEls = []\n    for (let i = 0; i < core.totalBlocks; i++) {\n      blockEls.push(html`<div\n        class=\"block ${core.downloadedBlockBits?.[i] ? 'downloaded' : ''}\"\n        data-index=${i}\n        data-downloaded=${core.downloadedBlockBits?.[i] ? '1' : undefined}\n        @mouseover=${this.onMouseoverBlock}\n        @mouseout=${this.onMouseoutBlock}\n      ></div>`)\n    }\n    return blockEls\n  }\n\n  renderFiles (drive) {\n    if (drive.filesError) {\n      return html`<section class=\"files error\"><div class=\"label\">Files</div>${drive.filesError}</section>`\n    }\n    if (!drive.files) {\n      return html`<section class=\"files loading\"><div class=\"label\">Files</div><span class=\"spinner\"></span></section>`\n    }\n    return html`\n      <section class=\"files\">\n        <div class=\"file-header\">\n          <span class=\"indicator\"></span>\n          <span class=\"path\">Path</span>\n          <span class=\"size\">Size</span>\n          <span class=\"offset\">Offset</span>\n          <span class=\"blocks\">Blocks</span>\n        </div>\n        ${drive.files.map(file => {\n          var d = file.stat.size === 0 || isRangeDownloaded(\n            drive.content.downloadedBlockBits,\n            file.stat.offset,\n            file.stat.blocks\n          )\n          return html`\n            <div class=\"file ${d ? 'downloaded' : ''}\">\n              <span class=\"indicator\"></span>\n              <a class=\"path\" href=\"${drive.url}/${file.name}\" target=\"_blank\">/${file.name}</a>\n              <span class=\"size\">${bytes(file.stat.size)}</span>\n              <span class=\"offset\">${file.stat.offset}</span>\n              <span class=\"blocks\">${file.stat.blocks}</span>\n            </div>\n          `\n        })}\n      </section>\n    `\n  }\n\n  renderAPICalls () {\n    return html`\n      <div class=\"api-calls\">\n        <table class=\"rows\">\n          <thead>\n            <tr class=\"logger-row\">\n              <th class=\"method\">method</th>\n              <th class=\"runtime\">run time</th>\n              <th class=\"args\">args</th>\n            </tr>\n          </thead>\n          <tbody>${this.apiCallLog.map((row, i) => {\n            return html`\n              <tr\n                class=\"logger-row ${this.selectedAPICall === i ? 'selected' : ''}\"\n                @click=${e => {this.selectedAPICall = i}}\n              >\n                <td class=\"method\"><code>${row.method}</code></td>\n                <td class=\"runtime\"><code>${row.runtime}ms</code></td>\n                <td class=\"args\"><code>${shorten(row.args, 100)}</code></td>\n              </tr>\n            `\n          })}</tbody>\n        </table>\n      </div>\n    `\n  }\n\n  renderSelectedAPICall () {\n    var call = this.apiCallLog[this.selectedAPICall]\n    console.log(call)\n    if (!call) return ''\n    var args = call.args\n    try { args = JSON.parse(args) }\n    catch {}\n    return html`\n      <div class=\"api-call-details\">\n        <div><strong>Method</strong></div>\n        <div>${call.method}</div>\n        <div><strong>Run time</strong></div>\n        <div>${call.runtime}ms</div>\n        <div><strong>Arguments</strong></div>\n        <div>\n          ${call.method === 'index.gql' ? html`\n            <pre>${multilineTrim(args.query)}</pre>\n            <pre>${JSON.stringify(args.variables, null, 2)}</pre>\n          ` : html`\n            <pre>${JSON.stringify(args, null, 2)}</pre>\n          `}\n        </div>\n        ${call.response ? html`\n          <div><strong>Result</strong></div>\n          <div><pre>${JSON.stringify(call.response, null, 2)}</pre></div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onClickDeselectDrive (e) {\n    this.selectedDrive = undefined\n  }\n\n  onClickDriveListItem (e, drive) {\n    this.selectedDrive = drive\n  }\n\n  onMouseoverBlock (e) {\n    let rect = e.currentTarget.getClientRects()[0]\n    e.currentTarget.classList.add('hover')\n    this.setHoverEl(true, {\n      label: `Block ${e.currentTarget.dataset.index} (${e.currentTarget.dataset.downloaded == '1' ? '' : 'Not '}Downloaded)`,\n      left: rect.left,\n      top: rect.bottom + 10\n    })\n  }\n\n  onMouseoutBlock (e) {\n    e.currentTarget.classList.remove('hover')\n    this.setHoverEl(false)\n  }\n}\n\ncustomElements.define('hypercore-tools-app', HypercoreToolsApp)\n\nfunction isRangeDownloaded (bits, offset, blocks) {\n  for (let i = offset; i < (offset + blocks); i++) {\n    if (!bits[i]) return false\n  }\n  return true\n}\n\nfunction multilineTrim (str) {\n  var start = undefined\n  var lines = str.split('\\n')\n  var out = []\n  for (let line of lines) {\n    if (typeof start === 'undefined') {\n      start = /\\S/.exec(line)?.index\n    }\n    if (typeof start === 'undefined') {\n      continue\n    }\n    out.push(line.slice(start))\n  }\n  return out.join('\\n')\n}"
  },
  {
    "path": "app/userland/init/index.html",
    "content": "<!doctype html>\n<head>\n  <style>\n    body {\n     -webkit-app-region: drag;\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      background: #fff;\n      margin: 0;\n      overflow: hidden;\n    }\n    #info {\n      height: 50vh;\n      display: flex;\n      align-items: center;\n      flex-direction: column;\n      justify-content: center;\n    }\n    .spinner {\n      margin-right: 4px;\n      position: relative;\n      top: 2px;\n      left: 2px;\n    }\n    .top {\n      font-size: 19px;\n    }\n    .bottom {\n      font-size: 15px;\n      color: gray;\n    }\n    #log {\n      background: #fafafa;\n      border-top: 1px solid #ccd;\n      width: 100vw;\n      height: 50vh;\n      padding: 10px;\n      box-sizing: border-box;\n      overflow: auto;\n      font-size: 12px;\n      word-break: break-word;\n     -webkit-app-region: no-drag;\n    }\n  </style>\n  <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/com/spinner.css\">\n</head>\n<body>\n  <div id=\"info\">\n    <div class=\"top\">\n      <span class=\"spinner\"></span> Initializing Beaker...\n    </div>\n    <div class=\"bottom\">\n      This may take a moment\n    </div>\n  </div>\n  <div id=\"log\"></div>\n  <script src=\"/index.js\"></script>\n</body>"
  },
  {
    "path": "app/userland/init/index.js",
    "content": "beaker.logger.stream().addEventListener('data', data => {\n  var el = document.createElement('details')\n  var summary = document.createElement('summary')\n  summary.innerHTML = `${data.message} <small>[${data.level}]</small>`\n  el.append(summary)\n  el.append(JSON.stringify(data, null, 2))\n  log.append(el)\n})"
  },
  {
    "path": "app/userland/init/shutdown.html",
    "content": "<!doctype html>\n<head>\n  <style>\n    body {\n     -webkit-app-region: drag;\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      background: #fff;\n      margin: 0;\n      overflow: hidden;\n    }\n    #info {\n      height: 100vh;\n      display: flex;\n      align-items: center;\n      flex-direction: column;\n      justify-content: center;\n    }\n    .spinner {\n      margin-right: 4px;\n      position: relative;\n      top: 2px;\n      left: 2px;\n    }\n    .top {\n      font-size: 19px;\n    }\n    .bottom {\n      font-size: 15px;\n      color: gray;\n    }\n  </style>\n  <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/com/spinner.css\">\n</head>\n<body>\n  <div id=\"info\">\n    <div class=\"top\">\n      <span class=\"spinner\"></span> Closing Beaker...\n    </div>\n    <div class=\"bottom\">\n      This may take a moment\n    </div>\n  </div>\n</body>"
  },
  {
    "path": "app/userland/library/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://app-stdlib/css/fontawesome.css\";\n\nbody {\n  --text-color--nav--highlight: #445;\n  --bg-color--header-search: #fafafd;\n  --bg-color--new-btn--highlight: #fafafd;\n  --bg-color--nav--highlight: #e3e6fd;\n\n  font-size: 13px;\n  background: #fff;\n  color: #333;\n  overflow: hidden;\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --text-color--nav--highlight: #bbb;\n    --bg-color--header-search: #303030;\n    --bg-color--new-btn--highlight: #303030;\n    --bg-color--nav--highlight: #333;\n\n    background: #222;\n    color: #ccc;\n  }\n}"
  },
  {
    "path": "app/userland/library/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport inputsCSS from 'beaker://app-stdlib/css/inputs.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  min-height: 100vh;\n  background: var(--bg-color--default);\n}\n\na {\n  color: var(--blue);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\nheader {\n  display: grid;\n  grid-template-columns: 190px 1fr auto;\n  padding: 10px;\n  position: sticky;\n  top: 0;\n  z-index: 1;\n  border-bottom: 1px solid var(--border-color--light);\n}\n\nheader .brand {\n  display: flex;\n  align-items: center;\n  font-size: 18px;\n  line-height: 35px;\n  padding-left: 7px;\n  color: var(--text-color--lightish);\n}\n\nheader .brand img {\n  margin-right: 2px;\n  width: 18px;\n  color: #2196F3;\n}\n\nheader .search-ctrl {\n  position: relative;\n}\n\nheader .search-ctrl .fa-search {\n  position: absolute;\n  left: 14px;\n  top: 11px;\n  font-size: 16px;\n  color: #bbc;\n}\n\nheader .search-ctrl input {\n  background: var(--bg-color--header-search);\n  color: inherit;\n  box-sizing: border-box;\n  width: 100%;\n  height: 36px;\n  padding: 0 0 0 42px;\n  border: 0;\n  border-radius: 6px;\n  box-shadow: none;\n}\n\nheader .search-ctrl input::placeholder {\n  letter-spacing: 1px;\n  color: inherit;\n}\n\nheader .new-btn {\n  padding: 4px 4px 4px 12px;\n}\n\n.layout {\n  display: grid;\n  grid-template-columns: 200px 1fr;\n}\n\nnav .page-nav a {\n  display: block;\n  padding: 10px 20px;\n  color: var(--text-color--lightish);\n  margin: 10px;\n  border-radius: 26px;\n  font-weight: 400;\n  letter-spacing: 0.5px;\n}\n\nnav .page-nav a:hover {\n  background: var(--bg-color--light);\n  cursor: pointer;\n  text-decoration: none;\n}\n\nnav .page-nav a.current {\n  background: var(--bg-color--nav--highlight);\n  color: var(--text-color--link);\n  font-weight: bold;\n}\n\nnav .page-nav a .fa-fw {\n  margin-right: 5px;\n}\n\nmain {\n  max-height: calc(100vh - 58px);\n  overflow-y: auto;\n}\n\naddress-book-view,\nbookmarks-view,\ndownloads-view,\ndrives-view,\nhistory-view {\n  padding-bottom: 100px;\n}\n\n@media (max-width: 960px) {\n  header {\n    grid-template-columns: 120px 1fr auto;\n    padding: 5px;\n  }\n\n  header .brand {\n    font-size: 16px;\n    line-height: 35px;\n    padding-left: 7px;\n    color: var(--text-color--lightish);\n  }\n\n  header .brand .fas {\n    margin-right: 2px;\n    font-size: 15px;\n    color: #2196F3;\n  }\n  .layout {\n    display: block;\n  }\n  .page-nav {\n    display: flex;\n    border-bottom: 1px solid var(--border-color--light);\n  }\n  nav .page-nav a {\n    margin: 0;\n    border-radius: 0;\n    padding: 8px 14px;\n  }\n  nav .page-nav a.current {\n    font-weight: 500;\n  }\n  nav .page-nav a .fa-fw {\n    margin-right: 0;\n  }\n}\n\n@media (max-width: 660px) {\n  nav .page-nav a .label {\n    display: none;\n  }\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/library/css/views/bookmarks.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\n.bookmarks {\n  font-size: 13px;\n  box-sizing: border-box;\n  user-select: none;\n}\n\n:host(:not(.full-size)) .bookmarks {\n  max-width: 1000px;\n  margin: 0 auto;\n}\n\n.bookmarks .empty {\n  font-size: 16px;\n  letter-spacing: 0.7px;\n  color: var(--text-color--light);\n  padding: 120px 0px;\n  background: var(--bg-color--light);\n  text-align: center;\n}\n\n.bookmarks .empty .far {\n  font-size: 120px;\n  margin-bottom: 30px;\n  color: var(--text-color--light);\n}\n\n.bookmark {\n  display: flex;\n  align-items: center;\n  padding: 6px 14px;\n  color: var(--text-color--light);\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n:host(.top-border) .bookmark:first-child {\n  border-top: 1px solid var(--border-color--light);\n}\n\n.bookmark.private {\n  background: var(--bg-color--private-light);\n  color: var(--text-color--private-default);\n  border-color: var(--border-color--private-light);\n}\n\n.bookmark:hover {\n  text-decoration: none;\n  background: var(--bg-color--light);\n}\n\n.bookmark.private:hover {\n  background: var(--bg-color--private-semi-light);\n}\n\n.bookmark > * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.bookmark .favicon {\n  display: block;\n  width: 16px;\n  height: 16px;\n  margin-right: 12px;\n}\n\n.bookmark .title {\n  font-weight: 400;\n  margin-right: 20px;\n  flex: 1;\n  font-size: 14px;\n  margin-right: 0px;\n  color: var(--text-color--default);\n}\n\n.bookmark.private .title {\n}\n\n.bookmark .href {\n  flex: 1;\n  color: inherit;\n}\n\n.bookmark .info {\n  flex: 0 0 100px;\n  color: inherit;\n}\n\n.bookmark .ctrls {\n  width: 40px;\n}\n\n@media (max-width: 700px) {\n  .bookmark {\n    font-size: 12px;\n  }\n  .bookmark .favicon {\n    width: 12px;\n    height: 12px;\n  }\n  .bookmark .title {\n    font-size: 12px;\n  }\n  .bookmark .info {\n    flex: 0 0 50px;\n  }\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/library/css/views/downloads.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\na[href]:hover {\n  text-decoration: underline;\n}\n\n.downloads {\n  font-size: 13px;\n  box-sizing: border-box;\n}\n\n.downloads .empty {\n  font-size: 17px;\n  letter-spacing: 0.75px;\n  color: #667;\n  padding: 28px 40px;\n}\n\n.download {\n  display: flex;\n  align-items: center;\n  padding: 18px 24px;\n  color: inherit;\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n.download .title {\n  flex: 1;\n}\n\n.download .title strong {\n  margin-right: 10px;\n}\n\n.download .metadata {\n  width: 300px;\n}\n\n.download .metadata progress {\n  margin-right: 10px;\n  width: 40px;\n}\n\n.download .metadata > *:not(:first-child) {\n  margin-left: 5px;\n}\n\n.download .metadata > * {\n  margin-right: 3px;\n}\n\n.download .controls {\n  width: 80px;\n  text-align: right;\n}\n\n.download .link {\n  color: #2864dc;\n  cursor: pointer;\n}\n\n.download .link:hover {\n  text-decoration: underline;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/library/css/views/drives.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from 'beaker://app-stdlib/css/buttons2.css.js'\nimport inputsCSS from 'beaker://app-stdlib/css/inputs.css.js'\nimport tooltipCSS from 'beaker://app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n  cursor: initial;\n}\n\na[href]:hover {\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.drives {\n  font-size: 13px;\n  box-sizing: border-box;\n  user-select: none;\n}\n\n.drives .empty {\n  font-size: 16px;\n  letter-spacing: 0.7px;\n  color: var(--text-color--light);\n  padding: 120px 0px;\n  background: var(--bg-color--light);\n  text-align: center;\n}\n\n.drives .empty .fas {\n  font-size: 120px;\n  margin-bottom: 10px;\n  color: var(--text-color--light);\n}\n\n:host(.top-border) .drive:first-child {\n  border-top: 1px solid var(--border-color--light);\n}\n\n.drive {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 6px 14px;\n  color: var(--text-color--lightish);\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n:host([simple]) .drive {\n  border: 0;\n  padding: 8px 4px;\n}\n\n.drive:hover {\n  text-decoration: none !important;\n  background: var(--bg-color--light);\n}\n\n.drive > * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.drive a {\n  color: #99a;\n  font-weight: 500;\n  letter-spacing: -0.5px;\n}\n\n.drive .favicon {\n  display: block;\n  width: 16px;\n  height: 16px;\n  object-fit: cover;\n  margin-right: 12px;\n}\n\n:host([simple]) .drive .favicon {\n  margin-right: 10px;\n}\n\n.drive .title {\n  font-weight: 400;\n  margin-right: 20px;\n  flex: 1;\n  font-size: 14px;\n  margin-right: 0px;\n}\n\n.drive .title a {\n  color: #555;\n  letter-spacing: 0;\n}\n\n.drive .description {\n  color: #99a;\n  overflow: hidden;\n  flex: 2;\n}\n\n.drive .owner {\n  flex: 0 0 50px;\n  color: #99a;\n}\n\n.drive .forks {\n  flex: 0 0 100px;\n}\n\n.drive .peers {\n  flex: 0 0 100px;\n  min-width: 90px;\n}\n\n.drive .ctrls {\n  width: 40px;\n}\n\n.drive .fa-share-alt {\n  position: relative;\n  top: -1px;\n  font-size: 9px;\n}\n\n.drive .fa-code-branch {\n  position: relative;\n  top: -1px;\n  font-size: 10px;\n}\n\n.drive .type {\n  letter-spacing: -0.2px;\n  color: green;\n  overflow: visible;\n}\n\n.forks-container {\n  position: relative;\n  border-left: 40px solid var(--bg-color--light);\n}\n\n.tag {\n  display: inline-block;\n  padding: 1px 5px;\n  background: #4CAF50;\n  color: #fff;\n  text-shadow: 0 1px 0px #0004;\n  border-radius: 4px;\n  font-size: 10px;\n  margin-right: 2px;\n}\n\n@media (max-width: 700px) {\n  .drive {\n    font-size: 12px;\n  }\n  .drive .favicon {\n    width: 12px;\n    height: 12px;\n  }\n  .drive .title {\n    font-size: 12px;\n  }\n  .drive .description {\n    display: none;\n  }\n  .drive .peers {\n    flex: 0 0 60px;\n    min-width: 50px;\n  }\n  .drive .forks {\n    flex: 0 0 50px;\n  }\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/library/css/views/history.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${spinnerCSS}\n\n:host {\n  display: block;\n}\n\na {\n  text-decoration: none;\n}\n\n.links {\n  font-size: 13px;\n  box-sizing: border-box;\n  user-select: none;\n}\n\n.links .empty {\n  font-size: 16px;\n  letter-spacing: 0.7px;\n  color: var(--text-color--light);\n  padding: 120px 0px;\n  background: var(--bg-color--light);\n  text-align: center;\n}\n\n.links .empty .fas {\n  font-size: 120px;\n  margin-bottom: 30px;\n  color: var(--text-color--light);\n}\n\n.link {\n  display: flex;\n  align-items: center;\n  height: 27px;\n  padding: 6px 14px;\n  color: var(--text-color--lightish);\n  border-bottom: 1px solid var(--border-color--light);\n}\n\n:host(.top-border) .link:first-child {\n  border-top: 1px solid var(--border-color--light);\n}\n\n.link:hover {\n  text-decoration: none;\n  background: var(--bg-color--light);\n}\n\n.link > * {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.link img {\n  display: block;\n  width: 16px;\n  height: 16px;\n  margin-right: 12px;\n  object-fit: cover;\n}\n\n.link .title {\n  flex: 1;\n  font-weight: 400;\n  margin-right: 20px;\n}\n\n.link .url {\n  flex: 1;\n  color: #99a;\n}\n\n@media (max-width: 700px) {\n  .links {\n    font-size: 12px;\n  }\n  .links .favicon {\n    width: 12px;\n    height: 12px;\n  }\n  .links .title {\n    font-size: 12px;\n  }\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/library/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n    <title>My Library</title>\n  </head>\n  <body>\n    <app-main></app-main>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/library/js/main.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport * as toast from 'beaker://app-stdlib/js/com/toast.js'\nimport { findParent } from 'beaker://app-stdlib/js/dom.js'\nimport { EditBookmarkPopup } from 'beaker://app-stdlib/js/com/popups/edit-bookmark.js'\nimport mainCSS from '../css/main.css.js'\nimport './views/drives.js'\nimport './views/bookmarks.js'\nimport './views/history.js'\nimport './views/downloads.js'\n\nexport class LibraryApp extends LitElement {\n  static get properties () {\n    return {\n      view: {type: String},\n      filter: {type: String}\n    }\n  }\n\n  static get styles () {\n    return mainCSS\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n    beaker.panes.attachToLastActivePane()\n\n    this.view = ''\n    const getView = () => {\n      var view = location.pathname.slice(1)\n      return view === '' ? 'drives' : view\n    }\n    this.setView(getView())\n    window.addEventListener('popstate', (event) => {\n      this.setView(getView())\n    })\n\n    this.addEventListener('click', e => {\n      // route navigations to the attached pane if present\n      var attachedPane = beaker.panes.getAttachedPane()\n      if (!attachedPane) return\n      let anchor = findParent(e.path[0], el => el.tagName === 'A')\n      if (anchor) {\n        if (!e.metaKey && anchor.getAttribute('target') !== '_blank') {\n          e.stopPropagation()\n          e.preventDefault()\n          beaker.panes.navigate(attachedPane.id, anchor.getAttribute('href'))\n        }\n      }\n    })\n  }\n\n  async setView (view) {\n    if (this.view === view) return\n    this.view = view\n\n    var pathname = `/${view}`\n    if (location.pathname !== pathname) {\n      window.history.pushState({}, '', pathname)\n    }\n\n    await this.requestUpdate()\n    this.shadowRoot.querySelector('[loadable]').load()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    const pageNav = (view, label) => html`\n      <a class=\"${this.view === view ? 'current' : ''}\" @click=${e => this.setView(view)}>\n        ${label}\n      </a>\n    `\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      <header>\n        <div class=\"brand\">\n          <img src=\"asset:favicon:beaker://library/\">\n          My Library\n        </div>\n        <div class=\"search-ctrl\">\n          <span class=\"fas fa-search\"></span>\n          <input placeholder=\"Search ${this.view.replace('-', ' ')}\" @keyup=${e => {this.filter = e.currentTarget.value.toLowerCase()}}>\n        </div>\n        ${this.renderNewBtn()}\n      </header>\n      <div class=\"layout\">\n        <nav>\n          <div class=\"page-nav\">\n            ${pageNav('drives', html`<span class=\"fas fa-fw fa-sitemap\"></span> <span class=\"label\">Hyperdrives</span>`)}\n            ${pageNav('bookmarks', html`<span class=\"far fa-fw fa-star\"></span> <span class=\"label\">Bookmarks</span>`)}\n            ${pageNav('history', html`<span class=\"fas fa-fw fa-history\"></span> <span class=\"label\">History</span>`)}\n            ${pageNav('downloads', html`<span class=\"fas fa-fw fa-arrow-down\"></span> <span class=\"label\">Downloads</span>`)}\n          </div>\n        </nav>\n        <main>\n          ${this.view === 'drives' ? html`\n            <drives-view class=\"full-size\" .filter=${this.filter} loadable></drives-view>\n          ` : ''}\n          ${this.view === 'bookmarks' ? html`\n            <bookmarks-view class=\"full-size\" .filter=${this.filter} loadable></bookmarks-view>\n          ` : ''}\n          ${this.view === 'history' ? html`\n            <history-view class=\"full-size\" .filter=${this.filter} loadable></history-view>\n          ` : ''}\n          ${this.view === 'downloads' ? html`\n            <downloads-view class=\"full-size\" .filter=${this.filter} loadable></downloads-view>\n          ` : ''}\n        </main>\n      </div>\n    `\n  }\n\n  renderNewBtn () {\n    if (this.view === 'drives') {\n      return html`\n        <span class=\"new-btn\"><button @click=${this.onCreateDrive}>New Hyperdrive</button></span>\n      `\n    }\n    if (this.view === 'bookmarks') {\n      return html`\n        <span class=\"new-btn\"><button @click=${this.onCreateBookmark}>New Bookmark</button></span>\n      `\n    }\n\n  }\n\n  // events\n  // =\n\n  async onCreateDrive () {\n    var drive = await beaker.hyperdrive.createDrive()\n    toast.create('Drive created')\n    beaker.browser.openUrl(drive.url, {setActive: true, addedPaneUrls: ['beaker://editor/']})\n    if (this.view === 'drives') {\n      this.shadowRoot.querySelector('drives-view').load()\n    }\n  }\n\n  async onCreateBookmark () {\n    await EditBookmarkPopup.create()\n    toast.create('Bookmark added')\n    if (this.view === 'bookmarks') {\n      this.shadowRoot.querySelector('bookmarks-view').load()\n    }\n  }\n}\n\ncustomElements.define('app-main', LibraryApp)"
  },
  {
    "path": "app/userland/library/js/views/bookmarks.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport { emit } from 'beaker://app-stdlib/js/dom.js'\nimport * as toast from 'beaker://app-stdlib/js/com/toast.js'\nimport { EditBookmarkPopup } from 'beaker://app-stdlib/js/com/popups/edit-bookmark.js'\nimport bookmarksCSS from '../../css/views/bookmarks.css.js'\n\nexport class BookmarksView extends LitElement {\n  static get properties () {\n    return {\n      bookmarks: {type: Array},\n      filter: {type: String},\n      showHeader: {type: Boolean, attribute: 'show-header'},\n      hideEmpty: {type: Boolean, attribute: 'hide-empty'}\n    }\n  }\n\n  static get styles () {\n    return bookmarksCSS\n  }\n\n  constructor () {\n    super()\n    this.bookmarks = undefined\n    this.filter = undefined\n    this.showHeader = false\n    this.hideEmpty = false\n    this.load()\n  }\n\n  async load () {\n    var bookmarks = await beaker.bookmarks.list()\n    bookmarks.sort((a, b) => a.title.localeCompare(b.title))\n    this.bookmarks = bookmarks\n    console.log(this.bookmarks)\n  }\n\n  async bookmarkMenu (bookmark) {\n    var items = [\n      {label: 'Open Link in New Tab', click: () => window.open(bookmark.href)},\n      {label: 'Copy Link Address', click: () => writeToClipboard(bookmark.href)},\n      {type: 'separator'},\n      {label: 'Edit', click: () => this.onClickEdit(bookmark)},\n      {type: 'checkbox', checked: bookmark.pinned, label: 'Pin to start page', click: () => this.onToggleBookmarkPinned(null, bookmark)},\n      {type: 'separator'},\n      {label: 'Delete', click: () => this.onClickRemove(bookmark)}\n    ]\n    var fns = {}\n    for (let i = 0; i < items.length; i++) {\n      if (items[i].id) continue\n      let id = `item=${i}`\n      items[i].id = id\n      fns[id] = items[i].click\n      delete items[i].click\n    }\n    var choice = await beaker.browser.showContextMenu(items)\n    if (fns[choice]) fns[choice]()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var bookmarks = this.bookmarks\n    if (bookmarks && this.filter) {\n      bookmarks = bookmarks.filter(bookmark => (\n        bookmark.href.toLowerCase().includes(this.filter)\n        || bookmark.title.toLowerCase().includes(this.filter)\n      ))\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      ${bookmarks ? html`\n        ${this.showHeader && !(this.hideEmpty && bookmarks.length === 0) ? html`\n          <h4>Bookmarks</h4>\n        ` : ''}\n        <div class=\"bookmarks\">\n          ${repeat(bookmarks, bookmark => this.renderBookmark(bookmark))}\n          ${bookmarks.length === 0 && this.filter ? html`\n            <div class=\"empty\"><div>No matches found for \"${this.filter}\".</div></div>\n          ` : ''}\n        </div>\n      ` : html`\n        <div class=\"loading\"><span class=\"spinner\"></span></div>\n      `}\n    `\n  }\n\n  renderBookmark (bookmark) {\n    var {href, title} = bookmark\n    return html`\n      <a\n        class=\"bookmark\"\n        href=${href}\n        title=${title || ''}\n        @contextmenu=${e => this.onContextmenuBookmark(e, bookmark)}\n      >\n        <img class=\"favicon\" src=\"asset:favicon:${href}\">\n        <div class=\"title\">${title}</div>\n        <div class=\"href\">${href}</div>\n        <div class=\"ctrls\">\n          <button class=\"transparent\" @click=${e => this.onClickBookmarkMenuBtn(e, bookmark)}><span class=\"fas fa-fw fa-ellipsis-h\"></span></button>\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  async onContextmenuBookmark (e, bookmark) {\n    e.preventDefault()\n    e.stopPropagation()\n    await this.bookmarkMenu(bookmark)\n  }\n\n  onClickBookmarkMenuBtn (e, bookmark) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.bookmarkMenu(bookmark)\n  }\n\n  async onToggleBookmarkPinned (e, bookmark) {\n    if (e) {\n      e.preventDefault()\n      e.stopPropagation()\n    }\n    if (bookmark.pinned) {\n      await beaker.bookmarks.add(Object.assign({}, bookmark, {pinned: false}))\n    } else {\n      await beaker.bookmarks.add(Object.assign({}, bookmark, {pinned: true}))\n    }\n    this.load()\n    emit(this, 'update-pins')\n  }\n\n  async onClickEdit (bookmark) {\n    try {\n      await EditBookmarkPopup.create(bookmark)\n      this.load()\n    } catch (e) {\n      // ignore\n      console.log(e)\n    }\n  }\n\n  async onClickRemove (bookmark) {\n    if (!confirm('Are you sure?')) return\n    await beaker.bookmarks.remove(bookmark.href)\n    toast.create('Bookmark removed', '', 10e3)\n    this.load()\n  }\n}\n\ncustomElements.define('bookmarks-view', BookmarksView)"
  },
  {
    "path": "app/userland/library/js/views/downloads.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport bytes from 'beaker://app-stdlib/vendor/bytes/index.js'\nimport { toNiceDomain } from 'beaker://app-stdlib/js/strings.js'\nimport downloadsCSS from '../../css/views/downloads.css.js'\n\nexport class DownloadsView extends LitElement {\n  static get properties () {\n    return {\n      downloads: {type: Array},\n      filter: {type: String}\n    }\n  }\n\n  static get styles () {\n    return downloadsCSS\n  }\n\n  constructor () {\n    super()\n    this.downloads = undefined\n    this.filter = undefined\n    this.load()\n  }\n\n  async load () {\n    this.downloads = await beaker.downloads.getDownloads()\n    console.log(this.downloads)\n\n    var dlEvents = beaker.downloads.createEventsStream()\n    dlEvents.addEventListener('updated', this.onUpdateDownload.bind(this))\n    dlEvents.addEventListener('done', this.onUpdateDownload.bind(this))\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var downloads = this.downloads\n    if (downloads && this.filter) {\n      downloads = downloads.filter(download => (\n        download.name.toLowerCase().includes(this.filter)\n      ))\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      ${downloads ? html`\n        <div class=\"downloads\">\n          ${repeat(downloads, download => this.renderDownload(download))}\n          ${downloads.length === 0 ? html`\n            <div class=\"empty\">No recent downloads</div>\n          ` : ''}\n        </div>\n      ` : html`\n        <div class=\"loading\"><span class=\"spinner\"></span></div>\n      `}\n    `\n  }\n\n  renderDownload (download) {\n    var metadataEl = ''\n    var progressEl = ''\n\n    if (download.state == 'progressing') {\n      var status = (download.isPaused) ? 'Paused' : (bytes(download.downloadSpeed || 0) + '/s')\n      var controls = ''\n      var cls = 'progressing'\n\n      var cancelBtn = html`\n        <button\n          data-tooltip=\"Cancel download\"\n          @click=${() => this.onCancelDownload(download)}\n          class=\"transparent tooltip-left\"\n        >\n          <i title=\"Cancel download\" class=\"fa fa-stop\"></i>\n        </button>\n      `\n\n      const progressPercentage = Math.floor((download.receivedBytes / download.totalBytes) * 100)\n      progressEl = html`\n        <progress max=\"100\" value=\"${progressPercentage}\"> ${progressPercentage}% </progress>\n      `\n\n      if (download.isPaused) {\n        controls = html`\n          ${cancelBtn}\n          <button\n            data-tooltip=\"Resume download\"\n            class=\"transparent tooltip-left\"\n            @click=${() => this.onResumeDownload(download)}\n          >\n            <i class=\"fa fa-play\"></i>\n          </button>\n        `\n      } else {\n        controls = html`\n          ${cancelBtn}\n          <button\n            data-tooltip=\"Pause download\"\n            class=\"transparent tooltip-left\"\n            @click=${() => this.onPauseDownload(download)}\n          >\n            <i class=\"fa fa-pause\"></i>\n          </button>\n        `\n      }\n\n      metadataEl = html`\n        <div class=\"metadata\">\n          ${progressEl}\n          ${bytes(download.receivedBytes || 0)} / ${bytes(download.totalBytes || 0)}\n          (${status})\n        </div>\n      `\n    } else {\n      // actions\n      var actions\n      if (!download.fileNotFound) {\n        var removeBtn = html`\n          <button\n            data-tooltip=\"Remove from downloads\"\n            @click=${e => this.onRemoveDownload(download)}\n            class=\"transparent tooltip-left\"\n          >\n            <i class=\"fa fa-times\"></i>\n          </button>\n        `\n\n        actions = [\n          html`\n            <span class=\"link show\" @click=${e => { e.stopPropagation(); this.onShowDownload(download) }}>\n              Show in folder\n            </span>\n          `\n        ]\n      } else {\n        actions = [\n          html`<span>File not found (moved or deleted)</span>`\n        ]\n      }\n\n      metadataEl = html`\n        <div class=\"metadata\">\n          <span>${bytes(download.totalBytes || 0)}</span>\n          ${actions}\n        </div>\n      `\n    }\n\n    // render download\n    return html`\n      <div class=\"download ${cls}\" @dblclick=${(e) => this.onOpenDownload(download)}>\n        <div class=\"title\">\n          <strong>${download.name}</strong>\n          <span class=\"url\">${toNiceDomain(download.url)}</span>\n        </div>\n        ${metadataEl}\n        <div class=\"controls\">\n          ${controls}\n          ${removeBtn}\n        </div>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  onUpdateDownload (download) {\n    // patch data each time we get an update\n    var target = this.downloads.find(d => d.id === download.id)\n    if (target) {\n      // patch item\n      for (var k in download)\n        target[k] = download[k]\n    } else {\n      this.downloads.push(download)\n    }\n    this.requestUpdate()\n  }\n\n  onPauseDownload (download) {\n    beaker.downloads.pause(download.id)\n  }\n\n  onResumeDownload (download) {\n    beaker.downloads.resume(download.id)\n  }\n\n  onCancelDownload (download) {\n    beaker.downloads.cancel(download.id)\n  }\n\n  onCopyDownloadLink (download) {\n    writeToClipboard(download.url)\n  }\n\n  onShowDownload (download) {\n    beaker.downloads.showInFolder(download.id)\n      .catch(err => {\n        download.fileNotFound = true\n        this.requestUpdate()\n      })\n  }\n\n  onOpenDownload (download) {\n    beaker.downloads.open(download.id)\n      .catch(err => {\n        download.fileNotFound = true\n        this.requestUpdate()\n      })\n  }\n\n  onRemoveDownload (download) {\n    beaker.downloads.remove(download.id)\n    this.downloads.splice(this.downloads.indexOf(download), 1)\n    this.requestUpdate()\n  }\n}\n\ncustomElements.define('downloads-view', DownloadsView)"
  },
  {
    "path": "app/userland/library/js/views/drives.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { classMap } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/class-map.js'\nimport { pluralize } from 'beaker://app-stdlib/js/strings.js'\nimport { writeToClipboard } from 'beaker://app-stdlib/js/clipboard.js'\nimport * as toast from 'beaker://app-stdlib/js/com/toast.js'\nimport drivesCSS from '../../css/views/drives.css.js'\n\nconst EXPLORER_URL = drive => `beaker://explorer/${drive.url.slice('hyper://'.length)}`\n\nexport class DrivesView extends LitElement {\n  static get properties () {\n    return {\n      drives: {type: Array},\n      readonly: {type: Boolean},\n      filter: {type: String},\n      showHeader: {type: Boolean, attribute: 'show-header'},\n      hideEmpty: {type: Boolean, attribute: 'hide-empty'}\n    }\n  }\n\n  static get styles () {\n    return drivesCSS\n  }\n\n  constructor () {\n    super()\n    this.drives = undefined\n    this.readonly = undefined\n    this.filter = undefined\n    this.showHeader = false\n    this.hideEmpty = false\n    this.load()\n  }\n\n  async load () {\n    var drives = await beaker.drives.list({includeSystem: false})\n\n    drives = drives.filter(drive => {\n      // move forks onto their parents\n      if (drive.forkOf) {\n        let parent = drives.find(d => d.key === drive.forkOf.key)\n        if (parent) {\n          parent.forks = parent.forks || []\n          parent.forks.push(drive)\n          if (drive.info.writable) {\n            parent.hasWritableFork = true\n          }\n          return false\n        }\n      }\n      return true\n    })\n    if (typeof this.readonly !== 'undefined') {\n      drives = drives.filter(drive => {\n        if (this.readonly) {\n          return !drive.info.writable\n        } else {\n          return drive.info.writable || drive.hasWritableFork\n        }\n      })\n    }\n    drives.sort((a, b) => (a.info.title.localeCompare(b.info.title)))\n    console.log(drives)\n\n    this.drives = drives\n  }\n\n  async driveMenu (drive) {\n    var items = [\n      {\n        label: 'Open in a New Tab',\n        click: () => window.open(drive.url)\n      },\n      {\n        label: 'Explore Files',\n        click: () => window.open(EXPLORER_URL(drive))\n      },\n      {type: 'separator'},\n      {\n        label: 'Copy Drive Link',\n        click: () => {\n          writeToClipboard(drive.url)\n          toast.create('Copied to clipboard')\n        }\n      },\n      {type: 'separator'},\n      {\n        label: 'Fork this Drive',\n        click: () => this.forkDrive(drive)\n      },\n      {\n        label: 'Diff / Merge',\n        click: () => this.diffDrive(drive)\n      },\n      {type: 'separator'},\n      {\n        label: 'Drive Properties',\n        click: () => this.driveProps(drive)\n      },\n      {\n        label: drive.info.writable ? 'Remove from My Library' : 'Stop hosting',\n        disabled: drive.ident.internal,\n        click: () => this.removeDrive(drive)\n      }\n    ]\n    var fns = {}\n    for (let i = 0; i < items.length; i++) {\n      if (items[i].id) continue\n      let id = `item=${i}`\n      items[i].id = id\n      fns[id] = items[i].click\n      delete items[i].click\n    }\n\n    var choice = await beaker.browser.showContextMenu(items)\n    if (fns[choice]) fns[choice]()\n  }\n\n  async forkDrive (drive) {\n    var drive = await beaker.hyperdrive.forkDrive(drive.url)\n    toast.create('Drive created')\n    window.open(drive.url)\n    this.load()\n  }\n\n  async diffDrive (drive) {\n    window.open(`beaker://diff/?base=${drive.url}`)\n  }\n\n  async driveProps (drive) {\n    await beaker.shell.drivePropertiesDialog(drive.url)\n    this.load()\n  }\n\n  async removeDrive (drive) {\n    await beaker.drives.remove(drive.url)\n    const undo = async () => {\n      await beaker.drives.configure(drive.url)\n      this.drives.push(drive)\n      this.requestUpdate()\n    }\n    toast.create('Drive removed', '', 10e3, {label: 'Undo', click: undo})\n    this.load()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var drives = this.drives\n    if (drives && this.filter) {\n      drives = drives.filter(drive => drive.info.title.toLowerCase().includes(this.filter))\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      ${drives ? html`\n        ${this.showHeader && !(this.hideEmpty && drives.length === 0) ? html`\n          <h4>Drives</h4>\n        ` : ''}\n        <div class=\"drives\">\n          ${repeat(drives, drive => this.renderDrive(drive))}\n          ${drives.length === 0 ?\n            this.filter ? html`\n              <div class=\"empty\"><div>No matches found for \"${this.filter}\".</div></div>\n            ` : html`\n              <div class=\"empty\"><span class=\"fas fa-sitemap\"></span><div>You have not created any Hyperdrives.</div></div>\n            `\n          : ''}\n        </div>\n      ` : html`\n        <div class=\"loading\"><span class=\"spinner\"></span></div>\n      `}\n    `\n  }\n\n  renderDrive (drive) {\n    var numForks = drive.forks?.length || 0\n    if (this.hasAttribute('simple')) {\n      return html`\n        <a\n          href=${drive.url}\n          title=${drive.info.title || 'Untitled'}\n          class=\"${classMap({drive: true})}\"\n          @contextmenu=${e => this.onContextmenuDrive(e, drive)}\n        >\n          <img class=\"favicon\" src=\"asset:favicon:${drive.url}\">\n          <div class=\"title\">\n            ${drive.info.title || html`<em>Untitled</em>`}\n          </div>\n        </a>\n      `\n    }\n    return html`\n      <a\n        href=${drive.url}\n        title=${drive.info.title || 'Untitled'}\n        class=\"${classMap({drive: true})}\"\n        @contextmenu=${e => this.onContextmenuDrive(e, drive)}\n      >\n        <img class=\"favicon\" src=\"asset:favicon:${drive.url}\">\n        <div class=\"title\">\n          ${drive.info.title || html`<em>Untitled</em>`}\n          ${drive.forkOf?.label ? html`[${drive.forkOf.label}]` : ''}\n          ${drive.tags.map(tag => html`<span class=\"tag\">${tag}</span>`)}\n        </div>\n        <div class=\"description\">\n          ${drive.info.description.slice(0, 50)}\n        </div>\n        <div class=\"owner\">${drive.info.writable ? 'Mine' : ''}</div>\n        <div class=\"forks\">\n          ${numForks > 0 ? html`\n            <a @click=${e => this.onClickViewForksOf(e, drive)} href=\"#\">\n              ${numForks} ${pluralize(numForks, 'fork')}\n              ${drive.showForks ? html`<span class=\"fas fa-fw fa-caret-down\"></span>` : ''} \n            </a>\n          ` : html`<a>-</a>`}\n        </div>\n        <div class=\"peers\">\n          ${drive.ident.system ? html`\n            <a><span class=\"fas fa-lock\"></span></a>\n          ` : typeof drive.info.peers === 'undefined' ? html`\n            <a>-</a>\n          ` : html`\n            <a>${drive.info.peers} ${pluralize(drive.info.peers, 'peer')}</a>\n          `}\n        </div>\n        <div class=\"ctrls\">\n          <button class=\"transparent\" @click=${e => this.onClickDriveMenuBtn(e, drive)}><span class=\"fas fa-fw fa-ellipsis-h\"></span></button>\n        </div>\n      </a>\n      ${drive.showForks && numForks > 0 ? html`\n        <div class=\"forks-container\">\n          ${repeat(drive.forks, fork => this.renderDrive(fork))}\n        </div>\n      ` : ''}\n    `\n  }\n\n  // events\n  // =\n\n  async onContextmenuDrive (e, drive) {\n    e.preventDefault()\n    e.stopPropagation()\n    await this.driveMenu(drive)\n  }\n\n  onClickDriveMenuBtn (e, drive) {\n    e.preventDefault()\n    e.stopPropagation()\n    this.driveMenu(drive)\n  }\n\n  onClickViewForksOf (e, drive) {\n    e.preventDefault()\n    drive.showForks = !drive.showForks\n    this.requestUpdate()\n  }\n}\n\ncustomElements.define('drives-view', DrivesView)"
  },
  {
    "path": "app/userland/library/js/views/history.js",
    "content": "import { LitElement, html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport css from '../../css/views/history.css.js'\n\nexport class HistoryView extends LitElement {\n  static get properties () {\n    return {\n      links: {type: Array},\n      filter: {type: String}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  constructor () {\n    super()\n    this.links = undefined\n    this.filter = undefined\n    this.load()\n  }\n  \n  updated (changedProperties) {\n    if (changedProperties.has('filter') && changedProperties.get('filter') != this.filter) {\n      this.queueLoad()\n    }\n  }\n\n  queueLoad () {\n    if (this.loadTO) {\n      clearTimeout(this.loadTO)\n    }\n    this.loadTO = setTimeout(() => {\n      this.load()\n      this.loadTO = undefined\n    }, 200)\n  }\n\n  async load () {\n    var links = await beaker.history.getVisitHistory({search: this.filter, limit: 300})\n    this.links = links\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var links = this.links\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://app-stdlib/css/fontawesome.css\">\n      ${links ? html`\n        <div class=\"links\">\n          ${repeat(links, link => this.renderLink(link))}\n          ${links.length === 0 && !this.filter ? html`\n            <div class=\"empty\"><span class=\"fas fa-rss\"></span><div>No sites have been visited recently.</div></div>\n          ` : ''}\n          ${links.length === 0 && this.filter ? html`\n            <div class=\"empty\"><div>No matches found for \"${this.filter}\".</div></div>\n          ` : ''}\n        </div>\n      ` : html`\n        <div class=\"loading\"><span class=\"spinner\"></span></div>\n      `}\n    `\n  }\n\n  renderLink (link) {\n    return html`\n      <a class=\"link\" href=${link.url}>\n        <img src=\"asset:favicon:${link.url}\">\n        <span class=\"title\">${link.title}</span>\n        <span class=\"url\">${link.url}</span>\n      </a>\n    `\n  }\n\n  // events\n  // =\n\n\n}\n\ncustomElements.define('history-view', HistoryView)\n"
  },
  {
    "path": "app/userland/settings/css/empty.css.js",
    "content": "import { css } from '../../app-stdlib/vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.empty {\n  background: var(--bg-color--light);\n  padding: 20px;\n  text-align: center;\n  color: var(--text-color--light);\n  font-size: 16px;\n  line-height: 2;\n  box-sizing: content-box;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n  --border-color--default: #bbc;\n  --border-color--light: #ccd;\n  --border-color: var(--border-color--default);\n  --text-color--default: #333;\n  --text-color--dark: #111;\n  --text-color--lightish: #555;\n  --text-color--light: #667;\n  --text-color--very-light: #bbc;\n  --text-color--subnav-item: #34495e;\n  --bg-color--default: #fff;\n  --bg-color--light: #fafafd;\n  --bg-color--message: #f3f3f8;\n  --bg-color--subnav-item--hover: #f0f0f5;\n  --bg-color--subnav-item--current: #dde;\n\n  font-size: 13px;\n  background: #fff;\n  color: #333;\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --blue: #88c;\n    --border-color--default: #666;\n    --border-color--light: #555;\n    --text-color--default: #ccc;\n    --text-color--dark: #eee;\n    --text-color--lightish: #bbb;\n    --text-color--light: #aaa;\n    --text-color--very-light: #555;\n    --text-color--subnav-item: #bbb;\n    --bg-color--default: #222;\n    --bg-color--light: #333;\n    --bg-color--message: #333;\n    --bg-color--subnav-item--hover: #444;\n    --bg-color--subnav-item--current: #555;\n\n    background: #222;\n    color: #ccc;\n  }\n}"
  },
  {
    "path": "app/userland/settings/css/main.css.js",
    "content": "import {css} from '../../app-stdlib/vendor/lit-element/lit-element.js'\nimport commonCSS from '../../app-stdlib/css/common.css.js'\nimport buttonsCSS from '../../app-stdlib/css/buttons2.css.js'\nimport emptyCSS from './empty.css.js'\n\nconst cssStr = css`\n${commonCSS}\n${buttonsCSS}\n${emptyCSS}\n\n:host {\n  display: block;\n  margin: 10px 10px 10px 230px;\n}\n\n.subnav {\n  position: fixed;\n  left: 10px;\n  top: 10px;\n  width: 190px;\n  height: calc(100vh - 20px);\n  box-sizing: border-box;\n  background: var(--bg-color--light);\n  border-radius: 8px;\n  padding: 10px 0;\n  overflow-y: auto;\n  font-size: 12px;\n  user-select: none;\n}\n\n.subview {\n\n}\n\n.subnav .item {\n  padding: 8px 15px;\n  margin-bottom: 2px;\n  color: var(--text-color--subnav-item);\n  text-decoration: none;\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.subnav .item .fa-fw {\n  margin-right: 5px;\n}\n\n.subnav .item:hover {\n  background: var(--bg-color--subnav-item--hover);\n}\n\n.subnav .item.current {\n  background: var(--bg-color--subnav-item--current);\n  font-weight: 600;\n}\n\n.subnav hr {\n  border: 0;\n  border-top: 1px solid var(--border-color--light);\n  margin: 15px 0;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/css/views/blocking.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from '../../../app-stdlib/css/tooltip.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n${tooltipCSS}\n\n:host {\n  display: block;\n  max-width: 600px;\n}\n\na {\n  color: var(--blue);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.section {\n  margin-bottom: 30px;\n}\n\n.form-group {\n  border: 1px solid var(--border-color);\n  border-radius: 4px;\n  padding: 10px 12px;\n  margin-bottom: 16px;\n}\n\n.form-group .section {\n  margin-bottom: 0;\n  padding: 0 10px 4px;\n}\n\n.form-group .section:not(:last-child) {\n  margin-bottom: 0;\n  padding-bottom: 16px;\n  border-bottom: 1px solid var(--border-color);\n}\n\n.form-group .section > :first-child {\n  margin-top: 16px;\n}\n\n.form-group h2 {\n  margin: 0;\n  padding-bottom: 10px;\n  border-bottom: 1px solid var(--border-color);\n}\n\n\ninput[type=\"text\"], input[type=\"url\"] {\n  height: 24px;\n  padding: 0 7px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n  box-shadow: inset 0 1px 2px #0001;\n}\n\ntextarea {\n  padding: 7px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n  box-shadow: inset 0 1px 2px #0001;\n}\n\ninput[type=\"text\"]:focus,\ninput[type=\"url\"]:focus,\ntextarea:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput[type=\"checkbox\"] {\n  margin: 0px 7px 0px 2px;\n}\n\n.site-block-list .unblock-btn {\n  color: var(--text-color--very-light);\n  cursor: pointer;\n  font-size: 12px;\n  margin-right: 3px;\n}\n\n.adblock-settings-list {\n}\n\n.adblock-settings-list a {\n  color: var(--text-color--very-light);\n  cursor: pointer;\n  font-size: 12px;\n  margin-right: 3px;\n}\n\n.checkbox-item {\n  display: flex;\n  align-items: center;\n  margin-bottom: 8px;\n}\n\n.checkbox-item:last-child {\n  margin-bottom: 0;\n}\n\n.checkbox-item small {\n  color: var(--text-color--light);\n}\n\nform {\n  padding: 8px;\n  background: var(--bg-color--light);\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/settings/css/views/devices.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from '../../../app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from '../../../app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n  max-width: 600px;\n}\n\na {\n  color: var(--blue);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.section {\n  margin-bottom: 30px;\n}\n\n.message {\n  margin: 1em 0;\n  background: #FFEB3B;\n  color: #443e0b;\n  padding: 10px;\n  border-radius: 2px;\n  font-size: 15px;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/css/views/drive-handlers.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from '../../../app-stdlib/css/tooltip.css.js'\nimport emptyCSS from '../empty.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n${tooltipCSS}\n${emptyCSS}\n\n:host {\n  display: block;\n}\n\na {\n  color: var(--blue);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ntd {\n  border: 1px solid #ccd;\n  padding: 8px 12px;\n}\n\ntd strong {\n  font-weight: 500;\n}\n\ntd small {\n  color: #889;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/css/views/fs-audit-log.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n\n:host {\n  display: block;\n  width: calc(100vw - 250px);\n}\n\na {\n  color: var(--blue);\n}\n\n.stats {\n  margin-bottom: 10px;\n}\n\n.stats table {\n  width: 100%;\n}\n\n.stats th {\n  width: 100px;\n  min-width: 100px; /* stop table layout from compressing */\n  vertical-align: top;\n  text-align: left;\n}\n\n.logger thead th {\n  position: sticky;\n  top: 0;\n  text-align: left;\n  background: var(--bg-color--light);\n}\n\n.logger .gap-row td {\n  height: 8px;\n  background: var(--bg-color--light);\n}\n\n.logger .logger-row > * {\n  border: 1px solid var(--border-color--light);\n}\n\n.logger .logger-row > *:not(.args) {\n  white-space: nowrap;\n}\n\n.logger .logger-row > .args {\n  word-break: break-word;\n}\n\n.logger .logger-row.badish {\n  background: #fc03;\n}\n\n.logger .logger-row.bad {\n  background: #f003;\n}\n\n.logger .logger-row td {\n  padding: 4px;\n}\n\n.logger .logger-row:hover {\n  background: var(--bg-color--light);\n}\n\n.logger .logger-row small {\n  color: rgba(0, 0, 0, 0.5);\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/css/views/general.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport tooltipCSS from '../../../app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from '../../../app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n${tooltipCSS}\n${spinnerCSS}\n\n:host {\n  display: block;\n  max-width: 600px;\n}\n\na {\n  color: var(--blue);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\n.section {\n  margin-bottom: 30px;\n}\n\n.section.warning {\n  color: red;\n  background: #ffdddd;\n  border: 1px solid transparent;\n  padding: 0 10px;\n  border-radius: 4px;\n  margin: 10px 0;\n}\n\n.section.warning button {\n  color: rgb(255, 255, 255);\n  background: rgb(255, 59, 48);\n  border: 0;\n}\n\n.section.warning button .spinner {\n  border-color: #fff !important;\n  border-right-color: transparent !important;\n}\n\n.form-group {\n  border: 1px solid var(--border-color--semi-light);\n  border-radius: 4px;\n  padding: 10px 12px;\n  margin-bottom: 16px;\n}\n\n.form-group .section {\n  margin-bottom: 0;\n  padding: 0 10px 4px;\n}\n\n.form-group .section:not(:last-child) {\n  margin-bottom: 0;\n  padding-bottom: 16px;\n  border-bottom: 1px solid var(--border-color--semi-light);\n}\n\n.form-group .section > :first-child {\n  margin-top: 16px;\n}\n\n.form-group h2 {\n  margin: 0;\n  padding-bottom: 10px;\n  border-bottom: 1px solid var(--border-color--semi-light);\n}\n\n.message {\n  margin: 1em 0;\n  background: var(--bg-color--message);\n  padding: 10px;\n  border-radius: 2px;\n}\n\n.message > :first-child {\n  margin-top: 0;\n}\n\n.message > :last-child {\n  margin-bottom: 0;\n}\n\ninput[type=\"text\"], input[type=\"url\"] {\n  height: 24px;\n  padding: 0 7px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n  box-shadow: inset 0 1px 2px #0001;\n}\n\ninput[type=\"text\"]:focus, input[type=\"url\"]:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput[type=\"radio\"] {\n  margin: 1px 7px 0 1px;\n}\n\ninput[type=\"checkbox\"] {\n  margin: 1px 7px 0 1px;\n}\n\n.radio-item {\n  display: flex;\n  align-items: center;\n}\n\n.radio-item + .radio-item {\n  margin-top: 4px;\n}\n\n.versions {\n  font-size: 13px;\n  background: var(--bg-color--message);\n  margin-top: -10px;\n  padding: 12px 35px;\n  border-radius: 4px;\n  line-height: 1.4;\n}\n\n.versions ul {\n  padding-inline-start: 15px;\n}\n\n.versions strong {\n  font-weight: 600;\n}\n\n.version-info .spinner {\n  position: relative;\n  top: 4px;\n  margin: 0 4px 0 6px;\n}\n\n.search-settings-list {\n  margin-bottom: 10px;\n}\n\n.search-settings-list a {\n  color: gray;\n  cursor: pointer;\n}\n\n`\nexport default cssStr\n"
  },
  {
    "path": "app/userland/settings/css/views/log.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport colorsCSS from '../../../app-stdlib/css/colors.css.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\n\nconst cssStr = css`\n${colorsCSS}\n${buttonsCSS}\n\n:host {\n  display: block;\n}\n\n.logger .controls {\n  position: sticky;\n  top: 0;\n  background: var(--bg-color--default);\n}\n\n.logger .standard-controls {\n  display: flex;\n  align-items: center;\n  color: var(--text-color--lightish);\n  padding: 6px 0;\n}\n\n.logger .standard-controls input {\n  display: none;\n}\n\n.logger .standard-controls .spacer {\n  flex: 1;\n}\n\n.logger .standard-controls .divider {\n  margin-left: 20px;\n  margin-right: 5px;\n  border-right: 1px solid var(--border-color--light);\n  height: 14px;\n}\n\n.logger .standard-controls .divider.thin {\n  margin-left: 5px;\n}\n\n.logger .standard-controls label {\n  margin-left: 15px;\n  margin-bottom: 0;\n  font-weight: normal;\n}\n\n.logger .standard-controls .status {\n  margin-left: 8px;\n}\n\n.logger .logger-row td {\n  padding: 4px;\n  border-top: 1px solid var(--bg-color--default);\n}\n\n.logger .logger-row.purple {\n  /*background: #fdf3ff;*/\n  color: #9C27B0;\n}\n\n.logger .logger-row.blue {\n  /*background: #e6f4ff;*/\n  color: #2196F3;\n}\n\n.logger .logger-row.cyan {\n  /*background: #e7fcff;*/\n  color: #00BCD4;\n}\n\n.logger .logger-row.green {\n  /*background: #f1f9f1;*/\n  color: #4CAF50;\n}\n\n.logger .logger-row.yellow {\n  /*background: #fff3cc;*/\n  color: #FFC107;\n}\n\n.logger .logger-row.red {\n  /*background: #fddee9;*/\n  color: #E91E63;\n}\n\n.logger .logger-row:hover {\n  background: var(--bg-color--default);\n}\n\n.logger .logger-row .msg {\n  color: var(--text-color--dark);\n}\n\n.logger .logger-row .level,\n.logger .logger-row .category,\n.logger .logger-row .subcategory,\n.logger .logger-row .timestamp {\n  white-space: nowrap;\n}\n\n.logger .logger-row .level {\n  font-weight: 500;\n}\n\n.logger .logger-row small {\n  color: rgba(0, 0, 0, 0.5);\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/settings/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Settings</title>\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n  </head>\n  <body>\n    <settings-app></settings-app>\n    <script type=\"module\" src=\"/js/main.build.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "app/userland/settings/js/lib/query-params.js",
    "content": "export function setParams (kv, clear = false, replaceState = false) {\n  var url = (new URL(window.location))\n  if (clear) url.search = ''\n  for (var k in kv) {\n    if (kv[k]) {\n      url.searchParams.set(k, kv[k])\n    } else {\n      url.searchParams.delete(k)\n    }\n  }\n  if (replaceState) {\n    window.history.replaceState({}, null, url)\n  } else {\n    window.history.pushState({}, null, url)\n  }\n}\n\nexport function getParam (k, fallback = '') {\n  return (new URL(window.location)).searchParams.get(k) || fallback\n}"
  },
  {
    "path": "app/userland/settings/js/lib/validation.js",
    "content": "export function oneof (v, fallback, opts) {\n  if (opts.includes(v)) return v\n  return fallback\n}"
  },
  {
    "path": "app/userland/settings/js/main.js",
    "content": "import { LitElement, html } from '../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { classMap } from '../../app-stdlib/vendor/lit-element/lit-html/directives/class-map.js'\nimport * as QP from './lib/query-params.js'\nimport css from '../css/main.css.js'\nimport './views/general.js'\nimport './views/blocking.js'\nimport './views/info.js'\nimport './views/network.js'\nimport './views/fs-audit-log.js'\nimport './views/daemon-log.js'\nimport './views/log.js'\n\nclass SettingsApp extends LitElement {\n  static get properties () {\n    return {\n      currentSubview: {type: String}\n    }\n  }\n\n  static get styles () {\n    return css\n  }\n\n  constructor () {\n    super()\n    this.currentSubview = QP.getParam('view') || 'general'\n    this.load()\n  }\n\n  async load () {\n    try {\n      await Promise.all(Array.from(this.shadowRoot.querySelectorAll('[loadable]'), el => el.unload()))\n    } catch (e) {\n      console.debug(e)\n    }\n    await this.requestUpdate()\n    try {\n      await Promise.all(Array.from(this.shadowRoot.querySelectorAll('[loadable]'), el => el.load()))\n    } catch (e) {\n      console.debug(e)\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    document.title = 'Settings'\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"subnav\">${this.renderSubnav()}</div>\n      <div class=\"subview\">${this.renderSubview()}</div>\n    `\n  }\n\n  renderSubnav () {\n    const item = (id, icon, label) => {\n      const cls = classMap({item: true, current: id === this.currentSubview})\n      return html`\n        <div class=${cls} @click=${e => this.onClickSubview(e, id)}><span class=\"fa-fw ${icon}\"></span> ${label}</div>\n      `\n    }\n    return html`\n      ${item('general', 'fas fa-cog', 'General')}\n      ${item('blocking', 'fas fa-ban', 'Content Blocking')}\n      <hr>\n      ${item('general-logs', 'fas fa-clipboard-list', 'General Logs')}\n      ${item('network', 'fas fa-share-alt', 'Network Stats')}\n      ${item('fs-audit-log', 'fas fa-clipboard-check', 'Filesystem Audit Log')}\n      ${''/*DISABLEDitem('daemon-log', 'fas fa-clipboard-list', 'Daemon Log')*/}\n      ${item('info', 'fas fa-info-circle', 'Information')}\n      <hr>\n    `\n  }\n\n  renderSubview () {\n    switch (this.currentSubview) {\n      case 'general':\n        return html`<general-settings-view loadable></general-settings-view>`\n      case 'blocking':\n        return html`<blocking-settings-view loadable></blocking-settings-view>`\n      case 'info':\n        return html`<info-settings-view loadable></info-settings-view>`\n      case 'network':\n        return html`<network-view loadable></network-view>`\n      case 'general-logs':\n        return html`<log-settings-view loadable></log-settings-view>`\n      case 'fs-audit-log':\n        return html`<fs-audit-log-view loadable></fs-audit-log-view>`\n      case 'daemon-log':\n          return html`<daemon-log-view loadable></daemon-log-view>`\n      default:\n        return html`<div class=\"empty\"><div><span class=\"fas fa-toolbox\"></span></div>Under Construction</div>`\n    }\n  }\n\n  // events\n  // =\n\n  onClickSubview (e, id) {\n    this.currentSubview = id\n    QP.setParams({view: id})\n    this.load()\n  }\n}\n\ncustomElements.define('settings-app', SettingsApp)"
  },
  {
    "path": "app/userland/settings/js/views/blocking.js",
    "content": "import { LitElement, html, css } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport viewCSS from '../../css/views/blocking.css.js'\nimport * as toast from '../../../app-stdlib/js/com/toast.js'\nimport { fancyUrl } from '../../../app-stdlib/js/strings.js'\n\nclass BlockingSettingsView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n    this.settings = undefined\n    this.browserInfo = undefined\n  }\n\n  async load () {\n    // fetch data\n    this.browserInfo = await beaker.browser.getInfo()\n    this.settings = await beaker.browser.getSettings()\n    console.log('loaded', {\n      browserInfo: this.browserInfo,\n      settings: this.settings\n    })\n    this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.browserInfo) return html``\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"form-group\">\n        <h2>Adblock Filter Lists</h2>\n        ${this.renderAdblockFilterLists()}\n      </div>\n    `\n  }\n\n  renderAdblockFilterLists() {\n    return html`\n      <div class=\"section\">\n        <div class=\"adblock-settings-list\">\n          ${this.settings.adblock_lists.map((adblockList,i)=>{\n            return html`\n              <div class=\"checkbox-item\">\n                ${this.settings.adblock_lists.length === 1 ? '' : html`\n                  <a @click=\"${()=>this.removeAdblockList(i)}\" data-tooltip=\"Remove\" title=\"Remove Adblock List\">\n                    <span class=\"fas fa-fw fa-times\"></span>\n                  </a>\n                `}\n                <input type=\"checkbox\"\n                  id=\"adblockList${i}\"\n                  name=\"adblock-lists\"\n                  value=\"${i}\"\n                  ?checked=\"${adblockList.selected}\"\n                  @change=\"${this.onAdblockListChange}\"\n                >\n                <label for=\"adblockList${i}\">\n                  ${adblockList.name} <small>${adblockList.url}</small>\n                </label>\n              </div>`\n            })\n          }\n        </div>\n      </div>\n      <form @submit=${this.onAddAdblockList}>\n        <input type=\"text\" placeholder=\"Name\" id=\"custom-adblock-list-name\" required>\n        <input type=\"url\" placeholder=\"URL\" id=\"custom-adblock-list-url\" required>\n        <button type=\"submit\">Add</button>\n      </form>\n    `\n  }\n\n  // events\n  // =\n\n  onAdblockListChange (e) {\n    const index = e.target.value\n    if (e.target.checked) {\n      this.settings.adblock_lists[index].selected = true\n    } else {\n      delete this.settings.adblock_lists[index].selected\n    }\n    beaker.browser.setSetting('adblock_lists', this.settings.adblock_lists)\n    beaker.browser.updateAdblocker()\n    toast.create('Setting updated')\n    this.requestUpdate()\n  }\n\n  removeAdblockList (i) {\n    // decrement selected search engine so it points to the same one if the removed index is less than current one\n    this.settings.adblock_lists.splice(i, 1)\n    beaker.browser.setSetting('adblock_lists', this.settings.adblock_lists)\n    beaker.browser.updateAdblocker()\n    this.requestUpdate()\n  }\n\n  onAddAdblockList (e) {\n    e.preventDefault()\n    const name = this.shadowRoot.getElementById('custom-adblock-list-name')\n    const url  = this.shadowRoot.getElementById('custom-adblock-list-url')\n    this.settings.adblock_lists.push({name: name.value, url: url.value, selected: true})\n    beaker.browser.setSetting('adblock_lists', this.settings.adblock_lists)\n    beaker.browser.updateAdblocker()\n    name.value =\"\"\n    url.value=\"\"\n    this.requestUpdate()\n  }\n}\ncustomElements.define('blocking-settings-view', BlockingSettingsView)\n"
  },
  {
    "path": "app/userland/settings/js/views/daemon-log.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport _debounce from 'lodash.debounce'\nimport viewCSS from '../../css/views/fs-audit-log.css.js'\nimport { toNiceDomain } from '../../../app-stdlib/js/strings.js'\nimport { timeDifference } from '../../../app-stdlib/js/time.js'\n\nclass DaemonLogView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n\n    this.isLoading = false\n    this.rows = undefined\n  }\n\n  async load () {\n    this.isLoading = true\n    this.requestUpdate()\n\n    this.rows = await beaker.logger.listDaemonLog()\n\n    this.isLoading = false\n    this.requestUpdate()\n  }\n\n  unload () {\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.rows) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"logger loading\">Loading...</div>\n      `\n    }\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"logger\">\n        <table class=\"rows\">\n          <thead>\n            <tr class=\"logger-row\">\n              <th class=\"level\">level</th>\n              <th class=\"time\">time</th>\n              <th class=\"method\">method</th>\n              <th class=\"msg\">msg</th>\n            </tr>\n          </thead>\n          <tbody>${this.rows.map((row, i) => this.renderRow(row, i))}</tbody>\n        </table>\n      </div>\n    `\n  }\n\n  renderRow (row, i) {\n    return html`\n      <tr class=\"logger-row\">\n        <td class=\"level\"><code>${row.level}</code></td>\n        <td class=\"time\"><code>${timeDifference(row.time, true)}</code></td>\n        <td class=\"method\"><code>${row.method}</code></td>\n        <td class=\"msg\"><code>${row.stack || row.msg}</code></td>\n      </tr>\n    `\n  }\n\n  // events\n  // =\n\n}\ncustomElements.define('daemon-log-view', DaemonLogView)\n"
  },
  {
    "path": "app/userland/settings/js/views/devices.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport viewCSS from '../../css/views/devices.css.js'\nimport * as toast from '../../../app-stdlib/js/com/toast.js'\n\nclass DevicesView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n  }\n\n  async load () {\n    this.requestUpdate()\n  }\n\n  unload () {\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"section\">\n        <h2>Sync Devices</h2>\n\n        <p class=\"message info\">\n          <span class=\"fas fa-fw fa-exclamation-triangle\"></span>\n          Device-sync is still in development.\n          We will keep you updated with its progress.\n        </p>\n\n        <p style=\"font-size: 14px\">\n          <strong>Device-sync will enable you to share your data between\n          devices.</strong> We're working on protocol updates to support the feature.\n          We added this placeholder interface so that you can quickly\n          find the status of this feature. Sorry for the fake-out.\n        </p>\n      </div>\n    `\n  }\n\n  // events\n  // =\n}\ncustomElements.define('devices-view', DevicesView)"
  },
  {
    "path": "app/userland/settings/js/views/fs-audit-log.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport _debounce from 'lodash.debounce'\nimport viewCSS from '../../css/views/fs-audit-log.css.js'\nimport { toNiceDomain } from '../../../app-stdlib/js/strings.js'\nimport { timeDifference } from '../../../app-stdlib/js/time.js'\n\nclass FsAuditLogView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n\n    this.isLoading = false\n    this.stats = undefined\n    this.rows = undefined\n  }\n\n  async load () {\n    this.isLoading = true\n    this.requestUpdate()\n\n    this.rows = await beaker.logger.listAuditLog({keys: [], limit: 5e3})\n\n    this.isLoading = false\n    this.requestUpdate()\n\n    this.stats = await beaker.logger.getAuditLogStats()\n    this.requestUpdate()\n  }\n\n  unload () {\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.rows) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"logger loading\">Loading...</div>\n      `\n    }\n\n    var lastRow\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"stats\">\n        ${this.stats ? html`\n          <table>\n            <tr><th>Average:</th><td>${this.stats.runtime.avg|0}ms</td></tr>\n            <tr><th>Std Deviation:</th><td>${this.stats.runtime.stdDev|0}ms</td></tr>\n            <tr>\n              <th>10 longest:</th>\n              <td>\n                <details>\n                  <summary>${this.stats.runtime.longest10.map(row => row.runtime + 'ms').join(', ')}</summary>\n                  <pre>${JSON.stringify(this.stats.runtime.longest10, null, 2)}</pre>\n                </details>\n              </td>\n            </tr>\n          </table>\n        ` : html`\n          <span class=\"spinner\"></span>\n        `}\n      </div>\n      <div class=\"logger\">\n        <table class=\"rows\">\n          <thead>\n            <tr class=\"logger-row\">\n              <th class=\"caller\">caller</th>\n              <th class=\"target\">target</th>\n              <th class=\"ts\">ts</th>\n              <th class=\"runtime\">run time</th>\n              <th class=\"method\">method</th>\n              <th class=\"args\">args</th>\n            </tr>\n          </thead>\n          <tbody>${this.rows.map((row, i) => {\n            var tsDiff = lastRow ? (lastRow.ts - row.ts) : 0\n            lastRow = row\n            return html`\n              ${tsDiff > 5e3 ? html`<tr class=\"gap-row\"><td colspan=\"6\"></td></tr>` : ''}\n              <tr class=\"logger-row ${row.runtime > 250 ? 'badish' : ''} ${row.runtime > 1e3 ? 'bad' : ''}\">\n                <td class=\"caller\">\n                  ${row.caller && !row.caller.startsWith('-') ? html`\n                    <a href=${row.caller} target=\"_blank\">${toNiceDomain(row.caller || '')}</a>\n                  ` : row.caller}\n                </td>\n                <td class=\"target\">\n                  ${row.target ? html`\n                    <a href=${'hyper://' + row.target} target=\"_blank\">${toNiceDomain(row.target)}</a>\n                  ` : ''}\n                </td>\n                <td class=\"ts\"><code>${timeDifference(row.ts, true)}</code></td>\n                <td class=\"runtime\"><code>${row.runtime}ms</code></td>\n                <td class=\"method\"><code>${row.method}</code></td>\n                <td class=\"args\"><code>${row.args}</code></td>\n              </tr>\n            `\n          })}</tbody>\n        </table>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n}\ncustomElements.define('fs-audit-log-view', FsAuditLogView)\n"
  },
  {
    "path": "app/userland/settings/js/views/general.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport viewCSS from '../../css/views/general.css.js'\nimport * as toast from '../../../app-stdlib/js/com/toast.js'\n\nclass GeneralSettingsView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n    this.browserEvents = undefined\n    this.settings = undefined\n    this.browserInfo = undefined\n    this.defaultProtocolSettings = undefined\n    this.listingSelfState = undefined\n  }\n\n  get isAutoUpdateEnabled () {\n    return this.settings && ((+this.settings.auto_update_enabled) === 1)\n  }\n\n  async load () {\n    // wire up events\n    this.browserEvents = beaker.browser.createEventsStream()\n    this.browserEvents.addEventListener('updater-state-changed', this.onUpdaterStateChanged.bind(this))\n    this.browserEvents.addEventListener('updater-error', this.onUpdaterError.bind(this))\n\n    // fetch data\n    this.browserInfo = await beaker.browser.getInfo()\n    this.settings = await beaker.browser.getSettings()\n    this.defaultProtocolSettings = await beaker.browser.getDefaultProtocolSettings()\n    console.log('loaded', {\n      browserInfo: this.browserInfo,\n      settings: this.settings,\n      defaultProtocolSettings: this.defaultProtocolSettings\n    })\n    this.requestUpdate()\n\n    this.requestUpdate()\n  }\n\n  unload () {\n    this.browserEvents.close()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.browserInfo) return html``\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${this.renderDaemonStatus()}\n      <div class=\"form-group\">\n        <h2>Auto Updater</h2>\n        ${this.renderAutoUpdater()}\n      </div>\n      <div class=\"form-group\">\n        <h2>Tab Settings</h2>\n        ${this.renderOnStartupSettings()}\n        ${this.renderNewTabSettings()}\n        ${this.renderTabSettings()}\n        ${this.renderDefaultZoomSettings()}\n      </div>\n      <div class=\"form-group\">\n        <h2>Browser Settings</h2>\n        ${this.renderRunBackgroundSettings()}\n        ${this.renderProtocolSettings()}\n        ${this.renderThemeSettings()}\n      </div>\n      <div class=\"form-group\">\n        <h2>Search Settings</h2>\n        ${this.renderSearchSettings()}\n      </div>\n      <div class=\"form-group\">\n        <h2>Beaker Analytics</h2>\n        ${this.renderAnalyticsSettings()}\n      </div>\n    `\n  }\n\n  renderDaemonStatus () {\n    if (this.browserInfo && !this.browserInfo.isDaemonActive) {\n      return html`\n        <div class=\"section warning\">\n          <h2><span class=\"fas fa-exclamation-triangle\"></span> The Hyperdrive Daemon is Not Active</h2>\n          <p>\n            The \"daemon\" runs Beaker's Hyperdrive networking.\n          </p>\n          <p>\n            <button @click=${this.onClickRestartDaemon}>Restart the Daemon</button>\n          </p>\n        </div>\n      `\n    }\n  }\n\n  renderAutoUpdater () {\n    if (this.browserInfo && !this.browserInfo.updater.isBrowserUpdatesSupported) {\n      return html`\n        <div class=\"section\">\n          <p class=\"message info\">\n            Sorry! Beaker auto-updates are only supported on the production build for macOS and Windows.\n          </p>\n\n          <p>\n            To get the most recent version of Beaker, you'll need to <a href=\"https://github.com/beakerbrowser/beaker\">\n            build Beaker from source</a>.\n          </p>\n        </div>\n      `\n    }\n\n    switch (this.browserInfo.updater.state) {\n      default:\n      case 'idle':\n        return html`\n        <div class=\"section\">\n          <h2 id=\"auto-updater\">\n            Auto Updater\n          </h2>\n\n          ${this.browserInfo.updater.error ? html`\n            <div class=\"message error\">\n              <i class=\"fa fa-exclamation-triangle\"></i>\n              ${this.browserInfo.updater.error}\n            </div>\n          ` : ''}\n\n          <div class=\"auto-updater\">\n            <p>\n              <button class=\"btn btn-default\" @click=${this.onClickCheckUpdates}>Check for updates</button>\n\n              <span class=\"up-to-date\">\n                <span class=\"fa fa-check\"></span>\n                Beaker v${this.browserInfo.version} is up-to-date\n              </span>\n            </p>\n\n            <p>\n              ${this.renderAutoUpdateCheckbox()}\n            </p>\n\n            <div class=\"prereleases\">\n              <h3>Advanced</h3>\n              <button class=\"btn\" @click=${this.onClickCheckPrereleases}>\n                Check for beta releases\n              </button>\n            </div>\n          </div>\n        </div>`\n\n      case 'checking':\n        return html`\n        <div class=\"section\">\n          <h2 id=\"auto-updater\">\n            Auto Updater\n          </h2>\n\n          <div class=\"auto-updater\">\n            <p>\n              <button class=\"btn\" disabled>Checking for updates</button>\n              <span class=\"version-info\">\n                <div class=\"spinner\"></div>\n                Checking for updates...\n              </span>\n            </p>\n\n            <p>\n              ${this.renderAutoUpdateCheckbox()}\n            </p>\n\n            <div class=\"prereleases\">\n              <h3>Advanced</h3>\n              <button class=\"btn\" @click=${this.onClickCheckPrereleases}>\n                Check for beta releases\n              </button>\n            </div>\n          </div>\n        </div>`\n\n      case 'downloading':\n        return html`\n        <div class=\"section\">\n          <h2 id=\"auto-updater\">Auto Updater</h2>\n\n          <div class=\"auto-updater\">\n            <p>\n              <button class=\"btn\" disabled>Updating</button>\n              <span class=\"version-info\">\n                <span class=\"spinner\"></span>\n                Downloading the latest version of Beaker...\n              </span>\n            </p>\n            <p>\n              ${this.renderAutoUpdateCheckbox()}\n            </p>\n          </div>\n        </div>`\n\n      case 'downloaded':\n        return html`\n        <div class=\"section\">\n          <h2 id=\"auto-updater\">Auto Updater</h2>\n\n          <div class=\"auto-updater\">\n            <p>\n              <button class=\"btn\" @click=${this.onClickRestart}>Restart now</button>\n              <span class=\"version-info\">\n                <i class=\"fa fa-arrow-circle-o-up\"></i>\n                <strong>New version available.</strong> Restart Beaker to install.\n              </span>\n            </p>\n            <p>\n              ${this.renderAutoUpdateCheckbox()}\n            </p>\n          </div>\n        </div>`\n    }\n  }\n\n  renderAutoUpdateCheckbox () {\n    return html`<label>\n      <input type=\"checkbox\" ?checked=${this.isAutoUpdateEnabled} @click=${this.onToggleAutoUpdate} /> Check for updates automatically\n    </label>`\n  }\n\n  renderTabSettings () {\n    return html`\n      <div class=\"section\">\n        <div class=\"radio-item\">\n          <input type=\"checkbox\" id=\"newTabsInForeground\"\n                 ?checked=${this.settings.new_tabs_in_foreground == 1}\n                 @change=${this.onNewTabsInForegroundToggle} />\n          <label for=\"newTabsInForeground\">\n            When you open a link in a new tab, switch to it immediately\n          </label>\n        </div>\n      </div>\n    `\n  }\n\n  renderOnStartupSettings () {\n    return html`\n      <div class=\"section\">\n        <p>When Beaker starts</p>\n\n        <div class=\"radio-item\">\n          <input type=\"radio\" id=\"customStartPage1\" name=\"custom-start-page\"\n                 value=\"blank\"\n                 ?checked=${this.settings.custom_start_page === 'blank'}\n                 @change=${this.onCustomStartPageChange} />\n          <label for=\"customStartPage1\">\n            Show a new tab\n          </label>\n        </div>\n        <div class=\"radio-item\">\n          <input type=\"radio\" id=\"customStartPage2\" name=\"custom-start-page\"\n                 value=\"previous\"\n                 ?checked=${this.settings.custom_start_page === 'previous'}\n                 @change=${this.onCustomStartPageChange} />\n          <label for=\"customStartPage2\">\n            Show tabs from your last session\n          </label>\n        </div>\n      </div>\n    `\n  }\n\n  renderRunBackgroundSettings () {\n    return html`\n      <div class=\"section on-startup\">\n        <p>\n          Running in the background helps keep your data online even if you're not using Beaker.\n        </p>\n\n        <div class=\"radio-item\">\n          <input type=\"checkbox\" id=\"runBackground\"\n                 ?checked=${this.settings.run_background == 1}\n                 @change=${this.onRunBackgroundToggle} />\n          <label for=\"runBackground\">\n            Let Beaker run in the background\n          </label>\n        </div>\n      </div>\n    `\n  }\n\n  renderNewTabSettings () {\n    return html`\n      <div class=\"section\">\n        <p>When you create a new tab, show</p>\n\n        <div>\n          <input name=\"new-tab\"\n                 id=\"newTab\"\n                 type=\"text\"\n                 value=${this.settings.new_tab || 'beaker://desktop/'}\n                 @input=${this.onNewTabChange}\n                 style=\"width: 300px\" />\n          <button @click=${this.onClickBrowseNewTab}>Browse...</button>\n          <button @click=${this.onClickDefaultNewTab}>Use Default</button>\n        </div>\n      </div>\n    `\n  }\n\n  renderSearchSettings() {\n    return html`\n      <div class=\"section\">\n        <div class=\"search-settings-list\">\n          ${this.settings.search_engines.map((engine,i)=>{\n            return html`\n              <div class=\"radio-item\">\n                <input type=\"radio\"\n                  id=\"engine${i}\"\n                  name=\"search-engine\"\n                  value=\"${i}\"\n                  ?checked=\"${engine.selected}\"\n                  @change=\"${this.onSearchEngineChange}\"\n                >\n                <label for=\"engine${i}\">\n                  ${engine.name} (${engine.url})\n                  ${this.settings.search_engines.length === 1 ? '' : html`\n                    <a @click=\"${()=>this.removeSearchEngine(i)}\" data-tooltip=\"Remove\" title=\"Remove Search Engine\">\n                      <span class=\"fas fa-fw fa-times\"></span>\n                    </a>\n                  `}\n                </label>\n              </div>`\n            })\n          }\n        </div>\n        <form @submit=${this.onAddSearchEngine}>\n          <input type=\"text\" placeholder=\"Name\" id=\"custom-engine-name\" required>\n          <input type=\"url\" placeholder=\"URL\" id=\"custom-engine-url\" required>\n          <button type=\"submit\">Add</button>\n        </form>\n      </div>\n    `\n  }\n\n  renderDefaultZoomSettings () {\n    const opt = (v, label) => html`\n      <option value=${v} ?selected=${v === this.settings.default_zoom}>${label}</option>\n    `\n    return html`\n      <div class=\"section\">\n        <p>Pages should use the following \"zoom\" setting by default:</p>\n\n        <div>\n          <select @change=${this.onChangeDefaultZoom}>\n            ${opt(-3, '25%')}\n            ${opt(-2.5, '33%')}\n            ${opt(-2, '50%')}\n            ${opt(-1.5, '67%')}\n            ${opt(-1, '75%')}\n            ${opt(-0.5, '90%')}\n            ${opt(0, '100%')}\n            ${opt(0.5, '110%')}\n            ${opt(1, '125%')}\n            ${opt(1.5, '150%')}\n            ${opt(2, '175%')}\n            ${opt(2.5, '200%')}\n            ${opt(3, '250%')}\n            ${opt(3.5, '300%')}\n            ${opt(4, '400%')}\n            ${opt(4.5, '500%')}\n          </select>\n        </div>\n      </div>\n    `\n  }\n\n  renderProtocolSettings () {\n    const toggleRegistered = (protocol) => {\n      // update and optimistically render\n      this.defaultProtocolSettings[protocol] = !this.defaultProtocolSettings[protocol]\n\n      if (this.defaultProtocolSettings[protocol]) {\n        beaker.browser.setAsDefaultProtocolClient(protocol)\n      } else {\n        beaker.browser.removeAsDefaultProtocolClient(protocol)\n      }\n      toast.create('Setting updated')\n      this.requestUpdate()\n    }\n\n    return html`\n      <div class=\"section\">\n        <p>Set Beaker as the default browser for:</p>\n\n        ${Object.keys(this.defaultProtocolSettings).map(proto => html`\n          <div class=\"radio-item\">\n            <input id=\"proto-${proto}\" ?checked=${this.defaultProtocolSettings[proto]} type=\"checkbox\" @change=${() => toggleRegistered(proto)} />\n            <label for=\"proto-${proto}\">\n              <span class=\"text\">\n                ${proto}://\n              </span>\n            </label>\n          </div>\n        `)}\n      </div>`\n  }\n\n  renderThemeSettings () {\n    return html`\n      <div class=\"section\">\n        <p>Browser theme:</p>\n\n        <div class=\"radio-item\">\n          <input type=\"radio\" id=\"browserTheme1\" name=\"browser-theme\"\n                 value=\"system\"\n                 ?checked=${this.settings.browser_theme === 'system'}\n                 @change=${this.onBrowserThemeChange} />\n          <label for=\"browserTheme1\">\n            Default (use system value)\n          </label>\n        </div>\n        <div class=\"radio-item\">\n          <input type=\"radio\" id=\"browserTheme2\" name=\"browser-theme\"\n                 value=\"light\"\n                 ?checked=${this.settings.browser_theme === 'light'}\n                 @change=${this.onBrowserThemeChange} />\n          <label for=\"browserTheme2\">\n            Light mode\n          </label>\n        </div>\n        <div class=\"radio-item\">\n          <input type=\"radio\" id=\"browserTheme3\" name=\"browser-theme\"\n                 value=\"dark\"\n                 ?checked=${this.settings.browser_theme === 'dark'}\n                 @change=${this.onBrowserThemeChange} />\n          <label for=\"browserTheme3\">\n            Dark mode\n          </label>\n        </div>\n      </div>\n    `\n  }\n\n  renderAnalyticsSettings () {\n    const toggle = () => {\n      // update and optimistically render\n      this.settings.analytics_enabled = (this.settings.analytics_enabled == 1) ? 0 : 1\n      beaker.browser.setSetting('analytics_enabled', this.settings.analytics_enabled)\n      this.requestUpdate()\n      toast.create('Setting updated')\n    }\n\n    return html`\n      <div class=\"section analytics\">\n        <div class=\"radio-item\">\n          <input id=\"enable-analytics\" ?checked=${this.settings.analytics_enabled == 1} type=\"checkbox\" @change=${toggle} />\n          <label for=\"enable-analytics\">\n            <span>\n              Enable analytics\n            </span>\n          </label>\n        </div>\n\n        <div class=\"message\">\n          <p>Help us know how we${\"'\"}re doing! Enabling analytics will send us the following information once a week:</p>\n\n          <ul>\n            <li>An anonymous ID</li>\n            <li>Your Beaker version, e.g. ${this.browserInfo.version}</li>\n            <li>Your operating system, e.g. Windows 10</li>\n          </ul>\n        </div>\n      </div>`\n  }\n\n  // events\n  // =\n\n  onUpdaterStateChanged (e) {\n    console.debug('onUpdaterStateChanged', e)\n    if (!this.browserInfo) { return }\n    this.browserInfo.updater.state = e.state\n    this.browserInfo.updater.error = false\n    this.requestUpdate()\n  }\n\n  async onUpdaterError (err) {\n    console.debug('onUpdaterError', err)\n    if (!this.browserInfo) { return }\n    this.browserInfo = await beaker.browser.getInfo()\n    this.requestUpdate()\n  }\n\n  onClickCheckUpdates () {\n    // trigger check\n    beaker.browser.checkForUpdates()\n  }\n\n  onClickCheckPrereleases (e) {\n    e.preventDefault()\n    beaker.browser.checkForUpdates({prerelease: true})\n  }\n\n  onClickRestart () {\n    beaker.browser.restartBrowser()\n  }\n\n  onToggleAutoUpdate () {\n    this.settings.auto_update_enabled = this.isAutoUpdateEnabled ? 0 : 1\n    this.requestUpdate()\n    beaker.browser.setSetting('auto_update_enabled', this.settings.auto_update_enabled)\n    toast.create('Setting updated')\n  }\n\n  onCustomStartPageChange (e) {\n    this.settings.custom_start_page = e.target.value\n    beaker.browser.setSetting('custom_start_page', this.settings.custom_start_page)\n    toast.create('Setting updated')\n  }\n\n  onBrowserThemeChange (e) {\n    this.settings.browser_theme = e.target.value\n    beaker.browser.setSetting('browser_theme', this.settings.browser_theme)\n    toast.create('Setting updated')\n  }\n\n  onNewTabsInForegroundToggle (e) {\n    this.settings.new_tabs_in_foreground = this.settings.new_tabs_in_foreground == 1 ? 0 : 1\n    beaker.browser.setSetting('new_tabs_in_foreground', this.settings.new_tabs_in_foreground)\n    toast.create('Setting updated')\n  }\n\n  onRunBackgroundToggle (e) {\n    this.settings.run_background = this.settings.run_background == 1 ? 0 : 1\n    beaker.browser.setSetting('run_background', this.settings.run_background)\n    toast.create('Setting updated')\n  }\n\n  onNewTabChange (e) {\n    this.settings.new_tab = e.target.value\n    beaker.browser.setSetting('new_tab', this.settings.new_tab)\n    toast.create('Setting updated')\n  }\n\n  async onClickBrowseNewTab (e) {\n    var sel = await beaker.shell.selectFileDialog({\n      allowMultiple: false\n    })\n    if (sel) {\n      this.settings.new_tab = sel[0].url\n      beaker.browser.setSetting('new_tab', this.settings.new_tab)\n      toast.create('Setting updated')\n      this.requestUpdate()\n    }\n  }\n\n  onClickDefaultNewTab (e) {\n    this.settings.new_tab = 'beaker://desktop/'\n    beaker.browser.setSetting('new_tab', this.settings.new_tab)\n    toast.create('Setting updated')\n    this.requestUpdate()\n  }\n\n  onSearchEngineChange (e) {\n    const index = e.target.value\n    for (let se of this.settings.search_engines) {\n      delete se.selected\n    }\n    this.settings.search_engines[index].selected = true\n    beaker.browser.setSetting('search_engines', this.settings.search_engines)\n    toast.create('Setting updated')\n    this.requestUpdate()\n  }\n\n  removeSearchEngine (i) {\n    // decrement selected search engine so it points to the same one if the removed index is less than current one\n    let wasSelected = this.settings.search_engines[i].selected\n    this.settings.search_engines.splice(i, 1)\n    if (wasSelected) {\n      this.settings.search_engines[0].selected = true\n    }\n    beaker.browser.setSetting('search_engines', this.settings.search_engines)\n    this.requestUpdate()\n  }\n\n  onAddSearchEngine (e) {\n    e.preventDefault()\n    const name = this.shadowRoot.getElementById('custom-engine-name')\n    const url  = this.shadowRoot.getElementById('custom-engine-url')\n    this.settings.search_engines.push({name: name.value, url: url.value})\n    beaker.browser.setSetting('search_engines', this.settings.search_engines)\n    name.value =\"\"\n    url.value=\"\"\n    this.requestUpdate()\n  }\n\n  onChangeDefaultZoom (e) {\n    this.settings.default_zoom = +(e.currentTarget.value)\n    beaker.browser.setSetting('default_zoom', this.settings.default_zoom)\n    toast.create('Setting updated')\n  }\n\n  async onClickRestartDaemon (e) {\n    let el = e.currentTarget\n    el.innerHTML = '<span class=\"spinner\"></span>'\n    await beaker.browser.reconnectHyperdriveDaemon()\n    this.browserInfo = await beaker.browser.getInfo()\n    this.requestUpdate()\n  }\n\n  async onClickAddSiteToBeakerNetwork (e) {\n    this.listingSelfState = 'attempting'\n    this.requestUpdate()\n\n    await beaker.browser.addProfileToBeakerNetwork()\n    this.isProfileListedInBeakerNetwork = true\n    this.listingSelfState = 'done'\n    this.requestUpdate()\n  }\n}\ncustomElements.define('general-settings-view', GeneralSettingsView)\n"
  },
  {
    "path": "app/userland/settings/js/views/info.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport viewCSS from '../../css/views/general.css.js'\n\nclass InfoSettingsView extends LitElement {\n  static get properties () {\n    return {\n      isVersionsExpanded: {type: Boolean}\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n    this.browserInfo = undefined\n    this.daemonStatus = undefined\n    this.isVersionsExpanded = false\n  }\n\n  async load () {\n    this.browserInfo = await beaker.browser.getInfo()\n    this.daemonStatus = await beaker.browser.getDaemonStatus()\n    console.log('loaded', {\n      browserInfo: this.browserInfo,\n      daemonStatus: this.daemonStatus\n    })\n    this.requestUpdate()\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.browserInfo) return html``\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"section\">\n        <h2 id=\"information\" class=\"subtitle-heading\">About Beaker</h2>\n        <p>\n          <strong>Version</strong>:\n          ${this.browserInfo.version}\n          <button class=\"transparent\" @click=${e => {this.isVersionsExpanded = !this.isVersionsExpanded}} style=\"padding: 4px 4px 3px\">\n            <span class=\"far fa-${this.isVersionsExpanded ? 'minus' : 'plus'}-square\"></span>\n          </button>\n        </p>\n        ${this.isVersionsExpanded ? html`\n          <ul class=\"versions\">\n            <li><strong>Electron:</strong> ${this.browserInfo.electronVersion}</li>\n            <li><strong>Chromium:</strong> ${this.browserInfo.chromiumVersion}</li>\n            <li><strong>Node:</strong> ${this.browserInfo.nodeVersion}</li>\n            <li><strong>Hyperspace API:</strong> ${this.daemonStatus.apiVersion}</li>\n          </ul>\n        ` : ''}\n        <p><strong>User data</strong>: ${this.browserInfo.paths.userData}</p>\n      </div>\n    `\n  }\n}\ncustomElements.define('info-settings-view', InfoSettingsView)"
  },
  {
    "path": "app/userland/settings/js/views/log.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport _debounce from 'lodash.debounce'\nimport viewCSS from '../../css/views/log.css.js'\n\nconst AVAILABLE_LEVELS = ['error', 'warn', 'info', 'verbose', 'debug', 'silly']\nconst AVAILABLE_CATEGORIES = ['all', 'hyper']\n\nclass LogSettingsView extends LitElement {\n  static get properties () {\n    return {\n    }\n  }\n\n  static get styles () {\n    return viewCSS\n  }\n\n  constructor () {\n    super()\n\n    this.isLoading = false\n    this.isControlsExpanded = false\n    this.rows = undefined\n    this.readStream = undefined\n    this.isPaused = false\n    this.pauseTime = undefined\n\n    try {\n      this.settings = JSON.parse(localStorage.logViewerSettings)\n    } catch (e) {\n      this.settings = {\n        level: AVAILABLE_LEVELS.slice(0, -1),\n        category: 'all',\n        customRules: []\n      }\n    }\n  }\n\n  async load () {\n    this.isLoading = true\n    this.requestUpdate()\n    var filter = {level: this.settings.level}\n    if (this.settings.category !== 'all') filter.category = this.settings.category\n    this.rows = await beaker.logger.query({limit: 5e2, filter, until: this.pauseTime, sort: 'desc'})\n    this.rows = this.rows.filter(row => this.applyCustomRules(row))\n\n    if (this.readStream) this.readStream.close()\n    if (!this.isPaused) {\n      this.readStream = beaker.logger.stream({since: Date.now(), filter})\n      this.readStream.addEventListener('data', row => {\n        if (!this.applyCustomRules(row)) return\n        this.rows.unshift(row)\n        // this.prependRowEl(this.renderRow(row, this.rows.length))\n        this.requestUpdate()\n      })\n    }\n\n    this.isLoading = false\n    this.requestUpdate()\n  }\n\n  unload () {\n    if (this.readStream) this.readStream.close()\n  }\n\n  applyCustomRules (row) {\n    if (this.settings.customRules.length === 0) {\n      return true\n    }\n\n    var ret = true\n    var rowJson = renderObject(row).toLowerCase()\n    for (let filter of this.settings.customRules) {\n      let isMatch = rowJson.indexOf(filter.query.toLowerCase()) !== -1\n      if (isMatch) {\n        if (filter.effect === 'exclude-matches') {\n          ret = false\n        } else if (filter.effect.startsWith('highlight-')) {\n          row.highlight = filter.effect.slice('highlight-'.length)\n        }\n      } else {\n        if (filter.effect === 'exclude-nonmatches') {\n          ret = false\n        }\n      }\n    }\n    return ret\n  }\n\n  saveSettings () {\n    localStorage.logViewerSettings = JSON.stringify(this.settings)\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.rows) {\n      return html`\n        <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n        <div class=\"logger loading\">Loading...</div>\n      `\n    }\n\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"logger\">\n        ${this.renderControls()}\n        <table class=\"rows\">\n          <tbody>${this.rows.map((row, i) => this.renderRow(row, i))}</tbody>\n        </table>\n      </div>\n    `\n  }\n\n  renderControls () {\n    const option = (curr, v, label) => {\n      return html`<option value=\"${v}\" ?selected=${curr === v}>${label}</option>`\n    }\n    return html`\n      <div class=\"controls\">\n        <div class=\"standard-controls\">\n          <button class=\"btn transparent\" @click=${this.onToggleControlsExpanded}>\n            <i class=\"fas fa-${this.isControlsExpanded ? 'angle-down' : 'angle-up'}\"></i>\n          </button>\n          <span class=\"divider thin\"></span>\n          ${AVAILABLE_LEVELS.map(level => this.renderLevelFilter(level))}\n          <span class=\"divider\"></span>\n          ${AVAILABLE_CATEGORIES.map(category => this.renderCategoryFilter(category))}\n          <span class=\"divider\"></span>\n          <span class=\"status\">\n            <button class=\"btn transparent\" @click=${this.onTogglePaused}>\n              <i class=\"fa fa-${this.isPaused ? 'play' : 'pause'}\"></i>\n              ${this.isPaused ? 'Resume' : 'Pause'}\n            </button>\n            ${this.isLoading\n              ? '[ Loading... ]'\n              : this.isPaused\n                ? ''\n                : '[ Streaming ]'}\n          </span>\n        </div>\n        ${this.isControlsExpanded ? this.settings.customRules.map(rule => html`\n          <div class=\"custom-filter-controls\">\n            <input type=\"text\" value=${rule.query} @change=${e => this.onChangeCustomRuleQuery(e, rule)}>\n            <select @change=${e => this.onChangeCustomRuleEffect(e, rule)}>\n              ${option(rule.effect, 'exclude-nonmatches', 'Exclude non-matches')}\n              ${option(rule.effect, 'exclude-matches', 'Exclude matches')}\n              ${option(rule.effect, 'highlight-green', 'Highlight Green')}\n              ${option(rule.effect, 'highlight-blue', 'Highlight Blue')}\n              ${option(rule.effect, 'highlight-cyan', 'Highlight Cyan')}\n              ${option(rule.effect, 'highlight-purple', 'Highlight Purple')}\n              ${option(rule.effect, 'highlight-yellow', 'Highlight Yellow')}\n              ${option(rule.effect, 'highlight-red', 'Highlight Red')}\n            </select>\n            <button class=\"btn transparent\" @click=${() => this.onRemoveCustomRule(rule)}>\n              <i class=\"fa fa-times\"></i>\n            </button>\n          </div>\n        `) : ''}\n        ${this.isControlsExpanded\n          ? html`\n            <div>\n              <button class=\"btn transparent\" @click=${this.onAddCustomRule}>\n                <i class=\"fas fa-plus\"></i> Add rule\n              </button>\n            </div>`\n          : ''}\n      </div>`\n  }\n\n  renderLevelFilter (level) {\n    var isChecked = this.settings.level.includes(level)\n    return html`\n      <label>\n        <input type=\"checkbox\" ?checked=${isChecked} @change=${() => this.onToggleLevelFilter(level)}>\n        <i class=\"far ${isChecked ? 'fa-check-square' : 'fa-square'}\"></i> ${level}\n      </label>\n    `\n  }\n\n  renderCategoryFilter (category) {\n    var isChecked = this.settings.category === category\n    return html`\n      <label>\n        <input type=\"checkbox\" ?checked=${isChecked} @change=${() => this.onSelectCategory(category)}>\n        <i class=\"far ${isChecked ? 'fa-check-circle' : 'fa-circle'}\"></i> ${category}\n      </label>\n    `\n  }\n\n  renderRow (row, i) {\n    return html`\n      <tr class=\"logger-row ${row.highlight || ''}\">\n        <td class=\"level ${row.level}\">${row.level}</td>\n        <td class=\"category\">${row.category}</td>\n        <td class=\"subcategory\">${row.subcategory || row.dataset}</td>\n        <td class=\"msg\">${row.message} ${row.details ? renderDetails(row.details) : ''}</td>\n        <td class=\"timestamp\">${row.timestamp}</td>\n      </tr>\n    `\n  }\n\n  // events\n  // =\n\n  onToggleLevelFilter (level) {\n    // toggle the filter\n    if (this.settings.level.includes(level)) {\n      this.settings.level = this.settings.level.filter(l => l !== level)\n    } else {\n      this.settings.level.push(level)\n    }\n    this.saveSettings()\n\n    // reload\n    this.requestUpdate()\n    this.load()\n  }\n\n  onSelectCategory (category) {\n    this.settings.category = category\n    this.saveSettings()\n\n    // reload\n    this.requestUpdate()\n    this.load()\n  }\n\n  onToggleControlsExpanded () {\n    this.isControlsExpanded = !this.isControlsExpanded\n    this.requestUpdate()\n  }\n\n  onAddCustomRule () {\n    this.settings.customRules.push(new CustomRule())\n    this.saveSettings()\n    this.requestUpdate()\n  }\n\n  onRemoveCustomRule (rule) {\n    this.settings.customRules = this.settings.customRules.filter(f => f !== rule)\n    this.saveSettings()\n    this.requestUpdate()\n    this.load()\n  }\n\n  onChangeCustomRuleQuery (e, rule) {\n    rule.query = e.currentTarget.value\n    this.saveSettings()\n    this.load()\n  }\n\n  onChangeCustomRuleEffect (e, rule) {\n    rule.effect = e.currentTarget.value\n    this.saveSettings()\n    this.load()\n  }\n\n  onTogglePaused () {\n    this.isPaused = !this.isPaused\n    this.pauseTime = (this.isPaused) ? Date.now() : undefined\n    this.requestUpdate()\n    if (this.isPaused) {\n      this.readStream.close()\n      this.readStream = null\n    } else {\n      this.load()\n    }\n  }\n}\ncustomElements.define('log-settings-view', LogSettingsView)\n\n// internal\n// =\n\nclass CustomRule {\n  constructor () {\n    this.query = ''\n    this.effect = 'exclude-nonmatches'\n  }\n}\n\nfunction renderObject (obj) {\n  var items = []\n  for (let k in obj) {\n    var v = obj[k]\n    if (Array.isArray(v)) v = `[${v.join(', ')}]`\n    if (typeof v === 'object') v = `{${renderObject(v)}}`\n    items.push(`${k}=${v}`)\n  }\n  return items.join(' ')\n}\n\nfunction renderDetails (obj) {\n  return html`<small>${renderObject(obj)}</small>`\n}"
  },
  {
    "path": "app/userland/settings/js/views/network.js",
    "content": "import { LitElement, html, css } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from '../../../app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { pluralize, toNiceDomain } from '../../../app-stdlib/js/strings.js'\nimport viewCSS from '../../css/views/general.css.js'\n\nclass NetworkView extends LitElement {\n  static get properties () {\n    return {\n      networkStatus: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [viewCSS, css`\n    :host {\n      max-width: none;\n    }\n\n    table {\n      width: 100%;\n    }\n\n    td {\n      border-top: 1px solid #dde;\n      padding: 12px 16px;\n      font-family: monospace;\n      white-space: nowrap;\n    }\n\n    td:last-child {\n      width: 100%;\n    }\n\n    progress {\n      width: 40px;\n    }\n    `]\n  }\n\n  constructor () {\n    super()\n    this.networkStatus = undefined\n    this.error = undefined\n  }\n\n  async load () {\n    this.error = undefined\n    try {\n      var networkStatus = await beaker.browser.getDaemonNetworkStatus()\n      for (let item of networkStatus) {\n        item.drive = await beaker.drives.get(item.key)\n        item.peers.sort((a, b) => a.remoteAddress.localeCompare(b.remoteAddress)) // helps spot dupes\n      }\n      networkStatus.sort((a, b) => b.peers.length - a.peers.length)\n      this.networkStatus = networkStatus\n      console.log(this.networkStatus)\n    } catch (e) {\n      console.error(e)\n      this.error = e\n    }\n  }\n\n  unload () {\n  }\n\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <h3>Active Drives</h3>\n      ${this.error ? html`\n        <pre>${this.error.toString()}</pre>\n      ` : this.networkStatus ? html `\n        ${this.networkStatus.length === 0 ? html`\n          <p><em>No active drives</em></p>\n        ` : ''}\n        <table>\n          ${repeat(this.networkStatus, (v, i) => i, item => this.renderDriveStatus(item))}\n        </table>\n      ` : html`<p><span class=\"spinner\"></span></p>`}\n    `\n  }\n\n  renderDriveStatus (item) {\n    var {key, peers, drive} = item\n    var domain = drive && drive.ident.system ? 'private' : `${key.slice(0, 6)}..${key.slice(-2)}`\n    var title = drive && drive.info && drive.info.title ? `${drive.info.title} (${domain})` : domain\n    var forkOf = drive.forkOf ? ` [\"${drive.forkOf.label}\" fork of ${toNiceDomain(drive.forkOf.key)}]` : ''\n    return html`\n      <tr>\n        <td>\n          <a href=\"hyper://${drive && drive.ident.system ? 'private' : key}/\" target=\"_blank\">\n            ${title}\n            ${forkOf}\n          </a>\n        </td>\n        <td>\n          <details>\n            <summary>${peers.length} ${pluralize(peers.length, 'peer')}</summary>\n            ${peers.map(p => html`<div>${p.remoteAddress} (${p.type})</div>`)}\n          </details>\n        </td>\n      </tr>\n    `\n  }\n\n  // events\n  // =\n\n}\ncustomElements.define('network-view', NetworkView)"
  },
  {
    "path": "app/userland/setup/background-run.js",
    "content": "import { BaseSlideView } from './base-slide-view.js'\n\ncustomElements.define('background-run-view', class extends BaseSlideView {\n  constructor () {\n    super()\n    beaker.browser.updateSetupState({profileSetup: 1})\n    var checkbox = this.shadowRoot.querySelector('input')\n    checkbox.checked = true\n    checkbox.addEventListener('change', e => {\n      beaker.browser.setSetting('run_background', checkbox.checked ? 1 : 0)\n    })\n  }\n\n  render () {\n    return `\n<style>\n:host {\n  opacity: 0;\n  transition: opacity 1s;\n}\n:host([fadein]) {\n  opacity: 1;\n}\n:host([fadeout]) {\n  opacity: 0;\n}\nh1 strong {\n  font-size: 32px;\n}\np {\n  font-size: 19px;\n}\nimg {\n  display: block;\n  width: 40vw;\n  margin: 70px auto;\n}\nlabel {\n  -webkit-app-region: no-drag;\n  margin: 0 10px;\n}\n</style>\n<h1><strong>Beaker uses a peer-to-peer network</strong>.</h1>\n<p>To help keep your data online, Beaker can run in the background even if it's not active.</p>\n<p><img src=\"beaker://assets/img/onboarding/setup-tray-icon.png\"></p>\n<hr>\n<p>\n  <label>\n    <input type=\"checkbox\">\n    Let Beaker run in the background\n  </label>\n</p>\n<hr>\n<a>Next</a>\n    `\n  }\n})"
  },
  {
    "path": "app/userland/setup/base-slide-view.js",
    "content": "export class BaseSlideView extends HTMLElement {\n  constructor () {\n    super()\n    this.shadow = this.attachShadow({mode: 'open'})\n    this.outerRender()\n    setTimeout(() => this.setAttribute('fadein', true), 1)\n\n    var nextAnchor = this.shadow.querySelector('a')\n    if (nextAnchor) {\n      nextAnchor.addEventListener('click', e => {\n        this.setAttribute('fadeout', true)\n        setTimeout(() => {\n          this.dispatchEvent(new CustomEvent('next', {bubbles: true, composed: true}))\n        }, 500)\n      })\n    }\n  }\n\n  outerRender () {\n    this.shadow.innerHTML = `\n<link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n<style>\n  :host {\n    -webkit-app-region: drag;\n    display: block;\n    position: fixed;\n    top: 0;\n    left: 0;\n    height: 100vh;\n    width: 100vw;\n    background: #fff;\n    padding: 0 20px;\n    box-sizing: border-box;\n  }\n  h1 {\n    font-weight: 500;\n    font-size: 21px;\n    margin: 30px 0 0;\n    text-align: left;\n  }\n  h1 strong {\n    font-size: 42px;\n  }\n  hr {\n    border: 0;\n    border-top: 1px solid #ccd;\n  }\n  a {\n    position: fixed;\n    left: 50%;\n    bottom: 30px;\n    transform: translateX(-50%);\n    color: #2864dc;\n    font-size: 21px;\n    -webkit-app-region: no-drag;\n  }\n  a:hover {\n    cursor: pointer;\n    text-decoration: underline;\n  }\n  .bullet {\n    display: inline-block;\n    margin: 0 25px;\n  }\n</style>\n${this.render()}\n`\n  }\n\n  render () {\n    return 'Replaceme'\n  }\n}"
  },
  {
    "path": "app/userland/setup/common-css.js",
    "content": "export const commonCSS = `\na,\nbutton {\n  -webkit-app-region: no-drag;\n}\n\nform {\n  padding-top: 10px;\n}\n\nform textarea,\nform input,\nform .input,\nform details {\n  display: block;\n  width: 100%;\n  margin: 5px 0 15px 0;\n  box-sizing: border-box;\n  -webkit-app-region: no-drag;\n}\n\nform textarea {\n  resize: none;\n  padding: 10px;\n  height: 55px;\n}\n\n.form-actions {\n  text-align: right;\n}\n\nselect {\n  -webkit-app-region: no-drag;\n}\n\ninput,\ntextarea {\n  font-size: 15px;\n  padding: 0 10px;\n  height: 36px;\n  border-radius: 4px;\n  color: rgba(51, 51, 51, 0.95);\n  border: 1px solid #d9d9d9;\n}\n\ninput:focus,\ntextarea:focus {\n  outline: 0;\n  border: 1px solid rgba(41, 95, 203, 0.8);\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.2);\n}\n\ninput.has-error,\ntextarea.has-error {\n  border-color: red;\n  margin-bottom: 0;\n}\n\n.error {\n  color: red;\n  margin-bottom: 15px;\n}\n\nlabel {\n  font-weight: 500;\n}\n\ninput[disabled][data-tooltip],\nlabel[disabled][data-tooltip] {\n  cursor: help;\n}\n\ninput[disabled][data-tooltip] *,\nlabel[disabled][data-tooltip] * {\n  cursor: help;\n}\n\nbutton {\n  background: transparent;\n  border: 0;\n  padding: 0;\n}\n\nbutton:focus {\n  outline: 0;\n}\n\nbutton:disabled {\n  opacity: 0.5;\n}\n\n.btn {\n  display: inline-block;\n  height: 30px;\n  padding: 0 10px;\n  border: 1px solid #ddd;\n  background: #fafafa;\n  border-radius: 2px;\n  color: #333;\n  font-size: 13px;\n  line-height: 26px;\n  letter-spacing: 0.25px;\n  font-weight: 400;\n  cursor: pointer !important;\n}\n\n.btn.small {\n  height: 24px;\n  line-height: 20px;\n}\n\n.btn.small * {\n  vertical-align: top;\n  line-height: 20px;\n}\n\n.btn.plain {\n  background: none;\n  border: none;\n  color: #707070;\n  line-height: 28px;\n  padding: 0 3px;\n}\n\n.btn.plain:hover {\n  color: #333;\n  background: none;\n}\n\n.btn.plain:focus {\n  box-shadow: none;\n}\n\n.btn i {\n  line-height: 100%;\n  line-height: 30px;\n  vertical-align: middle;\n}\n\n.btn i:last-child {\n  margin-left: 2px;\n  margin-right: 0;\n}\n\n.btn i:first-child {\n  margin-left: 0;\n  margin-right: 2px;\n}\n\n.btn i:first-child:last-child {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.btn:focus {\n  box-shadow: 0 0 0 2px rgba(41, 95, 203, 0.5);\n}\n\n.btn.full-width {\n  width: 100%;\n}\n\n.btn.center {\n  text-align: center;\n}\n\n.btn.thick {\n  font-size: 14px;\n  font-weight: normal;\n  height: 35px;\n  padding: 0 12px;\n}\n\n.btn.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n}\n\n.btn.pressed:hover {\n  box-shadow: inset 0px 0 2px rgba(0, 0, 0, 0.1);\n  background: linear-gradient(to top, #ddd, #ccc);\n  cursor: default;\n}\n\n.btn:hover {\n  text-decoration: none;\n  background: #eee;\n}\n\n.btn[disabled=\"disabled\"],\n.btn.disabled,\n.btn:disabled {\n  cursor: default;\n  background: #fafafa !important;\n  color: rgba(0, 0, 0, 0.4) !important;\n  border: 1px solid #eee !important;\n  font-weight: 400 !important;\n  -webkit-font-smoothing: initial !important;\n}\n\n.btn[disabled=\"disabled\"] .spinner,\n.btn.disabled .spinner,\n.btn:disabled .spinner {\n  color: #aaa !important;\n}\n\n.btn[disabled=\"disabled\"]:hover,\n.btn.disabled:hover,\n.btn:disabled:hover {\n  cursor: default;\n  background: #fafafa;\n}\n\n.btn .spinner {\n  display: inline-block;\n  position: relative;\n  top: 1px;\n  color: inherit;\n}\n\n.btn.warning {\n  color: #fff;\n  background: #cc2f26;\n  border-color: #cc2f26;\n}\n\n.btn.warning.pressed,\n.btn.warning:hover {\n  background: #c42d25;\n  border-color: #c42d25;\n}\n\n.btn.success {\n  background: #41bb56;\n  color: #fff;\n  border-color: #41bb56;\n}\n\n.btn.success.pressed,\n.btn.success:hover {\n  background: #3baa4e;\n  border-color: #3baa4e;\n}\n\n.btn.transparent {\n  border-color: transparent;\n  background: none;\n  font-weight: 400;\n}\n\n.btn.transparent:hover {\n  background: rgba(0, 0, 0, 0.075);\n  color: #424242;\n}\n\n.btn.primary {\n  background: #2864dc;\n  color: #fff;\n  border: 1px solid #2864dc;\n  transition: background 0.1s ease;\n}\n\n.btn.primary.pressed {\n  box-shadow: inset 0px 0 5px rgba(0, 0, 0, 0.25);\n}\n\n.btn.primary:hover {\n  background: #2357bf;\n}\n`"
  },
  {
    "path": "app/userland/setup/index.html",
    "content": "<!doctype html>\n<head>\n  <style>\n    body {\n     -webkit-app-region: drag;\n      font-family: -apple-system, BlinkMacSystemFont, system-ui, \"Segoe UI\", Ubuntu, Cantarell, \"Oxygen Sans\", \"Helvetica Neue\", sans-serif;\n      background: #fff;\n    }\n  </style>\n  <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n  <script type=\"module\" src=\"/index.js\"></script>\n</head>\n<body>\n  <setup-app></setup-app>\n</body>"
  },
  {
    "path": "app/userland/setup/index.js",
    "content": "import './background-run.js'\nimport './intro.js'\nimport './license.js'\nimport './migrating.js'\n\nfunction isStageDone (key) {\n  var url = new URL(location.toString())\n  return Boolean(+url.searchParams.get(key))\n}\n\ncustomElements.define('setup-app', class extends HTMLElement {\n  constructor () {\n    super()\n    this.stages = []\n\n    if (!isStageDone('profileSetup')) {\n      this.stages.push('intro-view')\n      this.stages.push('license-view')\n      this.stages.push('background-run-view')\n      document.body.style.background = '#334'\n      document.body.style.transition = 'background 0.5s'\n    }\n    if (!isStageDone('migrated08to09')) {\n      this.stages.push('migrating-view')\n    }\n\n    this.stage = 0\n    this.render()\n    this.addEventListener('next', this.onNext.bind(this))\n  }\n\n  render () {\n    if (!this.stages[this.stage]) return\n    this.innerHTML = `<${this.stages[this.stage]} current></${this.stages[this.stage]}>`\n  }\n\n  async onNext () {\n    document.body.style.background = '#fff' // switch away from dark bg after first stage\n    this.stage++\n    this.render()\n  }\n})"
  },
  {
    "path": "app/userland/setup/intro.js",
    "content": "customElements.define('intro-view', class extends HTMLElement {\n  constructor () {\n    super()\n    let shadow = this.attachShadow({mode: 'open'})\n    this.render(shadow)\n    shadow.querySelector('a').addEventListener('click', e => {\n      this.setAttribute('fadeout', true)\n      setTimeout(() => {\n        this.dispatchEvent(new CustomEvent('next', {bubbles: true, composed: true}))\n      }, 500)\n    })\n  }\n\n  render (shadow) {\n    shadow.innerHTML = `\n<div id=\"logo\">\n  <div class=\"ring\" id=\"ring1\"></div>\n  <div class=\"ring\" id=\"ring2\"></div>\n  <div class=\"ring\" id=\"ring3\"></div>\n  <div class=\"ring\" id=\"ring4\"></div>\n  <div class=\"ring\" id=\"ring5\"></div>\n  <div class=\"ring\" id=\"ring6\"></div>\n  <div class=\"nub\"></div>\n</div>\n<h1><span>Welcome</span> <span>to</span> <span>Beaker</span></h1>\n<a>Get Started &gt;</a>\n<style>\n  :host {\n    -webkit-app-region: drag;\n    display: block;\n    position: fixed;\n    top: 0;\n    left: 0;\n    height: 100vh;\n    width: 100vw;\n    background: #334;\n    color: #fff;\n    opacity: 1;\n    transition: opacity 0.5s;\n  }\n  :host([fadeout]) {\n    opacity: 0;\n  }\n  h1 {\n    position: fixed;\n    left: 0;\n    top: 325px;\n    width: 100%;\n    text-align: center;\n  }\n  h1 span {\n    opacity: 0;\n    animation: fade-in 2s 1;\n    animation-fill-mode: forwards;\n    animation-timing-function: cubic;\n  }\n  h1 span:nth-child(1) {\n    animation-delay: 2s;\n    font-weight: normal;\n    color: #bbf;\n  }\n  h1 span:nth-child(2) {\n    animation-delay: 2.6s;\n    font-weight: normal;\n    color: #bbf;\n  }\n  h1 span:nth-child(3) {\n    animation-delay: 3.2s;\n    color: #eef;\n    text-shadow: 0 0 3px #99ff;\n  }\n  a {\n    position: fixed;\n    bottom: 60px;\n    left: 50%;\n    transform: translateX(-50%);\n    font-size: 21px;\n    font-weight: 200;\n    color: #dfdfff;\n    cursor: pointer;\n    opacity: 0;\n    animation: fade-in 2s 1;\n    animation-fill-mode: forwards;\n    animation-timing-function: cubic;\n    animation-delay: 3.8s;\n    -webkit-app-region: no-drag;\n  }\n  a:hover {\n    text-decoration: underline;\n  }\n  #logo {\n    --fg-color: #fff;\n    --ring-size: 200px;\n    --ring-width: 5px;\n    --ring-size-diff: 5px;\n    --nub-size: 50px;\n\n    position: fixed;\n    left: 50%;\n    top: 35px;\n    transform: translateX(-50%);\n    width: 300px;\n    height: 300px;\n    border-radius: 50%;\n    /* border: 1px dashed gray; */\n    background: #334;\n  }\n  .nub {\n    position: absolute;\n    background: var(--fg-color);\n    width: var(--nub-size);\n    height: var(--nub-size);\n    border-top-right-radius: 50%;\n    clip-path: polygon(0% 0%, 100% 0, 100% 100%, 0% 0%);\n    left: calc(150px - var(--nub-size) / 2);\n    top: calc(150px - var(--nub-size) / 2);\n    transform: scale(0.0) rotate(0deg) translate(calc(var(--ring-size) / 3), calc(var(--ring-size) / -3));\n    animation: nub-rotate 2.5s 1;\n    animation-fill-mode: forwards;\n    animation-timing-function: cubic;\n    animation-delay: 1s;\n  }\n  .ring {\n    position: absolute;\n    border-radius: 50%;\n    border: var(--ring-width) solid var(--fg-color);\n    left: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%) scale(0.0);\n    animation: ring-grow 2s 1;\n    animation-fill-mode: forwards;\n    animation-timing-function: cubic;\n  }\n  #ring1 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 5));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 5));\n    animation-delay: 1s;\n  }\n  #ring2 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 4));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 4));\n    animation-delay: 0.8s;\n  }\n  #ring3 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 3));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 3));\n    animation-delay: 0.6s;\n  }\n  #ring4 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 2));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 2));\n    animation-delay: 0.4s;\n  }\n  #ring5 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 1));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 1));\n    animation-delay: 0.2s;\n  }\n  #ring6 {\n    width: calc(var(--ring-size) - calc(var(--ring-size-diff) * 0));\n    height: calc(var(--ring-size) - calc(var(--ring-size-diff) * 0));\n    animation-delay: 0.0s;\n  }\n  @keyframes ring-grow {\n    0% {\n      border-color: #33f;\n      transform: translate(-50%, -50%) scale(0.0);\n    }\n    100% {\n      border-color: var(--fg-color);\n      transform: translate(-50%, -50%) scale(1.0);\n    }\n  }\n  @keyframes nub-rotate {\n    0% {\n      transform: rotate(0deg) translate(calc(var(--ring-size) / 3), calc(var(--ring-size) / -3)) scale(0.0);\n    }\n    100% {\n      transform: rotate(360deg) translate(calc(var(--ring-size) / 3), calc(var(--ring-size) / -3)) scale(1.0);\n    }\n  }\n  @keyframes fade-in {\n    0% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n</style>\n    `\n  }\n})"
  },
  {
    "path": "app/userland/setup/license.js",
    "content": "import { BaseSlideView } from './base-slide-view.js'\n\ncustomElements.define('license-view', class extends BaseSlideView {\n  render () {\n    return `\n<style>\n:host {\n  opacity: 0;\n  transition: opacity 1s;\n  text-align: center;\n}\n:host([fadein]) {\n  opacity: 1;\n}\n:host([fadeout]) {\n  opacity: 0;\n}\nh1 {\n  text-align: center;\n  margin: 15px 0;\n}\nh1 strong {\n  font-size: 32px;\n}\n.license {\n  -webkit-app-region: no-drag;\n  max-height: calc(100vh - 150px);\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  padding: 0 10px;\n  overflow-y: scroll;\n  text-align: left;\n  line-height: 1.4;\n}\n</style>\n<h1><strong>License</strong></h1>\n<div class=\"license\">\n  <p>Beaker is provided by Blue Link Labs, Inc.</p>\n  <ul>\n    <li>Beaker Browser is distributed under the MIT license.</li>\n    <li>You are personally responsible for the content you share.</li>\n    <li>Your IP address is publicly available while using Beaker Browser.</li>\n    <li>We collect anonymized usage statistics if you don't opt out.</li>\n  </ul>\n  <h2>MIT License</h2>\n  <p>Copyright (c) 2018 Blue Link Labs</p>\n  <p>Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to deal\n  in the Software without restriction, including without limitation the rights\n  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n  copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:</p>\n  \n  <p>The above copyright notice and this permission notice shall be included in all\n  copies or substantial portions of the Software.</p>\n  \n  <p>THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n  SOFTWARE.</p>\n</div>\n<a>Next</a>\n    `\n  }\n})"
  },
  {
    "path": "app/userland/setup/migrating.js",
    "content": "import { BaseSlideView } from './base-slide-view.js'\n\ncustomElements.define('migrating-view', class extends BaseSlideView {\n  constructor () {\n    super()\n    this.doMigration()\n  }\n\n  async doMigration () {\n    await beaker.browser.migrate08to09()\n    await beaker.browser.updateSetupState({migrated08to09: 1})\n    this.dispatchEvent(new CustomEvent('next', {bubbles: true, composed: true}))\n  }\n\n  render () {\n    return `\n<style>\n:host {\n  opacity: 0;\n  transition: opacity 1s;\n}\n:host([fadein]) {\n  opacity: 1;\n}\n:host([fadeout]) {\n  opacity: 0;\n}\n\nh1 {\n  line-height: 100vh;\n  margin: 0 10px;\n  font-size: 26px;\n  text-align: center;\n}\n\n.spinner {\n  position: relative;\n  top: 1px;\n\n  display: inline-block;\n  height: 18px;\n  width: 18px;\n  margin-right: 5px;\n  animation: rotate 1s infinite linear;\n  color: #000;\n  border: 2px solid;\n  border-right-color: transparent;\n  border-radius: 50%;\n  transition: color 0.25s;\n}\n\n.spinner.reverse {\n  animation: rotate 2s infinite linear reverse;\n}\n\n@keyframes rotate {\n  0%    { transform: rotate(0deg); }\n  100%  { transform: rotate(360deg); }\n}\n</style>\n<h1><span class=\"spinner\"></span> Migrating your profile...</h1>\n    `\n  }\n})"
  },
  {
    "path": "app/userland/site-info/css/com/drive-forks.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n\n:host {\n  display: block;\n  padding: 10px;\n}\n\na {\n  color: var(--text-color--link);\n}\n\nbutton {\n  padding: 5px;\n  font-size: 11px;\n}\n\n.diff-merge-icon {\n  font-size: 12px;\n  line-height: 1;\n}\n\n.list {\n  margin: 0 0 8px;\n  background: var(--bg-color--main);\n  border-radius: 4px;\n  border: 1px solid var(--border-color--forks);\n  overflow: hidden;\n  max-height: 180px;\n  overflow: auto;\n}\n\n.fork {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  height: 36px;\n  box-sizing: border-box;\n  padding: 5px 10px;\n  text-decoration: none;\n  color: inherit;\n  border-bottom: 1px solid var(--border-color--forks);\n  letter-spacing: 0.5px;\n  cursor: pointer;\n}\n\n.fork.current small {\n  margin-right: 5px;\n  font-size: 11px;\n}\n\n.fork:last-child {\n  border-bottom: 0;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/css/com/identity.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport formCSS from '../form.css.js'\n\nconst cssStr = css`\n${formCSS}\n${buttonsCSS}\n\np {\n  margin: 5px 0;\n}\n\na {\n  cursor: pointer;\n  color: var(--text-color--link);\n  text-decoration: none;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\nbutton {\n  font-size: 11px;\n}\n\n.field-group {\n  position: relative;\n  display: block;\n  padding: 12px 18px;\n  border: 0;\n}\n\n.field-group:empty {\n  display: none;\n}\n\n.field-group > div {\n  margin-bottom: 5px;\n}\n\n.identity {\n  font-size: 13px;\n}\n\n.verifier,\n.verifier a {\n  color: var(--text-color--verifier);\n}\n\n.toggle-save-contact-btn {\n  position: absolute;\n  top: 8px;\n  right: 5px;\n}\n\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/css/com/site-perms.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport formCSS from '../form.css.js'\n\nconst cssStr = css`\n${formCSS}\n${buttonsCSS}\n\np {\n  margin: 5px 0;\n}\n\na {\n  cursor: pointer;\n  color: var(--text-color--link);\n  text-decoration: underline;\n}\n\n.field-group {\n  display: block;\n  padding: 12px 18px;\n  border: 0;\n}\n\n.field-group > div {\n  margin-bottom: 5px;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/css/com/user-session.css.js",
    "content": "import {css} from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from '../../../app-stdlib/css/buttons2.css.js'\nimport formCSS from '../form.css.js'\n\nconst cssStr = css`\n${formCSS}\n${buttonsCSS}\n\n.field-group {\n  display: block;\n  padding: 12px 18px;\n  border-bottom: 1px solid #ccc;\n}\n\n.field-group > div {\n  margin-bottom: 5px;\n}\n\n.perm-label-fixedwith {\n  display: inline-block;\n  text-align: left;\n  width: 90px;\n}\n\n.user {\n  display: flex;\n  align-items: center;\n  border-radius: 4px;\n}\n\n.user img {\n  width: 32px;\n  height: 32px;\n  border-radius: 50%;\n  object-fit: cover;\n  margin-right: 10px;\n}\n\n.user .title {\n  font-weight: bold;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/css/form.css.js",
    "content": "import {css} from '../../app-stdlib/vendor/lit-element/lit-element.js'\n\nconst cssStr = css`\n.field {\n  margin-bottom: 14px;\n}\n\n.field.darkbg {\n  padding: 7px 10px;\n  background: #fafafa;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n}\n\n.field label {\n  display: block;\n  margin-bottom: 4px;\n}\n\n.field input[type=\"text\"] {\n  width: 100%;\n  box-sizing: border-box;\n}\n\n.field input[type=\"checkbox\"] {\n  height: auto;\n  margin: 0 4px 0 0;\n}\n\n.field .icon {\n  width: 32px;\n  height: 32px;\n  border-radius: 3px;\n  border: 1px solid #ccc;\n  object-fit: scale-down;\n}\n\n.field .thumb {\n  width: 100px;\n  height: 80px;\n  border-radius: 3px;\n  border: 1px solid #ccc;\n  object-fit: cover;\n}\n\n.field-group {\n  position: relative;\n  padding: 0;\n}\n\n.field-group-title {\n  position: relative;\n  top: -2px;\n  font-size: 11px;\n  font-weight: 600;\n}\n\n.field-group .field-group-title + .field {\n  margin-top: 8px;\n}\n\n.field-group > :last-child {\n  margin-bottom: 0;\n}\n\n.help {\n  display: flex;\n  color: gray;\n  margin-top: 10px;\n  align-items: baseline;\n}\n\n.help .fa-fw {\n  margin-right: 5px;\n}\n\n.help a {\n  color: inherit;\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n  --bg-color--main: #fff;\n  --bg-color--light: #f8f8fa;\n  --bg-color--nav--selected: #f0f0f4;\n  --text-color--default: #333;\n  --text-color--link: blue;\n  --text-color--verifier: #889;\n  --border-color--default: #ccc;\n  --border-color--main: #bbb;\n  --border-color--forks: #dde;\n  --box-shadow-color--main: rgba(0,0,0,.1);\n\n  margin: 0;\n  background: transparent;\n  font-size: 12px;\n  overflow: hidden;\n  color: var(--text-color--default);\n}\n\n@media (prefers-color-scheme: dark) {\n  body {\n    --bg-color--main: #333;\n    --bg-color--light: #444;\n    --bg-color--nav--selected: #444;\n    --text-color--default: #ccc;\n    --text-color--link: #888;\n    --text-color--verifier: #888;\n    --border-color--default: #666;\n    --border-color--main: #555;\n    --border-color--forks: #555;\n    --box-shadow-color--main: rgba(0,0,0,.3);\n  }\n}\n\nbeaker-toast {\n  --toast-min-width: 150px;\n  --toast-padding: 5px 10px;\n  --toast-font-size: 13px;\n}"
  },
  {
    "path": "app/userland/site-info/css/main.css.js",
    "content": "import {css} from '../../app-stdlib/vendor/lit-element/lit-element.js'\nimport buttonsCSS from '../../app-stdlib/css/buttons2.css.js'\nimport inputsCSS from '../../app-stdlib/css/inputs.css.js'\nimport tooltipCSS from '../../app-stdlib/css/tooltip.css.js'\nimport spinnerCSS from '../../app-stdlib/css/com/spinner.css.js'\nimport toastCSS from '../../app-stdlib/css/com/toast.css.js'\nimport formCSS from './form.css.js'\n\nconst cssStr = css`\n${buttonsCSS}\n${inputsCSS}\n${tooltipCSS}\n${formCSS}\n${spinnerCSS}\n${toastCSS}\n\n:host {\n  display: flex;\n  flex-direction: column;\n  background: var(--bg-color--main);\n  color: var(--text-color--default);\n  border: 1px solid var(--border-color--main);\n  border-radius: 0;\n  box-shadow: 0 2px 3px var(--box-shadow-color--main);\n  margin: 0 10px 10px;\n  max-height: 355px;\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\nh1,\nh2,\nh3,\nh4 {\n  margin: 0;\n  font-weight: 500;\n}\n\np {\n  margin: 5px 0;\n}\n\nh1 {\n  font-size: 19px;\n}\n\nbutton {\n  font-size: 11px;\n}\n\n.warning {\n  color: #cc1010;\n}\n\n.notice {\n  padding: 8px 14px 12px;\n  background: #fafafd;\n}\n\n.notice > :last-child {\n  margin-bottom: 0;\n}\n\n.label {\n  margin-left: 5px;\n  font-variant-numeric: tabular-nums;\n  font-weight: 500;\n  background: rgba(0,0,0,.08);\n  padding: 2px 4px;\n  border-radius: 3px;\n  color: #444;\n  font-size: 10px;\n}\n\nhr {\n  margin: 0;\n  border: 0;\n  border-top: 1px solid #ddd;\n}\n\n.loading {\n  display: flex;\n  align-items: center;\n  padding: 16px;\n}\n\n.loading .spinner {\n  margin-right: 10px;\n}\n\n.site-info {\n  padding: 12px 16px 10px;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.site-info .details {\n  word-break: break-word;\n}\n\n.nav {\n  display: flex;\n  align-items: center;\n  padding: 8px 6px;\n  border-bottom: 1px solid var(--border-color--default);\n}\n\n.nav .tabs {\n  display: flex;\n}\n.nav .tabs a {\n  text-align: center; /* for when stacking occurs in narrow views */\n  border-radius: 16px;\n  font-size: 11px;\n  padding: 6px 12px;\n  cursor: pointer;\n  margin-left: 2px;\n}\n.nav .tabs a.active {\n  background: var(--bg-color--nav--selected);\n}\n.nav .tabs a:not(.active):hover {\n  background: var(--bg-color--nav--selected);\n}\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/site-info/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n  </head>\n  <body>\n    <site-info-app></site-info-app>\n    <script type=\"module\" src=\"/js/main.build.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/site-info/js/com/drive-forks.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from '../../../app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { emit } from '../../../app-stdlib/js/dom.js'\nimport { toNiceDomain } from '../../../app-stdlib/js/strings.js'\nimport css from '../../css/com/drive-forks.css.js'\n\nclass DriveForks extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String},\n      origin: {type: String},\n      info: {type: Object},\n      forks: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [css]\n  }\n\n  constructor () {\n    super()\n    this.url = ''\n    this.origin = ''\n    this.info = undefined\n    this.forks = []\n  }\n\n  // rendering\n  // =\n\n  render () {\n    var currentFork = this.forks.find(f => f.url === this.origin)\n    if (this.info && this.info.forkOf && this.forks.length <= 1) {\n      return html`This drive is a fork of <a href=${this.info.forkOf}>${toNiceDomain(this.info.forkOf)}</a>`\n    }\n    if (!currentFork) {\n      return html``\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${this.forks.length > 1 ? html`\n        <div class=\"list\">\n          ${repeat(this.forks, fork => {\n            var isCurrent = fork.url === this.origin\n            return html`\n              <a class=\"fork ${isCurrent ? 'current' : ''}\" href=${fork.url} @click=${this.onClickFork}>\n                <div>\n                  ${isCurrent ? html`<span class=\"fas fa-fw fa-caret-right\"></span>` : ''}\n                  <span class=\"fork-label\">${fork.forkOf ? fork.forkOf.label : 'Original'}</span>\n                </div>\n                <div>\n                  ${fork.forkOf ? html`\n                    <button class=\"transparent\" @click=${e => this.onClickDelete(e, fork)}><span class=\"far fa-trash-alt\"></span></button>\n                  ` : ''}\n                </div>\n              </a>\n            `\n          })}\n        </div>\n      ` : ''}\n      <div>\n        <button class=\"transparent\" @click=${this.onClickNewFork}>+ New Fork</button>\n        ${currentFork.forkOf ? html`\n          <button class=\"transparent\" @click=${e => this.onClickDiff(e, currentFork)}><span class=\"diff-merge-icon\">◨</span> Diff / Merge Original</button>\n        ` : html`\n          <button class=\"transparent\" disabled><span class=\"diff-merge-icon\">◨</span> Diff / Merge Original</button>\n        `}\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  async onClickNewFork (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    var drive = await beaker.hyperdrive.forkDrive(this.origin)\n    emit(this, 'change-url', {detail: {url: this.url.replace(this.origin, drive.url)}})\n  }\n\n  onClickFork (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    emit(this, 'change-url', {detail: {url: this.url.replace(this.origin, e.currentTarget.getAttribute('href'))}})\n  }\n\n  onClickDiff (e, fork) {\n    e.preventDefault()\n    e.stopPropagation()\n    beaker.browser.openUrl(`beaker://diff/?base=${fork.url}&target=${this.forks[0].url}`, {setActive: true})\n    beaker.browser.toggleSiteInfo(false)\n  }\n\n  async onClickDelete (e, fork) {\n    e.preventDefault()\n    e.stopPropagation()\n    if (!confirm(`Delete \"${fork.forkOf.label}\"?`)) {\n      return\n    }\n    await beaker.drives.remove(fork.url)\n    this.forks.splice(this.forks.indexOf(fork), 1)\n    this.requestUpdate()\n  }\n}\n\ncustomElements.define('drive-forks', DriveForks)\n"
  },
  {
    "path": "app/userland/site-info/js/com/identity.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from '../../../app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { emit } from '../../../app-stdlib/js/dom.js'\nimport identityCSS from '../../css/com/identity.css.js'\n\nclass Identity extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String},\n      cert: {type: Object}\n    }\n  }\n\n  static get styles () {\n    return [identityCSS]\n  }\n\n  constructor () {\n    super()\n    this.url = undefined\n    this.cert = undefined\n  }\n  // rendering\n  // =\n\n  render () {\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${this.cert ? html`\n        ${this.cert.type === 'beaker' ? html`\n          <div class=\"field-group\">This is a builtin interface of Beaker</div>\n        ` : ''}\n        ${this.cert.type === 'tls' ? html`\n          <div class=\"field-group\">\n            <div class=\"identity\">\n              <span class=\"fa-fw fas fa-address-card\"></span>\n              ${this.cert.subjectName}\n            </div>\n            <div class=\"verifier\">\n              Issued by ${this.cert.issuerName}\n            </div>\n          </div>\n        ` : ''}\n        ${this.cert.type === 'hyperdrive' ? html`\n          ${this.cert.ident.profile ? html`\n            <div class=\"field-group\">\n              <div class=\"identity\">\n                This is your profile site\n              </div>\n            </div>\n          ` : this.cert.ident.system ? html`\n            <div class=\"field-group\"><div class=\"identity\">This is your private drive</div></div>\n          ` : this.cert.driveInfo.writable ? html`\n            <div class=\"field-group\">\n              <div class=\"identity\">You created this Hyperdrive</div>\n            </div>\n          ` : html`\n            <div class=\"field-group\">No identity information found</div>\n          `}\n        ` : ''}\n      ` : html`\n        <div class=\"field-group\">No identity information found</div>\n      `}\n    `\n  }\n\n  // ${this.renderSignal({icon: 'fab fa-twitter', url: 'https://twitter.com/pfrazee', userid: 'pfrazee', directory})}\n  // ${this.renderSignal({icon: 'fab fa-github', url: 'https://github.com/pfrazee', userid: 'pfrazee', directory})}\n  // renderSignal (signal) {\n  //   return html`\n  //     <div class=\"identity\">\n  //       <span class=\"fa-fw ${signal.icon}\"></span>\n  //       <a href=${signal.url}>${signal.userid}</a>\n  //     </div>\n  //     <div class=\"verifier\">\n  //       Verified by <a href=${signal.directory.url}>${signal.directory.title}</a>\n  //     </div>\n  //   `\n  // }\n\n  // events\n  // =\n}\n\ncustomElements.define('identity-signals', Identity)\n"
  },
  {
    "path": "app/userland/site-info/js/com/site-perms.js",
    "content": "import { LitElement, html } from '../../../app-stdlib/vendor/lit-element/lit-element.js'\nimport * as beakerPermissions from '../../../../lib/permissions'\nimport sitePermsCSS from '../../css/com/site-perms.css.js'\n\nclass RequestedPerms extends LitElement {\n  static get properties () {\n    return {\n      origin: {type: String},\n      requestedPerms: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [sitePermsCSS]\n  }\n\n  constructor () {\n    super()\n    this.origin = ''\n    this.requestedPerms = []\n  }\n  // rendering\n  // =\n\n  render () {\n    var requestedPerms = this.requestedPerms.map(perm => this.renderRequestedPerm(perm)).filter(el => typeof el !== 'undefined')\n    if (!requestedPerms.length) {\n      return html`<div class=\"field-group\">No permissions assigned</div>`\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      ${requestedPerms.length ? html`\n        <div class=\"field-group\">\n          <div class=\"field-group-title\">Permissions</div>\n          ${requestedPerms}\n        </div>\n      ` : ''}\n    `\n  }\n\n  renderRequestedPerm ({perm, value, opts}) {\n    const permId = beakerPermissions.getPermId(perm)\n    const permParam = beakerPermissions.getPermParam(perm)\n    const desc = beakerPermissions.renderPermDesc({bg: null, html, url: this.origin, permId, permParam, permOpts: opts})\n    if (!desc) return\n    return html`\n      <div>\n        <span class=\"fa-fw ${beakerPermissions.PERM_ICONS[permId]}\"></span>\n        ${desc}:\n        <select @change=${e => this.onChangePerm(e, perm)}>\n          <option value=\"1\" ?selected=${value}>Allow</option>\n          <option value=\"0\" ?selected=${!value}>Deny</option>\n        </select>\n        <a href=\"#\" @click=${e => this.onClearPerm(e, perm)}><span class=\"fas fa-fw fa-times\"></span></a>\n      </div>\n    `\n  }\n\n  // events\n  // =\n\n  async onChangePerm (e, perm) {\n    var permObj = this.requestedPerms.find(o => o.perm === perm)\n    if (!permObj) return\n    var newValue = +(e.currentTarget.value)\n    await beaker.sitedata.setPermission(this.origin, perm, newValue)\n    permObj.value = newValue\n    this.requestUpdate()\n  }\n\n  async onClearPerm (e, perm) {\n    e.preventDefault()\n    var permObj = this.requestedPerms.find(o => o.perm === perm)\n    if (!permObj) return\n    await beaker.sitedata.clearPermission(this.origin, perm)\n    this.requestedPerms = this.requestedPerms.filter(p => p !== permObj)\n    this.requestUpdate()\n  }\n}\n\ncustomElements.define('site-perms', RequestedPerms)\n"
  },
  {
    "path": "app/userland/site-info/js/main.js",
    "content": "import { LitElement, html } from '../../app-stdlib/vendor/lit-element/lit-element.js'\nimport { classMap } from '../../app-stdlib/vendor/lit-element/lit-html/directives/class-map.js'\nimport { toNiceDomain } from '../../app-stdlib/js/strings.js'\nimport { writeToClipboard } from '../../app-stdlib/js/clipboard.js'\nimport * as contextMenu from '../../app-stdlib/js/com/context-menu.js'\nimport * as toast from '../../app-stdlib/js/com/toast.js'\nimport _get from 'lodash.get'\nimport * as beakerPermissions from '../../../lib/permissions'\nimport mainCSS from '../css/main.css.js'\nimport './com/site-perms.js'\nimport './com/identity.js'\nimport './com/drive-forks.js'\n\nconst isHyperHashRegex = /^[a-z0-9]{64}/i\n\nclass SiteInfoApp extends LitElement {\n  static get properties () {\n    return {\n      url: {type: String},\n      view: {type: String},\n      user: {type: Object},\n      isLoading: {type: Boolean},\n      info: {type: Object},\n      cert: {type: Object},\n      requestedPerms: {type: Object},\n      forks: {type: Array}\n    }\n  }\n\n  static get styles () {\n    return [mainCSS]\n  }\n\n  get isDrive () {\n    return this.url && this.url.startsWith('hyper:')\n  }\n\n  get isHttps () {\n    return this.url && this.url.startsWith('https:')\n  }\n\n  get isHttp () {\n    return this.url && this.url.startsWith('http:')\n  }\n\n  get isBeaker () {\n    return this.url && this.url.startsWith('beaker:')\n  }\n\n  get isRootDrive () {\n    return this.origin === beaker.hyperdrive.drive('hyper://private/').url\n  }\n\n  get drive () {\n    return beaker.hyperdrive.drive(this.url)\n  }\n\n  get origin () {\n    let urlp = new URL(this.url)\n    return urlp.origin + '/'\n  }\n\n  get hostname () {\n    let urlp = new URL(this.url)\n    return urlp.hostname\n  }\n\n  get pathname () {\n    let urlp = new URL(this.url)\n    return urlp.pathname\n  }\n\n  constructor () {\n    super()\n    this.reset()\n\n    // global event listeners\n    window.addEventListener('blur', e => {\n      beaker.browser.toggleSiteInfo(false)\n      this.reset()\n    })\n    window.addEventListener('contextmenu', e => e.preventDefault())\n    window.addEventListener('keydown', e => {\n      if (e.key === 'Escape') {\n        beaker.browser.toggleSiteInfo(false)\n      }\n    })\n    const globalAnchorClickHandler = (isPopup) => e => {\n      e.preventDefault()\n      var a = e.path.reduce((acc, v) => acc || (v.tagName === 'A' ? v : undefined), undefined)\n      if (a) {\n        var href = a.getAttribute('href')\n        if (href && href !== '#' && !href.startsWith('beaker://')) {\n          if (isPopup || e.metaKey || a.getAttribute('target') === '_blank') {\n            beaker.browser.openUrl(href, {setActive: true})\n          } else {\n            beaker.browser.gotoUrl(href)\n          }\n          beaker.browser.toggleSiteInfo(false)\n        }\n      }\n    }\n    document.body.addEventListener('auxclick', globalAnchorClickHandler(true))\n    document.body.addEventListener('click', globalAnchorClickHandler(false))\n\n    // export interface\n    window.init = this.init.bind(this)\n    window.reset = this.reset.bind(this)\n  }\n\n  init (params) {\n    this.url = params.url\n    this.load()\n  }\n\n  reset () {\n    this.url = ''\n    this.view = undefined\n    this.isLoading = true\n    this.info = undefined\n    this.cert = undefined\n    this.driveCfg = undefined\n    this.requestedPerms = undefined\n    this.forks = undefined\n    contextMenu.destroy()\n  }\n\n  async load () {\n    this.isLoading = true\n    if (!this.url) return\n    try {\n      this.info = {}\n      this.driveCfg = undefined\n      if (this.isDrive) {\n        // get drive info\n        let drive = this.drive\n        ;[this.info, this.driveCfg, this.forks] = await Promise.all([\n          drive.getInfo(),\n          beaker.drives.get(this.url),\n          beaker.drives.getForks(this.url)\n        ])\n      } else {\n        this.info = {\n          title: this.hostname,\n          domain: this.isHttps ? this.hostname : undefined\n        }\n      }\n\n      if (!this.view) {\n        this.view = 'identity'\n      }\n\n      // all sites: get cert and requested perms\n      var perms\n      ;[perms, this.cert] = await Promise.all([\n        beaker.sitedata.getPermissions(this.origin),\n        beaker.browser.getCertificate(this.url)\n      ])\n      if (this.cert && this.cert.type === 'hyperdrive') {\n        this.cert.driveInfo = this.info\n      }\n      this.requestedPerms = await Promise.all(Object.entries(perms).map(async ([perm, value]) => {\n        var opts = {}\n        var permParam = beakerPermissions.getPermParam(perm)\n        if (isHyperHashRegex.test(permParam)) {\n          let driveInfo\n          try { driveInfo = await beaker.beaker.hyperdrive.drive(permParam).getInfo() }\n          catch (e) { /* ignore */ }\n          opts.title = driveInfo && driveInfo.title ? driveInfo.title : toNiceDomain(permParam)\n        }\n        return {perm, value, opts}\n      }))\n    } catch (e) {\n      console.error(e)\n    }\n    this.isLoading = false\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (this.isLoading) {\n      return html`<div class=\"loading\"><span class=\"spinner\"></span> Loading...</div>`\n    }\n    if (this.isDrive && this.info && this.info.version === 0) {\n      return html`\n        <div class=\"site-info\">\n          <div class=\"details\">\n            <h1>Site not found</h1>\n            <p class=\"protocol\">Make sure the address is correct and try again</p>\n          </div>\n        </div>\n      `\n    }\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div>\n        ${this.renderSiteInfo()}\n        ${this.renderNav()}\n        ${this.renderView()}\n      </div>\n    `\n  }\n\n  renderSiteInfo () {\n    var writable = this.info ? this.info.writable : false\n    var isSaved = this.driveCfg ? this.driveCfg.saved : false\n    var isInternal = this.driveCfg ? this.driveCfg.ident.internal : false\n    return html`\n      <div class=\"site-info\">\n        <div class=\"details\">\n          <p class=\"buttons\">\n            <button @click=${this.onCopyUrl}><span class=\"fas fa-fw fa-link\"></span> Copy URL</button>\n            ${this.isDrive && !isInternal ? html`\n              ${writable ? html`\n                <button @click=${this.onToggleSaveDrive}>\n                  ${isSaved ? html`<span class=\"fas fa-fw fa-trash\"></span> Remove From Library` : html`<span class=\"fas fa-fw fa-trash-restore\"></span> Readd To Library`}\n                </button>\n              ` : html`\n                <button @click=${this.onToggleSaveDrive}>\n                  ${isSaved ? html`<span class=\"fas fa-fw fa-times\"></span> Stop Hosting` : html`<span class=\"fas fa-fw fa-share-alt\"></span> Host This Site`}\n                </button>\n              `}\n            ` : ''}\n            ${this.isDrive ? html`\n              <button @click=${this.onClickDriveTools}>\n                Tools <span class=\"fa-fw fa fa-caret-down\"></span>\n              </button>\n            ` : ''}\n          </p>\n        </div>\n      </div>\n    `\n  }\n\n  renderNav () {\n    return html`\n      <div class=\"nav\">\n        <div class=\"tabs\">\n          <a class=${classMap({active: this.view === 'identity'})} @click=${e => this.onSetView(e, 'identity')}>\n            <span class=\"fas fa-fw fa-user\"></span>\n            Identity\n          </a>\n          <a class=${classMap({active: this.view === 'permissions'})} @click=${e => this.onSetView(e, 'permissions')}>\n            <span class=\"fas fa-fw fa-key\"></span>\n            Permissions\n          </a>\n          ${this.isDrive ? html`\n            <a class=${classMap({active: this.view === 'forks'})} @click=${e => this.onSetView(e, 'forks')}>\n              <span class=\"fas fa-fw fa-code-branch\"></span>\n              Forks\n            </a>\n            ${''/* TODO <a class=${classMap({active: this.view === 'peers'})} @click=${e => this.onSetView(e, 'peers')}>\n              <span class=\"fas fa-fw fa-share-alt\"></span>\n              ${this.info.peers} ${pluralize(this.info.peers, 'peer')}\n            </a>*/}\n          ` : ''}\n        </div>\n      </div>\n    `\n  }\n\n  renderView () {\n    return html`\n      <div class=\"inner\">\n        ${this.view === 'identity' ? html`\n          <identity-signals url=${this.url} .cert=${this.cert} @change-url=${this.onChangeUrl}></identity-signals>\n        ` : ''}\n\n        ${this.view === 'permissions' ? html`\n          <site-perms\n            origin=${this.origin}\n            .requestedPerms=${this.requestedPerms}\n          ></site-perms>\n        ` : ''}\n\n        ${this.view === 'forks' ? html`\n          <drive-forks url=${this.url} origin=${this.origin} .info=${this.info} .forks=${this.forks} @change-url=${this.onChangeUrl}></drive-forks>\n        ` : ''}\n\n        ${this.isHttp ? html`\n          <div class=\"notice\">\n            <p class=\"warning\">\n              <span class=\"fas fa-exclamation-triangle\"></span> Your connection to this site is not secure.\n            </p>\n            <p>\n              You should not enter any sensitive information on this site (for example, passwords or credit cards) because it could be stolen by attackers.\n            </p>\n          </div>\n        ` : ''}\n      </div>\n    `\n  }\n\n  async updated () {\n    setTimeout(() => {\n      // adjust height based on rendering\n      var height = this.shadowRoot.querySelector('div').clientHeight\n      if (!height) return\n      beaker.browser.resizeSiteInfo({height})\n    }, 50)\n  }\n\n  // events\n  // =\n\n  onSetView (e, view) {\n    e.preventDefault()\n    this.view = view\n  }\n\n  onChangeUrl (e) {\n    this.url = e.detail.url\n    beaker.browser.gotoUrl(this.url)\n    this.load()\n  }\n\n  onCopyUrl (e) {\n    writeToClipboard(this.url)\n    toast.create('URL Copied', '', 2e3)\n  }\n\n  async onClickDriveProperties (e) {\n    await beaker.shell.drivePropertiesDialog(this.url)\n    this.load()\n  }\n\n  async onToggleSaveDrive (e) {\n    if (this.driveCfg && this.driveCfg.saved) {\n      await beaker.drives.remove(this.origin)\n    } else {\n      await beaker.drives.configure(this.origin)\n    }\n    this.load()\n  }\n\n  async onClickDriveTools (e) {\n    e.preventDefault()\n    e.stopPropagation()\n    let rect = e.currentTarget.getClientRects()[0]\n    return contextMenu.create({\n      x: rect.right,\n      y: rect.bottom,\n      right: true,\n      roomy: false,\n      noBorders: true,\n      fontAwesomeCSSUrl: 'beaker://assets/font-awesome.css',\n      style: `padding: 4px 0`,\n      items: [\n        {\n          icon: 'fas fa-fw fa-code-branch',\n          label: 'Fork Drive',\n          click: () => this.onForkDrive()\n        },\n        this.info && this.info.writable ? {\n          icon: 'far fa-fw fa-folder-open',\n          label: 'Sync with local folder',\n          click: async () => {\n            await beaker.folderSync.syncDialog(this.info.url)\n            await beaker.browser.refreshTabState()\n          }\n        } : undefined,\n        {\n          icon: 'far fa-fw fa-list-alt',\n          label: 'Hyperdrive Properties',\n          click: () => this.onDriveProps()\n        }\n      ].filter(Boolean)\n    })\n  }\n\n  async onForkDrive () {\n    var drive = await beaker.hyperdrive.forkDrive(this.url, {detached: false})\n    beaker.browser.openUrl(drive.url, {setActive: true})\n  }\n\n  async onDriveProps () {\n    await beaker.shell.drivePropertiesDialog(this.url)\n    this.load()\n  }\n}\n\ncustomElements.define('site-info-app', SiteInfoApp)\n"
  },
  {
    "path": "app/userland/webterm/css/main.css",
    "content": "@import \"beaker://app-stdlib/css/common.css\";\n@import \"beaker://assets/font-awesome.css\";\n\nbody {\n  font-size: 12px;\n  background: #222;\n  --border-color: #d4d7dc;\n  min-height: 100vh;\n}\n"
  },
  {
    "path": "app/userland/webterm/css/main.css.js",
    "content": "import {css} from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport spinnerCSS from 'beaker://app-stdlib/css/com/spinner.css.js'\n\nconst cssStr = css`\n${spinnerCSS}\n\n:host {\n  --default: #eef;\n  --background: #223;\n  --lightgray: #aab;\n  --gray: #889;\n  --darkgray: #556;\n  --error: #f00;\n  --success: #0f0;\n  --warning: #ff0;\n  --info: #83f;\n  --font: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;\n\n  display: block;\n  box-sizing: border-box;\n  font-family: var(--font);\n  padding: 1rem;\n  height: 100vh;\n  overflow-y: auto;\n  background: var(--background);\n  color: var(--default);\n}\n\n:host::-webkit-scrollbar {\n  display: none;\n}\n\na {\n  text-decoration: none;\n  cursor: pointer;\n  color: inherit;\n}\n\na:hover {\n  text-decoration: underline;\n}\n\nimg,\nvideo,\naudio {\n  max-width: 100%;\n}\n\ninput,\ntextarea {\n  background: var(--background);\n  border: 1px solid var(--darkgray);\n  color: var(--default);\n  border-radius: 2px;\n}\n\nbutton {\n  background: var(--default);\n  border: 1px solid var(--lightgray);\n  color: var(--darkgray);\n  border-radius: 2px;\n}\n\npre {\n  margin: 0;\n  font-size: inherit;\n  font-family: inherit;\n}\n\n.output .header {\n  display: flex;\n  align-items: center;\n  line-height: 1;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  border-left: 2px solid var(--lightgray);\n  padding-left: 5px;\n}\n\n.output .header > *:first-child {\n  max-width: 50vw;\n  word-break: break-all;\n}\n\n.output .header > *:last-child {\n  flex: 1;\n  word-break: break-all;\n  padding: 0 0 0 3px;\n  margin: 0 0 0 8px;\n}\n\n.output .entry {\n  word-break: break-word;\n}\n\n.output .error {\n  color: var(--error);\n}\n\n.output .error-stack {\n  padding: 1rem;\n  border: 1px solid var(--error);\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.prompt {\n  display: flex;\n  line-height: 1;\n  margin-top: 8px;\n  border-left: 2px solid var(--lightgray);\n  padding-left: 5px;\n}\n\n.prompt strong {\n  max-width: 50vw;\n  word-break: break-all;\n}\n\n.prompt input {\n  flex: 1;\n  position: relative;\n  background: transparent;\n  top: -1px;\n  left: -2px;\n  line-height: 1;\n  font-size: inherit;\n  font-weight: inherit;\n  outline: 0;\n  border: 0;\n  padding: 0 0 0 5px;\n  margin: 0 0 0 8px;\n  font-family: var(--font);\n  color: inherit;\n}\n\n.prompt input:focus {\n  background: #fff2;\n}\n\n.subprompt {\n  display: flex;\n  align-items: center;\n  margin: 2px 0;\n}\n\n.subprompt .def {\n  margin-left: 5px;\n  color: var(--lightgray);\n}\n\n.subprompt input {\n  flex: 1;\n  margin-left: 5px;\n}\n\n.subprompt.active-prompt + .entry .spinner {\n  display: none;\n}\n\n.floating-help-outer {\n  position: relative;\n  min-height: 140px;\n}\n\n.floating-help-inner {\n  position: absolute;\n}\n\n.tab-completion {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, 300px);\n  grid-gap: 5px;\n  border: 1px solid var(--gray);\n  border-radius: 4px;\n  margin: 5px 0;\n  padding: 10px;\n  width: calc(100vw - 20px);\n  box-sizing: border-box;\n  max-width: 920px;\n}\n\n.tab-completion a {\n  color: var(--lightgray);\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  box-sizing: border-box;\n}\n\n.tab-completion a strong {\n  color: var(--default);\n}\n\n.live-help {\n  padding: 10px;\n  word-break: break-word;\n  width: calc(100vw - 20px);\n  box-sizing: border-box;\n}\n\n.color-default { color: var(--default); }\n.color-background { color: var(--background); }\n.color-lightgray { color: var(--lightgray); }\n.color-gray { color: var(--gray); }\n.color-darkgray { color: var(--darkgray); }\n.color-error { color: var(--error); }\n.color-warning { color: var(--warning); }\n.color-success { color: var(--success); }\n.color-info { color: var(--info); }\n\n.bg-default { background: var(--default); }\n.bg-background { background: var(--background); }\n.bg-lightgray { background: var(--lightgray); }\n.bg-gray { background: var(--gray); }\n.bg-darkgray { background: var(--darkgray); }\n.bg-error { background: var(--error); }\n.bg-warning { background: var(--warning); }\n.bg-success { background: var(--success); }\n.bg-info { background: var(--info); }\n.bg-background { background: var(--background); }\n\n.border-default { border-radius: 4px; border: 1px solid var(--default); }\n.border-lightgray { border-radius: 4px; border: 1px solid var(--lightgray); }\n.border-gray { border-radius: 4px; border: 1px solid var(--gray); }\n.border-darkgray { border-radius: 4px; border: 1px solid var(--darkgray); }\n.border-error { border-radius: 4px; border: 1px solid var(--error); }\n.border-warning { border-radius: 4px; border: 1px solid var(--warning); }\n.border-success { border-radius: 4px; border: 1px solid var(--success); }\n.border-info { border-radius: 4px; border: 1px solid var(--info); }\n\n.weight-thin { font-weight: 400; }\n.weight-normal { font-weight: 500; }\n.weight-bold { font-weight: 600; }\n`\nexport default cssStr"
  },
  {
    "path": "app/userland/webterm/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Webterm</title>\n    <link rel=\"stylesheet\" href=\"/css/main.css\">\n    <link rel=\"shortcut icon\" href=\"asset:favicon:beaker://webterm\">\n  </head>\n  <body>\n    <web-term detached></web-term>\n    <script type=\"module\" src=\"/js/main.js\"></script>\n  </body>\n</html>"
  },
  {
    "path": "app/userland/webterm/js/builtins/index.js",
    "content": "import { html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { resolveParse, parseLocation, joinPath } from './util.js'\nimport * as termModule from './term.js'\n\nexport const term = termModule\n\n// current working directory methods\n// =\n\nexport async function ls (opts = {}, location = '') {\n  // pick target location\n  location = this.env.resolve(location)\n  var {drive, protocol, pathname} = parseLocation(location)\n\n  // read\n  var listing\n  var st = await drive.stat(pathname)\n  if (st.isUnsupportedProtocol) {\n    throw new Error(`ls() is not supported on ${protocol} addresses`)\n  } else {\n    listing = await drive.readdir(pathname, {includeStats: true})\n    return {\n      listing,\n      toHTML: () => {\n        return html`\n          ${st.isFile() ? html`Is a file. Size: ${st.size}<br><br>` : ''}\n          ${listing\n            .sort((a, b) => {\n              // dirs on top\n              if (a.stat.isDirectory() && !b.stat.isDirectory()) return -1\n              if (!a.stat.isDirectory() && b.stat.isDirectory()) return 1\n              return a.name.localeCompare(b.name)\n            })\n            .map(entry => {\n              // coloring\n              var color = 'default'\n              if (entry.name.startsWith('.')) {\n                color = 'gray'\n              }\n\n              // render\n              const icon = entry.stat.isDirectory() ? 'folder' : 'file'\n              const mountInfo = entry.stat.mount\n                ? html` <a href=\"hyper://${entry.stat.mount.key}/\" class=\"color-lightgray\" style=\"font-weight: lighter\">(<term-icon solid fw icon=\"external-link-square-alt\"></term-icon>${entry.stat.mount.key.slice(0, 4)}..${entry.stat.mount.key.slice(-2)})</a>`\n                : ''\n              const symlinkInfo = entry.stat.linkname\n                ? html` <a href=${this.env.resolve(entry.stat.linkname)} class=\"color-lightgray\" style=\"font-weight: lighter\"><term-icon solid fw icon=\"long-arrow-alt-right\"></term-icon> ${entry.stat.linkname}</a>`\n                : ''\n              return html`<div><a\n                href=\"${joinPath(joinPath(drive.url, pathname), entry.name)}\"\n                class=\"color-${color}\"\n              ><term-icon icon=\"${icon}\"></term-icon> ${entry.name}</a>${mountInfo}${symlinkInfo}</div>`\n            })\n          }\n        `\n      }\n    }\n  }\n}\n\nexport async function cd (opts = {}, location = '') {\n  var cwd = this.env.resolve(location)\n  if (cwd.startsWith('hyper://')) {\n    // make sure the target location can be visited\n    let urlp = new URL(cwd)\n    let drive = beaker.hyperdrive.drive(urlp.origin)\n    let st\n    try { st = await drive.stat(urlp.pathname) }\n    catch (e) {\n      throw new Error(`${location}: No such file or directory`)\n    }\n    if (!st.isDirectory()) {\n      throw new Error(`${location}: Not a directory`)\n    }\n  }\n  this.env.goto(cwd)\n}\n\nexport function pwd (opts = {}) {\n  let cwd = this.env.get('cwd')\n  return {\n    cwd,\n    toHTML: () => html`<a href=\"${cwd}\">${cwd}</div>`\n  }\n}\n\n// folder manipulation\n// =\n\nexport async function mkdir (opts, dst) {\n  if (!dst) throw new Error('dst is required')\n  var {drive, pathname} = resolveParse(this.env, dst)\n  await drive.mkdir(pathname)\n}\n\n// file & folder manipulation\n// =\n\nexport async function mv (opts, src, dst) {\n  if (!src) throw new Error('src is required')\n  if (!dst) throw new Error('dst is required')\n  var srcp = resolveParse(this.env, src)\n  var dstp = resolveParse(this.env, dst)\n  \n  let st = await dstp.drive.stat(dstp.pathname).catch(e => undefined)\n  if (st && st.isDirectory()) {\n    dstp.pathname = joinPath(dstp.pathname, src.split('/').pop())\n  }\n\n  await srcp.drive.rename(srcp.pathname, dstp.toString())\n}\n\nexport async function cp (opts, src, dst) {\n  if (!src) throw new Error('src is required')\n  if (!dst) throw new Error('dst is required')\n  var srcp = resolveParse(this.env, src)\n  var dstp = resolveParse(this.env, dst)\n  \n  let st = await dstp.drive.stat(dstp.pathname).catch(e => undefined)\n  if (st && st.isDirectory()) {\n    dstp.pathname = joinPath(dstp.pathname, src.split('/').pop())\n  }\n\n  await srcp.drive.copy(srcp.pathname, dstp.toString())\n}\n\nexport async function rm (opts, dst) {\n  if (!dst) throw new Error('dst is required')\n  var {drive, pathname} = resolveParse(this.env, dst)\n  var st = await drive.stat(pathname)\n  if (st.mount && st.mount.key) {\n    await drive.unmount(pathname)\n  } else if (st.isDirectory()) {\n    await drive.rmdir(pathname, {recursive: true})\n  } else {\n    await drive.unlink(pathname)\n  }\n}\n\nexport async function ln (opts, target, linkname) {\n  if (!target) throw new Error('target is required')\n  if (!linkname) throw new Error('linkname is required')\n  var targetp = resolveParse(this.env, target)\n  var linknamep = resolveParse(this.env, linkname)\n  if (targetp.hostname !== linknamep.hostname) throw new Error('target and link must be on the same drive')\n  \n  let st = await targetp.drive.stat(targetp.pathname).catch(e => undefined)\n  if (!st) throw new Error('target does not exist')\n\n  await targetp.drive.symlink(targetp.pathname, linknamep.pathname)\n}\n\nexport async function readlink (opts, target) {\n  if (!target) throw new Error('target is required')\n  var targetp = resolveParse(this.env, target)\n  \n  let st = await targetp.drive.stat(targetp.pathname, {lstat: true}).catch(e => undefined)\n  if (!st) throw new Error('target does not exist')\n  if (!st.linkname) throw new Error('not a symlink')\n  return st.linkname\n}\n\nexport async function mount (opts, mountUrl, dst) {\n  if (!mountUrl) throw new Error('mount-url is required')\n  if (!dst) throw new Error('dst is required')\n  var {drive, pathname} = resolveParse(this.env, dst)\n  await drive.mount(pathname, mountUrl)\n}\n\nexport async function unmount (opts, dst) {\n  if (!dst) throw new Error('dst is required')\n  var {drive, pathname} = resolveParse(this.env, dst)\n  await drive.unmount(pathname)\n}\n\nexport async function query (opts = {}, ...paths) {\n  var queriesMap = {}\n  for (let path of paths) {\n    let p = resolveParse(this.env, path)\n    if (p.origin in queriesMap) {\n      queriesMap[p.origin].opts.path.push(p.pathname)\n    } else {\n      queriesMap[p.origin] = {\n        drive: p.drive,\n        opts: Object.assign({}, opts, {path: [p.pathname]})\n      }\n    }\n  }\n  \n  var allResults = []\n  for (let query of Object.values(queriesMap)) {\n    let res = await query.drive.query(query.opts)\n    allResults = allResults.concat(res)\n  }\n  allResults.toHTML = () => html`${allResults.map(r => html`<a href=${r.url}>${r.path}</a><br>`)}`\n  return allResults\n}\n\nexport async function meta (opts, location, key = undefined, ...value) {\n  if (!location) throw new Error('path is required')\n  var {drive, pathname} = resolveParse(this.env, location)\n  if (value.length) {\n    await drive.updateMetadata(pathname, {[key]: value.join(' ')})\n  } else if (opts.delete) {\n    await drive.deleteMetadata(pathname, key)\n  } else {\n    var st = await drive.stat(pathname)\n    if (key) {\n      return st.metadata[key]\n    } else {\n      var meta = st.metadata\n      Object.defineProperty(meta, 'toHTML', {\n        enumerable: false,\n        value: () => {\n          return html`<table>${Object.entries(meta).map(([k, v]) => html`<tr><td><strong>${k || ''}&ensp;</strong></td><td>&quot;${v || ''}&quot;</td></tr>`)}</table>`\n        }\n      })\n      return meta\n    }\n  }\n}\n\nexport async function mkdrive (opts) {\n  var drive = await beaker.hyperdrive.createDrive({\n    title: opts.title,\n    description: opts.description,\n    prompt: false\n  })\n  return drive.url\n}\n\nexport async function mkgoto (opts, location, href) {\n  if (!location) throw new Error('path is required')\n  if (!href) throw new Error('href is required')\n  var {drive, pathname} = resolveParse(this.env, location)\n\n  if (!pathname.endsWith('.goto')) {\n    pathname += '.goto'\n  }\n\n  await drive.writeFile(pathname, '', {\n    metadata: {\n      href,\n      title: opts.title\n    }\n  })\n}\n\nexport async function bookmark (opts = {}, href = '.') {\n  href = this.env.resolve(href || '.')\n  let site = 'hyper://private'\n  await beaker.bookmarks.add({\n    href,\n    title: opts.title || href,\n    site\n  })\n}\n\n// utilities\n// =\n\nexport async function cat (opts = {}, location = '') {\n  var {drive, origin, pathname} = resolveParse(this.env, location)\n  if (/\\.(png|jpe?g|gif)$/.test(pathname)) {\n    return {toHTML: () => html`<img src=${(origin + pathname)}>`}\n  }\n  if (/\\.(mp4|webm|mov)$/.test(pathname)) {\n    return {toHTML: () => html`<video controls><source src=${(origin + pathname)}></video>`}\n  }\n  if (/\\.(mp3|ogg)$/.test(pathname)) {\n    return {toHTML: () => html`<audio controls><source src=${(origin + pathname)}></audio>`}\n  }\n  var content = await drive.readFile(pathname, 'utf8')\n  return {toHTML: () => html`<pre>${content}</pre>`}\n}\n\nexport async function echo (opts, ...args) {\n  return args.join(' ')\n}\n\nexport async function go (opts = {}, location = '') {\n  if (opts.bookmark) {\n    location = `hyper://private/bookmarks/${location}`\n    if (!location.endsWith('.goto')) location += '.goto'\n  }\n  location = this.env.resolve(location)\n  if (location.endsWith('.goto')) {\n    let urlp = parseLocation(location)\n    let st = await urlp.drive.stat(urlp.pathname).catch(e => undefined)\n    if (st && st.metadata.href) {\n      location = st.metadata.href\n    }\n  }\n  await this.page.goto(location, {newTab: opts['new-tab']})\n}\n\nexport async function edit (opts = {}, location = '') {\n  location = this.env.resolve(location)\n\n  // create if dne\n  var urlp = parseLocation(location)\n  let st = await urlp.drive.stat(urlp.pathname).catch(e => undefined)\n  if (!st) await urlp.drive.writeFile(urlp.pathname, '')\n\n  await this.page.goto(`beaker://editor/?url=${location}`)\n}\n\nexport function clear () {\n  this.env.clearHistory()\n}\n\nexport function reload () {\n  window.location.reload()\n}\n\n// env vars\n// =\n\nexport const env = {\n  ls (opts) {\n    var vars = this.env.getAll()\n    Object.defineProperty(vars, 'toHTML', {\n      enumerable: false,\n      value: () => {\n        return Object.entries(vars).map(([k, v]) => html`<strong>${k}</strong>: ${v}<br>`)\n      }\n    })\n    return vars\n  },\n  get (opts, name) {\n    if (name.startsWith('$')) name = name.slice(1)\n    return this.env.get(name)\n  },\n  set (opts, name, value) {\n    if (name.startsWith('$')) name = name.slice(1)\n    return this.env.set(name, value)\n  },\n  rm (opts, name) {\n    if (name.startsWith('$')) name = name.slice(1)\n    return this.env.set(name, undefined)\n  }\n}\n\n// page interactions\n// =\n\nexport const page = {\n  async exec (opts, ...jsArgs) {\n    var js = jsArgs.join(' ')\n    if (!js) throw new Error('Please specify the JS you want to execute')\n    var result = await this.page.exec(js)\n    return {\n      result,\n      toHTML: () => html`<pre>${result}</pre>`\n    }\n  },\n  async inject (opts, ...cssArgs) {\n    var css = cssArgs.join(' ')\n    if (!css) throw new Error('Please specify the CSS you want to inject')\n    var id = await this.page.inject(css)\n    const uninject = e => {\n      e.preventDefault()\n      e.currentTarget.insertAdjacentText('beforeBegin', 'Uninjected')\n      e.currentTarget.remove()\n      this.page.uninject(id)\n    } \n    this.out(html`<button @click=${uninject}>Uninject</button>`)\n    return id\n  },\n  async uninject (opts, id) {\n    return this.page.uninject(''+id)\n  }\n}\n\n// system\n// =\n\nexport const system = {\n  async fs_audit_stream (opts = {}) {\n    var containerEl = document.createElement('div')\n    containerEl.classList.add('border-default')\n    containerEl.style.height = '50vh'\n    containerEl.style.minHeight = '150px'\n    containerEl.style.overflow = 'auto'\n    containerEl.style.padding = '5px 0'\n\n    function isOriginEq (a, b) {\n      try {\n        return (new URL(a)).origin === (new URL(b)).origin\n      } catch (e) {\n        return false\n      }\n    }\n\n    var stream = await beaker.logger.streamAuditLog()\n    stream.addEventListener('data', e => {\n      if (opts.caller && !isOriginEq(opts.caller, e.detail.caller)) return\n      if (opts.target && !isOriginEq(opts.target, e.detail.target)) return\n      if (opts.method && e.detail.method !== opts.method) return\n      if (opts.longerthan && e.detail.runtime < +opts.longerthan) return\n\n      var entry = document.createElement('div')\n      var ts = (new Date(e.detail.ts)).toLocaleTimeString()\n      html.render(html`\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">caller</small> <a href=\"${e.detail.caller}\">${e.detail.caller}</a></div>\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">target</small> <a href=\"hyper://${e.detail.target}/\">hyper://${e.detail.target}</a></div>\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">ts</small> ${ts}</div>\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">runtime</small> ${e.detail.runtime}ms</div>\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">method</small> ${e.detail.method}</div>\n        <div><small style=\"padding: 0 5px; width: 50px; display: inline-block\">args</small> ${e.detail.args}</div>\n        <hr style=\"border: 0; border-top: 1px solid var(--lightgray)\">\n      `, entry)\n      containerEl.prepend(entry)\n    })\n    function onStopStream (e) {\n      e.preventDefault()\n      e.stopPropagation()\n      e.currentTarget.parentNode.textContent = 'Stream stopped'\n      stream.close()\n    }\n\n    this.out(\n      html`<p>Streaming <button @click=${onStopStream}>&times;</button></p>`,\n      containerEl\n    )\n  }\n}\n\n// etc\n// =\n\nexport function exit () {\n  this.env.close()\n}"
  },
  {
    "path": "app/userland/webterm/js/builtins/manifest.js",
    "content": "export default {\n  \"commands\": [\n    {\n      \"name\": \"ls\",\n      \"help\": \"List files in the directory or information about a file\",\n      \"usage\": \"ls [{path}]\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"cd\",\n      \"help\": \"Change the current directory\",\n      \"usage\": \"cd {path}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"pwd\",\n      \"help\": \"Print the current directory\",\n      \"usage\": \"pwd\"\n    },\n    {\n      \"name\": \"mkdir\",\n      \"help\": \"Make a new directory\",\n      \"usage\": \"mkdir {path}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"mv\",\n      \"help\": \"Move a file or folder\",\n      \"usage\": \"mv {src} {dst}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"cp\",\n      \"help\": \"Copy a file or folder\",\n      \"usage\": \"cp {src} {dst}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"rm\",\n      \"help\": \"Remove a file or folder\",\n      \"usage\": \"rm {path}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"ln\",\n      \"help\": \"Create a symlink\",\n      \"usage\": \"ln {target} {linkname}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"readlink\",\n      \"help\": \"Get the link target of a symlink\",\n      \"usage\": \"readlink {target}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"mount\",\n      \"help\": \"Mount a hyperdrive as a subfolder\",\n      \"usage\": \"mount {mount-url} {dst}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"unmount\",\n      \"help\": \"Unmount a mounted hyperdrive\",\n      \"usage\": \"unmount {dst}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"query\",\n      \"help\": \"Run a query across the filesystem\",\n      \"usage\": \"query [{path...}] [-t file|folder|mount] [-m {url}] [-s name|ctime|mtime] [-r] [--limit n] [--offset n]\",\n      \"autocomplete\": \"files\",\n      \"options\": [\n        {\n          \"name\": \"type\",\n          \"abbr\": \"t\",\n          \"help\": \"Filter the type of result (file, folder, mount)\"\n        },\n        {\n          \"name\": \"mount\",\n          \"abbr\": \"m\",\n          \"help\": \"Filter to mounts of the given url\"\n        },\n        {\n          \"name\": \"sort\",\n          \"abbr\": \"s\",\n          \"help\": \"Sort the results by the given attribute (name, ctime, mtime)\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"abbr\": \"r\",\n          \"help\": \"Reverse the results\",\n          \"boolean\": true\n        },\n        {\n          \"name\": \"limit\",\n          \"help\": \"The number of results to return (0 means all)\",\n          \"default\": 0\n        },\n        {\n          \"name\": \"offset\",\n          \"help\": \"The offset into the results to return\",\n          \"default\": 0\n        }\n      ]\n    },\n    {\n      \"name\": \"meta\",\n      \"help\": \"Get/set metadata on a file or folder\",\n      \"usage\": \"meta {path} [key] [value] [-d/--delete]\",\n      \"autocomplete\": \"files\",\n      \"options\": [\n        {\n          \"name\": \"delete\",\n          \"abbr\": \"d\",\n          \"help\": \"Delete the key value\",\n          \"boolean\": true,\n          \"default\": false\n        }\n      ]\n    },\n    {\n      \"name\": \"mkdrive\",\n      \"help\": \"Create a hyperdrive\",\n      \"usage\": \"mkdrive [-t/--title title] [-d/--desc description]\",\n      \"options\": [\n        {\n          \"name\": \"title\",\n          \"abbr\": \"t\",\n          \"help\": \"The drive title\"\n        },\n        {\n          \"name\": \"desc\",\n          \"abbr\": \"d\",\n          \"help\": \"The drive description\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mkgoto\",\n      \"help\": \"Create a .goto file\",\n      \"usage\": \"mkgoto {goto-path} {href} [-t/--title title]\",\n      \"autocomplete\": \"files\",\n      \"options\": [\n        {\n          \"name\": \"title\",\n          \"abbr\": \"t\",\n          \"help\": \"Specify a title attribute on the .goto file\"\n        }\n      ]\n    },\n    {\n      \"name\": \"bookmark\",\n      \"help\": \"Bookmark the current working directory or given url\",\n      \"usage\": \"bookmark [{href}] [-p/--public] [-t/--title {title}]\",\n      \"autocomplete\": \"files\",\n      \"options\": [\n        {\n          \"name\": \"title\",\n          \"abbr\": \"t\",\n          \"help\": \"Specify the title of the bookmark\"\n        }\n      ]\n    },\n    {\n      \"name\": \"cat\",\n      \"help\": \"Output the contents of a file into the terminal\",\n      \"usage\": \"cat {path}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"echo\",\n      \"help\": \"Output the arguments of the call\",\n      \"usage\": \"echo [...args]\",\n      \"options\": [\n        {\n          \"name\": \"bookmark\",\n          \"abbr\": \"b\",\n          \"help\": \"Use {path} as the name of a bookmark to lookup and follow\",\n          \"boolean\": true\n        },\n        {\n          \"name\": \"new-tab\",\n          \"abbr\": \"n\",\n          \"help\": \"Open in a new tab\",\n          \"boolean\": true,\n          \"default\": false\n        }\n      ]\n    },\n    {\n      \"name\": \"go\",\n      \"help\": \"Open the target in the browser\",\n      \"usage\": \"go [-bn] {path}\",\n      \"autocomplete\": \"files\",\n      \"options\": [\n        {\n          \"name\": \"bookmark\",\n          \"abbr\": \"b\",\n          \"help\": \"Use {path} as the name of a bookmark to lookup and follow\",\n          \"boolean\": true\n        },\n        {\n          \"name\": \"new-tab\",\n          \"abbr\": \"n\",\n          \"help\": \"Open in a new tab\",\n          \"boolean\": true,\n          \"default\": false\n        }\n      ]\n    },\n    {\n      \"name\": \"edit\",\n      \"help\": \"Edit the target using the browser editor\",\n      \"usage\": \"edit {path}\",\n      \"autocomplete\": \"files\"\n    },\n    {\n      \"name\": \"clear\",\n      \"help\": \"Clear the webterm history\",\n      \"usage\": \"clear\"\n    },\n    {\n      \"name\" : \"reload\",\n      \"help\": \"Reloads the environment\",\n      \"usage\": \"reload\"\n    },\n    {\n      \"name\": \"env\",\n      \"help\": \"Get and set environment variables\",\n      \"subcommands\": [\n        {\n          \"name\": \"ls\",\n          \"help\": \"List all environment variables\",\n          \"usage\": \"env ls\"\n        },\n        {\n          \"name\": \"get\",\n          \"help\": \"Get the value of an environment variable\",\n          \"usage\": \"env get {name}\"\n        },\n        {\n          \"name\": \"set\",\n          \"help\": \"Set the value of an environment variable\",\n          \"usage\": \"env set {name} {value}\"\n        },\n        {\n          \"name\": \"rm\",\n          \"help\": \"Remove an environment variable\",\n          \"usage\": \"env rm {name}\"\n        }\n      ]\n    },\n    {\n      \"name\": \"page\",\n      \"help\": \"Interact with the active page\",\n      \"subcommands\": [\n        {\n          \"name\": \"exec\",\n          \"help\": \"Execute javascript in the active page\",\n          \"usage\": \"exec {js}\"\n        },\n        {\n          \"name\": \"inject\",\n          \"help\": \"Inject CSS into the active page\",\n          \"usage\": \"inject {css}\"\n        },\n        {\n          \"name\": \"uninject\",\n          \"help\": \"Uninject CSS that was previously injected\",\n          \"usage\": \"uninject {id}\"\n        }\n      ]\n    },\n    {\n      \"name\": \"term\",\n      \"help\": \"Webterm command management\",\n      \"subcommands\": [\n        {\n          \"name\": \"ls\",\n          \"help\": \"List all installed webterm apps\",\n          \"usage\": \"term ls\"\n        },\n        {\n          \"name\": \"install\",\n          \"help\": \"Install a webterm app\",\n          \"usage\": \"term install {name} {url}\"\n        },\n        {\n          \"name\": \"uninstall\",\n          \"help\": \"Uninstall a webterm app\",\n          \"usage\": \"term install {name}\"\n        }\n      ]\n    },\n    {\n      \"name\": \"system\",\n      \"help\": \"Beaker system info commands\",\n      \"subcommands\": [\n        {\n          \"name\": \"fs_audit_stream\",\n          \"help\": \"Stream the filesystem audit log\",\n          \"usage\": \"system fs-audit-stream [-c caller] [-t target] [-m method] [-l ms]\",\n          \"options\": [\n            {\n              \"name\": \"caller\",\n              \"abbr\": \"c\",\n              \"help\": \"Filter to the given caller (URL)\"\n            },\n            {\n              \"name\": \"target\",\n              \"abbr\": \"t\",\n              \"help\": \"Filter to the given target (URL)\"\n            },\n            {\n              \"name\": \"method\",\n              \"abbr\": \"m\",\n              \"help\": \"Filter to the given method\"\n            },\n            {\n              \"name\": \"longerthan\",\n              \"abbr\": \"l\",\n              \"help\": \"Filter to calls that took longer than the given time (ms)\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"name\": \"exit\",\n      \"help\": \"Close webterm\",\n      \"usage\": \"exit\"\n    }\n  ]\n}"
  },
  {
    "path": "app/userland/webterm/js/builtins/term.js",
    "content": "import { html } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\n\nexport async function ls () {\n  var apps = await readInstalled()\n  apps.toHTML = () => {\n    return apps.map(app => html`\n      <p>\n        <a href=${app.url}><strong>${app.name}</strong></a>\n        ${app.description || ''}\n        <br><small><a href=${app.url}>${app.url}</a></small>\n      </p>\n    `)\n  }\n  return apps\n}\n\nexport async function install (opts = {}, name, url) {\n  url = toUrl(url)\n  var apps = await readInstalled()\n  if (apps.find(app => app.name === name)) {\n    throw new Error(`An application is already installed under the name \"${name}\"`)\n  }\n  if (apps.find(app => app.url === url)) {\n    throw new Error(`This application is already installed`)\n  }\n  let description = undefined\n  if (url.startsWith('hyper://')) {\n    let info = await beaker.hyperdrive.getInfo(url)\n    description = info.description\n  }\n  apps.push({url, name, description})\n  await saveInstalled(apps)\n  await this.env.reload()\n  return {url, toHTML: () => html`Installed \"${name}\"`}\n}\n\nexport async function uninstall (opts = {}, name) {\n  var apps = await readInstalled()\n  var index = apps.findIndex(app => app.name === name)\n  if (index === -1) throw new Error(`No app named \"${name}\" is installed`)\n  apps.splice(index, 1)\n  await saveInstalled(apps)\n  await this.env.reload()\n  return `Uninstalled \"${name}\"`\n}\n\nasync function readInstalled () {\n  return beaker.hyperdrive.drive('hyper://private/').readFile('/webterm/installed.json').then(JSON.parse).catch(e => ([]))\n}\n\nasync function saveInstalled (urls) {\n  await beaker.hyperdrive.drive('hyper://private/').mkdir('/webterm').catch(e => undefined)\n  await beaker.hyperdrive.drive('hyper://private/').writeFile('/webterm/installed.json', JSON.stringify(urls, null, 2))\n}\n\nfunction toUrl (str = '') {\n  var urlp\n  try {\n    urlp = new URL(str)\n  } catch (e) {\n    throw new Error(`\"${str}\" is not a valid URL`)\n  }\n  return `${urlp.protocol}//${urlp.hostname}`\n}"
  },
  {
    "path": "app/userland/webterm/js/builtins/util.js",
    "content": "export const DRIVE_KEY_REGEX = /[0-9a-f]{64}/i\n\nexport function resolveParse (env, location) {\n  return parseLocation(env.resolve(location))\n}\n\nexport function parseLocation (location) {\n  var urlp = new URL(location)\n  urlp.drive = createDrive(urlp.toString())\n  return urlp\n}\n\nexport function joinPath (left, right) {\n  left = (left || '').toString()\n  right = (right || '').toString()\n  if (left.endsWith('/') && right.startsWith('/')) {\n    return left + right.slice(1)\n  }\n  if (!left.endsWith('/') && !right.startsWith('/')) {\n    return left + '/' + right\n  }\n  return left + right\n}\n\nexport function toDomain (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    return urlParsed.hostname\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\nexport function toNiceDomain (str, len=4) {\n  var domain = toDomain(str)\n  if (DRIVE_KEY_REGEX.test(domain)) {\n    domain = `${domain.slice(0, len)}..${domain.slice(-2)}`\n  }\n  return domain\n}\n\nexport function toNiceUrl (str) {\n  if (!str) return ''\n  try {\n    var urlParsed = new URL(str)\n    if (DRIVE_KEY_REGEX.test(urlParsed.hostname)) {\n      urlParsed.hostname = `${urlParsed.hostname.slice(0, 4)}..${urlParsed.hostname.slice(-2)}`\n    }\n    return urlParsed.toString()\n  } catch (e) {\n    // ignore, not a url\n  }\n  return str\n}\n\n/*\nThis wrapper provides a Hyperdrive interface for non-dat sites\nso that errors can be smoothly generated\n*/\n\nexport function createDrive (url) {\n  if (url.startsWith('hyper:')) {\n    return beaker.hyperdrive.drive(url)\n  }\n  return new Proxy({}, {\n    get (obj, k) {\n      if (k === 'url') return url\n      if (k === 'stat') {\n        return () => {\n          // fake response to just let stat() callers pass through\n          return {\n            isUnsupportedProtocol: true,\n            isDirectory: () => true,\n            isFile: () => true\n          }\n        }\n      }\n      return () => {\n        let urlp = new URL(url)\n        throw new Error(`${urlp.protocol} does not support this command`)\n      }\n    }\n  })\n}"
  },
  {
    "path": "app/userland/webterm/js/lib/cliclopts.1.1.1.js",
    "content": "/* Copyright Finn Pauls, MIT License\n * https://github.com/finnp/cliclopts\n */\n\nexport function Cliclopts (opts) {\n  if (!(this instanceof Cliclopts)) {\n    return new Cliclopts(opts)\n  }\n  this.opts = opts || []\n  this.indent = '    '\n  this.width = 23\n}\n\nCliclopts.prototype.print = function (stream) {\n  var output = stream || process.stdout\n  output.write(this.usage())\n}\n\nCliclopts.prototype.usage = function () {\n  var output = ''\n\n  this.opts\n    .filter(function (opt) {\n      return opt.help\n    })\n    .forEach(function (option) {\n      output += this.indent\n\n      var helpIndex = option.helpIndex\n\n      if (!helpIndex) {\n        helpIndex = '--' + option.name\n        if (option.abbr) helpIndex += ', -' + option.abbr\n      }\n      output += helpIndex\n\n      var offset = 0\n      if (helpIndex.length > this.width) {\n        output += '\\n' + this.indent\n      } else {\n        offset = helpIndex.length\n      }\n\n      output += Array(this.width - offset).join(' ')\n\n      output += option.help\n      if (option.hasOwnProperty('default')) {\n        output += ' (default: ' + JSON.stringify(option.default) + ')'\n      }\n      output += '\\n'\n    }.bind(this))\n\n  return output\n}\n\nCliclopts.prototype.booleans = function () {\n  return this.opts\n    .filter(function (opt) {\n      return opt.boolean\n    })\n    .map(function (opt) {\n      return opt.name\n    })\n}\n\nCliclopts.prototype.boolean = Cliclopts.prototype.booleans\n\nCliclopts.prototype.default = function () {\n  var defaults = {}\n  this.opts.forEach(function (opt) {\n    if ('default' in opt) {\n      defaults[opt.name] = opt.default\n      if ('abbr' in opt) defaults[opt.abbr] = opt.default\n    }\n  })\n  return defaults\n}\n\nCliclopts.prototype.alias = function () {\n  var alias = {}\n  this.opts.forEach(function (opt) {\n    var build = []\n    if ('alias' in opt) {\n      if (typeof opt.alias === 'string') build.push(opt.alias)\n      else build = build.concat(opt.alias)\n    }\n    if ('abbr' in opt) build.push(opt.abbr)\n    alias[opt.name] = build\n  })\n  return alias\n}\n\nCliclopts.prototype.options = function () {\n  return {\n    alias: this.alias(),\n    boolean: this.boolean(),\n    default: this.default()\n  }\n}\n"
  },
  {
    "path": "app/userland/webterm/js/lib/ls-array.js",
    "content": "export class LSArray {\n  #key = undefined\n  \n  constructor (key) {\n    this.#key = key\n  }\n\n  _read () {\n    try {\n      return JSON.parse(localStorage.getItem(this.#key)) || []\n    } catch {\n      return []\n    }\n  }\n\n  _save (v) {\n    localStorage.setItem(this.#key, JSON.stringify(v))\n  }\n\n  get length () {\n    return this._read().length\n  }\n\n  get (index) {\n    let arr = this._read()\n    return arr[index]\n  }\n\n  push (v) {\n    let arr = this._read()\n    arr.push(v)\n    this._save(arr)\n  }\n}"
  },
  {
    "path": "app/userland/webterm/js/lib/parser.js",
    "content": "export const parser = /*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function() {\n  \"use strict\";\n\n  function peg$subclass(child, parent) {\n    function ctor() { this.constructor = child; }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n  }\n\n  function peg$SyntaxError(message, expected, found, location) {\n    this.message  = message;\n    this.expected = expected;\n    this.found    = found;\n    this.location = location;\n    this.name     = \"SyntaxError\";\n\n    if (typeof Error.captureStackTrace === \"function\") {\n      Error.captureStackTrace(this, peg$SyntaxError);\n    }\n  }\n\n  peg$subclass(peg$SyntaxError, Error);\n\n  peg$SyntaxError.buildMessage = function(expected, found) {\n    var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n          },\n\n          \"class\": function(expectation) {\n            var escapedParts = \"\",\n                i;\n\n            for (i = 0; i < expectation.parts.length; i++) {\n              escapedParts += expectation.parts[i] instanceof Array\n                ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n                : classEscape(expectation.parts[i]);\n            }\n\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n          },\n\n          any: function(expectation) {\n            return \"any character\";\n          },\n\n          end: function(expectation) {\n            return \"end of input\";\n          },\n\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n\n    function hex(ch) {\n      return ch.charCodeAt(0).toString(16).toUpperCase();\n    }\n\n    function literalEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\"/g,  '\\\\\"')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function classEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\\]/g, '\\\\]')\n        .replace(/\\^/g, '\\\\^')\n        .replace(/-/g,  '\\\\-')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function describeExpectation(expectation) {\n      return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n    }\n\n    function describeExpected(expected) {\n      var descriptions = new Array(expected.length),\n          i, j;\n\n      for (i = 0; i < expected.length; i++) {\n        descriptions[i] = describeExpectation(expected[i]);\n      }\n\n      descriptions.sort();\n\n      if (descriptions.length > 0) {\n        for (i = 1, j = 1; i < descriptions.length; i++) {\n          if (descriptions[i - 1] !== descriptions[i]) {\n            descriptions[j] = descriptions[i];\n            j++;\n          }\n        }\n        descriptions.length = j;\n      }\n\n      switch (descriptions.length) {\n        case 1:\n          return descriptions[0];\n\n        case 2:\n          return descriptions[0] + \" or \" + descriptions[1];\n\n        default:\n          return descriptions.slice(0, -1).join(\", \")\n            + \", or \"\n            + descriptions[descriptions.length - 1];\n      }\n    }\n\n    function describeFound(found) {\n      return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n    }\n\n    return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n  };\n\n  function peg$parse(input, options) {\n    options = options !== void 0 ? options : {};\n\n    var peg$FAILED = {},\n\n        peg$startRuleFunctions = { Expression: peg$parseExpression },\n        peg$startRuleFunction  = peg$parseExpression,\n\n        peg$c0 = function(term) { return {type: 'param', key: term.key, value: term.value} },\n        peg$c1 = function(term) { return {type: 'token', value: term} },\n        peg$c2 = peg$otherExpectation(\"switch\"),\n        peg$c3 = \"-\",\n        peg$c4 = peg$literalExpectation(\"-\", false),\n        peg$c5 = function(key, value) { return {key, value} },\n        peg$c6 = function(key) { return {key, value: undefined} },\n        peg$c7 = peg$otherExpectation(\"non-switch\"),\n        peg$c8 = function(value) { return value },\n        peg$c9 = peg$otherExpectation(\"string\"),\n        peg$c10 = function(head, rest) { return head + rest.join('') },\n        peg$c11 = \"\\\"\",\n        peg$c12 = peg$literalExpectation(\"\\\"\", false),\n        peg$c13 = function(value) { return value.join('') },\n        peg$c14 = \"'\",\n        peg$c15 = peg$literalExpectation(\"'\", false),\n        peg$c16 = peg$otherExpectation(\"character, whitespace, or double quote\"),\n        peg$c17 = peg$otherExpectation(\"character, whitespace, or single quote\"),\n        peg$c18 = peg$otherExpectation(\"character or whitespace\"),\n        peg$c19 = peg$otherExpectation(\"character, single quote, or double quote\"),\n        peg$c20 = peg$otherExpectation(\"character\"),\n        peg$c21 = \"\\\\ \",\n        peg$c22 = peg$literalExpectation(\"\\\\ \", false),\n        peg$c23 = function() { return ' ' },\n        peg$c24 = /^[^ \"'\\f\\n\\r\\t\\x0B\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]/i,\n        peg$c25 = peg$classExpectation([\" \", \"\\\"\", \"'\", \"\\f\", \"\\n\", \"\\r\", \"\\t\", \"\\x0B\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\", \"\\uFEFF\"], true, true),\n        peg$c26 = peg$otherExpectation(\"whitespace\"),\n        peg$c27 = /^[ \\t]/,\n        peg$c28 = peg$classExpectation([\" \", \"\\t\"], false, false),\n\n        peg$currPos          = 0,\n        peg$savedPos         = 0,\n        peg$posDetailsCache  = [{ line: 1, column: 1 }],\n        peg$maxFailPos       = 0,\n        peg$maxFailExpected  = [],\n        peg$silentFails      = 0,\n\n        peg$result;\n\n    if (\"startRule\" in options) {\n      if (!(options.startRule in peg$startRuleFunctions)) {\n        throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n      }\n\n      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n    }\n\n    function text() {\n      return input.substring(peg$savedPos, peg$currPos);\n    }\n\n    function location() {\n      return peg$computeLocation(peg$savedPos, peg$currPos);\n    }\n\n    function expected(description, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildStructuredError(\n        [peg$otherExpectation(description)],\n        input.substring(peg$savedPos, peg$currPos),\n        location\n      );\n    }\n\n    function error(message, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildSimpleError(message, location);\n    }\n\n    function peg$literalExpectation(text, ignoreCase) {\n      return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n    }\n\n    function peg$classExpectation(parts, inverted, ignoreCase) {\n      return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n    }\n\n    function peg$anyExpectation() {\n      return { type: \"any\" };\n    }\n\n    function peg$endExpectation() {\n      return { type: \"end\" };\n    }\n\n    function peg$otherExpectation(description) {\n      return { type: \"other\", description: description };\n    }\n\n    function peg$computePosDetails(pos) {\n      var details = peg$posDetailsCache[pos], p;\n\n      if (details) {\n        return details;\n      } else {\n        p = pos - 1;\n        while (!peg$posDetailsCache[p]) {\n          p--;\n        }\n\n        details = peg$posDetailsCache[p];\n        details = {\n          line:   details.line,\n          column: details.column\n        };\n\n        while (p < pos) {\n          if (input.charCodeAt(p) === 10) {\n            details.line++;\n            details.column = 1;\n          } else {\n            details.column++;\n          }\n\n          p++;\n        }\n\n        peg$posDetailsCache[pos] = details;\n        return details;\n      }\n    }\n\n    function peg$computeLocation(startPos, endPos) {\n      var startPosDetails = peg$computePosDetails(startPos),\n          endPosDetails   = peg$computePosDetails(endPos);\n\n      return {\n        start: {\n          offset: startPos,\n          line:   startPosDetails.line,\n          column: startPosDetails.column\n        },\n        end: {\n          offset: endPos,\n          line:   endPosDetails.line,\n          column: endPosDetails.column\n        }\n      };\n    }\n\n    function peg$fail(expected) {\n      if (peg$currPos < peg$maxFailPos) { return; }\n\n      if (peg$currPos > peg$maxFailPos) {\n        peg$maxFailPos = peg$currPos;\n        peg$maxFailExpected = [];\n      }\n\n      peg$maxFailExpected.push(expected);\n    }\n\n    function peg$buildSimpleError(message, location) {\n      return new peg$SyntaxError(message, null, null, location);\n    }\n\n    function peg$buildStructuredError(expected, found, location) {\n      return new peg$SyntaxError(\n        peg$SyntaxError.buildMessage(expected, found),\n        expected,\n        found,\n        location\n      );\n    }\n\n    function peg$parseExpression() {\n      var s0, s1;\n\n      s0 = [];\n      s1 = peg$parseTerm();\n      if (s1 !== peg$FAILED) {\n        while (s1 !== peg$FAILED) {\n          s0.push(s1);\n          s1 = peg$parseTerm();\n        }\n      } else {\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseTerm() {\n      var s0, s1, s2;\n\n      s0 = peg$currPos;\n      s1 = peg$parseSwitch();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c0(s1);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parseString();\n        if (s1 !== peg$FAILED) {\n          s2 = peg$parse_();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          if (s2 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c1(s1);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n\n      return s0;\n    }\n\n    function peg$parseSwitch() {\n      var s0, s1, s2, s3, s4;\n\n      peg$silentFails++;\n      s0 = peg$currPos;\n      s1 = [];\n      if (input.charCodeAt(peg$currPos) === 45) {\n        s2 = peg$c3;\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c4); }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          if (input.charCodeAt(peg$currPos) === 45) {\n            s2 = peg$c3;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c4); }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseString();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          s4 = peg$parse_();\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parse_();\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseNonSwitch();\n            if (s4 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c5(s2, s4);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = [];\n        if (input.charCodeAt(peg$currPos) === 45) {\n          s2 = peg$c3;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c4); }\n        }\n        if (s2 !== peg$FAILED) {\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            if (input.charCodeAt(peg$currPos) === 45) {\n              s2 = peg$c3;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c4); }\n            }\n          }\n        } else {\n          s1 = peg$FAILED;\n        }\n        if (s1 !== peg$FAILED) {\n          s2 = peg$parseString();\n          if (s2 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c6(s2);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c2); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseNonSwitch() {\n      var s0, s1, s2;\n\n      peg$silentFails++;\n      s0 = peg$currPos;\n      s1 = peg$currPos;\n      peg$silentFails++;\n      if (input.charCodeAt(peg$currPos) === 45) {\n        s2 = peg$c3;\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c4); }\n      }\n      peg$silentFails--;\n      if (s2 === peg$FAILED) {\n        s1 = void 0;\n      } else {\n        peg$currPos = s1;\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseString();\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c8(s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c7); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseString() {\n      var s0, s1, s2, s3;\n\n      peg$silentFails++;\n      s0 = peg$currPos;\n      s1 = peg$parseChar();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseCharOrQuote();\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$parseCharOrQuote();\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c10(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 34) {\n          s1 = peg$c11;\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c12); }\n        }\n        if (s1 !== peg$FAILED) {\n          s2 = [];\n          s3 = peg$parseCharOr_OrSingleQuote();\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parseCharOr_OrSingleQuote();\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 34) {\n              s3 = peg$c11;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c12); }\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c13(s2);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 39) {\n            s1 = peg$c14;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c15); }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parseCharOr_OrDoubleQuote();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parseCharOr_OrDoubleQuote();\n            }\n            if (s2 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 39) {\n                s3 = peg$c14;\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c15); }\n              }\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c13(s2);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c9); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseCharOr_OrDoubleQuote() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = peg$parseCharOr_();\n      if (s0 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 34) {\n          s0 = peg$c11;\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c12); }\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c16); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseCharOr_OrSingleQuote() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = peg$parseCharOr_();\n      if (s0 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 39) {\n          s0 = peg$c14;\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c15); }\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c17); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseCharOr_() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = peg$parseChar();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parse_();\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c18); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseCharOrQuote() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = peg$parseChar();\n      if (s0 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 39) {\n          s0 = peg$c14;\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c15); }\n        }\n        if (s0 === peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 34) {\n            s0 = peg$c11;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c12); }\n          }\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c19); }\n      }\n\n      return s0;\n    }\n\n    function peg$parseChar() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 2) === peg$c21) {\n        s1 = peg$c21;\n        peg$currPos += 2;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c22); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c23();\n      }\n      s0 = s1;\n      if (s0 === peg$FAILED) {\n        if (peg$c24.test(input.charAt(peg$currPos))) {\n          s0 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c25); }\n        }\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c20); }\n      }\n\n      return s0;\n    }\n\n    function peg$parse_() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = [];\n      if (peg$c27.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c28); }\n      }\n      if (s1 !== peg$FAILED) {\n        while (s1 !== peg$FAILED) {\n          s0.push(s1);\n          if (peg$c27.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c28); }\n          }\n        }\n      } else {\n        s0 = peg$FAILED;\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c26); }\n      }\n\n      return s0;\n    }\n\n    peg$result = peg$startRuleFunction();\n\n    if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n      return peg$result;\n    } else {\n      if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n        peg$fail(peg$endExpectation());\n      }\n\n      throw peg$buildStructuredError(\n        peg$maxFailExpected,\n        peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n        peg$maxFailPos < input.length\n          ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n          : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n      );\n    }\n  }\n\n  return {\n    SyntaxError: peg$SyntaxError,\n    parse:       peg$parse\n  };\n})();\n"
  },
  {
    "path": "app/userland/webterm/js/lib/term-drive-wrapper.js",
    "content": "/*\nThis wrapper provides a Hyperdrive interface for non-dat sites\nso that errors can be smoothly generated\n*/\n\nexport function createDrive (url) {\n  if (url.startsWith('hyper:')) {\n    return beaker.hyperdrive.drive(url)\n  }\n  return new Proxy({}, {\n    get (obj, k) {\n      if (k === 'url') return url\n      if (k === 'stat') {\n        return () => {\n          // fake response to just let stat() callers pass through\n          return {\n            isUnsupportedProtocol: true,\n            isDirectory: () => true,\n            isFile: () => true\n          }\n        }\n      }\n      return () => {\n        let urlp = new URL(url)\n        throw new Error(`${urlp.protocol} does not support this command`)\n      }\n    }\n  })\n}\n"
  },
  {
    "path": "app/userland/webterm/js/lib/term-icon.js",
    "content": "customElements.define('term-icon', class extends HTMLElement {\n  connectedCallback () {\n    this.render()\n  }\n\n  render () {\n    const icon = this.getAttribute('icon')\n    const span = document.createElement('span')\n    if (this.hasAttribute('solid')) {\n      span.classList.add('fas')\n    } else {\n      span.classList.add('far')\n    }\n    if (this.hasAttribute('fw')) {\n      span.classList.add('fa-fw')\n    }\n    span.classList.add(`fa-${icon}`)\n    this.append(span)\n  }\n})"
  },
  {
    "path": "app/userland/webterm/js/lib/webterm.peg",
    "content": "// Webterm Input Grammar (PEG.js)\n// ==============================\n\nExpression\n  = Term+\n  \nTerm\n  = term:Switch _? { return {type: 'param', key: term.key, value: term.value} }\n  / term:String _? { return {type: 'token', value: term} }\n\nSwitch \"switch\"\n  = '-'+ key:String _+ value:NonSwitch { return {key, value} }\n  / '-'+ key:String { return {key, value: undefined} }\n\nNonSwitch \"non-switch\"\n  = !'-' value:String { return value }\n\nString \"string\"\n  = head:Char rest:CharOrQuote* { return head + rest.join('') }\n  / '\"' value:CharOr_OrSingleQuote* '\"' { return value.join('') }\n  / '\\'' value:CharOr_OrDoubleQuote* '\\'' { return value.join('') }\n\nCharOr_OrDoubleQuote \"character, whitespace, or double quote\"\n  = CharOr_\n  / '\"'\n\nCharOr_OrSingleQuote \"character, whitespace, or single quote\"\n  = CharOr_\n  / '\\''\n\nCharOr_ \"character or whitespace\"\n  = Char\n  / _\n\nCharOrQuote \"character, single quote, or double quote\"\n  = Char\n  / '\\''\n  / '\"'\n\nChar \"character\"\n  = '\\\\ ' { return ' ' } // escaped space\n  / [^ \"'\\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]i // regular characters\n\n_ \"whitespace\"\n  = [ \\t]+"
  },
  {
    "path": "app/userland/webterm/js/main.js",
    "content": "import { LitElement, html, TemplateResult } from 'beaker://app-stdlib/vendor/lit-element/lit-element.js'\nimport { repeat } from 'beaker://app-stdlib/vendor/lit-element/lit-html/directives/repeat.js'\nimport { parser } from './lib/parser.js'\nimport { Cliclopts } from './lib/cliclopts.1.1.1.js'\nimport { createDrive } from './lib/term-drive-wrapper.js'\nimport { joinPath, shortenAllKeys } from 'beaker://app-stdlib/js/strings.js'\nimport { findParent } from 'beaker://app-stdlib/js/dom.js'\nimport { LSArray } from './lib/ls-array.js'\nimport * as builtinsFns from './builtins/index.js'\nimport builtinsManifest from './builtins/manifest.js'\nimport css from '../css/main.css.js'\nimport './lib/term-icon.js'\n\nconst TAB_COMPLETION_RENDER_LIMIT = 15\n\n// Look up control/navigation keys via keycode.\n//\n// Taken from https://github.com/ccampbell/mousetrap/blob/2f9a476ba6158ba69763e4fcf914966cc72ef433/mousetrap.js#L39-L62,\n// licensed under the Apache-2.0.\nconst KEYCODE_MAP = {\n  8: 'backspace',\n  9: 'tab',\n  13: 'enter',\n  16: 'shift',\n  17: 'ctrl',\n  18: 'alt',\n  20: 'capslock',\n  27: 'esc',\n  32: 'space',\n  33: 'pageup',\n  34: 'pagedown',\n  35: 'end',\n  36: 'home',\n  37: 'left',\n  38: 'up',\n  39: 'right',\n  40: 'down',\n  45: 'ins',\n  46: 'del',\n  91: 'meta',\n  93: 'meta',\n  224: 'meta'\n}\n\nclass WebTerm extends LitElement {\n  static get styles () {\n    return [css]\n  }\n\n  constructor () {\n    super()\n    beaker.panes.setAttachable()\n    this.isLoaded = false\n    this.startUrl = ''\n    this._url = ''\n    this.commands = {}\n    this.commandModules = {}\n    this.pageCommands = {}\n    this.cwd = undefined\n    this.outputHist = []\n    this.tabCompletion = undefined\n    this.liveHelp = undefined\n    this.envVars = {}\n\n    var commandHistArray = new LSArray('commandHistory')\n    this.commandHist = {\n      array: commandHistArray,\n      cursor: commandHistArray.length,\n      add (entry) {\n        if (entry) {\n          this.array.push(entry)\n        }\n        this.cursor = this.array.length\n      },\n      prevUp () {\n        if (this.cursor === -1) return ''\n        this.cursor = Math.max(0, this.cursor - 1)\n        return this.array.get(this.cursor)\n      },\n      prevDown () {\n        this.cursor = Math.min(this.array.length, this.cursor + 1)\n        return this.array.get(this.cursor) || ''\n      },\n      reset () {\n        this.cursor = this.array.length\n      }\n    }\n\n    this.addEventListener('click', e => {\n      let anchor = findParent(e.path[0], el => el.tagName === 'A')\n      if (anchor) {\n        e.stopPropagation()\n        e.preventDefault()\n        if (e.metaKey || anchor.getAttribute('target') === '_blank') {\n          window.open(anchor.getAttribute('href'))\n        } else {\n          var attachedPane = beaker.panes.getAttachedPane()\n          if (attachedPane) {\n            beaker.panes.navigate(attachedPane.id, anchor.getAttribute('href'))\n          } else {\n            window.location = anchor.getAttribute('href')\n          }\n        }\n        return\n      }\n      if (!this.shadowRoot.activeElement && window.getSelection().type !== 'Range') {\n        // clicks that are not text-selections should focus the input\n        this.setFocus()\n      }\n    })\n\n    ;(async () => {\n      let ctx = (new URLSearchParams(location.search)).get('url')\n      if (ctx && ctx.startsWith('beaker://webterm')) ctx = undefined\n      var attachedPane = await beaker.panes.attachToLastActivePane()\n      if (attachedPane) {\n        ctx = attachedPane.url\n      }\n      this.load(ctx || 'hyper://private/').then(_ => {\n        this.setFocus()\n      })\n    })()\n  }\n\n  teardown () {\n\n  }\n\n  get url () {\n    return this._url\n  }\n\n  set url (v) {\n    history.replaceState({}, '', `/?url=${v}`)\n    this._url = v\n  }\n\n  getContext () {\n    return this.url\n  }\n\n  get promptInput () {\n    try { return this.shadowRoot.querySelector('.prompt input').value }\n    catch (e) { return '' }\n  }\n\n  async load (url) {\n    this.url = url\n\n    var cwd = this.parseURL(this.url)\n    while (cwd.pathname !== '/') {\n      try {\n        let st = await (createDrive(cwd.origin)).stat(cwd.pathname)\n        if (st.isDirectory()) break\n      } catch (e) { \n        /* ignore */\n      }\n      cwd.pathname = cwd.pathname.split('/').slice(0, -1).join('/')\n    }\n    this.cwd = cwd\n\n    if (!this.isLoaded) {\n      await this.importEnvironment()\n      await this.output(html`<div><strong>Welcome to webterm 1.0.</strong> Type <code>help</code> if you get lost.</div>`)\n      this.isLoaded = true\n    }\n\n    this.requestUpdate()\n  }\n\n  async importEnvironment () {\n    this.commands = {}\n    this.commandModules = {}\n    this.pageCommands = {}\n    /* dont await */ this.loadEnvVars()\n    await this.loadBuiltins()\n    await this.loadInstalledCommands()\n    await this.loadPageCommands()\n  }\n\n  async loadBuiltins () {\n    this.commandModules.builtins = {help: this.help.bind(this)}\n    this.commands.help = {\n      fn: this.help.bind(this),\n      package: 'builtins',\n      name: 'help',\n      help: 'Get documentation on a command',\n      usage: 'help [command]'\n    }\n\n    try {\n      for (let command of builtinsManifest.commands) {\n        let commandData = {\n          fn: builtinsFns[command.name],\n          package: 'builtins',\n          name: command.name,\n          path: [command.name],\n          help: command.help,\n          usage: command.usage,\n          autocomplete: command.autocomplete,\n          options: command.options,\n          subcommands: subcommandsMap('builtins', name => builtinsFns[command.name][name], command.name, command.subcommands)\n        }\n        if (!(command.name in this.commands)) {\n          this.commands[command.name] = commandData\n        } else {\n          this.outputError(`Unabled to add ${command.name} from builtins`, 'Command name already in use')\n        }\n      }\n    } catch (err) {\n      this.outputError(`Failed to load builtins`, err)\n    }\n  }\n\n  async loadInstalledCommands () {\n    var installed = await beaker.hyperdrive.readFile('hyper://private/webterm/installed.json').then(JSON.parse).catch(e => ([]))\n    var installedValidated = []\n    for (let app of installed) {\n      if (!app || typeof app !== 'object') {\n        this.outputError(`Invalid entry in /webterm/installed.json: ${app}`)\n        continue\n      }\n      if (!app.name || typeof app.name !== 'string') {\n        this.outputError(`Invalid entry in /webterm/installed.json: ${JSON.stringify(app)}`, new Error('.name must be a string'))\n        continue\n      }\n      if (!app.url || typeof app.url !== 'string') {\n        this.outputError(`Invalid entry in /webterm/installed.json: ${JSON.stringify(app)}`, new Error('.url must be a string'))\n        continue\n      }\n      installedValidated.push(app)\n    }\n    await Promise.all(installedValidated.map(async app => {\n      let subcommands = await beaker.browser.spawnAndExecuteJs(app.url, `\n        ;(() => {\n          let commands = []\n          if (beaker.terminal.getCommands().length) {\n            for (let command of beaker.terminal.getCommands()) {\n              commands.push({\n                package: undefined,\n                name: command.name,\n                path: [command.name],\n                help: command.help,\n                usage: command.usage,\n                autocomplete: command.autocomplete,\n                options: command.options,\n                subcommands: undefined\n              })\n            }\n          }\n          return commands\n        })();\n      `)\n      var appCommand = {\n        package: app.name,\n        name: app.name,\n        help: app.description && typeof app.description === 'string' ? app.description : undefined,\n        path: [app.name],\n        subcommands: subcommandsMap(\n          app.name,\n          name => (...args) => beaker.browser.spawnAndExecuteJs(app.url, `\n            ;(() => {\n              let command = beaker.terminal.getCommands().find(c => c.name === ${JSON.stringify(name)});\n              if (command) {\n                return command.handle.apply(command, ${JSON.stringify(args)})\n              }\n            })();\n          `),\n          app.name,\n          subcommands\n        ) \n      }\n      this.commands[app.name] = appCommand\n    }))\n  }\n\n  async loadPageCommands () {\n    var attachedPane = beaker.panes.getAttachedPane()\n    if (!attachedPane) {\n      this.pageCommands = {}\n      return\n    }\n    this.pageCommands = await beaker.panes.executeJavaScript(attachedPane.id, `\n      ;(() => {\n        let commands = {}\n        if (beaker.terminal.getCommands().length) {\n          for (let command of beaker.terminal.getCommands()) {\n            commands[command.name] = {\n              package: 'page commands',\n              name: '@' + command.name,\n              path: ['@' + command.name],\n              help: command.help,\n              usage: command.usage,\n              autocomplete: command.autocomplete,\n              options: command.options,\n              subcommands: undefined\n            }\n          }\n        }\n        return commands\n      })();\n    `)\n    this.pageCommands = this.pageCommands || {}\n  }\n  \n  async loadEnvVars () {\n    try {\n      this.envVars = await beaker.hyperdrive.readFile('hyper://private/webterm/env.json', 'json')\n    } catch (err) {\n      if (!err.toString().includes('NotFoundError')) {\n        this.outputError(`Failed to load environment variables`, err)\n      }\n    }\n  }\n  \n  async persistEnvVars () {\n    var envVars = JSON.parse(JSON.stringify(this.envVars))\n    delete envVars['@']\n    delete envVars.cwd\n    await beaker.hyperdrive.writeFile('hyper://private/webterm/env.json', envVars, 'json')\n  }\n\n  setCWD (location) {\n    var locationParsed\n    if (location.startsWith('hyper://')) {\n      try {\n        locationParsed = new URL(location)\n        location = `${locationParsed.host}${locationParsed.pathname}`\n      } catch (err) {\n        location = `${this.cwd.host}${joinPath(this.cwd.pathname, location)}`\n      }\n      locationParsed = new URL('hyper://' + location)\n    } else {\n      locationParsed = new URL(location)\n    }\n\n    if (this.url === locationParsed.toString()) {\n      return\n    }\n\n    this.url = location\n    this.cwd = locationParsed\n    this.requestUpdate()\n  }\n\n  parseURL (url) {\n    if (!url.includes('://')) url = 'hyper://' + url\n    return new URL(url)\n  }\n\n  outputHeader (thenCwd, cmd) {\n    let host = shortenHash(thenCwd.host)\n    let pathname = shortenAllKeys(thenCwd.pathname || '').replace(/\\/$/, '')\n    this.outputHist.push(html`<div class=\"header\"><strong><a href=${thenCwd.toString()}>${host}${pathname}</a>&gt;</strong> <span>${cmd || ''}</span></div>`)\n  }\n\n  async output (output) {\n    return this._output(this.outputHist, output)\n  }\n\n  async _output (buffer, output) {\n    // create the place in the history\n    var index = buffer.length\n    buffer.push(html``)\n\n    // show a spinner for promises\n    if (output instanceof Promise) {\n      buffer.splice(index, 1, html`\n        <div class=\"entry\"><span class=\"spinner\"></span></div>\n      `)\n      this.requestUpdate()\n\n      try {\n        output = await output\n      } catch (err) {\n        output = html`<div class=\"error\"><div class=\"error-stack\">${err.toString()}</div></div>`\n      }\n    }\n\n    // finished, render/replace with final output\n    if (typeof output === 'undefined' || !output) {\n      output = ''\n    } else if (output.toHTML) {\n      output = output.toHTML()\n    } else if (typeof output !== 'string' && !(output instanceof TemplateResult)) {\n      output = html`<pre>${JSON.stringify(output)}</pre>`\n    } else {\n      output = html`<pre>${output}</pre>`\n    }\n    buffer.splice(index, 1, html`\n      <div class=\"entry\">${output}</div>\n    `)\n    this.requestUpdate()\n  }\n\n  outputError (msg, err, thenCWD, cmd) {\n    if (thenCWD || cmd) this.outputHeader(thenCWD, cmd)\n    this.output(html`<div class=\"error\"><div class=\"error-header\">${msg}</div><div class=\"error-stack\">${err ? err.toString() : ''}</div></div>`)\n  }\n\n  clearHistory () {\n    this.outputHist = []\n    this.requestUpdate()\n  }\n\n  getAllEnv () {\n    return Object.assign({}, this.envVars, {\n      cwd: this.cwd.toString()\n    })\n  }\n\n  getEnv (key) {\n    if (key === 'cwd') return this.cwd.toString()\n    return this.envVars[key] || ''\n  }\n\n  async setEnv (key, value) {\n    if (key === '@') return\n    if (key === 'cwd') return\n    if (key === 'home') return\n    await this.loadEnvVars()\n    if (!value) delete this.envVars[key]\n    else this.envVars[key] = value\n    await this.persistEnvVars()\n  }\n\n  applySubstitutions (inputParsed) {\n    const doReplace = str => str.replace(/\\$([a-z@0-9]+)/ig, (val) => {\n      var key = val.slice(1).toLowerCase()\n      return this.getEnv(key)\n    })\n    inputParsed.forEach(term => {\n      if (typeof term.value === 'string') {\n        term.value = doReplace(term.value)\n      }\n    })\n  }\n\n  toArgv (inputParsed, optsDesc) {\n    var opts = {}\n    var positional = []\n    \n    // used to map aliased names (eg -f becomes --foo)\n    const resolveKey = key => {\n      var match = Object.entries(optsDesc.alias).find(([longName, aliases]) => aliases.includes(key))\n      return match ? match[0] : key\n    }\n\n    inputParsed.forEach(token => {\n      if (token.type === 'param') {\n        var key = resolveKey(token.key)\n        var value = token.value\n\n        // if a boolean arg has a non-boolean value, move the value to the positional args\n        if (optsDesc.boolean.includes(key)) {\n          if (typeof value !== 'boolean') {\n            positional.push(value)\n            value = true\n          }\n        }\n\n        opts[key] = value\n      } else {\n        positional.push(token.value)\n      }\n    })\n\n    for (let key in optsDesc.default) {\n      key = resolveKey(key)\n      if (typeof opts[key] === 'undefined') {\n        opts[key] = optsDesc.default[key]\n      }\n    }\n\n    return [opts].concat(positional)\n  }\n\n  async evalPrompt () {\n    var prompt = this.shadowRoot.querySelector('.prompt input')\n    if (!prompt.value.trim()) {\n      return\n    }\n    this.commandHist.add(prompt.value)\n\n    var attachedPane = beaker.panes.getAttachedPane()\n    this.envVars['@'] = attachedPane ? attachedPane.url : this.cwd.toString()\n\n    var inputValue = prompt.value\n    try {\n      var inputParsed = parser.parse(inputValue)\n    } catch (e) {\n      this.outputError('There was an issue with parsing your input', e.toString(), this.cwd, inputValue)\n      this.readTabCompletionOptions()\n      return false\n    }\n    this.applySubstitutions(inputParsed)\n    var paramsIndex = 1\n    prompt.value = ''\n\n    var command\n    var commandName = inputParsed[0].value\n    if (commandName.startsWith('@')) {\n      await this.loadPageCommands()\n      command = this.pageCommands[commandName.slice(1)]\n      if (command) {\n        command.fn = (...args) => beaker.panes.executeJavaScript(attachedPane.id, `\n          ;(() => {\n            let command = beaker.terminal.getCommands().find(c => c.name === ${JSON.stringify(commandName.slice(1))});\n            if (command) {\n              return command.handle.apply(command, ${JSON.stringify(args)})\n            }\n          })();\n        `)\n      }\n    } else {\n      command = this.commands[commandName]\n      if (command && command.subcommands) {\n        if (command.subcommands[inputParsed[1]?.value]) {\n          command = command.subcommands[inputParsed[1].value]\n          paramsIndex = 2\n        } else {\n          command = this.commands.help\n          paramsIndex = 0\n        }\n      }\n    }\n    if (!command) {\n      this.outputError('', `Command not found: ${commandName}`, this.cwd, inputValue)\n      this.readTabCompletionOptions()\n      return false\n    }\n\n    var cliclopts = new Cliclopts(command.options)\n    var argv = this.toArgv(inputParsed.slice(paramsIndex), cliclopts.options())\n    if ('h' in argv[0] || 'help' in argv[0]) {\n      command = this.commands.help\n      argv = [argv[0]].concat(inputParsed.slice(0, paramsIndex).map(v => v.value)).concat(argv.slice(1))\n    }\n    try {\n      var oldCWD = new URL(this.cwd.toString())\n      this.outputHeader(oldCWD, inputValue)\n\n      var additionalOutput = []\n      this.outputHist.push(additionalOutput)\n\n      let ctx = {\n        env: {\n          getAll: this.getAllEnv.bind(this),\n          get: this.getEnv.bind(this),\n          set: this.setEnv.bind(this),\n          goto: this.setCWD.bind(this),\n          focus: this.setFocus.bind(this),\n          resolve: this.resolve.bind(this),\n          clearHistory: this.clearHistory.bind(this),\n          reload: this.importEnvironment.bind(this),\n          close: this.close.bind(this)\n        },\n        page: {\n          goto (url, opts = {}) {\n            if (opts.newTab) window.open(url)\n            else {\n              var pane = beaker.panes.getAttachedPane()\n              if (!pane) throw new Error('No attached pane')\n              beaker.panes.navigate(pane.id, url)\n            }\n          },\n          refresh () {\n            var pane = beaker.panes.getAttachedPane()\n            if (!pane) throw new Error('No attached pane')\n            beaker.panes.navigate(pane.id, pane.url)\n          },\n          focus () {\n            var pane = beaker.panes.getAttachedPane()\n            if (!pane) throw new Error('No attached pane')\n            beaker.panes.focus(pane.id)\n          },\n          exec (js) {\n            var pane = beaker.panes.getAttachedPane()\n            if (!pane) throw new Error('No attached pane')\n            return beaker.panes.executeJavaScript(pane.id, js)\n          },\n          inject (css) {\n            var pane = beaker.panes.getAttachedPane()\n            if (!pane) throw new Error('No attached pane')\n            return beaker.panes.injectCss(pane.id, css)\n          },\n          uninject (id) {\n            var pane = beaker.panes.getAttachedPane()\n            if (!pane) throw new Error('No attached pane')\n            return beaker.panes.uninjectCss(pane.id, id)\n          }\n        },\n        out: (...args) => {\n          args = args.map(arg => {\n            if (arg && typeof arg === 'object' && !(arg instanceof TemplateResult) && !(arg instanceof HTMLElement)) { \n              return JSON.stringify(arg)\n            }\n            return arg\n          })\n          let argsSpaced = []\n          for (let i = 0; i < args.length - 1; i++) {\n            argsSpaced.push(args[i])\n            argsSpaced.push(' ')\n          }\n          argsSpaced.push(args[args.length - 1])\n          additionalOutput.push(html`<div class=\"entry\">${argsSpaced}</div>`)\n          this.requestUpdate() \n        },\n        prompt: (txt, defValue) => {\n          return new Promise((resolve, reject) => {\n            const onKeydown = e => {\n              if (e.code === 'Enter') {\n                e.currentTarget.value = e.currentTarget.value || defValue\n                resolve(e.currentTarget.value)\n                e.currentTarget.setAttribute('disabled', 1)\n                e.currentTarget.parentNode.classList.remove('active-prompt')\n                this.setFocus()\n              }\n            }\n            additionalOutput.push(html`<div class=\"entry subprompt active-prompt\">\n              <strong>${txt}</strong>\n              ${defValue ? html`<span class=\"def\">[${defValue}]</span>` : ''}:\n              <input @keydown=${onKeydown}>\n            </div>`)\n            this.requestUpdate().then(() => this.setFocusSubprompt())\n          })\n        }\n      }\n\n      var res = command.fn.call(ctx, ...argv)\n      this.output(res)\n    } catch (err) {\n      this.outputError('Command error', err)\n    }\n    this.loadPageCommands()\n    this.readTabCompletionOptions()\n  }\n\n  setFocus () {\n    try {\n      this.shadowRoot.querySelector('.prompt input').focus()\n    } catch (e) {\n      this.focus()\n    }\n  }\n\n  setFocusSubprompt () {\n    try {\n      Array.from(this.shadowRoot.querySelectorAll('.subprompt input')).pop().focus()\n    } catch (e) {\n      this.setFocus()\n    }\n  }\n\n  close () {\n    window.close()\n  }\n\n  lookupCommand (input) {\n    let cmd = undefined\n    if (input.startsWith('@')) {\n      cmd = this.pageCommands[input.split(' ')[0].slice(1)]\n    } else {\n      for (let token of input.split(' ')) {\n        let next = cmd ? (cmd.subcommands ? cmd.subcommands[token] : undefined) : this.commands[token]\n        if (!next) break\n        cmd = next\n      }\n    }\n    return cmd\n  }\n\n  async readTabCompletionOptions () {\n    this.isTabCompletionLoading = true\n    var input = this.promptInput\n    var cmd = this.lookupCommand(input)\n\n    if (cmd && !cmd.subcommands && cmd.autocomplete === 'files') {\n      // resolve input + pwd to a directory\n      let location = this.resolve(input.split(' ').pop())\n      let lp = new URL(location)\n      if (lp.pathname && !lp.pathname.endsWith('/')) {\n        lp.pathname = lp.pathname.split('/').slice(0, -1).join('/')\n      }\n\n      // read directory\n      this.tabCompletion = await (createDrive(lp.origin).readdir(lp.pathname, {includeStats: true}).catch(err => []))\n      this.tabCompletion.sort((a, b) => {\n        if (a.stat.isDirectory() && !b.stat.isDirectory()) return -1\n        if (!a.stat.isDirectory() && b.stat.isDirectory()) return 1\n        return a.name.localeCompare(b.name)\n      })\n\n      // get live help on the current command\n      if (cmd.path) {\n        this.liveHelp = this.help({}, ...cmd.path)\n      } else {\n        this.liveHelp = this.help({})\n      }\n    } else if (input) {\n      // display command options\n      if (cmd && cmd.subcommands && input.includes(' ')) {\n        this.tabCompletion = Object.values(cmd.subcommands)\n      } else if (input.startsWith('@')) {\n        this.tabCompletion = Object.values(this.pageCommands)\n      } else if (!cmd || cmd.name === 'help') {\n        this.tabCompletion = Object.values(this.commands)\n      }\n      this.liveHelp = undefined\n    } else {\n      // no input\n      this.tabCompletion = undefined\n      this.liveHelp = undefined\n    }\n\n    if (this.tabCompletion) {\n      let endOfInput = input.split(' ').pop().split('/').pop()\n      this.tabCompletion = this.tabCompletion.filter(item => {\n        return item.name.startsWith(endOfInput)\n      })\n    }\n\n    this.isTabCompletionLoading = false\n    this.requestUpdate()\n  }\n\n  triggerTabComplete (name) {\n    if (this.isTabCompletionLoading) return\n    var inputParts = this.promptInput.split(' ')\n    var endOfInput = inputParts.pop()\n    if (!name) {\n      if (!this.tabCompletion || this.tabCompletion.length === 0) return\n      if (endOfInput.length === 0) return\n\n      var isDir = false\n      var completion = ''\n      if (this.tabCompletion.length === 1) {\n        completion = this.tabCompletion[0].name\n        isDir = this.tabCompletion[0].stat && this.tabCompletion[0].stat.isDirectory()\n      } else {\n        completion = sharedTabCompletionPrefix(this.tabCompletion)\n      }\n      \n      // splice the name into the end of the input (respect slashes)\n      var endOfInputParts = endOfInput.split('/')\n      endOfInput = endOfInputParts.slice(0, -1).concat([completion]).join('/')\n      if (isDir) {\n        // add a trailing slash for directories\n        endOfInput += '/'\n      }\n\n      inputParts.push(endOfInput)\n    } else {\n      inputParts.push(name)\n    }\n    this.shadowRoot.querySelector('.prompt input').value = inputParts.join(' ')\n    this.readTabCompletionOptions()\n  }\n\n  // userland-facing methods\n  // =\n\n  resolve (location) {\n    const cwd = this.cwd\n\n    // relative paths\n    if (location === '.') {\n      return cwd.toString()\n    }\n    if (location.startsWith('./')) {\n      location = location.slice(2) // remove starting ./\n    }\n    if (!location.startsWith('/') && !location.includes('://')) {\n      location = joinPath(cwd.pathname, location)\n    }\n\n    if (!location.includes('://')) {\n      // .. up navs\n      let parts = location.split('/')\n      for (let i = 0; i < parts.length; i++) {\n        if (parts[i] === '..') {\n          if (parts[i - 1]) {\n            // remove parent\n            parts.splice(i - 1, 1)\n            i--\n          }\n          // remove '..'\n          parts.splice(i, 1)\n          i--\n        }\n      }\n      location = parts.join('/')\n      location = joinPath(cwd.origin, location)\n    }\n\n    return location\n  }\n\n  help (opts, ...topic) {\n    var commands = []\n    var sourceSet\n    var commandNameLen = 0\n    var includeDetails = false\n    var heading = undefined\n    var parentCmdName = ''\n\n    var cmd = undefined\n    if (topic[0]) {\n      cmd = this.lookupCommand(topic.join(' '))\n      if (!cmd) throw new Error(`Not a command: ${topic.join(' ')}`)\n    }\n\n    if (cmd) {\n      if (cmd.subcommands) {\n        parentCmdName = cmd.name + ' '\n        heading = cmd.help ? html`${cmd.help || ''}<br><br>` : undefined\n        sourceSet = cmd.subcommands\n      } else {\n        sourceSet = {[topic.join(' ')]: cmd}\n        includeDetails = true\n      }\n    } else {\n      sourceSet = this.commands\n    }\n\n    for (let command of Object.values(sourceSet)) {\n      commandNameLen = Math.max(command.name.length + parentCmdName.length, commandNameLen)\n      commands.push(command)\n    }\n\n    return {\n      commands,\n      toHTML () {\n        return html`\n          ${heading}\n          ${commands.map(command => {\n            var name = parentCmdName + command.name\n            var pkg = html`<a href=${command.package} target=\"_blank\">${shortenHash(command.package)}</a>`\n            var summary = html`\n              <strong style=\"white-space: pre\">${name.padEnd(commandNameLen + 2)}</strong>\n              ${command.help || ''}\n              <small class=\"color-gray\">package: ${pkg}</small>\n              <br>\n            `\n            if (!includeDetails || (!command.usage && !command.options)) return summary\n            var cliclopts = new Cliclopts(command.options)\n\n            return html`${summary}<br>Usage: ${command.usage || ''}<br><pre>${cliclopts.usage()}</pre>`\n          })}\n        `\n      }\n    }\n  }\n\n  // rendering\n  // =\n\n  render () {\n    if (!this.cwd) return html`<div></div>`\n    var host = shortenHash(this.cwd.host)\n    var pathname = shortenAllKeys(this.cwd.pathname).replace(/\\/$/, '')\n    var additionalTabCompleteOptions = this.tabCompletion ? this.tabCompletion.length - TAB_COMPLETION_RENDER_LIMIT : 0\n    let endOfInput = this.promptInput.split(' ').pop().split('/').pop()\n    return html`\n      <link rel=\"stylesheet\" href=\"beaker://assets/font-awesome.css\">\n      <div class=\"wrapper\" @keydown=${this.onKeyDown}>\n        <div class=\"output\">\n          ${this.outputHist}\n        </div>\n        <div class=\"prompt\">\n          <strong><a href=${this.cwd.toString()}>${host}${pathname}</a>&gt;</strong> <input @keyup=${this.onPromptKeyUp} />\n        </div>\n        <div class=\"floating-help-outer\">\n          <div class=\"floating-help-inner\">\n            ${this.tabCompletion && this.tabCompletion.length ? html`\n              <div class=\"tab-completion\">\n                ${repeat(this.tabCompletion.slice(0, TAB_COMPLETION_RENDER_LIMIT), item => {\n                  // highlight the part of the name that matches the input\n                  let name = item.name\n                  if (name.startsWith(endOfInput)) {\n                    name = html`<strong>${endOfInput}</strong>${name.slice(endOfInput.length)}`\n                  }\n\n                  const onClick = e => {\n                    if (item.stat) this.triggerTabComplete(item.name + (item.stat.isDirectory() ? '/' : ''))\n                    this.setFocus()\n                  }\n\n                  if (item.stat) {\n                    var type = item.stat.isDirectory() ? 'folder' : 'file'\n                    return html`<a @click=${onClick}><term-icon icon=${type}></term-icon> ${name}</a>`\n                  } else {\n                    return html`<span><span>${name}</span> <small class=\"color-gray\">${item.help || ''}</small></span>`\n                  }\n                })}\n                ${additionalTabCompleteOptions >= 1 ? html`<a>${additionalTabCompleteOptions} other items...</a>` : ''}\n              </div>\n            ` : ''}\n            <div class=\"live-help\">${this.liveHelp ? this.liveHelp.toHTML() : ''}</div>\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  updated () {\n    this.scrollTo(0, this.scrollHeight)\n    setTimeout(() => this.scrollTo(0, this.scrollHeight), 100)\n    // run a second time after 100ms for image loads (hacky, I know)\n  }\n\n  // events\n  // =\n\n  onKeyDown (e) {\n    let keycode = KEYCODE_MAP[e.which];\n    if (e.code === 'KeyL' && e.ctrlKey) {\n      e.preventDefault()\n      this.clearHistory()\n    } else if ((keycode === 'up') || (e.code === 'KeyP' && e.ctrlKey)) {\n      e.preventDefault()\n      this.shadowRoot.querySelector('.prompt input').value = this.commandHist.prevUp()\n    } else if ((keycode === 'down') || (e.code === 'KeyN' && e.ctrlKey)) {\n      e.preventDefault()\n      this.shadowRoot.querySelector('.prompt input').value = this.commandHist.prevDown()\n    } else if ((keycode === 'esc') || (e.code === 'Escape')) {\n      e.preventDefault()\n      this.shadowRoot.querySelector('.prompt input').value = ''\n      this.commandHist.reset()\n    } else if ((keycode === 'tab') || (e.code === 'Tab')) {\n      // NOTE: subtle behavior here-\n      // we prevent default on keydown to maintain focus\n      // we trigger tabcomplete on keyup to make sure it runs after\n      // readTabCompletionOptions()\n      // -prf\n      e.preventDefault()\n    }\n  }\n\n  onPromptKeyUp (e) {\n    let keycode = KEYCODE_MAP[e.which];\n    if ((keycode === 'enter') || (e.code === 'Enter')) {\n      this.evalPrompt()\n    } else if ((keycode === 'tab') || (e.code === 'Tab')) {\n      this.triggerTabComplete()\n    } else {\n      this.readTabCompletionOptions()\n    }\n  }\n}\n\ncustomElements.define('web-term', WebTerm)\n\n// helpers\n//\n\nfunction shortenHash (str = '') {\n  return str.replace(/[0-9a-f]{64}/ig, v => `${v.slice(0, 6)}..${v.slice(-2)}`)\n}\n\nfunction subcommandsMap (pkgId, getFn, parentCmdName, subcommandsArray) {\n  if (!subcommandsArray || !Array.isArray(subcommandsArray)) {\n    return undefined\n  }\n  let subcommands = {}\n  for (let subcmd of subcommandsArray) {\n    subcommands[subcmd.name] = {\n      fn: getFn(subcmd.name),\n      package: pkgId,\n      name: subcmd.name,\n      path: [parentCmdName, subcmd.name],\n      help: subcmd.help,\n      usage: subcmd.usage,\n      options: subcmd.options,\n    }\n  }\n  return subcommands\n}\n\nfunction sharedTabCompletionPrefix (tabCompletionOpts) {\n  var names = tabCompletionOpts.map(opt => opt.name)\n  names.sort()\n\n  var i = 0\n  var first = names[0]\n  var last = names[names.length - 1]\n  while (i < first.length && i < last.length && first.charAt(i) === last.charAt(i)) {\n    i++\n  }\n  return first.substring(0, i)\n}\n"
  },
  {
    "path": "appveyor.yml",
    "content": "skip_non_tags: true\n\nimage: Visual Studio 2017\nplatform:\n  - x64\n\ncache:\n  - node_modules\n  - '%USERPROFILE%\\.electron'\n\ninit:\n  - git config --global core.autocrlf input\n\ninstall:\n  - ps: Install-Product node 11 x64\n  - yarn\n  - yarn run rebuild\n\nbuild_script:\n  - yarn run release\n\ntest: off\n\nartifacts:\n  - path: 'dist\\*.exe'\n  - path: 'dist\\latest.yml'"
  },
  {
    "path": "archive-notice.md",
    "content": "# Beaker Browser is now archived\n\n**Dec 27, 2022**\n\nHi friends! This won't come as a huge shock, but the time has finally come that I archive the Beaker Browser repo. In 2022 I moved on to working at [Bluesky](https://blueskyweb.xyz), and, while the Beaker project is coming to an official end, the heart of Beaker continues with Bluesky. I hope the work we do will make Beaker's end a little less painful in the long run.\n\nI'm going to share a post-mortem in this doc, but first I want to thank everybody for the years of incredible support, kindness, and generosity. It was truly overwhelming, and at times I felt it was much more than I deserved. This includes all of the OpenCollective and Patreon donors and the handful of angel investors who put their faith in this project. Again, I hope the future work with Bluesky helps repay your faith and support.\n\nIn particular, I want to thank:\n\n- Peter Wang, for the many years of advice and support\n- Matthias Buus, Andrew Osheroff, and Tara Vancil for their collaborative spirit and inspired work\n- Everyone in the Beaker and Dat/Hypercore ecosystem for being such a great community\n- The Internet Archive for helping organize the decentralized Web community into something greater than its constituent parts (shout out to Wendy Hanamura, love yall)\n- Michael Mullins, who donated so much to the project, and who has been an incredibly supportive friend\n- Each of the angel investors for giving this risky project a shot\n- The Electron team for putting up with my strange feature requests\n- My family for not having me put away\n\nI almost hesitate to try to enumerate these special callouts because you all deserve to be named. Needless to say, I'm in your debt and am always available if you want to reach out.\n\n## The story\n\nThe backstory to Beaker starts with [Secure Scuttlebutt (SSB)](https://scuttlebutt.nz). I had been working on applications for SSB for about two years (2014-2016) and really getting my feet wet with decentralized tech. A number of exciting \"bittorrent-variant\" protocols were coming about at that time, including IPFS and Dat (eventually renamed Hypercore), and we were all working on how to make these protocols really shine.\n\nThe broad mission was to decentralize the Web. With SSB, we had made a social-networking protocol that was local first (meaning it ran mostly on-device) and was therefore extremely hackable. We wanted it to be very easy for people to build upon it.\n\nThe problem as I saw it was that app-distribution was too hard. Most of the SSB clients at the time were built on Electron or were local-hosted web servers. I wanted apps to be as easy to load as websites.\n\nThis is how the idea for Beaker started. If apps could be distributed with one of these bittorrent-variants, I figured, and then run within a safe sandbox, then we'd be able to create a flourishing ecosystem of apps on shared decentralized network. That was the big premise.\n\nElectron was beginning to mature, and I figured it would help accelerate the development of a niche browser like Beaker, and it did. I was able to produce a demo of Beaker hosting websites via dat/hypercore within 2 weeks. This got a positive response from folks (because it _is_ pretty cool) and so I continued from there. I built in tools for building the websites in-browser. \"One click to make a website\" was the premise, and it worked great. It gave great demos at talks, and pretty soon I was able to convince Tara to cofound a company with me around the project.\n\nPeople gave very positive feedback to the demo, but since this isn't a success story you can probably guess what happened next: actual usage stalled. We would produce updates that improved the polish and usability of the browser, and there'd be a small bump, but no stickiness. I indulged in fun features like a web-based commandline in the browser which was certainly cool but did nothing to make the browser useful to people. Many of these features lived in a perpetually half-finished state, and we could never quite solve the stickiness problem.\n\nThis feature churn ultimately landed Beaker [an entry in Liron Shapira's \"Bloated MVP\" blog](https://medium.com/bloated-mvp/beaker-browser-mvp-review-0-use-cases-4-years-of-engineering-0-users-9cc3c0ef24f), and give that a read because I think Liron is pretty spot-on with his analysis. It was a classic product dilemma; we were failing to give users something they wanted, and the flailing was just adding bloat instead of solving the real problem: that Beaker didn't solve a problem for people.\n\nTo our credit, we weren't completely blind to the issues. We had a gordian knot of problems that each fed into each other:\n\n- The dat/hyper sites weren't accessible in most browsers\n- There was no mobile browser, meaning the most popular computing mode wasn't even available to people\n- There was no way to safely sync state between multiple devices, a core issue to the protocol at the time\n- The APIs weren't useful enough to build great apps\n\nThe first three items were intractable given the resources we had, so I decided to focus on the fourth: API tooling. I figured if we could give a compelling dev experience on desktop, we could create a foothold niche that could help us gain the resources needed to tackle the other problems. In the four years of active development on Beaker, the last 2 were spent focused on those APIs.\n\nOn the APIs, I quite simply failed. The pure P2P model gives you a set of really great wins - no backend/frontend separation, local data, offline-first, easily-forked apps, and so on - but then hits you with a cavalcade of challenges. Without some logically centralized repository of data or router of messages, you struggle with discovery and delivery. Users don't stay consistently online and connections will randomly fail, so you stuggle with availability and performance. Initial connections and thus time-to-first-paints are slow, which is very bad news for web browsing. Debugging is quite hard. Managing resource usage on the device is hard. Scaling a user's view of the network past (say) 100k users is pretty much out the window because you're not sharing indexes; rather, you're having each device build the indexes locally. I'm probably forgetting some things, but you get the idea.\n\nAnother huge challenge is producing Web APIs that users are _comfortable_ with. People are extremely protective of the Web platform. When you start injecting these novel APIs, there's a sense that the APIs have to really be right because we might soon be stuck with them. That's a tough target to hit, and we suffered some design churn because of it. I was maybe too hesitant to commit heresies.\n\nWe went through at least two very significant API designs that never got released. Both of them were modeled as a local \"crawling indexer\" which would gather views of data published in hyper sites (via json and md) and then could be queried by apps. They were a neat idea; it was like putting a structured-data search engine in the browser. However I was never satisfied with the results because they couldn't patch over the core problems I listed above, and I tanked the releases. Eventually that tanked my collaborative's morale too, and by 2021 Beaker was pretty dead.\n\nI always knew were were trying to steer the Web as outsiders, but what I didn't expect was how fundamentally hard it is to tweak how the Web works. We would try things like making dat/hyper sites double as social profiles, but then needed some way to display that profile UI when you visited the site. We tried all kinds of things -- toolbars, sidepanels that popped up, little buttons in the location bar -- and never really found something that people would notice but which didn't intrude on the browsing experience. The Web is really a light client for applications at this point, and while I won't say it's impossible to add \"thick client\" behaviors, I can certainly say I never liked the results of my work on it.\n\nAfter I ran out of ideas for making Beaker work, I decided to give a p2p + servers hybrid a shot with a project called CTZN, another stab at a social network. The smartest thing I did there was [live stream every day of development](https://ctzn.network/dev-vlog), which helped build another wonderful community and keep me sane during the pandemic. That live-stream ultimately caught the attention of Jay Graber as she was forming the Bluesky team, and at the start of 2022 I began working with Bluesky. It was a life changing turn of events and quickly became -- and continues to be -- my dream job.\n\nBeaker is now becoming another archived repo, but I'm incredibly fortunate to carry the heart of its mission with this new team. It was a wonderful and sometimes painful five years, but it gave me the skills I needed to contribute to Bluesky, and I wouldn't trade those five years for anything. Mistakes were made, and thank goodness they were.\n\n## Lessons learned\n\nThe entrepreneurs reading this may recognize a common failure pattern here: we got to a really great demo fast, and then hit a cliff that we couldn't surmount. Rather than taking the L and re-evaluating, I slammed my head into the cliff hoping I could break through via force of will, but the tech just wasn't there, and the product wasn't either.\n\nIn hindsight, Beaker's MVP was a tool for making static websites. That's it. That's what the product did. If Beaker was going to succeed, that MVP needed to be sticky for people.\n\nKnowing that, the right next move might've been to get dat/hypercore adopted in more browsers and available on mobile -- if p2p static sites were a strong value prop. However, by 2016, that was a pretty dubious value prop to people, and that's ignoring the bad time-to-first-paint and variable uptime. Ironically, the only demographic that Beaker actually helped was teachers on a LAN with students learning how to make websites. It was a shockingly ideal tool for them. Unfortunately that's a small market and wasn't the mission I wanted to pursue.\n\nThe way I eventually digested what happened with Beaker was with the \"Percent Easy\" framework, a somewhat silly premise that I'll try to explain. See, I first started putzing with decentralization around 2012 or 2013, and I made a couple projects that completely bounced for people. They were weird and useless and nobody wanted them. When I had the good sense to follow Dominic Tarr's lead on SSB, things got a little easier for me. More people took interest and a great community formed, but it was still a very hard project to pitch to non-technical people. Then, when the Beaker project started it felt smoother than ever before. The demo was good! The feedback was good! I thought Beaker must be a winner for sure with all the positive feedback it received, so when things started to get hard, I was disoriented.\n\nEventually I started taking a wider view of what success really means: the magical product-market-fit. Getting PMF is darn hard, so what I ask when I start working on a project is, what % feels easy? Do I get to MVP quickly? Do people love the MVP? Do users stick? Do they start ripping updates out of my hands? Do they ignore the warts? And then do they continue to stick for months or even years? Each of these milestones is a chunk of percentage points that tally up to 100%. If I've got a good project then most of that 100% is going to feel \"easy.\" The higher the percentage that feels easy, the better the odds that the project will succeed. \n\nThe trick, you see, is that every % that isn't \"easy\" is not just difficult: it's _hard_. Bashing-your-head-through-the-cliff hard. The way I see it, you can maybe get 20% of the way there through sheer effort. That means a project needs to feel 80-90% easy to actually succeed, and frankly I'd caution against anything that's not \"90% easy.\" It's not laziness. It's just acceptance that each % that isn't \"easy\" is very hard. You're not special and you're not superhuman. Creating successful software is hard.\n\nWhen I look at Beaker, I think it was probably 50% easy. The initial demo took 2 weeks: 20%. It was a full website editor in about 2 months: 30%. The feedback was great: 50%. The users didn't stick: 50%. We got invited to talks which increased exposure: 51%. A few niche communities took an interest: 53%. Folks liked it enough to donate via OpenCollective and Patreon: 54%. You get the idea. Notably absent is \"usage and retention went through the roof: 80%\" and then \"usage continued to grow for years: 100%.\"\n\nI'm speaking as a builder that hasn't hit PMF so take all this with the grain of salt, but I find this framework useful to evaluate projects because it forces me to recognize the scope of the work. Early successes can make me imagine future successes are likely. Optimism, determination, and mission can make it easy for me to ignore costs. I now know that I need the wind at my back to climb a mountain, so as I work I keep asking myself, what % easy is this? If the projection starts slipping below 80, then I know I have a problem. If a product sprint to fix `$X` won't get us to 80, then I know I have a problem.\n\nAs decentralizers we may be pursuing a mission, but our work only wins in the market, and to win in the market we need to think like entrepreneurs. Ultimately, my lesson learned is that mission needs PMF.\n\n## Other thoughts\n\nA smattering of additional lessons I learned over the years.\n\nDon't be too proud to follow people with inspiration. Every time things went better for me, it's because I followed someone who was already doing something great.\n\nSimplify aggressively. With Bluesky we've opted for using p2p structures (IPLD) on a federated network, giving us some of the key advantages of p2p like account portability while retaining the performance and reliability advantages of servers. The pure p2p tech out there still has a lot of potential, but I think it's a bad fit for large scale social networks and sticking with it for Bluesky would've been a  mistake. I'm glad we approached AT Proto from first principles, and I'm very confident in the protocol at this stage, but if I have any concern it's that we may have kept complexity that ultimately doesn't prove its value. Time will tell.\n\nNever go negative with competiting projects. The decentralized Web community has been pretty great about staying \"coopetive\" (collaborative + competitive) meaning that we each play to win but we share ideas openly and speak well of each others' work. Stay focused on the shared mission if there is one. This is generally good advice, but it became specifically relevant to me: As I ended up more in the dat/hyper ecosystem, IPFS was often raised as a competing technology and I was frequently asked to comment on the differences. I never went negative, and thank goodness I didn't because one of my colleagues at Bluesky is a core contributor on IPFS, and we've become exceedingly good friends. Besides, going negative is a bad look.\n\nBuild a network of talented friends. I've never succeeded by going it alone, and my biggest mistakes have been when I failed to do this. I'm extremely lucky to have the ones I have.\n\nThis one came to me from a potential investor, and it was the best unprompted lesson I ever got: don't engage in transactional behavior. When you meet someone for the first time, build an actual relationship. If you don't have a good deal for them, then don't make a pitch. Get to know them. Develop trust. Even if you ultimately do have an ask, it'll work better if they _like_ you -- and if they're not interested, accept the \"no\" and preserve the relationship. You can guess what I did that led the investor to explain this to me.\n\nPay more attention to the market than I did. I had reasons for focusing on the Web and desktop, and none of them were the right call.\n\nDon't get too precious about the Web. It's a wonderful open platform, but it's settled into its purpose. Look for opportunities to create new open platforms that fit the moment.\n\nAlso, don't bloat your MVP.\n\n## Farewell, Beaker\n\nBeaker has left me with a lot of big memories. Speaking at JS Conf EU was a big one, and the relieved exhaustion that followed the talk. The many DWeb Summits and Camps that gave me a chance to meet TBL and Ted Nelson (!). The fun of giving talks at meetups and fielding questions. Getting to see Germany and Denmark on work trips. The many afternoons of jogging that often felt like a metaphor for my life.\n\nI've had the rare fortune of pursuing a creative mission, and it's because of everyone's support that I could. I can't thank you all enough. I'm disappointed I couldn't ultimately deliver this project to you, but I'm thankful for the friendships and the memories that came along the way.\n\nSee you all on the next one.\n\n- Paul"
  },
  {
    "path": "build/entitlements.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>com.apple.security.cs.allow-jit</key>\n    <true/>\n    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>\n    <true/>\n    <key>com.apple.security.cs.debugger</key>\n    <true/>\n    <key>com.apple.security.cs.disable-library-validation</key>\n    <true/>\n    <key>com.apple.security.inherit</key>\n    <true/>\n    <key>com.apple.security.network.client</key>\n    <true/>\n    <key>com.apple.security.network.server</key>\n    <true/>\n    <key>com.apple.security.print</key>\n    <true/>\n    <key>com.apple.security.cs.allow-dyld-environment-variables</key>\n    <true/>\n    <key>com.apple.security.device.camera</key>\n    <true/>\n    <key>com.apple.security.device.microphone</key>\n    <true/>\n    <key>com.apple.security.device.usb</key>\n    <true/>\n    <key>com.apple.security.device.bluetooth</key>\n    <true/>\n  </dict>\n</plist>"
  },
  {
    "path": "build/icons/make-sizes.sh",
    "content": "sips -z 16 16     1024x1024.png --out 16x16.png\nsips -z 24 24     1024x1024.png --out 24x24.png\nsips -z 32 32     1024x1024.png --out 32x32.png\nsips -z 48 48     1024x1024.png --out 48x48.png\nsips -z 64 64     1024x1024.png --out 64x64.png\nsips -z 96 96     1024x1024.png --out 96x96.png\nsips -z 128 128   1024x1024.png --out 128x128.png\nsips -z 256 256   1024x1024.png --out 256x256.png\nsips -z 512 512   1024x1024.png --out 512x512.png"
  },
  {
    "path": "build/make-icns.sh",
    "content": "mkdir icon.iconset\ncp icons/1024x1024.png Icon1024.png\nsips -z 16 16     Icon1024.png --out icon.iconset/icon_16x16.png\nsips -z 32 32     Icon1024.png --out icon.iconset/icon_16x16@2x.png\nsips -z 32 32     Icon1024.png --out icon.iconset/icon_32x32.png\nsips -z 64 64     Icon1024.png --out icon.iconset/icon_32x32@2x.png\nsips -z 128 128   Icon1024.png --out icon.iconset/icon_128x128.png\nsips -z 256 256   Icon1024.png --out icon.iconset/icon_128x128@2x.png\nsips -z 256 256   Icon1024.png --out icon.iconset/icon_256x256.png\nsips -z 512 512   Icon1024.png --out icon.iconset/icon_256x256@2x.png\nsips -z 512 512   Icon1024.png --out icon.iconset/icon_512x512.png\ncp Icon1024.png icon.iconset/icon_512x512@2x.png\niconutil -c icns --output icon.icns icon.iconset\nrm -R icon.iconset\nrm Icon1024.png"
  },
  {
    "path": "build-notes.md",
    "content": "beaker browser was cloned from [electron-boilerplate](https://github.com/szwacz/electron-boilerplate).\n\n# Structure\n\nThere are **two** `package.json` files:  \n\n#### 1. For development\nSits on path: `beaker-browser/scripts/package.json`. Here you declare dependencies for the development environment and build scripts. **This folder is not distributed with real application!**\n\n#### 2. For the application\nSits on path: `beaker-browser/app/package.json`. This is **real** manifest of the application. Declare the app dependencies here.\n\n#### OMG, but seriously why there are two `package.json`?\n1. Native npm modules (those written in C, not JavaScript) need to be compiled, and here we have two different compilation targets for them. Those used in application need to be compiled against electron runtime, and all `devDependencies` need to be compiled against your locally installed node.js. Thanks to having two files this is trivial.\n2. When you package the app for distribution there is no need to add up to size of the app with your `devDependencies`. Here those are always not included (because reside outside the `app` directory).\n\n### Project's folders\n\n- `app` - application code.\n- `app/background-process` - main electron process.\n- `app/builtin-pages` - start page, config page, etc.\n- `app/lib` - shared lib code for code that's not in the background process (builtin-pages, shell-window, webview-preload).\n- `app/shell-window` - the ui controls code (tabs, addressbar, etc).\n- `app/stylesheets` - styles shared across the app.\n- `app/webview-preload` - scripts injected into web pages.\n- `dist` - in this folder lands built, runnable application.\n- `build` - resources needed for building the app.\n\n\n# Development\n\n#### Installation\n\n```\ncd scripts\nnpm install\n```\nIt will also download Electron runtime, and install dependencies for second `package.json` file inside `app` folder.\n\n#### Starting the app\n\n```\ncd scripts\nnpm start\n```\n\n#### Adding npm modules to your app\n\nRemember to add your dependency to `app/package.json` file, so do:\n```\ncd app\nnpm install name_of_npm_module --save\n```\n\n# Making a release\n\n\nTo make ready for distribution installer use command:\n```\ncd scripts\nnpm run release\n```\nIt will start the packaging process for operating system you are running this command on. Ready for distribution file will be outputted to `dist` directory.\n\nYou can create Windows installer only when running on Windows, the same is true for Linux and OSX. So to generate all three installers you need all three operating systems.\n"
  },
  {
    "path": "scripts/afterSignHook.js",
    "content": "const fs = require('fs');\nconst path = require('path');\nvar electron_notarize = require('electron-notarize');\n\nmodule.exports = async function (params) {\n    // Only notarize the app on Mac OS only.\n    if (process.platform !== 'darwin') {\n        return;\n    }\n    console.log('afterSign hook triggered', params);\n\n    // Same appId in electron-builder.\n    let appId = 'com.bluelinklabs.beaker-browser'\n\n    let appPath = path.join(params.appOutDir, `${params.packager.appInfo.productFilename}.app`);\n    if (!fs.existsSync(appPath)) {\n        throw new Error(`Cannot find application at: ${appPath}`);\n    }\n\n    console.log(`Notarizing ${appId} found at ${appPath}`);\n\n    try {\n        await electron_notarize.notarize({\n            appBundleId: appId,\n            appPath: appPath,\n            appleId: process.env.appleId,\n            appleIdPassword: process.env.appleIdPassword,\n        });\n    } catch (error) {\n        console.error(error);\n    }\n\n    console.log(`Done notarizing ${appId}`);\n};"
  },
  {
    "path": "scripts/gen-bin-hash.js",
    "content": "const path = require('path');\nconst fs = require('fs');\nconst crypto = require('crypto');\n\nconsole.log('Generating hash for', process.argv[2])\n\nfunction hashFile(file, algorithm = 'sha512', encoding = 'base64', options) {\n  return new Promise((resolve, reject) => {\n    const hash = crypto.createHash(algorithm);\n    hash.on('error', reject).setEncoding(encoding);\n    fs.createReadStream(\n      file,\n      Object.assign({}, options, {\n        highWaterMark: 1024 * 1024,\n        /* better to use more memory but hash faster */\n      })\n    )\n      .on('error', reject)\n      .on('end', () => {\n        hash.end();\n        console.log('hash done');\n        console.log(hash.read());\n        resolve(hash.read());\n      })\n      .pipe(\n        hash,\n        {\n          end: false,\n        }\n      );\n  });\n}\n\nconst installerPath = path.resolve(\n  __dirname,\n  '..',\n  'dist',\n  process.argv[2]\n);\n\nhashFile(installerPath);"
  },
  {
    "path": "scripts/gulpfile.js",
    "content": "'use strict';\n\nrequire('./tasks/build/build')\nrequire('./tasks/start')\nrequire('./tasks/rebuild')\nrequire('./tasks/postbuild')"
  },
  {
    "path": "scripts/how-to-make-a-release.md",
    "content": "The process is currently a little silly. This file is getting progressively less awful.\n\n## Check the deps installation\n\nRun npm install. Make sure ./app/bg/dat/converter has its node_modules installed.\n\n## Make sure to update the desktop versions and release-notes links\n\nSO HELP ME GOD if you forget this I'll kill you.\n\n## Build\n\n`npm run build`\n\n## Apply the following patches manually to the scripts/node_modules\n\n`app-builder-lib/out/util/AppFileWalker.js` this one stops electron-bunder from removing ./app/bg/dat/converter/node_modules\n\n```\nif (!nodeModulesFilter(file, fileStat)) {\n  if (!file.includes('dat')) {\n    return false;\n  }\n}\n\nif (file.endsWith(nodeModulesSystemDependentSuffix)) {\n  if (!file.includes('dat')) {\n    return false;\n  }\n}\n```\n\n## Bundle\n\n`npm run release`\n\nOn MacOS you'll need to supply two env vars:\n\n```\nappleId=pfrazee@gmail.com\nappleIdPassword={be paul to have this}\n```\n\nOn Windows, these two env vars:\n\n```\n$env:CSC_LINK = \"\\path\\to\\.pfx\"\n$env:CSC_KEY_PASSWORD = \"{be paul to have this}\"\n```\n\n## It's just that easy\n\nBoy how about that."
  },
  {
    "path": "scripts/package.json",
    "content": "{\n  \"name\": \"beakerbrowser\",\n  \"devDependencies\": {\n    \"browserify\": \"^16.0.0\",\n    \"electron\": \"11.0.0-beta.18\",\n    \"electron-builder\": \"^22.6.0\",\n    \"electron-notarize\": \"^0.3.0\",\n    \"eslint\": \"^4.5.0\",\n    \"eslint-plugin-import\": \"^2.7.0\",\n    \"eslint-plugin-node\": \"^5.1.1\",\n    \"eslint-plugin-promise\": \"^3.5.0\",\n    \"eslint-plugin-standard\": \"^3.0.1\",\n    \"fs-jetpack\": \"^1.2.0\",\n    \"gulp\": \"^4.0.0\",\n    \"gulp-batch\": \"^1.0.5\",\n    \"gulp-less\": \"^4.0.1\",\n    \"gulp-plumber\": \"^1.1.0\",\n    \"gulp-util\": \"^3.0.6\",\n    \"gulp-watch\": \"^4.3.5\",\n    \"into-stream\": \"^2.0.1\",\n    \"pre-commit\": \"^1.2.2\",\n    \"q\": \"^1.4.1\",\n    \"rollup\": \"^1.23.0\",\n    \"yargs\": \"^4.2.0\"\n  },\n  \"optionalDependencies\": {\n    \"appdmg\": \"^0.4.5\",\n    \"rcedit\": \"^0.5.0\"\n  },\n  \"build\": {\n    \"afterSign\": \"./afterSignHook.js\",\n    \"appId\": \"com.bluelinklabs.beaker-browser\",\n    \"asar\": false,\n    \"asarUnpack\": [\n      \"./fg/json-renderer/index.build.js\",\n      \"./fg/syntax-highlighter/index.js\",\n      \"./node_modules/@beaker/dat-legacy-tools/**\",\n      \"./node_modules/sodium-native/**\",\n      \"./node_modules/hyperdrive-daemon/**\"\n    ],\n    \"copyright\": \"© 2020, Blue Link Labs\",\n    \"directories\": {\n      \"app\": \"../app\",\n      \"buildResources\": \"../build\",\n      \"output\": \"../dist\"\n    },\n    \"npmRebuild\": false,\n    \"protocols\": [\n      {\n        \"name\": \"URL\",\n        \"schemes\": [\n          \"http\",\n          \"https\"\n        ]\n      },\n      {\n        \"name\": \"hyper\",\n        \"schemes\": [\n          \"hyper\"\n        ]\n      },\n      {\n        \"name\": \"dat\",\n        \"schemes\": [\n          \"dat\"\n        ]\n      }\n    ],\n    \"appImage\": {\n      \"category\": \"Network\",\n      \"desktop\": {\n        \"Name\": \"Beaker Browser\",\n        \"GenericName\": \"Web Browser\",\n        \"Type\": \"Application\",\n        \"Terminal\": false,\n        \"MimeType\": \"text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/hyper;x-scheme-handler/dat;video/webm;application/x-xpinstall;\",\n        \"Categories\": \"GNOME;GTK;Network;WebBrowser;\"\n      }\n    },\n    \"mac\": {\n      \"category\": \"public.app-category.productivity\",\n      \"hardenedRuntime\": true,\n      \"type\": \"distribution\",\n      \"entitlements\": \"../build/entitlements.plist\",\n      \"entitlementsInherit\": \"../build/entitlements.plist\",\n      \"extendInfo\": {\n        \"NSCameraUsageDescription\": \"This app requires camera access to record video.\",\n        \"NSMicrophoneUsageDescription\": \"This app requires microphone access to record audio.\"\n      }\n    },\n    \"publish\": {\n      \"provider\": \"github\"\n    }\n  },\n  \"scripts\": {\n    \"postinstall\": \"cd ../app && npm install && cd bg/dat/converter && npm install\",\n    \"build\": \"gulp build\",\n    \"burnthemall\": \"node ./tasks/burnthemall.js\",\n    \"lint\": \"eslint --ignore-pattern 'color-thief.js' --ignore-pattern 'app/node_modules' --ignore-pattern 'vendor' --ignore-pattern '*.build.js' --ignore-pattern 'assets' --fix app\",\n    \"rebuild\": \"gulp rebuild\",\n    \"release\": \"electron-builder -p never && gulp postbuild\",\n    \"start\": \"gulp start\",\n    \"watch\": \"gulp start-watch\"\n  },\n  \"collective\": {\n    \"type\": \"opencollective\",\n    \"url\": \"https://opencollective.com/beaker\",\n    \"logo\": \"https://opencollective.com/opencollective/logo.txt\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/beakerbrowser/beaker\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/beakerbrowser/beaker/issues\"\n  },\n  \"homepage\": \"https://beakerbrowser.com/\",\n  \"dependencies\": {}\n}\n"
  },
  {
    "path": "scripts/settings.json",
    "content": "// Place your settings in this file to overwrite default and user settings.\n{\n  \"standard.enable\": true\n}"
  },
  {
    "path": "scripts/tasks/build/build.js",
    "content": "'use strict';\n\nvar pathUtil = require('path');\nvar Q = require('q');\nvar gulp = require('gulp');\nvar watch = require('gulp-watch');\nvar batch = require('gulp-batch');\nvar childProcess = require('child_process')\nvar plumber = require('gulp-plumber');\nvar jetpack = require('fs-jetpack');\n\nvar bundle = require('./bundle');\nvar generateSpecImportsFile = require('./generate_spec_imports');\nvar utils = require('../utils');\n\nvar projectDir = jetpack;\nvar srcDir = projectDir.cwd('../app');\n\n// -------------------------------------\n// Tasks\n// -------------------------------------\n\nfunction burnthemallMaybeTask () {\n  const beakerPackageJson = projectDir.read('package.json', 'json')\n  const electronPackageJson = projectDir.read('node_modules/electron/package.json', 'json')\n  if (!beakerPackageJson || !electronPackageJson) return Promise.resolve(true)\n\n  // is the installed version of electron different than the required one?\n  if (beakerPackageJson.devDependencies.electron != electronPackageJson.version) {\n    console.log('~~Electron version change detected.~~')\n    console.log('We need to rebuild to fit the new version.')\n    console.log('###### BURN THEM ALL! ######')\n\n    childProcess.spawn('npm', ['run', 'burnthemall'], {\n      stdio: 'inherit',\n      env: process.env // inherit\n    })\n    return Promise.reject(new Error('Aborting build to do a full reinstall and rebuild'))\n  }\n  return Promise.resolve(true)\n}\n\ngulp.task('burnthemall-maybe', gulp.series(burnthemallMaybeTask))\n\nvar bundleApplication = function () {\n  var fgDir = srcDir.cwd('fg')\n  var userlandDir = srcDir.cwd('userland')\n  return Q.all([\n    bundle(srcDir.path('main.js'),                     srcDir.path('main.build.js')),\n    bundle(fgDir.path('webview-preload/index.js'),     fgDir.path('webview-preload/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('shell-window/index.js'),        fgDir.path('shell-window/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true, browserifyExclude: ['fs'] }),\n    bundle(fgDir.path('shell-menus/index.js'),         fgDir.path('shell-menus/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('location-bar/index.js'),        fgDir.path('location-bar/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('prompts/index.js'),             fgDir.path('prompts/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('perm-prompt/index.js'),         fgDir.path('perm-prompt/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('modals/index.js'),              fgDir.path('modals/index.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(fgDir.path('json-renderer/index.js'),       fgDir.path('json-renderer/index.build.js'), { browserify: true, basedir: srcDir.cwd(), excludeNodeModules: true }),\n    bundle(userlandDir.path('site-info/js/main.js'),   userlandDir.path('site-info/js/main.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(userlandDir.path('editor/js/main.js'),      userlandDir.path('editor/js/main.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true }),\n    bundle(userlandDir.path('settings/js/main.js'),    userlandDir.path('settings/js/main.build.js'), { browserify: true, basedir: srcDir.cwd(), browserifyBuiltins: true })\n  ]);\n};\n\nvar bundleSpecs = function () {\n  return generateSpecImportsFile().then(function (specEntryPointPath) {\n    return bundle(specEntryPointPath, srcPath.path('spec.build.js'));\n  });\n};\n\nvar bundleTask = function () {\n  if (utils.getEnvName() === 'test') {\n    return bundleSpecs();\n  }\n  return bundleApplication();\n};\ngulp.task('bundle', gulp.series(['burnthemall-maybe'], bundleTask));\ngulp.task('bundle-watch', gulp.series(bundleTask));\n\ngulp.task('build', gulp.series(['bundle']));\n\ngulp.task('watch', gulp.series(['build', function () {\n  gulp.watch(['app/**/*.js', '!app/**/*.build.js'], gulp.series('bundle-watch'))\n  return Promise.resolve(true)\n}]));\n"
  },
  {
    "path": "scripts/tasks/build/bundle.js",
    "content": "'use strict';\n\nvar pathUtil = require('path');\nvar jetpack = require('fs-jetpack');\nvar rollup = require('rollup');\nvar Q = require('q');\nvar browserify = require('browserify');\nvar intoStream = require('into-stream');\n\nvar nodeBuiltInModules = ['assert', 'buffer', 'child_process', 'cluster',\n  'console', 'constants', 'crypto', 'dgram', 'dns', 'domain', 'events',\n  'fs', 'http', 'https', 'module', 'net', 'os', 'path', 'process', 'punycode',\n  'querystring', 'readline', 'repl', 'stream', 'string_decoder', 'timers',\n  'tls', 'tty', 'url', 'util', 'v8', 'vm', 'zlib'];\n\nvar electronBuiltInModules = ['electron'];\n\nvar npmModulesUsedInApp = function () {\n  var appManifest = require('../../../app/package.json');\n  return Object.keys(appManifest.dependencies);\n};\n\nvar generateExternalModulesList = function () {\n  return [].concat(nodeBuiltInModules, electronBuiltInModules, npmModulesUsedInApp());\n};\n\nmodule.exports = function (src, dest, opts) {\n  var deferred = Q.defer();\n\n  rollup.rollup({\n    input: src,\n    external: generateExternalModulesList(),\n    onwarn (warning, warn) {\n      // skip certain warnings\n      if (warning.code === 'UNRESOLVED_IMPORT') return\n      if (warning.code === 'UNUSED_EXTERNAL_IMPORT') return\n      if (warning.code === 'CIRCULAR_DEPENDENCY') return\n      // Use default for everything else\n      warn(warning)\n    }\n  }).then(async function (bundle) {\n    var jsFile = pathUtil.basename(dest);\n    var result = await bundle.generate({\n      format: 'cjs',\n      output: {\n        sourceMap: !!(opts && opts.sourcemap),\n        sourceMapFile: jsFile\n      }\n    });\n\n    if (opts && opts.browserify) {\n      // Browserify the code\n      var b = browserify(intoStream(result.output[0].code), { basedir: opts.basedir, builtins: opts.browserifyBuiltins });\n      b.exclude('electron');\n      if (opts.excludeNodeModules) nodeBuiltInModules.forEach(m => b.exclude(m))\n      if (opts.browserifyExclude) opts.browserifyExclude.forEach(m => b.exclude(m))\n      var deferred2 = Q.defer();\n      b.bundle(function (err, bundledCode) {\n        if (err) deferred2.reject(err)\n        else {\n          jetpack.writeAsync(dest, bundledCode)\n            .then(function () { deferred2.resolve() })\n            .catch(function (err) { deferred2.reject(err) })\n        }\n      });\n      return deferred2.promise;\n    } else {\n      // Wrap code in self invoking function so the variables don't\n      // pollute the global namespace.\n      var isolatedCode = '(function () {' + result.output[0].code + '\\n}());';\n      if (opts && opts.sourcemap) {\n        return Q.all([\n            jetpack.writeAsync(dest, isolatedCode + '\\n//# sourceMappingURL=' + jsFile + '.map'),\n            jetpack.writeAsync(dest + '.map', result.output[0].map.toString()),\n          ]);\n      }\n      return jetpack.writeAsync(dest, isolatedCode)\n    }\n  }).then(function () {\n    deferred.resolve();\n  }).catch(function (err) {\n    if (err.code === 'PARSE_ERROR') {\n      console.log(err.loc)\n      console.log(err.frame)\n    }\n    deferred.reject(err);\n  });\n\n  return deferred.promise;\n};\n"
  },
  {
    "path": "scripts/tasks/build/generate_spec_imports.js",
    "content": "// Spec files are scattered through the whole project. Here we're searching\n// for them and generate one entry file which will run all the tests.\n\n'use strict';\n\nvar jetpack = require('fs-jetpack');\nvar srcDir = jetpack.cwd('app');\n\nvar fileName = 'spec.js.autogenerated';\nvar fileBanner = \"// This file is generated automatically.\\n\"\n  + \"// All your modifications to it will be lost (so don't do it).\\n\";\nvar whatToInclude = [\n  '*.spec.js',\n  '!node_modules/**',\n];\n\nmodule.exports = function () {\n  return srcDir.findAsync('.', { matching: whatToInclude })\n    .then(function (specPaths) {\n      var fileContent = specPaths.map(function (path) {\n        return 'import \"./' + path.replace('\\\\', '/') + '\";';\n      }).join('\\n');\n      return srcDir.writeAsync(fileName, fileBanner + fileContent);\n    })\n    .then(function () {\n      return srcDir.path(fileName);\n    });\n};\n"
  },
  {
    "path": "scripts/tasks/burnthemall.js",
    "content": "// this script cant depend on any modules except what's bundled with node\nvar path = require('path')\nvar fs = require('fs')\nvar run = require('./util-run')\nvar _0666 = parseInt('666', 8)\n// for EMFILE handling\nvar timeout = 0\n\nvar isWindows = (process.platform === \"win32\")\n\nfunction main () {\n  var projectDir = __dirname.split(path.sep).filter(Boolean).slice(0, -2).join(path.sep)\n  if (!isWindows) projectDir = path.sep + projectDir\n  var appDir = path.join(projectDir, 'app')\n  var scriptsDir = path.join(projectDir, 'scripts')\n  rmNodeModules(scriptsDir)\n  rmNodeModules(appDir)\n  rmPackageLock(scriptsDir)\n  rmPackageLock(appDir)\n  run('npm install', {shell: true}, function () {\n    run('npm run rebuild', {shell: true}, function () {\n      run('npm run build', {shell: true}, function () {\n        process.exit(0)\n      })\n    })\n  })\n}\n\nfunction rmNodeModules (dir) {\n  dir = path.join(dir, 'node_modules')\n  console.log('rm -rf', dir)\n  rimrafSync(dir)\n}\n\nfunction rmPackageLock (dir) {\n  var file = path.join(dir, 'package-lock.json')\n  console.log('rm', file)\n  rimrafSync(file)\n}\n\nmain()\n\n// rimrafSync, pulled from rimraf\n\nfunction rimrafSync (p) {\n  try {\n    var st = fs.lstatSync(p)\n  } catch (er) {\n    if (er.code === \"ENOENT\")\n      return\n\n    // Windows can EPERM on stat.  Life is suffering.\n    if (er.code === \"EPERM\" && isWindows)\n      fixWinEPERMSync(p, er)\n  }\n\n  try {\n    // sunos lets the root user unlink directories, which is... weird.\n    if (st && st.isDirectory())\n      rmdirSync(p, null)\n    else\n      fs.unlinkSync(p)\n  } catch (er) {\n    if (er.code === \"ENOENT\")\n      return\n    if (er.code === \"EPERM\")\n      return isWindows ? fixWinEPERMSync(p, er) : rmdirSync(p, er)\n    if (er.code !== \"EISDIR\")\n      throw er\n\n    rmdirSync(p, er)\n  }\n}\n\nfunction rmdirSync (p, originalEr) {\n  try {\n    fs.rmdirSync(p)\n  } catch (er) {\n    if (er.code === \"ENOENT\")\n      return\n    if (er.code === \"ENOTDIR\")\n      throw originalEr\n    if (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\")\n      rmkidsSync(p)\n  }\n}\n\nfunction rmkidsSync (p) {\n  fs.readdirSync(p).forEach(function (f) {\n    rimrafSync(path.join(p, f))\n  })\n\n  // We only end up here once we got ENOTEMPTY at least once, and\n  // at this point, we are guaranteed to have removed all the kids.\n  // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n  // try really hard to delete stuff on windows, because it has a\n  // PROFOUNDLY annoying habit of not closing handles promptly when\n  // files are deleted, resulting in spurious ENOTEMPTY errors.\n  var retries = isWindows ? 100 : 1\n  var i = 0\n  do {\n    var threw = true\n    try {\n      var ret = fs.rmdirSync(p)\n      threw = false\n      return ret\n    } finally {\n      if (++i < retries && threw)\n        continue\n    }\n  } while (true)\n}\n\nfunction fixWinEPERMSync (p, er) {\n  try {\n    fs.chmodSync(p, _0666)\n  } catch (er2) {\n    if (er2.code === \"ENOENT\")\n      return\n    else\n      throw er\n  }\n\n  try {\n    var stats = fs.statSync(p)\n  } catch (er3) {\n    if (er3.code === \"ENOENT\")\n      return\n    else\n      throw er\n  }\n\n  if (stats.isDirectory())\n    rmdirSync(p, er)\n  else\n    fs.unlinkSync(p)\n}"
  },
  {
    "path": "scripts/tasks/import-schemas.js",
    "content": "const path = require('path')\nconst fs = require('fs')\nconst childProcess = require('child_process')\nconst rimraf = require('rimraf')\n\nconst SCHEMAS = [\n  'comment',\n  'follows',\n  'status',\n  'bookmark',\n  'reaction',\n  'dats',\n  'vote'\n]\n\nconsole.log('')\nconsole.log('Cloning unwalled.garden')\nconsole.log('')\nvar tmpdir = fs.mkdtempSync('unwalled-garden-')\nchildProcess.execSync(`git clone https://github.com/beakerbrowser/unwalled.garden ${tmpdir}`)\n\nconsole.log('')\nconsole.log('Copying schema definitions')\nconsole.log('')\nfor (let name of SCHEMAS) {\n  console.log(name)\n  var content = fs.readFileSync(path.join(tmpdir, name + '.json'))\n  fs.writeFileSync(path.join(__dirname, '../app/lib/schemas/unwalled.garden/', name + '.json'), content)\n}\n\nconsole.log('')\nconsole.log('Removing tmpdir')\nconsole.log('')\nrimraf.sync(tmpdir)\n\nconsole.log('Done!')\n"
  },
  {
    "path": "scripts/tasks/postbuild.js",
    "content": "var gulp = require('gulp')\nvar jetpack = require('fs-jetpack')\nvar run = require('./util-run')\n\ngulp.task('postbuild', gulp.series(function () {\n  // for some reason, electron-builder is spitting out 'Beaker Browser-{version}{ext}'\n  // but the auto updater expects 'beaker-browser-{version}{ext}'\n  // couldnt figure out how to reconfig the builder, so just rename the output assets\n\n  var cwd = jetpack.cwd('../dist')\n  var names = cwd.list()\n  names.forEach(function (name) {\n    // windows assets:\n    if (name.indexOf('Beaker Browser Setup') === 0 && name.indexOf('.exe') !== -1) {\n      var newName = 'beaker-browser-setup-' + name.slice('Beaker Browser Setup '.length)\n      return cwd.move(name, newName)\n    }\n\n    // osx assets:\n    if (name.indexOf('Beaker Browser') === 0 && (name.indexOf('.dmg') !== -1 || name.indexOf('-mac.zip') !== -1)) {\n      var newName = 'beaker-browser' + name.slice('Beaker Browser'.length)\n      return cwd.move(name, newName)\n    }\n  })\n\n  return Promise.resolve(true)\n}))"
  },
  {
    "path": "scripts/tasks/rebuild.js",
    "content": "var gulp = require('gulp')\nvar path = require('path')\nvar run = require('./util-run')\nvar homedir = require('os').homedir()\n\nfunction runAsync (...args) {\n  return new Promise(resolve => {\n    run(...args, resolve)\n  })\n}\n\nconst MODULES_NEEDING_REBUILD = ['sqlite3']\n\n//(cd app && HOME=~/.electron-gyp npm rebuild --runtime=electron --target=11.0.0-beta.18 --disturl=https://electronjs.org/headers --build-from-source); gulp build\n\ngulp.task('rebuild', gulp.series(async () => {\n  // TODO read electron version\n  var cwd = path.join(process.cwd(), '../app')\n  console.log(cwd)\n  var env = {}\n  if (process.platform === 'darwin') {\n    env = {\n      // required to make spellchecker compile\n      CXXFLAGS: '-mmacosx-version-min=10.10',\n      LDFLAGS: '-mmacosx-version-min=10.10'\n    }\n  }\n  env.HOME = path.join(homedir, '.electron-gyp')\n  for (let mod of MODULES_NEEDING_REBUILD) {\n    await runAsync(`npm rebuild ${mod} --runtime=electron --target=11.0.0-beta.18 --disturl=https://electronjs.org/headers --build-from-source`, {cwd, env, shell: true})\n  }\n  await runAsync(`npm run build`, {shell: true})\n}))"
  },
  {
    "path": "scripts/tasks/start-cli.js",
    "content": "#!/usr/bin/env node\n\nconst NODE_FLAGS = `--js-flags=\"--throw-deprecation\"`\n\nvar childProcess = require('child_process')\nvar electron = require('electron')\nvar jetpack = require('fs-jetpack');\n\nvar app = jetpack.cwd('../app').cwd()\n\nmodule.exports = function () {\n  if (process.env.ELECTRON_PATH) {\n    electron = process.env.ELECTRON_PATH\n  }\n  console.log('Spawning electron', electron)\n  childProcess.spawn(electron, [/*'--inspect',*/ NODE_FLAGS, app], {\n    stdio: 'inherit',\n    env: Object.assign({}, process.env, {BEAKER_DEV_MODE: '1'}) // inherit\n  })\n  .on('close', function () {\n    // User closed the app. Kill the host process.\n    process.exit()\n  })\n}\n\nif (require.main === module) {\n  module.exports()\n}\n"
  },
  {
    "path": "scripts/tasks/start.js",
    "content": "'use strict'\n\nconst gulp = require('gulp')\nconst start = require('./start-cli')\n\ngulp.task('start', gulp.series(start))\ngulp.task('start-watch', gulp.series('watch', start))\n"
  },
  {
    "path": "scripts/tasks/util-run.js",
    "content": "const childProcess = require('child_process')\nmodule.exports = function (cmd, opts, cb) {\n  opts = opts || {}\n  cb = cb || function(){}\n  console.log(cmd)\n  cmd = cmd.split(' ')\n  opts.stdio = 'inherit'\n  opts.env = Object.assign({}, process.env, opts.env || {})\n  childProcess.spawn(cmd[0], cmd.slice(1), opts)\n    .on('error', console.log)\n    .on('close', cb)\n}\n"
  },
  {
    "path": "scripts/tasks/utils.js",
    "content": "'use strict';\n\nvar argv = require('yargs').argv;\nvar os = require('os');\n\nmodule.exports.os = function () {\n  switch (os.platform()) {\n    case 'darwin':\n      return 'osx';\n    case 'linux':\n      return 'linux';\n    case 'win32':\n      return 'windows';\n  }\n  return 'unsupported';\n};\n\nmodule.exports.replace = function (str, patterns) {\n  Object.keys(patterns).forEach(function (pattern) {\n    var matcher = new RegExp('{{' + pattern + '}}', 'g');\n    str = str.replace(matcher, patterns[pattern]);\n  });\n  return str;\n};\n\nmodule.exports.getReleasePackageName = function(manifest) {\n  return module.exports.replace(manifest.packageNameTemplate, {\n    name: manifest.name,\n    version: manifest.version,\n    build: manifest.build,\n    productName: manifest.productName,\n    platform: process.platform,\n    arch: process.arch\n  });\n}\n\nmodule.exports.getEnvName = function () {\n  return argv.env || 'development';\n};\n\nmodule.exports.getSigningId = function (manifest) {\n  return argv.sign || (manifest.osx.codeSignIdentitiy ? manifest.osx.codeSignIdentitiy.dmg : undefined);\n};\n\nmodule.exports.getMASSigningId = function (manifest) {\n  return argv['mas-sign'] || (manifest.osx.codeSignIdentitiy ? manifest.osx.codeSignIdentitiy.MAS : undefined);\n};\n\nmodule.exports.getMASInstallerSigningId = function (manifest) {\n  return argv['mas-installer-sign'] || (manifest.osx.codeSignIdentitiy ? manifest.osx.codeSignIdentitiy.MASInstaller : undefined);\n};\n\nmodule.exports.releaseForMAS = function () {\n  return !!argv.mas;\n};\n\n// Fixes https://github.com/nodejs/node-v0.x-archive/issues/2318\nmodule.exports.spawnablePath = function (path) {\n  if (process.platform === 'win32') {\n    return path + '.cmd';\n  }\n  return path;\n};\n"
  },
  {
    "path": "tests/session-perms-test/index.html",
    "content": "<script type=\"module\" src=\"/index.js\"></script>"
  },
  {
    "path": "tests/session-perms-test/index.js",
    "content": "async function main () {\n  var sess = await beaker.session.get()\n  console.log(sess)\n\n  var btn = document.createElement('button')\n  if (sess) {\n    btn.textContent = 'Log out'\n    btn.onclick = async () => console.log(await beaker.session.destroy())\n  } else {\n    btn.textContent = 'Log in'\n    btn.onclick = async () => {\n      await doLog(false, 'bad session request', beaker.session.request({\n        permissions: {\n          publicFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/comments/*.md', access: 'read'},\n            {path: '/*.txt', access: 'write'}\n          ],\n          privateFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/test/*.txt', access: 'write'}\n          ]\n        }\n      }))\n      await doLog(false, 'bad session request', beaker.session.request({\n        permissions: {\n          publicFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/comments/*.md', access: 'read'},\n            {path: '/test/*', access: 'write'}\n          ],\n          privateFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/test/test/*.txt', access: 'write'}\n          ]\n        }\n      }))\n      await doLog(true, 'good session request', beaker.session.request({\n        permissions: {\n          publicFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/comments/*.md', access: 'read'},\n            {path: '/beaker-tests/test/*.txt', access: 'write'}\n          ],\n          privateFiles: [\n            {path: '/pages/*.md', access: 'read'},\n            {path: '/beaker-tests/test/*.txt', access: 'write'}\n          ]\n        }\n      }))\n    }\n  }\n  document.body.append(btn)\n\n  doLog(true, 'query /pages .md', beaker.index.gql(`query { records (paths: [\"/pages/*.md\"]) { url } }`))\n  doLog(true, 'query /microblog .md', beaker.index.gql(`query { records (paths: [\"/microblog/*.md\"]) { url } }`))\n  doLog(true, 'query private /pages .md', beaker.index.gql(`query { records (origins: [\"hyper://private\"], paths: [\"/pages/*.md\"]) { url } }`))\n  doLog(false, 'query private /microblog .md', beaker.index.gql(`query { records (origins: [\"hyper://private\"], paths: [\"/microblog/*.md\"]) { url } }`))\n  doLog(true, 'query private,public /pages .md', beaker.index.gql(`query { records (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\"]) { url } }`))\n  doLog(false, 'query private,public /microblog .md', beaker.index.gql(`query { records (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/microblog/*.md\"]) { url } }`))\n  doLog(true, 'query public /pages .md', beaker.index.gql(`query { records (origins: [\"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\"]) { url } }`))\n  doLog(true, 'query public /microblog .md', beaker.index.gql(`query { records (origins: [\"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/microblog/*.md\"]) { url } }`))\n  doLog(true, 'query /pages,/microblog .md', beaker.index.gql(`query { records (paths: [\"/pages/*.md\", \"/microblog/*.md\"]) { url } }`))\n  doLog(false, 'query public,private /pages,/microblog .md', beaker.index.gql(`query { records (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\", \"/microblog/*.md\"]) { url } }`))\n\n  doLog(true, 'count /pages .md', beaker.index.gql(`query { recordCount (paths: [\"/pages/*.md\"]) }`))\n  doLog(true, 'count /microblog .md', beaker.index.gql(`query { recordCount (paths: [\"/microblog/*.md\"]) }`))\n  doLog(true, 'count private /pages .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://private\"], paths: [\"/pages/*.md\"]) }`))\n  doLog(false, 'count private /microblog .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://private\"], paths: [\"/microblog/*.md\"]) }`))\n  doLog(true, 'count private,public /pages .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\"]) }`))\n  doLog(false, 'count private,public /microblog .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/microblog/*.md\"]) }`))\n  doLog(true, 'count public /pages .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\"]) }`))\n  doLog(true, 'count public /microblog .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/microblog/*.md\"]) }`))\n  doLog(true, 'count /pages,/microblog .md', beaker.index.gql(`query { recordCount (paths: [\"/pages/*.md\", \"/microblog/*.md\"]) }`))\n  doLog(false, 'count public,private /pages,/microblog .md', beaker.index.gql(`query { recordCount (origins: [\"hyper://private\", \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39\"], paths: [\"/pages/*.md\", \"/microblog/*.md\"]) }`))\n\n  doLog(true, 'get public /pages/test-page.md', beaker.index.gql(`query { record (url: \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39/pages/test-page.md\") { url } }`))\n  doLog(true, 'get private /pages/sessions-api.md', beaker.index.gql(`query { record (url: \"hyper://private/pages/sessions-api.md\") { url } }`))\n  doLog(true, 'get public /microblog/*.md', beaker.index.gql(`query { record (url: \"hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39/microblog/1599085611199.md\") { url } }`))\n  doLog(false, 'get private /comments/*.md', beaker.index.gql(`query { record (url: \"hyper://private/comments/1599076506408.md\") { url } }`))\n  doLog(false, 'get private /index.json', beaker.index.gql(`query { record (url: \"hyper://private/index.json\") { url } }`))\n  doLog(false, 'get private /pages/foo.json', beaker.index.gql(`query { record (url: \"hyper://private/pages/foo.json\") { url } }`))\n\n  var priv = beaker.hyperdrive.drive('hyper://private')\n  var pub = beaker.hyperdrive.drive('hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39/')\n  doLog(false, 'readdir(/) private', priv.readdir('/'))\n  doLog(true, 'readdir(/) public', pub.readdir('/'))\n  doLog(false, 'readdir(/blog) private', priv.readdir('/blog'))\n  doLog(true, 'readdir(/blog) public', pub.readdir('/blog'))\n  doLog(true, 'readdir(/pages) private', priv.readdir('/pages'))\n  doLog(true, 'readdir(/pages) public', pub.readdir('/pages'))\n  doLog(false, 'stat(/index.json) private', priv.stat('/index.json'))\n  doLog(true, 'stat(/index.json) public', pub.stat('/index.json'))\n  doLog(true, 'stat(/pages/decribing-beaker.md) private', priv.stat('/pages/decribing-beaker.md'))\n  doLog(false, 'stat(/pages/foo.json) private', priv.stat('/pages/foo.json'))\n  doLog(true, 'stat(/pages/test-page.md) public', pub.stat('/pages/test-page.md'))\n  doLog(false, 'readFile(/index.json) private', priv.readFile('/index.json'))\n  doLog(true, 'readFile(/index.json) public', pub.readFile('/index.json'))\n  doLog(true, 'readFile(/pages/decribing-beaker.md) private', priv.readFile('/pages/decribing-beaker.md'))\n  doLog(false, 'readFile(/pages/foo.json) private', priv.readFile('/pages/foo.json'))\n  doLog(true, 'readFile(/pages/test-page.md) public', pub.readFile('/pages/test-page.md'))\n  doLog(false, 'query(/pages) private', priv.query({path: '/pages/*'}))\n\n  await doLog(true, 'writeFile(/beaker-tests/test/hello.txt) private', priv.writeFile('/beaker-tests/test/hello.txt', 'world'))\n  await doLog(true, 'writeFile(/beaker-tests/test/hello.txt) public', pub.writeFile('/beaker-tests/test/hello.txt', 'world'))\n  await doLog(false, 'writeFile(/beaker-tests/test/hello.json) private', priv.writeFile('/beaker-tests/test/hello.json', 'world'))\n  await doLog(false, 'writeFile(/beaker-tests/test/hello.json) public', pub.writeFile('/beaker-tests/test/hello.json', 'world'))\n  await doLog(false, 'writeFile(/pages/hello.md) private', priv.writeFile('/pages/hello.md', 'world'))\n  await doLog(false, 'writeFile(/pages/hello.md) public', pub.writeFile('/pages/hello.md', 'world'))\n\n  await doLog(true, 'copy(/beaker-tests/test/hello.txt, /beaker-tests/test/hello2.txt) private', priv.copy('/beaker-tests/test/hello.txt', '/beaker-tests/test/hello2.txt'))\n  await doLog(true, 'copy(/beaker-tests/test/hello.txt, /beaker-tests/test/hello2.txt) public', pub.copy('/beaker-tests/test/hello.txt', '/beaker-tests/test/hello2.txt'))\n  await doLog(true, 'rename(/beaker-tests/test/hello2.txt, /beaker-tests/test/hello3.txt) private', priv.rename('/beaker-tests/test/hello2.txt', '/beaker-tests/test/hello3.txt'))\n  await doLog(true, 'rename(/beaker-tests/test/hello2.txt, /beaker-tests/test/hello3.txt) public', pub.rename('/beaker-tests/test/hello2.txt', '/beaker-tests/test/hello3.txt'))\n  await doLog(true, 'unlink(/beaker-tests/test/hello3.txt) private', priv.unlink('/beaker-tests/test/hello3.txt'))\n  await doLog(true, 'unlink(/beaker-tests/test/hello3.txt) public', pub.unlink('/beaker-tests/test/hello3.txt'))\n\n  await doLog(false, 'copy(/beaker-tests/test/hello.txt, /pages/hello.md) private', priv.copy('/beaker-tests/test/hello.txt', '/pages/hello.md'))\n  await doLog(false, 'copy(/beaker-tests/test/hello.txt, /pages/hello.md) public', pub.copy('/beaker-tests/test/hello.txt', '/pages/hello.md'))\n\n  await doLog(false, 'symlink(/index.json, /beaker-tests/test/index.txt) private', priv.symlink('/index.json', '/beaker-tests/test/index.txt'))\n  await doLog(true, 'symlink(/index.json, /beaker-tests/test/index.txt) public', pub.symlink('/index.json', '/beaker-tests/test/index.txt'))\n  await doLog(true, 'unlink(/beaker-tests/test/index.txt) public', pub.unlink('/beaker-tests/test/index.txt'))\n\n  await doLog(false, 'symlink(/beaker-tests/test/hello.txt, /pages/hello.md) private', priv.symlink('/beaker-tests/test/hello.txt', '/pages/hello.md'))\n  await doLog(false, 'symlink(/beaker-tests/test/hello.txt, /pages/hello.md) public', pub.symlink('/beaker-tests/test/hello.txt', '/pages/hello.md'))\n\n  await doLog(true, 'copy(/pages/decribing-beaker.md, /beaker-tests/test/describing-beaker.txt) private', priv.copy('/pages/decribing-beaker.md', '/beaker-tests/test/describing-beaker.txt'))\n  await doLog(true, 'copy(/pages/test-page.md, /beaker-tests/test/test-page.txt) public', pub.copy('/pages/test-page.md', '/beaker-tests/test/test-page.txt'))\n\n  await doLog(true, 'unlink(/beaker-tests/test/hello.txt) private', priv.unlink('/beaker-tests/test/hello.txt'))\n  await doLog(true, 'unlink(/beaker-tests/test/hello.txt) public', pub.unlink('/beaker-tests/test/hello.txt'))\n  await doLog(false, 'unlink(/beaker-tests/test/hello.json) private', priv.unlink('/beaker-tests/test/hello.json'))\n  await doLog(false, 'unlink(/beaker-tests/test/hello.json) public', pub.unlink('/beaker-tests/test/hello.json'))\n  await doLog(false, 'unlink(/pages/hello.md) private', priv.unlink('/pages/hello.md'))\n  await doLog(false, 'unlink(/pages/hello.md) public', pub.unlink('/pages/hello.md'))\n\n  await doLog(false, 'mkdir(/beaker-tests/test/sub)', priv.mkdir('/beaker-tests/test/sub'))\n  await doLog(false, 'mkdir(/beaker-tests/test/sub)', pub.mkdir('/beaker-tests/test/sub'))\n  await doLog(false, 'rmdir(/test)', priv.rmdir('/test'))\n  await doLog(false, 'rmdir(/test)', pub.rmdir('/test'))\n}\n\nasync function doLog (shouldSucceed, text, promise) {\n  try {\n    var res = await promise\n    if (!shouldSucceed) {\n      console.error('❌', text, res)\n    } else {\n      console.log('✅', text)\n    }\n  } catch (e) {\n    if (shouldSucceed) {\n      console.error('❌', text, e)\n    } else {\n      console.log('✅', text, e)\n    }\n  }\n}\n\nmain()"
  },
  {
    "path": "tests/session-perms-test/index.json",
    "content": "{\n  \"title\": \"Platform Tests App\",\n  \"description\": \"\"\n}"
  }
]